diff --git a/.mailmap b/.mailmap index 3aadbbedfca..436b557ee63 100644 --- a/.mailmap +++ b/.mailmap @@ -6,8 +6,8 @@ Laurent Destailleur eldy Laurent Destailleur Laurent Destailleur Laurent Destailleur eldy10 Laurent Destailleur Laurent Destailleur -Regis Houssin Regis Houssin -Regis Houssin Régis Houssin +Regis Houssin Regis Houssin +Regis Houssin Régis Houssin Juanjo Menent simnandez Juanjo Menent Juanjo Menent Juanjo Menent Simnandez diff --git a/.travis.yml b/.travis.yml index 17c25da09b8..5e4207c92b8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ # from Dolibarr GitHub repository. # For syntax, see http://about.travis-ci.org/docs/user/languages/php/ -# We use dist: trusty to have php 5.4+ available +# We use dist: trusty to have php 5.4+ available dist: trusty sudo: required @@ -20,7 +20,7 @@ addons: # To use the last version of pgloader, we add repo of postgresql - postgresql - sourceline: 'deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main' - - key_url: 'https://www.postgresql.org/media/keys/ACCC4CF8.asc' + - key_url: 'https://www.postgresql.org/media/keys/ACCC4CF8.asc' packages: # We need a webserver to test the webservices # Let's install Apache with. @@ -37,6 +37,7 @@ php: - '7.0' - '7.1' - '7.2' +- '7.3' - nightly env: @@ -59,6 +60,7 @@ matrix: fast_finish: true allow_failures: - php: nightly + - php: '7.3' # We exclude some combinations not usefull to save Travis CPU exclude: - php: '5.5' @@ -77,6 +79,8 @@ matrix: env: DB=postgresql - php: '7.1' env: DB=postgresql + - php: '7.3' + env: DB=postgresql - php: nightly env: DB=postgresql @@ -105,7 +109,7 @@ before_install: pgloader --version echo fi - + install: - | echo "Updating Composer" @@ -130,14 +134,14 @@ install: if [ "$TRAVIS_PHP_VERSION" = '5.6' ] || [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ]; then composer -n require phpunit/phpunit ^5 fi - if [ "$TRAVIS_PHP_VERSION" = '7.2' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then + if [ "$TRAVIS_PHP_VERSION" = '7.2' ] || [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then composer -n require phpunit/phpunit ^5 fi echo - | echo "Installing PHP CodeSniffer" - composer -n require squizlabs/php_codesniffer ^2 + composer -n require squizlabs/php_codesniffer ^3 echo - | @@ -165,13 +169,9 @@ before_script: echo "Set timezone" echo 'date.timezone = "Europe/Paris"' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini if [ "$TRAVIS_PHP_VERSION" = '5.4' ]; then - #echo - #echo "Enabling APC for PHP <= 5.4" - # Documentation says it should be available for PHP <= 5.6 but it's not for 5.5 and 5.6! - #echo 'extension = apc.so' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini + # Documentation says it should be available for all PHP versions but it's not for 5.5 and 5.6, 7.0, 7.1, 7.2 and nightly! echo echo "Enabling Memcached for PHP <= 5.4" - # Documentation says it should be available for all PHP versions but it's not for 5.5 and 5.6, 7.0, 7.1, 7.2 and nightly! echo 'extension = memcached.so' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini fi phpenv rehash @@ -199,7 +199,7 @@ before_script: mysql --version | head - mysql -e "SELECT VERSION();" | head - echo - + - | echo "Setting up database" if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ] || [ "$DB" = 'postgresql' ]; then @@ -207,13 +207,18 @@ before_script: 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 -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 + #pgloader mysql://root:pass@127.0.0.1/dolibarr_9 postgresql://dolibarrowner:dolibarrownerpass@127.0.0.1/dolibarr_dev + 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 # TODO: SQLite echo @@ -221,7 +226,7 @@ before_script: - | export CONF_FILE=htdocs/conf/conf.php echo "Setting up Dolibarr $CONF_FILE" - echo ' $CONF_FILE + echo ' $CONF_FILE echo '$'dolibarr_main_url_root=\'http://127.0.0.1\'';' >> $CONF_FILE echo '$'dolibarr_main_document_root=\'$TRAVIS_BUILD_DIR/htdocs\'';' >> $CONF_FILE echo '$'dolibarr_main_data_root=\'$TRAVIS_BUILD_DIR/documents\'';' >> $CONF_FILE @@ -230,9 +235,11 @@ before_script: echo '$'dolibarr_main_db_user=\'travis\'';' >> $CONF_FILE if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then echo '$'dolibarr_main_db_type=\'mysqli\'';' >> $CONF_FILE + echo '$'dolibarr_main_db_port=\'3306\'';' >> $CONF_FILE fi if [ "$DB" = 'postgresql' ]; then echo '$'dolibarr_main_db_type=\'pgsql\'';' >> $CONF_FILE + echo '$'dolibarr_main_db_port=\'5432\'';' >> $CONF_FILE fi # TODO: SQLite echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> $CONF_FILE @@ -242,8 +249,9 @@ before_script: - | echo "Create documents directory and set permissions" # and admin/temp subdirectory needed for unit tests - mkdir -p documents/admin/temp - echo "first line" > documents/dolibarr.log + 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 @@ -253,7 +261,7 @@ before_script: # 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" = 'nightly' ]; then + if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ] || [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$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 @@ -276,11 +284,12 @@ before_script: script: - | echo "Checking webserver availability by a wget -O - http://127.0.0.1" - # Ensure we catch errors - set -e + # Ensure we stop on error with set -e + set +e # The wget should return a page with line ' wget -O - http://127.0.0.1 > test.html head test.html + sudo cat /var/log/apache2/travis_error_log set +e echo @@ -288,7 +297,8 @@ script: echo "Checking PHP syntax errors" # Ensure we catch errors set -e - parallel-lint --exclude htdocs/includes --blame . + #parallel-lint --exclude htdocs/includes --blame . + parallel-lint --exclude htdocs/includes/sabre --exclude htdocs/includes/sebastian --exclude htdocs/includes/squizlabs/php_codesniffer/tests --exclude htdocs/includes/jakub-onderka/php-parallel-lint/tests --exclude htdocs/includes/mike42/escpos-php/example --exclude htdocs/includes/phpunit/php-token-stream/tests --exclude htdocs/includes/composer/autoload_static.php --blame . set +e echo @@ -308,8 +318,8 @@ script: - | echo "Upgrading Dolibarr" - # Ensure we catch errors - set +e + # 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 @@ -324,7 +334,7 @@ script: 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 MAIN_MODULE_API,MAIN_MODULE_SUPPLIERPROPOSAL > $TRAVIS_BUILD_DIR/upgrade390400-2.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 @@ -333,38 +343,41 @@ script: 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 MAIN_MODULE_WEBSITE,MAIN_MODULE_SUPPLIERPROPOSAL > $TRAVIS_BUILD_DIR/upgrade600700-2.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 MAIN_MODULE_TICKETSUP > $TRAVIS_BUILD_DIR/upgrade700800-2.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 + # Enable modules not enabled into original dump + php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_SUPPLIERPROPOSAL,MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKETSUP,MAIN_MODULE_ACCOUNTING > $TRAVIS_BUILD_DIR/enablemodule.log + echo $? cd - set +e echo - #cat $TRAVIS_BUILD_DIR/upgrade400500-2.log - #cat $TRAVIS_BUILD_DIR/upgrade500600.log - #cat $TRAVIS_BUILD_DIR/upgrade500600-2.log - #cat $TRAVIS_BUILD_DIR/upgrade500600-3.log - #cat $TRAVIS_BUILD_DIR/upgrade600700-2.log - cat /tmp/dolibarr_install.log - + #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 "Output dolibarr.log" - #cat documents/dolibarr.log - after_script: - | - # Dolibarr log file - #echo "After script" - #cat documents/dolibarr.log - + echo "After script - Output 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 after_success: - | @@ -372,20 +385,24 @@ after_success: after_failure: - | - echo Failure - # This part of code seems to be never executed, error or not ??? - echo "Debugging informations" + 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 - cat *.log - echo "Debugging informations" + for ficlog in `ls $TRAVIS_BUILD_DIR/*.log` + do + echo "Debugging informations for file $ficlog" + #cat $ficlog + done # Apache log file - sudo cat /var/log/apache2/error.log - # Dolibarr log file - cat documents/dolibarr.log + 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 # MariaDB log file - sudo cat /var/log/mysql/error.log + echo "Debugging informations for file mysql error.log" + sudo tail -n 50 /var/log/mysql/error.log # TODO: PostgreSQL log file echo fi - diff --git a/.tx/config b/.tx/config index 27327f033ea..0dea31a14d0 100644 --- a/.tx/config +++ b/.tx/config @@ -314,6 +314,12 @@ source_file = htdocs/langs/en_US/receiptprinter.lang source_lang = en_US type = MOZILLAPROPERTIES +[dolibarr.receptions] +file_filter = htdocs/langs//receptions.lang +source_file = htdocs/langs/en_US/receptions.lang +source_lang = en_US +type = MOZILLAPROPERTIES + [dolibarr.resource] file_filter = htdocs/langs//resource.lang source_file = htdocs/langs/en_US/resource.lang @@ -397,3 +403,4 @@ file_filter = htdocs/langs//workflow.lang source_file = htdocs/langs/en_US/workflow.lang source_lang = en_US type = MOZILLAPROPERTIES + diff --git a/COPYRIGHT b/COPYRIGHT index bd3565c3bd1..83f72bb558b 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -53,6 +53,10 @@ JsTimezoneDetect 1.0.6 MIT License Yes SwaggerUI 2.0.24 GPL-2+ Yes JS library to offer the REST API explorer Ace 1.2.8 BSD Yes JS library to get code syntaxique coloration in a textarea. +Image libraries +Octicons 8.1 MIT Yes + + For licenses compatibility informations: http://www.gnu.org/licenses/licenses.en.html diff --git a/ChangeLog b/ChangeLog index 6664dbe8941..ff5b8cd9805 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,139 @@ English Dolibarr ChangeLog -------------------------------------------------------------- +***** ChangeLog for 10.0.0 compared to 9.0.0 ***** +For Users: +NEW: Experimental module "Vendor receptions" + +For Developers: + + +WARNING: + +Following changes may create regressions for some external modules, but were necessary to make Dolibarr better: +* Method GetUrlTrackingStatus were renamed into getUrlTrackingStatus. +* API getListOfCivility has been renamed into getListOfCivilities for consistency with naming rules. + + + +***** ChangeLog for 9.0.0 compared to 8.0.0 ***** +For Users: +NEW: Stable module: DAV (WebDAV only for the moment) +NEW: Stable module "Skype" has been replaced with module "Social Networks" to support more services. +NEW: Stable module "Module Builder" +NEW: Stable module: Website +NEW: Experimental module "TakePos" +NEW: Experimental module "Ticket" +NEW: Experimental module "Data Privacy" +NEW: Experimental module "Email Collector" +NEW: Dolibarr can provide information in page title when multicompany is enabled of not, making + Android application like DoliDroid able to provide native features for multicompany module. +NEW: Compatibility with PHP 7.3 => +NEW: Add admin page for modulebuilder +NEW: Add civility in list of members. Close #9251 +NEW: Add configuration to disable "customer/prospect" thirdparty type +NEW: Add CONTRACT_ALLOW_TO_LINK_FROM_OTHER_COMPANY and CONTRACT_HIDE_UNSELECTABLES by SELECT_HIDE_UNSELECTABLES +NEW: Add __DAY_TEXT__ and __MONTH_TEXT__ substitutions vars +NEW: Add due date column in payment lists +NEW: Add email in event history, for reminder email of expired subsription +NEW: Add event tab on resource record +NEW: Add FEC Export in accountancy +NEW: Add filter on staff range in list of thirdparties +NEW: Add a first complete template of website +NEW: Add format code into exported filename of ledger +NEW: Add hidden option EXPENSEREPORT_DEFAULT_VALIDATOR_UNCHANGEABLE +NEW: Add hidden option MAIN_DOCUMENTS_DESCRIPTION_FIRST +NEW: Add link to inventory code +NEW: Add more common social networks fields for business +NEW: Add option PDF_DISABLE_MYCOMPANY_LOGO to disable logo on PDF +NEW: add option PROPOSAL_AUTO_ADD_AUTHOR_AS_CONTACT +NEW: Add option to display thirdparty adress in combolist +NEW: Add option to swap sender/recipient address on PDF +NEW: Add option to display thirdparty adress in combolist +NEW: Add project on pament of salaries +NEW: Add SHIPPING_PDF_HIDE_WEIGHT_AND_VOLUME and +NEW: Add somes hooks in bank planned entries +NEW: Add supplier ref in item reception page +NEW: Advanced permission to ignore price min +NEW: Allow to enter a timespent with a numeric value +NEW: Automatic position of scroll when creating an extrafield +NEW: Can add autorefresh=X in any URLs to refresh page after X seconds +NEW: can add project's task to agenda on create event form +NEW: Can delete a website in experimental website module +NEW: Can disable meteo on smartphone only +NEW: Can export/import a website template +NEW: Can filter on EEC, not EEC, etc... in binding step of accountancy +NEW: Can mix offset before and after with rules for due date of invoices +NEW: Can record the supplier product description +NEW: Can select several prospect level in thirdparty filter. +NEW: Can set 2 url in url field of thirdparty +NEW: Can set if a field is mandatory on form level. +NEW: Can set the default focus of each page. +NEW: Add category filter on user list +NEW: Change forgotten password link in general parameters +NEW: Child label of variants change if parent label changes +NEW: Compatibility with new Paybox HMAC requirement +NEW: Each user can set its prefered default calendar page +NEW: Enhancement in process to make manual bank conciliation +NEW: Enhancement in the generic file manager +NEW: Extrafield totalizable +NEW: Hidden conf INVOICE_USE_DEFAULT_DOCUMENT +NEW: hidden conf to search product by supplier ref +NEW: hidden constant to be able to use a thirdparty for donation +NEW: hidden option to define an invoice template for each invoice type +NEW: Highlight lines on lists when they are checked +NEW: Notification module support expense report+holiday validation and approval +NEW: On customer/supplier card, add simple tooltip to amount boxes +NEW: Page to check if the operations/items created between two dates have attached item(s) and possibility to download all attachements +NEW: possibility to add all rights of all modules in one time +NEW: redirect if only one result on global search on card +NEW: Permission to ignore price min +NEW: Can build an archive of full documents directory from backup page +NEW: tag odt line_product_ref_fourn for supplier doc lines +NEW: The binding step in accountancy has a country filter with autocompletion +NEW: Top menu is always on screen with MD theme. +NEW: Withdraw request massaction can include already partially paid invoices +NEW: Option "Simplify interface for blind persons" +NEW: Generic cash fence feature (compatible with several POS modules) + +For developers: +NEW: Add lib for multiselect with checkboxes +NEW: Add function isValidMXRecord +NEW: Add hook changeRoundingMode in update_price +NEW: Add hook formconfirm to contractcard +NEW: Add hook for virtual stock +NEW: ADD url to see the last version of a external module +NEW: Can enable a module, even external module, from command line +NEW: Can set a tooltip help text on extrafields +NEW: Add product search from barcode via REST api +NEW: can add documents on agenda events using API REST +NEW: Can set the datestart and dateend of cron job into module descriptor +NEW: Close #9296 Add field ref_ext into llx_categorie +NEW: move ticket dictionary in API /setup +NEW: PHPUnitTest on Loan class #3163 +NEW: Code changes to be more compatible with PSR2 +NEW: Removed trigger USER_LOGOUT, USER_LOGIN, USER_LOGIN_FAILED (Some hooks are already dedicated for that) +NEW: Add agenda documents in API REST +NEW: Add "checked" field for new list engine compatibility +NEW: REST API improvements +NEW: Save external payment IDs into table of payment +NEW: triggers add commercial and del commercial +NEW: #9236 Allow to import shipment lines via API +NEW: ADD civility list in API +NEW: support selllist in the module builder +NEW: optional param to show a specific extrafield +NEW: hook formConfirm always called if hooked +NEW: hook on dispatch order fourn + +WARNING: + +Following changes may create regressions for some external modules, but were necessary to make Dolibarr better: +* If you use some links like viewimages.php?modulepart=mycompany&file=... in your external modules, you must + replace them with links like viewimages.php?modulepart=mycompany&file=logos/... (note that link change only for + modulepart=mycompany that now works like others). +* Hidden option MAIN_PDF_SHIPPING_DISPLAY_AMOUNT_HT has been renamed into SHIPPING_PDF_DISPLAY_AMOUNT_HT +* Remove the no more used and deprecated dol_print_graph function + ***** ChangeLog for 8.0.4 compared to 8.0.3 ***** FIX: #10030 better german chart @@ -217,18 +350,17 @@ FIX: Table llx_facture_rec_extrafields missing after migration ***** ChangeLog for 8.0.0 compared to 7.0.0 ***** - For Users: NEW: Experimental module: Ticket NEW: Experimental module: WebDAV -NEW: Accept anonmymous events (no user assigned) +NEW: Accept anonymous events (no user assigned) NEW: Accountancy - Add import on general ledger NEW: Accountancy - Show journal name on journal page and hide button draft export (Add an option in admin) -NEW: Can create event from record card of a company and member -NEW: Add a button to create Stripe customer from the Payment mode tab +NEW: Can create event from record card of a company and/or member +NEW: Add a button to create Stripe customer from the customer Payment mode tab NEW: Add accounting account number on product tooltip -NEW: add any predefined mail content -NEW: Add arrows to navigate into containers in website module +NEW: Add any predefined mail content +NEW: Add arrows to navigate into containers in experimental website module NEW: Add a tab to specify accountant/auditor of the company NEW: Add Date delivery and Availability on Propals List NEW: Add date in goods reception supplier order table @@ -315,7 +447,7 @@ NEW: Filter export model is now by user NEW: Finish implementation of option PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES NEW: generalize use of button to create new element from list NEW: hidden conf AGENDA_NB_WEEKS_IN_VIEW_PER_USER to set nb weeks to show into per user view -NEW: hidden conf to assign category to thirparty that are not customer nor prospect nor supplier +NEW: hidden conf to assign category to thirparty that are neither customer nor prospect or supplier NEW: hidden conf to set nb weeks to show into user view NEW: hidden option MAIN_DISABLE_FREE_LINES NEW: improve way of adding users/sales representative to thirdparty diff --git a/README-FR.md b/README-FR.md index a9745bb8dbb..19d4ae25df9 100644 --- a/README-FR.md +++ b/README-FR.md @@ -16,8 +16,8 @@ Dolibarr est distribué sous les termes de la licence GNU General Public License ## INSTALLER DOLIBARR Si vous n'avez pas de connaissances techniques, et que vous recherchez -un programme d'installation qui install Dolibarr ERP/CRM en quelques clics, -vous devez vous réorienter vers DoliWamp (la version tout-en-un +un programme d'installation qui installe Dolibarr ERP/CRM en quelques clics, +vous devez vous ré-orienter vers DoliWamp (la version tout-en-un de Dolibarr pour Windows), DoliDeb (la version tout-en-un pour Debian ou Ubuntu) ou DoliRpm (la version tout-en-un de Dolibarr pour Fedora, Redhat, OpenSuse, Mandriva ou Mageia). @@ -25,39 +25,39 @@ OpenSuse, Mandriva ou Mageia). Vous pouvez les télécharger depuis la rubrique *download* du portail officiel: https://www.dolibarr.org/ -Si vous avez déjà installé un serveur Web avec PHP et une base de donnée (MariaDb/MySql/PostgreSql), +Si vous avez déjà installé un serveur Web avec PHP et une base de données (MariaDb/MySql/PostgreSql), vous pouvez installer Dolibarr avec cette version de la manière suivante: -- Copier le répertoire "dolibarr" et son contenu dans la racine de votre serveur - web, ou bien copier le répertoire sur le serveur et configurer ce serveur pour +- Copiez le répertoire "dolibarr" et son contenu dans la racine de votre serveur + web, ou bien copiez le répertoire sur le serveur et configurez ce serveur pour utiliser "dolibarr/htdocs" comme racine d'un nouveau virtual host (ce second choix requiert des compétences et habilitations en administration du serveur web). -- Créer un fichier vide "htdocs/conf/conf.php" et attribuer les permissions +- Créez un fichier vide "htdocs/conf/conf.php" et attribuez les permissions en lecture et écriture pour le user du serveur web (les permissions en écriture seront supprimées une fois l'installation terminée). -- Depuis votre navigateur, appeler la page "install/" de dolibarr. L'url dépend - du choix fait à la première etape: +- Depuis votre navigateur, appelez la page "install/" de dolibarr. L'url dépend + du choix fait à la première étape: http://localhost/dolibarr/htdocs/install/ ou http://yourdolibarrvirtualhost/install/ -- Suivez les instructions fournies par l'installeur... +- Suivez les instructions fournies par l'installateur... ## METTRE A JOUR DOLIBARR -Pour mettre a jour Dolibarr depuis une vieille version vers celle ci: -- Ecraser les vieux fichiers dans le vieux repertoire 'dolibarr' par les fichiers +Pour mettre à jour Dolibarr depuis une vieille version vers celle ci: +- Ecrasez les vieux fichiers dans le vieux répertoire 'dolibarr' par les fichiers fournis dans ce nouveau package. -- Au prochain accès, Dolibarr proposera la page de "mise a jour" des données (si necessaire). - Si un fichier install.lock existe pour vérouiller le processus de mise à jour, il sera demandé de le supprimer manuellement (vous devriez trouver le fichier install.lock dans le répertoire utilisé pour stocker les documents générés ou transféré sur le serveur. Dans la plupart des cas, c'est le répertoire appelé "documents") - -*Note: Le processus de migration peut etre lancé manuellement et plusieurs fois, sans risque, en appelant la page /install/* +- Au prochain accès, Dolibarr proposera la page de "mise à jour" des données (si nécessaire). + Si un fichier install.lock existe pour verrouiller le processus de mise à jour, il sera demandé de le supprimer manuellement (vous devriez trouver le fichier install.lock dans le répertoire utilisé pour stocker les documents générés ou transférés sur le serveur. Dans la plupart des cas, c'est le répertoire appelé "documents") + +*Note: Le processus de migration peut être lancé manuellement et plusieurs fois, sans risque, en appelant la page /install/* ## CE QUI EST NOUVEAU @@ -94,14 +94,15 @@ Voir fichier ChangeLog. - Gestion de marque-pages - Gestion des promesses de dons -- Gestion de la TVA NPR (non perçue récupérable - pour les utilisateurs français des DOM-TOM) - Rapports - Imports/Exports des données +- Support des codes barres +- Calcul des marges - Connectivité LDAP - Intégratn de ClickToDial - Intégration RSS - Intégation Skype -- Intégration de système de paiements (Paypal, Strip, Paybox...) +- Intégration de système de paiements (Paypal, Stripe, Paybox...) - … ### Divers: @@ -114,9 +115,18 @@ Voir fichier ChangeLog. - Application simple à utiliser. - Requiert PHP et MariaDb, Mysql ou Postgresql (Voir versions exactes sur https://wiki.dolibarr.org/index.php/Prérequis). - Compatible avec toutes les offres Cloud du marché respectant les prérequis de base de données et PHP. -- Code simple et facilement personnalisable (pas de framework lourd; mécanisme de hook et triggers). - APIs. - Génération PDF et ODT des éléments (factures, propositions commerciales, commandes, bons expéditions, etc...) +- Code simple et facilement personnalisable (pas de framework lourd; mécanisme de hook et triggers). +- Support natif de nombreuses fonctions spécifiques aux pays comme: + - La tax espagnole TE et ISPF + - Gestion de la TVA NPR (non perçue récupérable - pour les utilisateurs français des DOM-TOM) + - La loi française Finance 2016 et logiciels de caisse + - La double taxe canadienne + - Le timbre fiscal tunisien + - Numérotation de facture de l'argentines (avec type A,B,C...) + - Compatible avec vos processus RGPD + - ... - … ### Extension @@ -126,7 +136,7 @@ Dolibarr peut aussi être étendu à volonté avec l'ajout de module/application ## CE QUE DOLIBARR NE PEUT PAS (ENCORE) FAIRE -Voici un liste de fonctionnalites pas encore gérées par Dolibarr: +Voici un liste de fonctionnalités pas encore gérées par Dolibarr: - Dolibarr ne contient pas de module de Gestion de la paie. - Les tâches du module de gestion de projets n'ont pas de dépendances entre elle. - Dolibarr n'embarque pas de Webmail intégré nativement. @@ -135,7 +145,7 @@ Voici un liste de fonctionnalites pas encore gérées par Dolibarr: ## DOCUMENTATION -Les documentations utilisateur, développeur et traducteur sont disponible sous forme de ressources de la communautés via la site [Wiki](https://wiki.dolibarr.org). +La documentation utilisateur, développeur et traducteur est disponible sous forme de ressources de la communauté via le site [Wiki](https://wiki.dolibarr.org). ## CONTRIBUER diff --git a/README.md b/README.md index 5feec47e56f..bcff409035f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ # DOLIBARR ERP & CRM -![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/8.0.svg) ![Downloads per day](https://img.shields.io/sourceforge/dm/dolibarr.svg) +![Downloads per day](https://img.shields.io/sourceforge/dm/dolibarr.svg) +[![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com) + +|6|7|8|9|develop| +|----------|----------|----------|----------|----------| +|![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/6.0.svg)|![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/7.0.svg)|![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/8.0.svg)|![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/9.0.svg)|![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/develop.svg)| Dolibarr ERP & CRM is a modern software package to manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…). @@ -125,7 +130,6 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) - Donations management - Reporting - Data export/import -- Thirdparties and/or products categories - Barcodes support - Margin calculations - LDAP connectivity @@ -147,13 +151,15 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) - Compatible with all Cloud solutions that match MySQL, PHP or PostgreSQL prerequisites. - APIs. - An easy to understand, maintain and develop code (PHP with no heavy framework; trigger and hook architecture) -- Support for country specific features: +- Support a lot of country specific features: - Spanish Tax RE and ISPF - French NPR VAT rate (VAT called "Non Perçue Récupérable" for DOM-TOM) - Canadian double taxes (federal/province) and other countries using cumulative VAT - Tunisian tax stamp - Argentina invoice numbering using A,B,C... - Compatible with [European directives](http://europa.eu/legislation_summaries/taxation/l31057_en.htm) (2006/112/CE ... 2010/45/UE) + - Compatible with European GDPR rules + - ... - PDF or ODT generation for invoice, proposals, orders... - … diff --git a/build/README b/build/README index 4816be8bc3a..27ddf4178fd 100644 --- a/build/README +++ b/build/README @@ -16,18 +16,20 @@ Note: Prerequisites to build tgz, debian, rpm package > apt-get install tar dpkg dpatch p7zip-full rpm zip Note: Prerequisites to build autoexe DoliWamp package: +> apt-get install wine q4wine +> Launch "wine cmd" to check a drive Z: pointing to / exists. > Install InnoSetup For example by running isetup-5.3.9.exe (http://www.jrsoftware.org) > Install WampServer into "C:\Program Files\Wamp" - For example by running wampserver2.2e-php5.4.3-httpd-2.4.2-mysql5.5.24-x64.exe (http://www.wampserver.com) -> Install WampServer addon to have versions: Apache2.2.11, Mysql5.0.45, Php5.3.0 - For example by running WampServer2-APACHE2211.exe (http://www.wampserver.com) + For example by running wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.exe (http://www.wampserver.com) +> Install WampServer addon to have versions: Mysql5.0.45 For example by running WampServer2-MYSQL5045.exe (http://www.wampserver.com) - For example by running WampServer2-PHP530.exe (http://www.wampserver.com) > To build from Windows (running from makepack-dolibarr.pl script is however recommanded), open file build/exe/doliwamp.iss and click on button "Compile". The .exe file will be build into directory build. - +> 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 + - To build a theme package, launch the script > perl makepack-dolibarrtheme.pl @@ -46,9 +48,6 @@ generated packages will not contains this "build" directory. We can find in "build", following sub-directories: -* aps: -To build APS package. - * debian: To build Debian package. diff --git a/build/aps/APP-META-1.1.xml b/build/aps/APP-META-1.1.xml deleted file mode 100644 index 1394da4d4be..00000000000 --- a/build/aps/APP-META-1.1.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - Dolibarr ERP-CRM - __VERSION__ - __RELEASE__ - http://www.dolibarr.org/ - - Dolibarr - http://www.dolibarr.org/ - - - - Laurent Destailleur - http://www.nltechno.com - uuid:e743ee30-9fe8-11e0-a32e-0025115d642c - - - Dolibarr ERP-CRM, the easy to use software to manage small or medium companies, freelancers or foundations - -Dolibarr is a free modular software (you see only -features you need) to manage small and medium companies, freelancers -or foundations. -This OpenSource software is designed to provide all features you need to -manage information on many aspects of your business -into an intuitive and user-friendly graphical interface -It's an OpenSource software you can install on a web server or as a -standalone software. Dolibarr is designed to provide simplicity to end-user. - - - - Screenshot 1 - - - - See http://www.dolibarr.org/files/ChangeLog - - - - Back office/Billing - Back office/Accounting and Financial - Back office/Customer Relationship Management - Back office/Enterprise Resource Planning - - - en - fr - es - de - pt - - - - - - - - - GPL-3.0+ - COPYING - - - - Dolibarr instance - Dolibarr services - - - - - - - - - - - - - - mysql - mbstring - false - - main - dolibarr - false - mysql - 4.3.1 - - - - - - dolibarr - 35000000 - - - php - - - - - - php - - - - - \ No newline at end of file diff --git a/build/aps/APP-META-1.2.xml b/build/aps/APP-META-1.2.xml deleted file mode 100644 index 1ce51207dd8..00000000000 --- a/build/aps/APP-META-1.2.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - dolibarr - Dolibarr - __VERSION__ - __RELEASE__ - http://www.dolibarr.org/ - - Dolibarr - http://www.dolibarr.org/ - - - - Laurent Destailleur - http://www.nltechno.com - uuid:e743ee30-9fe8-11e0-a32e-0025115d642c - - - Dolibarr ERP - CRM, the easy to use software to manage small or medium companies, freelancers or foundations - -Dolibarr is a free modular software (you see only -features you need) to manage small and medium companies, freelancers -or foundations. -This OpenSource software is designed to provide all features you need to -manage information on many aspects of your business -into an intuitive and user-friendly graphical interface -It's an OpenSource software you can install on a web server or as a -standalone software. Dolibarr is designed to provide simplicity to end-user. - - - - Screenshot 1 - - - - See http://www.dolibarr.org/files/ChangeLog - - - - Back office/Billing - Back office/Accounting and Financial - Back office/Customer Relationship Management - Back office/Enterprise Resource Planning - - - en - fr - es - de - pt - - - - - - - - - GPL-3.0+ - COPYING - - - - Dolibarr instance - - - - - - - - - - Administrator's preferences - - Administrator's login - -Please make sure the text you entered starts with a letter and continues with either numbers, letters, underscores or hyphens. - - - - Password - - - - - - - mysql - mbstring - false - - main - dolibarr - false - mysql - 4.3.1 - - - - - - dolibarr - 35000000 - - - php - - - - - - php - - - - - \ No newline at end of file diff --git a/build/aps/Limitations of APS Support in the Panel.html b/build/aps/Limitations of APS Support in the Panel.html deleted file mode 100644 index 51ba8e18378..00000000000 --- a/build/aps/Limitations of APS Support in the Panel.html +++ /dev/null @@ -1,89 +0,0 @@ - - Limitations of APS Support in the Panel - - - - - - - - -

Limitations of APS Support in the Panel

-

About This Document

-

This document is addressed to independent software -vendors who plan to distribute web applications among the Panel users. -The aim of the document is to help vendors find out whether they can -package their applications to APS to make them available through the -Panel.

-

The document does not contain information about -Application Packaging Standard itself or give application packaging -instructions. It focuses on how the Panel implements APS and what APS -packages are not supported by this implementation.

-

-

APS Support in the Panel

-

Application Packaging Standard (APS) - is a set of rules that defines a web application packaging format. This - standard is designed to ease the integration of applications in a -service provider's infrastructure. It covers provisioning, management, -and integration of cloud-based services and applications.

-

The Panel uses APS to offer third-party applications to hosting customers. These applications are presented in APS catalog, where the customers can buy or download them.

-

Currently, the Panel does not support all aspects of - APS. Therefore, customers may have problems trying to install certain -applications. To find out whether your application is compatible with -the Panel, see section Plesk Panel Restrictions.

-

You can find more information about APS at http://www.apsstandard.org/.

-

APS specification and supporting documents are available at http://www.apsstandard.org/isv/documentation/.

-

-

Restrictions on Packages Processing

-

The current Panel version has restrictions on APS -applications processing. If an application requires performing -restricted actions, the Panel will not install it. Particularly, these -actions are the following:

-
  • Sending e-mails or processing incoming mail.

    See Mail aspect of APS in APS Format Specification v1.2, section 8.8. Mail at http://www.apsstandard.org/r/doc/package-format-specification-1.2/index.html#s.aspects.mail

    -
  • Changing the DNS resource records of an environment where the application works.

    See DNS aspect in APS Format Specification v1.2, section 8.10. DNS Zone at http://www.apsstandard.org/r/doc/package-format-specification-1.2/index.html#s.aspects.dns

    -
  • Installing third-party dynamic libraries (*.dll, *.so).

    See DLL aspect in APS Format Specification v1.2, section 8.11. DLL Content Processing Method at http://www.apsstandard.org/r/doc/package-format-specification-1.2/index.html#s.aspects.dll

    -
  • Updating older version of application with -complex changes in application settings or deployment logic. According -to APS, such updates are called upgrades. For more information on the application updates, see the APS Format Specification v1.2, section 5.1.15 Updates at http://www.apsstandard.org/r/doc/package-format-specification-1.2/index.html#s.metadata.common.update

If - you need you application to perform these actions, consider other ways -of integration with the Panel: API RPC, modules or Panel Notifications.

-

Also, the Panel does not support the following actions defined in the application package:

-
  • Checking application settings for consistency via verification script. For more information on verification scripts, see the APS Format Specification v1.2, section 5.3.3 Verification Script at http://www.apsstandard.org/r/doc/package-format-specification-1.2/index.html#s.metadata.provision.verification-script
  • Processing application resource usage reports defined by resource counters and passed by resource script . For more information on resource counters and resource scripts, see the APS Format Specification v1.2, section 5.2.6. Resources at http://www.apsstandard.org/r/doc/package-format-specification-1.2/index.html#s.metadata.service.resources and 5.3.3 Resources Script at http://www.apsstandard.org/r/doc/package-format-specification-1.2/index.html#s.metadata.provision.resource-script
  • - -

    Copyright Notice

    - - - - - - - - - - - - - - - - - - - -

    -Please send us your feedback on this help page.

    - - - - -
- \ No newline at end of file diff --git a/build/aps/Limitations of APS Support in the Panel_fichiers/highlight.js b/build/aps/Limitations of APS Support in the Panel_fichiers/highlight.js deleted file mode 100644 index d6386c93792..00000000000 --- a/build/aps/Limitations of APS Support in the Panel_fichiers/highlight.js +++ /dev/null @@ -1,64 +0,0 @@ -function last(href) -{ - var ret = href.split("/"); - return ret[ret.length-1]; -} - -function StopProcess() -{ -LeftFrame = parent.TOC.document.location.href; -LeftFrame = last(LeftFrame); -if (LeftFrame == "dhtml_search.htm") return 1 -else return 0; -} - - - -function highlightTOC(str) { - - - - - - if (StopProcess()) return; - try { - - str = str || parent.BODY.document.location.href; - uri = last(str); - list = parent.TOC.document.getElementsByTagName("a"); - for(i=0; i - * - * For a fairly comprehensive set of languages see the - * README - * file that came with this source. At a minimum, the lexer should work on a - * number of languages including C and friends, Java, Python, Bash, SQL, HTML, - * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk - * and a subset of Perl, but, because of commenting conventions, doesn't work on - * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. - *

- * Usage:

    - *
  1. include this source file in an html page via - * {@code } - *
  2. define style rules. See the example page for examples. - *
  3. mark the {@code
    } and {@code } tags in your source with
    - *    {@code class=prettyprint.}
    - *    You can also use the (html deprecated) {@code } tag, but the pretty
    - *    printer needs to do more substantial DOM manipulations to support that, so
    - *    some css styles may not be preserved.
    - * </ol>
    - * That's it.  I wanted to keep the API as simple as possible, so there's no
    - * need to specify which language the code is in, but if you wish, you can add
    - * another class to the {@code <pre>} or {@code <code>} element to specify the
    - * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
    - * starts with "lang-" followed by a file extension, specifies the file type.
    - * See the "lang-*.js" files in this directory for code that implements
    - * per-language file handlers.
    - * <p>
    - * Change log:<br>
    - * cbeust, 2006/08/22
    - * <blockquote>
    - *   Java annotations (start with "@") are now captured as literals ("lit")
    - * </blockquote>
    - * @requires console
    - */
    -
    -// JSLint declarations
    -/*global console, document, navigator, setTimeout, window */
    -
    -/**
    - * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
    - * UI events.
    - * If set to {@code false}, {@code prettyPrint()} is synchronous.
    - */
    -window['PR_SHOULD_USE_CONTINUATION'] = true;
    -
    -/** the number of characters between tab columns */
    -window['PR_TAB_WIDTH'] = 8;
    -
    -/** Walks the DOM returning a properly escaped version of innerHTML.
    -  * @param {Node} node
    -  * @param {Array.<string>} out output buffer that receives chunks of HTML.
    -  */
    -window['PR_normalizedHtml']
    -
    -/** Contains functions for creating and registering new language handlers.
    -  * @type {Object}
    -  */
    -  = window['PR']
    -
    -/** Pretty print a chunk of code.
    -  *
    -  * @param {string} sourceCodeHtml code as html
    -  * @return {string} code as html, but prettier
    -  */
    -  = window['prettyPrintOne']
    -/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
    -  * {@code class=prettyprint} and prettify them.
    -  * @param {Function?} opt_whenDone if specified, called when the last entry
    -  *     has been finished.
    -  */
    -  = window['prettyPrint'] = void 0;
    -
    -/** browser detection. @extern @returns false if not IE, otherwise the major version. */
    -window['_pr_isIE6'] = function () {
    -  var ieVersion = navigator && navigator.userAgent &&
    -      navigator.userAgent.match(/\bMSIE ([678])\./);
    -  ieVersion = ieVersion ? +ieVersion[1] : false;
    -  window['_pr_isIE6'] = function () { return ieVersion; };
    -  return ieVersion;
    -};
    -
    -
    -(function () {
    -  // Keyword lists for various languages.
    -  var FLOW_CONTROL_KEYWORDS =
    -      "break continue do else for if return while ";
    -  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
    -      "double enum extern float goto int long register short signed sizeof " +
    -      "static struct switch typedef union unsigned void volatile ";
    -  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
    -      "new operator private protected public this throw true try typeof ";
    -  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
    -      "concept concept_map const_cast constexpr decltype " +
    -      "dynamic_cast explicit export friend inline late_check " +
    -      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
    -      "template typeid typename using virtual wchar_t where ";
    -  var JAVA_KEYWORDS = COMMON_KEYWORDS +
    -      "abstract boolean byte extends final finally implements import " +
    -      "instanceof null native package strictfp super synchronized throws " +
    -      "transient ";
    -  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
    -      "as base by checked decimal delegate descending event " +
    -      "fixed foreach from group implicit in interface internal into is lock " +
    -      "object out override orderby params partial readonly ref sbyte sealed " +
    -      "stackalloc string select uint ulong unchecked unsafe ushort var ";
    -  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
    -      "debugger eval export function get null set undefined var with " +
    -      "Infinity NaN ";
    -  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
    -      "goto if import last local my next no our print package redo require " +
    -      "sub undef unless until use wantarray while BEGIN END ";
    -  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
    -      "elif except exec finally from global import in is lambda " +
    -      "nonlocal not or pass print raise try with yield " +
    -      "False True None ";
    -  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
    -      " defined elsif end ensure false in module next nil not or redo rescue " +
    -      "retry self super then true undef unless until when yield BEGIN END ";
    -  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
    -      "function in local set then until ";
    -  var ALL_KEYWORDS = (
    -      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
    -      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
    -
    -  // token style names.  correspond to css classes
    -  /** token style for PHP variables */
    -  var PR_VAR = 'vr';
    -  /** token style for a string literal */
    -  var PR_STRING = 'str';
    -  /** token style for a keyword */
    -  var PR_KEYWORD = 'kwd';
    -  /** token style for a comment */
    -  var PR_COMMENT = 'com';
    -  /** token style for a type */
    -  var PR_TYPE = 'typ';
    -  /** token style for a literal value.  e.g. 1, null, true. */
    -  var PR_LITERAL = 'lit';
    -  /** token style for a punctuation string. */
    -  var PR_PUNCTUATION = 'pun';
    -  /** token style for a punctuation string. */
    -  var PR_PLAIN = 'pln';
    -
    -  /** token style for an sgml tag. */
    -  var PR_TAG = 'tag';
    -  /** token style for a markup declaration such as a DOCTYPE. */
    -  var PR_DECLARATION = 'dec';
    -  /** token style for embedded source. */
    -  var PR_SOURCE = 'src';
    -  /** token style for an sgml attribute name. */
    -  var PR_ATTRIB_NAME = 'atn';
    -  /** token style for an sgml attribute value. */
    -  var PR_ATTRIB_VALUE = 'atv';
    -
    -  /**
    -   * A class that indicates a section of markup that is not code, e.g. to allow
    -   * embedding of line numbers within code listings.
    -   */
    -  var PR_NOCODE = 'nocode';
    -
    -  /** A set of tokens that can precede a regular expression literal in
    -    * javascript.
    -    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
    -    * list, but I've removed ones that might be problematic when seen in
    -    * languages that don't support regular expression literals.
    -    *
    -    * <p>Specifically, I've removed any keywords that can't precede a regexp
    -    * literal in a syntactically legal javascript program, and I've removed the
    -    * "in" keyword since it's not a keyword in many languages, and might be used
    -    * as a count of inches.
    -    *
    -    * <p>The link a above does not accurately describe EcmaScript rules since
    -    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
    -    * very well in practice.
    -    *
    -    * @private
    -    */
    -  var REGEXP_PRECEDER_PATTERN = function () {
    -      var preceders = [
    -          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
    -          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
    -          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
    -          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
    -          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
    -          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
    -          "||=", "~" /* handles =~ and !~ */,
    -          "break", "case", "continue", "delete",
    -          "do", "else", "finally", "instanceof",
    -          "return", "throw", "try", "typeof"
    -          ];
    -      var pattern = '(?:^^|[+-]';
    -      for (var i = 0; i < preceders.length; ++i) {
    -        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
    -      }
    -      pattern += ')\\s*';  // matches at end, and matches empty string
    -      return pattern;
    -      // CAVEAT: this does not properly handle the case where a regular
    -      // expression immediately follows another since a regular expression may
    -      // have flags for case-sensitivity and the like.  Having regexp tokens
    -      // adjacent is not valid in any language I'm aware of, so I'm punting.
    -      // TODO: maybe style special characters inside a regexp as punctuation.
    -    }();
    -
    -  // Define regexps here so that the interpreter doesn't have to create an
    -  // object each time the function containing them is called.
    -  // The language spec requires a new object created even if you don't access
    -  // the $1 members.
    -  var pr_amp = /&/g;
    -  var pr_lt = /</g;
    -  var pr_gt = />/g;
    -  var pr_quot = /\"/g;
    -  /** like textToHtml but escapes double quotes to be attribute safe. */
    -  function attribToHtml(str) {
    -    return str.replace(pr_amp, '&amp;')
    -        .replace(pr_lt, '&lt;')
    -        .replace(pr_gt, '&gt;')
    -        .replace(pr_quot, '&quot;');
    -  }
    -
    -  /** escapest html special characters to html. */
    -  function textToHtml(str) {
    -    return str.replace(pr_amp, '&amp;')
    -        .replace(pr_lt, '&lt;')
    -        .replace(pr_gt, '&gt;');
    -  }
    -
    -
    -  var pr_ltEnt = /&lt;/g;
    -  var pr_gtEnt = /&gt;/g;
    -  var pr_aposEnt = /&apos;/g;
    -  var pr_quotEnt = /&quot;/g;
    -  var pr_ampEnt = /&amp;/g;
    -  var pr_nbspEnt = /&nbsp;/g;
    -  /** unescapes html to plain text. */
    -  function htmlToText(html) {
    -    var pos = html.indexOf('&');
    -    if (pos < 0) { return html; }
    -    // Handle numeric entities specially.  We can't use functional substitution
    -    // since that doesn't work in older versions of Safari.
    -    // These should be rare since most browsers convert them to normal chars.
    -    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
    -      var end = html.indexOf(';', pos);
    -      if (end >= 0) {
    -        var num = html.substring(pos + 3, end);
    -        var radix = 10;
    -        if (num && num.charAt(0) === 'x') {
    -          num = num.substring(1);
    -          radix = 16;
    -        }
    -        var codePoint = parseInt(num, radix);
    -        if (!isNaN(codePoint)) {
    -          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
    -                  html.substring(end + 1));
    -        }
    -      }
    -    }
    -
    -    return html.replace(pr_ltEnt, '<')
    -        .replace(pr_gtEnt, '>')
    -        .replace(pr_aposEnt, "'")
    -        .replace(pr_quotEnt, '"')
    -        .replace(pr_nbspEnt, ' ')
    -        .replace(pr_ampEnt, '&');
    -  }
    -
    -  /** is the given node's innerHTML normally unescaped? */
    -  function isRawContent(node) {
    -    return 'XMP' === node.tagName;
    -  }
    -
    -  var newlineRe = /[\r\n]/g;
    -  /**
    -   * Are newlines and adjacent spaces significant in the given node's innerHTML?
    -   */
    -  function isPreformatted(node, content) {
    -    // PRE means preformatted, and is a very common case, so don't create
    -    // unnecessary computed style objects.
    -    if ('PRE' === node.tagName) { return true; }
    -    if (!newlineRe.test(content)) { return true; }  // Don't care
    -    var whitespace = '';
    -    // For disconnected nodes, IE has no currentStyle.
    -    if (node.currentStyle) {
    -      whitespace = node.currentStyle.whiteSpace;
    -    } else if (window.getComputedStyle) {
    -      // Firefox makes a best guess if node is disconnected whereas Safari
    -      // returns the empty string.
    -      whitespace = window.getComputedStyle(node, null).whiteSpace;
    -    }
    -    return !whitespace || whitespace === 'pre';
    -  }
    -
    -  function normalizedHtml(node, out, opt_sortAttrs) {
    -    switch (node.nodeType) {
    -      case 1:  // an element
    -        var name = node.tagName.toLowerCase();
    -
    -        out.push('<', name);
    -        var attrs = node.attributes;
    -        var n = attrs.length;
    -        if (n) {
    -          if (opt_sortAttrs) {
    -            var sortedAttrs = [];
    -            for (var i = n; --i >= 0;) { sortedAttrs[i] = attrs[i]; }
    -            sortedAttrs.sort(function (a, b) {
    -                return (a.name < b.name) ? -1 : a.name === b.name ? 0 : 1;
    -              });
    -            attrs = sortedAttrs;
    -          }
    -          for (var i = 0; i < n; ++i) {
    -            var attr = attrs[i];
    -            if (!attr.specified) { continue; }
    -            out.push(' ', attr.name.toLowerCase(),
    -                     '="', attribToHtml(attr.value), '"');
    -          }
    -        }
    -        out.push('>');
    -        for (var child = node.firstChild; child; child = child.nextSibling) {
    -          normalizedHtml(child, out, opt_sortAttrs);
    -        }
    -        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
    -          out.push('<\/', name, '>');
    -        }
    -        break;
    -      case 3: case 4: // text
    -        out.push(textToHtml(node.nodeValue));
    -        break;
    -    }
    -  }
    -
    -  /**
    -   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
    -   * matches the union o the sets o strings matched d by the input RegExp.
    -   * Since it matches globally, if the input strings have a start-of-input
    -   * anchor (/^.../), it is ignored for the purposes of unioning.
    -   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
    -   * @return {RegExp} a global regex.
    -   */
    -  function combinePrefixPatterns(regexs) {
    -    var capturedGroupIndex = 0;
    -
    -    var needToFoldCase = false;
    -    var ignoreCase = false;
    -    for (var i = 0, n = regexs.length; i < n; ++i) {
    -      var regex = regexs[i];
    -      if (regex.ignoreCase) {
    -        ignoreCase = true;
    -      } else if (/[a-z]/i.test(regex.source.replace(
    -                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
    -        needToFoldCase = true;
    -        ignoreCase = false;
    -        break;
    -      }
    -    }
    -
    -    function decodeEscape(charsetPart) {
    -      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
    -      switch (charsetPart.charAt(1)) {
    -        case 'b': return 8;
    -        case 't': return 9;
    -        case 'n': return 0xa;
    -        case 'v': return 0xb;
    -        case 'f': return 0xc;
    -        case 'r': return 0xd;
    -        case 'u': case 'x':
    -          return parseInt(charsetPart.substring(2), 16)
    -              || charsetPart.charCodeAt(1);
    -        case '0': case '1': case '2': case '3': case '4':
    -        case '5': case '6': case '7':
    -          return parseInt(charsetPart.substring(1), 8);
    -        default: return charsetPart.charCodeAt(1);
    -      }
    -    }
    -
    -    function encodeEscape(charCode) {
    -      if (charCode < 0x20) {
    -        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
    -      }
    -      var ch = String.fromCharCode(charCode);
    -      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
    -        ch = '\\' + ch;
    -      }
    -      return ch;
    -    }
    -
    -    function caseFoldCharset(charSet) {
    -      var charsetParts = charSet.substring(1, charSet.length - 1).match(
    -          new RegExp(
    -              '\\\\u[0-9A-Fa-f]{4}'
    -              + '|\\\\x[0-9A-Fa-f]{2}'
    -              + '|\\\\[0-3][0-7]{0,2}'
    -              + '|\\\\[0-7]{1,2}'
    -              + '|\\\\[\\s\\S]'
    -              + '|-'
    -              + '|[^-\\\\]',
    -              'g'));
    -      var groups = [];
    -      var ranges = [];
    -      var inverse = charsetParts[0] === '^';
    -      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
    -        var p = charsetParts[i];
    -        switch (p) {
    -          case '\\B': case '\\b':
    -          case '\\D': case '\\d':
    -          case '\\S': case '\\s':
    -          case '\\W': case '\\w':
    -            groups.push(p);
    -            continue;
    -        }
    -        var start = decodeEscape(p);
    -        var end;
    -        if (i + 2 < n && '-' === charsetParts[i + 1]) {
    -          end = decodeEscape(charsetParts[i + 2]);
    -          i += 2;
    -        } else {
    -          end = start;
    -        }
    -        ranges.push([start, end]);
    -        // If the range might intersect letters, then expand it.
    -        if (!(end < 65 || start > 122)) {
    -          if (!(end < 65 || start > 90)) {
    -            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
    -          }
    -          if (!(end < 97 || start > 122)) {
    -            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
    -          }
    -        }
    -      }
    -
    -      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
    -      // -> [[1, 12], [14, 14], [16, 17]]
    -      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
    -      var consolidatedRanges = [];
    -      var lastRange = [NaN, NaN];
    -      for (var i = 0; i < ranges.length; ++i) {
    -        var range = ranges[i];
    -        if (range[0] <= lastRange[1] + 1) {
    -          lastRange[1] = Math.max(lastRange[1], range[1]);
    -        } else {
    -          consolidatedRanges.push(lastRange = range);
    -        }
    -      }
    -
    -      var out = ['['];
    -      if (inverse) { out.push('^'); }
    -      out.push.apply(out, groups);
    -      for (var i = 0; i < consolidatedRanges.length; ++i) {
    -        var range = consolidatedRanges[i];
    -        out.push(encodeEscape(range[0]));
    -        if (range[1] > range[0]) {
    -          if (range[1] + 1 > range[0]) { out.push('-'); }
    -          out.push(encodeEscape(range[1]));
    -        }
    -      }
    -      out.push(']');
    -      return out.join('');
    -    }
    -
    -    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
    -      // Split into character sets, escape sequences, punctuation strings
    -      // like ('(', '(?:', ')', '^'), and runs of characters that do not
    -      // include any of the above.
    -      var parts = regex.source.match(
    -          new RegExp(
    -              '(?:'
    -              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
    -              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
    -              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
    -              + '|\\\\[0-9]+'  // a back-reference or octal escape
    -              + '|\\\\[^ux0-9]'  // other escape sequence
    -              + '|\\(\\?[:!=]'  // start of a non-capturing group
    -              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
    -              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
    -              + ')',
    -              'g'));
    -      var n = parts.length;
    -
    -      // Maps captured group numbers to the number they will occupy in
    -      // the output or to -1 if that has not been determined, or to
    -      // undefined if they need not be capturing in the output.
    -      var capturedGroups = [];
    -
    -      // Walk over and identify back references to build the capturedGroups
    -      // mapping.
    -      for (var i = 0, groupIndex = 0; i < n; ++i) {
    -        var p = parts[i];
    -        if (p === '(') {
    -          // groups are 1-indexed, so max group index is count of '('
    -          ++groupIndex;
    -        } else if ('\\' === p.charAt(0)) {
    -          var decimalValue = +p.substring(1);
    -          if (decimalValue && decimalValue <= groupIndex) {
    -            capturedGroups[decimalValue] = -1;
    -          }
    -        }
    -      }
    -
    -      // Renumber groups and reduce capturing groups to non-capturing groups
    -      // where possible.
    -      for (var i = 1; i < capturedGroups.length; ++i) {
    -        if (-1 === capturedGroups[i]) {
    -          capturedGroups[i] = ++capturedGroupIndex;
    -        }
    -      }
    -      for (var i = 0, groupIndex = 0; i < n; ++i) {
    -        var p = parts[i];
    -        if (p === '(') {
    -          ++groupIndex;
    -          if (capturedGroups[groupIndex] === undefined) {
    -            parts[i] = '(?:';
    -          }
    -        } else if ('\\' === p.charAt(0)) {
    -          var decimalValue = +p.substring(1);
    -          if (decimalValue && decimalValue <= groupIndex) {
    -            parts[i] = '\\' + capturedGroups[groupIndex];
    -          }
    -        }
    -      }
    -
    -      // Remove any prefix anchors so that the output will match anywhere.
    -      // ^^ really does mean an anchored match though.
    -      for (var i = 0, groupIndex = 0; i < n; ++i) {
    -        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
    -      }
    -
    -      // Expand letters to groupts to handle mixing of case-sensitive and
    -      // case-insensitive patterns if necessary.
    -      if (regex.ignoreCase && needToFoldCase) {
    -        for (var i = 0; i < n; ++i) {
    -          var p = parts[i];
    -          var ch0 = p.charAt(0);
    -          if (p.length >= 2 && ch0 === '[') {
    -            parts[i] = caseFoldCharset(p);
    -          } else if (ch0 !== '\\') {
    -            // TODO: handle letters in numeric escapes.
    -            parts[i] = p.replace(
    -                /[a-zA-Z]/g,
    -                function (ch) {
    -                  var cc = ch.charCodeAt(0);
    -                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
    -                });
    -          }
    -        }
    -      }
    -
    -      return parts.join('');
    -    }
    -
    -    var rewritten = [];
    -    for (var i = 0, n = regexs.length; i < n; ++i) {
    -      var regex = regexs[i];
    -      if (regex.global || regex.multiline) { throw new Error('' + regex); }
    -      rewritten.push(
    -          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
    -    }
    -
    -    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
    -  }
    -
    -  var PR_innerHtmlWorks = null;
    -  function getInnerHtml(node) {
    -    // inner html is hopelessly broken in Safari 2.0.4 when the content is
    -    // an html description of well formed XML and the containing tag is a PRE
    -    // tag, so we detect that case and emulate innerHTML.
    -    if (null === PR_innerHtmlWorks) {
    -      var testNode = document.createElement('PRE');
    -      testNode.appendChild(
    -          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
    -      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
    -    }
    -
    -    if (PR_innerHtmlWorks) {
    -      var content = node.innerHTML;
    -      // XMP tags contain unescaped entities so require special handling.
    -      if (isRawContent(node)) {
    -        content = textToHtml(content);
    -      } else if (!isPreformatted(node, content)) {
    -        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
    -            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
    -      }
    -      return content;
    -    }
    -
    -    var out = [];
    -    for (var child = node.firstChild; child; child = child.nextSibling) {
    -      normalizedHtml(child, out);
    -    }
    -    return out.join('');
    -  }
    -
    -  /** returns a function that expand tabs to spaces.  This function can be fed
    -    * successive chunks of text, and will maintain its own internal state to
    -    * keep track of how tabs are expanded.
    -    * @return {function (string) : string} a function that takes
    -    *   plain text and return the text with tabs expanded.
    -    * @private
    -    */
    -  function makeTabExpander(tabWidth) {
    -    var SPACES = '                ';
    -    var charInLine = 0;
    -
    -    return function (plainText) {
    -      // walk over each character looking for tabs and newlines.
    -      // On tabs, expand them.  On newlines, reset charInLine.
    -      // Otherwise increment charInLine
    -      var out = null;
    -      var pos = 0;
    -      for (var i = 0, n = plainText.length; i < n; ++i) {
    -        var ch = plainText.charAt(i);
    -
    -        switch (ch) {
    -          case '\t':
    -            if (!out) { out = []; }
    -            out.push(plainText.substring(pos, i));
    -            // calculate how much space we need in front of this part
    -            // nSpaces is the amount of padding -- the number of spaces needed
    -            // to move us to the next column, where columns occur at factors of
    -            // tabWidth.
    -            var nSpaces = tabWidth - (charInLine % tabWidth);
    -            charInLine += nSpaces;
    -            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
    -              out.push(SPACES.substring(0, nSpaces));
    -            }
    -            pos = i + 1;
    -            break;
    -          case '\n':
    -            charInLine = 0;
    -            break;
    -          default:
    -            ++charInLine;
    -        }
    -      }
    -      if (!out) { return plainText; }
    -      out.push(plainText.substring(pos));
    -      return out.join('');
    -    };
    -  }
    -
    -  var pr_chunkPattern = new RegExp(
    -      '[^<]+'  // A run of characters other than '<'
    -      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
    -      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
    -      // a probable tag that should not be highlighted
    -      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
    -      + '|<',  // A '<' that does not begin a larger chunk
    -      'g');
    -  var pr_commentPrefix = /^<\!--/;
    -  var pr_cdataPrefix = /^<!\[CDATA\[/;
    -  var pr_brPrefix = /^<br\b/i;
    -  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
    -
    -  /** split markup into chunks of html tags (style null) and
    -    * plain text (style {@link #PR_PLAIN}), converting tags which are
    -    * significant for tokenization (<br>) into their textual equivalent.
    -    *
    -    * @param {string} s html where whitespace is considered significant.
    -    * @return {Object} source code and extracted tags.
    -    * @private
    -    */
    -  function extractTags(s) {
    -    // since the pattern has the 'g' modifier and defines no capturing groups,
    -    // this will return a list of all chunks which we then classify and wrap as
    -    // PR_Tokens
    -    var matches = s.match(pr_chunkPattern);
    -    var sourceBuf = [];
    -    var sourceBufLen = 0;
    -    var extractedTags = [];
    -    if (matches) {
    -      for (var i = 0, n = matches.length; i < n; ++i) {
    -        var match = matches[i];
    -        if (match.length > 1 && match.charAt(0) === '<') {
    -          if (pr_commentPrefix.test(match)) { continue; }
    -          if (pr_cdataPrefix.test(match)) {
    -            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
    -            sourceBuf.push(match.substring(9, match.length - 3));
    -            sourceBufLen += match.length - 12;
    -          } else if (pr_brPrefix.test(match)) {
    -            // <br> tags are lexically significant so convert them to text.
    -            // This is undone later.
    -            sourceBuf.push('\n');
    -            ++sourceBufLen;
    -          } else {
    -            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
    -              // A <span class="nocode"> will start a section that should be
    -              // ignored.  Continue walking the list until we see a matching end
    -              // tag.
    -              var name = match.match(pr_tagNameRe)[2];
    -              var depth = 1;
    -              var j;
    -              end_tag_loop:
    -              for (j = i + 1; j < n; ++j) {
    -                var name2 = matches[j].match(pr_tagNameRe);
    -                if (name2 && name2[2] === name) {
    -                  if (name2[1] === '/') {
    -                    if (--depth === 0) { break end_tag_loop; }
    -                  } else {
    -                    ++depth;
    -                  }
    -                }
    -              }
    -              if (j < n) {
    -                extractedTags.push(
    -                    sourceBufLen, matches.slice(i, j + 1).join(''));
    -                i = j;
    -              } else {  // Ignore unclosed sections.
    -                extractedTags.push(sourceBufLen, match);
    -              }
    -            } else {
    -              extractedTags.push(sourceBufLen, match);
    -            }
    -          }
    -        } else {
    -          var literalText = htmlToText(match);
    -          sourceBuf.push(literalText);
    -          sourceBufLen += literalText.length;
    -        }
    -      }
    -    }
    -    return { source: sourceBuf.join(''), tags: extractedTags };
    -  }
    -
    -  /** True if the given tag contains a class attribute with the nocode class. */
    -  function isNoCodeTag(tag) {
    -    return !!tag
    -        // First canonicalize the representation of attributes
    -        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
    -                 ' $1="$2$3$4"')
    -        // Then look for the attribute we want.
    -        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
    -  }
    -
    -  /**
    -   * Apply the given language handler to sourceCode and add the resulting
    -   * decorations to out.
    -   * @param {number} basePos the index of sourceCode within the chunk of source
    -   *    whose decorations are already present on out.
    -   */
    -  function appendDecorations(basePos, sourceCode, langHandler, out) {
    -    if (!sourceCode) { return; }
    -    var job = {
    -      source: sourceCode,
    -      basePos: basePos
    -    };
    -    langHandler(job);
    -    out.push.apply(out, job.decorations);
    -  }
    -
    -  /** Given triples of [style, pattern, context] returns a lexing function,
    -    * The lexing function interprets the patterns to find token boundaries and
    -    * returns a decoration list of the form
    -    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
    -    * where index_n is an index into the sourceCode, and style_n is a style
    -    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
    -    * all characters in sourceCode[index_n-1:index_n].
    -    *
    -    * The stylePatterns is a list whose elements have the form
    -    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
    -    *
    -    * Style is a style constant like PR_PLAIN, or can be a string of the
    -    * form 'lang-FOO', where FOO is a language extension describing the
    -    * language of the portion of the token in $1 after pattern executes.
    -    * E.g., if style is 'lang-lisp', and group 1 contains the text
    -    * '(hello (world))', then that portion of the token will be passed to the
    -    * registered lisp handler for formatting.
    -    * The text before and after group 1 will be restyled using this decorator
    -    * so decorators should take care that this doesn't result in infinite
    -    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
    -    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
    -    * '<script>foo()<\/script>', which would cause the current decorator to
    -    * be called with '<script>' which would not match the same rule since
    -    * group 1 must not be empty, so it would be instead styled as PR_TAG by
    -    * the generic tag rule.  The handler registered for the 'js' extension would
    -    * then be called with 'foo()', and finally, the current decorator would
    -    * be called with '<\/script>' which would not match the original rule and
    -    * so the generic tag rule would identify it as a tag.
    -    *
    -    * Pattern must only match prefixes, and if it matches a prefix, then that
    -    * match is considered a token with the same style.
    -    *
    -    * Context is applied to the last non-whitespace, non-comment token
    -    * recognized.
    -    *
    -    * Shortcut is an optional string of characters, any of which, if the first
    -    * character, gurantee that this pattern and only this pattern matches.
    -    *
    -    * @param {Array} shortcutStylePatterns patterns that always start with
    -    *   a known character.  Must have a shortcut string.
    -    * @param {Array} fallthroughStylePatterns patterns that will be tried in
    -    *   order if the shortcut ones fail.  May have shortcuts.
    -    *
    -    * @return {function (Object)} a
    -    *   function that takes source code and returns a list of decorations.
    -    */
    -  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
    -    var shortcuts = {};
    -    var tokenizer;
    -    (function () {
    -      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
    -      var allRegexs = [];
    -      var regexKeys = {};
    -      for (var i = 0, n = allPatterns.length; i < n; ++i) {
    -        var patternParts = allPatterns[i];
    -        var shortcutChars = patternParts[3];
    -        if (shortcutChars) {
    -          for (var c = shortcutChars.length; --c >= 0;) {
    -            shortcuts[shortcutChars.charAt(c)] = patternParts;
    -          }
    -        }
    -        var regex = patternParts[1];
    -        var k = '' + regex;
    -        if (!regexKeys.hasOwnProperty(k)) {
    -          allRegexs.push(regex);
    -          regexKeys[k] = null;
    -        }
    -      }
    -      allRegexs.push(/[\0-\uffff]/);
    -      tokenizer = combinePrefixPatterns(allRegexs);
    -    })();
    -
    -    var nPatterns = fallthroughStylePatterns.length;
    -    var notWs = /\S/;
    -
    -    /**
    -     * Lexes job.source and produces an output array job.decorations of style
    -     * classes preceded by the position at which they start in job.source in
    -     * order.
    -     *
    -     * @param {Object} job an object like {@code
    -     *    source: {string} sourceText plain text,
    -     *    basePos: {int} position of job.source in the larger chunk of
    -     *        sourceCode.
    -     * }
    -     */
    -    var decorate = function (job) {
    -      var sourceCode = job.source, basePos = job.basePos;
    -      /** Even entries are positions in source in ascending order.  Odd enties
    -        * are style markers (e.g., PR_COMMENT) that run from that position until
    -        * the end.
    -        * @type {Array.<number|string>}
    -        */
    -      var decorations = [basePos, PR_PLAIN];
    -      var pos = 0;  // index into sourceCode
    -      var tokens = sourceCode.match(tokenizer) || [];
    -      var styleCache = {};
    -
    -      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
    -        var token = tokens[ti];
    -        var style = styleCache[token];
    -        var match = void 0;
    -
    -        var isEmbedded;
    -        if (typeof style === 'string') {
    -          isEmbedded = false;
    -        } else {
    -          var patternParts = shortcuts[token.charAt(0)];
    -          if (patternParts) {
    -            match = token.match(patternParts[1]);
    -            style = patternParts[0];
    -          } else {
    -            for (var i = 0; i < nPatterns; ++i) {
    -              patternParts = fallthroughStylePatterns[i];
    -              match = token.match(patternParts[1]);
    -              if (match) {
    -                style = patternParts[0];
    -                break;
    -              }
    -            }
    -
    -            if (!match) {  // make sure that we make progress
    -              style = PR_PLAIN;
    -            }
    -          }
    -
    -          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
    -          if (isEmbedded && !(match && typeof match[1] === 'string')) {
    -            isEmbedded = false;
    -            style = PR_SOURCE;
    -          }
    -
    -          if (!isEmbedded) { styleCache[token] = style; }
    -        }
    -
    -        var tokenStart = pos;
    -        pos += token.length;
    -
    -        if (!isEmbedded) {
    -          decorations.push(basePos + tokenStart, style);
    -        } else {  // Treat group 1 as an embedded block of source code.
    -          var embeddedSource = match[1];
    -          var embeddedSourceStart = token.indexOf(embeddedSource);
    -          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
    -          if (match[2]) {
    -            // If embeddedSource can be blank, then it would match at the
    -            // beginning which would cause us to infinitely recurse on the
    -            // entire token, so we catch the right context in match[2].
    -            embeddedSourceEnd = token.length - match[2].length;
    -            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
    -          }
    -          var lang = style.substring(5);
    -          // Decorate the left of the embedded source
    -          appendDecorations(
    -              basePos + tokenStart,
    -              token.substring(0, embeddedSourceStart),
    -              decorate, decorations);
    -          // Decorate the embedded source
    -          appendDecorations(
    -              basePos + tokenStart + embeddedSourceStart,
    -              embeddedSource,
    -              langHandlerForExtension(lang, embeddedSource),
    -              decorations);
    -          // Decorate the right of the embedded section
    -          appendDecorations(
    -              basePos + tokenStart + embeddedSourceEnd,
    -              token.substring(embeddedSourceEnd),
    -              decorate, decorations);
    -        }
    -      }
    -      job.decorations = decorations;
    -    };
    -    return decorate;
    -  }
    -
    -  /** returns a function that produces a list of decorations from source text.
    -    *
    -    * This code treats ", ', and ` as string delimiters, and \ as a string
    -    * escape.  It does not recognize perl's qq() style strings.
    -    * It has no special handling for double delimiter escapes as in basic, or
    -    * the tripled delimiters used in python, but should work on those regardless
    -    * although in those cases a single string literal may be broken up into
    -    * multiple adjacent string literals.
    -    *
    -    * It recognizes C, C++, and shell style comments.
    -    *
    -    * @param {Object} options a set of optional parameters.
    -    * @return {function (Object)} a function that examines the source code
    -    *     in the input job and builds the decoration list.
    -    */
    -  function sourceDecorator(options) {
    -    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
    -    if (options['tripleQuotedStrings']) {
    -      // '''multi-line-string''', 'single-line-string', and double-quoted
    -      shortcutStylePatterns.push(
    -          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
    -           null, '\'"']);
    -    } else if (options['multiLineStrings']) {
    -      // 'multi-line-string', "multi-line-string"
    -      shortcutStylePatterns.push(
    -          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
    -           null, '\'"`']);
    -    } else {
    -      // 'single-line-string', "single-line-string"
    -      shortcutStylePatterns.push(
    -          [PR_STRING,
    -           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
    -           null, '"\'']);
    -    }
    -    if (options['verbatimStrings']) {
    -      // verbatim-string-literal production from the C# grammar.  See issue 93.
    -      fallthroughStylePatterns.push(
    -          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
    -    }
    -    if (options['hashComments']) {
    -      if (options['cStyleComments']) {
    -        // Stop C preprocessor declarations at an unclosed open comment
    -        shortcutStylePatterns.push(
    -            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
    -             null, '#']);
    -        fallthroughStylePatterns.push(
    -            [PR_STRING,
    -             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
    -             null]);
    -      } else {
    -        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
    -      }
    -    }
    -    if (options['cStyleComments']) {
    -      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
    -      fallthroughStylePatterns.push(
    -          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
    -    }
    -    if (options['regexLiterals']) {
    -      var REGEX_LITERAL = (
    -          // A regular expression literal starts with a slash that is
    -          // not followed by * or / so that it is not confused with
    -          // comments.
    -          '/(?=[^/*])'
    -          // and then contains any number of raw characters,
    -          + '(?:[^/\\x5B\\x5C]'
    -          // escape sequences (\x5C),
    -          +    '|\\x5C[\\s\\S]'
    -          // or non-nesting character sets (\x5B\x5D);
    -          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
    -          // finally closed by a /.
    -          + '/');
    -      fallthroughStylePatterns.push(
    -          ['lang-regex',
    -           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
    -           ]);
    -    }
    -
    -    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
    -    if (keywords.length) {
    -      fallthroughStylePatterns.push(
    -          [PR_KEYWORD,
    -           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
    -    }
    -
    -    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
    -    fallthroughStylePatterns.push(
    -        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
    -        [PR_COMMENT,     /^.*?\*.*/],
    -		[PR_VAR, /^\$[a-z]{1}[a-z_]+/i, null],
    -		[PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
    -        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
    -        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
    -        [PR_LITERAL,
    -         new RegExp(
    -             '^(?:'
    -             // A hex number
    -             + '0x[a-f0-9]+'
    -             // or an octal or decimal number,
    -             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
    -             // possibly in scientific notation
    -             + '(?:e[+\\-]?\\d+)?'
    -             + ')'
    -             // with an optional modifier like UL for unsigned long
    -             + '[a-z]*', 'i'),
    -         null, '0123456789'],
    -        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
    -
    -    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
    -  }
    -
    -  var decorateSource = sourceDecorator({
    -        'keywords': ALL_KEYWORDS,
    -        'hashComments': true,
    -        'cStyleComments': true,
    -        'multiLineStrings': true,
    -        'regexLiterals': true
    -      });
    -
    -  /** Breaks {@code job.source} around style boundaries in
    -    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
    -    * and leaves the result in {@code job.prettyPrintedHtml}.
    -    * @param {Object} job like {
    -    *    source: {string} source as plain text,
    -    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
    -    *                   html preceded by their position in {@code job.source}
    -    *                   in order
    -    *    decorations: {Array.<number|string} an array of style classes preceded
    -    *                 by the position at which they start in job.source in order
    -    * }
    -    * @private
    -    */
    -  function recombineTagsAndDecorations(job) {
    -    var sourceText = job.source;
    -    var extractedTags = job.extractedTags;
    -    var decorations = job.decorations;
    -
    -    var html = [];
    -    // index past the last char in sourceText written to html
    -    var outputIdx = 0;
    -
    -    var openDecoration = null;
    -    var currentDecoration = null;
    -    var tagPos = 0;  // index into extractedTags
    -    var decPos = 0;  // index into decorations
    -    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
    -
    -    var adjacentSpaceRe = /([\r\n ]) /g;
    -    var startOrSpaceRe = /(^| ) /gm;
    -    var newlineRe = /\r\n?|\n/g;
    -    var trailingSpaceRe = /[ \r\n]$/;
    -    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
    -
    -    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
    -    var isIE678 = window['_pr_isIE6']();
    -    var lineBreakHtml = (
    -        isIE678
    -        ? (job.sourceNode.tagName === 'PRE'
    -           // Use line feeds instead of <br>s so that copying and pasting works
    -           // on IE.
    -           // Doing this on other browsers breaks lots of stuff since \r\n is
    -           // treated as two newlines on Firefox.
    -           ? (isIE678 === 6 ? '&#160;\r\n' :
    -              isIE678 === 7 ? '&#160;<br>\r' : '&#160;\r')
    -           // IE collapses multiple adjacent <br>s into 1 line break.
    -           // Prefix every newline with '&#160;' to prevent such behavior.
    -           // &nbsp; is the same as &#160; but works in XML as well as HTML.
    -           : '&#160;<br />')
    -        : '<br />');
    -
    -    // Look for a class like linenums or linenums:<n> where <n> is the 1-indexed
    -    // number of the first line.
    -    var numberLines = job.sourceNode.className.match(/\blinenums\b(?::(\d+))?/);
    -    var lineBreaker;
    -    if (numberLines) {
    -      var lineBreaks = [];
    -      for (var i = 0; i < 10; ++i) {
    -        lineBreaks[i] = lineBreakHtml + '</li><li class="L' + i + '">';
    -      }
    -      var lineNum = numberLines[1] && numberLines[1].length 
    -          ? numberLines[1] - 1 : 0;  // Lines are 1-indexed
    -      html.push('<ol class="linenums"><li class="L', (lineNum) % 10, '"');
    -      if (lineNum) {
    -        html.push(' value="', lineNum + 1, '"');
    -      }
    -      html.push('>');
    -      lineBreaker = function () {
    -        var lb = lineBreaks[++lineNum % 10];
    -        // If a decoration is open, we need to close it before closing a list-item
    -        // and reopen it on the other side of the list item.
    -        return openDecoration
    -            ? ('</span>' + lb + '<span class="' + openDecoration + '">') : lb;
    -      };
    -    } else {
    -      lineBreaker = lineBreakHtml;
    -    }
    -
    -    // A helper function that is responsible for opening sections of decoration
    -    // and outputing properly escaped chunks of source
    -    function emitTextUpTo(sourceIdx) {
    -      if (sourceIdx > outputIdx) {
    -        if (openDecoration && openDecoration !== currentDecoration) {
    -          // Close the current decoration
    -          html.push('</span>');
    -          openDecoration = null;
    -        }
    -        if (!openDecoration && currentDecoration) {
    -          openDecoration = currentDecoration;
    -          html.push('<span class="', openDecoration, '">');
    -        }
    -        // This interacts badly with some wikis which introduces paragraph tags
    -        // into pre blocks for some strange reason.
    -        // It's necessary for IE though which seems to lose the preformattedness
    -        // of <pre> tags when their innerHTML is assigned.
    -        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
    -        // and it serves to undo the conversion of <br>s to newlines done in
    -        // chunkify.
    -        var htmlChunk = textToHtml(
    -            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
    -            .replace(lastWasSpace
    -                     ? startOrSpaceRe
    -                     : adjacentSpaceRe, '$1&#160;');
    -        // Keep track of whether we need to escape space at the beginning of the
    -        // next chunk.
    -        lastWasSpace = trailingSpaceRe.test(htmlChunk);
    -        html.push(htmlChunk.replace(newlineRe, lineBreaker));
    -        outputIdx = sourceIdx;
    -      }
    -    }
    -
    -    while (true) {
    -      // Determine if we're going to consume a tag this time around.  Otherwise
    -      // we consume a decoration or exit.
    -      var outputTag;
    -      if (tagPos < extractedTags.length) {
    -        if (decPos < decorations.length) {
    -          // Pick one giving preference to extractedTags since we shouldn't open
    -          // a new style that we're going to have to immediately close in order
    -          // to output a tag.
    -          outputTag = extractedTags[tagPos] <= decorations[decPos];
    -        } else {
    -          outputTag = true;
    -        }
    -      } else {
    -        outputTag = false;
    -      }
    -      // Consume either a decoration or a tag or exit.
    -      if (outputTag) {
    -        emitTextUpTo(extractedTags[tagPos]);
    -        if (openDecoration) {
    -          // Close the current decoration
    -          html.push('</span>');
    -          openDecoration = null;
    -        }
    -        html.push(extractedTags[tagPos + 1]);
    -        tagPos += 2;
    -      } else if (decPos < decorations.length) {
    -        emitTextUpTo(decorations[decPos]);
    -        currentDecoration = decorations[decPos + 1];
    -        decPos += 2;
    -      } else {
    -        break;
    -      }
    -    }
    -    emitTextUpTo(sourceText.length);
    -    if (openDecoration) {
    -      html.push('</span>');
    -    }
    -    if (numberLines) { html.push('</li></ol>'); }
    -    job.prettyPrintedHtml = html.join('');
    -  }
    -
    -  /** Maps language-specific file extensions to handlers. */
    -  var langHandlerRegistry = {};
    -  /** Register a language handler for the given file extensions.
    -    * @param {function (Object)} handler a function from source code to a list
    -    *      of decorations.  Takes a single argument job which describes the
    -    *      state of the computation.   The single parameter has the form
    -    *      {@code {
    -    *        source: {string} as plain text.
    -    *        decorations: {Array.<number|string>} an array of style classes
    -    *                     preceded by the position at which they start in
    -    *                     job.source in order.
    -    *                     The language handler should assigned this field.
    -    *        basePos: {int} the position of source in the larger source chunk.
    -    *                 All positions in the output decorations array are relative
    -    *                 to the larger source chunk.
    -    *      } }
    -    * @param {Array.<string>} fileExtensions
    -    */
    -  function registerLangHandler(handler, fileExtensions) {
    -    for (var i = fileExtensions.length; --i >= 0;) {
    -      var ext = fileExtensions[i];
    -      if (!langHandlerRegistry.hasOwnProperty(ext)) {
    -        langHandlerRegistry[ext] = handler;
    -      } else if ('console' in window) {
    -        console['warn']('cannot override language handler %s', ext);
    -      }
    -    }
    -  }
    -  function langHandlerForExtension(extension, source) {
    -    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
    -      // Treat it as markup if the first non whitespace character is a < and
    -      // the last non-whitespace character is a >.
    -      extension = /^\s*</.test(source)
    -          ? 'default-markup'
    -          : 'default-code';
    -    }
    -    return langHandlerRegistry[extension];
    -  }
    -  registerLangHandler(decorateSource, ['default-code']);
    -  registerLangHandler(
    -      createSimpleLexer(
    -          [],
    -          [
    -		   [PR_PLAIN,       /^[^<?]+/],
    -           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
    -           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
    -           // Unescaped content in an unknown language
    -           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
    -           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
    -           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
    -           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
    -           // Unescaped content in javascript.  (Or possibly vbscript).
    -           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
    -           // Contains unescaped stylesheet content
    -           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
    -           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
    -          ]),
    -      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
    -  registerLangHandler(
    -      createSimpleLexer(
    -          [
    -		   [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
    -           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
    -           ],
    -          [
    -		  [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
    -           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
    -           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
    -           [PR_PUNCTUATION,  /^[=<>\/]+/],
    -           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
    -           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
    -           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
    -           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
    -           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
    -           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
    -           ]),
    -      ['in.tag']);
    -  registerLangHandler(
    -      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': CPP_KEYWORDS,
    -          'hashComments': true,
    -          'cStyleComments': true
    -        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': 'null true false'
    -        }), ['json']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': CSHARP_KEYWORDS,
    -          'hashComments': true,
    -          'cStyleComments': true,
    -          'verbatimStrings': true
    -        }), ['cs']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': JAVA_KEYWORDS,
    -          'cStyleComments': true
    -        }), ['java']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': SH_KEYWORDS,
    -          'hashComments': true,
    -          'multiLineStrings': true
    -        }), ['bsh', 'csh', 'sh']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': PYTHON_KEYWORDS,
    -          'hashComments': true,
    -          'multiLineStrings': true,
    -          'tripleQuotedStrings': true
    -        }), ['cv', 'py']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': PERL_KEYWORDS,
    -          'hashComments': true,
    -          'multiLineStrings': true,
    -          'regexLiterals': true
    -        }), ['perl', 'pl', 'pm']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': RUBY_KEYWORDS,
    -          'hashComments': true,
    -          'multiLineStrings': true,
    -          'regexLiterals': true
    -        }), ['rb']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': JSCRIPT_KEYWORDS,
    -          'cStyleComments': true,
    -          'regexLiterals': true
    -        }), ['js']);
    -  registerLangHandler(
    -      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
    -
    -  function applyDecorator(job) {
    -    var sourceCodeHtml = job.sourceCodeHtml;
    -    var opt_langExtension = job.langExtension;
    -
    -    // Prepopulate output in case processing fails with an exception.
    -    job.prettyPrintedHtml = sourceCodeHtml;
    -
    -    try {
    -      // Extract tags, and convert the source code to plain text.
    -      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
    -      /** Plain text. @type {string} */
    -      var source = sourceAndExtractedTags.source;
    -      job.source = source;
    -      job.basePos = 0;
    -
    -      /** Even entries are positions in source in ascending order.  Odd entries
    -        * are tags that were extracted at that position.
    -        * @type {Array.<number|string>}
    -        */
    -      job.extractedTags = sourceAndExtractedTags.tags;
    -
    -      // Apply the appropriate language handler
    -      langHandlerForExtension(opt_langExtension, source)(job);
    -      // Integrate the decorations and tags back into the source code to produce
    -      // a decorated html string which is left in job.prettyPrintedHtml.
    -      recombineTagsAndDecorations(job);
    -    } catch (e) {
    -      if ('console' in window) {
    -        console['log'](e && e['stack'] ? e['stack'] : e);
    -      }
    -    }
    -  }
    -
    -  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
    -    var job = {
    -      sourceCodeHtml: sourceCodeHtml,
    -      langExtension: opt_langExtension
    -    };
    -    applyDecorator(job);
    -    return job.prettyPrintedHtml;
    -  }
    -
    -  function prettyPrint(opt_whenDone) {
    -    function byTagName(tn) { return document.getElementsByTagName(tn); }
    -    // fetch a list of nodes to rewrite
    -    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
    -    var elements = [];
    -    for (var i = 0; i < codeSegments.length; ++i) {
    -      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
    -        elements.push(codeSegments[i][j]);
    -      }
    -    }
    -    codeSegments = null;
    -
    -    var clock = Date;
    -    if (!clock['now']) {
    -      clock = { 'now': function () { return (new Date).getTime(); } };
    -    }
    -
    -    // The loop is broken into a series of continuations to make sure that we
    -    // don't make the browser unresponsive when rewriting a large page.
    -    var k = 0;
    -    var prettyPrintingJob;
    -
    -    function doWork() {
    -      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
    -                     clock.now() + 250 /* ms */ :
    -                     Infinity);
    -      for (; k < elements.length && clock.now() < endTime; k++) {
    -        var cs = elements[k];
    -        if (cs.className && cs.className.indexOf('preformatted') >= 0) {
    -          // If the classes includes a language extensions, use it.
    -          // Language extensions can be specified like
    -          //     <pre class="prettyprint lang-cpp">
    -          // the language extension "cpp" is used to find a language handler as
    -          // passed to PR_registerLangHandler.
    -          var langExtension = cs.className.match(/\blang-(\w+)\b/);
    -          if (langExtension) { langExtension = langExtension[1]; }
    -
    -          // make sure this is not nested in an already prettified element
    -          var nested = false;
    -          for (var p = cs.parentNode; p; p = p.parentNode) {
    -            if ((p.tagName === 'pre' || p.tagName === 'code' ||
    -                 p.tagName === 'xmp') &&
    -                p.className && p.className.indexOf('preformatted') >= 0) {
    -              nested = true;
    -              break;
    -            }
    -          }
    -          if (!nested) {
    -            // fetch the content as a snippet of properly escaped HTML.
    -            // Firefox adds newlines at the end.
    -            var content = getInnerHtml(cs);
    -            content = content.replace(/(?:\r\n?|\n)$/, '');
    -
    -            // do the pretty printing
    -            prettyPrintingJob = {
    -              sourceCodeHtml: content,
    -              langExtension: langExtension,
    -              sourceNode: cs
    -            };
    -            applyDecorator(prettyPrintingJob);
    -            replaceWithPrettyPrintedHtml();
    -          }
    -        }
    -      }
    -      if (k < elements.length) {
    -        // finish up in a continuation
    -        setTimeout(doWork, 250);
    -      } else if (opt_whenDone) {
    -        opt_whenDone();
    -      }
    -    }
    -
    -    function replaceWithPrettyPrintedHtml() {
    -      var newContent = prettyPrintingJob.prettyPrintedHtml;
    -      if (!newContent) { return; }
    -      var cs = prettyPrintingJob.sourceNode;
    -
    -      // push the prettified html back into the tag.
    -      if (!isRawContent(cs)) {
    -        // just replace the old html with the new
    -        cs.innerHTML = newContent;
    -      } else {
    -        // we need to change the tag to a <pre> since <xmp>s do not allow
    -        // embedded tags such as the span tags used to attach styles to
    -        // sections of source code.
    -        var pre = document.createElement('PRE');
    -        for (var i = 0; i < cs.attributes.length; ++i) {
    -          var a = cs.attributes[i];
    -          if (a.specified) {
    -            var aname = a.name.toLowerCase();
    -            if (aname === 'class') {
    -              pre.className = a.value;  // For IE 6
    -            } else {
    -              pre.setAttribute(a.name, a.value);
    -            }
    -          }
    -        }
    -        pre.innerHTML = newContent;
    -
    -        // remove the old
    -        cs.parentNode.replaceChild(pre, cs);
    -        cs = pre;
    -      }
    -    }
    -
    -    doWork();
    -  }
    -
    -  window['PR_normalizedHtml'] = normalizedHtml;
    -  window['prettyPrintOne'] = prettyPrintOne;
    -  window['prettyPrint'] = prettyPrint;
    -  window['PR'] = {
    -        'combinePrefixPatterns': combinePrefixPatterns,
    -        'createSimpleLexer': createSimpleLexer,
    -        'registerLangHandler': registerLangHandler,
    -        'sourceDecorator': sourceDecorator,
    -        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
    -        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
    -        'PR_COMMENT': PR_COMMENT,
    -        'PR_DECLARATION': PR_DECLARATION,
    -        'PR_KEYWORD': PR_KEYWORD,
    -        'PR_LITERAL': PR_LITERAL,
    -        'PR_NOCODE': PR_NOCODE,
    -        'PR_PLAIN': PR_PLAIN,
    -        'PR_PUNCTUATION': PR_PUNCTUATION,
    -        'PR_SOURCE': PR_SOURCE,
    -        'PR_STRING': PR_STRING,
    -        'PR_TAG': PR_TAG,
    -        'PR_TYPE': PR_TYPE
    -      };
    -})();
    diff --git a/build/aps/Limitations of APS Support in the Panel_fichiers/stylesheet.css b/build/aps/Limitations of APS Support in the Panel_fichiers/stylesheet.css
    deleted file mode 100644
    index f791ddf4ea8..00000000000
    --- a/build/aps/Limitations of APS Support in the Panel_fichiers/stylesheet.css	
    +++ /dev/null
    @@ -1,1571 +0,0 @@
    -body
    -{ 
    -background: #FFFFFF
    -}
    -
    -/*ol.listalfa
    -{
    -        list-style-type: lower-alpha;
    -        list-style-position: outside;
    -        margin-top: 7pt;
    -        margin-bottom: 0pt;
    -        }*/
    -li.listalpha {
    -        list-style-type: lower-alpha;
    -		font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: 10pt;
    -        margin: 0px;
    -        padding: 0 0 6px 0;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -
    -/*ol.listalfa2
    -{
    -        list-style-type: lower-alpha;
    -        list-style-position: outside;
    -        margin-top: 7pt;
    -        margin-bottom: 0pt;
    -        }*/
    -li.listalpha2 {
    -        list-style-type: lower-alpha;
    -		font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #13152d;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -		  line-height: 10pt;
    -        margin: 0px;
    -        padding: 0 0 6px 0;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -
    -/*ol.listalfa3
    -{
    -        list-style-type: lower-alpha;
    -        list-style-position: outside;
    -        margin-top: 7pt;
    -        margin-bottom: 0pt;
    -        }*/
    -li.listalpha3 {
    -        list-style-type: lower-alpha;
    -		font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #13152d;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin: 0px;
    -        padding: 0 0 6px 0;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }	   
    -
    -/*li.listalpha2, li.listalpha, li.listalpha3
    -{
    -list-style-type: lower-alpha;
    -} */
    -
    -
    -li.tablelistbullet {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: 10pt;
    -        margin: 0px;
    -        padding: 5px;
    -	vertical-align: top;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -
    -
    -p.centered {
    -
    -        text-align: center;
    -}
    -
    -p.listcontinue3 {
    -    margin-left: 30pt;
    -  }
    -
    -.preformattedbold2ndlvl {
    -  display: block;
    -        font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: bold;
    -        font-size: 10pt;
    -        color: #000000;
    -        background-color: #f4f4f4;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 0pt;
    -        margin-bottom: 0pt;
    -        margin-left: 20pt;
    -        margin-right: 6pt;
    -        padding-top: 1pt;
    -        padding-bottom: 1pt;
    -        padding-left: 5pt;
    -        padding-right: 5pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -
    -}
    -
    -
    -.preformattedseclevel {
    -        display: block;
    -        font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 10pt;
    -        color: #000000;
    -        background-color: #f4f4f4;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 0pt;
    -        margin-bottom: 0pt;
    -        margin-left: 20pt;
    -        margin-right: 6pt;
    -        padding-top: 1pt;
    -        padding-bottom: 1pt;
    -        padding-left: 5pt;
    -        padding-right: 5pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -}
    -
    -.prcontinuous 
    -{font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 10pt;
    -        color: #000000;
    -        background-color: #f4f4f4;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 0pt;
    -        margin-bottom: 0pt;
    -        margin-left: 0pt;
    -        margin-right: 6pt;
    -        padding-top: 1pt;
    -        padding-bottom: 1pt;
    -        padding-left: 5pt;
    -        padding-right: 5pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -       }
    -
    -.prefblue 
    -{display: inline;
    -        font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        font-size: 10pt;
    -        color: #0000FF;
    -        background-color: #f4f4f4;
    -        vertical-align: baseline;
    -        margin-top: 6pt;
    -        margin-bottom: 6pt;
    -        margin-left: 0pt;
    -        margin-right: 0pt;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -       }
    -.prefred 
    -{display: inline;
    -        font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        font-size: 10pt;
    -        color: #FF0000;
    -        background-color: #f4f4f4;
    -        vertical-align: baseline;
    -        margin-top: 6pt;
    -        margin-bottom: 6pt;
    -        margin-left: 0pt;
    -        margin-right: 0pt;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -       }
    -.prefdarkblue 
    -{display: inline;
    -        font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        font-weight: bold;
    -        font-size: 10pt;
    -        color: #000080;
    -        background-color: #f4f4f4;
    -        vertical-align: baseline;
    -        margin-top: 6pt;
    -        margin-bottom: 6pt;
    -        margin-left: 0pt;
    -        margin-right: 0pt;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -       }
    -.prefgrey 
    -{display: inline;
    -        font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        font-size: 10pt;
    -        color: #EA8110;
    -        background-color: #f4f4f4;
    -        vertical-align: baseline;
    -        margin-top: 6pt;
    -        margin-bottom: 6pt;
    -        margin-left: 0pt;
    -        margin-right: 0pt;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -       }
    -
    -.expandingblock 
    -{font-family: "Tahoma", verdana, arial, helvetica, sans-serif;
    -        border-color: #AFAFAF;
    -        border-top-style: dotted;
    -        border-top-width: 1px;
    -        border-top-color: #AFAFAF;
    -        border-bottom-style: dotted;
    -        border-bottom-width: 1px;
    -        border-bottom-color: #AFAFAF;
    -        border-left-style: dotted;
    -        border-left-width: 1px;
    -        border-left-color: #AFAFAF;
    -        border-right-style: dotted;
    -        border-right-width: 1px;
    -        border-right-color: #AFAFAF;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -	padding-left: 3px;
    -	padding-right: 3px;
    -	padding-top: 3px;
    -	padding-bottom: 3px;
    -
    -       }
    -
    -
    -
    -.copyright {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-size: 8pt;
    -        font-style: italic;
    -        color: #000000;
    -        margin: 9px 0px 9px 0px;
    -        padding: 0px;
    -}
    -
    -/* Nov-14 begin */
    -
    -.pagenavigation {
    -	font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -	font-size: 8pt;
    -	white-space: nowrap;
    -	vertical-align: middle;
    -	margin: 0px;
    -	margin-right: 2px;
    -	padding: 3px;
    -	padding-right: 4px;
    -	background-color: #f0f1f5;
    -}
    -*html .pagenavigation {
    -	margin-top: -7px;
    -	position: relative;
    -}
    -
    -.pagenavigation a, .pagenavigation a:link, .pagenavigation a:visited {
    -	color: #000000;
    -	text-decoration: none;	
    -}
    -.pagenavigation a:hover {
    -	text-decoration: none;
    -	color: #666666;
    -}
    -
    -/* end */
    -
    -
    -
    -.topBody {
    -	background: #eeeeee;
    -}
    -.nav {
    -	vertical-align: middle;
    -	font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -	font-size: 8pt;
    -	padding-left: 7px;
    -	padding-right: 5px;
    -	padding-top: 4px;
    -}
    -.nav a, .nav a:link, .nav a:visited {
    -	color: #000000;
    -	text-decoration: none;	
    -}
    -.nav a:hover {
    -	text-decoration: none;
    -	color: #666666;
    -}
    -
    -td.navTabActive {
    -	color: #1f202c;
    -	text-decoration: none;
    -	vertical-align: middle;
    -	font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -	font-size: 8pt;
    -	padding-top: 4px;  
    -	padding-bottom: 0px; 
    -	padding-left: 8px; 
    -	padding-right: 8px;
    -	font-weight: bold;
    -	background-image: url('nav_bg_active.gif');
    -	background-repeat: repeat-x;
    -}
    -td.navTab {
    -	padding-top: 3px;
    -}
    -.navTab a, .navTab a:link, .navTab a:visited {
    -	color: #000000;
    -	text-decoration: none;
    -	vertical-align: middle;
    -	font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -	font-size: 8pt;
    -	padding-top: 4px;
    -	padding-bottom: 0px;
    -	padding-left: 8px;
    -	padding-right: 8px;
    -}
    -.navTab a:hover {
    -	color: #1f202c;
    -	text-decoration: none;
    -	vertical-align: middle;
    -	font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -	font-size: 8pt;
    -	padding-top: 5px;
    -	padding-bottom: 7px;
    -	padding-left: 8px;
    -	padding-right: 8px;
    -	background-image: url('nav_bg_active.gif');
    -	background-repeat: repeat-x;
    -}
    -
    -.navDiv {
    -	vertical-align: middle;
    -}
    -
    -.topFrameTable {
    -	width: 100%;
    -	/*height: 23px;*/
    -	margin: 0px;
    -	padding: 0px;
    -	border-bottom: 2px solid #d6d6d6;
    -   background-image: url('nav_bg.gif');
    -	background-repeat: repeat-x;
    -}
    -.topFrameTabs {
    -	margin-left: 3px;
    -	margin-top: 0px;
    -}
    -
    -.headerTable {
    -	width: 100%;
    -	vertical-align: top;
    -	height: 23px;
    -	background: #588cc7;
    -}
    -.headerTd {
    -	vertical-align: middle;
    -	font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -	color: #ffffff;
    -	font-size: 12px;
    -	padding-top: 2px;
    -	padding-bottom: 3px;
    -	padding-left: 7px;
    -	padding-right: 5px;
    -}
    -
    -.tocTable {
    -	width: 100%;
    -	vertical-align: top;
    -}
    -.tocLevel1 {
    -	margin: -14px 0 0 0;
    -	padding: 0px;
    -}
    -
    -a.itemActive,
    -a.itemActive:link,
    -a.itemActive:visited,
    -a.itemActive:active {
    -	color: #ffffff;
    -	line-height: 16px;
    -	padding-top: 1px;
    -	padding-bottom: 2px;
    -	padding-left: 3px;
    -	padding-right: 3px;
    -	background-color:#6697cc;
    -}
    -
    -a, a:link,
    -.relateditem a, .relateditem a:link,
    -.tocLevel1 a, .tocLevel1 a:link {
    -	color: #0049b7;
    -	text-decoration: none;
    -}
    -a:hover,
    -.relateditem a:hover,
    -.tocLevel1 a:hover {
    -	text-decoration: underline;
    -}
    -a:visited,
    -.relateditem a:visited,
    -.tocLevel1 a:visited {
    -	color: #003380;
    -}
    -.relateditem a {
    -	text-decoration: none;
    -}
    -
    -.table {
    -	margin-top: 5px;
    -}
    -.tableDescription {
    -        font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -        font-size: 8pt;
    -		  font-weight: bold;
    -        color: #444444;
    -        margin-top: 15px;
    -        margin-bottom: 7px;
    -        margin-left: 0px;
    -        margin-right: 0px;
    -        padding: 0px;
    -		  text-align: left;
    -}
    -
    -.relatedheading {
    -        font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -        font-weight: bold;
    -        font-size: 8pt;
    -        color: #ffffff;
    -        background-color: #729ecf;
    -        margin-top: 25px;
    -        margin-bottom: 2px;
    -        margin-left: 0px;
    -        margin-right: 0px;
    -        padding-top: 2px;
    -        padding-bottom: 2px;
    -        padding-left: 4px;
    -        padding-right: 4px;
    -        border-color: #FFFFFF;
    -        border-right-style: solid;
    -        border-right-width: 1px;
    -        border-right-color: #FFFFFF;
    -}
    -.relateditem {
    -        font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: #f3f8fc;
    -        margin-top: 0px;
    -        margin-bottom: 0px;
    -        margin-left: 0px;
    -        margin-right: 0px;
    -        padding-top: 2px;
    -        padding-bottom: 3px;
    -        padding-left: 12px;
    -        padding-right: 15px;
    -        border-color: #FFFFFF;
    -        border-right-style: solid;
    -        border-right-width: 1px;
    -        border-right-color: #FFFFFF;
    -	     border-bottom-style: solid;
    -        border-bottom-width: 2px;
    -        border-bottom-color: #ffffff; 
    -}
    -.bodytext {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-size: 8pt;
    -        color: #000000;
    -        margin: 9px 0px 9px 0px;
    -        padding: 0px;
    -}
    -
    -.tableheading {
    -        font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -		  font-weight: bold;
    -        font-size: 8pt;
    -		  line-height: 12px;
    -        color: #2f739b; 
    -		  line-height: 11px;
    -        margin: 0px;
    -        padding: 3px;
    -        text-align: center;
    -		  background-color: #f5f8fc;/*eef2f9;*/
    -}
    -.tablebodytext {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-size: 8pt;
    -        color: #000000;
    -        padding: 5px;
    -		  padding-top: 7px;
    -		  vertical-align: top;
    -}
    -
    -.preformatted {
    -        display: block;
    -        font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 10pt;
    -        color: #000000;
    -        background-color: #f4f4f4;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 0pt;
    -        margin-bottom: 0pt;
    -        margin-left: 0pt;
    -        margin-right: 6pt;
    -        padding-top: 1pt;
    -        padding-bottom: 1pt;
    -        padding-left: 5pt;
    -        padding-right: 5pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -}
    -
    -
    -.prefcleanxml {
    -        display: block;
    -        font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 10pt;
    -        color: #000000;
    -        background-color: #f4f4f4;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 0pt;
    -        margin-bottom: 0pt;
    -        margin-left: 0pt;
    -        margin-right: 6pt;
    -        padding-top: 1pt;
    -        padding-bottom: 1pt;
    -        padding-left: 5pt;
    -        padding-right: 5pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -}
    -
    -
    -
    -
    -.preformatedbold2ndlvl, .preformattedbold {
    -        display: block;
    -        font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: bold;
    -        font-size: 10pt;
    -        color: #000000;
    -        background-color: #f4f4f4;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 0pt;
    -        margin-bottom: 0pt;
    -        margin-left: 0pt;
    -        margin-right: 6pt;
    -        padding-top: 1pt;
    -        padding-bottom: 1pt;
    -        padding-left: 5pt;
    -        padding-right: 5pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -}
    -.specialbold {
    -        display: inline;
    -        font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -        font-weight: bold;
    -        font-size: 8pt;
    -        color: #e64a00;
    -        background-color: inherit;
    -        word-spacing: 0pt;
    -        vertical-align: baseline;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -        }
    -.emphasis {
    -        display: inline;
    -        font-style: italic;
    -        color: inherit;
    -        background-color: inherit;
    -        vertical-align: baseline;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -       }
    -.monospace {
    -        display: inline;
    -        font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        color: inherit;
    -		  font-size: 10pt;
    -        background-color: inherit;
    -        vertical-align: baseline;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -       }
    -.monospaceitalics {
    -        display: inline;
    -        font-family: "Courier New", verdana, arial, helvetica, sans-serif;
    -        font-style: italic;
    -        color: inherit;
    -		  font-size: 10pt;
    -        background-color: inherit;
    -        vertical-align: baseline;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -       }
    -ul.listbullet {
    -        list-style-type: disk;
    -        list-style-image: none;
    -        list-style-position: outside;
    -        margin-top: 7px;
    -        margin-bottom: 0px;
    -        }
    -li.listbullet {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: 10pt;
    -        margin: 0px;
    -        padding: 0 0 6px 0;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.note {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: #fffdec;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6pt;
    -        margin-bottom: 6pt;
    -        margin-left: 0cm;
    -        margin-right: 0pt;
    -        padding-top: 4pt;
    -        padding-bottom: 4pt;
    -        padding-left: 4pt;
    -        padding-right: 4pt;
    -        border: 2px solid #f8c701;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: 97%;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.buttons {
    -        display: inline;
    -        font-weight: bold;
    -        color: #444444;
    -        background-color: inherit;
    -        vertical-align: baseline;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -       }
    -ol.listnumber {
    -        list-style-type: Decimal;
    -        list-style-position: outside;
    -        margin-top: 7pt;
    -        margin-bottom: 0pt;
    -        }
    -li.listnumber {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6pt;
    -        margin-bottom: 0pt;
    -        margin-left: 0pt;
    -        margin-right: 0pt;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.procedureheading {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-variant: normal;
    -        font-weight: bold;
    -        font-size: 9pt;
    -        color: #266fa4; /* 266fa4 1b64a0 */
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 12pt;
    -        margin-bottom: 0px;
    -        margin-left: 0px;
    -        margin-right: 0px;
    -        padding-top: 0px;
    -        padding-bottom: 5px;
    -        padding-left: 0px;
    -        padding-right: 0px;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -ol.procedurelistnumber {
    -        list-style-type: Decimal;
    -        list-style-position: outside;
    -        margin-top: 7px;
    -        margin-bottom: 10px;
    -        }
    -li.procedurelistnumber {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6px;
    -        margin-bottom: 0px;
    -        margin-left: 0px;
    -        margin-right: 0pxt;
    -        padding: 0px;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.listcontinue {
    -        display: block;
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6pt;
    -        margin-bottom: 0pt;
    -        margin-left: 0pt;
    -        margin-right: 0pt;
    -        padding-top: 0pt;
    -        padding-bottom: 5pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -ul.listbullet2 {
    -        list-style-type: disk;
    -        list-style-image: none;
    -        list-style-position: outside;
    -        margin-top: 7px;
    -        margin-bottom: 0px;
    -        }
    -li.listbullet2 {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #13152d;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -		  line-height: 10pt;
    -        margin: 0px;
    -        padding: 0 0 6px 0;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.listnote {
    -        display: block;
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: #fffdec;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6pt;
    -        margin-bottom: 6pt;
    -        margin-left: 0pt;
    -        margin-right: 6pt;
    -        padding-top: 4pt;
    -        padding-bottom: 4pt;
    -        padding-left: 4pt;
    -        padding-right: 4pt;
    -        border: 2px solid #f8c701;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: 97%;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.widegraphic {
    -        display: block;
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6pt;
    -        margin-bottom: 6pt;
    -        margin-left: 0cm;
    -        margin-right: 0cm;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: center;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.listcontinue2 {
    -        display: block;
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6pt;
    -        margin-bottom: 0pt;
    -        margin-left: 0pt;
    -        margin-right: 0cm;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 10pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -
    -.listcontinue3 {
    -        display: block;
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6pt;
    -        margin-bottom: 0pt;
    -        margin-left: 0pt;
    -        margin-right: 0cm;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 10pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -
    -ul.listbullet3 {
    -        list-style-type: Square;
    -        list-style-image: none;
    -        list-style-position: outside;
    -        margin-top: 7px;
    -        margin-bottom: 0px;
    -        }
    -li.listbullet3 {
    -	     font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #13152d;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin: 0px;
    -        padding: 0 0 6px 0;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -ol.procedurelistnumber2 {
    -        list-style-type: lower-alpha;
    -        list-style-position: outside;
    -        margin-top: 7pt;
    -        margin-bottom: 0pt;
    -        }
    -li.procedurelistnumber2 {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6pt;
    -        margin-bottom: 0pt;
    -        margin-left: 0pt;
    -        margin-right: 0pt;
    -        padding: 0px;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.listnote2 {
    -        display: block;
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: #fffdec;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6pt;
    -        margin-bottom: 6pt;
    -        margin-left: 0pt;
    -        margin-right: 6pt;
    -        padding-top: 4pt;
    -        padding-bottom: 4pt;
    -        padding-left: 4pt;
    -        padding-right: 4pt;
    -        border: 2px solid #f8c701;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: 97%;
    -        height: auto;
    -        white-space: normal;
    -       }
    -ol.listnumber2 {
    -        list-style-type: Decimal;
    -        list-style-position: outside;
    -        margin-top: 7pt;
    -        margin-bottom: 0pt;
    -        }
    -li.listnumber2 {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6pt;
    -        margin-bottom: 0pt;
    -        margin-left: 0pt;
    -        margin-right: 0pt;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.warning {
    -        font-family: verdana, tahoma, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -        color: #000000;
    -        background-color: #fff5f0;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 6pt;
    -        margin-bottom: 6pt;
    -        margin-left: 0cm;
    -        margin-right: 6pt;
    -        padding-top: 4pt;
    -        padding-bottom: 4pt;
    -        padding-left: 4pt;
    -        padding-right: 4pt;
    -        border: 2px solid #e64a00;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -
    -.heading1 {
    -        font-family: arial, helvetica, sans-serif, tahoma, verdana;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-size: 12pt;
    -        color: #6a6a6a;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 18px;
    -        margin-bottom: 18px;
    -        margin-left: 0cm;
    -        margin-right: 0cm;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -
    -.heading2 {
    -        font-family: arial, helvetica, sans-serif, tahoma, verdana;
    -        font-style: normal;
    -        font-variant: normal;
    -		  font-size: 12pt;
    -        color: #5c5b64; 
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 18px;
    -        margin-bottom: 18px;
    -        margin-left: 0cm;
    -        margin-right: 0cm;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.heading3 {
    -        font-family: arial, helvetica, sans-serif, tahoma, verdana;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-size: 12pt;
    -        color: #6a6a6a;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 18px;
    -        margin-bottom: 18px;
    -        margin-left: 0cm;
    -        margin-right: 0cm;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.heading4 {
    -        font-family: arial, helvetica, sans-serif, tahoma, verdana;
    -        font-style: normal;
    -        font-variant: normal;
    -		  font-size: 12pt;
    -        color: #6a6a6a;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 18px;
    -        margin-bottom: 18px;
    -        margin-left: 0cm;
    -        margin-right: 0cm;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.heading5 {
    -        font-family: arial, helvetica, sans-serif, tahoma, verdana;
    -        font-style: normal;
    -        font-variant: normal;
    -		  font-size: 12pt;
    -        color: #6a6a6a;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 18px;
    -        margin-bottom: 18px;
    -        margin-left: 0cm;
    -        margin-right: 0cm;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.heading6 {
    -        font-family: arial, helvetica, sans-serif, tahoma, verdana;
    -        font-variant: normal;
    - 		  font-size: 12pt;
    -        color: #6a6a6a;
    -        background-color: inherit;
    -        word-spacing: normal;
    -        letter-spacing: normal;
    -        vertical-align: baseline;
    -        text-decoration: none;
    -        text-transform: none;
    -        line-height: normal;
    -        margin-top: 18px;
    -        margin-bottom: 18px;
    -        margin-left: 0cm;
    -        margin-right: 0cm;
    -        padding-top: 0pt;
    -        padding-bottom: 0pt;
    -        padding-left: 0pt;
    -        padding-right: 0pt;
    -        float: none;
    -        clear: none;
    -        text-align: left;
    -        text-indent: 0cm;
    -        width: auto;
    -        height: auto;
    -        white-space: normal;
    -       }
    -.indexatoz {
    -        font-family: arial, helvetica, sans-serif, tahoma, verdana;
    -        font-style: normal;
    -        font-weight: bold;
    -        font-size: 12px;
    -        color: #adadad;
    -        background-color: #f4f4f4;
    -        border: 1px solid #CFCFCF;
    -        margin: -15px -2px 0 -2px;
    -        padding: 6px;
    -		  position: relative;
    -		  z-index:99;
    -       }
    -
    -.indexatoz a:hover {
    -      background-color: #6697cc;
    -      text-decoration: none;
    -      color: #ffffff;
    -      padding: 1px 0;
    -}
    -.indexLetter {
    -	 	  padding-left: 2px;
    -}
    -
    -.indexheading, .indexheading a {
    -        font-family: arial, helvetica, sans-serif, tahoma, verdana;
    -        font-weight: bold;
    -        font-size: 12pt;
    -        color: #e64a00;
    -		  text-decoration: none;
    -        margin: 0px;
    -        padding: 0px;
    -		  padding-top: 10px;
    -		  margin-top: 12px;
    -		  margin-bottom: 2px;
    -		  margin-right: 2px;
    -		  border-bottom: 1px solid #cfcfcf;
    -}
    -.index1, .index2, .index3 {
    -        font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -        font-size: 8pt;
    -        color: #000000;
    -        text-decoration: none;
    -        margin: 0px;
    -        padding-top: 3px;
    -        padding-bottom: 0px;
    -        padding-left: 0px;
    -        padding-right: 0px;
    -}
    -.indexlink, .index1link {
    -        padding: 0px;
    -		  padding-top: 3px;
    -		  margin: 0px;
    -}
    -.index1link {
    -		  padding-left: 18px;
    -}
    -.toc {
    -        font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -        font-style: normal;
    -        font-variant: normal;
    -        font-weight: normal;
    -        font-size: 8pt;
    -		  padding-left: 8px;
    -		  padding-right: 5px;
    -        vertical-align: top;
    -       }
    -span.toc {
    -	line-height: 19px;
    -}
    -		 
    -.searchDetails {
    -        font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -        font-size: 11px;
    -        color: #666666;
    -        background-color: #ffffff;
    -		  border: 1px solid #CFCFCF;
    -        margin: 5px;
    -		  padding-left: 10px;
    - 		  padding-right: 10px;
    -		  padding-top: 3px;
    -		  padding-bottom: 9px;
    -		  line-height: 20px;
    -}
    -.inputText {
    -		  width: 60%;
    -		  height: 16px;
    -        font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -        font-size: 12px;
    -        color: #000000;
    -}
    -form {
    -	margin: 0px;
    -}
    -.search {
    -        font-family: tahoma, verdana, arial, helvetica, sans-serif;
    -        font-size: 8pt;
    -        color: #000000;
    -        vertical-align: top;
    -        margin: 0px;
    -        padding: 0px 10px;
    -       }
    -.searchFound {
    -	font-weight: bold;
    -	color: #1f202c;
    -	padding-top: 5px;
    -	padding-bottom: 10px;
    -	margin: 0px;
    -}
    -.searchResults {
    -	padding-bottom: 10px;
    -	padding-top: 5px;
    -	margin: 0px;
    -	border-top: 1px solid #cfcfcf;
    -}
    -.searchResults a {
    -	font-weight: bold;
    -}
    -.searchFoundWord {
    -	background-color: #fffdce; 
    -}
    -.searchToTop {
    -	text-align: left;
    -	border-top: 1px solid #cfcfcf;
    -	padding: 7px 0px 15px 0px;
    -	margin: 0px;
    -}
    \ No newline at end of file
    diff --git a/build/aps/README b/build/aps/README
    deleted file mode 100644
    index 6d9b8098977..00000000000
    --- a/build/aps/README
    +++ /dev/null
    @@ -1,20 +0,0 @@
    -README (English)
    -##################################################
    -This directory is dedicated to APS package building
    -##################################################
    -
    -Docs for APS format 1.1:
    -http://www.apsstandard.org/r/doc/aps-format-1.1-packaging-guide/index.htm
    -
    -Docs for APS format 1.2 (need APP-LIST.xml):
    -http://www.apsstandard.org/r/doc/aps-format-1.2-packaging-guide/index.htm
    -
    -
    -To check an APS package on Debian:
    -* Install libgdiplus with 
    -apt-get install libgdiplus
    -* Install apslint.exe (http://www.apsstandard.org/r/doc/aps-format-1.2-packaging-guide/57414.htm)
    -tar -xvf xxxx.tgz 
    -* Go into directory of apslint and run command
    -mono ./apslint.exe '/media/DATA/Mes Developpements/dolibarr/build/dolibarr-3.1.0-dev.app.zip' 
    -
    diff --git a/build/aps/configure.php b/build/aps/configure.php
    deleted file mode 100755
    index 1b2565e3dc8..00000000000
    --- a/build/aps/configure.php
    +++ /dev/null
    @@ -1,151 +0,0 @@
    -#!/usr/bin/env php
    -<?php
    -/*-----------------------------------------------------
    - *
    - *----------------------------------------------------- */
    -
    -// This is list of predefined variables when script is ran
    -// We have to set them manually to run script outside context.
    -/*putenv('SETTINGS_admin_name=admin');
    -putenv('SETTINGS_admin_password=admin-ad');
    -putenv('BASE_URL_SCHEME=http');
    -putenv('BASE_URL_HOST=localhost');
    -putenv('BASE_URL_PORT=0');
    -putenv('BASE_URL_PATH=/');
    -//putenv('WEB___DIR=/var/wwww/dolibarr/htdocs');      // WEB___DIR is dir to htdocs
    -putenv('WEB___DIR=../htdocs');      // WEB___DIR is dir to htdocs
    -putenv('DB_main_NAME=dolibarr');
    -putenv('DB_main_HOST=localhost');
    -putenv('DB_main_PORT=3306');
    -putenv('DB_main_LOGIN=root');
    -putenv('DB_main_PASSWORD=root');
    -*/
    -
    -// Check parameters
    -if(count($_SERVER['argv']) < 2)
    -{
    -    print "Usage: configure.php (install | upgrade <version> | configure | remove)\n";
    -    exit(1);
    -}
    -$command = $_SERVER['argv'][1]; //$command stores the argument with which the script was invoked.
    -
    -
    -if($command == "install")
    -{
    -    $db_id = 'main';
    -
    -    $rootdir = getenv("WEB___DIR");
    -    if ($rootdir != '/') $rootdir = preg_replace('/\/$/','',$rootdir);  // Remove last /
    -    $datadir = $rootdir.'/dolibarr_documents';
    -
    -    //List of database-related variables that are passed to the configuration
    -    //script. See the 6.3.1.1.1. Environment variables section of the
    -    //Specification for details.
    -    $db_address = getenv("DB_${db_id}_HOST");
    -    $db_port = getenv("DB_${db_id}_PORT");
    -    $dblogin = getenv("DB_${db_id}_LOGIN");
    -    $dbpassword = getenv("DB_${db_id}_PASSWORD");
    -    $dbname = getenv("DB_${db_id}_NAME");
    -
    -
    -    //PHP functions for connecting to the mysql server and
    -    //executing SQL queries.
    -    //mysql_connect($dbaddress, $dblogin, $dbpassword);
    -    //mysql_select_db($dbname);
    -    /*
    -     $sql_queries = file($query_file);
    -     foreach ($sql_queries as $query) mysql_query($query);
    -     */
    -
    -
    -    //Other code to be executed on invoking configure with
    -    //the install argument.
    -
    -    // Create empty config file
    -    $file=$rootdir.'/conf/conf.php';
    -    print "Create conf file ".$file."\n";
    -    $fp = fopen($file, 'wb');
    -    if ($fp)
    -    {
    -        fclose($fp);
    -        chmod($file,0775);
    -    }
    -    else
    -    {
    -        print "configure.php install: Unable to write file $file.\n";
    -        exit(1);
    -    }
    -
    -    // Create empty directory that will be used by software to store uploaded documents
    -    print "Create directory ".$datadir."\n";
    -    @mkdir($datadir);
    -    chmod($datadir,0775);
    -
    -    // Create install.forced.php into htdocs/install directory with value.
    -    // This will set parameters of install for web installer wizard.
    -    $file_source=$rootdir.'/../build/aps/install.forced.php.install';
    -    $file=$rootdir.'/install/install.forced.php';
    -    print "Create file ".$file.' from '.$file_source."\n";
    -
    -    $modify_hash=array(
    -    'WEB___DIR'=>$rootdir,
    -    'DB_'.$db_id.'_HOST'=>$db_address,
    -    'DB_'.$db_id.'_PORT'=>$db_port,
    -    'DB_'.$db_id.'_LOGIN'=>$dblogin,
    -    'DB_'.$db_id.'_PASSWORD'=>$dbpassword,
    -    'DB_'.$db_id.'_NAME'=>$dbname
    -    );
    -
    -    $file_content = fread(fopen($file_source, 'r'), filesize($file_source));
    -    foreach($modify_hash as $param => $val){
    -        $file_content = str_replace($param, php_quote($val), $file_content);
    -    }
    -    $fp = fopen($file, 'wb');
    -    if ($fp)
    -    {
    -        fputs($fp, $file_content);
    -        fputs($fp, "\n");
    -        fclose($fp);
    -        chmod($file,0775);
    -    }
    -    else
    -    {
    -        print "configure.php install: Unable to write file $file.\n";
    -        exit(2);
    -    }
    -
    -    exit(0);
    -}
    -
    -if($command == "remove")
    -{
    -    //Code to be executed on invoking configure with the remove argument
    -    exit(0);
    -}
    -
    -if($command == "upgrade")
    -{
    -    //Code to be executed on invoking configure with the upgrade argument
    -    exit(0);
    -}
    -
    -if($command == "configure")
    -{
    -    //Code to be executed on invoking configure with the configure argument
    -    exit(0);
    -}
    -
    -print "configure.php: Error: unknown command $command.\n";
    -exit(1);
    -
    -
    -
    -// Content of file-util.php we need
    -
    -function php_quote($val)
    -{
    -    $res_val = str_replace("\\", "\\\\", $val);
    -    $res_val = str_replace("'", "\\'", $res_val);
    -    return $res_val;
    -}
    -
    diff --git a/build/aps/install.forced.php.install b/build/aps/install.forced.php.install
    deleted file mode 100644
    index a7a3f03c14c..00000000000
    --- a/build/aps/install.forced.php.install
    +++ /dev/null
    @@ -1,23 +0,0 @@
    -<?php
    -// File to force Dolibarr wizard installer choices.
    -//
    -// This file must be present into htdocs/install directory
    -// during install process to be used.
    -//
    -//
    -$force_install_noedit=1;
    -$force_install_message='KeepDefaultValuesDeb';
    -$force_install_main_data_root='WEB___DIR/dolibarr_documents';
    -$force_install_type='mysqli';
    -$force_install_dbserver='DB_main_HOST';
    -$force_install_port='DB_main_PORT';
    -$force_install_database='DB_main_NAME';
    -$force_install_createdatabase='0';
    -$force_install_databaselogin='DB_main_LOGIN';
    -$force_install_databasepass='DB_main_PASSWORD';
    -$force_install_createuser='0';
    -$force_install_databaserootlogin='';
    -$force_install_databaserootpass='';
    -$force_install_dolibarrlogin='admin';
    -$force_install_nophpinfo='1';
    -$force_install_lockinstall='444';
    diff --git a/build/debian/copyright b/build/debian/copyright
    index 8207df4b6d7..72e531d7007 100644
    --- a/build/debian/copyright
    +++ b/build/debian/copyright
    @@ -8,7 +8,7 @@ Copyright: 2002-2009, Rodolphe Quiedeville   <rodolphe@quiedeville.org>
                2003-2006, Jean-Louis Bergamo     <jlb@j1b.org>
                2003-2013, Laurent Destailleur    <eldy@users.sourceforge.net>
                2003, Xavier Dutoit               <doli@sydesy.com>
    -           2004-2013, Regis Houssin          <regis.houssin@capnetworks.com>
    +           2004-2013, Regis Houssin          <regis.houssin@inodbox.com>
                2004, Sebastien Di Cintio         <sdicintio@ressource-toi.org>
                2004, Benoit Mortier              <benoit.mortier@opensides.be>
                2004, Christophe Combelles        <ccomb@free.fr>
    diff --git a/build/debian/source/include-binaries b/build/debian/source/include-binaries
    new file mode 100644
    index 00000000000..401eae93712
    --- /dev/null
    +++ b/build/debian/source/include-binaries
    @@ -0,0 +1 @@
    +htdocs/install/doctemplates/websites/website_template-corporate.zip
    \ No newline at end of file
    diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile
    index caa7b0c436a..0d5918c3f4c 100644
    --- a/build/docker/Dockerfile
    +++ b/build/docker/Dockerfile
    @@ -3,18 +3,30 @@ FROM php:7.0-apache
     ENV HOST_USER_ID 33
     ENV PHP_INI_DATE_TIMEZONE 'UTC'
     
    -RUN apt-get update && apt-get install -y libpng12-dev libjpeg-dev libldap2-dev \
    +RUN apt-get update && apt-get install -y libpng-dev libjpeg-dev libldap2-dev \
     	&& rm -rf /var/lib/apt/lists/* \
     	&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
     	&& docker-php-ext-install gd \
     	&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
             && docker-php-ext-install ldap \
             && docker-php-ext-install mysqli \
    -        && apt-get purge -y libpng12-dev libjpeg-dev libldap2-dev
    +        && apt-get purge -y libjpeg-dev libldap2-dev
     
     COPY docker-run.sh /usr/local/bin/
     RUN chmod +x /usr/local/bin/docker-run.sh
     
    +RUN pecl install xdebug-2.5.5 && docker-php-ext-enable xdebug
    +RUN echo 'zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so"' >> /usr/local/etc/php/php.ini
    +RUN echo 'xdebug.remote_autostart=0' >> /usr/local/etc/php/php.ini
    +RUN echo 'xdebug.remote_enable=1' >> /usr/local/etc/php/php.ini
    +RUN echo 'xdebug.default_enable=0' >> /usr/local/etc/php/php.ini
    +RUN echo 'xdebug.remote_host=docker.for.mac.host.internal' >> /usr/local/etc/php/php.ini
    +RUN echo 'xdebug.remote_port=9000' >> /usr/local/etc/php/php.ini
    +RUN echo 'xdebug.remote_connect_back=0' >> /usr/local/etc/php/php.ini
    +RUN echo 'xdebug.profiler_enable=0' >> /usr/local/etc/php/php.ini
    +RUN echo 'xdebug.remote_log="/tmp/xdebug.log"' >> /usr/local/etc/php/php.ini
    +
    +
     EXPOSE 80
     
     ENTRYPOINT ["docker-run.sh"]
    diff --git a/build/doxygen/doxygen_footer.html b/build/doxygen/doxygen_footer.html
    index a6d5bdfb293..8ffdc5341fe 100644
    --- a/build/doxygen/doxygen_footer.html
    +++ b/build/doxygen/doxygen_footer.html
    @@ -3,42 +3,27 @@ File added into doxygen generated documentation
     -->
     
     
    -<!-- Google analytics -->
    -<script>
    -  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    -  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    -  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    -  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
    -
    -  ga('create', 'UA-9049390-16', 'auto');
    -  ga('send', 'pageview');
    -
    -</script>
    -<!-- End google analytics -->
    -
     
     <hr class="footer" />
    -<address class="footer"><small>Generated on $datetime
    -for <a href="https://www.dolibarr.org">$projectname</a> by Doxygen $doxygenversion </small></address>
    +<address class="footer"><small>Generated on $datetime for <a href="https://www.dolibarr.org">$projectname</a> by Doxygen $doxygenversion </small></address>
     
     
    -<!--  Google AdSense -->
    -<div class="center">
    -<script type="text/javascript"><!--
    -google_ad_client = "pub-1071905880519467";
    -/* PUBBANDEAUDOLIBARR */
    -google_ad_slot = "1421205532";
    -google_ad_width = 468;
    -google_ad_height = 60;
    -//-->
    -</script>
    -<script type="text/javascript" src="https://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
    -</div>
    -<!-- End google adsense -->
     <br>
     
     </div>
     
    +
    +<!-- Global site tag (gtag.js) - Google Analytics -->
    +<script async src="https://www.googletagmanager.com/gtag/js?id=UA-9049390-16"></script>
    +<script>
    +  window.dataLayer = window.dataLayer || [];
    +  function gtag(){dataLayer.push(arguments);}
    +  gtag('js', new Date());
    +
    +  gtag('config', 'UA-9049390-16');
    +</script>
    +
    +
     <!-- Twitter ad collector -->
     <script src="//platform.twitter.com/oct.js" type="text/javascript"></script>
     <script type="text/javascript">twttr.conversion.trackPid('ntm4n', { tw_sale_amount: 0, tw_order_quantity: 0 });</script>
    diff --git a/build/exe/doliwamp/Languages/MyEnglish.isl b/build/exe/doliwamp/Languages/MyEnglish.isl
    index 11d2e4456bd..b7c5ecb6230 100644
    --- a/build/exe/doliwamp/Languages/MyEnglish.isl
    +++ b/build/exe/doliwamp/Languages/MyEnglish.isl
    @@ -13,8 +13,8 @@ AssocingFileExtension=Associating %1 with the %2 file extension...
     
     YouWillInstallDoliWamp=You will install or upgrade DoliWamp (Apache+Mysql+PHP+Dolibarr) on your computer.
     ThisAssistantInstallOrUpgrade=This assistant installs or upgrades Dolibarr ERP-CRM and all required third party softwares (Apache, Mysql and PHP) optimized for a Dolibarr usage.
    -IfYouHaveTechnicalKnowledge=If you have technical knowledge and plan to share your Apache, Mysql and PHP with other projects than Dolibarr, you should not use this assistant and make a manual installation of Dolibarr on your existing Apache, Mysql and PHP installation.
    -ButIfYouLook=But if you look for an automatic setup, you''re on the good way...
    +IfYouHaveTechnicalKnowledge=If you are looking for a hosted version in the Cloud, you should look at https://saas.dolibarr.org. If you have technical knowledge and want to manage your Apache, Mysql and PHP yourself, you should not use this assistant and make a manual installation of Dolibarr on your existing Apache, Mysql and PHP installation.
    +ButIfYouLook=But if you look for an automatic setup on your local computer, you''re on the good way...
     DoYouWantToStart=Do you want to start installation/upgrade process ?
     
     TechnicalParameters=Technical parameters
    diff --git a/build/exe/doliwamp/Languages/MyFrench.isl b/build/exe/doliwamp/Languages/MyFrench.isl
    index 1daf4425e68..8c7cff0bb42 100644
    --- a/build/exe/doliwamp/Languages/MyFrench.isl
    +++ b/build/exe/doliwamp/Languages/MyFrench.isl
    @@ -13,8 +13,8 @@ AssocingFileExtension=Associe %1 avec l'extension de fichier %2...
     
     YouWillInstallDoliWamp=Vous allez installer ou mettre  jour DoliWamp (Apache+Mysql+PHP+Dolibarr) sur votre ordinateur.
     ThisAssistantInstallOrUpgrade=Cet assistant installe ou met  jour Dolibarr ERP-CRM et tous ses composants prrequis (Apache, Mysql et PHP) optimiss pour une utilisation de Dolibarr.
    -IfYouHaveTechnicalKnowledge=Si vous avez des comptences techniques et envisagez de partager votre Apache, Mysql et PHP avec d'autres applications que Dolibarr, vous ne devriez pas utiliser cet assistant mais faire plutt une installation manuelle de Dolibarr sur un socle Apache, Mysql et PHP existant.
    -ButIfYouLook=Mais si vous recherchez une installation cl en main automatise, vous tes sur la bonne voie...
    +IfYouHaveTechnicalKnowledge=Si vous cherchez un hbergement dans le Cloud, aller voir sur https://saas.dolibarr.org. Si vous avez des comptences techniques et voulez grer vous mme Apache, Mysql et PHP, vous ne devriez pas utiliser cet assistant mais faire plutt une installation manuelle de Dolibarr sur votre socle Apache, Mysql et PHP existant.
    +ButIfYouLook=Mais si vous recherchez une installation automatise locale sur votre ordinateur, cl en main, vous tes sur la bonne voie...
     DoYouWantToStart=Voulez-vous dmarrer le processus d'installation/mise  jour ?
     
     TechnicalParameters=Paramtres techniques
    diff --git a/build/exe/doliwamp/README b/build/exe/doliwamp/README
    index 3cbd8986700..9d4c68daf3d 100644
    --- a/build/exe/doliwamp/README
    +++ b/build/exe/doliwamp/README
    @@ -5,4 +5,4 @@ DOLIWAMP Package tools
     
     This directory contains files used by makepack-dolibarr.pl
     script to build the all-in-on .EXE package DoliWamp, ready
    -to be distributedt (for Windows).
    \ No newline at end of file
    +to be distributed (for Windows).
    \ No newline at end of file
    diff --git a/build/exe/doliwamp/doliwamp.iss b/build/exe/doliwamp/doliwamp.iss
    index 2d4668b447c..587f2584dbe 100644
    --- a/build/exe/doliwamp/doliwamp.iss
    +++ b/build/exe/doliwamp/doliwamp.iss
    @@ -32,7 +32,7 @@ AppPublisherURL=https://www.nltechno.com
     AppSupportURL=https://www.dolibarr.org
     AppUpdatesURL=https://www.dolibarr.org
     AppComments=DoliWamp includes Dolibarr, Apache, PHP and Mysql softwares.
    -AppCopyright=Copyright (C) 2008-2017 Laurent Destailleur (NLTechno), Fabian Rodriguez (Le Goût du Libre)
    +AppCopyright=Copyright (C) 2008-2019 Laurent Destailleur (NLTechno), Fabian Rodriguez (Le Goût du Libre)
     DefaultDirName=c:\dolibarr
     DefaultGroupName=Dolibarr
     ;LicenseFile=COPYING
    diff --git a/build/exe/doliwamp/index.php.install b/build/exe/doliwamp/index.php.install
    index 1c657b35977..c511d973393 100644
    --- a/build/exe/doliwamp/index.php.install
    +++ b/build/exe/doliwamp/index.php.install
    @@ -527,7 +527,7 @@ a:hover {
     </head>
     
     <body>
    -<table width="100%"><tr><td align="left">
    +<table width="100%"><tr><td class="left">
     	<img src="index.php?img=pngLogo">
     </td>
     <td align="right">
    @@ -587,4 +587,4 @@ a:hover {
     EOPAGE;
     
     echo $pageContents;
    -?>
    \ No newline at end of file
    +?>
    diff --git a/build/flatpack/org.flatpak.Dolibarr.json b/build/flatpack/org.flatpak.Dolibarr.json
    new file mode 100644
    index 00000000000..9e2135cf0a3
    --- /dev/null
    +++ b/build/flatpack/org.flatpak.Dolibarr.json
    @@ -0,0 +1 @@
    +Help wanted...
    \ No newline at end of file
    diff --git a/build/generate_filelist_xml.php b/build/generate_filelist_xml.php
    index 0764d64b491..ec9ded557ff 100755
    --- a/build/generate_filelist_xml.php
    +++ b/build/generate_filelist_xml.php
    @@ -34,8 +34,8 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
         exit;
     }
     
    -require_once($path."../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    +require_once $path."../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
     
     
     /*
    diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl
    index 7ba988231cc..14f28a71edc 100755
    --- a/build/makepack-dolibarr.pl
    +++ b/build/makepack-dolibarr.pl
    @@ -22,7 +22,7 @@ $PUBLISHSTABLE="eldy,dolibarr\@frs.sourceforge.net:/home/frs/project/dolibarr";
     $PUBLISHBETARC="dolibarr\@vmprod1.dolibarr.org:/home/dolibarr/dolibarr.org/httpdocs/files";
     
     
    -#@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","APS","EXEDOLIWAMP","SNAPSHOT");   # Possible packages
    +#@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","EXEDOLIWAMP","SNAPSHOT");   # Possible packages
     @LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","EXEDOLIWAMP","SNAPSHOT");   # Possible packages
     %REQUIREMENTPUBLISH=(
     "SF"=>"git ssh rsync",
    @@ -36,8 +36,8 @@ $PUBLISHBETARC="dolibarr\@vmprod1.dolibarr.org:/home/dolibarr/dolibarr.org/httpd
     "RPM_FEDORA"=>"rpmbuild",
     "RPM_MANDRIVA"=>"rpmbuild",
     "RPM_OPENSUSE"=>"rpmbuild",
    -"DEB"=>"dpkg",
    -"APS"=>"zip",
    +"DEB"=>"dpkg dpatch",
    +"FLATPACK"=>"flatpack",
     "EXEDOLIWAMP"=>"ISCC.exe",
     "SNAPSHOT"=>"tar"
     );
    @@ -142,7 +142,6 @@ $FILENAMETGZ         = "$PROJECT-$MAJOR.$MINOR.$BUILD";
     $FILENAMEZIP         = "$PROJECT-$MAJOR.$MINOR.$BUILD";
     $FILENAMEXZ          = "$PROJECT-$MAJOR.$MINOR.$BUILD";
     $FILENAMEDEB         = "see later";
    -$FILENAMEAPS         = "$PROJECT-$MAJOR.$MINOR.$BUILD.app";
     $FILENAMEEXEDOLIWAMP = "DoliWamp-$MAJOR.$MINOR.$BUILD";
     # For RPM
     $ARCH='noarch';
    @@ -536,6 +535,8 @@ if ($nboftargetok) {
        	    $ret=`find $BUILDROOT/$PROJECT/htdocs/custom/* -type l -exec rm -fr {} \\; >/dev/null 2>&1`;	# For custom we want to remove all subdirs, even symbolic links, but not files
     
     		# Removed known external modules to avoid any error when packaging from env where external modules are tested 
    +		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/abricot*`;
    +		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/accountingexport*`;
     		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/allscreens*`;
     		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/ancotec*`;
     	    $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/cabinetmed*`;
    @@ -550,12 +551,14 @@ if ($nboftargetok) {
     		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/multicompany*`;
     		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/ndf*`;
     		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/nltechno*`;
    +		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/nomenclature*`;
    +	    $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/of/`;
     	    $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/oscim*`;
     		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/pos*`;
     		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/teclib*`;
     		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/timesheet*`;
     		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/webmail*`;
    -		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/accountingexport*`;
    +		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/workstation*`;
     		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/oblyon*`;
     		$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/allscreen*`;
     		# Removed other test files
    @@ -586,6 +589,7 @@ if ($nboftargetok) {
             $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/Examples`;
             $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/unitTests`;
             $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/license.md`;
    +        $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/dav/tests`;
             $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/stripe/LICENSE`;
             $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-*`;
             $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/freefont-*`;
    @@ -692,7 +696,7 @@ if ($nboftargetok) {
     			print "Go to directory $BUILDROOT\n";
     			$olddir=getcwd();
     			chdir("$BUILDROOT");
    -			$cmd= "xz -9 -r $BUILDROOT/$FILENAMEAPS.xz \*";
    +			$cmd= "xz -9 -r $BUILDROOT/$FILENAMEXZ.xz \*";
     			print $cmd."\n";
     			$ret= `$cmd`;
     			chdir("$olddir");
    @@ -1033,92 +1037,6 @@ if ($nboftargetok) {
     			next;
     		}
     		
    -		if ($target eq 'APS') 
    -		{
    -			$NEWDESTI=$DESTI;
    -			if ($NEWDESTI =~ /stable/)
    -			{
    -				mkdir($DESTI.'/package_aps');
    -				if (-d $DESTI.'/package_aps') { $NEWDESTI=$DESTI.'/package_aps'; }
    -			} 
    -			
    -			$newbuild = $BUILD;
    -			$newbuild =~ s/(dev|alpha)/0/gi;                # dev
    -			$newbuild =~ s/beta/1/gi;                       # beta
    -			$newbuild =~ s/rc./2/gi;                        # rc
    -			if ($newbuild !~ /-/) { $newbuild.='-3'; }      # finale
    -			# now newbuild is 0-0 or 0-3 for example
    -			$REL1 = $newbuild; $REL1 =~ s/-.*$//gi;
    -			if ($RPMSUBVERSION eq 'auto') { $RPMSUBVERSION = $newbuild; $RPMSUBVERSION =~ s/^.*-//gi; }
    -			print "Version is $MAJOR.$MINOR.$REL1-$RPMSUBVERSION\n";
    -			
    -			print "Remove target $FILENAMEAPS.zip...\n";
    -			unlink "$NEWDESTI/$FILENAMEAPS.zip";
    -
    -			#rmdir "$BUILDROOT/$PROJECT.tmp";
    -			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp`;
    -			print "Create directory $BUILDROOT/$PROJECT.tmp\n";
    -			$ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp"`;
    -			print "Copy $BUILDROOT/$PROJECT to $BUILDROOT/$PROJECT.tmp\n";
    -			$cmd="cp -pr \"$BUILDROOT/$PROJECT\" \"$BUILDROOT/$PROJECT.tmp\"";
    -			$ret=`$cmd`;
    -
    -			print "Remove other files\n";
    -			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/deb`;
    -			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/dmg`;
    -			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/doap`;
    -			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/exe`;
    -			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/live`;
    -			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/patch`;
    -			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/rpm`;
    -			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/zip`;
    -			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/perl`;
    -
    -            $APSVERSION="1.2";
    -            print "Create APS files $BUILDROOT/$PROJECT.tmp/$PROJECT/APP-META.xml\n";
    -            open (SPECFROM,"<$BUILDROOT/$PROJECT/build/aps/APP-META-$APSVERSION.xml") || die "Error";
    -            open (SPECTO,">$BUILDROOT/$PROJECT.tmp/$PROJECT/APP-META.xml") || die "Error";
    -            while (<SPECFROM>) {
    -                $newbuild = $BUILD;
    -                $newbuild =~ s/(dev|alpha)/0/gi;                # dev
    -                $newbuild =~ s/beta/1/gi;                       # beta
    -                $newbuild =~ s/rc./2/gi;                        # rc
    -                if ($newbuild !~ /-/) { $newbuild.='-3'; }      # finale
    -                # now newbuild is 0-0 or 0-3 for example
    -                $_ =~ s/__VERSION__/$MAJOR.$MINOR.$REL1/;
    -                $_ =~ s/__RELEASE__/$RPMSUBVERSION/;
    -                print SPECTO $_;
    -            }
    -            close SPECFROM;
    -            close SPECTO;
    -            print "Version set to $MAJOR.$MINOR.$newbuild\n";
    -            $cmd="cp -pr \"$BUILDROOT/$PROJECT/build/aps/configure.php\" \"$BUILDROOT/$PROJECT.tmp/$PROJECT/scripts/configure.php\"";
    -            $ret=`$cmd`;
    -            $cmd="cp -pr \"$BUILDROOT/$PROJECT/doc/images\" \"$BUILDROOT/$PROJECT.tmp/$PROJECT/images\"";
    -            $ret=`$cmd`;
    - 
    -            print "Remove other files\n";
    -            $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/dev`;
    -            $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/doc`;
    -            
    -            print "Build APP-LIST.xml files\n";
    -            
    -            print "Compress $BUILDROOT/$PROJECT.tmp/$PROJECT into $FILENAMEAPS.zip...\n";
    - 
    -            print "Go to directory $BUILDROOT/$PROJECT.tmp\/$PROJECT\n";
    -            $olddir=getcwd();
    -            chdir("$BUILDROOT\/$PROJECT.tmp\/$PROJECT");
    -            $cmd= "zip -9 -r $BUILDROOT/$FILENAMEAPS.zip \*";
    -            print $cmd."\n";
    -            $ret= `$cmd`;
    -            chdir("$olddir");
    -                        
    -    		# Move to final dir
    -            print "Move $BUILDROOT/$FILENAMEAPS.zip to $NEWDESTI/$FILENAMEAPS.zip\n";
    -            $ret=`mv "$BUILDROOT/$FILENAMEAPS.zip" "$NEWDESTI/$FILENAMEAPS.zip"`;
    -            next;
    -    	}
    -
     		if ($target eq 'EXEDOLIWAMP')
     		{
     			$NEWDESTI=$DESTI;
    @@ -1140,7 +1058,7 @@ if ($nboftargetok) {
         		$ret=`cat "$SOURCE/build/exe/doliwamp/doliwamp.iss" | sed -e 's/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g' > "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`;
     
         		print "Compil exe $FILENAMEEXEDOLIWAMP.exe file from iss file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"\n";
    -    		$cmd= "ISCC.exe \"Z:$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"";
    +    		$cmd= "wine ISCC.exe \"Z:$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"";
     			print "$cmd\n";
     			$ret= `$cmd`;
     			#print "$ret\n";
    diff --git a/build/makepack-howto.txt b/build/makepack-howto.txt
    index f1770a692c0..477d129d459 100644
    --- a/build/makepack-howto.txt
    +++ b/build/makepack-howto.txt
    @@ -43,9 +43,9 @@ To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dol
     - Run makepack-dolibarr.pl to generate all packages.
     
     - Check content of built packages.
    -- Move build files into www.dolibarr.org web site
    -  (/home/dolibarr/wwwroot/files/stable).
     
    +- Run makepack-dolibarr.pl again with option to publish files on 
    +  dolibarr foundation server (Dir /home/dolibarr/wwwroot/files/stable on www.dolibarr.org).
     - Run makepack-dolibarr.pl again with option to publish files on 
       sourceforge. This will also add official tag.
     - Edit symbolic links in directory "/home/dolibarr/wwwroot/files/stable/xxx"
    diff --git a/build/perl/virtualmin/dolibarr.pl b/build/perl/virtualmin/dolibarr.pl
    index 589e2a3f55c..a28fc430caa 100644
    --- a/build/perl/virtualmin/dolibarr.pl
    +++ b/build/perl/virtualmin/dolibarr.pl
    @@ -30,7 +30,7 @@ return "Regis Houssin";
     # script_dolibarr_versions()
     sub script_dolibarr_versions
     {
    -return ( "7.0.0", "6.0.5", "5.0.7" );
    +return ( "9.0.0", "8.0.3", "7.0.4", "6.0.8", "5.0.7" );
     }
     
     sub script_dolibarr_release
    @@ -263,15 +263,16 @@ if ($upgrade) {
     	local @params = ( [ "action", "upgrade" ],
     			  [ "versionfrom", $upgrade->{'version'} ],
     			  [ "versionto", $ver ],
    +			  [ "installlock", "444" ],
     			 );
     	local $p = $ver >= 3.8 ? "step5" : "etape5";
     	local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
     	return (-1, "Dolibarr wizard failed : $err") if ($err);
     	
    -	# Remove the installation directory.
    -	local $dinstall = "$opts->{'dir'}/install";
    -	$dinstall  =~ s/\/$//;
    -	$out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
    +	# Remove the installation directory. (deprecated)
    +	# local $dinstall = "$opts->{'dir'}/install";
    +	# $dinstall  =~ s/\/$//;
    +	# $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
     	
     	}
     else {
    @@ -306,15 +307,18 @@ else {
     			  [ "login", "admin" ],
     			  [ "pass", $dompass ],
     			  [ "pass_verif", $dompass ],
    +			  [ "installlock", "444" ],
     	 		 );
     	local $p = $ver >= 3.8 ? "step5" : "etape5";
     	local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
     	return (-1, "Dolibarr wizard failed : $err") if ($err);
     	
    -	# Remove the installation directory and protect config file.
    -	local $dinstall = "$opts->{'dir'}/install";
    -	$dinstall  =~ s/\/$//;
    -	$out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
    +	# Remove the installation directory (deprecated)
    +	# local $dinstall = "$opts->{'dir'}/install";
    +	# $dinstall  =~ s/\/$//;
    +	# $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
    +	
    +	# Protect config file
     	&set_permissions_as_domain_user($d, 0644, $cfile);
     	&set_permissions_as_domain_user($d, 0755, $cfiledir);
     	}
    @@ -386,6 +390,8 @@ sub script_dolibarr_check_latest
     {
     local ($ver) = @_;
     local @vers = &osdn_package_versions("dolibarr",
    +				$ver >= 9.0 ? "dolibarr\\-(9\\.0\\.[0-9\\.]+)\\.tgz" :
    +				$ver >= 8.0 ? "dolibarr\\-(8\\.0\\.[0-9\\.]+)\\.tgz" :
     				$ver >= 7.0 ? "dolibarr\\-(7\\.0\\.[0-9\\.]+)\\.tgz" :
     				$ver >= 6.0 ? "dolibarr\\-(6\\.0\\.[0-9\\.]+)\\.tgz" :
     				$ver >= 5.0 ? "dolibarr\\-(5\\.0\\.[0-9\\.]+)\\.tgz" :
    diff --git a/build/rpm/dolibarr_fedora.spec b/build/rpm/dolibarr_fedora.spec
    index d5a9189229e..b6d526bf8e1 100755
    --- a/build/rpm/dolibarr_fedora.spec
    +++ b/build/rpm/dolibarr_fedora.spec
    @@ -177,9 +177,11 @@ done >>%{name}.lang
     %_datadir/dolibarr/htdocs/core
     %_datadir/dolibarr/htdocs/cron
     %_datadir/dolibarr/htdocs/custom
    +%_datadir/dolibarr/htdocs/datapolicy
     %_datadir/dolibarr/htdocs/dav
     %_datadir/dolibarr/htdocs/don
     %_datadir/dolibarr/htdocs/ecm
    +%_datadir/dolibarr/htdocs/emailcollector
     %_datadir/dolibarr/htdocs/expedition
     %_datadir/dolibarr/htdocs/expensereport
     %_datadir/dolibarr/htdocs/exports
    @@ -212,6 +214,7 @@ done >>%{name}.lang
     %_datadir/dolibarr/htdocs/supplier_proposal
     %_datadir/dolibarr/htdocs/support
     %_datadir/dolibarr/htdocs/theme
    +%_datadir/dolibarr/htdocs/takepos
     %_datadir/dolibarr/htdocs/ticket
     %_datadir/dolibarr/htdocs/user
     %_datadir/dolibarr/htdocs/variants
    diff --git a/build/rpm/dolibarr_generic.spec b/build/rpm/dolibarr_generic.spec
    index 673d5919d1a..32c6e50018e 100755
    --- a/build/rpm/dolibarr_generic.spec
    +++ b/build/rpm/dolibarr_generic.spec
    @@ -54,7 +54,7 @@ BuildRequires: desktop-file-utils
     Group: Applications/Productivity
     Requires: apache-base, apache-mod_php, php-cgi, php-cli, php-bz2, php-gd, php-ldap, php-imap, php-mysqli, php-openssl, fonts-ttf-dejavu 
     Requires: mysql, mysql-client 
    -%else
    +%else%_datadir/dolibarr/htdocs/datapolicy
     %if 0%{?suse_version}
     # Voir http://en.opensuse.org/openSUSE:Packaging_Conventions_RPM_Macros
     Group: Productivity/Office/Management
    @@ -124,7 +124,7 @@ cui hai bisogno ed essere facile da usare.
     
     %if 0%{?sles_version}
     %{__rm} -rf $RPM_BUILD_ROOT
    -%{__mkdir} $RPM_BUILD_ROOT
    +%{__mkdir} $RPM_BUILD_ROOT%_datadir/dolibarr/htdocs/datapolicy
     %{__mkdir} $RPM_BUILD_ROOT%{_sysconfdir}
     %{__mkdir} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
     %else
    @@ -257,9 +257,11 @@ done >>%{name}.lang
     %_datadir/dolibarr/htdocs/core
     %_datadir/dolibarr/htdocs/cron
     %_datadir/dolibarr/htdocs/custom
    +%_datadir/dolibarr/htdocs/datapolicy
     %_datadir/dolibarr/htdocs/dav
     %_datadir/dolibarr/htdocs/don
     %_datadir/dolibarr/htdocs/ecm
    +%_datadir/dolibarr/htdocs/emailcollector
     %_datadir/dolibarr/htdocs/expedition
     %_datadir/dolibarr/htdocs/expensereport
     %_datadir/dolibarr/htdocs/exports
    @@ -292,6 +294,7 @@ done >>%{name}.lang
     %_datadir/dolibarr/htdocs/supplier_proposal
     %_datadir/dolibarr/htdocs/support
     %_datadir/dolibarr/htdocs/theme
    +%_datadir/dolibarr/htdocs/takepos
     %_datadir/dolibarr/htdocs/ticket
     %_datadir/dolibarr/htdocs/user
     %_datadir/dolibarr/htdocs/variants
    diff --git a/build/rpm/dolibarr_mandriva.spec b/build/rpm/dolibarr_mandriva.spec
    index e3d2a849db2..dbb8e0d1310 100755
    --- a/build/rpm/dolibarr_mandriva.spec
    +++ b/build/rpm/dolibarr_mandriva.spec
    @@ -174,9 +174,11 @@ done >>%{name}.lang
     %_datadir/dolibarr/htdocs/core
     %_datadir/dolibarr/htdocs/cron
     %_datadir/dolibarr/htdocs/custom
    +%_datadir/dolibarr/htdocs/datapolicy
     %_datadir/dolibarr/htdocs/dav
     %_datadir/dolibarr/htdocs/don
     %_datadir/dolibarr/htdocs/ecm
    +%_datadir/dolibarr/htdocs/emailcollector
     %_datadir/dolibarr/htdocs/expedition
     %_datadir/dolibarr/htdocs/expensereport
     %_datadir/dolibarr/htdocs/exports
    @@ -209,6 +211,7 @@ done >>%{name}.lang
     %_datadir/dolibarr/htdocs/supplier_proposal
     %_datadir/dolibarr/htdocs/support
     %_datadir/dolibarr/htdocs/theme
    +%_datadir/dolibarr/htdocs/takepos
     %_datadir/dolibarr/htdocs/ticket
     %_datadir/dolibarr/htdocs/user
     %_datadir/dolibarr/htdocs/variants
    diff --git a/build/rpm/dolibarr_opensuse.spec b/build/rpm/dolibarr_opensuse.spec
    index 5a64bec2e78..aa810a737b9 100755
    --- a/build/rpm/dolibarr_opensuse.spec
    +++ b/build/rpm/dolibarr_opensuse.spec
    @@ -185,9 +185,11 @@ done >>%{name}.lang
     %_datadir/dolibarr/htdocs/core
     %_datadir/dolibarr/htdocs/cron
     %_datadir/dolibarr/htdocs/custom
    +%_datadir/dolibarr/htdocs/datapolicy
     %_datadir/dolibarr/htdocs/dav
     %_datadir/dolibarr/htdocs/don
     %_datadir/dolibarr/htdocs/ecm
    +%_datadir/dolibarr/htdocs/emailcollector
     %_datadir/dolibarr/htdocs/expedition
     %_datadir/dolibarr/htdocs/expensereport
     %_datadir/dolibarr/htdocs/exports
    @@ -220,6 +222,7 @@ done >>%{name}.lang
     %_datadir/dolibarr/htdocs/supplier_proposal
     %_datadir/dolibarr/htdocs/support
     %_datadir/dolibarr/htdocs/theme
    +%_datadir/dolibarr/htdocs/takepos
     %_datadir/dolibarr/htdocs/ticket
     %_datadir/dolibarr/htdocs/user
     %_datadir/dolibarr/htdocs/variants
    diff --git a/build/travis-ci/apache.conf b/build/travis-ci/apache.conf
    index a4965c40d68..60a4095c34a 100644
    --- a/build/travis-ci/apache.conf
    +++ b/build/travis-ci/apache.conf
    @@ -1,5 +1,6 @@
     <VirtualHost *:80>
       DocumentRoot %TRAVIS_BUILD_DIR%/htdocs
    +  ErrorLog /var/log/apache2/travis_error_log
     
       <Directory "%TRAVIS_BUILD_DIR%/htdocs/">
         Options FollowSymLinks MultiViews ExecCGI
    diff --git a/dev/dolibarr_changes.txt b/dev/dolibarr_changes.txt
    index cdbc2e2bb40..37aef014e63 100644
    --- a/dev/dolibarr_changes.txt
    +++ b/dev/dolibarr_changes.txt
    @@ -1,5 +1,5 @@
     
    -This file describe changes made on external library after beeing included
    +This file describes changes made on external libraries after being included
     in Dolibarr root.
     
     
    @@ -48,6 +48,23 @@ into
     	// initialize subsetchars
     	$subsetchars = array_fill(0, 256, true);
     
    +* Replace the continue into switch with a break:
    +
    +case 're': {
    +	// justify block
    +	if (!TCPDF_STATIC::empty_string($this->lispacer)) {
    +		$this->lispacer = '';
    +		continue;
    +	}
    +
    +into 
    +case 're': {
    +	// justify block
    +	if (!TCPDF_STATIC::empty_string($this->lispacer)) {
    +		$this->lispacer = '';
    +		break;
    +	}
    +
     * Optionnaly, removed all fonts except 
         dejavusans* (used by greek, arab, persan, romanian, turkish), 
         freemono* (russian), 
    @@ -61,17 +78,24 @@ In htdocs/includes/tcpdf/tcpdf.php
     +       protected $default_monospaced_font = 'freemono';
     
     
    +		
     
     TCPDI:
     ------
     Add fpdf_tpl.php 1.2
     Add tcpdi.php
    +
     Add tcpdi_parser.php and replace:
     require_once(dirname(__FILE__).'/include/tcpdf_filters.php');
     with:
     require_once(dirname(__FILE__).'/../tecnickcom/tcpdf/include/tcpdf_filters.php');
     
     
    +* Fix by replacing
    +	} elseif (($key == '/Index') AND ($v[0] == PDF_TYPE_ARRAY AND count($v[1] >= 2))) {
    +with
    +	} elseif (($key == '/Index') AND ($v[0] == PDF_TYPE_ARRAY AND count($v[1]) >= 2)) {
    +
     
     
     JSGANTT:
    diff --git a/dev/examples/code/create_invoice.php b/dev/examples/code/create_invoice.php
    index bd82d38d306..e519c62a436 100755
    --- a/dev/examples/code/create_invoice.php
    +++ b/dev/examples/code/create_invoice.php
    @@ -40,7 +40,7 @@ $error=0;
     
     // -------------------- START OF YOUR CODE HERE --------------------
     // Include Dolibarr environment
    -require_once($path."../../htdocs/master.inc.php");
    +require_once $path."../../htdocs/master.inc.php";
     // After this $db, $mysoc, $langs and $conf->entity are defined. Opened handler to database will be closed at end of file.
     
     //$langs->setDefaultLang('en_US'); 	// To change default language of $langs
    @@ -58,7 +58,7 @@ print "***** ".$script_file." (".$version.") *****\n";
     // Start of transaction
     $db->begin();
     
    -require_once(DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php");
    +require_once DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php";
     
     // Create invoice object
     $obj = new Facture($db);
    diff --git a/dev/examples/code/create_order.php b/dev/examples/code/create_order.php
    index 4575e9e28f3..95b047705fa 100755
    --- a/dev/examples/code/create_order.php
    +++ b/dev/examples/code/create_order.php
    @@ -40,7 +40,7 @@ $error=0;
     
     // -------------------- START OF YOUR CODE HERE --------------------
     // Include Dolibarr environment
    -require_once($path."../../htdocs/master.inc.php");
    +require_once $path."../../htdocs/master.inc.php";
     // After this $db, $mysoc, $langs and $conf->entity are defined. Opened handler to database will be closed at end of file.
     
     //$langs->setDefaultLang('en_US'); 	// To change default language of $langs
    @@ -59,7 +59,7 @@ print "***** ".$script_file." (".$version.") *****\n";
     // Start of transaction
     $db->begin();
     
    -require_once(DOL_DOCUMENT_ROOT."/commande/class/commande.class.php");
    +require_once DOL_DOCUMENT_ROOT."/commande/class/commande.class.php";
     
     // Create order object
     $com = new Commande($db);
    diff --git a/dev/examples/code/create_product.php b/dev/examples/code/create_product.php
    index 61598ff59d9..8cbc07a1b63 100755
    --- a/dev/examples/code/create_product.php
    +++ b/dev/examples/code/create_product.php
    @@ -40,7 +40,7 @@ $error=0;
     
     // -------------------- START OF YOUR CODE HERE --------------------
     // Include Dolibarr environment
    -require_once($path."../../htdocs/master.inc.php");
    +require_once $path."../../htdocs/master.inc.php";
     // After this $db, $mysoc, $langs and $conf->entity are defined. Opened handler to database will be closed at end of file.
     
     //$langs->setDefaultLang('en_US'); 	// To change default language of $langs
    @@ -59,7 +59,7 @@ print "***** ".$script_file." (".$version.") *****\n";
     // Start of transaction
     $db->begin();
     
    -require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php");
    +require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php";
     
     // Create instance of object
     $myproduct=new Product($db);
    diff --git a/dev/examples/code/create_user.php b/dev/examples/code/create_user.php
    index 20173eb914a..f8e0ba23011 100755
    --- a/dev/examples/code/create_user.php
    +++ b/dev/examples/code/create_user.php
    @@ -40,7 +40,7 @@ $error=0;
     
     // -------------------- START OF YOUR CODE HERE --------------------
     // Include Dolibarr environment
    -require_once($path."../../htdocs/master.inc.php");
    +require_once $path."../../htdocs/master.inc.php";
     // After this $db, $mysoc, $langs and $conf->entity are defined. Opened handler to database will be closed at end of file.
     
     //$langs->setDefaultLang('en_US'); 	// To change default language of $langs
    @@ -58,7 +58,7 @@ print "***** ".$script_file." (".$version.") *****\n";
     // Start of transaction
     $db->begin();
     
    -require_once(DOL_DOCUMENT_ROOT."/user/class/user.class.php");
    +require_once DOL_DOCUMENT_ROOT."/user/class/user.class.php";
     
     // Create user object
     $obj = new User($db);
    diff --git a/dev/examples/code/get_contracts.php b/dev/examples/code/get_contracts.php
    index fbe512300e8..daff0e43e6f 100755
    --- a/dev/examples/code/get_contracts.php
    +++ b/dev/examples/code/get_contracts.php
    @@ -40,7 +40,7 @@ $error=0;
     
     // -------------------- START OF YOUR CODE HERE --------------------
     // Include Dolibarr environment
    -require_once($path."../../htdocs/master.inc.php");
    +require_once $path."../../htdocs/master.inc.php";
     // After this $db, $mysoc, $langs and $conf->entity are defined. Opened handler to database will be closed at end of file.
     
     //$langs->setDefaultLang('en_US'); 	// To change default language of $langs
    @@ -65,7 +65,7 @@ print 'Argument id_thirdparty='.$argv[1]."\n";
     // Start of transaction
     $db->begin();
     
    -require_once(DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php");
    +require_once DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php";
     
     // Create contract object
     $obj = new Contrat($db);
    diff --git a/dev/examples/mail/dolibarr_mail_simpleHTML.txt b/dev/examples/mail/dolibarr_mail_simpleHTML.txt
    index 5c552221ca6..391800f5095 100644
    --- a/dev/examples/mail/dolibarr_mail_simpleHTML.txt
    +++ b/dev/examples/mail/dolibarr_mail_simpleHTML.txt
    @@ -4,4 +4,4 @@ X-Mailer: Dolibarr version 2.7.0-beta (using php mail)
     MIME-Version: 1.0
     Content-Type: text/html; charset=UTF-8
     Content-Transfer-Encoding: 8bit
    -<html><head><title></title></head><body>Test&eacute;<br />fdsfsdf<br />fsdf<strong>sfd</strong>s<br />fssdfsd<br /></body></html>
    +<html><head><title></title></head><body>Test&eacute;<br>fdsfsdf<br>fsdf<strong>sfd</strong>s<br>fssdfsd<br></body></html>
    diff --git a/dev/initdata/generate-invoice.php b/dev/initdata/generate-invoice.php
    index e313aa44d1f..280518bd4e3 100755
    --- a/dev/initdata/generate-invoice.php
    +++ b/dev/initdata/generate-invoice.php
    @@ -32,9 +32,9 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     
     // Recupere root dolibarr
     //$path=preg_replace('/generate-produit.php/i','',$_SERVER["PHP_SELF"]);
    -require (__DIR__. '/../../htdocs/master.inc.php');
    -require_once(DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/societe/class/societe.class.php");
    +require __DIR__. '/../../htdocs/master.inc.php';
    +require_once DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php";
    +require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php";
     
     
     /*
    @@ -185,7 +185,4 @@ while ($i < GEN_NUMBER_FACTURE && $result >= 0)
     	{
     		dol_print_error($db,$object->error);
     	}
    -
     }
    -
    -
    diff --git a/dev/initdata/generate-order.php b/dev/initdata/generate-order.php
    index c73b15b620d..5e53fa752a2 100755
    --- a/dev/initdata/generate-order.php
    +++ b/dev/initdata/generate-order.php
    @@ -33,14 +33,14 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     
     // Recupere root dolibarr
     //$path=preg_replace('/generate-commande.php/i','',$_SERVER["PHP_SELF"]);
    -require (__DIR__. '/../../htdocs/master.inc.php');
    +require __DIR__. '/../../htdocs/master.inc.php';
     include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
     include_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
     include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
     include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     include_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
     include_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
    -require_once(DOL_DOCUMENT_ROOT."/commande/class/commande.class.php");
    +require_once DOL_DOCUMENT_ROOT."/commande/class/commande.class.php";
     
     
     /*
    diff --git a/dev/initdata/generate-product.php b/dev/initdata/generate-product.php
    index 3ae44b00b3a..393d5c5ce3d 100755
    --- a/dev/initdata/generate-product.php
    +++ b/dev/initdata/generate-product.php
    @@ -33,7 +33,7 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     
     // Recupere root dolibarr
     //$path=preg_replace('/generate-produit.php/i','',$_SERVER["PHP_SELF"]);
    -require (__DIR__. '/../../htdocs/master.inc.php');
    +require __DIR__. '/../../htdocs/master.inc.php';
     include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
     include_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
     include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
    diff --git a/dev/initdata/generate-proposal.php b/dev/initdata/generate-proposal.php
    index 6f1dc293a68..eb2bfe15a00 100755
    --- a/dev/initdata/generate-proposal.php
    +++ b/dev/initdata/generate-proposal.php
    @@ -33,11 +33,11 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     
     // Recupere root dolibarr
     //$path=preg_replace('/generate-propale.php/i','',$_SERVER["PHP_SELF"]);
    -require (__DIR__. '/../../htdocs/master.inc.php');
    -require_once(DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/comm/propal/class/propal.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/commande/class/commande.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/societe/class/societe.class.php");
    +require __DIR__. '/../../htdocs/master.inc.php';
    +require_once DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php";
    +require_once DOL_DOCUMENT_ROOT."/comm/propal/class/propal.class.php";
    +require_once DOL_DOCUMENT_ROOT."/commande/class/commande.class.php";
    +require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php";
     
     /*
      * Parameters
    @@ -157,7 +157,7 @@ $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"))
     {
    -	require_once(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php");
    +	require_once DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php";
     }
     
     $i=0;
    @@ -218,6 +218,4 @@ while ($i < GEN_NUMBER_PROPAL && $result >= 0)
     	{
     		dol_print_error($db,$object->error);
     	}
    -
     }
    -
    diff --git a/dev/initdata/generate-thirdparty.php b/dev/initdata/generate-thirdparty.php
    index 992ab61f4ef..7f2c3e2055d 100755
    --- a/dev/initdata/generate-thirdparty.php
    +++ b/dev/initdata/generate-thirdparty.php
    @@ -33,7 +33,7 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     
     // Recupere root dolibarr
     //$path=preg_replace('/generate-societe.php/i','',$_SERVER["PHP_SELF"]);
    -require (__DIR__. '/../../htdocs/master.inc.php');
    +require __DIR__. '/../../htdocs/master.inc.php';
     include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
     include_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
     include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
    diff --git a/dev/initdata/import-products.php b/dev/initdata/import-products.php
    index a08e3b6066e..0f4856aefb2 100755
    --- a/dev/initdata/import-products.php
    +++ b/dev/initdata/import-products.php
    @@ -21,7 +21,7 @@
     
     /**
      *      \file       dev/initdata/import-product.php
    - *		\brief      Script example to insert products from a csv file. 
    + *		\brief      Script example to insert products from a csv file.
      *                  To purge data, you can have a look at purge-data.php
      */
     
    @@ -36,7 +36,7 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     
     // Recupere root dolibarr
     $path=preg_replace('/import-products.php/i','',$_SERVER["PHP_SELF"]);
    -require ($path."../../htdocs/master.inc.php");
    +require $path."../../htdocs/master.inc.php";
     include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
     include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     
    @@ -118,22 +118,22 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
     {
         $i++;
         $errorrecord=0;
    -    
    +
         if ($startlinenb && $i < $startlinenb) continue;
         if ($endlinenb && $i > $endlinenb) continue;
    -    
    +
         $nboflines++;
    -    
    +
         $produit = new Product($db);
         $produit->type = 0;
         $produit->status = 1;
         $produit->ref = trim($fields[0]);
    -    
    +
         print "Process line nb ".$i.", ref ".$produit->ref;
         $produit->label = trim($fields[2]);
         $produit->description = trim($fields[4]."\n".($fields[5] ? $fields[5].' x '.$fields[6].' x '.$fields[7] : ''));
         $produit->volume = price2num($fields[8]);
    -    $produit->volume_unit = 0;     
    +    $produit->volume_unit = 0;
         $produit->weight = price2num($fields[9]);
         $produit->weight_units = 0;          // -3 = g
     
    @@ -142,9 +142,9 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
     
         $produit->status = 1;
         $produit->status_buy = 1;
    -    
    +
         $produit->finished = 1;
    -    
    +
         $produit->price_min = null;
         $produit->price_min_ttc = null;
         $produit->price = price2num($fields[11]);
    @@ -152,25 +152,25 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
         $produit->price_base_type = 'TTC';
         $produit->tva_tx = price2num($fields[13]);
         $produit->tva_npr = 0;
    -    
    +
         $produit->cost_price = price2num($fields[16]);
    -    
    +
         // Extrafields
         $produit->array_options['options_ecotaxdeee']=price2num($fields[17]);
    -    
    +
         $ret=$produit->create($user);
         if ($ret < 0)
         {
             print " - Error in create result code = ".$ret." - ".$produit->errorsToString();
             $errorrecord++;
         }
    -	else 
    +	else
     	{
     	    print " - Creation OK with ref ".$produit->ref." - id = ".$ret;
     	}
     
     	dol_syslog("Add prices");
    -	
    +
         // If we use price level, insert price for each level
     	if (! $errorrecord && 1)
     	{
    @@ -181,14 +181,14 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
                 print " - Error in updatePrice result code = ".$ret1." ".$ret2." - ".$produit->errorsToString();
                 $errorrecord++;
             }
    -    	else 
    +    	else
         	{
         	    print " - updatePrice OK";
         	}
     	}
    -	
    +
     	dol_syslog("Add multilangs");
    -	
    +
     	// Add alternative languages
     	if (! $errorrecord && 1)
     	{
    @@ -201,15 +201,15 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
                 print " - Error in setMultiLangs result code = ".$ret." - ".$produit->errorsToString();
                 $errorrecord++;
             }
    -    	else 
    +    	else
         	{
         	    print " - setMultiLangs OK";
         	}
     	}
    -	
    +
     	print "\n";
    -	
    -	if ($errorrecord) 
    +
    +	if ($errorrecord)
     	{
     	    fwrite($fhandleerr, 'Error on record nb '.$i." - ".$produit->errorsToString()."\n");
     	    $error++;    // $errorrecord will be reset
    diff --git a/dev/initdata/import-thirdparties.php b/dev/initdata/import-thirdparties.php
    index 0c32c7ea6a3..63c6856e5ec 100755
    --- a/dev/initdata/import-thirdparties.php
    +++ b/dev/initdata/import-thirdparties.php
    @@ -36,7 +36,7 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     
     // Recupere root dolibarr
     $path=preg_replace('/import-thirdparties.php/i','',$_SERVER["PHP_SELF"]);
    -require ($path."../../htdocs/master.inc.php");
    +require $path."../../htdocs/master.inc.php";
     include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
     include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     
    diff --git a/dev/initdata/import-users.php b/dev/initdata/import-users.php
    index 3aaa9c11a4a..c94f74341f6 100755
    --- a/dev/initdata/import-users.php
    +++ b/dev/initdata/import-users.php
    @@ -21,7 +21,7 @@
     
     /**
      *      \file       dev/initdata/import-thirdparties.php
    - *		\brief      Script example to insert thirdparties from a csv file. 
    + *		\brief      Script example to insert thirdparties from a csv file.
      *                  To purge data, you can have a look at purge-data.php
      */
     
    @@ -36,7 +36,7 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     
     // Recupere root dolibarr
     $path=preg_replace('/import-users.php/i','',$_SERVER["PHP_SELF"]);
    -require ($path."../../htdocs/master.inc.php");
    +require $path."../../htdocs/master.inc.php";
     include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
     include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     
    @@ -118,15 +118,15 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
     {
         $i++;
         $errorrecord=0;
    -    
    +
         if ($startlinenb && $i < $startlinenb) continue;
         if ($endlinenb && $i > $endlinenb) continue;
    -    
    +
         $nboflines++;
    -    
    +
         $object = new User($db);
         $object->statut = 1;
    -    
    +
         $tmp=explode(' ',$fields[3],2);
         $object->firstname = trim($tmp[0]);
         $object->lastname = trim($tmp[1]);
    @@ -134,23 +134,23 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
         else $object->login=strtolower($object->firstname);
         $object->login=preg_replace('/ /','',$object->login);
         $object->password = 'init';
    -    
    +
         print "Process line nb ".$i.", login ".$object->login;
    -    
    +
         $ret=$object->create($user);
         if ($ret < 0)
         {
             print " - Error in create result code = ".$ret." - ".$object->errorsToString();
             $errorrecord++;
         }
    -	else 
    +	else
     	{
     	    print " - Creation OK with login ".$object->login." - id = ".$ret;
     	}
     
     	print "\n";
    -	
    -	if ($errorrecord) 
    +
    +	if ($errorrecord)
     	{
     	    fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n");
     	    $error++;    // $errorrecord will be reset
    diff --git a/dev/initdata/purge-data.php b/dev/initdata/purge-data.php
    index f992dcb2dc6..2bdf200225b 100755
    --- a/dev/initdata/purge-data.php
    +++ b/dev/initdata/purge-data.php
    @@ -36,7 +36,7 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     
     // Recupere root dolibarr
     $path=preg_replace('/purge-data.php/i','',$_SERVER["PHP_SELF"]);
    -require ($path."../../htdocs/master.inc.php");
    +require $path."../../htdocs/master.inc.php";
     include_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
     include_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
     include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
    @@ -44,8 +44,7 @@ include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     include_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
     include_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
     
    -$langs->load("main");
    -$langs->load("errors");
    +$langs->loadLangs(array("main", "errors"));
     
     // Global variables
     $version=DOL_VERSION;
    diff --git a/dev/initdemo/initdemo.sh b/dev/initdemo/initdemo.sh
    index 2e49327ae1d..0091a61d300 100755
    --- a/dev/initdemo/initdemo.sh
    +++ b/dev/initdemo/initdemo.sh
    @@ -6,7 +6,7 @@
     # WARNING: This script erase all data of database
     # with data into dump file
     #
    -# Regis Houssin       - regis.houssin@capnetworks.com
    +# Regis Houssin       - regis.houssin@inodbox.com
     # Laurent Destailleur - eldy@users.sourceforge.net
     #------------------------------------------------------
     # Usage: initdemo.sh
    diff --git a/dev/initdemo/mysqldump_dolibarr_8.0.0.sql b/dev/initdemo/mysqldump_dolibarr_8.0.0.sql
    new file mode 100644
    index 00000000000..05a4814a7ef
    --- /dev/null
    +++ b/dev/initdemo/mysqldump_dolibarr_8.0.0.sql
    @@ -0,0 +1,14172 @@
    +-- MySQL dump 10.13  Distrib 5.7.24, for Linux (x86_64)
    +--
    +-- Host: localhost    Database: dolibarr_dev
    +-- ------------------------------------------------------
    +-- Server version	5.7.24-0ubuntu0.16.04.1
    +
    +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    +/*!40101 SET NAMES utf8 */;
    +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    +/*!40103 SET TIME_ZONE='+00:00' */;
    +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
    +
    +--
    +-- Table structure for table `llx_accounting_account`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_account`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_account` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_pcg_version` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pcg_type` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `pcg_subtype` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `account_number` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `account_parent` int(11) DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_accounting_category` int(11) DEFAULT '0',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_accountingaccount_fk_pcg_version` (`fk_pcg_version`),
    +  KEY `idx_accounting_account_account_number` (`account_number`),
    +  KEY `idx_accounting_account_account_parent` (`account_parent`),
    +  CONSTRAINT `fk_accounting_account_fk_pcg_version` FOREIGN KEY (`fk_pcg_version`) REFERENCES `llx_accounting_system` (`pcg_version`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4785 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_account`
    +--
    +
    +LOCK TABLES `llx_accounting_account` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_account` DISABLE KEYS */;
    +INSERT INTO `llx_accounting_account` VALUES (1,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','CAPITAL','101',1401,'Capital',0,NULL,NULL,1,NULL,NULL),(2,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','105',1401,'Ecarts de réévaluation',0,NULL,NULL,1,NULL,NULL),(3,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','1061',1401,'Réserve légale',0,NULL,NULL,1,NULL,NULL),(4,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','1063',1401,'Réserves statutaires ou contractuelles',0,NULL,NULL,1,NULL,NULL),(5,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','1064',1401,'Réserves réglementées',0,NULL,NULL,1,NULL,NULL),(6,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','1068',1401,'Autres réserves',0,NULL,NULL,1,NULL,NULL),(7,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','108',1401,'Compte de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(8,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','12',1401,'Résultat de l\'exercice',0,NULL,NULL,1,NULL,NULL),(9,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','145',1401,'Amortissements dérogatoires',0,NULL,NULL,1,NULL,NULL),(10,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','146',1401,'Provision spéciale de réévaluation',0,NULL,NULL,1,NULL,NULL),(11,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','147',1401,'Plus-values réinvesties',0,NULL,NULL,1,NULL,NULL),(12,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','148',1401,'Autres provisions réglementées',0,NULL,NULL,1,NULL,NULL),(13,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','15',1401,'Provisions pour risques et charges',0,NULL,NULL,1,NULL,NULL),(14,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','16',1401,'Emprunts et dettes assimilees',0,NULL,NULL,1,NULL,NULL),(15,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','20',1402,'Immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(16,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','201',15,'Frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(17,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','206',15,'Droit au bail',0,NULL,NULL,1,NULL,NULL),(18,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','207',15,'Fonds commercial',0,NULL,NULL,1,NULL,NULL),(19,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','208',15,'Autres immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(20,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','21',1402,'Immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(21,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','23',1402,'Immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(22,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','27',1402,'Autres immobilisations financieres',0,NULL,NULL,1,NULL,NULL),(23,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','280',1402,'Amortissements des immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(24,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','281',1402,'Amortissements des immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(25,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','290',1402,'Provisions pour dépréciation des immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(26,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','291',1402,'Provisions pour dépréciation des immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(27,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','297',1402,'Provisions pour dépréciation des autres immobilisations financières',0,NULL,NULL,1,NULL,NULL),(28,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','31',1403,'Matieres premières',0,NULL,NULL,1,NULL,NULL),(29,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','32',1403,'Autres approvisionnements',0,NULL,NULL,1,NULL,NULL),(30,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','33',1403,'En-cours de production de biens',0,NULL,NULL,1,NULL,NULL),(31,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','34',1403,'En-cours de production de services',0,NULL,NULL,1,NULL,NULL),(32,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','35',1403,'Stocks de produits',0,NULL,NULL,1,NULL,NULL),(33,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','37',1403,'Stocks de marchandises',0,NULL,NULL,1,NULL,NULL),(34,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','391',1403,'Provisions pour dépréciation des matières premières',0,NULL,NULL,1,NULL,NULL),(35,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','392',1403,'Provisions pour dépréciation des autres approvisionnements',0,NULL,NULL,1,NULL,NULL),(36,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','393',1403,'Provisions pour dépréciation des en-cours de production de biens',0,NULL,NULL,1,NULL,NULL),(37,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','394',1403,'Provisions pour dépréciation des en-cours de production de services',0,NULL,NULL,1,NULL,NULL),(38,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','395',1403,'Provisions pour dépréciation des stocks de produits',0,NULL,NULL,1,NULL,NULL),(39,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','397',1403,'Provisions pour dépréciation des stocks de marchandises',0,NULL,NULL,1,NULL,NULL),(40,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','SUPPLIER','400',1404,'Fournisseurs et Comptes rattachés',0,NULL,NULL,1,NULL,NULL),(41,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','409',1404,'Fournisseurs débiteurs',0,NULL,NULL,1,NULL,NULL),(42,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','CUSTOMER','410',1404,'Clients et Comptes rattachés',0,NULL,NULL,1,NULL,NULL),(43,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','419',1404,'Clients créditeurs',0,NULL,NULL,1,NULL,NULL),(44,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','421',1404,'Personnel',0,NULL,NULL,1,NULL,NULL),(45,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','428',1404,'Personnel',0,NULL,NULL,1,NULL,NULL),(46,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','43',1404,'Sécurité sociale et autres organismes sociaux',0,NULL,NULL,1,NULL,NULL),(47,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','444',1404,'Etat - impôts sur bénéfice',0,NULL,NULL,1,NULL,NULL),(48,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','445',1404,'Etat - Taxes sur chiffre affaires',0,NULL,NULL,1,NULL,NULL),(49,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','447',1404,'Autres impôts, taxes et versements assimilés',0,NULL,NULL,1,NULL,NULL),(50,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','45',1404,'Groupe et associes',0,NULL,NULL,1,NULL,NULL),(51,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','455',50,'Associés',0,NULL,NULL,1,NULL,NULL),(52,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','46',1404,'Débiteurs divers et créditeurs divers',0,NULL,NULL,1,NULL,NULL),(53,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','47',1404,'Comptes transitoires ou d\'attente',0,NULL,NULL,1,NULL,NULL),(54,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','481',1404,'Charges à répartir sur plusieurs exercices',0,NULL,NULL,1,NULL,NULL),(55,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','486',1404,'Charges constatées d\'avance',0,NULL,NULL,1,NULL,NULL),(56,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','487',1404,'Produits constatés d\'avance',0,NULL,NULL,1,NULL,NULL),(57,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','491',1404,'Provisions pour dépréciation des comptes de clients',0,NULL,NULL,1,NULL,NULL),(58,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','496',1404,'Provisions pour dépréciation des comptes de débiteurs divers',0,NULL,NULL,1,NULL,NULL),(59,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','XXXXXX','50',1405,'Valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(60,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','BANK','51',1405,'Banques, établissements financiers et assimilés',0,NULL,NULL,1,NULL,NULL),(61,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','CASH','53',1405,'Caisse',0,NULL,NULL,1,NULL,NULL),(62,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','XXXXXX','54',1405,'Régies d\'avance et accréditifs',0,NULL,NULL,1,NULL,NULL),(63,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','XXXXXX','58',1405,'Virements internes',0,NULL,NULL,1,NULL,NULL),(64,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','XXXXXX','590',1405,'Provisions pour dépréciation des valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(65,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','PRODUCT','60',1406,'Achats',0,NULL,NULL,1,NULL,NULL),(66,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','603',65,'Variations des stocks',0,NULL,NULL,1,NULL,NULL),(67,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','SERVICE','61',1406,'Services extérieurs',0,NULL,NULL,1,NULL,NULL),(68,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','62',1406,'Autres services extérieurs',0,NULL,NULL,1,NULL,NULL),(69,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','63',1406,'Impôts, taxes et versements assimiles',0,NULL,NULL,1,NULL,NULL),(70,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','641',1406,'Rémunérations du personnel',0,NULL,NULL,1,NULL,NULL),(71,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','644',1406,'Rémunération du travail de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(72,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','SOCIAL','645',1406,'Charges de sécurité sociale et de prévoyance',0,NULL,NULL,1,NULL,NULL),(73,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','646',1406,'Cotisations sociales personnelles de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(74,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','65',1406,'Autres charges de gestion courante',0,NULL,NULL,1,NULL,NULL),(75,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','66',1406,'Charges financières',0,NULL,NULL,1,NULL,NULL),(76,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','67',1406,'Charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(77,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','681',1406,'Dotations aux amortissements et aux provisions',0,NULL,NULL,1,NULL,NULL),(78,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','686',1406,'Dotations aux amortissements et aux provisions',0,NULL,NULL,1,NULL,NULL),(79,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','687',1406,'Dotations aux amortissements et aux provisions',0,NULL,NULL,1,NULL,NULL),(80,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','691',1406,'Participation des salariés aux résultats',0,NULL,NULL,1,NULL,NULL),(81,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','695',1406,'Impôts sur les bénéfices',0,NULL,NULL,1,NULL,NULL),(82,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','697',1406,'Imposition forfaitaire annuelle des sociétés',0,NULL,NULL,1,NULL,NULL),(83,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','699',1406,'Produits',0,NULL,NULL,1,NULL,NULL),(84,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','PRODUCT','701',1407,'Ventes de produits finis',0,NULL,NULL,1,NULL,NULL),(85,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','SERVICE','706',1407,'Prestations de services',0,NULL,NULL,1,NULL,NULL),(86,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','PRODUCT','707',1407,'Ventes de marchandises',0,NULL,NULL,1,NULL,NULL),(87,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','PRODUCT','708',1407,'Produits des activités annexes',0,NULL,NULL,1,NULL,NULL),(88,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','709',1407,'Rabais, remises et ristournes accordés par l\'entreprise',0,NULL,NULL,1,NULL,NULL),(89,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','713',1407,'Variation des stocks',0,NULL,NULL,1,NULL,NULL),(90,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','72',1407,'Production immobilisée',0,NULL,NULL,1,NULL,NULL),(91,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','73',1407,'Produits nets partiels sur opérations à long terme',0,NULL,NULL,1,NULL,NULL),(92,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','74',1407,'Subventions d\'exploitation',0,NULL,NULL,1,NULL,NULL),(93,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','75',1407,'Autres produits de gestion courante',0,NULL,NULL,1,NULL,NULL),(94,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','753',93,'Jetons de présence et rémunérations d\'administrateurs, gérants,...',0,NULL,NULL,1,NULL,NULL),(95,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','754',93,'Ristournes perçues des coopératives',0,NULL,NULL,1,NULL,NULL),(96,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','755',93,'Quotes-parts de résultat sur opérations faites en commun',0,NULL,NULL,1,NULL,NULL),(97,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','76',1407,'Produits financiers',0,NULL,NULL,1,NULL,NULL),(98,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','77',1407,'Produits exceptionnels',0,NULL,NULL,1,NULL,NULL),(99,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','781',1407,'Reprises sur amortissements et provisions',0,NULL,NULL,1,NULL,NULL),(100,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','786',1407,'Reprises sur provisions pour risques',0,NULL,NULL,1,NULL,NULL),(101,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','787',1407,'Reprises sur provisions',0,NULL,NULL,1,NULL,NULL),(102,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','79',1407,'Transferts de charges',0,NULL,NULL,1,NULL,NULL),(103,1,NULL,'2017-02-20 10:49:11','PCG99-BASE','CAPIT','XXXXXX','10',1501,'Capital  et réserves',0,NULL,NULL,1,NULL,NULL),(104,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','CAPITAL','101',103,'Capital',0,NULL,NULL,1,NULL,NULL),(105,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','104',103,'Primes liées au capital social',0,NULL,NULL,1,NULL,NULL),(106,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','105',103,'Ecarts de réévaluation',0,NULL,NULL,1,NULL,NULL),(107,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','106',103,'Réserves',0,NULL,NULL,1,NULL,NULL),(108,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','107',103,'Ecart d\'equivalence',0,NULL,NULL,1,NULL,NULL),(109,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','108',103,'Compte de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(110,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','109',103,'Actionnaires : capital souscrit - non appelé',0,NULL,NULL,1,NULL,NULL),(111,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','11',1501,'Report à nouveau (solde créditeur ou débiteur)',0,NULL,NULL,1,NULL,NULL),(112,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','110',111,'Report à nouveau (solde créditeur)',0,NULL,NULL,1,NULL,NULL),(113,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','119',111,'Report à nouveau (solde débiteur)',0,NULL,NULL,1,NULL,NULL),(114,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','12',1501,'Résultat de l\'exercice (bénéfice ou perte)',0,NULL,NULL,1,NULL,NULL),(115,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','120',114,'Résultat de l\'exercice (bénéfice)',0,NULL,NULL,1,NULL,NULL),(116,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','129',114,'Résultat de l\'exercice (perte)',0,NULL,NULL,1,NULL,NULL),(117,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','13',1501,'Subventions d\'investissement',0,NULL,NULL,1,NULL,NULL),(118,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','131',117,'Subventions d\'équipement',0,NULL,NULL,1,NULL,NULL),(119,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','138',117,'Autres subventions d\'investissement',0,NULL,NULL,1,NULL,NULL),(120,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','139',117,'Subventions d\'investissement inscrites au compte de résultat',0,NULL,NULL,1,NULL,NULL),(121,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','14',1501,'Provisions réglementées',0,NULL,NULL,1,NULL,NULL),(122,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','142',121,'Provisions réglementées relatives aux immobilisations',0,NULL,NULL,1,NULL,NULL),(123,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','143',121,'Provisions réglementées relatives aux stocks',0,NULL,NULL,1,NULL,NULL),(124,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','144',121,'Provisions réglementées relatives aux autres éléments de l\'actif',0,NULL,NULL,1,NULL,NULL),(125,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','145',121,'Amortissements dérogatoires',0,NULL,NULL,1,NULL,NULL),(126,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','146',121,'Provision spéciale de réévaluation',0,NULL,NULL,1,NULL,NULL),(127,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','147',121,'Plus-values réinvesties',0,NULL,NULL,1,NULL,NULL),(128,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','148',121,'Autres provisions réglementées',0,NULL,NULL,1,NULL,NULL),(129,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','15',1501,'Provisions pour risques et charges',0,NULL,NULL,1,NULL,NULL),(130,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','151',129,'Provisions pour risques',0,NULL,NULL,1,NULL,NULL),(131,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','153',129,'Provisions pour pensions et obligations similaires',0,NULL,NULL,1,NULL,NULL),(132,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','154',129,'Provisions pour restructurations',0,NULL,NULL,1,NULL,NULL),(133,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','155',129,'Provisions pour impôts',0,NULL,NULL,1,NULL,NULL),(134,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','156',129,'Provisions pour renouvellement des immobilisations (entreprises concessionnaires)',0,NULL,NULL,1,NULL,NULL),(135,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','157',129,'Provisions pour charges à répartir sur plusieurs exercices',0,NULL,NULL,1,NULL,NULL),(136,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','158',129,'Autres provisions pour charges',0,NULL,NULL,1,NULL,NULL),(137,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','16',1501,'Emprunts et dettes assimilees',0,NULL,NULL,1,NULL,NULL),(138,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','161',137,'Emprunts obligataires convertibles',0,NULL,NULL,1,NULL,NULL),(139,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','163',137,'Autres emprunts obligataires',0,NULL,NULL,1,NULL,NULL),(140,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','164',137,'Emprunts auprès des établissements de crédit',0,NULL,NULL,1,NULL,NULL),(141,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','165',137,'Dépôts et cautionnements reçus',0,NULL,NULL,1,NULL,NULL),(142,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','166',137,'Participation des salariés aux résultats',0,NULL,NULL,1,NULL,NULL),(143,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','167',137,'Emprunts et dettes assortis de conditions particulières',0,NULL,NULL,1,NULL,NULL),(144,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','168',137,'Autres emprunts et dettes assimilées',0,NULL,NULL,1,NULL,NULL),(145,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','169',137,'Primes de remboursement des obligations',0,NULL,NULL,1,NULL,NULL),(146,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','17',1501,'Dettes rattachées à des participations',0,NULL,NULL,1,NULL,NULL),(147,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','171',146,'Dettes rattachées à des participations (groupe)',0,NULL,NULL,1,NULL,NULL),(148,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','174',146,'Dettes rattachées à des participations (hors groupe)',0,NULL,NULL,1,NULL,NULL),(149,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','178',146,'Dettes rattachées à des sociétés en participation',0,NULL,NULL,1,NULL,NULL),(150,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','18',1501,'Comptes de liaison des établissements et sociétés en participation',0,NULL,NULL,1,NULL,NULL),(151,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','181',150,'Comptes de liaison des établissements',0,NULL,NULL,1,NULL,NULL),(152,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','186',150,'Biens et prestations de services échangés entre établissements (charges)',0,NULL,NULL,1,NULL,NULL),(153,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','187',150,'Biens et prestations de services échangés entre établissements (produits)',0,NULL,NULL,1,NULL,NULL),(154,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','188',150,'Comptes de liaison des sociétés en participation',0,NULL,NULL,1,NULL,NULL),(155,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','20',1502,'Immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(156,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','201',155,'Frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(157,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','203',155,'Frais de recherche et de développement',0,NULL,NULL,1,NULL,NULL),(158,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','205',155,'Concessions et droits similaires, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',0,NULL,NULL,1,NULL,NULL),(159,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','206',155,'Droit au bail',0,NULL,NULL,1,NULL,NULL),(160,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','207',155,'Fonds commercial',0,NULL,NULL,1,NULL,NULL),(161,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','208',155,'Autres immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(162,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','21',1502,'Immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(163,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','211',162,'Terrains',0,NULL,NULL,1,NULL,NULL),(164,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','212',162,'Agencements et aménagements de terrains',0,NULL,NULL,1,NULL,NULL),(165,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','213',162,'Constructions',0,NULL,NULL,1,NULL,NULL),(166,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','214',162,'Constructions sur sol d\'autrui',0,NULL,NULL,1,NULL,NULL),(167,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','215',162,'Installations techniques, matériels et outillage industriels',0,NULL,NULL,1,NULL,NULL),(168,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','218',162,'Autres immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(169,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','22',1502,'Immobilisations mises en concession',0,NULL,NULL,1,NULL,NULL),(170,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','23',1502,'Immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(171,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','231',170,'Immobilisations corporelles en cours',0,NULL,NULL,1,NULL,NULL),(172,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','232',170,'Immobilisations incorporelles en cours',0,NULL,NULL,1,NULL,NULL),(173,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','237',170,'Avances et acomptes versés sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(174,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','238',170,'Avances et acomptes versés sur commandes d\'immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(175,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','25',1502,'Parts dans des entreprises liées et créances sur des entreprises liées',0,NULL,NULL,1,NULL,NULL),(176,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','26',1502,'Participations et créances rattachées à des participations',0,NULL,NULL,1,NULL,NULL),(177,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','261',176,'Titres de participation',0,NULL,NULL,1,NULL,NULL),(178,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','266',176,'Autres formes de participation',0,NULL,NULL,1,NULL,NULL),(179,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','267',176,'Créances rattachées à des participations',0,NULL,NULL,1,NULL,NULL),(180,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','268',176,'Créances rattachées à des sociétés en participation',0,NULL,NULL,1,NULL,NULL),(181,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','269',176,'Versements restant à effectuer sur titres de participation non libérés',0,NULL,NULL,1,NULL,NULL),(182,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','27',1502,'Autres immobilisations financieres',0,NULL,NULL,1,NULL,NULL),(183,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','271',183,'Titres immobilisés autres que les titres immobilisés de l\'activité de portefeuille (droit de propriété)',0,NULL,NULL,1,NULL,NULL),(184,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','272',183,'Titres immobilisés (droit de créance)',0,NULL,NULL,1,NULL,NULL),(185,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','273',183,'Titres immobilisés de l\'activité de portefeuille',0,NULL,NULL,1,NULL,NULL),(186,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','274',183,'Prêts',0,NULL,NULL,1,NULL,NULL),(187,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','275',183,'Dépôts et cautionnements versés',0,NULL,NULL,1,NULL,NULL),(188,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','276',183,'Autres créances immobilisées',0,NULL,NULL,1,NULL,NULL),(189,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','277',183,'(Actions propres ou parts propres)',0,NULL,NULL,1,NULL,NULL),(190,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','279',183,'Versements restant à effectuer sur titres immobilisés non libérés',0,NULL,NULL,1,NULL,NULL),(191,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','28',1502,'Amortissements des immobilisations',0,NULL,NULL,1,NULL,NULL),(192,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','280',191,'Amortissements des immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(193,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','281',191,'Amortissements des immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(194,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','282',191,'Amortissements des immobilisations mises en concession',0,NULL,NULL,1,NULL,NULL),(195,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','29',1502,'Dépréciations des immobilisations',0,NULL,NULL,1,NULL,NULL),(196,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','290',195,'Dépréciations des immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(197,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','291',195,'Dépréciations des immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(198,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','292',195,'Dépréciations des immobilisations mises en concession',0,NULL,NULL,1,NULL,NULL),(199,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','293',195,'Dépréciations des immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(200,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','296',195,'Provisions pour dépréciation des participations et créances rattachées à des participations',0,NULL,NULL,1,NULL,NULL),(201,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','297',195,'Provisions pour dépréciation des autres immobilisations financières',0,NULL,NULL,1,NULL,NULL),(202,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','31',1503,'Matières premières (et fournitures)',0,NULL,NULL,1,NULL,NULL),(203,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','311',202,'Matières (ou groupe) A',0,NULL,NULL,1,NULL,NULL),(204,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','312',202,'Matières (ou groupe) B',0,NULL,NULL,1,NULL,NULL),(205,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','317',202,'Fournitures A, B, C,',0,NULL,NULL,1,NULL,NULL),(206,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','32',1503,'Autres approvisionnements',0,NULL,NULL,1,NULL,NULL),(207,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','321',206,'Matières consommables',0,NULL,NULL,1,NULL,NULL),(208,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','322',206,'Fournitures consommables',0,NULL,NULL,1,NULL,NULL),(209,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','326',206,'Emballages',0,NULL,NULL,1,NULL,NULL),(210,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','33',1503,'En-cours de production de biens',0,NULL,NULL,1,NULL,NULL),(211,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','331',210,'Produits en cours',0,NULL,NULL,1,NULL,NULL),(212,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','335',210,'Travaux en cours',0,NULL,NULL,1,NULL,NULL),(213,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','34',1503,'En-cours de production de services',0,NULL,NULL,1,NULL,NULL),(214,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','341',213,'Etudes en cours',0,NULL,NULL,1,NULL,NULL),(215,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','345',213,'Prestations de services en cours',0,NULL,NULL,1,NULL,NULL),(216,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','35',1503,'Stocks de produits',0,NULL,NULL,1,NULL,NULL),(217,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','351',216,'Produits intermédiaires',0,NULL,NULL,1,NULL,NULL),(218,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','355',216,'Produits finis',0,NULL,NULL,1,NULL,NULL),(219,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','358',216,'Produits résiduels (ou matières de récupération)',0,NULL,NULL,1,NULL,NULL),(220,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','37',1503,'Stocks de marchandises',0,NULL,NULL,1,NULL,NULL),(221,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','371',220,'Marchandises (ou groupe) A',0,NULL,NULL,1,NULL,NULL),(222,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','372',220,'Marchandises (ou groupe) B',0,NULL,NULL,1,NULL,NULL),(223,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','39',1503,'Provisions pour dépréciation des stocks et en-cours',0,NULL,NULL,1,NULL,NULL),(224,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','391',223,'Provisions pour dépréciation des matières premières',0,NULL,NULL,1,NULL,NULL),(225,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','392',223,'Provisions pour dépréciation des autres approvisionnements',0,NULL,NULL,1,NULL,NULL),(226,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','393',223,'Provisions pour dépréciation des en-cours de production de biens',0,NULL,NULL,1,NULL,NULL),(227,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','394',223,'Provisions pour dépréciation des en-cours de production de services',0,NULL,NULL,1,NULL,NULL),(228,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','395',223,'Provisions pour dépréciation des stocks de produits',0,NULL,NULL,1,NULL,NULL),(229,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','397',223,'Provisions pour dépréciation des stocks de marchandises',0,NULL,NULL,1,NULL,NULL),(230,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','40',1504,'Fournisseurs et Comptes rattachés',0,NULL,NULL,1,NULL,NULL),(231,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','400',230,'Fournisseurs et Comptes rattachés',0,NULL,NULL,1,NULL,NULL),(232,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','SUPPLIER','401',230,'Fournisseurs',0,NULL,NULL,1,NULL,NULL),(233,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','403',230,'Fournisseurs - Effets à payer',0,NULL,NULL,1,NULL,NULL),(234,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','404',230,'Fournisseurs d\'immobilisations',0,NULL,NULL,1,NULL,NULL),(235,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','405',230,'Fournisseurs d\'immobilisations - Effets à payer',0,NULL,NULL,1,NULL,NULL),(236,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','408',230,'Fournisseurs - Factures non parvenues',0,NULL,NULL,1,NULL,NULL),(237,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','409',230,'Fournisseurs débiteurs',0,NULL,NULL,1,NULL,NULL),(238,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','41',1504,'Clients et comptes rattachés',0,NULL,NULL,1,NULL,NULL),(239,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','410',238,'Clients et Comptes rattachés',0,NULL,NULL,1,NULL,NULL),(240,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','CUSTOMER','411',238,'Clients',0,NULL,NULL,1,NULL,NULL),(241,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','413',238,'Clients - Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(242,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','416',238,'Clients douteux ou litigieux',0,NULL,NULL,1,NULL,NULL),(243,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','418',238,'Clients - Produits non encore facturés',0,NULL,NULL,1,NULL,NULL),(244,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','419',238,'Clients créditeurs',0,NULL,NULL,1,NULL,NULL),(245,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','42',1504,'Personnel et comptes rattachés',0,NULL,NULL,1,NULL,NULL),(246,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','421',245,'Personnel - Rémunérations dues',0,NULL,NULL,1,NULL,NULL),(247,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','422',245,'Comités d\'entreprises, d\'établissement, ...',0,NULL,NULL,1,NULL,NULL),(248,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','424',245,'Participation des salariés aux résultats',0,NULL,NULL,1,NULL,NULL),(249,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','425',245,'Personnel - Avances et acomptes',0,NULL,NULL,1,NULL,NULL),(250,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','426',245,'Personnel - Dépôts',0,NULL,NULL,1,NULL,NULL),(251,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','427',245,'Personnel - Oppositions',0,NULL,NULL,1,NULL,NULL),(252,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','428',245,'Personnel - Charges à payer et produits à recevoir',0,NULL,NULL,1,NULL,NULL),(253,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','43',1504,'Sécurité sociale et autres organismes sociaux',0,NULL,NULL,1,NULL,NULL),(254,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','431',253,'Sécurité sociale',0,NULL,NULL,1,NULL,NULL),(255,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','437',253,'Autres organismes sociaux',0,NULL,NULL,1,NULL,NULL),(256,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','438',253,'Organismes sociaux - Charges à payer et produits à recevoir',0,NULL,NULL,1,NULL,NULL),(257,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','44',1504,'État et autres collectivités publiques',0,NULL,NULL,1,NULL,NULL),(258,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','441',257,'État - Subventions à recevoir',0,NULL,NULL,1,NULL,NULL),(259,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','442',257,'Etat - Impôts et taxes recouvrables sur des tiers',0,NULL,NULL,1,NULL,NULL),(260,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','443',257,'Opérations particulières avec l\'Etat, les collectivités publiques, les organismes internationaux',0,NULL,NULL,1,NULL,NULL),(261,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','444',257,'Etat - Impôts sur les bénéfices',0,NULL,NULL,1,NULL,NULL),(262,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','445',257,'Etat - Taxes sur le chiffre d\'affaires',0,NULL,NULL,1,NULL,NULL),(263,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','446',257,'Obligations cautionnées',0,NULL,NULL,1,NULL,NULL),(264,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','447',257,'Autres impôts, taxes et versements assimilés',0,NULL,NULL,1,NULL,NULL),(265,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','448',257,'Etat - Charges à payer et produits à recevoir',0,NULL,NULL,1,NULL,NULL),(266,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','449',257,'Quotas d\'émission à restituer à l\'Etat',0,NULL,NULL,1,NULL,NULL),(267,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','45',1504,'Groupe et associes',0,NULL,NULL,1,NULL,NULL),(268,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','451',267,'Groupe',0,NULL,NULL,1,NULL,NULL),(269,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','455',267,'Associés - Comptes courants',0,NULL,NULL,1,NULL,NULL),(270,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','456',267,'Associés - Opérations sur le capital',0,NULL,NULL,1,NULL,NULL),(271,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','457',267,'Associés - Dividendes à payer',0,NULL,NULL,1,NULL,NULL),(272,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','458',267,'Associés - Opérations faites en commun et en G.I.E.',0,NULL,NULL,1,NULL,NULL),(273,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','46',1504,'Débiteurs divers et créditeurs divers',0,NULL,NULL,1,NULL,NULL),(274,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','462',273,'Créances sur cessions d\'immobilisations',0,NULL,NULL,1,NULL,NULL),(275,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','464',273,'Dettes sur acquisitions de valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(276,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','465',273,'Créances sur cessions de valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(277,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','467',273,'Autres comptes débiteurs ou créditeurs',0,NULL,NULL,1,NULL,NULL),(278,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','468',273,'Divers - Charges à payer et produits à recevoir',0,NULL,NULL,1,NULL,NULL),(279,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','47',1504,'Comptes transitoires ou d\'attente',0,NULL,NULL,1,NULL,NULL),(280,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','471',279,'Comptes d\'attente',0,NULL,NULL,1,NULL,NULL),(281,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','476',279,'Différence de conversion - Actif',0,NULL,NULL,1,NULL,NULL),(282,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','477',279,'Différences de conversion - Passif',0,NULL,NULL,1,NULL,NULL),(283,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','478',279,'Autres comptes transitoires',0,NULL,NULL,1,NULL,NULL),(284,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','48',1504,'Comptes de régularisation',0,NULL,NULL,1,NULL,NULL),(285,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','481',284,'Charges à répartir sur plusieurs exercices',0,NULL,NULL,1,NULL,NULL),(286,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','486',284,'Charges constatées d\'avance',0,NULL,NULL,1,NULL,NULL),(287,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','487',284,'Produits constatés d\'avance',0,NULL,NULL,1,NULL,NULL),(288,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','488',284,'Comptes de répartition périodique des charges et des produits',0,NULL,NULL,1,NULL,NULL),(289,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','489',284,'Quotas d\'émission alloués par l\'Etat',0,NULL,NULL,1,NULL,NULL),(290,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','49',1504,'Provisions pour dépréciation des comptes de tiers',0,NULL,NULL,1,NULL,NULL),(291,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','491',290,'Provisions pour dépréciation des comptes de clients',0,NULL,NULL,1,NULL,NULL),(292,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','495',290,'Provisions pour dépréciation des comptes du groupe et des associés',0,NULL,NULL,1,NULL,NULL),(293,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','496',290,'Provisions pour dépréciation des comptes de débiteurs divers',0,NULL,NULL,1,NULL,NULL),(294,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','50',1505,'Valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(295,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','501',294,'Parts dans des entreprises liées',0,NULL,NULL,1,NULL,NULL),(296,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','502',294,'Actions propres',0,NULL,NULL,1,NULL,NULL),(297,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','503',294,'Actions',0,NULL,NULL,1,NULL,NULL),(298,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','504',294,'Autres titres conférant un droit de propriété',0,NULL,NULL,1,NULL,NULL),(299,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','505',294,'Obligations et bons émis par la société et rachetés par elle',0,NULL,NULL,1,NULL,NULL),(300,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','506',294,'Obligations',0,NULL,NULL,1,NULL,NULL),(301,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','507',294,'Bons du Trésor et bons de caisse à court terme',0,NULL,NULL,1,NULL,NULL),(302,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','508',294,'Autres valeurs mobilières de placement et autres créances assimilées',0,NULL,NULL,1,NULL,NULL),(303,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','509',294,'Versements restant à effectuer sur valeurs mobilières de placement non libérées',0,NULL,NULL,1,NULL,NULL),(304,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','51',1505,'Banques, établissements financiers et assimilés',0,NULL,NULL,1,NULL,NULL),(305,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','511',304,'Valeurs à l\'encaissement',0,NULL,NULL,1,NULL,NULL),(306,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','BANK','512',304,'Banques',0,NULL,NULL,1,NULL,NULL),(307,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','514',304,'Chèques postaux',0,NULL,NULL,1,NULL,NULL),(308,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','515',304,'\"Caisses\" du Trésor et des établissements publics',0,NULL,NULL,1,NULL,NULL),(309,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','516',304,'Sociétés de bourse',0,NULL,NULL,1,NULL,NULL),(310,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','517',304,'Autres organismes financiers',0,NULL,NULL,1,NULL,NULL),(311,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','518',304,'Intérêts courus',0,NULL,NULL,1,NULL,NULL),(312,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','519',304,'Concours bancaires courants',0,NULL,NULL,1,NULL,NULL),(313,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','52',1505,'Instruments de trésorerie',0,NULL,NULL,1,NULL,NULL),(314,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','CASH','53',1505,'Caisse',0,NULL,NULL,1,NULL,NULL),(315,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','531',314,'Caisse siège social',0,NULL,NULL,1,NULL,NULL),(316,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','532',314,'Caisse succursale (ou usine) A',0,NULL,NULL,1,NULL,NULL),(317,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','533',314,'Caisse succursale (ou usine) B',0,NULL,NULL,1,NULL,NULL),(318,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','54',1505,'Régies d\'avance et accréditifs',0,NULL,NULL,1,NULL,NULL),(319,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','58',1505,'Virements internes',0,NULL,NULL,1,NULL,NULL),(320,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','59',1505,'Provisions pour dépréciation des comptes financiers',0,NULL,NULL,1,NULL,NULL),(321,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','590',320,'Provisions pour dépréciation des valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(322,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','PRODUCT','60',1506,'Achats',0,NULL,NULL,1,NULL,NULL),(323,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','601',322,'Achats stockés - Matières premières (et fournitures)',0,NULL,NULL,1,NULL,NULL),(324,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','602',322,'Achats stockés - Autres approvisionnements',0,NULL,NULL,1,NULL,NULL),(325,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','603',322,'Variations des stocks (approvisionnements et marchandises)',0,NULL,NULL,1,NULL,NULL),(326,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','604',322,'Achats stockés - Matières premières (et fournitures)',0,NULL,NULL,1,NULL,NULL),(327,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','605',322,'Achats de matériel, équipements et travaux',0,NULL,NULL,1,NULL,NULL),(328,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','606',322,'Achats non stockés de matière et fournitures',0,NULL,NULL,1,NULL,NULL),(329,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','607',322,'Achats de marchandises',0,NULL,NULL,1,NULL,NULL),(330,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','608',322,'(Compte réservé, le cas échéant, à la récapitulation des frais accessoires incorporés aux achats)',0,NULL,NULL,1,NULL,NULL),(331,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','609',322,'Rabais, remises et ristournes obtenus sur achats',0,NULL,NULL,1,NULL,NULL),(332,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','SERVICE','61',1506,'Services extérieurs',0,NULL,NULL,1,NULL,NULL),(333,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','611',332,'Sous-traitance générale',0,NULL,NULL,1,NULL,NULL),(334,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','612',332,'Redevances de crédit-bail',0,NULL,NULL,1,NULL,NULL),(335,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','613',332,'Locations',0,NULL,NULL,1,NULL,NULL),(336,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','614',332,'Charges locatives et de copropriété',0,NULL,NULL,1,NULL,NULL),(337,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','615',332,'Entretien et réparations',0,NULL,NULL,1,NULL,NULL),(338,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','616',332,'Primes d\'assurances',0,NULL,NULL,1,NULL,NULL),(339,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','617',332,'Etudes et recherches',0,NULL,NULL,1,NULL,NULL),(340,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','618',332,'Divers',0,NULL,NULL,1,NULL,NULL),(341,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','619',332,'Rabais, remises et ristournes obtenus sur services extérieurs',0,NULL,NULL,1,NULL,NULL),(342,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','62',1506,'Autres services extérieurs',0,NULL,NULL,1,NULL,NULL),(343,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','621',342,'Personnel extérieur à l\'entreprise',0,NULL,NULL,1,NULL,NULL),(344,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','622',342,'Rémunérations d\'intermédiaires et honoraires',0,NULL,NULL,1,NULL,NULL),(345,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','623',342,'Publicité, publications, relations publiques',0,NULL,NULL,1,NULL,NULL),(346,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','624',342,'Transports de biens et transports collectifs du personnel',0,NULL,NULL,1,NULL,NULL),(347,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','625',342,'Déplacements, missions et réceptions',0,NULL,NULL,1,NULL,NULL),(348,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','626',342,'Frais postaux et de télécommunications',0,NULL,NULL,1,NULL,NULL),(349,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','627',342,'Services bancaires et assimilés',0,NULL,NULL,1,NULL,NULL),(350,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','628',342,'Divers',0,NULL,NULL,1,NULL,NULL),(351,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','629',342,'Rabais, remises et ristournes obtenus sur autres services extérieurs',0,NULL,NULL,1,NULL,NULL),(352,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','63',1506,'Impôts, taxes et versements assimilés',0,NULL,NULL,1,NULL,NULL),(353,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','631',352,'Impôts, taxes et versements assimilés sur rémunérations (administrations des impôts)',0,NULL,NULL,1,NULL,NULL),(354,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','633',352,'Impôts, taxes et versements assimilés sur rémunérations (autres organismes)',0,NULL,NULL,1,NULL,NULL),(355,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','635',352,'Autres impôts, taxes et versements assimilés (administrations des impôts)',0,NULL,NULL,1,NULL,NULL),(356,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','637',352,'Autres impôts, taxes et versements assimilés (autres organismes)',0,NULL,NULL,1,NULL,NULL),(357,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','64',1506,'Charges de personnel',0,NULL,NULL,1,NULL,NULL),(358,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','641',357,'Rémunérations du personnel',0,NULL,NULL,1,NULL,NULL),(359,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','644',357,'Rémunération du travail de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(360,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','SOCIAL','645',357,'Charges de sécurité sociale et de prévoyance',0,NULL,NULL,1,NULL,NULL),(361,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','646',357,'Cotisations sociales personnelles de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(362,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','647',357,'Autres charges sociales',0,NULL,NULL,1,NULL,NULL),(363,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','648',357,'Autres charges de personnel',0,NULL,NULL,1,NULL,NULL),(364,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','65',1506,'Autres charges de gestion courante',0,NULL,NULL,1,NULL,NULL),(365,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','651',364,'Redevances pour concessions, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',0,NULL,NULL,1,NULL,NULL),(366,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','653',364,'Jetons de présence',0,NULL,NULL,1,NULL,NULL),(367,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','654',364,'Pertes sur créances irrécouvrables',0,NULL,NULL,1,NULL,NULL),(368,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','655',364,'Quote-part de résultat sur opérations faites en commun',0,NULL,NULL,1,NULL,NULL),(369,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','658',364,'Charges diverses de gestion courante',0,NULL,NULL,1,NULL,NULL),(370,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','66',1506,'Charges financières',0,NULL,NULL,1,NULL,NULL),(371,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','661',370,'Charges d\'intérêts',0,NULL,NULL,1,NULL,NULL),(372,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','664',370,'Pertes sur créances liées à des participations',0,NULL,NULL,1,NULL,NULL),(373,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','665',370,'Escomptes accordés',0,NULL,NULL,1,NULL,NULL),(374,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','666',370,'Pertes de change',0,NULL,NULL,1,NULL,NULL),(375,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','667',370,'Charges nettes sur cessions de valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(376,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','668',370,'Autres charges financières',0,NULL,NULL,1,NULL,NULL),(377,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','67',1506,'Charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(378,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','671',377,'Charges exceptionnelles sur opérations de gestion',0,NULL,NULL,1,NULL,NULL),(379,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','672',377,'(Compte à la disposition des entités pour enregistrer, en cours d\'exercice, les charges sur exercices antérieurs)',0,NULL,NULL,1,NULL,NULL),(380,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','675',377,'Valeurs comptables des éléments d\'actif cédés',0,NULL,NULL,1,NULL,NULL),(381,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','678',377,'Autres charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(382,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','68',1506,'Dotations aux amortissements et aux provisions',0,NULL,NULL,1,NULL,NULL),(383,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','681',382,'Dotations aux amortissements et aux provisions - Charges d\'exploitation',0,NULL,NULL,1,NULL,NULL),(384,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','686',382,'Dotations aux amortissements et aux provisions - Charges financières',0,NULL,NULL,1,NULL,NULL),(385,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','687',382,'Dotations aux amortissements et aux provisions - Charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(386,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','69',1506,'Participation des salariés - impôts sur les bénéfices et assimiles',0,NULL,NULL,1,NULL,NULL),(387,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','691',386,'Participation des salariés aux résultats',0,NULL,NULL,1,NULL,NULL),(388,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','695',386,'Impôts sur les bénéfices',0,NULL,NULL,1,NULL,NULL),(389,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','696',386,'Suppléments d\'impôt sur les sociétés liés aux distributions',0,NULL,NULL,1,NULL,NULL),(390,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','697',386,'Imposition forfaitaire annuelle des sociétés',0,NULL,NULL,1,NULL,NULL),(391,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','698',386,'Intégration fiscale',0,NULL,NULL,1,NULL,NULL),(392,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','699',386,'Produits - Reports en arrière des déficits',0,NULL,NULL,1,NULL,NULL),(393,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','70',1507,'Ventes de produits fabriqués, prestations de services, marchandises',0,NULL,NULL,1,NULL,NULL),(394,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','PRODUCT','701',393,'Ventes de produits finis',0,NULL,NULL,1,NULL,NULL),(395,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','702',393,'Ventes de produits intermédiaires',0,NULL,NULL,1,NULL,NULL),(396,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','703',393,'Ventes de produits résiduels',0,NULL,NULL,1,NULL,NULL),(397,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','704',393,'Travaux',0,NULL,NULL,1,NULL,NULL),(398,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','705',393,'Etudes',0,NULL,NULL,1,NULL,NULL),(399,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','SERVICE','706',393,'Prestations de services',0,NULL,NULL,1,NULL,NULL),(400,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','PRODUCT','707',393,'Ventes de marchandises',0,NULL,NULL,1,NULL,NULL),(401,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','PRODUCT','708',393,'Produits des activités annexes',0,NULL,NULL,1,NULL,NULL),(402,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','709',393,'Rabais, remises et ristournes accordés par l\'entreprise',0,NULL,NULL,1,NULL,NULL),(403,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','71',1507,'Production stockée (ou déstockage)',0,NULL,NULL,1,NULL,NULL),(404,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','713',403,'Variation des stocks (en-cours de production, produits)',0,NULL,NULL,1,NULL,NULL),(405,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','72',1507,'Production immobilisée',0,NULL,NULL,1,NULL,NULL),(406,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','721',405,'Immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(407,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','722',405,'Immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(408,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','74',1507,'Subventions d\'exploitation',0,NULL,NULL,1,NULL,NULL),(409,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','75',1507,'Autres produits de gestion courante',0,NULL,NULL,1,NULL,NULL),(410,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','751',409,'Redevances pour concessions, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',0,NULL,NULL,1,NULL,NULL),(411,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','752',409,'Revenus des immeubles non affectés à des activités professionnelles',0,NULL,NULL,1,NULL,NULL),(412,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','753',409,'Jetons de présence et rémunérations d\'administrateurs, gérants,...',0,NULL,NULL,1,NULL,NULL),(413,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','754',409,'Ristournes perçues des coopératives (provenant des excédents)',0,NULL,NULL,1,NULL,NULL),(414,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','755',409,'Quotes-parts de résultat sur opérations faites en commun',0,NULL,NULL,1,NULL,NULL),(415,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','758',409,'Produits divers de gestion courante',0,NULL,NULL,1,NULL,NULL),(416,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','76',1507,'Produits financiers',0,NULL,NULL,1,NULL,NULL),(417,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','761',416,'Produits de participations',0,NULL,NULL,1,NULL,NULL),(418,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','762',416,'Produits des autres immobilisations financières',0,NULL,NULL,1,NULL,NULL),(419,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','763',416,'Revenus des autres créances',0,NULL,NULL,1,NULL,NULL),(420,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','764',416,'Revenus des valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(421,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','765',416,'Escomptes obtenus',0,NULL,NULL,1,NULL,NULL),(422,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','766',416,'Gains de change',0,NULL,NULL,1,NULL,NULL),(423,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','767',416,'Produits nets sur cessions de valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(424,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','768',416,'Autres produits financiers',0,NULL,NULL,1,NULL,NULL),(425,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','77',1507,'Produits exceptionnels',0,NULL,NULL,1,NULL,NULL),(426,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','771',425,'Produits exceptionnels sur opérations de gestion',0,NULL,NULL,1,NULL,NULL),(427,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','772',425,'(Compte à la disposition des entités pour enregistrer, en cours d\'exercice, les produits sur exercices antérieurs)',0,NULL,NULL,1,NULL,NULL),(428,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','775',425,'Produits des cessions d\'éléments d\'actif',0,NULL,NULL,1,NULL,NULL),(429,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','777',425,'Quote-part des subventions d\'investissement virée au résultat de l\'exercice',0,NULL,NULL,1,NULL,NULL),(430,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','778',425,'Autres produits exceptionnels',0,NULL,NULL,1,NULL,NULL),(431,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','78',1507,'Reprises sur amortissements et provisions',0,NULL,NULL,1,NULL,NULL),(432,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','781',431,'Reprises sur amortissements et provisions (à inscrire dans les produits d\'exploitation)',0,NULL,NULL,1,NULL,NULL),(433,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','786',431,'Reprises sur provisions pour risques (à inscrire dans les produits financiers)',0,NULL,NULL,1,NULL,NULL),(434,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','787',431,'Reprises sur provisions (à inscrire dans les produits exceptionnels)',0,NULL,NULL,1,NULL,NULL),(435,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','79',1507,'Transferts de charges',0,NULL,NULL,1,NULL,NULL),(436,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','791',435,'Transferts de charges d\'exploitation ',0,NULL,NULL,1,NULL,NULL),(437,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','796',435,'Transferts de charges financières',0,NULL,NULL,1,NULL,NULL),(438,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','797',435,'Transferts de charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(439,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','10',1351,'Capital',0,NULL,NULL,1,NULL,NULL),(440,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','100',439,'Capital souscrit ou capital personnel',0,NULL,NULL,1,NULL,NULL),(441,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1000',440,'Capital non amorti',0,NULL,NULL,1,NULL,NULL),(442,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1001',440,'Capital amorti',0,NULL,NULL,1,NULL,NULL),(443,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','101',439,'Capital non appelé',0,NULL,NULL,1,NULL,NULL),(444,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','109',439,'Compte de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(445,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1090',444,'Opérations courantes',0,NULL,NULL,1,NULL,NULL),(446,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1091',444,'Impôts personnels',0,NULL,NULL,1,NULL,NULL),(447,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1092',444,'Rémunérations et autres avantages',0,NULL,NULL,1,NULL,NULL),(448,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','11',1351,'Primes d\'émission',0,NULL,NULL,1,NULL,NULL),(449,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','12',1351,'Plus-values de réévaluation',0,NULL,NULL,1,NULL,NULL),(450,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','120',449,'Plus-values de réévaluation sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(451,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1200',450,'Plus-values de réévaluation',0,NULL,NULL,1,NULL,NULL),(452,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1201',450,'Reprises de réductions de valeur',0,NULL,NULL,1,NULL,NULL),(453,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','121',449,'Plus-values de réévaluation sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(454,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1210',453,'Plus-values de réévaluation',0,NULL,NULL,1,NULL,NULL),(455,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1211',453,'Reprises de réductions de valeur',0,NULL,NULL,1,NULL,NULL),(456,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','122',449,'Plus-values de réévaluation sur immobilisations financières',0,NULL,NULL,1,NULL,NULL),(457,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1220',456,'Plus-values de réévaluation',0,NULL,NULL,1,NULL,NULL),(458,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1221',456,'Reprises de réductions de valeur',0,NULL,NULL,1,NULL,NULL),(459,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','123',449,'Plus-values de réévaluation sur stocks',0,NULL,NULL,1,NULL,NULL),(460,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','124',449,'Reprises de réductions de valeur sur placements de trésorerie',0,NULL,NULL,1,NULL,NULL),(461,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','13',1351,'Réserve',0,NULL,NULL,1,NULL,NULL),(462,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','130',461,'Réserve légale',0,NULL,NULL,1,NULL,NULL),(463,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','131',461,'Réserves indisponibles',0,NULL,NULL,1,NULL,NULL),(464,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1310',463,'Réserve pour actions propres',0,NULL,NULL,1,NULL,NULL),(465,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1311',463,'Autres réserves indisponibles',0,NULL,NULL,1,NULL,NULL),(466,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','132',461,'Réserves immunisées',0,NULL,NULL,1,NULL,NULL),(467,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','133',461,'Réserves disponibles',0,NULL,NULL,1,NULL,NULL),(468,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1330',467,'Réserve pour régularisation de dividendes',0,NULL,NULL,1,NULL,NULL),(469,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1331',467,'Réserve pour renouvellement des immobilisations',0,NULL,NULL,1,NULL,NULL),(470,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1332',467,'Réserve pour installations en faveur du personnel 1333 Réserves libres',0,NULL,NULL,1,NULL,NULL),(471,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','14',1351,'Bénéfice reporté (ou perte reportée)',0,NULL,NULL,1,NULL,NULL),(472,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','15',1351,'Subsides en capital',0,NULL,NULL,1,NULL,NULL),(473,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','150',472,'Montants obtenus',0,NULL,NULL,1,NULL,NULL),(474,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','151',472,'Montants transférés aux résultats',0,NULL,NULL,1,NULL,NULL),(475,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','16',1351,'Provisions pour risques et charges',0,NULL,NULL,1,NULL,NULL),(476,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','160',475,'Provisions pour pensions et obligations similaires',0,NULL,NULL,1,NULL,NULL),(477,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','161',475,'Provisions pour charges fiscales',0,NULL,NULL,1,NULL,NULL),(478,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','162',475,'Provisions pour grosses réparations et gros entretiens',0,NULL,NULL,1,NULL,NULL),(479,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','163',475,'à 169 Provisions pour autres risques et charges',0,NULL,NULL,1,NULL,NULL),(480,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','164',475,'Provisions pour sûretés personnelles ou réelles constituées à l\'appui de dettes et d\'engagements de tiers',0,NULL,NULL,1,NULL,NULL),(481,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','165',475,'Provisions pour engagements relatifs à l\'acquisition ou à la cession d\'immobilisations',0,NULL,NULL,1,NULL,NULL),(482,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','166',475,'Provisions pour exécution de commandes passées ou reçues',0,NULL,NULL,1,NULL,NULL),(483,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','167',475,'Provisions pour positions et marchés à terme en devises ou positions et marchés à terme en marchandises',0,NULL,NULL,1,NULL,NULL),(484,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','168',475,'Provisions pour garanties techniques attachées aux ventes et prestations déjà effectuées par l\'entreprise',0,NULL,NULL,1,NULL,NULL),(485,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','169',475,'Provisions pour autres risques et charges',0,NULL,NULL,1,NULL,NULL),(486,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1690',485,'Pour litiges en cours',0,NULL,NULL,1,NULL,NULL),(487,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1691',485,'Pour amendes, doubles droits et pénalités',0,NULL,NULL,1,NULL,NULL),(488,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1692',485,'Pour propre assureur',0,NULL,NULL,1,NULL,NULL),(489,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1693',485,'Pour risques inhérents aux opérations de crédits à moyen ou long terme',0,NULL,NULL,1,NULL,NULL),(490,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1695',485,'Provision pour charge de liquidation',0,NULL,NULL,1,NULL,NULL),(491,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1696',485,'Provision pour départ de personnel',0,NULL,NULL,1,NULL,NULL),(492,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1699',485,'Pour risques divers',0,NULL,NULL,1,NULL,NULL),(493,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17',1351,'Dettes à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(494,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','170',493,'Emprunts subordonnés',0,NULL,NULL,1,NULL,NULL),(495,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1700',494,'Convertibles',0,NULL,NULL,1,NULL,NULL),(496,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1701',494,'Non convertibles',0,NULL,NULL,1,NULL,NULL),(497,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','171',493,'Emprunts obligataires non subordonnés',0,NULL,NULL,1,NULL,NULL),(498,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1710',498,'Convertibles',0,NULL,NULL,1,NULL,NULL),(499,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1711',498,'Non convertibles',0,NULL,NULL,1,NULL,NULL),(500,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','172',493,'Dettes de location-financement et assimilés',0,NULL,NULL,1,NULL,NULL),(501,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1720',500,'Dettes de location-financement de biens immobiliers',0,NULL,NULL,1,NULL,NULL),(502,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1721',500,'Dettes de location-financement de biens mobiliers',0,NULL,NULL,1,NULL,NULL),(503,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1722',500,'Dettes sur droits réels sur immeubles',0,NULL,NULL,1,NULL,NULL),(504,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','173',493,'Etablissements de crédit',0,NULL,NULL,1,NULL,NULL),(505,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1730',504,'Dettes en compte',0,NULL,NULL,1,NULL,NULL),(506,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17300',505,'Banque A',0,NULL,NULL,1,NULL,NULL),(507,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17301',505,'Banque B',0,NULL,NULL,1,NULL,NULL),(508,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17302',505,'Banque C',0,NULL,NULL,1,NULL,NULL),(509,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17303',505,'Banque D',0,NULL,NULL,1,NULL,NULL),(510,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1731',504,'Promesses',0,NULL,NULL,1,NULL,NULL),(511,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17310',510,'Banque A',0,NULL,NULL,1,NULL,NULL),(512,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17311',510,'Banque B',0,NULL,NULL,1,NULL,NULL),(513,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17312',510,'Banque C',0,NULL,NULL,1,NULL,NULL),(514,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17313',510,'Banque D',0,NULL,NULL,1,NULL,NULL),(515,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1732',504,'Crédits d\'acceptation',0,NULL,NULL,1,NULL,NULL),(516,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17320',515,'Banque A',0,NULL,NULL,1,NULL,NULL),(517,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17321',515,'Banque B',0,NULL,NULL,1,NULL,NULL),(518,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17322',515,'Banque C',0,NULL,NULL,1,NULL,NULL),(519,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17323',515,'Banque D',0,NULL,NULL,1,NULL,NULL),(520,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','174',493,'Autres emprunts',0,NULL,NULL,1,NULL,NULL),(521,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175',493,'Dettes commerciales',0,NULL,NULL,1,NULL,NULL),(522,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1750',521,'Fournisseurs : dettes en compte',0,NULL,NULL,1,NULL,NULL),(523,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17500',522,'Entreprises apparentées',0,NULL,NULL,1,NULL,NULL),(524,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175000',523,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(525,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175001',523,'Entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(526,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17501',522,'Fournisseurs ordinaires',0,NULL,NULL,1,NULL,NULL),(527,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175010',526,'Fournisseurs belges',0,NULL,NULL,1,NULL,NULL),(528,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175011',526,'Fournisseurs C.E.E.',0,NULL,NULL,1,NULL,NULL),(529,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175012',526,'Fournisseurs importation',0,NULL,NULL,1,NULL,NULL),(530,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1751',521,'Effets à payer',0,NULL,NULL,1,NULL,NULL),(531,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17510',530,'Entreprises apparentées',0,NULL,NULL,1,NULL,NULL),(532,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175100',531,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(533,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175101',531,'Entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(534,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17511',530,'Fournisseurs ordinaires',0,NULL,NULL,1,NULL,NULL),(535,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175110',534,'Fournisseurs belges',0,NULL,NULL,1,NULL,NULL),(536,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175111',534,'Fournisseurs C.E.E.',0,NULL,NULL,1,NULL,NULL),(537,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175112',534,'Fournisseurs importation',0,NULL,NULL,1,NULL,NULL),(538,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','176',493,'Acomptes reçus sur commandes',0,NULL,NULL,1,NULL,NULL),(539,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','178',493,'Cautionnements reçus en numéraires',0,NULL,NULL,1,NULL,NULL),(540,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','179',493,'Dettes diverses',0,NULL,NULL,1,NULL,NULL),(541,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1790',540,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(542,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1791',540,'Autres entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(543,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1792',540,'Administrateurs, gérants et associés',0,NULL,NULL,1,NULL,NULL),(544,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1794',540,'Rentes viagères capitalisées',0,NULL,NULL,1,NULL,NULL),(545,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1798',540,'Dettes envers les coparticipants des associations momentanées et en participation',0,NULL,NULL,1,NULL,NULL),(546,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1799',540,'Autres dettes diverses',0,NULL,NULL,1,NULL,NULL),(547,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','18',1351,'Comptes de liaison des établissements et succursales',0,NULL,NULL,1,NULL,NULL),(548,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','20',1352,'Frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(549,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','200',548,'Frais de constitution et d\'augmentation de capital',0,NULL,NULL,1,NULL,NULL),(550,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2000',549,'Frais de constitution et d\'augmentation de capital',0,NULL,NULL,1,NULL,NULL),(551,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2009',549,'Amortissements sur frais de constitution et d\'augmentation de capital',0,NULL,NULL,1,NULL,NULL),(552,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','201',548,'Frais d\'émission d\'emprunts et primes de remboursement',0,NULL,NULL,1,NULL,NULL),(553,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2010',552,'Agios sur emprunts et frais d\'émission d\'emprunts',0,NULL,NULL,1,NULL,NULL),(554,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2019',552,'Amortissements sur agios sur emprunts et frais d\'émission d\'emprunts',0,NULL,NULL,1,NULL,NULL),(555,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','202',548,'Autres frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(556,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2020',555,'Autres frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(557,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2029',555,'Amortissements sur autres frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(558,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','203',548,'Intérêts intercalaires',0,NULL,NULL,1,NULL,NULL),(559,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2030',558,'Intérêts intercalaires',0,NULL,NULL,1,NULL,NULL),(560,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2039',558,'Amortissements sur intérêts intercalaires',0,NULL,NULL,1,NULL,NULL),(561,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','204',548,'Frais de restructuration',0,NULL,NULL,1,NULL,NULL),(562,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2040',561,'Coût des frais de restructuration',0,NULL,NULL,1,NULL,NULL),(563,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2049',561,'Amortissements sur frais de restructuration',0,NULL,NULL,1,NULL,NULL),(564,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','21',1352,'Immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(565,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','210',564,'Frais de recherche et de développement',0,NULL,NULL,1,NULL,NULL),(566,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2100',565,'Frais de recherche et de mise au point',0,NULL,NULL,1,NULL,NULL),(567,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2108',565,'Plus-values actées sur frais de recherche et de mise au point',0,NULL,NULL,1,NULL,NULL),(568,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2109',565,'Amortissements sur frais de recherche et de mise au point',0,NULL,NULL,1,NULL,NULL),(569,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','211',564,'Concessions, brevets, licences, savoir-faire, marque et droits similaires',0,NULL,NULL,1,NULL,NULL),(570,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2110',569,'Concessions, brevets, licences, marques, etc',0,NULL,NULL,1,NULL,NULL),(571,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2118',569,'Plus-values actées sur concessions, etc',0,NULL,NULL,1,NULL,NULL),(572,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2119',569,'Amortissements sur concessions, etc',0,NULL,NULL,1,NULL,NULL),(573,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','212',564,'Goodwill',0,NULL,NULL,1,NULL,NULL),(574,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2120',573,'Coût d\'acquisition',0,NULL,NULL,1,NULL,NULL),(575,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2128',573,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(576,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2129',573,'Amortissements sur goodwill',0,NULL,NULL,1,NULL,NULL),(577,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','213',564,'Acomptes versés',0,NULL,NULL,1,NULL,NULL),(578,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22',1352,'Terrains et constructions',0,NULL,NULL,1,NULL,NULL),(579,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','220',578,'Terrains',0,NULL,NULL,1,NULL,NULL),(580,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2200',579,'Terrains',0,NULL,NULL,1,NULL,NULL),(581,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2201',579,'Frais d\'acquisition sur terrains',0,NULL,NULL,1,NULL,NULL),(582,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2208',579,'Plus-values actées sur terrains',0,NULL,NULL,1,NULL,NULL),(583,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2209',579,'Amortissements et réductions de valeur',0,NULL,NULL,1,NULL,NULL),(584,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22090',583,'Amortissements sur frais d\'acquisition',0,NULL,NULL,1,NULL,NULL),(585,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22091',583,'Réductions de valeur sur terrains',0,NULL,NULL,1,NULL,NULL),(586,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','221',578,'Constructions',0,NULL,NULL,1,NULL,NULL),(587,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2210',586,'Bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(588,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2211',586,'Bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(589,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2212',586,'Autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(590,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2213',586,'Voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(591,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2215',586,'Constructions sur sol d\'autrui',0,NULL,NULL,1,NULL,NULL),(592,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2216',586,'Frais d\'acquisition sur constructions',0,NULL,NULL,1,NULL,NULL),(593,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2218',586,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(594,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22180',593,'Sur bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(595,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22181',593,'Sur bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(596,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22182',593,'Sur autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(597,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22184',593,'Sur voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(598,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2219',586,'Amortissements sur constructions',0,NULL,NULL,1,NULL,NULL),(599,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22190',598,'Sur bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(600,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22191',598,'Sur bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(601,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22192',598,'Sur autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(602,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22194',598,'Sur voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(603,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22195',598,'Sur constructions sur sol d\'autrui',0,NULL,NULL,1,NULL,NULL),(604,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22196',598,'Sur frais d\'acquisition sur constructions',0,NULL,NULL,1,NULL,NULL),(605,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','222',578,'Terrains bâtis',0,NULL,NULL,1,NULL,NULL),(606,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2220',605,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(607,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22200',606,'Bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(608,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22201',606,'Bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(609,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22202',606,'Autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(610,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22203',606,'Voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(611,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22204',606,'Frais d\'acquisition des terrains à bâtir',0,NULL,NULL,1,NULL,NULL),(612,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2228',605,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(613,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22280',612,'Sur bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(614,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22281',612,'Sur bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(615,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22282',612,'Sur autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(616,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22283',612,'Sur voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(617,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2229',605,'Amortissements sur terrains bâtis',0,NULL,NULL,1,NULL,NULL),(618,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22290',617,'Sur bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(619,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22291',617,'Sur bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(620,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22292',617,'Sur autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(621,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22293',617,'Sur voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(622,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22294',617,'Sur frais d\'acquisition des terrains bâtis',0,NULL,NULL,1,NULL,NULL),(623,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','223',578,'Autres droits réels sur des immeubles',0,NULL,NULL,1,NULL,NULL),(624,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2230',623,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(625,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2238',623,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(626,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2239',623,'Amortissements',0,NULL,NULL,1,NULL,NULL),(627,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','23',1352,'Installations, machines et outillages',0,NULL,NULL,1,NULL,NULL),(628,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','230',627,'Installations',0,NULL,NULL,1,NULL,NULL),(629,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2300',628,'Installations bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(630,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2301',628,'Installations bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(631,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2302',628,'Installations bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(632,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2303',628,'Installations voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(637,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2304',628,'Installation de chauffage',0,NULL,NULL,1,NULL,NULL),(638,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2305',628,'Installation de conditionnement d\'air',0,NULL,NULL,1,NULL,NULL),(639,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2306',628,'Installation de chargement',0,NULL,NULL,1,NULL,NULL),(640,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','231',627,'Machines',0,NULL,NULL,1,NULL,NULL),(641,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2310',640,'Division A',0,NULL,NULL,1,NULL,NULL),(642,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2311',640,'Division B',0,NULL,NULL,1,NULL,NULL),(643,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2312',640,'Division C',0,NULL,NULL,1,NULL,NULL),(644,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','237',627,'Outillage',0,NULL,NULL,1,NULL,NULL),(645,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2370',644,'Division A',0,NULL,NULL,1,NULL,NULL),(646,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2371',644,'Division B',0,NULL,NULL,1,NULL,NULL),(647,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2372',644,'Division C',0,NULL,NULL,1,NULL,NULL),(648,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','238',627,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(649,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2380',648,'Sur installations',0,NULL,NULL,1,NULL,NULL),(650,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2381',648,'Sur machines',0,NULL,NULL,1,NULL,NULL),(651,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2382',648,'Sur outillage',0,NULL,NULL,1,NULL,NULL),(652,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','239',627,'Amortissements',0,NULL,NULL,1,NULL,NULL),(653,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2390',652,'Sur installations',0,NULL,NULL,1,NULL,NULL),(654,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2391',652,'Sur machines',0,NULL,NULL,1,NULL,NULL),(655,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2392',652,'Sur outillage',0,NULL,NULL,1,NULL,NULL),(656,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24',1352,'Mobilier et matériel roulant',0,NULL,NULL,1,NULL,NULL),(657,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','240',656,'Mobilier',0,NULL,NULL,1,NULL,NULL),(658,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2400',656,'Mobilier',0,NULL,NULL,1,NULL,NULL),(659,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24000',658,'Mobilier des bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(660,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24001',658,'Mobilier des bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(661,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24002',658,'Mobilier des autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(662,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24003',658,'Mobilier oeuvres sociales',0,NULL,NULL,1,NULL,NULL),(663,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2401',657,'Matériel de bureau et de service social',0,NULL,NULL,1,NULL,NULL),(664,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24010',663,'Des bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(665,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24011',663,'Des bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(666,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24012',663,'Des autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(667,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24013',663,'Des oeuvres sociales',0,NULL,NULL,1,NULL,NULL),(668,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2408',657,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(669,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24080',668,'Plus-values actées sur mobilier',0,NULL,NULL,1,NULL,NULL),(670,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24081',668,'Plus-values actées sur matériel de bureau et service social',0,NULL,NULL,1,NULL,NULL),(671,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2409',657,'Amortissements',0,NULL,NULL,1,NULL,NULL),(672,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24090',671,'Amortissements sur mobilier',0,NULL,NULL,1,NULL,NULL),(673,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24091',671,'Amortissements sur matériel de bureau et service social',0,NULL,NULL,1,NULL,NULL),(674,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','241',656,'Matériel roulant',0,NULL,NULL,1,NULL,NULL),(675,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2410',674,'Matériel automobile',0,NULL,NULL,1,NULL,NULL),(676,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24100',675,'Voitures',0,NULL,NULL,1,NULL,NULL),(677,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24105',675,'Camions',0,NULL,NULL,1,NULL,NULL),(678,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2411',674,'Matériel ferroviaire',0,NULL,NULL,1,NULL,NULL),(679,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2412',674,'Matériel fluvial',0,NULL,NULL,1,NULL,NULL),(680,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2413',674,'Matériel naval',0,NULL,NULL,1,NULL,NULL),(681,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2414',674,'Matériel aérien',0,NULL,NULL,1,NULL,NULL),(682,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2418',674,'Plus-values sur matériel roulant',0,NULL,NULL,1,NULL,NULL),(683,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24180',682,'Plus-values sur matériel automobile',0,NULL,NULL,1,NULL,NULL),(684,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24181',682,'Idem sur matériel ferroviaire',0,NULL,NULL,1,NULL,NULL),(685,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24182',682,'Idem sur matériel fluvial',0,NULL,NULL,1,NULL,NULL),(686,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24183',682,'Idem sur matériel naval',0,NULL,NULL,1,NULL,NULL),(687,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24184',682,'Idem sur matériel aérien',0,NULL,NULL,1,NULL,NULL),(688,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2419',674,'Amortissements sur matériel roulant',0,NULL,NULL,1,NULL,NULL),(689,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24190',688,'Amortissements sur matériel automobile',0,NULL,NULL,1,NULL,NULL),(690,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24191',688,'Idem sur matériel ferroviaire',0,NULL,NULL,1,NULL,NULL),(691,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24192',688,'Idem sur matériel fluvial',0,NULL,NULL,1,NULL,NULL),(692,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24193',688,'Idem sur matériel naval',0,NULL,NULL,1,NULL,NULL),(693,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24194',688,'Idem sur matériel aérien',0,NULL,NULL,1,NULL,NULL),(694,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','25',1352,'Immobilisation détenues en location-financement et droits similaires',0,NULL,NULL,1,NULL,NULL),(695,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','250',694,'Terrains et constructions',0,NULL,NULL,1,NULL,NULL),(696,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2500',695,'Terrains',0,NULL,NULL,1,NULL,NULL),(697,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2501',695,'Constructions',0,NULL,NULL,1,NULL,NULL),(698,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2508',695,'Plus-values sur emphytéose,  leasing et droits similaires : terrains et constructions',0,NULL,NULL,1,NULL,NULL),(699,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2509',695,'Amortissements et réductions de valeur sur terrains et constructions en leasing',0,NULL,NULL,1,NULL,NULL),(700,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','251',694,'Installations,  machines et outillage',0,NULL,NULL,1,NULL,NULL),(701,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2510',700,'Installations',0,NULL,NULL,1,NULL,NULL),(702,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2511',700,'Machines',0,NULL,NULL,1,NULL,NULL),(703,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2512',700,'Outillage',0,NULL,NULL,1,NULL,NULL),(704,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2518',700,'Plus-values actées sur installations machines et outillage pris en leasing',0,NULL,NULL,1,NULL,NULL),(705,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2519',700,'Amortissements sur installations machines et outillage pris en leasing',0,NULL,NULL,1,NULL,NULL),(706,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','252',694,'Mobilier et matériel roulant',0,NULL,NULL,1,NULL,NULL),(707,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2520',706,'Mobilier',0,NULL,NULL,1,NULL,NULL),(708,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2521',706,'Matériel roulant',0,NULL,NULL,1,NULL,NULL),(709,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2528',706,'Plus-values actées sur mobilier et matériel roulant en leasing',0,NULL,NULL,1,NULL,NULL),(710,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2529',706,'Amortissements sur mobilier et matériel roulant en leasing',0,NULL,NULL,1,NULL,NULL),(711,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','26',1352,'Autres immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(712,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','260',711,'Frais d\'aménagements de locaux pris en location',0,NULL,NULL,1,NULL,NULL),(713,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','261',711,'Maison d\'habitation',0,NULL,NULL,1,NULL,NULL),(714,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','262',711,'Réserve immobilière',0,NULL,NULL,1,NULL,NULL),(715,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','263',711,'Matériel d\'emballage',0,NULL,NULL,1,NULL,NULL),(716,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','264',711,'Emballages récupérables',0,NULL,NULL,1,NULL,NULL),(717,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','268',711,'Plus-values actées sur autres immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(718,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','269',711,'Amortissements sur autres immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(719,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2690',718,'Amortissements sur frais d\'aménagement des locaux pris en location',0,NULL,NULL,1,NULL,NULL),(720,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2691',718,'Amortissements sur maison d\'habitation',0,NULL,NULL,1,NULL,NULL),(721,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2692',718,'Amortissements sur réserve immobilière',0,NULL,NULL,1,NULL,NULL),(722,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2693',718,'Amortissements sur matériel d\'emballage',0,NULL,NULL,1,NULL,NULL),(723,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2694',718,'Amortissements sur emballages récupérables',0,NULL,NULL,1,NULL,NULL),(724,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','27',1352,'Immobilisations corporelles en cours et acomptes versés',0,NULL,NULL,1,NULL,NULL),(725,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','270',724,'Immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(726,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2700',725,'Constructions',0,NULL,NULL,1,NULL,NULL),(727,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2701',725,'Installations machines et outillage',0,NULL,NULL,1,NULL,NULL),(728,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2702',725,'Mobilier et matériel roulant',0,NULL,NULL,1,NULL,NULL),(729,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2703',725,'Autres immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(730,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','271',724,'Avances et acomptes versés sur immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(731,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','28',1352,'Immobilisations financières',0,NULL,NULL,1,NULL,NULL),(732,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','280',731,'Participations dans des entreprises liées',0,NULL,NULL,1,NULL,NULL),(733,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2800',732,'Valeur d\'acquisition (peut être subdivisé par participation)',0,NULL,NULL,1,NULL,NULL),(734,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2801',732,'Montants non appelés (idem)',0,NULL,NULL,1,NULL,NULL),(735,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2808',732,'Plus-values actées (idem)',0,NULL,NULL,1,NULL,NULL),(736,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2809',732,'Réductions de valeurs actées (idem)',0,NULL,NULL,1,NULL,NULL),(737,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','281',731,'Créances sur des entreprises liées',0,NULL,NULL,1,NULL,NULL),(738,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2810',737,'Créances en compte',0,NULL,NULL,1,NULL,NULL),(739,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2811',737,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(740,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2812',737,'Titres à revenu fixes',0,NULL,NULL,1,NULL,NULL),(741,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2817',737,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(742,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2819',737,'Réductions de valeurs actées',0,NULL,NULL,1,NULL,NULL),(743,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','282',731,'Participations dans des entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(744,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2820',743,'Valeur d\'acquisition (peut être subdivisé par participation)',0,NULL,NULL,1,NULL,NULL),(745,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2821',743,'Montants non appelés (idem)',0,NULL,NULL,1,NULL,NULL),(746,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2828',743,'Plus-values actées (idem)',0,NULL,NULL,1,NULL,NULL),(747,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2829',743,'Réductions de valeurs actées (idem)',0,NULL,NULL,1,NULL,NULL),(748,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','283',731,'Créances sur des entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(749,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2830',748,'Créances en compte',0,NULL,NULL,1,NULL,NULL),(750,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2831',748,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(751,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2832',748,'Titres à revenu fixe',0,NULL,NULL,1,NULL,NULL),(752,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2837',748,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(753,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2839',748,'Réductions de valeurs actées',0,NULL,NULL,1,NULL,NULL),(754,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','284',731,'Autres actions et parts',0,NULL,NULL,1,NULL,NULL),(755,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2840',754,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(756,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2841',754,'Montants non appelés',0,NULL,NULL,1,NULL,NULL),(757,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2848',754,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(758,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2849',754,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(759,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','285',731,'Autres créances',0,NULL,NULL,1,NULL,NULL),(760,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2850',759,'Créances en compte',0,NULL,NULL,1,NULL,NULL),(761,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2851',759,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(762,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2852',759,'Titres à revenu fixe',0,NULL,NULL,1,NULL,NULL),(763,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2857',759,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(764,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2859',759,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(765,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','288',731,'Cautionnements versés en numéraires',0,NULL,NULL,1,NULL,NULL),(766,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2880',765,'Téléphone, téléfax, télex',0,NULL,NULL,1,NULL,NULL),(767,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2881',765,'Gaz',0,NULL,NULL,1,NULL,NULL),(768,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2882',765,'Eau',0,NULL,NULL,1,NULL,NULL),(769,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2883',765,'Electricité',0,NULL,NULL,1,NULL,NULL),(770,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2887',765,'Autres cautionnements versés en numéraires',0,NULL,NULL,1,NULL,NULL),(771,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29',1352,'Créances à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(772,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','290',771,'Créances commerciales',0,NULL,NULL,1,NULL,NULL),(773,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2900',772,'Clients',0,NULL,NULL,1,NULL,NULL),(774,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29000',773,'Créances en compte sur entreprises liées',0,NULL,NULL,1,NULL,NULL),(775,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29001',773,'Sur entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(776,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29002',773,'Sur clients Belgique',0,NULL,NULL,1,NULL,NULL),(777,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29003',773,'Sur clients C.E.E.',0,NULL,NULL,1,NULL,NULL),(778,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29004',773,'Sur clients exportation hors C.E.E.',0,NULL,NULL,1,NULL,NULL),(779,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29005',773,'Créances sur les coparticipants (associations momentanées)',0,NULL,NULL,1,NULL,NULL),(780,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2901',772,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(781,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29010',780,'Sur entreprises liées',0,NULL,NULL,1,NULL,NULL),(782,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29011',780,'Sur entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(783,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29012',780,'Sur clients Belgique',0,NULL,NULL,1,NULL,NULL),(784,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29013',780,'Sur clients C.E.E.',0,NULL,NULL,1,NULL,NULL),(785,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29014',780,'Sur clients exportation hors C.E.E.',0,NULL,NULL,1,NULL,NULL),(786,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2905',772,'Retenues sur garanties',0,NULL,NULL,1,NULL,NULL),(787,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2906',772,'Acomptes versés',0,NULL,NULL,1,NULL,NULL),(788,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2907',772,'Créances douteuses (à ventiler comme clients 2900)',0,NULL,NULL,1,NULL,NULL),(789,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2909',772,'Réductions de valeur actées (à ventiler comme clients 2900)',0,NULL,NULL,1,NULL,NULL),(790,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','291',771,'Autres créances',0,NULL,NULL,1,NULL,NULL),(791,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2910',790,'Créances en compte',0,NULL,NULL,1,NULL,NULL),(792,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29100',791,'Sur entreprises liées',0,NULL,NULL,1,NULL,NULL),(793,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29101',791,'Sur entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(794,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29102',791,'Sur autres débiteurs',0,NULL,NULL,1,NULL,NULL),(795,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2911',790,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(796,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29110',795,'Sur entreprises liées',0,NULL,NULL,1,NULL,NULL),(797,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29111',795,'Sur entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(798,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29112',795,'Sur autres débiteurs',0,NULL,NULL,1,NULL,NULL),(799,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2912',790,'Créances résultant de la cession d\'immobilisations données en leasing',0,NULL,NULL,1,NULL,NULL),(800,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2917',790,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(801,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2919',790,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(802,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','30',1353,'Approvisionnements - matières premières',0,NULL,NULL,1,NULL,NULL),(803,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','300',802,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(804,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','309',802,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(805,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','31',1353,'Approvsionnements et fournitures',0,NULL,NULL,1,NULL,NULL),(806,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','310',805,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(807,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3100',806,'Matières d\'approvisionnement',0,NULL,NULL,1,NULL,NULL),(808,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3101',806,'Energie, charbon, coke, mazout, essence, propane',0,NULL,NULL,1,NULL,NULL),(809,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3102',806,'Produits d\'entretien',0,NULL,NULL,1,NULL,NULL),(810,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3103',806,'Fournitures diverses et petit outillage',0,NULL,NULL,1,NULL,NULL),(811,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3104',806,'Imprimés et fournitures de bureau',0,NULL,NULL,1,NULL,NULL),(812,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3105',806,'Fournitures de services sociaux',0,NULL,NULL,1,NULL,NULL),(813,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3106',806,'Emballages commerciaux',0,NULL,NULL,1,NULL,NULL),(814,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','31060',813,'Emballages perdus',0,NULL,NULL,1,NULL,NULL),(815,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','31061',813,'Emballages récupérables',0,NULL,NULL,1,NULL,NULL),(816,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','319',805,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(817,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','32',1353,'En cours de fabrication',0,NULL,NULL,1,NULL,NULL),(818,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','320',817,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(819,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3200',818,'Produits semi-ouvrés',0,NULL,NULL,1,NULL,NULL),(820,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3201',818,'Produits en cours de fabrication',0,NULL,NULL,1,NULL,NULL),(821,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3202',818,'Travaux en cours',0,NULL,NULL,1,NULL,NULL),(822,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3205',818,'Déchets',0,NULL,NULL,1,NULL,NULL),(823,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3206',818,'Rebuts',0,NULL,NULL,1,NULL,NULL),(824,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3209',818,'Travaux en association momentanée',0,NULL,NULL,1,NULL,NULL),(825,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','329',817,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(826,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','33',1353,'Produits finis',0,NULL,NULL,1,NULL,NULL),(827,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','330',826,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(828,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3300',827,'Produits finis',0,NULL,NULL,1,NULL,NULL),(829,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','339',826,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(830,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','34',1353,'Marchandises',0,NULL,NULL,1,NULL,NULL),(831,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','340',830,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(832,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3400',831,'Groupe A',0,NULL,NULL,1,NULL,NULL),(833,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3401',831,'Groupe B',0,NULL,NULL,1,NULL,NULL),(834,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3402',831,'Groupe C',0,NULL,NULL,1,NULL,NULL),(835,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','349',830,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(836,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','35',1353,'Immeubles destinés à la vente',0,NULL,NULL,1,NULL,NULL),(837,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','350',836,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(838,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3500',837,'Immeuble A',0,NULL,NULL,1,NULL,NULL),(839,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3501',837,'Immeuble B',0,NULL,NULL,1,NULL,NULL),(840,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3502',837,'Immeuble C',0,NULL,NULL,1,NULL,NULL),(841,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','351',836,'Immeubles construits en vue de leur revente',0,NULL,NULL,1,NULL,NULL),(842,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3510',841,'Immeuble A',0,NULL,NULL,1,NULL,NULL),(843,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3511',841,'Immeuble B',0,NULL,NULL,1,NULL,NULL),(844,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3512',841,'Immeuble C',0,NULL,NULL,1,NULL,NULL),(845,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','359',836,'Réductions de valeurs actées',0,NULL,NULL,1,NULL,NULL),(846,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','36',1353,'Acomptes versés sur achats pour stocks',0,NULL,NULL,1,NULL,NULL),(847,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','360',846,'Acomptes versés (à ventiler éventuellement par catégorie)',0,NULL,NULL,1,NULL,NULL),(848,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','369',846,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(849,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','37',1353,'Commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(850,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','370',849,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(851,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','371',849,'Bénéfice pris en compte',0,NULL,NULL,1,NULL,NULL),(852,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','379',849,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(853,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','40',1354,'Créances commerciales',0,NULL,NULL,1,NULL,NULL),(854,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','400',853,'Clients',0,NULL,NULL,1,NULL,NULL),(855,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4007',854,'Rabais, remises et  ristournes à accorder et autres notes de crédit à établir',0,NULL,NULL,1,NULL,NULL),(856,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4008',854,'Créances résultant de livraisons de biens (associations momentanées)',0,NULL,NULL,1,NULL,NULL),(857,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','401',853,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(858,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4010',857,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(859,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4013',857,'Effets à l\'encaissement',0,NULL,NULL,1,NULL,NULL),(860,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4015',857,'Effets à l\'escompte',0,NULL,NULL,1,NULL,NULL),(861,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','402',853,'Clients, créances courantes, entreprises apparentées, administrateurs et gérants',0,NULL,NULL,1,NULL,NULL),(862,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4020',861,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(863,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4021',861,'Autres entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(864,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4022',861,'Administrateurs et gérants d\'entreprise',0,NULL,NULL,1,NULL,NULL),(865,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','403',853,'Effets à recevoir sur entreprises apparentées et administrateurs et gérants',0,NULL,NULL,1,NULL,NULL),(866,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4030',865,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(867,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4031',865,'Autres entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(868,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4032',865,'Administrateurs et gérants de l\'entreprise',0,NULL,NULL,1,NULL,NULL),(869,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','404',853,'Produits à recevoir (factures à établir)',0,NULL,NULL,1,NULL,NULL),(870,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','405',853,'Clients : retenues sur garanties',0,NULL,NULL,1,NULL,NULL),(871,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','406',853,'Acomptes versés',0,NULL,NULL,1,NULL,NULL),(872,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','407',853,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(873,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','408',853,'Compensation clients',0,NULL,NULL,1,NULL,NULL),(874,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','409',853,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(875,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','41',1354,'Autres créances',0,NULL,NULL,1,NULL,NULL),(876,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','410',875,'Capital appelé, non versé',0,NULL,NULL,1,NULL,NULL),(877,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4100',876,'Appels de fonds',0,NULL,NULL,1,NULL,NULL),(878,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4101',876,'Actionnaires défaillants',0,NULL,NULL,1,NULL,NULL),(879,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','411',875,'T.V.A. à récupérer',0,NULL,NULL,1,NULL,NULL),(880,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4110',879,'T.V.A. due',0,NULL,NULL,1,NULL,NULL),(881,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4111',879,'T.V.A. déductible',0,NULL,NULL,1,NULL,NULL),(882,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4112',879,'Compte courant administration T.V.A.',0,NULL,NULL,1,NULL,NULL),(883,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4118',879,'Taxe d\'égalisation due',0,NULL,NULL,1,NULL,NULL),(884,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','412',875,'Impôts et versements fiscaux à récupérer',0,NULL,NULL,1,NULL,NULL),(885,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4120',884,'Impôts belges sur le résultat',0,NULL,NULL,1,NULL,NULL),(886,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4125',884,'Autres impôts belges',0,NULL,NULL,1,NULL,NULL),(887,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4128',884,'Impôts étrangers',0,NULL,NULL,1,NULL,NULL),(888,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','414',875,'Produits à recevoir',0,NULL,NULL,1,NULL,NULL),(889,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','416',875,'Créances diverses',0,NULL,NULL,1,NULL,NULL),(890,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4160',889,'Associés (compte d\'apport en société)',0,NULL,NULL,1,NULL,NULL),(891,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4161',889,'Avances et prêts au personnel',0,NULL,NULL,1,NULL,NULL),(892,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4162',889,'Compte courant des associés en S.P.R.L.',0,NULL,NULL,1,NULL,NULL),(893,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4163',889,'Compte courant des administrateurs et gérants',0,NULL,NULL,1,NULL,NULL),(894,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4164',889,'Créances sur sociétés apparentées',0,NULL,NULL,1,NULL,NULL),(895,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4166',889,'Emballages et matériel à rendre',0,NULL,NULL,1,NULL,NULL),(896,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4167',889,'Etat et établissements publics',0,NULL,NULL,1,NULL,NULL),(897,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','41670',896,'Subsides à recevoir',0,NULL,NULL,1,NULL,NULL),(898,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','41671',896,'Autres créances',0,NULL,NULL,1,NULL,NULL),(899,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4168',889,'Rabais, ristournes et remises à obtenir et autres avoirs non encore reçus',0,NULL,NULL,1,NULL,NULL),(900,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','417',875,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(901,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','418',875,'Cautionnements versés en numéraires',0,NULL,NULL,1,NULL,NULL),(902,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','419',875,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(903,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','42',1354,'Dettes à plus d\'un an échéant dans l\'année',0,NULL,NULL,1,NULL,NULL),(904,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','420',903,'Emprunts subordonnés',0,NULL,NULL,1,NULL,NULL),(905,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4200',904,'Convertibles',0,NULL,NULL,1,NULL,NULL),(906,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4201',904,'Non convertibles',0,NULL,NULL,1,NULL,NULL),(907,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','421',903,'Emprunts obligataires non subordonnés',0,NULL,NULL,1,NULL,NULL),(908,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4210',907,'Convertibles',0,NULL,NULL,1,NULL,NULL),(909,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4211',907,'Non convertibles',0,NULL,NULL,1,NULL,NULL),(910,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','422',903,'Dettes de location-financement et assimilées',0,NULL,NULL,1,NULL,NULL),(911,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4220',910,'Financement de biens immobiliers',0,NULL,NULL,1,NULL,NULL),(912,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4221',910,'Financement de biens mobiliers',0,NULL,NULL,1,NULL,NULL),(913,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','423',903,'Etablissements de crédit',0,NULL,NULL,1,NULL,NULL),(914,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4230',913,'Dettes en compte',0,NULL,NULL,1,NULL,NULL),(915,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4231',913,'Promesses',0,NULL,NULL,1,NULL,NULL),(916,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4232',913,'Crédits d\'acceptation',0,NULL,NULL,1,NULL,NULL),(917,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','424',903,'Autres emprunts',0,NULL,NULL,1,NULL,NULL),(918,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','425',903,'Dettes commerciales',0,NULL,NULL,1,NULL,NULL),(919,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4250',918,'Fournisseurs',0,NULL,NULL,1,NULL,NULL),(920,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4251',918,'Effets à payer',0,NULL,NULL,1,NULL,NULL),(921,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','426',903,'Cautionnements reçus en numéraires',0,NULL,NULL,1,NULL,NULL),(922,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','429',903,'Dettes diverses',0,NULL,NULL,1,NULL,NULL),(923,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4290',922,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(924,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4291',922,'Entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(925,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4292',922,'Administrateurs, gérants, associés',0,NULL,NULL,1,NULL,NULL),(926,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4299',922,'Autres dettes',0,NULL,NULL,1,NULL,NULL),(927,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','43',1354,'Dettes financières',0,NULL,NULL,1,NULL,NULL),(928,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','430',927,'Etablissements de crédit. Emprunts en compte à terme fixe',0,NULL,NULL,1,NULL,NULL),(929,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','431',927,'Etablissements de crédit. Promesses',0,NULL,NULL,1,NULL,NULL),(930,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','432',927,'Etablissements de crédit. Crédits d\'acceptation',0,NULL,NULL,1,NULL,NULL),(931,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','433',927,'Etablissements de crédit. Dettes en compte courant',0,NULL,NULL,1,NULL,NULL),(932,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','439',927,'Autres emprunts',0,NULL,NULL,1,NULL,NULL),(933,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44',1354,'Dettes commerciales',0,NULL,NULL,1,NULL,NULL),(934,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','440',933,'Fournisseurs',0,NULL,NULL,1,NULL,NULL),(935,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4400',934,'Entreprises apparentées',0,NULL,NULL,1,NULL,NULL),(936,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44000',935,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(937,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44001',935,'Entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(938,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4401',934,'Fournisseurs ordinaires',0,NULL,NULL,1,NULL,NULL),(939,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44010',938,'Fournisseurs belges',0,NULL,NULL,1,NULL,NULL),(940,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44011',938,'Fournisseurs CEE',0,NULL,NULL,1,NULL,NULL),(941,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44012',938,'Fournisseurs importation',0,NULL,NULL,1,NULL,NULL),(942,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4402',934,'Dettes envers les coparticipants (associations momentanées)',0,NULL,NULL,1,NULL,NULL),(943,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4403',934,'Fournisseurs - retenues de garanties',0,NULL,NULL,1,NULL,NULL),(944,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','441',933,'Effets à payer',0,NULL,NULL,1,NULL,NULL),(945,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4410',944,'Entreprises apparentées',0,NULL,NULL,1,NULL,NULL),(946,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44100',945,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(947,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44101',945,'Entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(948,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4411',944,'Fournisseurs ordinaires',0,NULL,NULL,1,NULL,NULL),(949,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44110',948,'Fournisseurs belges',0,NULL,NULL,1,NULL,NULL),(950,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44111',948,'Fournisseurs CEE',0,NULL,NULL,1,NULL,NULL),(951,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44112',948,'Fournisseurs importation',0,NULL,NULL,1,NULL,NULL),(952,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','444',933,'Factures à recevoir',0,NULL,NULL,1,NULL,NULL),(953,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','446',933,'Acomptes reçus',0,NULL,NULL,1,NULL,NULL),(954,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','448',933,'Compensations fournisseurs',0,NULL,NULL,1,NULL,NULL),(955,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45',1354,'Dettes fiscales, salariales et sociales',0,NULL,NULL,1,NULL,NULL),(956,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','450',955,'Dettes fiscales estimées',0,NULL,NULL,1,NULL,NULL),(957,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4501',956,'Impôts sur le résultat',0,NULL,NULL,1,NULL,NULL),(958,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4505',956,'Autres impôts en Belgique',0,NULL,NULL,1,NULL,NULL),(959,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4508',956,'Impôts à l\'étranger',0,NULL,NULL,1,NULL,NULL),(960,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','451',955,'T.V.A. à payer',0,NULL,NULL,1,NULL,NULL),(961,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4510',960,'T.V.A. due',0,NULL,NULL,1,NULL,NULL),(962,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4511',960,'T.V.A. déductible',0,NULL,NULL,1,NULL,NULL),(963,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4512',960,'Compte courant administration T.V.A.',0,NULL,NULL,1,NULL,NULL),(964,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4518',960,'Taxe d\'égalisation due',0,NULL,NULL,1,NULL,NULL),(965,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','452',955,'Impôts et taxes à payer',0,NULL,NULL,1,NULL,NULL),(966,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4520',965,'Autres impôts sur le résultat',0,NULL,NULL,1,NULL,NULL),(967,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4525',965,'Autres impôts et taxes en Belgique',0,NULL,NULL,1,NULL,NULL),(968,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45250',967,'Précompte immobilier',0,NULL,NULL,1,NULL,NULL),(969,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45251',967,'Impôts communaux à payer',0,NULL,NULL,1,NULL,NULL),(970,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45252',967,'Impôts provinciaux à payer',0,NULL,NULL,1,NULL,NULL),(971,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45253',967,'Autres impôts et taxes à payer',0,NULL,NULL,1,NULL,NULL),(972,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4528',965,'Impôts et taxes à l\'étranger',0,NULL,NULL,1,NULL,NULL),(973,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','453',955,'Précomptes retenus',0,NULL,NULL,1,NULL,NULL),(974,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4530',973,'Précompte professionnel retenu sur rémunérations',0,NULL,NULL,1,NULL,NULL),(975,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4531',973,'Précompte professionnel retenu sur tantièmes',0,NULL,NULL,1,NULL,NULL),(976,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4532',973,'Précompte mobilier retenu sur dividendes attribués',0,NULL,NULL,1,NULL,NULL),(977,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4533',973,'Précompte mobilier retenu sur intérêts payés',0,NULL,NULL,1,NULL,NULL),(978,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4538',973,'Autres précomptes retenus',0,NULL,NULL,1,NULL,NULL),(979,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','454',955,'Office National de la Sécurité Sociale',0,NULL,NULL,1,NULL,NULL),(980,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4540',979,'Arriérés',0,NULL,NULL,1,NULL,NULL),(981,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4541',979,'1er trimestre',0,NULL,NULL,1,NULL,NULL),(982,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4542',979,'2ème trimestre',0,NULL,NULL,1,NULL,NULL),(983,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4543',979,'3ème trimestre',0,NULL,NULL,1,NULL,NULL),(984,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4544',979,'4ème trimestre',0,NULL,NULL,1,NULL,NULL),(985,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','455',955,'Rémunérations',0,NULL,NULL,1,NULL,NULL),(986,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4550',985,'Administrateurs,  gérants et commissaires (non réviseurs)',0,NULL,NULL,1,NULL,NULL),(987,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4551',985,'Direction',0,NULL,NULL,1,NULL,NULL),(988,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4552',985,'Employés',0,NULL,NULL,1,NULL,NULL),(989,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4553',985,'Ouvriers',0,NULL,NULL,1,NULL,NULL),(990,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','456',955,'Pécules de vacances',0,NULL,NULL,1,NULL,NULL),(991,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4560',990,'Direction',0,NULL,NULL,1,NULL,NULL),(992,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4561',990,'Employés',0,NULL,NULL,1,NULL,NULL),(993,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4562',990,'Ouvriers',0,NULL,NULL,1,NULL,NULL),(994,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','459',955,'Autres dettes sociales',0,NULL,NULL,1,NULL,NULL),(995,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4590',994,'Provision pour gratifications de fin d\'année',0,NULL,NULL,1,NULL,NULL),(996,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4591',994,'Départs de personnel',0,NULL,NULL,1,NULL,NULL),(997,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4592',994,'Oppositions sur rémunérations',0,NULL,NULL,1,NULL,NULL),(998,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4593',994,'Assurances relatives au personnel',0,NULL,NULL,1,NULL,NULL),(999,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45930',998,'Assurance loi',0,NULL,NULL,1,NULL,NULL),(1000,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45931',998,'Assurance salaire garanti',0,NULL,NULL,1,NULL,NULL),(1001,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45932',998,'Assurance groupe',0,NULL,NULL,1,NULL,NULL),(1002,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45933',998,'Assurances individuelles',0,NULL,NULL,1,NULL,NULL),(1003,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4594',994,'Caisse d\'assurances sociales pour travailleurs indépendants',0,NULL,NULL,1,NULL,NULL),(1004,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4597',994,'Dettes et provisions sociales diverses',0,NULL,NULL,1,NULL,NULL),(1005,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','46',1354,'Acomptes reçus sur commande',0,NULL,NULL,1,NULL,NULL),(1006,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','47',1354,'Dettes découlant de l\'affectation des résultats',0,NULL,NULL,1,NULL,NULL),(1007,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','470',1006,'Dividendes et tantièmes d\'exercices antérieurs',0,NULL,NULL,1,NULL,NULL),(1008,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','471',1006,'Dividendes de l\'exercice',0,NULL,NULL,1,NULL,NULL),(1009,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','472',1006,'Tantièmes de l\'exercice',0,NULL,NULL,1,NULL,NULL),(1010,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','473',1006,'Autres allocataires',0,NULL,NULL,1,NULL,NULL),(1011,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','48',4,'Dettes diverses',0,NULL,NULL,1,NULL,NULL),(1012,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','480',1011,'Obligations et coupons échus',0,NULL,NULL,1,NULL,NULL),(1013,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','481',1011,'Actionnaires - capital à rembourser',0,NULL,NULL,1,NULL,NULL),(1014,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','482',1011,'Participation du personnel à payer',0,NULL,NULL,1,NULL,NULL),(1015,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','483',1011,'Acomptes reçus d\'autres tiers à moins d\'un an',0,NULL,NULL,1,NULL,NULL),(1016,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','486',1011,'Emballages et matériel consignés',0,NULL,NULL,1,NULL,NULL),(1017,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','488',1011,'Cautionnements reçus en numéraires',0,NULL,NULL,1,NULL,NULL),(1018,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','489',1011,'Autres dettes diverses',0,NULL,NULL,1,NULL,NULL),(1019,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49',1354,'Comptes de régularisation et compte d\'attente',0,NULL,NULL,1,NULL,NULL),(1020,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','490',1019,'Charges à reporter (à subdiviser par catégorie de charges)',0,NULL,NULL,1,NULL,NULL),(1021,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','491',1019,'Produits acquis',0,NULL,NULL,1,NULL,NULL),(1022,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4910',1021,'Produits d\'exploitation',0,NULL,NULL,1,NULL,NULL),(1023,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49100',1022,'Ristournes et rabais à obtenir',0,NULL,NULL,1,NULL,NULL),(1024,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49101',1022,'Commissions à obtenir',0,NULL,NULL,1,NULL,NULL),(1025,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49102',1022,'Autres produits d\'exploitation (redevances par exemple)',0,NULL,NULL,1,NULL,NULL),(1026,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4911',1021,'Produits financiers',0,NULL,NULL,1,NULL,NULL),(1027,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49110',1026,'Intérêts courus et non échus sur prêts et débits',0,NULL,NULL,1,NULL,NULL),(1028,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49111',1026,'Autres produits financiers',0,NULL,NULL,1,NULL,NULL),(1029,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','492',1019,'Charges à imputer (à subdiviser par catégorie de charges)',0,NULL,NULL,1,NULL,NULL),(1030,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','493',1019,'Produits à reporter',0,NULL,NULL,1,NULL,NULL),(1031,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4930',1030,'Produits d\'exploitation à reporter',0,NULL,NULL,1,NULL,NULL),(1032,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4931',1030,'Produits financiers à reporter',0,NULL,NULL,1,NULL,NULL),(1033,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','499',1019,'Comptes d\'attente',0,NULL,NULL,1,NULL,NULL),(1034,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4990',1033,'Compte d\'attente',0,NULL,NULL,1,NULL,NULL),(1035,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4991',1033,'Compte de répartition périodique des charges',0,NULL,NULL,1,NULL,NULL),(1036,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4999',1033,'Transferts d\'exercice',0,NULL,NULL,1,NULL,NULL),(1037,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','50',1355,'Actions propres',0,NULL,NULL,1,NULL,NULL),(1038,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','51',1355,'Actions et parts',0,NULL,NULL,1,NULL,NULL),(1039,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','510',1038,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(1040,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','511',1038,'Montants non appelés',0,NULL,NULL,1,NULL,NULL),(1041,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','519',1038,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(1042,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','52',1355,'Titres à revenus fixes',0,NULL,NULL,1,NULL,NULL),(1043,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','520',1042,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(1044,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','529',1042,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(1045,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','53',1355,'Dépots à terme',0,NULL,NULL,1,NULL,NULL),(1046,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','530',1045,'De plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1047,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','531',1045,'De plus d\'un mois et à un an au plus',0,NULL,NULL,1,NULL,NULL),(1048,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','532',1045,'d\'un mois au plus',0,NULL,NULL,1,NULL,NULL),(1049,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','539',1045,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(1050,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','54',1355,'Valeurs échues à l\'encaissement',0,NULL,NULL,1,NULL,NULL),(1051,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','540',1050,'Chèques à encaisser',0,NULL,NULL,1,NULL,NULL),(1052,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','541',1050,'Coupons à encaisser',0,NULL,NULL,1,NULL,NULL),(1053,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','55',1355,'Etablissements de crédit - Comptes ouverts auprès des divers établissements.',0,NULL,NULL,1,NULL,NULL),(1054,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','550',1053,'Comptes courants',0,NULL,NULL,1,NULL,NULL),(1055,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','551',1053,'Chèques émis',0,NULL,NULL,1,NULL,NULL),(1056,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','559',1053,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(1057,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','56',1355,'Office des chèques postaux',0,NULL,NULL,1,NULL,NULL),(1058,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','560',1057,'Compte courant',0,NULL,NULL,1,NULL,NULL),(1059,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','561',1057,'Chèques émis',0,NULL,NULL,1,NULL,NULL),(1060,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','57',1355,'Caisses',0,NULL,NULL,1,NULL,NULL),(1061,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','570',1060,'à 577 Caisses - espèces ( 0 - centrale ; 7 - succursales et agences)',0,NULL,NULL,1,NULL,NULL),(1062,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','578',1060,'Caisses - timbres ( 0 - fiscaux ; 1 - postaux)',0,NULL,NULL,1,NULL,NULL),(1063,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','58',1355,'Virements internes',0,NULL,NULL,1,NULL,NULL),(1064,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','60',1356,'Approvisionnements et marchandises',0,NULL,NULL,1,NULL,NULL),(1065,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','600',1064,'Achats de matières premières',0,NULL,NULL,1,NULL,NULL),(1066,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','601',1064,'Achats de fournitures',0,NULL,NULL,1,NULL,NULL),(1067,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','602',1064,'Achats de services, travaux et études',0,NULL,NULL,1,NULL,NULL),(1068,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','603',1064,'Sous-traitances générales',0,NULL,NULL,1,NULL,NULL),(1069,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','604',1064,'Achats de marchandises',0,NULL,NULL,1,NULL,NULL),(1070,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','605',1064,'Achats d\'immeubles destinés à la revente',0,NULL,NULL,1,NULL,NULL),(1071,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','608',1064,'Remises , ristournes et rabais obtenus sur achats',0,NULL,NULL,1,NULL,NULL),(1072,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','609',1064,'Variations de stocks',0,NULL,NULL,1,NULL,NULL),(1073,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6090',1072,'De matières premières',0,NULL,NULL,1,NULL,NULL),(1074,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6091',1072,'De fournitures',0,NULL,NULL,1,NULL,NULL),(1075,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6094',1072,'De marchandises',0,NULL,NULL,1,NULL,NULL),(1076,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6095',1072,'d\'immeubles destinés à la vente',0,NULL,NULL,1,NULL,NULL),(1077,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61',1356,'Services et biens divers',0,NULL,NULL,1,NULL,NULL),(1078,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','610',1077,'Loyers et charges locatives',0,NULL,NULL,1,NULL,NULL),(1079,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6100',1078,'Loyers divers',0,NULL,NULL,1,NULL,NULL),(1080,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6101',1078,'Charges locatives (assurances, frais de confort,etc)',0,NULL,NULL,1,NULL,NULL),(1081,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','611',1077,'Entretien et réparation (fournitures et prestations)',0,NULL,NULL,1,NULL,NULL),(1082,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','612',1077,'Fournitures faites à l\'entreprise',0,NULL,NULL,1,NULL,NULL),(1083,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6120',1082,'Eau, gaz, électricité, vapeur',0,NULL,NULL,1,NULL,NULL),(1084,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61200',1083,'Eau',0,NULL,NULL,1,NULL,NULL),(1085,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61201',1083,'Gaz',0,NULL,NULL,1,NULL,NULL),(1086,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61202',1083,'Electricité',0,NULL,NULL,1,NULL,NULL),(1087,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61203',1083,'Vapeur',0,NULL,NULL,1,NULL,NULL),(1088,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6121',1082,'Téléphone, télégrammes, télex, téléfax, frais postaux',0,NULL,NULL,1,NULL,NULL),(1089,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61210',1088,'Téléphone',0,NULL,NULL,1,NULL,NULL),(1090,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61211',1088,'Télégrammes',0,NULL,NULL,1,NULL,NULL),(1091,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61212',1088,'Télex et téléfax',0,NULL,NULL,1,NULL,NULL),(1092,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61213',1088,'Frais postaux',0,NULL,NULL,1,NULL,NULL),(1093,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6122',1082,'Livres, bibliothèque',0,NULL,NULL,1,NULL,NULL),(1094,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6123',1082,'Imprimés et fournitures de bureau (si non comptabilisé au 601)',0,NULL,NULL,1,NULL,NULL),(1095,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','613',1077,'Rétributions de tiers',0,NULL,NULL,1,NULL,NULL),(1096,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6130',1095,'Redevances et royalties',0,NULL,NULL,1,NULL,NULL),(1097,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61300',1096,'Redevances pour brevets, licences, marques et accessoires',0,NULL,NULL,1,NULL,NULL),(1098,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61301',1096,'Autres redevances (procédés de fabrication)',0,NULL,NULL,1,NULL,NULL),(1099,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6131',1095,'Assurances non relatives au personnel',0,NULL,NULL,1,NULL,NULL),(1100,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61310',1099,'Assurance incendie',0,NULL,NULL,1,NULL,NULL),(1101,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61311',1099,'Assurance vol',0,NULL,NULL,1,NULL,NULL),(1102,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61312',1099,'Assurance autos',0,NULL,NULL,1,NULL,NULL),(1103,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61313',1099,'Assurance crédit',0,NULL,NULL,1,NULL,NULL),(1104,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61314',1099,'Assurances frais généraux',0,NULL,NULL,1,NULL,NULL),(1105,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6132',1095,'Divers',0,NULL,NULL,1,NULL,NULL),(1106,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61320',1105,'Commissions aux tiers',0,NULL,NULL,1,NULL,NULL),(1107,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61321',1105,'Honoraires d\'avocats, d\'experts, etc',0,NULL,NULL,1,NULL,NULL),(1108,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61322',1105,'Cotisations aux groupements professionnels',0,NULL,NULL,1,NULL,NULL),(1109,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61323',1105,'Dons, libéralités, etc',0,NULL,NULL,1,NULL,NULL),(1110,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61324',1105,'Frais de contentieux',0,NULL,NULL,1,NULL,NULL),(1111,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61325',1105,'Publications légales',0,NULL,NULL,1,NULL,NULL),(1112,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6133',1095,'Transports et déplacements',0,NULL,NULL,1,NULL,NULL),(1113,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61330',1112,'Transports de personnel',0,NULL,NULL,1,NULL,NULL),(1114,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61331',1112,'Voyages, déplacements et représentations',0,NULL,NULL,1,NULL,NULL),(1115,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6134',1095,'Personnel intérimaire',0,NULL,NULL,1,NULL,NULL),(1116,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','614',1077,'Annonces, publicité, propagande et documentation',0,NULL,NULL,1,NULL,NULL),(1117,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6140',1116,'Annonces et insertions',0,NULL,NULL,1,NULL,NULL),(1118,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6141',1116,'Catalogues et imprimés',0,NULL,NULL,1,NULL,NULL),(1119,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6142',1116,'Echantillons',0,NULL,NULL,1,NULL,NULL),(1120,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6143',1116,'Foires et expositions',0,NULL,NULL,1,NULL,NULL),(1121,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6144',1116,'Primes',0,NULL,NULL,1,NULL,NULL),(1122,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6145',1116,'Cadeaux à la clientèle',0,NULL,NULL,1,NULL,NULL),(1123,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6146',1116,'Missions et réceptions',0,NULL,NULL,1,NULL,NULL),(1124,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6147',1116,'Documentation',0,NULL,NULL,1,NULL,NULL),(1125,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','615',1077,'Sous-traitants',0,NULL,NULL,1,NULL,NULL),(1126,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6150',1125,'Sous-traitants pour activités propres',0,NULL,NULL,1,NULL,NULL),(1127,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6151',1125,'Sous-traitants d\'associations momentanées (coparticipants)',0,NULL,NULL,1,NULL,NULL),(1128,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6152',1125,'Quote-part bénéficiaire des coparticipants',0,NULL,NULL,1,NULL,NULL),(1129,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','617',1077,'Personnel intérimaire et personnes mises à la disposition de l\'entreprise',0,NULL,NULL,1,NULL,NULL),(1130,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','618',1077,'Rémunérations, primes pour assurances extralégales, pensions de retraite et de survie des administrateurs, gérants et associés actifs qui ne sont pas attribuées en vertu d\'un contrat de travail',0,NULL,NULL,1,NULL,NULL),(1131,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62',1356,'Rémunérations, charges sociales et pensions',0,NULL,NULL,1,NULL,NULL),(1132,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','620',1131,'Rémunérations et avantages sociaux directs',0,NULL,NULL,1,NULL,NULL),(1133,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6200',1132,'Administrateurs ou gérants',0,NULL,NULL,1,NULL,NULL),(1134,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6201',1132,'Personnel de direction',0,NULL,NULL,1,NULL,NULL),(1135,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6202',1132,'Employés',0,NULL,NULL,1,NULL,NULL),(1136,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6203',1132,'Ouvriers',0,NULL,NULL,1,NULL,NULL),(1137,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6204',1132,'Autres membres du personnel',0,NULL,NULL,1,NULL,NULL),(1138,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','621',1131,'Cotisations patronales d\'assurances sociales',0,NULL,NULL,1,NULL,NULL),(1139,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6210',1138,'Sur salaires',0,NULL,NULL,1,NULL,NULL),(1140,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6211',1138,'Sur appointements et commissions',0,NULL,NULL,1,NULL,NULL),(1141,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','622',1131,'Primes patronales pour assurances extralégales',0,NULL,NULL,1,NULL,NULL),(1142,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','623',1131,'Autres frais de personnel',0,NULL,NULL,1,NULL,NULL),(1143,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6230',1142,'Assurances du personnel',0,NULL,NULL,1,NULL,NULL),(1144,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62300',1143,'Assurances loi, responsabilité civile, chemin du travail',0,NULL,NULL,1,NULL,NULL),(1145,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62301',1143,'Assurance salaire garanti',0,NULL,NULL,1,NULL,NULL),(1146,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62302',1143,'Assurances individuelles',0,NULL,NULL,1,NULL,NULL),(1147,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6231',1142,'Charges sociales diverses',0,NULL,NULL,1,NULL,NULL),(1148,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62310',1147,'Jours fériés payés',0,NULL,NULL,1,NULL,NULL),(1149,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62311',1147,'Salaire hebdomadaire garanti',0,NULL,NULL,1,NULL,NULL),(1150,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62312',1147,'Allocations familiales complémentaires',0,NULL,NULL,1,NULL,NULL),(1151,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6232',1142,'Charges sociales des administrateurs, gérants et commissaires',0,NULL,NULL,1,NULL,NULL),(1152,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62320',1151,'Allocations familiales complémentaires pour non salariés',0,NULL,NULL,1,NULL,NULL),(1153,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62321',1151,'Lois sociales pour indépendants',0,NULL,NULL,1,NULL,NULL),(1154,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62322',1151,'Divers',0,NULL,NULL,1,NULL,NULL),(1155,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','624',1131,'Pensions de retraite et de survie',0,NULL,NULL,1,NULL,NULL),(1156,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6240',1155,'Administrateurs et gérants',0,NULL,NULL,1,NULL,NULL),(1157,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6241',1155,'Personnel',0,NULL,NULL,1,NULL,NULL),(1158,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','625',1131,'Provision pour pécule de vacances',0,NULL,NULL,1,NULL,NULL),(1159,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6250',1158,'Dotations',0,NULL,NULL,1,NULL,NULL),(1160,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6251',1158,'Utilisations et reprises',0,NULL,NULL,1,NULL,NULL),(1161,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','63',1356,'Amortissements, réductions de valeur et provisions pour risques et charges',0,NULL,NULL,1,NULL,NULL),(1162,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','630',1161,'Dotations aux amortissements et aux réductions de valeur sur immobilisations',0,NULL,NULL,1,NULL,NULL),(1163,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6300',1162,'Dotations aux amortissements sur frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(1164,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6301',1162,'Dotations aux amortissements sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1165,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6302',1162,'Dotations aux amortissements sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1166,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6308',1162,'Dotations aux réductions de valeur sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1167,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6309',1162,'Dotations aux réductions de valeur sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1168,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','631',1161,'Réductions de valeur sur stocks',0,NULL,NULL,1,NULL,NULL),(1169,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6310',1168,'Dotations',0,NULL,NULL,1,NULL,NULL),(1170,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6311',1168,'Reprises',0,NULL,NULL,1,NULL,NULL),(1171,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','632',1161,'Réductions de valeur sur commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1172,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6320',1171,'Dotations',0,NULL,NULL,1,NULL,NULL),(1173,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6321',1171,'Reprises',0,NULL,NULL,1,NULL,NULL),(1174,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','633',1161,'Réductions de valeur sur créances commerciales à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1175,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6330',1174,'Dotations',0,NULL,NULL,1,NULL,NULL),(1176,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6331',1174,'Reprises',0,NULL,NULL,1,NULL,NULL),(1177,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','634',1161,'Réductions de valeur sur créances commerciales à un an au plus',0,NULL,NULL,1,NULL,NULL),(1178,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6340',1177,'Dotations',0,NULL,NULL,1,NULL,NULL),(1179,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6341',1177,'Reprises',0,NULL,NULL,1,NULL,NULL),(1180,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','635',1161,'Provisions pour pensions et obligations similaires',0,NULL,NULL,1,NULL,NULL),(1181,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6350',1180,'Dotations',0,NULL,NULL,1,NULL,NULL),(1182,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6351',1180,'Utilisations et reprises',0,NULL,NULL,1,NULL,NULL),(1183,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','636',11613,'Provisions pour grosses réparations et gros entretiens',0,NULL,NULL,1,NULL,NULL),(1184,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6360',1183,'Dotations',0,NULL,NULL,1,NULL,NULL),(1185,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6361',1183,'Utilisations et reprises',0,NULL,NULL,1,NULL,NULL),(1186,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','637',1161,'Provisions pour autres risques et charges',0,NULL,NULL,1,NULL,NULL),(1187,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6370',1186,'Dotations',0,NULL,NULL,1,NULL,NULL),(1188,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6371',1186,'Utilisations et reprises',0,NULL,NULL,1,NULL,NULL),(1189,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64',1356,'Autres charges d\'exploitation',0,NULL,NULL,1,NULL,NULL),(1190,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','640',1189,'Charges fiscales d\'exploitation',0,NULL,NULL,1,NULL,NULL),(1191,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6400',1190,'Taxes et impôts directs',0,NULL,NULL,1,NULL,NULL),(1192,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64000',1191,'Taxes sur autos et camions',0,NULL,NULL,1,NULL,NULL),(1193,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6401',1190,'Taxes et impôts indirects',0,NULL,NULL,1,NULL,NULL),(1194,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64010',1193,'Timbres fiscaux pris en charge par la firme',0,NULL,NULL,1,NULL,NULL),(1195,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64011',1193,'Droits d\'enregistrement',0,NULL,NULL,1,NULL,NULL),(1196,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64012',1193,'T.V.A. non déductible',0,NULL,NULL,1,NULL,NULL),(1197,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6402',1190,'Impôts provinciaux et communaux',0,NULL,NULL,1,NULL,NULL),(1198,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64020',1197,'Taxe sur la force motrice',0,NULL,NULL,1,NULL,NULL),(1199,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64021',1197,'Taxe sur le personnel occupé',0,NULL,NULL,1,NULL,NULL),(1200,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6403',1190,'Taxes diverses',0,NULL,NULL,1,NULL,NULL),(1201,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','641',1189,'Moins-values sur réalisations courantes d\'immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1202,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','642',1189,'Moins-values sur réalisations de créances commerciales',0,NULL,NULL,1,NULL,NULL),(1203,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','643',1189,'à 648 Charges d\'exploitations diverses',0,NULL,NULL,1,NULL,NULL),(1204,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','649',1189,'Charges d\'exploitation portées à l\'actif au titre de restructuration',0,NULL,NULL,1,NULL,NULL),(1205,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','65',1356,'Charges financières',0,NULL,NULL,1,NULL,NULL),(1206,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','650',1205,'Charges des dettes',0,NULL,NULL,1,NULL,NULL),(1207,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6500',1206,'Intérêts, commissions et frais afférents aux dettes',0,NULL,NULL,1,NULL,NULL),(1208,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6501',1206,'Amortissements des agios et frais d\'émission d\'emprunts',0,NULL,NULL,1,NULL,NULL),(1209,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6502',1206,'Autres charges de dettes',0,NULL,NULL,1,NULL,NULL),(1210,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6503',1206,'Intérêts intercalaires portés à l\'actif',0,NULL,NULL,1,NULL,NULL),(1211,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','651',1205,'Réductions de valeur sur actifs circulants',0,NULL,NULL,1,NULL,NULL),(1212,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6510',1211,'Dotations',0,NULL,NULL,1,NULL,NULL),(1213,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6511',1211,'Reprises',0,NULL,NULL,1,NULL,NULL),(1214,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','652',1205,'Moins-values sur réalisation d\'actifs circulants',0,NULL,NULL,1,NULL,NULL),(1215,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','653',1205,'Charges d\'escompte de créances',0,NULL,NULL,1,NULL,NULL),(1216,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','654',1205,'Différences de change',0,NULL,NULL,1,NULL,NULL),(1217,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','655',1205,'Ecarts de conversion des devises',0,NULL,NULL,1,NULL,NULL),(1218,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','656',1205,'Frais de banques, de chèques postaux',0,NULL,NULL,1,NULL,NULL),(1219,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','657',1205,'Commissions sur ouvertures de crédit, cautions et avals',0,NULL,NULL,1,NULL,NULL),(1220,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','658',1205,'Frais de vente des titres',0,NULL,NULL,1,NULL,NULL),(1221,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','66',1356,'Charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(1222,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','660',1221,'Amortissements et réductions de valeur exceptionnels',0,NULL,NULL,1,NULL,NULL),(1223,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6600',1222,'Sur frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(1224,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6601',1222,'Sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1225,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6602',1222,'Sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1226,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','661',1221,'Réductions de valeur sur immobilisations financières',0,NULL,NULL,1,NULL,NULL),(1227,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','662',1221,'Provisions pour risques et charges exceptionnels',0,NULL,NULL,1,NULL,NULL),(1228,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','663',1221,'Moins-values sur réalisation d\'actifs immobilisés',0,NULL,NULL,1,NULL,NULL),(1229,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6630',1228,'Sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1230,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6631',1228,'Sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1231,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6632',1228,'Sur immobilisations détenues en location-financement et droits similaires',0,NULL,NULL,1,NULL,NULL),(1232,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6633',1228,'Sur immobilisations financières',0,NULL,NULL,1,NULL,NULL),(1233,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6634',1228,'Sur immeubles acquis ou construits en vue de la revente',0,NULL,NULL,1,NULL,NULL),(1234,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','664',1221,'à 668 Autres charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(1236,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','665',1221,'Différence de charge',0,NULL,NULL,1,NULL,NULL),(1237,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','669',1221,'Charges exceptionnelles transférées à l\'actif en frais de restructuration',0,NULL,NULL,1,NULL,NULL),(1238,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','67',1356,'Impôts sur le résultat',0,NULL,NULL,1,NULL,NULL),(1239,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','670',1238,'Impôts belges sur le résultat de l\'exercice',0,NULL,NULL,1,NULL,NULL),(1240,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6700',1239,'Impôts et précomptes dus ou versés',0,NULL,NULL,1,NULL,NULL),(1241,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6701',1239,'Excédent de versements d\'impôts et précomptes porté à l\'actif',0,NULL,NULL,1,NULL,NULL),(1242,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6702',1239,'Charges fiscales estimées',0,NULL,NULL,1,NULL,NULL),(1243,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','671',1238,'Impôts belges sur le résultat d\'exercices antérieurs',0,NULL,NULL,1,NULL,NULL),(1244,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6710',1243,'Suppléments d\'impôts dus ou versés',0,NULL,NULL,1,NULL,NULL),(1245,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6711',1243,'Suppléments d\'impôts estimés',0,NULL,NULL,1,NULL,NULL),(1246,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6712',1243,'Provisions fiscales constituées',0,NULL,NULL,1,NULL,NULL),(1247,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','672',1238,'Impôts étrangers sur le résultat de l\'exercice',0,NULL,NULL,1,NULL,NULL),(1248,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','673',1238,'Impôts étrangers sur le résultat d\'exercices antérieurs',0,NULL,NULL,1,NULL,NULL),(1249,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','68',1356,'Transferts aux réserves immunisées',0,NULL,NULL,1,NULL,NULL),(1250,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','69',1356,'Affectation des résultats',0,NULL,NULL,1,NULL,NULL),(1251,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','690',1250,'Perte reportée de l\'exercice précédent',0,NULL,NULL,1,NULL,NULL),(1252,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','691',1250,'Dotation à la réserve légale',0,NULL,NULL,1,NULL,NULL),(1253,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','692',1250,'Dotation aux autres réserves',0,NULL,NULL,1,NULL,NULL),(1254,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','693',1250,'Bénéfice à reporter',0,NULL,NULL,1,NULL,NULL),(1255,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','694',1250,'Rémunération du capital',0,NULL,NULL,1,NULL,NULL),(1256,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','695',1250,'Administrateurs ou gérants',0,NULL,NULL,1,NULL,NULL),(1257,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','696',1250,'Autres allocataires',0,NULL,NULL,1,NULL,NULL),(1258,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','70',1357,'Chiffre d\'affaires',0,NULL,NULL,1,NULL,NULL),(1260,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','700',1258,'Ventes de marchandises',0,NULL,NULL,1,NULL,NULL),(1261,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7000',1260,'Ventes en Belgique',0,NULL,NULL,1,NULL,NULL),(1262,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7001',1260,'Ventes dans les pays membres de la C.E.E.',0,NULL,NULL,1,NULL,NULL),(1263,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7002',1260,'Ventes à l\'exportation',0,NULL,NULL,1,NULL,NULL),(1264,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','701',1258,'Ventes de produits finis',0,NULL,NULL,1,NULL,NULL),(1265,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7010',1264,'Ventes en Belgique',0,NULL,NULL,1,NULL,NULL),(1266,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7011',1264,'Ventes dans les pays membres de la C.E.E.',0,NULL,NULL,1,NULL,NULL),(1267,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7012',1264,'Ventes à l\'exportation',0,NULL,NULL,1,NULL,NULL),(1268,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','702',1258,'Ventes de déchets et rebuts',0,NULL,NULL,1,NULL,NULL),(1269,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7020',1268,'Ventes en Belgique',0,NULL,NULL,1,NULL,NULL),(1270,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7021',1268,'Ventes dans les pays membres de la C.E.E.',0,NULL,NULL,1,NULL,NULL),(1271,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7022',1268,'Ventes à l\'exportation',0,NULL,NULL,1,NULL,NULL),(1272,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','703',1258,'Ventes d\'emballages récupérables',0,NULL,NULL,1,NULL,NULL),(1273,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','704',1258,'Facturations des travaux en cours (associations momentanées)',0,NULL,NULL,1,NULL,NULL),(1274,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','705',1258,'Prestations de services',0,NULL,NULL,1,NULL,NULL),(1275,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7050',1274,'Prestations de services en Belgique',0,NULL,NULL,1,NULL,NULL),(1276,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7051',1274,'Prestations de services dans les pays membres de la C.E.E.',0,NULL,NULL,1,NULL,NULL),(1277,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7052',1274,'Prestations de services en vue de l\'exportation',0,NULL,NULL,1,NULL,NULL),(1278,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','706',1258,'Pénalités et dédits obtenus par l\'entreprise',0,NULL,NULL,1,NULL,NULL),(1279,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','708',1258,'Remises, ristournes et rabais accordés',0,NULL,NULL,1,NULL,NULL),(1280,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7080',1279,'Sur ventes de marchandises',0,NULL,NULL,1,NULL,NULL),(1281,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7081',1279,'Sur ventes de produits finis',0,NULL,NULL,1,NULL,NULL),(1282,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7082',1279,'Sur ventes de déchets et rebuts',0,NULL,NULL,1,NULL,NULL),(1283,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7083',1279,'Sur prestations de services',0,NULL,NULL,1,NULL,NULL),(1284,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7084',1279,'Mali sur travaux facturés aux associations momentanées',0,NULL,NULL,1,NULL,NULL),(1285,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','71',1357,'Variation des stocks et des commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1286,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','712',1285,'Des en cours de fabrication',0,NULL,NULL,1,NULL,NULL),(1287,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','713',1285,'Des produits finis',0,NULL,NULL,1,NULL,NULL),(1288,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','715',1285,'Des immeubles construits destinés à la vente',0,NULL,NULL,1,NULL,NULL),(1289,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','717',1285,'Des commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1290,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7170',1289,'Commandes en cours - Coût de revient',0,NULL,NULL,1,NULL,NULL),(1291,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','71700',1290,'Coût des commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1292,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','71701',1290,'Coût des travaux en cours des associations momentanées',0,NULL,NULL,1,NULL,NULL),(1293,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7171',1289,'Bénéfices portés en compte sur commandes en cours',0,NULL,NULL,1,NULL,NULL),(1294,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','71710',1293,'Sur commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1295,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','71711',1293,'Sur travaux en cours des associations momentanées',0,NULL,NULL,1,NULL,NULL),(1296,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','72',1357,'Production immobilisée',0,NULL,NULL,1,NULL,NULL),(1297,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','720',1296,'En frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(1298,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','721',1296,'En immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1299,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','722',1296,'En immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1300,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','723',1296,'En immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(1301,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','74',1357,'Autres produits d\'exploitation',0,NULL,NULL,1,NULL,NULL),(1302,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','740',1301,'Subsides d\'exploitation et montants compensatoires',0,NULL,NULL,1,NULL,NULL),(1303,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','741',1301,'Plus-values sur réalisations courantes d\'immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1304,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','742',1301,'Plus-values sur réalisations de créances commerciales',0,NULL,NULL,1,NULL,NULL),(1305,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','743',1301,'à 749 Produits d\'exploitation divers',0,NULL,NULL,1,NULL,NULL),(1307,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','744',1301,'Commissions et courtages',0,NULL,NULL,1,NULL,NULL),(1308,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','745',1301,'Redevances pour brevets et licences',0,NULL,NULL,1,NULL,NULL),(1309,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','746',1301,'Prestations de services (transports, études, etc)',0,NULL,NULL,1,NULL,NULL),(1310,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','747',1301,'Revenus des immeubles affectés aux activités non professionnelles',0,NULL,NULL,1,NULL,NULL),(1311,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','748',1301,'Locations diverses à caractère professionnel',0,NULL,NULL,1,NULL,NULL),(1312,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','749',1301,'Produits divers',0,NULL,NULL,1,NULL,NULL),(1313,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7490',1312,'Bonis sur reprises d\'emballages consignés',0,NULL,NULL,1,NULL,NULL),(1314,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7491',1312,'Bonis sur travaux en associations momentanées',0,NULL,NULL,1,NULL,NULL),(1315,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','75',1357,'Produits financiers',0,NULL,NULL,1,NULL,NULL),(1316,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','750',1315,'Produits des immobilisations financières',0,NULL,NULL,1,NULL,NULL),(1317,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7500',1316,'Revenus des actions',0,NULL,NULL,1,NULL,NULL),(1318,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7501',1316,'Revenus des obligations',0,NULL,NULL,1,NULL,NULL),(1319,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7502',1316,'Revenus des créances à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1320,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','751',1315,'Produits des actifs circulants',0,NULL,NULL,1,NULL,NULL),(1321,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','752',1315,'Plus-values sur réalisations d\'actifs circulants',0,NULL,NULL,1,NULL,NULL),(1322,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','753',1315,'Subsides en capital et en intérêts',0,NULL,NULL,1,NULL,NULL),(1323,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','754',1315,'Différences de change',0,NULL,NULL,1,NULL,NULL),(1324,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','755',1315,'Ecarts de conversion des devises',0,NULL,NULL,1,NULL,NULL),(1325,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','756',1315,'à 759 Produits financiers divers',0,NULL,NULL,1,NULL,NULL),(1327,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','757',1315,'Escomptes obtenus',0,NULL,NULL,1,NULL,NULL),(1328,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','76',1357,'Produits exceptionnels',0,NULL,NULL,1,NULL,NULL),(1329,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','760',1328,'Reprises d\'amortissements et de réductions de valeur',0,NULL,NULL,1,NULL,NULL),(1330,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7600',1329,'Sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1331,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7601',1329,'Sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1332,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','761',1328,'Reprises de réductions de valeur sur immobilisations financières',0,NULL,NULL,1,NULL,NULL),(1333,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','762',1328,'Reprises de provisions pour risques et charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(1334,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','763',1328,'Plus-values sur réalisation d\'actifs immobilisés',0,NULL,NULL,1,NULL,NULL),(1335,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7630',1334,'Sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1336,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7631',1334,'Sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1337,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7632',1334,'Sur immobilisations financières',0,NULL,NULL,1,NULL,NULL),(1338,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','764',1328,'Autres produits exceptionnels',0,NULL,NULL,1,NULL,NULL),(1339,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','77',1357,'Régularisations d\'impôts et reprises de provisions fiscales',0,NULL,NULL,1,NULL,NULL),(1340,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','771',1339,'Impôts belges sur le résultat',0,NULL,NULL,1,NULL,NULL),(1341,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7710',1340,'Régularisations d\'impôts dus ou versés',0,NULL,NULL,1,NULL,NULL),(1342,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7711',1340,'Régularisations d\'impôts estimés',0,NULL,NULL,1,NULL,NULL),(1343,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7712',1340,'Reprises de provisions fiscales',0,NULL,NULL,1,NULL,NULL),(1344,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','773',1339,'Impôts étrangers sur le résultat',0,NULL,NULL,1,NULL,NULL),(1345,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','79',1357,'Affectation aux résultats',0,NULL,NULL,1,NULL,NULL),(1346,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','790',1345,'Bénéfice reporté de l\'exercice précédent',0,NULL,NULL,1,NULL,NULL),(1347,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','791',1345,'Prélèvement sur le capital et les primes d\'émission',0,NULL,NULL,1,NULL,NULL),(1348,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','792',1345,'Prélèvement sur les réserves',0,NULL,NULL,1,NULL,NULL),(1349,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','793',1345,'Perte à reporter',0,NULL,NULL,1,NULL,NULL),(1350,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','794',1345,'Intervention d\'associés (ou du propriétaire) dans la perte',0,NULL,NULL,1,NULL,NULL),(1351,1,NULL,'2016-07-30 11:12:54','PCMN-BASE','CAPIT','XXXXXX','1',0,'Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1352,1,NULL,'2016-07-30 11:12:54','PCMN-BASE','IMMO','XXXXXX','2',0,'Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1353,1,NULL,'2016-07-30 11:12:54','PCMN-BASE','STOCK','XXXXXX','3',0,'Stock et commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1354,1,NULL,'2016-07-30 11:12:54','PCMN-BASE','TIERS','XXXXXX','4',0,'Créances et dettes à un an au plus',0,NULL,NULL,1,NULL,NULL),(1355,1,NULL,'2016-07-30 11:12:54','PCMN-BASE','FINAN','XXXXXX','5',0,'Placement de trésorerie et de valeurs disponibles',0,NULL,NULL,1,NULL,NULL),(1356,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6',0,'Charges',0,NULL,NULL,1,NULL,NULL),(1357,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7',0,'Produits',0,NULL,NULL,1,NULL,NULL),(1401,1,NULL,'2016-07-30 11:12:54','PCG99-ABREGE','CAPIT','XXXXXX','1',0,'Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1402,1,NULL,'2016-07-30 11:12:54','PCG99-ABREGE','IMMO','XXXXXX','2',0,'Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1403,1,NULL,'2016-07-30 11:12:54','PCG99-ABREGE','STOCK','XXXXXX','3',0,'Stock et commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1404,1,NULL,'2016-07-30 11:12:54','PCG99-ABREGE','TIERS','XXXXXX','4',0,'Créances et dettes à un an au plus',0,NULL,NULL,1,NULL,NULL),(1405,1,NULL,'2016-07-30 11:12:54','PCG99-ABREGE','FINAN','XXXXXX','5',0,'Placement de trésorerie et de valeurs disponibles',0,NULL,NULL,1,NULL,NULL),(1406,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','6',0,'Charges',0,NULL,NULL,1,NULL,NULL),(1407,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','7',0,'Produits',0,NULL,NULL,1,NULL,NULL),(1501,1,NULL,'2017-02-20 10:46:43','PCG99-BASE','CAPIT','XXXXXX','1',0,'Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1502,1,NULL,'2016-07-30 11:12:54','PCG99-BASE','IMMO','XXXXXX','2',0,'Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1503,1,NULL,'2016-07-30 11:12:54','PCG99-BASE','STOCK','XXXXXX','3',0,'Stock et commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1504,1,NULL,'2016-07-30 11:12:54','PCG99-BASE','TIERS','XXXXXX','4',0,'Créances et dettes à un an au plus',0,NULL,NULL,1,NULL,NULL),(1505,1,NULL,'2016-07-30 11:12:54','PCG99-BASE','FINAN','XXXXXX','5',0,'Placement de trésorerie et de valeurs disponibles',0,NULL,NULL,1,NULL,NULL),(1506,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','6',0,'Charges',0,NULL,NULL,1,NULL,NULL),(1507,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','7',0,'Produits',0,NULL,NULL,1,NULL,NULL),(4001,1,NULL,'2016-07-30 11:12:54','PCG08-PYME','FINANCIACION','XXXXXX','1',0,'Financiación básica',0,NULL,NULL,1,NULL,NULL),(4002,1,NULL,'2016-07-30 11:12:54','PCG08-PYME','ACTIVO','XXXXXX','2',0,'Activo no corriente',0,NULL,NULL,1,NULL,NULL),(4003,1,NULL,'2016-07-30 11:12:54','PCG08-PYME','EXISTENCIAS','XXXXXX','3',0,'Existencias',0,NULL,NULL,1,NULL,NULL),(4004,1,NULL,'2016-07-30 11:12:54','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4',0,'Acreedores y deudores por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4005,1,NULL,'2016-07-30 11:12:54','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5',0,'Cuentas financieras',0,NULL,NULL,1,NULL,NULL),(4006,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6',0,'Compras y gastos',0,NULL,NULL,1,NULL,NULL),(4007,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7',0,'Ventas e ingresos',0,NULL,NULL,1,NULL,NULL),(4008,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','10',4001,'CAPITAL',0,NULL,NULL,1,NULL,NULL),(4009,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','100',4008,'Capital social',0,NULL,NULL,1,NULL,NULL),(4010,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','101',4008,'Fondo social',0,NULL,NULL,1,NULL,NULL),(4011,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','CAPITAL','102',4008,'Capital',0,NULL,NULL,1,NULL,NULL),(4012,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','103',4008,'Socios por desembolsos no exigidos',0,NULL,NULL,1,NULL,NULL),(4013,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1030',4012,'Socios por desembolsos no exigidos capital social',0,NULL,NULL,1,NULL,NULL),(4014,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1034',4012,'Socios por desembolsos no exigidos capital pendiente de inscripción',0,NULL,NULL,1,NULL,NULL),(4015,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','104',4008,'Socios por aportaciones no dineradas pendientes',0,NULL,NULL,1,NULL,NULL),(4016,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1040',4015,'Socios por aportaciones no dineradas pendientes capital social',0,NULL,NULL,1,NULL,NULL),(4017,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1044',4015,'Socios por aportaciones no dineradas pendientes capital pendiente de inscripción',0,NULL,NULL,1,NULL,NULL),(4018,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','108',4008,'Acciones o participaciones propias en situaciones especiales',0,NULL,NULL,1,NULL,NULL),(4019,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','109',4008,'Acciones o participaciones propias para reducción de capital',0,NULL,NULL,1,NULL,NULL),(4020,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','11',4001,'Reservas y otros instrumentos de patrimonio',0,NULL,NULL,1,NULL,NULL),(4021,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','110',4020,'Prima de emisión o asunción',0,NULL,NULL,1,NULL,NULL),(4022,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','111',4020,'Otros instrumentos de patrimonio neto',0,NULL,NULL,1,NULL,NULL),(4023,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1110',4022,'Patrimonio neto por emisión de instrumentos financieros compuestos',0,NULL,NULL,1,NULL,NULL),(4024,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1111',4022,'Resto de instrumentos de patrimoio neto',0,NULL,NULL,1,NULL,NULL),(4025,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','112',4020,'Reserva legal',0,NULL,NULL,1,NULL,NULL),(4026,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','113',4020,'Reservas voluntarias',0,NULL,NULL,1,NULL,NULL),(4027,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','114',4020,'Reservas especiales',0,NULL,NULL,1,NULL,NULL),(4028,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1140',4027,'Reservas para acciones o participaciones de la sociedad dominante',0,NULL,NULL,1,NULL,NULL),(4029,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1141',4027,'Reservas estatutarias',0,NULL,NULL,1,NULL,NULL),(4030,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1142',4027,'Reservas por capital amortizado',0,NULL,NULL,1,NULL,NULL),(4031,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1143',4027,'Reservas por fondo de comercio',0,NULL,NULL,1,NULL,NULL),(4032,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1144',4028,'Reservas por acciones propias aceptadas en garantía',0,NULL,NULL,1,NULL,NULL),(4033,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','115',4020,'Reservas por pérdidas y ganancias actuariales y otros ajustes',0,NULL,NULL,1,NULL,NULL),(4034,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','118',4020,'Aportaciones de socios o propietarios',0,NULL,NULL,1,NULL,NULL),(4035,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','119',4020,'Diferencias por ajuste del capital a euros',0,NULL,NULL,1,NULL,NULL),(4036,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','12',4001,'Resultados pendientes de aplicación',0,NULL,NULL,1,NULL,NULL),(4037,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','120',4036,'Remanente',0,NULL,NULL,1,NULL,NULL),(4038,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','121',4036,'Resultados negativos de ejercicios anteriores',0,NULL,NULL,1,NULL,NULL),(4039,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','129',4036,'Resultado del ejercicio',0,NULL,NULL,1,NULL,NULL),(4040,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','13',4001,'Subvenciones, donaciones y ajustes por cambio de valor',0,NULL,NULL,1,NULL,NULL),(4041,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','130',4040,'Subvenciones oficiales de capital',0,NULL,NULL,1,NULL,NULL),(4042,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','131',4040,'Donaciones y legados de capital',0,NULL,NULL,1,NULL,NULL),(4043,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','132',4040,'Otras subvenciones, donaciones y legados',0,NULL,NULL,1,NULL,NULL),(4044,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','133',4040,'Ajustes por valoración en activos financieros disponibles para la venta',0,NULL,NULL,1,NULL,NULL),(4045,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','134',4040,'Operaciones de cobertura',0,NULL,NULL,1,NULL,NULL),(4046,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1340',4045,'Cobertura de flujos de efectivo',0,NULL,NULL,1,NULL,NULL),(4047,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1341',4045,'Cobertura de una inversión neta en un negocio extranjero',0,NULL,NULL,1,NULL,NULL),(4048,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','135',4040,'Diferencias de conversión',0,NULL,NULL,1,NULL,NULL),(4049,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','136',4040,'Ajustes por valoración en activos no corrientes y grupos enajenables de elementos mantenidos para la venta',0,NULL,NULL,1,NULL,NULL),(4050,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','137',4040,'Ingresos fiscales a distribuir en varios ejercicios',0,NULL,NULL,1,NULL,NULL),(4051,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1370',4050,'Ingresos fiscales por diferencias permanentes a distribuir en varios ejercicios',0,NULL,NULL,1,NULL,NULL),(4052,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1371',4050,'Ingresos fiscales por deducciones y bonificaciones a distribuir en varios ejercicios',0,NULL,NULL,1,NULL,NULL),(4053,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','14',4001,'Provisiones',0,NULL,NULL,1,NULL,NULL),(4054,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','141',4053,'Provisión para impuestos',0,NULL,NULL,1,NULL,NULL),(4055,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','142',4053,'Provisión para otras responsabilidades',0,NULL,NULL,1,NULL,NULL),(4056,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','143',4053,'Provisión por desmantelamiento, retiro o rehabilitación del inmovilizado',0,NULL,NULL,1,NULL,NULL),(4057,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','145',4053,'Provisión para actuaciones medioambientales',0,NULL,NULL,1,NULL,NULL),(4058,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','15',4001,'Deudas a largo plazo con características especiales',0,NULL,NULL,1,NULL,NULL),(4059,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','150',4058,'Acciones o participaciones a largo plazo consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4060,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','153',4058,'Desembolsos no exigidos por acciones o participaciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4061,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1533',4060,'Desembolsos no exigidos empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4062,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1534',4060,'Desembolsos no exigidos empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4063,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1535',4060,'Desembolsos no exigidos otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4064,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1536',4060,'Otros desembolsos no exigidos',0,NULL,NULL,1,NULL,NULL),(4065,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','154',4058,'Aportaciones no dinerarias pendientes por acciones o participaciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4066,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1543',4065,'Aportaciones no dinerarias pendientes empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4067,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1544',4065,'Aportaciones no dinerarias pendientes empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4068,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1545',4065,'Aportaciones no dinerarias pendientes otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4069,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1546',4065,'Otras aportaciones no dinerarias pendientes',0,NULL,NULL,1,NULL,NULL),(4070,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','16',4001,'Deudas a largo plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4071,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','160',4070,'Deudas a largo plazo con entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4072,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1603',4071,'Deudas a largo plazo con entidades de crédito empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4073,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1604',4071,'Deudas a largo plazo con entidades de crédito empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4074,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1605',4071,'Deudas a largo plazo con otras entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4075,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','161',4070,'Proveedores de inmovilizado a largo plazo partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4076,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1613',4075,'Proveedores de inmovilizado a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4077,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1614',4075,'Proveedores de inmovilizado a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4078,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1615',4075,'Proveedores de inmovilizado a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4079,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','162',4070,'Acreedores por arrendamiento financiero a largo plazo partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4080,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1623',4079,'Acreedores por arrendamiento financiero a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4081,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1624',4080,'Acreedores por arrendamiento financiero a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4082,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1625',4080,'Acreedores por arrendamiento financiero a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4083,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','163',4070,'Otras deudas a largo plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4084,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1633',4083,'Otras deudas a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4085,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1634',4083,'Otras deudas a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4086,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1635',4083,'Otras deudas a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4087,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','17',4001,'Deudas a largo plazo por préstamos recibidos empresitos y otros conceptos',0,NULL,NULL,1,NULL,NULL),(4088,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','170',4087,'Deudas a largo plazo con entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4089,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','171',4087,'Deudas a largo plazo',0,NULL,NULL,1,NULL,NULL),(4090,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','172',4087,'Deudas a largo plazo transformables en suvbenciones donaciones y legados',0,NULL,NULL,1,NULL,NULL),(4091,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','173',4087,'Proveedores de inmovilizado a largo plazo',0,NULL,NULL,1,NULL,NULL),(4092,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','174',4087,'Acreedores por arrendamiento financiero a largo plazo',0,NULL,NULL,1,NULL,NULL),(4093,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','175',4087,'Efectos a pagar a largo plazo',0,NULL,NULL,1,NULL,NULL),(4094,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','176',4087,'Pasivos por derivados financieros a largo plazo',0,NULL,NULL,1,NULL,NULL),(4095,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','177',4087,'Obligaciones y bonos',0,NULL,NULL,1,NULL,NULL),(4096,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','179',4087,'Deudas representadas en otros valores negociables',0,NULL,NULL,1,NULL,NULL),(4097,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','18',4001,'Pasivos por fianzas garantias y otros conceptos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4098,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','180',4097,'Fianzas recibidas a largo plazo',0,NULL,NULL,1,NULL,NULL),(4099,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','181',4097,'Anticipos recibidos por ventas o prestaciones de servicios a largo plazo',0,NULL,NULL,1,NULL,NULL),(4100,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','185',4097,'Depositos recibidos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4101,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','19',4001,'Situaciones transitorias de financiación',0,NULL,NULL,1,NULL,NULL),(4102,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','190',4101,'Acciones o participaciones emitidas',0,NULL,NULL,1,NULL,NULL),(4103,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','192',4101,'Suscriptores de acciones',0,NULL,NULL,1,NULL,NULL),(4104,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','194',4101,'Capital emitido pendiente de inscripción',0,NULL,NULL,1,NULL,NULL),(4105,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','195',4101,'Acciones o participaciones emitidas consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4106,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','197',4101,'Suscriptores de acciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4107,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','199',4101,'Acciones o participaciones emitidas consideradas como pasivos financieros pendientes de inscripción',0,NULL,NULL,1,NULL,NULL),(4108,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','20',4002,'Inmovilizaciones intangibles',0,NULL,NULL,1,NULL,NULL),(4109,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','200',4108,'Investigación',0,NULL,NULL,1,NULL,NULL),(4110,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','201',4108,'Desarrollo',0,NULL,NULL,1,NULL,NULL),(4111,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','202',4108,'Concesiones administrativas',0,NULL,NULL,1,NULL,NULL),(4112,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','203',4108,'Propiedad industrial',0,NULL,NULL,1,NULL,NULL),(4113,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','205',4108,'Derechos de transpaso',0,NULL,NULL,1,NULL,NULL),(4114,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','206',4108,'Aplicaciones informáticas',0,NULL,NULL,1,NULL,NULL),(4115,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','209',4108,'Anticipos para inmovilizaciones intangibles',0,NULL,NULL,1,NULL,NULL),(4116,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','21',4002,'Inmovilizaciones materiales',0,NULL,NULL,1,NULL,NULL),(4117,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','210',4116,'Terrenos y bienes naturales',0,NULL,NULL,1,NULL,NULL),(4118,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','211',4116,'Construcciones',0,NULL,NULL,1,NULL,NULL),(4119,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','212',4116,'Instalaciones técnicas',0,NULL,NULL,1,NULL,NULL),(4120,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','213',4116,'Maquinaria',0,NULL,NULL,1,NULL,NULL),(4121,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','214',4116,'Utillaje',0,NULL,NULL,1,NULL,NULL),(4122,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','215',4116,'Otras instalaciones',0,NULL,NULL,1,NULL,NULL),(4123,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','216',4116,'Mobiliario',0,NULL,NULL,1,NULL,NULL),(4124,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','217',4116,'Equipos para procesos de información',0,NULL,NULL,1,NULL,NULL),(4125,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','218',4116,'Elementos de transporte',0,NULL,NULL,1,NULL,NULL),(4126,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','219',4116,'Otro inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4127,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','22',4002,'Inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4128,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','220',4127,'Inversiones en terreons y bienes naturales',0,NULL,NULL,1,NULL,NULL),(4129,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','221',4127,'Inversiones en construcciones',0,NULL,NULL,1,NULL,NULL),(4130,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','23',4002,'Inmovilizaciones materiales en curso',0,NULL,NULL,1,NULL,NULL),(4131,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','230',4130,'Adaptación de terrenos y bienes naturales',0,NULL,NULL,1,NULL,NULL),(4132,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','231',4130,'Construcciones en curso',0,NULL,NULL,1,NULL,NULL),(4133,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','232',4130,'Instalaciones técnicas en montaje',0,NULL,NULL,1,NULL,NULL),(4134,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','233',4130,'Maquinaria en montaje',0,NULL,NULL,1,NULL,NULL),(4135,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','237',4130,'Equipos para procesos de información en montaje',0,NULL,NULL,1,NULL,NULL),(4136,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','239',4130,'Anticipos para inmovilizaciones materiales',0,NULL,NULL,1,NULL,NULL),(4137,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','24',4002,'Inversiones financieras a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4138,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','240',4137,'Participaciones a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4139,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2403',4138,'Participaciones a largo plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4140,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2404',4138,'Participaciones a largo plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4141,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2405',4138,'Participaciones a largo plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4142,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','241',4137,'Valores representativos de deuda a largo plazo de partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4143,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2413',4142,'Valores representativos de deuda a largo plazo de empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4144,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2414',4142,'Valores representativos de deuda a largo plazo de empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4145,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2415',4142,'Valores representativos de deuda a largo plazo de otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4146,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','242',4137,'Créditos a largo plazo a partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4147,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2423',4146,'Créditos a largo plazo a empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4148,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2424',4146,'Créditos a largo plazo a empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4149,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2425',4146,'Créditos a largo plazo a otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4150,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','249',4137,'Desembolsos pendientes sobre participaciones a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4151,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2493',4150,'Desembolsos pendientes sobre participaciones a largo plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4152,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2494',4150,'Desembolsos pendientes sobre participaciones a largo plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4153,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2495',4150,'Desembolsos pendientes sobre participaciones a largo plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4154,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','25',4002,'Otras inversiones financieras a largo plazo',0,NULL,NULL,1,NULL,NULL),(4155,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','250',4154,'Inversiones financieras a largo plazo en instrumentos de patrimonio',0,NULL,NULL,1,NULL,NULL),(4156,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','251',4154,'Valores representativos de deuda a largo plazo',0,NULL,NULL,1,NULL,NULL),(4157,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','252',4154,'Créditos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4158,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','253',4154,'Créditos a largo plazo por enajenación de inmovilizado',0,NULL,NULL,1,NULL,NULL),(4159,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','254',4154,'Créditos a largo plazo al personal',0,NULL,NULL,1,NULL,NULL),(4160,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','255',4154,'Activos por derivados financieros a largo plazo',0,NULL,NULL,1,NULL,NULL),(4161,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','258',4154,'Imposiciones a largo plazo',0,NULL,NULL,1,NULL,NULL),(4162,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','259',4154,'Desembolsos pendientes sobre participaciones en el patrimonio neto a largo plazo',0,NULL,NULL,1,NULL,NULL),(4163,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','26',4002,'Fianzas y depósitos constituidos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4164,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','260',4163,'Fianzas constituidas a largo plazo',0,NULL,NULL,1,NULL,NULL),(4165,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','261',4163,'Depósitos constituidos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4166,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','28',4002,'Amortización acumulada del inmovilizado',0,NULL,NULL,1,NULL,NULL),(4167,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','280',4166,'Amortización acumulado del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4168,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2800',4167,'Amortización acumulada de investigación',0,NULL,NULL,1,NULL,NULL),(4169,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2801',4167,'Amortización acumulada de desarrollo',0,NULL,NULL,1,NULL,NULL),(4170,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2802',4167,'Amortización acumulada de concesiones administrativas',0,NULL,NULL,1,NULL,NULL),(4171,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2803',4167,'Amortización acumulada de propiedad industrial',0,NULL,NULL,1,NULL,NULL),(4172,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2805',4167,'Amortización acumulada de derechos de transpaso',0,NULL,NULL,1,NULL,NULL),(4173,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2806',4167,'Amortización acumulada de aplicaciones informáticas',0,NULL,NULL,1,NULL,NULL),(4174,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','281',4166,'Amortización acumulado del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4175,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2811',4174,'Amortización acumulada de construcciones',0,NULL,NULL,1,NULL,NULL),(4176,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2812',4174,'Amortización acumulada de instalaciones técnicas',0,NULL,NULL,1,NULL,NULL),(4177,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2813',4174,'Amortización acumulada de maquinaria',0,NULL,NULL,1,NULL,NULL),(4178,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2814',4174,'Amortización acumulada de utillaje',0,NULL,NULL,1,NULL,NULL),(4179,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2815',4174,'Amortización acumulada de otras instalaciones',0,NULL,NULL,1,NULL,NULL),(4180,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2816',4174,'Amortización acumulada de mobiliario',0,NULL,NULL,1,NULL,NULL),(4181,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2817',4174,'Amortización acumulada de equipos para proceso de información',0,NULL,NULL,1,NULL,NULL),(4182,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2818',4174,'Amortización acumulada de elementos de transporte',0,NULL,NULL,1,NULL,NULL),(4183,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2819',4175,'Amortización acumulada de otro inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4184,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','282',4166,'Amortización acumulada de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4185,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','29',4002,'Deterioro de valor de activos no corrientes',0,NULL,NULL,1,NULL,NULL),(4186,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','290',4185,'Deterioro de valor del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4187,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2900',4186,'Deterioro de valor de investigación',0,NULL,NULL,1,NULL,NULL),(4188,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2901',4186,'Deterioro de valor de desarrollo',0,NULL,NULL,1,NULL,NULL),(4189,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2902',4186,'Deterioro de valor de concesiones administrativas',0,NULL,NULL,1,NULL,NULL),(4190,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2903',4186,'Deterioro de valor de propiedad industrial',0,NULL,NULL,1,NULL,NULL),(4191,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2905',4186,'Deterioro de valor de derechos de transpaso',0,NULL,NULL,1,NULL,NULL),(4192,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2906',4186,'Deterioro de valor de aplicaciones informáticas',0,NULL,NULL,1,NULL,NULL),(4193,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','291',4185,'Deterioro de valor del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4194,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2910',4193,'Deterioro de valor de terrenos y bienes naturales',0,NULL,NULL,1,NULL,NULL),(4195,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2911',4193,'Deterioro de valor de construcciones',0,NULL,NULL,1,NULL,NULL),(4196,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2912',4193,'Deterioro de valor de instalaciones técnicas',0,NULL,NULL,1,NULL,NULL),(4197,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2913',4193,'Deterioro de valor de maquinaria',0,NULL,NULL,1,NULL,NULL),(4198,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2914',4193,'Deterioro de valor de utillajes',0,NULL,NULL,1,NULL,NULL),(4199,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2915',4194,'Deterioro de valor de otras instalaciones',0,NULL,NULL,1,NULL,NULL),(4200,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2916',4194,'Deterioro de valor de mobiliario',0,NULL,NULL,1,NULL,NULL),(4201,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2917',4194,'Deterioro de valor de equipos para proceso de información',0,NULL,NULL,1,NULL,NULL),(4202,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2918',4194,'Deterioro de valor de elementos de transporte',0,NULL,NULL,1,NULL,NULL),(4203,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2919',4194,'Deterioro de valor de otro inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4204,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','292',4185,'Deterioro de valor de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4205,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2920',4204,'Deterioro de valor de terrenos y bienes naturales',0,NULL,NULL,1,NULL,NULL),(4206,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2921',4204,'Deterioro de valor de construcciones',0,NULL,NULL,1,NULL,NULL),(4207,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','293',4185,'Deterioro de valor de participaciones a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4208,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2933',4207,'Deterioro de valor de participaciones a largo plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4209,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2934',4207,'Deterioro de valor de sobre participaciones a largo plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4210,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2935',4207,'Deterioro de valor de sobre participaciones a largo plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4211,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','294',4185,'Deterioro de valor de valores representativos de deuda a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4212,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2943',4211,'Deterioro de valor de valores representativos de deuda a largo plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4213,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2944',4211,'Deterioro de valor de valores representativos de deuda a largo plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4214,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2945',4211,'Deterioro de valor de valores representativos de deuda a largo plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4215,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','295',4185,'Deterioro de valor de créditos a largo plazo a partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4216,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2953',4215,'Deterioro de valor de créditos a largo plazo a empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4217,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2954',4215,'Deterioro de valor de créditos a largo plazo a empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4218,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2955',4215,'Deterioro de valor de créditos a largo plazo a otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4219,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','296',4185,'Deterioro de valor de participaciones en el patrimonio netoa largo plazo',0,NULL,NULL,1,NULL,NULL),(4220,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','297',4185,'Deterioro de valor de valores representativos de deuda a largo plazo',0,NULL,NULL,1,NULL,NULL),(4221,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','298',4185,'Deterioro de valor de créditos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4222,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','30',4003,'Comerciales',0,NULL,NULL,1,NULL,NULL),(4223,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','300',4222,'Mercaderías A',0,NULL,NULL,1,NULL,NULL),(4224,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','301',4222,'Mercaderías B',0,NULL,NULL,1,NULL,NULL),(4225,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','31',4003,'Materias primas',0,NULL,NULL,1,NULL,NULL),(4226,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','310',4225,'Materias primas A',0,NULL,NULL,1,NULL,NULL),(4227,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','311',4225,'Materias primas B',0,NULL,NULL,1,NULL,NULL),(4228,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','32',4003,'Otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4229,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','320',4228,'Elementos y conjuntos incorporables',0,NULL,NULL,1,NULL,NULL),(4230,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','321',4228,'Combustibles',0,NULL,NULL,1,NULL,NULL),(4231,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','322',4228,'Repuestos',0,NULL,NULL,1,NULL,NULL),(4232,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','325',4228,'Materiales diversos',0,NULL,NULL,1,NULL,NULL),(4233,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','326',4228,'Embalajes',0,NULL,NULL,1,NULL,NULL),(4234,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','327',4228,'Envases',0,NULL,NULL,1,NULL,NULL),(4235,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','328',4229,'Material de oficina',0,NULL,NULL,1,NULL,NULL),(4236,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','33',4003,'Productos en curso',0,NULL,NULL,1,NULL,NULL),(4237,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','330',4236,'Productos en curos A',0,NULL,NULL,1,NULL,NULL),(4238,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','331',4236,'Productos en curso B',0,NULL,NULL,1,NULL,NULL),(4239,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','34',4003,'Productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4240,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','340',4239,'Productos semiterminados A',0,NULL,NULL,1,NULL,NULL),(4241,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','341',4239,'Productos semiterminados B',0,NULL,NULL,1,NULL,NULL),(4242,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','35',4003,'Productos terminados',0,NULL,NULL,1,NULL,NULL),(4243,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','350',4242,'Productos terminados A',0,NULL,NULL,1,NULL,NULL),(4244,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','351',4242,'Productos terminados B',0,NULL,NULL,1,NULL,NULL),(4245,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','36',4003,'Subproductos, residuos y materiales recuperados',0,NULL,NULL,1,NULL,NULL),(4246,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','360',4245,'Subproductos A',0,NULL,NULL,1,NULL,NULL),(4247,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','361',4245,'Subproductos B',0,NULL,NULL,1,NULL,NULL),(4248,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','365',4245,'Residuos A',0,NULL,NULL,1,NULL,NULL),(4249,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','366',4245,'Residuos B',0,NULL,NULL,1,NULL,NULL),(4250,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','368',4245,'Materiales recuperados A',0,NULL,NULL,1,NULL,NULL),(4251,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','369',4245,'Materiales recuperados B',0,NULL,NULL,1,NULL,NULL),(4252,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','39',4003,'Deterioro de valor de las existencias',0,NULL,NULL,1,NULL,NULL),(4253,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','390',4252,'Deterioro de valor de las mercaderías',0,NULL,NULL,1,NULL,NULL),(4254,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','391',4252,'Deterioro de valor de las materias primas',0,NULL,NULL,1,NULL,NULL),(4255,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','392',4252,'Deterioro de valor de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4256,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','393',4252,'Deterioro de valor de los productos en curso',0,NULL,NULL,1,NULL,NULL),(4257,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','394',4252,'Deterioro de valor de los productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4258,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','395',4252,'Deterioro de valor de los productos terminados',0,NULL,NULL,1,NULL,NULL),(4259,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','396',4252,'Deterioro de valor de los subproductos, residuos y materiales recuperados',0,NULL,NULL,1,NULL,NULL),(4260,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','PROVEEDORES','40',4004,'Proveedores',0,NULL,NULL,1,NULL,NULL),(4261,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','PROVEEDORES','400',4260,'Proveedores',0,NULL,NULL,1,NULL,NULL),(4262,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4000',4261,'Proveedores euros',0,NULL,NULL,1,NULL,NULL),(4263,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4004',4261,'Proveedores moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4264,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4009',4261,'Proveedores facturas pendientes de recibir o formalizar',0,NULL,NULL,1,NULL,NULL),(4265,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','401',4260,'Proveedores efectos comerciales a pagar',0,NULL,NULL,1,NULL,NULL),(4266,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','403',4260,'Proveedores empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4267,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4030',4266,'Proveedores empresas del grupo euros',0,NULL,NULL,1,NULL,NULL),(4268,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4031',4266,'Efectos comerciales a pagar empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4269,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4034',4266,'Proveedores empresas del grupo moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4270,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4036',4266,'Envases y embalajes a devolver a proveedores empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4271,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4039',4266,'Proveedores empresas del grupo facturas pendientes de recibir o de formalizar',0,NULL,NULL,1,NULL,NULL),(4272,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','404',4260,'Proveedores empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4273,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','405',4260,'Proveedores otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4274,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','406',4260,'Envases y embalajes a devolver a proveedores',0,NULL,NULL,1,NULL,NULL),(4275,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','407',4260,'Anticipos a proveedores',0,NULL,NULL,1,NULL,NULL),(4276,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','41',4004,'Acreedores varios',0,NULL,NULL,1,NULL,NULL),(4277,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','410',4276,'Acreedores por prestaciones de servicios',0,NULL,NULL,1,NULL,NULL),(4278,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4100',4277,'Acreedores por prestaciones de servicios euros',0,NULL,NULL,1,NULL,NULL),(4279,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4104',4277,'Acreedores por prestaciones de servicios moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4280,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4109',4277,'Acreedores por prestaciones de servicios facturas pendientes de recibir o formalizar',0,NULL,NULL,1,NULL,NULL),(4281,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','411',4276,'Acreedores efectos comerciales a pagar',0,NULL,NULL,1,NULL,NULL),(4282,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','419',4276,'Acreedores por operaciones en común',0,NULL,NULL,1,NULL,NULL),(4283,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','CLIENTES','43',4004,'Clientes',0,NULL,NULL,1,NULL,NULL),(4284,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','CLIENTES','430',4283,'Clientes',0,NULL,NULL,1,NULL,NULL),(4285,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4300',4284,'Clientes euros',0,NULL,NULL,1,NULL,NULL),(4286,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4304',4284,'Clientes moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4287,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4309',4284,'Clientes facturas pendientes de formalizar',0,NULL,NULL,1,NULL,NULL),(4288,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','431',4283,'Clientes efectos comerciales a cobrar',0,NULL,NULL,1,NULL,NULL),(4289,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4310',4288,'Efectos comerciales en cartera',0,NULL,NULL,1,NULL,NULL),(4290,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4311',4288,'Efectos comerciales descontados',0,NULL,NULL,1,NULL,NULL),(4291,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4312',4288,'Efectos comerciales en gestión de cobro',0,NULL,NULL,1,NULL,NULL),(4292,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4315',4288,'Efectos comerciales impagados',0,NULL,NULL,1,NULL,NULL),(4293,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','432',4283,'Clientes operaciones de factoring',0,NULL,NULL,1,NULL,NULL),(4294,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','433',4283,'Clientes empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4295,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4330',4294,'Clientes empresas del grupo euros',0,NULL,NULL,1,NULL,NULL),(4296,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4331',4294,'Efectos comerciales a cobrar empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4297,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4332',4294,'Clientes empresas del grupo operaciones de factoring',0,NULL,NULL,1,NULL,NULL),(4298,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4334',4294,'Clientes empresas del grupo moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4299,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4336',4294,'Clientes empresas del grupo dudoso cobro',0,NULL,NULL,1,NULL,NULL),(4300,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4337',4294,'Envases y embalajes a devolver a clientes empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4301,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4339',4294,'Clientes empresas del grupo facturas pendientes de formalizar',0,NULL,NULL,1,NULL,NULL),(4302,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','434',4283,'Clientes empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4303,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','435',4283,'Clientes otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4304,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','436',4283,'Clientes de dudoso cobro',0,NULL,NULL,1,NULL,NULL),(4305,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','437',4283,'Envases y embalajes a devolver por clientes',0,NULL,NULL,1,NULL,NULL),(4306,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','438',4283,'Anticipos de clientes',0,NULL,NULL,1,NULL,NULL),(4307,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','44',4004,'Deudores varios',0,NULL,NULL,1,NULL,NULL),(4308,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','440',4307,'Deudores',0,NULL,NULL,1,NULL,NULL),(4309,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4400',4308,'Deudores euros',0,NULL,NULL,1,NULL,NULL),(4310,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4404',4308,'Deudores moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4311,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4409',4308,'Deudores facturas pendientes de formalizar',0,NULL,NULL,1,NULL,NULL),(4312,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','441',4307,'Deudores efectos comerciales a cobrar',0,NULL,NULL,1,NULL,NULL),(4313,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4410',4312,'Deudores efectos comerciales en cartera',0,NULL,NULL,1,NULL,NULL),(4314,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4411',4312,'Deudores efectos comerciales descontados',0,NULL,NULL,1,NULL,NULL),(4315,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4412',4312,'Deudores efectos comerciales en gestión de cobro',0,NULL,NULL,1,NULL,NULL),(4316,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4415',4312,'Deudores efectos comerciales impagados',0,NULL,NULL,1,NULL,NULL),(4317,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','446',4307,'Deudores de dusoso cobro',0,NULL,NULL,1,NULL,NULL),(4318,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','449',4307,'Deudores por operaciones en común',0,NULL,NULL,1,NULL,NULL),(4319,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','46',4004,'Personal',0,NULL,NULL,1,NULL,NULL),(4320,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','460',4319,'Anticipos de renumeraciones',0,NULL,NULL,1,NULL,NULL),(4321,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','465',4319,'Renumeraciones pendientes de pago',0,NULL,NULL,1,NULL,NULL),(4322,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','47',4004,'Administraciones Públicas',0,NULL,NULL,1,NULL,NULL),(4323,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','470',4322,'Hacienda Pública deudora por diversos conceptos',0,NULL,NULL,1,NULL,NULL),(4324,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4700',4323,'Hacienda Pública deudora por IVA',0,NULL,NULL,1,NULL,NULL),(4325,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4708',4323,'Hacienda Pública deudora por subvenciones concedidas',0,NULL,NULL,1,NULL,NULL),(4326,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4709',4323,'Hacienda Pública deudora por devolución de impuestos',0,NULL,NULL,1,NULL,NULL),(4327,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','471',4322,'Organismos de la Seguridad Social deudores',0,NULL,NULL,1,NULL,NULL),(4328,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','472',4322,'Hacienda Pública IVA soportado',0,NULL,NULL,1,NULL,NULL),(4329,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','473',4322,'Hacienda Pública retenciones y pagos a cuenta',0,NULL,NULL,1,NULL,NULL),(4330,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','474',4322,'Activos por impuesto diferido',0,NULL,NULL,1,NULL,NULL),(4331,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4740',4330,'Activos por diferencias temporarias deducibles',0,NULL,NULL,1,NULL,NULL),(4332,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4742',4330,'Derechos por deducciones y bonificaciones pendientes de aplicar',0,NULL,NULL,1,NULL,NULL),(4333,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4745',4330,'Crédito por pérdidasa compensar del ejercicio',0,NULL,NULL,1,NULL,NULL),(4334,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','475',4322,'Hacienda Pública acreedora por conceptos fiscales',0,NULL,NULL,1,NULL,NULL),(4335,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4750',4334,'Hacienda Pública acreedora por IVA',0,NULL,NULL,1,NULL,NULL),(4336,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4751',4334,'Hacienda Pública acreedora por retenciones practicadas',0,NULL,NULL,1,NULL,NULL),(4337,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4752',4334,'Hacienda Pública acreedora por impuesto sobre sociedades',0,NULL,NULL,1,NULL,NULL),(4338,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4758',4334,'Hacienda Pública acreedora por subvenciones a integrar',0,NULL,NULL,1,NULL,NULL),(4339,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','476',4322,'Organismos de la Seguridad Social acreedores',0,NULL,NULL,1,NULL,NULL),(4340,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','477',4322,'Hacienda Pública IVA repercutido',0,NULL,NULL,1,NULL,NULL),(4341,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','479',4322,'Pasivos por diferencias temporarias imponibles',0,NULL,NULL,1,NULL,NULL),(4342,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','48',4004,'Ajustes por periodificación',0,NULL,NULL,1,NULL,NULL),(4343,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','480',4342,'Gastos anticipados',0,NULL,NULL,1,NULL,NULL),(4344,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','485',4342,'Ingresos anticipados',0,NULL,NULL,1,NULL,NULL),(4345,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','49',4004,'Deterioro de valor de créditos comerciales y provisiones a corto plazo',0,NULL,NULL,1,NULL,NULL),(4346,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','490',4345,'Deterioro de valor de créditos por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4347,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','493',4345,'Deterioro de valor de créditos por operaciones comerciales con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4348,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4933',4347,'Deterioro de valor de créditos por operaciones comerciales con empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4349,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4934',4347,'Deterioro de valor de créditos por operaciones comerciales con empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4350,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4935',4347,'Deterioro de valor de créditos por operaciones comerciales con otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4351,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','499',4345,'Provisiones por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4352,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4994',4351,'Provisión para contratos anerosos',0,NULL,NULL,1,NULL,NULL),(4353,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4999',4351,'Provisión para otras operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4354,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','50',4005,'Emprésitos deudas con características especiales y otras emisiones análogas a corto plazo',0,NULL,NULL,1,NULL,NULL),(4355,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','500',4354,'Obligaciones y bonos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4356,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','502',4354,'Acciones o participaciones a corto plazo consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4357,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','505',4354,'Deudas representadas en otros valores negociables a corto plazo',0,NULL,NULL,1,NULL,NULL),(4358,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','506',4354,'Intereses a corto plazo de emprésitos y otras emisiones analógicas',0,NULL,NULL,1,NULL,NULL),(4359,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','507',4354,'Dividendos de acciones o participaciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4360,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','509',4354,'Valores negociables amortizados',0,NULL,NULL,1,NULL,NULL),(4361,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5090',4360,'Obligaciones y bonos amortizados',0,NULL,NULL,1,NULL,NULL),(4362,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5095',4360,'Otros valores negociables amortizados',0,NULL,NULL,1,NULL,NULL),(4363,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','51',4005,'Deudas a corto plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4364,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','510',4363,'Deudas a corto plazo con entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4365,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5103',4364,'Deudas a corto plazo con entidades de crédito empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4366,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5104',4364,'Deudas a corto plazo con entidades de crédito empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4367,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5105',4364,'Deudas a corto plazo con otras entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4368,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','511',4363,'Proveedores de inmovilizado a corto plazo partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4369,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5113',4368,'Proveedores de inmovilizado a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4370,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5114',4368,'Proveedores de inmovilizado a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4371,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5115',4368,'Proveedores de inmovilizado a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4372,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','512',4363,'Acreedores por arrendamiento financiero a corto plazo partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4373,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5123',4372,'Acreedores por arrendamiento financiero a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4374,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5124',4372,'Acreedores por arrendamiento financiero a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4375,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5125',4372,'Acreedores por arrendamiento financiero a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4376,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','513',4363,'Otras deudas a corto plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4377,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5133',4376,'Otras deudas a corto plazo con empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4378,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5134',4376,'Otras deudas a corto plazo con empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4379,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5135',4376,'Otras deudas a corto plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4380,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','514',4363,'Intereses a corto plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4381,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5143',4380,'Intereses a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4382,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5144',4380,'Intereses a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4383,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5145',4380,'Intereses deudas a corto plazo partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4384,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','52',4005,'Deudas a corto plazo por préstamos recibidos y otros conceptos',0,NULL,NULL,1,NULL,NULL),(4385,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','520',4384,'Deudas a corto plazo con entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4386,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5200',4385,'Préstamos a corto plazo de entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4387,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5201',4385,'Deudas a corto plazo por crédito dispuesto',0,NULL,NULL,1,NULL,NULL),(4388,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5208',4385,'Deudas por efectos descontados',0,NULL,NULL,1,NULL,NULL),(4389,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5209',4385,'Deudas por operaciones de factoring',0,NULL,NULL,1,NULL,NULL),(4390,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','521',4384,'Deudas a corto plazo',0,NULL,NULL,1,NULL,NULL),(4391,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','522',4384,'Deudas a corto plazo transformables en subvenciones donaciones y legados',0,NULL,NULL,1,NULL,NULL),(4392,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','523',4384,'Proveedores de inmovilizado a corto plazo',0,NULL,NULL,1,NULL,NULL),(4393,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','526',4384,'Dividendo activo a pagar',0,NULL,NULL,1,NULL,NULL),(4394,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','527',4384,'Intereses a corto plazo de deudas con entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4395,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','528',4384,'Intereses a corto plazo de deudas',0,NULL,NULL,1,NULL,NULL),(4396,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','529',4384,'Provisiones a corto plazo',0,NULL,NULL,1,NULL,NULL),(4397,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5291',4396,'Provisión a corto plazo para impuestos',0,NULL,NULL,1,NULL,NULL),(4398,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5292',4396,'Provisión a corto plazo para otras responsabilidades',0,NULL,NULL,1,NULL,NULL),(4399,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5293',4396,'Provisión a corto plazo por desmantelamiento retiro o rehabilitación del inmovilizado',0,NULL,NULL,1,NULL,NULL),(4400,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5295',4396,'Provisión a corto plazo para actuaciones medioambientales',0,NULL,NULL,1,NULL,NULL),(4401,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','53',4005,'Inversiones financieras a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4402,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','530',4401,'Participaciones a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4403,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5303',4402,'Participaciones a corto plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4404,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5304',4402,'Participaciones a corto plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4405,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5305',4402,'Participaciones a corto plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4406,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','531',4401,'Valores representativos de deuda a corto plazo de partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4407,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5313',4406,'Valores representativos de deuda a corto plazo de empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4408,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5314',4406,'Valores representativos de deuda a corto plazo de empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4409,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5315',4406,'Valores representativos de deuda a corto plazo de otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4410,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','532',4401,'Créditos a corto plazo a partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4411,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5323',4410,'Créditos a corto plazo a empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4412,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5324',4410,'Créditos a corto plazo a empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4413,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5325',4410,'Créditos a corto plazo a otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4414,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','533',4401,'Intereses a corto plazo de valores representativos de deuda de partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4415,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5333',4414,'Intereses a corto plazo de valores representativos de deuda en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4416,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5334',4414,'Intereses a corto plazo de valores representativos de deuda en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4417,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5335',4414,'Intereses a corto plazo de valores representativos de deuda en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4418,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','534',4401,'Intereses a corto plazo de créditos a partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4419,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5343',4418,'Intereses a corto plazo de créditos a empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4420,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5344',4418,'Intereses a corto plazo de créditos a empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4421,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5345',4418,'Intereses a corto plazo de créditos a otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4422,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','535',4401,'Dividendo a cobrar de inversiones financieras en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4423,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5353',4422,'Dividendo a cobrar de empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4424,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5354',4422,'Dividendo a cobrar de empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4425,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5355',4422,'Dividendo a cobrar de otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4426,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','539',4401,'Desembolsos pendientes sobre participaciones a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4427,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5393',4426,'Desembolsos pendientes sobre participaciones a corto plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4428,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5394',4426,'Desembolsos pendientes sobre participaciones a corto plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4429,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5395',4426,'Desembolsos pendientes sobre participaciones a corto plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4430,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','54',4005,'Otras inversiones financieras a corto plazo',0,NULL,NULL,1,NULL,NULL),(4431,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','540',4430,'Inversiones financieras a corto plazo en instrumentos de patrimonio',0,NULL,NULL,1,NULL,NULL),(4432,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','541',4430,'Valores representativos de deuda a corto plazo',0,NULL,NULL,1,NULL,NULL),(4433,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','542',4430,'Créditos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4434,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','543',4430,'Créditos a corto plazo por enejenación de inmovilizado',0,NULL,NULL,1,NULL,NULL),(4435,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','544',4430,'Créditos a corto plazo al personal',0,NULL,NULL,1,NULL,NULL),(4436,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','545',4430,'Dividendo a cobrar',0,NULL,NULL,1,NULL,NULL),(4437,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','546',4430,'Intereses a corto plazo de valores reprsentativos de deuda',0,NULL,NULL,1,NULL,NULL),(4438,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','547',4430,'Intereses a corto plazo de créditos',0,NULL,NULL,1,NULL,NULL),(4439,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','548',4430,'Imposiciones a corto plazo',0,NULL,NULL,1,NULL,NULL),(4440,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','549',4430,'Desembolsos pendientes sobre participaciones en el patrimonio neto a corto plazo',0,NULL,NULL,1,NULL,NULL),(4441,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','55',4005,'Otras cuentas no bancarias',0,NULL,NULL,1,NULL,NULL),(4442,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','550',4441,'Titular de la explotación',0,NULL,NULL,1,NULL,NULL),(4443,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','551',4441,'Cuenta corriente con socios y administradores',0,NULL,NULL,1,NULL,NULL),(4444,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','552',4441,'Cuenta corriente otras personas y entidades vinculadas',0,NULL,NULL,1,NULL,NULL),(4445,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5523',4444,'Cuenta corriente con empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4446,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5524',4444,'Cuenta corriente con empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4447,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5525',4444,'Cuenta corriente con otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4448,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','554',4441,'Cuenta corriente con uniones temporales de empresas y comunidades de bienes',0,NULL,NULL,1,NULL,NULL),(4449,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','555',4441,'Partidas pendientes de aplicación',0,NULL,NULL,1,NULL,NULL),(4450,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','556',4441,'Desembolsos exigidos sobre participaciones en el patrimonio neto',0,NULL,NULL,1,NULL,NULL),(4451,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5563',4450,'Desembolsos exigidos sobre participaciones empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4452,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5564',4450,'Desembolsos exigidos sobre participaciones empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4453,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5565',4450,'Desembolsos exigidos sobre participaciones otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4454,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5566',4450,'Desembolsos exigidos sobre participaciones otras empresas',0,NULL,NULL,1,NULL,NULL),(4455,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','557',4441,'Dividendo activo a cuenta',0,NULL,NULL,1,NULL,NULL),(4456,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','558',4441,'Socios por desembolsos exigidos',0,NULL,NULL,1,NULL,NULL),(4457,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5580',4456,'Socios por desembolsos exigidos sobre acciones o participaciones ordinarias',0,NULL,NULL,1,NULL,NULL),(4458,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5585',4456,'Socios por desembolsos exigidos sobre acciones o participaciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4459,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','559',4441,'Derivados financieros a corto plazo',0,NULL,NULL,1,NULL,NULL),(4460,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5590',4459,'Activos por derivados financieros a corto plazo',0,NULL,NULL,1,NULL,NULL),(4461,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5595',4459,'Pasivos por derivados financieros a corto plazo',0,NULL,NULL,1,NULL,NULL),(4462,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','56',4005,'Finanzas y depósitos recibidos y constituidos a corto plazo y ajustes por periodificación',0,NULL,NULL,1,NULL,NULL),(4463,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','560',4462,'Finanzas recibidas a corto plazo',0,NULL,NULL,1,NULL,NULL),(4464,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','561',4462,'Depósitos recibidos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4465,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','565',4462,'Finanzas constituidas a corto plazo',0,NULL,NULL,1,NULL,NULL),(4466,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','566',4462,'Depósitos constituidos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4467,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','567',4462,'Intereses pagados por anticipado',0,NULL,NULL,1,NULL,NULL),(4468,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','568',4462,'Intereses cobrados a corto plazo',0,NULL,NULL,1,NULL,NULL),(4469,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','57',4005,'Tesorería',0,NULL,NULL,1,NULL,NULL),(4470,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','CAJA','570',4469,'Caja euros',0,NULL,NULL,1,NULL,NULL),(4471,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','571',4469,'Caja moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4472,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','BANCOS','572',4469,'Bancos e instituciones de crédito cc vista euros',0,NULL,NULL,1,NULL,NULL),(4473,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','573',4469,'Bancos e instituciones de crédito cc vista moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4474,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','574',4469,'Bancos e instituciones de crédito cuentas de ahorro euros',0,NULL,NULL,1,NULL,NULL),(4475,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','575',4469,'Bancos e instituciones de crédito cuentas de ahorro moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4476,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','576',4469,'Inversiones a corto plazo de gran liquidez',0,NULL,NULL,1,NULL,NULL),(4477,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','59',4005,'Deterioro del valor de las inversiones financieras a corto plazo',0,NULL,NULL,1,NULL,NULL),(4478,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','593',4477,'Deterioro del valor de participaciones a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4479,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5933',4478,'Deterioro del valor de participaciones a corto plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4480,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5934',4478,'Deterioro del valor de participaciones a corto plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4481,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5935',4478,'Deterioro del valor de participaciones a corto plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4482,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','594',4477,'Deterioro del valor de valores representativos de deuda a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4483,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5943',4482,'Deterioro del valor de valores representativos de deuda a corto plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4484,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5944',4482,'Deterioro del valor de valores representativos de deuda a corto plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4485,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5945',4482,'Deterioro del valor de valores representativos de deuda a corto plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4486,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','595',4477,'Deterioro del valor de créditos a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4487,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5953',4486,'Deterioro del valor de créditos a corto plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4488,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5954',4486,'Deterioro del valor de créditos a corto plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4489,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5955',4486,'Deterioro del valor de créditos a corto plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4490,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','596',4477,'Deterioro del valor de participaciones a corto plazo',0,NULL,NULL,1,NULL,NULL),(4491,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','597',4477,'Deterioro del valor de valores representativos de deuda a corto plazo',0,NULL,NULL,1,NULL,NULL),(4492,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','598',4477,'Deterioro de valor de créditos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4493,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','60',4006,'Compras',0,NULL,NULL,1,NULL,NULL),(4494,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','COMPRAS','600',4493,'Compras de mercaderías',0,NULL,NULL,1,NULL,NULL),(4495,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','COMPRAS','601',4493,'Compras de materias primas',0,NULL,NULL,1,NULL,NULL),(4496,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','602',4493,'Compras de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4497,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','606',4493,'Descuentos sobre compras por pronto pago',0,NULL,NULL,1,NULL,NULL),(4498,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6060',4497,'Descuentos sobre compras por pronto pago de mercaderías',0,NULL,NULL,1,NULL,NULL),(4499,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6061',4497,'Descuentos sobre compras por pronto pago de materias primas',0,NULL,NULL,1,NULL,NULL),(4500,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6062',4497,'Descuentos sobre compras por pronto pago de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4501,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','COMPRAS','607',4493,'Trabajos realizados por otras empresas',0,NULL,NULL,1,NULL,NULL),(4502,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','608',4493,'Devoluciones de compras y operaciones similares',0,NULL,NULL,1,NULL,NULL),(4503,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6080',4502,'Devoluciones de compras de mercaderías',0,NULL,NULL,1,NULL,NULL),(4504,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6081',4502,'Devoluciones de compras de materias primas',0,NULL,NULL,1,NULL,NULL),(4505,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6082',4502,'Devoluciones de compras de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4506,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','609',4493,'Rappels por compras',0,NULL,NULL,1,NULL,NULL),(4507,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6090',4506,'Rappels por compras de mercaderías',0,NULL,NULL,1,NULL,NULL),(4508,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6091',4506,'Rappels por compras de materias primas',0,NULL,NULL,1,NULL,NULL),(4509,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6092',4506,'Rappels por compras de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4510,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','61',4006,'Variación de existencias',0,NULL,NULL,1,NULL,NULL),(4511,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','610',4510,'Variación de existencias de mercaderías',0,NULL,NULL,1,NULL,NULL),(4512,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','611',4510,'Variación de existencias de materias primas',0,NULL,NULL,1,NULL,NULL),(4513,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','612',4510,'Variación de existencias de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4514,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','62',4006,'Servicios exteriores',0,NULL,NULL,1,NULL,NULL),(4515,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','620',4514,'Gastos en investigación y desarrollo del ejercicio',0,NULL,NULL,1,NULL,NULL),(4516,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','621',4514,'Arrendamientos y cánones',0,NULL,NULL,1,NULL,NULL),(4517,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','622',4514,'Reparaciones y conservación',0,NULL,NULL,1,NULL,NULL),(4518,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','623',4514,'Servicios profesionales independientes',0,NULL,NULL,1,NULL,NULL),(4519,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','624',4514,'Transportes',0,NULL,NULL,1,NULL,NULL),(4520,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','625',4514,'Primas de seguros',0,NULL,NULL,1,NULL,NULL),(4521,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','626',4514,'Servicios bancarios y similares',0,NULL,NULL,1,NULL,NULL),(4522,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','627',4514,'Publicidad, propaganda y relaciones públicas',0,NULL,NULL,1,NULL,NULL),(4523,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','628',4514,'Suministros',0,NULL,NULL,1,NULL,NULL),(4524,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','629',4514,'Otros servicios',0,NULL,NULL,1,NULL,NULL),(4525,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','63',4006,'Tributos',0,NULL,NULL,1,NULL,NULL),(4526,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','630',4525,'Impuesto sobre benecifios',0,NULL,NULL,1,NULL,NULL),(4527,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6300',4526,'Impuesto corriente',0,NULL,NULL,1,NULL,NULL),(4528,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6301',4526,'Impuesto diferido',0,NULL,NULL,1,NULL,NULL),(4529,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','631',4525,'Otros tributos',0,NULL,NULL,1,NULL,NULL),(4530,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','633',4525,'Ajustes negativos en la imposición sobre beneficios',0,NULL,NULL,1,NULL,NULL),(4531,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','634',4525,'Ajustes negativos en la imposición indirecta',0,NULL,NULL,1,NULL,NULL),(4532,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6341',4531,'Ajustes negativos en IVA de activo corriente',0,NULL,NULL,1,NULL,NULL),(4533,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6342',4531,'Ajustes negativos en IVA de inversiones',0,NULL,NULL,1,NULL,NULL),(4534,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','636',4525,'Devolución de impuestos',0,NULL,NULL,1,NULL,NULL),(4535,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','638',4525,'Ajustes positivos en la imposición sobre beneficios',0,NULL,NULL,1,NULL,NULL),(4536,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','639',4525,'Ajustes positivos en la imposición directa',0,NULL,NULL,1,NULL,NULL),(4537,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6391',4536,'Ajustes positivos en IVA de activo corriente',0,NULL,NULL,1,NULL,NULL),(4538,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6392',4536,'Ajustes positivos en IVA de inversiones',0,NULL,NULL,1,NULL,NULL),(4539,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','64',4006,'Gastos de personal',0,NULL,NULL,1,NULL,NULL),(4540,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','640',4539,'Sueldos y salarios',0,NULL,NULL,1,NULL,NULL),(4541,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','641',4539,'Indemnizaciones',0,NULL,NULL,1,NULL,NULL),(4542,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','642',4539,'Seguridad social a cargo de la empresa',0,NULL,NULL,1,NULL,NULL),(4543,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','649',4539,'Otros gastos sociales',0,NULL,NULL,1,NULL,NULL),(4544,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','65',4006,'Otros gastos de gestión',0,NULL,NULL,1,NULL,NULL),(4545,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','650',4544,'Pérdidas de créditos comerciales incobrables',0,NULL,NULL,1,NULL,NULL),(4546,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','651',4544,'Resultados de operaciones en común',0,NULL,NULL,1,NULL,NULL),(4547,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6510',4546,'Beneficio transferido gestor',0,NULL,NULL,1,NULL,NULL),(4548,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6511',4546,'Pérdida soportada participe o asociado no gestor',0,NULL,NULL,1,NULL,NULL),(4549,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','659',4544,'Otras pérdidas en gestión corriente',0,NULL,NULL,1,NULL,NULL),(4550,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','66',4006,'Gastos financieros',0,NULL,NULL,1,NULL,NULL),(4551,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','660',4550,'Gastos financieros por actualización de provisiones',0,NULL,NULL,1,NULL,NULL),(4552,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','661',4550,'Intereses de obligaciones y bonos',0,NULL,NULL,1,NULL,NULL),(4553,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6610',4452,'Intereses de obligaciones y bonos a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4554,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6611',4452,'Intereses de obligaciones y bonos a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4555,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6612',4452,'Intereses de obligaciones y bonos a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4556,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6613',4452,'Intereses de obligaciones y bonos a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4557,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6615',4452,'Intereses de obligaciones y bonos a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4558,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6616',4452,'Intereses de obligaciones y bonos a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4559,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6617',4452,'Intereses de obligaciones y bonos a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4560,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6618',4452,'Intereses de obligaciones y bonos a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4561,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','662',4550,'Intereses de deudas',0,NULL,NULL,1,NULL,NULL),(4562,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6620',4561,'Intereses de deudas empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4563,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6621',4561,'Intereses de deudas empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4564,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6622',4561,'Intereses de deudas otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4565,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6623',4561,'Intereses de deudas con entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4566,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6624',4561,'Intereses de deudas otras empresas',0,NULL,NULL,1,NULL,NULL),(4567,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','663',4550,'Pérdidas por valorización de activos y pasivos financieros por su valor razonable',0,NULL,NULL,1,NULL,NULL),(4568,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','664',4550,'Gastos por dividendos de acciones o participaciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4569,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6640',4568,'Dividendos de pasivos empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4570,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6641',4568,'Dividendos de pasivos empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4571,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6642',4568,'Dividendos de pasivos otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4572,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6643',4568,'Dividendos de pasivos otras empresas',0,NULL,NULL,1,NULL,NULL),(4573,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','665',4550,'Intereses por descuento de efectos y operaciones de factoring',0,NULL,NULL,1,NULL,NULL),(4574,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6650',4573,'Intereses por descuento de efectos en entidades de crédito del grupo',0,NULL,NULL,1,NULL,NULL),(4575,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6651',4573,'Intereses por descuento de efectos en entidades de crédito asociadas',0,NULL,NULL,1,NULL,NULL),(4576,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6652',4573,'Intereses por descuento de efectos en entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4577,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6653',4573,'Intereses por descuento de efectos en otras entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4578,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6654',4573,'Intereses por operaciones de factoring con entidades de crédito del grupo',0,NULL,NULL,1,NULL,NULL),(4579,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6655',4573,'Intereses por operaciones de factoring con entidades de crédito asociadas',0,NULL,NULL,1,NULL,NULL),(4580,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6656',4573,'Intereses por operaciones de factoring con otras entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4581,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6657',4573,'Intereses por operaciones de factoring con otras entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4582,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','666',4550,'Pérdidas en participaciones y valores representativos de deuda',0,NULL,NULL,1,NULL,NULL),(4583,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6660',4582,'Pérdidas en valores representativos de deuda a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4584,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6661',4582,'Pérdidas en valores representativos de deuda a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4585,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6662',4582,'Pérdidas en valores representativos de deuda a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4586,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6663',4582,'Pérdidas en participaciones y valores representativos de deuda a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4587,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6665',4582,'Pérdidas en participaciones y valores representativos de deuda a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4588,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6666',4582,'Pérdidas en participaciones y valores representativos de deuda a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4589,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6667',4582,'Pérdidas en valores representativos de deuda a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4590,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6668',4582,'Pérdidas en valores representativos de deuda a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4591,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','667',4550,'Pérdidas de créditos no comerciales',0,NULL,NULL,1,NULL,NULL),(4592,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6670',4591,'Pérdidas de créditos a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4593,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6671',4591,'Pérdidas de créditos a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4594,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6672',4591,'Pérdidas de créditos a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4595,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6673',4591,'Pérdidas de créditos a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4596,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6675',4591,'Pérdidas de créditos a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4597,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6676',4591,'Pérdidas de créditos a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4598,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6677',4591,'Pérdidas de créditos a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4599,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6678',4591,'Pérdidas de créditos a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4600,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','668',4550,'Diferencias negativas de cambio',0,NULL,NULL,1,NULL,NULL),(4601,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','669',4550,'Otros gastos financieros',0,NULL,NULL,1,NULL,NULL),(4602,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','67',4006,'Pérdidas procedentes de activos no corrientes y gastos excepcionales',0,NULL,NULL,1,NULL,NULL),(4603,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','670',4602,'Pérdidas procedentes del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4604,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','671',4602,'Pérdidas procedentes del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4605,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','672',4602,'Pérdidas procedentes de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4607,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','673',4602,'Pérdidas procedentes de participaciones a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4608,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6733',4607,'Pérdidas procedentes de participaciones a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4609,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6734',4607,'Pérdidas procedentes de participaciones a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4610,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6735',4607,'Pérdidas procedentes de participaciones a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4611,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','675',4602,'Pérdidas por operaciones con obligaciones propias',0,NULL,NULL,1,NULL,NULL),(4612,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','678',4602,'Gastos excepcionales',0,NULL,NULL,1,NULL,NULL),(4613,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','68',4006,'Dotaciones para amortizaciones',0,NULL,NULL,1,NULL,NULL),(4614,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','680',4613,'Amortización del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4615,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','681',4613,'Amortización del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4616,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','682',4613,'Amortización de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4617,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','69',4006,'Pérdidas por deterioro y otras dotaciones',0,NULL,NULL,1,NULL,NULL),(4618,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','690',4617,'Pérdidas por deterioro del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4619,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','691',4617,'Pérdidas por deterioro del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4620,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','692',4617,'Pérdidas por deterioro de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4621,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','693',4617,'Pérdidas por deterioro de existencias',0,NULL,NULL,1,NULL,NULL),(4622,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6930',4621,'Pérdidas por deterioro de productos terminados y en curso de fabricación',0,NULL,NULL,1,NULL,NULL),(4623,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6931',4621,'Pérdidas por deterioro de mercaderías',0,NULL,NULL,1,NULL,NULL),(4624,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6932',4621,'Pérdidas por deterioro de materias primas',0,NULL,NULL,1,NULL,NULL),(4625,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6933',4621,'Pérdidas por deterioro de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4626,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','694',4617,'Pérdidas por deterioro de créditos por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4627,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','695',4617,'Dotación a la provisión por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4628,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6954',4627,'Dotación a la provisión por contratos onerosos',0,NULL,NULL,1,NULL,NULL),(4629,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6959',4628,'Dotación a la provisión para otras operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4630,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','696',4617,'Pérdidas por deterioro de participaciones y valores representativos de deuda a largo plazo',0,NULL,NULL,1,NULL,NULL),(4631,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6960',4630,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4632,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6961',4630,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4633,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6962',4630,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4634,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6963',4630,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4635,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6965',4630,'Pérdidas por deterioro en valores representativos de deuda a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4636,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6966',4630,'Pérdidas por deterioro en valores representativos de deuda a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4637,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6967',4630,'Pérdidas por deterioro en valores representativos de deuda a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4638,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6968',4630,'Pérdidas por deterioro en valores representativos de deuda a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4639,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','697',4617,'Pérdidas por deterioro de créditos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4640,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6970',4639,'Pérdidas por deterioro de créditos a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4641,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6971',4639,'Pérdidas por deterioro de créditos a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4642,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6972',4639,'Pérdidas por deterioro de créditos a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4643,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6973',4639,'Pérdidas por deterioro de créditos a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4644,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','698',4617,'Pérdidas por deterioro de participaciones y valores representativos de deuda a corto plazo',0,NULL,NULL,1,NULL,NULL),(4645,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6980',4644,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4646,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6981',4644,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4647,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6985',4644,'Pérdidas por deterioro en valores representativos de deuda a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4648,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6986',4644,'Pérdidas por deterioro en valores representativos de deuda a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4649,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6988',4644,'Pérdidas por deterioro en valores representativos de deuda a corto plazo de otras empresas',0,NULL,NULL,1,NULL,NULL),(4650,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','699',4617,'Pérdidas por deterioro de crédito a corto plazo',0,NULL,NULL,1,NULL,NULL),(4651,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6990',4650,'Pérdidas por deterioro de crédito a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4652,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6991',4650,'Pérdidas por deterioro de crédito a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4653,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6992',4650,'Pérdidas por deterioro de crédito a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4654,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6993',4650,'Pérdidas por deterioro de crédito a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4655,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','70',4007,'Ventas',0,NULL,NULL,1,NULL,NULL),(4656,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','VENTAS','700',4655,'Ventas de mercaderías',0,NULL,NULL,1,NULL,NULL),(4657,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','VENTAS','701',4655,'Ventas de productos terminados',0,NULL,NULL,1,NULL,NULL),(4658,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','702',4655,'Ventas de productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4659,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','703',4655,'Ventas de subproductos y residuos',0,NULL,NULL,1,NULL,NULL),(4660,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','704',4655,'Ventas de envases y embalajes',0,NULL,NULL,1,NULL,NULL),(4661,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','VENTAS','705',4655,'Prestaciones de servicios',0,NULL,NULL,1,NULL,NULL),(4662,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','706',4655,'Descuentos sobre ventas por pronto pago',0,NULL,NULL,1,NULL,NULL),(4663,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7060',4662,'Descuentos sobre ventas por pronto pago de mercaderías',0,NULL,NULL,1,NULL,NULL),(4664,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7061',4662,'Descuentos sobre ventas por pronto pago de productos terminados',0,NULL,NULL,1,NULL,NULL),(4665,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7062',4662,'Descuentos sobre ventas por pronto pago de productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4666,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7063',4662,'Descuentos sobre ventas por pronto pago de subproductos y residuos',0,NULL,NULL,1,NULL,NULL),(4667,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','708',4655,'Devoluciones de ventas y operacioes similares',0,NULL,NULL,1,NULL,NULL),(4668,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7080',4667,'Devoluciones de ventas de mercaderías',0,NULL,NULL,1,NULL,NULL),(4669,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7081',4667,'Devoluciones de ventas de productos terminados',0,NULL,NULL,1,NULL,NULL),(4670,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7082',4667,'Devoluciones de ventas de productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4671,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7083',4667,'Devoluciones de ventas de subproductos y residuos',0,NULL,NULL,1,NULL,NULL),(4672,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7084',4667,'Devoluciones de ventas de envases y embalajes',0,NULL,NULL,1,NULL,NULL),(4673,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','71',4007,'Variación de existencias',0,NULL,NULL,1,NULL,NULL),(4674,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','710',4673,'Variación de existencias de productos en curso',0,NULL,NULL,1,NULL,NULL),(4675,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','711',4673,'Variación de existencias de productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4676,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','712',4673,'Variación de existencias de productos terminados',0,NULL,NULL,1,NULL,NULL),(4677,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','713',4673,'Variación de existencias de subproductos, residuos y materiales recuperados',0,NULL,NULL,1,NULL,NULL),(4678,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','73',4007,'Trabajos realizados para la empresa',0,NULL,NULL,1,NULL,NULL),(4679,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','730',4678,'Trabajos realizados para el inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4680,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','731',4678,'Trabajos realizados para el inmovilizado tangible',0,NULL,NULL,1,NULL,NULL),(4681,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','732',4678,'Trabajos realizados en inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4682,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','733',4678,'Trabajos realizados para el inmovilizado material en curso',0,NULL,NULL,1,NULL,NULL),(4683,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','74',4007,'Subvenciones, donaciones y legados',0,NULL,NULL,1,NULL,NULL),(4684,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','740',4683,'Subvenciones, donaciones y legados a la explotación',0,NULL,NULL,1,NULL,NULL),(4685,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','746',4683,'Subvenciones, donaciones y legados de capital transferidos al resultado del ejercicio',0,NULL,NULL,1,NULL,NULL),(4686,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','747',4683,'Otras subvenciones, donaciones y legados transferidos al resultado del ejercicio',0,NULL,NULL,1,NULL,NULL),(4687,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','75',4007,'Otros ingresos de gestión',0,NULL,NULL,1,NULL,NULL),(4688,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','751',4687,'Resultados de operaciones en común',0,NULL,NULL,1,NULL,NULL),(4689,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7510',4688,'Pérdida transferida gestor',0,NULL,NULL,1,NULL,NULL),(4690,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7511',4688,'Beneficio atribuido participe o asociado no gestor',0,NULL,NULL,1,NULL,NULL),(4691,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','752',4687,'Ingreso por arrendamiento',0,NULL,NULL,1,NULL,NULL),(4692,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','753',4687,'Ingresos de propiedad industrial cedida en explotación',0,NULL,NULL,1,NULL,NULL),(4693,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','754',4687,'Ingresos por comisiones',0,NULL,NULL,1,NULL,NULL),(4694,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','755',4687,'Ingresos por servicios al personal',0,NULL,NULL,1,NULL,NULL),(4695,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','759',4687,'Ingresos por servicios diversos',0,NULL,NULL,1,NULL,NULL),(4696,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76',4007,'Ingresos financieros',0,NULL,NULL,1,NULL,NULL),(4697,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','760',4696,'Ingresos de participaciones en instrumentos de patrimonio',0,NULL,NULL,1,NULL,NULL),(4698,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7600',4697,'Ingresos de participaciones en instrumentos de patrimonio empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4699,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7601',4697,'Ingresos de participaciones en instrumentos de patrimonio empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4700,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7602',4697,'Ingresos de participaciones en instrumentos de patrimonio otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4701,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7603',4697,'Ingresos de participaciones en instrumentos de patrimonio otras empresas',0,NULL,NULL,1,NULL,NULL),(4702,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','761',4696,'Ingresos de valores representativos de deuda',0,NULL,NULL,1,NULL,NULL),(4703,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7610',4702,'Ingresos de valores representativos de deuda empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4704,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7611',4702,'Ingresos de valores representativos de deuda empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4705,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7612',4702,'Ingresos de valores representativos de deuda otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4706,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7613',4702,'Ingresos de valores representativos de deuda otras empresas',0,NULL,NULL,1,NULL,NULL),(4707,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','762',4696,'Ingresos de créditos',0,NULL,NULL,1,NULL,NULL),(4708,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7620',4707,'Ingresos de créditos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4709,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76200',4708,'Ingresos de crédito a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4710,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76201',4708,'Ingresos de crédito a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4711,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76202',4708,'Ingresos de crédito a largo plazo otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4712,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76203',4708,'Ingresos de crédito a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4713,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7621',4707,'Ingresos de créditos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4714,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76210',4713,'Ingresos de crédito a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4715,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76211',4713,'Ingresos de crédito a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4716,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76212',4713,'Ingresos de crédito a corto plazo otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4717,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76213',4713,'Ingresos de crédito a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4718,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','763',4696,'Beneficios por valorización de activos y pasivos financieros por su valor razonable',0,NULL,NULL,1,NULL,NULL),(4719,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','766',4696,'Beneficios en participaciones y valores representativos de deuda',0,NULL,NULL,1,NULL,NULL),(4720,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7660',4719,'Beneficios en participaciones y valores representativos de deuda a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4721,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7661',4719,'Beneficios en participaciones y valores representativos de deuda a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4722,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7662',4719,'Beneficios en participaciones y valores representativos de deuda a largo plazo otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4723,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7663',4719,'Beneficios en participaciones y valores representativos de deuda a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4724,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7665',4719,'Beneficios en participaciones y valores representativos de deuda a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4725,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7666',4719,'Beneficios en participaciones y valores representativos de deuda a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4726,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7667',4719,'Beneficios en participaciones y valores representativos de deuda a corto plazo otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4727,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7668',4719,'Beneficios en participaciones y valores representativos de deuda a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4728,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','768',4696,'Diferencias positivas de cambio',0,NULL,NULL,1,NULL,NULL),(4729,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','769',4696,'Otros ingresos financieros',0,NULL,NULL,1,NULL,NULL),(4730,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','77',4007,'Beneficios procedentes de activos no corrientes e ingresos excepcionales',0,NULL,NULL,1,NULL,NULL),(4731,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','770',4730,'Beneficios procedentes del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4732,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','771',4730,'Beneficios procedentes del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4733,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','772',4730,'Beneficios procedentes de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4734,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','773',4730,'Beneficios procedentes de participaciones a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4735,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7733',4734,'Beneficios procedentes de participaciones a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4736,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7734',4734,'Beneficios procedentes de participaciones a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4737,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7735',4734,'Beneficios procedentes de participaciones a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4738,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','775',4730,'Beneficios por operaciones con obligaciones propias',0,NULL,NULL,1,NULL,NULL),(4739,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','778',4730,'Ingresos excepcionales',0,NULL,NULL,1,NULL,NULL),(4741,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','79',4007,'Excesos y aplicaciones de provisiones y pérdidas por deterioro',0,NULL,NULL,1,NULL,NULL),(4742,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','790',4741,'Revisión del deterioro del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4743,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','791',4741,'Revisión del deterioro del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4744,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','792',4741,'Revisión del deterioro de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4745,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','793',4741,'Revisión del deterioro de las existencias',0,NULL,NULL,1,NULL,NULL),(4746,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7930',4745,'Revisión del deterioro de productos terminados y en curso de fabricación',0,NULL,NULL,1,NULL,NULL),(4747,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7931',4745,'Revisión del deterioro de mercaderías',0,NULL,NULL,1,NULL,NULL),(4748,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7932',4745,'Revisión del deterioro de materias primas',0,NULL,NULL,1,NULL,NULL),(4749,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7933',4745,'Revisión del deterioro de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4750,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','794',4741,'Revisión del deterioro de créditos por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4751,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','795',4741,'Exceso de provisiones',0,NULL,NULL,1,NULL,NULL),(4752,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7951',4751,'Exceso de provisión para impuestos',0,NULL,NULL,1,NULL,NULL),(4753,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7952',4751,'Exceso de provisión para otras responsabilidades',0,NULL,NULL,1,NULL,NULL),(4755,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7954',4751,'Exceso de provisión para operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4756,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','79544',4755,'Exceso de provisión por contratos onerosos',0,NULL,NULL,1,NULL,NULL),(4757,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','79549',4755,'Exceso de provisión para otras operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4758,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7955',4751,'Exceso de provisión para actuaciones medioambienteales',0,NULL,NULL,1,NULL,NULL),(4759,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','796',4741,'Revisión del deterioro de participaciones y valores representativos de deuda a largo plazo',0,NULL,NULL,1,NULL,NULL),(4760,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7960',4759,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4761,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7961',4759,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4762,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7962',4759,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4763,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7963',4759,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4764,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7965',4759,'Revisión del deterioro de valores representativos a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4765,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7966',4759,'Revisión del deterioro de valores representativos a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4766,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7967',4759,'Revisión del deterioro de valores representativos a largo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4767,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7968',4759,'Revisión del deterioro de valores representativos a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4768,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','797',4741,'Revisión del deterioro de créditos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4769,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7970',4768,'Revisión del deterioro de créditos a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4770,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7971',4768,'Revisión del deterioro de créditos a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4771,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7972',4768,'Revisión del deterioro de créditos a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4772,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7973',4768,'Revisión del deterioro de créditos a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4773,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','798',4741,'Revisión del deterioro de participaciones y valores representativos de deuda a corto plazo',0,NULL,NULL,1,NULL,NULL),(4774,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7980',4773,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4775,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7981',4773,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4776,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7985',4773,'Revisión del deterioro de valores representativos de deuda a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4777,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7986',4773,'Revisión del deterioro de valores representativos de deuda a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4778,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7987',4773,'Revisión del deterioro de valores representativos de deuda a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4779,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7988',4773,'Revisión del deterioro de valores representativos de deuda a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4780,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','799',4741,'Revisión del deterioro de créditos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4781,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7990',4780,'Revisión del deterioro de créditos a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4782,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7991',4780,'Revisión del deterioro de créditos a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4783,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7992',4780,'Revisión del deterioro de créditos a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4784,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7993',4780,'Revisión del deterioro de créditos a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_accounting_account` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accounting_bookkeeping`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_bookkeeping`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_bookkeeping` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `doc_date` date NOT NULL,
    +  `doc_type` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `doc_ref` varchar(300) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_doc` int(11) NOT NULL,
    +  `fk_docdet` int(11) NOT NULL,
    +  `thirdparty_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `numero_compte` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label_compte` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label_operation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `debit` double(24,8) DEFAULT NULL,
    +  `credit` double(24,8) DEFAULT NULL,
    +  `montant` double(24,8) DEFAULT NULL,
    +  `sens` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_amount` double(24,8) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lettering_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_lettering` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_journal` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `journal_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `piece_num` int(11) NOT NULL,
    +  `validated` tinyint(4) NOT NULL DEFAULT '0',
    +  `date_validated` datetime DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `subledger_account` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `subledger_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_lim_reglement` datetime DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_accounting_bookkeeping_fk_doc` (`fk_doc`)
    +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_bookkeeping`
    +--
    +
    +LOCK TABLES `llx_accounting_bookkeeping` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_bookkeeping` DISABLE KEYS */;
    +INSERT INTO `llx_accounting_bookkeeping` VALUES (2,'2017-02-19','','',0,0,NULL,'1','ttt',NULL,5.00000000,0.00000000,5.00000000,'D',NULL,NULL,NULL,NULL,12,NULL,'VTE',NULL,1,0,NULL,1,NULL,'2017-08-27 15:29:05','2018-11-23 11:56:09','1',NULL,NULL,NULL,NULL),(4,'2017-02-19','','',0,0,NULL,'10','',NULL,0.00000000,5.00000000,5.00000000,'C',NULL,NULL,NULL,NULL,12,NULL,'VTE',NULL,1,0,NULL,1,NULL,'2017-08-27 15:29:05','2018-11-23 11:56:09','10',NULL,NULL,NULL,NULL),(6,'2017-02-19','','',0,0,NULL,'NotDefined','',NULL,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL,12,NULL,'VTE',NULL,2,0,NULL,1,NULL,'2017-08-27 15:29:05','2018-11-23 11:56:09','NotDefined',NULL,NULL,NULL,NULL),(9,'2017-02-19','','',0,0,NULL,'NotDefined','',NULL,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL,12,NULL,'VTE',NULL,3,0,NULL,1,NULL,'2017-08-27 15:29:05','2018-11-23 11:56:09','NotDefined',NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_accounting_bookkeeping` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accounting_bookkeeping_tmp`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_bookkeeping_tmp`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_bookkeeping_tmp` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `doc_date` date NOT NULL,
    +  `doc_type` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `doc_ref` varchar(300) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_doc` int(11) NOT NULL,
    +  `fk_docdet` int(11) NOT NULL,
    +  `thirdparty_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `subledger_account` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `subledger_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `numero_compte` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label_compte` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `label_operation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `debit` double(24,8) NOT NULL,
    +  `credit` double(24,8) NOT NULL,
    +  `montant` double(24,8) NOT NULL,
    +  `sens` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_amount` double(24,8) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lettering_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_lettering` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_journal` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `journal_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `piece_num` int(11) NOT NULL,
    +  `validated` tinyint(4) NOT NULL DEFAULT '0',
    +  `date_validated` datetime DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_lim_reglement` datetime DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_accounting_bookkeeping_doc_date` (`doc_date`),
    +  KEY `idx_accounting_bookkeeping_fk_docdet` (`fk_docdet`),
    +  KEY `idx_accounting_bookkeeping_numero_compte` (`numero_compte`),
    +  KEY `idx_accounting_bookkeeping_code_journal` (`code_journal`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_bookkeeping_tmp`
    +--
    +
    +LOCK TABLES `llx_accounting_bookkeeping_tmp` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_bookkeeping_tmp` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_accounting_bookkeeping_tmp` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accounting_fiscalyear`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_fiscalyear`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_fiscalyear` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `date_start` date DEFAULT NULL,
    +  `date_end` date DEFAULT NULL,
    +  `statut` tinyint(4) NOT NULL DEFAULT '0',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_fiscalyear`
    +--
    +
    +LOCK TABLES `llx_accounting_fiscalyear` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_fiscalyear` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_accounting_fiscalyear` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accounting_journal`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_journal`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_journal` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `nature` smallint(6) NOT NULL DEFAULT '0',
    +  `active` smallint(6) DEFAULT '0',
    +  `entity` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_accounting_journal_code` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_journal`
    +--
    +
    +LOCK TABLES `llx_accounting_journal` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_journal` DISABLE KEYS */;
    +INSERT INTO `llx_accounting_journal` VALUES (1,'VT','Sale journal',2,1,1),(2,'AC','Purchase journal',3,1,1),(3,'BQ','Bank journal',4,1,1),(4,'OD','Other journal',1,1,1),(5,'AN','Has new journal',9,1,1),(6,'ER','Expense report journal',5,1,1),(7,'INV','Inventory journal',8,1,1);
    +/*!40000 ALTER TABLE `llx_accounting_journal` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accounting_system`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_system`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_system` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `pcg_version` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` smallint(6) DEFAULT '0',
    +  `fk_country` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_accounting_system_pcg_version` (`pcg_version`)
    +) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_system`
    +--
    +
    +LOCK TABLES `llx_accounting_system` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_system` DISABLE KEYS */;
    +INSERT INTO `llx_accounting_system` VALUES (1,'PCG99-ABREGE','The simple accountancy french plan',1,1),(2,'PCG99-BASE','The base accountancy french plan',1,1),(3,'PCMN-BASE','The base accountancy belgium plan',1,2),(4,'PCG08-PYME','The PYME accountancy spanish plan',1,4),(5,'PC-MIPYME','The PYME accountancy Chile plan',1,67),(6,'ENG-BASE','England plan',1,7),(7,'SYSCOHADA','Plan comptable Ouest-Africain',1,49),(39,'PCG14-DEV','The developed accountancy french plan 2014',1,1),(40,'PCG_SUISSE','Switzerland plan',1,6),(41,'PCN-LUXEMBURG','Plan comptable normalisé Luxembourgeois',1,140),(42,'DK-STD','Standardkontoplan fra SKAT',1,80),(43,'PCT','The Tunisia plan',1,10),(44,'PCG','The Moroccan chart of accounts',1,12),(47,'SYSCOHADA-BJ','Plan comptable Ouest-Africain',1,49),(48,'SYSCOHADA-BF','Plan comptable Ouest-Africain',1,60),(49,'SYSCOHADA-CM','Plan comptable Ouest-Africain',1,24),(50,'SYSCOHADA-CF','Plan comptable Ouest-Africain',1,65),(51,'SYSCOHADA-KM','Plan comptable Ouest-Africain',1,71),(52,'SYSCOHADA-CG','Plan comptable Ouest-Africain',1,72),(53,'SYSCOHADA-CI','Plan comptable Ouest-Africain',1,21),(54,'SYSCOHADA-GA','Plan comptable Ouest-Africain',1,16),(55,'SYSCOHADA-GQ','Plan comptable Ouest-Africain',1,87),(56,'SYSCOHADA-ML','Plan comptable Ouest-Africain',1,147),(57,'SYSCOHADA-NE','Plan comptable Ouest-Africain',1,168),(58,'SYSCOHADA-CD','Plan comptable Ouest-Africain',1,73),(59,'SYSCOHADA-SN','Plan comptable Ouest-Africain',1,22),(60,'SYSCOHADA-TD','Plan comptable Ouest-Africain',1,66),(61,'SYSCOHADA-TG','Plan comptable Ouest-Africain',1,15),(62,'RO-BASE','Plan de conturi romanesc',1,188),(63,'SKR03','Standardkontenrahmen SKR 03',1,5),(64,'SKR04','Standardkontenrahmen SKR 04',1,5);
    +/*!40000 ALTER TABLE `llx_accounting_system` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accountingaccount`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accountingaccount`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accountingaccount` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_pcg_version` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pcg_type` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `pcg_subtype` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `account_number` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `account_parent` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_accountingaccount_fk_pcg_version` (`fk_pcg_version`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4785 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accountingaccount`
    +--
    +
    +LOCK TABLES `llx_accountingaccount` WRITE;
    +/*!40000 ALTER TABLE `llx_accountingaccount` DISABLE KEYS */;
    +INSERT INTO `llx_accountingaccount` VALUES (1,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','CAPITAL','101','1401','Capital',NULL,NULL,1),(2,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','105','1401','Ecarts de réévaluation',NULL,NULL,1),(3,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','1061','1401','Réserve légale',NULL,NULL,1),(4,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','1063','1401','Réserves statutaires ou contractuelles',NULL,NULL,1),(5,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','1064','1401','Réserves réglementées',NULL,NULL,1),(6,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','1068','1401','Autres réserves',NULL,NULL,1),(7,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','108','1401','Compte de l\'exploitant',NULL,NULL,1),(8,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','12','1401','Résultat de l\'exercice',NULL,NULL,1),(9,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','145','1401','Amortissements dérogatoires',NULL,NULL,1),(10,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','146','1401','Provision spéciale de réévaluation',NULL,NULL,1),(11,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','147','1401','Plus-values réinvesties',NULL,NULL,1),(12,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','148','1401','Autres provisions réglementées',NULL,NULL,1),(13,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','15','1401','Provisions pour risques et charges',NULL,NULL,1),(14,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','16','1401','Emprunts et dettes assimilees',NULL,NULL,1),(15,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','20','1402','Immobilisations incorporelles',NULL,NULL,1),(16,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','201','15','Frais d\'établissement',NULL,NULL,1),(17,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','206','15','Droit au bail',NULL,NULL,1),(18,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','207','15','Fonds commercial',NULL,NULL,1),(19,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','208','15','Autres immobilisations incorporelles',NULL,NULL,1),(20,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','21','1402','Immobilisations corporelles',NULL,NULL,1),(21,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','23','1402','Immobilisations en cours',NULL,NULL,1),(22,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','27','1402','Autres immobilisations financieres',NULL,NULL,1),(23,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','280','1402','Amortissements des immobilisations incorporelles',NULL,NULL,1),(24,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','281','1402','Amortissements des immobilisations corporelles',NULL,NULL,1),(25,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','290','1402','Provisions pour dépréciation des immobilisations incorporelles',NULL,NULL,1),(26,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','291','1402','Provisions pour dépréciation des immobilisations corporelles',NULL,NULL,1),(27,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','297','1402','Provisions pour dépréciation des autres immobilisations financières',NULL,NULL,1),(28,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','31','1403','Matieres premières',NULL,NULL,1),(29,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','32','1403','Autres approvisionnements',NULL,NULL,1),(30,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','33','1403','En-cours de production de biens',NULL,NULL,1),(31,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','34','1403','En-cours de production de services',NULL,NULL,1),(32,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','35','1403','Stocks de produits',NULL,NULL,1),(33,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','37','1403','Stocks de marchandises',NULL,NULL,1),(34,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','391','1403','Provisions pour dépréciation des matières premières',NULL,NULL,1),(35,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','392','1403','Provisions pour dépréciation des autres approvisionnements',NULL,NULL,1),(36,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','393','1403','Provisions pour dépréciation des en-cours de production de biens',NULL,NULL,1),(37,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','394','1403','Provisions pour dépréciation des en-cours de production de services',NULL,NULL,1),(38,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','395','1403','Provisions pour dépréciation des stocks de produits',NULL,NULL,1),(39,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','397','1403','Provisions pour dépréciation des stocks de marchandises',NULL,NULL,1),(40,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','SUPPLIER','400','1404','Fournisseurs et Comptes rattachés',NULL,NULL,1),(41,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','409','1404','Fournisseurs débiteurs',NULL,NULL,1),(42,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','CUSTOMER','410','1404','Clients et Comptes rattachés',NULL,NULL,1),(43,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','419','1404','Clients créditeurs',NULL,NULL,1),(44,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','421','1404','Personnel',NULL,NULL,1),(45,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','428','1404','Personnel',NULL,NULL,1),(46,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','43','1404','Sécurité sociale et autres organismes sociaux',NULL,NULL,1),(47,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','444','1404','Etat - impôts sur bénéfice',NULL,NULL,1),(48,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','445','1404','Etat - Taxes sur chiffre affaires',NULL,NULL,1),(49,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','447','1404','Autres impôts, taxes et versements assimilés',NULL,NULL,1),(50,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','45','1404','Groupe et associes',NULL,NULL,1),(51,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','455','50','Associés',NULL,NULL,1),(52,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','46','1404','Débiteurs divers et créditeurs divers',NULL,NULL,1),(53,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','47','1404','Comptes transitoires ou d\'attente',NULL,NULL,1),(54,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','481','1404','Charges à répartir sur plusieurs exercices',NULL,NULL,1),(55,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','486','1404','Charges constatées d\'avance',NULL,NULL,1),(56,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','487','1404','Produits constatés d\'avance',NULL,NULL,1),(57,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','491','1404','Provisions pour dépréciation des comptes de clients',NULL,NULL,1),(58,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','496','1404','Provisions pour dépréciation des comptes de débiteurs divers',NULL,NULL,1),(59,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','XXXXXX','50','1405','Valeurs mobilières de placement',NULL,NULL,1),(60,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','BANK','51','1405','Banques, établissements financiers et assimilés',NULL,NULL,1),(61,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','CASH','53','1405','Caisse',NULL,NULL,1),(62,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','XXXXXX','54','1405','Régies d\'avance et accréditifs',NULL,NULL,1),(63,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','XXXXXX','58','1405','Virements internes',NULL,NULL,1),(64,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','XXXXXX','590','1405','Provisions pour dépréciation des valeurs mobilières de placement',NULL,NULL,1),(65,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','PRODUCT','60','1406','Achats',NULL,NULL,1),(66,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','603','65','Variations des stocks',NULL,NULL,1),(67,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','SERVICE','61','1406','Services extérieurs',NULL,NULL,1),(68,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','62','1406','Autres services extérieurs',NULL,NULL,1),(69,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','63','1406','Impôts, taxes et versements assimiles',NULL,NULL,1),(70,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','641','1406','Rémunérations du personnel',NULL,NULL,1),(71,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','644','1406','Rémunération du travail de l\'exploitant',NULL,NULL,1),(72,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','SOCIAL','645','1406','Charges de sécurité sociale et de prévoyance',NULL,NULL,1),(73,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','646','1406','Cotisations sociales personnelles de l\'exploitant',NULL,NULL,1),(74,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','65','1406','Autres charges de gestion courante',NULL,NULL,1),(75,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','66','1406','Charges financières',NULL,NULL,1),(76,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','67','1406','Charges exceptionnelles',NULL,NULL,1),(77,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','681','1406','Dotations aux amortissements et aux provisions',NULL,NULL,1),(78,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','686','1406','Dotations aux amortissements et aux provisions',NULL,NULL,1),(79,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','687','1406','Dotations aux amortissements et aux provisions',NULL,NULL,1),(80,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','691','1406','Participation des salariés aux résultats',NULL,NULL,1),(81,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','695','1406','Impôts sur les bénéfices',NULL,NULL,1),(82,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','697','1406','Imposition forfaitaire annuelle des sociétés',NULL,NULL,1),(83,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','699','1406','Produits',NULL,NULL,1),(84,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','PRODUCT','701','1407','Ventes de produits finis',NULL,NULL,1),(85,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','SERVICE','706','1407','Prestations de services',NULL,NULL,1),(86,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','PRODUCT','707','1407','Ventes de marchandises',NULL,NULL,1),(87,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','PRODUCT','708','1407','Produits des activités annexes',NULL,NULL,1),(88,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','709','1407','Rabais, remises et ristournes accordés par l\'entreprise',NULL,NULL,1),(89,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','713','1407','Variation des stocks',NULL,NULL,1),(90,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','72','1407','Production immobilisée',NULL,NULL,1),(91,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','73','1407','Produits nets partiels sur opérations à long terme',NULL,NULL,1),(92,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','74','1407','Subventions d\'exploitation',NULL,NULL,1),(93,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','75','1407','Autres produits de gestion courante',NULL,NULL,1),(94,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','753','93','Jetons de présence et rémunérations d\'administrateurs, gérants,...',NULL,NULL,1),(95,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','754','93','Ristournes perçues des coopératives',NULL,NULL,1),(96,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','755','93','Quotes-parts de résultat sur opérations faites en commun',NULL,NULL,1),(97,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','76','1407','Produits financiers',NULL,NULL,1),(98,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','77','1407','Produits exceptionnels',NULL,NULL,1),(99,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','781','1407','Reprises sur amortissements et provisions',NULL,NULL,1),(100,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','786','1407','Reprises sur provisions pour risques',NULL,NULL,1),(101,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','787','1407','Reprises sur provisions',NULL,NULL,1),(102,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','79','1407','Transferts de charges',NULL,NULL,1),(103,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','10','1501','Capital  et réserves',NULL,NULL,1),(104,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','CAPITAL','101','103','Capital',NULL,NULL,1),(105,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','104','103','Primes liées au capital social',NULL,NULL,1),(106,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','105','103','Ecarts de réévaluation',NULL,NULL,1),(107,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','106','103','Réserves',NULL,NULL,1),(108,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','107','103','Ecart d\'equivalence',NULL,NULL,1),(109,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','108','103','Compte de l\'exploitant',NULL,NULL,1),(110,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','109','103','Actionnaires : capital souscrit - non appelé',NULL,NULL,1),(111,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','11','1501','Report à nouveau (solde créditeur ou débiteur)',NULL,NULL,1),(112,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','110','111','Report à nouveau (solde créditeur)',NULL,NULL,1),(113,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','119','111','Report à nouveau (solde débiteur)',NULL,NULL,1),(114,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','12','1501','Résultat de l\'exercice (bénéfice ou perte)',NULL,NULL,1),(115,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','120','114','Résultat de l\'exercice (bénéfice)',NULL,NULL,1),(116,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','129','114','Résultat de l\'exercice (perte)',NULL,NULL,1),(117,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','13','1501','Subventions d\'investissement',NULL,NULL,1),(118,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','131','117','Subventions d\'équipement',NULL,NULL,1),(119,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','138','117','Autres subventions d\'investissement',NULL,NULL,1),(120,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','139','117','Subventions d\'investissement inscrites au compte de résultat',NULL,NULL,1),(121,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','14','1501','Provisions réglementées',NULL,NULL,1),(122,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','142','121','Provisions réglementées relatives aux immobilisations',NULL,NULL,1),(123,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','143','121','Provisions réglementées relatives aux stocks',NULL,NULL,1),(124,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','144','121','Provisions réglementées relatives aux autres éléments de l\'actif',NULL,NULL,1),(125,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','145','121','Amortissements dérogatoires',NULL,NULL,1),(126,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','146','121','Provision spéciale de réévaluation',NULL,NULL,1),(127,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','147','121','Plus-values réinvesties',NULL,NULL,1),(128,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','148','121','Autres provisions réglementées',NULL,NULL,1),(129,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','15','1501','Provisions pour risques et charges',NULL,NULL,1),(130,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','151','129','Provisions pour risques',NULL,NULL,1),(131,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','153','129','Provisions pour pensions et obligations similaires',NULL,NULL,1),(132,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','154','129','Provisions pour restructurations',NULL,NULL,1),(133,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','155','129','Provisions pour impôts',NULL,NULL,1),(134,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','156','129','Provisions pour renouvellement des immobilisations (entreprises concessionnaires)',NULL,NULL,1),(135,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','157','129','Provisions pour charges à répartir sur plusieurs exercices',NULL,NULL,1),(136,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','158','129','Autres provisions pour charges',NULL,NULL,1),(137,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','16','1501','Emprunts et dettes assimilees',NULL,NULL,1),(138,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','161','137','Emprunts obligataires convertibles',NULL,NULL,1),(139,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','163','137','Autres emprunts obligataires',NULL,NULL,1),(140,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','164','137','Emprunts auprès des établissements de crédit',NULL,NULL,1),(141,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','165','137','Dépôts et cautionnements reçus',NULL,NULL,1),(142,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','166','137','Participation des salariés aux résultats',NULL,NULL,1),(143,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','167','137','Emprunts et dettes assortis de conditions particulières',NULL,NULL,1),(144,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','168','137','Autres emprunts et dettes assimilées',NULL,NULL,1),(145,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','169','137','Primes de remboursement des obligations',NULL,NULL,1),(146,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','17','1501','Dettes rattachées à des participations',NULL,NULL,1),(147,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','171','146','Dettes rattachées à des participations (groupe)',NULL,NULL,1),(148,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','174','146','Dettes rattachées à des participations (hors groupe)',NULL,NULL,1),(149,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','178','146','Dettes rattachées à des sociétés en participation',NULL,NULL,1),(150,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','18','1501','Comptes de liaison des établissements et sociétés en participation',NULL,NULL,1),(151,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','181','150','Comptes de liaison des établissements',NULL,NULL,1),(152,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','186','150','Biens et prestations de services échangés entre établissements (charges)',NULL,NULL,1),(153,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','187','150','Biens et prestations de services échangés entre établissements (produits)',NULL,NULL,1),(154,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','188','150','Comptes de liaison des sociétés en participation',NULL,NULL,1),(155,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','20','1502','Immobilisations incorporelles',NULL,NULL,1),(156,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','201','155','Frais d\'établissement',NULL,NULL,1),(157,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','203','155','Frais de recherche et de développement',NULL,NULL,1),(158,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','205','155','Concessions et droits similaires, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',NULL,NULL,1),(159,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','206','155','Droit au bail',NULL,NULL,1),(160,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','207','155','Fonds commercial',NULL,NULL,1),(161,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','208','155','Autres immobilisations incorporelles',NULL,NULL,1),(162,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','21','1502','Immobilisations corporelles',NULL,NULL,1),(163,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','211','162','Terrains',NULL,NULL,1),(164,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','212','162','Agencements et aménagements de terrains',NULL,NULL,1),(165,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','213','162','Constructions',NULL,NULL,1),(166,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','214','162','Constructions sur sol d\'autrui',NULL,NULL,1),(167,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','215','162','Installations techniques, matériels et outillage industriels',NULL,NULL,1),(168,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','218','162','Autres immobilisations corporelles',NULL,NULL,1),(169,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','22','1502','Immobilisations mises en concession',NULL,NULL,1),(170,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','23','1502','Immobilisations en cours',NULL,NULL,1),(171,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','231','170','Immobilisations corporelles en cours',NULL,NULL,1),(172,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','232','170','Immobilisations incorporelles en cours',NULL,NULL,1),(173,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','237','170','Avances et acomptes versés sur immobilisations incorporelles',NULL,NULL,1),(174,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','238','170','Avances et acomptes versés sur commandes d\'immobilisations corporelles',NULL,NULL,1),(175,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','25','1502','Parts dans des entreprises liées et créances sur des entreprises liées',NULL,NULL,1),(176,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','26','1502','Participations et créances rattachées à des participations',NULL,NULL,1),(177,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','261','176','Titres de participation',NULL,NULL,1),(178,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','266','176','Autres formes de participation',NULL,NULL,1),(179,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','267','176','Créances rattachées à des participations',NULL,NULL,1),(180,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','268','176','Créances rattachées à des sociétés en participation',NULL,NULL,1),(181,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','269','176','Versements restant à effectuer sur titres de participation non libérés',NULL,NULL,1),(182,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','27','1502','Autres immobilisations financieres',NULL,NULL,1),(183,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','271','183','Titres immobilisés autres que les titres immobilisés de l\'activité de portefeuille (droit de propriété)',NULL,NULL,1),(184,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','272','183','Titres immobilisés (droit de créance)',NULL,NULL,1),(185,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','273','183','Titres immobilisés de l\'activité de portefeuille',NULL,NULL,1),(186,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','274','183','Prêts',NULL,NULL,1),(187,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','275','183','Dépôts et cautionnements versés',NULL,NULL,1),(188,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','276','183','Autres créances immobilisées',NULL,NULL,1),(189,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','277','183','(Actions propres ou parts propres)',NULL,NULL,1),(190,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','279','183','Versements restant à effectuer sur titres immobilisés non libérés',NULL,NULL,1),(191,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','28','1502','Amortissements des immobilisations',NULL,NULL,1),(192,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','280','191','Amortissements des immobilisations incorporelles',NULL,NULL,1),(193,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','281','191','Amortissements des immobilisations corporelles',NULL,NULL,1),(194,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','282','191','Amortissements des immobilisations mises en concession',NULL,NULL,1),(195,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','29','1502','Dépréciations des immobilisations',NULL,NULL,1),(196,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','290','195','Dépréciations des immobilisations incorporelles',NULL,NULL,1),(197,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','291','195','Dépréciations des immobilisations corporelles',NULL,NULL,1),(198,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','292','195','Dépréciations des immobilisations mises en concession',NULL,NULL,1),(199,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','293','195','Dépréciations des immobilisations en cours',NULL,NULL,1),(200,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','296','195','Provisions pour dépréciation des participations et créances rattachées à des participations',NULL,NULL,1),(201,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','297','195','Provisions pour dépréciation des autres immobilisations financières',NULL,NULL,1),(202,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','31','1503','Matières premières (et fournitures)',NULL,NULL,1),(203,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','311','202','Matières (ou groupe) A',NULL,NULL,1),(204,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','312','202','Matières (ou groupe) B',NULL,NULL,1),(205,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','317','202','Fournitures A, B, C,',NULL,NULL,1),(206,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','32','1503','Autres approvisionnements',NULL,NULL,1),(207,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','321','206','Matières consommables',NULL,NULL,1),(208,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','322','206','Fournitures consommables',NULL,NULL,1),(209,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','326','206','Emballages',NULL,NULL,1),(210,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','33','1503','En-cours de production de biens',NULL,NULL,1),(211,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','331','210','Produits en cours',NULL,NULL,1),(212,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','335','210','Travaux en cours',NULL,NULL,1),(213,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','34','1503','En-cours de production de services',NULL,NULL,1),(214,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','341','213','Etudes en cours',NULL,NULL,1),(215,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','345','213','Prestations de services en cours',NULL,NULL,1),(216,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','35','1503','Stocks de produits',NULL,NULL,1),(217,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','351','216','Produits intermédiaires',NULL,NULL,1),(218,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','355','216','Produits finis',NULL,NULL,1),(219,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','358','216','Produits résiduels (ou matières de récupération)',NULL,NULL,1),(220,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','37','1503','Stocks de marchandises',NULL,NULL,1),(221,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','371','220','Marchandises (ou groupe) A',NULL,NULL,1),(222,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','372','220','Marchandises (ou groupe) B',NULL,NULL,1),(223,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','39','1503','Provisions pour dépréciation des stocks et en-cours',NULL,NULL,1),(224,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','391','223','Provisions pour dépréciation des matières premières',NULL,NULL,1),(225,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','392','223','Provisions pour dépréciation des autres approvisionnements',NULL,NULL,1),(226,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','393','223','Provisions pour dépréciation des en-cours de production de biens',NULL,NULL,1),(227,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','394','223','Provisions pour dépréciation des en-cours de production de services',NULL,NULL,1),(228,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','395','223','Provisions pour dépréciation des stocks de produits',NULL,NULL,1),(229,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','397','223','Provisions pour dépréciation des stocks de marchandises',NULL,NULL,1),(230,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','40','1504','Fournisseurs et Comptes rattachés',NULL,NULL,1),(231,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','400','230','Fournisseurs et Comptes rattachés',NULL,NULL,1),(232,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','SUPPLIER','401','230','Fournisseurs',NULL,NULL,1),(233,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','403','230','Fournisseurs - Effets à payer',NULL,NULL,1),(234,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','404','230','Fournisseurs d\'immobilisations',NULL,NULL,1),(235,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','405','230','Fournisseurs d\'immobilisations - Effets à payer',NULL,NULL,1),(236,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','408','230','Fournisseurs - Factures non parvenues',NULL,NULL,1),(237,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','409','230','Fournisseurs débiteurs',NULL,NULL,1),(238,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','41','1504','Clients et comptes rattachés',NULL,NULL,1),(239,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','410','238','Clients et Comptes rattachés',NULL,NULL,1),(240,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','CUSTOMER','411','238','Clients',NULL,NULL,1),(241,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','413','238','Clients - Effets à recevoir',NULL,NULL,1),(242,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','416','238','Clients douteux ou litigieux',NULL,NULL,1),(243,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','418','238','Clients - Produits non encore facturés',NULL,NULL,1),(244,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','419','238','Clients créditeurs',NULL,NULL,1),(245,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','42','1504','Personnel et comptes rattachés',NULL,NULL,1),(246,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','421','245','Personnel - Rémunérations dues',NULL,NULL,1),(247,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','422','245','Comités d\'entreprises, d\'établissement, ...',NULL,NULL,1),(248,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','424','245','Participation des salariés aux résultats',NULL,NULL,1),(249,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','425','245','Personnel - Avances et acomptes',NULL,NULL,1),(250,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','426','245','Personnel - Dépôts',NULL,NULL,1),(251,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','427','245','Personnel - Oppositions',NULL,NULL,1),(252,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','428','245','Personnel - Charges à payer et produits à recevoir',NULL,NULL,1),(253,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','43','1504','Sécurité sociale et autres organismes sociaux',NULL,NULL,1),(254,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','431','253','Sécurité sociale',NULL,NULL,1),(255,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','437','253','Autres organismes sociaux',NULL,NULL,1),(256,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','438','253','Organismes sociaux - Charges à payer et produits à recevoir',NULL,NULL,1),(257,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','44','1504','État et autres collectivités publiques',NULL,NULL,1),(258,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','441','257','État - Subventions à recevoir',NULL,NULL,1),(259,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','442','257','Etat - Impôts et taxes recouvrables sur des tiers',NULL,NULL,1),(260,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','443','257','Opérations particulières avec l\'Etat, les collectivités publiques, les organismes internationaux',NULL,NULL,1),(261,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','444','257','Etat - Impôts sur les bénéfices',NULL,NULL,1),(262,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','445','257','Etat - Taxes sur le chiffre d\'affaires',NULL,NULL,1),(263,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','446','257','Obligations cautionnées',NULL,NULL,1),(264,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','447','257','Autres impôts, taxes et versements assimilés',NULL,NULL,1),(265,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','448','257','Etat - Charges à payer et produits à recevoir',NULL,NULL,1),(266,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','449','257','Quotas d\'émission à restituer à l\'Etat',NULL,NULL,1),(267,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','45','1504','Groupe et associes',NULL,NULL,1),(268,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','451','267','Groupe',NULL,NULL,1),(269,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','455','267','Associés - Comptes courants',NULL,NULL,1),(270,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','456','267','Associés - Opérations sur le capital',NULL,NULL,1),(271,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','457','267','Associés - Dividendes à payer',NULL,NULL,1),(272,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','458','267','Associés - Opérations faites en commun et en G.I.E.',NULL,NULL,1),(273,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','46','1504','Débiteurs divers et créditeurs divers',NULL,NULL,1),(274,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','462','273','Créances sur cessions d\'immobilisations',NULL,NULL,1),(275,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','464','273','Dettes sur acquisitions de valeurs mobilières de placement',NULL,NULL,1),(276,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','465','273','Créances sur cessions de valeurs mobilières de placement',NULL,NULL,1),(277,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','467','273','Autres comptes débiteurs ou créditeurs',NULL,NULL,1),(278,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','468','273','Divers - Charges à payer et produits à recevoir',NULL,NULL,1),(279,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','47','1504','Comptes transitoires ou d\'attente',NULL,NULL,1),(280,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','471','279','Comptes d\'attente',NULL,NULL,1),(281,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','476','279','Différence de conversion - Actif',NULL,NULL,1),(282,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','477','279','Différences de conversion - Passif',NULL,NULL,1),(283,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','478','279','Autres comptes transitoires',NULL,NULL,1),(284,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','48','1504','Comptes de régularisation',NULL,NULL,1),(285,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','481','284','Charges à répartir sur plusieurs exercices',NULL,NULL,1),(286,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','486','284','Charges constatées d\'avance',NULL,NULL,1),(287,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','487','284','Produits constatés d\'avance',NULL,NULL,1),(288,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','488','284','Comptes de répartition périodique des charges et des produits',NULL,NULL,1),(289,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','489','284','Quotas d\'émission alloués par l\'Etat',NULL,NULL,1),(290,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','49','1504','Provisions pour dépréciation des comptes de tiers',NULL,NULL,1),(291,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','491','290','Provisions pour dépréciation des comptes de clients',NULL,NULL,1),(292,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','495','290','Provisions pour dépréciation des comptes du groupe et des associés',NULL,NULL,1),(293,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','496','290','Provisions pour dépréciation des comptes de débiteurs divers',NULL,NULL,1),(294,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','50','1505','Valeurs mobilières de placement',NULL,NULL,1),(295,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','501','294','Parts dans des entreprises liées',NULL,NULL,1),(296,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','502','294','Actions propres',NULL,NULL,1),(297,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','503','294','Actions',NULL,NULL,1),(298,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','504','294','Autres titres conférant un droit de propriété',NULL,NULL,1),(299,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','505','294','Obligations et bons émis par la société et rachetés par elle',NULL,NULL,1),(300,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','506','294','Obligations',NULL,NULL,1),(301,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','507','294','Bons du Trésor et bons de caisse à court terme',NULL,NULL,1),(302,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','508','294','Autres valeurs mobilières de placement et autres créances assimilées',NULL,NULL,1),(303,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','509','294','Versements restant à effectuer sur valeurs mobilières de placement non libérées',NULL,NULL,1),(304,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','51','1505','Banques, établissements financiers et assimilés',NULL,NULL,1),(305,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','511','304','Valeurs à l\'encaissement',NULL,NULL,1),(306,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','BANK','512','304','Banques',NULL,NULL,1),(307,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','514','304','Chèques postaux',NULL,NULL,1),(308,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','515','304','Caisses du Trésor et des établissements publics',NULL,NULL,1),(309,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','516','304','Sociétés de bourse',NULL,NULL,1),(310,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','517','304','Autres organismes financiers',NULL,NULL,1),(311,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','518','304','Intérêts courus',NULL,NULL,1),(312,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','519','304','Concours bancaires courants',NULL,NULL,1),(313,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','52','1505','Instruments de trésorerie',NULL,NULL,1),(314,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','CASH','53','1505','Caisse',NULL,NULL,1),(315,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','531','314','Caisse siège social',NULL,NULL,1),(316,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','532','314','Caisse succursale (ou usine) A',NULL,NULL,1),(317,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','533','314','Caisse succursale (ou usine) B',NULL,NULL,1),(318,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','54','1505','Régies d\'avance et accréditifs',NULL,NULL,1),(319,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','58','1505','Virements internes',NULL,NULL,1),(320,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','59','1505','Provisions pour dépréciation des comptes financiers',NULL,NULL,1),(321,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','590','320','Provisions pour dépréciation des valeurs mobilières de placement',NULL,NULL,1),(322,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','PRODUCT','60','1506','Achats',NULL,NULL,1),(323,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','601','322','Achats stockés - Matières premières (et fournitures)',NULL,NULL,1),(324,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','602','322','Achats stockés - Autres approvisionnements',NULL,NULL,1),(325,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','603','322','Variations des stocks (approvisionnements et marchandises)',NULL,NULL,1),(326,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','604','322','Achats stockés - Matières premières (et fournitures)',NULL,NULL,1),(327,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','605','322','Achats de matériel, équipements et travaux',NULL,NULL,1),(328,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','606','322','Achats non stockés de matière et fournitures',NULL,NULL,1),(329,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','607','322','Achats de marchandises',NULL,NULL,1),(330,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','608','322','(Compte réservé, le cas échéant, à la récapitulation des frais accessoires incorporés aux achats)',NULL,NULL,1),(331,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','609','322','Rabais, remises et ristournes obtenus sur achats',NULL,NULL,1),(332,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','SERVICE','61','1506','Services extérieurs',NULL,NULL,1),(333,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','611','332','Sous-traitance générale',NULL,NULL,1),(334,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','612','332','Redevances de crédit-bail',NULL,NULL,1),(335,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','613','332','Locations',NULL,NULL,1),(336,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','614','332','Charges locatives et de copropriété',NULL,NULL,1),(337,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','615','332','Entretien et réparations',NULL,NULL,1),(338,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','616','332','Primes d\'assurances',NULL,NULL,1),(339,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','617','332','Etudes et recherches',NULL,NULL,1),(340,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','618','332','Divers',NULL,NULL,1),(341,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','619','332','Rabais, remises et ristournes obtenus sur services extérieurs',NULL,NULL,1),(342,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','62','1506','Autres services extérieurs',NULL,NULL,1),(343,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','621','342','Personnel extérieur à l\'entreprise',NULL,NULL,1),(344,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','622','342','Rémunérations d\'intermédiaires et honoraires',NULL,NULL,1),(345,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','623','342','Publicité, publications, relations publiques',NULL,NULL,1),(346,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','624','342','Transports de biens et transports collectifs du personnel',NULL,NULL,1),(347,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','625','342','Déplacements, missions et réceptions',NULL,NULL,1),(348,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','626','342','Frais postaux et de télécommunications',NULL,NULL,1),(349,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','627','342','Services bancaires et assimilés',NULL,NULL,1),(350,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','628','342','Divers',NULL,NULL,1),(351,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','629','342','Rabais, remises et ristournes obtenus sur autres services extérieurs',NULL,NULL,1),(352,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','63','1506','Impôts, taxes et versements assimilés',NULL,NULL,1),(353,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','631','352','Impôts, taxes et versements assimilés sur rémunérations (administrations des impôts)',NULL,NULL,1),(354,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','633','352','Impôts, taxes et versements assimilés sur rémunérations (autres organismes)',NULL,NULL,1),(355,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','635','352','Autres impôts, taxes et versements assimilés (administrations des impôts)',NULL,NULL,1),(356,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','637','352','Autres impôts, taxes et versements assimilés (autres organismes)',NULL,NULL,1),(357,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','64','1506','Charges de personnel',NULL,NULL,1),(358,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','641','357','Rémunérations du personnel',NULL,NULL,1),(359,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','644','357','Rémunération du travail de l\'exploitant',NULL,NULL,1),(360,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','SOCIAL','645','357','Charges de sécurité sociale et de prévoyance',NULL,NULL,1),(361,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','646','357','Cotisations sociales personnelles de l\'exploitant',NULL,NULL,1),(362,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','647','357','Autres charges sociales',NULL,NULL,1),(363,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','648','357','Autres charges de personnel',NULL,NULL,1),(364,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','65','1506','Autres charges de gestion courante',NULL,NULL,1),(365,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','651','364','Redevances pour concessions, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',NULL,NULL,1),(366,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','653','364','Jetons de présence',NULL,NULL,1),(367,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','654','364','Pertes sur créances irrécouvrables',NULL,NULL,1),(368,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','655','364','Quote-part de résultat sur opérations faites en commun',NULL,NULL,1),(369,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','658','364','Charges diverses de gestion courante',NULL,NULL,1),(370,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','66','1506','Charges financières',NULL,NULL,1),(371,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','661','370','Charges d\'intérêts',NULL,NULL,1),(372,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','664','370','Pertes sur créances liées à des participations',NULL,NULL,1),(373,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','665','370','Escomptes accordés',NULL,NULL,1),(374,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','666','370','Pertes de change',NULL,NULL,1),(375,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','667','370','Charges nettes sur cessions de valeurs mobilières de placement',NULL,NULL,1),(376,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','668','370','Autres charges financières',NULL,NULL,1),(377,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','67','1506','Charges exceptionnelles',NULL,NULL,1),(378,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','671','377','Charges exceptionnelles sur opérations de gestion',NULL,NULL,1),(379,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','672','377','(Compte à la disposition des entités pour enregistrer, en cours d\'exercice, les charges sur exercices antérieurs)',NULL,NULL,1),(380,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','675','377','Valeurs comptables des éléments d\'actif cédés',NULL,NULL,1),(381,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','678','377','Autres charges exceptionnelles',NULL,NULL,1),(382,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','68','1506','Dotations aux amortissements et aux provisions',NULL,NULL,1),(383,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','681','382','Dotations aux amortissements et aux provisions - Charges d\'exploitation',NULL,NULL,1),(384,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','686','382','Dotations aux amortissements et aux provisions - Charges financières',NULL,NULL,1),(385,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','687','382','Dotations aux amortissements et aux provisions - Charges exceptionnelles',NULL,NULL,1),(386,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','69','1506','Participation des salariés - impôts sur les bénéfices et assimiles',NULL,NULL,1),(387,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','691','386','Participation des salariés aux résultats',NULL,NULL,1),(388,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','695','386','Impôts sur les bénéfices',NULL,NULL,1),(389,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','696','386','Suppléments d\'impôt sur les sociétés liés aux distributions',NULL,NULL,1),(390,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','697','386','Imposition forfaitaire annuelle des sociétés',NULL,NULL,1),(391,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','698','386','Intégration fiscale',NULL,NULL,1),(392,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','699','386','Produits - Reports en arrière des déficits',NULL,NULL,1),(393,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','70','1507','Ventes de produits fabriqués, prestations de services, marchandises',NULL,NULL,1),(394,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','PRODUCT','701','393','Ventes de produits finis',NULL,NULL,1),(395,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','702','393','Ventes de produits intermédiaires',NULL,NULL,1),(396,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','703','393','Ventes de produits résiduels',NULL,NULL,1),(397,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','704','393','Travaux',NULL,NULL,1),(398,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','705','393','Etudes',NULL,NULL,1),(399,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','SERVICE','706','393','Prestations de services',NULL,NULL,1),(400,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','PRODUCT','707','393','Ventes de marchandises',NULL,NULL,1),(401,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','PRODUCT','708','393','Produits des activités annexes',NULL,NULL,1),(402,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','709','393','Rabais, remises et ristournes accordés par l\'entreprise',NULL,NULL,1),(403,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','71','1507','Production stockée (ou déstockage)',NULL,NULL,1),(404,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','713','403','Variation des stocks (en-cours de production, produits)',NULL,NULL,1),(405,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','72','1507','Production immobilisée',NULL,NULL,1),(406,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','721','405','Immobilisations incorporelles',NULL,NULL,1),(407,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','722','405','Immobilisations corporelles',NULL,NULL,1),(408,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','74','1507','Subventions d\'exploitation',NULL,NULL,1),(409,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','75','1507','Autres produits de gestion courante',NULL,NULL,1),(410,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','751','409','Redevances pour concessions, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',NULL,NULL,1),(411,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','752','409','Revenus des immeubles non affectés à des activités professionnelles',NULL,NULL,1),(412,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','753','409','Jetons de présence et rémunérations d\'administrateurs, gérants,...',NULL,NULL,1),(413,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','754','409','Ristournes perçues des coopératives (provenant des excédents)',NULL,NULL,1),(414,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','755','409','Quotes-parts de résultat sur opérations faites en commun',NULL,NULL,1),(415,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','758','409','Produits divers de gestion courante',NULL,NULL,1),(416,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','76','1507','Produits financiers',NULL,NULL,1),(417,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','761','416','Produits de participations',NULL,NULL,1),(418,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','762','416','Produits des autres immobilisations financières',NULL,NULL,1),(419,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','763','416','Revenus des autres créances',NULL,NULL,1),(420,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','764','416','Revenus des valeurs mobilières de placement',NULL,NULL,1),(421,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','765','416','Escomptes obtenus',NULL,NULL,1),(422,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','766','416','Gains de change',NULL,NULL,1),(423,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','767','416','Produits nets sur cessions de valeurs mobilières de placement',NULL,NULL,1),(424,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','768','416','Autres produits financiers',NULL,NULL,1),(425,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','77','1507','Produits exceptionnels',NULL,NULL,1),(426,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','771','425','Produits exceptionnels sur opérations de gestion',NULL,NULL,1),(427,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','772','425','(Compte à la disposition des entités pour enregistrer, en cours d\'exercice, les produits sur exercices antérieurs)',NULL,NULL,1),(428,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','775','425','Produits des cessions d\'éléments d\'actif',NULL,NULL,1),(429,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','777','425','Quote-part des subventions d\'investissement virée au résultat de l\'exercice',NULL,NULL,1),(430,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','778','425','Autres produits exceptionnels',NULL,NULL,1),(431,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','78','1507','Reprises sur amortissements et provisions',NULL,NULL,1),(432,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','781','431','Reprises sur amortissements et provisions (à inscrire dans les produits d\'exploitation)',NULL,NULL,1),(433,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','786','431','Reprises sur provisions pour risques (à inscrire dans les produits financiers)',NULL,NULL,1),(434,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','787','431','Reprises sur provisions (à inscrire dans les produits exceptionnels)',NULL,NULL,1),(435,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','79','1507','Transferts de charges',NULL,NULL,1),(436,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','791','435','Transferts de charges d\'exploitation ',NULL,NULL,1),(437,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','796','435','Transferts de charges financières',NULL,NULL,1),(438,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','797','435','Transferts de charges exceptionnelles',NULL,NULL,1),(439,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','10','1351','Capital',NULL,NULL,1),(440,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','100','439','Capital souscrit ou capital personnel',NULL,NULL,1),(441,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1000','440','Capital non amorti',NULL,NULL,1),(442,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1001','440','Capital amorti',NULL,NULL,1),(443,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','101','439','Capital non appelé',NULL,NULL,1),(444,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','109','439','Compte de l\'exploitant',NULL,NULL,1),(445,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1090','444','Opérations courantes',NULL,NULL,1),(446,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1091','444','Impôts personnels',NULL,NULL,1),(447,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1092','444','Rémunérations et autres avantages',NULL,NULL,1),(448,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','11','1351','Primes d\'émission',NULL,NULL,1),(449,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','12','1351','Plus-values de réévaluation',NULL,NULL,1),(450,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','120','449','Plus-values de réévaluation sur immobilisations incorporelles',NULL,NULL,1),(451,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1200','450','Plus-values de réévaluation',NULL,NULL,1),(452,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1201','450','Reprises de réductions de valeur',NULL,NULL,1),(453,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','121','449','Plus-values de réévaluation sur immobilisations corporelles',NULL,NULL,1),(454,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1210','453','Plus-values de réévaluation',NULL,NULL,1),(455,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1211','453','Reprises de réductions de valeur',NULL,NULL,1),(456,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','122','449','Plus-values de réévaluation sur immobilisations financières',NULL,NULL,1),(457,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1220','456','Plus-values de réévaluation',NULL,NULL,1),(458,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1221','456','Reprises de réductions de valeur',NULL,NULL,1),(459,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','123','449','Plus-values de réévaluation sur stocks',NULL,NULL,1),(460,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','124','449','Reprises de réductions de valeur sur placements de trésorerie',NULL,NULL,1),(461,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','13','1351','Réserve',NULL,NULL,1),(462,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','130','461','Réserve légale',NULL,NULL,1),(463,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','131','461','Réserves indisponibles',NULL,NULL,1),(464,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1310','463','Réserve pour actions propres',NULL,NULL,1),(465,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1311','463','Autres réserves indisponibles',NULL,NULL,1),(466,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','132','461','Réserves immunisées',NULL,NULL,1),(467,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','133','461','Réserves disponibles',NULL,NULL,1),(468,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1330','467','Réserve pour régularisation de dividendes',NULL,NULL,1),(469,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1331','467','Réserve pour renouvellement des immobilisations',NULL,NULL,1),(470,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1332','467','Réserve pour installations en faveur du personnel 1333 Réserves libres',NULL,NULL,1),(471,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','14','1351','Bénéfice reporté (ou perte reportée)',NULL,NULL,1),(472,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','15','1351','Subsides en capital',NULL,NULL,1),(473,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','150','472','Montants obtenus',NULL,NULL,1),(474,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','151','472','Montants transférés aux résultats',NULL,NULL,1),(475,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','16','1351','Provisions pour risques et charges',NULL,NULL,1),(476,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','160','475','Provisions pour pensions et obligations similaires',NULL,NULL,1),(477,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','161','475','Provisions pour charges fiscales',NULL,NULL,1),(478,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','162','475','Provisions pour grosses réparations et gros entretiens',NULL,NULL,1),(479,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','163','475','à 169 Provisions pour autres risques et charges',NULL,NULL,1),(480,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','164','475','Provisions pour sûretés personnelles ou réelles constituées à l\'appui de dettes et d\'engagements de tiers',NULL,NULL,1),(481,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','165','475','Provisions pour engagements relatifs à l\'acquisition ou à la cession d\'immobilisations',NULL,NULL,1),(482,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','166','475','Provisions pour exécution de commandes passées ou reçues',NULL,NULL,1),(483,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','167','475','Provisions pour positions et marchés à terme en devises ou positions et marchés à terme en marchandises',NULL,NULL,1),(484,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','168','475','Provisions pour garanties techniques attachées aux ventes et prestations déjà effectuées par l\'entreprise',NULL,NULL,1),(485,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','169','475','Provisions pour autres risques et charges',NULL,NULL,1),(486,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1690','485','Pour litiges en cours',NULL,NULL,1),(487,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1691','485','Pour amendes, doubles droits et pénalités',NULL,NULL,1),(488,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1692','485','Pour propre assureur',NULL,NULL,1),(489,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1693','485','Pour risques inhérents aux opérations de crédits à moyen ou long terme',NULL,NULL,1),(490,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1695','485','Provision pour charge de liquidation',NULL,NULL,1),(491,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1696','485','Provision pour départ de personnel',NULL,NULL,1),(492,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1699','485','Pour risques divers',NULL,NULL,1),(493,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17','1351','Dettes à plus d\'un an',NULL,NULL,1),(494,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','170','493','Emprunts subordonnés',NULL,NULL,1),(495,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1700','494','Convertibles',NULL,NULL,1),(496,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1701','494','Non convertibles',NULL,NULL,1),(497,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','171','493','Emprunts obligataires non subordonnés',NULL,NULL,1),(498,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1710','498','Convertibles',NULL,NULL,1),(499,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1711','498','Non convertibles',NULL,NULL,1),(500,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','172','493','Dettes de location-financement et assimilés',NULL,NULL,1),(501,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1720','500','Dettes de location-financement de biens immobiliers',NULL,NULL,1),(502,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1721','500','Dettes de location-financement de biens mobiliers',NULL,NULL,1),(503,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1722','500','Dettes sur droits réels sur immeubles',NULL,NULL,1),(504,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','173','493','Etablissements de crédit',NULL,NULL,1),(505,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1730','504','Dettes en compte',NULL,NULL,1),(506,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17300','505','Banque A',NULL,NULL,1),(507,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17301','505','Banque B',NULL,NULL,1),(508,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17302','505','Banque C',NULL,NULL,1),(509,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17303','505','Banque D',NULL,NULL,1),(510,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1731','504','Promesses',NULL,NULL,1),(511,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17310','510','Banque A',NULL,NULL,1),(512,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17311','510','Banque B',NULL,NULL,1),(513,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17312','510','Banque C',NULL,NULL,1),(514,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17313','510','Banque D',NULL,NULL,1),(515,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1732','504','Crédits d\'acceptation',NULL,NULL,1),(516,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17320','515','Banque A',NULL,NULL,1),(517,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17321','515','Banque B',NULL,NULL,1),(518,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17322','515','Banque C',NULL,NULL,1),(519,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17323','515','Banque D',NULL,NULL,1),(520,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','174','493','Autres emprunts',NULL,NULL,1),(521,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175','493','Dettes commerciales',NULL,NULL,1),(522,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1750','521','Fournisseurs : dettes en compte',NULL,NULL,1),(523,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17500','522','Entreprises apparentées',NULL,NULL,1),(524,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175000','523','Entreprises liées',NULL,NULL,1),(525,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175001','523','Entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(526,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17501','522','Fournisseurs ordinaires',NULL,NULL,1),(527,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175010','526','Fournisseurs belges',NULL,NULL,1),(528,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175011','526','Fournisseurs C.E.E.',NULL,NULL,1),(529,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175012','526','Fournisseurs importation',NULL,NULL,1),(530,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1751','521','Effets à payer',NULL,NULL,1),(531,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17510','530','Entreprises apparentées',NULL,NULL,1),(532,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175100','531','Entreprises liées',NULL,NULL,1),(533,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175101','531','Entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(534,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17511','530','Fournisseurs ordinaires',NULL,NULL,1),(535,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175110','534','Fournisseurs belges',NULL,NULL,1),(536,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175111','534','Fournisseurs C.E.E.',NULL,NULL,1),(537,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175112','534','Fournisseurs importation',NULL,NULL,1),(538,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','176','493','Acomptes reçus sur commandes',NULL,NULL,1),(539,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','178','493','Cautionnements reçus en numéraires',NULL,NULL,1),(540,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','179','493','Dettes diverses',NULL,NULL,1),(541,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1790','540','Entreprises liées',NULL,NULL,1),(542,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1791','540','Autres entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(543,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1792','540','Administrateurs, gérants et associés',NULL,NULL,1),(544,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1794','540','Rentes viagères capitalisées',NULL,NULL,1),(545,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1798','540','Dettes envers les coparticipants des associations momentanées et en participation',NULL,NULL,1),(546,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1799','540','Autres dettes diverses',NULL,NULL,1),(547,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','18','1351','Comptes de liaison des établissements et succursales',NULL,NULL,1),(548,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','20','1352','Frais d\'établissement',NULL,NULL,1),(549,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','200','548','Frais de constitution et d\'augmentation de capital',NULL,NULL,1),(550,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2000','549','Frais de constitution et d\'augmentation de capital',NULL,NULL,1),(551,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2009','549','Amortissements sur frais de constitution et d\'augmentation de capital',NULL,NULL,1),(552,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','201','548','Frais d\'émission d\'emprunts et primes de remboursement',NULL,NULL,1),(553,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2010','552','Agios sur emprunts et frais d\'émission d\'emprunts',NULL,NULL,1),(554,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2019','552','Amortissements sur agios sur emprunts et frais d\'émission d\'emprunts',NULL,NULL,1),(555,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','202','548','Autres frais d\'établissement',NULL,NULL,1),(556,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2020','555','Autres frais d\'établissement',NULL,NULL,1),(557,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2029','555','Amortissements sur autres frais d\'établissement',NULL,NULL,1),(558,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','203','548','Intérêts intercalaires',NULL,NULL,1),(559,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2030','558','Intérêts intercalaires',NULL,NULL,1),(560,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2039','558','Amortissements sur intérêts intercalaires',NULL,NULL,1),(561,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','204','548','Frais de restructuration',NULL,NULL,1),(562,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2040','561','Coût des frais de restructuration',NULL,NULL,1),(563,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2049','561','Amortissements sur frais de restructuration',NULL,NULL,1),(564,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','21','1352','Immobilisations incorporelles',NULL,NULL,1),(565,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','210','564','Frais de recherche et de développement',NULL,NULL,1),(566,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2100','565','Frais de recherche et de mise au point',NULL,NULL,1),(567,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2108','565','Plus-values actées sur frais de recherche et de mise au point',NULL,NULL,1),(568,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2109','565','Amortissements sur frais de recherche et de mise au point',NULL,NULL,1),(569,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','211','564','Concessions, brevets, licences, savoir-faire, marque et droits similaires',NULL,NULL,1),(570,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2110','569','Concessions, brevets, licences, marques, etc',NULL,NULL,1),(571,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2118','569','Plus-values actées sur concessions, etc',NULL,NULL,1),(572,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2119','569','Amortissements sur concessions, etc',NULL,NULL,1),(573,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','212','564','Goodwill',NULL,NULL,1),(574,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2120','573','Coût d\'acquisition',NULL,NULL,1),(575,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2128','573','Plus-values actées',NULL,NULL,1),(576,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2129','573','Amortissements sur goodwill',NULL,NULL,1),(577,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','213','564','Acomptes versés',NULL,NULL,1),(578,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22','1352','Terrains et constructions',NULL,NULL,1),(579,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','220','578','Terrains',NULL,NULL,1),(580,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2200','579','Terrains',NULL,NULL,1),(581,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2201','579','Frais d\'acquisition sur terrains',NULL,NULL,1),(582,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2208','579','Plus-values actées sur terrains',NULL,NULL,1),(583,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2209','579','Amortissements et réductions de valeur',NULL,NULL,1),(584,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22090','583','Amortissements sur frais d\'acquisition',NULL,NULL,1),(585,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22091','583','Réductions de valeur sur terrains',NULL,NULL,1),(586,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','221','578','Constructions',NULL,NULL,1),(587,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2210','586','Bâtiments industriels',NULL,NULL,1),(588,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2211','586','Bâtiments administratifs et commerciaux',NULL,NULL,1),(589,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2212','586','Autres bâtiments d\'exploitation',NULL,NULL,1),(590,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2213','586','Voies de transport et ouvrages d\'art',NULL,NULL,1),(591,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2215','586','Constructions sur sol d\'autrui',NULL,NULL,1),(592,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2216','586','Frais d\'acquisition sur constructions',NULL,NULL,1),(593,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2218','586','Plus-values actées',NULL,NULL,1),(594,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22180','593','Sur bâtiments industriels',NULL,NULL,1),(595,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22181','593','Sur bâtiments administratifs et commerciaux',NULL,NULL,1),(596,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22182','593','Sur autres bâtiments d\'exploitation',NULL,NULL,1),(597,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22184','593','Sur voies de transport et ouvrages d\'art',NULL,NULL,1),(598,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2219','586','Amortissements sur constructions',NULL,NULL,1),(599,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22190','598','Sur bâtiments industriels',NULL,NULL,1),(600,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22191','598','Sur bâtiments administratifs et commerciaux',NULL,NULL,1),(601,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22192','598','Sur autres bâtiments d\'exploitation',NULL,NULL,1),(602,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22194','598','Sur voies de transport et ouvrages d\'art',NULL,NULL,1),(603,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22195','598','Sur constructions sur sol d\'autrui',NULL,NULL,1),(604,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22196','598','Sur frais d\'acquisition sur constructions',NULL,NULL,1),(605,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','222','578','Terrains bâtis',NULL,NULL,1),(606,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2220','605','Valeur d\'acquisition',NULL,NULL,1),(607,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22200','606','Bâtiments industriels',NULL,NULL,1),(608,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22201','606','Bâtiments administratifs et commerciaux',NULL,NULL,1),(609,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22202','606','Autres bâtiments d\'exploitation',NULL,NULL,1),(610,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22203','606','Voies de transport et ouvrages d\'art',NULL,NULL,1),(611,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22204','606','Frais d\'acquisition des terrains à bâtir',NULL,NULL,1),(612,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2228','605','Plus-values actées',NULL,NULL,1),(613,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22280','612','Sur bâtiments industriels',NULL,NULL,1),(614,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22281','612','Sur bâtiments administratifs et commerciaux',NULL,NULL,1),(615,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22282','612','Sur autres bâtiments d\'exploitation',NULL,NULL,1),(616,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22283','612','Sur voies de transport et ouvrages d\'art',NULL,NULL,1),(617,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2229','605','Amortissements sur terrains bâtis',NULL,NULL,1),(618,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22290','617','Sur bâtiments industriels',NULL,NULL,1),(619,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22291','617','Sur bâtiments administratifs et commerciaux',NULL,NULL,1),(620,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22292','617','Sur autres bâtiments d\'exploitation',NULL,NULL,1),(621,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22293','617','Sur voies de transport et ouvrages d\'art',NULL,NULL,1),(622,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22294','617','Sur frais d\'acquisition des terrains bâtis',NULL,NULL,1),(623,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','223','578','Autres droits réels sur des immeubles',NULL,NULL,1),(624,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2230','623','Valeur d\'acquisition',NULL,NULL,1),(625,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2238','623','Plus-values actées',NULL,NULL,1),(626,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2239','623','Amortissements',NULL,NULL,1),(627,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','23','1352','Installations, machines et outillages',NULL,NULL,1),(628,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','230','627','Installations',NULL,NULL,1),(629,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2300','628','Installations bâtiments industriels',NULL,NULL,1),(630,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2301','628','Installations bâtiments administratifs et commerciaux',NULL,NULL,1),(631,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2302','628','Installations bâtiments d\'exploitation',NULL,NULL,1),(632,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2303','628','Installations voies de transport et ouvrages d\'art',NULL,NULL,1),(633,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2300','628','Installation d\'eau',NULL,NULL,1),(634,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2301','628','Installation d\'électricité',NULL,NULL,1),(635,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2302','628','Installation de vapeur',NULL,NULL,1),(636,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2303','628','Installation de gaz',NULL,NULL,1),(637,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2304','628','Installation de chauffage',NULL,NULL,1),(638,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2305','628','Installation de conditionnement d\'air',NULL,NULL,1),(639,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2306','628','Installation de chargement',NULL,NULL,1),(640,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','231','627','Machines',NULL,NULL,1),(641,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2310','640','Division A',NULL,NULL,1),(642,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2311','640','Division B',NULL,NULL,1),(643,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2312','640','Division C',NULL,NULL,1),(644,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','237','627','Outillage',NULL,NULL,1),(645,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2370','644','Division A',NULL,NULL,1),(646,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2371','644','Division B',NULL,NULL,1),(647,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2372','644','Division C',NULL,NULL,1),(648,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','238','627','Plus-values actées',NULL,NULL,1),(649,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2380','648','Sur installations',NULL,NULL,1),(650,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2381','648','Sur machines',NULL,NULL,1),(651,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2382','648','Sur outillage',NULL,NULL,1),(652,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','239','627','Amortissements',NULL,NULL,1),(653,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2390','652','Sur installations',NULL,NULL,1),(654,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2391','652','Sur machines',NULL,NULL,1),(655,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2392','652','Sur outillage',NULL,NULL,1),(656,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24','1352','Mobilier et matériel roulant',NULL,NULL,1),(657,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','240','656','Mobilier',NULL,NULL,1),(658,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2400','656','Mobilier',NULL,NULL,1),(659,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24000','658','Mobilier des bâtiments industriels',NULL,NULL,1),(660,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24001','658','Mobilier des bâtiments administratifs et commerciaux',NULL,NULL,1),(661,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24002','658','Mobilier des autres bâtiments d\'exploitation',NULL,NULL,1),(662,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24003','658','Mobilier oeuvres sociales',NULL,NULL,1),(663,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2401','657','Matériel de bureau et de service social',NULL,NULL,1),(664,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24010','663','Des bâtiments industriels',NULL,NULL,1),(665,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24011','663','Des bâtiments administratifs et commerciaux',NULL,NULL,1),(666,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24012','663','Des autres bâtiments d\'exploitation',NULL,NULL,1),(667,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24013','663','Des oeuvres sociales',NULL,NULL,1),(668,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2408','657','Plus-values actées',NULL,NULL,1),(669,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24080','668','Plus-values actées sur mobilier',NULL,NULL,1),(670,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24081','668','Plus-values actées sur matériel de bureau et service social',NULL,NULL,1),(671,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2409','657','Amortissements',NULL,NULL,1),(672,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24090','671','Amortissements sur mobilier',NULL,NULL,1),(673,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24091','671','Amortissements sur matériel de bureau et service social',NULL,NULL,1),(674,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','241','656','Matériel roulant',NULL,NULL,1),(675,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2410','674','Matériel automobile',NULL,NULL,1),(676,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24100','675','Voitures',NULL,NULL,1),(677,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24105','675','Camions',NULL,NULL,1),(678,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2411','674','Matériel ferroviaire',NULL,NULL,1),(679,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2412','674','Matériel fluvial',NULL,NULL,1),(680,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2413','674','Matériel naval',NULL,NULL,1),(681,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2414','674','Matériel aérien',NULL,NULL,1),(682,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2418','674','Plus-values sur matériel roulant',NULL,NULL,1),(683,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24180','682','Plus-values sur matériel automobile',NULL,NULL,1),(684,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24181','682','Idem sur matériel ferroviaire',NULL,NULL,1),(685,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24182','682','Idem sur matériel fluvial',NULL,NULL,1),(686,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24183','682','Idem sur matériel naval',NULL,NULL,1),(687,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24184','682','Idem sur matériel aérien',NULL,NULL,1),(688,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2419','674','Amortissements sur matériel roulant',NULL,NULL,1),(689,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24190','688','Amortissements sur matériel automobile',NULL,NULL,1),(690,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24191','688','Idem sur matériel ferroviaire',NULL,NULL,1),(691,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24192','688','Idem sur matériel fluvial',NULL,NULL,1),(692,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24193','688','Idem sur matériel naval',NULL,NULL,1),(693,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24194','688','Idem sur matériel aérien',NULL,NULL,1),(694,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','25','1352','Immobilisation détenues en location-financement et droits similaires',NULL,NULL,1),(695,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','250','694','Terrains et constructions',NULL,NULL,1),(696,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2500','695','Terrains',NULL,NULL,1),(697,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2501','695','Constructions',NULL,NULL,1),(698,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2508','695','Plus-values sur emphytéose,  leasing et droits similaires : terrains et constructions',NULL,NULL,1),(699,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2509','695','Amortissements et réductions de valeur sur terrains et constructions en leasing',NULL,NULL,1),(700,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','251','694','Installations,  machines et outillage',NULL,NULL,1),(701,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2510','700','Installations',NULL,NULL,1),(702,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2511','700','Machines',NULL,NULL,1),(703,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2512','700','Outillage',NULL,NULL,1),(704,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2518','700','Plus-values actées sur installations machines et outillage pris en leasing',NULL,NULL,1),(705,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2519','700','Amortissements sur installations machines et outillage pris en leasing',NULL,NULL,1),(706,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','252','694','Mobilier et matériel roulant',NULL,NULL,1),(707,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2520','706','Mobilier',NULL,NULL,1),(708,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2521','706','Matériel roulant',NULL,NULL,1),(709,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2528','706','Plus-values actées sur mobilier et matériel roulant en leasing',NULL,NULL,1),(710,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2529','706','Amortissements sur mobilier et matériel roulant en leasing',NULL,NULL,1),(711,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','26','1352','Autres immobilisations corporelles',NULL,NULL,1),(712,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','260','711','Frais d\'aménagements de locaux pris en location',NULL,NULL,1),(713,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','261','711','Maison d\'habitation',NULL,NULL,1),(714,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','262','711','Réserve immobilière',NULL,NULL,1),(715,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','263','711','Matériel d\'emballage',NULL,NULL,1),(716,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','264','711','Emballages récupérables',NULL,NULL,1),(717,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','268','711','Plus-values actées sur autres immobilisations corporelles',NULL,NULL,1),(718,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','269','711','Amortissements sur autres immobilisations corporelles',NULL,NULL,1),(719,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2690','718','Amortissements sur frais d\'aménagement des locaux pris en location',NULL,NULL,1),(720,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2691','718','Amortissements sur maison d\'habitation',NULL,NULL,1),(721,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2692','718','Amortissements sur réserve immobilière',NULL,NULL,1),(722,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2693','718','Amortissements sur matériel d\'emballage',NULL,NULL,1),(723,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2694','718','Amortissements sur emballages récupérables',NULL,NULL,1),(724,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','27','1352','Immobilisations corporelles en cours et acomptes versés',NULL,NULL,1),(725,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','270','724','Immobilisations en cours',NULL,NULL,1),(726,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2700','725','Constructions',NULL,NULL,1),(727,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2701','725','Installations machines et outillage',NULL,NULL,1),(728,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2702','725','Mobilier et matériel roulant',NULL,NULL,1),(729,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2703','725','Autres immobilisations corporelles',NULL,NULL,1),(730,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','271','724','Avances et acomptes versés sur immobilisations en cours',NULL,NULL,1),(731,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','28','1352','Immobilisations financières',NULL,NULL,1),(732,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','280','731','Participations dans des entreprises liées',NULL,NULL,1),(733,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2800','732','Valeur d\'acquisition (peut être subdivisé par participation)',NULL,NULL,1),(734,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2801','732','Montants non appelés (idem)',NULL,NULL,1),(735,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2808','732','Plus-values actées (idem)',NULL,NULL,1),(736,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2809','732','Réductions de valeurs actées (idem)',NULL,NULL,1),(737,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','281','731','Créances sur des entreprises liées',NULL,NULL,1),(738,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2810','737','Créances en compte',NULL,NULL,1),(739,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2811','737','Effets à recevoir',NULL,NULL,1),(740,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2812','737','Titres à revenu fixes',NULL,NULL,1),(741,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2817','737','Créances douteuses',NULL,NULL,1),(742,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2819','737','Réductions de valeurs actées',NULL,NULL,1),(743,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','282','731','Participations dans des entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(744,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2820','743','Valeur d\'acquisition (peut être subdivisé par participation)',NULL,NULL,1),(745,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2821','743','Montants non appelés (idem)',NULL,NULL,1),(746,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2828','743','Plus-values actées (idem)',NULL,NULL,1),(747,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2829','743','Réductions de valeurs actées (idem)',NULL,NULL,1),(748,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','283','731','Créances sur des entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(749,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2830','748','Créances en compte',NULL,NULL,1),(750,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2831','748','Effets à recevoir',NULL,NULL,1),(751,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2832','748','Titres à revenu fixe',NULL,NULL,1),(752,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2837','748','Créances douteuses',NULL,NULL,1),(753,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2839','748','Réductions de valeurs actées',NULL,NULL,1),(754,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','284','731','Autres actions et parts',NULL,NULL,1),(755,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2840','754','Valeur d\'acquisition',NULL,NULL,1),(756,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2841','754','Montants non appelés',NULL,NULL,1),(757,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2848','754','Plus-values actées',NULL,NULL,1),(758,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2849','754','Réductions de valeur actées',NULL,NULL,1),(759,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','285','731','Autres créances',NULL,NULL,1),(760,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2850','759','Créances en compte',NULL,NULL,1),(761,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2851','759','Effets à recevoir',NULL,NULL,1),(762,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2852','759','Titres à revenu fixe',NULL,NULL,1),(763,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2857','759','Créances douteuses',NULL,NULL,1),(764,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2859','759','Réductions de valeur actées',NULL,NULL,1),(765,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','288','731','Cautionnements versés en numéraires',NULL,NULL,1),(766,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2880','765','Téléphone, téléfax, télex',NULL,NULL,1),(767,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2881','765','Gaz',NULL,NULL,1),(768,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2882','765','Eau',NULL,NULL,1),(769,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2883','765','Electricité',NULL,NULL,1),(770,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2887','765','Autres cautionnements versés en numéraires',NULL,NULL,1),(771,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29','1352','Créances à plus d\'un an',NULL,NULL,1),(772,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','290','771','Créances commerciales',NULL,NULL,1),(773,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2900','772','Clients',NULL,NULL,1),(774,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29000','773','Créances en compte sur entreprises liées',NULL,NULL,1),(775,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29001','773','Sur entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(776,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29002','773','Sur clients Belgique',NULL,NULL,1),(777,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29003','773','Sur clients C.E.E.',NULL,NULL,1),(778,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29004','773','Sur clients exportation hors C.E.E.',NULL,NULL,1),(779,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29005','773','Créances sur les coparticipants (associations momentanées)',NULL,NULL,1),(780,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2901','772','Effets à recevoir',NULL,NULL,1),(781,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29010','780','Sur entreprises liées',NULL,NULL,1),(782,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29011','780','Sur entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(783,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29012','780','Sur clients Belgique',NULL,NULL,1),(784,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29013','780','Sur clients C.E.E.',NULL,NULL,1),(785,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29014','780','Sur clients exportation hors C.E.E.',NULL,NULL,1),(786,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2905','772','Retenues sur garanties',NULL,NULL,1),(787,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2906','772','Acomptes versés',NULL,NULL,1),(788,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2907','772','Créances douteuses (à ventiler comme clients 2900)',NULL,NULL,1),(789,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2909','772','Réductions de valeur actées (à ventiler comme clients 2900)',NULL,NULL,1),(790,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','291','771','Autres créances',NULL,NULL,1),(791,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2910','790','Créances en compte',NULL,NULL,1),(792,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29100','791','Sur entreprises liées',NULL,NULL,1),(793,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29101','791','Sur entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(794,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29102','791','Sur autres débiteurs',NULL,NULL,1),(795,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2911','790','Effets à recevoir',NULL,NULL,1),(796,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29110','795','Sur entreprises liées',NULL,NULL,1),(797,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29111','795','Sur entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(798,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29112','795','Sur autres débiteurs',NULL,NULL,1),(799,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2912','790','Créances résultant de la cession d\'immobilisations données en leasing',NULL,NULL,1),(800,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2917','790','Créances douteuses',NULL,NULL,1),(801,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2919','790','Réductions de valeur actées',NULL,NULL,1),(802,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','30','1353','Approvisionnements - matières premières',NULL,NULL,1),(803,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','300','802','Valeur d\'acquisition',NULL,NULL,1),(804,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','309','802','Réductions de valeur actées',NULL,NULL,1),(805,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','31','1353','Approvsionnements et fournitures',NULL,NULL,1),(806,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','310','805','Valeur d\'acquisition',NULL,NULL,1),(807,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3100','806','Matières d\'approvisionnement',NULL,NULL,1),(808,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3101','806','Energie, charbon, coke, mazout, essence, propane',NULL,NULL,1),(809,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3102','806','Produits d\'entretien',NULL,NULL,1),(810,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3103','806','Fournitures diverses et petit outillage',NULL,NULL,1),(811,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3104','806','Imprimés et fournitures de bureau',NULL,NULL,1),(812,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3105','806','Fournitures de services sociaux',NULL,NULL,1),(813,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3106','806','Emballages commerciaux',NULL,NULL,1),(814,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','31060','813','Emballages perdus',NULL,NULL,1),(815,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','31061','813','Emballages récupérables',NULL,NULL,1),(816,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','319','805','Réductions de valeur actées',NULL,NULL,1),(817,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','32','1353','En cours de fabrication',NULL,NULL,1),(818,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','320','817','Valeur d\'acquisition',NULL,NULL,1),(819,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3200','818','Produits semi-ouvrés',NULL,NULL,1),(820,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3201','818','Produits en cours de fabrication',NULL,NULL,1),(821,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3202','818','Travaux en cours',NULL,NULL,1),(822,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3205','818','Déchets',NULL,NULL,1),(823,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3206','818','Rebuts',NULL,NULL,1),(824,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3209','818','Travaux en association momentanée',NULL,NULL,1),(825,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','329','817','Réductions de valeur actées',NULL,NULL,1),(826,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','33','1353','Produits finis',NULL,NULL,1),(827,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','330','826','Valeur d\'acquisition',NULL,NULL,1),(828,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3300','827','Produits finis',NULL,NULL,1),(829,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','339','826','Réductions de valeur actées',NULL,NULL,1),(830,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','34','1353','Marchandises',NULL,NULL,1),(831,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','340','830','Valeur d\'acquisition',NULL,NULL,1),(832,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3400','831','Groupe A',NULL,NULL,1),(833,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3401','831','Groupe B',NULL,NULL,1),(834,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3402','831','Groupe C',NULL,NULL,1),(835,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','349','830','Réductions de valeur actées',NULL,NULL,1),(836,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','35','1353','Immeubles destinés à la vente',NULL,NULL,1),(837,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','350','836','Valeur d\'acquisition',NULL,NULL,1),(838,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3500','837','Immeuble A',NULL,NULL,1),(839,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3501','837','Immeuble B',NULL,NULL,1),(840,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3502','837','Immeuble C',NULL,NULL,1),(841,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','351','836','Immeubles construits en vue de leur revente',NULL,NULL,1),(842,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3510','841','Immeuble A',NULL,NULL,1),(843,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3511','841','Immeuble B',NULL,NULL,1),(844,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3512','841','Immeuble C',NULL,NULL,1),(845,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','359','836','Réductions de valeurs actées',NULL,NULL,1),(846,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','36','1353','Acomptes versés sur achats pour stocks',NULL,NULL,1),(847,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','360','846','Acomptes versés (à ventiler éventuellement par catégorie)',NULL,NULL,1),(848,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','369','846','Réductions de valeur actées',NULL,NULL,1),(849,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','37','1353','Commandes en cours d\'exécution',NULL,NULL,1),(850,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','370','849','Valeur d\'acquisition',NULL,NULL,1),(851,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','371','849','Bénéfice pris en compte',NULL,NULL,1),(852,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','379','849','Réductions de valeur actées',NULL,NULL,1),(853,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','40','1354','Créances commerciales',NULL,NULL,1),(854,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','400','853','Clients',NULL,NULL,1),(855,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4007','854','Rabais, remises et  ristournes à accorder et autres notes de crédit à établir',NULL,NULL,1),(856,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4008','854','Créances résultant de livraisons de biens (associations momentanées)',NULL,NULL,1),(857,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','401','853','Effets à recevoir',NULL,NULL,1),(858,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4010','857','Effets à recevoir',NULL,NULL,1),(859,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4013','857','Effets à l\'encaissement',NULL,NULL,1),(860,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4015','857','Effets à l\'escompte',NULL,NULL,1),(861,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','402','853','Clients, créances courantes, entreprises apparentées, administrateurs et gérants',NULL,NULL,1),(862,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4020','861','Entreprises liées',NULL,NULL,1),(863,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4021','861','Autres entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(864,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4022','861','Administrateurs et gérants d\'entreprise',NULL,NULL,1),(865,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','403','853','Effets à recevoir sur entreprises apparentées et administrateurs et gérants',NULL,NULL,1),(866,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4030','865','Entreprises liées',NULL,NULL,1),(867,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4031','865','Autres entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(868,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4032','865','Administrateurs et gérants de l\'entreprise',NULL,NULL,1),(869,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','404','853','Produits à recevoir (factures à établir)',NULL,NULL,1),(870,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','405','853','Clients : retenues sur garanties',NULL,NULL,1),(871,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','406','853','Acomptes versés',NULL,NULL,1),(872,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','407','853','Créances douteuses',NULL,NULL,1),(873,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','408','853','Compensation clients',NULL,NULL,1),(874,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','409','853','Réductions de valeur actées',NULL,NULL,1),(875,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','41','1354','Autres créances',NULL,NULL,1),(876,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','410','875','Capital appelé, non versé',NULL,NULL,1),(877,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4100','876','Appels de fonds',NULL,NULL,1),(878,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4101','876','Actionnaires défaillants',NULL,NULL,1),(879,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','411','875','T.V.A. à récupérer',NULL,NULL,1),(880,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4110','879','T.V.A. due',NULL,NULL,1),(881,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4111','879','T.V.A. déductible',NULL,NULL,1),(882,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4112','879','Compte courant administration T.V.A.',NULL,NULL,1),(883,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4118','879','Taxe d\'égalisation due',NULL,NULL,1),(884,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','412','875','Impôts et versements fiscaux à récupérer',NULL,NULL,1),(885,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4120','884','Impôts belges sur le résultat',NULL,NULL,1),(886,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4125','884','Autres impôts belges',NULL,NULL,1),(887,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4128','884','Impôts étrangers',NULL,NULL,1),(888,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','414','875','Produits à recevoir',NULL,NULL,1),(889,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','416','875','Créances diverses',NULL,NULL,1),(890,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4160','889','Associés (compte d\'apport en société)',NULL,NULL,1),(891,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4161','889','Avances et prêts au personnel',NULL,NULL,1),(892,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4162','889','Compte courant des associés en S.P.R.L.',NULL,NULL,1),(893,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4163','889','Compte courant des administrateurs et gérants',NULL,NULL,1),(894,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4164','889','Créances sur sociétés apparentées',NULL,NULL,1),(895,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4166','889','Emballages et matériel à rendre',NULL,NULL,1),(896,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4167','889','Etat et établissements publics',NULL,NULL,1),(897,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','41670','896','Subsides à recevoir',NULL,NULL,1),(898,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','41671','896','Autres créances',NULL,NULL,1),(899,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4168','889','Rabais, ristournes et remises à obtenir et autres avoirs non encore reçus',NULL,NULL,1),(900,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','417','875','Créances douteuses',NULL,NULL,1),(901,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','418','875','Cautionnements versés en numéraires',NULL,NULL,1),(902,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','419','875','Réductions de valeur actées',NULL,NULL,1),(903,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','42','1354','Dettes à plus d\'un an échéant dans l\'année',NULL,NULL,1),(904,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','420','903','Emprunts subordonnés',NULL,NULL,1),(905,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4200','904','Convertibles',NULL,NULL,1),(906,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4201','904','Non convertibles',NULL,NULL,1),(907,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','421','903','Emprunts obligataires non subordonnés',NULL,NULL,1),(908,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4210','907','Convertibles',NULL,NULL,1),(909,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4211','907','Non convertibles',NULL,NULL,1),(910,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','422','903','Dettes de location-financement et assimilées',NULL,NULL,1),(911,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4220','910','Financement de biens immobiliers',NULL,NULL,1),(912,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4221','910','Financement de biens mobiliers',NULL,NULL,1),(913,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','423','903','Etablissements de crédit',NULL,NULL,1),(914,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4230','913','Dettes en compte',NULL,NULL,1),(915,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4231','913','Promesses',NULL,NULL,1),(916,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4232','913','Crédits d\'acceptation',NULL,NULL,1),(917,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','424','903','Autres emprunts',NULL,NULL,1),(918,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','425','903','Dettes commerciales',NULL,NULL,1),(919,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4250','918','Fournisseurs',NULL,NULL,1),(920,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4251','918','Effets à payer',NULL,NULL,1),(921,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','426','903','Cautionnements reçus en numéraires',NULL,NULL,1),(922,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','429','903','Dettes diverses',NULL,NULL,1),(923,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4290','922','Entreprises liées',NULL,NULL,1),(924,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4291','922','Entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(925,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4292','922','Administrateurs, gérants, associés',NULL,NULL,1),(926,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4299','922','Autres dettes',NULL,NULL,1),(927,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','43','1354','Dettes financières',NULL,NULL,1),(928,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','430','927','Etablissements de crédit. Emprunts en compte à terme fixe',NULL,NULL,1),(929,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','431','927','Etablissements de crédit. Promesses',NULL,NULL,1),(930,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','432','927','Etablissements de crédit. Crédits d\'acceptation',NULL,NULL,1),(931,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','433','927','Etablissements de crédit. Dettes en compte courant',NULL,NULL,1),(932,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','439','927','Autres emprunts',NULL,NULL,1),(933,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44','1354','Dettes commerciales',NULL,NULL,1),(934,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','440','933','Fournisseurs',NULL,NULL,1),(935,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4400','934','Entreprises apparentées',NULL,NULL,1),(936,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44000','935','Entreprises liées',NULL,NULL,1),(937,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44001','935','Entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(938,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4401','934','Fournisseurs ordinaires',NULL,NULL,1),(939,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44010','938','Fournisseurs belges',NULL,NULL,1),(940,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44011','938','Fournisseurs CEE',NULL,NULL,1),(941,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44012','938','Fournisseurs importation',NULL,NULL,1),(942,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4402','934','Dettes envers les coparticipants (associations momentanées)',NULL,NULL,1),(943,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4403','934','Fournisseurs - retenues de garanties',NULL,NULL,1),(944,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','441','933','Effets à payer',NULL,NULL,1),(945,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4410','944','Entreprises apparentées',NULL,NULL,1),(946,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44100','945','Entreprises liées',NULL,NULL,1),(947,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44101','945','Entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(948,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4411','944','Fournisseurs ordinaires',NULL,NULL,1),(949,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44110','948','Fournisseurs belges',NULL,NULL,1),(950,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44111','948','Fournisseurs CEE',NULL,NULL,1),(951,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44112','948','Fournisseurs importation',NULL,NULL,1),(952,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','444','933','Factures à recevoir',NULL,NULL,1),(953,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','446','933','Acomptes reçus',NULL,NULL,1),(954,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','448','933','Compensations fournisseurs',NULL,NULL,1),(955,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45','1354','Dettes fiscales, salariales et sociales',NULL,NULL,1),(956,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','450','955','Dettes fiscales estimées',NULL,NULL,1),(957,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4501','956','Impôts sur le résultat',NULL,NULL,1),(958,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4505','956','Autres impôts en Belgique',NULL,NULL,1),(959,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4508','956','Impôts à l\'étranger',NULL,NULL,1),(960,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','451','955','T.V.A. à payer',NULL,NULL,1),(961,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4510','960','T.V.A. due',NULL,NULL,1),(962,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4511','960','T.V.A. déductible',NULL,NULL,1),(963,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4512','960','Compte courant administration T.V.A.',NULL,NULL,1),(964,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4518','960','Taxe d\'égalisation due',NULL,NULL,1),(965,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','452','955','Impôts et taxes à payer',NULL,NULL,1),(966,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4520','965','Autres impôts sur le résultat',NULL,NULL,1),(967,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4525','965','Autres impôts et taxes en Belgique',NULL,NULL,1),(968,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45250','967','Précompte immobilier',NULL,NULL,1),(969,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45251','967','Impôts communaux à payer',NULL,NULL,1),(970,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45252','967','Impôts provinciaux à payer',NULL,NULL,1),(971,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45253','967','Autres impôts et taxes à payer',NULL,NULL,1),(972,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4528','965','Impôts et taxes à l\'étranger',NULL,NULL,1),(973,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','453','955','Précomptes retenus',NULL,NULL,1),(974,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4530','973','Précompte professionnel retenu sur rémunérations',NULL,NULL,1),(975,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4531','973','Précompte professionnel retenu sur tantièmes',NULL,NULL,1),(976,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4532','973','Précompte mobilier retenu sur dividendes attribués',NULL,NULL,1),(977,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4533','973','Précompte mobilier retenu sur intérêts payés',NULL,NULL,1),(978,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4538','973','Autres précomptes retenus',NULL,NULL,1),(979,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','454','955','Office National de la Sécurité Sociale',NULL,NULL,1),(980,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4540','979','Arriérés',NULL,NULL,1),(981,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4541','979','1er trimestre',NULL,NULL,1),(982,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4542','979','2ème trimestre',NULL,NULL,1),(983,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4543','979','3ème trimestre',NULL,NULL,1),(984,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4544','979','4ème trimestre',NULL,NULL,1),(985,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','455','955','Rémunérations',NULL,NULL,1),(986,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4550','985','Administrateurs,  gérants et commissaires (non réviseurs)',NULL,NULL,1),(987,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4551','985','Direction',NULL,NULL,1),(988,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4552','985','Employés',NULL,NULL,1),(989,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4553','985','Ouvriers',NULL,NULL,1),(990,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','456','955','Pécules de vacances',NULL,NULL,1),(991,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4560','990','Direction',NULL,NULL,1),(992,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4561','990','Employés',NULL,NULL,1),(993,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4562','990','Ouvriers',NULL,NULL,1),(994,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','459','955','Autres dettes sociales',NULL,NULL,1),(995,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4590','994','Provision pour gratifications de fin d\'année',NULL,NULL,1),(996,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4591','994','Départs de personnel',NULL,NULL,1),(997,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4592','994','Oppositions sur rémunérations',NULL,NULL,1),(998,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4593','994','Assurances relatives au personnel',NULL,NULL,1),(999,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45930','998','Assurance loi',NULL,NULL,1),(1000,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45931','998','Assurance salaire garanti',NULL,NULL,1),(1001,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45932','998','Assurance groupe',NULL,NULL,1),(1002,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45933','998','Assurances individuelles',NULL,NULL,1),(1003,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4594','994','Caisse d\'assurances sociales pour travailleurs indépendants',NULL,NULL,1),(1004,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4597','994','Dettes et provisions sociales diverses',NULL,NULL,1),(1005,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','46','1354','Acomptes reçus sur commande',NULL,NULL,1),(1006,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','47','1354','Dettes découlant de l\'affectation des résultats',NULL,NULL,1),(1007,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','470','1006','Dividendes et tantièmes d\'exercices antérieurs',NULL,NULL,1),(1008,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','471','1006','Dividendes de l\'exercice',NULL,NULL,1),(1009,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','472','1006','Tantièmes de l\'exercice',NULL,NULL,1),(1010,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','473','1006','Autres allocataires',NULL,NULL,1),(1011,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','48','4','Dettes diverses',NULL,NULL,1),(1012,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','480','1011','Obligations et coupons échus',NULL,NULL,1),(1013,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','481','1011','Actionnaires - capital à rembourser',NULL,NULL,1),(1014,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','482','1011','Participation du personnel à payer',NULL,NULL,1),(1015,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','483','1011','Acomptes reçus d\'autres tiers à moins d\'un an',NULL,NULL,1),(1016,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','486','1011','Emballages et matériel consignés',NULL,NULL,1),(1017,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','488','1011','Cautionnements reçus en numéraires',NULL,NULL,1),(1018,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','489','1011','Autres dettes diverses',NULL,NULL,1),(1019,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49','1354','Comptes de régularisation et compte d\'attente',NULL,NULL,1),(1020,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','490','1019','Charges à reporter (à subdiviser par catégorie de charges)',NULL,NULL,1),(1021,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','491','1019','Produits acquis',NULL,NULL,1),(1022,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4910','1021','Produits d\'exploitation',NULL,NULL,1),(1023,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49100','1022','Ristournes et rabais à obtenir',NULL,NULL,1),(1024,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49101','1022','Commissions à obtenir',NULL,NULL,1),(1025,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49102','1022','Autres produits d\'exploitation (redevances par exemple)',NULL,NULL,1),(1026,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4911','1021','Produits financiers',NULL,NULL,1),(1027,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49110','1026','Intérêts courus et non échus sur prêts et débits',NULL,NULL,1),(1028,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49111','1026','Autres produits financiers',NULL,NULL,1),(1029,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','492','1019','Charges à imputer (à subdiviser par catégorie de charges)',NULL,NULL,1),(1030,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','493','1019','Produits à reporter',NULL,NULL,1),(1031,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4930','1030','Produits d\'exploitation à reporter',NULL,NULL,1),(1032,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4931','1030','Produits financiers à reporter',NULL,NULL,1),(1033,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','499','1019','Comptes d\'attente',NULL,NULL,1),(1034,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4990','1033','Compte d\'attente',NULL,NULL,1),(1035,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4991','1033','Compte de répartition périodique des charges',NULL,NULL,1),(1036,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4999','1033','Transferts d\'exercice',NULL,NULL,1),(1037,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','50','1355','Actions propres',NULL,NULL,1),(1038,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','51','1355','Actions et parts',NULL,NULL,1),(1039,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','510','1038','Valeur d\'acquisition',NULL,NULL,1),(1040,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','511','1038','Montants non appelés',NULL,NULL,1),(1041,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','519','1038','Réductions de valeur actées',NULL,NULL,1),(1042,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','52','1355','Titres à revenus fixes',NULL,NULL,1),(1043,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','520','1042','Valeur d\'acquisition',NULL,NULL,1),(1044,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','529','1042','Réductions de valeur actées',NULL,NULL,1),(1045,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','53','1355','Dépots à terme',NULL,NULL,1),(1046,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','530','1045','De plus d\'un an',NULL,NULL,1),(1047,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','531','1045','De plus d\'un mois et à un an au plus',NULL,NULL,1),(1048,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','532','1045','d\'un mois au plus',NULL,NULL,1),(1049,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','539','1045','Réductions de valeur actées',NULL,NULL,1),(1050,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','54','1355','Valeurs échues à l\'encaissement',NULL,NULL,1),(1051,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','540','1050','Chèques à encaisser',NULL,NULL,1),(1052,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','541','1050','Coupons à encaisser',NULL,NULL,1),(1053,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','55','1355','Etablissements de crédit - Comptes ouverts auprès des divers établissements.',NULL,NULL,1),(1054,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','550','1053','Comptes courants',NULL,NULL,1),(1055,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','551','1053','Chèques émis',NULL,NULL,1),(1056,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','559','1053','Réductions de valeur actées',NULL,NULL,1),(1057,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','56','1355','Office des chèques postaux',NULL,NULL,1),(1058,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','560','1057','Compte courant',NULL,NULL,1),(1059,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','561','1057','Chèques émis',NULL,NULL,1),(1060,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','57','1355','Caisses',NULL,NULL,1),(1061,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','570','1060','à 577 Caisses - espèces ( 0 - centrale ; 7 - succursales et agences)',NULL,NULL,1),(1062,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','578','1060','Caisses - timbres ( 0 - fiscaux ; 1 - postaux)',NULL,NULL,1),(1063,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','58','1355','Virements internes',NULL,NULL,1),(1064,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','60','1356','Approvisionnements et marchandises',NULL,NULL,1),(1065,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','600','1064','Achats de matières premières',NULL,NULL,1),(1066,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','601','1064','Achats de fournitures',NULL,NULL,1),(1067,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','602','1064','Achats de services, travaux et études',NULL,NULL,1),(1068,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','603','1064','Sous-traitances générales',NULL,NULL,1),(1069,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','604','1064','Achats de marchandises',NULL,NULL,1),(1070,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','605','1064','Achats d\'immeubles destinés à la revente',NULL,NULL,1),(1071,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','608','1064','Remises , ristournes et rabais obtenus sur achats',NULL,NULL,1),(1072,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','609','1064','Variations de stocks',NULL,NULL,1),(1073,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6090','1072','De matières premières',NULL,NULL,1),(1074,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6091','1072','De fournitures',NULL,NULL,1),(1075,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6094','1072','De marchandises',NULL,NULL,1),(1076,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6095','1072','d\'immeubles destinés à la vente',NULL,NULL,1),(1077,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61','1356','Services et biens divers',NULL,NULL,1),(1078,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','610','1077','Loyers et charges locatives',NULL,NULL,1),(1079,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6100','1078','Loyers divers',NULL,NULL,1),(1080,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6101','1078','Charges locatives (assurances, frais de confort,etc)',NULL,NULL,1),(1081,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','611','1077','Entretien et réparation (fournitures et prestations)',NULL,NULL,1),(1082,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','612','1077','Fournitures faites à l\'entreprise',NULL,NULL,1),(1083,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6120','1082','Eau, gaz, électricité, vapeur',NULL,NULL,1),(1084,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61200','1083','Eau',NULL,NULL,1),(1085,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61201','1083','Gaz',NULL,NULL,1),(1086,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61202','1083','Electricité',NULL,NULL,1),(1087,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61203','1083','Vapeur',NULL,NULL,1),(1088,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6121','1082','Téléphone, télégrammes, télex, téléfax, frais postaux',NULL,NULL,1),(1089,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61210','1088','Téléphone',NULL,NULL,1),(1090,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61211','1088','Télégrammes',NULL,NULL,1),(1091,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61212','1088','Télex et téléfax',NULL,NULL,1),(1092,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61213','1088','Frais postaux',NULL,NULL,1),(1093,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6122','1082','Livres, bibliothèque',NULL,NULL,1),(1094,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6123','1082','Imprimés et fournitures de bureau (si non comptabilisé au 601)',NULL,NULL,1),(1095,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','613','1077','Rétributions de tiers',NULL,NULL,1),(1096,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6130','1095','Redevances et royalties',NULL,NULL,1),(1097,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61300','1096','Redevances pour brevets, licences, marques et accessoires',NULL,NULL,1),(1098,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61301','1096','Autres redevances (procédés de fabrication)',NULL,NULL,1),(1099,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6131','1095','Assurances non relatives au personnel',NULL,NULL,1),(1100,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61310','1099','Assurance incendie',NULL,NULL,1),(1101,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61311','1099','Assurance vol',NULL,NULL,1),(1102,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61312','1099','Assurance autos',NULL,NULL,1),(1103,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61313','1099','Assurance crédit',NULL,NULL,1),(1104,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61314','1099','Assurances frais généraux',NULL,NULL,1),(1105,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6132','1095','Divers',NULL,NULL,1),(1106,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61320','1105','Commissions aux tiers',NULL,NULL,1),(1107,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61321','1105','Honoraires d\'avocats, d\'experts, etc',NULL,NULL,1),(1108,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61322','1105','Cotisations aux groupements professionnels',NULL,NULL,1),(1109,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61323','1105','Dons, libéralités, etc',NULL,NULL,1),(1110,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61324','1105','Frais de contentieux',NULL,NULL,1),(1111,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61325','1105','Publications légales',NULL,NULL,1),(1112,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6133','1095','Transports et déplacements',NULL,NULL,1),(1113,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61330','1112','Transports de personnel',NULL,NULL,1),(1114,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61331','1112','Voyages, déplacements et représentations',NULL,NULL,1),(1115,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6134','1095','Personnel intérimaire',NULL,NULL,1),(1116,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','614','1077','Annonces, publicité, propagande et documentation',NULL,NULL,1),(1117,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6140','1116','Annonces et insertions',NULL,NULL,1),(1118,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6141','1116','Catalogues et imprimés',NULL,NULL,1),(1119,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6142','1116','Echantillons',NULL,NULL,1),(1120,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6143','1116','Foires et expositions',NULL,NULL,1),(1121,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6144','1116','Primes',NULL,NULL,1),(1122,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6145','1116','Cadeaux à la clientèle',NULL,NULL,1),(1123,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6146','1116','Missions et réceptions',NULL,NULL,1),(1124,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6147','1116','Documentation',NULL,NULL,1),(1125,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','615','1077','Sous-traitants',NULL,NULL,1),(1126,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6150','1125','Sous-traitants pour activités propres',NULL,NULL,1),(1127,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6151','1125','Sous-traitants d\'associations momentanées (coparticipants)',NULL,NULL,1),(1128,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6152','1125','Quote-part bénéficiaire des coparticipants',NULL,NULL,1),(1129,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','617','1077','Personnel intérimaire et personnes mises à la disposition de l\'entreprise',NULL,NULL,1),(1130,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','618','1077','Rémunérations, primes pour assurances extralégales, pensions de retraite et de survie des administrateurs, gérants et associés actifs qui ne sont pas attribuées en vertu d\'un contrat de travail',NULL,NULL,1),(1131,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62','1356','Rémunérations, charges sociales et pensions',NULL,NULL,1),(1132,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','620','1131','Rémunérations et avantages sociaux directs',NULL,NULL,1),(1133,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6200','1132','Administrateurs ou gérants',NULL,NULL,1),(1134,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6201','1132','Personnel de direction',NULL,NULL,1),(1135,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6202','1132','Employés',NULL,NULL,1),(1136,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6203','1132','Ouvriers',NULL,NULL,1),(1137,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6204','1132','Autres membres du personnel',NULL,NULL,1),(1138,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','621','1131','Cotisations patronales d\'assurances sociales',NULL,NULL,1),(1139,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6210','1138','Sur salaires',NULL,NULL,1),(1140,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6211','1138','Sur appointements et commissions',NULL,NULL,1),(1141,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','622','1131','Primes patronales pour assurances extralégales',NULL,NULL,1),(1142,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','623','1131','Autres frais de personnel',NULL,NULL,1),(1143,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6230','1142','Assurances du personnel',NULL,NULL,1),(1144,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62300','1143','Assurances loi, responsabilité civile, chemin du travail',NULL,NULL,1),(1145,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62301','1143','Assurance salaire garanti',NULL,NULL,1),(1146,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62302','1143','Assurances individuelles',NULL,NULL,1),(1147,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6231','1142','Charges sociales diverses',NULL,NULL,1),(1148,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62310','1147','Jours fériés payés',NULL,NULL,1),(1149,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62311','1147','Salaire hebdomadaire garanti',NULL,NULL,1),(1150,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62312','1147','Allocations familiales complémentaires',NULL,NULL,1),(1151,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6232','1142','Charges sociales des administrateurs, gérants et commissaires',NULL,NULL,1),(1152,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62320','1151','Allocations familiales complémentaires pour non salariés',NULL,NULL,1),(1153,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62321','1151','Lois sociales pour indépendants',NULL,NULL,1),(1154,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62322','1151','Divers',NULL,NULL,1),(1155,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','624','1131','Pensions de retraite et de survie',NULL,NULL,1),(1156,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6240','1155','Administrateurs et gérants',NULL,NULL,1),(1157,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6241','1155','Personnel',NULL,NULL,1),(1158,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','625','1131','Provision pour pécule de vacances',NULL,NULL,1),(1159,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6250','1158','Dotations',NULL,NULL,1),(1160,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6251','1158','Utilisations et reprises',NULL,NULL,1),(1161,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','63','1356','Amortissements, réductions de valeur et provisions pour risques et charges',NULL,NULL,1),(1162,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','630','1161','Dotations aux amortissements et aux réductions de valeur sur immobilisations',NULL,NULL,1),(1163,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6300','1162','Dotations aux amortissements sur frais d\'établissement',NULL,NULL,1),(1164,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6301','1162','Dotations aux amortissements sur immobilisations incorporelles',NULL,NULL,1),(1165,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6302','1162','Dotations aux amortissements sur immobilisations corporelles',NULL,NULL,1),(1166,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6308','1162','Dotations aux réductions de valeur sur immobilisations incorporelles',NULL,NULL,1),(1167,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6309','1162','Dotations aux réductions de valeur sur immobilisations corporelles',NULL,NULL,1),(1168,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','631','1161','Réductions de valeur sur stocks',NULL,NULL,1),(1169,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6310','1168','Dotations',NULL,NULL,1),(1170,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6311','1168','Reprises',NULL,NULL,1),(1171,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','632','1161','Réductions de valeur sur commandes en cours d\'exécution',NULL,NULL,1),(1172,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6320','1171','Dotations',NULL,NULL,1),(1173,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6321','1171','Reprises',NULL,NULL,1),(1174,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','633','1161','Réductions de valeur sur créances commerciales à plus d\'un an',NULL,NULL,1),(1175,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6330','1174','Dotations',NULL,NULL,1),(1176,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6331','1174','Reprises',NULL,NULL,1),(1177,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','634','1161','Réductions de valeur sur créances commerciales à un an au plus',NULL,NULL,1),(1178,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6340','1177','Dotations',NULL,NULL,1),(1179,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6341','1177','Reprises',NULL,NULL,1),(1180,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','635','1161','Provisions pour pensions et obligations similaires',NULL,NULL,1),(1181,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6350','1180','Dotations',NULL,NULL,1),(1182,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6351','1180','Utilisations et reprises',NULL,NULL,1),(1183,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','636','11613','Provisions pour grosses réparations et gros entretiens',NULL,NULL,1),(1184,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6360','1183','Dotations',NULL,NULL,1),(1185,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6361','1183','Utilisations et reprises',NULL,NULL,1),(1186,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','637','1161','Provisions pour autres risques et charges',NULL,NULL,1),(1187,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6370','1186','Dotations',NULL,NULL,1),(1188,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6371','1186','Utilisations et reprises',NULL,NULL,1),(1189,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64','1356','Autres charges d\'exploitation',NULL,NULL,1),(1190,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','640','1189','Charges fiscales d\'exploitation',NULL,NULL,1),(1191,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6400','1190','Taxes et impôts directs',NULL,NULL,1),(1192,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64000','1191','Taxes sur autos et camions',NULL,NULL,1),(1193,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6401','1190','Taxes et impôts indirects',NULL,NULL,1),(1194,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64010','1193','Timbres fiscaux pris en charge par la firme',NULL,NULL,1),(1195,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64011','1193','Droits d\'enregistrement',NULL,NULL,1),(1196,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64012','1193','T.V.A. non déductible',NULL,NULL,1),(1197,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6402','1190','Impôts provinciaux et communaux',NULL,NULL,1),(1198,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64020','1197','Taxe sur la force motrice',NULL,NULL,1),(1199,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64021','1197','Taxe sur le personnel occupé',NULL,NULL,1),(1200,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6403','1190','Taxes diverses',NULL,NULL,1),(1201,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','641','1189','Moins-values sur réalisations courantes d\'immobilisations corporelles',NULL,NULL,1),(1202,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','642','1189','Moins-values sur réalisations de créances commerciales',NULL,NULL,1),(1203,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','643','1189','à 648 Charges d\'exploitations diverses',NULL,NULL,1),(1204,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','649','1189','Charges d\'exploitation portées à l\'actif au titre de restructuration',NULL,NULL,1),(1205,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','65','1356','Charges financières',NULL,NULL,1),(1206,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','650','1205','Charges des dettes',NULL,NULL,1),(1207,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6500','1206','Intérêts, commissions et frais afférents aux dettes',NULL,NULL,1),(1208,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6501','1206','Amortissements des agios et frais d\'émission d\'emprunts',NULL,NULL,1),(1209,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6502','1206','Autres charges de dettes',NULL,NULL,1),(1210,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6503','1206','Intérêts intercalaires portés à l\'actif',NULL,NULL,1),(1211,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','651','1205','Réductions de valeur sur actifs circulants',NULL,NULL,1),(1212,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6510','1211','Dotations',NULL,NULL,1),(1213,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6511','1211','Reprises',NULL,NULL,1),(1214,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','652','1205','Moins-values sur réalisation d\'actifs circulants',NULL,NULL,1),(1215,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','653','1205','Charges d\'escompte de créances',NULL,NULL,1),(1216,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','654','1205','Différences de change',NULL,NULL,1),(1217,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','655','1205','Ecarts de conversion des devises',NULL,NULL,1),(1218,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','656','1205','Frais de banques, de chèques postaux',NULL,NULL,1),(1219,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','657','1205','Commissions sur ouvertures de crédit, cautions et avals',NULL,NULL,1),(1220,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','658','1205','Frais de vente des titres',NULL,NULL,1),(1221,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','66','1356','Charges exceptionnelles',NULL,NULL,1),(1222,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','660','1221','Amortissements et réductions de valeur exceptionnels',NULL,NULL,1),(1223,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6600','1222','Sur frais d\'établissement',NULL,NULL,1),(1224,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6601','1222','Sur immobilisations incorporelles',NULL,NULL,1),(1225,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6602','1222','Sur immobilisations corporelles',NULL,NULL,1),(1226,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','661','1221','Réductions de valeur sur immobilisations financières',NULL,NULL,1),(1227,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','662','1221','Provisions pour risques et charges exceptionnels',NULL,NULL,1),(1228,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','663','1221','Moins-values sur réalisation d\'actifs immobilisés',NULL,NULL,1),(1229,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6630','1228','Sur immobilisations incorporelles',NULL,NULL,1),(1230,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6631','1228','Sur immobilisations corporelles',NULL,NULL,1),(1231,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6632','1228','Sur immobilisations détenues en location-financement et droits similaires',NULL,NULL,1),(1232,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6633','1228','Sur immobilisations financières',NULL,NULL,1),(1233,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6634','1228','Sur immeubles acquis ou construits en vue de la revente',NULL,NULL,1),(1234,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','664','1221','à 668 Autres charges exceptionnelles',NULL,NULL,1),(1235,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','664','1221','Pénalités et amendes diverses',NULL,NULL,1),(1236,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','665','1221','Différence de charge',NULL,NULL,1),(1237,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','669','1221','Charges exceptionnelles transférées à l\'actif en frais de restructuration',NULL,NULL,1),(1238,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','67','1356','Impôts sur le résultat',NULL,NULL,1),(1239,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','670','1238','Impôts belges sur le résultat de l\'exercice',NULL,NULL,1),(1240,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6700','1239','Impôts et précomptes dus ou versés',NULL,NULL,1),(1241,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6701','1239','Excédent de versements d\'impôts et précomptes porté à l\'actif',NULL,NULL,1),(1242,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6702','1239','Charges fiscales estimées',NULL,NULL,1),(1243,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','671','1238','Impôts belges sur le résultat d\'exercices antérieurs',NULL,NULL,1),(1244,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6710','1243','Suppléments d\'impôts dus ou versés',NULL,NULL,1),(1245,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6711','1243','Suppléments d\'impôts estimés',NULL,NULL,1),(1246,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6712','1243','Provisions fiscales constituées',NULL,NULL,1),(1247,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','672','1238','Impôts étrangers sur le résultat de l\'exercice',NULL,NULL,1),(1248,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','673','1238','Impôts étrangers sur le résultat d\'exercices antérieurs',NULL,NULL,1),(1249,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','68','1356','Transferts aux réserves immunisées',NULL,NULL,1),(1250,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','69','1356','Affectation des résultats',NULL,NULL,1),(1251,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','690','1250','Perte reportée de l\'exercice précédent',NULL,NULL,1),(1252,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','691','1250','Dotation à la réserve légale',NULL,NULL,1),(1253,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','692','1250','Dotation aux autres réserves',NULL,NULL,1),(1254,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','693','1250','Bénéfice à reporter',NULL,NULL,1),(1255,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','694','1250','Rémunération du capital',NULL,NULL,1),(1256,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','695','1250','Administrateurs ou gérants',NULL,NULL,1),(1257,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','696','1250','Autres allocataires',NULL,NULL,1),(1258,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','70','1357','Chiffre d\'affaires',NULL,NULL,1),(1260,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','700','1258','Ventes de marchandises',NULL,NULL,1),(1261,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7000','1260','Ventes en Belgique',NULL,NULL,1),(1262,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7001','1260','Ventes dans les pays membres de la C.E.E.',NULL,NULL,1),(1263,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7002','1260','Ventes à l\'exportation',NULL,NULL,1),(1264,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','701','1258','Ventes de produits finis',NULL,NULL,1),(1265,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7010','1264','Ventes en Belgique',NULL,NULL,1),(1266,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7011','1264','Ventes dans les pays membres de la C.E.E.',NULL,NULL,1),(1267,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7012','1264','Ventes à l\'exportation',NULL,NULL,1),(1268,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','702','1258','Ventes de déchets et rebuts',NULL,NULL,1),(1269,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7020','1268','Ventes en Belgique',NULL,NULL,1),(1270,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7021','1268','Ventes dans les pays membres de la C.E.E.',NULL,NULL,1),(1271,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7022','1268','Ventes à l\'exportation',NULL,NULL,1),(1272,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','703','1258','Ventes d\'emballages récupérables',NULL,NULL,1),(1273,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','704','1258','Facturations des travaux en cours (associations momentanées)',NULL,NULL,1),(1274,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','705','1258','Prestations de services',NULL,NULL,1),(1275,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7050','1274','Prestations de services en Belgique',NULL,NULL,1),(1276,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7051','1274','Prestations de services dans les pays membres de la C.E.E.',NULL,NULL,1),(1277,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7052','1274','Prestations de services en vue de l\'exportation',NULL,NULL,1),(1278,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','706','1258','Pénalités et dédits obtenus par l\'entreprise',NULL,NULL,1),(1279,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','708','1258','Remises, ristournes et rabais accordés',NULL,NULL,1),(1280,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7080','1279','Sur ventes de marchandises',NULL,NULL,1),(1281,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7081','1279','Sur ventes de produits finis',NULL,NULL,1),(1282,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7082','1279','Sur ventes de déchets et rebuts',NULL,NULL,1),(1283,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7083','1279','Sur prestations de services',NULL,NULL,1),(1284,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7084','1279','Mali sur travaux facturés aux associations momentanées',NULL,NULL,1),(1285,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','71','1357','Variation des stocks et des commandes en cours d\'exécution',NULL,NULL,1),(1286,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','712','1285','Des en cours de fabrication',NULL,NULL,1),(1287,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','713','1285','Des produits finis',NULL,NULL,1),(1288,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','715','1285','Des immeubles construits destinés à la vente',NULL,NULL,1),(1289,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','717','1285','Des commandes en cours d\'exécution',NULL,NULL,1),(1290,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7170','1289','Commandes en cours - Coût de revient',NULL,NULL,1),(1291,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','71700','1290','Coût des commandes en cours d\'exécution',NULL,NULL,1),(1292,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','71701','1290','Coût des travaux en cours des associations momentanées',NULL,NULL,1),(1293,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7171','1289','Bénéfices portés en compte sur commandes en cours',NULL,NULL,1),(1294,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','71710','1293','Sur commandes en cours d\'exécution',NULL,NULL,1),(1295,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','71711','1293','Sur travaux en cours des associations momentanées',NULL,NULL,1),(1296,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','72','1357','Production immobilisée',NULL,NULL,1),(1297,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','720','1296','En frais d\'établissement',NULL,NULL,1),(1298,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','721','1296','En immobilisations incorporelles',NULL,NULL,1),(1299,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','722','1296','En immobilisations corporelles',NULL,NULL,1),(1300,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','723','1296','En immobilisations en cours',NULL,NULL,1),(1301,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','74','1357','Autres produits d\'exploitation',NULL,NULL,1),(1302,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','740','1301','Subsides d\'exploitation et montants compensatoires',NULL,NULL,1),(1303,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','741','1301','Plus-values sur réalisations courantes d\'immobilisations corporelles',NULL,NULL,1),(1304,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','742','1301','Plus-values sur réalisations de créances commerciales',NULL,NULL,1),(1305,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','743','1301','à 749 Produits d\'exploitation divers',NULL,NULL,1),(1306,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','743','1301','Produits de services exploités dans l\'intérêt du personnel',NULL,NULL,1),(1307,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','744','1301','Commissions et courtages',NULL,NULL,1),(1308,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','745','1301','Redevances pour brevets et licences',NULL,NULL,1),(1309,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','746','1301','Prestations de services (transports, études, etc)',NULL,NULL,1),(1310,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','747','1301','Revenus des immeubles affectés aux activités non professionnelles',NULL,NULL,1),(1311,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','748','1301','Locations diverses à caractère professionnel',NULL,NULL,1),(1312,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','749','1301','Produits divers',NULL,NULL,1),(1313,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7490','1312','Bonis sur reprises d\'emballages consignés',NULL,NULL,1),(1314,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7491','1312','Bonis sur travaux en associations momentanées',NULL,NULL,1),(1315,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','75','1357','Produits financiers',NULL,NULL,1),(1316,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','750','1315','Produits des immobilisations financières',NULL,NULL,1),(1317,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7500','1316','Revenus des actions',NULL,NULL,1),(1318,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7501','1316','Revenus des obligations',NULL,NULL,1),(1319,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7502','1316','Revenus des créances à plus d\'un an',NULL,NULL,1),(1320,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','751','1315','Produits des actifs circulants',NULL,NULL,1),(1321,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','752','1315','Plus-values sur réalisations d\'actifs circulants',NULL,NULL,1),(1322,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','753','1315','Subsides en capital et en intérêts',NULL,NULL,1),(1323,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','754','1315','Différences de change',NULL,NULL,1),(1324,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','755','1315','Ecarts de conversion des devises',NULL,NULL,1),(1325,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','756','1315','à 759 Produits financiers divers',NULL,NULL,1),(1326,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','756','1315','Produits des autres créances',NULL,NULL,1),(1327,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','757','1315','Escomptes obtenus',NULL,NULL,1),(1328,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','76','1357','Produits exceptionnels',NULL,NULL,1),(1329,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','760','1328','Reprises d\'amortissements et de réductions de valeur',NULL,NULL,1),(1330,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7600','1329','Sur immobilisations incorporelles',NULL,NULL,1),(1331,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7601','1329','Sur immobilisations corporelles',NULL,NULL,1),(1332,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','761','1328','Reprises de réductions de valeur sur immobilisations financières',NULL,NULL,1),(1333,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','762','1328','Reprises de provisions pour risques et charges exceptionnelles',NULL,NULL,1),(1334,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','763','1328','Plus-values sur réalisation d\'actifs immobilisés',NULL,NULL,1),(1335,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7630','1334','Sur immobilisations incorporelles',NULL,NULL,1),(1336,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7631','1334','Sur immobilisations corporelles',NULL,NULL,1),(1337,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7632','1334','Sur immobilisations financières',NULL,NULL,1),(1338,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','764','1328','Autres produits exceptionnels',NULL,NULL,1),(1339,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','77','1357','Régularisations d\'impôts et reprises de provisions fiscales',NULL,NULL,1),(1340,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','771','1339','Impôts belges sur le résultat',NULL,NULL,1),(1341,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7710','1340','Régularisations d\'impôts dus ou versés',NULL,NULL,1),(1342,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7711','1340','Régularisations d\'impôts estimés',NULL,NULL,1),(1343,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7712','1340','Reprises de provisions fiscales',NULL,NULL,1),(1344,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','773','1339','Impôts étrangers sur le résultat',NULL,NULL,1),(1345,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','79','1357','Affectation aux résultats',NULL,NULL,1),(1346,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','790','1345','Bénéfice reporté de l\'exercice précédent',NULL,NULL,1),(1347,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','791','1345','Prélèvement sur le capital et les primes d\'émission',NULL,NULL,1),(1348,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','792','1345','Prélèvement sur les réserves',NULL,NULL,1),(1349,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','793','1345','Perte à reporter',NULL,NULL,1),(1350,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','794','1345','Intervention d\'associés (ou du propriétaire) dans la perte',NULL,NULL,1),(1351,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1','','Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',NULL,NULL,1),(1352,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2','','Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',NULL,NULL,1),(1353,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3','','Stock et commandes en cours d\'exécution',NULL,NULL,1),(1354,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4','','Créances et dettes à un an au plus',NULL,NULL,1),(1355,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','5','','Placement de trésorerie et de valeurs disponibles',NULL,NULL,1),(1356,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6','','Charges',NULL,NULL,1),(1357,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7','','Produits',NULL,NULL,1),(1401,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','1','','Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',NULL,NULL,1),(1402,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','2','','Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',NULL,NULL,1),(1403,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','3','','Stock et commandes en cours d\'exécution',NULL,NULL,1),(1404,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','4','','Créances et dettes à un an au plus',NULL,NULL,1),(1405,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','XXXXXX','5','','Placement de trésorerie et de valeurs disponibles',NULL,NULL,1),(1406,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','6','','Charges',NULL,NULL,1),(1407,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','7','','Produits',NULL,NULL,1),(1501,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','1','','Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',NULL,NULL,1),(1502,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','2','','Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',NULL,NULL,1),(1503,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','3','','Stock et commandes en cours d\'exécution',NULL,NULL,1),(1504,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','4','','Créances et dettes à un an au plus',NULL,NULL,1),(1505,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','5','','Placement de trésorerie et de valeurs disponibles',NULL,NULL,1),(1506,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','6','','Charges',NULL,NULL,1),(1507,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','7','','Produits',NULL,NULL,1),(4001,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1','','Financiación básica',NULL,NULL,1),(4002,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','ACTIVO','XXXXXX','2','','Activo no corriente',NULL,NULL,1),(4003,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','EXISTENCIAS','XXXXXX','3','','Existencias',NULL,NULL,1),(4004,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4','','Acreedores y deudores por operaciones comerciales',NULL,NULL,1),(4005,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5','','Cuentas financieras',NULL,NULL,1),(4006,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6','','Compras y gastos',NULL,NULL,1),(4007,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7','','Ventas e ingresos',NULL,NULL,1),(4008,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','10','4001','CAPITAL',NULL,NULL,1),(4009,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','100','4008','Capital social',NULL,NULL,1),(4010,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','101','4008','Fondo social',NULL,NULL,1),(4011,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','CAPITAL','102','4008','Capital',NULL,NULL,1),(4012,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','103','4008','Socios por desembolsos no exigidos',NULL,NULL,1),(4013,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1030','4012','Socios por desembolsos no exigidos capital social',NULL,NULL,1),(4014,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1034','4012','Socios por desembolsos no exigidos capital pendiente de inscripción',NULL,NULL,1),(4015,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','104','4008','Socios por aportaciones no dineradas pendientes',NULL,NULL,1),(4016,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1040','4015','Socios por aportaciones no dineradas pendientes capital social',NULL,NULL,1),(4017,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1044','4015','Socios por aportaciones no dineradas pendientes capital pendiente de inscripción',NULL,NULL,1),(4018,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','108','4008','Acciones o participaciones propias en situaciones especiales',NULL,NULL,1),(4019,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','109','4008','Acciones o participaciones propias para reducción de capital',NULL,NULL,1),(4020,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','11','4001','Reservas y otros instrumentos de patrimonio',NULL,NULL,1),(4021,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','110','4020','Prima de emisión o asunción',NULL,NULL,1),(4022,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','111','4020','Otros instrumentos de patrimonio neto',NULL,NULL,1),(4023,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1110','4022','Patrimonio neto por emisión de instrumentos financieros compuestos',NULL,NULL,1),(4024,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1111','4022','Resto de instrumentos de patrimoio neto',NULL,NULL,1),(4025,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','112','4020','Reserva legal',NULL,NULL,1),(4026,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','113','4020','Reservas voluntarias',NULL,NULL,1),(4027,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','114','4020','Reservas especiales',NULL,NULL,1),(4028,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1140','4027','Reservas para acciones o participaciones de la sociedad dominante',NULL,NULL,1),(4029,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1141','4027','Reservas estatutarias',NULL,NULL,1),(4030,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1142','4027','Reservas por capital amortizado',NULL,NULL,1),(4031,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1143','4027','Reservas por fondo de comercio',NULL,NULL,1),(4032,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1144','4028','Reservas por acciones propias aceptadas en garantía',NULL,NULL,1),(4033,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','115','4020','Reservas por pérdidas y ganancias actuariales y otros ajustes',NULL,NULL,1),(4034,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','118','4020','Aportaciones de socios o propietarios',NULL,NULL,1),(4035,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','119','4020','Diferencias por ajuste del capital a euros',NULL,NULL,1),(4036,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','12','4001','Resultados pendientes de aplicación',NULL,NULL,1),(4037,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','120','4036','Remanente',NULL,NULL,1),(4038,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','121','4036','Resultados negativos de ejercicios anteriores',NULL,NULL,1),(4039,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','129','4036','Resultado del ejercicio',NULL,NULL,1),(4040,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','13','4001','Subvenciones, donaciones y ajustes por cambio de valor',NULL,NULL,1),(4041,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','130','4040','Subvenciones oficiales de capital',NULL,NULL,1),(4042,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','131','4040','Donaciones y legados de capital',NULL,NULL,1),(4043,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','132','4040','Otras subvenciones, donaciones y legados',NULL,NULL,1),(4044,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','133','4040','Ajustes por valoración en activos financieros disponibles para la venta',NULL,NULL,1),(4045,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','134','4040','Operaciones de cobertura',NULL,NULL,1),(4046,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1340','4045','Cobertura de flujos de efectivo',NULL,NULL,1),(4047,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1341','4045','Cobertura de una inversión neta en un negocio extranjero',NULL,NULL,1),(4048,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','135','4040','Diferencias de conversión',NULL,NULL,1),(4049,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','136','4040','Ajustes por valoración en activos no corrientes y grupos enajenables de elementos mantenidos para la venta',NULL,NULL,1),(4050,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','137','4040','Ingresos fiscales a distribuir en varios ejercicios',NULL,NULL,1),(4051,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1370','4050','Ingresos fiscales por diferencias permanentes a distribuir en varios ejercicios',NULL,NULL,1),(4052,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1371','4050','Ingresos fiscales por deducciones y bonificaciones a distribuir en varios ejercicios',NULL,NULL,1),(4053,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','14','4001','Provisiones',NULL,NULL,1),(4054,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','141','4053','Provisión para impuestos',NULL,NULL,1),(4055,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','142','4053','Provisión para otras responsabilidades',NULL,NULL,1),(4056,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','143','4053','Provisión por desmantelamiento, retiro o rehabilitación del inmovilizado',NULL,NULL,1),(4057,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','145','4053','Provisión para actuaciones medioambientales',NULL,NULL,1),(4058,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','15','4001','Deudas a largo plazo con características especiales',NULL,NULL,1),(4059,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','150','4058','Acciones o participaciones a largo plazo consideradas como pasivos financieros',NULL,NULL,1),(4060,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','153','4058','Desembolsos no exigidos por acciones o participaciones consideradas como pasivos financieros',NULL,NULL,1),(4061,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1533','4060','Desembolsos no exigidos empresas del grupo',NULL,NULL,1),(4062,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1534','4060','Desembolsos no exigidos empresas asociadas',NULL,NULL,1),(4063,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1535','4060','Desembolsos no exigidos otras partes vinculadas',NULL,NULL,1),(4064,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1536','4060','Otros desembolsos no exigidos',NULL,NULL,1),(4065,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','154','4058','Aportaciones no dinerarias pendientes por acciones o participaciones consideradas como pasivos financieros',NULL,NULL,1),(4066,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1543','4065','Aportaciones no dinerarias pendientes empresas del grupo',NULL,NULL,1),(4067,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1544','4065','Aportaciones no dinerarias pendientes empresas asociadas',NULL,NULL,1),(4068,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1545','4065','Aportaciones no dinerarias pendientes otras partes vinculadas',NULL,NULL,1),(4069,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1546','4065','Otras aportaciones no dinerarias pendientes',NULL,NULL,1),(4070,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','16','4001','Deudas a largo plazo con partes vinculadas',NULL,NULL,1),(4071,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','160','4070','Deudas a largo plazo con entidades de crédito vinculadas',NULL,NULL,1),(4072,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1603','4071','Deudas a largo plazo con entidades de crédito empresas del grupo',NULL,NULL,1),(4073,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1604','4071','Deudas a largo plazo con entidades de crédito empresas asociadas',NULL,NULL,1),(4074,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1605','4071','Deudas a largo plazo con otras entidades de crédito vinculadas',NULL,NULL,1),(4075,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','161','4070','Proveedores de inmovilizado a largo plazo partes vinculadas',NULL,NULL,1),(4076,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1613','4075','Proveedores de inmovilizado a largo plazo empresas del grupo',NULL,NULL,1),(4077,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1614','4075','Proveedores de inmovilizado a largo plazo empresas asociadas',NULL,NULL,1),(4078,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1615','4075','Proveedores de inmovilizado a largo plazo otras partes vinculadas',NULL,NULL,1),(4079,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','162','4070','Acreedores por arrendamiento financiero a largo plazo partes vinculadas',NULL,NULL,1),(4080,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1623','4079','Acreedores por arrendamiento financiero a largo plazo empresas del grupo',NULL,NULL,1),(4081,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1624','4080','Acreedores por arrendamiento financiero a largo plazo empresas asociadas',NULL,NULL,1),(4082,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1625','4080','Acreedores por arrendamiento financiero a largo plazo otras partes vinculadas',NULL,NULL,1),(4083,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','163','4070','Otras deudas a largo plazo con partes vinculadas',NULL,NULL,1),(4084,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1633','4083','Otras deudas a largo plazo empresas del grupo',NULL,NULL,1),(4085,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1634','4083','Otras deudas a largo plazo empresas asociadas',NULL,NULL,1),(4086,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1635','4083','Otras deudas a largo plazo otras partes vinculadas',NULL,NULL,1),(4087,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','17','4001','Deudas a largo plazo por préstamos recibidos empresitos y otros conceptos',NULL,NULL,1),(4088,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','170','4087','Deudas a largo plazo con entidades de crédito',NULL,NULL,1),(4089,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','171','4087','Deudas a largo plazo',NULL,NULL,1),(4090,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','172','4087','Deudas a largo plazo transformables en suvbenciones donaciones y legados',NULL,NULL,1),(4091,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','173','4087','Proveedores de inmovilizado a largo plazo',NULL,NULL,1),(4092,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','174','4087','Acreedores por arrendamiento financiero a largo plazo',NULL,NULL,1),(4093,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','175','4087','Efectos a pagar a largo plazo',NULL,NULL,1),(4094,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','176','4087','Pasivos por derivados financieros a largo plazo',NULL,NULL,1),(4095,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','177','4087','Obligaciones y bonos',NULL,NULL,1),(4096,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','179','4087','Deudas representadas en otros valores negociables',NULL,NULL,1),(4097,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','18','4001','Pasivos por fianzas garantias y otros conceptos a largo plazo',NULL,NULL,1),(4098,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','180','4097','Fianzas recibidas a largo plazo',NULL,NULL,1),(4099,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','181','4097','Anticipos recibidos por ventas o prestaciones de servicios a largo plazo',NULL,NULL,1),(4100,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','185','4097','Depositos recibidos a largo plazo',NULL,NULL,1),(4101,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','19','4001','Situaciones transitorias de financiación',NULL,NULL,1),(4102,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','190','4101','Acciones o participaciones emitidas',NULL,NULL,1),(4103,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','192','4101','Suscriptores de acciones',NULL,NULL,1),(4104,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','194','4101','Capital emitido pendiente de inscripción',NULL,NULL,1),(4105,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','195','4101','Acciones o participaciones emitidas consideradas como pasivos financieros',NULL,NULL,1),(4106,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','197','4101','Suscriptores de acciones consideradas como pasivos financieros',NULL,NULL,1),(4107,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','199','4101','Acciones o participaciones emitidas consideradas como pasivos financieros pendientes de inscripción',NULL,NULL,1),(4108,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','20','4002','Inmovilizaciones intangibles',NULL,NULL,1),(4109,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','200','4108','Investigación',NULL,NULL,1),(4110,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','201','4108','Desarrollo',NULL,NULL,1),(4111,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','202','4108','Concesiones administrativas',NULL,NULL,1),(4112,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','203','4108','Propiedad industrial',NULL,NULL,1),(4113,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','205','4108','Derechos de transpaso',NULL,NULL,1),(4114,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','206','4108','Aplicaciones informáticas',NULL,NULL,1),(4115,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','209','4108','Anticipos para inmovilizaciones intangibles',NULL,NULL,1),(4116,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','21','4002','Inmovilizaciones materiales',NULL,NULL,1),(4117,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','210','4116','Terrenos y bienes naturales',NULL,NULL,1),(4118,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','211','4116','Construcciones',NULL,NULL,1),(4119,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','212','4116','Instalaciones técnicas',NULL,NULL,1),(4120,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','213','4116','Maquinaria',NULL,NULL,1),(4121,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','214','4116','Utillaje',NULL,NULL,1),(4122,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','215','4116','Otras instalaciones',NULL,NULL,1),(4123,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','216','4116','Mobiliario',NULL,NULL,1),(4124,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','217','4116','Equipos para procesos de información',NULL,NULL,1),(4125,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','218','4116','Elementos de transporte',NULL,NULL,1),(4126,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','219','4116','Otro inmovilizado material',NULL,NULL,1),(4127,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','22','4002','Inversiones inmobiliarias',NULL,NULL,1),(4128,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','220','4127','Inversiones en terreons y bienes naturales',NULL,NULL,1),(4129,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','221','4127','Inversiones en construcciones',NULL,NULL,1),(4130,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','23','4002','Inmovilizaciones materiales en curso',NULL,NULL,1),(4131,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','230','4130','Adaptación de terrenos y bienes naturales',NULL,NULL,1),(4132,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','231','4130','Construcciones en curso',NULL,NULL,1),(4133,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','232','4130','Instalaciones técnicas en montaje',NULL,NULL,1),(4134,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','233','4130','Maquinaria en montaje',NULL,NULL,1),(4135,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','237','4130','Equipos para procesos de información en montaje',NULL,NULL,1),(4136,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','239','4130','Anticipos para inmovilizaciones materiales',NULL,NULL,1),(4137,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','24','4002','Inversiones financieras a largo plazo en partes vinculadas',NULL,NULL,1),(4138,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','240','4137','Participaciones a largo plazo en partes vinculadas',NULL,NULL,1),(4139,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2403','4138','Participaciones a largo plazo en empresas del grupo',NULL,NULL,1),(4140,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2404','4138','Participaciones a largo plazo en empresas asociadas',NULL,NULL,1),(4141,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2405','4138','Participaciones a largo plazo en otras partes vinculadas',NULL,NULL,1),(4142,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','241','4137','Valores representativos de deuda a largo plazo de partes vinculadas',NULL,NULL,1),(4143,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2413','4142','Valores representativos de deuda a largo plazo de empresas del grupo',NULL,NULL,1),(4144,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2414','4142','Valores representativos de deuda a largo plazo de empresas asociadas',NULL,NULL,1),(4145,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2415','4142','Valores representativos de deuda a largo plazo de otras partes vinculadas',NULL,NULL,1),(4146,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','242','4137','Créditos a largo plazo a partes vinculadas',NULL,NULL,1),(4147,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2423','4146','Créditos a largo plazo a empresas del grupo',NULL,NULL,1),(4148,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2424','4146','Créditos a largo plazo a empresas asociadas',NULL,NULL,1),(4149,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2425','4146','Créditos a largo plazo a otras partes vinculadas',NULL,NULL,1),(4150,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','249','4137','Desembolsos pendientes sobre participaciones a largo plazo en partes vinculadas',NULL,NULL,1),(4151,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2493','4150','Desembolsos pendientes sobre participaciones a largo plazo en empresas del grupo',NULL,NULL,1),(4152,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2494','4150','Desembolsos pendientes sobre participaciones a largo plazo en empresas asociadas',NULL,NULL,1),(4153,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2495','4150','Desembolsos pendientes sobre participaciones a largo plazo en otras partes vinculadas',NULL,NULL,1),(4154,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','25','4002','Otras inversiones financieras a largo plazo',NULL,NULL,1),(4155,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','250','4154','Inversiones financieras a largo plazo en instrumentos de patrimonio',NULL,NULL,1),(4156,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','251','4154','Valores representativos de deuda a largo plazo',NULL,NULL,1),(4157,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','252','4154','Créditos a largo plazo',NULL,NULL,1),(4158,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','253','4154','Créditos a largo plazo por enajenación de inmovilizado',NULL,NULL,1),(4159,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','254','4154','Créditos a largo plazo al personal',NULL,NULL,1),(4160,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','255','4154','Activos por derivados financieros a largo plazo',NULL,NULL,1),(4161,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','258','4154','Imposiciones a largo plazo',NULL,NULL,1),(4162,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','259','4154','Desembolsos pendientes sobre participaciones en el patrimonio neto a largo plazo',NULL,NULL,1),(4163,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','26','4002','Fianzas y depósitos constituidos a largo plazo',NULL,NULL,1),(4164,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','260','4163','Fianzas constituidas a largo plazo',NULL,NULL,1),(4165,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','261','4163','Depósitos constituidos a largo plazo',NULL,NULL,1),(4166,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','28','4002','Amortización acumulada del inmovilizado',NULL,NULL,1),(4167,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','280','4166','Amortización acumulado del inmovilizado intangible',NULL,NULL,1),(4168,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2800','4167','Amortización acumulada de investigación',NULL,NULL,1),(4169,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2801','4167','Amortización acumulada de desarrollo',NULL,NULL,1),(4170,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2802','4167','Amortización acumulada de concesiones administrativas',NULL,NULL,1),(4171,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2803','4167','Amortización acumulada de propiedad industrial',NULL,NULL,1),(4172,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2805','4167','Amortización acumulada de derechos de transpaso',NULL,NULL,1),(4173,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2806','4167','Amortización acumulada de aplicaciones informáticas',NULL,NULL,1),(4174,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','281','4166','Amortización acumulado del inmovilizado material',NULL,NULL,1),(4175,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2811','4174','Amortización acumulada de construcciones',NULL,NULL,1),(4176,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2812','4174','Amortización acumulada de instalaciones técnicas',NULL,NULL,1),(4177,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2813','4174','Amortización acumulada de maquinaria',NULL,NULL,1),(4178,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2814','4174','Amortización acumulada de utillaje',NULL,NULL,1),(4179,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2815','4174','Amortización acumulada de otras instalaciones',NULL,NULL,1),(4180,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2816','4174','Amortización acumulada de mobiliario',NULL,NULL,1),(4181,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2817','4174','Amortización acumulada de equipos para proceso de información',NULL,NULL,1),(4182,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2818','4174','Amortización acumulada de elementos de transporte',NULL,NULL,1),(4183,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2819','4175','Amortización acumulada de otro inmovilizado material',NULL,NULL,1),(4184,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','282','4166','Amortización acumulada de las inversiones inmobiliarias',NULL,NULL,1),(4185,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','29','4002','Deterioro de valor de activos no corrientes',NULL,NULL,1),(4186,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','290','4185','Deterioro de valor del inmovilizado intangible',NULL,NULL,1),(4187,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2900','4186','Deterioro de valor de investigación',NULL,NULL,1),(4188,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2901','4186','Deterioro de valor de desarrollo',NULL,NULL,1),(4189,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2902','4186','Deterioro de valor de concesiones administrativas',NULL,NULL,1),(4190,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2903','4186','Deterioro de valor de propiedad industrial',NULL,NULL,1),(4191,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2905','4186','Deterioro de valor de derechos de transpaso',NULL,NULL,1),(4192,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2906','4186','Deterioro de valor de aplicaciones informáticas',NULL,NULL,1),(4193,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','291','4185','Deterioro de valor del inmovilizado material',NULL,NULL,1),(4194,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2910','4193','Deterioro de valor de terrenos y bienes naturales',NULL,NULL,1),(4195,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2911','4193','Deterioro de valor de construcciones',NULL,NULL,1),(4196,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2912','4193','Deterioro de valor de instalaciones técnicas',NULL,NULL,1),(4197,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2913','4193','Deterioro de valor de maquinaria',NULL,NULL,1),(4198,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2914','4193','Deterioro de valor de utillajes',NULL,NULL,1),(4199,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2915','4194','Deterioro de valor de otras instalaciones',NULL,NULL,1),(4200,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2916','4194','Deterioro de valor de mobiliario',NULL,NULL,1),(4201,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2917','4194','Deterioro de valor de equipos para proceso de información',NULL,NULL,1),(4202,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2918','4194','Deterioro de valor de elementos de transporte',NULL,NULL,1),(4203,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2919','4194','Deterioro de valor de otro inmovilizado material',NULL,NULL,1),(4204,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','292','4185','Deterioro de valor de las inversiones inmobiliarias',NULL,NULL,1),(4205,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2920','4204','Deterioro de valor de terrenos y bienes naturales',NULL,NULL,1),(4206,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2921','4204','Deterioro de valor de construcciones',NULL,NULL,1),(4207,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','293','4185','Deterioro de valor de participaciones a largo plazo en partes vinculadas',NULL,NULL,1),(4208,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2933','4207','Deterioro de valor de participaciones a largo plazo en empresas del grupo',NULL,NULL,1),(4209,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2934','4207','Deterioro de valor de sobre participaciones a largo plazo en empresas asociadas',NULL,NULL,1),(4210,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2935','4207','Deterioro de valor de sobre participaciones a largo plazo en otras partes vinculadas',NULL,NULL,1),(4211,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','294','4185','Deterioro de valor de valores representativos de deuda a largo plazo en partes vinculadas',NULL,NULL,1),(4212,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2943','4211','Deterioro de valor de valores representativos de deuda a largo plazo en empresas del grupo',NULL,NULL,1),(4213,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2944','4211','Deterioro de valor de valores representativos de deuda a largo plazo en empresas asociadas',NULL,NULL,1),(4214,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2945','4211','Deterioro de valor de valores representativos de deuda a largo plazo en otras partes vinculadas',NULL,NULL,1),(4215,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','295','4185','Deterioro de valor de créditos a largo plazo a partes vinculadas',NULL,NULL,1),(4216,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2953','4215','Deterioro de valor de créditos a largo plazo a empresas del grupo',NULL,NULL,1),(4217,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2954','4215','Deterioro de valor de créditos a largo plazo a empresas asociadas',NULL,NULL,1),(4218,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2955','4215','Deterioro de valor de créditos a largo plazo a otras partes vinculadas',NULL,NULL,1),(4219,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','296','4185','Deterioro de valor de participaciones en el patrimonio netoa largo plazo',NULL,NULL,1),(4220,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','297','4185','Deterioro de valor de valores representativos de deuda a largo plazo',NULL,NULL,1),(4221,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','298','4185','Deterioro de valor de créditos a largo plazo',NULL,NULL,1),(4222,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','30','4003','Comerciales',NULL,NULL,1),(4223,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','300','4222','Mercaderías A',NULL,NULL,1),(4224,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','301','4222','Mercaderías B',NULL,NULL,1),(4225,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','31','4003','Materias primas',NULL,NULL,1),(4226,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','310','4225','Materias primas A',NULL,NULL,1),(4227,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','311','4225','Materias primas B',NULL,NULL,1),(4228,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','32','4003','Otros aprovisionamientos',NULL,NULL,1),(4229,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','320','4228','Elementos y conjuntos incorporables',NULL,NULL,1),(4230,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','321','4228','Combustibles',NULL,NULL,1),(4231,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','322','4228','Repuestos',NULL,NULL,1),(4232,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','325','4228','Materiales diversos',NULL,NULL,1),(4233,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','326','4228','Embalajes',NULL,NULL,1),(4234,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','327','4228','Envases',NULL,NULL,1),(4235,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','328','4229','Material de oficina',NULL,NULL,1),(4236,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','33','4003','Productos en curso',NULL,NULL,1),(4237,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','330','4236','Productos en curos A',NULL,NULL,1),(4238,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','331','4236','Productos en curso B',NULL,NULL,1),(4239,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','34','4003','Productos semiterminados',NULL,NULL,1),(4240,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','340','4239','Productos semiterminados A',NULL,NULL,1),(4241,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','341','4239','Productos semiterminados B',NULL,NULL,1),(4242,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','35','4003','Productos terminados',NULL,NULL,1),(4243,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','350','4242','Productos terminados A',NULL,NULL,1),(4244,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','351','4242','Productos terminados B',NULL,NULL,1),(4245,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','36','4003','Subproductos, residuos y materiales recuperados',NULL,NULL,1),(4246,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','360','4245','Subproductos A',NULL,NULL,1),(4247,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','361','4245','Subproductos B',NULL,NULL,1),(4248,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','365','4245','Residuos A',NULL,NULL,1),(4249,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','366','4245','Residuos B',NULL,NULL,1),(4250,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','368','4245','Materiales recuperados A',NULL,NULL,1),(4251,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','369','4245','Materiales recuperados B',NULL,NULL,1),(4252,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','39','4003','Deterioro de valor de las existencias',NULL,NULL,1),(4253,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','390','4252','Deterioro de valor de las mercaderías',NULL,NULL,1),(4254,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','391','4252','Deterioro de valor de las materias primas',NULL,NULL,1),(4255,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','392','4252','Deterioro de valor de otros aprovisionamientos',NULL,NULL,1),(4256,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','393','4252','Deterioro de valor de los productos en curso',NULL,NULL,1),(4257,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','394','4252','Deterioro de valor de los productos semiterminados',NULL,NULL,1),(4258,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','395','4252','Deterioro de valor de los productos terminados',NULL,NULL,1),(4259,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','396','4252','Deterioro de valor de los subproductos, residuos y materiales recuperados',NULL,NULL,1),(4260,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','PROVEEDORES','40','4004','Proveedores',NULL,NULL,1),(4261,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','PROVEEDORES','400','4260','Proveedores',NULL,NULL,1),(4262,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4000','4261','Proveedores euros',NULL,NULL,1),(4263,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4004','4261','Proveedores moneda extranjera',NULL,NULL,1),(4264,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4009','4261','Proveedores facturas pendientes de recibir o formalizar',NULL,NULL,1),(4265,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','401','4260','Proveedores efectos comerciales a pagar',NULL,NULL,1),(4266,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','403','4260','Proveedores empresas del grupo',NULL,NULL,1),(4267,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4030','4266','Proveedores empresas del grupo euros',NULL,NULL,1),(4268,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4031','4266','Efectos comerciales a pagar empresas del grupo',NULL,NULL,1),(4269,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4034','4266','Proveedores empresas del grupo moneda extranjera',NULL,NULL,1),(4270,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4036','4266','Envases y embalajes a devolver a proveedores empresas del grupo',NULL,NULL,1),(4271,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4039','4266','Proveedores empresas del grupo facturas pendientes de recibir o de formalizar',NULL,NULL,1),(4272,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','404','4260','Proveedores empresas asociadas',NULL,NULL,1),(4273,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','405','4260','Proveedores otras partes vinculadas',NULL,NULL,1),(4274,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','406','4260','Envases y embalajes a devolver a proveedores',NULL,NULL,1),(4275,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','407','4260','Anticipos a proveedores',NULL,NULL,1),(4276,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','41','4004','Acreedores varios',NULL,NULL,1),(4277,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','410','4276','Acreedores por prestaciones de servicios',NULL,NULL,1),(4278,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4100','4277','Acreedores por prestaciones de servicios euros',NULL,NULL,1),(4279,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4104','4277','Acreedores por prestaciones de servicios moneda extranjera',NULL,NULL,1),(4280,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4109','4277','Acreedores por prestaciones de servicios facturas pendientes de recibir o formalizar',NULL,NULL,1),(4281,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','411','4276','Acreedores efectos comerciales a pagar',NULL,NULL,1),(4282,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','419','4276','Acreedores por operaciones en común',NULL,NULL,1),(4283,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','CLIENTES','43','4004','Clientes',NULL,NULL,1),(4284,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','CLIENTES','430','4283','Clientes',NULL,NULL,1),(4285,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4300','4284','Clientes euros',NULL,NULL,1),(4286,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4304','4284','Clientes moneda extranjera',NULL,NULL,1),(4287,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4309','4284','Clientes facturas pendientes de formalizar',NULL,NULL,1),(4288,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','431','4283','Clientes efectos comerciales a cobrar',NULL,NULL,1),(4289,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4310','4288','Efectos comerciales en cartera',NULL,NULL,1),(4290,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4311','4288','Efectos comerciales descontados',NULL,NULL,1),(4291,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4312','4288','Efectos comerciales en gestión de cobro',NULL,NULL,1),(4292,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4315','4288','Efectos comerciales impagados',NULL,NULL,1),(4293,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','432','4283','Clientes operaciones de factoring',NULL,NULL,1),(4294,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','433','4283','Clientes empresas del grupo',NULL,NULL,1),(4295,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4330','4294','Clientes empresas del grupo euros',NULL,NULL,1),(4296,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4331','4294','Efectos comerciales a cobrar empresas del grupo',NULL,NULL,1),(4297,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4332','4294','Clientes empresas del grupo operaciones de factoring',NULL,NULL,1),(4298,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4334','4294','Clientes empresas del grupo moneda extranjera',NULL,NULL,1),(4299,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4336','4294','Clientes empresas del grupo dudoso cobro',NULL,NULL,1),(4300,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4337','4294','Envases y embalajes a devolver a clientes empresas del grupo',NULL,NULL,1),(4301,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4339','4294','Clientes empresas del grupo facturas pendientes de formalizar',NULL,NULL,1),(4302,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','434','4283','Clientes empresas asociadas',NULL,NULL,1),(4303,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','435','4283','Clientes otras partes vinculadas',NULL,NULL,1),(4304,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','436','4283','Clientes de dudoso cobro',NULL,NULL,1),(4305,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','437','4283','Envases y embalajes a devolver por clientes',NULL,NULL,1),(4306,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','438','4283','Anticipos de clientes',NULL,NULL,1),(4307,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','44','4004','Deudores varios',NULL,NULL,1),(4308,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','440','4307','Deudores',NULL,NULL,1),(4309,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4400','4308','Deudores euros',NULL,NULL,1),(4310,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4404','4308','Deudores moneda extranjera',NULL,NULL,1),(4311,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4409','4308','Deudores facturas pendientes de formalizar',NULL,NULL,1),(4312,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','441','4307','Deudores efectos comerciales a cobrar',NULL,NULL,1),(4313,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4410','4312','Deudores efectos comerciales en cartera',NULL,NULL,1),(4314,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4411','4312','Deudores efectos comerciales descontados',NULL,NULL,1),(4315,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4412','4312','Deudores efectos comerciales en gestión de cobro',NULL,NULL,1),(4316,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4415','4312','Deudores efectos comerciales impagados',NULL,NULL,1),(4317,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','446','4307','Deudores de dusoso cobro',NULL,NULL,1),(4318,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','449','4307','Deudores por operaciones en común',NULL,NULL,1),(4319,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','46','4004','Personal',NULL,NULL,1),(4320,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','460','4319','Anticipos de renumeraciones',NULL,NULL,1),(4321,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','465','4319','Renumeraciones pendientes de pago',NULL,NULL,1),(4322,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','47','4004','Administraciones Públicas',NULL,NULL,1),(4323,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','470','4322','Hacienda Pública deudora por diversos conceptos',NULL,NULL,1),(4324,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4700','4323','Hacienda Pública deudora por IVA',NULL,NULL,1),(4325,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4708','4323','Hacienda Pública deudora por subvenciones concedidas',NULL,NULL,1),(4326,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4709','4323','Hacienda Pública deudora por devolución de impuestos',NULL,NULL,1),(4327,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','471','4322','Organismos de la Seguridad Social deudores',NULL,NULL,1),(4328,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','472','4322','Hacienda Pública IVA soportado',NULL,NULL,1),(4329,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','473','4322','Hacienda Pública retenciones y pagos a cuenta',NULL,NULL,1),(4330,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','474','4322','Activos por impuesto diferido',NULL,NULL,1),(4331,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4740','4330','Activos por diferencias temporarias deducibles',NULL,NULL,1),(4332,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4742','4330','Derechos por deducciones y bonificaciones pendientes de aplicar',NULL,NULL,1),(4333,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4745','4330','Crédito por pérdidasa compensar del ejercicio',NULL,NULL,1),(4334,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','475','4322','Hacienda Pública acreedora por conceptos fiscales',NULL,NULL,1),(4335,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4750','4334','Hacienda Pública acreedora por IVA',NULL,NULL,1),(4336,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4751','4334','Hacienda Pública acreedora por retenciones practicadas',NULL,NULL,1),(4337,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4752','4334','Hacienda Pública acreedora por impuesto sobre sociedades',NULL,NULL,1),(4338,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4758','4334','Hacienda Pública acreedora por subvenciones a integrar',NULL,NULL,1),(4339,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','476','4322','Organismos de la Seguridad Social acreedores',NULL,NULL,1),(4340,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','477','4322','Hacienda Pública IVA repercutido',NULL,NULL,1),(4341,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','479','4322','Pasivos por diferencias temporarias imponibles',NULL,NULL,1),(4342,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','48','4004','Ajustes por periodificación',NULL,NULL,1),(4343,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','480','4342','Gastos anticipados',NULL,NULL,1),(4344,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','485','4342','Ingresos anticipados',NULL,NULL,1),(4345,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','49','4004','Deterioro de valor de créditos comerciales y provisiones a corto plazo',NULL,NULL,1),(4346,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','490','4345','Deterioro de valor de créditos por operaciones comerciales',NULL,NULL,1),(4347,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','493','4345','Deterioro de valor de créditos por operaciones comerciales con partes vinculadas',NULL,NULL,1),(4348,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4933','4347','Deterioro de valor de créditos por operaciones comerciales con empresas del grupo',NULL,NULL,1),(4349,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4934','4347','Deterioro de valor de créditos por operaciones comerciales con empresas asociadas',NULL,NULL,1),(4350,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4935','4347','Deterioro de valor de créditos por operaciones comerciales con otras partes vinculadas',NULL,NULL,1),(4351,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','499','4345','Provisiones por operaciones comerciales',NULL,NULL,1),(4352,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4994','4351','Provisión para contratos anerosos',NULL,NULL,1),(4353,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4999','4351','Provisión para otras operaciones comerciales',NULL,NULL,1),(4354,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','50','4005','Emprésitos deudas con características especiales y otras emisiones análogas a corto plazo',NULL,NULL,1),(4355,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','500','4354','Obligaciones y bonos a corto plazo',NULL,NULL,1),(4356,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','502','4354','Acciones o participaciones a corto plazo consideradas como pasivos financieros',NULL,NULL,1),(4357,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','505','4354','Deudas representadas en otros valores negociables a corto plazo',NULL,NULL,1),(4358,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','506','4354','Intereses a corto plazo de emprésitos y otras emisiones analógicas',NULL,NULL,1),(4359,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','507','4354','Dividendos de acciones o participaciones consideradas como pasivos financieros',NULL,NULL,1),(4360,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','509','4354','Valores negociables amortizados',NULL,NULL,1),(4361,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5090','4360','Obligaciones y bonos amortizados',NULL,NULL,1),(4362,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5095','4360','Otros valores negociables amortizados',NULL,NULL,1),(4363,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','51','4005','Deudas a corto plazo con partes vinculadas',NULL,NULL,1),(4364,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','510','4363','Deudas a corto plazo con entidades de crédito vinculadas',NULL,NULL,1),(4365,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5103','4364','Deudas a corto plazo con entidades de crédito empresas del grupo',NULL,NULL,1),(4366,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5104','4364','Deudas a corto plazo con entidades de crédito empresas asociadas',NULL,NULL,1),(4367,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5105','4364','Deudas a corto plazo con otras entidades de crédito vinculadas',NULL,NULL,1),(4368,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','511','4363','Proveedores de inmovilizado a corto plazo partes vinculadas',NULL,NULL,1),(4369,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5113','4368','Proveedores de inmovilizado a corto plazo empresas del grupo',NULL,NULL,1),(4370,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5114','4368','Proveedores de inmovilizado a corto plazo empresas asociadas',NULL,NULL,1),(4371,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5115','4368','Proveedores de inmovilizado a corto plazo otras partes vinculadas',NULL,NULL,1),(4372,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','512','4363','Acreedores por arrendamiento financiero a corto plazo partes vinculadas',NULL,NULL,1),(4373,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5123','4372','Acreedores por arrendamiento financiero a corto plazo empresas del grupo',NULL,NULL,1),(4374,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5124','4372','Acreedores por arrendamiento financiero a corto plazo empresas asociadas',NULL,NULL,1),(4375,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5125','4372','Acreedores por arrendamiento financiero a corto plazo otras partes vinculadas',NULL,NULL,1),(4376,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','513','4363','Otras deudas a corto plazo con partes vinculadas',NULL,NULL,1),(4377,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5133','4376','Otras deudas a corto plazo con empresas del grupo',NULL,NULL,1),(4378,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5134','4376','Otras deudas a corto plazo con empresas asociadas',NULL,NULL,1),(4379,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5135','4376','Otras deudas a corto plazo con partes vinculadas',NULL,NULL,1),(4380,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','514','4363','Intereses a corto plazo con partes vinculadas',NULL,NULL,1),(4381,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5143','4380','Intereses a corto plazo empresas del grupo',NULL,NULL,1),(4382,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5144','4380','Intereses a corto plazo empresas asociadas',NULL,NULL,1),(4383,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5145','4380','Intereses deudas a corto plazo partes vinculadas',NULL,NULL,1),(4384,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','52','4005','Deudas a corto plazo por préstamos recibidos y otros conceptos',NULL,NULL,1),(4385,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','520','4384','Deudas a corto plazo con entidades de crédito',NULL,NULL,1),(4386,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5200','4385','Préstamos a corto plazo de entidades de crédito',NULL,NULL,1),(4387,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5201','4385','Deudas a corto plazo por crédito dispuesto',NULL,NULL,1),(4388,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5208','4385','Deudas por efectos descontados',NULL,NULL,1),(4389,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5209','4385','Deudas por operaciones de factoring',NULL,NULL,1),(4390,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','521','4384','Deudas a corto plazo',NULL,NULL,1),(4391,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','522','4384','Deudas a corto plazo transformables en subvenciones donaciones y legados',NULL,NULL,1),(4392,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','523','4384','Proveedores de inmovilizado a corto plazo',NULL,NULL,1),(4393,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','526','4384','Dividendo activo a pagar',NULL,NULL,1),(4394,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','527','4384','Intereses a corto plazo de deudas con entidades de crédito',NULL,NULL,1),(4395,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','528','4384','Intereses a corto plazo de deudas',NULL,NULL,1),(4396,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','529','4384','Provisiones a corto plazo',NULL,NULL,1),(4397,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5291','4396','Provisión a corto plazo para impuestos',NULL,NULL,1),(4398,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5292','4396','Provisión a corto plazo para otras responsabilidades',NULL,NULL,1),(4399,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5293','4396','Provisión a corto plazo por desmantelamiento retiro o rehabilitación del inmovilizado',NULL,NULL,1),(4400,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5295','4396','Provisión a corto plazo para actuaciones medioambientales',NULL,NULL,1),(4401,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','53','4005','Inversiones financieras a corto plazo en partes vinculadas',NULL,NULL,1),(4402,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','530','4401','Participaciones a corto plazo en partes vinculadas',NULL,NULL,1),(4403,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5303','4402','Participaciones a corto plazo en empresas del grupo',NULL,NULL,1),(4404,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5304','4402','Participaciones a corto plazo en empresas asociadas',NULL,NULL,1),(4405,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5305','4402','Participaciones a corto plazo en otras partes vinculadas',NULL,NULL,1),(4406,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','531','4401','Valores representativos de deuda a corto plazo de partes vinculadas',NULL,NULL,1),(4407,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5313','4406','Valores representativos de deuda a corto plazo de empresas del grupo',NULL,NULL,1),(4408,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5314','4406','Valores representativos de deuda a corto plazo de empresas asociadas',NULL,NULL,1),(4409,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5315','4406','Valores representativos de deuda a corto plazo de otras partes vinculadas',NULL,NULL,1),(4410,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','532','4401','Créditos a corto plazo a partes vinculadas',NULL,NULL,1),(4411,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5323','4410','Créditos a corto plazo a empresas del grupo',NULL,NULL,1),(4412,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5324','4410','Créditos a corto plazo a empresas asociadas',NULL,NULL,1),(4413,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5325','4410','Créditos a corto plazo a otras partes vinculadas',NULL,NULL,1),(4414,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','533','4401','Intereses a corto plazo de valores representativos de deuda de partes vinculadas',NULL,NULL,1),(4415,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5333','4414','Intereses a corto plazo de valores representativos de deuda en empresas del grupo',NULL,NULL,1),(4416,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5334','4414','Intereses a corto plazo de valores representativos de deuda en empresas asociadas',NULL,NULL,1),(4417,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5335','4414','Intereses a corto plazo de valores representativos de deuda en otras partes vinculadas',NULL,NULL,1),(4418,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','534','4401','Intereses a corto plazo de créditos a partes vinculadas',NULL,NULL,1),(4419,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5343','4418','Intereses a corto plazo de créditos a empresas del grupo',NULL,NULL,1),(4420,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5344','4418','Intereses a corto plazo de créditos a empresas asociadas',NULL,NULL,1),(4421,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5345','4418','Intereses a corto plazo de créditos a otras partes vinculadas',NULL,NULL,1),(4422,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','535','4401','Dividendo a cobrar de inversiones financieras en partes vinculadas',NULL,NULL,1),(4423,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5353','4422','Dividendo a cobrar de empresas del grupo',NULL,NULL,1),(4424,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5354','4422','Dividendo a cobrar de empresas asociadas',NULL,NULL,1),(4425,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5355','4422','Dividendo a cobrar de otras partes vinculadas',NULL,NULL,1),(4426,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','539','4401','Desembolsos pendientes sobre participaciones a corto plazo en partes vinculadas',NULL,NULL,1),(4427,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5393','4426','Desembolsos pendientes sobre participaciones a corto plazo en empresas del grupo',NULL,NULL,1),(4428,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5394','4426','Desembolsos pendientes sobre participaciones a corto plazo en empresas asociadas',NULL,NULL,1),(4429,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5395','4426','Desembolsos pendientes sobre participaciones a corto plazo en otras partes vinculadas',NULL,NULL,1),(4430,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','54','4005','Otras inversiones financieras a corto plazo',NULL,NULL,1),(4431,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','540','4430','Inversiones financieras a corto plazo en instrumentos de patrimonio',NULL,NULL,1),(4432,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','541','4430','Valores representativos de deuda a corto plazo',NULL,NULL,1),(4433,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','542','4430','Créditos a corto plazo',NULL,NULL,1),(4434,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','543','4430','Créditos a corto plazo por enejenación de inmovilizado',NULL,NULL,1),(4435,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','544','4430','Créditos a corto plazo al personal',NULL,NULL,1),(4436,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','545','4430','Dividendo a cobrar',NULL,NULL,1),(4437,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','546','4430','Intereses a corto plazo de valores reprsentativos de deuda',NULL,NULL,1),(4438,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','547','4430','Intereses a corto plazo de créditos',NULL,NULL,1),(4439,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','548','4430','Imposiciones a corto plazo',NULL,NULL,1),(4440,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','549','4430','Desembolsos pendientes sobre participaciones en el patrimonio neto a corto plazo',NULL,NULL,1),(4441,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','55','4005','Otras cuentas no bancarias',NULL,NULL,1),(4442,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','550','4441','Titular de la explotación',NULL,NULL,1),(4443,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','551','4441','Cuenta corriente con socios y administradores',NULL,NULL,1),(4444,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','552','4441','Cuenta corriente otras personas y entidades vinculadas',NULL,NULL,1),(4445,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5523','4444','Cuenta corriente con empresas del grupo',NULL,NULL,1),(4446,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5524','4444','Cuenta corriente con empresas asociadas',NULL,NULL,1),(4447,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5525','4444','Cuenta corriente con otras partes vinculadas',NULL,NULL,1),(4448,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','554','4441','Cuenta corriente con uniones temporales de empresas y comunidades de bienes',NULL,NULL,1),(4449,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','555','4441','Partidas pendientes de aplicación',NULL,NULL,1),(4450,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','556','4441','Desembolsos exigidos sobre participaciones en el patrimonio neto',NULL,NULL,1),(4451,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5563','4450','Desembolsos exigidos sobre participaciones empresas del grupo',NULL,NULL,1),(4452,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5564','4450','Desembolsos exigidos sobre participaciones empresas asociadas',NULL,NULL,1),(4453,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5565','4450','Desembolsos exigidos sobre participaciones otras partes vinculadas',NULL,NULL,1),(4454,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5566','4450','Desembolsos exigidos sobre participaciones otras empresas',NULL,NULL,1),(4455,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','557','4441','Dividendo activo a cuenta',NULL,NULL,1),(4456,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','558','4441','Socios por desembolsos exigidos',NULL,NULL,1),(4457,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5580','4456','Socios por desembolsos exigidos sobre acciones o participaciones ordinarias',NULL,NULL,1),(4458,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5585','4456','Socios por desembolsos exigidos sobre acciones o participaciones consideradas como pasivos financieros',NULL,NULL,1),(4459,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','559','4441','Derivados financieros a corto plazo',NULL,NULL,1),(4460,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5590','4459','Activos por derivados financieros a corto plazo',NULL,NULL,1),(4461,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5595','4459','Pasivos por derivados financieros a corto plazo',NULL,NULL,1),(4462,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','56','4005','Finanzas y depósitos recibidos y constituidos a corto plazo y ajustes por periodificación',NULL,NULL,1),(4463,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','560','4462','Finanzas recibidas a corto plazo',NULL,NULL,1),(4464,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','561','4462','Depósitos recibidos a corto plazo',NULL,NULL,1),(4465,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','565','4462','Finanzas constituidas a corto plazo',NULL,NULL,1),(4466,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','566','4462','Depósitos constituidos a corto plazo',NULL,NULL,1),(4467,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','567','4462','Intereses pagados por anticipado',NULL,NULL,1),(4468,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','568','4462','Intereses cobrados a corto plazo',NULL,NULL,1),(4469,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','57','4005','Tesorería',NULL,NULL,1),(4470,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','CAJA','570','4469','Caja euros',NULL,NULL,1),(4471,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','571','4469','Caja moneda extranjera',NULL,NULL,1),(4472,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','BANCOS','572','4469','Bancos e instituciones de crédito cc vista euros',NULL,NULL,1),(4473,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','573','4469','Bancos e instituciones de crédito cc vista moneda extranjera',NULL,NULL,1),(4474,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','574','4469','Bancos e instituciones de crédito cuentas de ahorro euros',NULL,NULL,1),(4475,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','575','4469','Bancos e instituciones de crédito cuentas de ahorro moneda extranjera',NULL,NULL,1),(4476,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','576','4469','Inversiones a corto plazo de gran liquidez',NULL,NULL,1),(4477,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','59','4005','Deterioro del valor de las inversiones financieras a corto plazo',NULL,NULL,1),(4478,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','593','4477','Deterioro del valor de participaciones a corto plazo en partes vinculadas',NULL,NULL,1),(4479,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5933','4478','Deterioro del valor de participaciones a corto plazo en empresas del grupo',NULL,NULL,1),(4480,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5934','4478','Deterioro del valor de participaciones a corto plazo en empresas asociadas',NULL,NULL,1),(4481,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5935','4478','Deterioro del valor de participaciones a corto plazo en otras partes vinculadas',NULL,NULL,1),(4482,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','594','4477','Deterioro del valor de valores representativos de deuda a corto plazo en partes vinculadas',NULL,NULL,1),(4483,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5943','4482','Deterioro del valor de valores representativos de deuda a corto plazo en empresas del grupo',NULL,NULL,1),(4484,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5944','4482','Deterioro del valor de valores representativos de deuda a corto plazo en empresas asociadas',NULL,NULL,1),(4485,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5945','4482','Deterioro del valor de valores representativos de deuda a corto plazo en otras partes vinculadas',NULL,NULL,1),(4486,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','595','4477','Deterioro del valor de créditos a corto plazo en partes vinculadas',NULL,NULL,1),(4487,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5953','4486','Deterioro del valor de créditos a corto plazo en empresas del grupo',NULL,NULL,1),(4488,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5954','4486','Deterioro del valor de créditos a corto plazo en empresas asociadas',NULL,NULL,1),(4489,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5955','4486','Deterioro del valor de créditos a corto plazo en otras partes vinculadas',NULL,NULL,1),(4490,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','596','4477','Deterioro del valor de participaciones a corto plazo',NULL,NULL,1),(4491,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','597','4477','Deterioro del valor de valores representativos de deuda a corto plazo',NULL,NULL,1),(4492,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','598','4477','Deterioro de valor de créditos a corto plazo',NULL,NULL,1),(4493,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','60','4006','Compras',NULL,NULL,1),(4494,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','COMPRAS','600','4493','Compras de mercaderías',NULL,NULL,1),(4495,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','COMPRAS','601','4493','Compras de materias primas',NULL,NULL,1),(4496,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','602','4493','Compras de otros aprovisionamientos',NULL,NULL,1),(4497,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','606','4493','Descuentos sobre compras por pronto pago',NULL,NULL,1),(4498,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6060','4497','Descuentos sobre compras por pronto pago de mercaderías',NULL,NULL,1),(4499,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6061','4497','Descuentos sobre compras por pronto pago de materias primas',NULL,NULL,1),(4500,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6062','4497','Descuentos sobre compras por pronto pago de otros aprovisionamientos',NULL,NULL,1),(4501,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','COMPRAS','607','4493','Trabajos realizados por otras empresas',NULL,NULL,1),(4502,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','608','4493','Devoluciones de compras y operaciones similares',NULL,NULL,1),(4503,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6080','4502','Devoluciones de compras de mercaderías',NULL,NULL,1),(4504,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6081','4502','Devoluciones de compras de materias primas',NULL,NULL,1),(4505,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6082','4502','Devoluciones de compras de otros aprovisionamientos',NULL,NULL,1),(4506,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','609','4493','Rappels por compras',NULL,NULL,1),(4507,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6090','4506','Rappels por compras de mercaderías',NULL,NULL,1),(4508,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6091','4506','Rappels por compras de materias primas',NULL,NULL,1),(4509,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6092','4506','Rappels por compras de otros aprovisionamientos',NULL,NULL,1),(4510,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','61','4006','Variación de existencias',NULL,NULL,1),(4511,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','610','4510','Variación de existencias de mercaderías',NULL,NULL,1),(4512,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','611','4510','Variación de existencias de materias primas',NULL,NULL,1),(4513,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','612','4510','Variación de existencias de otros aprovisionamientos',NULL,NULL,1),(4514,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','62','4006','Servicios exteriores',NULL,NULL,1),(4515,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','620','4514','Gastos en investigación y desarrollo del ejercicio',NULL,NULL,1),(4516,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','621','4514','Arrendamientos y cánones',NULL,NULL,1),(4517,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','622','4514','Reparaciones y conservación',NULL,NULL,1),(4518,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','623','4514','Servicios profesionales independientes',NULL,NULL,1),(4519,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','624','4514','Transportes',NULL,NULL,1),(4520,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','625','4514','Primas de seguros',NULL,NULL,1),(4521,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','626','4514','Servicios bancarios y similares',NULL,NULL,1),(4522,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','627','4514','Publicidad, propaganda y relaciones públicas',NULL,NULL,1),(4523,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','628','4514','Suministros',NULL,NULL,1),(4524,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','629','4514','Otros servicios',NULL,NULL,1),(4525,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','63','4006','Tributos',NULL,NULL,1),(4526,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','630','4525','Impuesto sobre benecifios',NULL,NULL,1),(4527,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6300','4526','Impuesto corriente',NULL,NULL,1),(4528,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6301','4526','Impuesto diferido',NULL,NULL,1),(4529,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','631','4525','Otros tributos',NULL,NULL,1),(4530,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','633','4525','Ajustes negativos en la imposición sobre beneficios',NULL,NULL,1),(4531,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','634','4525','Ajustes negativos en la imposición indirecta',NULL,NULL,1),(4532,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6341','4531','Ajustes negativos en IVA de activo corriente',NULL,NULL,1),(4533,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6342','4531','Ajustes negativos en IVA de inversiones',NULL,NULL,1),(4534,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','636','4525','Devolución de impuestos',NULL,NULL,1),(4535,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','638','4525','Ajustes positivos en la imposición sobre beneficios',NULL,NULL,1),(4536,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','639','4525','Ajustes positivos en la imposición directa',NULL,NULL,1),(4537,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6391','4536','Ajustes positivos en IVA de activo corriente',NULL,NULL,1),(4538,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6392','4536','Ajustes positivos en IVA de inversiones',NULL,NULL,1),(4539,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','64','4006','Gastos de personal',NULL,NULL,1),(4540,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','640','4539','Sueldos y salarios',NULL,NULL,1),(4541,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','641','4539','Indemnizaciones',NULL,NULL,1),(4542,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','642','4539','Seguridad social a cargo de la empresa',NULL,NULL,1),(4543,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','649','4539','Otros gastos sociales',NULL,NULL,1),(4544,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','65','4006','Otros gastos de gestión',NULL,NULL,1),(4545,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','650','4544','Pérdidas de créditos comerciales incobrables',NULL,NULL,1),(4546,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','651','4544','Resultados de operaciones en común',NULL,NULL,1),(4547,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6510','4546','Beneficio transferido gestor',NULL,NULL,1),(4548,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6511','4546','Pérdida soportada participe o asociado no gestor',NULL,NULL,1),(4549,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','659','4544','Otras pérdidas en gestión corriente',NULL,NULL,1),(4550,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','66','4006','Gastos financieros',NULL,NULL,1),(4551,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','660','4550','Gastos financieros por actualización de provisiones',NULL,NULL,1),(4552,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','661','4550','Intereses de obligaciones y bonos',NULL,NULL,1),(4553,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6610','4452','Intereses de obligaciones y bonos a largo plazo empresas del grupo',NULL,NULL,1),(4554,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6611','4452','Intereses de obligaciones y bonos a largo plazo empresas asociadas',NULL,NULL,1),(4555,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6612','4452','Intereses de obligaciones y bonos a largo plazo otras partes vinculadas',NULL,NULL,1),(4556,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6613','4452','Intereses de obligaciones y bonos a largo plazo otras empresas',NULL,NULL,1),(4557,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6615','4452','Intereses de obligaciones y bonos a corto plazo empresas del grupo',NULL,NULL,1),(4558,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6616','4452','Intereses de obligaciones y bonos a corto plazo empresas asociadas',NULL,NULL,1),(4559,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6617','4452','Intereses de obligaciones y bonos a corto plazo otras partes vinculadas',NULL,NULL,1),(4560,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6618','4452','Intereses de obligaciones y bonos a corto plazo otras empresas',NULL,NULL,1),(4561,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','662','4550','Intereses de deudas',NULL,NULL,1),(4562,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6620','4561','Intereses de deudas empresas del grupo',NULL,NULL,1),(4563,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6621','4561','Intereses de deudas empresas asociadas',NULL,NULL,1),(4564,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6622','4561','Intereses de deudas otras partes vinculadas',NULL,NULL,1),(4565,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6623','4561','Intereses de deudas con entidades de crédito',NULL,NULL,1),(4566,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6624','4561','Intereses de deudas otras empresas',NULL,NULL,1),(4567,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','663','4550','Pérdidas por valorización de activos y pasivos financieros por su valor razonable',NULL,NULL,1),(4568,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','664','4550','Gastos por dividendos de acciones o participaciones consideradas como pasivos financieros',NULL,NULL,1),(4569,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6640','4568','Dividendos de pasivos empresas del grupo',NULL,NULL,1),(4570,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6641','4568','Dividendos de pasivos empresas asociadas',NULL,NULL,1),(4571,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6642','4568','Dividendos de pasivos otras partes vinculadas',NULL,NULL,1),(4572,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6643','4568','Dividendos de pasivos otras empresas',NULL,NULL,1),(4573,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','665','4550','Intereses por descuento de efectos y operaciones de factoring',NULL,NULL,1),(4574,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6650','4573','Intereses por descuento de efectos en entidades de crédito del grupo',NULL,NULL,1),(4575,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6651','4573','Intereses por descuento de efectos en entidades de crédito asociadas',NULL,NULL,1),(4576,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6652','4573','Intereses por descuento de efectos en entidades de crédito vinculadas',NULL,NULL,1),(4577,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6653','4573','Intereses por descuento de efectos en otras entidades de crédito',NULL,NULL,1),(4578,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6654','4573','Intereses por operaciones de factoring con entidades de crédito del grupo',NULL,NULL,1),(4579,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6655','4573','Intereses por operaciones de factoring con entidades de crédito asociadas',NULL,NULL,1),(4580,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6656','4573','Intereses por operaciones de factoring con otras entidades de crédito vinculadas',NULL,NULL,1),(4581,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6657','4573','Intereses por operaciones de factoring con otras entidades de crédito',NULL,NULL,1),(4582,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','666','4550','Pérdidas en participaciones y valores representativos de deuda',NULL,NULL,1),(4583,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6660','4582','Pérdidas en valores representativos de deuda a largo plazo empresas del grupo',NULL,NULL,1),(4584,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6661','4582','Pérdidas en valores representativos de deuda a largo plazo empresas asociadas',NULL,NULL,1),(4585,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6662','4582','Pérdidas en valores representativos de deuda a largo plazo otras partes vinculadas',NULL,NULL,1),(4586,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6663','4582','Pérdidas en participaciones y valores representativos de deuda a largo plazo otras empresas',NULL,NULL,1),(4587,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6665','4582','Pérdidas en participaciones y valores representativos de deuda a corto plazo empresas del grupo',NULL,NULL,1),(4588,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6666','4582','Pérdidas en participaciones y valores representativos de deuda a corto plazo empresas asociadas',NULL,NULL,1),(4589,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6667','4582','Pérdidas en valores representativos de deuda a corto plazo otras partes vinculadas',NULL,NULL,1),(4590,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6668','4582','Pérdidas en valores representativos de deuda a corto plazo otras empresas',NULL,NULL,1),(4591,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','667','4550','Pérdidas de créditos no comerciales',NULL,NULL,1),(4592,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6670','4591','Pérdidas de créditos a largo plazo empresas del grupo',NULL,NULL,1),(4593,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6671','4591','Pérdidas de créditos a largo plazo empresas asociadas',NULL,NULL,1),(4594,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6672','4591','Pérdidas de créditos a largo plazo otras partes vinculadas',NULL,NULL,1),(4595,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6673','4591','Pérdidas de créditos a largo plazo otras empresas',NULL,NULL,1),(4596,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6675','4591','Pérdidas de créditos a corto plazo empresas del grupo',NULL,NULL,1),(4597,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6676','4591','Pérdidas de créditos a corto plazo empresas asociadas',NULL,NULL,1),(4598,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6677','4591','Pérdidas de créditos a corto plazo otras partes vinculadas',NULL,NULL,1),(4599,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6678','4591','Pérdidas de créditos a corto plazo otras empresas',NULL,NULL,1),(4600,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','668','4550','Diferencias negativas de cambio',NULL,NULL,1),(4601,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','669','4550','Otros gastos financieros',NULL,NULL,1),(4602,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','67','4006','Pérdidas procedentes de activos no corrientes y gastos excepcionales',NULL,NULL,1),(4603,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','670','4602','Pérdidas procedentes del inmovilizado intangible',NULL,NULL,1),(4604,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','671','4602','Pérdidas procedentes del inmovilizado material',NULL,NULL,1),(4605,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','672','4602','Pérdidas procedentes de las inversiones inmobiliarias',NULL,NULL,1),(4607,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','673','4602','Pérdidas procedentes de participaciones a largo plazo en partes vinculadas',NULL,NULL,1),(4608,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6733','4607','Pérdidas procedentes de participaciones a largo plazo empresas del grupo',NULL,NULL,1),(4609,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6734','4607','Pérdidas procedentes de participaciones a largo plazo empresas asociadas',NULL,NULL,1),(4610,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6735','4607','Pérdidas procedentes de participaciones a largo plazo otras partes vinculadas',NULL,NULL,1),(4611,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','675','4602','Pérdidas por operaciones con obligaciones propias',NULL,NULL,1),(4612,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','678','4602','Gastos excepcionales',NULL,NULL,1),(4613,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','68','4006','Dotaciones para amortizaciones',NULL,NULL,1),(4614,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','680','4613','Amortización del inmovilizado intangible',NULL,NULL,1),(4615,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','681','4613','Amortización del inmovilizado material',NULL,NULL,1),(4616,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','682','4613','Amortización de las inversiones inmobiliarias',NULL,NULL,1),(4617,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','69','4006','Pérdidas por deterioro y otras dotaciones',NULL,NULL,1),(4618,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','690','4617','Pérdidas por deterioro del inmovilizado intangible',NULL,NULL,1),(4619,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','691','4617','Pérdidas por deterioro del inmovilizado material',NULL,NULL,1),(4620,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','692','4617','Pérdidas por deterioro de las inversiones inmobiliarias',NULL,NULL,1),(4621,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','693','4617','Pérdidas por deterioro de existencias',NULL,NULL,1),(4622,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6930','4621','Pérdidas por deterioro de productos terminados y en curso de fabricación',NULL,NULL,1),(4623,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6931','4621','Pérdidas por deterioro de mercaderías',NULL,NULL,1),(4624,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6932','4621','Pérdidas por deterioro de materias primas',NULL,NULL,1),(4625,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6933','4621','Pérdidas por deterioro de otros aprovisionamientos',NULL,NULL,1),(4626,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','694','4617','Pérdidas por deterioro de créditos por operaciones comerciales',NULL,NULL,1),(4627,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','695','4617','Dotación a la provisión por operaciones comerciales',NULL,NULL,1),(4628,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6954','4627','Dotación a la provisión por contratos onerosos',NULL,NULL,1),(4629,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6959','4628','Dotación a la provisión para otras operaciones comerciales',NULL,NULL,1),(4630,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','696','4617','Pérdidas por deterioro de participaciones y valores representativos de deuda a largo plazo',NULL,NULL,1),(4631,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6960','4630','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas del grupo',NULL,NULL,1),(4632,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6961','4630','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas asociadas',NULL,NULL,1),(4633,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6962','4630','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras partes vinculadas',NULL,NULL,1),(4634,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6963','4630','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras empresas',NULL,NULL,1),(4635,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6965','4630','Pérdidas por deterioro en valores representativos de deuda a largo plazo empresas del grupo',NULL,NULL,1),(4636,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6966','4630','Pérdidas por deterioro en valores representativos de deuda a largo plazo empresas asociadas',NULL,NULL,1),(4637,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6967','4630','Pérdidas por deterioro en valores representativos de deuda a largo plazo otras partes vinculadas',NULL,NULL,1),(4638,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6968','4630','Pérdidas por deterioro en valores representativos de deuda a largo plazo otras empresas',NULL,NULL,1),(4639,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','697','4617','Pérdidas por deterioro de créditos a largo plazo',NULL,NULL,1),(4640,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6970','4639','Pérdidas por deterioro de créditos a largo plazo empresas del grupo',NULL,NULL,1),(4641,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6971','4639','Pérdidas por deterioro de créditos a largo plazo empresas asociadas',NULL,NULL,1),(4642,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6972','4639','Pérdidas por deterioro de créditos a largo plazo otras partes vinculadas',NULL,NULL,1),(4643,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6973','4639','Pérdidas por deterioro de créditos a largo plazo otras empresas',NULL,NULL,1),(4644,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','698','4617','Pérdidas por deterioro de participaciones y valores representativos de deuda a corto plazo',NULL,NULL,1),(4645,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6980','4644','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas del grupo',NULL,NULL,1),(4646,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6981','4644','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas asociadas',NULL,NULL,1),(4647,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6985','4644','Pérdidas por deterioro en valores representativos de deuda a corto plazo empresas del grupo',NULL,NULL,1),(4648,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6986','4644','Pérdidas por deterioro en valores representativos de deuda a corto plazo empresas asociadas',NULL,NULL,1),(4649,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6988','4644','Pérdidas por deterioro en valores representativos de deuda a corto plazo de otras empresas',NULL,NULL,1),(4650,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','699','4617','Pérdidas por deterioro de crédito a corto plazo',NULL,NULL,1),(4651,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6990','4650','Pérdidas por deterioro de crédito a corto plazo empresas del grupo',NULL,NULL,1),(4652,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6991','4650','Pérdidas por deterioro de crédito a corto plazo empresas asociadas',NULL,NULL,1),(4653,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6992','4650','Pérdidas por deterioro de crédito a corto plazo otras partes vinculadas',NULL,NULL,1),(4654,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6993','4650','Pérdidas por deterioro de crédito a corto plazo otras empresas',NULL,NULL,1),(4655,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','70','4007','Ventas',NULL,NULL,1),(4656,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','VENTAS','700','4655','Ventas de mercaderías',NULL,NULL,1),(4657,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','VENTAS','701','4655','Ventas de productos terminados',NULL,NULL,1),(4658,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','702','4655','Ventas de productos semiterminados',NULL,NULL,1),(4659,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','703','4655','Ventas de subproductos y residuos',NULL,NULL,1),(4660,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','704','4655','Ventas de envases y embalajes',NULL,NULL,1),(4661,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','VENTAS','705','4655','Prestaciones de servicios',NULL,NULL,1),(4662,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','706','4655','Descuentos sobre ventas por pronto pago',NULL,NULL,1),(4663,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7060','4662','Descuentos sobre ventas por pronto pago de mercaderías',NULL,NULL,1),(4664,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7061','4662','Descuentos sobre ventas por pronto pago de productos terminados',NULL,NULL,1),(4665,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7062','4662','Descuentos sobre ventas por pronto pago de productos semiterminados',NULL,NULL,1),(4666,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7063','4662','Descuentos sobre ventas por pronto pago de subproductos y residuos',NULL,NULL,1),(4667,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','708','4655','Devoluciones de ventas y operacioes similares',NULL,NULL,1),(4668,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7080','4667','Devoluciones de ventas de mercaderías',NULL,NULL,1),(4669,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7081','4667','Devoluciones de ventas de productos terminados',NULL,NULL,1),(4670,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7082','4667','Devoluciones de ventas de productos semiterminados',NULL,NULL,1),(4671,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7083','4667','Devoluciones de ventas de subproductos y residuos',NULL,NULL,1),(4672,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7084','4667','Devoluciones de ventas de envases y embalajes',NULL,NULL,1),(4673,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','71','4007','Variación de existencias',NULL,NULL,1),(4674,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','710','4673','Variación de existencias de productos en curso',NULL,NULL,1),(4675,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','711','4673','Variación de existencias de productos semiterminados',NULL,NULL,1),(4676,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','712','4673','Variación de existencias de productos terminados',NULL,NULL,1),(4677,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','713','4673','Variación de existencias de subproductos, residuos y materiales recuperados',NULL,NULL,1),(4678,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','73','4007','Trabajos realizados para la empresa',NULL,NULL,1),(4679,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','730','4678','Trabajos realizados para el inmovilizado intangible',NULL,NULL,1),(4680,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','731','4678','Trabajos realizados para el inmovilizado tangible',NULL,NULL,1),(4681,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','732','4678','Trabajos realizados en inversiones inmobiliarias',NULL,NULL,1),(4682,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','733','4678','Trabajos realizados para el inmovilizado material en curso',NULL,NULL,1),(4683,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','74','4007','Subvenciones, donaciones y legados',NULL,NULL,1),(4684,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','740','4683','Subvenciones, donaciones y legados a la explotación',NULL,NULL,1),(4685,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','746','4683','Subvenciones, donaciones y legados de capital transferidos al resultado del ejercicio',NULL,NULL,1),(4686,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','747','4683','Otras subvenciones, donaciones y legados transferidos al resultado del ejercicio',NULL,NULL,1),(4687,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','75','4007','Otros ingresos de gestión',NULL,NULL,1),(4688,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','751','4687','Resultados de operaciones en común',NULL,NULL,1),(4689,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7510','4688','Pérdida transferida gestor',NULL,NULL,1),(4690,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7511','4688','Beneficio atribuido participe o asociado no gestor',NULL,NULL,1),(4691,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','752','4687','Ingreso por arrendamiento',NULL,NULL,1),(4692,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','753','4687','Ingresos de propiedad industrial cedida en explotación',NULL,NULL,1),(4693,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','754','4687','Ingresos por comisiones',NULL,NULL,1),(4694,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','755','4687','Ingresos por servicios al personal',NULL,NULL,1),(4695,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','759','4687','Ingresos por servicios diversos',NULL,NULL,1),(4696,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76','4007','Ingresos financieros',NULL,NULL,1),(4697,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','760','4696','Ingresos de participaciones en instrumentos de patrimonio',NULL,NULL,1),(4698,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7600','4697','Ingresos de participaciones en instrumentos de patrimonio empresas del grupo',NULL,NULL,1),(4699,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7601','4697','Ingresos de participaciones en instrumentos de patrimonio empresas asociadas',NULL,NULL,1),(4700,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7602','4697','Ingresos de participaciones en instrumentos de patrimonio otras partes asociadas',NULL,NULL,1),(4701,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7603','4697','Ingresos de participaciones en instrumentos de patrimonio otras empresas',NULL,NULL,1),(4702,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','761','4696','Ingresos de valores representativos de deuda',NULL,NULL,1),(4703,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7610','4702','Ingresos de valores representativos de deuda empresas del grupo',NULL,NULL,1),(4704,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7611','4702','Ingresos de valores representativos de deuda empresas asociadas',NULL,NULL,1),(4705,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7612','4702','Ingresos de valores representativos de deuda otras partes asociadas',NULL,NULL,1),(4706,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7613','4702','Ingresos de valores representativos de deuda otras empresas',NULL,NULL,1),(4707,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','762','4696','Ingresos de créditos',NULL,NULL,1),(4708,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7620','4707','Ingresos de créditos a largo plazo',NULL,NULL,1),(4709,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76200','4708','Ingresos de crédito a largo plazo empresas del grupo',NULL,NULL,1),(4710,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76201','4708','Ingresos de crédito a largo plazo empresas asociadas',NULL,NULL,1),(4711,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76202','4708','Ingresos de crédito a largo plazo otras partes asociadas',NULL,NULL,1),(4712,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76203','4708','Ingresos de crédito a largo plazo otras empresas',NULL,NULL,1),(4713,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7621','4707','Ingresos de créditos a corto plazo',NULL,NULL,1),(4714,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76210','4713','Ingresos de crédito a corto plazo empresas del grupo',NULL,NULL,1),(4715,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76211','4713','Ingresos de crédito a corto plazo empresas asociadas',NULL,NULL,1),(4716,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76212','4713','Ingresos de crédito a corto plazo otras partes asociadas',NULL,NULL,1),(4717,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76213','4713','Ingresos de crédito a corto plazo otras empresas',NULL,NULL,1),(4718,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','763','4696','Beneficios por valorización de activos y pasivos financieros por su valor razonable',NULL,NULL,1),(4719,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','766','4696','Beneficios en participaciones y valores representativos de deuda',NULL,NULL,1),(4720,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7660','4719','Beneficios en participaciones y valores representativos de deuda a largo plazo empresas del grupo',NULL,NULL,1),(4721,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7661','4719','Beneficios en participaciones y valores representativos de deuda a largo plazo empresas asociadas',NULL,NULL,1),(4722,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7662','4719','Beneficios en participaciones y valores representativos de deuda a largo plazo otras partes asociadas',NULL,NULL,1),(4723,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7663','4719','Beneficios en participaciones y valores representativos de deuda a largo plazo otras empresas',NULL,NULL,1),(4724,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7665','4719','Beneficios en participaciones y valores representativos de deuda a corto plazo empresas del grupo',NULL,NULL,1),(4725,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7666','4719','Beneficios en participaciones y valores representativos de deuda a corto plazo empresas asociadas',NULL,NULL,1),(4726,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7667','4719','Beneficios en participaciones y valores representativos de deuda a corto plazo otras partes asociadas',NULL,NULL,1),(4727,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7668','4719','Beneficios en participaciones y valores representativos de deuda a corto plazo otras empresas',NULL,NULL,1),(4728,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','768','4696','Diferencias positivas de cambio',NULL,NULL,1),(4729,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','769','4696','Otros ingresos financieros',NULL,NULL,1),(4730,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','77','4007','Beneficios procedentes de activos no corrientes e ingresos excepcionales',NULL,NULL,1),(4731,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','770','4730','Beneficios procedentes del inmovilizado intangible',NULL,NULL,1),(4732,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','771','4730','Beneficios procedentes del inmovilizado material',NULL,NULL,1),(4733,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','772','4730','Beneficios procedentes de las inversiones inmobiliarias',NULL,NULL,1),(4734,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','773','4730','Beneficios procedentes de participaciones a largo plazo en partes vinculadas',NULL,NULL,1),(4735,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7733','4734','Beneficios procedentes de participaciones a largo plazo empresas del grupo',NULL,NULL,1),(4736,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7734','4734','Beneficios procedentes de participaciones a largo plazo empresas asociadas',NULL,NULL,1),(4737,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7735','4734','Beneficios procedentes de participaciones a largo plazo otras partes vinculadas',NULL,NULL,1),(4738,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','775','4730','Beneficios por operaciones con obligaciones propias',NULL,NULL,1),(4739,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','778','4730','Ingresos excepcionales',NULL,NULL,1),(4741,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','79','4007','Excesos y aplicaciones de provisiones y pérdidas por deterioro',NULL,NULL,1),(4742,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','790','4741','Revisión del deterioro del inmovilizado intangible',NULL,NULL,1),(4743,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','791','4741','Revisión del deterioro del inmovilizado material',NULL,NULL,1),(4744,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','792','4741','Revisión del deterioro de las inversiones inmobiliarias',NULL,NULL,1),(4745,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','793','4741','Revisión del deterioro de las existencias',NULL,NULL,1),(4746,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7930','4745','Revisión del deterioro de productos terminados y en curso de fabricación',NULL,NULL,1),(4747,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7931','4745','Revisión del deterioro de mercaderías',NULL,NULL,1),(4748,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7932','4745','Revisión del deterioro de materias primas',NULL,NULL,1),(4749,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7933','4745','Revisión del deterioro de otros aprovisionamientos',NULL,NULL,1),(4750,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','794','4741','Revisión del deterioro de créditos por operaciones comerciales',NULL,NULL,1),(4751,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','795','4741','Exceso de provisiones',NULL,NULL,1),(4752,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7951','4751','Exceso de provisión para impuestos',NULL,NULL,1),(4753,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7952','4751','Exceso de provisión para otras responsabilidades',NULL,NULL,1),(4755,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7954','4751','Exceso de provisión para operaciones comerciales',NULL,NULL,1),(4756,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','79544','4755','Exceso de provisión por contratos onerosos',NULL,NULL,1),(4757,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','79549','4755','Exceso de provisión para otras operaciones comerciales',NULL,NULL,1),(4758,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7955','4751','Exceso de provisión para actuaciones medioambienteales',NULL,NULL,1),(4759,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','796','4741','Revisión del deterioro de participaciones y valores representativos de deuda a largo plazo',NULL,NULL,1),(4760,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7960','4759','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas del grupo',NULL,NULL,1),(4761,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7961','4759','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas asociadas',NULL,NULL,1),(4762,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7962','4759','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras partes vinculadas',NULL,NULL,1),(4763,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7963','4759','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras empresas',NULL,NULL,1),(4764,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7965','4759','Revisión del deterioro de valores representativos a largo plazo empresas del grupo',NULL,NULL,1),(4765,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7966','4759','Revisión del deterioro de valores representativos a largo plazo empresas asociadas',NULL,NULL,1),(4766,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7967','4759','Revisión del deterioro de valores representativos a largo otras partes vinculadas',NULL,NULL,1),(4767,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7968','4759','Revisión del deterioro de valores representativos a largo plazo otras empresas',NULL,NULL,1),(4768,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','797','4741','Revisión del deterioro de créditos a largo plazo',NULL,NULL,1),(4769,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7970','4768','Revisión del deterioro de créditos a largo plazo empresas del grupo',NULL,NULL,1),(4770,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7971','4768','Revisión del deterioro de créditos a largo plazo empresas asociadas',NULL,NULL,1),(4771,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7972','4768','Revisión del deterioro de créditos a largo plazo otras partes vinculadas',NULL,NULL,1),(4772,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7973','4768','Revisión del deterioro de créditos a largo plazo otras empresas',NULL,NULL,1),(4773,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','798','4741','Revisión del deterioro de participaciones y valores representativos de deuda a corto plazo',NULL,NULL,1),(4774,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7980','4773','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas del grupo',NULL,NULL,1),(4775,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7981','4773','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas asociadas',NULL,NULL,1),(4776,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7985','4773','Revisión del deterioro de valores representativos de deuda a corto plazo empresas del grupo',NULL,NULL,1),(4777,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7986','4773','Revisión del deterioro de valores representativos de deuda a corto plazo empresas asociadas',NULL,NULL,1),(4778,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7987','4773','Revisión del deterioro de valores representativos de deuda a corto plazo otras partes vinculadas',NULL,NULL,1),(4779,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7988','4773','Revisión del deterioro de valores representativos de deuda a corto plazo otras empresas',NULL,NULL,1),(4780,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','799','4741','Revisión del deterioro de créditos a corto plazo',NULL,NULL,1),(4781,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7990','4780','Revisión del deterioro de créditos a corto plazo empresas del grupo',NULL,NULL,1),(4782,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7991','4780','Revisión del deterioro de créditos a corto plazo empresas asociadas',NULL,NULL,1),(4783,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7992','4780','Revisión del deterioro de créditos a corto plazo otras partes vinculadas',NULL,NULL,1),(4784,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7993','4780','Revisión del deterioro de créditos a corto plazo otras empresas',NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_accountingaccount` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_actioncomm`
    +--
    +
    +DROP TABLE IF EXISTS `llx_actioncomm`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_actioncomm` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datep` datetime DEFAULT NULL,
    +  `datep2` datetime DEFAULT NULL,
    +  `fk_action` int(11) DEFAULT NULL,
    +  `code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) DEFAULT NULL,
    +  `fk_project` int(11) DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_contact` int(11) DEFAULT NULL,
    +  `fk_parent` int(11) NOT NULL DEFAULT '0',
    +  `fk_user_action` int(11) DEFAULT NULL,
    +  `transparency` int(11) DEFAULT NULL,
    +  `fk_user_done` int(11) DEFAULT NULL,
    +  `priority` smallint(6) DEFAULT NULL,
    +  `fulldayevent` smallint(6) NOT NULL DEFAULT '0',
    +  `punctual` smallint(6) NOT NULL DEFAULT '1',
    +  `percent` smallint(6) NOT NULL DEFAULT '0',
    +  `location` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `durationp` double DEFAULT NULL,
    +  `durationa` double DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_element` int(11) DEFAULT NULL,
    +  `elementtype` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_msgid` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_subject` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_from` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_sender` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_to` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_tocc` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_tobcc` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `errors_to` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `recurid` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `recurrule` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `recurdateend` datetime DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`),
    +  KEY `idx_actioncomm_fk_soc` (`fk_soc`),
    +  KEY `idx_actioncomm_fk_contact` (`fk_contact`),
    +  KEY `idx_actioncomm_fk_element` (`fk_element`),
    +  KEY `idx_actioncomm_code` (`code`),
    +  KEY `idx_actioncomm_fk_user_action` (`fk_user_action`),
    +  KEY `idx_actioncomm_fk_project` (`fk_project`),
    +  KEY `idx_actioncomm_datep` (`datep`),
    +  KEY `idx_actioncomm_datep2` (`datep2`),
    +  KEY `idx_actioncomm_recurid` (`recurid`),
    +  KEY `idx_actioncomm_ref_ext` (`ref_ext`)
    +) ENGINE=InnoDB AUTO_INCREMENT=329 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_actioncomm`
    +--
    +
    +LOCK TABLES `llx_actioncomm` WRITE;
    +/*!40000 ALTER TABLE `llx_actioncomm` DISABLE KEYS */;
    +INSERT INTO `llx_actioncomm` VALUES (1,NULL,1,'2010-07-08 14:21:44','2010-07-08 14:21:44',50,NULL,'Company AAA and Co added into Dolibarr','2010-07-08 14:21:44','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company AAA and Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,NULL,1,'2010-07-08 14:23:48','2010-07-08 14:23:48',50,NULL,'Company Belin SARL added into Dolibarr','2010-07-08 14:23:48','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company Belin SARL added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,NULL,1,'2010-07-08 22:42:12','2010-07-08 22:42:12',50,NULL,'Company Spanish Comp added into Dolibarr','2010-07-08 22:42:12','2014-12-21 12:50:33',1,NULL,NULL,3,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company Spanish Comp added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,NULL,1,'2010-07-08 22:48:18','2010-07-08 22:48:18',50,NULL,'Company Prospector Vaalen added into Dolibarr','2010-07-08 22:48:18','2014-12-21 12:50:33',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company Prospector Vaalen added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(5,NULL,1,'2010-07-08 23:22:57','2010-07-08 23:22:57',50,NULL,'Company NoCountry Co added into Dolibarr','2010-07-08 23:22:57','2014-12-21 12:50:33',1,NULL,NULL,5,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company NoCountry Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(6,NULL,1,'2010-07-09 00:15:09','2010-07-09 00:15:09',50,NULL,'Company Swiss customer added into Dolibarr','2010-07-09 00:15:09','2014-12-21 12:50:33',1,NULL,NULL,6,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company Swiss customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(7,NULL,1,'2010-07-09 01:24:26','2010-07-09 01:24:26',50,NULL,'Company Generic customer added into Dolibarr','2010-07-09 01:24:26','2014-12-21 12:50:33',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company Generic customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(8,NULL,1,'2010-07-10 14:54:27','2010-07-10 14:54:27',50,NULL,'Société Client salon ajoutée dans Dolibarr','2010-07-10 14:54:27','2014-12-21 12:50:33',1,NULL,NULL,8,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Client salon ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(9,NULL,1,'2010-07-10 14:54:44','2010-07-10 14:54:44',50,NULL,'Société Client salon invidivdu ajoutée dans Doliba','2010-07-10 14:54:44','2014-12-21 12:50:33',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Client salon invidivdu ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(10,NULL,1,'2010-07-10 14:56:10','2010-07-10 14:56:10',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2010-07-10 14:56:10','2014-12-21 12:50:33',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(11,NULL,1,'2010-07-10 14:58:53','2010-07-10 14:58:53',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2010-07-10 14:58:53','2014-12-21 12:50:33',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(12,NULL,1,'2010-07-10 15:00:55','2010-07-10 15:00:55',50,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr','2010-07-10 15:00:55','2014-12-21 12:50:33',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(13,NULL,1,'2010-07-10 15:13:08','2010-07-10 15:13:08',50,NULL,'Société Smith Vick ajoutée dans Dolibarr','2010-07-10 15:13:08','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Smith Vick ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14,NULL,1,'2010-07-10 15:21:00','2010-07-10 16:21:00',5,NULL,'RDV avec mon chef','2010-07-10 15:21:48','2010-07-10 13:21:48',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,1,0,'',3600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(15,NULL,1,'2010-07-10 18:18:16','2010-07-10 18:18:16',50,NULL,'Contrat CONTRAT1 validé dans Dolibarr','2010-07-10 18:18:16','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Contrat CONTRAT1 validé dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(16,NULL,1,'2010-07-10 18:35:57','2010-07-10 18:35:57',50,NULL,'Société Mon client ajoutée dans Dolibarr','2010-07-10 18:35:57','2014-12-21 12:50:33',1,NULL,NULL,11,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Mon client ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(17,NULL,1,'2010-07-11 16:18:08','2010-07-11 16:18:08',50,NULL,'Société Dupont Alain ajoutée dans Dolibarr','2010-07-11 16:18:08','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Dupont Alain ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(18,NULL,1,'2010-07-11 17:11:00','2010-07-11 17:17:00',5,NULL,'Rendez-vous','2010-07-11 17:11:22','2010-07-11 15:11:22',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,1,0,'gfgdfgdf',360,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(19,NULL,1,'2010-07-11 17:13:20','2010-07-11 17:13:20',50,NULL,'Société Vendeur de chips ajoutée dans Dolibarr','2010-07-11 17:13:20','2014-12-21 12:50:33',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Vendeur de chips ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(20,NULL,1,'2010-07-11 17:15:42','2010-07-11 17:15:42',50,NULL,'Commande CF1007-0001 validée','2010-07-11 17:15:42','2014-12-21 12:50:33',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Commande CF1007-0001 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(21,NULL,1,'2010-07-11 18:47:33','2010-07-11 18:47:33',50,NULL,'Commande CF1007-0002 validée','2010-07-11 18:47:33','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Commande CF1007-0002 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(22,NULL,1,'2010-07-18 11:36:18','2010-07-18 11:36:18',50,NULL,'Proposition PR1007-0003 validée','2010-07-18 11:36:18','2014-12-21 12:50:33',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Proposition PR1007-0003 validée\nAuteur: admin',3,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(23,NULL,1,'2011-07-18 20:49:58','2011-07-18 20:49:58',50,NULL,'Invoice FA1007-0002 validated in Dolibarr','2011-07-18 20:49:58','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1007-0002 validated in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(24,NULL,1,'2011-07-28 01:37:00',NULL,1,NULL,'Phone call','2011-07-28 01:37:48','2011-07-27 23:37:48',1,NULL,NULL,NULL,2,0,1,NULL,NULL,0,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(25,NULL,1,'2011-08-01 02:31:24','2011-08-01 02:31:24',50,NULL,'Company mmm added into Dolibarr','2011-08-01 02:31:24','2014-12-21 12:50:33',1,NULL,NULL,15,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Company mmm added into Dolibarr\nAuthor: admin',15,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(26,NULL,1,'2011-08-01 02:31:43','2011-08-01 02:31:43',50,NULL,'Company ppp added into Dolibarr','2011-08-01 02:31:43','2014-12-21 12:50:33',1,NULL,NULL,16,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Company ppp added into Dolibarr\nAuthor: admin',16,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(27,NULL,1,'2011-08-01 02:41:26','2011-08-01 02:41:26',50,NULL,'Company aaa added into Dolibarr','2011-08-01 02:41:26','2014-12-21 12:50:33',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Company aaa added into Dolibarr\nAuthor: admin',17,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(28,NULL,1,'2011-08-01 03:34:11','2011-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2011-08-01 03:34:11','2014-12-21 12:50:33',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0003 validated in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(29,NULL,1,'2011-08-01 03:34:11','2011-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2011-08-01 03:34:11','2014-12-21 12:50:33',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0003 changed to paid in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(30,NULL,1,'2011-08-06 20:33:54','2011-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2011-08-06 20:33:54','2014-12-21 12:50:33',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0004 validated in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(31,NULL,1,'2011-08-06 20:33:54','2011-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2011-08-06 20:33:54','2014-12-21 12:50:33',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0004 changed to paid in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(38,NULL,1,'2011-08-08 02:41:55','2011-08-08 02:41:55',50,NULL,'Invoice FA1108-0005 validated in Dolibarr','2011-08-08 02:41:55','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0005 validated in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(40,NULL,1,'2011-08-08 02:53:40','2011-08-08 02:53:40',50,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr','2011-08-08 02:53:40','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(41,NULL,1,'2011-08-08 02:54:05','2011-08-08 02:54:05',50,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr','2011-08-08 02:54:05','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(42,NULL,1,'2011-08-08 02:55:04','2011-08-08 02:55:04',50,NULL,'Invoice FA1107-0006 validated in Dolibarr','2011-08-08 02:55:04','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1107-0006 validated in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(43,NULL,1,'2011-08-08 02:55:26','2011-08-08 02:55:26',50,NULL,'Invoice FA1108-0007 validated in Dolibarr','2011-08-08 02:55:26','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0007 validated in Dolibarr\nAuthor: admin',9,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(44,NULL,1,'2011-08-08 02:55:58','2011-08-08 02:55:58',50,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr','2011-08-08 02:55:58','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(45,NULL,1,'2011-08-08 03:04:22','2011-08-08 03:04:22',50,NULL,'Order CO1108-0001 validated','2011-08-08 03:04:22','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Order CO1108-0001 validated\nAuthor: admin',5,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(46,NULL,1,'2011-08-08 13:59:09','2011-08-08 13:59:09',50,NULL,'Order CO1107-0002 validated','2011-08-08 13:59:10','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Order CO1107-0002 validated\nAuthor: admin',1,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(47,NULL,1,'2011-08-08 14:24:18','2011-08-08 14:24:18',50,NULL,'Proposal PR1007-0001 validated','2011-08-08 14:24:18','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Proposal PR1007-0001 validated\nAuthor: admin',1,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(48,NULL,1,'2011-08-08 14:24:24','2011-08-08 14:24:24',50,NULL,'Proposal PR1108-0004 validated','2011-08-08 14:24:24','2014-12-21 12:50:33',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Proposal PR1108-0004 validated\nAuthor: admin',4,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(49,NULL,1,'2011-08-08 15:04:37','2011-08-08 15:04:37',50,NULL,'Order CF1108-0003 validated','2011-08-08 15:04:37','2014-12-21 12:50:33',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Order CF1108-0003 validated\nAuthor: admin',6,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(50,NULL,1,'2012-12-08 17:56:47','2012-12-08 17:56:47',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2012-12-08 17:56:47','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(51,NULL,1,'2012-12-08 17:57:11','2012-12-08 17:57:11',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2012-12-08 17:57:11','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(52,NULL,1,'2012-12-08 17:58:27','2012-12-08 17:58:27',40,NULL,'Facture FA1212-0008 validée dans Dolibarr','2012-12-08 17:58:27','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1212-0008 validée dans Dolibarr\nAuteur: admin',11,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(53,NULL,1,'2012-12-08 18:20:49','2012-12-08 18:20:49',40,NULL,'Facture AV1212-0002 validée dans Dolibarr','2012-12-08 18:20:49','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture AV1212-0002 validée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(54,NULL,1,'2012-12-09 18:35:07','2012-12-09 18:35:07',40,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr','2012-12-09 18:35:07','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(55,NULL,1,'2012-12-09 20:14:42','2012-12-09 20:14:42',40,NULL,'Société doe john ajoutée dans Dolibarr','2012-12-09 20:14:42','2014-12-21 12:50:33',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Société doe john ajoutée dans Dolibarr\nAuteur: admin',18,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(56,NULL,1,'2012-12-12 18:54:19','2012-12-12 18:54:19',40,NULL,'Facture FA1212-0009 validée dans Dolibarr','2012-12-12 18:54:19','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1212-0009 validée dans Dolibarr\nAuteur: admin',55,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(121,NULL,1,'2012-12-06 10:00:00',NULL,50,NULL,'aaab','2012-12-21 17:48:08','2012-12-21 16:54:07',3,1,NULL,NULL,NULL,0,3,NULL,NULL,1,0,1,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(122,NULL,1,'2012-12-21 18:09:52','2012-12-21 18:09:52',40,NULL,'Facture client FA1007-0001 envoyée par EMail','2012-12-21 18:09:52','2014-12-21 12:50:33',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Mail envoyé par Firstname SuperAdminName <bidon@destailleur.fr> à laurent@destailleur.fr.\nSujet du mail: Envoi facture FA1007-0001\nCorps du mail:\nVeuillez trouver ci-joint la facture FA1007-0001\r\n\r\nVous pouvez cliquer sur le lien sécurisé ci-dessous pour effectuer votre paiement via Paypal\r\n\r\nhttp://localhost/dolibarrnew/public/paypal/newpayment.php?source=invoice&ref=FA1007-0001&securekey=50c82fab36bb3b6aa83e2a50691803b2\r\n\r\nCordialement',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(123,NULL,1,'2013-01-06 13:13:57','2013-01-06 13:13:57',40,NULL,'Facture 16 validée dans Dolibarr','2013-01-06 13:13:57','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture 16 validée dans Dolibarr\nAuteur: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(124,NULL,1,'2013-01-12 12:23:05','2013-01-12 12:23:05',40,NULL,'Patient aaa ajouté','2013-01-12 12:23:05','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Patient aaa ajouté\nAuteur: admin',19,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(125,NULL,1,'2013-01-12 12:52:20','2013-01-12 12:52:20',40,NULL,'Patient pppoo ajouté','2013-01-12 12:52:20','2014-12-21 12:50:33',1,NULL,NULL,20,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Patient pppoo ajouté\nAuteur: admin',20,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(127,NULL,1,'2013-01-19 18:22:48','2013-01-19 18:22:48',40,NULL,'Facture FS1301-0001 validée dans Dolibarr','2013-01-19 18:22:48','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FS1301-0001 validée dans Dolibarr\nAuteur: admin',148,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(128,NULL,1,'2013-01-19 18:31:10','2013-01-19 18:31:10',40,NULL,'Facture FA6801-0010 validée dans Dolibarr','2013-01-19 18:31:10','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA6801-0010 validée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(129,NULL,1,'2013-01-19 18:31:10','2013-01-19 18:31:10',40,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr','2013-01-19 18:31:10','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(130,NULL,1,'2013-01-19 18:31:58','2013-01-19 18:31:58',40,NULL,'Facture FS1301-0002 validée dans Dolibarr','2013-01-19 18:31:58','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FS1301-0002 validée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(131,NULL,1,'2013-01-19 18:31:58','2013-01-19 18:31:58',40,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr','2013-01-19 18:31:58','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(132,NULL,1,'2013-01-23 15:07:54','2013-01-23 15:07:54',50,NULL,'Consultation 24 saisie (aaa)','2013-01-23 15:07:54','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Consultation 24 saisie (aaa)\nAuteur: admin',24,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(133,NULL,1,'2013-01-23 16:56:58','2013-01-23 16:56:58',40,NULL,'Patient pa ajouté','2013-01-23 16:56:58','2014-12-21 12:50:33',1,NULL,NULL,21,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Patient pa ajouté\nAuteur: admin',21,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(134,NULL,1,'2013-01-23 17:34:00',NULL,50,NULL,'bbcv','2013-01-23 17:35:21','2013-01-23 16:35:21',1,NULL,1,2,NULL,0,1,NULL,NULL,0,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(135,NULL,1,'2013-02-12 15:54:00','2013-02-12 15:54:00',40,NULL,'Facture FA1212-0011 validée dans Dolibarr','2013-02-12 15:54:37','2014-12-21 12:50:33',1,1,NULL,7,NULL,0,1,NULL,1,0,0,1,50,NULL,NULL,NULL,'Facture FA1212-0011 valid&eacute;e dans Dolibarr<br />\r\nAuteur: admin',13,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(136,NULL,1,'2013-02-12 17:06:51','2013-02-12 17:06:51',40,NULL,'Commande CO1107-0003 validée','2013-02-12 17:06:51','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Commande CO1107-0003 validée\nAuteur: admin',2,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(137,NULL,1,'2013-02-17 16:22:10','2013-02-17 16:22:10',40,NULL,'Proposition PR1302-0009 validée','2013-02-17 16:22:10','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Proposition PR1302-0009 validée\nAuteur: admin',9,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(138,NULL,1,'2013-02-17 16:27:00','2013-02-17 16:27:00',40,NULL,'Facture FA1302-0012 validée dans Dolibarr','2013-02-17 16:27:00','2014-12-21 12:50:33',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1302-0012 validée dans Dolibarr\nAuteur: admin',152,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(139,NULL,1,'2013-02-17 16:27:29','2013-02-17 16:27:29',40,NULL,'Proposition PR1302-0010 validée','2013-02-17 16:27:29','2014-12-21 12:50:33',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Proposition PR1302-0010 validée\nAuteur: admin',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(140,NULL,1,'2013-02-17 18:27:56','2013-02-17 18:27:56',40,NULL,'Commande CO1107-0004 validée','2013-02-17 18:27:56','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Commande CO1107-0004 validée\nAuteur: admin',3,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(141,NULL,1,'2013-02-17 18:38:14','2013-02-17 18:38:14',40,NULL,'Commande CO1302-0005 validée','2013-02-17 18:38:14','2014-12-21 12:50:33',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Commande CO1302-0005 validée\nAuteur: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(142,NULL,1,'2013-02-26 22:57:50','2013-02-26 22:57:50',40,NULL,'Company pppp added into Dolibarr','2013-02-26 22:57:50','2014-12-21 12:50:33',1,NULL,NULL,22,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Company pppp added into Dolibarr\nAuthor: admin',22,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(143,NULL,1,'2013-02-26 22:58:13','2013-02-26 22:58:13',40,NULL,'Company ttttt added into Dolibarr','2013-02-26 22:58:13','2014-12-21 12:50:33',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Company ttttt added into Dolibarr\nAuthor: admin',23,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(144,NULL,1,'2013-02-27 10:00:00','2013-02-27 19:20:00',5,NULL,'Rendez-vous','2013-02-27 19:20:53','2013-02-27 18:20:53',1,NULL,NULL,NULL,NULL,0,1,NULL,1,0,0,1,-1,'',33600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(145,NULL,1,'2013-02-27 19:28:00',NULL,2,NULL,'fdsfsd','2013-02-27 19:28:48','2013-02-27 18:29:53',1,1,NULL,NULL,NULL,0,1,NULL,1,0,0,1,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(146,NULL,1,'2013-03-06 10:05:07','2013-03-06 10:05:07',40,NULL,'Contrat (PROV3) validé dans Dolibarr','2013-03-06 10:05:07','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Contrat (PROV3) validé dans Dolibarr\nAuteur: admin',3,'contract',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(147,NULL,1,'2013-03-06 16:43:37','2013-03-06 16:43:37',40,NULL,'Facture FA1307-0013 validée dans Dolibarr','2013-03-06 16:43:37','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1307-0013 validée dans Dolibarr\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(148,NULL,1,'2013-03-06 16:44:12','2013-03-06 16:44:12',40,NULL,'Facture FA1407-0014 validée dans Dolibarr','2013-03-06 16:44:12','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1407-0014 validée dans Dolibarr\nAuteur: admin',159,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(149,NULL,1,'2013-03-06 16:47:48','2013-03-06 16:47:48',40,NULL,'Facture FA1507-0015 validée dans Dolibarr','2013-03-06 16:47:48','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1507-0015 validée dans Dolibarr\nAuteur: admin',160,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(150,NULL,1,'2013-03-06 16:48:16','2013-03-06 16:48:16',40,NULL,'Facture FA1607-0016 validée dans Dolibarr','2013-03-06 16:48:16','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1607-0016 validée dans Dolibarr\nAuteur: admin',161,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(151,NULL,1,'2013-03-06 17:13:59','2013-03-06 17:13:59',40,NULL,'Société smith smith ajoutée dans Dolibarr','2013-03-06 17:13:59','2014-12-21 12:50:33',1,NULL,NULL,24,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Société smith smith ajoutée dans Dolibarr\nAuteur: admin',24,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(152,NULL,1,'2013-03-08 10:02:22','2013-03-08 10:02:22',40,NULL,'Proposition (PROV12) validée dans Dolibarr','2013-03-08 10:02:22','2014-12-21 12:50:33',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Proposition (PROV12) validée dans Dolibarr\nAuteur: admin',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(203,NULL,1,'2013-03-09 19:39:27','2013-03-09 19:39:27',40,'AC_ORDER_SUPPLIER_VALIDATE','Commande CF1303-0004 validée','2013-03-09 19:39:27','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Commande CF1303-0004 validée\nAuteur: admin',13,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(204,NULL,1,'2013-03-10 15:47:37','2013-03-10 15:47:37',40,'AC_COMPANY_CREATE','Patient créé','2013-03-10 15:47:37','2014-12-21 12:50:33',1,NULL,NULL,25,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Patient créé\nAuteur: admin',25,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(205,NULL,1,'2013-03-10 15:57:32','2013-03-10 15:57:32',40,'AC_COMPANY_CREATE','Tiers créé','2013-03-10 15:57:32','2014-12-21 12:50:33',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Tiers créé\nAuteur: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(206,NULL,1,'2013-03-10 15:58:28','2013-03-10 15:58:28',40,'AC_BILL_VALIDATE','Facture FA1303-0017 validée','2013-03-10 15:58:28','2014-12-21 12:50:33',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1303-0017 validée\nAuteur: admin',208,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(207,NULL,1,'2013-03-19 09:38:10','2013-03-19 09:38:10',40,'AC_BILL_VALIDATE','Facture FA1303-0018 validée','2013-03-19 09:38:10','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1303-0018 validée\nAuteur: admin',209,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(208,NULL,1,'2013-03-20 14:30:11','2013-03-20 14:30:11',40,'AC_BILL_VALIDATE','Facture FA1107-0019 validée','2013-03-20 14:30:11','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1107-0019 validée\nAuteur: admin',210,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(209,NULL,1,'2013-03-22 09:40:25','2013-03-22 09:40:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2013-03-22 09:40:25','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(210,NULL,1,'2013-03-23 17:16:25','2013-03-23 17:16:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2013-03-23 17:16:25','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(211,NULL,1,'2013-03-23 18:08:27','2013-03-23 18:08:27',40,'AC_BILL_VALIDATE','Facture FA1307-0013 validée','2013-03-23 18:08:27','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1307-0013 validée\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(212,NULL,1,'2013-03-24 15:54:00','2013-03-24 15:54:00',40,'AC_BILL_VALIDATE','Facture FA1212-0021 validée','2013-03-24 15:54:00','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1212-0021 validée\nAuteur: admin',32,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(213,NULL,1,'2013-11-07 01:02:39','2013-11-07 01:02:39',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:02:39','2014-12-21 12:50:33',1,NULL,NULL,27,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',27,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(214,NULL,1,'2013-11-07 01:05:22','2013-11-07 01:05:22',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:05:22','2014-12-21 12:50:33',1,NULL,NULL,28,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',28,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(215,NULL,1,'2013-11-07 01:07:07','2013-11-07 01:07:07',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:07:07','2014-12-21 12:50:33',1,NULL,NULL,29,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',29,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(216,NULL,1,'2013-11-07 01:07:58','2013-11-07 01:07:58',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:07:58','2014-12-21 12:50:33',1,NULL,NULL,30,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',30,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(217,NULL,1,'2013-11-07 01:10:09','2013-11-07 01:10:09',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:10:09','2014-12-21 12:50:33',1,NULL,NULL,31,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',31,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(218,NULL,1,'2013-11-07 01:15:57','2013-11-07 01:15:57',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:15:57','2014-12-21 12:50:33',1,NULL,NULL,32,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',32,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(219,NULL,1,'2013-11-07 01:16:51','2013-11-07 01:16:51',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:16:51','2014-12-21 12:50:33',1,NULL,NULL,33,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',33,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(220,NULL,1,'2014-03-02 17:24:04','2014-03-02 17:24:04',40,'AC_BILL_VALIDATE','Invoice FA1302-0022 validated','2014-03-02 17:24:04','2014-12-21 12:50:33',1,NULL,NULL,18,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1302-0022 validated\nAuthor: admin',157,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(221,NULL,1,'2014-03-02 17:24:28','2014-03-02 17:24:28',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2014-03-02 17:24:28','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(222,NULL,1,'2014-03-05 10:00:00','2014-03-05 10:00:00',5,NULL,'RDV John','2014-03-02 19:54:48','2014-03-02 18:55:29',1,1,NULL,NULL,NULL,0,1,0,NULL,0,0,1,-1,NULL,NULL,NULL,'gfdgdfgdf',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(223,NULL,1,'2014-03-13 10:00:00','2014-03-17 00:00:00',50,NULL,'Congress','2014-03-02 19:55:11','2014-03-02 18:55:11',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,1,-1,'',309600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(224,NULL,1,'2014-03-14 10:00:00',NULL,1,NULL,'Call john','2014-03-02 19:55:56','2014-03-02 18:55:56',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,1,0,'',NULL,NULL,'tttt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(225,NULL,1,'2014-03-02 20:11:31','2014-03-02 20:11:31',40,'AC_BILL_UNVALIDATE','Invoice FA1303-0020 go back to draft status','2014-03-02 20:11:31','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1303-0020 go back to draft status\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(226,NULL,1,'2014-03-02 20:13:39','2014-03-02 20:13:39',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2014-03-02 20:13:39','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(227,NULL,1,'2014-03-03 19:20:10','2014-03-03 19:20:10',40,'AC_BILL_VALIDATE','Invoice FA1212-0023 validated','2014-03-03 19:20:10','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1212-0023 validated\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(228,NULL,1,'2014-03-03 19:20:25','2014-03-03 19:20:25',40,'AC_BILL_CANCEL','Invoice FA1212-0023 canceled in Dolibarr','2014-03-03 19:20:25','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1212-0023 canceled in Dolibarr\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(229,NULL,1,'2014-03-03 19:20:56','2014-03-03 19:20:56',40,'AC_BILL_VALIDATE','Invoice AV1403-0003 validated','2014-03-03 19:20:56','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice AV1403-0003 validated\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(230,NULL,1,'2014-03-03 19:21:29','2014-03-03 19:21:29',40,'AC_BILL_UNVALIDATE','Invoice AV1403-0003 go back to draft status','2014-03-03 19:21:29','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice AV1403-0003 go back to draft status\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(231,NULL,1,'2014-03-03 19:22:16','2014-03-03 19:22:16',40,'AC_BILL_VALIDATE','Invoice AV1303-0003 validated','2014-03-03 19:22:16','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice AV1303-0003 validated\nAuthor: admin',213,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(232,NULL,1,'2016-01-22 18:54:39','2016-01-22 18:54:39',40,'AC_OTH_AUTO','Invoice 16 validated','2016-01-22 18:54:39','2016-01-22 17:54:39',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(233,NULL,1,'2016-01-22 18:54:46','2016-01-22 18:54:46',40,'AC_OTH_AUTO','Invoice 16 validated','2016-01-22 18:54:46','2016-01-22 17:54:46',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(234,NULL,1,'2016-07-05 10:00:00','2016-07-05 11:19:00',5,'AC_RDV','Meeting with my boss','2016-07-31 18:19:48','2016-07-31 14:19:48',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,1,-1,'',4740,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(235,NULL,1,'2016-07-13 00:00:00','2016-07-14 23:59:59',50,'AC_OTH','Trip at Las Vegas','2016-07-31 18:20:36','2016-07-31 14:20:36',12,NULL,4,NULL,2,0,12,1,NULL,0,1,1,-1,'',172799,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(236,NULL,1,'2016-07-29 10:00:00',NULL,4,'AC_EMAIL','Remind to send an email','2016-07-31 18:21:04','2016-07-31 14:21:04',12,NULL,NULL,NULL,NULL,0,4,0,NULL,0,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(237,NULL,1,'2016-07-01 10:00:00',NULL,1,'AC_TEL','Phone call with Mr Vaalen','2016-07-31 18:22:04','2016-07-31 14:22:04',12,NULL,6,4,NULL,0,13,0,NULL,0,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(238,NULL,1,'2016-08-02 10:00:00','2016-08-02 12:00:00',5,'AC_RDV','Meeting on radium','2016-08-01 01:15:50','2016-07-31 21:15:50',12,NULL,8,10,10,0,12,1,NULL,0,0,1,-1,'',7200,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(239,NULL,1,'2017-01-29 21:49:33','2017-01-29 21:49:33',40,'AC_OTH_AUTO','Proposal PR1302-0007 validated','2017-01-29 21:49:33','2017-01-29 17:49:33',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1302-0007 validated\nAuthor: admin',7,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(240,NULL,1,'2017-01-31 20:52:00',NULL,1,'AC_TEL','Call the boss','2017-01-31 20:52:10','2017-01-31 16:52:25',12,12,6,NULL,NULL,0,12,1,NULL,0,0,1,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(242,NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 validated','2017-02-01 18:52:04','2017-02-01 14:52:04',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CF1007-0001 validated\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(243,NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 approved','2017-02-01 18:52:04','2017-02-01 14:52:04',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CF1007-0001 approved\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(245,NULL,1,'2017-02-01 18:52:32','2017-02-01 18:52:32',40,'AC_OTH_AUTO','Supplier order CF1007-0001 submited','2017-02-01 18:52:32','2017-02-01 14:52:32',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Supplier order CF1007-0001 submited\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(249,NULL,1,'2017-02-01 18:54:01','2017-02-01 18:54:01',40,'AC_OTH_AUTO','Supplier order CF1007-0001 received','2017-02-01 18:54:01','2017-02-01 14:54:01',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Supplier order CF1007-0001 received \nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(250,NULL,1,'2017-02-01 18:54:42','2017-02-01 18:54:42',40,'AC_OTH_AUTO','Email sent by MyBigCompany To mycustomer@example.com','2017-02-01 18:54:42','2017-02-01 14:54:42',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Sender: MyBigCompany &lt;myemail@mybigcompany.com&gt;<br>\nReceiver(s): mycustomer@example.com<br>\nEMail topic: Submission of order CF1007-0001<br>\nEmail body:<br>\nYou will find here our order CF1007-0001<br />\r\n<br />\r\nSincerely<br>\n<br>\nAttached files and documents: CF1007-0001.pdf',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(251,NULL,1,'2017-02-01 19:02:21','2017-02-01 19:02:21',40,'AC_OTH_AUTO','Invoice SI1702-0001 validated','2017-02-01 19:02:21','2017-02-01 15:02:21',12,NULL,5,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Invoice SI1702-0001 validated\nAuthor: admin',20,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(252,NULL,1,'2017-02-12 23:17:04','2017-02-12 23:17:04',40,'AC_OTH_AUTO','Patient créé','2017-02-12 23:17:04','2017-02-12 19:17:04',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Patient créé\nAuthor: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(253,NULL,1,'2017-02-12 23:18:33','2017-02-12 23:18:33',40,'AC_OTH_AUTO','Consultation 2 recorded (aaa)','2017-02-12 23:18:33','2017-02-12 19:18:33',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Consultation 2 recorded (aaa)\nAuthor: admin',2,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(254,NULL,1,'2017-02-15 23:28:41','2017-02-15 23:28:41',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:28:41','2017-02-15 22:28:41',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(255,NULL,1,'2017-02-15 23:28:56','2017-02-15 23:28:56',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:28:56','2017-02-15 22:28:56',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',8,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(256,NULL,1,'2017-02-15 23:34:33','2017-02-15 23:34:33',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:34:33','2017-02-15 22:34:33',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',9,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(257,NULL,1,'2017-02-15 23:35:03','2017-02-15 23:35:03',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-15 23:35:03','2017-02-15 22:35:03',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',10,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(263,NULL,1,'2017-02-15 23:50:34','2017-02-15 23:50:34',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:50:34','2017-02-15 22:50:34',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',17,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(264,NULL,1,'2017-02-15 23:51:23','2017-02-15 23:51:23',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:51:23','2017-02-15 22:51:23',12,NULL,NULL,7,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',18,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(265,NULL,1,'2017-02-15 23:54:51','2017-02-15 23:54:51',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:54:51','2017-02-15 22:54:51',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',19,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(266,NULL,1,'2017-02-15 23:55:52','2017-02-15 23:55:52',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:55:52','2017-02-15 22:55:52',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',20,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(267,NULL,1,'2017-02-16 00:03:44','2017-02-16 00:03:44',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-16 00:03:44','2017-02-15 23:03:44',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',29,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(268,NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0009 validated','2017-02-16 00:05:01','2017-02-15 23:05:01',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0009 validated\nAuthor: admin',34,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(269,NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0010 validated','2017-02-16 00:05:01','2017-02-15 23:05:01',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0010 validated\nAuthor: admin',38,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(270,NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0011 validated','2017-02-16 00:05:11','2017-02-15 23:05:11',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0011 validated\nAuthor: admin',40,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(271,NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0012 validated','2017-02-16 00:05:11','2017-02-15 23:05:11',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0012 validated\nAuthor: admin',43,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(272,NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0013 validated','2017-02-16 00:05:11','2017-02-15 23:05:11',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0013 validated\nAuthor: admin',47,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(273,NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0014 validated','2017-02-16 00:05:11','2017-02-15 23:05:11',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0014 validated\nAuthor: admin',48,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(274,NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0015 validated','2017-02-16 00:05:26','2017-02-15 23:05:26',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0015 validated\nAuthor: admin',50,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(275,NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0016 validated','2017-02-16 00:05:26','2017-02-15 23:05:26',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0016 validated\nAuthor: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(277,NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0018 validated','2017-02-16 00:05:35','2017-02-15 23:05:35',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0018 validated\nAuthor: admin',62,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(278,NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0019 validated','2017-02-16 00:05:35','2017-02-15 23:05:35',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0019 validated\nAuthor: admin',68,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(279,NULL,1,'2017-02-16 00:05:36','2017-02-16 00:05:36',40,'AC_OTH_AUTO','Order CO7001-0020 validated','2017-02-16 00:05:36','2017-02-15 23:05:36',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0020 validated\nAuthor: admin',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(281,NULL,1,'2017-02-16 00:05:37','2017-02-16 00:05:37',40,'AC_OTH_AUTO','Order CO7001-0022 validated','2017-02-16 00:05:37','2017-02-15 23:05:37',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0022 validated\nAuthor: admin',78,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(282,NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0023 validated','2017-02-16 00:05:38','2017-02-15 23:05:38',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0023 validated\nAuthor: admin',81,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(283,NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0024 validated','2017-02-16 00:05:38','2017-02-15 23:05:38',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0024 validated\nAuthor: admin',83,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(284,NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0025 validated','2017-02-16 00:05:38','2017-02-15 23:05:38',12,NULL,NULL,2,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0025 validated\nAuthor: admin',84,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(285,NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0026 validated','2017-02-16 00:05:38','2017-02-15 23:05:38',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0026 validated\nAuthor: admin',85,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(286,NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0027 validated','2017-02-16 00:05:38','2017-02-15 23:05:38',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0027 validated\nAuthor: admin',88,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(287,NULL,1,'2017-02-16 03:05:56','2017-02-16 03:05:56',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Livrée','2017-02-16 03:05:56','2017-02-15 23:05:56',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Commande CO7001-0016 classée Livrée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(288,NULL,1,'2017-02-16 03:06:01','2017-02-16 03:06:01',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Facturée','2017-02-16 03:06:01','2017-02-15 23:06:01',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Commande CO7001-0016 classée Facturée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(294,NULL,1,'2017-02-16 03:53:04','2017-02-16 03:53:04',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 03:53:04','2017-02-15 23:53:04',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(295,NULL,1,'2017-02-16 03:58:08','2017-02-16 03:58:08',40,'AC_OTH_AUTO','Expédition SH1702-0002 validée','2017-02-16 03:58:08','2017-02-15 23:58:08',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Expédition SH1702-0002 validée\nAuteur: admin',3,'shipping',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(296,NULL,1,'2017-02-16 04:12:29','2017-02-16 04:12:29',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:12:29','2017-02-16 00:12:29',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(297,NULL,1,'2017-02-16 04:14:20','2017-02-16 04:14:20',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:14:20','2017-02-16 00:14:20',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(298,NULL,1,'2017-02-16 01:44:58','2017-02-16 01:44:58',40,'AC_OTH_AUTO','Proposal PR1702-0009 validated','2017-02-16 01:44:58','2017-02-16 00:44:58',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0009 validated\nAuthor: aeinstein',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(299,NULL,1,'2017-02-16 01:45:44','2017-02-16 01:45:44',40,'AC_OTH_AUTO','Proposal PR1702-0010 validated','2017-02-16 01:45:44','2017-02-16 00:45:44',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0010 validated\nAuthor: demo',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(300,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0011 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0011 validated\nAuthor: aeinstein',13,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(301,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0012 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',2,NULL,NULL,3,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0012 validated\nAuthor: demo',14,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(302,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0013 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0013 validated\nAuthor: demo',15,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(303,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0014 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0014 validated\nAuthor: demo',16,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(304,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0015 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0015 validated\nAuthor: aeinstein',17,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(305,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0016 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0016 validated\nAuthor: demo',18,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(306,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0017 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0017 validated\nAuthor: demo',19,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(307,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0018 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0018 validated\nAuthor: aeinstein',20,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(308,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0019 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0019 validated\nAuthor: aeinstein',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(309,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0020 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0020 validated\nAuthor: aeinstein',22,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(310,NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0021 validated','2017-02-16 01:46:17','2017-02-16 00:46:17',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0021 validated\nAuthor: demo',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(311,NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0022 validated','2017-02-16 01:46:17','2017-02-16 00:46:17',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0022 validated\nAuthor: demo',24,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(312,NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0023 validated','2017-02-16 01:46:17','2017-02-16 00:46:17',1,NULL,NULL,3,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0023 validated\nAuthor: aeinstein',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(313,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0024 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0024 validated\nAuthor: demo',26,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(314,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0025 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',1,NULL,NULL,6,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0025 validated\nAuthor: aeinstein',27,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(315,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0026 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0026 validated\nAuthor: demo',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(316,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0027 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0027 validated\nAuthor: demo',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(317,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0028 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0028 validated\nAuthor: demo',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(318,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0029 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',1,NULL,NULL,11,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0029 validated\nAuthor: aeinstein',31,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(319,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0030 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0030 validated\nAuthor: demo',32,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(320,NULL,1,'2017-02-16 04:46:31','2017-02-16 04:46:31',40,'AC_OTH_AUTO','Proposition PR1702-0026 signée','2017-02-16 04:46:31','2017-02-16 00:46:31',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0026 signée\nAuteur: admin',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(321,NULL,1,'2017-02-16 04:46:37','2017-02-16 04:46:37',40,'AC_OTH_AUTO','Proposition PR1702-0027 signée','2017-02-16 04:46:37','2017-02-16 00:46:37',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0027 signée\nAuteur: admin',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(322,NULL,1,'2017-02-16 04:46:42','2017-02-16 04:46:42',40,'AC_OTH_AUTO','Proposition PR1702-0028 refusée','2017-02-16 04:46:42','2017-02-16 00:46:42',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0028 refusée\nAuteur: admin',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(323,NULL,1,'2017-02-16 04:47:09','2017-02-16 04:47:09',40,'AC_OTH_AUTO','Proposition PR1702-0019 validée','2017-02-16 04:47:09','2017-02-16 00:47:09',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0019 validée\nAuteur: admin',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(324,NULL,1,'2017-02-16 04:47:25','2017-02-16 04:47:25',40,'AC_OTH_AUTO','Proposition PR1702-0023 signée','2017-02-16 04:47:25','2017-02-16 00:47:25',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0023 signée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(325,NULL,1,'2017-02-16 04:47:29','2017-02-16 04:47:29',40,'AC_OTH_AUTO','Proposition PR1702-0023 classée payée','2017-02-16 04:47:29','2017-02-16 00:47:29',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0023 classée payée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(326,NULL,1,'2017-02-17 16:07:18','2017-02-17 16:07:18',40,'AC_OTH_AUTO','Proposition PR1702-0021 validée','2017-02-17 16:07:18','2017-02-17 12:07:18',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0021 validée\nAuteur: admin',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(327,NULL,1,'2017-05-12 13:53:44','2017-05-12 13:53:44',40,'AC_OTH_AUTO','Email sent by MyBigCompany To Einstein','2017-05-12 13:53:44','2017-05-12 09:53:44',12,NULL,NULL,11,12,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Sender: MyBigCompany &lt;myemail@mybigcompany.com&gt;<br>\nReceiver(s): Einstein &lt;genius@example.com&gt;<br>\nBcc: Einstein &lt;genius@example.com&gt;<br>\nEMail topic: Test<br>\nEmail body:<br>\nTest\nAuthor: admin',11,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(328,NULL,1,'2017-08-29 22:39:09','2017-08-29 22:39:09',40,'AC_OTH_AUTO','Invoice FA1601-0024 validated','2017-08-29 22:39:09','2017-08-29 18:39:09',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Invoice FA1601-0024 validated\nAuthor: admin',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_actioncomm` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_actioncomm_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_actioncomm_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_actioncomm_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_actioncomm_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_actioncomm_extrafields`
    +--
    +
    +LOCK TABLES `llx_actioncomm_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_actioncomm_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_actioncomm_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_actioncomm_reminder`
    +--
    +
    +DROP TABLE IF EXISTS `llx_actioncomm_reminder`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_actioncomm_reminder` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `dateremind` datetime NOT NULL,
    +  `typeremind` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `offsetvalue` int(11) NOT NULL,
    +  `offsetunit` varchar(1) COLLATE utf8_unicode_ci NOT NULL,
    +  `status` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_actioncomm_reminder_unique` (`fk_user`,`typeremind`,`offsetvalue`,`offsetunit`),
    +  KEY `idx_actioncomm_reminder_rowid` (`rowid`),
    +  KEY `idx_actioncomm_reminder_dateremind` (`dateremind`),
    +  KEY `idx_actioncomm_reminder_fk_user` (`fk_user`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_actioncomm_reminder`
    +--
    +
    +LOCK TABLES `llx_actioncomm_reminder` WRITE;
    +/*!40000 ALTER TABLE `llx_actioncomm_reminder` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_actioncomm_reminder` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_actioncomm_resources`
    +--
    +
    +DROP TABLE IF EXISTS `llx_actioncomm_resources`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_actioncomm_resources` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_actioncomm` int(11) NOT NULL,
    +  `element_type` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_element` int(11) NOT NULL,
    +  `answer_status` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `mandatory` smallint(6) DEFAULT NULL,
    +  `transparency` smallint(6) DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_actioncomm_resources` (`fk_actioncomm`,`element_type`,`fk_element`),
    +  KEY `idx_actioncomm_resources_fk_element` (`fk_element`)
    +) ENGINE=InnoDB AUTO_INCREMENT=216 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_actioncomm_resources`
    +--
    +
    +LOCK TABLES `llx_actioncomm_resources` WRITE;
    +/*!40000 ALTER TABLE `llx_actioncomm_resources` DISABLE KEYS */;
    +INSERT INTO `llx_actioncomm_resources` VALUES (1,1,'user',1,NULL,NULL,1),(2,2,'user',1,NULL,NULL,1),(3,3,'user',1,NULL,NULL,1),(4,4,'user',1,NULL,NULL,1),(5,5,'user',1,NULL,NULL,1),(6,6,'user',1,NULL,NULL,1),(7,7,'user',1,NULL,NULL,1),(8,8,'user',1,NULL,NULL,1),(9,9,'user',1,NULL,NULL,1),(10,10,'user',1,NULL,NULL,1),(11,11,'user',1,NULL,NULL,1),(12,12,'user',1,NULL,NULL,1),(13,13,'user',1,NULL,NULL,1),(14,14,'user',1,NULL,NULL,1),(15,15,'user',1,NULL,NULL,1),(16,16,'user',1,NULL,NULL,1),(17,17,'user',1,NULL,NULL,1),(18,18,'user',1,NULL,NULL,1),(19,19,'user',1,NULL,NULL,1),(20,20,'user',1,NULL,NULL,1),(21,21,'user',1,NULL,NULL,1),(22,22,'user',1,NULL,NULL,1),(23,23,'user',1,NULL,NULL,1),(24,24,'user',1,NULL,NULL,1),(25,25,'user',1,NULL,NULL,1),(26,26,'user',1,NULL,NULL,1),(27,27,'user',1,NULL,NULL,1),(28,28,'user',1,NULL,NULL,1),(29,29,'user',1,NULL,NULL,1),(30,30,'user',1,NULL,NULL,1),(31,31,'user',1,NULL,NULL,1),(32,38,'user',1,NULL,NULL,1),(33,40,'user',1,NULL,NULL,1),(34,41,'user',1,NULL,NULL,1),(35,42,'user',1,NULL,NULL,1),(36,43,'user',1,NULL,NULL,1),(37,44,'user',1,NULL,NULL,1),(38,45,'user',1,NULL,NULL,1),(39,46,'user',1,NULL,NULL,1),(40,47,'user',1,NULL,NULL,1),(41,48,'user',1,NULL,NULL,1),(42,49,'user',1,NULL,NULL,1),(43,50,'user',1,NULL,NULL,1),(44,51,'user',1,NULL,NULL,1),(45,52,'user',1,NULL,NULL,1),(46,53,'user',1,NULL,NULL,1),(47,54,'user',1,NULL,NULL,1),(48,55,'user',1,NULL,NULL,1),(49,56,'user',1,NULL,NULL,1),(50,121,'user',3,NULL,NULL,1),(51,122,'user',1,NULL,NULL,1),(52,123,'user',1,NULL,NULL,1),(53,124,'user',1,NULL,NULL,1),(54,125,'user',1,NULL,NULL,1),(55,127,'user',1,NULL,NULL,1),(56,128,'user',1,NULL,NULL,1),(57,129,'user',1,NULL,NULL,1),(58,130,'user',1,NULL,NULL,1),(59,131,'user',1,NULL,NULL,1),(60,132,'user',1,NULL,NULL,1),(61,133,'user',1,NULL,NULL,1),(62,134,'user',1,NULL,NULL,1),(63,135,'user',1,NULL,NULL,1),(64,136,'user',1,NULL,NULL,1),(65,137,'user',1,NULL,NULL,1),(66,138,'user',1,NULL,NULL,1),(67,139,'user',1,NULL,NULL,1),(68,140,'user',1,NULL,NULL,1),(69,141,'user',1,NULL,NULL,1),(70,142,'user',1,NULL,NULL,1),(71,143,'user',1,NULL,NULL,1),(72,144,'user',1,NULL,NULL,1),(73,145,'user',1,NULL,NULL,1),(74,146,'user',1,NULL,NULL,1),(75,147,'user',1,NULL,NULL,1),(76,148,'user',1,NULL,NULL,1),(77,149,'user',1,NULL,NULL,1),(78,150,'user',1,NULL,NULL,1),(79,151,'user',1,NULL,NULL,1),(80,152,'user',1,NULL,NULL,1),(81,203,'user',1,NULL,NULL,1),(82,204,'user',1,NULL,NULL,1),(83,205,'user',1,NULL,NULL,1),(84,206,'user',1,NULL,NULL,1),(85,207,'user',1,NULL,NULL,1),(86,208,'user',1,NULL,NULL,1),(87,209,'user',1,NULL,NULL,1),(88,210,'user',1,NULL,NULL,1),(89,211,'user',1,NULL,NULL,1),(90,212,'user',1,NULL,NULL,1),(91,213,'user',1,NULL,NULL,1),(92,214,'user',1,NULL,NULL,1),(93,215,'user',1,NULL,NULL,1),(94,216,'user',1,NULL,NULL,1),(95,217,'user',1,NULL,NULL,1),(96,218,'user',1,NULL,NULL,1),(97,219,'user',1,NULL,NULL,1),(98,220,'user',1,NULL,NULL,1),(99,221,'user',1,NULL,NULL,1),(100,222,'user',1,NULL,NULL,1),(101,223,'user',1,NULL,NULL,1),(102,224,'user',1,NULL,NULL,1),(103,225,'user',1,NULL,NULL,1),(104,226,'user',1,NULL,NULL,1),(105,227,'user',1,NULL,NULL,1),(106,228,'user',1,NULL,NULL,1),(107,229,'user',1,NULL,NULL,1),(108,230,'user',1,NULL,NULL,1),(109,231,'user',1,NULL,NULL,1),(110,232,'user',12,'0',0,0),(111,233,'user',12,'0',0,0),(112,234,'user',12,'0',0,1),(113,235,'user',12,'0',0,1),(114,236,'user',4,'0',0,0),(115,237,'user',13,'0',0,0),(116,237,'user',16,'0',0,0),(117,237,'user',18,'0',0,0),(118,238,'user',12,'0',0,1),(119,238,'user',3,'0',0,1),(120,238,'user',10,'0',0,1),(121,239,'user',12,'0',0,0),(123,240,'user',12,'0',0,1),(125,242,'user',12,'0',0,0),(126,243,'user',12,'0',0,0),(128,245,'user',12,'0',0,0),(132,249,'user',12,'0',0,0),(133,250,'user',12,'0',0,0),(134,251,'user',12,'0',0,0),(135,252,'user',12,'0',0,0),(136,253,'user',12,'0',0,0),(137,254,'user',12,'0',0,0),(138,255,'user',12,'0',0,0),(139,256,'user',12,'0',0,0),(140,257,'user',12,'0',0,0),(146,263,'user',12,'0',0,0),(147,264,'user',12,'0',0,0),(148,265,'user',12,'0',0,0),(149,266,'user',12,'0',0,0),(150,267,'user',12,'0',0,0),(151,268,'user',12,'0',0,0),(152,269,'user',12,'0',0,0),(153,270,'user',12,'0',0,0),(154,271,'user',12,'0',0,0),(155,272,'user',12,'0',0,0),(156,273,'user',12,'0',0,0),(157,274,'user',12,'0',0,0),(158,275,'user',12,'0',0,0),(160,277,'user',12,'0',0,0),(161,278,'user',12,'0',0,0),(162,279,'user',12,'0',0,0),(164,281,'user',12,'0',0,0),(165,282,'user',12,'0',0,0),(166,283,'user',12,'0',0,0),(167,284,'user',12,'0',0,0),(168,285,'user',12,'0',0,0),(169,286,'user',12,'0',0,0),(170,287,'user',12,'0',0,0),(171,288,'user',12,'0',0,0),(177,294,'user',12,'0',0,0),(178,295,'user',12,'0',0,0),(179,296,'user',12,'0',0,0),(180,297,'user',12,'0',0,0),(181,298,'user',1,'0',0,0),(182,299,'user',2,'0',0,0),(183,300,'user',1,'0',0,0),(184,301,'user',2,'0',0,0),(185,302,'user',2,'0',0,0),(186,303,'user',2,'0',0,0),(187,304,'user',1,'0',0,0),(188,305,'user',2,'0',0,0),(189,306,'user',2,'0',0,0),(190,307,'user',1,'0',0,0),(191,308,'user',1,'0',0,0),(192,309,'user',1,'0',0,0),(193,310,'user',2,'0',0,0),(194,311,'user',2,'0',0,0),(195,312,'user',1,'0',0,0),(196,313,'user',2,'0',0,0),(197,314,'user',1,'0',0,0),(198,315,'user',2,'0',0,0),(199,316,'user',2,'0',0,0),(200,317,'user',2,'0',0,0),(201,318,'user',1,'0',0,0),(202,319,'user',2,'0',0,0),(203,320,'user',12,'0',0,0),(204,321,'user',12,'0',0,0),(205,322,'user',12,'0',0,0),(206,323,'user',12,'0',0,0),(207,324,'user',12,'0',0,0),(208,325,'user',12,'0',0,0),(209,326,'user',12,'0',0,0),(210,327,'user',12,'0',0,0),(211,328,'user',12,'0',0,0),(212,24,'socpeople',2,NULL,NULL,1),(213,235,'socpeople',2,NULL,NULL,1),(214,238,'socpeople',10,NULL,NULL,1),(215,327,'socpeople',12,NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_actioncomm_resources` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_adherent`
    +--
    +
    +DROP TABLE IF EXISTS `llx_adherent`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_adherent` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `civility` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `login` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass_crypted` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_adherent_type` int(11) NOT NULL,
    +  `morphy` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
    +  `societe` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `address` text COLLATE utf8_unicode_ci,
    +  `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `state_id` int(11) DEFAULT NULL,
    +  `country` int(11) DEFAULT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `skype` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone_perso` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone_mobile` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `birth` date DEFAULT NULL,
    +  `photo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `public` smallint(6) NOT NULL DEFAULT '0',
    +  `datefin` datetime DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `datevalid` datetime DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_adherent_login` (`login`,`entity`),
    +  UNIQUE KEY `uk_adherent_fk_soc` (`fk_soc`),
    +  KEY `idx_adherent_fk_adherent_type` (`fk_adherent_type`),
    +  CONSTRAINT `adherent_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_adherent_adherent_type` FOREIGN KEY (`fk_adherent_type`) REFERENCES `llx_adherent_type` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_adherent`
    +--
    +
    +LOCK TABLES `llx_adherent` WRITE;
    +/*!40000 ALTER TABLE `llx_adherent` DISABLE KEYS */;
    +INSERT INTO `llx_adherent` VALUES (1,1,NULL,NULL,'Smith','Vick','vsmith','vsx1n8tf',NULL,2,'phy',NULL,10,NULL,NULL,NULL,NULL,102,'vsmith@email.com',NULL,NULL,NULL,NULL,'1960-07-07',NULL,1,0,'2012-07-09 00:00:00',NULL,NULL,'2010-07-10 15:12:56','2010-07-08 23:50:00','2013-03-20 13:30:11',1,1,1,NULL,NULL,NULL),(2,1,NULL,NULL,'Curie','Pierre','pcurie','pcuriedolibarr',NULL,2,'phy',NULL,12,NULL,NULL,NULL,NULL,1,'pcurie@example.com','',NULL,NULL,NULL,'1972-07-08',NULL,1,1,'2017-07-17 00:00:00',NULL,NULL,'2010-07-10 15:03:32','2010-07-10 15:03:09','2015-10-05 19:57:57',1,12,1,NULL,NULL,NULL),(3,1,NULL,NULL,'john','doe','john','8bs6gty5',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,1,'johndoe@email.com',NULL,NULL,NULL,NULL,NULL,NULL,1,0,NULL,NULL,NULL,'2011-07-18 21:28:00','2011-07-18 21:10:09','2015-10-03 09:28:46',1,1,1,NULL,NULL,NULL),(4,1,NULL,NULL,'smith','smith','Smith','s6hjp10f',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,11,'smith@email.com',NULL,NULL,NULL,NULL,NULL,NULL,1,0,NULL,NULL,NULL,'2011-07-18 21:27:52','2011-07-18 21:27:44','2015-10-03 09:40:27',1,1,1,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_adherent` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_adherent_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_adherent_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_adherent_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `zzz` varchar(125) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `aaa` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `sssss` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_adherent_options` (`fk_object`),
    +  KEY `idx_adherent_extrafields` (`fk_object`)
    +) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_adherent_extrafields`
    +--
    +
    +LOCK TABLES `llx_adherent_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_adherent_extrafields` DISABLE KEYS */;
    +INSERT INTO `llx_adherent_extrafields` VALUES (62,'2011-07-18 19:10:09',3,NULL,NULL,NULL,NULL),(63,'2011-07-18 19:27:44',4,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_adherent_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_adherent_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_adherent_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_adherent_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `libelle` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `subscription` varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
    +  `vote` varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'yes',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `mail_valid` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_adherent_type_libelle` (`libelle`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_adherent_type`
    +--
    +
    +LOCK TABLES `llx_adherent_type` WRITE;
    +/*!40000 ALTER TABLE `llx_adherent_type` DISABLE KEYS */;
    +INSERT INTO `llx_adherent_type` VALUES (1,1,'2010-07-08 21:41:55',1,'Board members','1','1','','<br />'),(2,1,'2010-07-08 21:41:43',1,'Standard members','1','0','','<br />');
    +/*!40000 ALTER TABLE `llx_adherent_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_adherent_type_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_adherent_type_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_adherent_type_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_adherent_type_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_adherent_type_extrafields`
    +--
    +
    +LOCK TABLES `llx_adherent_type_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_adherent_type_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_adherent_type_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_advtargetemailing`
    +--
    +
    +DROP TABLE IF EXISTS `llx_advtargetemailing`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_advtargetemailing` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `filtervalue` text COLLATE utf8_unicode_ci,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_element` int(11) NOT NULL,
    +  `type_element` varchar(180) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_advtargetemailing_name` (`name`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_advtargetemailing`
    +--
    +
    +LOCK TABLES `llx_advtargetemailing` WRITE;
    +/*!40000 ALTER TABLE `llx_advtargetemailing` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_advtargetemailing` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_calendrier`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_calendrier`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_calendrier` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `day_session` int(11) NOT NULL,
    +  `heured` varchar(5) NOT NULL,
    +  `heuref` varchar(5) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_calendrier`
    +--
    +
    +LOCK TABLES `llx_agefodd_calendrier` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_calendrier` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_calendrier` VALUES (1,1,1,'09:00','12:00',1,'2013-10-13 19:23:12',1,'2013-10-13 15:23:12'),(2,1,1,'14:00','18:00',1,'2013-10-13 19:23:25',1,'2013-10-13 15:23:25'),(3,1,2,'09:00','12:00',1,'2013-10-13 19:23:12',1,'2013-10-13 15:23:12'),(4,1,2,'14:00','18:00',1,'2013-10-13 19:23:25',1,'2013-10-13 15:23:25'),(5,1,3,'09:00','12:00',1,'2013-10-13 19:23:12',1,'2013-10-13 15:23:12'),(6,1,3,'14:00','18:00',1,'2013-10-13 19:23:25',1,'2013-10-13 15:23:25'),(7,1,4,'09:00','12:00',1,'2013-10-13 19:23:12',1,'2013-10-13 15:23:12'),(8,1,4,'14:00','18:00',1,'2013-10-13 19:23:25',1,'2013-10-13 15:23:25');
    +/*!40000 ALTER TABLE `llx_agefodd_calendrier` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_certif_state`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_certif_state`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_certif_state` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_certif` int(11) NOT NULL,
    +  `fk_certif_type` int(11) NOT NULL,
    +  `certif_state` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_certif_state`
    +--
    +
    +LOCK TABLES `llx_agefodd_certif_state` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_certif_state` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_certif_state` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_certificate_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_certificate_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_certificate_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `intitule` varchar(80) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_certificate_type`
    +--
    +
    +LOCK TABLES `llx_agefodd_certificate_type` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_certificate_type` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_certificate_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_contact`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_contact`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_contact` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_socpeople` int(11) NOT NULL,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_contact_fk_socpeople` (`fk_socpeople`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_contact`
    +--
    +
    +LOCK TABLES `llx_agefodd_contact` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_contact` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_contact` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_convention`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_convention`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_convention` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_agefodd_session` int(11) NOT NULL,
    +  `fk_societe` int(11) NOT NULL,
    +  `element_type` varchar(50) DEFAULT NULL,
    +  `fk_element` int(11) DEFAULT NULL,
    +  `model_doc` varchar(200) DEFAULT NULL,
    +  `intro1` text NOT NULL,
    +  `intro2` text NOT NULL,
    +  `art1` text NOT NULL,
    +  `art2` text NOT NULL,
    +  `art3` text NOT NULL,
    +  `art4` text NOT NULL,
    +  `art5` text NOT NULL,
    +  `art6` text NOT NULL,
    +  `art7` text NOT NULL,
    +  `art8` text NOT NULL,
    +  `art9` text NOT NULL,
    +  `sig` text,
    +  `only_product_session` int(11) DEFAULT '0',
    +  `notes` text NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_fk_agefodd_session_conv` (`fk_agefodd_session`),
    +  KEY `idx_fk_societe_conv` (`fk_societe`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_convention`
    +--
    +
    +LOCK TABLES `llx_agefodd_convention` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_convention` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_convention` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_convention_stagiaire`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_convention_stagiaire`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_convention_stagiaire` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_agefodd_convention` int(11) NOT NULL,
    +  `fk_agefodd_session_stagiaire` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_agefodd_convention_stagiaire_convsta` (`fk_agefodd_convention`,`fk_agefodd_session_stagiaire`),
    +  KEY `idx_fk_agefodd_session_stagiaire_conv` (`fk_agefodd_convention`),
    +  KEY `idx_fk_agefodd_session_stagiaire_convsta` (`fk_agefodd_session_stagiaire`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_convention_stagiaire`
    +--
    +
    +LOCK TABLES `llx_agefodd_convention_stagiaire` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_convention_stagiaire` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_convention_stagiaire` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_cursus`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_cursus`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_cursus` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref_interne` varchar(80) DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `intitule` varchar(80) NOT NULL,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `note_private` text,
    +  `note_public` text,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `archive_cursus` (`archive`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_cursus`
    +--
    +
    +LOCK TABLES `llx_agefodd_cursus` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_cursus` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_cursus` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_cursus_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_cursus_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_cursus_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_cursus_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_cursus_extrafields`
    +--
    +
    +LOCK TABLES `llx_agefodd_cursus_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_cursus_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_cursus_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formateur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formateur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formateur` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_socpeople` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `type_trainer` varchar(20) DEFAULT NULL,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_formateur_fk_socpeople` (`fk_socpeople`),
    +  KEY `idx_agefodd_formateur_fk_user` (`fk_user`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formateur`
    +--
    +
    +LOCK TABLES `llx_agefodd_formateur` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formateur_category`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formateur_category`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formateur_category` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_trainer` int(11) NOT NULL,
    +  `fk_category` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_formateur_category` (`fk_category`),
    +  KEY `llx_agefodd_formateur_category_trainer` (`fk_trainer`),
    +  CONSTRAINT `llx_agefodd_formateur_category` FOREIGN KEY (`fk_category`) REFERENCES `llx_agefodd_formateur_category_dict` (`rowid`),
    +  CONSTRAINT `llx_agefodd_formateur_category_trainer` FOREIGN KEY (`fk_trainer`) REFERENCES `llx_agefodd_formateur` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formateur_category`
    +--
    +
    +LOCK TABLES `llx_agefodd_formateur_category` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_category` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_category` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formateur_category_dict`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formateur_category_dict`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formateur_category_dict` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `code` varchar(20) NOT NULL,
    +  `label` varchar(100) DEFAULT NULL,
    +  `description` text,
    +  `active` smallint(6) NOT NULL DEFAULT '0',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formateur_category_dict`
    +--
    +
    +LOCK TABLES `llx_agefodd_formateur_category_dict` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_category_dict` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_category_dict` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formateur_training`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formateur_training`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formateur_training` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_trainer` int(11) NOT NULL,
    +  `fk_training` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_formateur_training_training` (`fk_training`),
    +  KEY `llx_agefodd_formateur_training_trainer` (`fk_trainer`),
    +  CONSTRAINT `llx_agefodd_formateur_training_trainer` FOREIGN KEY (`fk_trainer`) REFERENCES `llx_agefodd_formateur` (`rowid`),
    +  CONSTRAINT `llx_agefodd_formateur_training_training` FOREIGN KEY (`fk_training`) REFERENCES `llx_agefodd_formation_catalogue` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formateur_training`
    +--
    +
    +LOCK TABLES `llx_agefodd_formateur_training` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_training` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_training` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formateur_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formateur_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formateur_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `intitule` varchar(80) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formateur_type`
    +--
    +
    +LOCK TABLES `llx_agefodd_formateur_type` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_type` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_formateur_type` VALUES (1,'Formateur interne',0,1,'2017-03-23 11:00:00'),(2,'Formateur externe - Indépendant',1,1,'2017-03-23 11:00:00'),(3,'Formateur externe - Salarié',2,1,'2017-03-23 11:00:00'),(4,'Formateur externe - Sous traintance',2,1,'2017-03-23 11:00:00');
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_catalogue`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_catalogue`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_catalogue` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(40) NOT NULL,
    +  `ref_interne` varchar(100) DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `intitule` varchar(100) NOT NULL,
    +  `duree` double NOT NULL DEFAULT '0',
    +  `public` text,
    +  `methode` text,
    +  `but` text,
    +  `programme` text,
    +  `pedago_usage` text,
    +  `sanction` text,
    +  `prerequis` text,
    +  `note1` text,
    +  `note2` text,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `note_private` text,
    +  `note_public` text,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `nb_subscribe_min` int(11) DEFAULT NULL,
    +  `fk_c_category` int(11) DEFAULT NULL,
    +  `fk_c_category_bpf` int(11) DEFAULT NULL,
    +  `certif_duration` varchar(30) DEFAULT NULL,
    +  `qr_code_info` varchar(500) DEFAULT NULL,
    +  `color` varchar(32) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(36) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `ref_form_cat` (`ref`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_catalogue`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_catalogue` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_formation_catalogue` VALUES (1,'FOR_1809-0001','',1,'Formation AAA',14,'','','','',NULL,NULL,'','','',0,12,'2018-09-14 09:51:02',12,NULL,NULL,4,NULL,NULL,1,NULL,NULL,NULL,'2018-09-14 07:51:02',NULL);
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_catalogue_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_catalogue_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_catalogue_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_formation_catalogue_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_catalogue_extrafields`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_catalogue_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_catalogue_modules`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_catalogue_modules`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_catalogue_modules` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_formation_catalogue` int(11) NOT NULL,
    +  `sort_order` int(11) NOT NULL DEFAULT '1',
    +  `title` varchar(200) NOT NULL,
    +  `content_text` text,
    +  `duration` double DEFAULT NULL,
    +  `obj_peda` text,
    +  `status` int(11) NOT NULL DEFAULT '1',
    +  `import_key` varchar(100) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_catalogue_modules`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_catalogue_modules` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_modules` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_modules` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_catalogue_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_catalogue_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_catalogue_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) NOT NULL,
    +  `intitule` varchar(1000) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=93 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_catalogue_type`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_catalogue_type` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_type` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_formation_catalogue_type` VALUES (1,'100','Formations générales',1,1,'2017-03-23 11:00:00'),(2,'110','Spécialités pluriscientifiques',2,1,'2017-03-23 11:00:00'),(3,'111','Physique-chimie',3,1,'2017-03-23 11:00:00'),(4,'112','Chimie-biologie, biochimie',4,1,'2017-03-23 11:00:00'),(5,'113','Sciences naturelles (biologie-géologie)',5,1,'2017-03-23 11:00:00'),(6,'114','Mathématiques',6,1,'2017-03-23 11:00:00'),(7,'115','Physique',7,1,'2017-03-23 11:00:00'),(8,'116','Chimie',8,1,'2017-03-23 11:00:00'),(9,'117','Sciences de la terre',9,1,'2017-03-23 11:00:00'),(10,'118','Sciences de la vie',10,1,'2017-03-23 11:00:00'),(11,'120','Spécialités pluridisciplinaires, sciences humaines et droit',11,1,'2017-03-23 11:00:00'),(12,'121','Géographie',12,1,'2017-03-23 11:00:00'),(13,'122','Economie',13,1,'2017-03-23 11:00:00'),(14,'123','Sciences sociales (y compris démographie, anthropologie)',14,1,'2017-03-23 11:00:00'),(15,'124','Psychologie',15,1,'2017-03-23 11:00:00'),(16,'125','Linguistique',16,1,'2017-03-23 11:00:00'),(17,'126','Histoire',17,1,'2017-03-23 11:00:00'),(18,'127','Philosophie, éthique et théologie',18,1,'2017-03-23 11:00:00'),(19,'128','Droit, sciences politiques',19,1,'2017-03-23 11:00:00'),(20,'130','Spécialités littéraires et artistiques plurivalentes',20,1,'2017-03-23 11:00:00'),(21,'131','Français, littérature et civilisation française',21,1,'2017-03-23 11:00:00'),(22,'132','Arts plastiques',22,1,'2017-03-23 11:00:00'),(23,'133','Musique, arts du spectacle',23,1,'2017-03-23 11:00:00'),(24,'134','Autres disciplines artistiques et spécialités artistiques plurivalentes',24,1,'2017-03-23 11:00:00'),(25,'135','Langues et civilisations anciennes',25,1,'2017-03-23 11:00:00'),(26,'136','Langues vivantes, civilisations étrangères et régionales',26,1,'2017-03-23 11:00:00'),(27,'200','Technologies industrielles fondamentales (génie industriel, procédés de Transformation, spécialités à dominante fonctionnelle)',27,1,'2017-03-23 11:00:00'),(28,'201','Technologies de commandes des transformations industriels (automatismes et robotique industriels, informatique industrielle)',28,1,'2017-03-23 11:00:00'),(29,'210','Spécialités plurivalentes de l\'agronomie et de l\'agriculture',29,1,'2017-03-23 11:00:00'),(30,'211','Productions végétales, cultures spécialisées (horticulture, viticulture,arboriculture fruitière…)',30,1,'2017-03-23 11:00:00'),(31,'212','Productions animales, élevage spécialisé, aquaculture, soins aux animaux,y compris vétérinaire',31,1,'2017-03-23 11:00:00'),(32,'213','Forêts, espaces naturels, faune sauvage, pêche',32,1,'2017-03-23 11:00:00'),(33,'214','Aménagement paysager (parcs, jardins, espaces verts ...)',33,1,'2017-03-23 11:00:00'),(34,'220','Spécialités pluritechnologiques des transformations',34,1,'2017-03-23 11:00:00'),(35,'221','Agro-alimentaire, alimentation, cuisine',35,1,'2017-03-23 11:00:00'),(36,'222','Transformations chimiques et apparentées (y compris industrie pharmaceutique)',36,1,'2017-03-23 11:00:00'),(37,'223','Métallurgie (y compris sidérurgie, fonderie, non ferreux...)',37,1,'2017-03-23 11:00:00'),(38,'224','Matériaux de construction, verre, céramique',38,1,'2017-03-23 11:00:00'),(39,'225','Plasturgie, matériaux composites',39,1,'2017-03-23 11:00:00'),(40,'226','Papier, carton',40,1,'2017-03-23 11:00:00'),(41,'227','Energie, génie climatique (y compris énergie nucléaire, thermique, hydraulique ;',41,1,'2017-03-23 11:00:00'),(42,'230','Spécialités génie civil, , pluritechnologiques, construction, bois',42,1,'2017-03-23 11:00:00'),(43,'231','Mines et carrières, génie civil, topographie',43,1,'2017-03-23 11:00:00'),(44,'232','Bâtiment : construction et couverture',44,1,'2017-03-23 11:00:00'),(45,'233','Bâtiment : finitions',45,1,'2017-03-23 11:00:00'),(46,'234','Travail du bois et de l\'ameublement',46,1,'2017-03-23 11:00:00'),(47,'240','Spécialités pluritechnologiques matériaux souples',47,1,'2017-03-23 11:00:00'),(48,'241','Textile',48,1,'2017-03-23 11:00:00'),(49,'242','Habillement (y compris mode, couture)',49,1,'2017-03-23 11:00:00'),(50,'243','Cuirs et peaux',50,1,'2017-03-23 11:00:00'),(51,'250','Spécialités pluritechnologiques mécanique-électricité (y compris maintenance mécano-électrique)',51,1,'2017-03-23 11:00:00'),(52,'251','Mécanique générale et de précision, usinage',52,1,'2017-03-23 11:00:00'),(53,'252','Moteurs et mécanique auto',53,1,'2017-03-23 11:00:00'),(54,'253','Mécanique aéronautique et spatiale',54,1,'2017-03-23 11:00:00'),(55,'254','Structures métalliques (y compris soudure, carrosserie, coque bateau, cellule, avion',55,1,'2017-03-23 11:00:00'),(56,'255','Electricité, électronique (non compris automatismes, productique)',56,1,'2017-03-23 11:00:00'),(57,'300','Spécialités plurivalentes des services',57,1,'2017-03-23 11:00:00'),(58,'310','Spécialités plurivalentes des échanges et de la gestion (y compris administration générale des entreprises et des collectivités)',58,1,'2017-03-23 11:00:00'),(59,'311','Transports, manutention, magasinage',59,1,'2017-03-23 11:00:00'),(60,'312','Commerce, vente',60,1,'2017-03-23 11:00:00'),(61,'313','Finances, banque, assurances',61,1,'2017-03-23 11:00:00'),(62,'314','Comptabilité, gestion',62,1,'2017-03-23 11:00:00'),(63,'315','Ressources humaines, gestion du personnel, gestion de l\'emploi',63,1,'2017-03-23 11:00:00'),(64,'320','Spécialités plurivalentes de la communication',64,1,'2017-03-23 11:00:00'),(65,'321','Journalisme, communication (y compris communication graphique et publicité)',65,1,'2017-03-23 11:00:00'),(66,'322','Techniques de l\'imprimerie et de l\'édition',66,1,'2017-03-23 11:00:00'),(67,'323','Techniques de l\'image et du son, métiers connexes du spectacle',67,1,'2017-03-23 11:00:00'),(68,'324','Secrétariat, bureautique',68,1,'2017-03-23 11:00:00'),(69,'325','Documentation, bibliothèques, administration des données',69,1,'2017-03-23 11:00:00'),(70,'326','Informatique, traitement de l\'information, réseaux de transmission des données',70,1,'2017-03-23 11:00:00'),(71,'330','Spécialités plurivalentes sanitaires et sociales',71,1,'2017-03-23 11:00:00'),(72,'331','Santé',72,1,'2017-03-23 11:00:00'),(73,'332','Travail social',73,1,'2017-03-23 11:00:00'),(74,'333','Enseignement, formation',74,1,'2017-03-23 11:00:00'),(75,'334','Accueil, hôtellerie, tourisme',75,1,'2017-03-23 11:00:00'),(76,'335','Animation culturelle, sportive et de loisirs',76,1,'2017-03-23 11:00:00'),(77,'336','Coiffure, esthétique et autres spécialités des services aux personnes',77,1,'2017-03-23 11:00:00'),(78,'341','Aménagement du territoire, développement, urbanisme',78,1,'2017-03-23 11:00:00'),(79,'342','Protection et développement du patrimoine',79,1,'2017-03-23 11:00:00'),(80,'343','Nettoyage, assainissement, protection de l\'environnement',80,1,'2017-03-23 11:00:00'),(81,'344','Sécurité des biens et des personnes, police, surveillance (y compris hygiène et sécurité)',81,1,'2017-03-23 11:00:00'),(82,'345','Application des droits et statut des personnes',82,1,'2017-03-23 11:00:00'),(83,'346','Spécialités militaires',83,1,'2017-03-23 11:00:00'),(84,'410','Spécialités concernant plusieurs capacités',84,1,'2017-03-23 11:00:00'),(85,'411','Pratiques sportives (y compris : arts martiaux)',85,1,'2017-03-23 11:00:00'),(86,'412','Développement des capacités mentales et apprentissages de base',86,1,'2017-03-23 11:00:00'),(87,'413','Développement des capacités comportementales et relationnelles',87,1,'2017-03-23 11:00:00'),(88,'414','Développement des capacités individuelles d\'organisation',88,1,'2017-03-23 11:00:00'),(89,'415','Développement des capacités d\'orientation, d\'insertion ou de réinsertion sociales',89,1,'2017-03-23 11:00:00'),(90,'421','Jeux et activités spécifiques de loisirs',90,1,'2017-03-23 11:00:00'),(91,'422','Economie et activités domestiques',91,1,'2017-03-23 11:00:00'),(92,'423','Vie familiale, vie sociale et autres formations au développement personne',92,1,'2017-03-23 11:00:00');
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_catalogue_type_bpf`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_catalogue_type_bpf`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_catalogue_type_bpf` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) NOT NULL,
    +  `intitule` varchar(1000) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_catalogue_type_bpf`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_catalogue_type_bpf` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_type_bpf` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_formation_catalogue_type_bpf` VALUES (1,'F3a1','Formations visant un diplôme ou un titre à finalité professionnelle (hors certificat de qualification professionnelle) inscrit au Répertoire national des certifications professionnelles (RNCP)',0,1,'2017-03-23 11:00:00'),(2,'F3a2','dont de niveau I et II (licence, maîtrise, master, DEA, DESS, diplôme d’ingénieur)',1,1,'2017-03-23 11:00:00'),(3,'F3a3','dont de niveau III (BTS, DUT, écoles de formation sanitaire et sociale ...)',2,1,'2017-03-23 11:00:00'),(4,'F3a4','dont de niveau IV (BAC professionnel, BT, BP, BM...)',3,1,'2017-03-23 11:00:00'),(5,'F3a5','dont de niveau V (BEP, CAP ou CFPA 1 er degré...)',4,1,'2017-03-23 11:00:00'),(6,'F3b','Formations visant un certificat de qualification professionnelle (CQP)',5,1,'2017-03-23 11:00:00'),(7,'F3c','Formations visant une certification et/ou une habilitation inscrite à l’inventaire de la CNCP',6,1,'2017-03-23 11:00:00'),(8,'F3d','Autres formations professionnelles continues',7,1,'2017-03-23 11:00:00'),(9,'F3e','Bilans de compétence',8,1,'2017-03-23 11:00:00'),(10,'F3f','Actions d’accompagnement à la validation des acquis de l’expérience',9,1,'2017-03-23 11:00:00');
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_type_bpf` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_cursus`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_cursus`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_cursus` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_formation_catalogue` int(11) NOT NULL,
    +  `fk_cursus` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_agefodd_formation_cursus` (`fk_formation_catalogue`,`fk_cursus`),
    +  KEY `llx_agefodd_formation_cursus_ibfk_2` (`fk_cursus`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_cursus`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_cursus` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_cursus` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_cursus` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_objectifs_peda`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_objectifs_peda`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_objectifs_peda` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_formation_catalogue` int(11) NOT NULL,
    +  `intitule` varchar(500) NOT NULL,
    +  `priorite` smallint(6) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_formation_catalogue_obj_peda` (`fk_formation_catalogue`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_objectifs_peda`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_objectifs_peda` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_objectifs_peda` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_objectifs_peda` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_opca`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_opca`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_opca` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session_trainee` int(11) NOT NULL,
    +  `fk_soc_trainee` int(11) NOT NULL,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `date_ask_OPCA` datetime DEFAULT NULL,
    +  `is_date_ask_OPCA` smallint(6) NOT NULL DEFAULT '0',
    +  `is_OPCA` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_soc_OPCA` int(11) DEFAULT NULL,
    +  `fk_socpeople_OPCA` int(11) DEFAULT NULL,
    +  `num_OPCA_soc` varchar(100) DEFAULT NULL,
    +  `num_OPCA_file` varchar(100) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_opca`
    +--
    +
    +LOCK TABLES `llx_agefodd_opca` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_opca` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_opca` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_place`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_place`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_place` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref_interne` varchar(80) NOT NULL,
    +  `adresse` varchar(255) DEFAULT NULL,
    +  `cp` varchar(10) DEFAULT NULL,
    +  `ville` varchar(50) DEFAULT NULL,
    +  `fk_pays` int(11) DEFAULT NULL,
    +  `tel` varchar(20) DEFAULT NULL,
    +  `fk_societe` int(11) NOT NULL,
    +  `fk_socpeople` int(11) DEFAULT NULL,
    +  `timeschedule` text,
    +  `control_occupation` smallint(6) NOT NULL DEFAULT '0',
    +  `notes` text,
    +  `acces_site` text,
    +  `note1` text,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_reg_interieur` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_session_ibfk_1` (`fk_pays`),
    +  KEY `archive_place` (`archive`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_place`
    +--
    +
    +LOCK TABLES `llx_agefodd_place` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_place` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_place` VALUES (1,'Salle 1',NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,0,'','','',0,NULL,12,'2018-09-14 09:53:15',12,'2018-09-14 07:53:15',1);
    +/*!40000 ALTER TABLE `llx_agefodd_place` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_reg_interieur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_reg_interieur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_reg_interieur` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `reg_int` text,
    +  `notes` tinytext NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_reg_interieur`
    +--
    +
    +LOCK TABLES `llx_agefodd_reg_interieur` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_reg_interieur` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_reg_interieur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(40) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_soc_requester` int(11) DEFAULT NULL,
    +  `fk_socpeople_requester` int(11) DEFAULT NULL,
    +  `fk_formation_catalogue` int(11) NOT NULL,
    +  `fk_session_place` int(11) NOT NULL,
    +  `type_session` int(11) DEFAULT NULL,
    +  `nb_place` int(11) DEFAULT NULL,
    +  `nb_stagiaire` int(11) DEFAULT NULL,
    +  `force_nb_stagiaire` int(11) DEFAULT NULL,
    +  `nb_subscribe_min` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `dated` datetime DEFAULT NULL,
    +  `datef` datetime DEFAULT NULL,
    +  `notes` text NOT NULL,
    +  `color` varchar(32) DEFAULT NULL,
    +  `cost_trainer` double(24,8) DEFAULT '0.00000000',
    +  `cost_site` double(24,8) DEFAULT '0.00000000',
    +  `cost_trip` double(24,8) DEFAULT NULL,
    +  `sell_price` double(24,8) DEFAULT '0.00000000',
    +  `invoice_amount` double(24,8) DEFAULT '0.00000000',
    +  `cost_buy_charges` double(24,8) DEFAULT '0.00000000',
    +  `cost_sell_charges` double(24,8) DEFAULT '0.00000000',
    +  `is_date_res_site` smallint(6) NOT NULL DEFAULT '0',
    +  `date_res_site` datetime DEFAULT NULL,
    +  `is_date_res_confirm_site` smallint(6) NOT NULL DEFAULT '0',
    +  `date_res_confirm_site` datetime DEFAULT NULL,
    +  `is_date_res_trainer` smallint(6) NOT NULL DEFAULT '0',
    +  `date_res_trainer` datetime DEFAULT NULL,
    +  `date_ask_OPCA` datetime DEFAULT NULL,
    +  `is_date_ask_OPCA` smallint(6) NOT NULL DEFAULT '0',
    +  `is_OPCA` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_soc_OPCA` int(11) DEFAULT NULL,
    +  `fk_socpeople_OPCA` int(11) DEFAULT NULL,
    +  `fk_socpeople_presta` int(11) DEFAULT NULL,
    +  `fk_soc_employer` int(11) DEFAULT NULL,
    +  `num_OPCA_soc` varchar(100) DEFAULT NULL,
    +  `num_OPCA_file` varchar(100) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `status` int(11) DEFAULT NULL,
    +  `duree_session` double NOT NULL DEFAULT '0',
    +  `intitule_custo` varchar(100) DEFAULT NULL,
    +  `import_key` varchar(36) DEFAULT NULL,
    +  `ref_ext` varchar(50) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_formation_catalogue_ibfk_1` (`fk_formation_catalogue`),
    +  KEY `llx_agefodd_session_place_ibfk_1` (`fk_session_place`),
    +  KEY `fk_soc_session` (`fk_soc`),
    +  KEY `idx_agefodd_session_status` (`status`),
    +  KEY `fk_soc_requester_session` (`fk_soc_requester`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session`
    +--
    +
    +LOCK TABLES `llx_agefodd_session` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_session` VALUES (1,'SES1809-0001',1,221,-1,NULL,1,1,0,5,NULL,NULL,NULL,4,NULL,NULL,'',NULL,0.00000000,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,0,NULL,0,NULL,NULL,0,0,NULL,NULL,NULL,-1,NULL,NULL,12,'2018-09-14 09:53:42',12,'2018-09-14 07:53:42',1,14,'Formation AAA',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_agefodd_session` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_adminsitu`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_adminsitu`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_adminsitu` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_agefodd_session_admlevel` int(11) NOT NULL DEFAULT '0',
    +  `fk_agefodd_session` int(11) NOT NULL,
    +  `intitule` varchar(500) DEFAULT NULL,
    +  `delais_alerte` int(11) NOT NULL,
    +  `indice` int(11) NOT NULL,
    +  `level_rank` int(11) NOT NULL DEFAULT '0',
    +  `fk_parent_level` int(11) DEFAULT '0',
    +  `dated` datetime DEFAULT NULL,
    +  `datef` datetime NOT NULL,
    +  `datea` datetime NOT NULL,
    +  `notes` text NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `trigger_name` varchar(150) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_agefodd_session_adminsitu` (`fk_agefodd_session`),
    +  KEY `idx_agefodd_session_adminsitu_fk_parent_level` (`fk_parent_level`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_adminsitu`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_adminsitu` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_adminsitu` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_adminsitu` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_admlevel`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_admlevel`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_admlevel` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `level_rank` int(11) NOT NULL DEFAULT '0',
    +  `fk_parent_level` int(11) DEFAULT '0',
    +  `indice` int(11) NOT NULL,
    +  `intitule` varchar(500) NOT NULL,
    +  `delais_alerte` int(11) NOT NULL,
    +  `delais_alerte_end` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `trigger_name` varchar(150) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_session_admlevel_fk_parent_level` (`fk_parent_level`)
    +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_admlevel`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_admlevel` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_admlevel` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_session_admlevel` VALUES (1,0,0,100,'Préparation de l\'action',-40,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(2,1,1,101,'Inscription des stagiaires',-31,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(3,0,0,200,'Transmission de la convention de formation',-30,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(4,1,3,201,'Impression convention et vérification',-31,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(5,1,3,202,'Envoi convention (VP ou numérique avec AC)',-30,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(6,0,0,300,'Envoi des convocations',-15,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(7,1,6,301,'Préparation du dossier<br>(convoc., rég. intérieur, programme, fiche péda, conseils pratiques)',-15,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(8,1,6,302,'Envoi du dossier à chaque stagiaire (inter) ou au respo. formation (intra)',-15,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(9,0,0,400,'Vérifications et mise en place des moyens',-10,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(10,1,9,401,'Vérification du retour de la convention signée',-10,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(11,0,0,500,'Execution de la prestation',0,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(12,0,0,600,'Cloture administrative',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(13,1,12,601,'Impression des attestations',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(14,1,12,602,'Creation de la facture et verification',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(15,1,12,603,'Création du courrier d\'accompagnement',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(16,1,12,604,'Impression de la liasse administrative',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(17,1,12,605,'Envoi de la liasse administrative',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL);
    +/*!40000 ALTER TABLE `llx_agefodd_session_admlevel` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_calendrier`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_calendrier`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_calendrier` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_agefodd_session` int(11) NOT NULL,
    +  `date_session` date NOT NULL,
    +  `heured` datetime NOT NULL,
    +  `heuref` datetime NOT NULL,
    +  `fk_actioncomm` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_fk_agefodd_session_cal` (`fk_agefodd_session`),
    +  KEY `idx_fk_agefodd_session_act_cal` (`fk_actioncomm`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_calendrier`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_calendrier` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_calendrier` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_calendrier` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_commercial`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_commercial`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_commercial` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `fk_user_com` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_session_commercial_ibfk_2` (`fk_user_com`),
    +  KEY `fk_session_sess_comm` (`fk_session_agefodd`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_commercial`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_commercial` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_commercial` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_session_commercial` VALUES (1,1,12,12,'2018-09-14 09:53:42',12,'2018-09-14 07:53:42');
    +/*!40000 ALTER TABLE `llx_agefodd_session_commercial` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_contact`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_contact`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_contact` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `fk_agefodd_contact` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_session_contact_ibfk_2` (`fk_agefodd_contact`),
    +  KEY `fk_session_sess_contact` (`fk_session_agefodd`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_contact`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_contact` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_contact` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_contact` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_element`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_element`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_element` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `element_type` varchar(50) NOT NULL,
    +  `fk_element` int(11) NOT NULL,
    +  `fk_sub_element` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_agefodd_session_element` (`fk_session_agefodd`,`fk_element`,`element_type`,`fk_soc`),
    +  KEY `fk_session_element` (`fk_session_agefodd`),
    +  KEY `idxagefodd_session_element_fk_element` (`fk_element`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_element`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_element` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_element` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_element` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_session_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_extrafields`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_formateur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_formateur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_formateur` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session` int(11) NOT NULL,
    +  `fk_agefodd_formateur` int(11) NOT NULL,
    +  `fk_agefodd_formateur_type` int(11) DEFAULT NULL,
    +  `trainer_status` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_session_sess_form` (`fk_session`),
    +  KEY `idx_fk_agefodd_sess_formateur` (`fk_agefodd_formateur`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_formateur`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_formateur` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_formateur` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_formateur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_formateur_calendrier`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_formateur_calendrier`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_formateur_calendrier` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_agefodd_session_formateur` int(11) NOT NULL,
    +  `date_session` date NOT NULL,
    +  `heured` datetime NOT NULL,
    +  `heuref` datetime NOT NULL,
    +  `trainer_cost` double DEFAULT NULL,
    +  `trainer_status` int(11) DEFAULT NULL,
    +  `fk_actioncomm` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_agefodd_session_formateur_sta` (`fk_agefodd_session_formateur`),
    +  KEY `fk_actioncomm_sta` (`fk_actioncomm`),
    +  KEY `fk_user_author_sta` (`fk_user_author`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_formateur_calendrier`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_formateur_calendrier` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_formateur_calendrier` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_formateur_calendrier` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_stagiaire`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_stagiaire`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_stagiaire` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `fk_stagiaire` int(11) NOT NULL,
    +  `fk_agefodd_stagiaire_type` int(11) NOT NULL,
    +  `fk_soc_link` int(11) DEFAULT NULL,
    +  `fk_socpeople_sign` int(11) DEFAULT NULL,
    +  `fk_soc_requester` int(11) DEFAULT NULL,
    +  `status_in_session` int(11) DEFAULT NULL,
    +  `hour_foad` double DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `dt_acknowledgement` timestamp NULL DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_session_stagiaire_ibfk_2` (`fk_stagiaire`),
    +  KEY `fk_session_sess_sta` (`fk_session_agefodd`),
    +  KEY `fk_agefodd_stagiaire_type_sess_sta` (`fk_agefodd_stagiaire_type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_stagiaire`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_stagiaire` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_stagiaire` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_stagiaire` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_stagiaire_heures`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_stagiaire_heures`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_stagiaire_heures` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_stagiaire` int(11) NOT NULL,
    +  `fk_session` int(11) NOT NULL,
    +  `fk_calendrier` int(11) NOT NULL,
    +  `heures` float NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_stagiaire_heures`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_stagiaire_heures` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_stagiaire_heures` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_stagiaire_heures` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_status_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_status_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_status_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) NOT NULL,
    +  `intitule` varchar(80) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_status_type`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_status_type` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_status_type` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_session_status_type` VALUES (1,'ENV','Envisagée',1,1,'2012-12-31 23:00:00'),(2,'CONF','Confirmée client',2,1,'2012-12-31 23:00:00'),(3,'NOT','Non réalisée',6,1,'2012-12-31 23:00:00'),(4,'ARCH','Archivée',7,1,'2012-12-31 23:00:00'),(5,'DONE','Réalisée',5,1,'2012-12-31 23:00:00'),(6,'ONGOING','En cours',4,1,'2012-12-31 23:00:00');
    +/*!40000 ALTER TABLE `llx_agefodd_session_status_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_stagiaire`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_stagiaire`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_stagiaire` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `nom` varchar(50) NOT NULL,
    +  `prenom` varchar(50) NOT NULL,
    +  `civilite` varchar(6) NOT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_socpeople` int(11) DEFAULT NULL,
    +  `fonction` varchar(80) DEFAULT NULL,
    +  `tel1` varchar(30) DEFAULT NULL,
    +  `tel2` varchar(30) DEFAULT NULL,
    +  `mail` varchar(100) DEFAULT NULL,
    +  `date_birth` datetime DEFAULT NULL,
    +  `place_birth` varchar(100) DEFAULT NULL,
    +  `note` text,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `nom_sta` (`nom`),
    +  KEY `fk_soc_sta` (`fk_soc`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_stagiaire`
    +--
    +
    +LOCK TABLES `llx_agefodd_stagiaire` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_stagiaire_certif`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_stagiaire_certif`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_stagiaire_certif` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_stagiaire` int(11) NOT NULL,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `fk_session_stagiaire` int(11) NOT NULL,
    +  `certif_code` varchar(200) NOT NULL,
    +  `certif_label` varchar(200) NOT NULL,
    +  `certif_dt_start` datetime NOT NULL,
    +  `certif_dt_end` datetime NOT NULL,
    +  `certif_dt_warning` datetime DEFAULT NULL,
    +  `mark` varchar(20) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_stagiaire_certif`
    +--
    +
    +LOCK TABLES `llx_agefodd_stagiaire_certif` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_certif` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_certif` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_stagiaire_cursus`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_stagiaire_cursus`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_stagiaire_cursus` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_stagiaire` int(11) NOT NULL,
    +  `fk_cursus` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_stagiaire_cursus_ibfk_1` (`fk_cursus`),
    +  KEY `llx_agefodd_stagiaire_cursus_ibfk_2` (`fk_stagiaire`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_stagiaire_cursus`
    +--
    +
    +LOCK TABLES `llx_agefodd_stagiaire_cursus` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_cursus` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_cursus` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_stagiaire_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_stagiaire_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_stagiaire_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_stagiaire_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_stagiaire_extrafields`
    +--
    +
    +LOCK TABLES `llx_agefodd_stagiaire_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_stagiaire_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_stagiaire_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_stagiaire_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `intitule` varchar(255) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_stagiaire_type`
    +--
    +
    +LOCK TABLES `llx_agefodd_stagiaire_type` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_type` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_stagiaire_type` VALUES (1,'Financement par l\'employeur (contrat pro.)',2,1,'2017-03-23 11:00:00'),(2,'Financement par l\'employeur',1,1,'2017-03-23 11:00:00'),(3,'Dispositifs spécifiques pour les personnes en recherche d emploi financement publique',4,1,'2017-03-23 11:00:00'),(4,'Autre dispositifs (plan de formation, périodes de professionnalisation,...)',5,1,'2017-03-23 11:00:00'),(5,'Compte personnel de formation (CPF)',3,1,'2017-03-23 11:00:00'),(6,'Période PRO',99,0,'2017-03-23 11:00:00'),(7,'Congés individuel de formation (CIF)',2,1,'2017-03-23 11:00:00'),(8,'Fond d\'assurance formation de non-salariés',6,1,'2017-03-23 11:00:00'),(9,'Pouvoirs publics pour la formation de leurs agents',7,1,'2017-03-23 11:00:00'),(10,'Pouvoirs publics pour la formation de publics spécifiques : Instances européenne',8,1,'2017-03-23 11:00:00'),(11,'Pouvoirs publics pour la formation de publics spécifiques : Etat',9,1,'2017-03-23 11:00:00'),(12,'Pouvoirs publics pour la formation de publics spécifiques : Conseils régionaux',10,1,'2017-03-23 11:00:00'),(13,'Pouvoirs publics pour la formation de publics spécifiques : Pôle emploi',11,1,'2017-03-23 11:00:00'),(14,'Pouvoirs publics pour la formation de publics spécifiques : Autres ressources publique',12,1,'2017-03-23 11:00:00'),(15,'Contrats conclus avec des personnes à titre individuel et à leurs frais',13,1,'2017-03-23 11:00:00'),(16,'Contrats conclus avec d’autres organismes de formation',14,1,'2017-03-23 11:00:00'),(17,'Dispositifs spécifiques pour les personnes en recherche d\'emploi financement OPCA',4,1,'2017-03-23 11:00:00');
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_training_admlevel`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_training_admlevel`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_training_admlevel` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_agefodd_training_admlevel` int(11) NOT NULL DEFAULT '0',
    +  `fk_training` int(11) NOT NULL,
    +  `level_rank` int(11) NOT NULL DEFAULT '0',
    +  `fk_parent_level` int(11) DEFAULT '0',
    +  `indice` int(11) NOT NULL,
    +  `intitule` varchar(150) NOT NULL,
    +  `delais_alerte` int(11) NOT NULL,
    +  `delais_alerte_end` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `trigger_name` varchar(150) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_agefodd_training_admlevel` (`fk_training`),
    +  KEY `idx_agefodd_training_admlevel_fk_parent_level` (`fk_parent_level`)
    +) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_training_admlevel`
    +--
    +
    +LOCK TABLES `llx_agefodd_training_admlevel` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_training_admlevel` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_training_admlevel` VALUES (18,1,1,0,0,100,'Préparation de l\'action',-40,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(19,2,1,1,18,101,'Inscription des stagiaires',-31,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(20,3,1,0,0,200,'Transmission de la convention de formation',-30,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(21,4,1,1,20,201,'Impression convention et vérification',-31,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(22,5,1,1,20,202,'Envoi convention (VP ou numérique avec AC)',-30,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(23,6,1,0,0,300,'Envoi des convocations',-15,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(24,7,1,1,23,301,'Préparation du dossier<br>(convoc., rég. intérieur, programme, fiche péda, conseils pratiques)',-15,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(25,8,1,1,23,302,'Envoi du dossier à chaque stagiaire (inter) ou au respo. formation (intra)',-15,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(26,9,1,0,0,400,'Vérifications et mise en place des moyens',-10,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(27,10,1,1,26,401,'Vérification du retour de la convention signée',-10,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(28,11,1,0,0,500,'Execution de la prestation',0,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(29,12,1,0,0,600,'Cloture administrative',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(30,13,1,1,29,601,'Impression des attestations',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(31,14,1,1,29,602,'Creation de la facture et verification',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(32,15,1,1,29,603,'Création du courrier d\'accompagnement',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(33,16,1,1,29,604,'Impression de la liasse administrative',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(34,17,1,1,29,605,'Envoi de la liasse administrative',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL);
    +/*!40000 ALTER TABLE `llx_agefodd_training_admlevel` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(128) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_asset_type` int(11) NOT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `description` text,
    +  `note_public` text,
    +  `note_private` text,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_asset_rowid` (`rowid`),
    +  KEY `idx_asset_ref` (`ref`),
    +  KEY `idx_asset_entity` (`entity`),
    +  KEY `idx_asset_fk_soc` (`fk_soc`),
    +  KEY `idx_asset_fk_asset_type` (`fk_asset_type`),
    +  CONSTRAINT `fk_asset_asset_type` FOREIGN KEY (`fk_asset_type`) REFERENCES `llx_asset_type` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset`
    +--
    +
    +LOCK TABLES `llx_asset` WRITE;
    +/*!40000 ALTER TABLE `llx_asset` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_assetOf`
    +--
    +
    +DROP TABLE IF EXISTS `llx_assetOf`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_assetOf` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `entity` double NOT NULL DEFAULT '0',
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `fk_assetOf_parent` int(11) NOT NULL DEFAULT '0',
    +  `fk_soc` int(11) NOT NULL DEFAULT '0',
    +  `fk_commande` int(11) NOT NULL DEFAULT '0',
    +  `fk_project` int(11) NOT NULL DEFAULT '0',
    +  `temps_estime_fabrication` double NOT NULL DEFAULT '0',
    +  `temps_reel_fabrication` double NOT NULL DEFAULT '0',
    +  `mo_cost` double NOT NULL DEFAULT '0',
    +  `mo_estimated_cost` double NOT NULL DEFAULT '0',
    +  `compo_cost` double NOT NULL DEFAULT '0',
    +  `compo_estimated_cost` double NOT NULL DEFAULT '0',
    +  `total_cost` double NOT NULL DEFAULT '0',
    +  `total_estimated_cost` double NOT NULL DEFAULT '0',
    +  `ordre` varchar(255) DEFAULT NULL,
    +  `numero` varchar(255) DEFAULT NULL,
    +  `status` varchar(255) DEFAULT NULL,
    +  `date_besoin` datetime DEFAULT NULL,
    +  `date_lancement` datetime DEFAULT NULL,
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `note` longtext,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_user` (`fk_user`),
    +  KEY `fk_assetOf_parent` (`fk_assetOf_parent`),
    +  KEY `fk_soc` (`fk_soc`),
    +  KEY `fk_commande` (`fk_commande`),
    +  KEY `fk_project` (`fk_project`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_assetOf`
    +--
    +
    +LOCK TABLES `llx_assetOf` WRITE;
    +/*!40000 ALTER TABLE `llx_assetOf` DISABLE KEYS */;
    +INSERT INTO `llx_assetOf` VALUES (1,'2018-11-18 16:19:27','2018-11-18 16:19:27',1,0,0,1,-1,0,0,0,0,0,0,0,0,0,'ASAP','OF00001','DRAFT','2018-11-18 00:00:00',NULL,NULL,NULL,''),(2,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,0,0,-1,-1,0,0,0,0,0,49,49,49,49,'ASAP','OF00004','CLOSE','2018-11-18 00:00:00','2018-11-18 00:00:00','2018-11-18 16:48:10','2018-11-18 17:08:06',''),(3,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,0,2,-1,-1,0,0,0,0,0,0,0,0,0,'','OF00002','CLOSE','2018-11-18 16:26:40','2018-11-18 00:00:00','2018-11-18 16:54:41','2018-11-18 16:54:45',''),(4,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,0,0,-1,-1,0,0,0,0,0,20,20,20,20,'ASAP','OF00006','CLOSE','2018-11-18 00:00:00','2018-11-18 00:00:00','2018-11-18 17:23:54','2018-11-18 17:25:05',''),(5,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,0,4,-1,-1,0,0,0,0,0,0,0,0,0,'ASAP','OF00005','CLOSE','2018-11-18 00:00:00','2018-11-18 00:00:00','2018-11-18 17:22:07','2018-11-18 17:22:12',''),(6,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,0,0,-1,-1,0,0,0,0,0,0,20,0,20,'ASAP','OF00008','OPEN','2018-11-18 00:00:00','2018-11-18 00:00:00','2018-11-18 17:44:27',NULL,''),(7,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,0,6,-1,-1,0,0,0,0,0,0,0,0,0,'ASAP','OF00007','CLOSE','2018-11-18 00:00:00','2018-11-18 00:00:00',NULL,NULL,'');
    +/*!40000 ALTER TABLE `llx_assetOf` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_assetOf_line`
    +--
    +
    +DROP TABLE IF EXISTS `llx_assetOf_line`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_assetOf_line` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '0',
    +  `fk_assetOf` int(11) NOT NULL DEFAULT '0',
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `fk_product_fournisseur_price` int(11) NOT NULL DEFAULT '0',
    +  `fk_entrepot` int(11) NOT NULL DEFAULT '0',
    +  `fk_nomenclature` int(11) NOT NULL DEFAULT '0',
    +  `nomenclature_valide` int(11) NOT NULL DEFAULT '0',
    +  `fk_commandedet` int(11) NOT NULL DEFAULT '0',
    +  `qty_needed` double NOT NULL DEFAULT '0',
    +  `qty` double NOT NULL DEFAULT '0',
    +  `qty_used` double NOT NULL DEFAULT '0',
    +  `qty_stock` double NOT NULL DEFAULT '0',
    +  `conditionnement` double NOT NULL DEFAULT '0',
    +  `conditionnement_unit` double NOT NULL DEFAULT '0',
    +  `pmp` double NOT NULL DEFAULT '0',
    +  `type` varchar(255) DEFAULT NULL,
    +  `lot_number` varchar(255) DEFAULT NULL,
    +  `measuring_units` varchar(255) DEFAULT NULL,
    +  `note_private` longtext,
    +  `fk_assetOf_line_parent` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `entity` (`entity`),
    +  KEY `fk_assetOf` (`fk_assetOf`),
    +  KEY `fk_product` (`fk_product`),
    +  KEY `fk_product_fournisseur_price` (`fk_product_fournisseur_price`),
    +  KEY `fk_entrepot` (`fk_entrepot`),
    +  KEY `fk_nomenclature` (`fk_nomenclature`),
    +  KEY `nomenclature_valide` (`nomenclature_valide`),
    +  KEY `fk_commandedet` (`fk_commandedet`),
    +  KEY `fk_assetOf_line_parent` (`fk_assetOf_line_parent`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_assetOf_line`
    +--
    +
    +LOCK TABLES `llx_assetOf_line` WRITE;
    +/*!40000 ALTER TABLE `llx_assetOf_line` DISABLE KEYS */;
    +INSERT INTO `llx_assetOf_line` VALUES (1,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,2,196,-2,0,1,1,0,1,1,1,1,1,0,49,'TO_MAKE','','unit','',0),(2,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,2,192,-2,0,0,0,0,2,2,2,2,1,0,0,'NEEDED','','unit','aaa',1),(3,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,3,192,-2,0,0,0,0,2,2,2,2,1,0,0,'TO_MAKE','','unit','',2),(4,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,2,151,-2,0,0,0,0,1,1,1,1,1,0,49,'NEEDED','','unit','bbb',1),(6,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,2,10,-2,0,0,0,0,1,1,1,1,1,0,0,'NEEDED','','unit','ccc',1),(7,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,4,195,-2,0,2,1,0,1,1,1,1,1,0,20,'TO_MAKE','','unit','',0),(8,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,4,190,-2,0,0,0,0,2,2,2,2,1,0,10,'NEEDED','','unit','aaa',7),(9,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,4,11,-2,0,0,0,0,1,1,1,1,1,0,0,'NEEDED','','unit','bbb',7),(10,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,5,11,-2,0,0,0,0,1,1,1,1,1,0,0,'TO_MAKE','','unit','',9),(11,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,4,10,-2,0,0,0,0,1,1,1,1,1,0,0,'NEEDED','','unit','',7),(12,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,6,195,-2,0,2,1,0,1,1,0,0,1,0,22,'TO_MAKE','','unit','',0),(13,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,6,190,-2,0,0,0,0,2,2,0,0,1,0,10,'NEEDED','','unit','aaa',12),(14,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,6,11,-2,0,0,0,0,1,1,0,0,1,0,0,'NEEDED','','unit','bbb',12),(15,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,7,11,-1,0,0,0,0,1,1,0,0,1,0,0,'TO_MAKE','','unit','',14),(16,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,6,10,-2,0,0,0,0,1,0,0,0,1,0,0,'NEEDED','','unit','',12);
    +/*!40000 ALTER TABLE `llx_assetOf_line` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_extrafields`
    +--
    +
    +LOCK TABLES `llx_asset_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(50) NOT NULL,
    +  `accountancy_code_asset` varchar(32) DEFAULT NULL,
    +  `accountancy_code_depreciation_asset` varchar(32) DEFAULT NULL,
    +  `accountancy_code_depreciation_expense` varchar(32) DEFAULT NULL,
    +  `note` text,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_asset_type_label` (`label`,`entity`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_type`
    +--
    +
    +LOCK TABLES `llx_asset_type` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_type` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_type_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_type_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_type_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_asset_type_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_type_extrafields`
    +--
    +
    +LOCK TABLES `llx_asset_type_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_type_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_type_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_workstation_of`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_workstation_of`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_workstation_of` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_assetOf` int(11) NOT NULL DEFAULT '0',
    +  `fk_asset_workstation` int(11) NOT NULL DEFAULT '0',
    +  `fk_project_task` int(11) NOT NULL DEFAULT '0',
    +  `nb_hour` double NOT NULL DEFAULT '0',
    +  `nb_hour_real` double NOT NULL DEFAULT '0',
    +  `nb_hour_prepare` double NOT NULL DEFAULT '0',
    +  `rang` double NOT NULL DEFAULT '0',
    +  `thm` double NOT NULL DEFAULT '0',
    +  `nb_days_before_beginning` double NOT NULL DEFAULT '0',
    +  `note_private` longtext,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_assetOf` (`fk_assetOf`),
    +  KEY `fk_asset_workstation` (`fk_asset_workstation`),
    +  KEY `fk_project_task` (`fk_project_task`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_workstation_of`
    +--
    +
    +LOCK TABLES `llx_asset_workstation_of` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_workstation_of` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_workstation_of` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_workstation_product`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_workstation_product`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_workstation_product` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `fk_asset_workstation` int(11) NOT NULL DEFAULT '0',
    +  `nb_hour_prepare` double NOT NULL DEFAULT '0',
    +  `nb_hour_manufacture` double NOT NULL DEFAULT '0',
    +  `nb_hour` double NOT NULL DEFAULT '0',
    +  `rang` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_product` (`fk_product`),
    +  KEY `fk_asset_workstation` (`fk_asset_workstation`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_workstation_product`
    +--
    +
    +LOCK TABLES `llx_asset_workstation_product` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_workstation_product` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_workstation_product` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_workstation_task`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_workstation_task`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_workstation_task` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_workstation` int(11) NOT NULL DEFAULT '0',
    +  `libelle` varchar(255) DEFAULT NULL,
    +  `description` longtext,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_workstation` (`fk_workstation`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_workstation_task`
    +--
    +
    +LOCK TABLES `llx_asset_workstation_task` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_workstation_task` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_workstation_task` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_assetof_amounts`
    +--
    +
    +DROP TABLE IF EXISTS `llx_assetof_amounts`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_assetof_amounts` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `date_creation` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `amount_estimated` varchar(255) DEFAULT NULL,
    +  `amount_real` varchar(255) DEFAULT NULL,
    +  `amount_diff` varchar(255) DEFAULT NULL,
    +  `date` datetime DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_creation` (`date_creation`),
    +  KEY `tms` (`tms`),
    +  KEY `rowid` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_assetof_amounts`
    +--
    +
    +LOCK TABLES `llx_assetof_amounts` WRITE;
    +/*!40000 ALTER TABLE `llx_assetof_amounts` DISABLE KEYS */;
    +INSERT INTO `llx_assetof_amounts` VALUES (1,'2018-11-19 10:25:56','2018-11-19 09:25:56','20','0','20','2018-11-19 10:25:56');
    +/*!40000 ALTER TABLE `llx_assetof_amounts` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datev` date DEFAULT NULL,
    +  `dateo` date DEFAULT NULL,
    +  `amount` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_rappro` int(11) DEFAULT NULL,
    +  `fk_type` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `num_releve` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `num_chq` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `rappro` tinyint(4) DEFAULT '0',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bordereau` int(11) DEFAULT '0',
    +  `banque` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `emetteur` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `author` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `numero_compte` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_bank_datev` (`datev`),
    +  KEY `idx_bank_dateo` (`dateo`),
    +  KEY `idx_bank_fk_account` (`fk_account`),
    +  KEY `idx_bank_rappro` (`rappro`),
    +  KEY `idx_bank_num_releve` (`num_releve`)
    +) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank`
    +--
    +
    +LOCK TABLES `llx_bank` WRITE;
    +/*!40000 ALTER TABLE `llx_bank` DISABLE KEYS */;
    +INSERT INTO `llx_bank` VALUES (1,'2010-07-08 23:56:14','2016-07-30 15:16:10','2016-07-08','2016-07-08',2000.00000000,'(Initial balance)',1,NULL,1,'SOLD','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(2,'2010-07-09 00:00:24','2016-07-30 15:16:10','2016-07-09','2016-07-09',500.00000000,'(Initial balance)',2,NULL,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(3,'2010-07-10 13:33:42','2016-07-30 15:16:10','2016-07-10','2016-07-10',0.00000000,'(Solde initial)',3,NULL,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(5,'2011-07-18 20:50:24','2016-07-30 15:16:10','2016-07-08','2016-07-08',20.00000000,'(CustomerInvoicePayment)',1,1,NULL,'CB','201107',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(6,'2011-07-18 20:50:47','2016-07-30 15:16:10','2016-07-08','2016-07-08',10.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(8,'2011-08-01 03:34:11','2016-07-30 15:21:31','2015-08-01','2015-08-01',5.63000000,'(CustomerInvoicePayment)',1,1,1,'CB','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(12,'2011-08-05 23:11:37','2016-07-30 15:21:31','2015-08-05','2015-08-05',-10.00000000,'(SocialContributionPayment)',1,1,1,'VIR','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(13,'2011-08-06 20:33:54','2016-07-30 15:21:31','2015-08-06','2015-08-06',5.98000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(14,'2011-08-08 02:53:40','2016-07-30 15:21:31','2015-08-08','2015-08-08',26.10000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(15,'2011-08-08 02:55:58','2016-07-30 15:21:31','2015-08-08','2015-08-08',26.96000000,'(CustomerInvoicePayment)',1,1,1,'TIP','201211',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(16,'2012-12-09 15:28:44','2016-07-30 15:21:31','2015-12-09','2015-12-09',2.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(17,'2012-12-09 15:28:53','2016-07-30 15:21:31','2015-12-09','2015-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(18,'2012-12-09 17:35:55','2016-07-30 15:21:31','2015-12-09','2015-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(19,'2012-12-09 17:37:02','2016-07-30 15:21:31','2015-12-09','2015-12-09',2.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(20,'2012-12-09 18:35:07','2016-07-30 15:21:31','2015-12-09','2015-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(21,'2012-12-12 18:54:33','2016-07-30 15:21:31','2015-12-12','2015-12-12',1.00000000,'(CustomerInvoicePayment)',1,1,1,'TIP','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(22,'2013-03-06 16:48:16','2016-07-30 15:16:10','2016-03-06','2016-03-06',20.00000000,'(SubscriptionPayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(23,'2013-03-20 14:30:11','2016-07-30 15:16:10','2016-03-20','2016-03-20',10.00000000,'(SubscriptionPayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(24,'2014-03-02 19:57:58','2016-07-30 15:16:10','2016-07-09','2016-07-09',605.00000000,'(CustomerInvoicePayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'111',NULL,NULL),(26,'2014-03-02 20:01:39','2016-07-30 15:16:10','2016-03-19','2016-03-19',500.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(27,'2014-03-02 20:02:06','2016-07-30 15:16:10','2016-03-21','2016-03-21',400.00000000,'(CustomerInvoicePayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'ABC and Co',NULL,NULL),(28,'2014-03-03 19:22:32','2016-07-30 15:21:31','2015-10-03','2015-10-03',-400.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(29,'2014-03-03 19:23:16','2016-07-30 15:16:10','2016-03-10','2016-03-10',-300.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(30,'2016-01-22 18:56:34','2016-01-22 17:56:34','2016-01-22','2016-01-22',-900.00000000,'(SupplierInvoicePayment)',1,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(31,'2016-07-30 22:42:14','2016-07-30 14:42:14','2016-07-30','2016-07-30',0.00000000,'(Initial balance)',4,0,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(32,'2017-02-01 19:02:44','2017-02-01 15:02:44','2017-02-01','2017-02-01',-200.00000000,'(SupplierInvoicePayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(33,'2017-02-06 08:10:24','2017-02-06 04:12:05','2016-03-22','2016-03-22',150.00000000,'(CustomerInvoicePayment)',1,12,NULL,'CHQ',NULL,NULL,0,NULL,2,NULL,'Magic Food Store',NULL,NULL),(34,'2017-02-06 08:10:50','2017-02-06 04:10:50','2016-03-25','2016-03-25',140.00000000,'(CustomerInvoicePayment)',1,12,NULL,'PRE',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(35,'2017-02-12 23:18:33','2017-02-12 19:18:33','2017-02-12','2017-02-12',50.00000000,'Patient payment',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'aaa',NULL,NULL),(36,'2017-02-16 02:22:09','2017-02-15 22:22:09','2017-02-16','2017-02-16',-1.00000000,'(ExpenseReportPayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(37,'2017-02-21 16:07:43','2017-02-21 12:07:43','2017-02-21','2017-02-21',50.00000000,'(WithdrawalPayment)',1,12,NULL,'PRE',NULL,'T170201',0,NULL,0,NULL,NULL,NULL,NULL),(38,'2017-09-06 20:08:36','2017-09-06 16:08:36','2017-09-06','2017-09-06',10.00000000,'(DonationPayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,''),(39,'2018-03-16 13:59:31','2018-03-16 09:59:31','2018-03-16','2018-03-16',10.00000000,'(CustomerInvoicePayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'Indian SAS',NULL,'');
    +/*!40000 ALTER TABLE `llx_bank` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank_account`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank_account`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank_account` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `ref` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `bank` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bic` varchar(11) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `iban_prefix` varchar(34) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `country_iban` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_iban` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `domiciliation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `state_id` int(11) DEFAULT NULL,
    +  `fk_pays` int(11) NOT NULL,
    +  `proprio` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `owner_address` text COLLATE utf8_unicode_ci,
    +  `courant` smallint(6) NOT NULL DEFAULT '0',
    +  `clos` smallint(6) NOT NULL DEFAULT '0',
    +  `rappro` smallint(6) DEFAULT '1',
    +  `url` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `account_number` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_journal` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `currency_code` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
    +  `min_allowed` int(11) DEFAULT '0',
    +  `min_desired` int(11) DEFAULT '0',
    +  `comment` text COLLATE utf8_unicode_ci,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_accountancy_journal` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_bank_account_label` (`label`,`entity`),
    +  KEY `idx_fk_accountancy_journal` (`fk_accountancy_journal`),
    +  CONSTRAINT `fk_bank_account_accountancy_journal` FOREIGN KEY (`fk_accountancy_journal`) REFERENCES `llx_accounting_journal` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank_account`
    +--
    +
    +LOCK TABLES `llx_bank_account` WRITE;
    +/*!40000 ALTER TABLE `llx_bank_account` DISABLE KEYS */;
    +INSERT INTO `llx_bank_account` VALUES (1,'2010-07-08 23:56:14','2016-07-30 14:45:12','SWIBAC','Swiss bank account',1,'Switz Gold Bank','','','123456789','','','NL39RABO0314043352',NULL,NULL,'21 jum street',NULL,6,'Mac Golder','11 big road,\r\nZurich',1,0,1,NULL,'','','EUR',1500,1500,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,'2010-07-09 00:00:24','2016-07-30 15:17:18','SWIBAC2','Swiss bank account old',1,'Switz Silver Bank','','','','','','NL07SNSB0908534915',NULL,NULL,'Road bankrupt\r\nZurich',NULL,6,'','',1,1,1,NULL,'','','EUR',200,400,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'2010-07-10 13:33:42','2017-08-27 13:29:05','ACCOUNTCASH','Account for cash',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,1,NULL,NULL,2,0,1,NULL,'','OD','EUR',0,0,'<br />',NULL,NULL,NULL,NULL,NULL,NULL,4),(4,'2016-07-30 18:42:14','2016-07-30 14:44:45','LUXBAC','Luxemburg Bank Account',1,'Lux Platinuium Bank','','','','','','NL46INGB0687674581',NULL,NULL,'',NULL,140,'','',1,0,1,NULL,'','','EUR',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_bank_account` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank_account_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank_account_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank_account_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_bank_account_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank_account_extrafields`
    +--
    +
    +LOCK TABLES `llx_bank_account_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_bank_account_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_bank_account_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank_categ`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank_categ`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank_categ` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank_categ`
    +--
    +
    +LOCK TABLES `llx_bank_categ` WRITE;
    +/*!40000 ALTER TABLE `llx_bank_categ` DISABLE KEYS */;
    +INSERT INTO `llx_bank_categ` VALUES (1,'Bank category one',1),(2,'Bank category two',1);
    +/*!40000 ALTER TABLE `llx_bank_categ` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank_class`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank_class`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank_class` (
    +  `lineid` int(11) NOT NULL,
    +  `fk_categ` int(11) NOT NULL,
    +  UNIQUE KEY `uk_bank_class_lineid` (`lineid`,`fk_categ`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank_class`
    +--
    +
    +LOCK TABLES `llx_bank_class` WRITE;
    +/*!40000 ALTER TABLE `llx_bank_class` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_bank_class` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank_url`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank_url`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank_url` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `url_id` int(11) DEFAULT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` varchar(24) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_bank_url` (`fk_bank`,`type`)
    +) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank_url`
    +--
    +
    +LOCK TABLES `llx_bank_url` WRITE;
    +/*!40000 ALTER TABLE `llx_bank_url` DISABLE KEYS */;
    +INSERT INTO `llx_bank_url` VALUES (3,5,2,'/compta/paiement/card.php?id=','(paiement)','payment'),(4,5,2,'/comm/card.php?socid=','Belin SARL','company'),(5,6,3,'/compta/paiement/card.php?id=','(paiement)','payment'),(6,6,2,'/comm/card.php?socid=','Belin SARL','company'),(9,8,5,'/compta/paiement/card.php?id=','(paiement)','payment'),(10,8,7,'/comm/card.php?socid=','Generic customer','company'),(17,12,4,'/compta/payment_sc/card.php?id=','(paiement)','payment_sc'),(18,12,4,'/compta/charges.php?id=','Assurance Chomage (fff)','sc'),(19,13,6,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(20,13,7,'/dolibarrnew/comm/card.php?socid=','Generic customer','company'),(21,14,8,'/compta/paiement/card.php?id=','(paiement)','payment'),(22,14,2,'/comm/card.php?socid=','Belin SARL','company'),(23,15,9,'/compta/paiement/card.php?id=','(paiement)','payment'),(24,15,10,'/comm/card.php?socid=','Smith Vick','company'),(25,16,17,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(26,16,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(27,17,18,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(28,17,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(29,18,19,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(30,18,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(31,19,20,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(32,19,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(33,20,21,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(34,20,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(35,21,23,'/compta/paiement/card.php?id=','(paiement)','payment'),(36,21,1,'/comm/card.php?socid=','ABC and Co','company'),(37,22,24,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(38,22,12,'/dolibarrnew/comm/card.php?socid=','Dupont Alain','company'),(39,23,25,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(40,23,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(41,24,26,'/compta/paiement/card.php?id=','(paiement)','payment'),(42,24,1,'/comm/card.php?socid=','ABC and Co','company'),(45,26,29,'/compta/paiement/card.php?id=','(paiement)','payment'),(46,26,1,'/comm/card.php?socid=','ABC and Co','company'),(47,27,30,'/compta/paiement/card.php?id=','(paiement)','payment'),(48,27,1,'/comm/card.php?socid=','ABC and Co','company'),(49,28,32,'/dolibarr_new/compta/paiement/card.php?id=','(paiement)','payment'),(50,28,1,'/dolibarr_new/comm/card.php?socid=','ABC and Co','company'),(51,29,33,'/dolibarr_new/compta/paiement/card.php?id=','(paiement)','payment'),(52,29,1,'/dolibarr_new/comm/card.php?socid=','ABC and Co','company'),(53,30,1,'/dolibarr_3.8/htdocs/fourn/paiement/card.php?id=','(paiement)','payment_supplier'),(54,30,1,'/dolibarr_3.8/htdocs/fourn/card.php?socid=','Indian SAS','company'),(55,32,2,'/dolibarr_5.0/htdocs/fourn/paiement/card.php?id=','(paiement)','payment_supplier'),(56,32,13,'/dolibarr_5.0/htdocs/fourn/card.php?socid=','Company Corp 2','company'),(57,33,34,'/dolibarr_5.0/htdocs/compta/paiement/card.php?id=','(paiement)','payment'),(58,33,19,'/dolibarr_5.0/htdocs/comm/card.php?socid=','Magic Food Store','company'),(59,34,35,'/dolibarr_5.0/htdocs/compta/paiement/card.php?id=','(paiement)','payment'),(60,34,19,'/dolibarr_5.0/htdocs/comm/card.php?socid=','Magic Food Store','company'),(61,35,2,'/dolibarr_5.0/htdocs/dolimed_5.0/cabinetmed/consultations.php?action=edit&socid=26&id=','Consultation','consultation'),(62,35,26,'','aaa','company'),(63,36,2,'/dolibarr_5.0/htdocs/expensereport/payment/card.php?rowid=','(paiement)','payment_expensereport'),(64,36,12,'/dolibarr_5.0/htdocs/user/card.php?id=','','user'),(65,37,36,'/dolibarr_5.0/htdocs/compta/paiement/card.php?id=','(paiement)','payment'),(66,37,1,'/dolibarr_5.0/htdocs/compta/prelevement/card.php?id=','T170201','withdraw'),(67,38,1,'/dolibarr_6.0/htdocs/don/payment/card.php?rowid=','(paiement)','payment_donation'),(68,39,38,'/dolibarr_7.0/htdocs/compta/paiement/card.php?id=','(paiement)','payment'),(69,39,1,'/dolibarr_7.0/htdocs/comm/card.php?socid=','Indian SAS','company');
    +/*!40000 ALTER TABLE `llx_bank_url` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_blockedlog`
    +--
    +
    +DROP TABLE IF EXISTS `llx_blockedlog`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_blockedlog` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `action` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amounts` double(24,8) DEFAULT NULL,
    +  `signature` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    +  `signature_line` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    +  `element` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_object` int(11) DEFAULT NULL,
    +  `ref_object` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_object` datetime DEFAULT NULL,
    +  `object_data` text COLLATE utf8_unicode_ci,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `certified` int(11) DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `user_fullname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `signature` (`signature`),
    +  KEY `fk_object_element` (`fk_object`,`element`),
    +  KEY `entity` (`entity`),
    +  KEY `fk_user` (`fk_user`),
    +  KEY `entity_action` (`entity`,`action`),
    +  KEY `entity_action_certified` (`entity`,`action`,`certified`)
    +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_blockedlog`
    +--
    +
    +LOCK TABLES `llx_blockedlog` WRITE;
    +/*!40000 ALTER TABLE `llx_blockedlog` DISABLE KEYS */;
    +INSERT INTO `llx_blockedlog` VALUES (20,'2018-03-16 09:57:22','MODULE_RESET',0.00000000,'d6dd5fe6c2eec2de6368f3b6da30188566f0a1a7be4b1589ccd8352d2c827ad5','fbc11d0396d9b76ea48f892bd5f0fe652e5bdf7d44873acb4bf1e1b70352bd30','module',1,'systemevent','2018-03-16 13:57:22','O:8:\"stdClass\":6:{s:9:\"mycompany\";O:8:\"stdClass\":29:{s:10:\"name_alias\";N;s:7:\"address\";s:24:\"21 Jump street..ll..ee \"\";s:3:\"zip\";s:5:\"75500\";s:4:\"town\";s:6:\"MyTown\";s:10:\"state_code\";N;s:5:\"phone\";s:8:\"09123123\";s:3:\"fax\";s:8:\"09123124\";s:5:\"email\";s:24:\"myemail@mybigcompany.com\";s:7:\"barcode\";N;s:7:\"idprof1\";s:6:\"123456\";s:7:\"idprof2\";s:1:\"1\";s:7:\"idprof3\";s:1:\"1\";s:7:\"idprof4\";s:1:\"1\";s:7:\"idprof5\";s:1:\"1\";s:7:\"idprof6\";s:0:\"\";s:9:\"tva_intra\";s:9:\"FR1234567\";s:15:\"localtax1_assuj\";i:1;s:15:\"localtax1_value\";N;s:15:\"localtax2_assuj\";i:1;s:15:\"localtax2_value\";N;s:8:\"managers\";s:10:\"Zack Zeceo\";s:7:\"capital\";s:5:\"10000\";s:11:\"typent_code\";N;s:20:\"forme_juridique_code\";s:0:\"\";s:11:\"code_client\";N;s:16:\"code_fournisseur\";N;s:7:\"ref_ext\";N;s:12:\"country_code\";s:2:\"IN\";s:4:\"name\";s:12:\"MyBigCompany\";}s:2:\"id\";i:1;s:7:\"element\";s:6:\"module\";s:3:\"ref\";s:11:\"systemevent\";s:6:\"entity\";i:1;s:4:\"date\";i:1521194242;}',12,1,0,'2018-03-16 13:57:22','Alice Adminson'),(21,'2018-03-16 09:57:24','MODULE_SET',0.00000000,'d6b66df837d8d33bd8b9744e2afa46ab8c65ae8ca462246c406de19f8254e146','0a3aae975056417705f4eb7b4a4926384075cc2b6c899603715643c8f1d6ff9b','module',1,'systemevent','2018-03-16 13:57:24','O:8:\"stdClass\":6:{s:9:\"mycompany\";O:8:\"stdClass\":29:{s:10:\"name_alias\";N;s:7:\"address\";s:24:\"21 Jump street..ll..ee \"\";s:3:\"zip\";s:5:\"75500\";s:4:\"town\";s:6:\"MyTown\";s:10:\"state_code\";N;s:5:\"phone\";s:8:\"09123123\";s:3:\"fax\";s:8:\"09123124\";s:5:\"email\";s:24:\"myemail@mybigcompany.com\";s:7:\"barcode\";N;s:7:\"idprof1\";s:6:\"123456\";s:7:\"idprof2\";s:1:\"1\";s:7:\"idprof3\";s:1:\"1\";s:7:\"idprof4\";s:1:\"1\";s:7:\"idprof5\";s:1:\"1\";s:7:\"idprof6\";s:0:\"\";s:9:\"tva_intra\";s:9:\"FR1234567\";s:15:\"localtax1_assuj\";i:1;s:15:\"localtax1_value\";N;s:15:\"localtax2_assuj\";i:1;s:15:\"localtax2_value\";N;s:8:\"managers\";s:10:\"Zack Zeceo\";s:7:\"capital\";s:5:\"10000\";s:11:\"typent_code\";N;s:20:\"forme_juridique_code\";s:0:\"\";s:11:\"code_client\";N;s:16:\"code_fournisseur\";N;s:7:\"ref_ext\";N;s:12:\"country_code\";s:2:\"IN\";s:4:\"name\";s:12:\"MyBigCompany\";}s:2:\"id\";i:1;s:7:\"element\";s:6:\"module\";s:3:\"ref\";s:11:\"systemevent\";s:6:\"entity\";i:1;s:4:\"date\";i:1521194244;}',12,1,0,'2018-03-16 13:57:24','Alice Adminson'),(22,'2018-03-16 09:59:31','PAYMENT_CUSTOMER_CREATE',10.00000000,'9beb9e3ba04582d441b49f176f995900c16572c789bcf48a1c9f285a74be76c8','86813eb2563252c0e270baaf1fffade82475fe51af5f88d14613005fd0e07783','payment',38,'PAY1803-0004','2018-03-16 12:00:00','O:8:\"stdClass\":8:{s:9:\"mycompany\";O:8:\"stdClass\":29:{s:10:\"name_alias\";N;s:7:\"address\";s:24:\"21 Jump street..ll..ee \"\";s:3:\"zip\";s:5:\"75500\";s:4:\"town\";s:6:\"MyTown\";s:10:\"state_code\";N;s:5:\"phone\";s:8:\"09123123\";s:3:\"fax\";s:8:\"09123124\";s:5:\"email\";s:24:\"myemail@mybigcompany.com\";s:7:\"barcode\";N;s:7:\"idprof1\";s:6:\"123456\";s:7:\"idprof2\";s:1:\"1\";s:7:\"idprof3\";s:1:\"1\";s:7:\"idprof4\";s:1:\"1\";s:7:\"idprof5\";s:1:\"1\";s:7:\"idprof6\";s:0:\"\";s:9:\"tva_intra\";s:9:\"FR1234567\";s:15:\"localtax1_assuj\";i:1;s:15:\"localtax1_value\";N;s:15:\"localtax2_assuj\";i:1;s:15:\"localtax2_value\";N;s:8:\"managers\";s:10:\"Zack Zeceo\";s:7:\"capital\";s:5:\"10000\";s:11:\"typent_code\";N;s:20:\"forme_juridique_code\";s:0:\"\";s:11:\"code_client\";N;s:16:\"code_fournisseur\";N;s:7:\"ref_ext\";N;s:12:\"country_code\";s:2:\"IN\";s:4:\"name\";s:12:\"MyBigCompany\";}s:3:\"ref\";s:12:\"PAY1803-0004\";s:4:\"date\";i:1521187200;s:9:\"type_code\";s:3:\"CHQ\";s:11:\"payment_num\";N;s:4:\"note\";s:0:\"\";s:12:\"payment_part\";a:1:{i:1;O:8:\"stdClass\":3:{s:6:\"amount\";s:2:\"10\";s:10:\"thirdparty\";O:8:\"stdClass\":29:{s:10:\"name_alias\";s:0:\"\";s:7:\"address\";s:13:\"1 alalah road\";s:3:\"zip\";N;s:4:\"town\";s:5:\"Delhi\";s:10:\"state_code\";N;s:5:\"phone\";N;s:3:\"fax\";N;s:5:\"email\";N;s:7:\"barcode\";N;s:7:\"idprof1\";s:0:\"\";s:7:\"idprof2\";s:0:\"\";s:7:\"idprof3\";s:0:\"\";s:7:\"idprof4\";s:0:\"\";s:7:\"idprof5\";s:0:\"\";s:7:\"idprof6\";s:0:\"\";s:9:\"tva_intra\";s:0:\"\";s:15:\"localtax1_assuj\";N;s:15:\"localtax1_value\";s:5:\"0.000\";s:15:\"localtax2_assuj\";N;s:15:\"localtax2_value\";s:5:\"0.000\";s:8:\"managers\";N;s:7:\"capital\";s:13:\"5000.00000000\";s:11:\"typent_code\";s:8:\"TE_SMALL\";s:20:\"forme_juridique_code\";N;s:11:\"code_client\";s:11:\"CU1212-0007\";s:16:\"code_fournisseur\";s:11:\"SU1212-0005\";s:7:\"ref_ext\";N;s:12:\"country_code\";s:2:\"IN\";s:4:\"name\";s:10:\"Indian SAS\";}s:7:\"invoice\";O:8:\"stdClass\":9:{s:4:\"date\";i:1453147200;s:10:\"ref_client\";N;s:4:\"type\";s:1:\"0\";s:8:\"total_ht\";s:11:\"20.00000000\";s:9:\"total_tva\";s:10:\"1.80000000\";s:9:\"total_ttc\";s:11:\"23.60000000\";s:12:\"revenuestamp\";s:10:\"0.00000000\";s:3:\"ref\";s:11:\"FA1601-0024\";s:11:\"note_public\";N;}}}s:6:\"amount\";i:10;}',12,1,0,'2018-03-16 13:59:31','Alice Adminson');
    +/*!40000 ALTER TABLE `llx_blockedlog` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_blockedlog_authority`
    +--
    +
    +DROP TABLE IF EXISTS `llx_blockedlog_authority`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_blockedlog_authority` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `blockchain` longtext COLLATE utf8_unicode_ci NOT NULL,
    +  `signature` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `signature` (`signature`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_blockedlog_authority`
    +--
    +
    +LOCK TABLES `llx_blockedlog_authority` WRITE;
    +/*!40000 ALTER TABLE `llx_blockedlog_authority` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_blockedlog_authority` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bookmark`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bookmark`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bookmark` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL,
    +  `dateb` datetime DEFAULT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `target` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `title` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `favicon` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) DEFAULT '0',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_bookmark_url` (`fk_user`,`url`),
    +  UNIQUE KEY `uk_bookmark_title` (`fk_user`,`title`)
    +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bookmark`
    +--
    +
    +LOCK TABLES `llx_bookmark` WRITE;
    +/*!40000 ALTER TABLE `llx_bookmark` DISABLE KEYS */;
    +INSERT INTO `llx_bookmark` VALUES (1,0,'2010-07-09 01:29:03','http://wiki.dolibarr.org','1','Online documentation','none',1,1),(2,0,'2010-07-09 01:30:15','http://www.dolibarr.org','1','Official portal','none',2,1),(3,0,'2010-07-09 01:30:53','http://www.dolistore.com','1','DoliStore','none',10,1),(4,0,'2010-07-09 01:31:35','http://asso.dolibarr.org/index.php/Main_Page','1','The foundation','none',0,1),(5,0,'2014-03-02 16:40:41','http://www.facebook.com/dolibarr','1','Facebook page','none',50,1),(6,0,'2014-03-02 16:41:12','http://www.twitter.com/dolibarr','1','Twitter channel','none',60,1),(7,0,'2014-03-02 16:42:08','http://plus.google.com/+DolibarrOrg','1','Google+ page','none',55,1);
    +/*!40000 ALTER TABLE `llx_bookmark` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bordereau_cheque`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bordereau_cheque`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bordereau_cheque` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime NOT NULL,
    +  `date_bordereau` date DEFAULT NULL,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `amount` double(24,8) NOT NULL,
    +  `nbcheque` smallint(6) NOT NULL,
    +  `fk_bank_account` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_bordereau_cheque` (`ref`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bordereau_cheque`
    +--
    +
    +LOCK TABLES `llx_bordereau_cheque` WRITE;
    +/*!40000 ALTER TABLE `llx_bordereau_cheque` DISABLE KEYS */;
    +INSERT INTO `llx_bordereau_cheque` VALUES (2,'2017-02-06 08:12:05','2017-02-06','CHK1702-0001',1,150.00000000,1,1,12,NULL,1,'','2017-02-06 04:12:13');
    +/*!40000 ALTER TABLE `llx_bordereau_cheque` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_boxes`
    +--
    +
    +DROP TABLE IF EXISTS `llx_boxes`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_boxes` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `box_id` int(11) NOT NULL,
    +  `position` smallint(6) NOT NULL,
    +  `box_order` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `maxline` int(11) DEFAULT NULL,
    +  `params` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_boxes` (`entity`,`box_id`,`position`,`fk_user`),
    +  KEY `idx_boxes_boxid` (`box_id`),
    +  KEY `idx_boxes_fk_user` (`fk_user`),
    +  CONSTRAINT `fk_boxes_box_id` FOREIGN KEY (`box_id`) REFERENCES `llx_boxes_def` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=1183 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_boxes`
    +--
    +
    +LOCK TABLES `llx_boxes` WRITE;
    +/*!40000 ALTER TABLE `llx_boxes` DISABLE KEYS */;
    +INSERT INTO `llx_boxes` VALUES (253,2,323,0,'0',0,NULL,NULL),(304,2,324,0,'0',0,NULL,NULL),(305,2,325,0,'0',0,NULL,NULL),(306,2,326,0,'0',0,NULL,NULL),(307,2,327,0,'0',0,NULL,NULL),(308,2,328,0,'0',0,NULL,NULL),(309,2,329,0,'0',0,NULL,NULL),(310,2,330,0,'0',0,NULL,NULL),(311,2,331,0,'0',0,NULL,NULL),(312,2,332,0,'0',0,NULL,NULL),(313,2,333,0,'0',0,NULL,NULL),(314,1,347,0,'A07',0,NULL,NULL),(315,1,348,0,'A27',0,NULL,NULL),(316,1,349,0,'A15',0,NULL,NULL),(317,1,350,0,'B28',0,NULL,NULL),(344,1,374,0,'B16',0,NULL,NULL),(347,1,377,0,'A29',0,NULL,NULL),(348,1,378,0,'A17',0,NULL,NULL),(358,1,388,0,'B18',0,NULL,NULL),(359,1,389,0,'B30',0,NULL,NULL),(360,1,390,0,'A19',0,NULL,NULL),(362,1,392,0,'B20',0,NULL,NULL),(363,1,393,0,'A31',0,NULL,NULL),(366,1,396,0,'B14',0,NULL,NULL),(387,1,403,0,'B26',0,NULL,NULL),(392,1,409,0,'A13',0,NULL,NULL),(393,1,410,0,'A21',0,NULL,NULL),(394,1,411,0,'B08',0,NULL,NULL),(395,1,412,0,'B22',0,NULL,NULL),(396,1,413,0,'A09',0,NULL,NULL),(397,1,414,0,'A23',0,NULL,NULL),(398,1,415,0,'B10',0,NULL,NULL),(399,1,416,0,'B24',0,NULL,NULL),(400,1,417,0,'A11',0,NULL,NULL),(401,1,418,0,'A25',0,NULL,NULL),(501,1,419,0,'B12',0,NULL,NULL),(1019,1,392,0,'A01',2,NULL,NULL),(1021,1,412,0,'A03',2,NULL,NULL),(1022,1,347,0,'A04',2,NULL,NULL),(1023,1,393,0,'A05',2,NULL,NULL),(1025,1,389,0,'A07',2,NULL,NULL),(1026,1,416,0,'A08',2,NULL,NULL),(1027,1,396,0,'B01',2,NULL,NULL),(1028,1,377,0,'B02',2,NULL,NULL),(1031,1,419,0,'B05',2,NULL,NULL),(1036,1,424,0,'B06',0,NULL,NULL),(1037,1,425,0,'A05',0,NULL,NULL),(1038,1,426,0,'B04',0,NULL,NULL),(1039,1,427,0,'A03',0,NULL,NULL),(1150,1,430,0,'B02',0,NULL,NULL),(1151,1,431,0,'A01',0,NULL,NULL),(1152,1,429,0,'A01',1,NULL,NULL),(1153,1,429,0,'B01',2,NULL,NULL),(1154,1,429,0,'A01',11,NULL,NULL),(1156,1,429,0,'B01',0,NULL,NULL),(1174,1,412,0,'A01',12,NULL,NULL),(1175,1,392,0,'A02',12,NULL,NULL),(1176,1,377,0,'A03',12,NULL,NULL),(1177,1,347,0,'A04',12,NULL,NULL),(1178,1,429,0,'B01',12,NULL,NULL),(1179,1,427,0,'B02',12,NULL,NULL),(1180,1,414,0,'B03',12,NULL,NULL),(1181,1,413,0,'B04',12,NULL,NULL),(1182,1,426,0,'B05',12,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_boxes` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_boxes_def`
    +--
    +
    +DROP TABLE IF EXISTS `llx_boxes_def`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_boxes_def` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `file` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `note` varchar(130) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_boxes_def` (`file`,`entity`,`note`)
    +) ENGINE=InnoDB AUTO_INCREMENT=432 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_boxes_def`
    +--
    +
    +LOCK TABLES `llx_boxes_def` WRITE;
    +/*!40000 ALTER TABLE `llx_boxes_def` DISABLE KEYS */;
    +INSERT INTO `llx_boxes_def` VALUES (188,'box_services_vendus.php',1,'2011-08-05 20:40:27',NULL),(323,'box_actions.php',2,'2013-03-13 15:29:19',NULL),(324,'box_clients.php',2,'2013-03-13 20:21:35',NULL),(325,'box_prospect.php',2,'2013-03-13 20:21:35',NULL),(326,'box_contacts.php',2,'2013-03-13 20:21:35',NULL),(327,'box_activity.php',2,'2013-03-13 20:21:35','(WarningUsingThisBoxSlowDown)'),(328,'box_propales.php',2,'2013-03-13 20:32:38',NULL),(329,'box_comptes.php',2,'2013-03-13 20:33:09',NULL),(330,'box_factures_imp.php',2,'2013-03-13 20:33:09',NULL),(331,'box_factures.php',2,'2013-03-13 20:33:09',NULL),(332,'box_produits.php',2,'2013-03-13 20:33:09',NULL),(333,'box_produits_alerte_stock.php',2,'2013-03-13 20:33:09',NULL),(346,'box_googlemaps@google',1,'2013-11-07 00:01:39',NULL),(347,'box_clients.php',1,'2015-11-15 22:05:57',NULL),(348,'box_prospect.php',1,'2015-11-15 22:05:57',NULL),(349,'box_contacts.php',1,'2015-11-15 22:05:57',NULL),(350,'box_activity.php',1,'2015-11-15 22:05:57','(WarningUsingThisBoxSlowDown)'),(374,'box_services_contracts.php',1,'2015-11-15 22:38:37',NULL),(377,'box_project.php',1,'2015-11-15 22:38:44',NULL),(378,'box_task.php',1,'2015-11-15 22:38:44',NULL),(388,'box_contracts.php',1,'2015-11-15 22:39:52',NULL),(389,'box_services_expired.php',1,'2015-11-15 22:39:52',NULL),(390,'box_ficheinter.php',1,'2015-11-15 22:39:56',NULL),(392,'box_graph_propales_permonth.php',1,'2015-11-15 22:41:47',NULL),(393,'box_propales.php',1,'2015-11-15 22:41:47',NULL),(396,'box_graph_product_distribution.php',1,'2015-11-15 22:41:47',NULL),(403,'box_goodcustomers.php',1,'2016-07-30 11:13:20','(WarningUsingThisBoxSlowDown)'),(404,'box_external_rss.php',1,'2016-07-30 11:15:25','1 (Dolibarr.org News)'),(409,'box_produits.php',1,'2016-07-30 13:38:11',NULL),(410,'box_produits_alerte_stock.php',1,'2016-07-30 13:38:11',NULL),(411,'box_commandes.php',1,'2016-07-30 13:38:11',NULL),(412,'box_graph_orders_permonth.php',1,'2016-07-30 13:38:11',NULL),(413,'box_graph_invoices_supplier_permonth.php',1,'2016-07-30 13:38:11',NULL),(414,'box_graph_orders_supplier_permonth.php',1,'2016-07-30 13:38:11',NULL),(415,'box_fournisseurs.php',1,'2016-07-30 13:38:11',NULL),(416,'box_factures_fourn_imp.php',1,'2016-07-30 13:38:11',NULL),(417,'box_factures_fourn.php',1,'2016-07-30 13:38:11',NULL),(418,'box_supplier_orders.php',1,'2016-07-30 13:38:11',NULL),(419,'box_actions.php',1,'2016-07-30 15:42:32',NULL),(424,'box_factures_imp.php',1,'2017-02-07 18:56:12',NULL),(425,'box_factures.php',1,'2017-02-07 18:56:12',NULL),(426,'box_graph_invoices_permonth.php',1,'2017-02-07 18:56:12',NULL),(427,'box_comptes.php',1,'2017-02-07 18:56:12',NULL),(429,'box_lastlogin.php',1,'2017-08-27 13:29:14',NULL),(430,'box_bookmarks.php',1,'2018-01-19 11:27:34',NULL),(431,'box_members.php',1,'2018-01-19 11:27:56',NULL);
    +/*!40000 ALTER TABLE `llx_boxes_def` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_budget`
    +--
    +
    +DROP TABLE IF EXISTS `llx_budget`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_budget` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `date_start` date DEFAULT NULL,
    +  `date_end` date DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_budget`
    +--
    +
    +LOCK TABLES `llx_budget` WRITE;
    +/*!40000 ALTER TABLE `llx_budget` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_budget` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_budget_lines`
    +--
    +
    +DROP TABLE IF EXISTS `llx_budget_lines`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_budget_lines` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_budget` int(11) NOT NULL,
    +  `fk_project_ids` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `amount` double(24,8) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_budget_lines` (`fk_budget`,`fk_project_ids`),
    +  CONSTRAINT `fk_budget_lines_budget` FOREIGN KEY (`fk_budget`) REFERENCES `llx_budget` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_budget_lines`
    +--
    +
    +LOCK TABLES `llx_budget_lines` WRITE;
    +/*!40000 ALTER TABLE `llx_budget_lines` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_budget_lines` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_accounting_category`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_accounting_category`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_accounting_category` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `range_account` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `sens` tinyint(4) NOT NULL DEFAULT '0',
    +  `category_type` tinyint(4) NOT NULL DEFAULT '0',
    +  `formula` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `position` int(11) DEFAULT '0',
    +  `fk_country` int(11) DEFAULT NULL,
    +  `active` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_accounting_category` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_accounting_category`
    +--
    +
    +LOCK TABLES `llx_c_accounting_category` WRITE;
    +/*!40000 ALTER TABLE `llx_c_accounting_category` DISABLE KEYS */;
    +INSERT INTO `llx_c_accounting_category` VALUES (1,1,'VENTES','Ventes de marchandises','7xxxxx',0,0,'',10,1,1),(2,1,'DEPENSES','Coût d achats marchandises vendues','6xxxxx',0,0,'',20,1,1),(3,1,'PROFIT','Marge commerciale','Balance',0,1,'VENTES+DEPENSES',30,1,1),(4,1,'123','ddd','603xxx | 607xxx | 609xxx',0,0,'0',4,14,1);
    +/*!40000 ALTER TABLE `llx_c_accounting_category` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_action_trigger`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_action_trigger`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_action_trigger` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `elementtype` varchar(24) COLLATE utf8_unicode_ci NOT NULL,
    +  `rang` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_action_trigger_code` (`code`),
    +  KEY `idx_action_trigger_rang` (`rang`)
    +) ENGINE=InnoDB AUTO_INCREMENT=225 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_action_trigger`
    +--
    +
    +LOCK TABLES `llx_c_action_trigger` WRITE;
    +/*!40000 ALTER TABLE `llx_c_action_trigger` DISABLE KEYS */;
    +INSERT INTO `llx_c_action_trigger` VALUES (131,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1),(132,'COMPANY_CREATE','Third party created','Executed when a third party is created','societe',1),(133,'PROPAL_VALIDATE','Customer proposal validated','Executed when a commercial proposal is validated','propal',2),(134,'PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3),(135,'ORDER_VALIDATE','Customer order validate','Executed when a customer order is validated','commande',4),(136,'ORDER_CLOSE','Customer order classify delivered','Executed when a customer order is set delivered','commande',5),(137,'ORDER_CLASSIFY_BILLED','Customer order classify billed','Executed when a customer order is set to billed','commande',5),(138,'ORDER_CANCEL','Customer order canceled','Executed when a customer order is canceled','commande',5),(139,'ORDER_SENTBYMAIL','Customer order sent by mail','Executed when a customer order is sent by mail ','commande',5),(140,'BILL_VALIDATE','Customer invoice validated','Executed when a customer invoice is approved','facture',6),(141,'BILL_PAYED','Customer invoice payed','Executed when a customer invoice is payed','facture',7),(142,'BILL_CANCEL','Customer invoice canceled','Executed when a customer invoice is conceled','facture',8),(143,'BILL_SENTBYMAIL','Customer invoice sent by mail','Executed when a customer invoice is sent by mail','facture',9),(144,'BILL_UNVALIDATE','Customer invoice unvalidated','Executed when a customer invoice status set back to draft','facture',10),(145,'ORDER_SUPPLIER_VALIDATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(146,'ORDER_SUPPLIER_APPROVE','Supplier order request approved','Executed when a supplier order is approved','order_supplier',12),(147,'ORDER_SUPPLIER_REFUSE','Supplier order request refused','Executed when a supplier order is refused','order_supplier',13),(148,'ORDER_SUPPLIER_SENTBYMAIL','Supplier order sent by mail','Executed when a supplier order is sent by mail','order_supplier',14),(149,'BILL_SUPPLIER_VALIDATE','Supplier invoice validated','Executed when a supplier invoice is validated','invoice_supplier',15),(150,'BILL_SUPPLIER_PAYED','Supplier invoice payed','Executed when a supplier invoice is payed','invoice_supplier',16),(151,'BILL_SUPPLIER_SENTBYMAIL','Supplier invoice sent by mail','Executed when a supplier invoice is sent by mail','invoice_supplier',17),(152,'BILL_SUPPLIER_CANCELED','Supplier invoice cancelled','Executed when a supplier invoice is cancelled','invoice_supplier',17),(153,'CONTRACT_VALIDATE','Contract validated','Executed when a contract is validated','contrat',18),(154,'SHIPPING_VALIDATE','Shipping validated','Executed when a shipping is validated','shipping',20),(155,'SHIPPING_SENTBYMAIL','Shipping sent by mail','Executed when a shipping is sent by mail','shipping',21),(156,'MEMBER_VALIDATE','Member validated','Executed when a member is validated','member',22),(158,'MEMBER_RESILIATE','Member resiliated','Executed when a member is resiliated','member',24),(159,'MEMBER_MODIFY','Member modified','Executed when a member is modified','member',24),(160,'MEMBER_DELETE','Member deleted','Executed when a member is deleted','member',25),(161,'FICHINTER_VALIDATE','Intervention validated','Executed when a intervention is validated','ficheinter',19),(162,'FICHINTER_CLASSIFY_BILLED','Intervention set billed','Executed when a intervention is set to billed (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(163,'FICHINTER_CLASSIFY_UNBILLED','Intervention set unbilled','Executed when a intervention is set to unbilled (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(164,'FICHINTER_REOPEN','Intervention opened','Executed when a intervention is re-opened','ficheinter',19),(165,'FICHINTER_SENTBYMAIL','Intervention sent by mail','Executed when a intervention is sent by mail','ficheinter',19),(166,'PROJECT_CREATE','Project creation','Executed when a project is created','project',140),(167,'PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',2),(168,'PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',2),(169,'PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2),(170,'TASK_CREATE','Task created','Executed when a project task is created','project',35),(171,'TASK_MODIFY','Task modified','Executed when a project task is modified','project',36),(172,'TASK_DELETE','Task deleted','Executed when a project task is deleted','project',37),(173,'BILL_SUPPLIER_UNVALIDATE','Supplier invoice unvalidated','Executed when a supplier invoice status is set back to draft','invoice_supplier',15),(174,'PROJECT_MODIFY','Project modified','Executed when a project is modified','project',141),(175,'PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',142),(176,'ORDER_SUPPLIER_CREATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(177,'ORDER_SUPPLIER_SUBMIT','Supplier order request submited','Executed when a supplier order is approved','order_supplier',12),(178,'ORDER_SUPPLIER_RECEIVE','Supplier order request received','Executed when a supplier order is received','order_supplier',12),(179,'ORDER_SUPPLIER_CLASSIFY_BILLED','Supplier order set billed','Executed when a supplier order is set as billed','order_supplier',14),(180,'PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',30),(181,'PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',30),(182,'PRODUCT_DELETE','Product or service deleted','Executed when a product or sevice is deleted','product',30),(183,'EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expense_report',201),(185,'EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expense_report',202),(186,'EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expense_report',203),(187,'EXPENSE_REPORT_PAYED','Expense report billed','Executed when an expense report is set as billed','expense_report',204),(192,'HOLIDAY_CREATE','Leave request created','Executed when a leave request is created','holiday',221),(193,'HOLIDAY_VALIDATE','Leave request validated','Executed when a leave request is validated','holiday',222),(194,'HOLIDAY_APPROVE','Leave request approved','Executed when a leave request is approved','holiday',223),(210,'MEMBER_SENTBYMAIL','Mails sent from member card','Executed when you send email from member card','member',23),(211,'CONTRACT_SENTBYMAIL','Contract sent by mail','Executed when a contract is sent by mail','contrat',18),(212,'PROPOSAL_SUPPLIER_VALIDATE','Price request validated','Executed when a commercial proposal is validated','proposal_supplier',10),(213,'PROPOSAL_SUPPLIER_SENTBYMAIL','Price request sent by mail','Executed when a commercial proposal is sent by mail','proposal_supplier',10),(214,'PROPOSAL_SUPPLIER_CLOSE_SIGNED','Price request closed signed','Executed when a customer proposal is closed signed','proposal_supplier',10),(215,'PROPOSAL_SUPPLIER_CLOSE_REFUSED','Price request closed refused','Executed when a customer proposal is closed refused','proposal_supplier',10),(216,'MEMBER_SUBSCRIPTION_CREATE','Member subscribtion recorded','Executed when a member subscribtion is deleted','member',24),(217,'MEMBER_SUBSCRIPTION_MODIFY','Member subscribtion modified','Executed when a member subscribtion is modified','member',24),(218,'MEMBER_SUBSCRIPTION_DELETE','Member subscribtion deleted','Executed when a member subscribtion is deleted','member',24);
    +/*!40000 ALTER TABLE `llx_c_action_trigger` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_actioncomm`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_actioncomm`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_actioncomm` (
    +  `id` int(11) NOT NULL,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `type` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'system',
    +  `libelle` varchar(48) COLLATE utf8_unicode_ci NOT NULL,
    +  `module` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `todo` tinyint(4) DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  `color` varchar(9) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `picto` varchar(48) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_actioncomm` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_actioncomm`
    +--
    +
    +LOCK TABLES `llx_c_actioncomm` WRITE;
    +/*!40000 ALTER TABLE `llx_c_actioncomm` DISABLE KEYS */;
    +INSERT INTO `llx_c_actioncomm` VALUES (1,'AC_TEL','system','Phone call',NULL,1,NULL,2,NULL,NULL),(2,'AC_FAX','system','Send Fax',NULL,1,NULL,3,NULL,NULL),(3,'AC_PROP','systemauto','Send commercial proposal by email','propal',1,NULL,10,NULL,NULL),(4,'AC_EMAIL','system','Send Email',NULL,1,NULL,4,NULL,NULL),(5,'AC_RDV','system','Rendez-vous',NULL,1,NULL,1,NULL,NULL),(8,'AC_COM','systemauto','Send customer order by email','order',1,NULL,8,NULL,NULL),(9,'AC_FAC','systemauto','Send customer invoice by email','invoice',1,NULL,6,NULL,NULL),(10,'AC_SHIP','systemauto','Send shipping by email','shipping',1,NULL,11,NULL,NULL),(11,'AC_INT','system','Intervention on site',NULL,1,NULL,4,NULL,NULL),(30,'AC_SUP_ORD','systemauto','Send supplier order by email','order_supplier',1,NULL,9,NULL,NULL),(31,'AC_SUP_INV','systemauto','Send supplier invoice by email','invoice_supplier',1,NULL,7,NULL,NULL),(40,'AC_OTH_AUTO','systemauto','Other (automatically inserted events)',NULL,1,NULL,20,NULL,NULL),(50,'AC_OTH','system','Other (manually inserted events)',NULL,1,NULL,5,NULL,NULL),(100700,'AC_CABMED','module','Send document by email','cabinetmed',0,NULL,100,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_c_actioncomm` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_availability`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_availability`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_availability` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_availability` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_availability`
    +--
    +
    +LOCK TABLES `llx_c_availability` WRITE;
    +/*!40000 ALTER TABLE `llx_c_availability` DISABLE KEYS */;
    +INSERT INTO `llx_c_availability` VALUES (1,'AV_NOW','Immediate',1),(2,'AV_1W','1 week',1),(3,'AV_2W','2 weeks',1),(4,'AV_3W','3 weeks',1);
    +/*!40000 ALTER TABLE `llx_c_availability` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_barcode_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_barcode_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_barcode_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `libelle` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `coder` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `example` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_barcode_type` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_barcode_type`
    +--
    +
    +LOCK TABLES `llx_c_barcode_type` WRITE;
    +/*!40000 ALTER TABLE `llx_c_barcode_type` DISABLE KEYS */;
    +INSERT INTO `llx_c_barcode_type` VALUES (1,'EAN8',1,'EAN8','0','1234567'),(2,'EAN13',1,'EAN13','phpbarcode','123456789012'),(3,'UPC',1,'UPC','0','123456789012'),(4,'ISBN',1,'ISBN','0','123456789'),(5,'C39',1,'Code 39','0','1234567890'),(6,'C128',1,'Code 128','tcpdfbarcode','ABCD1234567890'),(13,'DATAMATRIX',1,'Datamatrix','0','1234567xyz'),(14,'QRCODE',1,'Qr Code','0','www.dolibarr.org');
    +/*!40000 ALTER TABLE `llx_c_barcode_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_chargesociales`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_chargesociales`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_chargesociales` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `libelle` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `deductible` smallint(6) NOT NULL DEFAULT '0',
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_pays` int(11) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4110 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_chargesociales`
    +--
    +
    +LOCK TABLES `llx_c_chargesociales` WRITE;
    +/*!40000 ALTER TABLE `llx_c_chargesociales` DISABLE KEYS */;
    +INSERT INTO `llx_c_chargesociales` VALUES (1,'Allocations familiales',1,1,'TAXFAM',1,NULL,NULL),(2,'CSG Deductible',1,1,'TAXCSGD',1,NULL,NULL),(3,'CSG/CRDS NON Deductible',0,1,'TAXCSGND',1,NULL,NULL),(10,'Taxe apprentissage',0,1,'TAXAPP',1,NULL,NULL),(11,'Taxe professionnelle',0,1,'TAXPRO',1,NULL,NULL),(12,'Cotisation foncière des entreprises',0,1,'TAXCFE',1,NULL,NULL),(13,'Cotisation sur la valeur ajoutée des entreprises',0,1,'TAXCVAE',1,NULL,NULL),(20,'Impots locaux/fonciers',0,1,'TAXFON',1,NULL,NULL),(25,'Impots revenus',0,1,'TAXREV',1,NULL,NULL),(30,'Assurance Sante',0,1,'TAXSECU',1,NULL,NULL),(40,'Mutuelle',0,1,'TAXMUT',1,NULL,NULL),(50,'Assurance vieillesse',0,1,'TAXRET',1,NULL,NULL),(60,'Assurance Chomage',0,1,'TAXCHOM',1,NULL,NULL),(201,'ONSS',1,1,'TAXBEONSS',2,NULL,NULL),(210,'Precompte professionnel',1,1,'TAXBEPREPRO',2,NULL,NULL),(220,'Prime d\'existence',1,1,'TAXBEPRIEXI',2,NULL,NULL),(230,'Precompte immobilier',1,1,'TAXBEPREIMMO',2,NULL,NULL),(4101,'Krankenversicherung',1,1,'TAXATKV',41,NULL,NULL),(4102,'Unfallversicherung',1,1,'TAXATUV',41,NULL,NULL),(4103,'Pensionsversicherung',1,1,'TAXATPV',41,NULL,NULL),(4104,'Arbeitslosenversicherung',1,1,'TAXATAV',41,NULL,NULL),(4105,'Insolvenzentgeltsicherungsfond',1,1,'TAXATIESG',41,NULL,NULL),(4106,'Wohnbauförderung',1,1,'TAXATWF',41,NULL,NULL),(4107,'Arbeiterkammerumlage',1,1,'TAXATAK',41,NULL,NULL),(4108,'Mitarbeitervorsorgekasse',1,1,'TAXATMVK',41,NULL,NULL),(4109,'Familienlastenausgleichsfond',1,1,'TAXATFLAF',41,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_c_chargesociales` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_civility`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_civility`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_civility` (
    +  `rowid` int(11) NOT NULL,
    +  `code` varchar(6) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_civility` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_civility`
    +--
    +
    +LOCK TABLES `llx_c_civility` WRITE;
    +/*!40000 ALTER TABLE `llx_c_civility` DISABLE KEYS */;
    +INSERT INTO `llx_c_civility` VALUES (1,'MME','Madame',1,NULL),(3,'MR','Monsieur',1,NULL),(5,'MLE','Mademoiselle',1,NULL),(7,'MTRE','Maître',1,NULL),(8,'DR','Docteur',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_civility` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_country`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_country`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_country` (
    +  `rowid` int(11) NOT NULL,
    +  `code` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
    +  `code_iso` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `favorite` tinyint(4) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_c_country_code` (`code`),
    +  UNIQUE KEY `idx_c_country_label` (`label`),
    +  UNIQUE KEY `idx_c_country_code_iso` (`code_iso`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_country`
    +--
    +
    +LOCK TABLES `llx_c_country` WRITE;
    +/*!40000 ALTER TABLE `llx_c_country` DISABLE KEYS */;
    +INSERT INTO `llx_c_country` VALUES (0,'',NULL,'-',1,1),(1,'FR','FRA','France',1,0),(2,'BE','BEL','Belgium',1,0),(3,'IT','ITA','Italy',1,0),(4,'ES','ESP','Spain',1,0),(5,'DE','DEU','Germany',1,0),(6,'CH','CHE','Switzerland',1,0),(7,'GB','GBR','United Kingdom',1,0),(8,'IE','IRL','Irland',1,0),(9,'CN','CHN','China',1,0),(10,'TN','TUN','Tunisia',1,0),(11,'US','USA','United States',1,0),(12,'MA','MAR','Maroc',1,0),(13,'DZ','DZA','Algeria',1,0),(14,'CA','CAN','Canada',1,0),(15,'TG','TGO','Togo',1,0),(16,'GA','GAB','Gabon',1,0),(17,'NL','NLD','Nerderland',1,0),(18,'HU','HUN','Hongrie',1,0),(19,'RU','RUS','Russia',1,0),(20,'SE','SWE','Sweden',1,0),(21,'CI','CIV','Côte d\'Ivoire',1,0),(22,'SN','SEN','Senegal',1,0),(23,'AR','ARG','Argentine',1,0),(24,'CM','CMR','Cameroun',1,0),(25,'PT','PRT','Portugal',1,0),(26,'SA','SAU','Saudi Arabia',1,0),(27,'MC','MCO','Monaco',1,0),(28,'AU','AUS','Australia',1,0),(29,'SG','SGP','Singapour',1,0),(30,'AF','AFG','Afghanistan',1,0),(31,'AX','ALA','Iles Aland',1,0),(32,'AL','ALB','Albanie',1,0),(33,'AS','ASM','Samoa américaines',1,0),(34,'AD','AND','Andorre',1,0),(35,'AO','AGO','Angola',1,0),(36,'AI','AIA','Anguilla',1,0),(37,'AQ','ATA','Antarctique',1,0),(38,'AG','ATG','Antigua-et-Barbuda',1,0),(39,'AM','ARM','Arménie',1,0),(40,'AW','ABW','Aruba',1,0),(41,'AT','AUT','Autriche',1,0),(42,'AZ','AZE','Azerbaïdjan',1,0),(43,'BS','BHS','Bahamas',1,0),(44,'BH','BHR','Bahreïn',1,0),(45,'BD','BGD','Bangladesh',1,0),(46,'BB','BRB','Barbade',1,0),(47,'BY','BLR','Biélorussie',1,0),(48,'BZ','BLZ','Belize',1,0),(49,'BJ','BEN','Bénin',1,0),(50,'BM','BMU','Bermudes',1,0),(51,'BT','BTN','Bhoutan',1,0),(52,'BO','BOL','Bolivie',1,0),(53,'BA','BIH','Bosnie-Herzégovine',1,0),(54,'BW','BWA','Botswana',1,0),(55,'BV','BVT','Ile Bouvet',1,0),(56,'BR','BRA','Brazil',1,0),(57,'IO','IOT','Territoire britannique de l\'Océan Indien',1,0),(58,'BN','BRN','Brunei',1,0),(59,'BG','BGR','Bulgarie',1,0),(60,'BF','BFA','Burkina Faso',1,0),(61,'BI','BDI','Burundi',1,0),(62,'KH','KHM','Cambodge',1,0),(63,'CV','CPV','Cap-Vert',1,0),(64,'KY','CYM','Iles Cayman',1,0),(65,'CF','CAF','République centrafricaine',1,0),(66,'TD','TCD','Tchad',1,0),(67,'CL','CHL','Chili',1,0),(68,'CX','CXR','Ile Christmas',1,0),(69,'CC','CCK','Iles des Cocos (Keeling)',1,0),(70,'CO','COL','Colombie',1,0),(71,'KM','COM','Comores',1,0),(72,'CG','COG','Congo',1,0),(73,'CD','COD','République démocratique du Congo',1,0),(74,'CK','COK','Iles Cook',1,0),(75,'CR','CRI','Costa Rica',1,0),(76,'HR','HRV','Croatie',1,0),(77,'CU','CUB','Cuba',1,0),(78,'CY','CYP','Chypre',1,0),(79,'CZ','CZE','République Tchèque',1,0),(80,'DK','DNK','Danemark',1,0),(81,'DJ','DJI','Djibouti',1,0),(82,'DM','DMA','Dominique',1,0),(83,'DO','DOM','République Dominicaine',1,0),(84,'EC','ECU','Equateur',1,0),(85,'EG','EGY','Egypte',1,0),(86,'SV','SLV','Salvador',1,0),(87,'GQ','GNQ','Guinée Equatoriale',1,0),(88,'ER','ERI','Erythrée',1,0),(89,'EE','EST','Estonia',1,0),(90,'ET','ETH','Ethiopie',1,0),(91,'FK','FLK','Iles Falkland',1,0),(92,'FO','FRO','Iles Féroé',1,0),(93,'FJ','FJI','Iles Fidji',1,0),(94,'FI','FIN','Finlande',1,0),(95,'GF','GUF','Guyane française',1,0),(96,'PF','PYF','Polynésie française',1,0),(97,'TF','ATF','Terres australes françaises',1,0),(98,'GM','GMB','Gambie',1,0),(99,'GE','GEO','Georgia',1,0),(100,'GH','GHA','Ghana',1,0),(101,'GI','GIB','Gibraltar',1,0),(102,'GR','GRC','Greece',1,0),(103,'GL','GRL','Groenland',1,0),(104,'GD','GRD','Grenade',1,0),(106,'GU','GUM','Guam',1,0),(107,'GT','GTM','Guatemala',1,0),(108,'GN','GIN','Guinea',1,0),(109,'GW','GNB','Guinea-Bissao',1,0),(111,'HT','HTI','Haiti',1,0),(112,'HM','HMD','Iles Heard et McDonald',1,0),(113,'VA','VAT','Saint-Siège (Vatican)',1,0),(114,'HN','HND','Honduras',1,0),(115,'HK','HKG','Hong Kong',1,0),(116,'IS','ISL','Islande',1,0),(117,'IN','IND','India',1,0),(118,'ID','IDN','Indonésie',1,0),(119,'IR','IRN','Iran',1,0),(120,'IQ','IRQ','Iraq',1,0),(121,'IL','ISR','Israel',1,0),(122,'JM','JAM','Jamaïque',1,0),(123,'JP','JPN','Japon',1,0),(124,'JO','JOR','Jordanie',1,0),(125,'KZ','KAZ','Kazakhstan',1,0),(126,'KE','KEN','Kenya',1,0),(127,'KI','KIR','Kiribati',1,0),(128,'KP','PRK','North Corea',1,0),(129,'KR','KOR','South Corea',1,0),(130,'KW','KWT','Koweït',1,0),(131,'KG','KGZ','Kirghizistan',1,0),(132,'LA','LAO','Laos',1,0),(133,'LV','LVA','Lettonie',1,0),(134,'LB','LBN','Liban',1,0),(135,'LS','LSO','Lesotho',1,0),(136,'LR','LBR','Liberia',1,0),(137,'LY','LBY','Libye',1,0),(138,'LI','LIE','Liechtenstein',1,0),(139,'LT','LTU','Lituanie',1,0),(140,'LU','LUX','Luxembourg',1,0),(141,'MO','MAC','Macao',1,0),(142,'MK','MKD','ex-République yougoslave de Macédoine',1,0),(143,'MG','MDG','Madagascar',1,0),(144,'MW','MWI','Malawi',1,0),(145,'MY','MYS','Malaisie',1,0),(146,'MV','MDV','Maldives',1,0),(147,'ML','MLI','Mali',1,0),(148,'MT','MLT','Malte',1,0),(149,'MH','MHL','Iles Marshall',1,0),(151,'MR','MRT','Mauritanie',1,0),(152,'MU','MUS','Maurice',1,0),(153,'YT','MYT','Mayotte',1,0),(154,'MX','MEX','Mexique',1,0),(155,'FM','FSM','Micronésie',1,0),(156,'MD','MDA','Moldavie',1,0),(157,'MN','MNG','Mongolie',1,0),(158,'MS','MSR','Monserrat',1,0),(159,'MZ','MOZ','Mozambique',1,0),(160,'MM','MMR','Birmanie (Myanmar)',1,0),(161,'NA','NAM','Namibie',1,0),(162,'NR','NRU','Nauru',1,0),(163,'NP','NPL','Népal',1,0),(164,'AN',NULL,'Antilles néerlandaises',1,0),(165,'NC','NCL','Nouvelle-Calédonie',1,0),(166,'NZ','NZL','Nouvelle-Zélande',1,0),(167,'NI','NIC','Nicaragua',1,0),(168,'NE','NER','Niger',1,0),(169,'NG','NGA','Nigeria',1,0),(170,'NU','NIU','Nioué',1,0),(171,'NF','NFK','Ile Norfolk',1,0),(172,'MP','MNP','Mariannes du Nord',1,0),(173,'NO','NOR','Norvège',1,0),(174,'OM','OMN','Oman',1,0),(175,'PK','PAK','Pakistan',1,0),(176,'PW','PLW','Palaos',1,0),(177,'PS','PSE','Territoire Palestinien Occupé',1,0),(178,'PA','PAN','Panama',1,0),(179,'PG','PNG','Papouasie-Nouvelle-Guinée',1,0),(180,'PY','PRY','Paraguay',1,0),(181,'PE','PER','Peru',1,0),(182,'PH','PHL','Philippines',1,0),(183,'PN','PCN','Iles Pitcairn',1,0),(184,'PL','POL','Pologne',1,0),(185,'PR','PRI','Porto Rico',1,0),(186,'QA','QAT','Qatar',1,0),(188,'RO','ROU','Roumanie',1,0),(189,'RW','RWA','Rwanda',1,0),(190,'SH','SHN','Sainte-Hélène',1,0),(191,'KN','KNA','Saint-Christophe-et-Niévès',1,0),(192,'LC','LCA','Sainte-Lucie',1,0),(193,'PM','SPM','Saint-Pierre-et-Miquelon',1,0),(194,'VC','VCT','Saint-Vincent-et-les-Grenadines',1,0),(195,'WS','WSM','Samoa',1,0),(196,'SM','SMR','Saint-Marin',1,0),(197,'ST','STP','Sao Tomé-et-Principe',1,0),(198,'RS','SRB','Serbie',1,0),(199,'SC','SYC','Seychelles',1,0),(200,'SL','SLE','Sierra Leone',1,0),(201,'SK','SVK','Slovaquie',1,0),(202,'SI','SVN','Slovénie',1,0),(203,'SB','SLB','Iles Salomon',1,0),(204,'SO','SOM','Somalie',1,0),(205,'ZA','ZAF','Afrique du Sud',1,0),(206,'GS','SGS','Iles Géorgie du Sud et Sandwich du Sud',1,0),(207,'LK','LKA','Sri Lanka',1,0),(208,'SD','SDN','Soudan',1,0),(209,'SR','SUR','Suriname',1,0),(210,'SJ','SJM','Iles Svalbard et Jan Mayen',1,0),(211,'SZ','SWZ','Swaziland',1,0),(212,'SY','SYR','Syrie',1,0),(213,'TW','TWN','Taïwan',1,0),(214,'TJ','TJK','Tadjikistan',1,0),(215,'TZ','TZA','Tanzanie',1,0),(216,'TH','THA','Thaïlande',1,0),(217,'TL','TLS','Timor Oriental',1,0),(218,'TK','TKL','Tokélaou',1,0),(219,'TO','TON','Tonga',1,0),(220,'TT','TTO','Trinité-et-Tobago',1,0),(221,'TR','TUR','Turquie',1,0),(222,'TM','TKM','Turkménistan',1,0),(223,'TC','TCA','Iles Turks-et-Caicos',1,0),(224,'TV','TUV','Tuvalu',1,0),(225,'UG','UGA','Ouganda',1,0),(226,'UA','UKR','Ukraine',1,0),(227,'xx','ARE','Émirats arabes unishh',1,0),(228,'UM','UMI','Iles mineures éloignées des États-Unis',1,0),(229,'UY','URY','Uruguay',1,0),(230,'UZ','UZB','Ouzbékistan',1,0),(231,'VU','VUT','Vanuatu',1,0),(232,'VE','VEN','Vénézuela',1,0),(233,'VN','VNM','Viêt Nam',1,0),(234,'VG','VGB','Iles Vierges britanniques',1,0),(235,'VI','VIR','Iles Vierges américaines',1,0),(236,'WF','WLF','Wallis-et-Futuna',1,0),(237,'EH','ESH','Sahara occidental',1,0),(238,'YE','YEM','Yémen',1,0),(239,'ZM','ZMB','Zambie',1,0),(240,'ZW','ZWE','Zimbabwe',1,0),(241,'GG','GGY','Guernesey',1,0),(242,'IM','IMN','Ile de Man',1,0),(243,'JE','JEY','Jersey',1,0),(244,'ME','MNE','Monténégro',1,0),(245,'BL','BLM','Saint-Barthélemy',1,0),(246,'MF','MAF','Saint-Martin',1,0),(247,'hh',NULL,'hhh',1,0);
    +/*!40000 ALTER TABLE `llx_c_country` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_currencies`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_currencies`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_currencies` (
    +  `code_iso` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `unicode` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`code_iso`),
    +  UNIQUE KEY `uk_c_currencies_code_iso` (`code_iso`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_currencies`
    +--
    +
    +LOCK TABLES `llx_c_currencies` WRITE;
    +/*!40000 ALTER TABLE `llx_c_currencies` DISABLE KEYS */;
    +INSERT INTO `llx_c_currencies` VALUES ('AED','United Arab Emirates Dirham',NULL,1),('AFN','Afghanistan Afghani','[1547]',1),('ALL','Albania Leklll','[76,101,107]',1),('ANG','Netherlands Antilles Guilder','[402]',1),('ARP','Pesos argentins',NULL,0),('ARS','Argentino Peso','[36]',1),('ATS','Shiliing autrichiens',NULL,0),('AUD','Australia Dollar','[36]',1),('AWG','Aruba Guilder','[402]',1),('AZN','Azerbaijan New Manat','[1084,1072,1085]',1),('BAM','Bosnia and Herzegovina Convertible Marka','[75,77]',1),('BBD','Barbados Dollar','[36]',1),('BEF','Francs belges',NULL,0),('BGN','Bulgaria Lev','[1083,1074]',1),('BMD','Bermuda Dollar','[36]',1),('BND','Brunei Darussalam Dollar','[36]',1),('BOB','Bolivia Boliviano','[36,98]',1),('BRL','Brazil Real','[82,36]',1),('BSD','Bahamas Dollar','[36]',1),('BWP','Botswana Pula','[80]',1),('BYR','Belarus Ruble','[112,46]',1),('BZD','Belize Dollar','[66,90,36]',1),('CAD','Canada Dollar','[36]',1),('CHF','Switzerland Franc','[67,72,70]',1),('CLP','Chile Peso','[36]',1),('CNY','China Yuan Renminbi','[165]',1),('COP','Colombia Peso','[36]',1),('CRC','Costa Rica Colon','[8353]',1),('CUP','Cuba Peso','[8369]',1),('CZK','Czech Republic Koruna','[75,269]',1),('DEM','Deutsch mark',NULL,0),('DKK','Denmark Krone','[107,114]',1),('DOP','Dominican Republic Peso','[82,68,36]',1),('DZD','Algeria Dinar',NULL,1),('EEK','Estonia Kroon','[107,114]',1),('EGP','Egypt Pound','[163]',1),('ESP','Pesete',NULL,0),('EUR','Euro Member Countries','[8364]',1),('FIM','Mark finlandais',NULL,0),('FJD','Fiji Dollar','[36]',1),('FKP','Falkland Islands (Malvinas) Pound','[163]',1),('FRF','Francs francais',NULL,0),('GBP','United Kingdom Pound','[163]',1),('GGP','Guernsey Pound','[163]',1),('GHC','Ghana Cedis','[162]',1),('GIP','Gibraltar Pound','[163]',1),('GRD','Drachme (grece)',NULL,0),('GTQ','Guatemala Quetzal','[81]',1),('GYD','Guyana Dollar','[36]',1),('hhh','ddd','[]',1),('HKD','Hong Kong Dollar','[36]',1),('HNL','Honduras Lempira','[76]',1),('HRK','Croatia Kuna','[107,110]',1),('HUF','Hungary Forint','[70,116]',1),('IDR','Indonesia Rupiah','[82,112]',1),('IEP','Livres irlandaises',NULL,0),('ILS','Israel Shekel','[8362]',1),('IMP','Isle of Man Pound','[163]',1),('INR','India Rupee',NULL,1),('IRR','Iran Rial','[65020]',1),('ISK','Iceland Krona','[107,114]',1),('ITL','Lires',NULL,0),('JEP','Jersey Pound','[163]',1),('JMD','Jamaica Dollar','[74,36]',1),('JPY','Japan Yen','[165]',1),('KES','Kenya Shilling',NULL,1),('KGS','Kyrgyzstan Som','[1083,1074]',1),('KHR','Cambodia Riel','[6107]',1),('KPW','Korea (North) Won','[8361]',1),('KRW','Korea (South) Won','[8361]',1),('KYD','Cayman Islands Dollar','[36]',1),('KZT','Kazakhstan Tenge','[1083,1074]',1),('LAK','Laos Kip','[8365]',1),('LBP','Lebanon Pound','[163]',1),('LKR','Sri Lanka Rupee','[8360]',1),('LRD','Liberia Dollar','[36]',1),('LTL','Lithuania Litas','[76,116]',1),('LUF','Francs luxembourgeois',NULL,0),('LVL','Latvia Lat','[76,115]',1),('MAD','Morocco Dirham',NULL,1),('MKD','Macedonia Denar','[1076,1077,1085]',1),('MNT','Mongolia Tughrik','[8366]',1),('MRO','Mauritania Ouguiya',NULL,1),('MUR','Mauritius Rupee','[8360]',1),('MXN','Mexico Peso','[36]',1),('MXP','Pesos Mexicans',NULL,0),('MYR','Malaysia Ringgit','[82,77]',1),('MZN','Mozambique Metical','[77,84]',1),('NAD','Namibia Dollar','[36]',1),('NGN','Nigeria Naira','[8358]',1),('NIO','Nicaragua Cordoba','[67,36]',1),('NLG','Florins',NULL,0),('NOK','Norway Krone','[107,114]',1),('NPR','Nepal Rupee','[8360]',1),('NZD','New Zealand Dollar','[36]',1),('OMR','Oman Rial','[65020]',1),('PAB','Panama Balboa','[66,47,46]',1),('PEN','Peru Nuevo Sol','[83,47,46]',1),('PHP','Philippines Peso','[8369]',1),('PKR','Pakistan Rupee','[8360]',1),('PLN','Poland Zloty','[122,322]',1),('PTE','Escudos',NULL,0),('PYG','Paraguay Guarani','[71,115]',1),('QAR','Qatar Riyal','[65020]',1),('RON','Romania New Leu','[108,101,105]',1),('RSD','Serbia Dinar','[1044,1080,1085,46]',1),('RUB','Russia Ruble','[1088,1091,1073]',1),('SAR','Saudi Arabia Riyal','[65020]',1),('SBD','Solomon Islands Dollar','[36]',1),('SCR','Seychelles Rupee','[8360]',1),('SEK','Sweden Krona','[107,114]',1),('SGD','Singapore Dollar','[36]',1),('SHP','Saint Helena Pound','[163]',1),('SKK','Couronnes slovaques',NULL,0),('SOS','Somalia Shilling','[83]',1),('SRD','Suriname Dollar','[36]',1),('SUR','Rouble',NULL,0),('SVC','El Salvador Colon','[36]',1),('SYP','Syria Pound','[163]',1),('THB','Thailand Baht','[3647]',1),('TND','Tunisia Dinar',NULL,1),('TRL','Turkey Lira','[84,76]',1),('TRY','Turkey Lira','[8356]',1),('TTD','Trinidad and Tobago Dollar','[84,84,36]',1),('TVD','Tuvalu Dollar','[36]',1),('TWD','Taiwan New Dollar','[78,84,36]',1),('UAH','Ukraine Hryvna','[8372]',1),('USD','United States Dollar','[36]',1),('UYU','Uruguay Peso','[36,85]',1),('UZS','Uzbekistan Som','[1083,1074]',1),('VEF','Venezuela Bolivar Fuerte','[66,115]',1),('VND','Viet Nam Dong','[8363]',1),('XAF','Communaute Financiere Africaine (BEAC) CFA Franc',NULL,1),('XCD','East Caribbean Dollar','[36]',1),('XEU','Ecus',NULL,0),('XOF','Communaute Financiere Africaine (BCEAO) Franc',NULL,1),('XPF','Franc pacifique (XPF)',NULL,1),('YER','Yemen Rial','[65020]',1),('ZAR','South Africa Rand','[82]',1),('ZWD','Zimbabwe Dollar','[90,36]',1);
    +/*!40000 ALTER TABLE `llx_c_currencies` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_departements`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_departements`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_departements` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code_departement` varchar(6) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_region` int(11) DEFAULT NULL,
    +  `cheflieu` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tncc` int(11) DEFAULT NULL,
    +  `ncc` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `nom` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_departements` (`code_departement`,`fk_region`),
    +  KEY `idx_departements_fk_region` (`fk_region`),
    +  CONSTRAINT `fk_departements_code_region` FOREIGN KEY (`fk_region`) REFERENCES `llx_c_regions` (`code_region`),
    +  CONSTRAINT `fk_departements_fk_region` FOREIGN KEY (`fk_region`) REFERENCES `llx_c_regions` (`code_region`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2100 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_departements`
    +--
    +
    +LOCK TABLES `llx_c_departements` WRITE;
    +/*!40000 ALTER TABLE `llx_c_departements` DISABLE KEYS */;
    +INSERT INTO `llx_c_departements` VALUES (1,'0',0,'0',0,'-','-',1),(2,'01',82,'01053',5,'AIN','Ain',1),(3,'02',22,'02408',5,'AISNE','Aisne',1),(4,'03',83,'03190',5,'ALLIER','Allier',1),(5,'04',93,'04070',4,'ALPES-DE-HAUTE-PROVENCE','Alpes-de-Haute-Provence',1),(6,'05',93,'05061',4,'HAUTES-ALPES','Hautes-Alpes',1),(7,'06',93,'06088',4,'ALPES-MARITIMES','Alpes-Maritimes',1),(8,'07',82,'07186',5,'ARDECHE','Ardèche',1),(9,'08',21,'08105',4,'ARDENNES','Ardennes',1),(10,'09',73,'09122',5,'ARIEGE','Ariège',1),(11,'10',21,'10387',5,'AUBE','Aube',1),(12,'11',91,'11069',5,'AUDE','Aude',1),(13,'12',73,'12202',5,'AVEYRON','Aveyron',1),(14,'13',93,'13055',4,'BOUCHES-DU-RHONE','Bouches-du-Rhône',1),(15,'14',25,'14118',2,'CALVADOS','Calvados',1),(16,'15',83,'15014',2,'CANTAL','Cantal',1),(17,'16',54,'16015',3,'CHARENTE','Charente',1),(18,'17',54,'17300',3,'CHARENTE-MARITIME','Charente-Maritime',1),(19,'18',24,'18033',2,'CHER','Cher',1),(20,'19',74,'19272',3,'CORREZE','Corrèze',1),(21,'2A',94,'2A004',3,'CORSE-DU-SUD','Corse-du-Sud',1),(22,'2B',94,'2B033',3,'HAUTE-CORSE','Haute-Corse',1),(23,'21',26,'21231',3,'COTE-D\'OR','Côte-d\'Or',1),(24,'22',53,'22278',4,'COTES-D\'ARMOR','Côtes-d\'Armor',1),(25,'23',74,'23096',3,'CREUSE','Creuse',1),(26,'24',72,'24322',3,'DORDOGNE','Dordogne',1),(27,'25',43,'25056',2,'DOUBS','Doubs',1),(28,'26',82,'26362',3,'DROME','Drôme',1),(29,'27',23,'27229',5,'EURE','Eure',1),(30,'28',24,'28085',1,'EURE-ET-LOIR','Eure-et-Loir',1),(31,'29',53,'29232',2,'FINISTERE','Finistère',1),(32,'30',91,'30189',2,'GARD','Gard',1),(33,'31',73,'31555',3,'HAUTE-GARONNE','Haute-Garonne',1),(34,'32',73,'32013',2,'GERS','Gers',1),(35,'33',72,'33063',3,'GIRONDE','Gironde',1),(36,'34',91,'34172',5,'HERAULT','Hérault',1),(37,'35',53,'35238',1,'ILLE-ET-VILAINE','Ille-et-Vilaine',1),(38,'36',24,'36044',5,'INDRE','Indre',1),(39,'37',24,'37261',1,'INDRE-ET-LOIRE','Indre-et-Loire',1),(40,'38',82,'38185',5,'ISERE','Isère',1),(41,'39',43,'39300',2,'JURA','Jura',1),(42,'40',72,'40192',4,'LANDES','Landes',1),(43,'41',24,'41018',0,'LOIR-ET-CHER','Loir-et-Cher',1),(44,'42',82,'42218',3,'LOIRE','Loire',1),(45,'43',83,'43157',3,'HAUTE-LOIRE','Haute-Loire',1),(46,'44',52,'44109',3,'LOIRE-ATLANTIQUE','Loire-Atlantique',1),(47,'45',24,'45234',2,'LOIRET','Loiret',1),(48,'46',73,'46042',2,'LOT','Lot',1),(49,'47',72,'47001',0,'LOT-ET-GARONNE','Lot-et-Garonne',1),(50,'48',91,'48095',3,'LOZERE','Lozère',1),(51,'49',52,'49007',0,'MAINE-ET-LOIRE','Maine-et-Loire',1),(52,'50',25,'50502',3,'MANCHE','Manche',1),(53,'51',21,'51108',3,'MARNE','Marne',1),(54,'52',21,'52121',3,'HAUTE-MARNE','Haute-Marne',1),(55,'53',52,'53130',3,'MAYENNE','Mayenne',1),(56,'54',41,'54395',0,'MEURTHE-ET-MOSELLE','Meurthe-et-Moselle',1),(57,'55',41,'55029',3,'MEUSE','Meuse',1),(58,'56',53,'56260',2,'MORBIHAN','Morbihan',1),(59,'57',41,'57463',3,'MOSELLE','Moselle',1),(60,'58',26,'58194',3,'NIEVRE','Nièvre',1),(61,'59',31,'59350',2,'NORD','Nord',1),(62,'60',22,'60057',5,'OISE','Oise',1),(63,'61',25,'61001',5,'ORNE','Orne',1),(64,'62',31,'62041',2,'PAS-DE-CALAIS','Pas-de-Calais',1),(65,'63',83,'63113',2,'PUY-DE-DOME','Puy-de-Dôme',1),(66,'64',72,'64445',4,'PYRENEES-ATLANTIQUES','Pyrénées-Atlantiques',1),(67,'65',73,'65440',4,'HAUTES-PYRENEES','Hautes-Pyrénées',1),(68,'66',91,'66136',4,'PYRENEES-ORIENTALES','Pyrénées-Orientales',1),(69,'67',42,'67482',2,'BAS-RHIN','Bas-Rhin',1),(70,'68',42,'68066',2,'HAUT-RHIN','Haut-Rhin',1),(71,'69',82,'69123',2,'RHONE','Rhône',1),(72,'70',43,'70550',3,'HAUTE-SAONE','Haute-Saône',1),(73,'71',26,'71270',0,'SAONE-ET-LOIRE','Saône-et-Loire',1),(74,'72',52,'72181',3,'SARTHE','Sarthe',1),(75,'73',82,'73065',3,'SAVOIE','Savoie',1),(76,'74',82,'74010',3,'HAUTE-SAVOIE','Haute-Savoie',1),(77,'75',11,'75056',0,'PARIS','Paris',1),(78,'76',23,'76540',3,'SEINE-MARITIME','Seine-Maritime',1),(79,'77',11,'77288',0,'SEINE-ET-MARNE','Seine-et-Marne',1),(80,'78',11,'78646',4,'YVELINES','Yvelines',1),(81,'79',54,'79191',4,'DEUX-SEVRES','Deux-Sèvres',1),(82,'80',22,'80021',3,'SOMME','Somme',1),(83,'81',73,'81004',2,'TARN','Tarn',1),(84,'82',73,'82121',0,'TARN-ET-GARONNE','Tarn-et-Garonne',1),(85,'83',93,'83137',2,'VAR','Var',1),(86,'84',93,'84007',0,'VAUCLUSE','Vaucluse',1),(87,'85',52,'85191',3,'VENDEE','Vendée',1),(88,'86',54,'86194',3,'VIENNE','Vienne',1),(89,'87',74,'87085',3,'HAUTE-VIENNE','Haute-Vienne',1),(90,'88',41,'88160',4,'VOSGES','Vosges',1),(91,'89',26,'89024',5,'YONNE','Yonne',1),(92,'90',43,'90010',0,'TERRITOIRE DE BELFORT','Territoire de Belfort',1),(93,'91',11,'91228',5,'ESSONNE','Essonne',1),(94,'92',11,'92050',4,'HAUTS-DE-SEINE','Hauts-de-Seine',1),(95,'93',11,'93008',3,'SEINE-SAINT-DENIS','Seine-Saint-Denis',1),(96,'94',11,'94028',2,'VAL-DE-MARNE','Val-de-Marne',1),(97,'95',11,'95500',2,'VAL-D\'OISE','Val-d\'Oise',1),(98,'971',1,'97105',3,'GUADELOUPE','Guadeloupe',1),(99,'972',2,'97209',3,'MARTINIQUE','Martinique',1),(100,'973',3,'97302',3,'GUYANE','Guyane',1),(101,'974',4,'97411',3,'REUNION','Réunion',1),(102,'01',201,'',1,'ANVERS','Anvers',1),(103,'02',203,'',3,'BRUXELLES-CAPITALE','Bruxelles-Capitale',1),(104,'03',202,'',2,'BRABANT-WALLON','Brabant-Wallon',1),(105,'04',201,'',1,'BRABANT-FLAMAND','Brabant-Flamand',1),(106,'05',201,'',1,'FLANDRE-OCCIDENTALE','Flandre-Occidentale',1),(107,'06',201,'',1,'FLANDRE-ORIENTALE','Flandre-Orientale',1),(108,'07',202,'',2,'HAINAUT','Hainaut',1),(109,'08',201,'',2,'LIEGE','Liège',1),(110,'09',202,'',1,'LIMBOURG','Limbourg',1),(111,'10',202,'',2,'LUXEMBOURG','Luxembourg',1),(112,'11',201,'',2,'NAMUR','Namur',1),(113,'NSW',2801,'',1,'','New South Wales',1),(114,'VIC',2801,'',1,'','Victoria',1),(115,'QLD',2801,'',1,'','Queensland',1),(116,'SA',2801,'',1,'','South Australia',1),(117,'ACT',2801,'',1,'','Australia Capital Territory',1),(118,'TAS',2801,'',1,'','Tasmania',1),(119,'WA',2801,'',1,'','Western Australia',1),(120,'NT',2801,'',1,'','Northern Territory',1),(121,'VI',419,'',19,'ALAVA','Álava',1),(122,'AB',404,'',4,'ALBACETE','Albacete',1),(123,'A',411,'',11,'ALICANTE','Alicante',1),(124,'AL',401,'',1,'ALMERIA','Almería',1),(125,'AV',403,'',3,'AVILA','Avila',1),(126,'BA',412,'',12,'BADAJOZ','Badajoz',1),(127,'PM',414,'',14,'ISLAS BALEARES','Islas Baleares',1),(128,'B',406,'',6,'BARCELONA','Barcelona',1),(129,'BU',403,'',8,'BURGOS','Burgos',1),(130,'CC',412,'',12,'CACERES','Cáceres',1),(131,'CA',401,'',1,'CADIz','Cádiz',1),(132,'CS',411,'',11,'CASTELLON','Castellón',1),(133,'CR',404,'',4,'CIUDAD REAL','Ciudad Real',1),(134,'CO',401,'',1,'CORDOBA','Córdoba',1),(135,'C',413,'',13,'LA CORUÑA','La Coruña',1),(136,'CU',404,'',4,'CUENCA','Cuenca',1),(137,'GI',406,'',6,'GERONA','Gerona',1),(138,'GR',401,'',1,'GRANADA','Granada',1),(139,'GU',404,'',4,'GUADALAJARA','Guadalajara',1),(140,'SS',419,'',19,'GUIPUZCOA','Guipúzcoa',1),(141,'H',401,'',1,'HUELVA','Huelva',1),(142,'HU',402,'',2,'HUESCA','Huesca',1),(143,'J',401,'',1,'JAEN','Jaén',1),(144,'LE',403,'',3,'LEON','León',1),(145,'L',406,'',6,'LERIDA','Lérida',1),(146,'LO',415,'',15,'LA RIOJA','La Rioja',1),(147,'LU',413,'',13,'LUGO','Lugo',1),(148,'M',416,'',16,'MADRID','Madrid',1),(149,'MA',401,'',1,'MALAGA','Málaga',1),(150,'MU',417,'',17,'MURCIA','Murcia',1),(151,'NA',408,'',8,'NAVARRA','Navarra',1),(152,'OR',413,'',13,'ORENSE','Orense',1),(153,'O',418,'',18,'ASTURIAS','Asturias',1),(154,'P',403,'',3,'PALENCIA','Palencia',1),(155,'GC',405,'',5,'LAS PALMAS','Las Palmas',1),(156,'PO',413,'',13,'PONTEVEDRA','Pontevedra',1),(157,'SA',403,'',3,'SALAMANCA','Salamanca',1),(158,'TF',405,'',5,'STA. CRUZ DE TENERIFE','Sta. Cruz de Tenerife',1),(159,'S',410,'',10,'CANTABRIA','Cantabria',1),(160,'SG',403,'',3,'SEGOVIA','Segovia',1),(161,'SE',401,'',1,'SEVILLA','Sevilla',1),(162,'SO',403,'',3,'SORIA','Soria',1),(163,'T',406,'',6,'TARRAGONA','Tarragona',1),(164,'TE',402,'',2,'TERUEL','Teruel',1),(165,'TO',404,'',5,'TOLEDO','Toledo',1),(166,'V',411,'',11,'VALENCIA','Valencia',1),(167,'VA',403,'',3,'VALLADOLID','Valladolid',1),(168,'BI',419,'',19,'VIZCAYA','Vizcaya',1),(169,'ZA',403,'',3,'ZAMORA','Zamora',1),(170,'Z',402,'',1,'ZARAGOZA','Zaragoza',1),(171,'CE',407,'',7,'CEUTA','Ceuta',1),(172,'ML',409,'',9,'MELILLA','Melilla',1),(174,'AG',601,NULL,NULL,'ARGOVIE','Argovie',1),(175,'AI',601,NULL,NULL,'APPENZELL RHODES INTERIEURES','Appenzell Rhodes intérieures',1),(176,'AR',601,NULL,NULL,'APPENZELL RHODES EXTERIEURES','Appenzell Rhodes extérieures',1),(177,'BE',601,NULL,NULL,'BERNE','Berne',1),(178,'BL',601,NULL,NULL,'BALE CAMPAGNE','Bâle Campagne',1),(179,'BS',601,NULL,NULL,'BALE VILLE','Bâle Ville',1),(180,'FR',601,NULL,NULL,'FRIBOURG','Fribourg',1),(181,'GE',601,NULL,NULL,'GENEVE','Genève',1),(182,'GL',601,NULL,NULL,'GLARIS','Glaris',1),(183,'GR',601,NULL,NULL,'GRISONS','Grisons',1),(184,'JU',601,NULL,NULL,'JURA','Jura',1),(185,'LU',601,NULL,NULL,'LUCERNE','Lucerne',1),(186,'NE',601,NULL,NULL,'NEUCHATEL','Neuchâtel',1),(187,'NW',601,NULL,NULL,'NIDWALD','Nidwald',1),(188,'OW',601,NULL,NULL,'OBWALD','Obwald',1),(189,'SG',601,NULL,NULL,'SAINT-GALL','Saint-Gall',1),(190,'SH',601,NULL,NULL,'SCHAFFHOUSE','Schaffhouse',1),(191,'SO',601,NULL,NULL,'SOLEURE','Soleure',1),(192,'SZ',601,NULL,NULL,'SCHWYZ','Schwyz',1),(193,'TG',601,NULL,NULL,'THURGOVIE','Thurgovie',1),(194,'TI',601,NULL,NULL,'TESSIN','Tessin',1),(195,'UR',601,NULL,NULL,'URI','Uri',1),(196,'VD',601,NULL,NULL,'VAUD','Vaud',1),(197,'VS',601,NULL,NULL,'VALAIS','Valais',1),(198,'ZG',601,NULL,NULL,'ZUG','Zug',1),(199,'ZH',601,NULL,NULL,'ZURICH','Zürich',1),(200,'AL',1101,'',0,'ALABAMA','Alabama',1),(201,'AK',1101,'',0,'ALASKA','Alaska',1),(202,'AZ',1101,'',0,'ARIZONA','Arizona',1),(203,'AR',1101,'',0,'ARKANSAS','Arkansas',1),(204,'CA',1101,'',0,'CALIFORNIA','California',1),(205,'CO',1101,'',0,'COLORADO','Colorado',1),(206,'CT',1101,'',0,'CONNECTICUT','Connecticut',1),(207,'DE',1101,'',0,'DELAWARE','Delaware',1),(208,'FL',1101,'',0,'FLORIDA','Florida',1),(209,'GA',1101,'',0,'GEORGIA','Georgia',1),(210,'HI',1101,'',0,'HAWAII','Hawaii',1),(211,'ID',1101,'',0,'IDAHO','Idaho',1),(212,'IL',1101,'',0,'ILLINOIS','Illinois',1),(213,'IN',1101,'',0,'INDIANA','Indiana',1),(214,'IA',1101,'',0,'IOWA','Iowa',1),(215,'KS',1101,'',0,'KANSAS','Kansas',1),(216,'KY',1101,'',0,'KENTUCKY','Kentucky',1),(217,'LA',1101,'',0,'LOUISIANA','Louisiana',1),(218,'ME',1101,'',0,'MAINE','Maine',1),(219,'MD',1101,'',0,'MARYLAND','Maryland',1),(220,'MA',1101,'',0,'MASSACHUSSETTS','Massachusetts',1),(221,'MI',1101,'',0,'MICHIGAN','Michigan',1),(222,'MN',1101,'',0,'MINNESOTA','Minnesota',1),(223,'MS',1101,'',0,'MISSISSIPPI','Mississippi',1),(224,'MO',1101,'',0,'MISSOURI','Missouri',1),(225,'MT',1101,'',0,'MONTANA','Montana',1),(226,'NE',1101,'',0,'NEBRASKA','Nebraska',1),(227,'NV',1101,'',0,'NEVADA','Nevada',1),(228,'NH',1101,'',0,'NEW HAMPSHIRE','New Hampshire',1),(229,'NJ',1101,'',0,'NEW JERSEY','New Jersey',1),(230,'NM',1101,'',0,'NEW MEXICO','New Mexico',1),(231,'NY',1101,'',0,'NEW YORK','New York',1),(232,'NC',1101,'',0,'NORTH CAROLINA','North Carolina',1),(233,'ND',1101,'',0,'NORTH DAKOTA','North Dakota',1),(234,'OH',1101,'',0,'OHIO','Ohio',1),(235,'OK',1101,'',0,'OKLAHOMA','Oklahoma',1),(236,'OR',1101,'',0,'OREGON','Oregon',1),(237,'PA',1101,'',0,'PENNSYLVANIA','Pennsylvania',1),(238,'RI',1101,'',0,'RHODE ISLAND','Rhode Island',1),(239,'SC',1101,'',0,'SOUTH CAROLINA','South Carolina',1),(240,'SD',1101,'',0,'SOUTH DAKOTA','South Dakota',1),(241,'TN',1101,'',0,'TENNESSEE','Tennessee',1),(242,'TX',1101,'',0,'TEXAS','Texas',1),(243,'UT',1101,'',0,'UTAH','Utah',1),(244,'VT',1101,'',0,'VERMONT','Vermont',1),(245,'VA',1101,'',0,'VIRGINIA','Virginia',1),(246,'WA',1101,'',0,'WASHINGTON','Washington',1),(247,'WV',1101,'',0,'WEST VIRGINIA','West Virginia',1),(248,'WI',1101,'',0,'WISCONSIN','Wisconsin',1),(249,'WY',1101,'',0,'WYOMING','Wyoming',1),(250,'SS',8601,NULL,NULL,NULL,'San Salvador',1),(251,'SA',8603,NULL,NULL,NULL,'Santa Ana',1),(252,'AH',8603,NULL,NULL,NULL,'Ahuachapan',1),(253,'SO',8603,NULL,NULL,NULL,'Sonsonate',1),(254,'US',8602,NULL,NULL,NULL,'Usulutan',1),(255,'SM',8602,NULL,NULL,NULL,'San Miguel',1),(256,'MO',8602,NULL,NULL,NULL,'Morazan',1),(257,'LU',8602,NULL,NULL,NULL,'La Union',1),(258,'LL',8601,NULL,NULL,NULL,'La Libertad',1),(259,'CH',8601,NULL,NULL,NULL,'Chalatenango',1),(260,'CA',8601,NULL,NULL,NULL,'Cabañas',1),(261,'LP',8601,NULL,NULL,NULL,'La Paz',1),(262,'SV',8601,NULL,NULL,NULL,'San Vicente',1),(263,'CU',8601,NULL,NULL,NULL,'Cuscatlan',1),(264,'2301',2301,'',0,'CATAMARCA','Catamarca',1),(265,'2302',2301,'',0,'JUJUY','Jujuy',1),(266,'2303',2301,'',0,'TUCAMAN','Tucamán',1),(267,'2304',2301,'',0,'SANTIAGO DEL ESTERO','Santiago del Estero',1),(268,'2305',2301,'',0,'SALTA','Salta',1),(269,'2306',2302,'',0,'CHACO','Chaco',1),(270,'2307',2302,'',0,'CORRIENTES','Corrientes',1),(271,'2308',2302,'',0,'ENTRE RIOS','Entre Ríos',1),(272,'2309',2302,'',0,'FORMOSA','Formosa',1),(273,'2310',2302,'',0,'SANTA FE','Santa Fe',1),(274,'2311',2303,'',0,'LA RIOJA','La Rioja',1),(275,'2312',2303,'',0,'MENDOZA','Mendoza',1),(276,'2313',2303,'',0,'SAN JUAN','San Juan',1),(277,'2314',2303,'',0,'SAN LUIS','San Luis',1),(278,'2315',2304,'',0,'CORDOBA','Córdoba',1),(279,'2316',2304,'',0,'BUENOS AIRES','Buenos Aires',1),(280,'2317',2304,'',0,'CABA','Caba',1),(281,'2318',2305,'',0,'LA PAMPA','La Pampa',1),(282,'2319',2305,'',0,'NEUQUEN','Neuquén',1),(283,'2320',2305,'',0,'RIO NEGRO','Río Negro',1),(284,'2321',2305,'',0,'CHUBUT','Chubut',1),(285,'2322',2305,'',0,'SANTA CRUZ','Santa Cruz',1),(286,'2323',2305,'',0,'TIERRA DEL FUEGO','Tierra del Fuego',1),(287,'2324',2305,'',0,'ISLAS MALVINAS','Islas Malvinas',1),(288,'2325',2305,'',0,'ANTARTIDA','Antártida',1),(289,'AN',11701,NULL,0,'AN','Andaman & Nicobar',1),(290,'AP',11701,NULL,0,'AP','Andhra Pradesh',1),(291,'AR',11701,NULL,0,'AR','Arunachal Pradesh',1),(292,'AS',11701,NULL,0,'AS','Assam',1),(293,'BR',11701,NULL,0,'BR','Bihar',1),(294,'CG',11701,NULL,0,'CG','Chattisgarh',1),(295,'CH',11701,NULL,0,'CH','Chandigarh',1),(296,'DD',11701,NULL,0,'DD','Daman & Diu',1),(297,'DL',11701,NULL,0,'DL','Delhi',1),(298,'DN',11701,NULL,0,'DN','Dadra and Nagar Haveli',1),(299,'GA',11701,NULL,0,'GA','Goa',1),(300,'GJ',11701,NULL,0,'GJ','Gujarat',1),(301,'HP',11701,NULL,0,'HP','Himachal Pradesh',1),(302,'HR',11701,NULL,0,'HR','Haryana',1),(303,'JH',11701,NULL,0,'JH','Jharkhand',1),(304,'JK',11701,NULL,0,'JK','Jammu & Kashmir',1),(305,'KA',11701,NULL,0,'KA','Karnataka',1),(306,'KL',11701,NULL,0,'KL','Kerala',1),(307,'LD',11701,NULL,0,'LD','Lakshadweep',1),(308,'MH',11701,NULL,0,'MH','Maharashtra',1),(309,'ML',11701,NULL,0,'ML','Meghalaya',1),(310,'MN',11701,NULL,0,'MN','Manipur',1),(311,'MP',11701,NULL,0,'MP','Madhya Pradesh',1),(312,'MZ',11701,NULL,0,'MZ','Mizoram',1),(313,'NL',11701,NULL,0,'NL','Nagaland',1),(314,'OR',11701,NULL,0,'OR','Orissa',1),(315,'PB',11701,NULL,0,'PB','Punjab',1),(316,'PY',11701,NULL,0,'PY','Puducherry',1),(317,'RJ',11701,NULL,0,'RJ','Rajasthan',1),(318,'SK',11701,NULL,0,'SK','Sikkim',1),(319,'TN',11701,NULL,0,'TN','Tamil Nadu',1),(320,'TR',11701,NULL,0,'TR','Tripura',1),(321,'UL',11701,NULL,0,'UL','Uttarakhand',1),(322,'UP',11701,NULL,0,'UP','Uttar Pradesh',1),(323,'WB',11701,NULL,0,'WB','West Bengal',1),(374,'151',6715,'',0,'151','Arica',1),(375,'152',6715,'',0,'152','Parinacota',1),(376,'011',6701,'',0,'011','Iquique',1),(377,'014',6701,'',0,'014','Tamarugal',1),(378,'021',6702,'',0,'021','Antofagasa',1),(379,'022',6702,'',0,'022','El Loa',1),(380,'023',6702,'',0,'023','Tocopilla',1),(381,'031',6703,'',0,'031','Copiapó',1),(382,'032',6703,'',0,'032','Chañaral',1),(383,'033',6703,'',0,'033','Huasco',1),(384,'041',6704,'',0,'041','Elqui',1),(385,'042',6704,'',0,'042','Choapa',1),(386,'043',6704,'',0,'043','Limarí',1),(387,'051',6705,'',0,'051','Valparaíso',1),(388,'052',6705,'',0,'052','Isla de Pascua',1),(389,'053',6705,'',0,'053','Los Andes',1),(390,'054',6705,'',0,'054','Petorca',1),(391,'055',6705,'',0,'055','Quillota',1),(392,'056',6705,'',0,'056','San Antonio',1),(393,'057',6705,'',0,'057','San Felipe de Aconcagua',1),(394,'058',6705,'',0,'058','Marga Marga',1),(395,'061',6706,'',0,'061','Cachapoal',1),(396,'062',6706,'',0,'062','Cardenal Caro',1),(397,'063',6706,'',0,'063','Colchagua',1),(398,'071',6707,'',0,'071','Talca',1),(399,'072',6707,'',0,'072','Cauquenes',1),(400,'073',6707,'',0,'073','Curicó',1),(401,'074',6707,'',0,'074','Linares',1),(402,'081',6708,'',0,'081','Concepción',1),(403,'082',6708,'',0,'082','Arauco',1),(404,'083',6708,'',0,'083','Biobío',1),(405,'084',6708,'',0,'084','Ñuble',1),(406,'091',6709,'',0,'091','Cautín',1),(407,'092',6709,'',0,'092','Malleco',1),(408,'141',6714,'',0,'141','Valdivia',1),(409,'142',6714,'',0,'142','Ranco',1),(410,'101',6710,'',0,'101','Llanquihue',1),(411,'102',6710,'',0,'102','Chiloé',1),(412,'103',6710,'',0,'103','Osorno',1),(413,'104',6710,'',0,'104','Palena',1),(414,'111',6711,'',0,'111','Coihaique',1),(415,'112',6711,'',0,'112','Aisén',1),(416,'113',6711,'',0,'113','Capitán Prat',1),(417,'114',6711,'',0,'114','General Carrera',1),(418,'121',6712,'',0,'121','Magallanes',1),(419,'122',6712,'',0,'122','Antártica Chilena',1),(420,'123',6712,'',0,'123','Tierra del Fuego',1),(421,'124',6712,'',0,'124','Última Esperanza',1),(422,'131',6713,'',0,'131','Santiago',1),(423,'132',6713,'',0,'132','Cordillera',1),(424,'133',6713,'',0,'133','Chacabuco',1),(425,'134',6713,'',0,'134','Maipo',1),(426,'135',6713,'',0,'135','Melipilla',1),(427,'136',6713,'',0,'136','Talagante',1),(428,'DIF',15401,'',0,'DIF','Distrito Federal',1),(429,'AGS',15401,'',0,'AGS','Aguascalientes',1),(430,'BCN',15401,'',0,'BCN','Baja California Norte',1),(431,'BCS',15401,'',0,'BCS','Baja California Sur',1),(432,'CAM',15401,'',0,'CAM','Campeche',1),(433,'CHP',15401,'',0,'CHP','Chiapas',1),(434,'CHI',15401,'',0,'CHI','Chihuahua',1),(435,'COA',15401,'',0,'COA','Coahuila',1),(436,'COL',15401,'',0,'COL','Colima',1),(437,'DUR',15401,'',0,'DUR','Durango',1),(438,'GTO',15401,'',0,'GTO','Guanajuato',1),(439,'GRO',15401,'',0,'GRO','Guerrero',1),(440,'HGO',15401,'',0,'HGO','Hidalgo',1),(441,'JAL',15401,'',0,'JAL','Jalisco',1),(442,'MEX',15401,'',0,'MEX','México',1),(443,'MIC',15401,'',0,'MIC','Michoacán de Ocampo',1),(444,'MOR',15401,'',0,'MOR','Morelos',1),(445,'NAY',15401,'',0,'NAY','Nayarit',1),(446,'NLE',15401,'',0,'NLE','Nuevo León',1),(447,'OAX',15401,'',0,'OAX','Oaxaca',1),(448,'PUE',15401,'',0,'PUE','Puebla',1),(449,'QRO',15401,'',0,'QRO','Querétaro',1),(451,'ROO',15401,'',0,'ROO','Quintana Roo',1),(452,'SLP',15401,'',0,'SLP','San Luis Potosí',1),(453,'SIN',15401,'',0,'SIN','Sinaloa',1),(454,'SON',15401,'',0,'SON','Sonora',1),(455,'TAB',15401,'',0,'TAB','Tabasco',1),(456,'TAM',15401,'',0,'TAM','Tamaulipas',1),(457,'TLX',15401,'',0,'TLX','Tlaxcala',1),(458,'VER',15401,'',0,'VER','Veracruz',1),(459,'YUC',15401,'',0,'YUC','Yucatán',1),(460,'ZAC',15401,'',0,'ZAC','Zacatecas',1),(461,'ANT',7001,'',0,'ANT','Antioquia',1),(462,'BOL',7001,'',0,'BOL','Bolívar',1),(463,'BOY',7001,'',0,'BOY','Boyacá',1),(464,'CAL',7001,'',0,'CAL','Caldas',1),(465,'CAU',7001,'',0,'CAU','Cauca',1),(466,'CUN',7001,'',0,'CUN','Cundinamarca',1),(467,'HUI',7001,'',0,'HUI','Huila',1),(468,'LAG',7001,'',0,'LAG','La Guajira',1),(469,'MET',7001,'',0,'MET','Meta',1),(470,'NAR',7001,'',0,'NAR','Nariño',1),(471,'NDS',7001,'',0,'NDS','Norte de Santander',1),(472,'SAN',7001,'',0,'SAN','Santander',1),(473,'SUC',7001,'',0,'SUC','Sucre',1),(474,'TOL',7001,'',0,'TOL','Tolima',1),(475,'VAC',7001,'',0,'VAC','Valle del Cauca',1),(476,'RIS',7001,'',0,'RIS','Risalda',1),(477,'ATL',7001,'',0,'ATL','Atlántico',1),(478,'COR',7001,'',0,'COR','Córdoba',1),(479,'SAP',7001,'',0,'SAP','San Andrés, Providencia y Santa Catalina',1),(480,'ARA',7001,'',0,'ARA','Arauca',1),(481,'CAS',7001,'',0,'CAS','Casanare',1),(482,'AMA',7001,'',0,'AMA','Amazonas',1),(483,'CAQ',7001,'',0,'CAQ','Caquetá',1),(484,'CHO',7001,'',0,'CHO','Chocó',1),(485,'GUA',7001,'',0,'GUA','Guainía',1),(486,'GUV',7001,'',0,'GUV','Guaviare',1),(487,'PUT',7001,'',0,'PUT','Putumayo',1),(488,'QUI',7001,'',0,'QUI','Quindío',1),(489,'VAU',7001,'',0,'VAU','Vaupés',1),(490,'BOG',7001,'',0,'BOG','Bogotá',1),(491,'VID',7001,'',0,'VID','Vichada',1),(492,'CES',7001,'',0,'CES','Cesar',1),(493,'MAG',7001,'',0,'MAG','Magdalena',1),(494,'AT',11401,'',0,'AT','Atlántida',1),(495,'CH',11401,'',0,'CH','Choluteca',1),(496,'CL',11401,'',0,'CL','Colón',1),(497,'CM',11401,'',0,'CM','Comayagua',1),(498,'CO',11401,'',0,'CO','Copán',1),(499,'CR',11401,'',0,'CR','Cortés',1),(500,'EP',11401,'',0,'EP','El Paraíso',1),(501,'FM',11401,'',0,'FM','Francisco Morazán',1),(502,'GD',11401,'',0,'GD','Gracias a Dios',1),(503,'IN',11401,'',0,'IN','Intibucá',1),(504,'IB',11401,'',0,'IB','Islas de la Bahía',1),(505,'LP',11401,'',0,'LP','La Paz',1),(506,'LM',11401,'',0,'LM','Lempira',1),(507,'OC',11401,'',0,'OC','Ocotepeque',1),(508,'OL',11401,'',0,'OL','Olancho',1),(509,'SB',11401,'',0,'SB','Santa Bárbara',1),(510,'VL',11401,'',0,'VL','Valle',1),(511,'YO',11401,'',0,'YO','Yoro',1),(512,'DC',11401,'',0,'DC','Distrito Central',1),(652,'CC',4601,'Oistins',0,'CC','Christ Church',1),(655,'SA',4601,'Greenland',0,'SA','Saint Andrew',1),(656,'SG',4601,'Bulkeley',0,'SG','Saint George',1),(657,'JA',4601,'Holetown',0,'JA','Saint James',1),(658,'SJ',4601,'Four Roads',0,'SJ','Saint John',1),(659,'SB',4601,'Bathsheba',0,'SB','Saint Joseph',1),(660,'SL',4601,'Crab Hill',0,'SL','Saint Lucy',1),(661,'SM',4601,'Bridgetown',0,'SM','Saint Michael',1),(662,'SP',4601,'Speightstown',0,'SP','Saint Peter',1),(663,'SC',4601,'Crane',0,'SC','Saint Philip',1),(664,'ST',4601,'Hillaby',0,'ST','Saint Thomas',1),(777,'AG',315,NULL,NULL,NULL,'AGRIGENTO',1),(778,'AL',312,NULL,NULL,NULL,'ALESSANDRIA',1),(779,'AN',310,NULL,NULL,NULL,'ANCONA',1),(780,'AO',319,NULL,NULL,NULL,'AOSTA',1),(781,'AR',316,NULL,NULL,NULL,'AREZZO',1),(782,'AP',310,NULL,NULL,NULL,'ASCOLI PICENO',1),(783,'AT',312,NULL,NULL,NULL,'ASTI',1),(784,'AV',304,NULL,NULL,NULL,'AVELLINO',1),(785,'BA',313,NULL,NULL,NULL,'BARI',1),(786,'BT',313,NULL,NULL,NULL,'BARLETTA-ANDRIA-TRANI',1),(787,'BL',320,NULL,NULL,NULL,'BELLUNO',1),(788,'BN',304,NULL,NULL,NULL,'BENEVENTO',1),(789,'BG',309,NULL,NULL,NULL,'BERGAMO',1),(790,'BI',312,NULL,NULL,NULL,'BIELLA',1),(791,'BO',305,NULL,NULL,NULL,'BOLOGNA',1),(792,'BZ',317,NULL,NULL,NULL,'BOLZANO',1),(793,'BS',309,NULL,NULL,NULL,'BRESCIA',1),(794,'BR',313,NULL,NULL,NULL,'BRINDISI',1),(795,'CA',314,NULL,NULL,NULL,'CAGLIARI',1),(796,'CL',315,NULL,NULL,NULL,'CALTANISSETTA',1),(797,'CB',311,NULL,NULL,NULL,'CAMPOBASSO',1),(798,'CI',314,NULL,NULL,NULL,'CARBONIA-IGLESIAS',1),(799,'CE',304,NULL,NULL,NULL,'CASERTA',1),(800,'CT',315,NULL,NULL,NULL,'CATANIA',1),(801,'CZ',303,NULL,NULL,NULL,'CATANZARO',1),(802,'CH',301,NULL,NULL,NULL,'CHIETI',1),(803,'CO',309,NULL,NULL,NULL,'COMO',1),(804,'CS',303,NULL,NULL,NULL,'COSENZA',1),(805,'CR',309,NULL,NULL,NULL,'CREMONA',1),(806,'KR',303,NULL,NULL,NULL,'CROTONE',1),(807,'CN',312,NULL,NULL,NULL,'CUNEO',1),(808,'EN',315,NULL,NULL,NULL,'ENNA',1),(809,'FM',310,NULL,NULL,NULL,'FERMO',1),(810,'FE',305,NULL,NULL,NULL,'FERRARA',1),(811,'FI',316,NULL,NULL,NULL,'FIRENZE',1),(812,'FG',313,NULL,NULL,NULL,'FOGGIA',1),(813,'FC',305,NULL,NULL,NULL,'FORLI-CESENA',1),(814,'FR',307,NULL,NULL,NULL,'FROSINONE',1),(815,'GE',308,NULL,NULL,NULL,'GENOVA',1),(816,'GO',306,NULL,NULL,NULL,'GORIZIA',1),(817,'GR',316,NULL,NULL,NULL,'GROSSETO',1),(818,'IM',308,NULL,NULL,NULL,'IMPERIA',1),(819,'IS',311,NULL,NULL,NULL,'ISERNIA',1),(820,'SP',308,NULL,NULL,NULL,'LA SPEZIA',1),(821,'AQ',301,NULL,NULL,NULL,'L AQUILA',1),(822,'LT',307,NULL,NULL,NULL,'LATINA',1),(823,'LE',313,NULL,NULL,NULL,'LECCE',1),(824,'LC',309,NULL,NULL,NULL,'LECCO',1),(825,'LI',314,NULL,NULL,NULL,'LIVORNO',1),(826,'LO',309,NULL,NULL,NULL,'LODI',1),(827,'LU',316,NULL,NULL,NULL,'LUCCA',1),(828,'MC',310,NULL,NULL,NULL,'MACERATA',1),(829,'MN',309,NULL,NULL,NULL,'MANTOVA',1),(830,'MS',316,NULL,NULL,NULL,'MASSA-CARRARA',1),(831,'MT',302,NULL,NULL,NULL,'MATERA',1),(832,'VS',314,NULL,NULL,NULL,'MEDIO CAMPIDANO',1),(833,'ME',315,NULL,NULL,NULL,'MESSINA',1),(834,'MI',309,NULL,NULL,NULL,'MILANO',1),(835,'MB',309,NULL,NULL,NULL,'MONZA e BRIANZA',1),(836,'MO',305,NULL,NULL,NULL,'MODENA',1),(837,'NA',304,NULL,NULL,NULL,'NAPOLI',1),(838,'NO',312,NULL,NULL,NULL,'NOVARA',1),(839,'NU',314,NULL,NULL,NULL,'NUORO',1),(840,'OG',314,NULL,NULL,NULL,'OGLIASTRA',1),(841,'OT',314,NULL,NULL,NULL,'OLBIA-TEMPIO',1),(842,'OR',314,NULL,NULL,NULL,'ORISTANO',1),(843,'PD',320,NULL,NULL,NULL,'PADOVA',1),(844,'PA',315,NULL,NULL,NULL,'PALERMO',1),(845,'PR',305,NULL,NULL,NULL,'PARMA',1),(846,'PV',309,NULL,NULL,NULL,'PAVIA',1),(847,'PG',318,NULL,NULL,NULL,'PERUGIA',1),(848,'PU',310,NULL,NULL,NULL,'PESARO e URBINO',1),(849,'PE',301,NULL,NULL,NULL,'PESCARA',1),(850,'PC',305,NULL,NULL,NULL,'PIACENZA',1),(851,'PI',316,NULL,NULL,NULL,'PISA',1),(852,'PT',316,NULL,NULL,NULL,'PISTOIA',1),(853,'PN',306,NULL,NULL,NULL,'PORDENONE',1),(854,'PZ',302,NULL,NULL,NULL,'POTENZA',1),(855,'PO',316,NULL,NULL,NULL,'PRATO',1),(856,'RG',315,NULL,NULL,NULL,'RAGUSA',1),(857,'RA',305,NULL,NULL,NULL,'RAVENNA',1),(858,'RC',303,NULL,NULL,NULL,'REGGIO CALABRIA',1),(859,'RE',305,NULL,NULL,NULL,'REGGIO NELL EMILIA',1),(860,'RI',307,NULL,NULL,NULL,'RIETI',1),(861,'RN',305,NULL,NULL,NULL,'RIMINI',1),(862,'RM',307,NULL,NULL,NULL,'ROMA',1),(863,'RO',320,NULL,NULL,NULL,'ROVIGO',1),(864,'SA',304,NULL,NULL,NULL,'SALERNO',1),(865,'SS',314,NULL,NULL,NULL,'SASSARI',1),(866,'SV',308,NULL,NULL,NULL,'SAVONA',1),(867,'SI',316,NULL,NULL,NULL,'SIENA',1),(868,'SR',315,NULL,NULL,NULL,'SIRACUSA',1),(869,'SO',309,NULL,NULL,NULL,'SONDRIO',1),(870,'TA',313,NULL,NULL,NULL,'TARANTO',1),(871,'TE',301,NULL,NULL,NULL,'TERAMO',1),(872,'TR',318,NULL,NULL,NULL,'TERNI',1),(873,'TO',312,NULL,NULL,NULL,'TORINO',1),(874,'TP',315,NULL,NULL,NULL,'TRAPANI',1),(875,'TN',317,NULL,NULL,NULL,'TRENTO',1),(876,'TV',320,NULL,NULL,NULL,'TREVISO',1),(877,'TS',306,NULL,NULL,NULL,'TRIESTE',1),(878,'UD',306,NULL,NULL,NULL,'UDINE',1),(879,'VA',309,NULL,NULL,NULL,'VARESE',1),(880,'VE',320,NULL,NULL,NULL,'VENEZIA',1),(881,'VB',312,NULL,NULL,NULL,'VERBANO-CUSIO-OSSOLA',1),(882,'VC',312,NULL,NULL,NULL,'VERCELLI',1),(883,'VR',320,NULL,NULL,NULL,'VERONA',1),(884,'VV',303,NULL,NULL,NULL,'VIBO VALENTIA',1),(885,'VI',320,NULL,NULL,NULL,'VICENZA',1),(886,'VT',307,NULL,NULL,NULL,'VITERBO',1),(1036,'VE-L',23201,'',0,'VE-L','Mérida',1),(1037,'VE-T',23201,'',0,'VE-T','Trujillo',1),(1038,'VE-E',23201,'',0,'VE-E','Barinas',1),(1039,'VE-M',23202,'',0,'VE-M','Miranda',1),(1040,'VE-W',23202,'',0,'VE-W','Vargas',1),(1041,'VE-A',23202,'',0,'VE-A','Distrito Capital',1),(1042,'VE-D',23203,'',0,'VE-D','Aragua',1),(1043,'VE-G',23203,'',0,'VE-G','Carabobo',1),(1044,'VE-I',23204,'',0,'VE-I','Falcón',1),(1045,'VE-K',23204,'',0,'VE-K','Lara',1),(1046,'VE-U',23204,'',0,'VE-U','Yaracuy',1),(1047,'VE-F',23205,'',0,'VE-F','Bolívar',1),(1048,'VE-X',23205,'',0,'VE-X','Amazonas',1),(1049,'VE-Y',23205,'',0,'VE-Y','Delta Amacuro',1),(1050,'VE-O',23206,'',0,'VE-O','Nueva Esparta',1),(1051,'VE-Z',23206,'',0,'VE-Z','Dependencias Federales',1),(1052,'VE-C',23207,'',0,'VE-C','Apure',1),(1053,'VE-J',23207,'',0,'VE-J','Guárico',1),(1054,'VE-H',23207,'',0,'VE-H','Cojedes',1),(1055,'VE-P',23207,'',0,'VE-P','Portuguesa',1),(1056,'VE-B',23208,'',0,'VE-B','Anzoátegui',1),(1057,'VE-N',23208,'',0,'VE-N','Monagas',1),(1058,'VE-R',23208,'',0,'VE-R','Sucre',1),(1059,'VE-V',23209,'',0,'VE-V','Zulia',1),(1060,'VE-S',23209,'',0,'VE-S','Táchira',1),(1061,'66',10201,NULL,NULL,NULL,'?????',1),(1062,'00',10205,NULL,NULL,NULL,'?????',1),(1063,'01',10205,NULL,NULL,NULL,'?????',1),(1064,'02',10205,NULL,NULL,NULL,'?????',1),(1065,'03',10205,NULL,NULL,NULL,'??????',1),(1066,'04',10205,NULL,NULL,NULL,'?????',1),(1067,'05',10205,NULL,NULL,NULL,'??????',1),(1068,'06',10203,NULL,NULL,NULL,'??????',1),(1069,'07',10203,NULL,NULL,NULL,'???????????',1),(1070,'08',10203,NULL,NULL,NULL,'??????',1),(1071,'09',10203,NULL,NULL,NULL,'?????',1),(1072,'10',10203,NULL,NULL,NULL,'??????',1),(1073,'11',10203,NULL,NULL,NULL,'??????',1),(1074,'12',10203,NULL,NULL,NULL,'?????????',1),(1075,'13',10206,NULL,NULL,NULL,'????',1),(1076,'14',10206,NULL,NULL,NULL,'?????????',1),(1077,'15',10206,NULL,NULL,NULL,'????????',1),(1078,'16',10206,NULL,NULL,NULL,'???????',1),(1079,'17',10213,NULL,NULL,NULL,'???????',1),(1080,'18',10213,NULL,NULL,NULL,'????????',1),(1081,'19',10213,NULL,NULL,NULL,'??????',1),(1082,'20',10213,NULL,NULL,NULL,'???????',1),(1083,'21',10212,NULL,NULL,NULL,'????????',1),(1084,'22',10212,NULL,NULL,NULL,'??????',1),(1085,'23',10212,NULL,NULL,NULL,'????????',1),(1086,'24',10212,NULL,NULL,NULL,'???????',1),(1087,'25',10212,NULL,NULL,NULL,'????????',1),(1088,'26',10212,NULL,NULL,NULL,'???????',1),(1089,'27',10202,NULL,NULL,NULL,'??????',1),(1090,'28',10202,NULL,NULL,NULL,'?????????',1),(1091,'29',10202,NULL,NULL,NULL,'????????',1),(1092,'30',10202,NULL,NULL,NULL,'??????',1),(1093,'31',10209,NULL,NULL,NULL,'????????',1),(1094,'32',10209,NULL,NULL,NULL,'???????',1),(1095,'33',10209,NULL,NULL,NULL,'????????',1),(1096,'34',10209,NULL,NULL,NULL,'???????',1),(1097,'35',10209,NULL,NULL,NULL,'????????',1),(1098,'36',10211,NULL,NULL,NULL,'???????????????',1),(1099,'37',10211,NULL,NULL,NULL,'?????',1),(1100,'38',10211,NULL,NULL,NULL,'?????',1),(1101,'39',10207,NULL,NULL,NULL,'????????',1),(1102,'40',10207,NULL,NULL,NULL,'???????',1),(1103,'41',10207,NULL,NULL,NULL,'??????????',1),(1104,'42',10207,NULL,NULL,NULL,'?????',1),(1105,'43',10207,NULL,NULL,NULL,'???????',1),(1106,'44',10208,NULL,NULL,NULL,'??????',1),(1107,'45',10208,NULL,NULL,NULL,'??????',1),(1108,'46',10208,NULL,NULL,NULL,'??????',1),(1109,'47',10208,NULL,NULL,NULL,'?????',1),(1110,'48',10208,NULL,NULL,NULL,'????',1),(1111,'49',10210,NULL,NULL,NULL,'??????',1),(1112,'50',10210,NULL,NULL,NULL,'????',1),(1113,'51',10210,NULL,NULL,NULL,'????????',1),(1114,'52',10210,NULL,NULL,NULL,'????????',1),(1115,'53',10210,NULL,NULL,NULL,'???-??????',1),(1116,'54',10210,NULL,NULL,NULL,'??',1),(1117,'55',10210,NULL,NULL,NULL,'?????',1),(1118,'56',10210,NULL,NULL,NULL,'???????',1),(1119,'57',10210,NULL,NULL,NULL,'?????',1),(1120,'58',10210,NULL,NULL,NULL,'?????',1),(1121,'59',10210,NULL,NULL,NULL,'?????',1),(1122,'60',10210,NULL,NULL,NULL,'?????',1),(1123,'61',10210,NULL,NULL,NULL,'?????',1),(1124,'62',10204,NULL,NULL,NULL,'????????',1),(1125,'63',10204,NULL,NULL,NULL,'??????',1),(1126,'64',10204,NULL,NULL,NULL,'???????',1),(1127,'65',10204,NULL,NULL,NULL,'?????',1),(1128,'AL01',1301,'',0,'','Wilaya d\'Adrar',1),(1129,'AL02',1301,'',0,'','Wilaya de Chlef',1),(1130,'AL03',1301,'',0,'','Wilaya de Laghouat',1),(1131,'AL04',1301,'',0,'','Wilaya d\'Oum El Bouaghi',1),(1132,'AL05',1301,'',0,'','Wilaya de Batna',1),(1133,'AL06',1301,'',0,'','Wilaya de Béjaïa',1),(1134,'AL07',1301,'',0,'','Wilaya de Biskra',1),(1135,'AL08',1301,'',0,'','Wilaya de Béchar',1),(1136,'AL09',1301,'',0,'','Wilaya de Blida',1),(1137,'AL11',1301,'',0,'','Wilaya de Bouira',1),(1138,'AL12',1301,'',0,'','Wilaya de Tamanrasset',1),(1139,'AL13',1301,'',0,'','Wilaya de Tébessa',1),(1140,'AL14',1301,'',0,'','Wilaya de Tlemcen',1),(1141,'AL15',1301,'',0,'','Wilaya de Tiaret',1),(1142,'AL16',1301,'',0,'','Wilaya de Tizi Ouzou',1),(1143,'AL17',1301,'',0,'','Wilaya d\'Alger',1),(1144,'AL18',1301,'',0,'','Wilaya de Djelfa',1),(1145,'AL19',1301,'',0,'','Wilaya de Jijel',1),(1146,'AL20',1301,'',0,'','Wilaya de Sétif	',1),(1147,'AL21',1301,'',0,'','Wilaya de Saïda',1),(1148,'AL22',1301,'',0,'','Wilaya de Skikda',1),(1149,'AL23',1301,'',0,'','Wilaya de Sidi Bel Abbès',1),(1150,'AL24',1301,'',0,'','Wilaya d\'Annaba',1),(1151,'AL25',1301,'',0,'','Wilaya de Guelma',1),(1152,'AL26',1301,'',0,'','Wilaya de Constantine',1),(1153,'AL27',1301,'',0,'','Wilaya de Médéa',1),(1154,'AL28',1301,'',0,'','Wilaya de Mostaganem',1),(1155,'AL29',1301,'',0,'','Wilaya de M\'Sila',1),(1156,'AL30',1301,'',0,'','Wilaya de Mascara',1),(1157,'AL31',1301,'',0,'','Wilaya d\'Ouargla',1),(1158,'AL32',1301,'',0,'','Wilaya d\'Oran',1),(1159,'AL33',1301,'',0,'','Wilaya d\'El Bayadh',1),(1160,'AL34',1301,'',0,'','Wilaya d\'Illizi',1),(1161,'AL35',1301,'',0,'','Wilaya de Bordj Bou Arreridj',1),(1162,'AL36',1301,'',0,'','Wilaya de Boumerdès',1),(1163,'AL37',1301,'',0,'','Wilaya d\'El Tarf',1),(1164,'AL38',1301,'',0,'','Wilaya de Tindouf',1),(1165,'AL39',1301,'',0,'','Wilaya de Tissemsilt',1),(1166,'AL40',1301,'',0,'','Wilaya d\'El Oued',1),(1167,'AL41',1301,'',0,'','Wilaya de Khenchela',1),(1168,'AL42',1301,'',0,'','Wilaya de Souk Ahras',1),(1169,'AL43',1301,'',0,'','Wilaya de Tipaza',1),(1170,'AL44',1301,'',0,'','Wilaya de Mila',1),(1171,'AL45',1301,'',0,'','Wilaya d\'Aïn Defla',1),(1172,'AL46',1301,'',0,'','Wilaya de Naâma',1),(1173,'AL47',1301,'',0,'','Wilaya d\'Aïn Témouchent',1),(1174,'AL48',1301,'',0,'','Wilaya de Ghardaia',1),(1175,'AL49',1301,'',0,'','Wilaya de Relizane',1),(1176,'MA',1209,'',0,'','Province de Benslimane',1),(1177,'MA1',1209,'',0,'','Province de Berrechid',1),(1178,'MA2',1209,'',0,'','Province de Khouribga',1),(1179,'MA3',1209,'',0,'','Province de Settat',1),(1180,'MA4',1210,'',0,'','Province d\'El Jadida',1),(1181,'MA5',1210,'',0,'','Province de Safi',1),(1182,'MA6',1210,'',0,'','Province de Sidi Bennour',1),(1183,'MA7',1210,'',0,'','Province de Youssoufia',1),(1184,'MA6B',1205,'',0,'','Préfecture de Fès',1),(1185,'MA7B',1205,'',0,'','Province de Boulemane',1),(1186,'MA8',1205,'',0,'','Province de Moulay Yacoub',1),(1187,'MA9',1205,'',0,'','Province de Sefrou',1),(1188,'MA8A',1202,'',0,'','Province de Kénitra',1),(1189,'MA9A',1202,'',0,'','Province de Sidi Kacem',1),(1190,'MA10',1202,'',0,'','Province de Sidi Slimane',1),(1191,'MA11',1208,'',0,'','Préfecture de Casablanca',1),(1192,'MA12',1208,'',0,'','Préfecture de Mohammédia',1),(1193,'MA13',1208,'',0,'','Province de Médiouna',1),(1194,'MA14',1208,'',0,'','Province de Nouaceur',1),(1195,'MA15',1214,'',0,'','Province d\'Assa-Zag',1),(1196,'MA16',1214,'',0,'','Province d\'Es-Semara',1),(1197,'MA17A',1214,'',0,'','Province de Guelmim',1),(1198,'MA18',1214,'',0,'','Province de Tata',1),(1199,'MA19',1214,'',0,'','Province de Tan-Tan',1),(1200,'MA15',1215,'',0,'','Province de Boujdour',1),(1201,'MA16',1215,'',0,'','Province de Lâayoune',1),(1202,'MA17',1215,'',0,'','Province de Tarfaya',1),(1203,'MA18',1211,'',0,'','Préfecture de Marrakech',1),(1204,'MA19',1211,'',0,'','Province d\'Al Haouz',1),(1205,'MA20',1211,'',0,'','Province de Chichaoua',1),(1206,'MA21',1211,'',0,'','Province d\'El Kelâa des Sraghna',1),(1207,'MA22',1211,'',0,'','Province d\'Essaouira',1),(1208,'MA23',1211,'',0,'','Province de Rehamna',1),(1209,'MA24',1206,'',0,'','Préfecture de Meknès',1),(1210,'MA25',1206,'',0,'','Province d’El Hajeb',1),(1211,'MA26',1206,'',0,'','Province d\'Errachidia',1),(1212,'MA27',1206,'',0,'','Province d’Ifrane',1),(1213,'MA28',1206,'',0,'','Province de Khénifra',1),(1214,'MA29',1206,'',0,'','Province de Midelt',1),(1215,'MA30',1204,'',0,'','Préfecture d\'Oujda-Angad',1),(1216,'MA31',1204,'',0,'','Province de Berkane',1),(1217,'MA32',1204,'',0,'','Province de Driouch',1),(1218,'MA33',1204,'',0,'','Province de Figuig',1),(1219,'MA34',1204,'',0,'','Province de Jerada',1),(1220,'MA35',1204,'',0,'','Province de Nadorgg',1),(1221,'MA36',1204,'',0,'','Province de Taourirt',1),(1222,'MA37',1216,'',0,'','Province d\'Aousserd',1),(1223,'MA38',1216,'',0,'','Province d\'Oued Ed-Dahab',1),(1224,'MA39',1207,'',0,'','Préfecture de Rabat',1),(1225,'MA40',1207,'',0,'','Préfecture de Skhirat-Témara',1),(1226,'MA41',1207,'',0,'','Préfecture de Salé',1),(1227,'MA42',1207,'',0,'','Province de Khémisset',1),(1228,'MA43',1213,'',0,'','Préfecture d\'Agadir Ida-Outanane',1),(1229,'MA44',1213,'',0,'','Préfecture d\'Inezgane-Aït Melloul',1),(1230,'MA45',1213,'',0,'','Province de Chtouka-Aït Baha',1),(1231,'MA46',1213,'',0,'','Province d\'Ouarzazate',1),(1232,'MA47',1213,'',0,'','Province de Sidi Ifni',1),(1233,'MA48',1213,'',0,'','Province de Taroudant',1),(1234,'MA49',1213,'',0,'','Province de Tinghir',1),(1235,'MA50',1213,'',0,'','Province de Tiznit',1),(1236,'MA51',1213,'',0,'','Province de Zagora',1),(1237,'MA52',1212,'',0,'','Province d\'Azilal',1),(1238,'MA53',1212,'',0,'','Province de Beni Mellal',1),(1239,'MA54',1212,'',0,'','Province de Fquih Ben Salah',1),(1240,'MA55',1201,'',0,'','Préfecture de M\'diq-Fnideq',1),(1241,'MA56',1201,'',0,'','Préfecture de Tanger-Asilah',1),(1242,'MA57',1201,'',0,'','Province de Chefchaouen',1),(1243,'MA58',1201,'',0,'','Province de Fahs-Anjra',1),(1244,'MA59',1201,'',0,'','Province de Larache',1),(1245,'MA60',1201,'',0,'','Province d\'Ouezzane',1),(1246,'MA61',1201,'',0,'','Province de Tétouan',1),(1247,'MA62',1203,'',0,'','Province de Guercif',1),(1248,'MA63',1203,'',0,'','Province d\'Al Hoceïma',1),(1249,'MA64',1203,'',0,'','Province de Taounate',1),(1250,'MA65',1203,'',0,'','Province de Taza',1),(1251,'MA6A',1205,'',0,'','Préfecture de Fès',1),(1252,'MA7A',1205,'',0,'','Province de Boulemane',1),(1253,'MA15A',1214,'',0,'','Province d\'Assa-Zag',1),(1254,'MA16A',1214,'',0,'','Province d\'Es-Semara',1),(1255,'MA18A',1211,'',0,'','Préfecture de Marrakech',1),(1256,'MA19A',1214,'',0,'','Province de Tan-Tan',1),(1257,'MA19B',1214,'',0,'','Province de Tan-Tan',1),(1258,'TN01',1001,'',0,'','Ariana',1),(1259,'TN02',1001,'',0,'','Béja',1),(1260,'TN03',1001,'',0,'','Ben Arous',1),(1261,'TN04',1001,'',0,'','Bizerte',1),(1262,'TN05',1001,'',0,'','Gabès',1),(1263,'TN06',1001,'',0,'','Gafsa',1),(1264,'TN07',1001,'',0,'','Jendouba',1),(1265,'TN08',1001,'',0,'','Kairouan',1),(1266,'TN09',1001,'',0,'','Kasserine',1),(1267,'TN10',1001,'',0,'','Kébili',1),(1268,'TN11',1001,'',0,'','La Manouba',1),(1269,'TN12',1001,'',0,'','Le Kef',1),(1270,'TN13',1001,'',0,'','Mahdia',1),(1271,'TN14',1001,'',0,'','Médenine',1),(1272,'TN15',1001,'',0,'','Monastir',1),(1273,'TN16',1001,'',0,'','Nabeul',1),(1274,'TN17',1001,'',0,'','Sfax',1),(1275,'TN18',1001,'',0,'','Sidi Bouzid',1),(1276,'TN19',1001,'',0,'','Siliana',1),(1277,'TN20',1001,'',0,'','Sousse',1),(1278,'TN21',1001,'',0,'','Tataouine',1),(1279,'TN22',1001,'',0,'','Tozeur',1),(1280,'TN23',1001,'',0,'','Tunis',1),(1281,'TN24',1001,'',0,'','Zaghouan',1),(1287,'976',6,'97601',3,'MAYOTTE','Mayotte',1),(1513,'ON',1401,'',1,'','Ontario',1),(1514,'QC',1401,'',1,'','Quebec',1),(1515,'NS',1401,'',1,'','Nova Scotia',1),(1516,'NB',1401,'',1,'','New Brunswick',1),(1517,'MB',1401,'',1,'','Manitoba',1),(1518,'BC',1401,'',1,'','British Columbia',1),(1519,'PE',1401,'',1,'','Prince Edward Island',1),(1520,'SK',1401,'',1,'','Saskatchewan',1),(1521,'AB',1401,'',1,'','Alberta',1),(1522,'NL',1401,'',1,'','Newfoundland and Labrador',1),(1575,'BW',501,NULL,NULL,'BADEN-WÜRTTEMBERG','Baden-Württemberg',1),(1576,'BY',501,NULL,NULL,'BAYERN','Bayern',1),(1577,'BE',501,NULL,NULL,'BERLIN','Berlin',1),(1578,'BB',501,NULL,NULL,'BRANDENBURG','Brandenburg',1),(1579,'HB',501,NULL,NULL,'BREMEN','Bremen',1),(1580,'HH',501,NULL,NULL,'HAMBURG','Hamburg',1),(1581,'HE',501,NULL,NULL,'HESSEN','Hessen',1),(1582,'MV',501,NULL,NULL,'MECKLENBURG-VORPOMMERN','Mecklenburg-Vorpommern',1),(1583,'NI',501,NULL,NULL,'NIEDERSACHSEN','Niedersachsen',1),(1584,'NW',501,NULL,NULL,'NORDRHEIN-WESTFALEN','Nordrhein-Westfalen',1),(1585,'RP',501,NULL,NULL,'RHEINLAND-PFALZ','Rheinland-Pfalz',1),(1586,'SL',501,NULL,NULL,'SAARLAND','Saarland',1),(1587,'SN',501,NULL,NULL,'SACHSEN','Sachsen',1),(1588,'ST',501,NULL,NULL,'SACHSEN-ANHALT','Sachsen-Anhalt',1),(1589,'SH',501,NULL,NULL,'SCHLESWIG-HOLSTEIN','Schleswig-Holstein',1),(1590,'TH',501,NULL,NULL,'THÜRINGEN','Thüringen',1),(1592,'67',10205,'',0,'','Δράμα',1),(1684,'701',701,NULL,0,NULL,'Bedfordshire',1),(1685,'702',701,NULL,0,NULL,'Berkshire',1),(1686,'703',701,NULL,0,NULL,'Bristol, City of',1),(1687,'704',701,NULL,0,NULL,'Buckinghamshire',1),(1688,'705',701,NULL,0,NULL,'Cambridgeshire',1),(1689,'706',701,NULL,0,NULL,'Cheshire',1),(1690,'707',701,NULL,0,NULL,'Cleveland',1),(1691,'708',701,NULL,0,NULL,'Cornwall',1),(1692,'709',701,NULL,0,NULL,'Cumberland',1),(1693,'710',701,NULL,0,NULL,'Cumbria',1),(1694,'711',701,NULL,0,NULL,'Derbyshire',1),(1695,'712',701,NULL,0,NULL,'Devon',1),(1696,'713',701,NULL,0,NULL,'Dorset',1),(1697,'714',701,NULL,0,NULL,'Co. Durham',1),(1698,'715',701,NULL,0,NULL,'East Riding of Yorkshire',1),(1699,'716',701,NULL,0,NULL,'East Sussex',1),(1700,'717',701,NULL,0,NULL,'Essex',1),(1701,'718',701,NULL,0,NULL,'Gloucestershire',1),(1702,'719',701,NULL,0,NULL,'Greater Manchester',1),(1703,'720',701,NULL,0,NULL,'Hampshire',1),(1704,'721',701,NULL,0,NULL,'Hertfordshire',1),(1705,'722',701,NULL,0,NULL,'Hereford and Worcester',1),(1706,'723',701,NULL,0,NULL,'Herefordshire',1),(1707,'724',701,NULL,0,NULL,'Huntingdonshire',1),(1708,'725',701,NULL,0,NULL,'Isle of Man',1),(1709,'726',701,NULL,0,NULL,'Isle of Wight',1),(1710,'727',701,NULL,0,NULL,'Jersey',1),(1711,'728',701,NULL,0,NULL,'Kent',1),(1712,'729',701,NULL,0,NULL,'Lancashire',1),(1713,'730',701,NULL,0,NULL,'Leicestershire',1),(1714,'731',701,NULL,0,NULL,'Lincolnshire',1),(1715,'732',701,NULL,0,NULL,'London - City of London',1),(1716,'733',701,NULL,0,NULL,'Merseyside',1),(1717,'734',701,NULL,0,NULL,'Middlesex',1),(1718,'735',701,NULL,0,NULL,'Norfolk',1),(1719,'736',701,NULL,0,NULL,'North Yorkshire',1),(1720,'737',701,NULL,0,NULL,'North Riding of Yorkshire',1),(1721,'738',701,NULL,0,NULL,'Northamptonshire',1),(1722,'739',701,NULL,0,NULL,'Northumberland',1),(1723,'740',701,NULL,0,NULL,'Nottinghamshire',1),(1724,'741',701,NULL,0,NULL,'Oxfordshire',1),(1725,'742',701,NULL,0,NULL,'Rutland',1),(1726,'743',701,NULL,0,NULL,'Shropshire',1),(1727,'744',701,NULL,0,NULL,'Somerset',1),(1728,'745',701,NULL,0,NULL,'Staffordshire',1),(1729,'746',701,NULL,0,NULL,'Suffolk',1),(1730,'747',701,NULL,0,NULL,'Surrey',1),(1731,'748',701,NULL,0,NULL,'Sussex',1),(1732,'749',701,NULL,0,NULL,'Tyne and Wear',1),(1733,'750',701,NULL,0,NULL,'Warwickshire',1),(1734,'751',701,NULL,0,NULL,'West Midlands',1),(1735,'752',701,NULL,0,NULL,'West Sussex',1),(1736,'753',701,NULL,0,NULL,'West Yorkshire',1),(1737,'754',701,NULL,0,NULL,'West Riding of Yorkshire',1),(1738,'755',701,NULL,0,NULL,'Wiltshire',1),(1739,'756',701,NULL,0,NULL,'Worcestershire',1),(1740,'757',701,NULL,0,NULL,'Yorkshire',1),(1741,'758',702,NULL,0,NULL,'Anglesey',1),(1742,'759',702,NULL,0,NULL,'Breconshire',1),(1743,'760',702,NULL,0,NULL,'Caernarvonshire',1),(1744,'761',702,NULL,0,NULL,'Cardiganshire',1),(1745,'762',702,NULL,0,NULL,'Carmarthenshire',1),(1746,'763',702,NULL,0,NULL,'Ceredigion',1),(1747,'764',702,NULL,0,NULL,'Denbighshire',1),(1748,'765',702,NULL,0,NULL,'Flintshire',1),(1749,'766',702,NULL,0,NULL,'Glamorgan',1),(1750,'767',702,NULL,0,NULL,'Gwent',1),(1751,'768',702,NULL,0,NULL,'Gwynedd',1),(1752,'769',702,NULL,0,NULL,'Merionethshire',1),(1753,'770',702,NULL,0,NULL,'Monmouthshire',1),(1754,'771',702,NULL,0,NULL,'Mid Glamorgan',1),(1755,'772',702,NULL,0,NULL,'Montgomeryshire',1),(1756,'773',702,NULL,0,NULL,'Pembrokeshire',1),(1757,'774',702,NULL,0,NULL,'Powys',1),(1758,'775',702,NULL,0,NULL,'Radnorshire',1),(1759,'776',702,NULL,0,NULL,'South Glamorgan',1),(1760,'777',703,NULL,0,NULL,'Aberdeen, City of',1),(1761,'778',703,NULL,0,NULL,'Angus',1),(1762,'779',703,NULL,0,NULL,'Argyll',1),(1763,'780',703,NULL,0,NULL,'Ayrshire',1),(1764,'781',703,NULL,0,NULL,'Banffshire',1),(1765,'782',703,NULL,0,NULL,'Berwickshire',1),(1766,'783',703,NULL,0,NULL,'Bute',1),(1767,'784',703,NULL,0,NULL,'Caithness',1),(1768,'785',703,NULL,0,NULL,'Clackmannanshire',1),(1769,'786',703,NULL,0,NULL,'Dumfriesshire',1),(1770,'787',703,NULL,0,NULL,'Dumbartonshire',1),(1771,'788',703,NULL,0,NULL,'Dundee, City of',1),(1772,'789',703,NULL,0,NULL,'East Lothian',1),(1773,'790',703,NULL,0,NULL,'Fife',1),(1774,'791',703,NULL,0,NULL,'Inverness',1),(1775,'792',703,NULL,0,NULL,'Kincardineshire',1),(1776,'793',703,NULL,0,NULL,'Kinross-shire',1),(1777,'794',703,NULL,0,NULL,'Kirkcudbrightshire',1),(1778,'795',703,NULL,0,NULL,'Lanarkshire',1),(1779,'796',703,NULL,0,NULL,'Midlothian',1),(1780,'797',703,NULL,0,NULL,'Morayshire',1),(1781,'798',703,NULL,0,NULL,'Nairnshire',1),(1782,'799',703,NULL,0,NULL,'Orkney',1),(1783,'800',703,NULL,0,NULL,'Peebleshire',1),(1784,'801',703,NULL,0,NULL,'Perthshire',1),(1785,'802',703,NULL,0,NULL,'Renfrewshire',1),(1786,'803',703,NULL,0,NULL,'Ross & Cromarty',1),(1787,'804',703,NULL,0,NULL,'Roxburghshire',1),(1788,'805',703,NULL,0,NULL,'Selkirkshire',1),(1789,'806',703,NULL,0,NULL,'Shetland',1),(1790,'807',703,NULL,0,NULL,'Stirlingshire',1),(1791,'808',703,NULL,0,NULL,'Sutherland',1),(1792,'809',703,NULL,0,NULL,'West Lothian',1),(1793,'810',703,NULL,0,NULL,'Wigtownshire',1),(1794,'811',704,NULL,0,NULL,'Antrim',1),(1795,'812',704,NULL,0,NULL,'Armagh',1),(1796,'813',704,NULL,0,NULL,'Co. Down',1),(1797,'814',704,NULL,0,NULL,'Co. Fermanagh',1),(1798,'815',704,NULL,0,NULL,'Co. Londonderry',1),(1849,'GR',1701,NULL,NULL,NULL,'Groningen',1),(1850,'FR',1701,NULL,NULL,NULL,'Friesland',1),(1851,'DR',1701,NULL,NULL,NULL,'Drenthe',1),(1852,'OV',1701,NULL,NULL,NULL,'Overijssel',1),(1853,'GD',1701,NULL,NULL,NULL,'Gelderland',1),(1854,'FL',1701,NULL,NULL,NULL,'Flevoland',1),(1855,'UT',1701,NULL,NULL,NULL,'Utrecht',1),(1856,'NH',1701,NULL,NULL,NULL,'Noord-Holland',1),(1857,'ZH',1701,NULL,NULL,NULL,'Zuid-Holland',1),(1858,'ZL',1701,NULL,NULL,NULL,'Zeeland',1),(1859,'NB',1701,NULL,NULL,NULL,'Noord-Brabant',1),(1860,'LB',1701,NULL,NULL,NULL,'Limburg',1),(1900,'AC',5601,'ACRE',0,'AC','Acre',1),(1901,'AL',5601,'ALAGOAS',0,'AL','Alagoas',1),(1902,'AP',5601,'AMAPA',0,'AP','Amapá',1),(1903,'AM',5601,'AMAZONAS',0,'AM','Amazonas',1),(1904,'BA',5601,'BAHIA',0,'BA','Bahia',1),(1905,'CE',5601,'CEARA',0,'CE','Ceará',1),(1906,'ES',5601,'ESPIRITO SANTO',0,'ES','Espirito Santo',1),(1907,'GO',5601,'GOIAS',0,'GO','Goiás',1),(1908,'MA',5601,'MARANHAO',0,'MA','Maranhão',1),(1909,'MT',5601,'MATO GROSSO',0,'MT','Mato Grosso',1),(1910,'MS',5601,'MATO GROSSO DO SUL',0,'MS','Mato Grosso do Sul',1),(1911,'MG',5601,'MINAS GERAIS',0,'MG','Minas Gerais',1),(1912,'PA',5601,'PARA',0,'PA','Pará',1),(1913,'PB',5601,'PARAIBA',0,'PB','Paraiba',1),(1914,'PR',5601,'PARANA',0,'PR','Paraná',1),(1915,'PE',5601,'PERNAMBUCO',0,'PE','Pernambuco',1),(1916,'PI',5601,'PIAUI',0,'PI','Piauí',1),(1917,'RJ',5601,'RIO DE JANEIRO',0,'RJ','Rio de Janeiro',1),(1918,'RN',5601,'RIO GRANDE DO NORTE',0,'RN','Rio Grande do Norte',1),(1919,'RS',5601,'RIO GRANDE DO SUL',0,'RS','Rio Grande do Sul',1),(1920,'RO',5601,'RONDONIA',0,'RO','Rondônia',1),(1921,'RR',5601,'RORAIMA',0,'RR','Roraima',1),(1922,'SC',5601,'SANTA CATARINA',0,'SC','Santa Catarina',1),(1923,'SE',5601,'SERGIPE',0,'SE','Sergipe',1),(1924,'SP',5601,'SAO PAULO',0,'SP','Sao Paulo',1),(1925,'TO',5601,'TOCANTINS',0,'TO','Tocantins',1),(1926,'DF',5601,'DISTRITO FEDERAL',0,'DF','Distrito Federal',1),(1927,'001',5201,'',0,'','Belisario Boeto',1),(1928,'002',5201,'',0,'','Hernando Siles',1),(1929,'003',5201,'',0,'','Jaime Zudáñez',1),(1930,'004',5201,'',0,'','Juana Azurduy de Padilla',1),(1931,'005',5201,'',0,'','Luis Calvo',1),(1932,'006',5201,'',0,'','Nor Cinti',1),(1933,'007',5201,'',0,'','Oropeza',1),(1934,'008',5201,'',0,'','Sud Cinti',1),(1935,'009',5201,'',0,'','Tomina',1),(1936,'010',5201,'',0,'','Yamparáez',1),(1937,'011',5202,'',0,'','Abel Iturralde',1),(1938,'012',5202,'',0,'','Aroma',1),(1939,'013',5202,'',0,'','Bautista Saavedra',1),(1940,'014',5202,'',0,'','Caranavi',1),(1941,'015',5202,'',0,'','Eliodoro Camacho',1),(1942,'016',5202,'',0,'','Franz Tamayo',1),(1943,'017',5202,'',0,'','Gualberto Villarroel',1),(1944,'018',5202,'',0,'','Ingaví',1),(1945,'019',5202,'',0,'','Inquisivi',1),(1946,'020',5202,'',0,'','José Ramón Loayza',1),(1947,'021',5202,'',0,'','Larecaja',1),(1948,'022',5202,'',0,'','Los Andes (Bolivia)',1),(1949,'023',5202,'',0,'','Manco Kapac',1),(1950,'024',5202,'',0,'','Muñecas',1),(1951,'025',5202,'',0,'','Nor Yungas',1),(1952,'026',5202,'',0,'','Omasuyos',1),(1953,'027',5202,'',0,'','Pacajes',1),(1954,'028',5202,'',0,'','Pedro Domingo Murillo',1),(1955,'029',5202,'',0,'','Sud Yungas',1),(1956,'030',5202,'',0,'','General José Manuel Pando',1),(1957,'031',5203,'',0,'','Arani',1),(1958,'032',5203,'',0,'','Arque',1),(1959,'033',5203,'',0,'','Ayopaya',1),(1960,'034',5203,'',0,'','Bolívar (Bolivia)',1),(1961,'035',5203,'',0,'','Campero',1),(1962,'036',5203,'',0,'','Capinota',1),(1963,'037',5203,'',0,'','Cercado (Cochabamba)',1),(1964,'038',5203,'',0,'','Esteban Arze',1),(1965,'039',5203,'',0,'','Germán Jordán',1),(1966,'040',5203,'',0,'','José Carrasco',1),(1967,'041',5203,'',0,'','Mizque',1),(1968,'042',5203,'',0,'','Punata',1),(1969,'043',5203,'',0,'','Quillacollo',1),(1970,'044',5203,'',0,'','Tapacarí',1),(1971,'045',5203,'',0,'','Tiraque',1),(1972,'046',5203,'',0,'','Chapare',1),(1973,'047',5204,'',0,'','Carangas',1),(1974,'048',5204,'',0,'','Cercado (Oruro)',1),(1975,'049',5204,'',0,'','Eduardo Avaroa',1),(1976,'050',5204,'',0,'','Ladislao Cabrera',1),(1977,'051',5204,'',0,'','Litoral de Atacama',1),(1978,'052',5204,'',0,'','Mejillones',1),(1979,'053',5204,'',0,'','Nor Carangas',1),(1980,'054',5204,'',0,'','Pantaleón Dalence',1),(1981,'055',5204,'',0,'','Poopó',1),(1982,'056',5204,'',0,'','Sabaya',1),(1983,'057',5204,'',0,'','Sajama',1),(1984,'058',5204,'',0,'','San Pedro de Totora',1),(1985,'059',5204,'',0,'','Saucarí',1),(1986,'060',5204,'',0,'','Sebastián Pagador',1),(1987,'061',5204,'',0,'','Sud Carangas',1),(1988,'062',5204,'',0,'','Tomás Barrón',1),(1989,'063',5205,'',0,'','Alonso de Ibáñez',1),(1990,'064',5205,'',0,'','Antonio Quijarro',1),(1991,'065',5205,'',0,'','Bernardino Bilbao',1),(1992,'066',5205,'',0,'','Charcas (Potosí)',1),(1993,'067',5205,'',0,'','Chayanta',1),(1994,'068',5205,'',0,'','Cornelio Saavedra',1),(1995,'069',5205,'',0,'','Daniel Campos',1),(1996,'070',5205,'',0,'','Enrique Baldivieso',1),(1997,'071',5205,'',0,'','José María Linares',1),(1998,'072',5205,'',0,'','Modesto Omiste',1),(1999,'073',5205,'',0,'','Nor Chichas',1),(2000,'074',5205,'',0,'','Nor Lípez',1),(2001,'075',5205,'',0,'','Rafael Bustillo',1),(2002,'076',5205,'',0,'','Sud Chichas',1),(2003,'077',5205,'',0,'','Sud Lípez',1),(2004,'078',5205,'',0,'','Tomás Frías',1),(2005,'079',5206,'',0,'','Aniceto Arce',1),(2006,'080',5206,'',0,'','Burdet O\'Connor',1),(2007,'081',5206,'',0,'','Cercado (Tarija)',1),(2008,'082',5206,'',0,'','Eustaquio Méndez',1),(2009,'083',5206,'',0,'','José María Avilés',1),(2010,'084',5206,'',0,'','Gran Chaco',1),(2011,'085',5207,'',0,'','Andrés Ibáñez',1),(2012,'086',5207,'',0,'','Caballero',1),(2013,'087',5207,'',0,'','Chiquitos',1),(2014,'088',5207,'',0,'','Cordillera (Bolivia)',1),(2015,'089',5207,'',0,'','Florida',1),(2016,'090',5207,'',0,'','Germán Busch',1),(2017,'091',5207,'',0,'','Guarayos',1),(2018,'092',5207,'',0,'','Ichilo',1),(2019,'093',5207,'',0,'','Obispo Santistevan',1),(2020,'094',5207,'',0,'','Sara',1),(2021,'095',5207,'',0,'','Vallegrande',1),(2022,'096',5207,'',0,'','Velasco',1),(2023,'097',5207,'',0,'','Warnes',1),(2024,'098',5207,'',0,'','Ángel Sandóval',1),(2025,'099',5207,'',0,'','Ñuflo de Chaves',1),(2026,'100',5208,'',0,'','Cercado (Beni)',1),(2027,'101',5208,'',0,'','Iténez',1),(2028,'102',5208,'',0,'','Mamoré',1),(2029,'103',5208,'',0,'','Marbán',1),(2030,'104',5208,'',0,'','Moxos',1),(2031,'105',5208,'',0,'','Vaca Díez',1),(2032,'106',5208,'',0,'','Yacuma',1),(2033,'107',5208,'',0,'','General José Ballivián Segurola',1),(2034,'108',5209,'',0,'','Abuná',1),(2035,'109',5209,'',0,'','Madre de Dios',1),(2036,'110',5209,'',0,'','Manuripi',1),(2037,'111',5209,'',0,'','Nicolás Suárez',1),(2038,'112',5209,'',0,'','General Federico Román',1),(2039,'B',4101,NULL,NULL,'BURGENLAND','Burgenland',1),(2040,'K',4101,NULL,NULL,'KAERNTEN','Kärnten',1),(2041,'N',4101,NULL,NULL,'NIEDEROESTERREICH','Niederösterreich',1),(2042,'O',4101,NULL,NULL,'OBEROESTERREICH','Oberösterreich',1),(2043,'S',4101,NULL,NULL,'SALZBURG','Salzburg',1),(2044,'ST',4101,NULL,NULL,'STEIERMARK','Steiermark',1),(2045,'T',4101,NULL,NULL,'TIROL','Tirol',1),(2046,'V',4101,NULL,NULL,'VORARLBERG','Vorarlberg',1),(2047,'W',4101,NULL,NULL,'WIEN','Wien',1),(2048,'2326',2305,'',0,'MISIONES','Misiones',1),(2049,'PA-1',17801,'',0,'','Bocas del Toro',1),(2050,'PA-2',17801,'',0,'','Coclé',1),(2051,'PA-3',17801,'',0,'','Colón',1),(2052,'PA-4',17801,'',0,'','Chiriquí',1),(2053,'PA-5',17801,'',0,'','Darién',1),(2054,'PA-6',17801,'',0,'','Herrera',1),(2055,'PA-7',17801,'',0,'','Los Santos',1),(2056,'PA-8',17801,'',0,'','Panamá',1),(2057,'PA-9',17801,'',0,'','Veraguas',1),(2058,'PA-13',17801,'',0,'','Panamá Oeste',1),(2059,'AE-1',22701,'',0,'','Abu Dhabi',1),(2060,'AE-2',22701,'',0,'','Dubai',1),(2061,'AE-3',22701,'',0,'','Ajman',1),(2062,'AE-4',22701,'',0,'','Fujairah',1),(2063,'AE-5',22701,'',0,'','Ras al-Khaimah',1),(2064,'AE-6',22701,'',0,'','Sharjah',1),(2065,'AE-7',22701,'',0,'','Umm al-Quwain',1),(2066,'BA',11801,NULL,0,'BA','Bali',1),(2067,'BB',11801,NULL,0,'BB','Bangka Belitung',1),(2068,'BT',11801,NULL,0,'BT','Banten',1),(2069,'BE',11801,NULL,0,'BA','Bengkulu',1),(2070,'YO',11801,NULL,0,'YO','DI Yogyakarta',1),(2071,'JK',11801,NULL,0,'JK','DKI Jakarta',1),(2072,'GO',11801,NULL,0,'GO','Gorontalo',1),(2073,'JA',11801,NULL,0,'JA','Jambi',1),(2074,'JB',11801,NULL,0,'JB','Jawa Barat',1),(2075,'JT',11801,NULL,0,'JT','Jawa Tengah',1),(2076,'JI',11801,NULL,0,'JI','Jawa Timur',1),(2077,'KB',11801,NULL,0,'KB','Kalimantan Barat',1),(2078,'KS',11801,NULL,0,'KS','Kalimantan Selatan',1),(2079,'KT',11801,NULL,0,'KT','Kalimantan Tengah',1),(2080,'KI',11801,NULL,0,'KI','Kalimantan Timur',1),(2081,'KU',11801,NULL,0,'KU','Kalimantan Utara',1),(2082,'KR',11801,NULL,0,'KR','Kepulauan Riau',1),(2083,'LA',11801,NULL,0,'LA','Lampung',1),(2084,'MA',11801,NULL,0,'MA','Maluku',1),(2085,'MU',11801,NULL,0,'MU','Maluku Utara',1),(2086,'AC',11801,NULL,0,'AC','Nanggroe Aceh Darussalam',1),(2087,'NB',11801,NULL,0,'NB','Nusa Tenggara Barat',1),(2088,'NT',11801,NULL,0,'NT','Nusa Tenggara Timur',1),(2089,'PA',11801,NULL,0,'PA','Papua',1),(2090,'PB',11801,NULL,0,'PB','Papua Barat',1),(2091,'RI',11801,NULL,0,'RI','Riau',1),(2092,'SR',11801,NULL,0,'SR','Sulawesi Barat',1),(2093,'SN',11801,NULL,0,'SN','Sulawesi Selatan',1),(2094,'ST',11801,NULL,0,'ST','Sulawesi Tengah',1),(2095,'SG',11801,NULL,0,'SG','Sulawesi Tenggara',1),(2096,'SA',11801,NULL,0,'SA','Sulawesi Utara',1),(2097,'SB',11801,NULL,0,'SB','Sumatera Barat',1),(2098,'SS',11801,NULL,0,'SS','Sumatera Selatan',1),(2099,'SU',11801,NULL,0,'SU','Sumatera Utara	',1);
    +/*!40000 ALTER TABLE `llx_c_departements` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ecotaxe`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ecotaxe`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ecotaxe` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `price` double(24,8) DEFAULT NULL,
    +  `organization` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_pays` int(11) NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_ecotaxe` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ecotaxe`
    +--
    +
    +LOCK TABLES `llx_c_ecotaxe` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ecotaxe` DISABLE KEYS */;
    +INSERT INTO `llx_c_ecotaxe` VALUES (1,'ER-A-A','Materiels electriques < 0,2kg',0.01000000,'ERP',1,1),(2,'ER-A-B','Materiels electriques >= 0,2 kg et < 0,5 kg',0.03000000,'ERP',1,1),(3,'ER-A-C','Materiels electriques >= 0,5 kg et < 1 kg',0.04000000,'ERP',1,1),(4,'ER-A-D','Materiels electriques >= 1 kg et < 2 kg',0.13000000,'ERP',1,1),(5,'ER-A-E','Materiels electriques >= 2 kg et < 4kg',0.21000000,'ERP',1,1),(6,'ER-A-F','Materiels electriques >= 4 kg et < 8 kg',0.42000000,'ERP',1,1),(7,'ER-A-G','Materiels electriques >= 8 kg et < 15 kg',0.84000000,'ERP',1,1),(8,'ER-A-H','Materiels electriques >= 15 kg et < 20 kg',1.25000000,'ERP',1,1),(9,'ER-A-I','Materiels electriques >= 20 kg et < 30 kg',1.88000000,'ERP',1,1),(10,'ER-A-J','Materiels electriques >= 30 kg',3.34000000,'ERP',1,1),(11,'ER-M-1','TV, Moniteurs < 9kg',0.84000000,'ERP',1,1),(12,'ER-M-2','TV, Moniteurs >= 9kg et < 15kg',1.67000000,'ERP',1,1),(13,'ER-M-3','TV, Moniteurs >= 15kg et < 30kg',3.34000000,'ERP',1,1),(14,'ER-M-4','TV, Moniteurs >= 30 kg',6.69000000,'ERP',1,1),(15,'EC-A-A','Materiels electriques  0,2 kg max',0.00840000,'Ecologic',1,1),(16,'EC-A-B','Materiels electriques 0,21 kg min - 0,50 kg max',0.02500000,'Ecologic',1,1),(17,'EC-A-C','Materiels electriques  0,51 kg min - 1 kg max',0.04000000,'Ecologic',1,1),(18,'EC-A-D','Materiels electriques  1,01 kg min - 2,5 kg max',0.13000000,'Ecologic',1,1),(19,'EC-A-E','Materiels electriques  2,51 kg min - 4 kg max',0.21000000,'Ecologic',1,1),(20,'EC-A-F','Materiels electriques 4,01 kg min - 8 kg max',0.42000000,'Ecologic',1,1),(21,'EC-A-G','Materiels electriques  8,01 kg min - 12 kg max',0.63000000,'Ecologic',1,1),(22,'EC-A-H','Materiels electriques 12,01 kg min - 20 kg max',1.05000000,'Ecologic',1,1),(23,'EC-A-I','Materiels electriques  20,01 kg min',1.88000000,'Ecologic',1,1),(24,'EC-M-1','TV, Moniteurs 9 kg max',0.84000000,'Ecologic',1,1),(25,'EC-M-2','TV, Moniteurs 9,01 kg min - 18 kg max',1.67000000,'Ecologic',1,1),(26,'EC-M-3','TV, Moniteurs 18,01 kg min - 36 kg max',3.34000000,'Ecologic',1,1),(27,'EC-M-4','TV, Moniteurs 36,01 kg min',6.69000000,'Ecologic',1,1),(28,'ES-M-1','TV, Moniteurs <= 20 pouces',0.84000000,'Eco-systemes',1,1),(29,'ES-M-2','TV, Moniteurs > 20 pouces et <= 32 pouces',3.34000000,'Eco-systemes',1,1),(30,'ES-M-3','TV, Moniteurs > 32 pouces et autres grands ecrans',6.69000000,'Eco-systemes',1,1),(31,'ES-A-A','Ordinateur fixe, Audio home systems (HIFI), elements hifi separes',0.84000000,'Eco-systemes',1,1),(32,'ES-A-B','Ordinateur portable, CD-RCR, VCR, lecteurs et enregistreurs DVD, instruments de musique et caisses de resonance, haut parleurs...',0.25000000,'Eco-systemes',1,1),(33,'ES-A-C','Imprimante, photocopieur, telecopieur',0.42000000,'Eco-systemes',1,1),(34,'ES-A-D','Accessoires, clavier, souris, PDA, imprimante photo, appareil photo, gps, telephone, repondeur, telephone sans fil, modem, telecommande, casque, camescope, baladeur mp3, radio portable, radio K7 et CD portable, radio reveil',0.08400000,'Eco-systemes',1,1),(35,'ES-A-E','GSM',0.00840000,'Eco-systemes',1,1),(36,'ES-A-F','Jouets et equipements de loisirs et de sports < 0,5 kg',0.04200000,'Eco-systemes',1,1),(37,'ES-A-G','Jouets et equipements de loisirs et de sports > 0,5 kg',0.17000000,'Eco-systemes',1,1),(38,'ES-A-H','Jouets et equipements de loisirs et de sports > 10 kg',1.25000000,'Eco-systemes',1,1);
    +/*!40000 ALTER TABLE `llx_c_ecotaxe` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_effectif`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_effectif`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_effectif` (
    +  `id` int(11) NOT NULL,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_effectif` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_effectif`
    +--
    +
    +LOCK TABLES `llx_c_effectif` WRITE;
    +/*!40000 ALTER TABLE `llx_c_effectif` DISABLE KEYS */;
    +INSERT INTO `llx_c_effectif` VALUES (0,'EF0','-',1,NULL),(1,'EF1-5','1 - 5',1,NULL),(2,'EF6-10','6 - 10',1,NULL),(3,'EF11-50','11 - 50',1,NULL),(4,'EF51-100','51 - 100',1,NULL),(5,'EF100-500','100 - 500',1,NULL),(6,'EF500-','> 500',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_effectif` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_email_senderprofile`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_email_senderprofile`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_email_senderprofile` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `private` smallint(6) NOT NULL DEFAULT '0',
    +  `date_creation` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `signature` text COLLATE utf8_unicode_ci,
    +  `position` smallint(6) DEFAULT '0',
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_email_senderprofile` (`entity`,`label`,`email`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_email_senderprofile`
    +--
    +
    +LOCK TABLES `llx_c_email_senderprofile` WRITE;
    +/*!40000 ALTER TABLE `llx_c_email_senderprofile` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_c_email_senderprofile` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_email_templates`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_email_templates`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_email_templates` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type_template` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `private` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` smallint(6) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `topic` text COLLATE utf8_unicode_ci,
    +  `content` mediumtext COLLATE utf8_unicode_ci,
    +  `content_lines` text COLLATE utf8_unicode_ci,
    +  `enabled` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  `joinfiles` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_email_templates` (`entity`,`label`,`lang`),
    +  KEY `idx_type` (`type_template`)
    +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_email_templates`
    +--
    +
    +LOCK TABLES `llx_c_email_templates` WRITE;
    +/*!40000 ALTER TABLE `llx_c_email_templates` DISABLE KEYS */;
    +INSERT INTO `llx_c_email_templates` VALUES (1,1,NULL,'propal_send','',1,NULL,NULL,'2018-01-19 11:17:48','ggg',1,1,'gg','gggfff',NULL,'1','1'),(2,0,'adherent','member','',0,NULL,NULL,'2018-01-19 11:17:48','(SendAnEMailToMember)',1,1,'__(CardContent)__','__(Hello)__,<br><br>\n\n__(ThisIsContentOfYourCard)__<br>\n__(ID)__ : __ID__<br>\n__(Civiliyty)__ : __MEMBER_CIVILITY__<br>\n__(Firstname)__ : __MEMBER_FIRSTNAME__<br>\n__(Lastname)__ : __MEMBER_LASTNAME__<br>\n__(Fullname)__ : __MEMBER_FULLNAME__<br>\n__(Company)__ : __MEMBER_COMPANY__<br>\n__(Address)__ : __MEMBER_ADDRESS__<br>\n__(Zip)__ : __MEMBER_ZIP__<br>\n__(Town)__ : __MEMBER_TOWN__<br>\n__(Country)__ : __MEMBER_COUNTRY__<br>\n__(Email)__ : __MEMBER_EMAIL__<br>\n__(Birthday)__ : __MEMBER_BIRTH__<br>\n__(Photo)__ : __MEMBER_PHOTO__<br>\n__(Login)__ : __MEMBER_LOGIN__<br>\n__(Password)__ : __MEMBER_PASSWORD__<br>\n__(Phone)__ : __MEMBER_PHONE__<br>\n__(PhonePerso)__ : __MEMBER_PHONEPRO__<br>\n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','1'),(3,0,'banque','thirdparty','',0,NULL,NULL,'2018-01-19 11:17:48','(YourSEPAMandate)',1,0,'__(YourSEPAMandate)__','__(Hello)__,<br><br>\n\n__(FindYourSEPAMandate)__ :<br>\n__MYCOMPANY_NAME__<br>\n__MYCOMPANY_FULLADDRESS__<br><br>\n__(Sincerely)__<br>\n__USER_SIGNATURE__',NULL,'1','1'),(6,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnAutoSubscription)',10,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipRequestWasReceived)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourMembershipRequestWasReceived)__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','0'),(7,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnMemberValidation)',20,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasValidated)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourMembershipWasValidated)__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','0'),(8,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnNewSubscription)',30,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourSubscriptionWasRecorded)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourSubscriptionWasRecorded)__<br>\n\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','1'),(9,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingReminderForExpiredSubscription)',40,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(SubscriptionReminderEmail)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfSubscriptionReminderEmail)__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','0'),(10,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnCancelation)',50,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasCanceled)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(YourMembershipWasCanceled)__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','0'),(11,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingAnEMailToMember)',60,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(CardContent)__','__(Hello)__,<br><br>\n\n__(ThisIsContentOfYourCard)__<br>\n__(ID)__ : __ID__<br>\n__(Civiliyty)__ : __MEMBER_CIVILITY__<br>\n__(Firstname)__ : __MEMBER_FIRSTNAME__<br>\n__(Lastname)__ : __MEMBER_LASTNAME__<br>\n__(Fullname)__ : __MEMBER_FULLNAME__<br>\n__(Company)__ : __MEMBER_COMPANY__<br>\n__(Address)__ : __MEMBER_ADDRESS__<br>\n__(Zip)__ : __MEMBER_ZIP__<br>\n__(Town)__ : __MEMBER_TOWN__<br>\n__(Country)__ : __MEMBER_COUNTRY__<br>\n__(Email)__ : __MEMBER_EMAIL__<br>\n__(Birthday)__ : __MEMBER_BIRTH__<br>\n__(Photo)__ : __MEMBER_PHOTO__<br>\n__(Login)__ : __MEMBER_LOGIN__<br>\n__(Password)__ : __MEMBER_PASSWORD__<br>\n__(Phone)__ : __MEMBER_PHONE__<br>\n__(PhonePerso)__ : __MEMBER_PHONEPRO__<br>\n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','0');
    +/*!40000 ALTER TABLE `llx_c_email_templates` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_exp_tax_cat`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_exp_tax_cat`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_exp_tax_cat` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(48) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `active` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_exp_tax_cat`
    +--
    +
    +LOCK TABLES `llx_c_exp_tax_cat` WRITE;
    +/*!40000 ALTER TABLE `llx_c_exp_tax_cat` DISABLE KEYS */;
    +INSERT INTO `llx_c_exp_tax_cat` VALUES (1,'ExpAutoCat',1,0),(2,'ExpCycloCat',1,0),(3,'ExpMotoCat',1,0),(4,'ExpAuto3CV',1,1),(5,'ExpAuto4CV',1,1),(6,'ExpAuto5CV',1,1),(7,'ExpAuto6CV',1,1),(8,'ExpAuto7CV',1,1),(9,'ExpAuto8CV',1,1),(10,'ExpAuto9CV',1,0),(11,'ExpAuto10CV',1,0),(12,'ExpAuto11CV',1,0),(13,'ExpAuto12CV',1,0),(14,'ExpAuto3PCV',1,0),(15,'ExpAuto4PCV',1,0),(16,'ExpAuto5PCV',1,0),(17,'ExpAuto6PCV',1,0),(18,'ExpAuto7PCV',1,0),(19,'ExpAuto8PCV',1,0),(20,'ExpAuto9PCV',1,0),(21,'ExpAuto10PCV',1,0),(22,'ExpAuto11PCV',1,0),(23,'ExpAuto12PCV',1,0),(24,'ExpAuto13PCV',1,0),(25,'ExpCyclo',1,0),(26,'ExpMoto12CV',1,0),(27,'ExpMoto345CV',1,0),(28,'ExpMoto5PCV',1,0);
    +/*!40000 ALTER TABLE `llx_c_exp_tax_cat` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_exp_tax_range`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_exp_tax_range`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_exp_tax_range` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_c_exp_tax_cat` int(11) NOT NULL DEFAULT '1',
    +  `range_ik` double NOT NULL DEFAULT '0',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `active` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_exp_tax_range`
    +--
    +
    +LOCK TABLES `llx_c_exp_tax_range` WRITE;
    +/*!40000 ALTER TABLE `llx_c_exp_tax_range` DISABLE KEYS */;
    +INSERT INTO `llx_c_exp_tax_range` VALUES (1,4,0,1,1),(2,4,5000,1,1),(3,4,20000,1,1),(4,5,0,1,1),(5,5,5000,1,1),(6,5,20000,1,1),(7,6,0,1,1),(8,6,5000,1,1),(9,6,20000,1,1),(10,7,0,1,1),(11,7,5000,1,1),(12,7,20000,1,1),(13,8,0,1,1),(14,8,5000,1,1),(15,8,20000,1,1);
    +/*!40000 ALTER TABLE `llx_c_exp_tax_range` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_field_list`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_field_list`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_field_list` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `element` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `name` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `alias` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `title` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `align` varchar(6) COLLATE utf8_unicode_ci DEFAULT 'left',
    +  `sort` tinyint(4) NOT NULL DEFAULT '1',
    +  `search` tinyint(4) NOT NULL DEFAULT '0',
    +  `enabled` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  `rang` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_field_list`
    +--
    +
    +LOCK TABLES `llx_c_field_list` WRITE;
    +/*!40000 ALTER TABLE `llx_c_field_list` DISABLE KEYS */;
    +INSERT INTO `llx_c_field_list` VALUES (1,'2011-02-06 11:18:30','product_default',1,'p.ref','ref','Ref','left',1,1,'1',1),(2,'2011-02-06 11:18:30','product_default',1,'p.label','label','Label','left',1,1,'1',2),(3,'2011-02-06 11:18:30','product_default',1,'p.barcode','barcode','BarCode','center',1,1,'$conf->barcode->enabled',3),(4,'2011-02-06 11:18:30','product_default',1,'p.tms','datem','DateModification','center',1,0,'1',4),(5,'2011-02-06 11:18:30','product_default',1,'p.price','price','SellingPriceHT','right',1,0,'1',5),(6,'2011-02-06 11:18:30','product_default',1,'p.price_ttc','price_ttc','SellingPriceTTC','right',1,0,'1',6),(7,'2011-02-06 11:18:30','product_default',1,'p.stock','stock','Stock','right',0,0,'$conf->stock->enabled',7),(8,'2011-02-06 11:18:30','product_default',1,'p.envente','status','Status','right',1,0,'1',8);
    +/*!40000 ALTER TABLE `llx_c_field_list` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_format_cards`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_format_cards`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_format_cards` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `paper_size` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `orientation` varchar(1) COLLATE utf8_unicode_ci NOT NULL,
    +  `metric` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
    +  `leftmargin` double(24,8) NOT NULL,
    +  `topmargin` double(24,8) NOT NULL,
    +  `nx` int(11) NOT NULL,
    +  `ny` int(11) NOT NULL,
    +  `spacex` double(24,8) NOT NULL,
    +  `spacey` double(24,8) NOT NULL,
    +  `width` double(24,8) NOT NULL,
    +  `height` double(24,8) NOT NULL,
    +  `font_size` int(11) NOT NULL,
    +  `custom_x` double(24,8) NOT NULL,
    +  `custom_y` double(24,8) NOT NULL,
    +  `active` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_format_cards`
    +--
    +
    +LOCK TABLES `llx_c_format_cards` WRITE;
    +/*!40000 ALTER TABLE `llx_c_format_cards` DISABLE KEYS */;
    +INSERT INTO `llx_c_format_cards` VALUES (1,'5160','Avery-5160, WL-875WX','letter','P','mm',5.58165000,12.70000000,3,10,3.55600000,0.00000000,65.87490000,25.40000000,7,0.00000000,0.00000000,1),(2,'5161','Avery-5161, WL-75WX','letter','P','mm',4.44500000,12.70000000,2,10,3.96800000,0.00000000,101.60000000,25.40000000,7,0.00000000,0.00000000,1),(3,'5162','Avery-5162, WL-100WX','letter','P','mm',3.87350000,22.35200000,2,7,4.95400000,0.00000000,101.60000000,33.78100000,8,0.00000000,0.00000000,1),(4,'5163','Avery-5163, WL-125WX','letter','P','mm',4.57200000,12.70000000,2,5,3.55600000,0.00000000,101.60000000,50.80000000,10,0.00000000,0.00000000,1),(5,'5164','5164 (Letter)','letter','P','in',0.14800000,0.50000000,2,3,0.20310000,0.00000000,4.00000000,3.33000000,12,0.00000000,0.00000000,0),(6,'8600','Avery-8600','letter','P','mm',7.10000000,19.00000000,3,10,9.50000000,3.10000000,66.60000000,25.40000000,7,0.00000000,0.00000000,1),(7,'99012','DYMO 99012 89*36mm','custom','L','mm',1.00000000,1.00000000,1,1,0.00000000,0.00000000,36.00000000,89.00000000,10,36.00000000,89.00000000,1),(8,'99014','DYMO 99014 101*54mm','custom','L','mm',1.00000000,1.00000000,1,1,0.00000000,0.00000000,54.00000000,101.00000000,10,54.00000000,101.00000000,1),(9,'AVERYC32010','Avery-C32010','A4','P','mm',15.00000000,13.00000000,2,5,10.00000000,0.00000000,85.00000000,54.00000000,10,0.00000000,0.00000000,1),(10,'CARD','Dolibarr Business cards','A4','P','mm',15.00000000,15.00000000,2,5,0.00000000,0.00000000,85.00000000,54.00000000,10,0.00000000,0.00000000,1),(11,'L7163','Avery-L7163','A4','P','mm',5.00000000,15.00000000,2,7,2.50000000,0.00000000,99.10000000,38.10000000,8,0.00000000,0.00000000,1);
    +/*!40000 ALTER TABLE `llx_c_format_cards` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_forme_juridique`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_forme_juridique`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_forme_juridique` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` int(11) NOT NULL,
    +  `fk_pays` int(11) NOT NULL,
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `isvatexempted` tinyint(4) NOT NULL DEFAULT '0',
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_forme_juridique` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=100221 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_forme_juridique`
    +--
    +
    +LOCK TABLES `llx_c_forme_juridique` WRITE;
    +/*!40000 ALTER TABLE `llx_c_forme_juridique` DISABLE KEYS */;
    +INSERT INTO `llx_c_forme_juridique` VALUES (100001,100001,1,'Etudiant',0,0,'cabinetmed',0),(100002,100002,1,'Retraité',0,0,'cabinetmed',0),(100003,100003,1,'Artisan',0,0,'cabinetmed',0),(100004,100004,1,'Femme de ménage',0,0,'cabinetmed',0),(100005,100005,1,'Professeur',0,0,'cabinetmed',0),(100006,100006,1,'Profession libérale',0,0,'cabinetmed',0),(100007,100007,1,'Informaticien',0,0,'cabinetmed',0),(100009,0,0,'-',0,1,NULL,0),(100010,2301,23,'Monotributista',0,1,NULL,0),(100011,2302,23,'Sociedad Civil',0,1,NULL,0),(100012,2303,23,'Sociedades Comerciales',0,1,NULL,0),(100013,2304,23,'Sociedades de Hecho',0,1,NULL,0),(100014,2305,23,'Sociedades Irregulares',0,1,NULL,0),(100015,2306,23,'Sociedad Colectiva',0,1,NULL,0),(100016,2307,23,'Sociedad en Comandita Simple',0,1,NULL,0),(100017,2308,23,'Sociedad de Capital e Industria',0,1,NULL,0),(100018,2309,23,'Sociedad Accidental o en participación',0,1,NULL,0),(100019,2310,23,'Sociedad de Responsabilidad Limitada',0,1,NULL,0),(100020,2311,23,'Sociedad Anónima',0,1,NULL,0),(100021,2312,23,'Sociedad Anónima con Participación Estatal Mayoritaria',0,1,NULL,0),(100022,2313,23,'Sociedad en Comandita por Acciones (arts. 315 a 324, LSC)',0,1,NULL,0),(100023,11,1,'Artisan Commerçant (EI)',0,1,NULL,0),(100024,12,1,'Commerçant (EI)',0,1,NULL,0),(100025,13,1,'Artisan (EI)',0,1,NULL,0),(100026,14,1,'Officier public ou ministériel',0,1,NULL,0),(100027,15,1,'Profession libérale (EI)',0,1,NULL,0),(100028,16,1,'Exploitant agricole',0,1,NULL,0),(100029,17,1,'Agent commercial',0,1,NULL,0),(100030,18,1,'Associé Gérant de société',0,1,NULL,0),(100031,19,1,'Personne physique',0,1,NULL,0),(100032,21,1,'Indivision',0,1,NULL,0),(100033,22,1,'Société créée de fait',0,1,NULL,0),(100034,23,1,'Société en participation',0,1,NULL,0),(100035,27,1,'Paroisse hors zone concordataire',0,1,NULL,0),(100036,29,1,'Groupement de droit privé non doté de la personnalité morale',0,1,NULL,0),(100037,31,1,'Personne morale de droit étranger, immatriculée au RCS',0,1,NULL,0),(100038,32,1,'Personne morale de droit étranger, non immatriculée au RCS',0,1,NULL,0),(100039,35,1,'Régime auto-entrepreneur',0,1,NULL,0),(100040,41,1,'Etablissement public ou régie à caractère industriel ou commercial',0,1,NULL,0),(100041,51,1,'Société coopérative commerciale particulière',0,1,NULL,0),(100042,52,1,'Société en nom collectif',0,1,NULL,0),(100043,53,1,'Société en commandite',0,1,NULL,0),(100044,54,1,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100045,55,1,'Société anonyme à conseil d administration',0,1,NULL,0),(100046,56,1,'Société anonyme à directoire',0,1,NULL,0),(100047,57,1,'Société par actions simplifiée (SAS)',0,1,NULL,0),(100048,58,1,'Entreprise Unipersonnelle à Responsabilité Limitée (EURL)',0,1,NULL,0),(100049,59,1,'Société par actions simplifiée unipersonnelle (SASU)',0,1,NULL,0),(100050,60,1,'Entreprise Individuelle à Responsabilité Limitée (EIRL)',0,1,NULL,0),(100051,61,1,'Caisse d\'épargne et de prévoyance',0,1,NULL,0),(100052,62,1,'Groupement d\'intérêt économique (GIE)',0,1,NULL,0),(100053,63,1,'Société coopérative agricole',0,1,NULL,0),(100054,64,1,'Société non commerciale d assurances',0,1,NULL,0),(100055,65,1,'Société civile',0,1,NULL,0),(100056,69,1,'Personnes de droit privé inscrites au RCS',0,1,NULL,0),(100057,71,1,'Administration de l état',0,1,NULL,0),(100058,72,1,'Collectivité territoriale',0,1,NULL,0),(100059,73,1,'Etablissement public administratif',0,1,NULL,0),(100060,74,1,'Personne morale de droit public administratif',0,1,NULL,0),(100061,81,1,'Organisme gérant régime de protection social à adhésion obligatoire',0,1,NULL,0),(100062,82,1,'Organisme mutualiste',0,1,NULL,0),(100063,83,1,'Comité d entreprise',0,1,NULL,0),(100064,84,1,'Organisme professionnel',0,1,NULL,0),(100065,85,1,'Organisme de retraite à adhésion non obligatoire',0,1,NULL,0),(100066,91,1,'Syndicat de propriétaires',0,1,NULL,0),(100067,92,1,'Association loi 1901 ou assimilé',0,1,NULL,0),(100068,93,1,'Fondation',0,1,NULL,0),(100069,99,1,'Personne morale de droit privé',0,1,NULL,0),(100070,200,2,'Indépendant',0,1,NULL,0),(100071,201,2,'SPRL - Société à responsabilité limitée',0,1,NULL,0),(100072,202,2,'SA   - Société Anonyme',0,1,NULL,0),(100073,203,2,'SCRL - Société coopérative à responsabilité limitée',0,1,NULL,0),(100074,204,2,'ASBL - Association sans but Lucratif',0,1,NULL,0),(100075,205,2,'SCRI - Société coopérative à responsabilité illimitée',0,1,NULL,0),(100076,206,2,'SCS  - Société en commandite simple',0,1,NULL,0),(100077,207,2,'SCA  - Société en commandite par action',0,1,NULL,0),(100078,208,2,'SNC  - Société en nom collectif',0,1,NULL,0),(100079,209,2,'GIE  - Groupement d intérêt économique',0,1,NULL,0),(100080,210,2,'GEIE - Groupement européen d intérêt économique',0,1,NULL,0),(100081,220,2,'Eenmanszaak',0,1,NULL,0),(100082,221,2,'BVBA - Besloten vennootschap met beperkte aansprakelijkheid',0,1,NULL,0),(100083,222,2,'NV   - Naamloze Vennootschap',0,1,NULL,0),(100084,223,2,'CVBA - Coöperatieve vennootschap met beperkte aansprakelijkheid',0,1,NULL,0),(100085,224,2,'VZW  - Vereniging zonder winstoogmerk',0,1,NULL,0),(100086,225,2,'CVOA - Coöperatieve vennootschap met onbeperkte aansprakelijkheid ',0,1,NULL,0),(100087,226,2,'GCV  - Gewone commanditaire vennootschap',0,1,NULL,0),(100088,227,2,'Comm.VA - Commanditaire vennootschap op aandelen',0,1,NULL,0),(100089,228,2,'VOF  - Vennootschap onder firma',0,1,NULL,0),(100090,229,2,'VS0  - Vennootschap met sociaal oogmerk',0,1,NULL,0),(100091,500,5,'GmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100092,501,5,'AG - Aktiengesellschaft ',0,1,NULL,0),(100093,502,5,'GmbH&Co. KG - Gesellschaft mit beschränkter Haftung & Compagnie Kommanditgesellschaft',0,1,NULL,0),(100094,503,5,'Gewerbe - Personengesellschaft',0,1,NULL,0),(100095,504,5,'UG - Unternehmergesellschaft -haftungsbeschränkt-',0,1,NULL,0),(100096,505,5,'GbR - Gesellschaft des bürgerlichen Rechts',0,1,NULL,0),(100097,506,5,'KG - Kommanditgesellschaft',0,1,NULL,0),(100098,507,5,'Ltd. - Limited Company',0,1,NULL,0),(100099,508,5,'OHG - Offene Handelsgesellschaft',0,1,NULL,0),(100100,10201,102,'Ατομική επιχείρηση',0,1,NULL,0),(100101,10202,102,'Εταιρική  επιχείρηση',0,1,NULL,0),(100102,10203,102,'Ομόρρυθμη Εταιρεία Ο.Ε',0,1,NULL,0),(100103,10204,102,'Ετερόρρυθμη Εταιρεία Ε.Ε',0,1,NULL,0),(100104,10205,102,'Εταιρεία Περιορισμένης Ευθύνης Ε.Π.Ε',0,1,NULL,0),(100105,10206,102,'Ανώνυμη Εταιρεία Α.Ε',0,1,NULL,0),(100106,10207,102,'Ανώνυμη ναυτιλιακή εταιρεία Α.Ν.Ε',0,1,NULL,0),(100107,10208,102,'Συνεταιρισμός',0,1,NULL,0),(100108,10209,102,'Συμπλοιοκτησία',0,1,NULL,0),(100109,301,3,'Società semplice',0,1,NULL,0),(100110,302,3,'Società in nome collettivo s.n.c.',0,1,NULL,0),(100111,303,3,'Società in accomandita semplice s.a.s.',0,1,NULL,0),(100112,304,3,'Società per azioni s.p.a.',0,1,NULL,0),(100113,305,3,'Società a responsabilità limitata s.r.l.',0,1,NULL,0),(100114,306,3,'Società in accomandita per azioni s.a.p.a.',0,1,NULL,0),(100115,307,3,'Società cooperativa a r.l.',0,1,NULL,0),(100116,308,3,'Società consortile',0,1,NULL,0),(100117,309,3,'Società europea',0,1,NULL,0),(100118,310,3,'Società cooperativa europea',0,1,NULL,0),(100119,311,3,'Società unipersonale',0,1,NULL,0),(100120,312,3,'Società di professionisti',0,1,NULL,0),(100121,313,3,'Società di fatto',0,1,NULL,0),(100122,315,3,'Società apparente',0,1,NULL,0),(100123,316,3,'Impresa individuale ',0,1,NULL,0),(100124,317,3,'Impresa coniugale',0,1,NULL,0),(100125,318,3,'Impresa familiare',0,1,NULL,0),(100126,319,3,'Consorzio cooperativo',0,1,NULL,0),(100127,320,3,'Società cooperativa sociale',0,1,NULL,0),(100128,321,3,'Società cooperativa di consumo',0,1,NULL,0),(100129,322,3,'Società cooperativa agricola',0,1,NULL,0),(100130,323,3,'A.T.I. Associazione temporanea di imprese',0,1,NULL,0),(100131,324,3,'R.T.I. Raggruppamento temporaneo di imprese',0,1,NULL,0),(100132,325,3,'Studio associato',0,1,NULL,0),(100133,600,6,'Raison Individuelle',0,1,NULL,0),(100134,601,6,'Société Simple',0,1,NULL,0),(100135,602,6,'Société en nom collectif',0,1,NULL,0),(100136,603,6,'Société en commandite',0,1,NULL,0),(100137,604,6,'Société anonyme (SA)',0,1,NULL,0),(100138,605,6,'Société en commandite par actions',0,1,NULL,0),(100139,606,6,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100140,607,6,'Société coopérative',0,1,NULL,0),(100141,608,6,'Association',0,1,NULL,0),(100142,609,6,'Fondation',0,1,NULL,0),(100143,700,7,'Sole Trader',0,1,NULL,0),(100144,701,7,'Partnership',0,1,NULL,0),(100145,702,7,'Private Limited Company by shares (LTD)',0,1,NULL,0),(100146,703,7,'Public Limited Company',0,1,NULL,0),(100147,704,7,'Workers Cooperative',0,1,NULL,0),(100148,705,7,'Limited Liability Partnership',0,1,NULL,0),(100149,706,7,'Franchise',0,1,NULL,0),(100150,1000,10,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100151,1001,10,'Société en Nom Collectif (SNC)',0,1,NULL,0),(100152,1002,10,'Société en Commandite Simple (SCS)',0,1,NULL,0),(100153,1003,10,'société en participation',0,1,NULL,0),(100154,1004,10,'Société Anonyme (SA)',0,1,NULL,0),(100155,1005,10,'Société Unipersonnelle à Responsabilité Limitée (SUARL)',0,1,NULL,0),(100156,1006,10,'Groupement d\'intérêt économique (GEI)',0,1,NULL,0),(100157,1007,10,'Groupe de sociétés',0,1,NULL,0),(100158,1701,17,'Eenmanszaak',0,1,NULL,0),(100159,1702,17,'Maatschap',0,1,NULL,0),(100160,1703,17,'Vennootschap onder firma',0,1,NULL,0),(100161,1704,17,'Commanditaire vennootschap',0,1,NULL,0),(100162,1705,17,'Besloten vennootschap (BV)',0,1,NULL,0),(100163,1706,17,'Naamloze Vennootschap (NV)',0,1,NULL,0),(100164,1707,17,'Vereniging',0,1,NULL,0),(100165,1708,17,'Stichting',0,1,NULL,0),(100166,1709,17,'Coöperatie met beperkte aansprakelijkheid (BA)',0,1,NULL,0),(100167,1710,17,'Coöperatie met uitgesloten aansprakelijkheid (UA)',0,1,NULL,0),(100168,1711,17,'Coöperatie met wettelijke aansprakelijkheid (WA)',0,1,NULL,0),(100169,1712,17,'Onderlinge waarborgmaatschappij',0,1,NULL,0),(100170,401,4,'Empresario Individual',0,1,NULL,0),(100171,402,4,'Comunidad de Bienes',0,1,NULL,0),(100172,403,4,'Sociedad Civil',0,1,NULL,0),(100173,404,4,'Sociedad Colectiva',0,1,NULL,0),(100174,405,4,'Sociedad Limitada',0,1,NULL,0),(100175,406,4,'Sociedad Anónima',0,1,NULL,0),(100176,407,4,'Sociedad Comanditaria por Acciones',0,1,NULL,0),(100177,408,4,'Sociedad Comanditaria Simple',0,1,NULL,0),(100178,409,4,'Sociedad Laboral',0,1,NULL,0),(100179,410,4,'Sociedad Cooperativa',0,1,NULL,0),(100180,411,4,'Sociedad de Garantía Recíproca',0,1,NULL,0),(100181,412,4,'Entidad de Capital-Riesgo',0,1,NULL,0),(100182,413,4,'Agrupación de Interés Económico',0,1,NULL,0),(100183,414,4,'Sociedad de Inversión Mobiliaria',0,1,NULL,0),(100184,415,4,'Agrupación sin Ánimo de Lucro',0,1,NULL,0),(100185,15201,152,'Mauritius Private Company Limited By Shares',0,1,NULL,0),(100186,15202,152,'Mauritius Company Limited By Guarantee',0,1,NULL,0),(100187,15203,152,'Mauritius Public Company Limited By Shares',0,1,NULL,0),(100188,15204,152,'Mauritius Foreign Company',0,1,NULL,0),(100189,15205,152,'Mauritius GBC1 (Offshore Company)',0,1,NULL,0),(100190,15206,152,'Mauritius GBC2 (International Company)',0,1,NULL,0),(100191,15207,152,'Mauritius General Partnership',0,1,NULL,0),(100192,15208,152,'Mauritius Limited Partnership',0,1,NULL,0),(100193,15209,152,'Mauritius Sole Proprietorship',0,1,NULL,0),(100194,15210,152,'Mauritius Trusts',0,1,NULL,0),(100195,15401,154,'Sociedad en nombre colectivo',0,1,NULL,0),(100196,15402,154,'Sociedad en comandita simple',0,1,NULL,0),(100197,15403,154,'Sociedad de responsabilidad limitada',0,1,NULL,0),(100198,15404,154,'Sociedad anónima',0,1,NULL,0),(100199,15405,154,'Sociedad en comandita por acciones',0,1,NULL,0),(100200,15406,154,'Sociedad cooperativa',0,1,NULL,0),(100201,4100,41,'GmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100202,4101,41,'GesmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100203,4102,41,'AG - Aktiengesellschaft',0,1,NULL,0),(100204,4103,41,'EWIV - Europäische wirtschaftliche Interessenvereinigung',0,1,NULL,0),(100205,4104,41,'KEG - Kommanditerwerbsgesellschaft',0,1,NULL,0),(100206,4105,41,'OEG - Offene Erwerbsgesellschaft',0,1,NULL,0),(100207,4106,41,'OHG - Offene Handelsgesellschaft',0,1,NULL,0),(100208,4107,41,'AG & Co KG - Kommanditgesellschaft',0,1,NULL,0),(100209,4108,41,'GmbH & Co KG - Kommanditgesellschaft',0,1,NULL,0),(100210,4109,41,'KG - Kommanditgesellschaft',0,1,NULL,0),(100211,4110,41,'OG - Offene Gesellschaft',0,1,NULL,0),(100212,4111,41,'GbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100213,4112,41,'GesbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100214,4113,41,'GesnbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100215,4114,41,'e.U. - eingetragener Einzelunternehmer',0,1,NULL,0),(100216,17801,178,'Empresa individual',0,1,NULL,0),(100217,17802,178,'Asociación General',0,1,NULL,0),(100218,17803,178,'Sociedad de Responsabilidad Limitada',0,1,NULL,0),(100219,17804,178,'Sociedad Civil',0,1,NULL,0),(100220,17805,178,'Sociedad Anónima',0,1,NULL,0);
    +/*!40000 ALTER TABLE `llx_c_forme_juridique` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_holiday_types`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_holiday_types`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_holiday_types` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `affect` int(11) NOT NULL,
    +  `delay` int(11) NOT NULL,
    +  `newByMonth` double(8,5) NOT NULL DEFAULT '0.00000',
    +  `fk_country` int(11) DEFAULT NULL,
    +  `active` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_holiday_types` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_holiday_types`
    +--
    +
    +LOCK TABLES `llx_c_holiday_types` WRITE;
    +/*!40000 ALTER TABLE `llx_c_holiday_types` DISABLE KEYS */;
    +INSERT INTO `llx_c_holiday_types` VALUES (1,'LEAVE_SICK','Sick leave',0,0,0.00000,NULL,1),(2,'LEAVE_OTHER','Other leave',0,0,0.00000,NULL,1),(3,'LEAVE_PAID','Paid vacation',1,7,0.00000,NULL,1),(4,'LEAVE_RTT_FR','RTT',1,7,0.83000,1,0),(5,'LEAVE_PAID_FR','Paid vacation',1,30,2.08334,1,0);
    +/*!40000 ALTER TABLE `llx_c_holiday_types` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_hrm_department`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_hrm_department`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_hrm_department` (
    +  `rowid` int(11) NOT NULL,
    +  `pos` tinyint(4) NOT NULL DEFAULT '0',
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_hrm_department`
    +--
    +
    +LOCK TABLES `llx_c_hrm_department` WRITE;
    +/*!40000 ALTER TABLE `llx_c_hrm_department` DISABLE KEYS */;
    +INSERT INTO `llx_c_hrm_department` VALUES (1,5,'MANAGEMENT','Management',1),(2,10,'GESTION','Gestion',1),(3,15,'TRAINING','Training',1),(4,20,'IT','Inform. Technology (IT)',1),(5,25,'MARKETING','Marketing',1),(6,30,'SALES','Sales',1),(7,35,'LEGAL','Legal',1),(8,40,'FINANCIAL','Financial accounting',1),(9,45,'HUMANRES','Human resources',1),(10,50,'PURCHASING','Purchasing',1),(11,55,'SERVICES','Services',1),(12,60,'CUSTOMSERV','Customer service',1),(13,65,'CONSULTING','Consulting',1),(14,70,'LOGISTIC','Logistics',1),(15,75,'CONSTRUCT','Engineering/design',1),(16,80,'PRODUCTION','Manufacturing',1),(17,85,'QUALITY','Quality assurance',1),(18,85,'MAINT','Plant assurance',1);
    +/*!40000 ALTER TABLE `llx_c_hrm_department` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_hrm_function`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_hrm_function`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_hrm_function` (
    +  `rowid` int(11) NOT NULL,
    +  `pos` tinyint(4) NOT NULL DEFAULT '0',
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `c_level` tinyint(4) NOT NULL DEFAULT '0',
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_hrm_function`
    +--
    +
    +LOCK TABLES `llx_c_hrm_function` WRITE;
    +/*!40000 ALTER TABLE `llx_c_hrm_function` DISABLE KEYS */;
    +INSERT INTO `llx_c_hrm_function` VALUES (1,5,'EXECBOARD','Executive board',0,1),(2,10,'MANAGDIR','Managing director',1,1),(3,15,'ACCOUNTMANAG','Account manager',0,1),(4,20,'ENGAGDIR','Engagement director',1,1),(5,25,'DIRECTOR','Director',1,1),(6,30,'PROJMANAG','Project manager',0,1),(7,35,'DEPHEAD','Department head',0,1),(8,40,'SECRETAR','Secretary',0,1),(9,45,'EMPLOYEE','Department employee',0,1);
    +/*!40000 ALTER TABLE `llx_c_hrm_function` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_incoterms`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_incoterms`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_incoterms` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_incoterms` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_incoterms`
    +--
    +
    +LOCK TABLES `llx_c_incoterms` WRITE;
    +/*!40000 ALTER TABLE `llx_c_incoterms` DISABLE KEYS */;
    +INSERT INTO `llx_c_incoterms` VALUES (1,'EXW','Ex Works, au départ non chargé, non dédouané sortie d\'usine (uniquement adapté aux flux domestiques, nationaux)',1),(2,'FCA','Free Carrier, marchandises dédouanées et chargées dans le pays de départ, chez le vendeur ou chez le commissionnaire de transport de l\'acheteur',1),(3,'FAS','Free Alongside Ship, sur le quai du port de départ',1),(4,'FOB','Free On Board, chargé sur le bateau, les frais de chargement dans celui-ci étant fonction du liner term indiqué par la compagnie maritime (à la charge du vendeur)',1),(5,'CFR','Cost and Freight, chargé dans le bateau, livraison au port de départ, frais payés jusqu\'au port d\'arrivée, sans assurance pour le transport, non déchargé du navire à destination (les frais de déchargement sont inclus ou non au port d\'arrivée)',1),(6,'CIF','Cost, Insurance and Freight, chargé sur le bateau, frais jusqu\'au port d\'arrivée, avec l\'assurance marchandise transportée souscrite par le vendeur pour le compte de l\'acheteur',1),(7,'CPT','Carriage Paid To, livraison au premier transporteur, frais jusqu\'au déchargement du mode de transport, sans assurance pour le transport',1),(8,'CIP','Carriage and Insurance Paid to, idem CPT, avec assurance marchandise transportée souscrite par le vendeur pour le compte de l\'acheteur',1),(9,'DAT','Delivered At Terminal, marchandises (déchargées) livrées sur quai, dans un terminal maritime, fluvial, aérien, routier ou ferroviaire désigné (dédouanement import, et post-acheminement payés par l\'acheteur)',1),(10,'DAP','Delivered At Place, marchandises (non déchargées) mises à disposition de l\'acheteur dans le pays d\'importation au lieu précisé dans le contrat (déchargement, dédouanement import payé par l\'acheteur)',1),(11,'DDP','Delivered Duty Paid, marchandises (non déchargées) livrées à destination finale, dédouanement import et taxes à la charge du vendeur ; l\'acheteur prend en charge uniquement le déchargement (si exclusion des taxes type TVA, le préciser clairement)',1);
    +/*!40000 ALTER TABLE `llx_c_incoterms` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_input_method`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_input_method`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_input_method` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `libelle` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_methode_commande_fournisseur` (`code`),
    +  UNIQUE KEY `uk_c_input_method` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_input_method`
    +--
    +
    +LOCK TABLES `llx_c_input_method` WRITE;
    +/*!40000 ALTER TABLE `llx_c_input_method` DISABLE KEYS */;
    +INSERT INTO `llx_c_input_method` VALUES (1,'OrderByMail','Courrier',1,NULL),(2,'OrderByFax','Fax',1,NULL),(3,'OrderByEMail','EMail',1,NULL),(4,'OrderByPhone','Téléphone',1,NULL),(5,'OrderByWWW','En ligne',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_input_method` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_input_reason`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_input_reason`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_input_reason` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_input_reason` (`code`)
    +) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_input_reason`
    +--
    +
    +LOCK TABLES `llx_c_input_reason` WRITE;
    +/*!40000 ALTER TABLE `llx_c_input_reason` DISABLE KEYS */;
    +INSERT INTO `llx_c_input_reason` VALUES (1,'SRC_INTE','Web site',1,NULL),(2,'SRC_CAMP_MAIL','Mailing campaign',1,NULL),(3,'SRC_CAMP_PHO','Phone campaign',1,NULL),(4,'SRC_CAMP_FAX','Fax campaign',1,NULL),(5,'SRC_COMM','Commercial contact',1,NULL),(6,'SRC_SHOP','Shop contact',1,NULL),(7,'SRC_CAMP_EMAIL','EMailing campaign',1,NULL),(8,'SRC_WOM','Word of mouth',1,NULL),(9,'SRC_PARTNER','Partner',1,NULL),(10,'SRC_EMPLOYEE','Employee',1,NULL),(11,'SRC_SPONSORING','Sponsoring',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_input_reason` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_lead_status`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_lead_status`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_lead_status` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) DEFAULT NULL,
    +  `percent` double(5,2) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_lead_status_code` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_lead_status`
    +--
    +
    +LOCK TABLES `llx_c_lead_status` WRITE;
    +/*!40000 ALTER TABLE `llx_c_lead_status` DISABLE KEYS */;
    +INSERT INTO `llx_c_lead_status` VALUES (1,'PROSP','Prospection',10,0.00,1),(2,'QUAL','Qualification',20,20.00,1),(3,'PROPO','Proposal',30,40.00,1),(4,'NEGO','Negotiation',40,60.00,1),(5,'PENDING','Pending',50,50.00,0),(6,'WON','Won',60,100.00,1),(7,'LOST','Lost',70,0.00,1);
    +/*!40000 ALTER TABLE `llx_c_lead_status` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_lead_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_lead_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_lead_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `code` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_lead_type`
    +--
    +
    +LOCK TABLES `llx_c_lead_type` WRITE;
    +/*!40000 ALTER TABLE `llx_c_lead_type` DISABLE KEYS */;
    +INSERT INTO `llx_c_lead_type` VALUES (1,'SUPP','Support',1),(2,'TRAIN','Formation',1),(3,'ADVI','Conseil',1);
    +/*!40000 ALTER TABLE `llx_c_lead_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_methode_commande_fournisseur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_methode_commande_fournisseur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_methode_commande_fournisseur` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `libelle` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_methode_commande_fournisseur` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_methode_commande_fournisseur`
    +--
    +
    +LOCK TABLES `llx_c_methode_commande_fournisseur` WRITE;
    +/*!40000 ALTER TABLE `llx_c_methode_commande_fournisseur` DISABLE KEYS */;
    +INSERT INTO `llx_c_methode_commande_fournisseur` VALUES (1,'OrderByMail','Courrier',1),(2,'OrderByFax','Fax',1),(3,'OrderByEMail','EMail',1),(4,'OrderByPhone','Téléphone',1),(5,'OrderByWWW','En ligne',1);
    +/*!40000 ALTER TABLE `llx_c_methode_commande_fournisseur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_paiement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_paiement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_paiement` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `code` varchar(6) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(62) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` smallint(6) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_paiement_code` (`entity`,`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_paiement`
    +--
    +
    +LOCK TABLES `llx_c_paiement` WRITE;
    +/*!40000 ALTER TABLE `llx_c_paiement` DISABLE KEYS */;
    +INSERT INTO `llx_c_paiement` VALUES (1,1,'TIP','TIP',2,0,NULL,NULL,0),(2,1,'VIR','Virement',2,1,NULL,NULL,0),(3,1,'PRE','Prélèvement',2,1,NULL,NULL,0),(4,1,'LIQ','Espèces',2,1,NULL,NULL,0),(6,1,'CB','Carte Bancaire',2,1,NULL,NULL,0),(7,1,'CHQ','Chèque',2,1,NULL,NULL,0),(50,1,'VAD','Paiement en ligne',2,0,NULL,NULL,0),(51,1,'TRA','Traite',2,0,NULL,NULL,0),(52,1,'LCR','LCR',2,0,NULL,NULL,0),(53,1,'FAC','Factor',2,0,NULL,NULL,0);
    +/*!40000 ALTER TABLE `llx_c_paiement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_paiement_temp`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_paiement_temp`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_paiement_temp` (
    +  `id` int(11) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `code` varchar(6) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(62) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` smallint(6) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `accountancy_code` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `module` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0'
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_paiement_temp`
    +--
    +
    +LOCK TABLES `llx_c_paiement_temp` WRITE;
    +/*!40000 ALTER TABLE `llx_c_paiement_temp` DISABLE KEYS */;
    +INSERT INTO `llx_c_paiement_temp` VALUES (1,1,'TIP','TIP',2,0,NULL,NULL,0),(2,1,'VIR','Virement',2,1,NULL,NULL,0),(3,1,'PRE','Prélèvement',2,1,NULL,NULL,0),(4,1,'LIQ','Espèces',2,1,NULL,NULL,0),(6,1,'CB','Carte Bancaire',2,1,NULL,NULL,0),(7,1,'CHQ','Chèque',2,1,NULL,NULL,0),(50,1,'VAD','Paiement en ligne',2,0,NULL,NULL,0),(51,1,'TRA','Traite',2,0,NULL,NULL,0),(52,1,'LCR','LCR',2,0,NULL,NULL,0),(53,1,'FAC','Factor',2,0,NULL,NULL,0);
    +/*!40000 ALTER TABLE `llx_c_paiement_temp` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_paper_format`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_paper_format`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_paper_format` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `width` float(6,2) DEFAULT '0.00',
    +  `height` float(6,2) DEFAULT '0.00',
    +  `unit` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=226 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_paper_format`
    +--
    +
    +LOCK TABLES `llx_c_paper_format` WRITE;
    +/*!40000 ALTER TABLE `llx_c_paper_format` DISABLE KEYS */;
    +INSERT INTO `llx_c_paper_format` VALUES (1,'EU4A0','Format 4A0',1682.00,2378.00,'mm',1,NULL),(2,'EU2A0','Format 2A0',1189.00,1682.00,'mm',1,NULL),(3,'EUA0','Format A0',840.00,1189.00,'mm',1,NULL),(4,'EUA1','Format A1',594.00,840.00,'mm',1,NULL),(5,'EUA2','Format A2',420.00,594.00,'mm',1,NULL),(6,'EUA3','Format A3',297.00,420.00,'mm',1,NULL),(7,'EUA4','Format A4',210.00,297.00,'mm',1,NULL),(8,'EUA5','Format A5',148.00,210.00,'mm',1,NULL),(9,'EUA6','Format A6',105.00,148.00,'mm',1,NULL),(100,'USLetter','Format Letter (A)',216.00,279.00,'mm',1,NULL),(105,'USLegal','Format Legal',216.00,356.00,'mm',1,NULL),(110,'USExecutive','Format Executive',190.00,254.00,'mm',1,NULL),(115,'USLedger','Format Ledger/Tabloid (B)',279.00,432.00,'mm',1,NULL),(200,'CAP1','Format Canadian P1',560.00,860.00,'mm',1,NULL),(205,'CAP2','Format Canadian P2',430.00,560.00,'mm',1,NULL),(210,'CAP3','Format Canadian P3',280.00,430.00,'mm',1,NULL),(215,'CAP4','Format Canadian P4',215.00,280.00,'mm',1,NULL),(220,'CAP5','Format Canadian P5',140.00,215.00,'mm',1,NULL),(225,'CAP6','Format Canadian P6',107.00,140.00,'mm',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_paper_format` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_payment_term`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_payment_term`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_payment_term` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `code` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `sortorder` smallint(6) DEFAULT NULL,
    +  `active` tinyint(4) DEFAULT '1',
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `libelle_facture` text COLLATE utf8_unicode_ci,
    +  `type_cdr` tinyint(4) DEFAULT NULL,
    +  `nbjour` smallint(6) DEFAULT NULL,
    +  `decalage` smallint(6) DEFAULT NULL,
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_payment_term_code` (`entity`,`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_payment_term`
    +--
    +
    +LOCK TABLES `llx_c_payment_term` WRITE;
    +/*!40000 ALTER TABLE `llx_c_payment_term` DISABLE KEYS */;
    +INSERT INTO `llx_c_payment_term` VALUES (1,1,'RECEP',1,1,'A réception','Réception de facture',0,0,NULL,NULL,0),(2,1,'30D',2,1,'30 jours','Réglement à 30 jours',0,30,NULL,NULL,0),(3,1,'30DENDMONTH',3,1,'30 jours fin de mois','Réglement à 30 jours fin de mois',1,30,NULL,NULL,0),(4,1,'60D',4,1,'60 jours','Réglement à 60 jours',0,60,NULL,NULL,0),(5,1,'60DENDMONTH',5,1,'60 jours fin de mois','Réglement à 60 jours fin de mois',1,60,NULL,NULL,0),(6,1,'PT_ORDER',6,1,'A réception de commande','A réception de commande',0,0,NULL,NULL,0),(7,1,'PT_DELIVERY',7,1,'Livraison','Règlement à la livraison',0,0,NULL,NULL,0),(8,1,'PT_5050',8,1,'50 et 50','Règlement 50% à la commande, 50% à la livraison',0,0,NULL,NULL,0);
    +/*!40000 ALTER TABLE `llx_c_payment_term` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_price_expression`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_price_expression`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_price_expression` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `title` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `expression` varchar(80) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_price_expression`
    +--
    +
    +LOCK TABLES `llx_c_price_expression` WRITE;
    +/*!40000 ALTER TABLE `llx_c_price_expression` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_c_price_expression` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_price_global_variable`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_price_global_variable`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_price_global_variable` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `value` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_price_global_variable`
    +--
    +
    +LOCK TABLES `llx_c_price_global_variable` WRITE;
    +/*!40000 ALTER TABLE `llx_c_price_global_variable` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_c_price_global_variable` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_price_global_variable_updater`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_price_global_variable_updater`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_price_global_variable_updater` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `type` int(11) NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `parameters` text COLLATE utf8_unicode_ci,
    +  `fk_variable` int(11) NOT NULL,
    +  `update_interval` int(11) DEFAULT '0',
    +  `next_update` int(11) DEFAULT '0',
    +  `last_status` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_price_global_variable_updater`
    +--
    +
    +LOCK TABLES `llx_c_price_global_variable_updater` WRITE;
    +/*!40000 ALTER TABLE `llx_c_price_global_variable_updater` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_c_price_global_variable_updater` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_propalst`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_propalst`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_propalst` (
    +  `id` smallint(6) NOT NULL,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_propalst` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_propalst`
    +--
    +
    +LOCK TABLES `llx_c_propalst` WRITE;
    +/*!40000 ALTER TABLE `llx_c_propalst` DISABLE KEYS */;
    +INSERT INTO `llx_c_propalst` VALUES (0,'PR_DRAFT','Brouillon',1),(1,'PR_OPEN','Ouverte',1),(2,'PR_SIGNED','Signée',1),(3,'PR_NOTSIGNED','Non Signée',1),(4,'PR_FAC','Facturée',1);
    +/*!40000 ALTER TABLE `llx_c_propalst` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_prospectlevel`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_prospectlevel`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_prospectlevel` (
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `sortorder` smallint(6) DEFAULT NULL,
    +  `active` smallint(6) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_prospectlevel`
    +--
    +
    +LOCK TABLES `llx_c_prospectlevel` WRITE;
    +/*!40000 ALTER TABLE `llx_c_prospectlevel` DISABLE KEYS */;
    +INSERT INTO `llx_c_prospectlevel` VALUES ('PL_HIGH','High',4,1,NULL),('PL_LOW','Low',2,1,NULL),('PL_MEDIUM','Medium',3,1,NULL),('PL_NONE','None',1,1,NULL);
    +/*!40000 ALTER TABLE `llx_c_prospectlevel` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_regions`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_regions`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_regions` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code_region` int(11) NOT NULL,
    +  `fk_pays` int(11) NOT NULL,
    +  `cheflieu` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tncc` int(11) DEFAULT NULL,
    +  `nom` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `code_region` (`code_region`),
    +  UNIQUE KEY `uk_code_region` (`code_region`),
    +  KEY `idx_c_regions_fk_pays` (`fk_pays`)
    +) ENGINE=InnoDB AUTO_INCREMENT=23347 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_regions`
    +--
    +
    +LOCK TABLES `llx_c_regions` WRITE;
    +/*!40000 ALTER TABLE `llx_c_regions` DISABLE KEYS */;
    +INSERT INTO `llx_c_regions` VALUES (1,0,0,'0',0,'-',1),(101,1,1,'97105',3,'Guadeloupe',1),(102,2,1,'97209',3,'Martinique',1),(103,3,1,'97302',3,'Guyane',1),(104,4,1,'97411',3,'Réunion',1),(105,11,1,'75056',1,'Île-de-France',1),(106,21,1,'51108',0,'Champagne-Ardenne',1),(107,22,1,'80021',0,'Picardie',1),(108,23,1,'76540',0,'Haute-Normandie',1),(109,24,1,'45234',2,'Centre',1),(110,25,1,'14118',0,'Basse-Normandie',1),(111,26,1,'21231',0,'Bourgogne',1),(112,31,1,'59350',2,'Nord-Pas-de-Calais',1),(113,41,1,'57463',0,'Lorraine',1),(114,42,1,'67482',1,'Alsace',1),(115,43,1,'25056',0,'Franche-Comté',1),(116,52,1,'44109',4,'Pays de la Loire',1),(117,53,1,'35238',0,'Bretagne',1),(118,54,1,'86194',2,'Poitou-Charentes',1),(119,72,1,'33063',1,'Aquitaine',1),(120,73,1,'31555',0,'Midi-Pyrénées',1),(121,74,1,'87085',2,'Limousin',1),(122,82,1,'69123',2,'Rhône-Alpes',1),(123,83,1,'63113',1,'Auvergne',1),(124,91,1,'34172',2,'Languedoc-Roussillon',1),(125,93,1,'13055',0,'Provence-Alpes-Côte d\'Azur',1),(126,94,1,'2A004',0,'Corse',1),(201,201,2,'',1,'Flandre',1),(202,202,2,'',2,'Wallonie',1),(203,203,2,'',3,'Bruxelles-Capitale',1),(301,301,3,NULL,1,'Abruzzo',1),(302,302,3,NULL,1,'Basilicata',1),(303,303,3,NULL,1,'Calabria',1),(304,304,3,NULL,1,'Campania',1),(305,305,3,NULL,1,'Emilia-Romagna',1),(306,306,3,NULL,1,'Friuli-Venezia Giulia',1),(307,307,3,NULL,1,'Lazio',1),(308,308,3,NULL,1,'Liguria',1),(309,309,3,NULL,1,'Lombardia',1),(310,310,3,NULL,1,'Marche',1),(311,311,3,NULL,1,'Molise',1),(312,312,3,NULL,1,'Piemonte',1),(313,313,3,NULL,1,'Puglia',1),(314,314,3,NULL,1,'Sardegna',1),(315,315,3,NULL,1,'Sicilia',1),(316,316,3,NULL,1,'Toscana',1),(317,317,3,NULL,1,'Trentino-Alto Adige',1),(318,318,3,NULL,1,'Umbria',1),(319,319,3,NULL,1,'Valle d Aosta',1),(320,320,3,NULL,1,'Veneto',1),(401,401,4,'',0,'Andalucia',1),(402,402,4,'',0,'Aragón',1),(403,403,4,'',0,'Castilla y León',1),(404,404,4,'',0,'Castilla la Mancha',1),(405,405,4,'',0,'Canarias',1),(406,406,4,'',0,'Cataluña',1),(407,407,4,'',0,'Comunidad de Ceuta',1),(408,408,4,'',0,'Comunidad Foral de Navarra',1),(409,409,4,'',0,'Comunidad de Melilla',1),(410,410,4,'',0,'Cantabria',1),(411,411,4,'',0,'Comunidad Valenciana',1),(412,412,4,'',0,'Extemadura',1),(413,413,4,'',0,'Galicia',1),(414,414,4,'',0,'Islas Baleares',1),(415,415,4,'',0,'La Rioja',1),(416,416,4,'',0,'Comunidad de Madrid',1),(417,417,4,'',0,'Región de Murcia',1),(418,418,4,'',0,'Principado de Asturias',1),(419,419,4,'',0,'Pais Vasco',1),(601,601,6,'',1,'Cantons',1),(1001,1001,10,'',0,'Ariana',1),(1002,1002,10,'',0,'Béja',1),(1003,1003,10,'',0,'Ben Arous',1),(1004,1004,10,'',0,'Bizerte',1),(1005,1005,10,'',0,'Gabès',1),(1006,1006,10,'',0,'Gafsa',1),(1007,1007,10,'',0,'Jendouba',1),(1008,1008,10,'',0,'Kairouan',1),(1009,1009,10,'',0,'Kasserine',1),(1010,1010,10,'',0,'Kébili',1),(1011,1011,10,'',0,'La Manouba',1),(1012,1012,10,'',0,'Le Kef',1),(1013,1013,10,'',0,'Mahdia',1),(1014,1014,10,'',0,'Médenine',1),(1015,1015,10,'',0,'Monastir',1),(1016,1016,10,'',0,'Nabeul',1),(1017,1017,10,'',0,'Sfax',1),(1018,1018,10,'',0,'Sidi Bouzid',1),(1019,1019,10,'',0,'Siliana',1),(1020,1020,10,'',0,'Sousse',1),(1021,1021,10,'',0,'Tataouine',1),(1022,1022,10,'',0,'Tozeur',1),(1023,1023,10,'',0,'Tunis',1),(1024,1024,10,'',0,'Zaghouan',1),(1101,1101,11,'',0,'United-States',1),(1201,1201,12,'',0,'Tanger-Tétouan',1),(1202,1202,12,'',0,'Gharb-Chrarda-Beni Hssen',1),(1203,1203,12,'',0,'Taza-Al Hoceima-Taounate',1),(1204,1204,12,'',0,'L\'Oriental',1),(1205,1205,12,'',0,'Fès-Boulemane',1),(1206,1206,12,'',0,'Meknès-Tafialet',1),(1207,1207,12,'',0,'Rabat-Salé-Zemour-Zaër',1),(1208,1208,12,'',0,'Grand Cassablanca',1),(1209,1209,12,'',0,'Chaouia-Ouardigha',1),(1210,1210,12,'',0,'Doukahla-Adba',1),(1211,1211,12,'',0,'Marrakech-Tensift-Al Haouz',1),(1212,1212,12,'',0,'Tadla-Azilal',1),(1213,1213,12,'',0,'Sous-Massa-Drâa',1),(1214,1214,12,'',0,'Guelmim-Es Smara',1),(1215,1215,12,'',0,'Laâyoune-Boujdour-Sakia el Hamra',1),(1216,1216,12,'',0,'Oued Ed-Dahab Lagouira',1),(1301,1301,13,'',0,'Algerie',1),(2301,2301,23,'',0,'Norte',1),(2302,2302,23,'',0,'Litoral',1),(2303,2303,23,'',0,'Cuyana',1),(2304,2304,23,'',0,'Central',1),(2305,2305,23,'',0,'Patagonia',1),(2801,2801,28,'',0,'Australia',1),(4601,4601,46,'',0,'Barbados',1),(6701,6701,67,NULL,NULL,'Tarapacá',1),(6702,6702,67,NULL,NULL,'Antofagasta',1),(6703,6703,67,NULL,NULL,'Atacama',1),(6704,6704,67,NULL,NULL,'Coquimbo',1),(6705,6705,67,NULL,NULL,'Valparaíso',1),(6706,6706,67,NULL,NULL,'General Bernardo O Higgins',1),(6707,6707,67,NULL,NULL,'Maule',1),(6708,6708,67,NULL,NULL,'Biobío',1),(6709,6709,67,NULL,NULL,'Raucanía',1),(6710,6710,67,NULL,NULL,'Los Lagos',1),(6711,6711,67,NULL,NULL,'Aysén General Carlos Ibáñez del Campo',1),(6712,6712,67,NULL,NULL,'Magallanes y Antártica Chilena',1),(6713,6713,67,NULL,NULL,'Santiago',1),(6714,6714,67,NULL,NULL,'Los Ríos',1),(6715,6715,67,NULL,NULL,'Arica y Parinacota',1),(7001,7001,70,'',0,'Colombie',1),(8601,8601,86,NULL,NULL,'Central',1),(8602,8602,86,NULL,NULL,'Oriental',1),(8603,8603,86,NULL,NULL,'Occidental',1),(10201,10201,102,NULL,NULL,'??????',1),(10202,10202,102,NULL,NULL,'?????? ??????',1),(10203,10203,102,NULL,NULL,'???????? ?????????',1),(10204,10204,102,NULL,NULL,'?????',1),(10205,10205,102,NULL,NULL,'????????? ????????? ??? ?????',1),(10206,10206,102,NULL,NULL,'???????',1),(10207,10207,102,NULL,NULL,'????? ?????',1),(10208,10208,102,NULL,NULL,'?????? ??????',1),(10209,10209,102,NULL,NULL,'????????????',1),(10210,10210,102,NULL,NULL,'????? ??????',1),(10211,10211,102,NULL,NULL,'?????? ??????',1),(10212,10212,102,NULL,NULL,'????????',1),(10213,10213,102,NULL,NULL,'?????? ?????????',1),(11401,11401,114,'',0,'Honduras',1),(11701,11701,117,'',0,'India',1),(15201,15201,152,'',0,'Rivière Noire',1),(15202,15202,152,'',0,'Flacq',1),(15203,15203,152,'',0,'Grand Port',1),(15204,15204,152,'',0,'Moka',1),(15205,15205,152,'',0,'Pamplemousses',1),(15206,15206,152,'',0,'Plaines Wilhems',1),(15207,15207,152,'',0,'Port-Louis',1),(15208,15208,152,'',0,'Rivière du Rempart',1),(15209,15209,152,'',0,'Savanne',1),(15210,15210,152,'',0,'Rodrigues',1),(15211,15211,152,'',0,'Les îles Agaléga',1),(15212,15212,152,'',0,'Les écueils des Cargados Carajos',1),(15401,15401,154,'',0,'Mexique',1),(23201,23201,232,'',0,'Los Andes',1),(23202,23202,232,'',0,'Capital',1),(23203,23203,232,'',0,'Central',1),(23204,23204,232,'',0,'Cento Occidental',1),(23205,23205,232,'',0,'Guayana',1),(23206,23206,232,'',0,'Insular',1),(23207,23207,232,'',0,'Los Llanos',1),(23208,23208,232,'',0,'Nor-Oriental',1),(23209,23209,232,'',0,'Zuliana',1),(23215,6,1,'97601',3,'Mayotte',1),(23280,420,4,'',0,'Otros',1),(23281,501,5,'',0,'Deutschland',1),(23296,701,7,'',0,'England',1),(23297,702,7,'',0,'Wales',1),(23298,703,7,'',0,'Scotland',1),(23299,704,7,'',0,'Northern Ireland',1),(23325,1401,14,'',0,'Canada',1),(23326,1701,17,'',0,'Provincies van Nederland ',1),(23333,5601,56,'',0,'Brasil',1),(23334,5201,52,'',0,'Chuquisaca',1),(23335,5202,52,'',0,'La Paz',1),(23336,5203,52,'',0,'Cochabamba',1),(23337,5204,52,'',0,'Oruro',1),(23338,5205,52,'',0,'Potosí',1),(23339,5206,52,'',0,'Tarija',1),(23340,5207,52,'',0,'Santa Cruz',1),(23341,5208,52,'',0,'El Beni',1),(23342,5209,52,'',0,'Pando',1),(23343,4101,41,'',0,'Österreich',1),(23344,17801,178,'',0,'Panama',1),(23345,22701,227,'',0,'United Arab Emirates',1),(23346,11801,118,'',0,'Indonesia',1);
    +/*!40000 ALTER TABLE `llx_c_regions` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_revenuestamp`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_revenuestamp`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_revenuestamp` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_pays` int(11) NOT NULL,
    +  `taux` double NOT NULL,
    +  `note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `revenuestamp_type` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'fixed',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=102 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_revenuestamp`
    +--
    +
    +LOCK TABLES `llx_c_revenuestamp` WRITE;
    +/*!40000 ALTER TABLE `llx_c_revenuestamp` DISABLE KEYS */;
    +INSERT INTO `llx_c_revenuestamp` VALUES (101,10,0.4,'Revenue stamp tunisia',1,NULL,NULL,'fixed');
    +/*!40000 ALTER TABLE `llx_c_revenuestamp` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_shipment_mode`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_shipment_mode`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_shipment_mode` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `tracking` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) DEFAULT '0',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_shipment_mode`
    +--
    +
    +LOCK TABLES `llx_c_shipment_mode` WRITE;
    +/*!40000 ALTER TABLE `llx_c_shipment_mode` DISABLE KEYS */;
    +INSERT INTO `llx_c_shipment_mode` VALUES (1,'2010-10-09 23:43:16','CATCH','Catch','Catch by client','',1,NULL),(2,'2010-10-09 23:43:16','TRANS','Transporter','Generic transporter','',1,NULL),(3,'2010-10-09 23:43:16','COLSUI','Colissimo Suivi','Colissimo Suivi','',0,NULL),(4,'2011-07-18 17:28:27','LETTREMAX','Lettre Max','Courrier Suivi et Lettre Max','',0,NULL),(9,'2013-02-24 01:48:18','UPS','UPS','United Parcel Service','http://wwwapps.ups.com/etracking/tracking.cgi?InquiryNumber2=&InquiryNumber3=&tracknums_displayed=3&loc=fr_FR&TypeOfInquiryNumber=T&HTMLVersion=4.0&InquiryNumber22=&InquiryNumber32=&track=Track&Suivi.x=64&Suivi.y=7&Suivi=Valider&InquiryNumber1={TRACKID}',0,NULL),(10,'2013-02-24 01:48:18','KIALA','KIALA','Relais Kiala','http://www.kiala.fr/tnt/delivery/{TRACKID}',0,NULL),(11,'2013-02-24 01:48:18','GLS','GLS','General Logistics Systems','http://www.gls-group.eu/276-I-PORTAL-WEB/content/GLS/FR01/FR/5004.htm?txtAction=71000&txtRefNo={TRACKID}',0,NULL),(12,'2013-02-24 01:48:18','CHRONO','Chronopost','Chronopost','http://www.chronopost.fr/expedier/inputLTNumbersNoJahia.do?listeNumeros={TRACKID}',0,NULL);
    +/*!40000 ALTER TABLE `llx_c_shipment_mode` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_stcomm`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_stcomm`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_stcomm` (
    +  `id` int(11) NOT NULL,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `picto` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_stcomm` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_stcomm`
    +--
    +
    +LOCK TABLES `llx_c_stcomm` WRITE;
    +/*!40000 ALTER TABLE `llx_c_stcomm` DISABLE KEYS */;
    +INSERT INTO `llx_c_stcomm` VALUES (-1,'ST_NO','Do not contact',1,NULL),(0,'ST_NEVER','Never contacted',1,NULL),(1,'ST_TODO','To contact',1,NULL),(2,'ST_PEND','Contact in progress',1,NULL),(3,'ST_DONE','Contacted',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_stcomm` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ticket_category`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ticket_category`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ticket_category` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `code` varchar(32) NOT NULL,
    +  `pos` varchar(32) NOT NULL,
    +  `label` varchar(128) NOT NULL,
    +  `active` int(11) DEFAULT '1',
    +  `use_default` int(11) DEFAULT '1',
    +  `description` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_code` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ticket_category`
    +--
    +
    +LOCK TABLES `llx_c_ticket_category` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ticket_category` DISABLE KEYS */;
    +INSERT INTO `llx_c_ticket_category` VALUES (1,1,'OTHER','10','Other',1,1,NULL);
    +/*!40000 ALTER TABLE `llx_c_ticket_category` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ticket_severity`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ticket_severity`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ticket_severity` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `code` varchar(32) NOT NULL,
    +  `pos` varchar(32) NOT NULL,
    +  `label` varchar(128) NOT NULL,
    +  `color` varchar(10) NOT NULL,
    +  `active` int(11) DEFAULT '1',
    +  `use_default` int(11) DEFAULT '1',
    +  `description` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_code` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ticket_severity`
    +--
    +
    +LOCK TABLES `llx_c_ticket_severity` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ticket_severity` DISABLE KEYS */;
    +INSERT INTO `llx_c_ticket_severity` VALUES (1,1,'LOW','10','Low','',1,0,NULL),(2,1,'NORMAL','20','Normal','',1,1,NULL),(3,1,'HIGH','30','High','',1,0,NULL),(4,1,'BLOCKING','40','Critical / blocking','',1,0,NULL);
    +/*!40000 ALTER TABLE `llx_c_ticket_severity` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ticket_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ticket_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ticket_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `code` varchar(32) NOT NULL,
    +  `pos` varchar(32) NOT NULL,
    +  `label` varchar(128) NOT NULL,
    +  `active` int(11) DEFAULT '1',
    +  `use_default` int(11) DEFAULT '1',
    +  `description` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_code` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ticket_type`
    +--
    +
    +LOCK TABLES `llx_c_ticket_type` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ticket_type` DISABLE KEYS */;
    +INSERT INTO `llx_c_ticket_type` VALUES (1,1,'COM','10','Commercial question',1,1,NULL),(2,1,'ISSUE','20','Issue or problem',1,0,NULL),(3,1,'REQUEST','25','Change or enhancement request',1,0,NULL),(4,1,'PROJECT','30','Project',0,0,NULL),(5,1,'OTHER','40','Other',1,0,NULL);
    +/*!40000 ALTER TABLE `llx_c_ticket_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ticketsup_category`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ticketsup_category`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ticketsup_category` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `code` varchar(32) NOT NULL,
    +  `pos` varchar(32) NOT NULL,
    +  `label` varchar(128) NOT NULL,
    +  `active` int(11) DEFAULT '1',
    +  `use_default` int(11) DEFAULT '1',
    +  `description` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_code` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ticketsup_category`
    +--
    +
    +LOCK TABLES `llx_c_ticketsup_category` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ticketsup_category` DISABLE KEYS */;
    +INSERT INTO `llx_c_ticketsup_category` VALUES (1,1,'OTHER','10','Other',1,1,NULL);
    +/*!40000 ALTER TABLE `llx_c_ticketsup_category` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ticketsup_severity`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ticketsup_severity`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ticketsup_severity` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `code` varchar(32) NOT NULL,
    +  `pos` varchar(32) NOT NULL,
    +  `label` varchar(128) NOT NULL,
    +  `color` varchar(10) NOT NULL,
    +  `active` int(11) DEFAULT '1',
    +  `use_default` int(11) DEFAULT '1',
    +  `description` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_code` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ticketsup_severity`
    +--
    +
    +LOCK TABLES `llx_c_ticketsup_severity` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ticketsup_severity` DISABLE KEYS */;
    +INSERT INTO `llx_c_ticketsup_severity` VALUES (1,1,'LOW','10','Low','',1,0,NULL),(2,1,'NORMAL','20','Normal','',1,1,NULL),(3,1,'HIGH','30','High','',1,0,NULL),(4,1,'BLOCKING','40','Critical / blocking','',1,0,NULL);
    +/*!40000 ALTER TABLE `llx_c_ticketsup_severity` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ticketsup_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ticketsup_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ticketsup_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `code` varchar(32) NOT NULL,
    +  `pos` varchar(32) NOT NULL,
    +  `label` varchar(128) NOT NULL,
    +  `active` int(11) DEFAULT '1',
    +  `use_default` int(11) DEFAULT '1',
    +  `description` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_code` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ticketsup_type`
    +--
    +
    +LOCK TABLES `llx_c_ticketsup_type` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ticketsup_type` DISABLE KEYS */;
    +INSERT INTO `llx_c_ticketsup_type` VALUES (1,1,'COM','10','Commercial question',1,1,NULL),(2,1,'ISSUE','20','Issue or problem',1,0,NULL),(3,1,'REQUEST','25','Change or enhancement request',1,0,NULL),(4,1,'PROJECT','30','Project',1,0,NULL),(5,1,'OTHER','40','Other',1,0,NULL);
    +/*!40000 ALTER TABLE `llx_c_ticketsup_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_tva`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_tva`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_tva` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_pays` int(11) NOT NULL,
    +  `code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `taux` double NOT NULL,
    +  `localtax1` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `recuperableonly` int(11) NOT NULL DEFAULT '0',
    +  `note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_tva_id` (`fk_pays`,`code`,`taux`,`recuperableonly`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2477 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_tva`
    +--
    +
    +LOCK TABLES `llx_c_tva` WRITE;
    +/*!40000 ALTER TABLE `llx_c_tva` DISABLE KEYS */;
    +INSERT INTO `llx_c_tva` VALUES (11,1,'',20,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL),(12,1,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(13,1,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(14,1,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',1,NULL,NULL),(15,1,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(16,1,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(17,1,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(21,2,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(22,2,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(23,2,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(24,2,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(31,3,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(32,3,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(33,3,'',4,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(34,3,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(41,4,'',21,'5.2','3','-19:-15:-9','5',0,'VAT standard rate',1,NULL,NULL),(42,4,'',10,'1.4','3','-19:-15:-9','5',0,'VAT reduced rate',1,NULL,NULL),(43,4,'',4,'0.5','3','-19:-15:-9','5',0,'VAT super-reduced rate',1,NULL,NULL),(44,4,'',0,'0','3','-19:-15:-9','5',0,'VAT Rate 0',1,NULL,NULL),(51,5,'',19,NULL,'0',NULL,'0',0,'allgemeine Ust.',1,NULL,NULL),(52,5,'',7,NULL,'0',NULL,'0',0,'ermäßigte USt.',1,NULL,NULL),(53,5,'',0,NULL,'0',NULL,'0',0,'keine USt.',1,NULL,NULL),(54,5,'',5.5,NULL,'0',NULL,'0',0,'USt. Forst',0,NULL,NULL),(55,5,'',10.7,NULL,'0',NULL,'0',0,'USt. Landwirtschaft',0,NULL,NULL),(61,6,'',8,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(62,6,'',3.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(63,6,'',2.5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(64,6,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(71,7,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(72,7,'',17.5,NULL,'0',NULL,'0',0,'VAT standard rate before 2011',1,NULL,NULL),(73,7,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(74,7,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(81,8,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(82,8,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(83,8,'',13.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(84,8,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(85,8,'',4.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(91,9,'',17,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(92,9,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate 0',1,NULL,NULL),(93,9,'',3,NULL,'0',NULL,'0',0,'VAT super reduced rate 0',1,NULL,NULL),(94,9,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(101,10,'',6,'1','4','0','0',0,'VAT 6%',1,NULL,NULL),(102,10,'',12,'1','4','0','0',0,'VAT 12%',1,NULL,NULL),(103,10,'',18,'1','4','0','0',0,'VAT 18%',1,NULL,NULL),(104,10,'',7.5,'1','4','0','0',0,'VAT 6% Majoré à 25% (7.5%)',1,NULL,NULL),(105,10,'',15,'1','4','0','0',0,'VAT 12% Majoré à 25% (15%)',1,NULL,NULL),(106,10,'',22.5,'1','4','0','0',0,'VAT 18% Majoré à 25% (22.5%)',1,NULL,NULL),(107,10,'',0,'1','4','0','0',0,'VAT Rate 0',1,NULL,NULL),(111,11,'',0,NULL,'0',NULL,'0',0,'No Sales Tax',1,NULL,NULL),(112,11,'',4,NULL,'0',NULL,'0',0,'Sales Tax 4%',1,NULL,NULL),(113,11,'',6,NULL,'0',NULL,'0',0,'Sales Tax 6%',1,NULL,NULL),(121,12,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(122,12,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(123,12,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(124,12,'',7,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(125,12,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(141,14,'',7,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(142,14,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(143,14,'',5,'9.975','1',NULL,'0',0,'GST/TPS and PST/TVQ rate for Province',1,NULL,NULL),(171,17,'',19,NULL,'0',NULL,'0',0,'Algemeen BTW tarief',1,NULL,NULL),(172,17,'',6,NULL,'0',NULL,'0',0,'Verlaagd BTW tarief',1,NULL,NULL),(173,17,'',0,NULL,'0',NULL,'0',0,'0 BTW tarief',1,NULL,NULL),(174,17,'',21,NULL,'0',NULL,'0',0,'Algemeen BTW tarief (vanaf 1 oktober 2012)',0,NULL,NULL),(201,20,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(202,20,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(203,20,'',6,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(204,20,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(211,21,'',0,'0','0','0','0',0,'IVA Rate 0',1,NULL,NULL),(212,21,'',18,'7.5','2','0','0',0,'IVA standard rate',1,NULL,NULL),(221,22,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(222,22,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(223,22,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(231,23,'',21,NULL,'0',NULL,'0',0,'IVA standard rate',1,NULL,NULL),(232,23,'',10.5,NULL,'0',NULL,'0',0,'IVA reduced rate',1,NULL,NULL),(233,23,'',0,NULL,'0',NULL,'0',0,'IVA Rate 0',1,NULL,NULL),(241,24,'',19.25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(242,24,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(251,25,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(252,25,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(253,25,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(254,25,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(261,26,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(271,27,'',19.6,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL),(272,27,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(273,27,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(274,27,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',0,NULL,NULL),(275,27,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(276,27,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(277,27,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(281,28,'',10,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(282,28,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(411,41,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(412,41,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(413,41,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(461,46,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(462,46,'',15,NULL,'0',NULL,'0',0,'VAT 15%',1,NULL,NULL),(463,46,'',7.5,NULL,'0',NULL,'0',0,'VAT 7.5%',1,NULL,NULL),(561,56,'',0,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(591,59,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(592,59,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(593,59,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(671,67,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(672,67,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(801,80,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(802,80,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(861,86,'',13,NULL,'0',NULL,'0',0,'IVA 13',1,NULL,NULL),(862,86,'',0,NULL,'0',NULL,'0',0,'SIN IVA',1,NULL,NULL),(1141,114,'',0,NULL,'0',NULL,'0',0,'No ISV',1,NULL,NULL),(1142,114,'',12,NULL,'0',NULL,'0',0,'ISV 12%',1,NULL,NULL),(1161,116,'',25.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1162,116,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1163,116,'',0,NULL,'0',NULL,'0',0,'VAT rate 0',1,NULL,NULL),(1171,117,'',12.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1172,117,'',4,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1173,117,'',1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1174,117,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1176,117,'CGST+SGST',0,'9','1','9','1',0,'CGST+SGST - Same state sales',1,NULL,NULL),(1177,117,'IGST',18,'0','0','0','0',0,'IGST',1,NULL,NULL),(1231,123,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1232,123,'',5,NULL,'0',NULL,'0',0,'VAT Rate 5',1,NULL,NULL),(1401,140,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1402,140,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1403,140,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1404,140,'',3,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1405,140,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1481,148,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1482,148,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1483,148,'',5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1484,148,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1511,151,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1512,151,'',14,NULL,'0',NULL,'0',0,'VAT Rate 14',1,NULL,NULL),(1521,152,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1522,152,'',15,NULL,'0',NULL,'0',0,'VAT Rate 15',1,NULL,NULL),(1541,154,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(1542,154,'',16,NULL,'0',NULL,'0',0,'VAT 16%',1,NULL,NULL),(1543,154,'',10,NULL,'0',NULL,'0',0,'VAT Frontero',1,NULL,NULL),(1662,166,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1663,166,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1692,169,'',5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1693,169,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1731,173,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1732,173,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1733,173,'',8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1734,173,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1781,178,'',7,NULL,'0',NULL,'0',0,'ITBMS standard rate',1,NULL,NULL),(1782,178,'',0,NULL,'0',NULL,'0',0,'ITBMS Rate 0',1,NULL,NULL),(1811,181,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1812,181,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1841,184,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1842,184,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1843,184,'',3,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1844,184,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1881,188,'',24,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1882,188,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1883,188,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1884,188,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1931,193,'',0,NULL,'0',NULL,'0',0,'No VAT in SPM',1,NULL,NULL),(2011,201,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(2012,201,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(2013,201,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2021,202,'',22,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(2022,202,'',9.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(2023,202,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2051,205,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(2052,205,'',14,NULL,'0',NULL,'0',0,'VAT 14%',1,NULL,NULL),(2131,213,'',5,NULL,'0',NULL,'0',0,'VAT 5%',1,NULL,NULL),(2261,226,'',20,NULL,'0',NULL,'0',0,'VAT standart rate',1,NULL,NULL),(2262,226,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2321,232,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(2322,232,'',12,NULL,'0',NULL,'0',0,'VAT 12%',1,NULL,NULL),(2323,232,'',8,NULL,'0',NULL,'0',0,'VAT 8%',1,NULL,NULL),(2461,246,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2462,102,'',23,'0','0','0','0',0,'Κανονικός Φ.Π.Α.',1,NULL,NULL),(2463,102,'',0,'0','0','0','0',0,'Μηδενικό Φ.Π.Α.',1,NULL,NULL),(2464,102,'',13,'0','0','0','0',0,'Μειωμένος Φ.Π.Α.',1,NULL,NULL),(2465,102,'',6.5,'0','0','0','0',0,'Υπερμειωμένος Φ.Π.Α.',1,NULL,NULL),(2466,102,'',16,'0','0','0','0',0,'Νήσων κανονικός Φ.Π.Α.',1,NULL,NULL),(2467,102,'',9,'0','0','0','0',0,'Νήσων μειωμένος Φ.Π.Α.',1,NULL,NULL),(2468,102,'',5,'0','0','0','0',0,'Νήσων υπερμειωμένος Φ.Π.Α.',1,NULL,NULL),(2469,1,'85',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(2470,1,'85NPR',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(2471,1,'85NPROM',8.5,'2','3',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer',0,NULL,NULL),(2472,1,'85NPROMOMR',8.5,'2','3','2.5','3',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer et Octroi de Mer Regional',0,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_c_tva` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_type_contact`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_type_contact`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_type_contact` (
    +  `rowid` int(11) NOT NULL,
    +  `element` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `source` varchar(8) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'external',
    +  `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_type_contact_id` (`element`,`source`,`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_type_contact`
    +--
    +
    +LOCK TABLES `llx_c_type_contact` WRITE;
    +/*!40000 ALTER TABLE `llx_c_type_contact` DISABLE KEYS */;
    +INSERT INTO `llx_c_type_contact` VALUES (10,'contrat','internal','SALESREPSIGN','Commercial signataire du contrat',1,NULL,0),(11,'contrat','internal','SALESREPFOLL','Commercial suivi du contrat',1,NULL,0),(20,'contrat','external','BILLING','Contact client facturation contrat',1,NULL,0),(21,'contrat','external','CUSTOMER','Contact client suivi contrat',1,NULL,0),(22,'contrat','external','SALESREPSIGN','Contact client signataire contrat',1,NULL,0),(31,'propal','internal','SALESREPFOLL','Commercial à l\'origine de la propale',1,NULL,0),(40,'propal','external','BILLING','Contact client facturation propale',1,NULL,0),(41,'propal','external','CUSTOMER','Contact client suivi propale',1,NULL,0),(42,'propal','external','SHIPPING','Customer contact for delivery',1,NULL,0),(50,'facture','internal','SALESREPFOLL','Responsable suivi du paiement',1,NULL,0),(60,'facture','external','BILLING','Contact client facturation',1,NULL,0),(61,'facture','external','SHIPPING','Contact client livraison',1,NULL,0),(62,'facture','external','SERVICE','Contact client prestation',1,NULL,0),(70,'invoice_supplier','internal','SALESREPFOLL','Responsable suivi du paiement',1,NULL,0),(71,'invoice_supplier','external','BILLING','Contact fournisseur facturation',1,NULL,0),(72,'invoice_supplier','external','SHIPPING','Contact fournisseur livraison',1,NULL,0),(73,'invoice_supplier','external','SERVICE','Contact fournisseur prestation',1,NULL,0),(80,'agenda','internal','ACTOR','Responsable',1,NULL,0),(81,'agenda','internal','GUEST','Guest',1,NULL,0),(85,'agenda','external','ACTOR','Responsable',1,NULL,0),(86,'agenda','external','GUEST','Guest',1,NULL,0),(91,'commande','internal','SALESREPFOLL','Responsable suivi de la commande',1,NULL,0),(100,'commande','external','BILLING','Contact client facturation commande',1,NULL,0),(101,'commande','external','CUSTOMER','Contact client suivi commande',1,NULL,0),(102,'commande','external','SHIPPING','Contact client livraison commande',1,NULL,0),(120,'fichinter','internal','INTERREPFOLL','Responsable suivi de l\'intervention',1,NULL,0),(121,'fichinter','internal','INTERVENING','Intervenant',1,NULL,0),(130,'fichinter','external','BILLING','Contact client facturation intervention',1,NULL,0),(131,'fichinter','external','CUSTOMER','Contact client suivi de l\'intervention',1,NULL,0),(140,'order_supplier','internal','SALESREPFOLL','Responsable suivi de la commande',1,NULL,0),(141,'order_supplier','internal','SHIPPING','Responsable réception de la commande',1,NULL,0),(142,'order_supplier','external','BILLING','Contact fournisseur facturation commande',1,NULL,0),(143,'order_supplier','external','CUSTOMER','Contact fournisseur suivi commande',1,NULL,0),(145,'order_supplier','external','SHIPPING','Contact fournisseur livraison commande',1,NULL,0),(150,'dolresource','internal','USERINCHARGE','In charge of resource',1,NULL,0),(151,'dolresource','external','THIRDINCHARGE','In charge of resource',1,NULL,0),(155,'ticket','internal','SUPPORTTEC','Utilisateur contact support',1,NULL,0),(156,'ticket','internal','CONTRIBUTOR','Intervenant',1,NULL,0),(157,'ticket','external','SUPPORTCLI','Contact client suivi incident',1,NULL,0),(158,'ticket','external','CONTRIBUTOR','Intervenant',1,NULL,0),(160,'project','internal','PROJECTLEADER','Chef de Projet',1,NULL,0),(161,'project','internal','PROJECTCONTRIBUTOR','Intervenant',1,NULL,0),(170,'project','external','PROJECTLEADER','Chef de Projet',1,NULL,0),(171,'project','external','PROJECTCONTRIBUTOR','Intervenant',1,NULL,0),(180,'project_task','internal','TASKEXECUTIVE','Responsable',1,NULL,0),(181,'project_task','internal','TASKCONTRIBUTOR','Intervenant',1,NULL,0),(190,'project_task','external','TASKEXECUTIVE','Responsable',1,NULL,0),(191,'project_task','external','TASKCONTRIBUTOR','Intervenant',1,NULL,0),(200,'societe','external','GENERALREF','Généraliste (référent)',0,'cabinetmed',0),(201,'societe','external','GENERALISTE','Généraliste',0,'cabinetmed',0),(210,'societe','external','SPECCHIROR','Chirurgien ortho',0,'cabinetmed',0),(211,'societe','external','SPECCHIROT','Chirurgien autre',0,'cabinetmed',0),(220,'societe','external','SPECDERMA','Dermatologue',0,'cabinetmed',0),(225,'societe','external','SPECENDOC','Endocrinologue',0,'cabinetmed',0),(230,'societe','external','SPECGYNECO','Gynécologue',0,'cabinetmed',0),(240,'societe','external','SPECGASTRO','Gastroantérologue',0,'cabinetmed',0),(245,'societe','external','SPECINTERNE','Interniste',0,'cabinetmed',0),(250,'societe','external','SPECCARDIO','Cardiologue',0,'cabinetmed',0),(260,'societe','external','SPECNEPHRO','Néphrologue',0,'cabinetmed',0),(263,'societe','external','SPECPNEUMO','Pneumologue',0,'cabinetmed',0),(265,'societe','external','SPECNEURO','Neurologue',0,'cabinetmed',0),(270,'societe','external','SPECRHUMATO','Rhumatologue',0,'cabinetmed',0),(280,'societe','external','KINE','Kinésithérapeute',0,'cabinetmed',0);
    +/*!40000 ALTER TABLE `llx_c_type_contact` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_type_container`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_type_container`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_type_container` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(32) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(64) NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_type_container_id` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_type_container`
    +--
    +
    +LOCK TABLES `llx_c_type_container` WRITE;
    +/*!40000 ALTER TABLE `llx_c_type_container` DISABLE KEYS */;
    +INSERT INTO `llx_c_type_container` VALUES (2,'page',1,'Page',1,'system'),(3,'banner',1,'Banner',1,'system'),(4,'blogpost',1,'BlogPost',1,'system'),(5,'other',1,'Other',1,'system');
    +/*!40000 ALTER TABLE `llx_c_type_container` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_type_fees`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_type_fees`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_type_fees` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  `type` int(11) DEFAULT '0',
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_type_fees` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_type_fees`
    +--
    +
    +LOCK TABLES `llx_c_type_fees` WRITE;
    +/*!40000 ALTER TABLE `llx_c_type_fees` DISABLE KEYS */;
    +INSERT INTO `llx_c_type_fees` VALUES (1,'TF_OTHER','Other','705',1,NULL,0,0),(2,'TF_TRIP','Trip',NULL,1,NULL,0,0),(3,'TF_LUNCH','Lunch',NULL,1,NULL,0,0),(4,'EX_KME','ExpLabelKm','625100',1,NULL,0,0),(5,'EX_FUE','ExpLabelFuelCV','606150',0,NULL,0,0),(6,'EX_HOT','ExpLabelHotel','625160',0,NULL,0,0),(7,'EX_PAR','ExpLabelParkingCV','625160',0,NULL,0,0),(8,'EX_TOL','ExpLabelTollCV','625160',0,NULL,0,0),(9,'EX_TAX','ExpLabelVariousTaxes','637800',0,NULL,0,0),(10,'EX_IND','ExpLabelIndemnityTranspSub','648100',0,NULL,0,0),(11,'EX_SUM','ExpLabelMaintenanceSupply','606300',0,NULL,0,0),(12,'EX_SUO','ExpLabelOfficeSupplies','606400',0,NULL,0,0),(13,'EX_CAR','ExpLabelCarRental','613000',0,NULL,0,0),(14,'EX_DOC','ExpLabelDocumentation','618100',0,NULL,0,0),(15,'EX_CUR','ExpLabelCustomersReceiving','625710',0,NULL,0,0),(16,'EX_OTR','ExpLabelOtherReceiving','625700',0,NULL,0,0),(17,'EX_POS','ExpLabelPostage','626100',0,NULL,0,0),(18,'EX_CAM','ExpLabelMaintenanceRepairCV','615300',0,NULL,0,0),(19,'EX_EMM','ExpLabelEmployeesMeal','625160',0,NULL,0,0),(20,'EX_GUM','ExpLabelGuestsMeal','625160',0,NULL,0,0),(21,'EX_BRE','ExpLabelBreakfast','625160',0,NULL,0,0),(22,'EX_FUE_VP','ExpLabelFuelPV','606150',0,NULL,0,0),(23,'EX_TOL_VP','ExpLabelTollPV','625160',0,NULL,0,0),(24,'EX_PAR_VP','ExpLabelParkingPV','625160',0,NULL,0,0),(25,'EX_CAM_VP','ExpLabelMaintenanceRepairPV','615300',0,NULL,0,0);
    +/*!40000 ALTER TABLE `llx_c_type_fees` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_type_resource`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_type_resource`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_type_resource` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_type_resource_id` (`label`,`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_type_resource`
    +--
    +
    +LOCK TABLES `llx_c_type_resource` WRITE;
    +/*!40000 ALTER TABLE `llx_c_type_resource` DISABLE KEYS */;
    +INSERT INTO `llx_c_type_resource` VALUES (1,'RES_ROOMS','Rooms',1),(2,'RES_CARS','Cars',1);
    +/*!40000 ALTER TABLE `llx_c_type_resource` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_typent`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_typent`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_typent` (
    +  `id` int(11) NOT NULL,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_country` int(11) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_typent` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_typent`
    +--
    +
    +LOCK TABLES `llx_c_typent` WRITE;
    +/*!40000 ALTER TABLE `llx_c_typent` DISABLE KEYS */;
    +INSERT INTO `llx_c_typent` VALUES (0,'TE_UNKNOWN','-',NULL,1,NULL,0),(1,'TE_STARTUP','Start-up',NULL,1,NULL,0),(2,'TE_GROUP','Grand groupe',NULL,1,NULL,0),(3,'TE_MEDIUM','PME/PMI',NULL,1,NULL,0),(4,'TE_SMALL','TPE',NULL,1,NULL,0),(5,'TE_ADMIN','Administration',NULL,1,NULL,0),(6,'TE_WHOLE','Grossiste',NULL,1,NULL,0),(7,'TE_RETAIL','Revendeur',NULL,1,NULL,0),(8,'TE_PRIVATE','Particulier',NULL,1,NULL,0),(100,'TE_OTHER','Autres',NULL,1,NULL,0),(101,'TE_HOMME','Homme',NULL,0,'cabinetmed',0),(102,'TE_FEMME','Femme',NULL,0,'cabinetmed',0),(231,'TE_A_RI','Responsable Inscripto',23,1,NULL,0),(232,'TE_B_RNI','Responsable No Inscripto',23,1,NULL,0),(233,'TE_C_FE','Consumidor Final/Exento',23,1,NULL,0);
    +/*!40000 ALTER TABLE `llx_c_typent` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_units`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_units`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_units` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `short_label` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_units_code` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_units`
    +--
    +
    +LOCK TABLES `llx_c_units` WRITE;
    +/*!40000 ALTER TABLE `llx_c_units` DISABLE KEYS */;
    +INSERT INTO `llx_c_units` VALUES (1,'P','piece','p',1),(2,'SET','set','se',1),(3,'S','second','s',1),(4,'H','hour','h',1),(5,'D','day','d',1),(6,'KG','kilogram','kg',1),(7,'G','gram','g',1),(8,'M','meter','m',1),(9,'LM','linear meter','lm',1),(10,'M2','square meter','m2',1),(11,'M3','cubic meter','m3',1),(12,'L','liter','l',1);
    +/*!40000 ALTER TABLE `llx_c_units` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ziptown`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ziptown`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ziptown` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_county` int(11) DEFAULT NULL,
    +  `fk_pays` int(11) NOT NULL DEFAULT '0',
    +  `zip` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
    +  `town` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_ziptown_fk_pays` (`zip`,`town`,`fk_pays`),
    +  KEY `idx_c_ziptown_fk_county` (`fk_county`),
    +  KEY `idx_c_ziptown_fk_pays` (`fk_pays`),
    +  KEY `idx_c_ziptown_zip` (`zip`),
    +  CONSTRAINT `fk_c_ziptown_fk_county` FOREIGN KEY (`fk_county`) REFERENCES `llx_c_departements` (`rowid`),
    +  CONSTRAINT `fk_c_ziptown_fk_pays` FOREIGN KEY (`fk_pays`) REFERENCES `llx_c_country` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ziptown`
    +--
    +
    +LOCK TABLES `llx_c_ziptown` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ziptown` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_c_ziptown` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_parent` int(11) NOT NULL DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `type` tinyint(4) NOT NULL DEFAULT '1',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `visible` tinyint(4) NOT NULL DEFAULT '1',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `color` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_categorie_ref` (`entity`,`fk_parent`,`label`,`type`),
    +  KEY `idx_categorie_type` (`type`),
    +  KEY `idx_categorie_label` (`label`)
    +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie`
    +--
    +
    +LOCK TABLES `llx_categorie` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie` DISABLE KEYS */;
    +INSERT INTO `llx_categorie` VALUES (1,0,'Preferred Partners',1,1,'This category is used to tag suppliers that are Prefered Partners',NULL,0,NULL,'005fbf'),(2,0,'MyCategory',1,1,'This is description of MyCategory for customer and prospects<br />',NULL,0,NULL,NULL),(3,7,'Hot products',1,1,'This is description of hot products<br />',NULL,0,NULL,NULL),(4,0,'Merchant',1,1,'Category dedicated to merchant third parties',NULL,0,NULL,'bf5f00'),(5,7,'Bio Fairtrade',0,1,'',NULL,0,NULL,NULL),(6,7,'Bio AB',0,1,'',NULL,0,NULL,NULL),(7,9,'Bio',0,1,'This product is a BIO product',NULL,0,NULL,NULL),(8,7,'Bio Dynamic',0,1,'',NULL,0,NULL,NULL),(9,0,'High Quality Product',0,1,'Label dedicated for High quality products',NULL,0,NULL,'7f7f00'),(10,0,'Reserved for VIP',0,1,'Product of thi category are reserved to VIP customers',NULL,0,NULL,'7f0000'),(11,9,'ISO',0,1,'Product of this category has an ISO label',NULL,0,NULL,NULL),(12,0,'VIP',2,1,'',NULL,0,NULL,'bf5f00'),(13,0,'Region North',2,1,'Customer of North Region',NULL,0,NULL,'7f007f'),(14,0,'Regular customer',2,1,'',NULL,0,NULL,'5fbf00'),(15,13,'Region North A',2,1,'',NULL,0,NULL,'bf00bf'),(17,0,'MyTag1',4,1,'',NULL,0,NULL,NULL),(18,0,'Met during meeting',4,1,'',NULL,0,NULL,'ff7f00'),(19,17,'MySubTag1',4,1,'',NULL,0,NULL,NULL),(20,13,'Region North B',2,1,'',NULL,0,NULL,'bf005f'),(21,0,'Region South',2,1,'',NULL,0,NULL,NULL),(22,21,'Region South A',2,1,'',NULL,0,NULL,NULL),(23,21,'Region South B',2,1,'',NULL,0,NULL,NULL),(24,0,'Limited Edition',0,1,'This is a limited edition',NULL,0,NULL,'ff7f00'),(25,0,'Imported products',0,1,'For product we have to import from another country',NULL,0,NULL,NULL),(26,28,'Friends',4,1,'Category of friends contact',NULL,0,NULL,'00bf00'),(27,28,'Family',4,1,'Category of family contacts',NULL,0,NULL,'007f3f'),(28,0,'Personal contacts',4,1,'For personal contacts',NULL,0,NULL,'007f3f'),(29,0,'Online only merchant',1,1,'',NULL,0,NULL,'aaaaff'),(30,0,'ppp',6,1,'ppp',NULL,0,NULL,'ff5656');
    +/*!40000 ALTER TABLE `llx_categorie` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_account`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_account`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_account` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_account` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_account`),
    +  KEY `idx_categorie_account_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_account_fk_account` (`fk_account`),
    +  CONSTRAINT `fk_categorie_account_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_account_fk_account` FOREIGN KEY (`fk_account`) REFERENCES `llx_bank_account` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_account`
    +--
    +
    +LOCK TABLES `llx_categorie_account` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_account` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categorie_account` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_association`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_association`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_association` (
    +  `fk_categorie_mere` int(11) NOT NULL,
    +  `fk_categorie_fille` int(11) NOT NULL,
    +  UNIQUE KEY `uk_categorie_association` (`fk_categorie_mere`,`fk_categorie_fille`),
    +  UNIQUE KEY `uk_categorie_association_fk_categorie_fille` (`fk_categorie_fille`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_association`
    +--
    +
    +LOCK TABLES `llx_categorie_association` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_association` DISABLE KEYS */;
    +INSERT INTO `llx_categorie_association` VALUES (3,5),(9,11);
    +/*!40000 ALTER TABLE `llx_categorie_association` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_contact`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_contact`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_contact` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_socpeople` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_socpeople`),
    +  KEY `idx_categorie_contact_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_contact_fk_socpeople` (`fk_socpeople`),
    +  CONSTRAINT `fk_categorie_contact_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_contact_fk_socpeople` FOREIGN KEY (`fk_socpeople`) REFERENCES `llx_socpeople` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_contact`
    +--
    +
    +LOCK TABLES `llx_categorie_contact` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_contact` DISABLE KEYS */;
    +INSERT INTO `llx_categorie_contact` VALUES (18,3,NULL),(18,6,NULL),(19,6,NULL),(26,9,NULL),(27,7,NULL),(27,8,NULL),(27,10,NULL),(28,11,NULL);
    +/*!40000 ALTER TABLE `llx_categorie_contact` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_fournisseur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_fournisseur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_fournisseur` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_soc`),
    +  KEY `idx_categorie_fournisseur_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_fournisseur_fk_societe` (`fk_soc`),
    +  CONSTRAINT `fk_categorie_fournisseur_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_fournisseur_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_fournisseur`
    +--
    +
    +LOCK TABLES `llx_categorie_fournisseur` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_fournisseur` DISABLE KEYS */;
    +INSERT INTO `llx_categorie_fournisseur` VALUES (1,2,NULL),(1,10,NULL);
    +/*!40000 ALTER TABLE `llx_categorie_fournisseur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_lang`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_lang`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_lang` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_category` int(11) NOT NULL DEFAULT '0',
    +  `lang` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_category_lang` (`fk_category`,`lang`),
    +  CONSTRAINT `fk_category_lang_fk_category` FOREIGN KEY (`fk_category`) REFERENCES `llx_categorie` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_lang`
    +--
    +
    +LOCK TABLES `llx_categorie_lang` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_lang` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categorie_lang` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_member`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_member`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_member` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_member` int(11) NOT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_member`),
    +  KEY `idx_categorie_member_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_member_fk_member` (`fk_member`),
    +  CONSTRAINT `fk_categorie_member_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_member_member_rowid` FOREIGN KEY (`fk_member`) REFERENCES `llx_adherent` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_member`
    +--
    +
    +LOCK TABLES `llx_categorie_member` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_member` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categorie_member` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_product`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_product`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_product` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_product` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_product`),
    +  KEY `idx_categorie_product_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_product_fk_product` (`fk_product`),
    +  CONSTRAINT `fk_categorie_product_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_product_product_rowid` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_product`
    +--
    +
    +LOCK TABLES `llx_categorie_product` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_product` DISABLE KEYS */;
    +INSERT INTO `llx_categorie_product` VALUES (5,2,NULL),(6,2,NULL),(8,4,NULL),(9,5,NULL),(9,12,NULL),(10,3,NULL),(10,4,NULL),(24,1,NULL),(24,11,NULL),(25,10,NULL);
    +/*!40000 ALTER TABLE `llx_categorie_product` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_project`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_project`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_project` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_project` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_project`),
    +  KEY `idx_categorie_project_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_project_fk_project` (`fk_project`),
    +  CONSTRAINT `fk_categorie_project_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_project_fk_project` FOREIGN KEY (`fk_project`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_categorie_project_fk_project_rowid` FOREIGN KEY (`fk_project`) REFERENCES `llx_projet` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_project`
    +--
    +
    +LOCK TABLES `llx_categorie_project` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_project` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categorie_project` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_societe`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_societe`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_societe` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_soc`),
    +  KEY `idx_categorie_societe_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_societe_fk_societe` (`fk_soc`),
    +  CONSTRAINT `fk_categorie_societe_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_societe_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_societe`
    +--
    +
    +LOCK TABLES `llx_categorie_societe` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_societe` DISABLE KEYS */;
    +INSERT INTO `llx_categorie_societe` VALUES (12,10,NULL),(12,11,NULL),(14,11,NULL);
    +/*!40000 ALTER TABLE `llx_categorie_societe` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_user`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_user`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_user` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_user`),
    +  KEY `idx_categorie_user_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_user_fk_user` (`fk_user`),
    +  CONSTRAINT `fk_categorie_user_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_user_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_user`
    +--
    +
    +LOCK TABLES `llx_categorie_user` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_user` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categorie_user` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categories_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categories_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categories_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_categories_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categories_extrafields`
    +--
    +
    +LOCK TABLES `llx_categories_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_categories_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categories_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_chargesociales`
    +--
    +
    +DROP TABLE IF EXISTS `llx_chargesociales`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_chargesociales` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `date_ech` datetime NOT NULL,
    +  `libelle` varchar(80) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_type` int(11) NOT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `paye` smallint(6) NOT NULL DEFAULT '0',
    +  `periode` date DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `ref` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_chargesociales`
    +--
    +
    +LOCK TABLES `llx_chargesociales` WRITE;
    +/*!40000 ALTER TABLE `llx_chargesociales` DISABLE KEYS */;
    +INSERT INTO `llx_chargesociales` VALUES (4,'2011-08-09 00:00:00','fff',1,60,NULL,NULL,10.00000000,1,'2011-08-01','2012-12-08 13:11:10',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_chargesociales` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_client` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_cloture` datetime DEFAULT NULL,
    +  `date_commande` date DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_cloture` int(11) DEFAULT NULL,
    +  `source` smallint(6) DEFAULT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  `amount_ht` double(24,8) DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise_absolue` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `facture` tinyint(4) DEFAULT '0',
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_cond_reglement` int(11) DEFAULT NULL,
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `date_livraison` date DEFAULT NULL,
    +  `fk_shipping_method` int(11) DEFAULT NULL,
    +  `fk_warehouse` int(11) DEFAULT NULL,
    +  `fk_availability` int(11) DEFAULT NULL,
    +  `fk_input_reason` int(11) DEFAULT NULL,
    +  `fk_delivery_address` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_commande_ref` (`ref`,`entity`),
    +  KEY `idx_commande_fk_soc` (`fk_soc`),
    +  KEY `idx_commande_fk_user_author` (`fk_user_author`),
    +  KEY `idx_commande_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_commande_fk_user_cloture` (`fk_user_cloture`),
    +  KEY `idx_commande_fk_projet` (`fk_projet`),
    +  KEY `idx_commande_fk_account` (`fk_account`),
    +  KEY `idx_commande_fk_currency` (`fk_currency`),
    +  CONSTRAINT `fk_commande_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_commande_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_commande_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_commande_fk_user_cloture` FOREIGN KEY (`fk_user_cloture`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_commande_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=93 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande`
    +--
    +
    +LOCK TABLES `llx_commande` WRITE;
    +/*!40000 ALTER TABLE `llx_commande` DISABLE KEYS */;
    +INSERT INTO `llx_commande` VALUES (1,'2016-07-30 15:13:20',1,NULL,'CO1107-0002',1,NULL,NULL,'','2011-07-20 15:23:12','2016-08-08 13:59:09',NULL,'2016-07-20',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,1,1,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(2,'2016-07-30 15:13:20',1,NULL,'CO1107-0003',1,NULL,NULL,'','2011-07-20 23:20:12','2018-02-12 17:06:51',NULL,'2016-07-21',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,0,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(3,'2016-07-30 15:13:20',1,NULL,'CO1107-0004',1,NULL,NULL,'','2011-07-20 23:22:53','2018-02-17 18:27:56',NULL,'2016-07-21',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,30.00000000,30.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(5,'2016-07-30 15:12:32',1,NULL,'CO1108-0001',1,NULL,NULL,'','2011-08-08 03:04:11','2015-08-08 03:04:21',NULL,'2015-08-08',1,NULL,1,NULL,NULL,2,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(6,'2016-07-30 15:13:20',19,NULL,'(PROV6)',1,NULL,NULL,'','2013-02-17 16:22:14',NULL,NULL,'2016-02-17',1,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,11.76000000,0.00000000,0.00000000,60.00000000,71.76000000,'','','einstein',0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(17,'2017-02-15 22:50:34',4,NULL,'CO7001-0005',1,NULL,NULL,NULL,'2017-02-15 23:50:34','2017-02-15 23:50:34',NULL,'2016-05-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,509.00000000,509.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,509.00000000,0.00000000,509.00000000,NULL),(18,'2017-02-15 23:08:58',7,4,'CO7001-0006',1,NULL,NULL,NULL,'2017-02-15 23:51:23','2017-02-15 23:51:23',NULL,'2017-02-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,900.00000000,900.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,900.00000000,0.00000000,900.00000000,NULL),(20,'2017-02-15 23:09:04',4,NULL,'CO7001-0007',1,NULL,NULL,NULL,'2017-02-15 23:55:52','2017-02-15 23:55:52',NULL,'2016-04-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,330.00000000,330.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,330.00000000,0.00000000,330.00000000,NULL),(29,'2017-02-15 23:08:42',4,NULL,'CO7001-0008',1,NULL,NULL,NULL,'2017-02-16 00:03:44','2017-02-16 00:03:44',NULL,'2017-02-12',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,457.00000000,457.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,457.00000000,0.00000000,457.00000000,NULL),(34,'2017-02-15 23:08:47',11,NULL,'CO7001-0009',1,NULL,NULL,NULL,'2017-02-16 00:05:01','2017-02-16 00:05:01',NULL,'2017-01-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,124.00000000,124.00000000,'','','',0,NULL,NULL,2,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,124.00000000,0.00000000,124.00000000,NULL),(38,'2017-02-15 23:08:50',3,NULL,'CO7001-0010',1,NULL,NULL,NULL,'2017-02-16 00:05:01','2017-02-16 00:05:01',NULL,'2017-02-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,200.00000000,200.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL),(40,'2017-02-15 23:08:53',11,NULL,'CO7001-0011',1,NULL,NULL,NULL,'2017-02-16 00:05:10','2017-02-16 00:05:11',NULL,'2017-01-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,1210.00000000,1210.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1210.00000000,0.00000000,1210.00000000,NULL),(43,'2017-02-15 23:05:11',10,NULL,'CO7001-0012',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2017-02-16 00:05:11',NULL,'2017-02-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,478.00000000,478.00000000,'','','',0,NULL,NULL,2,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,478.00000000,0.00000000,478.00000000,NULL),(47,'2017-02-15 23:09:10',1,NULL,'CO7001-0013',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2017-02-16 00:05:11',NULL,'2016-11-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,55.00000000,55.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,55.00000000,0.00000000,55.00000000,NULL),(48,'2017-02-15 23:09:07',4,NULL,'CO7001-0014',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2017-02-16 00:05:11',NULL,'2016-07-30',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,540.00000000,540.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,540.00000000,0.00000000,540.00000000,NULL),(50,'2017-02-15 23:05:26',1,NULL,'CO7001-0015',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2017-02-16 00:05:26',NULL,'2017-12-12',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,118.00000000,118.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,118.00000000,0.00000000,118.00000000,NULL),(54,'2017-02-15 23:06:01',12,NULL,'CO7001-0016',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2017-02-16 00:05:26','2017-02-16 03:05:56','2016-06-03',12,NULL,12,12,1,3,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,220.00000000,220.00000000,'','','',1,NULL,NULL,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,220.00000000,0.00000000,220.00000000,NULL),(58,'2017-02-15 23:09:13',1,NULL,'CO7001-0017',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2017-02-16 00:05:26',NULL,'2016-07-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,436.00000000,436.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,436.00000000,0.00000000,436.00000000,NULL),(62,'2017-02-15 23:09:16',19,NULL,'CO7001-0018',1,NULL,NULL,NULL,'2017-02-16 00:05:35','2017-02-16 00:05:35',NULL,'2016-02-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,410.00000000,410.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,410.00000000,0.00000000,410.00000000,NULL),(68,'2017-02-15 23:09:19',3,NULL,'CO7001-0019',1,NULL,NULL,NULL,'2017-02-16 00:05:35','2017-02-16 00:05:35',NULL,'2016-05-19',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,45.00000000,45.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,45.00000000,0.00000000,45.00000000,NULL),(72,'2017-02-15 23:09:23',6,NULL,'CO7001-0020',1,NULL,NULL,NULL,'2017-02-16 00:05:36','2017-02-16 00:05:36',NULL,'2016-11-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,610.00000000,610.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,2,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,610.00000000,0.00000000,610.00000000,NULL),(75,'2017-02-16 00:14:20',4,NULL,'CO7001-0021',1,NULL,NULL,NULL,'2017-02-16 00:05:37','2017-02-16 04:14:20',NULL,'2016-02-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,25.00000000,49.88000000,0.00000000,1200.00000000,1274.88000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1200.00000000,25.00000000,1274.88000000,NULL),(78,'2017-02-15 23:05:37',12,NULL,'CO7001-0022',1,NULL,NULL,NULL,'2017-02-16 00:05:37','2017-02-16 00:05:37',NULL,'2016-10-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,928.00000000,928.00000000,'','','',0,NULL,NULL,2,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,928.00000000,0.00000000,928.00000000,NULL),(81,'2017-02-15 23:09:30',11,NULL,'CO7001-0023',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2017-02-16 00:05:38',NULL,'2016-07-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,725.00000000,725.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,725.00000000,0.00000000,725.00000000,NULL),(83,'2017-02-15 23:10:24',26,NULL,'CO7001-0024',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2017-02-16 00:05:38',NULL,'2016-04-03',12,NULL,12,NULL,1,-1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,105.00000000,105.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,105.00000000,0.00000000,105.00000000,NULL),(84,'2017-02-15 23:05:38',2,NULL,'CO7001-0025',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2017-02-16 00:05:38',NULL,'2016-06-19',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,510.00000000,510.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,510.00000000,0.00000000,510.00000000,NULL),(85,'2017-02-15 23:05:38',1,NULL,'CO7001-0026',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2017-02-16 00:05:38',NULL,'2016-01-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,47.00000000,47.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,47.00000000,0.00000000,47.00000000,NULL),(88,'2017-02-15 23:09:36',10,NULL,'CO7001-0027',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2017-02-16 00:05:38',NULL,'2015-02-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,NULL),(90,'2017-02-16 00:46:31',19,NULL,'(PROV90)',1,NULL,NULL,NULL,'2017-02-16 04:46:31',NULL,NULL,'2017-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,440.00000000,440.00000000,'','','',0,NULL,NULL,3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,440.00000000,0.00000000,440.00000000,NULL),(91,'2017-02-16 00:46:37',1,NULL,'(PROV91)',1,NULL,NULL,NULL,'2017-02-16 04:46:37',NULL,NULL,'2017-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,1000.00000000,1000.00000000,'','','',0,NULL,NULL,3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL),(92,'2017-02-16 00:47:25',3,NULL,'(PROV92)',1,NULL,NULL,NULL,'2017-02-16 04:47:25',NULL,NULL,'2017-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,1018.00000000,1018.00000000,'','','',0,NULL,NULL,3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1018.00000000,0.00000000,1018.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_commande` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commande_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_extrafields`
    +--
    +
    +LOCK TABLES `llx_commande_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_commande_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseur` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_soc` int(11) NOT NULL,
    +  `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_supplier` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT '0',
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_approve` datetime DEFAULT NULL,
    +  `date_approve2` datetime DEFAULT NULL,
    +  `date_commande` date DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_approve` int(11) DEFAULT NULL,
    +  `fk_user_approve2` int(11) DEFAULT NULL,
    +  `source` smallint(6) NOT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  `billed` smallint(6) DEFAULT '0',
    +  `amount_ht` double(24,8) DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_input_method` int(11) DEFAULT '0',
    +  `fk_cond_reglement` int(11) DEFAULT '0',
    +  `fk_mode_reglement` int(11) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_livraison` datetime DEFAULT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_commande_fournisseur_ref` (`ref`,`fk_soc`,`entity`),
    +  KEY `idx_commande_fournisseur_fk_soc` (`fk_soc`),
    +  KEY `billed` (`billed`),
    +  CONSTRAINT `fk_commande_fournisseur_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseur`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseur` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur` DISABLE KEYS */;
    +INSERT INTO `llx_commande_fournisseur` VALUES (1,'2017-02-01 14:54:01',13,'CF1007-0001',1,NULL,NULL,NULL,'2016-07-11 17:13:40','2017-02-01 18:51:42','2017-02-01 18:52:04',NULL,'2017-02-01',1,NULL,12,12,NULL,0,4,0,0.00000000,0,0,39.20000000,0.00000000,0.00000000,200.00000000,239.20000000,NULL,NULL,'muscadet',2,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(2,'2016-07-30 16:11:52',1,'CF1007-0002',1,NULL,NULL,NULL,'2016-07-11 18:46:28','2016-07-11 18:47:33',NULL,NULL,'2016-07-11',1,NULL,1,NULL,NULL,0,3,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,200.00000000,200.00000000,NULL,NULL,'muscadet',4,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(3,'2012-12-08 13:11:07',17,'(PROV3)',1,NULL,NULL,NULL,'2011-08-04 23:00:52',NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,'muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(4,'2012-12-08 13:11:07',17,'(PROV4)',1,NULL,NULL,NULL,'2011-08-04 23:19:32',NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,'muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(13,'2017-02-01 13:35:27',1,'CF1303-0004',1,NULL,NULL,NULL,'2016-03-09 19:39:18','2016-03-09 19:39:27','2016-03-09 19:39:32',NULL,'2016-03-09',1,NULL,1,1,NULL,0,2,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,NULL,NULL,'muscadet',1,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_commande_fournisseur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseur_dispatch`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseur_dispatch`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseur_dispatch` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_commande` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `fk_commandefourndet` int(11) NOT NULL DEFAULT '0',
    +  `qty` float DEFAULT NULL,
    +  `fk_entrepot` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `eatby` date DEFAULT NULL,
    +  `sellby` date DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commande_fournisseur_dispatch_fk_commande` (`fk_commande`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseur_dispatch`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseur_dispatch` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_dispatch` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_dispatch` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseur_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseur_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseur_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commande_fournisseur_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseur_extrafields`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseur_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseur_log`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseur_log`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseur_log` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datelog` datetime NOT NULL,
    +  `fk_commande` int(11) NOT NULL,
    +  `fk_statut` smallint(6) NOT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseur_log`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseur_log` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_log` DISABLE KEYS */;
    +INSERT INTO `llx_commande_fournisseur_log` VALUES (1,'2010-07-11 15:13:40','2010-07-11 17:13:40',1,0,1,NULL),(2,'2010-07-11 15:15:42','2010-07-11 17:15:42',1,1,1,NULL),(3,'2010-07-11 15:16:28','2010-07-11 17:16:28',1,2,1,NULL),(4,'2010-07-11 15:19:14','2010-07-11 00:00:00',1,3,1,NULL),(5,'2010-07-11 15:19:36','2010-07-11 00:00:00',1,5,1,NULL),(6,'2010-07-11 16:46:28','2010-07-11 18:46:28',2,0,1,NULL),(7,'2010-07-11 16:47:33','2010-07-11 18:47:33',2,1,1,NULL),(8,'2010-07-11 16:47:41','2010-07-11 18:47:41',2,2,1,NULL),(9,'2010-07-11 16:48:00','2010-07-11 00:00:00',2,3,1,NULL),(10,'2011-08-04 21:00:52','2011-08-04 23:00:52',3,0,1,NULL),(11,'2011-08-04 21:19:32','2011-08-04 23:19:32',4,0,1,NULL),(12,'2011-08-04 21:22:16','2011-08-04 23:22:16',5,0,1,NULL),(13,'2011-08-04 21:22:54','2011-08-04 23:22:54',6,0,1,NULL),(14,'2011-08-04 21:23:29','2011-08-04 23:23:29',7,0,1,NULL),(15,'2011-08-04 21:36:10','2011-08-04 23:36:10',8,0,1,NULL),(19,'2011-08-08 13:04:37','2011-08-08 15:04:37',6,1,1,NULL),(20,'2011-08-08 13:04:38','2011-08-08 15:04:38',6,2,1,NULL),(29,'2013-03-09 18:39:18','2013-03-09 19:39:18',13,0,1,NULL),(30,'2013-03-09 18:39:27','2013-03-09 19:39:27',13,1,1,NULL),(31,'2013-03-09 18:39:32','2013-03-09 19:39:32',13,2,1,NULL),(32,'2013-03-09 18:39:41','2013-03-09 00:00:00',13,3,1,'hf'),(33,'2013-03-22 09:26:38','2013-03-22 10:26:38',14,0,1,NULL);
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_log` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseurdet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseurdet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseurdet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_commande` int(11) NOT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `tva_tx` double(6,3) DEFAULT '0.000',
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `product_type` int(11) DEFAULT '0',
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `special_code` int(11) DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_commande_fournisseurdet_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_commande_fournisseurdet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseurdet`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseurdet` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseurdet` DISABLE KEYS */;
    +INSERT INTO `llx_commande_fournisseurdet` VALUES (1,1,NULL,NULL,'','','Chips',19.600,'',0.000,'',0.000,'',10,0,0,20.00000000,200.00000000,39.20000000,0.00000000,0.00000000,239.20000000,0,NULL,NULL,0,NULL,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(2,2,NULL,4,'ABCD','Decapsuleur','',0.000,'',0.000,'',0.000,'',20,0,0,10.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(6,13,NULL,NULL,'','','dfgdf',0.000,'',0.000,'0',0.000,'0',1,0,0,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000);
    +/*!40000 ALTER TABLE `llx_commande_fournisseurdet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseurdet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseurdet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseurdet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commande_fournisseurdet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseurdet_extrafields`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseurdet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseurdet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_commande_fournisseurdet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commandedet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commandedet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commandedet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_commande` int(11) DEFAULT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT NULL,
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT NULL,
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `fk_remise_except` int(11) DEFAULT NULL,
    +  `price` double DEFAULT NULL,
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `product_type` int(11) DEFAULT '0',
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `fk_product_fournisseur_price` int(11) DEFAULT NULL,
    +  `buy_price_ht` double(24,8) DEFAULT '0.00000000',
    +  `special_code` int(10) unsigned DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_commandefourndet` int(11) DEFAULT NULL,
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commandedet_fk_commande` (`fk_commande`),
    +  KEY `idx_commandedet_fk_product` (`fk_product`),
    +  KEY `fk_commandedet_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_commandedet_fk_commande` FOREIGN KEY (`fk_commande`) REFERENCES `llx_commande` (`rowid`),
    +  CONSTRAINT `fk_commandedet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=292 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commandedet`
    +--
    +
    +LOCK TABLES `llx_commandedet` WRITE;
    +/*!40000 ALTER TABLE `llx_commandedet` DISABLE KEYS */;
    +INSERT INTO `llx_commandedet` VALUES (1,1,NULL,NULL,NULL,'Product 1',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(2,1,NULL,2,NULL,'',0.000,'',0.000,'',0.000,'',1,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(3,1,NULL,5,NULL,'cccc',0.000,'',0.000,'',0.000,'',1,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(4,2,NULL,NULL,NULL,'hgf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(10,5,NULL,NULL,NULL,'gfdgdf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(11,6,NULL,NULL,NULL,'gdfg',19.600,'',0.000,'',0.000,'',1,0,0,NULL,10,10.00000000,10.00000000,1.96000000,0.00000000,0.00000000,11.96000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(12,6,NULL,NULL,NULL,'gfdgd',19.600,'',0.000,'',0.000,'',1,0,0,NULL,50,50.00000000,50.00000000,9.80000000,0.00000000,0.00000000,59.80000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(14,3,NULL,NULL,NULL,'gdfgdf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(15,3,NULL,NULL,NULL,'fghfgh',0.000,'',0.000,'',0.000,'',1,0,0,NULL,20,20.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(16,17,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(17,17,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(18,17,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,9,9.00000000,9.00000000,0.00000000,0.00000000,0.00000000,9.00000000,1,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',9.00000000,9.00000000,0.00000000,9.00000000),(19,18,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(20,18,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(21,18,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(24,20,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,5,5.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',5.00000000,20.00000000,0.00000000,20.00000000),(25,20,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(26,20,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(55,29,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(56,29,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(57,29,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(58,29,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,9,9.00000000,27.00000000,0.00000000,0.00000000,0.00000000,27.00000000,1,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',9.00000000,27.00000000,0.00000000,27.00000000),(59,29,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,10,10.00000000,30.00000000,0.00000000,0.00000000,0.00000000,30.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0,'EUR',10.00000000,30.00000000,0.00000000,30.00000000),(75,34,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(76,34,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(77,34,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(78,34,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,9,9.00000000,9.00000000,0.00000000,0.00000000,0.00000000,9.00000000,1,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',9.00000000,9.00000000,0.00000000,9.00000000),(94,38,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(95,38,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(99,40,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(100,40,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(101,40,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(102,40,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(103,40,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(112,43,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',9.00000000,18.00000000,0.00000000,18.00000000),(113,43,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(114,43,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(115,43,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(116,43,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(125,47,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(126,47,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(127,47,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(128,47,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,10,10.00000000,40.00000000,0.00000000,0.00000000,0.00000000,40.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',10.00000000,40.00000000,0.00000000,40.00000000),(129,48,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,10,10.00000000,40.00000000,0.00000000,0.00000000,0.00000000,40.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',10.00000000,40.00000000,0.00000000,40.00000000),(130,48,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(134,50,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(135,50,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',9.00000000,18.00000000,0.00000000,18.00000000),(145,54,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(146,54,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,10,10.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',10.00000000,20.00000000,0.00000000,20.00000000),(158,58,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(159,58,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(160,58,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,9,9.00000000,36.00000000,0.00000000,0.00000000,0.00000000,36.00000000,1,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',9.00000000,36.00000000,0.00000000,36.00000000),(174,62,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(175,62,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(176,62,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(198,68,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(199,68,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(209,72,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(210,72,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(211,72,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',10.00000000,10.00000000,0.00000000,10.00000000),(212,72,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(213,72,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(227,75,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(235,78,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(236,78,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',9.00000000,18.00000000,0.00000000,18.00000000),(237,78,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(238,78,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(246,81,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(247,81,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(248,81,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,5,5.00000000,25.00000000,0.00000000,0.00000000,0.00000000,25.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',5.00000000,25.00000000,0.00000000,25.00000000),(253,83,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,5,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',5.00000000,5.00000000,0.00000000,5.00000000),(254,83,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(255,83,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,10,10.00000000,50.00000000,0.00000000,0.00000000,0.00000000,50.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',10.00000000,50.00000000,0.00000000,50.00000000),(256,83,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,10,10.00000000,50.00000000,0.00000000,0.00000000,0.00000000,50.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',10.00000000,50.00000000,0.00000000,50.00000000),(257,84,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(258,84,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(259,84,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(260,85,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,9,9.00000000,27.00000000,0.00000000,0.00000000,0.00000000,27.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',9.00000000,27.00000000,0.00000000,27.00000000),(261,85,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(262,85,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,10,10.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',10.00000000,20.00000000,0.00000000,20.00000000),(271,88,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,10,10.00000000,50.00000000,0.00000000,0.00000000,0.00000000,50.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',10.00000000,50.00000000,0.00000000,50.00000000),(272,88,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(276,75,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,90.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(278,75,NULL,13,NULL,'A powerfull computer XP4523&nbsp;<br />\r\n(Code douane: USXP765 - Pays d&#39;origine: Etats-Unis)',5.000,'',9.975,'1',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,25.00000000,49.88000000,0.00000000,574.88000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,25.00000000,574.88000000),(279,75,NULL,13,NULL,'A powerfull computer XP4523&nbsp;<br>\n(Code douane: USXP765 - Pays d\'origine: Etats-Unis)',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(280,90,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(281,90,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,10,10.00000000,30.00000000,0.00000000,0.00000000,0.00000000,30.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',10.00000000,30.00000000,0.00000000,30.00000000),(282,90,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(283,90,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(284,91,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(285,91,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(286,91,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(287,92,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(288,92,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(289,92,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(290,92,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(291,92,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0,'EUR',9.00000000,18.00000000,0.00000000,18.00000000);
    +/*!40000 ALTER TABLE `llx_commandedet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commandedet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commandedet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commandedet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commandedet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commandedet_extrafields`
    +--
    +
    +LOCK TABLES `llx_commandedet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_commandedet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_commandedet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_comment`
    +--
    +
    +DROP TABLE IF EXISTS `llx_comment`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_comment` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `description` text COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_element` int(11) DEFAULT NULL,
    +  `element_type` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) DEFAULT '1',
    +  `import_key` varchar(125) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_comment`
    +--
    +
    +LOCK TABLES `llx_comment` WRITE;
    +/*!40000 ALTER TABLE `llx_comment` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_comment` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_cond_reglement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_cond_reglement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_cond_reglement` (
    +  `rowid` int(11) NOT NULL,
    +  `code` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `sortorder` smallint(6) DEFAULT NULL,
    +  `active` tinyint(4) DEFAULT '1',
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `libelle_facture` text COLLATE utf8_unicode_ci,
    +  `fdm` tinyint(4) DEFAULT NULL,
    +  `nbjour` smallint(6) DEFAULT NULL,
    +  `decalage` smallint(6) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_cond_reglement`
    +--
    +
    +LOCK TABLES `llx_cond_reglement` WRITE;
    +/*!40000 ALTER TABLE `llx_cond_reglement` DISABLE KEYS */;
    +INSERT INTO `llx_cond_reglement` VALUES (1,'RECEP',1,1,'A réception','Réception de facture',0,0,NULL),(2,'30D',2,1,'30 jours','Réglement à 30 jours',0,30,NULL),(3,'30DENDMONTH',3,1,'30 jours fin de mois','Réglement à 30 jours fin de mois',1,30,NULL),(4,'60D',4,1,'60 jours','Réglement à 60 jours',0,60,NULL),(5,'60DENDMONTH',5,1,'60 jours fin de mois','Réglement à 60 jours fin de mois',1,60,NULL);
    +/*!40000 ALTER TABLE `llx_cond_reglement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_const`
    +--
    +
    +DROP TABLE IF EXISTS `llx_const`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_const` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `value` text COLLATE utf8_unicode_ci NOT NULL,
    +  `type` varchar(64) COLLATE utf8_unicode_ci DEFAULT 'string',
    +  `visible` tinyint(4) NOT NULL DEFAULT '1',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_const` (`name`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6590 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_const`
    +--
    +
    +LOCK TABLES `llx_const` WRITE;
    +/*!40000 ALTER TABLE `llx_const` DISABLE KEYS */;
    +INSERT INTO `llx_const` VALUES (8,'MAIN_UPLOAD_DOC',0,'2048','chaine',0,'Max size for file upload (0 means no upload allowed)','2010-07-08 11:17:57'),(9,'MAIN_SEARCHFORM_SOCIETE',0,'1','yesno',0,'Show form for quick company search','2010-07-08 11:17:57'),(10,'MAIN_SEARCHFORM_CONTACT',0,'1','yesno',0,'Show form for quick contact search','2010-07-08 11:17:57'),(11,'MAIN_SEARCHFORM_PRODUITSERVICE',0,'1','yesno',0,'Show form for quick product search','2010-07-08 11:17:58'),(12,'MAIN_SEARCHFORM_ADHERENT',0,'1','yesno',0,'Show form for quick member search','2010-07-08 11:17:58'),(16,'MAIN_SIZE_LISTE_LIMIT',0,'25','chaine',0,'Longueur maximum des listes','2010-07-08 11:17:58'),(29,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',1,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2010-07-08 11:17:58'),(33,'SOCIETE_NOLIST_COURRIER',0,'1','yesno',0,'Liste les fichiers du repertoire courrier','2010-07-08 11:17:58'),(36,'ADHERENT_MAIL_REQUIRED',1,'1','yesno',0,'EMail required to create a new member','2010-07-08 11:17:58'),(37,'ADHERENT_MAIL_FROM',1,'adherents@domain.com','chaine',0,'Sender EMail for automatic emails','2010-07-08 11:17:58'),(38,'ADHERENT_MAIL_RESIL',1,'Your subscription has been resiliated.\r\nWe hope to see you soon again','html',0,'Mail resiliation','2018-11-23 11:56:07'),(39,'ADHERENT_MAIL_VALID',1,'Your subscription has been validated.\r\nThis is a remind of your personal information :\r\n\r\n%INFOS%\r\n\r\n','html',0,'Mail de validation','2018-11-23 11:56:07'),(40,'ADHERENT_MAIL_COTIS',1,'Hello %PRENOM%,\r\nThanks for your subscription.\r\nThis email confirms that your subscription has been received and processed.\r\n\r\n','html',0,'Mail de validation de cotisation','2018-11-23 11:56:07'),(41,'ADHERENT_MAIL_VALID_SUBJECT',1,'Your subscription has been validated','chaine',0,'Sujet du mail de validation','2010-07-08 11:17:59'),(42,'ADHERENT_MAIL_RESIL_SUBJECT',1,'Resiliating your subscription','chaine',0,'Sujet du mail de resiliation','2010-07-08 11:17:59'),(43,'ADHERENT_MAIL_COTIS_SUBJECT',1,'Receipt of your subscription','chaine',0,'Sujet du mail de validation de cotisation','2010-07-08 11:17:59'),(44,'MAILING_EMAIL_FROM',1,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2010-07-08 11:17:59'),(45,'ADHERENT_USE_MAILMAN',1,'0','yesno',0,'Utilisation de Mailman','2010-07-08 11:17:59'),(46,'ADHERENT_MAILMAN_UNSUB_URL',1,'http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&user=%EMAIL%','chaine',0,'Url de desinscription aux listes mailman','2010-07-08 11:17:59'),(47,'ADHERENT_MAILMAN_URL',1,'http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&send_welcome_msg_to_this_batch=1&subscribees=%EMAIL%','chaine',0,'Url pour les inscriptions mailman','2010-07-08 11:17:59'),(48,'ADHERENT_MAILMAN_LISTS',1,'test-test,test-test2','chaine',0,'Listes auxquelles inscrire les nouveaux adherents','2010-07-08 11:17:59'),(49,'ADHERENT_MAILMAN_ADMINPW',1,'','chaine',0,'Mot de passe Admin des liste mailman','2010-07-08 11:17:59'),(50,'ADHERENT_MAILMAN_SERVER',1,'lists.domain.com','chaine',0,'Serveur hebergeant les interfaces d Admin des listes mailman','2010-07-08 11:17:59'),(51,'ADHERENT_MAILMAN_LISTS_COTISANT',1,'','chaine',0,'Liste(s) auxquelles les nouveaux cotisants sont inscris automatiquement','2010-07-08 11:17:59'),(52,'ADHERENT_USE_SPIP',1,'0','yesno',0,'Utilisation de SPIP ?','2010-07-08 11:17:59'),(53,'ADHERENT_USE_SPIP_AUTO',1,'0','yesno',0,'Utilisation de SPIP automatiquement','2010-07-08 11:17:59'),(54,'ADHERENT_SPIP_USER',1,'user','chaine',0,'user spip','2010-07-08 11:17:59'),(55,'ADHERENT_SPIP_PASS',1,'pass','chaine',0,'Pass de connection','2010-07-08 11:17:59'),(56,'ADHERENT_SPIP_SERVEUR',1,'localhost','chaine',0,'serveur spip','2010-07-08 11:17:59'),(57,'ADHERENT_SPIP_DB',1,'spip','chaine',0,'db spip','2010-07-08 11:17:59'),(58,'ADHERENT_CARD_HEADER_TEXT',1,'%ANNEE%','chaine',0,'Texte imprime sur le haut de la carte adherent','2010-07-08 11:17:59'),(59,'ADHERENT_CARD_FOOTER_TEXT',1,'Association AZERTY','chaine',0,'Texte imprime sur le bas de la carte adherent','2010-07-08 11:17:59'),(61,'FCKEDITOR_ENABLE_USER',1,'1','yesno',0,'Activation fckeditor sur notes utilisateurs','2010-07-08 11:17:59'),(62,'FCKEDITOR_ENABLE_SOCIETE',1,'1','yesno',0,'Activation fckeditor sur notes societe','2010-07-08 11:17:59'),(63,'FCKEDITOR_ENABLE_PRODUCTDESC',1,'1','yesno',0,'Activation fckeditor sur notes produits','2010-07-08 11:17:59'),(64,'FCKEDITOR_ENABLE_MEMBER',1,'1','yesno',0,'Activation fckeditor sur notes adherent','2010-07-08 11:17:59'),(65,'FCKEDITOR_ENABLE_MAILING',1,'1','yesno',0,'Activation fckeditor sur emailing','2010-07-08 11:17:59'),(67,'DON_ADDON_MODEL',1,'html_cerfafr','chaine',0,'','2010-07-08 11:18:00'),(68,'PROPALE_ADDON',1,'mod_propale_marbre','chaine',0,'','2010-07-08 11:18:00'),(69,'PROPALE_ADDON_PDF',1,'azur','chaine',0,'','2010-07-08 11:18:00'),(70,'COMMANDE_ADDON',1,'mod_commande_marbre','chaine',0,'','2010-07-08 11:18:00'),(71,'COMMANDE_ADDON_PDF',1,'einstein','chaine',0,'','2010-07-08 11:18:00'),(72,'COMMANDE_SUPPLIER_ADDON',1,'mod_commande_fournisseur_muguet','chaine',0,'','2010-07-08 11:18:00'),(73,'COMMANDE_SUPPLIER_ADDON_PDF',1,'muscadet','chaine',0,'','2010-07-08 11:18:00'),(74,'EXPEDITION_ADDON',1,'enlevement','chaine',0,'','2010-07-08 11:18:00'),(76,'FICHEINTER_ADDON',1,'pacific','chaine',0,'','2010-07-08 11:18:00'),(77,'FICHEINTER_ADDON_PDF',1,'soleil','chaine',0,'','2010-07-08 11:18:00'),(79,'FACTURE_ADDON_PDF',1,'crabe','chaine',0,'','2010-07-08 11:18:00'),(80,'PROPALE_VALIDITY_DURATION',1,'15','chaine',0,'Durée de validitée des propales','2010-07-08 11:18:00'),(230,'COMPANY_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/thirdparties','chaine',0,NULL,'2010-07-08 11:26:20'),(238,'LIVRAISON_ADDON_PDF',1,'typhon','chaine',0,'Nom du gestionnaire de generation des commandes en PDF','2010-07-08 11:26:27'),(239,'LIVRAISON_ADDON_NUMBER',1,'mod_livraison_jade','chaine',0,'Nom du gestionnaire de numerotation des bons de livraison','2013-03-20 13:17:36'),(245,'FACTURE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/invoices','chaine',0,NULL,'2010-07-08 11:28:53'),(249,'DON_FORM',1,'html_cerfafr','chaine',0,'Nom du gestionnaire de formulaire de dons','2017-09-06 16:12:22'),(254,'ADHERENT_BANK_ACCOUNT',1,'','chaine',0,'ID du Compte banquaire utilise','2010-07-08 11:29:05'),(255,'ADHERENT_BANK_CATEGORIE',1,'','chaine',0,'ID de la categorie banquaire des cotisations','2010-07-08 11:29:05'),(256,'ADHERENT_ETIQUETTE_TYPE',1,'L7163','chaine',0,'Type d etiquette (pour impression de planche d etiquette)','2010-07-08 11:29:05'),(269,'PROJECT_ADDON_PDF',1,'baleine','chaine',0,'Nom du gestionnaire de generation des projets en PDF','2010-07-08 11:29:33'),(270,'PROJECT_ADDON',1,'mod_project_simple','chaine',0,'Nom du gestionnaire de numerotation des projets','2010-07-08 11:29:33'),(368,'STOCK_USERSTOCK_AUTOCREATE',1,'1','chaine',0,'','2010-07-08 22:44:59'),(369,'EXPEDITION_ADDON_PDF',1,'merou','chaine',0,'','2010-07-08 22:58:07'),(377,'FACTURE_ADDON',1,'mod_facture_terre','chaine',0,'','2010-07-08 23:08:12'),(380,'ADHERENT_CARD_TEXT',1,'%TYPE% n° %ID%\r\n%PRENOM% %NOM%\r\n<%EMAIL%>\r\n%ADRESSE%\r\n%CP% %VILLE%\r\n%PAYS%','',0,'Texte imprime sur la carte adherent','2010-07-08 23:14:46'),(381,'ADHERENT_CARD_TEXT_RIGHT',1,'aaa','',0,'','2010-07-08 23:14:55'),(385,'PRODUIT_USE_SEARCH_TO_SELECT',1,'1','chaine',0,'','2010-07-08 23:22:19'),(386,'STOCK_CALCULATE_ON_SHIPMENT',1,'1','chaine',0,'','2010-07-08 23:23:21'),(387,'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER',1,'1','chaine',0,'','2010-07-08 23:23:26'),(392,'MAIN_AGENDA_XCAL_EXPORTKEY',1,'dolibarr','chaine',0,'','2010-07-08 23:27:50'),(393,'MAIN_AGENDA_EXPORT_PAST_DELAY',1,'100','chaine',0,'','2010-07-08 23:27:50'),(610,'CASHDESK_ID_THIRDPARTY',1,'7','chaine',0,'','2010-07-11 17:08:18'),(611,'CASHDESK_ID_BANKACCOUNT_CASH',1,'3','chaine',0,'','2010-07-11 17:08:18'),(612,'CASHDESK_ID_BANKACCOUNT_CHEQUE',1,'1','chaine',0,'','2010-07-11 17:08:18'),(613,'CASHDESK_ID_BANKACCOUNT_CB',1,'1','chaine',0,'','2010-07-11 17:08:18'),(614,'CASHDESK_ID_WAREHOUSE',1,'2','chaine',0,'','2010-07-11 17:08:18'),(660,'LDAP_USER_DN',1,'ou=users,dc=my-domain,dc=com','chaine',0,NULL,'2010-07-18 10:25:27'),(661,'LDAP_GROUP_DN',1,'ou=groups,dc=my-domain,dc=com','chaine',0,NULL,'2010-07-18 10:25:27'),(662,'LDAP_FILTER_CONNECTION',1,'&(objectClass=user)(objectCategory=person)','chaine',0,NULL,'2010-07-18 10:25:27'),(663,'LDAP_FIELD_LOGIN',1,'uid','chaine',0,NULL,'2010-07-18 10:25:27'),(664,'LDAP_FIELD_FULLNAME',1,'cn','chaine',0,NULL,'2010-07-18 10:25:27'),(665,'LDAP_FIELD_NAME',1,'sn','chaine',0,NULL,'2010-07-18 10:25:27'),(666,'LDAP_FIELD_FIRSTNAME',1,'givenname','chaine',0,NULL,'2010-07-18 10:25:27'),(667,'LDAP_FIELD_MAIL',1,'mail','chaine',0,NULL,'2010-07-18 10:25:27'),(668,'LDAP_FIELD_PHONE',1,'telephonenumber','chaine',0,NULL,'2010-07-18 10:25:27'),(669,'LDAP_FIELD_FAX',1,'facsimiletelephonenumber','chaine',0,NULL,'2010-07-18 10:25:27'),(670,'LDAP_FIELD_MOBILE',1,'mobile','chaine',0,NULL,'2010-07-18 10:25:27'),(671,'LDAP_SERVER_TYPE',1,'openldap','chaine',0,'','2010-07-18 10:25:46'),(672,'LDAP_SERVER_PROTOCOLVERSION',1,'3','chaine',0,'','2010-07-18 10:25:47'),(673,'LDAP_SERVER_HOST',1,'localhost','chaine',0,'','2010-07-18 10:25:47'),(674,'LDAP_SERVER_PORT',1,'389','chaine',0,'','2010-07-18 10:25:47'),(675,'LDAP_SERVER_USE_TLS',1,'0','chaine',0,'','2010-07-18 10:25:47'),(676,'LDAP_SYNCHRO_ACTIVE',1,'dolibarr2ldap','chaine',0,'','2010-07-18 10:25:47'),(677,'LDAP_CONTACT_ACTIVE',1,'1','chaine',0,'','2010-07-18 10:25:47'),(678,'LDAP_MEMBER_ACTIVE',1,'1','chaine',0,'','2010-07-18 10:25:47'),(974,'MAIN_MODULE_WORKFLOW_TRIGGERS',1,'1','chaine',0,NULL,'2011-07-18 18:02:20'),(975,'WORKFLOW_PROPAL_AUTOCREATE_ORDER',1,'1','chaine',0,'','2011-07-18 18:02:24'),(980,'PRELEVEMENT_NUMERO_NATIONAL_EMETTEUR',1,'1234567','chaine',0,'','2011-07-18 18:05:50'),(983,'FACTURE_RIB_NUMBER',1,'1','chaine',0,'','2011-07-18 18:35:14'),(984,'FACTURE_CHQ_NUMBER',1,'1','chaine',0,'','2011-07-18 18:35:14'),(1016,'GOOGLE_DUPLICATE_INTO_GCAL',1,'1','chaine',0,'','2011-07-18 21:40:20'),(1152,'SOCIETE_CODECLIENT_ADDON',1,'mod_codeclient_monkey','chaine',0,'','2011-07-29 20:50:02'),(1231,'MAIN_UPLOAD_DOC',1,'2048','chaine',0,'','2011-07-29 21:04:00'),(1234,'MAIN_UMASK',1,'0664','chaine',0,'','2011-07-29 21:04:11'),(1240,'MAIN_LOGEVENTS_USER_LOGIN',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1241,'MAIN_LOGEVENTS_USER_LOGIN_FAILED',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1242,'MAIN_LOGEVENTS_USER_LOGOUT',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1243,'MAIN_LOGEVENTS_USER_CREATE',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1244,'MAIN_LOGEVENTS_USER_MODIFY',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1245,'MAIN_LOGEVENTS_USER_NEW_PASSWORD',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1246,'MAIN_LOGEVENTS_USER_ENABLEDISABLE',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1247,'MAIN_LOGEVENTS_USER_DELETE',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1248,'MAIN_LOGEVENTS_GROUP_CREATE',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1249,'MAIN_LOGEVENTS_GROUP_MODIFY',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1250,'MAIN_LOGEVENTS_GROUP_DELETE',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1251,'MAIN_BOXES_MAXLINES',1,'5','',0,'','2011-07-29 21:05:42'),(1482,'EXPEDITION_ADDON_NUMBER',1,'mod_expedition_safor','chaine',0,'Nom du gestionnaire de numerotation des expeditions','2011-08-05 17:53:11'),(1490,'CONTRACT_ADDON',1,'mod_contract_serpis','chaine',0,'Nom du gestionnaire de numerotation des contrats','2011-08-05 18:11:58'),(1677,'COMMANDE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/orders','chaine',0,NULL,'2012-12-08 13:11:02'),(1698,'PRODUCT_CODEPRODUCT_ADDON',1,'mod_codeproduct_leopard','yesno',0,'Module to control product codes','2012-12-08 13:11:25'),(1724,'PROPALE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/proposals','chaine',0,NULL,'2012-12-08 13:17:14'),(1730,'OPENSTREETMAP_ENABLE_MAPS',1,'1','chaine',0,'','2012-12-08 13:22:47'),(1731,'OPENSTREETMAP_ENABLE_MAPS_CONTACTS',1,'1','chaine',0,'','2012-12-08 13:22:47'),(1732,'OPENSTREETMAP_ENABLE_MAPS_MEMBERS',1,'1','chaine',0,'','2012-12-08 13:22:47'),(1733,'OPENSTREETMAP_MAPS_ZOOM_LEVEL',1,'15','chaine',0,'','2012-12-08 13:22:47'),(1742,'MAIN_MAIL_EMAIL_FROM',2,'dolibarr-robot@domain.com','chaine',0,'EMail emetteur pour les emails automatiques Dolibarr','2012-12-08 14:08:14'),(1743,'MAIN_MENU_STANDARD',2,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs internes','2013-02-11 19:43:54'),(1744,'MAIN_MENUFRONT_STANDARD',2,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs externes','2013-02-11 19:43:54'),(1745,'MAIN_MENU_SMARTPHONE',2,'iphone_backoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs internes','2012-12-08 14:08:14'),(1746,'MAIN_MENUFRONT_SMARTPHONE',2,'iphone_frontoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs externes','2012-12-08 14:08:14'),(1747,'MAIN_THEME',2,'eldy','chaine',0,'Default theme','2012-12-08 14:08:14'),(1748,'MAIN_DELAY_ACTIONS_TODO',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur actions planifiées non réalisées','2012-12-08 14:08:14'),(1749,'MAIN_DELAY_ORDERS_TO_PROCESS',2,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes clients non traitées','2012-12-08 14:08:14'),(1750,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes fournisseurs non traitées','2012-12-08 14:08:14'),(1751,'MAIN_DELAY_PROPALS_TO_CLOSE',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales à cloturer','2012-12-08 14:08:14'),(1752,'MAIN_DELAY_PROPALS_TO_BILL',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales non facturées','2012-12-08 14:08:14'),(1753,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures client impayées','2012-12-08 14:08:14'),(1754,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',2,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées','2012-12-08 14:08:14'),(1755,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',2,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2012-12-08 14:08:14'),(1756,'MAIN_DELAY_RUNNING_SERVICES',2,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services expirés','2012-12-08 14:08:14'),(1757,'MAIN_DELAY_MEMBERS',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur cotisations adhérent en retard','2012-12-08 14:08:14'),(1758,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',2,'62','chaine',0,'Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire','2012-12-08 14:08:14'),(1759,'MAILING_EMAIL_FROM',2,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2012-12-08 14:08:14'),(1760,'MAIN_INFO_SOCIETE_COUNTRY',3,'1:FR:France','chaine',0,'','2013-02-26 21:56:28'),(1761,'MAIN_INFO_SOCIETE_NOM',3,'bbb','chaine',0,'','2012-12-08 14:08:20'),(1762,'MAIN_INFO_SOCIETE_STATE',3,'0','chaine',0,'','2013-02-27 14:20:27'),(1763,'MAIN_MONNAIE',3,'EUR','chaine',0,'','2012-12-08 14:08:20'),(1764,'MAIN_LANG_DEFAULT',3,'auto','chaine',0,'','2012-12-08 14:08:20'),(1765,'MAIN_MAIL_EMAIL_FROM',3,'dolibarr-robot@domain.com','chaine',0,'EMail emetteur pour les emails automatiques Dolibarr','2012-12-08 14:08:20'),(1766,'MAIN_MENU_STANDARD',3,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs internes','2013-02-11 19:43:54'),(1767,'MAIN_MENUFRONT_STANDARD',3,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs externes','2013-02-11 19:43:54'),(1768,'MAIN_MENU_SMARTPHONE',3,'iphone_backoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs internes','2012-12-08 14:08:20'),(1769,'MAIN_MENUFRONT_SMARTPHONE',3,'iphone_frontoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs externes','2012-12-08 14:08:20'),(1770,'MAIN_THEME',3,'eldy','chaine',0,'Default theme','2012-12-08 14:08:20'),(1771,'MAIN_DELAY_ACTIONS_TODO',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur actions planifiées non réalisées','2012-12-08 14:08:20'),(1772,'MAIN_DELAY_ORDERS_TO_PROCESS',3,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes clients non traitées','2012-12-08 14:08:20'),(1773,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes fournisseurs non traitées','2012-12-08 14:08:20'),(1774,'MAIN_DELAY_PROPALS_TO_CLOSE',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales à cloturer','2012-12-08 14:08:20'),(1775,'MAIN_DELAY_PROPALS_TO_BILL',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales non facturées','2012-12-08 14:08:20'),(1776,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures client impayées','2012-12-08 14:08:20'),(1777,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',3,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées','2012-12-08 14:08:20'),(1778,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',3,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2012-12-08 14:08:20'),(1779,'MAIN_DELAY_RUNNING_SERVICES',3,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services expirés','2012-12-08 14:08:20'),(1780,'MAIN_DELAY_MEMBERS',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur cotisations adhérent en retard','2012-12-08 14:08:20'),(1781,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',3,'62','chaine',0,'Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire','2012-12-08 14:08:20'),(1782,'MAILING_EMAIL_FROM',3,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2012-12-08 14:08:20'),(1803,'SYSLOG_FILE',1,'DOL_DATA_ROOT/dolibarr.log','chaine',0,'','2012-12-08 14:15:08'),(1804,'SYSLOG_HANDLERS',1,'[\"mod_syslog_file\"]','chaine',0,'','2012-12-08 14:15:08'),(1805,'MAIN_MODULE_SKINCOLOREDITOR',3,'1',NULL,0,NULL,'2012-12-08 14:35:40'),(1806,'MAIN_MODULE_SKINCOLOREDITOR_TABS_0',3,'user:+tabskincoloreditors:ColorEditor:skincoloreditor@skincoloreditor:/skincoloreditor/usercolors.php?id=__ID__','chaine',0,NULL,'2012-12-08 14:35:40'),(1922,'PAYPAL_API_SANDBOX',1,'1','chaine',0,'','2012-12-12 12:11:05'),(1923,'PAYPAL_API_USER',1,'seller_1355312017_biz_api1.nltechno.com','chaine',0,'','2012-12-12 12:11:05'),(1924,'PAYPAL_API_PASSWORD',1,'1355312040','chaine',0,'','2012-12-12 12:11:05'),(1925,'PAYPAL_API_SIGNATURE',1,'AXqqdsWBzvfn0q5iNmbuiDv1y.3EAXIMWyl4C5KvDReR9HDwwAd6dQ4Q','chaine',0,'','2012-12-12 12:11:05'),(1926,'PAYPAL_API_INTEGRAL_OR_PAYPALONLY',1,'integral','chaine',0,'','2012-12-12 12:11:05'),(1927,'PAYPAL_SECURITY_TOKEN',1,'50c82fab36bb3b6aa83e2a50691803b2','chaine',0,'','2012-12-12 12:11:05'),(1928,'PAYPAL_SECURITY_TOKEN_UNIQUE',1,'0','chaine',0,'','2012-12-12 12:11:05'),(1929,'PAYPAL_ADD_PAYMENT_URL',1,'1','chaine',0,'','2012-12-12 12:11:05'),(1980,'MAIN_PDF_FORMAT',1,'EUA4','chaine',0,'','2012-12-12 19:58:05'),(1981,'MAIN_PROFID1_IN_ADDRESS',1,'0','chaine',0,'','2012-12-12 19:58:05'),(1982,'MAIN_PROFID2_IN_ADDRESS',1,'0','chaine',0,'','2012-12-12 19:58:05'),(1983,'MAIN_PROFID3_IN_ADDRESS',1,'0','chaine',0,'','2012-12-12 19:58:05'),(1984,'MAIN_PROFID4_IN_ADDRESS',1,'0','chaine',0,'','2012-12-12 19:58:05'),(1985,'MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT',1,'0','chaine',0,'','2012-12-12 19:58:05'),(2251,'FCKEDITOR_TEST',1,'Test<br />\r\n<img alt=\"\" src=\"/dolibarrnew/viewimage.php?modulepart=fckeditor&amp;file=image/Julien-Lavergne_reference_medium.jpg\" style=\"width: 200px; height: 172px;\" />fdfs','chaine',0,'','2012-12-19 19:12:24'),(2293,'SYSTEMTOOLS_MYSQLDUMP',1,'/usr/bin/mysqldump','chaine',0,'','2012-12-27 02:02:00'),(2835,'MAIN_USE_CONNECT_TIMEOUT',1,'10','chaine',0,'','2013-01-16 19:28:50'),(2836,'MAIN_USE_RESPONSE_TIMEOUT',1,'30','chaine',0,'','2013-01-16 19:28:50'),(2837,'MAIN_PROXY_USE',1,'0','chaine',0,'','2013-01-16 19:28:50'),(2838,'MAIN_PROXY_HOST',1,'localhost','chaine',0,'','2013-01-16 19:28:50'),(2839,'MAIN_PROXY_PORT',1,'8080','chaine',0,'','2013-01-16 19:28:50'),(2840,'MAIN_PROXY_USER',1,'aaa','chaine',0,'','2013-01-16 19:28:50'),(2841,'MAIN_PROXY_PASS',1,'bbb','chaine',0,'','2013-01-16 19:28:50'),(2848,'OVHSMS_NICK',1,'BN196-OVH','chaine',0,'','2013-01-16 19:32:36'),(2849,'OVHSMS_PASS',1,'bigone-10','chaine',0,'','2013-01-16 19:32:36'),(2850,'OVHSMS_SOAPURL',1,'https://www.ovh.com/soapi/soapi-re-1.55.wsdl','chaine',0,'','2013-01-16 19:32:36'),(2854,'THEME_ELDY_RGB',1,'bfbf00','chaine',0,'','2013-01-18 10:02:53'),(2855,'THEME_ELDY_ENABLE_PERSONALIZED',1,'0','chaine',0,'','2013-01-18 10:02:55'),(2858,'MAIN_SESSION_TIMEOUT',1,'2000','chaine',0,'','2013-01-19 17:01:53'),(2862,'TICKET_ADDON',1,'mod_ticket_avenc','chaine',0,'Nom du gestionnaire de numerotation des tickets','2013-01-19 17:16:10'),(2867,'FACSIM_ADDON',1,'mod_facsim_alcoy','chaine',0,'','2013-01-19 17:16:25'),(2868,'POS_SERVICES',1,'0','chaine',0,'','2013-01-19 17:16:51'),(2869,'POS_USE_TICKETS',1,'1','chaine',0,'','2013-01-19 17:16:51'),(2870,'POS_MAX_TTC',1,'100','chaine',0,'','2013-01-19 17:16:51'),(3190,'MAIN_MODULE_HOLIDAY',2,'1',NULL,0,NULL,'2013-02-01 08:52:34'),(3191,'MAIN_MODULE_HOLIDAY_TABS_0',2,'user:+paidholidays:CPTitreMenu:holiday:$user->rights->holiday->write:/holiday/index.php?mainmenu=holiday&id=__ID__','chaine',0,NULL,'2013-02-01 08:52:34'),(3195,'INVOICE_SUPPLIER_ADDON_PDF',1,'canelle','chaine',0,'','2013-02-10 19:50:27'),(3199,'MAIN_FORCE_RELOAD_PAGE',1,'1','chaine',0,NULL,'2013-02-12 16:22:55'),(3217,'MAIN_PDF_TITLE_BACKGROUND_COLOR',1,'240,240,240','chaine',1,'','2013-02-13 15:18:02'),(3223,'OVH_THIRDPARTY_IMPORT',1,'2','chaine',0,'','2013-02-13 16:20:18'),(3241,'COMPANY_USE_SEARCH_TO_SELECT',1,'2','chaine',0,'','2013-02-17 14:33:39'),(3409,'AGENDA_USE_EVENT_TYPE',1,'1','chaine',0,'','2013-02-27 18:12:24'),(3886,'MAIN_REMOVE_INSTALL_WARNING',1,'1','chaine',1,'','2013-03-02 18:32:50'),(4013,'MAIN_DELAY_ACTIONS_TODO',1,'7','chaine',0,'','2013-03-06 08:59:12'),(4014,'MAIN_DELAY_PROPALS_TO_CLOSE',1,'31','chaine',0,'','2013-03-06 08:59:12'),(4015,'MAIN_DELAY_PROPALS_TO_BILL',1,'7','chaine',0,'','2013-03-06 08:59:12'),(4016,'MAIN_DELAY_ORDERS_TO_PROCESS',1,'2','chaine',0,'','2013-03-06 08:59:12'),(4017,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',1,'31','chaine',0,'','2013-03-06 08:59:12'),(4018,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',1,'7','chaine',0,'','2013-03-06 08:59:12'),(4019,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',1,'2','chaine',0,'','2013-03-06 08:59:12'),(4020,'MAIN_DELAY_RUNNING_SERVICES',1,'-15','chaine',0,'','2013-03-06 08:59:12'),(4021,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',1,'62','chaine',0,'','2013-03-06 08:59:13'),(4022,'MAIN_DELAY_MEMBERS',1,'31','chaine',0,'','2013-03-06 08:59:13'),(4023,'MAIN_DISABLE_METEO',1,'0','chaine',0,'','2013-03-06 08:59:13'),(4044,'ADHERENT_VAT_FOR_SUBSCRIPTIONS',1,'0','',0,'','2013-03-06 16:06:38'),(4047,'ADHERENT_BANK_USE',1,'bankviainvoice','',0,'','2013-03-06 16:12:30'),(4049,'PHPSANE_SCANIMAGE',1,'/usr/bin/scanimage','chaine',0,'','2013-03-06 21:54:13'),(4050,'PHPSANE_PNMTOJPEG',1,'/usr/bin/pnmtojpeg','chaine',0,'','2013-03-06 21:54:13'),(4051,'PHPSANE_PNMTOTIFF',1,'/usr/bin/pnmtotiff','chaine',0,'','2013-03-06 21:54:13'),(4052,'PHPSANE_OCR',1,'/usr/bin/gocr','chaine',0,'','2013-03-06 21:54:13'),(4548,'ECM_AUTO_TREE_ENABLED',1,'1','chaine',0,'','2013-03-10 15:57:21'),(4579,'MAIN_MODULE_AGENDA',2,'1',NULL,0,NULL,'2013-03-13 15:29:19'),(4580,'MAIN_AGENDA_ACTIONAUTO_COMPANY_CREATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4581,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4582,'MAIN_AGENDA_ACTIONAUTO_PROPAL_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4583,'MAIN_AGENDA_ACTIONAUTO_PROPAL_SENTBYMAIL',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4584,'MAIN_AGENDA_ACTIONAUTO_ORDER_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4585,'MAIN_AGENDA_ACTIONAUTO_ORDER_SENTBYMAIL',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4586,'MAIN_AGENDA_ACTIONAUTO_BILL_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4587,'MAIN_AGENDA_ACTIONAUTO_BILL_PAYED',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4588,'MAIN_AGENDA_ACTIONAUTO_BILL_CANCEL',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4589,'MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4590,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4591,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4592,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4593,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_SENTBYMAIL',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4594,'MAIN_AGENDA_ACTIONAUTO_BILL_UNVALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4595,'MAIN_MODULE_GOOGLE',2,'1',NULL,0,NULL,'2013-03-13 15:29:47'),(4596,'MAIN_MODULE_GOOGLE_TABS_0',2,'agenda:+gcal:MenuAgendaGoogle:google@google:$conf->google->enabled && $conf->global->GOOGLE_ENABLE_AGENDA:/google/index.php','chaine',0,NULL,'2013-03-13 15:29:47'),(4597,'MAIN_MODULE_GOOGLE_TABS_1',2,'user:+gsetup:GoogleUserConf:google@google:$conf->google->enabled && $conf->global->GOOGLE_DUPLICATE_INTO_GCAL:/google/admin/google_calsync_user.php?id=__ID__','chaine',0,NULL,'2013-03-13 15:29:47'),(4598,'MAIN_MODULE_GOOGLE_TRIGGERS',2,'1','chaine',0,NULL,'2013-03-13 15:29:47'),(4599,'MAIN_MODULE_GOOGLE_HOOKS',2,'[\"toprightmenu\"]','chaine',0,NULL,'2013-03-13 15:29:47'),(4688,'GOOGLE_ENABLE_AGENDA',2,'1','chaine',0,'','2013-03-13 15:36:29'),(4689,'GOOGLE_AGENDA_NAME1',2,'eldy','chaine',0,'','2013-03-13 15:36:29'),(4690,'GOOGLE_AGENDA_SRC1',2,'eldy10@mail.com','chaine',0,'','2013-03-13 15:36:29'),(4691,'GOOGLE_AGENDA_COLOR1',2,'BE6D00','chaine',0,'','2013-03-13 15:36:29'),(4692,'GOOGLE_AGENDA_COLOR2',2,'7A367A','chaine',0,'','2013-03-13 15:36:29'),(4693,'GOOGLE_AGENDA_COLOR3',2,'7A367A','chaine',0,'','2013-03-13 15:36:29'),(4694,'GOOGLE_AGENDA_COLOR4',2,'7A367A','chaine',0,'','2013-03-13 15:36:29'),(4695,'GOOGLE_AGENDA_COLOR5',2,'7A367A','chaine',0,'','2013-03-13 15:36:29'),(4696,'GOOGLE_AGENDA_TIMEZONE',2,'Europe/Paris','chaine',0,'','2013-03-13 15:36:29'),(4697,'GOOGLE_AGENDA_NB',2,'5','chaine',0,'','2013-03-13 15:36:29'),(4725,'SOCIETE_CODECLIENT_ADDON',2,'mod_codeclient_leopard','chaine',0,'Module to control third parties codes','2013-03-13 20:21:35'),(4726,'SOCIETE_CODECOMPTA_ADDON',2,'mod_codecompta_panicum','chaine',0,'Module to control third parties codes','2013-03-13 20:21:35'),(4727,'SOCIETE_FISCAL_MONTH_START',2,'','chaine',0,'Mettre le numero du mois du debut d\\\'annee fiscale, ex: 9 pour septembre','2013-03-13 20:21:35'),(4728,'MAIN_SEARCHFORM_SOCIETE',2,'1','yesno',0,'Show form for quick company search','2013-03-13 20:21:35'),(4729,'MAIN_SEARCHFORM_CONTACT',2,'1','yesno',0,'Show form for quick contact search','2013-03-13 20:21:35'),(4730,'COMPANY_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/thirdparties','chaine',0,NULL,'2013-03-13 20:21:35'),(4743,'MAIN_MODULE_CLICKTODIAL',2,'1',NULL,0,NULL,'2013-03-13 20:30:28'),(4744,'MAIN_MODULE_NOTIFICATION',2,'1',NULL,0,NULL,'2013-03-13 20:30:34'),(4745,'MAIN_MODULE_WEBSERVICES',2,'1',NULL,0,NULL,'2013-03-13 20:30:41'),(4746,'MAIN_MODULE_PROPALE',2,'1',NULL,0,NULL,'2013-03-13 20:32:38'),(4747,'PROPALE_ADDON_PDF',2,'azur','chaine',0,'Nom du gestionnaire de generation des propales en PDF','2013-03-13 20:32:38'),(4748,'PROPALE_ADDON',2,'mod_propale_marbre','chaine',0,'Nom du gestionnaire de numerotation des propales','2013-03-13 20:32:38'),(4749,'PROPALE_VALIDITY_DURATION',2,'15','chaine',0,'Duration of validity of business proposals','2013-03-13 20:32:38'),(4750,'PROPALE_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/proposals','chaine',0,NULL,'2013-03-13 20:32:38'),(4752,'MAIN_MODULE_TAX',2,'1',NULL,0,NULL,'2013-03-13 20:32:47'),(4753,'MAIN_MODULE_DON',2,'1',NULL,0,NULL,'2013-03-13 20:32:54'),(4754,'DON_ADDON_MODEL',2,'html_cerfafr','chaine',0,'Nom du gestionnaire de generation de recu de dons','2013-03-13 20:32:54'),(4755,'POS_USE_TICKETS',2,'1','chaine',0,'','2013-03-13 20:33:09'),(4756,'POS_MAX_TTC',2,'100','chaine',0,'','2013-03-13 20:33:09'),(4757,'MAIN_MODULE_POS',2,'1',NULL,0,NULL,'2013-03-13 20:33:09'),(4758,'TICKET_ADDON',2,'mod_ticket_avenc','chaine',0,'Nom du gestionnaire de numerotation des tickets','2013-03-13 20:33:09'),(4759,'MAIN_MODULE_BANQUE',2,'1',NULL,0,NULL,'2013-03-13 20:33:09'),(4760,'MAIN_MODULE_FACTURE',2,'1',NULL,0,NULL,'2013-03-13 20:33:09'),(4761,'FACTURE_ADDON_PDF',2,'crabe','chaine',0,'Name of PDF model of invoice','2013-03-13 20:33:09'),(4762,'FACTURE_ADDON',2,'mod_facture_terre','chaine',0,'Name of numbering numerotation rules of invoice','2013-03-13 20:33:09'),(4763,'FACTURE_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/invoices','chaine',0,NULL,'2013-03-13 20:33:09'),(4764,'MAIN_MODULE_SOCIETE',2,'1',NULL,0,NULL,'2013-03-13 20:33:09'),(4765,'MAIN_MODULE_PRODUCT',2,'1',NULL,0,NULL,'2013-03-13 20:33:09'),(4766,'PRODUCT_CODEPRODUCT_ADDON',2,'mod_codeproduct_leopard','chaine',0,'Module to control product codes','2013-03-13 20:33:09'),(4767,'MAIN_SEARCHFORM_PRODUITSERVICE',2,'1','yesno',0,'Show form for quick product search','2013-03-13 20:33:09'),(4772,'FACSIM_ADDON',2,'mod_facsim_alcoy','chaine',0,'','2013-03-13 20:33:32'),(4773,'MAIN_MODULE_MAILING',2,'1',NULL,0,NULL,'2013-03-13 20:33:37'),(4774,'MAIN_MODULE_OPENSURVEY',2,'1',NULL,0,NULL,'2013-03-13 20:33:42'),(4782,'AGENDA_USE_EVENT_TYPE',2,'1','chaine',0,'','2013-03-13 20:53:36'),(4884,'AGENDA_DISABLE_EXT',2,'1','chaine',0,'','2013-03-13 22:03:40'),(4928,'COMMANDE_SUPPLIER_ADDON_NUMBER',1,'mod_commande_fournisseur_muguet','chaine',0,'Nom du gestionnaire de numerotation des commandes fournisseur','2013-03-22 09:24:29'),(4929,'INVOICE_SUPPLIER_ADDON_NUMBER',1,'mod_facture_fournisseur_cactus','chaine',0,'Nom du gestionnaire de numerotation des factures fournisseur','2013-03-22 09:24:29'),(5001,'MAIN_CRON_KEY',0,'bc54582fe30d5d4a830c6f582ec28810','chaine',0,'','2013-03-23 17:54:53'),(5009,'CRON_KEY',0,'2c2e755c20be2014098f629865598006','chaine',0,'','2013-03-23 18:06:24'),(5139,'SOCIETE_ADD_REF_IN_LIST',1,'','yesno',0,'Display customer ref into select list','2013-09-08 23:06:08'),(5150,'PROJECT_TASK_ADDON_PDF',1,'','chaine',0,'Name of PDF/ODT tasks manager class','2013-09-08 23:06:14'),(5151,'PROJECT_TASK_ADDON',1,'mod_task_simple','chaine',0,'Name of Numbering Rule task manager class','2013-09-08 23:06:14'),(5152,'PROJECT_TASK_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/tasks','chaine',0,'','2013-09-08 23:06:14'),(5239,'BOOKMARKS_SHOW_IN_MENU',1,'10','chaine',0,'','2014-03-02 15:42:26'),(5271,'DONATION_ART200',1,'','yesno',0,'Option Française - Eligibilité Art200 du CGI','2014-12-21 12:51:28'),(5272,'DONATION_ART238',1,'','yesno',0,'Option Française - Eligibilité Art238 bis du CGI','2014-12-21 12:51:28'),(5273,'DONATION_ART885',1,'','yesno',0,'Option Française - Eligibilité Art885-0 V bis du CGI','2014-12-21 12:51:28'),(5274,'DONATION_MESSAGE',1,'Thank you','chaine',0,'Message affiché sur le récépissé de versements ou dons','2014-12-21 12:51:28'),(5288,'DONATION_ACCOUNTINGACCOUNT',1,'7581','chaine',0,'Compte comptable de remise des versements ou dons','2015-07-19 13:41:21'),(5349,'MAIN_SEARCHFORM_CONTACT',1,'1','chaine',0,'','2015-10-03 10:11:33'),(5351,'MAIN_SEARCHFORM_PRODUITSERVICE',1,'1','chaine',0,'','2015-10-03 10:11:33'),(5352,'MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER',1,'0','chaine',0,'','2015-10-03 10:11:33'),(5353,'MAIN_SEARCHFORM_ADHERENT',1,'1','chaine',0,'','2015-10-03 10:11:33'),(5354,'MAIN_SEARCHFORM_PROJECT',1,'0','chaine',0,'','2015-10-03 10:11:33'),(5394,'FCKEDITOR_ENABLE_DETAILS',1,'1','yesno',0,'WYSIWIG for products details lines for all entities','2015-11-04 15:27:44'),(5395,'FCKEDITOR_ENABLE_USERSIGN',1,'1','yesno',0,'WYSIWIG for user signature','2015-11-04 15:27:44'),(5396,'FCKEDITOR_ENABLE_MAIL',1,'1','yesno',0,'WYSIWIG for products details lines for all entities','2015-11-04 15:27:44'),(5398,'CATEGORIE_RECURSIV_ADD',1,'','yesno',0,'Affect parent categories','2015-11-04 15:27:46'),(5403,'MAIN_MODULE_FCKEDITOR',1,'1',NULL,0,NULL,'2015-11-04 15:41:40'),(5404,'MAIN_MODULE_CATEGORIE',1,'1',NULL,0,NULL,'2015-11-04 15:41:43'),(5415,'EXPEDITION_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/shipment','chaine',0,NULL,'2015-11-15 22:38:28'),(5416,'LIVRAISON_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/delivery','chaine',0,NULL,'2015-11-15 22:38:28'),(5419,'MAIN_MODULE_CASHDESK',1,'1',NULL,0,NULL,'2015-11-15 22:38:33'),(5426,'MAIN_MODULE_PROJET',1,'1',NULL,0,NULL,'2015-11-15 22:38:44'),(5427,'PROJECT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/projects','chaine',0,NULL,'2015-11-15 22:38:44'),(5428,'PROJECT_USE_OPPORTUNIES',1,'1','chaine',0,NULL,'2015-11-15 22:38:44'),(5430,'MAIN_MODULE_EXPORT',1,'1',NULL,0,NULL,'2015-11-15 22:38:56'),(5431,'MAIN_MODULE_IMPORT',1,'1',NULL,0,NULL,'2015-11-15 22:38:58'),(5432,'MAIN_MODULE_MAILING',1,'1',NULL,0,NULL,'2015-11-15 22:39:00'),(5434,'EXPENSEREPORT_ADDON_PDF',1,'standard','chaine',0,'Name of manager to build PDF expense reports documents','2015-11-15 22:39:05'),(5436,'SALARIES_ACCOUNTING_ACCOUNT_PAYMENT',1,'421','chaine',0,NULL,'2015-11-15 22:39:08'),(5437,'SALARIES_ACCOUNTING_ACCOUNT_CHARGE',1,'641','chaine',0,NULL,'2015-11-15 22:39:08'),(5441,'ADHERENT_ETIQUETTE_TEXT',1,'%FULLNAME%\n%ADDRESS%\n%ZIP% %TOWN%\n%COUNTRY%','text',0,'Text to print on member address sheets','2018-11-23 11:56:07'),(5443,'MAIN_MODULE_PRELEVEMENT',1,'1',NULL,0,NULL,'2015-11-15 22:39:33'),(5453,'MAIN_MODULE_CONTRAT',1,'1',NULL,0,NULL,'2015-11-15 22:39:52'),(5455,'MAIN_MODULE_FICHEINTER',1,'1',NULL,0,NULL,'2015-11-15 22:39:56'),(5459,'MAIN_MODULE_PAYPAL',1,'1',NULL,0,NULL,'2015-11-15 22:41:02'),(5460,'MAIN_MODULE_MARGIN',1,'1',NULL,0,NULL,'2015-11-15 22:41:47'),(5461,'MAIN_MODULE_MARGIN_TABS_0',1,'product:+margin:Margins:margins:$user->rights->margins->liretous:/margin/tabs/productMargins.php?id=__ID__','chaine',0,NULL,'2015-11-15 22:41:47'),(5462,'MAIN_MODULE_MARGIN_TABS_1',1,'thirdparty:+margin:Margins:margins:empty($user->societe_id) && $user->rights->margins->liretous && ($object->client > 0):/margin/tabs/thirdpartyMargins.php?socid=__ID__','chaine',0,NULL,'2015-11-15 22:41:47'),(5463,'MAIN_MODULE_PROPALE',1,'1',NULL,0,NULL,'2015-11-15 22:41:47'),(5483,'GENBARCODE_BARCODETYPE_THIRDPARTY',1,'6','chaine',0,'','2016-01-16 15:49:43'),(5484,'PRODUIT_DEFAULT_BARCODE_TYPE',1,'2','chaine',0,'','2016-01-16 15:49:46'),(5539,'PRODUCT_USE_OLD_PATH_FOR_PHOTO',0,'0','chaine',1,'Use old path for products images','2016-01-22 13:34:23'),(5541,'MODULE_GOOGLE_DEBUG',1,'0','chaine',1,'','2016-01-22 13:34:57'),(5586,'MAIN_DELAY_EXPENSEREPORTS_TO_PAY',1,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur les notes de frais impayées','2016-01-22 17:28:18'),(5587,'MAIN_FIX_FOR_BUGGED_MTA',1,'1','chaine',1,'Set constant to fix email ending from PHP with some linux ike system','2016-01-22 17:28:18'),(5590,'MAIN_VERSION_LAST_INSTALL',0,'3.8.3','chaine',0,'Dolibarr version when install','2016-01-22 17:28:42'),(5604,'MAIN_INFO_SOCIETE_LOGO',1,'mybigcompany.png','chaine',0,'','2016-01-22 17:33:49'),(5605,'MAIN_INFO_SOCIETE_LOGO_SMALL',1,'mybigcompany_small.png','chaine',0,'','2016-01-22 17:33:49'),(5606,'MAIN_INFO_SOCIETE_LOGO_MINI',1,'mybigcompany_mini.png','chaine',0,'','2016-01-22 17:33:49'),(5612,'MAIN_ENABLE_LOG_TO_HTML',0,'0','chaine',1,'If this option is set to 1, it is possible to see log output at end of HTML sources by adding paramater logtohtml=1 on URL','2016-03-13 10:54:45'),(5614,'MAIN_SIZE_SHORTLISTE_LIMIT',1,'4','chaine',0,'Longueur maximum des listes courtes (fiche client)','2016-03-13 10:54:46'),(5626,'MAIN_MODULE_SUPPLIERPROPOSAL',1,'1',NULL,0,NULL,'2016-07-30 11:13:20'),(5627,'SUPPLIER_PROPOSAL_ADDON_PDF',1,'aurore','chaine',0,'Name of submodule to generate PDF for supplier quotation request','2016-07-30 11:13:20'),(5628,'SUPPLIER_PROPOSAL_ADDON',1,'mod_supplier_proposal_marbre','chaine',0,'Name of submodule to number supplier quotation request','2016-07-30 11:13:20'),(5629,'SUPPLIER_PROPOSAL_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/supplier_proposal','chaine',0,NULL,'2016-07-30 11:13:20'),(5632,'MAIN_MODULE_RESOURCE',1,'1',NULL,0,NULL,'2016-07-30 11:13:32'),(5633,'MAIN_MODULE_API',1,'1',NULL,0,NULL,'2016-07-30 11:13:54'),(5634,'MAIN_MODULE_WEBSERVICES',1,'1',NULL,0,NULL,'2016-07-30 11:13:56'),(5635,'WEBSERVICES_KEY',1,'dolibarrkey','chaine',0,'','2016-07-30 11:14:04'),(5638,'MAIN_MODULE_EXTERNALRSS',1,'1',NULL,0,NULL,'2016-07-30 11:15:04'),(5639,'EXTERNAL_RSS_TITLE_1',1,'Dolibarr.org News','chaine',0,'','2016-07-30 11:15:25'),(5640,'EXTERNAL_RSS_URLRSS_1',1,'https://www.dolibarr.org/rss','chaine',0,'','2016-07-30 11:15:25'),(5642,'SOCIETE_CODECOMPTA_ADDON',1,'mod_codecompta_aquarium','chaine',0,'','2016-07-30 11:16:42'),(5707,'CASHDESK_NO_DECREASE_STOCK',1,'1','chaine',0,'','2016-07-30 13:38:11'),(5708,'MAIN_MODULE_PRODUCTBATCH',1,'1',NULL,0,NULL,'2016-07-30 13:38:11'),(5710,'MAIN_MODULE_STOCK',1,'1',NULL,0,NULL,'2016-07-30 13:38:11'),(5711,'MAIN_MODULE_PRODUCT',1,'1',NULL,0,NULL,'2016-07-30 13:38:11'),(5712,'MAIN_MODULE_EXPEDITION',1,'1',NULL,0,NULL,'2016-07-30 13:38:11'),(5808,'MARGIN_TYPE',1,'costprice','chaine',0,'','2016-07-30 16:32:18'),(5809,'DISPLAY_MARGIN_RATES',1,'1','chaine',0,'','2016-07-30 16:32:20'),(5810,'MAIN_FEATURES_LEVEL',0,'0','chaine',1,'Level of features to show (0=stable only, 1=stable+experimental, 2=stable+experimental+development','2016-07-30 18:36:15'),(5813,'USER_PASSWORD_PATTERN',1,'8;1;1;1;3;1','chaine',0,'','2016-07-31 16:04:58'),(5814,'MAIN_MODULE_EXPENSEREPORT',1,'1',NULL,0,NULL,'2016-07-31 21:14:32'),(5830,'LOAN_ACCOUNTING_ACCOUNT_CAPITAL',1,'164','chaine',0,NULL,'2017-01-29 15:11:51'),(5831,'LOAN_ACCOUNTING_ACCOUNT_INSURANCE',1,'6162','chaine',0,NULL,'2017-01-29 15:11:51'),(5833,'ACCOUNTING_EXPORT_SEPARATORCSV',1,',','string',0,NULL,'2017-01-29 15:11:56'),(5834,'ACCOUNTING_ACCOUNT_SUSPENSE',1,'471','chaine',0,NULL,'2017-01-29 15:11:56'),(5839,'ACCOUNTING_ACCOUNT_TRANSFER_CASH',1,'58','chaine',0,NULL,'2017-01-29 15:11:56'),(5840,'CHARTOFACCOUNTS',1,'2','chaine',0,NULL,'2017-01-29 15:11:56'),(5841,'ACCOUNTING_EXPORT_MODELCSV',1,'1','chaine',0,NULL,'2017-01-29 15:11:56'),(5842,'ACCOUNTING_LENGTH_GACCOUNT',1,'','chaine',0,NULL,'2017-01-29 15:11:56'),(5843,'ACCOUNTING_LENGTH_AACCOUNT',1,'','chaine',0,NULL,'2017-01-29 15:11:56'),(5844,'ACCOUNTING_LIST_SORT_VENTILATION_TODO',1,'1','yesno',0,NULL,'2017-01-29 15:11:56'),(5845,'ACCOUNTING_LIST_SORT_VENTILATION_DONE',1,'1','yesno',0,NULL,'2017-01-29 15:11:56'),(5846,'ACCOUNTING_EXPORT_DATE',1,'%d%m%Y','chaine',0,NULL,'2017-01-29 15:11:56'),(5848,'ACCOUNTING_EXPORT_FORMAT',1,'csv','chaine',0,NULL,'2017-01-29 15:11:56'),(5853,'MAIN_MODULE_WORKFLOW',1,'1',NULL,0,NULL,'2017-01-29 15:12:12'),(5854,'MAIN_MODULE_NOTIFICATION',1,'1',NULL,0,NULL,'2017-01-29 15:12:35'),(5855,'MAIN_MODULE_OAUTH',1,'1',NULL,0,NULL,'2017-01-29 15:12:41'),(5856,'MAIN_MODULE_PRINTING',1,'1',NULL,0,NULL,'2017-01-29 15:12:44'),(5883,'MAILING_LIMIT_SENDBYWEB',0,'15','chaine',1,'Number of targets to defined packet size when sending mass email','2017-01-29 17:36:33'),(5884,'MAIN_MAIL_DEBUG',1,'0','chaine',1,'','2017-01-29 18:53:02'),(5885,'MAIN_SOAP_DEBUG',1,'0','chaine',1,'','2017-01-29 18:53:02'),(5887,'PROJECT_USE_OPPORTUNITIES',1,'1','chaine',0,'','2017-02-01 12:23:56'),(5888,'PROJECT_HIDE_TASKS',1,'1','chaine',0,'','2017-02-01 12:23:56'),(5889,'MAIN_AGENDA_ACTIONAUTO_COMPANY_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5890,'MAIN_AGENDA_ACTIONAUTO_COMPANY_CREATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5891,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLOSE_REFUSED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5892,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLOSE_SIGNED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5893,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLASSIFY_BILLED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5894,'MAIN_AGENDA_ACTIONAUTO_PROPAL_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5895,'MAIN_AGENDA_ACTIONAUTO_PROPAL_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5896,'MAIN_AGENDA_ACTIONAUTO_ORDER_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5897,'MAIN_AGENDA_ACTIONAUTO_ORDER_CLOSE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5898,'MAIN_AGENDA_ACTIONAUTO_ORDER_CANCEL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5899,'MAIN_AGENDA_ACTIONAUTO_ORDER_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5900,'MAIN_AGENDA_ACTIONAUTO_ORDER_CLASSIFY_BILLED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5901,'MAIN_AGENDA_ACTIONAUTO_BILL_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5902,'MAIN_AGENDA_ACTIONAUTO_BILL_PAYED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5903,'MAIN_AGENDA_ACTIONAUTO_BILL_CANCEL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5904,'MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5905,'MAIN_AGENDA_ACTIONAUTO_BILL_UNVALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5906,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5907,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_APPROVE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5908,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_RECEIVE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5909,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_SUBMIT',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5910,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_REFUSE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5911,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CLASSIFY_BILLED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5912,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5913,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_UNVALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5914,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5915,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_PAYED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5916,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5917,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_CANCELED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5918,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5919,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_REOPEN',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5920,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5921,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5922,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5923,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5924,'MAIN_AGENDA_ACTIONAUTO_MEMBER_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5925,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5926,'MAIN_AGENDA_ACTIONAUTO_MEMBER_MODIFY',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5927,'MAIN_AGENDA_ACTIONAUTO_MEMBER_RESILIATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5928,'MAIN_AGENDA_ACTIONAUTO_MEMBER_DELETE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5929,'MAIN_AGENDA_ACTIONAUTO_PROJECT_CREATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5930,'MAIN_AGENDA_ACTIONAUTO_PROJECT_DELETE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5931,'DATABASE_PWD_ENCRYPTED',1,'1','chaine',0,'','2017-02-01 15:06:04'),(5932,'MAIN_DISABLE_ALL_MAILS',1,'0','chaine',0,'','2017-02-01 15:09:09'),(5933,'MAIN_MAIL_SENDMODE',1,'mail','chaine',0,'','2017-02-01 15:09:09'),(5934,'MAIN_MAIL_SMTP_PORT',1,'465','chaine',0,'','2017-02-01 15:09:09'),(5935,'MAIN_MAIL_SMTP_SERVER',1,'smtp.mail.com','chaine',0,'','2017-02-01 15:09:09'),(5936,'MAIN_MAIL_SMTPS_ID',1,'eldy10@mail.com','chaine',0,'','2017-02-01 15:09:09'),(5937,'MAIN_MAIL_SMTPS_PW',1,'bidonge','chaine',0,'','2017-02-01 15:09:09'),(5938,'MAIN_MAIL_EMAIL_FROM',1,'robot@example.com','chaine',0,'','2017-02-01 15:09:09'),(5939,'MAIN_MAIL_DEFAULT_FROMTYPE',1,'user','chaine',0,'','2017-02-01 15:09:09'),(5940,'PRELEVEMENT_ID_BANKACCOUNT',1,'1','chaine',0,'','2017-02-06 04:04:47'),(5941,'PRELEVEMENT_ICS',1,'ICS123456','chaine',0,'','2017-02-06 04:04:47'),(5942,'PRELEVEMENT_USER',1,'1','chaine',0,'','2017-02-06 04:04:47'),(5943,'BANKADDON_PDF',1,'sepamandate','chaine',0,'','2017-02-06 04:13:52'),(5947,'CHEQUERECEIPTS_THYME_MASK',1,'CHK{yy}{mm}-{0000@1}','chaine',0,'','2017-02-06 04:16:27'),(5948,'MAIN_MODULE_LOAN',1,'1',NULL,0,NULL,'2017-02-06 19:19:05'),(5954,'MAIN_SUBMODULE_EXPEDITION',1,'1','chaine',0,'','2017-02-06 23:57:37'),(5963,'MAIN_MODULE_BANQUE',1,'1',NULL,0,NULL,'2017-02-07 18:56:12'),(5964,'MAIN_MODULE_TAX',1,'1',NULL,0,NULL,'2017-02-07 18:56:12'),(5996,'CABINETMED_RHEUMATOLOGY_ON',1,'0','text',0,'','2018-11-23 11:56:07'),(5999,'MAIN_SEARCHFORM_SOCIETE',1,'1','text',0,'','2018-11-23 11:56:07'),(6000,'CABINETMED_BANK_PATIENT_REQUIRED',1,'0','text',0,'','2018-11-23 11:56:07'),(6019,'MAIN_INFO_SOCIETE_COUNTRY',2,'1:FR:France','chaine',0,'','2017-02-15 17:18:22'),(6020,'MAIN_INFO_SOCIETE_NOM',2,'MySecondCompany','chaine',0,'','2017-02-15 17:18:22'),(6021,'MAIN_INFO_SOCIETE_STATE',2,'0','chaine',0,'','2017-02-15 17:18:22'),(6022,'MAIN_MONNAIE',2,'EUR','chaine',0,'','2017-02-15 17:18:22'),(6023,'MAIN_LANG_DEFAULT',2,'auto','chaine',0,'','2017-02-15 17:18:22'),(6032,'MAIN_MODULE_MULTICURRENCY',1,'1',NULL,0,NULL,'2017-02-15 17:29:59'),(6047,'MAIN_MODULE_SYSLOG',0,'1',NULL,0,NULL,'2017-02-15 22:36:58'),(6048,'SYSLOG_FACILITY',0,'LOG_USER','chaine',0,'','2017-02-15 22:37:01'),(6049,'SYSLOG_FIREPHP_INCLUDEPATH',0,'/home/ldestailleur/git/dolibarr_5.0/htdocs/includes/firephp/firephp-core/lib/','chaine',0,'','2017-02-15 22:37:01'),(6050,'SYSLOG_FILE',0,'DOL_DATA_ROOT/dolibarr.log','chaine',0,'','2017-02-15 22:37:01'),(6051,'SYSLOG_CHROMEPHP_INCLUDEPATH',0,'/home/ldestailleur/git/dolibarr_5.0/htdocs/includes/ccampbell/chromephp/','chaine',0,'','2017-02-15 22:37:01'),(6052,'SYSLOG_HANDLERS',0,'[\"mod_syslog_file\"]','chaine',0,'','2017-02-15 22:37:01'),(6054,'SYSLOG_LEVEL',0,'7','chaine',0,'','2017-02-15 22:37:21'),(6074,'CABINETMED_DELAY_TO_LOCK_RECORD',1,'','chaine',1,'Number of days before locking edit of consultation','2017-02-21 00:04:15'),(6092,'MAIN_SIZE_SHORTLIST_LIMIT',0,'3','chaine',0,'Max length for small lists (tabs)','2017-05-12 09:02:38'),(6099,'MAIN_MODULE_SKYPE',1,'1',NULL,0,NULL,'2017-05-12 09:03:51'),(6100,'MAIN_MODULE_GRAVATAR',1,'1',NULL,0,NULL,'2017-05-12 09:03:54'),(6101,'MAIN_MODULE_ACCOUNTING',1,'1',NULL,0,NULL,'2017-05-12 09:14:30'),(6102,'PRODUCT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/products','chaine',0,'','2017-08-27 13:29:07'),(6103,'CONTRACT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/contracts','chaine',0,'','2017-08-27 13:29:07'),(6104,'USERGROUP_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/usergroups','chaine',0,'','2017-08-27 13:29:07'),(6105,'USER_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/users','chaine',0,'','2017-08-27 13:29:07'),(6106,'MAIN_ENABLE_OVERWRITE_TRANSLATION',1,'1','chaine',0,'Enable overwrote of translation','2017-08-27 13:29:07'),(6108,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CREATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6109,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_CLASSIFY_BILLED',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6110,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_CLASSIFY_UNBILLED',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6111,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_CREATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6112,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_MODIFY',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6113,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_DELETE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6114,'MAIN_AGENDA_ACTIONAUTO_PROJECT_MODIFY',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6115,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_CREATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6116,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_VALIDATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6117,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_APPROVE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6118,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_PAYED',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6119,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_CREATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6120,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_VALIDATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6121,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_APPROVE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6137,'MAIN_LANG_DEFAULT',1,'auto','chaine',0,'','2017-08-28 10:19:58'),(6138,'MAIN_MULTILANGS',1,'1','chaine',0,'','2017-08-28 10:19:58'),(6139,'MAIN_THEME',1,'eldy','chaine',0,'','2017-08-28 10:19:58'),(6140,'THEME_ELDY_USE_HOVER',1,'edf4fb','chaine',0,'','2017-08-28 10:19:58'),(6141,'MAIN_SIZE_LISTE_LIMIT',1,'25','chaine',0,'','2017-08-28 10:19:59'),(6142,'MAIN_SIZE_SHORTLIST_LIMIT',1,'3','chaine',0,'','2017-08-28 10:19:59'),(6143,'MAIN_DISABLE_JAVASCRIPT',1,'0','chaine',0,'','2017-08-28 10:19:59'),(6144,'MAIN_BUTTON_HIDE_UNAUTHORIZED',1,'0','chaine',0,'','2017-08-28 10:19:59'),(6145,'MAIN_START_WEEK',1,'1','chaine',0,'','2017-08-28 10:19:59'),(6146,'MAIN_DEFAULT_WORKING_DAYS',1,'1-5','chaine',0,'','2017-08-28 10:19:59'),(6147,'MAIN_DEFAULT_WORKING_HOURS',1,'9-18','chaine',0,'','2017-08-28 10:19:59'),(6148,'MAIN_SHOW_LOGO',1,'1','chaine',0,'','2017-08-28 10:19:59'),(6149,'MAIN_FIRSTNAME_NAME_POSITION',1,'0','chaine',0,'','2017-08-28 10:19:59'),(6150,'MAIN_HELPCENTER_DISABLELINK',0,'1','chaine',0,'','2017-08-28 10:19:59'),(6151,'MAIN_HOME',1,'<span style=\"font-size:11px\">__(NoteSomeFeaturesAreDisabled)__<br />\r\n<br />\r\n__(SomeTranslationAreUncomplete)__</span>','chaine',0,'','2017-08-28 10:19:59'),(6152,'MAIN_HELP_DISABLELINK',0,'0','chaine',0,'','2017-08-28 10:19:59'),(6153,'MAIN_BUGTRACK_ENABLELINK',1,'0','chaine',0,'','2017-08-28 10:19:59'),(6353,'MAIN_MENU_STANDARD',1,'eldy_menu.php','chaine',0,'','2017-08-30 15:14:44'),(6354,'MAIN_MENU_SMARTPHONE',1,'eldy_menu.php','chaine',0,'','2017-08-30 15:14:44'),(6355,'MAIN_MENUFRONT_STANDARD',1,'eldy_menu.php','chaine',0,'','2017-08-30 15:14:44'),(6356,'MAIN_MENUFRONT_SMARTPHONE',1,'eldy_menu.php','chaine',0,'','2017-08-30 15:14:44'),(6377,'COMMANDE_SAPHIR_MASK',1,'{yy}{mm}{000}{ttt}','chaine',0,'','2017-09-06 07:56:25'),(6461,'MAIN_INFO_SOCIETE_COUNTRY',1,'117:IN:India','chaine',0,'','2017-09-06 08:51:11'),(6462,'MAIN_INFO_SOCIETE_NOM',1,'MyBigCompany','chaine',0,'','2017-09-06 08:51:11'),(6463,'MAIN_INFO_SOCIETE_ADDRESS',1,'21 Jump street..ll..ee \"','chaine',0,'','2017-09-06 08:51:11'),(6464,'MAIN_INFO_SOCIETE_TOWN',1,'MyTown','chaine',0,'','2017-09-06 08:51:12'),(6465,'MAIN_INFO_SOCIETE_ZIP',1,'75500','chaine',0,'','2017-09-06 08:51:12'),(6466,'MAIN_INFO_SOCIETE_STATE',1,'290','chaine',0,'','2017-09-06 08:51:12'),(6467,'MAIN_MONNAIE',1,'EUR','chaine',0,'','2017-09-06 08:51:12'),(6468,'MAIN_INFO_SOCIETE_TEL',1,'09123123','chaine',0,'','2017-09-06 08:51:12'),(6469,'MAIN_INFO_SOCIETE_FAX',1,'09123124','chaine',0,'','2017-09-06 08:51:12'),(6470,'MAIN_INFO_SOCIETE_MAIL',1,'myemail@mybigcompany.com','chaine',0,'','2017-09-06 08:51:12'),(6471,'MAIN_INFO_SOCIETE_WEB',1,'https://www.dolibarr.org','chaine',0,'','2017-09-06 08:51:12'),(6472,'MAIN_INFO_SOCIETE_NOTE',1,'This is note about my company\r\n\"ee\"','chaine',0,'','2017-09-06 08:51:12'),(6473,'MAIN_INFO_SOCIETE_GENCOD',1,'1234567890','chaine',0,'','2017-09-06 08:51:12'),(6474,'MAIN_INFO_SOCIETE_MANAGERS',1,'Zack Zeceo','chaine',0,'','2017-09-06 08:51:12'),(6475,'MAIN_INFO_CAPITAL',1,'10000','chaine',0,'','2017-09-06 08:51:12'),(6476,'MAIN_INFO_SOCIETE_FORME_JURIDIQUE',1,'0','chaine',0,'','2017-09-06 08:51:12'),(6477,'MAIN_INFO_SIREN',1,'123456','chaine',0,'','2017-09-06 08:51:12'),(6478,'MAIN_INFO_SIRET',1,'1','chaine',0,'','2017-09-06 08:51:12'),(6479,'MAIN_INFO_APE',1,'1','chaine',0,'','2017-09-06 08:51:12'),(6480,'MAIN_INFO_RCS',1,'1','chaine',0,'','2017-09-06 08:51:12'),(6481,'MAIN_INFO_PROFID5',1,'1','chaine',0,'','2017-09-06 08:51:12'),(6482,'MAIN_INFO_TVAINTRA',1,'FR1234567','chaine',0,'','2017-09-06 08:51:12'),(6483,'MAIN_INFO_SOCIETE_OBJECT',1,'A company demo to show how Dolibarr ERP CRM is wonderfull','chaine',0,'','2017-09-06 08:51:12'),(6484,'SOCIETE_FISCAL_MONTH_START',1,'4','chaine',0,'','2017-09-06 08:51:12'),(6485,'FACTURE_TVAOPTION',1,'1','chaine',0,'','2017-09-06 08:51:12'),(6486,'FACTURE_LOCAL_TAX1_OPTION',1,'localtax1on','chaine',0,'','2017-09-06 08:51:12'),(6487,'FACTURE_LOCAL_TAX2_OPTION',1,'localtax2on','chaine',0,'','2017-09-06 08:51:12'),(6488,'MAIN_INFO_VALUE_LOCALTAX1',1,'0','chaine',0,'','2017-09-06 08:51:12'),(6489,'MAIN_INFO_LOCALTAX_CALC1',1,'0','chaine',0,'','2017-09-06 08:51:12'),(6490,'MAIN_INFO_VALUE_LOCALTAX2',1,'0','chaine',0,'','2017-09-06 08:51:12'),(6491,'MAIN_INFO_LOCALTAX_CALC2',1,'0','chaine',0,'','2017-09-06 08:51:12'),(6518,'GOOGLE_DUPLICATE_INTO_THIRDPARTIES',1,'1','chaine',0,'','2017-09-06 19:43:57'),(6519,'GOOGLE_DUPLICATE_INTO_CONTACTS',1,'0','chaine',0,'','2017-09-06 19:43:57'),(6520,'GOOGLE_TAG_PREFIX',1,'Dolibarr (Thirdparties)','chaine',0,'','2017-09-06 19:43:57'),(6521,'GOOGLE_TAG_PREFIX_CONTACTS',1,'Dolibarr (Contacts/Addresses)','chaine',0,'','2017-09-06 19:43:57'),(6522,'GOOGLE_ENABLE_AGENDA',1,'1','chaine',0,'','2017-09-06 19:44:12'),(6523,'GOOGLE_AGENDA_COLOR1',1,'1B887A','chaine',0,'','2017-09-06 19:44:12'),(6524,'GOOGLE_AGENDA_COLOR2',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6525,'GOOGLE_AGENDA_COLOR3',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6526,'GOOGLE_AGENDA_COLOR4',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6527,'GOOGLE_AGENDA_COLOR5',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6528,'GOOGLE_AGENDA_TIMEZONE',1,'Europe/Paris','chaine',0,'','2017-09-06 19:44:12'),(6529,'GOOGLE_AGENDA_NB',1,'5','chaine',0,'','2017-09-06 19:44:12'),(6543,'MAIN_SMS_DEBUG',0,'1','chaine',1,'This is to enable OVH SMS debug','2017-09-06 19:44:34'),(6562,'BLOCKEDLOG_ENTITY_FINGERPRINT',1,'b63e359ffca54d5c2bab869916eaf23d4a736703028ccbf77ce1167c5f830e7b','chaine',0,'Numeric Unique Fingerprint','2018-01-19 11:27:15'),(6564,'BLOCKEDLOG_DISABLE_NOT_ALLOWED_FOR_COUNTRY',1,'FR','chaine',0,'This is list of country code where the module may be mandatory','2018-01-19 11:27:15'),(6565,'MAIN_MODULE_BOOKMARK',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:27:34'),(6566,'MAIN_MODULE_ADHERENT',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:27:56'),(6567,'ADHERENT_ADDON_PDF',1,'standard','chaine',0,'Name of PDF model of member','2018-01-19 11:27:56'),(6568,'MAIN_MODULE_VARIANTS',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:28:04'),(6569,'MAIN_MODULE_STRIPE',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:28:17'),(6570,'MAIN_MODULE_AGENDA',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6571,'MAIN_MODULE_BARCODE',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6572,'MAIN_MODULE_CRON',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6573,'MAIN_MODULE_COMMANDE',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6574,'MAIN_MODULE_DON',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6575,'MAIN_MODULE_ECM',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6576,'MAIN_MODULE_FACTURE',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6577,'MAIN_MODULE_FOURNISSEUR',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6578,'MAIN_MODULE_HOLIDAY',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6579,'MAIN_MODULE_HOLIDAY_TABS_0',1,'user:+paidholidays:CPTitreMenu:holiday:$user->rights->holiday->read:/holiday/list.php?mainmenu=hrm&id=__ID__','chaine',0,NULL,'2018-03-16 09:54:05'),(6580,'MAIN_MODULE_OPENSURVEY',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6581,'MAIN_MODULE_SOCIETE',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6582,'MAIN_MODULE_SERVICE',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6583,'MAIN_MODULE_USER',0,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6584,'MAIN_MODULE_SALARIES',1,'1',NULL,0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-03-16 09:54:05'),(6587,'MAIN_MODULE_BLOCKEDLOG',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2018-03-16 09:57:24'),(6588,'MAIN_VERSION_LAST_UPGRADE',0,'8.0.0','chaine',0,'Dolibarr version for last upgrade','2018-11-23 11:56:17');
    +/*!40000 ALTER TABLE `llx_const` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_contrat`
    +--
    +
    +DROP TABLE IF EXISTS `llx_contrat`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_contrat` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_supplier` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `date_contrat` datetime DEFAULT NULL,
    +  `statut` smallint(6) DEFAULT '0',
    +  `mise_en_service` datetime DEFAULT NULL,
    +  `fin_validite` datetime DEFAULT NULL,
    +  `date_cloture` datetime DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `fk_commercial_signature` int(11) DEFAULT NULL,
    +  `fk_commercial_suivi` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL DEFAULT '0',
    +  `fk_user_mise_en_service` int(11) DEFAULT NULL,
    +  `fk_user_cloture` int(11) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_customer` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_contrat_ref` (`ref`,`entity`),
    +  KEY `idx_contrat_fk_soc` (`fk_soc`),
    +  KEY `idx_contrat_fk_user_author` (`fk_user_author`),
    +  CONSTRAINT `fk_contrat_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_contrat_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_contrat`
    +--
    +
    +LOCK TABLES `llx_contrat` WRITE;
    +/*!40000 ALTER TABLE `llx_contrat` DISABLE KEYS */;
    +INSERT INTO `llx_contrat` VALUES (1,'CONTRACT1',NULL,NULL,1,'2010-07-08 23:53:55','2010-07-09 01:53:25','2010-07-09 00:00:00',1,NULL,NULL,NULL,3,NULL,2,2,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,'CONTRAT1',NULL,NULL,1,'2010-07-10 16:18:16','2010-07-10 18:13:37','2010-07-10 00:00:00',1,NULL,NULL,NULL,2,NULL,2,2,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'CT1303-0001',NULL,NULL,1,'2013-03-06 09:05:07','2013-03-06 10:04:57','2013-03-06 00:00:00',1,NULL,NULL,NULL,19,NULL,1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_contrat` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_contrat_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_contrat_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_contrat_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_contrat_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_contrat_extrafields`
    +--
    +
    +LOCK TABLES `llx_contrat_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_contrat_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_contrat_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_contratdet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_contratdet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_contratdet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_contrat` int(11) NOT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `statut` smallint(6) DEFAULT '0',
    +  `label` text COLLATE utf8_unicode_ci,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_remise_except` int(11) DEFAULT NULL,
    +  `date_commande` datetime DEFAULT NULL,
    +  `date_ouverture_prevue` datetime DEFAULT NULL,
    +  `date_ouverture` datetime DEFAULT NULL,
    +  `date_fin_validite` datetime DEFAULT NULL,
    +  `date_cloture` datetime DEFAULT NULL,
    +  `tva_tx` double(6,3) DEFAULT '0.000',
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double NOT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `price_ht` double DEFAULT NULL,
    +  `remise` double DEFAULT '0',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `product_type` int(11) DEFAULT '1',
    +  `info_bits` int(11) DEFAULT '0',
    +  `fk_product_fournisseur_price` int(11) DEFAULT NULL,
    +  `buy_price_ht` double(24,8) DEFAULT '0.00000000',
    +  `fk_user_author` int(11) NOT NULL DEFAULT '0',
    +  `fk_user_ouverture` int(11) DEFAULT NULL,
    +  `fk_user_cloture` int(11) DEFAULT NULL,
    +  `commentaire` text COLLATE utf8_unicode_ci,
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_contratdet_fk_contrat` (`fk_contrat`),
    +  KEY `idx_contratdet_fk_product` (`fk_product`),
    +  KEY `idx_contratdet_date_ouverture_prevue` (`date_ouverture_prevue`),
    +  KEY `idx_contratdet_date_ouverture` (`date_ouverture`),
    +  KEY `idx_contratdet_date_fin_validite` (`date_fin_validite`),
    +  KEY `fk_contratdet_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_contratdet_fk_contrat` FOREIGN KEY (`fk_contrat`) REFERENCES `llx_contrat` (`rowid`),
    +  CONSTRAINT `fk_contratdet_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`),
    +  CONSTRAINT `fk_contratdet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_contratdet`
    +--
    +
    +LOCK TABLES `llx_contratdet` WRITE;
    +/*!40000 ALTER TABLE `llx_contratdet` DISABLE KEYS */;
    +INSERT INTO `llx_contratdet` VALUES (1,'2013-03-06 09:00:00',1,3,4,'','',NULL,NULL,'2010-07-09 00:00:00','2010-07-09 12:00:00','2013-03-15 00:00:00',NULL,0.000,'',0.000,'',0.000,'',1,0,0.00000000,0,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,0,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(2,'2010-07-10 16:14:14',2,NULL,0,'','Abonnement annuel assurance',NULL,NULL,'2010-07-10 00:00:00',NULL,'2011-07-10 00:00:00',NULL,1.000,'',0.000,'',0.000,'',1,0,10.00000000,10,0,10.00000000,0.10000000,0.00000000,0.00000000,10.10000000,1,0,NULL,0.00000000,0,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(3,'2013-03-05 10:20:58',2,3,5,'','gdfg',NULL,NULL,'2010-07-10 00:00:00','2010-07-10 12:00:00','2011-07-09 00:00:00','2013-03-06 12:00:00',4.000,'',0.000,'',0.000,'',1,0,0.00000000,0,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,0,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(4,'2012-12-08 13:11:17',2,3,0,'','',NULL,NULL,'2010-07-10 00:00:00',NULL,NULL,NULL,0.000,'',0.000,'',0.000,'',1,10,40.00000000,40,NULL,36.00000000,0.00000000,0.00000000,0.00000000,36.00000000,1,0,NULL,0.00000000,0,NULL,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(5,'2013-03-06 09:05:40',3,NULL,4,'','gfdg',NULL,NULL,NULL,'2013-03-06 12:00:00','2013-03-07 12:00:00',NULL,0.000,'',0.000,'',0.000,'',1,0,10.00000000,10,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,0,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000);
    +/*!40000 ALTER TABLE `llx_contratdet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_contratdet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_contratdet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_contratdet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_contratdet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_contratdet_extrafields`
    +--
    +
    +LOCK TABLES `llx_contratdet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_contratdet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_contratdet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_contratdet_log`
    +--
    +
    +DROP TABLE IF EXISTS `llx_contratdet_log`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_contratdet_log` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_contratdet` int(11) NOT NULL,
    +  `date` datetime NOT NULL,
    +  `statut` smallint(6) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `commentaire` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_contratdet_log_fk_contratdet` (`fk_contratdet`),
    +  KEY `idx_contratdet_log_date` (`date`),
    +  CONSTRAINT `fk_contratdet_log_fk_contratdet` FOREIGN KEY (`fk_contratdet`) REFERENCES `llx_contratdet` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_contratdet_log`
    +--
    +
    +LOCK TABLES `llx_contratdet_log` WRITE;
    +/*!40000 ALTER TABLE `llx_contratdet_log` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_contratdet_log` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_cotisation`
    +--
    +
    +DROP TABLE IF EXISTS `llx_cotisation`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_cotisation` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_adherent` int(11) DEFAULT NULL,
    +  `dateadh` datetime DEFAULT NULL,
    +  `datef` date DEFAULT NULL,
    +  `cotisation` double DEFAULT NULL,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_cotisation` (`fk_adherent`,`dateadh`)
    +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_cotisation`
    +--
    +
    +LOCK TABLES `llx_cotisation` WRITE;
    +/*!40000 ALTER TABLE `llx_cotisation` DISABLE KEYS */;
    +INSERT INTO `llx_cotisation` VALUES (1,'2010-07-10 13:05:30','2010-07-10 15:05:30',2,'2010-07-10 00:00:00','2011-07-10',20,NULL,'Adhésion/cotisation 2010'),(2,'2010-07-11 14:20:00','2010-07-11 16:20:00',2,'2011-07-11 00:00:00','2012-07-10',10,NULL,'Adhésion/cotisation 2011'),(3,'2010-07-18 10:20:33','2010-07-18 12:20:33',2,'2012-07-11 00:00:00','2013-07-17',10,NULL,'Adhésion/cotisation 2012'),(4,'2013-03-06 15:43:37','2013-03-06 16:43:37',2,'2013-07-18 00:00:00','2014-07-17',10,NULL,'Adhésion/cotisation 2013'),(5,'2013-03-06 15:44:12','2013-03-06 16:44:12',2,'2014-07-18 00:00:00','2015-07-17',11,NULL,'Adhésion/cotisation 2014'),(6,'2013-03-06 15:47:48','2013-03-06 16:47:48',2,'2015-07-18 00:00:00','2016-07-17',10,NULL,'Adhésion/cotisation 2015'),(7,'2013-03-06 15:48:16','2013-03-06 16:48:16',2,'2016-07-18 00:00:00','2017-07-17',20,22,'Adhésion/cotisation 2016'),(8,'2013-03-20 13:17:57','2013-03-20 14:17:57',1,'2010-07-10 00:00:00','2011-07-09',10,NULL,'Adhésion/cotisation 2010'),(10,'2013-03-20 13:30:11','2013-03-20 14:30:11',1,'2011-07-10 00:00:00','2012-07-09',10,23,'Adhésion/cotisation 2011');
    +/*!40000 ALTER TABLE `llx_cotisation` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_cronjob`
    +--
    +
    +DROP TABLE IF EXISTS `llx_cronjob`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_cronjob` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `jobtype` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` text COLLATE utf8_unicode_ci NOT NULL,
    +  `command` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `classesname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `objectname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `methodename` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `params` text COLLATE utf8_unicode_ci,
    +  `md5params` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `module_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `priority` int(11) DEFAULT '0',
    +  `datelastrun` datetime DEFAULT NULL,
    +  `datenextrun` datetime DEFAULT NULL,
    +  `datestart` datetime DEFAULT NULL,
    +  `dateend` datetime DEFAULT NULL,
    +  `datelastresult` datetime DEFAULT NULL,
    +  `lastresult` text COLLATE utf8_unicode_ci,
    +  `lastoutput` text COLLATE utf8_unicode_ci,
    +  `unitfrequency` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '3600',
    +  `frequency` int(11) NOT NULL DEFAULT '0',
    +  `nbrun` int(11) DEFAULT NULL,
    +  `status` int(11) NOT NULL DEFAULT '1',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `libname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) DEFAULT '0',
    +  `maxrun` int(11) NOT NULL DEFAULT '0',
    +  `autodelete` int(11) DEFAULT '0',
    +  `fk_mailing` int(11) DEFAULT NULL,
    +  `test` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  `processing` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_cronjob`
    +--
    +
    +LOCK TABLES `llx_cronjob` WRITE;
    +/*!40000 ALTER TABLE `llx_cronjob` DISABLE KEYS */;
    +INSERT INTO `llx_cronjob` VALUES (1,'2013-03-23 18:18:39','2013-03-23 19:18:39','command','aaa','aaaa','','','','','','',0,NULL,NULL,'2013-03-23 19:18:00',NULL,NULL,NULL,NULL,'3600',3600,0,0,1,1,'',NULL,0,0,0,NULL,'1',0),(36,'2018-03-16 09:54:05','2018-03-16 13:54:05','method','SendEmailsReminders',NULL,'comm/action/class/actioncomm.class.php','ActionComm','sendEmailsReminder',NULL,NULL,'agenda',10,NULL,NULL,'2018-03-16 13:54:05',NULL,NULL,NULL,NULL,'60',10,NULL,1,NULL,NULL,'SendEMailsReminder',NULL,1,0,0,NULL,'1',0),(37,'2018-03-16 09:54:05','2018-03-16 13:54:05','method','PurgeDeleteTemporaryFilesShort',NULL,'core/class/utils.class.php','Utils','purgeFiles',NULL,NULL,'cron',50,NULL,NULL,'2018-03-16 13:54:05',NULL,NULL,NULL,NULL,'604800',2,NULL,1,NULL,NULL,'PurgeDeleteTemporaryFiles',NULL,1,0,0,NULL,'1',0),(38,'2018-03-16 09:54:05','2018-03-16 13:54:05','method','MakeLocalDatabaseDumpShort',NULL,'core/class/utils.class.php','Utils','dumpDatabase','none,auto,1,auto,10',NULL,'cron',90,NULL,NULL,'2018-03-16 13:54:05',NULL,NULL,NULL,NULL,'604800',1,NULL,0,NULL,NULL,'MakeLocalDatabaseDump',NULL,1,0,0,NULL,'1',0),(39,'2018-03-16 09:54:05','2018-03-16 13:54:05','method','RecurringInvoices',NULL,'compta/facture/class/facture-rec.class.php','FactureRec','createRecurringInvoices',NULL,NULL,'facture',50,NULL,NULL,'2018-03-16 13:54:05',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Generate recurring invoices',NULL,1,0,0,NULL,'1',0);
    +/*!40000 ALTER TABLE `llx_cronjob` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_default_values`
    +--
    +
    +DROP TABLE IF EXISTS `llx_default_values`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_default_values` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `user_id` int(11) NOT NULL DEFAULT '0',
    +  `page` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `param` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `value` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_default_values` (`type`,`entity`,`user_id`,`page`,`param`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_default_values`
    +--
    +
    +LOCK TABLES `llx_default_values` WRITE;
    +/*!40000 ALTER TABLE `llx_default_values` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_default_values` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_deplacement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_deplacement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_deplacement` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `dated` datetime DEFAULT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `type` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_statut` int(11) NOT NULL DEFAULT '1',
    +  `km` double DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT '0',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_deplacement`
    +--
    +
    +LOCK TABLES `llx_deplacement` WRITE;
    +/*!40000 ALTER TABLE `llx_deplacement` DISABLE KEYS */;
    +INSERT INTO `llx_deplacement` VALUES (1,NULL,1,'2010-07-09 01:58:04','2010-07-08 23:58:18','2010-07-09 12:00:00',2,1,NULL,'TF_LUNCH',1,10,2,1,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_deplacement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_document_model`
    +--
    +
    +DROP TABLE IF EXISTS `llx_document_model`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_document_model` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `nom` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `type` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_document_model` (`nom`,`type`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=304 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_document_model`
    +--
    +
    +LOCK TABLES `llx_document_model` WRITE;
    +/*!40000 ALTER TABLE `llx_document_model` DISABLE KEYS */;
    +INSERT INTO `llx_document_model` VALUES (9,'merou',1,'shipping',NULL,NULL),(181,'generic_invoice_odt',1,'invoice','ODT templates','FACTURE_ADDON_PDF_ODT_PATH'),(193,'canelle2',1,'invoice_supplier','canelle2',NULL),(195,'canelle',1,'invoice_supplier','canelle',NULL),(198,'azur',2,'propal',NULL,NULL),(199,'html_cerfafr',2,'donation',NULL,NULL),(200,'crabe',2,'invoice',NULL,NULL),(201,'generic_odt',1,'company','ODT templates','COMPANY_ADDON_PDF_ODT_PATH'),(250,'baleine',1,'project',NULL,NULL),(255,'soleil',1,'ficheinter',NULL,NULL),(256,'azur',1,'propal',NULL,NULL),(270,'aurore',1,'supplier_proposal',NULL,NULL),(273,'beluga',1,'project','beluga',NULL),(274,'rouget',1,'shipping',NULL,NULL),(275,'typhon',1,'delivery',NULL,NULL),(278,'standard',1,'expensereport',NULL,NULL),(281,'sepamandate',1,'bankaccount','sepamandate',NULL),(299,'standard',1,'member',NULL,NULL),(300,'einstein',1,'order',NULL,NULL),(301,'html_cerfafr',1,'donation',NULL,NULL),(302,'crabe',1,'invoice',NULL,NULL),(303,'muscadet',1,'order_supplier',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_document_model` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_don`
    +--
    +
    +DROP TABLE IF EXISTS `llx_don`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_don` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `datec` datetime DEFAULT NULL,
    +  `datedon` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_payment` int(11) DEFAULT NULL,
    +  `paid` smallint(6) NOT NULL DEFAULT '0',
    +  `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `societe` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` text COLLATE utf8_unicode_ci,
    +  `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `country` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_country` int(11) NOT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone_mobile` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `public` smallint(6) NOT NULL DEFAULT '1',
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_don`
    +--
    +
    +LOCK TABLES `llx_don` WRITE;
    +/*!40000 ALTER TABLE `llx_don` DISABLE KEYS */;
    +INSERT INTO `llx_don` VALUES (1,NULL,1,'2010-07-08 23:57:17',1,'2010-07-09 01:55:33','2010-07-09 12:00:00',10.00000000,1,0,'Donator','','Guest company','','','','France',0,'',NULL,NULL,1,1,1,1,'',NULL,'html_cerfafr',NULL,NULL,NULL),(2,NULL,1,'2017-02-06 04:05:29',0,'2017-02-06 08:05:29','2017-02-06 12:00:00',100.00000000,NULL,0,'','','','','','',NULL,0,'','','',1,NULL,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,NULL,1,'2017-09-06 16:18:19',2,'2017-09-06 20:05:17','2017-09-06 12:00:00',10.00000000,NULL,0,'','','','','','',NULL,0,'','','',1,NULL,12,12,NULL,NULL,'html_cerfafr',NULL,NULL,NULL),(4,NULL,1,'2017-09-06 16:07:07',1,'2017-09-06 20:06:59','2017-09-06 12:00:00',10.00000000,NULL,0,'','','','','','',NULL,117,'','','',1,NULL,12,12,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_don` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_don_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_don_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_don_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_don_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_don_extrafields`
    +--
    +
    +LOCK TABLES `llx_don_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_don_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_don_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ecm_directories`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ecm_directories`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ecm_directories` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_parent` int(11) DEFAULT NULL,
    +  `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `cachenbofdoc` int(11) NOT NULL DEFAULT '0',
    +  `fullpath` varchar(750) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_c` datetime DEFAULT NULL,
    +  `date_m` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_c` int(11) DEFAULT NULL,
    +  `fk_user_m` int(11) DEFAULT NULL,
    +  `acl` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_ecm_directories` (`label`,`fk_parent`,`entity`),
    +  KEY `idx_ecm_directories_fk_user_c` (`fk_user_c`),
    +  KEY `idx_ecm_directories_fk_user_m` (`fk_user_m`),
    +  CONSTRAINT `fk_ecm_directories_fk_user_c` FOREIGN KEY (`fk_user_c`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_ecm_directories_fk_user_m` FOREIGN KEY (`fk_user_m`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ecm_directories`
    +--
    +
    +LOCK TABLES `llx_ecm_directories` WRITE;
    +/*!40000 ALTER TABLE `llx_ecm_directories` DISABLE KEYS */;
    +INSERT INTO `llx_ecm_directories` VALUES (8,'Administrative documents',1,0,'Directory to store administrative contacts',0,NULL,NULL,'2016-07-30 16:54:41','2016-07-30 12:54:41',12,NULL,NULL),(9,'Images',1,0,'',34,NULL,NULL,'2016-07-30 16:55:33','2016-07-30 13:24:41',12,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_ecm_directories` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ecm_files`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ecm_files`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ecm_files` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `share` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `filename` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `filepath` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fullpath_orig` varchar(750) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `keywords` text COLLATE utf8_unicode_ci,
    +  `cover` text COLLATE utf8_unicode_ci,
    +  `gen_or_uploaded` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_c` datetime DEFAULT NULL,
    +  `date_m` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_c` int(11) DEFAULT NULL,
    +  `fk_user_m` int(11) DEFAULT NULL,
    +  `acl` text COLLATE utf8_unicode_ci,
    +  `position` int(11) DEFAULT NULL,
    +  `keyword` varchar(750) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `src_object_type` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `src_object_id` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_ecm_files` (`filepath`,`filename`,`entity`),
    +  KEY `idx_ecm_files_label` (`label`)
    +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ecm_files`
    +--
    +
    +LOCK TABLES `llx_ecm_files` WRITE;
    +/*!40000 ALTER TABLE `llx_ecm_files` DISABLE KEYS */;
    +INSERT INTO `llx_ecm_files` VALUES (1,NULL,'6ff09d1c53ef83fe622b02a320bcfa52',NULL,1,'FA1107-0019.pdf','facture/FA1107-0019','/home/ldestailleur/git/dolibarr_6.0/documents/facture/FA1107-0019/FA1107-0019.pdf','',NULL,NULL,'unknown',NULL,'2017-08-30 15:53:34','2017-08-30 11:53:34',18,NULL,NULL,1,NULL,NULL,NULL),(2,NULL,'a6c8a0f04af73e4dfc059006d7a5f55a',NULL,1,'FA1107-0019_invoice.odt','facture/FA1107-0019','/home/ldestailleur/git/dolibarr_6.0/documents/facture/FA1107-0019/FA1107-0019_invoice.odt','',NULL,NULL,'unknown',NULL,'2017-08-30 15:53:34','2017-08-30 11:53:34',18,NULL,NULL,2,NULL,NULL,NULL),(3,NULL,'24e96a4a0da25d1ac5049ea46d031d3a',NULL,1,'FA1107-0019-depotFacture-1418-INH-N000289-20170720.pdf','facture/FA1107-0019','depotFacture-1418-INH-N000289-20170720.pdf','',NULL,NULL,'uploaded',NULL,'2017-08-30 15:54:45','2017-08-30 11:54:45',18,NULL,NULL,3,NULL,NULL,NULL),(4,NULL,'91a42a4e2c77e826562c83fa84f6fccd',NULL,1,'CO7001-0027-acces-coopinfo.txt','commande/CO7001-0027','acces-coopinfo.txt','',NULL,NULL,'uploaded',NULL,'2017-08-30 16:02:33','2017-08-30 12:02:33',18,NULL,NULL,1,NULL,NULL,NULL),(5,'5fe17a68b2f6a73e6326f77fa7b6586c','a60cad66c6da948eb08d5b939f3516ff',NULL,1,'FA1601-0024.pdf','facture/FA1601-0024','','',NULL,NULL,'generated',NULL,'2017-08-30 16:23:01','2018-03-16 09:59:31',12,12,NULL,1,NULL,NULL,NULL),(6,NULL,'24e96a4a0da25d1ac5049ea46d031d3a',NULL,1,'FA1601-0024-depotFacture-1418-INH-N000289-20170720.pdf','facture/FA1601-0024','depotFacture-1418-INH-N000289-20170720.pdf','',NULL,NULL,'uploaded',NULL,'2017-08-30 16:23:14','2017-08-30 12:23:14',12,NULL,NULL,2,NULL,NULL,NULL),(7,NULL,'d41d8cd98f00b204e9800998ecf8427e',NULL,1,'Exxxqqqw','produit/COMP-XP4523','/home/ldestailleur/git/dolibarr_6.0/documents/produit/COMP-XP4523/Exxxqqqw','',NULL,NULL,'unknown',NULL,'2017-08-30 19:03:15','2017-08-30 15:04:02',12,NULL,NULL,2,NULL,NULL,NULL),(8,NULL,'8245ba8e8e345655f06cd904d7d54f73',NULL,1,'compxp4523product.jpg','produit/COMP-XP4523','/home/ldestailleur/git/dolibarr_6.0/documents/produit/COMP-XP4523/compxp4523product.jpg','',NULL,NULL,'unknown',NULL,'2017-08-30 19:03:15','2017-08-30 15:04:02',12,NULL,NULL,1,NULL,NULL,NULL),(9,NULL,'d32552ee874c82b9f0ccab4f309b4b61',NULL,1,'dolihelp.ico','produit/COMP-XP4523','/home/ldestailleur/git/dolibarr_6.0/documents/produit/COMP-XP4523/dolihelp.ico','',NULL,NULL,'unknown',NULL,'2017-08-30 19:03:15','2017-08-30 15:03:15',12,NULL,NULL,3,NULL,NULL,NULL),(10,'afef987559622d6334fdc4a9a134c435','ccd46bbf3ab6c78588a0ba775106258f',NULL,1,'rolluproduct.jpg','produit/ROLLUPABC','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/ROLLUPABC/rolluproduct.jpg','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(11,'a8bbc6c6daea9a4dd58d6fb37a77a030','2f1f2ea4b1b4eb9f25ba440c7870ffcd',NULL,1,'dolicloud_logo.png','produit/DOLICLOUD','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/DOLICLOUD/dolicloud_logo.png','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(12,'bd0951e23023b22ad1cd21fe33ee46bf','03f0be1249e56fd0b3dd02d5545e3675',NULL,1,'applepieproduct.jpg','produit/CAKECONTRIB','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/CAKECONTRIB/applepieproduct.jpg','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(13,'e9e029e2d2bbd014162c0b385ab8739a','b7446fb7b54a3085ff7167e2c5b370fd',NULL,1,'pearpieproduct.jpg','produit/PEARPIE','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/PEARPIE/pearpieproduct.jpg','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(14,'14eea962fb99dc6dd8ca4474c519f837','973b1603b5eb01aac97eb2d911f4c341',NULL,1,'pinkdressproduct.jpg','produit/PINKDRESS','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/PINKDRESS/pinkdressproduct.jpg','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(15,'83616b4ec45e835526144ce114979f49','2adadd910fe97a07bd5be0f1f27f2d28',NULL,1,'dolidroid_114x114.png','produit/DOLIDROID','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/DOLIDROID/dolidroid_114x114.png','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(16,'6b11123918f12440cac5fa3c3190d2d6','8a0bc12d0e579a5a56e299a1a128ba80',NULL,1,'dolidroid_512x512_en.png','produit/DOLIDROID','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/DOLIDROID/dolidroid_512x512_en.png','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,2,NULL,NULL,NULL),(17,'5c0ceed2d113af84868710c940e1a921','246708ef260d601dcfa367a6b3258ecf',NULL,1,'dolidroid_screenshot_home_720x1280.png','produit/DOLIDROID','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/DOLIDROID/dolidroid_screenshot_home_720x1280.png','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,3,NULL,NULL,NULL),(18,'1972b3da7908b3e08247e6e23bb7bdc3','03f0be1249e56fd0b3dd02d5545e3675',NULL,1,'applepieproduct.jpg','produit/APPLEPIE','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/APPLEPIE/applepieproduct.jpg','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_ecm_files` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ecommerce_category`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ecommerce_category`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ecommerce_category` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` tinyint(4) NOT NULL DEFAULT '1',
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_category` int(11) NOT NULL,
    +  `fk_site` int(11) NOT NULL,
    +  `remote_id` int(11) NOT NULL,
    +  `remote_parent_id` int(11) DEFAULT NULL,
    +  `last_update` datetime DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_ecommerce_category_fk_site_fk_category` (`fk_site`,`fk_category`),
    +  KEY `idx_ecommerce_category_fk_category` (`fk_category`),
    +  KEY `idx_ecommerce_category_fk_site` (`fk_site`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2268 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Table transition remote site -  Dolibarr';
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ecommerce_category`
    +--
    +
    +LOCK TABLES `llx_ecommerce_category` WRITE;
    +/*!40000 ALTER TABLE `llx_ecommerce_category` DISABLE KEYS */;
    +INSERT INTO `llx_ecommerce_category` VALUES (2260,'Default Category',0,'',35,2,2,1,'2015-09-22 14:46:27'),(2261,'categ1',0,'',36,2,3,2,'2015-09-23 14:53:15'),(2262,'categ1-a',0,'',37,2,6,3,'2016-09-25 15:11:47'),(2263,'categ1-b',0,'',38,2,7,3,'2015-09-23 14:45:50'),(2264,'categ2',0,'',39,2,4,1,'2015-09-23 14:45:54'),(2265,'categxxx',0,'',40,2,8,4,'2015-09-23 16:53:22'),(2266,'root2',0,'',41,2,9,1,'2015-09-23 16:53:31'),(2267,'root2-b',0,'',42,2,10,9,'2015-09-23 16:53:41');
    +/*!40000 ALTER TABLE `llx_ecommerce_category` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_element_contact`
    +--
    +
    +DROP TABLE IF EXISTS `llx_element_contact`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_element_contact` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datecreate` datetime DEFAULT NULL,
    +  `statut` smallint(6) DEFAULT '5',
    +  `element_id` int(11) NOT NULL,
    +  `fk_c_type_contact` int(11) NOT NULL,
    +  `fk_socpeople` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_element_contact_idx1` (`element_id`,`fk_c_type_contact`,`fk_socpeople`),
    +  KEY `fk_element_contact_fk_c_type_contact` (`fk_c_type_contact`),
    +  KEY `idx_element_contact_fk_socpeople` (`fk_socpeople`),
    +  CONSTRAINT `fk_element_contact_fk_c_type_contact` FOREIGN KEY (`fk_c_type_contact`) REFERENCES `llx_c_type_contact` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_element_contact`
    +--
    +
    +LOCK TABLES `llx_element_contact` WRITE;
    +/*!40000 ALTER TABLE `llx_element_contact` DISABLE KEYS */;
    +INSERT INTO `llx_element_contact` VALUES (1,'2010-07-09 00:49:43',4,1,160,1),(2,'2010-07-09 00:49:56',4,2,160,1),(3,'2010-07-09 00:50:19',4,3,160,1),(4,'2010-07-09 00:50:42',4,4,160,1),(5,'2010-07-09 01:52:36',4,1,120,1),(6,'2010-07-09 01:53:25',4,1,10,2),(7,'2010-07-09 01:53:25',4,1,11,2),(8,'2010-07-10 18:13:37',4,2,10,2),(9,'2010-07-10 18:13:37',4,2,11,2),(11,'2010-07-11 16:22:36',4,5,160,1),(12,'2010-07-11 16:23:53',4,2,180,1),(13,'2013-01-23 15:04:27',4,19,200,5),(14,'2013-01-23 16:06:37',4,19,210,2),(15,'2013-01-23 16:12:43',4,19,220,2),(16,'2013-03-06 10:04:57',4,3,10,1),(17,'2013-03-06 10:04:57',4,3,11,1),(18,'2014-12-21 13:52:41',4,3,180,1),(19,'2014-12-21 13:55:39',4,4,180,1),(20,'2014-12-21 14:16:58',4,5,180,1),(21,'2016-07-30 15:29:07',4,6,160,12),(22,'2016-07-30 15:29:48',4,7,160,12),(23,'2016-07-30 15:30:25',4,8,160,12),(24,'2016-07-30 15:33:27',4,6,180,12),(25,'2016-07-30 15:33:39',4,7,180,12),(26,'2016-07-30 15:33:54',4,8,180,12),(27,'2016-07-30 15:34:09',4,9,180,12),(28,'2016-07-31 18:27:20',4,9,160,12);
    +/*!40000 ALTER TABLE `llx_element_contact` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_element_element`
    +--
    +
    +DROP TABLE IF EXISTS `llx_element_element`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_element_element` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_source` int(11) NOT NULL,
    +  `sourcetype` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_target` int(11) NOT NULL,
    +  `targettype` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_element_element_idx1` (`fk_source`,`sourcetype`,`fk_target`,`targettype`),
    +  KEY `idx_element_element_fk_target` (`fk_target`)
    +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_element_element`
    +--
    +
    +LOCK TABLES `llx_element_element` WRITE;
    +/*!40000 ALTER TABLE `llx_element_element` DISABLE KEYS */;
    +INSERT INTO `llx_element_element` VALUES (4,1,'order_supplier',20,'invoice_supplier'),(12,1,'shipping',217,'facture'),(5,2,'cabinetmed_cabinetmedcons',216,'facture'),(1,2,'contrat',2,'facture'),(2,2,'propal',1,'commande'),(3,5,'commande',1,'shipping'),(13,5,'commande',217,'facture'),(11,25,'propal',92,'commande'),(9,28,'propal',90,'commande'),(10,29,'propal',91,'commande'),(6,75,'commande',2,'shipping');
    +/*!40000 ALTER TABLE `llx_element_element` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_element_lock`
    +--
    +
    +DROP TABLE IF EXISTS `llx_element_lock`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_element_lock` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_element` int(11) NOT NULL,
    +  `elementtype` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `datel` datetime DEFAULT NULL,
    +  `datem` datetime DEFAULT NULL,
    +  `sessionid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_element_lock`
    +--
    +
    +LOCK TABLES `llx_element_lock` WRITE;
    +/*!40000 ALTER TABLE `llx_element_lock` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_element_lock` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_element_resources`
    +--
    +
    +DROP TABLE IF EXISTS `llx_element_resources`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_element_resources` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `element_id` int(11) DEFAULT NULL,
    +  `element_type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `resource_id` int(11) DEFAULT NULL,
    +  `resource_type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `busy` int(11) DEFAULT NULL,
    +  `mandatory` int(11) DEFAULT NULL,
    +  `fk_user_create` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `duree` double DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_element_resources_idx1` (`resource_id`,`resource_type`,`element_id`,`element_type`),
    +  KEY `idx_element_element_element_id` (`element_id`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_element_resources`
    +--
    +
    +LOCK TABLES `llx_element_resources` WRITE;
    +/*!40000 ALTER TABLE `llx_element_resources` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_element_resources` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_element_tag`
    +--
    +
    +DROP TABLE IF EXISTS `llx_element_tag`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_element_tag` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `lang` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
    +  `tag` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_element` int(11) NOT NULL,
    +  `element` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_element_tag` (`entity`,`lang`,`tag`,`fk_element`,`element`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_element_tag`
    +--
    +
    +LOCK TABLES `llx_element_tag` WRITE;
    +/*!40000 ALTER TABLE `llx_element_tag` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_element_tag` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_eleves`
    +--
    +
    +DROP TABLE IF EXISTS `llx_eleves`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_eleves` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_eleves_rowid` (`rowid`),
    +  KEY `idx_eleves_ref` (`ref`),
    +  KEY `idx_eleves_entity` (`entity`),
    +  KEY `idx_eleves_status` (`status`),
    +  KEY `idx_eleves_import_key` (`import_key`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_eleves`
    +--
    +
    +LOCK TABLES `llx_eleves` WRITE;
    +/*!40000 ALTER TABLE `llx_eleves` DISABLE KEYS */;
    +INSERT INTO `llx_eleves` VALUES (1,'ggg',1,'hh',10.00000000,NULL,'2017-09-06 00:33:15','2017-09-06 00:33:15',1,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_eleves` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_eleves_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_eleves_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_eleves_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_eleves_extrafields`
    +--
    +
    +LOCK TABLES `llx_eleves_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_eleves_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_eleves_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_emailcollector_emailcollector`
    +--
    +
    +DROP TABLE IF EXISTS `llx_emailcollector_emailcollector`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_emailcollector_emailcollector` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref` varchar(128) NOT NULL,
    +  `label` varchar(255) DEFAULT NULL,
    +  `description` text,
    +  `host` varchar(255) DEFAULT NULL,
    +  `user` varchar(128) DEFAULT NULL,
    +  `password` varchar(128) DEFAULT NULL,
    +  `source_directory` varchar(255) DEFAULT NULL,
    +  `filter` text,
    +  `actiontodo` varchar(255) DEFAULT NULL,
    +  `target_directory` varchar(255) DEFAULT NULL,
    +  `datelastresult` datetime DEFAULT NULL,
    +  `lastresult` varchar(255) DEFAULT NULL,
    +  `note_public` text,
    +  `note_private` text,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  `codelastresult` varchar(16) DEFAULT NULL,
    +  `position` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_emailcollector_rowid` (`rowid`),
    +  KEY `idx_emailcollector_entity` (`entity`),
    +  KEY `idx_emailcollector_status` (`status`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_emailcollector_emailcollector`
    +--
    +
    +LOCK TABLES `llx_emailcollector_emailcollector` WRITE;
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollector` DISABLE KEYS */;
    +INSERT INTO `llx_emailcollector_emailcollector` VALUES (1,1,'MyEmailCollector1','My email collector 1','aaa','imap.gmail.com','testldr10@gmail.com','testldr10-10','INBOX','','','aftercollect','2018-11-19 15:21:07','1 emails analyzed, 1 emails successfuly processed (for 3 record/actions done) by collector',NULL,NULL,'2018-10-31 18:08:05','2018-10-31 17:08:05',12,12,NULL,1,'OK',0);
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollector` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_emailcollector_emailcollectoraction`
    +--
    +
    +DROP TABLE IF EXISTS `llx_emailcollector_emailcollectoraction`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_emailcollector_emailcollectoraction` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_emailcollector` int(11) NOT NULL,
    +  `type` varchar(128) NOT NULL,
    +  `actionparam` varchar(255) DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  `position` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_emailcollector_emailcollectoraction` (`fk_emailcollector`,`type`),
    +  KEY `idx_emailcollector_fk_emailcollector` (`fk_emailcollector`),
    +  CONSTRAINT `fk_emailcollectoraction_fk_emailcollector` FOREIGN KEY (`fk_emailcollector`) REFERENCES `llx_emailcollector_emailcollector` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_emailcollector_emailcollectoraction`
    +--
    +
    +LOCK TABLES `llx_emailcollector_emailcollectoraction` WRITE;
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollectoraction` DISABLE KEYS */;
    +INSERT INTO `llx_emailcollector_emailcollectoraction` VALUES (6,1,'recordevent',NULL,'2018-11-07 18:01:53','2018-11-19 19:54:46',12,NULL,NULL,1,2),(7,1,'project',NULL,'2018-11-15 11:11:13','2018-11-19 19:54:37',12,NULL,NULL,1,3),(14,1,'loadandcreatethirdparty','REGEX:body:Nom:\\s([^\\s]*)','2018-11-19 13:03:58','2018-11-19 19:54:46',12,NULL,NULL,1,1);
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollectoraction` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_emailcollector_emailcollectorfilter`
    +--
    +
    +DROP TABLE IF EXISTS `llx_emailcollector_emailcollectorfilter`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_emailcollector_emailcollectorfilter` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_emailcollector` int(11) NOT NULL,
    +  `type` varchar(128) NOT NULL,
    +  `rulevalue` varchar(255) DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_emailcollector_emailcollectorfilter` (`fk_emailcollector`,`type`,`rulevalue`),
    +  KEY `idx_emailcollector_fk_emailcollector` (`fk_emailcollector`),
    +  CONSTRAINT `fk_emailcollector_fk_emailcollector` FOREIGN KEY (`fk_emailcollector`) REFERENCES `llx_emailcollector_emailcollector` (`rowid`),
    +  CONSTRAINT `fk_emailcollectorfilter_fk_emailcollector` FOREIGN KEY (`fk_emailcollector`) REFERENCES `llx_emailcollector_emailcollector` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_emailcollector_emailcollectorfilter`
    +--
    +
    +LOCK TABLES `llx_emailcollector_emailcollectorfilter` WRITE;
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollectorfilter` DISABLE KEYS */;
    +INSERT INTO `llx_emailcollector_emailcollectorfilter` VALUES (18,1,'withouttrackingid',NULL,'2018-11-16 15:10:27','2018-11-16 14:10:27',12,NULL,NULL,1),(19,1,'from','support@dolicloud.com','2018-11-16 16:03:10','2018-11-16 15:03:10',12,NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollectorfilter` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_emailsenderprofile`
    +--
    +
    +DROP TABLE IF EXISTS `llx_emailsenderprofile`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_emailsenderprofile` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  `note_private` mediumtext COLLATE utf8_unicode_ci,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_emailsenderprofile_rowid` (`rowid`),
    +  KEY `idx_emailsenderprofile_ref` (`ref`),
    +  KEY `idx_emailsenderprofile_entity` (`entity`),
    +  KEY `idx_emailsenderprofile_import_key` (`import_key`),
    +  KEY `idx_emailsenderprofile_status` (`status`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_emailsenderprofile`
    +--
    +
    +LOCK TABLES `llx_emailsenderprofile` WRITE;
    +/*!40000 ALTER TABLE `llx_emailsenderprofile` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_emailsenderprofile` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_emailsenderprofile_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_emailsenderprofile_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_emailsenderprofile_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_emailsenderprofile_extrafields`
    +--
    +
    +LOCK TABLES `llx_emailsenderprofile_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_emailsenderprofile_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_emailsenderprofile_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_entity_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_entity_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_entity_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_entity_extrafields`
    +--
    +
    +LOCK TABLES `llx_entity_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_entity_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_entity_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_entity_thirdparty`
    +--
    +
    +DROP TABLE IF EXISTS `llx_entity_thirdparty`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_entity_thirdparty` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_entity` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_entity_thirdparty_fk_soc` (`entity`,`fk_entity`,`fk_soc`),
    +  KEY `fk_entity_thirdparty_fk_entity` (`fk_entity`),
    +  KEY `fk_entity_thirdparty_fk_soc` (`fk_soc`),
    +  CONSTRAINT `fk_entity_thirdparty_fk_entity` FOREIGN KEY (`fk_entity`) REFERENCES `llx_entity` (`rowid`),
    +  CONSTRAINT `fk_entity_thirdparty_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_entity_thirdparty`
    +--
    +
    +LOCK TABLES `llx_entity_thirdparty` WRITE;
    +/*!40000 ALTER TABLE `llx_entity_thirdparty` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_entity_thirdparty` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_entrepot`
    +--
    +
    +DROP TABLE IF EXISTS `llx_entrepot`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_entrepot` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `description` text COLLATE utf8_unicode_ci,
    +  `lieu` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_departement` int(11) DEFAULT NULL,
    +  `fk_pays` int(11) DEFAULT '0',
    +  `statut` tinyint(4) DEFAULT '1',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_parent` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_entrepot_label` (`ref`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_entrepot`
    +--
    +
    +LOCK TABLES `llx_entrepot` WRITE;
    +/*!40000 ALTER TABLE `llx_entrepot` DISABLE KEYS */;
    +INSERT INTO `llx_entrepot` VALUES (1,'2010-07-09 00:31:22','2010-07-08 22:40:36','WAREHOUSEHOUSTON',1,'Warehouse located at Houston','Warehouse houston','','','Houston',NULL,11,1,1,NULL,NULL,0),(2,'2010-07-09 00:41:03','2010-07-08 22:41:03','WAREHOUSEPARIS',1,'<br />','Warehouse Paris','','75000','Paris',NULL,1,1,1,NULL,NULL,0),(3,'2010-07-11 16:18:59','2016-07-30 13:52:08','Stock personnel Dupont',1,'Cet entrep&ocirc;t repr&eacute;sente le stock personnel de Alain Dupont','','','','',NULL,2,1,1,NULL,NULL,0),(9,'2015-10-03 11:47:41','2015-10-03 09:47:41','Personal stock Marie Curie',1,'This warehouse represents personal stock of Marie Curie','','','','',NULL,1,1,1,NULL,NULL,0),(10,'2015-10-05 09:07:52','2016-07-30 13:52:24','Personal stock Alex Theceo',1,'This warehouse represents personal stock of Alex Theceo','','','','',NULL,3,1,1,NULL,NULL,0),(12,'2015-10-05 21:29:35','2015-10-05 19:29:35','Personal stock Charly Commery',1,'This warehouse represents personal stock of Charly Commery','','','','',NULL,1,1,11,NULL,NULL,0),(13,'2015-10-05 21:33:33','2016-07-30 13:51:38','Personal stock Sam Scientol',1,'This warehouse represents personal stock of Sam Scientol','','','7500','Paris',NULL,1,0,11,NULL,NULL,0),(18,'2016-01-22 17:27:02','2016-01-22 16:27:02','Personal stock Laurent Destailleur',1,'This warehouse represents personal stock of Laurent Destailleur','','','','',NULL,1,1,12,NULL,NULL,0),(19,'2016-07-30 16:50:23','2016-07-30 12:50:23','Personal stock Eldy',1,'This warehouse represents personal stock of Eldy','','','','',NULL,14,1,12,NULL,NULL,0),(20,'2017-02-02 03:55:45','2017-02-01 23:55:45','Personal stock Alex Boston',1,'This warehouse represents personal stock of Alex Boston','','','','',NULL,14,1,12,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_entrepot` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_equipement_factory`
    +--
    +
    +DROP TABLE IF EXISTS `llx_equipement_factory`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_equipement_factory` (
    +  `fk_equipement` int(11) NOT NULL DEFAULT '0',
    +  `fk_factory` int(11) NOT NULL DEFAULT '0',
    +  UNIQUE KEY `uk_factory_equipement` (`fk_equipement`,`fk_factory`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_equipement_factory`
    +--
    +
    +LOCK TABLES `llx_equipement_factory` WRITE;
    +/*!40000 ALTER TABLE `llx_equipement_factory` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_equipement_factory` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_establishment`
    +--
    +
    +DROP TABLE IF EXISTS `llx_establishment`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_establishment` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_state` int(11) DEFAULT '0',
    +  `fk_country` int(11) DEFAULT '0',
    +  `profid1` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `profid2` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `profid3` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `fk_user_mod` int(11) DEFAULT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `status` tinyint(4) DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_establishment`
    +--
    +
    +LOCK TABLES `llx_establishment` WRITE;
    +/*!40000 ALTER TABLE `llx_establishment` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_establishment` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_event_element`
    +--
    +
    +DROP TABLE IF EXISTS `llx_event_element`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_event_element` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_source` int(11) NOT NULL,
    +  `fk_target` int(11) NOT NULL,
    +  `targettype` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_event_element`
    +--
    +
    +LOCK TABLES `llx_event_element` WRITE;
    +/*!40000 ALTER TABLE `llx_event_element` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_event_element` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_events`
    +--
    +
    +DROP TABLE IF EXISTS `llx_events`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_events` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `type` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `dateevent` datetime DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `description` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
    +  `ip` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `user_agent` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_object` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_events_dateevent` (`dateevent`)
    +) ENGINE=InnoDB AUTO_INCREMENT=879 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_events`
    +--
    +
    +LOCK TABLES `llx_events` WRITE;
    +/*!40000 ALTER TABLE `llx_events` DISABLE KEYS */;
    +INSERT INTO `llx_events` VALUES (30,'2011-07-18 18:23:06','USER_LOGOUT',1,'2011-07-18 20:23:06',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(31,'2011-07-18 18:23:12','USER_LOGIN_FAILED',1,'2011-07-18 20:23:12',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(32,'2011-07-18 18:23:17','USER_LOGIN',1,'2011-07-18 20:23:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(33,'2011-07-18 20:10:51','USER_LOGIN_FAILED',1,'2011-07-18 22:10:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(34,'2011-07-18 20:10:55','USER_LOGIN',1,'2011-07-18 22:10:55',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(35,'2011-07-18 21:18:57','USER_LOGIN',1,'2011-07-18 23:18:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(36,'2011-07-20 10:34:10','USER_LOGIN',1,'2011-07-20 12:34:10',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(37,'2011-07-20 12:36:44','USER_LOGIN',1,'2011-07-20 14:36:44',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(38,'2011-07-20 13:20:51','USER_LOGIN_FAILED',1,'2011-07-20 15:20:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(39,'2011-07-20 13:20:54','USER_LOGIN',1,'2011-07-20 15:20:54',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(40,'2011-07-20 15:03:46','USER_LOGIN_FAILED',1,'2011-07-20 17:03:46',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(41,'2011-07-20 15:03:55','USER_LOGIN',1,'2011-07-20 17:03:55',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(42,'2011-07-20 18:05:05','USER_LOGIN_FAILED',1,'2011-07-20 20:05:05',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(43,'2011-07-20 18:05:08','USER_LOGIN',1,'2011-07-20 20:05:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(44,'2011-07-20 21:08:53','USER_LOGIN_FAILED',1,'2011-07-20 23:08:53',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(45,'2011-07-20 21:08:56','USER_LOGIN',1,'2011-07-20 23:08:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(46,'2011-07-21 01:26:12','USER_LOGIN',1,'2011-07-21 03:26:12',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(47,'2011-07-21 22:35:45','USER_LOGIN_FAILED',1,'2011-07-22 00:35:45',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(48,'2011-07-21 22:35:49','USER_LOGIN',1,'2011-07-22 00:35:49',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(49,'2011-07-26 23:09:47','USER_LOGIN_FAILED',1,'2011-07-27 01:09:47',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(50,'2011-07-26 23:09:50','USER_LOGIN',1,'2011-07-27 01:09:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(51,'2011-07-27 17:02:27','USER_LOGIN_FAILED',1,'2011-07-27 19:02:27',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(52,'2011-07-27 17:02:32','USER_LOGIN',1,'2011-07-27 19:02:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(53,'2011-07-27 23:33:37','USER_LOGIN_FAILED',1,'2011-07-28 01:33:37',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(54,'2011-07-27 23:33:41','USER_LOGIN',1,'2011-07-28 01:33:41',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(55,'2011-07-28 18:20:36','USER_LOGIN_FAILED',1,'2011-07-28 20:20:36',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(56,'2011-07-28 18:20:38','USER_LOGIN',1,'2011-07-28 20:20:38',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(57,'2011-07-28 20:13:30','USER_LOGIN_FAILED',1,'2011-07-28 22:13:30',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(58,'2011-07-28 20:13:34','USER_LOGIN',1,'2011-07-28 22:13:34',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(59,'2011-07-28 20:22:51','USER_LOGIN',1,'2011-07-28 22:22:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(60,'2011-07-28 23:05:06','USER_LOGIN',1,'2011-07-29 01:05:06',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(61,'2011-07-29 20:15:50','USER_LOGIN_FAILED',1,'2011-07-29 22:15:50',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(62,'2011-07-29 20:15:53','USER_LOGIN',1,'2011-07-29 22:15:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(68,'2011-07-29 20:51:01','USER_LOGOUT',1,'2011-07-29 22:51:01',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(69,'2011-07-29 20:51:05','USER_LOGIN',1,'2011-07-29 22:51:05',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(70,'2011-07-30 08:46:20','USER_LOGIN_FAILED',1,'2011-07-30 10:46:20',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(71,'2011-07-30 08:46:38','USER_LOGIN_FAILED',1,'2011-07-30 10:46:38',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(72,'2011-07-30 08:46:42','USER_LOGIN',1,'2011-07-30 10:46:42',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(73,'2011-07-30 10:05:12','USER_LOGIN_FAILED',1,'2011-07-30 12:05:12',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(74,'2011-07-30 10:05:15','USER_LOGIN',1,'2011-07-30 12:05:15',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(75,'2011-07-30 12:15:46','USER_LOGIN',1,'2011-07-30 14:15:46',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(76,'2011-07-31 22:19:30','USER_LOGIN',1,'2011-08-01 00:19:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(77,'2011-07-31 23:32:52','USER_LOGIN',1,'2011-08-01 01:32:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(78,'2011-08-01 01:24:50','USER_LOGIN_FAILED',1,'2011-08-01 03:24:50',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(79,'2011-08-01 01:24:54','USER_LOGIN',1,'2011-08-01 03:24:54',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(80,'2011-08-01 19:31:36','USER_LOGIN_FAILED',1,'2011-08-01 21:31:35',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(81,'2011-08-01 19:31:39','USER_LOGIN',1,'2011-08-01 21:31:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(82,'2011-08-01 20:01:36','USER_LOGIN',1,'2011-08-01 22:01:36',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(83,'2011-08-01 20:52:54','USER_LOGIN_FAILED',1,'2011-08-01 22:52:54',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(84,'2011-08-01 20:52:58','USER_LOGIN',1,'2011-08-01 22:52:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(85,'2011-08-01 21:17:28','USER_LOGIN_FAILED',1,'2011-08-01 23:17:28',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(86,'2011-08-01 21:17:31','USER_LOGIN',1,'2011-08-01 23:17:31',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(87,'2011-08-04 11:55:17','USER_LOGIN',1,'2011-08-04 13:55:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(88,'2011-08-04 20:19:03','USER_LOGIN_FAILED',1,'2011-08-04 22:19:03',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(89,'2011-08-04 20:19:07','USER_LOGIN',1,'2011-08-04 22:19:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(90,'2011-08-05 17:51:42','USER_LOGIN_FAILED',1,'2011-08-05 19:51:42',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(91,'2011-08-05 17:51:47','USER_LOGIN',1,'2011-08-05 19:51:47',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(92,'2011-08-05 17:56:03','USER_LOGIN',1,'2011-08-05 19:56:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(93,'2011-08-05 17:59:10','USER_LOGIN',1,'2011-08-05 19:59:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30',NULL),(94,'2011-08-05 18:01:58','USER_LOGIN',1,'2011-08-05 20:01:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30',NULL),(95,'2011-08-05 19:59:56','USER_LOGIN',1,'2011-08-05 21:59:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(96,'2011-08-06 18:33:22','USER_LOGIN',1,'2011-08-06 20:33:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(97,'2011-08-07 00:56:59','USER_LOGIN',1,'2011-08-07 02:56:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(98,'2011-08-07 22:49:14','USER_LOGIN',1,'2011-08-08 00:49:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(99,'2011-08-07 23:05:18','USER_LOGOUT',1,'2011-08-08 01:05:18',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(105,'2011-08-08 00:41:09','USER_LOGIN',1,'2011-08-08 02:41:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(106,'2011-08-08 11:58:55','USER_LOGIN',1,'2011-08-08 13:58:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(107,'2011-08-08 14:35:48','USER_LOGIN',1,'2011-08-08 16:35:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(108,'2011-08-08 14:36:31','USER_LOGOUT',1,'2011-08-08 16:36:31',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(109,'2011-08-08 14:38:28','USER_LOGIN',1,'2011-08-08 16:38:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(110,'2011-08-08 14:39:02','USER_LOGOUT',1,'2011-08-08 16:39:02',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(111,'2011-08-08 14:39:10','USER_LOGIN',1,'2011-08-08 16:39:10',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(112,'2011-08-08 14:39:28','USER_LOGOUT',1,'2011-08-08 16:39:28',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(113,'2011-08-08 14:39:37','USER_LOGIN',1,'2011-08-08 16:39:37',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(114,'2011-08-08 14:50:02','USER_LOGOUT',1,'2011-08-08 16:50:02',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(115,'2011-08-08 14:51:45','USER_LOGIN_FAILED',1,'2011-08-08 16:51:45',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(116,'2011-08-08 14:51:52','USER_LOGIN',1,'2011-08-08 16:51:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(117,'2011-08-08 15:09:54','USER_LOGOUT',1,'2011-08-08 17:09:54',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(118,'2011-08-08 15:10:19','USER_LOGIN_FAILED',1,'2011-08-08 17:10:19',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(119,'2011-08-08 15:10:28','USER_LOGIN',1,'2011-08-08 17:10:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(121,'2011-08-08 15:14:58','USER_LOGOUT',1,'2011-08-08 17:14:58',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(122,'2011-08-08 15:15:00','USER_LOGIN_FAILED',1,'2011-08-08 17:15:00',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(123,'2011-08-08 15:17:57','USER_LOGIN',1,'2011-08-08 17:17:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(124,'2011-08-08 15:35:56','USER_LOGOUT',1,'2011-08-08 17:35:56',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(125,'2011-08-08 15:36:05','USER_LOGIN',1,'2011-08-08 17:36:05',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(126,'2011-08-08 17:32:42','USER_LOGIN',1,'2011-08-08 19:32:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(127,'2012-12-08 13:49:37','USER_LOGOUT',1,'2012-12-08 14:49:37',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(128,'2012-12-08 13:49:42','USER_LOGIN',1,'2012-12-08 14:49:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(129,'2012-12-08 13:50:12','USER_LOGOUT',1,'2012-12-08 14:50:12',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(130,'2012-12-08 13:50:14','USER_LOGIN',1,'2012-12-08 14:50:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(131,'2012-12-08 13:50:17','USER_LOGOUT',1,'2012-12-08 14:50:17',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(132,'2012-12-08 13:52:47','USER_LOGIN',1,'2012-12-08 14:52:47',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(133,'2012-12-08 13:53:08','USER_MODIFY',1,'2012-12-08 14:53:08',1,'User admin modified','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(134,'2012-12-08 14:08:45','USER_LOGOUT',1,'2012-12-08 15:08:45',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(135,'2012-12-08 14:09:09','USER_LOGIN',1,'2012-12-08 15:09:09',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(136,'2012-12-08 14:11:43','USER_LOGOUT',1,'2012-12-08 15:11:43',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(137,'2012-12-08 14:11:45','USER_LOGIN',1,'2012-12-08 15:11:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(138,'2012-12-08 14:22:53','USER_LOGOUT',1,'2012-12-08 15:22:53',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(139,'2012-12-08 14:22:54','USER_LOGIN',1,'2012-12-08 15:22:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(140,'2012-12-08 14:23:10','USER_LOGOUT',1,'2012-12-08 15:23:10',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(141,'2012-12-08 14:23:11','USER_LOGIN',1,'2012-12-08 15:23:11',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(142,'2012-12-08 14:23:49','USER_LOGOUT',1,'2012-12-08 15:23:49',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(143,'2012-12-08 14:23:50','USER_LOGIN',1,'2012-12-08 15:23:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(144,'2012-12-08 14:28:08','USER_LOGOUT',1,'2012-12-08 15:28:08',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(145,'2012-12-08 14:35:15','USER_LOGIN',1,'2012-12-08 15:35:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(146,'2012-12-08 14:35:18','USER_LOGOUT',1,'2012-12-08 15:35:18',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(147,'2012-12-08 14:36:07','USER_LOGIN',1,'2012-12-08 15:36:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(148,'2012-12-08 14:36:09','USER_LOGOUT',1,'2012-12-08 15:36:09',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(149,'2012-12-08 14:36:41','USER_LOGIN',1,'2012-12-08 15:36:41',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(150,'2012-12-08 15:59:13','USER_LOGIN',1,'2012-12-08 16:59:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(151,'2012-12-09 11:49:52','USER_LOGIN',1,'2012-12-09 12:49:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(152,'2012-12-09 13:46:31','USER_LOGIN',1,'2012-12-09 14:46:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(153,'2012-12-09 19:03:14','USER_LOGIN',1,'2012-12-09 20:03:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(154,'2012-12-10 00:16:31','USER_LOGIN',1,'2012-12-10 01:16:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(170,'2012-12-11 22:03:31','USER_LOGIN',1,'2012-12-11 23:03:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(171,'2012-12-12 00:32:39','USER_LOGIN',1,'2012-12-12 01:32:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(172,'2012-12-12 10:49:59','USER_LOGIN',1,'2012-12-12 11:49:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(175,'2012-12-12 10:57:40','USER_MODIFY',1,'2012-12-12 11:57:40',1,'Modification utilisateur admin','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(176,'2012-12-12 13:29:15','USER_LOGIN',1,'2012-12-12 14:29:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(177,'2012-12-12 13:30:15','USER_LOGIN',1,'2012-12-12 14:30:15',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(178,'2012-12-12 13:40:08','USER_LOGOUT',1,'2012-12-12 14:40:08',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(179,'2012-12-12 13:40:10','USER_LOGIN',1,'2012-12-12 14:40:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(180,'2012-12-12 13:40:26','USER_MODIFY',1,'2012-12-12 14:40:26',1,'Modification utilisateur admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(181,'2012-12-12 13:40:34','USER_LOGOUT',1,'2012-12-12 14:40:34',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(182,'2012-12-12 13:42:23','USER_LOGIN',1,'2012-12-12 14:42:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(183,'2012-12-12 13:43:02','USER_NEW_PASSWORD',1,'2012-12-12 14:43:02',NULL,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(184,'2012-12-12 13:43:25','USER_LOGOUT',1,'2012-12-12 14:43:25',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(185,'2012-12-12 13:43:27','USER_LOGIN_FAILED',1,'2012-12-12 14:43:27',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(186,'2012-12-12 13:43:30','USER_LOGIN',1,'2012-12-12 14:43:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(187,'2012-12-12 14:52:11','USER_LOGIN',1,'2012-12-12 15:52:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(188,'2012-12-12 17:53:00','USER_LOGIN_FAILED',1,'2012-12-12 18:53:00',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(189,'2012-12-12 17:53:07','USER_LOGIN_FAILED',1,'2012-12-12 18:53:07',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(190,'2012-12-12 17:53:51','USER_NEW_PASSWORD',1,'2012-12-12 18:53:51',NULL,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(191,'2012-12-12 17:54:00','USER_LOGIN',1,'2012-12-12 18:54:00',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(192,'2012-12-12 17:54:10','USER_NEW_PASSWORD',1,'2012-12-12 18:54:10',1,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(193,'2012-12-12 17:54:10','USER_MODIFY',1,'2012-12-12 18:54:10',1,'Modification utilisateur admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(194,'2012-12-12 18:57:09','USER_LOGIN',1,'2012-12-12 19:57:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(195,'2012-12-12 23:04:08','USER_LOGIN',1,'2012-12-13 00:04:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(196,'2012-12-17 20:03:14','USER_LOGIN',1,'2012-12-17 21:03:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(197,'2012-12-17 21:18:45','USER_LOGIN',1,'2012-12-17 22:18:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(198,'2012-12-17 22:30:08','USER_LOGIN',1,'2012-12-17 23:30:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(199,'2012-12-18 23:32:03','USER_LOGIN',1,'2012-12-19 00:32:03',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(200,'2012-12-19 09:38:03','USER_LOGIN',1,'2012-12-19 10:38:03',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(201,'2012-12-19 11:23:35','USER_LOGIN',1,'2012-12-19 12:23:35',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(202,'2012-12-19 12:46:22','USER_LOGIN',1,'2012-12-19 13:46:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(214,'2012-12-19 19:11:31','USER_LOGIN',1,'2012-12-19 20:11:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(215,'2012-12-21 16:36:57','USER_LOGIN',1,'2012-12-21 17:36:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(216,'2012-12-21 16:38:43','USER_NEW_PASSWORD',1,'2012-12-21 17:38:43',1,'Changement mot de passe de adupont','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(217,'2012-12-21 16:38:43','USER_MODIFY',1,'2012-12-21 17:38:43',1,'Modification utilisateur adupont','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(218,'2012-12-21 16:38:51','USER_LOGOUT',1,'2012-12-21 17:38:51',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(219,'2012-12-21 16:38:55','USER_LOGIN',1,'2012-12-21 17:38:55',3,'(UserLogged,adupont)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(220,'2012-12-21 16:48:18','USER_LOGOUT',1,'2012-12-21 17:48:18',3,'(UserLogoff,adupont)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(221,'2012-12-21 16:48:20','USER_LOGIN',1,'2012-12-21 17:48:20',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(222,'2012-12-26 18:28:18','USER_LOGIN',1,'2012-12-26 19:28:18',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(223,'2012-12-26 20:00:24','USER_LOGIN',1,'2012-12-26 21:00:24',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(224,'2012-12-27 01:10:27','USER_LOGIN',1,'2012-12-27 02:10:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(225,'2012-12-28 19:12:08','USER_LOGIN',1,'2012-12-28 20:12:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(226,'2012-12-28 20:16:58','USER_LOGIN',1,'2012-12-28 21:16:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(227,'2012-12-29 14:35:46','USER_LOGIN',1,'2012-12-29 15:35:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(228,'2012-12-29 14:37:59','USER_LOGOUT',1,'2012-12-29 15:37:59',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(229,'2012-12-29 14:38:00','USER_LOGIN',1,'2012-12-29 15:38:00',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(230,'2012-12-29 17:16:48','USER_LOGIN',1,'2012-12-29 18:16:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(231,'2012-12-31 12:02:59','USER_LOGIN',1,'2012-12-31 13:02:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(232,'2013-01-02 20:32:51','USER_LOGIN',1,'2013-01-02 21:32:51',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0',NULL),(233,'2013-01-02 20:58:59','USER_LOGIN',1,'2013-01-02 21:58:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(234,'2013-01-03 09:25:07','USER_LOGIN',1,'2013-01-03 10:25:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(235,'2013-01-03 19:39:31','USER_LOGIN',1,'2013-01-03 20:39:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(236,'2013-01-04 22:40:19','USER_LOGIN',1,'2013-01-04 23:40:19',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(237,'2013-01-05 12:59:59','USER_LOGIN',1,'2013-01-05 13:59:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(238,'2013-01-05 15:28:52','USER_LOGIN',1,'2013-01-05 16:28:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(239,'2013-01-05 17:02:08','USER_LOGIN',1,'2013-01-05 18:02:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(240,'2013-01-06 12:13:33','USER_LOGIN',1,'2013-01-06 13:13:33',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(241,'2013-01-07 01:21:15','USER_LOGIN',1,'2013-01-07 02:21:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(242,'2013-01-07 01:46:31','USER_LOGOUT',1,'2013-01-07 02:46:31',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(243,'2013-01-07 19:54:50','USER_LOGIN',1,'2013-01-07 20:54:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(244,'2013-01-08 21:55:01','USER_LOGIN',1,'2013-01-08 22:55:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(245,'2013-01-09 11:13:28','USER_LOGIN',1,'2013-01-09 12:13:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(246,'2013-01-10 18:30:46','USER_LOGIN',1,'2013-01-10 19:30:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(247,'2013-01-11 18:03:26','USER_LOGIN',1,'2013-01-11 19:03:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(248,'2013-01-12 11:15:04','USER_LOGIN',1,'2013-01-12 12:15:04',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(249,'2013-01-12 14:42:44','USER_LOGIN',1,'2013-01-12 15:42:44',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(250,'2013-01-13 12:07:17','USER_LOGIN',1,'2013-01-13 13:07:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(251,'2013-01-13 17:37:58','USER_LOGIN',1,'2013-01-13 18:37:58',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(252,'2013-01-13 19:24:21','USER_LOGIN',1,'2013-01-13 20:24:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(253,'2013-01-13 19:29:19','USER_LOGOUT',1,'2013-01-13 20:29:19',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(254,'2013-01-13 21:39:39','USER_LOGIN',1,'2013-01-13 22:39:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(255,'2013-01-14 00:52:21','USER_LOGIN',1,'2013-01-14 01:52:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(256,'2013-01-16 11:34:31','USER_LOGIN',1,'2013-01-16 12:34:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(257,'2013-01-16 15:36:21','USER_LOGIN',1,'2013-01-16 16:36:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(258,'2013-01-16 19:17:36','USER_LOGIN',1,'2013-01-16 20:17:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(259,'2013-01-16 19:48:08','GROUP_CREATE',1,'2013-01-16 20:48:08',1,'Création groupe ggg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(260,'2013-01-16 21:48:53','USER_LOGIN',1,'2013-01-16 22:48:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(261,'2013-01-17 19:55:53','USER_LOGIN',1,'2013-01-17 20:55:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(262,'2013-01-18 09:48:01','USER_LOGIN',1,'2013-01-18 10:48:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(263,'2013-01-18 13:22:36','USER_LOGIN',1,'2013-01-18 14:22:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(264,'2013-01-18 16:10:23','USER_LOGIN',1,'2013-01-18 17:10:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(265,'2013-01-18 17:41:40','USER_LOGIN',1,'2013-01-18 18:41:40',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(266,'2013-01-19 14:33:48','USER_LOGIN',1,'2013-01-19 15:33:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(267,'2013-01-19 16:47:43','USER_LOGIN',1,'2013-01-19 17:47:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(268,'2013-01-19 16:59:43','USER_LOGIN',1,'2013-01-19 17:59:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(269,'2013-01-19 17:00:22','USER_LOGIN',1,'2013-01-19 18:00:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(270,'2013-01-19 17:04:16','USER_LOGOUT',1,'2013-01-19 18:04:16',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(271,'2013-01-19 17:04:18','USER_LOGIN',1,'2013-01-19 18:04:18',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(272,'2013-01-20 00:34:19','USER_LOGIN',1,'2013-01-20 01:34:19',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(273,'2013-01-21 11:54:17','USER_LOGIN',1,'2013-01-21 12:54:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(274,'2013-01-21 13:48:15','USER_LOGIN',1,'2013-01-21 14:48:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(275,'2013-01-21 14:30:22','USER_LOGIN',1,'2013-01-21 15:30:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(276,'2013-01-21 15:10:46','USER_LOGIN',1,'2013-01-21 16:10:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(277,'2013-01-21 17:27:43','USER_LOGIN',1,'2013-01-21 18:27:43',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(278,'2013-01-21 21:48:15','USER_LOGIN',1,'2013-01-21 22:48:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(279,'2013-01-21 21:50:42','USER_LOGIN',1,'2013-01-21 22:50:42',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(280,'2013-01-23 09:28:26','USER_LOGIN',1,'2013-01-23 10:28:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(281,'2013-01-23 13:21:57','USER_LOGIN',1,'2013-01-23 14:21:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(282,'2013-01-23 16:52:00','USER_LOGOUT',1,'2013-01-23 17:52:00',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(283,'2013-01-23 16:52:05','USER_LOGIN_FAILED',1,'2013-01-23 17:52:05',NULL,'Bad value for login or password - login=bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(284,'2013-01-23 16:52:09','USER_LOGIN',1,'2013-01-23 17:52:09',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(285,'2013-01-23 16:52:27','USER_CREATE',1,'2013-01-23 17:52:27',1,'Création utilisateur aaa','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(286,'2013-01-23 16:52:27','USER_NEW_PASSWORD',1,'2013-01-23 17:52:27',1,'Changement mot de passe de aaa','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(287,'2013-01-23 16:52:37','USER_CREATE',1,'2013-01-23 17:52:37',1,'Création utilisateur bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(288,'2013-01-23 16:52:37','USER_NEW_PASSWORD',1,'2013-01-23 17:52:37',1,'Changement mot de passe de bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(289,'2013-01-23 16:53:15','USER_LOGOUT',1,'2013-01-23 17:53:15',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(290,'2013-01-23 16:53:20','USER_LOGIN',1,'2013-01-23 17:53:20',4,'(UserLogged,aaa)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(291,'2013-01-23 19:16:58','USER_LOGIN',1,'2013-01-23 20:16:58',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(292,'2013-01-26 10:54:07','USER_LOGIN',1,'2013-01-26 11:54:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(293,'2013-01-29 10:15:36','USER_LOGIN',1,'2013-01-29 11:15:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(294,'2013-01-30 17:42:50','USER_LOGIN',1,'2013-01-30 18:42:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(295,'2013-02-01 08:49:55','USER_LOGIN',1,'2013-02-01 09:49:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(296,'2013-02-01 08:51:57','USER_LOGOUT',1,'2013-02-01 09:51:57',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(297,'2013-02-01 08:52:39','USER_LOGIN',1,'2013-02-01 09:52:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(298,'2013-02-01 21:03:01','USER_LOGIN',1,'2013-02-01 22:03:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(299,'2013-02-10 19:48:39','USER_LOGIN',1,'2013-02-10 20:48:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(300,'2013-02-10 20:46:48','USER_LOGIN',1,'2013-02-10 21:46:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(301,'2013-02-10 21:39:23','USER_LOGIN',1,'2013-02-10 22:39:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(302,'2013-02-11 19:00:13','USER_LOGIN',1,'2013-02-11 20:00:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(303,'2013-02-11 19:43:44','USER_LOGIN_FAILED',1,'2013-02-11 20:43:44',NULL,'Unknown column \'u.fk_user\' in \'field list\'','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(304,'2013-02-11 19:44:01','USER_LOGIN',1,'2013-02-11 20:44:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(305,'2013-02-12 00:27:35','USER_LOGIN',1,'2013-02-12 01:27:35',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(306,'2013-02-12 00:27:38','USER_LOGOUT',1,'2013-02-12 01:27:38',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(307,'2013-02-12 00:28:07','USER_LOGIN',1,'2013-02-12 01:28:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(308,'2013-02-12 00:28:09','USER_LOGOUT',1,'2013-02-12 01:28:09',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(309,'2013-02-12 00:28:26','USER_LOGIN',1,'2013-02-12 01:28:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(310,'2013-02-12 00:28:30','USER_LOGOUT',1,'2013-02-12 01:28:30',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(311,'2013-02-12 12:42:15','USER_LOGIN',1,'2013-02-12 13:42:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(312,'2013-02-12 13:46:16','USER_LOGIN',1,'2013-02-12 14:46:16',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(313,'2013-02-12 14:54:28','USER_LOGIN',1,'2013-02-12 15:54:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(314,'2013-02-12 16:04:46','USER_LOGIN',1,'2013-02-12 17:04:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(315,'2013-02-13 14:02:43','USER_LOGIN',1,'2013-02-13 15:02:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(316,'2013-02-13 14:48:30','USER_LOGIN',1,'2013-02-13 15:48:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(317,'2013-02-13 17:44:53','USER_LOGIN',1,'2013-02-13 18:44:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(318,'2013-02-15 08:44:36','USER_LOGIN',1,'2013-02-15 09:44:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(319,'2013-02-15 08:53:20','USER_LOGIN',1,'2013-02-15 09:53:20',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(320,'2013-02-16 19:10:28','USER_LOGIN',1,'2013-02-16 20:10:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(321,'2013-02-16 19:22:40','USER_CREATE',1,'2013-02-16 20:22:40',1,'Création utilisateur aaab','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(322,'2013-02-16 19:22:40','USER_NEW_PASSWORD',1,'2013-02-16 20:22:40',1,'Changement mot de passe de aaab','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(323,'2013-02-16 19:48:15','USER_CREATE',1,'2013-02-16 20:48:15',1,'Création utilisateur zzz','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(324,'2013-02-16 19:48:15','USER_NEW_PASSWORD',1,'2013-02-16 20:48:15',1,'Changement mot de passe de zzz','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(325,'2013-02-16 19:50:08','USER_CREATE',1,'2013-02-16 20:50:08',1,'Création utilisateur zzzg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(326,'2013-02-16 19:50:08','USER_NEW_PASSWORD',1,'2013-02-16 20:50:08',1,'Changement mot de passe de zzzg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(327,'2013-02-16 21:20:03','USER_LOGIN',1,'2013-02-16 22:20:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(328,'2013-02-17 14:30:51','USER_LOGIN',1,'2013-02-17 15:30:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(329,'2013-02-17 17:21:22','USER_LOGIN',1,'2013-02-17 18:21:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(330,'2013-02-17 17:48:43','USER_MODIFY',1,'2013-02-17 18:48:43',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(331,'2013-02-17 17:48:47','USER_MODIFY',1,'2013-02-17 18:48:47',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(332,'2013-02-17 17:48:51','USER_MODIFY',1,'2013-02-17 18:48:51',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(333,'2013-02-17 17:48:56','USER_MODIFY',1,'2013-02-17 18:48:56',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(334,'2013-02-18 22:00:01','USER_LOGIN',1,'2013-02-18 23:00:01',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(335,'2013-02-19 08:19:52','USER_LOGIN',1,'2013-02-19 09:19:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(336,'2013-02-19 22:00:52','USER_LOGIN',1,'2013-02-19 23:00:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(337,'2013-02-20 09:34:52','USER_LOGIN',1,'2013-02-20 10:34:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(338,'2013-02-20 13:12:28','USER_LOGIN',1,'2013-02-20 14:12:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(339,'2013-02-20 17:19:44','USER_LOGIN',1,'2013-02-20 18:19:44',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(340,'2013-02-20 19:07:21','USER_MODIFY',1,'2013-02-20 20:07:21',1,'Modification utilisateur adupont','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(341,'2013-02-20 19:47:17','USER_LOGIN',1,'2013-02-20 20:47:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(342,'2013-02-20 19:48:01','USER_MODIFY',1,'2013-02-20 20:48:01',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(343,'2013-02-21 08:27:07','USER_LOGIN',1,'2013-02-21 09:27:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(344,'2013-02-23 13:34:13','USER_LOGIN',1,'2013-02-23 14:34:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(345,'2013-02-24 01:06:41','USER_LOGIN_FAILED',1,'2013-02-24 02:06:41',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(346,'2013-02-24 01:06:45','USER_LOGIN_FAILED',1,'2013-02-24 02:06:45',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(347,'2013-02-24 01:06:55','USER_LOGIN_FAILED',1,'2013-02-24 02:06:55',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(348,'2013-02-24 01:07:03','USER_LOGIN_FAILED',1,'2013-02-24 02:07:03',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(349,'2013-02-24 01:07:21','USER_LOGIN_FAILED',1,'2013-02-24 02:07:21',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(350,'2013-02-24 01:08:12','USER_LOGIN_FAILED',1,'2013-02-24 02:08:12',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(351,'2013-02-24 01:08:42','USER_LOGIN_FAILED',1,'2013-02-24 02:08:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(352,'2013-02-24 01:08:50','USER_LOGIN_FAILED',1,'2013-02-24 02:08:50',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(353,'2013-02-24 01:09:08','USER_LOGIN_FAILED',1,'2013-02-24 02:09:08',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(354,'2013-02-24 01:09:42','USER_LOGIN_FAILED',1,'2013-02-24 02:09:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(355,'2013-02-24 01:09:50','USER_LOGIN_FAILED',1,'2013-02-24 02:09:50',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(356,'2013-02-24 01:10:05','USER_LOGIN_FAILED',1,'2013-02-24 02:10:05',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(357,'2013-02-24 01:10:22','USER_LOGIN_FAILED',1,'2013-02-24 02:10:22',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(358,'2013-02-24 01:10:30','USER_LOGIN_FAILED',1,'2013-02-24 02:10:30',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(359,'2013-02-24 01:10:56','USER_LOGIN_FAILED',1,'2013-02-24 02:10:56',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(360,'2013-02-24 01:11:26','USER_LOGIN_FAILED',1,'2013-02-24 02:11:26',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(361,'2013-02-24 01:12:06','USER_LOGIN_FAILED',1,'2013-02-24 02:12:06',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(362,'2013-02-24 01:21:14','USER_LOGIN_FAILED',1,'2013-02-24 02:21:14',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(363,'2013-02-24 01:21:25','USER_LOGIN_FAILED',1,'2013-02-24 02:21:25',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(364,'2013-02-24 01:21:54','USER_LOGIN_FAILED',1,'2013-02-24 02:21:54',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(365,'2013-02-24 01:22:14','USER_LOGIN_FAILED',1,'2013-02-24 02:22:14',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(366,'2013-02-24 01:22:37','USER_LOGIN_FAILED',1,'2013-02-24 02:22:37',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(367,'2013-02-24 01:23:01','USER_LOGIN_FAILED',1,'2013-02-24 02:23:01',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(368,'2013-02-24 01:23:39','USER_LOGIN_FAILED',1,'2013-02-24 02:23:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(369,'2013-02-24 01:24:04','USER_LOGIN_FAILED',1,'2013-02-24 02:24:04',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(370,'2013-02-24 01:24:39','USER_LOGIN_FAILED',1,'2013-02-24 02:24:39',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(371,'2013-02-24 01:25:01','USER_LOGIN_FAILED',1,'2013-02-24 02:25:01',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(372,'2013-02-24 01:25:12','USER_LOGIN_FAILED',1,'2013-02-24 02:25:12',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(373,'2013-02-24 01:27:30','USER_LOGIN_FAILED',1,'2013-02-24 02:27:30',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(374,'2013-02-24 01:28:00','USER_LOGIN_FAILED',1,'2013-02-24 02:28:00',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(375,'2013-02-24 01:28:35','USER_LOGIN_FAILED',1,'2013-02-24 02:28:35',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(376,'2013-02-24 01:29:03','USER_LOGIN_FAILED',1,'2013-02-24 02:29:03',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(377,'2013-02-24 01:29:55','USER_LOGIN_FAILED',1,'2013-02-24 02:29:55',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(378,'2013-02-24 01:32:40','USER_LOGIN_FAILED',1,'2013-02-24 02:32:40',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(379,'2013-02-24 01:39:33','USER_LOGIN_FAILED',1,'2013-02-24 02:39:33',NULL,'Identifiants login ou mot de passe incorrects - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(380,'2013-02-24 01:39:38','USER_LOGIN_FAILED',1,'2013-02-24 02:39:38',NULL,'Identifiants login ou mot de passe incorrects - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(381,'2013-02-24 01:39:47','USER_LOGIN_FAILED',1,'2013-02-24 02:39:47',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(382,'2013-02-24 01:40:54','USER_LOGIN_FAILED',1,'2013-02-24 02:40:54',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(383,'2013-02-24 01:47:57','USER_LOGIN_FAILED',1,'2013-02-24 02:47:57',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(384,'2013-02-24 01:48:05','USER_LOGIN_FAILED',1,'2013-02-24 02:48:05',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(385,'2013-02-24 01:48:07','USER_LOGIN_FAILED',1,'2013-02-24 02:48:07',NULL,'Unknown column \'u.lastname\' in \'field list\'','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(386,'2013-02-24 01:48:35','USER_LOGIN',1,'2013-02-24 02:48:35',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(387,'2013-02-24 01:56:32','USER_LOGIN',1,'2013-02-24 02:56:32',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL),(388,'2013-02-24 02:05:55','USER_LOGOUT',1,'2013-02-24 03:05:55',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(389,'2013-02-24 02:39:52','USER_LOGIN',1,'2013-02-24 03:39:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(390,'2013-02-24 02:51:10','USER_LOGOUT',1,'2013-02-24 03:51:10',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(391,'2013-02-24 12:46:41','USER_LOGIN',1,'2013-02-24 13:46:41',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(392,'2013-02-24 12:46:52','USER_LOGOUT',1,'2013-02-24 13:46:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(393,'2013-02-24 12:46:56','USER_LOGIN',1,'2013-02-24 13:46:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(394,'2013-02-24 12:47:56','USER_LOGOUT',1,'2013-02-24 13:47:56',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(395,'2013-02-24 12:48:00','USER_LOGIN',1,'2013-02-24 13:48:00',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(396,'2013-02-24 12:48:11','USER_LOGOUT',1,'2013-02-24 13:48:11',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(397,'2013-02-24 12:48:32','USER_LOGIN',1,'2013-02-24 13:48:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(398,'2013-02-24 12:52:22','USER_LOGOUT',1,'2013-02-24 13:52:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(399,'2013-02-24 12:52:27','USER_LOGIN',1,'2013-02-24 13:52:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(400,'2013-02-24 12:52:54','USER_LOGOUT',1,'2013-02-24 13:52:54',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(401,'2013-02-24 12:52:59','USER_LOGIN',1,'2013-02-24 13:52:59',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(402,'2013-02-24 12:55:39','USER_LOGOUT',1,'2013-02-24 13:55:39',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(403,'2013-02-24 12:55:59','USER_LOGIN',1,'2013-02-24 13:55:59',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(404,'2013-02-24 12:56:07','USER_LOGOUT',1,'2013-02-24 13:56:07',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(405,'2013-02-24 12:56:23','USER_LOGIN',1,'2013-02-24 13:56:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(406,'2013-02-24 12:56:46','USER_LOGOUT',1,'2013-02-24 13:56:46',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(407,'2013-02-24 12:58:30','USER_LOGIN',1,'2013-02-24 13:58:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(408,'2013-02-24 12:58:33','USER_LOGOUT',1,'2013-02-24 13:58:33',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(409,'2013-02-24 12:58:51','USER_LOGIN',1,'2013-02-24 13:58:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(410,'2013-02-24 12:58:58','USER_LOGOUT',1,'2013-02-24 13:58:58',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(411,'2013-02-24 13:18:53','USER_LOGIN',1,'2013-02-24 14:18:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(412,'2013-02-24 13:19:52','USER_LOGOUT',1,'2013-02-24 14:19:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(413,'2013-02-24 15:39:31','USER_LOGIN_FAILED',1,'2013-02-24 16:39:31',NULL,'ErrorBadValueForCode - login=admin','127.0.0.1',NULL,NULL),(414,'2013-02-24 15:42:07','USER_LOGIN',1,'2013-02-24 16:42:07',1,'(UserLogged,admin)','127.0.0.1',NULL,NULL),(415,'2013-02-24 15:42:52','USER_LOGOUT',1,'2013-02-24 16:42:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL),(416,'2013-02-24 16:04:21','USER_LOGIN',1,'2013-02-24 17:04:21',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL),(417,'2013-02-24 16:11:28','USER_LOGIN_FAILED',1,'2013-02-24 17:11:28',NULL,'ErrorBadValueForCode - login=admin','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL),(418,'2013-02-24 16:11:37','USER_LOGIN',1,'2013-02-24 17:11:37',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL),(419,'2013-02-24 16:36:52','USER_LOGOUT',1,'2013-02-24 17:36:52',1,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL),(420,'2013-02-24 16:40:37','USER_LOGIN',1,'2013-02-24 17:40:37',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(421,'2013-02-24 16:57:16','USER_LOGIN',1,'2013-02-24 17:57:16',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL),(422,'2013-02-24 17:01:30','USER_LOGOUT',1,'2013-02-24 18:01:30',1,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL),(423,'2013-02-24 17:02:33','USER_LOGIN',1,'2013-02-24 18:02:33',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(424,'2013-02-24 17:14:22','USER_LOGOUT',1,'2013-02-24 18:14:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(425,'2013-02-24 17:15:07','USER_LOGIN_FAILED',1,'2013-02-24 18:15:07',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(426,'2013-02-24 17:15:20','USER_LOGIN',1,'2013-02-24 18:15:20',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(427,'2013-02-24 17:20:14','USER_LOGIN',1,'2013-02-24 18:20:14',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(428,'2013-02-24 17:20:51','USER_LOGIN',1,'2013-02-24 18:20:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(429,'2013-02-24 17:20:54','USER_LOGOUT',1,'2013-02-24 18:20:54',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(430,'2013-02-24 17:21:19','USER_LOGIN',1,'2013-02-24 18:21:19',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(431,'2013-02-24 17:32:35','USER_LOGIN',1,'2013-02-24 18:32:35',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL),(432,'2013-02-24 18:28:48','USER_LOGIN',1,'2013-02-24 19:28:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(433,'2013-02-24 18:29:27','USER_LOGOUT',1,'2013-02-24 19:29:27',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL),(434,'2013-02-24 18:29:32','USER_LOGIN',1,'2013-02-24 19:29:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL),(435,'2013-02-24 20:13:13','USER_LOGOUT',1,'2013-02-24 21:13:13',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(436,'2013-02-24 20:13:17','USER_LOGIN',1,'2013-02-24 21:13:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(437,'2013-02-25 08:57:16','USER_LOGIN',1,'2013-02-25 09:57:16',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(438,'2013-02-25 08:57:59','USER_LOGOUT',1,'2013-02-25 09:57:59',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(439,'2013-02-25 09:15:02','USER_LOGIN',1,'2013-02-25 10:15:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(440,'2013-02-25 09:15:50','USER_LOGOUT',1,'2013-02-25 10:15:50',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(441,'2013-02-25 09:15:57','USER_LOGIN',1,'2013-02-25 10:15:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(442,'2013-02-25 09:16:12','USER_LOGOUT',1,'2013-02-25 10:16:12',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(443,'2013-02-25 09:16:19','USER_LOGIN',1,'2013-02-25 10:16:19',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(444,'2013-02-25 09:16:25','USER_LOGOUT',1,'2013-02-25 10:16:25',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(445,'2013-02-25 09:16:39','USER_LOGIN_FAILED',1,'2013-02-25 10:16:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(446,'2013-02-25 09:16:42','USER_LOGIN_FAILED',1,'2013-02-25 10:16:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(447,'2013-02-25 09:16:54','USER_LOGIN_FAILED',1,'2013-02-25 10:16:54',NULL,'Identificadors d&#039;usuari o contrasenya incorrectes - login=gfdg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(448,'2013-02-25 09:17:53','USER_LOGIN',1,'2013-02-25 10:17:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(449,'2013-02-25 09:18:37','USER_LOGOUT',1,'2013-02-25 10:18:37',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(450,'2013-02-25 09:18:41','USER_LOGIN',1,'2013-02-25 10:18:41',4,'(UserLogged,aaa)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(451,'2013-02-25 09:18:47','USER_LOGOUT',1,'2013-02-25 10:18:47',4,'(UserLogoff,aaa)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(452,'2013-02-25 10:05:34','USER_LOGIN',1,'2013-02-25 11:05:34',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(453,'2013-02-26 21:51:40','USER_LOGIN',1,'2013-02-26 22:51:40',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(454,'2013-02-26 23:30:06','USER_LOGIN',1,'2013-02-27 00:30:06',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(455,'2013-02-27 14:13:11','USER_LOGIN',1,'2013-02-27 15:13:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(456,'2013-02-27 18:12:06','USER_LOGIN_FAILED',1,'2013-02-27 19:12:06',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(457,'2013-02-27 18:12:10','USER_LOGIN',1,'2013-02-27 19:12:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(458,'2013-02-27 20:20:08','USER_LOGIN',1,'2013-02-27 21:20:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(459,'2013-03-01 22:12:03','USER_LOGIN',1,'2013-03-01 23:12:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(460,'2013-03-02 11:45:50','USER_LOGIN',1,'2013-03-02 12:45:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(461,'2013-03-02 15:53:51','USER_LOGIN_FAILED',1,'2013-03-02 16:53:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(462,'2013-03-02 15:53:53','USER_LOGIN',1,'2013-03-02 16:53:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(463,'2013-03-02 18:32:32','USER_LOGIN',1,'2013-03-02 19:32:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(464,'2013-03-02 22:59:36','USER_LOGIN',1,'2013-03-02 23:59:36',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(465,'2013-03-03 16:26:26','USER_LOGIN',1,'2013-03-03 17:26:26',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(466,'2013-03-03 22:50:27','USER_LOGIN',1,'2013-03-03 23:50:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(467,'2013-03-04 08:29:27','USER_LOGIN',1,'2013-03-04 09:29:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(468,'2013-03-04 18:27:28','USER_LOGIN',1,'2013-03-04 19:27:28',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; NP06)',NULL),(469,'2013-03-04 19:27:23','USER_LOGIN',1,'2013-03-04 20:27:23',1,'(UserLogged,admin)','192.168.0.254','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',NULL),(470,'2013-03-04 19:35:14','USER_LOGIN',1,'2013-03-04 20:35:14',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(471,'2013-03-04 19:55:49','USER_LOGIN',1,'2013-03-04 20:55:49',1,'(UserLogged,admin)','192.168.0.254','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',NULL),(472,'2013-03-04 21:16:13','USER_LOGIN',1,'2013-03-04 22:16:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(473,'2013-03-05 10:17:30','USER_LOGIN',1,'2013-03-05 11:17:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(474,'2013-03-05 11:02:43','USER_LOGIN',1,'2013-03-05 12:02:43',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(475,'2013-03-05 23:14:39','USER_LOGIN',1,'2013-03-06 00:14:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(476,'2013-03-06 08:58:57','USER_LOGIN',1,'2013-03-06 09:58:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(477,'2013-03-06 14:29:40','USER_LOGIN',1,'2013-03-06 15:29:40',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(478,'2013-03-06 21:53:02','USER_LOGIN',1,'2013-03-06 22:53:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(479,'2013-03-07 21:14:39','USER_LOGIN',1,'2013-03-07 22:14:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(480,'2013-03-08 00:06:05','USER_LOGIN',1,'2013-03-08 01:06:05',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(481,'2013-03-08 01:38:13','USER_LOGIN',1,'2013-03-08 02:38:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(482,'2013-03-08 08:59:50','USER_LOGIN',1,'2013-03-08 09:59:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(483,'2013-03-09 12:08:51','USER_LOGIN',1,'2013-03-09 13:08:51',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(484,'2013-03-09 15:19:53','USER_LOGIN',1,'2013-03-09 16:19:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(495,'2013-03-09 18:06:21','USER_LOGIN',1,'2013-03-09 19:06:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(496,'2013-03-09 20:01:24','USER_LOGIN',1,'2013-03-09 21:01:24',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(497,'2013-03-09 23:36:45','USER_LOGIN',1,'2013-03-10 00:36:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(498,'2013-03-10 14:37:13','USER_LOGIN',1,'2013-03-10 15:37:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(499,'2013-03-10 17:54:12','USER_LOGIN',1,'2013-03-10 18:54:12',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(500,'2013-03-11 08:57:09','USER_LOGIN',1,'2013-03-11 09:57:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(501,'2013-03-11 22:05:13','USER_LOGIN',1,'2013-03-11 23:05:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(502,'2013-03-12 08:34:27','USER_LOGIN',1,'2013-03-12 09:34:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(503,'2013-03-13 09:11:02','USER_LOGIN',1,'2013-03-13 10:11:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(504,'2013-03-13 10:02:11','USER_LOGIN',1,'2013-03-13 11:02:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(505,'2013-03-13 13:20:58','USER_LOGIN',1,'2013-03-13 14:20:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(506,'2013-03-13 16:19:28','USER_LOGIN',1,'2013-03-13 17:19:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(507,'2013-03-13 18:34:30','USER_LOGIN',1,'2013-03-13 19:34:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(508,'2013-03-14 08:25:02','USER_LOGIN',1,'2013-03-14 09:25:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(509,'2013-03-14 19:15:22','USER_LOGIN',1,'2013-03-14 20:15:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(510,'2013-03-14 21:58:53','USER_LOGIN',1,'2013-03-14 22:58:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(511,'2013-03-14 21:58:59','USER_LOGOUT',1,'2013-03-14 22:58:59',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(512,'2013-03-14 21:59:07','USER_LOGIN',1,'2013-03-14 22:59:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(513,'2013-03-14 22:58:22','USER_LOGOUT',1,'2013-03-14 23:58:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(514,'2013-03-14 23:00:25','USER_LOGIN',1,'2013-03-15 00:00:25',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(515,'2013-03-16 12:14:28','USER_LOGIN',1,'2013-03-16 13:14:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(516,'2013-03-16 16:09:01','USER_LOGIN',1,'2013-03-16 17:09:01',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(517,'2013-03-16 16:57:11','USER_LOGIN',1,'2013-03-16 17:57:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(518,'2013-03-16 19:31:31','USER_LOGIN',1,'2013-03-16 20:31:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(519,'2013-03-17 17:44:39','USER_LOGIN',1,'2013-03-17 18:44:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(520,'2013-03-17 20:40:57','USER_LOGIN',1,'2013-03-17 21:40:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(521,'2013-03-17 23:14:05','USER_LOGIN',1,'2013-03-18 00:14:05',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(522,'2013-03-17 23:28:47','USER_LOGOUT',1,'2013-03-18 00:28:47',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(523,'2013-03-17 23:28:54','USER_LOGIN',1,'2013-03-18 00:28:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(524,'2013-03-18 17:37:30','USER_LOGIN',1,'2013-03-18 18:37:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(525,'2013-03-18 18:11:37','USER_LOGIN',1,'2013-03-18 19:11:37',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(526,'2013-03-19 08:35:08','USER_LOGIN',1,'2013-03-19 09:35:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(527,'2013-03-19 09:20:23','USER_LOGIN',1,'2013-03-19 10:20:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(528,'2013-03-20 13:17:13','USER_LOGIN',1,'2013-03-20 14:17:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(529,'2013-03-20 14:44:31','USER_LOGIN',1,'2013-03-20 15:44:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(530,'2013-03-20 18:24:25','USER_LOGIN',1,'2013-03-20 19:24:25',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(531,'2013-03-20 19:15:54','USER_LOGIN',1,'2013-03-20 20:15:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(532,'2013-03-21 18:40:47','USER_LOGIN',1,'2013-03-21 19:40:47',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(533,'2013-03-21 21:42:24','USER_LOGIN',1,'2013-03-21 22:42:24',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(534,'2013-03-22 08:39:23','USER_LOGIN',1,'2013-03-22 09:39:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(535,'2013-03-23 13:04:55','USER_LOGIN',1,'2013-03-23 14:04:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(536,'2013-03-23 15:47:43','USER_LOGIN',1,'2013-03-23 16:47:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(537,'2013-03-23 22:56:36','USER_LOGIN',1,'2013-03-23 23:56:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(538,'2013-03-24 01:22:32','USER_LOGIN',1,'2013-03-24 02:22:32',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(539,'2013-03-24 14:40:42','USER_LOGIN',1,'2013-03-24 15:40:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(540,'2013-03-24 15:30:26','USER_LOGOUT',1,'2013-03-24 16:30:26',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(541,'2013-03-24 15:30:29','USER_LOGIN',1,'2013-03-24 16:30:29',2,'(UserLogged,demo)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(542,'2013-03-24 15:49:40','USER_LOGOUT',1,'2013-03-24 16:49:40',2,'(UserLogoff,demo)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(543,'2013-03-24 15:49:48','USER_LOGIN',1,'2013-03-24 16:49:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(544,'2013-03-24 15:52:35','USER_MODIFY',1,'2013-03-24 16:52:35',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(545,'2013-03-24 15:52:52','USER_MODIFY',1,'2013-03-24 16:52:52',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(546,'2013-03-24 15:53:09','USER_MODIFY',1,'2013-03-24 16:53:09',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(547,'2013-03-24 15:53:23','USER_MODIFY',1,'2013-03-24 16:53:23',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(548,'2013-03-24 16:00:04','USER_MODIFY',1,'2013-03-24 17:00:04',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(549,'2013-03-24 16:01:50','USER_MODIFY',1,'2013-03-24 17:01:50',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(550,'2013-03-24 16:10:14','USER_MODIFY',1,'2013-03-24 17:10:14',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(551,'2013-03-24 16:55:13','USER_LOGIN',1,'2013-03-24 17:55:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(552,'2013-03-24 17:44:29','USER_LOGIN',1,'2013-03-24 18:44:29',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(553,'2013-09-08 23:06:26','USER_LOGIN',1,'2013-09-09 01:06:26',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36',NULL),(554,'2013-10-21 22:32:28','USER_LOGIN',1,'2013-10-22 00:32:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36',NULL),(555,'2013-10-21 22:32:48','USER_LOGIN',1,'2013-10-22 00:32:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36',NULL),(556,'2013-11-07 00:01:51','USER_LOGIN',1,'2013-11-07 01:01:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36',NULL),(557,'2014-03-02 15:21:07','USER_LOGIN',1,'2014-03-02 16:21:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL),(558,'2014-03-02 15:36:53','USER_LOGIN',1,'2014-03-02 16:36:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL),(559,'2014-03-02 18:54:23','USER_LOGIN',1,'2014-03-02 19:54:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL),(560,'2014-03-02 19:11:17','USER_LOGIN',1,'2014-03-02 20:11:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL),(561,'2014-03-03 18:19:24','USER_LOGIN',1,'2014-03-03 19:19:24',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL),(562,'2014-12-21 12:51:38','USER_LOGIN',1,'2014-12-21 13:51:38',1,'(UserLogged,admin) - TZ=1;TZString=CET;Screen=1920x969','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36',NULL),(563,'2014-12-21 19:52:09','USER_LOGIN',1,'2014-12-21 20:52:09',1,'(UserLogged,admin) - TZ=1;TZString=CET;Screen=1920x969','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36',NULL),(566,'2015-10-03 08:49:43','USER_NEW_PASSWORD',1,'2015-10-03 10:49:43',1,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(567,'2015-10-03 08:49:43','USER_MODIFY',1,'2015-10-03 10:49:43',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(568,'2015-10-03 09:03:12','USER_MODIFY',1,'2015-10-03 11:03:12',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(569,'2015-10-03 09:03:42','USER_MODIFY',1,'2015-10-03 11:03:42',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(570,'2015-10-03 09:07:36','USER_MODIFY',1,'2015-10-03 11:07:36',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(571,'2015-10-03 09:08:58','USER_NEW_PASSWORD',1,'2015-10-03 11:08:58',1,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(572,'2015-10-03 09:08:58','USER_MODIFY',1,'2015-10-03 11:08:58',1,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(573,'2015-10-03 09:09:23','USER_MODIFY',1,'2015-10-03 11:09:23',1,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(574,'2015-10-03 09:11:04','USER_NEW_PASSWORD',1,'2015-10-03 11:11:04',1,'Password change for athestudent','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(575,'2015-10-03 09:11:04','USER_MODIFY',1,'2015-10-03 11:11:04',1,'User athestudent modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(576,'2015-10-03 09:11:53','USER_MODIFY',1,'2015-10-03 11:11:53',1,'User abookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(577,'2015-10-03 09:42:12','USER_LOGIN_FAILED',1,'2015-10-03 11:42:11',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(578,'2015-10-03 09:42:19','USER_LOGIN_FAILED',1,'2015-10-03 11:42:19',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(579,'2015-10-03 09:42:42','USER_LOGIN_FAILED',1,'2015-10-03 11:42:42',NULL,'Bad value for login or password - login=aeinstein','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(580,'2015-10-03 09:43:50','USER_LOGIN',1,'2015-10-03 11:43:50',1,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x788','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(581,'2015-10-03 09:44:44','GROUP_MODIFY',1,'2015-10-03 11:44:44',1,'Group Sale representatives modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(582,'2015-10-03 09:46:25','GROUP_CREATE',1,'2015-10-03 11:46:25',1,'Group Management created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(583,'2015-10-03 09:46:46','GROUP_CREATE',1,'2015-10-03 11:46:46',1,'Group Scientists created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(584,'2015-10-03 09:47:41','USER_CREATE',1,'2015-10-03 11:47:41',1,'User mcurie created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(585,'2015-10-03 09:47:41','USER_NEW_PASSWORD',1,'2015-10-03 11:47:41',1,'Password change for mcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(586,'2015-10-03 09:47:53','USER_MODIFY',1,'2015-10-03 11:47:53',1,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(587,'2015-10-03 09:48:32','USER_DELETE',1,'2015-10-03 11:48:32',1,'User bbb removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(588,'2015-10-03 09:48:52','USER_MODIFY',1,'2015-10-03 11:48:52',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(589,'2015-10-03 10:01:28','USER_MODIFY',1,'2015-10-03 12:01:28',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(590,'2015-10-03 10:01:39','USER_MODIFY',1,'2015-10-03 12:01:39',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(591,'2015-10-05 06:32:38','USER_LOGIN_FAILED',1,'2015-10-05 08:32:38',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(592,'2015-10-05 06:32:44','USER_LOGIN',1,'2015-10-05 08:32:44',1,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(593,'2015-10-05 07:07:52','USER_CREATE',1,'2015-10-05 09:07:52',1,'User atheceo created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(594,'2015-10-05 07:07:52','USER_NEW_PASSWORD',1,'2015-10-05 09:07:52',1,'Password change for atheceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(595,'2015-10-05 07:09:08','USER_NEW_PASSWORD',1,'2015-10-05 09:09:08',1,'Password change for aeinstein','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(596,'2015-10-05 07:09:08','USER_MODIFY',1,'2015-10-05 09:09:08',1,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(597,'2015-10-05 07:09:46','USER_CREATE',1,'2015-10-05 09:09:46',1,'User admin created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(598,'2015-10-05 07:09:46','USER_NEW_PASSWORD',1,'2015-10-05 09:09:46',1,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(599,'2015-10-05 07:10:20','USER_MODIFY',1,'2015-10-05 09:10:20',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(600,'2015-10-05 07:10:48','USER_MODIFY',1,'2015-10-05 09:10:48',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(601,'2015-10-05 07:11:22','USER_NEW_PASSWORD',1,'2015-10-05 09:11:22',1,'Password change for bbookkeeper','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(602,'2015-10-05 07:11:22','USER_MODIFY',1,'2015-10-05 09:11:22',1,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(603,'2015-10-05 07:12:37','USER_MODIFY',1,'2015-10-05 09:12:37',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(604,'2015-10-05 07:13:27','USER_MODIFY',1,'2015-10-05 09:13:27',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(605,'2015-10-05 07:13:52','USER_MODIFY',1,'2015-10-05 09:13:52',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(606,'2015-10-05 07:14:35','USER_LOGOUT',1,'2015-10-05 09:14:35',1,'(UserLogoff,aeinstein)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(607,'2015-10-05 07:14:40','USER_LOGIN_FAILED',1,'2015-10-05 09:14:40',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(608,'2015-10-05 07:14:44','USER_LOGIN_FAILED',1,'2015-10-05 09:14:44',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(609,'2015-10-05 07:14:49','USER_LOGIN',1,'2015-10-05 09:14:49',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(610,'2015-10-05 07:57:18','USER_MODIFY',1,'2015-10-05 09:57:18',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(611,'2015-10-05 08:06:54','USER_LOGOUT',1,'2015-10-05 10:06:54',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(612,'2015-10-05 08:07:03','USER_LOGIN',1,'2015-10-05 10:07:03',11,'(UserLogged,atheceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(613,'2015-10-05 19:18:46','USER_LOGIN',1,'2015-10-05 21:18:46',11,'(UserLogged,atheceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(614,'2015-10-05 19:29:35','USER_CREATE',1,'2015-10-05 21:29:35',11,'User ccommercy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(615,'2015-10-05 19:29:35','USER_NEW_PASSWORD',1,'2015-10-05 21:29:35',11,'Password change for ccommercy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(616,'2015-10-05 19:30:13','GROUP_CREATE',1,'2015-10-05 21:30:13',11,'Group Commercial created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(617,'2015-10-05 19:31:37','USER_NEW_PASSWORD',1,'2015-10-05 21:31:37',11,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(618,'2015-10-05 19:31:37','USER_MODIFY',1,'2015-10-05 21:31:37',11,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(619,'2015-10-05 19:32:00','USER_MODIFY',1,'2015-10-05 21:32:00',11,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(620,'2015-10-05 19:33:33','USER_CREATE',1,'2015-10-05 21:33:33',11,'User sscientol created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(621,'2015-10-05 19:33:33','USER_NEW_PASSWORD',1,'2015-10-05 21:33:33',11,'Password change for sscientol','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(622,'2015-10-05 19:33:47','USER_NEW_PASSWORD',1,'2015-10-05 21:33:47',11,'Password change for mcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(623,'2015-10-05 19:33:47','USER_MODIFY',1,'2015-10-05 21:33:47',11,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(624,'2015-10-05 19:34:23','USER_NEW_PASSWORD',1,'2015-10-05 21:34:23',11,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(625,'2015-10-05 19:34:23','USER_MODIFY',1,'2015-10-05 21:34:23',11,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(626,'2015-10-05 19:34:42','USER_MODIFY',1,'2015-10-05 21:34:42',11,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(627,'2015-10-05 19:36:06','USER_NEW_PASSWORD',1,'2015-10-05 21:36:06',11,'Password change for ccommercy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(628,'2015-10-05 19:36:06','USER_MODIFY',1,'2015-10-05 21:36:06',11,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(629,'2015-10-05 19:36:57','USER_NEW_PASSWORD',1,'2015-10-05 21:36:57',11,'Password change for atheceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(630,'2015-10-05 19:36:57','USER_MODIFY',1,'2015-10-05 21:36:57',11,'User atheceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(631,'2015-10-05 19:37:27','USER_LOGOUT',1,'2015-10-05 21:37:27',11,'(UserLogoff,atheceo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(632,'2015-10-05 19:37:35','USER_LOGIN_FAILED',1,'2015-10-05 21:37:35',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(633,'2015-10-05 19:37:39','USER_LOGIN_FAILED',1,'2015-10-05 21:37:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(634,'2015-10-05 19:37:44','USER_LOGIN_FAILED',1,'2015-10-05 21:37:44',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(635,'2015-10-05 19:37:49','USER_LOGIN_FAILED',1,'2015-10-05 21:37:49',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(636,'2015-10-05 19:38:12','USER_LOGIN_FAILED',1,'2015-10-05 21:38:12',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(637,'2015-10-05 19:40:48','USER_LOGIN_FAILED',1,'2015-10-05 21:40:48',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(638,'2015-10-05 19:40:55','USER_LOGIN',1,'2015-10-05 21:40:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(639,'2015-10-05 19:43:34','USER_MODIFY',1,'2015-10-05 21:43:34',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(640,'2015-10-05 19:45:43','USER_CREATE',1,'2015-10-05 21:45:43',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(641,'2015-10-05 19:45:43','USER_NEW_PASSWORD',1,'2015-10-05 21:45:43',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(642,'2015-10-05 19:46:18','USER_DELETE',1,'2015-10-05 21:46:18',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(643,'2015-10-05 19:47:09','USER_MODIFY',1,'2015-10-05 21:47:09',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(644,'2015-10-05 19:47:22','USER_MODIFY',1,'2015-10-05 21:47:22',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(645,'2015-10-05 19:52:05','USER_MODIFY',1,'2015-10-05 21:52:05',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(646,'2015-10-05 19:52:23','USER_MODIFY',1,'2015-10-05 21:52:23',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(647,'2015-10-05 19:54:54','USER_NEW_PASSWORD',1,'2015-10-05 21:54:54',12,'Password change for zzeceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(648,'2015-10-05 19:54:54','USER_MODIFY',1,'2015-10-05 21:54:54',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(649,'2015-10-05 19:57:02','USER_MODIFY',1,'2015-10-05 21:57:02',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(650,'2015-10-05 19:57:57','USER_NEW_PASSWORD',1,'2015-10-05 21:57:57',12,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(651,'2015-10-05 19:57:57','USER_MODIFY',1,'2015-10-05 21:57:57',12,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(652,'2015-10-05 19:59:42','USER_NEW_PASSWORD',1,'2015-10-05 21:59:42',12,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(653,'2015-10-05 19:59:42','USER_MODIFY',1,'2015-10-05 21:59:42',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(654,'2015-10-05 20:00:21','USER_MODIFY',1,'2015-10-05 22:00:21',12,'User adminx modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(655,'2015-10-05 20:05:36','USER_MODIFY',1,'2015-10-05 22:05:36',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(656,'2015-10-05 20:06:25','USER_MODIFY',1,'2015-10-05 22:06:25',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(657,'2015-10-05 20:07:18','USER_MODIFY',1,'2015-10-05 22:07:18',12,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(658,'2015-10-05 20:07:36','USER_MODIFY',1,'2015-10-05 22:07:36',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(659,'2015-10-05 20:08:34','USER_MODIFY',1,'2015-10-05 22:08:34',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(660,'2015-10-05 20:47:52','USER_CREATE',1,'2015-10-05 22:47:52',12,'User cc1 created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(661,'2015-10-05 20:47:52','USER_NEW_PASSWORD',1,'2015-10-05 22:47:52',12,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(662,'2015-10-05 20:47:55','USER_LOGOUT',1,'2015-10-05 22:47:55',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(663,'2015-10-05 20:48:08','USER_LOGIN',1,'2015-10-05 22:48:08',11,'(UserLogged,zzeceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x434','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(664,'2015-10-05 20:48:39','USER_CREATE',1,'2015-10-05 22:48:39',11,'User cc2 created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(665,'2015-10-05 20:48:39','USER_NEW_PASSWORD',1,'2015-10-05 22:48:39',11,'Password change for cc2','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(666,'2015-10-05 20:48:59','USER_NEW_PASSWORD',1,'2015-10-05 22:48:59',11,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(667,'2015-10-05 20:48:59','USER_MODIFY',1,'2015-10-05 22:48:59',11,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(668,'2015-10-05 21:06:36','USER_LOGOUT',1,'2015-10-05 23:06:35',11,'(UserLogoff,zzeceo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(669,'2015-10-05 21:06:44','USER_LOGIN_FAILED',1,'2015-10-05 23:06:44',NULL,'Bad value for login or password - login=cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(670,'2015-10-05 21:07:12','USER_LOGIN_FAILED',1,'2015-10-05 23:07:12',NULL,'Bad value for login or password - login=cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(671,'2015-10-05 21:07:19','USER_LOGIN_FAILED',1,'2015-10-05 23:07:19',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(672,'2015-10-05 21:07:27','USER_LOGIN_FAILED',1,'2015-10-05 23:07:27',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(673,'2015-10-05 21:07:32','USER_LOGIN',1,'2015-10-05 23:07:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(674,'2015-10-05 21:12:28','USER_NEW_PASSWORD',1,'2015-10-05 23:12:28',12,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(675,'2015-10-05 21:12:28','USER_MODIFY',1,'2015-10-05 23:12:28',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(676,'2015-10-05 21:13:00','USER_CREATE',1,'2015-10-05 23:13:00',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(677,'2015-10-05 21:13:00','USER_NEW_PASSWORD',1,'2015-10-05 23:13:00',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(678,'2015-10-05 21:13:40','USER_DELETE',1,'2015-10-05 23:13:40',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(679,'2015-10-05 21:14:47','USER_LOGOUT',1,'2015-10-05 23:14:47',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(680,'2015-10-05 21:14:56','USER_LOGIN',1,'2015-10-05 23:14:56',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(681,'2015-10-05 21:15:56','USER_LOGOUT',1,'2015-10-05 23:15:56',16,'(UserLogoff,cc1)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(682,'2015-10-05 21:16:06','USER_LOGIN',1,'2015-10-05 23:16:06',17,'(UserLogged,cc2) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(683,'2015-10-05 21:37:25','USER_LOGOUT',1,'2015-10-05 23:37:25',17,'(UserLogoff,cc2)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(684,'2015-10-05 21:37:31','USER_LOGIN',1,'2015-10-05 23:37:31',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(685,'2015-10-05 21:43:53','USER_LOGOUT',1,'2015-10-05 23:43:53',16,'(UserLogoff,cc1)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(686,'2015-10-05 21:44:00','USER_LOGIN',1,'2015-10-05 23:44:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(687,'2015-10-05 21:46:17','USER_LOGOUT',1,'2015-10-05 23:46:17',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(688,'2015-10-05 21:46:24','USER_LOGIN',1,'2015-10-05 23:46:24',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(689,'2015-11-04 15:17:06','USER_LOGIN',1,'2015-11-04 16:17:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(690,'2015-11-15 22:04:04','USER_LOGIN',1,'2015-11-15 23:04:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(691,'2015-11-15 22:23:45','USER_MODIFY',1,'2015-11-15 23:23:45',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(692,'2015-11-15 22:24:22','USER_MODIFY',1,'2015-11-15 23:24:22',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(693,'2015-11-15 22:24:53','USER_MODIFY',1,'2015-11-15 23:24:53',12,'User cc2 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(694,'2015-11-15 22:25:17','USER_MODIFY',1,'2015-11-15 23:25:17',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(695,'2015-11-15 22:45:37','USER_LOGOUT',1,'2015-11-15 23:45:37',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(696,'2015-11-18 13:41:02','USER_LOGIN',1,'2015-11-18 14:41:02',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(697,'2015-11-18 14:23:35','USER_LOGIN',1,'2015-11-18 15:23:35',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(698,'2015-11-18 15:15:46','USER_LOGOUT',1,'2015-11-18 16:15:46',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(699,'2015-11-18 15:15:51','USER_LOGIN',1,'2015-11-18 16:15:51',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(700,'2015-11-30 17:52:08','USER_LOGIN',1,'2015-11-30 18:52:08',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(701,'2016-01-10 16:45:43','USER_LOGIN',1,'2016-01-10 17:45:43',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(702,'2016-01-10 16:45:52','USER_LOGOUT',1,'2016-01-10 17:45:52',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(703,'2016-01-10 16:46:06','USER_LOGIN',1,'2016-01-10 17:46:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(704,'2016-01-16 14:53:47','USER_LOGIN',1,'2016-01-16 15:53:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(705,'2016-01-16 15:04:29','USER_LOGOUT',1,'2016-01-16 16:04:29',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(706,'2016-01-16 15:04:40','USER_LOGIN',1,'2016-01-16 16:04:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(707,'2016-01-22 09:33:26','USER_LOGIN',1,'2016-01-22 10:33:26',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(708,'2016-01-22 09:35:19','USER_LOGOUT',1,'2016-01-22 10:35:19',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(709,'2016-01-22 09:35:29','USER_LOGIN',1,'2016-01-22 10:35:29',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(710,'2016-01-22 10:47:34','USER_CREATE',1,'2016-01-22 11:47:34',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(711,'2016-01-22 10:47:34','USER_NEW_PASSWORD',1,'2016-01-22 11:47:34',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(712,'2016-01-22 12:07:56','USER_LOGIN',1,'2016-01-22 13:07:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(713,'2016-01-22 12:36:25','USER_NEW_PASSWORD',1,'2016-01-22 13:36:25',12,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(714,'2016-01-22 12:36:25','USER_MODIFY',1,'2016-01-22 13:36:25',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(715,'2016-01-22 12:56:32','USER_MODIFY',1,'2016-01-22 13:56:32',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(716,'2016-01-22 12:58:05','USER_MODIFY',1,'2016-01-22 13:58:05',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(717,'2016-01-22 13:01:02','USER_MODIFY',1,'2016-01-22 14:01:02',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(718,'2016-01-22 13:01:18','USER_MODIFY',1,'2016-01-22 14:01:18',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(719,'2016-01-22 13:13:42','USER_MODIFY',1,'2016-01-22 14:13:42',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(720,'2016-01-22 13:15:20','USER_DELETE',1,'2016-01-22 14:15:20',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(721,'2016-01-22 13:19:21','USER_LOGOUT',1,'2016-01-22 14:19:21',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(722,'2016-01-22 13:19:32','USER_LOGIN',1,'2016-01-22 14:19:32',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(723,'2016-01-22 13:19:51','USER_LOGOUT',1,'2016-01-22 14:19:51',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(724,'2016-01-22 13:20:01','USER_LOGIN',1,'2016-01-22 14:20:01',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(725,'2016-01-22 13:28:22','USER_LOGOUT',1,'2016-01-22 14:28:22',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(726,'2016-01-22 13:28:35','USER_LOGIN',1,'2016-01-22 14:28:35',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(727,'2016-01-22 13:33:54','USER_LOGOUT',1,'2016-01-22 14:33:54',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(728,'2016-01-22 13:34:05','USER_LOGIN',1,'2016-01-22 14:34:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(729,'2016-01-22 13:51:46','USER_MODIFY',1,'2016-01-22 14:51:46',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(730,'2016-01-22 16:20:12','USER_LOGIN',1,'2016-01-22 17:20:12',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(731,'2016-01-22 16:20:22','USER_LOGOUT',1,'2016-01-22 17:20:22',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(732,'2016-01-22 16:20:36','USER_LOGIN',1,'2016-01-22 17:20:36',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(733,'2016-01-22 16:27:02','USER_CREATE',1,'2016-01-22 17:27:02',12,'User ldestailleur created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(734,'2016-01-22 16:27:02','USER_NEW_PASSWORD',1,'2016-01-22 17:27:02',12,'Password change for ldestailleur','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(735,'2016-01-22 16:28:34','USER_MODIFY',1,'2016-01-22 17:28:34',12,'User ldestailleur modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(736,'2016-01-22 16:30:01','USER_ENABLEDISABLE',1,'2016-01-22 17:30:01',12,'User cc2 activated','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(737,'2016-01-22 17:11:06','USER_LOGIN',1,'2016-01-22 18:11:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(738,'2016-01-22 18:00:02','USER_DELETE',1,'2016-01-22 19:00:02',12,'User zzz removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(739,'2016-01-22 18:01:40','USER_DELETE',1,'2016-01-22 19:01:40',12,'User aaab removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(740,'2016-01-22 18:01:52','USER_DELETE',1,'2016-01-22 19:01:52',12,'User zzzg removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(741,'2016-03-13 10:54:59','USER_LOGIN',1,'2016-03-13 14:54:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x971','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36',NULL),(742,'2016-07-30 11:13:10','USER_LOGIN',1,'2016-07-30 15:13:10',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(743,'2016-07-30 12:50:23','USER_CREATE',1,'2016-07-30 16:50:23',12,'User eldy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(744,'2016-07-30 12:50:23','USER_CREATE',1,'2016-07-30 16:50:23',12,'User eldy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(745,'2016-07-30 12:50:23','USER_NEW_PASSWORD',1,'2016-07-30 16:50:23',12,'Password change for eldy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(746,'2016-07-30 12:50:38','USER_MODIFY',1,'2016-07-30 16:50:38',12,'User eldy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(747,'2016-07-30 12:50:54','USER_DELETE',1,'2016-07-30 16:50:54',12,'User eldy removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(748,'2016-07-30 12:51:23','USER_NEW_PASSWORD',1,'2016-07-30 16:51:23',12,'Password change for ldestailleur','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(749,'2016-07-30 12:51:23','USER_MODIFY',1,'2016-07-30 16:51:23',12,'User ldestailleur modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(750,'2016-07-30 18:26:58','USER_LOGIN',1,'2016-07-30 22:26:58',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(751,'2016-07-30 18:27:40','USER_LOGOUT',1,'2016-07-30 22:27:40',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(752,'2016-07-30 18:27:47','USER_LOGIN',1,'2016-07-30 22:27:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(753,'2016-07-30 19:00:00','USER_LOGOUT',1,'2016-07-30 23:00:00',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(754,'2016-07-30 19:00:04','USER_LOGIN',1,'2016-07-30 23:00:04',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(755,'2016-07-30 19:00:14','USER_LOGOUT',1,'2016-07-30 23:00:14',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(756,'2016-07-30 19:00:19','USER_LOGIN',1,'2016-07-30 23:00:19',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(757,'2016-07-30 19:00:43','USER_LOGOUT',1,'2016-07-30 23:00:43',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(758,'2016-07-30 19:00:48','USER_LOGIN',1,'2016-07-30 23:00:48',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(759,'2016-07-30 19:03:52','USER_LOGOUT',1,'2016-07-30 23:03:52',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(760,'2016-07-30 19:03:57','USER_LOGIN_FAILED',1,'2016-07-30 23:03:57',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(761,'2016-07-30 19:03:59','USER_LOGIN',1,'2016-07-30 23:03:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(762,'2016-07-30 19:04:13','USER_LOGOUT',1,'2016-07-30 23:04:13',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(763,'2016-07-30 19:04:17','USER_LOGIN',1,'2016-07-30 23:04:17',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(764,'2016-07-30 19:04:26','USER_LOGOUT',1,'2016-07-30 23:04:26',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(765,'2016-07-30 19:04:31','USER_LOGIN',1,'2016-07-30 23:04:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(766,'2016-07-30 19:10:50','USER_LOGOUT',1,'2016-07-30 23:10:50',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(767,'2016-07-30 19:10:54','USER_LOGIN',1,'2016-07-30 23:10:54',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(768,'2016-07-31 10:15:52','USER_LOGIN',1,'2016-07-31 14:15:52',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL),(769,'2016-07-31 10:16:27','USER_LOGIN',1,'2016-07-31 14:16:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(770,'2016-07-31 10:32:14','USER_LOGIN',1,'2016-07-31 14:32:14',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL),(771,'2016-07-31 10:36:28','USER_LOGIN',1,'2016-07-31 14:36:28',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Links (2.8; Linux 3.19.0-46-generic x86_64; GNU C 4.8.2; text)',NULL),(772,'2016-07-31 10:40:10','USER_LOGIN',1,'2016-07-31 14:40:10',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Links (2.8; Linux 3.19.0-46-generic x86_64; GNU C 4.8.2; text)',NULL),(773,'2016-07-31 10:54:16','USER_LOGIN',1,'2016-07-31 14:54:16',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL),(774,'2016-07-31 12:52:52','USER_LOGIN',1,'2016-07-31 16:52:52',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x592','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(775,'2016-07-31 13:25:33','USER_LOGOUT',1,'2016-07-31 17:25:33',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(776,'2016-07-31 13:26:32','USER_LOGIN',1,'2016-07-31 17:26:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1280x751','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(777,'2016-07-31 14:13:57','USER_LOGOUT',1,'2016-07-31 18:13:57',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(778,'2016-07-31 14:14:04','USER_LOGIN',1,'2016-07-31 18:14:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(779,'2016-07-31 16:04:35','USER_LOGIN',1,'2016-07-31 20:04:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(780,'2016-07-31 21:14:14','USER_LOGIN',1,'2016-08-01 01:14:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(781,'2017-01-29 15:14:05','USER_LOGOUT',1,'2017-01-29 19:14:05',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(782,'2017-01-29 15:34:43','USER_LOGIN',1,'2017-01-29 19:34:43',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(783,'2017-01-29 15:35:04','USER_LOGOUT',1,'2017-01-29 19:35:04',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(784,'2017-01-29 15:35:12','USER_LOGIN',1,'2017-01-29 19:35:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(785,'2017-01-29 15:36:43','USER_LOGOUT',1,'2017-01-29 19:36:43',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(786,'2017-01-29 15:41:21','USER_LOGIN',1,'2017-01-29 19:41:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(787,'2017-01-29 15:41:41','USER_LOGOUT',1,'2017-01-29 19:41:41',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(788,'2017-01-29 15:42:43','USER_LOGIN',1,'2017-01-29 19:42:43',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(789,'2017-01-29 15:43:18','USER_LOGOUT',1,'2017-01-29 19:43:18',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(790,'2017-01-29 15:46:31','USER_LOGIN',1,'2017-01-29 19:46:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(791,'2017-01-29 16:18:56','USER_LOGIN',1,'2017-01-29 20:18:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=360x526','192.168.0.254','Mozilla/5.0 (Linux; Android 6.0; LG-H818 Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36 - DoliDroid - Android client pour Dolibarr ERP-CRM',NULL),(792,'2017-01-29 17:20:59','USER_LOGIN',1,'2017-01-29 21:20:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(793,'2017-01-30 11:19:40','USER_LOGIN',1,'2017-01-30 15:19:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(794,'2017-01-31 16:49:39','USER_LOGIN',1,'2017-01-31 20:49:39',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x520','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(795,'2017-02-01 10:55:23','USER_LOGIN',1,'2017-02-01 14:55:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(796,'2017-02-01 13:34:31','USER_LOGIN',1,'2017-02-01 17:34:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(797,'2017-02-01 14:41:26','USER_LOGIN',1,'2017-02-01 18:41:26',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(798,'2017-02-01 23:51:48','USER_LOGIN_FAILED',1,'2017-02-02 03:51:48',NULL,'Bad value for login or password - login=autologin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(799,'2017-02-01 23:52:55','USER_LOGIN',1,'2017-02-02 03:52:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(800,'2017-02-01 23:55:45','USER_CREATE',1,'2017-02-02 03:55:45',12,'User aboston created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(801,'2017-02-01 23:55:45','USER_NEW_PASSWORD',1,'2017-02-02 03:55:45',12,'Password change for aboston','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(802,'2017-02-01 23:56:38','USER_MODIFY',1,'2017-02-02 03:56:38',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(803,'2017-02-01 23:56:50','USER_MODIFY',1,'2017-02-02 03:56:50',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(804,'2017-02-02 01:14:44','USER_LOGIN',1,'2017-02-02 05:14:44',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(805,'2017-02-03 10:27:18','USER_LOGIN',1,'2017-02-03 14:27:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(806,'2017-02-04 10:22:34','USER_LOGIN',1,'2017-02-04 14:22:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x489','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(807,'2017-02-06 04:01:31','USER_LOGIN',1,'2017-02-06 08:01:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(808,'2017-02-06 10:21:32','USER_LOGIN',1,'2017-02-06 14:21:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(809,'2017-02-06 19:09:27','USER_LOGIN',1,'2017-02-06 23:09:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(810,'2017-02-06 23:39:17','USER_LOGIN',1,'2017-02-07 03:39:17',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(811,'2017-02-07 11:36:34','USER_LOGIN',1,'2017-02-07 15:36:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x676','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(812,'2017-02-07 18:51:53','USER_LOGIN',1,'2017-02-07 22:51:53',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(813,'2017-02-07 23:13:40','USER_LOGIN',1,'2017-02-08 03:13:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(814,'2017-02-08 09:29:12','USER_LOGIN',1,'2017-02-08 13:29:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(815,'2017-02-08 17:33:12','USER_LOGIN',1,'2017-02-08 21:33:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(816,'2017-02-09 17:30:34','USER_LOGIN',1,'2017-02-09 21:30:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(817,'2017-02-10 09:30:02','USER_LOGIN',1,'2017-02-10 13:30:02',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(818,'2017-02-10 16:16:14','USER_LOGIN',1,'2017-02-10 20:16:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(819,'2017-02-10 17:28:15','USER_LOGIN',1,'2017-02-10 21:28:15',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(820,'2017-02-11 12:54:03','USER_LOGIN',1,'2017-02-11 16:54:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(821,'2017-02-11 17:23:52','USER_LOGIN',1,'2017-02-11 21:23:52',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(822,'2017-02-12 12:44:03','USER_LOGIN',1,'2017-02-12 16:44:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(823,'2017-02-12 16:42:13','USER_LOGIN',1,'2017-02-12 20:42:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(824,'2017-02-12 19:14:18','USER_LOGIN',1,'2017-02-12 23:14:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(825,'2017-02-15 17:17:00','USER_LOGIN',1,'2017-02-15 21:17:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(826,'2017-02-15 22:02:40','USER_LOGIN',1,'2017-02-16 02:02:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(827,'2017-02-16 22:13:27','USER_LOGIN',1,'2017-02-17 02:13:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x619','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(828,'2017-02-16 23:54:04','USER_LOGIN',1,'2017-02-17 03:54:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(829,'2017-02-17 09:14:27','USER_LOGIN',1,'2017-02-17 13:14:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(830,'2017-02-17 12:07:05','USER_LOGIN',1,'2017-02-17 16:07:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(831,'2017-02-19 21:22:20','USER_LOGIN',1,'2017-02-20 01:22:20',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(832,'2017-02-20 09:26:47','USER_LOGIN',1,'2017-02-20 13:26:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(833,'2017-02-20 16:39:55','USER_LOGIN',1,'2017-02-20 20:39:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(834,'2017-02-20 16:49:00','USER_MODIFY',1,'2017-02-20 20:49:00',12,'Modification utilisateur ccommerson','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(835,'2017-02-20 17:57:15','USER_LOGIN',1,'2017-02-20 21:57:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(836,'2017-02-20 19:43:48','USER_LOGIN',1,'2017-02-20 23:43:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(837,'2017-02-21 00:04:05','USER_LOGIN',1,'2017-02-21 04:04:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(838,'2017-02-21 10:23:13','USER_LOGIN',1,'2017-02-21 14:23:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(839,'2017-02-21 10:30:17','USER_LOGOUT',1,'2017-02-21 14:30:17',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(840,'2017-02-21 10:30:22','USER_LOGIN',1,'2017-02-21 14:30:22',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(841,'2017-02-21 11:44:05','USER_LOGIN',1,'2017-02-21 15:44:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(842,'2017-05-12 09:02:48','USER_LOGIN',1,'2017-05-12 13:02:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36',NULL),(843,'2017-08-27 13:29:16','USER_LOGIN',1,'2017-08-27 17:29:16',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(844,'2017-08-28 09:11:07','USER_LOGIN',1,'2017-08-28 13:11:07',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(845,'2017-08-28 10:08:58','USER_LOGIN',1,'2017-08-28 14:08:58',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(846,'2017-08-28 10:12:46','USER_MODIFY',1,'2017-08-28 14:12:46',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(847,'2017-08-28 10:28:25','USER_LOGIN',1,'2017-08-28 14:28:25',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(848,'2017-08-28 10:28:36','USER_LOGOUT',1,'2017-08-28 14:28:36',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(849,'2017-08-28 10:34:50','USER_LOGIN',1,'2017-08-28 14:34:50',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(850,'2017-08-28 11:59:02','USER_LOGIN',1,'2017-08-28 15:59:02',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(851,'2017-08-29 09:57:34','USER_LOGIN',1,'2017-08-29 13:57:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(852,'2017-08-29 11:05:51','USER_LOGIN',1,'2017-08-29 15:05:51',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(853,'2017-08-29 14:15:58','USER_LOGIN',1,'2017-08-29 18:15:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(854,'2017-08-29 17:49:28','USER_LOGIN',1,'2017-08-29 21:49:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(855,'2017-08-30 11:53:25','USER_LOGIN',1,'2017-08-30 15:53:25',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(856,'2017-08-30 12:19:31','USER_MODIFY',1,'2017-08-30 16:19:31',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(857,'2017-08-30 12:19:32','USER_MODIFY',1,'2017-08-30 16:19:32',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(858,'2017-08-30 12:19:33','USER_MODIFY',1,'2017-08-30 16:19:33',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(859,'2017-08-30 12:21:42','USER_LOGOUT',1,'2017-08-30 16:21:42',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(860,'2017-08-30 12:21:48','USER_LOGIN',1,'2017-08-30 16:21:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(861,'2017-08-30 15:02:06','USER_LOGIN',1,'2017-08-30 19:02:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(862,'2017-08-31 09:25:42','USER_LOGIN',1,'2017-08-31 13:25:42',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(863,'2017-09-04 07:51:21','USER_LOGIN',1,'2017-09-04 11:51:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x577','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(864,'2017-09-04 09:17:09','USER_LOGIN',1,'2017-09-04 13:17:09',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(865,'2017-09-04 13:40:28','USER_LOGIN',1,'2017-09-04 17:40:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(866,'2017-09-06 07:55:30','USER_LOGIN',1,'2017-09-06 11:55:30',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(867,'2017-09-06 07:55:33','USER_LOGOUT',1,'2017-09-06 11:55:33',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(868,'2017-09-06 07:55:38','USER_LOGIN',1,'2017-09-06 11:55:38',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(869,'2017-09-06 16:03:38','USER_LOGIN',1,'2017-09-06 20:03:38',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(870,'2017-09-06 19:43:07','USER_LOGIN',1,'2017-09-06 23:43:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(871,'2018-01-19 11:18:08','USER_LOGOUT',1,'2018-01-19 11:18:08',12,'(UserLogoff,admin)','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',NULL),(872,'2018-01-19 11:18:47','USER_LOGIN',1,'2018-01-19 11:18:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x965','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',NULL),(873,'2018-01-19 11:21:41','USER_LOGIN',1,'2018-01-19 11:21:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x926','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL),(874,'2018-01-19 11:24:18','USER_NEW_PASSWORD',1,'2018-01-19 11:24:18',12,'Password change for admin','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL),(875,'2018-01-19 11:24:18','USER_MODIFY',1,'2018-01-19 11:24:18',12,'User admin modified','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL),(876,'2018-01-19 11:28:45','USER_LOGOUT',1,'2018-01-19 11:28:45',12,'(UserLogoff,admin)','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL),(877,'2018-03-16 09:54:15','USER_LOGIN_FAILED',1,'2018-03-16 13:54:15',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',NULL),(878,'2018-03-16 09:54:23','USER_LOGIN',1,'2018-03-16 13:54:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x936','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',NULL);
    +/*!40000 ALTER TABLE `llx_events` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expedition`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expedition`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expedition` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_customer` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `date_expedition` datetime DEFAULT NULL,
    +  `date_delivery` datetime DEFAULT NULL,
    +  `fk_address` int(11) DEFAULT NULL,
    +  `fk_shipping_method` int(11) DEFAULT NULL,
    +  `tracking_number` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  `height` float DEFAULT NULL,
    +  `height_unit` int(11) DEFAULT NULL,
    +  `width` float DEFAULT NULL,
    +  `size_units` int(11) DEFAULT NULL,
    +  `size` float DEFAULT NULL,
    +  `weight_units` int(11) DEFAULT NULL,
    +  `weight` float DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `billed` smallint(6) DEFAULT '0',
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_expedition_uk_ref` (`ref`,`entity`),
    +  KEY `idx_expedition_fk_soc` (`fk_soc`),
    +  KEY `idx_expedition_fk_user_author` (`fk_user_author`),
    +  KEY `idx_expedition_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_expedition_fk_shipping_method` (`fk_shipping_method`),
    +  CONSTRAINT `fk_expedition_fk_shipping_method` FOREIGN KEY (`fk_shipping_method`) REFERENCES `llx_c_shipment_mode` (`rowid`),
    +  CONSTRAINT `fk_expedition_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_expedition_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_expedition_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expedition`
    +--
    +
    +LOCK TABLES `llx_expedition` WRITE;
    +/*!40000 ALTER TABLE `llx_expedition` DISABLE KEYS */;
    +INSERT INTO `llx_expedition` VALUES (1,'2016-01-22 17:33:03','SH1302-0001',1,NULL,1,NULL,NULL,NULL,'2011-08-08 03:05:34',1,'2013-02-17 18:22:51',1,NULL,'2011-08-09 00:00:00',NULL,NULL,'',1,NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,'merou',NULL,NULL,NULL,NULL,0,NULL,NULL),(2,'2017-02-15 23:11:35','(PROV2)',1,NULL,4,NULL,NULL,NULL,'2017-02-16 03:11:35',12,NULL,NULL,NULL,NULL,NULL,1,'',0,NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,'merou',0,'',NULL,NULL,0,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_expedition` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expedition_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expedition_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expedition_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_expedition_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expedition_extrafields`
    +--
    +
    +LOCK TABLES `llx_expedition_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_expedition_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_expedition_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expedition_methode`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expedition_methode`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expedition_methode` (
    +  `rowid` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `active` tinyint(4) DEFAULT '0',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expedition_methode`
    +--
    +
    +LOCK TABLES `llx_expedition_methode` WRITE;
    +/*!40000 ALTER TABLE `llx_expedition_methode` DISABLE KEYS */;
    +INSERT INTO `llx_expedition_methode` VALUES (1,'2010-07-08 11:18:00','CATCH','Catch','Catch by client',1),(2,'2010-07-08 11:18:00','TRANS','Transporter','Generic transporter',1),(3,'2010-07-08 11:18:01','COLSUI','Colissimo Suivi','Colissimo Suivi',0);
    +/*!40000 ALTER TABLE `llx_expedition_methode` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expeditiondet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expeditiondet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expeditiondet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_expedition` int(11) NOT NULL,
    +  `fk_origin_line` int(11) DEFAULT NULL,
    +  `fk_entrepot` int(11) DEFAULT NULL,
    +  `qty` double DEFAULT NULL,
    +  `rang` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_expeditiondet_fk_expedition` (`fk_expedition`),
    +  CONSTRAINT `fk_expeditiondet_fk_expedition` FOREIGN KEY (`fk_expedition`) REFERENCES `llx_expedition` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expeditiondet`
    +--
    +
    +LOCK TABLES `llx_expeditiondet` WRITE;
    +/*!40000 ALTER TABLE `llx_expeditiondet` DISABLE KEYS */;
    +INSERT INTO `llx_expeditiondet` VALUES (1,1,10,3,1,0),(2,2,226,19,2,0);
    +/*!40000 ALTER TABLE `llx_expeditiondet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expeditiondet_batch`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expeditiondet_batch`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expeditiondet_batch` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_expeditiondet` int(11) NOT NULL,
    +  `eatby` date DEFAULT NULL,
    +  `sellby` date DEFAULT NULL,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty` double NOT NULL DEFAULT '0',
    +  `fk_origin_stock` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_fk_expeditiondet` (`fk_expeditiondet`),
    +  CONSTRAINT `fk_expeditiondet_batch_fk_expeditiondet` FOREIGN KEY (`fk_expeditiondet`) REFERENCES `llx_expeditiondet` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expeditiondet_batch`
    +--
    +
    +LOCK TABLES `llx_expeditiondet_batch` WRITE;
    +/*!40000 ALTER TABLE `llx_expeditiondet_batch` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_expeditiondet_batch` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expeditiondet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expeditiondet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expeditiondet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_expeditiondet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expeditiondet_extrafields`
    +--
    +
    +LOCK TABLES `llx_expeditiondet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_expeditiondet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_expeditiondet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expensereport`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expensereport`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expensereport` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_number_int` int(11) DEFAULT NULL,
    +  `ref_ext` int(11) DEFAULT NULL,
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `date_debut` date NOT NULL,
    +  `date_fin` date NOT NULL,
    +  `date_create` datetime NOT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_approve` datetime DEFAULT NULL,
    +  `date_refuse` datetime DEFAULT NULL,
    +  `date_cancel` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_author` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_validator` int(11) DEFAULT NULL,
    +  `fk_user_approve` int(11) DEFAULT NULL,
    +  `fk_user_refuse` int(11) DEFAULT NULL,
    +  `fk_user_cancel` int(11) DEFAULT NULL,
    +  `fk_statut` int(11) NOT NULL,
    +  `fk_c_paiement` int(11) DEFAULT NULL,
    +  `paid` smallint(6) NOT NULL DEFAULT '0',
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `detail_refuse` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `detail_cancel` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `integration_compta` int(11) DEFAULT NULL,
    +  `fk_bank_account` int(11) DEFAULT NULL,
    +  `model_pdf` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_expensereport_uk_ref` (`ref`,`entity`),
    +  KEY `idx_expensereport_date_debut` (`date_debut`),
    +  KEY `idx_expensereport_date_fin` (`date_fin`),
    +  KEY `idx_expensereport_fk_statut` (`fk_statut`),
    +  KEY `idx_expensereport_fk_user_author` (`fk_user_author`),
    +  KEY `idx_expensereport_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_expensereport_fk_user_approve` (`fk_user_approve`),
    +  KEY `idx_expensereport_fk_refuse` (`fk_user_approve`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expensereport`
    +--
    +
    +LOCK TABLES `llx_expensereport` WRITE;
    +/*!40000 ALTER TABLE `llx_expensereport` DISABLE KEYS */;
    +INSERT INTO `llx_expensereport` VALUES (1,'ADMIN-ER00002-150101',1,2,NULL,8.33000000,1.67000000,0.00000000,0.00000000,10.00000000,'2015-01-01','2015-01-03','2016-01-22 19:03:37','2016-01-22 19:06:50','2017-02-16 02:12:40',NULL,NULL,'2017-02-15 22:12:40',12,NULL,12,12,12,NULL,NULL,5,NULL,0,'Holidays',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(2,'(PROV2)',1,NULL,NULL,141.67000000,28.33000000,0.00000000,0.00000000,170.00000000,'2015-02-01','2015-02-28','2016-01-22 19:04:44','2015-02-28 00:00:00',NULL,NULL,NULL,'2018-03-16 10:00:54',12,12,NULL,12,NULL,NULL,NULL,0,NULL,0,'Work on projet X','','',NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(3,'(PROV3)',1,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,'2017-02-02','2017-02-02','2017-02-02 03:57:03','2017-02-02 00:00:00',NULL,NULL,NULL,'2018-03-16 10:00:54',19,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_expensereport` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expensereport_det`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expensereport_det`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expensereport_det` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_expensereport` int(11) NOT NULL,
    +  `docnumber` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_c_type_fees` int(11) NOT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `comments` text COLLATE utf8_unicode_ci NOT NULL,
    +  `product_type` int(11) DEFAULT '-1',
    +  `qty` double NOT NULL,
    +  `value_unit` double NOT NULL,
    +  `remise_percent` double DEFAULT NULL,
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `total_ht` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `total_tva` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `date` date NOT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `special_code` int(11) DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_facture` int(11) DEFAULT '0',
    +  `fk_code_ventilation` int(11) DEFAULT '0',
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `rule_warning_message` text COLLATE utf8_unicode_ci,
    +  `fk_c_exp_tax_cat` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expensereport_det`
    +--
    +
    +LOCK TABLES `llx_expensereport_det` WRITE;
    +/*!40000 ALTER TABLE `llx_expensereport_det` DISABLE KEYS */;
    +INSERT INTO `llx_expensereport_det` VALUES (1,1,NULL,3,1,'',-1,1,10,NULL,20.000,0.000,NULL,0.000,NULL,8.33000000,1.67000000,0.00000000,0.00000000,10.00000000,'2015-01-01',0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,0,'',NULL,NULL),(2,2,NULL,3,4,'',-1,1,20,NULL,20.000,0.000,NULL,0.000,NULL,16.67000000,3.33000000,0.00000000,0.00000000,20.00000000,'2015-01-07',0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,0,'',NULL,NULL),(3,2,NULL,2,5,'Train',-1,1,150,NULL,20.000,0.000,NULL,0.000,NULL,125.00000000,25.00000000,0.00000000,0.00000000,150.00000000,'2015-02-05',0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,0,'',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_expensereport_det` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expensereport_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expensereport_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expensereport_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_expensereport_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expensereport_extrafields`
    +--
    +
    +LOCK TABLES `llx_expensereport_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_expensereport_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_expensereport_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expensereport_ik`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expensereport_ik`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expensereport_ik` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_c_exp_tax_cat` int(11) NOT NULL DEFAULT '0',
    +  `fk_range` int(11) NOT NULL DEFAULT '0',
    +  `coef` double NOT NULL DEFAULT '0',
    +  `ikoffset` double NOT NULL DEFAULT '0',
    +  `active` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expensereport_ik`
    +--
    +
    +LOCK TABLES `llx_expensereport_ik` WRITE;
    +/*!40000 ALTER TABLE `llx_expensereport_ik` DISABLE KEYS */;
    +INSERT INTO `llx_expensereport_ik` VALUES (1,NULL,'2018-01-19 11:09:35',4,1,0.41,0,1),(2,NULL,'2018-01-19 11:09:35',4,2,0.244,824,1),(3,NULL,'2018-01-19 11:09:35',4,3,0.286,0,1),(4,NULL,'2018-01-19 11:09:35',5,4,0.493,0,1),(5,NULL,'2018-01-19 11:09:35',5,5,0.277,1082,1),(6,NULL,'2018-01-19 11:09:35',5,6,0.332,0,1),(7,NULL,'2018-01-19 11:09:35',6,7,0.543,0,1),(8,NULL,'2018-01-19 11:09:35',6,8,0.305,1180,1),(9,NULL,'2018-01-19 11:09:35',6,9,0.364,0,1),(10,NULL,'2018-01-19 11:09:35',7,10,0.568,0,1),(11,NULL,'2018-01-19 11:09:35',7,11,0.32,1244,1),(12,NULL,'2018-01-19 11:09:35',7,12,0.382,0,1),(13,NULL,'2018-01-19 11:09:35',8,13,0.595,0,1),(14,NULL,'2018-01-19 11:09:35',8,14,0.337,1288,1),(15,NULL,'2018-01-19 11:09:35',8,15,0.401,0,1);
    +/*!40000 ALTER TABLE `llx_expensereport_ik` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expensereport_rules`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expensereport_rules`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expensereport_rules` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `dates` datetime NOT NULL,
    +  `datee` datetime NOT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `restrictive` tinyint(4) NOT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `fk_usergroup` int(11) DEFAULT NULL,
    +  `fk_c_type_fees` int(11) NOT NULL,
    +  `code_expense_rules_type` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `is_for_all` tinyint(4) DEFAULT '0',
    +  `entity` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expensereport_rules`
    +--
    +
    +LOCK TABLES `llx_expensereport_rules` WRITE;
    +/*!40000 ALTER TABLE `llx_expensereport_rules` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_expensereport_rules` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_export_compta`
    +--
    +
    +DROP TABLE IF EXISTS `llx_export_compta`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_export_compta` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `date_export` datetime NOT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_export_compta`
    +--
    +
    +LOCK TABLES `llx_export_compta` WRITE;
    +/*!40000 ALTER TABLE `llx_export_compta` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_export_compta` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_export_model`
    +--
    +
    +DROP TABLE IF EXISTS `llx_export_model`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_export_model` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `type` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `field` text COLLATE utf8_unicode_ci NOT NULL,
    +  `filter` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_export_model` (`label`,`type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_export_model`
    +--
    +
    +LOCK TABLES `llx_export_model` WRITE;
    +/*!40000 ALTER TABLE `llx_export_model` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_export_model` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `elementtype` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'member',
    +  `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `type` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `size` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pos` int(11) DEFAULT '0',
    +  `alwayseditable` int(11) DEFAULT '0',
    +  `param` text COLLATE utf8_unicode_ci,
    +  `fieldunique` int(11) DEFAULT '0',
    +  `fieldrequired` int(11) DEFAULT '0',
    +  `perms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `list` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ishidden` int(11) DEFAULT '0',
    +  `fieldcomputed` text COLLATE utf8_unicode_ci,
    +  `fielddefault` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `langs` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `enabled` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  `help` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_extrafields_name` (`name`,`entity`,`elementtype`)
    +) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_extrafields`
    +--
    +
    +LOCK TABLES `llx_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_extrafields` DISABLE KEYS */;
    +INSERT INTO `llx_extrafields` VALUES (2,'adherent','zzz',1,'2018-01-19 11:17:49','zzz','varchar','255',0,0,NULL,0,0,NULL,'1',0,NULL,NULL,NULL,NULL,NULL,NULL,'1',NULL),(27,'projet','priority',1,'2018-01-19 11:17:49','Priority','select','',0,1,'a:1:{s:7:\"options\";a:5:{i:1;s:1:\"1\";i:2;s:1:\"2\";i:3;s:1:\"3\";i:4;s:1:\"4\";i:5;s:1:\"5\";}}',0,0,NULL,'1',0,NULL,NULL,NULL,NULL,NULL,NULL,'1',NULL);
    +/*!40000 ALTER TABLE `llx_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_factory`
    +--
    +
    +DROP TABLE IF EXISTS `llx_factory`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_factory` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) NOT NULL,
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `fk_entrepot` int(11) NOT NULL,
    +  `description` text,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `date_start_planned` datetime DEFAULT NULL,
    +  `date_start_made` datetime DEFAULT NULL,
    +  `date_end_planned` datetime DEFAULT NULL,
    +  `date_end_made` datetime DEFAULT NULL,
    +  `duration_planned` double DEFAULT NULL,
    +  `duration_made` double DEFAULT NULL,
    +  `qty_planned` double DEFAULT NULL,
    +  `qty_made` double DEFAULT NULL,
    +  `note_public` text,
    +  `note_private` text,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_close` int(11) DEFAULT NULL,
    +  `model_pdf` varchar(255) DEFAULT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_factory`
    +--
    +
    +LOCK TABLES `llx_factory` WRITE;
    +/*!40000 ALTER TABLE `llx_factory` DISABLE KEYS */;
    +INSERT INTO `llx_factory` VALUES (1,'OF1410-0001',27,1,'test','2014-10-14 20:08:55','2014-10-14 00:00:00','2014-10-14 23:59:59','2014-10-16 06:00:00','2014-10-16 00:00:00',NULL,NULL,2,2,NULL,NULL,1,NULL,NULL,NULL,2),(2,'OF1410-0002',26,1,'','2014-10-14 20:23:01','0000-00-00 00:00:00','2014-10-14 23:59:59','0000-00-00 00:00:00',NULL,NULL,NULL,1,1,NULL,NULL,1,NULL,NULL,'capucin',2);
    +/*!40000 ALTER TABLE `llx_factory` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_factory_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_factory_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_factory_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_factory_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_factory_extrafields`
    +--
    +
    +LOCK TABLES `llx_factory_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_factory_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_factory_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_factorydet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_factorydet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_factorydet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_factory` int(11) NOT NULL DEFAULT '0',
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `qty_unit` double DEFAULT NULL,
    +  `qty_planned` double DEFAULT NULL,
    +  `qty_used` double DEFAULT NULL,
    +  `qty_deleted` double DEFAULT NULL,
    +  `pmp` double(24,8) DEFAULT '0.00000000',
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `fk_mvtstockplanned` int(11) NOT NULL DEFAULT '0',
    +  `fk_mvtstockused` int(11) NOT NULL DEFAULT '0',
    +  `fk_mvtstockother` int(11) NOT NULL DEFAULT '0',
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_factorydet` (`fk_factory`,`fk_product`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_factorydet`
    +--
    +
    +LOCK TABLES `llx_factorydet` WRITE;
    +/*!40000 ALTER TABLE `llx_factorydet` DISABLE KEYS */;
    +INSERT INTO `llx_factorydet` VALUES (1,1,26,2,4,4,0,0.00000000,0.00000000,13,0,0,NULL),(2,2,25,3,3,3,0,0.00000000,0.00000000,15,0,0,NULL);
    +/*!40000 ALTER TABLE `llx_factorydet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `facnumber` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` smallint(6) NOT NULL DEFAULT '0',
    +  `ref_client` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `increment` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `datef` date DEFAULT NULL,
    +  `date_valid` date DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `paye` smallint(6) NOT NULL DEFAULT '0',
    +  `amount` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `remise_percent` double DEFAULT '0',
    +  `remise_absolue` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `close_code` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `close_note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `revenuestamp` double(24,8) DEFAULT '0.00000000',
    +  `total` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_facture_source` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_cond_reglement` int(11) NOT NULL DEFAULT '1',
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `date_lim_reglement` date DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `situation_cycle_ref` smallint(6) DEFAULT NULL,
    +  `situation_counter` smallint(6) DEFAULT NULL,
    +  `situation_final` smallint(6) DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_pointoftax` date DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_fac_rec_source` int(11) DEFAULT NULL,
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_facture_uk_facnumber` (`facnumber`,`entity`),
    +  KEY `idx_facture_fk_soc` (`fk_soc`),
    +  KEY `idx_facture_fk_user_author` (`fk_user_author`),
    +  KEY `idx_facture_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_facture_fk_facture_source` (`fk_facture_source`),
    +  KEY `idx_facture_fk_projet` (`fk_projet`),
    +  KEY `idx_facture_fk_account` (`fk_account`),
    +  KEY `idx_facture_fk_currency` (`fk_currency`),
    +  KEY `idx_facture_fk_statut` (`fk_statut`),
    +  CONSTRAINT `fk_facture_fk_facture_source` FOREIGN KEY (`fk_facture_source`) REFERENCES `llx_facture` (`rowid`),
    +  CONSTRAINT `fk_facture_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_facture_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_facture_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_facture_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=218 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture`
    +--
    +
    +LOCK TABLES `llx_facture` WRITE;
    +/*!40000 ALTER TABLE `llx_facture` DISABLE KEYS */;
    +INSERT INTO `llx_facture` VALUES (2,'FA1007-0002',1,NULL,NULL,0,NULL,NULL,2,'2010-07-10 18:20:13','2016-07-10',NULL,'2016-07-30 15:13:20',1,10.00000000,NULL,NULL,0,NULL,NULL,0.10000000,0.00000000,0.00000000,0.00000000,46.00000000,46.10000000,2,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2016-07-10',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(3,'FA1107-0006',1,NULL,NULL,0,NULL,NULL,10,'2011-07-18 20:33:35','2016-07-18',NULL,'2016-07-30 15:13:20',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,15.00000000,15.00000000,2,1,NULL,1,NULL,1,NULL,NULL,1,0,'2016-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(5,'FA1108-0003',1,NULL,NULL,0,NULL,NULL,7,'2011-08-01 03:34:11','2015-08-01',NULL,'2016-07-30 15:12:32',1,0.00000000,NULL,NULL,0,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,2,1,NULL,1,NULL,NULL,NULL,NULL,0,6,'2015-08-01',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(6,'FA1108-0004',1,NULL,NULL,0,NULL,NULL,7,'2011-08-06 20:33:53','2015-08-06',NULL,'2016-07-30 15:12:32',1,0.00000000,NULL,NULL,0,NULL,NULL,0.98000000,0.00000000,0.00000000,0.00000000,5.00000000,5.98000000,2,1,NULL,1,NULL,NULL,NULL,NULL,0,4,'2015-08-06','Cash\nReceived : 6 EUR\nRendu : 0.02 EUR\n\n--------------------------------------',NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(8,'FA1108-0005',1,NULL,NULL,3,NULL,NULL,2,'2011-08-08 02:41:44','2015-08-08',NULL,'2016-07-30 15:12:32',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(9,'FA1108-0007',1,NULL,NULL,3,NULL,NULL,10,'2011-08-08 02:55:14','2015-08-08',NULL,'2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,NULL,NULL,1.96000000,0.00000000,0.00000000,0.00000000,10.00000000,11.96000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(10,'AV1212-0001',1,NULL,NULL,2,NULL,NULL,10,'2012-12-08 17:45:20','2015-12-08','2015-12-08','2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,NULL,NULL,-0.63000000,0.00000000,0.00000000,0.00000000,-11.00000000,-11.63000000,1,1,NULL,1,3,NULL,NULL,NULL,0,0,'2015-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(12,'AV1212-0002',1,NULL,NULL,2,NULL,NULL,10,'2012-12-08 18:20:14','2015-12-08','2015-12-08','2016-07-30 15:12:32',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,-5.00000000,-5.00000000,2,1,NULL,1,3,NULL,NULL,NULL,0,0,'2015-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(13,'FA1212-0011',1,NULL,NULL,0,NULL,NULL,7,'2012-12-09 20:04:19','2015-12-09','2016-02-12','2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,NULL,NULL,2.74000000,0.00000000,0.00000000,0.00000000,14.00000000,16.74000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-12-09',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(32,'FA1212-0021',1,NULL,NULL,0,NULL,NULL,1,'2012-12-11 09:34:23','2015-12-11','2016-03-24','2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,NULL,NULL,90.00000000,0.00000000,0.00000000,0.60000000,520.00000000,610.60000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(33,'FA1212-0023',1,NULL,NULL,0,NULL,NULL,1,'2012-12-11 09:34:23','2015-12-11','2017-03-03','2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,'abandon',NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,3,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(55,'FA1212-0009',1,NULL,NULL,0,NULL,NULL,1,'2012-12-11 09:35:51','2015-12-11','2015-12-12','2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,NULL,NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-12-11','This is a comment (private)','This is a comment (public)','generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(148,'FS1301-0001',1,NULL,NULL,0,NULL,NULL,1,'2013-01-19 18:22:48','2016-01-19','2016-01-19','2016-07-30 15:13:20',0,0.00000000,NULL,NULL,0,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,1,1,NULL,1,NULL,NULL,NULL,NULL,0,1,'2016-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(149,'FA1601-0024',1,NULL,NULL,0,NULL,NULL,1,'2013-01-19 18:30:05','2016-01-19','2017-08-29','2018-03-16 09:59:31',0,0.00000000,NULL,NULL,0,NULL,NULL,1.80000000,0.90000000,0.90000000,0.00000000,20.00000000,23.60000000,1,1,NULL,12,NULL,NULL,NULL,NULL,0,0,'2016-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,20.00000000,1.80000000,23.60000000,NULL,'facture/FA1601-0024/FA1601-0024.pdf'),(150,'FA6801-0010',1,NULL,NULL,0,NULL,NULL,1,'2013-01-19 18:31:10','2016-01-19','2016-01-19','2016-07-30 15:13:20',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,0,1,'2016-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(151,'FS1301-0002',1,NULL,NULL,0,NULL,NULL,1,'2013-01-19 18:31:58','2016-01-19','2016-01-19','2016-07-30 15:13:20',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,0,1,'2016-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(160,'FA1507-0015',1,NULL,NULL,0,NULL,NULL,12,'2013-03-06 16:47:48','2016-07-18','2014-03-06','2016-07-30 15:13:20',0,0.00000000,NULL,NULL,0,NULL,NULL,1.11000000,0.00000000,0.00000000,0.00000000,8.89000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2016-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(210,'FA1107-0019',1,NULL,NULL,0,NULL,NULL,10,'2013-03-20 14:30:11','2016-07-10','2018-03-20','2016-07-30 15:13:20',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2016-07-10',NULL,NULL,'generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(211,'FA1303-0020',1,NULL,NULL,0,NULL,NULL,19,'2013-03-22 09:40:10','2016-03-22','2017-03-02','2017-02-06 04:11:17',0,0.00000000,NULL,NULL,0,NULL,NULL,17.64000000,0.00000000,0.00000000,0.40000000,340.00000000,358.04000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,3,'2016-03-22',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(213,'AV1303-0003',1,NULL,NULL,2,NULL,NULL,1,'2014-03-03 19:22:03','2016-03-03','2017-03-03','2016-07-30 15:13:20',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,-1000.00000000,-1000.00000000,1,1,NULL,1,32,NULL,NULL,NULL,0,0,'2016-03-03',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(216,'(PROV216)',1,NULL,NULL,0,NULL,NULL,26,'2017-02-12 23:21:27','2017-02-12',NULL,'2017-02-12 19:21:27',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2017-02-12',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,'',NULL,0,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(217,'(PROV217)',1,NULL,NULL,0,NULL,NULL,1,'2017-08-31 13:26:17','2017-08-31',NULL,'2017-08-31 09:26:17',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2017-08-31',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,'',NULL,1,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_facture` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facture_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_extrafields`
    +--
    +
    +LOCK TABLES `llx_facture_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facture_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_fourn`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_fourn`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_fourn` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `ref_supplier` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_soc` int(11) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `datef` date DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `paye` smallint(6) NOT NULL DEFAULT '0',
    +  `amount` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `remise` double(24,8) DEFAULT '0.00000000',
    +  `close_code` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `close_note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_facture_source` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_cond_reglement` int(11) DEFAULT NULL,
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `date_lim_reglement` date DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_pointoftax` date DEFAULT NULL,
    +  `date_valid` date DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_facture_fourn_ref` (`ref`,`entity`),
    +  UNIQUE KEY `uk_facture_fourn_ref_supplier` (`ref_supplier`,`fk_soc`,`entity`),
    +  KEY `idx_facture_fourn_date_lim_reglement` (`date_lim_reglement`),
    +  KEY `idx_facture_fourn_fk_soc` (`fk_soc`),
    +  KEY `idx_facture_fourn_fk_user_author` (`fk_user_author`),
    +  KEY `idx_facture_fourn_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_facture_fourn_fk_projet` (`fk_projet`),
    +  CONSTRAINT `fk_facture_fourn_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_facture_fourn_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_facture_fourn_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_facture_fourn_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_fourn`
    +--
    +
    +LOCK TABLES `llx_facture_fourn` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_fourn` DISABLE KEYS */;
    +INSERT INTO `llx_facture_fourn` VALUES (16,'SI1601-0001','FR70813',1,NULL,0,1,'2012-12-19 15:24:11','2003-04-11','2017-02-06 04:08:22','OVH FR70813',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,829.00000000,162.48000000,991.48000000,1,1,NULL,12,NULL,NULL,NULL,1,NULL,'2003-04-11','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(17,'SI1601-0002','FR81385',1,NULL,0,1,'2013-02-13 17:19:35','2003-06-04','2017-02-06 04:08:31','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,1,NULL,'2003-06-04','','','canelle',NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(18,'SI1601-0003','FR81385',1,NULL,0,2,'2013-02-13 17:20:25','2003-06-04','2017-02-06 04:08:35','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,1,NULL,'2003-06-04','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(19,'SI1601-0004','FR813852',1,NULL,0,2,'2013-03-16 17:59:02','2013-03-16','2017-02-06 04:08:38','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,'','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(20,'SI1702-0001','INV-AE56ER08',1,NULL,0,13,'2017-02-01 19:00:31','2017-02-01','2017-02-01 15:05:28','',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,200.00000000,39.20000000,239.20000000,1,12,NULL,12,NULL,5,NULL,1,0,'2017-02-01','The customer has called us the 24th april. He agree us to not pay the remain of invoice due to default.<br />\r\nLet\'s see with our book keeper, if we must cancel invoice or ask the supplier a credit note...',NULL,'canelle',NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,39.20000000,239.20000000,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_facture_fourn` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_fourn_det`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_fourn_det`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_fourn_det` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_facture_fourn` int(11) NOT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `pu_ht` double(24,8) DEFAULT NULL,
    +  `pu_ttc` double(24,8) DEFAULT NULL,
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `total_ht` double(24,8) DEFAULT NULL,
    +  `tva` double(24,8) DEFAULT NULL,
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT NULL,
    +  `product_type` int(11) DEFAULT '0',
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `info_bits` int(11) NOT NULL DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_code_ventilation` int(11) NOT NULL DEFAULT '0',
    +  `special_code` int(11) DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facture_fourn_det_fk_facture` (`fk_facture_fourn`),
    +  KEY `fk_facture_fourn_det_fk_unit` (`fk_unit`),
    +  KEY `idx_facture_fourn_det_fk_code_ventilation` (`fk_code_ventilation`),
    +  KEY `idx_facture_fourn_det_fk_product` (`fk_product`),
    +  CONSTRAINT `fk_facture_fourn_det_fk_facture` FOREIGN KEY (`fk_facture_fourn`) REFERENCES `llx_facture_fourn` (`rowid`),
    +  CONSTRAINT `fk_facture_fourn_det_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_fourn_det`
    +--
    +
    +LOCK TABLES `llx_facture_fourn_det` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_fourn_det` DISABLE KEYS */;
    +INSERT INTO `llx_facture_fourn_det` VALUES (44,16,NULL,NULL,NULL,NULL,'<strong>ref :sd.loc.sp.512.6</strong><br>6 mois - Location de SuperPlan avec la connexion 512kbs<br>Du 11/04/2003 &agrave; 11/10/2003',414.00000000,495.14400000,1,0,19.600,'',0.000,'',0.000,'',414.00000000,81.14000000,0.00000000,0.00000000,495.14000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(45,16,NULL,NULL,NULL,NULL,'<strong>ref :sd.loc.sp.512.6</strong><br>6 mois - Location de SuperPlan avec la connexion 512kbs<br>Du 11/10/2003 &agrave; 11/04/2004',414.00000000,495.14400000,1,0,19.600,'',0.000,'',0.000,'',414.00000000,81.14000000,0.00000000,0.00000000,495.14000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(46,16,NULL,NULL,NULL,NULL,'<strong>ref :sd.installation.annuel</strong><br>Frais de mise en service d\'un serveur dédié pour un paiement annuel<br>',1.00000000,1.19600000,1,0,19.600,'',0.000,'',0.000,'',1.00000000,0.20000000,0.00000000,0.00000000,1.20000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(47,17,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.creation</strong><br>Création du compte backup ftp 250Mo.<br>',1.00000000,1.19600000,1,0,19.600,'',0.000,'',0.000,'',1.00000000,0.20000000,0.00000000,0.00000000,1.20000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(48,17,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.12</strong><br>Redevance pour un backup de 250Mo sur 12 mois<br>',25.00000000,29.90000000,1,0,19.600,'',0.000,'',0.000,'',25.00000000,4.90000000,0.00000000,0.00000000,29.90000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(49,18,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.creation</strong><br>Création du compte backup ftp 250Mo.<br>',1.00000000,1.19600000,1,0,19.600,'',0.000,'',0.000,'',1.00000000,0.20000000,0.00000000,0.00000000,1.20000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(50,18,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.12</strong><br>Redevance pour un backup de 250Mo sur 12 mois<br>',25.00000000,29.90000000,1,0,19.600,'',0.000,'',0.000,'',25.00000000,4.90000000,0.00000000,0.00000000,29.90000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(51,19,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.creation</strong><br>Création du compte backup ftp 250Mo.<br>',1.00000000,1.19600000,1,0,19.600,'',0.000,'0',0.000,'0',1.00000000,0.20000000,0.00000000,0.00000000,1.20000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(52,19,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.12</strong><br>Redevance pour un backup de 250Mo sur 12 mois<br>',25.00000000,29.90000000,1,0,19.600,'',0.000,'0',0.000,'0',25.00000000,4.90000000,0.00000000,0.00000000,29.90000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(53,20,NULL,NULL,NULL,NULL,'Chips',20.00000000,23.92000000,10,0,19.600,'',0.000,'0',0.000,'0',200.00000000,39.20000000,0.00000000,0.00000000,239.20000000,0,NULL,NULL,0,NULL,0,0,0,NULL,0,'EUR',20.00000000,200.00000000,39.20000000,239.20000000);
    +/*!40000 ALTER TABLE `llx_facture_fourn_det` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_fourn_det_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_fourn_det_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_fourn_det_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facture_fourn_det_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_fourn_det_extrafields`
    +--
    +
    +LOCK TABLES `llx_facture_fourn_det_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_fourn_det_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facture_fourn_det_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_fourn_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_fourn_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_fourn_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facture_fourn_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_fourn_extrafields`
    +--
    +
    +LOCK TABLES `llx_facture_fourn_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_fourn_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facture_fourn_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_rec`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_rec`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_rec` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `titre` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_soc` int(11) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `amount` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `remise` double DEFAULT '0',
    +  `remise_percent` double DEFAULT '0',
    +  `remise_absolue` double DEFAULT '0',
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `fk_cond_reglement` int(11) DEFAULT '0',
    +  `fk_mode_reglement` int(11) DEFAULT '0',
    +  `date_lim_reglement` date DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `modelpdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `last_gen` varchar(7) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `unit_frequency` varchar(2) COLLATE utf8_unicode_ci DEFAULT 'd',
    +  `date_when` datetime DEFAULT NULL,
    +  `date_last_gen` datetime DEFAULT NULL,
    +  `nb_gen_done` int(11) DEFAULT NULL,
    +  `nb_gen_max` int(11) DEFAULT NULL,
    +  `frequency` int(11) DEFAULT NULL,
    +  `usenewprice` int(11) DEFAULT '0',
    +  `revenuestamp` double(24,8) DEFAULT '0.00000000',
    +  `auto_validate` int(11) DEFAULT '0',
    +  `generate_pdf` int(11) DEFAULT '1',
    +  `fk_account` int(11) DEFAULT '0',
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `suspended` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_facture_rec_uk_titre` (`titre`,`entity`),
    +  KEY `idx_facture_rec_fk_soc` (`fk_soc`),
    +  KEY `idx_facture_rec_fk_user_author` (`fk_user_author`),
    +  KEY `idx_facture_rec_fk_projet` (`fk_projet`),
    +  CONSTRAINT `fk_facture_rec_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_facture_rec_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_facture_rec_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_rec`
    +--
    +
    +LOCK TABLES `llx_facture_rec` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_rec` DISABLE KEYS */;
    +INSERT INTO `llx_facture_rec` VALUES (1,'fsdfsfsfsf',1,10,'2017-02-07 03:47:00',0.00000000,0,0,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,12,NULL,1,0,NULL,NULL,NULL,NULL,NULL,'m',NULL,NULL,0,0,0,0,0.00000000,0,1,3,NULL,NULL,1.00000000,10.00000000,0.00000000,10.00000000,NULL,'2017-02-07 02:47:00','',0),(2,'fffff',1,10,'2017-02-07 03:47:58',0.00000000,0,0,0,0.00000000,0.00000000,0.00000000,5.00000000,5.00000000,12,6,1,2,NULL,NULL,NULL,NULL,NULL,'m',NULL,NULL,0,0,0,0,0.00000000,0,1,4,NULL,NULL,1.00000000,5.00000000,0.00000000,5.00000000,NULL,'2017-02-07 02:47:58','',0);
    +/*!40000 ALTER TABLE `llx_facture_rec` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_rec_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_rec_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_rec_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facture_rec_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_rec_extrafields`
    +--
    +
    +LOCK TABLES `llx_facture_rec_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_rec_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facture_rec_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facturedet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facturedet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facturedet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_facture` int(11) NOT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `fk_remise_except` int(11) DEFAULT NULL,
    +  `subprice` double(24,8) DEFAULT NULL,
    +  `price` double(24,8) DEFAULT NULL,
    +  `total_ht` double(24,8) DEFAULT NULL,
    +  `total_tva` double(24,8) DEFAULT NULL,
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT NULL,
    +  `product_type` int(11) DEFAULT '0',
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `fk_product_fournisseur_price` int(11) DEFAULT NULL,
    +  `buy_price_ht` double(24,8) DEFAULT '0.00000000',
    +  `fk_code_ventilation` int(11) NOT NULL DEFAULT '0',
    +  `special_code` int(10) unsigned DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `fk_contract_line` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `situation_percent` double DEFAULT NULL,
    +  `fk_prev_id` int(11) DEFAULT NULL,
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_fk_remise_except` (`fk_remise_except`,`fk_facture`),
    +  KEY `idx_facturedet_fk_facture` (`fk_facture`),
    +  KEY `idx_facturedet_fk_product` (`fk_product`),
    +  KEY `fk_facturedet_fk_unit` (`fk_unit`),
    +  KEY `idx_facturedet_fk_code_ventilation` (`fk_code_ventilation`),
    +  CONSTRAINT `fk_facturedet_fk_facture` FOREIGN KEY (`fk_facture`) REFERENCES `llx_facture` (`rowid`),
    +  CONSTRAINT `fk_facturedet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=1031 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facturedet`
    +--
    +
    +LOCK TABLES `llx_facturedet` WRITE;
    +/*!40000 ALTER TABLE `llx_facturedet` DISABLE KEYS */;
    +INSERT INTO `llx_facturedet` VALUES (3,2,NULL,3,NULL,'Service S1',0.000,'',0.000,'',0.000,'',1,10,4,NULL,40.00000000,36.00000000,36.00000000,0.00000000,0.00000000,0.00000000,36.00000000,1,'2010-07-10 00:00:00',NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(4,2,NULL,NULL,NULL,'Abonnement annuel assurance',1.000,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,10.00000000,0.10000000,0.00000000,0.00000000,10.10000000,0,'2010-07-10 00:00:00','2011-07-10 00:00:00',0,NULL,0.00000000,0,0,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(11,3,NULL,4,NULL,'afsdfsdfsdfsdf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(12,3,NULL,NULL,NULL,'dfdfd',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(13,5,NULL,4,NULL,'Decapsuleur',12.500,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,5.00000000,0.63000000,0.00000000,0.00000000,5.63000000,0,NULL,NULL,0,NULL,0.00000000,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(14,6,NULL,4,NULL,'Decapsuleur',19.600,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,5.00000000,0.98000000,0.00000000,0.00000000,5.98000000,0,NULL,NULL,0,NULL,0.00000000,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(21,8,NULL,NULL,NULL,'dddd',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(22,9,NULL,NULL,NULL,'ggg',19.600,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,10.00000000,1.96000000,0.00000000,0.00000000,11.96000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(23,10,NULL,4,NULL,'',12.500,'',0.000,'',0.000,'',1,0,0,NULL,-5.00000000,NULL,-5.00000000,-0.63000000,0.00000000,0.00000000,-5.63000000,0,NULL,NULL,0,NULL,12.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(24,10,NULL,1,NULL,'A beatifull pink dress\r\nlkm',0.000,'',0.000,'',0.000,'',1,0,0,NULL,-6.00000000,NULL,-6.00000000,0.00000000,0.00000000,0.00000000,-6.00000000,0,NULL,NULL,0,0,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(26,12,NULL,1,NULL,'A beatifull pink dress\r\nhfghf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,-5.00000000,NULL,-5.00000000,0.00000000,0.00000000,0.00000000,-5.00000000,0,NULL,NULL,0,0,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(27,13,NULL,NULL,NULL,'gdfgdf',19.600,'',0.000,'',0.000,'',1.4,0,0,NULL,10.00000000,NULL,14.00000000,2.74000000,0.00000000,0.00000000,16.74000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(137,33,NULL,NULL,NULL,'Desc',10.000,'',0.000,'',0.000,'',1,0,0,NULL,1.24000000,NULL,1.24000000,0.12000000,0.00000000,0.00000000,1.36000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(138,33,NULL,NULL,NULL,'Desc',10.000,'',0.000,'',0.000,'',1,0,0,NULL,1.24000000,NULL,1.24000000,0.12000000,0.00000000,0.00000000,1.36000000,0,NULL,NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(256,55,NULL,NULL,NULL,'Desc',10.000,'',0.000,'',0.000,'',1,0,0,NULL,1.24000000,NULL,1.24000000,0.12000000,0.00000000,0.00000000,1.36000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(257,55,NULL,NULL,NULL,'Desc',10.000,'',0.000,'',0.000,'',1,0,0,NULL,1.24000000,NULL,1.24000000,0.12000000,0.00000000,0.00000000,1.36000000,0,NULL,NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(753,13,NULL,2,NULL,'(Pays d\'origine: Albanie)',0.000,'',0.000,'',0.000,'',1,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,0,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(754,148,NULL,11,NULL,'hfghf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(755,148,NULL,4,NULL,'Decapsuleur',12.500,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,NULL,5.00000000,0.63000000,0.00000000,0.00000000,5.63000000,0,NULL,NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(757,150,NULL,2,NULL,'Product P1',12.500,'',0.000,'',0.000,'',1,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(758,151,NULL,2,NULL,'Product P1',12.500,'',0.000,'',0.000,'',1,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(768,32,NULL,NULL,NULL,'mlml',18.000,'',0.000,'',0.000,'',1,0,0,NULL,100.00000000,NULL,100.00000000,18.00000000,0.00000000,0.00000000,118.00000000,0,NULL,NULL,0,NULL,46.00000000,0,0,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(769,32,NULL,NULL,NULL,'mlkml',18.000,'',0.000,'',0.000,'',1,0,0,NULL,400.00000000,NULL,400.00000000,72.00000000,0.00000000,0.00000000,472.00000000,0,NULL,NULL,0,NULL,300.00000000,0,0,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(772,160,NULL,NULL,NULL,'Adhésion/cotisation 2015',12.500,'',0.000,'',0.000,'',1,0,0,NULL,8.88889000,NULL,8.89000000,1.11000000,0.00000000,0.00000000,10.00000000,1,'2015-07-18 00:00:00','2016-07-17 00:00:00',0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(776,32,NULL,NULL,NULL,'fsdfsdfds',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(777,32,NULL,NULL,NULL,'fsdfsdfds',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(779,32,NULL,NULL,NULL,'fsdfds',0.000,'',0.000,'0',0.000,'0',0,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,9,NULL,NULL,0,0,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(780,32,NULL,NULL,NULL,'ffsdf',0.000,'',0.000,'0',0.000,'0',0,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,9,NULL,NULL,0,NULL,0.00000000,0,1790,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(1022,210,NULL,NULL,NULL,'Adhésion/cotisation 2011',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,'2011-07-10 00:00:00','2012-07-09 00:00:00',0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(1023,211,NULL,NULL,NULL,'Samsung Android x4',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,250.00000000,NULL,250.00000000,0.00000000,0.00000000,0.00000000,250.00000000,0,NULL,NULL,0,NULL,200.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(1024,211,NULL,1,NULL,'A beatifull pink dress\r\nSize XXL',19.600,'',0.000,'0',0.000,'0',1,10,0,NULL,100.00000000,NULL,90.00000000,17.64000000,0.00000000,0.00000000,107.64000000,0,NULL,NULL,0,NULL,90.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(1026,213,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',10,0,0,NULL,-100.00000000,NULL,-1000.00000000,0.00000000,0.00000000,0.00000000,-1000.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(1028,149,NULL,NULL,NULL,'opoo',0.000,'CGST+SGST',9.000,'1',9.000,'1',1,0,0,NULL,10.00000000,NULL,10.00000000,0.00000000,0.90000000,0.90000000,11.80000000,0,NULL,NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,100,NULL,NULL,12,12,0,'',10.00000000,10.00000000,0.00000000,11.80000000),(1029,149,NULL,NULL,NULL,'gdgd',18.000,'IGST',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,NULL,10.00000000,1.80000000,0.00000000,0.00000000,11.80000000,0,NULL,NULL,0,NULL,0.00000000,0,0,3,NULL,NULL,100,NULL,NULL,12,12,0,'',10.00000000,10.00000000,1.80000000,11.80000000),(1030,217,NULL,NULL,NULL,'gfdgdf',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,0,NULL,NULL,100,NULL,NULL,12,12,1,'EUR',10.00000000,10.00000000,0.00000000,10.00000000);
    +/*!40000 ALTER TABLE `llx_facturedet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facturedet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facturedet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facturedet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facturedet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facturedet_extrafields`
    +--
    +
    +LOCK TABLES `llx_facturedet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facturedet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facturedet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facturedet_rec`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facturedet_rec`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facturedet_rec` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_facture` int(11) NOT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `product_type` int(11) DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `subprice` double(24,8) DEFAULT NULL,
    +  `price` double(24,8) DEFAULT NULL,
    +  `total_ht` double(24,8) DEFAULT NULL,
    +  `total_tva` double(24,8) DEFAULT NULL,
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `special_code` int(10) unsigned DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `fk_contract_line` int(11) DEFAULT NULL,
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `date_start_fill` int(11) DEFAULT '0',
    +  `date_end_fill` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_facturedet_rec_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_facturedet_rec_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facturedet_rec`
    +--
    +
    +LOCK TABLES `llx_facturedet_rec` WRITE;
    +/*!40000 ALTER TABLE `llx_facturedet_rec` DISABLE KEYS */;
    +INSERT INTO `llx_facturedet_rec` VALUES (1,1,NULL,NULL,0,NULL,'&ugrave;k&ugrave;',0.000,'',0.000,'0',0.000,'0',1,0,NULL,10.00000000,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,0),(3,2,NULL,NULL,0,NULL,'ddd',0.000,'',0.000,'0',0.000,'0',1,0,NULL,5.00000000,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,0);
    +/*!40000 ALTER TABLE `llx_facturedet_rec` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facturedet_rec_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facturedet_rec_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facturedet_rec_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facturedet_rec_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facturedet_rec_extrafields`
    +--
    +
    +LOCK TABLES `llx_facturedet_rec_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facturedet_rec_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facturedet_rec_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_fichinter`
    +--
    +
    +DROP TABLE IF EXISTS `llx_fichinter`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_fichinter` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_projet` int(11) DEFAULT '0',
    +  `fk_contrat` int(11) DEFAULT '0',
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `datei` date DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  `duree` double DEFAULT NULL,
    +  `dateo` date DEFAULT NULL,
    +  `datee` date DEFAULT NULL,
    +  `datet` date DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_fichinter_ref` (`ref`,`entity`),
    +  KEY `idx_fichinter_fk_soc` (`fk_soc`),
    +  CONSTRAINT `fk_fichinter_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_fichinter`
    +--
    +
    +LOCK TABLES `llx_fichinter` WRITE;
    +/*!40000 ALTER TABLE `llx_fichinter` DISABLE KEYS */;
    +INSERT INTO `llx_fichinter` VALUES (1,2,1,0,'FI1007-0001',1,'2016-01-22 17:39:37','2010-07-09 01:42:41','2016-01-22 18:39:37',NULL,1,NULL,12,1,10800,NULL,NULL,NULL,NULL,NULL,NULL,'soleil',NULL,NULL,NULL,NULL),(2,1,NULL,0,'FI1007-0002',1,'2012-12-08 13:11:07','2010-07-11 16:07:51',NULL,NULL,1,NULL,NULL,0,3600,NULL,NULL,NULL,'ferfrefeferf',NULL,NULL,'soleil',NULL,NULL,NULL,NULL),(3,2,NULL,0,'FI1511-0003',1,'2016-07-30 15:51:16','2015-11-18 15:57:34','2016-01-22 18:38:46',NULL,2,NULL,12,1,36000,NULL,NULL,NULL,NULL,NULL,NULL,'soleil',NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_fichinter` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_fichinter_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_fichinter_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_fichinter_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_ficheinter_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_fichinter_extrafields`
    +--
    +
    +LOCK TABLES `llx_fichinter_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_fichinter_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_fichinter_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_fichinterdet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_fichinterdet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_fichinterdet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_fichinter` int(11) DEFAULT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `date` datetime DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `duree` int(11) DEFAULT NULL,
    +  `rang` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_fichinterdet_fk_fichinter` (`fk_fichinter`),
    +  CONSTRAINT `fk_fichinterdet_fk_fichinter` FOREIGN KEY (`fk_fichinter`) REFERENCES `llx_fichinter` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_fichinterdet`
    +--
    +
    +LOCK TABLES `llx_fichinterdet` WRITE;
    +/*!40000 ALTER TABLE `llx_fichinterdet` DISABLE KEYS */;
    +INSERT INTO `llx_fichinterdet` VALUES (1,1,NULL,'2010-07-07 04:00:00','Intervention sur site',3600,0),(2,1,NULL,'2010-07-08 11:00:00','Other actions on client site.',7200,0),(3,2,NULL,'2010-07-11 05:00:00','Pres',3600,0),(5,3,NULL,'2015-11-18 09:00:00','Intervention on building windows 1',32400,0),(6,3,NULL,'2016-01-22 00:00:00','Intervention on building windows 2',3600,0);
    +/*!40000 ALTER TABLE `llx_fichinterdet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_fichinterdet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_fichinterdet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_fichinterdet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_ficheinterdet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_fichinterdet_extrafields`
    +--
    +
    +LOCK TABLES `llx_fichinterdet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_fichinterdet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_fichinterdet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_holiday`
    +--
    +
    +DROP TABLE IF EXISTS `llx_holiday`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_holiday` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL,
    +  `date_create` datetime NOT NULL,
    +  `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `date_debut` date NOT NULL,
    +  `date_fin` date NOT NULL,
    +  `halfday` int(11) DEFAULT '0',
    +  `statut` int(11) NOT NULL DEFAULT '1',
    +  `fk_validator` int(11) NOT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `date_refuse` datetime DEFAULT NULL,
    +  `fk_user_refuse` int(11) DEFAULT NULL,
    +  `date_cancel` datetime DEFAULT NULL,
    +  `fk_user_cancel` int(11) DEFAULT NULL,
    +  `detail_refuse` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_user_create` int(11) DEFAULT NULL,
    +  `fk_type` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_holiday_fk_user` (`fk_user`),
    +  KEY `idx_holiday_date_debut` (`date_debut`),
    +  KEY `idx_holiday_date_fin` (`date_fin`),
    +  KEY `idx_holiday_fk_user_create` (`fk_user_create`),
    +  KEY `idx_holiday_date_create` (`date_create`),
    +  KEY `idx_holiday_fk_validator` (`fk_validator`),
    +  KEY `idx_holiday_entity` (`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_holiday`
    +--
    +
    +LOCK TABLES `llx_holiday` WRITE;
    +/*!40000 ALTER TABLE `llx_holiday` DISABLE KEYS */;
    +INSERT INTO `llx_holiday` VALUES (1,1,'2013-02-17 19:06:35','gdf','2013-02-10','2013-02-11',0,3,1,'2013-02-17 19:06:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'0000-00-00 00:00:00',1,NULL,NULL,NULL,NULL,NULL),(2,12,'2016-01-22 19:10:01','','2016-01-04','2016-01-08',0,1,11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,5,'0000-00-00 00:00:00',1,NULL,NULL,NULL,NULL,NULL),(3,13,'2016-01-22 19:10:29','','2016-01-11','2016-01-13',0,2,11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,5,'0000-00-00 00:00:00',1,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_holiday` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_holiday_config`
    +--
    +
    +DROP TABLE IF EXISTS `llx_holiday_config`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_holiday_config` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `name` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `value` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `name` (`name`),
    +  UNIQUE KEY `idx_holiday_config` (`name`)
    +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_holiday_config`
    +--
    +
    +LOCK TABLES `llx_holiday_config` WRITE;
    +/*!40000 ALTER TABLE `llx_holiday_config` DISABLE KEYS */;
    +INSERT INTO `llx_holiday_config` VALUES (1,'userGroup','1'),(2,'lastUpdate','20170829181921'),(3,'nbUser',''),(4,'delayForRequest','31'),(5,'AlertValidatorDelay','0'),(6,'AlertValidatorSolde','0'),(7,'nbHolidayDeducted','1'),(8,'nbHolidayEveryMonth','2.08334');
    +/*!40000 ALTER TABLE `llx_holiday_config` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_holiday_logs`
    +--
    +
    +DROP TABLE IF EXISTS `llx_holiday_logs`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_holiday_logs` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `date_action` datetime NOT NULL,
    +  `fk_user_action` int(11) NOT NULL,
    +  `fk_user_update` int(11) NOT NULL,
    +  `type_action` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `prev_solde` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `new_solde` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_type` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=195 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_holiday_logs`
    +--
    +
    +LOCK TABLES `llx_holiday_logs` WRITE;
    +/*!40000 ALTER TABLE `llx_holiday_logs` DISABLE KEYS */;
    +INSERT INTO `llx_holiday_logs` VALUES (1,'2013-01-17 21:03:15',1,1,'Event : Mise à jour mensuelle','0.00','2.08',1),(2,'2013-01-17 21:03:15',1,2,'Event : Mise à jour mensuelle','0.00','2.08',1),(3,'2013-01-17 21:03:15',1,3,'Event : Mise à jour mensuelle','0.00','2.08',1),(4,'2013-02-01 09:53:26',1,1,'Event : Mise à jour mensuelle','2.08','4.16',1),(5,'2013-02-01 09:53:26',1,2,'Event : Mise à jour mensuelle','2.08','4.16',1),(6,'2013-02-01 09:53:26',1,3,'Event : Mise à jour mensuelle','2.08','4.16',1),(7,'2013-02-01 09:53:26',1,1,'Event : Mise à jour mensuelle','4.17','6.25',1),(8,'2013-02-01 09:53:26',1,2,'Event : Mise à jour mensuelle','4.17','6.25',1),(9,'2013-02-01 09:53:26',1,3,'Event : Mise à jour mensuelle','4.17','6.25',1),(10,'2013-02-01 09:53:26',1,4,'Event : Mise à jour mensuelle','0.00','2.08',1),(11,'2013-02-01 09:53:31',1,1,'Event : Mise à jour mensuelle','6.25','8.33',1),(12,'2013-02-01 09:53:31',1,2,'Event : Mise à jour mensuelle','6.25','8.33',1),(13,'2013-02-01 09:53:31',1,3,'Event : Mise à jour mensuelle','6.25','8.33',1),(14,'2013-02-01 09:53:31',1,4,'Event : Mise à jour mensuelle','2.08','4.16',1),(15,'2013-02-01 09:53:31',1,1,'Event : Mise à jour mensuelle','8.33','10.41',1),(16,'2013-02-01 09:53:31',1,2,'Event : Mise à jour mensuelle','8.33','10.41',1),(17,'2013-02-01 09:53:31',1,3,'Event : Mise à jour mensuelle','8.33','10.41',1),(18,'2013-02-01 09:53:31',1,4,'Event : Mise à jour mensuelle','4.17','6.25',1),(19,'2013-02-01 09:53:33',1,1,'Event : Mise à jour mensuelle','10.42','12.50',1),(20,'2013-02-01 09:53:33',1,2,'Event : Mise à jour mensuelle','10.42','12.50',1),(21,'2013-02-01 09:53:33',1,3,'Event : Mise à jour mensuelle','10.42','12.50',1),(22,'2013-02-01 09:53:33',1,4,'Event : Mise à jour mensuelle','6.25','8.33',1),(23,'2013-02-01 09:53:34',1,1,'Event : Mise à jour mensuelle','12.50','14.58',1),(24,'2013-02-01 09:53:34',1,2,'Event : Mise à jour mensuelle','12.50','14.58',1),(25,'2013-02-01 09:53:34',1,3,'Event : Mise à jour mensuelle','12.50','14.58',1),(26,'2013-02-01 09:53:34',1,4,'Event : Mise à jour mensuelle','8.33','10.41',1),(27,'2013-02-01 09:53:34',1,1,'Event : Mise à jour mensuelle','14.58','16.66',1),(28,'2013-02-01 09:53:34',1,2,'Event : Mise à jour mensuelle','14.58','16.66',1),(29,'2013-02-01 09:53:34',1,3,'Event : Mise à jour mensuelle','14.58','16.66',1),(30,'2013-02-01 09:53:34',1,4,'Event : Mise à jour mensuelle','10.42','12.50',1),(31,'2013-02-01 09:53:36',1,1,'Event : Mise à jour mensuelle','16.67','18.75',1),(32,'2013-02-01 09:53:36',1,2,'Event : Mise à jour mensuelle','16.67','18.75',1),(33,'2013-02-01 09:53:36',1,3,'Event : Mise à jour mensuelle','16.67','18.75',1),(34,'2013-02-01 09:53:36',1,4,'Event : Mise à jour mensuelle','12.50','14.58',1),(35,'2013-02-01 09:53:36',1,1,'Event : Mise à jour mensuelle','18.75','20.83',1),(36,'2013-02-01 09:53:36',1,2,'Event : Mise à jour mensuelle','18.75','20.83',1),(37,'2013-02-01 09:53:36',1,3,'Event : Mise à jour mensuelle','18.75','20.83',1),(38,'2013-02-01 09:53:36',1,4,'Event : Mise à jour mensuelle','14.58','16.66',1),(39,'2013-02-01 09:53:37',1,1,'Event : Mise à jour mensuelle','20.83','22.91',1),(40,'2013-02-01 09:53:37',1,2,'Event : Mise à jour mensuelle','20.83','22.91',1),(41,'2013-02-01 09:53:37',1,3,'Event : Mise à jour mensuelle','20.83','22.91',1),(42,'2013-02-01 09:53:37',1,4,'Event : Mise à jour mensuelle','16.67','18.75',1),(43,'2013-02-01 09:53:37',1,1,'Event : Mise à jour mensuelle','22.92','25.00',1),(44,'2013-02-01 09:53:37',1,2,'Event : Mise à jour mensuelle','22.92','25.00',1),(45,'2013-02-01 09:53:37',1,3,'Event : Mise à jour mensuelle','22.92','25.00',1),(46,'2013-02-01 09:53:37',1,4,'Event : Mise à jour mensuelle','18.75','20.83',1),(47,'2013-02-01 09:53:44',1,1,'Event : Mise à jour mensuelle','25.00','27.08',1),(48,'2013-02-01 09:53:44',1,2,'Event : Mise à jour mensuelle','25.00','27.08',1),(49,'2013-02-01 09:53:44',1,3,'Event : Mise à jour mensuelle','25.00','27.08',1),(50,'2013-02-01 09:53:44',1,4,'Event : Mise à jour mensuelle','20.83','22.91',1),(51,'2013-02-01 09:53:47',1,1,'Event : Mise à jour mensuelle','27.08','29.16',1),(52,'2013-02-01 09:53:47',1,2,'Event : Mise à jour mensuelle','27.08','29.16',1),(53,'2013-02-01 09:53:47',1,3,'Event : Mise à jour mensuelle','27.08','29.16',1),(54,'2013-02-01 09:53:47',1,4,'Event : Mise à jour mensuelle','22.92','25.00',1),(55,'2013-02-01 09:53:47',1,1,'Event : Mise à jour mensuelle','29.17','31.25',1),(56,'2013-02-01 09:53:47',1,2,'Event : Mise à jour mensuelle','29.17','31.25',1),(57,'2013-02-01 09:53:47',1,3,'Event : Mise à jour mensuelle','29.17','31.25',1),(58,'2013-02-01 09:53:47',1,4,'Event : Mise à jour mensuelle','25.00','27.08',1),(59,'2013-02-01 09:53:49',1,1,'Event : Mise à jour mensuelle','31.25','33.33',1),(60,'2013-02-01 09:53:49',1,2,'Event : Mise à jour mensuelle','31.25','33.33',1),(61,'2013-02-01 09:53:49',1,3,'Event : Mise à jour mensuelle','31.25','33.33',1),(62,'2013-02-01 09:53:49',1,4,'Event : Mise à jour mensuelle','27.08','29.16',1),(63,'2013-02-01 09:53:52',1,1,'Event : Mise à jour mensuelle','33.33','35.41',1),(64,'2013-02-01 09:53:52',1,2,'Event : Mise à jour mensuelle','33.33','35.41',1),(65,'2013-02-01 09:53:52',1,3,'Event : Mise à jour mensuelle','33.33','35.41',1),(66,'2013-02-01 09:53:52',1,4,'Event : Mise à jour mensuelle','29.17','31.25',1),(67,'2013-02-01 09:53:52',1,1,'Event : Mise à jour mensuelle','35.42','37.50',1),(68,'2013-02-01 09:53:52',1,2,'Event : Mise à jour mensuelle','35.42','37.50',1),(69,'2013-02-01 09:53:52',1,3,'Event : Mise à jour mensuelle','35.42','37.50',1),(70,'2013-02-01 09:53:52',1,4,'Event : Mise à jour mensuelle','31.25','33.33',1),(71,'2013-02-01 09:53:53',1,1,'Event : Mise à jour mensuelle','37.50','39.58',1),(72,'2013-02-01 09:53:53',1,2,'Event : Mise à jour mensuelle','37.50','39.58',1),(73,'2013-02-01 09:53:53',1,3,'Event : Mise à jour mensuelle','37.50','39.58',1),(74,'2013-02-01 09:53:53',1,4,'Event : Mise à jour mensuelle','33.33','35.41',1),(75,'2013-02-01 09:53:54',1,1,'Event : Mise à jour mensuelle','39.58','41.66',1),(76,'2013-02-01 09:53:54',1,2,'Event : Mise à jour mensuelle','39.58','41.66',1),(77,'2013-02-01 09:53:54',1,3,'Event : Mise à jour mensuelle','39.58','41.66',1),(78,'2013-02-01 09:53:54',1,4,'Event : Mise à jour mensuelle','35.42','37.50',1),(79,'2013-02-01 09:53:54',1,1,'Event : Mise à jour mensuelle','41.67','43.75',1),(80,'2013-02-01 09:53:54',1,2,'Event : Mise à jour mensuelle','41.67','43.75',1),(81,'2013-02-01 09:53:54',1,3,'Event : Mise à jour mensuelle','41.67','43.75',1),(82,'2013-02-01 09:53:54',1,4,'Event : Mise à jour mensuelle','37.50','39.58',1),(83,'2013-02-01 09:55:49',1,1,'Event : Mise à jour mensuelle','43.75','45.83',1),(84,'2013-02-01 09:55:49',1,2,'Event : Mise à jour mensuelle','43.75','45.83',1),(85,'2013-02-01 09:55:49',1,3,'Event : Mise à jour mensuelle','43.75','45.83',1),(86,'2013-02-01 09:55:49',1,4,'Event : Mise à jour mensuelle','39.58','41.66',1),(87,'2013-02-01 09:55:56',1,1,'Event : Mise à jour mensuelle','45.83','47.91',1),(88,'2013-02-01 09:55:56',1,2,'Event : Mise à jour mensuelle','45.83','47.91',1),(89,'2013-02-01 09:55:56',1,3,'Event : Mise à jour mensuelle','45.83','47.91',1),(90,'2013-02-01 09:55:56',1,4,'Event : Mise à jour mensuelle','41.67','43.75',1),(91,'2013-02-01 09:56:01',1,1,'Event : Mise à jour mensuelle','47.92','50.00',1),(92,'2013-02-01 09:56:01',1,2,'Event : Mise à jour mensuelle','47.92','50.00',1),(93,'2013-02-01 09:56:01',1,3,'Event : Mise à jour mensuelle','47.92','50.00',1),(94,'2013-02-01 09:56:01',1,4,'Event : Mise à jour mensuelle','43.75','45.83',1),(95,'2013-02-01 09:56:01',1,1,'Event : Mise à jour mensuelle','50.00','52.08',1),(96,'2013-02-01 09:56:01',1,2,'Event : Mise à jour mensuelle','50.00','52.08',1),(97,'2013-02-01 09:56:01',1,3,'Event : Mise à jour mensuelle','50.00','52.08',1),(98,'2013-02-01 09:56:01',1,4,'Event : Mise à jour mensuelle','45.83','47.91',1),(99,'2013-02-01 09:56:03',1,1,'Event : Mise à jour mensuelle','52.08','54.16',1),(100,'2013-02-01 09:56:03',1,2,'Event : Mise à jour mensuelle','52.08','54.16',1),(101,'2013-02-01 09:56:03',1,3,'Event : Mise à jour mensuelle','52.08','54.16',1),(102,'2013-02-01 09:56:03',1,4,'Event : Mise à jour mensuelle','47.92','50.00',1),(103,'2013-02-01 09:56:03',1,1,'Event : Mise à jour mensuelle','54.17','56.25',1),(104,'2013-02-01 09:56:03',1,2,'Event : Mise à jour mensuelle','54.17','56.25',1),(105,'2013-02-01 09:56:03',1,3,'Event : Mise à jour mensuelle','54.17','56.25',1),(106,'2013-02-01 09:56:03',1,4,'Event : Mise à jour mensuelle','50.00','52.08',1),(107,'2013-02-01 09:56:05',1,1,'Event : Mise à jour mensuelle','56.25','58.33',1),(108,'2013-02-01 09:56:05',1,2,'Event : Mise à jour mensuelle','56.25','58.33',1),(109,'2013-02-01 09:56:05',1,3,'Event : Mise à jour mensuelle','56.25','58.33',1),(110,'2013-02-01 09:56:05',1,4,'Event : Mise à jour mensuelle','52.08','54.16',1),(111,'2013-02-01 09:56:06',1,1,'Event : Mise à jour mensuelle','58.33','60.41',1),(112,'2013-02-01 09:56:06',1,2,'Event : Mise à jour mensuelle','58.33','60.41',1),(113,'2013-02-01 09:56:06',1,3,'Event : Mise à jour mensuelle','58.33','60.41',1),(114,'2013-02-01 09:56:06',1,4,'Event : Mise à jour mensuelle','54.17','56.25',1),(115,'2013-02-01 09:56:06',1,1,'Event : Mise à jour mensuelle','60.42','62.50',1),(116,'2013-02-01 09:56:06',1,2,'Event : Mise à jour mensuelle','60.42','62.50',1),(117,'2013-02-01 09:56:06',1,3,'Event : Mise à jour mensuelle','60.42','62.50',1),(118,'2013-02-01 09:56:06',1,4,'Event : Mise à jour mensuelle','56.25','58.33',1),(119,'2013-02-01 09:56:07',1,1,'Event : Mise à jour mensuelle','62.50','64.58',1),(120,'2013-02-01 09:56:07',1,2,'Event : Mise à jour mensuelle','62.50','64.58',1),(121,'2013-02-01 09:56:07',1,3,'Event : Mise à jour mensuelle','62.50','64.58',1),(122,'2013-02-01 09:56:07',1,4,'Event : Mise à jour mensuelle','58.33','60.41',1),(123,'2013-02-01 09:56:07',1,1,'Event : Mise à jour mensuelle','64.58','66.66',1),(124,'2013-02-01 09:56:07',1,2,'Event : Mise à jour mensuelle','64.58','66.66',1),(125,'2013-02-01 09:56:07',1,3,'Event : Mise à jour mensuelle','64.58','66.66',1),(126,'2013-02-01 09:56:07',1,4,'Event : Mise à jour mensuelle','60.42','62.50',1),(127,'2013-02-01 09:56:50',1,1,'Event : Mise à jour mensuelle','66.67','68.75',1),(128,'2013-02-01 09:56:50',1,2,'Event : Mise à jour mensuelle','66.67','68.75',1),(129,'2013-02-01 09:56:50',1,3,'Event : Mise à jour mensuelle','66.67','68.75',1),(130,'2013-02-01 09:56:50',1,4,'Event : Mise à jour mensuelle','62.50','64.58',1),(131,'2013-02-01 09:56:50',1,1,'Event : Mise à jour mensuelle','68.75','70.83',1),(132,'2013-02-01 09:56:50',1,2,'Event : Mise à jour mensuelle','68.75','70.83',1),(133,'2013-02-01 09:56:50',1,3,'Event : Mise à jour mensuelle','68.75','70.83',1),(134,'2013-02-01 09:56:50',1,4,'Event : Mise à jour mensuelle','64.58','66.66',1),(135,'2013-02-17 18:49:21',1,1,'Event : Mise à jour mensuelle','70.83','72.91',1),(136,'2013-02-17 18:49:21',1,2,'Event : Mise à jour mensuelle','70.83','72.91',1),(137,'2013-02-17 18:49:21',1,3,'Event : Mise à jour mensuelle','70.83','72.91',1),(138,'2013-02-17 18:49:21',1,4,'Event : Mise à jour mensuelle','66.67','68.75',1),(139,'2013-02-17 19:06:57',1,1,'Event : Holiday','72.92','71.92',1),(140,'2013-03-01 23:12:31',1,1,'Event : Mise à jour mensuelle','71.92','74.00',1),(141,'2013-03-01 23:12:31',1,2,'Event : Mise à jour mensuelle','72.92','75.00',1),(142,'2013-03-01 23:12:31',1,3,'Event : Mise à jour mensuelle','72.92','75.00',1),(143,'2013-03-01 23:12:31',1,4,'Event : Mise à jour mensuelle','68.75','70.83',1),(145,'2015-07-19 15:44:57',1,1,'Monthly update','0','2.08334',4),(146,'2015-07-19 15:44:57',1,2,'Monthly update','0','2.08334',4),(147,'2015-07-19 15:44:57',1,3,'Monthly update','0','2.08334',4),(148,'2015-07-19 15:44:57',1,4,'Monthly update','0','2.08334',4),(151,'2015-07-19 15:44:57',1,1,'Monthly update','0','2.08334',5),(152,'2015-07-19 15:44:57',1,2,'Monthly update','0','2.08334',5),(153,'2015-07-19 15:44:57',1,3,'Monthly update','0','2.08334',5),(154,'2015-07-19 15:44:57',1,4,'Monthly update','0','2.08334',5),(157,'2015-07-19 15:44:57',1,1,'Monthly update','0','2.08334',9),(158,'2015-07-19 15:44:57',1,2,'Monthly update','0','2.08334',9),(159,'2015-07-19 15:44:57',1,3,'Monthly update','0','2.08334',9),(160,'2015-07-19 15:44:57',1,4,'Monthly update','0','2.08334',9),(163,'2016-01-22 18:59:06',12,1,'Monthly update','0','2.08334',4),(164,'2016-01-22 18:59:06',12,2,'Monthly update','0','2.08334',4),(165,'2016-01-22 18:59:06',12,3,'Monthly update','0','2.08334',4),(166,'2016-01-22 18:59:06',12,4,'Monthly update','0','2.08334',4),(168,'2016-01-22 18:59:06',12,1,'Monthly update','0','2.08334',5),(169,'2016-01-22 18:59:06',12,2,'Monthly update','0','2.08334',5),(170,'2016-01-22 18:59:06',12,3,'Monthly update','0','2.08334',5),(171,'2016-01-22 18:59:06',12,4,'Monthly update','0','2.08334',5),(173,'2016-01-22 18:59:06',12,1,'Monthly update','0','2.08334',9),(174,'2016-01-22 18:59:06',12,2,'Monthly update','0','2.08334',9),(175,'2016-01-22 18:59:06',12,3,'Monthly update','0','2.08334',9),(176,'2016-01-22 18:59:06',12,4,'Monthly update','0','2.08334',9),(178,'2016-01-22 18:59:38',12,18,'Manual update','0','10',5),(179,'2016-01-22 18:59:42',12,16,'Manual update','0','10',5),(180,'2016-01-22 18:59:45',12,12,'Manual update','0','10',5),(181,'2016-01-22 18:59:49',12,1,'Manual update','0','10',5),(182,'2016-01-22 18:59:52',12,2,'Manual update','0','10',5),(183,'2016-01-22 18:59:55',12,3,'Manual update','0','5',5),(184,'2016-07-30 19:45:49',12,1,'Manual update','0','25',3),(185,'2016-07-30 19:45:52',12,2,'Manual update','0','23',3),(186,'2016-07-30 19:45:54',12,3,'Manual update','0','10',3),(187,'2016-07-30 19:45:57',12,4,'Manual update','0','-4',3),(188,'2016-07-30 19:46:02',12,10,'Manual update','0','20',3),(189,'2016-07-30 19:46:04',12,11,'Manual update','0','30',3),(190,'2016-07-30 19:46:07',12,12,'Manual update','0','15',3),(191,'2016-07-30 19:46:09',12,13,'Manual update','0','11',3),(192,'2016-07-30 19:46:12',12,14,'Manual update','0','4',3),(193,'2016-07-30 19:46:14',12,16,'Manual update','0','5',3),(194,'2016-07-30 19:46:16',12,18,'Manual update','0','22',3);
    +/*!40000 ALTER TABLE `llx_holiday_logs` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_holiday_users`
    +--
    +
    +DROP TABLE IF EXISTS `llx_holiday_users`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_holiday_users` (
    +  `fk_user` int(11) NOT NULL,
    +  `nb_holiday` double NOT NULL DEFAULT '0',
    +  `fk_type` int(11) NOT NULL DEFAULT '1',
    +  UNIQUE KEY `uk_holiday_users` (`fk_user`,`fk_type`,`nb_holiday`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_holiday_users`
    +--
    +
    +LOCK TABLES `llx_holiday_users` WRITE;
    +/*!40000 ALTER TABLE `llx_holiday_users` DISABLE KEYS */;
    +INSERT INTO `llx_holiday_users` VALUES (0,0,1),(1,74.00334000000001,1),(1,25,3),(1,10,5),(2,75.00024000000003,1),(2,23,3),(2,10,5),(3,75.00024000000003,1),(3,10,3),(3,5,5),(4,70.83356000000002,1),(4,-4,3),(5,2.08334,1),(6,0,1),(10,20,3),(11,30,3),(12,15,3),(12,10,5),(13,11,3),(14,4,3),(16,5,3),(16,10,5),(18,22,3),(18,10,5);
    +/*!40000 ALTER TABLE `llx_holiday_users` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_import_model`
    +--
    +
    +DROP TABLE IF EXISTS `llx_import_model`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_import_model` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `type` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `field` text COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_import_model` (`label`,`type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_import_model`
    +--
    +
    +LOCK TABLES `llx_import_model` WRITE;
    +/*!40000 ALTER TABLE `llx_import_model` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_import_model` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_inventory`
    +--
    +
    +DROP TABLE IF EXISTS `llx_inventory`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_inventory` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_warehouse` int(11) DEFAULT NULL,
    +  `date_inventory` date DEFAULT NULL,
    +  `title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_validation` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_inventory_ref` (`ref`,`entity`),
    +  KEY `idx_inventory_rowid` (`rowid`),
    +  KEY `idx_inventory_ref` (`ref`),
    +  KEY `idx_inventory_entity` (`entity`),
    +  KEY `idx_inventory_fk_warehouse` (`fk_warehouse`),
    +  KEY `idx_inventory_status` (`status`),
    +  KEY `idx_inventory_import_key` (`import_key`),
    +  KEY `idx_inventory_tms` (`tms`),
    +  KEY `idx_inventory_datec` (`datec`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_inventory`
    +--
    +
    +LOCK TABLES `llx_inventory` WRITE;
    +/*!40000 ALTER TABLE `llx_inventory` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_inventory` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_inventory_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_inventory_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_inventory_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_inventory_extrafields`
    +--
    +
    +LOCK TABLES `llx_inventory_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_inventory_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_inventory_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_inventorydet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_inventorydet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_inventorydet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_inventory` int(11) DEFAULT '0',
    +  `fk_warehouse` int(11) DEFAULT '0',
    +  `fk_product` int(11) DEFAULT '0',
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty_view` double DEFAULT NULL,
    +  `qty_stock` double DEFAULT NULL,
    +  `qty_regulated` double DEFAULT NULL,
    +  `pmp` double DEFAULT '0',
    +  `pa` double DEFAULT '0',
    +  `new_pmp` double DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_inventorydet_tms` (`tms`),
    +  KEY `idx_inventorydet_datec` (`datec`),
    +  KEY `idx_inventorydet_fk_inventory` (`fk_inventory`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_inventorydet`
    +--
    +
    +LOCK TABLES `llx_inventorydet` WRITE;
    +/*!40000 ALTER TABLE `llx_inventorydet` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_inventorydet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_lead`
    +--
    +
    +DROP TABLE IF EXISTS `llx_lead`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_lead` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '0',
    +  `ref_ext` mediumtext COLLATE utf8_unicode_ci,
    +  `ref_int` mediumtext COLLATE utf8_unicode_ci,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_c_status` int(11) NOT NULL,
    +  `fk_c_type` int(11) NOT NULL,
    +  `date_closure` datetime NOT NULL,
    +  `amount_prosp` double(24,8) NOT NULL,
    +  `fk_user_resp` int(11) NOT NULL,
    +  `description` mediumtext COLLATE utf8_unicode_ci,
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  `note_private` mediumtext COLLATE utf8_unicode_ci,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_llx_lead_fk_c_status` (`fk_c_status`),
    +  KEY `idx_llx_lead_fk_c_type` (`fk_c_type`),
    +  KEY `idx_llx_lead_fk_soc` (`fk_soc`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_lead`
    +--
    +
    +LOCK TABLES `llx_lead` WRITE;
    +/*!40000 ALTER TABLE `llx_lead` DISABLE KEYS */;
    +INSERT INTO `llx_lead` VALUES (1,'LEA-1506-0001',1,NULL,'50',27,6,1,'2015-07-27 00:00:00',2000.00000000,1,NULL,NULL,NULL,1,'2015-06-27 13:44:33',1,'2015-06-27 21:53:05');
    +/*!40000 ALTER TABLE `llx_lead` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_lead_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_lead_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_lead_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idxlead_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_lead_extrafields`
    +--
    +
    +LOCK TABLES `llx_lead_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_lead_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_lead_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_links`
    +--
    +
    +DROP TABLE IF EXISTS `llx_links`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_links` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datea` datetime NOT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `objecttype` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `objectid` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_links` (`objectid`,`label`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_links`
    +--
    +
    +LOCK TABLES `llx_links` WRITE;
    +/*!40000 ALTER TABLE `llx_links` DISABLE KEYS */;
    +INSERT INTO `llx_links` VALUES (1,1,'2016-01-16 16:45:35','http://www.dolicloud.com','The DoliCoud service','societe',10),(2,1,'2016-01-16 17:14:35','https://www.dolistore.com/en/tools-documentation/12-SVG-file-for-85cm-x-200cm-rollup.html','Link to rollup file on dolistore.com','product',11),(3,1,'2016-01-22 17:40:23','http://www.nltechno.com','NLtechno portal','societe',10),(4,1,'2016-01-22 18:32:31','https://play.google.com/store/apps/details?id=com.nltechno.dolidroidpro','Link on Google Play','product',5);
    +/*!40000 ALTER TABLE `llx_links` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_livraison`
    +--
    +
    +DROP TABLE IF EXISTS `llx_livraison`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_livraison` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_customer` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `date_delivery` datetime DEFAULT NULL,
    +  `fk_address` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_livraison_uk_ref` (`ref`,`entity`),
    +  KEY `idx_livraison_fk_soc` (`fk_soc`),
    +  KEY `idx_livraison_fk_user_author` (`fk_user_author`),
    +  KEY `idx_livraison_fk_user_valid` (`fk_user_valid`),
    +  CONSTRAINT `fk_livraison_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_livraison_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_livraison_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_livraison`
    +--
    +
    +LOCK TABLES `llx_livraison` WRITE;
    +/*!40000 ALTER TABLE `llx_livraison` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_livraison` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_livraison_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_livraison_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_livraison_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_livraison_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_livraison_extrafields`
    +--
    +
    +LOCK TABLES `llx_livraison_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_livraison_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_livraison_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_livraisondet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_livraisondet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_livraisondet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_livraison` int(11) DEFAULT NULL,
    +  `fk_origin_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `qty` double DEFAULT NULL,
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `rang` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_livraisondet_fk_expedition` (`fk_livraison`),
    +  CONSTRAINT `fk_livraisondet_fk_livraison` FOREIGN KEY (`fk_livraison`) REFERENCES `llx_livraison` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_livraisondet`
    +--
    +
    +LOCK TABLES `llx_livraisondet` WRITE;
    +/*!40000 ALTER TABLE `llx_livraisondet` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_livraisondet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_livraisondet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_livraisondet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_livraisondet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_livraisondet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_livraisondet_extrafields`
    +--
    +
    +LOCK TABLES `llx_livraisondet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_livraisondet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_livraisondet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_loan`
    +--
    +
    +DROP TABLE IF EXISTS `llx_loan`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_loan` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(80) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `capital` double(24,8) DEFAULT NULL,
    +  `datestart` date DEFAULT NULL,
    +  `dateend` date DEFAULT NULL,
    +  `nbterm` double DEFAULT NULL,
    +  `rate` double NOT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `capital_position` double(24,8) DEFAULT NULL,
    +  `date_position` date DEFAULT NULL,
    +  `paid` smallint(6) NOT NULL DEFAULT '0',
    +  `accountancy_account_capital` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_account_insurance` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_account_interest` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `fk_projet` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_loan`
    +--
    +
    +LOCK TABLES `llx_loan` WRITE;
    +/*!40000 ALTER TABLE `llx_loan` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_loan` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_loan_schedule`
    +--
    +
    +DROP TABLE IF EXISTS `llx_loan_schedule`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_loan_schedule` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_loan` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount_capital` double(24,8) DEFAULT NULL,
    +  `amount_insurance` double(24,8) DEFAULT NULL,
    +  `amount_interest` double(24,8) DEFAULT NULL,
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_loan_schedule`
    +--
    +
    +LOCK TABLES `llx_loan_schedule` WRITE;
    +/*!40000 ALTER TABLE `llx_loan_schedule` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_loan_schedule` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_localtax`
    +--
    +
    +DROP TABLE IF EXISTS `llx_localtax`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_localtax` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `localtaxtype` tinyint(4) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` date DEFAULT NULL,
    +  `datev` date DEFAULT NULL,
    +  `amount` double NOT NULL DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_localtax`
    +--
    +
    +LOCK TABLES `llx_localtax` WRITE;
    +/*!40000 ALTER TABLE `llx_localtax` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_localtax` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_mailing`
    +--
    +
    +DROP TABLE IF EXISTS `llx_mailing`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_mailing` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `statut` smallint(6) DEFAULT '0',
    +  `titre` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `sujet` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `body` mediumtext COLLATE utf8_unicode_ci,
    +  `bgcolor` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bgimage` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cible` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `nbemail` int(11) DEFAULT NULL,
    +  `email_from` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_replyto` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_errorsto` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tag` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creat` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_appro` datetime DEFAULT NULL,
    +  `date_envoi` datetime DEFAULT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_appro` int(11) DEFAULT NULL,
    +  `joined_file1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file3` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file4` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_mailing`
    +--
    +
    +LOCK TABLES `llx_mailing` WRITE;
    +/*!40000 ALTER TABLE `llx_mailing` DISABLE KEYS */;
    +INSERT INTO `llx_mailing` VALUES (3,2,'Commercial emailing January',1,'Buy my product','<div style=\"text-align: center; background: #220044\"><span style=\"color:#FFFFFF\"><strong><span style=\"font-size:18px\"><img alt=\"\" src=\"/dolibarr_4.0/htdocs/viewimage.php?modulepart=medias&file=image/myimagesforemailing/dolicloud_logo_white.png\" style=\"height:80px; width:260px\" /></span></strong></span><br />\r\n<a href=\"http://www.facebook.com\" target=\"_new\"><img alt=\"Seguici su facebook\" src=\"https://mosaico.io/templates/versafluid/img/social/facebook.png\" style=\"height:24px; padding:0px 5px 0px 5px; width:24px\" /></a><a href=\"http://www.twitter.com\" target=\"_new\"><img alt=\"Seguici su twitter\" src=\"https://mosaico.io/templates/versafluid/img/social/twitter.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a><a href=\"http://plus.google.com\" target=\"_new\"><img alt=\"Seguici su G+\" src=\"https://mosaico.io/templates/versafluid/img/social/google-plus.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a><a href=\"http://www.linkedin.com\" target=\"_new\"><img alt=\"Seguici su linkedin\" src=\"https://mosaico.io/templates/versafluid/img/social/linkedin.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a></div>\r\n\r\n<table style=\"background:#ffffff; border:0; margin:0; padding:5px; text-align:center; width:100%\">\r\n	<tbody>\r\n		<tr>\r\n			<td>\r\n			<table cellpadding=\"0\" cellspacing=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n				<tbody>\r\n					<tr>\r\n						<td>\r\n						<table border=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n							<tbody>\r\n								<tr>\r\n									<td>\r\n									<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n										<tbody>\r\n											<tr>\r\n												<td>\r\n												<p style=\"text-align:center\"><span style=\"font-size:16px\"><strong>DoliCloud</strong> is the service to provide you a web hosting solution of Dolibarr ERP CRM in one click. Just enter your email to create your instance and you are ready to work. Backup and full access is to data (SFTP, Mysql) are provided.</span></p>\r\n												</td>\r\n											</tr>\r\n										</tbody>\r\n									</table>\r\n									</td>\r\n								</tr>\r\n								<tr>\r\n									<td>\r\n									<table style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n										<tbody>\r\n											<tr>\r\n												<td>\r\n												<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"responsive-table\" style=\"width:100%\">\r\n													<tbody>\r\n														<tr>\r\n															<td style=\"text-align:center\"><a class=\"mobile-button\" href=\"https://www.on.dolicloud.com/signUp/index?origin=dolicloudhome&planCode=basic\" style=\"display: inline-block; font-size: 18px; font-family: Helvetica, Arial, sans-serif; font-weight: normal; color: #ffffff; text-decoration: none; background-color: #9C010F; padding-top: 15px; padding-bottom: 15px; padding-left: 25px; padding-right: 25px; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-bottom: 3px solid #5f0109;\" target=\"_new\">Test Dolibarr ERP CRM on Dolicloud →</a></td>\r\n														</tr>\r\n													</tbody>\r\n												</table>\r\n												</td>\r\n											</tr>\r\n										</tbody>\r\n									</table>\r\n									</td>\r\n								</tr>\r\n							</tbody>\r\n						</table>\r\n						</td>\r\n					</tr>\r\n				</tbody>\r\n			</table>\r\n			</td>\r\n		</tr>\r\n	</tbody>\r\n</table>\r\n\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"ko_footerBlock_2\" style=\"min-width:500px; width:100%\">\r\n	<tbody>\r\n		<tr>\r\n			<td>\r\n			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:100%\">\r\n				<tbody>\r\n					<tr>\r\n						<td>\r\n						<table align=\"center\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n							<tbody>\r\n								<tr>\r\n									<td style=\"text-align:center\"><span style=\"color:#3F3D33\">DoliCloud team</span><br />\r\n									<strong><a class=\"original-only\" href=\"%5Bprofile_link%5D\" style=\"color: #3F3D33; text-decoration: none;\" target=\"_new\">Unsubscribe</a><span style=\"color:#444444; font-family:arial,sans-serif; font-size:12px\">   |   </span><a href=\"%5Bshow_link%5D\" style=\"color: #3F3D33; text-decoration: none;\" target=\"_new\">View on web browser</a></strong></td>\r\n								</tr>\r\n							</tbody>\r\n						</table>\r\n						</td>\r\n					</tr>\r\n				</tbody>\r\n			</table>\r\n			</td>\r\n		</tr>\r\n	</tbody>\r\n</table>','','',NULL,26,'dolibarr@domain.com','','',NULL,'2010-07-11 13:15:59','2017-01-29 21:33:11',NULL,'2017-01-29 21:36:40',1,12,NULL,NULL,NULL,NULL,NULL,NULL),(4,0,'Commercial emailing February',1,'Buy my product','This is a new éEéé\"Mailing content<br />\r\n<br />\r\n<style type=\"text/css\">\r\n<!--\r\na:link {\r\n	color: #E2017A;\r\n}\r\n--></style>\r\n<span style=\"color:#800080;\"><strong>You can adit it with the WYSIWYG editor.</strong></span><br />\r\nIt is\r\n<ul>\r\n	<li>\r\n		Fast</li>\r\n	<li>\r\n		Easy to use</li>\r\n	<li>\r\n		Pretty</li>\r\n</ul>','','',NULL,NULL,'dolibarr@domain.com','','',NULL,'2011-07-18 20:44:33',NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(5,1,'Commercial emailing March',1,'Buy my product','<div style=\"background:#220044; text-align:center\"><span style=\"color:#ffffff\"><strong><span style=\"font-size:18px\"><img alt=\"\" src=\"/dolibarr_4.0/htdocs/viewimage.php?modulepart=medias&amp;file=image/myimagesforemailing/dolicloud_logo_white.png\" style=\"height:80px; width:260px\" /></span></strong></span><br />\r\n<a href=\"http://www.facebook.com\" target=\"_new\"><img alt=\"Seguici su facebook\" src=\"https://mosaico.io/templates/versafluid/img/social/facebook.png\" style=\"height:24px; padding:0px 5px 0px 5px; width:24px\" /></a><a href=\"http://www.twitter.com\" target=\"_new\"><img alt=\"Seguici su twitter\" src=\"https://mosaico.io/templates/versafluid/img/social/twitter.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a><a href=\"http://plus.google.com\" target=\"_new\"><img alt=\"Seguici su G+\" src=\"https://mosaico.io/templates/versafluid/img/social/google-plus.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a><a href=\"http://www.linkedin.com\" target=\"_new\"><img alt=\"Seguici su linkedin\" src=\"https://mosaico.io/templates/versafluid/img/social/linkedin.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a></div>\r\n\r\n<table style=\"background:#ffffff; border:0; margin:0; padding:5px; text-align:center; width:100%\">\r\n	<tbody>\r\n		<tr>\r\n			<td>\r\n			<table cellpadding=\"0\" cellspacing=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n				<tbody>\r\n					<tr>\r\n						<td>\r\n						<table border=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n							<tbody>\r\n								<tr>\r\n									<td>\r\n									<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n										<tbody>\r\n											<tr>\r\n												<td>\r\n												<p style=\"text-align:center\"><span style=\"font-size:16px\"><strong>DoliCloud</strong> is the service to provide you a web hosting solution __EMAIL__ of Dolibarr ERP CRM in one click. Just enter your email to create your instance and you are ready to work. Backup and full access is to data (SFTP, Mysql) are provided.</span></p>\r\n												</td>\r\n											</tr>\r\n										</tbody>\r\n									</table>\r\n									</td>\r\n								</tr>\r\n								<tr>\r\n									<td>\r\n									<table style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n										<tbody>\r\n											<tr>\r\n												<td>\r\n												<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"responsive-table\" style=\"width:100%\">\r\n													<tbody>\r\n														<tr>\r\n															<td style=\"text-align:center\"><a class=\"mobile-button\" href=\"https://www.on.dolicloud.com/signUp/index?origin=dolicloudhome&amp;planCode=basic\" style=\"display: inline-block; font-size: 18px; font-family: Helvetica, Arial, sans-serif; font-weight: normal; color: #ffffff; text-decoration: none; background-color: #9C010F; padding-top: 15px; padding-bottom: 15px; padding-left: 25px; padding-right: 25px; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-bottom: 3px solid #5f0109;\" target=\"_new\">Test Dolibarr ERP CRM on Dolicloud &rarr;</a></td>\r\n														</tr>\r\n													</tbody>\r\n												</table>\r\n												</td>\r\n											</tr>\r\n										</tbody>\r\n									</table>\r\n									</td>\r\n								</tr>\r\n							</tbody>\r\n						</table>\r\n						</td>\r\n					</tr>\r\n				</tbody>\r\n			</table>\r\n			</td>\r\n		</tr>\r\n	</tbody>\r\n</table>\r\n\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"ko_footerBlock_2\" style=\"min-width:500px; width:100%\">\r\n	<tbody>\r\n		<tr>\r\n			<td>\r\n			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:100%\">\r\n				<tbody>\r\n					<tr>\r\n						<td>\r\n						<table align=\"center\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n							<tbody>\r\n								<tr>\r\n									<td style=\"text-align:center\"><span style=\"color:#3f3d33\">DoliCloud team</span><br />\r\n									<strong><a class=\"original-only\" href=\"%5Bprofile_link%5D\" style=\"color: #3F3D33; text-decoration: none;\" target=\"_new\">Unsubscribe</a><span style=\"color:#444444; font-family:arial,sans-serif; font-size:12px\">&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;</span><a href=\"%5Bshow_link%5D\" style=\"color: #3F3D33; text-decoration: none;\" target=\"_new\">View on web browser</a></strong></td>\r\n								</tr>\r\n							</tbody>\r\n						</table>\r\n						</td>\r\n					</tr>\r\n				</tbody>\r\n			</table>\r\n			</td>\r\n		</tr>\r\n	</tbody>\r\n</table>','','',NULL,28,'dolibarr@domain.com','','',NULL,'2017-01-29 21:47:37','2017-01-29 21:54:55',NULL,NULL,12,12,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_mailing` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_mailing_cibles`
    +--
    +
    +DROP TABLE IF EXISTS `llx_mailing_cibles`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_mailing_cibles` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_mailing` int(11) NOT NULL,
    +  `fk_contact` int(11) NOT NULL,
    +  `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email` varchar(160) COLLATE utf8_unicode_ci NOT NULL,
    +  `other` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tag` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `source_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `source_id` int(11) DEFAULT NULL,
    +  `source_type` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_envoi` datetime DEFAULT NULL,
    +  `error_text` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_mailing_cibles` (`fk_mailing`,`email`),
    +  KEY `idx_mailing_cibles_email` (`email`)
    +) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_mailing_cibles`
    +--
    +
    +LOCK TABLES `llx_mailing_cibles` WRITE;
    +/*!40000 ALTER TABLE `llx_mailing_cibles` DISABLE KEYS */;
    +INSERT INTO `llx_mailing_cibles` VALUES (1,1,0,'Dupont','Alain','toto@aa.com','Date fin=10/07/2011',NULL,0,'0',NULL,NULL,NULL,NULL),(2,2,0,'Swiss customer supplier','','abademail@aa.com','',NULL,0,'0',NULL,NULL,NULL,NULL),(3,2,0,'Smith Vick','','vsmith@email.com','',NULL,0,'0',NULL,NULL,NULL,NULL),(4,3,0,'Swiss customer supplier','','abademail@aa.com','',NULL,1,'0',NULL,NULL,'2017-01-29 21:36:40',NULL),(5,3,0,'Smith Vick','','vsmith@email.com','',NULL,1,'0',NULL,NULL,'2017-01-29 21:36:40',NULL),(7,3,0,'Name 2','Firstname 2','emailtest2@example.com','','522b79aedf231576db576d246d82a0d7',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(8,3,0,'Name 3','Firstname 3','emailtest3@example.com','','f3e74e96a64068093af469b6826a75bf',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(9,3,0,'Name 4','Firstname 4','emailtest4@example.com','','fdacf67090698e0216f5c9a449e7404a',2,'',NULL,'file','2017-01-29 21:36:40',NULL),(10,3,0,'Name 5','Firstname 5','emailtest5@example.com','','38b4e4895bf5e7f9969c9ad9bbcd0dce',3,'',NULL,'file','2017-01-29 21:36:40',NULL),(11,3,0,'Name 1','Firstname 1','emailtest1@example.com','','b2543a771e2a10c694fc6437859e29ae',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(12,3,0,'Do','John','johndoe@example.com','','bdb70b6835ca053b113e7ac53c83efbe',-1,'',NULL,'file','2017-01-29 21:36:40','Invalid email'),(13,3,0,'Smith,Alan','','alan.smith@example.com','','326b9fb6d83f58b7ce5ca28a51022c83',2,'',NULL,'file','2017-01-29 21:36:40',NULL),(15,3,0,'Bowl','Kathy','kathy.bowl@example.com','','0848d51a04ad29adf28de7d6efe63091',2,'',NULL,'file','2017-01-29 21:36:40',NULL),(16,3,0,'Ducanseen','Herbert','herbert@example.com','','0585f4366c7b0c8bab592acb7256a409',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(17,3,0,'Djay','Djay','djay@example.com','','fad171648dcd8449d6e2f8246724f153',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(18,3,0,'','','alice.bigo@example.com','','86b03b13caec209e9a9d96979b7154b8',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(19,3,0,'','','bob.markus@example.com','','06df0b2b930718949a5afee280f04e6b',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(20,3,0,'Customer 1','','mycustomer1@example.com','','cac0a5a38fa9e67ed63d0753e08cd919',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(21,3,0,'Customer 2','','mycustomer2@example.com','','19b631ee27e7036684675f2db35c54f0',0,'',NULL,'file',NULL,NULL),(22,3,0,'Customer 3','','mycustomer3@example.com','','bfd49e2db7c511e2d5bde30eda7db07a',0,'',NULL,'file',NULL,NULL),(23,3,0,'Customer 4','','mycustomer4@example.com','','de4640d0684c62dd83ffc27ff20d5938',0,'',NULL,'file',NULL,NULL),(24,3,0,'Customer 5','','mycustomer5@example.com','','2eb5786291928fd23ca0354ac261ec9b',0,'',NULL,'file',NULL,NULL),(25,3,0,'Customer 6','','mycustomer6@example.com','','c50c85b7f3370232c1d1335e17f953ca',0,'',NULL,'file',NULL,NULL),(26,3,0,'Prospect 1','','myprospect1@example.com','','553b1f7417f7c96290cdec5ca4c560f7',0,'',NULL,'file',NULL,NULL),(27,3,0,'Prospect 2','','myprospect2@example.com','','de45e526168546315ff4fedb54e63102',0,'',NULL,'file',NULL,NULL),(28,3,0,'Prospect 3','','myprospect3@example.com','','466d946e7c46881334f4abe427d382fa',0,'',NULL,'file',NULL,NULL),(29,3,0,'Prospect 4','','myprospect4@example.com','','619d1ec47318842971db7fa266b6d74a',0,'',NULL,'file',NULL,NULL),(30,3,0,'Prospect 5','','myprospect5@example.com','','e301713dcbf58d33ef1ae540dee58ad7',0,'',NULL,'file',NULL,NULL),(31,3,0,'Prospect 6','','myprospect6@example.com','','26fcbd0c641a535bfc14a80a867a61f2',0,'',NULL,'file',NULL,NULL),(32,5,0,'Swiss customer supplier','','abademail@aa.com','','0e7d20e3c9b1612a75eab5d12da84060',0,'0',NULL,'',NULL,NULL),(33,5,0,'Smith Vick','','vsmith@email.com','','cab14f12668ccb2c92843969819c6c6e',0,'0',NULL,'',NULL,NULL),(34,5,0,'Name 2','Firstname 2','emailtest2@example.com','','1b6adeceaac7e2b9c399c877f8b1a616',0,'',NULL,'file',NULL,NULL),(35,5,0,'Name 3','Firstname 3','emailtest3@example.com','','c9f6f80ba118c378aef4974e17b01a07',0,'',NULL,'file',NULL,NULL),(36,5,0,'Name 4','Firstname 4','emailtest4@example.com','','75a3051301db736a2bb7722de7b4ece1',0,'',NULL,'file',NULL,NULL),(37,5,0,'Name 5','Firstname 5','emailtest5@example.com','','a9e292e70ec11ed58718c9f5da58f870',0,'',NULL,'file',NULL,NULL),(38,5,0,'Name 1','Firstname 1','emailtest1@example.com','','0243e796981c9e82cc23d8a6a5a23570',0,'',NULL,'file',NULL,NULL),(39,5,0,'Do','John','johndoe@example.com','','7db6219748fbad348b1aa89f2014d529',0,'',NULL,'file',NULL,NULL),(40,5,0,'Smith,Alan','','alan.smith@example.com','','5006f91f3bd97918460b6dc3edf4cd7f',0,'',NULL,'file',NULL,NULL),(41,5,0,'Bowl','Kathy','kathy.bowl@example.com','','377ac5b241f2d5bf421a7162c60bf7b6',0,'',NULL,'file',NULL,NULL),(42,5,0,'Ducanseen','Herbert','herbert@example.com','','10e1b891a249ee8046f1686a0a44d773',0,'',NULL,'file',NULL,NULL),(43,5,0,'Djay','Djay','djay@example.com','','6cf76a2b74874caa6b8eced78f63bca1',0,'',NULL,'file',NULL,NULL),(44,5,0,'','','alice.bigo@example.com','','61651804afc02887a3934ab042285044',0,'',NULL,'file',NULL,NULL),(45,5,0,'','','bob.markus@example.com','','b6d3e934e4bc92d194b43041260564da',0,'',NULL,'file',NULL,NULL),(46,5,0,'Customer 1','','mycustomer1@example.com','','fa9ade908a5a420e7dc64e62d1d9eb65',0,'',NULL,'file',NULL,NULL),(47,5,0,'Customer 2','','mycustomer2@example.com','','5d502923487f0f4226ab9f5f71102857',0,'',NULL,'file',NULL,NULL),(48,5,0,'Customer 3','','mycustomer3@example.com','','0b7da54f9969554eee95684069173f23',0,'',NULL,'file',NULL,NULL),(49,5,0,'Customer 4','','mycustomer4@example.com','','b073cf47a6af4740c76620ab4442033c',0,'',NULL,'file',NULL,NULL),(50,5,0,'Customer 5','','mycustomer5@example.com','','468b7404027e91edf437c3980619c8f6',0,'',NULL,'file',NULL,NULL),(51,5,0,'Customer 6','','mycustomer6@example.com','','cb196086497f64cd23dd68aed2bf5cc8',0,'',NULL,'file',NULL,NULL),(52,5,0,'Prospect 1','','myprospect1@example.com','','9854ed6528267f30c8c22c24384b31ae',0,'',NULL,'file',NULL,NULL),(53,5,0,'Prospect 2','','myprospect2@example.com','','b37ed581bbc51b6d9a334e1626b5fe22',0,'',NULL,'file',NULL,NULL),(54,5,0,'Prospect 3','','myprospect3@example.com','','8bedd7821877a72841efae36691f7765',0,'',NULL,'file',NULL,NULL),(55,5,0,'Prospect 4','','myprospect4@example.com','','518353a5cfb1a628ada10874ac4e0098',0,'',NULL,'file',NULL,NULL),(56,5,0,'Prospect 5','','myprospect5@example.com','','de392a2999e262fec63c9de4a3fe7613',0,'',NULL,'file',NULL,NULL),(57,5,0,'Prospect 6','','myprospect6@example.com','','56256cc297c4870c514819cdb4e6b95c',0,'',NULL,'file',NULL,NULL),(58,5,0,'Prospect 7','','myprospect7@example.com','','d32512607d4e74d6f71d031538128721',0,'',NULL,'file',NULL,NULL),(59,5,0,'Prospect 8','','myprospect8@example.com','','427eeb75492ede5355996a8df998f9de',0,'',NULL,'file',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_mailing_cibles` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_menu`
    +--
    +
    +DROP TABLE IF EXISTS `llx_menu`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_menu` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `menu_handler` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `module` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` varchar(4) COLLATE utf8_unicode_ci NOT NULL,
    +  `mainmenu` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_menu` int(11) NOT NULL,
    +  `fk_leftmenu` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_mainmenu` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `target` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `titre` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `langs` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `level` smallint(6) DEFAULT NULL,
    +  `leftmenu` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `perms` text COLLATE utf8_unicode_ci,
    +  `enabled` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  `usertype` int(11) NOT NULL DEFAULT '0',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_menu_uk_menu` (`menu_handler`,`fk_menu`,`position`,`url`,`entity`),
    +  KEY `idx_menu_menuhandler_type` (`menu_handler`,`type`)
    +) ENGINE=InnoDB AUTO_INCREMENT=166493 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_menu`
    +--
    +
    +LOCK TABLES `llx_menu` WRITE;
    +/*!40000 ALTER TABLE `llx_menu` DISABLE KEYS */;
    +INSERT INTO `llx_menu` VALUES (103094,'all',2,'agenda','top','agenda',0,NULL,NULL,100,'/comm/action/index.php','','Agenda','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103095,'all',2,'agenda','left','agenda',103094,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda','','Actions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103096,'all',2,'agenda','left','agenda',103095,NULL,NULL,101,'/comm/action/card.php?mainmenu=agenda&amp;leftmenu=agenda&amp;action=create','','NewAction','commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103097,'all',2,'agenda','left','agenda',103095,NULL,NULL,102,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda','','Calendar','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103098,'all',2,'agenda','left','agenda',103097,NULL,NULL,103,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103099,'all',2,'agenda','left','agenda',103097,NULL,NULL,104,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103100,'all',2,'agenda','left','agenda',103097,NULL,NULL,105,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103101,'all',2,'agenda','left','agenda',103097,NULL,NULL,106,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103102,'all',2,'agenda','left','agenda',103095,NULL,NULL,112,'/comm/action/listactions.php?mainmenu=agenda&amp;leftmenu=agenda','','List','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103103,'all',2,'agenda','left','agenda',103102,NULL,NULL,113,'/comm/action/listactions.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103104,'all',2,'agenda','left','agenda',103102,NULL,NULL,114,'/comm/action/listactions.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103105,'all',2,'agenda','left','agenda',103102,NULL,NULL,115,'/comm/action/listactions.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103106,'all',2,'agenda','left','agenda',103102,NULL,NULL,116,'/comm/action/listactions.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103107,'all',2,'agenda','left','agenda',103095,NULL,NULL,120,'/comm/action/rapport/index.php?mainmenu=agenda&amp;leftmenu=agenda','','Reportings','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103134,'all',2,'opensurvey','top','opensurvey',0,NULL,NULL,200,'/opensurvey/index.php','','Surveys','opensurvey',NULL,NULL,'$user->rights->opensurvey->survey->read','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(103135,'all',2,'opensurvey','left','opensurvey',-1,NULL,'opensurvey',200,'/opensurvey/index.php?mainmenu=opensurvey&leftmenu=opensurvey','','Survey','opensurvey@opensurvey',NULL,'opensurvey','','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(103136,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',210,'/opensurvey/public/index.php','_blank','NewSurvey','opensurvey@opensurvey',NULL,'opensurvey_new','','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(103137,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',220,'/opensurvey/list.php','','List','opensurvey@opensurvey',NULL,'opensurvey_list','','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(124179,'all',1,'cashdesk','top','cashdesk',0,NULL,NULL,100,'/cashdesk/index.php?user=__LOGIN__','pointofsale','CashDeskMenu','cashdesk',NULL,NULL,'$user->rights->cashdesk->use','$conf->cashdesk->enabled',0,'2015-11-15 22:38:33'),(124210,'all',1,'margins','left','accountancy',-1,NULL,'accountancy',100,'/margin/index.php','','Margins','margins',NULL,'margins','$user->rights->margins->liretous','$conf->margin->enabled',2,'2015-11-15 22:41:47'),(145086,'all',1,'supplier_proposal','left','commercial',-1,NULL,'commercial',300,'/supplier_proposal/index.php','','SupplierProposalsShort','supplier_proposal',NULL,'supplier_proposalsubmenu','$user->rights->supplier_proposal->lire','$conf->supplier_proposal->enabled',2,'2016-07-30 11:13:20'),(145087,'all',1,'supplier_proposal','left','commercial',-1,'supplier_proposalsubmenu','commercial',301,'/supplier_proposal/card.php?action=create&amp;leftmenu=supplier_proposals','','SupplierProposalNew','supplier_proposal',NULL,NULL,'$user->rights->supplier_proposal->creer','$conf->supplier_proposal->enabled',2,'2016-07-30 11:13:20'),(145088,'all',1,'supplier_proposal','left','commercial',-1,'supplier_proposalsubmenu','commercial',302,'/supplier_proposal/list.php?leftmenu=supplier_proposals','','List','supplier_proposal',NULL,NULL,'$user->rights->supplier_proposal->lire','$conf->supplier_proposal->enabled',2,'2016-07-30 11:13:20'),(145089,'all',1,'supplier_proposal','left','commercial',-1,'supplier_proposalsubmenu','commercial',303,'/comm/propal/stats/index.php?leftmenu=supplier_proposals&amp;mode=supplier','','Statistics','supplier_proposal',NULL,NULL,'$user->rights->supplier_proposal->lire','$conf->supplier_proposal->enabled',2,'2016-07-30 11:13:20'),(145090,'all',1,'resource','left','tools',-1,NULL,'tools',100,'/resource/list.php','','MenuResourceIndex','resource',NULL,'resource','$user->rights->resource->read','1',0,'2016-07-30 11:13:32'),(145091,'all',1,'resource','left','tools',-1,'resource','tools',101,'/resource/add.php','','MenuResourceAdd','resource',NULL,NULL,'$user->rights->resource->read','1',0,'2016-07-30 11:13:32'),(145092,'all',1,'resource','left','tools',-1,'resource','tools',102,'/resource/list.php','','List','resource',NULL,NULL,'$user->rights->resource->read','1',0,'2016-07-30 11:13:32'),(145127,'all',1,'printing','left','home',-1,'admintools','home',300,'/printing/index.php?mainmenu=home&leftmenu=admintools','','MenuDirectPrinting','printing',NULL,NULL,'$user->rights->printing->read','$conf->printing->enabled && $leftmenu==\'admintools\'',0,'2017-01-29 15:12:44'),(161088,'auguria',1,'','top','home',0,NULL,NULL,10,'/index.php?mainmenu=home&amp;leftmenu=','','Home','',-1,'','','1',2,'2017-08-30 15:14:30'),(161089,'auguria',1,'societe|fournisseur','top','companies',0,NULL,NULL,20,'/societe/index.php?mainmenu=companies&amp;leftmenu=','','ThirdParties','companies',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)',2,'2017-08-30 15:14:30'),(161090,'auguria',1,'product|service','top','products',0,NULL,NULL,30,'/product/index.php?mainmenu=products&amp;leftmenu=','','Products/Services','products',-1,'','$user->rights->produit->lire||$user->rights->service->lire','$conf->product->enabled || $conf->service->enabled',0,'2017-08-30 15:14:30'),(161092,'auguria',1,'propal|commande|fournisseur|contrat|ficheinter','top','commercial',0,NULL,NULL,40,'/comm/index.php?mainmenu=commercial&amp;leftmenu=','','Commercial','commercial',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','$conf->propal->enabled || $conf->commande->enabled || $conf->supplier_order->enabled || $conf->contrat->enabled || $conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(161093,'auguria',1,'comptabilite|accounting|facture|don|tax|salaries|loan','top','accountancy',0,NULL,NULL,50,'/compta/index.php?mainmenu=accountancy&amp;leftmenu=','','MenuFinancial','compta',-1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->plancompte->lire || $user->rights->facture->lire|| $user->rights->don->lire || $user->rights->tax->charges->lire || $user->rights->salaries->read || $user->rights->loan->read','$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->don->enabled  || $conf->tax->enabled || $conf->salaries->enabled || $conf->supplier_invoice->enabled || $conf->loan->enabled',2,'2017-08-30 15:14:30'),(161094,'auguria',1,'projet','top','project',0,NULL,NULL,70,'/projet/index.php?mainmenu=project&amp;leftmenu=','','Projects','projects',-1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(161095,'auguria',1,'mailing|export|import|opensurvey|resource','top','tools',0,NULL,NULL,90,'/core/tools.php?mainmenu=tools&amp;leftmenu=','','Tools','other',-1,'','$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run || $user->rights->opensurvey->read || $user->rights->resource->read','$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled || $conf->opensurvey->enabled || $conf->resource->enabled',2,'2017-08-30 15:14:30'),(161101,'auguria',1,'banque|prelevement','top','bank',0,NULL,NULL,60,'/compta/bank/index.php?mainmenu=bank&amp;leftmenu=bank','','MenuBankCash','banks',-1,'','$user->rights->banque->lire || $user->rights->prelevement->bons->lire','$conf->banque->enabled || $conf->prelevement->enabled',0,'2017-08-30 15:14:30'),(161102,'auguria',1,'hrm|holiday|deplacement|expensereport','top','hrm',0,NULL,NULL,80,'/hrm/index.php?mainmenu=hrm&amp;leftmenu=','','HRM','holiday',-1,'','$user->rights->hrm->employee->read || $user->rights->holiday->write || $user->rights->deplacement->lire || $user->rights->expensereport->lire','$conf->hrm->enabled || $conf->holiday->enabled || $conf->deplacement->enabled || $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(161177,'auguria',1,'','left','home',161088,NULL,NULL,0,'/index.php','','MyDashboard','',0,'','','1',2,'2017-08-30 15:14:30'),(161187,'auguria',1,'','left','home',161088,NULL,NULL,1,'/admin/index.php?leftmenu=setup','','Setup','admin',0,'setup','','$user->admin',2,'2017-08-30 15:14:30'),(161188,'auguria',1,'','left','home',161187,NULL,NULL,1,'/admin/company.php?leftmenu=setup','','MenuCompanySetup','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161189,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/ihm.php?leftmenu=setup','','GUISetup','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161190,'auguria',1,'','left','home',161187,NULL,NULL,2,'/admin/modules.php?leftmenu=setup','','Modules','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161191,'auguria',1,'','left','home',161187,NULL,NULL,6,'/admin/boxes.php?leftmenu=setup','','Boxes','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161192,'auguria',1,'','left','home',161187,NULL,NULL,3,'/admin/menus.php?leftmenu=setup','','Menus','admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:47'),(161193,'auguria',1,'','left','home',161187,NULL,NULL,7,'/admin/delais.php?leftmenu=setup','','Alerts','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161194,'auguria',1,'','left','home',161187,NULL,NULL,10,'/admin/pdf.php?leftmenu=setup','','PDF','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161195,'auguria',1,'','left','home',161187,NULL,NULL,8,'/admin/security_other.php?leftmenu=setup','','Security','admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:36'),(161196,'auguria',1,'','left','home',161187,NULL,NULL,11,'/admin/mails.php?leftmenu=setup','','Emails','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161197,'auguria',1,'','left','home',161187,NULL,NULL,9,'/admin/limits.php?leftmenu=setup','','MenuLimits','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161198,'auguria',1,'','left','home',161187,NULL,NULL,13,'/admin/dict.php?leftmenu=setup','','Dictionary','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161199,'auguria',1,'','left','home',161187,NULL,NULL,14,'/admin/const.php?leftmenu=setup','','OtherSetup','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161200,'auguria',1,'','left','home',161187,NULL,NULL,12,'/admin/sms.php?leftmenu=setup','','SMS','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161201,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/translation.php?leftmenu=setup','','Translation','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161288,'auguria',1,'','left','home',161387,NULL,NULL,0,'/admin/system/dolibarr.php?leftmenu=admintools','','InfoDolibarr','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161289,'auguria',1,'','left','home',161288,NULL,NULL,2,'/admin/system/modules.php?leftmenu=admintools','','Modules','admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161290,'auguria',1,'','left','home',161288,NULL,NULL,3,'/admin/triggers.php?leftmenu=admintools','','Triggers','admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161291,'auguria',1,'','left','home',161288,NULL,NULL,4,'/admin/system/filecheck.php?leftmenu=admintools','','FileCheck','admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161292,'auguria',1,'','left','home',161387,NULL,NULL,1,'/admin/system/browser.php?leftmenu=admintools','','InfoBrowser','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161293,'auguria',1,'','left','home',161387,NULL,NULL,2,'/admin/system/os.php?leftmenu=admintools','','InfoOS','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161294,'auguria',1,'','left','home',161387,NULL,NULL,3,'/admin/system/web.php?leftmenu=admintools','','InfoWebServer','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161295,'auguria',1,'','left','home',161387,NULL,NULL,4,'/admin/system/phpinfo.php?leftmenu=admintools','','InfoPHP','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161297,'auguria',1,'','left','home',161387,NULL,NULL,5,'/admin/system/database.php?leftmenu=admintools','','InfoDatabase','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161387,'auguria',1,'','left','home',161088,NULL,NULL,2,'/admin/tools/index.php?leftmenu=admintools','','AdminTools','admin',0,'admintools','','$user->admin',2,'2017-08-30 15:14:30'),(161388,'auguria',1,'','left','home',161387,NULL,NULL,6,'/admin/tools/dolibarr_export.php?leftmenu=admintools','','Backup','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161389,'auguria',1,'','left','home',161387,NULL,NULL,7,'/admin/tools/dolibarr_import.php?leftmenu=admintools','','Restore','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161392,'auguria',1,'','left','home',161387,NULL,NULL,8,'/admin/tools/update.php?leftmenu=admintools','','MenuUpgrade','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161393,'auguria',1,'','left','home',161387,NULL,NULL,9,'/admin/tools/eaccelerator.php?leftmenu=admintools','','EAccelerator','admin',1,'','','$leftmenu==\"admintools\" && function_exists(\"eaccelerator_info\")',2,'2017-08-30 15:14:30'),(161394,'auguria',1,'','left','home',161387,NULL,NULL,10,'/admin/tools/listevents.php?leftmenu=admintools','','Audit','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161395,'auguria',1,'','left','home',161387,NULL,NULL,11,'/admin/tools/listsessions.php?leftmenu=admintools','','Sessions','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161396,'auguria',1,'','left','home',161387,NULL,NULL,12,'/admin/tools/purge.php?leftmenu=admintools','','Purge','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161398,'auguria',1,'','left','home',161387,NULL,NULL,14,'/admin/system/about.php?leftmenu=admintools','','ExternalResources','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161407,'auguria',1,'','left','home',161387,NULL,NULL,15,'/product/admin/product_tools.php?mainmenu=home&amp;leftmenu=admintools','','ProductVatMassChange','products',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161487,'auguria',1,'','left','home',161088,NULL,NULL,4,'/user/home.php?leftmenu=users','','MenuUsersAndGroups','users',0,'users','','1',2,'2017-08-30 15:14:30'),(161488,'auguria',1,'','left','home',161487,NULL,NULL,0,'/user/index.php?leftmenu=users','','Users','users',1,'','$user->rights->user->user->lire || $user->admin','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161489,'auguria',1,'','left','home',161488,NULL,NULL,0,'/user/card.php?leftmenu=users&amp;action=create','','NewUser','users',2,'','($user->rights->user->user->creer || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161490,'auguria',1,'','left','home',161487,NULL,NULL,1,'/user/group/index.php?leftmenu=users','','Groups','users',1,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->read:$user->rights->user->user->lire) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161491,'auguria',1,'','left','home',161490,NULL,NULL,0,'/user/group/card.php?leftmenu=users&amp;action=create','','NewGroup','users',2,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->write:$user->rights->user->user->creer) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161587,'auguria',1,'','left','companies',161089,NULL,NULL,0,'/societe/index.php?leftmenu=thirdparties','','ThirdParty','companies',0,'thirdparties','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161588,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/card.php?action=create','','MenuNewThirdParty','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161589,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/list.php?action=create','','List','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161590,'auguria',1,'','left','companies',161587,NULL,NULL,5,'/societe/list.php?type=f&leftmenu=suppliers','','ListSuppliersShort','suppliers',1,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161591,'auguria',1,'','left','companies',161590,NULL,NULL,0,'/societe/card.php?leftmenu=supplier&amp;action=create&amp;type=f','','NewSupplier','suppliers',2,'','$user->rights->societe->creer','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161593,'auguria',1,'','left','companies',161587,NULL,NULL,3,'/societe/list.php?type=p&leftmenu=prospects','','ListProspectsShort','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161594,'auguria',1,'','left','companies',161593,NULL,NULL,0,'/societe/card.php?leftmenu=prospects&amp;action=create&amp;type=p','','MenuNewProspect','companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161596,'auguria',1,'','left','companies',161587,NULL,NULL,4,'/societe/list.php?type=c&leftmenu=customers','','ListCustomersShort','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161597,'auguria',1,'','left','companies',161596,NULL,NULL,0,'/societe/card.php?leftmenu=customers&amp;action=create&amp;type=c','','MenuNewCustomer','companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161687,'auguria',1,'','left','companies',161089,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','ContactsAddresses','companies',0,'contacts','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161688,'auguria',1,'','left','companies',161687,NULL,NULL,0,'/contact/card.php?leftmenu=contacts&amp;action=create','','NewContactAddress','companies',1,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161689,'auguria',1,'','left','companies',161687,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','List','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161691,'auguria',1,'','left','companies',161689,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&amp;type=p','','ThirdPartyProspects','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161692,'auguria',1,'','left','companies',161689,NULL,NULL,2,'/contact/list.php?leftmenu=contacts&amp;type=c','','ThirdPartyCustomers','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161693,'auguria',1,'','left','companies',161689,NULL,NULL,3,'/contact/list.php?leftmenu=contacts&amp;type=f','','ThirdPartySuppliers','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161694,'auguria',1,'','left','companies',161689,NULL,NULL,4,'/contact/list.php?leftmenu=contacts&amp;type=o','','Others','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161737,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&amp;type=1','','SuppliersCategoriesShort','categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161738,'auguria',1,'','left','companies',161737,NULL,NULL,0,'/categories/card.php?action=create&amp;type=1','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161747,'auguria',1,'','left','companies',161089,NULL,NULL,4,'/categories/index.php?leftmenu=cat&amp;type=2','','CustomersProspectsCategoriesShort','categories',0,'cat','$user->rights->categorie->lire','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161748,'auguria',1,'','left','companies',161747,NULL,NULL,0,'/categories/card.php?action=create&amp;type=2','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161757,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&amp;type=4','','ContactCategoriesShort','categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161758,'auguria',1,'','left','companies',161757,NULL,NULL,0,'/categories/card.php?action=create&amp;type=4','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(162187,'auguria',1,'','left','commercial',161092,NULL,NULL,4,'/comm/propal/index.php?leftmenu=propals','','Prop','propal',0,'propals','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162188,'auguria',1,'','left','commercial',162187,NULL,NULL,0,'/comm/propal/card.php?action=create&amp;leftmenu=propals','','NewPropal','propal',1,'','$user->rights->propale->creer','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162189,'auguria',1,'','left','commercial',162187,NULL,NULL,1,'/comm/propal/list.php?leftmenu=propals','','List','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162190,'auguria',1,'','left','commercial',162189,NULL,NULL,2,'/comm/propal/list.php?leftmenu=propals&amp;viewstatut=0','','PropalsDraft','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162191,'auguria',1,'','left','commercial',162189,NULL,NULL,3,'/comm/propal/list.php?leftmenu=propals&amp;viewstatut=1','','PropalsOpened','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162192,'auguria',1,'','left','commercial',162189,NULL,NULL,4,'/comm/propal/list.php?leftmenu=propals&amp;viewstatut=2','','PropalStatusSigned','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162193,'auguria',1,'','left','commercial',162189,NULL,NULL,5,'/comm/propal/list.php?leftmenu=propals&amp;viewstatut=3','','PropalStatusNotSigned','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162194,'auguria',1,'','left','commercial',162189,NULL,NULL,6,'/comm/propal/list.php?leftmenu=propals&amp;viewstatut=4','','PropalStatusBilled','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162197,'auguria',1,'','left','commercial',162187,NULL,NULL,4,'/comm/propal/stats/index.php?leftmenu=propals','','Statistics','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162287,'auguria',1,'','left','commercial',161092,NULL,NULL,5,'/commande/index.php?leftmenu=orders','','CustomersOrders','orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162288,'auguria',1,'','left','commercial',162287,NULL,NULL,0,'/commande/card.php?action=create&amp;leftmenu=orders','','NewOrder','orders',1,'','$user->rights->commande->creer','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162289,'auguria',1,'','left','commercial',162287,NULL,NULL,1,'/commande/list.php?leftmenu=orders','','List','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162290,'auguria',1,'','left','commercial',162289,NULL,NULL,2,'/commande/list.php?leftmenu=orders&amp;viewstatut=0','','StatusOrderDraftShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162291,'auguria',1,'','left','commercial',162289,NULL,NULL,3,'/commande/list.php?leftmenu=orders&amp;viewstatut=1','','StatusOrderValidated','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162292,'auguria',1,'','left','commercial',162289,NULL,NULL,4,'/commande/list.php?leftmenu=orders&amp;viewstatut=2','','StatusOrderOnProcessShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162293,'auguria',1,'','left','commercial',162289,NULL,NULL,5,'/commande/list.php?leftmenu=orders&amp;viewstatut=3','','StatusOrderToBill','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162294,'auguria',1,'','left','commercial',162289,NULL,NULL,6,'/commande/list.php?leftmenu=orders&amp;viewstatut=4','','StatusOrderProcessed','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162295,'auguria',1,'','left','commercial',162289,NULL,NULL,7,'/commande/list.php?leftmenu=orders&amp;viewstatut=-1','','StatusOrderCanceledShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162296,'auguria',1,'','left','commercial',162287,NULL,NULL,4,'/commande/stats/index.php?leftmenu=orders','','Statistics','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162387,'auguria',1,'','left','commercial',161090,NULL,NULL,6,'/expedition/index.php?leftmenu=sendings','','Shipments','sendings',0,'sendings','$user->rights->expedition->lire','$conf->expedition->enabled',2,'2017-08-30 15:14:30'),(162388,'auguria',1,'','left','commercial',162387,NULL,NULL,0,'/expedition/card.php?action=create2&leftmenu=sendings','','NewSending','sendings',1,'','$user->rights->expedition->creer','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162389,'auguria',1,'','left','commercial',162387,NULL,NULL,1,'/expedition/list.php?leftmenu=sendings','','List','sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162390,'auguria',1,'','left','commercial',162387,NULL,NULL,2,'/expedition/stats/index.php?leftmenu=sendings','','Statistics','sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162487,'auguria',1,'','left','commercial',161092,NULL,NULL,7,'/contrat/index.php?leftmenu=contracts','','Contracts','contracts',0,'contracts','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162488,'auguria',1,'','left','commercial',162487,NULL,NULL,0,'/contrat/card.php?&action=create&amp;leftmenu=contracts','','NewContract','contracts',1,'','$user->rights->contrat->creer','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162489,'auguria',1,'','left','commercial',162487,NULL,NULL,1,'/contrat/list.php?leftmenu=contracts','','List','contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162490,'auguria',1,'','left','commercial',162487,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts','','MenuServices','contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162491,'auguria',1,'','left','commercial',162490,NULL,NULL,0,'/contrat/services.php?leftmenu=contracts&amp;mode=0','','MenuInactiveServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162492,'auguria',1,'','left','commercial',162490,NULL,NULL,1,'/contrat/services.php?leftmenu=contracts&amp;mode=4','','MenuRunningServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162493,'auguria',1,'','left','commercial',162490,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts&amp;mode=4&amp;filter=expired','','MenuExpiredServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162494,'auguria',1,'','left','commercial',162490,NULL,NULL,3,'/contrat/services.php?leftmenu=contracts&amp;mode=5','','MenuClosedServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162587,'auguria',1,'','left','commercial',161092,NULL,NULL,8,'/fichinter/list.php?leftmenu=ficheinter','','Interventions','interventions',0,'ficheinter','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162588,'auguria',1,'','left','commercial',162587,NULL,NULL,0,'/fichinter/card.php?action=create&amp;leftmenu=ficheinter','','NewIntervention','interventions',1,'','$user->rights->ficheinter->creer','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162589,'auguria',1,'','left','commercial',162587,NULL,NULL,1,'/fichinter/list.php?leftmenu=ficheinter','','List','interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162590,'auguria',1,'','left','commercial',162587,NULL,NULL,2,'/fichinter/stats/index.php?leftmenu=ficheinter','','Statistics','interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162687,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/fourn/facture/list.php?leftmenu=suppliers_bills','','BillsSuppliers','bills',0,'supplier_bills','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162688,'auguria',1,'','left','accountancy',162687,NULL,NULL,0,'/fourn/facture/card.php?action=create&amp;leftmenu=suppliers_bills','','NewBill','bills',1,'','$user->rights->fournisseur->facture->creer','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162689,'auguria',1,'','left','accountancy',162687,NULL,NULL,1,'/fourn/facture/list.php?leftmenu=suppliers_bills','','List','bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162690,'auguria',1,'','left','accountancy',162687,NULL,NULL,2,'/fourn/facture/paiement.php?leftmenu=suppliers_bills','','Payments','bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162691,'auguria',1,'','left','accountancy',162687,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills&mode=supplier','','Statistics','bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162692,'auguria',1,'','left','accountancy',162690,NULL,NULL,1,'/fourn/facture/rapport.php?leftmenu=suppliers_bills','','Reporting','bills',2,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162787,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills','','BillsCustomers','bills',0,'customer_bills','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162788,'auguria',1,'','left','accountancy',162787,NULL,NULL,3,'/compta/facture/card.php?action=create&amp;leftmenu=customers_bills','','NewBill','bills',1,'','$user->rights->facture->creer','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162789,'auguria',1,'','left','accountancy',162787,NULL,NULL,5,'/compta/facture/fiche-rec.php?leftmenu=customers_bills','','ListOfTemplates','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162791,'auguria',1,'','left','accountancy',162787,NULL,NULL,6,'/compta/paiement/list.php?leftmenu=customers_bills','','Payments','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162792,'auguria',1,'','left','accountancy',162787,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills','','List','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162797,'auguria',1,'','left','accountancy',162791,NULL,NULL,1,'/compta/paiement/rapport.php?leftmenu=customers_bills','','Reportings','bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162798,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/paiement/cheque/index.php?leftmenu=checks&amp;mainmenu=bank','','MenuChequeDeposits','bills',0,'checks','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162799,'auguria',1,'','left','accountancy',162798,NULL,NULL,0,'/compta/paiement/cheque/card.php?leftmenu=checks&amp;action=new','','NewCheckDeposit','compta',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162800,'auguria',1,'','left','accountancy',162798,NULL,NULL,1,'/compta/paiement/cheque/list.php?leftmenu=checks','','List','bills',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162801,'auguria',1,'','left','accountancy',162787,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills','','Statistics','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162807,'auguria',1,'','left','accountancy',162792,NULL,NULL,1,'/compta/facture/list.php?leftmenu=customers_bills&amp;search_status=0','','BillShortStatusDraft','bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162808,'auguria',1,'','left','accountancy',162792,NULL,NULL,2,'/compta/facture/list.php?leftmenu=customers_bills&amp;search_status=1','','BillShortStatusNotPaid','bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162809,'auguria',1,'','left','accountancy',162792,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills&amp;search_status=2','','BillShortStatusPaid','bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162810,'auguria',1,'','left','accountancy',162792,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills&amp;search_status=3','','BillShortStatusCanceled','bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162987,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/commande/list.php?leftmenu=orders&amp;viewstatut=3','','MenuOrdersToBill','orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',0,'2017-08-30 15:14:30'),(163087,'auguria',1,'','left','accountancy',161093,NULL,NULL,4,'/don/index.php?leftmenu=donations&amp;mainmenu=accountancy','','Donations','donations',0,'donations','$user->rights->don->lire','$conf->don->enabled',2,'2017-08-30 15:14:30'),(163088,'auguria',1,'','left','accountancy',163087,NULL,NULL,0,'/don/card.php?leftmenu=donations&amp;mainmenu=accountancy&amp;action=create','','NewDonation','donations',1,'','$user->rights->don->creer','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163089,'auguria',1,'','left','accountancy',163087,NULL,NULL,1,'/don/list.php?leftmenu=donations&amp;mainmenu=accountancy','','List','donations',1,'','$user->rights->don->lire','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163187,'auguria',1,'','left','accountancy',161102,NULL,NULL,5,'/compta/deplacement/index.php?leftmenu=tripsandexpenses','','TripsAndExpenses','trips',0,'tripsandexpenses','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163188,'auguria',1,'','left','accountancy',163187,NULL,NULL,1,'/compta/deplacement/card.php?action=create&amp;leftmenu=tripsandexpenses','','New','trips',1,'','$user->rights->deplacement->creer','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163189,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/list.php?leftmenu=tripsandexpenses','','List','trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163190,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses','','Statistics','trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163287,'auguria',1,'','left','accountancy',161093,NULL,NULL,6,'/compta/charges/index.php?leftmenu=tax&amp;mainmenu=accountancy','','MenuSpecialExpenses','compta',0,'tax','(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read)','$conf->tax->enabled || $conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163297,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/salaries/index.php?leftmenu=tax_salary&amp;mainmenu=accountancy','','Salaries','salaries',1,'tax_sal','$user->rights->salaries->payment->read','$conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163298,'auguria',1,'','left','accountancy',163297,NULL,NULL,2,'/compta/salaries/card.php?leftmenu=tax_salary&amp;action=create','','NewPayment','companies',2,'','$user->rights->salaries->payment->write','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163299,'auguria',1,'','left','accountancy',163297,NULL,NULL,3,'/compta/salaries/index.php?leftmenu=tax_salary','','Payments','companies',2,'','$user->rights->salaries->payment->read','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163307,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/loan/index.php?leftmenu=tax_loan&amp;mainmenu=accountancy','','Loans','loan',1,'tax_loan','$user->rights->loan->read','$conf->loan->enabled',0,'2017-08-30 15:14:30'),(163308,'auguria',1,'','left','accountancy',163307,NULL,NULL,2,'/loan/card.php?leftmenu=tax_loan&amp;action=create','','NewLoan','loan',2,'','$user->rights->loan->write','$conf->loan->enabled && $leftmenu==\"tax_loan\"',0,'2017-08-30 15:14:30'),(163310,'auguria',1,'','left','accountancy',163307,NULL,NULL,4,'/loan/calc.php?leftmenu=tax_loan','','Calculator','companies',2,'','$user->rights->loan->calc','$conf->loan->enabled && $leftmenu==\"tax_loan\" && ! empty($conf->global->LOAN_SHOW_CALCULATOR)',0,'2017-08-30 15:14:30'),(163337,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/sociales/index.php?leftmenu=tax_social','','SocialContributions','',1,'tax_social','$user->rights->tax->charges->lire','$conf->tax->enabled',0,'2017-08-30 15:14:30'),(163338,'auguria',1,'','left','accountancy',163337,NULL,NULL,2,'/compta/sociales/card.php?leftmenu=tax_social&amp;action=create','','MenuNewSocialContribution','',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163339,'auguria',1,'','left','accountancy',163337,NULL,NULL,3,'/compta/sociales/payments.php?leftmenu=tax_social&amp;mainmenu=accountancy&amp;mode=sconly','','Payments','',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163387,'auguria',1,'','left','accountancy',163287,NULL,NULL,7,'/compta/tva/index.php?leftmenu=tax_vat&amp;mainmenu=accountancy','','VAT','companies',1,'tax_vat','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)',0,'2017-08-30 15:14:30'),(163388,'auguria',1,'','left','accountancy',163387,NULL,NULL,0,'/compta/tva/card.php?leftmenu=tax_vat&amp;action=create','','New','companies',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163389,'auguria',1,'','left','accountancy',163387,NULL,NULL,1,'/compta/tva/reglement.php?leftmenu=tax_vat','','List','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163390,'auguria',1,'','left','accountancy',163387,NULL,NULL,2,'/compta/tva/clients.php?leftmenu=tax_vat','','ReportByCustomers','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163391,'auguria',1,'','left','accountancy',163387,NULL,NULL,3,'/compta/tva/quadri_detail.php?leftmenu=tax_vat','','ReportByQuarter','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163487,'auguria',1,'','left','accountancy',161093,NULL,NULL,7,'/accountancy/index.php?leftmenu=accountancy','','MenuAccountancy','accountancy',0,'accounting','! empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163488,'auguria',1,'','left','accountancy',163487,NULL,NULL,2,'/accountancy/customer/index.php?leftmenu=dispatch_customer','','CustomersVentilation','accountancy',1,'dispatch_customer','$user->rights->accounting->bind->write','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163489,'auguria',1,'','left','accountancy',163488,NULL,NULL,3,'/accountancy/customer/list.php','','ToDispatch','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163490,'auguria',1,'','left','accountancy',163488,NULL,NULL,4,'/accountancy/customer/lines.php','','Dispatched','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163497,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/supplier/index.php?leftmenu=dispatch_supplier','','SuppliersVentilation','accountancy',1,'ventil_supplier','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled',0,'2017-08-30 15:14:30'),(163498,'auguria',1,'','left','accountancy',163497,NULL,NULL,6,'/accountancy/supplier/list.php','','ToDispatch','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163499,'auguria',1,'','left','accountancy',163497,NULL,NULL,7,'/accountancy/supplier/lines.php','','Dispatched','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163507,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/expensereport/index.php?leftmenu=dispatch_expensereport','','ExpenseReportsVentilation','accountancy',1,'ventil_expensereport','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(163508,'auguria',1,'','left','accountancy',163507,NULL,NULL,6,'/accountancy/expensereport/list.php','','ToDispatch','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163509,'auguria',1,'','left','accountancy',163507,NULL,NULL,7,'/accountancy/expensereport/lines.php','','Dispatched','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163517,'auguria',1,'','left','accountancy',163487,NULL,NULL,15,'/accountancy/bookkeeping/list.php','','Bookkeeping','accountancy',1,'bookkeeping','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163522,'auguria',1,'','left','accountancy',163487,NULL,NULL,16,'/accountancy/bookkeeping/balance.php','','AccountBalance','accountancy',1,'balance','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163527,'auguria',1,'','left','accountancy',163487,NULL,NULL,17,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','Reportings','main',1,'report','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163528,'auguria',1,'','left','accountancy',163527,NULL,NULL,19,'/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportInOut','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163529,'auguria',1,'','left','accountancy',163528,NULL,NULL,18,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','ByAccounts','main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163530,'auguria',1,'','left','accountancy',163528,NULL,NULL,20,'/compta/resultat/clientfourn.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies','main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163531,'auguria',1,'','left','accountancy',163527,NULL,NULL,21,'/compta/stats/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportTurnover','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163532,'auguria',1,'','left','accountancy',163531,NULL,NULL,22,'/compta/stats/casoc.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies','main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163533,'auguria',1,'','left','accountancy',163531,NULL,NULL,23,'/compta/stats/cabyuser.php?mainmenu=accountancy&leftmenu=accountancy','','ByUsers','main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163534,'auguria',1,'','left','accountancy',163531,NULL,NULL,24,'/compta/stats/cabyprodserv.php?mainmenu=accountancy&leftmenu=accountancy','','ByProductsAndServices','main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163537,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin','','FiscalPeriod','admin',1,'accountancy_admin_period','','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\" && $conf->global->MAIN_FEATURES_LEVEL > 0',2,'2017-08-30 15:14:30'),(163538,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'/accountancy/index.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Setup','accountancy',1,'accountancy_admin','$user->rights->accounting->chartofaccount','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163541,'auguria',1,'','left','accountancy',163538,NULL,NULL,10,'/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingJournals','accountancy',2,'accountancy_admin_journal','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163542,'auguria',1,'','left','accountancy',163538,NULL,NULL,20,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Pcg_version','accountancy',2,'accountancy_admin_chartmodel','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163543,'auguria',1,'','left','accountancy',163538,NULL,NULL,30,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Chartofaccounts','accountancy',2,'accountancy_admin_chart','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163544,'auguria',1,'','left','accountancy',163538,NULL,NULL,40,'/accountancy/admin/categories_list.php?id=32&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingCategory','accountancy',2,'accountancy_admin_chart_group','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163545,'auguria',1,'','left','accountancy',163538,NULL,NULL,50,'/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuDefaultAccounts','accountancy',2,'accountancy_admin_default','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163546,'auguria',1,'','left','accountancy',163538,NULL,NULL,60,'/admin/dict.php?id=10&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuVatAccounts','accountancy',2,'accountancy_admin_vat','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163547,'auguria',1,'','left','accountancy',163538,NULL,NULL,70,'/admin/dict.php?id=7&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuTaxAccounts','accountancy',2,'accountancy_admin_tax','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163548,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/admin/dict.php?id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuExpenseReportAccounts','accountancy',2,'accountancy_admin_expensereport','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163549,'auguria',1,'','left','accountancy',163538,NULL,NULL,90,'/accountancy/admin/productaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuProductsAccounts','accountancy',2,'accountancy_admin_product','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163587,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/prelevement/index.php?leftmenu=withdraw&amp;mainmenu=bank','','StandingOrders','withdrawals',0,'withdraw','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled',2,'2017-08-30 15:14:30'),(163589,'auguria',1,'','left','accountancy',163587,NULL,NULL,0,'/compta/prelevement/create.php?leftmenu=withdraw','','NewStandingOrder','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163590,'auguria',1,'','left','accountancy',163587,NULL,NULL,2,'/compta/prelevement/bons.php?leftmenu=withdraw','','WithdrawalsReceipts','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163591,'auguria',1,'','left','accountancy',163587,NULL,NULL,3,'/compta/prelevement/list.php?leftmenu=withdraw','','WithdrawalsLines','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163593,'auguria',1,'','left','accountancy',163587,NULL,NULL,5,'/compta/prelevement/rejets.php?leftmenu=withdraw','','Rejects','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163594,'auguria',1,'','left','accountancy',163587,NULL,NULL,6,'/compta/prelevement/stats.php?leftmenu=withdraw','','Statistics','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163687,'auguria',1,'','left','accountancy',161101,NULL,NULL,1,'/compta/bank/index.php?leftmenu=bank&amp;mainmenu=bank','','MenuBankCash','banks',0,'bank','$user->rights->banque->lire','$conf->banque->enabled',0,'2017-08-30 15:14:30'),(163688,'auguria',1,'','left','accountancy',163687,NULL,NULL,0,'/compta/bank/card.php?action=create&amp;leftmenu=bank','','MenuNewFinancialAccount','banks',1,'','$user->rights->banque->configurer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163690,'auguria',1,'','left','accountancy',163687,NULL,NULL,2,'/compta/bank/bankentries.php?leftmenu=bank','','ListTransactions','banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163691,'auguria',1,'','left','accountancy',163687,NULL,NULL,3,'/compta/bank/budget.php?leftmenu=bank','','ListTransactionsByCategory','banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163693,'auguria',1,'','left','accountancy',163687,NULL,NULL,5,'/compta/bank/transfer.php?leftmenu=bank','','BankTransfers','banks',1,'','$user->rights->banque->transfer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163737,'auguria',1,'','left','accountancy',161101,NULL,NULL,4,'/categories/index.php?leftmenu=bank&amp;type=5','','Categories','categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163738,'auguria',1,'','left','accountancy',163737,NULL,NULL,0,'/categories/card.php?leftmenu=bank&amp;action=create&amp;type=5','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163787,'auguria',1,'','left','accountancy',161093,NULL,NULL,11,'/compta/resultat/index.php?leftmenu=ca&amp;mainmenu=accountancy','','Reportings','main',0,'ca','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled',0,'2017-08-30 15:14:30'),(163792,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'','','Journalization','main',1,'','$user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163793,'auguria',1,'','left','accountancy',163792,NULL,NULL,4,'/accountancy/journal/sellsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=1','','SellsJournal','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163794,'auguria',1,'','left','accountancy',163792,NULL,NULL,1,'/accountancy/journal/bankjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=3','','BankJournal','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163795,'auguria',1,'','left','accountancy',163792,NULL,NULL,2,'/accountancy/journal/expensereportsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=6','','ExpenseReportJournal','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163796,'auguria',1,'','left','accountancy',163792,NULL,NULL,3,'/accountancy/journal/purchasesjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=2','','PurchasesJournal','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163798,'auguria',1,'','left','accountancy',163787,NULL,NULL,0,'/compta/resultat/index.php?leftmenu=ca','','ReportInOut','main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163799,'auguria',1,'','left','accountancy',163788,NULL,NULL,0,'/compta/resultat/clientfourn.php?leftmenu=ca','','ByCompanies','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163800,'auguria',1,'','left','accountancy',163787,NULL,NULL,1,'/compta/stats/index.php?leftmenu=ca','','ReportTurnover','main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163801,'auguria',1,'','left','accountancy',163790,NULL,NULL,0,'/compta/stats/casoc.php?leftmenu=ca','','ByCompanies','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163802,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyuser.php?leftmenu=ca','','ByUsers','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163803,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyprodserv.php?leftmenu=ca','','ByProductsAndServices','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163887,'auguria',1,'','left','products',161090,NULL,NULL,0,'/product/index.php?leftmenu=product&amp;type=0','','Products','products',0,'product','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163888,'auguria',1,'','left','products',163887,NULL,NULL,0,'/product/card.php?leftmenu=product&amp;action=create&amp;type=0','','NewProduct','products',1,'','$user->rights->produit->creer','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163889,'auguria',1,'','left','products',163887,NULL,NULL,1,'/product/list.php?leftmenu=product&amp;type=0','','List','products',1,'','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163890,'auguria',1,'','left','products',163887,NULL,NULL,4,'/product/reassort.php?type=0','','Stocks','products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163891,'auguria',1,'','left','products',163887,NULL,NULL,7,'/product/stats/card.php?id=all&amp;leftmenu=stats&amp;type=0','','Statistics','main',1,'','$user->rights->produit->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(163892,'auguria',1,'','left','products',163887,NULL,NULL,5,'/product/reassortlot.php?type=0','','StocksByLotSerial','products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163893,'auguria',1,'','left','products',163887,NULL,NULL,6,'/product/stock/productlot_list.php','','LotSerial','products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163987,'auguria',1,'','left','products',161090,NULL,NULL,1,'/product/index.php?leftmenu=service&amp;type=1','','Services','products',0,'service','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163988,'auguria',1,'','left','products',163987,NULL,NULL,0,'/product/card.php?leftmenu=service&amp;action=create&amp;type=1','','NewService','products',1,'','$user->rights->service->creer','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163989,'auguria',1,'','left','products',163987,NULL,NULL,1,'/product/list.php?leftmenu=service&amp;type=1','','List','products',1,'','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163990,'auguria',1,'','left','products',163987,NULL,NULL,5,'/product/stats/card.php?id=all&amp;leftmenu=stats&amp;type=1','','Statistics','main',1,'','$user->rights->service->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(164187,'auguria',1,'','left','products',161090,NULL,NULL,3,'/product/stock/index.php?leftmenu=stock','','Stock','stocks',0,'stock','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164188,'auguria',1,'','left','products',164187,NULL,NULL,0,'/product/stock/card.php?action=create','','MenuNewWarehouse','stocks',1,'','$user->rights->stock->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164189,'auguria',1,'','left','products',164187,NULL,NULL,1,'/product/stock/list.php','','List','stocks',1,'','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164191,'auguria',1,'','left','products',164187,NULL,NULL,3,'/product/stock/mouvement.php','','Movements','stocks',1,'','$user->rights->stock->mouvement->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164192,'auguria',1,'','left','products',164187,NULL,NULL,4,'/product/stock/replenish.php','','Replenishments','stocks',1,'','$user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire','$conf->stock->enabled && $conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(164193,'auguria',1,'','left','products',164187,NULL,NULL,5,'/product/stock/massstockmove.php','','MassStockTransferShort','stocks',1,'','$user->rights->stock->mouvement->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164287,'auguria',1,'','left','products',161090,NULL,NULL,4,'/categories/index.php?leftmenu=cat&amp;type=0','','Categories','categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164288,'auguria',1,'','left','products',164287,NULL,NULL,0,'/categories/card.php?action=create&amp;type=0','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164487,'auguria',1,'','left','project',161094,NULL,NULL,3,'/projet/activity/perweek.php?leftmenu=projects','','NewTimeSpent','projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164687,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/index.php?leftmenu=projects','','Projects','projects',0,'projects','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164688,'auguria',1,'','left','project',164687,NULL,NULL,1,'/projet/card.php?leftmenu=projects&amp;action=create','','NewProject','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164689,'auguria',1,'','left','project',164687,NULL,NULL,2,'/projet/list.php?leftmenu=projects','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164690,'auguria',1,'','left','project',164687,NULL,NULL,3,'/projet/stats/index.php?leftmenu=projects','','Statistics','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164787,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/activity/index.php?leftmenu=projects','','Activities','projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164788,'auguria',1,'','left','project',164787,NULL,NULL,1,'/projet/tasks.php?leftmenu=projects&amp;action=create','','NewTask','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164789,'auguria',1,'','left','project',164787,NULL,NULL,2,'/projet/tasks/list.php?leftmenu=projects','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164791,'auguria',1,'','left','project',164787,NULL,NULL,4,'/projet/tasks/stats/index.php?leftmenu=projects','','Statistics','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164891,'auguria',1,'','left','project',161094,NULL,NULL,4,'/categories/index.php?leftmenu=cat&amp;type=6','','Categories','categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164892,'auguria',1,'','left','project',164891,NULL,NULL,0,'/categories/card.php?action=create&amp;type=6','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164987,'auguria',1,'','left','tools',161095,NULL,NULL,0,'/comm/mailing/index.php?leftmenu=mailing','','EMailings','mails',0,'mailing','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164988,'auguria',1,'','left','tools',164987,NULL,NULL,0,'/comm/mailing/card.php?leftmenu=mailing&amp;action=create','','NewMailing','mails',1,'','$user->rights->mailing->creer','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164989,'auguria',1,'','left','tools',164987,NULL,NULL,1,'/comm/mailing/list.php?leftmenu=mailing','','List','mails',1,'','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(165187,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/exports/index.php?leftmenu=export','','FormatedExport','exports',0,'export','$user->rights->export->lire','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165188,'auguria',1,'','left','tools',165187,NULL,NULL,0,'/exports/export.php?leftmenu=export','','NewExport','exports',1,'','$user->rights->export->creer','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165217,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/imports/index.php?leftmenu=import','','FormatedImport','exports',0,'import','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165218,'auguria',1,'','left','tools',165217,NULL,NULL,0,'/imports/import.php?leftmenu=import','','NewImport','exports',1,'','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165287,'auguria',1,'','left','members',161100,NULL,NULL,0,'/adherents/index.php?leftmenu=members&amp;mainmenu=members','','Members','members',0,'members','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165288,'auguria',1,'','left','members',165287,NULL,NULL,0,'/adherents/card.php?leftmenu=members&amp;action=create','','NewMember','members',1,'','$user->rights->adherent->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165289,'auguria',1,'','left','members',165287,NULL,NULL,1,'/adherents/list.php','','List','members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165290,'auguria',1,'','left','members',165289,NULL,NULL,2,'/adherents/list.php?leftmenu=members&amp;statut=-1','','MenuMembersToValidate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165291,'auguria',1,'','left','members',165289,NULL,NULL,3,'/adherents/list.php?leftmenu=members&amp;statut=1','','MenuMembersValidated','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165292,'auguria',1,'','left','members',165289,NULL,NULL,4,'/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=outofdate','','MenuMembersNotUpToDate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165293,'auguria',1,'','left','members',165289,NULL,NULL,5,'/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=uptodate','','MenuMembersUpToDate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165294,'auguria',1,'','left','members',165289,NULL,NULL,6,'/adherents/list.php?leftmenu=members&amp;statut=0','','MenuMembersResiliated','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165295,'auguria',1,'','left','members',165287,NULL,NULL,7,'/adherents/stats/geo.php?leftmenu=members&amp;mode=memberbycountry','','MenuMembersStats','members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165387,'auguria',1,'','left','members',161100,NULL,NULL,1,'/adherents/index.php?leftmenu=members&amp;mainmenu=members','','Subscriptions','compta',0,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165388,'auguria',1,'','left','members',165387,NULL,NULL,0,'/adherents/list.php?statut=-1&amp;leftmenu=accountancy&amp;mainmenu=members','','NewSubscription','compta',1,'','$user->rights->adherent->cotisation->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165389,'auguria',1,'','left','members',165387,NULL,NULL,1,'/adherents/subscription/list.php?leftmenu=members','','List','compta',1,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165390,'auguria',1,'','left','members',165387,NULL,NULL,7,'/adherents/stats/index.php?leftmenu=members','','MenuMembersStats','members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165589,'auguria',1,'','left','members',165287,NULL,NULL,9,'/adherents/htpasswd.php?leftmenu=export','','Filehtpasswd','members',1,'','$user->rights->adherent->export','! empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && $conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165590,'auguria',1,'','left','members',165287,NULL,NULL,10,'/adherents/cartes/carte.php?leftmenu=export','','MembersCards','members',1,'','$user->rights->adherent->export','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165687,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/user/index.php?leftmenu=hrm&mode=employee','','Employees','hrm',0,'hrm','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165688,'auguria',1,'','left','hrm',165687,NULL,NULL,1,'/user/card.php?action=create&employee=1','','NewEmployee','hrm',1,'','$user->rights->hrm->employee->write','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165689,'auguria',1,'','left','hrm',165687,NULL,NULL,2,'/user/index.php?$leftmenu=hrm&mode=employee&contextpage=employeelist','','List','hrm',1,'','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165787,'auguria',1,'','left','members',161100,NULL,NULL,5,'/adherents/type.php?leftmenu=setup&amp;mainmenu=members','','MembersTypes','members',0,'setup','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165788,'auguria',1,'','left','members',165787,NULL,NULL,0,'/adherents/type.php?leftmenu=setup&amp;mainmenu=members&amp;action=create','','New','members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165789,'auguria',1,'','left','members',165787,NULL,NULL,1,'/adherents/type.php?leftmenu=setup&amp;mainmenu=members','','List','members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(166087,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','CPTitreMenu','holiday',0,'hrm','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166088,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/card.php?&action=request','','MenuAddCP','holiday',1,'','$user->rights->holiday->write','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166089,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','List','holiday',1,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166090,'auguria',1,'','left','hrm',166089,NULL,NULL,1,'/holiday/list.php?select_statut=2&leftmenu=hrm','','ListToApprove','trips',2,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166091,'auguria',1,'','left','hrm',166087,NULL,NULL,2,'/holiday/define_holiday.php?&action=request','','MenuConfCP','holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166092,'auguria',1,'','left','hrm',166087,NULL,NULL,3,'/holiday/view_log.php?&action=request','','MenuLogCP','holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166187,'auguria',1,'','left','commercial',161092,NULL,NULL,6,'/fourn/commande/index.php?leftmenu=orders_suppliers','','SuppliersOrders','orders',0,'orders_suppliers','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166188,'auguria',1,'','left','commercial',166187,NULL,NULL,0,'/fourn/commande/card.php?action=create&amp;leftmenu=orders_suppliers','','NewOrder','orders',1,'','$user->rights->fournisseur->commande->creer','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166189,'auguria',1,'','left','commercial',166187,NULL,NULL,1,'/fourn/commande/list.php?leftmenu=orders_suppliers&amp;viewstatut=0','','List','orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166195,'auguria',1,'','left','commercial',166187,NULL,NULL,7,'/commande/stats/index.php?leftmenu=orders_suppliers&amp;mode=supplier','','Statistics','orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166287,'auguria',1,'','left','members',161100,NULL,NULL,3,'/categories/index.php?leftmenu=cat&amp;type=3','','MembersCategoriesShort','categories',0,'cat','$user->rights->categorie->lire','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166288,'auguria',1,'','left','members',166287,NULL,NULL,0,'/categories/card.php?action=create&amp;type=3','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166387,'auguria',1,'','left','hrm',161102,NULL,NULL,5,'/expensereport/index.php?leftmenu=expensereport','','TripsAndExpenses','trips',0,'expensereport','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166388,'auguria',1,'','left','hrm',166387,NULL,NULL,1,'/expensereport/card.php?action=create&amp;leftmenu=expensereport','','New','trips',1,'','$user->rights->expensereport->creer','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166389,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/list.php?leftmenu=expensereport','','List','trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166390,'auguria',1,'','left','hrm',166389,NULL,NULL,2,'/expensereport/list.php?search_status=2&amp;leftmenu=expensereport','','ListToApprove','trips',2,'','$user->rights->expensereport->approve','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166391,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/stats/index.php?leftmenu=expensereport','','Statistics','trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166467,'all',1,'variants','left','products',-1,'product','products',100,'/variants/list.php','','VariantAttributes','products',NULL,'product','1','$conf->product->enabled',0,'2018-01-19 11:28:04'),(166468,'all',1,'agenda','top','agenda',0,NULL,NULL,15,'/comm/action/index.php','','TMenuAgenda','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-03-16 09:54:05'),(166469,'all',1,'agenda','left','agenda',166468,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda','','Actions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-03-16 09:54:05'),(166470,'all',1,'agenda','left','agenda',166469,NULL,NULL,101,'/comm/action/card.php?mainmenu=agenda&amp;leftmenu=agenda&amp;action=create','','NewAction','commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2018-03-16 09:54:05'),(166471,'all',1,'agenda','left','agenda',166469,NULL,NULL,140,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda','','Agenda','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-03-16 09:54:05'),(166472,'all',1,'agenda','left','agenda',166471,NULL,NULL,141,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-03-16 09:54:05'),(166473,'all',1,'agenda','left','agenda',166471,NULL,NULL,142,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-03-16 09:54:05'),(166474,'all',1,'agenda','left','agenda',166471,NULL,NULL,143,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filtert=-1','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2018-03-16 09:54:05'),(166475,'all',1,'agenda','left','agenda',166471,NULL,NULL,144,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filtert=-1','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2018-03-16 09:54:05'),(166476,'all',1,'agenda','left','agenda',166469,NULL,NULL,110,'/comm/action/list.php?mainmenu=agenda&amp;leftmenu=agenda','','List','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-03-16 09:54:05'),(166477,'all',1,'agenda','left','agenda',166476,NULL,NULL,111,'/comm/action/list.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-03-16 09:54:05'),(166478,'all',1,'agenda','left','agenda',166476,NULL,NULL,112,'/comm/action/list.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-03-16 09:54:05'),(166479,'all',1,'agenda','left','agenda',166476,NULL,NULL,113,'/comm/action/list.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filtert=-1','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2018-03-16 09:54:05'),(166480,'all',1,'agenda','left','agenda',166476,NULL,NULL,114,'/comm/action/list.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filtert=-1','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2018-03-16 09:54:05'),(166481,'all',1,'agenda','left','agenda',166469,NULL,NULL,160,'/comm/action/rapport/index.php?mainmenu=agenda&amp;leftmenu=agenda','','Reportings','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2018-03-16 09:54:05'),(166482,'all',1,'barcode','left','tools',-1,NULL,'tools',200,'/barcode/printsheet.php?mainmenu=tools&leftmenu=barcodeprint','','BarCodePrintsheet','products',NULL,'barcodeprint','($conf->global->MAIN_USE_ADVANCED_PERMS && $user->rights->barcode->lire_advance) || (! $conf->global->MAIN_USE_ADVANCED_PERMS)','$conf->barcode->enabled',2,'2018-03-16 09:54:05'),(166483,'all',1,'barcode','left','home',-1,'admintools','home',300,'/barcode/codeinit.php?mainmenu=home&leftmenu=admintools','','MassBarcodeInit','products',NULL,NULL,'($conf->global->MAIN_USE_ADVANCED_PERMS && $user->rights->barcode->creer_advance) || (! $conf->global->MAIN_USE_ADVANCED_PERMS)','$conf->barcode->enabled && preg_match(\'/^admintools/\',$leftmenu)',0,'2018-03-16 09:54:05'),(166484,'all',1,'cron','left','home',-1,'admintools','home',200,'/cron/list.php?status=-2&leftmenu=admintools','','CronList','cron',NULL,NULL,'$user->rights->cron->read','$conf->cron->enabled && preg_match(\'/^admintools/\', $leftmenu)',2,'2018-03-16 09:54:05'),(166485,'all',1,'ecm','top','ecm',0,NULL,NULL,100,'/ecm/index.php','','MenuECM','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload || $user->rights->ecm->setup','$conf->ecm->enabled',2,'2018-03-16 09:54:05'),(166486,'all',1,'ecm','left','ecm',-1,NULL,'ecm',101,'/ecm/index.php?mainmenu=ecm&leftmenu=ecm','','ECMArea','ecm',NULL,'ecm','$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2018-03-16 09:54:05'),(166487,'all',1,'ecm','left','ecm',-1,'ecm','ecm',102,'/ecm/index.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsManual','ecm',NULL,'ecm_manual','$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2018-03-16 09:54:05'),(166488,'all',1,'ecm','left','ecm',-1,'ecm','ecm',103,'/ecm/index_auto.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsAuto','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload','($user->rights->ecm->read || $user->rights->ecm->upload) && ! empty($conf->global->ECM_AUTO_TREE_ENABLED)',2,'2018-03-16 09:54:05'),(166489,'all',1,'opensurvey','left','tools',-1,NULL,'tools',200,'/opensurvey/index.php?mainmenu=tools&leftmenu=opensurvey','','Survey','opensurvey',NULL,'opensurvey','$user->rights->opensurvey->read','$conf->opensurvey->enabled',0,'2018-03-16 09:54:05'),(166490,'all',1,'opensurvey','left','tools',-1,'opensurvey','tools',210,'/opensurvey/wizard/index.php','','NewSurvey','opensurvey',NULL,'opensurvey_new','$user->rights->opensurvey->write','$conf->opensurvey->enabled',0,'2018-03-16 09:54:05'),(166491,'all',1,'opensurvey','left','tools',-1,'opensurvey','tools',220,'/opensurvey/list.php','','List','opensurvey',NULL,'opensurvey_list','$user->rights->opensurvey->read','$conf->opensurvey->enabled',0,'2018-03-16 09:54:05'),(166492,'all',1,'blockedlog','left','tools',-1,NULL,'tools',200,'/blockedlog/admin/blockedlog_list.php?mainmenu=tools&leftmenu=blockedlogbrowser','','BrowseBlockedLog','blockedlog',NULL,'blockedlogbrowser','$user->rights->blockedlog->read','$conf->blockedlog->enabled',2,'2018-03-16 09:57:24');
    +/*!40000 ALTER TABLE `llx_menu` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_abcdef`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_abcdef`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_abcdef` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  `note_private` mediumtext COLLATE utf8_unicode_ci,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_monmodule_abcdef_rowid` (`rowid`),
    +  KEY `idx_monmodule_abcdef_ref` (`ref`),
    +  KEY `idx_monmodule_abcdef_entity` (`entity`),
    +  KEY `idx_monmodule_abcdef_fk_soc` (`fk_soc`),
    +  KEY `idx_monmodule_abcdef_status` (`status`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_abcdef`
    +--
    +
    +LOCK TABLES `llx_monmodule_abcdef` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_abcdef` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monmodule_abcdef` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_abcdef_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_abcdef_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_abcdef_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_abcdef_extrafields`
    +--
    +
    +LOCK TABLES `llx_monmodule_abcdef_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_abcdef_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monmodule_abcdef_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_actioncommreminder`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_actioncommreminder`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_actioncommreminder` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `status` int(11) DEFAULT NULL,
    +  `entity` int(11) DEFAULT '1',
    +  `dateremind` datetime NOT NULL,
    +  `typeremind` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `offsetvalue` int(11) NOT NULL,
    +  `offsetunit` varchar(1) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_monmodule_actioncommreminder_rowid` (`rowid`),
    +  KEY `idx_monmodule_actioncommreminder_status` (`status`),
    +  KEY `idx_monmodule_actioncommreminder_dateremind` (`dateremind`),
    +  KEY `idx_monmodule_actioncommreminder_fk_user` (`fk_user`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_actioncommreminder`
    +--
    +
    +LOCK TABLES `llx_monmodule_actioncommreminder` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_actioncommreminder` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monmodule_actioncommreminder` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_actioncommreminder_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_actioncommreminder_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_actioncommreminder_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_actioncommreminder_extrafields`
    +--
    +
    +LOCK TABLES `llx_monmodule_actioncommreminder_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_actioncommreminder_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monmodule_actioncommreminder_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_eleves`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_eleves`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_eleves` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  `note_private` mediumtext COLLATE utf8_unicode_ci,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_monmodule_eleves_rowid` (`rowid`),
    +  KEY `idx_monmodule_eleves_ref` (`ref`),
    +  KEY `idx_monmodule_eleves_entity` (`entity`),
    +  KEY `idx_monmodule_eleves_fk_soc` (`fk_soc`),
    +  KEY `idx_monmodule_eleves_status` (`status`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_eleves`
    +--
    +
    +LOCK TABLES `llx_monmodule_eleves` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_eleves` DISABLE KEYS */;
    +INSERT INTO `llx_monmodule_eleves` VALUES (1,'aaa',1,'jjl',NULL,32,NULL,NULL,'2017-11-21 15:02:43','2017-11-21 15:02:43',12,NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_monmodule_eleves` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_eleves_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_eleves_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_eleves_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_eleves_extrafields`
    +--
    +
    +LOCK TABLES `llx_monmodule_eleves_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_eleves_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monmodule_eleves_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monobj_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monobj_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monobj_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monobj_extrafields`
    +--
    +
    +LOCK TABLES `llx_monobj_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_monobj_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monobj_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_multicurrency`
    +--
    +
    +DROP TABLE IF EXISTS `llx_multicurrency`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_multicurrency` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `date_create` datetime DEFAULT NULL,
    +  `code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) DEFAULT '1',
    +  `fk_user` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_multicurrency`
    +--
    +
    +LOCK TABLES `llx_multicurrency` WRITE;
    +/*!40000 ALTER TABLE `llx_multicurrency` DISABLE KEYS */;
    +INSERT INTO `llx_multicurrency` VALUES (1,'2017-02-15 21:17:16','EUR','Euros (€)',1,12);
    +/*!40000 ALTER TABLE `llx_multicurrency` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_multicurrency_rate`
    +--
    +
    +DROP TABLE IF EXISTS `llx_multicurrency_rate`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_multicurrency_rate` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `date_sync` datetime DEFAULT NULL,
    +  `rate` double NOT NULL DEFAULT '0',
    +  `fk_multicurrency` int(11) NOT NULL,
    +  `entity` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_multicurrency_rate`
    +--
    +
    +LOCK TABLES `llx_multicurrency_rate` WRITE;
    +/*!40000 ALTER TABLE `llx_multicurrency_rate` DISABLE KEYS */;
    +INSERT INTO `llx_multicurrency_rate` VALUES (1,'2017-02-15 21:17:16',1,1,1);
    +/*!40000 ALTER TABLE `llx_multicurrency_rate` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_myobject`
    +--
    +
    +DROP TABLE IF EXISTS `llx_myobject`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_myobject` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_othertable` int(11) NOT NULL,
    +  `name` varchar(189) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_fk_othertable` (`fk_othertable`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_myobject`
    +--
    +
    +LOCK TABLES `llx_myobject` WRITE;
    +/*!40000 ALTER TABLE `llx_myobject` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_myobject` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclature`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclature`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclature` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `title` varchar(255) DEFAULT NULL,
    +  `fk_object` int(11) NOT NULL DEFAULT '0',
    +  `fk_nomenclature_parent` int(11) NOT NULL DEFAULT '0',
    +  `is_default` int(11) NOT NULL DEFAULT '0',
    +  `qty_reference` double NOT NULL DEFAULT '0',
    +  `totalPRCMO_PMP` double NOT NULL DEFAULT '0',
    +  `totalPRCMO_OF` double NOT NULL DEFAULT '0',
    +  `totalPRCMO` double NOT NULL DEFAULT '0',
    +  `object_type` varchar(255) DEFAULT NULL,
    +  `note_private` longtext,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_object` (`fk_object`),
    +  KEY `fk_nomenclature_parent` (`fk_nomenclature_parent`),
    +  KEY `is_default` (`is_default`),
    +  KEY `qty_reference` (`qty_reference`),
    +  KEY `object_type` (`object_type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclature`
    +--
    +
    +LOCK TABLES `llx_nomenclature` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclature` DISABLE KEYS */;
    +INSERT INTO `llx_nomenclature` VALUES (1,'2018-11-18 16:22:02','2018-11-18 16:25:48','BOM 1',196,0,0,1,0,0,53.9,'product',''),(2,'2018-11-18 17:18:53','2018-11-18 17:20:45','BOM 2',195,0,0,1,0,0,22,'product','');
    +/*!40000 ALTER TABLE `llx_nomenclature` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclature_coef`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclature_coef`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclature_coef` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `label` varchar(255) DEFAULT NULL,
    +  `description` varchar(255) DEFAULT NULL,
    +  `code_type` varchar(30) DEFAULT NULL,
    +  `tx` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `code_type` (`code_type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclature_coef`
    +--
    +
    +LOCK TABLES `llx_nomenclature_coef` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclature_coef` DISABLE KEYS */;
    +INSERT INTO `llx_nomenclature_coef` VALUES (1,'2018-11-18 15:55:54','2018-11-18 15:55:54','Marge','Coef. de marge','coef_marge',1.1);
    +/*!40000 ALTER TABLE `llx_nomenclature_coef` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclature_coef_object`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclature_coef_object`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclature_coef_object` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_object` int(11) NOT NULL DEFAULT '0',
    +  `type_object` varchar(50) DEFAULT NULL,
    +  `code_type` varchar(30) DEFAULT NULL,
    +  `tx_object` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_object` (`fk_object`),
    +  KEY `type_object` (`type_object`),
    +  KEY `code_type` (`code_type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclature_coef_object`
    +--
    +
    +LOCK TABLES `llx_nomenclature_coef_object` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclature_coef_object` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_nomenclature_coef_object` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclature_workstation`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclature_workstation`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclature_workstation` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_workstation` int(11) NOT NULL DEFAULT '0',
    +  `fk_nomenclature` int(11) NOT NULL DEFAULT '0',
    +  `rang` int(11) NOT NULL DEFAULT '0',
    +  `unifyRang` int(11) NOT NULL DEFAULT '0',
    +  `nb_hour` double NOT NULL DEFAULT '0',
    +  `nb_hour_prepare` double NOT NULL DEFAULT '0',
    +  `nb_hour_manufacture` double NOT NULL DEFAULT '0',
    +  `nb_days_before_beginning` double NOT NULL DEFAULT '0',
    +  `note_private` longtext,
    +  `code_type` varchar(30) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_workstation` (`fk_workstation`),
    +  KEY `fk_nomenclature` (`fk_nomenclature`),
    +  KEY `rang` (`rang`),
    +  KEY `unifyRang` (`unifyRang`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclature_workstation`
    +--
    +
    +LOCK TABLES `llx_nomenclature_workstation` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclature_workstation` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_nomenclature_workstation` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclature_workstation_thm_object`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclature_workstation_thm_object`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclature_workstation_thm_object` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_workstation` int(11) NOT NULL DEFAULT '0',
    +  `fk_object` int(11) NOT NULL DEFAULT '0',
    +  `type_object` varchar(50) DEFAULT NULL,
    +  `thm_object` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_object` (`fk_object`),
    +  KEY `type_object` (`type_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclature_workstation_thm_object`
    +--
    +
    +LOCK TABLES `llx_nomenclature_workstation_thm_object` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclature_workstation_thm_object` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_nomenclature_workstation_thm_object` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclaturedet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclaturedet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclaturedet` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `title` varchar(255) DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `fk_nomenclature` int(11) NOT NULL DEFAULT '0',
    +  `is_imported` int(11) NOT NULL DEFAULT '0',
    +  `rang` int(11) NOT NULL DEFAULT '0',
    +  `unifyRang` int(11) NOT NULL DEFAULT '0',
    +  `code_type` varchar(30) DEFAULT NULL,
    +  `workstations` varchar(255) DEFAULT NULL,
    +  `qty` double NOT NULL DEFAULT '0',
    +  `price` double NOT NULL DEFAULT '0',
    +  `note_private` longtext,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_product` (`fk_product`),
    +  KEY `fk_nomenclature` (`fk_nomenclature`),
    +  KEY `is_imported` (`is_imported`),
    +  KEY `rang` (`rang`),
    +  KEY `unifyRang` (`unifyRang`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclaturedet`
    +--
    +
    +LOCK TABLES `llx_nomenclaturedet` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclaturedet` DISABLE KEYS */;
    +INSERT INTO `llx_nomenclaturedet` VALUES (1,'2018-11-18 16:22:25','2018-11-18 16:25:48','',192,1,0,0,0,'coef_marge','',2,0,'aaa'),(2,'2018-11-18 16:22:37','2018-11-18 16:25:48','',151,1,0,1,0,'coef_marge','',1,0,'bbb'),(3,'2018-11-18 16:25:42','2018-11-18 16:25:48','',10,1,0,2,0,'coef_marge','',1,0,'ccc'),(4,'2018-11-18 17:19:13','2018-11-18 17:20:45','',190,2,0,0,0,'coef_marge','',2,0,'aaa'),(5,'2018-11-18 17:20:19','2018-11-18 17:20:45','',11,2,0,1,0,'coef_marge','',1,0,'bbb'),(6,'2018-11-18 17:20:40','2018-11-18 17:20:45','',10,2,0,2,0,'coef_marge','',1,0,'');
    +/*!40000 ALTER TABLE `llx_nomenclaturedet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_notify`
    +--
    +
    +DROP TABLE IF EXISTS `llx_notify`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_notify` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `daten` datetime DEFAULT NULL,
    +  `fk_action` int(11) NOT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_contact` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `objet_type` varchar(24) COLLATE utf8_unicode_ci NOT NULL,
    +  `objet_id` int(11) NOT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'email',
    +  `type_target` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_notify`
    +--
    +
    +LOCK TABLES `llx_notify` WRITE;
    +/*!40000 ALTER TABLE `llx_notify` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_notify` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_notify_def`
    +--
    +
    +DROP TABLE IF EXISTS `llx_notify_def`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_notify_def` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` date DEFAULT NULL,
    +  `fk_action` int(11) NOT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_contact` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `type` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'email',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_notify_def`
    +--
    +
    +LOCK TABLES `llx_notify_def` WRITE;
    +/*!40000 ALTER TABLE `llx_notify_def` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_notify_def` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_notify_def_object`
    +--
    +
    +DROP TABLE IF EXISTS `llx_notify_def_object`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_notify_def_object` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `objet_type` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `objet_id` int(11) NOT NULL,
    +  `type_notif` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'browser',
    +  `date_notif` datetime DEFAULT NULL,
    +  `user_id` int(11) DEFAULT NULL,
    +  `moreparam` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_notify_def_object`
    +--
    +
    +LOCK TABLES `llx_notify_def_object` WRITE;
    +/*!40000 ALTER TABLE `llx_notify_def_object` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_notify_def_object` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_oauth_state`
    +--
    +
    +DROP TABLE IF EXISTS `llx_oauth_state`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_oauth_state` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `service` varchar(36) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `state` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `fk_adherent` int(11) DEFAULT NULL,
    +  `entity` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_oauth_state`
    +--
    +
    +LOCK TABLES `llx_oauth_state` WRITE;
    +/*!40000 ALTER TABLE `llx_oauth_state` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_oauth_state` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_oauth_token`
    +--
    +
    +DROP TABLE IF EXISTS `llx_oauth_token`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_oauth_token` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `service` varchar(36) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `token` text COLLATE utf8_unicode_ci,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `fk_adherent` int(11) DEFAULT NULL,
    +  `entity` int(11) DEFAULT NULL,
    +  `tokenstring` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_oauth_token`
    +--
    +
    +LOCK TABLES `llx_oauth_token` WRITE;
    +/*!40000 ALTER TABLE `llx_oauth_token` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_oauth_token` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_onlinesignature`
    +--
    +
    +DROP TABLE IF EXISTS `llx_onlinesignature`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_onlinesignature` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `object_type` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `object_id` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `ip` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pathoffile` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_onlinesignature`
    +--
    +
    +LOCK TABLES `llx_onlinesignature` WRITE;
    +/*!40000 ALTER TABLE `llx_onlinesignature` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_onlinesignature` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_opensurvey_comments`
    +--
    +
    +DROP TABLE IF EXISTS `llx_opensurvey_comments`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_opensurvey_comments` (
    +  `id_comment` int(10) unsigned NOT NULL AUTO_INCREMENT,
    +  `id_sondage` char(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `comment` text COLLATE utf8_unicode_ci NOT NULL,
    +  `usercomment` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`id_comment`),
    +  KEY `idx_id_comment` (`id_comment`),
    +  KEY `idx_id_sondage` (`id_sondage`)
    +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_opensurvey_comments`
    +--
    +
    +LOCK TABLES `llx_opensurvey_comments` WRITE;
    +/*!40000 ALTER TABLE `llx_opensurvey_comments` DISABLE KEYS */;
    +INSERT INTO `llx_opensurvey_comments` VALUES (2,'434dio8rxfljs3p1','aaa','aaa'),(5,'434dio8rxfljs3p1','aaa','aaa'),(6,'434dio8rxfljs3p1','gfh','jj'),(11,'434dio8rxfljs3p1','fsdf','fdsf'),(12,'3imby4hf7joiilsu','fsdf','aa'),(16,'3imby4hf7joiilsu','gdfg','gfdg'),(17,'3imby4hf7joiilsu','gfdgd','gdfgd'),(18,'om4e7azfiurnjtqe','fds','fdsf'),(26,'qgsfrgb922rqzocy','gfdg','gfdg'),(27,'qgsfrgb922rqzocy','gfdg','gfd'),(30,'ckanvbe7kt3rdb3h','hfgh','fdfds');
    +/*!40000 ALTER TABLE `llx_opensurvey_comments` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_opensurvey_formquestions`
    +--
    +
    +DROP TABLE IF EXISTS `llx_opensurvey_formquestions`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_opensurvey_formquestions` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `id_sondage` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `question` text COLLATE utf8_unicode_ci,
    +  `available_answers` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_opensurvey_formquestions`
    +--
    +
    +LOCK TABLES `llx_opensurvey_formquestions` WRITE;
    +/*!40000 ALTER TABLE `llx_opensurvey_formquestions` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_opensurvey_formquestions` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_opensurvey_sondage`
    +--
    +
    +DROP TABLE IF EXISTS `llx_opensurvey_sondage`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_opensurvey_sondage` (
    +  `id_sondage` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `commentaires` text COLLATE utf8_unicode_ci,
    +  `mail_admin` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `nom_admin` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `titre` text COLLATE utf8_unicode_ci NOT NULL,
    +  `date_fin` datetime DEFAULT NULL,
    +  `status` int(11) DEFAULT '1',
    +  `format` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
    +  `mailsonde` tinyint(4) NOT NULL DEFAULT '0',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `allow_comments` tinyint(4) NOT NULL DEFAULT '1',
    +  `allow_spy` tinyint(4) NOT NULL DEFAULT '1',
    +  `sujet` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`id_sondage`),
    +  KEY `idx_date_fin` (`date_fin`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_opensurvey_sondage`
    +--
    +
    +LOCK TABLES `llx_opensurvey_sondage` WRITE;
    +/*!40000 ALTER TABLE `llx_opensurvey_sondage` DISABLE KEYS */;
    +INSERT INTO `llx_opensurvey_sondage` VALUES ('m4467s2mtk6khmxc','What is your prefered date for a brunch','myemail@aaa.com','fdfds',0,'Date of next brunch','2013-03-07 00:00:00',1,'D',1,'2018-03-16 10:00:54',1,1,1,',1483473600'),('tim1dye8x5eeetxu','Please vote for the candidate you want to have for our new president this year.',NULL,NULL,12,'Election of new president','2017-02-26 04:00:00',1,'A',0,'2018-03-16 10:00:54',1,1,0,'Alan Candide@foragainst,Alex Candor@foragainst');
    +/*!40000 ALTER TABLE `llx_opensurvey_sondage` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_opensurvey_user_formanswers`
    +--
    +
    +DROP TABLE IF EXISTS `llx_opensurvey_user_formanswers`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_opensurvey_user_formanswers` (
    +  `fk_user_survey` int(11) NOT NULL,
    +  `fk_question` int(11) NOT NULL,
    +  `reponses` text COLLATE utf8_unicode_ci
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_opensurvey_user_formanswers`
    +--
    +
    +LOCK TABLES `llx_opensurvey_user_formanswers` WRITE;
    +/*!40000 ALTER TABLE `llx_opensurvey_user_formanswers` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_opensurvey_user_formanswers` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_opensurvey_user_studs`
    +--
    +
    +DROP TABLE IF EXISTS `llx_opensurvey_user_studs`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_opensurvey_user_studs` (
    +  `id_users` int(11) NOT NULL AUTO_INCREMENT,
    +  `nom` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `id_sondage` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `reponses` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`id_users`),
    +  KEY `idx_id_users` (`id_users`),
    +  KEY `idx_nom` (`nom`),
    +  KEY `idx_id_sondage` (`id_sondage`),
    +  KEY `idx_opensurvey_user_studs_id_users` (`id_users`),
    +  KEY `idx_opensurvey_user_studs_nom` (`nom`),
    +  KEY `idx_opensurvey_user_studs_id_sondage` (`id_sondage`)
    +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_opensurvey_user_studs`
    +--
    +
    +LOCK TABLES `llx_opensurvey_user_studs` WRITE;
    +/*!40000 ALTER TABLE `llx_opensurvey_user_studs` DISABLE KEYS */;
    +INSERT INTO `llx_opensurvey_user_studs` VALUES (1,'gfdgdf','om4e7azfiurnjtqe','01'),(2,'aa','3imby4hf7joiilsu','210'),(3,'fsdf','z2qcqjh5pm1q4p99','0110'),(5,'hfghf','z2qcqjh5pm1q4p99','1110'),(6,'qqqq','ah9xvaqu1ajjrqse','000111'),(7,'hjgh','ah9xvaqu1ajjrqse','000010'),(8,'bcvb','qgsfrgb922rqzocy','011000'),(9,'gdfg','ah9xvaqu1ajjrqse','001000'),(10,'ggg','ah9xvaqu1ajjrqse','000100'),(11,'gfdgd','ah9xvaqu1ajjrqse','001000'),(12,'hhhh','ah9xvaqu1ajjrqse','010000'),(13,'iii','ah9xvaqu1ajjrqse','000100'),(14,'kkk','ah9xvaqu1ajjrqse','001000'),(15,'lllll','ah9xvaqu1ajjrqse','000001'),(16,'kk','ah9xvaqu1ajjrqse','000001'),(17,'gggg','ah9xvaqu1ajjrqse','001000'),(18,'mmmm','ah9xvaqu1ajjrqse','000000'),(19,'jkjkj','ah9xvaqu1ajjrqse','000001'),(20,'azerty','8mcdnf2hgcntfibe','012'),(21,'hfghfg','8mcdnf2hgcntfibe','012'),(22,'fd','ckanvbe7kt3rdb3h','10'),(25,'John Doe','m4467s2mtk6khmxc','1'),(26,'Martial Bill','m4467s2mtk6khmxc','01'),(27,'Marissa Campbell','m4467s2mtk6khmxc','11'),(28,'Leonard Cast','m4467s2mtk6khmxc','01'),(29,'John Doe','tim1dye8x5eeetxu','01'),(30,'Eldy','tim1dye8x5eeetxu','11');
    +/*!40000 ALTER TABLE `llx_opensurvey_user_studs` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_overwrite_trans`
    +--
    +
    +DROP TABLE IF EXISTS `llx_overwrite_trans`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_overwrite_trans` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `lang` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `transkey` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `transvalue` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_overwrite_trans` (`lang`,`transkey`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_overwrite_trans`
    +--
    +
    +LOCK TABLES `llx_overwrite_trans` WRITE;
    +/*!40000 ALTER TABLE `llx_overwrite_trans` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_overwrite_trans` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_packages`
    +--
    +
    +DROP TABLE IF EXISTS `llx_packages`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_packages` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `sqldump` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `srcfile1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `srcfile2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `srcfile3` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `conffile1` mediumtext COLLATE utf8_unicode_ci,
    +  `sqlafter` mediumtext COLLATE utf8_unicode_ci,
    +  `crontoadd` mediumtext COLLATE utf8_unicode_ci,
    +  `cliafter` text COLLATE utf8_unicode_ci,
    +  `status` int(11) DEFAULT NULL,
    +  `targetsrcfile1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `targetsrcfile2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `targetsrcfile3` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `datafile1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `targetdatafile1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `targetconffile1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  `note_private` mediumtext COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_packages_rowid` (`rowid`),
    +  KEY `idx_packages_ref` (`ref`),
    +  KEY `idx_packages_entity` (`entity`),
    +  KEY `idx_packages_import_key` (`import_key`),
    +  KEY `idx_packages_status` (`status`)
    +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_packages`
    +--
    +
    +LOCK TABLES `llx_packages` WRITE;
    +/*!40000 ALTER TABLE `llx_packages` DISABLE KEYS */;
    +INSERT INTO `llx_packages` VALUES (1,'Dolibarr',1,'Dolibarr ERP CRM','2017-09-23 20:27:03','2017-11-04 20:19:20',1,12,NULL,'a','__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_dev/htdocs','__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_dev/htdocs/install/doctemplates','__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_dev/scripts','<?php\r\n//\r\n// File generated by Dolibarr installer 7.0\r\n//\r\n// Take a look at conf.php.example file for an example of conf.php file\r\n// and explanations for all possibles parameters.\r\n//\r\n$dolibarr_main_url_root=\'https://__APPDOMAIN__/\';\r\n$dolibarr_main_document_root=\'__INSTANCEDIR__/htdocs\';\r\n$dolibarr_main_url_root_alt=\'/custom\';\r\n$dolibarr_main_document_root_alt=\'__INSTANCEDIR__/htdocs/custom\';\r\n$dolibarr_main_data_root=\'__INSTANCEDIR__/documents\';\r\n$dolibarr_main_db_host=\'localhost\';\r\n$dolibarr_main_db_port=\'3306\';\r\n$dolibarr_main_db_name=\'__DBNAME__\';\r\n$dolibarr_main_db_user=\'__DBUSER__\';\r\n$dolibarr_main_db_pass=\'__DBPASSWORD__\';\r\n$dolibarr_main_db_type=\'mysqli\';\r\n$dolibarr_main_db_character_set=\'utf8\';\r\n$dolibarr_main_db_collation=\'utf8_unicode_ci\';\r\n$dolibarr_main_authentication=\'dolibarr\';\r\n//$dolibarr_auto_user=\'xxx\';\r\n\r\n// Specific settings\r\n$dolibarr_main_prod=\'0\';\r\n$dolibarr_nocsrfcheck=\'0\';\r\n$dolibarr_main_force_https=\'0\';\r\n$dolibarr_main_cookie_cryptkey=\'__APPUNIQUEKEY__\';\r\n$dolibarr_mailing_limit_sendbyweb=\'50\';\r\n$dolibarr_mailing_limit_sendbycli=\'400\';\r\n\r\n$dolibarr_memcached_view_disable=1;\r\n?>','UPDATE llx_user set pass_crypted = \'__APPPASSWORD0SALTED__\', email = \'__APPEMAIL__\' where login = \'admin\' AND (pass = \'admin\' OR pass_crypted = \'25edccd81ce2def41eae1317392fd106d8152a5b\');\r\nREPLACE INTO llx_const (name, entity, value, type, visible) values(\'CRON_KEY\', 0, \'__OSUSERNAME__\', \'chaine\', 0);\r\nREPLACE INTO llx_const (name, entity, value, type, visible) values(\'MAIN_INFO_SOCIETE_NOM\', 1, \'__APPORGNAME__\', \'chaine\', 0);\r\nREPLACE INTO llx_const (name, entity, value, type, visible) values(\'MAIN_INFO_SOCIETE_COUNTRY\', 1, \'__APPCOUNTRYIDCODELABEL__\', \'chaine\', 0);\r\nUPDATE llx_const set value = \'__APPEMAIL__\' where name = \'MAIN_MAIL_EMAIL_FROM\';\r\n\r\n','__INSTALLMINUTES__  __INSTALLHOURS__ * * * __OSUSERNAME__ __INSTANCEDIR__/scripts/cron/cron_run_jobs.php __OSUSERNAME__ firstadmin > __INSTANCEDIR__/documents/cron.log 2>&1','touch __INSTANCEDIR__/documents/install.lock; \r\nchown -R __OSUSERNAME__.__OSUSERNAME__ __INSTANCEDIR__/documents',1,'__INSTANCEDIR__/htdocs','__INSTANCEDIR__/documents/doctemplates','__INSTANCEDIR__/scripts','__DOL_DATA_ROOT__/sellyoursaas/packages/__PACKAGEREF__','a','__INSTANCEDIR__/htdocs/conf/conf.php','',''),(5,'Dolibarr 6',1,'Dolibarr ERP CRM','2017-09-23 20:27:03','2017-11-04 20:19:20',12,12,NULL,NULL,'__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_6.0/htdocs','__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_6.0/htdocs/install/doctemplates','__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_6.0/scripts','<?php\r\n//\r\n// File generated by Dolibarr installer 7.0\r\n//\r\n// Take a look at conf.php.example file for an example of conf.php file\r\n// and explanations for all possibles parameters.\r\n//\r\n$dolibarr_main_url_root=\'https://__APPDOMAIN__/\';\r\n$dolibarr_main_document_root=\'__INSTANCEDIR__/htdocs\';\r\n$dolibarr_main_url_root_alt=\'/custom\';\r\n$dolibarr_main_document_root_alt=\'__INSTANCEDIR__/htdocs/custom\';\r\n$dolibarr_main_data_root=\'__INSTANCEDIR__/documents\';\r\n$dolibarr_main_db_host=\'localhost\';\r\n$dolibarr_main_db_port=\'3306\';\r\n$dolibarr_main_db_name=\'__DBNAME__\';\r\n$dolibarr_main_db_user=\'__DBUSER__\';\r\n$dolibarr_main_db_pass=\'__DBPASSWORD__\';\r\n$dolibarr_main_db_type=\'mysqli\';\r\n$dolibarr_main_db_character_set=\'utf8\';\r\n$dolibarr_main_db_collation=\'utf8_unicode_ci\';\r\n$dolibarr_main_authentication=\'dolibarr\';\r\n//$dolibarr_auto_user=\'xxx\';\r\n\r\n// Specific settings\r\n$dolibarr_main_prod=\'0\';\r\n$dolibarr_nocsrfcheck=\'0\';\r\n$dolibarr_main_force_https=\'0\';\r\n$dolibarr_main_cookie_cryptkey=\'__APPUNIQUEKEY__\';\r\n$dolibarr_mailing_limit_sendbyweb=\'50\';\r\n$dolibarr_mailing_limit_sendbycli=\'400\';\r\n\r\n$dolibarr_memcached_view_disable=1;\r\n?>','UPDATE llx_user set pass_crypted = \'__APPPASSWORD0SALTED__\', email = \'__APPEMAIL__\' where login = \'admin\' AND (pass = \'admin\' OR pass_crypted = \'25edccd81ce2def41eae1317392fd106d8152a5b\');\r\nREPLACE INTO llx_const (name, entity, value, type, visible) values(\'CRON_KEY\', 0, \'__OSUSERNAME__\', \'chaine\', 0);','__INSTALLMINUTES__  __INSTALLHOURS__ * * * __OSUSERNAME__ __INSTANCEDIR__/scripts/cron/cron_run_jobs.php __OSUSERNAME__ firstadmin > __INSTANCEDIR__/documents/cron.log 2>&1','touch __INSTANCEDIR__/documents/install.lock; \r\nchown -R __OSUSERNAME__.__OSUSERNAME__ __INSTANCEDIR__/documents',1,'__INSTANCEDIR__/htdocs','__INSTANCEDIR__/documents/doctemplates','__INSTANCEDIR__/scripts','__DOL_DATA_ROOT__/sellyoursaas/packages/__PACKAGEREF__',NULL,'__INSTANCEDIR__/htdocs/conf/conf.php','',''),(6,'DoliPos',1,'Module POS','2017-09-23 20:27:03','2017-11-04 20:19:20',12,12,NULL,NULL,'__DOL_DATA_ROOT__/sellyoursaas/git/module_pos',NULL,NULL,NULL,NULL,NULL,'rm -fr __INSTANCEDIR__/documents/install.lock;\r\ncd __INSTANCEDIR__/htdocs/install/;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Societe;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Facture;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Commande;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Product;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Stock;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Banque;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_POS;\r\ntouch __INSTANCEDIR__/documents/install.lock; \r\nchown -R __OSUSERNAME__.__OSUSERNAME__ __INSTANCEDIR__/documents;',1,'__INSTANCEDIR__/htdocs',NULL,NULL,'__DOL_DATA_ROOT__/sellyoursaas/packages/__PACKAGEREF__',NULL,NULL,'',''),(7,'DoliMed',1,'Module DoliMed','2017-09-23 20:27:03','2017-11-04 20:19:20',12,12,NULL,NULL,'__DOL_DATA_ROOT__/sellyoursaas/git/module_dolimed/htdocs',NULL,NULL,NULL,NULL,NULL,'rm -fr __INSTANCEDIR__/documents/install.lock;\r\ncd __INSTANCEDIR__/htdocs/install/;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_SOCIETE,MAIN_MODULE_CabinetMed;\r\ntouch __INSTANCEDIR__/documents/install.lock; \r\nchown -R __OSUSERNAME__.__OSUSERNAME__ __INSTANCEDIR__/documents;',1,'__INSTANCEDIR__/htdocs',NULL,NULL,'__DOL_DATA_ROOT__/sellyoursaas/packages/__PACKAGEREF__',NULL,NULL,'','');
    +/*!40000 ALTER TABLE `llx_packages` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_packages_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_packages_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_packages_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_packages_extrafields`
    +--
    +
    +LOCK TABLES `llx_packages_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_packages_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_packages_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_paiement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_paiement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_paiement` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_paiement` int(11) NOT NULL,
    +  `num_paiement` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL DEFAULT '0',
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_export_compta` int(11) NOT NULL DEFAULT '0',
    +  `multicurrency_amount` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_paiement`
    +--
    +
    +LOCK TABLES `llx_paiement` WRITE;
    +/*!40000 ALTER TABLE `llx_paiement` DISABLE KEYS */;
    +INSERT INTO `llx_paiement` VALUES (2,'',1,'2011-07-18 20:50:24','2016-07-30 15:13:20','2016-07-08 12:00:00',20.00000000,6,'','',5,1,NULL,0,0,0.00000000),(3,'',1,'2011-07-18 20:50:47','2016-07-30 15:13:20','2016-07-08 12:00:00',10.00000000,4,'','',6,1,NULL,0,0,0.00000000),(5,'',1,'2011-08-01 03:34:11','2016-07-30 15:12:32','2015-08-01 03:34:11',5.63000000,6,'','Payment Invoice FA1108-0003',8,1,NULL,0,0,0.00000000),(6,'',1,'2011-08-06 20:33:54','2016-07-30 15:12:32','2015-08-06 20:33:53',5.98000000,4,'','Payment Invoice FA1108-0004',13,1,NULL,0,0,0.00000000),(8,'',1,'2011-08-08 02:53:40','2016-07-30 15:12:32','2015-08-08 12:00:00',26.10000000,4,'','',14,1,NULL,0,0,0.00000000),(9,'',1,'2011-08-08 02:55:58','2016-07-30 15:12:32','2015-08-08 12:00:00',26.96000000,1,'','',15,1,NULL,0,0,0.00000000),(17,'',1,'2012-12-09 15:28:44','2016-07-30 15:12:32','2015-12-09 12:00:00',2.00000000,4,'','',16,1,NULL,0,0,0.00000000),(18,'',1,'2012-12-09 15:28:53','2016-07-30 15:12:32','2015-12-09 12:00:00',-2.00000000,4,'','',17,1,NULL,0,0,0.00000000),(19,'',1,'2012-12-09 17:35:55','2016-07-30 15:12:32','2015-12-09 12:00:00',-2.00000000,4,'','',18,1,NULL,0,0,0.00000000),(20,'',1,'2012-12-09 17:37:02','2016-07-30 15:12:32','2015-12-09 12:00:00',2.00000000,4,'','',19,1,NULL,0,0,0.00000000),(21,'',1,'2012-12-09 18:35:07','2016-07-30 15:12:32','2015-12-09 12:00:00',-2.00000000,4,'','',20,1,NULL,0,0,0.00000000),(23,'',1,'2012-12-12 18:54:33','2016-07-30 15:12:32','2015-12-12 12:00:00',1.00000000,1,'','',21,1,NULL,0,0,0.00000000),(24,'',1,'2013-03-06 16:48:16','2016-07-30 15:13:20','2016-03-06 00:00:00',20.00000000,4,'','Adhésion/cotisation 2016',22,1,NULL,0,0,0.00000000),(25,'',1,'2013-03-20 14:30:11','2016-07-30 15:13:20','2016-03-20 00:00:00',10.00000000,2,'','Adhésion/cotisation 2011',23,1,NULL,0,0,0.00000000),(26,'',1,'2014-03-02 19:57:58','2016-07-30 15:13:20','2016-07-09 12:00:00',605.00000000,2,'','',24,1,NULL,0,0,0.00000000),(29,'',1,'2014-03-02 20:01:39','2016-07-30 15:13:20','2016-03-19 12:00:00',500.00000000,4,'','',26,1,NULL,0,0,0.00000000),(30,'',1,'2014-03-02 20:02:06','2016-07-30 15:13:20','2016-03-21 12:00:00',400.00000000,2,'','',27,1,NULL,0,0,0.00000000),(32,'',1,'2014-03-03 19:22:32','2016-07-30 15:12:32','2015-10-03 12:00:00',-400.00000000,4,'','',28,1,NULL,0,0,0.00000000),(33,'',1,'2014-03-03 19:23:16','2016-07-30 15:13:20','2016-03-10 12:00:00',-300.00000000,4,'','',29,1,NULL,0,0,0.00000000),(34,'PAY1603-0001',1,'2017-02-06 08:10:24','2017-02-06 04:10:24','2016-03-22 12:00:00',150.00000000,7,'','',33,12,NULL,0,0,150.00000000),(35,'PAY1603-0002',1,'2017-02-06 08:10:50','2017-02-06 04:10:50','2016-03-25 12:00:00',140.00000000,3,'','',34,12,NULL,0,0,140.00000000),(36,'PAY1702-0003',1,'2017-02-21 16:07:43','2017-02-21 12:07:43','2017-02-21 12:00:00',50.00000000,3,'T170201','',37,12,NULL,0,0,50.00000000),(38,'PAY1803-0004',1,'2018-03-16 13:59:31','2018-03-16 09:59:31','2018-03-16 12:00:00',10.00000000,7,'','',39,12,NULL,0,0,10.00000000);
    +/*!40000 ALTER TABLE `llx_paiement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_paiement_facture`
    +--
    +
    +DROP TABLE IF EXISTS `llx_paiement_facture`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_paiement_facture` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_paiement` int(11) DEFAULT NULL,
    +  `fk_facture` int(11) DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `multicurrency_amount` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_paiement_facture` (`fk_paiement`,`fk_facture`),
    +  KEY `idx_paiement_facture_fk_facture` (`fk_facture`),
    +  KEY `idx_paiement_facture_fk_paiement` (`fk_paiement`),
    +  CONSTRAINT `fk_paiement_facture_fk_facture` FOREIGN KEY (`fk_facture`) REFERENCES `llx_facture` (`rowid`),
    +  CONSTRAINT `fk_paiement_facture_fk_paiement` FOREIGN KEY (`fk_paiement`) REFERENCES `llx_paiement` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_paiement_facture`
    +--
    +
    +LOCK TABLES `llx_paiement_facture` WRITE;
    +/*!40000 ALTER TABLE `llx_paiement_facture` DISABLE KEYS */;
    +INSERT INTO `llx_paiement_facture` VALUES (2,2,2,20.00000000,0.00000000),(3,3,2,10.00000000,0.00000000),(5,5,5,5.63000000,0.00000000),(6,6,6,5.98000000,0.00000000),(9,8,2,16.10000000,0.00000000),(10,8,8,10.00000000,0.00000000),(11,9,3,15.00000000,0.00000000),(12,9,9,11.96000000,0.00000000),(24,20,9,1.00000000,0.00000000),(31,26,32,600.00000000,0.00000000),(36,29,32,500.00000000,0.00000000),(37,30,32,400.00000000,0.00000000),(38,34,211,150.00000000,150.00000000),(39,35,211,140.00000000,140.00000000),(40,36,211,50.00000000,50.00000000),(42,38,149,10.00000000,10.00000000);
    +/*!40000 ALTER TABLE `llx_paiement_facture` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_paiementcharge`
    +--
    +
    +DROP TABLE IF EXISTS `llx_paiementcharge`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_paiementcharge` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_charge` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_typepaiement` int(11) NOT NULL,
    +  `num_paiement` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_paiementcharge`
    +--
    +
    +LOCK TABLES `llx_paiementcharge` WRITE;
    +/*!40000 ALTER TABLE `llx_paiementcharge` DISABLE KEYS */;
    +INSERT INTO `llx_paiementcharge` VALUES (4,4,'2011-08-05 23:11:37','2011-08-05 21:11:37','2011-08-05 12:00:00',10.00000000,2,'','',12,1,NULL);
    +/*!40000 ALTER TABLE `llx_paiementcharge` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_paiementfourn`
    +--
    +
    +DROP TABLE IF EXISTS `llx_paiementfourn`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_paiementfourn` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `datep` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_paiement` int(11) NOT NULL,
    +  `num_paiement` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `multicurrency_amount` double(24,8) DEFAULT '0.00000000',
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_paiementfourn`
    +--
    +
    +LOCK TABLES `llx_paiementfourn` WRITE;
    +/*!40000 ALTER TABLE `llx_paiementfourn` DISABLE KEYS */;
    +INSERT INTO `llx_paiementfourn` VALUES (1,'1',1,'2018-01-19 11:17:47','2016-01-22 18:56:34','2016-01-22 12:00:00',900.00000000,12,NULL,4,'','',30,0,0.00000000,NULL),(2,'SPAY1702-0001',1,'2017-02-01 15:02:45','2017-02-01 19:02:44','2017-02-01 12:00:00',200.00000000,12,NULL,4,'','',32,0,200.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_paiementfourn` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_paiementfourn_facturefourn`
    +--
    +
    +DROP TABLE IF EXISTS `llx_paiementfourn_facturefourn`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_paiementfourn_facturefourn` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_paiementfourn` int(11) DEFAULT NULL,
    +  `fk_facturefourn` int(11) DEFAULT NULL,
    +  `amount` double DEFAULT '0',
    +  `multicurrency_amount` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_paiementfourn_facturefourn` (`fk_paiementfourn`,`fk_facturefourn`),
    +  KEY `idx_paiementfourn_facturefourn_fk_facture` (`fk_facturefourn`),
    +  KEY `idx_paiementfourn_facturefourn_fk_paiement` (`fk_paiementfourn`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_paiementfourn_facturefourn`
    +--
    +
    +LOCK TABLES `llx_paiementfourn_facturefourn` WRITE;
    +/*!40000 ALTER TABLE `llx_paiementfourn_facturefourn` DISABLE KEYS */;
    +INSERT INTO `llx_paiementfourn_facturefourn` VALUES (1,1,16,900,0.00000000),(2,2,20,200,200.00000000);
    +/*!40000 ALTER TABLE `llx_paiementfourn_facturefourn` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_payment_donation`
    +--
    +
    +DROP TABLE IF EXISTS `llx_payment_donation`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_payment_donation` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_donation` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_payment_donation`
    +--
    +
    +LOCK TABLES `llx_payment_donation` WRITE;
    +/*!40000 ALTER TABLE `llx_payment_donation` DISABLE KEYS */;
    +INSERT INTO `llx_payment_donation` VALUES (1,3,'2017-09-06 20:08:36','2017-09-06 16:08:36','2017-09-06 12:00:00',10.00000000,4,'','',38,12,NULL);
    +/*!40000 ALTER TABLE `llx_payment_donation` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_payment_expensereport`
    +--
    +
    +DROP TABLE IF EXISTS `llx_payment_expensereport`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_payment_expensereport` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_expensereport` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_payment_expensereport`
    +--
    +
    +LOCK TABLES `llx_payment_expensereport` WRITE;
    +/*!40000 ALTER TABLE `llx_payment_expensereport` DISABLE KEYS */;
    +INSERT INTO `llx_payment_expensereport` VALUES (1,1,'2017-02-16 02:13:13','2017-02-15 22:13:13','2017-02-16 12:00:00',5.00000000,7,'','',0,12,NULL),(2,1,'2017-02-16 02:22:09','2017-02-15 22:22:09','2017-02-16 12:00:00',1.00000000,7,'','',36,12,NULL);
    +/*!40000 ALTER TABLE `llx_payment_expensereport` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_payment_loan`
    +--
    +
    +DROP TABLE IF EXISTS `llx_payment_loan`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_payment_loan` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_loan` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount_capital` double(24,8) DEFAULT NULL,
    +  `amount_insurance` double(24,8) DEFAULT NULL,
    +  `amount_interest` double(24,8) DEFAULT NULL,
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_payment_loan`
    +--
    +
    +LOCK TABLES `llx_payment_loan` WRITE;
    +/*!40000 ALTER TABLE `llx_payment_loan` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_payment_loan` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_payment_salary`
    +--
    +
    +DROP TABLE IF EXISTS `llx_payment_salary`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_payment_salary` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `datep` date DEFAULT NULL,
    +  `datev` date DEFAULT NULL,
    +  `salary` double(24,8) DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `datesp` date DEFAULT NULL,
    +  `dateep` date DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_payment_salary_ref` (`num_payment`),
    +  KEY `idx_payment_salary_user` (`fk_user`,`entity`),
    +  KEY `idx_payment_salary_datep` (`datep`),
    +  KEY `idx_payment_salary_datesp` (`datesp`),
    +  KEY `idx_payment_salary_dateep` (`dateep`),
    +  CONSTRAINT `fk_payment_salary_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_payment_salary`
    +--
    +
    +LOCK TABLES `llx_payment_salary` WRITE;
    +/*!40000 ALTER TABLE `llx_payment_salary` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_payment_salary` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_payment_various`
    +--
    +
    +DROP TABLE IF EXISTS `llx_payment_various`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_payment_various` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `datep` date DEFAULT NULL,
    +  `datev` date DEFAULT NULL,
    +  `sens` smallint(6) NOT NULL DEFAULT '0',
    +  `amount` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_payment_various`
    +--
    +
    +LOCK TABLES `llx_payment_various` WRITE;
    +/*!40000 ALTER TABLE `llx_payment_various` DISABLE KEYS */;
    +INSERT INTO `llx_payment_various` VALUES (2,'2017-07-14 14:46:19','2017-07-14 18:46:19','2017-07-14','2017-07-14',0,123.00000000,4,'','Miscellaneous payment','518',NULL,1,NULL,48,12,NULL);
    +/*!40000 ALTER TABLE `llx_payment_various` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_prelevement_bons`
    +--
    +
    +DROP TABLE IF EXISTS `llx_prelevement_bons`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_prelevement_bons` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `statut` smallint(6) DEFAULT '0',
    +  `credite` smallint(6) DEFAULT '0',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `date_trans` datetime DEFAULT NULL,
    +  `method_trans` smallint(6) DEFAULT NULL,
    +  `fk_user_trans` int(11) DEFAULT NULL,
    +  `date_credit` datetime DEFAULT NULL,
    +  `fk_user_credit` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_prelevement_bons_ref` (`ref`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_prelevement_bons`
    +--
    +
    +LOCK TABLES `llx_prelevement_bons` WRITE;
    +/*!40000 ALTER TABLE `llx_prelevement_bons` DISABLE KEYS */;
    +INSERT INTO `llx_prelevement_bons` VALUES (1,'T170201',1,'2017-02-21 15:53:46',50.00000000,2,0,NULL,'2017-02-21 12:00:00',0,12,'2017-02-21 12:00:00',12);
    +/*!40000 ALTER TABLE `llx_prelevement_bons` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_prelevement_facture`
    +--
    +
    +DROP TABLE IF EXISTS `llx_prelevement_facture`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_prelevement_facture` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_facture` int(11) NOT NULL,
    +  `fk_prelevement_lignes` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_prelevement_facture_fk_prelevement_lignes` (`fk_prelevement_lignes`),
    +  CONSTRAINT `fk_prelevement_facture_fk_prelevement_lignes` FOREIGN KEY (`fk_prelevement_lignes`) REFERENCES `llx_prelevement_lignes` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_prelevement_facture`
    +--
    +
    +LOCK TABLES `llx_prelevement_facture` WRITE;
    +/*!40000 ALTER TABLE `llx_prelevement_facture` DISABLE KEYS */;
    +INSERT INTO `llx_prelevement_facture` VALUES (1,211,1);
    +/*!40000 ALTER TABLE `llx_prelevement_facture` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_prelevement_facture_demande`
    +--
    +
    +DROP TABLE IF EXISTS `llx_prelevement_facture_demande`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_prelevement_facture_demande` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_facture` int(11) NOT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `date_demande` datetime NOT NULL,
    +  `traite` smallint(6) DEFAULT '0',
    +  `date_traite` datetime DEFAULT NULL,
    +  `fk_prelevement_bons` int(11) DEFAULT NULL,
    +  `fk_user_demande` int(11) NOT NULL,
    +  `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_prelevement_facture_demande`
    +--
    +
    +LOCK TABLES `llx_prelevement_facture_demande` WRITE;
    +/*!40000 ALTER TABLE `llx_prelevement_facture_demande` DISABLE KEYS */;
    +INSERT INTO `llx_prelevement_facture_demande` VALUES (1,211,50.00000000,'2017-02-06 08:11:17',1,'2017-02-21 15:53:46',1,12,'','','','');
    +/*!40000 ALTER TABLE `llx_prelevement_facture_demande` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_prelevement_lignes`
    +--
    +
    +DROP TABLE IF EXISTS `llx_prelevement_lignes`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_prelevement_lignes` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_prelevement_bons` int(11) DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `statut` smallint(6) DEFAULT '0',
    +  `client_nom` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_prelevement_lignes_fk_prelevement_bons` (`fk_prelevement_bons`),
    +  CONSTRAINT `fk_prelevement_lignes_fk_prelevement_bons` FOREIGN KEY (`fk_prelevement_bons`) REFERENCES `llx_prelevement_bons` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_prelevement_lignes`
    +--
    +
    +LOCK TABLES `llx_prelevement_lignes` WRITE;
    +/*!40000 ALTER TABLE `llx_prelevement_lignes` DISABLE KEYS */;
    +INSERT INTO `llx_prelevement_lignes` VALUES (1,1,19,2,'Magic Food Store',50.00000000,'','','','',NULL);
    +/*!40000 ALTER TABLE `llx_prelevement_lignes` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_prelevement_rejet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_prelevement_rejet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_prelevement_rejet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_prelevement_lignes` int(11) DEFAULT NULL,
    +  `date_rejet` datetime DEFAULT NULL,
    +  `motif` int(11) DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `fk_user_creation` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `afacturer` tinyint(4) DEFAULT '0',
    +  `fk_facture` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_prelevement_rejet`
    +--
    +
    +LOCK TABLES `llx_prelevement_rejet` WRITE;
    +/*!40000 ALTER TABLE `llx_prelevement_rejet` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_prelevement_rejet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_printer_receipt`
    +--
    +
    +DROP TABLE IF EXISTS `llx_printer_receipt`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_printer_receipt` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `name` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_type` int(11) DEFAULT NULL,
    +  `fk_profile` int(11) DEFAULT NULL,
    +  `parameter` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_printer_receipt`
    +--
    +
    +LOCK TABLES `llx_printer_receipt` WRITE;
    +/*!40000 ALTER TABLE `llx_printer_receipt` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_printer_receipt` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_printer_receipt_template`
    +--
    +
    +DROP TABLE IF EXISTS `llx_printer_receipt_template`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_printer_receipt_template` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `name` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `template` text COLLATE utf8_unicode_ci,
    +  `entity` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_printer_receipt_template`
    +--
    +
    +LOCK TABLES `llx_printer_receipt_template` WRITE;
    +/*!40000 ALTER TABLE `llx_printer_receipt_template` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_printer_receipt_template` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_printing`
    +--
    +
    +DROP TABLE IF EXISTS `llx_printing`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_printing` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `printer_name` text COLLATE utf8_unicode_ci NOT NULL,
    +  `printer_location` text COLLATE utf8_unicode_ci NOT NULL,
    +  `printer_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `copy` int(11) NOT NULL DEFAULT '1',
    +  `module` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `driver` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `userid` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_printing`
    +--
    +
    +LOCK TABLES `llx_printing` WRITE;
    +/*!40000 ALTER TABLE `llx_printing` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_printing` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `virtual` tinyint(4) NOT NULL DEFAULT '0',
    +  `fk_parent` int(11) DEFAULT '0',
    +  `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `customcode` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_country` int(11) DEFAULT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `price_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_min` double(24,8) DEFAULT '0.00000000',
    +  `price_min_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT',
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `recuperableonly` int(11) NOT NULL DEFAULT '0',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `tosell` tinyint(4) DEFAULT '1',
    +  `tobuy` tinyint(4) DEFAULT '1',
    +  `onportal` smallint(6) DEFAULT '0',
    +  `tobatch` tinyint(4) NOT NULL DEFAULT '0',
    +  `fk_product_type` int(11) DEFAULT '0',
    +  `duration` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `seuil_stock_alerte` int(11) DEFAULT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `barcode` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_barcode_type` int(11) DEFAULT NULL,
    +  `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code_sell_intra` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code_sell_export` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `partnumber` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `weight` float DEFAULT NULL,
    +  `weight_units` tinyint(4) DEFAULT NULL,
    +  `length` float DEFAULT NULL,
    +  `length_units` tinyint(4) DEFAULT NULL,
    +  `surface` float DEFAULT NULL,
    +  `surface_units` tinyint(4) DEFAULT NULL,
    +  `volume` float DEFAULT NULL,
    +  `volume_units` tinyint(4) DEFAULT NULL,
    +  `stock` double DEFAULT NULL,
    +  `pmp` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `fifo` double(24,8) DEFAULT NULL,
    +  `lifo` double(24,8) DEFAULT NULL,
    +  `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT 'default@product',
    +  `finished` tinyint(4) DEFAULT NULL,
    +  `hidden` tinyint(4) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `desiredstock` int(11) DEFAULT '0',
    +  `fk_price_expression` int(11) DEFAULT NULL,
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `cost_price` double(24,8) DEFAULT NULL,
    +  `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `price_autogen` smallint(6) DEFAULT '0',
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT '',
    +  `width` float DEFAULT NULL,
    +  `width_units` tinyint(4) DEFAULT NULL,
    +  `height` float DEFAULT NULL,
    +  `height_units` tinyint(4) DEFAULT NULL,
    +  `fk_default_warehouse` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_ref` (`ref`,`entity`),
    +  UNIQUE KEY `uk_product_barcode` (`barcode`,`fk_barcode_type`,`entity`),
    +  KEY `idx_product_label` (`label`),
    +  KEY `idx_product_barcode` (`barcode`),
    +  KEY `idx_product_import_key` (`import_key`),
    +  KEY `idx_product_fk_country` (`fk_country`),
    +  KEY `idx_product_fk_user_author` (`fk_user_author`),
    +  KEY `idx_product_fk_barcode_type` (`fk_barcode_type`),
    +  KEY `fk_product_fk_unit` (`fk_unit`),
    +  KEY `idx_product_seuil_stock_alerte` (`seuil_stock_alerte`),
    +  KEY `fk_product_default_warehouse` (`fk_default_warehouse`),
    +  CONSTRAINT `fk_product_barcode_type` FOREIGN KEY (`fk_barcode_type`) REFERENCES `llx_c_barcode_type` (`rowid`),
    +  CONSTRAINT `fk_product_default_warehouse` FOREIGN KEY (`fk_default_warehouse`) REFERENCES `llx_entrepot` (`rowid`),
    +  CONSTRAINT `fk_product_fk_country` FOREIGN KEY (`fk_country`) REFERENCES `llx_c_country` (`rowid`),
    +  CONSTRAINT `fk_product_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product`
    +--
    +
    +LOCK TABLES `llx_product` WRITE;
    +/*!40000 ALTER TABLE `llx_product` DISABLE KEYS */;
    +INSERT INTO `llx_product` VALUES (1,'2010-07-08 14:33:17','2016-01-16 16:30:35',0,0,'PINKDRESS',1,NULL,'Pink dress','A beatifull pink dress','','',NULL,100.00000000,112.50000000,90.00000000,101.25000000,'HT',12.500,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,'',NULL,NULL,'123456789066',2,'701PINKDRESS',NULL,NULL,'601PINKDRESS',NULL,670,-3,NULL,0,NULL,0,NULL,0,2,0.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(2,'2010-07-09 00:30:01','2016-01-16 16:37:14',0,0,'PEARPIE',1,NULL,'Pear Pie','','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,'',NULL,NULL,'123456789077',2,'',NULL,NULL,'',NULL,NULL,0,NULL,0,NULL,0,NULL,0,998,0.00000000,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(3,'2010-07-09 00:30:25','2016-01-16 16:40:03',0,0,'CAKECONTRIB',1,NULL,'Cake making contribution','','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,1,'1m',NULL,NULL,'123456789088',2,'701CAKEM',NULL,NULL,'601CAKEM',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(4,'2010-07-10 14:44:06','2016-01-16 15:58:20',0,0,'APPLEPIE',1,NULL,'Apple Pie','Nice Bio Apple Pie.<br />\r\n&nbsp;','','',NULL,5.00000000,5.62500000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,'',NULL,NULL,'123456789034',2,'701',NULL,NULL,'601',NULL,500,-3,NULL,0,NULL,0,NULL,0,1001,10.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(5,'2011-07-20 23:11:38','2016-01-16 16:18:24',0,0,'DOLIDROID',1,NULL,'DoliDroid, Android app for Dolibarr','<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>','','',NULL,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,'',NULL,'https://play.google.com/store/apps/details?id=com.nltechno.dolidroidpro','123456789023',2,'701',NULL,NULL,'601',NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(10,'2008-12-31 00:00:00','2017-02-16 00:12:09',0,0,'COMP-XP4523',1,NULL,'Computer XP4523','A powerfull computer XP4523&nbsp;','This product is imported.<br />\r\nWarning: Delay to get it are not reliable.','USXP765',11,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,0,0.000,'0',0.000,'0',NULL,12,1,1,0,1,0,'',150,NULL,'123456789055',2,'701OLDC',NULL,NULL,'601OLDC',NULL,1.7,0,NULL,0,NULL,0,NULL,0,110,0.00000000,NULL,NULL,NULL,NULL,0,'20110729232310',200,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(11,'2013-01-13 20:24:42','2016-07-30 13:42:31',0,0,'ROLLUPABC',1,NULL,'Rollup Dolibarr','A nice rollup','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',0.000,0,0.000,'0',0.000,'0',1,12,0,0,0,0,0,'',NULL,NULL,'123456789044',2,'',NULL,NULL,'',NULL,2.5,0,NULL,0,2.34,0,NULL,0,-1,0.00000000,NULL,NULL,'',1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(12,'2016-07-30 17:31:29','2016-07-30 13:35:02',0,0,'DOLICLOUD',1,NULL,'SaaS service of Dolibarr ERP CRM','Cloud hosting of Dolibarr ERP and CRM software','','',NULL,9.00000000,9.00000000,9.00000000,9.00000000,'HT',0.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,1,'',NULL,'http://www.dolicloud.com','123456789013',2,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,'',0,0,NULL,NULL,NULL,NULL,8.50000000,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(13,'2017-02-16 03:49:00','2017-02-15 23:49:27',0,0,'COMP-XP4548',1,NULL,'Computer XP4523','A powerfull computer XP4523&nbsp;','This product is imported.<br />\r\nWarning: Delay to get it are not reliable.','USXP765',11,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,0,0.000,'0',0.000,'0',12,12,1,1,0,1,0,'',150,NULL,NULL,2,'',NULL,NULL,'',NULL,1.7,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,200,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_product` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_association`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_association`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_association` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product_pere` int(11) NOT NULL DEFAULT '0',
    +  `fk_product_fils` int(11) NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `incdec` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_association` (`fk_product_pere`,`fk_product_fils`),
    +  KEY `idx_product_association` (`fk_product_fils`),
    +  KEY `idx_product_association_fils` (`fk_product_fils`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_association`
    +--
    +
    +LOCK TABLES `llx_product_association` WRITE;
    +/*!40000 ALTER TABLE `llx_product_association` DISABLE KEYS */;
    +INSERT INTO `llx_product_association` VALUES (2,5,1,1,1),(3,4,3,5,1),(4,4,1,2,1);
    +/*!40000 ALTER TABLE `llx_product_association` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_attribute`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_attribute`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_attribute` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `rang` int(11) NOT NULL DEFAULT '0',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_attribute_ref` (`ref`),
    +  UNIQUE KEY `unique_ref` (`ref`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_attribute`
    +--
    +
    +LOCK TABLES `llx_product_attribute` WRITE;
    +/*!40000 ALTER TABLE `llx_product_attribute` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_attribute` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_attribute_combination`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_attribute_combination`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_attribute_combination` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product_parent` int(11) NOT NULL,
    +  `fk_product_child` int(11) NOT NULL,
    +  `variation_price` float NOT NULL,
    +  `variation_price_percentage` int(11) DEFAULT NULL,
    +  `variation_weight` float NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_attribute_combination`
    +--
    +
    +LOCK TABLES `llx_product_attribute_combination` WRITE;
    +/*!40000 ALTER TABLE `llx_product_attribute_combination` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_attribute_combination` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_attribute_combination2val`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_attribute_combination2val`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_attribute_combination2val` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_prod_combination` int(11) NOT NULL,
    +  `fk_prod_attr` int(11) NOT NULL,
    +  `fk_prod_attr_val` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_attribute_combination2val`
    +--
    +
    +LOCK TABLES `llx_product_attribute_combination2val` WRITE;
    +/*!40000 ALTER TABLE `llx_product_attribute_combination2val` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_attribute_combination2val` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_attribute_value`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_attribute_value`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_attribute_value` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product_attribute` int(11) NOT NULL,
    +  `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `value` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_attribute_value` (`fk_product_attribute`,`ref`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_attribute_value`
    +--
    +
    +LOCK TABLES `llx_product_attribute_value` WRITE;
    +/*!40000 ALTER TABLE `llx_product_attribute_value` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_attribute_value` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_batch`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_batch`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_batch` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product_stock` int(11) NOT NULL,
    +  `eatby` datetime DEFAULT NULL,
    +  `sellby` datetime DEFAULT NULL,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty` double NOT NULL DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_batch` (`fk_product_stock`,`batch`),
    +  KEY `idx_fk_product_stock` (`fk_product_stock`),
    +  KEY `ix_fk_product_stock` (`fk_product_stock`),
    +  KEY `idx_batch` (`batch`),
    +  CONSTRAINT `fk_product_batch_fk_product_stock` FOREIGN KEY (`fk_product_stock`) REFERENCES `llx_product_stock` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_batch`
    +--
    +
    +LOCK TABLES `llx_product_batch` WRITE;
    +/*!40000 ALTER TABLE `llx_product_batch` DISABLE KEYS */;
    +INSERT INTO `llx_product_batch` VALUES (1,'2016-07-30 13:40:39',8,NULL,NULL,'5599887766452',15,NULL),(2,'2016-07-30 13:40:12',8,NULL,NULL,'4494487766452',60,NULL),(3,'2017-02-16 00:12:09',9,NULL,NULL,'5599887766452',35,NULL);
    +/*!40000 ALTER TABLE `llx_product_batch` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_customer_price`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_customer_price`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_customer_price` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `price_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_min` double(24,8) DEFAULT '0.00000000',
    +  `price_min_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT',
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `recuperableonly` int(11) NOT NULL DEFAULT '0',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `fk_user` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_customer_price_fk_product_fk_soc` (`fk_product`,`fk_soc`),
    +  KEY `idx_product_customer_price_fk_user` (`fk_user`),
    +  KEY `fk_customer_price_fk_soc` (`fk_soc`),
    +  KEY `idx_product_customer_price_fk_soc` (`fk_soc`),
    +  CONSTRAINT `fk_customer_price_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`) ON DELETE CASCADE,
    +  CONSTRAINT `fk_customer_price_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`) ON DELETE CASCADE,
    +  CONSTRAINT `fk_product_customer_price_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`),
    +  CONSTRAINT `fk_product_customer_price_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_product_customer_price_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_customer_price`
    +--
    +
    +LOCK TABLES `llx_product_customer_price` WRITE;
    +/*!40000 ALTER TABLE `llx_product_customer_price` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_customer_price` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_customer_price_log`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_customer_price_log`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_customer_price_log` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `price_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_min` double(24,8) DEFAULT '0.00000000',
    +  `price_min_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT',
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `recuperableonly` int(11) NOT NULL DEFAULT '0',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `fk_user` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_customer_price_log`
    +--
    +
    +LOCK TABLES `llx_product_customer_price_log` WRITE;
    +/*!40000 ALTER TABLE `llx_product_customer_price_log` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_customer_price_log` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_product_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_extrafields`
    +--
    +
    +LOCK TABLES `llx_product_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_product_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_factory`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_factory`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_factory` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product_father` int(11) NOT NULL DEFAULT '0',
    +  `fk_product_children` int(11) NOT NULL DEFAULT '0',
    +  `pmp` double(24,8) DEFAULT '0.00000000',
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `qty` double DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_factory` (`fk_product_father`,`fk_product_children`),
    +  KEY `idx_product_factory_fils` (`fk_product_children`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_factory`
    +--
    +
    +LOCK TABLES `llx_product_factory` WRITE;
    +/*!40000 ALTER TABLE `llx_product_factory` DISABLE KEYS */;
    +INSERT INTO `llx_product_factory` VALUES (2,26,25,0.00000000,0.00000000,3),(3,27,26,0.00000000,0.00000000,2);
    +/*!40000 ALTER TABLE `llx_product_factory` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_fournisseur_price`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_fournisseur_price`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_fournisseur_price` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `ref_fourn` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_availability` int(11) DEFAULT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `quantity` double DEFAULT NULL,
    +  `remise_percent` double NOT NULL DEFAULT '0',
    +  `remise` double NOT NULL DEFAULT '0',
    +  `unitprice` double(24,8) DEFAULT '0.00000000',
    +  `charges` double(24,8) DEFAULT '0.00000000',
    +  `tva_tx` double(6,3) NOT NULL DEFAULT '0.000',
    +  `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `info_bits` int(11) NOT NULL DEFAULT '0',
    +  `fk_user` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_supplier_price_expression` int(11) DEFAULT NULL,
    +  `fk_price_expression` int(11) DEFAULT NULL,
    +  `delivery_time_days` int(11) DEFAULT NULL,
    +  `supplier_reputation` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_unitprice` double(24,8) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_price` double(24,8) DEFAULT NULL,
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_fournisseur_price_ref` (`ref_fourn`,`fk_soc`,`quantity`,`entity`),
    +  KEY `idx_product_fournisseur_price_fk_user` (`fk_user`),
    +  KEY `idx_product_fourn_price_fk_product` (`fk_product`,`entity`),
    +  KEY `idx_product_fourn_price_fk_soc` (`fk_soc`,`entity`),
    +  CONSTRAINT `fk_product_fournisseur_price_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`),
    +  CONSTRAINT `fk_product_fournisseur_price_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_fournisseur_price`
    +--
    +
    +LOCK TABLES `llx_product_fournisseur_price` WRITE;
    +/*!40000 ALTER TABLE `llx_product_fournisseur_price` DISABLE KEYS */;
    +INSERT INTO `llx_product_fournisseur_price` VALUES (1,'2010-07-11 18:45:42','2012-12-08 13:11:08',4,1,'ABCD',NULL,10.00000000,1,0,0,10.00000000,0.00000000,0.000,NULL,0,1,NULL,1,NULL,NULL,NULL,NULL,1.00000000,NULL,NULL,NULL,NULL,0.000,'0',0.000,'0'),(2,'2016-07-30 17:34:38','2016-07-30 13:34:38',12,10,'BASIC',0,9.00000000,1,0,0,9.00000000,0.00000000,0.000,NULL,0,12,NULL,1,NULL,NULL,NULL,'FAVORITE',1.00000000,NULL,NULL,NULL,NULL,0.000,'0',0.000,'0'),(3,'2017-02-02 05:17:08','2017-02-02 01:17:08',1,10,'aaa',0,100.00000000,1,10,0,100.00000000,0.00000000,12.500,NULL,0,12,NULL,1,NULL,NULL,NULL,NULL,1.00000000,NULL,NULL,NULL,NULL,0.000,'0',0.000,'0');
    +/*!40000 ALTER TABLE `llx_product_fournisseur_price` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_fournisseur_price_log`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_fournisseur_price_log`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_fournisseur_price_log` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_product_fournisseur` int(11) NOT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `quantity` double DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_price` double(24,8) DEFAULT NULL,
    +  `multicurrency_unitprice` double(24,8) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_fournisseur_price_log`
    +--
    +
    +LOCK TABLES `llx_product_fournisseur_price_log` WRITE;
    +/*!40000 ALTER TABLE `llx_product_fournisseur_price_log` DISABLE KEYS */;
    +INSERT INTO `llx_product_fournisseur_price_log` VALUES (1,'2010-07-11 18:45:42',1,10.00000000,1,1,NULL,NULL,1.00000000,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_product_fournisseur_price_log` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_lang`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_lang`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_lang` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `lang` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_lang` (`fk_product`,`lang`),
    +  CONSTRAINT `fk_product_lang_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_lang`
    +--
    +
    +LOCK TABLES `llx_product_lang` WRITE;
    +/*!40000 ALTER TABLE `llx_product_lang` DISABLE KEYS */;
    +INSERT INTO `llx_product_lang` VALUES (1,1,'en_US','Pink dress','A beatifull pink dress','',NULL),(2,2,'en_US','Pear Pie','','',NULL),(3,3,'en_US','Cake making contribution','','',NULL),(4,4,'fr_FR','Decapsuleur','','',NULL),(5,5,'en_US','DoliDroid, Android app for Dolibarr','<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>','',NULL),(9,11,'fr_FR','hfghf','','',NULL),(10,2,'fr_FR','Product P1','','',NULL),(11,4,'en_US','Apple Pie','Nice Bio Apple Pie.<br />\r\n&nbsp;','',NULL),(12,11,'en_US','Rollup Dolibarr','A nice rollup','',NULL),(13,10,'en_US','Computer XP4523','A powerfull computer XP4523&nbsp;','This product is imported.<br />\r\nWarning: Delay to get it are not reliable.',NULL),(14,12,'en_US','SaaS hosting of Dolibarr ERP CRM','Cloud hosting of Dolibarr ERP and CRM software','',NULL),(15,12,'fr_FR','Service SaaS Hébergement Dolibarr ERP CRM','Service SaaS d&#39;h&eacute;bergement de la solution Dolibarr ERP CRM','',NULL),(16,13,'en_US','Computer XP4523','A powerfull computer XP4523&nbsp;',NULL,NULL),(17,13,'fr_FR','Computer XP4523','A powerfull computer XP4523&nbsp;',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_product_lang` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_lot`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_lot`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_lot` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `fk_product` int(11) NOT NULL,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `eatby` date DEFAULT NULL,
    +  `sellby` date DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_lot` (`fk_product`,`batch`)
    +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_lot`
    +--
    +
    +LOCK TABLES `llx_product_lot` WRITE;
    +/*!40000 ALTER TABLE `llx_product_lot` DISABLE KEYS */;
    +INSERT INTO `llx_product_lot` VALUES (1,1,2,'123456','2016-07-07',NULL,'2016-07-21 20:55:19','2016-12-12 10:53:58',NULL,NULL,NULL),(2,1,2,'2222','2016-07-08','2016-07-07','2016-07-21 21:00:42','2016-12-12 10:53:58',NULL,NULL,NULL),(3,1,10,'5599887766452',NULL,NULL,'2016-07-30 17:39:31','2016-12-12 10:53:58',NULL,NULL,NULL),(4,1,10,'4494487766452',NULL,NULL,'2016-07-30 17:40:12','2016-12-12 10:53:58',NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_product_lot` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_lot_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_lot_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_lot_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_product_lot_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_lot_extrafields`
    +--
    +
    +LOCK TABLES `llx_product_lot_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_product_lot_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_lot_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_price`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_price`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_price` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product` int(11) NOT NULL,
    +  `date_price` datetime DEFAULT NULL,
    +  `price_level` smallint(6) DEFAULT '1',
    +  `price` double(24,8) DEFAULT NULL,
    +  `price_ttc` double(24,8) DEFAULT NULL,
    +  `price_min` double(24,8) DEFAULT NULL,
    +  `price_min_ttc` double(24,8) DEFAULT NULL,
    +  `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT',
    +  `tva_tx` double(6,3) NOT NULL,
    +  `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `recuperableonly` int(11) NOT NULL DEFAULT '0',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `tosell` tinyint(4) DEFAULT '1',
    +  `price_by_qty` int(11) NOT NULL DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_price_expression` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_price` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_price_ttc` double(24,8) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_product_price_fk_user_author` (`fk_user_author`),
    +  KEY `idx_product_price_fk_product` (`fk_product`),
    +  CONSTRAINT `fk_product_price_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`),
    +  CONSTRAINT `fk_product_price_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_price`
    +--
    +
    +LOCK TABLES `llx_product_price` WRITE;
    +/*!40000 ALTER TABLE `llx_product_price` DISABLE KEYS */;
    +INSERT INTO `llx_product_price` VALUES (1,1,'2010-07-08 12:33:17',1,'2010-07-08 14:33:17',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(2,1,'2010-07-08 22:30:01',2,'2010-07-09 00:30:01',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(3,1,'2010-07-08 22:30:25',3,'2010-07-09 00:30:25',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(4,1,'2010-07-10 12:44:06',4,'2010-07-10 14:44:06',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(5,1,'2011-07-20 21:11:38',5,'2011-07-20 23:11:38',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',19.600,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(6,1,'2011-07-27 17:02:59',5,'2011-07-27 19:02:59',1,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(10,1,'2011-07-31 22:34:27',4,'2011-08-01 00:34:27',1,5.00000000,5.62500000,0.00000000,0.00000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(12,1,'2013-01-13 19:24:59',11,'2013-01-13 20:24:59',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',0.000,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(13,1,'2013-03-12 09:30:24',1,'2013-03-12 10:30:24',1,100.00000000,112.50000000,90.00000000,101.25000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(14,1,'2016-07-30 13:31:29',12,'2016-07-30 17:31:29',1,9.00000000,9.00000000,9.00000000,9.00000000,'HT',0.000,NULL,0,0.000,'0',0.000,'0',12,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(15,1,'2017-02-15 23:49:00',13,'2017-02-16 03:49:00',1,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,NULL,0,0.000,'0',0.000,'0',12,0,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(16,1,'2017-08-30 15:04:04',10,'2017-08-30 19:04:04',1,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,NULL,0,0.000,'0',0.000,'0',12,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_product_price` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_price_by_qty`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_price_by_qty`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_price_by_qty` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product_price` int(11) NOT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `price_ttc` double(24,8) DEFAULT '0.00000000',
    +  `remise_percent` double NOT NULL DEFAULT '0',
    +  `remise` double NOT NULL DEFAULT '0',
    +  `qty_min` double DEFAULT '0',
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `quantity` double DEFAULT NULL,
    +  `unitprice` double(24,8) DEFAULT '0.00000000',
    +  `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT',
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_price` double(24,8) DEFAULT NULL,
    +  `multicurrency_price_ttc` double(24,8) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_price_by_qty_level` (`fk_product_price`,`quantity`),
    +  KEY `idx_product_price_by_qty_fk_product_price` (`fk_product_price`),
    +  CONSTRAINT `fk_product_price_by_qty_fk_product_price` FOREIGN KEY (`fk_product_price`) REFERENCES `llx_product_price` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_price_by_qty`
    +--
    +
    +LOCK TABLES `llx_product_price_by_qty` WRITE;
    +/*!40000 ALTER TABLE `llx_product_price_by_qty` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_price_by_qty` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_pricerules`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_pricerules`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_pricerules` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `level` int(11) NOT NULL,
    +  `fk_level` int(11) NOT NULL,
    +  `var_percent` float NOT NULL,
    +  `var_min_percent` float NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `unique_level` (`level`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_pricerules`
    +--
    +
    +LOCK TABLES `llx_product_pricerules` WRITE;
    +/*!40000 ALTER TABLE `llx_product_pricerules` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_pricerules` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_stock`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_stock`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_stock` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_entrepot` int(11) NOT NULL,
    +  `reel` double DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_stock` (`fk_product`,`fk_entrepot`),
    +  KEY `idx_product_stock_fk_product` (`fk_product`),
    +  KEY `idx_product_stock_fk_entrepot` (`fk_entrepot`)
    +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_stock`
    +--
    +
    +LOCK TABLES `llx_product_stock` WRITE;
    +/*!40000 ALTER TABLE `llx_product_stock` DISABLE KEYS */;
    +INSERT INTO `llx_product_stock` VALUES (1,'2010-07-08 22:43:51',2,2,1000,NULL),(3,'2010-07-10 23:02:20',4,2,1000,NULL),(4,'2013-01-19 17:22:48',4,1,1,NULL),(5,'2013-01-19 17:22:48',1,1,2,NULL),(6,'2013-01-19 17:22:48',11,1,-1,NULL),(7,'2013-01-19 17:31:58',2,1,-2,NULL),(8,'2016-07-30 13:40:39',10,2,75,NULL),(9,'2017-02-16 00:12:09',10,1,35,NULL);
    +/*!40000 ALTER TABLE `llx_product_stock` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_subproduct`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_subproduct`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_subproduct` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_product_subproduct` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `fk_product` (`fk_product`,`fk_product_subproduct`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_subproduct`
    +--
    +
    +LOCK TABLES `llx_product_subproduct` WRITE;
    +/*!40000 ALTER TABLE `llx_product_subproduct` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_subproduct` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_warehouse_properties`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_warehouse_properties`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_warehouse_properties` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_entrepot` int(11) NOT NULL,
    +  `seuil_stock_alerte` int(11) DEFAULT '0',
    +  `desiredstock` int(11) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_warehouse_properties`
    +--
    +
    +LOCK TABLES `llx_product_warehouse_properties` WRITE;
    +/*!40000 ALTER TABLE `llx_product_warehouse_properties` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_warehouse_properties` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `dateo` date DEFAULT NULL,
    +  `datee` date DEFAULT NULL,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `public` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_opp_status` int(11) DEFAULT NULL,
    +  `opp_percent` double(5,2) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `budget_amount` double(24,8) DEFAULT NULL,
    +  `date_close` datetime DEFAULT NULL,
    +  `fk_user_close` int(11) DEFAULT NULL,
    +  `opp_amount` double(24,8) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `bill_time` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_projet_ref` (`ref`,`entity`),
    +  KEY `idx_projet_fk_soc` (`fk_soc`),
    +  CONSTRAINT `fk_projet_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet`
    +--
    +
    +LOCK TABLES `llx_projet` WRITE;
    +/*!40000 ALTER TABLE `llx_projet` DISABLE KEYS */;
    +INSERT INTO `llx_projet` VALUES (1,11,'2010-07-09 00:00:00','2015-10-05 20:51:28','2010-07-09',NULL,'PROJ1',1,'Project One','',1,0,1,NULL,NULL,NULL,'gdfgdfg','baleine',NULL,NULL,NULL,NULL,NULL,NULL,0),(2,13,'2010-07-09 00:00:00','2015-10-05 20:51:51','2010-07-09',NULL,'PROJ2',1,'Project Two','',1,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(3,1,'2010-07-09 00:00:00','2017-02-01 11:55:08','2010-07-09',NULL,'PROJINDIAN',1,'Project for Indian company move','',1,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(4,NULL,'2010-07-09 00:00:00','2010-07-08 22:50:49','2010-07-09',NULL,'PROJSHARED',1,'The Global project','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(5,NULL,'2010-07-11 00:00:00','2017-02-01 15:01:51','2010-07-11','2011-07-14','RMLL',1,'Project management RMLL','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(6,10,'2016-07-30 00:00:00','2016-07-30 15:53:07','2016-07-30',NULL,'PJ1607-0001',1,'PROJALICE1','The Alice project number 1',12,0,1,2,20.00,NULL,NULL,NULL,5000.00000000,NULL,NULL,8000.00000000,NULL,NULL,0),(7,10,'2016-07-30 00:00:00','2017-02-01 12:24:37','2016-07-30',NULL,'PJ1607-0002',1,'PROJALICE2','The Alice project number 2',12,0,1,6,100.00,NULL,NULL,NULL,NULL,'2017-02-01 16:24:31',12,7000.00000000,NULL,NULL,0),(8,10,'2016-07-30 00:00:00','2016-07-30 15:53:23','2016-07-30',NULL,'PJ1607-0003',1,'PROJALICE2','The Alice project number 3',12,0,1,6,100.00,NULL,NULL,NULL,NULL,NULL,NULL,3550.00000000,NULL,NULL,0),(9,4,'2016-07-31 00:00:00','2016-07-31 14:27:26','2016-07-31',NULL,'PJ1607-0004',1,'Project Top X','',12,0,1,2,27.00,NULL,NULL,NULL,NULL,NULL,NULL,4000.00000000,NULL,NULL,0);
    +/*!40000 ALTER TABLE `llx_projet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `priority` mediumtext COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_projet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_extrafields`
    +--
    +
    +LOCK TABLES `llx_projet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_extrafields` DISABLE KEYS */;
    +INSERT INTO `llx_projet_extrafields` VALUES (5,'2016-07-30 15:53:07',6,NULL,'3'),(7,'2016-07-30 15:53:23',8,NULL,'5'),(9,'2016-07-31 14:27:24',9,NULL,'0'),(13,'2017-02-01 11:55:08',3,NULL,'0'),(15,'2017-02-01 12:24:31',7,NULL,'1'),(16,'2017-02-01 15:01:51',5,NULL,'0');
    +/*!40000 ALTER TABLE `llx_projet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_task`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_task`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_task` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_projet` int(11) NOT NULL,
    +  `fk_task_parent` int(11) NOT NULL DEFAULT '0',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `dateo` datetime DEFAULT NULL,
    +  `datee` datetime DEFAULT NULL,
    +  `datev` datetime DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `duration_effective` double DEFAULT '0',
    +  `planned_workload` double DEFAULT '0',
    +  `progress` int(11) DEFAULT '0',
    +  `priority` int(11) DEFAULT '0',
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `rang` int(11) DEFAULT '0',
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_projet_task_ref` (`ref`,`entity`),
    +  KEY `idx_projet_task_fk_projet` (`fk_projet`),
    +  KEY `idx_projet_task_fk_user_creat` (`fk_user_creat`),
    +  KEY `idx_projet_task_fk_user_valid` (`fk_user_valid`),
    +  CONSTRAINT `fk_projet_task_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_projet_task_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_projet_task_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_task`
    +--
    +
    +LOCK TABLES `llx_projet_task` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_task` DISABLE KEYS */;
    +INSERT INTO `llx_projet_task` VALUES (2,'2',1,5,0,'2010-07-11 16:23:53','2013-09-08 23:06:14','2010-07-11 12:00:00','2011-07-14 12:00:00',NULL,'Heberger site RMLL','',0,0,0,0,1,NULL,0,NULL,NULL,0,NULL,NULL),(3,'TK1007-0001',1,1,0,'2014-12-21 13:52:41','2016-07-30 11:35:40','2014-12-21 16:52:00',NULL,NULL,'Analyze','',9000,36000,0,0,1,NULL,0,NULL,'gdfgdfgdf',0,NULL,NULL),(4,'TK1007-0002',1,1,0,'2014-12-21 13:55:39','2016-07-30 11:35:51','2014-12-21 16:55:00',NULL,NULL,'Specification','',7200,18000,25,0,1,NULL,0,NULL,NULL,0,NULL,NULL),(5,'TK1007-0003',1,1,0,'2014-12-21 14:16:58','2016-07-30 11:35:59','2014-12-21 17:16:00',NULL,NULL,'Development','',0,0,0,0,1,NULL,0,NULL,NULL,0,NULL,NULL),(6,'TK1607-0004',1,6,0,'2016-07-30 15:33:27','2016-07-30 11:34:47','2016-07-30 02:00:00',NULL,NULL,'Project preparation phase A','',75600,720000,10,0,12,NULL,0,NULL,NULL,0,NULL,NULL),(7,'TK1607-0005',1,6,0,'2016-07-30 15:33:39','2017-01-30 11:23:39','2016-07-30 02:00:00',NULL,NULL,'Project preparation phase B','',40260,1080000,5,0,12,NULL,0,NULL,NULL,0,NULL,NULL),(8,'TK1607-0006',1,6,0,'2016-07-30 15:33:53','2016-07-30 11:33:53','2016-07-30 02:00:00',NULL,NULL,'Project execution phase A','',0,162000,0,0,12,NULL,0,NULL,NULL,0,NULL,NULL),(9,'TK1607-0007',1,6,0,'2016-07-30 15:34:09','2016-07-30 11:34:09','2016-10-27 02:00:00',NULL,NULL,'Project execution phase B','',0,2160000,0,0,12,NULL,0,NULL,NULL,0,NULL,NULL),(10,'TK1007-0008',1,1,0,'2016-07-30 15:36:31','2016-07-30 11:36:31','2016-07-30 02:00:00',NULL,NULL,'Tests','',0,316800,0,0,12,NULL,0,NULL,NULL,0,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_projet_task` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_task_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_task_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_task_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_projet_task_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_task_extrafields`
    +--
    +
    +LOCK TABLES `llx_projet_task_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_task_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_projet_task_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_task_time`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_task_time`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_task_time` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_task` int(11) NOT NULL,
    +  `task_date` date DEFAULT NULL,
    +  `task_datehour` datetime DEFAULT NULL,
    +  `task_date_withhour` int(11) DEFAULT '0',
    +  `task_duration` double DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `thm` double(24,8) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `invoice_id` int(11) DEFAULT NULL,
    +  `invoice_line_id` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `datec` date DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_projet_task_time_task` (`fk_task`),
    +  KEY `idx_projet_task_time_date` (`task_date`),
    +  KEY `idx_projet_task_time_datehour` (`task_datehour`)
    +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_task_time`
    +--
    +
    +LOCK TABLES `llx_projet_task_time` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_task_time` DISABLE KEYS */;
    +INSERT INTO `llx_projet_task_time` VALUES (2,4,'2014-12-21','2014-12-21 12:00:00',0,3600,1,NULL,'',NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(3,4,'2014-12-18','2014-12-18 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(4,3,'2014-12-21','2014-12-21 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(5,3,'2014-12-21','2014-12-21 12:00:00',0,1800,1,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(6,3,'2014-12-21','2014-12-21 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(7,6,'2016-07-25','2016-07-25 00:00:00',0,18000,12,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(8,6,'2016-07-26','2016-07-26 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(9,6,'2016-07-27','2016-07-27 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(10,6,'2016-07-29','2016-07-29 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(11,6,'2016-07-31','2016-07-31 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(12,7,'2016-07-25','2016-07-25 00:00:00',0,10800,12,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(13,7,'2016-07-26','2016-07-26 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(14,7,'2016-07-27','2016-07-27 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(15,7,'2017-01-30','2017-01-30 10:00:00',1,660,12,NULL,'',NULL,NULL,NULL,NULL,'0000-00-00 00:00:00');
    +/*!40000 ALTER TABLE `llx_projet_task_time` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_taskdet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_taskdet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_taskdet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_task` int(11) NOT NULL DEFAULT '0',
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `qty_planned` double DEFAULT NULL,
    +  `qty_used` double DEFAULT NULL,
    +  `qty_deleted` double DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `pmp` double(24,8) DEFAULT '0.00000000',
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `fk_statut` int(11) NOT NULL DEFAULT '0',
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_projet_taskdet` (`fk_task`,`fk_product`),
    +  KEY `idx_projet_taskdet_fk_task` (`fk_task`),
    +  KEY `idx_projet_taskdet_fk_product` (`fk_product`),
    +  CONSTRAINT `fk_projet_taskdet_fk_task` FOREIGN KEY (`fk_task`) REFERENCES `llx_projet_task` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_taskdet`
    +--
    +
    +LOCK TABLES `llx_projet_taskdet` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_taskdet` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_projet_taskdet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_taskdet_equipement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_taskdet_equipement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_taskdet_equipement` (
    +  `fk_equipement` int(11) NOT NULL DEFAULT '0',
    +  `fk_projet_taskdet` int(11) NOT NULL DEFAULT '0',
    +  UNIQUE KEY `uk_factory_equipement` (`fk_equipement`,`fk_projet_taskdet`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_taskdet_equipement`
    +--
    +
    +LOCK TABLES `llx_projet_taskdet_equipement` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_taskdet_equipement` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_projet_taskdet_equipement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_propal`
    +--
    +
    +DROP TABLE IF EXISTS `llx_propal`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_propal` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_client` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `datep` date DEFAULT NULL,
    +  `fin_validite` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_cloture` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_cloture` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `price` double DEFAULT '0',
    +  `remise_percent` double DEFAULT '0',
    +  `remise_absolue` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total` double(24,8) DEFAULT '0.00000000',
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_cond_reglement` int(11) DEFAULT NULL,
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_livraison` date DEFAULT NULL,
    +  `fk_shipping_method` int(11) DEFAULT NULL,
    +  `fk_availability` int(11) DEFAULT NULL,
    +  `fk_delivery_address` int(11) DEFAULT NULL,
    +  `fk_input_reason` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_propal_ref` (`ref`,`entity`),
    +  KEY `idx_propal_fk_soc` (`fk_soc`),
    +  KEY `idx_propal_fk_user_author` (`fk_user_author`),
    +  KEY `idx_propal_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_propal_fk_user_cloture` (`fk_user_cloture`),
    +  KEY `idx_propal_fk_projet` (`fk_projet`),
    +  KEY `idx_propal_fk_account` (`fk_account`),
    +  KEY `idx_propal_fk_currency` (`fk_currency`),
    +  CONSTRAINT `fk_propal_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_propal_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_propal_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_propal_fk_user_cloture` FOREIGN KEY (`fk_user_cloture`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_propal_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_propal`
    +--
    +
    +LOCK TABLES `llx_propal` WRITE;
    +/*!40000 ALTER TABLE `llx_propal` DISABLE KEYS */;
    +INSERT INTO `llx_propal` VALUES (1,2,NULL,'2016-07-30 15:56:45','PR1007-0001',1,NULL,NULL,'','2010-07-09 01:33:49','2016-07-09','2016-07-24 12:00:00','2017-08-08 14:24:18',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,30.00000000,3.84000000,0.00000000,0.00000000,33.84000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(2,1,NULL,'2016-07-30 15:56:54','PR1007-0002',1,NULL,NULL,'','2010-07-10 02:11:44','2016-07-10','2016-07-25 12:00:00','2016-07-10 02:12:55','2017-07-20 15:23:12',1,NULL,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,1,'','','azur',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(3,4,NULL,'2016-07-30 15:56:54','PR1007-0003',1,NULL,NULL,'','2010-07-18 11:35:11','2016-07-18','2016-08-02 12:00:00','2016-07-18 11:36:18','2017-07-20 15:21:15',1,NULL,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(5,19,NULL,'2016-07-30 15:56:54','PR1302-0005',1,NULL,NULL,'','2013-02-17 15:39:56','2016-02-17','2016-03-04 12:00:00','2018-11-15 23:27:10',NULL,1,NULL,12,NULL,1,0,NULL,NULL,0,10.00000000,2.00000000,0.00000000,0.00000000,12.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(6,19,NULL,'2016-07-30 15:56:54','PR1302-0006',1,NULL,NULL,'','2013-02-17 15:40:12','2016-02-17','2016-03-04 12:00:00',NULL,NULL,1,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(7,19,NULL,'2017-01-29 17:49:33','PR1302-0007',1,NULL,NULL,'','2013-02-17 15:41:15','2016-02-17','2016-03-04 12:00:00','2017-01-29 21:49:33',NULL,1,NULL,12,NULL,1,0,NULL,NULL,0,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,400.00000000,0.00000000,400.00000000,NULL),(8,19,NULL,'2016-07-30 15:56:39','PR1302-0008',1,NULL,NULL,'','2013-02-17 15:43:39','2016-02-17','2016-03-04 12:00:00',NULL,NULL,1,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(10,7,NULL,'2016-07-30 15:57:25','(PROV10)',1,NULL,NULL,'','2015-11-15 23:37:08','2015-11-15','2016-11-30 12:00:00',NULL,NULL,12,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,3,'','','azur',NULL,NULL,0,NULL,0,NULL,NULL,0,'',NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(11,1,NULL,'2017-02-16 00:44:58','PR1702-0009',1,NULL,NULL,'','2017-02-16 01:44:58','2015-05-13','2015-05-28 12:00:00','2017-02-16 01:44:58',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,60.00000000,0.00000000,0.00000000,0.00000000,60.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,60.00000000,0.00000000,60.00000000,NULL),(12,7,NULL,'2017-02-16 00:45:44','PR1702-0010',1,NULL,NULL,'','2017-02-16 01:45:44','2015-06-24','2015-07-09 12:00:00','2017-02-16 01:45:44',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,832.00000000,0.00000000,0.00000000,0.00000000,832.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,832.00000000,0.00000000,832.00000000,NULL),(13,26,NULL,'2017-02-16 00:46:15','PR1702-0011',1,NULL,NULL,'','2017-02-16 01:46:15','2015-04-03','2015-04-18 12:00:00','2017-02-16 01:46:15',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,242.00000000,0.00000000,0.00000000,0.00000000,242.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,242.00000000,0.00000000,242.00000000,NULL),(14,3,NULL,'2017-02-16 00:46:15','PR1702-0012',1,NULL,NULL,'','2017-02-16 01:46:15','2016-06-19','2016-07-04 12:00:00','2017-02-16 01:46:15',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,245.00000000,0.00000000,0.00000000,0.00000000,245.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,245.00000000,0.00000000,245.00000000,NULL),(15,26,NULL,'2017-02-16 00:46:15','PR1702-0013',1,NULL,NULL,'','2017-02-16 01:46:15','2016-05-01','2016-05-16 12:00:00','2017-02-16 01:46:15',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,940.00000000,0.00000000,0.00000000,0.00000000,940.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,940.00000000,0.00000000,940.00000000,NULL),(16,1,NULL,'2017-02-16 00:46:15','PR1702-0014',1,NULL,NULL,'','2017-02-16 01:46:15','2015-05-13','2015-05-28 12:00:00','2017-02-16 01:46:15',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,125.00000000,0.00000000,0.00000000,0.00000000,125.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,125.00000000,0.00000000,125.00000000,NULL),(17,1,NULL,'2017-02-16 00:46:15','PR1702-0015',1,NULL,NULL,'','2017-02-16 01:46:15','2016-07-23','2016-08-07 12:00:00','2017-02-16 01:46:15',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,163.00000000,0.00000000,0.00000000,0.00000000,163.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,163.00000000,0.00000000,163.00000000,NULL),(18,26,NULL,'2017-02-16 00:46:15','PR1702-0016',1,NULL,NULL,'','2017-02-16 01:46:15','2015-02-13','2015-02-28 12:00:00','2017-02-16 01:46:15',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,900.00000000,0.00000000,0.00000000,0.00000000,900.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,900.00000000,0.00000000,900.00000000,NULL),(19,12,NULL,'2017-02-16 00:46:15','PR1702-0017',1,NULL,NULL,'','2017-02-16 01:46:15','2015-03-30','2015-04-14 12:00:00','2017-02-16 01:46:15',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL),(20,26,NULL,'2017-02-16 00:46:15','PR1702-0018',1,NULL,NULL,'','2017-02-16 01:46:15','2016-11-13','2016-11-28 12:00:00','2017-02-16 01:46:15',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,830.00000000,0.00000000,0.00000000,0.00000000,830.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,830.00000000,0.00000000,830.00000000,NULL),(21,1,NULL,'2017-02-16 00:47:09','PR1702-0019',1,NULL,NULL,'','2017-02-16 01:46:15','2015-09-23','2018-10-08 12:00:00','2017-02-16 04:47:09',NULL,1,NULL,12,NULL,1,0,NULL,NULL,0,89.00000000,0.00000000,0.00000000,0.00000000,89.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,89.00000000,0.00000000,89.00000000,NULL),(22,26,NULL,'2017-02-16 00:47:13','PR1702-0020',1,NULL,NULL,'','2017-02-16 01:46:15','2016-11-13','2016-11-28 12:00:00','2017-02-16 01:46:15',NULL,1,NULL,1,NULL,0,0,NULL,NULL,0,70.00000000,0.00000000,0.00000000,0.00000000,70.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,70.00000000,0.00000000,70.00000000,NULL),(23,12,NULL,'2017-02-17 12:07:18','PR1702-0021',1,NULL,NULL,'','2017-02-16 01:46:17','2016-04-03','2016-04-18 12:00:00','2017-02-17 16:07:18',NULL,2,NULL,12,NULL,1,0,NULL,NULL,0,715.00000000,0.00000000,0.00000000,0.00000000,715.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,715.00000000,0.00000000,715.00000000,NULL),(24,7,NULL,'2017-02-16 00:46:17','PR1702-0022',1,NULL,NULL,'','2017-02-16 01:46:17','2016-11-13','2016-11-28 12:00:00','2017-02-16 01:46:17',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,250.00000000,0.00000000,0.00000000,0.00000000,250.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,250.00000000,0.00000000,250.00000000,NULL),(25,3,NULL,'2017-02-16 00:47:29','PR1702-0023',1,NULL,NULL,'','2017-02-16 01:46:17','2016-07-09','2016-07-24 12:00:00','2017-02-16 01:46:17','2017-02-16 04:47:29',1,NULL,1,12,4,0,NULL,NULL,0,1018.00000000,0.00000000,0.00000000,0.00000000,1018.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1018.00000000,0.00000000,1018.00000000,NULL),(26,1,NULL,'2017-02-16 00:46:18','PR1702-0024',1,NULL,NULL,'','2017-02-16 01:46:17','2016-04-03','2016-04-18 12:00:00','2017-02-16 01:46:18',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,710.00000000,0.00000000,0.00000000,0.00000000,710.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,710.00000000,0.00000000,710.00000000,NULL),(27,6,NULL,'2017-02-16 00:46:18','PR1702-0025',1,NULL,NULL,'','2017-02-16 01:46:18','2016-11-12','2016-11-27 12:00:00','2017-02-16 01:46:18',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,300.00000000,0.00000000,300.00000000,NULL),(28,19,NULL,'2017-02-16 00:46:31','PR1702-0026',1,NULL,NULL,'','2017-02-16 01:46:18','2015-07-30','2015-08-14 12:00:00','2017-02-16 01:46:18','2017-02-16 04:46:31',2,NULL,2,12,2,0,NULL,NULL,0,440.00000000,0.00000000,0.00000000,0.00000000,440.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,440.00000000,0.00000000,440.00000000,NULL),(29,1,NULL,'2017-02-16 00:46:37','PR1702-0027',1,NULL,NULL,'','2017-02-16 01:46:18','2015-07-23','2015-08-07 12:00:00','2017-02-16 01:46:18','2017-02-16 04:46:37',2,NULL,2,12,2,0,NULL,NULL,0,1000.00000000,0.00000000,0.00000000,0.00000000,1000.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL),(30,1,NULL,'2017-02-16 00:46:42','PR1702-0028',1,NULL,NULL,'','2017-02-16 01:46:18','2016-05-01','2016-05-16 12:00:00','2017-02-16 01:46:18','2017-02-16 04:46:42',2,NULL,2,12,3,0,NULL,NULL,0,1200.00000000,0.00000000,0.00000000,0.00000000,1200.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1200.00000000,0.00000000,1200.00000000,NULL),(31,11,NULL,'2017-02-16 00:46:18','PR1702-0029',1,NULL,NULL,'','2017-02-16 01:46:18','2016-06-24','2016-07-09 12:00:00','2017-02-16 01:46:18',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,720.00000000,0.00000000,0.00000000,0.00000000,720.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,720.00000000,0.00000000,720.00000000,NULL),(32,19,NULL,'2017-02-16 00:46:18','PR1702-0030',1,NULL,NULL,'','2017-02-16 01:46:18','2016-11-12','2016-11-27 12:00:00','2017-02-16 01:46:18',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,608.00000000,0.00000000,0.00000000,0.00000000,608.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,608.00000000,0.00000000,608.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_propal` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_propal_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_propal_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_propal_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_propal_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_propal_extrafields`
    +--
    +
    +LOCK TABLES `llx_propal_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_propal_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_propal_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_propal_merge_pdf_product`
    +--
    +
    +DROP TABLE IF EXISTS `llx_propal_merge_pdf_product`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_propal_merge_pdf_product` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product` int(11) NOT NULL,
    +  `file_name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
    +  `lang` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_propal_merge_pdf_product`
    +--
    +
    +LOCK TABLES `llx_propal_merge_pdf_product` WRITE;
    +/*!40000 ALTER TABLE `llx_propal_merge_pdf_product` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_propal_merge_pdf_product` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_propaldet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_propaldet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_propaldet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_propal` int(11) DEFAULT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_remise_except` int(11) DEFAULT NULL,
    +  `tva_tx` double(6,3) DEFAULT '0.000',
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `price` double DEFAULT NULL,
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `product_type` int(11) DEFAULT '0',
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `fk_product_fournisseur_price` int(11) DEFAULT NULL,
    +  `buy_price_ht` double(24,8) DEFAULT '0.00000000',
    +  `special_code` int(10) unsigned DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_propaldet_fk_propal` (`fk_propal`),
    +  KEY `idx_propaldet_fk_product` (`fk_product`),
    +  KEY `fk_propaldet_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_propaldet_fk_propal` FOREIGN KEY (`fk_propal`) REFERENCES `llx_propal` (`rowid`),
    +  CONSTRAINT `fk_propaldet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=109 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_propaldet`
    +--
    +
    +LOCK TABLES `llx_propaldet` WRITE;
    +/*!40000 ALTER TABLE `llx_propaldet` DISABLE KEYS */;
    +INSERT INTO `llx_propaldet` VALUES (1,1,NULL,NULL,NULL,'Une machine à café',NULL,12.500,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,1.25000000,0.00000000,0.00000000,11.25000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(2,2,NULL,NULL,NULL,'Product 1',NULL,0.000,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(3,2,NULL,2,NULL,'',NULL,0.000,'',0.000,'',0.000,'',1,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(4,3,NULL,NULL,NULL,'A new marvelous product',NULL,0.000,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(5,1,NULL,5,NULL,'cccc',NULL,19.600,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,1.96000000,0.00000000,0.00000000,11.96000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(11,1,NULL,4,NULL,'',NULL,0.000,'',0.000,'',0.000,'',1,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(12,1,NULL,4,NULL,'',NULL,0.000,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(13,1,NULL,4,NULL,'',NULL,12.500,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,0.63000000,0.00000000,0.00000000,5.63000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(24,5,NULL,NULL,NULL,'On demand Apple pie',NULL,20.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,10.00000000,2.00000000,0.00000000,0.00000000,12.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(25,7,NULL,NULL,NULL,'Help to setup Magic Food computer',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,400.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'',400.00000000,400.00000000,0.00000000,400.00000000),(26,11,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,10.00000000,50.00000000,0.00000000,0.00000000,0.00000000,50.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',10.00000000,50.00000000,0.00000000,50.00000000),(27,11,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,10.00000000,0.00000000,10.00000000),(28,12,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',5.00000000,5.00000000,0.00000000,5.00000000),(29,12,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(30,12,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(31,12,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,9.00000000,27.00000000,0.00000000,0.00000000,0.00000000,27.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',9.00000000,27.00000000,0.00000000,27.00000000),(32,12,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(33,13,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(34,13,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(35,13,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,9.00000000,27.00000000,0.00000000,0.00000000,0.00000000,27.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',9.00000000,27.00000000,0.00000000,27.00000000),(36,13,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(37,14,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(38,14,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(39,15,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(40,15,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(41,15,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(42,15,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,10.00000000,40.00000000,0.00000000,0.00000000,0.00000000,40.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',10.00000000,40.00000000,0.00000000,40.00000000),(43,16,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,10.00000000,40.00000000,0.00000000,0.00000000,0.00000000,40.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',10.00000000,40.00000000,0.00000000,40.00000000),(44,16,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,10.00000000,40.00000000,0.00000000,0.00000000,0.00000000,40.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,40.00000000,0.00000000,40.00000000),(45,16,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(46,17,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(47,17,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',9.00000000,18.00000000,0.00000000,18.00000000),(48,17,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(49,17,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(50,17,NULL,3,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(51,18,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(52,18,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(53,18,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(54,19,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(55,19,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(56,19,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(57,19,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(58,19,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(59,20,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(60,20,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,10.00000000,0.00000000,10.00000000),(61,20,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,10.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',10.00000000,20.00000000,0.00000000,20.00000000),(62,20,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(63,21,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,10.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',10.00000000,20.00000000,0.00000000,20.00000000),(64,21,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,9.00000000,9.00000000,0.00000000,0.00000000,0.00000000,9.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',9.00000000,9.00000000,0.00000000,9.00000000),(65,21,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(66,21,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(67,22,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,10.00000000,50.00000000,0.00000000,0.00000000,0.00000000,50.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',10.00000000,50.00000000,0.00000000,50.00000000),(68,22,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,10.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,20.00000000,0.00000000,20.00000000),(69,23,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(70,23,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(71,23,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(72,23,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(73,24,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',5.00000000,5.00000000,0.00000000,5.00000000),(74,24,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(75,24,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(76,24,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(77,25,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(78,25,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(79,25,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(80,25,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(81,25,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',9.00000000,18.00000000,0.00000000,18.00000000),(82,26,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(83,26,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,10.00000000,0.00000000,10.00000000),(84,26,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(85,26,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(86,26,NULL,3,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(87,27,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(88,27,NULL,3,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(89,28,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(90,28,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,10.00000000,30.00000000,0.00000000,0.00000000,0.00000000,30.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,30.00000000,0.00000000,30.00000000),(91,28,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(92,28,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(93,29,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(94,29,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(95,29,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(96,30,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(97,30,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(98,30,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(99,30,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(100,31,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,5.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',5.00000000,20.00000000,0.00000000,20.00000000),(101,31,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(102,31,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(103,31,NULL,3,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(104,32,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(105,32,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(106,32,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(107,32,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(108,32,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',9.00000000,18.00000000,0.00000000,18.00000000);
    +/*!40000 ALTER TABLE `llx_propaldet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_propaldet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_propaldet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_propaldet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_propaldet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_propaldet_extrafields`
    +--
    +
    +LOCK TABLES `llx_propaldet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_propaldet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_propaldet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_resource`
    +--
    +
    +DROP TABLE IF EXISTS `llx_resource`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_resource` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `asset_number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_code_type_resource` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_country` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_resource_ref` (`ref`,`entity`),
    +  KEY `fk_code_type_resource_idx` (`fk_code_type_resource`),
    +  KEY `idx_resource_fk_country` (`fk_country`),
    +  CONSTRAINT `fk_resource_fk_country` FOREIGN KEY (`fk_country`) REFERENCES `llx_c_country` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_resource`
    +--
    +
    +LOCK TABLES `llx_resource` WRITE;
    +/*!40000 ALTER TABLE `llx_resource` DISABLE KEYS */;
    +INSERT INTO `llx_resource` VALUES (1,1,'Car Kangoo 1',NULL,'Car number 1 - Num XDF-45-GH','RES_CARS',NULL,NULL,'2017-02-20 16:44:12',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL),(2,1,'Car Kangoo 2',NULL,'Car number 2 - Num GHY-78-JJ','RES_CARS',NULL,NULL,'2017-02-20 16:44:01',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL),(3,1,'Meeting room - 14p',NULL,'Meeting room<br />\r\n14 places','RES_ROOMS',NULL,NULL,'2017-02-20 16:44:38',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL),(4,1,'Meeting room - 8p',NULL,'Meeting room<br />\r\n8 places','RES_ROOMS',NULL,NULL,'2017-02-20 16:45:00',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_resource` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_resource_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_resource_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_resource_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_resource_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_resource_extrafields`
    +--
    +
    +LOCK TABLES `llx_resource_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_resource_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_resource_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_rights_def`
    +--
    +
    +DROP TABLE IF EXISTS `llx_rights_def`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_rights_def` (
    +  `id` int(11) NOT NULL DEFAULT '0',
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `module` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `perms` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `subperms` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bydefault` tinyint(4) DEFAULT '0',
    +  PRIMARY KEY (`id`,`entity`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_rights_def`
    +--
    +
    +LOCK TABLES `llx_rights_def` WRITE;
    +/*!40000 ALTER TABLE `llx_rights_def` DISABLE KEYS */;
    +INSERT INTO `llx_rights_def` VALUES (11,'Read invoices','facture',1,'lire',NULL,'a',0),(11,'Lire les factures','facture',2,'lire',NULL,'a',1),(12,'Create and update invoices','facture',1,'creer',NULL,'a',0),(12,'Creer/modifier les factures','facture',2,'creer',NULL,'a',0),(13,'Devalidate invoices','facture',1,'invoice_advance','unvalidate','a',0),(13,'Dévalider les factures','facture',2,'invoice_advance','unvalidate','a',0),(14,'Validate invoices','facture',1,'invoice_advance','validate','a',0),(14,'Valider les factures','facture',2,'valider',NULL,'a',0),(15,'Send invoices by email','facture',1,'invoice_advance','send','a',0),(15,'Envoyer les factures par mail','facture',2,'invoice_advance','send','a',0),(16,'Issue payments on invoices','facture',1,'paiement',NULL,'a',0),(16,'Emettre des paiements sur les factures','facture',2,'paiement',NULL,'a',0),(19,'Delete invoices','facture',1,'supprimer',NULL,'a',0),(19,'Supprimer les factures','facture',2,'supprimer',NULL,'a',0),(21,'Lire les propositions commerciales','propale',1,'lire',NULL,'r',1),(21,'Lire les propositions commerciales','propale',2,'lire',NULL,'r',1),(22,'Creer/modifier les propositions commerciales','propale',1,'creer',NULL,'w',0),(22,'Creer/modifier les propositions commerciales','propale',2,'creer',NULL,'w',0),(24,'Valider les propositions commerciales','propale',1,'propal_advance','validate','d',0),(24,'Valider les propositions commerciales','propale',2,'valider',NULL,'d',0),(25,'Envoyer les propositions commerciales aux clients','propale',1,'propal_advance','send','d',0),(25,'Envoyer les propositions commerciales aux clients','propale',2,'propal_advance','send','d',0),(26,'Cloturer les propositions commerciales','propale',1,'cloturer',NULL,'d',0),(26,'Cloturer les propositions commerciales','propale',2,'cloturer',NULL,'d',0),(27,'Supprimer les propositions commerciales','propale',1,'supprimer',NULL,'d',0),(27,'Supprimer les propositions commerciales','propale',2,'supprimer',NULL,'d',0),(28,'Exporter les propositions commerciales et attributs','propale',1,'export',NULL,'r',0),(28,'Exporter les propositions commerciales et attributs','propale',2,'export',NULL,'r',0),(31,'Lire les produits','produit',1,'lire',NULL,'r',1),(31,'Lire les produits','produit',2,'lire',NULL,'r',1),(32,'Creer/modifier les produits','produit',1,'creer',NULL,'w',0),(32,'Creer/modifier les produits','produit',2,'creer',NULL,'w',0),(34,'Supprimer les produits','produit',1,'supprimer',NULL,'d',0),(34,'Supprimer les produits','produit',2,'supprimer',NULL,'d',0),(38,'Exporter les produits','produit',1,'export',NULL,'r',0),(38,'Exporter les produits','produit',2,'export',NULL,'r',0),(41,'Read projects and tasks (shared projects or projects I am contact for). Can also enter time consumed on assigned tasks (timesheet)','projet',1,'lire',NULL,'r',1),(42,'Create/modify projects and tasks (shared projects or projects I am contact for)','projet',1,'creer',NULL,'w',0),(44,'Delete project and tasks (shared projects or projects I am contact for)','projet',1,'supprimer',NULL,'d',0),(45,'Export projects','projet',1,'export',NULL,'d',0),(61,'Lire les fiches d\'intervention','ficheinter',1,'lire',NULL,'r',1),(62,'Creer/modifier les fiches d\'intervention','ficheinter',1,'creer',NULL,'w',0),(64,'Supprimer les fiches d\'intervention','ficheinter',1,'supprimer',NULL,'d',0),(67,'Exporter les fiches interventions','ficheinter',1,'export',NULL,'r',0),(68,'Envoyer les fiches d\'intervention par courriel','ficheinter',1,'ficheinter_advance','send','r',0),(69,'Valider les fiches d\'intervention ','ficheinter',1,'ficheinter_advance','validate','a',0),(70,'Dévalider les fiches d\'intervention','ficheinter',1,'ficheinter_advance','unvalidate','a',0),(71,'Read members\' card','adherent',1,'lire',NULL,'r',0),(72,'Create/modify members (need also user module permissions if member linked to a user)','adherent',1,'creer',NULL,'w',0),(74,'Remove members','adherent',1,'supprimer',NULL,'d',0),(75,'Setup types of membership','adherent',1,'configurer',NULL,'w',0),(76,'Export members','adherent',1,'export',NULL,'r',0),(78,'Read subscriptions','adherent',1,'cotisation','lire','r',0),(79,'Create/modify/remove subscriptions','adherent',1,'cotisation','creer','w',0),(81,'Lire les commandes clients','commande',1,'lire',NULL,'r',0),(82,'Creer/modifier les commandes clients','commande',1,'creer',NULL,'w',0),(84,'Valider les commandes clients','commande',1,'order_advance','validate','d',0),(86,'Envoyer les commandes clients','commande',1,'order_advance','send','d',0),(87,'Cloturer les commandes clients','commande',1,'cloturer',NULL,'d',0),(88,'Annuler les commandes clients','commande',1,'order_advance','annuler','d',0),(89,'Supprimer les commandes clients','commande',1,'supprimer',NULL,'d',0),(91,'Lire les charges','tax',1,'charges','lire','r',0),(91,'Lire les charges','tax',2,'charges','lire','r',1),(92,'Creer/modifier les charges','tax',1,'charges','creer','w',0),(92,'Creer/modifier les charges','tax',2,'charges','creer','w',0),(93,'Supprimer les charges','tax',1,'charges','supprimer','d',0),(93,'Supprimer les charges','tax',2,'charges','supprimer','d',0),(94,'Exporter les charges','tax',1,'charges','export','r',0),(94,'Exporter les charges','tax',2,'charges','export','r',0),(101,'Lire les expeditions','expedition',1,'lire',NULL,'r',1),(102,'Creer modifier les expeditions','expedition',1,'creer',NULL,'w',0),(104,'Valider les expeditions','expedition',1,'shipping_advance','validate','d',0),(105,'Envoyer les expeditions aux clients','expedition',1,'shipping_advance','send','d',0),(106,'Exporter les expeditions','expedition',1,'shipment','export','r',0),(109,'Supprimer les expeditions','expedition',1,'supprimer',NULL,'d',0),(111,'Lire les comptes bancaires','banque',1,'lire',NULL,'r',0),(111,'Lire les comptes bancaires','banque',2,'lire',NULL,'r',1),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',1,'modifier',NULL,'w',0),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',2,'modifier',NULL,'w',0),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',1,'configurer',NULL,'a',0),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',2,'configurer',NULL,'a',0),(114,'Rapprocher les ecritures bancaires','banque',1,'consolidate',NULL,'w',0),(114,'Rapprocher les ecritures bancaires','banque',2,'consolidate',NULL,'w',0),(115,'Exporter transactions et releves','banque',1,'export',NULL,'r',0),(115,'Exporter transactions et releves','banque',2,'export',NULL,'r',0),(116,'Virements entre comptes','banque',1,'transfer',NULL,'w',0),(116,'Virements entre comptes','banque',2,'transfer',NULL,'w',0),(117,'Gerer les envois de cheques','banque',1,'cheque',NULL,'w',0),(117,'Gerer les envois de cheques','banque',2,'cheque',NULL,'w',0),(121,'Read third parties','societe',1,'lire',NULL,'r',0),(121,'Lire les societes','societe',2,'lire',NULL,'r',1),(122,'Create and update third parties','societe',1,'creer',NULL,'w',0),(122,'Creer modifier les societes','societe',2,'creer',NULL,'w',0),(125,'Delete third parties','societe',1,'supprimer',NULL,'d',0),(125,'Supprimer les societes','societe',2,'supprimer',NULL,'d',0),(126,'Export third parties','societe',1,'export',NULL,'r',0),(126,'Exporter les societes','societe',2,'export',NULL,'r',0),(141,'Read all projects and tasks (also private projects I am not contact for)','projet',1,'all','lire','r',0),(142,'Create/modify all projects and tasks (also private projects I am not contact for)','projet',1,'all','creer','w',0),(144,'Delete all projects and tasks (also private projects I am not contact for)','projet',1,'all','supprimer','d',0),(151,'Read withdrawals','prelevement',1,'bons','lire','r',1),(152,'Create/modify a withdrawals','prelevement',1,'bons','creer','w',0),(153,'Send withdrawals to bank','prelevement',1,'bons','send','a',0),(154,'credit/refuse withdrawals','prelevement',1,'bons','credit','a',0),(161,'Lire les contrats','contrat',1,'lire',NULL,'r',1),(162,'Creer / modifier les contrats','contrat',1,'creer',NULL,'w',0),(163,'Activer un service d\'un contrat','contrat',1,'activer',NULL,'w',0),(164,'Desactiver un service d\'un contrat','contrat',1,'desactiver',NULL,'w',0),(165,'Supprimer un contrat','contrat',1,'supprimer',NULL,'d',0),(167,'Export contracts','contrat',1,'export',NULL,'r',0),(221,'Consulter les mailings','mailing',1,'lire',NULL,'r',1),(221,'Consulter les mailings','mailing',2,'lire',NULL,'r',1),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',1,'creer',NULL,'w',0),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',2,'creer',NULL,'w',0),(223,'Valider les mailings (permet leur envoi)','mailing',1,'valider',NULL,'w',0),(223,'Valider les mailings (permet leur envoi)','mailing',2,'valider',NULL,'w',0),(229,'Supprimer les mailings','mailing',1,'supprimer',NULL,'d',0),(229,'Supprimer les mailings','mailing',2,'supprimer',NULL,'d',0),(237,'View recipients and info','mailing',1,'mailing_advance','recipient','r',0),(237,'View recipients and info','mailing',2,'mailing_advance','recipient','r',0),(238,'Manually send mailings','mailing',1,'mailing_advance','send','w',0),(238,'Manually send mailings','mailing',2,'mailing_advance','send','w',0),(239,'Delete mailings after validation and/or sent','mailing',1,'mailing_advance','delete','d',0),(239,'Delete mailings after validation and/or sent','mailing',2,'mailing_advance','delete','d',0),(241,'Lire les categories','categorie',1,'lire',NULL,'r',1),(242,'Creer/modifier les categories','categorie',1,'creer',NULL,'w',0),(243,'Supprimer les categories','categorie',1,'supprimer',NULL,'d',0),(251,'Consulter les autres utilisateurs','user',1,'user','lire','r',0),(252,'Consulter les permissions des autres utilisateurs','user',1,'user_advance','readperms','r',0),(253,'Creer/modifier utilisateurs internes et externes','user',1,'user','creer','w',0),(254,'Creer/modifier utilisateurs externes seulement','user',1,'user_advance','write','w',0),(255,'Modifier le mot de passe des autres utilisateurs','user',1,'user','password','w',0),(256,'Supprimer ou desactiver les autres utilisateurs','user',1,'user','supprimer','d',0),(262,'Read all third parties by internal users (otherwise only if commercial contact). Not effective for external users (limited to themselves).','societe',1,'client','voir','r',0),(262,'Consulter tous les tiers par utilisateurs internes (sinon uniquement si contact commercial). Non effectif pour utilisateurs externes (tjs limités à eux-meme).','societe',2,'client','voir','r',1),(281,'Read contacts','societe',1,'contact','lire','r',0),(281,'Lire les contacts','societe',2,'contact','lire','r',1),(282,'Create and update contact','societe',1,'contact','creer','w',0),(282,'Creer modifier les contacts','societe',2,'contact','creer','w',0),(283,'Delete contacts','societe',1,'contact','supprimer','d',0),(283,'Supprimer les contacts','societe',2,'contact','supprimer','d',0),(286,'Export contacts','societe',1,'contact','export','d',0),(286,'Exporter les contacts','societe',2,'contact','export','d',0),(300,'Read barcodes','barcode',1,'lire_advance',NULL,'r',1),(301,'Create/modify barcodes','barcode',1,'creer_advance',NULL,'w',0),(331,'Lire les bookmarks','bookmark',1,'lire',NULL,'r',0),(332,'Creer/modifier les bookmarks','bookmark',1,'creer',NULL,'r',0),(333,'Supprimer les bookmarks','bookmark',1,'supprimer',NULL,'r',0),(341,'Consulter ses propres permissions','user',1,'self_advance','readperms','r',0),(342,'Creer/modifier ses propres infos utilisateur','user',1,'self','creer','w',0),(343,'Modifier son propre mot de passe','user',1,'self','password','w',0),(344,'Modifier ses propres permissions','user',1,'self_advance','writeperms','w',0),(351,'Consulter les groupes','user',1,'group_advance','read','r',0),(352,'Consulter les permissions des groupes','user',1,'group_advance','readperms','r',0),(353,'Creer/modifier les groupes et leurs permissions','user',1,'group_advance','write','w',0),(354,'Supprimer ou desactiver les groupes','user',1,'group_advance','delete','d',0),(358,'Exporter les utilisateurs','user',1,'user','export','r',0),(501,'Read employee contracts/salaries','salaries',1,'read',NULL,'r',0),(502,'Create/modify employee contracts/salaries','salaries',1,'write',NULL,'w',0),(511,'Read payment of salaries','salaries',1,'payment','read','w',0),(512,'Create/modify payment of salaries','salaries',1,'payment','write','w',0),(514,'Delete contracts/salaries','salaries',1,'delete',NULL,'d',0),(517,'Export employee contracts and salaries payments','salaries',1,'export',NULL,'r',0),(520,'Read loans','loan',1,'read',NULL,'r',0),(522,'Create/modify loans','loan',1,'write',NULL,'w',0),(524,'Delete loans','loan',1,'delete',NULL,'d',0),(525,'Access loan calculator','loan',1,'calc',NULL,'r',0),(527,'Export loans','loan',1,'export',NULL,'r',0),(531,'Lire les services','service',1,'lire',NULL,'r',0),(532,'Creer/modifier les services','service',1,'creer',NULL,'w',0),(534,'Supprimer les services','service',1,'supprimer',NULL,'d',0),(538,'Exporter les services','service',1,'export',NULL,'r',0),(701,'Lire les dons','don',1,'lire',NULL,'r',1),(701,'Lire les dons','don',2,'lire',NULL,'r',1),(702,'Creer/modifier les dons','don',1,'creer',NULL,'w',0),(702,'Creer/modifier les dons','don',2,'creer',NULL,'w',0),(703,'Supprimer les dons','don',1,'supprimer',NULL,'d',0),(703,'Supprimer les dons','don',2,'supprimer',NULL,'d',0),(771,'Read expense reports (yours and your subordinates)','expensereport',1,'lire',NULL,'r',1),(772,'Create/modify expense reports','expensereport',1,'creer',NULL,'w',0),(773,'Delete expense reports','expensereport',1,'supprimer',NULL,'d',0),(774,'Read all expense reports','expensereport',1,'readall',NULL,'r',1),(775,'Approve expense reports','expensereport',1,'approve',NULL,'w',0),(776,'Pay expense reports','expensereport',1,'to_paid',NULL,'w',0),(777,'Read expense reports of everybody','expensereport',1,'readall',NULL,'r',1),(778,'Create expense reports for everybody','expensereport',1,'writeall_advance',NULL,'w',0),(779,'Export expense reports','expensereport',1,'export',NULL,'r',0),(1001,'Lire les stocks','stock',1,'lire',NULL,'r',1),(1002,'Creer/Modifier les stocks','stock',1,'creer',NULL,'w',0),(1003,'Supprimer les stocks','stock',1,'supprimer',NULL,'d',0),(1004,'Lire mouvements de stocks','stock',1,'mouvement','lire','r',1),(1005,'Creer/modifier mouvements de stocks','stock',1,'mouvement','creer','w',0),(1101,'Lire les bons de livraison','expedition',1,'livraison','lire','r',1),(1102,'Creer modifier les bons de livraison','expedition',1,'livraison','creer','w',0),(1104,'Valider les bons de livraison','expedition',1,'livraison_advance','validate','d',0),(1109,'Supprimer les bons de livraison','expedition',1,'livraison','supprimer','d',0),(1121,'Read supplier proposals','supplier_proposal',1,'lire',NULL,'w',1),(1122,'Create/modify supplier proposals','supplier_proposal',1,'creer',NULL,'w',0),(1123,'Validate supplier proposals','supplier_proposal',1,'validate_advance',NULL,'w',0),(1124,'Envoyer les demandes fournisseurs','supplier_proposal',1,'send_advance',NULL,'w',0),(1125,'Delete supplier proposals','supplier_proposal',1,'supprimer',NULL,'w',0),(1126,'Close supplier price requests','supplier_proposal',1,'cloturer',NULL,'w',0),(1181,'Consulter les fournisseurs','fournisseur',1,'lire',NULL,'r',0),(1182,'Consulter les commandes fournisseur','fournisseur',1,'commande','lire','r',0),(1183,'Creer une commande fournisseur','fournisseur',1,'commande','creer','w',0),(1184,'Valider une commande fournisseur','fournisseur',1,'supplier_order_advance','validate','w',0),(1185,'Approuver une commande fournisseur','fournisseur',1,'commande','approuver','w',0),(1186,'Commander une commande fournisseur','fournisseur',1,'commande','commander','w',0),(1187,'Receptionner une commande fournisseur','fournisseur',1,'commande','receptionner','d',0),(1188,'Supprimer une commande fournisseur','fournisseur',1,'commande','supprimer','d',0),(1189,'Check/Uncheck a supplier order reception','fournisseur',1,'commande_advance','check','w',0),(1201,'Lire les exports','export',1,'lire',NULL,'r',1),(1202,'Creer/modifier un export','export',1,'creer',NULL,'w',0),(1231,'Consulter les factures fournisseur','fournisseur',1,'facture','lire','r',0),(1232,'Creer une facture fournisseur','fournisseur',1,'facture','creer','w',0),(1233,'Valider une facture fournisseur','fournisseur',1,'supplier_invoice_advance','validate','w',0),(1234,'Supprimer une facture fournisseur','fournisseur',1,'facture','supprimer','d',0),(1235,'Envoyer les factures par mail','fournisseur',1,'supplier_invoice_advance','send','a',0),(1236,'Exporter les factures fournisseurs, attributs et reglements','fournisseur',1,'facture','export','r',0),(1237,'Exporter les commande fournisseurs, attributs','fournisseur',1,'commande','export','r',0),(1251,'Run mass imports of external data (data load)','import',1,'run',NULL,'r',0),(1321,'Export customer invoices, attributes and payments','facture',1,'facture','export','r',0),(1321,'Exporter les factures clients, attributs et reglements','facture',2,'facture','export','r',0),(1322,'Re-open a fully paid invoice','facture',1,'invoice_advance','reopen','r',0),(1421,'Exporter les commandes clients et attributs','commande',1,'commande','export','r',0),(2401,'Read actions/tasks linked to his account','agenda',1,'myactions','read','r',0),(2401,'Read actions/tasks linked to his account','agenda',2,'myactions','read','r',1),(2402,'Create/modify actions/tasks linked to his account','agenda',1,'myactions','create','w',0),(2402,'Create/modify actions/tasks linked to his account','agenda',2,'myactions','create','w',0),(2403,'Delete actions/tasks linked to his account','agenda',1,'myactions','delete','w',0),(2403,'Delete actions/tasks linked to his account','agenda',2,'myactions','delete','w',0),(2411,'Read actions/tasks of others','agenda',1,'allactions','read','r',0),(2411,'Read actions/tasks of others','agenda',2,'allactions','read','r',0),(2412,'Create/modify actions/tasks of others','agenda',1,'allactions','create','w',0),(2412,'Create/modify actions/tasks of others','agenda',2,'allactions','create','w',0),(2413,'Delete actions/tasks of others','agenda',1,'allactions','delete','w',0),(2413,'Delete actions/tasks of others','agenda',2,'allactions','delete','w',0),(2414,'Export actions/tasks of others','agenda',1,'export',NULL,'w',0),(2501,'Consulter/Télécharger les documents','ecm',1,'read',NULL,'r',0),(2503,'Soumettre ou supprimer des documents','ecm',1,'upload',NULL,'w',0),(2515,'Administrer les rubriques de documents','ecm',1,'setup',NULL,'w',0),(3200,'Read archived events and fingerprints','blockedlog',1,'read',NULL,'w',0),(20001,'Read your own holidays','holiday',1,'read',NULL,'w',0),(20001,'Créer / Modifier / Lire ses demandes de congés payés','holiday',2,'write',NULL,'w',1),(20002,'Create/modify your own holidays','holiday',1,'write',NULL,'w',0),(20002,'Lire / Modifier toutes les demandes de congés payés','holiday',2,'lire_tous',NULL,'w',0),(20003,'Delete holidays','holiday',1,'delete',NULL,'w',0),(20003,'Supprimer des demandes de congés payés','holiday',2,'delete',NULL,'w',0),(20004,'Read holidays for everybody','holiday',1,'read_all',NULL,'w',0),(20004,'Définir les congés payés des utilisateurs','holiday',2,'define_holiday',NULL,'w',0),(20005,'Create/modify holidays for everybody','holiday',1,'write_all',NULL,'w',0),(20005,'Voir les logs de modification des congés payés','holiday',2,'view_log',NULL,'w',0),(20006,'Setup holidays of users (setup and update balance)','holiday',1,'define_holiday',NULL,'w',0),(20006,'Accéder au rapport mensuel des congés payés','holiday',2,'month_report',NULL,'w',0),(23001,'Read cron jobs','cron',1,'read',NULL,'w',0),(23002,'Create cron Jobs','cron',1,'create',NULL,'w',0),(23003,'Delete cron Jobs','cron',1,'delete',NULL,'w',0),(23004,'Execute cron Jobs','cron',1,'execute',NULL,'w',0),(50101,'Use point of sale','cashdesk',1,'use',NULL,'a',1),(50401,'Bind products and invoices with accounting accounts','accounting',1,'bind','write','r',0),(50411,'Read operations in General Ledger','accounting',1,'mouvements','lire','r',0),(50412,'Write/Edit operations in General Ledger','accounting',1,'mouvements','creer','w',0),(50420,'Report and export reports (turnover, balance, journals, general ledger)','accounting',1,'comptarapport','lire','r',0),(50430,'Define and close a fiscal year','accounting',1,'fiscalyear',NULL,'r',0),(50440,'Manage chart of accounts, setup of accountancy','accounting',1,'chartofaccount',NULL,'r',0),(55001,'Read surveys','opensurvey',1,'read',NULL,'r',0),(55002,'Create/modify surveys','opensurvey',1,'write',NULL,'w',0),(59001,'Visualiser les marges','margins',1,'liretous',NULL,'r',1),(59002,'Définir les marges','margins',1,'creer',NULL,'w',0),(59003,'Read every user margin','margins',1,'read','all','r',0),(63001,'Read resources','resource',1,'read',NULL,'w',1),(63002,'Create/Modify resources','resource',1,'write',NULL,'w',0),(63003,'Delete resources','resource',1,'delete',NULL,'w',0),(63004,'Link resources','resource',1,'link',NULL,'w',0),(64001,'DirectPrint','printing',1,'read',NULL,'r',0),(101250,'Read surveys','opensurvey',2,'survey','read','r',0),(101251,'Create/modify surveys','opensurvey',2,'survey','write','w',0);
    +/*!40000 ALTER TABLE `llx_rights_def` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_sellyoursaas_cancellation`
    +--
    +
    +DROP TABLE IF EXISTS `llx_sellyoursaas_cancellation`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_sellyoursaas_cancellation` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(128) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  `codelang` varchar(8) DEFAULT NULL,
    +  `url` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_sellyoursaas_cancellation_rowid` (`rowid`),
    +  KEY `idx_sellyoursaas_cancellation_ref` (`ref`),
    +  KEY `idx_sellyoursaas_cancellation_entity` (`entity`),
    +  KEY `idx_sellyoursaas_cancellation_status` (`status`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_sellyoursaas_cancellation`
    +--
    +
    +LOCK TABLES `llx_sellyoursaas_cancellation` WRITE;
    +/*!40000 ALTER TABLE `llx_sellyoursaas_cancellation` DISABLE KEYS */;
    +INSERT INTO `llx_sellyoursaas_cancellation` VALUES (2,'fff',1,NULL,'2018-06-02 11:00:44','2018-06-02 09:00:44',12,NULL,NULL,1,NULL,'fff'),(3,'gfdg',1,NULL,'2018-06-02 11:01:20','2018-06-02 09:01:20',12,NULL,NULL,1,'gfd','gfd'),(4,'aaa',1,NULL,'2018-06-02 11:02:40','2018-06-02 09:02:40',12,NULL,NULL,1,NULL,'aaa');
    +/*!40000 ALTER TABLE `llx_sellyoursaas_cancellation` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_sellyoursaas_cancellation_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_sellyoursaas_cancellation_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_sellyoursaas_cancellation_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_sellyoursaas_cancellation_extrafields`
    +--
    +
    +LOCK TABLES `llx_sellyoursaas_cancellation_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_sellyoursaas_cancellation_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_sellyoursaas_cancellation_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `statut` tinyint(4) DEFAULT '0',
    +  `parent` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `nom` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_client` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_fournisseur` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_compta` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_compta_fournisseur` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_departement` int(11) DEFAULT '0',
    +  `fk_pays` int(11) DEFAULT '0',
    +  `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `skype` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_effectif` int(11) DEFAULT '0',
    +  `fk_typent` int(11) DEFAULT '0',
    +  `fk_forme_juridique` int(11) DEFAULT '0',
    +  `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `siren` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `siret` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ape` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `idprof4` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tva_intra` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `capital` double(24,8) DEFAULT NULL,
    +  `fk_stcomm` int(11) NOT NULL DEFAULT '0',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `prefix_comm` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `client` tinyint(4) DEFAULT '0',
    +  `fournisseur` tinyint(4) DEFAULT '0',
    +  `supplier_account` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_prospectlevel` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `customer_bad` tinyint(4) DEFAULT '0',
    +  `customer_rate` double DEFAULT '0',
    +  `supplier_rate` double DEFAULT '0',
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `remise_client` double DEFAULT '0',
    +  `remise_supplier` double DEFAULT '0',
    +  `mode_reglement` tinyint(4) DEFAULT NULL,
    +  `cond_reglement` tinyint(4) DEFAULT NULL,
    +  `mode_reglement_supplier` int(11) DEFAULT NULL,
    +  `outstanding_limit` double(24,8) DEFAULT NULL,
    +  `order_min_amount` double(24,8) DEFAULT NULL,
    +  `supplier_order_min_amount` double(24,8) DEFAULT NULL,
    +  `cond_reglement_supplier` int(11) DEFAULT NULL,
    +  `fk_shipping_method` int(11) DEFAULT NULL,
    +  `tva_assuj` tinyint(4) DEFAULT '1',
    +  `localtax1_assuj` tinyint(4) DEFAULT '0',
    +  `localtax1_value` double(6,3) DEFAULT NULL,
    +  `localtax2_assuj` tinyint(4) DEFAULT '0',
    +  `localtax2_value` double(6,3) DEFAULT NULL,
    +  `barcode` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `price_level` int(11) DEFAULT NULL,
    +  `default_lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` tinyint(4) DEFAULT '1',
    +  `logo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `idprof5` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `idprof6` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_barcode_type` int(11) DEFAULT '0',
    +  `webservices_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `webservices_key` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `name_alias` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_entrepot` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_societe_prefix_comm` (`prefix_comm`,`entity`),
    +  UNIQUE KEY `uk_societe_code_client` (`code_client`,`entity`),
    +  UNIQUE KEY `uk_societe_barcode` (`barcode`,`fk_barcode_type`,`entity`),
    +  UNIQUE KEY `uk_societe_code_fournisseur` (`code_fournisseur`,`entity`),
    +  KEY `idx_societe_user_creat` (`fk_user_creat`),
    +  KEY `idx_societe_user_modif` (`fk_user_modif`),
    +  KEY `idx_societe_barcode` (`barcode`)
    +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe`
    +--
    +
    +LOCK TABLES `llx_societe` WRITE;
    +/*!40000 ALTER TABLE `llx_societe` DISABLE KEYS */;
    +INSERT INTO `llx_societe` VALUES (1,0,NULL,'2016-01-16 15:21:09','2010-07-08 14:21:44','Indian SAS',1,NULL,NULL,'CU1212-0007','SU1212-0005','7050','6050','1 alalah road',NULL,'Delhi',0,117,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,'0','','','','','',5000.00000000,1,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'en_IN',NULL,NULL,1,'indiancompany.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(2,0,NULL,'2016-07-30 11:45:49','2010-07-08 14:23:48','Teclib',1,NULL,NULL,'CU1108-0001','SU1108-0001','411CU11080001','401SU11080001','',NULL,'Paris',0,1,NULL,NULL,'www.teclib.com',NULL,NULL,4,3,57,'0','123456789','','ACE14','','',400000.00000000,0,NULL,NULL,NULL,3,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,'fr_FR',NULL,NULL,1,'teclibcompany.png','','',0,NULL,NULL,'',0,NULL,NULL,0,'',NULL,0),(3,0,NULL,'2017-02-16 00:47:25','2010-07-08 22:42:12','Spanish Comp',1,NULL,NULL,'SPANISHCOMP','SU1601-0009',NULL,NULL,'1 via mallere',NULL,'Madrid',123,4,NULL,NULL,NULL,NULL,NULL,3,4,408,'0','','','','','',10000.00000000,0,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'es_AR',NULL,NULL,1,'spanishcompany.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(4,0,NULL,'2016-01-22 17:24:53','2010-07-08 22:48:18','Prospector Vaalen',1,NULL,NULL,'CU1303-0014',NULL,NULL,NULL,'',NULL,'Bruxelles',103,2,NULL,NULL,NULL,NULL,NULL,3,4,201,'0','12345678','','','','',0.00000000,0,NULL,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'valeencompany.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(5,0,NULL,'2017-02-21 11:01:17','2010-07-08 23:22:57','NoCountry GmBh',1,NULL,NULL,NULL,NULL,NULL,NULL,'',NULL,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,0,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'nocountrycomp.png','','',0,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0),(6,0,NULL,'2016-01-16 15:35:56','2010-07-09 00:15:09','Swiss Touch',1,NULL,NULL,'CU1601-0018','SU1601-0010',NULL,NULL,'',NULL,'Genevia',0,6,NULL,NULL,NULL,'swisstouch@example.ch',NULL,2,2,601,'0','','','','','',56000.00000000,0,NULL,NULL,NULL,3,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'swisstouch.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(7,0,NULL,'2016-01-16 15:38:32','2010-07-09 01:24:26','Generic customer',1,NULL,NULL,'CU1302-0011',NULL,NULL,NULL,'',NULL,NULL,0,7,NULL,NULL,NULL,'ttt@ttt.com',NULL,NULL,8,NULL,'0','','','','','',0.00000000,0,'Generic customer to use for Point Of Sale module.<br />',NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'genericcustomer.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(10,0,NULL,'2016-01-16 15:44:20','2010-07-10 15:13:08','NLTechno',1,NULL,NULL,'CU1212-0005','SU1601-0011',NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,'notanemail@nltechno.com',NULL,1,4,54,'0','493861496','49386149600039','6209Z','22-01-2007','FR123456789',10000.00000000,0,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,'123456789012',NULL,'fr_FR',NULL,NULL,1,'logo_nltechno_94x100.png','','',0,NULL,NULL,'The OpenSource company',0,NULL,NULL,NULL,NULL,NULL,0),(11,0,NULL,'2017-05-12 09:06:31','2010-07-10 18:35:57','Company Corp 1',1,NULL,NULL,'CU1510-0017',NULL,'7051',NULL,'21 Green Hill street','75500','Los Angeles',0,11,'444123456',NULL,'companycorp1.com','companycorp1@example.com','corp1',1,1,NULL,'0','AB1234567','','','','USABS123',10000.00000000,0,NULL,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,'en_US',NULL,NULL,1,'comapnycorp1company.png','','',0,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0),(12,0,NULL,'2016-01-22 16:41:56','2010-07-11 16:18:08','Dupont Alain',1,NULL,NULL,'CU1601-0019',NULL,NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,'dalain@example.com',NULL,NULL,0,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'pierrecurie.jpg','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(13,0,NULL,'2016-01-22 17:13:16','2010-07-11 17:13:20','Company Corp 2',1,NULL,NULL,NULL,'SU1510-0008',NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'companycorp2company.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(17,0,NULL,'2017-02-15 22:55:34','2011-08-01 02:41:26','Book Keeping Company',1,NULL,NULL,'CU1108-0004','SU1108-0004',NULL,'401SU11080004','The French Company',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,1,0,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'bookkeepercompany.png','','',0,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0),(19,0,NULL,'2017-02-21 11:51:40','2013-01-12 12:23:05','Magic Food Store',1,NULL,NULL,'CU1301-0008',NULL,NULL,NULL,'65 holdywood boulevard','123456','BigTown',0,4,NULL,'0101',NULL,'myemail@domain.com',NULL,NULL,0,NULL,'0','','','10/10/2010','','',0.00000000,0,NULL,NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,0.000,NULL,0.000,NULL,NULL,'en_US','patient@cabinetmed',NULL,1,'magicfoodstore.png','','',0,NULL,NULL,'',0,NULL,'sepamandate',NULL,NULL,NULL,0),(25,0,NULL,'2016-01-22 17:21:17','2013-03-10 15:47:37','Print Company',1,NULL,NULL,'CU1303-0016','SU1303-0007',NULL,NULL,'21 Gutenberg street','45600','Berlin',0,5,NULL,NULL,NULL,'printcompany@example.com',NULL,NULL,0,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'de_DE',NULL,NULL,1,'printcompany.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(26,0,NULL,'2017-02-21 00:05:05','2017-02-12 23:17:04','Patient SuperIll',1,NULL,NULL,'CU1702-0020',NULL,'411CU17020020',NULL,'',NULL,NULL,0,14,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'','','','','',NULL,0,NULL,NULL,NULL,3,0,NULL,'',0,0,0,12,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.000,NULL,0.000,NULL,NULL,'en_US','patient@cabinetmed',NULL,1,NULL,'','',0,NULL,NULL,'',0,NULL,NULL,0,'',NULL,0);
    +/*!40000 ALTER TABLE `llx_societe` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_account`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_account`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_account` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `login` varchar(128) NOT NULL,
    +  `pass_encoding` varchar(24) DEFAULT NULL,
    +  `pass_crypted` varchar(128) DEFAULT NULL,
    +  `pass_temp` varchar(128) DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `site` varchar(128) DEFAULT NULL,
    +  `fk_website` int(11) DEFAULT NULL,
    +  `note_private` text,
    +  `date_last_login` datetime DEFAULT NULL,
    +  `date_previous_login` datetime DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `key_account` varchar(128) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_societe_account_login_website_soc` (`entity`,`fk_soc`,`login`,`site`,`fk_website`),
    +  UNIQUE KEY `uk_societe_account_key_account_soc` (`entity`,`fk_soc`,`key_account`,`site`,`fk_website`),
    +  KEY `idx_societe_account_rowid` (`rowid`),
    +  KEY `idx_societe_account_login` (`login`),
    +  KEY `idx_societe_account_status` (`status`),
    +  KEY `idx_societe_account_fk_website` (`fk_website`),
    +  KEY `idx_societe_account_fk_soc` (`fk_soc`),
    +  CONSTRAINT `llx_societe_account_fk_societe` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `llx_societe_account_fk_website` FOREIGN KEY (`fk_website`) REFERENCES `llx_website` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_account`
    +--
    +
    +LOCK TABLES `llx_societe_account` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_account` DISABLE KEYS */;
    +INSERT INTO `llx_societe_account` VALUES (1,1,'','',NULL,NULL,204,'stripe',NULL,NULL,NULL,NULL,'2018-03-13 19:25:01','2018-03-19 09:01:17',12,NULL,NULL,0,''),(4,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 01:04:19','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(5,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 01:08:02','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(6,1,'','',NULL,NULL,145,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 17:09:36','2018-03-14 14:46:15',12,NULL,NULL,0,'cus_CUZzMg8S2T3oEo'),(7,1,'','',NULL,NULL,145,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 17:09:44','2018-03-14 14:46:15',12,NULL,NULL,0,'cus_CUZzMg8S2T3oEo'),(8,1,'','',NULL,NULL,145,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 18:43:23','2018-03-14 14:46:15',12,NULL,NULL,0,'cus_CUZzMg8S2T3oEo'),(9,1,'','',NULL,NULL,145,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 18:46:09','2018-03-14 14:46:15',12,NULL,NULL,0,'cus_CUZzMg8S2T3oEo'),(10,1,'','',NULL,NULL,145,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 18:46:15','2018-03-14 14:46:15',12,NULL,NULL,0,'cus_CUZzMg8S2T3oEo'),(13,1,'',NULL,NULL,NULL,163,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 19:33:19','2018-03-14 15:33:19',0,NULL,NULL,0,'cus_CUam8x0KCoKZlc'),(14,1,'',NULL,NULL,NULL,182,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 19:48:48','2018-03-14 15:48:49',0,NULL,NULL,0,'cus_CUb2Xt4A2p5vMd'),(15,1,'',NULL,NULL,NULL,203,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 19:52:13','2018-03-21 10:43:37',12,NULL,NULL,0,''),(17,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 23:57:42','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(18,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 23:57:47','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(19,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 23:58:13','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(20,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 23:58:19','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(21,1,'',NULL,NULL,NULL,151,'stripe',NULL,NULL,NULL,NULL,'2018-03-16 19:10:29','2018-03-16 15:10:29',12,NULL,NULL,0,'cus_CVKshSj8uuaATf'),(22,1,'','',NULL,NULL,152,'stripe',NULL,NULL,NULL,NULL,'2018-03-16 19:11:15','2018-03-16 15:11:15',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(24,1,'',NULL,NULL,NULL,153,'stripe',NULL,NULL,NULL,NULL,'2018-03-16 20:15:45','2018-03-16 16:15:45',18,NULL,NULL,0,'cus_CVLv9rX4wMouSk'),(25,1,'','',NULL,NULL,155,'stripe',NULL,NULL,NULL,NULL,'2018-03-18 23:55:37','2018-03-18 19:55:37',12,NULL,NULL,0,'cus_CVLLzP90RCWx76'),(26,1,'','',NULL,NULL,155,'stripe',NULL,NULL,NULL,NULL,'2018-03-19 00:01:47','2018-03-18 20:01:47',12,NULL,NULL,1,'cus_CVLLzP90RCWx76'),(27,1,'','',NULL,NULL,204,'stripe',NULL,NULL,NULL,NULL,'2018-03-19 13:01:17','2018-03-19 09:01:17',12,NULL,NULL,0,''),(28,1,'',NULL,NULL,NULL,204,'stripe',NULL,NULL,NULL,NULL,'2018-03-19 13:21:02','2018-03-19 09:21:02',0,NULL,NULL,0,'cus_CWMu7PlGViJN1S'),(29,1,'',NULL,NULL,NULL,1,'stripe',NULL,NULL,NULL,NULL,'2018-03-19 13:38:26','2018-03-19 09:38:26',0,NULL,NULL,0,'cus_CWNCF7mttdVEae'),(30,1,'','',NULL,NULL,203,'stripe',NULL,NULL,NULL,NULL,'2018-03-21 14:43:37','2018-03-21 10:43:37',12,NULL,NULL,0,''),(31,1,'',NULL,NULL,NULL,203,'stripe',NULL,NULL,NULL,NULL,'2018-03-21 14:44:18','2018-03-21 10:44:18',0,NULL,NULL,0,'cus_CX8hWwDQPMht5r'),(32,1,'',NULL,NULL,NULL,211,'stripe',NULL,NULL,NULL,NULL,'2018-04-19 16:20:27','2018-04-19 14:20:27',18,NULL,NULL,0,'cus_Ci3khlxtfYB0Xl'),(33,1,'',NULL,NULL,NULL,7,'stripe',NULL,NULL,NULL,NULL,'2018-04-30 14:57:29','2018-04-30 12:57:29',0,NULL,NULL,0,'cus_Cm9td5UQieFnlZ'),(38,1,'',NULL,NULL,NULL,154,'stripe',NULL,NULL,NULL,NULL,'2018-05-16 17:01:24','2018-05-16 15:01:24',18,NULL,NULL,0,'cus_CsBVSuBeNzmYw9'),(39,1,'','',NULL,NULL,151,'stripe',NULL,NULL,NULL,NULL,'2018-05-17 09:42:37','2018-05-17 07:42:37',12,NULL,NULL,1,'cus_CVKshSj8uuaATf'),(40,1,'',NULL,NULL,NULL,217,'stripe',NULL,NULL,NULL,NULL,'2018-06-01 19:47:16','2018-06-01 17:47:16',18,NULL,NULL,0,'cus_CyDmj3FJD8rYsd'),(41,1,'',NULL,NULL,NULL,218,'stripe',NULL,NULL,NULL,NULL,'2018-06-11 11:34:38','2018-06-11 09:34:38',12,NULL,NULL,0,'cus_D1q6IoIUoG7LMq'),(42,1,'',NULL,NULL,NULL,10,'stripe',NULL,NULL,NULL,NULL,'2018-06-12 13:49:51','2018-06-12 11:49:51',0,NULL,NULL,0,'cus_D2FVgMTgsYjt6k'),(44,1,'',NULL,NULL,NULL,215,'stripe',NULL,NULL,NULL,NULL,'2018-06-15 16:01:07','2018-06-15 14:01:07',18,NULL,NULL,0,'cus_D3PIZ5HzIeMj7B'),(45,1,'',NULL,NULL,NULL,229,'stripe',NULL,NULL,NULL,NULL,'2018-06-27 01:40:40','2018-06-26 23:40:40',18,NULL,NULL,0,'cus_D7g8Bvgx0AFfha'),(46,1,'',NULL,NULL,NULL,156,'stripe',NULL,NULL,NULL,NULL,'2018-07-17 14:13:48','2018-07-17 12:13:48',18,NULL,NULL,0,'cus_DFMnr5WsUoaCJX'),(47,1,'',NULL,NULL,NULL,231,'stripe',NULL,NULL,NULL,NULL,'2018-07-17 17:46:42','2018-07-17 15:46:42',18,NULL,NULL,0,'cus_DFQEkv3jONVJwR'),(48,1,'',NULL,NULL,NULL,250,'stripe',NULL,NULL,NULL,NULL,'2018-09-17 09:27:23','2018-09-17 07:27:23',18,NULL,NULL,0,'cus_DcWBnburaSkf0c'),(49,1,'',NULL,NULL,NULL,11,'stripe',NULL,NULL,NULL,NULL,'2018-10-12 20:08:01','2018-10-12 18:08:01',0,NULL,NULL,0,'cus_Dm39EV1tf8CRBT'),(50,1,'',NULL,NULL,NULL,214,'stripe',NULL,NULL,NULL,NULL,'2018-10-12 20:57:17','2018-10-12 18:57:17',18,NULL,NULL,0,'cus_Dm3wMg8aMLoRC9'),(51,1,'',NULL,NULL,NULL,213,'stripe',NULL,NULL,NULL,NULL,'2018-10-12 20:59:41','2018-10-12 18:59:41',18,NULL,NULL,0,'cus_Dm3zHwLuFKePzk');
    +/*!40000 ALTER TABLE `llx_societe_account` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_address`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_address`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_address` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT '0',
    +  `name` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_pays` int(11) DEFAULT '0',
    +  `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_address`
    +--
    +
    +LOCK TABLES `llx_societe_address` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_address` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_societe_address` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_commerciaux`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_commerciaux`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_commerciaux` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_societe_commerciaux` (`fk_soc`,`fk_user`)
    +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_commerciaux`
    +--
    +
    +LOCK TABLES `llx_societe_commerciaux` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_commerciaux` DISABLE KEYS */;
    +INSERT INTO `llx_societe_commerciaux` VALUES (1,2,2,NULL),(2,3,2,NULL),(5,17,1,NULL),(6,19,1,NULL),(8,19,3,NULL),(9,11,16,NULL),(10,13,17,NULL),(11,26,12,NULL);
    +/*!40000 ALTER TABLE `llx_societe_commerciaux` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_societe_extrafields` (`fk_object`)
    +) ENGINE=InnoDB AUTO_INCREMENT=98 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_extrafields`
    +--
    +
    +LOCK TABLES `llx_societe_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_extrafields` DISABLE KEYS */;
    +INSERT INTO `llx_societe_extrafields` VALUES (75,'2016-01-22 16:40:03',10,NULL),(77,'2016-01-22 16:41:56',12,NULL),(79,'2016-01-22 17:13:16',13,NULL),(81,'2016-01-22 17:18:08',19,NULL),(82,'2016-01-22 17:21:17',25,NULL),(83,'2016-01-22 17:21:51',1,NULL),(85,'2016-01-22 17:22:32',3,NULL),(86,'2016-01-22 17:24:53',4,NULL),(88,'2016-01-22 17:25:26',6,NULL),(89,'2016-01-22 17:25:41',7,NULL),(92,'2016-07-30 11:45:49',2,NULL),(94,'2017-02-15 22:55:34',17,NULL),(95,'2017-02-21 00:05:05',26,NULL),(96,'2017-02-21 11:01:17',5,NULL),(97,'2017-05-12 09:06:31',11,NULL);
    +/*!40000 ALTER TABLE `llx_societe_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_log`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_log`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_log` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `datel` datetime DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_statut` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `author` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_log`
    +--
    +
    +LOCK TABLES `llx_societe_log` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_log` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_societe_log` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_prices`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_prices`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_prices` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_soc` int(11) DEFAULT '0',
    +  `tms` timestamp NULL DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `price_level` tinyint(4) DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_prices`
    +--
    +
    +LOCK TABLES `llx_societe_prices` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_prices` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_societe_prices` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_remise`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_remise`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_remise` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_soc` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `remise_client` double(6,3) NOT NULL DEFAULT '0.000',
    +  `note` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_remise`
    +--
    +
    +LOCK TABLES `llx_societe_remise` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_remise` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_societe_remise` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_remise_except`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_remise_except`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_remise_except` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_soc` int(11) NOT NULL,
    +  `discount_type` int(11) NOT NULL DEFAULT '0',
    +  `datec` datetime DEFAULT NULL,
    +  `amount_ht` double(24,8) NOT NULL,
    +  `amount_tva` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `amount_ttc` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `tva_tx` double(6,3) NOT NULL DEFAULT '0.000',
    +  `fk_user` int(11) NOT NULL,
    +  `fk_facture_line` int(11) DEFAULT NULL,
    +  `fk_facture` int(11) DEFAULT NULL,
    +  `fk_facture_source` int(11) DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci NOT NULL,
    +  `multicurrency_amount_ht` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `multicurrency_amount_tva` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `multicurrency_amount_ttc` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `fk_invoice_supplier_line` int(11) DEFAULT NULL,
    +  `fk_invoice_supplier` int(11) DEFAULT NULL,
    +  `fk_invoice_supplier_source` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_societe_remise_except_fk_user` (`fk_user`),
    +  KEY `idx_societe_remise_except_fk_soc` (`fk_soc`),
    +  KEY `idx_societe_remise_except_fk_facture_line` (`fk_facture_line`),
    +  KEY `idx_societe_remise_except_fk_facture` (`fk_facture`),
    +  KEY `idx_societe_remise_except_fk_facture_source` (`fk_facture_source`),
    +  KEY `fk_soc_remise_fk_invoice_supplier_line` (`fk_invoice_supplier_line`),
    +  KEY `fk_societe_remise_fk_invoice_supplier_source` (`fk_invoice_supplier`),
    +  KEY `idx_societe_remise_except_discount_type` (`discount_type`),
    +  CONSTRAINT `fk_soc_remise_fk_facture_line` FOREIGN KEY (`fk_facture_line`) REFERENCES `llx_facturedet` (`rowid`),
    +  CONSTRAINT `fk_soc_remise_fk_invoice_supplier_line` FOREIGN KEY (`fk_invoice_supplier_line`) REFERENCES `llx_facture_fourn_det` (`rowid`),
    +  CONSTRAINT `fk_soc_remise_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_facture` FOREIGN KEY (`fk_facture`) REFERENCES `llx_facture` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_facture_line` FOREIGN KEY (`fk_facture_line`) REFERENCES `llx_facturedet` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_facture_source` FOREIGN KEY (`fk_facture_source`) REFERENCES `llx_facture` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_invoice_supplier` FOREIGN KEY (`fk_invoice_supplier`) REFERENCES `llx_facture_fourn` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_invoice_supplier_source` FOREIGN KEY (`fk_invoice_supplier`) REFERENCES `llx_facture_fourn` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_remise_except`
    +--
    +
    +LOCK TABLES `llx_societe_remise_except` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_remise_except` DISABLE KEYS */;
    +INSERT INTO `llx_societe_remise_except` VALUES (2,1,19,0,'2013-03-19 09:36:15',10.00000000,1.25000000,11.25000000,12.500,1,NULL,NULL,NULL,'hfghgf',0.00000000,0.00000000,0.00000000,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_societe_remise_except` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_remise_supplier`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_remise_supplier`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_remise_supplier` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_soc` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `remise_supplier` double(6,3) NOT NULL DEFAULT '0.000',
    +  `note` text,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_remise_supplier`
    +--
    +
    +LOCK TABLES `llx_societe_remise_supplier` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_remise_supplier` DISABLE KEYS */;
    +INSERT INTO `llx_societe_remise_supplier` VALUES (1,1,1,'2018-04-06 18:21:00','2018-04-06 20:21:00',12,6.000,'llll');
    +/*!40000 ALTER TABLE `llx_societe_remise_supplier` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_rib`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_rib`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_rib` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `type` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bank` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bic` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `iban_prefix` varchar(34) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `domiciliation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `proprio` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `owner_address` text COLLATE utf8_unicode_ci,
    +  `default_rib` tinyint(4) NOT NULL DEFAULT '0',
    +  `rum` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_rum` date DEFAULT NULL,
    +  `frstrecur` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'FRST',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `last_four` varchar(4) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `card_type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cvn` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `exp_date_month` int(11) DEFAULT NULL,
    +  `exp_date_year` int(11) DEFAULT NULL,
    +  `country_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `approved` int(11) DEFAULT '0',
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ending_date` date DEFAULT NULL,
    +  `max_total_amount_of_all_payments` double(24,8) DEFAULT NULL,
    +  `preapproval_key` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `starting_date` date DEFAULT NULL,
    +  `total_amount_of_all_payments` double(24,8) DEFAULT NULL,
    +  `stripe_card_ref` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_rib`
    +--
    +
    +LOCK TABLES `llx_societe_rib` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_rib` DISABLE KEYS */;
    +INSERT INTO `llx_societe_rib` VALUES (1,'ban',19,'2017-02-21 15:50:32','2017-02-21 11:53:08','Morgan Bank','Morgan Bank','','','','','PSPBFIHH','ES80 2310 0001 1800 0001 2345','Royal via,\r\nMadrid','Mr Esposito','10 via ferrata,\r\nMadrid',1,'RUM1301-0008-0',NULL,'FRST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_societe_rib` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_rib2`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_rib2`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_rib2` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `type` varchar(32) DEFAULT 'ban',
    +  `label` varchar(30) DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `bank` varchar(255) DEFAULT NULL,
    +  `code_banque` varchar(128) DEFAULT NULL,
    +  `code_guichet` varchar(6) DEFAULT NULL,
    +  `number` varchar(255) DEFAULT NULL,
    +  `cle_rib` varchar(5) DEFAULT NULL,
    +  `bic` varchar(20) DEFAULT NULL,
    +  `iban_prefix` varchar(34) DEFAULT NULL,
    +  `domiciliation` varchar(255) DEFAULT NULL,
    +  `proprio` varchar(60) DEFAULT NULL,
    +  `owner_address` varchar(255) DEFAULT NULL,
    +  `default_rib` smallint(6) NOT NULL DEFAULT '0',
    +  `rum` varchar(32) DEFAULT NULL,
    +  `date_rum` date DEFAULT NULL,
    +  `frstrecur` varchar(16) DEFAULT 'FRST',
    +  `last_four` varchar(4) DEFAULT NULL,
    +  `card_type` varchar(255) DEFAULT NULL,
    +  `cvn` varchar(255) DEFAULT NULL,
    +  `exp_date_month` int(11) DEFAULT NULL,
    +  `exp_date_year` int(11) DEFAULT NULL,
    +  `country_code` varchar(10) DEFAULT NULL,
    +  `approved` int(11) DEFAULT '0',
    +  `email` varchar(255) DEFAULT NULL,
    +  `ending_date` date DEFAULT NULL,
    +  `max_total_amount_of_all_payments` double(24,8) DEFAULT NULL,
    +  `preapproval_key` varchar(255) DEFAULT NULL,
    +  `starting_date` date DEFAULT NULL,
    +  `total_amount_of_all_payments` double(24,8) DEFAULT NULL,
    +  `stripe_card_ref` varchar(128) DEFAULT NULL,
    +  `status` int(11) NOT NULL DEFAULT '1',
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_rib2`
    +--
    +
    +LOCK TABLES `llx_societe_rib2` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_rib2` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_societe_rib2` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_socpeople`
    +--
    +
    +DROP TABLE IF EXISTS `llx_socpeople`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_socpeople` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `civility` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` text COLLATE utf8_unicode_ci,
    +  `fk_departement` int(11) DEFAULT NULL,
    +  `fk_pays` int(11) DEFAULT '0',
    +  `birthday` date DEFAULT NULL,
    +  `poste` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone_perso` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone_mobile` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fax` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `jabberid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `skype` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `photo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `priv` smallint(6) NOT NULL DEFAULT '0',
    +  `no_email` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_creat` int(11) DEFAULT '0',
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `default_lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `statut` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_socpeople_fk_soc` (`fk_soc`),
    +  KEY `idx_socpeople_fk_user_creat` (`fk_user_creat`),
    +  CONSTRAINT `fk_socpeople_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_socpeople_user_creat_user_rowid` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_socpeople`
    +--
    +
    +LOCK TABLES `llx_socpeople` WRITE;
    +/*!40000 ALTER TABLE `llx_socpeople` DISABLE KEYS */;
    +INSERT INTO `llx_socpeople` VALUES (1,'2010-07-08 14:26:14','2016-01-16 15:07:51',1,1,NULL,'MR','Indra','Mahala','','','',297,117,'2010-07-08','Project leader','','','','','','','',NULL,0,0,1,12,'Met during a congress at Dubai','',NULL,NULL,NULL,1),(2,'2010-07-08 22:44:50','2010-07-08 20:59:57',NULL,1,NULL,'MR','Freeman','Public','','','',200,11,NULL,'','','','','','','',NULL,NULL,0,0,1,1,'A friend that is a free contact not linked to any company',NULL,NULL,NULL,NULL,1),(3,'2010-07-08 22:59:02','2016-01-22 17:30:07',NULL,1,NULL,'MR','Mywife','Nicy','','','',NULL,11,'1980-10-03','','','','','','','','',NULL,1,0,1,12,'This is a private contact','',NULL,NULL,NULL,1),(4,'2010-07-09 00:16:58','2010-07-08 22:16:58',6,1,NULL,'MR','Rotchield','Evan','','','',NULL,6,NULL,'Bank director','','','','','','',NULL,NULL,0,0,1,1,'The bank director',NULL,NULL,NULL,NULL,1),(6,'2011-08-01 02:41:26','2016-01-22 17:29:53',17,1,NULL,'','Bookkeeper','Bob','99 account street','123456','BigTown',NULL,4,NULL,'book keeper','','','','','','','',NULL,0,0,1,12,'','',NULL,NULL,NULL,1),(7,'2016-07-30 16:11:06','2016-07-30 12:16:07',NULL,1,'','MR','Dad','','','','',NULL,14,'1967-09-04','','','','','','','','','',1,0,12,12,'','',NULL,NULL,NULL,1),(8,'2016-07-30 16:13:03','2016-07-30 12:15:58',NULL,1,'','MLE','Mom','','','','',NULL,14,NULL,'','','','','','','','','',1,0,12,12,'','',NULL,NULL,NULL,1),(9,'2016-07-30 16:14:41','2016-07-30 12:15:51',NULL,1,'','MR','Francky','','','89455','Virigia',NULL,205,'1980-07-09','Baker','555-98989898','','','','francky@example.com','','','',0,0,12,12,'','',NULL,NULL,NULL,1),(10,'2016-07-30 16:26:22','2016-07-30 12:52:38',10,1,'','MR','Eldy','','','33600','Pessac',NULL,1,'1972-10-10','Dolibarr project leader','','','','','eldy@example.com','','','ldestailleur_200x200.jpg',0,0,NULL,12,'','',NULL,NULL,NULL,1),(11,'2017-05-12 13:16:36','2017-05-12 09:18:20',11,1,'','MR','Smith','Laurent','45 Big road','897','Seattle',NULL,11,NULL,'Director','','','','','','','','ldestailleur_200x200.png',0,0,12,12,'','',NULL,NULL,NULL,1),(12,'2017-05-12 13:19:31','2017-05-12 09:19:42',11,1,'','MR','Einstein','','','','',NULL,11,NULL,'Genius','333444555','','','','genius@example.com','','','Einstein.jpg',0,0,12,12,'','',NULL,NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_socpeople` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_socpeople_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_socpeople_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_socpeople_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_socpeople_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_socpeople_extrafields`
    +--
    +
    +LOCK TABLES `llx_socpeople_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_socpeople_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_socpeople_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_stock_lotserial`
    +--
    +
    +DROP TABLE IF EXISTS `llx_stock_lotserial`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_stock_lotserial` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `eatby` date DEFAULT NULL,
    +  `sellby` date DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_stock_lotserial`
    +--
    +
    +LOCK TABLES `llx_stock_lotserial` WRITE;
    +/*!40000 ALTER TABLE `llx_stock_lotserial` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_stock_lotserial` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_stock_mouvement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_stock_mouvement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_stock_mouvement` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datem` datetime DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_entrepot` int(11) NOT NULL,
    +  `value` double DEFAULT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `type_mouvement` smallint(6) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_origin` int(11) DEFAULT NULL,
    +  `origintype` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `inventorycode` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `eatby` date DEFAULT NULL,
    +  `sellby` date DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_stock_mouvement_fk_product` (`fk_product`),
    +  KEY `idx_stock_mouvement_fk_entrepot` (`fk_entrepot`)
    +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_stock_mouvement`
    +--
    +
    +LOCK TABLES `llx_stock_mouvement` WRITE;
    +/*!40000 ALTER TABLE `llx_stock_mouvement` DISABLE KEYS */;
    +INSERT INTO `llx_stock_mouvement` VALUES (1,'2010-07-08 22:43:51','2010-07-09 00:43:51',2,2,1000,0.00000000,0,1,'Correct stock',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'2010-07-10 22:56:18','2010-07-11 00:56:18',4,2,500,0.00000000,0,1,'Init',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,'2010-07-10 23:02:20','2010-07-11 01:02:20',4,2,500,0.00000000,0,1,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(5,'2010-07-11 16:49:44','2010-07-11 18:49:44',4,1,2,10.00000000,3,1,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(6,'2010-07-11 16:49:44','2010-07-11 18:49:44',1,1,4,0.00000000,3,1,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(7,'2013-01-19 17:22:48','2013-01-19 18:22:48',11,1,-1,0.00000000,2,1,'Facture cr&eacute;&eacute;e dans DoliPOS',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(8,'2013-01-19 17:22:48','2013-01-19 18:22:48',4,1,-1,5.00000000,2,1,'Facture cr&eacute;&eacute;e dans DoliPOS',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(9,'2013-01-19 17:22:48','2013-01-19 18:22:48',1,1,-2,0.00000000,2,1,'Facture cr&eacute;&eacute;e dans DoliPOS',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(10,'2013-01-19 17:31:10','2013-01-19 18:31:10',2,1,-1,0.00000000,2,1,'Facture cr&eacute;&eacute;e dans DoliPOS',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(11,'2013-01-19 17:31:58','2013-01-19 18:31:58',2,1,-1,0.00000000,2,1,'Facture cr&eacute;&eacute;e dans DoliPOS',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(12,'2016-07-30 13:39:31','2016-07-30 17:39:31',10,2,50,0.00000000,0,12,'Stock correction for product COMP-XP4523',0,'',NULL,NULL,'5599887766452',NULL,NULL),(13,'2016-07-30 13:40:12','2016-07-30 17:40:12',10,2,60,0.00000000,0,12,'Stock correction for product COMP-XP4523',0,'',NULL,NULL,'4494487766452',NULL,NULL),(14,'2016-07-30 13:40:39','2016-07-30 17:40:39',10,2,-35,0.00000000,1,12,'Stock transfer of product COMP-XP4523 into another warehouse',0,'',NULL,'160730174015','5599887766452',NULL,NULL),(15,'2016-07-30 13:40:39','2016-07-30 17:40:39',10,1,35,0.00000000,0,12,'Stock transfer of product COMP-XP4523 into another warehouse',0,'',NULL,'160730174015','5599887766452',NULL,NULL),(16,'2017-02-15 23:58:08','2017-02-16 03:58:08',10,1,-1,100.00000000,2,12,'Exp&eacute;dition SH1702-0002 valid&eacute;e',3,'shipping',NULL,NULL,'5599887766452',NULL,NULL),(17,'2017-02-16 00:12:09','2017-02-16 04:12:09',10,1,1,0.00000000,3,12,'Exp&eacute;dition SH1702-0002 supprim&eacute;e',0,'',NULL,NULL,'5599887766452',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_stock_mouvement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_submitew_message`
    +--
    +
    +DROP TABLE IF EXISTS `llx_submitew_message`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_submitew_message` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `statut` smallint(6) DEFAULT '0',
    +  `label` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `title` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `body_short` text COLLATE utf8_unicode_ci,
    +  `body_long` text COLLATE utf8_unicode_ci,
    +  `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cible` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `nbemail` int(11) DEFAULT NULL,
    +  `email_from` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_replyto` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_errorsto` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tag` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creat` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_appro` datetime DEFAULT NULL,
    +  `date_envoi` datetime DEFAULT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_appro` int(11) DEFAULT NULL,
    +  `joined_file1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file3` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file4` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_submitew_message`
    +--
    +
    +LOCK TABLES `llx_submitew_message` WRITE;
    +/*!40000 ALTER TABLE `llx_submitew_message` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_submitew_message` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_submitew_targets`
    +--
    +
    +DROP TABLE IF EXISTS `llx_submitew_targets`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_submitew_targets` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `targetcode` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `langcode` varchar(5) COLLATE utf8_unicode_ci DEFAULT 'en_US',
    +  `url` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `login` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `comment` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) DEFAULT '0',
    +  `titlelength` int(11) DEFAULT '32',
    +  `descshortlength` int(11) DEFAULT '256',
    +  `desclonglength` int(11) DEFAULT '2000',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_submitewtargets` (`label`,`langcode`)
    +) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_submitew_targets`
    +--
    +
    +LOCK TABLES `llx_submitew_targets` WRITE;
    +/*!40000 ALTER TABLE `llx_submitew_targets` DISABLE KEYS */;
    +INSERT INTO `llx_submitew_targets` VALUES (17,'hhho','email','fr_FR','',NULL,NULL,NULL,0,0,-1,0),(34,'pppp','facebook','fr_FR',NULL,'eldy','ld101010-fk',NULL,0,-1,-1,-1),(35,'hfghfgh','web','de_DE','http://wwww','ffffmmm','null',NULL,0,-1,-1,-1),(37,'llll','linkedin','fr_FR','',NULL,NULL,NULL,0,32,256,2000),(55,'fff','dig','fr_FR',NULL,'hfgh','hfghgf',NULL,0,-1,-1,-1),(56,'aaaaaaa','linkedin','da_DK',NULL,'aa','aaa',NULL,0,32,256,2000),(57,'ddd','dig','en_US',NULL,'dd',NULL,NULL,0,32,256,2000),(59,'dddff','dig','en_US',NULL,NULL,NULL,NULL,0,32,256,2000),(68,'dddffe','dig','en_US',NULL,NULL,NULL,NULL,0,32,256,2000),(70,'dddffef','dig','en_US','http://www.dig.com',NULL,NULL,NULL,0,32,256,2000),(71,'ffff','dig','en_US','http://www.dig.com',NULL,NULL,NULL,0,32,256,2000);
    +/*!40000 ALTER TABLE `llx_submitew_targets` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_submitew_targets_params`
    +--
    +
    +DROP TABLE IF EXISTS `llx_submitew_targets_params`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_submitew_targets_params` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_target` int(11) NOT NULL,
    +  `paramkey` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `paramvalue` varchar(128) COLLATE utf8_unicode_ci DEFAULT '',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_submitewtargets_fk_target` (`fk_target`),
    +  UNIQUE KEY `uk_submitewtargets_params` (`fk_target`,`paramkey`,`paramvalue`),
    +  CONSTRAINT `fk_submitewtargets_fk_target` FOREIGN KEY (`fk_target`) REFERENCES `llx_submitew_targets` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_submitew_targets_params`
    +--
    +
    +LOCK TABLES `llx_submitew_targets_params` WRITE;
    +/*!40000 ALTER TABLE `llx_submitew_targets_params` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_submitew_targets_params` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_subscription`
    +--
    +
    +DROP TABLE IF EXISTS `llx_subscription`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_subscription` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_adherent` int(11) DEFAULT NULL,
    +  `dateadh` datetime DEFAULT NULL,
    +  `datef` date DEFAULT NULL,
    +  `subscription` double(24,8) DEFAULT NULL,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_subscription` (`fk_adherent`,`dateadh`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_subscription`
    +--
    +
    +LOCK TABLES `llx_subscription` WRITE;
    +/*!40000 ALTER TABLE `llx_subscription` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_subscription` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_supplier_proposal`
    +--
    +
    +DROP TABLE IF EXISTS `llx_supplier_proposal`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_supplier_proposal` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_cloture` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_cloture` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `price` double DEFAULT '0',
    +  `remise_percent` double DEFAULT '0',
    +  `remise_absolue` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total` double(24,8) DEFAULT '0.00000000',
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_cond_reglement` int(11) DEFAULT NULL,
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_livraison` date DEFAULT NULL,
    +  `fk_shipping_method` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_supplier_proposal`
    +--
    +
    +LOCK TABLES `llx_supplier_proposal` WRITE;
    +/*!40000 ALTER TABLE `llx_supplier_proposal` DISABLE KEYS */;
    +INSERT INTO `llx_supplier_proposal` VALUES (2,'(PROV2)',1,NULL,NULL,10,NULL,'2017-02-17 00:40:50','2017-02-17 04:40:14',NULL,NULL,12,NULL,NULL,NULL,0,0,NULL,NULL,0,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,NULL,NULL,2,7,'','','aurore','2017-02-17',1,NULL,NULL,1,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_supplier_proposal` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_supplier_proposal_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_supplier_proposal_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_supplier_proposal_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_supplier_proposal_extrafields`
    +--
    +
    +LOCK TABLES `llx_supplier_proposal_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_supplier_proposal_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_supplier_proposal_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_supplier_proposaldet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_supplier_proposaldet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_supplier_proposaldet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_supplier_proposal` int(11) NOT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_remise_except` int(11) DEFAULT NULL,
    +  `tva_tx` double(6,3) DEFAULT '0.000',
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `price` double DEFAULT NULL,
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `product_type` int(11) DEFAULT '0',
    +  `info_bits` int(11) DEFAULT '0',
    +  `buy_price_ht` double(24,8) DEFAULT '0.00000000',
    +  `fk_product_fournisseur_price` int(11) DEFAULT NULL,
    +  `special_code` int(11) DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `ref_fourn` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_unit` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_supplier_proposaldet_fk_supplier_proposal` (`fk_supplier_proposal`),
    +  KEY `idx_supplier_proposaldet_fk_product` (`fk_product`),
    +  KEY `fk_supplier_proposaldet_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_supplier_proposaldet_fk_supplier_proposal` FOREIGN KEY (`fk_supplier_proposal`) REFERENCES `llx_supplier_proposal` (`rowid`),
    +  CONSTRAINT `fk_supplier_proposaldet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_supplier_proposaldet`
    +--
    +
    +LOCK TABLES `llx_supplier_proposaldet` WRITE;
    +/*!40000 ALTER TABLE `llx_supplier_proposaldet` DISABLE KEYS */;
    +INSERT INTO `llx_supplier_proposaldet` VALUES (2,2,NULL,NULL,NULL,'A powerfull computer with 8Gb memory.',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,200.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,0,0.00000000,NULL,0,1,'',1,'EUR',200.00000000,200.00000000,0.00000000,200.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_supplier_proposaldet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_supplier_proposaldet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_supplier_proposaldet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_supplier_proposaldet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_supplier_proposaldet_extrafields`
    +--
    +
    +LOCK TABLES `llx_supplier_proposaldet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_supplier_proposaldet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_supplier_proposaldet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_takepos_floor_tables`
    +--
    +
    +DROP TABLE IF EXISTS `llx_takepos_floor_tables`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_takepos_floor_tables` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) DEFAULT NULL,
    +  `leftpos` float DEFAULT NULL,
    +  `toppos` float DEFAULT NULL,
    +  `floor` int(3) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_takepos_floor_tables`
    +--
    +
    +LOCK TABLES `llx_takepos_floor_tables` WRITE;
    +/*!40000 ALTER TABLE `llx_takepos_floor_tables` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_takepos_floor_tables` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ticket`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ticket`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ticket` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `ref` varchar(128) NOT NULL,
    +  `track_id` varchar(128) NOT NULL,
    +  `fk_soc` int(11) DEFAULT '0',
    +  `fk_project` int(11) DEFAULT '0',
    +  `origin_email` varchar(128) DEFAULT NULL,
    +  `fk_user_create` int(11) DEFAULT NULL,
    +  `fk_user_assign` int(11) DEFAULT NULL,
    +  `subject` varchar(255) DEFAULT NULL,
    +  `message` text,
    +  `fk_statut` int(11) DEFAULT NULL,
    +  `resolution` int(11) DEFAULT NULL,
    +  `progress` varchar(100) DEFAULT NULL,
    +  `timing` varchar(20) DEFAULT NULL,
    +  `type_code` varchar(32) DEFAULT NULL,
    +  `category_code` varchar(32) DEFAULT NULL,
    +  `severity_code` varchar(32) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `date_read` datetime DEFAULT NULL,
    +  `date_close` datetime DEFAULT NULL,
    +  `notify_tiers_at_create` tinyint(4) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_ticket_track_id` (`track_id`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ticket`
    +--
    +
    +LOCK TABLES `llx_ticket` WRITE;
    +/*!40000 ALTER TABLE `llx_ticket` DISABLE KEYS */;
    +INSERT INTO `llx_ticket` VALUES (1,1,'aaa','d42iybp7p6d1cvqi',248,12,NULL,12,NULL,'aaa','aaa',1,NULL,'0',NULL,'COM','OTHER','NORMAL','2018-06-04 21:36:42','2018-10-01 03:20:18',NULL,0,'2018-10-01 01:20:18');
    +/*!40000 ALTER TABLE `llx_ticket` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ticket_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ticket_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ticket_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `aaa` int(10) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ticket_extrafields`
    +--
    +
    +LOCK TABLES `llx_ticket_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_ticket_extrafields` DISABLE KEYS */;
    +INSERT INTO `llx_ticket_extrafields` VALUES (1,'2018-06-04 19:36:42',1,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_ticket_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ticket_logs`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ticket_logs`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ticket_logs` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `fk_track_id` varchar(128) DEFAULT NULL,
    +  `fk_user_create` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `message` text,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_ticket_logs_fk_track_id` (`fk_track_id`),
    +  CONSTRAINT `fk_ticket_logs_fk_track_id` FOREIGN KEY (`fk_track_id`) REFERENCES `llx_ticket` (`track_id`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ticket_logs`
    +--
    +
    +LOCK TABLES `llx_ticket_logs` WRITE;
    +/*!40000 ALTER TABLE `llx_ticket_logs` DISABLE KEYS */;
    +INSERT INTO `llx_ticket_logs` VALUES (1,1,'d42iybp7p6d1cvqi',12,'2018-10-01 03:20:18','Ticket read by Alice Adminson');
    +/*!40000 ALTER TABLE `llx_ticket_logs` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ticket_msg`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ticket_msg`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ticket_msg` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `fk_track_id` varchar(128) DEFAULT NULL,
    +  `fk_user_action` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `message` text,
    +  `private` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_ticket_msg_fk_track_id` (`fk_track_id`),
    +  CONSTRAINT `fk_ticket_msg_fk_track_id` FOREIGN KEY (`fk_track_id`) REFERENCES `llx_ticket` (`track_id`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ticket_msg`
    +--
    +
    +LOCK TABLES `llx_ticket_msg` WRITE;
    +/*!40000 ALTER TABLE `llx_ticket_msg` DISABLE KEYS */;
    +INSERT INTO `llx_ticket_msg` VALUES (1,1,'d42iybp7p6d1cvqi',12,'2018-10-01 03:18:19','gdfgdf',0),(2,1,'d42iybp7p6d1cvqi',12,'2018-10-01 03:18:30','gdf',0);
    +/*!40000 ALTER TABLE `llx_ticket_msg` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ticketsup`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ticketsup`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ticketsup` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `ref` varchar(128) NOT NULL,
    +  `track_id` varchar(128) NOT NULL,
    +  `fk_soc` int(11) DEFAULT '0',
    +  `fk_project` int(11) DEFAULT '0',
    +  `origin_email` varchar(128) DEFAULT NULL,
    +  `fk_user_create` int(11) DEFAULT NULL,
    +  `fk_user_assign` int(11) DEFAULT NULL,
    +  `subject` varchar(255) DEFAULT NULL,
    +  `message` text,
    +  `fk_statut` int(11) DEFAULT NULL,
    +  `resolution` int(11) DEFAULT NULL,
    +  `progress` varchar(100) DEFAULT NULL,
    +  `timing` varchar(20) DEFAULT NULL,
    +  `type_code` varchar(32) DEFAULT NULL,
    +  `category_code` varchar(32) DEFAULT NULL,
    +  `severity_code` varchar(32) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `date_read` datetime DEFAULT NULL,
    +  `date_close` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `notify_tiers_at_create` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_ticketsup_track_id` (`track_id`),
    +  KEY `id_ticketsup_track_id` (`track_id`)
    +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ticketsup`
    +--
    +
    +LOCK TABLES `llx_ticketsup` WRITE;
    +/*!40000 ALTER TABLE `llx_ticketsup` DISABLE KEYS */;
    +INSERT INTO `llx_ticketsup` VALUES (16,1,'TS1803-0001','bmhki5neaa7bszvy',64,12,NULL,12,11,'hfghfgbvcbcv','hgfhfghf<br />\r\ngdgdgdhghfghf',3,NULL,'100','NORMAL','COM','OTHER','NORMAL','2018-03-13 15:19:47','2018-03-18 21:55:12','2018-04-10 18:00:15','2018-05-01 10:32:20',1),(17,1,'TS1803-0002','ltvd8zthmu5b7v42',148,NULL,NULL,12,NULL,'hfghf','jghjhg',6,NULL,'0',NULL,'COM','OTHER','NORMAL','2018-03-16 13:30:33','2018-03-18 22:00:39',NULL,'2018-03-18 18:27:03',1),(20,1,'TS1803-0005','o9997psaapahwrxi',NULL,NULL,NULL,12,NULL,'khjkhj','mmmmm',1,NULL,'0',NULL,'COM','OTHER','NORMAL','2018-03-18 22:55:56','2018-03-19 14:57:36',NULL,'2018-03-19 10:57:36',0),(21,1,'TS1803-0006','hh2ludsvj32lp8sq',NULL,NULL,NULL,12,NULL,'gdfg','gdfgfd',0,NULL,'0',NULL,'COM','OTHER','NORMAL','2018-03-18 22:56:20',NULL,NULL,'2018-03-18 18:56:20',1),(22,1,'TS1803-0007','4e8iy89hes9a5w8d',NULL,NULL,NULL,12,NULL,'ffffffff','fsdf',0,NULL,'0','NORMAL','COM','OTHER','NORMAL','2018-03-18 23:00:41',NULL,NULL,'2018-04-12 19:41:47',1),(23,1,'TS1804-0008','jbm8vxsqw19817fm',79,NULL,'aaa@aaa.com',NULL,NULL,'ssss','mmm',0,NULL,'0',NULL,'COM','OTHER','NORMAL','2018-04-12 23:20:40',NULL,NULL,'2018-04-12 21:20:40',1),(24,1,'TS1804-0009','q32naisayppjgr5b',NULL,NULL,'f@f.com',NULL,NULL,'sss','mmm',0,NULL,'0',NULL,'COM','OTHER','NORMAL','2018-04-12 23:23:34',NULL,NULL,'2018-04-12 21:23:34',1),(25,1,'TS1804-0010','dst5xryjb55jjxs6',NULL,NULL,'f@f.com',NULL,NULL,'sss','mmm',0,NULL,'0',NULL,'COM','OTHER','NORMAL','2018-04-12 23:31:01',NULL,NULL,'2018-04-12 21:31:01',1),(26,1,'TS1804-0011','qh9ar34ut2shp5rq',151,NULL,'testldr6@dolicloud.com',NULL,NULL,'ppppp','gdgdgdfg',0,NULL,'0',NULL,'COM','OTHER','NORMAL','2018-04-19 15:05:23',NULL,NULL,'2018-04-19 13:05:23',1);
    +/*!40000 ALTER TABLE `llx_ticketsup` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ticketsup_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ticketsup_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ticketsup_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `aaa` varchar(255) DEFAULT NULL,
    +  `listeonly` varchar(255) DEFAULT NULL,
    +  `bbb` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ticketsup_extrafields`
    +--
    +
    +LOCK TABLES `llx_ticketsup_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_ticketsup_extrafields` DISABLE KEYS */;
    +INSERT INTO `llx_ticketsup_extrafields` VALUES (15,'2018-04-12 21:20:40',23,NULL,'aaaa',NULL,NULL),(16,'2018-04-12 21:23:34',24,NULL,'aaa',NULL,NULL),(17,'2018-04-12 21:31:01',25,NULL,'aaa',NULL,NULL),(20,'2018-04-13 10:42:15',22,NULL,'fffppgggffooppmmpp',NULL,NULL),(26,'2018-04-19 13:05:23',26,NULL,'aaa',NULL,NULL),(56,'2018-04-30 08:32:50',16,NULL,'ljklj',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_ticketsup_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ticketsup_logs`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ticketsup_logs`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ticketsup_logs` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `fk_track_id` varchar(128) DEFAULT NULL,
    +  `fk_user_create` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `message` text,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_ticketsup_logs_fk_track_id` (`fk_track_id`),
    +  CONSTRAINT `fk_ticketsup_logs_fk_track_id` FOREIGN KEY (`fk_track_id`) REFERENCES `llx_ticketsup` (`track_id`)
    +) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ticketsup_logs`
    +--
    +
    +LOCK TABLES `llx_ticketsup_logs` WRITE;
    +/*!40000 ALTER TABLE `llx_ticketsup_logs` DISABLE KEYS */;
    +INSERT INTO `llx_ticketsup_logs` VALUES (14,1,'bmhki5neaa7bszvy',12,'2018-03-16 13:31:15','Change classification : from Other to Other'),(15,1,'bmhki5neaa7bszvy',12,'2018-03-16 13:31:22','Change classification : from Commercial question to Issue or problem'),(16,1,'bmhki5neaa7bszvy',12,'2018-03-18 14:59:27','Ticket assigned to David Doe'),(17,1,'bmhki5neaa7bszvy',12,'2018-03-18 14:59:36','Ticket assigned to hgfhfg hgfh'),(18,1,'bmhki5neaa7bszvy',12,'2018-03-18 14:59:47','Ticket assigned to Sam Scientol'),(19,1,'bmhki5neaa7bszvy',12,'2018-03-18 15:01:20','Ticket assigned to Zack Zeceo'),(20,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:30:49','Ticket read by Alice Adminson'),(22,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:37:42','Status changed : Read to Not read'),(23,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:37:55','Ticket read by Alice Adminson'),(24,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:38:03','Status changed : Read to Not read'),(25,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:38:25','Ticket read by Alice Adminson'),(26,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:38:29','Status changed : Read to Not read'),(27,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:38:45','Ticket read by Alice Adminson'),(28,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:43:30','Status changed : Read to Not read'),(29,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:44:19','Status changed : Not read to Read'),(30,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:44:21','Status changed : Read to Not read'),(31,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:44:25','Ticket read by Alice Adminson'),(32,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:44:29','Status changed : Read to Not read'),(33,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:44:31','Status changed : Not read to Read'),(34,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:44:40','Status changed : Read to Not read'),(35,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:48:06','Ticket read by Alice Adminson'),(36,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:48:10','Status changed : Read to Not read'),(37,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:55:06','Ticket read by Alice Adminson'),(38,1,'bmhki5neaa7bszvy',12,'2018-03-18 21:55:12','Ticket read by Alice Adminson'),(39,1,'ltvd8zthmu5b7v42',12,'2018-03-18 22:00:39','Ticket read by Alice Adminson'),(40,1,'ltvd8zthmu5b7v42',12,'2018-03-18 22:25:01','Status changed : Answered to Assigned'),(41,1,'ltvd8zthmu5b7v42',12,'2018-03-18 22:25:08','Status changed : Assigned to Answered'),(42,1,'ltvd8zthmu5b7v42',12,'2018-03-18 22:25:16','Status changed : Answered to In progress'),(43,1,'ltvd8zthmu5b7v42',12,'2018-03-18 22:27:03','Status changed : In progress to Waiting'),(44,1,'o9997psaapahwrxi',12,'2018-03-19 14:57:35','Ticket read by Alice Adminson'),(45,1,'o9997psaapahwrxi',12,'2018-03-19 14:57:36','Ticket read by Alice Adminson'),(46,1,'bmhki5neaa7bszvy',12,'2018-04-10 17:58:28','Status changed : Lu to En cours'),(47,1,'bmhki5neaa7bszvy',12,'2018-04-10 17:58:44','Ticket cl&ocirc;t par Alice Adminson'),(48,1,'bmhki5neaa7bszvy',12,'2018-04-10 18:00:15','Ticket cl&ocirc;t par Alice Adminson'),(49,1,'bmhki5neaa7bszvy',12,'2018-04-13 12:11:32','Ticket r&eacute;-ouvert'),(50,1,'bmhki5neaa7bszvy',12,'2018-04-15 11:45:53','Status changed : assign&eacute; to Unread'),(51,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:01:24','Change classification : from  to '),(52,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:01:26','Change classification : from  to '),(53,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:02:03','Change classification : from  to '),(54,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:02:27','Change classification : from  to '),(55,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:09:03','Change classification : from  to '),(56,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:09:34','Change classification : from  to '),(57,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:15:04','Change classification : from  to '),(58,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:15:54','Change classification : from  to '),(59,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:17:47','Change classification : from  to '),(60,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:18:04','Change classification : from  to '),(61,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:18:28','Change classification : from  to '),(62,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:18:39','Change classification : from  to '),(63,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:19:00','Change classification : from  to '),(64,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:19:06','Change classification : from  to '),(65,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:19:09','Change classification : from  to '),(66,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:19:13','Change classification : from  to '),(67,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:24:52','Change classification : from  to '),(68,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:24:58','Change classification : from  to '),(69,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:26:41','Change classification : from  to '),(70,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:27:03','Change classification : from  to '),(71,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:27:06','Change classification : from  to '),(72,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:27:30','Initial message modified \n  hgfhfghf\n+ gdgdgd\n'),(73,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:28:13','Initial message modified \n  hgfhfghf\n  gdgdgd\n'),(74,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:28:28','Initial message modified \n  hgfhfghf\n  gdgdgd\n'),(75,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:28:47','Initial message modified \n  hgfhfghf\n  gdgdgd\n'),(76,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:28:55','Initial message modified \n  hgfhfghf\n- gdgdgd\n+ gdgdgdhghfghf\n'),(77,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:28:58','Change classification : from  to '),(78,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:29:55','Change classification : from  to '),(79,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:32:42','Change classification : from  to '),(80,1,'bmhki5neaa7bszvy',12,'2018-04-30 10:32:50','Change classification : from  to '),(81,1,'bmhki5neaa7bszvy',12,'2018-05-01 12:32:20','Status changed : Unread to Answered');
    +/*!40000 ALTER TABLE `llx_ticketsup_logs` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ticketsup_msg`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ticketsup_msg`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ticketsup_msg` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `fk_track_id` varchar(128) DEFAULT NULL,
    +  `fk_user_action` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `message` text,
    +  `private` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_ticketsup_msg_fk_track_id` (`fk_track_id`),
    +  CONSTRAINT `fk_ticketsup_msg_fk_track_id` FOREIGN KEY (`fk_track_id`) REFERENCES `llx_ticketsup` (`track_id`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ticketsup_msg`
    +--
    +
    +LOCK TABLES `llx_ticketsup_msg` WRITE;
    +/*!40000 ALTER TABLE `llx_ticketsup_msg` DISABLE KEYS */;
    +INSERT INTO `llx_ticketsup_msg` VALUES (1,1,'bmhki5neaa7bszvy',12,'2018-03-16 13:30:57','gdfd',0),(2,1,'ltvd8zthmu5b7v42',12,'2018-03-18 22:24:18','fdsfds',0),(3,1,'ltvd8zthmu5b7v42',12,'2018-03-18 22:24:39','hfghfg',0);
    +/*!40000 ALTER TABLE `llx_ticketsup_msg` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_tva`
    +--
    +
    +DROP TABLE IF EXISTS `llx_tva`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_tva` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` date DEFAULT NULL,
    +  `datep` date DEFAULT NULL,
    +  `datev` date DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_typepayment` int(11) DEFAULT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_tva`
    +--
    +
    +LOCK TABLES `llx_tva` WRITE;
    +/*!40000 ALTER TABLE `llx_tva` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_tva` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `login` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `civility` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_ext` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `employee` smallint(6) DEFAULT '1',
    +  `fk_establishment` int(11) DEFAULT '0',
    +  `pass` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass_crypted` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass_temp` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `api_key` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `job` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `skype` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `office_phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `office_fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `user_mobile` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `signature` text COLLATE utf8_unicode_ci,
    +  `admin` smallint(6) DEFAULT '0',
    +  `webcal_login` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `module_comm` smallint(6) DEFAULT '1',
    +  `module_compta` smallint(6) DEFAULT '1',
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_socpeople` int(11) DEFAULT NULL,
    +  `fk_member` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `datelastlogin` datetime DEFAULT NULL,
    +  `datepreviouslogin` datetime DEFAULT NULL,
    +  `egroupware_id` int(11) DEFAULT NULL,
    +  `ldap_sid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `statut` tinyint(4) DEFAULT '1',
    +  `photo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `openid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `thm` double(24,8) DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_state` int(11) DEFAULT '0',
    +  `fk_country` int(11) DEFAULT '0',
    +  `color` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `barcode` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_barcode_type` int(11) DEFAULT '0',
    +  `nb_holiday` int(11) DEFAULT '0',
    +  `salary` double(24,8) DEFAULT NULL,
    +  `tjm` double(24,8) DEFAULT NULL,
    +  `salaryextra` double(24,8) DEFAULT NULL,
    +  `weeklyhours` double(16,8) DEFAULT NULL,
    +  `gender` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `dateemployment` datetime DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `birth` date DEFAULT NULL,
    +  `pass_encoding` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `default_range` int(11) DEFAULT NULL,
    +  `default_c_exp_tax_cat` int(11) DEFAULT NULL,
    +  `dateemploymentend` date DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_user_login` (`login`,`entity`),
    +  UNIQUE KEY `uk_user_fk_socpeople` (`fk_socpeople`),
    +  UNIQUE KEY `uk_user_fk_member` (`fk_member`),
    +  UNIQUE KEY `uk_user_api_key` (`api_key`),
    +  KEY `idx_user_api_key` (`api_key`),
    +  KEY `idx_user_fk_societe` (`fk_soc`)
    +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user`
    +--
    +
    +LOCK TABLES `llx_user` WRITE;
    +/*!40000 ALTER TABLE `llx_user` DISABLE KEYS */;
    +INSERT INTO `llx_user` VALUES (1,'2010-07-08 13:20:11','2017-02-01 15:06:04',NULL,NULL,'aeinstein',0,NULL,NULL,NULL,1,0,NULL,'11c9c772d6471aa24c27274bdd8a223b',NULL,NULL,'Einstein','Albert','','','123456789','','','aeinstein@example.com','',0,'',1,1,NULL,NULL,NULL,'','2015-10-05 08:32:44','2015-10-03 11:43:50',NULL,'',1,'alberteinstein.jpg',NULL,NULL,14,NULL,'','','',NULL,NULL,'aaaaff','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,'2010-07-08 13:54:48','2017-02-01 15:06:04',NULL,NULL,'demo',1,NULL,NULL,NULL,1,0,NULL,'fe01ce2a7fbac8fafaed7c982a04e229',NULL,NULL,'Doe','David','','','09123123','','','daviddoe@mycompany.com','',0,'',1,1,NULL,NULL,NULL,'','2016-07-30 23:10:54','2016-07-30 23:04:17',NULL,'',1,'johndoe.png',NULL,NULL,11,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'2010-07-11 16:18:59','2017-02-01 15:06:04',NULL,NULL,'pcurie',1,NULL,NULL,NULL,1,0,NULL,'ab335b4eb4c3c99334f656e5db9584c9',NULL,NULL,'Curie','Pierre','','','','','','pcurie@example.com','',0,'',1,1,NULL,NULL,2,'','2012-12-21 17:38:55',NULL,NULL,'',1,'pierrecurie.jpg',NULL,NULL,14,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,'2013-01-23 17:52:27','2017-02-01 15:06:04',NULL,NULL,'bbookkeeper',1,NULL,NULL,NULL,1,0,NULL,'a7d30b58d647fcf59b7163f9592b1dbb',NULL,NULL,'Bookkeeper','Bob','Bookkeeper','','','','','','',0,'',1,1,17,6,NULL,'','2013-02-25 10:18:41','2013-01-23 17:53:20',NULL,'',1,NULL,NULL,NULL,11,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(10,'2015-10-03 11:47:41','2017-02-01 15:06:04',NULL,NULL,'mcurie',1,NULL,NULL,NULL,1,0,NULL,'52cda011808bb282d1d3625ab607a145',NULL,'t3mnkbhs','Curie','Marie','','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,'mariecurie.jpg',NULL,NULL,14,NULL,'','','',NULL,NULL,'ffaaff','',NULL,0,0,NULL,NULL,NULL,NULL,'woman',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(11,'2015-10-05 09:07:52','2017-02-01 15:06:04',NULL,NULL,'zzeceo',1,NULL,NULL,NULL,1,0,NULL,'92af989c4c3a5140fb5d73eb77a52454',NULL,'cq78nf9m','Zeceo','Zack','President','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'','2015-10-05 22:48:08','2015-10-05 21:18:46',NULL,'',1,NULL,NULL,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(12,'2015-10-05 09:09:46','2018-01-19 11:24:18',NULL,NULL,'admin',0,NULL,NULL,NULL,1,0,NULL,'f6fdffe48c908deb0f4c3bd36c032e72',NULL,'nd6hgbcr','Adminson','Alice','Admin Technical','','','','','','Alice - 123',1,NULL,1,1,NULL,NULL,NULL,'','2018-03-16 13:54:23','2018-01-19 11:21:41',NULL,'',1,'mariecurie.jpg',NULL,NULL,11,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,'woman',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(13,'2015-10-05 21:29:35','2017-02-01 15:06:04',NULL,NULL,'ccommercy',1,NULL,NULL,NULL,1,0,NULL,'179858e041af35e8f4c81d68c55fe9da',NULL,'y451ksdv','Commercy','Charle','Commercial leader','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,11,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14,'2015-10-05 21:33:33','2017-02-01 15:06:04',NULL,NULL,'sscientol',1,NULL,NULL,NULL,1,0,NULL,'39bee07ac42f31c98e79cdcd5e5fe4c5',NULL,'s2hp8bxd','Scientol','Sam','Scientist leader','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,11,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(16,'2015-10-05 22:47:52','2017-02-20 16:49:00',NULL,NULL,'ccommerson',1,NULL,NULL,NULL,1,0,NULL,'d68005ccf362b82d084551b6291792a3',NULL,'cx9y1dk0','Charle1','Commerson','Sale representative','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'','2015-10-05 23:46:24','2015-10-05 23:37:31',NULL,'',1,NULL,NULL,NULL,13,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(17,'2015-10-05 22:48:39','2017-02-01 15:06:04',NULL,NULL,'cc2',1,NULL,NULL,NULL,1,0,NULL,'a964065211872fb76f876c6c3e952ea3',NULL,'gw8cb7xj','Charle2','Commerson','Sale representative','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'','2015-10-05 23:16:06',NULL,NULL,'',0,NULL,NULL,NULL,13,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(18,'2016-01-22 17:27:02','2017-02-01 15:06:04',NULL,NULL,'ldestailleur',1,NULL,NULL,NULL,1,0,NULL,'1bb7805145a7a5066df9e6d585b8b645',NULL,'87g06wbx','Destailleur','Laurent','Project leader of Dolibarr ERP CRM','','','','','ldestailleur@example.com','<div style=\"line-height: 20.8px;\"><strong>Laurent DESTAILLEUR</strong></div>\r\n\r\n<div style=\"line-height: 20.8px;\">\r\n<div style=\"font-family: verdana, helvetica, sans-serif;\"><span style=\"color:rgb(96, 97, 99); font-family:arial; font-size:medium\"><strong>Project Director</strong></span><br />\r\n<span style=\"color:rgb(51, 102, 153)\"><span style=\"color:rgb(153, 51, 153); font-family:tahoma,new york,times,serif\"><span style=\"color:rgb(51, 102, 153)\">ldestailleur@example.com</span></span></span></div>\r\n\r\n<div style=\"font-family: verdana, helvetica, sans-serif;\">&nbsp;</div>\r\n\r\n<div style=\"font-family: verdana, helvetica, sans-serif;\">\r\n<div style=\"color: rgb(0, 0, 0);\"><span style=\"color:rgb(153, 51, 153); font-family:arial,helvetica,sans-serif; font-size:small\"><span style=\"color:rgb(51, 102, 153)\"><a href=\"http://www.facebook.com/teclib\" style=\"color: rgb(153, 51, 153); text-decoration: none; cursor: pointer;\" target=\"_blank\">Facebook</a></span>&nbsp;|&nbsp;<span style=\"color:rgb(51, 102, 153)\"><a href=\"http://twitter.com/teclib\" style=\"color: rgb(153, 51, 153); text-decoration: none; cursor: pointer;\" target=\"_blank\">Twitter</a></span>&nbsp;|&nbsp;<span style=\"color:rgb(51, 102, 153)\"><span style=\"color:rgb(153, 51, 153)\"><a href=\"http://www.teclib.com/\" style=\"color: rgb(153, 51, 153); text-decoration: none; cursor: pointer;\" target=\"_blank\">www.teclib.com</a></span></span></span></div>\r\n</div>\r\n</div>',0,NULL,1,1,10,10,NULL,'More information on http://www.destailleur.fr','2017-09-06 11:55:30','2017-08-30 15:53:25',NULL,'',1,'ldestailleur_200x200.jpg',NULL,NULL,NULL,NULL,'','','',NULL,NULL,'007f7f','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(19,'2017-02-02 03:55:44','2017-02-01 23:56:50',NULL,NULL,'aboston',1,NULL,NULL,NULL,1,0,NULL,'a7a77a5aff2d5fc2f75f2f61507c88d4',NULL,NULL,'Boston','Alex','','','','','','aboston@example.com','<strong>Alex Boston</strong><br />\r\nAdmin support service - 555 01 02 03 04',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,12,25.00000000,'','','',NULL,NULL,'ff00ff','',NULL,0,0,NULL,NULL,NULL,32.00000000,NULL,NULL,'2014-11-04 00:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_user` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_alert`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_alert`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_alert` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `type` int(11) DEFAULT NULL,
    +  `fk_contact` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_alert`
    +--
    +
    +LOCK TABLES `llx_user_alert` WRITE;
    +/*!40000 ALTER TABLE `llx_user_alert` DISABLE KEYS */;
    +INSERT INTO `llx_user_alert` VALUES (1,1,1,1),(2,1,10,12);
    +/*!40000 ALTER TABLE `llx_user_alert` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_clicktodial`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_clicktodial`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_clicktodial` (
    +  `fk_user` int(11) NOT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `login` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `poste` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_user`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_clicktodial`
    +--
    +
    +LOCK TABLES `llx_user_clicktodial` WRITE;
    +/*!40000 ALTER TABLE `llx_user_clicktodial` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_user_clicktodial` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_employment`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_employment`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_employment` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_ext` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `job` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  `salary` double(24,8) DEFAULT NULL,
    +  `salaryextra` double(24,8) DEFAULT NULL,
    +  `weeklyhours` double(16,8) DEFAULT NULL,
    +  `dateemployment` date DEFAULT NULL,
    +  `dateemploymentend` date DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_user_employment` (`ref`,`entity`),
    +  KEY `fk_user_employment_fk_user` (`fk_user`),
    +  CONSTRAINT `fk_user_employment_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_employment`
    +--
    +
    +LOCK TABLES `llx_user_employment` WRITE;
    +/*!40000 ALTER TABLE `llx_user_employment` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_user_employment` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_user_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_extrafields`
    +--
    +
    +LOCK TABLES `llx_user_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_user_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_user_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_param`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_param`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_param` (
    +  `fk_user` int(11) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `param` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `value` text COLLATE utf8_unicode_ci NOT NULL,
    +  UNIQUE KEY `uk_user_param` (`fk_user`,`param`,`entity`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_param`
    +--
    +
    +LOCK TABLES `llx_user_param` WRITE;
    +/*!40000 ALTER TABLE `llx_user_param` DISABLE KEYS */;
    +INSERT INTO `llx_user_param` VALUES (1,1,'MAIN_BOXES_0','1'),(1,1,'MAIN_THEME','eldy'),(1,3,'THEME_ELDY_ENABLE_PERSONALIZED','1'),(1,1,'THEME_ELDY_RGB','ded0ed'),(1,3,'THEME_ELDY_RGB','d0ddc3'),(2,1,'MAIN_BOXES_0','1'),(11,1,'MAIN_BOXES_0','1'),(12,1,'MAIN_BOXES_0','1'),(12,1,'MAIN_LANG_DEFAULT','en_US'),(12,1,'MAIN_SELECTEDFIELDS_/dolibarr_4.0/htdocs/adherents/list.php','d.zip,d.ref,d.lastname,d.firstname,d.company,d.login,d.morphy,t.libelle,d.email,d.datefin,d.statut,'),(12,1,'MAIN_SELECTEDFIELDS_invoicelist','f.tms,f.facnumber,f.ref_client,f.date,f.date_lim_reglement,s.nom,s.town,s.zip,f.fk_mode_reglement,f.total_ht,rtp,f.fk_statut,'),(12,1,'MAIN_SELECTEDFIELDS_projectlist','p.budget_amount,p.ref,p.title,s.nom,commercial,p.dateo,p.datee,p.public,p.opp_amount,p.fk_opp_status,p.opp_percent,p.fk_statut,ef.priority,'),(12,1,'MAIN_SELECTEDFIELDS_proposallist','p.datec,p.ref,p.ref_client,s.nom,s.town,s.zip,p.date,p.fin_validite,p.total_ht,u.login,p.fk_statut,'),(12,1,'MAIN_SELECTEDFIELDS_servicelist','p.ref,p.label,p.duration,p.sellprice,p.minbuyprice,p.tosell,p.tobuy,');
    +/*!40000 ALTER TABLE `llx_user_param` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_rib`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_rib`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_rib` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bank` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bic` varchar(11) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `iban_prefix` varchar(34) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `domiciliation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `proprio` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `owner_address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_rib`
    +--
    +
    +LOCK TABLES `llx_user_rib` WRITE;
    +/*!40000 ALTER TABLE `llx_user_rib` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_user_rib` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_rights`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_rights`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_rights` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user` int(11) NOT NULL,
    +  `fk_id` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_user_rights` (`entity`,`fk_user`,`fk_id`),
    +  KEY `fk_user_rights_fk_user_user` (`fk_user`),
    +  CONSTRAINT `fk_user_rights_fk_user_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=16387 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_rights`
    +--
    +
    +LOCK TABLES `llx_user_rights` WRITE;
    +/*!40000 ALTER TABLE `llx_user_rights` DISABLE KEYS */;
    +INSERT INTO `llx_user_rights` VALUES (12402,1,1,11),(12380,1,1,12),(12385,1,1,13),(12389,1,1,14),(12393,1,1,15),(12398,1,1,16),(12404,1,1,19),(9726,1,1,21),(9700,1,1,22),(9706,1,1,24),(9711,1,1,25),(9716,1,1,26),(9722,1,1,27),(9728,1,1,28),(9978,1,1,31),(9968,1,1,32),(9974,1,1,34),(1910,1,1,36),(9980,1,1,38),(11573,1,1,41),(11574,1,1,42),(11575,1,1,44),(11576,1,1,45),(7184,1,1,61),(7181,1,1,62),(7183,1,1,64),(7185,1,1,67),(7186,1,1,68),(1678,1,1,71),(1673,1,1,72),(1675,1,1,74),(1679,1,1,75),(1677,1,1,76),(1681,1,1,78),(1682,1,1,79),(12322,1,1,81),(12309,1,1,82),(12312,1,1,84),(12314,1,1,86),(12317,1,1,87),(12320,1,1,88),(12323,1,1,89),(11580,1,1,91),(11581,1,1,92),(11582,1,1,93),(11583,1,1,94),(10097,1,1,95),(10099,1,1,96),(10103,1,1,97),(10104,1,1,98),(7139,1,1,101),(7134,1,1,102),(7136,1,1,104),(7137,1,1,105),(7138,1,1,106),(7140,1,1,109),(10229,1,1,111),(10201,1,1,112),(10207,1,1,113),(10213,1,1,114),(10219,1,1,115),(10225,1,1,116),(10231,1,1,117),(12518,1,1,121),(12508,1,1,122),(12514,1,1,125),(12520,1,1,126),(11577,1,1,141),(11578,1,1,142),(11579,1,1,144),(2307,1,1,151),(2304,1,1,152),(2306,1,1,153),(2308,1,1,154),(10092,1,1,161),(10093,1,1,162),(10094,1,1,163),(10095,1,1,164),(10096,1,1,165),(1585,1,1,170),(12342,1,1,171),(12331,1,1,172),(12335,1,1,173),(12339,1,1,174),(12343,1,1,178),(10000,1,1,221),(9990,1,1,222),(9996,1,1,223),(10002,1,1,229),(10007,1,1,237),(10011,1,1,238),(10015,1,1,239),(1686,1,1,241),(1685,1,1,242),(1687,1,1,243),(12604,1,1,251),(12566,1,1,252),(12569,1,1,253),(12572,1,1,254),(12575,1,1,255),(12579,1,1,256),(1617,1,1,258),(12525,1,1,262),(12544,1,1,281),(12534,1,1,282),(12540,1,1,283),(12546,1,1,286),(12288,1,1,300),(12290,1,1,301),(11591,1,1,302),(1763,1,1,331),(1762,1,1,332),(1764,1,1,333),(12582,1,1,341),(12584,1,1,342),(12586,1,1,343),(12588,1,1,344),(12600,1,1,351),(12593,1,1,352),(12597,1,1,353),(12601,1,1,354),(12605,1,1,358),(12560,1,1,531),(12553,1,1,532),(12557,1,1,534),(1625,1,1,536),(12561,1,1,538),(12358,1,1,700),(12348,1,1,701),(12354,1,1,702),(12360,1,1,703),(1755,1,1,1001),(1754,1,1,1002),(1756,1,1,1003),(1758,1,1,1004),(1759,1,1,1005),(7146,1,1,1101),(7143,1,1,1102),(7145,1,1,1104),(7147,1,1,1109),(12412,1,1,1181),(12458,1,1,1182),(12417,1,1,1183),(12420,1,1,1184),(12423,1,1,1185),(12427,1,1,1186),(12431,1,1,1187),(12437,1,1,1188),(12434,1,1,1189),(1578,1,1,1201),(1579,1,1,1202),(12454,1,1,1231),(12443,1,1,1232),(12446,1,1,1233),(12449,1,1,1234),(12452,1,1,1235),(12455,1,1,1236),(12459,1,1,1237),(1736,1,1,1251),(12409,1,1,1321),(12326,1,1,1421),(8190,1,1,1791),(8187,1,1,1792),(8191,1,1,1793),(12264,1,1,2401),(12260,1,1,2402),(12266,1,1,2403),(12280,1,1,2411),(12276,1,1,2412),(12282,1,1,2413),(12286,1,1,2414),(1618,1,1,2500),(12370,1,1,2501),(12367,1,1,2503),(12371,1,1,2515),(9610,1,1,5001),(9611,1,1,5002),(12490,1,1,20001),(12468,1,1,20002),(12474,1,1,20003),(12480,1,1,20004),(12486,1,1,20005),(12492,1,1,20006),(12302,1,1,23001),(12295,1,1,23002),(12299,1,1,23003),(12303,1,1,23004),(7701,1,1,50101),(4984,1,1,50401),(4983,1,1,50402),(4985,1,1,50403),(4987,1,1,50411),(4988,1,1,50412),(4989,1,1,50415),(12498,1,1,55001),(12499,1,1,55002),(3564,1,1,100700),(3565,1,1,100701),(9596,1,1,101051),(9598,1,1,101052),(9600,1,1,101053),(9604,1,1,101060),(9605,1,1,101061),(7177,1,1,101201),(7178,1,1,101202),(10353,1,1,101250),(10355,1,1,101251),(8980,1,1,101261),(8981,1,1,101262),(7616,1,1,101331),(10030,1,1,101701),(10031,1,1,101702),(3582,1,1,102000),(3583,1,1,102001),(9819,1,1,400051),(9823,1,1,400052),(9827,1,1,400053),(9831,1,1,400055),(132,1,2,11),(133,1,2,12),(134,1,2,13),(135,1,2,14),(136,1,2,16),(137,1,2,19),(138,1,2,21),(139,1,2,22),(140,1,2,24),(141,1,2,25),(142,1,2,26),(143,1,2,27),(10359,1,2,31),(145,1,2,32),(10361,1,2,34),(146,1,2,36),(147,1,2,41),(148,1,2,42),(149,1,2,44),(150,1,2,61),(151,1,2,62),(152,1,2,64),(153,1,2,71),(154,1,2,72),(155,1,2,74),(156,1,2,75),(157,1,2,78),(158,1,2,79),(159,1,2,81),(160,1,2,82),(161,1,2,84),(162,1,2,86),(163,1,2,87),(164,1,2,88),(165,1,2,89),(166,1,2,91),(167,1,2,92),(168,1,2,93),(2475,1,2,95),(2476,1,2,96),(2477,1,2,97),(2478,1,2,98),(169,1,2,101),(170,1,2,102),(171,1,2,104),(172,1,2,109),(173,1,2,111),(174,1,2,112),(175,1,2,113),(176,1,2,114),(177,1,2,116),(178,1,2,117),(179,1,2,121),(180,1,2,122),(181,1,2,125),(182,1,2,141),(183,1,2,142),(184,1,2,144),(2479,1,2,151),(2480,1,2,152),(2481,1,2,153),(2482,1,2,154),(185,1,2,161),(186,1,2,162),(187,1,2,163),(188,1,2,164),(189,1,2,165),(190,1,2,170),(2471,1,2,171),(192,1,2,172),(2472,1,2,173),(193,1,2,221),(194,1,2,222),(195,1,2,229),(196,1,2,241),(197,1,2,242),(198,1,2,243),(199,1,2,251),(201,1,2,262),(202,1,2,281),(203,1,2,282),(204,1,2,283),(205,1,2,331),(15072,1,2,510),(2483,1,2,531),(207,1,2,532),(2484,1,2,534),(208,1,2,536),(2473,1,2,700),(210,1,2,701),(211,1,2,702),(2474,1,2,703),(15064,1,2,771),(15057,1,2,772),(15059,1,2,773),(15061,1,2,774),(15063,1,2,775),(15065,1,2,776),(212,1,2,1001),(213,1,2,1002),(214,1,2,1003),(215,1,2,1004),(216,1,2,1005),(217,1,2,1101),(218,1,2,1102),(219,1,2,1104),(220,1,2,1109),(15073,1,2,1121),(15074,1,2,1122),(15075,1,2,1123),(15076,1,2,1124),(15077,1,2,1125),(15078,1,2,1126),(221,1,2,1181),(222,1,2,1182),(223,1,2,1183),(224,1,2,1184),(225,1,2,1185),(226,1,2,1186),(227,1,2,1187),(228,1,2,1188),(229,1,2,1201),(230,1,2,1202),(231,1,2,1231),(232,1,2,1232),(233,1,2,1233),(234,1,2,1234),(235,1,2,1421),(236,1,2,2401),(237,1,2,2402),(238,1,2,2403),(239,1,2,2411),(240,1,2,2412),(241,1,2,2413),(242,1,2,2500),(2470,1,2,2501),(243,1,2,2515),(10363,1,2,20001),(10364,1,2,20002),(10365,1,2,20003),(10366,1,2,20004),(10367,1,2,20005),(10368,1,2,20006),(15054,1,2,23001),(10362,1,2,50101),(15067,1,2,55001),(15066,1,2,59001),(15068,1,2,63001),(15069,1,2,63002),(15070,1,2,63003),(15071,1,2,63004),(10372,1,2,101250),(1807,1,3,11),(1808,1,3,31),(1809,1,3,36),(1810,1,3,41),(1811,1,3,61),(1812,1,3,71),(1813,1,3,72),(1814,1,3,74),(1815,1,3,75),(1816,1,3,78),(1817,1,3,79),(1818,1,3,91),(1819,1,3,95),(1820,1,3,97),(1821,1,3,111),(1822,1,3,121),(1823,1,3,122),(1824,1,3,125),(1825,1,3,161),(1826,1,3,170),(1827,1,3,171),(1828,1,3,172),(1829,1,3,221),(1830,1,3,222),(1831,1,3,229),(1832,1,3,241),(1833,1,3,242),(1834,1,3,243),(1835,1,3,251),(1836,1,3,255),(1837,1,3,256),(1838,1,3,262),(1839,1,3,281),(1840,1,3,282),(1841,1,3,283),(1842,1,3,331),(1843,1,3,531),(1844,1,3,536),(1845,1,3,700),(1846,1,3,1001),(1847,1,3,1002),(1848,1,3,1003),(1849,1,3,1004),(1850,1,3,1005),(1851,1,3,1181),(1852,1,3,1182),(1853,1,3,1201),(1854,1,3,1202),(1855,1,3,1231),(1856,1,3,2401),(1857,1,3,2402),(1858,1,3,2403),(1859,1,3,2411),(1860,1,3,2412),(1861,1,3,2413),(1862,1,3,2500),(1863,1,3,2515),(8026,1,4,11),(8027,1,4,21),(8028,1,4,31),(8029,1,4,41),(8030,1,4,61),(8031,1,4,71),(8032,1,4,72),(8033,1,4,74),(8034,1,4,75),(8035,1,4,78),(8036,1,4,79),(8037,1,4,81),(8038,1,4,91),(8039,1,4,95),(8040,1,4,97),(8041,1,4,101),(8042,1,4,111),(8043,1,4,121),(8044,1,4,151),(8045,1,4,161),(8046,1,4,171),(8047,1,4,221),(8048,1,4,222),(8049,1,4,229),(8050,1,4,241),(8051,1,4,242),(8052,1,4,243),(8146,1,4,251),(8147,1,4,253),(8053,1,4,262),(8054,1,4,281),(8055,1,4,331),(8056,1,4,341),(8057,1,4,342),(8058,1,4,343),(8059,1,4,344),(8060,1,4,531),(8061,1,4,700),(8062,1,4,1001),(8063,1,4,1002),(8064,1,4,1003),(8065,1,4,1004),(8066,1,4,1005),(8067,1,4,1101),(8068,1,4,1181),(8069,1,4,1182),(8070,1,4,1201),(8071,1,4,1202),(8072,1,4,1231),(8073,1,4,2401),(8074,1,4,2501),(8075,1,4,2503),(8076,1,4,2515),(8077,1,4,20001),(8078,1,4,50101),(8079,1,4,101201),(8080,1,4,101261),(8081,1,4,102000),(8082,1,4,400051),(8083,1,4,400052),(8084,1,4,400053),(8085,1,4,400055),(12608,1,10,11),(12609,1,10,21),(12610,1,10,31),(12611,1,10,41),(12612,1,10,61),(12613,1,10,71),(12614,1,10,72),(12615,1,10,74),(12616,1,10,75),(12617,1,10,78),(12618,1,10,79),(12619,1,10,81),(12620,1,10,91),(12621,1,10,95),(12622,1,10,97),(12623,1,10,101),(12624,1,10,111),(12625,1,10,121),(12626,1,10,151),(12627,1,10,161),(12628,1,10,171),(12629,1,10,221),(12630,1,10,222),(12631,1,10,229),(12632,1,10,241),(12633,1,10,242),(12634,1,10,243),(12635,1,10,262),(12636,1,10,281),(12637,1,10,300),(12638,1,10,331),(12639,1,10,341),(12640,1,10,342),(12641,1,10,343),(12642,1,10,344),(12643,1,10,531),(12644,1,10,700),(12645,1,10,1001),(12646,1,10,1002),(12647,1,10,1003),(12648,1,10,1004),(12649,1,10,1005),(12650,1,10,1101),(12651,1,10,1181),(12652,1,10,1182),(12653,1,10,1201),(12654,1,10,1202),(12655,1,10,1231),(12656,1,10,2401),(12657,1,10,2501),(12658,1,10,2503),(12659,1,10,2515),(12660,1,10,20001),(12661,1,10,20002),(12662,1,10,23001),(12663,1,10,50101),(12664,1,11,11),(12665,1,11,21),(12666,1,11,31),(12667,1,11,41),(12668,1,11,61),(12669,1,11,71),(12670,1,11,72),(12671,1,11,74),(12672,1,11,75),(12673,1,11,78),(12674,1,11,79),(12675,1,11,81),(12676,1,11,91),(12677,1,11,95),(12678,1,11,97),(12679,1,11,101),(12680,1,11,111),(12681,1,11,121),(12682,1,11,151),(12683,1,11,161),(12684,1,11,171),(12685,1,11,221),(12686,1,11,222),(12687,1,11,229),(12688,1,11,241),(12689,1,11,242),(12690,1,11,243),(12691,1,11,262),(12692,1,11,281),(12693,1,11,300),(12694,1,11,331),(12695,1,11,341),(12696,1,11,342),(12697,1,11,343),(12698,1,11,344),(12699,1,11,531),(12700,1,11,700),(12701,1,11,1001),(12702,1,11,1002),(12703,1,11,1003),(12704,1,11,1004),(12705,1,11,1005),(12706,1,11,1101),(12707,1,11,1181),(12708,1,11,1182),(12709,1,11,1201),(12710,1,11,1202),(12711,1,11,1231),(12712,1,11,2401),(12713,1,11,2501),(12714,1,11,2503),(12715,1,11,2515),(12716,1,11,20001),(12717,1,11,20002),(12718,1,11,23001),(12719,1,11,50101),(16272,1,12,11),(16262,1,12,12),(16264,1,12,13),(16266,1,12,14),(16268,1,12,15),(16271,1,12,16),(16274,1,12,19),(14146,1,12,21),(14135,1,12,22),(14137,1,12,24),(14139,1,12,25),(14142,1,12,26),(14145,1,12,27),(14148,1,12,28),(14930,1,12,31),(14926,1,12,32),(14929,1,12,34),(14932,1,12,38),(13816,1,12,41),(13813,1,12,42),(13815,1,12,44),(13817,1,12,45),(14094,1,12,61),(14091,1,12,62),(14093,1,12,64),(14095,1,12,67),(14096,1,12,68),(16203,1,12,71),(16198,1,12,72),(16200,1,12,74),(16204,1,12,75),(16202,1,12,76),(16206,1,12,78),(16207,1,12,79),(16242,1,12,81),(16236,1,12,82),(16237,1,12,84),(16238,1,12,86),(16240,1,12,87),(16241,1,12,88),(16243,1,12,89),(15401,1,12,91),(15397,1,12,92),(15400,1,12,93),(15403,1,12,94),(13990,1,12,95),(12734,1,12,97),(14939,1,12,101),(14935,1,12,102),(14936,1,12,104),(14937,1,12,105),(14938,1,12,106),(14940,1,12,109),(15390,1,12,111),(15377,1,12,112),(15380,1,12,113),(15383,1,12,114),(15386,1,12,115),(15389,1,12,116),(15392,1,12,117),(16331,1,12,121),(16327,1,12,122),(16330,1,12,125),(16333,1,12,126),(13821,1,12,141),(13820,1,12,142),(13822,1,12,144),(13912,1,12,151),(13909,1,12,152),(13911,1,12,153),(13913,1,12,154),(14063,1,12,161),(14056,1,12,162),(14058,1,12,163),(14060,1,12,164),(14062,1,12,165),(14064,1,12,167),(13350,1,12,171),(13345,1,12,172),(13347,1,12,173),(13349,1,12,174),(13351,1,12,178),(13838,1,12,221),(13834,1,12,222),(13837,1,12,223),(13840,1,12,229),(13842,1,12,237),(13844,1,12,238),(13846,1,12,239),(13516,1,12,241),(13515,1,12,242),(13517,1,12,243),(16374,1,12,251),(16355,1,12,252),(16357,1,12,253),(16358,1,12,254),(16360,1,12,255),(16362,1,12,256),(16335,1,12,262),(16344,1,12,281),(16340,1,12,282),(16343,1,12,283),(16346,1,12,286),(16225,1,12,300),(16226,1,12,301),(16194,1,12,331),(16193,1,12,332),(16195,1,12,333),(16363,1,12,341),(16364,1,12,342),(16365,1,12,343),(16366,1,12,344),(16372,1,12,351),(16369,1,12,352),(16371,1,12,353),(16373,1,12,354),(16375,1,12,358),(16384,1,12,501),(16378,1,12,502),(13865,1,12,510),(16380,1,12,511),(16381,1,12,512),(16383,1,12,514),(16385,1,12,517),(15291,1,12,520),(15286,1,12,522),(15288,1,12,524),(15290,1,12,525),(15292,1,12,527),(16352,1,12,531),(16349,1,12,532),(16351,1,12,534),(16353,1,12,538),(13358,1,12,700),(16250,1,12,701),(16249,1,12,702),(16252,1,12,703),(15090,1,12,771),(15081,1,12,772),(15083,1,12,773),(15085,1,12,774),(15087,1,12,775),(15089,1,12,776),(15091,1,12,779),(14917,1,12,1001),(14916,1,12,1002),(14918,1,12,1003),(14920,1,12,1004),(14921,1,12,1005),(14945,1,12,1101),(14943,1,12,1102),(14944,1,12,1104),(14946,1,12,1109),(14762,1,12,1121),(14755,1,12,1122),(14757,1,12,1123),(14759,1,12,1124),(14761,1,12,1125),(14763,1,12,1126),(16278,1,12,1181),(16301,1,12,1182),(16281,1,12,1183),(16282,1,12,1184),(16284,1,12,1185),(16286,1,12,1186),(16288,1,12,1187),(16291,1,12,1188),(16289,1,12,1189),(13827,1,12,1201),(13828,1,12,1202),(16299,1,12,1231),(16294,1,12,1232),(16295,1,12,1233),(16297,1,12,1234),(16298,1,12,1235),(16300,1,12,1236),(16302,1,12,1237),(13829,1,12,1251),(16276,1,12,1321),(16277,1,12,1322),(16244,1,12,1421),(16213,1,12,2401),(16212,1,12,2402),(16215,1,12,2403),(16221,1,12,2411),(16220,1,12,2412),(16223,1,12,2413),(16224,1,12,2414),(16256,1,12,2501),(16255,1,12,2503),(16257,1,12,2515),(16386,1,12,3200),(15435,1,12,5001),(15436,1,12,5002),(16317,1,12,20001),(16307,1,12,20002),(16310,1,12,20003),(16313,1,12,20004),(16316,1,12,20005),(16319,1,12,20006),(16232,1,12,23001),(16229,1,12,23002),(16231,1,12,23003),(16233,1,12,23004),(13712,1,12,50101),(15499,1,12,50401),(15501,1,12,50411),(15502,1,12,50412),(15503,1,12,50420),(15504,1,12,50430),(15498,1,12,50440),(16321,1,12,55001),(16322,1,12,55002),(14128,1,12,59001),(14129,1,12,59002),(14130,1,12,59003),(14818,1,12,63001),(14815,1,12,63002),(14817,1,12,63003),(14819,1,12,63004),(15241,1,12,64001),(16009,1,12,101331),(16010,1,12,101332),(16011,1,12,101333),(15438,1,12,101701),(15439,1,12,101702),(12776,1,13,11),(12777,1,13,21),(12778,1,13,31),(12779,1,13,41),(12780,1,13,61),(12781,1,13,71),(12782,1,13,72),(12783,1,13,74),(12784,1,13,75),(12785,1,13,78),(12786,1,13,79),(12787,1,13,81),(12788,1,13,91),(12789,1,13,95),(12790,1,13,97),(12791,1,13,101),(12792,1,13,111),(12793,1,13,121),(12794,1,13,151),(12795,1,13,161),(12796,1,13,171),(12797,1,13,221),(12798,1,13,222),(12799,1,13,229),(12800,1,13,241),(12801,1,13,242),(12802,1,13,243),(12803,1,13,262),(12804,1,13,281),(12805,1,13,300),(12806,1,13,331),(12807,1,13,341),(12808,1,13,342),(12809,1,13,343),(12810,1,13,344),(12811,1,13,531),(12812,1,13,700),(12813,1,13,1001),(12814,1,13,1002),(12815,1,13,1003),(12816,1,13,1004),(12817,1,13,1005),(12818,1,13,1101),(12819,1,13,1181),(12820,1,13,1182),(12821,1,13,1201),(12822,1,13,1202),(12823,1,13,1231),(12824,1,13,2401),(12825,1,13,2501),(12826,1,13,2503),(12827,1,13,2515),(12828,1,13,20001),(12829,1,13,20002),(12830,1,13,23001),(12831,1,13,50101),(12832,1,14,11),(12833,1,14,21),(12834,1,14,31),(12835,1,14,41),(12836,1,14,61),(12837,1,14,71),(12838,1,14,72),(12839,1,14,74),(12840,1,14,75),(12841,1,14,78),(12842,1,14,79),(12843,1,14,81),(12844,1,14,91),(12845,1,14,95),(12846,1,14,97),(12847,1,14,101),(12848,1,14,111),(12849,1,14,121),(12850,1,14,151),(12851,1,14,161),(12852,1,14,171),(12853,1,14,221),(12854,1,14,222),(12855,1,14,229),(12856,1,14,241),(12857,1,14,242),(12858,1,14,243),(12859,1,14,262),(12860,1,14,281),(12861,1,14,300),(12862,1,14,331),(12863,1,14,341),(12864,1,14,342),(12865,1,14,343),(12866,1,14,344),(12867,1,14,531),(12868,1,14,700),(12869,1,14,1001),(12870,1,14,1002),(12871,1,14,1003),(12872,1,14,1004),(12873,1,14,1005),(12874,1,14,1101),(12875,1,14,1181),(12876,1,14,1182),(12877,1,14,1201),(12878,1,14,1202),(12879,1,14,1231),(12880,1,14,2401),(12881,1,14,2501),(12882,1,14,2503),(12883,1,14,2515),(12884,1,14,20001),(12885,1,14,20002),(12886,1,14,23001),(12887,1,14,50101),(12944,1,16,11),(12945,1,16,21),(12946,1,16,31),(13056,1,16,41),(13057,1,16,42),(13058,1,16,44),(13059,1,16,45),(12948,1,16,61),(12949,1,16,71),(12950,1,16,72),(12951,1,16,74),(12952,1,16,75),(12953,1,16,78),(12954,1,16,79),(12955,1,16,81),(12956,1,16,91),(12957,1,16,95),(12958,1,16,97),(12959,1,16,101),(12960,1,16,111),(12961,1,16,121),(13060,1,16,141),(13061,1,16,142),(13062,1,16,144),(12962,1,16,151),(12963,1,16,161),(12964,1,16,171),(12965,1,16,221),(12966,1,16,222),(12967,1,16,229),(12968,1,16,241),(12969,1,16,242),(12970,1,16,243),(13128,1,16,251),(13064,1,16,262),(12972,1,16,281),(12973,1,16,300),(12974,1,16,331),(12975,1,16,341),(12976,1,16,342),(12977,1,16,343),(12978,1,16,344),(12979,1,16,531),(12980,1,16,700),(12981,1,16,1001),(12982,1,16,1002),(12983,1,16,1003),(12984,1,16,1004),(12985,1,16,1005),(12986,1,16,1101),(12987,1,16,1181),(12988,1,16,1182),(12989,1,16,1201),(12990,1,16,1202),(12991,1,16,1231),(12992,1,16,2401),(12993,1,16,2501),(12994,1,16,2503),(12995,1,16,2515),(12996,1,16,20001),(12997,1,16,20002),(12998,1,16,23001),(12999,1,16,50101),(13000,1,17,11),(13001,1,17,21),(13002,1,17,31),(13065,1,17,41),(13066,1,17,42),(13067,1,17,44),(13068,1,17,45),(13004,1,17,61),(13005,1,17,71),(13006,1,17,72),(13007,1,17,74),(13008,1,17,75),(13009,1,17,78),(13010,1,17,79),(13011,1,17,81),(13012,1,17,91),(13013,1,17,95),(13014,1,17,97),(13015,1,17,101),(13016,1,17,111),(13017,1,17,121),(13069,1,17,141),(13070,1,17,142),(13071,1,17,144),(13018,1,17,151),(13019,1,17,161),(13020,1,17,171),(13021,1,17,221),(13022,1,17,222),(13023,1,17,229),(13024,1,17,241),(13025,1,17,242),(13026,1,17,243),(13028,1,17,281),(13029,1,17,300),(13030,1,17,331),(13031,1,17,341),(13032,1,17,342),(13033,1,17,343),(13034,1,17,344),(13035,1,17,531),(13036,1,17,700),(13037,1,17,1001),(13038,1,17,1002),(13039,1,17,1003),(13040,1,17,1004),(13041,1,17,1005),(13042,1,17,1101),(13043,1,17,1181),(13044,1,17,1182),(13045,1,17,1201),(13046,1,17,1202),(13047,1,17,1231),(13048,1,17,2401),(13049,1,17,2501),(13050,1,17,2503),(13051,1,17,2515),(13052,1,17,20001),(13053,1,17,20002),(13054,1,17,23001),(13055,1,17,50101),(14504,1,18,11),(14505,1,18,21),(14506,1,18,31),(14507,1,18,41),(14508,1,18,61),(14509,1,18,71),(14510,1,18,78),(14511,1,18,81),(14512,1,18,91),(14513,1,18,95),(14514,1,18,101),(14515,1,18,111),(14516,1,18,121),(14517,1,18,151),(14518,1,18,161),(14519,1,18,221),(14520,1,18,241),(14521,1,18,262),(14522,1,18,281),(14523,1,18,300),(14524,1,18,331),(14525,1,18,332),(14526,1,18,333),(14527,1,18,341),(14528,1,18,342),(14529,1,18,343),(14530,1,18,344),(14531,1,18,531),(14532,1,18,701),(14533,1,18,771),(14534,1,18,774),(14535,1,18,1001),(14536,1,18,1004),(14537,1,18,1101),(14538,1,18,1181),(14539,1,18,1182),(14540,1,18,1201),(14541,1,18,1231),(14542,1,18,2401),(14543,1,18,2501),(14544,1,18,2503),(14545,1,18,2515),(14546,1,18,20001),(14547,1,18,20002),(14548,1,18,50101),(14549,1,18,59001),(15242,1,19,21),(15243,1,19,31),(15244,1,19,41),(15245,1,19,61),(15246,1,19,71),(15247,1,19,78),(15248,1,19,81),(15249,1,19,101),(15250,1,19,121),(15251,1,19,151),(15252,1,19,161),(15253,1,19,221),(15254,1,19,241),(15255,1,19,262),(15256,1,19,281),(15257,1,19,300),(15258,1,19,331),(15259,1,19,332),(15260,1,19,341),(15261,1,19,342),(15262,1,19,343),(15263,1,19,344),(15264,1,19,531),(15265,1,19,701),(15266,1,19,771),(15267,1,19,774),(15268,1,19,777),(15269,1,19,1001),(15270,1,19,1004),(15271,1,19,1101),(15272,1,19,1121),(15273,1,19,1181),(15274,1,19,1182),(15275,1,19,1201),(15276,1,19,1231),(15277,1,19,2401),(15278,1,19,2501),(15279,1,19,20001),(15280,1,19,20002),(15281,1,19,50101),(15282,1,19,59001),(15283,1,19,63001);
    +/*!40000 ALTER TABLE `llx_user_rights` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_usergroup`
    +--
    +
    +DROP TABLE IF EXISTS `llx_usergroup`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_usergroup` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `nom` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_usergroup_name` (`nom`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_usergroup`
    +--
    +
    +LOCK TABLES `llx_usergroup` WRITE;
    +/*!40000 ALTER TABLE `llx_usergroup` DISABLE KEYS */;
    +INSERT INTO `llx_usergroup` VALUES (1,'Sale representatives',1,'2013-01-16 20:48:08','2015-10-03 09:44:44','All sales representative users',NULL),(2,'Management',1,'2015-10-03 11:46:25','2015-10-03 09:46:25','',NULL),(3,'Scientists',1,'2015-10-03 11:46:46','2015-10-03 09:46:46','',NULL),(4,'Commercial',1,'2015-10-05 21:30:13','2015-10-05 19:30:13','',NULL);
    +/*!40000 ALTER TABLE `llx_usergroup` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_usergroup_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_usergroup_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_usergroup_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_usergroup_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_usergroup_extrafields`
    +--
    +
    +LOCK TABLES `llx_usergroup_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_usergroup_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_usergroup_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_usergroup_rights`
    +--
    +
    +DROP TABLE IF EXISTS `llx_usergroup_rights`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_usergroup_rights` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_usergroup` int(11) NOT NULL,
    +  `fk_id` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_usergroup_rights` (`entity`,`fk_usergroup`,`fk_id`),
    +  KEY `fk_usergroup_rights_fk_usergroup` (`fk_usergroup`),
    +  CONSTRAINT `fk_usergroup_rights_fk_usergroup` FOREIGN KEY (`fk_usergroup`) REFERENCES `llx_usergroup` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=200 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_usergroup_rights`
    +--
    +
    +LOCK TABLES `llx_usergroup_rights` WRITE;
    +/*!40000 ALTER TABLE `llx_usergroup_rights` DISABLE KEYS */;
    +INSERT INTO `llx_usergroup_rights` VALUES (1,1,1,2401),(2,1,1,2402),(3,1,1,2403),(4,1,1,2411),(5,1,1,2412),(6,1,1,2413),(78,1,2,11),(79,1,2,12),(80,1,2,13),(81,1,2,14),(82,1,2,15),(83,1,2,16),(84,1,2,19),(144,1,2,21),(145,1,2,22),(146,1,2,24),(147,1,2,25),(148,1,2,26),(149,1,2,27),(150,1,2,28),(133,1,2,31),(134,1,2,32),(135,1,2,34),(136,1,2,38),(137,1,2,41),(138,1,2,42),(139,1,2,44),(140,1,2,45),(86,1,2,61),(87,1,2,62),(88,1,2,64),(89,1,2,67),(90,1,2,68),(7,1,2,71),(8,1,2,72),(9,1,2,74),(10,1,2,75),(11,1,2,76),(12,1,2,78),(13,1,2,79),(32,1,2,81),(33,1,2,82),(34,1,2,84),(35,1,2,86),(36,1,2,87),(37,1,2,88),(38,1,2,89),(173,1,2,91),(174,1,2,92),(175,1,2,93),(176,1,2,94),(66,1,2,101),(67,1,2,102),(68,1,2,104),(69,1,2,105),(70,1,2,106),(71,1,2,109),(21,1,2,111),(22,1,2,112),(23,1,2,113),(24,1,2,114),(25,1,2,115),(26,1,2,116),(27,1,2,117),(164,1,2,121),(165,1,2,122),(166,1,2,125),(167,1,2,126),(141,1,2,141),(142,1,2,142),(143,1,2,144),(129,1,2,151),(130,1,2,152),(131,1,2,153),(132,1,2,154),(44,1,2,161),(45,1,2,162),(46,1,2,163),(47,1,2,164),(48,1,2,165),(49,1,2,167),(120,1,2,221),(121,1,2,222),(122,1,2,223),(123,1,2,229),(124,1,2,237),(125,1,2,238),(126,1,2,239),(29,1,2,241),(30,1,2,242),(31,1,2,243),(182,1,2,251),(183,1,2,252),(184,1,2,253),(185,1,2,254),(186,1,2,255),(187,1,2,256),(168,1,2,262),(169,1,2,281),(170,1,2,282),(171,1,2,283),(172,1,2,286),(197,1,2,331),(198,1,2,332),(199,1,2,333),(188,1,2,341),(189,1,2,342),(190,1,2,343),(191,1,2,344),(192,1,2,351),(193,1,2,352),(194,1,2,353),(195,1,2,354),(196,1,2,358),(151,1,2,531),(152,1,2,532),(153,1,2,534),(154,1,2,538),(60,1,2,701),(61,1,2,702),(62,1,2,703),(177,1,2,1001),(178,1,2,1002),(179,1,2,1003),(180,1,2,1004),(181,1,2,1005),(72,1,2,1101),(73,1,2,1102),(74,1,2,1104),(75,1,2,1109),(91,1,2,1181),(92,1,2,1182),(93,1,2,1183),(94,1,2,1184),(95,1,2,1185),(96,1,2,1186),(97,1,2,1187),(98,1,2,1188),(99,1,2,1189),(76,1,2,1201),(77,1,2,1202),(100,1,2,1231),(101,1,2,1232),(102,1,2,1233),(103,1,2,1234),(104,1,2,1235),(105,1,2,1236),(106,1,2,1237),(113,1,2,1251),(85,1,2,1321),(39,1,2,1421),(14,1,2,2401),(15,1,2,2402),(16,1,2,2403),(17,1,2,2411),(18,1,2,2412),(19,1,2,2413),(20,1,2,2414),(63,1,2,2501),(64,1,2,2503),(65,1,2,2515),(114,1,2,20001),(115,1,2,20002),(116,1,2,20003),(117,1,2,20004),(118,1,2,20005),(119,1,2,20006),(50,1,2,23001),(51,1,2,23002),(52,1,2,23003),(53,1,2,23004),(28,1,2,50101),(127,1,2,55001),(128,1,2,55002);
    +/*!40000 ALTER TABLE `llx_usergroup_rights` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_usergroup_user`
    +--
    +
    +DROP TABLE IF EXISTS `llx_usergroup_user`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_usergroup_user` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user` int(11) NOT NULL,
    +  `fk_usergroup` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_usergroup_user` (`entity`,`fk_user`,`fk_usergroup`),
    +  KEY `fk_usergroup_user_fk_user` (`fk_user`),
    +  KEY `fk_usergroup_user_fk_usergroup` (`fk_usergroup`),
    +  CONSTRAINT `fk_usergroup_user_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_usergroup_user_fk_usergroup` FOREIGN KEY (`fk_usergroup`) REFERENCES `llx_usergroup` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_usergroup_user`
    +--
    +
    +LOCK TABLES `llx_usergroup_user` WRITE;
    +/*!40000 ALTER TABLE `llx_usergroup_user` DISABLE KEYS */;
    +INSERT INTO `llx_usergroup_user` VALUES (2,1,1,3),(12,1,2,4),(3,1,3,3),(4,1,11,2),(13,1,12,1),(5,1,13,4),(6,1,16,1),(7,1,17,1),(11,1,18,1);
    +/*!40000 ALTER TABLE `llx_usergroup_user` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_webmail_draft`
    +--
    +
    +DROP TABLE IF EXISTS `llx_webmail_draft`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_webmail_draft` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `fk_contact` int(11) NOT NULL DEFAULT '0',
    +  `size` int(11) NOT NULL DEFAULT '0',
    +  `subject` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `body` longtext COLLATE utf8_unicode_ci NOT NULL,
    +  `from` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `to` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `cc` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `bcc` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `files` int(11) NOT NULL DEFAULT '0',
    +  `cron` datetime DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_webmail_draft_fk_user` (`fk_user`),
    +  KEY `idx_webmail_draft_cron` (`cron`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_webmail_draft`
    +--
    +
    +LOCK TABLES `llx_webmail_draft` WRITE;
    +/*!40000 ALTER TABLE `llx_webmail_draft` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_webmail_draft` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_webmail_files`
    +--
    +
    +DROP TABLE IF EXISTS `llx_webmail_files`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_webmail_files` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_mail` int(11) NOT NULL DEFAULT '0',
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    +  `file_name` text NOT NULL,
    +  `file` text NOT NULL,
    +  `file_size` int(11) NOT NULL DEFAULT '0',
    +  `file_type` varchar(255) NOT NULL DEFAULT '',
    +  `search` mediumtext NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_webmail_files_fk_user` (`fk_user`),
    +  KEY `idx_webmail_files_files` (`fk_mail`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_webmail_files`
    +--
    +
    +LOCK TABLES `llx_webmail_files` WRITE;
    +/*!40000 ALTER TABLE `llx_webmail_files` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_webmail_files` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_webmail_mail`
    +--
    +
    +DROP TABLE IF EXISTS `llx_webmail_mail`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_webmail_mail` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `fk_soc` int(11) NOT NULL DEFAULT '0',
    +  `fk_contact` int(11) NOT NULL DEFAULT '0',
    +  `uidl` varchar(255) NOT NULL DEFAULT '',
    +  `datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    +  `size` int(11) NOT NULL DEFAULT '0',
    +  `subject` text NOT NULL,
    +  `body` mediumtext NOT NULL,
    +  `state_new` int(11) NOT NULL DEFAULT '0',
    +  `state_reply` int(11) NOT NULL DEFAULT '0',
    +  `state_forward` int(11) NOT NULL DEFAULT '0',
    +  `state_wait` int(11) NOT NULL DEFAULT '0',
    +  `state_spam` int(11) NOT NULL DEFAULT '0',
    +  `id_correo` int(11) NOT NULL DEFAULT '0',
    +  `is_outbox` int(11) NOT NULL DEFAULT '0',
    +  `state_sent` int(11) NOT NULL DEFAULT '0',
    +  `state_error` varchar(255) NOT NULL DEFAULT '',
    +  `state_crt` int(11) NOT NULL DEFAULT '0',
    +  `state_archiv` int(11) NOT NULL DEFAULT '0',
    +  `priority` int(11) NOT NULL DEFAULT '0',
    +  `sensitivity` int(11) NOT NULL DEFAULT '0',
    +  `from` text NOT NULL,
    +  `to` text NOT NULL,
    +  `cc` text NOT NULL,
    +  `bcc` text NOT NULL,
    +  `files` int(11) NOT NULL DEFAULT '0',
    +  `state_delete` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_webmail_mail_nospam` (`fk_user`,`state_spam`),
    +  KEY `idx_webmail_mail_count` (`fk_user`,`state_new`),
    +  KEY `idx_webmail_mail_sendmail` (`is_outbox`,`state_sent`),
    +  KEY `idx_webmail_mail_fk_user` (`fk_user`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_webmail_mail`
    +--
    +
    +LOCK TABLES `llx_webmail_mail` WRITE;
    +/*!40000 ALTER TABLE `llx_webmail_mail` DISABLE KEYS */;
    +INSERT INTO `llx_webmail_mail` VALUES (1,1,1,27,0,'1452254519','2016-01-08 16:01:59',0,'Submission of invoice 16','You will find here the invoice 16<br />\r\n<br />\r\nSincerely',0,0,0,0,0,0,1,1,'0',0,0,0,0,'first last <fff@ff.com>','Aljoun Samira <contact@destailleur.fr>','','',1,0);
    +/*!40000 ALTER TABLE `llx_webmail_mail` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_webmail_users`
    +--
    +
    +DROP TABLE IF EXISTS `llx_webmail_users`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_webmail_users` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user` int(11) NOT NULL,
    +  `login` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `password` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `safemail` tinyint(4) DEFAULT '1',
    +  `dayssafe` int(11) DEFAULT '10',
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_webmail_users_fk_user` (`fk_user`),
    +  CONSTRAINT `fk_webmail_users_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_webmail_users`
    +--
    +
    +LOCK TABLES `llx_webmail_users` WRITE;
    +/*!40000 ALTER TABLE `llx_webmail_users` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_webmail_users` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_webmail_users_view`
    +--
    +
    +DROP TABLE IF EXISTS `llx_webmail_users_view`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_webmail_users_view` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL,
    +  `fk_user_view` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_webmail_users_view`
    +--
    +
    +LOCK TABLES `llx_webmail_users_view` WRITE;
    +/*!40000 ALTER TABLE `llx_webmail_users_view` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_webmail_users_view` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_website`
    +--
    +
    +DROP TABLE IF EXISTS `llx_website`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_website` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `fk_default_home` int(11) DEFAULT NULL,
    +  `virtualhost` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_modification` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_create` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_website_ref` (`ref`,`entity`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_website`
    +--
    +
    +LOCK TABLES `llx_website` WRITE;
    +/*!40000 ALTER TABLE `llx_website` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_website` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_website_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_website_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_website_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_website_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_website_extrafields`
    +--
    +
    +LOCK TABLES `llx_website_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_website_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_website_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_website_page`
    +--
    +
    +DROP TABLE IF EXISTS `llx_website_page`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_website_page` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_website` int(11) NOT NULL,
    +  `pageurl` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `aliasalt` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `keywords` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `content` mediumtext COLLATE utf8_unicode_ci,
    +  `status` int(11) DEFAULT '1',
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_modification` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_create` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `type_container` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'page',
    +  `lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_page` int(11) DEFAULT NULL,
    +  `grabbed_from` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `htmlheader` mediumtext COLLATE utf8_unicode_ci,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_website_page_url` (`fk_website`,`pageurl`),
    +  CONSTRAINT `fk_website_page_website` FOREIGN KEY (`fk_website`) REFERENCES `llx_website` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_website_page`
    +--
    +
    +LOCK TABLES `llx_website_page` WRITE;
    +/*!40000 ALTER TABLE `llx_website_page` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_website_page` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_websiteaccount`
    +--
    +
    +DROP TABLE IF EXISTS `llx_websiteaccount`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_websiteaccount` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `login` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `password` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_websiteaccount_rowid` (`rowid`),
    +  KEY `idx_websiteaccount_login` (`login`),
    +  KEY `idx_websiteaccount_fk_soc` (`fk_soc`),
    +  KEY `idx_websiteaccount_import_key` (`import_key`),
    +  KEY `idx_websiteaccount_status` (`status`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_websiteaccount`
    +--
    +
    +LOCK TABLES `llx_websiteaccount` WRITE;
    +/*!40000 ALTER TABLE `llx_websiteaccount` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_websiteaccount` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_websiteaccount_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_websiteaccount_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_websiteaccount_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_websiteaccount_extrafields`
    +--
    +
    +LOCK TABLES `llx_websiteaccount_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_websiteaccount_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_websiteaccount_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_workstation`
    +--
    +
    +DROP TABLE IF EXISTS `llx_workstation`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_workstation` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '0',
    +  `fk_usergroup` int(11) NOT NULL DEFAULT '0',
    +  `name` varchar(255) DEFAULT NULL,
    +  `background` varchar(255) DEFAULT NULL,
    +  `type` varchar(10) DEFAULT NULL,
    +  `code` varchar(10) DEFAULT NULL,
    +  `nb_hour_prepare` double NOT NULL DEFAULT '0',
    +  `nb_hour_manufacture` double NOT NULL DEFAULT '0',
    +  `nb_hour_capacity` double NOT NULL DEFAULT '0',
    +  `nb_ressource` double NOT NULL DEFAULT '0',
    +  `thm` double NOT NULL DEFAULT '0',
    +  `thm_machine` double NOT NULL DEFAULT '0',
    +  `thm_overtime` double NOT NULL DEFAULT '0',
    +  `thm_night` double NOT NULL DEFAULT '0',
    +  `nb_hour_before` double NOT NULL DEFAULT '0',
    +  `nb_hour_after` double NOT NULL DEFAULT '0',
    +  `is_parallele` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `entity` (`entity`),
    +  KEY `fk_usergroup` (`fk_usergroup`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_workstation`
    +--
    +
    +LOCK TABLES `llx_workstation` WRITE;
    +/*!40000 ALTER TABLE `llx_workstation` DISABLE KEYS */;
    +INSERT INTO `llx_workstation` VALUES (1,'2018-11-18 17:50:22','2018-11-18 17:50:22',1,4,'aaaa','#','HUMAN','',0,0,0,0,0,0,0,0,0,0,0);
    +/*!40000 ALTER TABLE `llx_workstation` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_workstation_product`
    +--
    +
    +DROP TABLE IF EXISTS `llx_workstation_product`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_workstation_product` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `fk_workstation` int(11) NOT NULL DEFAULT '0',
    +  `nb_hour` double NOT NULL DEFAULT '0',
    +  `rang` double NOT NULL DEFAULT '0',
    +  `nb_hour_prepare` double NOT NULL DEFAULT '0',
    +  `nb_hour_manufacture` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_product` (`fk_product`),
    +  KEY `fk_workstation` (`fk_workstation`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_workstation_product`
    +--
    +
    +LOCK TABLES `llx_workstation_product` WRITE;
    +/*!40000 ALTER TABLE `llx_workstation_product` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_workstation_product` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_workstation_schedule`
    +--
    +
    +DROP TABLE IF EXISTS `llx_workstation_schedule`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_workstation_schedule` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_workstation` int(11) NOT NULL DEFAULT '0',
    +  `day_moment` varchar(255) DEFAULT NULL,
    +  `week_day` int(11) NOT NULL DEFAULT '0',
    +  `nb_ressource` int(11) NOT NULL DEFAULT '0',
    +  `date_off` datetime DEFAULT NULL,
    +  `nb_hour_capacity` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_workstation` (`fk_workstation`),
    +  KEY `date_off` (`date_off`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_workstation_schedule`
    +--
    +
    +LOCK TABLES `llx_workstation_schedule` WRITE;
    +/*!40000 ALTER TABLE `llx_workstation_schedule` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_workstation_schedule` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `tmp_links`
    +--
    +
    +DROP TABLE IF EXISTS `tmp_links`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `tmp_links` (
    +  `objectid` int(11) NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `max_rowid` int(11) DEFAULT NULL,
    +  `count_rowid` bigint(21) NOT NULL DEFAULT '0'
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `tmp_links`
    +--
    +
    +LOCK TABLES `tmp_links` WRITE;
    +/*!40000 ALTER TABLE `tmp_links` DISABLE KEYS */;
    +INSERT INTO `tmp_links` VALUES (3,'fdf',6,2);
    +/*!40000 ALTER TABLE `tmp_links` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `tmp_llx_product_batch`
    +--
    +
    +DROP TABLE IF EXISTS `tmp_llx_product_batch`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `tmp_llx_product_batch` (
    +  `fk_product_stock` int(11) NOT NULL,
    +  `eatby` datetime DEFAULT NULL,
    +  `sellby` datetime DEFAULT NULL,
    +  `batch` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty` double DEFAULT NULL,
    +  `nb` bigint(21) NOT NULL DEFAULT '0'
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `tmp_llx_product_batch`
    +--
    +
    +LOCK TABLES `tmp_llx_product_batch` WRITE;
    +/*!40000 ALTER TABLE `tmp_llx_product_batch` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `tmp_llx_product_batch` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `tmp_llx_product_batch2`
    +--
    +
    +DROP TABLE IF EXISTS `tmp_llx_product_batch2`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `tmp_llx_product_batch2` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `fk_product_stock` int(11) NOT NULL,
    +  `eatby` datetime DEFAULT NULL,
    +  `sellby` datetime DEFAULT NULL,
    +  `batch` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty` double NOT NULL DEFAULT '0'
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `tmp_llx_product_batch2`
    +--
    +
    +LOCK TABLES `tmp_llx_product_batch2` WRITE;
    +/*!40000 ALTER TABLE `tmp_llx_product_batch2` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `tmp_llx_product_batch2` ENABLE KEYS */;
    +UNLOCK TABLES;
    +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
    +
    +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
    +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
    +
    +-- Dump completed on 2018-11-23 12:56:45
    diff --git a/dev/initdemo/mysqldump_dolibarr_9.0.0.sql b/dev/initdemo/mysqldump_dolibarr_9.0.0.sql
    new file mode 100644
    index 00000000000..c2fc6e39c9f
    --- /dev/null
    +++ b/dev/initdemo/mysqldump_dolibarr_9.0.0.sql
    @@ -0,0 +1,13954 @@
    +-- MySQL dump 10.13  Distrib 5.7.24, for Linux (x86_64)
    +--
    +-- Host: localhost    Database: dolibarr_dev
    +-- ------------------------------------------------------
    +-- Server version	5.7.24-0ubuntu0.16.04.1
    +
    +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    +/*!40101 SET NAMES utf8 */;
    +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    +/*!40103 SET TIME_ZONE='+00:00' */;
    +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
    +
    +--
    +-- Table structure for table `llx_accounting_account`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_account`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_account` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_pcg_version` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `pcg_type` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `pcg_subtype` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `account_number` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `account_parent` int(11) DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_accounting_category` int(11) DEFAULT '0',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_accountingaccount_fk_pcg_version` (`fk_pcg_version`),
    +  KEY `idx_accounting_account_account_number` (`account_number`),
    +  KEY `idx_accounting_account_account_parent` (`account_parent`),
    +  CONSTRAINT `fk_accounting_account_fk_pcg_version` FOREIGN KEY (`fk_pcg_version`) REFERENCES `llx_accounting_system` (`pcg_version`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4785 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_account`
    +--
    +
    +LOCK TABLES `llx_accounting_account` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_account` DISABLE KEYS */;
    +INSERT INTO `llx_accounting_account` VALUES (1,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','CAPITAL','101',1401,'Capital',0,NULL,NULL,1,NULL,NULL),(2,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','105',1401,'Ecarts de réévaluation',0,NULL,NULL,1,NULL,NULL),(3,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','1061',1401,'Réserve légale',0,NULL,NULL,1,NULL,NULL),(4,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','1063',1401,'Réserves statutaires ou contractuelles',0,NULL,NULL,1,NULL,NULL),(5,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','1064',1401,'Réserves réglementées',0,NULL,NULL,1,NULL,NULL),(6,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','1068',1401,'Autres réserves',0,NULL,NULL,1,NULL,NULL),(7,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','108',1401,'Compte de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(8,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','12',1401,'Résultat de l\'exercice',0,NULL,NULL,1,NULL,NULL),(9,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','145',1401,'Amortissements dérogatoires',0,NULL,NULL,1,NULL,NULL),(10,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','146',1401,'Provision spéciale de réévaluation',0,NULL,NULL,1,NULL,NULL),(11,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','147',1401,'Plus-values réinvesties',0,NULL,NULL,1,NULL,NULL),(12,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','148',1401,'Autres provisions réglementées',0,NULL,NULL,1,NULL,NULL),(13,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','15',1401,'Provisions pour risques et charges',0,NULL,NULL,1,NULL,NULL),(14,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','CAPIT','XXXXXX','16',1401,'Emprunts et dettes assimilees',0,NULL,NULL,1,NULL,NULL),(15,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','20',1402,'Immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(16,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','201',15,'Frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(17,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','206',15,'Droit au bail',0,NULL,NULL,1,NULL,NULL),(18,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','207',15,'Fonds commercial',0,NULL,NULL,1,NULL,NULL),(19,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','208',15,'Autres immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(20,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','21',1402,'Immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(21,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','23',1402,'Immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(22,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','27',1402,'Autres immobilisations financieres',0,NULL,NULL,1,NULL,NULL),(23,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','280',1402,'Amortissements des immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(24,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','281',1402,'Amortissements des immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(25,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','290',1402,'Provisions pour dépréciation des immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(26,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','291',1402,'Provisions pour dépréciation des immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(27,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','IMMO','XXXXXX','297',1402,'Provisions pour dépréciation des autres immobilisations financières',0,NULL,NULL,1,NULL,NULL),(28,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','31',1403,'Matieres premières',0,NULL,NULL,1,NULL,NULL),(29,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','32',1403,'Autres approvisionnements',0,NULL,NULL,1,NULL,NULL),(30,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','33',1403,'En-cours de production de biens',0,NULL,NULL,1,NULL,NULL),(31,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','34',1403,'En-cours de production de services',0,NULL,NULL,1,NULL,NULL),(32,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','35',1403,'Stocks de produits',0,NULL,NULL,1,NULL,NULL),(33,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','37',1403,'Stocks de marchandises',0,NULL,NULL,1,NULL,NULL),(34,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','391',1403,'Provisions pour dépréciation des matières premières',0,NULL,NULL,1,NULL,NULL),(35,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','392',1403,'Provisions pour dépréciation des autres approvisionnements',0,NULL,NULL,1,NULL,NULL),(36,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','393',1403,'Provisions pour dépréciation des en-cours de production de biens',0,NULL,NULL,1,NULL,NULL),(37,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','394',1403,'Provisions pour dépréciation des en-cours de production de services',0,NULL,NULL,1,NULL,NULL),(38,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','395',1403,'Provisions pour dépréciation des stocks de produits',0,NULL,NULL,1,NULL,NULL),(39,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','STOCK','XXXXXX','397',1403,'Provisions pour dépréciation des stocks de marchandises',0,NULL,NULL,1,NULL,NULL),(40,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','SUPPLIER','400',1404,'Fournisseurs et Comptes rattachés',0,NULL,NULL,1,NULL,NULL),(41,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','409',1404,'Fournisseurs débiteurs',0,NULL,NULL,1,NULL,NULL),(42,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','CUSTOMER','410',1404,'Clients et Comptes rattachés',0,NULL,NULL,1,NULL,NULL),(43,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','419',1404,'Clients créditeurs',0,NULL,NULL,1,NULL,NULL),(44,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','421',1404,'Personnel',0,NULL,NULL,1,NULL,NULL),(45,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','428',1404,'Personnel',0,NULL,NULL,1,NULL,NULL),(46,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','43',1404,'Sécurité sociale et autres organismes sociaux',0,NULL,NULL,1,NULL,NULL),(47,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','444',1404,'Etat - impôts sur bénéfice',0,NULL,NULL,1,NULL,NULL),(48,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','445',1404,'Etat - Taxes sur chiffre affaires',0,NULL,NULL,1,NULL,NULL),(49,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','447',1404,'Autres impôts, taxes et versements assimilés',0,NULL,NULL,1,NULL,NULL),(50,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','45',1404,'Groupe et associes',0,NULL,NULL,1,NULL,NULL),(51,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','455',50,'Associés',0,NULL,NULL,1,NULL,NULL),(52,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','46',1404,'Débiteurs divers et créditeurs divers',0,NULL,NULL,1,NULL,NULL),(53,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','47',1404,'Comptes transitoires ou d\'attente',0,NULL,NULL,1,NULL,NULL),(54,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','481',1404,'Charges à répartir sur plusieurs exercices',0,NULL,NULL,1,NULL,NULL),(55,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','486',1404,'Charges constatées d\'avance',0,NULL,NULL,1,NULL,NULL),(56,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','487',1404,'Produits constatés d\'avance',0,NULL,NULL,1,NULL,NULL),(57,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','491',1404,'Provisions pour dépréciation des comptes de clients',0,NULL,NULL,1,NULL,NULL),(58,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','TIERS','XXXXXX','496',1404,'Provisions pour dépréciation des comptes de débiteurs divers',0,NULL,NULL,1,NULL,NULL),(59,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','XXXXXX','50',1405,'Valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(60,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','BANK','51',1405,'Banques, établissements financiers et assimilés',0,NULL,NULL,1,NULL,NULL),(61,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','CASH','53',1405,'Caisse',0,NULL,NULL,1,NULL,NULL),(62,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','XXXXXX','54',1405,'Régies d\'avance et accréditifs',0,NULL,NULL,1,NULL,NULL),(63,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','XXXXXX','58',1405,'Virements internes',0,NULL,NULL,1,NULL,NULL),(64,1,NULL,'2016-01-22 17:28:15','PCG99-ABREGE','FINAN','XXXXXX','590',1405,'Provisions pour dépréciation des valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(65,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','PRODUCT','60',1406,'Achats',0,NULL,NULL,1,NULL,NULL),(66,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','603',65,'Variations des stocks',0,NULL,NULL,1,NULL,NULL),(67,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','SERVICE','61',1406,'Services extérieurs',0,NULL,NULL,1,NULL,NULL),(68,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','62',1406,'Autres services extérieurs',0,NULL,NULL,1,NULL,NULL),(69,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','63',1406,'Impôts, taxes et versements assimiles',0,NULL,NULL,1,NULL,NULL),(70,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','641',1406,'Rémunérations du personnel',0,NULL,NULL,1,NULL,NULL),(71,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','644',1406,'Rémunération du travail de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(72,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','SOCIAL','645',1406,'Charges de sécurité sociale et de prévoyance',0,NULL,NULL,1,NULL,NULL),(73,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','646',1406,'Cotisations sociales personnelles de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(74,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','65',1406,'Autres charges de gestion courante',0,NULL,NULL,1,NULL,NULL),(75,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','66',1406,'Charges financières',0,NULL,NULL,1,NULL,NULL),(76,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','67',1406,'Charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(77,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','681',1406,'Dotations aux amortissements et aux provisions',0,NULL,NULL,1,NULL,NULL),(78,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','686',1406,'Dotations aux amortissements et aux provisions',0,NULL,NULL,1,NULL,NULL),(79,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','687',1406,'Dotations aux amortissements et aux provisions',0,NULL,NULL,1,NULL,NULL),(80,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','691',1406,'Participation des salariés aux résultats',0,NULL,NULL,1,NULL,NULL),(81,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','695',1406,'Impôts sur les bénéfices',0,NULL,NULL,1,NULL,NULL),(82,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','697',1406,'Imposition forfaitaire annuelle des sociétés',0,NULL,NULL,1,NULL,NULL),(83,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','699',1406,'Produits',0,NULL,NULL,1,NULL,NULL),(84,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','PRODUCT','701',1407,'Ventes de produits finis',0,NULL,NULL,1,NULL,NULL),(85,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','SERVICE','706',1407,'Prestations de services',0,NULL,NULL,1,NULL,NULL),(86,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','PRODUCT','707',1407,'Ventes de marchandises',0,NULL,NULL,1,NULL,NULL),(87,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','PRODUCT','708',1407,'Produits des activités annexes',0,NULL,NULL,1,NULL,NULL),(88,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','709',1407,'Rabais, remises et ristournes accordés par l\'entreprise',0,NULL,NULL,1,NULL,NULL),(89,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','713',1407,'Variation des stocks',0,NULL,NULL,1,NULL,NULL),(90,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','72',1407,'Production immobilisée',0,NULL,NULL,1,NULL,NULL),(91,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','73',1407,'Produits nets partiels sur opérations à long terme',0,NULL,NULL,1,NULL,NULL),(92,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','74',1407,'Subventions d\'exploitation',0,NULL,NULL,1,NULL,NULL),(93,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','75',1407,'Autres produits de gestion courante',0,NULL,NULL,1,NULL,NULL),(94,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','753',93,'Jetons de présence et rémunérations d\'administrateurs, gérants,...',0,NULL,NULL,1,NULL,NULL),(95,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','754',93,'Ristournes perçues des coopératives',0,NULL,NULL,1,NULL,NULL),(96,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','755',93,'Quotes-parts de résultat sur opérations faites en commun',0,NULL,NULL,1,NULL,NULL),(97,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','76',1407,'Produits financiers',0,NULL,NULL,1,NULL,NULL),(98,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','77',1407,'Produits exceptionnels',0,NULL,NULL,1,NULL,NULL),(99,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','781',1407,'Reprises sur amortissements et provisions',0,NULL,NULL,1,NULL,NULL),(100,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','786',1407,'Reprises sur provisions pour risques',0,NULL,NULL,1,NULL,NULL),(101,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','787',1407,'Reprises sur provisions',0,NULL,NULL,1,NULL,NULL),(102,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','79',1407,'Transferts de charges',0,NULL,NULL,1,NULL,NULL),(103,1,NULL,'2017-02-20 10:49:11','PCG99-BASE','CAPIT','XXXXXX','10',1501,'Capital  et réserves',0,NULL,NULL,1,NULL,NULL),(104,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','CAPITAL','101',103,'Capital',0,NULL,NULL,1,NULL,NULL),(105,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','104',103,'Primes liées au capital social',0,NULL,NULL,1,NULL,NULL),(106,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','105',103,'Ecarts de réévaluation',0,NULL,NULL,1,NULL,NULL),(107,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','106',103,'Réserves',0,NULL,NULL,1,NULL,NULL),(108,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','107',103,'Ecart d\'equivalence',0,NULL,NULL,1,NULL,NULL),(109,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','108',103,'Compte de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(110,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','109',103,'Actionnaires : capital souscrit - non appelé',0,NULL,NULL,1,NULL,NULL),(111,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','11',1501,'Report à nouveau (solde créditeur ou débiteur)',0,NULL,NULL,1,NULL,NULL),(112,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','110',111,'Report à nouveau (solde créditeur)',0,NULL,NULL,1,NULL,NULL),(113,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','119',111,'Report à nouveau (solde débiteur)',0,NULL,NULL,1,NULL,NULL),(114,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','12',1501,'Résultat de l\'exercice (bénéfice ou perte)',0,NULL,NULL,1,NULL,NULL),(115,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','120',114,'Résultat de l\'exercice (bénéfice)',0,NULL,NULL,1,NULL,NULL),(116,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','129',114,'Résultat de l\'exercice (perte)',0,NULL,NULL,1,NULL,NULL),(117,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','13',1501,'Subventions d\'investissement',0,NULL,NULL,1,NULL,NULL),(118,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','131',117,'Subventions d\'équipement',0,NULL,NULL,1,NULL,NULL),(119,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','138',117,'Autres subventions d\'investissement',0,NULL,NULL,1,NULL,NULL),(120,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','139',117,'Subventions d\'investissement inscrites au compte de résultat',0,NULL,NULL,1,NULL,NULL),(121,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','14',1501,'Provisions réglementées',0,NULL,NULL,1,NULL,NULL),(122,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','142',121,'Provisions réglementées relatives aux immobilisations',0,NULL,NULL,1,NULL,NULL),(123,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','143',121,'Provisions réglementées relatives aux stocks',0,NULL,NULL,1,NULL,NULL),(124,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','144',121,'Provisions réglementées relatives aux autres éléments de l\'actif',0,NULL,NULL,1,NULL,NULL),(125,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','145',121,'Amortissements dérogatoires',0,NULL,NULL,1,NULL,NULL),(126,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','146',121,'Provision spéciale de réévaluation',0,NULL,NULL,1,NULL,NULL),(127,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','147',121,'Plus-values réinvesties',0,NULL,NULL,1,NULL,NULL),(128,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','148',121,'Autres provisions réglementées',0,NULL,NULL,1,NULL,NULL),(129,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','15',1501,'Provisions pour risques et charges',0,NULL,NULL,1,NULL,NULL),(130,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','151',129,'Provisions pour risques',0,NULL,NULL,1,NULL,NULL),(131,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','153',129,'Provisions pour pensions et obligations similaires',0,NULL,NULL,1,NULL,NULL),(132,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','154',129,'Provisions pour restructurations',0,NULL,NULL,1,NULL,NULL),(133,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','155',129,'Provisions pour impôts',0,NULL,NULL,1,NULL,NULL),(134,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','156',129,'Provisions pour renouvellement des immobilisations (entreprises concessionnaires)',0,NULL,NULL,1,NULL,NULL),(135,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','157',129,'Provisions pour charges à répartir sur plusieurs exercices',0,NULL,NULL,1,NULL,NULL),(136,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','158',129,'Autres provisions pour charges',0,NULL,NULL,1,NULL,NULL),(137,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','16',1501,'Emprunts et dettes assimilees',0,NULL,NULL,1,NULL,NULL),(138,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','161',137,'Emprunts obligataires convertibles',0,NULL,NULL,1,NULL,NULL),(139,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','163',137,'Autres emprunts obligataires',0,NULL,NULL,1,NULL,NULL),(140,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','164',137,'Emprunts auprès des établissements de crédit',0,NULL,NULL,1,NULL,NULL),(141,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','165',137,'Dépôts et cautionnements reçus',0,NULL,NULL,1,NULL,NULL),(142,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','166',137,'Participation des salariés aux résultats',0,NULL,NULL,1,NULL,NULL),(143,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','167',137,'Emprunts et dettes assortis de conditions particulières',0,NULL,NULL,1,NULL,NULL),(144,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','168',137,'Autres emprunts et dettes assimilées',0,NULL,NULL,1,NULL,NULL),(145,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','169',137,'Primes de remboursement des obligations',0,NULL,NULL,1,NULL,NULL),(146,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','17',1501,'Dettes rattachées à des participations',0,NULL,NULL,1,NULL,NULL),(147,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','171',146,'Dettes rattachées à des participations (groupe)',0,NULL,NULL,1,NULL,NULL),(148,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','174',146,'Dettes rattachées à des participations (hors groupe)',0,NULL,NULL,1,NULL,NULL),(149,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','178',146,'Dettes rattachées à des sociétés en participation',0,NULL,NULL,1,NULL,NULL),(150,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','18',1501,'Comptes de liaison des établissements et sociétés en participation',0,NULL,NULL,1,NULL,NULL),(151,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','181',150,'Comptes de liaison des établissements',0,NULL,NULL,1,NULL,NULL),(152,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','186',150,'Biens et prestations de services échangés entre établissements (charges)',0,NULL,NULL,1,NULL,NULL),(153,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','187',150,'Biens et prestations de services échangés entre établissements (produits)',0,NULL,NULL,1,NULL,NULL),(154,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','CAPIT','XXXXXX','188',150,'Comptes de liaison des sociétés en participation',0,NULL,NULL,1,NULL,NULL),(155,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','20',1502,'Immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(156,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','201',155,'Frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(157,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','203',155,'Frais de recherche et de développement',0,NULL,NULL,1,NULL,NULL),(158,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','205',155,'Concessions et droits similaires, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',0,NULL,NULL,1,NULL,NULL),(159,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','206',155,'Droit au bail',0,NULL,NULL,1,NULL,NULL),(160,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','207',155,'Fonds commercial',0,NULL,NULL,1,NULL,NULL),(161,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','208',155,'Autres immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(162,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','21',1502,'Immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(163,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','211',162,'Terrains',0,NULL,NULL,1,NULL,NULL),(164,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','212',162,'Agencements et aménagements de terrains',0,NULL,NULL,1,NULL,NULL),(165,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','213',162,'Constructions',0,NULL,NULL,1,NULL,NULL),(166,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','214',162,'Constructions sur sol d\'autrui',0,NULL,NULL,1,NULL,NULL),(167,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','215',162,'Installations techniques, matériels et outillage industriels',0,NULL,NULL,1,NULL,NULL),(168,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','218',162,'Autres immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(169,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','22',1502,'Immobilisations mises en concession',0,NULL,NULL,1,NULL,NULL),(170,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','23',1502,'Immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(171,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','231',170,'Immobilisations corporelles en cours',0,NULL,NULL,1,NULL,NULL),(172,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','232',170,'Immobilisations incorporelles en cours',0,NULL,NULL,1,NULL,NULL),(173,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','237',170,'Avances et acomptes versés sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(174,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','238',170,'Avances et acomptes versés sur commandes d\'immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(175,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','25',1502,'Parts dans des entreprises liées et créances sur des entreprises liées',0,NULL,NULL,1,NULL,NULL),(176,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','26',1502,'Participations et créances rattachées à des participations',0,NULL,NULL,1,NULL,NULL),(177,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','261',176,'Titres de participation',0,NULL,NULL,1,NULL,NULL),(178,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','266',176,'Autres formes de participation',0,NULL,NULL,1,NULL,NULL),(179,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','267',176,'Créances rattachées à des participations',0,NULL,NULL,1,NULL,NULL),(180,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','268',176,'Créances rattachées à des sociétés en participation',0,NULL,NULL,1,NULL,NULL),(181,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','269',176,'Versements restant à effectuer sur titres de participation non libérés',0,NULL,NULL,1,NULL,NULL),(182,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','27',1502,'Autres immobilisations financieres',0,NULL,NULL,1,NULL,NULL),(183,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','271',183,'Titres immobilisés autres que les titres immobilisés de l\'activité de portefeuille (droit de propriété)',0,NULL,NULL,1,NULL,NULL),(184,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','272',183,'Titres immobilisés (droit de créance)',0,NULL,NULL,1,NULL,NULL),(185,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','273',183,'Titres immobilisés de l\'activité de portefeuille',0,NULL,NULL,1,NULL,NULL),(186,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','274',183,'Prêts',0,NULL,NULL,1,NULL,NULL),(187,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','275',183,'Dépôts et cautionnements versés',0,NULL,NULL,1,NULL,NULL),(188,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','276',183,'Autres créances immobilisées',0,NULL,NULL,1,NULL,NULL),(189,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','277',183,'(Actions propres ou parts propres)',0,NULL,NULL,1,NULL,NULL),(190,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','279',183,'Versements restant à effectuer sur titres immobilisés non libérés',0,NULL,NULL,1,NULL,NULL),(191,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','28',1502,'Amortissements des immobilisations',0,NULL,NULL,1,NULL,NULL),(192,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','280',191,'Amortissements des immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(193,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','281',191,'Amortissements des immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(194,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','282',191,'Amortissements des immobilisations mises en concession',0,NULL,NULL,1,NULL,NULL),(195,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','29',1502,'Dépréciations des immobilisations',0,NULL,NULL,1,NULL,NULL),(196,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','290',195,'Dépréciations des immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(197,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','291',195,'Dépréciations des immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(198,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','292',195,'Dépréciations des immobilisations mises en concession',0,NULL,NULL,1,NULL,NULL),(199,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','293',195,'Dépréciations des immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(200,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','296',195,'Provisions pour dépréciation des participations et créances rattachées à des participations',0,NULL,NULL,1,NULL,NULL),(201,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','IMMO','XXXXXX','297',195,'Provisions pour dépréciation des autres immobilisations financières',0,NULL,NULL,1,NULL,NULL),(202,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','31',1503,'Matières premières (et fournitures)',0,NULL,NULL,1,NULL,NULL),(203,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','311',202,'Matières (ou groupe) A',0,NULL,NULL,1,NULL,NULL),(204,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','312',202,'Matières (ou groupe) B',0,NULL,NULL,1,NULL,NULL),(205,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','317',202,'Fournitures A, B, C,',0,NULL,NULL,1,NULL,NULL),(206,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','32',1503,'Autres approvisionnements',0,NULL,NULL,1,NULL,NULL),(207,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','321',206,'Matières consommables',0,NULL,NULL,1,NULL,NULL),(208,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','322',206,'Fournitures consommables',0,NULL,NULL,1,NULL,NULL),(209,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','326',206,'Emballages',0,NULL,NULL,1,NULL,NULL),(210,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','33',1503,'En-cours de production de biens',0,NULL,NULL,1,NULL,NULL),(211,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','331',210,'Produits en cours',0,NULL,NULL,1,NULL,NULL),(212,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','335',210,'Travaux en cours',0,NULL,NULL,1,NULL,NULL),(213,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','34',1503,'En-cours de production de services',0,NULL,NULL,1,NULL,NULL),(214,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','341',213,'Etudes en cours',0,NULL,NULL,1,NULL,NULL),(215,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','345',213,'Prestations de services en cours',0,NULL,NULL,1,NULL,NULL),(216,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','35',1503,'Stocks de produits',0,NULL,NULL,1,NULL,NULL),(217,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','351',216,'Produits intermédiaires',0,NULL,NULL,1,NULL,NULL),(218,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','355',216,'Produits finis',0,NULL,NULL,1,NULL,NULL),(219,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','358',216,'Produits résiduels (ou matières de récupération)',0,NULL,NULL,1,NULL,NULL),(220,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','37',1503,'Stocks de marchandises',0,NULL,NULL,1,NULL,NULL),(221,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','371',220,'Marchandises (ou groupe) A',0,NULL,NULL,1,NULL,NULL),(222,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','372',220,'Marchandises (ou groupe) B',0,NULL,NULL,1,NULL,NULL),(223,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','39',1503,'Provisions pour dépréciation des stocks et en-cours',0,NULL,NULL,1,NULL,NULL),(224,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','391',223,'Provisions pour dépréciation des matières premières',0,NULL,NULL,1,NULL,NULL),(225,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','392',223,'Provisions pour dépréciation des autres approvisionnements',0,NULL,NULL,1,NULL,NULL),(226,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','393',223,'Provisions pour dépréciation des en-cours de production de biens',0,NULL,NULL,1,NULL,NULL),(227,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','394',223,'Provisions pour dépréciation des en-cours de production de services',0,NULL,NULL,1,NULL,NULL),(228,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','395',223,'Provisions pour dépréciation des stocks de produits',0,NULL,NULL,1,NULL,NULL),(229,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','STOCK','XXXXXX','397',223,'Provisions pour dépréciation des stocks de marchandises',0,NULL,NULL,1,NULL,NULL),(230,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','40',1504,'Fournisseurs et Comptes rattachés',0,NULL,NULL,1,NULL,NULL),(231,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','400',230,'Fournisseurs et Comptes rattachés',0,NULL,NULL,1,NULL,NULL),(232,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','SUPPLIER','401',230,'Fournisseurs',0,NULL,NULL,1,NULL,NULL),(233,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','403',230,'Fournisseurs - Effets à payer',0,NULL,NULL,1,NULL,NULL),(234,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','404',230,'Fournisseurs d\'immobilisations',0,NULL,NULL,1,NULL,NULL),(235,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','405',230,'Fournisseurs d\'immobilisations - Effets à payer',0,NULL,NULL,1,NULL,NULL),(236,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','408',230,'Fournisseurs - Factures non parvenues',0,NULL,NULL,1,NULL,NULL),(237,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','409',230,'Fournisseurs débiteurs',0,NULL,NULL,1,NULL,NULL),(238,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','41',1504,'Clients et comptes rattachés',0,NULL,NULL,1,NULL,NULL),(239,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','410',238,'Clients et Comptes rattachés',0,NULL,NULL,1,NULL,NULL),(240,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','CUSTOMER','411',238,'Clients',0,NULL,NULL,1,NULL,NULL),(241,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','413',238,'Clients - Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(242,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','416',238,'Clients douteux ou litigieux',0,NULL,NULL,1,NULL,NULL),(243,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','418',238,'Clients - Produits non encore facturés',0,NULL,NULL,1,NULL,NULL),(244,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','419',238,'Clients créditeurs',0,NULL,NULL,1,NULL,NULL),(245,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','42',1504,'Personnel et comptes rattachés',0,NULL,NULL,1,NULL,NULL),(246,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','421',245,'Personnel - Rémunérations dues',0,NULL,NULL,1,NULL,NULL),(247,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','422',245,'Comités d\'entreprises, d\'établissement, ...',0,NULL,NULL,1,NULL,NULL),(248,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','424',245,'Participation des salariés aux résultats',0,NULL,NULL,1,NULL,NULL),(249,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','425',245,'Personnel - Avances et acomptes',0,NULL,NULL,1,NULL,NULL),(250,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','426',245,'Personnel - Dépôts',0,NULL,NULL,1,NULL,NULL),(251,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','427',245,'Personnel - Oppositions',0,NULL,NULL,1,NULL,NULL),(252,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','428',245,'Personnel - Charges à payer et produits à recevoir',0,NULL,NULL,1,NULL,NULL),(253,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','43',1504,'Sécurité sociale et autres organismes sociaux',0,NULL,NULL,1,NULL,NULL),(254,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','431',253,'Sécurité sociale',0,NULL,NULL,1,NULL,NULL),(255,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','437',253,'Autres organismes sociaux',0,NULL,NULL,1,NULL,NULL),(256,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','438',253,'Organismes sociaux - Charges à payer et produits à recevoir',0,NULL,NULL,1,NULL,NULL),(257,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','44',1504,'État et autres collectivités publiques',0,NULL,NULL,1,NULL,NULL),(258,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','441',257,'État - Subventions à recevoir',0,NULL,NULL,1,NULL,NULL),(259,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','442',257,'Etat - Impôts et taxes recouvrables sur des tiers',0,NULL,NULL,1,NULL,NULL),(260,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','443',257,'Opérations particulières avec l\'Etat, les collectivités publiques, les organismes internationaux',0,NULL,NULL,1,NULL,NULL),(261,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','444',257,'Etat - Impôts sur les bénéfices',0,NULL,NULL,1,NULL,NULL),(262,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','445',257,'Etat - Taxes sur le chiffre d\'affaires',0,NULL,NULL,1,NULL,NULL),(263,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','446',257,'Obligations cautionnées',0,NULL,NULL,1,NULL,NULL),(264,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','447',257,'Autres impôts, taxes et versements assimilés',0,NULL,NULL,1,NULL,NULL),(265,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','448',257,'Etat - Charges à payer et produits à recevoir',0,NULL,NULL,1,NULL,NULL),(266,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','449',257,'Quotas d\'émission à restituer à l\'Etat',0,NULL,NULL,1,NULL,NULL),(267,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','45',1504,'Groupe et associes',0,NULL,NULL,1,NULL,NULL),(268,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','451',267,'Groupe',0,NULL,NULL,1,NULL,NULL),(269,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','455',267,'Associés - Comptes courants',0,NULL,NULL,1,NULL,NULL),(270,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','456',267,'Associés - Opérations sur le capital',0,NULL,NULL,1,NULL,NULL),(271,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','457',267,'Associés - Dividendes à payer',0,NULL,NULL,1,NULL,NULL),(272,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','458',267,'Associés - Opérations faites en commun et en G.I.E.',0,NULL,NULL,1,NULL,NULL),(273,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','46',1504,'Débiteurs divers et créditeurs divers',0,NULL,NULL,1,NULL,NULL),(274,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','462',273,'Créances sur cessions d\'immobilisations',0,NULL,NULL,1,NULL,NULL),(275,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','464',273,'Dettes sur acquisitions de valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(276,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','465',273,'Créances sur cessions de valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(277,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','467',273,'Autres comptes débiteurs ou créditeurs',0,NULL,NULL,1,NULL,NULL),(278,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','468',273,'Divers - Charges à payer et produits à recevoir',0,NULL,NULL,1,NULL,NULL),(279,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','47',1504,'Comptes transitoires ou d\'attente',0,NULL,NULL,1,NULL,NULL),(280,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','471',279,'Comptes d\'attente',0,NULL,NULL,1,NULL,NULL),(281,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','476',279,'Différence de conversion - Actif',0,NULL,NULL,1,NULL,NULL),(282,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','477',279,'Différences de conversion - Passif',0,NULL,NULL,1,NULL,NULL),(283,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','478',279,'Autres comptes transitoires',0,NULL,NULL,1,NULL,NULL),(284,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','48',1504,'Comptes de régularisation',0,NULL,NULL,1,NULL,NULL),(285,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','481',284,'Charges à répartir sur plusieurs exercices',0,NULL,NULL,1,NULL,NULL),(286,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','486',284,'Charges constatées d\'avance',0,NULL,NULL,1,NULL,NULL),(287,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','487',284,'Produits constatés d\'avance',0,NULL,NULL,1,NULL,NULL),(288,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','488',284,'Comptes de répartition périodique des charges et des produits',0,NULL,NULL,1,NULL,NULL),(289,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','489',284,'Quotas d\'émission alloués par l\'Etat',0,NULL,NULL,1,NULL,NULL),(290,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','49',1504,'Provisions pour dépréciation des comptes de tiers',0,NULL,NULL,1,NULL,NULL),(291,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','491',290,'Provisions pour dépréciation des comptes de clients',0,NULL,NULL,1,NULL,NULL),(292,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','495',290,'Provisions pour dépréciation des comptes du groupe et des associés',0,NULL,NULL,1,NULL,NULL),(293,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','TIERS','XXXXXX','496',290,'Provisions pour dépréciation des comptes de débiteurs divers',0,NULL,NULL,1,NULL,NULL),(294,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','50',1505,'Valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(295,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','501',294,'Parts dans des entreprises liées',0,NULL,NULL,1,NULL,NULL),(296,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','502',294,'Actions propres',0,NULL,NULL,1,NULL,NULL),(297,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','503',294,'Actions',0,NULL,NULL,1,NULL,NULL),(298,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','504',294,'Autres titres conférant un droit de propriété',0,NULL,NULL,1,NULL,NULL),(299,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','505',294,'Obligations et bons émis par la société et rachetés par elle',0,NULL,NULL,1,NULL,NULL),(300,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','506',294,'Obligations',0,NULL,NULL,1,NULL,NULL),(301,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','507',294,'Bons du Trésor et bons de caisse à court terme',0,NULL,NULL,1,NULL,NULL),(302,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','508',294,'Autres valeurs mobilières de placement et autres créances assimilées',0,NULL,NULL,1,NULL,NULL),(303,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','509',294,'Versements restant à effectuer sur valeurs mobilières de placement non libérées',0,NULL,NULL,1,NULL,NULL),(304,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','51',1505,'Banques, établissements financiers et assimilés',0,NULL,NULL,1,NULL,NULL),(305,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','511',304,'Valeurs à l\'encaissement',0,NULL,NULL,1,NULL,NULL),(306,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','BANK','512',304,'Banques',0,NULL,NULL,1,NULL,NULL),(307,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','514',304,'Chèques postaux',0,NULL,NULL,1,NULL,NULL),(308,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','515',304,'\"Caisses\" du Trésor et des établissements publics',0,NULL,NULL,1,NULL,NULL),(309,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','516',304,'Sociétés de bourse',0,NULL,NULL,1,NULL,NULL),(310,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','517',304,'Autres organismes financiers',0,NULL,NULL,1,NULL,NULL),(311,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','518',304,'Intérêts courus',0,NULL,NULL,1,NULL,NULL),(312,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','519',304,'Concours bancaires courants',0,NULL,NULL,1,NULL,NULL),(313,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','52',1505,'Instruments de trésorerie',0,NULL,NULL,1,NULL,NULL),(314,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','CASH','53',1505,'Caisse',0,NULL,NULL,1,NULL,NULL),(315,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','531',314,'Caisse siège social',0,NULL,NULL,1,NULL,NULL),(316,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','532',314,'Caisse succursale (ou usine) A',0,NULL,NULL,1,NULL,NULL),(317,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','533',314,'Caisse succursale (ou usine) B',0,NULL,NULL,1,NULL,NULL),(318,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','54',1505,'Régies d\'avance et accréditifs',0,NULL,NULL,1,NULL,NULL),(319,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','58',1505,'Virements internes',0,NULL,NULL,1,NULL,NULL),(320,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','59',1505,'Provisions pour dépréciation des comptes financiers',0,NULL,NULL,1,NULL,NULL),(321,1,NULL,'2016-01-22 17:28:15','PCG99-BASE','FINAN','XXXXXX','590',320,'Provisions pour dépréciation des valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(322,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','PRODUCT','60',1506,'Achats',0,NULL,NULL,1,NULL,NULL),(323,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','601',322,'Achats stockés - Matières premières (et fournitures)',0,NULL,NULL,1,NULL,NULL),(324,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','602',322,'Achats stockés - Autres approvisionnements',0,NULL,NULL,1,NULL,NULL),(325,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','603',322,'Variations des stocks (approvisionnements et marchandises)',0,NULL,NULL,1,NULL,NULL),(326,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','604',322,'Achats stockés - Matières premières (et fournitures)',0,NULL,NULL,1,NULL,NULL),(327,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','605',322,'Achats de matériel, équipements et travaux',0,NULL,NULL,1,NULL,NULL),(328,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','606',322,'Achats non stockés de matière et fournitures',0,NULL,NULL,1,NULL,NULL),(329,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','607',322,'Achats de marchandises',0,NULL,NULL,1,NULL,NULL),(330,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','608',322,'(Compte réservé, le cas échéant, à la récapitulation des frais accessoires incorporés aux achats)',0,NULL,NULL,1,NULL,NULL),(331,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','609',322,'Rabais, remises et ristournes obtenus sur achats',0,NULL,NULL,1,NULL,NULL),(332,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','SERVICE','61',1506,'Services extérieurs',0,NULL,NULL,1,NULL,NULL),(333,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','611',332,'Sous-traitance générale',0,NULL,NULL,1,NULL,NULL),(334,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','612',332,'Redevances de crédit-bail',0,NULL,NULL,1,NULL,NULL),(335,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','613',332,'Locations',0,NULL,NULL,1,NULL,NULL),(336,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','614',332,'Charges locatives et de copropriété',0,NULL,NULL,1,NULL,NULL),(337,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','615',332,'Entretien et réparations',0,NULL,NULL,1,NULL,NULL),(338,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','616',332,'Primes d\'assurances',0,NULL,NULL,1,NULL,NULL),(339,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','617',332,'Etudes et recherches',0,NULL,NULL,1,NULL,NULL),(340,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','618',332,'Divers',0,NULL,NULL,1,NULL,NULL),(341,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','619',332,'Rabais, remises et ristournes obtenus sur services extérieurs',0,NULL,NULL,1,NULL,NULL),(342,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','62',1506,'Autres services extérieurs',0,NULL,NULL,1,NULL,NULL),(343,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','621',342,'Personnel extérieur à l\'entreprise',0,NULL,NULL,1,NULL,NULL),(344,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','622',342,'Rémunérations d\'intermédiaires et honoraires',0,NULL,NULL,1,NULL,NULL),(345,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','623',342,'Publicité, publications, relations publiques',0,NULL,NULL,1,NULL,NULL),(346,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','624',342,'Transports de biens et transports collectifs du personnel',0,NULL,NULL,1,NULL,NULL),(347,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','625',342,'Déplacements, missions et réceptions',0,NULL,NULL,1,NULL,NULL),(348,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','626',342,'Frais postaux et de télécommunications',0,NULL,NULL,1,NULL,NULL),(349,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','627',342,'Services bancaires et assimilés',0,NULL,NULL,1,NULL,NULL),(350,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','628',342,'Divers',0,NULL,NULL,1,NULL,NULL),(351,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','629',342,'Rabais, remises et ristournes obtenus sur autres services extérieurs',0,NULL,NULL,1,NULL,NULL),(352,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','63',1506,'Impôts, taxes et versements assimilés',0,NULL,NULL,1,NULL,NULL),(353,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','631',352,'Impôts, taxes et versements assimilés sur rémunérations (administrations des impôts)',0,NULL,NULL,1,NULL,NULL),(354,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','633',352,'Impôts, taxes et versements assimilés sur rémunérations (autres organismes)',0,NULL,NULL,1,NULL,NULL),(355,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','635',352,'Autres impôts, taxes et versements assimilés (administrations des impôts)',0,NULL,NULL,1,NULL,NULL),(356,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','637',352,'Autres impôts, taxes et versements assimilés (autres organismes)',0,NULL,NULL,1,NULL,NULL),(357,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','64',1506,'Charges de personnel',0,NULL,NULL,1,NULL,NULL),(358,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','641',357,'Rémunérations du personnel',0,NULL,NULL,1,NULL,NULL),(359,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','644',357,'Rémunération du travail de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(360,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','SOCIAL','645',357,'Charges de sécurité sociale et de prévoyance',0,NULL,NULL,1,NULL,NULL),(361,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','646',357,'Cotisations sociales personnelles de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(362,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','647',357,'Autres charges sociales',0,NULL,NULL,1,NULL,NULL),(363,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','648',357,'Autres charges de personnel',0,NULL,NULL,1,NULL,NULL),(364,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','65',1506,'Autres charges de gestion courante',0,NULL,NULL,1,NULL,NULL),(365,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','651',364,'Redevances pour concessions, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',0,NULL,NULL,1,NULL,NULL),(366,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','653',364,'Jetons de présence',0,NULL,NULL,1,NULL,NULL),(367,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','654',364,'Pertes sur créances irrécouvrables',0,NULL,NULL,1,NULL,NULL),(368,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','655',364,'Quote-part de résultat sur opérations faites en commun',0,NULL,NULL,1,NULL,NULL),(369,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','658',364,'Charges diverses de gestion courante',0,NULL,NULL,1,NULL,NULL),(370,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','66',1506,'Charges financières',0,NULL,NULL,1,NULL,NULL),(371,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','661',370,'Charges d\'intérêts',0,NULL,NULL,1,NULL,NULL),(372,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','664',370,'Pertes sur créances liées à des participations',0,NULL,NULL,1,NULL,NULL),(373,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','665',370,'Escomptes accordés',0,NULL,NULL,1,NULL,NULL),(374,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','666',370,'Pertes de change',0,NULL,NULL,1,NULL,NULL),(375,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','667',370,'Charges nettes sur cessions de valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(376,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','668',370,'Autres charges financières',0,NULL,NULL,1,NULL,NULL),(377,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','67',1506,'Charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(378,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','671',377,'Charges exceptionnelles sur opérations de gestion',0,NULL,NULL,1,NULL,NULL),(379,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','672',377,'(Compte à la disposition des entités pour enregistrer, en cours d\'exercice, les charges sur exercices antérieurs)',0,NULL,NULL,1,NULL,NULL),(380,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','675',377,'Valeurs comptables des éléments d\'actif cédés',0,NULL,NULL,1,NULL,NULL),(381,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','678',377,'Autres charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(382,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','68',1506,'Dotations aux amortissements et aux provisions',0,NULL,NULL,1,NULL,NULL),(383,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','681',382,'Dotations aux amortissements et aux provisions - Charges d\'exploitation',0,NULL,NULL,1,NULL,NULL),(384,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','686',382,'Dotations aux amortissements et aux provisions - Charges financières',0,NULL,NULL,1,NULL,NULL),(385,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','687',382,'Dotations aux amortissements et aux provisions - Charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(386,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','69',1506,'Participation des salariés - impôts sur les bénéfices et assimiles',0,NULL,NULL,1,NULL,NULL),(387,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','691',386,'Participation des salariés aux résultats',0,NULL,NULL,1,NULL,NULL),(388,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','695',386,'Impôts sur les bénéfices',0,NULL,NULL,1,NULL,NULL),(389,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','696',386,'Suppléments d\'impôt sur les sociétés liés aux distributions',0,NULL,NULL,1,NULL,NULL),(390,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','697',386,'Imposition forfaitaire annuelle des sociétés',0,NULL,NULL,1,NULL,NULL),(391,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','698',386,'Intégration fiscale',0,NULL,NULL,1,NULL,NULL),(392,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','699',386,'Produits - Reports en arrière des déficits',0,NULL,NULL,1,NULL,NULL),(393,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','70',1507,'Ventes de produits fabriqués, prestations de services, marchandises',0,NULL,NULL,1,NULL,NULL),(394,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','PRODUCT','701',393,'Ventes de produits finis',0,NULL,NULL,1,NULL,NULL),(395,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','702',393,'Ventes de produits intermédiaires',0,NULL,NULL,1,NULL,NULL),(396,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','703',393,'Ventes de produits résiduels',0,NULL,NULL,1,NULL,NULL),(397,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','704',393,'Travaux',0,NULL,NULL,1,NULL,NULL),(398,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','705',393,'Etudes',0,NULL,NULL,1,NULL,NULL),(399,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','SERVICE','706',393,'Prestations de services',0,NULL,NULL,1,NULL,NULL),(400,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','PRODUCT','707',393,'Ventes de marchandises',0,NULL,NULL,1,NULL,NULL),(401,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','PRODUCT','708',393,'Produits des activités annexes',0,NULL,NULL,1,NULL,NULL),(402,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','709',393,'Rabais, remises et ristournes accordés par l\'entreprise',0,NULL,NULL,1,NULL,NULL),(403,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','71',1507,'Production stockée (ou déstockage)',0,NULL,NULL,1,NULL,NULL),(404,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','713',403,'Variation des stocks (en-cours de production, produits)',0,NULL,NULL,1,NULL,NULL),(405,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','72',1507,'Production immobilisée',0,NULL,NULL,1,NULL,NULL),(406,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','721',405,'Immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(407,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','722',405,'Immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(408,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','74',1507,'Subventions d\'exploitation',0,NULL,NULL,1,NULL,NULL),(409,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','75',1507,'Autres produits de gestion courante',0,NULL,NULL,1,NULL,NULL),(410,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','751',409,'Redevances pour concessions, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',0,NULL,NULL,1,NULL,NULL),(411,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','752',409,'Revenus des immeubles non affectés à des activités professionnelles',0,NULL,NULL,1,NULL,NULL),(412,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','753',409,'Jetons de présence et rémunérations d\'administrateurs, gérants,...',0,NULL,NULL,1,NULL,NULL),(413,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','754',409,'Ristournes perçues des coopératives (provenant des excédents)',0,NULL,NULL,1,NULL,NULL),(414,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','755',409,'Quotes-parts de résultat sur opérations faites en commun',0,NULL,NULL,1,NULL,NULL),(415,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','758',409,'Produits divers de gestion courante',0,NULL,NULL,1,NULL,NULL),(416,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','76',1507,'Produits financiers',0,NULL,NULL,1,NULL,NULL),(417,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','761',416,'Produits de participations',0,NULL,NULL,1,NULL,NULL),(418,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','762',416,'Produits des autres immobilisations financières',0,NULL,NULL,1,NULL,NULL),(419,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','763',416,'Revenus des autres créances',0,NULL,NULL,1,NULL,NULL),(420,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','764',416,'Revenus des valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(421,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','765',416,'Escomptes obtenus',0,NULL,NULL,1,NULL,NULL),(422,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','766',416,'Gains de change',0,NULL,NULL,1,NULL,NULL),(423,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','767',416,'Produits nets sur cessions de valeurs mobilières de placement',0,NULL,NULL,1,NULL,NULL),(424,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','768',416,'Autres produits financiers',0,NULL,NULL,1,NULL,NULL),(425,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','77',1507,'Produits exceptionnels',0,NULL,NULL,1,NULL,NULL),(426,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','771',425,'Produits exceptionnels sur opérations de gestion',0,NULL,NULL,1,NULL,NULL),(427,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','772',425,'(Compte à la disposition des entités pour enregistrer, en cours d\'exercice, les produits sur exercices antérieurs)',0,NULL,NULL,1,NULL,NULL),(428,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','775',425,'Produits des cessions d\'éléments d\'actif',0,NULL,NULL,1,NULL,NULL),(429,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','777',425,'Quote-part des subventions d\'investissement virée au résultat de l\'exercice',0,NULL,NULL,1,NULL,NULL),(430,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','778',425,'Autres produits exceptionnels',0,NULL,NULL,1,NULL,NULL),(431,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','78',1507,'Reprises sur amortissements et provisions',0,NULL,NULL,1,NULL,NULL),(432,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','781',431,'Reprises sur amortissements et provisions (à inscrire dans les produits d\'exploitation)',0,NULL,NULL,1,NULL,NULL),(433,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','786',431,'Reprises sur provisions pour risques (à inscrire dans les produits financiers)',0,NULL,NULL,1,NULL,NULL),(434,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','787',431,'Reprises sur provisions (à inscrire dans les produits exceptionnels)',0,NULL,NULL,1,NULL,NULL),(435,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','79',1507,'Transferts de charges',0,NULL,NULL,1,NULL,NULL),(436,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','791',435,'Transferts de charges d\'exploitation ',0,NULL,NULL,1,NULL,NULL),(437,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','796',435,'Transferts de charges financières',0,NULL,NULL,1,NULL,NULL),(438,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','797',435,'Transferts de charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(439,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','10',1351,'Capital',0,NULL,NULL,1,NULL,NULL),(440,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','100',439,'Capital souscrit ou capital personnel',0,NULL,NULL,1,NULL,NULL),(441,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1000',440,'Capital non amorti',0,NULL,NULL,1,NULL,NULL),(442,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1001',440,'Capital amorti',0,NULL,NULL,1,NULL,NULL),(443,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','101',439,'Capital non appelé',0,NULL,NULL,1,NULL,NULL),(444,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','109',439,'Compte de l\'exploitant',0,NULL,NULL,1,NULL,NULL),(445,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1090',444,'Opérations courantes',0,NULL,NULL,1,NULL,NULL),(446,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1091',444,'Impôts personnels',0,NULL,NULL,1,NULL,NULL),(447,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1092',444,'Rémunérations et autres avantages',0,NULL,NULL,1,NULL,NULL),(448,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','11',1351,'Primes d\'émission',0,NULL,NULL,1,NULL,NULL),(449,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','12',1351,'Plus-values de réévaluation',0,NULL,NULL,1,NULL,NULL),(450,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','120',449,'Plus-values de réévaluation sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(451,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1200',450,'Plus-values de réévaluation',0,NULL,NULL,1,NULL,NULL),(452,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1201',450,'Reprises de réductions de valeur',0,NULL,NULL,1,NULL,NULL),(453,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','121',449,'Plus-values de réévaluation sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(454,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1210',453,'Plus-values de réévaluation',0,NULL,NULL,1,NULL,NULL),(455,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1211',453,'Reprises de réductions de valeur',0,NULL,NULL,1,NULL,NULL),(456,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','122',449,'Plus-values de réévaluation sur immobilisations financières',0,NULL,NULL,1,NULL,NULL),(457,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1220',456,'Plus-values de réévaluation',0,NULL,NULL,1,NULL,NULL),(458,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1221',456,'Reprises de réductions de valeur',0,NULL,NULL,1,NULL,NULL),(459,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','123',449,'Plus-values de réévaluation sur stocks',0,NULL,NULL,1,NULL,NULL),(460,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','124',449,'Reprises de réductions de valeur sur placements de trésorerie',0,NULL,NULL,1,NULL,NULL),(461,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','13',1351,'Réserve',0,NULL,NULL,1,NULL,NULL),(462,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','130',461,'Réserve légale',0,NULL,NULL,1,NULL,NULL),(463,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','131',461,'Réserves indisponibles',0,NULL,NULL,1,NULL,NULL),(464,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1310',463,'Réserve pour actions propres',0,NULL,NULL,1,NULL,NULL),(465,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1311',463,'Autres réserves indisponibles',0,NULL,NULL,1,NULL,NULL),(466,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','132',461,'Réserves immunisées',0,NULL,NULL,1,NULL,NULL),(467,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','133',461,'Réserves disponibles',0,NULL,NULL,1,NULL,NULL),(468,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1330',467,'Réserve pour régularisation de dividendes',0,NULL,NULL,1,NULL,NULL),(469,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1331',467,'Réserve pour renouvellement des immobilisations',0,NULL,NULL,1,NULL,NULL),(470,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1332',467,'Réserve pour installations en faveur du personnel 1333 Réserves libres',0,NULL,NULL,1,NULL,NULL),(471,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','14',1351,'Bénéfice reporté (ou perte reportée)',0,NULL,NULL,1,NULL,NULL),(472,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','15',1351,'Subsides en capital',0,NULL,NULL,1,NULL,NULL),(473,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','150',472,'Montants obtenus',0,NULL,NULL,1,NULL,NULL),(474,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','151',472,'Montants transférés aux résultats',0,NULL,NULL,1,NULL,NULL),(475,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','16',1351,'Provisions pour risques et charges',0,NULL,NULL,1,NULL,NULL),(476,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','160',475,'Provisions pour pensions et obligations similaires',0,NULL,NULL,1,NULL,NULL),(477,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','161',475,'Provisions pour charges fiscales',0,NULL,NULL,1,NULL,NULL),(478,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','162',475,'Provisions pour grosses réparations et gros entretiens',0,NULL,NULL,1,NULL,NULL),(479,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','163',475,'à 169 Provisions pour autres risques et charges',0,NULL,NULL,1,NULL,NULL),(480,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','164',475,'Provisions pour sûretés personnelles ou réelles constituées à l\'appui de dettes et d\'engagements de tiers',0,NULL,NULL,1,NULL,NULL),(481,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','165',475,'Provisions pour engagements relatifs à l\'acquisition ou à la cession d\'immobilisations',0,NULL,NULL,1,NULL,NULL),(482,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','166',475,'Provisions pour exécution de commandes passées ou reçues',0,NULL,NULL,1,NULL,NULL),(483,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','167',475,'Provisions pour positions et marchés à terme en devises ou positions et marchés à terme en marchandises',0,NULL,NULL,1,NULL,NULL),(484,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','168',475,'Provisions pour garanties techniques attachées aux ventes et prestations déjà effectuées par l\'entreprise',0,NULL,NULL,1,NULL,NULL),(485,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','169',475,'Provisions pour autres risques et charges',0,NULL,NULL,1,NULL,NULL),(486,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1690',485,'Pour litiges en cours',0,NULL,NULL,1,NULL,NULL),(487,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1691',485,'Pour amendes, doubles droits et pénalités',0,NULL,NULL,1,NULL,NULL),(488,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1692',485,'Pour propre assureur',0,NULL,NULL,1,NULL,NULL),(489,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1693',485,'Pour risques inhérents aux opérations de crédits à moyen ou long terme',0,NULL,NULL,1,NULL,NULL),(490,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1695',485,'Provision pour charge de liquidation',0,NULL,NULL,1,NULL,NULL),(491,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1696',485,'Provision pour départ de personnel',0,NULL,NULL,1,NULL,NULL),(492,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1699',485,'Pour risques divers',0,NULL,NULL,1,NULL,NULL),(493,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17',1351,'Dettes à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(494,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','170',493,'Emprunts subordonnés',0,NULL,NULL,1,NULL,NULL),(495,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1700',494,'Convertibles',0,NULL,NULL,1,NULL,NULL),(496,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1701',494,'Non convertibles',0,NULL,NULL,1,NULL,NULL),(497,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','171',493,'Emprunts obligataires non subordonnés',0,NULL,NULL,1,NULL,NULL),(498,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1710',498,'Convertibles',0,NULL,NULL,1,NULL,NULL),(499,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1711',498,'Non convertibles',0,NULL,NULL,1,NULL,NULL),(500,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','172',493,'Dettes de location-financement et assimilés',0,NULL,NULL,1,NULL,NULL),(501,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1720',500,'Dettes de location-financement de biens immobiliers',0,NULL,NULL,1,NULL,NULL),(502,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1721',500,'Dettes de location-financement de biens mobiliers',0,NULL,NULL,1,NULL,NULL),(503,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1722',500,'Dettes sur droits réels sur immeubles',0,NULL,NULL,1,NULL,NULL),(504,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','173',493,'Etablissements de crédit',0,NULL,NULL,1,NULL,NULL),(505,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1730',504,'Dettes en compte',0,NULL,NULL,1,NULL,NULL),(506,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17300',505,'Banque A',0,NULL,NULL,1,NULL,NULL),(507,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17301',505,'Banque B',0,NULL,NULL,1,NULL,NULL),(508,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17302',505,'Banque C',0,NULL,NULL,1,NULL,NULL),(509,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17303',505,'Banque D',0,NULL,NULL,1,NULL,NULL),(510,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1731',504,'Promesses',0,NULL,NULL,1,NULL,NULL),(511,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17310',510,'Banque A',0,NULL,NULL,1,NULL,NULL),(512,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17311',510,'Banque B',0,NULL,NULL,1,NULL,NULL),(513,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17312',510,'Banque C',0,NULL,NULL,1,NULL,NULL),(514,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17313',510,'Banque D',0,NULL,NULL,1,NULL,NULL),(515,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1732',504,'Crédits d\'acceptation',0,NULL,NULL,1,NULL,NULL),(516,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17320',515,'Banque A',0,NULL,NULL,1,NULL,NULL),(517,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17321',515,'Banque B',0,NULL,NULL,1,NULL,NULL),(518,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17322',515,'Banque C',0,NULL,NULL,1,NULL,NULL),(519,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17323',515,'Banque D',0,NULL,NULL,1,NULL,NULL),(520,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','174',493,'Autres emprunts',0,NULL,NULL,1,NULL,NULL),(521,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175',493,'Dettes commerciales',0,NULL,NULL,1,NULL,NULL),(522,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1750',521,'Fournisseurs : dettes en compte',0,NULL,NULL,1,NULL,NULL),(523,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17500',522,'Entreprises apparentées',0,NULL,NULL,1,NULL,NULL),(524,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175000',523,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(525,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175001',523,'Entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(526,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17501',522,'Fournisseurs ordinaires',0,NULL,NULL,1,NULL,NULL),(527,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175010',526,'Fournisseurs belges',0,NULL,NULL,1,NULL,NULL),(528,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175011',526,'Fournisseurs C.E.E.',0,NULL,NULL,1,NULL,NULL),(529,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175012',526,'Fournisseurs importation',0,NULL,NULL,1,NULL,NULL),(530,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1751',521,'Effets à payer',0,NULL,NULL,1,NULL,NULL),(531,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17510',530,'Entreprises apparentées',0,NULL,NULL,1,NULL,NULL),(532,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175100',531,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(533,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175101',531,'Entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(534,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','17511',530,'Fournisseurs ordinaires',0,NULL,NULL,1,NULL,NULL),(535,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175110',534,'Fournisseurs belges',0,NULL,NULL,1,NULL,NULL),(536,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175111',534,'Fournisseurs C.E.E.',0,NULL,NULL,1,NULL,NULL),(537,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','175112',534,'Fournisseurs importation',0,NULL,NULL,1,NULL,NULL),(538,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','176',493,'Acomptes reçus sur commandes',0,NULL,NULL,1,NULL,NULL),(539,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','178',493,'Cautionnements reçus en numéraires',0,NULL,NULL,1,NULL,NULL),(540,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','179',493,'Dettes diverses',0,NULL,NULL,1,NULL,NULL),(541,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1790',540,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(542,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1791',540,'Autres entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(543,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1792',540,'Administrateurs, gérants et associés',0,NULL,NULL,1,NULL,NULL),(544,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1794',540,'Rentes viagères capitalisées',0,NULL,NULL,1,NULL,NULL),(545,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1798',540,'Dettes envers les coparticipants des associations momentanées et en participation',0,NULL,NULL,1,NULL,NULL),(546,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','1799',540,'Autres dettes diverses',0,NULL,NULL,1,NULL,NULL),(547,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','CAPIT','XXXXXX','18',1351,'Comptes de liaison des établissements et succursales',0,NULL,NULL,1,NULL,NULL),(548,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','20',1352,'Frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(549,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','200',548,'Frais de constitution et d\'augmentation de capital',0,NULL,NULL,1,NULL,NULL),(550,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2000',549,'Frais de constitution et d\'augmentation de capital',0,NULL,NULL,1,NULL,NULL),(551,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2009',549,'Amortissements sur frais de constitution et d\'augmentation de capital',0,NULL,NULL,1,NULL,NULL),(552,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','201',548,'Frais d\'émission d\'emprunts et primes de remboursement',0,NULL,NULL,1,NULL,NULL),(553,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2010',552,'Agios sur emprunts et frais d\'émission d\'emprunts',0,NULL,NULL,1,NULL,NULL),(554,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2019',552,'Amortissements sur agios sur emprunts et frais d\'émission d\'emprunts',0,NULL,NULL,1,NULL,NULL),(555,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','202',548,'Autres frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(556,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2020',555,'Autres frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(557,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2029',555,'Amortissements sur autres frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(558,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','203',548,'Intérêts intercalaires',0,NULL,NULL,1,NULL,NULL),(559,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2030',558,'Intérêts intercalaires',0,NULL,NULL,1,NULL,NULL),(560,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2039',558,'Amortissements sur intérêts intercalaires',0,NULL,NULL,1,NULL,NULL),(561,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','204',548,'Frais de restructuration',0,NULL,NULL,1,NULL,NULL),(562,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2040',561,'Coût des frais de restructuration',0,NULL,NULL,1,NULL,NULL),(563,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2049',561,'Amortissements sur frais de restructuration',0,NULL,NULL,1,NULL,NULL),(564,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','21',1352,'Immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(565,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','210',564,'Frais de recherche et de développement',0,NULL,NULL,1,NULL,NULL),(566,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2100',565,'Frais de recherche et de mise au point',0,NULL,NULL,1,NULL,NULL),(567,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2108',565,'Plus-values actées sur frais de recherche et de mise au point',0,NULL,NULL,1,NULL,NULL),(568,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2109',565,'Amortissements sur frais de recherche et de mise au point',0,NULL,NULL,1,NULL,NULL),(569,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','211',564,'Concessions, brevets, licences, savoir-faire, marque et droits similaires',0,NULL,NULL,1,NULL,NULL),(570,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2110',569,'Concessions, brevets, licences, marques, etc',0,NULL,NULL,1,NULL,NULL),(571,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2118',569,'Plus-values actées sur concessions, etc',0,NULL,NULL,1,NULL,NULL),(572,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2119',569,'Amortissements sur concessions, etc',0,NULL,NULL,1,NULL,NULL),(573,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','212',564,'Goodwill',0,NULL,NULL,1,NULL,NULL),(574,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2120',573,'Coût d\'acquisition',0,NULL,NULL,1,NULL,NULL),(575,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2128',573,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(576,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2129',573,'Amortissements sur goodwill',0,NULL,NULL,1,NULL,NULL),(577,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','213',564,'Acomptes versés',0,NULL,NULL,1,NULL,NULL),(578,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22',1352,'Terrains et constructions',0,NULL,NULL,1,NULL,NULL),(579,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','220',578,'Terrains',0,NULL,NULL,1,NULL,NULL),(580,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2200',579,'Terrains',0,NULL,NULL,1,NULL,NULL),(581,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2201',579,'Frais d\'acquisition sur terrains',0,NULL,NULL,1,NULL,NULL),(582,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2208',579,'Plus-values actées sur terrains',0,NULL,NULL,1,NULL,NULL),(583,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2209',579,'Amortissements et réductions de valeur',0,NULL,NULL,1,NULL,NULL),(584,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22090',583,'Amortissements sur frais d\'acquisition',0,NULL,NULL,1,NULL,NULL),(585,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22091',583,'Réductions de valeur sur terrains',0,NULL,NULL,1,NULL,NULL),(586,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','221',578,'Constructions',0,NULL,NULL,1,NULL,NULL),(587,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2210',586,'Bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(588,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2211',586,'Bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(589,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2212',586,'Autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(590,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2213',586,'Voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(591,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2215',586,'Constructions sur sol d\'autrui',0,NULL,NULL,1,NULL,NULL),(592,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2216',586,'Frais d\'acquisition sur constructions',0,NULL,NULL,1,NULL,NULL),(593,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2218',586,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(594,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22180',593,'Sur bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(595,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22181',593,'Sur bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(596,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22182',593,'Sur autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(597,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22184',593,'Sur voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(598,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2219',586,'Amortissements sur constructions',0,NULL,NULL,1,NULL,NULL),(599,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22190',598,'Sur bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(600,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22191',598,'Sur bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(601,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22192',598,'Sur autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(602,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22194',598,'Sur voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(603,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22195',598,'Sur constructions sur sol d\'autrui',0,NULL,NULL,1,NULL,NULL),(604,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22196',598,'Sur frais d\'acquisition sur constructions',0,NULL,NULL,1,NULL,NULL),(605,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','222',578,'Terrains bâtis',0,NULL,NULL,1,NULL,NULL),(606,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2220',605,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(607,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22200',606,'Bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(608,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22201',606,'Bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(609,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22202',606,'Autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(610,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22203',606,'Voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(611,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22204',606,'Frais d\'acquisition des terrains à bâtir',0,NULL,NULL,1,NULL,NULL),(612,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2228',605,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(613,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22280',612,'Sur bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(614,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22281',612,'Sur bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(615,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22282',612,'Sur autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(616,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22283',612,'Sur voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(617,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2229',605,'Amortissements sur terrains bâtis',0,NULL,NULL,1,NULL,NULL),(618,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22290',617,'Sur bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(619,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22291',617,'Sur bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(620,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22292',617,'Sur autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(621,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22293',617,'Sur voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(622,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','22294',617,'Sur frais d\'acquisition des terrains bâtis',0,NULL,NULL,1,NULL,NULL),(623,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','223',578,'Autres droits réels sur des immeubles',0,NULL,NULL,1,NULL,NULL),(624,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2230',623,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(625,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2238',623,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(626,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2239',623,'Amortissements',0,NULL,NULL,1,NULL,NULL),(627,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','23',1352,'Installations, machines et outillages',0,NULL,NULL,1,NULL,NULL),(628,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','230',627,'Installations',0,NULL,NULL,1,NULL,NULL),(629,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2300',628,'Installations bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(630,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2301',628,'Installations bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(631,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2302',628,'Installations bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(632,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2303',628,'Installations voies de transport et ouvrages d\'art',0,NULL,NULL,1,NULL,NULL),(637,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2304',628,'Installation de chauffage',0,NULL,NULL,1,NULL,NULL),(638,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2305',628,'Installation de conditionnement d\'air',0,NULL,NULL,1,NULL,NULL),(639,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2306',628,'Installation de chargement',0,NULL,NULL,1,NULL,NULL),(640,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','231',627,'Machines',0,NULL,NULL,1,NULL,NULL),(641,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2310',640,'Division A',0,NULL,NULL,1,NULL,NULL),(642,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2311',640,'Division B',0,NULL,NULL,1,NULL,NULL),(643,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2312',640,'Division C',0,NULL,NULL,1,NULL,NULL),(644,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','237',627,'Outillage',0,NULL,NULL,1,NULL,NULL),(645,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2370',644,'Division A',0,NULL,NULL,1,NULL,NULL),(646,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2371',644,'Division B',0,NULL,NULL,1,NULL,NULL),(647,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2372',644,'Division C',0,NULL,NULL,1,NULL,NULL),(648,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','238',627,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(649,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2380',648,'Sur installations',0,NULL,NULL,1,NULL,NULL),(650,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2381',648,'Sur machines',0,NULL,NULL,1,NULL,NULL),(651,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2382',648,'Sur outillage',0,NULL,NULL,1,NULL,NULL),(652,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','239',627,'Amortissements',0,NULL,NULL,1,NULL,NULL),(653,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2390',652,'Sur installations',0,NULL,NULL,1,NULL,NULL),(654,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2391',652,'Sur machines',0,NULL,NULL,1,NULL,NULL),(655,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2392',652,'Sur outillage',0,NULL,NULL,1,NULL,NULL),(656,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24',1352,'Mobilier et matériel roulant',0,NULL,NULL,1,NULL,NULL),(657,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','240',656,'Mobilier',0,NULL,NULL,1,NULL,NULL),(658,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2400',656,'Mobilier',0,NULL,NULL,1,NULL,NULL),(659,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24000',658,'Mobilier des bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(660,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24001',658,'Mobilier des bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(661,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24002',658,'Mobilier des autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(662,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24003',658,'Mobilier oeuvres sociales',0,NULL,NULL,1,NULL,NULL),(663,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2401',657,'Matériel de bureau et de service social',0,NULL,NULL,1,NULL,NULL),(664,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24010',663,'Des bâtiments industriels',0,NULL,NULL,1,NULL,NULL),(665,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24011',663,'Des bâtiments administratifs et commerciaux',0,NULL,NULL,1,NULL,NULL),(666,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24012',663,'Des autres bâtiments d\'exploitation',0,NULL,NULL,1,NULL,NULL),(667,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24013',663,'Des oeuvres sociales',0,NULL,NULL,1,NULL,NULL),(668,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2408',657,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(669,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24080',668,'Plus-values actées sur mobilier',0,NULL,NULL,1,NULL,NULL),(670,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24081',668,'Plus-values actées sur matériel de bureau et service social',0,NULL,NULL,1,NULL,NULL),(671,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2409',657,'Amortissements',0,NULL,NULL,1,NULL,NULL),(672,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24090',671,'Amortissements sur mobilier',0,NULL,NULL,1,NULL,NULL),(673,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24091',671,'Amortissements sur matériel de bureau et service social',0,NULL,NULL,1,NULL,NULL),(674,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','241',656,'Matériel roulant',0,NULL,NULL,1,NULL,NULL),(675,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2410',674,'Matériel automobile',0,NULL,NULL,1,NULL,NULL),(676,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24100',675,'Voitures',0,NULL,NULL,1,NULL,NULL),(677,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24105',675,'Camions',0,NULL,NULL,1,NULL,NULL),(678,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2411',674,'Matériel ferroviaire',0,NULL,NULL,1,NULL,NULL),(679,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2412',674,'Matériel fluvial',0,NULL,NULL,1,NULL,NULL),(680,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2413',674,'Matériel naval',0,NULL,NULL,1,NULL,NULL),(681,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2414',674,'Matériel aérien',0,NULL,NULL,1,NULL,NULL),(682,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2418',674,'Plus-values sur matériel roulant',0,NULL,NULL,1,NULL,NULL),(683,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24180',682,'Plus-values sur matériel automobile',0,NULL,NULL,1,NULL,NULL),(684,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24181',682,'Idem sur matériel ferroviaire',0,NULL,NULL,1,NULL,NULL),(685,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24182',682,'Idem sur matériel fluvial',0,NULL,NULL,1,NULL,NULL),(686,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24183',682,'Idem sur matériel naval',0,NULL,NULL,1,NULL,NULL),(687,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24184',682,'Idem sur matériel aérien',0,NULL,NULL,1,NULL,NULL),(688,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2419',674,'Amortissements sur matériel roulant',0,NULL,NULL,1,NULL,NULL),(689,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24190',688,'Amortissements sur matériel automobile',0,NULL,NULL,1,NULL,NULL),(690,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24191',688,'Idem sur matériel ferroviaire',0,NULL,NULL,1,NULL,NULL),(691,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24192',688,'Idem sur matériel fluvial',0,NULL,NULL,1,NULL,NULL),(692,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24193',688,'Idem sur matériel naval',0,NULL,NULL,1,NULL,NULL),(693,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','24194',688,'Idem sur matériel aérien',0,NULL,NULL,1,NULL,NULL),(694,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','25',1352,'Immobilisation détenues en location-financement et droits similaires',0,NULL,NULL,1,NULL,NULL),(695,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','250',694,'Terrains et constructions',0,NULL,NULL,1,NULL,NULL),(696,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2500',695,'Terrains',0,NULL,NULL,1,NULL,NULL),(697,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2501',695,'Constructions',0,NULL,NULL,1,NULL,NULL),(698,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2508',695,'Plus-values sur emphytéose,  leasing et droits similaires : terrains et constructions',0,NULL,NULL,1,NULL,NULL),(699,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2509',695,'Amortissements et réductions de valeur sur terrains et constructions en leasing',0,NULL,NULL,1,NULL,NULL),(700,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','251',694,'Installations,  machines et outillage',0,NULL,NULL,1,NULL,NULL),(701,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2510',700,'Installations',0,NULL,NULL,1,NULL,NULL),(702,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2511',700,'Machines',0,NULL,NULL,1,NULL,NULL),(703,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2512',700,'Outillage',0,NULL,NULL,1,NULL,NULL),(704,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2518',700,'Plus-values actées sur installations machines et outillage pris en leasing',0,NULL,NULL,1,NULL,NULL),(705,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2519',700,'Amortissements sur installations machines et outillage pris en leasing',0,NULL,NULL,1,NULL,NULL),(706,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','252',694,'Mobilier et matériel roulant',0,NULL,NULL,1,NULL,NULL),(707,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2520',706,'Mobilier',0,NULL,NULL,1,NULL,NULL),(708,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2521',706,'Matériel roulant',0,NULL,NULL,1,NULL,NULL),(709,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2528',706,'Plus-values actées sur mobilier et matériel roulant en leasing',0,NULL,NULL,1,NULL,NULL),(710,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2529',706,'Amortissements sur mobilier et matériel roulant en leasing',0,NULL,NULL,1,NULL,NULL),(711,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','26',1352,'Autres immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(712,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','260',711,'Frais d\'aménagements de locaux pris en location',0,NULL,NULL,1,NULL,NULL),(713,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','261',711,'Maison d\'habitation',0,NULL,NULL,1,NULL,NULL),(714,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','262',711,'Réserve immobilière',0,NULL,NULL,1,NULL,NULL),(715,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','263',711,'Matériel d\'emballage',0,NULL,NULL,1,NULL,NULL),(716,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','264',711,'Emballages récupérables',0,NULL,NULL,1,NULL,NULL),(717,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','268',711,'Plus-values actées sur autres immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(718,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','269',711,'Amortissements sur autres immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(719,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2690',718,'Amortissements sur frais d\'aménagement des locaux pris en location',0,NULL,NULL,1,NULL,NULL),(720,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2691',718,'Amortissements sur maison d\'habitation',0,NULL,NULL,1,NULL,NULL),(721,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2692',718,'Amortissements sur réserve immobilière',0,NULL,NULL,1,NULL,NULL),(722,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2693',718,'Amortissements sur matériel d\'emballage',0,NULL,NULL,1,NULL,NULL),(723,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2694',718,'Amortissements sur emballages récupérables',0,NULL,NULL,1,NULL,NULL),(724,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','27',1352,'Immobilisations corporelles en cours et acomptes versés',0,NULL,NULL,1,NULL,NULL),(725,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','270',724,'Immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(726,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2700',725,'Constructions',0,NULL,NULL,1,NULL,NULL),(727,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2701',725,'Installations machines et outillage',0,NULL,NULL,1,NULL,NULL),(728,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2702',725,'Mobilier et matériel roulant',0,NULL,NULL,1,NULL,NULL),(729,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2703',725,'Autres immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(730,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','271',724,'Avances et acomptes versés sur immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(731,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','28',1352,'Immobilisations financières',0,NULL,NULL,1,NULL,NULL),(732,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','280',731,'Participations dans des entreprises liées',0,NULL,NULL,1,NULL,NULL),(733,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2800',732,'Valeur d\'acquisition (peut être subdivisé par participation)',0,NULL,NULL,1,NULL,NULL),(734,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2801',732,'Montants non appelés (idem)',0,NULL,NULL,1,NULL,NULL),(735,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2808',732,'Plus-values actées (idem)',0,NULL,NULL,1,NULL,NULL),(736,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2809',732,'Réductions de valeurs actées (idem)',0,NULL,NULL,1,NULL,NULL),(737,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','281',731,'Créances sur des entreprises liées',0,NULL,NULL,1,NULL,NULL),(738,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2810',737,'Créances en compte',0,NULL,NULL,1,NULL,NULL),(739,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2811',737,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(740,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2812',737,'Titres à revenu fixes',0,NULL,NULL,1,NULL,NULL),(741,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2817',737,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(742,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2819',737,'Réductions de valeurs actées',0,NULL,NULL,1,NULL,NULL),(743,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','282',731,'Participations dans des entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(744,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2820',743,'Valeur d\'acquisition (peut être subdivisé par participation)',0,NULL,NULL,1,NULL,NULL),(745,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2821',743,'Montants non appelés (idem)',0,NULL,NULL,1,NULL,NULL),(746,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2828',743,'Plus-values actées (idem)',0,NULL,NULL,1,NULL,NULL),(747,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2829',743,'Réductions de valeurs actées (idem)',0,NULL,NULL,1,NULL,NULL),(748,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','283',731,'Créances sur des entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(749,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2830',748,'Créances en compte',0,NULL,NULL,1,NULL,NULL),(750,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2831',748,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(751,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2832',748,'Titres à revenu fixe',0,NULL,NULL,1,NULL,NULL),(752,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2837',748,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(753,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','2839',748,'Réductions de valeurs actées',0,NULL,NULL,1,NULL,NULL),(754,1,NULL,'2016-01-22 17:28:15','PCMN-BASE','IMMO','XXXXXX','284',731,'Autres actions et parts',0,NULL,NULL,1,NULL,NULL),(755,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2840',754,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(756,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2841',754,'Montants non appelés',0,NULL,NULL,1,NULL,NULL),(757,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2848',754,'Plus-values actées',0,NULL,NULL,1,NULL,NULL),(758,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2849',754,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(759,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','285',731,'Autres créances',0,NULL,NULL,1,NULL,NULL),(760,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2850',759,'Créances en compte',0,NULL,NULL,1,NULL,NULL),(761,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2851',759,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(762,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2852',759,'Titres à revenu fixe',0,NULL,NULL,1,NULL,NULL),(763,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2857',759,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(764,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2859',759,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(765,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','288',731,'Cautionnements versés en numéraires',0,NULL,NULL,1,NULL,NULL),(766,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2880',765,'Téléphone, téléfax, télex',0,NULL,NULL,1,NULL,NULL),(767,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2881',765,'Gaz',0,NULL,NULL,1,NULL,NULL),(768,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2882',765,'Eau',0,NULL,NULL,1,NULL,NULL),(769,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2883',765,'Electricité',0,NULL,NULL,1,NULL,NULL),(770,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2887',765,'Autres cautionnements versés en numéraires',0,NULL,NULL,1,NULL,NULL),(771,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29',1352,'Créances à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(772,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','290',771,'Créances commerciales',0,NULL,NULL,1,NULL,NULL),(773,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2900',772,'Clients',0,NULL,NULL,1,NULL,NULL),(774,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29000',773,'Créances en compte sur entreprises liées',0,NULL,NULL,1,NULL,NULL),(775,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29001',773,'Sur entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(776,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29002',773,'Sur clients Belgique',0,NULL,NULL,1,NULL,NULL),(777,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29003',773,'Sur clients C.E.E.',0,NULL,NULL,1,NULL,NULL),(778,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29004',773,'Sur clients exportation hors C.E.E.',0,NULL,NULL,1,NULL,NULL),(779,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29005',773,'Créances sur les coparticipants (associations momentanées)',0,NULL,NULL,1,NULL,NULL),(780,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2901',772,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(781,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29010',780,'Sur entreprises liées',0,NULL,NULL,1,NULL,NULL),(782,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29011',780,'Sur entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(783,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29012',780,'Sur clients Belgique',0,NULL,NULL,1,NULL,NULL),(784,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29013',780,'Sur clients C.E.E.',0,NULL,NULL,1,NULL,NULL),(785,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29014',780,'Sur clients exportation hors C.E.E.',0,NULL,NULL,1,NULL,NULL),(786,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2905',772,'Retenues sur garanties',0,NULL,NULL,1,NULL,NULL),(787,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2906',772,'Acomptes versés',0,NULL,NULL,1,NULL,NULL),(788,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2907',772,'Créances douteuses (à ventiler comme clients 2900)',0,NULL,NULL,1,NULL,NULL),(789,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2909',772,'Réductions de valeur actées (à ventiler comme clients 2900)',0,NULL,NULL,1,NULL,NULL),(790,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','291',771,'Autres créances',0,NULL,NULL,1,NULL,NULL),(791,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2910',790,'Créances en compte',0,NULL,NULL,1,NULL,NULL),(792,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29100',791,'Sur entreprises liées',0,NULL,NULL,1,NULL,NULL),(793,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29101',791,'Sur entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(794,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29102',791,'Sur autres débiteurs',0,NULL,NULL,1,NULL,NULL),(795,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2911',790,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(796,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29110',795,'Sur entreprises liées',0,NULL,NULL,1,NULL,NULL),(797,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29111',795,'Sur entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(798,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','29112',795,'Sur autres débiteurs',0,NULL,NULL,1,NULL,NULL),(799,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2912',790,'Créances résultant de la cession d\'immobilisations données en leasing',0,NULL,NULL,1,NULL,NULL),(800,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2917',790,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(801,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','IMMO','XXXXXX','2919',790,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(802,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','30',1353,'Approvisionnements - matières premières',0,NULL,NULL,1,NULL,NULL),(803,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','300',802,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(804,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','309',802,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(805,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','31',1353,'Approvsionnements et fournitures',0,NULL,NULL,1,NULL,NULL),(806,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','310',805,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(807,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3100',806,'Matières d\'approvisionnement',0,NULL,NULL,1,NULL,NULL),(808,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3101',806,'Energie, charbon, coke, mazout, essence, propane',0,NULL,NULL,1,NULL,NULL),(809,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3102',806,'Produits d\'entretien',0,NULL,NULL,1,NULL,NULL),(810,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3103',806,'Fournitures diverses et petit outillage',0,NULL,NULL,1,NULL,NULL),(811,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3104',806,'Imprimés et fournitures de bureau',0,NULL,NULL,1,NULL,NULL),(812,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3105',806,'Fournitures de services sociaux',0,NULL,NULL,1,NULL,NULL),(813,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3106',806,'Emballages commerciaux',0,NULL,NULL,1,NULL,NULL),(814,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','31060',813,'Emballages perdus',0,NULL,NULL,1,NULL,NULL),(815,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','31061',813,'Emballages récupérables',0,NULL,NULL,1,NULL,NULL),(816,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','319',805,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(817,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','32',1353,'En cours de fabrication',0,NULL,NULL,1,NULL,NULL),(818,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','320',817,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(819,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3200',818,'Produits semi-ouvrés',0,NULL,NULL,1,NULL,NULL),(820,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3201',818,'Produits en cours de fabrication',0,NULL,NULL,1,NULL,NULL),(821,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3202',818,'Travaux en cours',0,NULL,NULL,1,NULL,NULL),(822,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3205',818,'Déchets',0,NULL,NULL,1,NULL,NULL),(823,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3206',818,'Rebuts',0,NULL,NULL,1,NULL,NULL),(824,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3209',818,'Travaux en association momentanée',0,NULL,NULL,1,NULL,NULL),(825,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','329',817,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(826,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','33',1353,'Produits finis',0,NULL,NULL,1,NULL,NULL),(827,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','330',826,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(828,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3300',827,'Produits finis',0,NULL,NULL,1,NULL,NULL),(829,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','339',826,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(830,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','34',1353,'Marchandises',0,NULL,NULL,1,NULL,NULL),(831,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','340',830,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(832,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3400',831,'Groupe A',0,NULL,NULL,1,NULL,NULL),(833,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3401',831,'Groupe B',0,NULL,NULL,1,NULL,NULL),(834,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3402',831,'Groupe C',0,NULL,NULL,1,NULL,NULL),(835,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','349',830,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(836,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','35',1353,'Immeubles destinés à la vente',0,NULL,NULL,1,NULL,NULL),(837,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','350',836,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(838,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3500',837,'Immeuble A',0,NULL,NULL,1,NULL,NULL),(839,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3501',837,'Immeuble B',0,NULL,NULL,1,NULL,NULL),(840,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3502',837,'Immeuble C',0,NULL,NULL,1,NULL,NULL),(841,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','351',836,'Immeubles construits en vue de leur revente',0,NULL,NULL,1,NULL,NULL),(842,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3510',841,'Immeuble A',0,NULL,NULL,1,NULL,NULL),(843,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3511',841,'Immeuble B',0,NULL,NULL,1,NULL,NULL),(844,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','3512',841,'Immeuble C',0,NULL,NULL,1,NULL,NULL),(845,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','359',836,'Réductions de valeurs actées',0,NULL,NULL,1,NULL,NULL),(846,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','36',1353,'Acomptes versés sur achats pour stocks',0,NULL,NULL,1,NULL,NULL),(847,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','360',846,'Acomptes versés (à ventiler éventuellement par catégorie)',0,NULL,NULL,1,NULL,NULL),(848,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','369',846,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(849,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','37',1353,'Commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(850,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','370',849,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(851,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','371',849,'Bénéfice pris en compte',0,NULL,NULL,1,NULL,NULL),(852,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','STOCK','XXXXXX','379',849,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(853,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','40',1354,'Créances commerciales',0,NULL,NULL,1,NULL,NULL),(854,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','400',853,'Clients',0,NULL,NULL,1,NULL,NULL),(855,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4007',854,'Rabais, remises et  ristournes à accorder et autres notes de crédit à établir',0,NULL,NULL,1,NULL,NULL),(856,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4008',854,'Créances résultant de livraisons de biens (associations momentanées)',0,NULL,NULL,1,NULL,NULL),(857,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','401',853,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(858,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4010',857,'Effets à recevoir',0,NULL,NULL,1,NULL,NULL),(859,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4013',857,'Effets à l\'encaissement',0,NULL,NULL,1,NULL,NULL),(860,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4015',857,'Effets à l\'escompte',0,NULL,NULL,1,NULL,NULL),(861,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','402',853,'Clients, créances courantes, entreprises apparentées, administrateurs et gérants',0,NULL,NULL,1,NULL,NULL),(862,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4020',861,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(863,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4021',861,'Autres entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(864,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4022',861,'Administrateurs et gérants d\'entreprise',0,NULL,NULL,1,NULL,NULL),(865,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','403',853,'Effets à recevoir sur entreprises apparentées et administrateurs et gérants',0,NULL,NULL,1,NULL,NULL),(866,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4030',865,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(867,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4031',865,'Autres entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(868,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4032',865,'Administrateurs et gérants de l\'entreprise',0,NULL,NULL,1,NULL,NULL),(869,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','404',853,'Produits à recevoir (factures à établir)',0,NULL,NULL,1,NULL,NULL),(870,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','405',853,'Clients : retenues sur garanties',0,NULL,NULL,1,NULL,NULL),(871,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','406',853,'Acomptes versés',0,NULL,NULL,1,NULL,NULL),(872,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','407',853,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(873,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','408',853,'Compensation clients',0,NULL,NULL,1,NULL,NULL),(874,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','409',853,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(875,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','41',1354,'Autres créances',0,NULL,NULL,1,NULL,NULL),(876,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','410',875,'Capital appelé, non versé',0,NULL,NULL,1,NULL,NULL),(877,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4100',876,'Appels de fonds',0,NULL,NULL,1,NULL,NULL),(878,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4101',876,'Actionnaires défaillants',0,NULL,NULL,1,NULL,NULL),(879,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','411',875,'T.V.A. à récupérer',0,NULL,NULL,1,NULL,NULL),(880,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4110',879,'T.V.A. due',0,NULL,NULL,1,NULL,NULL),(881,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4111',879,'T.V.A. déductible',0,NULL,NULL,1,NULL,NULL),(882,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4112',879,'Compte courant administration T.V.A.',0,NULL,NULL,1,NULL,NULL),(883,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4118',879,'Taxe d\'égalisation due',0,NULL,NULL,1,NULL,NULL),(884,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','412',875,'Impôts et versements fiscaux à récupérer',0,NULL,NULL,1,NULL,NULL),(885,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4120',884,'Impôts belges sur le résultat',0,NULL,NULL,1,NULL,NULL),(886,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4125',884,'Autres impôts belges',0,NULL,NULL,1,NULL,NULL),(887,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4128',884,'Impôts étrangers',0,NULL,NULL,1,NULL,NULL),(888,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','414',875,'Produits à recevoir',0,NULL,NULL,1,NULL,NULL),(889,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','416',875,'Créances diverses',0,NULL,NULL,1,NULL,NULL),(890,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4160',889,'Associés (compte d\'apport en société)',0,NULL,NULL,1,NULL,NULL),(891,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4161',889,'Avances et prêts au personnel',0,NULL,NULL,1,NULL,NULL),(892,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4162',889,'Compte courant des associés en S.P.R.L.',0,NULL,NULL,1,NULL,NULL),(893,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4163',889,'Compte courant des administrateurs et gérants',0,NULL,NULL,1,NULL,NULL),(894,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4164',889,'Créances sur sociétés apparentées',0,NULL,NULL,1,NULL,NULL),(895,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4166',889,'Emballages et matériel à rendre',0,NULL,NULL,1,NULL,NULL),(896,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4167',889,'Etat et établissements publics',0,NULL,NULL,1,NULL,NULL),(897,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','41670',896,'Subsides à recevoir',0,NULL,NULL,1,NULL,NULL),(898,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','41671',896,'Autres créances',0,NULL,NULL,1,NULL,NULL),(899,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4168',889,'Rabais, ristournes et remises à obtenir et autres avoirs non encore reçus',0,NULL,NULL,1,NULL,NULL),(900,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','417',875,'Créances douteuses',0,NULL,NULL,1,NULL,NULL),(901,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','418',875,'Cautionnements versés en numéraires',0,NULL,NULL,1,NULL,NULL),(902,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','419',875,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(903,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','42',1354,'Dettes à plus d\'un an échéant dans l\'année',0,NULL,NULL,1,NULL,NULL),(904,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','420',903,'Emprunts subordonnés',0,NULL,NULL,1,NULL,NULL),(905,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4200',904,'Convertibles',0,NULL,NULL,1,NULL,NULL),(906,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4201',904,'Non convertibles',0,NULL,NULL,1,NULL,NULL),(907,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','421',903,'Emprunts obligataires non subordonnés',0,NULL,NULL,1,NULL,NULL),(908,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4210',907,'Convertibles',0,NULL,NULL,1,NULL,NULL),(909,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4211',907,'Non convertibles',0,NULL,NULL,1,NULL,NULL),(910,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','422',903,'Dettes de location-financement et assimilées',0,NULL,NULL,1,NULL,NULL),(911,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4220',910,'Financement de biens immobiliers',0,NULL,NULL,1,NULL,NULL),(912,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4221',910,'Financement de biens mobiliers',0,NULL,NULL,1,NULL,NULL),(913,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','423',903,'Etablissements de crédit',0,NULL,NULL,1,NULL,NULL),(914,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4230',913,'Dettes en compte',0,NULL,NULL,1,NULL,NULL),(915,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4231',913,'Promesses',0,NULL,NULL,1,NULL,NULL),(916,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4232',913,'Crédits d\'acceptation',0,NULL,NULL,1,NULL,NULL),(917,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','424',903,'Autres emprunts',0,NULL,NULL,1,NULL,NULL),(918,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','425',903,'Dettes commerciales',0,NULL,NULL,1,NULL,NULL),(919,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4250',918,'Fournisseurs',0,NULL,NULL,1,NULL,NULL),(920,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4251',918,'Effets à payer',0,NULL,NULL,1,NULL,NULL),(921,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','426',903,'Cautionnements reçus en numéraires',0,NULL,NULL,1,NULL,NULL),(922,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','429',903,'Dettes diverses',0,NULL,NULL,1,NULL,NULL),(923,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4290',922,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(924,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4291',922,'Entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(925,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4292',922,'Administrateurs, gérants, associés',0,NULL,NULL,1,NULL,NULL),(926,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4299',922,'Autres dettes',0,NULL,NULL,1,NULL,NULL),(927,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','43',1354,'Dettes financières',0,NULL,NULL,1,NULL,NULL),(928,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','430',927,'Etablissements de crédit. Emprunts en compte à terme fixe',0,NULL,NULL,1,NULL,NULL),(929,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','431',927,'Etablissements de crédit. Promesses',0,NULL,NULL,1,NULL,NULL),(930,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','432',927,'Etablissements de crédit. Crédits d\'acceptation',0,NULL,NULL,1,NULL,NULL),(931,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','433',927,'Etablissements de crédit. Dettes en compte courant',0,NULL,NULL,1,NULL,NULL),(932,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','439',927,'Autres emprunts',0,NULL,NULL,1,NULL,NULL),(933,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44',1354,'Dettes commerciales',0,NULL,NULL,1,NULL,NULL),(934,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','440',933,'Fournisseurs',0,NULL,NULL,1,NULL,NULL),(935,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4400',934,'Entreprises apparentées',0,NULL,NULL,1,NULL,NULL),(936,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44000',935,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(937,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44001',935,'Entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(938,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4401',934,'Fournisseurs ordinaires',0,NULL,NULL,1,NULL,NULL),(939,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44010',938,'Fournisseurs belges',0,NULL,NULL,1,NULL,NULL),(940,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44011',938,'Fournisseurs CEE',0,NULL,NULL,1,NULL,NULL),(941,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44012',938,'Fournisseurs importation',0,NULL,NULL,1,NULL,NULL),(942,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4402',934,'Dettes envers les coparticipants (associations momentanées)',0,NULL,NULL,1,NULL,NULL),(943,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4403',934,'Fournisseurs - retenues de garanties',0,NULL,NULL,1,NULL,NULL),(944,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','441',933,'Effets à payer',0,NULL,NULL,1,NULL,NULL),(945,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4410',944,'Entreprises apparentées',0,NULL,NULL,1,NULL,NULL),(946,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44100',945,'Entreprises liées',0,NULL,NULL,1,NULL,NULL),(947,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44101',945,'Entreprises avec lesquelles il existe un lien de participation',0,NULL,NULL,1,NULL,NULL),(948,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4411',944,'Fournisseurs ordinaires',0,NULL,NULL,1,NULL,NULL),(949,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44110',948,'Fournisseurs belges',0,NULL,NULL,1,NULL,NULL),(950,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44111',948,'Fournisseurs CEE',0,NULL,NULL,1,NULL,NULL),(951,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','44112',948,'Fournisseurs importation',0,NULL,NULL,1,NULL,NULL),(952,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','444',933,'Factures à recevoir',0,NULL,NULL,1,NULL,NULL),(953,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','446',933,'Acomptes reçus',0,NULL,NULL,1,NULL,NULL),(954,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','448',933,'Compensations fournisseurs',0,NULL,NULL,1,NULL,NULL),(955,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45',1354,'Dettes fiscales, salariales et sociales',0,NULL,NULL,1,NULL,NULL),(956,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','450',955,'Dettes fiscales estimées',0,NULL,NULL,1,NULL,NULL),(957,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4501',956,'Impôts sur le résultat',0,NULL,NULL,1,NULL,NULL),(958,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4505',956,'Autres impôts en Belgique',0,NULL,NULL,1,NULL,NULL),(959,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4508',956,'Impôts à l\'étranger',0,NULL,NULL,1,NULL,NULL),(960,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','451',955,'T.V.A. à payer',0,NULL,NULL,1,NULL,NULL),(961,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4510',960,'T.V.A. due',0,NULL,NULL,1,NULL,NULL),(962,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4511',960,'T.V.A. déductible',0,NULL,NULL,1,NULL,NULL),(963,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4512',960,'Compte courant administration T.V.A.',0,NULL,NULL,1,NULL,NULL),(964,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4518',960,'Taxe d\'égalisation due',0,NULL,NULL,1,NULL,NULL),(965,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','452',955,'Impôts et taxes à payer',0,NULL,NULL,1,NULL,NULL),(966,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4520',965,'Autres impôts sur le résultat',0,NULL,NULL,1,NULL,NULL),(967,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4525',965,'Autres impôts et taxes en Belgique',0,NULL,NULL,1,NULL,NULL),(968,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45250',967,'Précompte immobilier',0,NULL,NULL,1,NULL,NULL),(969,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45251',967,'Impôts communaux à payer',0,NULL,NULL,1,NULL,NULL),(970,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45252',967,'Impôts provinciaux à payer',0,NULL,NULL,1,NULL,NULL),(971,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45253',967,'Autres impôts et taxes à payer',0,NULL,NULL,1,NULL,NULL),(972,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4528',965,'Impôts et taxes à l\'étranger',0,NULL,NULL,1,NULL,NULL),(973,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','453',955,'Précomptes retenus',0,NULL,NULL,1,NULL,NULL),(974,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4530',973,'Précompte professionnel retenu sur rémunérations',0,NULL,NULL,1,NULL,NULL),(975,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4531',973,'Précompte professionnel retenu sur tantièmes',0,NULL,NULL,1,NULL,NULL),(976,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4532',973,'Précompte mobilier retenu sur dividendes attribués',0,NULL,NULL,1,NULL,NULL),(977,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4533',973,'Précompte mobilier retenu sur intérêts payés',0,NULL,NULL,1,NULL,NULL),(978,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4538',973,'Autres précomptes retenus',0,NULL,NULL,1,NULL,NULL),(979,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','454',955,'Office National de la Sécurité Sociale',0,NULL,NULL,1,NULL,NULL),(980,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4540',979,'Arriérés',0,NULL,NULL,1,NULL,NULL),(981,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4541',979,'1er trimestre',0,NULL,NULL,1,NULL,NULL),(982,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4542',979,'2ème trimestre',0,NULL,NULL,1,NULL,NULL),(983,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4543',979,'3ème trimestre',0,NULL,NULL,1,NULL,NULL),(984,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4544',979,'4ème trimestre',0,NULL,NULL,1,NULL,NULL),(985,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','455',955,'Rémunérations',0,NULL,NULL,1,NULL,NULL),(986,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4550',985,'Administrateurs,  gérants et commissaires (non réviseurs)',0,NULL,NULL,1,NULL,NULL),(987,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4551',985,'Direction',0,NULL,NULL,1,NULL,NULL),(988,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4552',985,'Employés',0,NULL,NULL,1,NULL,NULL),(989,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4553',985,'Ouvriers',0,NULL,NULL,1,NULL,NULL),(990,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','456',955,'Pécules de vacances',0,NULL,NULL,1,NULL,NULL),(991,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4560',990,'Direction',0,NULL,NULL,1,NULL,NULL),(992,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4561',990,'Employés',0,NULL,NULL,1,NULL,NULL),(993,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4562',990,'Ouvriers',0,NULL,NULL,1,NULL,NULL),(994,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','459',955,'Autres dettes sociales',0,NULL,NULL,1,NULL,NULL),(995,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4590',994,'Provision pour gratifications de fin d\'année',0,NULL,NULL,1,NULL,NULL),(996,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4591',994,'Départs de personnel',0,NULL,NULL,1,NULL,NULL),(997,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4592',994,'Oppositions sur rémunérations',0,NULL,NULL,1,NULL,NULL),(998,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4593',994,'Assurances relatives au personnel',0,NULL,NULL,1,NULL,NULL),(999,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45930',998,'Assurance loi',0,NULL,NULL,1,NULL,NULL),(1000,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45931',998,'Assurance salaire garanti',0,NULL,NULL,1,NULL,NULL),(1001,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45932',998,'Assurance groupe',0,NULL,NULL,1,NULL,NULL),(1002,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','45933',998,'Assurances individuelles',0,NULL,NULL,1,NULL,NULL),(1003,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4594',994,'Caisse d\'assurances sociales pour travailleurs indépendants',0,NULL,NULL,1,NULL,NULL),(1004,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4597',994,'Dettes et provisions sociales diverses',0,NULL,NULL,1,NULL,NULL),(1005,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','46',1354,'Acomptes reçus sur commande',0,NULL,NULL,1,NULL,NULL),(1006,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','47',1354,'Dettes découlant de l\'affectation des résultats',0,NULL,NULL,1,NULL,NULL),(1007,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','470',1006,'Dividendes et tantièmes d\'exercices antérieurs',0,NULL,NULL,1,NULL,NULL),(1008,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','471',1006,'Dividendes de l\'exercice',0,NULL,NULL,1,NULL,NULL),(1009,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','472',1006,'Tantièmes de l\'exercice',0,NULL,NULL,1,NULL,NULL),(1010,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','473',1006,'Autres allocataires',0,NULL,NULL,1,NULL,NULL),(1011,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','48',4,'Dettes diverses',0,NULL,NULL,1,NULL,NULL),(1012,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','480',1011,'Obligations et coupons échus',0,NULL,NULL,1,NULL,NULL),(1013,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','481',1011,'Actionnaires - capital à rembourser',0,NULL,NULL,1,NULL,NULL),(1014,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','482',1011,'Participation du personnel à payer',0,NULL,NULL,1,NULL,NULL),(1015,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','483',1011,'Acomptes reçus d\'autres tiers à moins d\'un an',0,NULL,NULL,1,NULL,NULL),(1016,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','486',1011,'Emballages et matériel consignés',0,NULL,NULL,1,NULL,NULL),(1017,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','488',1011,'Cautionnements reçus en numéraires',0,NULL,NULL,1,NULL,NULL),(1018,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','489',1011,'Autres dettes diverses',0,NULL,NULL,1,NULL,NULL),(1019,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49',1354,'Comptes de régularisation et compte d\'attente',0,NULL,NULL,1,NULL,NULL),(1020,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','490',1019,'Charges à reporter (à subdiviser par catégorie de charges)',0,NULL,NULL,1,NULL,NULL),(1021,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','491',1019,'Produits acquis',0,NULL,NULL,1,NULL,NULL),(1022,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4910',1021,'Produits d\'exploitation',0,NULL,NULL,1,NULL,NULL),(1023,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49100',1022,'Ristournes et rabais à obtenir',0,NULL,NULL,1,NULL,NULL),(1024,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49101',1022,'Commissions à obtenir',0,NULL,NULL,1,NULL,NULL),(1025,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49102',1022,'Autres produits d\'exploitation (redevances par exemple)',0,NULL,NULL,1,NULL,NULL),(1026,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4911',1021,'Produits financiers',0,NULL,NULL,1,NULL,NULL),(1027,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49110',1026,'Intérêts courus et non échus sur prêts et débits',0,NULL,NULL,1,NULL,NULL),(1028,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','49111',1026,'Autres produits financiers',0,NULL,NULL,1,NULL,NULL),(1029,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','492',1019,'Charges à imputer (à subdiviser par catégorie de charges)',0,NULL,NULL,1,NULL,NULL),(1030,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','493',1019,'Produits à reporter',0,NULL,NULL,1,NULL,NULL),(1031,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4930',1030,'Produits d\'exploitation à reporter',0,NULL,NULL,1,NULL,NULL),(1032,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4931',1030,'Produits financiers à reporter',0,NULL,NULL,1,NULL,NULL),(1033,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','499',1019,'Comptes d\'attente',0,NULL,NULL,1,NULL,NULL),(1034,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4990',1033,'Compte d\'attente',0,NULL,NULL,1,NULL,NULL),(1035,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4991',1033,'Compte de répartition périodique des charges',0,NULL,NULL,1,NULL,NULL),(1036,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','TIERS','XXXXXX','4999',1033,'Transferts d\'exercice',0,NULL,NULL,1,NULL,NULL),(1037,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','50',1355,'Actions propres',0,NULL,NULL,1,NULL,NULL),(1038,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','51',1355,'Actions et parts',0,NULL,NULL,1,NULL,NULL),(1039,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','510',1038,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(1040,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','511',1038,'Montants non appelés',0,NULL,NULL,1,NULL,NULL),(1041,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','519',1038,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(1042,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','52',1355,'Titres à revenus fixes',0,NULL,NULL,1,NULL,NULL),(1043,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','520',1042,'Valeur d\'acquisition',0,NULL,NULL,1,NULL,NULL),(1044,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','529',1042,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(1045,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','53',1355,'Dépots à terme',0,NULL,NULL,1,NULL,NULL),(1046,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','530',1045,'De plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1047,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','531',1045,'De plus d\'un mois et à un an au plus',0,NULL,NULL,1,NULL,NULL),(1048,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','532',1045,'d\'un mois au plus',0,NULL,NULL,1,NULL,NULL),(1049,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','539',1045,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(1050,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','54',1355,'Valeurs échues à l\'encaissement',0,NULL,NULL,1,NULL,NULL),(1051,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','540',1050,'Chèques à encaisser',0,NULL,NULL,1,NULL,NULL),(1052,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','541',1050,'Coupons à encaisser',0,NULL,NULL,1,NULL,NULL),(1053,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','55',1355,'Etablissements de crédit - Comptes ouverts auprès des divers établissements.',0,NULL,NULL,1,NULL,NULL),(1054,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','550',1053,'Comptes courants',0,NULL,NULL,1,NULL,NULL),(1055,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','551',1053,'Chèques émis',0,NULL,NULL,1,NULL,NULL),(1056,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','559',1053,'Réductions de valeur actées',0,NULL,NULL,1,NULL,NULL),(1057,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','56',1355,'Office des chèques postaux',0,NULL,NULL,1,NULL,NULL),(1058,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','560',1057,'Compte courant',0,NULL,NULL,1,NULL,NULL),(1059,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','561',1057,'Chèques émis',0,NULL,NULL,1,NULL,NULL),(1060,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','57',1355,'Caisses',0,NULL,NULL,1,NULL,NULL),(1061,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','570',1060,'à 577 Caisses - espèces ( 0 - centrale ; 7 - succursales et agences)',0,NULL,NULL,1,NULL,NULL),(1062,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','578',1060,'Caisses - timbres ( 0 - fiscaux ; 1 - postaux)',0,NULL,NULL,1,NULL,NULL),(1063,1,NULL,'2016-01-22 17:28:16','PCMN-BASE','FINAN','XXXXXX','58',1355,'Virements internes',0,NULL,NULL,1,NULL,NULL),(1064,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','60',1356,'Approvisionnements et marchandises',0,NULL,NULL,1,NULL,NULL),(1065,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','600',1064,'Achats de matières premières',0,NULL,NULL,1,NULL,NULL),(1066,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','601',1064,'Achats de fournitures',0,NULL,NULL,1,NULL,NULL),(1067,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','602',1064,'Achats de services, travaux et études',0,NULL,NULL,1,NULL,NULL),(1068,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','603',1064,'Sous-traitances générales',0,NULL,NULL,1,NULL,NULL),(1069,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','604',1064,'Achats de marchandises',0,NULL,NULL,1,NULL,NULL),(1070,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','605',1064,'Achats d\'immeubles destinés à la revente',0,NULL,NULL,1,NULL,NULL),(1071,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','608',1064,'Remises , ristournes et rabais obtenus sur achats',0,NULL,NULL,1,NULL,NULL),(1072,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','609',1064,'Variations de stocks',0,NULL,NULL,1,NULL,NULL),(1073,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6090',1072,'De matières premières',0,NULL,NULL,1,NULL,NULL),(1074,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6091',1072,'De fournitures',0,NULL,NULL,1,NULL,NULL),(1075,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6094',1072,'De marchandises',0,NULL,NULL,1,NULL,NULL),(1076,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6095',1072,'d\'immeubles destinés à la vente',0,NULL,NULL,1,NULL,NULL),(1077,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61',1356,'Services et biens divers',0,NULL,NULL,1,NULL,NULL),(1078,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','610',1077,'Loyers et charges locatives',0,NULL,NULL,1,NULL,NULL),(1079,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6100',1078,'Loyers divers',0,NULL,NULL,1,NULL,NULL),(1080,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6101',1078,'Charges locatives (assurances, frais de confort,etc)',0,NULL,NULL,1,NULL,NULL),(1081,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','611',1077,'Entretien et réparation (fournitures et prestations)',0,NULL,NULL,1,NULL,NULL),(1082,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','612',1077,'Fournitures faites à l\'entreprise',0,NULL,NULL,1,NULL,NULL),(1083,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6120',1082,'Eau, gaz, électricité, vapeur',0,NULL,NULL,1,NULL,NULL),(1084,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61200',1083,'Eau',0,NULL,NULL,1,NULL,NULL),(1085,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61201',1083,'Gaz',0,NULL,NULL,1,NULL,NULL),(1086,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61202',1083,'Electricité',0,NULL,NULL,1,NULL,NULL),(1087,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61203',1083,'Vapeur',0,NULL,NULL,1,NULL,NULL),(1088,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6121',1082,'Téléphone, télégrammes, télex, téléfax, frais postaux',0,NULL,NULL,1,NULL,NULL),(1089,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61210',1088,'Téléphone',0,NULL,NULL,1,NULL,NULL),(1090,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61211',1088,'Télégrammes',0,NULL,NULL,1,NULL,NULL),(1091,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61212',1088,'Télex et téléfax',0,NULL,NULL,1,NULL,NULL),(1092,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61213',1088,'Frais postaux',0,NULL,NULL,1,NULL,NULL),(1093,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6122',1082,'Livres, bibliothèque',0,NULL,NULL,1,NULL,NULL),(1094,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6123',1082,'Imprimés et fournitures de bureau (si non comptabilisé au 601)',0,NULL,NULL,1,NULL,NULL),(1095,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','613',1077,'Rétributions de tiers',0,NULL,NULL,1,NULL,NULL),(1096,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6130',1095,'Redevances et royalties',0,NULL,NULL,1,NULL,NULL),(1097,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61300',1096,'Redevances pour brevets, licences, marques et accessoires',0,NULL,NULL,1,NULL,NULL),(1098,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61301',1096,'Autres redevances (procédés de fabrication)',0,NULL,NULL,1,NULL,NULL),(1099,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6131',1095,'Assurances non relatives au personnel',0,NULL,NULL,1,NULL,NULL),(1100,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61310',1099,'Assurance incendie',0,NULL,NULL,1,NULL,NULL),(1101,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61311',1099,'Assurance vol',0,NULL,NULL,1,NULL,NULL),(1102,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61312',1099,'Assurance autos',0,NULL,NULL,1,NULL,NULL),(1103,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61313',1099,'Assurance crédit',0,NULL,NULL,1,NULL,NULL),(1104,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61314',1099,'Assurances frais généraux',0,NULL,NULL,1,NULL,NULL),(1105,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6132',1095,'Divers',0,NULL,NULL,1,NULL,NULL),(1106,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61320',1105,'Commissions aux tiers',0,NULL,NULL,1,NULL,NULL),(1107,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61321',1105,'Honoraires d\'avocats, d\'experts, etc',0,NULL,NULL,1,NULL,NULL),(1108,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61322',1105,'Cotisations aux groupements professionnels',0,NULL,NULL,1,NULL,NULL),(1109,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61323',1105,'Dons, libéralités, etc',0,NULL,NULL,1,NULL,NULL),(1110,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61324',1105,'Frais de contentieux',0,NULL,NULL,1,NULL,NULL),(1111,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61325',1105,'Publications légales',0,NULL,NULL,1,NULL,NULL),(1112,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6133',1095,'Transports et déplacements',0,NULL,NULL,1,NULL,NULL),(1113,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61330',1112,'Transports de personnel',0,NULL,NULL,1,NULL,NULL),(1114,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','61331',1112,'Voyages, déplacements et représentations',0,NULL,NULL,1,NULL,NULL),(1115,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6134',1095,'Personnel intérimaire',0,NULL,NULL,1,NULL,NULL),(1116,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','614',1077,'Annonces, publicité, propagande et documentation',0,NULL,NULL,1,NULL,NULL),(1117,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6140',1116,'Annonces et insertions',0,NULL,NULL,1,NULL,NULL),(1118,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6141',1116,'Catalogues et imprimés',0,NULL,NULL,1,NULL,NULL),(1119,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6142',1116,'Echantillons',0,NULL,NULL,1,NULL,NULL),(1120,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6143',1116,'Foires et expositions',0,NULL,NULL,1,NULL,NULL),(1121,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6144',1116,'Primes',0,NULL,NULL,1,NULL,NULL),(1122,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6145',1116,'Cadeaux à la clientèle',0,NULL,NULL,1,NULL,NULL),(1123,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6146',1116,'Missions et réceptions',0,NULL,NULL,1,NULL,NULL),(1124,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6147',1116,'Documentation',0,NULL,NULL,1,NULL,NULL),(1125,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','615',1077,'Sous-traitants',0,NULL,NULL,1,NULL,NULL),(1126,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6150',1125,'Sous-traitants pour activités propres',0,NULL,NULL,1,NULL,NULL),(1127,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6151',1125,'Sous-traitants d\'associations momentanées (coparticipants)',0,NULL,NULL,1,NULL,NULL),(1128,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6152',1125,'Quote-part bénéficiaire des coparticipants',0,NULL,NULL,1,NULL,NULL),(1129,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','617',1077,'Personnel intérimaire et personnes mises à la disposition de l\'entreprise',0,NULL,NULL,1,NULL,NULL),(1130,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','618',1077,'Rémunérations, primes pour assurances extralégales, pensions de retraite et de survie des administrateurs, gérants et associés actifs qui ne sont pas attribuées en vertu d\'un contrat de travail',0,NULL,NULL,1,NULL,NULL),(1131,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62',1356,'Rémunérations, charges sociales et pensions',0,NULL,NULL,1,NULL,NULL),(1132,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','620',1131,'Rémunérations et avantages sociaux directs',0,NULL,NULL,1,NULL,NULL),(1133,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6200',1132,'Administrateurs ou gérants',0,NULL,NULL,1,NULL,NULL),(1134,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6201',1132,'Personnel de direction',0,NULL,NULL,1,NULL,NULL),(1135,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6202',1132,'Employés',0,NULL,NULL,1,NULL,NULL),(1136,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6203',1132,'Ouvriers',0,NULL,NULL,1,NULL,NULL),(1137,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6204',1132,'Autres membres du personnel',0,NULL,NULL,1,NULL,NULL),(1138,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','621',1131,'Cotisations patronales d\'assurances sociales',0,NULL,NULL,1,NULL,NULL),(1139,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6210',1138,'Sur salaires',0,NULL,NULL,1,NULL,NULL),(1140,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6211',1138,'Sur appointements et commissions',0,NULL,NULL,1,NULL,NULL),(1141,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','622',1131,'Primes patronales pour assurances extralégales',0,NULL,NULL,1,NULL,NULL),(1142,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','623',1131,'Autres frais de personnel',0,NULL,NULL,1,NULL,NULL),(1143,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6230',1142,'Assurances du personnel',0,NULL,NULL,1,NULL,NULL),(1144,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62300',1143,'Assurances loi, responsabilité civile, chemin du travail',0,NULL,NULL,1,NULL,NULL),(1145,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62301',1143,'Assurance salaire garanti',0,NULL,NULL,1,NULL,NULL),(1146,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62302',1143,'Assurances individuelles',0,NULL,NULL,1,NULL,NULL),(1147,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6231',1142,'Charges sociales diverses',0,NULL,NULL,1,NULL,NULL),(1148,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62310',1147,'Jours fériés payés',0,NULL,NULL,1,NULL,NULL),(1149,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62311',1147,'Salaire hebdomadaire garanti',0,NULL,NULL,1,NULL,NULL),(1150,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62312',1147,'Allocations familiales complémentaires',0,NULL,NULL,1,NULL,NULL),(1151,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6232',1142,'Charges sociales des administrateurs, gérants et commissaires',0,NULL,NULL,1,NULL,NULL),(1152,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62320',1151,'Allocations familiales complémentaires pour non salariés',0,NULL,NULL,1,NULL,NULL),(1153,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62321',1151,'Lois sociales pour indépendants',0,NULL,NULL,1,NULL,NULL),(1154,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','62322',1151,'Divers',0,NULL,NULL,1,NULL,NULL),(1155,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','624',1131,'Pensions de retraite et de survie',0,NULL,NULL,1,NULL,NULL),(1156,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6240',1155,'Administrateurs et gérants',0,NULL,NULL,1,NULL,NULL),(1157,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6241',1155,'Personnel',0,NULL,NULL,1,NULL,NULL),(1158,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','625',1131,'Provision pour pécule de vacances',0,NULL,NULL,1,NULL,NULL),(1159,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6250',1158,'Dotations',0,NULL,NULL,1,NULL,NULL),(1160,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6251',1158,'Utilisations et reprises',0,NULL,NULL,1,NULL,NULL),(1161,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','63',1356,'Amortissements, réductions de valeur et provisions pour risques et charges',0,NULL,NULL,1,NULL,NULL),(1162,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','630',1161,'Dotations aux amortissements et aux réductions de valeur sur immobilisations',0,NULL,NULL,1,NULL,NULL),(1163,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6300',1162,'Dotations aux amortissements sur frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(1164,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6301',1162,'Dotations aux amortissements sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1165,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6302',1162,'Dotations aux amortissements sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1166,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6308',1162,'Dotations aux réductions de valeur sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1167,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6309',1162,'Dotations aux réductions de valeur sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1168,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','631',1161,'Réductions de valeur sur stocks',0,NULL,NULL,1,NULL,NULL),(1169,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6310',1168,'Dotations',0,NULL,NULL,1,NULL,NULL),(1170,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6311',1168,'Reprises',0,NULL,NULL,1,NULL,NULL),(1171,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','632',1161,'Réductions de valeur sur commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1172,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6320',1171,'Dotations',0,NULL,NULL,1,NULL,NULL),(1173,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6321',1171,'Reprises',0,NULL,NULL,1,NULL,NULL),(1174,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','633',1161,'Réductions de valeur sur créances commerciales à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1175,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6330',1174,'Dotations',0,NULL,NULL,1,NULL,NULL),(1176,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6331',1174,'Reprises',0,NULL,NULL,1,NULL,NULL),(1177,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','634',1161,'Réductions de valeur sur créances commerciales à un an au plus',0,NULL,NULL,1,NULL,NULL),(1178,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6340',1177,'Dotations',0,NULL,NULL,1,NULL,NULL),(1179,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6341',1177,'Reprises',0,NULL,NULL,1,NULL,NULL),(1180,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','635',1161,'Provisions pour pensions et obligations similaires',0,NULL,NULL,1,NULL,NULL),(1181,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6350',1180,'Dotations',0,NULL,NULL,1,NULL,NULL),(1182,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6351',1180,'Utilisations et reprises',0,NULL,NULL,1,NULL,NULL),(1183,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','636',11613,'Provisions pour grosses réparations et gros entretiens',0,NULL,NULL,1,NULL,NULL),(1184,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6360',1183,'Dotations',0,NULL,NULL,1,NULL,NULL),(1185,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6361',1183,'Utilisations et reprises',0,NULL,NULL,1,NULL,NULL),(1186,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','637',1161,'Provisions pour autres risques et charges',0,NULL,NULL,1,NULL,NULL),(1187,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6370',1186,'Dotations',0,NULL,NULL,1,NULL,NULL),(1188,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6371',1186,'Utilisations et reprises',0,NULL,NULL,1,NULL,NULL),(1189,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64',1356,'Autres charges d\'exploitation',0,NULL,NULL,1,NULL,NULL),(1190,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','640',1189,'Charges fiscales d\'exploitation',0,NULL,NULL,1,NULL,NULL),(1191,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6400',1190,'Taxes et impôts directs',0,NULL,NULL,1,NULL,NULL),(1192,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64000',1191,'Taxes sur autos et camions',0,NULL,NULL,1,NULL,NULL),(1193,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6401',1190,'Taxes et impôts indirects',0,NULL,NULL,1,NULL,NULL),(1194,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64010',1193,'Timbres fiscaux pris en charge par la firme',0,NULL,NULL,1,NULL,NULL),(1195,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64011',1193,'Droits d\'enregistrement',0,NULL,NULL,1,NULL,NULL),(1196,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64012',1193,'T.V.A. non déductible',0,NULL,NULL,1,NULL,NULL),(1197,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6402',1190,'Impôts provinciaux et communaux',0,NULL,NULL,1,NULL,NULL),(1198,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64020',1197,'Taxe sur la force motrice',0,NULL,NULL,1,NULL,NULL),(1199,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','64021',1197,'Taxe sur le personnel occupé',0,NULL,NULL,1,NULL,NULL),(1200,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6403',1190,'Taxes diverses',0,NULL,NULL,1,NULL,NULL),(1201,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','641',1189,'Moins-values sur réalisations courantes d\'immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1202,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','642',1189,'Moins-values sur réalisations de créances commerciales',0,NULL,NULL,1,NULL,NULL),(1203,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','643',1189,'à 648 Charges d\'exploitations diverses',0,NULL,NULL,1,NULL,NULL),(1204,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','649',1189,'Charges d\'exploitation portées à l\'actif au titre de restructuration',0,NULL,NULL,1,NULL,NULL),(1205,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','65',1356,'Charges financières',0,NULL,NULL,1,NULL,NULL),(1206,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','650',1205,'Charges des dettes',0,NULL,NULL,1,NULL,NULL),(1207,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6500',1206,'Intérêts, commissions et frais afférents aux dettes',0,NULL,NULL,1,NULL,NULL),(1208,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6501',1206,'Amortissements des agios et frais d\'émission d\'emprunts',0,NULL,NULL,1,NULL,NULL),(1209,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6502',1206,'Autres charges de dettes',0,NULL,NULL,1,NULL,NULL),(1210,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6503',1206,'Intérêts intercalaires portés à l\'actif',0,NULL,NULL,1,NULL,NULL),(1211,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','651',1205,'Réductions de valeur sur actifs circulants',0,NULL,NULL,1,NULL,NULL),(1212,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6510',1211,'Dotations',0,NULL,NULL,1,NULL,NULL),(1213,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6511',1211,'Reprises',0,NULL,NULL,1,NULL,NULL),(1214,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','652',1205,'Moins-values sur réalisation d\'actifs circulants',0,NULL,NULL,1,NULL,NULL),(1215,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','653',1205,'Charges d\'escompte de créances',0,NULL,NULL,1,NULL,NULL),(1216,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','654',1205,'Différences de change',0,NULL,NULL,1,NULL,NULL),(1217,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','655',1205,'Ecarts de conversion des devises',0,NULL,NULL,1,NULL,NULL),(1218,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','656',1205,'Frais de banques, de chèques postaux',0,NULL,NULL,1,NULL,NULL),(1219,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','657',1205,'Commissions sur ouvertures de crédit, cautions et avals',0,NULL,NULL,1,NULL,NULL),(1220,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','658',1205,'Frais de vente des titres',0,NULL,NULL,1,NULL,NULL),(1221,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','66',1356,'Charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(1222,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','660',1221,'Amortissements et réductions de valeur exceptionnels',0,NULL,NULL,1,NULL,NULL),(1223,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6600',1222,'Sur frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(1224,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6601',1222,'Sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1225,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6602',1222,'Sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1226,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','661',1221,'Réductions de valeur sur immobilisations financières',0,NULL,NULL,1,NULL,NULL),(1227,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','662',1221,'Provisions pour risques et charges exceptionnels',0,NULL,NULL,1,NULL,NULL),(1228,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','663',1221,'Moins-values sur réalisation d\'actifs immobilisés',0,NULL,NULL,1,NULL,NULL),(1229,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6630',1228,'Sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1230,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6631',1228,'Sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1231,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6632',1228,'Sur immobilisations détenues en location-financement et droits similaires',0,NULL,NULL,1,NULL,NULL),(1232,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6633',1228,'Sur immobilisations financières',0,NULL,NULL,1,NULL,NULL),(1233,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6634',1228,'Sur immeubles acquis ou construits en vue de la revente',0,NULL,NULL,1,NULL,NULL),(1234,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','664',1221,'à 668 Autres charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(1236,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','665',1221,'Différence de charge',0,NULL,NULL,1,NULL,NULL),(1237,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','669',1221,'Charges exceptionnelles transférées à l\'actif en frais de restructuration',0,NULL,NULL,1,NULL,NULL),(1238,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','67',1356,'Impôts sur le résultat',0,NULL,NULL,1,NULL,NULL),(1239,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','670',1238,'Impôts belges sur le résultat de l\'exercice',0,NULL,NULL,1,NULL,NULL),(1240,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6700',1239,'Impôts et précomptes dus ou versés',0,NULL,NULL,1,NULL,NULL),(1241,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6701',1239,'Excédent de versements d\'impôts et précomptes porté à l\'actif',0,NULL,NULL,1,NULL,NULL),(1242,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6702',1239,'Charges fiscales estimées',0,NULL,NULL,1,NULL,NULL),(1243,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','671',1238,'Impôts belges sur le résultat d\'exercices antérieurs',0,NULL,NULL,1,NULL,NULL),(1244,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6710',1243,'Suppléments d\'impôts dus ou versés',0,NULL,NULL,1,NULL,NULL),(1245,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6711',1243,'Suppléments d\'impôts estimés',0,NULL,NULL,1,NULL,NULL),(1246,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6712',1243,'Provisions fiscales constituées',0,NULL,NULL,1,NULL,NULL),(1247,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','672',1238,'Impôts étrangers sur le résultat de l\'exercice',0,NULL,NULL,1,NULL,NULL),(1248,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','673',1238,'Impôts étrangers sur le résultat d\'exercices antérieurs',0,NULL,NULL,1,NULL,NULL),(1249,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','68',1356,'Transferts aux réserves immunisées',0,NULL,NULL,1,NULL,NULL),(1250,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','69',1356,'Affectation des résultats',0,NULL,NULL,1,NULL,NULL),(1251,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','690',1250,'Perte reportée de l\'exercice précédent',0,NULL,NULL,1,NULL,NULL),(1252,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','691',1250,'Dotation à la réserve légale',0,NULL,NULL,1,NULL,NULL),(1253,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','692',1250,'Dotation aux autres réserves',0,NULL,NULL,1,NULL,NULL),(1254,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','693',1250,'Bénéfice à reporter',0,NULL,NULL,1,NULL,NULL),(1255,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','694',1250,'Rémunération du capital',0,NULL,NULL,1,NULL,NULL),(1256,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','695',1250,'Administrateurs ou gérants',0,NULL,NULL,1,NULL,NULL),(1257,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','696',1250,'Autres allocataires',0,NULL,NULL,1,NULL,NULL),(1258,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','70',1357,'Chiffre d\'affaires',0,NULL,NULL,1,NULL,NULL),(1260,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','700',1258,'Ventes de marchandises',0,NULL,NULL,1,NULL,NULL),(1261,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7000',1260,'Ventes en Belgique',0,NULL,NULL,1,NULL,NULL),(1262,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7001',1260,'Ventes dans les pays membres de la C.E.E.',0,NULL,NULL,1,NULL,NULL),(1263,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7002',1260,'Ventes à l\'exportation',0,NULL,NULL,1,NULL,NULL),(1264,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','701',1258,'Ventes de produits finis',0,NULL,NULL,1,NULL,NULL),(1265,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7010',1264,'Ventes en Belgique',0,NULL,NULL,1,NULL,NULL),(1266,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7011',1264,'Ventes dans les pays membres de la C.E.E.',0,NULL,NULL,1,NULL,NULL),(1267,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7012',1264,'Ventes à l\'exportation',0,NULL,NULL,1,NULL,NULL),(1268,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','702',1258,'Ventes de déchets et rebuts',0,NULL,NULL,1,NULL,NULL),(1269,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7020',1268,'Ventes en Belgique',0,NULL,NULL,1,NULL,NULL),(1270,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7021',1268,'Ventes dans les pays membres de la C.E.E.',0,NULL,NULL,1,NULL,NULL),(1271,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7022',1268,'Ventes à l\'exportation',0,NULL,NULL,1,NULL,NULL),(1272,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','703',1258,'Ventes d\'emballages récupérables',0,NULL,NULL,1,NULL,NULL),(1273,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','704',1258,'Facturations des travaux en cours (associations momentanées)',0,NULL,NULL,1,NULL,NULL),(1274,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','705',1258,'Prestations de services',0,NULL,NULL,1,NULL,NULL),(1275,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7050',1274,'Prestations de services en Belgique',0,NULL,NULL,1,NULL,NULL),(1276,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7051',1274,'Prestations de services dans les pays membres de la C.E.E.',0,NULL,NULL,1,NULL,NULL),(1277,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7052',1274,'Prestations de services en vue de l\'exportation',0,NULL,NULL,1,NULL,NULL),(1278,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','706',1258,'Pénalités et dédits obtenus par l\'entreprise',0,NULL,NULL,1,NULL,NULL),(1279,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','708',1258,'Remises, ristournes et rabais accordés',0,NULL,NULL,1,NULL,NULL),(1280,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7080',1279,'Sur ventes de marchandises',0,NULL,NULL,1,NULL,NULL),(1281,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7081',1279,'Sur ventes de produits finis',0,NULL,NULL,1,NULL,NULL),(1282,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7082',1279,'Sur ventes de déchets et rebuts',0,NULL,NULL,1,NULL,NULL),(1283,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7083',1279,'Sur prestations de services',0,NULL,NULL,1,NULL,NULL),(1284,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7084',1279,'Mali sur travaux facturés aux associations momentanées',0,NULL,NULL,1,NULL,NULL),(1285,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','71',1357,'Variation des stocks et des commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1286,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','712',1285,'Des en cours de fabrication',0,NULL,NULL,1,NULL,NULL),(1287,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','713',1285,'Des produits finis',0,NULL,NULL,1,NULL,NULL),(1288,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','715',1285,'Des immeubles construits destinés à la vente',0,NULL,NULL,1,NULL,NULL),(1289,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','717',1285,'Des commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1290,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7170',1289,'Commandes en cours - Coût de revient',0,NULL,NULL,1,NULL,NULL),(1291,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','71700',1290,'Coût des commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1292,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','71701',1290,'Coût des travaux en cours des associations momentanées',0,NULL,NULL,1,NULL,NULL),(1293,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7171',1289,'Bénéfices portés en compte sur commandes en cours',0,NULL,NULL,1,NULL,NULL),(1294,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','71710',1293,'Sur commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1295,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','71711',1293,'Sur travaux en cours des associations momentanées',0,NULL,NULL,1,NULL,NULL),(1296,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','72',1357,'Production immobilisée',0,NULL,NULL,1,NULL,NULL),(1297,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','720',1296,'En frais d\'établissement',0,NULL,NULL,1,NULL,NULL),(1298,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','721',1296,'En immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1299,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','722',1296,'En immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1300,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','723',1296,'En immobilisations en cours',0,NULL,NULL,1,NULL,NULL),(1301,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','74',1357,'Autres produits d\'exploitation',0,NULL,NULL,1,NULL,NULL),(1302,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','740',1301,'Subsides d\'exploitation et montants compensatoires',0,NULL,NULL,1,NULL,NULL),(1303,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','741',1301,'Plus-values sur réalisations courantes d\'immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1304,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','742',1301,'Plus-values sur réalisations de créances commerciales',0,NULL,NULL,1,NULL,NULL),(1305,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','743',1301,'à 749 Produits d\'exploitation divers',0,NULL,NULL,1,NULL,NULL),(1307,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','744',1301,'Commissions et courtages',0,NULL,NULL,1,NULL,NULL),(1308,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','745',1301,'Redevances pour brevets et licences',0,NULL,NULL,1,NULL,NULL),(1309,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','746',1301,'Prestations de services (transports, études, etc)',0,NULL,NULL,1,NULL,NULL),(1310,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','747',1301,'Revenus des immeubles affectés aux activités non professionnelles',0,NULL,NULL,1,NULL,NULL),(1311,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','748',1301,'Locations diverses à caractère professionnel',0,NULL,NULL,1,NULL,NULL),(1312,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','749',1301,'Produits divers',0,NULL,NULL,1,NULL,NULL),(1313,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7490',1312,'Bonis sur reprises d\'emballages consignés',0,NULL,NULL,1,NULL,NULL),(1314,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7491',1312,'Bonis sur travaux en associations momentanées',0,NULL,NULL,1,NULL,NULL),(1315,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','75',1357,'Produits financiers',0,NULL,NULL,1,NULL,NULL),(1316,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','750',1315,'Produits des immobilisations financières',0,NULL,NULL,1,NULL,NULL),(1317,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7500',1316,'Revenus des actions',0,NULL,NULL,1,NULL,NULL),(1318,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7501',1316,'Revenus des obligations',0,NULL,NULL,1,NULL,NULL),(1319,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7502',1316,'Revenus des créances à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1320,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','751',1315,'Produits des actifs circulants',0,NULL,NULL,1,NULL,NULL),(1321,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','752',1315,'Plus-values sur réalisations d\'actifs circulants',0,NULL,NULL,1,NULL,NULL),(1322,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','753',1315,'Subsides en capital et en intérêts',0,NULL,NULL,1,NULL,NULL),(1323,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','754',1315,'Différences de change',0,NULL,NULL,1,NULL,NULL),(1324,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','755',1315,'Ecarts de conversion des devises',0,NULL,NULL,1,NULL,NULL),(1325,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','756',1315,'à 759 Produits financiers divers',0,NULL,NULL,1,NULL,NULL),(1327,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','757',1315,'Escomptes obtenus',0,NULL,NULL,1,NULL,NULL),(1328,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','76',1357,'Produits exceptionnels',0,NULL,NULL,1,NULL,NULL),(1329,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','760',1328,'Reprises d\'amortissements et de réductions de valeur',0,NULL,NULL,1,NULL,NULL),(1330,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7600',1329,'Sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1331,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7601',1329,'Sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1332,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','761',1328,'Reprises de réductions de valeur sur immobilisations financières',0,NULL,NULL,1,NULL,NULL),(1333,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','762',1328,'Reprises de provisions pour risques et charges exceptionnelles',0,NULL,NULL,1,NULL,NULL),(1334,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','763',1328,'Plus-values sur réalisation d\'actifs immobilisés',0,NULL,NULL,1,NULL,NULL),(1335,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7630',1334,'Sur immobilisations incorporelles',0,NULL,NULL,1,NULL,NULL),(1336,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7631',1334,'Sur immobilisations corporelles',0,NULL,NULL,1,NULL,NULL),(1337,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7632',1334,'Sur immobilisations financières',0,NULL,NULL,1,NULL,NULL),(1338,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','764',1328,'Autres produits exceptionnels',0,NULL,NULL,1,NULL,NULL),(1339,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','77',1357,'Régularisations d\'impôts et reprises de provisions fiscales',0,NULL,NULL,1,NULL,NULL),(1340,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','771',1339,'Impôts belges sur le résultat',0,NULL,NULL,1,NULL,NULL),(1341,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7710',1340,'Régularisations d\'impôts dus ou versés',0,NULL,NULL,1,NULL,NULL),(1342,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7711',1340,'Régularisations d\'impôts estimés',0,NULL,NULL,1,NULL,NULL),(1343,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7712',1340,'Reprises de provisions fiscales',0,NULL,NULL,1,NULL,NULL),(1344,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','773',1339,'Impôts étrangers sur le résultat',0,NULL,NULL,1,NULL,NULL),(1345,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','79',1357,'Affectation aux résultats',0,NULL,NULL,1,NULL,NULL),(1346,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','790',1345,'Bénéfice reporté de l\'exercice précédent',0,NULL,NULL,1,NULL,NULL),(1347,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','791',1345,'Prélèvement sur le capital et les primes d\'émission',0,NULL,NULL,1,NULL,NULL),(1348,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','792',1345,'Prélèvement sur les réserves',0,NULL,NULL,1,NULL,NULL),(1349,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','793',1345,'Perte à reporter',0,NULL,NULL,1,NULL,NULL),(1350,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','794',1345,'Intervention d\'associés (ou du propriétaire) dans la perte',0,NULL,NULL,1,NULL,NULL),(1351,1,NULL,'2016-07-30 11:12:54','PCMN-BASE','CAPIT','XXXXXX','1',0,'Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1352,1,NULL,'2016-07-30 11:12:54','PCMN-BASE','IMMO','XXXXXX','2',0,'Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1353,1,NULL,'2016-07-30 11:12:54','PCMN-BASE','STOCK','XXXXXX','3',0,'Stock et commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1354,1,NULL,'2016-07-30 11:12:54','PCMN-BASE','TIERS','XXXXXX','4',0,'Créances et dettes à un an au plus',0,NULL,NULL,1,NULL,NULL),(1355,1,NULL,'2016-07-30 11:12:54','PCMN-BASE','FINAN','XXXXXX','5',0,'Placement de trésorerie et de valeurs disponibles',0,NULL,NULL,1,NULL,NULL),(1356,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','EXPENSE','XXXXXX','6',0,'Charges',0,NULL,NULL,1,NULL,NULL),(1357,1,NULL,'2018-01-19 11:17:49','PCMN-BASE','INCOME','XXXXXX','7',0,'Produits',0,NULL,NULL,1,NULL,NULL),(1401,1,NULL,'2016-07-30 11:12:54','PCG99-ABREGE','CAPIT','XXXXXX','1',0,'Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1402,1,NULL,'2016-07-30 11:12:54','PCG99-ABREGE','IMMO','XXXXXX','2',0,'Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1403,1,NULL,'2016-07-30 11:12:54','PCG99-ABREGE','STOCK','XXXXXX','3',0,'Stock et commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1404,1,NULL,'2016-07-30 11:12:54','PCG99-ABREGE','TIERS','XXXXXX','4',0,'Créances et dettes à un an au plus',0,NULL,NULL,1,NULL,NULL),(1405,1,NULL,'2016-07-30 11:12:54','PCG99-ABREGE','FINAN','XXXXXX','5',0,'Placement de trésorerie et de valeurs disponibles',0,NULL,NULL,1,NULL,NULL),(1406,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','EXPENSE','XXXXXX','6',0,'Charges',0,NULL,NULL,1,NULL,NULL),(1407,1,NULL,'2018-01-19 11:17:49','PCG99-ABREGE','INCOME','XXXXXX','7',0,'Produits',0,NULL,NULL,1,NULL,NULL),(1501,1,NULL,'2017-02-20 10:46:43','PCG99-BASE','CAPIT','XXXXXX','1',0,'Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1502,1,NULL,'2016-07-30 11:12:54','PCG99-BASE','IMMO','XXXXXX','2',0,'Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',0,NULL,NULL,1,NULL,NULL),(1503,1,NULL,'2016-07-30 11:12:54','PCG99-BASE','STOCK','XXXXXX','3',0,'Stock et commandes en cours d\'exécution',0,NULL,NULL,1,NULL,NULL),(1504,1,NULL,'2016-07-30 11:12:54','PCG99-BASE','TIERS','XXXXXX','4',0,'Créances et dettes à un an au plus',0,NULL,NULL,1,NULL,NULL),(1505,1,NULL,'2016-07-30 11:12:54','PCG99-BASE','FINAN','XXXXXX','5',0,'Placement de trésorerie et de valeurs disponibles',0,NULL,NULL,1,NULL,NULL),(1506,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','EXPENSE','XXXXXX','6',0,'Charges',0,NULL,NULL,1,NULL,NULL),(1507,1,NULL,'2018-01-19 11:17:49','PCG99-BASE','INCOME','XXXXXX','7',0,'Produits',0,NULL,NULL,1,NULL,NULL),(4001,1,NULL,'2016-07-30 11:12:54','PCG08-PYME','FINANCIACION','XXXXXX','1',0,'Financiación básica',0,NULL,NULL,1,NULL,NULL),(4002,1,NULL,'2016-07-30 11:12:54','PCG08-PYME','ACTIVO','XXXXXX','2',0,'Activo no corriente',0,NULL,NULL,1,NULL,NULL),(4003,1,NULL,'2016-07-30 11:12:54','PCG08-PYME','EXISTENCIAS','XXXXXX','3',0,'Existencias',0,NULL,NULL,1,NULL,NULL),(4004,1,NULL,'2016-07-30 11:12:54','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4',0,'Acreedores y deudores por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4005,1,NULL,'2016-07-30 11:12:54','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5',0,'Cuentas financieras',0,NULL,NULL,1,NULL,NULL),(4006,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6',0,'Compras y gastos',0,NULL,NULL,1,NULL,NULL),(4007,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7',0,'Ventas e ingresos',0,NULL,NULL,1,NULL,NULL),(4008,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','10',4001,'CAPITAL',0,NULL,NULL,1,NULL,NULL),(4009,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','100',4008,'Capital social',0,NULL,NULL,1,NULL,NULL),(4010,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','101',4008,'Fondo social',0,NULL,NULL,1,NULL,NULL),(4011,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','CAPITAL','102',4008,'Capital',0,NULL,NULL,1,NULL,NULL),(4012,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','103',4008,'Socios por desembolsos no exigidos',0,NULL,NULL,1,NULL,NULL),(4013,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1030',4012,'Socios por desembolsos no exigidos capital social',0,NULL,NULL,1,NULL,NULL),(4014,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1034',4012,'Socios por desembolsos no exigidos capital pendiente de inscripción',0,NULL,NULL,1,NULL,NULL),(4015,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','104',4008,'Socios por aportaciones no dineradas pendientes',0,NULL,NULL,1,NULL,NULL),(4016,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1040',4015,'Socios por aportaciones no dineradas pendientes capital social',0,NULL,NULL,1,NULL,NULL),(4017,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1044',4015,'Socios por aportaciones no dineradas pendientes capital pendiente de inscripción',0,NULL,NULL,1,NULL,NULL),(4018,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','108',4008,'Acciones o participaciones propias en situaciones especiales',0,NULL,NULL,1,NULL,NULL),(4019,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','109',4008,'Acciones o participaciones propias para reducción de capital',0,NULL,NULL,1,NULL,NULL),(4020,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','11',4001,'Reservas y otros instrumentos de patrimonio',0,NULL,NULL,1,NULL,NULL),(4021,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','110',4020,'Prima de emisión o asunción',0,NULL,NULL,1,NULL,NULL),(4022,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','111',4020,'Otros instrumentos de patrimonio neto',0,NULL,NULL,1,NULL,NULL),(4023,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1110',4022,'Patrimonio neto por emisión de instrumentos financieros compuestos',0,NULL,NULL,1,NULL,NULL),(4024,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1111',4022,'Resto de instrumentos de patrimoio neto',0,NULL,NULL,1,NULL,NULL),(4025,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','112',4020,'Reserva legal',0,NULL,NULL,1,NULL,NULL),(4026,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','113',4020,'Reservas voluntarias',0,NULL,NULL,1,NULL,NULL),(4027,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','114',4020,'Reservas especiales',0,NULL,NULL,1,NULL,NULL),(4028,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1140',4027,'Reservas para acciones o participaciones de la sociedad dominante',0,NULL,NULL,1,NULL,NULL),(4029,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1141',4027,'Reservas estatutarias',0,NULL,NULL,1,NULL,NULL),(4030,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1142',4027,'Reservas por capital amortizado',0,NULL,NULL,1,NULL,NULL),(4031,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1143',4027,'Reservas por fondo de comercio',0,NULL,NULL,1,NULL,NULL),(4032,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1144',4028,'Reservas por acciones propias aceptadas en garantía',0,NULL,NULL,1,NULL,NULL),(4033,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','115',4020,'Reservas por pérdidas y ganancias actuariales y otros ajustes',0,NULL,NULL,1,NULL,NULL),(4034,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','118',4020,'Aportaciones de socios o propietarios',0,NULL,NULL,1,NULL,NULL),(4035,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','119',4020,'Diferencias por ajuste del capital a euros',0,NULL,NULL,1,NULL,NULL),(4036,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','12',4001,'Resultados pendientes de aplicación',0,NULL,NULL,1,NULL,NULL),(4037,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','120',4036,'Remanente',0,NULL,NULL,1,NULL,NULL),(4038,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','121',4036,'Resultados negativos de ejercicios anteriores',0,NULL,NULL,1,NULL,NULL),(4039,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','129',4036,'Resultado del ejercicio',0,NULL,NULL,1,NULL,NULL),(4040,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','13',4001,'Subvenciones, donaciones y ajustes por cambio de valor',0,NULL,NULL,1,NULL,NULL),(4041,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','130',4040,'Subvenciones oficiales de capital',0,NULL,NULL,1,NULL,NULL),(4042,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','131',4040,'Donaciones y legados de capital',0,NULL,NULL,1,NULL,NULL),(4043,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','132',4040,'Otras subvenciones, donaciones y legados',0,NULL,NULL,1,NULL,NULL),(4044,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','133',4040,'Ajustes por valoración en activos financieros disponibles para la venta',0,NULL,NULL,1,NULL,NULL),(4045,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','134',4040,'Operaciones de cobertura',0,NULL,NULL,1,NULL,NULL),(4046,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1340',4045,'Cobertura de flujos de efectivo',0,NULL,NULL,1,NULL,NULL),(4047,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1341',4045,'Cobertura de una inversión neta en un negocio extranjero',0,NULL,NULL,1,NULL,NULL),(4048,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','135',4040,'Diferencias de conversión',0,NULL,NULL,1,NULL,NULL),(4049,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','136',4040,'Ajustes por valoración en activos no corrientes y grupos enajenables de elementos mantenidos para la venta',0,NULL,NULL,1,NULL,NULL),(4050,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','137',4040,'Ingresos fiscales a distribuir en varios ejercicios',0,NULL,NULL,1,NULL,NULL),(4051,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1370',4050,'Ingresos fiscales por diferencias permanentes a distribuir en varios ejercicios',0,NULL,NULL,1,NULL,NULL),(4052,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1371',4050,'Ingresos fiscales por deducciones y bonificaciones a distribuir en varios ejercicios',0,NULL,NULL,1,NULL,NULL),(4053,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','14',4001,'Provisiones',0,NULL,NULL,1,NULL,NULL),(4054,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','141',4053,'Provisión para impuestos',0,NULL,NULL,1,NULL,NULL),(4055,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','142',4053,'Provisión para otras responsabilidades',0,NULL,NULL,1,NULL,NULL),(4056,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','143',4053,'Provisión por desmantelamiento, retiro o rehabilitación del inmovilizado',0,NULL,NULL,1,NULL,NULL),(4057,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','145',4053,'Provisión para actuaciones medioambientales',0,NULL,NULL,1,NULL,NULL),(4058,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','15',4001,'Deudas a largo plazo con características especiales',0,NULL,NULL,1,NULL,NULL),(4059,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','150',4058,'Acciones o participaciones a largo plazo consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4060,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','153',4058,'Desembolsos no exigidos por acciones o participaciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4061,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1533',4060,'Desembolsos no exigidos empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4062,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1534',4060,'Desembolsos no exigidos empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4063,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1535',4060,'Desembolsos no exigidos otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4064,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1536',4060,'Otros desembolsos no exigidos',0,NULL,NULL,1,NULL,NULL),(4065,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','154',4058,'Aportaciones no dinerarias pendientes por acciones o participaciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4066,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1543',4065,'Aportaciones no dinerarias pendientes empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4067,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1544',4065,'Aportaciones no dinerarias pendientes empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4068,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1545',4065,'Aportaciones no dinerarias pendientes otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4069,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1546',4065,'Otras aportaciones no dinerarias pendientes',0,NULL,NULL,1,NULL,NULL),(4070,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','16',4001,'Deudas a largo plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4071,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','160',4070,'Deudas a largo plazo con entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4072,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1603',4071,'Deudas a largo plazo con entidades de crédito empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4073,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1604',4071,'Deudas a largo plazo con entidades de crédito empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4074,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1605',4071,'Deudas a largo plazo con otras entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4075,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','161',4070,'Proveedores de inmovilizado a largo plazo partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4076,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1613',4075,'Proveedores de inmovilizado a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4077,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1614',4075,'Proveedores de inmovilizado a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4078,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1615',4075,'Proveedores de inmovilizado a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4079,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','162',4070,'Acreedores por arrendamiento financiero a largo plazo partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4080,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1623',4079,'Acreedores por arrendamiento financiero a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4081,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1624',4080,'Acreedores por arrendamiento financiero a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4082,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1625',4080,'Acreedores por arrendamiento financiero a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4083,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','163',4070,'Otras deudas a largo plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4084,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1633',4083,'Otras deudas a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4085,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1634',4083,'Otras deudas a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4086,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','1635',4083,'Otras deudas a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4087,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','17',4001,'Deudas a largo plazo por préstamos recibidos empresitos y otros conceptos',0,NULL,NULL,1,NULL,NULL),(4088,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','170',4087,'Deudas a largo plazo con entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4089,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','171',4087,'Deudas a largo plazo',0,NULL,NULL,1,NULL,NULL),(4090,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','172',4087,'Deudas a largo plazo transformables en suvbenciones donaciones y legados',0,NULL,NULL,1,NULL,NULL),(4091,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','173',4087,'Proveedores de inmovilizado a largo plazo',0,NULL,NULL,1,NULL,NULL),(4092,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','174',4087,'Acreedores por arrendamiento financiero a largo plazo',0,NULL,NULL,1,NULL,NULL),(4093,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','175',4087,'Efectos a pagar a largo plazo',0,NULL,NULL,1,NULL,NULL),(4094,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','176',4087,'Pasivos por derivados financieros a largo plazo',0,NULL,NULL,1,NULL,NULL),(4095,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','177',4087,'Obligaciones y bonos',0,NULL,NULL,1,NULL,NULL),(4096,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','179',4087,'Deudas representadas en otros valores negociables',0,NULL,NULL,1,NULL,NULL),(4097,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','18',4001,'Pasivos por fianzas garantias y otros conceptos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4098,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','180',4097,'Fianzas recibidas a largo plazo',0,NULL,NULL,1,NULL,NULL),(4099,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','181',4097,'Anticipos recibidos por ventas o prestaciones de servicios a largo plazo',0,NULL,NULL,1,NULL,NULL),(4100,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','185',4097,'Depositos recibidos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4101,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','19',4001,'Situaciones transitorias de financiación',0,NULL,NULL,1,NULL,NULL),(4102,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','190',4101,'Acciones o participaciones emitidas',0,NULL,NULL,1,NULL,NULL),(4103,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','192',4101,'Suscriptores de acciones',0,NULL,NULL,1,NULL,NULL),(4104,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','194',4101,'Capital emitido pendiente de inscripción',0,NULL,NULL,1,NULL,NULL),(4105,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','195',4101,'Acciones o participaciones emitidas consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4106,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','197',4101,'Suscriptores de acciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4107,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','FINANCIACION','XXXXXX','199',4101,'Acciones o participaciones emitidas consideradas como pasivos financieros pendientes de inscripción',0,NULL,NULL,1,NULL,NULL),(4108,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','20',4002,'Inmovilizaciones intangibles',0,NULL,NULL,1,NULL,NULL),(4109,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','200',4108,'Investigación',0,NULL,NULL,1,NULL,NULL),(4110,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','201',4108,'Desarrollo',0,NULL,NULL,1,NULL,NULL),(4111,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','202',4108,'Concesiones administrativas',0,NULL,NULL,1,NULL,NULL),(4112,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','203',4108,'Propiedad industrial',0,NULL,NULL,1,NULL,NULL),(4113,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','205',4108,'Derechos de transpaso',0,NULL,NULL,1,NULL,NULL),(4114,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','206',4108,'Aplicaciones informáticas',0,NULL,NULL,1,NULL,NULL),(4115,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','209',4108,'Anticipos para inmovilizaciones intangibles',0,NULL,NULL,1,NULL,NULL),(4116,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','21',4002,'Inmovilizaciones materiales',0,NULL,NULL,1,NULL,NULL),(4117,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','210',4116,'Terrenos y bienes naturales',0,NULL,NULL,1,NULL,NULL),(4118,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','211',4116,'Construcciones',0,NULL,NULL,1,NULL,NULL),(4119,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','212',4116,'Instalaciones técnicas',0,NULL,NULL,1,NULL,NULL),(4120,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','213',4116,'Maquinaria',0,NULL,NULL,1,NULL,NULL),(4121,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','214',4116,'Utillaje',0,NULL,NULL,1,NULL,NULL),(4122,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','215',4116,'Otras instalaciones',0,NULL,NULL,1,NULL,NULL),(4123,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','216',4116,'Mobiliario',0,NULL,NULL,1,NULL,NULL),(4124,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','217',4116,'Equipos para procesos de información',0,NULL,NULL,1,NULL,NULL),(4125,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','218',4116,'Elementos de transporte',0,NULL,NULL,1,NULL,NULL),(4126,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','219',4116,'Otro inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4127,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','22',4002,'Inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4128,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','220',4127,'Inversiones en terreons y bienes naturales',0,NULL,NULL,1,NULL,NULL),(4129,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','221',4127,'Inversiones en construcciones',0,NULL,NULL,1,NULL,NULL),(4130,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','23',4002,'Inmovilizaciones materiales en curso',0,NULL,NULL,1,NULL,NULL),(4131,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','230',4130,'Adaptación de terrenos y bienes naturales',0,NULL,NULL,1,NULL,NULL),(4132,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','231',4130,'Construcciones en curso',0,NULL,NULL,1,NULL,NULL),(4133,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','232',4130,'Instalaciones técnicas en montaje',0,NULL,NULL,1,NULL,NULL),(4134,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','233',4130,'Maquinaria en montaje',0,NULL,NULL,1,NULL,NULL),(4135,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','237',4130,'Equipos para procesos de información en montaje',0,NULL,NULL,1,NULL,NULL),(4136,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','239',4130,'Anticipos para inmovilizaciones materiales',0,NULL,NULL,1,NULL,NULL),(4137,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','24',4002,'Inversiones financieras a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4138,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','240',4137,'Participaciones a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4139,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2403',4138,'Participaciones a largo plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4140,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2404',4138,'Participaciones a largo plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4141,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2405',4138,'Participaciones a largo plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4142,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','241',4137,'Valores representativos de deuda a largo plazo de partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4143,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2413',4142,'Valores representativos de deuda a largo plazo de empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4144,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2414',4142,'Valores representativos de deuda a largo plazo de empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4145,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2415',4142,'Valores representativos de deuda a largo plazo de otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4146,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','242',4137,'Créditos a largo plazo a partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4147,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2423',4146,'Créditos a largo plazo a empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4148,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2424',4146,'Créditos a largo plazo a empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4149,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2425',4146,'Créditos a largo plazo a otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4150,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','249',4137,'Desembolsos pendientes sobre participaciones a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4151,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2493',4150,'Desembolsos pendientes sobre participaciones a largo plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4152,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2494',4150,'Desembolsos pendientes sobre participaciones a largo plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4153,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2495',4150,'Desembolsos pendientes sobre participaciones a largo plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4154,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','25',4002,'Otras inversiones financieras a largo plazo',0,NULL,NULL,1,NULL,NULL),(4155,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','250',4154,'Inversiones financieras a largo plazo en instrumentos de patrimonio',0,NULL,NULL,1,NULL,NULL),(4156,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','251',4154,'Valores representativos de deuda a largo plazo',0,NULL,NULL,1,NULL,NULL),(4157,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','252',4154,'Créditos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4158,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','253',4154,'Créditos a largo plazo por enajenación de inmovilizado',0,NULL,NULL,1,NULL,NULL),(4159,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','254',4154,'Créditos a largo plazo al personal',0,NULL,NULL,1,NULL,NULL),(4160,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','255',4154,'Activos por derivados financieros a largo plazo',0,NULL,NULL,1,NULL,NULL),(4161,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','258',4154,'Imposiciones a largo plazo',0,NULL,NULL,1,NULL,NULL),(4162,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','259',4154,'Desembolsos pendientes sobre participaciones en el patrimonio neto a largo plazo',0,NULL,NULL,1,NULL,NULL),(4163,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','26',4002,'Fianzas y depósitos constituidos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4164,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','260',4163,'Fianzas constituidas a largo plazo',0,NULL,NULL,1,NULL,NULL),(4165,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','261',4163,'Depósitos constituidos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4166,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','28',4002,'Amortización acumulada del inmovilizado',0,NULL,NULL,1,NULL,NULL),(4167,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','280',4166,'Amortización acumulado del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4168,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2800',4167,'Amortización acumulada de investigación',0,NULL,NULL,1,NULL,NULL),(4169,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2801',4167,'Amortización acumulada de desarrollo',0,NULL,NULL,1,NULL,NULL),(4170,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2802',4167,'Amortización acumulada de concesiones administrativas',0,NULL,NULL,1,NULL,NULL),(4171,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2803',4167,'Amortización acumulada de propiedad industrial',0,NULL,NULL,1,NULL,NULL),(4172,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2805',4167,'Amortización acumulada de derechos de transpaso',0,NULL,NULL,1,NULL,NULL),(4173,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2806',4167,'Amortización acumulada de aplicaciones informáticas',0,NULL,NULL,1,NULL,NULL),(4174,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','281',4166,'Amortización acumulado del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4175,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2811',4174,'Amortización acumulada de construcciones',0,NULL,NULL,1,NULL,NULL),(4176,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2812',4174,'Amortización acumulada de instalaciones técnicas',0,NULL,NULL,1,NULL,NULL),(4177,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2813',4174,'Amortización acumulada de maquinaria',0,NULL,NULL,1,NULL,NULL),(4178,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2814',4174,'Amortización acumulada de utillaje',0,NULL,NULL,1,NULL,NULL),(4179,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2815',4174,'Amortización acumulada de otras instalaciones',0,NULL,NULL,1,NULL,NULL),(4180,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2816',4174,'Amortización acumulada de mobiliario',0,NULL,NULL,1,NULL,NULL),(4181,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2817',4174,'Amortización acumulada de equipos para proceso de información',0,NULL,NULL,1,NULL,NULL),(4182,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2818',4174,'Amortización acumulada de elementos de transporte',0,NULL,NULL,1,NULL,NULL),(4183,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2819',4175,'Amortización acumulada de otro inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4184,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','282',4166,'Amortización acumulada de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4185,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','29',4002,'Deterioro de valor de activos no corrientes',0,NULL,NULL,1,NULL,NULL),(4186,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','290',4185,'Deterioro de valor del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4187,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2900',4186,'Deterioro de valor de investigación',0,NULL,NULL,1,NULL,NULL),(4188,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2901',4186,'Deterioro de valor de desarrollo',0,NULL,NULL,1,NULL,NULL),(4189,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2902',4186,'Deterioro de valor de concesiones administrativas',0,NULL,NULL,1,NULL,NULL),(4190,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2903',4186,'Deterioro de valor de propiedad industrial',0,NULL,NULL,1,NULL,NULL),(4191,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2905',4186,'Deterioro de valor de derechos de transpaso',0,NULL,NULL,1,NULL,NULL),(4192,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2906',4186,'Deterioro de valor de aplicaciones informáticas',0,NULL,NULL,1,NULL,NULL),(4193,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','291',4185,'Deterioro de valor del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4194,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2910',4193,'Deterioro de valor de terrenos y bienes naturales',0,NULL,NULL,1,NULL,NULL),(4195,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2911',4193,'Deterioro de valor de construcciones',0,NULL,NULL,1,NULL,NULL),(4196,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2912',4193,'Deterioro de valor de instalaciones técnicas',0,NULL,NULL,1,NULL,NULL),(4197,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2913',4193,'Deterioro de valor de maquinaria',0,NULL,NULL,1,NULL,NULL),(4198,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2914',4193,'Deterioro de valor de utillajes',0,NULL,NULL,1,NULL,NULL),(4199,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2915',4194,'Deterioro de valor de otras instalaciones',0,NULL,NULL,1,NULL,NULL),(4200,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2916',4194,'Deterioro de valor de mobiliario',0,NULL,NULL,1,NULL,NULL),(4201,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2917',4194,'Deterioro de valor de equipos para proceso de información',0,NULL,NULL,1,NULL,NULL),(4202,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2918',4194,'Deterioro de valor de elementos de transporte',0,NULL,NULL,1,NULL,NULL),(4203,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2919',4194,'Deterioro de valor de otro inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4204,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','292',4185,'Deterioro de valor de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4205,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2920',4204,'Deterioro de valor de terrenos y bienes naturales',0,NULL,NULL,1,NULL,NULL),(4206,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2921',4204,'Deterioro de valor de construcciones',0,NULL,NULL,1,NULL,NULL),(4207,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','293',4185,'Deterioro de valor de participaciones a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4208,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2933',4207,'Deterioro de valor de participaciones a largo plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4209,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2934',4207,'Deterioro de valor de sobre participaciones a largo plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4210,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2935',4207,'Deterioro de valor de sobre participaciones a largo plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4211,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','294',4185,'Deterioro de valor de valores representativos de deuda a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4212,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2943',4211,'Deterioro de valor de valores representativos de deuda a largo plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4213,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2944',4211,'Deterioro de valor de valores representativos de deuda a largo plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4214,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2945',4211,'Deterioro de valor de valores representativos de deuda a largo plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4215,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','295',4185,'Deterioro de valor de créditos a largo plazo a partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4216,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2953',4215,'Deterioro de valor de créditos a largo plazo a empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4217,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2954',4215,'Deterioro de valor de créditos a largo plazo a empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4218,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','2955',4215,'Deterioro de valor de créditos a largo plazo a otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4219,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','296',4185,'Deterioro de valor de participaciones en el patrimonio netoa largo plazo',0,NULL,NULL,1,NULL,NULL),(4220,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','297',4185,'Deterioro de valor de valores representativos de deuda a largo plazo',0,NULL,NULL,1,NULL,NULL),(4221,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACTIVO','XXXXXX','298',4185,'Deterioro de valor de créditos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4222,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','30',4003,'Comerciales',0,NULL,NULL,1,NULL,NULL),(4223,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','300',4222,'Mercaderías A',0,NULL,NULL,1,NULL,NULL),(4224,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','301',4222,'Mercaderías B',0,NULL,NULL,1,NULL,NULL),(4225,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','31',4003,'Materias primas',0,NULL,NULL,1,NULL,NULL),(4226,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','310',4225,'Materias primas A',0,NULL,NULL,1,NULL,NULL),(4227,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','311',4225,'Materias primas B',0,NULL,NULL,1,NULL,NULL),(4228,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','32',4003,'Otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4229,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','320',4228,'Elementos y conjuntos incorporables',0,NULL,NULL,1,NULL,NULL),(4230,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','321',4228,'Combustibles',0,NULL,NULL,1,NULL,NULL),(4231,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','322',4228,'Repuestos',0,NULL,NULL,1,NULL,NULL),(4232,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','325',4228,'Materiales diversos',0,NULL,NULL,1,NULL,NULL),(4233,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','326',4228,'Embalajes',0,NULL,NULL,1,NULL,NULL),(4234,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','327',4228,'Envases',0,NULL,NULL,1,NULL,NULL),(4235,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','328',4229,'Material de oficina',0,NULL,NULL,1,NULL,NULL),(4236,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','33',4003,'Productos en curso',0,NULL,NULL,1,NULL,NULL),(4237,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','330',4236,'Productos en curos A',0,NULL,NULL,1,NULL,NULL),(4238,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','331',4236,'Productos en curso B',0,NULL,NULL,1,NULL,NULL),(4239,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','34',4003,'Productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4240,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','340',4239,'Productos semiterminados A',0,NULL,NULL,1,NULL,NULL),(4241,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','341',4239,'Productos semiterminados B',0,NULL,NULL,1,NULL,NULL),(4242,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','35',4003,'Productos terminados',0,NULL,NULL,1,NULL,NULL),(4243,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','350',4242,'Productos terminados A',0,NULL,NULL,1,NULL,NULL),(4244,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','351',4242,'Productos terminados B',0,NULL,NULL,1,NULL,NULL),(4245,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','36',4003,'Subproductos, residuos y materiales recuperados',0,NULL,NULL,1,NULL,NULL),(4246,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','360',4245,'Subproductos A',0,NULL,NULL,1,NULL,NULL),(4247,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','361',4245,'Subproductos B',0,NULL,NULL,1,NULL,NULL),(4248,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','365',4245,'Residuos A',0,NULL,NULL,1,NULL,NULL),(4249,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','366',4245,'Residuos B',0,NULL,NULL,1,NULL,NULL),(4250,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','368',4245,'Materiales recuperados A',0,NULL,NULL,1,NULL,NULL),(4251,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','369',4245,'Materiales recuperados B',0,NULL,NULL,1,NULL,NULL),(4252,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','39',4003,'Deterioro de valor de las existencias',0,NULL,NULL,1,NULL,NULL),(4253,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','390',4252,'Deterioro de valor de las mercaderías',0,NULL,NULL,1,NULL,NULL),(4254,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','391',4252,'Deterioro de valor de las materias primas',0,NULL,NULL,1,NULL,NULL),(4255,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','392',4252,'Deterioro de valor de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4256,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','393',4252,'Deterioro de valor de los productos en curso',0,NULL,NULL,1,NULL,NULL),(4257,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','394',4252,'Deterioro de valor de los productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4258,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','395',4252,'Deterioro de valor de los productos terminados',0,NULL,NULL,1,NULL,NULL),(4259,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','EXISTENCIAS','XXXXXX','396',4252,'Deterioro de valor de los subproductos, residuos y materiales recuperados',0,NULL,NULL,1,NULL,NULL),(4260,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','PROVEEDORES','40',4004,'Proveedores',0,NULL,NULL,1,NULL,NULL),(4261,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','PROVEEDORES','400',4260,'Proveedores',0,NULL,NULL,1,NULL,NULL),(4262,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4000',4261,'Proveedores euros',0,NULL,NULL,1,NULL,NULL),(4263,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4004',4261,'Proveedores moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4264,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4009',4261,'Proveedores facturas pendientes de recibir o formalizar',0,NULL,NULL,1,NULL,NULL),(4265,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','401',4260,'Proveedores efectos comerciales a pagar',0,NULL,NULL,1,NULL,NULL),(4266,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','403',4260,'Proveedores empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4267,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4030',4266,'Proveedores empresas del grupo euros',0,NULL,NULL,1,NULL,NULL),(4268,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4031',4266,'Efectos comerciales a pagar empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4269,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4034',4266,'Proveedores empresas del grupo moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4270,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4036',4266,'Envases y embalajes a devolver a proveedores empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4271,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4039',4266,'Proveedores empresas del grupo facturas pendientes de recibir o de formalizar',0,NULL,NULL,1,NULL,NULL),(4272,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','404',4260,'Proveedores empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4273,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','405',4260,'Proveedores otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4274,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','406',4260,'Envases y embalajes a devolver a proveedores',0,NULL,NULL,1,NULL,NULL),(4275,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','407',4260,'Anticipos a proveedores',0,NULL,NULL,1,NULL,NULL),(4276,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','41',4004,'Acreedores varios',0,NULL,NULL,1,NULL,NULL),(4277,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','410',4276,'Acreedores por prestaciones de servicios',0,NULL,NULL,1,NULL,NULL),(4278,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4100',4277,'Acreedores por prestaciones de servicios euros',0,NULL,NULL,1,NULL,NULL),(4279,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4104',4277,'Acreedores por prestaciones de servicios moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4280,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4109',4277,'Acreedores por prestaciones de servicios facturas pendientes de recibir o formalizar',0,NULL,NULL,1,NULL,NULL),(4281,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','411',4276,'Acreedores efectos comerciales a pagar',0,NULL,NULL,1,NULL,NULL),(4282,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','419',4276,'Acreedores por operaciones en común',0,NULL,NULL,1,NULL,NULL),(4283,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','CLIENTES','43',4004,'Clientes',0,NULL,NULL,1,NULL,NULL),(4284,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','CLIENTES','430',4283,'Clientes',0,NULL,NULL,1,NULL,NULL),(4285,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4300',4284,'Clientes euros',0,NULL,NULL,1,NULL,NULL),(4286,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4304',4284,'Clientes moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4287,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4309',4284,'Clientes facturas pendientes de formalizar',0,NULL,NULL,1,NULL,NULL),(4288,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','431',4283,'Clientes efectos comerciales a cobrar',0,NULL,NULL,1,NULL,NULL),(4289,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4310',4288,'Efectos comerciales en cartera',0,NULL,NULL,1,NULL,NULL),(4290,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4311',4288,'Efectos comerciales descontados',0,NULL,NULL,1,NULL,NULL),(4291,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4312',4288,'Efectos comerciales en gestión de cobro',0,NULL,NULL,1,NULL,NULL),(4292,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4315',4288,'Efectos comerciales impagados',0,NULL,NULL,1,NULL,NULL),(4293,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','432',4283,'Clientes operaciones de factoring',0,NULL,NULL,1,NULL,NULL),(4294,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','433',4283,'Clientes empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4295,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4330',4294,'Clientes empresas del grupo euros',0,NULL,NULL,1,NULL,NULL),(4296,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4331',4294,'Efectos comerciales a cobrar empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4297,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4332',4294,'Clientes empresas del grupo operaciones de factoring',0,NULL,NULL,1,NULL,NULL),(4298,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4334',4294,'Clientes empresas del grupo moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4299,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4336',4294,'Clientes empresas del grupo dudoso cobro',0,NULL,NULL,1,NULL,NULL),(4300,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4337',4294,'Envases y embalajes a devolver a clientes empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4301,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4339',4294,'Clientes empresas del grupo facturas pendientes de formalizar',0,NULL,NULL,1,NULL,NULL),(4302,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','434',4283,'Clientes empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4303,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','435',4283,'Clientes otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4304,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','436',4283,'Clientes de dudoso cobro',0,NULL,NULL,1,NULL,NULL),(4305,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','437',4283,'Envases y embalajes a devolver por clientes',0,NULL,NULL,1,NULL,NULL),(4306,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','438',4283,'Anticipos de clientes',0,NULL,NULL,1,NULL,NULL),(4307,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','44',4004,'Deudores varios',0,NULL,NULL,1,NULL,NULL),(4308,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','440',4307,'Deudores',0,NULL,NULL,1,NULL,NULL),(4309,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4400',4308,'Deudores euros',0,NULL,NULL,1,NULL,NULL),(4310,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4404',4308,'Deudores moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4311,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4409',4308,'Deudores facturas pendientes de formalizar',0,NULL,NULL,1,NULL,NULL),(4312,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','441',4307,'Deudores efectos comerciales a cobrar',0,NULL,NULL,1,NULL,NULL),(4313,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4410',4312,'Deudores efectos comerciales en cartera',0,NULL,NULL,1,NULL,NULL),(4314,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4411',4312,'Deudores efectos comerciales descontados',0,NULL,NULL,1,NULL,NULL),(4315,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4412',4312,'Deudores efectos comerciales en gestión de cobro',0,NULL,NULL,1,NULL,NULL),(4316,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4415',4312,'Deudores efectos comerciales impagados',0,NULL,NULL,1,NULL,NULL),(4317,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','446',4307,'Deudores de dusoso cobro',0,NULL,NULL,1,NULL,NULL),(4318,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','449',4307,'Deudores por operaciones en común',0,NULL,NULL,1,NULL,NULL),(4319,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','46',4004,'Personal',0,NULL,NULL,1,NULL,NULL),(4320,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','460',4319,'Anticipos de renumeraciones',0,NULL,NULL,1,NULL,NULL),(4321,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','465',4319,'Renumeraciones pendientes de pago',0,NULL,NULL,1,NULL,NULL),(4322,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','47',4004,'Administraciones Públicas',0,NULL,NULL,1,NULL,NULL),(4323,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','470',4322,'Hacienda Pública deudora por diversos conceptos',0,NULL,NULL,1,NULL,NULL),(4324,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4700',4323,'Hacienda Pública deudora por IVA',0,NULL,NULL,1,NULL,NULL),(4325,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4708',4323,'Hacienda Pública deudora por subvenciones concedidas',0,NULL,NULL,1,NULL,NULL),(4326,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4709',4323,'Hacienda Pública deudora por devolución de impuestos',0,NULL,NULL,1,NULL,NULL),(4327,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','471',4322,'Organismos de la Seguridad Social deudores',0,NULL,NULL,1,NULL,NULL),(4328,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','472',4322,'Hacienda Pública IVA soportado',0,NULL,NULL,1,NULL,NULL),(4329,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','473',4322,'Hacienda Pública retenciones y pagos a cuenta',0,NULL,NULL,1,NULL,NULL),(4330,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','474',4322,'Activos por impuesto diferido',0,NULL,NULL,1,NULL,NULL),(4331,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4740',4330,'Activos por diferencias temporarias deducibles',0,NULL,NULL,1,NULL,NULL),(4332,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4742',4330,'Derechos por deducciones y bonificaciones pendientes de aplicar',0,NULL,NULL,1,NULL,NULL),(4333,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4745',4330,'Crédito por pérdidasa compensar del ejercicio',0,NULL,NULL,1,NULL,NULL),(4334,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','475',4322,'Hacienda Pública acreedora por conceptos fiscales',0,NULL,NULL,1,NULL,NULL),(4335,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4750',4334,'Hacienda Pública acreedora por IVA',0,NULL,NULL,1,NULL,NULL),(4336,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4751',4334,'Hacienda Pública acreedora por retenciones practicadas',0,NULL,NULL,1,NULL,NULL),(4337,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4752',4334,'Hacienda Pública acreedora por impuesto sobre sociedades',0,NULL,NULL,1,NULL,NULL),(4338,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4758',4334,'Hacienda Pública acreedora por subvenciones a integrar',0,NULL,NULL,1,NULL,NULL),(4339,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','476',4322,'Organismos de la Seguridad Social acreedores',0,NULL,NULL,1,NULL,NULL),(4340,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','477',4322,'Hacienda Pública IVA repercutido',0,NULL,NULL,1,NULL,NULL),(4341,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','479',4322,'Pasivos por diferencias temporarias imponibles',0,NULL,NULL,1,NULL,NULL),(4342,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','48',4004,'Ajustes por periodificación',0,NULL,NULL,1,NULL,NULL),(4343,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','480',4342,'Gastos anticipados',0,NULL,NULL,1,NULL,NULL),(4344,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','485',4342,'Ingresos anticipados',0,NULL,NULL,1,NULL,NULL),(4345,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','49',4004,'Deterioro de valor de créditos comerciales y provisiones a corto plazo',0,NULL,NULL,1,NULL,NULL),(4346,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','490',4345,'Deterioro de valor de créditos por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4347,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','493',4345,'Deterioro de valor de créditos por operaciones comerciales con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4348,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4933',4347,'Deterioro de valor de créditos por operaciones comerciales con empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4349,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4934',4347,'Deterioro de valor de créditos por operaciones comerciales con empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4350,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4935',4347,'Deterioro de valor de créditos por operaciones comerciales con otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4351,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','499',4345,'Provisiones por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4352,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4994',4351,'Provisión para contratos anerosos',0,NULL,NULL,1,NULL,NULL),(4353,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4999',4351,'Provisión para otras operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4354,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','50',4005,'Emprésitos deudas con características especiales y otras emisiones análogas a corto plazo',0,NULL,NULL,1,NULL,NULL),(4355,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','500',4354,'Obligaciones y bonos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4356,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','502',4354,'Acciones o participaciones a corto plazo consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4357,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','505',4354,'Deudas representadas en otros valores negociables a corto plazo',0,NULL,NULL,1,NULL,NULL),(4358,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','506',4354,'Intereses a corto plazo de emprésitos y otras emisiones analógicas',0,NULL,NULL,1,NULL,NULL),(4359,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','507',4354,'Dividendos de acciones o participaciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4360,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','509',4354,'Valores negociables amortizados',0,NULL,NULL,1,NULL,NULL),(4361,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5090',4360,'Obligaciones y bonos amortizados',0,NULL,NULL,1,NULL,NULL),(4362,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5095',4360,'Otros valores negociables amortizados',0,NULL,NULL,1,NULL,NULL),(4363,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','51',4005,'Deudas a corto plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4364,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','510',4363,'Deudas a corto plazo con entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4365,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5103',4364,'Deudas a corto plazo con entidades de crédito empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4366,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5104',4364,'Deudas a corto plazo con entidades de crédito empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4367,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5105',4364,'Deudas a corto plazo con otras entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4368,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','511',4363,'Proveedores de inmovilizado a corto plazo partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4369,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5113',4368,'Proveedores de inmovilizado a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4370,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5114',4368,'Proveedores de inmovilizado a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4371,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5115',4368,'Proveedores de inmovilizado a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4372,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','512',4363,'Acreedores por arrendamiento financiero a corto plazo partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4373,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5123',4372,'Acreedores por arrendamiento financiero a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4374,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5124',4372,'Acreedores por arrendamiento financiero a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4375,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5125',4372,'Acreedores por arrendamiento financiero a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4376,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','513',4363,'Otras deudas a corto plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4377,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5133',4376,'Otras deudas a corto plazo con empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4378,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5134',4376,'Otras deudas a corto plazo con empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4379,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5135',4376,'Otras deudas a corto plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4380,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','514',4363,'Intereses a corto plazo con partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4381,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5143',4380,'Intereses a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4382,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5144',4380,'Intereses a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4383,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5145',4380,'Intereses deudas a corto plazo partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4384,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','52',4005,'Deudas a corto plazo por préstamos recibidos y otros conceptos',0,NULL,NULL,1,NULL,NULL),(4385,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','520',4384,'Deudas a corto plazo con entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4386,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5200',4385,'Préstamos a corto plazo de entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4387,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5201',4385,'Deudas a corto plazo por crédito dispuesto',0,NULL,NULL,1,NULL,NULL),(4388,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5208',4385,'Deudas por efectos descontados',0,NULL,NULL,1,NULL,NULL),(4389,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5209',4385,'Deudas por operaciones de factoring',0,NULL,NULL,1,NULL,NULL),(4390,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','521',4384,'Deudas a corto plazo',0,NULL,NULL,1,NULL,NULL),(4391,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','522',4384,'Deudas a corto plazo transformables en subvenciones donaciones y legados',0,NULL,NULL,1,NULL,NULL),(4392,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','523',4384,'Proveedores de inmovilizado a corto plazo',0,NULL,NULL,1,NULL,NULL),(4393,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','526',4384,'Dividendo activo a pagar',0,NULL,NULL,1,NULL,NULL),(4394,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','527',4384,'Intereses a corto plazo de deudas con entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4395,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','528',4384,'Intereses a corto plazo de deudas',0,NULL,NULL,1,NULL,NULL),(4396,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','529',4384,'Provisiones a corto plazo',0,NULL,NULL,1,NULL,NULL),(4397,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5291',4396,'Provisión a corto plazo para impuestos',0,NULL,NULL,1,NULL,NULL),(4398,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5292',4396,'Provisión a corto plazo para otras responsabilidades',0,NULL,NULL,1,NULL,NULL),(4399,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5293',4396,'Provisión a corto plazo por desmantelamiento retiro o rehabilitación del inmovilizado',0,NULL,NULL,1,NULL,NULL),(4400,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5295',4396,'Provisión a corto plazo para actuaciones medioambientales',0,NULL,NULL,1,NULL,NULL),(4401,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','53',4005,'Inversiones financieras a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4402,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','530',4401,'Participaciones a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4403,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5303',4402,'Participaciones a corto plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4404,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5304',4402,'Participaciones a corto plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4405,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5305',4402,'Participaciones a corto plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4406,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','531',4401,'Valores representativos de deuda a corto plazo de partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4407,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5313',4406,'Valores representativos de deuda a corto plazo de empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4408,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5314',4406,'Valores representativos de deuda a corto plazo de empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4409,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5315',4406,'Valores representativos de deuda a corto plazo de otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4410,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','532',4401,'Créditos a corto plazo a partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4411,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5323',4410,'Créditos a corto plazo a empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4412,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5324',4410,'Créditos a corto plazo a empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4413,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5325',4410,'Créditos a corto plazo a otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4414,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','533',4401,'Intereses a corto plazo de valores representativos de deuda de partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4415,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5333',4414,'Intereses a corto plazo de valores representativos de deuda en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4416,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5334',4414,'Intereses a corto plazo de valores representativos de deuda en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4417,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5335',4414,'Intereses a corto plazo de valores representativos de deuda en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4418,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','534',4401,'Intereses a corto plazo de créditos a partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4419,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5343',4418,'Intereses a corto plazo de créditos a empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4420,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5344',4418,'Intereses a corto plazo de créditos a empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4421,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5345',4418,'Intereses a corto plazo de créditos a otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4422,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','535',4401,'Dividendo a cobrar de inversiones financieras en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4423,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5353',4422,'Dividendo a cobrar de empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4424,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5354',4422,'Dividendo a cobrar de empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4425,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5355',4422,'Dividendo a cobrar de otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4426,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','539',4401,'Desembolsos pendientes sobre participaciones a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4427,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5393',4426,'Desembolsos pendientes sobre participaciones a corto plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4428,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5394',4426,'Desembolsos pendientes sobre participaciones a corto plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4429,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5395',4426,'Desembolsos pendientes sobre participaciones a corto plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4430,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','54',4005,'Otras inversiones financieras a corto plazo',0,NULL,NULL,1,NULL,NULL),(4431,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','540',4430,'Inversiones financieras a corto plazo en instrumentos de patrimonio',0,NULL,NULL,1,NULL,NULL),(4432,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','541',4430,'Valores representativos de deuda a corto plazo',0,NULL,NULL,1,NULL,NULL),(4433,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','542',4430,'Créditos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4434,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','543',4430,'Créditos a corto plazo por enejenación de inmovilizado',0,NULL,NULL,1,NULL,NULL),(4435,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','544',4430,'Créditos a corto plazo al personal',0,NULL,NULL,1,NULL,NULL),(4436,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','545',4430,'Dividendo a cobrar',0,NULL,NULL,1,NULL,NULL),(4437,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','546',4430,'Intereses a corto plazo de valores reprsentativos de deuda',0,NULL,NULL,1,NULL,NULL),(4438,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','547',4430,'Intereses a corto plazo de créditos',0,NULL,NULL,1,NULL,NULL),(4439,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','548',4430,'Imposiciones a corto plazo',0,NULL,NULL,1,NULL,NULL),(4440,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','549',4430,'Desembolsos pendientes sobre participaciones en el patrimonio neto a corto plazo',0,NULL,NULL,1,NULL,NULL),(4441,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','55',4005,'Otras cuentas no bancarias',0,NULL,NULL,1,NULL,NULL),(4442,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','550',4441,'Titular de la explotación',0,NULL,NULL,1,NULL,NULL),(4443,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','551',4441,'Cuenta corriente con socios y administradores',0,NULL,NULL,1,NULL,NULL),(4444,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','552',4441,'Cuenta corriente otras personas y entidades vinculadas',0,NULL,NULL,1,NULL,NULL),(4445,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5523',4444,'Cuenta corriente con empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4446,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5524',4444,'Cuenta corriente con empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4447,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5525',4444,'Cuenta corriente con otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4448,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','554',4441,'Cuenta corriente con uniones temporales de empresas y comunidades de bienes',0,NULL,NULL,1,NULL,NULL),(4449,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','555',4441,'Partidas pendientes de aplicación',0,NULL,NULL,1,NULL,NULL),(4450,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','556',4441,'Desembolsos exigidos sobre participaciones en el patrimonio neto',0,NULL,NULL,1,NULL,NULL),(4451,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5563',4450,'Desembolsos exigidos sobre participaciones empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4452,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5564',4450,'Desembolsos exigidos sobre participaciones empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4453,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5565',4450,'Desembolsos exigidos sobre participaciones otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4454,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5566',4450,'Desembolsos exigidos sobre participaciones otras empresas',0,NULL,NULL,1,NULL,NULL),(4455,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','557',4441,'Dividendo activo a cuenta',0,NULL,NULL,1,NULL,NULL),(4456,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','558',4441,'Socios por desembolsos exigidos',0,NULL,NULL,1,NULL,NULL),(4457,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5580',4456,'Socios por desembolsos exigidos sobre acciones o participaciones ordinarias',0,NULL,NULL,1,NULL,NULL),(4458,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5585',4456,'Socios por desembolsos exigidos sobre acciones o participaciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4459,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','559',4441,'Derivados financieros a corto plazo',0,NULL,NULL,1,NULL,NULL),(4460,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5590',4459,'Activos por derivados financieros a corto plazo',0,NULL,NULL,1,NULL,NULL),(4461,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5595',4459,'Pasivos por derivados financieros a corto plazo',0,NULL,NULL,1,NULL,NULL),(4462,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','56',4005,'Finanzas y depósitos recibidos y constituidos a corto plazo y ajustes por periodificación',0,NULL,NULL,1,NULL,NULL),(4463,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','560',4462,'Finanzas recibidas a corto plazo',0,NULL,NULL,1,NULL,NULL),(4464,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','561',4462,'Depósitos recibidos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4465,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','565',4462,'Finanzas constituidas a corto plazo',0,NULL,NULL,1,NULL,NULL),(4466,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','566',4462,'Depósitos constituidos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4467,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','567',4462,'Intereses pagados por anticipado',0,NULL,NULL,1,NULL,NULL),(4468,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','568',4462,'Intereses cobrados a corto plazo',0,NULL,NULL,1,NULL,NULL),(4469,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','57',4005,'Tesorería',0,NULL,NULL,1,NULL,NULL),(4470,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','CAJA','570',4469,'Caja euros',0,NULL,NULL,1,NULL,NULL),(4471,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','571',4469,'Caja moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4472,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','BANCOS','572',4469,'Bancos e instituciones de crédito cc vista euros',0,NULL,NULL,1,NULL,NULL),(4473,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','573',4469,'Bancos e instituciones de crédito cc vista moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4474,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','574',4469,'Bancos e instituciones de crédito cuentas de ahorro euros',0,NULL,NULL,1,NULL,NULL),(4475,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','575',4469,'Bancos e instituciones de crédito cuentas de ahorro moneda extranjera',0,NULL,NULL,1,NULL,NULL),(4476,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','576',4469,'Inversiones a corto plazo de gran liquidez',0,NULL,NULL,1,NULL,NULL),(4477,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','59',4005,'Deterioro del valor de las inversiones financieras a corto plazo',0,NULL,NULL,1,NULL,NULL),(4478,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','593',4477,'Deterioro del valor de participaciones a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4479,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5933',4478,'Deterioro del valor de participaciones a corto plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4480,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5934',4478,'Deterioro del valor de participaciones a corto plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4481,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5935',4478,'Deterioro del valor de participaciones a corto plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4482,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','594',4477,'Deterioro del valor de valores representativos de deuda a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4483,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5943',4482,'Deterioro del valor de valores representativos de deuda a corto plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4484,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5944',4482,'Deterioro del valor de valores representativos de deuda a corto plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4485,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5945',4482,'Deterioro del valor de valores representativos de deuda a corto plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4486,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','595',4477,'Deterioro del valor de créditos a corto plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4487,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5953',4486,'Deterioro del valor de créditos a corto plazo en empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4488,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5954',4486,'Deterioro del valor de créditos a corto plazo en empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4489,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5955',4486,'Deterioro del valor de créditos a corto plazo en otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4490,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','596',4477,'Deterioro del valor de participaciones a corto plazo',0,NULL,NULL,1,NULL,NULL),(4491,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','597',4477,'Deterioro del valor de valores representativos de deuda a corto plazo',0,NULL,NULL,1,NULL,NULL),(4492,1,NULL,'2016-01-22 17:28:16','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','598',4477,'Deterioro de valor de créditos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4493,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','60',4006,'Compras',0,NULL,NULL,1,NULL,NULL),(4494,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','COMPRAS','600',4493,'Compras de mercaderías',0,NULL,NULL,1,NULL,NULL),(4495,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','COMPRAS','601',4493,'Compras de materias primas',0,NULL,NULL,1,NULL,NULL),(4496,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','602',4493,'Compras de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4497,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','606',4493,'Descuentos sobre compras por pronto pago',0,NULL,NULL,1,NULL,NULL),(4498,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6060',4497,'Descuentos sobre compras por pronto pago de mercaderías',0,NULL,NULL,1,NULL,NULL),(4499,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6061',4497,'Descuentos sobre compras por pronto pago de materias primas',0,NULL,NULL,1,NULL,NULL),(4500,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6062',4497,'Descuentos sobre compras por pronto pago de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4501,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','COMPRAS','607',4493,'Trabajos realizados por otras empresas',0,NULL,NULL,1,NULL,NULL),(4502,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','608',4493,'Devoluciones de compras y operaciones similares',0,NULL,NULL,1,NULL,NULL),(4503,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6080',4502,'Devoluciones de compras de mercaderías',0,NULL,NULL,1,NULL,NULL),(4504,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6081',4502,'Devoluciones de compras de materias primas',0,NULL,NULL,1,NULL,NULL),(4505,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6082',4502,'Devoluciones de compras de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4506,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','609',4493,'Rappels por compras',0,NULL,NULL,1,NULL,NULL),(4507,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6090',4506,'Rappels por compras de mercaderías',0,NULL,NULL,1,NULL,NULL),(4508,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6091',4506,'Rappels por compras de materias primas',0,NULL,NULL,1,NULL,NULL),(4509,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6092',4506,'Rappels por compras de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4510,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','61',4006,'Variación de existencias',0,NULL,NULL,1,NULL,NULL),(4511,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','610',4510,'Variación de existencias de mercaderías',0,NULL,NULL,1,NULL,NULL),(4512,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','611',4510,'Variación de existencias de materias primas',0,NULL,NULL,1,NULL,NULL),(4513,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','612',4510,'Variación de existencias de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4514,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','62',4006,'Servicios exteriores',0,NULL,NULL,1,NULL,NULL),(4515,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','620',4514,'Gastos en investigación y desarrollo del ejercicio',0,NULL,NULL,1,NULL,NULL),(4516,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','621',4514,'Arrendamientos y cánones',0,NULL,NULL,1,NULL,NULL),(4517,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','622',4514,'Reparaciones y conservación',0,NULL,NULL,1,NULL,NULL),(4518,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','623',4514,'Servicios profesionales independientes',0,NULL,NULL,1,NULL,NULL),(4519,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','624',4514,'Transportes',0,NULL,NULL,1,NULL,NULL),(4520,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','625',4514,'Primas de seguros',0,NULL,NULL,1,NULL,NULL),(4521,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','626',4514,'Servicios bancarios y similares',0,NULL,NULL,1,NULL,NULL),(4522,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','627',4514,'Publicidad, propaganda y relaciones públicas',0,NULL,NULL,1,NULL,NULL),(4523,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','628',4514,'Suministros',0,NULL,NULL,1,NULL,NULL),(4524,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','629',4514,'Otros servicios',0,NULL,NULL,1,NULL,NULL),(4525,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','63',4006,'Tributos',0,NULL,NULL,1,NULL,NULL),(4526,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','630',4525,'Impuesto sobre benecifios',0,NULL,NULL,1,NULL,NULL),(4527,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6300',4526,'Impuesto corriente',0,NULL,NULL,1,NULL,NULL),(4528,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6301',4526,'Impuesto diferido',0,NULL,NULL,1,NULL,NULL),(4529,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','631',4525,'Otros tributos',0,NULL,NULL,1,NULL,NULL),(4530,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','633',4525,'Ajustes negativos en la imposición sobre beneficios',0,NULL,NULL,1,NULL,NULL),(4531,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','634',4525,'Ajustes negativos en la imposición indirecta',0,NULL,NULL,1,NULL,NULL),(4532,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6341',4531,'Ajustes negativos en IVA de activo corriente',0,NULL,NULL,1,NULL,NULL),(4533,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6342',4531,'Ajustes negativos en IVA de inversiones',0,NULL,NULL,1,NULL,NULL),(4534,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','636',4525,'Devolución de impuestos',0,NULL,NULL,1,NULL,NULL),(4535,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','638',4525,'Ajustes positivos en la imposición sobre beneficios',0,NULL,NULL,1,NULL,NULL),(4536,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','639',4525,'Ajustes positivos en la imposición directa',0,NULL,NULL,1,NULL,NULL),(4537,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6391',4536,'Ajustes positivos en IVA de activo corriente',0,NULL,NULL,1,NULL,NULL),(4538,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6392',4536,'Ajustes positivos en IVA de inversiones',0,NULL,NULL,1,NULL,NULL),(4539,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','64',4006,'Gastos de personal',0,NULL,NULL,1,NULL,NULL),(4540,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','640',4539,'Sueldos y salarios',0,NULL,NULL,1,NULL,NULL),(4541,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','641',4539,'Indemnizaciones',0,NULL,NULL,1,NULL,NULL),(4542,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','642',4539,'Seguridad social a cargo de la empresa',0,NULL,NULL,1,NULL,NULL),(4543,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','649',4539,'Otros gastos sociales',0,NULL,NULL,1,NULL,NULL),(4544,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','65',4006,'Otros gastos de gestión',0,NULL,NULL,1,NULL,NULL),(4545,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','650',4544,'Pérdidas de créditos comerciales incobrables',0,NULL,NULL,1,NULL,NULL),(4546,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','651',4544,'Resultados de operaciones en común',0,NULL,NULL,1,NULL,NULL),(4547,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6510',4546,'Beneficio transferido gestor',0,NULL,NULL,1,NULL,NULL),(4548,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6511',4546,'Pérdida soportada participe o asociado no gestor',0,NULL,NULL,1,NULL,NULL),(4549,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','659',4544,'Otras pérdidas en gestión corriente',0,NULL,NULL,1,NULL,NULL),(4550,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','66',4006,'Gastos financieros',0,NULL,NULL,1,NULL,NULL),(4551,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','660',4550,'Gastos financieros por actualización de provisiones',0,NULL,NULL,1,NULL,NULL),(4552,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','661',4550,'Intereses de obligaciones y bonos',0,NULL,NULL,1,NULL,NULL),(4553,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6610',4452,'Intereses de obligaciones y bonos a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4554,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6611',4452,'Intereses de obligaciones y bonos a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4555,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6612',4452,'Intereses de obligaciones y bonos a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4556,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6613',4452,'Intereses de obligaciones y bonos a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4557,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6615',4452,'Intereses de obligaciones y bonos a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4558,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6616',4452,'Intereses de obligaciones y bonos a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4559,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6617',4452,'Intereses de obligaciones y bonos a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4560,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6618',4452,'Intereses de obligaciones y bonos a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4561,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','662',4550,'Intereses de deudas',0,NULL,NULL,1,NULL,NULL),(4562,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6620',4561,'Intereses de deudas empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4563,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6621',4561,'Intereses de deudas empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4564,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6622',4561,'Intereses de deudas otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4565,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6623',4561,'Intereses de deudas con entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4566,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6624',4561,'Intereses de deudas otras empresas',0,NULL,NULL,1,NULL,NULL),(4567,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','663',4550,'Pérdidas por valorización de activos y pasivos financieros por su valor razonable',0,NULL,NULL,1,NULL,NULL),(4568,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','664',4550,'Gastos por dividendos de acciones o participaciones consideradas como pasivos financieros',0,NULL,NULL,1,NULL,NULL),(4569,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6640',4568,'Dividendos de pasivos empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4570,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6641',4568,'Dividendos de pasivos empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4571,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6642',4568,'Dividendos de pasivos otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4572,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6643',4568,'Dividendos de pasivos otras empresas',0,NULL,NULL,1,NULL,NULL),(4573,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','665',4550,'Intereses por descuento de efectos y operaciones de factoring',0,NULL,NULL,1,NULL,NULL),(4574,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6650',4573,'Intereses por descuento de efectos en entidades de crédito del grupo',0,NULL,NULL,1,NULL,NULL),(4575,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6651',4573,'Intereses por descuento de efectos en entidades de crédito asociadas',0,NULL,NULL,1,NULL,NULL),(4576,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6652',4573,'Intereses por descuento de efectos en entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4577,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6653',4573,'Intereses por descuento de efectos en otras entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4578,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6654',4573,'Intereses por operaciones de factoring con entidades de crédito del grupo',0,NULL,NULL,1,NULL,NULL),(4579,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6655',4573,'Intereses por operaciones de factoring con entidades de crédito asociadas',0,NULL,NULL,1,NULL,NULL),(4580,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6656',4573,'Intereses por operaciones de factoring con otras entidades de crédito vinculadas',0,NULL,NULL,1,NULL,NULL),(4581,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6657',4573,'Intereses por operaciones de factoring con otras entidades de crédito',0,NULL,NULL,1,NULL,NULL),(4582,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','666',4550,'Pérdidas en participaciones y valores representativos de deuda',0,NULL,NULL,1,NULL,NULL),(4583,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6660',4582,'Pérdidas en valores representativos de deuda a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4584,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6661',4582,'Pérdidas en valores representativos de deuda a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4585,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6662',4582,'Pérdidas en valores representativos de deuda a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4586,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6663',4582,'Pérdidas en participaciones y valores representativos de deuda a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4587,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6665',4582,'Pérdidas en participaciones y valores representativos de deuda a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4588,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6666',4582,'Pérdidas en participaciones y valores representativos de deuda a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4589,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6667',4582,'Pérdidas en valores representativos de deuda a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4590,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6668',4582,'Pérdidas en valores representativos de deuda a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4591,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','667',4550,'Pérdidas de créditos no comerciales',0,NULL,NULL,1,NULL,NULL),(4592,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6670',4591,'Pérdidas de créditos a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4593,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6671',4591,'Pérdidas de créditos a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4594,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6672',4591,'Pérdidas de créditos a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4595,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6673',4591,'Pérdidas de créditos a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4596,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6675',4591,'Pérdidas de créditos a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4597,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6676',4591,'Pérdidas de créditos a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4598,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6677',4591,'Pérdidas de créditos a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4599,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6678',4591,'Pérdidas de créditos a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4600,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','668',4550,'Diferencias negativas de cambio',0,NULL,NULL,1,NULL,NULL),(4601,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','669',4550,'Otros gastos financieros',0,NULL,NULL,1,NULL,NULL),(4602,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','67',4006,'Pérdidas procedentes de activos no corrientes y gastos excepcionales',0,NULL,NULL,1,NULL,NULL),(4603,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','670',4602,'Pérdidas procedentes del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4604,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','671',4602,'Pérdidas procedentes del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4605,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','672',4602,'Pérdidas procedentes de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4607,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','673',4602,'Pérdidas procedentes de participaciones a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4608,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6733',4607,'Pérdidas procedentes de participaciones a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4609,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6734',4607,'Pérdidas procedentes de participaciones a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4610,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6735',4607,'Pérdidas procedentes de participaciones a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4611,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','675',4602,'Pérdidas por operaciones con obligaciones propias',0,NULL,NULL,1,NULL,NULL),(4612,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','678',4602,'Gastos excepcionales',0,NULL,NULL,1,NULL,NULL),(4613,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','68',4006,'Dotaciones para amortizaciones',0,NULL,NULL,1,NULL,NULL),(4614,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','680',4613,'Amortización del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4615,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','681',4613,'Amortización del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4616,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','682',4613,'Amortización de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4617,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','69',4006,'Pérdidas por deterioro y otras dotaciones',0,NULL,NULL,1,NULL,NULL),(4618,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','690',4617,'Pérdidas por deterioro del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4619,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','691',4617,'Pérdidas por deterioro del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4620,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','692',4617,'Pérdidas por deterioro de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4621,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','693',4617,'Pérdidas por deterioro de existencias',0,NULL,NULL,1,NULL,NULL),(4622,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6930',4621,'Pérdidas por deterioro de productos terminados y en curso de fabricación',0,NULL,NULL,1,NULL,NULL),(4623,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6931',4621,'Pérdidas por deterioro de mercaderías',0,NULL,NULL,1,NULL,NULL),(4624,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6932',4621,'Pérdidas por deterioro de materias primas',0,NULL,NULL,1,NULL,NULL),(4625,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6933',4621,'Pérdidas por deterioro de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4626,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','694',4617,'Pérdidas por deterioro de créditos por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4627,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','695',4617,'Dotación a la provisión por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4628,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6954',4627,'Dotación a la provisión por contratos onerosos',0,NULL,NULL,1,NULL,NULL),(4629,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6959',4628,'Dotación a la provisión para otras operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4630,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','696',4617,'Pérdidas por deterioro de participaciones y valores representativos de deuda a largo plazo',0,NULL,NULL,1,NULL,NULL),(4631,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6960',4630,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4632,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6961',4630,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4633,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6962',4630,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4634,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6963',4630,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4635,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6965',4630,'Pérdidas por deterioro en valores representativos de deuda a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4636,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6966',4630,'Pérdidas por deterioro en valores representativos de deuda a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4637,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6967',4630,'Pérdidas por deterioro en valores representativos de deuda a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4638,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6968',4630,'Pérdidas por deterioro en valores representativos de deuda a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4639,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','697',4617,'Pérdidas por deterioro de créditos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4640,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6970',4639,'Pérdidas por deterioro de créditos a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4641,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6971',4639,'Pérdidas por deterioro de créditos a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4642,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6972',4639,'Pérdidas por deterioro de créditos a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4643,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6973',4639,'Pérdidas por deterioro de créditos a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4644,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','698',4617,'Pérdidas por deterioro de participaciones y valores representativos de deuda a corto plazo',0,NULL,NULL,1,NULL,NULL),(4645,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6980',4644,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4646,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6981',4644,'Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4647,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6985',4644,'Pérdidas por deterioro en valores representativos de deuda a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4648,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6986',4644,'Pérdidas por deterioro en valores representativos de deuda a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4649,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6988',4644,'Pérdidas por deterioro en valores representativos de deuda a corto plazo de otras empresas',0,NULL,NULL,1,NULL,NULL),(4650,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','699',4617,'Pérdidas por deterioro de crédito a corto plazo',0,NULL,NULL,1,NULL,NULL),(4651,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6990',4650,'Pérdidas por deterioro de crédito a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4652,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6991',4650,'Pérdidas por deterioro de crédito a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4653,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6992',4650,'Pérdidas por deterioro de crédito a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4654,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','EXPENSE','XXXXXX','6993',4650,'Pérdidas por deterioro de crédito a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4655,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','70',4007,'Ventas',0,NULL,NULL,1,NULL,NULL),(4656,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','VENTAS','700',4655,'Ventas de mercaderías',0,NULL,NULL,1,NULL,NULL),(4657,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','VENTAS','701',4655,'Ventas de productos terminados',0,NULL,NULL,1,NULL,NULL),(4658,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','702',4655,'Ventas de productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4659,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','703',4655,'Ventas de subproductos y residuos',0,NULL,NULL,1,NULL,NULL),(4660,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','704',4655,'Ventas de envases y embalajes',0,NULL,NULL,1,NULL,NULL),(4661,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','VENTAS','705',4655,'Prestaciones de servicios',0,NULL,NULL,1,NULL,NULL),(4662,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','706',4655,'Descuentos sobre ventas por pronto pago',0,NULL,NULL,1,NULL,NULL),(4663,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7060',4662,'Descuentos sobre ventas por pronto pago de mercaderías',0,NULL,NULL,1,NULL,NULL),(4664,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7061',4662,'Descuentos sobre ventas por pronto pago de productos terminados',0,NULL,NULL,1,NULL,NULL),(4665,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7062',4662,'Descuentos sobre ventas por pronto pago de productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4666,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7063',4662,'Descuentos sobre ventas por pronto pago de subproductos y residuos',0,NULL,NULL,1,NULL,NULL),(4667,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','708',4655,'Devoluciones de ventas y operacioes similares',0,NULL,NULL,1,NULL,NULL),(4668,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7080',4667,'Devoluciones de ventas de mercaderías',0,NULL,NULL,1,NULL,NULL),(4669,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7081',4667,'Devoluciones de ventas de productos terminados',0,NULL,NULL,1,NULL,NULL),(4670,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7082',4667,'Devoluciones de ventas de productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4671,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7083',4667,'Devoluciones de ventas de subproductos y residuos',0,NULL,NULL,1,NULL,NULL),(4672,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7084',4667,'Devoluciones de ventas de envases y embalajes',0,NULL,NULL,1,NULL,NULL),(4673,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','71',4007,'Variación de existencias',0,NULL,NULL,1,NULL,NULL),(4674,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','710',4673,'Variación de existencias de productos en curso',0,NULL,NULL,1,NULL,NULL),(4675,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','711',4673,'Variación de existencias de productos semiterminados',0,NULL,NULL,1,NULL,NULL),(4676,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','712',4673,'Variación de existencias de productos terminados',0,NULL,NULL,1,NULL,NULL),(4677,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','713',4673,'Variación de existencias de subproductos, residuos y materiales recuperados',0,NULL,NULL,1,NULL,NULL),(4678,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','73',4007,'Trabajos realizados para la empresa',0,NULL,NULL,1,NULL,NULL),(4679,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','730',4678,'Trabajos realizados para el inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4680,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','731',4678,'Trabajos realizados para el inmovilizado tangible',0,NULL,NULL,1,NULL,NULL),(4681,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','732',4678,'Trabajos realizados en inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4682,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','733',4678,'Trabajos realizados para el inmovilizado material en curso',0,NULL,NULL,1,NULL,NULL),(4683,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','74',4007,'Subvenciones, donaciones y legados',0,NULL,NULL,1,NULL,NULL),(4684,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','740',4683,'Subvenciones, donaciones y legados a la explotación',0,NULL,NULL,1,NULL,NULL),(4685,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','746',4683,'Subvenciones, donaciones y legados de capital transferidos al resultado del ejercicio',0,NULL,NULL,1,NULL,NULL),(4686,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','747',4683,'Otras subvenciones, donaciones y legados transferidos al resultado del ejercicio',0,NULL,NULL,1,NULL,NULL),(4687,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','75',4007,'Otros ingresos de gestión',0,NULL,NULL,1,NULL,NULL),(4688,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','751',4687,'Resultados de operaciones en común',0,NULL,NULL,1,NULL,NULL),(4689,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7510',4688,'Pérdida transferida gestor',0,NULL,NULL,1,NULL,NULL),(4690,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7511',4688,'Beneficio atribuido participe o asociado no gestor',0,NULL,NULL,1,NULL,NULL),(4691,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','752',4687,'Ingreso por arrendamiento',0,NULL,NULL,1,NULL,NULL),(4692,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','753',4687,'Ingresos de propiedad industrial cedida en explotación',0,NULL,NULL,1,NULL,NULL),(4693,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','754',4687,'Ingresos por comisiones',0,NULL,NULL,1,NULL,NULL),(4694,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','755',4687,'Ingresos por servicios al personal',0,NULL,NULL,1,NULL,NULL),(4695,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','759',4687,'Ingresos por servicios diversos',0,NULL,NULL,1,NULL,NULL),(4696,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76',4007,'Ingresos financieros',0,NULL,NULL,1,NULL,NULL),(4697,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','760',4696,'Ingresos de participaciones en instrumentos de patrimonio',0,NULL,NULL,1,NULL,NULL),(4698,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7600',4697,'Ingresos de participaciones en instrumentos de patrimonio empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4699,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7601',4697,'Ingresos de participaciones en instrumentos de patrimonio empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4700,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7602',4697,'Ingresos de participaciones en instrumentos de patrimonio otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4701,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7603',4697,'Ingresos de participaciones en instrumentos de patrimonio otras empresas',0,NULL,NULL,1,NULL,NULL),(4702,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','761',4696,'Ingresos de valores representativos de deuda',0,NULL,NULL,1,NULL,NULL),(4703,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7610',4702,'Ingresos de valores representativos de deuda empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4704,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7611',4702,'Ingresos de valores representativos de deuda empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4705,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7612',4702,'Ingresos de valores representativos de deuda otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4706,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7613',4702,'Ingresos de valores representativos de deuda otras empresas',0,NULL,NULL,1,NULL,NULL),(4707,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','762',4696,'Ingresos de créditos',0,NULL,NULL,1,NULL,NULL),(4708,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7620',4707,'Ingresos de créditos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4709,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76200',4708,'Ingresos de crédito a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4710,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76201',4708,'Ingresos de crédito a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4711,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76202',4708,'Ingresos de crédito a largo plazo otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4712,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76203',4708,'Ingresos de crédito a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4713,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7621',4707,'Ingresos de créditos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4714,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76210',4713,'Ingresos de crédito a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4715,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76211',4713,'Ingresos de crédito a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4716,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76212',4713,'Ingresos de crédito a corto plazo otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4717,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','76213',4713,'Ingresos de crédito a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4718,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','763',4696,'Beneficios por valorización de activos y pasivos financieros por su valor razonable',0,NULL,NULL,1,NULL,NULL),(4719,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','766',4696,'Beneficios en participaciones y valores representativos de deuda',0,NULL,NULL,1,NULL,NULL),(4720,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7660',4719,'Beneficios en participaciones y valores representativos de deuda a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4721,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7661',4719,'Beneficios en participaciones y valores representativos de deuda a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4722,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7662',4719,'Beneficios en participaciones y valores representativos de deuda a largo plazo otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4723,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7663',4719,'Beneficios en participaciones y valores representativos de deuda a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4724,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7665',4719,'Beneficios en participaciones y valores representativos de deuda a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4725,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7666',4719,'Beneficios en participaciones y valores representativos de deuda a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4726,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7667',4719,'Beneficios en participaciones y valores representativos de deuda a corto plazo otras partes asociadas',0,NULL,NULL,1,NULL,NULL),(4727,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7668',4719,'Beneficios en participaciones y valores representativos de deuda a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4728,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','768',4696,'Diferencias positivas de cambio',0,NULL,NULL,1,NULL,NULL),(4729,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','769',4696,'Otros ingresos financieros',0,NULL,NULL,1,NULL,NULL),(4730,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','77',4007,'Beneficios procedentes de activos no corrientes e ingresos excepcionales',0,NULL,NULL,1,NULL,NULL),(4731,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','770',4730,'Beneficios procedentes del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4732,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','771',4730,'Beneficios procedentes del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4733,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','772',4730,'Beneficios procedentes de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4734,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','773',4730,'Beneficios procedentes de participaciones a largo plazo en partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4735,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7733',4734,'Beneficios procedentes de participaciones a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4736,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7734',4734,'Beneficios procedentes de participaciones a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4737,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7735',4734,'Beneficios procedentes de participaciones a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4738,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','775',4730,'Beneficios por operaciones con obligaciones propias',0,NULL,NULL,1,NULL,NULL),(4739,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','778',4730,'Ingresos excepcionales',0,NULL,NULL,1,NULL,NULL),(4741,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','79',4007,'Excesos y aplicaciones de provisiones y pérdidas por deterioro',0,NULL,NULL,1,NULL,NULL),(4742,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','790',4741,'Revisión del deterioro del inmovilizado intangible',0,NULL,NULL,1,NULL,NULL),(4743,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','791',4741,'Revisión del deterioro del inmovilizado material',0,NULL,NULL,1,NULL,NULL),(4744,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','792',4741,'Revisión del deterioro de las inversiones inmobiliarias',0,NULL,NULL,1,NULL,NULL),(4745,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','793',4741,'Revisión del deterioro de las existencias',0,NULL,NULL,1,NULL,NULL),(4746,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7930',4745,'Revisión del deterioro de productos terminados y en curso de fabricación',0,NULL,NULL,1,NULL,NULL),(4747,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7931',4745,'Revisión del deterioro de mercaderías',0,NULL,NULL,1,NULL,NULL),(4748,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7932',4745,'Revisión del deterioro de materias primas',0,NULL,NULL,1,NULL,NULL),(4749,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7933',4745,'Revisión del deterioro de otros aprovisionamientos',0,NULL,NULL,1,NULL,NULL),(4750,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','794',4741,'Revisión del deterioro de créditos por operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4751,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','795',4741,'Exceso de provisiones',0,NULL,NULL,1,NULL,NULL),(4752,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7951',4751,'Exceso de provisión para impuestos',0,NULL,NULL,1,NULL,NULL),(4753,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7952',4751,'Exceso de provisión para otras responsabilidades',0,NULL,NULL,1,NULL,NULL),(4755,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7954',4751,'Exceso de provisión para operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4756,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','79544',4755,'Exceso de provisión por contratos onerosos',0,NULL,NULL,1,NULL,NULL),(4757,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','79549',4755,'Exceso de provisión para otras operaciones comerciales',0,NULL,NULL,1,NULL,NULL),(4758,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7955',4751,'Exceso de provisión para actuaciones medioambienteales',0,NULL,NULL,1,NULL,NULL),(4759,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','796',4741,'Revisión del deterioro de participaciones y valores representativos de deuda a largo plazo',0,NULL,NULL,1,NULL,NULL),(4760,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7960',4759,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4761,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7961',4759,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4762,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7962',4759,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4763,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7963',4759,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4764,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7965',4759,'Revisión del deterioro de valores representativos a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4765,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7966',4759,'Revisión del deterioro de valores representativos a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4766,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7967',4759,'Revisión del deterioro de valores representativos a largo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4767,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7968',4759,'Revisión del deterioro de valores representativos a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4768,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','797',4741,'Revisión del deterioro de créditos a largo plazo',0,NULL,NULL,1,NULL,NULL),(4769,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7970',4768,'Revisión del deterioro de créditos a largo plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4770,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7971',4768,'Revisión del deterioro de créditos a largo plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4771,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7972',4768,'Revisión del deterioro de créditos a largo plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4772,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7973',4768,'Revisión del deterioro de créditos a largo plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4773,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','798',4741,'Revisión del deterioro de participaciones y valores representativos de deuda a corto plazo',0,NULL,NULL,1,NULL,NULL),(4774,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7980',4773,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4775,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7981',4773,'Revisión del deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4776,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7985',4773,'Revisión del deterioro de valores representativos de deuda a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4777,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7986',4773,'Revisión del deterioro de valores representativos de deuda a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4778,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7987',4773,'Revisión del deterioro de valores representativos de deuda a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4779,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7988',4773,'Revisión del deterioro de valores representativos de deuda a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL),(4780,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','799',4741,'Revisión del deterioro de créditos a corto plazo',0,NULL,NULL,1,NULL,NULL),(4781,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7990',4780,'Revisión del deterioro de créditos a corto plazo empresas del grupo',0,NULL,NULL,1,NULL,NULL),(4782,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7991',4780,'Revisión del deterioro de créditos a corto plazo empresas asociadas',0,NULL,NULL,1,NULL,NULL),(4783,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7992',4780,'Revisión del deterioro de créditos a corto plazo otras partes vinculadas',0,NULL,NULL,1,NULL,NULL),(4784,1,NULL,'2018-01-19 11:17:49','PCG08-PYME','INCOME','XXXXXX','7993',4780,'Revisión del deterioro de créditos a corto plazo otras empresas',0,NULL,NULL,1,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_accounting_account` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accounting_bookkeeping`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_bookkeeping`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_bookkeeping` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `doc_date` date NOT NULL,
    +  `doc_type` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `doc_ref` varchar(300) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_doc` int(11) NOT NULL,
    +  `fk_docdet` int(11) NOT NULL,
    +  `thirdparty_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `numero_compte` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label_compte` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label_operation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `debit` double(24,8) DEFAULT NULL,
    +  `credit` double(24,8) DEFAULT NULL,
    +  `montant` double(24,8) DEFAULT NULL,
    +  `sens` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_amount` double(24,8) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lettering_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_lettering` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_journal` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `journal_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `piece_num` int(11) NOT NULL,
    +  `validated` tinyint(4) NOT NULL DEFAULT '0',
    +  `date_validated` datetime DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `subledger_account` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `subledger_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_lim_reglement` datetime DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_accounting_bookkeeping_fk_doc` (`fk_doc`)
    +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_bookkeeping`
    +--
    +
    +LOCK TABLES `llx_accounting_bookkeeping` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_bookkeeping` DISABLE KEYS */;
    +INSERT INTO `llx_accounting_bookkeeping` VALUES (2,'2017-02-19','','',0,0,NULL,'1','ttt',NULL,5.00000000,0.00000000,5.00000000,'D',NULL,NULL,NULL,NULL,12,NULL,'VTE',NULL,1,0,NULL,1,NULL,'2017-08-27 15:29:05','2018-11-23 11:56:09','1',NULL,NULL,NULL,NULL),(4,'2017-02-19','','',0,0,NULL,'10','',NULL,0.00000000,5.00000000,5.00000000,'C',NULL,NULL,NULL,NULL,12,NULL,'VTE',NULL,1,0,NULL,1,NULL,'2017-08-27 15:29:05','2018-11-23 11:56:09','10',NULL,NULL,NULL,NULL),(6,'2017-02-19','','',0,0,NULL,'NotDefined','',NULL,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL,12,NULL,'VTE',NULL,2,0,NULL,1,NULL,'2017-08-27 15:29:05','2018-11-23 11:56:09','NotDefined',NULL,NULL,NULL,NULL),(9,'2017-02-19','','',0,0,NULL,'NotDefined','',NULL,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL,NULL,12,NULL,'VTE',NULL,3,0,NULL,1,NULL,'2017-08-27 15:29:05','2018-11-23 11:56:09','NotDefined',NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_accounting_bookkeeping` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accounting_bookkeeping_tmp`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_bookkeeping_tmp`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_bookkeeping_tmp` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `doc_date` date NOT NULL,
    +  `doc_type` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `doc_ref` varchar(300) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_doc` int(11) NOT NULL,
    +  `fk_docdet` int(11) NOT NULL,
    +  `thirdparty_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `subledger_account` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `subledger_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `numero_compte` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label_compte` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `label_operation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `debit` double(24,8) NOT NULL,
    +  `credit` double(24,8) NOT NULL,
    +  `montant` double(24,8) NOT NULL,
    +  `sens` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_amount` double(24,8) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lettering_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_lettering` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_journal` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `journal_label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `piece_num` int(11) NOT NULL,
    +  `validated` tinyint(4) NOT NULL DEFAULT '0',
    +  `date_validated` datetime DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_lim_reglement` datetime DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_accounting_bookkeeping_doc_date` (`doc_date`),
    +  KEY `idx_accounting_bookkeeping_fk_docdet` (`fk_docdet`),
    +  KEY `idx_accounting_bookkeeping_numero_compte` (`numero_compte`),
    +  KEY `idx_accounting_bookkeeping_code_journal` (`code_journal`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_bookkeeping_tmp`
    +--
    +
    +LOCK TABLES `llx_accounting_bookkeeping_tmp` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_bookkeeping_tmp` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_accounting_bookkeeping_tmp` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accounting_fiscalyear`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_fiscalyear`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_fiscalyear` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `date_start` date DEFAULT NULL,
    +  `date_end` date DEFAULT NULL,
    +  `statut` tinyint(4) NOT NULL DEFAULT '0',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_fiscalyear`
    +--
    +
    +LOCK TABLES `llx_accounting_fiscalyear` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_fiscalyear` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_accounting_fiscalyear` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accounting_journal`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_journal`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_journal` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `nature` smallint(6) NOT NULL DEFAULT '0',
    +  `active` smallint(6) DEFAULT '0',
    +  `entity` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_accounting_journal_code` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_journal`
    +--
    +
    +LOCK TABLES `llx_accounting_journal` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_journal` DISABLE KEYS */;
    +INSERT INTO `llx_accounting_journal` VALUES (1,'VT','Sale journal',2,1,1),(2,'AC','Purchase journal',3,1,1),(3,'BQ','Bank journal',4,1,1),(4,'OD','Other journal',1,1,1),(5,'AN','Has new journal',9,1,1),(6,'ER','Expense report journal',5,1,1),(7,'INV','Inventory journal',8,1,1);
    +/*!40000 ALTER TABLE `llx_accounting_journal` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accounting_system`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accounting_system`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accounting_system` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `pcg_version` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` smallint(6) DEFAULT '0',
    +  `fk_country` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_accounting_system_pcg_version` (`pcg_version`)
    +) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accounting_system`
    +--
    +
    +LOCK TABLES `llx_accounting_system` WRITE;
    +/*!40000 ALTER TABLE `llx_accounting_system` DISABLE KEYS */;
    +INSERT INTO `llx_accounting_system` VALUES (1,'PCG99-ABREGE','The simple accountancy french plan',1,1),(2,'PCG99-BASE','The base accountancy french plan',1,1),(3,'PCMN-BASE','The base accountancy belgium plan',1,2),(4,'PCG08-PYME','The PYME accountancy spanish plan',1,4),(5,'PC-MIPYME','The PYME accountancy Chile plan',1,67),(6,'ENG-BASE','England plan',1,7),(7,'SYSCOHADA','Plan comptable Ouest-Africain',1,49),(39,'PCG14-DEV','The developed accountancy french plan 2014',1,1),(40,'PCG_SUISSE','Switzerland plan',1,6),(41,'PCN-LUXEMBURG','Plan comptable normalisé Luxembourgeois',1,140),(42,'DK-STD','Standardkontoplan fra SKAT',1,80),(43,'PCT','The Tunisia plan',1,10),(44,'PCG','The Moroccan chart of accounts',1,12),(47,'SYSCOHADA-BJ','Plan comptable Ouest-Africain',1,49),(48,'SYSCOHADA-BF','Plan comptable Ouest-Africain',1,60),(49,'SYSCOHADA-CM','Plan comptable Ouest-Africain',1,24),(50,'SYSCOHADA-CF','Plan comptable Ouest-Africain',1,65),(51,'SYSCOHADA-KM','Plan comptable Ouest-Africain',1,71),(52,'SYSCOHADA-CG','Plan comptable Ouest-Africain',1,72),(53,'SYSCOHADA-CI','Plan comptable Ouest-Africain',1,21),(54,'SYSCOHADA-GA','Plan comptable Ouest-Africain',1,16),(55,'SYSCOHADA-GQ','Plan comptable Ouest-Africain',1,87),(56,'SYSCOHADA-ML','Plan comptable Ouest-Africain',1,147),(57,'SYSCOHADA-NE','Plan comptable Ouest-Africain',1,168),(58,'SYSCOHADA-CD','Plan comptable Ouest-Africain',1,73),(59,'SYSCOHADA-SN','Plan comptable Ouest-Africain',1,22),(60,'SYSCOHADA-TD','Plan comptable Ouest-Africain',1,66),(61,'SYSCOHADA-TG','Plan comptable Ouest-Africain',1,15),(62,'RO-BASE','Plan de conturi romanesc',1,188),(63,'SKR03','Standardkontenrahmen SKR 03',1,5),(64,'SKR04','Standardkontenrahmen SKR 04',1,5);
    +/*!40000 ALTER TABLE `llx_accounting_system` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_accountingaccount`
    +--
    +
    +DROP TABLE IF EXISTS `llx_accountingaccount`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_accountingaccount` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_pcg_version` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pcg_type` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `pcg_subtype` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `account_number` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `account_parent` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_accountingaccount_fk_pcg_version` (`fk_pcg_version`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4785 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_accountingaccount`
    +--
    +
    +LOCK TABLES `llx_accountingaccount` WRITE;
    +/*!40000 ALTER TABLE `llx_accountingaccount` DISABLE KEYS */;
    +INSERT INTO `llx_accountingaccount` VALUES (1,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','CAPITAL','101','1401','Capital',NULL,NULL,1),(2,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','105','1401','Ecarts de réévaluation',NULL,NULL,1),(3,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','1061','1401','Réserve légale',NULL,NULL,1),(4,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','1063','1401','Réserves statutaires ou contractuelles',NULL,NULL,1),(5,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','1064','1401','Réserves réglementées',NULL,NULL,1),(6,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','1068','1401','Autres réserves',NULL,NULL,1),(7,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','108','1401','Compte de l\'exploitant',NULL,NULL,1),(8,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','12','1401','Résultat de l\'exercice',NULL,NULL,1),(9,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','145','1401','Amortissements dérogatoires',NULL,NULL,1),(10,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','146','1401','Provision spéciale de réévaluation',NULL,NULL,1),(11,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','147','1401','Plus-values réinvesties',NULL,NULL,1),(12,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','148','1401','Autres provisions réglementées',NULL,NULL,1),(13,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','15','1401','Provisions pour risques et charges',NULL,NULL,1),(14,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','16','1401','Emprunts et dettes assimilees',NULL,NULL,1),(15,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','20','1402','Immobilisations incorporelles',NULL,NULL,1),(16,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','201','15','Frais d\'établissement',NULL,NULL,1),(17,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','206','15','Droit au bail',NULL,NULL,1),(18,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','207','15','Fonds commercial',NULL,NULL,1),(19,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','208','15','Autres immobilisations incorporelles',NULL,NULL,1),(20,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','21','1402','Immobilisations corporelles',NULL,NULL,1),(21,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','23','1402','Immobilisations en cours',NULL,NULL,1),(22,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','27','1402','Autres immobilisations financieres',NULL,NULL,1),(23,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','280','1402','Amortissements des immobilisations incorporelles',NULL,NULL,1),(24,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','281','1402','Amortissements des immobilisations corporelles',NULL,NULL,1),(25,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','290','1402','Provisions pour dépréciation des immobilisations incorporelles',NULL,NULL,1),(26,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','291','1402','Provisions pour dépréciation des immobilisations corporelles',NULL,NULL,1),(27,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','297','1402','Provisions pour dépréciation des autres immobilisations financières',NULL,NULL,1),(28,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','31','1403','Matieres premières',NULL,NULL,1),(29,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','32','1403','Autres approvisionnements',NULL,NULL,1),(30,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','33','1403','En-cours de production de biens',NULL,NULL,1),(31,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','34','1403','En-cours de production de services',NULL,NULL,1),(32,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','35','1403','Stocks de produits',NULL,NULL,1),(33,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','37','1403','Stocks de marchandises',NULL,NULL,1),(34,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','391','1403','Provisions pour dépréciation des matières premières',NULL,NULL,1),(35,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','392','1403','Provisions pour dépréciation des autres approvisionnements',NULL,NULL,1),(36,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','393','1403','Provisions pour dépréciation des en-cours de production de biens',NULL,NULL,1),(37,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','394','1403','Provisions pour dépréciation des en-cours de production de services',NULL,NULL,1),(38,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','395','1403','Provisions pour dépréciation des stocks de produits',NULL,NULL,1),(39,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','397','1403','Provisions pour dépréciation des stocks de marchandises',NULL,NULL,1),(40,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','SUPPLIER','400','1404','Fournisseurs et Comptes rattachés',NULL,NULL,1),(41,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','409','1404','Fournisseurs débiteurs',NULL,NULL,1),(42,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','CUSTOMER','410','1404','Clients et Comptes rattachés',NULL,NULL,1),(43,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','419','1404','Clients créditeurs',NULL,NULL,1),(44,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','421','1404','Personnel',NULL,NULL,1),(45,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','428','1404','Personnel',NULL,NULL,1),(46,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','43','1404','Sécurité sociale et autres organismes sociaux',NULL,NULL,1),(47,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','444','1404','Etat - impôts sur bénéfice',NULL,NULL,1),(48,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','445','1404','Etat - Taxes sur chiffre affaires',NULL,NULL,1),(49,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','447','1404','Autres impôts, taxes et versements assimilés',NULL,NULL,1),(50,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','45','1404','Groupe et associes',NULL,NULL,1),(51,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','455','50','Associés',NULL,NULL,1),(52,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','46','1404','Débiteurs divers et créditeurs divers',NULL,NULL,1),(53,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','47','1404','Comptes transitoires ou d\'attente',NULL,NULL,1),(54,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','481','1404','Charges à répartir sur plusieurs exercices',NULL,NULL,1),(55,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','486','1404','Charges constatées d\'avance',NULL,NULL,1),(56,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','487','1404','Produits constatés d\'avance',NULL,NULL,1),(57,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','491','1404','Provisions pour dépréciation des comptes de clients',NULL,NULL,1),(58,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','496','1404','Provisions pour dépréciation des comptes de débiteurs divers',NULL,NULL,1),(59,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','XXXXXX','50','1405','Valeurs mobilières de placement',NULL,NULL,1),(60,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','BANK','51','1405','Banques, établissements financiers et assimilés',NULL,NULL,1),(61,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','CASH','53','1405','Caisse',NULL,NULL,1),(62,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','XXXXXX','54','1405','Régies d\'avance et accréditifs',NULL,NULL,1),(63,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','XXXXXX','58','1405','Virements internes',NULL,NULL,1),(64,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','XXXXXX','590','1405','Provisions pour dépréciation des valeurs mobilières de placement',NULL,NULL,1),(65,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','PRODUCT','60','1406','Achats',NULL,NULL,1),(66,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','603','65','Variations des stocks',NULL,NULL,1),(67,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','SERVICE','61','1406','Services extérieurs',NULL,NULL,1),(68,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','62','1406','Autres services extérieurs',NULL,NULL,1),(69,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','63','1406','Impôts, taxes et versements assimiles',NULL,NULL,1),(70,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','641','1406','Rémunérations du personnel',NULL,NULL,1),(71,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','644','1406','Rémunération du travail de l\'exploitant',NULL,NULL,1),(72,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','SOCIAL','645','1406','Charges de sécurité sociale et de prévoyance',NULL,NULL,1),(73,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','646','1406','Cotisations sociales personnelles de l\'exploitant',NULL,NULL,1),(74,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','65','1406','Autres charges de gestion courante',NULL,NULL,1),(75,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','66','1406','Charges financières',NULL,NULL,1),(76,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','67','1406','Charges exceptionnelles',NULL,NULL,1),(77,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','681','1406','Dotations aux amortissements et aux provisions',NULL,NULL,1),(78,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','686','1406','Dotations aux amortissements et aux provisions',NULL,NULL,1),(79,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','687','1406','Dotations aux amortissements et aux provisions',NULL,NULL,1),(80,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','691','1406','Participation des salariés aux résultats',NULL,NULL,1),(81,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','695','1406','Impôts sur les bénéfices',NULL,NULL,1),(82,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','697','1406','Imposition forfaitaire annuelle des sociétés',NULL,NULL,1),(83,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','699','1406','Produits',NULL,NULL,1),(84,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','PRODUCT','701','1407','Ventes de produits finis',NULL,NULL,1),(85,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','SERVICE','706','1407','Prestations de services',NULL,NULL,1),(86,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','PRODUCT','707','1407','Ventes de marchandises',NULL,NULL,1),(87,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','PRODUCT','708','1407','Produits des activités annexes',NULL,NULL,1),(88,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','709','1407','Rabais, remises et ristournes accordés par l\'entreprise',NULL,NULL,1),(89,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','713','1407','Variation des stocks',NULL,NULL,1),(90,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','72','1407','Production immobilisée',NULL,NULL,1),(91,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','73','1407','Produits nets partiels sur opérations à long terme',NULL,NULL,1),(92,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','74','1407','Subventions d\'exploitation',NULL,NULL,1),(93,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','75','1407','Autres produits de gestion courante',NULL,NULL,1),(94,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','753','93','Jetons de présence et rémunérations d\'administrateurs, gérants,...',NULL,NULL,1),(95,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','754','93','Ristournes perçues des coopératives',NULL,NULL,1),(96,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','755','93','Quotes-parts de résultat sur opérations faites en commun',NULL,NULL,1),(97,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','76','1407','Produits financiers',NULL,NULL,1),(98,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','77','1407','Produits exceptionnels',NULL,NULL,1),(99,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','781','1407','Reprises sur amortissements et provisions',NULL,NULL,1),(100,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','786','1407','Reprises sur provisions pour risques',NULL,NULL,1),(101,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','787','1407','Reprises sur provisions',NULL,NULL,1),(102,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','79','1407','Transferts de charges',NULL,NULL,1),(103,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','10','1501','Capital  et réserves',NULL,NULL,1),(104,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','CAPITAL','101','103','Capital',NULL,NULL,1),(105,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','104','103','Primes liées au capital social',NULL,NULL,1),(106,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','105','103','Ecarts de réévaluation',NULL,NULL,1),(107,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','106','103','Réserves',NULL,NULL,1),(108,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','107','103','Ecart d\'equivalence',NULL,NULL,1),(109,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','108','103','Compte de l\'exploitant',NULL,NULL,1),(110,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','109','103','Actionnaires : capital souscrit - non appelé',NULL,NULL,1),(111,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','11','1501','Report à nouveau (solde créditeur ou débiteur)',NULL,NULL,1),(112,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','110','111','Report à nouveau (solde créditeur)',NULL,NULL,1),(113,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','119','111','Report à nouveau (solde débiteur)',NULL,NULL,1),(114,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','12','1501','Résultat de l\'exercice (bénéfice ou perte)',NULL,NULL,1),(115,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','120','114','Résultat de l\'exercice (bénéfice)',NULL,NULL,1),(116,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','129','114','Résultat de l\'exercice (perte)',NULL,NULL,1),(117,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','13','1501','Subventions d\'investissement',NULL,NULL,1),(118,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','131','117','Subventions d\'équipement',NULL,NULL,1),(119,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','138','117','Autres subventions d\'investissement',NULL,NULL,1),(120,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','139','117','Subventions d\'investissement inscrites au compte de résultat',NULL,NULL,1),(121,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','14','1501','Provisions réglementées',NULL,NULL,1),(122,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','142','121','Provisions réglementées relatives aux immobilisations',NULL,NULL,1),(123,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','143','121','Provisions réglementées relatives aux stocks',NULL,NULL,1),(124,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','144','121','Provisions réglementées relatives aux autres éléments de l\'actif',NULL,NULL,1),(125,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','145','121','Amortissements dérogatoires',NULL,NULL,1),(126,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','146','121','Provision spéciale de réévaluation',NULL,NULL,1),(127,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','147','121','Plus-values réinvesties',NULL,NULL,1),(128,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','148','121','Autres provisions réglementées',NULL,NULL,1),(129,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','15','1501','Provisions pour risques et charges',NULL,NULL,1),(130,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','151','129','Provisions pour risques',NULL,NULL,1),(131,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','153','129','Provisions pour pensions et obligations similaires',NULL,NULL,1),(132,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','154','129','Provisions pour restructurations',NULL,NULL,1),(133,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','155','129','Provisions pour impôts',NULL,NULL,1),(134,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','156','129','Provisions pour renouvellement des immobilisations (entreprises concessionnaires)',NULL,NULL,1),(135,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','157','129','Provisions pour charges à répartir sur plusieurs exercices',NULL,NULL,1),(136,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','158','129','Autres provisions pour charges',NULL,NULL,1),(137,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','16','1501','Emprunts et dettes assimilees',NULL,NULL,1),(138,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','161','137','Emprunts obligataires convertibles',NULL,NULL,1),(139,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','163','137','Autres emprunts obligataires',NULL,NULL,1),(140,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','164','137','Emprunts auprès des établissements de crédit',NULL,NULL,1),(141,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','165','137','Dépôts et cautionnements reçus',NULL,NULL,1),(142,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','166','137','Participation des salariés aux résultats',NULL,NULL,1),(143,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','167','137','Emprunts et dettes assortis de conditions particulières',NULL,NULL,1),(144,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','168','137','Autres emprunts et dettes assimilées',NULL,NULL,1),(145,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','169','137','Primes de remboursement des obligations',NULL,NULL,1),(146,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','17','1501','Dettes rattachées à des participations',NULL,NULL,1),(147,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','171','146','Dettes rattachées à des participations (groupe)',NULL,NULL,1),(148,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','174','146','Dettes rattachées à des participations (hors groupe)',NULL,NULL,1),(149,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','178','146','Dettes rattachées à des sociétés en participation',NULL,NULL,1),(150,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','18','1501','Comptes de liaison des établissements et sociétés en participation',NULL,NULL,1),(151,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','181','150','Comptes de liaison des établissements',NULL,NULL,1),(152,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','186','150','Biens et prestations de services échangés entre établissements (charges)',NULL,NULL,1),(153,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','187','150','Biens et prestations de services échangés entre établissements (produits)',NULL,NULL,1),(154,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','188','150','Comptes de liaison des sociétés en participation',NULL,NULL,1),(155,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','20','1502','Immobilisations incorporelles',NULL,NULL,1),(156,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','201','155','Frais d\'établissement',NULL,NULL,1),(157,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','203','155','Frais de recherche et de développement',NULL,NULL,1),(158,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','205','155','Concessions et droits similaires, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',NULL,NULL,1),(159,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','206','155','Droit au bail',NULL,NULL,1),(160,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','207','155','Fonds commercial',NULL,NULL,1),(161,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','208','155','Autres immobilisations incorporelles',NULL,NULL,1),(162,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','21','1502','Immobilisations corporelles',NULL,NULL,1),(163,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','211','162','Terrains',NULL,NULL,1),(164,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','212','162','Agencements et aménagements de terrains',NULL,NULL,1),(165,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','213','162','Constructions',NULL,NULL,1),(166,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','214','162','Constructions sur sol d\'autrui',NULL,NULL,1),(167,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','215','162','Installations techniques, matériels et outillage industriels',NULL,NULL,1),(168,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','218','162','Autres immobilisations corporelles',NULL,NULL,1),(169,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','22','1502','Immobilisations mises en concession',NULL,NULL,1),(170,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','23','1502','Immobilisations en cours',NULL,NULL,1),(171,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','231','170','Immobilisations corporelles en cours',NULL,NULL,1),(172,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','232','170','Immobilisations incorporelles en cours',NULL,NULL,1),(173,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','237','170','Avances et acomptes versés sur immobilisations incorporelles',NULL,NULL,1),(174,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','238','170','Avances et acomptes versés sur commandes d\'immobilisations corporelles',NULL,NULL,1),(175,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','25','1502','Parts dans des entreprises liées et créances sur des entreprises liées',NULL,NULL,1),(176,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','26','1502','Participations et créances rattachées à des participations',NULL,NULL,1),(177,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','261','176','Titres de participation',NULL,NULL,1),(178,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','266','176','Autres formes de participation',NULL,NULL,1),(179,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','267','176','Créances rattachées à des participations',NULL,NULL,1),(180,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','268','176','Créances rattachées à des sociétés en participation',NULL,NULL,1),(181,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','269','176','Versements restant à effectuer sur titres de participation non libérés',NULL,NULL,1),(182,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','27','1502','Autres immobilisations financieres',NULL,NULL,1),(183,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','271','183','Titres immobilisés autres que les titres immobilisés de l\'activité de portefeuille (droit de propriété)',NULL,NULL,1),(184,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','272','183','Titres immobilisés (droit de créance)',NULL,NULL,1),(185,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','273','183','Titres immobilisés de l\'activité de portefeuille',NULL,NULL,1),(186,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','274','183','Prêts',NULL,NULL,1),(187,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','275','183','Dépôts et cautionnements versés',NULL,NULL,1),(188,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','276','183','Autres créances immobilisées',NULL,NULL,1),(189,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','277','183','(Actions propres ou parts propres)',NULL,NULL,1),(190,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','279','183','Versements restant à effectuer sur titres immobilisés non libérés',NULL,NULL,1),(191,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','28','1502','Amortissements des immobilisations',NULL,NULL,1),(192,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','280','191','Amortissements des immobilisations incorporelles',NULL,NULL,1),(193,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','281','191','Amortissements des immobilisations corporelles',NULL,NULL,1),(194,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','282','191','Amortissements des immobilisations mises en concession',NULL,NULL,1),(195,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','29','1502','Dépréciations des immobilisations',NULL,NULL,1),(196,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','290','195','Dépréciations des immobilisations incorporelles',NULL,NULL,1),(197,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','291','195','Dépréciations des immobilisations corporelles',NULL,NULL,1),(198,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','292','195','Dépréciations des immobilisations mises en concession',NULL,NULL,1),(199,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','293','195','Dépréciations des immobilisations en cours',NULL,NULL,1),(200,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','296','195','Provisions pour dépréciation des participations et créances rattachées à des participations',NULL,NULL,1),(201,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','297','195','Provisions pour dépréciation des autres immobilisations financières',NULL,NULL,1),(202,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','31','1503','Matières premières (et fournitures)',NULL,NULL,1),(203,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','311','202','Matières (ou groupe) A',NULL,NULL,1),(204,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','312','202','Matières (ou groupe) B',NULL,NULL,1),(205,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','317','202','Fournitures A, B, C,',NULL,NULL,1),(206,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','32','1503','Autres approvisionnements',NULL,NULL,1),(207,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','321','206','Matières consommables',NULL,NULL,1),(208,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','322','206','Fournitures consommables',NULL,NULL,1),(209,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','326','206','Emballages',NULL,NULL,1),(210,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','33','1503','En-cours de production de biens',NULL,NULL,1),(211,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','331','210','Produits en cours',NULL,NULL,1),(212,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','335','210','Travaux en cours',NULL,NULL,1),(213,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','34','1503','En-cours de production de services',NULL,NULL,1),(214,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','341','213','Etudes en cours',NULL,NULL,1),(215,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','345','213','Prestations de services en cours',NULL,NULL,1),(216,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','35','1503','Stocks de produits',NULL,NULL,1),(217,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','351','216','Produits intermédiaires',NULL,NULL,1),(218,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','355','216','Produits finis',NULL,NULL,1),(219,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','358','216','Produits résiduels (ou matières de récupération)',NULL,NULL,1),(220,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','37','1503','Stocks de marchandises',NULL,NULL,1),(221,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','371','220','Marchandises (ou groupe) A',NULL,NULL,1),(222,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','372','220','Marchandises (ou groupe) B',NULL,NULL,1),(223,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','39','1503','Provisions pour dépréciation des stocks et en-cours',NULL,NULL,1),(224,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','391','223','Provisions pour dépréciation des matières premières',NULL,NULL,1),(225,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','392','223','Provisions pour dépréciation des autres approvisionnements',NULL,NULL,1),(226,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','393','223','Provisions pour dépréciation des en-cours de production de biens',NULL,NULL,1),(227,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','394','223','Provisions pour dépréciation des en-cours de production de services',NULL,NULL,1),(228,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','395','223','Provisions pour dépréciation des stocks de produits',NULL,NULL,1),(229,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','397','223','Provisions pour dépréciation des stocks de marchandises',NULL,NULL,1),(230,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','40','1504','Fournisseurs et Comptes rattachés',NULL,NULL,1),(231,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','400','230','Fournisseurs et Comptes rattachés',NULL,NULL,1),(232,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','SUPPLIER','401','230','Fournisseurs',NULL,NULL,1),(233,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','403','230','Fournisseurs - Effets à payer',NULL,NULL,1),(234,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','404','230','Fournisseurs d\'immobilisations',NULL,NULL,1),(235,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','405','230','Fournisseurs d\'immobilisations - Effets à payer',NULL,NULL,1),(236,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','408','230','Fournisseurs - Factures non parvenues',NULL,NULL,1),(237,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','409','230','Fournisseurs débiteurs',NULL,NULL,1),(238,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','41','1504','Clients et comptes rattachés',NULL,NULL,1),(239,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','410','238','Clients et Comptes rattachés',NULL,NULL,1),(240,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','CUSTOMER','411','238','Clients',NULL,NULL,1),(241,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','413','238','Clients - Effets à recevoir',NULL,NULL,1),(242,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','416','238','Clients douteux ou litigieux',NULL,NULL,1),(243,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','418','238','Clients - Produits non encore facturés',NULL,NULL,1),(244,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','419','238','Clients créditeurs',NULL,NULL,1),(245,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','42','1504','Personnel et comptes rattachés',NULL,NULL,1),(246,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','421','245','Personnel - Rémunérations dues',NULL,NULL,1),(247,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','422','245','Comités d\'entreprises, d\'établissement, ...',NULL,NULL,1),(248,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','424','245','Participation des salariés aux résultats',NULL,NULL,1),(249,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','425','245','Personnel - Avances et acomptes',NULL,NULL,1),(250,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','426','245','Personnel - Dépôts',NULL,NULL,1),(251,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','427','245','Personnel - Oppositions',NULL,NULL,1),(252,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','428','245','Personnel - Charges à payer et produits à recevoir',NULL,NULL,1),(253,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','43','1504','Sécurité sociale et autres organismes sociaux',NULL,NULL,1),(254,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','431','253','Sécurité sociale',NULL,NULL,1),(255,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','437','253','Autres organismes sociaux',NULL,NULL,1),(256,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','438','253','Organismes sociaux - Charges à payer et produits à recevoir',NULL,NULL,1),(257,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','44','1504','État et autres collectivités publiques',NULL,NULL,1),(258,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','441','257','État - Subventions à recevoir',NULL,NULL,1),(259,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','442','257','Etat - Impôts et taxes recouvrables sur des tiers',NULL,NULL,1),(260,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','443','257','Opérations particulières avec l\'Etat, les collectivités publiques, les organismes internationaux',NULL,NULL,1),(261,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','444','257','Etat - Impôts sur les bénéfices',NULL,NULL,1),(262,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','445','257','Etat - Taxes sur le chiffre d\'affaires',NULL,NULL,1),(263,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','446','257','Obligations cautionnées',NULL,NULL,1),(264,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','447','257','Autres impôts, taxes et versements assimilés',NULL,NULL,1),(265,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','448','257','Etat - Charges à payer et produits à recevoir',NULL,NULL,1),(266,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','449','257','Quotas d\'émission à restituer à l\'Etat',NULL,NULL,1),(267,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','45','1504','Groupe et associes',NULL,NULL,1),(268,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','451','267','Groupe',NULL,NULL,1),(269,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','455','267','Associés - Comptes courants',NULL,NULL,1),(270,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','456','267','Associés - Opérations sur le capital',NULL,NULL,1),(271,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','457','267','Associés - Dividendes à payer',NULL,NULL,1),(272,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','458','267','Associés - Opérations faites en commun et en G.I.E.',NULL,NULL,1),(273,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','46','1504','Débiteurs divers et créditeurs divers',NULL,NULL,1),(274,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','462','273','Créances sur cessions d\'immobilisations',NULL,NULL,1),(275,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','464','273','Dettes sur acquisitions de valeurs mobilières de placement',NULL,NULL,1),(276,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','465','273','Créances sur cessions de valeurs mobilières de placement',NULL,NULL,1),(277,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','467','273','Autres comptes débiteurs ou créditeurs',NULL,NULL,1),(278,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','468','273','Divers - Charges à payer et produits à recevoir',NULL,NULL,1),(279,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','47','1504','Comptes transitoires ou d\'attente',NULL,NULL,1),(280,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','471','279','Comptes d\'attente',NULL,NULL,1),(281,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','476','279','Différence de conversion - Actif',NULL,NULL,1),(282,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','477','279','Différences de conversion - Passif',NULL,NULL,1),(283,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','478','279','Autres comptes transitoires',NULL,NULL,1),(284,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','48','1504','Comptes de régularisation',NULL,NULL,1),(285,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','481','284','Charges à répartir sur plusieurs exercices',NULL,NULL,1),(286,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','486','284','Charges constatées d\'avance',NULL,NULL,1),(287,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','487','284','Produits constatés d\'avance',NULL,NULL,1),(288,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','488','284','Comptes de répartition périodique des charges et des produits',NULL,NULL,1),(289,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','489','284','Quotas d\'émission alloués par l\'Etat',NULL,NULL,1),(290,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','49','1504','Provisions pour dépréciation des comptes de tiers',NULL,NULL,1),(291,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','491','290','Provisions pour dépréciation des comptes de clients',NULL,NULL,1),(292,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','495','290','Provisions pour dépréciation des comptes du groupe et des associés',NULL,NULL,1),(293,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','496','290','Provisions pour dépréciation des comptes de débiteurs divers',NULL,NULL,1),(294,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','50','1505','Valeurs mobilières de placement',NULL,NULL,1),(295,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','501','294','Parts dans des entreprises liées',NULL,NULL,1),(296,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','502','294','Actions propres',NULL,NULL,1),(297,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','503','294','Actions',NULL,NULL,1),(298,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','504','294','Autres titres conférant un droit de propriété',NULL,NULL,1),(299,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','505','294','Obligations et bons émis par la société et rachetés par elle',NULL,NULL,1),(300,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','506','294','Obligations',NULL,NULL,1),(301,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','507','294','Bons du Trésor et bons de caisse à court terme',NULL,NULL,1),(302,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','508','294','Autres valeurs mobilières de placement et autres créances assimilées',NULL,NULL,1),(303,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','509','294','Versements restant à effectuer sur valeurs mobilières de placement non libérées',NULL,NULL,1),(304,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','51','1505','Banques, établissements financiers et assimilés',NULL,NULL,1),(305,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','511','304','Valeurs à l\'encaissement',NULL,NULL,1),(306,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','BANK','512','304','Banques',NULL,NULL,1),(307,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','514','304','Chèques postaux',NULL,NULL,1),(308,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','515','304','Caisses du Trésor et des établissements publics',NULL,NULL,1),(309,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','516','304','Sociétés de bourse',NULL,NULL,1),(310,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','517','304','Autres organismes financiers',NULL,NULL,1),(311,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','518','304','Intérêts courus',NULL,NULL,1),(312,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','519','304','Concours bancaires courants',NULL,NULL,1),(313,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','52','1505','Instruments de trésorerie',NULL,NULL,1),(314,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','CASH','53','1505','Caisse',NULL,NULL,1),(315,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','531','314','Caisse siège social',NULL,NULL,1),(316,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','532','314','Caisse succursale (ou usine) A',NULL,NULL,1),(317,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','533','314','Caisse succursale (ou usine) B',NULL,NULL,1),(318,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','54','1505','Régies d\'avance et accréditifs',NULL,NULL,1),(319,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','58','1505','Virements internes',NULL,NULL,1),(320,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','59','1505','Provisions pour dépréciation des comptes financiers',NULL,NULL,1),(321,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','590','320','Provisions pour dépréciation des valeurs mobilières de placement',NULL,NULL,1),(322,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','PRODUCT','60','1506','Achats',NULL,NULL,1),(323,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','601','322','Achats stockés - Matières premières (et fournitures)',NULL,NULL,1),(324,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','602','322','Achats stockés - Autres approvisionnements',NULL,NULL,1),(325,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','603','322','Variations des stocks (approvisionnements et marchandises)',NULL,NULL,1),(326,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','604','322','Achats stockés - Matières premières (et fournitures)',NULL,NULL,1),(327,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','605','322','Achats de matériel, équipements et travaux',NULL,NULL,1),(328,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','606','322','Achats non stockés de matière et fournitures',NULL,NULL,1),(329,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','607','322','Achats de marchandises',NULL,NULL,1),(330,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','608','322','(Compte réservé, le cas échéant, à la récapitulation des frais accessoires incorporés aux achats)',NULL,NULL,1),(331,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','609','322','Rabais, remises et ristournes obtenus sur achats',NULL,NULL,1),(332,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','SERVICE','61','1506','Services extérieurs',NULL,NULL,1),(333,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','611','332','Sous-traitance générale',NULL,NULL,1),(334,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','612','332','Redevances de crédit-bail',NULL,NULL,1),(335,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','613','332','Locations',NULL,NULL,1),(336,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','614','332','Charges locatives et de copropriété',NULL,NULL,1),(337,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','615','332','Entretien et réparations',NULL,NULL,1),(338,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','616','332','Primes d\'assurances',NULL,NULL,1),(339,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','617','332','Etudes et recherches',NULL,NULL,1),(340,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','618','332','Divers',NULL,NULL,1),(341,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','619','332','Rabais, remises et ristournes obtenus sur services extérieurs',NULL,NULL,1),(342,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','62','1506','Autres services extérieurs',NULL,NULL,1),(343,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','621','342','Personnel extérieur à l\'entreprise',NULL,NULL,1),(344,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','622','342','Rémunérations d\'intermédiaires et honoraires',NULL,NULL,1),(345,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','623','342','Publicité, publications, relations publiques',NULL,NULL,1),(346,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','624','342','Transports de biens et transports collectifs du personnel',NULL,NULL,1),(347,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','625','342','Déplacements, missions et réceptions',NULL,NULL,1),(348,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','626','342','Frais postaux et de télécommunications',NULL,NULL,1),(349,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','627','342','Services bancaires et assimilés',NULL,NULL,1),(350,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','628','342','Divers',NULL,NULL,1),(351,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','629','342','Rabais, remises et ristournes obtenus sur autres services extérieurs',NULL,NULL,1),(352,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','63','1506','Impôts, taxes et versements assimilés',NULL,NULL,1),(353,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','631','352','Impôts, taxes et versements assimilés sur rémunérations (administrations des impôts)',NULL,NULL,1),(354,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','633','352','Impôts, taxes et versements assimilés sur rémunérations (autres organismes)',NULL,NULL,1),(355,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','635','352','Autres impôts, taxes et versements assimilés (administrations des impôts)',NULL,NULL,1),(356,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','637','352','Autres impôts, taxes et versements assimilés (autres organismes)',NULL,NULL,1),(357,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','64','1506','Charges de personnel',NULL,NULL,1),(358,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','641','357','Rémunérations du personnel',NULL,NULL,1),(359,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','644','357','Rémunération du travail de l\'exploitant',NULL,NULL,1),(360,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','SOCIAL','645','357','Charges de sécurité sociale et de prévoyance',NULL,NULL,1),(361,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','646','357','Cotisations sociales personnelles de l\'exploitant',NULL,NULL,1),(362,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','647','357','Autres charges sociales',NULL,NULL,1),(363,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','648','357','Autres charges de personnel',NULL,NULL,1),(364,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','65','1506','Autres charges de gestion courante',NULL,NULL,1),(365,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','651','364','Redevances pour concessions, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',NULL,NULL,1),(366,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','653','364','Jetons de présence',NULL,NULL,1),(367,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','654','364','Pertes sur créances irrécouvrables',NULL,NULL,1),(368,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','655','364','Quote-part de résultat sur opérations faites en commun',NULL,NULL,1),(369,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','658','364','Charges diverses de gestion courante',NULL,NULL,1),(370,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','66','1506','Charges financières',NULL,NULL,1),(371,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','661','370','Charges d\'intérêts',NULL,NULL,1),(372,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','664','370','Pertes sur créances liées à des participations',NULL,NULL,1),(373,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','665','370','Escomptes accordés',NULL,NULL,1),(374,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','666','370','Pertes de change',NULL,NULL,1),(375,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','667','370','Charges nettes sur cessions de valeurs mobilières de placement',NULL,NULL,1),(376,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','668','370','Autres charges financières',NULL,NULL,1),(377,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','67','1506','Charges exceptionnelles',NULL,NULL,1),(378,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','671','377','Charges exceptionnelles sur opérations de gestion',NULL,NULL,1),(379,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','672','377','(Compte à la disposition des entités pour enregistrer, en cours d\'exercice, les charges sur exercices antérieurs)',NULL,NULL,1),(380,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','675','377','Valeurs comptables des éléments d\'actif cédés',NULL,NULL,1),(381,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','678','377','Autres charges exceptionnelles',NULL,NULL,1),(382,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','68','1506','Dotations aux amortissements et aux provisions',NULL,NULL,1),(383,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','681','382','Dotations aux amortissements et aux provisions - Charges d\'exploitation',NULL,NULL,1),(384,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','686','382','Dotations aux amortissements et aux provisions - Charges financières',NULL,NULL,1),(385,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','687','382','Dotations aux amortissements et aux provisions - Charges exceptionnelles',NULL,NULL,1),(386,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','69','1506','Participation des salariés - impôts sur les bénéfices et assimiles',NULL,NULL,1),(387,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','691','386','Participation des salariés aux résultats',NULL,NULL,1),(388,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','695','386','Impôts sur les bénéfices',NULL,NULL,1),(389,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','696','386','Suppléments d\'impôt sur les sociétés liés aux distributions',NULL,NULL,1),(390,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','697','386','Imposition forfaitaire annuelle des sociétés',NULL,NULL,1),(391,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','698','386','Intégration fiscale',NULL,NULL,1),(392,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','699','386','Produits - Reports en arrière des déficits',NULL,NULL,1),(393,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','70','1507','Ventes de produits fabriqués, prestations de services, marchandises',NULL,NULL,1),(394,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','PRODUCT','701','393','Ventes de produits finis',NULL,NULL,1),(395,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','702','393','Ventes de produits intermédiaires',NULL,NULL,1),(396,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','703','393','Ventes de produits résiduels',NULL,NULL,1),(397,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','704','393','Travaux',NULL,NULL,1),(398,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','705','393','Etudes',NULL,NULL,1),(399,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','SERVICE','706','393','Prestations de services',NULL,NULL,1),(400,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','PRODUCT','707','393','Ventes de marchandises',NULL,NULL,1),(401,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','PRODUCT','708','393','Produits des activités annexes',NULL,NULL,1),(402,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','709','393','Rabais, remises et ristournes accordés par l\'entreprise',NULL,NULL,1),(403,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','71','1507','Production stockée (ou déstockage)',NULL,NULL,1),(404,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','713','403','Variation des stocks (en-cours de production, produits)',NULL,NULL,1),(405,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','72','1507','Production immobilisée',NULL,NULL,1),(406,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','721','405','Immobilisations incorporelles',NULL,NULL,1),(407,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','722','405','Immobilisations corporelles',NULL,NULL,1),(408,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','74','1507','Subventions d\'exploitation',NULL,NULL,1),(409,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','75','1507','Autres produits de gestion courante',NULL,NULL,1),(410,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','751','409','Redevances pour concessions, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires',NULL,NULL,1),(411,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','752','409','Revenus des immeubles non affectés à des activités professionnelles',NULL,NULL,1),(412,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','753','409','Jetons de présence et rémunérations d\'administrateurs, gérants,...',NULL,NULL,1),(413,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','754','409','Ristournes perçues des coopératives (provenant des excédents)',NULL,NULL,1),(414,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','755','409','Quotes-parts de résultat sur opérations faites en commun',NULL,NULL,1),(415,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','758','409','Produits divers de gestion courante',NULL,NULL,1),(416,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','76','1507','Produits financiers',NULL,NULL,1),(417,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','761','416','Produits de participations',NULL,NULL,1),(418,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','762','416','Produits des autres immobilisations financières',NULL,NULL,1),(419,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','763','416','Revenus des autres créances',NULL,NULL,1),(420,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','764','416','Revenus des valeurs mobilières de placement',NULL,NULL,1),(421,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','765','416','Escomptes obtenus',NULL,NULL,1),(422,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','766','416','Gains de change',NULL,NULL,1),(423,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','767','416','Produits nets sur cessions de valeurs mobilières de placement',NULL,NULL,1),(424,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','768','416','Autres produits financiers',NULL,NULL,1),(425,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','77','1507','Produits exceptionnels',NULL,NULL,1),(426,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','771','425','Produits exceptionnels sur opérations de gestion',NULL,NULL,1),(427,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','772','425','(Compte à la disposition des entités pour enregistrer, en cours d\'exercice, les produits sur exercices antérieurs)',NULL,NULL,1),(428,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','775','425','Produits des cessions d\'éléments d\'actif',NULL,NULL,1),(429,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','777','425','Quote-part des subventions d\'investissement virée au résultat de l\'exercice',NULL,NULL,1),(430,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','778','425','Autres produits exceptionnels',NULL,NULL,1),(431,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','78','1507','Reprises sur amortissements et provisions',NULL,NULL,1),(432,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','781','431','Reprises sur amortissements et provisions (à inscrire dans les produits d\'exploitation)',NULL,NULL,1),(433,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','786','431','Reprises sur provisions pour risques (à inscrire dans les produits financiers)',NULL,NULL,1),(434,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','787','431','Reprises sur provisions (à inscrire dans les produits exceptionnels)',NULL,NULL,1),(435,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','79','1507','Transferts de charges',NULL,NULL,1),(436,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','791','435','Transferts de charges d\'exploitation ',NULL,NULL,1),(437,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','796','435','Transferts de charges financières',NULL,NULL,1),(438,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','797','435','Transferts de charges exceptionnelles',NULL,NULL,1),(439,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','10','1351','Capital',NULL,NULL,1),(440,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','100','439','Capital souscrit ou capital personnel',NULL,NULL,1),(441,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1000','440','Capital non amorti',NULL,NULL,1),(442,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1001','440','Capital amorti',NULL,NULL,1),(443,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','101','439','Capital non appelé',NULL,NULL,1),(444,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','109','439','Compte de l\'exploitant',NULL,NULL,1),(445,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1090','444','Opérations courantes',NULL,NULL,1),(446,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1091','444','Impôts personnels',NULL,NULL,1),(447,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1092','444','Rémunérations et autres avantages',NULL,NULL,1),(448,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','11','1351','Primes d\'émission',NULL,NULL,1),(449,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','12','1351','Plus-values de réévaluation',NULL,NULL,1),(450,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','120','449','Plus-values de réévaluation sur immobilisations incorporelles',NULL,NULL,1),(451,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1200','450','Plus-values de réévaluation',NULL,NULL,1),(452,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1201','450','Reprises de réductions de valeur',NULL,NULL,1),(453,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','121','449','Plus-values de réévaluation sur immobilisations corporelles',NULL,NULL,1),(454,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1210','453','Plus-values de réévaluation',NULL,NULL,1),(455,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1211','453','Reprises de réductions de valeur',NULL,NULL,1),(456,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','122','449','Plus-values de réévaluation sur immobilisations financières',NULL,NULL,1),(457,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1220','456','Plus-values de réévaluation',NULL,NULL,1),(458,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1221','456','Reprises de réductions de valeur',NULL,NULL,1),(459,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','123','449','Plus-values de réévaluation sur stocks',NULL,NULL,1),(460,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','124','449','Reprises de réductions de valeur sur placements de trésorerie',NULL,NULL,1),(461,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','13','1351','Réserve',NULL,NULL,1),(462,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','130','461','Réserve légale',NULL,NULL,1),(463,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','131','461','Réserves indisponibles',NULL,NULL,1),(464,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1310','463','Réserve pour actions propres',NULL,NULL,1),(465,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1311','463','Autres réserves indisponibles',NULL,NULL,1),(466,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','132','461','Réserves immunisées',NULL,NULL,1),(467,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','133','461','Réserves disponibles',NULL,NULL,1),(468,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1330','467','Réserve pour régularisation de dividendes',NULL,NULL,1),(469,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1331','467','Réserve pour renouvellement des immobilisations',NULL,NULL,1),(470,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1332','467','Réserve pour installations en faveur du personnel 1333 Réserves libres',NULL,NULL,1),(471,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','14','1351','Bénéfice reporté (ou perte reportée)',NULL,NULL,1),(472,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','15','1351','Subsides en capital',NULL,NULL,1),(473,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','150','472','Montants obtenus',NULL,NULL,1),(474,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','151','472','Montants transférés aux résultats',NULL,NULL,1),(475,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','16','1351','Provisions pour risques et charges',NULL,NULL,1),(476,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','160','475','Provisions pour pensions et obligations similaires',NULL,NULL,1),(477,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','161','475','Provisions pour charges fiscales',NULL,NULL,1),(478,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','162','475','Provisions pour grosses réparations et gros entretiens',NULL,NULL,1),(479,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','163','475','à 169 Provisions pour autres risques et charges',NULL,NULL,1),(480,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','164','475','Provisions pour sûretés personnelles ou réelles constituées à l\'appui de dettes et d\'engagements de tiers',NULL,NULL,1),(481,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','165','475','Provisions pour engagements relatifs à l\'acquisition ou à la cession d\'immobilisations',NULL,NULL,1),(482,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','166','475','Provisions pour exécution de commandes passées ou reçues',NULL,NULL,1),(483,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','167','475','Provisions pour positions et marchés à terme en devises ou positions et marchés à terme en marchandises',NULL,NULL,1),(484,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','168','475','Provisions pour garanties techniques attachées aux ventes et prestations déjà effectuées par l\'entreprise',NULL,NULL,1),(485,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','169','475','Provisions pour autres risques et charges',NULL,NULL,1),(486,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1690','485','Pour litiges en cours',NULL,NULL,1),(487,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1691','485','Pour amendes, doubles droits et pénalités',NULL,NULL,1),(488,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1692','485','Pour propre assureur',NULL,NULL,1),(489,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1693','485','Pour risques inhérents aux opérations de crédits à moyen ou long terme',NULL,NULL,1),(490,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1695','485','Provision pour charge de liquidation',NULL,NULL,1),(491,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1696','485','Provision pour départ de personnel',NULL,NULL,1),(492,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1699','485','Pour risques divers',NULL,NULL,1),(493,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17','1351','Dettes à plus d\'un an',NULL,NULL,1),(494,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','170','493','Emprunts subordonnés',NULL,NULL,1),(495,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1700','494','Convertibles',NULL,NULL,1),(496,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1701','494','Non convertibles',NULL,NULL,1),(497,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','171','493','Emprunts obligataires non subordonnés',NULL,NULL,1),(498,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1710','498','Convertibles',NULL,NULL,1),(499,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1711','498','Non convertibles',NULL,NULL,1),(500,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','172','493','Dettes de location-financement et assimilés',NULL,NULL,1),(501,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1720','500','Dettes de location-financement de biens immobiliers',NULL,NULL,1),(502,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1721','500','Dettes de location-financement de biens mobiliers',NULL,NULL,1),(503,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1722','500','Dettes sur droits réels sur immeubles',NULL,NULL,1),(504,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','173','493','Etablissements de crédit',NULL,NULL,1),(505,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1730','504','Dettes en compte',NULL,NULL,1),(506,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17300','505','Banque A',NULL,NULL,1),(507,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17301','505','Banque B',NULL,NULL,1),(508,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17302','505','Banque C',NULL,NULL,1),(509,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17303','505','Banque D',NULL,NULL,1),(510,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1731','504','Promesses',NULL,NULL,1),(511,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17310','510','Banque A',NULL,NULL,1),(512,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17311','510','Banque B',NULL,NULL,1),(513,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17312','510','Banque C',NULL,NULL,1),(514,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17313','510','Banque D',NULL,NULL,1),(515,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1732','504','Crédits d\'acceptation',NULL,NULL,1),(516,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17320','515','Banque A',NULL,NULL,1),(517,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17321','515','Banque B',NULL,NULL,1),(518,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17322','515','Banque C',NULL,NULL,1),(519,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17323','515','Banque D',NULL,NULL,1),(520,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','174','493','Autres emprunts',NULL,NULL,1),(521,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175','493','Dettes commerciales',NULL,NULL,1),(522,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1750','521','Fournisseurs : dettes en compte',NULL,NULL,1),(523,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17500','522','Entreprises apparentées',NULL,NULL,1),(524,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175000','523','Entreprises liées',NULL,NULL,1),(525,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175001','523','Entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(526,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17501','522','Fournisseurs ordinaires',NULL,NULL,1),(527,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175010','526','Fournisseurs belges',NULL,NULL,1),(528,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175011','526','Fournisseurs C.E.E.',NULL,NULL,1),(529,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175012','526','Fournisseurs importation',NULL,NULL,1),(530,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1751','521','Effets à payer',NULL,NULL,1),(531,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17510','530','Entreprises apparentées',NULL,NULL,1),(532,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175100','531','Entreprises liées',NULL,NULL,1),(533,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175101','531','Entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(534,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','17511','530','Fournisseurs ordinaires',NULL,NULL,1),(535,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175110','534','Fournisseurs belges',NULL,NULL,1),(536,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175111','534','Fournisseurs C.E.E.',NULL,NULL,1),(537,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','175112','534','Fournisseurs importation',NULL,NULL,1),(538,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','176','493','Acomptes reçus sur commandes',NULL,NULL,1),(539,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','178','493','Cautionnements reçus en numéraires',NULL,NULL,1),(540,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','179','493','Dettes diverses',NULL,NULL,1),(541,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1790','540','Entreprises liées',NULL,NULL,1),(542,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1791','540','Autres entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(543,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1792','540','Administrateurs, gérants et associés',NULL,NULL,1),(544,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1794','540','Rentes viagères capitalisées',NULL,NULL,1),(545,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1798','540','Dettes envers les coparticipants des associations momentanées et en participation',NULL,NULL,1),(546,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1799','540','Autres dettes diverses',NULL,NULL,1),(547,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','18','1351','Comptes de liaison des établissements et succursales',NULL,NULL,1),(548,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','20','1352','Frais d\'établissement',NULL,NULL,1),(549,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','200','548','Frais de constitution et d\'augmentation de capital',NULL,NULL,1),(550,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2000','549','Frais de constitution et d\'augmentation de capital',NULL,NULL,1),(551,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2009','549','Amortissements sur frais de constitution et d\'augmentation de capital',NULL,NULL,1),(552,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','201','548','Frais d\'émission d\'emprunts et primes de remboursement',NULL,NULL,1),(553,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2010','552','Agios sur emprunts et frais d\'émission d\'emprunts',NULL,NULL,1),(554,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2019','552','Amortissements sur agios sur emprunts et frais d\'émission d\'emprunts',NULL,NULL,1),(555,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','202','548','Autres frais d\'établissement',NULL,NULL,1),(556,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2020','555','Autres frais d\'établissement',NULL,NULL,1),(557,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2029','555','Amortissements sur autres frais d\'établissement',NULL,NULL,1),(558,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','203','548','Intérêts intercalaires',NULL,NULL,1),(559,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2030','558','Intérêts intercalaires',NULL,NULL,1),(560,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2039','558','Amortissements sur intérêts intercalaires',NULL,NULL,1),(561,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','204','548','Frais de restructuration',NULL,NULL,1),(562,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2040','561','Coût des frais de restructuration',NULL,NULL,1),(563,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2049','561','Amortissements sur frais de restructuration',NULL,NULL,1),(564,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','21','1352','Immobilisations incorporelles',NULL,NULL,1),(565,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','210','564','Frais de recherche et de développement',NULL,NULL,1),(566,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2100','565','Frais de recherche et de mise au point',NULL,NULL,1),(567,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2108','565','Plus-values actées sur frais de recherche et de mise au point',NULL,NULL,1),(568,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2109','565','Amortissements sur frais de recherche et de mise au point',NULL,NULL,1),(569,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','211','564','Concessions, brevets, licences, savoir-faire, marque et droits similaires',NULL,NULL,1),(570,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2110','569','Concessions, brevets, licences, marques, etc',NULL,NULL,1),(571,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2118','569','Plus-values actées sur concessions, etc',NULL,NULL,1),(572,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2119','569','Amortissements sur concessions, etc',NULL,NULL,1),(573,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','212','564','Goodwill',NULL,NULL,1),(574,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2120','573','Coût d\'acquisition',NULL,NULL,1),(575,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2128','573','Plus-values actées',NULL,NULL,1),(576,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2129','573','Amortissements sur goodwill',NULL,NULL,1),(577,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','213','564','Acomptes versés',NULL,NULL,1),(578,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22','1352','Terrains et constructions',NULL,NULL,1),(579,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','220','578','Terrains',NULL,NULL,1),(580,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2200','579','Terrains',NULL,NULL,1),(581,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2201','579','Frais d\'acquisition sur terrains',NULL,NULL,1),(582,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2208','579','Plus-values actées sur terrains',NULL,NULL,1),(583,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2209','579','Amortissements et réductions de valeur',NULL,NULL,1),(584,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22090','583','Amortissements sur frais d\'acquisition',NULL,NULL,1),(585,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22091','583','Réductions de valeur sur terrains',NULL,NULL,1),(586,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','221','578','Constructions',NULL,NULL,1),(587,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2210','586','Bâtiments industriels',NULL,NULL,1),(588,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2211','586','Bâtiments administratifs et commerciaux',NULL,NULL,1),(589,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2212','586','Autres bâtiments d\'exploitation',NULL,NULL,1),(590,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2213','586','Voies de transport et ouvrages d\'art',NULL,NULL,1),(591,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2215','586','Constructions sur sol d\'autrui',NULL,NULL,1),(592,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2216','586','Frais d\'acquisition sur constructions',NULL,NULL,1),(593,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2218','586','Plus-values actées',NULL,NULL,1),(594,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22180','593','Sur bâtiments industriels',NULL,NULL,1),(595,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22181','593','Sur bâtiments administratifs et commerciaux',NULL,NULL,1),(596,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22182','593','Sur autres bâtiments d\'exploitation',NULL,NULL,1),(597,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22184','593','Sur voies de transport et ouvrages d\'art',NULL,NULL,1),(598,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2219','586','Amortissements sur constructions',NULL,NULL,1),(599,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22190','598','Sur bâtiments industriels',NULL,NULL,1),(600,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22191','598','Sur bâtiments administratifs et commerciaux',NULL,NULL,1),(601,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22192','598','Sur autres bâtiments d\'exploitation',NULL,NULL,1),(602,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22194','598','Sur voies de transport et ouvrages d\'art',NULL,NULL,1),(603,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22195','598','Sur constructions sur sol d\'autrui',NULL,NULL,1),(604,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22196','598','Sur frais d\'acquisition sur constructions',NULL,NULL,1),(605,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','222','578','Terrains bâtis',NULL,NULL,1),(606,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2220','605','Valeur d\'acquisition',NULL,NULL,1),(607,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22200','606','Bâtiments industriels',NULL,NULL,1),(608,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22201','606','Bâtiments administratifs et commerciaux',NULL,NULL,1),(609,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22202','606','Autres bâtiments d\'exploitation',NULL,NULL,1),(610,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22203','606','Voies de transport et ouvrages d\'art',NULL,NULL,1),(611,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22204','606','Frais d\'acquisition des terrains à bâtir',NULL,NULL,1),(612,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2228','605','Plus-values actées',NULL,NULL,1),(613,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22280','612','Sur bâtiments industriels',NULL,NULL,1),(614,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22281','612','Sur bâtiments administratifs et commerciaux',NULL,NULL,1),(615,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22282','612','Sur autres bâtiments d\'exploitation',NULL,NULL,1),(616,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22283','612','Sur voies de transport et ouvrages d\'art',NULL,NULL,1),(617,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2229','605','Amortissements sur terrains bâtis',NULL,NULL,1),(618,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22290','617','Sur bâtiments industriels',NULL,NULL,1),(619,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22291','617','Sur bâtiments administratifs et commerciaux',NULL,NULL,1),(620,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22292','617','Sur autres bâtiments d\'exploitation',NULL,NULL,1),(621,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22293','617','Sur voies de transport et ouvrages d\'art',NULL,NULL,1),(622,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','22294','617','Sur frais d\'acquisition des terrains bâtis',NULL,NULL,1),(623,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','223','578','Autres droits réels sur des immeubles',NULL,NULL,1),(624,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2230','623','Valeur d\'acquisition',NULL,NULL,1),(625,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2238','623','Plus-values actées',NULL,NULL,1),(626,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2239','623','Amortissements',NULL,NULL,1),(627,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','23','1352','Installations, machines et outillages',NULL,NULL,1),(628,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','230','627','Installations',NULL,NULL,1),(629,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2300','628','Installations bâtiments industriels',NULL,NULL,1),(630,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2301','628','Installations bâtiments administratifs et commerciaux',NULL,NULL,1),(631,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2302','628','Installations bâtiments d\'exploitation',NULL,NULL,1),(632,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2303','628','Installations voies de transport et ouvrages d\'art',NULL,NULL,1),(633,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2300','628','Installation d\'eau',NULL,NULL,1),(634,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2301','628','Installation d\'électricité',NULL,NULL,1),(635,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2302','628','Installation de vapeur',NULL,NULL,1),(636,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2303','628','Installation de gaz',NULL,NULL,1),(637,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2304','628','Installation de chauffage',NULL,NULL,1),(638,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2305','628','Installation de conditionnement d\'air',NULL,NULL,1),(639,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2306','628','Installation de chargement',NULL,NULL,1),(640,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','231','627','Machines',NULL,NULL,1),(641,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2310','640','Division A',NULL,NULL,1),(642,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2311','640','Division B',NULL,NULL,1),(643,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2312','640','Division C',NULL,NULL,1),(644,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','237','627','Outillage',NULL,NULL,1),(645,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2370','644','Division A',NULL,NULL,1),(646,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2371','644','Division B',NULL,NULL,1),(647,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2372','644','Division C',NULL,NULL,1),(648,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','238','627','Plus-values actées',NULL,NULL,1),(649,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2380','648','Sur installations',NULL,NULL,1),(650,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2381','648','Sur machines',NULL,NULL,1),(651,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2382','648','Sur outillage',NULL,NULL,1),(652,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','239','627','Amortissements',NULL,NULL,1),(653,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2390','652','Sur installations',NULL,NULL,1),(654,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2391','652','Sur machines',NULL,NULL,1),(655,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2392','652','Sur outillage',NULL,NULL,1),(656,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24','1352','Mobilier et matériel roulant',NULL,NULL,1),(657,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','240','656','Mobilier',NULL,NULL,1),(658,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2400','656','Mobilier',NULL,NULL,1),(659,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24000','658','Mobilier des bâtiments industriels',NULL,NULL,1),(660,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24001','658','Mobilier des bâtiments administratifs et commerciaux',NULL,NULL,1),(661,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24002','658','Mobilier des autres bâtiments d\'exploitation',NULL,NULL,1),(662,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24003','658','Mobilier oeuvres sociales',NULL,NULL,1),(663,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2401','657','Matériel de bureau et de service social',NULL,NULL,1),(664,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24010','663','Des bâtiments industriels',NULL,NULL,1),(665,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24011','663','Des bâtiments administratifs et commerciaux',NULL,NULL,1),(666,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24012','663','Des autres bâtiments d\'exploitation',NULL,NULL,1),(667,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24013','663','Des oeuvres sociales',NULL,NULL,1),(668,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2408','657','Plus-values actées',NULL,NULL,1),(669,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24080','668','Plus-values actées sur mobilier',NULL,NULL,1),(670,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24081','668','Plus-values actées sur matériel de bureau et service social',NULL,NULL,1),(671,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2409','657','Amortissements',NULL,NULL,1),(672,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24090','671','Amortissements sur mobilier',NULL,NULL,1),(673,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24091','671','Amortissements sur matériel de bureau et service social',NULL,NULL,1),(674,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','241','656','Matériel roulant',NULL,NULL,1),(675,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2410','674','Matériel automobile',NULL,NULL,1),(676,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24100','675','Voitures',NULL,NULL,1),(677,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24105','675','Camions',NULL,NULL,1),(678,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2411','674','Matériel ferroviaire',NULL,NULL,1),(679,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2412','674','Matériel fluvial',NULL,NULL,1),(680,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2413','674','Matériel naval',NULL,NULL,1),(681,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2414','674','Matériel aérien',NULL,NULL,1),(682,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2418','674','Plus-values sur matériel roulant',NULL,NULL,1),(683,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24180','682','Plus-values sur matériel automobile',NULL,NULL,1),(684,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24181','682','Idem sur matériel ferroviaire',NULL,NULL,1),(685,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24182','682','Idem sur matériel fluvial',NULL,NULL,1),(686,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24183','682','Idem sur matériel naval',NULL,NULL,1),(687,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24184','682','Idem sur matériel aérien',NULL,NULL,1),(688,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2419','674','Amortissements sur matériel roulant',NULL,NULL,1),(689,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24190','688','Amortissements sur matériel automobile',NULL,NULL,1),(690,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24191','688','Idem sur matériel ferroviaire',NULL,NULL,1),(691,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24192','688','Idem sur matériel fluvial',NULL,NULL,1),(692,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24193','688','Idem sur matériel naval',NULL,NULL,1),(693,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','24194','688','Idem sur matériel aérien',NULL,NULL,1),(694,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','25','1352','Immobilisation détenues en location-financement et droits similaires',NULL,NULL,1),(695,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','250','694','Terrains et constructions',NULL,NULL,1),(696,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2500','695','Terrains',NULL,NULL,1),(697,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2501','695','Constructions',NULL,NULL,1),(698,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2508','695','Plus-values sur emphytéose,  leasing et droits similaires : terrains et constructions',NULL,NULL,1),(699,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2509','695','Amortissements et réductions de valeur sur terrains et constructions en leasing',NULL,NULL,1),(700,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','251','694','Installations,  machines et outillage',NULL,NULL,1),(701,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2510','700','Installations',NULL,NULL,1),(702,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2511','700','Machines',NULL,NULL,1),(703,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2512','700','Outillage',NULL,NULL,1),(704,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2518','700','Plus-values actées sur installations machines et outillage pris en leasing',NULL,NULL,1),(705,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2519','700','Amortissements sur installations machines et outillage pris en leasing',NULL,NULL,1),(706,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','252','694','Mobilier et matériel roulant',NULL,NULL,1),(707,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2520','706','Mobilier',NULL,NULL,1),(708,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2521','706','Matériel roulant',NULL,NULL,1),(709,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2528','706','Plus-values actées sur mobilier et matériel roulant en leasing',NULL,NULL,1),(710,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2529','706','Amortissements sur mobilier et matériel roulant en leasing',NULL,NULL,1),(711,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','26','1352','Autres immobilisations corporelles',NULL,NULL,1),(712,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','260','711','Frais d\'aménagements de locaux pris en location',NULL,NULL,1),(713,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','261','711','Maison d\'habitation',NULL,NULL,1),(714,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','262','711','Réserve immobilière',NULL,NULL,1),(715,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','263','711','Matériel d\'emballage',NULL,NULL,1),(716,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','264','711','Emballages récupérables',NULL,NULL,1),(717,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','268','711','Plus-values actées sur autres immobilisations corporelles',NULL,NULL,1),(718,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','269','711','Amortissements sur autres immobilisations corporelles',NULL,NULL,1),(719,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2690','718','Amortissements sur frais d\'aménagement des locaux pris en location',NULL,NULL,1),(720,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2691','718','Amortissements sur maison d\'habitation',NULL,NULL,1),(721,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2692','718','Amortissements sur réserve immobilière',NULL,NULL,1),(722,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2693','718','Amortissements sur matériel d\'emballage',NULL,NULL,1),(723,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2694','718','Amortissements sur emballages récupérables',NULL,NULL,1),(724,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','27','1352','Immobilisations corporelles en cours et acomptes versés',NULL,NULL,1),(725,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','270','724','Immobilisations en cours',NULL,NULL,1),(726,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2700','725','Constructions',NULL,NULL,1),(727,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2701','725','Installations machines et outillage',NULL,NULL,1),(728,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2702','725','Mobilier et matériel roulant',NULL,NULL,1),(729,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2703','725','Autres immobilisations corporelles',NULL,NULL,1),(730,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','271','724','Avances et acomptes versés sur immobilisations en cours',NULL,NULL,1),(731,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','28','1352','Immobilisations financières',NULL,NULL,1),(732,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','280','731','Participations dans des entreprises liées',NULL,NULL,1),(733,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2800','732','Valeur d\'acquisition (peut être subdivisé par participation)',NULL,NULL,1),(734,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2801','732','Montants non appelés (idem)',NULL,NULL,1),(735,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2808','732','Plus-values actées (idem)',NULL,NULL,1),(736,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2809','732','Réductions de valeurs actées (idem)',NULL,NULL,1),(737,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','281','731','Créances sur des entreprises liées',NULL,NULL,1),(738,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2810','737','Créances en compte',NULL,NULL,1),(739,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2811','737','Effets à recevoir',NULL,NULL,1),(740,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2812','737','Titres à revenu fixes',NULL,NULL,1),(741,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2817','737','Créances douteuses',NULL,NULL,1),(742,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2819','737','Réductions de valeurs actées',NULL,NULL,1),(743,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','282','731','Participations dans des entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(744,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2820','743','Valeur d\'acquisition (peut être subdivisé par participation)',NULL,NULL,1),(745,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2821','743','Montants non appelés (idem)',NULL,NULL,1),(746,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2828','743','Plus-values actées (idem)',NULL,NULL,1),(747,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2829','743','Réductions de valeurs actées (idem)',NULL,NULL,1),(748,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','283','731','Créances sur des entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(749,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2830','748','Créances en compte',NULL,NULL,1),(750,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2831','748','Effets à recevoir',NULL,NULL,1),(751,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2832','748','Titres à revenu fixe',NULL,NULL,1),(752,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2837','748','Créances douteuses',NULL,NULL,1),(753,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2839','748','Réductions de valeurs actées',NULL,NULL,1),(754,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','284','731','Autres actions et parts',NULL,NULL,1),(755,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2840','754','Valeur d\'acquisition',NULL,NULL,1),(756,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2841','754','Montants non appelés',NULL,NULL,1),(757,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2848','754','Plus-values actées',NULL,NULL,1),(758,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2849','754','Réductions de valeur actées',NULL,NULL,1),(759,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','285','731','Autres créances',NULL,NULL,1),(760,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2850','759','Créances en compte',NULL,NULL,1),(761,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2851','759','Effets à recevoir',NULL,NULL,1),(762,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2852','759','Titres à revenu fixe',NULL,NULL,1),(763,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2857','759','Créances douteuses',NULL,NULL,1),(764,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2859','759','Réductions de valeur actées',NULL,NULL,1),(765,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','288','731','Cautionnements versés en numéraires',NULL,NULL,1),(766,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2880','765','Téléphone, téléfax, télex',NULL,NULL,1),(767,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2881','765','Gaz',NULL,NULL,1),(768,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2882','765','Eau',NULL,NULL,1),(769,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2883','765','Electricité',NULL,NULL,1),(770,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2887','765','Autres cautionnements versés en numéraires',NULL,NULL,1),(771,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29','1352','Créances à plus d\'un an',NULL,NULL,1),(772,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','290','771','Créances commerciales',NULL,NULL,1),(773,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2900','772','Clients',NULL,NULL,1),(774,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29000','773','Créances en compte sur entreprises liées',NULL,NULL,1),(775,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29001','773','Sur entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(776,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29002','773','Sur clients Belgique',NULL,NULL,1),(777,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29003','773','Sur clients C.E.E.',NULL,NULL,1),(778,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29004','773','Sur clients exportation hors C.E.E.',NULL,NULL,1),(779,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29005','773','Créances sur les coparticipants (associations momentanées)',NULL,NULL,1),(780,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2901','772','Effets à recevoir',NULL,NULL,1),(781,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29010','780','Sur entreprises liées',NULL,NULL,1),(782,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29011','780','Sur entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(783,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29012','780','Sur clients Belgique',NULL,NULL,1),(784,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29013','780','Sur clients C.E.E.',NULL,NULL,1),(785,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29014','780','Sur clients exportation hors C.E.E.',NULL,NULL,1),(786,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2905','772','Retenues sur garanties',NULL,NULL,1),(787,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2906','772','Acomptes versés',NULL,NULL,1),(788,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2907','772','Créances douteuses (à ventiler comme clients 2900)',NULL,NULL,1),(789,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2909','772','Réductions de valeur actées (à ventiler comme clients 2900)',NULL,NULL,1),(790,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','291','771','Autres créances',NULL,NULL,1),(791,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2910','790','Créances en compte',NULL,NULL,1),(792,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29100','791','Sur entreprises liées',NULL,NULL,1),(793,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29101','791','Sur entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(794,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29102','791','Sur autres débiteurs',NULL,NULL,1),(795,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2911','790','Effets à recevoir',NULL,NULL,1),(796,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29110','795','Sur entreprises liées',NULL,NULL,1),(797,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29111','795','Sur entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(798,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','29112','795','Sur autres débiteurs',NULL,NULL,1),(799,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2912','790','Créances résultant de la cession d\'immobilisations données en leasing',NULL,NULL,1),(800,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2917','790','Créances douteuses',NULL,NULL,1),(801,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2919','790','Réductions de valeur actées',NULL,NULL,1),(802,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','30','1353','Approvisionnements - matières premières',NULL,NULL,1),(803,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','300','802','Valeur d\'acquisition',NULL,NULL,1),(804,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','309','802','Réductions de valeur actées',NULL,NULL,1),(805,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','31','1353','Approvsionnements et fournitures',NULL,NULL,1),(806,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','310','805','Valeur d\'acquisition',NULL,NULL,1),(807,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3100','806','Matières d\'approvisionnement',NULL,NULL,1),(808,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3101','806','Energie, charbon, coke, mazout, essence, propane',NULL,NULL,1),(809,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3102','806','Produits d\'entretien',NULL,NULL,1),(810,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3103','806','Fournitures diverses et petit outillage',NULL,NULL,1),(811,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3104','806','Imprimés et fournitures de bureau',NULL,NULL,1),(812,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3105','806','Fournitures de services sociaux',NULL,NULL,1),(813,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3106','806','Emballages commerciaux',NULL,NULL,1),(814,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','31060','813','Emballages perdus',NULL,NULL,1),(815,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','31061','813','Emballages récupérables',NULL,NULL,1),(816,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','319','805','Réductions de valeur actées',NULL,NULL,1),(817,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','32','1353','En cours de fabrication',NULL,NULL,1),(818,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','320','817','Valeur d\'acquisition',NULL,NULL,1),(819,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3200','818','Produits semi-ouvrés',NULL,NULL,1),(820,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3201','818','Produits en cours de fabrication',NULL,NULL,1),(821,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3202','818','Travaux en cours',NULL,NULL,1),(822,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3205','818','Déchets',NULL,NULL,1),(823,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3206','818','Rebuts',NULL,NULL,1),(824,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3209','818','Travaux en association momentanée',NULL,NULL,1),(825,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','329','817','Réductions de valeur actées',NULL,NULL,1),(826,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','33','1353','Produits finis',NULL,NULL,1),(827,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','330','826','Valeur d\'acquisition',NULL,NULL,1),(828,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3300','827','Produits finis',NULL,NULL,1),(829,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','339','826','Réductions de valeur actées',NULL,NULL,1),(830,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','34','1353','Marchandises',NULL,NULL,1),(831,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','340','830','Valeur d\'acquisition',NULL,NULL,1),(832,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3400','831','Groupe A',NULL,NULL,1),(833,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3401','831','Groupe B',NULL,NULL,1),(834,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3402','831','Groupe C',NULL,NULL,1),(835,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','349','830','Réductions de valeur actées',NULL,NULL,1),(836,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','35','1353','Immeubles destinés à la vente',NULL,NULL,1),(837,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','350','836','Valeur d\'acquisition',NULL,NULL,1),(838,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3500','837','Immeuble A',NULL,NULL,1),(839,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3501','837','Immeuble B',NULL,NULL,1),(840,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3502','837','Immeuble C',NULL,NULL,1),(841,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','351','836','Immeubles construits en vue de leur revente',NULL,NULL,1),(842,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3510','841','Immeuble A',NULL,NULL,1),(843,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3511','841','Immeuble B',NULL,NULL,1),(844,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3512','841','Immeuble C',NULL,NULL,1),(845,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','359','836','Réductions de valeurs actées',NULL,NULL,1),(846,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','36','1353','Acomptes versés sur achats pour stocks',NULL,NULL,1),(847,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','360','846','Acomptes versés (à ventiler éventuellement par catégorie)',NULL,NULL,1),(848,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','369','846','Réductions de valeur actées',NULL,NULL,1),(849,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','37','1353','Commandes en cours d\'exécution',NULL,NULL,1),(850,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','370','849','Valeur d\'acquisition',NULL,NULL,1),(851,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','371','849','Bénéfice pris en compte',NULL,NULL,1),(852,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','379','849','Réductions de valeur actées',NULL,NULL,1),(853,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','40','1354','Créances commerciales',NULL,NULL,1),(854,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','400','853','Clients',NULL,NULL,1),(855,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4007','854','Rabais, remises et  ristournes à accorder et autres notes de crédit à établir',NULL,NULL,1),(856,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4008','854','Créances résultant de livraisons de biens (associations momentanées)',NULL,NULL,1),(857,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','401','853','Effets à recevoir',NULL,NULL,1),(858,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4010','857','Effets à recevoir',NULL,NULL,1),(859,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4013','857','Effets à l\'encaissement',NULL,NULL,1),(860,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4015','857','Effets à l\'escompte',NULL,NULL,1),(861,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','402','853','Clients, créances courantes, entreprises apparentées, administrateurs et gérants',NULL,NULL,1),(862,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4020','861','Entreprises liées',NULL,NULL,1),(863,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4021','861','Autres entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(864,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4022','861','Administrateurs et gérants d\'entreprise',NULL,NULL,1),(865,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','403','853','Effets à recevoir sur entreprises apparentées et administrateurs et gérants',NULL,NULL,1),(866,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4030','865','Entreprises liées',NULL,NULL,1),(867,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4031','865','Autres entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(868,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4032','865','Administrateurs et gérants de l\'entreprise',NULL,NULL,1),(869,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','404','853','Produits à recevoir (factures à établir)',NULL,NULL,1),(870,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','405','853','Clients : retenues sur garanties',NULL,NULL,1),(871,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','406','853','Acomptes versés',NULL,NULL,1),(872,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','407','853','Créances douteuses',NULL,NULL,1),(873,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','408','853','Compensation clients',NULL,NULL,1),(874,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','409','853','Réductions de valeur actées',NULL,NULL,1),(875,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','41','1354','Autres créances',NULL,NULL,1),(876,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','410','875','Capital appelé, non versé',NULL,NULL,1),(877,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4100','876','Appels de fonds',NULL,NULL,1),(878,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4101','876','Actionnaires défaillants',NULL,NULL,1),(879,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','411','875','T.V.A. à récupérer',NULL,NULL,1),(880,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4110','879','T.V.A. due',NULL,NULL,1),(881,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4111','879','T.V.A. déductible',NULL,NULL,1),(882,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4112','879','Compte courant administration T.V.A.',NULL,NULL,1),(883,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4118','879','Taxe d\'égalisation due',NULL,NULL,1),(884,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','412','875','Impôts et versements fiscaux à récupérer',NULL,NULL,1),(885,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4120','884','Impôts belges sur le résultat',NULL,NULL,1),(886,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4125','884','Autres impôts belges',NULL,NULL,1),(887,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4128','884','Impôts étrangers',NULL,NULL,1),(888,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','414','875','Produits à recevoir',NULL,NULL,1),(889,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','416','875','Créances diverses',NULL,NULL,1),(890,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4160','889','Associés (compte d\'apport en société)',NULL,NULL,1),(891,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4161','889','Avances et prêts au personnel',NULL,NULL,1),(892,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4162','889','Compte courant des associés en S.P.R.L.',NULL,NULL,1),(893,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4163','889','Compte courant des administrateurs et gérants',NULL,NULL,1),(894,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4164','889','Créances sur sociétés apparentées',NULL,NULL,1),(895,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4166','889','Emballages et matériel à rendre',NULL,NULL,1),(896,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4167','889','Etat et établissements publics',NULL,NULL,1),(897,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','41670','896','Subsides à recevoir',NULL,NULL,1),(898,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','41671','896','Autres créances',NULL,NULL,1),(899,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4168','889','Rabais, ristournes et remises à obtenir et autres avoirs non encore reçus',NULL,NULL,1),(900,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','417','875','Créances douteuses',NULL,NULL,1),(901,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','418','875','Cautionnements versés en numéraires',NULL,NULL,1),(902,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','419','875','Réductions de valeur actées',NULL,NULL,1),(903,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','42','1354','Dettes à plus d\'un an échéant dans l\'année',NULL,NULL,1),(904,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','420','903','Emprunts subordonnés',NULL,NULL,1),(905,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4200','904','Convertibles',NULL,NULL,1),(906,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4201','904','Non convertibles',NULL,NULL,1),(907,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','421','903','Emprunts obligataires non subordonnés',NULL,NULL,1),(908,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4210','907','Convertibles',NULL,NULL,1),(909,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4211','907','Non convertibles',NULL,NULL,1),(910,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','422','903','Dettes de location-financement et assimilées',NULL,NULL,1),(911,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4220','910','Financement de biens immobiliers',NULL,NULL,1),(912,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4221','910','Financement de biens mobiliers',NULL,NULL,1),(913,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','423','903','Etablissements de crédit',NULL,NULL,1),(914,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4230','913','Dettes en compte',NULL,NULL,1),(915,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4231','913','Promesses',NULL,NULL,1),(916,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4232','913','Crédits d\'acceptation',NULL,NULL,1),(917,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','424','903','Autres emprunts',NULL,NULL,1),(918,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','425','903','Dettes commerciales',NULL,NULL,1),(919,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4250','918','Fournisseurs',NULL,NULL,1),(920,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4251','918','Effets à payer',NULL,NULL,1),(921,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','426','903','Cautionnements reçus en numéraires',NULL,NULL,1),(922,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','429','903','Dettes diverses',NULL,NULL,1),(923,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4290','922','Entreprises liées',NULL,NULL,1),(924,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4291','922','Entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(925,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4292','922','Administrateurs, gérants, associés',NULL,NULL,1),(926,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4299','922','Autres dettes',NULL,NULL,1),(927,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','43','1354','Dettes financières',NULL,NULL,1),(928,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','430','927','Etablissements de crédit. Emprunts en compte à terme fixe',NULL,NULL,1),(929,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','431','927','Etablissements de crédit. Promesses',NULL,NULL,1),(930,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','432','927','Etablissements de crédit. Crédits d\'acceptation',NULL,NULL,1),(931,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','433','927','Etablissements de crédit. Dettes en compte courant',NULL,NULL,1),(932,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','439','927','Autres emprunts',NULL,NULL,1),(933,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44','1354','Dettes commerciales',NULL,NULL,1),(934,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','440','933','Fournisseurs',NULL,NULL,1),(935,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4400','934','Entreprises apparentées',NULL,NULL,1),(936,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44000','935','Entreprises liées',NULL,NULL,1),(937,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44001','935','Entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(938,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4401','934','Fournisseurs ordinaires',NULL,NULL,1),(939,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44010','938','Fournisseurs belges',NULL,NULL,1),(940,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44011','938','Fournisseurs CEE',NULL,NULL,1),(941,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44012','938','Fournisseurs importation',NULL,NULL,1),(942,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4402','934','Dettes envers les coparticipants (associations momentanées)',NULL,NULL,1),(943,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4403','934','Fournisseurs - retenues de garanties',NULL,NULL,1),(944,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','441','933','Effets à payer',NULL,NULL,1),(945,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4410','944','Entreprises apparentées',NULL,NULL,1),(946,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44100','945','Entreprises liées',NULL,NULL,1),(947,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44101','945','Entreprises avec lesquelles il existe un lien de participation',NULL,NULL,1),(948,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4411','944','Fournisseurs ordinaires',NULL,NULL,1),(949,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44110','948','Fournisseurs belges',NULL,NULL,1),(950,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44111','948','Fournisseurs CEE',NULL,NULL,1),(951,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','44112','948','Fournisseurs importation',NULL,NULL,1),(952,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','444','933','Factures à recevoir',NULL,NULL,1),(953,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','446','933','Acomptes reçus',NULL,NULL,1),(954,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','448','933','Compensations fournisseurs',NULL,NULL,1),(955,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45','1354','Dettes fiscales, salariales et sociales',NULL,NULL,1),(956,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','450','955','Dettes fiscales estimées',NULL,NULL,1),(957,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4501','956','Impôts sur le résultat',NULL,NULL,1),(958,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4505','956','Autres impôts en Belgique',NULL,NULL,1),(959,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4508','956','Impôts à l\'étranger',NULL,NULL,1),(960,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','451','955','T.V.A. à payer',NULL,NULL,1),(961,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4510','960','T.V.A. due',NULL,NULL,1),(962,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4511','960','T.V.A. déductible',NULL,NULL,1),(963,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4512','960','Compte courant administration T.V.A.',NULL,NULL,1),(964,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4518','960','Taxe d\'égalisation due',NULL,NULL,1),(965,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','452','955','Impôts et taxes à payer',NULL,NULL,1),(966,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4520','965','Autres impôts sur le résultat',NULL,NULL,1),(967,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4525','965','Autres impôts et taxes en Belgique',NULL,NULL,1),(968,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45250','967','Précompte immobilier',NULL,NULL,1),(969,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45251','967','Impôts communaux à payer',NULL,NULL,1),(970,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45252','967','Impôts provinciaux à payer',NULL,NULL,1),(971,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45253','967','Autres impôts et taxes à payer',NULL,NULL,1),(972,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4528','965','Impôts et taxes à l\'étranger',NULL,NULL,1),(973,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','453','955','Précomptes retenus',NULL,NULL,1),(974,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4530','973','Précompte professionnel retenu sur rémunérations',NULL,NULL,1),(975,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4531','973','Précompte professionnel retenu sur tantièmes',NULL,NULL,1),(976,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4532','973','Précompte mobilier retenu sur dividendes attribués',NULL,NULL,1),(977,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4533','973','Précompte mobilier retenu sur intérêts payés',NULL,NULL,1),(978,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4538','973','Autres précomptes retenus',NULL,NULL,1),(979,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','454','955','Office National de la Sécurité Sociale',NULL,NULL,1),(980,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4540','979','Arriérés',NULL,NULL,1),(981,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4541','979','1er trimestre',NULL,NULL,1),(982,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4542','979','2ème trimestre',NULL,NULL,1),(983,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4543','979','3ème trimestre',NULL,NULL,1),(984,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4544','979','4ème trimestre',NULL,NULL,1),(985,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','455','955','Rémunérations',NULL,NULL,1),(986,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4550','985','Administrateurs,  gérants et commissaires (non réviseurs)',NULL,NULL,1),(987,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4551','985','Direction',NULL,NULL,1),(988,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4552','985','Employés',NULL,NULL,1),(989,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4553','985','Ouvriers',NULL,NULL,1),(990,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','456','955','Pécules de vacances',NULL,NULL,1),(991,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4560','990','Direction',NULL,NULL,1),(992,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4561','990','Employés',NULL,NULL,1),(993,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4562','990','Ouvriers',NULL,NULL,1),(994,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','459','955','Autres dettes sociales',NULL,NULL,1),(995,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4590','994','Provision pour gratifications de fin d\'année',NULL,NULL,1),(996,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4591','994','Départs de personnel',NULL,NULL,1),(997,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4592','994','Oppositions sur rémunérations',NULL,NULL,1),(998,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4593','994','Assurances relatives au personnel',NULL,NULL,1),(999,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45930','998','Assurance loi',NULL,NULL,1),(1000,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45931','998','Assurance salaire garanti',NULL,NULL,1),(1001,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45932','998','Assurance groupe',NULL,NULL,1),(1002,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','45933','998','Assurances individuelles',NULL,NULL,1),(1003,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4594','994','Caisse d\'assurances sociales pour travailleurs indépendants',NULL,NULL,1),(1004,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4597','994','Dettes et provisions sociales diverses',NULL,NULL,1),(1005,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','46','1354','Acomptes reçus sur commande',NULL,NULL,1),(1006,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','47','1354','Dettes découlant de l\'affectation des résultats',NULL,NULL,1),(1007,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','470','1006','Dividendes et tantièmes d\'exercices antérieurs',NULL,NULL,1),(1008,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','471','1006','Dividendes de l\'exercice',NULL,NULL,1),(1009,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','472','1006','Tantièmes de l\'exercice',NULL,NULL,1),(1010,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','473','1006','Autres allocataires',NULL,NULL,1),(1011,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','48','4','Dettes diverses',NULL,NULL,1),(1012,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','480','1011','Obligations et coupons échus',NULL,NULL,1),(1013,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','481','1011','Actionnaires - capital à rembourser',NULL,NULL,1),(1014,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','482','1011','Participation du personnel à payer',NULL,NULL,1),(1015,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','483','1011','Acomptes reçus d\'autres tiers à moins d\'un an',NULL,NULL,1),(1016,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','486','1011','Emballages et matériel consignés',NULL,NULL,1),(1017,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','488','1011','Cautionnements reçus en numéraires',NULL,NULL,1),(1018,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','489','1011','Autres dettes diverses',NULL,NULL,1),(1019,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49','1354','Comptes de régularisation et compte d\'attente',NULL,NULL,1),(1020,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','490','1019','Charges à reporter (à subdiviser par catégorie de charges)',NULL,NULL,1),(1021,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','491','1019','Produits acquis',NULL,NULL,1),(1022,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4910','1021','Produits d\'exploitation',NULL,NULL,1),(1023,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49100','1022','Ristournes et rabais à obtenir',NULL,NULL,1),(1024,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49101','1022','Commissions à obtenir',NULL,NULL,1),(1025,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49102','1022','Autres produits d\'exploitation (redevances par exemple)',NULL,NULL,1),(1026,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4911','1021','Produits financiers',NULL,NULL,1),(1027,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49110','1026','Intérêts courus et non échus sur prêts et débits',NULL,NULL,1),(1028,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','49111','1026','Autres produits financiers',NULL,NULL,1),(1029,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','492','1019','Charges à imputer (à subdiviser par catégorie de charges)',NULL,NULL,1),(1030,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','493','1019','Produits à reporter',NULL,NULL,1),(1031,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4930','1030','Produits d\'exploitation à reporter',NULL,NULL,1),(1032,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4931','1030','Produits financiers à reporter',NULL,NULL,1),(1033,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','499','1019','Comptes d\'attente',NULL,NULL,1),(1034,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4990','1033','Compte d\'attente',NULL,NULL,1),(1035,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4991','1033','Compte de répartition périodique des charges',NULL,NULL,1),(1036,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4999','1033','Transferts d\'exercice',NULL,NULL,1),(1037,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','50','1355','Actions propres',NULL,NULL,1),(1038,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','51','1355','Actions et parts',NULL,NULL,1),(1039,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','510','1038','Valeur d\'acquisition',NULL,NULL,1),(1040,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','511','1038','Montants non appelés',NULL,NULL,1),(1041,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','519','1038','Réductions de valeur actées',NULL,NULL,1),(1042,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','52','1355','Titres à revenus fixes',NULL,NULL,1),(1043,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','520','1042','Valeur d\'acquisition',NULL,NULL,1),(1044,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','529','1042','Réductions de valeur actées',NULL,NULL,1),(1045,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','53','1355','Dépots à terme',NULL,NULL,1),(1046,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','530','1045','De plus d\'un an',NULL,NULL,1),(1047,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','531','1045','De plus d\'un mois et à un an au plus',NULL,NULL,1),(1048,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','532','1045','d\'un mois au plus',NULL,NULL,1),(1049,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','539','1045','Réductions de valeur actées',NULL,NULL,1),(1050,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','54','1355','Valeurs échues à l\'encaissement',NULL,NULL,1),(1051,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','540','1050','Chèques à encaisser',NULL,NULL,1),(1052,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','541','1050','Coupons à encaisser',NULL,NULL,1),(1053,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','55','1355','Etablissements de crédit - Comptes ouverts auprès des divers établissements.',NULL,NULL,1),(1054,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','550','1053','Comptes courants',NULL,NULL,1),(1055,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','551','1053','Chèques émis',NULL,NULL,1),(1056,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','559','1053','Réductions de valeur actées',NULL,NULL,1),(1057,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','56','1355','Office des chèques postaux',NULL,NULL,1),(1058,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','560','1057','Compte courant',NULL,NULL,1),(1059,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','561','1057','Chèques émis',NULL,NULL,1),(1060,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','57','1355','Caisses',NULL,NULL,1),(1061,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','570','1060','à 577 Caisses - espèces ( 0 - centrale ; 7 - succursales et agences)',NULL,NULL,1),(1062,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','578','1060','Caisses - timbres ( 0 - fiscaux ; 1 - postaux)',NULL,NULL,1),(1063,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','58','1355','Virements internes',NULL,NULL,1),(1064,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','60','1356','Approvisionnements et marchandises',NULL,NULL,1),(1065,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','600','1064','Achats de matières premières',NULL,NULL,1),(1066,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','601','1064','Achats de fournitures',NULL,NULL,1),(1067,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','602','1064','Achats de services, travaux et études',NULL,NULL,1),(1068,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','603','1064','Sous-traitances générales',NULL,NULL,1),(1069,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','604','1064','Achats de marchandises',NULL,NULL,1),(1070,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','605','1064','Achats d\'immeubles destinés à la revente',NULL,NULL,1),(1071,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','608','1064','Remises , ristournes et rabais obtenus sur achats',NULL,NULL,1),(1072,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','609','1064','Variations de stocks',NULL,NULL,1),(1073,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6090','1072','De matières premières',NULL,NULL,1),(1074,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6091','1072','De fournitures',NULL,NULL,1),(1075,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6094','1072','De marchandises',NULL,NULL,1),(1076,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6095','1072','d\'immeubles destinés à la vente',NULL,NULL,1),(1077,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61','1356','Services et biens divers',NULL,NULL,1),(1078,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','610','1077','Loyers et charges locatives',NULL,NULL,1),(1079,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6100','1078','Loyers divers',NULL,NULL,1),(1080,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6101','1078','Charges locatives (assurances, frais de confort,etc)',NULL,NULL,1),(1081,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','611','1077','Entretien et réparation (fournitures et prestations)',NULL,NULL,1),(1082,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','612','1077','Fournitures faites à l\'entreprise',NULL,NULL,1),(1083,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6120','1082','Eau, gaz, électricité, vapeur',NULL,NULL,1),(1084,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61200','1083','Eau',NULL,NULL,1),(1085,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61201','1083','Gaz',NULL,NULL,1),(1086,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61202','1083','Electricité',NULL,NULL,1),(1087,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61203','1083','Vapeur',NULL,NULL,1),(1088,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6121','1082','Téléphone, télégrammes, télex, téléfax, frais postaux',NULL,NULL,1),(1089,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61210','1088','Téléphone',NULL,NULL,1),(1090,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61211','1088','Télégrammes',NULL,NULL,1),(1091,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61212','1088','Télex et téléfax',NULL,NULL,1),(1092,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61213','1088','Frais postaux',NULL,NULL,1),(1093,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6122','1082','Livres, bibliothèque',NULL,NULL,1),(1094,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6123','1082','Imprimés et fournitures de bureau (si non comptabilisé au 601)',NULL,NULL,1),(1095,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','613','1077','Rétributions de tiers',NULL,NULL,1),(1096,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6130','1095','Redevances et royalties',NULL,NULL,1),(1097,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61300','1096','Redevances pour brevets, licences, marques et accessoires',NULL,NULL,1),(1098,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61301','1096','Autres redevances (procédés de fabrication)',NULL,NULL,1),(1099,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6131','1095','Assurances non relatives au personnel',NULL,NULL,1),(1100,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61310','1099','Assurance incendie',NULL,NULL,1),(1101,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61311','1099','Assurance vol',NULL,NULL,1),(1102,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61312','1099','Assurance autos',NULL,NULL,1),(1103,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61313','1099','Assurance crédit',NULL,NULL,1),(1104,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61314','1099','Assurances frais généraux',NULL,NULL,1),(1105,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6132','1095','Divers',NULL,NULL,1),(1106,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61320','1105','Commissions aux tiers',NULL,NULL,1),(1107,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61321','1105','Honoraires d\'avocats, d\'experts, etc',NULL,NULL,1),(1108,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61322','1105','Cotisations aux groupements professionnels',NULL,NULL,1),(1109,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61323','1105','Dons, libéralités, etc',NULL,NULL,1),(1110,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61324','1105','Frais de contentieux',NULL,NULL,1),(1111,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61325','1105','Publications légales',NULL,NULL,1),(1112,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6133','1095','Transports et déplacements',NULL,NULL,1),(1113,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61330','1112','Transports de personnel',NULL,NULL,1),(1114,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','61331','1112','Voyages, déplacements et représentations',NULL,NULL,1),(1115,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6134','1095','Personnel intérimaire',NULL,NULL,1),(1116,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','614','1077','Annonces, publicité, propagande et documentation',NULL,NULL,1),(1117,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6140','1116','Annonces et insertions',NULL,NULL,1),(1118,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6141','1116','Catalogues et imprimés',NULL,NULL,1),(1119,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6142','1116','Echantillons',NULL,NULL,1),(1120,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6143','1116','Foires et expositions',NULL,NULL,1),(1121,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6144','1116','Primes',NULL,NULL,1),(1122,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6145','1116','Cadeaux à la clientèle',NULL,NULL,1),(1123,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6146','1116','Missions et réceptions',NULL,NULL,1),(1124,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6147','1116','Documentation',NULL,NULL,1),(1125,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','615','1077','Sous-traitants',NULL,NULL,1),(1126,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6150','1125','Sous-traitants pour activités propres',NULL,NULL,1),(1127,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6151','1125','Sous-traitants d\'associations momentanées (coparticipants)',NULL,NULL,1),(1128,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6152','1125','Quote-part bénéficiaire des coparticipants',NULL,NULL,1),(1129,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','617','1077','Personnel intérimaire et personnes mises à la disposition de l\'entreprise',NULL,NULL,1),(1130,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','618','1077','Rémunérations, primes pour assurances extralégales, pensions de retraite et de survie des administrateurs, gérants et associés actifs qui ne sont pas attribuées en vertu d\'un contrat de travail',NULL,NULL,1),(1131,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62','1356','Rémunérations, charges sociales et pensions',NULL,NULL,1),(1132,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','620','1131','Rémunérations et avantages sociaux directs',NULL,NULL,1),(1133,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6200','1132','Administrateurs ou gérants',NULL,NULL,1),(1134,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6201','1132','Personnel de direction',NULL,NULL,1),(1135,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6202','1132','Employés',NULL,NULL,1),(1136,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6203','1132','Ouvriers',NULL,NULL,1),(1137,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6204','1132','Autres membres du personnel',NULL,NULL,1),(1138,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','621','1131','Cotisations patronales d\'assurances sociales',NULL,NULL,1),(1139,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6210','1138','Sur salaires',NULL,NULL,1),(1140,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6211','1138','Sur appointements et commissions',NULL,NULL,1),(1141,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','622','1131','Primes patronales pour assurances extralégales',NULL,NULL,1),(1142,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','623','1131','Autres frais de personnel',NULL,NULL,1),(1143,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6230','1142','Assurances du personnel',NULL,NULL,1),(1144,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62300','1143','Assurances loi, responsabilité civile, chemin du travail',NULL,NULL,1),(1145,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62301','1143','Assurance salaire garanti',NULL,NULL,1),(1146,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62302','1143','Assurances individuelles',NULL,NULL,1),(1147,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6231','1142','Charges sociales diverses',NULL,NULL,1),(1148,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62310','1147','Jours fériés payés',NULL,NULL,1),(1149,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62311','1147','Salaire hebdomadaire garanti',NULL,NULL,1),(1150,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62312','1147','Allocations familiales complémentaires',NULL,NULL,1),(1151,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6232','1142','Charges sociales des administrateurs, gérants et commissaires',NULL,NULL,1),(1152,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62320','1151','Allocations familiales complémentaires pour non salariés',NULL,NULL,1),(1153,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62321','1151','Lois sociales pour indépendants',NULL,NULL,1),(1154,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','62322','1151','Divers',NULL,NULL,1),(1155,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','624','1131','Pensions de retraite et de survie',NULL,NULL,1),(1156,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6240','1155','Administrateurs et gérants',NULL,NULL,1),(1157,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6241','1155','Personnel',NULL,NULL,1),(1158,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','625','1131','Provision pour pécule de vacances',NULL,NULL,1),(1159,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6250','1158','Dotations',NULL,NULL,1),(1160,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6251','1158','Utilisations et reprises',NULL,NULL,1),(1161,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','63','1356','Amortissements, réductions de valeur et provisions pour risques et charges',NULL,NULL,1),(1162,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','630','1161','Dotations aux amortissements et aux réductions de valeur sur immobilisations',NULL,NULL,1),(1163,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6300','1162','Dotations aux amortissements sur frais d\'établissement',NULL,NULL,1),(1164,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6301','1162','Dotations aux amortissements sur immobilisations incorporelles',NULL,NULL,1),(1165,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6302','1162','Dotations aux amortissements sur immobilisations corporelles',NULL,NULL,1),(1166,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6308','1162','Dotations aux réductions de valeur sur immobilisations incorporelles',NULL,NULL,1),(1167,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6309','1162','Dotations aux réductions de valeur sur immobilisations corporelles',NULL,NULL,1),(1168,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','631','1161','Réductions de valeur sur stocks',NULL,NULL,1),(1169,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6310','1168','Dotations',NULL,NULL,1),(1170,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6311','1168','Reprises',NULL,NULL,1),(1171,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','632','1161','Réductions de valeur sur commandes en cours d\'exécution',NULL,NULL,1),(1172,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6320','1171','Dotations',NULL,NULL,1),(1173,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6321','1171','Reprises',NULL,NULL,1),(1174,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','633','1161','Réductions de valeur sur créances commerciales à plus d\'un an',NULL,NULL,1),(1175,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6330','1174','Dotations',NULL,NULL,1),(1176,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6331','1174','Reprises',NULL,NULL,1),(1177,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','634','1161','Réductions de valeur sur créances commerciales à un an au plus',NULL,NULL,1),(1178,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6340','1177','Dotations',NULL,NULL,1),(1179,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6341','1177','Reprises',NULL,NULL,1),(1180,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','635','1161','Provisions pour pensions et obligations similaires',NULL,NULL,1),(1181,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6350','1180','Dotations',NULL,NULL,1),(1182,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6351','1180','Utilisations et reprises',NULL,NULL,1),(1183,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','636','11613','Provisions pour grosses réparations et gros entretiens',NULL,NULL,1),(1184,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6360','1183','Dotations',NULL,NULL,1),(1185,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6361','1183','Utilisations et reprises',NULL,NULL,1),(1186,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','637','1161','Provisions pour autres risques et charges',NULL,NULL,1),(1187,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6370','1186','Dotations',NULL,NULL,1),(1188,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6371','1186','Utilisations et reprises',NULL,NULL,1),(1189,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64','1356','Autres charges d\'exploitation',NULL,NULL,1),(1190,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','640','1189','Charges fiscales d\'exploitation',NULL,NULL,1),(1191,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6400','1190','Taxes et impôts directs',NULL,NULL,1),(1192,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64000','1191','Taxes sur autos et camions',NULL,NULL,1),(1193,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6401','1190','Taxes et impôts indirects',NULL,NULL,1),(1194,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64010','1193','Timbres fiscaux pris en charge par la firme',NULL,NULL,1),(1195,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64011','1193','Droits d\'enregistrement',NULL,NULL,1),(1196,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64012','1193','T.V.A. non déductible',NULL,NULL,1),(1197,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6402','1190','Impôts provinciaux et communaux',NULL,NULL,1),(1198,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64020','1197','Taxe sur la force motrice',NULL,NULL,1),(1199,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','64021','1197','Taxe sur le personnel occupé',NULL,NULL,1),(1200,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6403','1190','Taxes diverses',NULL,NULL,1),(1201,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','641','1189','Moins-values sur réalisations courantes d\'immobilisations corporelles',NULL,NULL,1),(1202,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','642','1189','Moins-values sur réalisations de créances commerciales',NULL,NULL,1),(1203,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','643','1189','à 648 Charges d\'exploitations diverses',NULL,NULL,1),(1204,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','649','1189','Charges d\'exploitation portées à l\'actif au titre de restructuration',NULL,NULL,1),(1205,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','65','1356','Charges financières',NULL,NULL,1),(1206,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','650','1205','Charges des dettes',NULL,NULL,1),(1207,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6500','1206','Intérêts, commissions et frais afférents aux dettes',NULL,NULL,1),(1208,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6501','1206','Amortissements des agios et frais d\'émission d\'emprunts',NULL,NULL,1),(1209,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6502','1206','Autres charges de dettes',NULL,NULL,1),(1210,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6503','1206','Intérêts intercalaires portés à l\'actif',NULL,NULL,1),(1211,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','651','1205','Réductions de valeur sur actifs circulants',NULL,NULL,1),(1212,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6510','1211','Dotations',NULL,NULL,1),(1213,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6511','1211','Reprises',NULL,NULL,1),(1214,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','652','1205','Moins-values sur réalisation d\'actifs circulants',NULL,NULL,1),(1215,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','653','1205','Charges d\'escompte de créances',NULL,NULL,1),(1216,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','654','1205','Différences de change',NULL,NULL,1),(1217,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','655','1205','Ecarts de conversion des devises',NULL,NULL,1),(1218,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','656','1205','Frais de banques, de chèques postaux',NULL,NULL,1),(1219,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','657','1205','Commissions sur ouvertures de crédit, cautions et avals',NULL,NULL,1),(1220,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','658','1205','Frais de vente des titres',NULL,NULL,1),(1221,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','66','1356','Charges exceptionnelles',NULL,NULL,1),(1222,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','660','1221','Amortissements et réductions de valeur exceptionnels',NULL,NULL,1),(1223,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6600','1222','Sur frais d\'établissement',NULL,NULL,1),(1224,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6601','1222','Sur immobilisations incorporelles',NULL,NULL,1),(1225,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6602','1222','Sur immobilisations corporelles',NULL,NULL,1),(1226,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','661','1221','Réductions de valeur sur immobilisations financières',NULL,NULL,1),(1227,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','662','1221','Provisions pour risques et charges exceptionnels',NULL,NULL,1),(1228,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','663','1221','Moins-values sur réalisation d\'actifs immobilisés',NULL,NULL,1),(1229,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6630','1228','Sur immobilisations incorporelles',NULL,NULL,1),(1230,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6631','1228','Sur immobilisations corporelles',NULL,NULL,1),(1231,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6632','1228','Sur immobilisations détenues en location-financement et droits similaires',NULL,NULL,1),(1232,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6633','1228','Sur immobilisations financières',NULL,NULL,1),(1233,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6634','1228','Sur immeubles acquis ou construits en vue de la revente',NULL,NULL,1),(1234,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','664','1221','à 668 Autres charges exceptionnelles',NULL,NULL,1),(1235,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','664','1221','Pénalités et amendes diverses',NULL,NULL,1),(1236,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','665','1221','Différence de charge',NULL,NULL,1),(1237,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','669','1221','Charges exceptionnelles transférées à l\'actif en frais de restructuration',NULL,NULL,1),(1238,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','67','1356','Impôts sur le résultat',NULL,NULL,1),(1239,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','670','1238','Impôts belges sur le résultat de l\'exercice',NULL,NULL,1),(1240,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6700','1239','Impôts et précomptes dus ou versés',NULL,NULL,1),(1241,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6701','1239','Excédent de versements d\'impôts et précomptes porté à l\'actif',NULL,NULL,1),(1242,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6702','1239','Charges fiscales estimées',NULL,NULL,1),(1243,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','671','1238','Impôts belges sur le résultat d\'exercices antérieurs',NULL,NULL,1),(1244,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6710','1243','Suppléments d\'impôts dus ou versés',NULL,NULL,1),(1245,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6711','1243','Suppléments d\'impôts estimés',NULL,NULL,1),(1246,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6712','1243','Provisions fiscales constituées',NULL,NULL,1),(1247,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','672','1238','Impôts étrangers sur le résultat de l\'exercice',NULL,NULL,1),(1248,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','673','1238','Impôts étrangers sur le résultat d\'exercices antérieurs',NULL,NULL,1),(1249,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','68','1356','Transferts aux réserves immunisées',NULL,NULL,1),(1250,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','69','1356','Affectation des résultats',NULL,NULL,1),(1251,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','690','1250','Perte reportée de l\'exercice précédent',NULL,NULL,1),(1252,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','691','1250','Dotation à la réserve légale',NULL,NULL,1),(1253,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','692','1250','Dotation aux autres réserves',NULL,NULL,1),(1254,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','693','1250','Bénéfice à reporter',NULL,NULL,1),(1255,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','694','1250','Rémunération du capital',NULL,NULL,1),(1256,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','695','1250','Administrateurs ou gérants',NULL,NULL,1),(1257,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','696','1250','Autres allocataires',NULL,NULL,1),(1258,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','70','1357','Chiffre d\'affaires',NULL,NULL,1),(1260,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','700','1258','Ventes de marchandises',NULL,NULL,1),(1261,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7000','1260','Ventes en Belgique',NULL,NULL,1),(1262,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7001','1260','Ventes dans les pays membres de la C.E.E.',NULL,NULL,1),(1263,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7002','1260','Ventes à l\'exportation',NULL,NULL,1),(1264,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','701','1258','Ventes de produits finis',NULL,NULL,1),(1265,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7010','1264','Ventes en Belgique',NULL,NULL,1),(1266,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7011','1264','Ventes dans les pays membres de la C.E.E.',NULL,NULL,1),(1267,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7012','1264','Ventes à l\'exportation',NULL,NULL,1),(1268,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','702','1258','Ventes de déchets et rebuts',NULL,NULL,1),(1269,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7020','1268','Ventes en Belgique',NULL,NULL,1),(1270,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7021','1268','Ventes dans les pays membres de la C.E.E.',NULL,NULL,1),(1271,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7022','1268','Ventes à l\'exportation',NULL,NULL,1),(1272,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','703','1258','Ventes d\'emballages récupérables',NULL,NULL,1),(1273,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','704','1258','Facturations des travaux en cours (associations momentanées)',NULL,NULL,1),(1274,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','705','1258','Prestations de services',NULL,NULL,1),(1275,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7050','1274','Prestations de services en Belgique',NULL,NULL,1),(1276,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7051','1274','Prestations de services dans les pays membres de la C.E.E.',NULL,NULL,1),(1277,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7052','1274','Prestations de services en vue de l\'exportation',NULL,NULL,1),(1278,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','706','1258','Pénalités et dédits obtenus par l\'entreprise',NULL,NULL,1),(1279,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','708','1258','Remises, ristournes et rabais accordés',NULL,NULL,1),(1280,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7080','1279','Sur ventes de marchandises',NULL,NULL,1),(1281,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7081','1279','Sur ventes de produits finis',NULL,NULL,1),(1282,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7082','1279','Sur ventes de déchets et rebuts',NULL,NULL,1),(1283,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7083','1279','Sur prestations de services',NULL,NULL,1),(1284,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7084','1279','Mali sur travaux facturés aux associations momentanées',NULL,NULL,1),(1285,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','71','1357','Variation des stocks et des commandes en cours d\'exécution',NULL,NULL,1),(1286,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','712','1285','Des en cours de fabrication',NULL,NULL,1),(1287,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','713','1285','Des produits finis',NULL,NULL,1),(1288,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','715','1285','Des immeubles construits destinés à la vente',NULL,NULL,1),(1289,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','717','1285','Des commandes en cours d\'exécution',NULL,NULL,1),(1290,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7170','1289','Commandes en cours - Coût de revient',NULL,NULL,1),(1291,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','71700','1290','Coût des commandes en cours d\'exécution',NULL,NULL,1),(1292,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','71701','1290','Coût des travaux en cours des associations momentanées',NULL,NULL,1),(1293,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7171','1289','Bénéfices portés en compte sur commandes en cours',NULL,NULL,1),(1294,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','71710','1293','Sur commandes en cours d\'exécution',NULL,NULL,1),(1295,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','71711','1293','Sur travaux en cours des associations momentanées',NULL,NULL,1),(1296,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','72','1357','Production immobilisée',NULL,NULL,1),(1297,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','720','1296','En frais d\'établissement',NULL,NULL,1),(1298,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','721','1296','En immobilisations incorporelles',NULL,NULL,1),(1299,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','722','1296','En immobilisations corporelles',NULL,NULL,1),(1300,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','723','1296','En immobilisations en cours',NULL,NULL,1),(1301,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','74','1357','Autres produits d\'exploitation',NULL,NULL,1),(1302,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','740','1301','Subsides d\'exploitation et montants compensatoires',NULL,NULL,1),(1303,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','741','1301','Plus-values sur réalisations courantes d\'immobilisations corporelles',NULL,NULL,1),(1304,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','742','1301','Plus-values sur réalisations de créances commerciales',NULL,NULL,1),(1305,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','743','1301','à 749 Produits d\'exploitation divers',NULL,NULL,1),(1306,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','743','1301','Produits de services exploités dans l\'intérêt du personnel',NULL,NULL,1),(1307,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','744','1301','Commissions et courtages',NULL,NULL,1),(1308,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','745','1301','Redevances pour brevets et licences',NULL,NULL,1),(1309,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','746','1301','Prestations de services (transports, études, etc)',NULL,NULL,1),(1310,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','747','1301','Revenus des immeubles affectés aux activités non professionnelles',NULL,NULL,1),(1311,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','748','1301','Locations diverses à caractère professionnel',NULL,NULL,1),(1312,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','749','1301','Produits divers',NULL,NULL,1),(1313,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7490','1312','Bonis sur reprises d\'emballages consignés',NULL,NULL,1),(1314,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7491','1312','Bonis sur travaux en associations momentanées',NULL,NULL,1),(1315,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','75','1357','Produits financiers',NULL,NULL,1),(1316,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','750','1315','Produits des immobilisations financières',NULL,NULL,1),(1317,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7500','1316','Revenus des actions',NULL,NULL,1),(1318,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7501','1316','Revenus des obligations',NULL,NULL,1),(1319,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7502','1316','Revenus des créances à plus d\'un an',NULL,NULL,1),(1320,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','751','1315','Produits des actifs circulants',NULL,NULL,1),(1321,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','752','1315','Plus-values sur réalisations d\'actifs circulants',NULL,NULL,1),(1322,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','753','1315','Subsides en capital et en intérêts',NULL,NULL,1),(1323,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','754','1315','Différences de change',NULL,NULL,1),(1324,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','755','1315','Ecarts de conversion des devises',NULL,NULL,1),(1325,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','756','1315','à 759 Produits financiers divers',NULL,NULL,1),(1326,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','756','1315','Produits des autres créances',NULL,NULL,1),(1327,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','757','1315','Escomptes obtenus',NULL,NULL,1),(1328,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','76','1357','Produits exceptionnels',NULL,NULL,1),(1329,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','760','1328','Reprises d\'amortissements et de réductions de valeur',NULL,NULL,1),(1330,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7600','1329','Sur immobilisations incorporelles',NULL,NULL,1),(1331,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7601','1329','Sur immobilisations corporelles',NULL,NULL,1),(1332,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','761','1328','Reprises de réductions de valeur sur immobilisations financières',NULL,NULL,1),(1333,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','762','1328','Reprises de provisions pour risques et charges exceptionnelles',NULL,NULL,1),(1334,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','763','1328','Plus-values sur réalisation d\'actifs immobilisés',NULL,NULL,1),(1335,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7630','1334','Sur immobilisations incorporelles',NULL,NULL,1),(1336,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7631','1334','Sur immobilisations corporelles',NULL,NULL,1),(1337,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7632','1334','Sur immobilisations financières',NULL,NULL,1),(1338,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','764','1328','Autres produits exceptionnels',NULL,NULL,1),(1339,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','77','1357','Régularisations d\'impôts et reprises de provisions fiscales',NULL,NULL,1),(1340,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','771','1339','Impôts belges sur le résultat',NULL,NULL,1),(1341,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7710','1340','Régularisations d\'impôts dus ou versés',NULL,NULL,1),(1342,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7711','1340','Régularisations d\'impôts estimés',NULL,NULL,1),(1343,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7712','1340','Reprises de provisions fiscales',NULL,NULL,1),(1344,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','773','1339','Impôts étrangers sur le résultat',NULL,NULL,1),(1345,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','79','1357','Affectation aux résultats',NULL,NULL,1),(1346,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','790','1345','Bénéfice reporté de l\'exercice précédent',NULL,NULL,1),(1347,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','791','1345','Prélèvement sur le capital et les primes d\'émission',NULL,NULL,1),(1348,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','792','1345','Prélèvement sur les réserves',NULL,NULL,1),(1349,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','793','1345','Perte à reporter',NULL,NULL,1),(1350,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','794','1345','Intervention d\'associés (ou du propriétaire) dans la perte',NULL,NULL,1),(1351,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CAPIT','XXXXXX','1','','Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',NULL,NULL,1),(1352,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','IMMO','XXXXXX','2','','Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',NULL,NULL,1),(1353,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','STOCK','XXXXXX','3','','Stock et commandes en cours d\'exécution',NULL,NULL,1),(1354,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','TIERS','XXXXXX','4','','Créances et dettes à un an au plus',NULL,NULL,1),(1355,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','FINAN','XXXXXX','5','','Placement de trésorerie et de valeurs disponibles',NULL,NULL,1),(1356,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','CHARGE','XXXXXX','6','','Charges',NULL,NULL,1),(1357,1,NULL,'0000-00-00 00:00:00','PCMN-BASE','PROD','XXXXXX','7','','Produits',NULL,NULL,1),(1401,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CAPIT','XXXXXX','1','','Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',NULL,NULL,1),(1402,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','IMMO','XXXXXX','2','','Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',NULL,NULL,1),(1403,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','STOCK','XXXXXX','3','','Stock et commandes en cours d\'exécution',NULL,NULL,1),(1404,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','TIERS','XXXXXX','4','','Créances et dettes à un an au plus',NULL,NULL,1),(1405,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','FINAN','XXXXXX','5','','Placement de trésorerie et de valeurs disponibles',NULL,NULL,1),(1406,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','CHARGE','XXXXXX','6','','Charges',NULL,NULL,1),(1407,1,NULL,'0000-00-00 00:00:00','PCG99-ABREGE','PROD','XXXXXX','7','','Produits',NULL,NULL,1),(1501,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CAPIT','XXXXXX','1','','Fonds propres, provisions pour risques et charges et dettes à plus d\'un an',NULL,NULL,1),(1502,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','IMMO','XXXXXX','2','','Frais d\'établissement. Actifs immobilisés et créances à plus d\'un an',NULL,NULL,1),(1503,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','STOCK','XXXXXX','3','','Stock et commandes en cours d\'exécution',NULL,NULL,1),(1504,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','TIERS','XXXXXX','4','','Créances et dettes à un an au plus',NULL,NULL,1),(1505,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','FINAN','XXXXXX','5','','Placement de trésorerie et de valeurs disponibles',NULL,NULL,1),(1506,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','CHARGE','XXXXXX','6','','Charges',NULL,NULL,1),(1507,1,NULL,'0000-00-00 00:00:00','PCG99-BASE','PROD','XXXXXX','7','','Produits',NULL,NULL,1),(4001,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1','','Financiación básica',NULL,NULL,1),(4002,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','ACTIVO','XXXXXX','2','','Activo no corriente',NULL,NULL,1),(4003,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','EXISTENCIAS','XXXXXX','3','','Existencias',NULL,NULL,1),(4004,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4','','Acreedores y deudores por operaciones comerciales',NULL,NULL,1),(4005,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5','','Cuentas financieras',NULL,NULL,1),(4006,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6','','Compras y gastos',NULL,NULL,1),(4007,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7','','Ventas e ingresos',NULL,NULL,1),(4008,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','10','4001','CAPITAL',NULL,NULL,1),(4009,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','100','4008','Capital social',NULL,NULL,1),(4010,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','101','4008','Fondo social',NULL,NULL,1),(4011,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','CAPITAL','102','4008','Capital',NULL,NULL,1),(4012,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','103','4008','Socios por desembolsos no exigidos',NULL,NULL,1),(4013,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1030','4012','Socios por desembolsos no exigidos capital social',NULL,NULL,1),(4014,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1034','4012','Socios por desembolsos no exigidos capital pendiente de inscripción',NULL,NULL,1),(4015,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','104','4008','Socios por aportaciones no dineradas pendientes',NULL,NULL,1),(4016,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1040','4015','Socios por aportaciones no dineradas pendientes capital social',NULL,NULL,1),(4017,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1044','4015','Socios por aportaciones no dineradas pendientes capital pendiente de inscripción',NULL,NULL,1),(4018,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','108','4008','Acciones o participaciones propias en situaciones especiales',NULL,NULL,1),(4019,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','109','4008','Acciones o participaciones propias para reducción de capital',NULL,NULL,1),(4020,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','11','4001','Reservas y otros instrumentos de patrimonio',NULL,NULL,1),(4021,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','110','4020','Prima de emisión o asunción',NULL,NULL,1),(4022,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','111','4020','Otros instrumentos de patrimonio neto',NULL,NULL,1),(4023,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1110','4022','Patrimonio neto por emisión de instrumentos financieros compuestos',NULL,NULL,1),(4024,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1111','4022','Resto de instrumentos de patrimoio neto',NULL,NULL,1),(4025,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','112','4020','Reserva legal',NULL,NULL,1),(4026,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','113','4020','Reservas voluntarias',NULL,NULL,1),(4027,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','114','4020','Reservas especiales',NULL,NULL,1),(4028,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1140','4027','Reservas para acciones o participaciones de la sociedad dominante',NULL,NULL,1),(4029,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1141','4027','Reservas estatutarias',NULL,NULL,1),(4030,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1142','4027','Reservas por capital amortizado',NULL,NULL,1),(4031,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1143','4027','Reservas por fondo de comercio',NULL,NULL,1),(4032,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1144','4028','Reservas por acciones propias aceptadas en garantía',NULL,NULL,1),(4033,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','115','4020','Reservas por pérdidas y ganancias actuariales y otros ajustes',NULL,NULL,1),(4034,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','118','4020','Aportaciones de socios o propietarios',NULL,NULL,1),(4035,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','119','4020','Diferencias por ajuste del capital a euros',NULL,NULL,1),(4036,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','12','4001','Resultados pendientes de aplicación',NULL,NULL,1),(4037,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','120','4036','Remanente',NULL,NULL,1),(4038,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','121','4036','Resultados negativos de ejercicios anteriores',NULL,NULL,1),(4039,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','129','4036','Resultado del ejercicio',NULL,NULL,1),(4040,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','13','4001','Subvenciones, donaciones y ajustes por cambio de valor',NULL,NULL,1),(4041,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','130','4040','Subvenciones oficiales de capital',NULL,NULL,1),(4042,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','131','4040','Donaciones y legados de capital',NULL,NULL,1),(4043,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','132','4040','Otras subvenciones, donaciones y legados',NULL,NULL,1),(4044,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','133','4040','Ajustes por valoración en activos financieros disponibles para la venta',NULL,NULL,1),(4045,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','134','4040','Operaciones de cobertura',NULL,NULL,1),(4046,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1340','4045','Cobertura de flujos de efectivo',NULL,NULL,1),(4047,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1341','4045','Cobertura de una inversión neta en un negocio extranjero',NULL,NULL,1),(4048,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','135','4040','Diferencias de conversión',NULL,NULL,1),(4049,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','136','4040','Ajustes por valoración en activos no corrientes y grupos enajenables de elementos mantenidos para la venta',NULL,NULL,1),(4050,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','137','4040','Ingresos fiscales a distribuir en varios ejercicios',NULL,NULL,1),(4051,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1370','4050','Ingresos fiscales por diferencias permanentes a distribuir en varios ejercicios',NULL,NULL,1),(4052,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1371','4050','Ingresos fiscales por deducciones y bonificaciones a distribuir en varios ejercicios',NULL,NULL,1),(4053,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','14','4001','Provisiones',NULL,NULL,1),(4054,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','141','4053','Provisión para impuestos',NULL,NULL,1),(4055,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','142','4053','Provisión para otras responsabilidades',NULL,NULL,1),(4056,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','143','4053','Provisión por desmantelamiento, retiro o rehabilitación del inmovilizado',NULL,NULL,1),(4057,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','145','4053','Provisión para actuaciones medioambientales',NULL,NULL,1),(4058,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','15','4001','Deudas a largo plazo con características especiales',NULL,NULL,1),(4059,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','150','4058','Acciones o participaciones a largo plazo consideradas como pasivos financieros',NULL,NULL,1),(4060,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','153','4058','Desembolsos no exigidos por acciones o participaciones consideradas como pasivos financieros',NULL,NULL,1),(4061,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1533','4060','Desembolsos no exigidos empresas del grupo',NULL,NULL,1),(4062,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1534','4060','Desembolsos no exigidos empresas asociadas',NULL,NULL,1),(4063,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1535','4060','Desembolsos no exigidos otras partes vinculadas',NULL,NULL,1),(4064,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1536','4060','Otros desembolsos no exigidos',NULL,NULL,1),(4065,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','154','4058','Aportaciones no dinerarias pendientes por acciones o participaciones consideradas como pasivos financieros',NULL,NULL,1),(4066,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1543','4065','Aportaciones no dinerarias pendientes empresas del grupo',NULL,NULL,1),(4067,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1544','4065','Aportaciones no dinerarias pendientes empresas asociadas',NULL,NULL,1),(4068,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1545','4065','Aportaciones no dinerarias pendientes otras partes vinculadas',NULL,NULL,1),(4069,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1546','4065','Otras aportaciones no dinerarias pendientes',NULL,NULL,1),(4070,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','16','4001','Deudas a largo plazo con partes vinculadas',NULL,NULL,1),(4071,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','160','4070','Deudas a largo plazo con entidades de crédito vinculadas',NULL,NULL,1),(4072,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1603','4071','Deudas a largo plazo con entidades de crédito empresas del grupo',NULL,NULL,1),(4073,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1604','4071','Deudas a largo plazo con entidades de crédito empresas asociadas',NULL,NULL,1),(4074,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1605','4071','Deudas a largo plazo con otras entidades de crédito vinculadas',NULL,NULL,1),(4075,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','161','4070','Proveedores de inmovilizado a largo plazo partes vinculadas',NULL,NULL,1),(4076,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1613','4075','Proveedores de inmovilizado a largo plazo empresas del grupo',NULL,NULL,1),(4077,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1614','4075','Proveedores de inmovilizado a largo plazo empresas asociadas',NULL,NULL,1),(4078,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1615','4075','Proveedores de inmovilizado a largo plazo otras partes vinculadas',NULL,NULL,1),(4079,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','162','4070','Acreedores por arrendamiento financiero a largo plazo partes vinculadas',NULL,NULL,1),(4080,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1623','4079','Acreedores por arrendamiento financiero a largo plazo empresas del grupo',NULL,NULL,1),(4081,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1624','4080','Acreedores por arrendamiento financiero a largo plazo empresas asociadas',NULL,NULL,1),(4082,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1625','4080','Acreedores por arrendamiento financiero a largo plazo otras partes vinculadas',NULL,NULL,1),(4083,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','163','4070','Otras deudas a largo plazo con partes vinculadas',NULL,NULL,1),(4084,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1633','4083','Otras deudas a largo plazo empresas del grupo',NULL,NULL,1),(4085,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1634','4083','Otras deudas a largo plazo empresas asociadas',NULL,NULL,1),(4086,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','1635','4083','Otras deudas a largo plazo otras partes vinculadas',NULL,NULL,1),(4087,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','17','4001','Deudas a largo plazo por préstamos recibidos empresitos y otros conceptos',NULL,NULL,1),(4088,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','170','4087','Deudas a largo plazo con entidades de crédito',NULL,NULL,1),(4089,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','171','4087','Deudas a largo plazo',NULL,NULL,1),(4090,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','172','4087','Deudas a largo plazo transformables en suvbenciones donaciones y legados',NULL,NULL,1),(4091,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','173','4087','Proveedores de inmovilizado a largo plazo',NULL,NULL,1),(4092,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','174','4087','Acreedores por arrendamiento financiero a largo plazo',NULL,NULL,1),(4093,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','175','4087','Efectos a pagar a largo plazo',NULL,NULL,1),(4094,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','176','4087','Pasivos por derivados financieros a largo plazo',NULL,NULL,1),(4095,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','177','4087','Obligaciones y bonos',NULL,NULL,1),(4096,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','179','4087','Deudas representadas en otros valores negociables',NULL,NULL,1),(4097,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','18','4001','Pasivos por fianzas garantias y otros conceptos a largo plazo',NULL,NULL,1),(4098,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','180','4097','Fianzas recibidas a largo plazo',NULL,NULL,1),(4099,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','181','4097','Anticipos recibidos por ventas o prestaciones de servicios a largo plazo',NULL,NULL,1),(4100,1,NULL,'2017-08-26 22:04:45','PCG08-PYME','FINANCIACION','XXXXXX','185','4097','Depositos recibidos a largo plazo',NULL,NULL,1),(4101,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','19','4001','Situaciones transitorias de financiación',NULL,NULL,1),(4102,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','190','4101','Acciones o participaciones emitidas',NULL,NULL,1),(4103,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','192','4101','Suscriptores de acciones',NULL,NULL,1),(4104,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','194','4101','Capital emitido pendiente de inscripción',NULL,NULL,1),(4105,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','195','4101','Acciones o participaciones emitidas consideradas como pasivos financieros',NULL,NULL,1),(4106,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','197','4101','Suscriptores de acciones consideradas como pasivos financieros',NULL,NULL,1),(4107,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','FINANCIACION','XXXXXX','199','4101','Acciones o participaciones emitidas consideradas como pasivos financieros pendientes de inscripción',NULL,NULL,1),(4108,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','20','4002','Inmovilizaciones intangibles',NULL,NULL,1),(4109,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','200','4108','Investigación',NULL,NULL,1),(4110,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','201','4108','Desarrollo',NULL,NULL,1),(4111,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','202','4108','Concesiones administrativas',NULL,NULL,1),(4112,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','203','4108','Propiedad industrial',NULL,NULL,1),(4113,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','205','4108','Derechos de transpaso',NULL,NULL,1),(4114,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','206','4108','Aplicaciones informáticas',NULL,NULL,1),(4115,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','209','4108','Anticipos para inmovilizaciones intangibles',NULL,NULL,1),(4116,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','21','4002','Inmovilizaciones materiales',NULL,NULL,1),(4117,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','210','4116','Terrenos y bienes naturales',NULL,NULL,1),(4118,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','211','4116','Construcciones',NULL,NULL,1),(4119,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','212','4116','Instalaciones técnicas',NULL,NULL,1),(4120,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','213','4116','Maquinaria',NULL,NULL,1),(4121,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','214','4116','Utillaje',NULL,NULL,1),(4122,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','215','4116','Otras instalaciones',NULL,NULL,1),(4123,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','216','4116','Mobiliario',NULL,NULL,1),(4124,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','217','4116','Equipos para procesos de información',NULL,NULL,1),(4125,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','218','4116','Elementos de transporte',NULL,NULL,1),(4126,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','219','4116','Otro inmovilizado material',NULL,NULL,1),(4127,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','22','4002','Inversiones inmobiliarias',NULL,NULL,1),(4128,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','220','4127','Inversiones en terreons y bienes naturales',NULL,NULL,1),(4129,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','221','4127','Inversiones en construcciones',NULL,NULL,1),(4130,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','23','4002','Inmovilizaciones materiales en curso',NULL,NULL,1),(4131,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','230','4130','Adaptación de terrenos y bienes naturales',NULL,NULL,1),(4132,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','231','4130','Construcciones en curso',NULL,NULL,1),(4133,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','232','4130','Instalaciones técnicas en montaje',NULL,NULL,1),(4134,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','233','4130','Maquinaria en montaje',NULL,NULL,1),(4135,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','237','4130','Equipos para procesos de información en montaje',NULL,NULL,1),(4136,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','239','4130','Anticipos para inmovilizaciones materiales',NULL,NULL,1),(4137,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','24','4002','Inversiones financieras a largo plazo en partes vinculadas',NULL,NULL,1),(4138,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','240','4137','Participaciones a largo plazo en partes vinculadas',NULL,NULL,1),(4139,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2403','4138','Participaciones a largo plazo en empresas del grupo',NULL,NULL,1),(4140,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2404','4138','Participaciones a largo plazo en empresas asociadas',NULL,NULL,1),(4141,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2405','4138','Participaciones a largo plazo en otras partes vinculadas',NULL,NULL,1),(4142,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','241','4137','Valores representativos de deuda a largo plazo de partes vinculadas',NULL,NULL,1),(4143,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2413','4142','Valores representativos de deuda a largo plazo de empresas del grupo',NULL,NULL,1),(4144,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2414','4142','Valores representativos de deuda a largo plazo de empresas asociadas',NULL,NULL,1),(4145,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2415','4142','Valores representativos de deuda a largo plazo de otras partes vinculadas',NULL,NULL,1),(4146,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','242','4137','Créditos a largo plazo a partes vinculadas',NULL,NULL,1),(4147,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2423','4146','Créditos a largo plazo a empresas del grupo',NULL,NULL,1),(4148,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2424','4146','Créditos a largo plazo a empresas asociadas',NULL,NULL,1),(4149,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2425','4146','Créditos a largo plazo a otras partes vinculadas',NULL,NULL,1),(4150,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','249','4137','Desembolsos pendientes sobre participaciones a largo plazo en partes vinculadas',NULL,NULL,1),(4151,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2493','4150','Desembolsos pendientes sobre participaciones a largo plazo en empresas del grupo',NULL,NULL,1),(4152,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2494','4150','Desembolsos pendientes sobre participaciones a largo plazo en empresas asociadas',NULL,NULL,1),(4153,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2495','4150','Desembolsos pendientes sobre participaciones a largo plazo en otras partes vinculadas',NULL,NULL,1),(4154,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','25','4002','Otras inversiones financieras a largo plazo',NULL,NULL,1),(4155,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','250','4154','Inversiones financieras a largo plazo en instrumentos de patrimonio',NULL,NULL,1),(4156,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','251','4154','Valores representativos de deuda a largo plazo',NULL,NULL,1),(4157,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','252','4154','Créditos a largo plazo',NULL,NULL,1),(4158,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','253','4154','Créditos a largo plazo por enajenación de inmovilizado',NULL,NULL,1),(4159,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','254','4154','Créditos a largo plazo al personal',NULL,NULL,1),(4160,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','255','4154','Activos por derivados financieros a largo plazo',NULL,NULL,1),(4161,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','258','4154','Imposiciones a largo plazo',NULL,NULL,1),(4162,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','259','4154','Desembolsos pendientes sobre participaciones en el patrimonio neto a largo plazo',NULL,NULL,1),(4163,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','26','4002','Fianzas y depósitos constituidos a largo plazo',NULL,NULL,1),(4164,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','260','4163','Fianzas constituidas a largo plazo',NULL,NULL,1),(4165,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','261','4163','Depósitos constituidos a largo plazo',NULL,NULL,1),(4166,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','28','4002','Amortización acumulada del inmovilizado',NULL,NULL,1),(4167,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','280','4166','Amortización acumulado del inmovilizado intangible',NULL,NULL,1),(4168,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2800','4167','Amortización acumulada de investigación',NULL,NULL,1),(4169,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2801','4167','Amortización acumulada de desarrollo',NULL,NULL,1),(4170,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2802','4167','Amortización acumulada de concesiones administrativas',NULL,NULL,1),(4171,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2803','4167','Amortización acumulada de propiedad industrial',NULL,NULL,1),(4172,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2805','4167','Amortización acumulada de derechos de transpaso',NULL,NULL,1),(4173,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2806','4167','Amortización acumulada de aplicaciones informáticas',NULL,NULL,1),(4174,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','281','4166','Amortización acumulado del inmovilizado material',NULL,NULL,1),(4175,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2811','4174','Amortización acumulada de construcciones',NULL,NULL,1),(4176,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2812','4174','Amortización acumulada de instalaciones técnicas',NULL,NULL,1),(4177,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2813','4174','Amortización acumulada de maquinaria',NULL,NULL,1),(4178,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2814','4174','Amortización acumulada de utillaje',NULL,NULL,1),(4179,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2815','4174','Amortización acumulada de otras instalaciones',NULL,NULL,1),(4180,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2816','4174','Amortización acumulada de mobiliario',NULL,NULL,1),(4181,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2817','4174','Amortización acumulada de equipos para proceso de información',NULL,NULL,1),(4182,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2818','4174','Amortización acumulada de elementos de transporte',NULL,NULL,1),(4183,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2819','4175','Amortización acumulada de otro inmovilizado material',NULL,NULL,1),(4184,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','282','4166','Amortización acumulada de las inversiones inmobiliarias',NULL,NULL,1),(4185,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','29','4002','Deterioro de valor de activos no corrientes',NULL,NULL,1),(4186,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','290','4185','Deterioro de valor del inmovilizado intangible',NULL,NULL,1),(4187,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2900','4186','Deterioro de valor de investigación',NULL,NULL,1),(4188,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2901','4186','Deterioro de valor de desarrollo',NULL,NULL,1),(4189,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2902','4186','Deterioro de valor de concesiones administrativas',NULL,NULL,1),(4190,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2903','4186','Deterioro de valor de propiedad industrial',NULL,NULL,1),(4191,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2905','4186','Deterioro de valor de derechos de transpaso',NULL,NULL,1),(4192,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2906','4186','Deterioro de valor de aplicaciones informáticas',NULL,NULL,1),(4193,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','291','4185','Deterioro de valor del inmovilizado material',NULL,NULL,1),(4194,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2910','4193','Deterioro de valor de terrenos y bienes naturales',NULL,NULL,1),(4195,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2911','4193','Deterioro de valor de construcciones',NULL,NULL,1),(4196,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2912','4193','Deterioro de valor de instalaciones técnicas',NULL,NULL,1),(4197,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2913','4193','Deterioro de valor de maquinaria',NULL,NULL,1),(4198,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2914','4193','Deterioro de valor de utillajes',NULL,NULL,1),(4199,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2915','4194','Deterioro de valor de otras instalaciones',NULL,NULL,1),(4200,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2916','4194','Deterioro de valor de mobiliario',NULL,NULL,1),(4201,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2917','4194','Deterioro de valor de equipos para proceso de información',NULL,NULL,1),(4202,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2918','4194','Deterioro de valor de elementos de transporte',NULL,NULL,1),(4203,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2919','4194','Deterioro de valor de otro inmovilizado material',NULL,NULL,1),(4204,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','292','4185','Deterioro de valor de las inversiones inmobiliarias',NULL,NULL,1),(4205,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2920','4204','Deterioro de valor de terrenos y bienes naturales',NULL,NULL,1),(4206,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2921','4204','Deterioro de valor de construcciones',NULL,NULL,1),(4207,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','293','4185','Deterioro de valor de participaciones a largo plazo en partes vinculadas',NULL,NULL,1),(4208,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2933','4207','Deterioro de valor de participaciones a largo plazo en empresas del grupo',NULL,NULL,1),(4209,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2934','4207','Deterioro de valor de sobre participaciones a largo plazo en empresas asociadas',NULL,NULL,1),(4210,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2935','4207','Deterioro de valor de sobre participaciones a largo plazo en otras partes vinculadas',NULL,NULL,1),(4211,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','294','4185','Deterioro de valor de valores representativos de deuda a largo plazo en partes vinculadas',NULL,NULL,1),(4212,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2943','4211','Deterioro de valor de valores representativos de deuda a largo plazo en empresas del grupo',NULL,NULL,1),(4213,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2944','4211','Deterioro de valor de valores representativos de deuda a largo plazo en empresas asociadas',NULL,NULL,1),(4214,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2945','4211','Deterioro de valor de valores representativos de deuda a largo plazo en otras partes vinculadas',NULL,NULL,1),(4215,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','295','4185','Deterioro de valor de créditos a largo plazo a partes vinculadas',NULL,NULL,1),(4216,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2953','4215','Deterioro de valor de créditos a largo plazo a empresas del grupo',NULL,NULL,1),(4217,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2954','4215','Deterioro de valor de créditos a largo plazo a empresas asociadas',NULL,NULL,1),(4218,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','2955','4215','Deterioro de valor de créditos a largo plazo a otras partes vinculadas',NULL,NULL,1),(4219,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','296','4185','Deterioro de valor de participaciones en el patrimonio netoa largo plazo',NULL,NULL,1),(4220,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','297','4185','Deterioro de valor de valores representativos de deuda a largo plazo',NULL,NULL,1),(4221,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACTIVO','XXXXXX','298','4185','Deterioro de valor de créditos a largo plazo',NULL,NULL,1),(4222,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','30','4003','Comerciales',NULL,NULL,1),(4223,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','300','4222','Mercaderías A',NULL,NULL,1),(4224,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','301','4222','Mercaderías B',NULL,NULL,1),(4225,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','31','4003','Materias primas',NULL,NULL,1),(4226,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','310','4225','Materias primas A',NULL,NULL,1),(4227,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','311','4225','Materias primas B',NULL,NULL,1),(4228,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','32','4003','Otros aprovisionamientos',NULL,NULL,1),(4229,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','320','4228','Elementos y conjuntos incorporables',NULL,NULL,1),(4230,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','321','4228','Combustibles',NULL,NULL,1),(4231,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','322','4228','Repuestos',NULL,NULL,1),(4232,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','325','4228','Materiales diversos',NULL,NULL,1),(4233,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','326','4228','Embalajes',NULL,NULL,1),(4234,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','327','4228','Envases',NULL,NULL,1),(4235,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','328','4229','Material de oficina',NULL,NULL,1),(4236,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','33','4003','Productos en curso',NULL,NULL,1),(4237,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','330','4236','Productos en curos A',NULL,NULL,1),(4238,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','331','4236','Productos en curso B',NULL,NULL,1),(4239,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','34','4003','Productos semiterminados',NULL,NULL,1),(4240,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','340','4239','Productos semiterminados A',NULL,NULL,1),(4241,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','341','4239','Productos semiterminados B',NULL,NULL,1),(4242,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','35','4003','Productos terminados',NULL,NULL,1),(4243,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','350','4242','Productos terminados A',NULL,NULL,1),(4244,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','351','4242','Productos terminados B',NULL,NULL,1),(4245,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','36','4003','Subproductos, residuos y materiales recuperados',NULL,NULL,1),(4246,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','360','4245','Subproductos A',NULL,NULL,1),(4247,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','361','4245','Subproductos B',NULL,NULL,1),(4248,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','365','4245','Residuos A',NULL,NULL,1),(4249,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','366','4245','Residuos B',NULL,NULL,1),(4250,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','368','4245','Materiales recuperados A',NULL,NULL,1),(4251,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','369','4245','Materiales recuperados B',NULL,NULL,1),(4252,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','39','4003','Deterioro de valor de las existencias',NULL,NULL,1),(4253,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','390','4252','Deterioro de valor de las mercaderías',NULL,NULL,1),(4254,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','391','4252','Deterioro de valor de las materias primas',NULL,NULL,1),(4255,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','392','4252','Deterioro de valor de otros aprovisionamientos',NULL,NULL,1),(4256,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','393','4252','Deterioro de valor de los productos en curso',NULL,NULL,1),(4257,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','394','4252','Deterioro de valor de los productos semiterminados',NULL,NULL,1),(4258,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','395','4252','Deterioro de valor de los productos terminados',NULL,NULL,1),(4259,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','EXISTENCIAS','XXXXXX','396','4252','Deterioro de valor de los subproductos, residuos y materiales recuperados',NULL,NULL,1),(4260,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','PROVEEDORES','40','4004','Proveedores',NULL,NULL,1),(4261,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','PROVEEDORES','400','4260','Proveedores',NULL,NULL,1),(4262,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4000','4261','Proveedores euros',NULL,NULL,1),(4263,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4004','4261','Proveedores moneda extranjera',NULL,NULL,1),(4264,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4009','4261','Proveedores facturas pendientes de recibir o formalizar',NULL,NULL,1),(4265,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','401','4260','Proveedores efectos comerciales a pagar',NULL,NULL,1),(4266,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','403','4260','Proveedores empresas del grupo',NULL,NULL,1),(4267,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4030','4266','Proveedores empresas del grupo euros',NULL,NULL,1),(4268,1,NULL,'2017-08-26 22:04:46','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4031','4266','Efectos comerciales a pagar empresas del grupo',NULL,NULL,1),(4269,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4034','4266','Proveedores empresas del grupo moneda extranjera',NULL,NULL,1),(4270,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4036','4266','Envases y embalajes a devolver a proveedores empresas del grupo',NULL,NULL,1),(4271,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4039','4266','Proveedores empresas del grupo facturas pendientes de recibir o de formalizar',NULL,NULL,1),(4272,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','404','4260','Proveedores empresas asociadas',NULL,NULL,1),(4273,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','405','4260','Proveedores otras partes vinculadas',NULL,NULL,1),(4274,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','406','4260','Envases y embalajes a devolver a proveedores',NULL,NULL,1),(4275,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','407','4260','Anticipos a proveedores',NULL,NULL,1),(4276,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','41','4004','Acreedores varios',NULL,NULL,1),(4277,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','410','4276','Acreedores por prestaciones de servicios',NULL,NULL,1),(4278,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4100','4277','Acreedores por prestaciones de servicios euros',NULL,NULL,1),(4279,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4104','4277','Acreedores por prestaciones de servicios moneda extranjera',NULL,NULL,1),(4280,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4109','4277','Acreedores por prestaciones de servicios facturas pendientes de recibir o formalizar',NULL,NULL,1),(4281,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','411','4276','Acreedores efectos comerciales a pagar',NULL,NULL,1),(4282,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','419','4276','Acreedores por operaciones en común',NULL,NULL,1),(4283,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','CLIENTES','43','4004','Clientes',NULL,NULL,1),(4284,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','CLIENTES','430','4283','Clientes',NULL,NULL,1),(4285,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4300','4284','Clientes euros',NULL,NULL,1),(4286,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4304','4284','Clientes moneda extranjera',NULL,NULL,1),(4287,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4309','4284','Clientes facturas pendientes de formalizar',NULL,NULL,1),(4288,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','431','4283','Clientes efectos comerciales a cobrar',NULL,NULL,1),(4289,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4310','4288','Efectos comerciales en cartera',NULL,NULL,1),(4290,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4311','4288','Efectos comerciales descontados',NULL,NULL,1),(4291,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4312','4288','Efectos comerciales en gestión de cobro',NULL,NULL,1),(4292,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4315','4288','Efectos comerciales impagados',NULL,NULL,1),(4293,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','432','4283','Clientes operaciones de factoring',NULL,NULL,1),(4294,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','433','4283','Clientes empresas del grupo',NULL,NULL,1),(4295,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4330','4294','Clientes empresas del grupo euros',NULL,NULL,1),(4296,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4331','4294','Efectos comerciales a cobrar empresas del grupo',NULL,NULL,1),(4297,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4332','4294','Clientes empresas del grupo operaciones de factoring',NULL,NULL,1),(4298,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4334','4294','Clientes empresas del grupo moneda extranjera',NULL,NULL,1),(4299,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4336','4294','Clientes empresas del grupo dudoso cobro',NULL,NULL,1),(4300,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4337','4294','Envases y embalajes a devolver a clientes empresas del grupo',NULL,NULL,1),(4301,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4339','4294','Clientes empresas del grupo facturas pendientes de formalizar',NULL,NULL,1),(4302,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','434','4283','Clientes empresas asociadas',NULL,NULL,1),(4303,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','435','4283','Clientes otras partes vinculadas',NULL,NULL,1),(4304,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','436','4283','Clientes de dudoso cobro',NULL,NULL,1),(4305,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','437','4283','Envases y embalajes a devolver por clientes',NULL,NULL,1),(4306,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','438','4283','Anticipos de clientes',NULL,NULL,1),(4307,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','44','4004','Deudores varios',NULL,NULL,1),(4308,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','440','4307','Deudores',NULL,NULL,1),(4309,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4400','4308','Deudores euros',NULL,NULL,1),(4310,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4404','4308','Deudores moneda extranjera',NULL,NULL,1),(4311,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4409','4308','Deudores facturas pendientes de formalizar',NULL,NULL,1),(4312,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','441','4307','Deudores efectos comerciales a cobrar',NULL,NULL,1),(4313,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4410','4312','Deudores efectos comerciales en cartera',NULL,NULL,1),(4314,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4411','4312','Deudores efectos comerciales descontados',NULL,NULL,1),(4315,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4412','4312','Deudores efectos comerciales en gestión de cobro',NULL,NULL,1),(4316,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4415','4312','Deudores efectos comerciales impagados',NULL,NULL,1),(4317,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','446','4307','Deudores de dusoso cobro',NULL,NULL,1),(4318,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','449','4307','Deudores por operaciones en común',NULL,NULL,1),(4319,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','46','4004','Personal',NULL,NULL,1),(4320,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','460','4319','Anticipos de renumeraciones',NULL,NULL,1),(4321,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','465','4319','Renumeraciones pendientes de pago',NULL,NULL,1),(4322,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','47','4004','Administraciones Públicas',NULL,NULL,1),(4323,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','470','4322','Hacienda Pública deudora por diversos conceptos',NULL,NULL,1),(4324,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4700','4323','Hacienda Pública deudora por IVA',NULL,NULL,1),(4325,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4708','4323','Hacienda Pública deudora por subvenciones concedidas',NULL,NULL,1),(4326,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4709','4323','Hacienda Pública deudora por devolución de impuestos',NULL,NULL,1),(4327,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','471','4322','Organismos de la Seguridad Social deudores',NULL,NULL,1),(4328,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','472','4322','Hacienda Pública IVA soportado',NULL,NULL,1),(4329,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','473','4322','Hacienda Pública retenciones y pagos a cuenta',NULL,NULL,1),(4330,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','474','4322','Activos por impuesto diferido',NULL,NULL,1),(4331,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4740','4330','Activos por diferencias temporarias deducibles',NULL,NULL,1),(4332,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4742','4330','Derechos por deducciones y bonificaciones pendientes de aplicar',NULL,NULL,1),(4333,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4745','4330','Crédito por pérdidasa compensar del ejercicio',NULL,NULL,1),(4334,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','475','4322','Hacienda Pública acreedora por conceptos fiscales',NULL,NULL,1),(4335,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4750','4334','Hacienda Pública acreedora por IVA',NULL,NULL,1),(4336,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4751','4334','Hacienda Pública acreedora por retenciones practicadas',NULL,NULL,1),(4337,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4752','4334','Hacienda Pública acreedora por impuesto sobre sociedades',NULL,NULL,1),(4338,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4758','4334','Hacienda Pública acreedora por subvenciones a integrar',NULL,NULL,1),(4339,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','476','4322','Organismos de la Seguridad Social acreedores',NULL,NULL,1),(4340,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','477','4322','Hacienda Pública IVA repercutido',NULL,NULL,1),(4341,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','479','4322','Pasivos por diferencias temporarias imponibles',NULL,NULL,1),(4342,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','48','4004','Ajustes por periodificación',NULL,NULL,1),(4343,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','480','4342','Gastos anticipados',NULL,NULL,1),(4344,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','485','4342','Ingresos anticipados',NULL,NULL,1),(4345,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','49','4004','Deterioro de valor de créditos comerciales y provisiones a corto plazo',NULL,NULL,1),(4346,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','490','4345','Deterioro de valor de créditos por operaciones comerciales',NULL,NULL,1),(4347,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','493','4345','Deterioro de valor de créditos por operaciones comerciales con partes vinculadas',NULL,NULL,1),(4348,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4933','4347','Deterioro de valor de créditos por operaciones comerciales con empresas del grupo',NULL,NULL,1),(4349,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4934','4347','Deterioro de valor de créditos por operaciones comerciales con empresas asociadas',NULL,NULL,1),(4350,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4935','4347','Deterioro de valor de créditos por operaciones comerciales con otras partes vinculadas',NULL,NULL,1),(4351,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','499','4345','Provisiones por operaciones comerciales',NULL,NULL,1),(4352,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4994','4351','Provisión para contratos anerosos',NULL,NULL,1),(4353,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','ACREEDORES_DEUDORES','XXXXXX','4999','4351','Provisión para otras operaciones comerciales',NULL,NULL,1),(4354,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','50','4005','Emprésitos deudas con características especiales y otras emisiones análogas a corto plazo',NULL,NULL,1),(4355,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','500','4354','Obligaciones y bonos a corto plazo',NULL,NULL,1),(4356,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','502','4354','Acciones o participaciones a corto plazo consideradas como pasivos financieros',NULL,NULL,1),(4357,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','505','4354','Deudas representadas en otros valores negociables a corto plazo',NULL,NULL,1),(4358,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','506','4354','Intereses a corto plazo de emprésitos y otras emisiones analógicas',NULL,NULL,1),(4359,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','507','4354','Dividendos de acciones o participaciones consideradas como pasivos financieros',NULL,NULL,1),(4360,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','509','4354','Valores negociables amortizados',NULL,NULL,1),(4361,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5090','4360','Obligaciones y bonos amortizados',NULL,NULL,1),(4362,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5095','4360','Otros valores negociables amortizados',NULL,NULL,1),(4363,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','51','4005','Deudas a corto plazo con partes vinculadas',NULL,NULL,1),(4364,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','510','4363','Deudas a corto plazo con entidades de crédito vinculadas',NULL,NULL,1),(4365,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5103','4364','Deudas a corto plazo con entidades de crédito empresas del grupo',NULL,NULL,1),(4366,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5104','4364','Deudas a corto plazo con entidades de crédito empresas asociadas',NULL,NULL,1),(4367,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5105','4364','Deudas a corto plazo con otras entidades de crédito vinculadas',NULL,NULL,1),(4368,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','511','4363','Proveedores de inmovilizado a corto plazo partes vinculadas',NULL,NULL,1),(4369,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5113','4368','Proveedores de inmovilizado a corto plazo empresas del grupo',NULL,NULL,1),(4370,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5114','4368','Proveedores de inmovilizado a corto plazo empresas asociadas',NULL,NULL,1),(4371,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5115','4368','Proveedores de inmovilizado a corto plazo otras partes vinculadas',NULL,NULL,1),(4372,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','512','4363','Acreedores por arrendamiento financiero a corto plazo partes vinculadas',NULL,NULL,1),(4373,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5123','4372','Acreedores por arrendamiento financiero a corto plazo empresas del grupo',NULL,NULL,1),(4374,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5124','4372','Acreedores por arrendamiento financiero a corto plazo empresas asociadas',NULL,NULL,1),(4375,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5125','4372','Acreedores por arrendamiento financiero a corto plazo otras partes vinculadas',NULL,NULL,1),(4376,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','513','4363','Otras deudas a corto plazo con partes vinculadas',NULL,NULL,1),(4377,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5133','4376','Otras deudas a corto plazo con empresas del grupo',NULL,NULL,1),(4378,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5134','4376','Otras deudas a corto plazo con empresas asociadas',NULL,NULL,1),(4379,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5135','4376','Otras deudas a corto plazo con partes vinculadas',NULL,NULL,1),(4380,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','514','4363','Intereses a corto plazo con partes vinculadas',NULL,NULL,1),(4381,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5143','4380','Intereses a corto plazo empresas del grupo',NULL,NULL,1),(4382,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5144','4380','Intereses a corto plazo empresas asociadas',NULL,NULL,1),(4383,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5145','4380','Intereses deudas a corto plazo partes vinculadas',NULL,NULL,1),(4384,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','52','4005','Deudas a corto plazo por préstamos recibidos y otros conceptos',NULL,NULL,1),(4385,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','520','4384','Deudas a corto plazo con entidades de crédito',NULL,NULL,1),(4386,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5200','4385','Préstamos a corto plazo de entidades de crédito',NULL,NULL,1),(4387,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5201','4385','Deudas a corto plazo por crédito dispuesto',NULL,NULL,1),(4388,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5208','4385','Deudas por efectos descontados',NULL,NULL,1),(4389,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5209','4385','Deudas por operaciones de factoring',NULL,NULL,1),(4390,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','521','4384','Deudas a corto plazo',NULL,NULL,1),(4391,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','522','4384','Deudas a corto plazo transformables en subvenciones donaciones y legados',NULL,NULL,1),(4392,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','523','4384','Proveedores de inmovilizado a corto plazo',NULL,NULL,1),(4393,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','526','4384','Dividendo activo a pagar',NULL,NULL,1),(4394,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','527','4384','Intereses a corto plazo de deudas con entidades de crédito',NULL,NULL,1),(4395,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','528','4384','Intereses a corto plazo de deudas',NULL,NULL,1),(4396,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','529','4384','Provisiones a corto plazo',NULL,NULL,1),(4397,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5291','4396','Provisión a corto plazo para impuestos',NULL,NULL,1),(4398,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5292','4396','Provisión a corto plazo para otras responsabilidades',NULL,NULL,1),(4399,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5293','4396','Provisión a corto plazo por desmantelamiento retiro o rehabilitación del inmovilizado',NULL,NULL,1),(4400,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5295','4396','Provisión a corto plazo para actuaciones medioambientales',NULL,NULL,1),(4401,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','53','4005','Inversiones financieras a corto plazo en partes vinculadas',NULL,NULL,1),(4402,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','530','4401','Participaciones a corto plazo en partes vinculadas',NULL,NULL,1),(4403,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5303','4402','Participaciones a corto plazo en empresas del grupo',NULL,NULL,1),(4404,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5304','4402','Participaciones a corto plazo en empresas asociadas',NULL,NULL,1),(4405,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5305','4402','Participaciones a corto plazo en otras partes vinculadas',NULL,NULL,1),(4406,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','531','4401','Valores representativos de deuda a corto plazo de partes vinculadas',NULL,NULL,1),(4407,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5313','4406','Valores representativos de deuda a corto plazo de empresas del grupo',NULL,NULL,1),(4408,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5314','4406','Valores representativos de deuda a corto plazo de empresas asociadas',NULL,NULL,1),(4409,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5315','4406','Valores representativos de deuda a corto plazo de otras partes vinculadas',NULL,NULL,1),(4410,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','532','4401','Créditos a corto plazo a partes vinculadas',NULL,NULL,1),(4411,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5323','4410','Créditos a corto plazo a empresas del grupo',NULL,NULL,1),(4412,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5324','4410','Créditos a corto plazo a empresas asociadas',NULL,NULL,1),(4413,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5325','4410','Créditos a corto plazo a otras partes vinculadas',NULL,NULL,1),(4414,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','533','4401','Intereses a corto plazo de valores representativos de deuda de partes vinculadas',NULL,NULL,1),(4415,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5333','4414','Intereses a corto plazo de valores representativos de deuda en empresas del grupo',NULL,NULL,1),(4416,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5334','4414','Intereses a corto plazo de valores representativos de deuda en empresas asociadas',NULL,NULL,1),(4417,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5335','4414','Intereses a corto plazo de valores representativos de deuda en otras partes vinculadas',NULL,NULL,1),(4418,1,NULL,'2017-08-26 22:04:47','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','534','4401','Intereses a corto plazo de créditos a partes vinculadas',NULL,NULL,1),(4419,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5343','4418','Intereses a corto plazo de créditos a empresas del grupo',NULL,NULL,1),(4420,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5344','4418','Intereses a corto plazo de créditos a empresas asociadas',NULL,NULL,1),(4421,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5345','4418','Intereses a corto plazo de créditos a otras partes vinculadas',NULL,NULL,1),(4422,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','535','4401','Dividendo a cobrar de inversiones financieras en partes vinculadas',NULL,NULL,1),(4423,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5353','4422','Dividendo a cobrar de empresas del grupo',NULL,NULL,1),(4424,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5354','4422','Dividendo a cobrar de empresas asociadas',NULL,NULL,1),(4425,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5355','4422','Dividendo a cobrar de otras partes vinculadas',NULL,NULL,1),(4426,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','539','4401','Desembolsos pendientes sobre participaciones a corto plazo en partes vinculadas',NULL,NULL,1),(4427,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5393','4426','Desembolsos pendientes sobre participaciones a corto plazo en empresas del grupo',NULL,NULL,1),(4428,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5394','4426','Desembolsos pendientes sobre participaciones a corto plazo en empresas asociadas',NULL,NULL,1),(4429,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5395','4426','Desembolsos pendientes sobre participaciones a corto plazo en otras partes vinculadas',NULL,NULL,1),(4430,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','54','4005','Otras inversiones financieras a corto plazo',NULL,NULL,1),(4431,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','540','4430','Inversiones financieras a corto plazo en instrumentos de patrimonio',NULL,NULL,1),(4432,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','541','4430','Valores representativos de deuda a corto plazo',NULL,NULL,1),(4433,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','542','4430','Créditos a corto plazo',NULL,NULL,1),(4434,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','543','4430','Créditos a corto plazo por enejenación de inmovilizado',NULL,NULL,1),(4435,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','544','4430','Créditos a corto plazo al personal',NULL,NULL,1),(4436,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','545','4430','Dividendo a cobrar',NULL,NULL,1),(4437,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','546','4430','Intereses a corto plazo de valores reprsentativos de deuda',NULL,NULL,1),(4438,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','547','4430','Intereses a corto plazo de créditos',NULL,NULL,1),(4439,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','548','4430','Imposiciones a corto plazo',NULL,NULL,1),(4440,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','549','4430','Desembolsos pendientes sobre participaciones en el patrimonio neto a corto plazo',NULL,NULL,1),(4441,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','55','4005','Otras cuentas no bancarias',NULL,NULL,1),(4442,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','550','4441','Titular de la explotación',NULL,NULL,1),(4443,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','551','4441','Cuenta corriente con socios y administradores',NULL,NULL,1),(4444,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','552','4441','Cuenta corriente otras personas y entidades vinculadas',NULL,NULL,1),(4445,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5523','4444','Cuenta corriente con empresas del grupo',NULL,NULL,1),(4446,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5524','4444','Cuenta corriente con empresas asociadas',NULL,NULL,1),(4447,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5525','4444','Cuenta corriente con otras partes vinculadas',NULL,NULL,1),(4448,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','554','4441','Cuenta corriente con uniones temporales de empresas y comunidades de bienes',NULL,NULL,1),(4449,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','555','4441','Partidas pendientes de aplicación',NULL,NULL,1),(4450,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','556','4441','Desembolsos exigidos sobre participaciones en el patrimonio neto',NULL,NULL,1),(4451,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5563','4450','Desembolsos exigidos sobre participaciones empresas del grupo',NULL,NULL,1),(4452,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5564','4450','Desembolsos exigidos sobre participaciones empresas asociadas',NULL,NULL,1),(4453,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5565','4450','Desembolsos exigidos sobre participaciones otras partes vinculadas',NULL,NULL,1),(4454,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5566','4450','Desembolsos exigidos sobre participaciones otras empresas',NULL,NULL,1),(4455,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','557','4441','Dividendo activo a cuenta',NULL,NULL,1),(4456,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','558','4441','Socios por desembolsos exigidos',NULL,NULL,1),(4457,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5580','4456','Socios por desembolsos exigidos sobre acciones o participaciones ordinarias',NULL,NULL,1),(4458,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5585','4456','Socios por desembolsos exigidos sobre acciones o participaciones consideradas como pasivos financieros',NULL,NULL,1),(4459,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','559','4441','Derivados financieros a corto plazo',NULL,NULL,1),(4460,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5590','4459','Activos por derivados financieros a corto plazo',NULL,NULL,1),(4461,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5595','4459','Pasivos por derivados financieros a corto plazo',NULL,NULL,1),(4462,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','56','4005','Finanzas y depósitos recibidos y constituidos a corto plazo y ajustes por periodificación',NULL,NULL,1),(4463,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','560','4462','Finanzas recibidas a corto plazo',NULL,NULL,1),(4464,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','561','4462','Depósitos recibidos a corto plazo',NULL,NULL,1),(4465,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','565','4462','Finanzas constituidas a corto plazo',NULL,NULL,1),(4466,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','566','4462','Depósitos constituidos a corto plazo',NULL,NULL,1),(4467,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','567','4462','Intereses pagados por anticipado',NULL,NULL,1),(4468,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','568','4462','Intereses cobrados a corto plazo',NULL,NULL,1),(4469,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','57','4005','Tesorería',NULL,NULL,1),(4470,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','CAJA','570','4469','Caja euros',NULL,NULL,1),(4471,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','571','4469','Caja moneda extranjera',NULL,NULL,1),(4472,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','BANCOS','572','4469','Bancos e instituciones de crédito cc vista euros',NULL,NULL,1),(4473,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','573','4469','Bancos e instituciones de crédito cc vista moneda extranjera',NULL,NULL,1),(4474,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','574','4469','Bancos e instituciones de crédito cuentas de ahorro euros',NULL,NULL,1),(4475,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','575','4469','Bancos e instituciones de crédito cuentas de ahorro moneda extranjera',NULL,NULL,1),(4476,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','576','4469','Inversiones a corto plazo de gran liquidez',NULL,NULL,1),(4477,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','59','4005','Deterioro del valor de las inversiones financieras a corto plazo',NULL,NULL,1),(4478,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','593','4477','Deterioro del valor de participaciones a corto plazo en partes vinculadas',NULL,NULL,1),(4479,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5933','4478','Deterioro del valor de participaciones a corto plazo en empresas del grupo',NULL,NULL,1),(4480,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5934','4478','Deterioro del valor de participaciones a corto plazo en empresas asociadas',NULL,NULL,1),(4481,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5935','4478','Deterioro del valor de participaciones a corto plazo en otras partes vinculadas',NULL,NULL,1),(4482,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','594','4477','Deterioro del valor de valores representativos de deuda a corto plazo en partes vinculadas',NULL,NULL,1),(4483,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5943','4482','Deterioro del valor de valores representativos de deuda a corto plazo en empresas del grupo',NULL,NULL,1),(4484,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5944','4482','Deterioro del valor de valores representativos de deuda a corto plazo en empresas asociadas',NULL,NULL,1),(4485,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5945','4482','Deterioro del valor de valores representativos de deuda a corto plazo en otras partes vinculadas',NULL,NULL,1),(4486,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','595','4477','Deterioro del valor de créditos a corto plazo en partes vinculadas',NULL,NULL,1),(4487,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5953','4486','Deterioro del valor de créditos a corto plazo en empresas del grupo',NULL,NULL,1),(4488,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5954','4486','Deterioro del valor de créditos a corto plazo en empresas asociadas',NULL,NULL,1),(4489,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','5955','4486','Deterioro del valor de créditos a corto plazo en otras partes vinculadas',NULL,NULL,1),(4490,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','596','4477','Deterioro del valor de participaciones a corto plazo',NULL,NULL,1),(4491,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','597','4477','Deterioro del valor de valores representativos de deuda a corto plazo',NULL,NULL,1),(4492,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','CUENTAS_FINANCIERAS','XXXXXX','598','4477','Deterioro de valor de créditos a corto plazo',NULL,NULL,1),(4493,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','60','4006','Compras',NULL,NULL,1),(4494,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','COMPRAS','600','4493','Compras de mercaderías',NULL,NULL,1),(4495,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','COMPRAS','601','4493','Compras de materias primas',NULL,NULL,1),(4496,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','602','4493','Compras de otros aprovisionamientos',NULL,NULL,1),(4497,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','606','4493','Descuentos sobre compras por pronto pago',NULL,NULL,1),(4498,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6060','4497','Descuentos sobre compras por pronto pago de mercaderías',NULL,NULL,1),(4499,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6061','4497','Descuentos sobre compras por pronto pago de materias primas',NULL,NULL,1),(4500,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6062','4497','Descuentos sobre compras por pronto pago de otros aprovisionamientos',NULL,NULL,1),(4501,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','COMPRAS','607','4493','Trabajos realizados por otras empresas',NULL,NULL,1),(4502,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','608','4493','Devoluciones de compras y operaciones similares',NULL,NULL,1),(4503,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6080','4502','Devoluciones de compras de mercaderías',NULL,NULL,1),(4504,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6081','4502','Devoluciones de compras de materias primas',NULL,NULL,1),(4505,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6082','4502','Devoluciones de compras de otros aprovisionamientos',NULL,NULL,1),(4506,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','609','4493','Rappels por compras',NULL,NULL,1),(4507,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6090','4506','Rappels por compras de mercaderías',NULL,NULL,1),(4508,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6091','4506','Rappels por compras de materias primas',NULL,NULL,1),(4509,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6092','4506','Rappels por compras de otros aprovisionamientos',NULL,NULL,1),(4510,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','61','4006','Variación de existencias',NULL,NULL,1),(4511,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','610','4510','Variación de existencias de mercaderías',NULL,NULL,1),(4512,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','611','4510','Variación de existencias de materias primas',NULL,NULL,1),(4513,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','612','4510','Variación de existencias de otros aprovisionamientos',NULL,NULL,1),(4514,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','62','4006','Servicios exteriores',NULL,NULL,1),(4515,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','620','4514','Gastos en investigación y desarrollo del ejercicio',NULL,NULL,1),(4516,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','621','4514','Arrendamientos y cánones',NULL,NULL,1),(4517,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','622','4514','Reparaciones y conservación',NULL,NULL,1),(4518,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','623','4514','Servicios profesionales independientes',NULL,NULL,1),(4519,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','624','4514','Transportes',NULL,NULL,1),(4520,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','625','4514','Primas de seguros',NULL,NULL,1),(4521,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','626','4514','Servicios bancarios y similares',NULL,NULL,1),(4522,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','627','4514','Publicidad, propaganda y relaciones públicas',NULL,NULL,1),(4523,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','628','4514','Suministros',NULL,NULL,1),(4524,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','629','4514','Otros servicios',NULL,NULL,1),(4525,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','63','4006','Tributos',NULL,NULL,1),(4526,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','630','4525','Impuesto sobre benecifios',NULL,NULL,1),(4527,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6300','4526','Impuesto corriente',NULL,NULL,1),(4528,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6301','4526','Impuesto diferido',NULL,NULL,1),(4529,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','631','4525','Otros tributos',NULL,NULL,1),(4530,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','633','4525','Ajustes negativos en la imposición sobre beneficios',NULL,NULL,1),(4531,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','634','4525','Ajustes negativos en la imposición indirecta',NULL,NULL,1),(4532,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6341','4531','Ajustes negativos en IVA de activo corriente',NULL,NULL,1),(4533,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6342','4531','Ajustes negativos en IVA de inversiones',NULL,NULL,1),(4534,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','636','4525','Devolución de impuestos',NULL,NULL,1),(4535,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','638','4525','Ajustes positivos en la imposición sobre beneficios',NULL,NULL,1),(4536,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','639','4525','Ajustes positivos en la imposición directa',NULL,NULL,1),(4537,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6391','4536','Ajustes positivos en IVA de activo corriente',NULL,NULL,1),(4538,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6392','4536','Ajustes positivos en IVA de inversiones',NULL,NULL,1),(4539,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','64','4006','Gastos de personal',NULL,NULL,1),(4540,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','640','4539','Sueldos y salarios',NULL,NULL,1),(4541,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','641','4539','Indemnizaciones',NULL,NULL,1),(4542,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','642','4539','Seguridad social a cargo de la empresa',NULL,NULL,1),(4543,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','649','4539','Otros gastos sociales',NULL,NULL,1),(4544,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','65','4006','Otros gastos de gestión',NULL,NULL,1),(4545,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','650','4544','Pérdidas de créditos comerciales incobrables',NULL,NULL,1),(4546,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','651','4544','Resultados de operaciones en común',NULL,NULL,1),(4547,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6510','4546','Beneficio transferido gestor',NULL,NULL,1),(4548,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6511','4546','Pérdida soportada participe o asociado no gestor',NULL,NULL,1),(4549,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','659','4544','Otras pérdidas en gestión corriente',NULL,NULL,1),(4550,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','66','4006','Gastos financieros',NULL,NULL,1),(4551,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','660','4550','Gastos financieros por actualización de provisiones',NULL,NULL,1),(4552,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','661','4550','Intereses de obligaciones y bonos',NULL,NULL,1),(4553,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6610','4452','Intereses de obligaciones y bonos a largo plazo empresas del grupo',NULL,NULL,1),(4554,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6611','4452','Intereses de obligaciones y bonos a largo plazo empresas asociadas',NULL,NULL,1),(4555,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6612','4452','Intereses de obligaciones y bonos a largo plazo otras partes vinculadas',NULL,NULL,1),(4556,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6613','4452','Intereses de obligaciones y bonos a largo plazo otras empresas',NULL,NULL,1),(4557,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6615','4452','Intereses de obligaciones y bonos a corto plazo empresas del grupo',NULL,NULL,1),(4558,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6616','4452','Intereses de obligaciones y bonos a corto plazo empresas asociadas',NULL,NULL,1),(4559,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6617','4452','Intereses de obligaciones y bonos a corto plazo otras partes vinculadas',NULL,NULL,1),(4560,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6618','4452','Intereses de obligaciones y bonos a corto plazo otras empresas',NULL,NULL,1),(4561,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','662','4550','Intereses de deudas',NULL,NULL,1),(4562,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6620','4561','Intereses de deudas empresas del grupo',NULL,NULL,1),(4563,1,NULL,'2017-08-26 22:04:48','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6621','4561','Intereses de deudas empresas asociadas',NULL,NULL,1),(4564,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6622','4561','Intereses de deudas otras partes vinculadas',NULL,NULL,1),(4565,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6623','4561','Intereses de deudas con entidades de crédito',NULL,NULL,1),(4566,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6624','4561','Intereses de deudas otras empresas',NULL,NULL,1),(4567,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','663','4550','Pérdidas por valorización de activos y pasivos financieros por su valor razonable',NULL,NULL,1),(4568,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','664','4550','Gastos por dividendos de acciones o participaciones consideradas como pasivos financieros',NULL,NULL,1),(4569,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6640','4568','Dividendos de pasivos empresas del grupo',NULL,NULL,1),(4570,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6641','4568','Dividendos de pasivos empresas asociadas',NULL,NULL,1),(4571,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6642','4568','Dividendos de pasivos otras partes vinculadas',NULL,NULL,1),(4572,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6643','4568','Dividendos de pasivos otras empresas',NULL,NULL,1),(4573,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','665','4550','Intereses por descuento de efectos y operaciones de factoring',NULL,NULL,1),(4574,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6650','4573','Intereses por descuento de efectos en entidades de crédito del grupo',NULL,NULL,1),(4575,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6651','4573','Intereses por descuento de efectos en entidades de crédito asociadas',NULL,NULL,1),(4576,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6652','4573','Intereses por descuento de efectos en entidades de crédito vinculadas',NULL,NULL,1),(4577,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6653','4573','Intereses por descuento de efectos en otras entidades de crédito',NULL,NULL,1),(4578,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6654','4573','Intereses por operaciones de factoring con entidades de crédito del grupo',NULL,NULL,1),(4579,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6655','4573','Intereses por operaciones de factoring con entidades de crédito asociadas',NULL,NULL,1),(4580,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6656','4573','Intereses por operaciones de factoring con otras entidades de crédito vinculadas',NULL,NULL,1),(4581,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6657','4573','Intereses por operaciones de factoring con otras entidades de crédito',NULL,NULL,1),(4582,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','666','4550','Pérdidas en participaciones y valores representativos de deuda',NULL,NULL,1),(4583,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6660','4582','Pérdidas en valores representativos de deuda a largo plazo empresas del grupo',NULL,NULL,1),(4584,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6661','4582','Pérdidas en valores representativos de deuda a largo plazo empresas asociadas',NULL,NULL,1),(4585,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6662','4582','Pérdidas en valores representativos de deuda a largo plazo otras partes vinculadas',NULL,NULL,1),(4586,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6663','4582','Pérdidas en participaciones y valores representativos de deuda a largo plazo otras empresas',NULL,NULL,1),(4587,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6665','4582','Pérdidas en participaciones y valores representativos de deuda a corto plazo empresas del grupo',NULL,NULL,1),(4588,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6666','4582','Pérdidas en participaciones y valores representativos de deuda a corto plazo empresas asociadas',NULL,NULL,1),(4589,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6667','4582','Pérdidas en valores representativos de deuda a corto plazo otras partes vinculadas',NULL,NULL,1),(4590,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6668','4582','Pérdidas en valores representativos de deuda a corto plazo otras empresas',NULL,NULL,1),(4591,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','667','4550','Pérdidas de créditos no comerciales',NULL,NULL,1),(4592,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6670','4591','Pérdidas de créditos a largo plazo empresas del grupo',NULL,NULL,1),(4593,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6671','4591','Pérdidas de créditos a largo plazo empresas asociadas',NULL,NULL,1),(4594,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6672','4591','Pérdidas de créditos a largo plazo otras partes vinculadas',NULL,NULL,1),(4595,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6673','4591','Pérdidas de créditos a largo plazo otras empresas',NULL,NULL,1),(4596,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6675','4591','Pérdidas de créditos a corto plazo empresas del grupo',NULL,NULL,1),(4597,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6676','4591','Pérdidas de créditos a corto plazo empresas asociadas',NULL,NULL,1),(4598,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6677','4591','Pérdidas de créditos a corto plazo otras partes vinculadas',NULL,NULL,1),(4599,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6678','4591','Pérdidas de créditos a corto plazo otras empresas',NULL,NULL,1),(4600,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','668','4550','Diferencias negativas de cambio',NULL,NULL,1),(4601,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','669','4550','Otros gastos financieros',NULL,NULL,1),(4602,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','67','4006','Pérdidas procedentes de activos no corrientes y gastos excepcionales',NULL,NULL,1),(4603,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','670','4602','Pérdidas procedentes del inmovilizado intangible',NULL,NULL,1),(4604,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','671','4602','Pérdidas procedentes del inmovilizado material',NULL,NULL,1),(4605,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','672','4602','Pérdidas procedentes de las inversiones inmobiliarias',NULL,NULL,1),(4607,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','673','4602','Pérdidas procedentes de participaciones a largo plazo en partes vinculadas',NULL,NULL,1),(4608,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6733','4607','Pérdidas procedentes de participaciones a largo plazo empresas del grupo',NULL,NULL,1),(4609,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6734','4607','Pérdidas procedentes de participaciones a largo plazo empresas asociadas',NULL,NULL,1),(4610,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6735','4607','Pérdidas procedentes de participaciones a largo plazo otras partes vinculadas',NULL,NULL,1),(4611,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','675','4602','Pérdidas por operaciones con obligaciones propias',NULL,NULL,1),(4612,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','678','4602','Gastos excepcionales',NULL,NULL,1),(4613,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','68','4006','Dotaciones para amortizaciones',NULL,NULL,1),(4614,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','680','4613','Amortización del inmovilizado intangible',NULL,NULL,1),(4615,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','681','4613','Amortización del inmovilizado material',NULL,NULL,1),(4616,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','682','4613','Amortización de las inversiones inmobiliarias',NULL,NULL,1),(4617,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','69','4006','Pérdidas por deterioro y otras dotaciones',NULL,NULL,1),(4618,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','690','4617','Pérdidas por deterioro del inmovilizado intangible',NULL,NULL,1),(4619,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','691','4617','Pérdidas por deterioro del inmovilizado material',NULL,NULL,1),(4620,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','692','4617','Pérdidas por deterioro de las inversiones inmobiliarias',NULL,NULL,1),(4621,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','693','4617','Pérdidas por deterioro de existencias',NULL,NULL,1),(4622,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6930','4621','Pérdidas por deterioro de productos terminados y en curso de fabricación',NULL,NULL,1),(4623,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6931','4621','Pérdidas por deterioro de mercaderías',NULL,NULL,1),(4624,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6932','4621','Pérdidas por deterioro de materias primas',NULL,NULL,1),(4625,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6933','4621','Pérdidas por deterioro de otros aprovisionamientos',NULL,NULL,1),(4626,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','694','4617','Pérdidas por deterioro de créditos por operaciones comerciales',NULL,NULL,1),(4627,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','695','4617','Dotación a la provisión por operaciones comerciales',NULL,NULL,1),(4628,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6954','4627','Dotación a la provisión por contratos onerosos',NULL,NULL,1),(4629,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6959','4628','Dotación a la provisión para otras operaciones comerciales',NULL,NULL,1),(4630,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','696','4617','Pérdidas por deterioro de participaciones y valores representativos de deuda a largo plazo',NULL,NULL,1),(4631,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6960','4630','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas del grupo',NULL,NULL,1),(4632,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6961','4630','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas asociadas',NULL,NULL,1),(4633,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6962','4630','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras partes vinculadas',NULL,NULL,1),(4634,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6963','4630','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras empresas',NULL,NULL,1),(4635,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6965','4630','Pérdidas por deterioro en valores representativos de deuda a largo plazo empresas del grupo',NULL,NULL,1),(4636,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6966','4630','Pérdidas por deterioro en valores representativos de deuda a largo plazo empresas asociadas',NULL,NULL,1),(4637,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6967','4630','Pérdidas por deterioro en valores representativos de deuda a largo plazo otras partes vinculadas',NULL,NULL,1),(4638,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6968','4630','Pérdidas por deterioro en valores representativos de deuda a largo plazo otras empresas',NULL,NULL,1),(4639,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','697','4617','Pérdidas por deterioro de créditos a largo plazo',NULL,NULL,1),(4640,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6970','4639','Pérdidas por deterioro de créditos a largo plazo empresas del grupo',NULL,NULL,1),(4641,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6971','4639','Pérdidas por deterioro de créditos a largo plazo empresas asociadas',NULL,NULL,1),(4642,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6972','4639','Pérdidas por deterioro de créditos a largo plazo otras partes vinculadas',NULL,NULL,1),(4643,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6973','4639','Pérdidas por deterioro de créditos a largo plazo otras empresas',NULL,NULL,1),(4644,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','698','4617','Pérdidas por deterioro de participaciones y valores representativos de deuda a corto plazo',NULL,NULL,1),(4645,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6980','4644','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas del grupo',NULL,NULL,1),(4646,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6981','4644','Pérdidas por deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas asociadas',NULL,NULL,1),(4647,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6985','4644','Pérdidas por deterioro en valores representativos de deuda a corto plazo empresas del grupo',NULL,NULL,1),(4648,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6986','4644','Pérdidas por deterioro en valores representativos de deuda a corto plazo empresas asociadas',NULL,NULL,1),(4649,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6988','4644','Pérdidas por deterioro en valores representativos de deuda a corto plazo de otras empresas',NULL,NULL,1),(4650,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','699','4617','Pérdidas por deterioro de crédito a corto plazo',NULL,NULL,1),(4651,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6990','4650','Pérdidas por deterioro de crédito a corto plazo empresas del grupo',NULL,NULL,1),(4652,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6991','4650','Pérdidas por deterioro de crédito a corto plazo empresas asociadas',NULL,NULL,1),(4653,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6992','4650','Pérdidas por deterioro de crédito a corto plazo otras partes vinculadas',NULL,NULL,1),(4654,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','COMPRAS_Y_GASTOS','XXXXXX','6993','4650','Pérdidas por deterioro de crédito a corto plazo otras empresas',NULL,NULL,1),(4655,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','70','4007','Ventas',NULL,NULL,1),(4656,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','VENTAS','700','4655','Ventas de mercaderías',NULL,NULL,1),(4657,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','VENTAS','701','4655','Ventas de productos terminados',NULL,NULL,1),(4658,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','702','4655','Ventas de productos semiterminados',NULL,NULL,1),(4659,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','703','4655','Ventas de subproductos y residuos',NULL,NULL,1),(4660,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','704','4655','Ventas de envases y embalajes',NULL,NULL,1),(4661,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','VENTAS','705','4655','Prestaciones de servicios',NULL,NULL,1),(4662,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','706','4655','Descuentos sobre ventas por pronto pago',NULL,NULL,1),(4663,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7060','4662','Descuentos sobre ventas por pronto pago de mercaderías',NULL,NULL,1),(4664,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7061','4662','Descuentos sobre ventas por pronto pago de productos terminados',NULL,NULL,1),(4665,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7062','4662','Descuentos sobre ventas por pronto pago de productos semiterminados',NULL,NULL,1),(4666,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7063','4662','Descuentos sobre ventas por pronto pago de subproductos y residuos',NULL,NULL,1),(4667,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','708','4655','Devoluciones de ventas y operacioes similares',NULL,NULL,1),(4668,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7080','4667','Devoluciones de ventas de mercaderías',NULL,NULL,1),(4669,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7081','4667','Devoluciones de ventas de productos terminados',NULL,NULL,1),(4670,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7082','4667','Devoluciones de ventas de productos semiterminados',NULL,NULL,1),(4671,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7083','4667','Devoluciones de ventas de subproductos y residuos',NULL,NULL,1),(4672,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7084','4667','Devoluciones de ventas de envases y embalajes',NULL,NULL,1),(4673,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','71','4007','Variación de existencias',NULL,NULL,1),(4674,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','710','4673','Variación de existencias de productos en curso',NULL,NULL,1),(4675,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','711','4673','Variación de existencias de productos semiterminados',NULL,NULL,1),(4676,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','712','4673','Variación de existencias de productos terminados',NULL,NULL,1),(4677,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','713','4673','Variación de existencias de subproductos, residuos y materiales recuperados',NULL,NULL,1),(4678,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','73','4007','Trabajos realizados para la empresa',NULL,NULL,1),(4679,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','730','4678','Trabajos realizados para el inmovilizado intangible',NULL,NULL,1),(4680,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','731','4678','Trabajos realizados para el inmovilizado tangible',NULL,NULL,1),(4681,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','732','4678','Trabajos realizados en inversiones inmobiliarias',NULL,NULL,1),(4682,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','733','4678','Trabajos realizados para el inmovilizado material en curso',NULL,NULL,1),(4683,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','74','4007','Subvenciones, donaciones y legados',NULL,NULL,1),(4684,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','740','4683','Subvenciones, donaciones y legados a la explotación',NULL,NULL,1),(4685,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','746','4683','Subvenciones, donaciones y legados de capital transferidos al resultado del ejercicio',NULL,NULL,1),(4686,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','747','4683','Otras subvenciones, donaciones y legados transferidos al resultado del ejercicio',NULL,NULL,1),(4687,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','75','4007','Otros ingresos de gestión',NULL,NULL,1),(4688,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','751','4687','Resultados de operaciones en común',NULL,NULL,1),(4689,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7510','4688','Pérdida transferida gestor',NULL,NULL,1),(4690,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7511','4688','Beneficio atribuido participe o asociado no gestor',NULL,NULL,1),(4691,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','752','4687','Ingreso por arrendamiento',NULL,NULL,1),(4692,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','753','4687','Ingresos de propiedad industrial cedida en explotación',NULL,NULL,1),(4693,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','754','4687','Ingresos por comisiones',NULL,NULL,1),(4694,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','755','4687','Ingresos por servicios al personal',NULL,NULL,1),(4695,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','759','4687','Ingresos por servicios diversos',NULL,NULL,1),(4696,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76','4007','Ingresos financieros',NULL,NULL,1),(4697,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','760','4696','Ingresos de participaciones en instrumentos de patrimonio',NULL,NULL,1),(4698,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7600','4697','Ingresos de participaciones en instrumentos de patrimonio empresas del grupo',NULL,NULL,1),(4699,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7601','4697','Ingresos de participaciones en instrumentos de patrimonio empresas asociadas',NULL,NULL,1),(4700,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7602','4697','Ingresos de participaciones en instrumentos de patrimonio otras partes asociadas',NULL,NULL,1),(4701,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7603','4697','Ingresos de participaciones en instrumentos de patrimonio otras empresas',NULL,NULL,1),(4702,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','761','4696','Ingresos de valores representativos de deuda',NULL,NULL,1),(4703,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7610','4702','Ingresos de valores representativos de deuda empresas del grupo',NULL,NULL,1),(4704,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7611','4702','Ingresos de valores representativos de deuda empresas asociadas',NULL,NULL,1),(4705,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7612','4702','Ingresos de valores representativos de deuda otras partes asociadas',NULL,NULL,1),(4706,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7613','4702','Ingresos de valores representativos de deuda otras empresas',NULL,NULL,1),(4707,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','762','4696','Ingresos de créditos',NULL,NULL,1),(4708,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7620','4707','Ingresos de créditos a largo plazo',NULL,NULL,1),(4709,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76200','4708','Ingresos de crédito a largo plazo empresas del grupo',NULL,NULL,1),(4710,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76201','4708','Ingresos de crédito a largo plazo empresas asociadas',NULL,NULL,1),(4711,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76202','4708','Ingresos de crédito a largo plazo otras partes asociadas',NULL,NULL,1),(4712,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76203','4708','Ingresos de crédito a largo plazo otras empresas',NULL,NULL,1),(4713,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7621','4707','Ingresos de créditos a corto plazo',NULL,NULL,1),(4714,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76210','4713','Ingresos de crédito a corto plazo empresas del grupo',NULL,NULL,1),(4715,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76211','4713','Ingresos de crédito a corto plazo empresas asociadas',NULL,NULL,1),(4716,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76212','4713','Ingresos de crédito a corto plazo otras partes asociadas',NULL,NULL,1),(4717,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','76213','4713','Ingresos de crédito a corto plazo otras empresas',NULL,NULL,1),(4718,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','763','4696','Beneficios por valorización de activos y pasivos financieros por su valor razonable',NULL,NULL,1),(4719,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','766','4696','Beneficios en participaciones y valores representativos de deuda',NULL,NULL,1),(4720,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7660','4719','Beneficios en participaciones y valores representativos de deuda a largo plazo empresas del grupo',NULL,NULL,1),(4721,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7661','4719','Beneficios en participaciones y valores representativos de deuda a largo plazo empresas asociadas',NULL,NULL,1),(4722,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7662','4719','Beneficios en participaciones y valores representativos de deuda a largo plazo otras partes asociadas',NULL,NULL,1),(4723,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7663','4719','Beneficios en participaciones y valores representativos de deuda a largo plazo otras empresas',NULL,NULL,1),(4724,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7665','4719','Beneficios en participaciones y valores representativos de deuda a corto plazo empresas del grupo',NULL,NULL,1),(4725,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7666','4719','Beneficios en participaciones y valores representativos de deuda a corto plazo empresas asociadas',NULL,NULL,1),(4726,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7667','4719','Beneficios en participaciones y valores representativos de deuda a corto plazo otras partes asociadas',NULL,NULL,1),(4727,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7668','4719','Beneficios en participaciones y valores representativos de deuda a corto plazo otras empresas',NULL,NULL,1),(4728,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','768','4696','Diferencias positivas de cambio',NULL,NULL,1),(4729,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','769','4696','Otros ingresos financieros',NULL,NULL,1),(4730,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','77','4007','Beneficios procedentes de activos no corrientes e ingresos excepcionales',NULL,NULL,1),(4731,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','770','4730','Beneficios procedentes del inmovilizado intangible',NULL,NULL,1),(4732,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','771','4730','Beneficios procedentes del inmovilizado material',NULL,NULL,1),(4733,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','772','4730','Beneficios procedentes de las inversiones inmobiliarias',NULL,NULL,1),(4734,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','773','4730','Beneficios procedentes de participaciones a largo plazo en partes vinculadas',NULL,NULL,1),(4735,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7733','4734','Beneficios procedentes de participaciones a largo plazo empresas del grupo',NULL,NULL,1),(4736,1,NULL,'2017-08-26 22:04:49','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7734','4734','Beneficios procedentes de participaciones a largo plazo empresas asociadas',NULL,NULL,1),(4737,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7735','4734','Beneficios procedentes de participaciones a largo plazo otras partes vinculadas',NULL,NULL,1),(4738,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','775','4730','Beneficios por operaciones con obligaciones propias',NULL,NULL,1),(4739,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','778','4730','Ingresos excepcionales',NULL,NULL,1),(4741,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','79','4007','Excesos y aplicaciones de provisiones y pérdidas por deterioro',NULL,NULL,1),(4742,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','790','4741','Revisión del deterioro del inmovilizado intangible',NULL,NULL,1),(4743,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','791','4741','Revisión del deterioro del inmovilizado material',NULL,NULL,1),(4744,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','792','4741','Revisión del deterioro de las inversiones inmobiliarias',NULL,NULL,1),(4745,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','793','4741','Revisión del deterioro de las existencias',NULL,NULL,1),(4746,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7930','4745','Revisión del deterioro de productos terminados y en curso de fabricación',NULL,NULL,1),(4747,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7931','4745','Revisión del deterioro de mercaderías',NULL,NULL,1),(4748,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7932','4745','Revisión del deterioro de materias primas',NULL,NULL,1),(4749,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7933','4745','Revisión del deterioro de otros aprovisionamientos',NULL,NULL,1),(4750,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','794','4741','Revisión del deterioro de créditos por operaciones comerciales',NULL,NULL,1),(4751,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','795','4741','Exceso de provisiones',NULL,NULL,1),(4752,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7951','4751','Exceso de provisión para impuestos',NULL,NULL,1),(4753,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7952','4751','Exceso de provisión para otras responsabilidades',NULL,NULL,1),(4755,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7954','4751','Exceso de provisión para operaciones comerciales',NULL,NULL,1),(4756,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','79544','4755','Exceso de provisión por contratos onerosos',NULL,NULL,1),(4757,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','79549','4755','Exceso de provisión para otras operaciones comerciales',NULL,NULL,1),(4758,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7955','4751','Exceso de provisión para actuaciones medioambienteales',NULL,NULL,1),(4759,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','796','4741','Revisión del deterioro de participaciones y valores representativos de deuda a largo plazo',NULL,NULL,1),(4760,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7960','4759','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas del grupo',NULL,NULL,1),(4761,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7961','4759','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo empresas asociadas',NULL,NULL,1),(4762,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7962','4759','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras partes vinculadas',NULL,NULL,1),(4763,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7963','4759','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo otras empresas',NULL,NULL,1),(4764,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7965','4759','Revisión del deterioro de valores representativos a largo plazo empresas del grupo',NULL,NULL,1),(4765,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7966','4759','Revisión del deterioro de valores representativos a largo plazo empresas asociadas',NULL,NULL,1),(4766,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7967','4759','Revisión del deterioro de valores representativos a largo otras partes vinculadas',NULL,NULL,1),(4767,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7968','4759','Revisión del deterioro de valores representativos a largo plazo otras empresas',NULL,NULL,1),(4768,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','797','4741','Revisión del deterioro de créditos a largo plazo',NULL,NULL,1),(4769,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7970','4768','Revisión del deterioro de créditos a largo plazo empresas del grupo',NULL,NULL,1),(4770,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7971','4768','Revisión del deterioro de créditos a largo plazo empresas asociadas',NULL,NULL,1),(4771,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7972','4768','Revisión del deterioro de créditos a largo plazo otras partes vinculadas',NULL,NULL,1),(4772,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7973','4768','Revisión del deterioro de créditos a largo plazo otras empresas',NULL,NULL,1),(4773,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','798','4741','Revisión del deterioro de participaciones y valores representativos de deuda a corto plazo',NULL,NULL,1),(4774,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7980','4773','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas del grupo',NULL,NULL,1),(4775,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7981','4773','Revisión del deterioro de participaciones en instrumentos de patrimonio neto a corto plazo empresas asociadas',NULL,NULL,1),(4776,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7985','4773','Revisión del deterioro de valores representativos de deuda a corto plazo empresas del grupo',NULL,NULL,1),(4777,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7986','4773','Revisión del deterioro de valores representativos de deuda a corto plazo empresas asociadas',NULL,NULL,1),(4778,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7987','4773','Revisión del deterioro de valores representativos de deuda a corto plazo otras partes vinculadas',NULL,NULL,1),(4779,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7988','4773','Revisión del deterioro de valores representativos de deuda a corto plazo otras empresas',NULL,NULL,1),(4780,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','799','4741','Revisión del deterioro de créditos a corto plazo',NULL,NULL,1),(4781,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7990','4780','Revisión del deterioro de créditos a corto plazo empresas del grupo',NULL,NULL,1),(4782,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7991','4780','Revisión del deterioro de créditos a corto plazo empresas asociadas',NULL,NULL,1),(4783,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7992','4780','Revisión del deterioro de créditos a corto plazo otras partes vinculadas',NULL,NULL,1),(4784,1,NULL,'2017-08-26 22:04:50','PCG08-PYME','VENTAS_E_INGRESOS','XXXXXX','7993','4780','Revisión del deterioro de créditos a corto plazo otras empresas',NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_accountingaccount` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_actioncomm`
    +--
    +
    +DROP TABLE IF EXISTS `llx_actioncomm`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_actioncomm` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datep` datetime DEFAULT NULL,
    +  `datep2` datetime DEFAULT NULL,
    +  `fk_action` int(11) DEFAULT NULL,
    +  `code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) DEFAULT NULL,
    +  `fk_project` int(11) DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_contact` int(11) DEFAULT NULL,
    +  `fk_parent` int(11) NOT NULL DEFAULT '0',
    +  `fk_user_action` int(11) DEFAULT NULL,
    +  `transparency` int(11) DEFAULT NULL,
    +  `fk_user_done` int(11) DEFAULT NULL,
    +  `priority` smallint(6) DEFAULT NULL,
    +  `fulldayevent` smallint(6) NOT NULL DEFAULT '0',
    +  `punctual` smallint(6) NOT NULL DEFAULT '1',
    +  `percent` smallint(6) NOT NULL DEFAULT '0',
    +  `location` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `durationp` double DEFAULT NULL,
    +  `durationa` double DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_element` int(11) DEFAULT NULL,
    +  `elementtype` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_msgid` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_subject` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_from` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_sender` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_to` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_tocc` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_tobcc` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `errors_to` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `recurid` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `recurrule` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `recurdateend` datetime DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`),
    +  KEY `idx_actioncomm_fk_soc` (`fk_soc`),
    +  KEY `idx_actioncomm_fk_contact` (`fk_contact`),
    +  KEY `idx_actioncomm_fk_element` (`fk_element`),
    +  KEY `idx_actioncomm_code` (`code`),
    +  KEY `idx_actioncomm_fk_user_action` (`fk_user_action`),
    +  KEY `idx_actioncomm_fk_project` (`fk_project`),
    +  KEY `idx_actioncomm_datep` (`datep`),
    +  KEY `idx_actioncomm_datep2` (`datep2`),
    +  KEY `idx_actioncomm_recurid` (`recurid`),
    +  KEY `idx_actioncomm_ref_ext` (`ref_ext`)
    +) ENGINE=InnoDB AUTO_INCREMENT=329 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_actioncomm`
    +--
    +
    +LOCK TABLES `llx_actioncomm` WRITE;
    +/*!40000 ALTER TABLE `llx_actioncomm` DISABLE KEYS */;
    +INSERT INTO `llx_actioncomm` VALUES (1,NULL,1,'2010-07-08 14:21:44','2010-07-08 14:21:44',50,NULL,'Company AAA and Co added into Dolibarr','2010-07-08 14:21:44','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company AAA and Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,NULL,1,'2010-07-08 14:23:48','2010-07-08 14:23:48',50,NULL,'Company Belin SARL added into Dolibarr','2010-07-08 14:23:48','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company Belin SARL added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,NULL,1,'2010-07-08 22:42:12','2010-07-08 22:42:12',50,NULL,'Company Spanish Comp added into Dolibarr','2010-07-08 22:42:12','2014-12-21 12:50:33',1,NULL,NULL,3,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company Spanish Comp added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,NULL,1,'2010-07-08 22:48:18','2010-07-08 22:48:18',50,NULL,'Company Prospector Vaalen added into Dolibarr','2010-07-08 22:48:18','2014-12-21 12:50:33',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company Prospector Vaalen added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(5,NULL,1,'2010-07-08 23:22:57','2010-07-08 23:22:57',50,NULL,'Company NoCountry Co added into Dolibarr','2010-07-08 23:22:57','2014-12-21 12:50:33',1,NULL,NULL,5,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company NoCountry Co added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(6,NULL,1,'2010-07-09 00:15:09','2010-07-09 00:15:09',50,NULL,'Company Swiss customer added into Dolibarr','2010-07-09 00:15:09','2014-12-21 12:50:33',1,NULL,NULL,6,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company Swiss customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(7,NULL,1,'2010-07-09 01:24:26','2010-07-09 01:24:26',50,NULL,'Company Generic customer added into Dolibarr','2010-07-09 01:24:26','2014-12-21 12:50:33',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Company Generic customer added into Dolibarr\nAuthor: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(8,NULL,1,'2010-07-10 14:54:27','2010-07-10 14:54:27',50,NULL,'Société Client salon ajoutée dans Dolibarr','2010-07-10 14:54:27','2014-12-21 12:50:33',1,NULL,NULL,8,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Client salon ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(9,NULL,1,'2010-07-10 14:54:44','2010-07-10 14:54:44',50,NULL,'Société Client salon invidivdu ajoutée dans Doliba','2010-07-10 14:54:44','2014-12-21 12:50:33',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Client salon invidivdu ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(10,NULL,1,'2010-07-10 14:56:10','2010-07-10 14:56:10',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2010-07-10 14:56:10','2014-12-21 12:50:33',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(11,NULL,1,'2010-07-10 14:58:53','2010-07-10 14:58:53',50,NULL,'Facture FA1007-0001 validée dans Dolibarr','2010-07-10 14:58:53','2014-12-21 12:50:33',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Facture FA1007-0001 validée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(12,NULL,1,'2010-07-10 15:00:55','2010-07-10 15:00:55',50,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr','2010-07-10 15:00:55','2014-12-21 12:50:33',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Facture FA1007-0001 passée à payée dans Dolibarr\nAuteur: admin',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(13,NULL,1,'2010-07-10 15:13:08','2010-07-10 15:13:08',50,NULL,'Société Smith Vick ajoutée dans Dolibarr','2010-07-10 15:13:08','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Smith Vick ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14,NULL,1,'2010-07-10 15:21:00','2010-07-10 16:21:00',5,NULL,'RDV avec mon chef','2010-07-10 15:21:48','2010-07-10 13:21:48',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,1,0,'',3600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(15,NULL,1,'2010-07-10 18:18:16','2010-07-10 18:18:16',50,NULL,'Contrat CONTRAT1 validé dans Dolibarr','2010-07-10 18:18:16','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Contrat CONTRAT1 validé dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(16,NULL,1,'2010-07-10 18:35:57','2010-07-10 18:35:57',50,NULL,'Société Mon client ajoutée dans Dolibarr','2010-07-10 18:35:57','2014-12-21 12:50:33',1,NULL,NULL,11,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Mon client ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(17,NULL,1,'2010-07-11 16:18:08','2010-07-11 16:18:08',50,NULL,'Société Dupont Alain ajoutée dans Dolibarr','2010-07-11 16:18:08','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Dupont Alain ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(18,NULL,1,'2010-07-11 17:11:00','2010-07-11 17:17:00',5,NULL,'Rendez-vous','2010-07-11 17:11:22','2010-07-11 15:11:22',1,NULL,NULL,NULL,NULL,0,1,NULL,NULL,0,0,1,0,'gfgdfgdf',360,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(19,NULL,1,'2010-07-11 17:13:20','2010-07-11 17:13:20',50,NULL,'Société Vendeur de chips ajoutée dans Dolibarr','2010-07-11 17:13:20','2014-12-21 12:50:33',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Société Vendeur de chips ajoutée dans Dolibarr\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(20,NULL,1,'2010-07-11 17:15:42','2010-07-11 17:15:42',50,NULL,'Commande CF1007-0001 validée','2010-07-11 17:15:42','2014-12-21 12:50:33',1,NULL,NULL,13,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Commande CF1007-0001 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(21,NULL,1,'2010-07-11 18:47:33','2010-07-11 18:47:33',50,NULL,'Commande CF1007-0002 validée','2010-07-11 18:47:33','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Commande CF1007-0002 validée\nAuteur: admin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(22,NULL,1,'2010-07-18 11:36:18','2010-07-18 11:36:18',50,NULL,'Proposition PR1007-0003 validée','2010-07-18 11:36:18','2014-12-21 12:50:33',1,NULL,NULL,4,NULL,0,1,NULL,1,0,0,1,100,'',NULL,NULL,'Proposition PR1007-0003 validée\nAuteur: admin',3,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(23,NULL,1,'2011-07-18 20:49:58','2011-07-18 20:49:58',50,NULL,'Invoice FA1007-0002 validated in Dolibarr','2011-07-18 20:49:58','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1007-0002 validated in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(24,NULL,1,'2011-07-28 01:37:00',NULL,1,NULL,'Phone call','2011-07-28 01:37:48','2011-07-27 23:37:48',1,NULL,NULL,NULL,2,0,1,NULL,NULL,0,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(25,NULL,1,'2011-08-01 02:31:24','2011-08-01 02:31:24',50,NULL,'Company mmm added into Dolibarr','2011-08-01 02:31:24','2014-12-21 12:50:33',1,NULL,NULL,15,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Company mmm added into Dolibarr\nAuthor: admin',15,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(26,NULL,1,'2011-08-01 02:31:43','2011-08-01 02:31:43',50,NULL,'Company ppp added into Dolibarr','2011-08-01 02:31:43','2014-12-21 12:50:33',1,NULL,NULL,16,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Company ppp added into Dolibarr\nAuthor: admin',16,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(27,NULL,1,'2011-08-01 02:41:26','2011-08-01 02:41:26',50,NULL,'Company aaa added into Dolibarr','2011-08-01 02:41:26','2014-12-21 12:50:33',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Company aaa added into Dolibarr\nAuthor: admin',17,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(28,NULL,1,'2011-08-01 03:34:11','2011-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2011-08-01 03:34:11','2014-12-21 12:50:33',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0003 validated in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(29,NULL,1,'2011-08-01 03:34:11','2011-08-01 03:34:11',50,NULL,'Invoice FA1108-0003 validated in Dolibarr','2011-08-01 03:34:11','2014-12-21 12:50:33',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0003 changed to paid in Dolibarr\nAuthor: admin',5,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(30,NULL,1,'2011-08-06 20:33:54','2011-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2011-08-06 20:33:54','2014-12-21 12:50:33',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0004 validated in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(31,NULL,1,'2011-08-06 20:33:54','2011-08-06 20:33:54',50,NULL,'Invoice FA1108-0004 validated in Dolibarr','2011-08-06 20:33:54','2014-12-21 12:50:33',1,NULL,NULL,7,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0004 changed to paid in Dolibarr\nAuthor: admin',6,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(38,NULL,1,'2011-08-08 02:41:55','2011-08-08 02:41:55',50,NULL,'Invoice FA1108-0005 validated in Dolibarr','2011-08-08 02:41:55','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0005 validated in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(40,NULL,1,'2011-08-08 02:53:40','2011-08-08 02:53:40',50,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr','2011-08-08 02:53:40','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0005 changed to paid in Dolibarr\nAuthor: admin',8,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(41,NULL,1,'2011-08-08 02:54:05','2011-08-08 02:54:05',50,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr','2011-08-08 02:54:05','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1007-0002 changed to paid in Dolibarr\nAuthor: admin',2,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(42,NULL,1,'2011-08-08 02:55:04','2011-08-08 02:55:04',50,NULL,'Invoice FA1107-0006 validated in Dolibarr','2011-08-08 02:55:04','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1107-0006 validated in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(43,NULL,1,'2011-08-08 02:55:26','2011-08-08 02:55:26',50,NULL,'Invoice FA1108-0007 validated in Dolibarr','2011-08-08 02:55:26','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1108-0007 validated in Dolibarr\nAuthor: admin',9,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(44,NULL,1,'2011-08-08 02:55:58','2011-08-08 02:55:58',50,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr','2011-08-08 02:55:58','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1107-0006 changed to paid in Dolibarr\nAuthor: admin',3,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(45,NULL,1,'2011-08-08 03:04:22','2011-08-08 03:04:22',50,NULL,'Order CO1108-0001 validated','2011-08-08 03:04:22','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Order CO1108-0001 validated\nAuthor: admin',5,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(46,NULL,1,'2011-08-08 13:59:09','2011-08-08 13:59:09',50,NULL,'Order CO1107-0002 validated','2011-08-08 13:59:10','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Order CO1107-0002 validated\nAuthor: admin',1,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(47,NULL,1,'2011-08-08 14:24:18','2011-08-08 14:24:18',50,NULL,'Proposal PR1007-0001 validated','2011-08-08 14:24:18','2014-12-21 12:50:33',1,NULL,NULL,2,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Proposal PR1007-0001 validated\nAuthor: admin',1,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(48,NULL,1,'2011-08-08 14:24:24','2011-08-08 14:24:24',50,NULL,'Proposal PR1108-0004 validated','2011-08-08 14:24:24','2014-12-21 12:50:33',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Proposal PR1108-0004 validated\nAuthor: admin',4,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(49,NULL,1,'2011-08-08 15:04:37','2011-08-08 15:04:37',50,NULL,'Order CF1108-0003 validated','2011-08-08 15:04:37','2014-12-21 12:50:33',1,NULL,NULL,17,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Order CF1108-0003 validated\nAuthor: admin',6,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(50,NULL,1,'2012-12-08 17:56:47','2012-12-08 17:56:47',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2012-12-08 17:56:47','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(51,NULL,1,'2012-12-08 17:57:11','2012-12-08 17:57:11',40,NULL,'Facture AV1212-0001 validée dans Dolibarr','2012-12-08 17:57:11','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture AV1212-0001 validée dans Dolibarr\nAuteur: admin',10,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(52,NULL,1,'2012-12-08 17:58:27','2012-12-08 17:58:27',40,NULL,'Facture FA1212-0008 validée dans Dolibarr','2012-12-08 17:58:27','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1212-0008 validée dans Dolibarr\nAuteur: admin',11,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(53,NULL,1,'2012-12-08 18:20:49','2012-12-08 18:20:49',40,NULL,'Facture AV1212-0002 validée dans Dolibarr','2012-12-08 18:20:49','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture AV1212-0002 validée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(54,NULL,1,'2012-12-09 18:35:07','2012-12-09 18:35:07',40,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr','2012-12-09 18:35:07','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture AV1212-0002 passée à payée dans Dolibarr\nAuteur: admin',12,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(55,NULL,1,'2012-12-09 20:14:42','2012-12-09 20:14:42',40,NULL,'Société doe john ajoutée dans Dolibarr','2012-12-09 20:14:42','2014-12-21 12:50:33',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Société doe john ajoutée dans Dolibarr\nAuteur: admin',18,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(56,NULL,1,'2012-12-12 18:54:19','2012-12-12 18:54:19',40,NULL,'Facture FA1212-0009 validée dans Dolibarr','2012-12-12 18:54:19','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1212-0009 validée dans Dolibarr\nAuteur: admin',55,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(121,NULL,1,'2012-12-06 10:00:00',NULL,50,NULL,'aaab','2012-12-21 17:48:08','2012-12-21 16:54:07',3,1,NULL,NULL,NULL,0,3,NULL,NULL,1,0,1,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(122,NULL,1,'2012-12-21 18:09:52','2012-12-21 18:09:52',40,NULL,'Facture client FA1007-0001 envoyée par EMail','2012-12-21 18:09:52','2014-12-21 12:50:33',1,NULL,NULL,9,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Mail envoyé par Firstname SuperAdminName <bidon@destailleur.fr> à laurent@destailleur.fr.\nSujet du mail: Envoi facture FA1007-0001\nCorps du mail:\nVeuillez trouver ci-joint la facture FA1007-0001\r\n\r\nVous pouvez cliquer sur le lien sécurisé ci-dessous pour effectuer votre paiement via Paypal\r\n\r\nhttp://localhost/dolibarrnew/public/paypal/newpayment.php?source=invoice&ref=FA1007-0001&securekey=50c82fab36bb3b6aa83e2a50691803b2\r\n\r\nCordialement',1,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(123,NULL,1,'2013-01-06 13:13:57','2013-01-06 13:13:57',40,NULL,'Facture 16 validée dans Dolibarr','2013-01-06 13:13:57','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture 16 validée dans Dolibarr\nAuteur: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(124,NULL,1,'2013-01-12 12:23:05','2013-01-12 12:23:05',40,NULL,'Patient aaa ajouté','2013-01-12 12:23:05','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Patient aaa ajouté\nAuteur: admin',19,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(125,NULL,1,'2013-01-12 12:52:20','2013-01-12 12:52:20',40,NULL,'Patient pppoo ajouté','2013-01-12 12:52:20','2014-12-21 12:50:33',1,NULL,NULL,20,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Patient pppoo ajouté\nAuteur: admin',20,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(127,NULL,1,'2013-01-19 18:22:48','2013-01-19 18:22:48',40,NULL,'Facture FS1301-0001 validée dans Dolibarr','2013-01-19 18:22:48','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FS1301-0001 validée dans Dolibarr\nAuteur: admin',148,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(128,NULL,1,'2013-01-19 18:31:10','2013-01-19 18:31:10',40,NULL,'Facture FA6801-0010 validée dans Dolibarr','2013-01-19 18:31:10','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA6801-0010 validée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(129,NULL,1,'2013-01-19 18:31:10','2013-01-19 18:31:10',40,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr','2013-01-19 18:31:10','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA6801-0010 passée à payée dans Dolibarr\nAuteur: admin',150,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(130,NULL,1,'2013-01-19 18:31:58','2013-01-19 18:31:58',40,NULL,'Facture FS1301-0002 validée dans Dolibarr','2013-01-19 18:31:58','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FS1301-0002 validée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(131,NULL,1,'2013-01-19 18:31:58','2013-01-19 18:31:58',40,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr','2013-01-19 18:31:58','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FS1301-0002 passée à payée dans Dolibarr\nAuteur: admin',151,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(132,NULL,1,'2013-01-23 15:07:54','2013-01-23 15:07:54',50,NULL,'Consultation 24 saisie (aaa)','2013-01-23 15:07:54','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Consultation 24 saisie (aaa)\nAuteur: admin',24,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(133,NULL,1,'2013-01-23 16:56:58','2013-01-23 16:56:58',40,NULL,'Patient pa ajouté','2013-01-23 16:56:58','2014-12-21 12:50:33',1,NULL,NULL,21,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Patient pa ajouté\nAuteur: admin',21,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(134,NULL,1,'2013-01-23 17:34:00',NULL,50,NULL,'bbcv','2013-01-23 17:35:21','2013-01-23 16:35:21',1,NULL,1,2,NULL,0,1,NULL,NULL,0,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(135,NULL,1,'2013-02-12 15:54:00','2013-02-12 15:54:00',40,NULL,'Facture FA1212-0011 validée dans Dolibarr','2013-02-12 15:54:37','2014-12-21 12:50:33',1,1,NULL,7,NULL,0,1,NULL,1,0,0,1,50,NULL,NULL,NULL,'Facture FA1212-0011 valid&eacute;e dans Dolibarr<br />\r\nAuteur: admin',13,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(136,NULL,1,'2013-02-12 17:06:51','2013-02-12 17:06:51',40,NULL,'Commande CO1107-0003 validée','2013-02-12 17:06:51','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Commande CO1107-0003 validée\nAuteur: admin',2,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(137,NULL,1,'2013-02-17 16:22:10','2013-02-17 16:22:10',40,NULL,'Proposition PR1302-0009 validée','2013-02-17 16:22:10','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Proposition PR1302-0009 validée\nAuteur: admin',9,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(138,NULL,1,'2013-02-17 16:27:00','2013-02-17 16:27:00',40,NULL,'Facture FA1302-0012 validée dans Dolibarr','2013-02-17 16:27:00','2014-12-21 12:50:33',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1302-0012 validée dans Dolibarr\nAuteur: admin',152,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(139,NULL,1,'2013-02-17 16:27:29','2013-02-17 16:27:29',40,NULL,'Proposition PR1302-0010 validée','2013-02-17 16:27:29','2014-12-21 12:50:33',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Proposition PR1302-0010 validée\nAuteur: admin',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(140,NULL,1,'2013-02-17 18:27:56','2013-02-17 18:27:56',40,NULL,'Commande CO1107-0004 validée','2013-02-17 18:27:56','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Commande CO1107-0004 validée\nAuteur: admin',3,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(141,NULL,1,'2013-02-17 18:38:14','2013-02-17 18:38:14',40,NULL,'Commande CO1302-0005 validée','2013-02-17 18:38:14','2014-12-21 12:50:33',1,NULL,NULL,18,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Commande CO1302-0005 validée\nAuteur: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(142,NULL,1,'2013-02-26 22:57:50','2013-02-26 22:57:50',40,NULL,'Company pppp added into Dolibarr','2013-02-26 22:57:50','2014-12-21 12:50:33',1,NULL,NULL,22,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Company pppp added into Dolibarr\nAuthor: admin',22,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(143,NULL,1,'2013-02-26 22:58:13','2013-02-26 22:58:13',40,NULL,'Company ttttt added into Dolibarr','2013-02-26 22:58:13','2014-12-21 12:50:33',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Company ttttt added into Dolibarr\nAuthor: admin',23,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(144,NULL,1,'2013-02-27 10:00:00','2013-02-27 19:20:00',5,NULL,'Rendez-vous','2013-02-27 19:20:53','2013-02-27 18:20:53',1,NULL,NULL,NULL,NULL,0,1,NULL,1,0,0,1,-1,'',33600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(145,NULL,1,'2013-02-27 19:28:00',NULL,2,NULL,'fdsfsd','2013-02-27 19:28:48','2013-02-27 18:29:53',1,1,NULL,NULL,NULL,0,1,NULL,1,0,0,1,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(146,NULL,1,'2013-03-06 10:05:07','2013-03-06 10:05:07',40,NULL,'Contrat (PROV3) validé dans Dolibarr','2013-03-06 10:05:07','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Contrat (PROV3) validé dans Dolibarr\nAuteur: admin',3,'contract',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(147,NULL,1,'2013-03-06 16:43:37','2013-03-06 16:43:37',40,NULL,'Facture FA1307-0013 validée dans Dolibarr','2013-03-06 16:43:37','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1307-0013 validée dans Dolibarr\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(148,NULL,1,'2013-03-06 16:44:12','2013-03-06 16:44:12',40,NULL,'Facture FA1407-0014 validée dans Dolibarr','2013-03-06 16:44:12','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1407-0014 validée dans Dolibarr\nAuteur: admin',159,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(149,NULL,1,'2013-03-06 16:47:48','2013-03-06 16:47:48',40,NULL,'Facture FA1507-0015 validée dans Dolibarr','2013-03-06 16:47:48','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1507-0015 validée dans Dolibarr\nAuteur: admin',160,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(150,NULL,1,'2013-03-06 16:48:16','2013-03-06 16:48:16',40,NULL,'Facture FA1607-0016 validée dans Dolibarr','2013-03-06 16:48:16','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1607-0016 validée dans Dolibarr\nAuteur: admin',161,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(151,NULL,1,'2013-03-06 17:13:59','2013-03-06 17:13:59',40,NULL,'Société smith smith ajoutée dans Dolibarr','2013-03-06 17:13:59','2014-12-21 12:50:33',1,NULL,NULL,24,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Société smith smith ajoutée dans Dolibarr\nAuteur: admin',24,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(152,NULL,1,'2013-03-08 10:02:22','2013-03-08 10:02:22',40,NULL,'Proposition (PROV12) validée dans Dolibarr','2013-03-08 10:02:22','2014-12-21 12:50:33',1,NULL,NULL,23,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Proposition (PROV12) validée dans Dolibarr\nAuteur: admin',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(203,NULL,1,'2013-03-09 19:39:27','2013-03-09 19:39:27',40,'AC_ORDER_SUPPLIER_VALIDATE','Commande CF1303-0004 validée','2013-03-09 19:39:27','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Commande CF1303-0004 validée\nAuteur: admin',13,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(204,NULL,1,'2013-03-10 15:47:37','2013-03-10 15:47:37',40,'AC_COMPANY_CREATE','Patient créé','2013-03-10 15:47:37','2014-12-21 12:50:33',1,NULL,NULL,25,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Patient créé\nAuteur: admin',25,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(205,NULL,1,'2013-03-10 15:57:32','2013-03-10 15:57:32',40,'AC_COMPANY_CREATE','Tiers créé','2013-03-10 15:57:32','2014-12-21 12:50:33',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Tiers créé\nAuteur: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(206,NULL,1,'2013-03-10 15:58:28','2013-03-10 15:58:28',40,'AC_BILL_VALIDATE','Facture FA1303-0017 validée','2013-03-10 15:58:28','2014-12-21 12:50:33',1,NULL,NULL,26,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1303-0017 validée\nAuteur: admin',208,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(207,NULL,1,'2013-03-19 09:38:10','2013-03-19 09:38:10',40,'AC_BILL_VALIDATE','Facture FA1303-0018 validée','2013-03-19 09:38:10','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1303-0018 validée\nAuteur: admin',209,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(208,NULL,1,'2013-03-20 14:30:11','2013-03-20 14:30:11',40,'AC_BILL_VALIDATE','Facture FA1107-0019 validée','2013-03-20 14:30:11','2014-12-21 12:50:33',1,NULL,NULL,10,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1107-0019 validée\nAuteur: admin',210,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(209,NULL,1,'2013-03-22 09:40:25','2013-03-22 09:40:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2013-03-22 09:40:25','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(210,NULL,1,'2013-03-23 17:16:25','2013-03-23 17:16:25',40,'AC_BILL_VALIDATE','Facture FA1303-0020 validée','2013-03-23 17:16:25','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1303-0020 validée\nAuteur: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(211,NULL,1,'2013-03-23 18:08:27','2013-03-23 18:08:27',40,'AC_BILL_VALIDATE','Facture FA1307-0013 validée','2013-03-23 18:08:27','2014-12-21 12:50:33',1,NULL,NULL,12,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1307-0013 validée\nAuteur: admin',158,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(212,NULL,1,'2013-03-24 15:54:00','2013-03-24 15:54:00',40,'AC_BILL_VALIDATE','Facture FA1212-0021 validée','2013-03-24 15:54:00','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,NULL,1,0,0,1,-1,'',NULL,NULL,'Facture FA1212-0021 validée\nAuteur: admin',32,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(213,NULL,1,'2013-11-07 01:02:39','2013-11-07 01:02:39',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:02:39','2014-12-21 12:50:33',1,NULL,NULL,27,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',27,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(214,NULL,1,'2013-11-07 01:05:22','2013-11-07 01:05:22',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:05:22','2014-12-21 12:50:33',1,NULL,NULL,28,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',28,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(215,NULL,1,'2013-11-07 01:07:07','2013-11-07 01:07:07',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:07:07','2014-12-21 12:50:33',1,NULL,NULL,29,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',29,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(216,NULL,1,'2013-11-07 01:07:58','2013-11-07 01:07:58',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:07:58','2014-12-21 12:50:33',1,NULL,NULL,30,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',30,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(217,NULL,1,'2013-11-07 01:10:09','2013-11-07 01:10:09',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:10:09','2014-12-21 12:50:33',1,NULL,NULL,31,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',31,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(218,NULL,1,'2013-11-07 01:15:57','2013-11-07 01:15:57',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:15:57','2014-12-21 12:50:33',1,NULL,NULL,32,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',32,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(219,NULL,1,'2013-11-07 01:16:51','2013-11-07 01:16:51',40,'AC_COMPANY_CREATE','Third party created','2013-11-07 01:16:51','2014-12-21 12:50:33',1,NULL,NULL,33,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Third party created\nAuthor: admin',33,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(220,NULL,1,'2014-03-02 17:24:04','2014-03-02 17:24:04',40,'AC_BILL_VALIDATE','Invoice FA1302-0022 validated','2014-03-02 17:24:04','2014-12-21 12:50:33',1,NULL,NULL,18,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1302-0022 validated\nAuthor: admin',157,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(221,NULL,1,'2014-03-02 17:24:28','2014-03-02 17:24:28',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2014-03-02 17:24:28','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(222,NULL,1,'2014-03-05 10:00:00','2014-03-05 10:00:00',5,NULL,'RDV John','2014-03-02 19:54:48','2014-03-02 18:55:29',1,1,NULL,NULL,NULL,0,1,0,NULL,0,0,1,-1,NULL,NULL,NULL,'gfdgdfgdf',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(223,NULL,1,'2014-03-13 10:00:00','2014-03-17 00:00:00',50,NULL,'Congress','2014-03-02 19:55:11','2014-03-02 18:55:11',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,1,-1,'',309600,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(224,NULL,1,'2014-03-14 10:00:00',NULL,1,NULL,'Call john','2014-03-02 19:55:56','2014-03-02 18:55:56',1,NULL,NULL,NULL,NULL,0,1,0,NULL,0,0,1,0,'',NULL,NULL,'tttt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(225,NULL,1,'2014-03-02 20:11:31','2014-03-02 20:11:31',40,'AC_BILL_UNVALIDATE','Invoice FA1303-0020 go back to draft status','2014-03-02 20:11:31','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1303-0020 go back to draft status\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(226,NULL,1,'2014-03-02 20:13:39','2014-03-02 20:13:39',40,'AC_BILL_VALIDATE','Invoice FA1303-0020 validated','2014-03-02 20:13:39','2014-12-21 12:50:33',1,NULL,NULL,19,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1303-0020 validated\nAuthor: admin',211,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(227,NULL,1,'2014-03-03 19:20:10','2014-03-03 19:20:10',40,'AC_BILL_VALIDATE','Invoice FA1212-0023 validated','2014-03-03 19:20:10','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1212-0023 validated\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(228,NULL,1,'2014-03-03 19:20:25','2014-03-03 19:20:25',40,'AC_BILL_CANCEL','Invoice FA1212-0023 canceled in Dolibarr','2014-03-03 19:20:25','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice FA1212-0023 canceled in Dolibarr\nAuthor: admin',33,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(229,NULL,1,'2014-03-03 19:20:56','2014-03-03 19:20:56',40,'AC_BILL_VALIDATE','Invoice AV1403-0003 validated','2014-03-03 19:20:56','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice AV1403-0003 validated\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(230,NULL,1,'2014-03-03 19:21:29','2014-03-03 19:21:29',40,'AC_BILL_UNVALIDATE','Invoice AV1403-0003 go back to draft status','2014-03-03 19:21:29','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice AV1403-0003 go back to draft status\nAuthor: admin',212,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(231,NULL,1,'2014-03-03 19:22:16','2014-03-03 19:22:16',40,'AC_BILL_VALIDATE','Invoice AV1303-0003 validated','2014-03-03 19:22:16','2014-12-21 12:50:33',1,NULL,NULL,1,NULL,0,1,0,1,0,0,1,-1,'',NULL,NULL,'Invoice AV1303-0003 validated\nAuthor: admin',213,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(232,NULL,1,'2016-01-22 18:54:39','2016-01-22 18:54:39',40,'AC_OTH_AUTO','Invoice 16 validated','2016-01-22 18:54:39','2016-01-22 17:54:39',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(233,NULL,1,'2016-01-22 18:54:46','2016-01-22 18:54:46',40,'AC_OTH_AUTO','Invoice 16 validated','2016-01-22 18:54:46','2016-01-22 17:54:46',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Invoice 16 validated\nAuthor: admin',16,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(234,NULL,1,'2016-07-05 10:00:00','2016-07-05 11:19:00',5,'AC_RDV','Meeting with my boss','2016-07-31 18:19:48','2016-07-31 14:19:48',12,NULL,NULL,NULL,NULL,0,12,1,NULL,0,0,1,-1,'',4740,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(235,NULL,1,'2016-07-13 00:00:00','2016-07-14 23:59:59',50,'AC_OTH','Trip at Las Vegas','2016-07-31 18:20:36','2016-07-31 14:20:36',12,NULL,4,NULL,2,0,12,1,NULL,0,1,1,-1,'',172799,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(236,NULL,1,'2016-07-29 10:00:00',NULL,4,'AC_EMAIL','Remind to send an email','2016-07-31 18:21:04','2016-07-31 14:21:04',12,NULL,NULL,NULL,NULL,0,4,0,NULL,0,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(237,NULL,1,'2016-07-01 10:00:00',NULL,1,'AC_TEL','Phone call with Mr Vaalen','2016-07-31 18:22:04','2016-07-31 14:22:04',12,NULL,6,4,NULL,0,13,0,NULL,0,0,1,-1,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(238,NULL,1,'2016-08-02 10:00:00','2016-08-02 12:00:00',5,'AC_RDV','Meeting on radium','2016-08-01 01:15:50','2016-07-31 21:15:50',12,NULL,8,10,10,0,12,1,NULL,0,0,1,-1,'',7200,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(239,NULL,1,'2017-01-29 21:49:33','2017-01-29 21:49:33',40,'AC_OTH_AUTO','Proposal PR1302-0007 validated','2017-01-29 21:49:33','2017-01-29 17:49:33',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1302-0007 validated\nAuthor: admin',7,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(240,NULL,1,'2017-01-31 20:52:00',NULL,1,'AC_TEL','Call the boss','2017-01-31 20:52:10','2017-01-31 16:52:25',12,12,6,NULL,NULL,0,12,1,NULL,0,0,1,-1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(242,NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 validated','2017-02-01 18:52:04','2017-02-01 14:52:04',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CF1007-0001 validated\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(243,NULL,1,'2017-02-01 18:52:04','2017-02-01 18:52:04',40,'AC_OTH_AUTO','Order CF1007-0001 approved','2017-02-01 18:52:04','2017-02-01 14:52:04',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CF1007-0001 approved\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(245,NULL,1,'2017-02-01 18:52:32','2017-02-01 18:52:32',40,'AC_OTH_AUTO','Supplier order CF1007-0001 submited','2017-02-01 18:52:32','2017-02-01 14:52:32',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Supplier order CF1007-0001 submited\nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(249,NULL,1,'2017-02-01 18:54:01','2017-02-01 18:54:01',40,'AC_OTH_AUTO','Supplier order CF1007-0001 received','2017-02-01 18:54:01','2017-02-01 14:54:01',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Supplier order CF1007-0001 received \nAuthor: admin',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(250,NULL,1,'2017-02-01 18:54:42','2017-02-01 18:54:42',40,'AC_OTH_AUTO','Email sent by MyBigCompany To mycustomer@example.com','2017-02-01 18:54:42','2017-02-01 14:54:42',12,NULL,NULL,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Sender: MyBigCompany &lt;myemail@mybigcompany.com&gt;<br>\nReceiver(s): mycustomer@example.com<br>\nEMail topic: Submission of order CF1007-0001<br>\nEmail body:<br>\nYou will find here our order CF1007-0001<br />\r\n<br />\r\nSincerely<br>\n<br>\nAttached files and documents: CF1007-0001.pdf',1,'order_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(251,NULL,1,'2017-02-01 19:02:21','2017-02-01 19:02:21',40,'AC_OTH_AUTO','Invoice SI1702-0001 validated','2017-02-01 19:02:21','2017-02-01 15:02:21',12,NULL,5,13,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Invoice SI1702-0001 validated\nAuthor: admin',20,'invoice_supplier',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(252,NULL,1,'2017-02-12 23:17:04','2017-02-12 23:17:04',40,'AC_OTH_AUTO','Patient créé','2017-02-12 23:17:04','2017-02-12 19:17:04',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Patient créé\nAuthor: admin',26,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(253,NULL,1,'2017-02-12 23:18:33','2017-02-12 23:18:33',40,'AC_OTH_AUTO','Consultation 2 recorded (aaa)','2017-02-12 23:18:33','2017-02-12 19:18:33',12,NULL,NULL,NULL,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Consultation 2 recorded (aaa)\nAuthor: admin',2,'cabinetmed_cons',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(254,NULL,1,'2017-02-15 23:28:41','2017-02-15 23:28:41',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:28:41','2017-02-15 22:28:41',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',7,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(255,NULL,1,'2017-02-15 23:28:56','2017-02-15 23:28:56',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:28:56','2017-02-15 22:28:56',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',8,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(256,NULL,1,'2017-02-15 23:34:33','2017-02-15 23:34:33',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:34:33','2017-02-15 22:34:33',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',9,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(257,NULL,1,'2017-02-15 23:35:03','2017-02-15 23:35:03',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-15 23:35:03','2017-02-15 22:35:03',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',10,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(263,NULL,1,'2017-02-15 23:50:34','2017-02-15 23:50:34',40,'AC_OTH_AUTO','Order CO7001-0005 validated','2017-02-15 23:50:34','2017-02-15 22:50:34',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0005 validated\nAuthor: admin',17,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(264,NULL,1,'2017-02-15 23:51:23','2017-02-15 23:51:23',40,'AC_OTH_AUTO','Order CO7001-0006 validated','2017-02-15 23:51:23','2017-02-15 22:51:23',12,NULL,NULL,7,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0006 validated\nAuthor: admin',18,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(265,NULL,1,'2017-02-15 23:54:51','2017-02-15 23:54:51',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:54:51','2017-02-15 22:54:51',12,NULL,NULL,17,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',19,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(266,NULL,1,'2017-02-15 23:55:52','2017-02-15 23:55:52',40,'AC_OTH_AUTO','Order CO7001-0007 validated','2017-02-15 23:55:52','2017-02-15 22:55:52',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0007 validated\nAuthor: admin',20,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(267,NULL,1,'2017-02-16 00:03:44','2017-02-16 00:03:44',40,'AC_OTH_AUTO','Order CO7001-0008 validated','2017-02-16 00:03:44','2017-02-15 23:03:44',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0008 validated\nAuthor: admin',29,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(268,NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0009 validated','2017-02-16 00:05:01','2017-02-15 23:05:01',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0009 validated\nAuthor: admin',34,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(269,NULL,1,'2017-02-16 00:05:01','2017-02-16 00:05:01',40,'AC_OTH_AUTO','Order CO7001-0010 validated','2017-02-16 00:05:01','2017-02-15 23:05:01',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0010 validated\nAuthor: admin',38,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(270,NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0011 validated','2017-02-16 00:05:11','2017-02-15 23:05:11',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0011 validated\nAuthor: admin',40,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(271,NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0012 validated','2017-02-16 00:05:11','2017-02-15 23:05:11',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0012 validated\nAuthor: admin',43,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(272,NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0013 validated','2017-02-16 00:05:11','2017-02-15 23:05:11',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0013 validated\nAuthor: admin',47,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(273,NULL,1,'2017-02-16 00:05:11','2017-02-16 00:05:11',40,'AC_OTH_AUTO','Order CO7001-0014 validated','2017-02-16 00:05:11','2017-02-15 23:05:11',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0014 validated\nAuthor: admin',48,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(274,NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0015 validated','2017-02-16 00:05:26','2017-02-15 23:05:26',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0015 validated\nAuthor: admin',50,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(275,NULL,1,'2017-02-16 00:05:26','2017-02-16 00:05:26',40,'AC_OTH_AUTO','Order CO7001-0016 validated','2017-02-16 00:05:26','2017-02-15 23:05:26',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0016 validated\nAuthor: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(277,NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0018 validated','2017-02-16 00:05:35','2017-02-15 23:05:35',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0018 validated\nAuthor: admin',62,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(278,NULL,1,'2017-02-16 00:05:35','2017-02-16 00:05:35',40,'AC_OTH_AUTO','Order CO7001-0019 validated','2017-02-16 00:05:35','2017-02-15 23:05:35',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0019 validated\nAuthor: admin',68,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(279,NULL,1,'2017-02-16 00:05:36','2017-02-16 00:05:36',40,'AC_OTH_AUTO','Order CO7001-0020 validated','2017-02-16 00:05:36','2017-02-15 23:05:36',12,NULL,NULL,6,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0020 validated\nAuthor: admin',72,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(281,NULL,1,'2017-02-16 00:05:37','2017-02-16 00:05:37',40,'AC_OTH_AUTO','Order CO7001-0022 validated','2017-02-16 00:05:37','2017-02-15 23:05:37',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0022 validated\nAuthor: admin',78,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(282,NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0023 validated','2017-02-16 00:05:38','2017-02-15 23:05:38',12,NULL,NULL,11,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0023 validated\nAuthor: admin',81,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(283,NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0024 validated','2017-02-16 00:05:38','2017-02-15 23:05:38',12,NULL,NULL,26,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0024 validated\nAuthor: admin',83,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(284,NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0025 validated','2017-02-16 00:05:38','2017-02-15 23:05:38',12,NULL,NULL,2,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0025 validated\nAuthor: admin',84,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(285,NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0026 validated','2017-02-16 00:05:38','2017-02-15 23:05:38',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0026 validated\nAuthor: admin',85,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(286,NULL,1,'2017-02-16 00:05:38','2017-02-16 00:05:38',40,'AC_OTH_AUTO','Order CO7001-0027 validated','2017-02-16 00:05:38','2017-02-15 23:05:38',12,NULL,NULL,10,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Order CO7001-0027 validated\nAuthor: admin',88,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(287,NULL,1,'2017-02-16 03:05:56','2017-02-16 03:05:56',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Livrée','2017-02-16 03:05:56','2017-02-15 23:05:56',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Commande CO7001-0016 classée Livrée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(288,NULL,1,'2017-02-16 03:06:01','2017-02-16 03:06:01',40,'AC_OTH_AUTO','Commande CO7001-0016 classée Facturée','2017-02-16 03:06:01','2017-02-15 23:06:01',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Commande CO7001-0016 classée Facturée\nAuteur: admin',54,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(294,NULL,1,'2017-02-16 03:53:04','2017-02-16 03:53:04',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 03:53:04','2017-02-15 23:53:04',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(295,NULL,1,'2017-02-16 03:58:08','2017-02-16 03:58:08',40,'AC_OTH_AUTO','Expédition SH1702-0002 validée','2017-02-16 03:58:08','2017-02-15 23:58:08',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Expédition SH1702-0002 validée\nAuteur: admin',3,'shipping',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(296,NULL,1,'2017-02-16 04:12:29','2017-02-16 04:12:29',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:12:29','2017-02-16 00:12:29',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(297,NULL,1,'2017-02-16 04:14:20','2017-02-16 04:14:20',40,'AC_OTH_AUTO','Commande CO7001-0021 validée','2017-02-16 04:14:20','2017-02-16 00:14:20',12,NULL,NULL,4,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Commande CO7001-0021 validée\nAuteur: admin',75,'order',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(298,NULL,1,'2017-02-16 01:44:58','2017-02-16 01:44:58',40,'AC_OTH_AUTO','Proposal PR1702-0009 validated','2017-02-16 01:44:58','2017-02-16 00:44:58',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0009 validated\nAuthor: aeinstein',11,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(299,NULL,1,'2017-02-16 01:45:44','2017-02-16 01:45:44',40,'AC_OTH_AUTO','Proposal PR1702-0010 validated','2017-02-16 01:45:44','2017-02-16 00:45:44',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0010 validated\nAuthor: demo',12,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(300,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0011 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0011 validated\nAuthor: aeinstein',13,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(301,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0012 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',2,NULL,NULL,3,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0012 validated\nAuthor: demo',14,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(302,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0013 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0013 validated\nAuthor: demo',15,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(303,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0014 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0014 validated\nAuthor: demo',16,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(304,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0015 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0015 validated\nAuthor: aeinstein',17,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(305,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0016 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',2,NULL,NULL,26,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0016 validated\nAuthor: demo',18,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(306,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0017 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0017 validated\nAuthor: demo',19,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(307,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0018 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0018 validated\nAuthor: aeinstein',20,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(308,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0019 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',1,NULL,NULL,1,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0019 validated\nAuthor: aeinstein',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(309,NULL,1,'2017-02-16 01:46:15','2017-02-16 01:46:15',40,'AC_OTH_AUTO','Proposal PR1702-0020 validated','2017-02-16 01:46:15','2017-02-16 00:46:15',1,NULL,NULL,26,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0020 validated\nAuthor: aeinstein',22,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(310,NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0021 validated','2017-02-16 01:46:17','2017-02-16 00:46:17',2,NULL,NULL,12,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0021 validated\nAuthor: demo',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(311,NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0022 validated','2017-02-16 01:46:17','2017-02-16 00:46:17',2,NULL,NULL,7,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0022 validated\nAuthor: demo',24,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(312,NULL,1,'2017-02-16 01:46:17','2017-02-16 01:46:17',40,'AC_OTH_AUTO','Proposal PR1702-0023 validated','2017-02-16 01:46:17','2017-02-16 00:46:17',1,NULL,NULL,3,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0023 validated\nAuthor: aeinstein',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(313,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0024 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0024 validated\nAuthor: demo',26,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(314,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0025 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',1,NULL,NULL,6,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0025 validated\nAuthor: aeinstein',27,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(315,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0026 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0026 validated\nAuthor: demo',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(316,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0027 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0027 validated\nAuthor: demo',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(317,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0028 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',2,NULL,NULL,1,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0028 validated\nAuthor: demo',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(318,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0029 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',1,NULL,NULL,11,NULL,0,1,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0029 validated\nAuthor: aeinstein',31,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(319,NULL,1,'2017-02-16 01:46:18','2017-02-16 01:46:18',40,'AC_OTH_AUTO','Proposal PR1702-0030 validated','2017-02-16 01:46:18','2017-02-16 00:46:18',2,NULL,NULL,19,NULL,0,2,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposal PR1702-0030 validated\nAuthor: demo',32,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(320,NULL,1,'2017-02-16 04:46:31','2017-02-16 04:46:31',40,'AC_OTH_AUTO','Proposition PR1702-0026 signée','2017-02-16 04:46:31','2017-02-16 00:46:31',12,NULL,NULL,19,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0026 signée\nAuteur: admin',28,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(321,NULL,1,'2017-02-16 04:46:37','2017-02-16 04:46:37',40,'AC_OTH_AUTO','Proposition PR1702-0027 signée','2017-02-16 04:46:37','2017-02-16 00:46:37',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0027 signée\nAuteur: admin',29,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(322,NULL,1,'2017-02-16 04:46:42','2017-02-16 04:46:42',40,'AC_OTH_AUTO','Proposition PR1702-0028 refusée','2017-02-16 04:46:42','2017-02-16 00:46:42',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0028 refusée\nAuteur: admin',30,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(323,NULL,1,'2017-02-16 04:47:09','2017-02-16 04:47:09',40,'AC_OTH_AUTO','Proposition PR1702-0019 validée','2017-02-16 04:47:09','2017-02-16 00:47:09',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0019 validée\nAuteur: admin',21,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(324,NULL,1,'2017-02-16 04:47:25','2017-02-16 04:47:25',40,'AC_OTH_AUTO','Proposition PR1702-0023 signée','2017-02-16 04:47:25','2017-02-16 00:47:25',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0023 signée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(325,NULL,1,'2017-02-16 04:47:29','2017-02-16 04:47:29',40,'AC_OTH_AUTO','Proposition PR1702-0023 classée payée','2017-02-16 04:47:29','2017-02-16 00:47:29',12,NULL,NULL,3,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0023 classée payée\nAuteur: admin',25,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(326,NULL,1,'2017-02-17 16:07:18','2017-02-17 16:07:18',40,'AC_OTH_AUTO','Proposition PR1702-0021 validée','2017-02-17 16:07:18','2017-02-17 12:07:18',12,NULL,NULL,12,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Proposition PR1702-0021 validée\nAuteur: admin',23,'propal',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(327,NULL,1,'2017-05-12 13:53:44','2017-05-12 13:53:44',40,'AC_OTH_AUTO','Email sent by MyBigCompany To Einstein','2017-05-12 13:53:44','2017-05-12 09:53:44',12,NULL,NULL,11,12,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Sender: MyBigCompany &lt;myemail@mybigcompany.com&gt;<br>\nReceiver(s): Einstein &lt;genius@example.com&gt;<br>\nBcc: Einstein &lt;genius@example.com&gt;<br>\nEMail topic: Test<br>\nEmail body:<br>\nTest\nAuthor: admin',11,'societe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(328,NULL,1,'2017-08-29 22:39:09','2017-08-29 22:39:09',40,'AC_OTH_AUTO','Invoice FA1601-0024 validated','2017-08-29 22:39:09','2017-08-29 18:39:09',12,NULL,NULL,1,NULL,0,12,0,NULL,0,0,1,-1,'',NULL,NULL,'Invoice FA1601-0024 validated\nAuthor: admin',149,'invoice',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_actioncomm` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_actioncomm_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_actioncomm_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_actioncomm_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_actioncomm_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_actioncomm_extrafields`
    +--
    +
    +LOCK TABLES `llx_actioncomm_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_actioncomm_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_actioncomm_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_actioncomm_reminder`
    +--
    +
    +DROP TABLE IF EXISTS `llx_actioncomm_reminder`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_actioncomm_reminder` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `dateremind` datetime NOT NULL,
    +  `typeremind` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `offsetvalue` int(11) NOT NULL,
    +  `offsetunit` varchar(1) COLLATE utf8_unicode_ci NOT NULL,
    +  `status` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_actioncomm_reminder_unique` (`fk_user`,`typeremind`,`offsetvalue`,`offsetunit`),
    +  KEY `idx_actioncomm_reminder_rowid` (`rowid`),
    +  KEY `idx_actioncomm_reminder_dateremind` (`dateremind`),
    +  KEY `idx_actioncomm_reminder_fk_user` (`fk_user`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_actioncomm_reminder`
    +--
    +
    +LOCK TABLES `llx_actioncomm_reminder` WRITE;
    +/*!40000 ALTER TABLE `llx_actioncomm_reminder` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_actioncomm_reminder` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_actioncomm_resources`
    +--
    +
    +DROP TABLE IF EXISTS `llx_actioncomm_resources`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_actioncomm_resources` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_actioncomm` int(11) NOT NULL,
    +  `element_type` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_element` int(11) NOT NULL,
    +  `answer_status` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `mandatory` smallint(6) DEFAULT NULL,
    +  `transparency` smallint(6) DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_actioncomm_resources` (`fk_actioncomm`,`element_type`,`fk_element`),
    +  KEY `idx_actioncomm_resources_fk_element` (`fk_element`)
    +) ENGINE=InnoDB AUTO_INCREMENT=216 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_actioncomm_resources`
    +--
    +
    +LOCK TABLES `llx_actioncomm_resources` WRITE;
    +/*!40000 ALTER TABLE `llx_actioncomm_resources` DISABLE KEYS */;
    +INSERT INTO `llx_actioncomm_resources` VALUES (1,1,'user',1,NULL,NULL,1),(2,2,'user',1,NULL,NULL,1),(3,3,'user',1,NULL,NULL,1),(4,4,'user',1,NULL,NULL,1),(5,5,'user',1,NULL,NULL,1),(6,6,'user',1,NULL,NULL,1),(7,7,'user',1,NULL,NULL,1),(8,8,'user',1,NULL,NULL,1),(9,9,'user',1,NULL,NULL,1),(10,10,'user',1,NULL,NULL,1),(11,11,'user',1,NULL,NULL,1),(12,12,'user',1,NULL,NULL,1),(13,13,'user',1,NULL,NULL,1),(14,14,'user',1,NULL,NULL,1),(15,15,'user',1,NULL,NULL,1),(16,16,'user',1,NULL,NULL,1),(17,17,'user',1,NULL,NULL,1),(18,18,'user',1,NULL,NULL,1),(19,19,'user',1,NULL,NULL,1),(20,20,'user',1,NULL,NULL,1),(21,21,'user',1,NULL,NULL,1),(22,22,'user',1,NULL,NULL,1),(23,23,'user',1,NULL,NULL,1),(24,24,'user',1,NULL,NULL,1),(25,25,'user',1,NULL,NULL,1),(26,26,'user',1,NULL,NULL,1),(27,27,'user',1,NULL,NULL,1),(28,28,'user',1,NULL,NULL,1),(29,29,'user',1,NULL,NULL,1),(30,30,'user',1,NULL,NULL,1),(31,31,'user',1,NULL,NULL,1),(32,38,'user',1,NULL,NULL,1),(33,40,'user',1,NULL,NULL,1),(34,41,'user',1,NULL,NULL,1),(35,42,'user',1,NULL,NULL,1),(36,43,'user',1,NULL,NULL,1),(37,44,'user',1,NULL,NULL,1),(38,45,'user',1,NULL,NULL,1),(39,46,'user',1,NULL,NULL,1),(40,47,'user',1,NULL,NULL,1),(41,48,'user',1,NULL,NULL,1),(42,49,'user',1,NULL,NULL,1),(43,50,'user',1,NULL,NULL,1),(44,51,'user',1,NULL,NULL,1),(45,52,'user',1,NULL,NULL,1),(46,53,'user',1,NULL,NULL,1),(47,54,'user',1,NULL,NULL,1),(48,55,'user',1,NULL,NULL,1),(49,56,'user',1,NULL,NULL,1),(50,121,'user',3,NULL,NULL,1),(51,122,'user',1,NULL,NULL,1),(52,123,'user',1,NULL,NULL,1),(53,124,'user',1,NULL,NULL,1),(54,125,'user',1,NULL,NULL,1),(55,127,'user',1,NULL,NULL,1),(56,128,'user',1,NULL,NULL,1),(57,129,'user',1,NULL,NULL,1),(58,130,'user',1,NULL,NULL,1),(59,131,'user',1,NULL,NULL,1),(60,132,'user',1,NULL,NULL,1),(61,133,'user',1,NULL,NULL,1),(62,134,'user',1,NULL,NULL,1),(63,135,'user',1,NULL,NULL,1),(64,136,'user',1,NULL,NULL,1),(65,137,'user',1,NULL,NULL,1),(66,138,'user',1,NULL,NULL,1),(67,139,'user',1,NULL,NULL,1),(68,140,'user',1,NULL,NULL,1),(69,141,'user',1,NULL,NULL,1),(70,142,'user',1,NULL,NULL,1),(71,143,'user',1,NULL,NULL,1),(72,144,'user',1,NULL,NULL,1),(73,145,'user',1,NULL,NULL,1),(74,146,'user',1,NULL,NULL,1),(75,147,'user',1,NULL,NULL,1),(76,148,'user',1,NULL,NULL,1),(77,149,'user',1,NULL,NULL,1),(78,150,'user',1,NULL,NULL,1),(79,151,'user',1,NULL,NULL,1),(80,152,'user',1,NULL,NULL,1),(81,203,'user',1,NULL,NULL,1),(82,204,'user',1,NULL,NULL,1),(83,205,'user',1,NULL,NULL,1),(84,206,'user',1,NULL,NULL,1),(85,207,'user',1,NULL,NULL,1),(86,208,'user',1,NULL,NULL,1),(87,209,'user',1,NULL,NULL,1),(88,210,'user',1,NULL,NULL,1),(89,211,'user',1,NULL,NULL,1),(90,212,'user',1,NULL,NULL,1),(91,213,'user',1,NULL,NULL,1),(92,214,'user',1,NULL,NULL,1),(93,215,'user',1,NULL,NULL,1),(94,216,'user',1,NULL,NULL,1),(95,217,'user',1,NULL,NULL,1),(96,218,'user',1,NULL,NULL,1),(97,219,'user',1,NULL,NULL,1),(98,220,'user',1,NULL,NULL,1),(99,221,'user',1,NULL,NULL,1),(100,222,'user',1,NULL,NULL,1),(101,223,'user',1,NULL,NULL,1),(102,224,'user',1,NULL,NULL,1),(103,225,'user',1,NULL,NULL,1),(104,226,'user',1,NULL,NULL,1),(105,227,'user',1,NULL,NULL,1),(106,228,'user',1,NULL,NULL,1),(107,229,'user',1,NULL,NULL,1),(108,230,'user',1,NULL,NULL,1),(109,231,'user',1,NULL,NULL,1),(110,232,'user',12,'0',0,0),(111,233,'user',12,'0',0,0),(112,234,'user',12,'0',0,1),(113,235,'user',12,'0',0,1),(114,236,'user',4,'0',0,0),(115,237,'user',13,'0',0,0),(116,237,'user',16,'0',0,0),(117,237,'user',18,'0',0,0),(118,238,'user',12,'0',0,1),(119,238,'user',3,'0',0,1),(120,238,'user',10,'0',0,1),(121,239,'user',12,'0',0,0),(123,240,'user',12,'0',0,1),(125,242,'user',12,'0',0,0),(126,243,'user',12,'0',0,0),(128,245,'user',12,'0',0,0),(132,249,'user',12,'0',0,0),(133,250,'user',12,'0',0,0),(134,251,'user',12,'0',0,0),(135,252,'user',12,'0',0,0),(136,253,'user',12,'0',0,0),(137,254,'user',12,'0',0,0),(138,255,'user',12,'0',0,0),(139,256,'user',12,'0',0,0),(140,257,'user',12,'0',0,0),(146,263,'user',12,'0',0,0),(147,264,'user',12,'0',0,0),(148,265,'user',12,'0',0,0),(149,266,'user',12,'0',0,0),(150,267,'user',12,'0',0,0),(151,268,'user',12,'0',0,0),(152,269,'user',12,'0',0,0),(153,270,'user',12,'0',0,0),(154,271,'user',12,'0',0,0),(155,272,'user',12,'0',0,0),(156,273,'user',12,'0',0,0),(157,274,'user',12,'0',0,0),(158,275,'user',12,'0',0,0),(160,277,'user',12,'0',0,0),(161,278,'user',12,'0',0,0),(162,279,'user',12,'0',0,0),(164,281,'user',12,'0',0,0),(165,282,'user',12,'0',0,0),(166,283,'user',12,'0',0,0),(167,284,'user',12,'0',0,0),(168,285,'user',12,'0',0,0),(169,286,'user',12,'0',0,0),(170,287,'user',12,'0',0,0),(171,288,'user',12,'0',0,0),(177,294,'user',12,'0',0,0),(178,295,'user',12,'0',0,0),(179,296,'user',12,'0',0,0),(180,297,'user',12,'0',0,0),(181,298,'user',1,'0',0,0),(182,299,'user',2,'0',0,0),(183,300,'user',1,'0',0,0),(184,301,'user',2,'0',0,0),(185,302,'user',2,'0',0,0),(186,303,'user',2,'0',0,0),(187,304,'user',1,'0',0,0),(188,305,'user',2,'0',0,0),(189,306,'user',2,'0',0,0),(190,307,'user',1,'0',0,0),(191,308,'user',1,'0',0,0),(192,309,'user',1,'0',0,0),(193,310,'user',2,'0',0,0),(194,311,'user',2,'0',0,0),(195,312,'user',1,'0',0,0),(196,313,'user',2,'0',0,0),(197,314,'user',1,'0',0,0),(198,315,'user',2,'0',0,0),(199,316,'user',2,'0',0,0),(200,317,'user',2,'0',0,0),(201,318,'user',1,'0',0,0),(202,319,'user',2,'0',0,0),(203,320,'user',12,'0',0,0),(204,321,'user',12,'0',0,0),(205,322,'user',12,'0',0,0),(206,323,'user',12,'0',0,0),(207,324,'user',12,'0',0,0),(208,325,'user',12,'0',0,0),(209,326,'user',12,'0',0,0),(210,327,'user',12,'0',0,0),(211,328,'user',12,'0',0,0),(212,24,'socpeople',2,NULL,NULL,1),(213,235,'socpeople',2,NULL,NULL,1),(214,238,'socpeople',10,NULL,NULL,1),(215,327,'socpeople',12,NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_actioncomm_resources` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_adherent`
    +--
    +
    +DROP TABLE IF EXISTS `llx_adherent`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_adherent` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `civility` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `login` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass_crypted` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_adherent_type` int(11) NOT NULL,
    +  `morphy` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
    +  `societe` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `address` text COLLATE utf8_unicode_ci,
    +  `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `state_id` int(11) DEFAULT NULL,
    +  `country` int(11) DEFAULT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `skype` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone_perso` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone_mobile` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `birth` date DEFAULT NULL,
    +  `photo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `public` smallint(6) NOT NULL DEFAULT '0',
    +  `datefin` datetime DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `datevalid` datetime DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `twitter` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `facebook` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `instagram` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `snapchat` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `googleplus` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `youtube` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `whatsapp` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_adherent_login` (`login`,`entity`),
    +  UNIQUE KEY `uk_adherent_fk_soc` (`fk_soc`),
    +  KEY `idx_adherent_fk_adherent_type` (`fk_adherent_type`),
    +  CONSTRAINT `adherent_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_adherent_adherent_type` FOREIGN KEY (`fk_adherent_type`) REFERENCES `llx_adherent_type` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_adherent`
    +--
    +
    +LOCK TABLES `llx_adherent` WRITE;
    +/*!40000 ALTER TABLE `llx_adherent` DISABLE KEYS */;
    +INSERT INTO `llx_adherent` VALUES (1,1,NULL,NULL,'Smith','Vick','vsmith','vsx1n8tf',NULL,2,'phy',NULL,10,NULL,NULL,NULL,NULL,102,'vsmith@email.com',NULL,NULL,NULL,NULL,'1960-07-07',NULL,1,0,'2012-07-09 00:00:00',NULL,NULL,'2010-07-10 15:12:56','2010-07-08 23:50:00','2013-03-20 13:30:11',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,1,NULL,NULL,'Curie','Pierre','pcurie','pcuriedolibarr',NULL,2,'phy',NULL,12,NULL,NULL,NULL,NULL,1,'pcurie@example.com','',NULL,NULL,NULL,'1972-07-08',NULL,1,1,'2017-07-17 00:00:00',NULL,NULL,'2010-07-10 15:03:32','2010-07-10 15:03:09','2015-10-05 19:57:57',1,12,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,1,NULL,NULL,'john','doe','john','8bs6gty5',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,1,'johndoe@email.com',NULL,NULL,NULL,NULL,NULL,NULL,1,0,NULL,NULL,NULL,'2011-07-18 21:28:00','2011-07-18 21:10:09','2015-10-03 09:28:46',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,1,NULL,NULL,'smith','smith','Smith','s6hjp10f',NULL,2,'phy',NULL,NULL,NULL,NULL,NULL,NULL,11,'smith@email.com',NULL,NULL,NULL,NULL,NULL,NULL,1,0,NULL,NULL,NULL,'2011-07-18 21:27:52','2011-07-18 21:27:44','2015-10-03 09:40:27',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_adherent` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_adherent_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_adherent_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_adherent_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `zzz` varchar(125) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `aaa` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `sssss` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_adherent_options` (`fk_object`),
    +  KEY `idx_adherent_extrafields` (`fk_object`)
    +) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_adherent_extrafields`
    +--
    +
    +LOCK TABLES `llx_adherent_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_adherent_extrafields` DISABLE KEYS */;
    +INSERT INTO `llx_adherent_extrafields` VALUES (62,'2011-07-18 19:10:09',3,NULL,NULL,NULL,NULL),(63,'2011-07-18 19:27:44',4,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_adherent_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_adherent_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_adherent_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_adherent_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `libelle` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `subscription` varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
    +  `vote` varchar(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'yes',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `mail_valid` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_adherent_type_libelle` (`libelle`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_adherent_type`
    +--
    +
    +LOCK TABLES `llx_adherent_type` WRITE;
    +/*!40000 ALTER TABLE `llx_adherent_type` DISABLE KEYS */;
    +INSERT INTO `llx_adherent_type` VALUES (1,1,'2010-07-08 21:41:55',1,'Board members','1','1','','<br />'),(2,1,'2010-07-08 21:41:43',1,'Standard members','1','0','','<br />');
    +/*!40000 ALTER TABLE `llx_adherent_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_adherent_type_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_adherent_type_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_adherent_type_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_adherent_type_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_adherent_type_extrafields`
    +--
    +
    +LOCK TABLES `llx_adherent_type_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_adherent_type_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_adherent_type_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_advtargetemailing`
    +--
    +
    +DROP TABLE IF EXISTS `llx_advtargetemailing`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_advtargetemailing` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `filtervalue` text COLLATE utf8_unicode_ci,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_element` int(11) NOT NULL,
    +  `type_element` varchar(180) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_advtargetemailing_name` (`name`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_advtargetemailing`
    +--
    +
    +LOCK TABLES `llx_advtargetemailing` WRITE;
    +/*!40000 ALTER TABLE `llx_advtargetemailing` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_advtargetemailing` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_calendrier`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_calendrier`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_calendrier` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `day_session` int(11) NOT NULL,
    +  `heured` varchar(5) NOT NULL,
    +  `heuref` varchar(5) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_calendrier`
    +--
    +
    +LOCK TABLES `llx_agefodd_calendrier` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_calendrier` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_calendrier` VALUES (1,1,1,'09:00','12:00',1,'2013-10-13 19:23:12',1,'2013-10-13 15:23:12'),(2,1,1,'14:00','18:00',1,'2013-10-13 19:23:25',1,'2013-10-13 15:23:25'),(3,1,2,'09:00','12:00',1,'2013-10-13 19:23:12',1,'2013-10-13 15:23:12'),(4,1,2,'14:00','18:00',1,'2013-10-13 19:23:25',1,'2013-10-13 15:23:25'),(5,1,3,'09:00','12:00',1,'2013-10-13 19:23:12',1,'2013-10-13 15:23:12'),(6,1,3,'14:00','18:00',1,'2013-10-13 19:23:25',1,'2013-10-13 15:23:25'),(7,1,4,'09:00','12:00',1,'2013-10-13 19:23:12',1,'2013-10-13 15:23:12'),(8,1,4,'14:00','18:00',1,'2013-10-13 19:23:25',1,'2013-10-13 15:23:25');
    +/*!40000 ALTER TABLE `llx_agefodd_calendrier` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_certif_state`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_certif_state`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_certif_state` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_certif` int(11) NOT NULL,
    +  `fk_certif_type` int(11) NOT NULL,
    +  `certif_state` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_certif_state`
    +--
    +
    +LOCK TABLES `llx_agefodd_certif_state` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_certif_state` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_certif_state` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_certificate_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_certificate_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_certificate_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `intitule` varchar(80) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_certificate_type`
    +--
    +
    +LOCK TABLES `llx_agefodd_certificate_type` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_certificate_type` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_certificate_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_contact`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_contact`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_contact` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_socpeople` int(11) NOT NULL,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_contact_fk_socpeople` (`fk_socpeople`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_contact`
    +--
    +
    +LOCK TABLES `llx_agefodd_contact` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_contact` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_contact` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_convention`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_convention`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_convention` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_agefodd_session` int(11) NOT NULL,
    +  `fk_societe` int(11) NOT NULL,
    +  `element_type` varchar(50) DEFAULT NULL,
    +  `fk_element` int(11) DEFAULT NULL,
    +  `model_doc` varchar(200) DEFAULT NULL,
    +  `intro1` text NOT NULL,
    +  `intro2` text NOT NULL,
    +  `art1` text NOT NULL,
    +  `art2` text NOT NULL,
    +  `art3` text NOT NULL,
    +  `art4` text NOT NULL,
    +  `art5` text NOT NULL,
    +  `art6` text NOT NULL,
    +  `art7` text NOT NULL,
    +  `art8` text NOT NULL,
    +  `art9` text NOT NULL,
    +  `sig` text,
    +  `only_product_session` int(11) DEFAULT '0',
    +  `notes` text NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_fk_agefodd_session_conv` (`fk_agefodd_session`),
    +  KEY `idx_fk_societe_conv` (`fk_societe`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_convention`
    +--
    +
    +LOCK TABLES `llx_agefodd_convention` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_convention` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_convention` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_convention_stagiaire`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_convention_stagiaire`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_convention_stagiaire` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_agefodd_convention` int(11) NOT NULL,
    +  `fk_agefodd_session_stagiaire` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_agefodd_convention_stagiaire_convsta` (`fk_agefodd_convention`,`fk_agefodd_session_stagiaire`),
    +  KEY `idx_fk_agefodd_session_stagiaire_conv` (`fk_agefodd_convention`),
    +  KEY `idx_fk_agefodd_session_stagiaire_convsta` (`fk_agefodd_session_stagiaire`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_convention_stagiaire`
    +--
    +
    +LOCK TABLES `llx_agefodd_convention_stagiaire` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_convention_stagiaire` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_convention_stagiaire` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_cursus`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_cursus`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_cursus` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref_interne` varchar(80) DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `intitule` varchar(80) NOT NULL,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `note_private` text,
    +  `note_public` text,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `archive_cursus` (`archive`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_cursus`
    +--
    +
    +LOCK TABLES `llx_agefodd_cursus` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_cursus` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_cursus` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_cursus_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_cursus_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_cursus_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_cursus_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_cursus_extrafields`
    +--
    +
    +LOCK TABLES `llx_agefodd_cursus_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_cursus_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_cursus_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formateur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formateur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formateur` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_socpeople` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `type_trainer` varchar(20) DEFAULT NULL,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_formateur_fk_socpeople` (`fk_socpeople`),
    +  KEY `idx_agefodd_formateur_fk_user` (`fk_user`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formateur`
    +--
    +
    +LOCK TABLES `llx_agefodd_formateur` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formateur_category`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formateur_category`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formateur_category` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_trainer` int(11) NOT NULL,
    +  `fk_category` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_formateur_category` (`fk_category`),
    +  KEY `llx_agefodd_formateur_category_trainer` (`fk_trainer`),
    +  CONSTRAINT `llx_agefodd_formateur_category` FOREIGN KEY (`fk_category`) REFERENCES `llx_agefodd_formateur_category_dict` (`rowid`),
    +  CONSTRAINT `llx_agefodd_formateur_category_trainer` FOREIGN KEY (`fk_trainer`) REFERENCES `llx_agefodd_formateur` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formateur_category`
    +--
    +
    +LOCK TABLES `llx_agefodd_formateur_category` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_category` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_category` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formateur_category_dict`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formateur_category_dict`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formateur_category_dict` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `code` varchar(20) NOT NULL,
    +  `label` varchar(100) DEFAULT NULL,
    +  `description` text,
    +  `active` smallint(6) NOT NULL DEFAULT '0',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formateur_category_dict`
    +--
    +
    +LOCK TABLES `llx_agefodd_formateur_category_dict` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_category_dict` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_category_dict` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formateur_training`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formateur_training`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formateur_training` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_trainer` int(11) NOT NULL,
    +  `fk_training` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_formateur_training_training` (`fk_training`),
    +  KEY `llx_agefodd_formateur_training_trainer` (`fk_trainer`),
    +  CONSTRAINT `llx_agefodd_formateur_training_trainer` FOREIGN KEY (`fk_trainer`) REFERENCES `llx_agefodd_formateur` (`rowid`),
    +  CONSTRAINT `llx_agefodd_formateur_training_training` FOREIGN KEY (`fk_training`) REFERENCES `llx_agefodd_formation_catalogue` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formateur_training`
    +--
    +
    +LOCK TABLES `llx_agefodd_formateur_training` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_training` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_training` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formateur_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formateur_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formateur_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `intitule` varchar(80) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formateur_type`
    +--
    +
    +LOCK TABLES `llx_agefodd_formateur_type` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_type` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_formateur_type` VALUES (1,'Formateur interne',0,1,'2017-03-23 11:00:00'),(2,'Formateur externe - Indépendant',1,1,'2017-03-23 11:00:00'),(3,'Formateur externe - Salarié',2,1,'2017-03-23 11:00:00'),(4,'Formateur externe - Sous traintance',2,1,'2017-03-23 11:00:00');
    +/*!40000 ALTER TABLE `llx_agefodd_formateur_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_catalogue`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_catalogue`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_catalogue` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(40) NOT NULL,
    +  `ref_interne` varchar(100) DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `intitule` varchar(100) NOT NULL,
    +  `duree` double NOT NULL DEFAULT '0',
    +  `public` text,
    +  `methode` text,
    +  `but` text,
    +  `programme` text,
    +  `pedago_usage` text,
    +  `sanction` text,
    +  `prerequis` text,
    +  `note1` text,
    +  `note2` text,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `note_private` text,
    +  `note_public` text,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `nb_subscribe_min` int(11) DEFAULT NULL,
    +  `fk_c_category` int(11) DEFAULT NULL,
    +  `fk_c_category_bpf` int(11) DEFAULT NULL,
    +  `certif_duration` varchar(30) DEFAULT NULL,
    +  `qr_code_info` varchar(500) DEFAULT NULL,
    +  `color` varchar(32) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(36) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `ref_form_cat` (`ref`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_catalogue`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_catalogue` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_formation_catalogue` VALUES (1,'FOR_1809-0001','',1,'Formation AAA',14,'','','','',NULL,NULL,'','','',0,12,'2018-09-14 09:51:02',12,NULL,NULL,4,NULL,NULL,1,NULL,NULL,NULL,'2018-09-14 07:51:02',NULL);
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_catalogue_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_catalogue_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_catalogue_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_formation_catalogue_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_catalogue_extrafields`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_catalogue_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_catalogue_modules`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_catalogue_modules`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_catalogue_modules` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_formation_catalogue` int(11) NOT NULL,
    +  `sort_order` int(11) NOT NULL DEFAULT '1',
    +  `title` varchar(200) NOT NULL,
    +  `content_text` text,
    +  `duration` double DEFAULT NULL,
    +  `obj_peda` text,
    +  `status` int(11) NOT NULL DEFAULT '1',
    +  `import_key` varchar(100) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_catalogue_modules`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_catalogue_modules` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_modules` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_modules` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_catalogue_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_catalogue_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_catalogue_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) NOT NULL,
    +  `intitule` varchar(1000) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=93 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_catalogue_type`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_catalogue_type` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_type` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_formation_catalogue_type` VALUES (1,'100','Formations générales',1,1,'2017-03-23 11:00:00'),(2,'110','Spécialités pluriscientifiques',2,1,'2017-03-23 11:00:00'),(3,'111','Physique-chimie',3,1,'2017-03-23 11:00:00'),(4,'112','Chimie-biologie, biochimie',4,1,'2017-03-23 11:00:00'),(5,'113','Sciences naturelles (biologie-géologie)',5,1,'2017-03-23 11:00:00'),(6,'114','Mathématiques',6,1,'2017-03-23 11:00:00'),(7,'115','Physique',7,1,'2017-03-23 11:00:00'),(8,'116','Chimie',8,1,'2017-03-23 11:00:00'),(9,'117','Sciences de la terre',9,1,'2017-03-23 11:00:00'),(10,'118','Sciences de la vie',10,1,'2017-03-23 11:00:00'),(11,'120','Spécialités pluridisciplinaires, sciences humaines et droit',11,1,'2017-03-23 11:00:00'),(12,'121','Géographie',12,1,'2017-03-23 11:00:00'),(13,'122','Economie',13,1,'2017-03-23 11:00:00'),(14,'123','Sciences sociales (y compris démographie, anthropologie)',14,1,'2017-03-23 11:00:00'),(15,'124','Psychologie',15,1,'2017-03-23 11:00:00'),(16,'125','Linguistique',16,1,'2017-03-23 11:00:00'),(17,'126','Histoire',17,1,'2017-03-23 11:00:00'),(18,'127','Philosophie, éthique et théologie',18,1,'2017-03-23 11:00:00'),(19,'128','Droit, sciences politiques',19,1,'2017-03-23 11:00:00'),(20,'130','Spécialités littéraires et artistiques plurivalentes',20,1,'2017-03-23 11:00:00'),(21,'131','Français, littérature et civilisation française',21,1,'2017-03-23 11:00:00'),(22,'132','Arts plastiques',22,1,'2017-03-23 11:00:00'),(23,'133','Musique, arts du spectacle',23,1,'2017-03-23 11:00:00'),(24,'134','Autres disciplines artistiques et spécialités artistiques plurivalentes',24,1,'2017-03-23 11:00:00'),(25,'135','Langues et civilisations anciennes',25,1,'2017-03-23 11:00:00'),(26,'136','Langues vivantes, civilisations étrangères et régionales',26,1,'2017-03-23 11:00:00'),(27,'200','Technologies industrielles fondamentales (génie industriel, procédés de Transformation, spécialités à dominante fonctionnelle)',27,1,'2017-03-23 11:00:00'),(28,'201','Technologies de commandes des transformations industriels (automatismes et robotique industriels, informatique industrielle)',28,1,'2017-03-23 11:00:00'),(29,'210','Spécialités plurivalentes de l\'agronomie et de l\'agriculture',29,1,'2017-03-23 11:00:00'),(30,'211','Productions végétales, cultures spécialisées (horticulture, viticulture,arboriculture fruitière…)',30,1,'2017-03-23 11:00:00'),(31,'212','Productions animales, élevage spécialisé, aquaculture, soins aux animaux,y compris vétérinaire',31,1,'2017-03-23 11:00:00'),(32,'213','Forêts, espaces naturels, faune sauvage, pêche',32,1,'2017-03-23 11:00:00'),(33,'214','Aménagement paysager (parcs, jardins, espaces verts ...)',33,1,'2017-03-23 11:00:00'),(34,'220','Spécialités pluritechnologiques des transformations',34,1,'2017-03-23 11:00:00'),(35,'221','Agro-alimentaire, alimentation, cuisine',35,1,'2017-03-23 11:00:00'),(36,'222','Transformations chimiques et apparentées (y compris industrie pharmaceutique)',36,1,'2017-03-23 11:00:00'),(37,'223','Métallurgie (y compris sidérurgie, fonderie, non ferreux...)',37,1,'2017-03-23 11:00:00'),(38,'224','Matériaux de construction, verre, céramique',38,1,'2017-03-23 11:00:00'),(39,'225','Plasturgie, matériaux composites',39,1,'2017-03-23 11:00:00'),(40,'226','Papier, carton',40,1,'2017-03-23 11:00:00'),(41,'227','Energie, génie climatique (y compris énergie nucléaire, thermique, hydraulique ;',41,1,'2017-03-23 11:00:00'),(42,'230','Spécialités génie civil, , pluritechnologiques, construction, bois',42,1,'2017-03-23 11:00:00'),(43,'231','Mines et carrières, génie civil, topographie',43,1,'2017-03-23 11:00:00'),(44,'232','Bâtiment : construction et couverture',44,1,'2017-03-23 11:00:00'),(45,'233','Bâtiment : finitions',45,1,'2017-03-23 11:00:00'),(46,'234','Travail du bois et de l\'ameublement',46,1,'2017-03-23 11:00:00'),(47,'240','Spécialités pluritechnologiques matériaux souples',47,1,'2017-03-23 11:00:00'),(48,'241','Textile',48,1,'2017-03-23 11:00:00'),(49,'242','Habillement (y compris mode, couture)',49,1,'2017-03-23 11:00:00'),(50,'243','Cuirs et peaux',50,1,'2017-03-23 11:00:00'),(51,'250','Spécialités pluritechnologiques mécanique-électricité (y compris maintenance mécano-électrique)',51,1,'2017-03-23 11:00:00'),(52,'251','Mécanique générale et de précision, usinage',52,1,'2017-03-23 11:00:00'),(53,'252','Moteurs et mécanique auto',53,1,'2017-03-23 11:00:00'),(54,'253','Mécanique aéronautique et spatiale',54,1,'2017-03-23 11:00:00'),(55,'254','Structures métalliques (y compris soudure, carrosserie, coque bateau, cellule, avion',55,1,'2017-03-23 11:00:00'),(56,'255','Electricité, électronique (non compris automatismes, productique)',56,1,'2017-03-23 11:00:00'),(57,'300','Spécialités plurivalentes des services',57,1,'2017-03-23 11:00:00'),(58,'310','Spécialités plurivalentes des échanges et de la gestion (y compris administration générale des entreprises et des collectivités)',58,1,'2017-03-23 11:00:00'),(59,'311','Transports, manutention, magasinage',59,1,'2017-03-23 11:00:00'),(60,'312','Commerce, vente',60,1,'2017-03-23 11:00:00'),(61,'313','Finances, banque, assurances',61,1,'2017-03-23 11:00:00'),(62,'314','Comptabilité, gestion',62,1,'2017-03-23 11:00:00'),(63,'315','Ressources humaines, gestion du personnel, gestion de l\'emploi',63,1,'2017-03-23 11:00:00'),(64,'320','Spécialités plurivalentes de la communication',64,1,'2017-03-23 11:00:00'),(65,'321','Journalisme, communication (y compris communication graphique et publicité)',65,1,'2017-03-23 11:00:00'),(66,'322','Techniques de l\'imprimerie et de l\'édition',66,1,'2017-03-23 11:00:00'),(67,'323','Techniques de l\'image et du son, métiers connexes du spectacle',67,1,'2017-03-23 11:00:00'),(68,'324','Secrétariat, bureautique',68,1,'2017-03-23 11:00:00'),(69,'325','Documentation, bibliothèques, administration des données',69,1,'2017-03-23 11:00:00'),(70,'326','Informatique, traitement de l\'information, réseaux de transmission des données',70,1,'2017-03-23 11:00:00'),(71,'330','Spécialités plurivalentes sanitaires et sociales',71,1,'2017-03-23 11:00:00'),(72,'331','Santé',72,1,'2017-03-23 11:00:00'),(73,'332','Travail social',73,1,'2017-03-23 11:00:00'),(74,'333','Enseignement, formation',74,1,'2017-03-23 11:00:00'),(75,'334','Accueil, hôtellerie, tourisme',75,1,'2017-03-23 11:00:00'),(76,'335','Animation culturelle, sportive et de loisirs',76,1,'2017-03-23 11:00:00'),(77,'336','Coiffure, esthétique et autres spécialités des services aux personnes',77,1,'2017-03-23 11:00:00'),(78,'341','Aménagement du territoire, développement, urbanisme',78,1,'2017-03-23 11:00:00'),(79,'342','Protection et développement du patrimoine',79,1,'2017-03-23 11:00:00'),(80,'343','Nettoyage, assainissement, protection de l\'environnement',80,1,'2017-03-23 11:00:00'),(81,'344','Sécurité des biens et des personnes, police, surveillance (y compris hygiène et sécurité)',81,1,'2017-03-23 11:00:00'),(82,'345','Application des droits et statut des personnes',82,1,'2017-03-23 11:00:00'),(83,'346','Spécialités militaires',83,1,'2017-03-23 11:00:00'),(84,'410','Spécialités concernant plusieurs capacités',84,1,'2017-03-23 11:00:00'),(85,'411','Pratiques sportives (y compris : arts martiaux)',85,1,'2017-03-23 11:00:00'),(86,'412','Développement des capacités mentales et apprentissages de base',86,1,'2017-03-23 11:00:00'),(87,'413','Développement des capacités comportementales et relationnelles',87,1,'2017-03-23 11:00:00'),(88,'414','Développement des capacités individuelles d\'organisation',88,1,'2017-03-23 11:00:00'),(89,'415','Développement des capacités d\'orientation, d\'insertion ou de réinsertion sociales',89,1,'2017-03-23 11:00:00'),(90,'421','Jeux et activités spécifiques de loisirs',90,1,'2017-03-23 11:00:00'),(91,'422','Economie et activités domestiques',91,1,'2017-03-23 11:00:00'),(92,'423','Vie familiale, vie sociale et autres formations au développement personne',92,1,'2017-03-23 11:00:00');
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_catalogue_type_bpf`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_catalogue_type_bpf`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_catalogue_type_bpf` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) NOT NULL,
    +  `intitule` varchar(1000) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_catalogue_type_bpf`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_catalogue_type_bpf` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_type_bpf` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_formation_catalogue_type_bpf` VALUES (1,'F3a1','Formations visant un diplôme ou un titre à finalité professionnelle (hors certificat de qualification professionnelle) inscrit au Répertoire national des certifications professionnelles (RNCP)',0,1,'2017-03-23 11:00:00'),(2,'F3a2','dont de niveau I et II (licence, maîtrise, master, DEA, DESS, diplôme d’ingénieur)',1,1,'2017-03-23 11:00:00'),(3,'F3a3','dont de niveau III (BTS, DUT, écoles de formation sanitaire et sociale ...)',2,1,'2017-03-23 11:00:00'),(4,'F3a4','dont de niveau IV (BAC professionnel, BT, BP, BM...)',3,1,'2017-03-23 11:00:00'),(5,'F3a5','dont de niveau V (BEP, CAP ou CFPA 1 er degré...)',4,1,'2017-03-23 11:00:00'),(6,'F3b','Formations visant un certificat de qualification professionnelle (CQP)',5,1,'2017-03-23 11:00:00'),(7,'F3c','Formations visant une certification et/ou une habilitation inscrite à l’inventaire de la CNCP',6,1,'2017-03-23 11:00:00'),(8,'F3d','Autres formations professionnelles continues',7,1,'2017-03-23 11:00:00'),(9,'F3e','Bilans de compétence',8,1,'2017-03-23 11:00:00'),(10,'F3f','Actions d’accompagnement à la validation des acquis de l’expérience',9,1,'2017-03-23 11:00:00');
    +/*!40000 ALTER TABLE `llx_agefodd_formation_catalogue_type_bpf` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_cursus`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_cursus`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_cursus` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_formation_catalogue` int(11) NOT NULL,
    +  `fk_cursus` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_agefodd_formation_cursus` (`fk_formation_catalogue`,`fk_cursus`),
    +  KEY `llx_agefodd_formation_cursus_ibfk_2` (`fk_cursus`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_cursus`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_cursus` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_cursus` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_cursus` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_formation_objectifs_peda`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_formation_objectifs_peda`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_formation_objectifs_peda` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_formation_catalogue` int(11) NOT NULL,
    +  `intitule` varchar(500) NOT NULL,
    +  `priorite` smallint(6) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_formation_catalogue_obj_peda` (`fk_formation_catalogue`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_formation_objectifs_peda`
    +--
    +
    +LOCK TABLES `llx_agefodd_formation_objectifs_peda` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_objectifs_peda` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_formation_objectifs_peda` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_opca`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_opca`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_opca` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session_trainee` int(11) NOT NULL,
    +  `fk_soc_trainee` int(11) NOT NULL,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `date_ask_OPCA` datetime DEFAULT NULL,
    +  `is_date_ask_OPCA` smallint(6) NOT NULL DEFAULT '0',
    +  `is_OPCA` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_soc_OPCA` int(11) DEFAULT NULL,
    +  `fk_socpeople_OPCA` int(11) DEFAULT NULL,
    +  `num_OPCA_soc` varchar(100) DEFAULT NULL,
    +  `num_OPCA_file` varchar(100) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_opca`
    +--
    +
    +LOCK TABLES `llx_agefodd_opca` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_opca` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_opca` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_place`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_place`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_place` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref_interne` varchar(80) NOT NULL,
    +  `adresse` varchar(255) DEFAULT NULL,
    +  `cp` varchar(10) DEFAULT NULL,
    +  `ville` varchar(50) DEFAULT NULL,
    +  `fk_pays` int(11) DEFAULT NULL,
    +  `tel` varchar(20) DEFAULT NULL,
    +  `fk_societe` int(11) NOT NULL,
    +  `fk_socpeople` int(11) DEFAULT NULL,
    +  `timeschedule` text,
    +  `control_occupation` smallint(6) NOT NULL DEFAULT '0',
    +  `notes` text,
    +  `acces_site` text,
    +  `note1` text,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_reg_interieur` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_session_ibfk_1` (`fk_pays`),
    +  KEY `archive_place` (`archive`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_place`
    +--
    +
    +LOCK TABLES `llx_agefodd_place` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_place` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_place` VALUES (1,'Salle 1',NULL,NULL,NULL,NULL,NULL,-1,NULL,NULL,0,'','','',0,NULL,12,'2018-09-14 09:53:15',12,'2018-09-14 07:53:15',1);
    +/*!40000 ALTER TABLE `llx_agefodd_place` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_reg_interieur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_reg_interieur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_reg_interieur` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `reg_int` text,
    +  `notes` tinytext NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_reg_interieur`
    +--
    +
    +LOCK TABLES `llx_agefodd_reg_interieur` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_reg_interieur` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_reg_interieur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(40) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_soc_requester` int(11) DEFAULT NULL,
    +  `fk_socpeople_requester` int(11) DEFAULT NULL,
    +  `fk_formation_catalogue` int(11) NOT NULL,
    +  `fk_session_place` int(11) NOT NULL,
    +  `type_session` int(11) DEFAULT NULL,
    +  `nb_place` int(11) DEFAULT NULL,
    +  `nb_stagiaire` int(11) DEFAULT NULL,
    +  `force_nb_stagiaire` int(11) DEFAULT NULL,
    +  `nb_subscribe_min` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `dated` datetime DEFAULT NULL,
    +  `datef` datetime DEFAULT NULL,
    +  `notes` text NOT NULL,
    +  `color` varchar(32) DEFAULT NULL,
    +  `cost_trainer` double(24,8) DEFAULT '0.00000000',
    +  `cost_site` double(24,8) DEFAULT '0.00000000',
    +  `cost_trip` double(24,8) DEFAULT NULL,
    +  `sell_price` double(24,8) DEFAULT '0.00000000',
    +  `invoice_amount` double(24,8) DEFAULT '0.00000000',
    +  `cost_buy_charges` double(24,8) DEFAULT '0.00000000',
    +  `cost_sell_charges` double(24,8) DEFAULT '0.00000000',
    +  `is_date_res_site` smallint(6) NOT NULL DEFAULT '0',
    +  `date_res_site` datetime DEFAULT NULL,
    +  `is_date_res_confirm_site` smallint(6) NOT NULL DEFAULT '0',
    +  `date_res_confirm_site` datetime DEFAULT NULL,
    +  `is_date_res_trainer` smallint(6) NOT NULL DEFAULT '0',
    +  `date_res_trainer` datetime DEFAULT NULL,
    +  `date_ask_OPCA` datetime DEFAULT NULL,
    +  `is_date_ask_OPCA` smallint(6) NOT NULL DEFAULT '0',
    +  `is_OPCA` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_soc_OPCA` int(11) DEFAULT NULL,
    +  `fk_socpeople_OPCA` int(11) DEFAULT NULL,
    +  `fk_socpeople_presta` int(11) DEFAULT NULL,
    +  `fk_soc_employer` int(11) DEFAULT NULL,
    +  `num_OPCA_soc` varchar(100) DEFAULT NULL,
    +  `num_OPCA_file` varchar(100) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `status` int(11) DEFAULT NULL,
    +  `duree_session` double NOT NULL DEFAULT '0',
    +  `intitule_custo` varchar(100) DEFAULT NULL,
    +  `import_key` varchar(36) DEFAULT NULL,
    +  `ref_ext` varchar(50) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_formation_catalogue_ibfk_1` (`fk_formation_catalogue`),
    +  KEY `llx_agefodd_session_place_ibfk_1` (`fk_session_place`),
    +  KEY `fk_soc_session` (`fk_soc`),
    +  KEY `idx_agefodd_session_status` (`status`),
    +  KEY `fk_soc_requester_session` (`fk_soc_requester`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session`
    +--
    +
    +LOCK TABLES `llx_agefodd_session` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_session` VALUES (1,'SES1809-0001',1,221,-1,NULL,1,1,0,5,NULL,NULL,NULL,4,NULL,NULL,'',NULL,0.00000000,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,0,NULL,0,NULL,NULL,0,0,NULL,NULL,NULL,-1,NULL,NULL,12,'2018-09-14 09:53:42',12,'2018-09-14 07:53:42',1,14,'Formation AAA',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_agefodd_session` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_adminsitu`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_adminsitu`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_adminsitu` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_agefodd_session_admlevel` int(11) NOT NULL DEFAULT '0',
    +  `fk_agefodd_session` int(11) NOT NULL,
    +  `intitule` varchar(500) DEFAULT NULL,
    +  `delais_alerte` int(11) NOT NULL,
    +  `indice` int(11) NOT NULL,
    +  `level_rank` int(11) NOT NULL DEFAULT '0',
    +  `fk_parent_level` int(11) DEFAULT '0',
    +  `dated` datetime DEFAULT NULL,
    +  `datef` datetime NOT NULL,
    +  `datea` datetime NOT NULL,
    +  `notes` text NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `archive` smallint(6) NOT NULL DEFAULT '0',
    +  `trigger_name` varchar(150) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_agefodd_session_adminsitu` (`fk_agefodd_session`),
    +  KEY `idx_agefodd_session_adminsitu_fk_parent_level` (`fk_parent_level`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_adminsitu`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_adminsitu` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_adminsitu` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_adminsitu` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_admlevel`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_admlevel`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_admlevel` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `level_rank` int(11) NOT NULL DEFAULT '0',
    +  `fk_parent_level` int(11) DEFAULT '0',
    +  `indice` int(11) NOT NULL,
    +  `intitule` varchar(500) NOT NULL,
    +  `delais_alerte` int(11) NOT NULL,
    +  `delais_alerte_end` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `trigger_name` varchar(150) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_session_admlevel_fk_parent_level` (`fk_parent_level`)
    +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_admlevel`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_admlevel` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_admlevel` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_session_admlevel` VALUES (1,0,0,100,'Préparation de l\'action',-40,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(2,1,1,101,'Inscription des stagiaires',-31,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(3,0,0,200,'Transmission de la convention de formation',-30,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(4,1,3,201,'Impression convention et vérification',-31,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(5,1,3,202,'Envoi convention (VP ou numérique avec AC)',-30,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(6,0,0,300,'Envoi des convocations',-15,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(7,1,6,301,'Préparation du dossier<br>(convoc., rég. intérieur, programme, fiche péda, conseils pratiques)',-15,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(8,1,6,302,'Envoi du dossier à chaque stagiaire (inter) ou au respo. formation (intra)',-15,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(9,0,0,400,'Vérifications et mise en place des moyens',-10,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(10,1,9,401,'Vérification du retour de la convention signée',-10,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(11,0,0,500,'Execution de la prestation',0,0,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(12,0,0,600,'Cloture administrative',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(13,1,12,601,'Impression des attestations',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(14,1,12,602,'Creation de la facture et verification',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(15,1,12,603,'Création du courrier d\'accompagnement',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(16,1,12,604,'Impression de la liasse administrative',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL),(17,1,12,605,'Envoi de la liasse administrative',0,8,1,'2012-01-01 00:00:00',0,'2011-12-31 23:00:00',NULL);
    +/*!40000 ALTER TABLE `llx_agefodd_session_admlevel` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_calendrier`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_calendrier`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_calendrier` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_agefodd_session` int(11) NOT NULL,
    +  `date_session` date NOT NULL,
    +  `heured` datetime NOT NULL,
    +  `heuref` datetime NOT NULL,
    +  `fk_actioncomm` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_fk_agefodd_session_cal` (`fk_agefodd_session`),
    +  KEY `idx_fk_agefodd_session_act_cal` (`fk_actioncomm`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_calendrier`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_calendrier` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_calendrier` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_calendrier` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_commercial`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_commercial`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_commercial` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `fk_user_com` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_session_commercial_ibfk_2` (`fk_user_com`),
    +  KEY `fk_session_sess_comm` (`fk_session_agefodd`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_commercial`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_commercial` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_commercial` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_session_commercial` VALUES (1,1,12,12,'2018-09-14 09:53:42',12,'2018-09-14 07:53:42');
    +/*!40000 ALTER TABLE `llx_agefodd_session_commercial` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_contact`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_contact`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_contact` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `fk_agefodd_contact` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_session_contact_ibfk_2` (`fk_agefodd_contact`),
    +  KEY `fk_session_sess_contact` (`fk_session_agefodd`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_contact`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_contact` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_contact` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_contact` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_element`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_element`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_element` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `element_type` varchar(50) NOT NULL,
    +  `fk_element` int(11) NOT NULL,
    +  `fk_sub_element` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_agefodd_session_element` (`fk_session_agefodd`,`fk_element`,`element_type`,`fk_soc`),
    +  KEY `fk_session_element` (`fk_session_agefodd`),
    +  KEY `idxagefodd_session_element_fk_element` (`fk_element`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_element`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_element` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_element` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_element` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_session_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_extrafields`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_formateur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_formateur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_formateur` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session` int(11) NOT NULL,
    +  `fk_agefodd_formateur` int(11) NOT NULL,
    +  `fk_agefodd_formateur_type` int(11) DEFAULT NULL,
    +  `trainer_status` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_session_sess_form` (`fk_session`),
    +  KEY `idx_fk_agefodd_sess_formateur` (`fk_agefodd_formateur`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_formateur`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_formateur` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_formateur` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_formateur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_formateur_calendrier`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_formateur_calendrier`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_formateur_calendrier` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_agefodd_session_formateur` int(11) NOT NULL,
    +  `date_session` date NOT NULL,
    +  `heured` datetime NOT NULL,
    +  `heuref` datetime NOT NULL,
    +  `trainer_cost` double DEFAULT NULL,
    +  `trainer_status` int(11) DEFAULT NULL,
    +  `fk_actioncomm` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_agefodd_session_formateur_sta` (`fk_agefodd_session_formateur`),
    +  KEY `fk_actioncomm_sta` (`fk_actioncomm`),
    +  KEY `fk_user_author_sta` (`fk_user_author`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_formateur_calendrier`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_formateur_calendrier` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_formateur_calendrier` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_formateur_calendrier` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_stagiaire`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_stagiaire`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_stagiaire` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `fk_stagiaire` int(11) NOT NULL,
    +  `fk_agefodd_stagiaire_type` int(11) NOT NULL,
    +  `fk_soc_link` int(11) DEFAULT NULL,
    +  `fk_socpeople_sign` int(11) DEFAULT NULL,
    +  `fk_soc_requester` int(11) DEFAULT NULL,
    +  `status_in_session` int(11) DEFAULT NULL,
    +  `hour_foad` double DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `dt_acknowledgement` timestamp NULL DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_session_stagiaire_ibfk_2` (`fk_stagiaire`),
    +  KEY `fk_session_sess_sta` (`fk_session_agefodd`),
    +  KEY `fk_agefodd_stagiaire_type_sess_sta` (`fk_agefodd_stagiaire_type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_stagiaire`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_stagiaire` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_stagiaire` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_stagiaire` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_stagiaire_heures`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_stagiaire_heures`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_stagiaire_heures` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_stagiaire` int(11) NOT NULL,
    +  `fk_session` int(11) NOT NULL,
    +  `fk_calendrier` int(11) NOT NULL,
    +  `heures` float NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_stagiaire_heures`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_stagiaire_heures` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_stagiaire_heures` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_session_stagiaire_heures` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_session_status_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_session_status_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_session_status_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) NOT NULL,
    +  `intitule` varchar(80) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_session_status_type`
    +--
    +
    +LOCK TABLES `llx_agefodd_session_status_type` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_session_status_type` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_session_status_type` VALUES (1,'ENV','Envisagée',1,1,'2012-12-31 23:00:00'),(2,'CONF','Confirmée client',2,1,'2012-12-31 23:00:00'),(3,'NOT','Non réalisée',6,1,'2012-12-31 23:00:00'),(4,'ARCH','Archivée',7,1,'2012-12-31 23:00:00'),(5,'DONE','Réalisée',5,1,'2012-12-31 23:00:00'),(6,'ONGOING','En cours',4,1,'2012-12-31 23:00:00');
    +/*!40000 ALTER TABLE `llx_agefodd_session_status_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_stagiaire`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_stagiaire`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_stagiaire` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `nom` varchar(50) NOT NULL,
    +  `prenom` varchar(50) NOT NULL,
    +  `civilite` varchar(6) NOT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_socpeople` int(11) DEFAULT NULL,
    +  `fonction` varchar(80) DEFAULT NULL,
    +  `tel1` varchar(30) DEFAULT NULL,
    +  `tel2` varchar(30) DEFAULT NULL,
    +  `mail` varchar(100) DEFAULT NULL,
    +  `date_birth` datetime DEFAULT NULL,
    +  `place_birth` varchar(100) DEFAULT NULL,
    +  `note` text,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `nom_sta` (`nom`),
    +  KEY `fk_soc_sta` (`fk_soc`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_stagiaire`
    +--
    +
    +LOCK TABLES `llx_agefodd_stagiaire` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_stagiaire_certif`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_stagiaire_certif`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_stagiaire_certif` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_stagiaire` int(11) NOT NULL,
    +  `fk_session_agefodd` int(11) NOT NULL,
    +  `fk_session_stagiaire` int(11) NOT NULL,
    +  `certif_code` varchar(200) NOT NULL,
    +  `certif_label` varchar(200) NOT NULL,
    +  `certif_dt_start` datetime NOT NULL,
    +  `certif_dt_end` datetime NOT NULL,
    +  `certif_dt_warning` datetime DEFAULT NULL,
    +  `mark` varchar(20) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_stagiaire_certif`
    +--
    +
    +LOCK TABLES `llx_agefodd_stagiaire_certif` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_certif` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_certif` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_stagiaire_cursus`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_stagiaire_cursus`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_stagiaire_cursus` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_stagiaire` int(11) NOT NULL,
    +  `fk_cursus` int(11) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `llx_agefodd_stagiaire_cursus_ibfk_1` (`fk_cursus`),
    +  KEY `llx_agefodd_stagiaire_cursus_ibfk_2` (`fk_stagiaire`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_stagiaire_cursus`
    +--
    +
    +LOCK TABLES `llx_agefodd_stagiaire_cursus` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_cursus` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_cursus` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_stagiaire_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_stagiaire_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_stagiaire_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_agefodd_stagiaire_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_stagiaire_extrafields`
    +--
    +
    +LOCK TABLES `llx_agefodd_stagiaire_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_stagiaire_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_stagiaire_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_stagiaire_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `intitule` varchar(255) NOT NULL,
    +  `sort` smallint(6) NOT NULL,
    +  `active` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_stagiaire_type`
    +--
    +
    +LOCK TABLES `llx_agefodd_stagiaire_type` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_type` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_stagiaire_type` VALUES (1,'Financement par l\'employeur (contrat pro.)',2,1,'2017-03-23 11:00:00'),(2,'Financement par l\'employeur',1,1,'2017-03-23 11:00:00'),(3,'Dispositifs spécifiques pour les personnes en recherche d emploi financement publique',4,1,'2017-03-23 11:00:00'),(4,'Autre dispositifs (plan de formation, périodes de professionnalisation,...)',5,1,'2017-03-23 11:00:00'),(5,'Compte personnel de formation (CPF)',3,1,'2017-03-23 11:00:00'),(6,'Période PRO',99,0,'2017-03-23 11:00:00'),(7,'Congés individuel de formation (CIF)',2,1,'2017-03-23 11:00:00'),(8,'Fond d\'assurance formation de non-salariés',6,1,'2017-03-23 11:00:00'),(9,'Pouvoirs publics pour la formation de leurs agents',7,1,'2017-03-23 11:00:00'),(10,'Pouvoirs publics pour la formation de publics spécifiques : Instances européenne',8,1,'2017-03-23 11:00:00'),(11,'Pouvoirs publics pour la formation de publics spécifiques : Etat',9,1,'2017-03-23 11:00:00'),(12,'Pouvoirs publics pour la formation de publics spécifiques : Conseils régionaux',10,1,'2017-03-23 11:00:00'),(13,'Pouvoirs publics pour la formation de publics spécifiques : Pôle emploi',11,1,'2017-03-23 11:00:00'),(14,'Pouvoirs publics pour la formation de publics spécifiques : Autres ressources publique',12,1,'2017-03-23 11:00:00'),(15,'Contrats conclus avec des personnes à titre individuel et à leurs frais',13,1,'2017-03-23 11:00:00'),(16,'Contrats conclus avec d’autres organismes de formation',14,1,'2017-03-23 11:00:00'),(17,'Dispositifs spécifiques pour les personnes en recherche d\'emploi financement OPCA',4,1,'2017-03-23 11:00:00');
    +/*!40000 ALTER TABLE `llx_agefodd_stagiaire_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_agefodd_training_admlevel`
    +--
    +
    +DROP TABLE IF EXISTS `llx_agefodd_training_admlevel`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_agefodd_training_admlevel` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_agefodd_training_admlevel` int(11) NOT NULL DEFAULT '0',
    +  `fk_training` int(11) NOT NULL,
    +  `level_rank` int(11) NOT NULL DEFAULT '0',
    +  `fk_parent_level` int(11) DEFAULT '0',
    +  `indice` int(11) NOT NULL,
    +  `intitule` varchar(150) NOT NULL,
    +  `delais_alerte` int(11) NOT NULL,
    +  `delais_alerte_end` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `trigger_name` varchar(150) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_agefodd_training_admlevel` (`fk_training`),
    +  KEY `idx_agefodd_training_admlevel_fk_parent_level` (`fk_parent_level`)
    +) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_agefodd_training_admlevel`
    +--
    +
    +LOCK TABLES `llx_agefodd_training_admlevel` WRITE;
    +/*!40000 ALTER TABLE `llx_agefodd_training_admlevel` DISABLE KEYS */;
    +INSERT INTO `llx_agefodd_training_admlevel` VALUES (18,1,1,0,0,100,'Préparation de l\'action',-40,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(19,2,1,1,18,101,'Inscription des stagiaires',-31,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(20,3,1,0,0,200,'Transmission de la convention de formation',-30,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(21,4,1,1,20,201,'Impression convention et vérification',-31,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(22,5,1,1,20,202,'Envoi convention (VP ou numérique avec AC)',-30,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(23,6,1,0,0,300,'Envoi des convocations',-15,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(24,7,1,1,23,301,'Préparation du dossier<br>(convoc., rég. intérieur, programme, fiche péda, conseils pratiques)',-15,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(25,8,1,1,23,302,'Envoi du dossier à chaque stagiaire (inter) ou au respo. formation (intra)',-15,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(26,9,1,0,0,400,'Vérifications et mise en place des moyens',-10,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(27,10,1,1,26,401,'Vérification du retour de la convention signée',-10,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(28,11,1,0,0,500,'Execution de la prestation',0,0,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(29,12,1,0,0,600,'Cloture administrative',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(30,13,1,1,29,601,'Impression des attestations',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(31,14,1,1,29,602,'Creation de la facture et verification',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(32,15,1,1,29,603,'Création du courrier d\'accompagnement',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(33,16,1,1,29,604,'Impression de la liasse administrative',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL),(34,17,1,1,29,605,'Envoi de la liasse administrative',0,8,12,'2018-09-14 09:52:29',12,'2018-09-14 07:52:29',NULL);
    +/*!40000 ALTER TABLE `llx_agefodd_training_admlevel` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(128) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_asset_type` int(11) NOT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `description` text,
    +  `note_public` text,
    +  `note_private` text,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_asset_rowid` (`rowid`),
    +  KEY `idx_asset_ref` (`ref`),
    +  KEY `idx_asset_entity` (`entity`),
    +  KEY `idx_asset_fk_soc` (`fk_soc`),
    +  KEY `idx_asset_fk_asset_type` (`fk_asset_type`),
    +  CONSTRAINT `fk_asset_asset_type` FOREIGN KEY (`fk_asset_type`) REFERENCES `llx_asset_type` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset`
    +--
    +
    +LOCK TABLES `llx_asset` WRITE;
    +/*!40000 ALTER TABLE `llx_asset` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_assetOf`
    +--
    +
    +DROP TABLE IF EXISTS `llx_assetOf`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_assetOf` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `entity` double NOT NULL DEFAULT '0',
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `fk_assetOf_parent` int(11) NOT NULL DEFAULT '0',
    +  `fk_soc` int(11) NOT NULL DEFAULT '0',
    +  `fk_commande` int(11) NOT NULL DEFAULT '0',
    +  `fk_project` int(11) NOT NULL DEFAULT '0',
    +  `temps_estime_fabrication` double NOT NULL DEFAULT '0',
    +  `temps_reel_fabrication` double NOT NULL DEFAULT '0',
    +  `mo_cost` double NOT NULL DEFAULT '0',
    +  `mo_estimated_cost` double NOT NULL DEFAULT '0',
    +  `compo_cost` double NOT NULL DEFAULT '0',
    +  `compo_estimated_cost` double NOT NULL DEFAULT '0',
    +  `total_cost` double NOT NULL DEFAULT '0',
    +  `total_estimated_cost` double NOT NULL DEFAULT '0',
    +  `ordre` varchar(255) DEFAULT NULL,
    +  `numero` varchar(255) DEFAULT NULL,
    +  `status` varchar(255) DEFAULT NULL,
    +  `date_besoin` datetime DEFAULT NULL,
    +  `date_lancement` datetime DEFAULT NULL,
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `note` longtext,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_user` (`fk_user`),
    +  KEY `fk_assetOf_parent` (`fk_assetOf_parent`),
    +  KEY `fk_soc` (`fk_soc`),
    +  KEY `fk_commande` (`fk_commande`),
    +  KEY `fk_project` (`fk_project`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_assetOf`
    +--
    +
    +LOCK TABLES `llx_assetOf` WRITE;
    +/*!40000 ALTER TABLE `llx_assetOf` DISABLE KEYS */;
    +INSERT INTO `llx_assetOf` VALUES (1,'2018-11-18 16:19:27','2018-11-18 16:19:27',1,0,0,1,-1,0,0,0,0,0,0,0,0,0,'ASAP','OF00001','DRAFT','2018-11-18 00:00:00',NULL,NULL,NULL,''),(2,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,0,0,-1,-1,0,0,0,0,0,49,49,49,49,'ASAP','OF00004','CLOSE','2018-11-18 00:00:00','2018-11-18 00:00:00','2018-11-18 16:48:10','2018-11-18 17:08:06',''),(3,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,0,2,-1,-1,0,0,0,0,0,0,0,0,0,'','OF00002','CLOSE','2018-11-18 16:26:40','2018-11-18 00:00:00','2018-11-18 16:54:41','2018-11-18 16:54:45',''),(4,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,0,0,-1,-1,0,0,0,0,0,20,20,20,20,'ASAP','OF00006','CLOSE','2018-11-18 00:00:00','2018-11-18 00:00:00','2018-11-18 17:23:54','2018-11-18 17:25:05',''),(5,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,0,4,-1,-1,0,0,0,0,0,0,0,0,0,'ASAP','OF00005','CLOSE','2018-11-18 00:00:00','2018-11-18 00:00:00','2018-11-18 17:22:07','2018-11-18 17:22:12',''),(6,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,0,0,-1,-1,0,0,0,0,0,0,20,0,20,'ASAP','OF00008','OPEN','2018-11-18 00:00:00','2018-11-18 00:00:00','2018-11-18 17:44:27',NULL,''),(7,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,0,6,-1,-1,0,0,0,0,0,0,0,0,0,'ASAP','OF00007','CLOSE','2018-11-18 00:00:00','2018-11-18 00:00:00',NULL,NULL,'');
    +/*!40000 ALTER TABLE `llx_assetOf` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_assetOf_line`
    +--
    +
    +DROP TABLE IF EXISTS `llx_assetOf_line`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_assetOf_line` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '0',
    +  `fk_assetOf` int(11) NOT NULL DEFAULT '0',
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `fk_product_fournisseur_price` int(11) NOT NULL DEFAULT '0',
    +  `fk_entrepot` int(11) NOT NULL DEFAULT '0',
    +  `fk_nomenclature` int(11) NOT NULL DEFAULT '0',
    +  `nomenclature_valide` int(11) NOT NULL DEFAULT '0',
    +  `fk_commandedet` int(11) NOT NULL DEFAULT '0',
    +  `qty_needed` double NOT NULL DEFAULT '0',
    +  `qty` double NOT NULL DEFAULT '0',
    +  `qty_used` double NOT NULL DEFAULT '0',
    +  `qty_stock` double NOT NULL DEFAULT '0',
    +  `conditionnement` double NOT NULL DEFAULT '0',
    +  `conditionnement_unit` double NOT NULL DEFAULT '0',
    +  `pmp` double NOT NULL DEFAULT '0',
    +  `type` varchar(255) DEFAULT NULL,
    +  `lot_number` varchar(255) DEFAULT NULL,
    +  `measuring_units` varchar(255) DEFAULT NULL,
    +  `note_private` longtext,
    +  `fk_assetOf_line_parent` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `entity` (`entity`),
    +  KEY `fk_assetOf` (`fk_assetOf`),
    +  KEY `fk_product` (`fk_product`),
    +  KEY `fk_product_fournisseur_price` (`fk_product_fournisseur_price`),
    +  KEY `fk_entrepot` (`fk_entrepot`),
    +  KEY `fk_nomenclature` (`fk_nomenclature`),
    +  KEY `nomenclature_valide` (`nomenclature_valide`),
    +  KEY `fk_commandedet` (`fk_commandedet`),
    +  KEY `fk_assetOf_line_parent` (`fk_assetOf_line_parent`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_assetOf_line`
    +--
    +
    +LOCK TABLES `llx_assetOf_line` WRITE;
    +/*!40000 ALTER TABLE `llx_assetOf_line` DISABLE KEYS */;
    +INSERT INTO `llx_assetOf_line` VALUES (1,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,2,196,-2,0,1,1,0,1,1,1,1,1,0,49,'TO_MAKE','','unit','',0),(2,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,2,192,-2,0,0,0,0,2,2,2,2,1,0,0,'NEEDED','','unit','aaa',1),(3,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,3,192,-2,0,0,0,0,2,2,2,2,1,0,0,'TO_MAKE','','unit','',2),(4,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,2,151,-2,0,0,0,0,1,1,1,1,1,0,49,'NEEDED','','unit','bbb',1),(6,'2018-11-18 16:26:40','2018-11-18 17:08:06',1,2,10,-2,0,0,0,0,1,1,1,1,1,0,0,'NEEDED','','unit','ccc',1),(7,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,4,195,-2,0,2,1,0,1,1,1,1,1,0,20,'TO_MAKE','','unit','',0),(8,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,4,190,-2,0,0,0,0,2,2,2,2,1,0,10,'NEEDED','','unit','aaa',7),(9,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,4,11,-2,0,0,0,0,1,1,1,1,1,0,0,'NEEDED','','unit','bbb',7),(10,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,5,11,-2,0,0,0,0,1,1,1,1,1,0,0,'TO_MAKE','','unit','',9),(11,'2018-11-18 17:21:16','2018-11-18 17:25:05',1,4,10,-2,0,0,0,0,1,1,1,1,1,0,0,'NEEDED','','unit','',7),(12,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,6,195,-2,0,2,1,0,1,1,0,0,1,0,22,'TO_MAKE','','unit','',0),(13,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,6,190,-2,0,0,0,0,2,2,0,0,1,0,10,'NEEDED','','unit','aaa',12),(14,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,6,11,-2,0,0,0,0,1,1,0,0,1,0,0,'NEEDED','','unit','bbb',12),(15,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,7,11,-1,0,0,0,0,1,1,0,0,1,0,0,'TO_MAKE','','unit','',14),(16,'2018-11-18 17:35:12','2018-11-18 17:44:27',1,6,10,-2,0,0,0,0,1,0,0,0,1,0,0,'NEEDED','','unit','',12);
    +/*!40000 ALTER TABLE `llx_assetOf_line` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_extrafields`
    +--
    +
    +LOCK TABLES `llx_asset_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(50) NOT NULL,
    +  `accountancy_code_asset` varchar(32) DEFAULT NULL,
    +  `accountancy_code_depreciation_asset` varchar(32) DEFAULT NULL,
    +  `accountancy_code_depreciation_expense` varchar(32) DEFAULT NULL,
    +  `note` text,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_asset_type_label` (`label`,`entity`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_type`
    +--
    +
    +LOCK TABLES `llx_asset_type` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_type` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_type_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_type_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_type_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_asset_type_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_type_extrafields`
    +--
    +
    +LOCK TABLES `llx_asset_type_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_type_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_type_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_workstation_of`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_workstation_of`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_workstation_of` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_assetOf` int(11) NOT NULL DEFAULT '0',
    +  `fk_asset_workstation` int(11) NOT NULL DEFAULT '0',
    +  `fk_project_task` int(11) NOT NULL DEFAULT '0',
    +  `nb_hour` double NOT NULL DEFAULT '0',
    +  `nb_hour_real` double NOT NULL DEFAULT '0',
    +  `nb_hour_prepare` double NOT NULL DEFAULT '0',
    +  `rang` double NOT NULL DEFAULT '0',
    +  `thm` double NOT NULL DEFAULT '0',
    +  `nb_days_before_beginning` double NOT NULL DEFAULT '0',
    +  `note_private` longtext,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_assetOf` (`fk_assetOf`),
    +  KEY `fk_asset_workstation` (`fk_asset_workstation`),
    +  KEY `fk_project_task` (`fk_project_task`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_workstation_of`
    +--
    +
    +LOCK TABLES `llx_asset_workstation_of` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_workstation_of` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_workstation_of` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_workstation_product`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_workstation_product`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_workstation_product` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `fk_asset_workstation` int(11) NOT NULL DEFAULT '0',
    +  `nb_hour_prepare` double NOT NULL DEFAULT '0',
    +  `nb_hour_manufacture` double NOT NULL DEFAULT '0',
    +  `nb_hour` double NOT NULL DEFAULT '0',
    +  `rang` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_product` (`fk_product`),
    +  KEY `fk_asset_workstation` (`fk_asset_workstation`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_workstation_product`
    +--
    +
    +LOCK TABLES `llx_asset_workstation_product` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_workstation_product` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_workstation_product` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_asset_workstation_task`
    +--
    +
    +DROP TABLE IF EXISTS `llx_asset_workstation_task`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_asset_workstation_task` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_workstation` int(11) NOT NULL DEFAULT '0',
    +  `libelle` varchar(255) DEFAULT NULL,
    +  `description` longtext,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_workstation` (`fk_workstation`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_asset_workstation_task`
    +--
    +
    +LOCK TABLES `llx_asset_workstation_task` WRITE;
    +/*!40000 ALTER TABLE `llx_asset_workstation_task` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_asset_workstation_task` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_assetof_amounts`
    +--
    +
    +DROP TABLE IF EXISTS `llx_assetof_amounts`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_assetof_amounts` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `date_creation` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `amount_estimated` varchar(255) DEFAULT NULL,
    +  `amount_real` varchar(255) DEFAULT NULL,
    +  `amount_diff` varchar(255) DEFAULT NULL,
    +  `date` datetime DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_creation` (`date_creation`),
    +  KEY `tms` (`tms`),
    +  KEY `rowid` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_assetof_amounts`
    +--
    +
    +LOCK TABLES `llx_assetof_amounts` WRITE;
    +/*!40000 ALTER TABLE `llx_assetof_amounts` DISABLE KEYS */;
    +INSERT INTO `llx_assetof_amounts` VALUES (1,'2018-11-19 10:25:56','2018-11-19 09:25:56','20','0','20','2018-11-19 10:25:56');
    +/*!40000 ALTER TABLE `llx_assetof_amounts` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datev` date DEFAULT NULL,
    +  `dateo` date DEFAULT NULL,
    +  `amount` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_rappro` int(11) DEFAULT NULL,
    +  `fk_type` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `num_releve` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `num_chq` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `rappro` tinyint(4) DEFAULT '0',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bordereau` int(11) DEFAULT '0',
    +  `banque` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `emetteur` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `author` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `numero_compte` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_bank_datev` (`datev`),
    +  KEY `idx_bank_dateo` (`dateo`),
    +  KEY `idx_bank_fk_account` (`fk_account`),
    +  KEY `idx_bank_rappro` (`rappro`),
    +  KEY `idx_bank_num_releve` (`num_releve`)
    +) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank`
    +--
    +
    +LOCK TABLES `llx_bank` WRITE;
    +/*!40000 ALTER TABLE `llx_bank` DISABLE KEYS */;
    +INSERT INTO `llx_bank` VALUES (1,'2010-07-08 23:56:14','2016-07-30 15:16:10','2016-07-08','2016-07-08',2000.00000000,'(Initial balance)',1,NULL,1,'SOLD','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(2,'2010-07-09 00:00:24','2016-07-30 15:16:10','2016-07-09','2016-07-09',500.00000000,'(Initial balance)',2,NULL,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(3,'2010-07-10 13:33:42','2016-07-30 15:16:10','2016-07-10','2016-07-10',0.00000000,'(Solde initial)',3,NULL,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(5,'2011-07-18 20:50:24','2016-07-30 15:16:10','2016-07-08','2016-07-08',20.00000000,'(CustomerInvoicePayment)',1,1,NULL,'CB','201107',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(6,'2011-07-18 20:50:47','2016-07-30 15:16:10','2016-07-08','2016-07-08',10.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(8,'2011-08-01 03:34:11','2016-07-30 15:21:31','2015-08-01','2015-08-01',5.63000000,'(CustomerInvoicePayment)',1,1,1,'CB','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(12,'2011-08-05 23:11:37','2016-07-30 15:21:31','2015-08-05','2015-08-05',-10.00000000,'(SocialContributionPayment)',1,1,1,'VIR','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(13,'2011-08-06 20:33:54','2016-07-30 15:21:31','2015-08-06','2015-08-06',5.98000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(14,'2011-08-08 02:53:40','2016-07-30 15:21:31','2015-08-08','2015-08-08',26.10000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(15,'2011-08-08 02:55:58','2016-07-30 15:21:31','2015-08-08','2015-08-08',26.96000000,'(CustomerInvoicePayment)',1,1,1,'TIP','201211',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(16,'2012-12-09 15:28:44','2016-07-30 15:21:31','2015-12-09','2015-12-09',2.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(17,'2012-12-09 15:28:53','2016-07-30 15:21:31','2015-12-09','2015-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(18,'2012-12-09 17:35:55','2016-07-30 15:21:31','2015-12-09','2015-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(19,'2012-12-09 17:37:02','2016-07-30 15:21:31','2015-12-09','2015-12-09',2.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(20,'2012-12-09 18:35:07','2016-07-30 15:21:31','2015-12-09','2015-12-09',-2.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(21,'2012-12-12 18:54:33','2016-07-30 15:21:31','2015-12-12','2015-12-12',1.00000000,'(CustomerInvoicePayment)',1,1,1,'TIP','201210',NULL,1,NULL,0,NULL,NULL,NULL,NULL),(22,'2013-03-06 16:48:16','2016-07-30 15:16:10','2016-03-06','2016-03-06',20.00000000,'(SubscriptionPayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(23,'2013-03-20 14:30:11','2016-07-30 15:16:10','2016-03-20','2016-03-20',10.00000000,'(SubscriptionPayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(24,'2014-03-02 19:57:58','2016-07-30 15:16:10','2016-07-09','2016-07-09',605.00000000,'(CustomerInvoicePayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'111',NULL,NULL),(26,'2014-03-02 20:01:39','2016-07-30 15:16:10','2016-03-19','2016-03-19',500.00000000,'(CustomerInvoicePayment)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(27,'2014-03-02 20:02:06','2016-07-30 15:16:10','2016-03-21','2016-03-21',400.00000000,'(CustomerInvoicePayment)',1,1,NULL,'VIR',NULL,NULL,0,NULL,0,NULL,'ABC and Co',NULL,NULL),(28,'2014-03-03 19:22:32','2016-07-30 15:21:31','2015-10-03','2015-10-03',-400.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(29,'2014-03-03 19:23:16','2016-07-30 15:16:10','2016-03-10','2016-03-10',-300.00000000,'(CustomerInvoicePaymentBack)',3,1,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(30,'2016-01-22 18:56:34','2016-01-22 17:56:34','2016-01-22','2016-01-22',-900.00000000,'(SupplierInvoicePayment)',1,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(31,'2016-07-30 22:42:14','2016-07-30 14:42:14','2016-07-30','2016-07-30',0.00000000,'(Initial balance)',4,0,NULL,'SOLD',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(32,'2017-02-01 19:02:44','2017-02-01 15:02:44','2017-02-01','2017-02-01',-200.00000000,'(SupplierInvoicePayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(33,'2017-02-06 08:10:24','2017-02-06 04:12:05','2016-03-22','2016-03-22',150.00000000,'(CustomerInvoicePayment)',1,12,NULL,'CHQ',NULL,NULL,0,NULL,2,NULL,'Magic Food Store',NULL,NULL),(34,'2017-02-06 08:10:50','2017-02-06 04:10:50','2016-03-25','2016-03-25',140.00000000,'(CustomerInvoicePayment)',1,12,NULL,'PRE',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(35,'2017-02-12 23:18:33','2017-02-12 19:18:33','2017-02-12','2017-02-12',50.00000000,'Patient payment',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'aaa',NULL,NULL),(36,'2017-02-16 02:22:09','2017-02-15 22:22:09','2017-02-16','2017-02-16',-1.00000000,'(ExpenseReportPayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL),(37,'2017-02-21 16:07:43','2017-02-21 12:07:43','2017-02-21','2017-02-21',50.00000000,'(WithdrawalPayment)',1,12,NULL,'PRE',NULL,'T170201',0,NULL,0,NULL,NULL,NULL,NULL),(38,'2017-09-06 20:08:36','2017-09-06 16:08:36','2017-09-06','2017-09-06',10.00000000,'(DonationPayment)',3,12,NULL,'LIQ',NULL,NULL,0,NULL,0,NULL,NULL,NULL,''),(39,'2018-03-16 13:59:31','2018-03-16 09:59:31','2018-03-16','2018-03-16',10.00000000,'(CustomerInvoicePayment)',4,12,NULL,'CHQ',NULL,NULL,0,NULL,0,NULL,'Indian SAS',NULL,'');
    +/*!40000 ALTER TABLE `llx_bank` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank_account`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank_account`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank_account` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `ref` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `bank` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bic` varchar(11) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `iban_prefix` varchar(34) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `country_iban` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_iban` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `domiciliation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `state_id` int(11) DEFAULT NULL,
    +  `fk_pays` int(11) NOT NULL,
    +  `proprio` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `owner_address` text COLLATE utf8_unicode_ci,
    +  `courant` smallint(6) NOT NULL DEFAULT '0',
    +  `clos` smallint(6) NOT NULL DEFAULT '0',
    +  `rappro` smallint(6) DEFAULT '1',
    +  `url` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `account_number` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_journal` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `currency_code` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
    +  `min_allowed` int(11) DEFAULT '0',
    +  `min_desired` int(11) DEFAULT '0',
    +  `comment` text COLLATE utf8_unicode_ci,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_accountancy_journal` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_bank_account_label` (`label`,`entity`),
    +  KEY `idx_fk_accountancy_journal` (`fk_accountancy_journal`),
    +  CONSTRAINT `fk_bank_account_accountancy_journal` FOREIGN KEY (`fk_accountancy_journal`) REFERENCES `llx_accounting_journal` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank_account`
    +--
    +
    +LOCK TABLES `llx_bank_account` WRITE;
    +/*!40000 ALTER TABLE `llx_bank_account` DISABLE KEYS */;
    +INSERT INTO `llx_bank_account` VALUES (1,'2010-07-08 23:56:14','2016-07-30 14:45:12','SWIBAC','Swiss bank account',1,'Switz Gold Bank','','','123456789','','','NL39RABO0314043352',NULL,NULL,'21 jum street',NULL,6,'Mac Golder','11 big road,\r\nZurich',1,0,1,NULL,'','','EUR',1500,1500,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,'2010-07-09 00:00:24','2016-07-30 15:17:18','SWIBAC2','Swiss bank account old',1,'Switz Silver Bank','','','','','','NL07SNSB0908534915',NULL,NULL,'Road bankrupt\r\nZurich',NULL,6,'','',1,1,1,NULL,'','','EUR',200,400,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'2010-07-10 13:33:42','2017-08-27 13:29:05','ACCOUNTCASH','Account for cash',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,1,NULL,NULL,2,0,1,NULL,'','OD','EUR',0,0,'<br />',NULL,NULL,NULL,NULL,NULL,NULL,4),(4,'2016-07-30 18:42:14','2016-07-30 14:44:45','LUXBAC','Luxemburg Bank Account',1,'Lux Platinuium Bank','','','','','','NL46INGB0687674581',NULL,NULL,'',NULL,140,'','',1,0,1,NULL,'','','EUR',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_bank_account` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank_account_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank_account_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank_account_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_bank_account_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank_account_extrafields`
    +--
    +
    +LOCK TABLES `llx_bank_account_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_bank_account_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_bank_account_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank_categ`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank_categ`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank_categ` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank_categ`
    +--
    +
    +LOCK TABLES `llx_bank_categ` WRITE;
    +/*!40000 ALTER TABLE `llx_bank_categ` DISABLE KEYS */;
    +INSERT INTO `llx_bank_categ` VALUES (1,'Bank category one',1),(2,'Bank category two',1);
    +/*!40000 ALTER TABLE `llx_bank_categ` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank_class`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank_class`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank_class` (
    +  `lineid` int(11) NOT NULL,
    +  `fk_categ` int(11) NOT NULL,
    +  UNIQUE KEY `uk_bank_class_lineid` (`lineid`,`fk_categ`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank_class`
    +--
    +
    +LOCK TABLES `llx_bank_class` WRITE;
    +/*!40000 ALTER TABLE `llx_bank_class` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_bank_class` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bank_url`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bank_url`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bank_url` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `url_id` int(11) DEFAULT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` varchar(24) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_bank_url` (`fk_bank`,`type`)
    +) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bank_url`
    +--
    +
    +LOCK TABLES `llx_bank_url` WRITE;
    +/*!40000 ALTER TABLE `llx_bank_url` DISABLE KEYS */;
    +INSERT INTO `llx_bank_url` VALUES (3,5,2,'/compta/paiement/card.php?id=','(paiement)','payment'),(4,5,2,'/comm/card.php?socid=','Belin SARL','company'),(5,6,3,'/compta/paiement/card.php?id=','(paiement)','payment'),(6,6,2,'/comm/card.php?socid=','Belin SARL','company'),(9,8,5,'/compta/paiement/card.php?id=','(paiement)','payment'),(10,8,7,'/comm/card.php?socid=','Generic customer','company'),(17,12,4,'/compta/payment_sc/card.php?id=','(paiement)','payment_sc'),(18,12,4,'/compta/charges.php?id=','Assurance Chomage (fff)','sc'),(19,13,6,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(20,13,7,'/dolibarrnew/comm/card.php?socid=','Generic customer','company'),(21,14,8,'/compta/paiement/card.php?id=','(paiement)','payment'),(22,14,2,'/comm/card.php?socid=','Belin SARL','company'),(23,15,9,'/compta/paiement/card.php?id=','(paiement)','payment'),(24,15,10,'/comm/card.php?socid=','Smith Vick','company'),(25,16,17,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(26,16,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(27,17,18,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(28,17,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(29,18,19,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(30,18,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(31,19,20,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(32,19,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(33,20,21,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(34,20,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(35,21,23,'/compta/paiement/card.php?id=','(paiement)','payment'),(36,21,1,'/comm/card.php?socid=','ABC and Co','company'),(37,22,24,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(38,22,12,'/dolibarrnew/comm/card.php?socid=','Dupont Alain','company'),(39,23,25,'/dolibarrnew/compta/paiement/card.php?id=','(paiement)','payment'),(40,23,10,'/dolibarrnew/comm/card.php?socid=','Smith Vick','company'),(41,24,26,'/compta/paiement/card.php?id=','(paiement)','payment'),(42,24,1,'/comm/card.php?socid=','ABC and Co','company'),(45,26,29,'/compta/paiement/card.php?id=','(paiement)','payment'),(46,26,1,'/comm/card.php?socid=','ABC and Co','company'),(47,27,30,'/compta/paiement/card.php?id=','(paiement)','payment'),(48,27,1,'/comm/card.php?socid=','ABC and Co','company'),(49,28,32,'/dolibarr_new/compta/paiement/card.php?id=','(paiement)','payment'),(50,28,1,'/dolibarr_new/comm/card.php?socid=','ABC and Co','company'),(51,29,33,'/dolibarr_new/compta/paiement/card.php?id=','(paiement)','payment'),(52,29,1,'/dolibarr_new/comm/card.php?socid=','ABC and Co','company'),(53,30,1,'/dolibarr_3.8/htdocs/fourn/paiement/card.php?id=','(paiement)','payment_supplier'),(54,30,1,'/dolibarr_3.8/htdocs/fourn/card.php?socid=','Indian SAS','company'),(55,32,2,'/dolibarr_5.0/htdocs/fourn/paiement/card.php?id=','(paiement)','payment_supplier'),(56,32,13,'/dolibarr_5.0/htdocs/fourn/card.php?socid=','Company Corp 2','company'),(57,33,34,'/dolibarr_5.0/htdocs/compta/paiement/card.php?id=','(paiement)','payment'),(58,33,19,'/dolibarr_5.0/htdocs/comm/card.php?socid=','Magic Food Store','company'),(59,34,35,'/dolibarr_5.0/htdocs/compta/paiement/card.php?id=','(paiement)','payment'),(60,34,19,'/dolibarr_5.0/htdocs/comm/card.php?socid=','Magic Food Store','company'),(61,35,2,'/dolibarr_5.0/htdocs/dolimed_5.0/cabinetmed/consultations.php?action=edit&socid=26&id=','Consultation','consultation'),(62,35,26,'','aaa','company'),(63,36,2,'/dolibarr_5.0/htdocs/expensereport/payment/card.php?rowid=','(paiement)','payment_expensereport'),(64,36,12,'/dolibarr_5.0/htdocs/user/card.php?id=','','user'),(65,37,36,'/dolibarr_5.0/htdocs/compta/paiement/card.php?id=','(paiement)','payment'),(66,37,1,'/dolibarr_5.0/htdocs/compta/prelevement/card.php?id=','T170201','withdraw'),(67,38,1,'/dolibarr_6.0/htdocs/don/payment/card.php?rowid=','(paiement)','payment_donation'),(68,39,38,'/dolibarr_7.0/htdocs/compta/paiement/card.php?id=','(paiement)','payment'),(69,39,1,'/dolibarr_7.0/htdocs/comm/card.php?socid=','Indian SAS','company');
    +/*!40000 ALTER TABLE `llx_bank_url` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_blockedlog`
    +--
    +
    +DROP TABLE IF EXISTS `llx_blockedlog`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_blockedlog` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `action` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amounts` double(24,8) DEFAULT NULL,
    +  `signature` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    +  `signature_line` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    +  `element` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_object` int(11) DEFAULT NULL,
    +  `ref_object` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_object` datetime DEFAULT NULL,
    +  `object_data` text COLLATE utf8_unicode_ci,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `certified` int(11) DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `user_fullname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `signature` (`signature`),
    +  KEY `fk_object_element` (`fk_object`,`element`),
    +  KEY `entity` (`entity`),
    +  KEY `fk_user` (`fk_user`),
    +  KEY `entity_action` (`entity`,`action`),
    +  KEY `entity_action_certified` (`entity`,`action`,`certified`)
    +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_blockedlog`
    +--
    +
    +LOCK TABLES `llx_blockedlog` WRITE;
    +/*!40000 ALTER TABLE `llx_blockedlog` DISABLE KEYS */;
    +INSERT INTO `llx_blockedlog` VALUES (20,'2018-03-16 09:57:22','MODULE_RESET',0.00000000,'d6dd5fe6c2eec2de6368f3b6da30188566f0a1a7be4b1589ccd8352d2c827ad5','fbc11d0396d9b76ea48f892bd5f0fe652e5bdf7d44873acb4bf1e1b70352bd30','module',1,'systemevent','2018-03-16 13:57:22','O:8:\"stdClass\":6:{s:9:\"mycompany\";O:8:\"stdClass\":29:{s:10:\"name_alias\";N;s:7:\"address\";s:24:\"21 Jump street..ll..ee \"\";s:3:\"zip\";s:5:\"75500\";s:4:\"town\";s:6:\"MyTown\";s:10:\"state_code\";N;s:5:\"phone\";s:8:\"09123123\";s:3:\"fax\";s:8:\"09123124\";s:5:\"email\";s:24:\"myemail@mybigcompany.com\";s:7:\"barcode\";N;s:7:\"idprof1\";s:6:\"123456\";s:7:\"idprof2\";s:1:\"1\";s:7:\"idprof3\";s:1:\"1\";s:7:\"idprof4\";s:1:\"1\";s:7:\"idprof5\";s:1:\"1\";s:7:\"idprof6\";s:0:\"\";s:9:\"tva_intra\";s:9:\"FR1234567\";s:15:\"localtax1_assuj\";i:1;s:15:\"localtax1_value\";N;s:15:\"localtax2_assuj\";i:1;s:15:\"localtax2_value\";N;s:8:\"managers\";s:10:\"Zack Zeceo\";s:7:\"capital\";s:5:\"10000\";s:11:\"typent_code\";N;s:20:\"forme_juridique_code\";s:0:\"\";s:11:\"code_client\";N;s:16:\"code_fournisseur\";N;s:7:\"ref_ext\";N;s:12:\"country_code\";s:2:\"IN\";s:4:\"name\";s:12:\"MyBigCompany\";}s:2:\"id\";i:1;s:7:\"element\";s:6:\"module\";s:3:\"ref\";s:11:\"systemevent\";s:6:\"entity\";i:1;s:4:\"date\";i:1521194242;}',12,1,0,'2018-03-16 13:57:22','Alice Adminson'),(21,'2018-03-16 09:57:24','MODULE_SET',0.00000000,'d6b66df837d8d33bd8b9744e2afa46ab8c65ae8ca462246c406de19f8254e146','0a3aae975056417705f4eb7b4a4926384075cc2b6c899603715643c8f1d6ff9b','module',1,'systemevent','2018-03-16 13:57:24','O:8:\"stdClass\":6:{s:9:\"mycompany\";O:8:\"stdClass\":29:{s:10:\"name_alias\";N;s:7:\"address\";s:24:\"21 Jump street..ll..ee \"\";s:3:\"zip\";s:5:\"75500\";s:4:\"town\";s:6:\"MyTown\";s:10:\"state_code\";N;s:5:\"phone\";s:8:\"09123123\";s:3:\"fax\";s:8:\"09123124\";s:5:\"email\";s:24:\"myemail@mybigcompany.com\";s:7:\"barcode\";N;s:7:\"idprof1\";s:6:\"123456\";s:7:\"idprof2\";s:1:\"1\";s:7:\"idprof3\";s:1:\"1\";s:7:\"idprof4\";s:1:\"1\";s:7:\"idprof5\";s:1:\"1\";s:7:\"idprof6\";s:0:\"\";s:9:\"tva_intra\";s:9:\"FR1234567\";s:15:\"localtax1_assuj\";i:1;s:15:\"localtax1_value\";N;s:15:\"localtax2_assuj\";i:1;s:15:\"localtax2_value\";N;s:8:\"managers\";s:10:\"Zack Zeceo\";s:7:\"capital\";s:5:\"10000\";s:11:\"typent_code\";N;s:20:\"forme_juridique_code\";s:0:\"\";s:11:\"code_client\";N;s:16:\"code_fournisseur\";N;s:7:\"ref_ext\";N;s:12:\"country_code\";s:2:\"IN\";s:4:\"name\";s:12:\"MyBigCompany\";}s:2:\"id\";i:1;s:7:\"element\";s:6:\"module\";s:3:\"ref\";s:11:\"systemevent\";s:6:\"entity\";i:1;s:4:\"date\";i:1521194244;}',12,1,0,'2018-03-16 13:57:24','Alice Adminson'),(22,'2018-03-16 09:59:31','PAYMENT_CUSTOMER_CREATE',10.00000000,'9beb9e3ba04582d441b49f176f995900c16572c789bcf48a1c9f285a74be76c8','86813eb2563252c0e270baaf1fffade82475fe51af5f88d14613005fd0e07783','payment',38,'PAY1803-0004','2018-03-16 12:00:00','O:8:\"stdClass\":8:{s:9:\"mycompany\";O:8:\"stdClass\":29:{s:10:\"name_alias\";N;s:7:\"address\";s:24:\"21 Jump street..ll..ee \"\";s:3:\"zip\";s:5:\"75500\";s:4:\"town\";s:6:\"MyTown\";s:10:\"state_code\";N;s:5:\"phone\";s:8:\"09123123\";s:3:\"fax\";s:8:\"09123124\";s:5:\"email\";s:24:\"myemail@mybigcompany.com\";s:7:\"barcode\";N;s:7:\"idprof1\";s:6:\"123456\";s:7:\"idprof2\";s:1:\"1\";s:7:\"idprof3\";s:1:\"1\";s:7:\"idprof4\";s:1:\"1\";s:7:\"idprof5\";s:1:\"1\";s:7:\"idprof6\";s:0:\"\";s:9:\"tva_intra\";s:9:\"FR1234567\";s:15:\"localtax1_assuj\";i:1;s:15:\"localtax1_value\";N;s:15:\"localtax2_assuj\";i:1;s:15:\"localtax2_value\";N;s:8:\"managers\";s:10:\"Zack Zeceo\";s:7:\"capital\";s:5:\"10000\";s:11:\"typent_code\";N;s:20:\"forme_juridique_code\";s:0:\"\";s:11:\"code_client\";N;s:16:\"code_fournisseur\";N;s:7:\"ref_ext\";N;s:12:\"country_code\";s:2:\"IN\";s:4:\"name\";s:12:\"MyBigCompany\";}s:3:\"ref\";s:12:\"PAY1803-0004\";s:4:\"date\";i:1521187200;s:9:\"type_code\";s:3:\"CHQ\";s:11:\"payment_num\";N;s:4:\"note\";s:0:\"\";s:12:\"payment_part\";a:1:{i:1;O:8:\"stdClass\":3:{s:6:\"amount\";s:2:\"10\";s:10:\"thirdparty\";O:8:\"stdClass\":29:{s:10:\"name_alias\";s:0:\"\";s:7:\"address\";s:13:\"1 alalah road\";s:3:\"zip\";N;s:4:\"town\";s:5:\"Delhi\";s:10:\"state_code\";N;s:5:\"phone\";N;s:3:\"fax\";N;s:5:\"email\";N;s:7:\"barcode\";N;s:7:\"idprof1\";s:0:\"\";s:7:\"idprof2\";s:0:\"\";s:7:\"idprof3\";s:0:\"\";s:7:\"idprof4\";s:0:\"\";s:7:\"idprof5\";s:0:\"\";s:7:\"idprof6\";s:0:\"\";s:9:\"tva_intra\";s:0:\"\";s:15:\"localtax1_assuj\";N;s:15:\"localtax1_value\";s:5:\"0.000\";s:15:\"localtax2_assuj\";N;s:15:\"localtax2_value\";s:5:\"0.000\";s:8:\"managers\";N;s:7:\"capital\";s:13:\"5000.00000000\";s:11:\"typent_code\";s:8:\"TE_SMALL\";s:20:\"forme_juridique_code\";N;s:11:\"code_client\";s:11:\"CU1212-0007\";s:16:\"code_fournisseur\";s:11:\"SU1212-0005\";s:7:\"ref_ext\";N;s:12:\"country_code\";s:2:\"IN\";s:4:\"name\";s:10:\"Indian SAS\";}s:7:\"invoice\";O:8:\"stdClass\":9:{s:4:\"date\";i:1453147200;s:10:\"ref_client\";N;s:4:\"type\";s:1:\"0\";s:8:\"total_ht\";s:11:\"20.00000000\";s:9:\"total_tva\";s:10:\"1.80000000\";s:9:\"total_ttc\";s:11:\"23.60000000\";s:12:\"revenuestamp\";s:10:\"0.00000000\";s:3:\"ref\";s:11:\"FA1601-0024\";s:11:\"note_public\";N;}}}s:6:\"amount\";i:10;}',12,1,0,'2018-03-16 13:59:31','Alice Adminson');
    +/*!40000 ALTER TABLE `llx_blockedlog` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_blockedlog_authority`
    +--
    +
    +DROP TABLE IF EXISTS `llx_blockedlog_authority`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_blockedlog_authority` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `blockchain` longtext COLLATE utf8_unicode_ci NOT NULL,
    +  `signature` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `signature` (`signature`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_blockedlog_authority`
    +--
    +
    +LOCK TABLES `llx_blockedlog_authority` WRITE;
    +/*!40000 ALTER TABLE `llx_blockedlog_authority` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_blockedlog_authority` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bookmark`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bookmark`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bookmark` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL,
    +  `dateb` datetime DEFAULT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `target` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `title` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `favicon` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) DEFAULT '0',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_bookmark_url` (`fk_user`,`url`),
    +  UNIQUE KEY `uk_bookmark_title` (`fk_user`,`title`)
    +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bookmark`
    +--
    +
    +LOCK TABLES `llx_bookmark` WRITE;
    +/*!40000 ALTER TABLE `llx_bookmark` DISABLE KEYS */;
    +INSERT INTO `llx_bookmark` VALUES (1,0,'2010-07-09 01:29:03','http://wiki.dolibarr.org','1','Online documentation','none',1,1),(2,0,'2010-07-09 01:30:15','http://www.dolibarr.org','1','Official portal','none',2,1),(3,0,'2010-07-09 01:30:53','http://www.dolistore.com','1','DoliStore','none',10,1),(4,0,'2010-07-09 01:31:35','http://asso.dolibarr.org/index.php/Main_Page','1','The foundation','none',0,1),(5,0,'2014-03-02 16:40:41','http://www.facebook.com/dolibarr','1','Facebook page','none',50,1),(6,0,'2014-03-02 16:41:12','http://www.twitter.com/dolibarr','1','Twitter channel','none',60,1),(7,0,'2014-03-02 16:42:08','http://plus.google.com/+DolibarrOrg','1','Google+ page','none',55,1);
    +/*!40000 ALTER TABLE `llx_bookmark` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_bordereau_cheque`
    +--
    +
    +DROP TABLE IF EXISTS `llx_bordereau_cheque`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_bordereau_cheque` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime NOT NULL,
    +  `date_bordereau` date DEFAULT NULL,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `amount` double(24,8) NOT NULL,
    +  `nbcheque` smallint(6) NOT NULL,
    +  `fk_bank_account` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_bordereau_cheque` (`ref`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_bordereau_cheque`
    +--
    +
    +LOCK TABLES `llx_bordereau_cheque` WRITE;
    +/*!40000 ALTER TABLE `llx_bordereau_cheque` DISABLE KEYS */;
    +INSERT INTO `llx_bordereau_cheque` VALUES (2,'2017-02-06 08:12:05','2017-02-06','CHK1702-0001',1,150.00000000,1,1,12,NULL,1,'','2017-02-06 04:12:13');
    +/*!40000 ALTER TABLE `llx_bordereau_cheque` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_boxes`
    +--
    +
    +DROP TABLE IF EXISTS `llx_boxes`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_boxes` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `box_id` int(11) NOT NULL,
    +  `position` smallint(6) NOT NULL,
    +  `box_order` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `maxline` int(11) DEFAULT NULL,
    +  `params` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_boxes` (`entity`,`box_id`,`position`,`fk_user`),
    +  KEY `idx_boxes_boxid` (`box_id`),
    +  KEY `idx_boxes_fk_user` (`fk_user`),
    +  CONSTRAINT `fk_boxes_box_id` FOREIGN KEY (`box_id`) REFERENCES `llx_boxes_def` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=1183 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_boxes`
    +--
    +
    +LOCK TABLES `llx_boxes` WRITE;
    +/*!40000 ALTER TABLE `llx_boxes` DISABLE KEYS */;
    +INSERT INTO `llx_boxes` VALUES (253,2,323,0,'0',0,NULL,NULL),(304,2,324,0,'0',0,NULL,NULL),(305,2,325,0,'0',0,NULL,NULL),(306,2,326,0,'0',0,NULL,NULL),(307,2,327,0,'0',0,NULL,NULL),(308,2,328,0,'0',0,NULL,NULL),(309,2,329,0,'0',0,NULL,NULL),(310,2,330,0,'0',0,NULL,NULL),(311,2,331,0,'0',0,NULL,NULL),(312,2,332,0,'0',0,NULL,NULL),(313,2,333,0,'0',0,NULL,NULL),(314,1,347,0,'A07',0,NULL,NULL),(315,1,348,0,'A27',0,NULL,NULL),(316,1,349,0,'A15',0,NULL,NULL),(317,1,350,0,'B28',0,NULL,NULL),(344,1,374,0,'B16',0,NULL,NULL),(347,1,377,0,'A29',0,NULL,NULL),(348,1,378,0,'A17',0,NULL,NULL),(358,1,388,0,'B18',0,NULL,NULL),(359,1,389,0,'B30',0,NULL,NULL),(360,1,390,0,'A19',0,NULL,NULL),(362,1,392,0,'B20',0,NULL,NULL),(363,1,393,0,'A31',0,NULL,NULL),(366,1,396,0,'B14',0,NULL,NULL),(387,1,403,0,'B26',0,NULL,NULL),(392,1,409,0,'A13',0,NULL,NULL),(393,1,410,0,'A21',0,NULL,NULL),(394,1,411,0,'B08',0,NULL,NULL),(395,1,412,0,'B22',0,NULL,NULL),(396,1,413,0,'A09',0,NULL,NULL),(397,1,414,0,'A23',0,NULL,NULL),(398,1,415,0,'B10',0,NULL,NULL),(399,1,416,0,'B24',0,NULL,NULL),(400,1,417,0,'A11',0,NULL,NULL),(401,1,418,0,'A25',0,NULL,NULL),(501,1,419,0,'B12',0,NULL,NULL),(1019,1,392,0,'A01',2,NULL,NULL),(1021,1,412,0,'A03',2,NULL,NULL),(1022,1,347,0,'A04',2,NULL,NULL),(1023,1,393,0,'A05',2,NULL,NULL),(1025,1,389,0,'A07',2,NULL,NULL),(1026,1,416,0,'A08',2,NULL,NULL),(1027,1,396,0,'B01',2,NULL,NULL),(1028,1,377,0,'B02',2,NULL,NULL),(1031,1,419,0,'B05',2,NULL,NULL),(1036,1,424,0,'B06',0,NULL,NULL),(1037,1,425,0,'A05',0,NULL,NULL),(1038,1,426,0,'B04',0,NULL,NULL),(1039,1,427,0,'A03',0,NULL,NULL),(1150,1,430,0,'B02',0,NULL,NULL),(1151,1,431,0,'A01',0,NULL,NULL),(1152,1,429,0,'A01',1,NULL,NULL),(1153,1,429,0,'B01',2,NULL,NULL),(1154,1,429,0,'A01',11,NULL,NULL),(1156,1,429,0,'B01',0,NULL,NULL),(1174,1,412,0,'A01',12,NULL,NULL),(1175,1,392,0,'A02',12,NULL,NULL),(1176,1,377,0,'A03',12,NULL,NULL),(1177,1,347,0,'A04',12,NULL,NULL),(1178,1,429,0,'B01',12,NULL,NULL),(1179,1,427,0,'B02',12,NULL,NULL),(1180,1,414,0,'B03',12,NULL,NULL),(1181,1,413,0,'B04',12,NULL,NULL),(1182,1,426,0,'B05',12,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_boxes` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_boxes_def`
    +--
    +
    +DROP TABLE IF EXISTS `llx_boxes_def`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_boxes_def` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `file` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `note` varchar(130) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_boxes_def` (`file`,`entity`,`note`)
    +) ENGINE=InnoDB AUTO_INCREMENT=432 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_boxes_def`
    +--
    +
    +LOCK TABLES `llx_boxes_def` WRITE;
    +/*!40000 ALTER TABLE `llx_boxes_def` DISABLE KEYS */;
    +INSERT INTO `llx_boxes_def` VALUES (188,'box_services_vendus.php',1,'2011-08-05 20:40:27',NULL),(323,'box_actions.php',2,'2013-03-13 15:29:19',NULL),(324,'box_clients.php',2,'2013-03-13 20:21:35',NULL),(325,'box_prospect.php',2,'2013-03-13 20:21:35',NULL),(326,'box_contacts.php',2,'2013-03-13 20:21:35',NULL),(327,'box_activity.php',2,'2013-03-13 20:21:35','(WarningUsingThisBoxSlowDown)'),(328,'box_propales.php',2,'2013-03-13 20:32:38',NULL),(329,'box_comptes.php',2,'2013-03-13 20:33:09',NULL),(330,'box_factures_imp.php',2,'2013-03-13 20:33:09',NULL),(331,'box_factures.php',2,'2013-03-13 20:33:09',NULL),(332,'box_produits.php',2,'2013-03-13 20:33:09',NULL),(333,'box_produits_alerte_stock.php',2,'2013-03-13 20:33:09',NULL),(346,'box_googlemaps@google',1,'2013-11-07 00:01:39',NULL),(347,'box_clients.php',1,'2015-11-15 22:05:57',NULL),(348,'box_prospect.php',1,'2015-11-15 22:05:57',NULL),(349,'box_contacts.php',1,'2015-11-15 22:05:57',NULL),(350,'box_activity.php',1,'2015-11-15 22:05:57','(WarningUsingThisBoxSlowDown)'),(374,'box_services_contracts.php',1,'2015-11-15 22:38:37',NULL),(377,'box_project.php',1,'2015-11-15 22:38:44',NULL),(378,'box_task.php',1,'2015-11-15 22:38:44',NULL),(388,'box_contracts.php',1,'2015-11-15 22:39:52',NULL),(389,'box_services_expired.php',1,'2015-11-15 22:39:52',NULL),(390,'box_ficheinter.php',1,'2015-11-15 22:39:56',NULL),(392,'box_graph_propales_permonth.php',1,'2015-11-15 22:41:47',NULL),(393,'box_propales.php',1,'2015-11-15 22:41:47',NULL),(396,'box_graph_product_distribution.php',1,'2015-11-15 22:41:47',NULL),(403,'box_goodcustomers.php',1,'2016-07-30 11:13:20','(WarningUsingThisBoxSlowDown)'),(404,'box_external_rss.php',1,'2016-07-30 11:15:25','1 (Dolibarr.org News)'),(409,'box_produits.php',1,'2016-07-30 13:38:11',NULL),(410,'box_produits_alerte_stock.php',1,'2016-07-30 13:38:11',NULL),(411,'box_commandes.php',1,'2016-07-30 13:38:11',NULL),(412,'box_graph_orders_permonth.php',1,'2016-07-30 13:38:11',NULL),(413,'box_graph_invoices_supplier_permonth.php',1,'2016-07-30 13:38:11',NULL),(414,'box_graph_orders_supplier_permonth.php',1,'2016-07-30 13:38:11',NULL),(415,'box_fournisseurs.php',1,'2016-07-30 13:38:11',NULL),(416,'box_factures_fourn_imp.php',1,'2016-07-30 13:38:11',NULL),(417,'box_factures_fourn.php',1,'2016-07-30 13:38:11',NULL),(418,'box_supplier_orders.php',1,'2016-07-30 13:38:11',NULL),(419,'box_actions.php',1,'2016-07-30 15:42:32',NULL),(424,'box_factures_imp.php',1,'2017-02-07 18:56:12',NULL),(425,'box_factures.php',1,'2017-02-07 18:56:12',NULL),(426,'box_graph_invoices_permonth.php',1,'2017-02-07 18:56:12',NULL),(427,'box_comptes.php',1,'2017-02-07 18:56:12',NULL),(429,'box_lastlogin.php',1,'2017-08-27 13:29:14',NULL),(430,'box_bookmarks.php',1,'2018-01-19 11:27:34',NULL),(431,'box_members.php',1,'2018-01-19 11:27:56',NULL);
    +/*!40000 ALTER TABLE `llx_boxes_def` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_budget`
    +--
    +
    +DROP TABLE IF EXISTS `llx_budget`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_budget` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `date_start` date DEFAULT NULL,
    +  `date_end` date DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_budget`
    +--
    +
    +LOCK TABLES `llx_budget` WRITE;
    +/*!40000 ALTER TABLE `llx_budget` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_budget` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_budget_lines`
    +--
    +
    +DROP TABLE IF EXISTS `llx_budget_lines`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_budget_lines` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_budget` int(11) NOT NULL,
    +  `fk_project_ids` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `amount` double(24,8) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_budget_lines` (`fk_budget`,`fk_project_ids`),
    +  CONSTRAINT `fk_budget_lines_budget` FOREIGN KEY (`fk_budget`) REFERENCES `llx_budget` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_budget_lines`
    +--
    +
    +LOCK TABLES `llx_budget_lines` WRITE;
    +/*!40000 ALTER TABLE `llx_budget_lines` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_budget_lines` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_accounting_category`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_accounting_category`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_accounting_category` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `range_account` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `sens` tinyint(4) NOT NULL DEFAULT '0',
    +  `category_type` tinyint(4) NOT NULL DEFAULT '0',
    +  `formula` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `position` int(11) DEFAULT '0',
    +  `fk_country` int(11) DEFAULT NULL,
    +  `active` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_accounting_category` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_accounting_category`
    +--
    +
    +LOCK TABLES `llx_c_accounting_category` WRITE;
    +/*!40000 ALTER TABLE `llx_c_accounting_category` DISABLE KEYS */;
    +INSERT INTO `llx_c_accounting_category` VALUES (1,1,'VENTES','Ventes de marchandises','7xxxxx',0,0,'',10,1,1),(2,1,'DEPENSES','Coût d achats marchandises vendues','6xxxxx',0,0,'',20,1,1),(3,1,'PROFIT','Marge commerciale','Balance',0,1,'VENTES+DEPENSES',30,1,1),(4,1,'123','ddd','603xxx | 607xxx | 609xxx',0,0,'0',4,14,1);
    +/*!40000 ALTER TABLE `llx_c_accounting_category` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_action_trigger`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_action_trigger`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_action_trigger` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `elementtype` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `rang` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_action_trigger_code` (`code`),
    +  KEY `idx_action_trigger_rang` (`rang`)
    +) ENGINE=InnoDB AUTO_INCREMENT=237 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_action_trigger`
    +--
    +
    +LOCK TABLES `llx_c_action_trigger` WRITE;
    +/*!40000 ALTER TABLE `llx_c_action_trigger` DISABLE KEYS */;
    +INSERT INTO `llx_c_action_trigger` VALUES (131,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1),(132,'COMPANY_CREATE','Third party created','Executed when a third party is created','societe',1),(133,'PROPAL_VALIDATE','Customer proposal validated','Executed when a commercial proposal is validated','propal',2),(134,'PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3),(135,'ORDER_VALIDATE','Customer order validate','Executed when a customer order is validated','commande',4),(136,'ORDER_CLOSE','Customer order classify delivered','Executed when a customer order is set delivered','commande',5),(137,'ORDER_CLASSIFY_BILLED','Customer order classify billed','Executed when a customer order is set to billed','commande',5),(138,'ORDER_CANCEL','Customer order canceled','Executed when a customer order is canceled','commande',5),(139,'ORDER_SENTBYMAIL','Customer order sent by mail','Executed when a customer order is sent by mail ','commande',5),(140,'BILL_VALIDATE','Customer invoice validated','Executed when a customer invoice is approved','facture',6),(141,'BILL_PAYED','Customer invoice payed','Executed when a customer invoice is payed','facture',7),(142,'BILL_CANCEL','Customer invoice canceled','Executed when a customer invoice is conceled','facture',8),(143,'BILL_SENTBYMAIL','Customer invoice sent by mail','Executed when a customer invoice is sent by mail','facture',9),(144,'BILL_UNVALIDATE','Customer invoice unvalidated','Executed when a customer invoice status set back to draft','facture',10),(145,'ORDER_SUPPLIER_VALIDATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(146,'ORDER_SUPPLIER_APPROVE','Supplier order request approved','Executed when a supplier order is approved','order_supplier',12),(147,'ORDER_SUPPLIER_REFUSE','Supplier order request refused','Executed when a supplier order is refused','order_supplier',13),(148,'ORDER_SUPPLIER_SENTBYMAIL','Supplier order sent by mail','Executed when a supplier order is sent by mail','order_supplier',14),(149,'BILL_SUPPLIER_VALIDATE','Supplier invoice validated','Executed when a supplier invoice is validated','invoice_supplier',15),(150,'BILL_SUPPLIER_PAYED','Supplier invoice payed','Executed when a supplier invoice is payed','invoice_supplier',16),(151,'BILL_SUPPLIER_SENTBYMAIL','Supplier invoice sent by mail','Executed when a supplier invoice is sent by mail','invoice_supplier',17),(152,'BILL_SUPPLIER_CANCELED','Supplier invoice cancelled','Executed when a supplier invoice is cancelled','invoice_supplier',17),(153,'CONTRACT_VALIDATE','Contract validated','Executed when a contract is validated','contrat',18),(154,'SHIPPING_VALIDATE','Shipping validated','Executed when a shipping is validated','shipping',20),(155,'SHIPPING_SENTBYMAIL','Shipping sent by mail','Executed when a shipping is sent by mail','shipping',21),(156,'MEMBER_VALIDATE','Member validated','Executed when a member is validated','member',22),(158,'MEMBER_RESILIATE','Member resiliated','Executed when a member is resiliated','member',24),(159,'MEMBER_MODIFY','Member modified','Executed when a member is modified','member',24),(160,'MEMBER_DELETE','Member deleted','Executed when a member is deleted','member',25),(161,'FICHINTER_VALIDATE','Intervention validated','Executed when a intervention is validated','ficheinter',19),(162,'FICHINTER_CLASSIFY_BILLED','Intervention set billed','Executed when a intervention is set to billed (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(163,'FICHINTER_CLASSIFY_UNBILLED','Intervention set unbilled','Executed when a intervention is set to unbilled (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',19),(164,'FICHINTER_REOPEN','Intervention opened','Executed when a intervention is re-opened','ficheinter',19),(165,'FICHINTER_SENTBYMAIL','Intervention sent by mail','Executed when a intervention is sent by mail','ficheinter',19),(166,'PROJECT_CREATE','Project creation','Executed when a project is created','project',140),(167,'PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',2),(168,'PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',2),(169,'PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2),(170,'TASK_CREATE','Task created','Executed when a project task is created','project',35),(171,'TASK_MODIFY','Task modified','Executed when a project task is modified','project',36),(172,'TASK_DELETE','Task deleted','Executed when a project task is deleted','project',37),(173,'BILL_SUPPLIER_UNVALIDATE','Supplier invoice unvalidated','Executed when a supplier invoice status is set back to draft','invoice_supplier',15),(174,'PROJECT_MODIFY','Project modified','Executed when a project is modified','project',141),(175,'PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',142),(176,'ORDER_SUPPLIER_CREATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',11),(177,'ORDER_SUPPLIER_SUBMIT','Supplier order request submited','Executed when a supplier order is approved','order_supplier',12),(178,'ORDER_SUPPLIER_RECEIVE','Supplier order request received','Executed when a supplier order is received','order_supplier',12),(179,'ORDER_SUPPLIER_CLASSIFY_BILLED','Supplier order set billed','Executed when a supplier order is set as billed','order_supplier',14),(180,'PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',30),(181,'PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',30),(182,'PRODUCT_DELETE','Product or service deleted','Executed when a product or sevice is deleted','product',30),(183,'EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expense_report',201),(185,'EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expense_report',202),(186,'EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expense_report',203),(187,'EXPENSE_REPORT_PAYED','Expense report billed','Executed when an expense report is set as billed','expense_report',204),(192,'HOLIDAY_CREATE','Leave request created','Executed when a leave request is created','holiday',221),(193,'HOLIDAY_VALIDATE','Leave request validated','Executed when a leave request is validated','holiday',222),(194,'HOLIDAY_APPROVE','Leave request approved','Executed when a leave request is approved','holiday',223),(210,'MEMBER_SENTBYMAIL','Mails sent from member card','Executed when you send email from member card','member',23),(211,'CONTRACT_SENTBYMAIL','Contract sent by mail','Executed when a contract is sent by mail','contrat',18),(212,'PROPOSAL_SUPPLIER_VALIDATE','Price request validated','Executed when a commercial proposal is validated','proposal_supplier',10),(213,'PROPOSAL_SUPPLIER_SENTBYMAIL','Price request sent by mail','Executed when a commercial proposal is sent by mail','proposal_supplier',10),(214,'PROPOSAL_SUPPLIER_CLOSE_SIGNED','Price request closed signed','Executed when a customer proposal is closed signed','proposal_supplier',10),(215,'PROPOSAL_SUPPLIER_CLOSE_REFUSED','Price request closed refused','Executed when a customer proposal is closed refused','proposal_supplier',10),(216,'MEMBER_SUBSCRIPTION_CREATE','Member subscribtion recorded','Executed when a member subscribtion is deleted','member',24),(217,'MEMBER_SUBSCRIPTION_MODIFY','Member subscribtion modified','Executed when a member subscribtion is modified','member',24),(218,'MEMBER_SUBSCRIPTION_DELETE','Member subscribtion deleted','Executed when a member subscribtion is deleted','member',24),(225,'COMPANY_DELETE','Third party deleted','Executed when you delete third party','societe',1),(226,'PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2),(227,'ORDER_DELETE','Customer order deleted','Executed when a customer order is deleted','commande',5),(228,'BILL_DELETE','Customer invoice deleted','Executed when a customer invoice is deleted','facture',9),(229,'PROPOSAL_SUPPLIER_DELETE','Price request deleted','Executed when a customer proposal delete','proposal_supplier',10),(230,'ORDER_SUPPLIER_DELETE','Supplier order deleted','Executed when a supplier order is deleted','order_supplier',14),(231,'BILL_SUPPLIER_DELETE','Supplier invoice deleted','Executed when a supplier invoice is deleted','invoice_supplier',17),(232,'CONTRACT_DELETE','Contract deleted','Executed when a contract is deleted','contrat',18),(233,'FICHINTER_DELETE','Intervention is deleted','Executed when a intervention is deleted','ficheinter',35),(234,'EXPENSE_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',204);
    +/*!40000 ALTER TABLE `llx_c_action_trigger` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_actioncomm`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_actioncomm`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_actioncomm` (
    +  `id` int(11) NOT NULL,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `type` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'system',
    +  `libelle` varchar(48) COLLATE utf8_unicode_ci NOT NULL,
    +  `module` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `todo` tinyint(4) DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  `color` varchar(9) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `picto` varchar(48) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_actioncomm` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_actioncomm`
    +--
    +
    +LOCK TABLES `llx_c_actioncomm` WRITE;
    +/*!40000 ALTER TABLE `llx_c_actioncomm` DISABLE KEYS */;
    +INSERT INTO `llx_c_actioncomm` VALUES (1,'AC_TEL','system','Phone call',NULL,1,NULL,2,NULL,NULL),(2,'AC_FAX','system','Send Fax',NULL,1,NULL,3,NULL,NULL),(3,'AC_PROP','systemauto','Send commercial proposal by email','propal',1,NULL,10,NULL,NULL),(4,'AC_EMAIL','system','Send Email',NULL,1,NULL,4,NULL,NULL),(5,'AC_RDV','system','Rendez-vous',NULL,1,NULL,1,NULL,NULL),(8,'AC_COM','systemauto','Send customer order by email','order',1,NULL,8,NULL,NULL),(9,'AC_FAC','systemauto','Send customer invoice by email','invoice',1,NULL,6,NULL,NULL),(10,'AC_SHIP','systemauto','Send shipping by email','shipping',1,NULL,11,NULL,NULL),(11,'AC_INT','system','Intervention on site',NULL,1,NULL,4,NULL,NULL),(30,'AC_SUP_ORD','systemauto','Send supplier order by email','order_supplier',1,NULL,9,NULL,NULL),(31,'AC_SUP_INV','systemauto','Send supplier invoice by email','invoice_supplier',1,NULL,7,NULL,NULL),(40,'AC_OTH_AUTO','systemauto','Other (automatically inserted events)',NULL,1,NULL,20,NULL,NULL),(50,'AC_OTH','system','Other (manually inserted events)',NULL,1,NULL,5,NULL,NULL),(100700,'AC_CABMED','module','Send document by email','cabinetmed',0,NULL,100,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_c_actioncomm` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_availability`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_availability`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_availability` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_availability` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_availability`
    +--
    +
    +LOCK TABLES `llx_c_availability` WRITE;
    +/*!40000 ALTER TABLE `llx_c_availability` DISABLE KEYS */;
    +INSERT INTO `llx_c_availability` VALUES (1,'AV_NOW','Immediate',1),(2,'AV_1W','1 week',1),(3,'AV_2W','2 weeks',1),(4,'AV_3W','3 weeks',1);
    +/*!40000 ALTER TABLE `llx_c_availability` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_barcode_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_barcode_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_barcode_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `libelle` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `coder` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `example` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_barcode_type` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_barcode_type`
    +--
    +
    +LOCK TABLES `llx_c_barcode_type` WRITE;
    +/*!40000 ALTER TABLE `llx_c_barcode_type` DISABLE KEYS */;
    +INSERT INTO `llx_c_barcode_type` VALUES (1,'EAN8',1,'EAN8','0','1234567'),(2,'EAN13',1,'EAN13','phpbarcode','123456789012'),(3,'UPC',1,'UPC','0','123456789012'),(4,'ISBN',1,'ISBN','0','123456789'),(5,'C39',1,'Code 39','0','1234567890'),(6,'C128',1,'Code 128','tcpdfbarcode','ABCD1234567890'),(13,'DATAMATRIX',1,'Datamatrix','0','1234567xyz'),(14,'QRCODE',1,'Qr Code','0','www.dolibarr.org');
    +/*!40000 ALTER TABLE `llx_c_barcode_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_chargesociales`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_chargesociales`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_chargesociales` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `libelle` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `deductible` smallint(6) NOT NULL DEFAULT '0',
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_pays` int(11) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4110 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_chargesociales`
    +--
    +
    +LOCK TABLES `llx_c_chargesociales` WRITE;
    +/*!40000 ALTER TABLE `llx_c_chargesociales` DISABLE KEYS */;
    +INSERT INTO `llx_c_chargesociales` VALUES (1,'Allocations familiales',1,1,'TAXFAM',1,NULL,NULL),(2,'CSG Deductible',1,1,'TAXCSGD',1,NULL,NULL),(3,'CSG/CRDS NON Deductible',0,1,'TAXCSGND',1,NULL,NULL),(10,'Taxe apprentissage',0,1,'TAXAPP',1,NULL,NULL),(11,'Taxe professionnelle',0,1,'TAXPRO',1,NULL,NULL),(12,'Cotisation foncière des entreprises',0,1,'TAXCFE',1,NULL,NULL),(13,'Cotisation sur la valeur ajoutée des entreprises',0,1,'TAXCVAE',1,NULL,NULL),(20,'Impots locaux/fonciers',0,1,'TAXFON',1,NULL,NULL),(25,'Impots revenus',0,1,'TAXREV',1,NULL,NULL),(30,'Assurance Sante',0,1,'TAXSECU',1,NULL,NULL),(40,'Mutuelle',0,1,'TAXMUT',1,NULL,NULL),(50,'Assurance vieillesse',0,1,'TAXRET',1,NULL,NULL),(60,'Assurance Chomage',0,1,'TAXCHOM',1,NULL,NULL),(201,'ONSS',1,1,'TAXBEONSS',2,NULL,NULL),(210,'Precompte professionnel',1,1,'TAXBEPREPRO',2,NULL,NULL),(220,'Prime d\'existence',1,1,'TAXBEPRIEXI',2,NULL,NULL),(230,'Precompte immobilier',1,1,'TAXBEPREIMMO',2,NULL,NULL),(4101,'Krankenversicherung',1,1,'TAXATKV',41,NULL,NULL),(4102,'Unfallversicherung',1,1,'TAXATUV',41,NULL,NULL),(4103,'Pensionsversicherung',1,1,'TAXATPV',41,NULL,NULL),(4104,'Arbeitslosenversicherung',1,1,'TAXATAV',41,NULL,NULL),(4105,'Insolvenzentgeltsicherungsfond',1,1,'TAXATIESG',41,NULL,NULL),(4106,'Wohnbauförderung',1,1,'TAXATWF',41,NULL,NULL),(4107,'Arbeiterkammerumlage',1,1,'TAXATAK',41,NULL,NULL),(4108,'Mitarbeitervorsorgekasse',1,1,'TAXATMVK',41,NULL,NULL),(4109,'Familienlastenausgleichsfond',1,1,'TAXATFLAF',41,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_c_chargesociales` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_civility`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_civility`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_civility` (
    +  `rowid` int(11) NOT NULL,
    +  `code` varchar(6) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_civility` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_civility`
    +--
    +
    +LOCK TABLES `llx_c_civility` WRITE;
    +/*!40000 ALTER TABLE `llx_c_civility` DISABLE KEYS */;
    +INSERT INTO `llx_c_civility` VALUES (1,'MME','Madame',1,NULL),(3,'MR','Monsieur',1,NULL),(5,'MLE','Mademoiselle',1,NULL),(7,'MTRE','Maître',1,NULL),(8,'DR','Docteur',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_civility` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_country`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_country`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_country` (
    +  `rowid` int(11) NOT NULL,
    +  `code` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
    +  `code_iso` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `favorite` tinyint(4) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_c_country_code` (`code`),
    +  UNIQUE KEY `idx_c_country_label` (`label`),
    +  UNIQUE KEY `idx_c_country_code_iso` (`code_iso`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_country`
    +--
    +
    +LOCK TABLES `llx_c_country` WRITE;
    +/*!40000 ALTER TABLE `llx_c_country` DISABLE KEYS */;
    +INSERT INTO `llx_c_country` VALUES (0,'',NULL,'-',1,1),(1,'FR','FRA','France',1,0),(2,'BE','BEL','Belgium',1,0),(3,'IT','ITA','Italy',1,0),(4,'ES','ESP','Spain',1,0),(5,'DE','DEU','Germany',1,0),(6,'CH','CHE','Switzerland',1,0),(7,'GB','GBR','United Kingdom',1,0),(8,'IE','IRL','Irland',1,0),(9,'CN','CHN','China',1,0),(10,'TN','TUN','Tunisia',1,0),(11,'US','USA','United States',1,0),(12,'MA','MAR','Maroc',1,0),(13,'DZ','DZA','Algeria',1,0),(14,'CA','CAN','Canada',1,0),(15,'TG','TGO','Togo',1,0),(16,'GA','GAB','Gabon',1,0),(17,'NL','NLD','Nerderland',1,0),(18,'HU','HUN','Hongrie',1,0),(19,'RU','RUS','Russia',1,0),(20,'SE','SWE','Sweden',1,0),(21,'CI','CIV','Côte d\'Ivoire',1,0),(22,'SN','SEN','Senegal',1,0),(23,'AR','ARG','Argentine',1,0),(24,'CM','CMR','Cameroun',1,0),(25,'PT','PRT','Portugal',1,0),(26,'SA','SAU','Saudi Arabia',1,0),(27,'MC','MCO','Monaco',1,0),(28,'AU','AUS','Australia',1,0),(29,'SG','SGP','Singapour',1,0),(30,'AF','AFG','Afghanistan',1,0),(31,'AX','ALA','Iles Aland',1,0),(32,'AL','ALB','Albanie',1,0),(33,'AS','ASM','Samoa américaines',1,0),(34,'AD','AND','Andorre',1,0),(35,'AO','AGO','Angola',1,0),(36,'AI','AIA','Anguilla',1,0),(37,'AQ','ATA','Antarctique',1,0),(38,'AG','ATG','Antigua-et-Barbuda',1,0),(39,'AM','ARM','Arménie',1,0),(40,'AW','ABW','Aruba',1,0),(41,'AT','AUT','Autriche',1,0),(42,'AZ','AZE','Azerbaïdjan',1,0),(43,'BS','BHS','Bahamas',1,0),(44,'BH','BHR','Bahreïn',1,0),(45,'BD','BGD','Bangladesh',1,0),(46,'BB','BRB','Barbade',1,0),(47,'BY','BLR','Biélorussie',1,0),(48,'BZ','BLZ','Belize',1,0),(49,'BJ','BEN','Bénin',1,0),(50,'BM','BMU','Bermudes',1,0),(51,'BT','BTN','Bhoutan',1,0),(52,'BO','BOL','Bolivie',1,0),(53,'BA','BIH','Bosnie-Herzégovine',1,0),(54,'BW','BWA','Botswana',1,0),(55,'BV','BVT','Ile Bouvet',1,0),(56,'BR','BRA','Brazil',1,0),(57,'IO','IOT','Territoire britannique de l\'Océan Indien',1,0),(58,'BN','BRN','Brunei',1,0),(59,'BG','BGR','Bulgarie',1,0),(60,'BF','BFA','Burkina Faso',1,0),(61,'BI','BDI','Burundi',1,0),(62,'KH','KHM','Cambodge',1,0),(63,'CV','CPV','Cap-Vert',1,0),(64,'KY','CYM','Iles Cayman',1,0),(65,'CF','CAF','République centrafricaine',1,0),(66,'TD','TCD','Tchad',1,0),(67,'CL','CHL','Chili',1,0),(68,'CX','CXR','Ile Christmas',1,0),(69,'CC','CCK','Iles des Cocos (Keeling)',1,0),(70,'CO','COL','Colombie',1,0),(71,'KM','COM','Comores',1,0),(72,'CG','COG','Congo',1,0),(73,'CD','COD','République démocratique du Congo',1,0),(74,'CK','COK','Iles Cook',1,0),(75,'CR','CRI','Costa Rica',1,0),(76,'HR','HRV','Croatie',1,0),(77,'CU','CUB','Cuba',1,0),(78,'CY','CYP','Chypre',1,0),(79,'CZ','CZE','République Tchèque',1,0),(80,'DK','DNK','Danemark',1,0),(81,'DJ','DJI','Djibouti',1,0),(82,'DM','DMA','Dominique',1,0),(83,'DO','DOM','République Dominicaine',1,0),(84,'EC','ECU','Equateur',1,0),(85,'EG','EGY','Egypte',1,0),(86,'SV','SLV','Salvador',1,0),(87,'GQ','GNQ','Guinée Equatoriale',1,0),(88,'ER','ERI','Erythrée',1,0),(89,'EE','EST','Estonia',1,0),(90,'ET','ETH','Ethiopie',1,0),(91,'FK','FLK','Iles Falkland',1,0),(92,'FO','FRO','Iles Féroé',1,0),(93,'FJ','FJI','Iles Fidji',1,0),(94,'FI','FIN','Finlande',1,0),(95,'GF','GUF','Guyane française',1,0),(96,'PF','PYF','Polynésie française',1,0),(97,'TF','ATF','Terres australes françaises',1,0),(98,'GM','GMB','Gambie',1,0),(99,'GE','GEO','Georgia',1,0),(100,'GH','GHA','Ghana',1,0),(101,'GI','GIB','Gibraltar',1,0),(102,'GR','GRC','Greece',1,0),(103,'GL','GRL','Groenland',1,0),(104,'GD','GRD','Grenade',1,0),(106,'GU','GUM','Guam',1,0),(107,'GT','GTM','Guatemala',1,0),(108,'GN','GIN','Guinea',1,0),(109,'GW','GNB','Guinea-Bissao',1,0),(111,'HT','HTI','Haiti',1,0),(112,'HM','HMD','Iles Heard et McDonald',1,0),(113,'VA','VAT','Saint-Siège (Vatican)',1,0),(114,'HN','HND','Honduras',1,0),(115,'HK','HKG','Hong Kong',1,0),(116,'IS','ISL','Islande',1,0),(117,'IN','IND','India',1,0),(118,'ID','IDN','Indonésie',1,0),(119,'IR','IRN','Iran',1,0),(120,'IQ','IRQ','Iraq',1,0),(121,'IL','ISR','Israel',1,0),(122,'JM','JAM','Jamaïque',1,0),(123,'JP','JPN','Japon',1,0),(124,'JO','JOR','Jordanie',1,0),(125,'KZ','KAZ','Kazakhstan',1,0),(126,'KE','KEN','Kenya',1,0),(127,'KI','KIR','Kiribati',1,0),(128,'KP','PRK','North Corea',1,0),(129,'KR','KOR','South Corea',1,0),(130,'KW','KWT','Koweït',1,0),(131,'KG','KGZ','Kirghizistan',1,0),(132,'LA','LAO','Laos',1,0),(133,'LV','LVA','Lettonie',1,0),(134,'LB','LBN','Liban',1,0),(135,'LS','LSO','Lesotho',1,0),(136,'LR','LBR','Liberia',1,0),(137,'LY','LBY','Libye',1,0),(138,'LI','LIE','Liechtenstein',1,0),(139,'LT','LTU','Lituanie',1,0),(140,'LU','LUX','Luxembourg',1,0),(141,'MO','MAC','Macao',1,0),(142,'MK','MKD','ex-République yougoslave de Macédoine',1,0),(143,'MG','MDG','Madagascar',1,0),(144,'MW','MWI','Malawi',1,0),(145,'MY','MYS','Malaisie',1,0),(146,'MV','MDV','Maldives',1,0),(147,'ML','MLI','Mali',1,0),(148,'MT','MLT','Malte',1,0),(149,'MH','MHL','Iles Marshall',1,0),(151,'MR','MRT','Mauritanie',1,0),(152,'MU','MUS','Maurice',1,0),(153,'YT','MYT','Mayotte',1,0),(154,'MX','MEX','Mexique',1,0),(155,'FM','FSM','Micronésie',1,0),(156,'MD','MDA','Moldavie',1,0),(157,'MN','MNG','Mongolie',1,0),(158,'MS','MSR','Monserrat',1,0),(159,'MZ','MOZ','Mozambique',1,0),(160,'MM','MMR','Birmanie (Myanmar)',1,0),(161,'NA','NAM','Namibie',1,0),(162,'NR','NRU','Nauru',1,0),(163,'NP','NPL','Népal',1,0),(164,'AN',NULL,'Antilles néerlandaises',1,0),(165,'NC','NCL','Nouvelle-Calédonie',1,0),(166,'NZ','NZL','Nouvelle-Zélande',1,0),(167,'NI','NIC','Nicaragua',1,0),(168,'NE','NER','Niger',1,0),(169,'NG','NGA','Nigeria',1,0),(170,'NU','NIU','Nioué',1,0),(171,'NF','NFK','Ile Norfolk',1,0),(172,'MP','MNP','Mariannes du Nord',1,0),(173,'NO','NOR','Norvège',1,0),(174,'OM','OMN','Oman',1,0),(175,'PK','PAK','Pakistan',1,0),(176,'PW','PLW','Palaos',1,0),(177,'PS','PSE','Territoire Palestinien Occupé',1,0),(178,'PA','PAN','Panama',1,0),(179,'PG','PNG','Papouasie-Nouvelle-Guinée',1,0),(180,'PY','PRY','Paraguay',1,0),(181,'PE','PER','Peru',1,0),(182,'PH','PHL','Philippines',1,0),(183,'PN','PCN','Iles Pitcairn',1,0),(184,'PL','POL','Pologne',1,0),(185,'PR','PRI','Porto Rico',1,0),(186,'QA','QAT','Qatar',1,0),(188,'RO','ROU','Roumanie',1,0),(189,'RW','RWA','Rwanda',1,0),(190,'SH','SHN','Sainte-Hélène',1,0),(191,'KN','KNA','Saint-Christophe-et-Niévès',1,0),(192,'LC','LCA','Sainte-Lucie',1,0),(193,'PM','SPM','Saint-Pierre-et-Miquelon',1,0),(194,'VC','VCT','Saint-Vincent-et-les-Grenadines',1,0),(195,'WS','WSM','Samoa',1,0),(196,'SM','SMR','Saint-Marin',1,0),(197,'ST','STP','Sao Tomé-et-Principe',1,0),(198,'RS','SRB','Serbie',1,0),(199,'SC','SYC','Seychelles',1,0),(200,'SL','SLE','Sierra Leone',1,0),(201,'SK','SVK','Slovaquie',1,0),(202,'SI','SVN','Slovénie',1,0),(203,'SB','SLB','Iles Salomon',1,0),(204,'SO','SOM','Somalie',1,0),(205,'ZA','ZAF','Afrique du Sud',1,0),(206,'GS','SGS','Iles Géorgie du Sud et Sandwich du Sud',1,0),(207,'LK','LKA','Sri Lanka',1,0),(208,'SD','SDN','Soudan',1,0),(209,'SR','SUR','Suriname',1,0),(210,'SJ','SJM','Iles Svalbard et Jan Mayen',1,0),(211,'SZ','SWZ','Swaziland',1,0),(212,'SY','SYR','Syrie',1,0),(213,'TW','TWN','Taïwan',1,0),(214,'TJ','TJK','Tadjikistan',1,0),(215,'TZ','TZA','Tanzanie',1,0),(216,'TH','THA','Thaïlande',1,0),(217,'TL','TLS','Timor Oriental',1,0),(218,'TK','TKL','Tokélaou',1,0),(219,'TO','TON','Tonga',1,0),(220,'TT','TTO','Trinité-et-Tobago',1,0),(221,'TR','TUR','Turquie',1,0),(222,'TM','TKM','Turkménistan',1,0),(223,'TC','TCA','Iles Turks-et-Caicos',1,0),(224,'TV','TUV','Tuvalu',1,0),(225,'UG','UGA','Ouganda',1,0),(226,'UA','UKR','Ukraine',1,0),(227,'xx','ARE','Émirats arabes unishh',1,0),(228,'UM','UMI','Iles mineures éloignées des États-Unis',1,0),(229,'UY','URY','Uruguay',1,0),(230,'UZ','UZB','Ouzbékistan',1,0),(231,'VU','VUT','Vanuatu',1,0),(232,'VE','VEN','Vénézuela',1,0),(233,'VN','VNM','Viêt Nam',1,0),(234,'VG','VGB','Iles Vierges britanniques',1,0),(235,'VI','VIR','Iles Vierges américaines',1,0),(236,'WF','WLF','Wallis-et-Futuna',1,0),(237,'EH','ESH','Sahara occidental',1,0),(238,'YE','YEM','Yémen',1,0),(239,'ZM','ZMB','Zambie',1,0),(240,'ZW','ZWE','Zimbabwe',1,0),(241,'GG','GGY','Guernesey',1,0),(242,'IM','IMN','Ile de Man',1,0),(243,'JE','JEY','Jersey',1,0),(244,'ME','MNE','Monténégro',1,0),(245,'BL','BLM','Saint-Barthélemy',1,0),(246,'MF','MAF','Saint-Martin',1,0),(247,'hh',NULL,'hhh',1,0);
    +/*!40000 ALTER TABLE `llx_c_country` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_currencies`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_currencies`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_currencies` (
    +  `code_iso` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `unicode` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`code_iso`),
    +  UNIQUE KEY `uk_c_currencies_code_iso` (`code_iso`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_currencies`
    +--
    +
    +LOCK TABLES `llx_c_currencies` WRITE;
    +/*!40000 ALTER TABLE `llx_c_currencies` DISABLE KEYS */;
    +INSERT INTO `llx_c_currencies` VALUES ('AED','United Arab Emirates Dirham',NULL,1),('AFN','Afghanistan Afghani','[1547]',1),('ALL','Albania Leklll','[76,101,107]',1),('ANG','Netherlands Antilles Guilder','[402]',1),('ARP','Pesos argentins',NULL,0),('ARS','Argentino Peso','[36]',1),('ATS','Shiliing autrichiens',NULL,0),('AUD','Australia Dollar','[36]',1),('AWG','Aruba Guilder','[402]',1),('AZN','Azerbaijan New Manat','[1084,1072,1085]',1),('BAM','Bosnia and Herzegovina Convertible Marka','[75,77]',1),('BBD','Barbados Dollar','[36]',1),('BEF','Francs belges',NULL,0),('BGN','Bulgaria Lev','[1083,1074]',1),('BMD','Bermuda Dollar','[36]',1),('BND','Brunei Darussalam Dollar','[36]',1),('BOB','Bolivia Boliviano','[36,98]',1),('BRL','Brazil Real','[82,36]',1),('BSD','Bahamas Dollar','[36]',1),('BWP','Botswana Pula','[80]',1),('BYR','Belarus Ruble','[112,46]',1),('BZD','Belize Dollar','[66,90,36]',1),('CAD','Canada Dollar','[36]',1),('CHF','Switzerland Franc','[67,72,70]',1),('CLP','Chile Peso','[36]',1),('CNY','China Yuan Renminbi','[165]',1),('COP','Colombia Peso','[36]',1),('CRC','Costa Rica Colon','[8353]',1),('CUP','Cuba Peso','[8369]',1),('CZK','Czech Republic Koruna','[75,269]',1),('DEM','Deutsch mark',NULL,0),('DKK','Denmark Krone','[107,114]',1),('DOP','Dominican Republic Peso','[82,68,36]',1),('DZD','Algeria Dinar',NULL,1),('EEK','Estonia Kroon','[107,114]',1),('EGP','Egypt Pound','[163]',1),('ESP','Pesete',NULL,0),('EUR','Euro Member Countries','[8364]',1),('FIM','Mark finlandais',NULL,0),('FJD','Fiji Dollar','[36]',1),('FKP','Falkland Islands (Malvinas) Pound','[163]',1),('FRF','Francs francais',NULL,0),('GBP','United Kingdom Pound','[163]',1),('GGP','Guernsey Pound','[163]',1),('GHC','Ghana Cedis','[162]',1),('GIP','Gibraltar Pound','[163]',1),('GRD','Drachme (grece)',NULL,0),('GTQ','Guatemala Quetzal','[81]',1),('GYD','Guyana Dollar','[36]',1),('hhh','ddd','[]',1),('HKD','Hong Kong Dollar','[36]',1),('HNL','Honduras Lempira','[76]',1),('HRK','Croatia Kuna','[107,110]',1),('HUF','Hungary Forint','[70,116]',1),('IDR','Indonesia Rupiah','[82,112]',1),('IEP','Livres irlandaises',NULL,0),('ILS','Israel Shekel','[8362]',1),('IMP','Isle of Man Pound','[163]',1),('INR','India Rupee',NULL,1),('IRR','Iran Rial','[65020]',1),('ISK','Iceland Krona','[107,114]',1),('ITL','Lires',NULL,0),('JEP','Jersey Pound','[163]',1),('JMD','Jamaica Dollar','[74,36]',1),('JPY','Japan Yen','[165]',1),('KES','Kenya Shilling',NULL,1),('KGS','Kyrgyzstan Som','[1083,1074]',1),('KHR','Cambodia Riel','[6107]',1),('KPW','Korea (North) Won','[8361]',1),('KRW','Korea (South) Won','[8361]',1),('KYD','Cayman Islands Dollar','[36]',1),('KZT','Kazakhstan Tenge','[1083,1074]',1),('LAK','Laos Kip','[8365]',1),('LBP','Lebanon Pound','[163]',1),('LKR','Sri Lanka Rupee','[8360]',1),('LRD','Liberia Dollar','[36]',1),('LTL','Lithuania Litas','[76,116]',1),('LUF','Francs luxembourgeois',NULL,0),('LVL','Latvia Lat','[76,115]',1),('MAD','Morocco Dirham',NULL,1),('MKD','Macedonia Denar','[1076,1077,1085]',1),('MNT','Mongolia Tughrik','[8366]',1),('MRO','Mauritania Ouguiya',NULL,1),('MUR','Mauritius Rupee','[8360]',1),('MXN','Mexico Peso','[36]',1),('MXP','Pesos Mexicans',NULL,0),('MYR','Malaysia Ringgit','[82,77]',1),('MZN','Mozambique Metical','[77,84]',1),('NAD','Namibia Dollar','[36]',1),('NGN','Nigeria Naira','[8358]',1),('NIO','Nicaragua Cordoba','[67,36]',1),('NLG','Florins',NULL,0),('NOK','Norway Krone','[107,114]',1),('NPR','Nepal Rupee','[8360]',1),('NZD','New Zealand Dollar','[36]',1),('OMR','Oman Rial','[65020]',1),('PAB','Panama Balboa','[66,47,46]',1),('PEN','Peru Nuevo Sol','[83,47,46]',1),('PHP','Philippines Peso','[8369]',1),('PKR','Pakistan Rupee','[8360]',1),('PLN','Poland Zloty','[122,322]',1),('PTE','Escudos',NULL,0),('PYG','Paraguay Guarani','[71,115]',1),('QAR','Qatar Riyal','[65020]',1),('RON','Romania New Leu','[108,101,105]',1),('RSD','Serbia Dinar','[1044,1080,1085,46]',1),('RUB','Russia Ruble','[1088,1091,1073]',1),('SAR','Saudi Arabia Riyal','[65020]',1),('SBD','Solomon Islands Dollar','[36]',1),('SCR','Seychelles Rupee','[8360]',1),('SEK','Sweden Krona','[107,114]',1),('SGD','Singapore Dollar','[36]',1),('SHP','Saint Helena Pound','[163]',1),('SKK','Couronnes slovaques',NULL,0),('SOS','Somalia Shilling','[83]',1),('SRD','Suriname Dollar','[36]',1),('SUR','Rouble',NULL,0),('SVC','El Salvador Colon','[36]',1),('SYP','Syria Pound','[163]',1),('THB','Thailand Baht','[3647]',1),('TND','Tunisia Dinar',NULL,1),('TRL','Turkey Lira','[84,76]',1),('TRY','Turkey Lira','[8356]',1),('TTD','Trinidad and Tobago Dollar','[84,84,36]',1),('TVD','Tuvalu Dollar','[36]',1),('TWD','Taiwan New Dollar','[78,84,36]',1),('UAH','Ukraine Hryvna','[8372]',1),('USD','United States Dollar','[36]',1),('UYU','Uruguay Peso','[36,85]',1),('UZS','Uzbekistan Som','[1083,1074]',1),('VEF','Venezuela Bolivar Fuerte','[66,115]',1),('VND','Viet Nam Dong','[8363]',1),('XAF','Communaute Financiere Africaine (BEAC) CFA Franc',NULL,1),('XCD','East Caribbean Dollar','[36]',1),('XEU','Ecus',NULL,0),('XOF','Communaute Financiere Africaine (BCEAO) Franc',NULL,1),('XPF','Franc pacifique (XPF)',NULL,1),('YER','Yemen Rial','[65020]',1),('ZAR','South Africa Rand','[82]',1),('ZWD','Zimbabwe Dollar','[90,36]',1);
    +/*!40000 ALTER TABLE `llx_c_currencies` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_departements`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_departements`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_departements` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code_departement` varchar(6) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_region` int(11) DEFAULT NULL,
    +  `cheflieu` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tncc` int(11) DEFAULT NULL,
    +  `ncc` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `nom` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_departements` (`code_departement`,`fk_region`),
    +  KEY `idx_departements_fk_region` (`fk_region`),
    +  CONSTRAINT `fk_departements_code_region` FOREIGN KEY (`fk_region`) REFERENCES `llx_c_regions` (`code_region`),
    +  CONSTRAINT `fk_departements_fk_region` FOREIGN KEY (`fk_region`) REFERENCES `llx_c_regions` (`code_region`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2100 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_departements`
    +--
    +
    +LOCK TABLES `llx_c_departements` WRITE;
    +/*!40000 ALTER TABLE `llx_c_departements` DISABLE KEYS */;
    +INSERT INTO `llx_c_departements` VALUES (1,'0',0,'0',0,'-','-',1),(2,'01',82,'01053',5,'AIN','Ain',1),(3,'02',22,'02408',5,'AISNE','Aisne',1),(4,'03',83,'03190',5,'ALLIER','Allier',1),(5,'04',93,'04070',4,'ALPES-DE-HAUTE-PROVENCE','Alpes-de-Haute-Provence',1),(6,'05',93,'05061',4,'HAUTES-ALPES','Hautes-Alpes',1),(7,'06',93,'06088',4,'ALPES-MARITIMES','Alpes-Maritimes',1),(8,'07',82,'07186',5,'ARDECHE','Ardèche',1),(9,'08',21,'08105',4,'ARDENNES','Ardennes',1),(10,'09',73,'09122',5,'ARIEGE','Ariège',1),(11,'10',21,'10387',5,'AUBE','Aube',1),(12,'11',91,'11069',5,'AUDE','Aude',1),(13,'12',73,'12202',5,'AVEYRON','Aveyron',1),(14,'13',93,'13055',4,'BOUCHES-DU-RHONE','Bouches-du-Rhône',1),(15,'14',25,'14118',2,'CALVADOS','Calvados',1),(16,'15',83,'15014',2,'CANTAL','Cantal',1),(17,'16',54,'16015',3,'CHARENTE','Charente',1),(18,'17',54,'17300',3,'CHARENTE-MARITIME','Charente-Maritime',1),(19,'18',24,'18033',2,'CHER','Cher',1),(20,'19',74,'19272',3,'CORREZE','Corrèze',1),(21,'2A',94,'2A004',3,'CORSE-DU-SUD','Corse-du-Sud',1),(22,'2B',94,'2B033',3,'HAUTE-CORSE','Haute-Corse',1),(23,'21',26,'21231',3,'COTE-D\'OR','Côte-d\'Or',1),(24,'22',53,'22278',4,'COTES-D\'ARMOR','Côtes-d\'Armor',1),(25,'23',74,'23096',3,'CREUSE','Creuse',1),(26,'24',72,'24322',3,'DORDOGNE','Dordogne',1),(27,'25',43,'25056',2,'DOUBS','Doubs',1),(28,'26',82,'26362',3,'DROME','Drôme',1),(29,'27',23,'27229',5,'EURE','Eure',1),(30,'28',24,'28085',1,'EURE-ET-LOIR','Eure-et-Loir',1),(31,'29',53,'29232',2,'FINISTERE','Finistère',1),(32,'30',91,'30189',2,'GARD','Gard',1),(33,'31',73,'31555',3,'HAUTE-GARONNE','Haute-Garonne',1),(34,'32',73,'32013',2,'GERS','Gers',1),(35,'33',72,'33063',3,'GIRONDE','Gironde',1),(36,'34',91,'34172',5,'HERAULT','Hérault',1),(37,'35',53,'35238',1,'ILLE-ET-VILAINE','Ille-et-Vilaine',1),(38,'36',24,'36044',5,'INDRE','Indre',1),(39,'37',24,'37261',1,'INDRE-ET-LOIRE','Indre-et-Loire',1),(40,'38',82,'38185',5,'ISERE','Isère',1),(41,'39',43,'39300',2,'JURA','Jura',1),(42,'40',72,'40192',4,'LANDES','Landes',1),(43,'41',24,'41018',0,'LOIR-ET-CHER','Loir-et-Cher',1),(44,'42',82,'42218',3,'LOIRE','Loire',1),(45,'43',83,'43157',3,'HAUTE-LOIRE','Haute-Loire',1),(46,'44',52,'44109',3,'LOIRE-ATLANTIQUE','Loire-Atlantique',1),(47,'45',24,'45234',2,'LOIRET','Loiret',1),(48,'46',73,'46042',2,'LOT','Lot',1),(49,'47',72,'47001',0,'LOT-ET-GARONNE','Lot-et-Garonne',1),(50,'48',91,'48095',3,'LOZERE','Lozère',1),(51,'49',52,'49007',0,'MAINE-ET-LOIRE','Maine-et-Loire',1),(52,'50',25,'50502',3,'MANCHE','Manche',1),(53,'51',21,'51108',3,'MARNE','Marne',1),(54,'52',21,'52121',3,'HAUTE-MARNE','Haute-Marne',1),(55,'53',52,'53130',3,'MAYENNE','Mayenne',1),(56,'54',41,'54395',0,'MEURTHE-ET-MOSELLE','Meurthe-et-Moselle',1),(57,'55',41,'55029',3,'MEUSE','Meuse',1),(58,'56',53,'56260',2,'MORBIHAN','Morbihan',1),(59,'57',41,'57463',3,'MOSELLE','Moselle',1),(60,'58',26,'58194',3,'NIEVRE','Nièvre',1),(61,'59',31,'59350',2,'NORD','Nord',1),(62,'60',22,'60057',5,'OISE','Oise',1),(63,'61',25,'61001',5,'ORNE','Orne',1),(64,'62',31,'62041',2,'PAS-DE-CALAIS','Pas-de-Calais',1),(65,'63',83,'63113',2,'PUY-DE-DOME','Puy-de-Dôme',1),(66,'64',72,'64445',4,'PYRENEES-ATLANTIQUES','Pyrénées-Atlantiques',1),(67,'65',73,'65440',4,'HAUTES-PYRENEES','Hautes-Pyrénées',1),(68,'66',91,'66136',4,'PYRENEES-ORIENTALES','Pyrénées-Orientales',1),(69,'67',42,'67482',2,'BAS-RHIN','Bas-Rhin',1),(70,'68',42,'68066',2,'HAUT-RHIN','Haut-Rhin',1),(71,'69',82,'69123',2,'RHONE','Rhône',1),(72,'70',43,'70550',3,'HAUTE-SAONE','Haute-Saône',1),(73,'71',26,'71270',0,'SAONE-ET-LOIRE','Saône-et-Loire',1),(74,'72',52,'72181',3,'SARTHE','Sarthe',1),(75,'73',82,'73065',3,'SAVOIE','Savoie',1),(76,'74',82,'74010',3,'HAUTE-SAVOIE','Haute-Savoie',1),(77,'75',11,'75056',0,'PARIS','Paris',1),(78,'76',23,'76540',3,'SEINE-MARITIME','Seine-Maritime',1),(79,'77',11,'77288',0,'SEINE-ET-MARNE','Seine-et-Marne',1),(80,'78',11,'78646',4,'YVELINES','Yvelines',1),(81,'79',54,'79191',4,'DEUX-SEVRES','Deux-Sèvres',1),(82,'80',22,'80021',3,'SOMME','Somme',1),(83,'81',73,'81004',2,'TARN','Tarn',1),(84,'82',73,'82121',0,'TARN-ET-GARONNE','Tarn-et-Garonne',1),(85,'83',93,'83137',2,'VAR','Var',1),(86,'84',93,'84007',0,'VAUCLUSE','Vaucluse',1),(87,'85',52,'85191',3,'VENDEE','Vendée',1),(88,'86',54,'86194',3,'VIENNE','Vienne',1),(89,'87',74,'87085',3,'HAUTE-VIENNE','Haute-Vienne',1),(90,'88',41,'88160',4,'VOSGES','Vosges',1),(91,'89',26,'89024',5,'YONNE','Yonne',1),(92,'90',43,'90010',0,'TERRITOIRE DE BELFORT','Territoire de Belfort',1),(93,'91',11,'91228',5,'ESSONNE','Essonne',1),(94,'92',11,'92050',4,'HAUTS-DE-SEINE','Hauts-de-Seine',1),(95,'93',11,'93008',3,'SEINE-SAINT-DENIS','Seine-Saint-Denis',1),(96,'94',11,'94028',2,'VAL-DE-MARNE','Val-de-Marne',1),(97,'95',11,'95500',2,'VAL-D\'OISE','Val-d\'Oise',1),(98,'971',1,'97105',3,'GUADELOUPE','Guadeloupe',1),(99,'972',2,'97209',3,'MARTINIQUE','Martinique',1),(100,'973',3,'97302',3,'GUYANE','Guyane',1),(101,'974',4,'97411',3,'REUNION','Réunion',1),(102,'01',201,'',1,'ANVERS','Anvers',1),(103,'02',203,'',3,'BRUXELLES-CAPITALE','Bruxelles-Capitale',1),(104,'03',202,'',2,'BRABANT-WALLON','Brabant-Wallon',1),(105,'04',201,'',1,'BRABANT-FLAMAND','Brabant-Flamand',1),(106,'05',201,'',1,'FLANDRE-OCCIDENTALE','Flandre-Occidentale',1),(107,'06',201,'',1,'FLANDRE-ORIENTALE','Flandre-Orientale',1),(108,'07',202,'',2,'HAINAUT','Hainaut',1),(109,'08',201,'',2,'LIEGE','Liège',1),(110,'09',202,'',1,'LIMBOURG','Limbourg',1),(111,'10',202,'',2,'LUXEMBOURG','Luxembourg',1),(112,'11',201,'',2,'NAMUR','Namur',1),(113,'NSW',2801,'',1,'','New South Wales',1),(114,'VIC',2801,'',1,'','Victoria',1),(115,'QLD',2801,'',1,'','Queensland',1),(116,'SA',2801,'',1,'','South Australia',1),(117,'ACT',2801,'',1,'','Australia Capital Territory',1),(118,'TAS',2801,'',1,'','Tasmania',1),(119,'WA',2801,'',1,'','Western Australia',1),(120,'NT',2801,'',1,'','Northern Territory',1),(121,'VI',419,'',19,'ALAVA','Álava',1),(122,'AB',404,'',4,'ALBACETE','Albacete',1),(123,'A',411,'',11,'ALICANTE','Alicante',1),(124,'AL',401,'',1,'ALMERIA','Almería',1),(125,'AV',403,'',3,'AVILA','Avila',1),(126,'BA',412,'',12,'BADAJOZ','Badajoz',1),(127,'PM',414,'',14,'ISLAS BALEARES','Islas Baleares',1),(128,'B',406,'',6,'BARCELONA','Barcelona',1),(129,'BU',403,'',8,'BURGOS','Burgos',1),(130,'CC',412,'',12,'CACERES','Cáceres',1),(131,'CA',401,'',1,'CADIz','Cádiz',1),(132,'CS',411,'',11,'CASTELLON','Castellón',1),(133,'CR',404,'',4,'CIUDAD REAL','Ciudad Real',1),(134,'CO',401,'',1,'CORDOBA','Córdoba',1),(135,'C',413,'',13,'LA CORUÑA','La Coruña',1),(136,'CU',404,'',4,'CUENCA','Cuenca',1),(137,'GI',406,'',6,'GERONA','Gerona',1),(138,'GR',401,'',1,'GRANADA','Granada',1),(139,'GU',404,'',4,'GUADALAJARA','Guadalajara',1),(140,'SS',419,'',19,'GUIPUZCOA','Guipúzcoa',1),(141,'H',401,'',1,'HUELVA','Huelva',1),(142,'HU',402,'',2,'HUESCA','Huesca',1),(143,'J',401,'',1,'JAEN','Jaén',1),(144,'LE',403,'',3,'LEON','León',1),(145,'L',406,'',6,'LERIDA','Lérida',1),(146,'LO',415,'',15,'LA RIOJA','La Rioja',1),(147,'LU',413,'',13,'LUGO','Lugo',1),(148,'M',416,'',16,'MADRID','Madrid',1),(149,'MA',401,'',1,'MALAGA','Málaga',1),(150,'MU',417,'',17,'MURCIA','Murcia',1),(151,'NA',408,'',8,'NAVARRA','Navarra',1),(152,'OR',413,'',13,'ORENSE','Orense',1),(153,'O',418,'',18,'ASTURIAS','Asturias',1),(154,'P',403,'',3,'PALENCIA','Palencia',1),(155,'GC',405,'',5,'LAS PALMAS','Las Palmas',1),(156,'PO',413,'',13,'PONTEVEDRA','Pontevedra',1),(157,'SA',403,'',3,'SALAMANCA','Salamanca',1),(158,'TF',405,'',5,'STA. CRUZ DE TENERIFE','Sta. Cruz de Tenerife',1),(159,'S',410,'',10,'CANTABRIA','Cantabria',1),(160,'SG',403,'',3,'SEGOVIA','Segovia',1),(161,'SE',401,'',1,'SEVILLA','Sevilla',1),(162,'SO',403,'',3,'SORIA','Soria',1),(163,'T',406,'',6,'TARRAGONA','Tarragona',1),(164,'TE',402,'',2,'TERUEL','Teruel',1),(165,'TO',404,'',5,'TOLEDO','Toledo',1),(166,'V',411,'',11,'VALENCIA','Valencia',1),(167,'VA',403,'',3,'VALLADOLID','Valladolid',1),(168,'BI',419,'',19,'VIZCAYA','Vizcaya',1),(169,'ZA',403,'',3,'ZAMORA','Zamora',1),(170,'Z',402,'',1,'ZARAGOZA','Zaragoza',1),(171,'CE',407,'',7,'CEUTA','Ceuta',1),(172,'ML',409,'',9,'MELILLA','Melilla',1),(174,'AG',601,NULL,NULL,'ARGOVIE','Argovie',1),(175,'AI',601,NULL,NULL,'APPENZELL RHODES INTERIEURES','Appenzell Rhodes intérieures',1),(176,'AR',601,NULL,NULL,'APPENZELL RHODES EXTERIEURES','Appenzell Rhodes extérieures',1),(177,'BE',601,NULL,NULL,'BERNE','Berne',1),(178,'BL',601,NULL,NULL,'BALE CAMPAGNE','Bâle Campagne',1),(179,'BS',601,NULL,NULL,'BALE VILLE','Bâle Ville',1),(180,'FR',601,NULL,NULL,'FRIBOURG','Fribourg',1),(181,'GE',601,NULL,NULL,'GENEVE','Genève',1),(182,'GL',601,NULL,NULL,'GLARIS','Glaris',1),(183,'GR',601,NULL,NULL,'GRISONS','Grisons',1),(184,'JU',601,NULL,NULL,'JURA','Jura',1),(185,'LU',601,NULL,NULL,'LUCERNE','Lucerne',1),(186,'NE',601,NULL,NULL,'NEUCHATEL','Neuchâtel',1),(187,'NW',601,NULL,NULL,'NIDWALD','Nidwald',1),(188,'OW',601,NULL,NULL,'OBWALD','Obwald',1),(189,'SG',601,NULL,NULL,'SAINT-GALL','Saint-Gall',1),(190,'SH',601,NULL,NULL,'SCHAFFHOUSE','Schaffhouse',1),(191,'SO',601,NULL,NULL,'SOLEURE','Soleure',1),(192,'SZ',601,NULL,NULL,'SCHWYZ','Schwyz',1),(193,'TG',601,NULL,NULL,'THURGOVIE','Thurgovie',1),(194,'TI',601,NULL,NULL,'TESSIN','Tessin',1),(195,'UR',601,NULL,NULL,'URI','Uri',1),(196,'VD',601,NULL,NULL,'VAUD','Vaud',1),(197,'VS',601,NULL,NULL,'VALAIS','Valais',1),(198,'ZG',601,NULL,NULL,'ZUG','Zug',1),(199,'ZH',601,NULL,NULL,'ZURICH','Zürich',1),(200,'AL',1101,'',0,'ALABAMA','Alabama',1),(201,'AK',1101,'',0,'ALASKA','Alaska',1),(202,'AZ',1101,'',0,'ARIZONA','Arizona',1),(203,'AR',1101,'',0,'ARKANSAS','Arkansas',1),(204,'CA',1101,'',0,'CALIFORNIA','California',1),(205,'CO',1101,'',0,'COLORADO','Colorado',1),(206,'CT',1101,'',0,'CONNECTICUT','Connecticut',1),(207,'DE',1101,'',0,'DELAWARE','Delaware',1),(208,'FL',1101,'',0,'FLORIDA','Florida',1),(209,'GA',1101,'',0,'GEORGIA','Georgia',1),(210,'HI',1101,'',0,'HAWAII','Hawaii',1),(211,'ID',1101,'',0,'IDAHO','Idaho',1),(212,'IL',1101,'',0,'ILLINOIS','Illinois',1),(213,'IN',1101,'',0,'INDIANA','Indiana',1),(214,'IA',1101,'',0,'IOWA','Iowa',1),(215,'KS',1101,'',0,'KANSAS','Kansas',1),(216,'KY',1101,'',0,'KENTUCKY','Kentucky',1),(217,'LA',1101,'',0,'LOUISIANA','Louisiana',1),(218,'ME',1101,'',0,'MAINE','Maine',1),(219,'MD',1101,'',0,'MARYLAND','Maryland',1),(220,'MA',1101,'',0,'MASSACHUSSETTS','Massachusetts',1),(221,'MI',1101,'',0,'MICHIGAN','Michigan',1),(222,'MN',1101,'',0,'MINNESOTA','Minnesota',1),(223,'MS',1101,'',0,'MISSISSIPPI','Mississippi',1),(224,'MO',1101,'',0,'MISSOURI','Missouri',1),(225,'MT',1101,'',0,'MONTANA','Montana',1),(226,'NE',1101,'',0,'NEBRASKA','Nebraska',1),(227,'NV',1101,'',0,'NEVADA','Nevada',1),(228,'NH',1101,'',0,'NEW HAMPSHIRE','New Hampshire',1),(229,'NJ',1101,'',0,'NEW JERSEY','New Jersey',1),(230,'NM',1101,'',0,'NEW MEXICO','New Mexico',1),(231,'NY',1101,'',0,'NEW YORK','New York',1),(232,'NC',1101,'',0,'NORTH CAROLINA','North Carolina',1),(233,'ND',1101,'',0,'NORTH DAKOTA','North Dakota',1),(234,'OH',1101,'',0,'OHIO','Ohio',1),(235,'OK',1101,'',0,'OKLAHOMA','Oklahoma',1),(236,'OR',1101,'',0,'OREGON','Oregon',1),(237,'PA',1101,'',0,'PENNSYLVANIA','Pennsylvania',1),(238,'RI',1101,'',0,'RHODE ISLAND','Rhode Island',1),(239,'SC',1101,'',0,'SOUTH CAROLINA','South Carolina',1),(240,'SD',1101,'',0,'SOUTH DAKOTA','South Dakota',1),(241,'TN',1101,'',0,'TENNESSEE','Tennessee',1),(242,'TX',1101,'',0,'TEXAS','Texas',1),(243,'UT',1101,'',0,'UTAH','Utah',1),(244,'VT',1101,'',0,'VERMONT','Vermont',1),(245,'VA',1101,'',0,'VIRGINIA','Virginia',1),(246,'WA',1101,'',0,'WASHINGTON','Washington',1),(247,'WV',1101,'',0,'WEST VIRGINIA','West Virginia',1),(248,'WI',1101,'',0,'WISCONSIN','Wisconsin',1),(249,'WY',1101,'',0,'WYOMING','Wyoming',1),(250,'SS',8601,NULL,NULL,NULL,'San Salvador',1),(251,'SA',8603,NULL,NULL,NULL,'Santa Ana',1),(252,'AH',8603,NULL,NULL,NULL,'Ahuachapan',1),(253,'SO',8603,NULL,NULL,NULL,'Sonsonate',1),(254,'US',8602,NULL,NULL,NULL,'Usulutan',1),(255,'SM',8602,NULL,NULL,NULL,'San Miguel',1),(256,'MO',8602,NULL,NULL,NULL,'Morazan',1),(257,'LU',8602,NULL,NULL,NULL,'La Union',1),(258,'LL',8601,NULL,NULL,NULL,'La Libertad',1),(259,'CH',8601,NULL,NULL,NULL,'Chalatenango',1),(260,'CA',8601,NULL,NULL,NULL,'Cabañas',1),(261,'LP',8601,NULL,NULL,NULL,'La Paz',1),(262,'SV',8601,NULL,NULL,NULL,'San Vicente',1),(263,'CU',8601,NULL,NULL,NULL,'Cuscatlan',1),(264,'2301',2301,'',0,'CATAMARCA','Catamarca',1),(265,'2302',2301,'',0,'JUJUY','Jujuy',1),(266,'2303',2301,'',0,'TUCAMAN','Tucamán',1),(267,'2304',2301,'',0,'SANTIAGO DEL ESTERO','Santiago del Estero',1),(268,'2305',2301,'',0,'SALTA','Salta',1),(269,'2306',2302,'',0,'CHACO','Chaco',1),(270,'2307',2302,'',0,'CORRIENTES','Corrientes',1),(271,'2308',2302,'',0,'ENTRE RIOS','Entre Ríos',1),(272,'2309',2302,'',0,'FORMOSA','Formosa',1),(273,'2310',2302,'',0,'SANTA FE','Santa Fe',1),(274,'2311',2303,'',0,'LA RIOJA','La Rioja',1),(275,'2312',2303,'',0,'MENDOZA','Mendoza',1),(276,'2313',2303,'',0,'SAN JUAN','San Juan',1),(277,'2314',2303,'',0,'SAN LUIS','San Luis',1),(278,'2315',2304,'',0,'CORDOBA','Córdoba',1),(279,'2316',2304,'',0,'BUENOS AIRES','Buenos Aires',1),(280,'2317',2304,'',0,'CABA','Caba',1),(281,'2318',2305,'',0,'LA PAMPA','La Pampa',1),(282,'2319',2305,'',0,'NEUQUEN','Neuquén',1),(283,'2320',2305,'',0,'RIO NEGRO','Río Negro',1),(284,'2321',2305,'',0,'CHUBUT','Chubut',1),(285,'2322',2305,'',0,'SANTA CRUZ','Santa Cruz',1),(286,'2323',2305,'',0,'TIERRA DEL FUEGO','Tierra del Fuego',1),(287,'2324',2305,'',0,'ISLAS MALVINAS','Islas Malvinas',1),(288,'2325',2305,'',0,'ANTARTIDA','Antártida',1),(289,'AN',11701,NULL,0,'AN','Andaman & Nicobar',1),(290,'AP',11701,NULL,0,'AP','Andhra Pradesh',1),(291,'AR',11701,NULL,0,'AR','Arunachal Pradesh',1),(292,'AS',11701,NULL,0,'AS','Assam',1),(293,'BR',11701,NULL,0,'BR','Bihar',1),(294,'CG',11701,NULL,0,'CG','Chattisgarh',1),(295,'CH',11701,NULL,0,'CH','Chandigarh',1),(296,'DD',11701,NULL,0,'DD','Daman & Diu',1),(297,'DL',11701,NULL,0,'DL','Delhi',1),(298,'DN',11701,NULL,0,'DN','Dadra and Nagar Haveli',1),(299,'GA',11701,NULL,0,'GA','Goa',1),(300,'GJ',11701,NULL,0,'GJ','Gujarat',1),(301,'HP',11701,NULL,0,'HP','Himachal Pradesh',1),(302,'HR',11701,NULL,0,'HR','Haryana',1),(303,'JH',11701,NULL,0,'JH','Jharkhand',1),(304,'JK',11701,NULL,0,'JK','Jammu & Kashmir',1),(305,'KA',11701,NULL,0,'KA','Karnataka',1),(306,'KL',11701,NULL,0,'KL','Kerala',1),(307,'LD',11701,NULL,0,'LD','Lakshadweep',1),(308,'MH',11701,NULL,0,'MH','Maharashtra',1),(309,'ML',11701,NULL,0,'ML','Meghalaya',1),(310,'MN',11701,NULL,0,'MN','Manipur',1),(311,'MP',11701,NULL,0,'MP','Madhya Pradesh',1),(312,'MZ',11701,NULL,0,'MZ','Mizoram',1),(313,'NL',11701,NULL,0,'NL','Nagaland',1),(314,'OR',11701,NULL,0,'OR','Orissa',1),(315,'PB',11701,NULL,0,'PB','Punjab',1),(316,'PY',11701,NULL,0,'PY','Puducherry',1),(317,'RJ',11701,NULL,0,'RJ','Rajasthan',1),(318,'SK',11701,NULL,0,'SK','Sikkim',1),(319,'TN',11701,NULL,0,'TN','Tamil Nadu',1),(320,'TR',11701,NULL,0,'TR','Tripura',1),(321,'UL',11701,NULL,0,'UL','Uttarakhand',1),(322,'UP',11701,NULL,0,'UP','Uttar Pradesh',1),(323,'WB',11701,NULL,0,'WB','West Bengal',1),(374,'151',6715,'',0,'151','Arica',1),(375,'152',6715,'',0,'152','Parinacota',1),(376,'011',6701,'',0,'011','Iquique',1),(377,'014',6701,'',0,'014','Tamarugal',1),(378,'021',6702,'',0,'021','Antofagasa',1),(379,'022',6702,'',0,'022','El Loa',1),(380,'023',6702,'',0,'023','Tocopilla',1),(381,'031',6703,'',0,'031','Copiapó',1),(382,'032',6703,'',0,'032','Chañaral',1),(383,'033',6703,'',0,'033','Huasco',1),(384,'041',6704,'',0,'041','Elqui',1),(385,'042',6704,'',0,'042','Choapa',1),(386,'043',6704,'',0,'043','Limarí',1),(387,'051',6705,'',0,'051','Valparaíso',1),(388,'052',6705,'',0,'052','Isla de Pascua',1),(389,'053',6705,'',0,'053','Los Andes',1),(390,'054',6705,'',0,'054','Petorca',1),(391,'055',6705,'',0,'055','Quillota',1),(392,'056',6705,'',0,'056','San Antonio',1),(393,'057',6705,'',0,'057','San Felipe de Aconcagua',1),(394,'058',6705,'',0,'058','Marga Marga',1),(395,'061',6706,'',0,'061','Cachapoal',1),(396,'062',6706,'',0,'062','Cardenal Caro',1),(397,'063',6706,'',0,'063','Colchagua',1),(398,'071',6707,'',0,'071','Talca',1),(399,'072',6707,'',0,'072','Cauquenes',1),(400,'073',6707,'',0,'073','Curicó',1),(401,'074',6707,'',0,'074','Linares',1),(402,'081',6708,'',0,'081','Concepción',1),(403,'082',6708,'',0,'082','Arauco',1),(404,'083',6708,'',0,'083','Biobío',1),(405,'084',6708,'',0,'084','Ñuble',1),(406,'091',6709,'',0,'091','Cautín',1),(407,'092',6709,'',0,'092','Malleco',1),(408,'141',6714,'',0,'141','Valdivia',1),(409,'142',6714,'',0,'142','Ranco',1),(410,'101',6710,'',0,'101','Llanquihue',1),(411,'102',6710,'',0,'102','Chiloé',1),(412,'103',6710,'',0,'103','Osorno',1),(413,'104',6710,'',0,'104','Palena',1),(414,'111',6711,'',0,'111','Coihaique',1),(415,'112',6711,'',0,'112','Aisén',1),(416,'113',6711,'',0,'113','Capitán Prat',1),(417,'114',6711,'',0,'114','General Carrera',1),(418,'121',6712,'',0,'121','Magallanes',1),(419,'122',6712,'',0,'122','Antártica Chilena',1),(420,'123',6712,'',0,'123','Tierra del Fuego',1),(421,'124',6712,'',0,'124','Última Esperanza',1),(422,'131',6713,'',0,'131','Santiago',1),(423,'132',6713,'',0,'132','Cordillera',1),(424,'133',6713,'',0,'133','Chacabuco',1),(425,'134',6713,'',0,'134','Maipo',1),(426,'135',6713,'',0,'135','Melipilla',1),(427,'136',6713,'',0,'136','Talagante',1),(428,'DIF',15401,'',0,'DIF','Distrito Federal',1),(429,'AGS',15401,'',0,'AGS','Aguascalientes',1),(430,'BCN',15401,'',0,'BCN','Baja California Norte',1),(431,'BCS',15401,'',0,'BCS','Baja California Sur',1),(432,'CAM',15401,'',0,'CAM','Campeche',1),(433,'CHP',15401,'',0,'CHP','Chiapas',1),(434,'CHI',15401,'',0,'CHI','Chihuahua',1),(435,'COA',15401,'',0,'COA','Coahuila',1),(436,'COL',15401,'',0,'COL','Colima',1),(437,'DUR',15401,'',0,'DUR','Durango',1),(438,'GTO',15401,'',0,'GTO','Guanajuato',1),(439,'GRO',15401,'',0,'GRO','Guerrero',1),(440,'HGO',15401,'',0,'HGO','Hidalgo',1),(441,'JAL',15401,'',0,'JAL','Jalisco',1),(442,'MEX',15401,'',0,'MEX','México',1),(443,'MIC',15401,'',0,'MIC','Michoacán de Ocampo',1),(444,'MOR',15401,'',0,'MOR','Morelos',1),(445,'NAY',15401,'',0,'NAY','Nayarit',1),(446,'NLE',15401,'',0,'NLE','Nuevo León',1),(447,'OAX',15401,'',0,'OAX','Oaxaca',1),(448,'PUE',15401,'',0,'PUE','Puebla',1),(449,'QRO',15401,'',0,'QRO','Querétaro',1),(451,'ROO',15401,'',0,'ROO','Quintana Roo',1),(452,'SLP',15401,'',0,'SLP','San Luis Potosí',1),(453,'SIN',15401,'',0,'SIN','Sinaloa',1),(454,'SON',15401,'',0,'SON','Sonora',1),(455,'TAB',15401,'',0,'TAB','Tabasco',1),(456,'TAM',15401,'',0,'TAM','Tamaulipas',1),(457,'TLX',15401,'',0,'TLX','Tlaxcala',1),(458,'VER',15401,'',0,'VER','Veracruz',1),(459,'YUC',15401,'',0,'YUC','Yucatán',1),(460,'ZAC',15401,'',0,'ZAC','Zacatecas',1),(461,'ANT',7001,'',0,'ANT','Antioquia',1),(462,'BOL',7001,'',0,'BOL','Bolívar',1),(463,'BOY',7001,'',0,'BOY','Boyacá',1),(464,'CAL',7001,'',0,'CAL','Caldas',1),(465,'CAU',7001,'',0,'CAU','Cauca',1),(466,'CUN',7001,'',0,'CUN','Cundinamarca',1),(467,'HUI',7001,'',0,'HUI','Huila',1),(468,'LAG',7001,'',0,'LAG','La Guajira',1),(469,'MET',7001,'',0,'MET','Meta',1),(470,'NAR',7001,'',0,'NAR','Nariño',1),(471,'NDS',7001,'',0,'NDS','Norte de Santander',1),(472,'SAN',7001,'',0,'SAN','Santander',1),(473,'SUC',7001,'',0,'SUC','Sucre',1),(474,'TOL',7001,'',0,'TOL','Tolima',1),(475,'VAC',7001,'',0,'VAC','Valle del Cauca',1),(476,'RIS',7001,'',0,'RIS','Risalda',1),(477,'ATL',7001,'',0,'ATL','Atlántico',1),(478,'COR',7001,'',0,'COR','Córdoba',1),(479,'SAP',7001,'',0,'SAP','San Andrés, Providencia y Santa Catalina',1),(480,'ARA',7001,'',0,'ARA','Arauca',1),(481,'CAS',7001,'',0,'CAS','Casanare',1),(482,'AMA',7001,'',0,'AMA','Amazonas',1),(483,'CAQ',7001,'',0,'CAQ','Caquetá',1),(484,'CHO',7001,'',0,'CHO','Chocó',1),(485,'GUA',7001,'',0,'GUA','Guainía',1),(486,'GUV',7001,'',0,'GUV','Guaviare',1),(487,'PUT',7001,'',0,'PUT','Putumayo',1),(488,'QUI',7001,'',0,'QUI','Quindío',1),(489,'VAU',7001,'',0,'VAU','Vaupés',1),(490,'BOG',7001,'',0,'BOG','Bogotá',1),(491,'VID',7001,'',0,'VID','Vichada',1),(492,'CES',7001,'',0,'CES','Cesar',1),(493,'MAG',7001,'',0,'MAG','Magdalena',1),(494,'AT',11401,'',0,'AT','Atlántida',1),(495,'CH',11401,'',0,'CH','Choluteca',1),(496,'CL',11401,'',0,'CL','Colón',1),(497,'CM',11401,'',0,'CM','Comayagua',1),(498,'CO',11401,'',0,'CO','Copán',1),(499,'CR',11401,'',0,'CR','Cortés',1),(500,'EP',11401,'',0,'EP','El Paraíso',1),(501,'FM',11401,'',0,'FM','Francisco Morazán',1),(502,'GD',11401,'',0,'GD','Gracias a Dios',1),(503,'IN',11401,'',0,'IN','Intibucá',1),(504,'IB',11401,'',0,'IB','Islas de la Bahía',1),(505,'LP',11401,'',0,'LP','La Paz',1),(506,'LM',11401,'',0,'LM','Lempira',1),(507,'OC',11401,'',0,'OC','Ocotepeque',1),(508,'OL',11401,'',0,'OL','Olancho',1),(509,'SB',11401,'',0,'SB','Santa Bárbara',1),(510,'VL',11401,'',0,'VL','Valle',1),(511,'YO',11401,'',0,'YO','Yoro',1),(512,'DC',11401,'',0,'DC','Distrito Central',1),(652,'CC',4601,'Oistins',0,'CC','Christ Church',1),(655,'SA',4601,'Greenland',0,'SA','Saint Andrew',1),(656,'SG',4601,'Bulkeley',0,'SG','Saint George',1),(657,'JA',4601,'Holetown',0,'JA','Saint James',1),(658,'SJ',4601,'Four Roads',0,'SJ','Saint John',1),(659,'SB',4601,'Bathsheba',0,'SB','Saint Joseph',1),(660,'SL',4601,'Crab Hill',0,'SL','Saint Lucy',1),(661,'SM',4601,'Bridgetown',0,'SM','Saint Michael',1),(662,'SP',4601,'Speightstown',0,'SP','Saint Peter',1),(663,'SC',4601,'Crane',0,'SC','Saint Philip',1),(664,'ST',4601,'Hillaby',0,'ST','Saint Thomas',1),(777,'AG',315,NULL,NULL,NULL,'AGRIGENTO',1),(778,'AL',312,NULL,NULL,NULL,'ALESSANDRIA',1),(779,'AN',310,NULL,NULL,NULL,'ANCONA',1),(780,'AO',319,NULL,NULL,NULL,'AOSTA',1),(781,'AR',316,NULL,NULL,NULL,'AREZZO',1),(782,'AP',310,NULL,NULL,NULL,'ASCOLI PICENO',1),(783,'AT',312,NULL,NULL,NULL,'ASTI',1),(784,'AV',304,NULL,NULL,NULL,'AVELLINO',1),(785,'BA',313,NULL,NULL,NULL,'BARI',1),(786,'BT',313,NULL,NULL,NULL,'BARLETTA-ANDRIA-TRANI',1),(787,'BL',320,NULL,NULL,NULL,'BELLUNO',1),(788,'BN',304,NULL,NULL,NULL,'BENEVENTO',1),(789,'BG',309,NULL,NULL,NULL,'BERGAMO',1),(790,'BI',312,NULL,NULL,NULL,'BIELLA',1),(791,'BO',305,NULL,NULL,NULL,'BOLOGNA',1),(792,'BZ',317,NULL,NULL,NULL,'BOLZANO',1),(793,'BS',309,NULL,NULL,NULL,'BRESCIA',1),(794,'BR',313,NULL,NULL,NULL,'BRINDISI',1),(795,'CA',314,NULL,NULL,NULL,'CAGLIARI',1),(796,'CL',315,NULL,NULL,NULL,'CALTANISSETTA',1),(797,'CB',311,NULL,NULL,NULL,'CAMPOBASSO',1),(798,'CI',314,NULL,NULL,NULL,'CARBONIA-IGLESIAS',1),(799,'CE',304,NULL,NULL,NULL,'CASERTA',1),(800,'CT',315,NULL,NULL,NULL,'CATANIA',1),(801,'CZ',303,NULL,NULL,NULL,'CATANZARO',1),(802,'CH',301,NULL,NULL,NULL,'CHIETI',1),(803,'CO',309,NULL,NULL,NULL,'COMO',1),(804,'CS',303,NULL,NULL,NULL,'COSENZA',1),(805,'CR',309,NULL,NULL,NULL,'CREMONA',1),(806,'KR',303,NULL,NULL,NULL,'CROTONE',1),(807,'CN',312,NULL,NULL,NULL,'CUNEO',1),(808,'EN',315,NULL,NULL,NULL,'ENNA',1),(809,'FM',310,NULL,NULL,NULL,'FERMO',1),(810,'FE',305,NULL,NULL,NULL,'FERRARA',1),(811,'FI',316,NULL,NULL,NULL,'FIRENZE',1),(812,'FG',313,NULL,NULL,NULL,'FOGGIA',1),(813,'FC',305,NULL,NULL,NULL,'FORLI-CESENA',1),(814,'FR',307,NULL,NULL,NULL,'FROSINONE',1),(815,'GE',308,NULL,NULL,NULL,'GENOVA',1),(816,'GO',306,NULL,NULL,NULL,'GORIZIA',1),(817,'GR',316,NULL,NULL,NULL,'GROSSETO',1),(818,'IM',308,NULL,NULL,NULL,'IMPERIA',1),(819,'IS',311,NULL,NULL,NULL,'ISERNIA',1),(820,'SP',308,NULL,NULL,NULL,'LA SPEZIA',1),(821,'AQ',301,NULL,NULL,NULL,'L AQUILA',1),(822,'LT',307,NULL,NULL,NULL,'LATINA',1),(823,'LE',313,NULL,NULL,NULL,'LECCE',1),(824,'LC',309,NULL,NULL,NULL,'LECCO',1),(825,'LI',314,NULL,NULL,NULL,'LIVORNO',1),(826,'LO',309,NULL,NULL,NULL,'LODI',1),(827,'LU',316,NULL,NULL,NULL,'LUCCA',1),(828,'MC',310,NULL,NULL,NULL,'MACERATA',1),(829,'MN',309,NULL,NULL,NULL,'MANTOVA',1),(830,'MS',316,NULL,NULL,NULL,'MASSA-CARRARA',1),(831,'MT',302,NULL,NULL,NULL,'MATERA',1),(832,'VS',314,NULL,NULL,NULL,'MEDIO CAMPIDANO',1),(833,'ME',315,NULL,NULL,NULL,'MESSINA',1),(834,'MI',309,NULL,NULL,NULL,'MILANO',1),(835,'MB',309,NULL,NULL,NULL,'MONZA e BRIANZA',1),(836,'MO',305,NULL,NULL,NULL,'MODENA',1),(837,'NA',304,NULL,NULL,NULL,'NAPOLI',1),(838,'NO',312,NULL,NULL,NULL,'NOVARA',1),(839,'NU',314,NULL,NULL,NULL,'NUORO',1),(840,'OG',314,NULL,NULL,NULL,'OGLIASTRA',1),(841,'OT',314,NULL,NULL,NULL,'OLBIA-TEMPIO',1),(842,'OR',314,NULL,NULL,NULL,'ORISTANO',1),(843,'PD',320,NULL,NULL,NULL,'PADOVA',1),(844,'PA',315,NULL,NULL,NULL,'PALERMO',1),(845,'PR',305,NULL,NULL,NULL,'PARMA',1),(846,'PV',309,NULL,NULL,NULL,'PAVIA',1),(847,'PG',318,NULL,NULL,NULL,'PERUGIA',1),(848,'PU',310,NULL,NULL,NULL,'PESARO e URBINO',1),(849,'PE',301,NULL,NULL,NULL,'PESCARA',1),(850,'PC',305,NULL,NULL,NULL,'PIACENZA',1),(851,'PI',316,NULL,NULL,NULL,'PISA',1),(852,'PT',316,NULL,NULL,NULL,'PISTOIA',1),(853,'PN',306,NULL,NULL,NULL,'PORDENONE',1),(854,'PZ',302,NULL,NULL,NULL,'POTENZA',1),(855,'PO',316,NULL,NULL,NULL,'PRATO',1),(856,'RG',315,NULL,NULL,NULL,'RAGUSA',1),(857,'RA',305,NULL,NULL,NULL,'RAVENNA',1),(858,'RC',303,NULL,NULL,NULL,'REGGIO CALABRIA',1),(859,'RE',305,NULL,NULL,NULL,'REGGIO NELL EMILIA',1),(860,'RI',307,NULL,NULL,NULL,'RIETI',1),(861,'RN',305,NULL,NULL,NULL,'RIMINI',1),(862,'RM',307,NULL,NULL,NULL,'ROMA',1),(863,'RO',320,NULL,NULL,NULL,'ROVIGO',1),(864,'SA',304,NULL,NULL,NULL,'SALERNO',1),(865,'SS',314,NULL,NULL,NULL,'SASSARI',1),(866,'SV',308,NULL,NULL,NULL,'SAVONA',1),(867,'SI',316,NULL,NULL,NULL,'SIENA',1),(868,'SR',315,NULL,NULL,NULL,'SIRACUSA',1),(869,'SO',309,NULL,NULL,NULL,'SONDRIO',1),(870,'TA',313,NULL,NULL,NULL,'TARANTO',1),(871,'TE',301,NULL,NULL,NULL,'TERAMO',1),(872,'TR',318,NULL,NULL,NULL,'TERNI',1),(873,'TO',312,NULL,NULL,NULL,'TORINO',1),(874,'TP',315,NULL,NULL,NULL,'TRAPANI',1),(875,'TN',317,NULL,NULL,NULL,'TRENTO',1),(876,'TV',320,NULL,NULL,NULL,'TREVISO',1),(877,'TS',306,NULL,NULL,NULL,'TRIESTE',1),(878,'UD',306,NULL,NULL,NULL,'UDINE',1),(879,'VA',309,NULL,NULL,NULL,'VARESE',1),(880,'VE',320,NULL,NULL,NULL,'VENEZIA',1),(881,'VB',312,NULL,NULL,NULL,'VERBANO-CUSIO-OSSOLA',1),(882,'VC',312,NULL,NULL,NULL,'VERCELLI',1),(883,'VR',320,NULL,NULL,NULL,'VERONA',1),(884,'VV',303,NULL,NULL,NULL,'VIBO VALENTIA',1),(885,'VI',320,NULL,NULL,NULL,'VICENZA',1),(886,'VT',307,NULL,NULL,NULL,'VITERBO',1),(1036,'VE-L',23201,'',0,'VE-L','Mérida',1),(1037,'VE-T',23201,'',0,'VE-T','Trujillo',1),(1038,'VE-E',23201,'',0,'VE-E','Barinas',1),(1039,'VE-M',23202,'',0,'VE-M','Miranda',1),(1040,'VE-W',23202,'',0,'VE-W','Vargas',1),(1041,'VE-A',23202,'',0,'VE-A','Distrito Capital',1),(1042,'VE-D',23203,'',0,'VE-D','Aragua',1),(1043,'VE-G',23203,'',0,'VE-G','Carabobo',1),(1044,'VE-I',23204,'',0,'VE-I','Falcón',1),(1045,'VE-K',23204,'',0,'VE-K','Lara',1),(1046,'VE-U',23204,'',0,'VE-U','Yaracuy',1),(1047,'VE-F',23205,'',0,'VE-F','Bolívar',1),(1048,'VE-X',23205,'',0,'VE-X','Amazonas',1),(1049,'VE-Y',23205,'',0,'VE-Y','Delta Amacuro',1),(1050,'VE-O',23206,'',0,'VE-O','Nueva Esparta',1),(1051,'VE-Z',23206,'',0,'VE-Z','Dependencias Federales',1),(1052,'VE-C',23207,'',0,'VE-C','Apure',1),(1053,'VE-J',23207,'',0,'VE-J','Guárico',1),(1054,'VE-H',23207,'',0,'VE-H','Cojedes',1),(1055,'VE-P',23207,'',0,'VE-P','Portuguesa',1),(1056,'VE-B',23208,'',0,'VE-B','Anzoátegui',1),(1057,'VE-N',23208,'',0,'VE-N','Monagas',1),(1058,'VE-R',23208,'',0,'VE-R','Sucre',1),(1059,'VE-V',23209,'',0,'VE-V','Zulia',1),(1060,'VE-S',23209,'',0,'VE-S','Táchira',1),(1061,'66',10201,NULL,NULL,NULL,'?????',1),(1062,'00',10205,NULL,NULL,NULL,'?????',1),(1063,'01',10205,NULL,NULL,NULL,'?????',1),(1064,'02',10205,NULL,NULL,NULL,'?????',1),(1065,'03',10205,NULL,NULL,NULL,'??????',1),(1066,'04',10205,NULL,NULL,NULL,'?????',1),(1067,'05',10205,NULL,NULL,NULL,'??????',1),(1068,'06',10203,NULL,NULL,NULL,'??????',1),(1069,'07',10203,NULL,NULL,NULL,'???????????',1),(1070,'08',10203,NULL,NULL,NULL,'??????',1),(1071,'09',10203,NULL,NULL,NULL,'?????',1),(1072,'10',10203,NULL,NULL,NULL,'??????',1),(1073,'11',10203,NULL,NULL,NULL,'??????',1),(1074,'12',10203,NULL,NULL,NULL,'?????????',1),(1075,'13',10206,NULL,NULL,NULL,'????',1),(1076,'14',10206,NULL,NULL,NULL,'?????????',1),(1077,'15',10206,NULL,NULL,NULL,'????????',1),(1078,'16',10206,NULL,NULL,NULL,'???????',1),(1079,'17',10213,NULL,NULL,NULL,'???????',1),(1080,'18',10213,NULL,NULL,NULL,'????????',1),(1081,'19',10213,NULL,NULL,NULL,'??????',1),(1082,'20',10213,NULL,NULL,NULL,'???????',1),(1083,'21',10212,NULL,NULL,NULL,'????????',1),(1084,'22',10212,NULL,NULL,NULL,'??????',1),(1085,'23',10212,NULL,NULL,NULL,'????????',1),(1086,'24',10212,NULL,NULL,NULL,'???????',1),(1087,'25',10212,NULL,NULL,NULL,'????????',1),(1088,'26',10212,NULL,NULL,NULL,'???????',1),(1089,'27',10202,NULL,NULL,NULL,'??????',1),(1090,'28',10202,NULL,NULL,NULL,'?????????',1),(1091,'29',10202,NULL,NULL,NULL,'????????',1),(1092,'30',10202,NULL,NULL,NULL,'??????',1),(1093,'31',10209,NULL,NULL,NULL,'????????',1),(1094,'32',10209,NULL,NULL,NULL,'???????',1),(1095,'33',10209,NULL,NULL,NULL,'????????',1),(1096,'34',10209,NULL,NULL,NULL,'???????',1),(1097,'35',10209,NULL,NULL,NULL,'????????',1),(1098,'36',10211,NULL,NULL,NULL,'???????????????',1),(1099,'37',10211,NULL,NULL,NULL,'?????',1),(1100,'38',10211,NULL,NULL,NULL,'?????',1),(1101,'39',10207,NULL,NULL,NULL,'????????',1),(1102,'40',10207,NULL,NULL,NULL,'???????',1),(1103,'41',10207,NULL,NULL,NULL,'??????????',1),(1104,'42',10207,NULL,NULL,NULL,'?????',1),(1105,'43',10207,NULL,NULL,NULL,'???????',1),(1106,'44',10208,NULL,NULL,NULL,'??????',1),(1107,'45',10208,NULL,NULL,NULL,'??????',1),(1108,'46',10208,NULL,NULL,NULL,'??????',1),(1109,'47',10208,NULL,NULL,NULL,'?????',1),(1110,'48',10208,NULL,NULL,NULL,'????',1),(1111,'49',10210,NULL,NULL,NULL,'??????',1),(1112,'50',10210,NULL,NULL,NULL,'????',1),(1113,'51',10210,NULL,NULL,NULL,'????????',1),(1114,'52',10210,NULL,NULL,NULL,'????????',1),(1115,'53',10210,NULL,NULL,NULL,'???-??????',1),(1116,'54',10210,NULL,NULL,NULL,'??',1),(1117,'55',10210,NULL,NULL,NULL,'?????',1),(1118,'56',10210,NULL,NULL,NULL,'???????',1),(1119,'57',10210,NULL,NULL,NULL,'?????',1),(1120,'58',10210,NULL,NULL,NULL,'?????',1),(1121,'59',10210,NULL,NULL,NULL,'?????',1),(1122,'60',10210,NULL,NULL,NULL,'?????',1),(1123,'61',10210,NULL,NULL,NULL,'?????',1),(1124,'62',10204,NULL,NULL,NULL,'????????',1),(1125,'63',10204,NULL,NULL,NULL,'??????',1),(1126,'64',10204,NULL,NULL,NULL,'???????',1),(1127,'65',10204,NULL,NULL,NULL,'?????',1),(1128,'AL01',1301,'',0,'','Wilaya d\'Adrar',1),(1129,'AL02',1301,'',0,'','Wilaya de Chlef',1),(1130,'AL03',1301,'',0,'','Wilaya de Laghouat',1),(1131,'AL04',1301,'',0,'','Wilaya d\'Oum El Bouaghi',1),(1132,'AL05',1301,'',0,'','Wilaya de Batna',1),(1133,'AL06',1301,'',0,'','Wilaya de Béjaïa',1),(1134,'AL07',1301,'',0,'','Wilaya de Biskra',1),(1135,'AL08',1301,'',0,'','Wilaya de Béchar',1),(1136,'AL09',1301,'',0,'','Wilaya de Blida',1),(1137,'AL11',1301,'',0,'','Wilaya de Bouira',1),(1138,'AL12',1301,'',0,'','Wilaya de Tamanrasset',1),(1139,'AL13',1301,'',0,'','Wilaya de Tébessa',1),(1140,'AL14',1301,'',0,'','Wilaya de Tlemcen',1),(1141,'AL15',1301,'',0,'','Wilaya de Tiaret',1),(1142,'AL16',1301,'',0,'','Wilaya de Tizi Ouzou',1),(1143,'AL17',1301,'',0,'','Wilaya d\'Alger',1),(1144,'AL18',1301,'',0,'','Wilaya de Djelfa',1),(1145,'AL19',1301,'',0,'','Wilaya de Jijel',1),(1146,'AL20',1301,'',0,'','Wilaya de Sétif	',1),(1147,'AL21',1301,'',0,'','Wilaya de Saïda',1),(1148,'AL22',1301,'',0,'','Wilaya de Skikda',1),(1149,'AL23',1301,'',0,'','Wilaya de Sidi Bel Abbès',1),(1150,'AL24',1301,'',0,'','Wilaya d\'Annaba',1),(1151,'AL25',1301,'',0,'','Wilaya de Guelma',1),(1152,'AL26',1301,'',0,'','Wilaya de Constantine',1),(1153,'AL27',1301,'',0,'','Wilaya de Médéa',1),(1154,'AL28',1301,'',0,'','Wilaya de Mostaganem',1),(1155,'AL29',1301,'',0,'','Wilaya de M\'Sila',1),(1156,'AL30',1301,'',0,'','Wilaya de Mascara',1),(1157,'AL31',1301,'',0,'','Wilaya d\'Ouargla',1),(1158,'AL32',1301,'',0,'','Wilaya d\'Oran',1),(1159,'AL33',1301,'',0,'','Wilaya d\'El Bayadh',1),(1160,'AL34',1301,'',0,'','Wilaya d\'Illizi',1),(1161,'AL35',1301,'',0,'','Wilaya de Bordj Bou Arreridj',1),(1162,'AL36',1301,'',0,'','Wilaya de Boumerdès',1),(1163,'AL37',1301,'',0,'','Wilaya d\'El Tarf',1),(1164,'AL38',1301,'',0,'','Wilaya de Tindouf',1),(1165,'AL39',1301,'',0,'','Wilaya de Tissemsilt',1),(1166,'AL40',1301,'',0,'','Wilaya d\'El Oued',1),(1167,'AL41',1301,'',0,'','Wilaya de Khenchela',1),(1168,'AL42',1301,'',0,'','Wilaya de Souk Ahras',1),(1169,'AL43',1301,'',0,'','Wilaya de Tipaza',1),(1170,'AL44',1301,'',0,'','Wilaya de Mila',1),(1171,'AL45',1301,'',0,'','Wilaya d\'Aïn Defla',1),(1172,'AL46',1301,'',0,'','Wilaya de Naâma',1),(1173,'AL47',1301,'',0,'','Wilaya d\'Aïn Témouchent',1),(1174,'AL48',1301,'',0,'','Wilaya de Ghardaia',1),(1175,'AL49',1301,'',0,'','Wilaya de Relizane',1),(1176,'MA',1209,'',0,'','Province de Benslimane',1),(1177,'MA1',1209,'',0,'','Province de Berrechid',1),(1178,'MA2',1209,'',0,'','Province de Khouribga',1),(1179,'MA3',1209,'',0,'','Province de Settat',1),(1180,'MA4',1210,'',0,'','Province d\'El Jadida',1),(1181,'MA5',1210,'',0,'','Province de Safi',1),(1182,'MA6',1210,'',0,'','Province de Sidi Bennour',1),(1183,'MA7',1210,'',0,'','Province de Youssoufia',1),(1184,'MA6B',1205,'',0,'','Préfecture de Fès',1),(1185,'MA7B',1205,'',0,'','Province de Boulemane',1),(1186,'MA8',1205,'',0,'','Province de Moulay Yacoub',1),(1187,'MA9',1205,'',0,'','Province de Sefrou',1),(1188,'MA8A',1202,'',0,'','Province de Kénitra',1),(1189,'MA9A',1202,'',0,'','Province de Sidi Kacem',1),(1190,'MA10',1202,'',0,'','Province de Sidi Slimane',1),(1191,'MA11',1208,'',0,'','Préfecture de Casablanca',1),(1192,'MA12',1208,'',0,'','Préfecture de Mohammédia',1),(1193,'MA13',1208,'',0,'','Province de Médiouna',1),(1194,'MA14',1208,'',0,'','Province de Nouaceur',1),(1195,'MA15',1214,'',0,'','Province d\'Assa-Zag',1),(1196,'MA16',1214,'',0,'','Province d\'Es-Semara',1),(1197,'MA17A',1214,'',0,'','Province de Guelmim',1),(1198,'MA18',1214,'',0,'','Province de Tata',1),(1199,'MA19',1214,'',0,'','Province de Tan-Tan',1),(1200,'MA15',1215,'',0,'','Province de Boujdour',1),(1201,'MA16',1215,'',0,'','Province de Lâayoune',1),(1202,'MA17',1215,'',0,'','Province de Tarfaya',1),(1203,'MA18',1211,'',0,'','Préfecture de Marrakech',1),(1204,'MA19',1211,'',0,'','Province d\'Al Haouz',1),(1205,'MA20',1211,'',0,'','Province de Chichaoua',1),(1206,'MA21',1211,'',0,'','Province d\'El Kelâa des Sraghna',1),(1207,'MA22',1211,'',0,'','Province d\'Essaouira',1),(1208,'MA23',1211,'',0,'','Province de Rehamna',1),(1209,'MA24',1206,'',0,'','Préfecture de Meknès',1),(1210,'MA25',1206,'',0,'','Province d’El Hajeb',1),(1211,'MA26',1206,'',0,'','Province d\'Errachidia',1),(1212,'MA27',1206,'',0,'','Province d’Ifrane',1),(1213,'MA28',1206,'',0,'','Province de Khénifra',1),(1214,'MA29',1206,'',0,'','Province de Midelt',1),(1215,'MA30',1204,'',0,'','Préfecture d\'Oujda-Angad',1),(1216,'MA31',1204,'',0,'','Province de Berkane',1),(1217,'MA32',1204,'',0,'','Province de Driouch',1),(1218,'MA33',1204,'',0,'','Province de Figuig',1),(1219,'MA34',1204,'',0,'','Province de Jerada',1),(1220,'MA35',1204,'',0,'','Province de Nadorgg',1),(1221,'MA36',1204,'',0,'','Province de Taourirt',1),(1222,'MA37',1216,'',0,'','Province d\'Aousserd',1),(1223,'MA38',1216,'',0,'','Province d\'Oued Ed-Dahab',1),(1224,'MA39',1207,'',0,'','Préfecture de Rabat',1),(1225,'MA40',1207,'',0,'','Préfecture de Skhirat-Témara',1),(1226,'MA41',1207,'',0,'','Préfecture de Salé',1),(1227,'MA42',1207,'',0,'','Province de Khémisset',1),(1228,'MA43',1213,'',0,'','Préfecture d\'Agadir Ida-Outanane',1),(1229,'MA44',1213,'',0,'','Préfecture d\'Inezgane-Aït Melloul',1),(1230,'MA45',1213,'',0,'','Province de Chtouka-Aït Baha',1),(1231,'MA46',1213,'',0,'','Province d\'Ouarzazate',1),(1232,'MA47',1213,'',0,'','Province de Sidi Ifni',1),(1233,'MA48',1213,'',0,'','Province de Taroudant',1),(1234,'MA49',1213,'',0,'','Province de Tinghir',1),(1235,'MA50',1213,'',0,'','Province de Tiznit',1),(1236,'MA51',1213,'',0,'','Province de Zagora',1),(1237,'MA52',1212,'',0,'','Province d\'Azilal',1),(1238,'MA53',1212,'',0,'','Province de Beni Mellal',1),(1239,'MA54',1212,'',0,'','Province de Fquih Ben Salah',1),(1240,'MA55',1201,'',0,'','Préfecture de M\'diq-Fnideq',1),(1241,'MA56',1201,'',0,'','Préfecture de Tanger-Asilah',1),(1242,'MA57',1201,'',0,'','Province de Chefchaouen',1),(1243,'MA58',1201,'',0,'','Province de Fahs-Anjra',1),(1244,'MA59',1201,'',0,'','Province de Larache',1),(1245,'MA60',1201,'',0,'','Province d\'Ouezzane',1),(1246,'MA61',1201,'',0,'','Province de Tétouan',1),(1247,'MA62',1203,'',0,'','Province de Guercif',1),(1248,'MA63',1203,'',0,'','Province d\'Al Hoceïma',1),(1249,'MA64',1203,'',0,'','Province de Taounate',1),(1250,'MA65',1203,'',0,'','Province de Taza',1),(1251,'MA6A',1205,'',0,'','Préfecture de Fès',1),(1252,'MA7A',1205,'',0,'','Province de Boulemane',1),(1253,'MA15A',1214,'',0,'','Province d\'Assa-Zag',1),(1254,'MA16A',1214,'',0,'','Province d\'Es-Semara',1),(1255,'MA18A',1211,'',0,'','Préfecture de Marrakech',1),(1256,'MA19A',1214,'',0,'','Province de Tan-Tan',1),(1257,'MA19B',1214,'',0,'','Province de Tan-Tan',1),(1258,'TN01',1001,'',0,'','Ariana',1),(1259,'TN02',1001,'',0,'','Béja',1),(1260,'TN03',1001,'',0,'','Ben Arous',1),(1261,'TN04',1001,'',0,'','Bizerte',1),(1262,'TN05',1001,'',0,'','Gabès',1),(1263,'TN06',1001,'',0,'','Gafsa',1),(1264,'TN07',1001,'',0,'','Jendouba',1),(1265,'TN08',1001,'',0,'','Kairouan',1),(1266,'TN09',1001,'',0,'','Kasserine',1),(1267,'TN10',1001,'',0,'','Kébili',1),(1268,'TN11',1001,'',0,'','La Manouba',1),(1269,'TN12',1001,'',0,'','Le Kef',1),(1270,'TN13',1001,'',0,'','Mahdia',1),(1271,'TN14',1001,'',0,'','Médenine',1),(1272,'TN15',1001,'',0,'','Monastir',1),(1273,'TN16',1001,'',0,'','Nabeul',1),(1274,'TN17',1001,'',0,'','Sfax',1),(1275,'TN18',1001,'',0,'','Sidi Bouzid',1),(1276,'TN19',1001,'',0,'','Siliana',1),(1277,'TN20',1001,'',0,'','Sousse',1),(1278,'TN21',1001,'',0,'','Tataouine',1),(1279,'TN22',1001,'',0,'','Tozeur',1),(1280,'TN23',1001,'',0,'','Tunis',1),(1281,'TN24',1001,'',0,'','Zaghouan',1),(1287,'976',6,'97601',3,'MAYOTTE','Mayotte',1),(1513,'ON',1401,'',1,'','Ontario',1),(1514,'QC',1401,'',1,'','Quebec',1),(1515,'NS',1401,'',1,'','Nova Scotia',1),(1516,'NB',1401,'',1,'','New Brunswick',1),(1517,'MB',1401,'',1,'','Manitoba',1),(1518,'BC',1401,'',1,'','British Columbia',1),(1519,'PE',1401,'',1,'','Prince Edward Island',1),(1520,'SK',1401,'',1,'','Saskatchewan',1),(1521,'AB',1401,'',1,'','Alberta',1),(1522,'NL',1401,'',1,'','Newfoundland and Labrador',1),(1575,'BW',501,NULL,NULL,'BADEN-WÜRTTEMBERG','Baden-Württemberg',1),(1576,'BY',501,NULL,NULL,'BAYERN','Bayern',1),(1577,'BE',501,NULL,NULL,'BERLIN','Berlin',1),(1578,'BB',501,NULL,NULL,'BRANDENBURG','Brandenburg',1),(1579,'HB',501,NULL,NULL,'BREMEN','Bremen',1),(1580,'HH',501,NULL,NULL,'HAMBURG','Hamburg',1),(1581,'HE',501,NULL,NULL,'HESSEN','Hessen',1),(1582,'MV',501,NULL,NULL,'MECKLENBURG-VORPOMMERN','Mecklenburg-Vorpommern',1),(1583,'NI',501,NULL,NULL,'NIEDERSACHSEN','Niedersachsen',1),(1584,'NW',501,NULL,NULL,'NORDRHEIN-WESTFALEN','Nordrhein-Westfalen',1),(1585,'RP',501,NULL,NULL,'RHEINLAND-PFALZ','Rheinland-Pfalz',1),(1586,'SL',501,NULL,NULL,'SAARLAND','Saarland',1),(1587,'SN',501,NULL,NULL,'SACHSEN','Sachsen',1),(1588,'ST',501,NULL,NULL,'SACHSEN-ANHALT','Sachsen-Anhalt',1),(1589,'SH',501,NULL,NULL,'SCHLESWIG-HOLSTEIN','Schleswig-Holstein',1),(1590,'TH',501,NULL,NULL,'THÜRINGEN','Thüringen',1),(1592,'67',10205,'',0,'','Δράμα',1),(1684,'701',701,NULL,0,NULL,'Bedfordshire',1),(1685,'702',701,NULL,0,NULL,'Berkshire',1),(1686,'703',701,NULL,0,NULL,'Bristol, City of',1),(1687,'704',701,NULL,0,NULL,'Buckinghamshire',1),(1688,'705',701,NULL,0,NULL,'Cambridgeshire',1),(1689,'706',701,NULL,0,NULL,'Cheshire',1),(1690,'707',701,NULL,0,NULL,'Cleveland',1),(1691,'708',701,NULL,0,NULL,'Cornwall',1),(1692,'709',701,NULL,0,NULL,'Cumberland',1),(1693,'710',701,NULL,0,NULL,'Cumbria',1),(1694,'711',701,NULL,0,NULL,'Derbyshire',1),(1695,'712',701,NULL,0,NULL,'Devon',1),(1696,'713',701,NULL,0,NULL,'Dorset',1),(1697,'714',701,NULL,0,NULL,'Co. Durham',1),(1698,'715',701,NULL,0,NULL,'East Riding of Yorkshire',1),(1699,'716',701,NULL,0,NULL,'East Sussex',1),(1700,'717',701,NULL,0,NULL,'Essex',1),(1701,'718',701,NULL,0,NULL,'Gloucestershire',1),(1702,'719',701,NULL,0,NULL,'Greater Manchester',1),(1703,'720',701,NULL,0,NULL,'Hampshire',1),(1704,'721',701,NULL,0,NULL,'Hertfordshire',1),(1705,'722',701,NULL,0,NULL,'Hereford and Worcester',1),(1706,'723',701,NULL,0,NULL,'Herefordshire',1),(1707,'724',701,NULL,0,NULL,'Huntingdonshire',1),(1708,'725',701,NULL,0,NULL,'Isle of Man',1),(1709,'726',701,NULL,0,NULL,'Isle of Wight',1),(1710,'727',701,NULL,0,NULL,'Jersey',1),(1711,'728',701,NULL,0,NULL,'Kent',1),(1712,'729',701,NULL,0,NULL,'Lancashire',1),(1713,'730',701,NULL,0,NULL,'Leicestershire',1),(1714,'731',701,NULL,0,NULL,'Lincolnshire',1),(1715,'732',701,NULL,0,NULL,'London - City of London',1),(1716,'733',701,NULL,0,NULL,'Merseyside',1),(1717,'734',701,NULL,0,NULL,'Middlesex',1),(1718,'735',701,NULL,0,NULL,'Norfolk',1),(1719,'736',701,NULL,0,NULL,'North Yorkshire',1),(1720,'737',701,NULL,0,NULL,'North Riding of Yorkshire',1),(1721,'738',701,NULL,0,NULL,'Northamptonshire',1),(1722,'739',701,NULL,0,NULL,'Northumberland',1),(1723,'740',701,NULL,0,NULL,'Nottinghamshire',1),(1724,'741',701,NULL,0,NULL,'Oxfordshire',1),(1725,'742',701,NULL,0,NULL,'Rutland',1),(1726,'743',701,NULL,0,NULL,'Shropshire',1),(1727,'744',701,NULL,0,NULL,'Somerset',1),(1728,'745',701,NULL,0,NULL,'Staffordshire',1),(1729,'746',701,NULL,0,NULL,'Suffolk',1),(1730,'747',701,NULL,0,NULL,'Surrey',1),(1731,'748',701,NULL,0,NULL,'Sussex',1),(1732,'749',701,NULL,0,NULL,'Tyne and Wear',1),(1733,'750',701,NULL,0,NULL,'Warwickshire',1),(1734,'751',701,NULL,0,NULL,'West Midlands',1),(1735,'752',701,NULL,0,NULL,'West Sussex',1),(1736,'753',701,NULL,0,NULL,'West Yorkshire',1),(1737,'754',701,NULL,0,NULL,'West Riding of Yorkshire',1),(1738,'755',701,NULL,0,NULL,'Wiltshire',1),(1739,'756',701,NULL,0,NULL,'Worcestershire',1),(1740,'757',701,NULL,0,NULL,'Yorkshire',1),(1741,'758',702,NULL,0,NULL,'Anglesey',1),(1742,'759',702,NULL,0,NULL,'Breconshire',1),(1743,'760',702,NULL,0,NULL,'Caernarvonshire',1),(1744,'761',702,NULL,0,NULL,'Cardiganshire',1),(1745,'762',702,NULL,0,NULL,'Carmarthenshire',1),(1746,'763',702,NULL,0,NULL,'Ceredigion',1),(1747,'764',702,NULL,0,NULL,'Denbighshire',1),(1748,'765',702,NULL,0,NULL,'Flintshire',1),(1749,'766',702,NULL,0,NULL,'Glamorgan',1),(1750,'767',702,NULL,0,NULL,'Gwent',1),(1751,'768',702,NULL,0,NULL,'Gwynedd',1),(1752,'769',702,NULL,0,NULL,'Merionethshire',1),(1753,'770',702,NULL,0,NULL,'Monmouthshire',1),(1754,'771',702,NULL,0,NULL,'Mid Glamorgan',1),(1755,'772',702,NULL,0,NULL,'Montgomeryshire',1),(1756,'773',702,NULL,0,NULL,'Pembrokeshire',1),(1757,'774',702,NULL,0,NULL,'Powys',1),(1758,'775',702,NULL,0,NULL,'Radnorshire',1),(1759,'776',702,NULL,0,NULL,'South Glamorgan',1),(1760,'777',703,NULL,0,NULL,'Aberdeen, City of',1),(1761,'778',703,NULL,0,NULL,'Angus',1),(1762,'779',703,NULL,0,NULL,'Argyll',1),(1763,'780',703,NULL,0,NULL,'Ayrshire',1),(1764,'781',703,NULL,0,NULL,'Banffshire',1),(1765,'782',703,NULL,0,NULL,'Berwickshire',1),(1766,'783',703,NULL,0,NULL,'Bute',1),(1767,'784',703,NULL,0,NULL,'Caithness',1),(1768,'785',703,NULL,0,NULL,'Clackmannanshire',1),(1769,'786',703,NULL,0,NULL,'Dumfriesshire',1),(1770,'787',703,NULL,0,NULL,'Dumbartonshire',1),(1771,'788',703,NULL,0,NULL,'Dundee, City of',1),(1772,'789',703,NULL,0,NULL,'East Lothian',1),(1773,'790',703,NULL,0,NULL,'Fife',1),(1774,'791',703,NULL,0,NULL,'Inverness',1),(1775,'792',703,NULL,0,NULL,'Kincardineshire',1),(1776,'793',703,NULL,0,NULL,'Kinross-shire',1),(1777,'794',703,NULL,0,NULL,'Kirkcudbrightshire',1),(1778,'795',703,NULL,0,NULL,'Lanarkshire',1),(1779,'796',703,NULL,0,NULL,'Midlothian',1),(1780,'797',703,NULL,0,NULL,'Morayshire',1),(1781,'798',703,NULL,0,NULL,'Nairnshire',1),(1782,'799',703,NULL,0,NULL,'Orkney',1),(1783,'800',703,NULL,0,NULL,'Peebleshire',1),(1784,'801',703,NULL,0,NULL,'Perthshire',1),(1785,'802',703,NULL,0,NULL,'Renfrewshire',1),(1786,'803',703,NULL,0,NULL,'Ross & Cromarty',1),(1787,'804',703,NULL,0,NULL,'Roxburghshire',1),(1788,'805',703,NULL,0,NULL,'Selkirkshire',1),(1789,'806',703,NULL,0,NULL,'Shetland',1),(1790,'807',703,NULL,0,NULL,'Stirlingshire',1),(1791,'808',703,NULL,0,NULL,'Sutherland',1),(1792,'809',703,NULL,0,NULL,'West Lothian',1),(1793,'810',703,NULL,0,NULL,'Wigtownshire',1),(1794,'811',704,NULL,0,NULL,'Antrim',1),(1795,'812',704,NULL,0,NULL,'Armagh',1),(1796,'813',704,NULL,0,NULL,'Co. Down',1),(1797,'814',704,NULL,0,NULL,'Co. Fermanagh',1),(1798,'815',704,NULL,0,NULL,'Co. Londonderry',1),(1849,'GR',1701,NULL,NULL,NULL,'Groningen',1),(1850,'FR',1701,NULL,NULL,NULL,'Friesland',1),(1851,'DR',1701,NULL,NULL,NULL,'Drenthe',1),(1852,'OV',1701,NULL,NULL,NULL,'Overijssel',1),(1853,'GD',1701,NULL,NULL,NULL,'Gelderland',1),(1854,'FL',1701,NULL,NULL,NULL,'Flevoland',1),(1855,'UT',1701,NULL,NULL,NULL,'Utrecht',1),(1856,'NH',1701,NULL,NULL,NULL,'Noord-Holland',1),(1857,'ZH',1701,NULL,NULL,NULL,'Zuid-Holland',1),(1858,'ZL',1701,NULL,NULL,NULL,'Zeeland',1),(1859,'NB',1701,NULL,NULL,NULL,'Noord-Brabant',1),(1860,'LB',1701,NULL,NULL,NULL,'Limburg',1),(1900,'AC',5601,'ACRE',0,'AC','Acre',1),(1901,'AL',5601,'ALAGOAS',0,'AL','Alagoas',1),(1902,'AP',5601,'AMAPA',0,'AP','Amapá',1),(1903,'AM',5601,'AMAZONAS',0,'AM','Amazonas',1),(1904,'BA',5601,'BAHIA',0,'BA','Bahia',1),(1905,'CE',5601,'CEARA',0,'CE','Ceará',1),(1906,'ES',5601,'ESPIRITO SANTO',0,'ES','Espirito Santo',1),(1907,'GO',5601,'GOIAS',0,'GO','Goiás',1),(1908,'MA',5601,'MARANHAO',0,'MA','Maranhão',1),(1909,'MT',5601,'MATO GROSSO',0,'MT','Mato Grosso',1),(1910,'MS',5601,'MATO GROSSO DO SUL',0,'MS','Mato Grosso do Sul',1),(1911,'MG',5601,'MINAS GERAIS',0,'MG','Minas Gerais',1),(1912,'PA',5601,'PARA',0,'PA','Pará',1),(1913,'PB',5601,'PARAIBA',0,'PB','Paraiba',1),(1914,'PR',5601,'PARANA',0,'PR','Paraná',1),(1915,'PE',5601,'PERNAMBUCO',0,'PE','Pernambuco',1),(1916,'PI',5601,'PIAUI',0,'PI','Piauí',1),(1917,'RJ',5601,'RIO DE JANEIRO',0,'RJ','Rio de Janeiro',1),(1918,'RN',5601,'RIO GRANDE DO NORTE',0,'RN','Rio Grande do Norte',1),(1919,'RS',5601,'RIO GRANDE DO SUL',0,'RS','Rio Grande do Sul',1),(1920,'RO',5601,'RONDONIA',0,'RO','Rondônia',1),(1921,'RR',5601,'RORAIMA',0,'RR','Roraima',1),(1922,'SC',5601,'SANTA CATARINA',0,'SC','Santa Catarina',1),(1923,'SE',5601,'SERGIPE',0,'SE','Sergipe',1),(1924,'SP',5601,'SAO PAULO',0,'SP','Sao Paulo',1),(1925,'TO',5601,'TOCANTINS',0,'TO','Tocantins',1),(1926,'DF',5601,'DISTRITO FEDERAL',0,'DF','Distrito Federal',1),(1927,'001',5201,'',0,'','Belisario Boeto',1),(1928,'002',5201,'',0,'','Hernando Siles',1),(1929,'003',5201,'',0,'','Jaime Zudáñez',1),(1930,'004',5201,'',0,'','Juana Azurduy de Padilla',1),(1931,'005',5201,'',0,'','Luis Calvo',1),(1932,'006',5201,'',0,'','Nor Cinti',1),(1933,'007',5201,'',0,'','Oropeza',1),(1934,'008',5201,'',0,'','Sud Cinti',1),(1935,'009',5201,'',0,'','Tomina',1),(1936,'010',5201,'',0,'','Yamparáez',1),(1937,'011',5202,'',0,'','Abel Iturralde',1),(1938,'012',5202,'',0,'','Aroma',1),(1939,'013',5202,'',0,'','Bautista Saavedra',1),(1940,'014',5202,'',0,'','Caranavi',1),(1941,'015',5202,'',0,'','Eliodoro Camacho',1),(1942,'016',5202,'',0,'','Franz Tamayo',1),(1943,'017',5202,'',0,'','Gualberto Villarroel',1),(1944,'018',5202,'',0,'','Ingaví',1),(1945,'019',5202,'',0,'','Inquisivi',1),(1946,'020',5202,'',0,'','José Ramón Loayza',1),(1947,'021',5202,'',0,'','Larecaja',1),(1948,'022',5202,'',0,'','Los Andes (Bolivia)',1),(1949,'023',5202,'',0,'','Manco Kapac',1),(1950,'024',5202,'',0,'','Muñecas',1),(1951,'025',5202,'',0,'','Nor Yungas',1),(1952,'026',5202,'',0,'','Omasuyos',1),(1953,'027',5202,'',0,'','Pacajes',1),(1954,'028',5202,'',0,'','Pedro Domingo Murillo',1),(1955,'029',5202,'',0,'','Sud Yungas',1),(1956,'030',5202,'',0,'','General José Manuel Pando',1),(1957,'031',5203,'',0,'','Arani',1),(1958,'032',5203,'',0,'','Arque',1),(1959,'033',5203,'',0,'','Ayopaya',1),(1960,'034',5203,'',0,'','Bolívar (Bolivia)',1),(1961,'035',5203,'',0,'','Campero',1),(1962,'036',5203,'',0,'','Capinota',1),(1963,'037',5203,'',0,'','Cercado (Cochabamba)',1),(1964,'038',5203,'',0,'','Esteban Arze',1),(1965,'039',5203,'',0,'','Germán Jordán',1),(1966,'040',5203,'',0,'','José Carrasco',1),(1967,'041',5203,'',0,'','Mizque',1),(1968,'042',5203,'',0,'','Punata',1),(1969,'043',5203,'',0,'','Quillacollo',1),(1970,'044',5203,'',0,'','Tapacarí',1),(1971,'045',5203,'',0,'','Tiraque',1),(1972,'046',5203,'',0,'','Chapare',1),(1973,'047',5204,'',0,'','Carangas',1),(1974,'048',5204,'',0,'','Cercado (Oruro)',1),(1975,'049',5204,'',0,'','Eduardo Avaroa',1),(1976,'050',5204,'',0,'','Ladislao Cabrera',1),(1977,'051',5204,'',0,'','Litoral de Atacama',1),(1978,'052',5204,'',0,'','Mejillones',1),(1979,'053',5204,'',0,'','Nor Carangas',1),(1980,'054',5204,'',0,'','Pantaleón Dalence',1),(1981,'055',5204,'',0,'','Poopó',1),(1982,'056',5204,'',0,'','Sabaya',1),(1983,'057',5204,'',0,'','Sajama',1),(1984,'058',5204,'',0,'','San Pedro de Totora',1),(1985,'059',5204,'',0,'','Saucarí',1),(1986,'060',5204,'',0,'','Sebastián Pagador',1),(1987,'061',5204,'',0,'','Sud Carangas',1),(1988,'062',5204,'',0,'','Tomás Barrón',1),(1989,'063',5205,'',0,'','Alonso de Ibáñez',1),(1990,'064',5205,'',0,'','Antonio Quijarro',1),(1991,'065',5205,'',0,'','Bernardino Bilbao',1),(1992,'066',5205,'',0,'','Charcas (Potosí)',1),(1993,'067',5205,'',0,'','Chayanta',1),(1994,'068',5205,'',0,'','Cornelio Saavedra',1),(1995,'069',5205,'',0,'','Daniel Campos',1),(1996,'070',5205,'',0,'','Enrique Baldivieso',1),(1997,'071',5205,'',0,'','José María Linares',1),(1998,'072',5205,'',0,'','Modesto Omiste',1),(1999,'073',5205,'',0,'','Nor Chichas',1),(2000,'074',5205,'',0,'','Nor Lípez',1),(2001,'075',5205,'',0,'','Rafael Bustillo',1),(2002,'076',5205,'',0,'','Sud Chichas',1),(2003,'077',5205,'',0,'','Sud Lípez',1),(2004,'078',5205,'',0,'','Tomás Frías',1),(2005,'079',5206,'',0,'','Aniceto Arce',1),(2006,'080',5206,'',0,'','Burdet O\'Connor',1),(2007,'081',5206,'',0,'','Cercado (Tarija)',1),(2008,'082',5206,'',0,'','Eustaquio Méndez',1),(2009,'083',5206,'',0,'','José María Avilés',1),(2010,'084',5206,'',0,'','Gran Chaco',1),(2011,'085',5207,'',0,'','Andrés Ibáñez',1),(2012,'086',5207,'',0,'','Caballero',1),(2013,'087',5207,'',0,'','Chiquitos',1),(2014,'088',5207,'',0,'','Cordillera (Bolivia)',1),(2015,'089',5207,'',0,'','Florida',1),(2016,'090',5207,'',0,'','Germán Busch',1),(2017,'091',5207,'',0,'','Guarayos',1),(2018,'092',5207,'',0,'','Ichilo',1),(2019,'093',5207,'',0,'','Obispo Santistevan',1),(2020,'094',5207,'',0,'','Sara',1),(2021,'095',5207,'',0,'','Vallegrande',1),(2022,'096',5207,'',0,'','Velasco',1),(2023,'097',5207,'',0,'','Warnes',1),(2024,'098',5207,'',0,'','Ángel Sandóval',1),(2025,'099',5207,'',0,'','Ñuflo de Chaves',1),(2026,'100',5208,'',0,'','Cercado (Beni)',1),(2027,'101',5208,'',0,'','Iténez',1),(2028,'102',5208,'',0,'','Mamoré',1),(2029,'103',5208,'',0,'','Marbán',1),(2030,'104',5208,'',0,'','Moxos',1),(2031,'105',5208,'',0,'','Vaca Díez',1),(2032,'106',5208,'',0,'','Yacuma',1),(2033,'107',5208,'',0,'','General José Ballivián Segurola',1),(2034,'108',5209,'',0,'','Abuná',1),(2035,'109',5209,'',0,'','Madre de Dios',1),(2036,'110',5209,'',0,'','Manuripi',1),(2037,'111',5209,'',0,'','Nicolás Suárez',1),(2038,'112',5209,'',0,'','General Federico Román',1),(2039,'B',4101,NULL,NULL,'BURGENLAND','Burgenland',1),(2040,'K',4101,NULL,NULL,'KAERNTEN','Kärnten',1),(2041,'N',4101,NULL,NULL,'NIEDEROESTERREICH','Niederösterreich',1),(2042,'O',4101,NULL,NULL,'OBEROESTERREICH','Oberösterreich',1),(2043,'S',4101,NULL,NULL,'SALZBURG','Salzburg',1),(2044,'ST',4101,NULL,NULL,'STEIERMARK','Steiermark',1),(2045,'T',4101,NULL,NULL,'TIROL','Tirol',1),(2046,'V',4101,NULL,NULL,'VORARLBERG','Vorarlberg',1),(2047,'W',4101,NULL,NULL,'WIEN','Wien',1),(2048,'2326',2305,'',0,'MISIONES','Misiones',1),(2049,'PA-1',17801,'',0,'','Bocas del Toro',1),(2050,'PA-2',17801,'',0,'','Coclé',1),(2051,'PA-3',17801,'',0,'','Colón',1),(2052,'PA-4',17801,'',0,'','Chiriquí',1),(2053,'PA-5',17801,'',0,'','Darién',1),(2054,'PA-6',17801,'',0,'','Herrera',1),(2055,'PA-7',17801,'',0,'','Los Santos',1),(2056,'PA-8',17801,'',0,'','Panamá',1),(2057,'PA-9',17801,'',0,'','Veraguas',1),(2058,'PA-13',17801,'',0,'','Panamá Oeste',1),(2059,'AE-1',22701,'',0,'','Abu Dhabi',1),(2060,'AE-2',22701,'',0,'','Dubai',1),(2061,'AE-3',22701,'',0,'','Ajman',1),(2062,'AE-4',22701,'',0,'','Fujairah',1),(2063,'AE-5',22701,'',0,'','Ras al-Khaimah',1),(2064,'AE-6',22701,'',0,'','Sharjah',1),(2065,'AE-7',22701,'',0,'','Umm al-Quwain',1),(2066,'BA',11801,NULL,0,'BA','Bali',1),(2067,'BB',11801,NULL,0,'BB','Bangka Belitung',1),(2068,'BT',11801,NULL,0,'BT','Banten',1),(2069,'BE',11801,NULL,0,'BA','Bengkulu',1),(2070,'YO',11801,NULL,0,'YO','DI Yogyakarta',1),(2071,'JK',11801,NULL,0,'JK','DKI Jakarta',1),(2072,'GO',11801,NULL,0,'GO','Gorontalo',1),(2073,'JA',11801,NULL,0,'JA','Jambi',1),(2074,'JB',11801,NULL,0,'JB','Jawa Barat',1),(2075,'JT',11801,NULL,0,'JT','Jawa Tengah',1),(2076,'JI',11801,NULL,0,'JI','Jawa Timur',1),(2077,'KB',11801,NULL,0,'KB','Kalimantan Barat',1),(2078,'KS',11801,NULL,0,'KS','Kalimantan Selatan',1),(2079,'KT',11801,NULL,0,'KT','Kalimantan Tengah',1),(2080,'KI',11801,NULL,0,'KI','Kalimantan Timur',1),(2081,'KU',11801,NULL,0,'KU','Kalimantan Utara',1),(2082,'KR',11801,NULL,0,'KR','Kepulauan Riau',1),(2083,'LA',11801,NULL,0,'LA','Lampung',1),(2084,'MA',11801,NULL,0,'MA','Maluku',1),(2085,'MU',11801,NULL,0,'MU','Maluku Utara',1),(2086,'AC',11801,NULL,0,'AC','Nanggroe Aceh Darussalam',1),(2087,'NB',11801,NULL,0,'NB','Nusa Tenggara Barat',1),(2088,'NT',11801,NULL,0,'NT','Nusa Tenggara Timur',1),(2089,'PA',11801,NULL,0,'PA','Papua',1),(2090,'PB',11801,NULL,0,'PB','Papua Barat',1),(2091,'RI',11801,NULL,0,'RI','Riau',1),(2092,'SR',11801,NULL,0,'SR','Sulawesi Barat',1),(2093,'SN',11801,NULL,0,'SN','Sulawesi Selatan',1),(2094,'ST',11801,NULL,0,'ST','Sulawesi Tengah',1),(2095,'SG',11801,NULL,0,'SG','Sulawesi Tenggara',1),(2096,'SA',11801,NULL,0,'SA','Sulawesi Utara',1),(2097,'SB',11801,NULL,0,'SB','Sumatera Barat',1),(2098,'SS',11801,NULL,0,'SS','Sumatera Selatan',1),(2099,'SU',11801,NULL,0,'SU','Sumatera Utara	',1);
    +/*!40000 ALTER TABLE `llx_c_departements` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ecotaxe`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ecotaxe`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ecotaxe` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `price` double(24,8) DEFAULT NULL,
    +  `organization` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_pays` int(11) NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_ecotaxe` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ecotaxe`
    +--
    +
    +LOCK TABLES `llx_c_ecotaxe` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ecotaxe` DISABLE KEYS */;
    +INSERT INTO `llx_c_ecotaxe` VALUES (1,'ER-A-A','Materiels electriques < 0,2kg',0.01000000,'ERP',1,1),(2,'ER-A-B','Materiels electriques >= 0,2 kg et < 0,5 kg',0.03000000,'ERP',1,1),(3,'ER-A-C','Materiels electriques >= 0,5 kg et < 1 kg',0.04000000,'ERP',1,1),(4,'ER-A-D','Materiels electriques >= 1 kg et < 2 kg',0.13000000,'ERP',1,1),(5,'ER-A-E','Materiels electriques >= 2 kg et < 4kg',0.21000000,'ERP',1,1),(6,'ER-A-F','Materiels electriques >= 4 kg et < 8 kg',0.42000000,'ERP',1,1),(7,'ER-A-G','Materiels electriques >= 8 kg et < 15 kg',0.84000000,'ERP',1,1),(8,'ER-A-H','Materiels electriques >= 15 kg et < 20 kg',1.25000000,'ERP',1,1),(9,'ER-A-I','Materiels electriques >= 20 kg et < 30 kg',1.88000000,'ERP',1,1),(10,'ER-A-J','Materiels electriques >= 30 kg',3.34000000,'ERP',1,1),(11,'ER-M-1','TV, Moniteurs < 9kg',0.84000000,'ERP',1,1),(12,'ER-M-2','TV, Moniteurs >= 9kg et < 15kg',1.67000000,'ERP',1,1),(13,'ER-M-3','TV, Moniteurs >= 15kg et < 30kg',3.34000000,'ERP',1,1),(14,'ER-M-4','TV, Moniteurs >= 30 kg',6.69000000,'ERP',1,1),(15,'EC-A-A','Materiels electriques  0,2 kg max',0.00840000,'Ecologic',1,1),(16,'EC-A-B','Materiels electriques 0,21 kg min - 0,50 kg max',0.02500000,'Ecologic',1,1),(17,'EC-A-C','Materiels electriques  0,51 kg min - 1 kg max',0.04000000,'Ecologic',1,1),(18,'EC-A-D','Materiels electriques  1,01 kg min - 2,5 kg max',0.13000000,'Ecologic',1,1),(19,'EC-A-E','Materiels electriques  2,51 kg min - 4 kg max',0.21000000,'Ecologic',1,1),(20,'EC-A-F','Materiels electriques 4,01 kg min - 8 kg max',0.42000000,'Ecologic',1,1),(21,'EC-A-G','Materiels electriques  8,01 kg min - 12 kg max',0.63000000,'Ecologic',1,1),(22,'EC-A-H','Materiels electriques 12,01 kg min - 20 kg max',1.05000000,'Ecologic',1,1),(23,'EC-A-I','Materiels electriques  20,01 kg min',1.88000000,'Ecologic',1,1),(24,'EC-M-1','TV, Moniteurs 9 kg max',0.84000000,'Ecologic',1,1),(25,'EC-M-2','TV, Moniteurs 9,01 kg min - 18 kg max',1.67000000,'Ecologic',1,1),(26,'EC-M-3','TV, Moniteurs 18,01 kg min - 36 kg max',3.34000000,'Ecologic',1,1),(27,'EC-M-4','TV, Moniteurs 36,01 kg min',6.69000000,'Ecologic',1,1),(28,'ES-M-1','TV, Moniteurs <= 20 pouces',0.84000000,'Eco-systemes',1,1),(29,'ES-M-2','TV, Moniteurs > 20 pouces et <= 32 pouces',3.34000000,'Eco-systemes',1,1),(30,'ES-M-3','TV, Moniteurs > 32 pouces et autres grands ecrans',6.69000000,'Eco-systemes',1,1),(31,'ES-A-A','Ordinateur fixe, Audio home systems (HIFI), elements hifi separes',0.84000000,'Eco-systemes',1,1),(32,'ES-A-B','Ordinateur portable, CD-RCR, VCR, lecteurs et enregistreurs DVD, instruments de musique et caisses de resonance, haut parleurs...',0.25000000,'Eco-systemes',1,1),(33,'ES-A-C','Imprimante, photocopieur, telecopieur',0.42000000,'Eco-systemes',1,1),(34,'ES-A-D','Accessoires, clavier, souris, PDA, imprimante photo, appareil photo, gps, telephone, repondeur, telephone sans fil, modem, telecommande, casque, camescope, baladeur mp3, radio portable, radio K7 et CD portable, radio reveil',0.08400000,'Eco-systemes',1,1),(35,'ES-A-E','GSM',0.00840000,'Eco-systemes',1,1),(36,'ES-A-F','Jouets et equipements de loisirs et de sports < 0,5 kg',0.04200000,'Eco-systemes',1,1),(37,'ES-A-G','Jouets et equipements de loisirs et de sports > 0,5 kg',0.17000000,'Eco-systemes',1,1),(38,'ES-A-H','Jouets et equipements de loisirs et de sports > 10 kg',1.25000000,'Eco-systemes',1,1);
    +/*!40000 ALTER TABLE `llx_c_ecotaxe` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_effectif`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_effectif`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_effectif` (
    +  `id` int(11) NOT NULL,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_effectif` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_effectif`
    +--
    +
    +LOCK TABLES `llx_c_effectif` WRITE;
    +/*!40000 ALTER TABLE `llx_c_effectif` DISABLE KEYS */;
    +INSERT INTO `llx_c_effectif` VALUES (0,'EF0','-',1,NULL),(1,'EF1-5','1 - 5',1,NULL),(2,'EF6-10','6 - 10',1,NULL),(3,'EF11-50','11 - 50',1,NULL),(4,'EF51-100','51 - 100',1,NULL),(5,'EF100-500','100 - 500',1,NULL),(6,'EF500-','> 500',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_effectif` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_email_senderprofile`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_email_senderprofile`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_email_senderprofile` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `private` smallint(6) NOT NULL DEFAULT '0',
    +  `date_creation` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `signature` text COLLATE utf8_unicode_ci,
    +  `position` smallint(6) DEFAULT '0',
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_email_senderprofile` (`entity`,`label`,`email`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_email_senderprofile`
    +--
    +
    +LOCK TABLES `llx_c_email_senderprofile` WRITE;
    +/*!40000 ALTER TABLE `llx_c_email_senderprofile` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_c_email_senderprofile` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_email_templates`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_email_templates`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_email_templates` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type_template` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `private` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` smallint(6) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `topic` text COLLATE utf8_unicode_ci,
    +  `content` mediumtext COLLATE utf8_unicode_ci,
    +  `content_lines` text COLLATE utf8_unicode_ci,
    +  `enabled` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  `joinfiles` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_email_templates` (`entity`,`label`,`lang`),
    +  KEY `idx_type` (`type_template`)
    +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_email_templates`
    +--
    +
    +LOCK TABLES `llx_c_email_templates` WRITE;
    +/*!40000 ALTER TABLE `llx_c_email_templates` DISABLE KEYS */;
    +INSERT INTO `llx_c_email_templates` VALUES (1,1,NULL,'propal_send','',1,NULL,NULL,'2018-01-19 11:17:48','ggg',1,1,'gg','gggfff',NULL,'1','1'),(2,0,'adherent','member','',0,NULL,NULL,'2018-01-19 11:17:48','(SendAnEMailToMember)',1,1,'__(CardContent)__','__(Hello)__,<br><br>\n\n__(ThisIsContentOfYourCard)__<br>\n__(ID)__ : __ID__<br>\n__(Civiliyty)__ : __MEMBER_CIVILITY__<br>\n__(Firstname)__ : __MEMBER_FIRSTNAME__<br>\n__(Lastname)__ : __MEMBER_LASTNAME__<br>\n__(Fullname)__ : __MEMBER_FULLNAME__<br>\n__(Company)__ : __MEMBER_COMPANY__<br>\n__(Address)__ : __MEMBER_ADDRESS__<br>\n__(Zip)__ : __MEMBER_ZIP__<br>\n__(Town)__ : __MEMBER_TOWN__<br>\n__(Country)__ : __MEMBER_COUNTRY__<br>\n__(Email)__ : __MEMBER_EMAIL__<br>\n__(Birthday)__ : __MEMBER_BIRTH__<br>\n__(Photo)__ : __MEMBER_PHOTO__<br>\n__(Login)__ : __MEMBER_LOGIN__<br>\n__(Password)__ : __MEMBER_PASSWORD__<br>\n__(Phone)__ : __MEMBER_PHONE__<br>\n__(PhonePerso)__ : __MEMBER_PHONEPRO__<br>\n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','1'),(3,0,'banque','thirdparty','',0,NULL,NULL,'2018-01-19 11:17:48','(YourSEPAMandate)',1,0,'__(YourSEPAMandate)__','__(Hello)__,<br><br>\n\n__(FindYourSEPAMandate)__ :<br>\n__MYCOMPANY_NAME__<br>\n__MYCOMPANY_FULLADDRESS__<br><br>\n__(Sincerely)__<br>\n__USER_SIGNATURE__',NULL,'1','1'),(6,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnAutoSubscription)',10,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipRequestWasReceived)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourMembershipRequestWasReceived)__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','0'),(7,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnMemberValidation)',20,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasValidated)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourMembershipWasValidated)__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','0'),(8,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnNewSubscription)',30,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourSubscriptionWasRecorded)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourSubscriptionWasRecorded)__<br>\n\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','1'),(9,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingReminderForExpiredSubscription)',40,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(SubscriptionReminderEmail)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfSubscriptionReminderEmail)__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','0'),(10,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingEmailOnCancelation)',50,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasCanceled)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(YourMembershipWasCanceled)__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','0'),(11,0,'adherent','member','',0,NULL,NULL,'2018-11-23 11:56:08','(SendingAnEMailToMember)',60,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(CardContent)__','__(Hello)__,<br><br>\n\n__(ThisIsContentOfYourCard)__<br>\n__(ID)__ : __ID__<br>\n__(Civiliyty)__ : __MEMBER_CIVILITY__<br>\n__(Firstname)__ : __MEMBER_FIRSTNAME__<br>\n__(Lastname)__ : __MEMBER_LASTNAME__<br>\n__(Fullname)__ : __MEMBER_FULLNAME__<br>\n__(Company)__ : __MEMBER_COMPANY__<br>\n__(Address)__ : __MEMBER_ADDRESS__<br>\n__(Zip)__ : __MEMBER_ZIP__<br>\n__(Town)__ : __MEMBER_TOWN__<br>\n__(Country)__ : __MEMBER_COUNTRY__<br>\n__(Email)__ : __MEMBER_EMAIL__<br>\n__(Birthday)__ : __MEMBER_BIRTH__<br>\n__(Photo)__ : __MEMBER_PHOTO__<br>\n__(Login)__ : __MEMBER_LOGIN__<br>\n__(Password)__ : __MEMBER_PASSWORD__<br>\n__(Phone)__ : __MEMBER_PHONE__<br>\n__(PhonePerso)__ : __MEMBER_PHONEPRO__<br>\n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',NULL,'1','0');
    +/*!40000 ALTER TABLE `llx_c_email_templates` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_exp_tax_cat`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_exp_tax_cat`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_exp_tax_cat` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(48) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `active` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_exp_tax_cat`
    +--
    +
    +LOCK TABLES `llx_c_exp_tax_cat` WRITE;
    +/*!40000 ALTER TABLE `llx_c_exp_tax_cat` DISABLE KEYS */;
    +INSERT INTO `llx_c_exp_tax_cat` VALUES (1,'ExpAutoCat',1,0),(2,'ExpCycloCat',1,0),(3,'ExpMotoCat',1,0),(4,'ExpAuto3CV',1,1),(5,'ExpAuto4CV',1,1),(6,'ExpAuto5CV',1,1),(7,'ExpAuto6CV',1,1),(8,'ExpAuto7CV',1,1),(9,'ExpAuto8CV',1,1),(10,'ExpAuto9CV',1,0),(11,'ExpAuto10CV',1,0),(12,'ExpAuto11CV',1,0),(13,'ExpAuto12CV',1,0),(14,'ExpAuto3PCV',1,0),(15,'ExpAuto4PCV',1,0),(16,'ExpAuto5PCV',1,0),(17,'ExpAuto6PCV',1,0),(18,'ExpAuto7PCV',1,0),(19,'ExpAuto8PCV',1,0),(20,'ExpAuto9PCV',1,0),(21,'ExpAuto10PCV',1,0),(22,'ExpAuto11PCV',1,0),(23,'ExpAuto12PCV',1,0),(24,'ExpAuto13PCV',1,0),(25,'ExpCyclo',1,0),(26,'ExpMoto12CV',1,0),(27,'ExpMoto345CV',1,0),(28,'ExpMoto5PCV',1,0);
    +/*!40000 ALTER TABLE `llx_c_exp_tax_cat` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_exp_tax_range`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_exp_tax_range`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_exp_tax_range` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_c_exp_tax_cat` int(11) NOT NULL DEFAULT '1',
    +  `range_ik` double NOT NULL DEFAULT '0',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `active` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_exp_tax_range`
    +--
    +
    +LOCK TABLES `llx_c_exp_tax_range` WRITE;
    +/*!40000 ALTER TABLE `llx_c_exp_tax_range` DISABLE KEYS */;
    +INSERT INTO `llx_c_exp_tax_range` VALUES (1,4,0,1,1),(2,4,5000,1,1),(3,4,20000,1,1),(4,5,0,1,1),(5,5,5000,1,1),(6,5,20000,1,1),(7,6,0,1,1),(8,6,5000,1,1),(9,6,20000,1,1),(10,7,0,1,1),(11,7,5000,1,1),(12,7,20000,1,1),(13,8,0,1,1),(14,8,5000,1,1),(15,8,20000,1,1);
    +/*!40000 ALTER TABLE `llx_c_exp_tax_range` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_field_list`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_field_list`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_field_list` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `element` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `name` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `alias` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `title` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `align` varchar(6) COLLATE utf8_unicode_ci DEFAULT 'left',
    +  `sort` tinyint(4) NOT NULL DEFAULT '1',
    +  `search` tinyint(4) NOT NULL DEFAULT '0',
    +  `visible` tinyint(4) NOT NULL DEFAULT '1',
    +  `enabled` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  `rang` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_field_list`
    +--
    +
    +LOCK TABLES `llx_c_field_list` WRITE;
    +/*!40000 ALTER TABLE `llx_c_field_list` DISABLE KEYS */;
    +INSERT INTO `llx_c_field_list` VALUES (1,'2011-02-06 11:18:30','product_default',1,'p.ref','ref','Ref','left',1,1,1,'1',1),(2,'2011-02-06 11:18:30','product_default',1,'p.label','label','Label','left',1,1,1,'1',2),(3,'2011-02-06 11:18:30','product_default',1,'p.barcode','barcode','BarCode','center',1,1,1,'$conf->barcode->enabled',3),(4,'2011-02-06 11:18:30','product_default',1,'p.tms','datem','DateModification','center',1,0,1,'1',4),(5,'2011-02-06 11:18:30','product_default',1,'p.price','price','SellingPriceHT','right',1,0,1,'1',5),(6,'2011-02-06 11:18:30','product_default',1,'p.price_ttc','price_ttc','SellingPriceTTC','right',1,0,1,'1',6),(7,'2011-02-06 11:18:30','product_default',1,'p.stock','stock','Stock','right',0,0,1,'$conf->stock->enabled',7),(8,'2011-02-06 11:18:30','product_default',1,'p.envente','status','Status','right',1,0,1,'1',8);
    +/*!40000 ALTER TABLE `llx_c_field_list` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_format_cards`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_format_cards`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_format_cards` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `paper_size` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `orientation` varchar(1) COLLATE utf8_unicode_ci NOT NULL,
    +  `metric` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
    +  `leftmargin` double(24,8) NOT NULL,
    +  `topmargin` double(24,8) NOT NULL,
    +  `nx` int(11) NOT NULL,
    +  `ny` int(11) NOT NULL,
    +  `spacex` double(24,8) NOT NULL,
    +  `spacey` double(24,8) NOT NULL,
    +  `width` double(24,8) NOT NULL,
    +  `height` double(24,8) NOT NULL,
    +  `font_size` int(11) NOT NULL,
    +  `custom_x` double(24,8) NOT NULL,
    +  `custom_y` double(24,8) NOT NULL,
    +  `active` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_format_cards`
    +--
    +
    +LOCK TABLES `llx_c_format_cards` WRITE;
    +/*!40000 ALTER TABLE `llx_c_format_cards` DISABLE KEYS */;
    +INSERT INTO `llx_c_format_cards` VALUES (1,'5160','Avery-5160, WL-875WX','letter','P','mm',5.58165000,12.70000000,3,10,3.55600000,0.00000000,65.87490000,25.40000000,7,0.00000000,0.00000000,1),(2,'5161','Avery-5161, WL-75WX','letter','P','mm',4.44500000,12.70000000,2,10,3.96800000,0.00000000,101.60000000,25.40000000,7,0.00000000,0.00000000,1),(3,'5162','Avery-5162, WL-100WX','letter','P','mm',3.87350000,22.35200000,2,7,4.95400000,0.00000000,101.60000000,33.78100000,8,0.00000000,0.00000000,1),(4,'5163','Avery-5163, WL-125WX','letter','P','mm',4.57200000,12.70000000,2,5,3.55600000,0.00000000,101.60000000,50.80000000,10,0.00000000,0.00000000,1),(5,'5164','5164 (Letter)','letter','P','in',0.14800000,0.50000000,2,3,0.20310000,0.00000000,4.00000000,3.33000000,12,0.00000000,0.00000000,0),(6,'8600','Avery-8600','letter','P','mm',7.10000000,19.00000000,3,10,9.50000000,3.10000000,66.60000000,25.40000000,7,0.00000000,0.00000000,1),(7,'99012','DYMO 99012 89*36mm','custom','L','mm',1.00000000,1.00000000,1,1,0.00000000,0.00000000,36.00000000,89.00000000,10,36.00000000,89.00000000,1),(8,'99014','DYMO 99014 101*54mm','custom','L','mm',1.00000000,1.00000000,1,1,0.00000000,0.00000000,54.00000000,101.00000000,10,54.00000000,101.00000000,1),(9,'AVERYC32010','Avery-C32010','A4','P','mm',15.00000000,13.00000000,2,5,10.00000000,0.00000000,85.00000000,54.00000000,10,0.00000000,0.00000000,1),(10,'CARD','Dolibarr Business cards','A4','P','mm',15.00000000,15.00000000,2,5,0.00000000,0.00000000,85.00000000,54.00000000,10,0.00000000,0.00000000,1),(11,'L7163','Avery-L7163','A4','P','mm',5.00000000,15.00000000,2,7,2.50000000,0.00000000,99.10000000,38.10000000,8,0.00000000,0.00000000,1);
    +/*!40000 ALTER TABLE `llx_c_format_cards` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_forme_juridique`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_forme_juridique`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_forme_juridique` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` int(11) NOT NULL,
    +  `fk_pays` int(11) NOT NULL,
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `isvatexempted` tinyint(4) NOT NULL DEFAULT '0',
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_forme_juridique` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=100230 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_forme_juridique`
    +--
    +
    +LOCK TABLES `llx_c_forme_juridique` WRITE;
    +/*!40000 ALTER TABLE `llx_c_forme_juridique` DISABLE KEYS */;
    +INSERT INTO `llx_c_forme_juridique` VALUES (100001,100001,1,'Etudiant',0,0,'cabinetmed',0),(100002,100002,1,'Retraité',0,0,'cabinetmed',0),(100003,100003,1,'Artisan',0,0,'cabinetmed',0),(100004,100004,1,'Femme de ménage',0,0,'cabinetmed',0),(100005,100005,1,'Professeur',0,0,'cabinetmed',0),(100006,100006,1,'Profession libérale',0,0,'cabinetmed',0),(100007,100007,1,'Informaticien',0,0,'cabinetmed',0),(100009,0,0,'-',0,1,NULL,0),(100010,2301,23,'Monotributista',0,1,NULL,0),(100011,2302,23,'Sociedad Civil',0,1,NULL,0),(100012,2303,23,'Sociedades Comerciales',0,1,NULL,0),(100013,2304,23,'Sociedades de Hecho',0,1,NULL,0),(100014,2305,23,'Sociedades Irregulares',0,1,NULL,0),(100015,2306,23,'Sociedad Colectiva',0,1,NULL,0),(100016,2307,23,'Sociedad en Comandita Simple',0,1,NULL,0),(100017,2308,23,'Sociedad de Capital e Industria',0,1,NULL,0),(100018,2309,23,'Sociedad Accidental o en participación',0,1,NULL,0),(100019,2310,23,'Sociedad de Responsabilidad Limitada',0,1,NULL,0),(100020,2311,23,'Sociedad Anónima',0,1,NULL,0),(100021,2312,23,'Sociedad Anónima con Participación Estatal Mayoritaria',0,1,NULL,0),(100022,2313,23,'Sociedad en Comandita por Acciones (arts. 315 a 324, LSC)',0,1,NULL,0),(100023,11,1,'Artisan Commerçant (EI)',0,1,NULL,0),(100024,12,1,'Commerçant (EI)',0,1,NULL,0),(100025,13,1,'Artisan (EI)',0,1,NULL,0),(100026,14,1,'Officier public ou ministériel',0,1,NULL,0),(100027,15,1,'Profession libérale (EI)',0,1,NULL,0),(100028,16,1,'Exploitant agricole',0,1,NULL,0),(100029,17,1,'Agent commercial',0,1,NULL,0),(100030,18,1,'Associé Gérant de société',0,1,NULL,0),(100031,19,1,'Personne physique',0,1,NULL,0),(100032,21,1,'Indivision',0,1,NULL,0),(100033,22,1,'Société créée de fait',0,1,NULL,0),(100034,23,1,'Société en participation',0,1,NULL,0),(100035,27,1,'Paroisse hors zone concordataire',0,1,NULL,0),(100036,29,1,'Groupement de droit privé non doté de la personnalité morale',0,1,NULL,0),(100037,31,1,'Personne morale de droit étranger, immatriculée au RCS',0,1,NULL,0),(100038,32,1,'Personne morale de droit étranger, non immatriculée au RCS',0,1,NULL,0),(100039,35,1,'Régime auto-entrepreneur',0,1,NULL,0),(100040,41,1,'Etablissement public ou régie à caractère industriel ou commercial',0,1,NULL,0),(100041,51,1,'Société coopérative commerciale particulière',0,1,NULL,0),(100042,52,1,'Société en nom collectif',0,1,NULL,0),(100043,53,1,'Société en commandite',0,1,NULL,0),(100044,54,1,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100045,55,1,'Société anonyme à conseil d administration',0,1,NULL,0),(100046,56,1,'Société anonyme à directoire',0,1,NULL,0),(100047,57,1,'Société par actions simplifiée (SAS)',0,1,NULL,0),(100048,58,1,'Entreprise Unipersonnelle à Responsabilité Limitée (EURL)',0,1,NULL,0),(100049,59,1,'Société par actions simplifiée unipersonnelle (SASU)',0,1,NULL,0),(100050,60,1,'Entreprise Individuelle à Responsabilité Limitée (EIRL)',0,1,NULL,0),(100051,61,1,'Caisse d\'épargne et de prévoyance',0,1,NULL,0),(100052,62,1,'Groupement d\'intérêt économique (GIE)',0,1,NULL,0),(100053,63,1,'Société coopérative agricole',0,1,NULL,0),(100054,64,1,'Société non commerciale d assurances',0,1,NULL,0),(100055,65,1,'Société civile',0,1,NULL,0),(100056,69,1,'Personnes de droit privé inscrites au RCS',0,1,NULL,0),(100057,71,1,'Administration de l état',0,1,NULL,0),(100058,72,1,'Collectivité territoriale',0,1,NULL,0),(100059,73,1,'Etablissement public administratif',0,1,NULL,0),(100060,74,1,'Personne morale de droit public administratif',0,1,NULL,0),(100061,81,1,'Organisme gérant régime de protection social à adhésion obligatoire',0,1,NULL,0),(100062,82,1,'Organisme mutualiste',0,1,NULL,0),(100063,83,1,'Comité d entreprise',0,1,NULL,0),(100064,84,1,'Organisme professionnel',0,1,NULL,0),(100065,85,1,'Organisme de retraite à adhésion non obligatoire',0,1,NULL,0),(100066,91,1,'Syndicat de propriétaires',0,1,NULL,0),(100067,92,1,'Association loi 1901 ou assimilé',0,1,NULL,0),(100068,93,1,'Fondation',0,1,NULL,0),(100069,99,1,'Personne morale de droit privé',0,1,NULL,0),(100070,200,2,'Indépendant',0,1,NULL,0),(100071,201,2,'SPRL - Société à responsabilité limitée',0,1,NULL,0),(100072,202,2,'SA   - Société Anonyme',0,1,NULL,0),(100073,203,2,'SCRL - Société coopérative à responsabilité limitée',0,1,NULL,0),(100074,204,2,'ASBL - Association sans but Lucratif',0,1,NULL,0),(100075,205,2,'SCRI - Société coopérative à responsabilité illimitée',0,1,NULL,0),(100076,206,2,'SCS  - Société en commandite simple',0,1,NULL,0),(100077,207,2,'SCA  - Société en commandite par action',0,1,NULL,0),(100078,208,2,'SNC  - Société en nom collectif',0,1,NULL,0),(100079,209,2,'GIE  - Groupement d intérêt économique',0,1,NULL,0),(100080,210,2,'GEIE - Groupement européen d intérêt économique',0,1,NULL,0),(100081,220,2,'Eenmanszaak',0,1,NULL,0),(100082,221,2,'BVBA - Besloten vennootschap met beperkte aansprakelijkheid',0,1,NULL,0),(100083,222,2,'NV   - Naamloze Vennootschap',0,1,NULL,0),(100084,223,2,'CVBA - Coöperatieve vennootschap met beperkte aansprakelijkheid',0,1,NULL,0),(100085,224,2,'VZW  - Vereniging zonder winstoogmerk',0,1,NULL,0),(100086,225,2,'CVOA - Coöperatieve vennootschap met onbeperkte aansprakelijkheid ',0,1,NULL,0),(100087,226,2,'GCV  - Gewone commanditaire vennootschap',0,1,NULL,0),(100088,227,2,'Comm.VA - Commanditaire vennootschap op aandelen',0,1,NULL,0),(100089,228,2,'VOF  - Vennootschap onder firma',0,1,NULL,0),(100090,229,2,'VS0  - Vennootschap met sociaal oogmerk',0,1,NULL,0),(100091,500,5,'GmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100092,501,5,'AG - Aktiengesellschaft ',0,1,NULL,0),(100093,502,5,'GmbH&Co. KG - Gesellschaft mit beschränkter Haftung & Compagnie Kommanditgesellschaft',0,1,NULL,0),(100094,503,5,'Gewerbe - Personengesellschaft',0,1,NULL,0),(100095,504,5,'UG - Unternehmergesellschaft -haftungsbeschränkt-',0,1,NULL,0),(100096,505,5,'GbR - Gesellschaft des bürgerlichen Rechts',0,1,NULL,0),(100097,506,5,'KG - Kommanditgesellschaft',0,1,NULL,0),(100098,507,5,'Ltd. - Limited Company',0,1,NULL,0),(100099,508,5,'OHG - Offene Handelsgesellschaft',0,1,NULL,0),(100100,10201,102,'Ατομική επιχείρηση',0,1,NULL,0),(100101,10202,102,'Εταιρική  επιχείρηση',0,1,NULL,0),(100102,10203,102,'Ομόρρυθμη Εταιρεία Ο.Ε',0,1,NULL,0),(100103,10204,102,'Ετερόρρυθμη Εταιρεία Ε.Ε',0,1,NULL,0),(100104,10205,102,'Εταιρεία Περιορισμένης Ευθύνης Ε.Π.Ε',0,1,NULL,0),(100105,10206,102,'Ανώνυμη Εταιρεία Α.Ε',0,1,NULL,0),(100106,10207,102,'Ανώνυμη ναυτιλιακή εταιρεία Α.Ν.Ε',0,1,NULL,0),(100107,10208,102,'Συνεταιρισμός',0,1,NULL,0),(100108,10209,102,'Συμπλοιοκτησία',0,1,NULL,0),(100109,301,3,'Società semplice',0,1,NULL,0),(100110,302,3,'Società in nome collettivo s.n.c.',0,1,NULL,0),(100111,303,3,'Società in accomandita semplice s.a.s.',0,1,NULL,0),(100112,304,3,'Società per azioni s.p.a.',0,1,NULL,0),(100113,305,3,'Società a responsabilità limitata s.r.l.',0,1,NULL,0),(100114,306,3,'Società in accomandita per azioni s.a.p.a.',0,1,NULL,0),(100115,307,3,'Società cooperativa a r.l.',0,1,NULL,0),(100116,308,3,'Società consortile',0,1,NULL,0),(100117,309,3,'Società europea',0,1,NULL,0),(100118,310,3,'Società cooperativa europea',0,1,NULL,0),(100119,311,3,'Società unipersonale',0,1,NULL,0),(100120,312,3,'Società di professionisti',0,1,NULL,0),(100121,313,3,'Società di fatto',0,1,NULL,0),(100122,315,3,'Società apparente',0,1,NULL,0),(100123,316,3,'Impresa individuale ',0,1,NULL,0),(100124,317,3,'Impresa coniugale',0,1,NULL,0),(100125,318,3,'Impresa familiare',0,1,NULL,0),(100126,319,3,'Consorzio cooperativo',0,1,NULL,0),(100127,320,3,'Società cooperativa sociale',0,1,NULL,0),(100128,321,3,'Società cooperativa di consumo',0,1,NULL,0),(100129,322,3,'Società cooperativa agricola',0,1,NULL,0),(100130,323,3,'A.T.I. Associazione temporanea di imprese',0,1,NULL,0),(100131,324,3,'R.T.I. Raggruppamento temporaneo di imprese',0,1,NULL,0),(100132,325,3,'Studio associato',0,1,NULL,0),(100133,600,6,'Raison Individuelle',0,1,NULL,0),(100134,601,6,'Société Simple',0,1,NULL,0),(100135,602,6,'Société en nom collectif',0,1,NULL,0),(100136,603,6,'Société en commandite',0,1,NULL,0),(100137,604,6,'Société anonyme (SA)',0,1,NULL,0),(100138,605,6,'Société en commandite par actions',0,1,NULL,0),(100139,606,6,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100140,607,6,'Société coopérative',0,1,NULL,0),(100141,608,6,'Association',0,1,NULL,0),(100142,609,6,'Fondation',0,1,NULL,0),(100143,700,7,'Sole Trader',0,1,NULL,0),(100144,701,7,'Partnership',0,1,NULL,0),(100145,702,7,'Private Limited Company by shares (LTD)',0,1,NULL,0),(100146,703,7,'Public Limited Company',0,1,NULL,0),(100147,704,7,'Workers Cooperative',0,1,NULL,0),(100148,705,7,'Limited Liability Partnership',0,1,NULL,0),(100149,706,7,'Franchise',0,1,NULL,0),(100150,1000,10,'Société à responsabilité limitée (SARL)',0,1,NULL,0),(100151,1001,10,'Société en Nom Collectif (SNC)',0,1,NULL,0),(100152,1002,10,'Société en Commandite Simple (SCS)',0,1,NULL,0),(100153,1003,10,'société en participation',0,1,NULL,0),(100154,1004,10,'Société Anonyme (SA)',0,1,NULL,0),(100155,1005,10,'Société Unipersonnelle à Responsabilité Limitée (SUARL)',0,1,NULL,0),(100156,1006,10,'Groupement d\'intérêt économique (GEI)',0,1,NULL,0),(100157,1007,10,'Groupe de sociétés',0,1,NULL,0),(100158,1701,17,'Eenmanszaak',0,1,NULL,0),(100159,1702,17,'Maatschap',0,1,NULL,0),(100160,1703,17,'Vennootschap onder firma',0,1,NULL,0),(100161,1704,17,'Commanditaire vennootschap',0,1,NULL,0),(100162,1705,17,'Besloten vennootschap (BV)',0,1,NULL,0),(100163,1706,17,'Naamloze Vennootschap (NV)',0,1,NULL,0),(100164,1707,17,'Vereniging',0,1,NULL,0),(100165,1708,17,'Stichting',0,1,NULL,0),(100166,1709,17,'Coöperatie met beperkte aansprakelijkheid (BA)',0,1,NULL,0),(100167,1710,17,'Coöperatie met uitgesloten aansprakelijkheid (UA)',0,1,NULL,0),(100168,1711,17,'Coöperatie met wettelijke aansprakelijkheid (WA)',0,1,NULL,0),(100169,1712,17,'Onderlinge waarborgmaatschappij',0,1,NULL,0),(100170,401,4,'Empresario Individual',0,1,NULL,0),(100171,402,4,'Comunidad de Bienes',0,1,NULL,0),(100172,403,4,'Sociedad Civil',0,1,NULL,0),(100173,404,4,'Sociedad Colectiva',0,1,NULL,0),(100174,405,4,'Sociedad Limitada',0,1,NULL,0),(100175,406,4,'Sociedad Anónima',0,1,NULL,0),(100176,407,4,'Sociedad Comanditaria por Acciones',0,1,NULL,0),(100177,408,4,'Sociedad Comanditaria Simple',0,1,NULL,0),(100178,409,4,'Sociedad Laboral',0,1,NULL,0),(100179,410,4,'Sociedad Cooperativa',0,1,NULL,0),(100180,411,4,'Sociedad de Garantía Recíproca',0,1,NULL,0),(100181,412,4,'Entidad de Capital-Riesgo',0,1,NULL,0),(100182,413,4,'Agrupación de Interés Económico',0,1,NULL,0),(100183,414,4,'Sociedad de Inversión Mobiliaria',0,1,NULL,0),(100184,415,4,'Agrupación sin Ánimo de Lucro',0,1,NULL,0),(100185,15201,152,'Mauritius Private Company Limited By Shares',0,1,NULL,0),(100186,15202,152,'Mauritius Company Limited By Guarantee',0,1,NULL,0),(100187,15203,152,'Mauritius Public Company Limited By Shares',0,1,NULL,0),(100188,15204,152,'Mauritius Foreign Company',0,1,NULL,0),(100189,15205,152,'Mauritius GBC1 (Offshore Company)',0,1,NULL,0),(100190,15206,152,'Mauritius GBC2 (International Company)',0,1,NULL,0),(100191,15207,152,'Mauritius General Partnership',0,1,NULL,0),(100192,15208,152,'Mauritius Limited Partnership',0,1,NULL,0),(100193,15209,152,'Mauritius Sole Proprietorship',0,1,NULL,0),(100194,15210,152,'Mauritius Trusts',0,1,NULL,0),(100195,15401,154,'Sociedad en nombre colectivo',0,1,NULL,0),(100196,15402,154,'Sociedad en comandita simple',0,1,NULL,0),(100197,15403,154,'Sociedad de responsabilidad limitada',0,1,NULL,0),(100198,15404,154,'Sociedad anónima',0,1,NULL,0),(100199,15405,154,'Sociedad en comandita por acciones',0,1,NULL,0),(100200,15406,154,'Sociedad cooperativa',0,1,NULL,0),(100201,4100,41,'GmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100202,4101,41,'GesmbH - Gesellschaft mit beschränkter Haftung',0,1,NULL,0),(100203,4102,41,'AG - Aktiengesellschaft',0,1,NULL,0),(100204,4103,41,'EWIV - Europäische wirtschaftliche Interessenvereinigung',0,1,NULL,0),(100205,4104,41,'KEG - Kommanditerwerbsgesellschaft',0,1,NULL,0),(100206,4105,41,'OEG - Offene Erwerbsgesellschaft',0,1,NULL,0),(100207,4106,41,'OHG - Offene Handelsgesellschaft',0,1,NULL,0),(100208,4107,41,'AG & Co KG - Kommanditgesellschaft',0,1,NULL,0),(100209,4108,41,'GmbH & Co KG - Kommanditgesellschaft',0,1,NULL,0),(100210,4109,41,'KG - Kommanditgesellschaft',0,1,NULL,0),(100211,4110,41,'OG - Offene Gesellschaft',0,1,NULL,0),(100212,4111,41,'GbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100213,4112,41,'GesbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100214,4113,41,'GesnbR - Gesellschaft nach bürgerlichem Recht',0,1,NULL,0),(100215,4114,41,'e.U. - eingetragener Einzelunternehmer',0,1,NULL,0),(100216,17801,178,'Empresa individual',0,1,NULL,0),(100217,17802,178,'Asociación General',0,1,NULL,0),(100218,17803,178,'Sociedad de Responsabilidad Limitada',0,1,NULL,0),(100219,17804,178,'Sociedad Civil',0,1,NULL,0),(100220,17805,178,'Sociedad Anónima',0,1,NULL,0),(100221,8001,80,'Aktieselvskab A/S',0,1,NULL,0),(100222,8002,80,'Anparts Selvskab ApS',0,1,NULL,0),(100223,8003,80,'Personlig ejet selvskab',0,1,NULL,0),(100224,8004,80,'Iværksætterselvskab IVS',0,1,NULL,0),(100225,8005,80,'Interessentskab I/S',0,1,NULL,0),(100226,8006,80,'Holdingselskab',0,1,NULL,0),(100227,8007,80,'Selskab Med Begrænset Hæftelse SMBA',0,1,NULL,0),(100228,8008,80,'Kommanditselskab K/S',0,1,NULL,0),(100229,8009,80,'SPE-selskab',0,1,NULL,0);
    +/*!40000 ALTER TABLE `llx_c_forme_juridique` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_holiday_types`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_holiday_types`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_holiday_types` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `affect` int(11) NOT NULL,
    +  `delay` int(11) NOT NULL,
    +  `newByMonth` double(8,5) NOT NULL DEFAULT '0.00000',
    +  `fk_country` int(11) DEFAULT NULL,
    +  `active` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_holiday_types` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_holiday_types`
    +--
    +
    +LOCK TABLES `llx_c_holiday_types` WRITE;
    +/*!40000 ALTER TABLE `llx_c_holiday_types` DISABLE KEYS */;
    +INSERT INTO `llx_c_holiday_types` VALUES (1,'LEAVE_SICK','Sick leave',0,0,0.00000,NULL,1),(2,'LEAVE_OTHER','Other leave',0,0,0.00000,NULL,1),(3,'LEAVE_PAID','Paid vacation',1,7,0.00000,NULL,1),(4,'LEAVE_RTT_FR','RTT',1,7,0.83000,1,0),(5,'LEAVE_PAID_FR','Paid vacation',1,30,2.08334,1,0);
    +/*!40000 ALTER TABLE `llx_c_holiday_types` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_hrm_department`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_hrm_department`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_hrm_department` (
    +  `rowid` int(11) NOT NULL,
    +  `pos` tinyint(4) NOT NULL DEFAULT '0',
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_hrm_department`
    +--
    +
    +LOCK TABLES `llx_c_hrm_department` WRITE;
    +/*!40000 ALTER TABLE `llx_c_hrm_department` DISABLE KEYS */;
    +INSERT INTO `llx_c_hrm_department` VALUES (1,5,'MANAGEMENT','Management',1),(2,10,'GESTION','Gestion',1),(3,15,'TRAINING','Training',1),(4,20,'IT','Inform. Technology (IT)',1),(5,25,'MARKETING','Marketing',1),(6,30,'SALES','Sales',1),(7,35,'LEGAL','Legal',1),(8,40,'FINANCIAL','Financial accounting',1),(9,45,'HUMANRES','Human resources',1),(10,50,'PURCHASING','Purchasing',1),(11,55,'SERVICES','Services',1),(12,60,'CUSTOMSERV','Customer service',1),(13,65,'CONSULTING','Consulting',1),(14,70,'LOGISTIC','Logistics',1),(15,75,'CONSTRUCT','Engineering/design',1),(16,80,'PRODUCTION','Manufacturing',1),(17,85,'QUALITY','Quality assurance',1),(18,85,'MAINT','Plant assurance',1);
    +/*!40000 ALTER TABLE `llx_c_hrm_department` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_hrm_function`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_hrm_function`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_hrm_function` (
    +  `rowid` int(11) NOT NULL,
    +  `pos` tinyint(4) NOT NULL DEFAULT '0',
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `c_level` tinyint(4) NOT NULL DEFAULT '0',
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_hrm_function`
    +--
    +
    +LOCK TABLES `llx_c_hrm_function` WRITE;
    +/*!40000 ALTER TABLE `llx_c_hrm_function` DISABLE KEYS */;
    +INSERT INTO `llx_c_hrm_function` VALUES (1,5,'EXECBOARD','Executive board',0,1),(2,10,'MANAGDIR','Managing director',1,1),(3,15,'ACCOUNTMANAG','Account manager',0,1),(4,20,'ENGAGDIR','Engagement director',1,1),(5,25,'DIRECTOR','Director',1,1),(6,30,'PROJMANAG','Project manager',0,1),(7,35,'DEPHEAD','Department head',0,1),(8,40,'SECRETAR','Secretary',0,1),(9,45,'EMPLOYEE','Department employee',0,1);
    +/*!40000 ALTER TABLE `llx_c_hrm_function` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_incoterms`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_incoterms`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_incoterms` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_incoterms` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_incoterms`
    +--
    +
    +LOCK TABLES `llx_c_incoterms` WRITE;
    +/*!40000 ALTER TABLE `llx_c_incoterms` DISABLE KEYS */;
    +INSERT INTO `llx_c_incoterms` VALUES (1,'EXW','Ex Works, au départ non chargé, non dédouané sortie d\'usine (uniquement adapté aux flux domestiques, nationaux)',1),(2,'FCA','Free Carrier, marchandises dédouanées et chargées dans le pays de départ, chez le vendeur ou chez le commissionnaire de transport de l\'acheteur',1),(3,'FAS','Free Alongside Ship, sur le quai du port de départ',1),(4,'FOB','Free On Board, chargé sur le bateau, les frais de chargement dans celui-ci étant fonction du liner term indiqué par la compagnie maritime (à la charge du vendeur)',1),(5,'CFR','Cost and Freight, chargé dans le bateau, livraison au port de départ, frais payés jusqu\'au port d\'arrivée, sans assurance pour le transport, non déchargé du navire à destination (les frais de déchargement sont inclus ou non au port d\'arrivée)',1),(6,'CIF','Cost, Insurance and Freight, chargé sur le bateau, frais jusqu\'au port d\'arrivée, avec l\'assurance marchandise transportée souscrite par le vendeur pour le compte de l\'acheteur',1),(7,'CPT','Carriage Paid To, livraison au premier transporteur, frais jusqu\'au déchargement du mode de transport, sans assurance pour le transport',1),(8,'CIP','Carriage and Insurance Paid to, idem CPT, avec assurance marchandise transportée souscrite par le vendeur pour le compte de l\'acheteur',1),(9,'DAT','Delivered At Terminal, marchandises (déchargées) livrées sur quai, dans un terminal maritime, fluvial, aérien, routier ou ferroviaire désigné (dédouanement import, et post-acheminement payés par l\'acheteur)',1),(10,'DAP','Delivered At Place, marchandises (non déchargées) mises à disposition de l\'acheteur dans le pays d\'importation au lieu précisé dans le contrat (déchargement, dédouanement import payé par l\'acheteur)',1),(11,'DDP','Delivered Duty Paid, marchandises (non déchargées) livrées à destination finale, dédouanement import et taxes à la charge du vendeur ; l\'acheteur prend en charge uniquement le déchargement (si exclusion des taxes type TVA, le préciser clairement)',1);
    +/*!40000 ALTER TABLE `llx_c_incoterms` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_input_method`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_input_method`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_input_method` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `libelle` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_methode_commande_fournisseur` (`code`),
    +  UNIQUE KEY `uk_c_input_method` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_input_method`
    +--
    +
    +LOCK TABLES `llx_c_input_method` WRITE;
    +/*!40000 ALTER TABLE `llx_c_input_method` DISABLE KEYS */;
    +INSERT INTO `llx_c_input_method` VALUES (1,'OrderByMail','Courrier',1,NULL),(2,'OrderByFax','Fax',1,NULL),(3,'OrderByEMail','EMail',1,NULL),(4,'OrderByPhone','Téléphone',1,NULL),(5,'OrderByWWW','En ligne',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_input_method` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_input_reason`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_input_reason`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_input_reason` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_input_reason` (`code`)
    +) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_input_reason`
    +--
    +
    +LOCK TABLES `llx_c_input_reason` WRITE;
    +/*!40000 ALTER TABLE `llx_c_input_reason` DISABLE KEYS */;
    +INSERT INTO `llx_c_input_reason` VALUES (1,'SRC_INTE','Web site',1,NULL),(2,'SRC_CAMP_MAIL','Mailing campaign',1,NULL),(3,'SRC_CAMP_PHO','Phone campaign',1,NULL),(4,'SRC_CAMP_FAX','Fax campaign',1,NULL),(5,'SRC_COMM','Commercial contact',1,NULL),(6,'SRC_SHOP','Shop contact',1,NULL),(7,'SRC_CAMP_EMAIL','EMailing campaign',1,NULL),(8,'SRC_WOM','Word of mouth',1,NULL),(9,'SRC_PARTNER','Partner',1,NULL),(10,'SRC_EMPLOYEE','Employee',1,NULL),(11,'SRC_SPONSORING','Sponsoring',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_input_reason` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_lead_status`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_lead_status`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_lead_status` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) DEFAULT NULL,
    +  `percent` double(5,2) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_lead_status_code` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_lead_status`
    +--
    +
    +LOCK TABLES `llx_c_lead_status` WRITE;
    +/*!40000 ALTER TABLE `llx_c_lead_status` DISABLE KEYS */;
    +INSERT INTO `llx_c_lead_status` VALUES (1,'PROSP','Prospection',10,0.00,1),(2,'QUAL','Qualification',20,20.00,1),(3,'PROPO','Proposal',30,40.00,1),(4,'NEGO','Negotiation',40,60.00,1),(5,'PENDING','Pending',50,50.00,0),(6,'WON','Won',60,100.00,1),(7,'LOST','Lost',70,0.00,1);
    +/*!40000 ALTER TABLE `llx_c_lead_status` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_lead_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_lead_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_lead_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `code` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_lead_type`
    +--
    +
    +LOCK TABLES `llx_c_lead_type` WRITE;
    +/*!40000 ALTER TABLE `llx_c_lead_type` DISABLE KEYS */;
    +INSERT INTO `llx_c_lead_type` VALUES (1,'SUPP','Support',1),(2,'TRAIN','Formation',1),(3,'ADVI','Conseil',1);
    +/*!40000 ALTER TABLE `llx_c_lead_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_methode_commande_fournisseur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_methode_commande_fournisseur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_methode_commande_fournisseur` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `libelle` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_methode_commande_fournisseur` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_methode_commande_fournisseur`
    +--
    +
    +LOCK TABLES `llx_c_methode_commande_fournisseur` WRITE;
    +/*!40000 ALTER TABLE `llx_c_methode_commande_fournisseur` DISABLE KEYS */;
    +INSERT INTO `llx_c_methode_commande_fournisseur` VALUES (1,'OrderByMail','Courrier',1),(2,'OrderByFax','Fax',1),(3,'OrderByEMail','EMail',1),(4,'OrderByPhone','Téléphone',1),(5,'OrderByWWW','En ligne',1);
    +/*!40000 ALTER TABLE `llx_c_methode_commande_fournisseur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_paiement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_paiement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_paiement` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `code` varchar(6) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(62) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` smallint(6) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_paiement_code` (`entity`,`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_paiement`
    +--
    +
    +LOCK TABLES `llx_c_paiement` WRITE;
    +/*!40000 ALTER TABLE `llx_c_paiement` DISABLE KEYS */;
    +INSERT INTO `llx_c_paiement` VALUES (1,1,'TIP','TIP',2,0,NULL,NULL,0),(2,1,'VIR','Virement',2,1,NULL,NULL,0),(3,1,'PRE','Prélèvement',2,1,NULL,NULL,0),(4,1,'LIQ','Espèces',2,1,NULL,NULL,0),(6,1,'CB','Carte Bancaire',2,1,NULL,NULL,0),(7,1,'CHQ','Chèque',2,1,NULL,NULL,0),(50,1,'VAD','Paiement en ligne',2,0,NULL,NULL,0),(51,1,'TRA','Traite',2,0,NULL,NULL,0),(52,1,'LCR','LCR',2,0,NULL,NULL,0),(53,1,'FAC','Factor',2,0,NULL,NULL,0);
    +/*!40000 ALTER TABLE `llx_c_paiement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_paiement_temp`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_paiement_temp`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_paiement_temp` (
    +  `id` int(11) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `code` varchar(6) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(62) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` smallint(6) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `accountancy_code` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `module` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0'
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_paiement_temp`
    +--
    +
    +LOCK TABLES `llx_c_paiement_temp` WRITE;
    +/*!40000 ALTER TABLE `llx_c_paiement_temp` DISABLE KEYS */;
    +INSERT INTO `llx_c_paiement_temp` VALUES (1,1,'TIP','TIP',2,0,NULL,NULL,0),(2,1,'VIR','Virement',2,1,NULL,NULL,0),(3,1,'PRE','Prélèvement',2,1,NULL,NULL,0),(4,1,'LIQ','Espèces',2,1,NULL,NULL,0),(6,1,'CB','Carte Bancaire',2,1,NULL,NULL,0),(7,1,'CHQ','Chèque',2,1,NULL,NULL,0),(50,1,'VAD','Paiement en ligne',2,0,NULL,NULL,0),(51,1,'TRA','Traite',2,0,NULL,NULL,0),(52,1,'LCR','LCR',2,0,NULL,NULL,0),(53,1,'FAC','Factor',2,0,NULL,NULL,0);
    +/*!40000 ALTER TABLE `llx_c_paiement_temp` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_paper_format`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_paper_format`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_paper_format` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `width` float(6,2) DEFAULT '0.00',
    +  `height` float(6,2) DEFAULT '0.00',
    +  `unit` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=226 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_paper_format`
    +--
    +
    +LOCK TABLES `llx_c_paper_format` WRITE;
    +/*!40000 ALTER TABLE `llx_c_paper_format` DISABLE KEYS */;
    +INSERT INTO `llx_c_paper_format` VALUES (1,'EU4A0','Format 4A0',1682.00,2378.00,'mm',1,NULL),(2,'EU2A0','Format 2A0',1189.00,1682.00,'mm',1,NULL),(3,'EUA0','Format A0',840.00,1189.00,'mm',1,NULL),(4,'EUA1','Format A1',594.00,840.00,'mm',1,NULL),(5,'EUA2','Format A2',420.00,594.00,'mm',1,NULL),(6,'EUA3','Format A3',297.00,420.00,'mm',1,NULL),(7,'EUA4','Format A4',210.00,297.00,'mm',1,NULL),(8,'EUA5','Format A5',148.00,210.00,'mm',1,NULL),(9,'EUA6','Format A6',105.00,148.00,'mm',1,NULL),(100,'USLetter','Format Letter (A)',216.00,279.00,'mm',1,NULL),(105,'USLegal','Format Legal',216.00,356.00,'mm',1,NULL),(110,'USExecutive','Format Executive',190.00,254.00,'mm',1,NULL),(115,'USLedger','Format Ledger/Tabloid (B)',279.00,432.00,'mm',1,NULL),(200,'CAP1','Format Canadian P1',560.00,860.00,'mm',1,NULL),(205,'CAP2','Format Canadian P2',430.00,560.00,'mm',1,NULL),(210,'CAP3','Format Canadian P3',280.00,430.00,'mm',1,NULL),(215,'CAP4','Format Canadian P4',215.00,280.00,'mm',1,NULL),(220,'CAP5','Format Canadian P5',140.00,215.00,'mm',1,NULL),(225,'CAP6','Format Canadian P6',107.00,140.00,'mm',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_paper_format` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_payment_term`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_payment_term`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_payment_term` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `code` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `sortorder` smallint(6) DEFAULT NULL,
    +  `active` tinyint(4) DEFAULT '1',
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `libelle_facture` text COLLATE utf8_unicode_ci,
    +  `type_cdr` tinyint(4) DEFAULT NULL,
    +  `nbjour` smallint(6) DEFAULT NULL,
    +  `decalage` smallint(6) DEFAULT NULL,
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_payment_term_code` (`entity`,`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_payment_term`
    +--
    +
    +LOCK TABLES `llx_c_payment_term` WRITE;
    +/*!40000 ALTER TABLE `llx_c_payment_term` DISABLE KEYS */;
    +INSERT INTO `llx_c_payment_term` VALUES (1,1,'RECEP',1,1,'A réception','Réception de facture',0,0,NULL,NULL,0),(2,1,'30D',2,1,'30 jours','Réglement à 30 jours',0,30,NULL,NULL,0),(3,1,'30DENDMONTH',3,1,'30 jours fin de mois','Réglement à 30 jours fin de mois',1,30,NULL,NULL,0),(4,1,'60D',4,1,'60 jours','Réglement à 60 jours',0,60,NULL,NULL,0),(5,1,'60DENDMONTH',5,1,'60 jours fin de mois','Réglement à 60 jours fin de mois',1,60,NULL,NULL,0),(6,1,'PT_ORDER',6,1,'A réception de commande','A réception de commande',0,0,NULL,NULL,0),(7,1,'PT_DELIVERY',7,1,'Livraison','Règlement à la livraison',0,0,NULL,NULL,0),(8,1,'PT_5050',8,1,'50 et 50','Règlement 50% à la commande, 50% à la livraison',0,0,NULL,NULL,0);
    +/*!40000 ALTER TABLE `llx_c_payment_term` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_price_expression`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_price_expression`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_price_expression` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `title` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `expression` varchar(80) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_price_expression`
    +--
    +
    +LOCK TABLES `llx_c_price_expression` WRITE;
    +/*!40000 ALTER TABLE `llx_c_price_expression` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_c_price_expression` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_price_global_variable`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_price_global_variable`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_price_global_variable` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `value` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_price_global_variable`
    +--
    +
    +LOCK TABLES `llx_c_price_global_variable` WRITE;
    +/*!40000 ALTER TABLE `llx_c_price_global_variable` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_c_price_global_variable` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_price_global_variable_updater`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_price_global_variable_updater`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_price_global_variable_updater` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `type` int(11) NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `parameters` text COLLATE utf8_unicode_ci,
    +  `fk_variable` int(11) NOT NULL,
    +  `update_interval` int(11) DEFAULT '0',
    +  `next_update` int(11) DEFAULT '0',
    +  `last_status` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_price_global_variable_updater`
    +--
    +
    +LOCK TABLES `llx_c_price_global_variable_updater` WRITE;
    +/*!40000 ALTER TABLE `llx_c_price_global_variable_updater` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_c_price_global_variable_updater` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_propalst`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_propalst`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_propalst` (
    +  `id` smallint(6) NOT NULL,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_propalst` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_propalst`
    +--
    +
    +LOCK TABLES `llx_c_propalst` WRITE;
    +/*!40000 ALTER TABLE `llx_c_propalst` DISABLE KEYS */;
    +INSERT INTO `llx_c_propalst` VALUES (0,'PR_DRAFT','Brouillon',1),(1,'PR_OPEN','Ouverte',1),(2,'PR_SIGNED','Signée',1),(3,'PR_NOTSIGNED','Non Signée',1),(4,'PR_FAC','Facturée',1);
    +/*!40000 ALTER TABLE `llx_c_propalst` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_prospectlevel`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_prospectlevel`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_prospectlevel` (
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `sortorder` smallint(6) DEFAULT NULL,
    +  `active` smallint(6) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_prospectlevel`
    +--
    +
    +LOCK TABLES `llx_c_prospectlevel` WRITE;
    +/*!40000 ALTER TABLE `llx_c_prospectlevel` DISABLE KEYS */;
    +INSERT INTO `llx_c_prospectlevel` VALUES ('PL_HIGH','High',4,1,NULL),('PL_LOW','Low',2,1,NULL),('PL_MEDIUM','Medium',3,1,NULL),('PL_NONE','None',1,1,NULL);
    +/*!40000 ALTER TABLE `llx_c_prospectlevel` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_regions`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_regions`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_regions` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code_region` int(11) NOT NULL,
    +  `fk_pays` int(11) NOT NULL,
    +  `cheflieu` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tncc` int(11) DEFAULT NULL,
    +  `nom` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `code_region` (`code_region`),
    +  UNIQUE KEY `uk_code_region` (`code_region`),
    +  KEY `idx_c_regions_fk_pays` (`fk_pays`)
    +) ENGINE=InnoDB AUTO_INCREMENT=23347 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_regions`
    +--
    +
    +LOCK TABLES `llx_c_regions` WRITE;
    +/*!40000 ALTER TABLE `llx_c_regions` DISABLE KEYS */;
    +INSERT INTO `llx_c_regions` VALUES (1,0,0,'0',0,'-',1),(101,1,1,'97105',3,'Guadeloupe',1),(102,2,1,'97209',3,'Martinique',1),(103,3,1,'97302',3,'Guyane',1),(104,4,1,'97411',3,'Réunion',1),(105,11,1,'75056',1,'Île-de-France',1),(106,21,1,'51108',0,'Champagne-Ardenne',1),(107,22,1,'80021',0,'Picardie',1),(108,23,1,'76540',0,'Haute-Normandie',1),(109,24,1,'45234',2,'Centre',1),(110,25,1,'14118',0,'Basse-Normandie',1),(111,26,1,'21231',0,'Bourgogne',1),(112,31,1,'59350',2,'Nord-Pas-de-Calais',1),(113,41,1,'57463',0,'Lorraine',1),(114,42,1,'67482',1,'Alsace',1),(115,43,1,'25056',0,'Franche-Comté',1),(116,52,1,'44109',4,'Pays de la Loire',1),(117,53,1,'35238',0,'Bretagne',1),(118,54,1,'86194',2,'Poitou-Charentes',1),(119,72,1,'33063',1,'Aquitaine',1),(120,73,1,'31555',0,'Midi-Pyrénées',1),(121,74,1,'87085',2,'Limousin',1),(122,82,1,'69123',2,'Rhône-Alpes',1),(123,83,1,'63113',1,'Auvergne',1),(124,91,1,'34172',2,'Languedoc-Roussillon',1),(125,93,1,'13055',0,'Provence-Alpes-Côte d\'Azur',1),(126,94,1,'2A004',0,'Corse',1),(201,201,2,'',1,'Flandre',1),(202,202,2,'',2,'Wallonie',1),(203,203,2,'',3,'Bruxelles-Capitale',1),(301,301,3,NULL,1,'Abruzzo',1),(302,302,3,NULL,1,'Basilicata',1),(303,303,3,NULL,1,'Calabria',1),(304,304,3,NULL,1,'Campania',1),(305,305,3,NULL,1,'Emilia-Romagna',1),(306,306,3,NULL,1,'Friuli-Venezia Giulia',1),(307,307,3,NULL,1,'Lazio',1),(308,308,3,NULL,1,'Liguria',1),(309,309,3,NULL,1,'Lombardia',1),(310,310,3,NULL,1,'Marche',1),(311,311,3,NULL,1,'Molise',1),(312,312,3,NULL,1,'Piemonte',1),(313,313,3,NULL,1,'Puglia',1),(314,314,3,NULL,1,'Sardegna',1),(315,315,3,NULL,1,'Sicilia',1),(316,316,3,NULL,1,'Toscana',1),(317,317,3,NULL,1,'Trentino-Alto Adige',1),(318,318,3,NULL,1,'Umbria',1),(319,319,3,NULL,1,'Valle d Aosta',1),(320,320,3,NULL,1,'Veneto',1),(401,401,4,'',0,'Andalucia',1),(402,402,4,'',0,'Aragón',1),(403,403,4,'',0,'Castilla y León',1),(404,404,4,'',0,'Castilla la Mancha',1),(405,405,4,'',0,'Canarias',1),(406,406,4,'',0,'Cataluña',1),(407,407,4,'',0,'Comunidad de Ceuta',1),(408,408,4,'',0,'Comunidad Foral de Navarra',1),(409,409,4,'',0,'Comunidad de Melilla',1),(410,410,4,'',0,'Cantabria',1),(411,411,4,'',0,'Comunidad Valenciana',1),(412,412,4,'',0,'Extemadura',1),(413,413,4,'',0,'Galicia',1),(414,414,4,'',0,'Islas Baleares',1),(415,415,4,'',0,'La Rioja',1),(416,416,4,'',0,'Comunidad de Madrid',1),(417,417,4,'',0,'Región de Murcia',1),(418,418,4,'',0,'Principado de Asturias',1),(419,419,4,'',0,'Pais Vasco',1),(601,601,6,'',1,'Cantons',1),(1001,1001,10,'',0,'Ariana',1),(1002,1002,10,'',0,'Béja',1),(1003,1003,10,'',0,'Ben Arous',1),(1004,1004,10,'',0,'Bizerte',1),(1005,1005,10,'',0,'Gabès',1),(1006,1006,10,'',0,'Gafsa',1),(1007,1007,10,'',0,'Jendouba',1),(1008,1008,10,'',0,'Kairouan',1),(1009,1009,10,'',0,'Kasserine',1),(1010,1010,10,'',0,'Kébili',1),(1011,1011,10,'',0,'La Manouba',1),(1012,1012,10,'',0,'Le Kef',1),(1013,1013,10,'',0,'Mahdia',1),(1014,1014,10,'',0,'Médenine',1),(1015,1015,10,'',0,'Monastir',1),(1016,1016,10,'',0,'Nabeul',1),(1017,1017,10,'',0,'Sfax',1),(1018,1018,10,'',0,'Sidi Bouzid',1),(1019,1019,10,'',0,'Siliana',1),(1020,1020,10,'',0,'Sousse',1),(1021,1021,10,'',0,'Tataouine',1),(1022,1022,10,'',0,'Tozeur',1),(1023,1023,10,'',0,'Tunis',1),(1024,1024,10,'',0,'Zaghouan',1),(1101,1101,11,'',0,'United-States',1),(1201,1201,12,'',0,'Tanger-Tétouan',1),(1202,1202,12,'',0,'Gharb-Chrarda-Beni Hssen',1),(1203,1203,12,'',0,'Taza-Al Hoceima-Taounate',1),(1204,1204,12,'',0,'L\'Oriental',1),(1205,1205,12,'',0,'Fès-Boulemane',1),(1206,1206,12,'',0,'Meknès-Tafialet',1),(1207,1207,12,'',0,'Rabat-Salé-Zemour-Zaër',1),(1208,1208,12,'',0,'Grand Cassablanca',1),(1209,1209,12,'',0,'Chaouia-Ouardigha',1),(1210,1210,12,'',0,'Doukahla-Adba',1),(1211,1211,12,'',0,'Marrakech-Tensift-Al Haouz',1),(1212,1212,12,'',0,'Tadla-Azilal',1),(1213,1213,12,'',0,'Sous-Massa-Drâa',1),(1214,1214,12,'',0,'Guelmim-Es Smara',1),(1215,1215,12,'',0,'Laâyoune-Boujdour-Sakia el Hamra',1),(1216,1216,12,'',0,'Oued Ed-Dahab Lagouira',1),(1301,1301,13,'',0,'Algerie',1),(2301,2301,23,'',0,'Norte',1),(2302,2302,23,'',0,'Litoral',1),(2303,2303,23,'',0,'Cuyana',1),(2304,2304,23,'',0,'Central',1),(2305,2305,23,'',0,'Patagonia',1),(2801,2801,28,'',0,'Australia',1),(4601,4601,46,'',0,'Barbados',1),(6701,6701,67,NULL,NULL,'Tarapacá',1),(6702,6702,67,NULL,NULL,'Antofagasta',1),(6703,6703,67,NULL,NULL,'Atacama',1),(6704,6704,67,NULL,NULL,'Coquimbo',1),(6705,6705,67,NULL,NULL,'Valparaíso',1),(6706,6706,67,NULL,NULL,'General Bernardo O Higgins',1),(6707,6707,67,NULL,NULL,'Maule',1),(6708,6708,67,NULL,NULL,'Biobío',1),(6709,6709,67,NULL,NULL,'Raucanía',1),(6710,6710,67,NULL,NULL,'Los Lagos',1),(6711,6711,67,NULL,NULL,'Aysén General Carlos Ibáñez del Campo',1),(6712,6712,67,NULL,NULL,'Magallanes y Antártica Chilena',1),(6713,6713,67,NULL,NULL,'Santiago',1),(6714,6714,67,NULL,NULL,'Los Ríos',1),(6715,6715,67,NULL,NULL,'Arica y Parinacota',1),(7001,7001,70,'',0,'Colombie',1),(8601,8601,86,NULL,NULL,'Central',1),(8602,8602,86,NULL,NULL,'Oriental',1),(8603,8603,86,NULL,NULL,'Occidental',1),(10201,10201,102,NULL,NULL,'??????',1),(10202,10202,102,NULL,NULL,'?????? ??????',1),(10203,10203,102,NULL,NULL,'???????? ?????????',1),(10204,10204,102,NULL,NULL,'?????',1),(10205,10205,102,NULL,NULL,'????????? ????????? ??? ?????',1),(10206,10206,102,NULL,NULL,'???????',1),(10207,10207,102,NULL,NULL,'????? ?????',1),(10208,10208,102,NULL,NULL,'?????? ??????',1),(10209,10209,102,NULL,NULL,'????????????',1),(10210,10210,102,NULL,NULL,'????? ??????',1),(10211,10211,102,NULL,NULL,'?????? ??????',1),(10212,10212,102,NULL,NULL,'????????',1),(10213,10213,102,NULL,NULL,'?????? ?????????',1),(11401,11401,114,'',0,'Honduras',1),(11701,11701,117,'',0,'India',1),(15201,15201,152,'',0,'Rivière Noire',1),(15202,15202,152,'',0,'Flacq',1),(15203,15203,152,'',0,'Grand Port',1),(15204,15204,152,'',0,'Moka',1),(15205,15205,152,'',0,'Pamplemousses',1),(15206,15206,152,'',0,'Plaines Wilhems',1),(15207,15207,152,'',0,'Port-Louis',1),(15208,15208,152,'',0,'Rivière du Rempart',1),(15209,15209,152,'',0,'Savanne',1),(15210,15210,152,'',0,'Rodrigues',1),(15211,15211,152,'',0,'Les îles Agaléga',1),(15212,15212,152,'',0,'Les écueils des Cargados Carajos',1),(15401,15401,154,'',0,'Mexique',1),(23201,23201,232,'',0,'Los Andes',1),(23202,23202,232,'',0,'Capital',1),(23203,23203,232,'',0,'Central',1),(23204,23204,232,'',0,'Cento Occidental',1),(23205,23205,232,'',0,'Guayana',1),(23206,23206,232,'',0,'Insular',1),(23207,23207,232,'',0,'Los Llanos',1),(23208,23208,232,'',0,'Nor-Oriental',1),(23209,23209,232,'',0,'Zuliana',1),(23215,6,1,'97601',3,'Mayotte',1),(23280,420,4,'',0,'Otros',1),(23281,501,5,'',0,'Deutschland',1),(23296,701,7,'',0,'England',1),(23297,702,7,'',0,'Wales',1),(23298,703,7,'',0,'Scotland',1),(23299,704,7,'',0,'Northern Ireland',1),(23325,1401,14,'',0,'Canada',1),(23326,1701,17,'',0,'Provincies van Nederland ',1),(23333,5601,56,'',0,'Brasil',1),(23334,5201,52,'',0,'Chuquisaca',1),(23335,5202,52,'',0,'La Paz',1),(23336,5203,52,'',0,'Cochabamba',1),(23337,5204,52,'',0,'Oruro',1),(23338,5205,52,'',0,'Potosí',1),(23339,5206,52,'',0,'Tarija',1),(23340,5207,52,'',0,'Santa Cruz',1),(23341,5208,52,'',0,'El Beni',1),(23342,5209,52,'',0,'Pando',1),(23343,4101,41,'',0,'Österreich',1),(23344,17801,178,'',0,'Panama',1),(23345,22701,227,'',0,'United Arab Emirates',1),(23346,11801,118,'',0,'Indonesia',1);
    +/*!40000 ALTER TABLE `llx_c_regions` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_revenuestamp`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_revenuestamp`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_revenuestamp` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_pays` int(11) NOT NULL,
    +  `taux` double NOT NULL,
    +  `note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `revenuestamp_type` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'fixed',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=102 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_revenuestamp`
    +--
    +
    +LOCK TABLES `llx_c_revenuestamp` WRITE;
    +/*!40000 ALTER TABLE `llx_c_revenuestamp` DISABLE KEYS */;
    +INSERT INTO `llx_c_revenuestamp` VALUES (101,10,0.4,'Revenue stamp tunisia',1,NULL,NULL,'fixed');
    +/*!40000 ALTER TABLE `llx_c_revenuestamp` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_shipment_mode`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_shipment_mode`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_shipment_mode` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `tracking` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) DEFAULT '0',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_shipment_mode`
    +--
    +
    +LOCK TABLES `llx_c_shipment_mode` WRITE;
    +/*!40000 ALTER TABLE `llx_c_shipment_mode` DISABLE KEYS */;
    +INSERT INTO `llx_c_shipment_mode` VALUES (1,'2010-10-09 23:43:16','CATCH','Catch','Catch by client','',1,NULL),(2,'2010-10-09 23:43:16','TRANS','Transporter','Generic transporter','',1,NULL),(3,'2010-10-09 23:43:16','COLSUI','Colissimo Suivi','Colissimo Suivi','',0,NULL),(4,'2011-07-18 17:28:27','LETTREMAX','Lettre Max','Courrier Suivi et Lettre Max','',0,NULL),(9,'2013-02-24 01:48:18','UPS','UPS','United Parcel Service','http://wwwapps.ups.com/etracking/tracking.cgi?InquiryNumber2=&InquiryNumber3=&tracknums_displayed=3&loc=fr_FR&TypeOfInquiryNumber=T&HTMLVersion=4.0&InquiryNumber22=&InquiryNumber32=&track=Track&Suivi.x=64&Suivi.y=7&Suivi=Valider&InquiryNumber1={TRACKID}',0,NULL),(10,'2013-02-24 01:48:18','KIALA','KIALA','Relais Kiala','http://www.kiala.fr/tnt/delivery/{TRACKID}',0,NULL),(11,'2013-02-24 01:48:18','GLS','GLS','General Logistics Systems','http://www.gls-group.eu/276-I-PORTAL-WEB/content/GLS/FR01/FR/5004.htm?txtAction=71000&txtRefNo={TRACKID}',0,NULL),(12,'2013-02-24 01:48:18','CHRONO','Chronopost','Chronopost','http://www.chronopost.fr/expedier/inputLTNumbersNoJahia.do?listeNumeros={TRACKID}',0,NULL);
    +/*!40000 ALTER TABLE `llx_c_shipment_mode` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_stcomm`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_stcomm`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_stcomm` (
    +  `id` int(11) NOT NULL,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `picto` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_stcomm` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_stcomm`
    +--
    +
    +LOCK TABLES `llx_c_stcomm` WRITE;
    +/*!40000 ALTER TABLE `llx_c_stcomm` DISABLE KEYS */;
    +INSERT INTO `llx_c_stcomm` VALUES (-1,'ST_NO','Do not contact',1,NULL),(0,'ST_NEVER','Never contacted',1,NULL),(1,'ST_TODO','To contact',1,NULL),(2,'ST_PEND','Contact in progress',1,NULL),(3,'ST_DONE','Contacted',1,NULL);
    +/*!40000 ALTER TABLE `llx_c_stcomm` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ticket_category`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ticket_category`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ticket_category` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `code` varchar(32) NOT NULL,
    +  `pos` varchar(32) NOT NULL,
    +  `label` varchar(128) NOT NULL,
    +  `active` int(11) DEFAULT '1',
    +  `use_default` int(11) DEFAULT '1',
    +  `description` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_code` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ticket_category`
    +--
    +
    +LOCK TABLES `llx_c_ticket_category` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ticket_category` DISABLE KEYS */;
    +INSERT INTO `llx_c_ticket_category` VALUES (1,1,'OTHER','10','Other',1,1,NULL);
    +/*!40000 ALTER TABLE `llx_c_ticket_category` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ticket_severity`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ticket_severity`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ticket_severity` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `code` varchar(32) NOT NULL,
    +  `pos` varchar(32) NOT NULL,
    +  `label` varchar(128) NOT NULL,
    +  `color` varchar(10) NOT NULL,
    +  `active` int(11) DEFAULT '1',
    +  `use_default` int(11) DEFAULT '1',
    +  `description` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_code` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ticket_severity`
    +--
    +
    +LOCK TABLES `llx_c_ticket_severity` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ticket_severity` DISABLE KEYS */;
    +INSERT INTO `llx_c_ticket_severity` VALUES (1,1,'LOW','10','Low','',1,0,NULL),(2,1,'NORMAL','20','Normal','',1,1,NULL),(3,1,'HIGH','30','High','',1,0,NULL),(4,1,'BLOCKING','40','Critical / blocking','',1,0,NULL);
    +/*!40000 ALTER TABLE `llx_c_ticket_severity` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ticket_type`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ticket_type`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ticket_type` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `code` varchar(32) NOT NULL,
    +  `pos` varchar(32) NOT NULL,
    +  `label` varchar(128) NOT NULL,
    +  `active` int(11) DEFAULT '1',
    +  `use_default` int(11) DEFAULT '1',
    +  `description` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_code` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ticket_type`
    +--
    +
    +LOCK TABLES `llx_c_ticket_type` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ticket_type` DISABLE KEYS */;
    +INSERT INTO `llx_c_ticket_type` VALUES (1,1,'COM','10','Commercial question',1,1,NULL),(2,1,'ISSUE','20','Issue or problem',1,0,NULL),(3,1,'REQUEST','25','Change or enhancement request',1,0,NULL),(4,1,'PROJECT','30','Project',0,0,NULL),(5,1,'OTHER','40','Other',1,0,NULL);
    +/*!40000 ALTER TABLE `llx_c_ticket_type` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_tva`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_tva`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_tva` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_pays` int(11) NOT NULL,
    +  `code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `taux` double NOT NULL,
    +  `localtax1` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `recuperableonly` int(11) NOT NULL DEFAULT '0',
    +  `note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_tva_id` (`fk_pays`,`code`,`taux`,`recuperableonly`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2477 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_tva`
    +--
    +
    +LOCK TABLES `llx_c_tva` WRITE;
    +/*!40000 ALTER TABLE `llx_c_tva` DISABLE KEYS */;
    +INSERT INTO `llx_c_tva` VALUES (11,1,'',20,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL),(12,1,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(13,1,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(14,1,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',1,NULL,NULL),(15,1,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(16,1,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(17,1,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(21,2,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(22,2,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(23,2,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(24,2,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(31,3,'',21,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(32,3,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(33,3,'',4,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(34,3,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(41,4,'',21,'5.2','3','-19:-15:-9','5',0,'VAT standard rate',1,NULL,NULL),(42,4,'',10,'1.4','3','-19:-15:-9','5',0,'VAT reduced rate',1,NULL,NULL),(43,4,'',4,'0.5','3','-19:-15:-9','5',0,'VAT super-reduced rate',1,NULL,NULL),(44,4,'',0,'0','3','-19:-15:-9','5',0,'VAT Rate 0',1,NULL,NULL),(51,5,'',19,NULL,'0',NULL,'0',0,'allgemeine Ust.',1,NULL,NULL),(52,5,'',7,NULL,'0',NULL,'0',0,'ermäßigte USt.',1,NULL,NULL),(53,5,'',0,NULL,'0',NULL,'0',0,'keine USt.',1,NULL,NULL),(54,5,'',5.5,NULL,'0',NULL,'0',0,'USt. Forst',0,NULL,NULL),(55,5,'',10.7,NULL,'0',NULL,'0',0,'USt. Landwirtschaft',0,NULL,NULL),(61,6,'',8,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(62,6,'',3.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(63,6,'',2.5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(64,6,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(71,7,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(72,7,'',17.5,NULL,'0',NULL,'0',0,'VAT standard rate before 2011',1,NULL,NULL),(73,7,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(74,7,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(81,8,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(82,8,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(83,8,'',13.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(84,8,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(85,8,'',4.8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(91,9,'',17,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(92,9,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate 0',1,NULL,NULL),(93,9,'',3,NULL,'0',NULL,'0',0,'VAT super reduced rate 0',1,NULL,NULL),(94,9,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(101,10,'',6,'1','4','0','0',0,'VAT 6%',1,NULL,NULL),(102,10,'',12,'1','4','0','0',0,'VAT 12%',1,NULL,NULL),(103,10,'',18,'1','4','0','0',0,'VAT 18%',1,NULL,NULL),(104,10,'',7.5,'1','4','0','0',0,'VAT 6% Majoré à 25% (7.5%)',1,NULL,NULL),(105,10,'',15,'1','4','0','0',0,'VAT 12% Majoré à 25% (15%)',1,NULL,NULL),(106,10,'',22.5,'1','4','0','0',0,'VAT 18% Majoré à 25% (22.5%)',1,NULL,NULL),(107,10,'',0,'1','4','0','0',0,'VAT Rate 0',1,NULL,NULL),(111,11,'',0,NULL,'0',NULL,'0',0,'No Sales Tax',1,NULL,NULL),(112,11,'',4,NULL,'0',NULL,'0',0,'Sales Tax 4%',1,NULL,NULL),(113,11,'',6,NULL,'0',NULL,'0',0,'Sales Tax 6%',1,NULL,NULL),(121,12,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(122,12,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(123,12,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(124,12,'',7,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(125,12,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(141,14,'',7,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(142,14,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(143,14,'',5,'9.975','1',NULL,'0',0,'GST/TPS and PST/TVQ rate for Province',1,NULL,NULL),(171,17,'',19,NULL,'0',NULL,'0',0,'Algemeen BTW tarief',1,NULL,NULL),(172,17,'',6,NULL,'0',NULL,'0',0,'Verlaagd BTW tarief',1,NULL,NULL),(173,17,'',0,NULL,'0',NULL,'0',0,'0 BTW tarief',1,NULL,NULL),(174,17,'',21,NULL,'0',NULL,'0',0,'Algemeen BTW tarief (vanaf 1 oktober 2012)',0,NULL,NULL),(201,20,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(202,20,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(203,20,'',6,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(204,20,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(211,21,'',0,'0','0','0','0',0,'IVA Rate 0',1,NULL,NULL),(212,21,'',18,'7.5','2','0','0',0,'IVA standard rate',1,NULL,NULL),(221,22,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(222,22,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(223,22,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(231,23,'',21,NULL,'0',NULL,'0',0,'IVA standard rate',1,NULL,NULL),(232,23,'',10.5,NULL,'0',NULL,'0',0,'IVA reduced rate',1,NULL,NULL),(233,23,'',0,NULL,'0',NULL,'0',0,'IVA Rate 0',1,NULL,NULL),(241,24,'',19.25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(242,24,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(251,25,'',23,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(252,25,'',13,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(253,25,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(254,25,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(261,26,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(271,27,'',19.6,NULL,'0',NULL,'0',0,'VAT standard rate (France hors DOM-TOM)',1,NULL,NULL),(272,27,'',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(273,27,'',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(274,27,'',5.5,NULL,'0',NULL,'0',0,'VAT reduced rate (France hors DOM-TOM)',0,NULL,NULL),(275,27,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0 ou non applicable',1,NULL,NULL),(276,27,'',2.1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(277,27,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(281,28,'',10,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(282,28,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(411,41,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(412,41,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(413,41,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(461,46,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(462,46,'',15,NULL,'0',NULL,'0',0,'VAT 15%',1,NULL,NULL),(463,46,'',7.5,NULL,'0',NULL,'0',0,'VAT 7.5%',1,NULL,NULL),(561,56,'',0,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(591,59,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(592,59,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(593,59,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(671,67,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(672,67,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(801,80,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(802,80,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(861,86,'',13,NULL,'0',NULL,'0',0,'IVA 13',1,NULL,NULL),(862,86,'',0,NULL,'0',NULL,'0',0,'SIN IVA',1,NULL,NULL),(1141,114,'',0,NULL,'0',NULL,'0',0,'No ISV',1,NULL,NULL),(1142,114,'',12,NULL,'0',NULL,'0',0,'ISV 12%',1,NULL,NULL),(1161,116,'',25.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1162,116,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1163,116,'',0,NULL,'0',NULL,'0',0,'VAT rate 0',1,NULL,NULL),(1171,117,'',12.5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1172,117,'',4,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1173,117,'',1,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1174,117,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1176,117,'CGST+SGST',0,'9','1','9','1',0,'CGST+SGST - Same state sales',1,NULL,NULL),(1177,117,'IGST',18,'0','0','0','0',0,'IGST',1,NULL,NULL),(1231,123,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1232,123,'',5,NULL,'0',NULL,'0',0,'VAT Rate 5',1,NULL,NULL),(1401,140,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1402,140,'',12,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1403,140,'',6,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1404,140,'',3,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1405,140,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1481,148,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1482,148,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1483,148,'',5,NULL,'0',NULL,'0',0,'VAT super-reduced rate',1,NULL,NULL),(1484,148,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1511,151,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1512,151,'',14,NULL,'0',NULL,'0',0,'VAT Rate 14',1,NULL,NULL),(1521,152,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1522,152,'',15,NULL,'0',NULL,'0',0,'VAT Rate 15',1,NULL,NULL),(1541,154,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(1542,154,'',16,NULL,'0',NULL,'0',0,'VAT 16%',1,NULL,NULL),(1543,154,'',10,NULL,'0',NULL,'0',0,'VAT Frontero',1,NULL,NULL),(1662,166,'',15,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1663,166,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1692,169,'',5,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1693,169,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1731,173,'',25,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1732,173,'',14,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1733,173,'',8,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1734,173,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1781,178,'',7,NULL,'0',NULL,'0',0,'ITBMS standard rate',1,NULL,NULL),(1782,178,'',0,NULL,'0',NULL,'0',0,'ITBMS Rate 0',1,NULL,NULL),(1811,181,'',18,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1812,181,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1841,184,'',20,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1842,184,'',7,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1843,184,'',3,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1844,184,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1881,188,'',24,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(1882,188,'',9,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1883,188,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(1884,188,'',5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(1931,193,'',0,NULL,'0',NULL,'0',0,'No VAT in SPM',1,NULL,NULL),(2011,201,'',19,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(2012,201,'',10,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(2013,201,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2021,202,'',22,NULL,'0',NULL,'0',0,'VAT standard rate',1,NULL,NULL),(2022,202,'',9.5,NULL,'0',NULL,'0',0,'VAT reduced rate',1,NULL,NULL),(2023,202,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2051,205,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(2052,205,'',14,NULL,'0',NULL,'0',0,'VAT 14%',1,NULL,NULL),(2131,213,'',5,NULL,'0',NULL,'0',0,'VAT 5%',1,NULL,NULL),(2261,226,'',20,NULL,'0',NULL,'0',0,'VAT standart rate',1,NULL,NULL),(2262,226,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2321,232,'',0,NULL,'0',NULL,'0',0,'No VAT',1,NULL,NULL),(2322,232,'',12,NULL,'0',NULL,'0',0,'VAT 12%',1,NULL,NULL),(2323,232,'',8,NULL,'0',NULL,'0',0,'VAT 8%',1,NULL,NULL),(2461,246,'',0,NULL,'0',NULL,'0',0,'VAT Rate 0',1,NULL,NULL),(2462,102,'',23,'0','0','0','0',0,'Κανονικός Φ.Π.Α.',1,NULL,NULL),(2463,102,'',0,'0','0','0','0',0,'Μηδενικό Φ.Π.Α.',1,NULL,NULL),(2464,102,'',13,'0','0','0','0',0,'Μειωμένος Φ.Π.Α.',1,NULL,NULL),(2465,102,'',6.5,'0','0','0','0',0,'Υπερμειωμένος Φ.Π.Α.',1,NULL,NULL),(2466,102,'',16,'0','0','0','0',0,'Νήσων κανονικός Φ.Π.Α.',1,NULL,NULL),(2467,102,'',9,'0','0','0','0',0,'Νήσων μειωμένος Φ.Π.Α.',1,NULL,NULL),(2468,102,'',5,'0','0','0','0',0,'Νήσων υπερμειωμένος Φ.Π.Α.',1,NULL,NULL),(2469,1,'85',8.5,NULL,'0',NULL,'0',0,'VAT standard rate (DOM sauf Guyane et Saint-Martin)',0,NULL,NULL),(2470,1,'85NPR',8.5,NULL,'0',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0,NULL,NULL),(2471,1,'85NPROM',8.5,'2','3',NULL,'0',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer',0,NULL,NULL),(2472,1,'85NPROMOMR',8.5,'2','3','2.5','3',1,'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer et Octroi de Mer Regional',0,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_c_tva` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_type_contact`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_type_contact`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_type_contact` (
    +  `rowid` int(11) NOT NULL,
    +  `element` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `source` varchar(8) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'external',
    +  `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_type_contact_id` (`element`,`source`,`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_type_contact`
    +--
    +
    +LOCK TABLES `llx_c_type_contact` WRITE;
    +/*!40000 ALTER TABLE `llx_c_type_contact` DISABLE KEYS */;
    +INSERT INTO `llx_c_type_contact` VALUES (10,'contrat','internal','SALESREPSIGN','Commercial signataire du contrat',1,NULL,0),(11,'contrat','internal','SALESREPFOLL','Commercial suivi du contrat',1,NULL,0),(20,'contrat','external','BILLING','Contact client facturation contrat',1,NULL,0),(21,'contrat','external','CUSTOMER','Contact client suivi contrat',1,NULL,0),(22,'contrat','external','SALESREPSIGN','Contact client signataire contrat',1,NULL,0),(31,'propal','internal','SALESREPFOLL','Commercial à l\'origine de la propale',1,NULL,0),(40,'propal','external','BILLING','Contact client facturation propale',1,NULL,0),(41,'propal','external','CUSTOMER','Contact client suivi propale',1,NULL,0),(42,'propal','external','SHIPPING','Customer contact for delivery',1,NULL,0),(50,'facture','internal','SALESREPFOLL','Responsable suivi du paiement',1,NULL,0),(60,'facture','external','BILLING','Contact client facturation',1,NULL,0),(61,'facture','external','SHIPPING','Contact client livraison',1,NULL,0),(62,'facture','external','SERVICE','Contact client prestation',1,NULL,0),(70,'invoice_supplier','internal','SALESREPFOLL','Responsable suivi du paiement',1,NULL,0),(71,'invoice_supplier','external','BILLING','Contact fournisseur facturation',1,NULL,0),(72,'invoice_supplier','external','SHIPPING','Contact fournisseur livraison',1,NULL,0),(73,'invoice_supplier','external','SERVICE','Contact fournisseur prestation',1,NULL,0),(80,'agenda','internal','ACTOR','Responsable',1,NULL,0),(81,'agenda','internal','GUEST','Guest',1,NULL,0),(85,'agenda','external','ACTOR','Responsable',1,NULL,0),(86,'agenda','external','GUEST','Guest',1,NULL,0),(91,'commande','internal','SALESREPFOLL','Responsable suivi de la commande',1,NULL,0),(100,'commande','external','BILLING','Contact client facturation commande',1,NULL,0),(101,'commande','external','CUSTOMER','Contact client suivi commande',1,NULL,0),(102,'commande','external','SHIPPING','Contact client livraison commande',1,NULL,0),(120,'fichinter','internal','INTERREPFOLL','Responsable suivi de l\'intervention',1,NULL,0),(121,'fichinter','internal','INTERVENING','Intervenant',1,NULL,0),(130,'fichinter','external','BILLING','Contact client facturation intervention',1,NULL,0),(131,'fichinter','external','CUSTOMER','Contact client suivi de l\'intervention',1,NULL,0),(140,'order_supplier','internal','SALESREPFOLL','Responsable suivi de la commande',1,NULL,0),(141,'order_supplier','internal','SHIPPING','Responsable réception de la commande',1,NULL,0),(142,'order_supplier','external','BILLING','Contact fournisseur facturation commande',1,NULL,0),(143,'order_supplier','external','CUSTOMER','Contact fournisseur suivi commande',1,NULL,0),(145,'order_supplier','external','SHIPPING','Contact fournisseur livraison commande',1,NULL,0),(150,'dolresource','internal','USERINCHARGE','In charge of resource',1,NULL,0),(151,'dolresource','external','THIRDINCHARGE','In charge of resource',1,NULL,0),(155,'ticket','internal','SUPPORTTEC','Utilisateur contact support',1,NULL,0),(156,'ticket','internal','CONTRIBUTOR','Intervenant',1,NULL,0),(157,'ticket','external','SUPPORTCLI','Contact client suivi incident',1,NULL,0),(158,'ticket','external','CONTRIBUTOR','Intervenant',1,NULL,0),(160,'project','internal','PROJECTLEADER','Chef de Projet',1,NULL,0),(161,'project','internal','PROJECTCONTRIBUTOR','Intervenant',1,NULL,0),(170,'project','external','PROJECTLEADER','Chef de Projet',1,NULL,0),(171,'project','external','PROJECTCONTRIBUTOR','Intervenant',1,NULL,0),(180,'project_task','internal','TASKEXECUTIVE','Responsable',1,NULL,0),(181,'project_task','internal','TASKCONTRIBUTOR','Intervenant',1,NULL,0),(190,'project_task','external','TASKEXECUTIVE','Responsable',1,NULL,0),(191,'project_task','external','TASKCONTRIBUTOR','Intervenant',1,NULL,0),(200,'societe','external','GENERALREF','Généraliste (référent)',0,'cabinetmed',0),(201,'societe','external','GENERALISTE','Généraliste',0,'cabinetmed',0),(210,'societe','external','SPECCHIROR','Chirurgien ortho',0,'cabinetmed',0),(211,'societe','external','SPECCHIROT','Chirurgien autre',0,'cabinetmed',0),(220,'societe','external','SPECDERMA','Dermatologue',0,'cabinetmed',0),(225,'societe','external','SPECENDOC','Endocrinologue',0,'cabinetmed',0),(230,'societe','external','SPECGYNECO','Gynécologue',0,'cabinetmed',0),(240,'societe','external','SPECGASTRO','Gastroantérologue',0,'cabinetmed',0),(245,'societe','external','SPECINTERNE','Interniste',0,'cabinetmed',0),(250,'societe','external','SPECCARDIO','Cardiologue',0,'cabinetmed',0),(260,'societe','external','SPECNEPHRO','Néphrologue',0,'cabinetmed',0),(263,'societe','external','SPECPNEUMO','Pneumologue',0,'cabinetmed',0),(265,'societe','external','SPECNEURO','Neurologue',0,'cabinetmed',0),(270,'societe','external','SPECRHUMATO','Rhumatologue',0,'cabinetmed',0),(280,'societe','external','KINE','Kinésithérapeute',0,'cabinetmed',0);
    +/*!40000 ALTER TABLE `llx_c_type_contact` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_type_container`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_type_container`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_type_container` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(32) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(64) NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_type_container_id` (`code`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_type_container`
    +--
    +
    +LOCK TABLES `llx_c_type_container` WRITE;
    +/*!40000 ALTER TABLE `llx_c_type_container` DISABLE KEYS */;
    +INSERT INTO `llx_c_type_container` VALUES (2,'page',1,'Page',1,'system'),(3,'banner',1,'Banner',1,'system'),(4,'blogpost',1,'BlogPost',1,'system'),(5,'other',1,'Other',1,'system');
    +/*!40000 ALTER TABLE `llx_c_type_container` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_type_fees`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_type_fees`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_type_fees` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  `type` int(11) DEFAULT '0',
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_type_fees` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_type_fees`
    +--
    +
    +LOCK TABLES `llx_c_type_fees` WRITE;
    +/*!40000 ALTER TABLE `llx_c_type_fees` DISABLE KEYS */;
    +INSERT INTO `llx_c_type_fees` VALUES (1,'TF_OTHER','Other','705',1,NULL,0,0),(2,'TF_TRIP','Trip',NULL,1,NULL,0,0),(3,'TF_LUNCH','Lunch',NULL,1,NULL,0,0),(4,'EX_KME','ExpLabelKm','625100',1,NULL,0,0),(5,'EX_FUE','ExpLabelFuelCV','606150',0,NULL,0,0),(6,'EX_HOT','ExpLabelHotel','625160',0,NULL,0,0),(7,'EX_PAR','ExpLabelParkingCV','625160',0,NULL,0,0),(8,'EX_TOL','ExpLabelTollCV','625160',0,NULL,0,0),(9,'EX_TAX','ExpLabelVariousTaxes','637800',0,NULL,0,0),(10,'EX_IND','ExpLabelIndemnityTranspSub','648100',0,NULL,0,0),(11,'EX_SUM','ExpLabelMaintenanceSupply','606300',0,NULL,0,0),(12,'EX_SUO','ExpLabelOfficeSupplies','606400',0,NULL,0,0),(13,'EX_CAR','ExpLabelCarRental','613000',0,NULL,0,0),(14,'EX_DOC','ExpLabelDocumentation','618100',0,NULL,0,0),(15,'EX_CUR','ExpLabelCustomersReceiving','625710',0,NULL,0,0),(16,'EX_OTR','ExpLabelOtherReceiving','625700',0,NULL,0,0),(17,'EX_POS','ExpLabelPostage','626100',0,NULL,0,0),(18,'EX_CAM','ExpLabelMaintenanceRepairCV','615300',0,NULL,0,0),(19,'EX_EMM','ExpLabelEmployeesMeal','625160',0,NULL,0,0),(20,'EX_GUM','ExpLabelGuestsMeal','625160',0,NULL,0,0),(21,'EX_BRE','ExpLabelBreakfast','625160',0,NULL,0,0),(22,'EX_FUE_VP','ExpLabelFuelPV','606150',0,NULL,0,0),(23,'EX_TOL_VP','ExpLabelTollPV','625160',0,NULL,0,0),(24,'EX_PAR_VP','ExpLabelParkingPV','625160',0,NULL,0,0),(25,'EX_CAM_VP','ExpLabelMaintenanceRepairPV','615300',0,NULL,0,0);
    +/*!40000 ALTER TABLE `llx_c_type_fees` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_type_resource`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_type_resource`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_type_resource` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_type_resource_id` (`label`,`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_type_resource`
    +--
    +
    +LOCK TABLES `llx_c_type_resource` WRITE;
    +/*!40000 ALTER TABLE `llx_c_type_resource` DISABLE KEYS */;
    +INSERT INTO `llx_c_type_resource` VALUES (1,'RES_ROOMS','Rooms',1),(2,'RES_CARS','Cars',1);
    +/*!40000 ALTER TABLE `llx_c_type_resource` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_typent`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_typent`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_typent` (
    +  `id` int(11) NOT NULL,
    +  `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_country` int(11) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `module` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`id`),
    +  UNIQUE KEY `uk_c_typent` (`code`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_typent`
    +--
    +
    +LOCK TABLES `llx_c_typent` WRITE;
    +/*!40000 ALTER TABLE `llx_c_typent` DISABLE KEYS */;
    +INSERT INTO `llx_c_typent` VALUES (0,'TE_UNKNOWN','-',NULL,1,NULL,0),(1,'TE_STARTUP','Start-up',NULL,1,NULL,0),(2,'TE_GROUP','Grand groupe',NULL,1,NULL,0),(3,'TE_MEDIUM','PME/PMI',NULL,1,NULL,0),(4,'TE_SMALL','TPE',NULL,1,NULL,0),(5,'TE_ADMIN','Administration',NULL,1,NULL,0),(6,'TE_WHOLE','Grossiste',NULL,1,NULL,0),(7,'TE_RETAIL','Revendeur',NULL,1,NULL,0),(8,'TE_PRIVATE','Particulier',NULL,1,NULL,0),(100,'TE_OTHER','Autres',NULL,1,NULL,0),(101,'TE_HOMME','Homme',NULL,0,'cabinetmed',0),(102,'TE_FEMME','Femme',NULL,0,'cabinetmed',0),(231,'TE_A_RI','Responsable Inscripto',23,1,NULL,0),(232,'TE_B_RNI','Responsable No Inscripto',23,1,NULL,0),(233,'TE_C_FE','Consumidor Final/Exento',23,1,NULL,0);
    +/*!40000 ALTER TABLE `llx_c_typent` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_units`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_units`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_units` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `short_label` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_c_units_code` (`code`)
    +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_units`
    +--
    +
    +LOCK TABLES `llx_c_units` WRITE;
    +/*!40000 ALTER TABLE `llx_c_units` DISABLE KEYS */;
    +INSERT INTO `llx_c_units` VALUES (1,'P','piece','p',1),(2,'SET','set','se',1),(3,'S','second','s',1),(4,'H','hour','h',1),(5,'D','day','d',1),(6,'KG','kilogram','kg',1),(7,'G','gram','g',1),(8,'M','meter','m',1),(9,'LM','linear meter','lm',1),(10,'M2','square meter','m2',1),(11,'M3','cubic meter','m3',1),(12,'L','liter','l',1);
    +/*!40000 ALTER TABLE `llx_c_units` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_c_ziptown`
    +--
    +
    +DROP TABLE IF EXISTS `llx_c_ziptown`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_c_ziptown` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `code` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_county` int(11) DEFAULT NULL,
    +  `fk_pays` int(11) NOT NULL DEFAULT '0',
    +  `zip` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
    +  `town` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_ziptown_fk_pays` (`zip`,`town`,`fk_pays`),
    +  KEY `idx_c_ziptown_fk_county` (`fk_county`),
    +  KEY `idx_c_ziptown_fk_pays` (`fk_pays`),
    +  KEY `idx_c_ziptown_zip` (`zip`),
    +  CONSTRAINT `fk_c_ziptown_fk_county` FOREIGN KEY (`fk_county`) REFERENCES `llx_c_departements` (`rowid`),
    +  CONSTRAINT `fk_c_ziptown_fk_pays` FOREIGN KEY (`fk_pays`) REFERENCES `llx_c_country` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_c_ziptown`
    +--
    +
    +LOCK TABLES `llx_c_ziptown` WRITE;
    +/*!40000 ALTER TABLE `llx_c_ziptown` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_c_ziptown` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_parent` int(11) NOT NULL DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `type` tinyint(4) NOT NULL DEFAULT '1',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `visible` tinyint(4) NOT NULL DEFAULT '1',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `color` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_categorie_ref` (`entity`,`fk_parent`,`label`,`type`),
    +  KEY `idx_categorie_type` (`type`),
    +  KEY `idx_categorie_label` (`label`)
    +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie`
    +--
    +
    +LOCK TABLES `llx_categorie` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie` DISABLE KEYS */;
    +INSERT INTO `llx_categorie` VALUES (1,0,'Preferred Partners',1,1,'This category is used to tag suppliers that are Prefered Partners',NULL,0,NULL,'005fbf',NULL),(2,0,'MyCategory',1,1,'This is description of MyCategory for customer and prospects<br />',NULL,0,NULL,NULL,NULL),(3,7,'Hot products',1,1,'This is description of hot products<br />',NULL,0,NULL,NULL,NULL),(4,0,'Merchant',1,1,'Category dedicated to merchant third parties',NULL,0,NULL,'bf5f00',NULL),(5,7,'Bio Fairtrade',0,1,'',NULL,0,NULL,NULL,NULL),(6,7,'Bio AB',0,1,'',NULL,0,NULL,NULL,NULL),(7,9,'Bio',0,1,'This product is a BIO product',NULL,0,NULL,NULL,NULL),(8,7,'Bio Dynamic',0,1,'',NULL,0,NULL,NULL,NULL),(9,0,'High Quality Product',0,1,'Label dedicated for High quality products',NULL,0,NULL,'7f7f00',NULL),(10,0,'Reserved for VIP',0,1,'Product of thi category are reserved to VIP customers',NULL,0,NULL,'7f0000',NULL),(11,9,'ISO',0,1,'Product of this category has an ISO label',NULL,0,NULL,NULL,NULL),(12,0,'VIP',2,1,'',NULL,0,NULL,'bf5f00',NULL),(13,0,'Region North',2,1,'Customer of North Region',NULL,0,NULL,'7f007f',NULL),(14,0,'Regular customer',2,1,'',NULL,0,NULL,'5fbf00',NULL),(15,13,'Region North A',2,1,'',NULL,0,NULL,'bf00bf',NULL),(17,0,'MyTag1',4,1,'',NULL,0,NULL,NULL,NULL),(18,0,'Met during meeting',4,1,'',NULL,0,NULL,'ff7f00',NULL),(19,17,'MySubTag1',4,1,'',NULL,0,NULL,NULL,NULL),(20,13,'Region North B',2,1,'',NULL,0,NULL,'bf005f',NULL),(21,0,'Region South',2,1,'',NULL,0,NULL,NULL,NULL),(22,21,'Region South A',2,1,'',NULL,0,NULL,NULL,NULL),(23,21,'Region South B',2,1,'',NULL,0,NULL,NULL,NULL),(24,0,'Limited Edition',0,1,'This is a limited edition',NULL,0,NULL,'ff7f00',NULL),(25,0,'Imported products',0,1,'For product we have to import from another country',NULL,0,NULL,NULL,NULL),(26,28,'Friends',4,1,'Category of friends contact',NULL,0,NULL,'00bf00',NULL),(27,28,'Family',4,1,'Category of family contacts',NULL,0,NULL,'007f3f',NULL),(28,0,'Personal contacts',4,1,'For personal contacts',NULL,0,NULL,'007f3f',NULL),(29,0,'Online only merchant',1,1,'',NULL,0,NULL,'aaaaff',NULL),(30,0,'ppp',6,1,'ppp',NULL,0,NULL,'ff5656',NULL);
    +/*!40000 ALTER TABLE `llx_categorie` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_account`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_account`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_account` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_account` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_account`),
    +  KEY `idx_categorie_account_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_account_fk_account` (`fk_account`),
    +  CONSTRAINT `fk_categorie_account_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_account_fk_account` FOREIGN KEY (`fk_account`) REFERENCES `llx_bank_account` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_account`
    +--
    +
    +LOCK TABLES `llx_categorie_account` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_account` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categorie_account` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_association`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_association`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_association` (
    +  `fk_categorie_mere` int(11) NOT NULL,
    +  `fk_categorie_fille` int(11) NOT NULL,
    +  UNIQUE KEY `uk_categorie_association` (`fk_categorie_mere`,`fk_categorie_fille`),
    +  UNIQUE KEY `uk_categorie_association_fk_categorie_fille` (`fk_categorie_fille`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_association`
    +--
    +
    +LOCK TABLES `llx_categorie_association` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_association` DISABLE KEYS */;
    +INSERT INTO `llx_categorie_association` VALUES (3,5),(9,11);
    +/*!40000 ALTER TABLE `llx_categorie_association` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_contact`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_contact`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_contact` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_socpeople` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_socpeople`),
    +  KEY `idx_categorie_contact_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_contact_fk_socpeople` (`fk_socpeople`),
    +  CONSTRAINT `fk_categorie_contact_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_contact_fk_socpeople` FOREIGN KEY (`fk_socpeople`) REFERENCES `llx_socpeople` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_contact`
    +--
    +
    +LOCK TABLES `llx_categorie_contact` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_contact` DISABLE KEYS */;
    +INSERT INTO `llx_categorie_contact` VALUES (18,3,NULL),(18,6,NULL),(19,6,NULL),(26,9,NULL),(27,7,NULL),(27,8,NULL),(27,10,NULL),(28,11,NULL);
    +/*!40000 ALTER TABLE `llx_categorie_contact` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_fournisseur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_fournisseur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_fournisseur` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_soc`),
    +  KEY `idx_categorie_fournisseur_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_fournisseur_fk_societe` (`fk_soc`),
    +  CONSTRAINT `fk_categorie_fournisseur_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_fournisseur_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_fournisseur`
    +--
    +
    +LOCK TABLES `llx_categorie_fournisseur` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_fournisseur` DISABLE KEYS */;
    +INSERT INTO `llx_categorie_fournisseur` VALUES (1,2,NULL),(1,10,NULL);
    +/*!40000 ALTER TABLE `llx_categorie_fournisseur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_lang`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_lang`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_lang` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_category` int(11) NOT NULL DEFAULT '0',
    +  `lang` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_category_lang` (`fk_category`,`lang`),
    +  CONSTRAINT `fk_category_lang_fk_category` FOREIGN KEY (`fk_category`) REFERENCES `llx_categorie` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_lang`
    +--
    +
    +LOCK TABLES `llx_categorie_lang` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_lang` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categorie_lang` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_member`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_member`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_member` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_member` int(11) NOT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_member`),
    +  KEY `idx_categorie_member_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_member_fk_member` (`fk_member`),
    +  CONSTRAINT `fk_categorie_member_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_member_member_rowid` FOREIGN KEY (`fk_member`) REFERENCES `llx_adherent` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_member`
    +--
    +
    +LOCK TABLES `llx_categorie_member` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_member` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categorie_member` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_product`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_product`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_product` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_product` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_product`),
    +  KEY `idx_categorie_product_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_product_fk_product` (`fk_product`),
    +  CONSTRAINT `fk_categorie_product_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_product_product_rowid` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_product`
    +--
    +
    +LOCK TABLES `llx_categorie_product` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_product` DISABLE KEYS */;
    +INSERT INTO `llx_categorie_product` VALUES (5,2,NULL),(6,2,NULL),(8,4,NULL),(9,5,NULL),(9,12,NULL),(10,3,NULL),(10,4,NULL),(24,1,NULL),(24,11,NULL),(25,10,NULL);
    +/*!40000 ALTER TABLE `llx_categorie_product` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_project`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_project`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_project` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_project` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_project`),
    +  KEY `idx_categorie_project_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_project_fk_project` (`fk_project`),
    +  CONSTRAINT `fk_categorie_project_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_project_fk_project` FOREIGN KEY (`fk_project`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_categorie_project_fk_project_rowid` FOREIGN KEY (`fk_project`) REFERENCES `llx_projet` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_project`
    +--
    +
    +LOCK TABLES `llx_categorie_project` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_project` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categorie_project` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_societe`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_societe`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_societe` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_soc`),
    +  KEY `idx_categorie_societe_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_societe_fk_societe` (`fk_soc`),
    +  CONSTRAINT `fk_categorie_societe_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_societe_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_societe`
    +--
    +
    +LOCK TABLES `llx_categorie_societe` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_societe` DISABLE KEYS */;
    +INSERT INTO `llx_categorie_societe` VALUES (12,10,NULL),(12,11,NULL),(14,11,NULL);
    +/*!40000 ALTER TABLE `llx_categorie_societe` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categorie_user`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categorie_user`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categorie_user` (
    +  `fk_categorie` int(11) NOT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_categorie`,`fk_user`),
    +  KEY `idx_categorie_user_fk_categorie` (`fk_categorie`),
    +  KEY `idx_categorie_user_fk_user` (`fk_user`),
    +  CONSTRAINT `fk_categorie_user_categorie_rowid` FOREIGN KEY (`fk_categorie`) REFERENCES `llx_categorie` (`rowid`),
    +  CONSTRAINT `fk_categorie_user_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categorie_user`
    +--
    +
    +LOCK TABLES `llx_categorie_user` WRITE;
    +/*!40000 ALTER TABLE `llx_categorie_user` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categorie_user` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_categories_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_categories_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_categories_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_categories_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_categories_extrafields`
    +--
    +
    +LOCK TABLES `llx_categories_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_categories_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_categories_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_chargesociales`
    +--
    +
    +DROP TABLE IF EXISTS `llx_chargesociales`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_chargesociales` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `date_ech` datetime NOT NULL,
    +  `libelle` varchar(80) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_type` int(11) NOT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `paye` smallint(6) NOT NULL DEFAULT '0',
    +  `periode` date DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `ref` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_chargesociales`
    +--
    +
    +LOCK TABLES `llx_chargesociales` WRITE;
    +/*!40000 ALTER TABLE `llx_chargesociales` DISABLE KEYS */;
    +INSERT INTO `llx_chargesociales` VALUES (4,'2011-08-09 00:00:00','fff',1,60,NULL,NULL,10.00000000,1,'2011-08-01','2012-12-08 13:11:10',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_chargesociales` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_client` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_cloture` datetime DEFAULT NULL,
    +  `date_commande` date DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_cloture` int(11) DEFAULT NULL,
    +  `source` smallint(6) DEFAULT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  `amount_ht` double(24,8) DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise_absolue` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `facture` tinyint(4) DEFAULT '0',
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_cond_reglement` int(11) DEFAULT NULL,
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `date_livraison` date DEFAULT NULL,
    +  `fk_shipping_method` int(11) DEFAULT NULL,
    +  `fk_warehouse` int(11) DEFAULT NULL,
    +  `fk_availability` int(11) DEFAULT NULL,
    +  `fk_input_reason` int(11) DEFAULT NULL,
    +  `fk_delivery_address` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_commande_ref` (`ref`,`entity`),
    +  KEY `idx_commande_fk_soc` (`fk_soc`),
    +  KEY `idx_commande_fk_user_author` (`fk_user_author`),
    +  KEY `idx_commande_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_commande_fk_user_cloture` (`fk_user_cloture`),
    +  KEY `idx_commande_fk_projet` (`fk_projet`),
    +  KEY `idx_commande_fk_account` (`fk_account`),
    +  KEY `idx_commande_fk_currency` (`fk_currency`),
    +  CONSTRAINT `fk_commande_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_commande_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_commande_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_commande_fk_user_cloture` FOREIGN KEY (`fk_user_cloture`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_commande_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=93 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande`
    +--
    +
    +LOCK TABLES `llx_commande` WRITE;
    +/*!40000 ALTER TABLE `llx_commande` DISABLE KEYS */;
    +INSERT INTO `llx_commande` VALUES (1,'2016-07-30 15:13:20',1,NULL,'CO1107-0002',1,NULL,NULL,'','2011-07-20 15:23:12','2016-08-08 13:59:09',NULL,'2016-07-20',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,1,1,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(2,'2016-07-30 15:13:20',1,NULL,'CO1107-0003',1,NULL,NULL,'','2011-07-20 23:20:12','2018-02-12 17:06:51',NULL,'2016-07-21',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,0,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(3,'2016-07-30 15:13:20',1,NULL,'CO1107-0004',1,NULL,NULL,'','2011-07-20 23:22:53','2018-02-17 18:27:56',NULL,'2016-07-21',1,NULL,1,NULL,NULL,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,30.00000000,30.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(5,'2016-07-30 15:12:32',1,NULL,'CO1108-0001',1,NULL,NULL,'','2011-08-08 03:04:11','2015-08-08 03:04:21',NULL,'2015-08-08',1,NULL,1,NULL,NULL,2,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,'','','einstein',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(6,'2016-07-30 15:13:20',19,NULL,'(PROV6)',1,NULL,NULL,'','2013-02-17 16:22:14',NULL,NULL,'2016-02-17',1,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,11.76000000,0.00000000,0.00000000,60.00000000,71.76000000,'','','einstein',0,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(17,'2017-02-15 22:50:34',4,NULL,'CO7001-0005',1,NULL,NULL,NULL,'2017-02-15 23:50:34','2017-02-15 23:50:34',NULL,'2016-05-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,509.00000000,509.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,509.00000000,0.00000000,509.00000000,NULL),(18,'2017-02-15 23:08:58',7,4,'CO7001-0006',1,NULL,NULL,NULL,'2017-02-15 23:51:23','2017-02-15 23:51:23',NULL,'2017-02-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,900.00000000,900.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,900.00000000,0.00000000,900.00000000,NULL),(20,'2017-02-15 23:09:04',4,NULL,'CO7001-0007',1,NULL,NULL,NULL,'2017-02-15 23:55:52','2017-02-15 23:55:52',NULL,'2016-04-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,330.00000000,330.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,330.00000000,0.00000000,330.00000000,NULL),(29,'2017-02-15 23:08:42',4,NULL,'CO7001-0008',1,NULL,NULL,NULL,'2017-02-16 00:03:44','2017-02-16 00:03:44',NULL,'2017-02-12',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,457.00000000,457.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,457.00000000,0.00000000,457.00000000,NULL),(34,'2017-02-15 23:08:47',11,NULL,'CO7001-0009',1,NULL,NULL,NULL,'2017-02-16 00:05:01','2017-02-16 00:05:01',NULL,'2017-01-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,124.00000000,124.00000000,'','','',0,NULL,NULL,2,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,124.00000000,0.00000000,124.00000000,NULL),(38,'2017-02-15 23:08:50',3,NULL,'CO7001-0010',1,NULL,NULL,NULL,'2017-02-16 00:05:01','2017-02-16 00:05:01',NULL,'2017-02-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,200.00000000,200.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL),(40,'2017-02-15 23:08:53',11,NULL,'CO7001-0011',1,NULL,NULL,NULL,'2017-02-16 00:05:10','2017-02-16 00:05:11',NULL,'2017-01-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,1210.00000000,1210.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1210.00000000,0.00000000,1210.00000000,NULL),(43,'2017-02-15 23:05:11',10,NULL,'CO7001-0012',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2017-02-16 00:05:11',NULL,'2017-02-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,478.00000000,478.00000000,'','','',0,NULL,NULL,2,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,478.00000000,0.00000000,478.00000000,NULL),(47,'2017-02-15 23:09:10',1,NULL,'CO7001-0013',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2017-02-16 00:05:11',NULL,'2016-11-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,55.00000000,55.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,55.00000000,0.00000000,55.00000000,NULL),(48,'2017-02-15 23:09:07',4,NULL,'CO7001-0014',1,NULL,NULL,NULL,'2017-02-16 00:05:11','2017-02-16 00:05:11',NULL,'2016-07-30',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,540.00000000,540.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,540.00000000,0.00000000,540.00000000,NULL),(50,'2017-02-15 23:05:26',1,NULL,'CO7001-0015',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2017-02-16 00:05:26',NULL,'2017-12-12',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,118.00000000,118.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,118.00000000,0.00000000,118.00000000,NULL),(54,'2017-02-15 23:06:01',12,NULL,'CO7001-0016',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2017-02-16 00:05:26','2017-02-16 03:05:56','2016-06-03',12,NULL,12,12,1,3,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,220.00000000,220.00000000,'','','',1,NULL,NULL,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,220.00000000,0.00000000,220.00000000,NULL),(58,'2017-02-15 23:09:13',1,NULL,'CO7001-0017',1,NULL,NULL,NULL,'2017-02-16 00:05:26','2017-02-16 00:05:26',NULL,'2016-07-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,436.00000000,436.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,436.00000000,0.00000000,436.00000000,NULL),(62,'2017-02-15 23:09:16',19,NULL,'CO7001-0018',1,NULL,NULL,NULL,'2017-02-16 00:05:35','2017-02-16 00:05:35',NULL,'2016-02-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,410.00000000,410.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,410.00000000,0.00000000,410.00000000,NULL),(68,'2017-02-15 23:09:19',3,NULL,'CO7001-0019',1,NULL,NULL,NULL,'2017-02-16 00:05:35','2017-02-16 00:05:35',NULL,'2016-05-19',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,45.00000000,45.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,45.00000000,0.00000000,45.00000000,NULL),(72,'2017-02-15 23:09:23',6,NULL,'CO7001-0020',1,NULL,NULL,NULL,'2017-02-16 00:05:36','2017-02-16 00:05:36',NULL,'2016-11-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,610.00000000,610.00000000,'','','',0,NULL,NULL,NULL,NULL,NULL,2,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,610.00000000,0.00000000,610.00000000,NULL),(75,'2017-02-16 00:14:20',4,NULL,'CO7001-0021',1,NULL,NULL,NULL,'2017-02-16 00:05:37','2017-02-16 04:14:20',NULL,'2016-02-13',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,25.00000000,49.88000000,0.00000000,1200.00000000,1274.88000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1200.00000000,25.00000000,1274.88000000,NULL),(78,'2017-02-15 23:05:37',12,NULL,'CO7001-0022',1,NULL,NULL,NULL,'2017-02-16 00:05:37','2017-02-16 00:05:37',NULL,'2016-10-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,928.00000000,928.00000000,'','','',0,NULL,NULL,2,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,928.00000000,0.00000000,928.00000000,NULL),(81,'2017-02-15 23:09:30',11,NULL,'CO7001-0023',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2017-02-16 00:05:38',NULL,'2016-07-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,725.00000000,725.00000000,'','','',0,NULL,NULL,2,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,725.00000000,0.00000000,725.00000000,NULL),(83,'2017-02-15 23:10:24',26,NULL,'CO7001-0024',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2017-02-16 00:05:38',NULL,'2016-04-03',12,NULL,12,NULL,1,-1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,105.00000000,105.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,1,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,105.00000000,0.00000000,105.00000000,NULL),(84,'2017-02-15 23:05:38',2,NULL,'CO7001-0025',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2017-02-16 00:05:38',NULL,'2016-06-19',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,510.00000000,510.00000000,'','','',0,NULL,NULL,1,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,510.00000000,0.00000000,510.00000000,NULL),(85,'2017-02-15 23:05:38',1,NULL,'CO7001-0026',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2017-02-16 00:05:38',NULL,'2016-01-03',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,47.00000000,47.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,47.00000000,0.00000000,47.00000000,NULL),(88,'2017-02-15 23:09:36',10,NULL,'CO7001-0027',1,NULL,NULL,NULL,'2017-02-16 00:05:38','2017-02-16 00:05:38',NULL,'2015-02-23',12,NULL,12,NULL,1,1,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,50.00000000,50.00000000,'','','',0,NULL,NULL,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,50.00000000,0.00000000,50.00000000,NULL),(90,'2017-02-16 00:46:31',19,NULL,'(PROV90)',1,NULL,NULL,NULL,'2017-02-16 04:46:31',NULL,NULL,'2017-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,440.00000000,440.00000000,'','','',0,NULL,NULL,3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,440.00000000,0.00000000,440.00000000,NULL),(91,'2017-02-16 00:46:37',1,NULL,'(PROV91)',1,NULL,NULL,NULL,'2017-02-16 04:46:37',NULL,NULL,'2017-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,1000.00000000,1000.00000000,'','','',0,NULL,NULL,3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL),(92,'2017-02-16 00:47:25',3,NULL,'(PROV92)',1,NULL,NULL,NULL,'2017-02-16 04:47:25',NULL,NULL,'2017-02-16',12,NULL,NULL,NULL,NULL,0,0.00000000,0,NULL,0,0.00000000,0.00000000,0.00000000,1018.00000000,1018.00000000,'','','',0,NULL,NULL,3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'',0,'EUR',1.00000000,1018.00000000,0.00000000,1018.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_commande` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commande_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_extrafields`
    +--
    +
    +LOCK TABLES `llx_commande_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_commande_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseur`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseur`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseur` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_soc` int(11) NOT NULL,
    +  `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_supplier` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT '0',
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_approve` datetime DEFAULT NULL,
    +  `date_approve2` datetime DEFAULT NULL,
    +  `date_commande` date DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_approve` int(11) DEFAULT NULL,
    +  `fk_user_approve2` int(11) DEFAULT NULL,
    +  `source` smallint(6) NOT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  `billed` smallint(6) DEFAULT '0',
    +  `amount_ht` double(24,8) DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_input_method` int(11) DEFAULT '0',
    +  `fk_cond_reglement` int(11) DEFAULT '0',
    +  `fk_mode_reglement` int(11) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_livraison` datetime DEFAULT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_commande_fournisseur_ref` (`ref`,`fk_soc`,`entity`),
    +  KEY `idx_commande_fournisseur_fk_soc` (`fk_soc`),
    +  KEY `billed` (`billed`),
    +  CONSTRAINT `fk_commande_fournisseur_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseur`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseur` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur` DISABLE KEYS */;
    +INSERT INTO `llx_commande_fournisseur` VALUES (1,'2017-02-01 14:54:01',13,'CF1007-0001',1,NULL,NULL,NULL,'2016-07-11 17:13:40','2017-02-01 18:51:42','2017-02-01 18:52:04',NULL,'2017-02-01',1,NULL,12,12,NULL,0,4,0,0.00000000,0,0,39.20000000,0.00000000,0.00000000,200.00000000,239.20000000,NULL,NULL,'muscadet',2,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(2,'2016-07-30 16:11:52',1,'CF1007-0002',1,NULL,NULL,NULL,'2016-07-11 18:46:28','2016-07-11 18:47:33',NULL,NULL,'2016-07-11',1,NULL,1,NULL,NULL,0,3,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,200.00000000,200.00000000,NULL,NULL,'muscadet',4,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(3,'2012-12-08 13:11:07',17,'(PROV3)',1,NULL,NULL,NULL,'2011-08-04 23:00:52',NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,'muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(4,'2012-12-08 13:11:07',17,'(PROV4)',1,NULL,NULL,NULL,'2011-08-04 23:19:32',NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,0,0,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,'muscadet',0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(13,'2017-02-01 13:35:27',1,'CF1303-0004',1,NULL,NULL,NULL,'2016-03-09 19:39:18','2016-03-09 19:39:27','2016-03-09 19:39:32',NULL,'2016-03-09',1,NULL,1,1,NULL,0,2,0,0.00000000,0,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,NULL,NULL,'muscadet',1,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_commande_fournisseur` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseur_dispatch`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseur_dispatch`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseur_dispatch` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_commande` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `fk_commandefourndet` int(11) NOT NULL DEFAULT '0',
    +  `qty` float DEFAULT NULL,
    +  `fk_entrepot` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `eatby` date DEFAULT NULL,
    +  `sellby` date DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commande_fournisseur_dispatch_fk_commande` (`fk_commande`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseur_dispatch`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseur_dispatch` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_dispatch` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_dispatch` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseur_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseur_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseur_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commande_fournisseur_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseur_extrafields`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseur_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseur_log`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseur_log`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseur_log` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datelog` datetime NOT NULL,
    +  `fk_commande` int(11) NOT NULL,
    +  `fk_statut` smallint(6) NOT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `comment` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseur_log`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseur_log` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_log` DISABLE KEYS */;
    +INSERT INTO `llx_commande_fournisseur_log` VALUES (1,'2010-07-11 15:13:40','2010-07-11 17:13:40',1,0,1,NULL),(2,'2010-07-11 15:15:42','2010-07-11 17:15:42',1,1,1,NULL),(3,'2010-07-11 15:16:28','2010-07-11 17:16:28',1,2,1,NULL),(4,'2010-07-11 15:19:14','2010-07-11 00:00:00',1,3,1,NULL),(5,'2010-07-11 15:19:36','2010-07-11 00:00:00',1,5,1,NULL),(6,'2010-07-11 16:46:28','2010-07-11 18:46:28',2,0,1,NULL),(7,'2010-07-11 16:47:33','2010-07-11 18:47:33',2,1,1,NULL),(8,'2010-07-11 16:47:41','2010-07-11 18:47:41',2,2,1,NULL),(9,'2010-07-11 16:48:00','2010-07-11 00:00:00',2,3,1,NULL),(10,'2011-08-04 21:00:52','2011-08-04 23:00:52',3,0,1,NULL),(11,'2011-08-04 21:19:32','2011-08-04 23:19:32',4,0,1,NULL),(12,'2011-08-04 21:22:16','2011-08-04 23:22:16',5,0,1,NULL),(13,'2011-08-04 21:22:54','2011-08-04 23:22:54',6,0,1,NULL),(14,'2011-08-04 21:23:29','2011-08-04 23:23:29',7,0,1,NULL),(15,'2011-08-04 21:36:10','2011-08-04 23:36:10',8,0,1,NULL),(19,'2011-08-08 13:04:37','2011-08-08 15:04:37',6,1,1,NULL),(20,'2011-08-08 13:04:38','2011-08-08 15:04:38',6,2,1,NULL),(29,'2013-03-09 18:39:18','2013-03-09 19:39:18',13,0,1,NULL),(30,'2013-03-09 18:39:27','2013-03-09 19:39:27',13,1,1,NULL),(31,'2013-03-09 18:39:32','2013-03-09 19:39:32',13,2,1,NULL),(32,'2013-03-09 18:39:41','2013-03-09 00:00:00',13,3,1,'hf'),(33,'2013-03-22 09:26:38','2013-03-22 10:26:38',14,0,1,NULL);
    +/*!40000 ALTER TABLE `llx_commande_fournisseur_log` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseurdet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseurdet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseurdet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_commande` int(11) NOT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `tva_tx` double(6,3) DEFAULT '0.000',
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `product_type` int(11) DEFAULT '0',
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `special_code` int(11) DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_commande_fournisseurdet_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_commande_fournisseurdet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseurdet`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseurdet` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseurdet` DISABLE KEYS */;
    +INSERT INTO `llx_commande_fournisseurdet` VALUES (1,1,NULL,NULL,'','','Chips',19.600,'',0.000,'',0.000,'',10,0,0,20.00000000,200.00000000,39.20000000,0.00000000,0.00000000,239.20000000,0,NULL,NULL,0,NULL,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(2,2,NULL,4,'ABCD','Decapsuleur','',0.000,'',0.000,'',0.000,'',20,0,0,10.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(6,13,NULL,NULL,'','','dfgdf',0.000,'',0.000,'0',0.000,'0',1,0,0,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000);
    +/*!40000 ALTER TABLE `llx_commande_fournisseurdet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commande_fournisseurdet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commande_fournisseurdet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commande_fournisseurdet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commande_fournisseurdet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commande_fournisseurdet_extrafields`
    +--
    +
    +LOCK TABLES `llx_commande_fournisseurdet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_commande_fournisseurdet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_commande_fournisseurdet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commandedet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commandedet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commandedet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_commande` int(11) DEFAULT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT NULL,
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT NULL,
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `fk_remise_except` int(11) DEFAULT NULL,
    +  `price` double DEFAULT NULL,
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `product_type` int(11) DEFAULT '0',
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `fk_product_fournisseur_price` int(11) DEFAULT NULL,
    +  `buy_price_ht` double(24,8) DEFAULT '0.00000000',
    +  `special_code` int(10) unsigned DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_commandefourndet` int(11) DEFAULT NULL,
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commandedet_fk_commande` (`fk_commande`),
    +  KEY `idx_commandedet_fk_product` (`fk_product`),
    +  KEY `fk_commandedet_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_commandedet_fk_commande` FOREIGN KEY (`fk_commande`) REFERENCES `llx_commande` (`rowid`),
    +  CONSTRAINT `fk_commandedet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=292 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commandedet`
    +--
    +
    +LOCK TABLES `llx_commandedet` WRITE;
    +/*!40000 ALTER TABLE `llx_commandedet` DISABLE KEYS */;
    +INSERT INTO `llx_commandedet` VALUES (1,1,NULL,NULL,NULL,'Product 1',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(2,1,NULL,2,NULL,'',0.000,'',0.000,'',0.000,'',1,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(3,1,NULL,5,NULL,'cccc',0.000,'',0.000,'',0.000,'',1,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(4,2,NULL,NULL,NULL,'hgf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(10,5,NULL,NULL,NULL,'gfdgdf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(11,6,NULL,NULL,NULL,'gdfg',19.600,'',0.000,'',0.000,'',1,0,0,NULL,10,10.00000000,10.00000000,1.96000000,0.00000000,0.00000000,11.96000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(12,6,NULL,NULL,NULL,'gfdgd',19.600,'',0.000,'',0.000,'',1,0,0,NULL,50,50.00000000,50.00000000,9.80000000,0.00000000,0.00000000,59.80000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(14,3,NULL,NULL,NULL,'gdfgdf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(15,3,NULL,NULL,NULL,'fghfgh',0.000,'',0.000,'',0.000,'',1,0,0,NULL,20,20.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(16,17,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(17,17,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(18,17,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,9,9.00000000,9.00000000,0.00000000,0.00000000,0.00000000,9.00000000,1,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',9.00000000,9.00000000,0.00000000,9.00000000),(19,18,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(20,18,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(21,18,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(24,20,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,5,5.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',5.00000000,20.00000000,0.00000000,20.00000000),(25,20,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(26,20,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(55,29,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(56,29,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(57,29,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(58,29,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,9,9.00000000,27.00000000,0.00000000,0.00000000,0.00000000,27.00000000,1,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',9.00000000,27.00000000,0.00000000,27.00000000),(59,29,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,10,10.00000000,30.00000000,0.00000000,0.00000000,0.00000000,30.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0,'EUR',10.00000000,30.00000000,0.00000000,30.00000000),(75,34,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(76,34,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(77,34,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(78,34,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,9,9.00000000,9.00000000,0.00000000,0.00000000,0.00000000,9.00000000,1,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',9.00000000,9.00000000,0.00000000,9.00000000),(94,38,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(95,38,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(99,40,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(100,40,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(101,40,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(102,40,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(103,40,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(112,43,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',9.00000000,18.00000000,0.00000000,18.00000000),(113,43,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(114,43,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(115,43,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(116,43,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(125,47,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(126,47,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(127,47,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(128,47,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,10,10.00000000,40.00000000,0.00000000,0.00000000,0.00000000,40.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',10.00000000,40.00000000,0.00000000,40.00000000),(129,48,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,10,10.00000000,40.00000000,0.00000000,0.00000000,0.00000000,40.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',10.00000000,40.00000000,0.00000000,40.00000000),(130,48,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(134,50,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(135,50,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',9.00000000,18.00000000,0.00000000,18.00000000),(145,54,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(146,54,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,10,10.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',10.00000000,20.00000000,0.00000000,20.00000000),(158,58,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(159,58,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(160,58,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,9,9.00000000,36.00000000,0.00000000,0.00000000,0.00000000,36.00000000,1,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',9.00000000,36.00000000,0.00000000,36.00000000),(174,62,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(175,62,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(176,62,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(198,68,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(199,68,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(209,72,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(210,72,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(211,72,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',10.00000000,10.00000000,0.00000000,10.00000000),(212,72,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(213,72,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(227,75,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(235,78,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(236,78,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',9.00000000,18.00000000,0.00000000,18.00000000),(237,78,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(238,78,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(246,81,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(247,81,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(248,81,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,5,5.00000000,25.00000000,0.00000000,0.00000000,0.00000000,25.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',5.00000000,25.00000000,0.00000000,25.00000000),(253,83,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,5,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',5.00000000,5.00000000,0.00000000,5.00000000),(254,83,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(255,83,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,10,10.00000000,50.00000000,0.00000000,0.00000000,0.00000000,50.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',10.00000000,50.00000000,0.00000000,50.00000000),(256,83,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,10,10.00000000,50.00000000,0.00000000,0.00000000,0.00000000,50.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',10.00000000,50.00000000,0.00000000,50.00000000),(257,84,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(258,84,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(259,84,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(260,85,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,9,9.00000000,27.00000000,0.00000000,0.00000000,0.00000000,27.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',9.00000000,27.00000000,0.00000000,27.00000000),(261,85,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(262,85,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,10,10.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',10.00000000,20.00000000,0.00000000,20.00000000),(271,88,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,10,10.00000000,50.00000000,0.00000000,0.00000000,0.00000000,50.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',10.00000000,50.00000000,0.00000000,50.00000000),(272,88,NULL,3,NULL,'',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(276,75,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,90.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(278,75,NULL,13,NULL,'A powerfull computer XP4523&nbsp;<br />\r\n(Code douane: USXP765 - Pays d&#39;origine: Etats-Unis)',5.000,'',9.975,'1',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,25.00000000,49.88000000,0.00000000,574.88000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,25.00000000,574.88000000),(279,75,NULL,13,NULL,'A powerfull computer XP4523&nbsp;<br>\n(Code douane: USXP765 - Pays d\'origine: Etats-Unis)',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(280,90,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(281,90,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,10,10.00000000,30.00000000,0.00000000,0.00000000,0.00000000,30.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',10.00000000,30.00000000,0.00000000,30.00000000),(282,90,NULL,2,NULL,'',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(283,90,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(284,91,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(285,91,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(286,91,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(287,92,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(288,92,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(289,92,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(290,92,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(291,92,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0,'EUR',9.00000000,18.00000000,0.00000000,18.00000000);
    +/*!40000 ALTER TABLE `llx_commandedet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_commandedet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_commandedet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_commandedet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_commandedet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_commandedet_extrafields`
    +--
    +
    +LOCK TABLES `llx_commandedet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_commandedet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_commandedet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_comment`
    +--
    +
    +DROP TABLE IF EXISTS `llx_comment`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_comment` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `description` text COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_element` int(11) DEFAULT NULL,
    +  `element_type` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) DEFAULT '1',
    +  `import_key` varchar(125) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_comment`
    +--
    +
    +LOCK TABLES `llx_comment` WRITE;
    +/*!40000 ALTER TABLE `llx_comment` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_comment` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_cond_reglement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_cond_reglement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_cond_reglement` (
    +  `rowid` int(11) NOT NULL,
    +  `code` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `sortorder` smallint(6) DEFAULT NULL,
    +  `active` tinyint(4) DEFAULT '1',
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `libelle_facture` text COLLATE utf8_unicode_ci,
    +  `fdm` tinyint(4) DEFAULT NULL,
    +  `nbjour` smallint(6) DEFAULT NULL,
    +  `decalage` smallint(6) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_cond_reglement`
    +--
    +
    +LOCK TABLES `llx_cond_reglement` WRITE;
    +/*!40000 ALTER TABLE `llx_cond_reglement` DISABLE KEYS */;
    +INSERT INTO `llx_cond_reglement` VALUES (1,'RECEP',1,1,'A réception','Réception de facture',0,0,NULL),(2,'30D',2,1,'30 jours','Réglement à 30 jours',0,30,NULL),(3,'30DENDMONTH',3,1,'30 jours fin de mois','Réglement à 30 jours fin de mois',1,30,NULL),(4,'60D',4,1,'60 jours','Réglement à 60 jours',0,60,NULL),(5,'60DENDMONTH',5,1,'60 jours fin de mois','Réglement à 60 jours fin de mois',1,60,NULL);
    +/*!40000 ALTER TABLE `llx_cond_reglement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_const`
    +--
    +
    +DROP TABLE IF EXISTS `llx_const`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_const` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `value` text COLLATE utf8_unicode_ci NOT NULL,
    +  `type` varchar(64) COLLATE utf8_unicode_ci DEFAULT 'string',
    +  `visible` tinyint(4) NOT NULL DEFAULT '1',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_const` (`name`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6610 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_const`
    +--
    +
    +LOCK TABLES `llx_const` WRITE;
    +/*!40000 ALTER TABLE `llx_const` DISABLE KEYS */;
    +INSERT INTO `llx_const` VALUES (8,'MAIN_UPLOAD_DOC',0,'2048','chaine',0,'Max size for file upload (0 means no upload allowed)','2010-07-08 11:17:57'),(9,'MAIN_SEARCHFORM_SOCIETE',0,'1','yesno',0,'Show form for quick company search','2010-07-08 11:17:57'),(10,'MAIN_SEARCHFORM_CONTACT',0,'1','yesno',0,'Show form for quick contact search','2010-07-08 11:17:57'),(11,'MAIN_SEARCHFORM_PRODUITSERVICE',0,'1','yesno',0,'Show form for quick product search','2010-07-08 11:17:58'),(12,'MAIN_SEARCHFORM_ADHERENT',0,'1','yesno',0,'Show form for quick member search','2010-07-08 11:17:58'),(16,'MAIN_SIZE_LISTE_LIMIT',0,'25','chaine',0,'Longueur maximum des listes','2010-07-08 11:17:58'),(29,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',1,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2010-07-08 11:17:58'),(33,'SOCIETE_NOLIST_COURRIER',0,'1','yesno',0,'Liste les fichiers du repertoire courrier','2010-07-08 11:17:58'),(36,'ADHERENT_MAIL_REQUIRED',1,'1','yesno',0,'EMail required to create a new member','2010-07-08 11:17:58'),(37,'ADHERENT_MAIL_FROM',1,'adherents@domain.com','chaine',0,'Sender EMail for automatic emails','2010-07-08 11:17:58'),(38,'ADHERENT_MAIL_RESIL',1,'Your subscription has been resiliated.\r\nWe hope to see you soon again','html',0,'Mail resiliation','2018-11-23 11:56:07'),(39,'ADHERENT_MAIL_VALID',1,'Your subscription has been validated.\r\nThis is a remind of your personal information :\r\n\r\n%INFOS%\r\n\r\n','html',0,'Mail de validation','2018-11-23 11:56:07'),(40,'ADHERENT_MAIL_COTIS',1,'Hello %PRENOM%,\r\nThanks for your subscription.\r\nThis email confirms that your subscription has been received and processed.\r\n\r\n','html',0,'Mail de validation de cotisation','2018-11-23 11:56:07'),(41,'ADHERENT_MAIL_VALID_SUBJECT',1,'Your subscription has been validated','chaine',0,'Sujet du mail de validation','2010-07-08 11:17:59'),(42,'ADHERENT_MAIL_RESIL_SUBJECT',1,'Resiliating your subscription','chaine',0,'Sujet du mail de resiliation','2010-07-08 11:17:59'),(43,'ADHERENT_MAIL_COTIS_SUBJECT',1,'Receipt of your subscription','chaine',0,'Sujet du mail de validation de cotisation','2010-07-08 11:17:59'),(44,'MAILING_EMAIL_FROM',1,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2010-07-08 11:17:59'),(45,'ADHERENT_USE_MAILMAN',1,'0','yesno',0,'Utilisation de Mailman','2010-07-08 11:17:59'),(46,'ADHERENT_MAILMAN_UNSUB_URL',1,'http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&user=%EMAIL%','chaine',0,'Url de desinscription aux listes mailman','2010-07-08 11:17:59'),(47,'ADHERENT_MAILMAN_URL',1,'http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&send_welcome_msg_to_this_batch=1&subscribees=%EMAIL%','chaine',0,'Url pour les inscriptions mailman','2010-07-08 11:17:59'),(48,'ADHERENT_MAILMAN_LISTS',1,'test-test,test-test2','chaine',0,'Listes auxquelles inscrire les nouveaux adherents','2010-07-08 11:17:59'),(49,'ADHERENT_MAILMAN_ADMINPW',1,'','chaine',0,'Mot de passe Admin des liste mailman','2010-07-08 11:17:59'),(50,'ADHERENT_MAILMAN_SERVER',1,'lists.domain.com','chaine',0,'Serveur hebergeant les interfaces d Admin des listes mailman','2010-07-08 11:17:59'),(51,'ADHERENT_MAILMAN_LISTS_COTISANT',1,'','chaine',0,'Liste(s) auxquelles les nouveaux cotisants sont inscris automatiquement','2010-07-08 11:17:59'),(52,'ADHERENT_USE_SPIP',1,'0','yesno',0,'Utilisation de SPIP ?','2010-07-08 11:17:59'),(53,'ADHERENT_USE_SPIP_AUTO',1,'0','yesno',0,'Utilisation de SPIP automatiquement','2010-07-08 11:17:59'),(54,'ADHERENT_SPIP_USER',1,'user','chaine',0,'user spip','2010-07-08 11:17:59'),(55,'ADHERENT_SPIP_PASS',1,'pass','chaine',0,'Pass de connection','2010-07-08 11:17:59'),(56,'ADHERENT_SPIP_SERVEUR',1,'localhost','chaine',0,'serveur spip','2010-07-08 11:17:59'),(57,'ADHERENT_SPIP_DB',1,'spip','chaine',0,'db spip','2010-07-08 11:17:59'),(58,'ADHERENT_CARD_HEADER_TEXT',1,'%ANNEE%','chaine',0,'Texte imprime sur le haut de la carte adherent','2010-07-08 11:17:59'),(59,'ADHERENT_CARD_FOOTER_TEXT',1,'Association AZERTY','chaine',0,'Texte imprime sur le bas de la carte adherent','2010-07-08 11:17:59'),(61,'FCKEDITOR_ENABLE_USER',1,'1','yesno',0,'Activation fckeditor sur notes utilisateurs','2010-07-08 11:17:59'),(62,'FCKEDITOR_ENABLE_SOCIETE',1,'1','yesno',0,'Activation fckeditor sur notes societe','2010-07-08 11:17:59'),(63,'FCKEDITOR_ENABLE_PRODUCTDESC',1,'1','yesno',0,'Activation fckeditor sur notes produits','2010-07-08 11:17:59'),(64,'FCKEDITOR_ENABLE_MEMBER',1,'1','yesno',0,'Activation fckeditor sur notes adherent','2010-07-08 11:17:59'),(65,'FCKEDITOR_ENABLE_MAILING',1,'1','yesno',0,'Activation fckeditor sur emailing','2010-07-08 11:17:59'),(67,'DON_ADDON_MODEL',1,'html_cerfafr','chaine',0,'','2010-07-08 11:18:00'),(68,'PROPALE_ADDON',1,'mod_propale_marbre','chaine',0,'','2010-07-08 11:18:00'),(69,'PROPALE_ADDON_PDF',1,'azur','chaine',0,'','2010-07-08 11:18:00'),(70,'COMMANDE_ADDON',1,'mod_commande_marbre','chaine',0,'','2010-07-08 11:18:00'),(71,'COMMANDE_ADDON_PDF',1,'einstein','chaine',0,'','2010-07-08 11:18:00'),(72,'COMMANDE_SUPPLIER_ADDON',1,'mod_commande_fournisseur_muguet','chaine',0,'','2010-07-08 11:18:00'),(73,'COMMANDE_SUPPLIER_ADDON_PDF',1,'muscadet','chaine',0,'','2010-07-08 11:18:00'),(74,'EXPEDITION_ADDON',1,'enlevement','chaine',0,'','2010-07-08 11:18:00'),(76,'FICHEINTER_ADDON',1,'pacific','chaine',0,'','2010-07-08 11:18:00'),(77,'FICHEINTER_ADDON_PDF',1,'soleil','chaine',0,'','2010-07-08 11:18:00'),(79,'FACTURE_ADDON_PDF',1,'crabe','chaine',0,'','2010-07-08 11:18:00'),(80,'PROPALE_VALIDITY_DURATION',1,'15','chaine',0,'Durée de validitée des propales','2010-07-08 11:18:00'),(230,'COMPANY_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/thirdparties','chaine',0,NULL,'2010-07-08 11:26:20'),(238,'LIVRAISON_ADDON_PDF',1,'typhon','chaine',0,'Nom du gestionnaire de generation des commandes en PDF','2010-07-08 11:26:27'),(239,'LIVRAISON_ADDON_NUMBER',1,'mod_livraison_jade','chaine',0,'Nom du gestionnaire de numerotation des bons de livraison','2013-03-20 13:17:36'),(245,'FACTURE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/invoices','chaine',0,NULL,'2010-07-08 11:28:53'),(249,'DON_FORM',1,'html_cerfafr','chaine',0,'Nom du gestionnaire de formulaire de dons','2017-09-06 16:12:22'),(254,'ADHERENT_BANK_ACCOUNT',1,'','chaine',0,'ID du Compte banquaire utilise','2010-07-08 11:29:05'),(255,'ADHERENT_BANK_CATEGORIE',1,'','chaine',0,'ID de la categorie banquaire des cotisations','2010-07-08 11:29:05'),(256,'ADHERENT_ETIQUETTE_TYPE',1,'L7163','chaine',0,'Type d etiquette (pour impression de planche d etiquette)','2010-07-08 11:29:05'),(269,'PROJECT_ADDON_PDF',1,'baleine','chaine',0,'Nom du gestionnaire de generation des projets en PDF','2010-07-08 11:29:33'),(270,'PROJECT_ADDON',1,'mod_project_simple','chaine',0,'Nom du gestionnaire de numerotation des projets','2010-07-08 11:29:33'),(368,'STOCK_USERSTOCK_AUTOCREATE',1,'1','chaine',0,'','2010-07-08 22:44:59'),(369,'EXPEDITION_ADDON_PDF',1,'merou','chaine',0,'','2010-07-08 22:58:07'),(377,'FACTURE_ADDON',1,'mod_facture_terre','chaine',0,'','2010-07-08 23:08:12'),(380,'ADHERENT_CARD_TEXT',1,'%TYPE% n° %ID%\r\n%PRENOM% %NOM%\r\n<%EMAIL%>\r\n%ADRESSE%\r\n%CP% %VILLE%\r\n%PAYS%','',0,'Texte imprime sur la carte adherent','2010-07-08 23:14:46'),(381,'ADHERENT_CARD_TEXT_RIGHT',1,'aaa','',0,'','2010-07-08 23:14:55'),(385,'PRODUIT_USE_SEARCH_TO_SELECT',1,'1','chaine',0,'','2010-07-08 23:22:19'),(386,'STOCK_CALCULATE_ON_SHIPMENT',1,'1','chaine',0,'','2010-07-08 23:23:21'),(387,'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER',1,'1','chaine',0,'','2010-07-08 23:23:26'),(392,'MAIN_AGENDA_XCAL_EXPORTKEY',1,'dolibarr','chaine',0,'','2010-07-08 23:27:50'),(393,'MAIN_AGENDA_EXPORT_PAST_DELAY',1,'100','chaine',0,'','2010-07-08 23:27:50'),(610,'CASHDESK_ID_THIRDPARTY',1,'7','chaine',0,'','2010-07-11 17:08:18'),(611,'CASHDESK_ID_BANKACCOUNT_CASH',1,'3','chaine',0,'','2010-07-11 17:08:18'),(612,'CASHDESK_ID_BANKACCOUNT_CHEQUE',1,'1','chaine',0,'','2010-07-11 17:08:18'),(613,'CASHDESK_ID_BANKACCOUNT_CB',1,'1','chaine',0,'','2010-07-11 17:08:18'),(614,'CASHDESK_ID_WAREHOUSE',1,'2','chaine',0,'','2010-07-11 17:08:18'),(660,'LDAP_USER_DN',1,'ou=users,dc=my-domain,dc=com','chaine',0,NULL,'2010-07-18 10:25:27'),(661,'LDAP_GROUP_DN',1,'ou=groups,dc=my-domain,dc=com','chaine',0,NULL,'2010-07-18 10:25:27'),(662,'LDAP_FILTER_CONNECTION',1,'&(objectClass=user)(objectCategory=person)','chaine',0,NULL,'2010-07-18 10:25:27'),(663,'LDAP_FIELD_LOGIN',1,'uid','chaine',0,NULL,'2010-07-18 10:25:27'),(664,'LDAP_FIELD_FULLNAME',1,'cn','chaine',0,NULL,'2010-07-18 10:25:27'),(665,'LDAP_FIELD_NAME',1,'sn','chaine',0,NULL,'2010-07-18 10:25:27'),(666,'LDAP_FIELD_FIRSTNAME',1,'givenname','chaine',0,NULL,'2010-07-18 10:25:27'),(667,'LDAP_FIELD_MAIL',1,'mail','chaine',0,NULL,'2010-07-18 10:25:27'),(668,'LDAP_FIELD_PHONE',1,'telephonenumber','chaine',0,NULL,'2010-07-18 10:25:27'),(669,'LDAP_FIELD_FAX',1,'facsimiletelephonenumber','chaine',0,NULL,'2010-07-18 10:25:27'),(670,'LDAP_FIELD_MOBILE',1,'mobile','chaine',0,NULL,'2010-07-18 10:25:27'),(671,'LDAP_SERVER_TYPE',1,'openldap','chaine',0,'','2010-07-18 10:25:46'),(672,'LDAP_SERVER_PROTOCOLVERSION',1,'3','chaine',0,'','2010-07-18 10:25:47'),(673,'LDAP_SERVER_HOST',1,'localhost','chaine',0,'','2010-07-18 10:25:47'),(674,'LDAP_SERVER_PORT',1,'389','chaine',0,'','2010-07-18 10:25:47'),(675,'LDAP_SERVER_USE_TLS',1,'0','chaine',0,'','2010-07-18 10:25:47'),(676,'LDAP_SYNCHRO_ACTIVE',1,'dolibarr2ldap','chaine',0,'','2010-07-18 10:25:47'),(677,'LDAP_CONTACT_ACTIVE',1,'1','chaine',0,'','2010-07-18 10:25:47'),(678,'LDAP_MEMBER_ACTIVE',1,'1','chaine',0,'','2010-07-18 10:25:47'),(974,'MAIN_MODULE_WORKFLOW_TRIGGERS',1,'1','chaine',0,NULL,'2011-07-18 18:02:20'),(975,'WORKFLOW_PROPAL_AUTOCREATE_ORDER',1,'1','chaine',0,'','2011-07-18 18:02:24'),(980,'PRELEVEMENT_NUMERO_NATIONAL_EMETTEUR',1,'1234567','chaine',0,'','2011-07-18 18:05:50'),(983,'FACTURE_RIB_NUMBER',1,'1','chaine',0,'','2011-07-18 18:35:14'),(984,'FACTURE_CHQ_NUMBER',1,'1','chaine',0,'','2011-07-18 18:35:14'),(1016,'GOOGLE_DUPLICATE_INTO_GCAL',1,'1','chaine',0,'','2011-07-18 21:40:20'),(1152,'SOCIETE_CODECLIENT_ADDON',1,'mod_codeclient_monkey','chaine',0,'','2011-07-29 20:50:02'),(1231,'MAIN_UPLOAD_DOC',1,'2048','chaine',0,'','2011-07-29 21:04:00'),(1234,'MAIN_UMASK',1,'0664','chaine',0,'','2011-07-29 21:04:11'),(1240,'MAIN_LOGEVENTS_USER_LOGIN',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1241,'MAIN_LOGEVENTS_USER_LOGIN_FAILED',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1242,'MAIN_LOGEVENTS_USER_LOGOUT',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1243,'MAIN_LOGEVENTS_USER_CREATE',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1244,'MAIN_LOGEVENTS_USER_MODIFY',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1245,'MAIN_LOGEVENTS_USER_NEW_PASSWORD',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1246,'MAIN_LOGEVENTS_USER_ENABLEDISABLE',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1247,'MAIN_LOGEVENTS_USER_DELETE',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1248,'MAIN_LOGEVENTS_GROUP_CREATE',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1249,'MAIN_LOGEVENTS_GROUP_MODIFY',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1250,'MAIN_LOGEVENTS_GROUP_DELETE',1,'1','chaine',0,'','2011-07-29 21:05:01'),(1251,'MAIN_BOXES_MAXLINES',1,'5','',0,'','2011-07-29 21:05:42'),(1482,'EXPEDITION_ADDON_NUMBER',1,'mod_expedition_safor','chaine',0,'Nom du gestionnaire de numerotation des expeditions','2011-08-05 17:53:11'),(1490,'CONTRACT_ADDON',1,'mod_contract_serpis','chaine',0,'Nom du gestionnaire de numerotation des contrats','2011-08-05 18:11:58'),(1677,'COMMANDE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/orders','chaine',0,NULL,'2012-12-08 13:11:02'),(1698,'PRODUCT_CODEPRODUCT_ADDON',1,'mod_codeproduct_leopard','yesno',0,'Module to control product codes','2012-12-08 13:11:25'),(1724,'PROPALE_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/proposals','chaine',0,NULL,'2012-12-08 13:17:14'),(1730,'OPENSTREETMAP_ENABLE_MAPS',1,'1','chaine',0,'','2012-12-08 13:22:47'),(1731,'OPENSTREETMAP_ENABLE_MAPS_CONTACTS',1,'1','chaine',0,'','2012-12-08 13:22:47'),(1732,'OPENSTREETMAP_ENABLE_MAPS_MEMBERS',1,'1','chaine',0,'','2012-12-08 13:22:47'),(1733,'OPENSTREETMAP_MAPS_ZOOM_LEVEL',1,'15','chaine',0,'','2012-12-08 13:22:47'),(1742,'MAIN_MAIL_EMAIL_FROM',2,'dolibarr-robot@domain.com','chaine',0,'EMail emetteur pour les emails automatiques Dolibarr','2012-12-08 14:08:14'),(1743,'MAIN_MENU_STANDARD',2,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs internes','2013-02-11 19:43:54'),(1744,'MAIN_MENUFRONT_STANDARD',2,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs externes','2013-02-11 19:43:54'),(1745,'MAIN_MENU_SMARTPHONE',2,'iphone_backoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs internes','2012-12-08 14:08:14'),(1746,'MAIN_MENUFRONT_SMARTPHONE',2,'iphone_frontoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs externes','2012-12-08 14:08:14'),(1747,'MAIN_THEME',2,'eldy','chaine',0,'Default theme','2012-12-08 14:08:14'),(1748,'MAIN_DELAY_ACTIONS_TODO',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur actions planifiées non réalisées','2012-12-08 14:08:14'),(1749,'MAIN_DELAY_ORDERS_TO_PROCESS',2,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes clients non traitées','2012-12-08 14:08:14'),(1750,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes fournisseurs non traitées','2012-12-08 14:08:14'),(1751,'MAIN_DELAY_PROPALS_TO_CLOSE',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales à cloturer','2012-12-08 14:08:14'),(1752,'MAIN_DELAY_PROPALS_TO_BILL',2,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales non facturées','2012-12-08 14:08:14'),(1753,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures client impayées','2012-12-08 14:08:14'),(1754,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',2,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées','2012-12-08 14:08:14'),(1755,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',2,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2012-12-08 14:08:14'),(1756,'MAIN_DELAY_RUNNING_SERVICES',2,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services expirés','2012-12-08 14:08:14'),(1757,'MAIN_DELAY_MEMBERS',2,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur cotisations adhérent en retard','2012-12-08 14:08:14'),(1758,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',2,'62','chaine',0,'Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire','2012-12-08 14:08:14'),(1759,'MAILING_EMAIL_FROM',2,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2012-12-08 14:08:14'),(1760,'MAIN_INFO_SOCIETE_COUNTRY',3,'1:FR:France','chaine',0,'','2013-02-26 21:56:28'),(1761,'MAIN_INFO_SOCIETE_NOM',3,'bbb','chaine',0,'','2012-12-08 14:08:20'),(1762,'MAIN_INFO_SOCIETE_STATE',3,'0','chaine',0,'','2013-02-27 14:20:27'),(1763,'MAIN_MONNAIE',3,'EUR','chaine',0,'','2012-12-08 14:08:20'),(1764,'MAIN_LANG_DEFAULT',3,'auto','chaine',0,'','2012-12-08 14:08:20'),(1765,'MAIN_MAIL_EMAIL_FROM',3,'dolibarr-robot@domain.com','chaine',0,'EMail emetteur pour les emails automatiques Dolibarr','2012-12-08 14:08:20'),(1766,'MAIN_MENU_STANDARD',3,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs internes','2013-02-11 19:43:54'),(1767,'MAIN_MENUFRONT_STANDARD',3,'eldy_menu.php','chaine',0,'Module de gestion de la barre de menu du haut pour utilisateurs externes','2013-02-11 19:43:54'),(1768,'MAIN_MENU_SMARTPHONE',3,'iphone_backoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs internes','2012-12-08 14:08:20'),(1769,'MAIN_MENUFRONT_SMARTPHONE',3,'iphone_frontoffice.php','chaine',0,'Module de gestion de la barre de menu smartphone pour utilisateurs externes','2012-12-08 14:08:20'),(1770,'MAIN_THEME',3,'eldy','chaine',0,'Default theme','2012-12-08 14:08:20'),(1771,'MAIN_DELAY_ACTIONS_TODO',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur actions planifiées non réalisées','2012-12-08 14:08:20'),(1772,'MAIN_DELAY_ORDERS_TO_PROCESS',3,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes clients non traitées','2012-12-08 14:08:20'),(1773,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur commandes fournisseurs non traitées','2012-12-08 14:08:20'),(1774,'MAIN_DELAY_PROPALS_TO_CLOSE',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales à cloturer','2012-12-08 14:08:20'),(1775,'MAIN_DELAY_PROPALS_TO_BILL',3,'7','chaine',0,'Tolérance de retard avant alerte (en jours) sur propales non facturées','2012-12-08 14:08:20'),(1776,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures client impayées','2012-12-08 14:08:20'),(1777,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',3,'2','chaine',0,'Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées','2012-12-08 14:08:20'),(1778,'MAIN_DELAY_NOT_ACTIVATED_SERVICES',3,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services à activer','2012-12-08 14:08:20'),(1779,'MAIN_DELAY_RUNNING_SERVICES',3,'0','chaine',0,'Tolérance de retard avant alerte (en jours) sur services expirés','2012-12-08 14:08:20'),(1780,'MAIN_DELAY_MEMBERS',3,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur cotisations adhérent en retard','2012-12-08 14:08:20'),(1781,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',3,'62','chaine',0,'Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire','2012-12-08 14:08:20'),(1782,'MAILING_EMAIL_FROM',3,'dolibarr@domain.com','chaine',0,'EMail emmetteur pour les envois d emailings','2012-12-08 14:08:20'),(1803,'SYSLOG_FILE',1,'DOL_DATA_ROOT/dolibarr.log','chaine',0,'','2012-12-08 14:15:08'),(1804,'SYSLOG_HANDLERS',1,'[\"mod_syslog_file\"]','chaine',0,'','2012-12-08 14:15:08'),(1805,'MAIN_MODULE_SKINCOLOREDITOR',3,'1',NULL,0,NULL,'2012-12-08 14:35:40'),(1806,'MAIN_MODULE_SKINCOLOREDITOR_TABS_0',3,'user:+tabskincoloreditors:ColorEditor:skincoloreditor@skincoloreditor:/skincoloreditor/usercolors.php?id=__ID__','chaine',0,NULL,'2012-12-08 14:35:40'),(1922,'PAYPAL_API_SANDBOX',1,'1','chaine',0,'','2012-12-12 12:11:05'),(1923,'PAYPAL_API_USER',1,'seller_1355312017_biz_api1.nltechno.com','chaine',0,'','2012-12-12 12:11:05'),(1924,'PAYPAL_API_PASSWORD',1,'1355312040','chaine',0,'','2012-12-12 12:11:05'),(1925,'PAYPAL_API_SIGNATURE',1,'AXqqdsWBzvfn0q5iNmbuiDv1y.3EAXIMWyl4C5KvDReR9HDwwAd6dQ4Q','chaine',0,'','2012-12-12 12:11:05'),(1926,'PAYPAL_API_INTEGRAL_OR_PAYPALONLY',1,'integral','chaine',0,'','2012-12-12 12:11:05'),(1927,'PAYPAL_SECURITY_TOKEN',1,'50c82fab36bb3b6aa83e2a50691803b2','chaine',0,'','2012-12-12 12:11:05'),(1928,'PAYPAL_SECURITY_TOKEN_UNIQUE',1,'0','chaine',0,'','2012-12-12 12:11:05'),(1929,'PAYPAL_ADD_PAYMENT_URL',1,'1','chaine',0,'','2012-12-12 12:11:05'),(1980,'MAIN_PDF_FORMAT',1,'EUA4','chaine',0,'','2012-12-12 19:58:05'),(1981,'MAIN_PROFID1_IN_ADDRESS',1,'0','chaine',0,'','2012-12-12 19:58:05'),(1982,'MAIN_PROFID2_IN_ADDRESS',1,'0','chaine',0,'','2012-12-12 19:58:05'),(1983,'MAIN_PROFID3_IN_ADDRESS',1,'0','chaine',0,'','2012-12-12 19:58:05'),(1984,'MAIN_PROFID4_IN_ADDRESS',1,'0','chaine',0,'','2012-12-12 19:58:05'),(1985,'MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT',1,'0','chaine',0,'','2012-12-12 19:58:05'),(2251,'FCKEDITOR_TEST',1,'Test<br />\r\n<img alt=\"\" src=\"/dolibarrnew/viewimage.php?modulepart=fckeditor&amp;file=image/Julien-Lavergne_reference_medium.jpg\" style=\"width: 200px; height: 172px;\" />fdfs','chaine',0,'','2012-12-19 19:12:24'),(2293,'SYSTEMTOOLS_MYSQLDUMP',1,'/usr/bin/mysqldump','chaine',0,'','2012-12-27 02:02:00'),(2835,'MAIN_USE_CONNECT_TIMEOUT',1,'10','chaine',0,'','2013-01-16 19:28:50'),(2836,'MAIN_USE_RESPONSE_TIMEOUT',1,'30','chaine',0,'','2013-01-16 19:28:50'),(2837,'MAIN_PROXY_USE',1,'0','chaine',0,'','2013-01-16 19:28:50'),(2838,'MAIN_PROXY_HOST',1,'localhost','chaine',0,'','2013-01-16 19:28:50'),(2839,'MAIN_PROXY_PORT',1,'8080','chaine',0,'','2013-01-16 19:28:50'),(2840,'MAIN_PROXY_USER',1,'aaa','chaine',0,'','2013-01-16 19:28:50'),(2841,'MAIN_PROXY_PASS',1,'bbb','chaine',0,'','2013-01-16 19:28:50'),(2848,'OVHSMS_NICK',1,'BN196-OVH','chaine',0,'','2013-01-16 19:32:36'),(2849,'OVHSMS_PASS',1,'bigone-10','chaine',0,'','2013-01-16 19:32:36'),(2850,'OVHSMS_SOAPURL',1,'https://www.ovh.com/soapi/soapi-re-1.55.wsdl','chaine',0,'','2013-01-16 19:32:36'),(2854,'THEME_ELDY_RGB',1,'bfbf00','chaine',0,'','2013-01-18 10:02:53'),(2855,'THEME_ELDY_ENABLE_PERSONALIZED',1,'0','chaine',0,'','2013-01-18 10:02:55'),(2858,'MAIN_SESSION_TIMEOUT',1,'2000','chaine',0,'','2013-01-19 17:01:53'),(2862,'TICKET_ADDON',1,'mod_ticket_avenc','chaine',0,'Nom du gestionnaire de numerotation des tickets','2013-01-19 17:16:10'),(2867,'FACSIM_ADDON',1,'mod_facsim_alcoy','chaine',0,'','2013-01-19 17:16:25'),(2868,'POS_SERVICES',1,'0','chaine',0,'','2013-01-19 17:16:51'),(2869,'POS_USE_TICKETS',1,'1','chaine',0,'','2013-01-19 17:16:51'),(2870,'POS_MAX_TTC',1,'100','chaine',0,'','2013-01-19 17:16:51'),(3190,'MAIN_MODULE_HOLIDAY',2,'1',NULL,0,NULL,'2013-02-01 08:52:34'),(3191,'MAIN_MODULE_HOLIDAY_TABS_0',2,'user:+paidholidays:CPTitreMenu:holiday:$user->rights->holiday->write:/holiday/index.php?mainmenu=holiday&id=__ID__','chaine',0,NULL,'2013-02-01 08:52:34'),(3195,'INVOICE_SUPPLIER_ADDON_PDF',1,'canelle','chaine',0,'','2013-02-10 19:50:27'),(3199,'MAIN_FORCE_RELOAD_PAGE',1,'1','chaine',0,NULL,'2013-02-12 16:22:55'),(3217,'MAIN_PDF_TITLE_BACKGROUND_COLOR',1,'240,240,240','chaine',1,'','2013-02-13 15:18:02'),(3223,'OVH_THIRDPARTY_IMPORT',1,'2','chaine',0,'','2013-02-13 16:20:18'),(3241,'COMPANY_USE_SEARCH_TO_SELECT',1,'2','chaine',0,'','2013-02-17 14:33:39'),(3409,'AGENDA_USE_EVENT_TYPE',1,'1','chaine',0,'','2013-02-27 18:12:24'),(3886,'MAIN_REMOVE_INSTALL_WARNING',1,'1','chaine',1,'','2013-03-02 18:32:50'),(4013,'MAIN_DELAY_ACTIONS_TODO',1,'7','chaine',0,'','2013-03-06 08:59:12'),(4014,'MAIN_DELAY_PROPALS_TO_CLOSE',1,'31','chaine',0,'','2013-03-06 08:59:12'),(4015,'MAIN_DELAY_PROPALS_TO_BILL',1,'7','chaine',0,'','2013-03-06 08:59:12'),(4016,'MAIN_DELAY_ORDERS_TO_PROCESS',1,'2','chaine',0,'','2013-03-06 08:59:12'),(4017,'MAIN_DELAY_CUSTOMER_BILLS_UNPAYED',1,'31','chaine',0,'','2013-03-06 08:59:12'),(4018,'MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS',1,'7','chaine',0,'','2013-03-06 08:59:12'),(4019,'MAIN_DELAY_SUPPLIER_BILLS_TO_PAY',1,'2','chaine',0,'','2013-03-06 08:59:12'),(4020,'MAIN_DELAY_RUNNING_SERVICES',1,'-15','chaine',0,'','2013-03-06 08:59:12'),(4021,'MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE',1,'62','chaine',0,'','2013-03-06 08:59:13'),(4022,'MAIN_DELAY_MEMBERS',1,'31','chaine',0,'','2013-03-06 08:59:13'),(4023,'MAIN_DISABLE_METEO',1,'0','chaine',0,'','2013-03-06 08:59:13'),(4044,'ADHERENT_VAT_FOR_SUBSCRIPTIONS',1,'0','',0,'','2013-03-06 16:06:38'),(4047,'ADHERENT_BANK_USE',1,'bankviainvoice','',0,'','2013-03-06 16:12:30'),(4049,'PHPSANE_SCANIMAGE',1,'/usr/bin/scanimage','chaine',0,'','2013-03-06 21:54:13'),(4050,'PHPSANE_PNMTOJPEG',1,'/usr/bin/pnmtojpeg','chaine',0,'','2013-03-06 21:54:13'),(4051,'PHPSANE_PNMTOTIFF',1,'/usr/bin/pnmtotiff','chaine',0,'','2013-03-06 21:54:13'),(4052,'PHPSANE_OCR',1,'/usr/bin/gocr','chaine',0,'','2013-03-06 21:54:13'),(4548,'ECM_AUTO_TREE_ENABLED',1,'1','chaine',0,'','2013-03-10 15:57:21'),(4579,'MAIN_MODULE_AGENDA',2,'1',NULL,0,NULL,'2013-03-13 15:29:19'),(4580,'MAIN_AGENDA_ACTIONAUTO_COMPANY_CREATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4581,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4582,'MAIN_AGENDA_ACTIONAUTO_PROPAL_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4583,'MAIN_AGENDA_ACTIONAUTO_PROPAL_SENTBYMAIL',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4584,'MAIN_AGENDA_ACTIONAUTO_ORDER_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4585,'MAIN_AGENDA_ACTIONAUTO_ORDER_SENTBYMAIL',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4586,'MAIN_AGENDA_ACTIONAUTO_BILL_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4587,'MAIN_AGENDA_ACTIONAUTO_BILL_PAYED',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4588,'MAIN_AGENDA_ACTIONAUTO_BILL_CANCEL',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4589,'MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4590,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4591,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4592,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_VALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4593,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_SENTBYMAIL',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4594,'MAIN_AGENDA_ACTIONAUTO_BILL_UNVALIDATE',2,'1','chaine',0,NULL,'2013-03-13 15:29:19'),(4595,'MAIN_MODULE_GOOGLE',2,'1',NULL,0,NULL,'2013-03-13 15:29:47'),(4596,'MAIN_MODULE_GOOGLE_TABS_0',2,'agenda:+gcal:MenuAgendaGoogle:google@google:$conf->google->enabled && $conf->global->GOOGLE_ENABLE_AGENDA:/google/index.php','chaine',0,NULL,'2013-03-13 15:29:47'),(4597,'MAIN_MODULE_GOOGLE_TABS_1',2,'user:+gsetup:GoogleUserConf:google@google:$conf->google->enabled && $conf->global->GOOGLE_DUPLICATE_INTO_GCAL:/google/admin/google_calsync_user.php?id=__ID__','chaine',0,NULL,'2013-03-13 15:29:47'),(4598,'MAIN_MODULE_GOOGLE_TRIGGERS',2,'1','chaine',0,NULL,'2013-03-13 15:29:47'),(4599,'MAIN_MODULE_GOOGLE_HOOKS',2,'[\"toprightmenu\"]','chaine',0,NULL,'2013-03-13 15:29:47'),(4688,'GOOGLE_ENABLE_AGENDA',2,'1','chaine',0,'','2013-03-13 15:36:29'),(4689,'GOOGLE_AGENDA_NAME1',2,'eldy','chaine',0,'','2013-03-13 15:36:29'),(4690,'GOOGLE_AGENDA_SRC1',2,'eldy10@mail.com','chaine',0,'','2013-03-13 15:36:29'),(4691,'GOOGLE_AGENDA_COLOR1',2,'BE6D00','chaine',0,'','2013-03-13 15:36:29'),(4692,'GOOGLE_AGENDA_COLOR2',2,'7A367A','chaine',0,'','2013-03-13 15:36:29'),(4693,'GOOGLE_AGENDA_COLOR3',2,'7A367A','chaine',0,'','2013-03-13 15:36:29'),(4694,'GOOGLE_AGENDA_COLOR4',2,'7A367A','chaine',0,'','2013-03-13 15:36:29'),(4695,'GOOGLE_AGENDA_COLOR5',2,'7A367A','chaine',0,'','2013-03-13 15:36:29'),(4696,'GOOGLE_AGENDA_TIMEZONE',2,'Europe/Paris','chaine',0,'','2013-03-13 15:36:29'),(4697,'GOOGLE_AGENDA_NB',2,'5','chaine',0,'','2013-03-13 15:36:29'),(4725,'SOCIETE_CODECLIENT_ADDON',2,'mod_codeclient_leopard','chaine',0,'Module to control third parties codes','2013-03-13 20:21:35'),(4726,'SOCIETE_CODECOMPTA_ADDON',2,'mod_codecompta_panicum','chaine',0,'Module to control third parties codes','2013-03-13 20:21:35'),(4727,'SOCIETE_FISCAL_MONTH_START',2,'','chaine',0,'Mettre le numero du mois du debut d\\\'annee fiscale, ex: 9 pour septembre','2013-03-13 20:21:35'),(4728,'MAIN_SEARCHFORM_SOCIETE',2,'1','yesno',0,'Show form for quick company search','2013-03-13 20:21:35'),(4729,'MAIN_SEARCHFORM_CONTACT',2,'1','yesno',0,'Show form for quick contact search','2013-03-13 20:21:35'),(4730,'COMPANY_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/thirdparties','chaine',0,NULL,'2013-03-13 20:21:35'),(4743,'MAIN_MODULE_CLICKTODIAL',2,'1',NULL,0,NULL,'2013-03-13 20:30:28'),(4744,'MAIN_MODULE_NOTIFICATION',2,'1',NULL,0,NULL,'2013-03-13 20:30:34'),(4745,'MAIN_MODULE_WEBSERVICES',2,'1',NULL,0,NULL,'2013-03-13 20:30:41'),(4746,'MAIN_MODULE_PROPALE',2,'1',NULL,0,NULL,'2013-03-13 20:32:38'),(4747,'PROPALE_ADDON_PDF',2,'azur','chaine',0,'Nom du gestionnaire de generation des propales en PDF','2013-03-13 20:32:38'),(4748,'PROPALE_ADDON',2,'mod_propale_marbre','chaine',0,'Nom du gestionnaire de numerotation des propales','2013-03-13 20:32:38'),(4749,'PROPALE_VALIDITY_DURATION',2,'15','chaine',0,'Duration of validity of business proposals','2013-03-13 20:32:38'),(4750,'PROPALE_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/proposals','chaine',0,NULL,'2013-03-13 20:32:38'),(4752,'MAIN_MODULE_TAX',2,'1',NULL,0,NULL,'2013-03-13 20:32:47'),(4753,'MAIN_MODULE_DON',2,'1',NULL,0,NULL,'2013-03-13 20:32:54'),(4754,'DON_ADDON_MODEL',2,'html_cerfafr','chaine',0,'Nom du gestionnaire de generation de recu de dons','2013-03-13 20:32:54'),(4755,'POS_USE_TICKETS',2,'1','chaine',0,'','2013-03-13 20:33:09'),(4756,'POS_MAX_TTC',2,'100','chaine',0,'','2013-03-13 20:33:09'),(4757,'MAIN_MODULE_POS',2,'1',NULL,0,NULL,'2013-03-13 20:33:09'),(4758,'TICKET_ADDON',2,'mod_ticket_avenc','chaine',0,'Nom du gestionnaire de numerotation des tickets','2013-03-13 20:33:09'),(4759,'MAIN_MODULE_BANQUE',2,'1',NULL,0,NULL,'2013-03-13 20:33:09'),(4760,'MAIN_MODULE_FACTURE',2,'1',NULL,0,NULL,'2013-03-13 20:33:09'),(4761,'FACTURE_ADDON_PDF',2,'crabe','chaine',0,'Name of PDF model of invoice','2013-03-13 20:33:09'),(4762,'FACTURE_ADDON',2,'mod_facture_terre','chaine',0,'Name of numbering numerotation rules of invoice','2013-03-13 20:33:09'),(4763,'FACTURE_ADDON_PDF_ODT_PATH',2,'DOL_DATA_ROOT/doctemplates/invoices','chaine',0,NULL,'2013-03-13 20:33:09'),(4764,'MAIN_MODULE_SOCIETE',2,'1',NULL,0,NULL,'2013-03-13 20:33:09'),(4765,'MAIN_MODULE_PRODUCT',2,'1',NULL,0,NULL,'2013-03-13 20:33:09'),(4766,'PRODUCT_CODEPRODUCT_ADDON',2,'mod_codeproduct_leopard','chaine',0,'Module to control product codes','2013-03-13 20:33:09'),(4767,'MAIN_SEARCHFORM_PRODUITSERVICE',2,'1','yesno',0,'Show form for quick product search','2013-03-13 20:33:09'),(4772,'FACSIM_ADDON',2,'mod_facsim_alcoy','chaine',0,'','2013-03-13 20:33:32'),(4773,'MAIN_MODULE_MAILING',2,'1',NULL,0,NULL,'2013-03-13 20:33:37'),(4774,'MAIN_MODULE_OPENSURVEY',2,'1',NULL,0,NULL,'2013-03-13 20:33:42'),(4782,'AGENDA_USE_EVENT_TYPE',2,'1','chaine',0,'','2013-03-13 20:53:36'),(4884,'AGENDA_DISABLE_EXT',2,'1','chaine',0,'','2013-03-13 22:03:40'),(4928,'COMMANDE_SUPPLIER_ADDON_NUMBER',1,'mod_commande_fournisseur_muguet','chaine',0,'Nom du gestionnaire de numerotation des commandes fournisseur','2013-03-22 09:24:29'),(4929,'INVOICE_SUPPLIER_ADDON_NUMBER',1,'mod_facture_fournisseur_cactus','chaine',0,'Nom du gestionnaire de numerotation des factures fournisseur','2013-03-22 09:24:29'),(5001,'MAIN_CRON_KEY',0,'bc54582fe30d5d4a830c6f582ec28810','chaine',0,'','2013-03-23 17:54:53'),(5009,'CRON_KEY',0,'2c2e755c20be2014098f629865598006','chaine',0,'','2013-03-23 18:06:24'),(5139,'SOCIETE_ADD_REF_IN_LIST',1,'','yesno',0,'Display customer ref into select list','2013-09-08 23:06:08'),(5150,'PROJECT_TASK_ADDON_PDF',1,'','chaine',0,'Name of PDF/ODT tasks manager class','2013-09-08 23:06:14'),(5151,'PROJECT_TASK_ADDON',1,'mod_task_simple','chaine',0,'Name of Numbering Rule task manager class','2013-09-08 23:06:14'),(5152,'PROJECT_TASK_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/tasks','chaine',0,'','2013-09-08 23:06:14'),(5239,'BOOKMARKS_SHOW_IN_MENU',1,'10','chaine',0,'','2014-03-02 15:42:26'),(5271,'DONATION_ART200',1,'','yesno',0,'Option Française - Eligibilité Art200 du CGI','2014-12-21 12:51:28'),(5272,'DONATION_ART238',1,'','yesno',0,'Option Française - Eligibilité Art238 bis du CGI','2014-12-21 12:51:28'),(5273,'DONATION_ART885',1,'','yesno',0,'Option Française - Eligibilité Art885-0 V bis du CGI','2014-12-21 12:51:28'),(5274,'DONATION_MESSAGE',1,'Thank you','chaine',0,'Message affiché sur le récépissé de versements ou dons','2014-12-21 12:51:28'),(5288,'DONATION_ACCOUNTINGACCOUNT',1,'7581','chaine',0,'Compte comptable de remise des versements ou dons','2015-07-19 13:41:21'),(5349,'MAIN_SEARCHFORM_CONTACT',1,'1','chaine',0,'','2015-10-03 10:11:33'),(5351,'MAIN_SEARCHFORM_PRODUITSERVICE',1,'1','chaine',0,'','2015-10-03 10:11:33'),(5352,'MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER',1,'0','chaine',0,'','2015-10-03 10:11:33'),(5353,'MAIN_SEARCHFORM_ADHERENT',1,'1','chaine',0,'','2015-10-03 10:11:33'),(5354,'MAIN_SEARCHFORM_PROJECT',1,'0','chaine',0,'','2015-10-03 10:11:33'),(5394,'FCKEDITOR_ENABLE_DETAILS',1,'1','yesno',0,'WYSIWIG for products details lines for all entities','2015-11-04 15:27:44'),(5395,'FCKEDITOR_ENABLE_USERSIGN',1,'1','yesno',0,'WYSIWIG for user signature','2015-11-04 15:27:44'),(5396,'FCKEDITOR_ENABLE_MAIL',1,'1','yesno',0,'WYSIWIG for products details lines for all entities','2015-11-04 15:27:44'),(5398,'CATEGORIE_RECURSIV_ADD',1,'','yesno',0,'Affect parent categories','2015-11-04 15:27:46'),(5403,'MAIN_MODULE_FCKEDITOR',1,'1',NULL,0,NULL,'2015-11-04 15:41:40'),(5404,'MAIN_MODULE_CATEGORIE',1,'1',NULL,0,NULL,'2015-11-04 15:41:43'),(5415,'EXPEDITION_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/shipment','chaine',0,NULL,'2015-11-15 22:38:28'),(5416,'LIVRAISON_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/delivery','chaine',0,NULL,'2015-11-15 22:38:28'),(5419,'MAIN_MODULE_CASHDESK',1,'1',NULL,0,NULL,'2015-11-15 22:38:33'),(5426,'MAIN_MODULE_PROJET',1,'1',NULL,0,NULL,'2015-11-15 22:38:44'),(5427,'PROJECT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/projects','chaine',0,NULL,'2015-11-15 22:38:44'),(5428,'PROJECT_USE_OPPORTUNIES',1,'1','chaine',0,NULL,'2015-11-15 22:38:44'),(5430,'MAIN_MODULE_EXPORT',1,'1',NULL,0,NULL,'2015-11-15 22:38:56'),(5431,'MAIN_MODULE_IMPORT',1,'1',NULL,0,NULL,'2015-11-15 22:38:58'),(5432,'MAIN_MODULE_MAILING',1,'1',NULL,0,NULL,'2015-11-15 22:39:00'),(5434,'EXPENSEREPORT_ADDON_PDF',1,'standard','chaine',0,'Name of manager to build PDF expense reports documents','2015-11-15 22:39:05'),(5436,'SALARIES_ACCOUNTING_ACCOUNT_PAYMENT',1,'421','chaine',0,NULL,'2015-11-15 22:39:08'),(5437,'SALARIES_ACCOUNTING_ACCOUNT_CHARGE',1,'641','chaine',0,NULL,'2015-11-15 22:39:08'),(5441,'ADHERENT_ETIQUETTE_TEXT',1,'%FULLNAME%\n%ADDRESS%\n%ZIP% %TOWN%\n%COUNTRY%','text',0,'Text to print on member address sheets','2018-11-23 11:56:07'),(5443,'MAIN_MODULE_PRELEVEMENT',1,'1',NULL,0,NULL,'2015-11-15 22:39:33'),(5453,'MAIN_MODULE_CONTRAT',1,'1',NULL,0,NULL,'2015-11-15 22:39:52'),(5455,'MAIN_MODULE_FICHEINTER',1,'1',NULL,0,NULL,'2015-11-15 22:39:56'),(5459,'MAIN_MODULE_PAYPAL',1,'1',NULL,0,NULL,'2015-11-15 22:41:02'),(5460,'MAIN_MODULE_MARGIN',1,'1',NULL,0,NULL,'2015-11-15 22:41:47'),(5461,'MAIN_MODULE_MARGIN_TABS_0',1,'product:+margin:Margins:margins:$user->rights->margins->liretous:/margin/tabs/productMargins.php?id=__ID__','chaine',0,NULL,'2015-11-15 22:41:47'),(5462,'MAIN_MODULE_MARGIN_TABS_1',1,'thirdparty:+margin:Margins:margins:empty($user->societe_id) && $user->rights->margins->liretous && ($object->client > 0):/margin/tabs/thirdpartyMargins.php?socid=__ID__','chaine',0,NULL,'2015-11-15 22:41:47'),(5463,'MAIN_MODULE_PROPALE',1,'1',NULL,0,NULL,'2015-11-15 22:41:47'),(5483,'GENBARCODE_BARCODETYPE_THIRDPARTY',1,'6','chaine',0,'','2016-01-16 15:49:43'),(5484,'PRODUIT_DEFAULT_BARCODE_TYPE',1,'2','chaine',0,'','2016-01-16 15:49:46'),(5539,'PRODUCT_USE_OLD_PATH_FOR_PHOTO',0,'0','chaine',1,'Use old path for products images','2016-01-22 13:34:23'),(5541,'MODULE_GOOGLE_DEBUG',1,'0','chaine',1,'','2016-01-22 13:34:57'),(5586,'MAIN_DELAY_EXPENSEREPORTS_TO_PAY',1,'31','chaine',0,'Tolérance de retard avant alerte (en jours) sur les notes de frais impayées','2016-01-22 17:28:18'),(5587,'MAIN_FIX_FOR_BUGGED_MTA',1,'1','chaine',1,'Set constant to fix email ending from PHP with some linux ike system','2016-01-22 17:28:18'),(5590,'MAIN_VERSION_LAST_INSTALL',0,'3.8.3','chaine',0,'Dolibarr version when install','2016-01-22 17:28:42'),(5604,'MAIN_INFO_SOCIETE_LOGO',1,'mybigcompany.png','chaine',0,'','2016-01-22 17:33:49'),(5605,'MAIN_INFO_SOCIETE_LOGO_SMALL',1,'mybigcompany_small.png','chaine',0,'','2016-01-22 17:33:49'),(5606,'MAIN_INFO_SOCIETE_LOGO_MINI',1,'mybigcompany_mini.png','chaine',0,'','2016-01-22 17:33:49'),(5612,'MAIN_ENABLE_LOG_TO_HTML',0,'0','chaine',1,'If this option is set to 1, it is possible to see log output at end of HTML sources by adding paramater logtohtml=1 on URL','2016-03-13 10:54:45'),(5614,'MAIN_SIZE_SHORTLISTE_LIMIT',1,'4','chaine',0,'Longueur maximum des listes courtes (fiche client)','2016-03-13 10:54:46'),(5626,'MAIN_MODULE_SUPPLIERPROPOSAL',1,'1',NULL,0,NULL,'2016-07-30 11:13:20'),(5627,'SUPPLIER_PROPOSAL_ADDON_PDF',1,'aurore','chaine',0,'Name of submodule to generate PDF for supplier quotation request','2016-07-30 11:13:20'),(5628,'SUPPLIER_PROPOSAL_ADDON',1,'mod_supplier_proposal_marbre','chaine',0,'Name of submodule to number supplier quotation request','2016-07-30 11:13:20'),(5629,'SUPPLIER_PROPOSAL_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/supplier_proposal','chaine',0,NULL,'2016-07-30 11:13:20'),(5632,'MAIN_MODULE_RESOURCE',1,'1',NULL,0,NULL,'2016-07-30 11:13:32'),(5633,'MAIN_MODULE_API',1,'1',NULL,0,NULL,'2016-07-30 11:13:54'),(5634,'MAIN_MODULE_WEBSERVICES',1,'1',NULL,0,NULL,'2016-07-30 11:13:56'),(5635,'WEBSERVICES_KEY',1,'dolibarrkey','chaine',0,'','2016-07-30 11:14:04'),(5638,'MAIN_MODULE_EXTERNALRSS',1,'1',NULL,0,NULL,'2016-07-30 11:15:04'),(5639,'EXTERNAL_RSS_TITLE_1',1,'Dolibarr.org News','chaine',0,'','2016-07-30 11:15:25'),(5640,'EXTERNAL_RSS_URLRSS_1',1,'https://www.dolibarr.org/rss','chaine',0,'','2016-07-30 11:15:25'),(5642,'SOCIETE_CODECOMPTA_ADDON',1,'mod_codecompta_aquarium','chaine',0,'','2016-07-30 11:16:42'),(5707,'CASHDESK_NO_DECREASE_STOCK',1,'1','chaine',0,'','2016-07-30 13:38:11'),(5708,'MAIN_MODULE_PRODUCTBATCH',1,'1',NULL,0,NULL,'2016-07-30 13:38:11'),(5710,'MAIN_MODULE_STOCK',1,'1',NULL,0,NULL,'2016-07-30 13:38:11'),(5711,'MAIN_MODULE_PRODUCT',1,'1',NULL,0,NULL,'2016-07-30 13:38:11'),(5712,'MAIN_MODULE_EXPEDITION',1,'1',NULL,0,NULL,'2016-07-30 13:38:11'),(5808,'MARGIN_TYPE',1,'costprice','chaine',0,'','2016-07-30 16:32:18'),(5809,'DISPLAY_MARGIN_RATES',1,'1','chaine',0,'','2016-07-30 16:32:20'),(5810,'MAIN_FEATURES_LEVEL',0,'0','chaine',1,'Level of features to show (0=stable only, 1=stable+experimental, 2=stable+experimental+development','2016-07-30 18:36:15'),(5813,'USER_PASSWORD_PATTERN',1,'8;1;1;1;3;1','chaine',0,'','2016-07-31 16:04:58'),(5814,'MAIN_MODULE_EXPENSEREPORT',1,'1',NULL,0,NULL,'2016-07-31 21:14:32'),(5830,'LOAN_ACCOUNTING_ACCOUNT_CAPITAL',1,'164','chaine',0,NULL,'2017-01-29 15:11:51'),(5831,'LOAN_ACCOUNTING_ACCOUNT_INSURANCE',1,'6162','chaine',0,NULL,'2017-01-29 15:11:51'),(5833,'ACCOUNTING_EXPORT_SEPARATORCSV',1,',','string',0,NULL,'2017-01-29 15:11:56'),(5834,'ACCOUNTING_ACCOUNT_SUSPENSE',1,'471','chaine',0,NULL,'2017-01-29 15:11:56'),(5839,'ACCOUNTING_ACCOUNT_TRANSFER_CASH',1,'58','chaine',0,NULL,'2017-01-29 15:11:56'),(5840,'CHARTOFACCOUNTS',1,'2','chaine',0,NULL,'2017-01-29 15:11:56'),(5841,'ACCOUNTING_EXPORT_MODELCSV',1,'1','chaine',0,NULL,'2017-01-29 15:11:56'),(5842,'ACCOUNTING_LENGTH_GACCOUNT',1,'','chaine',0,NULL,'2017-01-29 15:11:56'),(5843,'ACCOUNTING_LENGTH_AACCOUNT',1,'','chaine',0,NULL,'2017-01-29 15:11:56'),(5844,'ACCOUNTING_LIST_SORT_VENTILATION_TODO',1,'1','yesno',0,NULL,'2017-01-29 15:11:56'),(5845,'ACCOUNTING_LIST_SORT_VENTILATION_DONE',1,'1','yesno',0,NULL,'2017-01-29 15:11:56'),(5846,'ACCOUNTING_EXPORT_DATE',1,'%d%m%Y','chaine',0,NULL,'2017-01-29 15:11:56'),(5848,'ACCOUNTING_EXPORT_FORMAT',1,'csv','chaine',0,NULL,'2017-01-29 15:11:56'),(5853,'MAIN_MODULE_WORKFLOW',1,'1',NULL,0,NULL,'2017-01-29 15:12:12'),(5854,'MAIN_MODULE_NOTIFICATION',1,'1',NULL,0,NULL,'2017-01-29 15:12:35'),(5855,'MAIN_MODULE_OAUTH',1,'1',NULL,0,NULL,'2017-01-29 15:12:41'),(5883,'MAILING_LIMIT_SENDBYWEB',0,'15','chaine',1,'Number of targets to defined packet size when sending mass email','2017-01-29 17:36:33'),(5884,'MAIN_MAIL_DEBUG',1,'0','chaine',1,'','2017-01-29 18:53:02'),(5885,'MAIN_SOAP_DEBUG',1,'0','chaine',1,'','2017-01-29 18:53:02'),(5887,'PROJECT_USE_OPPORTUNITIES',1,'1','chaine',0,'','2017-02-01 12:23:56'),(5888,'PROJECT_HIDE_TASKS',1,'1','chaine',0,'','2017-02-01 12:23:56'),(5889,'MAIN_AGENDA_ACTIONAUTO_COMPANY_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5890,'MAIN_AGENDA_ACTIONAUTO_COMPANY_CREATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5891,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLOSE_REFUSED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5892,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLOSE_SIGNED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5893,'MAIN_AGENDA_ACTIONAUTO_PROPAL_CLASSIFY_BILLED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5894,'MAIN_AGENDA_ACTIONAUTO_PROPAL_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5895,'MAIN_AGENDA_ACTIONAUTO_PROPAL_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5896,'MAIN_AGENDA_ACTIONAUTO_ORDER_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5897,'MAIN_AGENDA_ACTIONAUTO_ORDER_CLOSE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5898,'MAIN_AGENDA_ACTIONAUTO_ORDER_CANCEL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5899,'MAIN_AGENDA_ACTIONAUTO_ORDER_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5900,'MAIN_AGENDA_ACTIONAUTO_ORDER_CLASSIFY_BILLED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5901,'MAIN_AGENDA_ACTIONAUTO_BILL_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5902,'MAIN_AGENDA_ACTIONAUTO_BILL_PAYED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5903,'MAIN_AGENDA_ACTIONAUTO_BILL_CANCEL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5904,'MAIN_AGENDA_ACTIONAUTO_BILL_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5905,'MAIN_AGENDA_ACTIONAUTO_BILL_UNVALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5906,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5907,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_APPROVE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5908,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_RECEIVE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5909,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_SUBMIT',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5910,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_REFUSE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5911,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CLASSIFY_BILLED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5912,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5913,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_UNVALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5914,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5915,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_PAYED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5916,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5917,'MAIN_AGENDA_ACTIONAUTO_BILL_SUPPLIER_CANCELED',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5918,'MAIN_AGENDA_ACTIONAUTO_CONTRACT_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5919,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_REOPEN',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5920,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5921,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5922,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5923,'MAIN_AGENDA_ACTIONAUTO_SHIPPING_SENTBYMAIL',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5924,'MAIN_AGENDA_ACTIONAUTO_MEMBER_VALIDATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5925,'MAIN_AGENDA_ACTIONAUTO_MEMBER_SUBSCRIPTION',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5926,'MAIN_AGENDA_ACTIONAUTO_MEMBER_MODIFY',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5927,'MAIN_AGENDA_ACTIONAUTO_MEMBER_RESILIATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5928,'MAIN_AGENDA_ACTIONAUTO_MEMBER_DELETE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5929,'MAIN_AGENDA_ACTIONAUTO_PROJECT_CREATE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5930,'MAIN_AGENDA_ACTIONAUTO_PROJECT_DELETE',1,'1','chaine',0,'','2017-02-01 14:48:55'),(5931,'DATABASE_PWD_ENCRYPTED',1,'1','chaine',0,'','2017-02-01 15:06:04'),(5932,'MAIN_DISABLE_ALL_MAILS',1,'0','chaine',0,'','2017-02-01 15:09:09'),(5933,'MAIN_MAIL_SENDMODE',1,'mail','chaine',0,'','2017-02-01 15:09:09'),(5934,'MAIN_MAIL_SMTP_PORT',1,'465','chaine',0,'','2017-02-01 15:09:09'),(5935,'MAIN_MAIL_SMTP_SERVER',1,'smtp.mail.com','chaine',0,'','2017-02-01 15:09:09'),(5936,'MAIN_MAIL_SMTPS_ID',1,'eldy10@mail.com','chaine',0,'','2017-02-01 15:09:09'),(5937,'MAIN_MAIL_SMTPS_PW',1,'bidonge','chaine',0,'','2017-02-01 15:09:09'),(5938,'MAIN_MAIL_EMAIL_FROM',1,'robot@example.com','chaine',0,'','2017-02-01 15:09:09'),(5939,'MAIN_MAIL_DEFAULT_FROMTYPE',1,'user','chaine',0,'','2017-02-01 15:09:09'),(5940,'PRELEVEMENT_ID_BANKACCOUNT',1,'1','chaine',0,'','2017-02-06 04:04:47'),(5941,'PRELEVEMENT_ICS',1,'ICS123456','chaine',0,'','2017-02-06 04:04:47'),(5942,'PRELEVEMENT_USER',1,'1','chaine',0,'','2017-02-06 04:04:47'),(5943,'BANKADDON_PDF',1,'sepamandate','chaine',0,'','2017-02-06 04:13:52'),(5947,'CHEQUERECEIPTS_THYME_MASK',1,'CHK{yy}{mm}-{0000@1}','chaine',0,'','2017-02-06 04:16:27'),(5948,'MAIN_MODULE_LOAN',1,'1',NULL,0,NULL,'2017-02-06 19:19:05'),(5954,'MAIN_SUBMODULE_EXPEDITION',1,'1','chaine',0,'','2017-02-06 23:57:37'),(5963,'MAIN_MODULE_BANQUE',1,'1',NULL,0,NULL,'2017-02-07 18:56:12'),(5964,'MAIN_MODULE_TAX',1,'1',NULL,0,NULL,'2017-02-07 18:56:12'),(5996,'CABINETMED_RHEUMATOLOGY_ON',1,'0','text',0,'','2018-11-23 11:56:07'),(5999,'MAIN_SEARCHFORM_SOCIETE',1,'1','text',0,'','2018-11-23 11:56:07'),(6000,'CABINETMED_BANK_PATIENT_REQUIRED',1,'0','text',0,'','2018-11-23 11:56:07'),(6019,'MAIN_INFO_SOCIETE_COUNTRY',2,'1:FR:France','chaine',0,'','2017-02-15 17:18:22'),(6020,'MAIN_INFO_SOCIETE_NOM',2,'MySecondCompany','chaine',0,'','2017-02-15 17:18:22'),(6021,'MAIN_INFO_SOCIETE_STATE',2,'0','chaine',0,'','2017-02-15 17:18:22'),(6022,'MAIN_MONNAIE',2,'EUR','chaine',0,'','2017-02-15 17:18:22'),(6023,'MAIN_LANG_DEFAULT',2,'auto','chaine',0,'','2017-02-15 17:18:22'),(6032,'MAIN_MODULE_MULTICURRENCY',1,'1',NULL,0,NULL,'2017-02-15 17:29:59'),(6048,'SYSLOG_FACILITY',0,'LOG_USER','chaine',0,'','2017-02-15 22:37:01'),(6049,'SYSLOG_FIREPHP_INCLUDEPATH',0,'/home/ldestailleur/git/dolibarr_5.0/htdocs/includes/firephp/firephp-core/lib/','chaine',0,'','2017-02-15 22:37:01'),(6050,'SYSLOG_FILE',0,'DOL_DATA_ROOT/dolibarr.log','chaine',0,'','2017-02-15 22:37:01'),(6051,'SYSLOG_CHROMEPHP_INCLUDEPATH',0,'/home/ldestailleur/git/dolibarr_5.0/htdocs/includes/ccampbell/chromephp/','chaine',0,'','2017-02-15 22:37:01'),(6052,'SYSLOG_HANDLERS',0,'[\"mod_syslog_file\"]','chaine',0,'','2017-02-15 22:37:01'),(6054,'SYSLOG_LEVEL',0,'7','chaine',0,'','2017-02-15 22:37:21'),(6074,'CABINETMED_DELAY_TO_LOCK_RECORD',1,'','chaine',1,'Number of days before locking edit of consultation','2017-02-21 00:04:15'),(6092,'MAIN_SIZE_SHORTLIST_LIMIT',0,'3','chaine',0,'Max length for small lists (tabs)','2017-05-12 09:02:38'),(6099,'MAIN_MODULE_SKYPE',1,'1',NULL,0,NULL,'2017-05-12 09:03:51'),(6100,'MAIN_MODULE_GRAVATAR',1,'1',NULL,0,NULL,'2017-05-12 09:03:54'),(6102,'PRODUCT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/products','chaine',0,'','2017-08-27 13:29:07'),(6103,'CONTRACT_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/contracts','chaine',0,'','2017-08-27 13:29:07'),(6104,'USERGROUP_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/usergroups','chaine',0,'','2017-08-27 13:29:07'),(6105,'USER_ADDON_PDF_ODT_PATH',1,'DOL_DATA_ROOT/doctemplates/users','chaine',0,'','2017-08-27 13:29:07'),(6106,'MAIN_ENABLE_OVERWRITE_TRANSLATION',1,'1','chaine',0,'Enable overwrote of translation','2017-08-27 13:29:07'),(6108,'MAIN_AGENDA_ACTIONAUTO_ORDER_SUPPLIER_CREATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6109,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_CLASSIFY_BILLED',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6110,'MAIN_AGENDA_ACTIONAUTO_FICHINTER_CLASSIFY_UNBILLED',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6111,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_CREATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6112,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_MODIFY',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6113,'MAIN_AGENDA_ACTIONAUTO_PRODUCT_DELETE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6114,'MAIN_AGENDA_ACTIONAUTO_PROJECT_MODIFY',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6115,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_CREATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6116,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_VALIDATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6117,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_APPROVE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6118,'MAIN_AGENDA_ACTIONAUTO_EXPENSE_REPORT_PAYED',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6119,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_CREATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6120,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_VALIDATE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6121,'MAIN_AGENDA_ACTIONAUTO_HOLIDAY_APPROVE',1,'1','chaine',0,NULL,'2017-08-27 13:29:14'),(6137,'MAIN_LANG_DEFAULT',1,'auto','chaine',0,'','2017-08-28 10:19:58'),(6138,'MAIN_MULTILANGS',1,'1','chaine',0,'','2017-08-28 10:19:58'),(6139,'MAIN_THEME',1,'eldy','chaine',0,'','2017-08-28 10:19:58'),(6140,'THEME_ELDY_USE_HOVER',1,'edf4fb','chaine',0,'','2017-08-28 10:19:58'),(6141,'MAIN_SIZE_LISTE_LIMIT',1,'25','chaine',0,'','2017-08-28 10:19:59'),(6142,'MAIN_SIZE_SHORTLIST_LIMIT',1,'3','chaine',0,'','2017-08-28 10:19:59'),(6143,'MAIN_DISABLE_JAVASCRIPT',1,'0','chaine',0,'','2017-08-28 10:19:59'),(6144,'MAIN_BUTTON_HIDE_UNAUTHORIZED',1,'0','chaine',0,'','2017-08-28 10:19:59'),(6145,'MAIN_START_WEEK',1,'1','chaine',0,'','2017-08-28 10:19:59'),(6146,'MAIN_DEFAULT_WORKING_DAYS',1,'1-5','chaine',0,'','2017-08-28 10:19:59'),(6147,'MAIN_DEFAULT_WORKING_HOURS',1,'9-18','chaine',0,'','2017-08-28 10:19:59'),(6148,'MAIN_SHOW_LOGO',1,'1','chaine',0,'','2017-08-28 10:19:59'),(6149,'MAIN_FIRSTNAME_NAME_POSITION',1,'0','chaine',0,'','2017-08-28 10:19:59'),(6150,'MAIN_HELPCENTER_DISABLELINK',0,'1','chaine',0,'','2017-08-28 10:19:59'),(6151,'MAIN_HOME',1,'<span style=\"font-size:11px\">__(NoteSomeFeaturesAreDisabled)__<br />\r\n<br />\r\n__(SomeTranslationAreUncomplete)__</span>','chaine',0,'','2017-08-28 10:19:59'),(6152,'MAIN_HELP_DISABLELINK',0,'0','chaine',0,'','2017-08-28 10:19:59'),(6153,'MAIN_BUGTRACK_ENABLELINK',1,'0','chaine',0,'','2017-08-28 10:19:59'),(6353,'MAIN_MENU_STANDARD',1,'eldy_menu.php','chaine',0,'','2017-08-30 15:14:44'),(6354,'MAIN_MENU_SMARTPHONE',1,'eldy_menu.php','chaine',0,'','2017-08-30 15:14:44'),(6355,'MAIN_MENUFRONT_STANDARD',1,'eldy_menu.php','chaine',0,'','2017-08-30 15:14:44'),(6356,'MAIN_MENUFRONT_SMARTPHONE',1,'eldy_menu.php','chaine',0,'','2017-08-30 15:14:44'),(6377,'COMMANDE_SAPHIR_MASK',1,'{yy}{mm}{000}{ttt}','chaine',0,'','2017-09-06 07:56:25'),(6461,'MAIN_INFO_SOCIETE_COUNTRY',1,'117:IN:India','chaine',0,'','2017-09-06 08:51:11'),(6462,'MAIN_INFO_SOCIETE_NOM',1,'MyBigCompany','chaine',0,'','2017-09-06 08:51:11'),(6463,'MAIN_INFO_SOCIETE_ADDRESS',1,'21 Jump street..ll..ee \"','chaine',0,'','2017-09-06 08:51:11'),(6464,'MAIN_INFO_SOCIETE_TOWN',1,'MyTown','chaine',0,'','2017-09-06 08:51:12'),(6465,'MAIN_INFO_SOCIETE_ZIP',1,'75500','chaine',0,'','2017-09-06 08:51:12'),(6466,'MAIN_INFO_SOCIETE_STATE',1,'290','chaine',0,'','2017-09-06 08:51:12'),(6467,'MAIN_MONNAIE',1,'EUR','chaine',0,'','2017-09-06 08:51:12'),(6468,'MAIN_INFO_SOCIETE_TEL',1,'09123123','chaine',0,'','2017-09-06 08:51:12'),(6469,'MAIN_INFO_SOCIETE_FAX',1,'09123124','chaine',0,'','2017-09-06 08:51:12'),(6470,'MAIN_INFO_SOCIETE_MAIL',1,'myemail@mybigcompany.com','chaine',0,'','2017-09-06 08:51:12'),(6471,'MAIN_INFO_SOCIETE_WEB',1,'https://www.dolibarr.org','chaine',0,'','2017-09-06 08:51:12'),(6472,'MAIN_INFO_SOCIETE_NOTE',1,'This is note about my company\r\n\"ee\"','chaine',0,'','2017-09-06 08:51:12'),(6473,'MAIN_INFO_SOCIETE_GENCOD',1,'1234567890','chaine',0,'','2017-09-06 08:51:12'),(6474,'MAIN_INFO_SOCIETE_MANAGERS',1,'Zack Zeceo','chaine',0,'','2017-09-06 08:51:12'),(6475,'MAIN_INFO_CAPITAL',1,'10000','chaine',0,'','2017-09-06 08:51:12'),(6476,'MAIN_INFO_SOCIETE_FORME_JURIDIQUE',1,'0','chaine',0,'','2017-09-06 08:51:12'),(6477,'MAIN_INFO_SIREN',1,'123456','chaine',0,'','2017-09-06 08:51:12'),(6478,'MAIN_INFO_SIRET',1,'1','chaine',0,'','2017-09-06 08:51:12'),(6479,'MAIN_INFO_APE',1,'1','chaine',0,'','2017-09-06 08:51:12'),(6480,'MAIN_INFO_RCS',1,'1','chaine',0,'','2017-09-06 08:51:12'),(6481,'MAIN_INFO_PROFID5',1,'1','chaine',0,'','2017-09-06 08:51:12'),(6482,'MAIN_INFO_TVAINTRA',1,'FR1234567','chaine',0,'','2017-09-06 08:51:12'),(6483,'MAIN_INFO_SOCIETE_OBJECT',1,'A company demo to show how Dolibarr ERP CRM is wonderfull','chaine',0,'','2017-09-06 08:51:12'),(6484,'SOCIETE_FISCAL_MONTH_START',1,'4','chaine',0,'','2017-09-06 08:51:12'),(6485,'FACTURE_TVAOPTION',1,'1','chaine',0,'','2017-09-06 08:51:12'),(6486,'FACTURE_LOCAL_TAX1_OPTION',1,'localtax1on','chaine',0,'','2017-09-06 08:51:12'),(6487,'FACTURE_LOCAL_TAX2_OPTION',1,'localtax2on','chaine',0,'','2017-09-06 08:51:12'),(6488,'MAIN_INFO_VALUE_LOCALTAX1',1,'0','chaine',0,'','2017-09-06 08:51:12'),(6489,'MAIN_INFO_LOCALTAX_CALC1',1,'0','chaine',0,'','2017-09-06 08:51:12'),(6490,'MAIN_INFO_VALUE_LOCALTAX2',1,'0','chaine',0,'','2017-09-06 08:51:12'),(6491,'MAIN_INFO_LOCALTAX_CALC2',1,'0','chaine',0,'','2017-09-06 08:51:12'),(6518,'GOOGLE_DUPLICATE_INTO_THIRDPARTIES',1,'1','chaine',0,'','2017-09-06 19:43:57'),(6519,'GOOGLE_DUPLICATE_INTO_CONTACTS',1,'0','chaine',0,'','2017-09-06 19:43:57'),(6520,'GOOGLE_TAG_PREFIX',1,'Dolibarr (Thirdparties)','chaine',0,'','2017-09-06 19:43:57'),(6521,'GOOGLE_TAG_PREFIX_CONTACTS',1,'Dolibarr (Contacts/Addresses)','chaine',0,'','2017-09-06 19:43:57'),(6522,'GOOGLE_ENABLE_AGENDA',1,'1','chaine',0,'','2017-09-06 19:44:12'),(6523,'GOOGLE_AGENDA_COLOR1',1,'1B887A','chaine',0,'','2017-09-06 19:44:12'),(6524,'GOOGLE_AGENDA_COLOR2',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6525,'GOOGLE_AGENDA_COLOR3',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6526,'GOOGLE_AGENDA_COLOR4',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6527,'GOOGLE_AGENDA_COLOR5',1,'7A367A','chaine',0,'','2017-09-06 19:44:12'),(6528,'GOOGLE_AGENDA_TIMEZONE',1,'Europe/Paris','chaine',0,'','2017-09-06 19:44:12'),(6529,'GOOGLE_AGENDA_NB',1,'5','chaine',0,'','2017-09-06 19:44:12'),(6543,'MAIN_SMS_DEBUG',0,'1','chaine',1,'This is to enable OVH SMS debug','2017-09-06 19:44:34'),(6562,'BLOCKEDLOG_ENTITY_FINGERPRINT',1,'b63e359ffca54d5c2bab869916eaf23d4a736703028ccbf77ce1167c5f830e7b','chaine',0,'Numeric Unique Fingerprint','2018-01-19 11:27:15'),(6564,'BLOCKEDLOG_DISABLE_NOT_ALLOWED_FOR_COUNTRY',1,'FR','chaine',0,'This is list of country code where the module may be mandatory','2018-01-19 11:27:15'),(6565,'MAIN_MODULE_BOOKMARK',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:27:34'),(6566,'MAIN_MODULE_ADHERENT',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:27:56'),(6567,'ADHERENT_ADDON_PDF',1,'standard','chaine',0,'Name of PDF model of member','2018-01-19 11:27:56'),(6569,'MAIN_MODULE_STRIPE',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"82.240.38.230\"}','2018-01-19 11:28:17'),(6587,'MAIN_MODULE_BLOCKEDLOG',1,'1',NULL,0,'{\"authorid\":\"12\",\"ip\":\"127.0.0.1\"}','2018-03-16 09:57:24'),(6590,'MAIN_MODULE_ACCOUNTING',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:15'),(6591,'MAIN_MODULE_AGENDA',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:15'),(6592,'MAIN_MODULE_BARCODE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:15'),(6593,'MAIN_MODULE_CRON',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:16'),(6594,'MAIN_MODULE_COMMANDE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:16'),(6595,'MAIN_MODULE_DON',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:17'),(6596,'MAIN_MODULE_ECM',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:17'),(6597,'MAIN_MODULE_FACTURE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:17'),(6598,'MAIN_MODULE_FOURNISSEUR',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:18'),(6599,'MAIN_MODULE_HOLIDAY',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:19'),(6600,'MAIN_MODULE_OPENSURVEY',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:19'),(6601,'MAIN_MODULE_PRINTING',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:19'),(6602,'MAIN_MODULE_SALARIES',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:19'),(6603,'MAIN_MODULE_SYSLOG',0,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:19'),(6604,'MAIN_MODULE_SOCIETE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:19'),(6605,'MAIN_MODULE_SERVICE',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:20'),(6606,'MAIN_MODULE_USER',0,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:20'),(6607,'MAIN_MODULE_VARIANTS',1,'1','string',0,'{\"authorid\":0,\"ip\":\"127.0.0.1\"}','2018-11-23 11:58:21'),(6608,'MAIN_VERSION_LAST_UPGRADE',0,'9.0.0-beta','chaine',0,'Dolibarr version for last upgrade','2018-11-23 11:58:23');
    +/*!40000 ALTER TABLE `llx_const` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_contrat`
    +--
    +
    +DROP TABLE IF EXISTS `llx_contrat`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_contrat` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_supplier` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `date_contrat` datetime DEFAULT NULL,
    +  `statut` smallint(6) DEFAULT '0',
    +  `mise_en_service` datetime DEFAULT NULL,
    +  `fin_validite` datetime DEFAULT NULL,
    +  `date_cloture` datetime DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `fk_commercial_signature` int(11) DEFAULT NULL,
    +  `fk_commercial_suivi` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL DEFAULT '0',
    +  `fk_user_mise_en_service` int(11) DEFAULT NULL,
    +  `fk_user_cloture` int(11) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_customer` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_contrat_ref` (`ref`,`entity`),
    +  KEY `idx_contrat_fk_soc` (`fk_soc`),
    +  KEY `idx_contrat_fk_user_author` (`fk_user_author`),
    +  CONSTRAINT `fk_contrat_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_contrat_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_contrat`
    +--
    +
    +LOCK TABLES `llx_contrat` WRITE;
    +/*!40000 ALTER TABLE `llx_contrat` DISABLE KEYS */;
    +INSERT INTO `llx_contrat` VALUES (1,'CONTRACT1',NULL,NULL,1,'2010-07-08 23:53:55','2010-07-09 01:53:25','2010-07-09 00:00:00',1,NULL,NULL,NULL,3,NULL,2,2,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,'CONTRAT1',NULL,NULL,1,'2010-07-10 16:18:16','2010-07-10 18:13:37','2010-07-10 00:00:00',1,NULL,NULL,NULL,2,NULL,2,2,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'CT1303-0001',NULL,NULL,1,'2013-03-06 09:05:07','2013-03-06 10:04:57','2013-03-06 00:00:00',1,NULL,NULL,NULL,19,NULL,1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_contrat` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_contrat_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_contrat_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_contrat_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_contrat_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_contrat_extrafields`
    +--
    +
    +LOCK TABLES `llx_contrat_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_contrat_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_contrat_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_contratdet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_contratdet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_contratdet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_contrat` int(11) NOT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `statut` smallint(6) DEFAULT '0',
    +  `label` text COLLATE utf8_unicode_ci,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_remise_except` int(11) DEFAULT NULL,
    +  `date_commande` datetime DEFAULT NULL,
    +  `date_ouverture_prevue` datetime DEFAULT NULL,
    +  `date_ouverture` datetime DEFAULT NULL,
    +  `date_fin_validite` datetime DEFAULT NULL,
    +  `date_cloture` datetime DEFAULT NULL,
    +  `tva_tx` double(6,3) DEFAULT '0.000',
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double NOT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `price_ht` double DEFAULT NULL,
    +  `remise` double DEFAULT '0',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `product_type` int(11) DEFAULT '1',
    +  `info_bits` int(11) DEFAULT '0',
    +  `fk_product_fournisseur_price` int(11) DEFAULT NULL,
    +  `buy_price_ht` double(24,8) DEFAULT '0.00000000',
    +  `fk_user_author` int(11) NOT NULL DEFAULT '0',
    +  `fk_user_ouverture` int(11) DEFAULT NULL,
    +  `fk_user_cloture` int(11) DEFAULT NULL,
    +  `commentaire` text COLLATE utf8_unicode_ci,
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_contratdet_fk_contrat` (`fk_contrat`),
    +  KEY `idx_contratdet_fk_product` (`fk_product`),
    +  KEY `idx_contratdet_date_ouverture_prevue` (`date_ouverture_prevue`),
    +  KEY `idx_contratdet_date_ouverture` (`date_ouverture`),
    +  KEY `idx_contratdet_date_fin_validite` (`date_fin_validite`),
    +  KEY `fk_contratdet_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_contratdet_fk_contrat` FOREIGN KEY (`fk_contrat`) REFERENCES `llx_contrat` (`rowid`),
    +  CONSTRAINT `fk_contratdet_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`),
    +  CONSTRAINT `fk_contratdet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_contratdet`
    +--
    +
    +LOCK TABLES `llx_contratdet` WRITE;
    +/*!40000 ALTER TABLE `llx_contratdet` DISABLE KEYS */;
    +INSERT INTO `llx_contratdet` VALUES (1,'2013-03-06 09:00:00',1,3,4,'','',NULL,NULL,'2010-07-09 00:00:00','2010-07-09 12:00:00','2013-03-15 00:00:00',NULL,0.000,'',0.000,'',0.000,'',1,0,0.00000000,0,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,0,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(2,'2010-07-10 16:14:14',2,NULL,0,'','Abonnement annuel assurance',NULL,NULL,'2010-07-10 00:00:00',NULL,'2011-07-10 00:00:00',NULL,1.000,'',0.000,'',0.000,'',1,0,10.00000000,10,0,10.00000000,0.10000000,0.00000000,0.00000000,10.10000000,1,0,NULL,0.00000000,0,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(3,'2013-03-05 10:20:58',2,3,5,'','gdfg',NULL,NULL,'2010-07-10 00:00:00','2010-07-10 12:00:00','2011-07-09 00:00:00','2013-03-06 12:00:00',4.000,'',0.000,'',0.000,'',1,0,0.00000000,0,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,1,0,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(4,'2012-12-08 13:11:17',2,3,0,'','',NULL,NULL,'2010-07-10 00:00:00',NULL,NULL,NULL,0.000,'',0.000,'',0.000,'',1,10,40.00000000,40,NULL,36.00000000,0.00000000,0.00000000,0.00000000,36.00000000,1,0,NULL,0.00000000,0,NULL,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(5,'2013-03-06 09:05:40',3,NULL,4,'','gfdg',NULL,NULL,NULL,'2013-03-06 12:00:00','2013-03-07 12:00:00',NULL,0.000,'',0.000,'',0.000,'',1,0,10.00000000,10,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,0,0,0.00000000,0,1,1,'',NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000);
    +/*!40000 ALTER TABLE `llx_contratdet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_contratdet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_contratdet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_contratdet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_contratdet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_contratdet_extrafields`
    +--
    +
    +LOCK TABLES `llx_contratdet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_contratdet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_contratdet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_contratdet_log`
    +--
    +
    +DROP TABLE IF EXISTS `llx_contratdet_log`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_contratdet_log` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_contratdet` int(11) NOT NULL,
    +  `date` datetime NOT NULL,
    +  `statut` smallint(6) NOT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `commentaire` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_contratdet_log_fk_contratdet` (`fk_contratdet`),
    +  KEY `idx_contratdet_log_date` (`date`),
    +  CONSTRAINT `fk_contratdet_log_fk_contratdet` FOREIGN KEY (`fk_contratdet`) REFERENCES `llx_contratdet` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_contratdet_log`
    +--
    +
    +LOCK TABLES `llx_contratdet_log` WRITE;
    +/*!40000 ALTER TABLE `llx_contratdet_log` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_contratdet_log` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_cotisation`
    +--
    +
    +DROP TABLE IF EXISTS `llx_cotisation`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_cotisation` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_adherent` int(11) DEFAULT NULL,
    +  `dateadh` datetime DEFAULT NULL,
    +  `datef` date DEFAULT NULL,
    +  `cotisation` double DEFAULT NULL,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_cotisation` (`fk_adherent`,`dateadh`)
    +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_cotisation`
    +--
    +
    +LOCK TABLES `llx_cotisation` WRITE;
    +/*!40000 ALTER TABLE `llx_cotisation` DISABLE KEYS */;
    +INSERT INTO `llx_cotisation` VALUES (1,'2010-07-10 13:05:30','2010-07-10 15:05:30',2,'2010-07-10 00:00:00','2011-07-10',20,NULL,'Adhésion/cotisation 2010'),(2,'2010-07-11 14:20:00','2010-07-11 16:20:00',2,'2011-07-11 00:00:00','2012-07-10',10,NULL,'Adhésion/cotisation 2011'),(3,'2010-07-18 10:20:33','2010-07-18 12:20:33',2,'2012-07-11 00:00:00','2013-07-17',10,NULL,'Adhésion/cotisation 2012'),(4,'2013-03-06 15:43:37','2013-03-06 16:43:37',2,'2013-07-18 00:00:00','2014-07-17',10,NULL,'Adhésion/cotisation 2013'),(5,'2013-03-06 15:44:12','2013-03-06 16:44:12',2,'2014-07-18 00:00:00','2015-07-17',11,NULL,'Adhésion/cotisation 2014'),(6,'2013-03-06 15:47:48','2013-03-06 16:47:48',2,'2015-07-18 00:00:00','2016-07-17',10,NULL,'Adhésion/cotisation 2015'),(7,'2013-03-06 15:48:16','2013-03-06 16:48:16',2,'2016-07-18 00:00:00','2017-07-17',20,22,'Adhésion/cotisation 2016'),(8,'2013-03-20 13:17:57','2013-03-20 14:17:57',1,'2010-07-10 00:00:00','2011-07-09',10,NULL,'Adhésion/cotisation 2010'),(10,'2013-03-20 13:30:11','2013-03-20 14:30:11',1,'2011-07-10 00:00:00','2012-07-09',10,23,'Adhésion/cotisation 2011');
    +/*!40000 ALTER TABLE `llx_cotisation` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_cronjob`
    +--
    +
    +DROP TABLE IF EXISTS `llx_cronjob`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_cronjob` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `jobtype` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` text COLLATE utf8_unicode_ci NOT NULL,
    +  `command` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `classesname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `objectname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `methodename` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `params` text COLLATE utf8_unicode_ci,
    +  `md5params` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `module_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `priority` int(11) DEFAULT '0',
    +  `datelastrun` datetime DEFAULT NULL,
    +  `datenextrun` datetime DEFAULT NULL,
    +  `datestart` datetime DEFAULT NULL,
    +  `dateend` datetime DEFAULT NULL,
    +  `datelastresult` datetime DEFAULT NULL,
    +  `lastresult` text COLLATE utf8_unicode_ci,
    +  `lastoutput` text COLLATE utf8_unicode_ci,
    +  `unitfrequency` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '3600',
    +  `frequency` int(11) NOT NULL DEFAULT '0',
    +  `nbrun` int(11) DEFAULT NULL,
    +  `status` int(11) NOT NULL DEFAULT '1',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `libname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) DEFAULT '0',
    +  `maxrun` int(11) NOT NULL DEFAULT '0',
    +  `autodelete` int(11) DEFAULT '0',
    +  `fk_mailing` int(11) DEFAULT NULL,
    +  `test` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  `processing` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_cronjob`
    +--
    +
    +LOCK TABLES `llx_cronjob` WRITE;
    +/*!40000 ALTER TABLE `llx_cronjob` DISABLE KEYS */;
    +INSERT INTO `llx_cronjob` VALUES (1,'2013-03-23 18:18:39','2013-03-23 19:18:39','command','aaa','aaaa','','','','','','',0,NULL,NULL,'2013-03-23 19:18:00',NULL,NULL,NULL,NULL,'3600',3600,0,0,1,1,'',NULL,0,0,0,NULL,'1',0),(40,'2018-11-23 11:58:15','2018-11-23 12:58:15','method','SendEmailsReminders',NULL,'comm/action/class/actioncomm.class.php','ActionComm','sendEmailsReminder',NULL,NULL,'agenda',10,NULL,NULL,'2018-11-23 12:58:15',NULL,NULL,NULL,NULL,'60',10,NULL,1,NULL,NULL,'SendEMailsReminder',NULL,1,0,0,NULL,'$conf->agenda->enabled',0),(41,'2018-11-23 11:58:16','2018-11-23 12:58:16','method','PurgeDeleteTemporaryFilesShort',NULL,'core/class/utils.class.php','Utils','purgeFiles',NULL,NULL,'cron',50,NULL,NULL,'2018-11-23 12:58:16',NULL,NULL,NULL,NULL,'604800',2,NULL,1,NULL,NULL,'PurgeDeleteTemporaryFiles',NULL,0,0,0,NULL,'1',0),(42,'2018-11-23 11:58:16','2018-11-23 12:58:16','method','MakeLocalDatabaseDumpShort',NULL,'core/class/utils.class.php','Utils','dumpDatabase','none,auto,1,auto,10',NULL,'cron',90,NULL,NULL,'2018-11-23 12:58:16',NULL,NULL,NULL,NULL,'604800',1,NULL,0,NULL,NULL,'MakeLocalDatabaseDump',NULL,0,0,0,NULL,'1',0),(43,'2018-11-23 11:58:17','2018-11-23 12:58:17','method','RecurringInvoices',NULL,'compta/facture/class/facture-rec.class.php','FactureRec','createRecurringInvoices',NULL,NULL,'facture',50,NULL,NULL,'2018-11-23 23:00:00',NULL,NULL,NULL,NULL,'86400',1,NULL,1,NULL,NULL,'Generate recurring invoices',NULL,1,0,0,NULL,'$conf->facture->enabled',0),(44,'2018-11-23 11:58:19','2018-11-23 12:58:19','method','CompressSyslogs',NULL,'core/class/utils.class.php','Utils','compressSyslogs',NULL,NULL,'syslog',50,NULL,NULL,'2018-11-23 12:58:19',NULL,NULL,NULL,NULL,'86400',1,NULL,0,NULL,NULL,'Compress and archive log files. Warning: batch must be run with same account than your web server to avoid to get log files with different owner than required by web server. Another solution is to set web server Operating System group as the group of directory documents and set GROUP permission \"rws\" on this directory so log files will always have the group and permissions of the web server Operating System group',NULL,1,0,0,NULL,'1',0);
    +/*!40000 ALTER TABLE `llx_cronjob` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_default_values`
    +--
    +
    +DROP TABLE IF EXISTS `llx_default_values`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_default_values` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `user_id` int(11) NOT NULL DEFAULT '0',
    +  `page` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `param` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `value` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_default_values` (`type`,`entity`,`user_id`,`page`,`param`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_default_values`
    +--
    +
    +LOCK TABLES `llx_default_values` WRITE;
    +/*!40000 ALTER TABLE `llx_default_values` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_default_values` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_deplacement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_deplacement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_deplacement` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `dated` datetime DEFAULT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `type` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_statut` int(11) NOT NULL DEFAULT '1',
    +  `km` double DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT '0',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_deplacement`
    +--
    +
    +LOCK TABLES `llx_deplacement` WRITE;
    +/*!40000 ALTER TABLE `llx_deplacement` DISABLE KEYS */;
    +INSERT INTO `llx_deplacement` VALUES (1,NULL,1,'2010-07-09 01:58:04','2010-07-08 23:58:18','2010-07-09 12:00:00',2,1,NULL,'TF_LUNCH',1,10,2,1,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_deplacement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_document_model`
    +--
    +
    +DROP TABLE IF EXISTS `llx_document_model`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_document_model` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `nom` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `type` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_document_model` (`nom`,`type`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=305 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_document_model`
    +--
    +
    +LOCK TABLES `llx_document_model` WRITE;
    +/*!40000 ALTER TABLE `llx_document_model` DISABLE KEYS */;
    +INSERT INTO `llx_document_model` VALUES (9,'merou',1,'shipping',NULL,NULL),(181,'generic_invoice_odt',1,'invoice','ODT templates','FACTURE_ADDON_PDF_ODT_PATH'),(193,'canelle2',1,'invoice_supplier','canelle2',NULL),(195,'canelle',1,'invoice_supplier','canelle',NULL),(198,'azur',2,'propal',NULL,NULL),(199,'html_cerfafr',2,'donation',NULL,NULL),(200,'crabe',2,'invoice',NULL,NULL),(201,'generic_odt',1,'company','ODT templates','COMPANY_ADDON_PDF_ODT_PATH'),(250,'baleine',1,'project',NULL,NULL),(255,'soleil',1,'ficheinter',NULL,NULL),(256,'azur',1,'propal',NULL,NULL),(270,'aurore',1,'supplier_proposal',NULL,NULL),(273,'beluga',1,'project','beluga',NULL),(274,'rouget',1,'shipping',NULL,NULL),(275,'typhon',1,'delivery',NULL,NULL),(278,'standard',1,'expensereport',NULL,NULL),(281,'sepamandate',1,'bankaccount','sepamandate',NULL),(299,'standard',1,'member',NULL,NULL),(300,'einstein',1,'order',NULL,NULL),(302,'crabe',1,'invoice',NULL,NULL),(303,'muscadet',1,'order_supplier',NULL,NULL),(304,'html_cerfafr',1,'donation',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_document_model` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_don`
    +--
    +
    +DROP TABLE IF EXISTS `llx_don`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_don` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `datec` datetime DEFAULT NULL,
    +  `datedon` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_payment` int(11) DEFAULT NULL,
    +  `paid` smallint(6) NOT NULL DEFAULT '0',
    +  `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `societe` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` text COLLATE utf8_unicode_ci,
    +  `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `country` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_country` int(11) NOT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone_mobile` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `public` smallint(6) NOT NULL DEFAULT '1',
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_don`
    +--
    +
    +LOCK TABLES `llx_don` WRITE;
    +/*!40000 ALTER TABLE `llx_don` DISABLE KEYS */;
    +INSERT INTO `llx_don` VALUES (1,NULL,1,'2010-07-08 23:57:17',1,'2010-07-09 01:55:33','2010-07-09 12:00:00',10.00000000,1,0,'Donator','','Guest company','','','','France',0,'',NULL,NULL,1,1,1,1,'',NULL,'html_cerfafr',NULL,NULL,NULL),(2,NULL,1,'2017-02-06 04:05:29',0,'2017-02-06 08:05:29','2017-02-06 12:00:00',100.00000000,NULL,0,'','','','','','',NULL,0,'','','',1,NULL,12,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,NULL,1,'2017-09-06 16:18:19',2,'2017-09-06 20:05:17','2017-09-06 12:00:00',10.00000000,NULL,0,'','','','','','',NULL,0,'','','',1,NULL,12,12,NULL,NULL,'html_cerfafr',NULL,NULL,NULL),(4,NULL,1,'2017-09-06 16:07:07',1,'2017-09-06 20:06:59','2017-09-06 12:00:00',10.00000000,NULL,0,'','','','','','',NULL,117,'','','',1,NULL,12,12,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_don` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_don_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_don_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_don_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_don_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_don_extrafields`
    +--
    +
    +LOCK TABLES `llx_don_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_don_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_don_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ecm_directories`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ecm_directories`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ecm_directories` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_parent` int(11) DEFAULT NULL,
    +  `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `cachenbofdoc` int(11) NOT NULL DEFAULT '0',
    +  `fullpath` varchar(750) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_c` datetime DEFAULT NULL,
    +  `date_m` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_c` int(11) DEFAULT NULL,
    +  `fk_user_m` int(11) DEFAULT NULL,
    +  `acl` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_ecm_directories` (`label`,`fk_parent`,`entity`),
    +  KEY `idx_ecm_directories_fk_user_c` (`fk_user_c`),
    +  KEY `idx_ecm_directories_fk_user_m` (`fk_user_m`),
    +  CONSTRAINT `fk_ecm_directories_fk_user_c` FOREIGN KEY (`fk_user_c`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_ecm_directories_fk_user_m` FOREIGN KEY (`fk_user_m`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ecm_directories`
    +--
    +
    +LOCK TABLES `llx_ecm_directories` WRITE;
    +/*!40000 ALTER TABLE `llx_ecm_directories` DISABLE KEYS */;
    +INSERT INTO `llx_ecm_directories` VALUES (8,'Administrative documents',1,0,'Directory to store administrative contacts',0,NULL,NULL,'2016-07-30 16:54:41','2016-07-30 12:54:41',12,NULL,NULL),(9,'Images',1,0,'',34,NULL,NULL,'2016-07-30 16:55:33','2016-07-30 13:24:41',12,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_ecm_directories` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ecm_files`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ecm_files`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ecm_files` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `share` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `filename` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `filepath` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fullpath_orig` varchar(750) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `keywords` text COLLATE utf8_unicode_ci,
    +  `cover` text COLLATE utf8_unicode_ci,
    +  `gen_or_uploaded` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_c` datetime DEFAULT NULL,
    +  `date_m` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_c` int(11) DEFAULT NULL,
    +  `fk_user_m` int(11) DEFAULT NULL,
    +  `acl` text COLLATE utf8_unicode_ci,
    +  `position` int(11) DEFAULT NULL,
    +  `keyword` varchar(750) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `src_object_type` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `src_object_id` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_ecm_files` (`filepath`,`filename`,`entity`),
    +  KEY `idx_ecm_files_label` (`label`)
    +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ecm_files`
    +--
    +
    +LOCK TABLES `llx_ecm_files` WRITE;
    +/*!40000 ALTER TABLE `llx_ecm_files` DISABLE KEYS */;
    +INSERT INTO `llx_ecm_files` VALUES (1,NULL,'6ff09d1c53ef83fe622b02a320bcfa52',NULL,1,'FA1107-0019.pdf','facture/FA1107-0019','/home/ldestailleur/git/dolibarr_6.0/documents/facture/FA1107-0019/FA1107-0019.pdf','',NULL,NULL,'unknown',NULL,'2017-08-30 15:53:34','2017-08-30 11:53:34',18,NULL,NULL,1,NULL,NULL,NULL),(2,NULL,'a6c8a0f04af73e4dfc059006d7a5f55a',NULL,1,'FA1107-0019_invoice.odt','facture/FA1107-0019','/home/ldestailleur/git/dolibarr_6.0/documents/facture/FA1107-0019/FA1107-0019_invoice.odt','',NULL,NULL,'unknown',NULL,'2017-08-30 15:53:34','2017-08-30 11:53:34',18,NULL,NULL,2,NULL,NULL,NULL),(3,NULL,'24e96a4a0da25d1ac5049ea46d031d3a',NULL,1,'FA1107-0019-depotFacture-1418-INH-N000289-20170720.pdf','facture/FA1107-0019','depotFacture-1418-INH-N000289-20170720.pdf','',NULL,NULL,'uploaded',NULL,'2017-08-30 15:54:45','2017-08-30 11:54:45',18,NULL,NULL,3,NULL,NULL,NULL),(4,NULL,'91a42a4e2c77e826562c83fa84f6fccd',NULL,1,'CO7001-0027-acces-coopinfo.txt','commande/CO7001-0027','acces-coopinfo.txt','',NULL,NULL,'uploaded',NULL,'2017-08-30 16:02:33','2017-08-30 12:02:33',18,NULL,NULL,1,NULL,NULL,NULL),(5,'5fe17a68b2f6a73e6326f77fa7b6586c','a60cad66c6da948eb08d5b939f3516ff',NULL,1,'FA1601-0024.pdf','facture/FA1601-0024','','',NULL,NULL,'generated',NULL,'2017-08-30 16:23:01','2018-03-16 09:59:31',12,12,NULL,1,NULL,NULL,NULL),(6,NULL,'24e96a4a0da25d1ac5049ea46d031d3a',NULL,1,'FA1601-0024-depotFacture-1418-INH-N000289-20170720.pdf','facture/FA1601-0024','depotFacture-1418-INH-N000289-20170720.pdf','',NULL,NULL,'uploaded',NULL,'2017-08-30 16:23:14','2017-08-30 12:23:14',12,NULL,NULL,2,NULL,NULL,NULL),(7,NULL,'d41d8cd98f00b204e9800998ecf8427e',NULL,1,'Exxxqqqw','produit/COMP-XP4523','/home/ldestailleur/git/dolibarr_6.0/documents/produit/COMP-XP4523/Exxxqqqw','',NULL,NULL,'unknown',NULL,'2017-08-30 19:03:15','2017-08-30 15:04:02',12,NULL,NULL,2,NULL,NULL,NULL),(8,NULL,'8245ba8e8e345655f06cd904d7d54f73',NULL,1,'compxp4523product.jpg','produit/COMP-XP4523','/home/ldestailleur/git/dolibarr_6.0/documents/produit/COMP-XP4523/compxp4523product.jpg','',NULL,NULL,'unknown',NULL,'2017-08-30 19:03:15','2017-08-30 15:04:02',12,NULL,NULL,1,NULL,NULL,NULL),(9,NULL,'d32552ee874c82b9f0ccab4f309b4b61',NULL,1,'dolihelp.ico','produit/COMP-XP4523','/home/ldestailleur/git/dolibarr_6.0/documents/produit/COMP-XP4523/dolihelp.ico','',NULL,NULL,'unknown',NULL,'2017-08-30 19:03:15','2017-08-30 15:03:15',12,NULL,NULL,3,NULL,NULL,NULL),(10,'afef987559622d6334fdc4a9a134c435','ccd46bbf3ab6c78588a0ba775106258f',NULL,1,'rolluproduct.jpg','produit/ROLLUPABC','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/ROLLUPABC/rolluproduct.jpg','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(11,'a8bbc6c6daea9a4dd58d6fb37a77a030','2f1f2ea4b1b4eb9f25ba440c7870ffcd',NULL,1,'dolicloud_logo.png','produit/DOLICLOUD','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/DOLICLOUD/dolicloud_logo.png','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(12,'bd0951e23023b22ad1cd21fe33ee46bf','03f0be1249e56fd0b3dd02d5545e3675',NULL,1,'applepieproduct.jpg','produit/CAKECONTRIB','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/CAKECONTRIB/applepieproduct.jpg','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(13,'e9e029e2d2bbd014162c0b385ab8739a','b7446fb7b54a3085ff7167e2c5b370fd',NULL,1,'pearpieproduct.jpg','produit/PEARPIE','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/PEARPIE/pearpieproduct.jpg','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(14,'14eea962fb99dc6dd8ca4474c519f837','973b1603b5eb01aac97eb2d911f4c341',NULL,1,'pinkdressproduct.jpg','produit/PINKDRESS','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/PINKDRESS/pinkdressproduct.jpg','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(15,'83616b4ec45e835526144ce114979f49','2adadd910fe97a07bd5be0f1f27f2d28',NULL,1,'dolidroid_114x114.png','produit/DOLIDROID','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/DOLIDROID/dolidroid_114x114.png','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL),(16,'6b11123918f12440cac5fa3c3190d2d6','8a0bc12d0e579a5a56e299a1a128ba80',NULL,1,'dolidroid_512x512_en.png','produit/DOLIDROID','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/DOLIDROID/dolidroid_512x512_en.png','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,2,NULL,NULL,NULL),(17,'5c0ceed2d113af84868710c940e1a921','246708ef260d601dcfa367a6b3258ecf',NULL,1,'dolidroid_screenshot_home_720x1280.png','produit/DOLIDROID','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/DOLIDROID/dolidroid_screenshot_home_720x1280.png','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,3,NULL,NULL,NULL),(18,'1972b3da7908b3e08247e6e23bb7bdc3','03f0be1249e56fd0b3dd02d5545e3675',NULL,1,'applepieproduct.jpg','produit/APPLEPIE','/home/dolibarr/demo.dolibarr.org/dolibarr_documents/produit/APPLEPIE/applepieproduct.jpg','',NULL,NULL,'unknown',NULL,'2018-01-19 11:23:16','2018-01-19 11:23:16',12,NULL,NULL,1,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_ecm_files` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ecommerce_category`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ecommerce_category`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ecommerce_category` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` tinyint(4) NOT NULL DEFAULT '1',
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_category` int(11) NOT NULL,
    +  `fk_site` int(11) NOT NULL,
    +  `remote_id` int(11) NOT NULL,
    +  `remote_parent_id` int(11) DEFAULT NULL,
    +  `last_update` datetime DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_ecommerce_category_fk_site_fk_category` (`fk_site`,`fk_category`),
    +  KEY `idx_ecommerce_category_fk_category` (`fk_category`),
    +  KEY `idx_ecommerce_category_fk_site` (`fk_site`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2268 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Table transition remote site -  Dolibarr';
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ecommerce_category`
    +--
    +
    +LOCK TABLES `llx_ecommerce_category` WRITE;
    +/*!40000 ALTER TABLE `llx_ecommerce_category` DISABLE KEYS */;
    +INSERT INTO `llx_ecommerce_category` VALUES (2260,'Default Category',0,'',35,2,2,1,'2015-09-22 14:46:27'),(2261,'categ1',0,'',36,2,3,2,'2015-09-23 14:53:15'),(2262,'categ1-a',0,'',37,2,6,3,'2016-09-25 15:11:47'),(2263,'categ1-b',0,'',38,2,7,3,'2015-09-23 14:45:50'),(2264,'categ2',0,'',39,2,4,1,'2015-09-23 14:45:54'),(2265,'categxxx',0,'',40,2,8,4,'2015-09-23 16:53:22'),(2266,'root2',0,'',41,2,9,1,'2015-09-23 16:53:31'),(2267,'root2-b',0,'',42,2,10,9,'2015-09-23 16:53:41');
    +/*!40000 ALTER TABLE `llx_ecommerce_category` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_element_contact`
    +--
    +
    +DROP TABLE IF EXISTS `llx_element_contact`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_element_contact` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datecreate` datetime DEFAULT NULL,
    +  `statut` smallint(6) DEFAULT '5',
    +  `element_id` int(11) NOT NULL,
    +  `fk_c_type_contact` int(11) NOT NULL,
    +  `fk_socpeople` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_element_contact_idx1` (`element_id`,`fk_c_type_contact`,`fk_socpeople`),
    +  KEY `fk_element_contact_fk_c_type_contact` (`fk_c_type_contact`),
    +  KEY `idx_element_contact_fk_socpeople` (`fk_socpeople`),
    +  CONSTRAINT `fk_element_contact_fk_c_type_contact` FOREIGN KEY (`fk_c_type_contact`) REFERENCES `llx_c_type_contact` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_element_contact`
    +--
    +
    +LOCK TABLES `llx_element_contact` WRITE;
    +/*!40000 ALTER TABLE `llx_element_contact` DISABLE KEYS */;
    +INSERT INTO `llx_element_contact` VALUES (1,'2010-07-09 00:49:43',4,1,160,1),(2,'2010-07-09 00:49:56',4,2,160,1),(3,'2010-07-09 00:50:19',4,3,160,1),(4,'2010-07-09 00:50:42',4,4,160,1),(5,'2010-07-09 01:52:36',4,1,120,1),(6,'2010-07-09 01:53:25',4,1,10,2),(7,'2010-07-09 01:53:25',4,1,11,2),(8,'2010-07-10 18:13:37',4,2,10,2),(9,'2010-07-10 18:13:37',4,2,11,2),(11,'2010-07-11 16:22:36',4,5,160,1),(12,'2010-07-11 16:23:53',4,2,180,1),(13,'2013-01-23 15:04:27',4,19,200,5),(14,'2013-01-23 16:06:37',4,19,210,2),(15,'2013-01-23 16:12:43',4,19,220,2),(16,'2013-03-06 10:04:57',4,3,10,1),(17,'2013-03-06 10:04:57',4,3,11,1),(18,'2014-12-21 13:52:41',4,3,180,1),(19,'2014-12-21 13:55:39',4,4,180,1),(20,'2014-12-21 14:16:58',4,5,180,1),(21,'2016-07-30 15:29:07',4,6,160,12),(22,'2016-07-30 15:29:48',4,7,160,12),(23,'2016-07-30 15:30:25',4,8,160,12),(24,'2016-07-30 15:33:27',4,6,180,12),(25,'2016-07-30 15:33:39',4,7,180,12),(26,'2016-07-30 15:33:54',4,8,180,12),(27,'2016-07-30 15:34:09',4,9,180,12),(28,'2016-07-31 18:27:20',4,9,160,12);
    +/*!40000 ALTER TABLE `llx_element_contact` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_element_element`
    +--
    +
    +DROP TABLE IF EXISTS `llx_element_element`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_element_element` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_source` int(11) NOT NULL,
    +  `sourcetype` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_target` int(11) NOT NULL,
    +  `targettype` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_element_element_idx1` (`fk_source`,`sourcetype`,`fk_target`,`targettype`),
    +  KEY `idx_element_element_fk_target` (`fk_target`)
    +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_element_element`
    +--
    +
    +LOCK TABLES `llx_element_element` WRITE;
    +/*!40000 ALTER TABLE `llx_element_element` DISABLE KEYS */;
    +INSERT INTO `llx_element_element` VALUES (4,1,'order_supplier',20,'invoice_supplier'),(12,1,'shipping',217,'facture'),(5,2,'cabinetmed_cabinetmedcons',216,'facture'),(1,2,'contrat',2,'facture'),(2,2,'propal',1,'commande'),(3,5,'commande',1,'shipping'),(13,5,'commande',217,'facture'),(11,25,'propal',92,'commande'),(9,28,'propal',90,'commande'),(10,29,'propal',91,'commande'),(6,75,'commande',2,'shipping');
    +/*!40000 ALTER TABLE `llx_element_element` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_element_lock`
    +--
    +
    +DROP TABLE IF EXISTS `llx_element_lock`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_element_lock` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_element` int(11) NOT NULL,
    +  `elementtype` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `datel` datetime DEFAULT NULL,
    +  `datem` datetime DEFAULT NULL,
    +  `sessionid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_element_lock`
    +--
    +
    +LOCK TABLES `llx_element_lock` WRITE;
    +/*!40000 ALTER TABLE `llx_element_lock` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_element_lock` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_element_resources`
    +--
    +
    +DROP TABLE IF EXISTS `llx_element_resources`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_element_resources` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `element_id` int(11) DEFAULT NULL,
    +  `element_type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `resource_id` int(11) DEFAULT NULL,
    +  `resource_type` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `busy` int(11) DEFAULT NULL,
    +  `mandatory` int(11) DEFAULT NULL,
    +  `fk_user_create` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `duree` double DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_element_resources_idx1` (`resource_id`,`resource_type`,`element_id`,`element_type`),
    +  KEY `idx_element_element_element_id` (`element_id`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_element_resources`
    +--
    +
    +LOCK TABLES `llx_element_resources` WRITE;
    +/*!40000 ALTER TABLE `llx_element_resources` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_element_resources` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_element_tag`
    +--
    +
    +DROP TABLE IF EXISTS `llx_element_tag`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_element_tag` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `lang` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
    +  `tag` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_element` int(11) NOT NULL,
    +  `element` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_element_tag` (`entity`,`lang`,`tag`,`fk_element`,`element`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_element_tag`
    +--
    +
    +LOCK TABLES `llx_element_tag` WRITE;
    +/*!40000 ALTER TABLE `llx_element_tag` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_element_tag` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_eleves`
    +--
    +
    +DROP TABLE IF EXISTS `llx_eleves`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_eleves` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_eleves_rowid` (`rowid`),
    +  KEY `idx_eleves_ref` (`ref`),
    +  KEY `idx_eleves_entity` (`entity`),
    +  KEY `idx_eleves_status` (`status`),
    +  KEY `idx_eleves_import_key` (`import_key`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_eleves`
    +--
    +
    +LOCK TABLES `llx_eleves` WRITE;
    +/*!40000 ALTER TABLE `llx_eleves` DISABLE KEYS */;
    +INSERT INTO `llx_eleves` VALUES (1,'ggg',1,'hh',10.00000000,NULL,'2017-09-06 00:33:15','2017-09-06 00:33:15',1,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_eleves` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_eleves_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_eleves_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_eleves_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_eleves_extrafields`
    +--
    +
    +LOCK TABLES `llx_eleves_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_eleves_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_eleves_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_emailcollector_emailcollector`
    +--
    +
    +DROP TABLE IF EXISTS `llx_emailcollector_emailcollector`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_emailcollector_emailcollector` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref` varchar(128) NOT NULL,
    +  `label` varchar(255) DEFAULT NULL,
    +  `description` text,
    +  `host` varchar(255) DEFAULT NULL,
    +  `user` varchar(128) DEFAULT NULL,
    +  `password` varchar(128) DEFAULT NULL,
    +  `source_directory` varchar(255) DEFAULT NULL,
    +  `filter` text,
    +  `actiontodo` varchar(255) DEFAULT NULL,
    +  `target_directory` varchar(255) DEFAULT NULL,
    +  `datelastresult` datetime DEFAULT NULL,
    +  `lastresult` varchar(255) DEFAULT NULL,
    +  `note_public` text,
    +  `note_private` text,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  `codelastresult` varchar(16) DEFAULT NULL,
    +  `position` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_emailcollector_rowid` (`rowid`),
    +  KEY `idx_emailcollector_entity` (`entity`),
    +  KEY `idx_emailcollector_status` (`status`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_emailcollector_emailcollector`
    +--
    +
    +LOCK TABLES `llx_emailcollector_emailcollector` WRITE;
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollector` DISABLE KEYS */;
    +INSERT INTO `llx_emailcollector_emailcollector` VALUES (1,1,'MyEmailCollector1','My email collector 1','aaa','imap.gmail.com','testldr10@gmail.com','testldr10-10','INBOX','','','aftercollect','2018-11-19 15:21:07','1 emails analyzed, 1 emails successfuly processed (for 3 record/actions done) by collector',NULL,NULL,'2018-10-31 18:08:05','2018-10-31 17:08:05',12,12,NULL,1,'OK',0);
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollector` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_emailcollector_emailcollectoraction`
    +--
    +
    +DROP TABLE IF EXISTS `llx_emailcollector_emailcollectoraction`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_emailcollector_emailcollectoraction` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_emailcollector` int(11) NOT NULL,
    +  `type` varchar(128) NOT NULL,
    +  `actionparam` varchar(255) DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  `position` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_emailcollector_emailcollectoraction` (`fk_emailcollector`,`type`),
    +  KEY `idx_emailcollector_fk_emailcollector` (`fk_emailcollector`),
    +  CONSTRAINT `fk_emailcollectoraction_fk_emailcollector` FOREIGN KEY (`fk_emailcollector`) REFERENCES `llx_emailcollector_emailcollector` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_emailcollector_emailcollectoraction`
    +--
    +
    +LOCK TABLES `llx_emailcollector_emailcollectoraction` WRITE;
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollectoraction` DISABLE KEYS */;
    +INSERT INTO `llx_emailcollector_emailcollectoraction` VALUES (6,1,'recordevent',NULL,'2018-11-07 18:01:53','2018-11-19 19:54:46',12,NULL,NULL,1,2),(7,1,'project',NULL,'2018-11-15 11:11:13','2018-11-19 19:54:37',12,NULL,NULL,1,3),(14,1,'loadandcreatethirdparty','REGEX:body:Nom:\\s([^\\s]*)','2018-11-19 13:03:58','2018-11-19 19:54:46',12,NULL,NULL,1,1);
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollectoraction` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_emailcollector_emailcollectorfilter`
    +--
    +
    +DROP TABLE IF EXISTS `llx_emailcollector_emailcollectorfilter`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_emailcollector_emailcollectorfilter` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_emailcollector` int(11) NOT NULL,
    +  `type` varchar(128) NOT NULL,
    +  `rulevalue` varchar(255) DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_emailcollector_emailcollectorfilter` (`fk_emailcollector`,`type`,`rulevalue`),
    +  KEY `idx_emailcollector_fk_emailcollector` (`fk_emailcollector`),
    +  CONSTRAINT `fk_emailcollector_fk_emailcollector` FOREIGN KEY (`fk_emailcollector`) REFERENCES `llx_emailcollector_emailcollector` (`rowid`),
    +  CONSTRAINT `fk_emailcollectorfilter_fk_emailcollector` FOREIGN KEY (`fk_emailcollector`) REFERENCES `llx_emailcollector_emailcollector` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_emailcollector_emailcollectorfilter`
    +--
    +
    +LOCK TABLES `llx_emailcollector_emailcollectorfilter` WRITE;
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollectorfilter` DISABLE KEYS */;
    +INSERT INTO `llx_emailcollector_emailcollectorfilter` VALUES (18,1,'withouttrackingid',NULL,'2018-11-16 15:10:27','2018-11-16 14:10:27',12,NULL,NULL,1),(19,1,'from','support@dolicloud.com','2018-11-16 16:03:10','2018-11-16 15:03:10',12,NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_emailcollector_emailcollectorfilter` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_emailsenderprofile`
    +--
    +
    +DROP TABLE IF EXISTS `llx_emailsenderprofile`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_emailsenderprofile` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  `note_private` mediumtext COLLATE utf8_unicode_ci,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_emailsenderprofile_rowid` (`rowid`),
    +  KEY `idx_emailsenderprofile_ref` (`ref`),
    +  KEY `idx_emailsenderprofile_entity` (`entity`),
    +  KEY `idx_emailsenderprofile_import_key` (`import_key`),
    +  KEY `idx_emailsenderprofile_status` (`status`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_emailsenderprofile`
    +--
    +
    +LOCK TABLES `llx_emailsenderprofile` WRITE;
    +/*!40000 ALTER TABLE `llx_emailsenderprofile` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_emailsenderprofile` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_emailsenderprofile_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_emailsenderprofile_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_emailsenderprofile_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_emailsenderprofile_extrafields`
    +--
    +
    +LOCK TABLES `llx_emailsenderprofile_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_emailsenderprofile_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_emailsenderprofile_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_entity_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_entity_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_entity_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_entity_extrafields`
    +--
    +
    +LOCK TABLES `llx_entity_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_entity_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_entity_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_entity_thirdparty`
    +--
    +
    +DROP TABLE IF EXISTS `llx_entity_thirdparty`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_entity_thirdparty` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_entity` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_entity_thirdparty_fk_soc` (`entity`,`fk_entity`,`fk_soc`),
    +  KEY `fk_entity_thirdparty_fk_entity` (`fk_entity`),
    +  KEY `fk_entity_thirdparty_fk_soc` (`fk_soc`),
    +  CONSTRAINT `fk_entity_thirdparty_fk_entity` FOREIGN KEY (`fk_entity`) REFERENCES `llx_entity` (`rowid`),
    +  CONSTRAINT `fk_entity_thirdparty_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_entity_thirdparty`
    +--
    +
    +LOCK TABLES `llx_entity_thirdparty` WRITE;
    +/*!40000 ALTER TABLE `llx_entity_thirdparty` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_entity_thirdparty` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_entrepot`
    +--
    +
    +DROP TABLE IF EXISTS `llx_entrepot`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_entrepot` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `description` text COLLATE utf8_unicode_ci,
    +  `lieu` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_departement` int(11) DEFAULT NULL,
    +  `fk_pays` int(11) DEFAULT '0',
    +  `statut` tinyint(4) DEFAULT '1',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_parent` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_entrepot_label` (`ref`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_entrepot`
    +--
    +
    +LOCK TABLES `llx_entrepot` WRITE;
    +/*!40000 ALTER TABLE `llx_entrepot` DISABLE KEYS */;
    +INSERT INTO `llx_entrepot` VALUES (1,'2010-07-09 00:31:22','2010-07-08 22:40:36','WAREHOUSEHOUSTON',1,'Warehouse located at Houston','Warehouse houston','','','Houston',NULL,11,1,1,NULL,NULL,0),(2,'2010-07-09 00:41:03','2010-07-08 22:41:03','WAREHOUSEPARIS',1,'<br />','Warehouse Paris','','75000','Paris',NULL,1,1,1,NULL,NULL,0),(3,'2010-07-11 16:18:59','2016-07-30 13:52:08','Stock personnel Dupont',1,'Cet entrep&ocirc;t repr&eacute;sente le stock personnel de Alain Dupont','','','','',NULL,2,1,1,NULL,NULL,0),(9,'2015-10-03 11:47:41','2015-10-03 09:47:41','Personal stock Marie Curie',1,'This warehouse represents personal stock of Marie Curie','','','','',NULL,1,1,1,NULL,NULL,0),(10,'2015-10-05 09:07:52','2016-07-30 13:52:24','Personal stock Alex Theceo',1,'This warehouse represents personal stock of Alex Theceo','','','','',NULL,3,1,1,NULL,NULL,0),(12,'2015-10-05 21:29:35','2015-10-05 19:29:35','Personal stock Charly Commery',1,'This warehouse represents personal stock of Charly Commery','','','','',NULL,1,1,11,NULL,NULL,0),(13,'2015-10-05 21:33:33','2016-07-30 13:51:38','Personal stock Sam Scientol',1,'This warehouse represents personal stock of Sam Scientol','','','7500','Paris',NULL,1,0,11,NULL,NULL,0),(18,'2016-01-22 17:27:02','2016-01-22 16:27:02','Personal stock Laurent Destailleur',1,'This warehouse represents personal stock of Laurent Destailleur','','','','',NULL,1,1,12,NULL,NULL,0),(19,'2016-07-30 16:50:23','2016-07-30 12:50:23','Personal stock Eldy',1,'This warehouse represents personal stock of Eldy','','','','',NULL,14,1,12,NULL,NULL,0),(20,'2017-02-02 03:55:45','2017-02-01 23:55:45','Personal stock Alex Boston',1,'This warehouse represents personal stock of Alex Boston','','','','',NULL,14,1,12,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_entrepot` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_equipement_factory`
    +--
    +
    +DROP TABLE IF EXISTS `llx_equipement_factory`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_equipement_factory` (
    +  `fk_equipement` int(11) NOT NULL DEFAULT '0',
    +  `fk_factory` int(11) NOT NULL DEFAULT '0',
    +  UNIQUE KEY `uk_factory_equipement` (`fk_equipement`,`fk_factory`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_equipement_factory`
    +--
    +
    +LOCK TABLES `llx_equipement_factory` WRITE;
    +/*!40000 ALTER TABLE `llx_equipement_factory` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_equipement_factory` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_establishment`
    +--
    +
    +DROP TABLE IF EXISTS `llx_establishment`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_establishment` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_state` int(11) DEFAULT '0',
    +  `fk_country` int(11) DEFAULT '0',
    +  `profid1` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `profid2` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `profid3` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) NOT NULL,
    +  `fk_user_mod` int(11) DEFAULT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `status` tinyint(4) DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_establishment`
    +--
    +
    +LOCK TABLES `llx_establishment` WRITE;
    +/*!40000 ALTER TABLE `llx_establishment` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_establishment` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_event_element`
    +--
    +
    +DROP TABLE IF EXISTS `llx_event_element`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_event_element` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_source` int(11) NOT NULL,
    +  `fk_target` int(11) NOT NULL,
    +  `targettype` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_event_element`
    +--
    +
    +LOCK TABLES `llx_event_element` WRITE;
    +/*!40000 ALTER TABLE `llx_event_element` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_event_element` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_events`
    +--
    +
    +DROP TABLE IF EXISTS `llx_events`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_events` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `type` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `dateevent` datetime DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `description` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
    +  `ip` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `user_agent` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_object` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_events_dateevent` (`dateevent`)
    +) ENGINE=InnoDB AUTO_INCREMENT=879 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_events`
    +--
    +
    +LOCK TABLES `llx_events` WRITE;
    +/*!40000 ALTER TABLE `llx_events` DISABLE KEYS */;
    +INSERT INTO `llx_events` VALUES (30,'2011-07-18 18:23:06','USER_LOGOUT',1,'2011-07-18 20:23:06',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(31,'2011-07-18 18:23:12','USER_LOGIN_FAILED',1,'2011-07-18 20:23:12',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(32,'2011-07-18 18:23:17','USER_LOGIN',1,'2011-07-18 20:23:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(33,'2011-07-18 20:10:51','USER_LOGIN_FAILED',1,'2011-07-18 22:10:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(34,'2011-07-18 20:10:55','USER_LOGIN',1,'2011-07-18 22:10:55',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(35,'2011-07-18 21:18:57','USER_LOGIN',1,'2011-07-18 23:18:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(36,'2011-07-20 10:34:10','USER_LOGIN',1,'2011-07-20 12:34:10',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(37,'2011-07-20 12:36:44','USER_LOGIN',1,'2011-07-20 14:36:44',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(38,'2011-07-20 13:20:51','USER_LOGIN_FAILED',1,'2011-07-20 15:20:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(39,'2011-07-20 13:20:54','USER_LOGIN',1,'2011-07-20 15:20:54',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(40,'2011-07-20 15:03:46','USER_LOGIN_FAILED',1,'2011-07-20 17:03:46',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(41,'2011-07-20 15:03:55','USER_LOGIN',1,'2011-07-20 17:03:55',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(42,'2011-07-20 18:05:05','USER_LOGIN_FAILED',1,'2011-07-20 20:05:05',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(43,'2011-07-20 18:05:08','USER_LOGIN',1,'2011-07-20 20:05:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(44,'2011-07-20 21:08:53','USER_LOGIN_FAILED',1,'2011-07-20 23:08:53',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(45,'2011-07-20 21:08:56','USER_LOGIN',1,'2011-07-20 23:08:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(46,'2011-07-21 01:26:12','USER_LOGIN',1,'2011-07-21 03:26:12',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(47,'2011-07-21 22:35:45','USER_LOGIN_FAILED',1,'2011-07-22 00:35:45',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(48,'2011-07-21 22:35:49','USER_LOGIN',1,'2011-07-22 00:35:49',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(49,'2011-07-26 23:09:47','USER_LOGIN_FAILED',1,'2011-07-27 01:09:47',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(50,'2011-07-26 23:09:50','USER_LOGIN',1,'2011-07-27 01:09:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(51,'2011-07-27 17:02:27','USER_LOGIN_FAILED',1,'2011-07-27 19:02:27',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(52,'2011-07-27 17:02:32','USER_LOGIN',1,'2011-07-27 19:02:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(53,'2011-07-27 23:33:37','USER_LOGIN_FAILED',1,'2011-07-28 01:33:37',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(54,'2011-07-27 23:33:41','USER_LOGIN',1,'2011-07-28 01:33:41',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(55,'2011-07-28 18:20:36','USER_LOGIN_FAILED',1,'2011-07-28 20:20:36',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(56,'2011-07-28 18:20:38','USER_LOGIN',1,'2011-07-28 20:20:38',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(57,'2011-07-28 20:13:30','USER_LOGIN_FAILED',1,'2011-07-28 22:13:30',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(58,'2011-07-28 20:13:34','USER_LOGIN',1,'2011-07-28 22:13:34',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(59,'2011-07-28 20:22:51','USER_LOGIN',1,'2011-07-28 22:22:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(60,'2011-07-28 23:05:06','USER_LOGIN',1,'2011-07-29 01:05:06',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(61,'2011-07-29 20:15:50','USER_LOGIN_FAILED',1,'2011-07-29 22:15:50',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(62,'2011-07-29 20:15:53','USER_LOGIN',1,'2011-07-29 22:15:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(68,'2011-07-29 20:51:01','USER_LOGOUT',1,'2011-07-29 22:51:01',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(69,'2011-07-29 20:51:05','USER_LOGIN',1,'2011-07-29 22:51:05',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(70,'2011-07-30 08:46:20','USER_LOGIN_FAILED',1,'2011-07-30 10:46:20',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(71,'2011-07-30 08:46:38','USER_LOGIN_FAILED',1,'2011-07-30 10:46:38',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(72,'2011-07-30 08:46:42','USER_LOGIN',1,'2011-07-30 10:46:42',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(73,'2011-07-30 10:05:12','USER_LOGIN_FAILED',1,'2011-07-30 12:05:12',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(74,'2011-07-30 10:05:15','USER_LOGIN',1,'2011-07-30 12:05:15',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(75,'2011-07-30 12:15:46','USER_LOGIN',1,'2011-07-30 14:15:46',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(76,'2011-07-31 22:19:30','USER_LOGIN',1,'2011-08-01 00:19:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(77,'2011-07-31 23:32:52','USER_LOGIN',1,'2011-08-01 01:32:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(78,'2011-08-01 01:24:50','USER_LOGIN_FAILED',1,'2011-08-01 03:24:50',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(79,'2011-08-01 01:24:54','USER_LOGIN',1,'2011-08-01 03:24:54',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(80,'2011-08-01 19:31:36','USER_LOGIN_FAILED',1,'2011-08-01 21:31:35',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(81,'2011-08-01 19:31:39','USER_LOGIN',1,'2011-08-01 21:31:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(82,'2011-08-01 20:01:36','USER_LOGIN',1,'2011-08-01 22:01:36',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(83,'2011-08-01 20:52:54','USER_LOGIN_FAILED',1,'2011-08-01 22:52:54',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(84,'2011-08-01 20:52:58','USER_LOGIN',1,'2011-08-01 22:52:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(85,'2011-08-01 21:17:28','USER_LOGIN_FAILED',1,'2011-08-01 23:17:28',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(86,'2011-08-01 21:17:31','USER_LOGIN',1,'2011-08-01 23:17:31',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(87,'2011-08-04 11:55:17','USER_LOGIN',1,'2011-08-04 13:55:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(88,'2011-08-04 20:19:03','USER_LOGIN_FAILED',1,'2011-08-04 22:19:03',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(89,'2011-08-04 20:19:07','USER_LOGIN',1,'2011-08-04 22:19:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(90,'2011-08-05 17:51:42','USER_LOGIN_FAILED',1,'2011-08-05 19:51:42',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(91,'2011-08-05 17:51:47','USER_LOGIN',1,'2011-08-05 19:51:47',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(92,'2011-08-05 17:56:03','USER_LOGIN',1,'2011-08-05 19:56:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(93,'2011-08-05 17:59:10','USER_LOGIN',1,'2011-08-05 19:59:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30',NULL),(94,'2011-08-05 18:01:58','USER_LOGIN',1,'2011-08-05 20:01:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30',NULL),(95,'2011-08-05 19:59:56','USER_LOGIN',1,'2011-08-05 21:59:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(96,'2011-08-06 18:33:22','USER_LOGIN',1,'2011-08-06 20:33:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(97,'2011-08-07 00:56:59','USER_LOGIN',1,'2011-08-07 02:56:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(98,'2011-08-07 22:49:14','USER_LOGIN',1,'2011-08-08 00:49:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(99,'2011-08-07 23:05:18','USER_LOGOUT',1,'2011-08-08 01:05:18',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(105,'2011-08-08 00:41:09','USER_LOGIN',1,'2011-08-08 02:41:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(106,'2011-08-08 11:58:55','USER_LOGIN',1,'2011-08-08 13:58:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(107,'2011-08-08 14:35:48','USER_LOGIN',1,'2011-08-08 16:35:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(108,'2011-08-08 14:36:31','USER_LOGOUT',1,'2011-08-08 16:36:31',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(109,'2011-08-08 14:38:28','USER_LOGIN',1,'2011-08-08 16:38:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(110,'2011-08-08 14:39:02','USER_LOGOUT',1,'2011-08-08 16:39:02',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(111,'2011-08-08 14:39:10','USER_LOGIN',1,'2011-08-08 16:39:10',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(112,'2011-08-08 14:39:28','USER_LOGOUT',1,'2011-08-08 16:39:28',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(113,'2011-08-08 14:39:37','USER_LOGIN',1,'2011-08-08 16:39:37',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(114,'2011-08-08 14:50:02','USER_LOGOUT',1,'2011-08-08 16:50:02',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(115,'2011-08-08 14:51:45','USER_LOGIN_FAILED',1,'2011-08-08 16:51:45',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(116,'2011-08-08 14:51:52','USER_LOGIN',1,'2011-08-08 16:51:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(117,'2011-08-08 15:09:54','USER_LOGOUT',1,'2011-08-08 17:09:54',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(118,'2011-08-08 15:10:19','USER_LOGIN_FAILED',1,'2011-08-08 17:10:19',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(119,'2011-08-08 15:10:28','USER_LOGIN',1,'2011-08-08 17:10:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(121,'2011-08-08 15:14:58','USER_LOGOUT',1,'2011-08-08 17:14:58',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(122,'2011-08-08 15:15:00','USER_LOGIN_FAILED',1,'2011-08-08 17:15:00',NULL,'Identifiants login ou mot de passe incorrects - login=','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(123,'2011-08-08 15:17:57','USER_LOGIN',1,'2011-08-08 17:17:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(124,'2011-08-08 15:35:56','USER_LOGOUT',1,'2011-08-08 17:35:56',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(125,'2011-08-08 15:36:05','USER_LOGIN',1,'2011-08-08 17:36:05',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(126,'2011-08-08 17:32:42','USER_LOGIN',1,'2011-08-08 19:32:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0',NULL),(127,'2012-12-08 13:49:37','USER_LOGOUT',1,'2012-12-08 14:49:37',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(128,'2012-12-08 13:49:42','USER_LOGIN',1,'2012-12-08 14:49:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(129,'2012-12-08 13:50:12','USER_LOGOUT',1,'2012-12-08 14:50:12',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(130,'2012-12-08 13:50:14','USER_LOGIN',1,'2012-12-08 14:50:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(131,'2012-12-08 13:50:17','USER_LOGOUT',1,'2012-12-08 14:50:17',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(132,'2012-12-08 13:52:47','USER_LOGIN',1,'2012-12-08 14:52:47',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(133,'2012-12-08 13:53:08','USER_MODIFY',1,'2012-12-08 14:53:08',1,'User admin modified','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(134,'2012-12-08 14:08:45','USER_LOGOUT',1,'2012-12-08 15:08:45',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(135,'2012-12-08 14:09:09','USER_LOGIN',1,'2012-12-08 15:09:09',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(136,'2012-12-08 14:11:43','USER_LOGOUT',1,'2012-12-08 15:11:43',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(137,'2012-12-08 14:11:45','USER_LOGIN',1,'2012-12-08 15:11:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(138,'2012-12-08 14:22:53','USER_LOGOUT',1,'2012-12-08 15:22:53',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(139,'2012-12-08 14:22:54','USER_LOGIN',1,'2012-12-08 15:22:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(140,'2012-12-08 14:23:10','USER_LOGOUT',1,'2012-12-08 15:23:10',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(141,'2012-12-08 14:23:11','USER_LOGIN',1,'2012-12-08 15:23:11',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(142,'2012-12-08 14:23:49','USER_LOGOUT',1,'2012-12-08 15:23:49',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(143,'2012-12-08 14:23:50','USER_LOGIN',1,'2012-12-08 15:23:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(144,'2012-12-08 14:28:08','USER_LOGOUT',1,'2012-12-08 15:28:08',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(145,'2012-12-08 14:35:15','USER_LOGIN',1,'2012-12-08 15:35:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(146,'2012-12-08 14:35:18','USER_LOGOUT',1,'2012-12-08 15:35:18',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(147,'2012-12-08 14:36:07','USER_LOGIN',1,'2012-12-08 15:36:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(148,'2012-12-08 14:36:09','USER_LOGOUT',1,'2012-12-08 15:36:09',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(149,'2012-12-08 14:36:41','USER_LOGIN',1,'2012-12-08 15:36:41',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(150,'2012-12-08 15:59:13','USER_LOGIN',1,'2012-12-08 16:59:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(151,'2012-12-09 11:49:52','USER_LOGIN',1,'2012-12-09 12:49:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(152,'2012-12-09 13:46:31','USER_LOGIN',1,'2012-12-09 14:46:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(153,'2012-12-09 19:03:14','USER_LOGIN',1,'2012-12-09 20:03:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(154,'2012-12-10 00:16:31','USER_LOGIN',1,'2012-12-10 01:16:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(170,'2012-12-11 22:03:31','USER_LOGIN',1,'2012-12-11 23:03:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(171,'2012-12-12 00:32:39','USER_LOGIN',1,'2012-12-12 01:32:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(172,'2012-12-12 10:49:59','USER_LOGIN',1,'2012-12-12 11:49:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(175,'2012-12-12 10:57:40','USER_MODIFY',1,'2012-12-12 11:57:40',1,'Modification utilisateur admin','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(176,'2012-12-12 13:29:15','USER_LOGIN',1,'2012-12-12 14:29:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(177,'2012-12-12 13:30:15','USER_LOGIN',1,'2012-12-12 14:30:15',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(178,'2012-12-12 13:40:08','USER_LOGOUT',1,'2012-12-12 14:40:08',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(179,'2012-12-12 13:40:10','USER_LOGIN',1,'2012-12-12 14:40:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(180,'2012-12-12 13:40:26','USER_MODIFY',1,'2012-12-12 14:40:26',1,'Modification utilisateur admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(181,'2012-12-12 13:40:34','USER_LOGOUT',1,'2012-12-12 14:40:34',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(182,'2012-12-12 13:42:23','USER_LOGIN',1,'2012-12-12 14:42:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(183,'2012-12-12 13:43:02','USER_NEW_PASSWORD',1,'2012-12-12 14:43:02',NULL,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(184,'2012-12-12 13:43:25','USER_LOGOUT',1,'2012-12-12 14:43:25',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(185,'2012-12-12 13:43:27','USER_LOGIN_FAILED',1,'2012-12-12 14:43:27',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(186,'2012-12-12 13:43:30','USER_LOGIN',1,'2012-12-12 14:43:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(187,'2012-12-12 14:52:11','USER_LOGIN',1,'2012-12-12 15:52:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11',NULL),(188,'2012-12-12 17:53:00','USER_LOGIN_FAILED',1,'2012-12-12 18:53:00',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(189,'2012-12-12 17:53:07','USER_LOGIN_FAILED',1,'2012-12-12 18:53:07',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(190,'2012-12-12 17:53:51','USER_NEW_PASSWORD',1,'2012-12-12 18:53:51',NULL,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(191,'2012-12-12 17:54:00','USER_LOGIN',1,'2012-12-12 18:54:00',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(192,'2012-12-12 17:54:10','USER_NEW_PASSWORD',1,'2012-12-12 18:54:10',1,'Changement mot de passe de admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(193,'2012-12-12 17:54:10','USER_MODIFY',1,'2012-12-12 18:54:10',1,'Modification utilisateur admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(194,'2012-12-12 18:57:09','USER_LOGIN',1,'2012-12-12 19:57:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(195,'2012-12-12 23:04:08','USER_LOGIN',1,'2012-12-13 00:04:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(196,'2012-12-17 20:03:14','USER_LOGIN',1,'2012-12-17 21:03:14',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(197,'2012-12-17 21:18:45','USER_LOGIN',1,'2012-12-17 22:18:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(198,'2012-12-17 22:30:08','USER_LOGIN',1,'2012-12-17 23:30:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(199,'2012-12-18 23:32:03','USER_LOGIN',1,'2012-12-19 00:32:03',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(200,'2012-12-19 09:38:03','USER_LOGIN',1,'2012-12-19 10:38:03',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(201,'2012-12-19 11:23:35','USER_LOGIN',1,'2012-12-19 12:23:35',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(202,'2012-12-19 12:46:22','USER_LOGIN',1,'2012-12-19 13:46:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(214,'2012-12-19 19:11:31','USER_LOGIN',1,'2012-12-19 20:11:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(215,'2012-12-21 16:36:57','USER_LOGIN',1,'2012-12-21 17:36:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(216,'2012-12-21 16:38:43','USER_NEW_PASSWORD',1,'2012-12-21 17:38:43',1,'Changement mot de passe de adupont','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(217,'2012-12-21 16:38:43','USER_MODIFY',1,'2012-12-21 17:38:43',1,'Modification utilisateur adupont','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(218,'2012-12-21 16:38:51','USER_LOGOUT',1,'2012-12-21 17:38:51',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(219,'2012-12-21 16:38:55','USER_LOGIN',1,'2012-12-21 17:38:55',3,'(UserLogged,adupont)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(220,'2012-12-21 16:48:18','USER_LOGOUT',1,'2012-12-21 17:48:18',3,'(UserLogoff,adupont)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(221,'2012-12-21 16:48:20','USER_LOGIN',1,'2012-12-21 17:48:20',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(222,'2012-12-26 18:28:18','USER_LOGIN',1,'2012-12-26 19:28:18',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(223,'2012-12-26 20:00:24','USER_LOGIN',1,'2012-12-26 21:00:24',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(224,'2012-12-27 01:10:27','USER_LOGIN',1,'2012-12-27 02:10:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(225,'2012-12-28 19:12:08','USER_LOGIN',1,'2012-12-28 20:12:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(226,'2012-12-28 20:16:58','USER_LOGIN',1,'2012-12-28 21:16:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(227,'2012-12-29 14:35:46','USER_LOGIN',1,'2012-12-29 15:35:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(228,'2012-12-29 14:37:59','USER_LOGOUT',1,'2012-12-29 15:37:59',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(229,'2012-12-29 14:38:00','USER_LOGIN',1,'2012-12-29 15:38:00',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(230,'2012-12-29 17:16:48','USER_LOGIN',1,'2012-12-29 18:16:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(231,'2012-12-31 12:02:59','USER_LOGIN',1,'2012-12-31 13:02:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(232,'2013-01-02 20:32:51','USER_LOGIN',1,'2013-01-02 21:32:51',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:17.0) Gecko/20100101 Firefox/17.0',NULL),(233,'2013-01-02 20:58:59','USER_LOGIN',1,'2013-01-02 21:58:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(234,'2013-01-03 09:25:07','USER_LOGIN',1,'2013-01-03 10:25:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(235,'2013-01-03 19:39:31','USER_LOGIN',1,'2013-01-03 20:39:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(236,'2013-01-04 22:40:19','USER_LOGIN',1,'2013-01-04 23:40:19',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(237,'2013-01-05 12:59:59','USER_LOGIN',1,'2013-01-05 13:59:59',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(238,'2013-01-05 15:28:52','USER_LOGIN',1,'2013-01-05 16:28:52',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(239,'2013-01-05 17:02:08','USER_LOGIN',1,'2013-01-05 18:02:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(240,'2013-01-06 12:13:33','USER_LOGIN',1,'2013-01-06 13:13:33',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(241,'2013-01-07 01:21:15','USER_LOGIN',1,'2013-01-07 02:21:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(242,'2013-01-07 01:46:31','USER_LOGOUT',1,'2013-01-07 02:46:31',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(243,'2013-01-07 19:54:50','USER_LOGIN',1,'2013-01-07 20:54:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(244,'2013-01-08 21:55:01','USER_LOGIN',1,'2013-01-08 22:55:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(245,'2013-01-09 11:13:28','USER_LOGIN',1,'2013-01-09 12:13:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(246,'2013-01-10 18:30:46','USER_LOGIN',1,'2013-01-10 19:30:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(247,'2013-01-11 18:03:26','USER_LOGIN',1,'2013-01-11 19:03:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(248,'2013-01-12 11:15:04','USER_LOGIN',1,'2013-01-12 12:15:04',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(249,'2013-01-12 14:42:44','USER_LOGIN',1,'2013-01-12 15:42:44',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(250,'2013-01-13 12:07:17','USER_LOGIN',1,'2013-01-13 13:07:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(251,'2013-01-13 17:37:58','USER_LOGIN',1,'2013-01-13 18:37:58',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(252,'2013-01-13 19:24:21','USER_LOGIN',1,'2013-01-13 20:24:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(253,'2013-01-13 19:29:19','USER_LOGOUT',1,'2013-01-13 20:29:19',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(254,'2013-01-13 21:39:39','USER_LOGIN',1,'2013-01-13 22:39:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(255,'2013-01-14 00:52:21','USER_LOGIN',1,'2013-01-14 01:52:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11',NULL),(256,'2013-01-16 11:34:31','USER_LOGIN',1,'2013-01-16 12:34:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(257,'2013-01-16 15:36:21','USER_LOGIN',1,'2013-01-16 16:36:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(258,'2013-01-16 19:17:36','USER_LOGIN',1,'2013-01-16 20:17:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(259,'2013-01-16 19:48:08','GROUP_CREATE',1,'2013-01-16 20:48:08',1,'Création groupe ggg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(260,'2013-01-16 21:48:53','USER_LOGIN',1,'2013-01-16 22:48:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(261,'2013-01-17 19:55:53','USER_LOGIN',1,'2013-01-17 20:55:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(262,'2013-01-18 09:48:01','USER_LOGIN',1,'2013-01-18 10:48:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(263,'2013-01-18 13:22:36','USER_LOGIN',1,'2013-01-18 14:22:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(264,'2013-01-18 16:10:23','USER_LOGIN',1,'2013-01-18 17:10:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(265,'2013-01-18 17:41:40','USER_LOGIN',1,'2013-01-18 18:41:40',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(266,'2013-01-19 14:33:48','USER_LOGIN',1,'2013-01-19 15:33:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(267,'2013-01-19 16:47:43','USER_LOGIN',1,'2013-01-19 17:47:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(268,'2013-01-19 16:59:43','USER_LOGIN',1,'2013-01-19 17:59:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(269,'2013-01-19 17:00:22','USER_LOGIN',1,'2013-01-19 18:00:22',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(270,'2013-01-19 17:04:16','USER_LOGOUT',1,'2013-01-19 18:04:16',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(271,'2013-01-19 17:04:18','USER_LOGIN',1,'2013-01-19 18:04:18',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(272,'2013-01-20 00:34:19','USER_LOGIN',1,'2013-01-20 01:34:19',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(273,'2013-01-21 11:54:17','USER_LOGIN',1,'2013-01-21 12:54:17',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(274,'2013-01-21 13:48:15','USER_LOGIN',1,'2013-01-21 14:48:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(275,'2013-01-21 14:30:22','USER_LOGIN',1,'2013-01-21 15:30:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(276,'2013-01-21 15:10:46','USER_LOGIN',1,'2013-01-21 16:10:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(277,'2013-01-21 17:27:43','USER_LOGIN',1,'2013-01-21 18:27:43',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(278,'2013-01-21 21:48:15','USER_LOGIN',1,'2013-01-21 22:48:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(279,'2013-01-21 21:50:42','USER_LOGIN',1,'2013-01-21 22:50:42',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17',NULL),(280,'2013-01-23 09:28:26','USER_LOGIN',1,'2013-01-23 10:28:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(281,'2013-01-23 13:21:57','USER_LOGIN',1,'2013-01-23 14:21:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(282,'2013-01-23 16:52:00','USER_LOGOUT',1,'2013-01-23 17:52:00',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(283,'2013-01-23 16:52:05','USER_LOGIN_FAILED',1,'2013-01-23 17:52:05',NULL,'Bad value for login or password - login=bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(284,'2013-01-23 16:52:09','USER_LOGIN',1,'2013-01-23 17:52:09',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(285,'2013-01-23 16:52:27','USER_CREATE',1,'2013-01-23 17:52:27',1,'Création utilisateur aaa','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(286,'2013-01-23 16:52:27','USER_NEW_PASSWORD',1,'2013-01-23 17:52:27',1,'Changement mot de passe de aaa','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(287,'2013-01-23 16:52:37','USER_CREATE',1,'2013-01-23 17:52:37',1,'Création utilisateur bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(288,'2013-01-23 16:52:37','USER_NEW_PASSWORD',1,'2013-01-23 17:52:37',1,'Changement mot de passe de bbb','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(289,'2013-01-23 16:53:15','USER_LOGOUT',1,'2013-01-23 17:53:15',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(290,'2013-01-23 16:53:20','USER_LOGIN',1,'2013-01-23 17:53:20',4,'(UserLogged,aaa)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(291,'2013-01-23 19:16:58','USER_LOGIN',1,'2013-01-23 20:16:58',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(292,'2013-01-26 10:54:07','USER_LOGIN',1,'2013-01-26 11:54:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(293,'2013-01-29 10:15:36','USER_LOGIN',1,'2013-01-29 11:15:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(294,'2013-01-30 17:42:50','USER_LOGIN',1,'2013-01-30 18:42:50',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17',NULL),(295,'2013-02-01 08:49:55','USER_LOGIN',1,'2013-02-01 09:49:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(296,'2013-02-01 08:51:57','USER_LOGOUT',1,'2013-02-01 09:51:57',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(297,'2013-02-01 08:52:39','USER_LOGIN',1,'2013-02-01 09:52:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(298,'2013-02-01 21:03:01','USER_LOGIN',1,'2013-02-01 22:03:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(299,'2013-02-10 19:48:39','USER_LOGIN',1,'2013-02-10 20:48:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(300,'2013-02-10 20:46:48','USER_LOGIN',1,'2013-02-10 21:46:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(301,'2013-02-10 21:39:23','USER_LOGIN',1,'2013-02-10 22:39:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(302,'2013-02-11 19:00:13','USER_LOGIN',1,'2013-02-11 20:00:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(303,'2013-02-11 19:43:44','USER_LOGIN_FAILED',1,'2013-02-11 20:43:44',NULL,'Unknown column \'u.fk_user\' in \'field list\'','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(304,'2013-02-11 19:44:01','USER_LOGIN',1,'2013-02-11 20:44:01',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(305,'2013-02-12 00:27:35','USER_LOGIN',1,'2013-02-12 01:27:35',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(306,'2013-02-12 00:27:38','USER_LOGOUT',1,'2013-02-12 01:27:38',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(307,'2013-02-12 00:28:07','USER_LOGIN',1,'2013-02-12 01:28:07',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(308,'2013-02-12 00:28:09','USER_LOGOUT',1,'2013-02-12 01:28:09',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(309,'2013-02-12 00:28:26','USER_LOGIN',1,'2013-02-12 01:28:26',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(310,'2013-02-12 00:28:30','USER_LOGOUT',1,'2013-02-12 01:28:30',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(311,'2013-02-12 12:42:15','USER_LOGIN',1,'2013-02-12 13:42:15',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',NULL),(312,'2013-02-12 13:46:16','USER_LOGIN',1,'2013-02-12 14:46:16',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(313,'2013-02-12 14:54:28','USER_LOGIN',1,'2013-02-12 15:54:28',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(314,'2013-02-12 16:04:46','USER_LOGIN',1,'2013-02-12 17:04:46',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(315,'2013-02-13 14:02:43','USER_LOGIN',1,'2013-02-13 15:02:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(316,'2013-02-13 14:48:30','USER_LOGIN',1,'2013-02-13 15:48:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(317,'2013-02-13 17:44:53','USER_LOGIN',1,'2013-02-13 18:44:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(318,'2013-02-15 08:44:36','USER_LOGIN',1,'2013-02-15 09:44:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(319,'2013-02-15 08:53:20','USER_LOGIN',1,'2013-02-15 09:53:20',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(320,'2013-02-16 19:10:28','USER_LOGIN',1,'2013-02-16 20:10:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(321,'2013-02-16 19:22:40','USER_CREATE',1,'2013-02-16 20:22:40',1,'Création utilisateur aaab','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(322,'2013-02-16 19:22:40','USER_NEW_PASSWORD',1,'2013-02-16 20:22:40',1,'Changement mot de passe de aaab','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(323,'2013-02-16 19:48:15','USER_CREATE',1,'2013-02-16 20:48:15',1,'Création utilisateur zzz','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(324,'2013-02-16 19:48:15','USER_NEW_PASSWORD',1,'2013-02-16 20:48:15',1,'Changement mot de passe de zzz','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(325,'2013-02-16 19:50:08','USER_CREATE',1,'2013-02-16 20:50:08',1,'Création utilisateur zzzg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(326,'2013-02-16 19:50:08','USER_NEW_PASSWORD',1,'2013-02-16 20:50:08',1,'Changement mot de passe de zzzg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(327,'2013-02-16 21:20:03','USER_LOGIN',1,'2013-02-16 22:20:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(328,'2013-02-17 14:30:51','USER_LOGIN',1,'2013-02-17 15:30:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(329,'2013-02-17 17:21:22','USER_LOGIN',1,'2013-02-17 18:21:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(330,'2013-02-17 17:48:43','USER_MODIFY',1,'2013-02-17 18:48:43',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(331,'2013-02-17 17:48:47','USER_MODIFY',1,'2013-02-17 18:48:47',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(332,'2013-02-17 17:48:51','USER_MODIFY',1,'2013-02-17 18:48:51',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(333,'2013-02-17 17:48:56','USER_MODIFY',1,'2013-02-17 18:48:56',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(334,'2013-02-18 22:00:01','USER_LOGIN',1,'2013-02-18 23:00:01',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(335,'2013-02-19 08:19:52','USER_LOGIN',1,'2013-02-19 09:19:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(336,'2013-02-19 22:00:52','USER_LOGIN',1,'2013-02-19 23:00:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(337,'2013-02-20 09:34:52','USER_LOGIN',1,'2013-02-20 10:34:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(338,'2013-02-20 13:12:28','USER_LOGIN',1,'2013-02-20 14:12:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(339,'2013-02-20 17:19:44','USER_LOGIN',1,'2013-02-20 18:19:44',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(340,'2013-02-20 19:07:21','USER_MODIFY',1,'2013-02-20 20:07:21',1,'Modification utilisateur adupont','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(341,'2013-02-20 19:47:17','USER_LOGIN',1,'2013-02-20 20:47:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(342,'2013-02-20 19:48:01','USER_MODIFY',1,'2013-02-20 20:48:01',1,'Modification utilisateur aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(343,'2013-02-21 08:27:07','USER_LOGIN',1,'2013-02-21 09:27:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(344,'2013-02-23 13:34:13','USER_LOGIN',1,'2013-02-23 14:34:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.69 Safari/537.17',NULL),(345,'2013-02-24 01:06:41','USER_LOGIN_FAILED',1,'2013-02-24 02:06:41',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(346,'2013-02-24 01:06:45','USER_LOGIN_FAILED',1,'2013-02-24 02:06:45',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(347,'2013-02-24 01:06:55','USER_LOGIN_FAILED',1,'2013-02-24 02:06:55',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(348,'2013-02-24 01:07:03','USER_LOGIN_FAILED',1,'2013-02-24 02:07:03',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(349,'2013-02-24 01:07:21','USER_LOGIN_FAILED',1,'2013-02-24 02:07:21',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(350,'2013-02-24 01:08:12','USER_LOGIN_FAILED',1,'2013-02-24 02:08:12',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(351,'2013-02-24 01:08:42','USER_LOGIN_FAILED',1,'2013-02-24 02:08:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(352,'2013-02-24 01:08:50','USER_LOGIN_FAILED',1,'2013-02-24 02:08:50',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(353,'2013-02-24 01:09:08','USER_LOGIN_FAILED',1,'2013-02-24 02:09:08',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(354,'2013-02-24 01:09:42','USER_LOGIN_FAILED',1,'2013-02-24 02:09:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(355,'2013-02-24 01:09:50','USER_LOGIN_FAILED',1,'2013-02-24 02:09:50',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(356,'2013-02-24 01:10:05','USER_LOGIN_FAILED',1,'2013-02-24 02:10:05',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(357,'2013-02-24 01:10:22','USER_LOGIN_FAILED',1,'2013-02-24 02:10:22',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(358,'2013-02-24 01:10:30','USER_LOGIN_FAILED',1,'2013-02-24 02:10:30',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(359,'2013-02-24 01:10:56','USER_LOGIN_FAILED',1,'2013-02-24 02:10:56',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(360,'2013-02-24 01:11:26','USER_LOGIN_FAILED',1,'2013-02-24 02:11:26',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(361,'2013-02-24 01:12:06','USER_LOGIN_FAILED',1,'2013-02-24 02:12:06',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(362,'2013-02-24 01:21:14','USER_LOGIN_FAILED',1,'2013-02-24 02:21:14',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(363,'2013-02-24 01:21:25','USER_LOGIN_FAILED',1,'2013-02-24 02:21:25',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(364,'2013-02-24 01:21:54','USER_LOGIN_FAILED',1,'2013-02-24 02:21:54',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(365,'2013-02-24 01:22:14','USER_LOGIN_FAILED',1,'2013-02-24 02:22:14',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(366,'2013-02-24 01:22:37','USER_LOGIN_FAILED',1,'2013-02-24 02:22:37',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(367,'2013-02-24 01:23:01','USER_LOGIN_FAILED',1,'2013-02-24 02:23:01',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(368,'2013-02-24 01:23:39','USER_LOGIN_FAILED',1,'2013-02-24 02:23:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(369,'2013-02-24 01:24:04','USER_LOGIN_FAILED',1,'2013-02-24 02:24:04',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(370,'2013-02-24 01:24:39','USER_LOGIN_FAILED',1,'2013-02-24 02:24:39',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(371,'2013-02-24 01:25:01','USER_LOGIN_FAILED',1,'2013-02-24 02:25:01',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(372,'2013-02-24 01:25:12','USER_LOGIN_FAILED',1,'2013-02-24 02:25:12',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(373,'2013-02-24 01:27:30','USER_LOGIN_FAILED',1,'2013-02-24 02:27:30',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(374,'2013-02-24 01:28:00','USER_LOGIN_FAILED',1,'2013-02-24 02:28:00',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(375,'2013-02-24 01:28:35','USER_LOGIN_FAILED',1,'2013-02-24 02:28:35',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(376,'2013-02-24 01:29:03','USER_LOGIN_FAILED',1,'2013-02-24 02:29:03',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(377,'2013-02-24 01:29:55','USER_LOGIN_FAILED',1,'2013-02-24 02:29:55',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(378,'2013-02-24 01:32:40','USER_LOGIN_FAILED',1,'2013-02-24 02:32:40',NULL,'Bad value for login or password - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(379,'2013-02-24 01:39:33','USER_LOGIN_FAILED',1,'2013-02-24 02:39:33',NULL,'Identifiants login ou mot de passe incorrects - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(380,'2013-02-24 01:39:38','USER_LOGIN_FAILED',1,'2013-02-24 02:39:38',NULL,'Identifiants login ou mot de passe incorrects - login=aa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(381,'2013-02-24 01:39:47','USER_LOGIN_FAILED',1,'2013-02-24 02:39:47',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(382,'2013-02-24 01:40:54','USER_LOGIN_FAILED',1,'2013-02-24 02:40:54',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(383,'2013-02-24 01:47:57','USER_LOGIN_FAILED',1,'2013-02-24 02:47:57',NULL,'Identifiants login ou mot de passe incorrects - login=lmkm','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(384,'2013-02-24 01:48:05','USER_LOGIN_FAILED',1,'2013-02-24 02:48:05',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(385,'2013-02-24 01:48:07','USER_LOGIN_FAILED',1,'2013-02-24 02:48:07',NULL,'Unknown column \'u.lastname\' in \'field list\'','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(386,'2013-02-24 01:48:35','USER_LOGIN',1,'2013-02-24 02:48:35',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(387,'2013-02-24 01:56:32','USER_LOGIN',1,'2013-02-24 02:56:32',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL),(388,'2013-02-24 02:05:55','USER_LOGOUT',1,'2013-02-24 03:05:55',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(389,'2013-02-24 02:39:52','USER_LOGIN',1,'2013-02-24 03:39:52',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(390,'2013-02-24 02:51:10','USER_LOGOUT',1,'2013-02-24 03:51:10',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(391,'2013-02-24 12:46:41','USER_LOGIN',1,'2013-02-24 13:46:41',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(392,'2013-02-24 12:46:52','USER_LOGOUT',1,'2013-02-24 13:46:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(393,'2013-02-24 12:46:56','USER_LOGIN',1,'2013-02-24 13:46:56',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(394,'2013-02-24 12:47:56','USER_LOGOUT',1,'2013-02-24 13:47:56',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(395,'2013-02-24 12:48:00','USER_LOGIN',1,'2013-02-24 13:48:00',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(396,'2013-02-24 12:48:11','USER_LOGOUT',1,'2013-02-24 13:48:11',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(397,'2013-02-24 12:48:32','USER_LOGIN',1,'2013-02-24 13:48:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(398,'2013-02-24 12:52:22','USER_LOGOUT',1,'2013-02-24 13:52:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(399,'2013-02-24 12:52:27','USER_LOGIN',1,'2013-02-24 13:52:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(400,'2013-02-24 12:52:54','USER_LOGOUT',1,'2013-02-24 13:52:54',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(401,'2013-02-24 12:52:59','USER_LOGIN',1,'2013-02-24 13:52:59',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(402,'2013-02-24 12:55:39','USER_LOGOUT',1,'2013-02-24 13:55:39',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(403,'2013-02-24 12:55:59','USER_LOGIN',1,'2013-02-24 13:55:59',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(404,'2013-02-24 12:56:07','USER_LOGOUT',1,'2013-02-24 13:56:07',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(405,'2013-02-24 12:56:23','USER_LOGIN',1,'2013-02-24 13:56:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(406,'2013-02-24 12:56:46','USER_LOGOUT',1,'2013-02-24 13:56:46',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(407,'2013-02-24 12:58:30','USER_LOGIN',1,'2013-02-24 13:58:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(408,'2013-02-24 12:58:33','USER_LOGOUT',1,'2013-02-24 13:58:33',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(409,'2013-02-24 12:58:51','USER_LOGIN',1,'2013-02-24 13:58:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(410,'2013-02-24 12:58:58','USER_LOGOUT',1,'2013-02-24 13:58:58',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(411,'2013-02-24 13:18:53','USER_LOGIN',1,'2013-02-24 14:18:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(412,'2013-02-24 13:19:52','USER_LOGOUT',1,'2013-02-24 14:19:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(413,'2013-02-24 15:39:31','USER_LOGIN_FAILED',1,'2013-02-24 16:39:31',NULL,'ErrorBadValueForCode - login=admin','127.0.0.1',NULL,NULL),(414,'2013-02-24 15:42:07','USER_LOGIN',1,'2013-02-24 16:42:07',1,'(UserLogged,admin)','127.0.0.1',NULL,NULL),(415,'2013-02-24 15:42:52','USER_LOGOUT',1,'2013-02-24 16:42:52',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL),(416,'2013-02-24 16:04:21','USER_LOGIN',1,'2013-02-24 17:04:21',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL),(417,'2013-02-24 16:11:28','USER_LOGIN_FAILED',1,'2013-02-24 17:11:28',NULL,'ErrorBadValueForCode - login=admin','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL),(418,'2013-02-24 16:11:37','USER_LOGIN',1,'2013-02-24 17:11:37',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL),(419,'2013-02-24 16:36:52','USER_LOGOUT',1,'2013-02-24 17:36:52',1,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',NULL),(420,'2013-02-24 16:40:37','USER_LOGIN',1,'2013-02-24 17:40:37',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(421,'2013-02-24 16:57:16','USER_LOGIN',1,'2013-02-24 17:57:16',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL),(422,'2013-02-24 17:01:30','USER_LOGOUT',1,'2013-02-24 18:01:30',1,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL),(423,'2013-02-24 17:02:33','USER_LOGIN',1,'2013-02-24 18:02:33',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(424,'2013-02-24 17:14:22','USER_LOGOUT',1,'2013-02-24 18:14:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(425,'2013-02-24 17:15:07','USER_LOGIN_FAILED',1,'2013-02-24 18:15:07',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(426,'2013-02-24 17:15:20','USER_LOGIN',1,'2013-02-24 18:15:20',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(427,'2013-02-24 17:20:14','USER_LOGIN',1,'2013-02-24 18:20:14',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(428,'2013-02-24 17:20:51','USER_LOGIN',1,'2013-02-24 18:20:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(429,'2013-02-24 17:20:54','USER_LOGOUT',1,'2013-02-24 18:20:54',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(430,'2013-02-24 17:21:19','USER_LOGIN',1,'2013-02-24 18:21:19',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(431,'2013-02-24 17:32:35','USER_LOGIN',1,'2013-02-24 18:32:35',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 - 2131034114',NULL),(432,'2013-02-24 18:28:48','USER_LOGIN',1,'2013-02-24 19:28:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(433,'2013-02-24 18:29:27','USER_LOGOUT',1,'2013-02-24 19:29:27',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL),(434,'2013-02-24 18:29:32','USER_LOGIN',1,'2013-02-24 19:29:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7',NULL),(435,'2013-02-24 20:13:13','USER_LOGOUT',1,'2013-02-24 21:13:13',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(436,'2013-02-24 20:13:17','USER_LOGIN',1,'2013-02-24 21:13:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(437,'2013-02-25 08:57:16','USER_LOGIN',1,'2013-02-25 09:57:16',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(438,'2013-02-25 08:57:59','USER_LOGOUT',1,'2013-02-25 09:57:59',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(439,'2013-02-25 09:15:02','USER_LOGIN',1,'2013-02-25 10:15:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(440,'2013-02-25 09:15:50','USER_LOGOUT',1,'2013-02-25 10:15:50',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(441,'2013-02-25 09:15:57','USER_LOGIN',1,'2013-02-25 10:15:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(442,'2013-02-25 09:16:12','USER_LOGOUT',1,'2013-02-25 10:16:12',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(443,'2013-02-25 09:16:19','USER_LOGIN',1,'2013-02-25 10:16:19',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(444,'2013-02-25 09:16:25','USER_LOGOUT',1,'2013-02-25 10:16:25',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(445,'2013-02-25 09:16:39','USER_LOGIN_FAILED',1,'2013-02-25 10:16:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(446,'2013-02-25 09:16:42','USER_LOGIN_FAILED',1,'2013-02-25 10:16:42',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(447,'2013-02-25 09:16:54','USER_LOGIN_FAILED',1,'2013-02-25 10:16:54',NULL,'Identificadors d&#039;usuari o contrasenya incorrectes - login=gfdg','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(448,'2013-02-25 09:17:53','USER_LOGIN',1,'2013-02-25 10:17:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(449,'2013-02-25 09:18:37','USER_LOGOUT',1,'2013-02-25 10:18:37',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(450,'2013-02-25 09:18:41','USER_LOGIN',1,'2013-02-25 10:18:41',4,'(UserLogged,aaa)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(451,'2013-02-25 09:18:47','USER_LOGOUT',1,'2013-02-25 10:18:47',4,'(UserLogoff,aaa)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(452,'2013-02-25 10:05:34','USER_LOGIN',1,'2013-02-25 11:05:34',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(453,'2013-02-26 21:51:40','USER_LOGIN',1,'2013-02-26 22:51:40',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(454,'2013-02-26 23:30:06','USER_LOGIN',1,'2013-02-27 00:30:06',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(455,'2013-02-27 14:13:11','USER_LOGIN',1,'2013-02-27 15:13:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(456,'2013-02-27 18:12:06','USER_LOGIN_FAILED',1,'2013-02-27 19:12:06',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(457,'2013-02-27 18:12:10','USER_LOGIN',1,'2013-02-27 19:12:10',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(458,'2013-02-27 20:20:08','USER_LOGIN',1,'2013-02-27 21:20:08',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(459,'2013-03-01 22:12:03','USER_LOGIN',1,'2013-03-01 23:12:03',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(460,'2013-03-02 11:45:50','USER_LOGIN',1,'2013-03-02 12:45:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(461,'2013-03-02 15:53:51','USER_LOGIN_FAILED',1,'2013-03-02 16:53:51',NULL,'Identifiants login ou mot de passe incorrects - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(462,'2013-03-02 15:53:53','USER_LOGIN',1,'2013-03-02 16:53:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(463,'2013-03-02 18:32:32','USER_LOGIN',1,'2013-03-02 19:32:32',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(464,'2013-03-02 22:59:36','USER_LOGIN',1,'2013-03-02 23:59:36',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(465,'2013-03-03 16:26:26','USER_LOGIN',1,'2013-03-03 17:26:26',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(466,'2013-03-03 22:50:27','USER_LOGIN',1,'2013-03-03 23:50:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(467,'2013-03-04 08:29:27','USER_LOGIN',1,'2013-03-04 09:29:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(468,'2013-03-04 18:27:28','USER_LOGIN',1,'2013-03-04 19:27:28',1,'(UserLogged,admin)','192.168.0.254','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; NP06)',NULL),(469,'2013-03-04 19:27:23','USER_LOGIN',1,'2013-03-04 20:27:23',1,'(UserLogged,admin)','192.168.0.254','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',NULL),(470,'2013-03-04 19:35:14','USER_LOGIN',1,'2013-03-04 20:35:14',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(471,'2013-03-04 19:55:49','USER_LOGIN',1,'2013-03-04 20:55:49',1,'(UserLogged,admin)','192.168.0.254','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',NULL),(472,'2013-03-04 21:16:13','USER_LOGIN',1,'2013-03-04 22:16:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(473,'2013-03-05 10:17:30','USER_LOGIN',1,'2013-03-05 11:17:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(474,'2013-03-05 11:02:43','USER_LOGIN',1,'2013-03-05 12:02:43',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(475,'2013-03-05 23:14:39','USER_LOGIN',1,'2013-03-06 00:14:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(476,'2013-03-06 08:58:57','USER_LOGIN',1,'2013-03-06 09:58:57',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(477,'2013-03-06 14:29:40','USER_LOGIN',1,'2013-03-06 15:29:40',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(478,'2013-03-06 21:53:02','USER_LOGIN',1,'2013-03-06 22:53:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(479,'2013-03-07 21:14:39','USER_LOGIN',1,'2013-03-07 22:14:39',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(480,'2013-03-08 00:06:05','USER_LOGIN',1,'2013-03-08 01:06:05',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(481,'2013-03-08 01:38:13','USER_LOGIN',1,'2013-03-08 02:38:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(482,'2013-03-08 08:59:50','USER_LOGIN',1,'2013-03-08 09:59:50',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(483,'2013-03-09 12:08:51','USER_LOGIN',1,'2013-03-09 13:08:51',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(484,'2013-03-09 15:19:53','USER_LOGIN',1,'2013-03-09 16:19:53',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(495,'2013-03-09 18:06:21','USER_LOGIN',1,'2013-03-09 19:06:21',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(496,'2013-03-09 20:01:24','USER_LOGIN',1,'2013-03-09 21:01:24',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(497,'2013-03-09 23:36:45','USER_LOGIN',1,'2013-03-10 00:36:45',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(498,'2013-03-10 14:37:13','USER_LOGIN',1,'2013-03-10 15:37:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(499,'2013-03-10 17:54:12','USER_LOGIN',1,'2013-03-10 18:54:12',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(500,'2013-03-11 08:57:09','USER_LOGIN',1,'2013-03-11 09:57:09',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(501,'2013-03-11 22:05:13','USER_LOGIN',1,'2013-03-11 23:05:13',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(502,'2013-03-12 08:34:27','USER_LOGIN',1,'2013-03-12 09:34:27',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(503,'2013-03-13 09:11:02','USER_LOGIN',1,'2013-03-13 10:11:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(504,'2013-03-13 10:02:11','USER_LOGIN',1,'2013-03-13 11:02:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(505,'2013-03-13 13:20:58','USER_LOGIN',1,'2013-03-13 14:20:58',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(506,'2013-03-13 16:19:28','USER_LOGIN',1,'2013-03-13 17:19:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(507,'2013-03-13 18:34:30','USER_LOGIN',1,'2013-03-13 19:34:30',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(508,'2013-03-14 08:25:02','USER_LOGIN',1,'2013-03-14 09:25:02',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(509,'2013-03-14 19:15:22','USER_LOGIN',1,'2013-03-14 20:15:22',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(510,'2013-03-14 21:58:53','USER_LOGIN',1,'2013-03-14 22:58:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(511,'2013-03-14 21:58:59','USER_LOGOUT',1,'2013-03-14 22:58:59',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(512,'2013-03-14 21:59:07','USER_LOGIN',1,'2013-03-14 22:59:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(513,'2013-03-14 22:58:22','USER_LOGOUT',1,'2013-03-14 23:58:22',1,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(514,'2013-03-14 23:00:25','USER_LOGIN',1,'2013-03-15 00:00:25',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(515,'2013-03-16 12:14:28','USER_LOGIN',1,'2013-03-16 13:14:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(516,'2013-03-16 16:09:01','USER_LOGIN',1,'2013-03-16 17:09:01',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(517,'2013-03-16 16:57:11','USER_LOGIN',1,'2013-03-16 17:57:11',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(518,'2013-03-16 19:31:31','USER_LOGIN',1,'2013-03-16 20:31:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22',NULL),(519,'2013-03-17 17:44:39','USER_LOGIN',1,'2013-03-17 18:44:39',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(520,'2013-03-17 20:40:57','USER_LOGIN',1,'2013-03-17 21:40:57',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(521,'2013-03-17 23:14:05','USER_LOGIN',1,'2013-03-18 00:14:05',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(522,'2013-03-17 23:28:47','USER_LOGOUT',1,'2013-03-18 00:28:47',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(523,'2013-03-17 23:28:54','USER_LOGIN',1,'2013-03-18 00:28:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(524,'2013-03-18 17:37:30','USER_LOGIN',1,'2013-03-18 18:37:30',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(525,'2013-03-18 18:11:37','USER_LOGIN',1,'2013-03-18 19:11:37',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(526,'2013-03-19 08:35:08','USER_LOGIN',1,'2013-03-19 09:35:08',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(527,'2013-03-19 09:20:23','USER_LOGIN',1,'2013-03-19 10:20:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(528,'2013-03-20 13:17:13','USER_LOGIN',1,'2013-03-20 14:17:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(529,'2013-03-20 14:44:31','USER_LOGIN',1,'2013-03-20 15:44:31',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(530,'2013-03-20 18:24:25','USER_LOGIN',1,'2013-03-20 19:24:25',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(531,'2013-03-20 19:15:54','USER_LOGIN',1,'2013-03-20 20:15:54',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(532,'2013-03-21 18:40:47','USER_LOGIN',1,'2013-03-21 19:40:47',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(533,'2013-03-21 21:42:24','USER_LOGIN',1,'2013-03-21 22:42:24',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(534,'2013-03-22 08:39:23','USER_LOGIN',1,'2013-03-22 09:39:23',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(535,'2013-03-23 13:04:55','USER_LOGIN',1,'2013-03-23 14:04:55',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(536,'2013-03-23 15:47:43','USER_LOGIN',1,'2013-03-23 16:47:43',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(537,'2013-03-23 22:56:36','USER_LOGIN',1,'2013-03-23 23:56:36',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(538,'2013-03-24 01:22:32','USER_LOGIN',1,'2013-03-24 02:22:32',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(539,'2013-03-24 14:40:42','USER_LOGIN',1,'2013-03-24 15:40:42',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(540,'2013-03-24 15:30:26','USER_LOGOUT',1,'2013-03-24 16:30:26',1,'(UserLogoff,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(541,'2013-03-24 15:30:29','USER_LOGIN',1,'2013-03-24 16:30:29',2,'(UserLogged,demo)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(542,'2013-03-24 15:49:40','USER_LOGOUT',1,'2013-03-24 16:49:40',2,'(UserLogoff,demo)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(543,'2013-03-24 15:49:48','USER_LOGIN',1,'2013-03-24 16:49:48',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(544,'2013-03-24 15:52:35','USER_MODIFY',1,'2013-03-24 16:52:35',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(545,'2013-03-24 15:52:52','USER_MODIFY',1,'2013-03-24 16:52:52',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(546,'2013-03-24 15:53:09','USER_MODIFY',1,'2013-03-24 16:53:09',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(547,'2013-03-24 15:53:23','USER_MODIFY',1,'2013-03-24 16:53:23',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(548,'2013-03-24 16:00:04','USER_MODIFY',1,'2013-03-24 17:00:04',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(549,'2013-03-24 16:01:50','USER_MODIFY',1,'2013-03-24 17:01:50',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(550,'2013-03-24 16:10:14','USER_MODIFY',1,'2013-03-24 17:10:14',1,'Modification utilisateur zzzg','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(551,'2013-03-24 16:55:13','USER_LOGIN',1,'2013-03-24 17:55:13',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(552,'2013-03-24 17:44:29','USER_LOGIN',1,'2013-03-24 18:44:29',1,'(UserLogged,admin)','::1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22',NULL),(553,'2013-09-08 23:06:26','USER_LOGIN',1,'2013-09-09 01:06:26',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36',NULL),(554,'2013-10-21 22:32:28','USER_LOGIN',1,'2013-10-22 00:32:28',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36',NULL),(555,'2013-10-21 22:32:48','USER_LOGIN',1,'2013-10-22 00:32:48',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36',NULL),(556,'2013-11-07 00:01:51','USER_LOGIN',1,'2013-11-07 01:01:51',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36',NULL),(557,'2014-03-02 15:21:07','USER_LOGIN',1,'2014-03-02 16:21:07',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL),(558,'2014-03-02 15:36:53','USER_LOGIN',1,'2014-03-02 16:36:53',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL),(559,'2014-03-02 18:54:23','USER_LOGIN',1,'2014-03-02 19:54:23',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL),(560,'2014-03-02 19:11:17','USER_LOGIN',1,'2014-03-02 20:11:17',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL),(561,'2014-03-03 18:19:24','USER_LOGIN',1,'2014-03-03 19:19:24',1,'(UserLogged,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36',NULL),(562,'2014-12-21 12:51:38','USER_LOGIN',1,'2014-12-21 13:51:38',1,'(UserLogged,admin) - TZ=1;TZString=CET;Screen=1920x969','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36',NULL),(563,'2014-12-21 19:52:09','USER_LOGIN',1,'2014-12-21 20:52:09',1,'(UserLogged,admin) - TZ=1;TZString=CET;Screen=1920x969','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36',NULL),(566,'2015-10-03 08:49:43','USER_NEW_PASSWORD',1,'2015-10-03 10:49:43',1,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(567,'2015-10-03 08:49:43','USER_MODIFY',1,'2015-10-03 10:49:43',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(568,'2015-10-03 09:03:12','USER_MODIFY',1,'2015-10-03 11:03:12',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(569,'2015-10-03 09:03:42','USER_MODIFY',1,'2015-10-03 11:03:42',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(570,'2015-10-03 09:07:36','USER_MODIFY',1,'2015-10-03 11:07:36',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(571,'2015-10-03 09:08:58','USER_NEW_PASSWORD',1,'2015-10-03 11:08:58',1,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(572,'2015-10-03 09:08:58','USER_MODIFY',1,'2015-10-03 11:08:58',1,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(573,'2015-10-03 09:09:23','USER_MODIFY',1,'2015-10-03 11:09:23',1,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(574,'2015-10-03 09:11:04','USER_NEW_PASSWORD',1,'2015-10-03 11:11:04',1,'Password change for athestudent','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(575,'2015-10-03 09:11:04','USER_MODIFY',1,'2015-10-03 11:11:04',1,'User athestudent modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(576,'2015-10-03 09:11:53','USER_MODIFY',1,'2015-10-03 11:11:53',1,'User abookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(577,'2015-10-03 09:42:12','USER_LOGIN_FAILED',1,'2015-10-03 11:42:11',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(578,'2015-10-03 09:42:19','USER_LOGIN_FAILED',1,'2015-10-03 11:42:19',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(579,'2015-10-03 09:42:42','USER_LOGIN_FAILED',1,'2015-10-03 11:42:42',NULL,'Bad value for login or password - login=aeinstein','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(580,'2015-10-03 09:43:50','USER_LOGIN',1,'2015-10-03 11:43:50',1,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x788','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(581,'2015-10-03 09:44:44','GROUP_MODIFY',1,'2015-10-03 11:44:44',1,'Group Sale representatives modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(582,'2015-10-03 09:46:25','GROUP_CREATE',1,'2015-10-03 11:46:25',1,'Group Management created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(583,'2015-10-03 09:46:46','GROUP_CREATE',1,'2015-10-03 11:46:46',1,'Group Scientists created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(584,'2015-10-03 09:47:41','USER_CREATE',1,'2015-10-03 11:47:41',1,'User mcurie created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(585,'2015-10-03 09:47:41','USER_NEW_PASSWORD',1,'2015-10-03 11:47:41',1,'Password change for mcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(586,'2015-10-03 09:47:53','USER_MODIFY',1,'2015-10-03 11:47:53',1,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(587,'2015-10-03 09:48:32','USER_DELETE',1,'2015-10-03 11:48:32',1,'User bbb removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(588,'2015-10-03 09:48:52','USER_MODIFY',1,'2015-10-03 11:48:52',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(589,'2015-10-03 10:01:28','USER_MODIFY',1,'2015-10-03 12:01:28',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(590,'2015-10-03 10:01:39','USER_MODIFY',1,'2015-10-03 12:01:39',1,'User bookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(591,'2015-10-05 06:32:38','USER_LOGIN_FAILED',1,'2015-10-05 08:32:38',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(592,'2015-10-05 06:32:44','USER_LOGIN',1,'2015-10-05 08:32:44',1,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(593,'2015-10-05 07:07:52','USER_CREATE',1,'2015-10-05 09:07:52',1,'User atheceo created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(594,'2015-10-05 07:07:52','USER_NEW_PASSWORD',1,'2015-10-05 09:07:52',1,'Password change for atheceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(595,'2015-10-05 07:09:08','USER_NEW_PASSWORD',1,'2015-10-05 09:09:08',1,'Password change for aeinstein','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(596,'2015-10-05 07:09:08','USER_MODIFY',1,'2015-10-05 09:09:08',1,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(597,'2015-10-05 07:09:46','USER_CREATE',1,'2015-10-05 09:09:46',1,'User admin created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(598,'2015-10-05 07:09:46','USER_NEW_PASSWORD',1,'2015-10-05 09:09:46',1,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(599,'2015-10-05 07:10:20','USER_MODIFY',1,'2015-10-05 09:10:20',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(600,'2015-10-05 07:10:48','USER_MODIFY',1,'2015-10-05 09:10:48',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(601,'2015-10-05 07:11:22','USER_NEW_PASSWORD',1,'2015-10-05 09:11:22',1,'Password change for bbookkeeper','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(602,'2015-10-05 07:11:22','USER_MODIFY',1,'2015-10-05 09:11:22',1,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(603,'2015-10-05 07:12:37','USER_MODIFY',1,'2015-10-05 09:12:37',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(604,'2015-10-05 07:13:27','USER_MODIFY',1,'2015-10-05 09:13:27',1,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(605,'2015-10-05 07:13:52','USER_MODIFY',1,'2015-10-05 09:13:52',1,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(606,'2015-10-05 07:14:35','USER_LOGOUT',1,'2015-10-05 09:14:35',1,'(UserLogoff,aeinstein)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(607,'2015-10-05 07:14:40','USER_LOGIN_FAILED',1,'2015-10-05 09:14:40',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(608,'2015-10-05 07:14:44','USER_LOGIN_FAILED',1,'2015-10-05 09:14:44',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(609,'2015-10-05 07:14:49','USER_LOGIN',1,'2015-10-05 09:14:49',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(610,'2015-10-05 07:57:18','USER_MODIFY',1,'2015-10-05 09:57:18',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(611,'2015-10-05 08:06:54','USER_LOGOUT',1,'2015-10-05 10:06:54',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(612,'2015-10-05 08:07:03','USER_LOGIN',1,'2015-10-05 10:07:03',11,'(UserLogged,atheceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(613,'2015-10-05 19:18:46','USER_LOGIN',1,'2015-10-05 21:18:46',11,'(UserLogged,atheceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(614,'2015-10-05 19:29:35','USER_CREATE',1,'2015-10-05 21:29:35',11,'User ccommercy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(615,'2015-10-05 19:29:35','USER_NEW_PASSWORD',1,'2015-10-05 21:29:35',11,'Password change for ccommercy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(616,'2015-10-05 19:30:13','GROUP_CREATE',1,'2015-10-05 21:30:13',11,'Group Commercial created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(617,'2015-10-05 19:31:37','USER_NEW_PASSWORD',1,'2015-10-05 21:31:37',11,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(618,'2015-10-05 19:31:37','USER_MODIFY',1,'2015-10-05 21:31:37',11,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(619,'2015-10-05 19:32:00','USER_MODIFY',1,'2015-10-05 21:32:00',11,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(620,'2015-10-05 19:33:33','USER_CREATE',1,'2015-10-05 21:33:33',11,'User sscientol created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(621,'2015-10-05 19:33:33','USER_NEW_PASSWORD',1,'2015-10-05 21:33:33',11,'Password change for sscientol','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(622,'2015-10-05 19:33:47','USER_NEW_PASSWORD',1,'2015-10-05 21:33:47',11,'Password change for mcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(623,'2015-10-05 19:33:47','USER_MODIFY',1,'2015-10-05 21:33:47',11,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(624,'2015-10-05 19:34:23','USER_NEW_PASSWORD',1,'2015-10-05 21:34:23',11,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(625,'2015-10-05 19:34:23','USER_MODIFY',1,'2015-10-05 21:34:23',11,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(626,'2015-10-05 19:34:42','USER_MODIFY',1,'2015-10-05 21:34:42',11,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(627,'2015-10-05 19:36:06','USER_NEW_PASSWORD',1,'2015-10-05 21:36:06',11,'Password change for ccommercy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(628,'2015-10-05 19:36:06','USER_MODIFY',1,'2015-10-05 21:36:06',11,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(629,'2015-10-05 19:36:57','USER_NEW_PASSWORD',1,'2015-10-05 21:36:57',11,'Password change for atheceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(630,'2015-10-05 19:36:57','USER_MODIFY',1,'2015-10-05 21:36:57',11,'User atheceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(631,'2015-10-05 19:37:27','USER_LOGOUT',1,'2015-10-05 21:37:27',11,'(UserLogoff,atheceo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(632,'2015-10-05 19:37:35','USER_LOGIN_FAILED',1,'2015-10-05 21:37:35',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(633,'2015-10-05 19:37:39','USER_LOGIN_FAILED',1,'2015-10-05 21:37:39',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(634,'2015-10-05 19:37:44','USER_LOGIN_FAILED',1,'2015-10-05 21:37:44',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(635,'2015-10-05 19:37:49','USER_LOGIN_FAILED',1,'2015-10-05 21:37:49',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(636,'2015-10-05 19:38:12','USER_LOGIN_FAILED',1,'2015-10-05 21:38:12',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(637,'2015-10-05 19:40:48','USER_LOGIN_FAILED',1,'2015-10-05 21:40:48',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(638,'2015-10-05 19:40:55','USER_LOGIN',1,'2015-10-05 21:40:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(639,'2015-10-05 19:43:34','USER_MODIFY',1,'2015-10-05 21:43:34',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(640,'2015-10-05 19:45:43','USER_CREATE',1,'2015-10-05 21:45:43',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(641,'2015-10-05 19:45:43','USER_NEW_PASSWORD',1,'2015-10-05 21:45:43',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(642,'2015-10-05 19:46:18','USER_DELETE',1,'2015-10-05 21:46:18',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(643,'2015-10-05 19:47:09','USER_MODIFY',1,'2015-10-05 21:47:09',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(644,'2015-10-05 19:47:22','USER_MODIFY',1,'2015-10-05 21:47:22',12,'User demo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(645,'2015-10-05 19:52:05','USER_MODIFY',1,'2015-10-05 21:52:05',12,'User sscientol modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(646,'2015-10-05 19:52:23','USER_MODIFY',1,'2015-10-05 21:52:23',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(647,'2015-10-05 19:54:54','USER_NEW_PASSWORD',1,'2015-10-05 21:54:54',12,'Password change for zzeceo','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(648,'2015-10-05 19:54:54','USER_MODIFY',1,'2015-10-05 21:54:54',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(649,'2015-10-05 19:57:02','USER_MODIFY',1,'2015-10-05 21:57:02',12,'User zzeceo modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(650,'2015-10-05 19:57:57','USER_NEW_PASSWORD',1,'2015-10-05 21:57:57',12,'Password change for pcurie','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(651,'2015-10-05 19:57:57','USER_MODIFY',1,'2015-10-05 21:57:57',12,'User pcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(652,'2015-10-05 19:59:42','USER_NEW_PASSWORD',1,'2015-10-05 21:59:42',12,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(653,'2015-10-05 19:59:42','USER_MODIFY',1,'2015-10-05 21:59:42',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(654,'2015-10-05 20:00:21','USER_MODIFY',1,'2015-10-05 22:00:21',12,'User adminx modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(655,'2015-10-05 20:05:36','USER_MODIFY',1,'2015-10-05 22:05:36',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(656,'2015-10-05 20:06:25','USER_MODIFY',1,'2015-10-05 22:06:25',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(657,'2015-10-05 20:07:18','USER_MODIFY',1,'2015-10-05 22:07:18',12,'User mcurie modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(658,'2015-10-05 20:07:36','USER_MODIFY',1,'2015-10-05 22:07:36',12,'User aeinstein modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(659,'2015-10-05 20:08:34','USER_MODIFY',1,'2015-10-05 22:08:34',12,'User bbookkeeper modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(660,'2015-10-05 20:47:52','USER_CREATE',1,'2015-10-05 22:47:52',12,'User cc1 created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(661,'2015-10-05 20:47:52','USER_NEW_PASSWORD',1,'2015-10-05 22:47:52',12,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(662,'2015-10-05 20:47:55','USER_LOGOUT',1,'2015-10-05 22:47:55',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(663,'2015-10-05 20:48:08','USER_LOGIN',1,'2015-10-05 22:48:08',11,'(UserLogged,zzeceo) - TZ=1;TZString=Europe/Berlin;Screen=1590x434','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(664,'2015-10-05 20:48:39','USER_CREATE',1,'2015-10-05 22:48:39',11,'User cc2 created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(665,'2015-10-05 20:48:39','USER_NEW_PASSWORD',1,'2015-10-05 22:48:39',11,'Password change for cc2','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(666,'2015-10-05 20:48:59','USER_NEW_PASSWORD',1,'2015-10-05 22:48:59',11,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(667,'2015-10-05 20:48:59','USER_MODIFY',1,'2015-10-05 22:48:59',11,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(668,'2015-10-05 21:06:36','USER_LOGOUT',1,'2015-10-05 23:06:35',11,'(UserLogoff,zzeceo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(669,'2015-10-05 21:06:44','USER_LOGIN_FAILED',1,'2015-10-05 23:06:44',NULL,'Bad value for login or password - login=cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(670,'2015-10-05 21:07:12','USER_LOGIN_FAILED',1,'2015-10-05 23:07:12',NULL,'Bad value for login or password - login=cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(671,'2015-10-05 21:07:19','USER_LOGIN_FAILED',1,'2015-10-05 23:07:19',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(672,'2015-10-05 21:07:27','USER_LOGIN_FAILED',1,'2015-10-05 23:07:27',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(673,'2015-10-05 21:07:32','USER_LOGIN',1,'2015-10-05 23:07:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(674,'2015-10-05 21:12:28','USER_NEW_PASSWORD',1,'2015-10-05 23:12:28',12,'Password change for cc1','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(675,'2015-10-05 21:12:28','USER_MODIFY',1,'2015-10-05 23:12:28',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(676,'2015-10-05 21:13:00','USER_CREATE',1,'2015-10-05 23:13:00',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(677,'2015-10-05 21:13:00','USER_NEW_PASSWORD',1,'2015-10-05 23:13:00',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(678,'2015-10-05 21:13:40','USER_DELETE',1,'2015-10-05 23:13:40',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(679,'2015-10-05 21:14:47','USER_LOGOUT',1,'2015-10-05 23:14:47',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(680,'2015-10-05 21:14:56','USER_LOGIN',1,'2015-10-05 23:14:56',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(681,'2015-10-05 21:15:56','USER_LOGOUT',1,'2015-10-05 23:15:56',16,'(UserLogoff,cc1)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(682,'2015-10-05 21:16:06','USER_LOGIN',1,'2015-10-05 23:16:06',17,'(UserLogged,cc2) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(683,'2015-10-05 21:37:25','USER_LOGOUT',1,'2015-10-05 23:37:25',17,'(UserLogoff,cc2)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(684,'2015-10-05 21:37:31','USER_LOGIN',1,'2015-10-05 23:37:31',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(685,'2015-10-05 21:43:53','USER_LOGOUT',1,'2015-10-05 23:43:53',16,'(UserLogoff,cc1)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(686,'2015-10-05 21:44:00','USER_LOGIN',1,'2015-10-05 23:44:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(687,'2015-10-05 21:46:17','USER_LOGOUT',1,'2015-10-05 23:46:17',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(688,'2015-10-05 21:46:24','USER_LOGIN',1,'2015-10-05 23:46:24',16,'(UserLogged,cc1) - TZ=1;TZString=Europe/Berlin;Screen=1590x767','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',NULL),(689,'2015-11-04 15:17:06','USER_LOGIN',1,'2015-11-04 16:17:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(690,'2015-11-15 22:04:04','USER_LOGIN',1,'2015-11-15 23:04:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(691,'2015-11-15 22:23:45','USER_MODIFY',1,'2015-11-15 23:23:45',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(692,'2015-11-15 22:24:22','USER_MODIFY',1,'2015-11-15 23:24:22',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(693,'2015-11-15 22:24:53','USER_MODIFY',1,'2015-11-15 23:24:53',12,'User cc2 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(694,'2015-11-15 22:25:17','USER_MODIFY',1,'2015-11-15 23:25:17',12,'User cc1 modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(695,'2015-11-15 22:45:37','USER_LOGOUT',1,'2015-11-15 23:45:37',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(696,'2015-11-18 13:41:02','USER_LOGIN',1,'2015-11-18 14:41:02',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(697,'2015-11-18 14:23:35','USER_LOGIN',1,'2015-11-18 15:23:35',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(698,'2015-11-18 15:15:46','USER_LOGOUT',1,'2015-11-18 16:15:46',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(699,'2015-11-18 15:15:51','USER_LOGIN',1,'2015-11-18 16:15:51',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(700,'2015-11-30 17:52:08','USER_LOGIN',1,'2015-11-30 18:52:08',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(701,'2016-01-10 16:45:43','USER_LOGIN',1,'2016-01-10 17:45:43',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(702,'2016-01-10 16:45:52','USER_LOGOUT',1,'2016-01-10 17:45:52',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(703,'2016-01-10 16:46:06','USER_LOGIN',1,'2016-01-10 17:46:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(704,'2016-01-16 14:53:47','USER_LOGIN',1,'2016-01-16 15:53:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(705,'2016-01-16 15:04:29','USER_LOGOUT',1,'2016-01-16 16:04:29',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(706,'2016-01-16 15:04:40','USER_LOGIN',1,'2016-01-16 16:04:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(707,'2016-01-22 09:33:26','USER_LOGIN',1,'2016-01-22 10:33:26',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(708,'2016-01-22 09:35:19','USER_LOGOUT',1,'2016-01-22 10:35:19',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(709,'2016-01-22 09:35:29','USER_LOGIN',1,'2016-01-22 10:35:29',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(710,'2016-01-22 10:47:34','USER_CREATE',1,'2016-01-22 11:47:34',12,'User aaa created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(711,'2016-01-22 10:47:34','USER_NEW_PASSWORD',1,'2016-01-22 11:47:34',12,'Password change for aaa','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(712,'2016-01-22 12:07:56','USER_LOGIN',1,'2016-01-22 13:07:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(713,'2016-01-22 12:36:25','USER_NEW_PASSWORD',1,'2016-01-22 13:36:25',12,'Password change for admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(714,'2016-01-22 12:36:25','USER_MODIFY',1,'2016-01-22 13:36:25',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(715,'2016-01-22 12:56:32','USER_MODIFY',1,'2016-01-22 13:56:32',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(716,'2016-01-22 12:58:05','USER_MODIFY',1,'2016-01-22 13:58:05',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(717,'2016-01-22 13:01:02','USER_MODIFY',1,'2016-01-22 14:01:02',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(718,'2016-01-22 13:01:18','USER_MODIFY',1,'2016-01-22 14:01:18',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(719,'2016-01-22 13:13:42','USER_MODIFY',1,'2016-01-22 14:13:42',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(720,'2016-01-22 13:15:20','USER_DELETE',1,'2016-01-22 14:15:20',12,'User aaa removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(721,'2016-01-22 13:19:21','USER_LOGOUT',1,'2016-01-22 14:19:21',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(722,'2016-01-22 13:19:32','USER_LOGIN',1,'2016-01-22 14:19:32',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(723,'2016-01-22 13:19:51','USER_LOGOUT',1,'2016-01-22 14:19:51',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(724,'2016-01-22 13:20:01','USER_LOGIN',1,'2016-01-22 14:20:01',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(725,'2016-01-22 13:28:22','USER_LOGOUT',1,'2016-01-22 14:28:22',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(726,'2016-01-22 13:28:35','USER_LOGIN',1,'2016-01-22 14:28:35',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(727,'2016-01-22 13:33:54','USER_LOGOUT',1,'2016-01-22 14:33:54',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(728,'2016-01-22 13:34:05','USER_LOGIN',1,'2016-01-22 14:34:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(729,'2016-01-22 13:51:46','USER_MODIFY',1,'2016-01-22 14:51:46',12,'User ccommercy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',NULL),(730,'2016-01-22 16:20:12','USER_LOGIN',1,'2016-01-22 17:20:12',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(731,'2016-01-22 16:20:22','USER_LOGOUT',1,'2016-01-22 17:20:22',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(732,'2016-01-22 16:20:36','USER_LOGIN',1,'2016-01-22 17:20:36',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(733,'2016-01-22 16:27:02','USER_CREATE',1,'2016-01-22 17:27:02',12,'User ldestailleur created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(734,'2016-01-22 16:27:02','USER_NEW_PASSWORD',1,'2016-01-22 17:27:02',12,'Password change for ldestailleur','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(735,'2016-01-22 16:28:34','USER_MODIFY',1,'2016-01-22 17:28:34',12,'User ldestailleur modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(736,'2016-01-22 16:30:01','USER_ENABLEDISABLE',1,'2016-01-22 17:30:01',12,'User cc2 activated','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(737,'2016-01-22 17:11:06','USER_LOGIN',1,'2016-01-22 18:11:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=1600x790','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(738,'2016-01-22 18:00:02','USER_DELETE',1,'2016-01-22 19:00:02',12,'User zzz removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(739,'2016-01-22 18:01:40','USER_DELETE',1,'2016-01-22 19:01:40',12,'User aaab removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(740,'2016-01-22 18:01:52','USER_DELETE',1,'2016-01-22 19:01:52',12,'User zzzg removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36',NULL),(741,'2016-03-13 10:54:59','USER_LOGIN',1,'2016-03-13 14:54:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x971','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36',NULL),(742,'2016-07-30 11:13:10','USER_LOGIN',1,'2016-07-30 15:13:10',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(743,'2016-07-30 12:50:23','USER_CREATE',1,'2016-07-30 16:50:23',12,'User eldy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(744,'2016-07-30 12:50:23','USER_CREATE',1,'2016-07-30 16:50:23',12,'User eldy created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(745,'2016-07-30 12:50:23','USER_NEW_PASSWORD',1,'2016-07-30 16:50:23',12,'Password change for eldy','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(746,'2016-07-30 12:50:38','USER_MODIFY',1,'2016-07-30 16:50:38',12,'User eldy modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(747,'2016-07-30 12:50:54','USER_DELETE',1,'2016-07-30 16:50:54',12,'User eldy removed','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(748,'2016-07-30 12:51:23','USER_NEW_PASSWORD',1,'2016-07-30 16:51:23',12,'Password change for ldestailleur','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(749,'2016-07-30 12:51:23','USER_MODIFY',1,'2016-07-30 16:51:23',12,'User ldestailleur modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(750,'2016-07-30 18:26:58','USER_LOGIN',1,'2016-07-30 22:26:58',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(751,'2016-07-30 18:27:40','USER_LOGOUT',1,'2016-07-30 22:27:40',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(752,'2016-07-30 18:27:47','USER_LOGIN',1,'2016-07-30 22:27:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(753,'2016-07-30 19:00:00','USER_LOGOUT',1,'2016-07-30 23:00:00',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(754,'2016-07-30 19:00:04','USER_LOGIN',1,'2016-07-30 23:00:04',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(755,'2016-07-30 19:00:14','USER_LOGOUT',1,'2016-07-30 23:00:14',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(756,'2016-07-30 19:00:19','USER_LOGIN',1,'2016-07-30 23:00:19',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(757,'2016-07-30 19:00:43','USER_LOGOUT',1,'2016-07-30 23:00:43',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(758,'2016-07-30 19:00:48','USER_LOGIN',1,'2016-07-30 23:00:48',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(759,'2016-07-30 19:03:52','USER_LOGOUT',1,'2016-07-30 23:03:52',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(760,'2016-07-30 19:03:57','USER_LOGIN_FAILED',1,'2016-07-30 23:03:57',NULL,'Bad value for login or password - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(761,'2016-07-30 19:03:59','USER_LOGIN',1,'2016-07-30 23:03:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(762,'2016-07-30 19:04:13','USER_LOGOUT',1,'2016-07-30 23:04:13',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(763,'2016-07-30 19:04:17','USER_LOGIN',1,'2016-07-30 23:04:17',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(764,'2016-07-30 19:04:26','USER_LOGOUT',1,'2016-07-30 23:04:26',2,'(UserLogoff,demo)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(765,'2016-07-30 19:04:31','USER_LOGIN',1,'2016-07-30 23:04:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(766,'2016-07-30 19:10:50','USER_LOGOUT',1,'2016-07-30 23:10:50',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(767,'2016-07-30 19:10:54','USER_LOGIN',1,'2016-07-30 23:10:54',2,'(UserLogged,demo) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(768,'2016-07-31 10:15:52','USER_LOGIN',1,'2016-07-31 14:15:52',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL),(769,'2016-07-31 10:16:27','USER_LOGIN',1,'2016-07-31 14:16:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(770,'2016-07-31 10:32:14','USER_LOGIN',1,'2016-07-31 14:32:14',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL),(771,'2016-07-31 10:36:28','USER_LOGIN',1,'2016-07-31 14:36:28',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Links (2.8; Linux 3.19.0-46-generic x86_64; GNU C 4.8.2; text)',NULL),(772,'2016-07-31 10:40:10','USER_LOGIN',1,'2016-07-31 14:40:10',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Links (2.8; Linux 3.19.0-46-generic x86_64; GNU C 4.8.2; text)',NULL),(773,'2016-07-31 10:54:16','USER_LOGIN',1,'2016-07-31 14:54:16',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23',NULL),(774,'2016-07-31 12:52:52','USER_LOGIN',1,'2016-07-31 16:52:52',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x592','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(775,'2016-07-31 13:25:33','USER_LOGOUT',1,'2016-07-31 17:25:33',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(776,'2016-07-31 13:26:32','USER_LOGIN',1,'2016-07-31 17:26:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1280x751','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(777,'2016-07-31 14:13:57','USER_LOGOUT',1,'2016-07-31 18:13:57',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(778,'2016-07-31 14:14:04','USER_LOGIN',1,'2016-07-31 18:14:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(779,'2016-07-31 16:04:35','USER_LOGIN',1,'2016-07-31 20:04:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(780,'2016-07-31 21:14:14','USER_LOGIN',1,'2016-08-01 01:14:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',NULL),(781,'2017-01-29 15:14:05','USER_LOGOUT',1,'2017-01-29 19:14:05',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(782,'2017-01-29 15:34:43','USER_LOGIN',1,'2017-01-29 19:34:43',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(783,'2017-01-29 15:35:04','USER_LOGOUT',1,'2017-01-29 19:35:04',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(784,'2017-01-29 15:35:12','USER_LOGIN',1,'2017-01-29 19:35:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(785,'2017-01-29 15:36:43','USER_LOGOUT',1,'2017-01-29 19:36:43',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(786,'2017-01-29 15:41:21','USER_LOGIN',1,'2017-01-29 19:41:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(787,'2017-01-29 15:41:41','USER_LOGOUT',1,'2017-01-29 19:41:41',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(788,'2017-01-29 15:42:43','USER_LOGIN',1,'2017-01-29 19:42:43',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(789,'2017-01-29 15:43:18','USER_LOGOUT',1,'2017-01-29 19:43:18',12,'(UserLogoff,admin)','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(790,'2017-01-29 15:46:31','USER_LOGIN',1,'2017-01-29 19:46:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x571','192.168.0.254','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(791,'2017-01-29 16:18:56','USER_LOGIN',1,'2017-01-29 20:18:56',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Berlin;Screen=360x526','192.168.0.254','Mozilla/5.0 (Linux; Android 6.0; LG-H818 Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36 - DoliDroid - Android client pour Dolibarr ERP-CRM',NULL),(792,'2017-01-29 17:20:59','USER_LOGIN',1,'2017-01-29 21:20:59',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(793,'2017-01-30 11:19:40','USER_LOGIN',1,'2017-01-30 15:19:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(794,'2017-01-31 16:49:39','USER_LOGIN',1,'2017-01-31 20:49:39',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x520','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(795,'2017-02-01 10:55:23','USER_LOGIN',1,'2017-02-01 14:55:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(796,'2017-02-01 13:34:31','USER_LOGIN',1,'2017-02-01 17:34:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(797,'2017-02-01 14:41:26','USER_LOGIN',1,'2017-02-01 18:41:26',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(798,'2017-02-01 23:51:48','USER_LOGIN_FAILED',1,'2017-02-02 03:51:48',NULL,'Bad value for login or password - login=autologin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(799,'2017-02-01 23:52:55','USER_LOGIN',1,'2017-02-02 03:52:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(800,'2017-02-01 23:55:45','USER_CREATE',1,'2017-02-02 03:55:45',12,'User aboston created','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(801,'2017-02-01 23:55:45','USER_NEW_PASSWORD',1,'2017-02-02 03:55:45',12,'Password change for aboston','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(802,'2017-02-01 23:56:38','USER_MODIFY',1,'2017-02-02 03:56:38',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(803,'2017-02-01 23:56:50','USER_MODIFY',1,'2017-02-02 03:56:50',12,'User aboston modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(804,'2017-02-02 01:14:44','USER_LOGIN',1,'2017-02-02 05:14:44',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',NULL),(805,'2017-02-03 10:27:18','USER_LOGIN',1,'2017-02-03 14:27:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(806,'2017-02-04 10:22:34','USER_LOGIN',1,'2017-02-04 14:22:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x489','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(807,'2017-02-06 04:01:31','USER_LOGIN',1,'2017-02-06 08:01:31',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(808,'2017-02-06 10:21:32','USER_LOGIN',1,'2017-02-06 14:21:32',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(809,'2017-02-06 19:09:27','USER_LOGIN',1,'2017-02-06 23:09:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(810,'2017-02-06 23:39:17','USER_LOGIN',1,'2017-02-07 03:39:17',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(811,'2017-02-07 11:36:34','USER_LOGIN',1,'2017-02-07 15:36:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x676','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(812,'2017-02-07 18:51:53','USER_LOGIN',1,'2017-02-07 22:51:53',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(813,'2017-02-07 23:13:40','USER_LOGIN',1,'2017-02-08 03:13:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(814,'2017-02-08 09:29:12','USER_LOGIN',1,'2017-02-08 13:29:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(815,'2017-02-08 17:33:12','USER_LOGIN',1,'2017-02-08 21:33:12',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(816,'2017-02-09 17:30:34','USER_LOGIN',1,'2017-02-09 21:30:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(817,'2017-02-10 09:30:02','USER_LOGIN',1,'2017-02-10 13:30:02',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(818,'2017-02-10 16:16:14','USER_LOGIN',1,'2017-02-10 20:16:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(819,'2017-02-10 17:28:15','USER_LOGIN',1,'2017-02-10 21:28:15',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(820,'2017-02-11 12:54:03','USER_LOGIN',1,'2017-02-11 16:54:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(821,'2017-02-11 17:23:52','USER_LOGIN',1,'2017-02-11 21:23:52',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(822,'2017-02-12 12:44:03','USER_LOGIN',1,'2017-02-12 16:44:03',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(823,'2017-02-12 16:42:13','USER_LOGIN',1,'2017-02-12 20:42:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(824,'2017-02-12 19:14:18','USER_LOGIN',1,'2017-02-12 23:14:18',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(825,'2017-02-15 17:17:00','USER_LOGIN',1,'2017-02-15 21:17:00',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(826,'2017-02-15 22:02:40','USER_LOGIN',1,'2017-02-16 02:02:40',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(827,'2017-02-16 22:13:27','USER_LOGIN',1,'2017-02-17 02:13:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x619','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(828,'2017-02-16 23:54:04','USER_LOGIN',1,'2017-02-17 03:54:04',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(829,'2017-02-17 09:14:27','USER_LOGIN',1,'2017-02-17 13:14:27',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(830,'2017-02-17 12:07:05','USER_LOGIN',1,'2017-02-17 16:07:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(831,'2017-02-19 21:22:20','USER_LOGIN',1,'2017-02-20 01:22:20',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(832,'2017-02-20 09:26:47','USER_LOGIN',1,'2017-02-20 13:26:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(833,'2017-02-20 16:39:55','USER_LOGIN',1,'2017-02-20 20:39:55',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(834,'2017-02-20 16:49:00','USER_MODIFY',1,'2017-02-20 20:49:00',12,'Modification utilisateur ccommerson','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(835,'2017-02-20 17:57:15','USER_LOGIN',1,'2017-02-20 21:57:14',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(836,'2017-02-20 19:43:48','USER_LOGIN',1,'2017-02-20 23:43:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(837,'2017-02-21 00:04:05','USER_LOGIN',1,'2017-02-21 04:04:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(838,'2017-02-21 10:23:13','USER_LOGIN',1,'2017-02-21 14:23:13',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(839,'2017-02-21 10:30:17','USER_LOGOUT',1,'2017-02-21 14:30:17',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(840,'2017-02-21 10:30:22','USER_LOGIN',1,'2017-02-21 14:30:22',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(841,'2017-02-21 11:44:05','USER_LOGIN',1,'2017-02-21 15:44:05',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',NULL),(842,'2017-05-12 09:02:48','USER_LOGIN',1,'2017-05-12 13:02:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36',NULL),(843,'2017-08-27 13:29:16','USER_LOGIN',1,'2017-08-27 17:29:16',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(844,'2017-08-28 09:11:07','USER_LOGIN',1,'2017-08-28 13:11:07',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(845,'2017-08-28 10:08:58','USER_LOGIN',1,'2017-08-28 14:08:58',12,'(UserLogged,admin) - TZ=;TZString=;Screen=x','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(846,'2017-08-28 10:12:46','USER_MODIFY',1,'2017-08-28 14:12:46',12,'User admin modified','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(847,'2017-08-28 10:28:25','USER_LOGIN',1,'2017-08-28 14:28:25',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(848,'2017-08-28 10:28:36','USER_LOGOUT',1,'2017-08-28 14:28:36',12,'(UserLogoff,admin)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(849,'2017-08-28 10:34:50','USER_LOGIN',1,'2017-08-28 14:34:50',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(850,'2017-08-28 11:59:02','USER_LOGIN',1,'2017-08-28 15:59:02',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',NULL),(851,'2017-08-29 09:57:34','USER_LOGIN',1,'2017-08-29 13:57:34',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(852,'2017-08-29 11:05:51','USER_LOGIN',1,'2017-08-29 15:05:51',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(853,'2017-08-29 14:15:58','USER_LOGIN',1,'2017-08-29 18:15:58',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(854,'2017-08-29 17:49:28','USER_LOGIN',1,'2017-08-29 21:49:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(855,'2017-08-30 11:53:25','USER_LOGIN',1,'2017-08-30 15:53:25',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(856,'2017-08-30 12:19:31','USER_MODIFY',1,'2017-08-30 16:19:31',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(857,'2017-08-30 12:19:32','USER_MODIFY',1,'2017-08-30 16:19:32',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(858,'2017-08-30 12:19:33','USER_MODIFY',1,'2017-08-30 16:19:33',18,'Modification utilisateur ldestailleur - UserRemovedFromGroup','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(859,'2017-08-30 12:21:42','USER_LOGOUT',1,'2017-08-30 16:21:42',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(860,'2017-08-30 12:21:48','USER_LOGIN',1,'2017-08-30 16:21:48',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(861,'2017-08-30 15:02:06','USER_LOGIN',1,'2017-08-30 19:02:06',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(862,'2017-08-31 09:25:42','USER_LOGIN',1,'2017-08-31 13:25:42',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(863,'2017-09-04 07:51:21','USER_LOGIN',1,'2017-09-04 11:51:21',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x577','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(864,'2017-09-04 09:17:09','USER_LOGIN',1,'2017-09-04 13:17:09',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(865,'2017-09-04 13:40:28','USER_LOGIN',1,'2017-09-04 17:40:28',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(866,'2017-09-06 07:55:30','USER_LOGIN',1,'2017-09-06 11:55:30',18,'(UserLogged,ldestailleur) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(867,'2017-09-06 07:55:33','USER_LOGOUT',1,'2017-09-06 11:55:33',18,'(UserLogoff,ldestailleur)','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(868,'2017-09-06 07:55:38','USER_LOGIN',1,'2017-09-06 11:55:38',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(869,'2017-09-06 16:03:38','USER_LOGIN',1,'2017-09-06 20:03:38',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(870,'2017-09-06 19:43:07','USER_LOGIN',1,'2017-09-06 23:43:07',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x937','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',NULL),(871,'2018-01-19 11:18:08','USER_LOGOUT',1,'2018-01-19 11:18:08',12,'(UserLogoff,admin)','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',NULL),(872,'2018-01-19 11:18:47','USER_LOGIN',1,'2018-01-19 11:18:47',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x965','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',NULL),(873,'2018-01-19 11:21:41','USER_LOGIN',1,'2018-01-19 11:21:41',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x926','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL),(874,'2018-01-19 11:24:18','USER_NEW_PASSWORD',1,'2018-01-19 11:24:18',12,'Password change for admin','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL),(875,'2018-01-19 11:24:18','USER_MODIFY',1,'2018-01-19 11:24:18',12,'User admin modified','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL),(876,'2018-01-19 11:28:45','USER_LOGOUT',1,'2018-01-19 11:28:45',12,'(UserLogoff,admin)','82.240.38.230','Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0',NULL),(877,'2018-03-16 09:54:15','USER_LOGIN_FAILED',1,'2018-03-16 13:54:15',NULL,'Identifiant ou mot de passe incorrect - login=admin','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',NULL),(878,'2018-03-16 09:54:23','USER_LOGIN',1,'2018-03-16 13:54:23',12,'(UserLogged,admin) - TZ=1;TZString=Europe/Paris;Screen=1920x936','127.0.0.1','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',NULL);
    +/*!40000 ALTER TABLE `llx_events` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expedition`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expedition`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expedition` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_customer` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `date_expedition` datetime DEFAULT NULL,
    +  `date_delivery` datetime DEFAULT NULL,
    +  `fk_address` int(11) DEFAULT NULL,
    +  `fk_shipping_method` int(11) DEFAULT NULL,
    +  `tracking_number` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  `height` float DEFAULT NULL,
    +  `height_unit` int(11) DEFAULT NULL,
    +  `width` float DEFAULT NULL,
    +  `size_units` int(11) DEFAULT NULL,
    +  `size` float DEFAULT NULL,
    +  `weight_units` int(11) DEFAULT NULL,
    +  `weight` float DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `billed` smallint(6) DEFAULT '0',
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_expedition_uk_ref` (`ref`,`entity`),
    +  KEY `idx_expedition_fk_soc` (`fk_soc`),
    +  KEY `idx_expedition_fk_user_author` (`fk_user_author`),
    +  KEY `idx_expedition_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_expedition_fk_shipping_method` (`fk_shipping_method`),
    +  CONSTRAINT `fk_expedition_fk_shipping_method` FOREIGN KEY (`fk_shipping_method`) REFERENCES `llx_c_shipment_mode` (`rowid`),
    +  CONSTRAINT `fk_expedition_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_expedition_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_expedition_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expedition`
    +--
    +
    +LOCK TABLES `llx_expedition` WRITE;
    +/*!40000 ALTER TABLE `llx_expedition` DISABLE KEYS */;
    +INSERT INTO `llx_expedition` VALUES (1,'2016-01-22 17:33:03','SH1302-0001',1,NULL,1,NULL,NULL,NULL,'2011-08-08 03:05:34',1,'2013-02-17 18:22:51',1,NULL,'2011-08-09 00:00:00',NULL,NULL,'',1,NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,'merou',NULL,NULL,NULL,NULL,0,NULL,NULL),(2,'2017-02-15 23:11:35','(PROV2)',1,NULL,4,NULL,NULL,NULL,'2017-02-16 03:11:35',12,NULL,NULL,NULL,NULL,NULL,1,'',0,NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,'merou',0,'',NULL,NULL,0,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_expedition` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expedition_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expedition_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expedition_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_expedition_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expedition_extrafields`
    +--
    +
    +LOCK TABLES `llx_expedition_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_expedition_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_expedition_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expedition_methode`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expedition_methode`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expedition_methode` (
    +  `rowid` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `code` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `libelle` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `active` tinyint(4) DEFAULT '0',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expedition_methode`
    +--
    +
    +LOCK TABLES `llx_expedition_methode` WRITE;
    +/*!40000 ALTER TABLE `llx_expedition_methode` DISABLE KEYS */;
    +INSERT INTO `llx_expedition_methode` VALUES (1,'2010-07-08 11:18:00','CATCH','Catch','Catch by client',1),(2,'2010-07-08 11:18:00','TRANS','Transporter','Generic transporter',1),(3,'2010-07-08 11:18:01','COLSUI','Colissimo Suivi','Colissimo Suivi',0);
    +/*!40000 ALTER TABLE `llx_expedition_methode` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expeditiondet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expeditiondet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expeditiondet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_expedition` int(11) NOT NULL,
    +  `fk_origin_line` int(11) DEFAULT NULL,
    +  `fk_entrepot` int(11) DEFAULT NULL,
    +  `qty` double DEFAULT NULL,
    +  `rang` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_expeditiondet_fk_expedition` (`fk_expedition`),
    +  CONSTRAINT `fk_expeditiondet_fk_expedition` FOREIGN KEY (`fk_expedition`) REFERENCES `llx_expedition` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expeditiondet`
    +--
    +
    +LOCK TABLES `llx_expeditiondet` WRITE;
    +/*!40000 ALTER TABLE `llx_expeditiondet` DISABLE KEYS */;
    +INSERT INTO `llx_expeditiondet` VALUES (1,1,10,3,1,0),(2,2,226,19,2,0);
    +/*!40000 ALTER TABLE `llx_expeditiondet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expeditiondet_batch`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expeditiondet_batch`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expeditiondet_batch` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_expeditiondet` int(11) NOT NULL,
    +  `eatby` date DEFAULT NULL,
    +  `sellby` date DEFAULT NULL,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty` double NOT NULL DEFAULT '0',
    +  `fk_origin_stock` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_fk_expeditiondet` (`fk_expeditiondet`),
    +  CONSTRAINT `fk_expeditiondet_batch_fk_expeditiondet` FOREIGN KEY (`fk_expeditiondet`) REFERENCES `llx_expeditiondet` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expeditiondet_batch`
    +--
    +
    +LOCK TABLES `llx_expeditiondet_batch` WRITE;
    +/*!40000 ALTER TABLE `llx_expeditiondet_batch` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_expeditiondet_batch` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expeditiondet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expeditiondet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expeditiondet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_expeditiondet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expeditiondet_extrafields`
    +--
    +
    +LOCK TABLES `llx_expeditiondet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_expeditiondet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_expeditiondet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expensereport`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expensereport`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expensereport` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_number_int` int(11) DEFAULT NULL,
    +  `ref_ext` int(11) DEFAULT NULL,
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `date_debut` date NOT NULL,
    +  `date_fin` date NOT NULL,
    +  `date_create` datetime NOT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_approve` datetime DEFAULT NULL,
    +  `date_refuse` datetime DEFAULT NULL,
    +  `date_cancel` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_author` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_validator` int(11) DEFAULT NULL,
    +  `fk_user_approve` int(11) DEFAULT NULL,
    +  `fk_user_refuse` int(11) DEFAULT NULL,
    +  `fk_user_cancel` int(11) DEFAULT NULL,
    +  `fk_statut` int(11) NOT NULL,
    +  `fk_c_paiement` int(11) DEFAULT NULL,
    +  `paid` smallint(6) NOT NULL DEFAULT '0',
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `detail_refuse` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `detail_cancel` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `integration_compta` int(11) DEFAULT NULL,
    +  `fk_bank_account` int(11) DEFAULT NULL,
    +  `model_pdf` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_expensereport_uk_ref` (`ref`,`entity`),
    +  KEY `idx_expensereport_date_debut` (`date_debut`),
    +  KEY `idx_expensereport_date_fin` (`date_fin`),
    +  KEY `idx_expensereport_fk_statut` (`fk_statut`),
    +  KEY `idx_expensereport_fk_user_author` (`fk_user_author`),
    +  KEY `idx_expensereport_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_expensereport_fk_user_approve` (`fk_user_approve`),
    +  KEY `idx_expensereport_fk_refuse` (`fk_user_approve`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expensereport`
    +--
    +
    +LOCK TABLES `llx_expensereport` WRITE;
    +/*!40000 ALTER TABLE `llx_expensereport` DISABLE KEYS */;
    +INSERT INTO `llx_expensereport` VALUES (1,'ADMIN-ER00002-150101',1,2,NULL,8.33000000,1.67000000,0.00000000,0.00000000,10.00000000,'2015-01-01','2015-01-03','2016-01-22 19:03:37','2016-01-22 19:06:50','2017-02-16 02:12:40',NULL,NULL,'2017-02-15 22:12:40',12,NULL,12,12,12,NULL,NULL,5,NULL,0,'Holidays',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(2,'(PROV2)',1,NULL,NULL,141.67000000,28.33000000,0.00000000,0.00000000,170.00000000,'2015-02-01','2015-02-28','2016-01-22 19:04:44','2015-02-28 00:00:00',NULL,NULL,NULL,'2018-03-16 10:00:54',12,12,NULL,12,NULL,NULL,NULL,0,NULL,0,'Work on projet X','','',NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL),(3,'(PROV3)',1,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,'2017-02-02','2017-02-02','2017-02-02 03:57:03','2017-02-02 00:00:00',NULL,NULL,NULL,'2018-03-16 10:00:54',19,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_expensereport` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expensereport_det`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expensereport_det`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expensereport_det` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_expensereport` int(11) NOT NULL,
    +  `docnumber` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_c_type_fees` int(11) NOT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `comments` text COLLATE utf8_unicode_ci NOT NULL,
    +  `product_type` int(11) DEFAULT '-1',
    +  `qty` double NOT NULL,
    +  `value_unit` double NOT NULL,
    +  `remise_percent` double DEFAULT NULL,
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `total_ht` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `total_tva` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `date` date NOT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `special_code` int(11) DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_facture` int(11) DEFAULT '0',
    +  `fk_code_ventilation` int(11) DEFAULT '0',
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `rule_warning_message` text COLLATE utf8_unicode_ci,
    +  `fk_c_exp_tax_cat` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expensereport_det`
    +--
    +
    +LOCK TABLES `llx_expensereport_det` WRITE;
    +/*!40000 ALTER TABLE `llx_expensereport_det` DISABLE KEYS */;
    +INSERT INTO `llx_expensereport_det` VALUES (1,1,NULL,3,1,'',-1,1,10,NULL,20.000,0.000,NULL,0.000,NULL,8.33000000,1.67000000,0.00000000,0.00000000,10.00000000,'2015-01-01',0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,0,'',NULL,NULL),(2,2,NULL,3,4,'',-1,1,20,NULL,20.000,0.000,NULL,0.000,NULL,16.67000000,3.33000000,0.00000000,0.00000000,20.00000000,'2015-01-07',0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,0,'',NULL,NULL),(3,2,NULL,2,5,'Train',-1,1,150,NULL,20.000,0.000,NULL,0.000,NULL,125.00000000,25.00000000,0.00000000,0.00000000,150.00000000,'2015-02-05',0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,0,'',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_expensereport_det` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expensereport_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expensereport_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expensereport_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_expensereport_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expensereport_extrafields`
    +--
    +
    +LOCK TABLES `llx_expensereport_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_expensereport_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_expensereport_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expensereport_ik`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expensereport_ik`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expensereport_ik` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_c_exp_tax_cat` int(11) NOT NULL DEFAULT '0',
    +  `fk_range` int(11) NOT NULL DEFAULT '0',
    +  `coef` double NOT NULL DEFAULT '0',
    +  `ikoffset` double NOT NULL DEFAULT '0',
    +  `active` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expensereport_ik`
    +--
    +
    +LOCK TABLES `llx_expensereport_ik` WRITE;
    +/*!40000 ALTER TABLE `llx_expensereport_ik` DISABLE KEYS */;
    +INSERT INTO `llx_expensereport_ik` VALUES (1,NULL,'2018-01-19 11:09:35',4,1,0.41,0,1),(2,NULL,'2018-01-19 11:09:35',4,2,0.244,824,1),(3,NULL,'2018-01-19 11:09:35',4,3,0.286,0,1),(4,NULL,'2018-01-19 11:09:35',5,4,0.493,0,1),(5,NULL,'2018-01-19 11:09:35',5,5,0.277,1082,1),(6,NULL,'2018-01-19 11:09:35',5,6,0.332,0,1),(7,NULL,'2018-01-19 11:09:35',6,7,0.543,0,1),(8,NULL,'2018-01-19 11:09:35',6,8,0.305,1180,1),(9,NULL,'2018-01-19 11:09:35',6,9,0.364,0,1),(10,NULL,'2018-01-19 11:09:35',7,10,0.568,0,1),(11,NULL,'2018-01-19 11:09:35',7,11,0.32,1244,1),(12,NULL,'2018-01-19 11:09:35',7,12,0.382,0,1),(13,NULL,'2018-01-19 11:09:35',8,13,0.595,0,1),(14,NULL,'2018-01-19 11:09:35',8,14,0.337,1288,1),(15,NULL,'2018-01-19 11:09:35',8,15,0.401,0,1);
    +/*!40000 ALTER TABLE `llx_expensereport_ik` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_expensereport_rules`
    +--
    +
    +DROP TABLE IF EXISTS `llx_expensereport_rules`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_expensereport_rules` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `dates` datetime NOT NULL,
    +  `datee` datetime NOT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `restrictive` tinyint(4) NOT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `fk_usergroup` int(11) DEFAULT NULL,
    +  `fk_c_type_fees` int(11) NOT NULL,
    +  `code_expense_rules_type` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `is_for_all` tinyint(4) DEFAULT '0',
    +  `entity` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_expensereport_rules`
    +--
    +
    +LOCK TABLES `llx_expensereport_rules` WRITE;
    +/*!40000 ALTER TABLE `llx_expensereport_rules` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_expensereport_rules` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_export_compta`
    +--
    +
    +DROP TABLE IF EXISTS `llx_export_compta`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_export_compta` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
    +  `date_export` datetime NOT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_export_compta`
    +--
    +
    +LOCK TABLES `llx_export_compta` WRITE;
    +/*!40000 ALTER TABLE `llx_export_compta` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_export_compta` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_export_model`
    +--
    +
    +DROP TABLE IF EXISTS `llx_export_model`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_export_model` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `type` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    +  `field` text COLLATE utf8_unicode_ci NOT NULL,
    +  `filter` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_export_model` (`label`,`type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_export_model`
    +--
    +
    +LOCK TABLES `llx_export_model` WRITE;
    +/*!40000 ALTER TABLE `llx_export_model` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_export_model` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `elementtype` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'member',
    +  `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `type` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `size` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pos` int(11) DEFAULT '0',
    +  `alwayseditable` int(11) DEFAULT '0',
    +  `param` text COLLATE utf8_unicode_ci,
    +  `fieldunique` int(11) DEFAULT '0',
    +  `fieldrequired` int(11) DEFAULT '0',
    +  `perms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `list` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `totalizable` tinyint(1) DEFAULT '0',
    +  `ishidden` int(11) DEFAULT '0',
    +  `fieldcomputed` text COLLATE utf8_unicode_ci,
    +  `fielddefault` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `langs` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `enabled` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  `help` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_extrafields_name` (`name`,`entity`,`elementtype`)
    +) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_extrafields`
    +--
    +
    +LOCK TABLES `llx_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_extrafields` DISABLE KEYS */;
    +INSERT INTO `llx_extrafields` VALUES (2,'adherent','zzz',1,'2018-01-19 11:17:49','zzz','varchar','255',0,0,NULL,0,0,NULL,'1',0,0,NULL,NULL,NULL,NULL,NULL,NULL,'1',NULL),(27,'projet','priority',1,'2018-01-19 11:17:49','Priority','select','',0,1,'a:1:{s:7:\"options\";a:5:{i:1;s:1:\"1\";i:2;s:1:\"2\";i:3;s:1:\"3\";i:4;s:1:\"4\";i:5;s:1:\"5\";}}',0,0,NULL,'1',0,0,NULL,NULL,NULL,NULL,NULL,NULL,'1',NULL);
    +/*!40000 ALTER TABLE `llx_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_factory`
    +--
    +
    +DROP TABLE IF EXISTS `llx_factory`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_factory` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) NOT NULL,
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `fk_entrepot` int(11) NOT NULL,
    +  `description` text,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `date_start_planned` datetime DEFAULT NULL,
    +  `date_start_made` datetime DEFAULT NULL,
    +  `date_end_planned` datetime DEFAULT NULL,
    +  `date_end_made` datetime DEFAULT NULL,
    +  `duration_planned` double DEFAULT NULL,
    +  `duration_made` double DEFAULT NULL,
    +  `qty_planned` double DEFAULT NULL,
    +  `qty_made` double DEFAULT NULL,
    +  `note_public` text,
    +  `note_private` text,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_close` int(11) DEFAULT NULL,
    +  `model_pdf` varchar(255) DEFAULT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_factory`
    +--
    +
    +LOCK TABLES `llx_factory` WRITE;
    +/*!40000 ALTER TABLE `llx_factory` DISABLE KEYS */;
    +INSERT INTO `llx_factory` VALUES (1,'OF1410-0001',27,1,'test','2014-10-14 20:08:55','2014-10-14 00:00:00','2014-10-14 23:59:59','2014-10-16 06:00:00','2014-10-16 00:00:00',NULL,NULL,2,2,NULL,NULL,1,NULL,NULL,NULL,2),(2,'OF1410-0002',26,1,'','2014-10-14 20:23:01','0000-00-00 00:00:00','2014-10-14 23:59:59','0000-00-00 00:00:00',NULL,NULL,NULL,1,1,NULL,NULL,1,NULL,NULL,'capucin',2);
    +/*!40000 ALTER TABLE `llx_factory` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_factory_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_factory_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_factory_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_factory_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_factory_extrafields`
    +--
    +
    +LOCK TABLES `llx_factory_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_factory_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_factory_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_factorydet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_factorydet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_factorydet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_factory` int(11) NOT NULL DEFAULT '0',
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `qty_unit` double DEFAULT NULL,
    +  `qty_planned` double DEFAULT NULL,
    +  `qty_used` double DEFAULT NULL,
    +  `qty_deleted` double DEFAULT NULL,
    +  `pmp` double(24,8) DEFAULT '0.00000000',
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `fk_mvtstockplanned` int(11) NOT NULL DEFAULT '0',
    +  `fk_mvtstockused` int(11) NOT NULL DEFAULT '0',
    +  `fk_mvtstockother` int(11) NOT NULL DEFAULT '0',
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_factorydet` (`fk_factory`,`fk_product`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_factorydet`
    +--
    +
    +LOCK TABLES `llx_factorydet` WRITE;
    +/*!40000 ALTER TABLE `llx_factorydet` DISABLE KEYS */;
    +INSERT INTO `llx_factorydet` VALUES (1,1,26,2,4,4,0,0.00000000,0.00000000,13,0,0,NULL),(2,2,25,3,3,3,0,0.00000000,0.00000000,15,0,0,NULL);
    +/*!40000 ALTER TABLE `llx_factorydet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `facnumber` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` smallint(6) NOT NULL DEFAULT '0',
    +  `ref_client` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `increment` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `datef` date DEFAULT NULL,
    +  `date_valid` date DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `paye` smallint(6) NOT NULL DEFAULT '0',
    +  `amount` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `remise_percent` double DEFAULT '0',
    +  `remise_absolue` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `close_code` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `close_note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `revenuestamp` double(24,8) DEFAULT '0.00000000',
    +  `total` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_facture_source` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_cond_reglement` int(11) NOT NULL DEFAULT '1',
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `date_lim_reglement` date DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `situation_cycle_ref` smallint(6) DEFAULT NULL,
    +  `situation_counter` smallint(6) DEFAULT NULL,
    +  `situation_final` smallint(6) DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_pointoftax` date DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_fac_rec_source` int(11) DEFAULT NULL,
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `module_source` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pos_source` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_facture_uk_facnumber` (`facnumber`,`entity`),
    +  KEY `idx_facture_fk_soc` (`fk_soc`),
    +  KEY `idx_facture_fk_user_author` (`fk_user_author`),
    +  KEY `idx_facture_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_facture_fk_facture_source` (`fk_facture_source`),
    +  KEY `idx_facture_fk_projet` (`fk_projet`),
    +  KEY `idx_facture_fk_account` (`fk_account`),
    +  KEY `idx_facture_fk_currency` (`fk_currency`),
    +  KEY `idx_facture_fk_statut` (`fk_statut`),
    +  CONSTRAINT `fk_facture_fk_facture_source` FOREIGN KEY (`fk_facture_source`) REFERENCES `llx_facture` (`rowid`),
    +  CONSTRAINT `fk_facture_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_facture_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_facture_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_facture_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=218 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture`
    +--
    +
    +LOCK TABLES `llx_facture` WRITE;
    +/*!40000 ALTER TABLE `llx_facture` DISABLE KEYS */;
    +INSERT INTO `llx_facture` VALUES (2,'FA1007-0002',1,NULL,NULL,0,NULL,NULL,2,'2010-07-10 18:20:13','2016-07-10',NULL,'2016-07-30 15:13:20',1,10.00000000,NULL,NULL,0,NULL,NULL,0.10000000,0.00000000,0.00000000,0.00000000,46.00000000,46.10000000,2,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2016-07-10',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(3,'FA1107-0006',1,NULL,NULL,0,NULL,NULL,10,'2011-07-18 20:33:35','2016-07-18',NULL,'2016-07-30 15:13:20',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,15.00000000,15.00000000,2,1,NULL,1,NULL,1,NULL,NULL,1,0,'2016-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(5,'FA1108-0003',1,NULL,NULL,0,NULL,NULL,7,'2011-08-01 03:34:11','2015-08-01',NULL,'2016-07-30 15:12:32',1,0.00000000,NULL,NULL,0,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,2,1,NULL,1,NULL,NULL,NULL,NULL,0,6,'2015-08-01',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(6,'FA1108-0004',1,NULL,NULL,0,NULL,NULL,7,'2011-08-06 20:33:53','2015-08-06',NULL,'2016-07-30 15:12:32',1,0.00000000,NULL,NULL,0,NULL,NULL,0.98000000,0.00000000,0.00000000,0.00000000,5.00000000,5.98000000,2,1,NULL,1,NULL,NULL,NULL,NULL,0,4,'2015-08-06','Cash\nReceived : 6 EUR\nRendu : 0.02 EUR\n\n--------------------------------------',NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(8,'FA1108-0005',1,NULL,NULL,3,NULL,NULL,2,'2011-08-08 02:41:44','2015-08-08',NULL,'2016-07-30 15:12:32',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(9,'FA1108-0007',1,NULL,NULL,3,NULL,NULL,10,'2011-08-08 02:55:14','2015-08-08',NULL,'2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,NULL,NULL,1.96000000,0.00000000,0.00000000,0.00000000,10.00000000,11.96000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-08-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(10,'AV1212-0001',1,NULL,NULL,2,NULL,NULL,10,'2012-12-08 17:45:20','2015-12-08','2015-12-08','2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,NULL,NULL,-0.63000000,0.00000000,0.00000000,0.00000000,-11.00000000,-11.63000000,1,1,NULL,1,3,NULL,NULL,NULL,0,0,'2015-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(12,'AV1212-0002',1,NULL,NULL,2,NULL,NULL,10,'2012-12-08 18:20:14','2015-12-08','2015-12-08','2016-07-30 15:12:32',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,-5.00000000,-5.00000000,2,1,NULL,1,3,NULL,NULL,NULL,0,0,'2015-12-08',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(13,'FA1212-0011',1,NULL,NULL,0,NULL,NULL,7,'2012-12-09 20:04:19','2015-12-09','2016-02-12','2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,NULL,NULL,2.74000000,0.00000000,0.00000000,0.00000000,14.00000000,16.74000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-12-09',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(32,'FA1212-0021',1,NULL,NULL,0,NULL,NULL,1,'2012-12-11 09:34:23','2015-12-11','2016-03-24','2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,NULL,NULL,90.00000000,0.00000000,0.00000000,0.60000000,520.00000000,610.60000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(33,'FA1212-0023',1,NULL,NULL,0,NULL,NULL,1,'2012-12-11 09:34:23','2015-12-11','2017-03-03','2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,'abandon',NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,3,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-12-11','This is a comment (private)','This is a comment (public)','crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(55,'FA1212-0009',1,NULL,NULL,0,NULL,NULL,1,'2012-12-11 09:35:51','2015-12-11','2015-12-12','2016-07-30 15:12:32',0,0.00000000,NULL,NULL,0,NULL,NULL,0.24000000,0.00000000,0.00000000,0.00000000,2.48000000,2.72000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2015-12-11','This is a comment (private)','This is a comment (public)','generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(148,'FS1301-0001',1,NULL,NULL,0,NULL,NULL,1,'2013-01-19 18:22:48','2016-01-19','2016-01-19','2016-07-30 15:13:20',0,0.00000000,NULL,NULL,0,NULL,NULL,0.63000000,0.00000000,0.00000000,0.00000000,5.00000000,5.63000000,1,1,NULL,1,NULL,NULL,NULL,NULL,0,1,'2016-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(149,'FA1601-0024',1,NULL,NULL,0,NULL,NULL,1,'2013-01-19 18:30:05','2016-01-19','2017-08-29','2018-03-16 09:59:31',0,0.00000000,NULL,NULL,0,NULL,NULL,1.80000000,0.90000000,0.90000000,0.00000000,20.00000000,23.60000000,1,1,NULL,12,NULL,NULL,NULL,NULL,0,0,'2016-01-19',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,20.00000000,1.80000000,23.60000000,NULL,'facture/FA1601-0024/FA1601-0024.pdf',NULL,NULL),(150,'FA6801-0010',1,NULL,NULL,0,NULL,NULL,1,'2013-01-19 18:31:10','2016-01-19','2016-01-19','2016-07-30 15:13:20',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,0,1,'2016-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(151,'FS1301-0002',1,NULL,NULL,0,NULL,NULL,1,'2013-01-19 18:31:58','2016-01-19','2016-01-19','2016-07-30 15:13:20',1,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,2,1,NULL,1,NULL,NULL,NULL,NULL,0,1,'2016-01-19',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(160,'FA1507-0015',1,NULL,NULL,0,NULL,NULL,12,'2013-03-06 16:47:48','2016-07-18','2014-03-06','2016-07-30 15:13:20',0,0.00000000,NULL,NULL,0,NULL,NULL,1.11000000,0.00000000,0.00000000,0.00000000,8.89000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2016-07-18',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(210,'FA1107-0019',1,NULL,NULL,0,NULL,NULL,10,'2013-03-20 14:30:11','2016-07-10','2018-03-20','2016-07-30 15:13:20',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,0,'2016-07-10',NULL,NULL,'generic_invoice_odt:/home/ldestailleur/git/dolibarr_3.8/documents/doctemplates/invoices/template_invoice.odt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(211,'FA1303-0020',1,NULL,NULL,0,NULL,NULL,19,'2013-03-22 09:40:10','2016-03-22','2017-03-02','2017-02-06 04:11:17',0,0.00000000,NULL,NULL,0,NULL,NULL,17.64000000,0.00000000,0.00000000,0.40000000,340.00000000,358.04000000,1,1,NULL,1,NULL,NULL,NULL,NULL,1,3,'2016-03-22',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(213,'AV1303-0003',1,NULL,NULL,2,NULL,NULL,1,'2014-03-03 19:22:03','2016-03-03','2017-03-03','2016-07-30 15:13:20',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,-1000.00000000,-1000.00000000,1,1,NULL,1,32,NULL,NULL,NULL,0,0,'2016-03-03',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(216,'(PROV216)',1,NULL,NULL,0,NULL,NULL,26,'2017-02-12 23:21:27','2017-02-12',NULL,'2017-02-12 19:21:27',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2017-02-12',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,'',NULL,0,'EUR',1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL,NULL),(217,'(PROV217)',1,NULL,NULL,0,NULL,NULL,1,'2017-08-31 13:26:17','2017-08-31',NULL,'2017-08-31 09:26:17',0,0.00000000,NULL,NULL,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,0,12,NULL,NULL,NULL,NULL,NULL,NULL,1,0,'2017-08-31',NULL,NULL,'crabe',NULL,NULL,NULL,NULL,0,0,'',NULL,1,'EUR',1.00000000,10.00000000,0.00000000,10.00000000,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_facture` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facture_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_extrafields`
    +--
    +
    +LOCK TABLES `llx_facture_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facture_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_fourn`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_fourn`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_fourn` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `ref_supplier` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_soc` int(11) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `datef` date DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `paye` smallint(6) NOT NULL DEFAULT '0',
    +  `amount` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `remise` double(24,8) DEFAULT '0.00000000',
    +  `close_code` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `close_note` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_facture_source` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_cond_reglement` int(11) DEFAULT NULL,
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `date_lim_reglement` date DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_pointoftax` date DEFAULT NULL,
    +  `date_valid` date DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_facture_fourn_ref` (`ref`,`entity`),
    +  UNIQUE KEY `uk_facture_fourn_ref_supplier` (`ref_supplier`,`fk_soc`,`entity`),
    +  KEY `idx_facture_fourn_date_lim_reglement` (`date_lim_reglement`),
    +  KEY `idx_facture_fourn_fk_soc` (`fk_soc`),
    +  KEY `idx_facture_fourn_fk_user_author` (`fk_user_author`),
    +  KEY `idx_facture_fourn_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_facture_fourn_fk_projet` (`fk_projet`),
    +  CONSTRAINT `fk_facture_fourn_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_facture_fourn_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_facture_fourn_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_facture_fourn_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_fourn`
    +--
    +
    +LOCK TABLES `llx_facture_fourn` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_fourn` DISABLE KEYS */;
    +INSERT INTO `llx_facture_fourn` VALUES (16,'SI1601-0001','FR70813',1,NULL,0,1,'2012-12-19 15:24:11','2003-04-11','2017-02-06 04:08:22','OVH FR70813',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,829.00000000,162.48000000,991.48000000,1,1,NULL,12,NULL,NULL,NULL,1,NULL,'2003-04-11','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(17,'SI1601-0002','FR81385',1,NULL,0,1,'2013-02-13 17:19:35','2003-06-04','2017-02-06 04:08:31','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,1,NULL,'2003-06-04','','','canelle',NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(18,'SI1601-0003','FR81385',1,NULL,0,2,'2013-02-13 17:20:25','2003-06-04','2017-02-06 04:08:35','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,1,NULL,'2003-06-04','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(19,'SI1601-0004','FR813852',1,NULL,0,2,'2013-03-16 17:59:02','2013-03-16','2017-02-06 04:08:38','OVH FR81385',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,26.00000000,5.10000000,31.10000000,0,1,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,'','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,NULL),(20,'SI1702-0001','INV-AE56ER08',1,NULL,0,13,'2017-02-01 19:00:31','2017-02-01','2017-02-01 15:05:28','',0,0.00000000,0.00000000,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,200.00000000,39.20000000,239.20000000,1,12,NULL,12,NULL,5,NULL,1,0,'2017-02-01','The customer has called us the 24th april. He agree us to not pay the remain of invoice due to default.<br />\r\nLet\'s see with our book keeper, if we must cancel invoice or ask the supplier a credit note...',NULL,'canelle',NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,39.20000000,239.20000000,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_facture_fourn` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_fourn_det`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_fourn_det`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_fourn_det` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_facture_fourn` int(11) NOT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `pu_ht` double(24,8) DEFAULT NULL,
    +  `pu_ttc` double(24,8) DEFAULT NULL,
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `total_ht` double(24,8) DEFAULT NULL,
    +  `tva` double(24,8) DEFAULT NULL,
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT NULL,
    +  `product_type` int(11) DEFAULT '0',
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `info_bits` int(11) NOT NULL DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_code_ventilation` int(11) NOT NULL DEFAULT '0',
    +  `special_code` int(11) DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facture_fourn_det_fk_facture` (`fk_facture_fourn`),
    +  KEY `fk_facture_fourn_det_fk_unit` (`fk_unit`),
    +  KEY `idx_facture_fourn_det_fk_code_ventilation` (`fk_code_ventilation`),
    +  KEY `idx_facture_fourn_det_fk_product` (`fk_product`),
    +  CONSTRAINT `fk_facture_fourn_det_fk_facture` FOREIGN KEY (`fk_facture_fourn`) REFERENCES `llx_facture_fourn` (`rowid`),
    +  CONSTRAINT `fk_facture_fourn_det_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_fourn_det`
    +--
    +
    +LOCK TABLES `llx_facture_fourn_det` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_fourn_det` DISABLE KEYS */;
    +INSERT INTO `llx_facture_fourn_det` VALUES (44,16,NULL,NULL,NULL,NULL,'<strong>ref :sd.loc.sp.512.6</strong><br>6 mois - Location de SuperPlan avec la connexion 512kbs<br>Du 11/04/2003 &agrave; 11/10/2003',414.00000000,495.14400000,1,0,19.600,'',0.000,'',0.000,'',414.00000000,81.14000000,0.00000000,0.00000000,495.14000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(45,16,NULL,NULL,NULL,NULL,'<strong>ref :sd.loc.sp.512.6</strong><br>6 mois - Location de SuperPlan avec la connexion 512kbs<br>Du 11/10/2003 &agrave; 11/04/2004',414.00000000,495.14400000,1,0,19.600,'',0.000,'',0.000,'',414.00000000,81.14000000,0.00000000,0.00000000,495.14000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(46,16,NULL,NULL,NULL,NULL,'<strong>ref :sd.installation.annuel</strong><br>Frais de mise en service d\'un serveur dédié pour un paiement annuel<br>',1.00000000,1.19600000,1,0,19.600,'',0.000,'',0.000,'',1.00000000,0.20000000,0.00000000,0.00000000,1.20000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(47,17,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.creation</strong><br>Création du compte backup ftp 250Mo.<br>',1.00000000,1.19600000,1,0,19.600,'',0.000,'',0.000,'',1.00000000,0.20000000,0.00000000,0.00000000,1.20000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(48,17,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.12</strong><br>Redevance pour un backup de 250Mo sur 12 mois<br>',25.00000000,29.90000000,1,0,19.600,'',0.000,'',0.000,'',25.00000000,4.90000000,0.00000000,0.00000000,29.90000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(49,18,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.creation</strong><br>Création du compte backup ftp 250Mo.<br>',1.00000000,1.19600000,1,0,19.600,'',0.000,'',0.000,'',1.00000000,0.20000000,0.00000000,0.00000000,1.20000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(50,18,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.12</strong><br>Redevance pour un backup de 250Mo sur 12 mois<br>',25.00000000,29.90000000,1,0,19.600,'',0.000,'',0.000,'',25.00000000,4.90000000,0.00000000,0.00000000,29.90000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(51,19,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.creation</strong><br>Création du compte backup ftp 250Mo.<br>',1.00000000,1.19600000,1,0,19.600,'',0.000,'0',0.000,'0',1.00000000,0.20000000,0.00000000,0.00000000,1.20000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(52,19,NULL,NULL,NULL,NULL,'<strong>ref :bk.full250.12</strong><br>Redevance pour un backup de 250Mo sur 12 mois<br>',25.00000000,29.90000000,1,0,19.600,'',0.000,'0',0.000,'0',25.00000000,4.90000000,0.00000000,0.00000000,29.90000000,0,NULL,NULL,0,NULL,0,0,0,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(53,20,NULL,NULL,NULL,NULL,'Chips',20.00000000,23.92000000,10,0,19.600,'',0.000,'0',0.000,'0',200.00000000,39.20000000,0.00000000,0.00000000,239.20000000,0,NULL,NULL,0,NULL,0,0,0,NULL,0,'EUR',20.00000000,200.00000000,39.20000000,239.20000000);
    +/*!40000 ALTER TABLE `llx_facture_fourn_det` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_fourn_det_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_fourn_det_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_fourn_det_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facture_fourn_det_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_fourn_det_extrafields`
    +--
    +
    +LOCK TABLES `llx_facture_fourn_det_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_fourn_det_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facture_fourn_det_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_fourn_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_fourn_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_fourn_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facture_fourn_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_fourn_extrafields`
    +--
    +
    +LOCK TABLES `llx_facture_fourn_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_fourn_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facture_fourn_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_rec`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_rec`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_rec` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `titre` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_soc` int(11) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `amount` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `remise` double DEFAULT '0',
    +  `remise_percent` double DEFAULT '0',
    +  `remise_absolue` double DEFAULT '0',
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `fk_cond_reglement` int(11) DEFAULT '0',
    +  `fk_mode_reglement` int(11) DEFAULT '0',
    +  `date_lim_reglement` date DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `modelpdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `last_gen` varchar(7) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `unit_frequency` varchar(2) COLLATE utf8_unicode_ci DEFAULT 'd',
    +  `date_when` datetime DEFAULT NULL,
    +  `date_last_gen` datetime DEFAULT NULL,
    +  `nb_gen_done` int(11) DEFAULT NULL,
    +  `nb_gen_max` int(11) DEFAULT NULL,
    +  `frequency` int(11) DEFAULT NULL,
    +  `usenewprice` int(11) DEFAULT '0',
    +  `revenuestamp` double(24,8) DEFAULT '0.00000000',
    +  `auto_validate` int(11) DEFAULT '0',
    +  `generate_pdf` int(11) DEFAULT '1',
    +  `fk_account` int(11) DEFAULT '0',
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `suspended` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_facture_rec_uk_titre` (`titre`,`entity`),
    +  KEY `idx_facture_rec_fk_soc` (`fk_soc`),
    +  KEY `idx_facture_rec_fk_user_author` (`fk_user_author`),
    +  KEY `idx_facture_rec_fk_projet` (`fk_projet`),
    +  CONSTRAINT `fk_facture_rec_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_facture_rec_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_facture_rec_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_rec`
    +--
    +
    +LOCK TABLES `llx_facture_rec` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_rec` DISABLE KEYS */;
    +INSERT INTO `llx_facture_rec` VALUES (1,'fsdfsfsfsf',1,10,'2017-02-07 03:47:00',0.00000000,0,0,0,0.00000000,0.00000000,0.00000000,10.00000000,10.00000000,12,NULL,1,0,NULL,NULL,NULL,NULL,NULL,'m',NULL,NULL,0,0,0,0,0.00000000,0,1,3,NULL,NULL,1.00000000,10.00000000,0.00000000,10.00000000,NULL,'2017-02-07 02:47:00','',0),(2,'fffff',1,10,'2017-02-07 03:47:58',0.00000000,0,0,0,0.00000000,0.00000000,0.00000000,5.00000000,5.00000000,12,6,1,2,NULL,NULL,NULL,NULL,NULL,'m',NULL,NULL,0,0,0,0,0.00000000,0,1,4,NULL,NULL,1.00000000,5.00000000,0.00000000,5.00000000,NULL,'2017-02-07 02:47:58','',0);
    +/*!40000 ALTER TABLE `llx_facture_rec` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facture_rec_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facture_rec_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facture_rec_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facture_rec_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facture_rec_extrafields`
    +--
    +
    +LOCK TABLES `llx_facture_rec_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facture_rec_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facture_rec_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facturedet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facturedet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facturedet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_facture` int(11) NOT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `fk_remise_except` int(11) DEFAULT NULL,
    +  `subprice` double(24,8) DEFAULT NULL,
    +  `price` double(24,8) DEFAULT NULL,
    +  `total_ht` double(24,8) DEFAULT NULL,
    +  `total_tva` double(24,8) DEFAULT NULL,
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT NULL,
    +  `product_type` int(11) DEFAULT '0',
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `fk_product_fournisseur_price` int(11) DEFAULT NULL,
    +  `buy_price_ht` double(24,8) DEFAULT '0.00000000',
    +  `fk_code_ventilation` int(11) NOT NULL DEFAULT '0',
    +  `special_code` int(10) unsigned DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `fk_contract_line` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `situation_percent` double DEFAULT NULL,
    +  `fk_prev_id` int(11) DEFAULT NULL,
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_fk_remise_except` (`fk_remise_except`,`fk_facture`),
    +  KEY `idx_facturedet_fk_facture` (`fk_facture`),
    +  KEY `idx_facturedet_fk_product` (`fk_product`),
    +  KEY `fk_facturedet_fk_unit` (`fk_unit`),
    +  KEY `idx_facturedet_fk_code_ventilation` (`fk_code_ventilation`),
    +  CONSTRAINT `fk_facturedet_fk_facture` FOREIGN KEY (`fk_facture`) REFERENCES `llx_facture` (`rowid`),
    +  CONSTRAINT `fk_facturedet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=1031 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facturedet`
    +--
    +
    +LOCK TABLES `llx_facturedet` WRITE;
    +/*!40000 ALTER TABLE `llx_facturedet` DISABLE KEYS */;
    +INSERT INTO `llx_facturedet` VALUES (3,2,NULL,3,NULL,'Service S1',0.000,'',0.000,'',0.000,'',1,10,4,NULL,40.00000000,36.00000000,36.00000000,0.00000000,0.00000000,0.00000000,36.00000000,1,'2010-07-10 00:00:00',NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(4,2,NULL,NULL,NULL,'Abonnement annuel assurance',1.000,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,10.00000000,0.10000000,0.00000000,0.00000000,10.10000000,0,'2010-07-10 00:00:00','2011-07-10 00:00:00',0,NULL,0.00000000,0,0,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(11,3,NULL,4,NULL,'afsdfsdfsdfsdf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(12,3,NULL,NULL,NULL,'dfdfd',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(13,5,NULL,4,NULL,'Decapsuleur',12.500,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,5.00000000,0.63000000,0.00000000,0.00000000,5.63000000,0,NULL,NULL,0,NULL,0.00000000,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(14,6,NULL,4,NULL,'Decapsuleur',19.600,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,5.00000000,0.98000000,0.00000000,0.00000000,5.98000000,0,NULL,NULL,0,NULL,0.00000000,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(21,8,NULL,NULL,NULL,'dddd',0.000,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(22,9,NULL,NULL,NULL,'ggg',19.600,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,10.00000000,1.96000000,0.00000000,0.00000000,11.96000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(23,10,NULL,4,NULL,'',12.500,'',0.000,'',0.000,'',1,0,0,NULL,-5.00000000,NULL,-5.00000000,-0.63000000,0.00000000,0.00000000,-5.63000000,0,NULL,NULL,0,NULL,12.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(24,10,NULL,1,NULL,'A beatifull pink dress\r\nlkm',0.000,'',0.000,'',0.000,'',1,0,0,NULL,-6.00000000,NULL,-6.00000000,0.00000000,0.00000000,0.00000000,-6.00000000,0,NULL,NULL,0,0,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(26,12,NULL,1,NULL,'A beatifull pink dress\r\nhfghf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,-5.00000000,NULL,-5.00000000,0.00000000,0.00000000,0.00000000,-5.00000000,0,NULL,NULL,0,0,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(27,13,NULL,NULL,NULL,'gdfgdf',19.600,'',0.000,'',0.000,'',1.4,0,0,NULL,10.00000000,NULL,14.00000000,2.74000000,0.00000000,0.00000000,16.74000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(137,33,NULL,NULL,NULL,'Desc',10.000,'',0.000,'',0.000,'',1,0,0,NULL,1.24000000,NULL,1.24000000,0.12000000,0.00000000,0.00000000,1.36000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(138,33,NULL,NULL,NULL,'Desc',10.000,'',0.000,'',0.000,'',1,0,0,NULL,1.24000000,NULL,1.24000000,0.12000000,0.00000000,0.00000000,1.36000000,0,NULL,NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(256,55,NULL,NULL,NULL,'Desc',10.000,'',0.000,'',0.000,'',1,0,0,NULL,1.24000000,NULL,1.24000000,0.12000000,0.00000000,0.00000000,1.36000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(257,55,NULL,NULL,NULL,'Desc',10.000,'',0.000,'',0.000,'',1,0,0,NULL,1.24000000,NULL,1.24000000,0.12000000,0.00000000,0.00000000,1.36000000,0,NULL,NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(753,13,NULL,2,NULL,'(Pays d\'origine: Albanie)',0.000,'',0.000,'',0.000,'',1,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,0,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(754,148,NULL,11,NULL,'hfghf',0.000,'',0.000,'',0.000,'',1,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(755,148,NULL,4,NULL,'Decapsuleur',12.500,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,NULL,5.00000000,0.63000000,0.00000000,0.00000000,5.63000000,0,NULL,NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(757,150,NULL,2,NULL,'Product P1',12.500,'',0.000,'',0.000,'',1,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(758,151,NULL,2,NULL,'Product P1',12.500,'',0.000,'',0.000,'',1,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(768,32,NULL,NULL,NULL,'mlml',18.000,'',0.000,'',0.000,'',1,0,0,NULL,100.00000000,NULL,100.00000000,18.00000000,0.00000000,0.00000000,118.00000000,0,NULL,NULL,0,NULL,46.00000000,0,0,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(769,32,NULL,NULL,NULL,'mlkml',18.000,'',0.000,'',0.000,'',1,0,0,NULL,400.00000000,NULL,400.00000000,72.00000000,0.00000000,0.00000000,472.00000000,0,NULL,NULL,0,NULL,300.00000000,0,0,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(772,160,NULL,NULL,NULL,'Adhésion/cotisation 2015',12.500,'',0.000,'',0.000,'',1,0,0,NULL,8.88889000,NULL,8.89000000,1.11000000,0.00000000,0.00000000,10.00000000,1,'2015-07-18 00:00:00','2016-07-17 00:00:00',0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(776,32,NULL,NULL,NULL,'fsdfsdfds',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(777,32,NULL,NULL,NULL,'fsdfsdfds',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(779,32,NULL,NULL,NULL,'fsdfds',0.000,'',0.000,'0',0.000,'0',0,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,9,NULL,NULL,0,0,0.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(780,32,NULL,NULL,NULL,'ffsdf',0.000,'',0.000,'0',0.000,'0',0,0,0,NULL,0.00000000,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,9,NULL,NULL,0,NULL,0.00000000,0,1790,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(1022,210,NULL,NULL,NULL,'Adhésion/cotisation 2011',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,1,'2011-07-10 00:00:00','2012-07-09 00:00:00',0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(1023,211,NULL,NULL,NULL,'Samsung Android x4',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,250.00000000,NULL,250.00000000,0.00000000,0.00000000,0.00000000,250.00000000,0,NULL,NULL,0,NULL,200.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(1024,211,NULL,1,NULL,'A beatifull pink dress\r\nSize XXL',19.600,'',0.000,'0',0.000,'0',1,10,0,NULL,100.00000000,NULL,90.00000000,17.64000000,0.00000000,0.00000000,107.64000000,0,NULL,NULL,0,NULL,90.00000000,0,0,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(1026,213,NULL,1,NULL,'A beatifull pink dress',0.000,'',0.000,'0',0.000,'0',10,0,0,NULL,-100.00000000,NULL,-1000.00000000,0.00000000,0.00000000,0.00000000,-1000.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(1028,149,NULL,NULL,NULL,'opoo',0.000,'CGST+SGST',9.000,'1',9.000,'1',1,0,0,NULL,10.00000000,NULL,10.00000000,0.00000000,0.90000000,0.90000000,11.80000000,0,NULL,NULL,0,NULL,0.00000000,0,0,2,NULL,NULL,100,NULL,NULL,12,12,0,'',10.00000000,10.00000000,0.00000000,11.80000000),(1029,149,NULL,NULL,NULL,'gdgd',18.000,'IGST',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,NULL,10.00000000,1.80000000,0.00000000,0.00000000,11.80000000,0,NULL,NULL,0,NULL,0.00000000,0,0,3,NULL,NULL,100,NULL,NULL,12,12,0,'',10.00000000,10.00000000,1.80000000,11.80000000),(1030,217,NULL,NULL,NULL,'gfdgdf',0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,NULL,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,0,0,NULL,NULL,100,NULL,NULL,12,12,1,'EUR',10.00000000,10.00000000,0.00000000,10.00000000);
    +/*!40000 ALTER TABLE `llx_facturedet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facturedet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facturedet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facturedet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facturedet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facturedet_extrafields`
    +--
    +
    +LOCK TABLES `llx_facturedet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facturedet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facturedet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facturedet_rec`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facturedet_rec`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facturedet_rec` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_facture` int(11) NOT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `product_type` int(11) DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `subprice` double(24,8) DEFAULT NULL,
    +  `price` double(24,8) DEFAULT NULL,
    +  `total_ht` double(24,8) DEFAULT NULL,
    +  `total_tva` double(24,8) DEFAULT NULL,
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `special_code` int(10) unsigned DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `fk_contract_line` int(11) DEFAULT NULL,
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `date_start_fill` int(11) DEFAULT '0',
    +  `date_end_fill` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_facturedet_rec_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_facturedet_rec_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facturedet_rec`
    +--
    +
    +LOCK TABLES `llx_facturedet_rec` WRITE;
    +/*!40000 ALTER TABLE `llx_facturedet_rec` DISABLE KEYS */;
    +INSERT INTO `llx_facturedet_rec` VALUES (1,1,NULL,NULL,0,NULL,'&ugrave;k&ugrave;',0.000,'',0.000,'0',0.000,'0',1,0,NULL,10.00000000,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,0),(3,2,NULL,NULL,0,NULL,'ddd',0.000,'',0.000,'0',0.000,'0',1,0,NULL,5.00000000,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,0,1,NULL,NULL,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0,0);
    +/*!40000 ALTER TABLE `llx_facturedet_rec` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_facturedet_rec_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_facturedet_rec_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_facturedet_rec_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_facturedet_rec_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_facturedet_rec_extrafields`
    +--
    +
    +LOCK TABLES `llx_facturedet_rec_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_facturedet_rec_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_facturedet_rec_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_fichinter`
    +--
    +
    +DROP TABLE IF EXISTS `llx_fichinter`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_fichinter` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_projet` int(11) DEFAULT '0',
    +  `fk_contrat` int(11) DEFAULT '0',
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `datei` date DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  `duree` double DEFAULT NULL,
    +  `dateo` date DEFAULT NULL,
    +  `datee` date DEFAULT NULL,
    +  `datet` date DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_fichinter_ref` (`ref`,`entity`),
    +  KEY `idx_fichinter_fk_soc` (`fk_soc`),
    +  CONSTRAINT `fk_fichinter_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_fichinter`
    +--
    +
    +LOCK TABLES `llx_fichinter` WRITE;
    +/*!40000 ALTER TABLE `llx_fichinter` DISABLE KEYS */;
    +INSERT INTO `llx_fichinter` VALUES (1,2,1,0,'FI1007-0001',1,'2016-01-22 17:39:37','2010-07-09 01:42:41','2016-01-22 18:39:37',NULL,1,NULL,12,1,10800,NULL,NULL,NULL,NULL,NULL,NULL,'soleil',NULL,NULL,NULL,NULL),(2,1,NULL,0,'FI1007-0002',1,'2012-12-08 13:11:07','2010-07-11 16:07:51',NULL,NULL,1,NULL,NULL,0,3600,NULL,NULL,NULL,'ferfrefeferf',NULL,NULL,'soleil',NULL,NULL,NULL,NULL),(3,2,NULL,0,'FI1511-0003',1,'2016-07-30 15:51:16','2015-11-18 15:57:34','2016-01-22 18:38:46',NULL,2,NULL,12,1,36000,NULL,NULL,NULL,NULL,NULL,NULL,'soleil',NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_fichinter` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_fichinter_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_fichinter_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_fichinter_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_ficheinter_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_fichinter_extrafields`
    +--
    +
    +LOCK TABLES `llx_fichinter_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_fichinter_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_fichinter_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_fichinterdet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_fichinterdet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_fichinterdet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_fichinter` int(11) DEFAULT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `date` datetime DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `duree` int(11) DEFAULT NULL,
    +  `rang` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_fichinterdet_fk_fichinter` (`fk_fichinter`),
    +  CONSTRAINT `fk_fichinterdet_fk_fichinter` FOREIGN KEY (`fk_fichinter`) REFERENCES `llx_fichinter` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_fichinterdet`
    +--
    +
    +LOCK TABLES `llx_fichinterdet` WRITE;
    +/*!40000 ALTER TABLE `llx_fichinterdet` DISABLE KEYS */;
    +INSERT INTO `llx_fichinterdet` VALUES (1,1,NULL,'2010-07-07 04:00:00','Intervention sur site',3600,0),(2,1,NULL,'2010-07-08 11:00:00','Other actions on client site.',7200,0),(3,2,NULL,'2010-07-11 05:00:00','Pres',3600,0),(5,3,NULL,'2015-11-18 09:00:00','Intervention on building windows 1',32400,0),(6,3,NULL,'2016-01-22 00:00:00','Intervention on building windows 2',3600,0);
    +/*!40000 ALTER TABLE `llx_fichinterdet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_fichinterdet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_fichinterdet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_fichinterdet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_ficheinterdet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_fichinterdet_extrafields`
    +--
    +
    +LOCK TABLES `llx_fichinterdet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_fichinterdet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_fichinterdet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_holiday`
    +--
    +
    +DROP TABLE IF EXISTS `llx_holiday`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_holiday` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL,
    +  `date_create` datetime NOT NULL,
    +  `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `date_debut` date NOT NULL,
    +  `date_fin` date NOT NULL,
    +  `halfday` int(11) DEFAULT '0',
    +  `statut` int(11) NOT NULL DEFAULT '1',
    +  `fk_validator` int(11) NOT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `date_refuse` datetime DEFAULT NULL,
    +  `fk_user_refuse` int(11) DEFAULT NULL,
    +  `date_cancel` datetime DEFAULT NULL,
    +  `fk_user_cancel` int(11) DEFAULT NULL,
    +  `detail_refuse` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_user_create` int(11) DEFAULT NULL,
    +  `fk_type` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_holiday_fk_user` (`fk_user`),
    +  KEY `idx_holiday_date_debut` (`date_debut`),
    +  KEY `idx_holiday_date_fin` (`date_fin`),
    +  KEY `idx_holiday_fk_user_create` (`fk_user_create`),
    +  KEY `idx_holiday_date_create` (`date_create`),
    +  KEY `idx_holiday_fk_validator` (`fk_validator`),
    +  KEY `idx_holiday_entity` (`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_holiday`
    +--
    +
    +LOCK TABLES `llx_holiday` WRITE;
    +/*!40000 ALTER TABLE `llx_holiday` DISABLE KEYS */;
    +INSERT INTO `llx_holiday` VALUES (1,1,'2013-02-17 19:06:35','gdf','2013-02-10','2013-02-11',0,3,1,'2013-02-17 19:06:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,'2018-11-23 11:57:26',1,'1',NULL,NULL,NULL,NULL),(2,12,'2016-01-22 19:10:01','','2016-01-04','2016-01-08',0,1,11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,5,'2018-11-23 11:57:26',1,'2',NULL,NULL,NULL,NULL),(3,13,'2016-01-22 19:10:29','','2016-01-11','2016-01-13',0,2,11,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,12,5,'2018-11-23 11:57:26',1,'3',NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_holiday` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_holiday_config`
    +--
    +
    +DROP TABLE IF EXISTS `llx_holiday_config`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_holiday_config` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `name` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `value` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `name` (`name`),
    +  UNIQUE KEY `idx_holiday_config` (`name`)
    +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_holiday_config`
    +--
    +
    +LOCK TABLES `llx_holiday_config` WRITE;
    +/*!40000 ALTER TABLE `llx_holiday_config` DISABLE KEYS */;
    +INSERT INTO `llx_holiday_config` VALUES (1,'userGroup','1'),(2,'lastUpdate','20170829181921'),(3,'nbUser',''),(4,'delayForRequest','31'),(5,'AlertValidatorDelay','0'),(6,'AlertValidatorSolde','0'),(7,'nbHolidayDeducted','1'),(8,'nbHolidayEveryMonth','2.08334');
    +/*!40000 ALTER TABLE `llx_holiday_config` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_holiday_logs`
    +--
    +
    +DROP TABLE IF EXISTS `llx_holiday_logs`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_holiday_logs` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `date_action` datetime NOT NULL,
    +  `fk_user_action` int(11) NOT NULL,
    +  `fk_user_update` int(11) NOT NULL,
    +  `type_action` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `prev_solde` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `new_solde` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_type` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=195 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_holiday_logs`
    +--
    +
    +LOCK TABLES `llx_holiday_logs` WRITE;
    +/*!40000 ALTER TABLE `llx_holiday_logs` DISABLE KEYS */;
    +INSERT INTO `llx_holiday_logs` VALUES (1,'2013-01-17 21:03:15',1,1,'Event : Mise à jour mensuelle','0.00','2.08',1),(2,'2013-01-17 21:03:15',1,2,'Event : Mise à jour mensuelle','0.00','2.08',1),(3,'2013-01-17 21:03:15',1,3,'Event : Mise à jour mensuelle','0.00','2.08',1),(4,'2013-02-01 09:53:26',1,1,'Event : Mise à jour mensuelle','2.08','4.16',1),(5,'2013-02-01 09:53:26',1,2,'Event : Mise à jour mensuelle','2.08','4.16',1),(6,'2013-02-01 09:53:26',1,3,'Event : Mise à jour mensuelle','2.08','4.16',1),(7,'2013-02-01 09:53:26',1,1,'Event : Mise à jour mensuelle','4.17','6.25',1),(8,'2013-02-01 09:53:26',1,2,'Event : Mise à jour mensuelle','4.17','6.25',1),(9,'2013-02-01 09:53:26',1,3,'Event : Mise à jour mensuelle','4.17','6.25',1),(10,'2013-02-01 09:53:26',1,4,'Event : Mise à jour mensuelle','0.00','2.08',1),(11,'2013-02-01 09:53:31',1,1,'Event : Mise à jour mensuelle','6.25','8.33',1),(12,'2013-02-01 09:53:31',1,2,'Event : Mise à jour mensuelle','6.25','8.33',1),(13,'2013-02-01 09:53:31',1,3,'Event : Mise à jour mensuelle','6.25','8.33',1),(14,'2013-02-01 09:53:31',1,4,'Event : Mise à jour mensuelle','2.08','4.16',1),(15,'2013-02-01 09:53:31',1,1,'Event : Mise à jour mensuelle','8.33','10.41',1),(16,'2013-02-01 09:53:31',1,2,'Event : Mise à jour mensuelle','8.33','10.41',1),(17,'2013-02-01 09:53:31',1,3,'Event : Mise à jour mensuelle','8.33','10.41',1),(18,'2013-02-01 09:53:31',1,4,'Event : Mise à jour mensuelle','4.17','6.25',1),(19,'2013-02-01 09:53:33',1,1,'Event : Mise à jour mensuelle','10.42','12.50',1),(20,'2013-02-01 09:53:33',1,2,'Event : Mise à jour mensuelle','10.42','12.50',1),(21,'2013-02-01 09:53:33',1,3,'Event : Mise à jour mensuelle','10.42','12.50',1),(22,'2013-02-01 09:53:33',1,4,'Event : Mise à jour mensuelle','6.25','8.33',1),(23,'2013-02-01 09:53:34',1,1,'Event : Mise à jour mensuelle','12.50','14.58',1),(24,'2013-02-01 09:53:34',1,2,'Event : Mise à jour mensuelle','12.50','14.58',1),(25,'2013-02-01 09:53:34',1,3,'Event : Mise à jour mensuelle','12.50','14.58',1),(26,'2013-02-01 09:53:34',1,4,'Event : Mise à jour mensuelle','8.33','10.41',1),(27,'2013-02-01 09:53:34',1,1,'Event : Mise à jour mensuelle','14.58','16.66',1),(28,'2013-02-01 09:53:34',1,2,'Event : Mise à jour mensuelle','14.58','16.66',1),(29,'2013-02-01 09:53:34',1,3,'Event : Mise à jour mensuelle','14.58','16.66',1),(30,'2013-02-01 09:53:34',1,4,'Event : Mise à jour mensuelle','10.42','12.50',1),(31,'2013-02-01 09:53:36',1,1,'Event : Mise à jour mensuelle','16.67','18.75',1),(32,'2013-02-01 09:53:36',1,2,'Event : Mise à jour mensuelle','16.67','18.75',1),(33,'2013-02-01 09:53:36',1,3,'Event : Mise à jour mensuelle','16.67','18.75',1),(34,'2013-02-01 09:53:36',1,4,'Event : Mise à jour mensuelle','12.50','14.58',1),(35,'2013-02-01 09:53:36',1,1,'Event : Mise à jour mensuelle','18.75','20.83',1),(36,'2013-02-01 09:53:36',1,2,'Event : Mise à jour mensuelle','18.75','20.83',1),(37,'2013-02-01 09:53:36',1,3,'Event : Mise à jour mensuelle','18.75','20.83',1),(38,'2013-02-01 09:53:36',1,4,'Event : Mise à jour mensuelle','14.58','16.66',1),(39,'2013-02-01 09:53:37',1,1,'Event : Mise à jour mensuelle','20.83','22.91',1),(40,'2013-02-01 09:53:37',1,2,'Event : Mise à jour mensuelle','20.83','22.91',1),(41,'2013-02-01 09:53:37',1,3,'Event : Mise à jour mensuelle','20.83','22.91',1),(42,'2013-02-01 09:53:37',1,4,'Event : Mise à jour mensuelle','16.67','18.75',1),(43,'2013-02-01 09:53:37',1,1,'Event : Mise à jour mensuelle','22.92','25.00',1),(44,'2013-02-01 09:53:37',1,2,'Event : Mise à jour mensuelle','22.92','25.00',1),(45,'2013-02-01 09:53:37',1,3,'Event : Mise à jour mensuelle','22.92','25.00',1),(46,'2013-02-01 09:53:37',1,4,'Event : Mise à jour mensuelle','18.75','20.83',1),(47,'2013-02-01 09:53:44',1,1,'Event : Mise à jour mensuelle','25.00','27.08',1),(48,'2013-02-01 09:53:44',1,2,'Event : Mise à jour mensuelle','25.00','27.08',1),(49,'2013-02-01 09:53:44',1,3,'Event : Mise à jour mensuelle','25.00','27.08',1),(50,'2013-02-01 09:53:44',1,4,'Event : Mise à jour mensuelle','20.83','22.91',1),(51,'2013-02-01 09:53:47',1,1,'Event : Mise à jour mensuelle','27.08','29.16',1),(52,'2013-02-01 09:53:47',1,2,'Event : Mise à jour mensuelle','27.08','29.16',1),(53,'2013-02-01 09:53:47',1,3,'Event : Mise à jour mensuelle','27.08','29.16',1),(54,'2013-02-01 09:53:47',1,4,'Event : Mise à jour mensuelle','22.92','25.00',1),(55,'2013-02-01 09:53:47',1,1,'Event : Mise à jour mensuelle','29.17','31.25',1),(56,'2013-02-01 09:53:47',1,2,'Event : Mise à jour mensuelle','29.17','31.25',1),(57,'2013-02-01 09:53:47',1,3,'Event : Mise à jour mensuelle','29.17','31.25',1),(58,'2013-02-01 09:53:47',1,4,'Event : Mise à jour mensuelle','25.00','27.08',1),(59,'2013-02-01 09:53:49',1,1,'Event : Mise à jour mensuelle','31.25','33.33',1),(60,'2013-02-01 09:53:49',1,2,'Event : Mise à jour mensuelle','31.25','33.33',1),(61,'2013-02-01 09:53:49',1,3,'Event : Mise à jour mensuelle','31.25','33.33',1),(62,'2013-02-01 09:53:49',1,4,'Event : Mise à jour mensuelle','27.08','29.16',1),(63,'2013-02-01 09:53:52',1,1,'Event : Mise à jour mensuelle','33.33','35.41',1),(64,'2013-02-01 09:53:52',1,2,'Event : Mise à jour mensuelle','33.33','35.41',1),(65,'2013-02-01 09:53:52',1,3,'Event : Mise à jour mensuelle','33.33','35.41',1),(66,'2013-02-01 09:53:52',1,4,'Event : Mise à jour mensuelle','29.17','31.25',1),(67,'2013-02-01 09:53:52',1,1,'Event : Mise à jour mensuelle','35.42','37.50',1),(68,'2013-02-01 09:53:52',1,2,'Event : Mise à jour mensuelle','35.42','37.50',1),(69,'2013-02-01 09:53:52',1,3,'Event : Mise à jour mensuelle','35.42','37.50',1),(70,'2013-02-01 09:53:52',1,4,'Event : Mise à jour mensuelle','31.25','33.33',1),(71,'2013-02-01 09:53:53',1,1,'Event : Mise à jour mensuelle','37.50','39.58',1),(72,'2013-02-01 09:53:53',1,2,'Event : Mise à jour mensuelle','37.50','39.58',1),(73,'2013-02-01 09:53:53',1,3,'Event : Mise à jour mensuelle','37.50','39.58',1),(74,'2013-02-01 09:53:53',1,4,'Event : Mise à jour mensuelle','33.33','35.41',1),(75,'2013-02-01 09:53:54',1,1,'Event : Mise à jour mensuelle','39.58','41.66',1),(76,'2013-02-01 09:53:54',1,2,'Event : Mise à jour mensuelle','39.58','41.66',1),(77,'2013-02-01 09:53:54',1,3,'Event : Mise à jour mensuelle','39.58','41.66',1),(78,'2013-02-01 09:53:54',1,4,'Event : Mise à jour mensuelle','35.42','37.50',1),(79,'2013-02-01 09:53:54',1,1,'Event : Mise à jour mensuelle','41.67','43.75',1),(80,'2013-02-01 09:53:54',1,2,'Event : Mise à jour mensuelle','41.67','43.75',1),(81,'2013-02-01 09:53:54',1,3,'Event : Mise à jour mensuelle','41.67','43.75',1),(82,'2013-02-01 09:53:54',1,4,'Event : Mise à jour mensuelle','37.50','39.58',1),(83,'2013-02-01 09:55:49',1,1,'Event : Mise à jour mensuelle','43.75','45.83',1),(84,'2013-02-01 09:55:49',1,2,'Event : Mise à jour mensuelle','43.75','45.83',1),(85,'2013-02-01 09:55:49',1,3,'Event : Mise à jour mensuelle','43.75','45.83',1),(86,'2013-02-01 09:55:49',1,4,'Event : Mise à jour mensuelle','39.58','41.66',1),(87,'2013-02-01 09:55:56',1,1,'Event : Mise à jour mensuelle','45.83','47.91',1),(88,'2013-02-01 09:55:56',1,2,'Event : Mise à jour mensuelle','45.83','47.91',1),(89,'2013-02-01 09:55:56',1,3,'Event : Mise à jour mensuelle','45.83','47.91',1),(90,'2013-02-01 09:55:56',1,4,'Event : Mise à jour mensuelle','41.67','43.75',1),(91,'2013-02-01 09:56:01',1,1,'Event : Mise à jour mensuelle','47.92','50.00',1),(92,'2013-02-01 09:56:01',1,2,'Event : Mise à jour mensuelle','47.92','50.00',1),(93,'2013-02-01 09:56:01',1,3,'Event : Mise à jour mensuelle','47.92','50.00',1),(94,'2013-02-01 09:56:01',1,4,'Event : Mise à jour mensuelle','43.75','45.83',1),(95,'2013-02-01 09:56:01',1,1,'Event : Mise à jour mensuelle','50.00','52.08',1),(96,'2013-02-01 09:56:01',1,2,'Event : Mise à jour mensuelle','50.00','52.08',1),(97,'2013-02-01 09:56:01',1,3,'Event : Mise à jour mensuelle','50.00','52.08',1),(98,'2013-02-01 09:56:01',1,4,'Event : Mise à jour mensuelle','45.83','47.91',1),(99,'2013-02-01 09:56:03',1,1,'Event : Mise à jour mensuelle','52.08','54.16',1),(100,'2013-02-01 09:56:03',1,2,'Event : Mise à jour mensuelle','52.08','54.16',1),(101,'2013-02-01 09:56:03',1,3,'Event : Mise à jour mensuelle','52.08','54.16',1),(102,'2013-02-01 09:56:03',1,4,'Event : Mise à jour mensuelle','47.92','50.00',1),(103,'2013-02-01 09:56:03',1,1,'Event : Mise à jour mensuelle','54.17','56.25',1),(104,'2013-02-01 09:56:03',1,2,'Event : Mise à jour mensuelle','54.17','56.25',1),(105,'2013-02-01 09:56:03',1,3,'Event : Mise à jour mensuelle','54.17','56.25',1),(106,'2013-02-01 09:56:03',1,4,'Event : Mise à jour mensuelle','50.00','52.08',1),(107,'2013-02-01 09:56:05',1,1,'Event : Mise à jour mensuelle','56.25','58.33',1),(108,'2013-02-01 09:56:05',1,2,'Event : Mise à jour mensuelle','56.25','58.33',1),(109,'2013-02-01 09:56:05',1,3,'Event : Mise à jour mensuelle','56.25','58.33',1),(110,'2013-02-01 09:56:05',1,4,'Event : Mise à jour mensuelle','52.08','54.16',1),(111,'2013-02-01 09:56:06',1,1,'Event : Mise à jour mensuelle','58.33','60.41',1),(112,'2013-02-01 09:56:06',1,2,'Event : Mise à jour mensuelle','58.33','60.41',1),(113,'2013-02-01 09:56:06',1,3,'Event : Mise à jour mensuelle','58.33','60.41',1),(114,'2013-02-01 09:56:06',1,4,'Event : Mise à jour mensuelle','54.17','56.25',1),(115,'2013-02-01 09:56:06',1,1,'Event : Mise à jour mensuelle','60.42','62.50',1),(116,'2013-02-01 09:56:06',1,2,'Event : Mise à jour mensuelle','60.42','62.50',1),(117,'2013-02-01 09:56:06',1,3,'Event : Mise à jour mensuelle','60.42','62.50',1),(118,'2013-02-01 09:56:06',1,4,'Event : Mise à jour mensuelle','56.25','58.33',1),(119,'2013-02-01 09:56:07',1,1,'Event : Mise à jour mensuelle','62.50','64.58',1),(120,'2013-02-01 09:56:07',1,2,'Event : Mise à jour mensuelle','62.50','64.58',1),(121,'2013-02-01 09:56:07',1,3,'Event : Mise à jour mensuelle','62.50','64.58',1),(122,'2013-02-01 09:56:07',1,4,'Event : Mise à jour mensuelle','58.33','60.41',1),(123,'2013-02-01 09:56:07',1,1,'Event : Mise à jour mensuelle','64.58','66.66',1),(124,'2013-02-01 09:56:07',1,2,'Event : Mise à jour mensuelle','64.58','66.66',1),(125,'2013-02-01 09:56:07',1,3,'Event : Mise à jour mensuelle','64.58','66.66',1),(126,'2013-02-01 09:56:07',1,4,'Event : Mise à jour mensuelle','60.42','62.50',1),(127,'2013-02-01 09:56:50',1,1,'Event : Mise à jour mensuelle','66.67','68.75',1),(128,'2013-02-01 09:56:50',1,2,'Event : Mise à jour mensuelle','66.67','68.75',1),(129,'2013-02-01 09:56:50',1,3,'Event : Mise à jour mensuelle','66.67','68.75',1),(130,'2013-02-01 09:56:50',1,4,'Event : Mise à jour mensuelle','62.50','64.58',1),(131,'2013-02-01 09:56:50',1,1,'Event : Mise à jour mensuelle','68.75','70.83',1),(132,'2013-02-01 09:56:50',1,2,'Event : Mise à jour mensuelle','68.75','70.83',1),(133,'2013-02-01 09:56:50',1,3,'Event : Mise à jour mensuelle','68.75','70.83',1),(134,'2013-02-01 09:56:50',1,4,'Event : Mise à jour mensuelle','64.58','66.66',1),(135,'2013-02-17 18:49:21',1,1,'Event : Mise à jour mensuelle','70.83','72.91',1),(136,'2013-02-17 18:49:21',1,2,'Event : Mise à jour mensuelle','70.83','72.91',1),(137,'2013-02-17 18:49:21',1,3,'Event : Mise à jour mensuelle','70.83','72.91',1),(138,'2013-02-17 18:49:21',1,4,'Event : Mise à jour mensuelle','66.67','68.75',1),(139,'2013-02-17 19:06:57',1,1,'Event : Holiday','72.92','71.92',1),(140,'2013-03-01 23:12:31',1,1,'Event : Mise à jour mensuelle','71.92','74.00',1),(141,'2013-03-01 23:12:31',1,2,'Event : Mise à jour mensuelle','72.92','75.00',1),(142,'2013-03-01 23:12:31',1,3,'Event : Mise à jour mensuelle','72.92','75.00',1),(143,'2013-03-01 23:12:31',1,4,'Event : Mise à jour mensuelle','68.75','70.83',1),(145,'2015-07-19 15:44:57',1,1,'Monthly update','0','2.08334',4),(146,'2015-07-19 15:44:57',1,2,'Monthly update','0','2.08334',4),(147,'2015-07-19 15:44:57',1,3,'Monthly update','0','2.08334',4),(148,'2015-07-19 15:44:57',1,4,'Monthly update','0','2.08334',4),(151,'2015-07-19 15:44:57',1,1,'Monthly update','0','2.08334',5),(152,'2015-07-19 15:44:57',1,2,'Monthly update','0','2.08334',5),(153,'2015-07-19 15:44:57',1,3,'Monthly update','0','2.08334',5),(154,'2015-07-19 15:44:57',1,4,'Monthly update','0','2.08334',5),(157,'2015-07-19 15:44:57',1,1,'Monthly update','0','2.08334',9),(158,'2015-07-19 15:44:57',1,2,'Monthly update','0','2.08334',9),(159,'2015-07-19 15:44:57',1,3,'Monthly update','0','2.08334',9),(160,'2015-07-19 15:44:57',1,4,'Monthly update','0','2.08334',9),(163,'2016-01-22 18:59:06',12,1,'Monthly update','0','2.08334',4),(164,'2016-01-22 18:59:06',12,2,'Monthly update','0','2.08334',4),(165,'2016-01-22 18:59:06',12,3,'Monthly update','0','2.08334',4),(166,'2016-01-22 18:59:06',12,4,'Monthly update','0','2.08334',4),(168,'2016-01-22 18:59:06',12,1,'Monthly update','0','2.08334',5),(169,'2016-01-22 18:59:06',12,2,'Monthly update','0','2.08334',5),(170,'2016-01-22 18:59:06',12,3,'Monthly update','0','2.08334',5),(171,'2016-01-22 18:59:06',12,4,'Monthly update','0','2.08334',5),(173,'2016-01-22 18:59:06',12,1,'Monthly update','0','2.08334',9),(174,'2016-01-22 18:59:06',12,2,'Monthly update','0','2.08334',9),(175,'2016-01-22 18:59:06',12,3,'Monthly update','0','2.08334',9),(176,'2016-01-22 18:59:06',12,4,'Monthly update','0','2.08334',9),(178,'2016-01-22 18:59:38',12,18,'Manual update','0','10',5),(179,'2016-01-22 18:59:42',12,16,'Manual update','0','10',5),(180,'2016-01-22 18:59:45',12,12,'Manual update','0','10',5),(181,'2016-01-22 18:59:49',12,1,'Manual update','0','10',5),(182,'2016-01-22 18:59:52',12,2,'Manual update','0','10',5),(183,'2016-01-22 18:59:55',12,3,'Manual update','0','5',5),(184,'2016-07-30 19:45:49',12,1,'Manual update','0','25',3),(185,'2016-07-30 19:45:52',12,2,'Manual update','0','23',3),(186,'2016-07-30 19:45:54',12,3,'Manual update','0','10',3),(187,'2016-07-30 19:45:57',12,4,'Manual update','0','-4',3),(188,'2016-07-30 19:46:02',12,10,'Manual update','0','20',3),(189,'2016-07-30 19:46:04',12,11,'Manual update','0','30',3),(190,'2016-07-30 19:46:07',12,12,'Manual update','0','15',3),(191,'2016-07-30 19:46:09',12,13,'Manual update','0','11',3),(192,'2016-07-30 19:46:12',12,14,'Manual update','0','4',3),(193,'2016-07-30 19:46:14',12,16,'Manual update','0','5',3),(194,'2016-07-30 19:46:16',12,18,'Manual update','0','22',3);
    +/*!40000 ALTER TABLE `llx_holiday_logs` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_holiday_users`
    +--
    +
    +DROP TABLE IF EXISTS `llx_holiday_users`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_holiday_users` (
    +  `fk_user` int(11) NOT NULL,
    +  `nb_holiday` double NOT NULL DEFAULT '0',
    +  `fk_type` int(11) NOT NULL DEFAULT '1',
    +  UNIQUE KEY `uk_holiday_users` (`fk_user`,`fk_type`,`nb_holiday`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_holiday_users`
    +--
    +
    +LOCK TABLES `llx_holiday_users` WRITE;
    +/*!40000 ALTER TABLE `llx_holiday_users` DISABLE KEYS */;
    +INSERT INTO `llx_holiday_users` VALUES (0,0,1),(1,74.00334000000001,1),(1,25,3),(1,10,5),(2,75.00024000000003,1),(2,23,3),(2,10,5),(3,75.00024000000003,1),(3,10,3),(3,5,5),(4,70.83356000000002,1),(4,-4,3),(5,2.08334,1),(6,0,1),(10,20,3),(11,30,3),(12,15,3),(12,10,5),(13,11,3),(14,4,3),(16,5,3),(16,10,5),(18,22,3),(18,10,5);
    +/*!40000 ALTER TABLE `llx_holiday_users` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_import_model`
    +--
    +
    +DROP TABLE IF EXISTS `llx_import_model`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_import_model` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `label` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `type` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `field` text COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_import_model` (`label`,`type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_import_model`
    +--
    +
    +LOCK TABLES `llx_import_model` WRITE;
    +/*!40000 ALTER TABLE `llx_import_model` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_import_model` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_inventory`
    +--
    +
    +DROP TABLE IF EXISTS `llx_inventory`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_inventory` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_warehouse` int(11) DEFAULT NULL,
    +  `date_inventory` date DEFAULT NULL,
    +  `title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_validation` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_inventory_ref` (`ref`,`entity`),
    +  KEY `idx_inventory_rowid` (`rowid`),
    +  KEY `idx_inventory_ref` (`ref`),
    +  KEY `idx_inventory_entity` (`entity`),
    +  KEY `idx_inventory_fk_warehouse` (`fk_warehouse`),
    +  KEY `idx_inventory_status` (`status`),
    +  KEY `idx_inventory_import_key` (`import_key`),
    +  KEY `idx_inventory_tms` (`tms`),
    +  KEY `idx_inventory_datec` (`datec`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_inventory`
    +--
    +
    +LOCK TABLES `llx_inventory` WRITE;
    +/*!40000 ALTER TABLE `llx_inventory` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_inventory` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_inventory_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_inventory_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_inventory_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_inventory_extrafields`
    +--
    +
    +LOCK TABLES `llx_inventory_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_inventory_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_inventory_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_inventorydet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_inventorydet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_inventorydet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_inventory` int(11) DEFAULT '0',
    +  `fk_warehouse` int(11) DEFAULT '0',
    +  `fk_product` int(11) DEFAULT '0',
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty_view` double DEFAULT NULL,
    +  `qty_stock` double DEFAULT NULL,
    +  `qty_regulated` double DEFAULT NULL,
    +  `pmp` double DEFAULT '0',
    +  `pa` double DEFAULT '0',
    +  `new_pmp` double DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_inventorydet_tms` (`tms`),
    +  KEY `idx_inventorydet_datec` (`datec`),
    +  KEY `idx_inventorydet_fk_inventory` (`fk_inventory`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_inventorydet`
    +--
    +
    +LOCK TABLES `llx_inventorydet` WRITE;
    +/*!40000 ALTER TABLE `llx_inventorydet` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_inventorydet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_lead`
    +--
    +
    +DROP TABLE IF EXISTS `llx_lead`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_lead` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '0',
    +  `ref_ext` mediumtext COLLATE utf8_unicode_ci,
    +  `ref_int` mediumtext COLLATE utf8_unicode_ci,
    +  `fk_soc` int(11) NOT NULL,
    +  `fk_c_status` int(11) NOT NULL,
    +  `fk_c_type` int(11) NOT NULL,
    +  `date_closure` datetime NOT NULL,
    +  `amount_prosp` double(24,8) NOT NULL,
    +  `fk_user_resp` int(11) NOT NULL,
    +  `description` mediumtext COLLATE utf8_unicode_ci,
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  `note_private` mediumtext COLLATE utf8_unicode_ci,
    +  `fk_user_author` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_llx_lead_fk_c_status` (`fk_c_status`),
    +  KEY `idx_llx_lead_fk_c_type` (`fk_c_type`),
    +  KEY `idx_llx_lead_fk_soc` (`fk_soc`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_lead`
    +--
    +
    +LOCK TABLES `llx_lead` WRITE;
    +/*!40000 ALTER TABLE `llx_lead` DISABLE KEYS */;
    +INSERT INTO `llx_lead` VALUES (1,'LEA-1506-0001',1,NULL,'50',27,6,1,'2015-07-27 00:00:00',2000.00000000,1,NULL,NULL,NULL,1,'2015-06-27 13:44:33',1,'2015-06-27 21:53:05');
    +/*!40000 ALTER TABLE `llx_lead` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_lead_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_lead_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_lead_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idxlead_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_lead_extrafields`
    +--
    +
    +LOCK TABLES `llx_lead_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_lead_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_lead_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_links`
    +--
    +
    +DROP TABLE IF EXISTS `llx_links`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_links` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datea` datetime NOT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `objecttype` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `objectid` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_links` (`objectid`,`label`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_links`
    +--
    +
    +LOCK TABLES `llx_links` WRITE;
    +/*!40000 ALTER TABLE `llx_links` DISABLE KEYS */;
    +INSERT INTO `llx_links` VALUES (1,1,'2016-01-16 16:45:35','http://www.dolicloud.com','The DoliCoud service','societe',10),(2,1,'2016-01-16 17:14:35','https://www.dolistore.com/en/tools-documentation/12-SVG-file-for-85cm-x-200cm-rollup.html','Link to rollup file on dolistore.com','product',11),(3,1,'2016-01-22 17:40:23','http://www.nltechno.com','NLtechno portal','societe',10),(4,1,'2016-01-22 18:32:31','https://play.google.com/store/apps/details?id=com.nltechno.dolidroidpro','Link on Google Play','product',5);
    +/*!40000 ALTER TABLE `llx_links` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_livraison`
    +--
    +
    +DROP TABLE IF EXISTS `llx_livraison`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_livraison` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_customer` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `date_delivery` datetime DEFAULT NULL,
    +  `fk_address` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) DEFAULT '0',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_livraison_uk_ref` (`ref`,`entity`),
    +  KEY `idx_livraison_fk_soc` (`fk_soc`),
    +  KEY `idx_livraison_fk_user_author` (`fk_user_author`),
    +  KEY `idx_livraison_fk_user_valid` (`fk_user_valid`),
    +  CONSTRAINT `fk_livraison_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_livraison_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_livraison_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_livraison`
    +--
    +
    +LOCK TABLES `llx_livraison` WRITE;
    +/*!40000 ALTER TABLE `llx_livraison` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_livraison` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_livraison_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_livraison_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_livraison_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_livraison_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_livraison_extrafields`
    +--
    +
    +LOCK TABLES `llx_livraison_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_livraison_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_livraison_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_livraisondet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_livraisondet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_livraisondet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_livraison` int(11) DEFAULT NULL,
    +  `fk_origin_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `qty` double DEFAULT NULL,
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `rang` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_livraisondet_fk_expedition` (`fk_livraison`),
    +  CONSTRAINT `fk_livraisondet_fk_livraison` FOREIGN KEY (`fk_livraison`) REFERENCES `llx_livraison` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_livraisondet`
    +--
    +
    +LOCK TABLES `llx_livraisondet` WRITE;
    +/*!40000 ALTER TABLE `llx_livraisondet` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_livraisondet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_livraisondet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_livraisondet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_livraisondet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_livraisondet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_livraisondet_extrafields`
    +--
    +
    +LOCK TABLES `llx_livraisondet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_livraisondet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_livraisondet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_loan`
    +--
    +
    +DROP TABLE IF EXISTS `llx_loan`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_loan` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(80) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `capital` double(24,8) DEFAULT NULL,
    +  `datestart` date DEFAULT NULL,
    +  `dateend` date DEFAULT NULL,
    +  `nbterm` double DEFAULT NULL,
    +  `rate` double NOT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `capital_position` double(24,8) DEFAULT NULL,
    +  `date_position` date DEFAULT NULL,
    +  `paid` smallint(6) NOT NULL DEFAULT '0',
    +  `accountancy_account_capital` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_account_insurance` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_account_interest` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `active` tinyint(4) NOT NULL DEFAULT '1',
    +  `fk_projet` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_loan`
    +--
    +
    +LOCK TABLES `llx_loan` WRITE;
    +/*!40000 ALTER TABLE `llx_loan` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_loan` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_loan_schedule`
    +--
    +
    +DROP TABLE IF EXISTS `llx_loan_schedule`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_loan_schedule` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_loan` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount_capital` double(24,8) DEFAULT NULL,
    +  `amount_insurance` double(24,8) DEFAULT NULL,
    +  `amount_interest` double(24,8) DEFAULT NULL,
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_loan_schedule`
    +--
    +
    +LOCK TABLES `llx_loan_schedule` WRITE;
    +/*!40000 ALTER TABLE `llx_loan_schedule` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_loan_schedule` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_localtax`
    +--
    +
    +DROP TABLE IF EXISTS `llx_localtax`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_localtax` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `localtaxtype` tinyint(4) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` date DEFAULT NULL,
    +  `datev` date DEFAULT NULL,
    +  `amount` double NOT NULL DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_localtax`
    +--
    +
    +LOCK TABLES `llx_localtax` WRITE;
    +/*!40000 ALTER TABLE `llx_localtax` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_localtax` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_mailing`
    +--
    +
    +DROP TABLE IF EXISTS `llx_mailing`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_mailing` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `statut` smallint(6) DEFAULT '0',
    +  `titre` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `sujet` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `body` mediumtext COLLATE utf8_unicode_ci,
    +  `bgcolor` varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bgimage` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cible` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `nbemail` int(11) DEFAULT NULL,
    +  `email_from` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_replyto` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_errorsto` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tag` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creat` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_appro` datetime DEFAULT NULL,
    +  `date_envoi` datetime DEFAULT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_appro` int(11) DEFAULT NULL,
    +  `joined_file1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file3` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file4` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_mailing`
    +--
    +
    +LOCK TABLES `llx_mailing` WRITE;
    +/*!40000 ALTER TABLE `llx_mailing` DISABLE KEYS */;
    +INSERT INTO `llx_mailing` VALUES (3,2,'Commercial emailing January',1,'Buy my product','<div style=\"text-align: center; background: #220044\"><span style=\"color:#FFFFFF\"><strong><span style=\"font-size:18px\"><img alt=\"\" src=\"/dolibarr_4.0/htdocs/viewimage.php?modulepart=medias&file=image/myimagesforemailing/dolicloud_logo_white.png\" style=\"height:80px; width:260px\" /></span></strong></span><br />\r\n<a href=\"http://www.facebook.com\" target=\"_new\"><img alt=\"Seguici su facebook\" src=\"https://mosaico.io/templates/versafluid/img/social/facebook.png\" style=\"height:24px; padding:0px 5px 0px 5px; width:24px\" /></a><a href=\"http://www.twitter.com\" target=\"_new\"><img alt=\"Seguici su twitter\" src=\"https://mosaico.io/templates/versafluid/img/social/twitter.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a><a href=\"http://plus.google.com\" target=\"_new\"><img alt=\"Seguici su G+\" src=\"https://mosaico.io/templates/versafluid/img/social/google-plus.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a><a href=\"http://www.linkedin.com\" target=\"_new\"><img alt=\"Seguici su linkedin\" src=\"https://mosaico.io/templates/versafluid/img/social/linkedin.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a></div>\r\n\r\n<table style=\"background:#ffffff; border:0; margin:0; padding:5px; text-align:center; width:100%\">\r\n	<tbody>\r\n		<tr>\r\n			<td>\r\n			<table cellpadding=\"0\" cellspacing=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n				<tbody>\r\n					<tr>\r\n						<td>\r\n						<table border=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n							<tbody>\r\n								<tr>\r\n									<td>\r\n									<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n										<tbody>\r\n											<tr>\r\n												<td>\r\n												<p style=\"text-align:center\"><span style=\"font-size:16px\"><strong>DoliCloud</strong> is the service to provide you a web hosting solution of Dolibarr ERP CRM in one click. Just enter your email to create your instance and you are ready to work. Backup and full access is to data (SFTP, Mysql) are provided.</span></p>\r\n												</td>\r\n											</tr>\r\n										</tbody>\r\n									</table>\r\n									</td>\r\n								</tr>\r\n								<tr>\r\n									<td>\r\n									<table style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n										<tbody>\r\n											<tr>\r\n												<td>\r\n												<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"responsive-table\" style=\"width:100%\">\r\n													<tbody>\r\n														<tr>\r\n															<td style=\"text-align:center\"><a class=\"mobile-button\" href=\"https://www.on.dolicloud.com/signUp/index?origin=dolicloudhome&planCode=basic\" style=\"display: inline-block; font-size: 18px; font-family: Helvetica, Arial, sans-serif; font-weight: normal; color: #ffffff; text-decoration: none; background-color: #9C010F; padding-top: 15px; padding-bottom: 15px; padding-left: 25px; padding-right: 25px; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-bottom: 3px solid #5f0109;\" target=\"_new\">Test Dolibarr ERP CRM on Dolicloud →</a></td>\r\n														</tr>\r\n													</tbody>\r\n												</table>\r\n												</td>\r\n											</tr>\r\n										</tbody>\r\n									</table>\r\n									</td>\r\n								</tr>\r\n							</tbody>\r\n						</table>\r\n						</td>\r\n					</tr>\r\n				</tbody>\r\n			</table>\r\n			</td>\r\n		</tr>\r\n	</tbody>\r\n</table>\r\n\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"ko_footerBlock_2\" style=\"min-width:500px; width:100%\">\r\n	<tbody>\r\n		<tr>\r\n			<td>\r\n			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:100%\">\r\n				<tbody>\r\n					<tr>\r\n						<td>\r\n						<table align=\"center\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n							<tbody>\r\n								<tr>\r\n									<td style=\"text-align:center\"><span style=\"color:#3F3D33\">DoliCloud team</span><br />\r\n									<strong><a class=\"original-only\" href=\"%5Bprofile_link%5D\" style=\"color: #3F3D33; text-decoration: none;\" target=\"_new\">Unsubscribe</a><span style=\"color:#444444; font-family:arial,sans-serif; font-size:12px\">   |   </span><a href=\"%5Bshow_link%5D\" style=\"color: #3F3D33; text-decoration: none;\" target=\"_new\">View on web browser</a></strong></td>\r\n								</tr>\r\n							</tbody>\r\n						</table>\r\n						</td>\r\n					</tr>\r\n				</tbody>\r\n			</table>\r\n			</td>\r\n		</tr>\r\n	</tbody>\r\n</table>','','',NULL,26,'dolibarr@domain.com','','',NULL,'2010-07-11 13:15:59','2017-01-29 21:33:11',NULL,'2017-01-29 21:36:40',1,12,NULL,NULL,NULL,NULL,NULL,NULL),(4,0,'Commercial emailing February',1,'Buy my product','This is a new éEéé\"Mailing content<br />\r\n<br />\r\n<style type=\"text/css\">\r\n<!--\r\na:link {\r\n	color: #E2017A;\r\n}\r\n--></style>\r\n<span style=\"color:#800080;\"><strong>You can adit it with the WYSIWYG editor.</strong></span><br />\r\nIt is\r\n<ul>\r\n	<li>\r\n		Fast</li>\r\n	<li>\r\n		Easy to use</li>\r\n	<li>\r\n		Pretty</li>\r\n</ul>','','',NULL,NULL,'dolibarr@domain.com','','',NULL,'2011-07-18 20:44:33',NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(5,1,'Commercial emailing March',1,'Buy my product','<div style=\"background:#220044; text-align:center\"><span style=\"color:#ffffff\"><strong><span style=\"font-size:18px\"><img alt=\"\" src=\"/dolibarr_4.0/htdocs/viewimage.php?modulepart=medias&amp;file=image/myimagesforemailing/dolicloud_logo_white.png\" style=\"height:80px; width:260px\" /></span></strong></span><br />\r\n<a href=\"http://www.facebook.com\" target=\"_new\"><img alt=\"Seguici su facebook\" src=\"https://mosaico.io/templates/versafluid/img/social/facebook.png\" style=\"height:24px; padding:0px 5px 0px 5px; width:24px\" /></a><a href=\"http://www.twitter.com\" target=\"_new\"><img alt=\"Seguici su twitter\" src=\"https://mosaico.io/templates/versafluid/img/social/twitter.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a><a href=\"http://plus.google.com\" target=\"_new\"><img alt=\"Seguici su G+\" src=\"https://mosaico.io/templates/versafluid/img/social/google-plus.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a><a href=\"http://www.linkedin.com\" target=\"_new\"><img alt=\"Seguici su linkedin\" src=\"https://mosaico.io/templates/versafluid/img/social/linkedin.png\" style=\"height:24px; padding:0px 5px; width:24px\" /></a></div>\r\n\r\n<table style=\"background:#ffffff; border:0; margin:0; padding:5px; text-align:center; width:100%\">\r\n	<tbody>\r\n		<tr>\r\n			<td>\r\n			<table cellpadding=\"0\" cellspacing=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n				<tbody>\r\n					<tr>\r\n						<td>\r\n						<table border=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n							<tbody>\r\n								<tr>\r\n									<td>\r\n									<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n										<tbody>\r\n											<tr>\r\n												<td>\r\n												<p style=\"text-align:center\"><span style=\"font-size:16px\"><strong>DoliCloud</strong> is the service to provide you a web hosting solution __EMAIL__ of Dolibarr ERP CRM in one click. Just enter your email to create your instance and you are ready to work. Backup and full access is to data (SFTP, Mysql) are provided.</span></p>\r\n												</td>\r\n											</tr>\r\n										</tbody>\r\n									</table>\r\n									</td>\r\n								</tr>\r\n								<tr>\r\n									<td>\r\n									<table style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n										<tbody>\r\n											<tr>\r\n												<td>\r\n												<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"responsive-table\" style=\"width:100%\">\r\n													<tbody>\r\n														<tr>\r\n															<td style=\"text-align:center\"><a class=\"mobile-button\" href=\"https://www.on.dolicloud.com/signUp/index?origin=dolicloudhome&amp;planCode=basic\" style=\"display: inline-block; font-size: 18px; font-family: Helvetica, Arial, sans-serif; font-weight: normal; color: #ffffff; text-decoration: none; background-color: #9C010F; padding-top: 15px; padding-bottom: 15px; padding-left: 25px; padding-right: 25px; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-bottom: 3px solid #5f0109;\" target=\"_new\">Test Dolibarr ERP CRM on Dolicloud &rarr;</a></td>\r\n														</tr>\r\n													</tbody>\r\n												</table>\r\n												</td>\r\n											</tr>\r\n										</tbody>\r\n									</table>\r\n									</td>\r\n								</tr>\r\n							</tbody>\r\n						</table>\r\n						</td>\r\n					</tr>\r\n				</tbody>\r\n			</table>\r\n			</td>\r\n		</tr>\r\n	</tbody>\r\n</table>\r\n\r\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"ko_footerBlock_2\" style=\"min-width:500px; width:100%\">\r\n	<tbody>\r\n		<tr>\r\n			<td>\r\n			<table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:100%\">\r\n				<tbody>\r\n					<tr>\r\n						<td>\r\n						<table align=\"center\" style=\"background:#ffffff; border:0; margin:0; padding:5px; width:100%\">\r\n							<tbody>\r\n								<tr>\r\n									<td style=\"text-align:center\"><span style=\"color:#3f3d33\">DoliCloud team</span><br />\r\n									<strong><a class=\"original-only\" href=\"%5Bprofile_link%5D\" style=\"color: #3F3D33; text-decoration: none;\" target=\"_new\">Unsubscribe</a><span style=\"color:#444444; font-family:arial,sans-serif; font-size:12px\">&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;</span><a href=\"%5Bshow_link%5D\" style=\"color: #3F3D33; text-decoration: none;\" target=\"_new\">View on web browser</a></strong></td>\r\n								</tr>\r\n							</tbody>\r\n						</table>\r\n						</td>\r\n					</tr>\r\n				</tbody>\r\n			</table>\r\n			</td>\r\n		</tr>\r\n	</tbody>\r\n</table>','','',NULL,28,'dolibarr@domain.com','','',NULL,'2017-01-29 21:47:37','2017-01-29 21:54:55',NULL,NULL,12,12,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_mailing` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_mailing_cibles`
    +--
    +
    +DROP TABLE IF EXISTS `llx_mailing_cibles`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_mailing_cibles` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_mailing` int(11) NOT NULL,
    +  `fk_contact` int(11) NOT NULL,
    +  `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email` varchar(160) COLLATE utf8_unicode_ci NOT NULL,
    +  `other` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tag` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `source_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `source_id` int(11) DEFAULT NULL,
    +  `source_type` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_envoi` datetime DEFAULT NULL,
    +  `error_text` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_mailing_cibles` (`fk_mailing`,`email`),
    +  KEY `idx_mailing_cibles_email` (`email`)
    +) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_mailing_cibles`
    +--
    +
    +LOCK TABLES `llx_mailing_cibles` WRITE;
    +/*!40000 ALTER TABLE `llx_mailing_cibles` DISABLE KEYS */;
    +INSERT INTO `llx_mailing_cibles` VALUES (1,1,0,'Dupont','Alain','toto@aa.com','Date fin=10/07/2011',NULL,0,'0',NULL,NULL,NULL,NULL),(2,2,0,'Swiss customer supplier','','abademail@aa.com','',NULL,0,'0',NULL,NULL,NULL,NULL),(3,2,0,'Smith Vick','','vsmith@email.com','',NULL,0,'0',NULL,NULL,NULL,NULL),(4,3,0,'Swiss customer supplier','','abademail@aa.com','',NULL,1,'0',NULL,NULL,'2017-01-29 21:36:40',NULL),(5,3,0,'Smith Vick','','vsmith@email.com','',NULL,1,'0',NULL,NULL,'2017-01-29 21:36:40',NULL),(7,3,0,'Name 2','Firstname 2','emailtest2@example.com','','522b79aedf231576db576d246d82a0d7',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(8,3,0,'Name 3','Firstname 3','emailtest3@example.com','','f3e74e96a64068093af469b6826a75bf',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(9,3,0,'Name 4','Firstname 4','emailtest4@example.com','','fdacf67090698e0216f5c9a449e7404a',2,'',NULL,'file','2017-01-29 21:36:40',NULL),(10,3,0,'Name 5','Firstname 5','emailtest5@example.com','','38b4e4895bf5e7f9969c9ad9bbcd0dce',3,'',NULL,'file','2017-01-29 21:36:40',NULL),(11,3,0,'Name 1','Firstname 1','emailtest1@example.com','','b2543a771e2a10c694fc6437859e29ae',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(12,3,0,'Do','John','johndoe@example.com','','bdb70b6835ca053b113e7ac53c83efbe',-1,'',NULL,'file','2017-01-29 21:36:40','Invalid email'),(13,3,0,'Smith,Alan','','alan.smith@example.com','','326b9fb6d83f58b7ce5ca28a51022c83',2,'',NULL,'file','2017-01-29 21:36:40',NULL),(15,3,0,'Bowl','Kathy','kathy.bowl@example.com','','0848d51a04ad29adf28de7d6efe63091',2,'',NULL,'file','2017-01-29 21:36:40',NULL),(16,3,0,'Ducanseen','Herbert','herbert@example.com','','0585f4366c7b0c8bab592acb7256a409',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(17,3,0,'Djay','Djay','djay@example.com','','fad171648dcd8449d6e2f8246724f153',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(18,3,0,'','','alice.bigo@example.com','','86b03b13caec209e9a9d96979b7154b8',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(19,3,0,'','','bob.markus@example.com','','06df0b2b930718949a5afee280f04e6b',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(20,3,0,'Customer 1','','mycustomer1@example.com','','cac0a5a38fa9e67ed63d0753e08cd919',1,'',NULL,'file','2017-01-29 21:36:40',NULL),(21,3,0,'Customer 2','','mycustomer2@example.com','','19b631ee27e7036684675f2db35c54f0',0,'',NULL,'file',NULL,NULL),(22,3,0,'Customer 3','','mycustomer3@example.com','','bfd49e2db7c511e2d5bde30eda7db07a',0,'',NULL,'file',NULL,NULL),(23,3,0,'Customer 4','','mycustomer4@example.com','','de4640d0684c62dd83ffc27ff20d5938',0,'',NULL,'file',NULL,NULL),(24,3,0,'Customer 5','','mycustomer5@example.com','','2eb5786291928fd23ca0354ac261ec9b',0,'',NULL,'file',NULL,NULL),(25,3,0,'Customer 6','','mycustomer6@example.com','','c50c85b7f3370232c1d1335e17f953ca',0,'',NULL,'file',NULL,NULL),(26,3,0,'Prospect 1','','myprospect1@example.com','','553b1f7417f7c96290cdec5ca4c560f7',0,'',NULL,'file',NULL,NULL),(27,3,0,'Prospect 2','','myprospect2@example.com','','de45e526168546315ff4fedb54e63102',0,'',NULL,'file',NULL,NULL),(28,3,0,'Prospect 3','','myprospect3@example.com','','466d946e7c46881334f4abe427d382fa',0,'',NULL,'file',NULL,NULL),(29,3,0,'Prospect 4','','myprospect4@example.com','','619d1ec47318842971db7fa266b6d74a',0,'',NULL,'file',NULL,NULL),(30,3,0,'Prospect 5','','myprospect5@example.com','','e301713dcbf58d33ef1ae540dee58ad7',0,'',NULL,'file',NULL,NULL),(31,3,0,'Prospect 6','','myprospect6@example.com','','26fcbd0c641a535bfc14a80a867a61f2',0,'',NULL,'file',NULL,NULL),(32,5,0,'Swiss customer supplier','','abademail@aa.com','','0e7d20e3c9b1612a75eab5d12da84060',0,'0',NULL,'',NULL,NULL),(33,5,0,'Smith Vick','','vsmith@email.com','','cab14f12668ccb2c92843969819c6c6e',0,'0',NULL,'',NULL,NULL),(34,5,0,'Name 2','Firstname 2','emailtest2@example.com','','1b6adeceaac7e2b9c399c877f8b1a616',0,'',NULL,'file',NULL,NULL),(35,5,0,'Name 3','Firstname 3','emailtest3@example.com','','c9f6f80ba118c378aef4974e17b01a07',0,'',NULL,'file',NULL,NULL),(36,5,0,'Name 4','Firstname 4','emailtest4@example.com','','75a3051301db736a2bb7722de7b4ece1',0,'',NULL,'file',NULL,NULL),(37,5,0,'Name 5','Firstname 5','emailtest5@example.com','','a9e292e70ec11ed58718c9f5da58f870',0,'',NULL,'file',NULL,NULL),(38,5,0,'Name 1','Firstname 1','emailtest1@example.com','','0243e796981c9e82cc23d8a6a5a23570',0,'',NULL,'file',NULL,NULL),(39,5,0,'Do','John','johndoe@example.com','','7db6219748fbad348b1aa89f2014d529',0,'',NULL,'file',NULL,NULL),(40,5,0,'Smith,Alan','','alan.smith@example.com','','5006f91f3bd97918460b6dc3edf4cd7f',0,'',NULL,'file',NULL,NULL),(41,5,0,'Bowl','Kathy','kathy.bowl@example.com','','377ac5b241f2d5bf421a7162c60bf7b6',0,'',NULL,'file',NULL,NULL),(42,5,0,'Ducanseen','Herbert','herbert@example.com','','10e1b891a249ee8046f1686a0a44d773',0,'',NULL,'file',NULL,NULL),(43,5,0,'Djay','Djay','djay@example.com','','6cf76a2b74874caa6b8eced78f63bca1',0,'',NULL,'file',NULL,NULL),(44,5,0,'','','alice.bigo@example.com','','61651804afc02887a3934ab042285044',0,'',NULL,'file',NULL,NULL),(45,5,0,'','','bob.markus@example.com','','b6d3e934e4bc92d194b43041260564da',0,'',NULL,'file',NULL,NULL),(46,5,0,'Customer 1','','mycustomer1@example.com','','fa9ade908a5a420e7dc64e62d1d9eb65',0,'',NULL,'file',NULL,NULL),(47,5,0,'Customer 2','','mycustomer2@example.com','','5d502923487f0f4226ab9f5f71102857',0,'',NULL,'file',NULL,NULL),(48,5,0,'Customer 3','','mycustomer3@example.com','','0b7da54f9969554eee95684069173f23',0,'',NULL,'file',NULL,NULL),(49,5,0,'Customer 4','','mycustomer4@example.com','','b073cf47a6af4740c76620ab4442033c',0,'',NULL,'file',NULL,NULL),(50,5,0,'Customer 5','','mycustomer5@example.com','','468b7404027e91edf437c3980619c8f6',0,'',NULL,'file',NULL,NULL),(51,5,0,'Customer 6','','mycustomer6@example.com','','cb196086497f64cd23dd68aed2bf5cc8',0,'',NULL,'file',NULL,NULL),(52,5,0,'Prospect 1','','myprospect1@example.com','','9854ed6528267f30c8c22c24384b31ae',0,'',NULL,'file',NULL,NULL),(53,5,0,'Prospect 2','','myprospect2@example.com','','b37ed581bbc51b6d9a334e1626b5fe22',0,'',NULL,'file',NULL,NULL),(54,5,0,'Prospect 3','','myprospect3@example.com','','8bedd7821877a72841efae36691f7765',0,'',NULL,'file',NULL,NULL),(55,5,0,'Prospect 4','','myprospect4@example.com','','518353a5cfb1a628ada10874ac4e0098',0,'',NULL,'file',NULL,NULL),(56,5,0,'Prospect 5','','myprospect5@example.com','','de392a2999e262fec63c9de4a3fe7613',0,'',NULL,'file',NULL,NULL),(57,5,0,'Prospect 6','','myprospect6@example.com','','56256cc297c4870c514819cdb4e6b95c',0,'',NULL,'file',NULL,NULL),(58,5,0,'Prospect 7','','myprospect7@example.com','','d32512607d4e74d6f71d031538128721',0,'',NULL,'file',NULL,NULL),(59,5,0,'Prospect 8','','myprospect8@example.com','','427eeb75492ede5355996a8df998f9de',0,'',NULL,'file',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_mailing_cibles` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_menu`
    +--
    +
    +DROP TABLE IF EXISTS `llx_menu`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_menu` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `menu_handler` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `module` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` varchar(4) COLLATE utf8_unicode_ci NOT NULL,
    +  `mainmenu` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_menu` int(11) NOT NULL,
    +  `fk_leftmenu` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_mainmenu` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) NOT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `target` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `titre` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `langs` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `level` smallint(6) DEFAULT NULL,
    +  `leftmenu` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `perms` text COLLATE utf8_unicode_ci,
    +  `enabled` varchar(255) COLLATE utf8_unicode_ci DEFAULT '1',
    +  `usertype` int(11) NOT NULL DEFAULT '0',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_menu_uk_menu` (`menu_handler`,`fk_menu`,`position`,`url`,`entity`),
    +  KEY `idx_menu_menuhandler_type` (`menu_handler`,`type`)
    +) ENGINE=InnoDB AUTO_INCREMENT=166517 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_menu`
    +--
    +
    +LOCK TABLES `llx_menu` WRITE;
    +/*!40000 ALTER TABLE `llx_menu` DISABLE KEYS */;
    +INSERT INTO `llx_menu` VALUES (103094,'all',2,'agenda','top','agenda',0,NULL,NULL,100,'/comm/action/index.php','','Agenda','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103095,'all',2,'agenda','left','agenda',103094,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda','','Actions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103096,'all',2,'agenda','left','agenda',103095,NULL,NULL,101,'/comm/action/card.php?mainmenu=agenda&amp;leftmenu=agenda&amp;action=create','','NewAction','commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103097,'all',2,'agenda','left','agenda',103095,NULL,NULL,102,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda','','Calendar','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103098,'all',2,'agenda','left','agenda',103097,NULL,NULL,103,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103099,'all',2,'agenda','left','agenda',103097,NULL,NULL,104,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103100,'all',2,'agenda','left','agenda',103097,NULL,NULL,105,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103101,'all',2,'agenda','left','agenda',103097,NULL,NULL,106,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103102,'all',2,'agenda','left','agenda',103095,NULL,NULL,112,'/comm/action/listactions.php?mainmenu=agenda&amp;leftmenu=agenda','','List','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103103,'all',2,'agenda','left','agenda',103102,NULL,NULL,113,'/comm/action/listactions.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103104,'all',2,'agenda','left','agenda',103102,NULL,NULL,114,'/comm/action/listactions.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103105,'all',2,'agenda','left','agenda',103102,NULL,NULL,115,'/comm/action/listactions.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103106,'all',2,'agenda','left','agenda',103102,NULL,NULL,116,'/comm/action/listactions.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2013-03-13 15:29:19'),(103107,'all',2,'agenda','left','agenda',103095,NULL,NULL,120,'/comm/action/rapport/index.php?mainmenu=agenda&amp;leftmenu=agenda','','Reportings','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2013-03-13 15:29:19'),(103134,'all',2,'opensurvey','top','opensurvey',0,NULL,NULL,200,'/opensurvey/index.php','','Surveys','opensurvey',NULL,NULL,'$user->rights->opensurvey->survey->read','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(103135,'all',2,'opensurvey','left','opensurvey',-1,NULL,'opensurvey',200,'/opensurvey/index.php?mainmenu=opensurvey&leftmenu=opensurvey','','Survey','opensurvey@opensurvey',NULL,'opensurvey','','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(103136,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',210,'/opensurvey/public/index.php','_blank','NewSurvey','opensurvey@opensurvey',NULL,'opensurvey_new','','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(103137,'all',2,'opensurvey','left','opensurvey',-1,'opensurvey','opensurvey',220,'/opensurvey/list.php','','List','opensurvey@opensurvey',NULL,'opensurvey_list','','$conf->opensurvey->enabled',0,'2013-03-13 20:33:42'),(124179,'all',1,'cashdesk','top','cashdesk',0,NULL,NULL,100,'/cashdesk/index.php?user=__LOGIN__','pointofsale','CashDeskMenu','cashdesk',NULL,NULL,'$user->rights->cashdesk->use','$conf->cashdesk->enabled',0,'2015-11-15 22:38:33'),(124210,'all',1,'margins','left','accountancy',-1,NULL,'accountancy',100,'/margin/index.php','','Margins','margins',NULL,'margins','$user->rights->margins->liretous','$conf->margin->enabled',2,'2015-11-15 22:41:47'),(145086,'all',1,'supplier_proposal','left','commercial',-1,NULL,'commercial',300,'/supplier_proposal/index.php','','SupplierProposalsShort','supplier_proposal',NULL,'supplier_proposalsubmenu','$user->rights->supplier_proposal->lire','$conf->supplier_proposal->enabled',2,'2016-07-30 11:13:20'),(145087,'all',1,'supplier_proposal','left','commercial',-1,'supplier_proposalsubmenu','commercial',301,'/supplier_proposal/card.php?action=create&amp;leftmenu=supplier_proposals','','SupplierProposalNew','supplier_proposal',NULL,NULL,'$user->rights->supplier_proposal->creer','$conf->supplier_proposal->enabled',2,'2016-07-30 11:13:20'),(145088,'all',1,'supplier_proposal','left','commercial',-1,'supplier_proposalsubmenu','commercial',302,'/supplier_proposal/list.php?leftmenu=supplier_proposals','','List','supplier_proposal',NULL,NULL,'$user->rights->supplier_proposal->lire','$conf->supplier_proposal->enabled',2,'2016-07-30 11:13:20'),(145089,'all',1,'supplier_proposal','left','commercial',-1,'supplier_proposalsubmenu','commercial',303,'/comm/propal/stats/index.php?leftmenu=supplier_proposals&amp;mode=supplier','','Statistics','supplier_proposal',NULL,NULL,'$user->rights->supplier_proposal->lire','$conf->supplier_proposal->enabled',2,'2016-07-30 11:13:20'),(145090,'all',1,'resource','left','tools',-1,NULL,'tools',100,'/resource/list.php','','MenuResourceIndex','resource',NULL,'resource','$user->rights->resource->read','1',0,'2016-07-30 11:13:32'),(145091,'all',1,'resource','left','tools',-1,'resource','tools',101,'/resource/add.php','','MenuResourceAdd','resource',NULL,NULL,'$user->rights->resource->read','1',0,'2016-07-30 11:13:32'),(145092,'all',1,'resource','left','tools',-1,'resource','tools',102,'/resource/list.php','','List','resource',NULL,NULL,'$user->rights->resource->read','1',0,'2016-07-30 11:13:32'),(145127,'all',1,'printing','left','home',-1,'admintools','home',300,'/printing/index.php?mainmenu=home&leftmenu=admintools','','MenuDirectPrinting','printing',NULL,NULL,'$user->rights->printing->read','$conf->printing->enabled && $leftmenu==\'admintools\'',0,'2017-01-29 15:12:44'),(161088,'auguria',1,'','top','home',0,NULL,NULL,10,'/index.php?mainmenu=home&amp;leftmenu=','','Home','',-1,'','','1',2,'2017-08-30 15:14:30'),(161089,'auguria',1,'societe|fournisseur','top','companies',0,NULL,NULL,20,'/societe/index.php?mainmenu=companies&amp;leftmenu=','','ThirdParties','companies',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)',2,'2017-08-30 15:14:30'),(161090,'auguria',1,'product|service','top','products',0,NULL,NULL,30,'/product/index.php?mainmenu=products&amp;leftmenu=','','Products/Services','products',-1,'','$user->rights->produit->lire||$user->rights->service->lire','$conf->product->enabled || $conf->service->enabled',0,'2017-08-30 15:14:30'),(161092,'auguria',1,'propal|commande|fournisseur|contrat|ficheinter','top','commercial',0,NULL,NULL,40,'/comm/index.php?mainmenu=commercial&amp;leftmenu=','','Commercial','commercial',-1,'','$user->rights->societe->lire || $user->rights->societe->contact->lire','$conf->propal->enabled || $conf->commande->enabled || $conf->supplier_order->enabled || $conf->contrat->enabled || $conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(161093,'auguria',1,'comptabilite|accounting|facture|don|tax|salaries|loan','top','accountancy',0,NULL,NULL,50,'/compta/index.php?mainmenu=accountancy&amp;leftmenu=','','MenuFinancial','compta',-1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->plancompte->lire || $user->rights->facture->lire|| $user->rights->don->lire || $user->rights->tax->charges->lire || $user->rights->salaries->read || $user->rights->loan->read','$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->don->enabled  || $conf->tax->enabled || $conf->salaries->enabled || $conf->supplier_invoice->enabled || $conf->loan->enabled',2,'2017-08-30 15:14:30'),(161094,'auguria',1,'projet','top','project',0,NULL,NULL,70,'/projet/index.php?mainmenu=project&amp;leftmenu=','','Projects','projects',-1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(161095,'auguria',1,'mailing|export|import|opensurvey|resource','top','tools',0,NULL,NULL,90,'/core/tools.php?mainmenu=tools&amp;leftmenu=','','Tools','other',-1,'','$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run || $user->rights->opensurvey->read || $user->rights->resource->read','$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled || $conf->opensurvey->enabled || $conf->resource->enabled',2,'2017-08-30 15:14:30'),(161101,'auguria',1,'banque|prelevement','top','bank',0,NULL,NULL,60,'/compta/bank/index.php?mainmenu=bank&amp;leftmenu=bank','','MenuBankCash','banks',-1,'','$user->rights->banque->lire || $user->rights->prelevement->bons->lire','$conf->banque->enabled || $conf->prelevement->enabled',0,'2017-08-30 15:14:30'),(161102,'auguria',1,'hrm|holiday|deplacement|expensereport','top','hrm',0,NULL,NULL,80,'/hrm/index.php?mainmenu=hrm&amp;leftmenu=','','HRM','holiday',-1,'','$user->rights->hrm->employee->read || $user->rights->holiday->write || $user->rights->deplacement->lire || $user->rights->expensereport->lire','$conf->hrm->enabled || $conf->holiday->enabled || $conf->deplacement->enabled || $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(161177,'auguria',1,'','left','home',161088,NULL,NULL,0,'/index.php','','MyDashboard','',0,'','','1',2,'2017-08-30 15:14:30'),(161187,'auguria',1,'','left','home',161088,NULL,NULL,1,'/admin/index.php?leftmenu=setup','','Setup','admin',0,'setup','','$user->admin',2,'2017-08-30 15:14:30'),(161188,'auguria',1,'','left','home',161187,NULL,NULL,1,'/admin/company.php?leftmenu=setup','','MenuCompanySetup','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161189,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/ihm.php?leftmenu=setup','','GUISetup','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161190,'auguria',1,'','left','home',161187,NULL,NULL,2,'/admin/modules.php?leftmenu=setup','','Modules','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161191,'auguria',1,'','left','home',161187,NULL,NULL,6,'/admin/boxes.php?leftmenu=setup','','Boxes','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161192,'auguria',1,'','left','home',161187,NULL,NULL,3,'/admin/menus.php?leftmenu=setup','','Menus','admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:47'),(161193,'auguria',1,'','left','home',161187,NULL,NULL,7,'/admin/delais.php?leftmenu=setup','','Alerts','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161194,'auguria',1,'','left','home',161187,NULL,NULL,10,'/admin/pdf.php?leftmenu=setup','','PDF','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161195,'auguria',1,'','left','home',161187,NULL,NULL,8,'/admin/security_other.php?leftmenu=setup','','Security','admin',1,'','','$leftmenu==\'setup\'',2,'2017-09-06 08:29:36'),(161196,'auguria',1,'','left','home',161187,NULL,NULL,11,'/admin/mails.php?leftmenu=setup','','Emails','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161197,'auguria',1,'','left','home',161187,NULL,NULL,9,'/admin/limits.php?leftmenu=setup','','MenuLimits','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161198,'auguria',1,'','left','home',161187,NULL,NULL,13,'/admin/dict.php?leftmenu=setup','','Dictionary','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161199,'auguria',1,'','left','home',161187,NULL,NULL,14,'/admin/const.php?leftmenu=setup','','OtherSetup','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161200,'auguria',1,'','left','home',161187,NULL,NULL,12,'/admin/sms.php?leftmenu=setup','','SMS','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161201,'auguria',1,'','left','home',161187,NULL,NULL,4,'/admin/translation.php?leftmenu=setup','','Translation','admin',1,'','','$leftmenu==\"setup\"',2,'2017-08-30 15:14:30'),(161288,'auguria',1,'','left','home',161387,NULL,NULL,0,'/admin/system/dolibarr.php?leftmenu=admintools','','InfoDolibarr','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161289,'auguria',1,'','left','home',161288,NULL,NULL,2,'/admin/system/modules.php?leftmenu=admintools','','Modules','admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161290,'auguria',1,'','left','home',161288,NULL,NULL,3,'/admin/triggers.php?leftmenu=admintools','','Triggers','admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161291,'auguria',1,'','left','home',161288,NULL,NULL,4,'/admin/system/filecheck.php?leftmenu=admintools','','FileCheck','admin',2,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161292,'auguria',1,'','left','home',161387,NULL,NULL,1,'/admin/system/browser.php?leftmenu=admintools','','InfoBrowser','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161293,'auguria',1,'','left','home',161387,NULL,NULL,2,'/admin/system/os.php?leftmenu=admintools','','InfoOS','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161294,'auguria',1,'','left','home',161387,NULL,NULL,3,'/admin/system/web.php?leftmenu=admintools','','InfoWebServer','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161295,'auguria',1,'','left','home',161387,NULL,NULL,4,'/admin/system/phpinfo.php?leftmenu=admintools','','InfoPHP','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161297,'auguria',1,'','left','home',161387,NULL,NULL,5,'/admin/system/database.php?leftmenu=admintools','','InfoDatabase','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161387,'auguria',1,'','left','home',161088,NULL,NULL,2,'/admin/tools/index.php?leftmenu=admintools','','AdminTools','admin',0,'admintools','','$user->admin',2,'2017-08-30 15:14:30'),(161388,'auguria',1,'','left','home',161387,NULL,NULL,6,'/admin/tools/dolibarr_export.php?leftmenu=admintools','','Backup','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161389,'auguria',1,'','left','home',161387,NULL,NULL,7,'/admin/tools/dolibarr_import.php?leftmenu=admintools','','Restore','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161392,'auguria',1,'','left','home',161387,NULL,NULL,8,'/admin/tools/update.php?leftmenu=admintools','','MenuUpgrade','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161393,'auguria',1,'','left','home',161387,NULL,NULL,9,'/admin/tools/eaccelerator.php?leftmenu=admintools','','EAccelerator','admin',1,'','','$leftmenu==\"admintools\" && function_exists(\"eaccelerator_info\")',2,'2017-08-30 15:14:30'),(161394,'auguria',1,'','left','home',161387,NULL,NULL,10,'/admin/tools/listevents.php?leftmenu=admintools','','Audit','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161395,'auguria',1,'','left','home',161387,NULL,NULL,11,'/admin/tools/listsessions.php?leftmenu=admintools','','Sessions','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161396,'auguria',1,'','left','home',161387,NULL,NULL,12,'/admin/tools/purge.php?leftmenu=admintools','','Purge','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161398,'auguria',1,'','left','home',161387,NULL,NULL,14,'/admin/system/about.php?leftmenu=admintools','','ExternalResources','admin',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161407,'auguria',1,'','left','home',161387,NULL,NULL,15,'/product/admin/product_tools.php?mainmenu=home&amp;leftmenu=admintools','','ProductVatMassChange','products',1,'','','$leftmenu==\"admintools\"',2,'2017-08-30 15:14:30'),(161487,'auguria',1,'','left','home',161088,NULL,NULL,4,'/user/home.php?leftmenu=users','','MenuUsersAndGroups','users',0,'users','','1',2,'2017-08-30 15:14:30'),(161488,'auguria',1,'','left','home',161487,NULL,NULL,0,'/user/index.php?leftmenu=users','','Users','users',1,'','$user->rights->user->user->lire || $user->admin','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161489,'auguria',1,'','left','home',161488,NULL,NULL,0,'/user/card.php?leftmenu=users&amp;action=create','','NewUser','users',2,'','($user->rights->user->user->creer || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161490,'auguria',1,'','left','home',161487,NULL,NULL,1,'/user/group/index.php?leftmenu=users','','Groups','users',1,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->read:$user->rights->user->user->lire) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161491,'auguria',1,'','left','home',161490,NULL,NULL,0,'/user/group/card.php?leftmenu=users&amp;action=create','','NewGroup','users',2,'','(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->write:$user->rights->user->user->creer) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)','$leftmenu==\"users\"',2,'2017-08-30 15:14:30'),(161587,'auguria',1,'','left','companies',161089,NULL,NULL,0,'/societe/index.php?leftmenu=thirdparties','','ThirdParty','companies',0,'thirdparties','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161588,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/card.php?action=create','','MenuNewThirdParty','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161589,'auguria',1,'','left','companies',161587,NULL,NULL,0,'/societe/list.php?action=create','','List','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161590,'auguria',1,'','left','companies',161587,NULL,NULL,5,'/societe/list.php?type=f&leftmenu=suppliers','','ListSuppliersShort','suppliers',1,'','$user->rights->societe->lire && $user->rights->fournisseur->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161591,'auguria',1,'','left','companies',161590,NULL,NULL,0,'/societe/card.php?leftmenu=supplier&amp;action=create&amp;type=f','','NewSupplier','suppliers',2,'','$user->rights->societe->creer','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161593,'auguria',1,'','left','companies',161587,NULL,NULL,3,'/societe/list.php?type=p&leftmenu=prospects','','ListProspectsShort','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161594,'auguria',1,'','left','companies',161593,NULL,NULL,0,'/societe/card.php?leftmenu=prospects&amp;action=create&amp;type=p','','MenuNewProspect','companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161596,'auguria',1,'','left','companies',161587,NULL,NULL,4,'/societe/list.php?type=c&leftmenu=customers','','ListCustomersShort','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161597,'auguria',1,'','left','companies',161596,NULL,NULL,0,'/societe/card.php?leftmenu=customers&amp;action=create&amp;type=c','','MenuNewCustomer','companies',2,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161687,'auguria',1,'','left','companies',161089,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','ContactsAddresses','companies',0,'contacts','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161688,'auguria',1,'','left','companies',161687,NULL,NULL,0,'/contact/card.php?leftmenu=contacts&amp;action=create','','NewContactAddress','companies',1,'','$user->rights->societe->creer','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161689,'auguria',1,'','left','companies',161687,NULL,NULL,1,'/contact/list.php?leftmenu=contacts','','List','companies',1,'','$user->rights->societe->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161691,'auguria',1,'','left','companies',161689,NULL,NULL,1,'/contact/list.php?leftmenu=contacts&amp;type=p','','ThirdPartyProspects','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161692,'auguria',1,'','left','companies',161689,NULL,NULL,2,'/contact/list.php?leftmenu=contacts&amp;type=c','','ThirdPartyCustomers','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161693,'auguria',1,'','left','companies',161689,NULL,NULL,3,'/contact/list.php?leftmenu=contacts&amp;type=f','','ThirdPartySuppliers','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled && $conf->fournisseur->enabled',2,'2017-08-30 15:14:30'),(161694,'auguria',1,'','left','companies',161689,NULL,NULL,4,'/contact/list.php?leftmenu=contacts&amp;type=o','','Others','companies',2,'','$user->rights->societe->contact->lire','$conf->societe->enabled',2,'2017-08-30 15:14:30'),(161737,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&amp;type=1','','SuppliersCategoriesShort','categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161738,'auguria',1,'','left','companies',161737,NULL,NULL,0,'/categories/card.php?action=create&amp;type=1','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161747,'auguria',1,'','left','companies',161089,NULL,NULL,4,'/categories/index.php?leftmenu=cat&amp;type=2','','CustomersProspectsCategoriesShort','categories',0,'cat','$user->rights->categorie->lire','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161748,'auguria',1,'','left','companies',161747,NULL,NULL,0,'/categories/card.php?action=create&amp;type=2','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->fournisseur->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161757,'auguria',1,'','left','companies',161089,NULL,NULL,3,'/categories/index.php?leftmenu=cat&amp;type=4','','ContactCategoriesShort','categories',0,'cat','$user->rights->categorie->lire','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(161758,'auguria',1,'','left','companies',161757,NULL,NULL,0,'/categories/card.php?action=create&amp;type=4','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->societe->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(162187,'auguria',1,'','left','commercial',161092,NULL,NULL,4,'/comm/propal/index.php?leftmenu=propals','','Prop','propal',0,'propals','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162188,'auguria',1,'','left','commercial',162187,NULL,NULL,0,'/comm/propal/card.php?action=create&amp;leftmenu=propals','','NewPropal','propal',1,'','$user->rights->propale->creer','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162189,'auguria',1,'','left','commercial',162187,NULL,NULL,1,'/comm/propal/list.php?leftmenu=propals','','List','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162190,'auguria',1,'','left','commercial',162189,NULL,NULL,2,'/comm/propal/list.php?leftmenu=propals&amp;viewstatut=0','','PropalsDraft','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162191,'auguria',1,'','left','commercial',162189,NULL,NULL,3,'/comm/propal/list.php?leftmenu=propals&amp;viewstatut=1','','PropalsOpened','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162192,'auguria',1,'','left','commercial',162189,NULL,NULL,4,'/comm/propal/list.php?leftmenu=propals&amp;viewstatut=2','','PropalStatusSigned','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162193,'auguria',1,'','left','commercial',162189,NULL,NULL,5,'/comm/propal/list.php?leftmenu=propals&amp;viewstatut=3','','PropalStatusNotSigned','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162194,'auguria',1,'','left','commercial',162189,NULL,NULL,6,'/comm/propal/list.php?leftmenu=propals&amp;viewstatut=4','','PropalStatusBilled','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled && $leftmenu==\"propals\"',2,'2017-08-30 15:14:30'),(162197,'auguria',1,'','left','commercial',162187,NULL,NULL,4,'/comm/propal/stats/index.php?leftmenu=propals','','Statistics','propal',1,'','$user->rights->propale->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(162287,'auguria',1,'','left','commercial',161092,NULL,NULL,5,'/commande/index.php?leftmenu=orders','','CustomersOrders','orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162288,'auguria',1,'','left','commercial',162287,NULL,NULL,0,'/commande/card.php?action=create&amp;leftmenu=orders','','NewOrder','orders',1,'','$user->rights->commande->creer','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162289,'auguria',1,'','left','commercial',162287,NULL,NULL,1,'/commande/list.php?leftmenu=orders','','List','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162290,'auguria',1,'','left','commercial',162289,NULL,NULL,2,'/commande/list.php?leftmenu=orders&amp;viewstatut=0','','StatusOrderDraftShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162291,'auguria',1,'','left','commercial',162289,NULL,NULL,3,'/commande/list.php?leftmenu=orders&amp;viewstatut=1','','StatusOrderValidated','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162292,'auguria',1,'','left','commercial',162289,NULL,NULL,4,'/commande/list.php?leftmenu=orders&amp;viewstatut=2','','StatusOrderOnProcessShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162293,'auguria',1,'','left','commercial',162289,NULL,NULL,5,'/commande/list.php?leftmenu=orders&amp;viewstatut=3','','StatusOrderToBill','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162294,'auguria',1,'','left','commercial',162289,NULL,NULL,6,'/commande/list.php?leftmenu=orders&amp;viewstatut=4','','StatusOrderProcessed','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162295,'auguria',1,'','left','commercial',162289,NULL,NULL,7,'/commande/list.php?leftmenu=orders&amp;viewstatut=-1','','StatusOrderCanceledShort','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled && $leftmenu==\"orders\"',2,'2017-08-30 15:14:30'),(162296,'auguria',1,'','left','commercial',162287,NULL,NULL,4,'/commande/stats/index.php?leftmenu=orders','','Statistics','orders',1,'','$user->rights->commande->lire','$conf->commande->enabled',2,'2017-08-30 15:14:30'),(162387,'auguria',1,'','left','commercial',161090,NULL,NULL,6,'/expedition/index.php?leftmenu=sendings','','Shipments','sendings',0,'sendings','$user->rights->expedition->lire','$conf->expedition->enabled',2,'2017-08-30 15:14:30'),(162388,'auguria',1,'','left','commercial',162387,NULL,NULL,0,'/expedition/card.php?action=create2&leftmenu=sendings','','NewSending','sendings',1,'','$user->rights->expedition->creer','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162389,'auguria',1,'','left','commercial',162387,NULL,NULL,1,'/expedition/list.php?leftmenu=sendings','','List','sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162390,'auguria',1,'','left','commercial',162387,NULL,NULL,2,'/expedition/stats/index.php?leftmenu=sendings','','Statistics','sendings',1,'','$user->rights->expedition->lire','$conf->expedition->enabled && $leftmenu==\"sendings\"',2,'2017-08-30 15:14:30'),(162487,'auguria',1,'','left','commercial',161092,NULL,NULL,7,'/contrat/index.php?leftmenu=contracts','','Contracts','contracts',0,'contracts','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162488,'auguria',1,'','left','commercial',162487,NULL,NULL,0,'/contrat/card.php?&action=create&amp;leftmenu=contracts','','NewContract','contracts',1,'','$user->rights->contrat->creer','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162489,'auguria',1,'','left','commercial',162487,NULL,NULL,1,'/contrat/list.php?leftmenu=contracts','','List','contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162490,'auguria',1,'','left','commercial',162487,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts','','MenuServices','contracts',1,'','$user->rights->contrat->lire','$conf->contrat->enabled',2,'2017-08-30 15:14:30'),(162491,'auguria',1,'','left','commercial',162490,NULL,NULL,0,'/contrat/services.php?leftmenu=contracts&amp;mode=0','','MenuInactiveServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162492,'auguria',1,'','left','commercial',162490,NULL,NULL,1,'/contrat/services.php?leftmenu=contracts&amp;mode=4','','MenuRunningServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162493,'auguria',1,'','left','commercial',162490,NULL,NULL,2,'/contrat/services.php?leftmenu=contracts&amp;mode=4&amp;filter=expired','','MenuExpiredServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162494,'auguria',1,'','left','commercial',162490,NULL,NULL,3,'/contrat/services.php?leftmenu=contracts&amp;mode=5','','MenuClosedServices','contracts',2,'','$user->rights->contrat->lire','$conf->contrat->enabled && $leftmenu==\"contracts\"',2,'2017-08-30 15:14:30'),(162587,'auguria',1,'','left','commercial',161092,NULL,NULL,8,'/fichinter/list.php?leftmenu=ficheinter','','Interventions','interventions',0,'ficheinter','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162588,'auguria',1,'','left','commercial',162587,NULL,NULL,0,'/fichinter/card.php?action=create&amp;leftmenu=ficheinter','','NewIntervention','interventions',1,'','$user->rights->ficheinter->creer','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162589,'auguria',1,'','left','commercial',162587,NULL,NULL,1,'/fichinter/list.php?leftmenu=ficheinter','','List','interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162590,'auguria',1,'','left','commercial',162587,NULL,NULL,2,'/fichinter/stats/index.php?leftmenu=ficheinter','','Statistics','interventions',1,'','$user->rights->ficheinter->lire','$conf->ficheinter->enabled',2,'2017-08-30 15:14:30'),(162687,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/fourn/facture/list.php?leftmenu=suppliers_bills','','BillsSuppliers','bills',0,'supplier_bills','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162688,'auguria',1,'','left','accountancy',162687,NULL,NULL,0,'/fourn/facture/card.php?action=create&amp;leftmenu=suppliers_bills','','NewBill','bills',1,'','$user->rights->fournisseur->facture->creer','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162689,'auguria',1,'','left','accountancy',162687,NULL,NULL,1,'/fourn/facture/list.php?leftmenu=suppliers_bills','','List','bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162690,'auguria',1,'','left','accountancy',162687,NULL,NULL,2,'/fourn/facture/paiement.php?leftmenu=suppliers_bills','','Payments','bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162691,'auguria',1,'','left','accountancy',162687,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills&mode=supplier','','Statistics','bills',1,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162692,'auguria',1,'','left','accountancy',162690,NULL,NULL,1,'/fourn/facture/rapport.php?leftmenu=suppliers_bills','','Reporting','bills',2,'','$user->rights->fournisseur->facture->lire','$conf->supplier_invoice->enabled',2,'2017-08-30 15:14:30'),(162787,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills','','BillsCustomers','bills',0,'customer_bills','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162788,'auguria',1,'','left','accountancy',162787,NULL,NULL,3,'/compta/facture/card.php?action=create&amp;leftmenu=customers_bills','','NewBill','bills',1,'','$user->rights->facture->creer','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162789,'auguria',1,'','left','accountancy',162787,NULL,NULL,5,'/compta/facture/fiche-rec.php?leftmenu=customers_bills','','ListOfTemplates','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162791,'auguria',1,'','left','accountancy',162787,NULL,NULL,6,'/compta/paiement/list.php?leftmenu=customers_bills','','Payments','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162792,'auguria',1,'','left','accountancy',162787,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills','','List','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162797,'auguria',1,'','left','accountancy',162791,NULL,NULL,1,'/compta/paiement/rapport.php?leftmenu=customers_bills','','Reportings','bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162798,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/paiement/cheque/index.php?leftmenu=checks&amp;mainmenu=bank','','MenuChequeDeposits','bills',0,'checks','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162799,'auguria',1,'','left','accountancy',162798,NULL,NULL,0,'/compta/paiement/cheque/card.php?leftmenu=checks&amp;action=new','','NewCheckDeposit','compta',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162800,'auguria',1,'','left','accountancy',162798,NULL,NULL,1,'/compta/paiement/cheque/list.php?leftmenu=checks','','List','bills',1,'','$user->rights->banque->lire','empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))',2,'2017-08-30 15:14:30'),(162801,'auguria',1,'','left','accountancy',162787,NULL,NULL,8,'/compta/facture/stats/index.php?leftmenu=customers_bills','','Statistics','bills',1,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162807,'auguria',1,'','left','accountancy',162792,NULL,NULL,1,'/compta/facture/list.php?leftmenu=customers_bills&amp;search_status=0','','BillShortStatusDraft','bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162808,'auguria',1,'','left','accountancy',162792,NULL,NULL,2,'/compta/facture/list.php?leftmenu=customers_bills&amp;search_status=1','','BillShortStatusNotPaid','bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162809,'auguria',1,'','left','accountancy',162792,NULL,NULL,3,'/compta/facture/list.php?leftmenu=customers_bills&amp;search_status=2','','BillShortStatusPaid','bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162810,'auguria',1,'','left','accountancy',162792,NULL,NULL,4,'/compta/facture/list.php?leftmenu=customers_bills&amp;search_status=3','','BillShortStatusCanceled','bills',2,'','$user->rights->facture->lire','$conf->facture->enabled',2,'2017-08-30 15:14:30'),(162987,'auguria',1,'','left','accountancy',161093,NULL,NULL,3,'/commande/list.php?leftmenu=orders&amp;viewstatut=3','','MenuOrdersToBill','orders',0,'orders','$user->rights->commande->lire','$conf->commande->enabled',0,'2017-08-30 15:14:30'),(163087,'auguria',1,'','left','accountancy',161093,NULL,NULL,4,'/don/index.php?leftmenu=donations&amp;mainmenu=accountancy','','Donations','donations',0,'donations','$user->rights->don->lire','$conf->don->enabled',2,'2017-08-30 15:14:30'),(163088,'auguria',1,'','left','accountancy',163087,NULL,NULL,0,'/don/card.php?leftmenu=donations&amp;mainmenu=accountancy&amp;action=create','','NewDonation','donations',1,'','$user->rights->don->creer','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163089,'auguria',1,'','left','accountancy',163087,NULL,NULL,1,'/don/list.php?leftmenu=donations&amp;mainmenu=accountancy','','List','donations',1,'','$user->rights->don->lire','$conf->don->enabled && $leftmenu==\"donations\"',2,'2017-08-30 15:14:30'),(163187,'auguria',1,'','left','accountancy',161102,NULL,NULL,5,'/compta/deplacement/index.php?leftmenu=tripsandexpenses','','TripsAndExpenses','trips',0,'tripsandexpenses','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163188,'auguria',1,'','left','accountancy',163187,NULL,NULL,1,'/compta/deplacement/card.php?action=create&amp;leftmenu=tripsandexpenses','','New','trips',1,'','$user->rights->deplacement->creer','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163189,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/list.php?leftmenu=tripsandexpenses','','List','trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163190,'auguria',1,'','left','accountancy',163187,NULL,NULL,2,'/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses','','Statistics','trips',1,'','$user->rights->deplacement->lire','$conf->deplacement->enabled',0,'2017-08-30 15:14:30'),(163287,'auguria',1,'','left','accountancy',161093,NULL,NULL,6,'/compta/charges/index.php?leftmenu=tax&amp;mainmenu=accountancy','','MenuSpecialExpenses','compta',0,'tax','(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read)','$conf->tax->enabled || $conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163297,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/salaries/index.php?leftmenu=tax_salary&amp;mainmenu=accountancy','','Salaries','salaries',1,'tax_sal','$user->rights->salaries->payment->read','$conf->salaries->enabled',0,'2017-08-30 15:14:30'),(163298,'auguria',1,'','left','accountancy',163297,NULL,NULL,2,'/compta/salaries/card.php?leftmenu=tax_salary&amp;action=create','','NewPayment','companies',2,'','$user->rights->salaries->payment->write','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163299,'auguria',1,'','left','accountancy',163297,NULL,NULL,3,'/compta/salaries/index.php?leftmenu=tax_salary','','Payments','companies',2,'','$user->rights->salaries->payment->read','$conf->salaries->enabled && $leftmenu==\"tax_salary\"',0,'2017-08-30 15:14:30'),(163307,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/loan/index.php?leftmenu=tax_loan&amp;mainmenu=accountancy','','Loans','loan',1,'tax_loan','$user->rights->loan->read','$conf->loan->enabled',0,'2017-08-30 15:14:30'),(163308,'auguria',1,'','left','accountancy',163307,NULL,NULL,2,'/loan/card.php?leftmenu=tax_loan&amp;action=create','','NewLoan','loan',2,'','$user->rights->loan->write','$conf->loan->enabled && $leftmenu==\"tax_loan\"',0,'2017-08-30 15:14:30'),(163310,'auguria',1,'','left','accountancy',163307,NULL,NULL,4,'/loan/calc.php?leftmenu=tax_loan','','Calculator','companies',2,'','$user->rights->loan->calc','$conf->loan->enabled && $leftmenu==\"tax_loan\" && ! empty($conf->global->LOAN_SHOW_CALCULATOR)',0,'2017-08-30 15:14:30'),(163337,'auguria',1,'','left','accountancy',163287,NULL,NULL,1,'/compta/sociales/index.php?leftmenu=tax_social','','SocialContributions','',1,'tax_social','$user->rights->tax->charges->lire','$conf->tax->enabled',0,'2017-08-30 15:14:30'),(163338,'auguria',1,'','left','accountancy',163337,NULL,NULL,2,'/compta/sociales/card.php?leftmenu=tax_social&amp;action=create','','MenuNewSocialContribution','',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163339,'auguria',1,'','left','accountancy',163337,NULL,NULL,3,'/compta/sociales/payments.php?leftmenu=tax_social&amp;mainmenu=accountancy&amp;mode=sconly','','Payments','',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && $leftmenu==\"tax_social\"',0,'2017-08-30 15:14:30'),(163387,'auguria',1,'','left','accountancy',163287,NULL,NULL,7,'/compta/tva/index.php?leftmenu=tax_vat&amp;mainmenu=accountancy','','VAT','companies',1,'tax_vat','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)',0,'2017-08-30 15:14:30'),(163388,'auguria',1,'','left','accountancy',163387,NULL,NULL,0,'/compta/tva/card.php?leftmenu=tax_vat&amp;action=create','','New','companies',2,'','$user->rights->tax->charges->creer','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163389,'auguria',1,'','left','accountancy',163387,NULL,NULL,1,'/compta/tva/reglement.php?leftmenu=tax_vat','','List','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163390,'auguria',1,'','left','accountancy',163387,NULL,NULL,2,'/compta/tva/clients.php?leftmenu=tax_vat','','ReportByCustomers','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163391,'auguria',1,'','left','accountancy',163387,NULL,NULL,3,'/compta/tva/quadri_detail.php?leftmenu=tax_vat','','ReportByQuarter','companies',2,'','$user->rights->tax->charges->lire','$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu==\"tax_vat\"',0,'2017-08-30 15:14:30'),(163487,'auguria',1,'','left','accountancy',161093,NULL,NULL,7,'/accountancy/index.php?leftmenu=accountancy','','MenuAccountancy','accountancy',0,'accounting','! empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163488,'auguria',1,'','left','accountancy',163487,NULL,NULL,2,'/accountancy/customer/index.php?leftmenu=dispatch_customer','','CustomersVentilation','accountancy',1,'dispatch_customer','$user->rights->accounting->bind->write','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163489,'auguria',1,'','left','accountancy',163488,NULL,NULL,3,'/accountancy/customer/list.php','','ToDispatch','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163490,'auguria',1,'','left','accountancy',163488,NULL,NULL,4,'/accountancy/customer/lines.php','','Dispatched','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $leftmenu==\"dispatch_customer\"',0,'2017-08-30 15:14:30'),(163497,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/supplier/index.php?leftmenu=dispatch_supplier','','SuppliersVentilation','accountancy',1,'ventil_supplier','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled',0,'2017-08-30 15:14:30'),(163498,'auguria',1,'','left','accountancy',163497,NULL,NULL,6,'/accountancy/supplier/list.php','','ToDispatch','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163499,'auguria',1,'','left','accountancy',163497,NULL,NULL,7,'/accountancy/supplier/lines.php','','Dispatched','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu==\"dispatch_supplier\"',0,'2017-08-30 15:14:30'),(163507,'auguria',1,'','left','accountancy',163487,NULL,NULL,5,'/accountancy/expensereport/index.php?leftmenu=dispatch_expensereport','','ExpenseReportsVentilation','accountancy',1,'ventil_expensereport','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(163508,'auguria',1,'','left','accountancy',163507,NULL,NULL,6,'/accountancy/expensereport/list.php','','ToDispatch','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163509,'auguria',1,'','left','accountancy',163507,NULL,NULL,7,'/accountancy/expensereport/lines.php','','Dispatched','accountancy',2,'','$user->rights->accounting->bind->write','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"dispatch_expensereport\"',0,'2017-08-30 15:14:30'),(163517,'auguria',1,'','left','accountancy',163487,NULL,NULL,15,'/accountancy/bookkeeping/list.php','','Bookkeeping','accountancy',1,'bookkeeping','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163522,'auguria',1,'','left','accountancy',163487,NULL,NULL,16,'/accountancy/bookkeeping/balance.php','','AccountBalance','accountancy',1,'balance','$user->rights->accounting->mouvements->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163527,'auguria',1,'','left','accountancy',163487,NULL,NULL,17,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','Reportings','main',1,'report','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163528,'auguria',1,'','left','accountancy',163527,NULL,NULL,19,'/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportInOut','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163529,'auguria',1,'','left','accountancy',163528,NULL,NULL,18,'/accountancy/report/result.php?mainmenu=accountancy&leftmenu=accountancy','','ByAccounts','main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163530,'auguria',1,'','left','accountancy',163528,NULL,NULL,20,'/compta/resultat/clientfourn.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies','main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163531,'auguria',1,'','left','accountancy',163527,NULL,NULL,21,'/compta/stats/index.php?mainmenu=accountancy&leftmenu=accountancy','','ReportTurnover','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163532,'auguria',1,'','left','accountancy',163531,NULL,NULL,22,'/compta/stats/casoc.php?mainmenu=accountancy&leftmenu=accountancy','','ByCompanies','main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163533,'auguria',1,'','left','accountancy',163531,NULL,NULL,23,'/compta/stats/cabyuser.php?mainmenu=accountancy&leftmenu=accountancy','','ByUsers','main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163534,'auguria',1,'','left','accountancy',163531,NULL,NULL,24,'/compta/stats/cabyprodserv.php?mainmenu=accountancy&leftmenu=accountancy','','ByProductsAndServices','main',3,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled && $leftmenu==\"accountancy\"',0,'2017-08-30 15:14:30'),(163537,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin','','FiscalPeriod','admin',1,'accountancy_admin_period','','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\" && $conf->global->MAIN_FEATURES_LEVEL > 0',2,'2017-08-30 15:14:30'),(163538,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'/accountancy/index.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Setup','accountancy',1,'accountancy_admin','$user->rights->accounting->chartofaccount','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163541,'auguria',1,'','left','accountancy',163538,NULL,NULL,10,'/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingJournals','accountancy',2,'accountancy_admin_journal','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163542,'auguria',1,'','left','accountancy',163538,NULL,NULL,20,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Pcg_version','accountancy',2,'accountancy_admin_chartmodel','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163543,'auguria',1,'','left','accountancy',163538,NULL,NULL,30,'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin','','Chartofaccounts','accountancy',2,'accountancy_admin_chart','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163544,'auguria',1,'','left','accountancy',163538,NULL,NULL,40,'/accountancy/admin/categories_list.php?id=32&mainmenu=accountancy&leftmenu=accountancy_admin','','AccountingCategory','accountancy',2,'accountancy_admin_chart_group','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163545,'auguria',1,'','left','accountancy',163538,NULL,NULL,50,'/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuDefaultAccounts','accountancy',2,'accountancy_admin_default','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163546,'auguria',1,'','left','accountancy',163538,NULL,NULL,60,'/admin/dict.php?id=10&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuVatAccounts','accountancy',2,'accountancy_admin_vat','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163547,'auguria',1,'','left','accountancy',163538,NULL,NULL,70,'/admin/dict.php?id=7&from=accountancy&search_country_id=__MYCOUNTRYID__&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuTaxAccounts','accountancy',2,'accountancy_admin_tax','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163548,'auguria',1,'','left','accountancy',163538,NULL,NULL,80,'/admin/dict.php?id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin','','MenuExpenseReportAccounts','accountancy',2,'accountancy_admin_expensereport','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163549,'auguria',1,'','left','accountancy',163538,NULL,NULL,90,'/accountancy/admin/productaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin','','MenuProductsAccounts','accountancy',2,'accountancy_admin_product','$user->rights->accounting->chartofaccount','$conf->accounting->enabled && $leftmenu==\"accountancy_admin\"',0,'2017-08-30 15:14:30'),(163587,'auguria',1,'','left','accountancy',161101,NULL,NULL,9,'/compta/prelevement/index.php?leftmenu=withdraw&amp;mainmenu=bank','','StandingOrders','withdrawals',0,'withdraw','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled',2,'2017-08-30 15:14:30'),(163589,'auguria',1,'','left','accountancy',163587,NULL,NULL,0,'/compta/prelevement/create.php?leftmenu=withdraw','','NewStandingOrder','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163590,'auguria',1,'','left','accountancy',163587,NULL,NULL,2,'/compta/prelevement/bons.php?leftmenu=withdraw','','WithdrawalsReceipts','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163591,'auguria',1,'','left','accountancy',163587,NULL,NULL,3,'/compta/prelevement/list.php?leftmenu=withdraw','','WithdrawalsLines','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163593,'auguria',1,'','left','accountancy',163587,NULL,NULL,5,'/compta/prelevement/rejets.php?leftmenu=withdraw','','Rejects','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163594,'auguria',1,'','left','accountancy',163587,NULL,NULL,6,'/compta/prelevement/stats.php?leftmenu=withdraw','','Statistics','withdrawals',1,'','$user->rights->prelevement->bons->lire','$conf->prelevement->enabled && $leftmenu==\"withdraw\"',2,'2017-08-30 15:14:30'),(163687,'auguria',1,'','left','accountancy',161101,NULL,NULL,1,'/compta/bank/index.php?leftmenu=bank&amp;mainmenu=bank','','MenuBankCash','banks',0,'bank','$user->rights->banque->lire','$conf->banque->enabled',0,'2017-08-30 15:14:30'),(163688,'auguria',1,'','left','accountancy',163687,NULL,NULL,0,'/compta/bank/card.php?action=create&amp;leftmenu=bank','','MenuNewFinancialAccount','banks',1,'','$user->rights->banque->configurer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163690,'auguria',1,'','left','accountancy',163687,NULL,NULL,2,'/compta/bank/bankentries.php?leftmenu=bank','','ListTransactions','banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163691,'auguria',1,'','left','accountancy',163687,NULL,NULL,3,'/compta/bank/budget.php?leftmenu=bank','','ListTransactionsByCategory','banks',1,'','$user->rights->banque->lire','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163693,'auguria',1,'','left','accountancy',163687,NULL,NULL,5,'/compta/bank/transfer.php?leftmenu=bank','','BankTransfers','banks',1,'','$user->rights->banque->transfer','$conf->banque->enabled && ($leftmenu==\"bank\" || $leftmenu==\"checks\" || $leftmenu==\"withdraw\")',0,'2017-08-30 15:14:30'),(163737,'auguria',1,'','left','accountancy',161101,NULL,NULL,4,'/categories/index.php?leftmenu=bank&amp;type=5','','Categories','categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163738,'auguria',1,'','left','accountancy',163737,NULL,NULL,0,'/categories/card.php?leftmenu=bank&amp;action=create&amp;type=5','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(163787,'auguria',1,'','left','accountancy',161093,NULL,NULL,11,'/compta/resultat/index.php?leftmenu=ca&amp;mainmenu=accountancy','','Reportings','main',0,'ca','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled',0,'2017-08-30 15:14:30'),(163792,'auguria',1,'','left','accountancy',163487,NULL,NULL,1,'','','Journalization','main',1,'','$user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163793,'auguria',1,'','left','accountancy',163792,NULL,NULL,4,'/accountancy/journal/sellsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=1','','SellsJournal','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163794,'auguria',1,'','left','accountancy',163792,NULL,NULL,1,'/accountancy/journal/bankjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=3','','BankJournal','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163795,'auguria',1,'','left','accountancy',163792,NULL,NULL,2,'/accountancy/journal/expensereportsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=6','','ExpenseReportJournal','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163796,'auguria',1,'','left','accountancy',163792,NULL,NULL,3,'/accountancy/journal/purchasesjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=2','','PurchasesJournal','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->accounting->enabled',0,'2017-08-30 15:14:30'),(163798,'auguria',1,'','left','accountancy',163787,NULL,NULL,0,'/compta/resultat/index.php?leftmenu=ca','','ReportInOut','main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163799,'auguria',1,'','left','accountancy',163788,NULL,NULL,0,'/compta/resultat/clientfourn.php?leftmenu=ca','','ByCompanies','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163800,'auguria',1,'','left','accountancy',163787,NULL,NULL,1,'/compta/stats/index.php?leftmenu=ca','','ReportTurnover','main',1,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163801,'auguria',1,'','left','accountancy',163790,NULL,NULL,0,'/compta/stats/casoc.php?leftmenu=ca','','ByCompanies','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163802,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyuser.php?leftmenu=ca','','ByUsers','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163803,'auguria',1,'','left','accountancy',163790,NULL,NULL,1,'/compta/stats/cabyprodserv.php?leftmenu=ca','','ByProductsAndServices','main',2,'','$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire','$conf->comptabilite->enabled && $leftmenu==\"ca\"',0,'2017-08-30 15:14:30'),(163887,'auguria',1,'','left','products',161090,NULL,NULL,0,'/product/index.php?leftmenu=product&amp;type=0','','Products','products',0,'product','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163888,'auguria',1,'','left','products',163887,NULL,NULL,0,'/product/card.php?leftmenu=product&amp;action=create&amp;type=0','','NewProduct','products',1,'','$user->rights->produit->creer','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163889,'auguria',1,'','left','products',163887,NULL,NULL,1,'/product/list.php?leftmenu=product&amp;type=0','','List','products',1,'','$user->rights->produit->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163890,'auguria',1,'','left','products',163887,NULL,NULL,4,'/product/reassort.php?type=0','','Stocks','products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->product->enabled',2,'2017-08-30 15:14:30'),(163891,'auguria',1,'','left','products',163887,NULL,NULL,7,'/product/stats/card.php?id=all&amp;leftmenu=stats&amp;type=0','','Statistics','main',1,'','$user->rights->produit->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(163892,'auguria',1,'','left','products',163887,NULL,NULL,5,'/product/reassortlot.php?type=0','','StocksByLotSerial','products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163893,'auguria',1,'','left','products',163887,NULL,NULL,6,'/product/stock/productlot_list.php','','LotSerial','products',1,'','$user->rights->produit->lire && $user->rights->stock->lire','$conf->productbatch->enabled',2,'2017-08-30 15:14:30'),(163987,'auguria',1,'','left','products',161090,NULL,NULL,1,'/product/index.php?leftmenu=service&amp;type=1','','Services','products',0,'service','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163988,'auguria',1,'','left','products',163987,NULL,NULL,0,'/product/card.php?leftmenu=service&amp;action=create&amp;type=1','','NewService','products',1,'','$user->rights->service->creer','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163989,'auguria',1,'','left','products',163987,NULL,NULL,1,'/product/list.php?leftmenu=service&amp;type=1','','List','products',1,'','$user->rights->service->lire','$conf->service->enabled',2,'2017-08-30 15:14:30'),(163990,'auguria',1,'','left','products',163987,NULL,NULL,5,'/product/stats/card.php?id=all&amp;leftmenu=stats&amp;type=1','','Statistics','main',1,'','$user->rights->service->lire','$conf->propal->enabled',2,'2017-08-30 15:14:30'),(164187,'auguria',1,'','left','products',161090,NULL,NULL,3,'/product/stock/index.php?leftmenu=stock','','Stock','stocks',0,'stock','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164188,'auguria',1,'','left','products',164187,NULL,NULL,0,'/product/stock/card.php?action=create','','MenuNewWarehouse','stocks',1,'','$user->rights->stock->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164189,'auguria',1,'','left','products',164187,NULL,NULL,1,'/product/stock/list.php','','List','stocks',1,'','$user->rights->stock->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164191,'auguria',1,'','left','products',164187,NULL,NULL,3,'/product/stock/mouvement.php','','Movements','stocks',1,'','$user->rights->stock->mouvement->lire','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164192,'auguria',1,'','left','products',164187,NULL,NULL,4,'/product/stock/replenish.php','','Replenishments','stocks',1,'','$user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire','$conf->stock->enabled && $conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(164193,'auguria',1,'','left','products',164187,NULL,NULL,5,'/product/stock/massstockmove.php','','MassStockTransferShort','stocks',1,'','$user->rights->stock->mouvement->creer','$conf->stock->enabled',2,'2017-08-30 15:14:30'),(164287,'auguria',1,'','left','products',161090,NULL,NULL,4,'/categories/index.php?leftmenu=cat&amp;type=0','','Categories','categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164288,'auguria',1,'','left','products',164287,NULL,NULL,0,'/categories/card.php?action=create&amp;type=0','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164487,'auguria',1,'','left','project',161094,NULL,NULL,3,'/projet/activity/perweek.php?leftmenu=projects','','NewTimeSpent','projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164687,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/index.php?leftmenu=projects','','Projects','projects',0,'projects','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164688,'auguria',1,'','left','project',164687,NULL,NULL,1,'/projet/card.php?leftmenu=projects&amp;action=create','','NewProject','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164689,'auguria',1,'','left','project',164687,NULL,NULL,2,'/projet/list.php?leftmenu=projects','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164690,'auguria',1,'','left','project',164687,NULL,NULL,3,'/projet/stats/index.php?leftmenu=projects','','Statistics','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled',2,'2017-08-30 15:14:30'),(164787,'auguria',1,'','left','project',161094,NULL,NULL,0,'/projet/activity/index.php?leftmenu=projects','','Activities','projects',0,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164788,'auguria',1,'','left','project',164787,NULL,NULL,1,'/projet/tasks.php?leftmenu=projects&amp;action=create','','NewTask','projects',1,'','$user->rights->projet->creer','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164789,'auguria',1,'','left','project',164787,NULL,NULL,2,'/projet/tasks/list.php?leftmenu=projects','','List','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164791,'auguria',1,'','left','project',164787,NULL,NULL,4,'/projet/tasks/stats/index.php?leftmenu=projects','','Statistics','projects',1,'','$user->rights->projet->lire','$conf->projet->enabled && $conf->global->PROJECT_USE_TASKS',2,'2017-08-30 15:14:30'),(164891,'auguria',1,'','left','project',161094,NULL,NULL,4,'/categories/index.php?leftmenu=cat&amp;type=6','','Categories','categories',0,'cat','$user->rights->categorie->lire','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164892,'auguria',1,'','left','project',164891,NULL,NULL,0,'/categories/card.php?action=create&amp;type=6','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->categorie->enabled',2,'2017-08-30 15:14:30'),(164987,'auguria',1,'','left','tools',161095,NULL,NULL,0,'/comm/mailing/index.php?leftmenu=mailing','','EMailings','mails',0,'mailing','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164988,'auguria',1,'','left','tools',164987,NULL,NULL,0,'/comm/mailing/card.php?leftmenu=mailing&amp;action=create','','NewMailing','mails',1,'','$user->rights->mailing->creer','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(164989,'auguria',1,'','left','tools',164987,NULL,NULL,1,'/comm/mailing/list.php?leftmenu=mailing','','List','mails',1,'','$user->rights->mailing->lire','$conf->mailing->enabled',0,'2017-08-30 15:14:30'),(165187,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/exports/index.php?leftmenu=export','','FormatedExport','exports',0,'export','$user->rights->export->lire','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165188,'auguria',1,'','left','tools',165187,NULL,NULL,0,'/exports/export.php?leftmenu=export','','NewExport','exports',1,'','$user->rights->export->creer','$conf->export->enabled',2,'2017-08-30 15:14:30'),(165217,'auguria',1,'','left','tools',161095,NULL,NULL,2,'/imports/index.php?leftmenu=import','','FormatedImport','exports',0,'import','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165218,'auguria',1,'','left','tools',165217,NULL,NULL,0,'/imports/import.php?leftmenu=import','','NewImport','exports',1,'','$user->rights->import->run','$conf->import->enabled',2,'2017-08-30 15:14:30'),(165287,'auguria',1,'','left','members',161100,NULL,NULL,0,'/adherents/index.php?leftmenu=members&amp;mainmenu=members','','Members','members',0,'members','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165288,'auguria',1,'','left','members',165287,NULL,NULL,0,'/adherents/card.php?leftmenu=members&amp;action=create','','NewMember','members',1,'','$user->rights->adherent->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165289,'auguria',1,'','left','members',165287,NULL,NULL,1,'/adherents/list.php','','List','members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165290,'auguria',1,'','left','members',165289,NULL,NULL,2,'/adherents/list.php?leftmenu=members&amp;statut=-1','','MenuMembersToValidate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165291,'auguria',1,'','left','members',165289,NULL,NULL,3,'/adherents/list.php?leftmenu=members&amp;statut=1','','MenuMembersValidated','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165292,'auguria',1,'','left','members',165289,NULL,NULL,4,'/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=outofdate','','MenuMembersNotUpToDate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165293,'auguria',1,'','left','members',165289,NULL,NULL,5,'/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=uptodate','','MenuMembersUpToDate','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165294,'auguria',1,'','left','members',165289,NULL,NULL,6,'/adherents/list.php?leftmenu=members&amp;statut=0','','MenuMembersResiliated','members',2,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165295,'auguria',1,'','left','members',165287,NULL,NULL,7,'/adherents/stats/geo.php?leftmenu=members&amp;mode=memberbycountry','','MenuMembersStats','members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165387,'auguria',1,'','left','members',161100,NULL,NULL,1,'/adherents/index.php?leftmenu=members&amp;mainmenu=members','','Subscriptions','compta',0,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165388,'auguria',1,'','left','members',165387,NULL,NULL,0,'/adherents/list.php?statut=-1&amp;leftmenu=accountancy&amp;mainmenu=members','','NewSubscription','compta',1,'','$user->rights->adherent->cotisation->creer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165389,'auguria',1,'','left','members',165387,NULL,NULL,1,'/adherents/subscription/list.php?leftmenu=members','','List','compta',1,'','$user->rights->adherent->cotisation->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165390,'auguria',1,'','left','members',165387,NULL,NULL,7,'/adherents/stats/index.php?leftmenu=members','','MenuMembersStats','members',1,'','$user->rights->adherent->lire','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165589,'auguria',1,'','left','members',165287,NULL,NULL,9,'/adherents/htpasswd.php?leftmenu=export','','Filehtpasswd','members',1,'','$user->rights->adherent->export','! empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && $conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165590,'auguria',1,'','left','members',165287,NULL,NULL,10,'/adherents/cartes/carte.php?leftmenu=export','','MembersCards','members',1,'','$user->rights->adherent->export','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165687,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/user/index.php?leftmenu=hrm&mode=employee','','Employees','hrm',0,'hrm','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165688,'auguria',1,'','left','hrm',165687,NULL,NULL,1,'/user/card.php?action=create&employee=1','','NewEmployee','hrm',1,'','$user->rights->hrm->employee->write','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165689,'auguria',1,'','left','hrm',165687,NULL,NULL,2,'/user/index.php?$leftmenu=hrm&mode=employee&contextpage=employeelist','','List','hrm',1,'','$user->rights->hrm->employee->read','$conf->hrm->enabled',0,'2017-08-30 15:14:30'),(165787,'auguria',1,'','left','members',161100,NULL,NULL,5,'/adherents/type.php?leftmenu=setup&amp;mainmenu=members','','MembersTypes','members',0,'setup','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165788,'auguria',1,'','left','members',165787,NULL,NULL,0,'/adherents/type.php?leftmenu=setup&amp;mainmenu=members&amp;action=create','','New','members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(165789,'auguria',1,'','left','members',165787,NULL,NULL,1,'/adherents/type.php?leftmenu=setup&amp;mainmenu=members','','List','members',1,'','$user->rights->adherent->configurer','$conf->adherent->enabled',2,'2017-08-30 15:14:30'),(166087,'auguria',1,'','left','hrm',161102,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','CPTitreMenu','holiday',0,'hrm','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166088,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/card.php?&action=request','','MenuAddCP','holiday',1,'','$user->rights->holiday->write','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166089,'auguria',1,'','left','hrm',166087,NULL,NULL,1,'/holiday/list.php?&leftmenu=hrm','','List','holiday',1,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166090,'auguria',1,'','left','hrm',166089,NULL,NULL,1,'/holiday/list.php?select_statut=2&leftmenu=hrm','','ListToApprove','trips',2,'','$user->rights->holiday->read','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166091,'auguria',1,'','left','hrm',166087,NULL,NULL,2,'/holiday/define_holiday.php?&action=request','','MenuConfCP','holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166092,'auguria',1,'','left','hrm',166087,NULL,NULL,3,'/holiday/view_log.php?&action=request','','MenuLogCP','holiday',1,'','$user->rights->holiday->define_holiday','$conf->holiday->enabled',0,'2017-08-30 15:14:30'),(166187,'auguria',1,'','left','commercial',161092,NULL,NULL,6,'/fourn/commande/index.php?leftmenu=orders_suppliers','','SuppliersOrders','orders',0,'orders_suppliers','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166188,'auguria',1,'','left','commercial',166187,NULL,NULL,0,'/fourn/commande/card.php?action=create&amp;leftmenu=orders_suppliers','','NewOrder','orders',1,'','$user->rights->fournisseur->commande->creer','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166189,'auguria',1,'','left','commercial',166187,NULL,NULL,1,'/fourn/commande/list.php?leftmenu=orders_suppliers&amp;viewstatut=0','','List','orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166195,'auguria',1,'','left','commercial',166187,NULL,NULL,7,'/commande/stats/index.php?leftmenu=orders_suppliers&amp;mode=supplier','','Statistics','orders',1,'','$user->rights->fournisseur->commande->lire','$conf->supplier_order->enabled',2,'2017-08-30 15:14:30'),(166287,'auguria',1,'','left','members',161100,NULL,NULL,3,'/categories/index.php?leftmenu=cat&amp;type=3','','MembersCategoriesShort','categories',0,'cat','$user->rights->categorie->lire','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166288,'auguria',1,'','left','members',166287,NULL,NULL,0,'/categories/card.php?action=create&amp;type=3','','NewCategory','categories',1,'','$user->rights->categorie->creer','$conf->adherent->enabled && $conf->categorie->enabled',2,'2017-08-30 15:14:30'),(166387,'auguria',1,'','left','hrm',161102,NULL,NULL,5,'/expensereport/index.php?leftmenu=expensereport','','TripsAndExpenses','trips',0,'expensereport','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166388,'auguria',1,'','left','hrm',166387,NULL,NULL,1,'/expensereport/card.php?action=create&amp;leftmenu=expensereport','','New','trips',1,'','$user->rights->expensereport->creer','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166389,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/list.php?leftmenu=expensereport','','List','trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166390,'auguria',1,'','left','hrm',166389,NULL,NULL,2,'/expensereport/list.php?search_status=2&amp;leftmenu=expensereport','','ListToApprove','trips',2,'','$user->rights->expensereport->approve','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166391,'auguria',1,'','left','hrm',166387,NULL,NULL,2,'/expensereport/stats/index.php?leftmenu=expensereport','','Statistics','trips',1,'','$user->rights->expensereport->lire','$conf->expensereport->enabled',0,'2017-08-30 15:14:30'),(166467,'all',1,'variants','left','products',-1,'product','products',100,'/variants/list.php','','VariantAttributes','products',NULL,'product','1','$conf->product->enabled',0,'2018-01-19 11:28:04'),(166492,'all',1,'blockedlog','left','tools',-1,NULL,'tools',200,'/blockedlog/admin/blockedlog_list.php?mainmenu=tools&leftmenu=blockedlogbrowser','','BrowseBlockedLog','blockedlog',NULL,'blockedlogbrowser','$user->rights->blockedlog->read','$conf->blockedlog->enabled',2,'2018-03-16 09:57:24'),(166493,'all',1,'agenda','top','agenda',0,NULL,NULL,15,'/comm/action/index.php','','TMenuAgenda','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-11-23 11:58:15'),(166494,'all',1,'agenda','left','agenda',166493,NULL,NULL,100,'/comm/action/index.php?mainmenu=agenda&amp;leftmenu=agenda','','Actions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-11-23 11:58:15'),(166495,'all',1,'agenda','left','agenda',166494,NULL,NULL,101,'/comm/action/card.php?mainmenu=agenda&amp;leftmenu=agenda&amp;action=create','','NewAction','commercial',NULL,NULL,'($user->rights->agenda->myactions->create||$user->rights->agenda->allactions->create)','$conf->agenda->enabled',2,'2018-11-23 11:58:15'),(166496,'all',1,'agenda','left','agenda',166494,NULL,NULL,140,'/comm/action/index.php?action=default&amp;mainmenu=agenda&amp;leftmenu=agenda','','Calendar','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-11-23 11:58:15'),(166497,'all',1,'agenda','left','agenda',166496,NULL,NULL,141,'/comm/action/index.php?action=default&amp;mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-11-23 11:58:15'),(166498,'all',1,'agenda','left','agenda',166496,NULL,NULL,142,'/comm/action/index.php?action=default&amp;mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-11-23 11:58:15'),(166499,'all',1,'agenda','left','agenda',166496,NULL,NULL,143,'/comm/action/index.php?action=default&amp;mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filtert=-1','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2018-11-23 11:58:15'),(166500,'all',1,'agenda','left','agenda',166496,NULL,NULL,144,'/comm/action/index.php?action=default&amp;mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filtert=-1','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2018-11-23 11:58:15'),(166501,'all',1,'agenda','left','agenda',166494,NULL,NULL,110,'/comm/action/list.php?mainmenu=agenda&amp;leftmenu=agenda','','List','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-11-23 11:58:15'),(166502,'all',1,'agenda','left','agenda',166501,NULL,NULL,111,'/comm/action/list.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filter=mine','','MenuToDoMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-11-23 11:58:15'),(166503,'all',1,'agenda','left','agenda',166501,NULL,NULL,112,'/comm/action/list.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filter=mine','','MenuDoneMyActions','agenda',NULL,NULL,'$user->rights->agenda->myactions->read','$conf->agenda->enabled',2,'2018-11-23 11:58:15'),(166504,'all',1,'agenda','left','agenda',166501,NULL,NULL,113,'/comm/action/list.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=todo&amp;filtert=-1','','MenuToDoActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2018-11-23 11:58:15'),(166505,'all',1,'agenda','left','agenda',166501,NULL,NULL,114,'/comm/action/list.php?mainmenu=agenda&amp;leftmenu=agenda&amp;status=done&amp;filtert=-1','','MenuDoneActions','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$user->rights->agenda->allactions->read',2,'2018-11-23 11:58:15'),(166506,'all',1,'agenda','left','agenda',166494,NULL,NULL,160,'/comm/action/rapport/index.php?mainmenu=agenda&amp;leftmenu=agenda','','Reportings','agenda',NULL,NULL,'$user->rights->agenda->allactions->read','$conf->agenda->enabled',2,'2018-11-23 11:58:15'),(166507,'all',1,'barcode','left','tools',-1,NULL,'tools',200,'/barcode/printsheet.php?mainmenu=tools&leftmenu=barcodeprint','','BarCodePrintsheet','products',NULL,'barcodeprint','($conf->global->MAIN_USE_ADVANCED_PERMS && $user->rights->barcode->lire_advance) || (! $conf->global->MAIN_USE_ADVANCED_PERMS)','$conf->barcode->enabled',2,'2018-11-23 11:58:16'),(166508,'all',1,'barcode','left','home',-1,'admintools','home',300,'/barcode/codeinit.php?mainmenu=home&leftmenu=admintools','','MassBarcodeInit','products',NULL,NULL,'($conf->global->MAIN_USE_ADVANCED_PERMS && $user->rights->barcode->creer_advance) || (! $conf->global->MAIN_USE_ADVANCED_PERMS)','$conf->barcode->enabled && preg_match(\'/^(admintools|all)/\',$leftmenu)',0,'2018-11-23 11:58:16'),(166509,'all',1,'cron','left','home',-1,'admintools','home',200,'/cron/list.php?status=-2&leftmenu=admintools','','CronList','cron',NULL,NULL,'$user->rights->cron->read','$conf->cron->enabled && preg_match(\'/^(admintools|all)/\', $leftmenu)',2,'2018-11-23 11:58:16'),(166510,'all',1,'ecm','top','ecm',0,NULL,NULL,100,'/ecm/index.php','','MenuECM','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload || $user->rights->ecm->setup','$conf->ecm->enabled',2,'2018-11-23 11:58:17'),(166511,'all',1,'ecm','left','ecm',-1,NULL,'ecm',101,'/ecm/index.php?mainmenu=ecm&leftmenu=ecm','','ECMArea','ecm',NULL,'ecm','$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2018-11-23 11:58:17'),(166512,'all',1,'ecm','left','ecm',-1,'ecm','ecm',102,'/ecm/index.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsManual','ecm',NULL,'ecm_manual','$user->rights->ecm->read || $user->rights->ecm->upload','$user->rights->ecm->read || $user->rights->ecm->upload',2,'2018-11-23 11:58:17'),(166513,'all',1,'ecm','left','ecm',-1,'ecm','ecm',103,'/ecm/index_auto.php?action=file_manager&mainmenu=ecm&leftmenu=ecm','','ECMSectionsAuto','ecm',NULL,NULL,'$user->rights->ecm->read || $user->rights->ecm->upload','($user->rights->ecm->read || $user->rights->ecm->upload) && ! empty($conf->global->ECM_AUTO_TREE_ENABLED)',2,'2018-11-23 11:58:17'),(166514,'all',1,'opensurvey','left','tools',-1,NULL,'tools',200,'/opensurvey/index.php?mainmenu=tools&leftmenu=opensurvey','','Survey','opensurvey',NULL,'opensurvey','$user->rights->opensurvey->read','$conf->opensurvey->enabled',0,'2018-11-23 11:58:19'),(166515,'all',1,'opensurvey','left','tools',-1,'opensurvey','tools',210,'/opensurvey/wizard/index.php','','NewSurvey','opensurvey',NULL,'opensurvey_new','$user->rights->opensurvey->write','$conf->opensurvey->enabled',0,'2018-11-23 11:58:19'),(166516,'all',1,'opensurvey','left','tools',-1,'opensurvey','tools',220,'/opensurvey/list.php','','List','opensurvey',NULL,'opensurvey_list','$user->rights->opensurvey->read','$conf->opensurvey->enabled',0,'2018-11-23 11:58:19');
    +/*!40000 ALTER TABLE `llx_menu` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_abcdef`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_abcdef`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_abcdef` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  `note_private` mediumtext COLLATE utf8_unicode_ci,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_monmodule_abcdef_rowid` (`rowid`),
    +  KEY `idx_monmodule_abcdef_ref` (`ref`),
    +  KEY `idx_monmodule_abcdef_entity` (`entity`),
    +  KEY `idx_monmodule_abcdef_fk_soc` (`fk_soc`),
    +  KEY `idx_monmodule_abcdef_status` (`status`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_abcdef`
    +--
    +
    +LOCK TABLES `llx_monmodule_abcdef` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_abcdef` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monmodule_abcdef` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_abcdef_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_abcdef_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_abcdef_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_abcdef_extrafields`
    +--
    +
    +LOCK TABLES `llx_monmodule_abcdef_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_abcdef_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monmodule_abcdef_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_actioncommreminder`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_actioncommreminder`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_actioncommreminder` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `status` int(11) DEFAULT NULL,
    +  `entity` int(11) DEFAULT '1',
    +  `dateremind` datetime NOT NULL,
    +  `typeremind` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `offsetvalue` int(11) NOT NULL,
    +  `offsetunit` varchar(1) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_monmodule_actioncommreminder_rowid` (`rowid`),
    +  KEY `idx_monmodule_actioncommreminder_status` (`status`),
    +  KEY `idx_monmodule_actioncommreminder_dateremind` (`dateremind`),
    +  KEY `idx_monmodule_actioncommreminder_fk_user` (`fk_user`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_actioncommreminder`
    +--
    +
    +LOCK TABLES `llx_monmodule_actioncommreminder` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_actioncommreminder` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monmodule_actioncommreminder` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_actioncommreminder_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_actioncommreminder_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_actioncommreminder_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_actioncommreminder_extrafields`
    +--
    +
    +LOCK TABLES `llx_monmodule_actioncommreminder_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_actioncommreminder_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monmodule_actioncommreminder_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_eleves`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_eleves`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_eleves` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  `note_private` mediumtext COLLATE utf8_unicode_ci,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_monmodule_eleves_rowid` (`rowid`),
    +  KEY `idx_monmodule_eleves_ref` (`ref`),
    +  KEY `idx_monmodule_eleves_entity` (`entity`),
    +  KEY `idx_monmodule_eleves_fk_soc` (`fk_soc`),
    +  KEY `idx_monmodule_eleves_status` (`status`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_eleves`
    +--
    +
    +LOCK TABLES `llx_monmodule_eleves` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_eleves` DISABLE KEYS */;
    +INSERT INTO `llx_monmodule_eleves` VALUES (1,'aaa',1,'jjl',NULL,32,NULL,NULL,'2017-11-21 15:02:43','2017-11-21 15:02:43',12,NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_monmodule_eleves` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monmodule_eleves_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monmodule_eleves_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monmodule_eleves_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monmodule_eleves_extrafields`
    +--
    +
    +LOCK TABLES `llx_monmodule_eleves_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_monmodule_eleves_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monmodule_eleves_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_monobj_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_monobj_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_monobj_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_monobj_extrafields`
    +--
    +
    +LOCK TABLES `llx_monobj_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_monobj_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_monobj_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_multicurrency`
    +--
    +
    +DROP TABLE IF EXISTS `llx_multicurrency`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_multicurrency` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `date_create` datetime DEFAULT NULL,
    +  `code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) DEFAULT '1',
    +  `fk_user` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_multicurrency`
    +--
    +
    +LOCK TABLES `llx_multicurrency` WRITE;
    +/*!40000 ALTER TABLE `llx_multicurrency` DISABLE KEYS */;
    +INSERT INTO `llx_multicurrency` VALUES (1,'2017-02-15 21:17:16','EUR','Euros (€)',1,12);
    +/*!40000 ALTER TABLE `llx_multicurrency` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_multicurrency_rate`
    +--
    +
    +DROP TABLE IF EXISTS `llx_multicurrency_rate`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_multicurrency_rate` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `date_sync` datetime DEFAULT NULL,
    +  `rate` double NOT NULL DEFAULT '0',
    +  `fk_multicurrency` int(11) NOT NULL,
    +  `entity` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_multicurrency_rate`
    +--
    +
    +LOCK TABLES `llx_multicurrency_rate` WRITE;
    +/*!40000 ALTER TABLE `llx_multicurrency_rate` DISABLE KEYS */;
    +INSERT INTO `llx_multicurrency_rate` VALUES (1,'2017-02-15 21:17:16',1,1,1);
    +/*!40000 ALTER TABLE `llx_multicurrency_rate` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_myobject`
    +--
    +
    +DROP TABLE IF EXISTS `llx_myobject`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_myobject` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_othertable` int(11) NOT NULL,
    +  `name` varchar(189) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_fk_othertable` (`fk_othertable`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_myobject`
    +--
    +
    +LOCK TABLES `llx_myobject` WRITE;
    +/*!40000 ALTER TABLE `llx_myobject` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_myobject` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclature`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclature`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclature` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `title` varchar(255) DEFAULT NULL,
    +  `fk_object` int(11) NOT NULL DEFAULT '0',
    +  `fk_nomenclature_parent` int(11) NOT NULL DEFAULT '0',
    +  `is_default` int(11) NOT NULL DEFAULT '0',
    +  `qty_reference` double NOT NULL DEFAULT '0',
    +  `totalPRCMO_PMP` double NOT NULL DEFAULT '0',
    +  `totalPRCMO_OF` double NOT NULL DEFAULT '0',
    +  `totalPRCMO` double NOT NULL DEFAULT '0',
    +  `object_type` varchar(255) DEFAULT NULL,
    +  `note_private` longtext,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_object` (`fk_object`),
    +  KEY `fk_nomenclature_parent` (`fk_nomenclature_parent`),
    +  KEY `is_default` (`is_default`),
    +  KEY `qty_reference` (`qty_reference`),
    +  KEY `object_type` (`object_type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclature`
    +--
    +
    +LOCK TABLES `llx_nomenclature` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclature` DISABLE KEYS */;
    +INSERT INTO `llx_nomenclature` VALUES (1,'2018-11-18 16:22:02','2018-11-18 16:25:48','BOM 1',196,0,0,1,0,0,53.9,'product',''),(2,'2018-11-18 17:18:53','2018-11-18 17:20:45','BOM 2',195,0,0,1,0,0,22,'product','');
    +/*!40000 ALTER TABLE `llx_nomenclature` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclature_coef`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclature_coef`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclature_coef` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `label` varchar(255) DEFAULT NULL,
    +  `description` varchar(255) DEFAULT NULL,
    +  `code_type` varchar(30) DEFAULT NULL,
    +  `tx` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `code_type` (`code_type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclature_coef`
    +--
    +
    +LOCK TABLES `llx_nomenclature_coef` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclature_coef` DISABLE KEYS */;
    +INSERT INTO `llx_nomenclature_coef` VALUES (1,'2018-11-18 15:55:54','2018-11-18 15:55:54','Marge','Coef. de marge','coef_marge',1.1);
    +/*!40000 ALTER TABLE `llx_nomenclature_coef` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclature_coef_object`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclature_coef_object`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclature_coef_object` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_object` int(11) NOT NULL DEFAULT '0',
    +  `type_object` varchar(50) DEFAULT NULL,
    +  `code_type` varchar(30) DEFAULT NULL,
    +  `tx_object` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_object` (`fk_object`),
    +  KEY `type_object` (`type_object`),
    +  KEY `code_type` (`code_type`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclature_coef_object`
    +--
    +
    +LOCK TABLES `llx_nomenclature_coef_object` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclature_coef_object` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_nomenclature_coef_object` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclature_workstation`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclature_workstation`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclature_workstation` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_workstation` int(11) NOT NULL DEFAULT '0',
    +  `fk_nomenclature` int(11) NOT NULL DEFAULT '0',
    +  `rang` int(11) NOT NULL DEFAULT '0',
    +  `unifyRang` int(11) NOT NULL DEFAULT '0',
    +  `nb_hour` double NOT NULL DEFAULT '0',
    +  `nb_hour_prepare` double NOT NULL DEFAULT '0',
    +  `nb_hour_manufacture` double NOT NULL DEFAULT '0',
    +  `nb_days_before_beginning` double NOT NULL DEFAULT '0',
    +  `note_private` longtext,
    +  `code_type` varchar(30) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_workstation` (`fk_workstation`),
    +  KEY `fk_nomenclature` (`fk_nomenclature`),
    +  KEY `rang` (`rang`),
    +  KEY `unifyRang` (`unifyRang`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclature_workstation`
    +--
    +
    +LOCK TABLES `llx_nomenclature_workstation` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclature_workstation` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_nomenclature_workstation` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclature_workstation_thm_object`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclature_workstation_thm_object`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclature_workstation_thm_object` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_workstation` int(11) NOT NULL DEFAULT '0',
    +  `fk_object` int(11) NOT NULL DEFAULT '0',
    +  `type_object` varchar(50) DEFAULT NULL,
    +  `thm_object` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_object` (`fk_object`),
    +  KEY `type_object` (`type_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclature_workstation_thm_object`
    +--
    +
    +LOCK TABLES `llx_nomenclature_workstation_thm_object` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclature_workstation_thm_object` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_nomenclature_workstation_thm_object` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_nomenclaturedet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_nomenclaturedet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_nomenclaturedet` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `title` varchar(255) DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `fk_nomenclature` int(11) NOT NULL DEFAULT '0',
    +  `is_imported` int(11) NOT NULL DEFAULT '0',
    +  `rang` int(11) NOT NULL DEFAULT '0',
    +  `unifyRang` int(11) NOT NULL DEFAULT '0',
    +  `code_type` varchar(30) DEFAULT NULL,
    +  `workstations` varchar(255) DEFAULT NULL,
    +  `qty` double NOT NULL DEFAULT '0',
    +  `price` double NOT NULL DEFAULT '0',
    +  `note_private` longtext,
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_product` (`fk_product`),
    +  KEY `fk_nomenclature` (`fk_nomenclature`),
    +  KEY `is_imported` (`is_imported`),
    +  KEY `rang` (`rang`),
    +  KEY `unifyRang` (`unifyRang`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_nomenclaturedet`
    +--
    +
    +LOCK TABLES `llx_nomenclaturedet` WRITE;
    +/*!40000 ALTER TABLE `llx_nomenclaturedet` DISABLE KEYS */;
    +INSERT INTO `llx_nomenclaturedet` VALUES (1,'2018-11-18 16:22:25','2018-11-18 16:25:48','',192,1,0,0,0,'coef_marge','',2,0,'aaa'),(2,'2018-11-18 16:22:37','2018-11-18 16:25:48','',151,1,0,1,0,'coef_marge','',1,0,'bbb'),(3,'2018-11-18 16:25:42','2018-11-18 16:25:48','',10,1,0,2,0,'coef_marge','',1,0,'ccc'),(4,'2018-11-18 17:19:13','2018-11-18 17:20:45','',190,2,0,0,0,'coef_marge','',2,0,'aaa'),(5,'2018-11-18 17:20:19','2018-11-18 17:20:45','',11,2,0,1,0,'coef_marge','',1,0,'bbb'),(6,'2018-11-18 17:20:40','2018-11-18 17:20:45','',10,2,0,2,0,'coef_marge','',1,0,'');
    +/*!40000 ALTER TABLE `llx_nomenclaturedet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_notify`
    +--
    +
    +DROP TABLE IF EXISTS `llx_notify`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_notify` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `daten` datetime DEFAULT NULL,
    +  `fk_action` int(11) NOT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_contact` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `objet_type` varchar(24) COLLATE utf8_unicode_ci NOT NULL,
    +  `objet_id` int(11) NOT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'email',
    +  `type_target` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_notify`
    +--
    +
    +LOCK TABLES `llx_notify` WRITE;
    +/*!40000 ALTER TABLE `llx_notify` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_notify` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_notify_def`
    +--
    +
    +DROP TABLE IF EXISTS `llx_notify_def`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_notify_def` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` date DEFAULT NULL,
    +  `fk_action` int(11) NOT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_contact` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `type` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'email',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_notify_def`
    +--
    +
    +LOCK TABLES `llx_notify_def` WRITE;
    +/*!40000 ALTER TABLE `llx_notify_def` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_notify_def` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_notify_def_object`
    +--
    +
    +DROP TABLE IF EXISTS `llx_notify_def_object`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_notify_def_object` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `objet_type` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `objet_id` int(11) NOT NULL,
    +  `type_notif` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'browser',
    +  `date_notif` datetime DEFAULT NULL,
    +  `user_id` int(11) DEFAULT NULL,
    +  `moreparam` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_notify_def_object`
    +--
    +
    +LOCK TABLES `llx_notify_def_object` WRITE;
    +/*!40000 ALTER TABLE `llx_notify_def_object` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_notify_def_object` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_oauth_state`
    +--
    +
    +DROP TABLE IF EXISTS `llx_oauth_state`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_oauth_state` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `service` varchar(36) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `state` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `fk_adherent` int(11) DEFAULT NULL,
    +  `entity` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_oauth_state`
    +--
    +
    +LOCK TABLES `llx_oauth_state` WRITE;
    +/*!40000 ALTER TABLE `llx_oauth_state` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_oauth_state` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_oauth_token`
    +--
    +
    +DROP TABLE IF EXISTS `llx_oauth_token`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_oauth_token` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `service` varchar(36) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `token` text COLLATE utf8_unicode_ci,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `fk_adherent` int(11) DEFAULT NULL,
    +  `entity` int(11) DEFAULT NULL,
    +  `tokenstring` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_oauth_token`
    +--
    +
    +LOCK TABLES `llx_oauth_token` WRITE;
    +/*!40000 ALTER TABLE `llx_oauth_token` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_oauth_token` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_onlinesignature`
    +--
    +
    +DROP TABLE IF EXISTS `llx_onlinesignature`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_onlinesignature` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `object_type` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `object_id` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `ip` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pathoffile` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_onlinesignature`
    +--
    +
    +LOCK TABLES `llx_onlinesignature` WRITE;
    +/*!40000 ALTER TABLE `llx_onlinesignature` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_onlinesignature` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_opensurvey_comments`
    +--
    +
    +DROP TABLE IF EXISTS `llx_opensurvey_comments`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_opensurvey_comments` (
    +  `id_comment` int(10) unsigned NOT NULL AUTO_INCREMENT,
    +  `id_sondage` char(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `comment` text COLLATE utf8_unicode_ci NOT NULL,
    +  `usercomment` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`id_comment`),
    +  KEY `idx_id_comment` (`id_comment`),
    +  KEY `idx_id_sondage` (`id_sondage`)
    +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_opensurvey_comments`
    +--
    +
    +LOCK TABLES `llx_opensurvey_comments` WRITE;
    +/*!40000 ALTER TABLE `llx_opensurvey_comments` DISABLE KEYS */;
    +INSERT INTO `llx_opensurvey_comments` VALUES (2,'434dio8rxfljs3p1','aaa','aaa'),(5,'434dio8rxfljs3p1','aaa','aaa'),(6,'434dio8rxfljs3p1','gfh','jj'),(11,'434dio8rxfljs3p1','fsdf','fdsf'),(12,'3imby4hf7joiilsu','fsdf','aa'),(16,'3imby4hf7joiilsu','gdfg','gfdg'),(17,'3imby4hf7joiilsu','gfdgd','gdfgd'),(18,'om4e7azfiurnjtqe','fds','fdsf'),(26,'qgsfrgb922rqzocy','gfdg','gfdg'),(27,'qgsfrgb922rqzocy','gfdg','gfd'),(30,'ckanvbe7kt3rdb3h','hfgh','fdfds');
    +/*!40000 ALTER TABLE `llx_opensurvey_comments` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_opensurvey_formquestions`
    +--
    +
    +DROP TABLE IF EXISTS `llx_opensurvey_formquestions`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_opensurvey_formquestions` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `id_sondage` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `question` text COLLATE utf8_unicode_ci,
    +  `available_answers` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_opensurvey_formquestions`
    +--
    +
    +LOCK TABLES `llx_opensurvey_formquestions` WRITE;
    +/*!40000 ALTER TABLE `llx_opensurvey_formquestions` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_opensurvey_formquestions` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_opensurvey_sondage`
    +--
    +
    +DROP TABLE IF EXISTS `llx_opensurvey_sondage`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_opensurvey_sondage` (
    +  `id_sondage` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `commentaires` text COLLATE utf8_unicode_ci,
    +  `mail_admin` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `nom_admin` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `titre` text COLLATE utf8_unicode_ci NOT NULL,
    +  `date_fin` datetime DEFAULT NULL,
    +  `status` int(11) DEFAULT '1',
    +  `format` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
    +  `mailsonde` tinyint(4) NOT NULL DEFAULT '0',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `allow_comments` tinyint(4) NOT NULL DEFAULT '1',
    +  `allow_spy` tinyint(4) NOT NULL DEFAULT '1',
    +  `sujet` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`id_sondage`),
    +  KEY `idx_date_fin` (`date_fin`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_opensurvey_sondage`
    +--
    +
    +LOCK TABLES `llx_opensurvey_sondage` WRITE;
    +/*!40000 ALTER TABLE `llx_opensurvey_sondage` DISABLE KEYS */;
    +INSERT INTO `llx_opensurvey_sondage` VALUES ('m4467s2mtk6khmxc','What is your prefered date for a brunch','myemail@aaa.com','fdfds',0,'Date of next brunch','2013-03-07 00:00:00',1,'D',1,'2018-03-16 10:00:54',1,1,1,',1483473600'),('tim1dye8x5eeetxu','Please vote for the candidate you want to have for our new president this year.',NULL,NULL,12,'Election of new president','2017-02-26 04:00:00',1,'A',0,'2018-03-16 10:00:54',1,1,0,'Alan Candide@foragainst,Alex Candor@foragainst');
    +/*!40000 ALTER TABLE `llx_opensurvey_sondage` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_opensurvey_user_formanswers`
    +--
    +
    +DROP TABLE IF EXISTS `llx_opensurvey_user_formanswers`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_opensurvey_user_formanswers` (
    +  `fk_user_survey` int(11) NOT NULL,
    +  `fk_question` int(11) NOT NULL,
    +  `reponses` text COLLATE utf8_unicode_ci
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_opensurvey_user_formanswers`
    +--
    +
    +LOCK TABLES `llx_opensurvey_user_formanswers` WRITE;
    +/*!40000 ALTER TABLE `llx_opensurvey_user_formanswers` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_opensurvey_user_formanswers` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_opensurvey_user_studs`
    +--
    +
    +DROP TABLE IF EXISTS `llx_opensurvey_user_studs`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_opensurvey_user_studs` (
    +  `id_users` int(11) NOT NULL AUTO_INCREMENT,
    +  `nom` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `id_sondage` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `reponses` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    +  PRIMARY KEY (`id_users`),
    +  KEY `idx_id_users` (`id_users`),
    +  KEY `idx_nom` (`nom`),
    +  KEY `idx_id_sondage` (`id_sondage`),
    +  KEY `idx_opensurvey_user_studs_id_users` (`id_users`),
    +  KEY `idx_opensurvey_user_studs_nom` (`nom`),
    +  KEY `idx_opensurvey_user_studs_id_sondage` (`id_sondage`)
    +) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_opensurvey_user_studs`
    +--
    +
    +LOCK TABLES `llx_opensurvey_user_studs` WRITE;
    +/*!40000 ALTER TABLE `llx_opensurvey_user_studs` DISABLE KEYS */;
    +INSERT INTO `llx_opensurvey_user_studs` VALUES (1,'gfdgdf','om4e7azfiurnjtqe','01'),(2,'aa','3imby4hf7joiilsu','210'),(3,'fsdf','z2qcqjh5pm1q4p99','0110'),(5,'hfghf','z2qcqjh5pm1q4p99','1110'),(6,'qqqq','ah9xvaqu1ajjrqse','000111'),(7,'hjgh','ah9xvaqu1ajjrqse','000010'),(8,'bcvb','qgsfrgb922rqzocy','011000'),(9,'gdfg','ah9xvaqu1ajjrqse','001000'),(10,'ggg','ah9xvaqu1ajjrqse','000100'),(11,'gfdgd','ah9xvaqu1ajjrqse','001000'),(12,'hhhh','ah9xvaqu1ajjrqse','010000'),(13,'iii','ah9xvaqu1ajjrqse','000100'),(14,'kkk','ah9xvaqu1ajjrqse','001000'),(15,'lllll','ah9xvaqu1ajjrqse','000001'),(16,'kk','ah9xvaqu1ajjrqse','000001'),(17,'gggg','ah9xvaqu1ajjrqse','001000'),(18,'mmmm','ah9xvaqu1ajjrqse','000000'),(19,'jkjkj','ah9xvaqu1ajjrqse','000001'),(20,'azerty','8mcdnf2hgcntfibe','012'),(21,'hfghfg','8mcdnf2hgcntfibe','012'),(22,'fd','ckanvbe7kt3rdb3h','10'),(25,'John Doe','m4467s2mtk6khmxc','1'),(26,'Martial Bill','m4467s2mtk6khmxc','01'),(27,'Marissa Campbell','m4467s2mtk6khmxc','11'),(28,'Leonard Cast','m4467s2mtk6khmxc','01'),(29,'John Doe','tim1dye8x5eeetxu','01'),(30,'Eldy','tim1dye8x5eeetxu','11');
    +/*!40000 ALTER TABLE `llx_opensurvey_user_studs` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_overwrite_trans`
    +--
    +
    +DROP TABLE IF EXISTS `llx_overwrite_trans`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_overwrite_trans` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `lang` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `transkey` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `transvalue` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_overwrite_trans` (`lang`,`transkey`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_overwrite_trans`
    +--
    +
    +LOCK TABLES `llx_overwrite_trans` WRITE;
    +/*!40000 ALTER TABLE `llx_overwrite_trans` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_overwrite_trans` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_packages`
    +--
    +
    +DROP TABLE IF EXISTS `llx_packages`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_packages` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `sqldump` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `srcfile1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `srcfile2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `srcfile3` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `conffile1` mediumtext COLLATE utf8_unicode_ci,
    +  `sqlafter` mediumtext COLLATE utf8_unicode_ci,
    +  `crontoadd` mediumtext COLLATE utf8_unicode_ci,
    +  `cliafter` text COLLATE utf8_unicode_ci,
    +  `status` int(11) DEFAULT NULL,
    +  `targetsrcfile1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `targetsrcfile2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `targetsrcfile3` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `datafile1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `targetdatafile1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `targetconffile1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  `note_private` mediumtext COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_packages_rowid` (`rowid`),
    +  KEY `idx_packages_ref` (`ref`),
    +  KEY `idx_packages_entity` (`entity`),
    +  KEY `idx_packages_import_key` (`import_key`),
    +  KEY `idx_packages_status` (`status`)
    +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_packages`
    +--
    +
    +LOCK TABLES `llx_packages` WRITE;
    +/*!40000 ALTER TABLE `llx_packages` DISABLE KEYS */;
    +INSERT INTO `llx_packages` VALUES (1,'Dolibarr',1,'Dolibarr ERP CRM','2017-09-23 20:27:03','2017-11-04 20:19:20',1,12,NULL,'a','__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_dev/htdocs','__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_dev/htdocs/install/doctemplates','__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_dev/scripts','<?php\r\n//\r\n// File generated by Dolibarr installer 7.0\r\n//\r\n// Take a look at conf.php.example file for an example of conf.php file\r\n// and explanations for all possibles parameters.\r\n//\r\n$dolibarr_main_url_root=\'https://__APPDOMAIN__/\';\r\n$dolibarr_main_document_root=\'__INSTANCEDIR__/htdocs\';\r\n$dolibarr_main_url_root_alt=\'/custom\';\r\n$dolibarr_main_document_root_alt=\'__INSTANCEDIR__/htdocs/custom\';\r\n$dolibarr_main_data_root=\'__INSTANCEDIR__/documents\';\r\n$dolibarr_main_db_host=\'localhost\';\r\n$dolibarr_main_db_port=\'3306\';\r\n$dolibarr_main_db_name=\'__DBNAME__\';\r\n$dolibarr_main_db_user=\'__DBUSER__\';\r\n$dolibarr_main_db_pass=\'__DBPASSWORD__\';\r\n$dolibarr_main_db_type=\'mysqli\';\r\n$dolibarr_main_db_character_set=\'utf8\';\r\n$dolibarr_main_db_collation=\'utf8_unicode_ci\';\r\n$dolibarr_main_authentication=\'dolibarr\';\r\n//$dolibarr_auto_user=\'xxx\';\r\n\r\n// Specific settings\r\n$dolibarr_main_prod=\'0\';\r\n$dolibarr_nocsrfcheck=\'0\';\r\n$dolibarr_main_force_https=\'0\';\r\n$dolibarr_main_cookie_cryptkey=\'__APPUNIQUEKEY__\';\r\n$dolibarr_mailing_limit_sendbyweb=\'50\';\r\n$dolibarr_mailing_limit_sendbycli=\'400\';\r\n\r\n$dolibarr_memcached_view_disable=1;\r\n?>','UPDATE llx_user set pass_crypted = \'__APPPASSWORD0SALTED__\', email = \'__APPEMAIL__\' where login = \'admin\' AND (pass = \'admin\' OR pass_crypted = \'25edccd81ce2def41eae1317392fd106d8152a5b\');\r\nREPLACE INTO llx_const (name, entity, value, type, visible) values(\'CRON_KEY\', 0, \'__OSUSERNAME__\', \'chaine\', 0);\r\nREPLACE INTO llx_const (name, entity, value, type, visible) values(\'MAIN_INFO_SOCIETE_NOM\', 1, \'__APPORGNAME__\', \'chaine\', 0);\r\nREPLACE INTO llx_const (name, entity, value, type, visible) values(\'MAIN_INFO_SOCIETE_COUNTRY\', 1, \'__APPCOUNTRYIDCODELABEL__\', \'chaine\', 0);\r\nUPDATE llx_const set value = \'__APPEMAIL__\' where name = \'MAIN_MAIL_EMAIL_FROM\';\r\n\r\n','__INSTALLMINUTES__  __INSTALLHOURS__ * * * __OSUSERNAME__ __INSTANCEDIR__/scripts/cron/cron_run_jobs.php __OSUSERNAME__ firstadmin > __INSTANCEDIR__/documents/cron.log 2>&1','touch __INSTANCEDIR__/documents/install.lock; \r\nchown -R __OSUSERNAME__.__OSUSERNAME__ __INSTANCEDIR__/documents',1,'__INSTANCEDIR__/htdocs','__INSTANCEDIR__/documents/doctemplates','__INSTANCEDIR__/scripts','__DOL_DATA_ROOT__/sellyoursaas/packages/__PACKAGEREF__','a','__INSTANCEDIR__/htdocs/conf/conf.php','',''),(5,'Dolibarr 6',1,'Dolibarr ERP CRM','2017-09-23 20:27:03','2017-11-04 20:19:20',12,12,NULL,NULL,'__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_6.0/htdocs','__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_6.0/htdocs/install/doctemplates','__DOL_DATA_ROOT__/sellyoursaas/git/dolibarr_6.0/scripts','<?php\r\n//\r\n// File generated by Dolibarr installer 7.0\r\n//\r\n// Take a look at conf.php.example file for an example of conf.php file\r\n// and explanations for all possibles parameters.\r\n//\r\n$dolibarr_main_url_root=\'https://__APPDOMAIN__/\';\r\n$dolibarr_main_document_root=\'__INSTANCEDIR__/htdocs\';\r\n$dolibarr_main_url_root_alt=\'/custom\';\r\n$dolibarr_main_document_root_alt=\'__INSTANCEDIR__/htdocs/custom\';\r\n$dolibarr_main_data_root=\'__INSTANCEDIR__/documents\';\r\n$dolibarr_main_db_host=\'localhost\';\r\n$dolibarr_main_db_port=\'3306\';\r\n$dolibarr_main_db_name=\'__DBNAME__\';\r\n$dolibarr_main_db_user=\'__DBUSER__\';\r\n$dolibarr_main_db_pass=\'__DBPASSWORD__\';\r\n$dolibarr_main_db_type=\'mysqli\';\r\n$dolibarr_main_db_character_set=\'utf8\';\r\n$dolibarr_main_db_collation=\'utf8_unicode_ci\';\r\n$dolibarr_main_authentication=\'dolibarr\';\r\n//$dolibarr_auto_user=\'xxx\';\r\n\r\n// Specific settings\r\n$dolibarr_main_prod=\'0\';\r\n$dolibarr_nocsrfcheck=\'0\';\r\n$dolibarr_main_force_https=\'0\';\r\n$dolibarr_main_cookie_cryptkey=\'__APPUNIQUEKEY__\';\r\n$dolibarr_mailing_limit_sendbyweb=\'50\';\r\n$dolibarr_mailing_limit_sendbycli=\'400\';\r\n\r\n$dolibarr_memcached_view_disable=1;\r\n?>','UPDATE llx_user set pass_crypted = \'__APPPASSWORD0SALTED__\', email = \'__APPEMAIL__\' where login = \'admin\' AND (pass = \'admin\' OR pass_crypted = \'25edccd81ce2def41eae1317392fd106d8152a5b\');\r\nREPLACE INTO llx_const (name, entity, value, type, visible) values(\'CRON_KEY\', 0, \'__OSUSERNAME__\', \'chaine\', 0);','__INSTALLMINUTES__  __INSTALLHOURS__ * * * __OSUSERNAME__ __INSTANCEDIR__/scripts/cron/cron_run_jobs.php __OSUSERNAME__ firstadmin > __INSTANCEDIR__/documents/cron.log 2>&1','touch __INSTANCEDIR__/documents/install.lock; \r\nchown -R __OSUSERNAME__.__OSUSERNAME__ __INSTANCEDIR__/documents',1,'__INSTANCEDIR__/htdocs','__INSTANCEDIR__/documents/doctemplates','__INSTANCEDIR__/scripts','__DOL_DATA_ROOT__/sellyoursaas/packages/__PACKAGEREF__',NULL,'__INSTANCEDIR__/htdocs/conf/conf.php','',''),(6,'DoliPos',1,'Module POS','2017-09-23 20:27:03','2017-11-04 20:19:20',12,12,NULL,NULL,'__DOL_DATA_ROOT__/sellyoursaas/git/module_pos',NULL,NULL,NULL,NULL,NULL,'rm -fr __INSTANCEDIR__/documents/install.lock;\r\ncd __INSTANCEDIR__/htdocs/install/;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Societe;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Facture;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Commande;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Product;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Stock;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_Banque;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_POS;\r\ntouch __INSTANCEDIR__/documents/install.lock; \r\nchown -R __OSUSERNAME__.__OSUSERNAME__ __INSTANCEDIR__/documents;',1,'__INSTANCEDIR__/htdocs',NULL,NULL,'__DOL_DATA_ROOT__/sellyoursaas/packages/__PACKAGEREF__',NULL,NULL,'',''),(7,'DoliMed',1,'Module DoliMed','2017-09-23 20:27:03','2017-11-04 20:19:20',12,12,NULL,NULL,'__DOL_DATA_ROOT__/sellyoursaas/git/module_dolimed/htdocs',NULL,NULL,NULL,NULL,NULL,'rm -fr __INSTANCEDIR__/documents/install.lock;\r\ncd __INSTANCEDIR__/htdocs/install/;\r\nphp __INSTANCEDIR__/htdocs/install/upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_SOCIETE,MAIN_MODULE_CabinetMed;\r\ntouch __INSTANCEDIR__/documents/install.lock; \r\nchown -R __OSUSERNAME__.__OSUSERNAME__ __INSTANCEDIR__/documents;',1,'__INSTANCEDIR__/htdocs',NULL,NULL,'__DOL_DATA_ROOT__/sellyoursaas/packages/__PACKAGEREF__',NULL,NULL,'','');
    +/*!40000 ALTER TABLE `llx_packages` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_packages_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_packages_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_packages_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_packages_extrafields`
    +--
    +
    +LOCK TABLES `llx_packages_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_packages_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_packages_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_paiement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_paiement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_paiement` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_paiement` int(11) NOT NULL,
    +  `num_paiement` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL DEFAULT '0',
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_export_compta` int(11) NOT NULL DEFAULT '0',
    +  `multicurrency_amount` double(24,8) DEFAULT '0.00000000',
    +  `ext_payment_id` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ext_payment_site` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_paiement`
    +--
    +
    +LOCK TABLES `llx_paiement` WRITE;
    +/*!40000 ALTER TABLE `llx_paiement` DISABLE KEYS */;
    +INSERT INTO `llx_paiement` VALUES (2,'',1,'2011-07-18 20:50:24','2016-07-30 15:13:20','2016-07-08 12:00:00',20.00000000,6,'','',5,1,NULL,0,0,0.00000000,NULL,NULL),(3,'',1,'2011-07-18 20:50:47','2016-07-30 15:13:20','2016-07-08 12:00:00',10.00000000,4,'','',6,1,NULL,0,0,0.00000000,NULL,NULL),(5,'',1,'2011-08-01 03:34:11','2016-07-30 15:12:32','2015-08-01 03:34:11',5.63000000,6,'','Payment Invoice FA1108-0003',8,1,NULL,0,0,0.00000000,NULL,NULL),(6,'',1,'2011-08-06 20:33:54','2016-07-30 15:12:32','2015-08-06 20:33:53',5.98000000,4,'','Payment Invoice FA1108-0004',13,1,NULL,0,0,0.00000000,NULL,NULL),(8,'',1,'2011-08-08 02:53:40','2016-07-30 15:12:32','2015-08-08 12:00:00',26.10000000,4,'','',14,1,NULL,0,0,0.00000000,NULL,NULL),(9,'',1,'2011-08-08 02:55:58','2016-07-30 15:12:32','2015-08-08 12:00:00',26.96000000,1,'','',15,1,NULL,0,0,0.00000000,NULL,NULL),(17,'',1,'2012-12-09 15:28:44','2016-07-30 15:12:32','2015-12-09 12:00:00',2.00000000,4,'','',16,1,NULL,0,0,0.00000000,NULL,NULL),(18,'',1,'2012-12-09 15:28:53','2016-07-30 15:12:32','2015-12-09 12:00:00',-2.00000000,4,'','',17,1,NULL,0,0,0.00000000,NULL,NULL),(19,'',1,'2012-12-09 17:35:55','2016-07-30 15:12:32','2015-12-09 12:00:00',-2.00000000,4,'','',18,1,NULL,0,0,0.00000000,NULL,NULL),(20,'',1,'2012-12-09 17:37:02','2016-07-30 15:12:32','2015-12-09 12:00:00',2.00000000,4,'','',19,1,NULL,0,0,0.00000000,NULL,NULL),(21,'',1,'2012-12-09 18:35:07','2016-07-30 15:12:32','2015-12-09 12:00:00',-2.00000000,4,'','',20,1,NULL,0,0,0.00000000,NULL,NULL),(23,'',1,'2012-12-12 18:54:33','2016-07-30 15:12:32','2015-12-12 12:00:00',1.00000000,1,'','',21,1,NULL,0,0,0.00000000,NULL,NULL),(24,'',1,'2013-03-06 16:48:16','2016-07-30 15:13:20','2016-03-06 00:00:00',20.00000000,4,'','Adhésion/cotisation 2016',22,1,NULL,0,0,0.00000000,NULL,NULL),(25,'',1,'2013-03-20 14:30:11','2016-07-30 15:13:20','2016-03-20 00:00:00',10.00000000,2,'','Adhésion/cotisation 2011',23,1,NULL,0,0,0.00000000,NULL,NULL),(26,'',1,'2014-03-02 19:57:58','2016-07-30 15:13:20','2016-07-09 12:00:00',605.00000000,2,'','',24,1,NULL,0,0,0.00000000,NULL,NULL),(29,'',1,'2014-03-02 20:01:39','2016-07-30 15:13:20','2016-03-19 12:00:00',500.00000000,4,'','',26,1,NULL,0,0,0.00000000,NULL,NULL),(30,'',1,'2014-03-02 20:02:06','2016-07-30 15:13:20','2016-03-21 12:00:00',400.00000000,2,'','',27,1,NULL,0,0,0.00000000,NULL,NULL),(32,'',1,'2014-03-03 19:22:32','2016-07-30 15:12:32','2015-10-03 12:00:00',-400.00000000,4,'','',28,1,NULL,0,0,0.00000000,NULL,NULL),(33,'',1,'2014-03-03 19:23:16','2016-07-30 15:13:20','2016-03-10 12:00:00',-300.00000000,4,'','',29,1,NULL,0,0,0.00000000,NULL,NULL),(34,'PAY1603-0001',1,'2017-02-06 08:10:24','2017-02-06 04:10:24','2016-03-22 12:00:00',150.00000000,7,'','',33,12,NULL,0,0,150.00000000,NULL,NULL),(35,'PAY1603-0002',1,'2017-02-06 08:10:50','2017-02-06 04:10:50','2016-03-25 12:00:00',140.00000000,3,'','',34,12,NULL,0,0,140.00000000,NULL,NULL),(36,'PAY1702-0003',1,'2017-02-21 16:07:43','2017-02-21 12:07:43','2017-02-21 12:00:00',50.00000000,3,'T170201','',37,12,NULL,0,0,50.00000000,NULL,NULL),(38,'PAY1803-0004',1,'2018-03-16 13:59:31','2018-03-16 09:59:31','2018-03-16 12:00:00',10.00000000,7,'','',39,12,NULL,0,0,10.00000000,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_paiement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_paiement_facture`
    +--
    +
    +DROP TABLE IF EXISTS `llx_paiement_facture`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_paiement_facture` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_paiement` int(11) DEFAULT NULL,
    +  `fk_facture` int(11) DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `multicurrency_amount` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_paiement_facture` (`fk_paiement`,`fk_facture`),
    +  KEY `idx_paiement_facture_fk_facture` (`fk_facture`),
    +  KEY `idx_paiement_facture_fk_paiement` (`fk_paiement`),
    +  CONSTRAINT `fk_paiement_facture_fk_facture` FOREIGN KEY (`fk_facture`) REFERENCES `llx_facture` (`rowid`),
    +  CONSTRAINT `fk_paiement_facture_fk_paiement` FOREIGN KEY (`fk_paiement`) REFERENCES `llx_paiement` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_paiement_facture`
    +--
    +
    +LOCK TABLES `llx_paiement_facture` WRITE;
    +/*!40000 ALTER TABLE `llx_paiement_facture` DISABLE KEYS */;
    +INSERT INTO `llx_paiement_facture` VALUES (2,2,2,20.00000000,0.00000000),(3,3,2,10.00000000,0.00000000),(5,5,5,5.63000000,0.00000000),(6,6,6,5.98000000,0.00000000),(9,8,2,16.10000000,0.00000000),(10,8,8,10.00000000,0.00000000),(11,9,3,15.00000000,0.00000000),(12,9,9,11.96000000,0.00000000),(24,20,9,1.00000000,0.00000000),(31,26,32,600.00000000,0.00000000),(36,29,32,500.00000000,0.00000000),(37,30,32,400.00000000,0.00000000),(38,34,211,150.00000000,150.00000000),(39,35,211,140.00000000,140.00000000),(40,36,211,50.00000000,50.00000000),(42,38,149,10.00000000,10.00000000);
    +/*!40000 ALTER TABLE `llx_paiement_facture` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_paiementcharge`
    +--
    +
    +DROP TABLE IF EXISTS `llx_paiementcharge`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_paiementcharge` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_charge` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_typepaiement` int(11) NOT NULL,
    +  `num_paiement` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_paiementcharge`
    +--
    +
    +LOCK TABLES `llx_paiementcharge` WRITE;
    +/*!40000 ALTER TABLE `llx_paiementcharge` DISABLE KEYS */;
    +INSERT INTO `llx_paiementcharge` VALUES (4,4,'2011-08-05 23:11:37','2011-08-05 21:11:37','2011-08-05 12:00:00',10.00000000,2,'','',12,1,NULL);
    +/*!40000 ALTER TABLE `llx_paiementcharge` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_paiementfourn`
    +--
    +
    +DROP TABLE IF EXISTS `llx_paiementfourn`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_paiementfourn` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `datep` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_paiement` int(11) NOT NULL,
    +  `num_paiement` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `statut` smallint(6) NOT NULL DEFAULT '0',
    +  `multicurrency_amount` double(24,8) DEFAULT '0.00000000',
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_paiementfourn`
    +--
    +
    +LOCK TABLES `llx_paiementfourn` WRITE;
    +/*!40000 ALTER TABLE `llx_paiementfourn` DISABLE KEYS */;
    +INSERT INTO `llx_paiementfourn` VALUES (1,'1',1,'2018-01-19 11:17:47','2016-01-22 18:56:34','2016-01-22 12:00:00',900.00000000,12,NULL,4,'','',30,0,0.00000000,NULL),(2,'SPAY1702-0001',1,'2017-02-01 15:02:45','2017-02-01 19:02:44','2017-02-01 12:00:00',200.00000000,12,NULL,4,'','',32,0,200.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_paiementfourn` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_paiementfourn_facturefourn`
    +--
    +
    +DROP TABLE IF EXISTS `llx_paiementfourn_facturefourn`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_paiementfourn_facturefourn` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_paiementfourn` int(11) DEFAULT NULL,
    +  `fk_facturefourn` int(11) DEFAULT NULL,
    +  `amount` double DEFAULT '0',
    +  `multicurrency_amount` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_paiementfourn_facturefourn` (`fk_paiementfourn`,`fk_facturefourn`),
    +  KEY `idx_paiementfourn_facturefourn_fk_facture` (`fk_facturefourn`),
    +  KEY `idx_paiementfourn_facturefourn_fk_paiement` (`fk_paiementfourn`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_paiementfourn_facturefourn`
    +--
    +
    +LOCK TABLES `llx_paiementfourn_facturefourn` WRITE;
    +/*!40000 ALTER TABLE `llx_paiementfourn_facturefourn` DISABLE KEYS */;
    +INSERT INTO `llx_paiementfourn_facturefourn` VALUES (1,1,16,900,0.00000000),(2,2,20,200,200.00000000);
    +/*!40000 ALTER TABLE `llx_paiementfourn_facturefourn` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_payment_donation`
    +--
    +
    +DROP TABLE IF EXISTS `llx_payment_donation`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_payment_donation` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_donation` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_payment_donation`
    +--
    +
    +LOCK TABLES `llx_payment_donation` WRITE;
    +/*!40000 ALTER TABLE `llx_payment_donation` DISABLE KEYS */;
    +INSERT INTO `llx_payment_donation` VALUES (1,3,'2017-09-06 20:08:36','2017-09-06 16:08:36','2017-09-06 12:00:00',10.00000000,4,'','',38,12,NULL);
    +/*!40000 ALTER TABLE `llx_payment_donation` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_payment_expensereport`
    +--
    +
    +DROP TABLE IF EXISTS `llx_payment_expensereport`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_payment_expensereport` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_expensereport` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_payment_expensereport`
    +--
    +
    +LOCK TABLES `llx_payment_expensereport` WRITE;
    +/*!40000 ALTER TABLE `llx_payment_expensereport` DISABLE KEYS */;
    +INSERT INTO `llx_payment_expensereport` VALUES (1,1,'2017-02-16 02:13:13','2017-02-15 22:13:13','2017-02-16 12:00:00',5.00000000,7,'','',0,12,NULL),(2,1,'2017-02-16 02:22:09','2017-02-15 22:22:09','2017-02-16 12:00:00',1.00000000,7,'','',36,12,NULL);
    +/*!40000 ALTER TABLE `llx_payment_expensereport` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_payment_loan`
    +--
    +
    +DROP TABLE IF EXISTS `llx_payment_loan`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_payment_loan` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_loan` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datep` datetime DEFAULT NULL,
    +  `amount_capital` double(24,8) DEFAULT NULL,
    +  `amount_insurance` double(24,8) DEFAULT NULL,
    +  `amount_interest` double(24,8) DEFAULT NULL,
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) NOT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_payment_loan`
    +--
    +
    +LOCK TABLES `llx_payment_loan` WRITE;
    +/*!40000 ALTER TABLE `llx_payment_loan` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_payment_loan` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_payment_salary`
    +--
    +
    +DROP TABLE IF EXISTS `llx_payment_salary`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_payment_salary` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_user` int(11) NOT NULL,
    +  `datep` date DEFAULT NULL,
    +  `datev` date DEFAULT NULL,
    +  `salary` double(24,8) DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `datesp` date DEFAULT NULL,
    +  `dateep` date DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_payment_salary_ref` (`num_payment`),
    +  KEY `idx_payment_salary_user` (`fk_user`,`entity`),
    +  KEY `idx_payment_salary_datep` (`datep`),
    +  KEY `idx_payment_salary_datesp` (`datesp`),
    +  KEY `idx_payment_salary_dateep` (`dateep`),
    +  CONSTRAINT `fk_payment_salary_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_payment_salary`
    +--
    +
    +LOCK TABLES `llx_payment_salary` WRITE;
    +/*!40000 ALTER TABLE `llx_payment_salary` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_payment_salary` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_payment_various`
    +--
    +
    +DROP TABLE IF EXISTS `llx_payment_various`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_payment_various` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `datep` date DEFAULT NULL,
    +  `datev` date DEFAULT NULL,
    +  `sens` smallint(6) NOT NULL DEFAULT '0',
    +  `amount` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `fk_typepayment` int(11) NOT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_payment_various`
    +--
    +
    +LOCK TABLES `llx_payment_various` WRITE;
    +/*!40000 ALTER TABLE `llx_payment_various` DISABLE KEYS */;
    +INSERT INTO `llx_payment_various` VALUES (2,NULL,'2017-07-14 14:46:19','2017-07-14 18:46:19','2017-07-14','2017-07-14',0,123.00000000,4,'','Miscellaneous payment','518',NULL,1,NULL,48,12,NULL);
    +/*!40000 ALTER TABLE `llx_payment_various` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_prelevement_bons`
    +--
    +
    +DROP TABLE IF EXISTS `llx_prelevement_bons`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_prelevement_bons` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `statut` smallint(6) DEFAULT '0',
    +  `credite` smallint(6) DEFAULT '0',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `date_trans` datetime DEFAULT NULL,
    +  `method_trans` smallint(6) DEFAULT NULL,
    +  `fk_user_trans` int(11) DEFAULT NULL,
    +  `date_credit` datetime DEFAULT NULL,
    +  `fk_user_credit` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_prelevement_bons_ref` (`ref`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_prelevement_bons`
    +--
    +
    +LOCK TABLES `llx_prelevement_bons` WRITE;
    +/*!40000 ALTER TABLE `llx_prelevement_bons` DISABLE KEYS */;
    +INSERT INTO `llx_prelevement_bons` VALUES (1,'T170201',1,'2017-02-21 15:53:46',50.00000000,2,0,NULL,'2017-02-21 12:00:00',0,12,'2017-02-21 12:00:00',12);
    +/*!40000 ALTER TABLE `llx_prelevement_bons` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_prelevement_facture`
    +--
    +
    +DROP TABLE IF EXISTS `llx_prelevement_facture`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_prelevement_facture` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_facture` int(11) NOT NULL,
    +  `fk_prelevement_lignes` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_prelevement_facture_fk_prelevement_lignes` (`fk_prelevement_lignes`),
    +  CONSTRAINT `fk_prelevement_facture_fk_prelevement_lignes` FOREIGN KEY (`fk_prelevement_lignes`) REFERENCES `llx_prelevement_lignes` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_prelevement_facture`
    +--
    +
    +LOCK TABLES `llx_prelevement_facture` WRITE;
    +/*!40000 ALTER TABLE `llx_prelevement_facture` DISABLE KEYS */;
    +INSERT INTO `llx_prelevement_facture` VALUES (1,211,1);
    +/*!40000 ALTER TABLE `llx_prelevement_facture` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_prelevement_facture_demande`
    +--
    +
    +DROP TABLE IF EXISTS `llx_prelevement_facture_demande`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_prelevement_facture_demande` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_facture` int(11) NOT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `date_demande` datetime NOT NULL,
    +  `traite` smallint(6) DEFAULT '0',
    +  `date_traite` datetime DEFAULT NULL,
    +  `fk_prelevement_bons` int(11) DEFAULT NULL,
    +  `fk_user_demande` int(11) NOT NULL,
    +  `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_prelevement_facture_demande`
    +--
    +
    +LOCK TABLES `llx_prelevement_facture_demande` WRITE;
    +/*!40000 ALTER TABLE `llx_prelevement_facture_demande` DISABLE KEYS */;
    +INSERT INTO `llx_prelevement_facture_demande` VALUES (1,211,50.00000000,'2017-02-06 08:11:17',1,'2017-02-21 15:53:46',1,12,'','','','');
    +/*!40000 ALTER TABLE `llx_prelevement_facture_demande` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_prelevement_lignes`
    +--
    +
    +DROP TABLE IF EXISTS `llx_prelevement_lignes`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_prelevement_lignes` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_prelevement_bons` int(11) DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `statut` smallint(6) DEFAULT '0',
    +  `client_nom` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_prelevement_lignes_fk_prelevement_bons` (`fk_prelevement_bons`),
    +  CONSTRAINT `fk_prelevement_lignes_fk_prelevement_bons` FOREIGN KEY (`fk_prelevement_bons`) REFERENCES `llx_prelevement_bons` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_prelevement_lignes`
    +--
    +
    +LOCK TABLES `llx_prelevement_lignes` WRITE;
    +/*!40000 ALTER TABLE `llx_prelevement_lignes` DISABLE KEYS */;
    +INSERT INTO `llx_prelevement_lignes` VALUES (1,1,19,2,'Magic Food Store',50.00000000,'','','','',NULL);
    +/*!40000 ALTER TABLE `llx_prelevement_lignes` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_prelevement_rejet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_prelevement_rejet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_prelevement_rejet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_prelevement_lignes` int(11) DEFAULT NULL,
    +  `date_rejet` datetime DEFAULT NULL,
    +  `motif` int(11) DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `fk_user_creation` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `afacturer` tinyint(4) DEFAULT '0',
    +  `fk_facture` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_prelevement_rejet`
    +--
    +
    +LOCK TABLES `llx_prelevement_rejet` WRITE;
    +/*!40000 ALTER TABLE `llx_prelevement_rejet` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_prelevement_rejet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_printer_receipt`
    +--
    +
    +DROP TABLE IF EXISTS `llx_printer_receipt`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_printer_receipt` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `name` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_type` int(11) DEFAULT NULL,
    +  `fk_profile` int(11) DEFAULT NULL,
    +  `parameter` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_printer_receipt`
    +--
    +
    +LOCK TABLES `llx_printer_receipt` WRITE;
    +/*!40000 ALTER TABLE `llx_printer_receipt` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_printer_receipt` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_printer_receipt_template`
    +--
    +
    +DROP TABLE IF EXISTS `llx_printer_receipt_template`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_printer_receipt_template` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `name` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `template` text COLLATE utf8_unicode_ci,
    +  `entity` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_printer_receipt_template`
    +--
    +
    +LOCK TABLES `llx_printer_receipt_template` WRITE;
    +/*!40000 ALTER TABLE `llx_printer_receipt_template` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_printer_receipt_template` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_printing`
    +--
    +
    +DROP TABLE IF EXISTS `llx_printing`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_printing` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `printer_name` text COLLATE utf8_unicode_ci NOT NULL,
    +  `printer_location` text COLLATE utf8_unicode_ci NOT NULL,
    +  `printer_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `copy` int(11) NOT NULL DEFAULT '1',
    +  `module` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `driver` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `userid` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_printing`
    +--
    +
    +LOCK TABLES `llx_printing` WRITE;
    +/*!40000 ALTER TABLE `llx_printing` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_printing` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `virtual` tinyint(4) NOT NULL DEFAULT '0',
    +  `fk_parent` int(11) DEFAULT '0',
    +  `ref` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `customcode` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_country` int(11) DEFAULT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `price_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_min` double(24,8) DEFAULT '0.00000000',
    +  `price_min_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT',
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `recuperableonly` int(11) NOT NULL DEFAULT '0',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `tosell` tinyint(4) DEFAULT '1',
    +  `tobuy` tinyint(4) DEFAULT '1',
    +  `onportal` smallint(6) DEFAULT '0',
    +  `tobatch` tinyint(4) NOT NULL DEFAULT '0',
    +  `fk_product_type` int(11) DEFAULT '0',
    +  `duration` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `seuil_stock_alerte` int(11) DEFAULT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `barcode` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_barcode_type` int(11) DEFAULT NULL,
    +  `accountancy_code_sell` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code_sell_intra` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code_sell_export` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code_buy` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `partnumber` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `weight` float DEFAULT NULL,
    +  `weight_units` tinyint(4) DEFAULT NULL,
    +  `length` float DEFAULT NULL,
    +  `length_units` tinyint(4) DEFAULT NULL,
    +  `surface` float DEFAULT NULL,
    +  `surface_units` tinyint(4) DEFAULT NULL,
    +  `volume` float DEFAULT NULL,
    +  `volume_units` tinyint(4) DEFAULT NULL,
    +  `stock` double DEFAULT NULL,
    +  `pmp` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `fifo` double(24,8) DEFAULT NULL,
    +  `lifo` double(24,8) DEFAULT NULL,
    +  `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT 'default@product',
    +  `finished` tinyint(4) DEFAULT NULL,
    +  `hidden` tinyint(4) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `desiredstock` int(11) DEFAULT '0',
    +  `fk_price_expression` int(11) DEFAULT NULL,
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `cost_price` double(24,8) DEFAULT NULL,
    +  `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `price_autogen` smallint(6) DEFAULT '0',
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT '',
    +  `width` float DEFAULT NULL,
    +  `width_units` tinyint(4) DEFAULT NULL,
    +  `height` float DEFAULT NULL,
    +  `height_units` tinyint(4) DEFAULT NULL,
    +  `fk_default_warehouse` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_ref` (`ref`,`entity`),
    +  UNIQUE KEY `uk_product_barcode` (`barcode`,`fk_barcode_type`,`entity`),
    +  KEY `idx_product_label` (`label`),
    +  KEY `idx_product_barcode` (`barcode`),
    +  KEY `idx_product_import_key` (`import_key`),
    +  KEY `idx_product_fk_country` (`fk_country`),
    +  KEY `idx_product_fk_user_author` (`fk_user_author`),
    +  KEY `idx_product_fk_barcode_type` (`fk_barcode_type`),
    +  KEY `fk_product_fk_unit` (`fk_unit`),
    +  KEY `idx_product_seuil_stock_alerte` (`seuil_stock_alerte`),
    +  KEY `fk_product_default_warehouse` (`fk_default_warehouse`),
    +  CONSTRAINT `fk_product_barcode_type` FOREIGN KEY (`fk_barcode_type`) REFERENCES `llx_c_barcode_type` (`rowid`),
    +  CONSTRAINT `fk_product_default_warehouse` FOREIGN KEY (`fk_default_warehouse`) REFERENCES `llx_entrepot` (`rowid`),
    +  CONSTRAINT `fk_product_fk_country` FOREIGN KEY (`fk_country`) REFERENCES `llx_c_country` (`rowid`),
    +  CONSTRAINT `fk_product_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product`
    +--
    +
    +LOCK TABLES `llx_product` WRITE;
    +/*!40000 ALTER TABLE `llx_product` DISABLE KEYS */;
    +INSERT INTO `llx_product` VALUES (1,'2010-07-08 14:33:17','2016-01-16 16:30:35',0,0,'PINKDRESS',1,NULL,'Pink dress','A beatifull pink dress','','',NULL,100.00000000,112.50000000,90.00000000,101.25000000,'HT',12.500,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,'',NULL,NULL,'123456789066',2,'701PINKDRESS',NULL,NULL,'601PINKDRESS',NULL,670,-3,NULL,0,NULL,0,NULL,0,2,0.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(2,'2010-07-09 00:30:01','2016-01-16 16:37:14',0,0,'PEARPIE',1,NULL,'Pear Pie','','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,'',NULL,NULL,'123456789077',2,'',NULL,NULL,'',NULL,NULL,0,NULL,0,NULL,0,NULL,0,998,0.00000000,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(3,'2010-07-09 00:30:25','2016-01-16 16:40:03',0,0,'CAKECONTRIB',1,NULL,'Cake making contribution','','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,1,'1m',NULL,NULL,'123456789088',2,'701CAKEM',NULL,NULL,'601CAKEM',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(4,'2010-07-10 14:44:06','2016-01-16 15:58:20',0,0,'APPLEPIE',1,NULL,'Apple Pie','Nice Bio Apple Pie.<br />\r\n&nbsp;','','',NULL,5.00000000,5.62500000,0.00000000,0.00000000,'HT',12.500,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,'',NULL,NULL,'123456789034',2,'701',NULL,NULL,'601',NULL,500,-3,NULL,0,NULL,0,NULL,0,1001,10.00000000,NULL,NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(5,'2011-07-20 23:11:38','2016-01-16 16:18:24',0,0,'DOLIDROID',1,NULL,'DoliDroid, Android app for Dolibarr','<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>','','',NULL,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,0,0.000,'0',0.000,'0',1,NULL,1,1,0,0,0,'',NULL,'https://play.google.com/store/apps/details?id=com.nltechno.dolidroidpro','123456789023',2,'701',NULL,NULL,'601',NULL,NULL,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(10,'2008-12-31 00:00:00','2017-02-16 00:12:09',0,0,'COMP-XP4523',1,NULL,'Computer XP4523','A powerfull computer XP4523&nbsp;','This product is imported.<br />\r\nWarning: Delay to get it are not reliable.','USXP765',11,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,0,0.000,'0',0.000,'0',NULL,12,1,1,0,1,0,'',150,NULL,'123456789055',2,'701OLDC',NULL,NULL,'601OLDC',NULL,1.7,0,NULL,0,NULL,0,NULL,0,110,0.00000000,NULL,NULL,NULL,NULL,0,'20110729232310',200,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(11,'2013-01-13 20:24:42','2016-07-30 13:42:31',0,0,'ROLLUPABC',1,NULL,'Rollup Dolibarr','A nice rollup','','',NULL,0.00000000,0.00000000,0.00000000,0.00000000,'HT',0.000,0,0.000,'0',0.000,'0',1,12,0,0,0,0,0,'',NULL,NULL,'123456789044',2,'',NULL,NULL,'',NULL,2.5,0,NULL,0,2.34,0,NULL,0,-1,0.00000000,NULL,NULL,'',1,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(12,'2016-07-30 17:31:29','2016-07-30 13:35:02',0,0,'DOLICLOUD',1,NULL,'SaaS service of Dolibarr ERP CRM','Cloud hosting of Dolibarr ERP and CRM software','','',NULL,9.00000000,9.00000000,9.00000000,9.00000000,'HT',0.000,0,0.000,'0',0.000,'0',12,12,1,1,0,0,1,'',NULL,'http://www.dolicloud.com','123456789013',2,'',NULL,NULL,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.00000000,NULL,NULL,'',0,0,NULL,NULL,NULL,NULL,8.50000000,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL),(13,'2017-02-16 03:49:00','2017-02-15 23:49:27',0,0,'COMP-XP4548',1,NULL,'Computer XP4523','A powerfull computer XP4523&nbsp;','This product is imported.<br />\r\nWarning: Delay to get it are not reliable.','USXP765',11,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,0,0.000,'0',0.000,'0',12,12,1,1,0,1,0,'',150,NULL,NULL,2,'',NULL,NULL,'',NULL,1.7,0,NULL,0,NULL,0,NULL,0,NULL,0.00000000,NULL,NULL,'',NULL,0,NULL,200,NULL,NULL,NULL,NULL,0,NULL,'',NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_product` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_association`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_association`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_association` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product_pere` int(11) NOT NULL DEFAULT '0',
    +  `fk_product_fils` int(11) NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `incdec` int(11) DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_association` (`fk_product_pere`,`fk_product_fils`),
    +  KEY `idx_product_association` (`fk_product_fils`),
    +  KEY `idx_product_association_fils` (`fk_product_fils`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_association`
    +--
    +
    +LOCK TABLES `llx_product_association` WRITE;
    +/*!40000 ALTER TABLE `llx_product_association` DISABLE KEYS */;
    +INSERT INTO `llx_product_association` VALUES (2,5,1,1,1),(3,4,3,5,1),(4,4,1,2,1);
    +/*!40000 ALTER TABLE `llx_product_association` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_attribute`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_attribute`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_attribute` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `rang` int(11) NOT NULL DEFAULT '0',
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_attribute_ref` (`ref`),
    +  UNIQUE KEY `unique_ref` (`ref`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_attribute`
    +--
    +
    +LOCK TABLES `llx_product_attribute` WRITE;
    +/*!40000 ALTER TABLE `llx_product_attribute` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_attribute` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_attribute_combination`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_attribute_combination`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_attribute_combination` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product_parent` int(11) NOT NULL,
    +  `fk_product_child` int(11) NOT NULL,
    +  `variation_price` float NOT NULL,
    +  `variation_price_percentage` int(11) DEFAULT NULL,
    +  `variation_weight` float NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_attribute_combination`
    +--
    +
    +LOCK TABLES `llx_product_attribute_combination` WRITE;
    +/*!40000 ALTER TABLE `llx_product_attribute_combination` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_attribute_combination` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_attribute_combination2val`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_attribute_combination2val`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_attribute_combination2val` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_prod_combination` int(11) NOT NULL,
    +  `fk_prod_attr` int(11) NOT NULL,
    +  `fk_prod_attr_val` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_attribute_combination2val`
    +--
    +
    +LOCK TABLES `llx_product_attribute_combination2val` WRITE;
    +/*!40000 ALTER TABLE `llx_product_attribute_combination2val` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_attribute_combination2val` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_attribute_value`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_attribute_value`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_attribute_value` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product_attribute` int(11) NOT NULL,
    +  `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `value` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_attribute_value` (`fk_product_attribute`,`ref`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_attribute_value`
    +--
    +
    +LOCK TABLES `llx_product_attribute_value` WRITE;
    +/*!40000 ALTER TABLE `llx_product_attribute_value` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_attribute_value` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_batch`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_batch`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_batch` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product_stock` int(11) NOT NULL,
    +  `eatby` datetime DEFAULT NULL,
    +  `sellby` datetime DEFAULT NULL,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty` double NOT NULL DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_batch` (`fk_product_stock`,`batch`),
    +  KEY `idx_fk_product_stock` (`fk_product_stock`),
    +  KEY `ix_fk_product_stock` (`fk_product_stock`),
    +  KEY `idx_batch` (`batch`),
    +  CONSTRAINT `fk_product_batch_fk_product_stock` FOREIGN KEY (`fk_product_stock`) REFERENCES `llx_product_stock` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_batch`
    +--
    +
    +LOCK TABLES `llx_product_batch` WRITE;
    +/*!40000 ALTER TABLE `llx_product_batch` DISABLE KEYS */;
    +INSERT INTO `llx_product_batch` VALUES (1,'2016-07-30 13:40:39',8,NULL,NULL,'5599887766452',15,NULL),(2,'2016-07-30 13:40:12',8,NULL,NULL,'4494487766452',60,NULL),(3,'2017-02-16 00:12:09',9,NULL,NULL,'5599887766452',35,NULL);
    +/*!40000 ALTER TABLE `llx_product_batch` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_customer_price`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_customer_price`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_customer_price` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `price_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_min` double(24,8) DEFAULT '0.00000000',
    +  `price_min_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT',
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `recuperableonly` int(11) NOT NULL DEFAULT '0',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `fk_user` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_customer_price_fk_product_fk_soc` (`fk_product`,`fk_soc`),
    +  KEY `idx_product_customer_price_fk_user` (`fk_user`),
    +  KEY `fk_customer_price_fk_soc` (`fk_soc`),
    +  KEY `idx_product_customer_price_fk_soc` (`fk_soc`),
    +  CONSTRAINT `fk_customer_price_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`) ON DELETE CASCADE,
    +  CONSTRAINT `fk_customer_price_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`) ON DELETE CASCADE,
    +  CONSTRAINT `fk_product_customer_price_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`),
    +  CONSTRAINT `fk_product_customer_price_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_product_customer_price_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_customer_price`
    +--
    +
    +LOCK TABLES `llx_product_customer_price` WRITE;
    +/*!40000 ALTER TABLE `llx_product_customer_price` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_customer_price` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_customer_price_log`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_customer_price_log`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_customer_price_log` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `price_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_min` double(24,8) DEFAULT '0.00000000',
    +  `price_min_ttc` double(24,8) DEFAULT '0.00000000',
    +  `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT',
    +  `tva_tx` double(6,3) DEFAULT NULL,
    +  `recuperableonly` int(11) NOT NULL DEFAULT '0',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `fk_user` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_customer_price_log`
    +--
    +
    +LOCK TABLES `llx_product_customer_price_log` WRITE;
    +/*!40000 ALTER TABLE `llx_product_customer_price_log` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_customer_price_log` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_product_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_extrafields`
    +--
    +
    +LOCK TABLES `llx_product_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_product_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_factory`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_factory`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_factory` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product_father` int(11) NOT NULL DEFAULT '0',
    +  `fk_product_children` int(11) NOT NULL DEFAULT '0',
    +  `pmp` double(24,8) DEFAULT '0.00000000',
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `qty` double DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_factory` (`fk_product_father`,`fk_product_children`),
    +  KEY `idx_product_factory_fils` (`fk_product_children`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_factory`
    +--
    +
    +LOCK TABLES `llx_product_factory` WRITE;
    +/*!40000 ALTER TABLE `llx_product_factory` DISABLE KEYS */;
    +INSERT INTO `llx_product_factory` VALUES (2,26,25,0.00000000,0.00000000,3),(3,27,26,0.00000000,0.00000000,2);
    +/*!40000 ALTER TABLE `llx_product_factory` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_fournisseur_price`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_fournisseur_price`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_fournisseur_price` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `ref_fourn` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `desc_fourn` text COLLATE utf8_unicode_ci,
    +  `fk_availability` int(11) DEFAULT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `quantity` double DEFAULT NULL,
    +  `remise_percent` double NOT NULL DEFAULT '0',
    +  `remise` double NOT NULL DEFAULT '0',
    +  `unitprice` double(24,8) DEFAULT '0.00000000',
    +  `charges` double(24,8) DEFAULT '0.00000000',
    +  `tva_tx` double(6,3) NOT NULL DEFAULT '0.000',
    +  `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `info_bits` int(11) NOT NULL DEFAULT '0',
    +  `fk_user` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_supplier_price_expression` int(11) DEFAULT NULL,
    +  `fk_price_expression` int(11) DEFAULT NULL,
    +  `delivery_time_days` int(11) DEFAULT NULL,
    +  `supplier_reputation` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_unitprice` double(24,8) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_price` double(24,8) DEFAULT NULL,
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_fournisseur_price_ref` (`ref_fourn`,`fk_soc`,`quantity`,`entity`),
    +  KEY `idx_product_fournisseur_price_fk_user` (`fk_user`),
    +  KEY `idx_product_fourn_price_fk_product` (`fk_product`,`entity`),
    +  KEY `idx_product_fourn_price_fk_soc` (`fk_soc`,`entity`),
    +  CONSTRAINT `fk_product_fournisseur_price_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`),
    +  CONSTRAINT `fk_product_fournisseur_price_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_fournisseur_price`
    +--
    +
    +LOCK TABLES `llx_product_fournisseur_price` WRITE;
    +/*!40000 ALTER TABLE `llx_product_fournisseur_price` DISABLE KEYS */;
    +INSERT INTO `llx_product_fournisseur_price` VALUES (1,'2010-07-11 18:45:42','2012-12-08 13:11:08',4,1,'ABCD',NULL,NULL,10.00000000,1,0,0,10.00000000,0.00000000,0.000,NULL,0,1,NULL,1,NULL,NULL,NULL,NULL,1.00000000,NULL,NULL,NULL,NULL,0.000,'0',0.000,'0'),(2,'2016-07-30 17:34:38','2016-07-30 13:34:38',12,10,'BASIC',NULL,0,9.00000000,1,0,0,9.00000000,0.00000000,0.000,NULL,0,12,NULL,1,NULL,NULL,NULL,'FAVORITE',1.00000000,NULL,NULL,NULL,NULL,0.000,'0',0.000,'0'),(3,'2017-02-02 05:17:08','2017-02-02 01:17:08',1,10,'aaa',NULL,0,100.00000000,1,10,0,100.00000000,0.00000000,12.500,NULL,0,12,NULL,1,NULL,NULL,NULL,NULL,1.00000000,NULL,NULL,NULL,NULL,0.000,'0',0.000,'0');
    +/*!40000 ALTER TABLE `llx_product_fournisseur_price` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_fournisseur_price_log`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_fournisseur_price_log`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_fournisseur_price_log` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_product_fournisseur` int(11) NOT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `quantity` double DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_price` double(24,8) DEFAULT NULL,
    +  `multicurrency_unitprice` double(24,8) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_fournisseur_price_log`
    +--
    +
    +LOCK TABLES `llx_product_fournisseur_price_log` WRITE;
    +/*!40000 ALTER TABLE `llx_product_fournisseur_price_log` DISABLE KEYS */;
    +INSERT INTO `llx_product_fournisseur_price_log` VALUES (1,'2010-07-11 18:45:42',1,10.00000000,1,1,NULL,NULL,1.00000000,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_product_fournisseur_price_log` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_lang`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_lang`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_lang` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `lang` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_lang` (`fk_product`,`lang`),
    +  CONSTRAINT `fk_product_lang_fk_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_lang`
    +--
    +
    +LOCK TABLES `llx_product_lang` WRITE;
    +/*!40000 ALTER TABLE `llx_product_lang` DISABLE KEYS */;
    +INSERT INTO `llx_product_lang` VALUES (1,1,'en_US','Pink dress','A beatifull pink dress','',NULL),(2,2,'en_US','Pear Pie','','',NULL),(3,3,'en_US','Cake making contribution','','',NULL),(4,4,'fr_FR','Decapsuleur','','',NULL),(5,5,'en_US','DoliDroid, Android app for Dolibarr','<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>','',NULL),(9,11,'fr_FR','hfghf','','',NULL),(10,2,'fr_FR','Product P1','','',NULL),(11,4,'en_US','Apple Pie','Nice Bio Apple Pie.<br />\r\n&nbsp;','',NULL),(12,11,'en_US','Rollup Dolibarr','A nice rollup','',NULL),(13,10,'en_US','Computer XP4523','A powerfull computer XP4523&nbsp;','This product is imported.<br />\r\nWarning: Delay to get it are not reliable.',NULL),(14,12,'en_US','SaaS hosting of Dolibarr ERP CRM','Cloud hosting of Dolibarr ERP and CRM software','',NULL),(15,12,'fr_FR','Service SaaS Hébergement Dolibarr ERP CRM','Service SaaS d&#39;h&eacute;bergement de la solution Dolibarr ERP CRM','',NULL),(16,13,'en_US','Computer XP4523','A powerfull computer XP4523&nbsp;',NULL,NULL),(17,13,'fr_FR','Computer XP4523','A powerfull computer XP4523&nbsp;',NULL,NULL);
    +/*!40000 ALTER TABLE `llx_product_lang` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_lot`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_lot`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_lot` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `fk_product` int(11) NOT NULL,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `eatby` date DEFAULT NULL,
    +  `sellby` date DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_lot` (`fk_product`,`batch`)
    +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_lot`
    +--
    +
    +LOCK TABLES `llx_product_lot` WRITE;
    +/*!40000 ALTER TABLE `llx_product_lot` DISABLE KEYS */;
    +INSERT INTO `llx_product_lot` VALUES (1,1,2,'123456','2016-07-07',NULL,'2016-07-21 20:55:19','2016-12-12 10:53:58',NULL,NULL,NULL),(2,1,2,'2222','2016-07-08','2016-07-07','2016-07-21 21:00:42','2016-12-12 10:53:58',NULL,NULL,NULL),(3,1,10,'5599887766452',NULL,NULL,'2016-07-30 17:39:31','2016-12-12 10:53:58',NULL,NULL,NULL),(4,1,10,'4494487766452',NULL,NULL,'2016-07-30 17:40:12','2016-12-12 10:53:58',NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_product_lot` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_lot_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_lot_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_lot_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_product_lot_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_lot_extrafields`
    +--
    +
    +LOCK TABLES `llx_product_lot_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_product_lot_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_lot_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_price`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_price`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_price` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product` int(11) NOT NULL,
    +  `date_price` datetime DEFAULT NULL,
    +  `price_level` smallint(6) DEFAULT '1',
    +  `price` double(24,8) DEFAULT NULL,
    +  `price_ttc` double(24,8) DEFAULT NULL,
    +  `price_min` double(24,8) DEFAULT NULL,
    +  `price_min_ttc` double(24,8) DEFAULT NULL,
    +  `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT',
    +  `tva_tx` double(6,3) NOT NULL,
    +  `default_vat_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `recuperableonly` int(11) NOT NULL DEFAULT '0',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `tosell` tinyint(4) DEFAULT '1',
    +  `price_by_qty` int(11) NOT NULL DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_price_expression` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_price` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_price_ttc` double(24,8) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_product_price_fk_user_author` (`fk_user_author`),
    +  KEY `idx_product_price_fk_product` (`fk_product`),
    +  CONSTRAINT `fk_product_price_product` FOREIGN KEY (`fk_product`) REFERENCES `llx_product` (`rowid`),
    +  CONSTRAINT `fk_product_price_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_price`
    +--
    +
    +LOCK TABLES `llx_product_price` WRITE;
    +/*!40000 ALTER TABLE `llx_product_price` DISABLE KEYS */;
    +INSERT INTO `llx_product_price` VALUES (1,1,'2010-07-08 12:33:17',1,'2010-07-08 14:33:17',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(2,1,'2010-07-08 22:30:01',2,'2010-07-09 00:30:01',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(3,1,'2010-07-08 22:30:25',3,'2010-07-09 00:30:25',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(4,1,'2010-07-10 12:44:06',4,'2010-07-10 14:44:06',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(5,1,'2011-07-20 21:11:38',5,'2011-07-20 23:11:38',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',19.600,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(6,1,'2011-07-27 17:02:59',5,'2011-07-27 19:02:59',1,10.00000000,11.96000000,0.00000000,0.00000000,'HT',19.600,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(10,1,'2011-07-31 22:34:27',4,'2011-08-01 00:34:27',1,5.00000000,5.62500000,0.00000000,0.00000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(12,1,'2013-01-13 19:24:59',11,'2013-01-13 20:24:59',1,0.00000000,0.00000000,0.00000000,0.00000000,'HT',0.000,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(13,1,'2013-03-12 09:30:24',1,'2013-03-12 10:30:24',1,100.00000000,112.50000000,90.00000000,101.25000000,'HT',12.500,NULL,0,0.000,'0',0.000,'0',1,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(14,1,'2016-07-30 13:31:29',12,'2016-07-30 17:31:29',1,9.00000000,9.00000000,9.00000000,9.00000000,'HT',0.000,NULL,0,0.000,'0',0.000,'0',12,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(15,1,'2017-02-15 23:49:00',13,'2017-02-16 03:49:00',1,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,NULL,0,0.000,'0',0.000,'0',12,0,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL),(16,1,'2017-08-30 15:04:04',10,'2017-08-30 19:04:04',1,100.00000000,110.00000000,0.00000000,0.00000000,'HT',10.000,NULL,0,0.000,'0',0.000,'0',12,1,0,NULL,NULL,NULL,NULL,0.00000000,1.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_product_price` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_price_by_qty`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_price_by_qty`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_price_by_qty` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product_price` int(11) NOT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `price_ttc` double(24,8) DEFAULT '0.00000000',
    +  `remise_percent` double NOT NULL DEFAULT '0',
    +  `remise` double NOT NULL DEFAULT '0',
    +  `qty_min` double DEFAULT '0',
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `quantity` double DEFAULT NULL,
    +  `unitprice` double(24,8) DEFAULT '0.00000000',
    +  `price_base_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT 'HT',
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_price` double(24,8) DEFAULT NULL,
    +  `multicurrency_price_ttc` double(24,8) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_price_by_qty_level` (`fk_product_price`,`quantity`),
    +  KEY `idx_product_price_by_qty_fk_product_price` (`fk_product_price`),
    +  CONSTRAINT `fk_product_price_by_qty_fk_product_price` FOREIGN KEY (`fk_product_price`) REFERENCES `llx_product_price` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_price_by_qty`
    +--
    +
    +LOCK TABLES `llx_product_price_by_qty` WRITE;
    +/*!40000 ALTER TABLE `llx_product_price_by_qty` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_price_by_qty` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_pricerules`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_pricerules`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_pricerules` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `level` int(11) NOT NULL,
    +  `fk_level` int(11) NOT NULL,
    +  `var_percent` float NOT NULL,
    +  `var_min_percent` float NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `unique_level` (`level`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_pricerules`
    +--
    +
    +LOCK TABLES `llx_product_pricerules` WRITE;
    +/*!40000 ALTER TABLE `llx_product_pricerules` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_pricerules` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_stock`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_stock`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_stock` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_entrepot` int(11) NOT NULL,
    +  `reel` double DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_product_stock` (`fk_product`,`fk_entrepot`),
    +  KEY `idx_product_stock_fk_product` (`fk_product`),
    +  KEY `idx_product_stock_fk_entrepot` (`fk_entrepot`)
    +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_stock`
    +--
    +
    +LOCK TABLES `llx_product_stock` WRITE;
    +/*!40000 ALTER TABLE `llx_product_stock` DISABLE KEYS */;
    +INSERT INTO `llx_product_stock` VALUES (1,'2010-07-08 22:43:51',2,2,1000,NULL),(3,'2010-07-10 23:02:20',4,2,1000,NULL),(4,'2013-01-19 17:22:48',4,1,1,NULL),(5,'2013-01-19 17:22:48',1,1,2,NULL),(6,'2013-01-19 17:22:48',11,1,-1,NULL),(7,'2013-01-19 17:31:58',2,1,-2,NULL),(8,'2016-07-30 13:40:39',10,2,75,NULL),(9,'2017-02-16 00:12:09',10,1,35,NULL);
    +/*!40000 ALTER TABLE `llx_product_stock` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_subproduct`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_subproduct`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_subproduct` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_product_subproduct` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `fk_product` (`fk_product`,`fk_product_subproduct`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_subproduct`
    +--
    +
    +LOCK TABLES `llx_product_subproduct` WRITE;
    +/*!40000 ALTER TABLE `llx_product_subproduct` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_subproduct` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_product_warehouse_properties`
    +--
    +
    +DROP TABLE IF EXISTS `llx_product_warehouse_properties`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_product_warehouse_properties` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_entrepot` int(11) NOT NULL,
    +  `seuil_stock_alerte` int(11) DEFAULT '0',
    +  `desiredstock` int(11) DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_product_warehouse_properties`
    +--
    +
    +LOCK TABLES `llx_product_warehouse_properties` WRITE;
    +/*!40000 ALTER TABLE `llx_product_warehouse_properties` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_product_warehouse_properties` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `dateo` date DEFAULT NULL,
    +  `datee` date DEFAULT NULL,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `public` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_opp_status` int(11) DEFAULT NULL,
    +  `opp_percent` double(5,2) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `budget_amount` double(24,8) DEFAULT NULL,
    +  `date_close` datetime DEFAULT NULL,
    +  `fk_user_close` int(11) DEFAULT NULL,
    +  `opp_amount` double(24,8) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `bill_time` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_projet_ref` (`ref`,`entity`),
    +  KEY `idx_projet_fk_soc` (`fk_soc`),
    +  CONSTRAINT `fk_projet_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet`
    +--
    +
    +LOCK TABLES `llx_projet` WRITE;
    +/*!40000 ALTER TABLE `llx_projet` DISABLE KEYS */;
    +INSERT INTO `llx_projet` VALUES (1,11,'2010-07-09 00:00:00','2015-10-05 20:51:28','2010-07-09',NULL,'PROJ1',1,'Project One','',1,0,1,NULL,NULL,NULL,'gdfgdfg','baleine',NULL,NULL,NULL,NULL,NULL,NULL,0),(2,13,'2010-07-09 00:00:00','2015-10-05 20:51:51','2010-07-09',NULL,'PROJ2',1,'Project Two','',1,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(3,1,'2010-07-09 00:00:00','2017-02-01 11:55:08','2010-07-09',NULL,'PROJINDIAN',1,'Project for Indian company move','',1,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(4,NULL,'2010-07-09 00:00:00','2010-07-08 22:50:49','2010-07-09',NULL,'PROJSHARED',1,'The Global project','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(5,NULL,'2010-07-11 00:00:00','2017-02-01 15:01:51','2010-07-11','2011-07-14','RMLL',1,'Project management RMLL','',1,1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),(6,10,'2016-07-30 00:00:00','2016-07-30 15:53:07','2016-07-30',NULL,'PJ1607-0001',1,'PROJALICE1','The Alice project number 1',12,0,1,2,20.00,NULL,NULL,NULL,5000.00000000,NULL,NULL,8000.00000000,NULL,NULL,0),(7,10,'2016-07-30 00:00:00','2017-02-01 12:24:37','2016-07-30',NULL,'PJ1607-0002',1,'PROJALICE2','The Alice project number 2',12,0,1,6,100.00,NULL,NULL,NULL,NULL,'2017-02-01 16:24:31',12,7000.00000000,NULL,NULL,0),(8,10,'2016-07-30 00:00:00','2016-07-30 15:53:23','2016-07-30',NULL,'PJ1607-0003',1,'PROJALICE2','The Alice project number 3',12,0,1,6,100.00,NULL,NULL,NULL,NULL,NULL,NULL,3550.00000000,NULL,NULL,0),(9,4,'2016-07-31 00:00:00','2016-07-31 14:27:26','2016-07-31',NULL,'PJ1607-0004',1,'Project Top X','',12,0,1,2,27.00,NULL,NULL,NULL,NULL,NULL,NULL,4000.00000000,NULL,NULL,0);
    +/*!40000 ALTER TABLE `llx_projet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `priority` mediumtext COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_projet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_extrafields`
    +--
    +
    +LOCK TABLES `llx_projet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_extrafields` DISABLE KEYS */;
    +INSERT INTO `llx_projet_extrafields` VALUES (5,'2016-07-30 15:53:07',6,NULL,'3'),(7,'2016-07-30 15:53:23',8,NULL,'5'),(9,'2016-07-31 14:27:24',9,NULL,'0'),(13,'2017-02-01 11:55:08',3,NULL,'0'),(15,'2017-02-01 12:24:31',7,NULL,'1'),(16,'2017-02-01 15:01:51',5,NULL,'0');
    +/*!40000 ALTER TABLE `llx_projet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_task`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_task`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_task` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_projet` int(11) NOT NULL,
    +  `fk_task_parent` int(11) NOT NULL DEFAULT '0',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `dateo` datetime DEFAULT NULL,
    +  `datee` datetime DEFAULT NULL,
    +  `datev` datetime DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `duration_effective` double DEFAULT '0',
    +  `planned_workload` double DEFAULT '0',
    +  `progress` int(11) DEFAULT '0',
    +  `priority` int(11) DEFAULT '0',
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `rang` int(11) DEFAULT '0',
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_projet_task_ref` (`ref`,`entity`),
    +  KEY `idx_projet_task_fk_projet` (`fk_projet`),
    +  KEY `idx_projet_task_fk_user_creat` (`fk_user_creat`),
    +  KEY `idx_projet_task_fk_user_valid` (`fk_user_valid`),
    +  CONSTRAINT `fk_projet_task_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_projet_task_fk_user_creat` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_projet_task_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_task`
    +--
    +
    +LOCK TABLES `llx_projet_task` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_task` DISABLE KEYS */;
    +INSERT INTO `llx_projet_task` VALUES (2,'2',1,5,0,'2010-07-11 16:23:53','2013-09-08 23:06:14','2010-07-11 12:00:00','2011-07-14 12:00:00',NULL,'Heberger site RMLL','',0,0,0,0,1,NULL,0,NULL,NULL,0,NULL,NULL),(3,'TK1007-0001',1,1,0,'2014-12-21 13:52:41','2016-07-30 11:35:40','2014-12-21 16:52:00',NULL,NULL,'Analyze','',9000,36000,0,0,1,NULL,0,NULL,'gdfgdfgdf',0,NULL,NULL),(4,'TK1007-0002',1,1,0,'2014-12-21 13:55:39','2016-07-30 11:35:51','2014-12-21 16:55:00',NULL,NULL,'Specification','',7200,18000,25,0,1,NULL,0,NULL,NULL,0,NULL,NULL),(5,'TK1007-0003',1,1,0,'2014-12-21 14:16:58','2016-07-30 11:35:59','2014-12-21 17:16:00',NULL,NULL,'Development','',0,0,0,0,1,NULL,0,NULL,NULL,0,NULL,NULL),(6,'TK1607-0004',1,6,0,'2016-07-30 15:33:27','2016-07-30 11:34:47','2016-07-30 02:00:00',NULL,NULL,'Project preparation phase A','',75600,720000,10,0,12,NULL,0,NULL,NULL,0,NULL,NULL),(7,'TK1607-0005',1,6,0,'2016-07-30 15:33:39','2017-01-30 11:23:39','2016-07-30 02:00:00',NULL,NULL,'Project preparation phase B','',40260,1080000,5,0,12,NULL,0,NULL,NULL,0,NULL,NULL),(8,'TK1607-0006',1,6,0,'2016-07-30 15:33:53','2016-07-30 11:33:53','2016-07-30 02:00:00',NULL,NULL,'Project execution phase A','',0,162000,0,0,12,NULL,0,NULL,NULL,0,NULL,NULL),(9,'TK1607-0007',1,6,0,'2016-07-30 15:34:09','2016-07-30 11:34:09','2016-10-27 02:00:00',NULL,NULL,'Project execution phase B','',0,2160000,0,0,12,NULL,0,NULL,NULL,0,NULL,NULL),(10,'TK1007-0008',1,1,0,'2016-07-30 15:36:31','2016-07-30 11:36:31','2016-07-30 02:00:00',NULL,NULL,'Tests','',0,316800,0,0,12,NULL,0,NULL,NULL,0,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_projet_task` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_task_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_task_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_task_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_projet_task_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_task_extrafields`
    +--
    +
    +LOCK TABLES `llx_projet_task_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_task_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_projet_task_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_task_time`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_task_time`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_task_time` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_task` int(11) NOT NULL,
    +  `task_date` date DEFAULT NULL,
    +  `task_datehour` datetime DEFAULT NULL,
    +  `task_date_withhour` int(11) DEFAULT '0',
    +  `task_duration` double DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `thm` double(24,8) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `invoice_id` int(11) DEFAULT NULL,
    +  `invoice_line_id` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `datec` date DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_projet_task_time_task` (`fk_task`),
    +  KEY `idx_projet_task_time_date` (`task_date`),
    +  KEY `idx_projet_task_time_datehour` (`task_datehour`)
    +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_task_time`
    +--
    +
    +LOCK TABLES `llx_projet_task_time` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_task_time` DISABLE KEYS */;
    +INSERT INTO `llx_projet_task_time` VALUES (2,4,'2014-12-21','2014-12-21 12:00:00',0,3600,1,NULL,'',NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(3,4,'2014-12-18','2014-12-18 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(4,3,'2014-12-21','2014-12-21 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(5,3,'2014-12-21','2014-12-21 12:00:00',0,1800,1,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(6,3,'2014-12-21','2014-12-21 12:00:00',0,3600,1,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(7,6,'2016-07-25','2016-07-25 00:00:00',0,18000,12,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(8,6,'2016-07-26','2016-07-26 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(9,6,'2016-07-27','2016-07-27 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(10,6,'2016-07-29','2016-07-29 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(11,6,'2016-07-31','2016-07-31 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(12,7,'2016-07-25','2016-07-25 00:00:00',0,10800,12,NULL,NULL,NULL,NULL,NULL,NULL,'0000-00-00 00:00:00'),(13,7,'2016-07-26','2016-07-26 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(14,7,'2016-07-27','2016-07-27 00:00:00',0,14400,12,NULL,NULL,NULL,NULL,NULL,NULL,'2018-03-16 10:00:54'),(15,7,'2017-01-30','2017-01-30 10:00:00',1,660,12,NULL,'',NULL,NULL,NULL,NULL,'0000-00-00 00:00:00');
    +/*!40000 ALTER TABLE `llx_projet_task_time` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_taskdet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_taskdet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_taskdet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_task` int(11) NOT NULL DEFAULT '0',
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `qty_planned` double DEFAULT NULL,
    +  `qty_used` double DEFAULT NULL,
    +  `qty_deleted` double DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `pmp` double(24,8) DEFAULT '0.00000000',
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `fk_statut` int(11) NOT NULL DEFAULT '0',
    +  `note_public` mediumtext COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_projet_taskdet` (`fk_task`,`fk_product`),
    +  KEY `idx_projet_taskdet_fk_task` (`fk_task`),
    +  KEY `idx_projet_taskdet_fk_product` (`fk_product`),
    +  CONSTRAINT `fk_projet_taskdet_fk_task` FOREIGN KEY (`fk_task`) REFERENCES `llx_projet_task` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_taskdet`
    +--
    +
    +LOCK TABLES `llx_projet_taskdet` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_taskdet` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_projet_taskdet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_projet_taskdet_equipement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_projet_taskdet_equipement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_projet_taskdet_equipement` (
    +  `fk_equipement` int(11) NOT NULL DEFAULT '0',
    +  `fk_projet_taskdet` int(11) NOT NULL DEFAULT '0',
    +  UNIQUE KEY `uk_factory_equipement` (`fk_equipement`,`fk_projet_taskdet`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_projet_taskdet_equipement`
    +--
    +
    +LOCK TABLES `llx_projet_taskdet_equipement` WRITE;
    +/*!40000 ALTER TABLE `llx_projet_taskdet_equipement` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_projet_taskdet_equipement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_propal`
    +--
    +
    +DROP TABLE IF EXISTS `llx_propal`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_propal` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_client` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `datep` date DEFAULT NULL,
    +  `fin_validite` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_cloture` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_cloture` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `price` double DEFAULT '0',
    +  `remise_percent` double DEFAULT '0',
    +  `remise_absolue` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total` double(24,8) DEFAULT '0.00000000',
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_cond_reglement` int(11) DEFAULT NULL,
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_livraison` date DEFAULT NULL,
    +  `fk_shipping_method` int(11) DEFAULT NULL,
    +  `fk_availability` int(11) DEFAULT NULL,
    +  `fk_delivery_address` int(11) DEFAULT NULL,
    +  `fk_input_reason` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_propal_ref` (`ref`,`entity`),
    +  KEY `idx_propal_fk_soc` (`fk_soc`),
    +  KEY `idx_propal_fk_user_author` (`fk_user_author`),
    +  KEY `idx_propal_fk_user_valid` (`fk_user_valid`),
    +  KEY `idx_propal_fk_user_cloture` (`fk_user_cloture`),
    +  KEY `idx_propal_fk_projet` (`fk_projet`),
    +  KEY `idx_propal_fk_account` (`fk_account`),
    +  KEY `idx_propal_fk_currency` (`fk_currency`),
    +  CONSTRAINT `fk_propal_fk_projet` FOREIGN KEY (`fk_projet`) REFERENCES `llx_projet` (`rowid`),
    +  CONSTRAINT `fk_propal_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_propal_fk_user_author` FOREIGN KEY (`fk_user_author`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_propal_fk_user_cloture` FOREIGN KEY (`fk_user_cloture`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_propal_fk_user_valid` FOREIGN KEY (`fk_user_valid`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_propal`
    +--
    +
    +LOCK TABLES `llx_propal` WRITE;
    +/*!40000 ALTER TABLE `llx_propal` DISABLE KEYS */;
    +INSERT INTO `llx_propal` VALUES (1,2,NULL,'2016-07-30 15:56:45','PR1007-0001',1,NULL,NULL,'','2010-07-09 01:33:49','2016-07-09','2016-07-24 12:00:00','2017-08-08 14:24:18',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,30.00000000,3.84000000,0.00000000,0.00000000,33.84000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(2,1,NULL,'2016-07-30 15:56:54','PR1007-0002',1,NULL,NULL,'','2010-07-10 02:11:44','2016-07-10','2016-07-25 12:00:00','2016-07-10 02:12:55','2017-07-20 15:23:12',1,NULL,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,1,'','','azur',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(3,4,NULL,'2016-07-30 15:56:54','PR1007-0003',1,NULL,NULL,'','2010-07-18 11:35:11','2016-07-18','2016-08-02 12:00:00','2016-07-18 11:36:18','2017-07-20 15:21:15',1,NULL,1,1,2,0,NULL,NULL,0,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(5,19,NULL,'2016-07-30 15:56:54','PR1302-0005',1,NULL,NULL,'','2013-02-17 15:39:56','2016-02-17','2016-03-04 12:00:00','2018-11-15 23:27:10',NULL,1,NULL,12,NULL,1,0,NULL,NULL,0,10.00000000,2.00000000,0.00000000,0.00000000,12.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(6,19,NULL,'2016-07-30 15:56:54','PR1302-0006',1,NULL,NULL,'','2013-02-17 15:40:12','2016-02-17','2016-03-04 12:00:00',NULL,NULL,1,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(7,19,NULL,'2017-01-29 17:49:33','PR1302-0007',1,NULL,NULL,'','2013-02-17 15:41:15','2016-02-17','2016-03-04 12:00:00','2017-01-29 21:49:33',NULL,1,NULL,12,NULL,1,0,NULL,NULL,0,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,400.00000000,0.00000000,400.00000000,NULL),(8,19,NULL,'2016-07-30 15:56:39','PR1302-0008',1,NULL,NULL,'','2013-02-17 15:43:39','2016-02-17','2016-03-04 12:00:00',NULL,NULL,1,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,0,'','','azur',NULL,NULL,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(10,7,NULL,'2016-07-30 15:57:25','(PROV10)',1,NULL,NULL,'','2015-11-15 23:37:08','2015-11-15','2016-11-30 12:00:00',NULL,NULL,12,NULL,NULL,NULL,0,0,NULL,NULL,0,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,NULL,NULL,1,3,'','','azur',NULL,NULL,0,NULL,0,NULL,NULL,0,'',NULL,NULL,1.00000000,0.00000000,0.00000000,0.00000000,NULL),(11,1,NULL,'2017-02-16 00:44:58','PR1702-0009',1,NULL,NULL,'','2017-02-16 01:44:58','2015-05-13','2015-05-28 12:00:00','2017-02-16 01:44:58',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,60.00000000,0.00000000,0.00000000,0.00000000,60.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,60.00000000,0.00000000,60.00000000,NULL),(12,7,NULL,'2017-02-16 00:45:44','PR1702-0010',1,NULL,NULL,'','2017-02-16 01:45:44','2015-06-24','2015-07-09 12:00:00','2017-02-16 01:45:44',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,832.00000000,0.00000000,0.00000000,0.00000000,832.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,832.00000000,0.00000000,832.00000000,NULL),(13,26,NULL,'2017-02-16 00:46:15','PR1702-0011',1,NULL,NULL,'','2017-02-16 01:46:15','2015-04-03','2015-04-18 12:00:00','2017-02-16 01:46:15',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,242.00000000,0.00000000,0.00000000,0.00000000,242.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,242.00000000,0.00000000,242.00000000,NULL),(14,3,NULL,'2017-02-16 00:46:15','PR1702-0012',1,NULL,NULL,'','2017-02-16 01:46:15','2016-06-19','2016-07-04 12:00:00','2017-02-16 01:46:15',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,245.00000000,0.00000000,0.00000000,0.00000000,245.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,245.00000000,0.00000000,245.00000000,NULL),(15,26,NULL,'2017-02-16 00:46:15','PR1702-0013',1,NULL,NULL,'','2017-02-16 01:46:15','2016-05-01','2016-05-16 12:00:00','2017-02-16 01:46:15',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,940.00000000,0.00000000,0.00000000,0.00000000,940.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,940.00000000,0.00000000,940.00000000,NULL),(16,1,NULL,'2017-02-16 00:46:15','PR1702-0014',1,NULL,NULL,'','2017-02-16 01:46:15','2015-05-13','2015-05-28 12:00:00','2017-02-16 01:46:15',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,125.00000000,0.00000000,0.00000000,0.00000000,125.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,125.00000000,0.00000000,125.00000000,NULL),(17,1,NULL,'2017-02-16 00:46:15','PR1702-0015',1,NULL,NULL,'','2017-02-16 01:46:15','2016-07-23','2016-08-07 12:00:00','2017-02-16 01:46:15',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,163.00000000,0.00000000,0.00000000,0.00000000,163.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,163.00000000,0.00000000,163.00000000,NULL),(18,26,NULL,'2017-02-16 00:46:15','PR1702-0016',1,NULL,NULL,'','2017-02-16 01:46:15','2015-02-13','2015-02-28 12:00:00','2017-02-16 01:46:15',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,900.00000000,0.00000000,0.00000000,0.00000000,900.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,900.00000000,0.00000000,900.00000000,NULL),(19,12,NULL,'2017-02-16 00:46:15','PR1702-0017',1,NULL,NULL,'','2017-02-16 01:46:15','2015-03-30','2015-04-14 12:00:00','2017-02-16 01:46:15',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL),(20,26,NULL,'2017-02-16 00:46:15','PR1702-0018',1,NULL,NULL,'','2017-02-16 01:46:15','2016-11-13','2016-11-28 12:00:00','2017-02-16 01:46:15',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,830.00000000,0.00000000,0.00000000,0.00000000,830.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,830.00000000,0.00000000,830.00000000,NULL),(21,1,NULL,'2017-02-16 00:47:09','PR1702-0019',1,NULL,NULL,'','2017-02-16 01:46:15','2015-09-23','2018-10-08 12:00:00','2017-02-16 04:47:09',NULL,1,NULL,12,NULL,1,0,NULL,NULL,0,89.00000000,0.00000000,0.00000000,0.00000000,89.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,89.00000000,0.00000000,89.00000000,NULL),(22,26,NULL,'2017-02-16 00:47:13','PR1702-0020',1,NULL,NULL,'','2017-02-16 01:46:15','2016-11-13','2016-11-28 12:00:00','2017-02-16 01:46:15',NULL,1,NULL,1,NULL,0,0,NULL,NULL,0,70.00000000,0.00000000,0.00000000,0.00000000,70.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,70.00000000,0.00000000,70.00000000,NULL),(23,12,NULL,'2017-02-17 12:07:18','PR1702-0021',1,NULL,NULL,'','2017-02-16 01:46:17','2016-04-03','2016-04-18 12:00:00','2017-02-17 16:07:18',NULL,2,NULL,12,NULL,1,0,NULL,NULL,0,715.00000000,0.00000000,0.00000000,0.00000000,715.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,715.00000000,0.00000000,715.00000000,NULL),(24,7,NULL,'2017-02-16 00:46:17','PR1702-0022',1,NULL,NULL,'','2017-02-16 01:46:17','2016-11-13','2016-11-28 12:00:00','2017-02-16 01:46:17',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,250.00000000,0.00000000,0.00000000,0.00000000,250.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,250.00000000,0.00000000,250.00000000,NULL),(25,3,NULL,'2017-02-16 00:47:29','PR1702-0023',1,NULL,NULL,'','2017-02-16 01:46:17','2016-07-09','2016-07-24 12:00:00','2017-02-16 01:46:17','2017-02-16 04:47:29',1,NULL,1,12,4,0,NULL,NULL,0,1018.00000000,0.00000000,0.00000000,0.00000000,1018.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1018.00000000,0.00000000,1018.00000000,NULL),(26,1,NULL,'2017-02-16 00:46:18','PR1702-0024',1,NULL,NULL,'','2017-02-16 01:46:17','2016-04-03','2016-04-18 12:00:00','2017-02-16 01:46:18',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,710.00000000,0.00000000,0.00000000,0.00000000,710.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,710.00000000,0.00000000,710.00000000,NULL),(27,6,NULL,'2017-02-16 00:46:18','PR1702-0025',1,NULL,NULL,'','2017-02-16 01:46:18','2016-11-12','2016-11-27 12:00:00','2017-02-16 01:46:18',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,300.00000000,0.00000000,300.00000000,NULL),(28,19,NULL,'2017-02-16 00:46:31','PR1702-0026',1,NULL,NULL,'','2017-02-16 01:46:18','2015-07-30','2015-08-14 12:00:00','2017-02-16 01:46:18','2017-02-16 04:46:31',2,NULL,2,12,2,0,NULL,NULL,0,440.00000000,0.00000000,0.00000000,0.00000000,440.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,440.00000000,0.00000000,440.00000000,NULL),(29,1,NULL,'2017-02-16 00:46:37','PR1702-0027',1,NULL,NULL,'','2017-02-16 01:46:18','2015-07-23','2015-08-07 12:00:00','2017-02-16 01:46:18','2017-02-16 04:46:37',2,NULL,2,12,2,0,NULL,NULL,0,1000.00000000,0.00000000,0.00000000,0.00000000,1000.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1000.00000000,0.00000000,1000.00000000,NULL),(30,1,NULL,'2017-02-16 00:46:42','PR1702-0028',1,NULL,NULL,'','2017-02-16 01:46:18','2016-05-01','2016-05-16 12:00:00','2017-02-16 01:46:18','2017-02-16 04:46:42',2,NULL,2,12,3,0,NULL,NULL,0,1200.00000000,0.00000000,0.00000000,0.00000000,1200.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,1200.00000000,0.00000000,1200.00000000,NULL),(31,11,NULL,'2017-02-16 00:46:18','PR1702-0029',1,NULL,NULL,'','2017-02-16 01:46:18','2016-06-24','2016-07-09 12:00:00','2017-02-16 01:46:18',NULL,1,NULL,1,NULL,1,0,NULL,NULL,0,720.00000000,0.00000000,0.00000000,0.00000000,720.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,720.00000000,0.00000000,720.00000000,NULL),(32,19,NULL,'2017-02-16 00:46:18','PR1702-0030',1,NULL,NULL,'','2017-02-16 01:46:18','2016-11-12','2016-11-27 12:00:00','2017-02-16 01:46:18',NULL,2,NULL,2,NULL,1,0,NULL,NULL,0,608.00000000,0.00000000,0.00000000,0.00000000,608.00000000,NULL,NULL,3,3,'','','',NULL,NULL,0,NULL,0,NULL,NULL,0,'',0,'EUR',1.00000000,608.00000000,0.00000000,608.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_propal` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_propal_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_propal_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_propal_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_propal_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_propal_extrafields`
    +--
    +
    +LOCK TABLES `llx_propal_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_propal_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_propal_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_propal_merge_pdf_product`
    +--
    +
    +DROP TABLE IF EXISTS `llx_propal_merge_pdf_product`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_propal_merge_pdf_product` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_product` int(11) NOT NULL,
    +  `file_name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
    +  `lang` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_mod` int(11) NOT NULL,
    +  `datec` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_propal_merge_pdf_product`
    +--
    +
    +LOCK TABLES `llx_propal_merge_pdf_product` WRITE;
    +/*!40000 ALTER TABLE `llx_propal_merge_pdf_product` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_propal_merge_pdf_product` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_propaldet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_propaldet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_propaldet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_propal` int(11) DEFAULT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_remise_except` int(11) DEFAULT NULL,
    +  `tva_tx` double(6,3) DEFAULT '0.000',
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `price` double DEFAULT NULL,
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `product_type` int(11) DEFAULT '0',
    +  `date_start` datetime DEFAULT NULL,
    +  `date_end` datetime DEFAULT NULL,
    +  `info_bits` int(11) DEFAULT '0',
    +  `fk_product_fournisseur_price` int(11) DEFAULT NULL,
    +  `buy_price_ht` double(24,8) DEFAULT '0.00000000',
    +  `special_code` int(10) unsigned DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `fk_unit` int(11) DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_propaldet_fk_propal` (`fk_propal`),
    +  KEY `idx_propaldet_fk_product` (`fk_product`),
    +  KEY `fk_propaldet_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_propaldet_fk_propal` FOREIGN KEY (`fk_propal`) REFERENCES `llx_propal` (`rowid`),
    +  CONSTRAINT `fk_propaldet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=109 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_propaldet`
    +--
    +
    +LOCK TABLES `llx_propaldet` WRITE;
    +/*!40000 ALTER TABLE `llx_propaldet` DISABLE KEYS */;
    +INSERT INTO `llx_propaldet` VALUES (1,1,NULL,NULL,NULL,'Une machine à café',NULL,12.500,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,1.25000000,0.00000000,0.00000000,11.25000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(2,2,NULL,NULL,NULL,'Product 1',NULL,0.000,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(3,2,NULL,2,NULL,'',NULL,0.000,'',0.000,'',0.000,'',1,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(4,3,NULL,NULL,NULL,'A new marvelous product',NULL,0.000,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(5,1,NULL,5,NULL,'cccc',NULL,19.600,'',0.000,'',0.000,'',1,0,0,NULL,10.00000000,10.00000000,1.96000000,0.00000000,0.00000000,11.96000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(11,1,NULL,4,NULL,'',NULL,0.000,'',0.000,'',0.000,'',1,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(12,1,NULL,4,NULL,'',NULL,0.000,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(13,1,NULL,4,NULL,'',NULL,12.500,'',0.000,'',0.000,'',1,0,0,NULL,5.00000000,5.00000000,0.63000000,0.00000000,0.00000000,5.63000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(24,5,NULL,NULL,NULL,'On demand Apple pie',NULL,20.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,10.00000000,2.00000000,0.00000000,0.00000000,12.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000),(25,7,NULL,NULL,NULL,'Help to setup Magic Food computer',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,400.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,1,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'',400.00000000,400.00000000,0.00000000,400.00000000),(26,11,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,10.00000000,50.00000000,0.00000000,0.00000000,0.00000000,50.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',10.00000000,50.00000000,0.00000000,50.00000000),(27,11,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,10.00000000,0.00000000,10.00000000),(28,12,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',5.00000000,5.00000000,0.00000000,5.00000000),(29,12,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(30,12,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(31,12,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,9.00000000,27.00000000,0.00000000,0.00000000,0.00000000,27.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',9.00000000,27.00000000,0.00000000,27.00000000),(32,12,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(33,13,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(34,13,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(35,13,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,9.00000000,27.00000000,0.00000000,0.00000000,0.00000000,27.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',9.00000000,27.00000000,0.00000000,27.00000000),(36,13,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(37,14,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(38,14,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(39,15,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(40,15,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(41,15,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(42,15,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,10.00000000,40.00000000,0.00000000,0.00000000,0.00000000,40.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',10.00000000,40.00000000,0.00000000,40.00000000),(43,16,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,10.00000000,40.00000000,0.00000000,0.00000000,0.00000000,40.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',10.00000000,40.00000000,0.00000000,40.00000000),(44,16,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,10.00000000,40.00000000,0.00000000,0.00000000,0.00000000,40.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,40.00000000,0.00000000,40.00000000),(45,16,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(46,17,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(47,17,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',9.00000000,18.00000000,0.00000000,18.00000000),(48,17,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(49,17,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(50,17,NULL,3,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(51,18,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(52,18,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(53,18,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(54,19,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(55,19,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(56,19,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(57,19,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(58,19,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(59,20,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(60,20,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,10.00000000,0.00000000,10.00000000),(61,20,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,10.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',10.00000000,20.00000000,0.00000000,20.00000000),(62,20,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(63,21,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,10.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',10.00000000,20.00000000,0.00000000,20.00000000),(64,21,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,9.00000000,9.00000000,0.00000000,0.00000000,0.00000000,9.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',9.00000000,9.00000000,0.00000000,9.00000000),(65,21,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(66,21,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(67,22,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,10.00000000,50.00000000,0.00000000,0.00000000,0.00000000,50.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',10.00000000,50.00000000,0.00000000,50.00000000),(68,22,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,10.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,20.00000000,0.00000000,20.00000000),(69,23,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(70,23,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,5.00000000,15.00000000,0.00000000,0.00000000,0.00000000,15.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',5.00000000,15.00000000,0.00000000,15.00000000),(71,23,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(72,23,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(73,24,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,5.00000000,5.00000000,0.00000000,0.00000000,0.00000000,5.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',5.00000000,5.00000000,0.00000000,5.00000000),(74,24,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(75,24,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(76,24,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(77,25,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(78,25,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(79,25,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(80,25,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(81,25,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',9.00000000,18.00000000,0.00000000,18.00000000),(82,26,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(83,26,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,10.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,10.00000000,0.00000000,10.00000000),(84,26,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(85,26,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(86,26,NULL,3,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(87,27,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(88,27,NULL,3,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(89,28,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,5.00000000,10.00000000,0.00000000,0.00000000,0.00000000,10.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',5.00000000,10.00000000,0.00000000,10.00000000),(90,28,NULL,5,NULL,'<strong><span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">DoliDroid is the Android front-end client for Dolibarr ERP &amp; CRM web software.</span><br />\r\n<span style=\"font-family:roboto,uilanguagefont,arial,sans-serif; font-size:14px\">This application is not a standalone program. It is a front end to use a online hosted Dolibarr ERP &amp; CRM software (an Open-source web software to manage your business).</span></strong>\r\n<p><u>The advantage of DoliDroid are :</u><br />\r\n- DoliDroid is not a duplicate code of Dolibarr, but a front-end of a Dolibarr web installation, so all your online existing features are supported by this application. This is also true for external modules features.<br />\r\n- Upgrading Dolibarr will not break DoliDroid.<br />\r\n- DoliDroid use embedded image resources to reduce bandwidth usage.<br />\r\n- DoliDroid use internal cache for pages that should not change (like menu page)<br />\r\n- Connections parameters are saved. No need to enter them each time you use DoliDroid.<br />\r\n- Integration with your phone or other applications (Clicking on PDF open PDF reader, clicking onto email or phone launch your email application or launch Android dialer, ...)</p>\r\n\r\n<p><span style=\"color:#DAA520\"><strong>WARNING !&nbsp;</strong></span></p>\r\n\r\n<p>This application need Android 4.0+ and a hosted Dolibarr ERP &amp; CRM version 3.5 or newer accessible by internet<br />\r\n(For example, when hosted on any SaaS solution like DoliCloud -&nbsp;<a href=\"https://www.google.com/url?q=https://www.google.com/url?q%3Dhttp://www.dolicloud.com%26sa%3DD%26usg%3DAFQjCNGdd9htz4JDciiMtScpBwK83qIRkw&amp;sa=D&amp;usg=AFQjCNGMpCbxNnU5BiK59e368K5AR0l_pg\" style=\"text-decoration: none; color: rgb(51, 105, 30); cursor: pointer;\" target=\"_blank\">http://www.dolicloud.com</a>).</p>',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,10.00000000,30.00000000,0.00000000,0.00000000,0.00000000,30.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',10.00000000,30.00000000,0.00000000,30.00000000),(91,28,NULL,2,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(92,28,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(93,29,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(94,29,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,100.00000000,500.00000000,0.00000000,0.00000000,0.00000000,500.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,500.00000000,0.00000000,500.00000000),(95,29,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(96,30,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(97,30,NULL,1,NULL,'A beatifull pink dress',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(98,30,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,100.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,200.00000000,0.00000000,200.00000000),(99,30,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(100,31,NULL,4,NULL,'Nice Bio Apple Pie.<br />\r\n&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,5.00000000,20.00000000,0.00000000,0.00000000,0.00000000,20.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',5.00000000,20.00000000,0.00000000,20.00000000),(101,31,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(102,31,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',3,0,0,NULL,100.00000000,300.00000000,0.00000000,0.00000000,0.00000000,300.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',100.00000000,300.00000000,0.00000000,300.00000000),(103,31,NULL,3,NULL,'',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,NULL,0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',0.00000000,0.00000000,0.00000000,0.00000000),(104,32,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,1,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(105,32,NULL,10,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,100.00000000,100.00000000,0.00000000,0.00000000,0.00000000,100.00000000,0,NULL,NULL,0,NULL,0.00000000,0,2,NULL,NULL,'EUR',100.00000000,100.00000000,0.00000000,100.00000000),(106,32,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',5,0,0,NULL,9.00000000,45.00000000,0.00000000,0.00000000,0.00000000,45.00000000,0,NULL,NULL,0,NULL,0.00000000,0,3,NULL,NULL,'EUR',9.00000000,45.00000000,0.00000000,45.00000000),(107,32,NULL,13,NULL,'A powerfull computer XP4523&nbsp;',NULL,0.000,'',0.000,'0',0.000,'0',4,0,0,NULL,100.00000000,400.00000000,0.00000000,0.00000000,0.00000000,400.00000000,0,NULL,NULL,0,NULL,0.00000000,0,4,NULL,NULL,'EUR',100.00000000,400.00000000,0.00000000,400.00000000),(108,32,NULL,12,NULL,'Cloud hosting of Dolibarr ERP and CRM software',NULL,0.000,'',0.000,'0',0.000,'0',2,0,0,NULL,9.00000000,18.00000000,0.00000000,0.00000000,0.00000000,18.00000000,0,NULL,NULL,0,NULL,0.00000000,0,5,NULL,NULL,'EUR',9.00000000,18.00000000,0.00000000,18.00000000);
    +/*!40000 ALTER TABLE `llx_propaldet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_propaldet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_propaldet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_propaldet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_propaldet_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_propaldet_extrafields`
    +--
    +
    +LOCK TABLES `llx_propaldet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_propaldet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_propaldet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_resource`
    +--
    +
    +DROP TABLE IF EXISTS `llx_resource`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_resource` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `asset_number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_code_type_resource` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_country` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_resource_ref` (`ref`,`entity`),
    +  KEY `fk_code_type_resource_idx` (`fk_code_type_resource`),
    +  KEY `idx_resource_fk_country` (`fk_country`),
    +  CONSTRAINT `fk_resource_fk_country` FOREIGN KEY (`fk_country`) REFERENCES `llx_c_country` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_resource`
    +--
    +
    +LOCK TABLES `llx_resource` WRITE;
    +/*!40000 ALTER TABLE `llx_resource` DISABLE KEYS */;
    +INSERT INTO `llx_resource` VALUES (1,1,'Car Kangoo 1',NULL,'Car number 1 - Num XDF-45-GH','RES_CARS',NULL,NULL,'2017-02-20 16:44:12',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL),(2,1,'Car Kangoo 2',NULL,'Car number 2 - Num GHY-78-JJ','RES_CARS',NULL,NULL,'2017-02-20 16:44:01',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL),(3,1,'Meeting room - 14p',NULL,'Meeting room<br />\r\n14 places','RES_ROOMS',NULL,NULL,'2017-02-20 16:44:38',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL),(4,1,'Meeting room - 8p',NULL,'Meeting room<br />\r\n8 places','RES_ROOMS',NULL,NULL,'2017-02-20 16:45:00',NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_resource` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_resource_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_resource_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_resource_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_resource_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_resource_extrafields`
    +--
    +
    +LOCK TABLES `llx_resource_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_resource_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_resource_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_rights_def`
    +--
    +
    +DROP TABLE IF EXISTS `llx_rights_def`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_rights_def` (
    +  `id` int(11) NOT NULL DEFAULT '0',
    +  `libelle` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `module` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `perms` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `subperms` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `type` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bydefault` tinyint(4) DEFAULT '0',
    +  PRIMARY KEY (`id`,`entity`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_rights_def`
    +--
    +
    +LOCK TABLES `llx_rights_def` WRITE;
    +/*!40000 ALTER TABLE `llx_rights_def` DISABLE KEYS */;
    +INSERT INTO `llx_rights_def` VALUES (11,'Read invoices','facture',1,'lire',NULL,'a',0),(11,'Lire les factures','facture',2,'lire',NULL,'a',1),(12,'Create and update invoices','facture',1,'creer',NULL,'a',0),(12,'Creer/modifier les factures','facture',2,'creer',NULL,'a',0),(13,'Devalidate invoices','facture',1,'invoice_advance','unvalidate','a',0),(13,'Dévalider les factures','facture',2,'invoice_advance','unvalidate','a',0),(14,'Validate invoices','facture',1,'invoice_advance','validate','a',0),(14,'Valider les factures','facture',2,'valider',NULL,'a',0),(15,'Send invoices by email','facture',1,'invoice_advance','send','a',0),(15,'Envoyer les factures par mail','facture',2,'invoice_advance','send','a',0),(16,'Issue payments on invoices','facture',1,'paiement',NULL,'a',0),(16,'Emettre des paiements sur les factures','facture',2,'paiement',NULL,'a',0),(19,'Delete invoices','facture',1,'supprimer',NULL,'a',0),(19,'Supprimer les factures','facture',2,'supprimer',NULL,'a',0),(21,'Lire les propositions commerciales','propale',1,'lire',NULL,'r',1),(21,'Lire les propositions commerciales','propale',2,'lire',NULL,'r',1),(22,'Creer/modifier les propositions commerciales','propale',1,'creer',NULL,'w',0),(22,'Creer/modifier les propositions commerciales','propale',2,'creer',NULL,'w',0),(24,'Valider les propositions commerciales','propale',1,'propal_advance','validate','d',0),(24,'Valider les propositions commerciales','propale',2,'valider',NULL,'d',0),(25,'Envoyer les propositions commerciales aux clients','propale',1,'propal_advance','send','d',0),(25,'Envoyer les propositions commerciales aux clients','propale',2,'propal_advance','send','d',0),(26,'Cloturer les propositions commerciales','propale',1,'cloturer',NULL,'d',0),(26,'Cloturer les propositions commerciales','propale',2,'cloturer',NULL,'d',0),(27,'Supprimer les propositions commerciales','propale',1,'supprimer',NULL,'d',0),(27,'Supprimer les propositions commerciales','propale',2,'supprimer',NULL,'d',0),(28,'Exporter les propositions commerciales et attributs','propale',1,'export',NULL,'r',0),(28,'Exporter les propositions commerciales et attributs','propale',2,'export',NULL,'r',0),(31,'Lire les produits','produit',1,'lire',NULL,'r',1),(31,'Lire les produits','produit',2,'lire',NULL,'r',1),(32,'Creer/modifier les produits','produit',1,'creer',NULL,'w',0),(32,'Creer/modifier les produits','produit',2,'creer',NULL,'w',0),(34,'Supprimer les produits','produit',1,'supprimer',NULL,'d',0),(34,'Supprimer les produits','produit',2,'supprimer',NULL,'d',0),(38,'Exporter les produits','produit',1,'export',NULL,'r',0),(38,'Exporter les produits','produit',2,'export',NULL,'r',0),(41,'Read projects and tasks (shared projects or projects I am contact for). Can also enter time consumed on assigned tasks (timesheet)','projet',1,'lire',NULL,'r',1),(42,'Create/modify projects and tasks (shared projects or projects I am contact for)','projet',1,'creer',NULL,'w',0),(44,'Delete project and tasks (shared projects or projects I am contact for)','projet',1,'supprimer',NULL,'d',0),(45,'Export projects','projet',1,'export',NULL,'d',0),(61,'Lire les fiches d\'intervention','ficheinter',1,'lire',NULL,'r',1),(62,'Creer/modifier les fiches d\'intervention','ficheinter',1,'creer',NULL,'w',0),(64,'Supprimer les fiches d\'intervention','ficheinter',1,'supprimer',NULL,'d',0),(67,'Exporter les fiches interventions','ficheinter',1,'export',NULL,'r',0),(68,'Envoyer les fiches d\'intervention par courriel','ficheinter',1,'ficheinter_advance','send','r',0),(69,'Valider les fiches d\'intervention ','ficheinter',1,'ficheinter_advance','validate','a',0),(70,'Dévalider les fiches d\'intervention','ficheinter',1,'ficheinter_advance','unvalidate','a',0),(71,'Read members\' card','adherent',1,'lire',NULL,'r',0),(72,'Create/modify members (need also user module permissions if member linked to a user)','adherent',1,'creer',NULL,'w',0),(74,'Remove members','adherent',1,'supprimer',NULL,'d',0),(75,'Setup types of membership','adherent',1,'configurer',NULL,'w',0),(76,'Export members','adherent',1,'export',NULL,'r',0),(78,'Read subscriptions','adherent',1,'cotisation','lire','r',0),(79,'Create/modify/remove subscriptions','adherent',1,'cotisation','creer','w',0),(81,'Lire les commandes clients','commande',1,'lire',NULL,'r',0),(82,'Creer/modifier les commandes clients','commande',1,'creer',NULL,'w',0),(84,'Valider les commandes clients','commande',1,'order_advance','validate','d',0),(86,'Envoyer les commandes clients','commande',1,'order_advance','send','d',0),(87,'Cloturer les commandes clients','commande',1,'cloturer',NULL,'d',0),(88,'Annuler les commandes clients','commande',1,'order_advance','annuler','d',0),(89,'Supprimer les commandes clients','commande',1,'supprimer',NULL,'d',0),(91,'Lire les charges','tax',1,'charges','lire','r',0),(91,'Lire les charges','tax',2,'charges','lire','r',1),(92,'Creer/modifier les charges','tax',1,'charges','creer','w',0),(92,'Creer/modifier les charges','tax',2,'charges','creer','w',0),(93,'Supprimer les charges','tax',1,'charges','supprimer','d',0),(93,'Supprimer les charges','tax',2,'charges','supprimer','d',0),(94,'Exporter les charges','tax',1,'charges','export','r',0),(94,'Exporter les charges','tax',2,'charges','export','r',0),(101,'Lire les expeditions','expedition',1,'lire',NULL,'r',1),(102,'Creer modifier les expeditions','expedition',1,'creer',NULL,'w',0),(104,'Valider les expeditions','expedition',1,'shipping_advance','validate','d',0),(105,'Envoyer les expeditions aux clients','expedition',1,'shipping_advance','send','d',0),(106,'Exporter les expeditions','expedition',1,'shipment','export','r',0),(109,'Supprimer les expeditions','expedition',1,'supprimer',NULL,'d',0),(111,'Lire les comptes bancaires','banque',1,'lire',NULL,'r',0),(111,'Lire les comptes bancaires','banque',2,'lire',NULL,'r',1),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',1,'modifier',NULL,'w',0),(112,'Creer/modifier montant/supprimer ecriture bancaire','banque',2,'modifier',NULL,'w',0),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',1,'configurer',NULL,'a',0),(113,'Configurer les comptes bancaires (creer, gerer categories)','banque',2,'configurer',NULL,'a',0),(114,'Rapprocher les ecritures bancaires','banque',1,'consolidate',NULL,'w',0),(114,'Rapprocher les ecritures bancaires','banque',2,'consolidate',NULL,'w',0),(115,'Exporter transactions et releves','banque',1,'export',NULL,'r',0),(115,'Exporter transactions et releves','banque',2,'export',NULL,'r',0),(116,'Virements entre comptes','banque',1,'transfer',NULL,'w',0),(116,'Virements entre comptes','banque',2,'transfer',NULL,'w',0),(117,'Gerer les envois de cheques','banque',1,'cheque',NULL,'w',0),(117,'Gerer les envois de cheques','banque',2,'cheque',NULL,'w',0),(121,'Read third parties','societe',1,'lire',NULL,'r',0),(121,'Lire les societes','societe',2,'lire',NULL,'r',1),(122,'Create and update third parties','societe',1,'creer',NULL,'w',0),(122,'Creer modifier les societes','societe',2,'creer',NULL,'w',0),(125,'Delete third parties','societe',1,'supprimer',NULL,'d',0),(125,'Supprimer les societes','societe',2,'supprimer',NULL,'d',0),(126,'Export third parties','societe',1,'export',NULL,'r',0),(126,'Exporter les societes','societe',2,'export',NULL,'r',0),(141,'Read all projects and tasks (also private projects I am not contact for)','projet',1,'all','lire','r',0),(142,'Create/modify all projects and tasks (also private projects I am not contact for)','projet',1,'all','creer','w',0),(144,'Delete all projects and tasks (also private projects I am not contact for)','projet',1,'all','supprimer','d',0),(151,'Read withdrawals','prelevement',1,'bons','lire','r',1),(152,'Create/modify a withdrawals','prelevement',1,'bons','creer','w',0),(153,'Send withdrawals to bank','prelevement',1,'bons','send','a',0),(154,'credit/refuse withdrawals','prelevement',1,'bons','credit','a',0),(161,'Lire les contrats','contrat',1,'lire',NULL,'r',1),(162,'Creer / modifier les contrats','contrat',1,'creer',NULL,'w',0),(163,'Activer un service d\'un contrat','contrat',1,'activer',NULL,'w',0),(164,'Desactiver un service d\'un contrat','contrat',1,'desactiver',NULL,'w',0),(165,'Supprimer un contrat','contrat',1,'supprimer',NULL,'d',0),(167,'Export contracts','contrat',1,'export',NULL,'r',0),(221,'Consulter les mailings','mailing',1,'lire',NULL,'r',1),(221,'Consulter les mailings','mailing',2,'lire',NULL,'r',1),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',1,'creer',NULL,'w',0),(222,'Creer/modifier les mailings (sujet, destinataires...)','mailing',2,'creer',NULL,'w',0),(223,'Valider les mailings (permet leur envoi)','mailing',1,'valider',NULL,'w',0),(223,'Valider les mailings (permet leur envoi)','mailing',2,'valider',NULL,'w',0),(229,'Supprimer les mailings','mailing',1,'supprimer',NULL,'d',0),(229,'Supprimer les mailings','mailing',2,'supprimer',NULL,'d',0),(237,'View recipients and info','mailing',1,'mailing_advance','recipient','r',0),(237,'View recipients and info','mailing',2,'mailing_advance','recipient','r',0),(238,'Manually send mailings','mailing',1,'mailing_advance','send','w',0),(238,'Manually send mailings','mailing',2,'mailing_advance','send','w',0),(239,'Delete mailings after validation and/or sent','mailing',1,'mailing_advance','delete','d',0),(239,'Delete mailings after validation and/or sent','mailing',2,'mailing_advance','delete','d',0),(241,'Lire les categories','categorie',1,'lire',NULL,'r',1),(242,'Creer/modifier les categories','categorie',1,'creer',NULL,'w',0),(243,'Supprimer les categories','categorie',1,'supprimer',NULL,'d',0),(251,'Consulter les autres utilisateurs','user',1,'user','lire','r',0),(252,'Consulter les permissions des autres utilisateurs','user',1,'user_advance','readperms','r',0),(253,'Creer/modifier utilisateurs internes et externes','user',1,'user','creer','w',0),(254,'Creer/modifier utilisateurs externes seulement','user',1,'user_advance','write','w',0),(255,'Modifier le mot de passe des autres utilisateurs','user',1,'user','password','w',0),(256,'Supprimer ou desactiver les autres utilisateurs','user',1,'user','supprimer','d',0),(262,'Read all third parties by internal users (otherwise only if commercial contact). Not effective for external users (limited to themselves).','societe',1,'client','voir','r',0),(262,'Consulter tous les tiers par utilisateurs internes (sinon uniquement si contact commercial). Non effectif pour utilisateurs externes (tjs limités à eux-meme).','societe',2,'client','voir','r',1),(281,'Read contacts','societe',1,'contact','lire','r',0),(281,'Lire les contacts','societe',2,'contact','lire','r',1),(282,'Create and update contact','societe',1,'contact','creer','w',0),(282,'Creer modifier les contacts','societe',2,'contact','creer','w',0),(283,'Delete contacts','societe',1,'contact','supprimer','d',0),(283,'Supprimer les contacts','societe',2,'contact','supprimer','d',0),(286,'Export contacts','societe',1,'contact','export','d',0),(286,'Exporter les contacts','societe',2,'contact','export','d',0),(300,'Read barcodes','barcode',1,'lire_advance',NULL,'r',1),(301,'Create/modify barcodes','barcode',1,'creer_advance',NULL,'w',0),(331,'Lire les bookmarks','bookmark',1,'lire',NULL,'r',0),(332,'Creer/modifier les bookmarks','bookmark',1,'creer',NULL,'r',0),(333,'Supprimer les bookmarks','bookmark',1,'supprimer',NULL,'r',0),(341,'Consulter ses propres permissions','user',1,'self_advance','readperms','r',0),(342,'Creer/modifier ses propres infos utilisateur','user',1,'self','creer','w',0),(343,'Modifier son propre mot de passe','user',1,'self','password','w',0),(344,'Modifier ses propres permissions','user',1,'self_advance','writeperms','w',0),(351,'Consulter les groupes','user',1,'group_advance','read','r',0),(352,'Consulter les permissions des groupes','user',1,'group_advance','readperms','r',0),(353,'Creer/modifier les groupes et leurs permissions','user',1,'group_advance','write','w',0),(354,'Supprimer ou desactiver les groupes','user',1,'group_advance','delete','d',0),(358,'Exporter les utilisateurs','user',1,'user','export','r',0),(511,'Read payments of employee salaries','salaries',1,'read',NULL,'r',0),(512,'Create/modify payments of empoyee salaries','salaries',1,'write',NULL,'w',0),(514,'Delete payments of employee salary','salaries',1,'delete',NULL,'d',0),(517,'Export payments of employee salaries','salaries',1,'export',NULL,'r',0),(520,'Read loans','loan',1,'read',NULL,'r',0),(522,'Create/modify loans','loan',1,'write',NULL,'w',0),(524,'Delete loans','loan',1,'delete',NULL,'d',0),(525,'Access loan calculator','loan',1,'calc',NULL,'r',0),(527,'Export loans','loan',1,'export',NULL,'r',0),(531,'Read services','service',1,'lire',NULL,'r',0),(532,'Create/modify services','service',1,'creer',NULL,'w',0),(534,'Delete les services','service',1,'supprimer',NULL,'d',0),(538,'Export services','service',1,'export',NULL,'r',0),(701,'Lire les dons','don',1,'lire',NULL,'r',1),(701,'Lire les dons','don',2,'lire',NULL,'r',1),(702,'Creer/modifier les dons','don',1,'creer',NULL,'w',0),(702,'Creer/modifier les dons','don',2,'creer',NULL,'w',0),(703,'Supprimer les dons','don',1,'supprimer',NULL,'d',0),(703,'Supprimer les dons','don',2,'supprimer',NULL,'d',0),(771,'Read expense reports (yours and your subordinates)','expensereport',1,'lire',NULL,'r',1),(772,'Create/modify expense reports','expensereport',1,'creer',NULL,'w',0),(773,'Delete expense reports','expensereport',1,'supprimer',NULL,'d',0),(774,'Read all expense reports','expensereport',1,'readall',NULL,'r',1),(775,'Approve expense reports','expensereport',1,'approve',NULL,'w',0),(776,'Pay expense reports','expensereport',1,'to_paid',NULL,'w',0),(777,'Read expense reports of everybody','expensereport',1,'readall',NULL,'r',1),(778,'Create expense reports for everybody','expensereport',1,'writeall_advance',NULL,'w',0),(779,'Export expense reports','expensereport',1,'export',NULL,'r',0),(1001,'Lire les stocks','stock',1,'lire',NULL,'r',1),(1002,'Creer/Modifier les stocks','stock',1,'creer',NULL,'w',0),(1003,'Supprimer les stocks','stock',1,'supprimer',NULL,'d',0),(1004,'Lire mouvements de stocks','stock',1,'mouvement','lire','r',1),(1005,'Creer/modifier mouvements de stocks','stock',1,'mouvement','creer','w',0),(1101,'Lire les bons de livraison','expedition',1,'livraison','lire','r',1),(1102,'Creer modifier les bons de livraison','expedition',1,'livraison','creer','w',0),(1104,'Valider les bons de livraison','expedition',1,'livraison_advance','validate','d',0),(1109,'Supprimer les bons de livraison','expedition',1,'livraison','supprimer','d',0),(1121,'Read supplier proposals','supplier_proposal',1,'lire',NULL,'w',1),(1122,'Create/modify supplier proposals','supplier_proposal',1,'creer',NULL,'w',0),(1123,'Validate supplier proposals','supplier_proposal',1,'validate_advance',NULL,'w',0),(1124,'Envoyer les demandes fournisseurs','supplier_proposal',1,'send_advance',NULL,'w',0),(1125,'Delete supplier proposals','supplier_proposal',1,'supprimer',NULL,'w',0),(1126,'Close supplier price requests','supplier_proposal',1,'cloturer',NULL,'w',0),(1181,'Consulter les fournisseurs','fournisseur',1,'lire',NULL,'r',0),(1182,'Consulter les commandes fournisseur','fournisseur',1,'commande','lire','r',0),(1183,'Creer une commande fournisseur','fournisseur',1,'commande','creer','w',0),(1184,'Valider une commande fournisseur','fournisseur',1,'supplier_order_advance','validate','w',0),(1185,'Approuver une commande fournisseur','fournisseur',1,'commande','approuver','w',0),(1186,'Commander une commande fournisseur','fournisseur',1,'commande','commander','w',0),(1187,'Receptionner une commande fournisseur','fournisseur',1,'commande','receptionner','d',0),(1188,'Supprimer une commande fournisseur','fournisseur',1,'commande','supprimer','d',0),(1189,'Check/Uncheck a supplier order reception','fournisseur',1,'commande_advance','check','w',0),(1191,'Exporter les commande fournisseurs, attributs','fournisseur',1,'commande','export','r',0),(1201,'Lire les exports','export',1,'lire',NULL,'r',1),(1202,'Creer/modifier un export','export',1,'creer',NULL,'w',0),(1231,'Consulter les factures fournisseur','fournisseur',1,'facture','lire','r',0),(1232,'Creer une facture fournisseur','fournisseur',1,'facture','creer','w',0),(1233,'Valider une facture fournisseur','fournisseur',1,'supplier_invoice_advance','validate','w',0),(1234,'Supprimer une facture fournisseur','fournisseur',1,'facture','supprimer','d',0),(1235,'Envoyer les factures par mail','fournisseur',1,'supplier_invoice_advance','send','a',0),(1236,'Exporter les factures fournisseurs, attributs et reglements','fournisseur',1,'facture','export','r',0),(1251,'Run mass imports of external data (data load)','import',1,'run',NULL,'r',0),(1321,'Export customer invoices, attributes and payments','facture',1,'facture','export','r',0),(1321,'Exporter les factures clients, attributs et reglements','facture',2,'facture','export','r',0),(1322,'Re-open a fully paid invoice','facture',1,'invoice_advance','reopen','r',0),(1421,'Exporter les commandes clients et attributs','commande',1,'commande','export','r',0),(2401,'Read actions/tasks linked to his account','agenda',1,'myactions','read','r',0),(2401,'Read actions/tasks linked to his account','agenda',2,'myactions','read','r',1),(2402,'Create/modify actions/tasks linked to his account','agenda',1,'myactions','create','w',0),(2402,'Create/modify actions/tasks linked to his account','agenda',2,'myactions','create','w',0),(2403,'Delete actions/tasks linked to his account','agenda',1,'myactions','delete','w',0),(2403,'Delete actions/tasks linked to his account','agenda',2,'myactions','delete','w',0),(2411,'Read actions/tasks of others','agenda',1,'allactions','read','r',0),(2411,'Read actions/tasks of others','agenda',2,'allactions','read','r',0),(2412,'Create/modify actions/tasks of others','agenda',1,'allactions','create','w',0),(2412,'Create/modify actions/tasks of others','agenda',2,'allactions','create','w',0),(2413,'Delete actions/tasks of others','agenda',1,'allactions','delete','w',0),(2413,'Delete actions/tasks of others','agenda',2,'allactions','delete','w',0),(2414,'Export actions/tasks of others','agenda',1,'export',NULL,'w',0),(2501,'Consulter/Télécharger les documents','ecm',1,'read',NULL,'r',0),(2503,'Soumettre ou supprimer des documents','ecm',1,'upload',NULL,'w',0),(2515,'Administrer les rubriques de documents','ecm',1,'setup',NULL,'w',0),(3200,'Read archived events and fingerprints','blockedlog',1,'read',NULL,'w',0),(20001,'Read your own leave requests','holiday',1,'read',NULL,'w',0),(20001,'Créer / Modifier / Lire ses demandes de congés payés','holiday',2,'write',NULL,'w',1),(20002,'Create/modify your own leave requests','holiday',1,'write',NULL,'w',0),(20002,'Lire / Modifier toutes les demandes de congés payés','holiday',2,'lire_tous',NULL,'w',0),(20003,'Delete leave requests','holiday',1,'delete',NULL,'w',0),(20003,'Supprimer des demandes de congés payés','holiday',2,'delete',NULL,'w',0),(20004,'Read leave requests for everybody','holiday',1,'read_all',NULL,'w',0),(20004,'Définir les congés payés des utilisateurs','holiday',2,'define_holiday',NULL,'w',0),(20005,'Create/modify leave requests for everybody','holiday',1,'write_all',NULL,'w',0),(20005,'Voir les logs de modification des congés payés','holiday',2,'view_log',NULL,'w',0),(20006,'Setup leave requests of users (setup and update balance)','holiday',1,'define_holiday',NULL,'w',0),(20006,'Accéder au rapport mensuel des congés payés','holiday',2,'month_report',NULL,'w',0),(20007,'Approve leave requests','holiday',1,'approve',NULL,'w',0),(23001,'Read cron jobs','cron',1,'read',NULL,'w',0),(23002,'Create cron Jobs','cron',1,'create',NULL,'w',0),(23003,'Delete cron Jobs','cron',1,'delete',NULL,'w',0),(23004,'Execute cron Jobs','cron',1,'execute',NULL,'w',0),(50101,'Use point of sale','cashdesk',1,'use',NULL,'a',1),(50401,'Bind products and invoices with accounting accounts','accounting',1,'bind','write','r',0),(50411,'Read operations in General Ledger','accounting',1,'mouvements','lire','r',0),(50412,'Write/Edit operations in General Ledger','accounting',1,'mouvements','creer','w',0),(50420,'Report and export reports (turnover, balance, journals, general ledger)','accounting',1,'comptarapport','lire','r',0),(50430,'Define and close a fiscal year','accounting',1,'fiscalyear',NULL,'r',0),(50440,'Manage chart of accounts, setup of accountancy','accounting',1,'chartofaccount',NULL,'r',0),(55001,'Read surveys','opensurvey',1,'read',NULL,'r',0),(55002,'Create/modify surveys','opensurvey',1,'write',NULL,'w',0),(59001,'Visualiser les marges','margins',1,'liretous',NULL,'r',1),(59002,'Définir les marges','margins',1,'creer',NULL,'w',0),(59003,'Read every user margin','margins',1,'read','all','r',0),(63001,'Read resources','resource',1,'read',NULL,'w',1),(63002,'Create/Modify resources','resource',1,'write',NULL,'w',0),(63003,'Delete resources','resource',1,'delete',NULL,'w',0),(63004,'Link resources','resource',1,'link',NULL,'w',0),(64001,'DirectPrint','printing',1,'read',NULL,'r',0),(101250,'Read surveys','opensurvey',2,'survey','read','r',0),(101251,'Create/modify surveys','opensurvey',2,'survey','write','w',0);
    +/*!40000 ALTER TABLE `llx_rights_def` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_sellyoursaas_cancellation`
    +--
    +
    +DROP TABLE IF EXISTS `llx_sellyoursaas_cancellation`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_sellyoursaas_cancellation` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(128) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  `codelang` varchar(8) DEFAULT NULL,
    +  `url` varchar(255) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_sellyoursaas_cancellation_rowid` (`rowid`),
    +  KEY `idx_sellyoursaas_cancellation_ref` (`ref`),
    +  KEY `idx_sellyoursaas_cancellation_entity` (`entity`),
    +  KEY `idx_sellyoursaas_cancellation_status` (`status`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_sellyoursaas_cancellation`
    +--
    +
    +LOCK TABLES `llx_sellyoursaas_cancellation` WRITE;
    +/*!40000 ALTER TABLE `llx_sellyoursaas_cancellation` DISABLE KEYS */;
    +INSERT INTO `llx_sellyoursaas_cancellation` VALUES (2,'fff',1,NULL,'2018-06-02 11:00:44','2018-06-02 09:00:44',12,NULL,NULL,1,NULL,'fff'),(3,'gfdg',1,NULL,'2018-06-02 11:01:20','2018-06-02 09:01:20',12,NULL,NULL,1,'gfd','gfd'),(4,'aaa',1,NULL,'2018-06-02 11:02:40','2018-06-02 09:02:40',12,NULL,NULL,1,NULL,'aaa');
    +/*!40000 ALTER TABLE `llx_sellyoursaas_cancellation` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_sellyoursaas_cancellation_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_sellyoursaas_cancellation_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_sellyoursaas_cancellation_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_sellyoursaas_cancellation_extrafields`
    +--
    +
    +LOCK TABLES `llx_sellyoursaas_cancellation_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_sellyoursaas_cancellation_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_sellyoursaas_cancellation_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `statut` tinyint(4) DEFAULT '0',
    +  `parent` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `nom` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_client` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_fournisseur` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_compta` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_compta_fournisseur` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_departement` int(11) DEFAULT '0',
    +  `fk_pays` int(11) DEFAULT '0',
    +  `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `skype` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `whatsapp` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `youtube` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `googleplus` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `snapchat` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `instagram` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `facebook` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `twitter` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_effectif` int(11) DEFAULT '0',
    +  `fk_typent` int(11) DEFAULT '0',
    +  `fk_forme_juridique` int(11) DEFAULT '0',
    +  `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `siren` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `siret` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ape` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `idprof4` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tva_intra` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `capital` double(24,8) DEFAULT NULL,
    +  `fk_stcomm` int(11) NOT NULL DEFAULT '0',
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `prefix_comm` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `client` tinyint(4) DEFAULT '0',
    +  `fournisseur` tinyint(4) DEFAULT '0',
    +  `supplier_account` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_prospectlevel` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `customer_bad` tinyint(4) DEFAULT '0',
    +  `customer_rate` double DEFAULT '0',
    +  `supplier_rate` double DEFAULT '0',
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `remise_client` double DEFAULT '0',
    +  `remise_supplier` double DEFAULT '0',
    +  `mode_reglement` tinyint(4) DEFAULT NULL,
    +  `cond_reglement` tinyint(4) DEFAULT NULL,
    +  `mode_reglement_supplier` int(11) DEFAULT NULL,
    +  `outstanding_limit` double(24,8) DEFAULT NULL,
    +  `order_min_amount` double(24,8) DEFAULT NULL,
    +  `supplier_order_min_amount` double(24,8) DEFAULT NULL,
    +  `cond_reglement_supplier` int(11) DEFAULT NULL,
    +  `fk_shipping_method` int(11) DEFAULT NULL,
    +  `tva_assuj` tinyint(4) DEFAULT '1',
    +  `localtax1_assuj` tinyint(4) DEFAULT '0',
    +  `localtax1_value` double(6,3) DEFAULT NULL,
    +  `localtax2_assuj` tinyint(4) DEFAULT '0',
    +  `localtax2_value` double(6,3) DEFAULT NULL,
    +  `barcode` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `price_level` int(11) DEFAULT NULL,
    +  `default_lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` tinyint(4) DEFAULT '1',
    +  `logo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `idprof5` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `idprof6` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_barcode_type` int(11) DEFAULT '0',
    +  `webservices_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `webservices_key` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `name_alias` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_incoterms` int(11) DEFAULT NULL,
    +  `location_incoterms` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_entrepot` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_societe_prefix_comm` (`prefix_comm`,`entity`),
    +  UNIQUE KEY `uk_societe_code_client` (`code_client`,`entity`),
    +  UNIQUE KEY `uk_societe_barcode` (`barcode`,`fk_barcode_type`,`entity`),
    +  UNIQUE KEY `uk_societe_code_fournisseur` (`code_fournisseur`,`entity`),
    +  KEY `idx_societe_user_creat` (`fk_user_creat`),
    +  KEY `idx_societe_user_modif` (`fk_user_modif`),
    +  KEY `idx_societe_barcode` (`barcode`)
    +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe`
    +--
    +
    +LOCK TABLES `llx_societe` WRITE;
    +/*!40000 ALTER TABLE `llx_societe` DISABLE KEYS */;
    +INSERT INTO `llx_societe` VALUES (1,0,NULL,'2016-01-16 15:21:09','2010-07-08 14:21:44','Indian SAS',1,NULL,NULL,'CU1212-0007','SU1212-0005','7050','6050','1 alalah road',NULL,'Delhi',0,117,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,'0','','','','','',5000.00000000,1,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'en_IN',NULL,NULL,1,'indiancompany.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(2,0,NULL,'2016-07-30 11:45:49','2010-07-08 14:23:48','Teclib',1,NULL,NULL,'CU1108-0001','SU1108-0001','411CU11080001','401SU11080001','',NULL,'Paris',0,1,NULL,NULL,'www.teclib.com',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,3,57,'0','123456789','','ACE14','','',400000.00000000,0,NULL,NULL,NULL,3,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,'fr_FR',NULL,NULL,1,'teclibcompany.png','','',0,NULL,NULL,'',0,NULL,NULL,0,'',NULL,0),(3,0,NULL,'2017-02-16 00:47:25','2010-07-08 22:42:12','Spanish Comp',1,NULL,NULL,'SPANISHCOMP','SU1601-0009',NULL,NULL,'1 via mallere',NULL,'Madrid',123,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,4,408,'0','','','','','',10000.00000000,0,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'es_AR',NULL,NULL,1,'spanishcompany.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(4,0,NULL,'2016-01-22 17:24:53','2010-07-08 22:48:18','Prospector Vaalen',1,NULL,NULL,'CU1303-0014',NULL,NULL,NULL,'',NULL,'Bruxelles',103,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,4,201,'0','12345678','','','','',0.00000000,0,NULL,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'valeencompany.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(5,0,NULL,'2017-02-21 11:01:17','2010-07-08 23:22:57','NoCountry GmBh',1,NULL,NULL,NULL,NULL,NULL,NULL,'',NULL,NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,0,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'nocountrycomp.png','','',0,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0),(6,0,NULL,'2016-01-16 15:35:56','2010-07-09 00:15:09','Swiss Touch',1,NULL,NULL,'CU1601-0018','SU1601-0010',NULL,NULL,'',NULL,'Genevia',0,6,NULL,NULL,NULL,'swisstouch@example.ch',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,2,601,'0','','','','','',56000.00000000,0,NULL,NULL,NULL,3,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'swisstouch.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(7,0,NULL,'2016-01-16 15:38:32','2010-07-09 01:24:26','Generic customer',1,NULL,NULL,'CU1302-0011',NULL,NULL,NULL,'',NULL,NULL,0,7,NULL,NULL,NULL,'ttt@ttt.com',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8,NULL,'0','','','','','',0.00000000,0,'Generic customer to use for Point Of Sale module.<br />',NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'genericcustomer.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(10,0,NULL,'2016-01-16 15:44:20','2010-07-10 15:13:08','NLTechno',1,NULL,NULL,'CU1212-0005','SU1601-0011',NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,'notanemail@nltechno.com',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,4,54,'0','493861496','49386149600039','6209Z','22-01-2007','FR123456789',10000.00000000,0,NULL,NULL,NULL,1,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,'123456789012',NULL,'fr_FR',NULL,NULL,1,'logo_nltechno_94x100.png','','',0,NULL,NULL,'The OpenSource company',0,NULL,NULL,NULL,NULL,NULL,0),(11,0,NULL,'2017-05-12 09:06:31','2010-07-10 18:35:57','Company Corp 1',1,NULL,NULL,'CU1510-0017',NULL,'7051',NULL,'21 Green Hill street','75500','Los Angeles',0,11,'444123456',NULL,'companycorp1.com','companycorp1@example.com','corp1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,1,NULL,'0','AB1234567','','','','USABS123',10000.00000000,0,NULL,NULL,NULL,3,0,NULL,'PL_LOW',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,'en_US',NULL,NULL,1,'comapnycorp1company.png','','',0,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0),(12,0,NULL,'2016-01-22 16:41:56','2010-07-11 16:18:08','Dupont Alain',1,NULL,NULL,'CU1601-0019',NULL,NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,'dalain@example.com',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'pierrecurie.jpg','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(13,0,NULL,'2016-01-22 17:13:16','2010-07-11 17:13:20','Company Corp 2',1,NULL,NULL,NULL,'SU1510-0008',NULL,NULL,'',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'companycorp2company.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(17,0,NULL,'2017-02-15 22:55:34','2011-08-01 02:41:26','Book Keeping Company',1,NULL,NULL,'CU1108-0004','SU1108-0004',NULL,'401SU11080004','The French Company',NULL,NULL,0,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,'',0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,0.000,NULL,0.000,NULL,NULL,NULL,NULL,NULL,1,'bookkeepercompany.png','','',0,NULL,NULL,'',0,NULL,NULL,1,'EUR',NULL,0),(19,0,NULL,'2017-02-21 11:51:40','2013-01-12 12:23:05','Magic Food Store',1,NULL,NULL,'CU1301-0008',NULL,NULL,NULL,'65 holdywood boulevard','123456','BigTown',0,4,NULL,'0101',NULL,'myemail@domain.com',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'0','','','10/10/2010','','',0.00000000,0,NULL,NULL,NULL,1,0,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,0.000,NULL,0.000,NULL,NULL,'en_US','patient@cabinetmed',NULL,1,'magicfoodstore.png','','',0,NULL,NULL,'',0,NULL,'sepamandate',NULL,NULL,NULL,0),(25,0,NULL,'2016-01-22 17:21:17','2013-03-10 15:47:37','Print Company',1,NULL,NULL,'CU1303-0016','SU1303-0007',NULL,NULL,'21 Gutenberg street','45600','Berlin',0,5,NULL,NULL,NULL,'printcompany@example.com',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'0','','','','','',0.00000000,0,NULL,NULL,NULL,0,1,NULL,NULL,0,0,0,1,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,0.000,NULL,0.000,NULL,NULL,'de_DE',NULL,NULL,1,'printcompany.png','','',0,NULL,NULL,'',0,NULL,NULL,NULL,NULL,NULL,0),(26,0,NULL,'2017-02-21 00:05:05','2017-02-12 23:17:04','Patient SuperIll',1,NULL,NULL,'CU1702-0020',NULL,'411CU17020020',NULL,'',NULL,NULL,0,14,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'','','','','',NULL,0,NULL,NULL,NULL,3,0,NULL,'',0,0,0,12,12,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0.000,NULL,0.000,NULL,NULL,'en_US','patient@cabinetmed',NULL,1,NULL,'','',0,NULL,NULL,'',0,NULL,NULL,0,'',NULL,0);
    +/*!40000 ALTER TABLE `llx_societe` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_account`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_account`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_account` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `login` varchar(128) NOT NULL,
    +  `pass_encoding` varchar(24) DEFAULT NULL,
    +  `pass_crypted` varchar(128) DEFAULT NULL,
    +  `pass_temp` varchar(128) DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `site` varchar(128) DEFAULT NULL,
    +  `fk_website` int(11) DEFAULT NULL,
    +  `note_private` text,
    +  `date_last_login` datetime DEFAULT NULL,
    +  `date_previous_login` datetime DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `key_account` varchar(128) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_societe_account_login_website_soc` (`entity`,`fk_soc`,`login`,`site`,`fk_website`),
    +  UNIQUE KEY `uk_societe_account_key_account_soc` (`entity`,`fk_soc`,`key_account`,`site`,`fk_website`),
    +  KEY `idx_societe_account_rowid` (`rowid`),
    +  KEY `idx_societe_account_login` (`login`),
    +  KEY `idx_societe_account_status` (`status`),
    +  KEY `idx_societe_account_fk_website` (`fk_website`),
    +  KEY `idx_societe_account_fk_soc` (`fk_soc`),
    +  CONSTRAINT `llx_societe_account_fk_societe` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `llx_societe_account_fk_website` FOREIGN KEY (`fk_website`) REFERENCES `llx_website` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_account`
    +--
    +
    +LOCK TABLES `llx_societe_account` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_account` DISABLE KEYS */;
    +INSERT INTO `llx_societe_account` VALUES (1,1,'','',NULL,NULL,204,'stripe',NULL,NULL,NULL,NULL,'2018-03-13 19:25:01','2018-03-19 09:01:17',12,NULL,NULL,0,''),(4,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 01:04:19','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(5,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 01:08:02','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(6,1,'','',NULL,NULL,145,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 17:09:36','2018-03-14 14:46:15',12,NULL,NULL,0,'cus_CUZzMg8S2T3oEo'),(7,1,'','',NULL,NULL,145,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 17:09:44','2018-03-14 14:46:15',12,NULL,NULL,0,'cus_CUZzMg8S2T3oEo'),(8,1,'','',NULL,NULL,145,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 18:43:23','2018-03-14 14:46:15',12,NULL,NULL,0,'cus_CUZzMg8S2T3oEo'),(9,1,'','',NULL,NULL,145,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 18:46:09','2018-03-14 14:46:15',12,NULL,NULL,0,'cus_CUZzMg8S2T3oEo'),(10,1,'','',NULL,NULL,145,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 18:46:15','2018-03-14 14:46:15',12,NULL,NULL,0,'cus_CUZzMg8S2T3oEo'),(13,1,'',NULL,NULL,NULL,163,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 19:33:19','2018-03-14 15:33:19',0,NULL,NULL,0,'cus_CUam8x0KCoKZlc'),(14,1,'',NULL,NULL,NULL,182,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 19:48:48','2018-03-14 15:48:49',0,NULL,NULL,0,'cus_CUb2Xt4A2p5vMd'),(15,1,'',NULL,NULL,NULL,203,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 19:52:13','2018-03-21 10:43:37',12,NULL,NULL,0,''),(17,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 23:57:42','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(18,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 23:57:47','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(19,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 23:58:13','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(20,1,'','',NULL,NULL,148,'stripe',NULL,NULL,NULL,NULL,'2018-03-14 23:58:19','2018-03-14 19:58:19',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(21,1,'',NULL,NULL,NULL,151,'stripe',NULL,NULL,NULL,NULL,'2018-03-16 19:10:29','2018-03-16 15:10:29',12,NULL,NULL,0,'cus_CVKshSj8uuaATf'),(22,1,'','',NULL,NULL,152,'stripe',NULL,NULL,NULL,NULL,'2018-03-16 19:11:15','2018-03-16 15:11:15',12,NULL,NULL,0,'cus_CTnHl6FRkiJJYC'),(24,1,'',NULL,NULL,NULL,153,'stripe',NULL,NULL,NULL,NULL,'2018-03-16 20:15:45','2018-03-16 16:15:45',18,NULL,NULL,0,'cus_CVLv9rX4wMouSk'),(25,1,'','',NULL,NULL,155,'stripe',NULL,NULL,NULL,NULL,'2018-03-18 23:55:37','2018-03-18 19:55:37',12,NULL,NULL,0,'cus_CVLLzP90RCWx76'),(26,1,'','',NULL,NULL,155,'stripe',NULL,NULL,NULL,NULL,'2018-03-19 00:01:47','2018-03-18 20:01:47',12,NULL,NULL,1,'cus_CVLLzP90RCWx76'),(27,1,'','',NULL,NULL,204,'stripe',NULL,NULL,NULL,NULL,'2018-03-19 13:01:17','2018-03-19 09:01:17',12,NULL,NULL,0,''),(28,1,'',NULL,NULL,NULL,204,'stripe',NULL,NULL,NULL,NULL,'2018-03-19 13:21:02','2018-03-19 09:21:02',0,NULL,NULL,0,'cus_CWMu7PlGViJN1S'),(29,1,'',NULL,NULL,NULL,1,'stripe',NULL,NULL,NULL,NULL,'2018-03-19 13:38:26','2018-03-19 09:38:26',0,NULL,NULL,0,'cus_CWNCF7mttdVEae'),(30,1,'','',NULL,NULL,203,'stripe',NULL,NULL,NULL,NULL,'2018-03-21 14:43:37','2018-03-21 10:43:37',12,NULL,NULL,0,''),(31,1,'',NULL,NULL,NULL,203,'stripe',NULL,NULL,NULL,NULL,'2018-03-21 14:44:18','2018-03-21 10:44:18',0,NULL,NULL,0,'cus_CX8hWwDQPMht5r'),(32,1,'',NULL,NULL,NULL,211,'stripe',NULL,NULL,NULL,NULL,'2018-04-19 16:20:27','2018-04-19 14:20:27',18,NULL,NULL,0,'cus_Ci3khlxtfYB0Xl'),(33,1,'',NULL,NULL,NULL,7,'stripe',NULL,NULL,NULL,NULL,'2018-04-30 14:57:29','2018-04-30 12:57:29',0,NULL,NULL,0,'cus_Cm9td5UQieFnlZ'),(38,1,'',NULL,NULL,NULL,154,'stripe',NULL,NULL,NULL,NULL,'2018-05-16 17:01:24','2018-05-16 15:01:24',18,NULL,NULL,0,'cus_CsBVSuBeNzmYw9'),(39,1,'','',NULL,NULL,151,'stripe',NULL,NULL,NULL,NULL,'2018-05-17 09:42:37','2018-05-17 07:42:37',12,NULL,NULL,1,'cus_CVKshSj8uuaATf'),(40,1,'',NULL,NULL,NULL,217,'stripe',NULL,NULL,NULL,NULL,'2018-06-01 19:47:16','2018-06-01 17:47:16',18,NULL,NULL,0,'cus_CyDmj3FJD8rYsd'),(41,1,'',NULL,NULL,NULL,218,'stripe',NULL,NULL,NULL,NULL,'2018-06-11 11:34:38','2018-06-11 09:34:38',12,NULL,NULL,0,'cus_D1q6IoIUoG7LMq'),(42,1,'',NULL,NULL,NULL,10,'stripe',NULL,NULL,NULL,NULL,'2018-06-12 13:49:51','2018-06-12 11:49:51',0,NULL,NULL,0,'cus_D2FVgMTgsYjt6k'),(44,1,'',NULL,NULL,NULL,215,'stripe',NULL,NULL,NULL,NULL,'2018-06-15 16:01:07','2018-06-15 14:01:07',18,NULL,NULL,0,'cus_D3PIZ5HzIeMj7B'),(45,1,'',NULL,NULL,NULL,229,'stripe',NULL,NULL,NULL,NULL,'2018-06-27 01:40:40','2018-06-26 23:40:40',18,NULL,NULL,0,'cus_D7g8Bvgx0AFfha'),(46,1,'',NULL,NULL,NULL,156,'stripe',NULL,NULL,NULL,NULL,'2018-07-17 14:13:48','2018-07-17 12:13:48',18,NULL,NULL,0,'cus_DFMnr5WsUoaCJX'),(47,1,'',NULL,NULL,NULL,231,'stripe',NULL,NULL,NULL,NULL,'2018-07-17 17:46:42','2018-07-17 15:46:42',18,NULL,NULL,0,'cus_DFQEkv3jONVJwR'),(48,1,'',NULL,NULL,NULL,250,'stripe',NULL,NULL,NULL,NULL,'2018-09-17 09:27:23','2018-09-17 07:27:23',18,NULL,NULL,0,'cus_DcWBnburaSkf0c'),(49,1,'',NULL,NULL,NULL,11,'stripe',NULL,NULL,NULL,NULL,'2018-10-12 20:08:01','2018-10-12 18:08:01',0,NULL,NULL,0,'cus_Dm39EV1tf8CRBT'),(50,1,'',NULL,NULL,NULL,214,'stripe',NULL,NULL,NULL,NULL,'2018-10-12 20:57:17','2018-10-12 18:57:17',18,NULL,NULL,0,'cus_Dm3wMg8aMLoRC9'),(51,1,'',NULL,NULL,NULL,213,'stripe',NULL,NULL,NULL,NULL,'2018-10-12 20:59:41','2018-10-12 18:59:41',18,NULL,NULL,0,'cus_Dm3zHwLuFKePzk');
    +/*!40000 ALTER TABLE `llx_societe_account` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_address`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_address`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_address` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT '0',
    +  `name` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_pays` int(11) DEFAULT '0',
    +  `phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_address`
    +--
    +
    +LOCK TABLES `llx_societe_address` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_address` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_societe_address` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_commerciaux`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_commerciaux`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_commerciaux` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_societe_commerciaux` (`fk_soc`,`fk_user`)
    +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_commerciaux`
    +--
    +
    +LOCK TABLES `llx_societe_commerciaux` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_commerciaux` DISABLE KEYS */;
    +INSERT INTO `llx_societe_commerciaux` VALUES (1,2,2,NULL),(2,3,2,NULL),(5,17,1,NULL),(6,19,1,NULL),(8,19,3,NULL),(9,11,16,NULL),(10,13,17,NULL),(11,26,12,NULL);
    +/*!40000 ALTER TABLE `llx_societe_commerciaux` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_societe_extrafields` (`fk_object`)
    +) ENGINE=InnoDB AUTO_INCREMENT=98 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_extrafields`
    +--
    +
    +LOCK TABLES `llx_societe_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_extrafields` DISABLE KEYS */;
    +INSERT INTO `llx_societe_extrafields` VALUES (75,'2016-01-22 16:40:03',10,NULL),(77,'2016-01-22 16:41:56',12,NULL),(79,'2016-01-22 17:13:16',13,NULL),(81,'2016-01-22 17:18:08',19,NULL),(82,'2016-01-22 17:21:17',25,NULL),(83,'2016-01-22 17:21:51',1,NULL),(85,'2016-01-22 17:22:32',3,NULL),(86,'2016-01-22 17:24:53',4,NULL),(88,'2016-01-22 17:25:26',6,NULL),(89,'2016-01-22 17:25:41',7,NULL),(92,'2016-07-30 11:45:49',2,NULL),(94,'2017-02-15 22:55:34',17,NULL),(95,'2017-02-21 00:05:05',26,NULL),(96,'2017-02-21 11:01:17',5,NULL),(97,'2017-05-12 09:06:31',11,NULL);
    +/*!40000 ALTER TABLE `llx_societe_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_log`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_log`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_log` (
    +  `id` int(11) NOT NULL AUTO_INCREMENT,
    +  `datel` datetime DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_statut` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `author` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `label` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`id`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_log`
    +--
    +
    +LOCK TABLES `llx_societe_log` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_log` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_societe_log` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_prices`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_prices`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_prices` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_soc` int(11) DEFAULT '0',
    +  `tms` timestamp NULL DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `price_level` tinyint(4) DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_prices`
    +--
    +
    +LOCK TABLES `llx_societe_prices` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_prices` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_societe_prices` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_remise`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_remise`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_remise` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_soc` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `remise_client` double(6,3) NOT NULL DEFAULT '0.000',
    +  `note` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_remise`
    +--
    +
    +LOCK TABLES `llx_societe_remise` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_remise` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_societe_remise` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_remise_except`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_remise_except`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_remise_except` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_soc` int(11) NOT NULL,
    +  `discount_type` int(11) NOT NULL DEFAULT '0',
    +  `datec` datetime DEFAULT NULL,
    +  `amount_ht` double(24,8) NOT NULL,
    +  `amount_tva` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `amount_ttc` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `tva_tx` double(6,3) NOT NULL DEFAULT '0.000',
    +  `fk_user` int(11) NOT NULL,
    +  `fk_facture_line` int(11) DEFAULT NULL,
    +  `fk_facture` int(11) DEFAULT NULL,
    +  `fk_facture_source` int(11) DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci NOT NULL,
    +  `multicurrency_amount_ht` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `multicurrency_amount_tva` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `multicurrency_amount_ttc` double(24,8) NOT NULL DEFAULT '0.00000000',
    +  `fk_invoice_supplier_line` int(11) DEFAULT NULL,
    +  `fk_invoice_supplier` int(11) DEFAULT NULL,
    +  `fk_invoice_supplier_source` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_societe_remise_except_fk_user` (`fk_user`),
    +  KEY `idx_societe_remise_except_fk_soc` (`fk_soc`),
    +  KEY `idx_societe_remise_except_fk_facture_line` (`fk_facture_line`),
    +  KEY `idx_societe_remise_except_fk_facture` (`fk_facture`),
    +  KEY `idx_societe_remise_except_fk_facture_source` (`fk_facture_source`),
    +  KEY `fk_soc_remise_fk_invoice_supplier_line` (`fk_invoice_supplier_line`),
    +  KEY `fk_societe_remise_fk_invoice_supplier_source` (`fk_invoice_supplier`),
    +  KEY `idx_societe_remise_except_discount_type` (`discount_type`),
    +  CONSTRAINT `fk_soc_remise_fk_facture_line` FOREIGN KEY (`fk_facture_line`) REFERENCES `llx_facturedet` (`rowid`),
    +  CONSTRAINT `fk_soc_remise_fk_invoice_supplier_line` FOREIGN KEY (`fk_invoice_supplier_line`) REFERENCES `llx_facture_fourn_det` (`rowid`),
    +  CONSTRAINT `fk_soc_remise_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_facture` FOREIGN KEY (`fk_facture`) REFERENCES `llx_facture` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_facture_line` FOREIGN KEY (`fk_facture_line`) REFERENCES `llx_facturedet` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_facture_source` FOREIGN KEY (`fk_facture_source`) REFERENCES `llx_facture` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_invoice_supplier` FOREIGN KEY (`fk_invoice_supplier`) REFERENCES `llx_facture_fourn` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_invoice_supplier_source` FOREIGN KEY (`fk_invoice_supplier`) REFERENCES `llx_facture_fourn` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_societe_remise_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_remise_except`
    +--
    +
    +LOCK TABLES `llx_societe_remise_except` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_remise_except` DISABLE KEYS */;
    +INSERT INTO `llx_societe_remise_except` VALUES (2,1,19,0,'2013-03-19 09:36:15',10.00000000,1.25000000,11.25000000,12.500,1,NULL,NULL,NULL,'hfghgf',0.00000000,0.00000000,0.00000000,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_societe_remise_except` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_remise_supplier`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_remise_supplier`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_remise_supplier` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_soc` int(11) NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `remise_supplier` double(6,3) NOT NULL DEFAULT '0.000',
    +  `note` text,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_remise_supplier`
    +--
    +
    +LOCK TABLES `llx_societe_remise_supplier` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_remise_supplier` DISABLE KEYS */;
    +INSERT INTO `llx_societe_remise_supplier` VALUES (1,1,1,'2018-04-06 18:21:00','2018-04-06 20:21:00',12,6.000,'llll');
    +/*!40000 ALTER TABLE `llx_societe_remise_supplier` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_rib`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_rib`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_rib` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `type` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bank` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bic` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `iban_prefix` varchar(34) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `domiciliation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `proprio` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `owner_address` text COLLATE utf8_unicode_ci,
    +  `default_rib` tinyint(4) NOT NULL DEFAULT '0',
    +  `rum` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_rum` date DEFAULT NULL,
    +  `frstrecur` varchar(16) COLLATE utf8_unicode_ci DEFAULT 'FRST',
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `last_four` varchar(4) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `card_type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cvn` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `exp_date_month` int(11) DEFAULT NULL,
    +  `exp_date_year` int(11) DEFAULT NULL,
    +  `country_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `approved` int(11) DEFAULT '0',
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ending_date` date DEFAULT NULL,
    +  `max_total_amount_of_all_payments` double(24,8) DEFAULT NULL,
    +  `preapproval_key` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `starting_date` date DEFAULT NULL,
    +  `total_amount_of_all_payments` double(24,8) DEFAULT NULL,
    +  `stripe_card_ref` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_rib`
    +--
    +
    +LOCK TABLES `llx_societe_rib` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_rib` DISABLE KEYS */;
    +INSERT INTO `llx_societe_rib` VALUES (1,'ban',19,'2017-02-21 15:50:32','2017-02-21 11:53:08','Morgan Bank','Morgan Bank','','','','','PSPBFIHH','ES80 2310 0001 1800 0001 2345','Royal via,\r\nMadrid','Mr Esposito','10 via ferrata,\r\nMadrid',1,'RUM1301-0008-0',NULL,'FRST',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_societe_rib` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_societe_rib2`
    +--
    +
    +DROP TABLE IF EXISTS `llx_societe_rib2`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_societe_rib2` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `type` varchar(32) DEFAULT 'ban',
    +  `label` varchar(30) DEFAULT NULL,
    +  `fk_soc` int(11) NOT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `bank` varchar(255) DEFAULT NULL,
    +  `code_banque` varchar(128) DEFAULT NULL,
    +  `code_guichet` varchar(6) DEFAULT NULL,
    +  `number` varchar(255) DEFAULT NULL,
    +  `cle_rib` varchar(5) DEFAULT NULL,
    +  `bic` varchar(20) DEFAULT NULL,
    +  `iban_prefix` varchar(34) DEFAULT NULL,
    +  `domiciliation` varchar(255) DEFAULT NULL,
    +  `proprio` varchar(60) DEFAULT NULL,
    +  `owner_address` varchar(255) DEFAULT NULL,
    +  `default_rib` smallint(6) NOT NULL DEFAULT '0',
    +  `rum` varchar(32) DEFAULT NULL,
    +  `date_rum` date DEFAULT NULL,
    +  `frstrecur` varchar(16) DEFAULT 'FRST',
    +  `last_four` varchar(4) DEFAULT NULL,
    +  `card_type` varchar(255) DEFAULT NULL,
    +  `cvn` varchar(255) DEFAULT NULL,
    +  `exp_date_month` int(11) DEFAULT NULL,
    +  `exp_date_year` int(11) DEFAULT NULL,
    +  `country_code` varchar(10) DEFAULT NULL,
    +  `approved` int(11) DEFAULT '0',
    +  `email` varchar(255) DEFAULT NULL,
    +  `ending_date` date DEFAULT NULL,
    +  `max_total_amount_of_all_payments` double(24,8) DEFAULT NULL,
    +  `preapproval_key` varchar(255) DEFAULT NULL,
    +  `starting_date` date DEFAULT NULL,
    +  `total_amount_of_all_payments` double(24,8) DEFAULT NULL,
    +  `stripe_card_ref` varchar(128) DEFAULT NULL,
    +  `status` int(11) NOT NULL DEFAULT '1',
    +  `import_key` varchar(14) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_societe_rib2`
    +--
    +
    +LOCK TABLES `llx_societe_rib2` WRITE;
    +/*!40000 ALTER TABLE `llx_societe_rib2` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_societe_rib2` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_socpeople`
    +--
    +
    +DROP TABLE IF EXISTS `llx_socpeople`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_socpeople` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `civility` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` text COLLATE utf8_unicode_ci,
    +  `fk_departement` int(11) DEFAULT NULL,
    +  `fk_pays` int(11) DEFAULT '0',
    +  `birthday` date DEFAULT NULL,
    +  `poste` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone_perso` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `phone_mobile` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fax` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `jabberid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `skype` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `whatsapp` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `youtube` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `googleplus` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `snapchat` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `instagram` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `facebook` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `twitter` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `photo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `priv` smallint(6) NOT NULL DEFAULT '0',
    +  `no_email` smallint(6) NOT NULL DEFAULT '0',
    +  `fk_user_creat` int(11) DEFAULT '0',
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `default_lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `canvas` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `statut` tinyint(4) NOT NULL DEFAULT '1',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_socpeople_fk_soc` (`fk_soc`),
    +  KEY `idx_socpeople_fk_user_creat` (`fk_user_creat`),
    +  CONSTRAINT `fk_socpeople_fk_soc` FOREIGN KEY (`fk_soc`) REFERENCES `llx_societe` (`rowid`),
    +  CONSTRAINT `fk_socpeople_user_creat_user_rowid` FOREIGN KEY (`fk_user_creat`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_socpeople`
    +--
    +
    +LOCK TABLES `llx_socpeople` WRITE;
    +/*!40000 ALTER TABLE `llx_socpeople` DISABLE KEYS */;
    +INSERT INTO `llx_socpeople` VALUES (1,'2010-07-08 14:26:14','2016-01-16 15:07:51',1,1,NULL,'MR','Indra','Mahala','','','',297,117,'2010-07-08','Project leader','','','','','','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,12,'Met during a congress at Dubai','',NULL,NULL,NULL,1),(2,'2010-07-08 22:44:50','2010-07-08 20:59:57',NULL,1,NULL,'MR','Freeman','Public','','','',200,11,NULL,'','','','','','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,1,'A friend that is a free contact not linked to any company',NULL,NULL,NULL,NULL,1),(3,'2010-07-08 22:59:02','2016-01-22 17:30:07',NULL,1,NULL,'MR','Mywife','Nicy','','','',NULL,11,'1980-10-03','','','','','','','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,0,1,12,'This is a private contact','',NULL,NULL,NULL,1),(4,'2010-07-09 00:16:58','2010-07-08 22:16:58',6,1,NULL,'MR','Rotchield','Evan','','','',NULL,6,NULL,'Bank director','','','','','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,1,'The bank director',NULL,NULL,NULL,NULL,1),(6,'2011-08-01 02:41:26','2016-01-22 17:29:53',17,1,NULL,'','Bookkeeper','Bob','99 account street','123456','BigTown',NULL,4,NULL,'book keeper','','','','','','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,12,'','',NULL,NULL,NULL,1),(7,'2016-07-30 16:11:06','2016-07-30 12:16:07',NULL,1,'','MR','Dad','','','','',NULL,14,'1967-09-04','','','','','','','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',1,0,12,12,'','',NULL,NULL,NULL,1),(8,'2016-07-30 16:13:03','2016-07-30 12:15:58',NULL,1,'','MLE','Mom','','','','',NULL,14,NULL,'','','','','','','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',1,0,12,12,'','',NULL,NULL,NULL,1),(9,'2016-07-30 16:14:41','2016-07-30 12:15:51',NULL,1,'','MR','Francky','','','89455','Virigia',NULL,205,'1980-07-09','Baker','555-98989898','','','','francky@example.com','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',0,0,12,12,'','',NULL,NULL,NULL,1),(10,'2016-07-30 16:26:22','2016-07-30 12:52:38',10,1,'','MR','Eldy','','','33600','Pessac',NULL,1,'1972-10-10','Dolibarr project leader','','','','','eldy@example.com','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ldestailleur_200x200.jpg',0,0,NULL,12,'','',NULL,NULL,NULL,1),(11,'2017-05-12 13:16:36','2017-05-12 09:18:20',11,1,'','MR','Smith','Laurent','45 Big road','897','Seattle',NULL,11,NULL,'Director','','','','','','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ldestailleur_200x200.png',0,0,12,12,'','',NULL,NULL,NULL,1),(12,'2017-05-12 13:19:31','2017-05-12 09:19:42',11,1,'','MR','Einstein','','','','',NULL,11,NULL,'Genius','333444555','','','','genius@example.com','','',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Einstein.jpg',0,0,12,12,'','',NULL,NULL,NULL,1);
    +/*!40000 ALTER TABLE `llx_socpeople` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_socpeople_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_socpeople_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_socpeople_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_socpeople_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_socpeople_extrafields`
    +--
    +
    +LOCK TABLES `llx_socpeople_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_socpeople_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_socpeople_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_stock_lotserial`
    +--
    +
    +DROP TABLE IF EXISTS `llx_stock_lotserial`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_stock_lotserial` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `eatby` date DEFAULT NULL,
    +  `sellby` date DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_stock_lotserial`
    +--
    +
    +LOCK TABLES `llx_stock_lotserial` WRITE;
    +/*!40000 ALTER TABLE `llx_stock_lotserial` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_stock_lotserial` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_stock_mouvement`
    +--
    +
    +DROP TABLE IF EXISTS `llx_stock_mouvement`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_stock_mouvement` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datem` datetime DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL,
    +  `fk_entrepot` int(11) NOT NULL,
    +  `value` double DEFAULT NULL,
    +  `price` double(24,8) DEFAULT '0.00000000',
    +  `type_mouvement` smallint(6) DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_origin` int(11) DEFAULT NULL,
    +  `origintype` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `inventorycode` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `batch` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `eatby` date DEFAULT NULL,
    +  `sellby` date DEFAULT NULL,
    +  `fk_project` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_stock_mouvement_fk_product` (`fk_product`),
    +  KEY `idx_stock_mouvement_fk_entrepot` (`fk_entrepot`)
    +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_stock_mouvement`
    +--
    +
    +LOCK TABLES `llx_stock_mouvement` WRITE;
    +/*!40000 ALTER TABLE `llx_stock_mouvement` DISABLE KEYS */;
    +INSERT INTO `llx_stock_mouvement` VALUES (1,'2010-07-08 22:43:51','2010-07-09 00:43:51',2,2,1000,0.00000000,0,1,'Correct stock',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'2010-07-10 22:56:18','2010-07-11 00:56:18',4,2,500,0.00000000,0,1,'Init',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,'2010-07-10 23:02:20','2010-07-11 01:02:20',4,2,500,0.00000000,0,1,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(5,'2010-07-11 16:49:44','2010-07-11 18:49:44',4,1,2,10.00000000,3,1,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(6,'2010-07-11 16:49:44','2010-07-11 18:49:44',1,1,4,0.00000000,3,1,'',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(7,'2013-01-19 17:22:48','2013-01-19 18:22:48',11,1,-1,0.00000000,2,1,'Facture cr&eacute;&eacute;e dans DoliPOS',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(8,'2013-01-19 17:22:48','2013-01-19 18:22:48',4,1,-1,5.00000000,2,1,'Facture cr&eacute;&eacute;e dans DoliPOS',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(9,'2013-01-19 17:22:48','2013-01-19 18:22:48',1,1,-2,0.00000000,2,1,'Facture cr&eacute;&eacute;e dans DoliPOS',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(10,'2013-01-19 17:31:10','2013-01-19 18:31:10',2,1,-1,0.00000000,2,1,'Facture cr&eacute;&eacute;e dans DoliPOS',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(11,'2013-01-19 17:31:58','2013-01-19 18:31:58',2,1,-1,0.00000000,2,1,'Facture cr&eacute;&eacute;e dans DoliPOS',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(12,'2016-07-30 13:39:31','2016-07-30 17:39:31',10,2,50,0.00000000,0,12,'Stock correction for product COMP-XP4523',0,'',NULL,NULL,'5599887766452',NULL,NULL,NULL),(13,'2016-07-30 13:40:12','2016-07-30 17:40:12',10,2,60,0.00000000,0,12,'Stock correction for product COMP-XP4523',0,'',NULL,NULL,'4494487766452',NULL,NULL,NULL),(14,'2016-07-30 13:40:39','2016-07-30 17:40:39',10,2,-35,0.00000000,1,12,'Stock transfer of product COMP-XP4523 into another warehouse',0,'',NULL,'160730174015','5599887766452',NULL,NULL,NULL),(15,'2016-07-30 13:40:39','2016-07-30 17:40:39',10,1,35,0.00000000,0,12,'Stock transfer of product COMP-XP4523 into another warehouse',0,'',NULL,'160730174015','5599887766452',NULL,NULL,NULL),(16,'2017-02-15 23:58:08','2017-02-16 03:58:08',10,1,-1,100.00000000,2,12,'Exp&eacute;dition SH1702-0002 valid&eacute;e',3,'shipping',NULL,NULL,'5599887766452',NULL,NULL,NULL),(17,'2017-02-16 00:12:09','2017-02-16 04:12:09',10,1,1,0.00000000,3,12,'Exp&eacute;dition SH1702-0002 supprim&eacute;e',0,'',NULL,NULL,'5599887766452',NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_stock_mouvement` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_submitew_message`
    +--
    +
    +DROP TABLE IF EXISTS `llx_submitew_message`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_submitew_message` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `statut` smallint(6) DEFAULT '0',
    +  `label` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `title` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `body_short` text COLLATE utf8_unicode_ci,
    +  `body_long` text COLLATE utf8_unicode_ci,
    +  `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cible` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `nbemail` int(11) DEFAULT NULL,
    +  `email_from` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_replyto` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email_errorsto` varchar(160) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `tag` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creat` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_appro` datetime DEFAULT NULL,
    +  `date_envoi` datetime DEFAULT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_appro` int(11) DEFAULT NULL,
    +  `joined_file1` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file3` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `joined_file4` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_submitew_message`
    +--
    +
    +LOCK TABLES `llx_submitew_message` WRITE;
    +/*!40000 ALTER TABLE `llx_submitew_message` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_submitew_message` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_submitew_targets`
    +--
    +
    +DROP TABLE IF EXISTS `llx_submitew_targets`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_submitew_targets` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `label` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `targetcode` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `langcode` varchar(5) COLLATE utf8_unicode_ci DEFAULT 'en_US',
    +  `url` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `login` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `comment` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `position` int(11) DEFAULT '0',
    +  `titlelength` int(11) DEFAULT '32',
    +  `descshortlength` int(11) DEFAULT '256',
    +  `desclonglength` int(11) DEFAULT '2000',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_submitewtargets` (`label`,`langcode`)
    +) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_submitew_targets`
    +--
    +
    +LOCK TABLES `llx_submitew_targets` WRITE;
    +/*!40000 ALTER TABLE `llx_submitew_targets` DISABLE KEYS */;
    +INSERT INTO `llx_submitew_targets` VALUES (17,'hhho','email','fr_FR','',NULL,NULL,NULL,0,0,-1,0),(34,'pppp','facebook','fr_FR',NULL,'eldy','ld101010-fk',NULL,0,-1,-1,-1),(35,'hfghfgh','web','de_DE','http://wwww','ffffmmm','null',NULL,0,-1,-1,-1),(37,'llll','linkedin','fr_FR','',NULL,NULL,NULL,0,32,256,2000),(55,'fff','dig','fr_FR',NULL,'hfgh','hfghgf',NULL,0,-1,-1,-1),(56,'aaaaaaa','linkedin','da_DK',NULL,'aa','aaa',NULL,0,32,256,2000),(57,'ddd','dig','en_US',NULL,'dd',NULL,NULL,0,32,256,2000),(59,'dddff','dig','en_US',NULL,NULL,NULL,NULL,0,32,256,2000),(68,'dddffe','dig','en_US',NULL,NULL,NULL,NULL,0,32,256,2000),(70,'dddffef','dig','en_US','http://www.dig.com',NULL,NULL,NULL,0,32,256,2000),(71,'ffff','dig','en_US','http://www.dig.com',NULL,NULL,NULL,0,32,256,2000);
    +/*!40000 ALTER TABLE `llx_submitew_targets` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_submitew_targets_params`
    +--
    +
    +DROP TABLE IF EXISTS `llx_submitew_targets_params`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_submitew_targets_params` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_target` int(11) NOT NULL,
    +  `paramkey` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
    +  `paramvalue` varchar(128) COLLATE utf8_unicode_ci DEFAULT '',
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `idx_submitewtargets_fk_target` (`fk_target`),
    +  UNIQUE KEY `uk_submitewtargets_params` (`fk_target`,`paramkey`,`paramvalue`),
    +  CONSTRAINT `fk_submitewtargets_fk_target` FOREIGN KEY (`fk_target`) REFERENCES `llx_submitew_targets` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_submitew_targets_params`
    +--
    +
    +LOCK TABLES `llx_submitew_targets_params` WRITE;
    +/*!40000 ALTER TABLE `llx_submitew_targets_params` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_submitew_targets_params` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_subscription`
    +--
    +
    +DROP TABLE IF EXISTS `llx_subscription`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_subscription` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `fk_adherent` int(11) DEFAULT NULL,
    +  `dateadh` datetime DEFAULT NULL,
    +  `datef` date DEFAULT NULL,
    +  `subscription` double(24,8) DEFAULT NULL,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_subscription` (`fk_adherent`,`dateadh`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_subscription`
    +--
    +
    +LOCK TABLES `llx_subscription` WRITE;
    +/*!40000 ALTER TABLE `llx_subscription` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_subscription` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_supplier_proposal`
    +--
    +
    +DROP TABLE IF EXISTS `llx_supplier_proposal`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_supplier_proposal` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `ref` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref_ext` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_projet` int(11) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` datetime DEFAULT NULL,
    +  `date_valid` datetime DEFAULT NULL,
    +  `date_cloture` datetime DEFAULT NULL,
    +  `fk_user_author` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_user_valid` int(11) DEFAULT NULL,
    +  `fk_user_cloture` int(11) DEFAULT NULL,
    +  `fk_statut` smallint(6) NOT NULL DEFAULT '0',
    +  `price` double DEFAULT '0',
    +  `remise_percent` double DEFAULT '0',
    +  `remise_absolue` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `tva` double(24,8) DEFAULT '0.00000000',
    +  `localtax1` double(24,8) DEFAULT '0.00000000',
    +  `localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total` double(24,8) DEFAULT '0.00000000',
    +  `fk_account` int(11) DEFAULT NULL,
    +  `fk_currency` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_cond_reglement` int(11) DEFAULT NULL,
    +  `fk_mode_reglement` int(11) DEFAULT NULL,
    +  `note_private` text COLLATE utf8_unicode_ci,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_livraison` date DEFAULT NULL,
    +  `fk_shipping_method` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `extraparams` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_tx` double(24,8) DEFAULT '1.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `last_main_doc` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_supplier_proposal`
    +--
    +
    +LOCK TABLES `llx_supplier_proposal` WRITE;
    +/*!40000 ALTER TABLE `llx_supplier_proposal` DISABLE KEYS */;
    +INSERT INTO `llx_supplier_proposal` VALUES (2,'(PROV2)',1,NULL,NULL,10,NULL,'2017-02-17 00:40:50','2017-02-17 04:40:14',NULL,NULL,12,NULL,NULL,NULL,0,0,NULL,NULL,0,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,NULL,NULL,2,7,'','','aurore','2017-02-17',1,NULL,NULL,1,'EUR',1.00000000,200.00000000,0.00000000,200.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_supplier_proposal` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_supplier_proposal_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_supplier_proposal_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_supplier_proposal_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_supplier_proposal_extrafields`
    +--
    +
    +LOCK TABLES `llx_supplier_proposal_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_supplier_proposal_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_supplier_proposal_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_supplier_proposaldet`
    +--
    +
    +DROP TABLE IF EXISTS `llx_supplier_proposaldet`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_supplier_proposaldet` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_supplier_proposal` int(11) NOT NULL,
    +  `fk_parent_line` int(11) DEFAULT NULL,
    +  `fk_product` int(11) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` text COLLATE utf8_unicode_ci,
    +  `fk_remise_except` int(11) DEFAULT NULL,
    +  `tva_tx` double(6,3) DEFAULT '0.000',
    +  `vat_src_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT '',
    +  `localtax1_tx` double(6,3) DEFAULT '0.000',
    +  `localtax1_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `localtax2_tx` double(6,3) DEFAULT '0.000',
    +  `localtax2_type` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty` double DEFAULT NULL,
    +  `remise_percent` double DEFAULT '0',
    +  `remise` double DEFAULT '0',
    +  `price` double DEFAULT NULL,
    +  `subprice` double(24,8) DEFAULT '0.00000000',
    +  `total_ht` double(24,8) DEFAULT '0.00000000',
    +  `total_tva` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax1` double(24,8) DEFAULT '0.00000000',
    +  `total_localtax2` double(24,8) DEFAULT '0.00000000',
    +  `total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `product_type` int(11) DEFAULT '0',
    +  `info_bits` int(11) DEFAULT '0',
    +  `buy_price_ht` double(24,8) DEFAULT '0.00000000',
    +  `fk_product_fournisseur_price` int(11) DEFAULT NULL,
    +  `special_code` int(11) DEFAULT '0',
    +  `rang` int(11) DEFAULT '0',
    +  `ref_fourn` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_multicurrency` int(11) DEFAULT NULL,
    +  `multicurrency_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `multicurrency_subprice` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ht` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_tva` double(24,8) DEFAULT '0.00000000',
    +  `multicurrency_total_ttc` double(24,8) DEFAULT '0.00000000',
    +  `fk_unit` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_supplier_proposaldet_fk_supplier_proposal` (`fk_supplier_proposal`),
    +  KEY `idx_supplier_proposaldet_fk_product` (`fk_product`),
    +  KEY `fk_supplier_proposaldet_fk_unit` (`fk_unit`),
    +  CONSTRAINT `fk_supplier_proposaldet_fk_supplier_proposal` FOREIGN KEY (`fk_supplier_proposal`) REFERENCES `llx_supplier_proposal` (`rowid`),
    +  CONSTRAINT `fk_supplier_proposaldet_fk_unit` FOREIGN KEY (`fk_unit`) REFERENCES `llx_c_units` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_supplier_proposaldet`
    +--
    +
    +LOCK TABLES `llx_supplier_proposaldet` WRITE;
    +/*!40000 ALTER TABLE `llx_supplier_proposaldet` DISABLE KEYS */;
    +INSERT INTO `llx_supplier_proposaldet` VALUES (2,2,NULL,NULL,NULL,'A powerfull computer with 8Gb memory.',NULL,0.000,'',0.000,'0',0.000,'0',1,0,0,NULL,200.00000000,200.00000000,0.00000000,0.00000000,0.00000000,200.00000000,0,0,0.00000000,NULL,0,1,'',1,'EUR',200.00000000,200.00000000,0.00000000,200.00000000,NULL);
    +/*!40000 ALTER TABLE `llx_supplier_proposaldet` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_supplier_proposaldet_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_supplier_proposaldet_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_supplier_proposaldet_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_supplier_proposaldet_extrafields`
    +--
    +
    +LOCK TABLES `llx_supplier_proposaldet_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_supplier_proposaldet_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_supplier_proposaldet_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_takepos_floor_tables`
    +--
    +
    +DROP TABLE IF EXISTS `llx_takepos_floor_tables`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_takepos_floor_tables` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `label` varchar(255) DEFAULT NULL,
    +  `leftpos` float DEFAULT NULL,
    +  `toppos` float DEFAULT NULL,
    +  `floor` int(3) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_takepos_floor_tables`
    +--
    +
    +LOCK TABLES `llx_takepos_floor_tables` WRITE;
    +/*!40000 ALTER TABLE `llx_takepos_floor_tables` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_takepos_floor_tables` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ticket`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ticket`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ticket` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `ref` varchar(128) NOT NULL,
    +  `track_id` varchar(128) NOT NULL,
    +  `fk_soc` int(11) DEFAULT '0',
    +  `fk_project` int(11) DEFAULT '0',
    +  `origin_email` varchar(128) DEFAULT NULL,
    +  `fk_user_create` int(11) DEFAULT NULL,
    +  `fk_user_assign` int(11) DEFAULT NULL,
    +  `subject` varchar(255) DEFAULT NULL,
    +  `message` text,
    +  `fk_statut` int(11) DEFAULT NULL,
    +  `resolution` int(11) DEFAULT NULL,
    +  `progress` varchar(100) DEFAULT NULL,
    +  `timing` varchar(20) DEFAULT NULL,
    +  `type_code` varchar(32) DEFAULT NULL,
    +  `category_code` varchar(32) DEFAULT NULL,
    +  `severity_code` varchar(32) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `date_read` datetime DEFAULT NULL,
    +  `date_close` datetime DEFAULT NULL,
    +  `notify_tiers_at_create` tinyint(4) DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_ticket_track_id` (`track_id`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ticket`
    +--
    +
    +LOCK TABLES `llx_ticket` WRITE;
    +/*!40000 ALTER TABLE `llx_ticket` DISABLE KEYS */;
    +INSERT INTO `llx_ticket` VALUES (1,1,'aaa','d42iybp7p6d1cvqi',248,12,NULL,12,NULL,'aaa','aaa',1,NULL,'0',NULL,'COM','OTHER','NORMAL','2018-06-04 21:36:42','2018-10-01 03:20:18',NULL,0,'2018-10-01 01:20:18');
    +/*!40000 ALTER TABLE `llx_ticket` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ticket_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ticket_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ticket_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) DEFAULT NULL,
    +  `aaa` int(10) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ticket_extrafields`
    +--
    +
    +LOCK TABLES `llx_ticket_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_ticket_extrafields` DISABLE KEYS */;
    +INSERT INTO `llx_ticket_extrafields` VALUES (1,'2018-06-04 19:36:42',1,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_ticket_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_ticket_msg`
    +--
    +
    +DROP TABLE IF EXISTS `llx_ticket_msg`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_ticket_msg` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) DEFAULT '1',
    +  `fk_track_id` varchar(128) DEFAULT NULL,
    +  `fk_user_action` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `message` text,
    +  `private` int(11) DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_ticket_msg_fk_track_id` (`fk_track_id`),
    +  CONSTRAINT `fk_ticket_msg_fk_track_id` FOREIGN KEY (`fk_track_id`) REFERENCES `llx_ticket` (`track_id`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_ticket_msg`
    +--
    +
    +LOCK TABLES `llx_ticket_msg` WRITE;
    +/*!40000 ALTER TABLE `llx_ticket_msg` DISABLE KEYS */;
    +INSERT INTO `llx_ticket_msg` VALUES (1,1,'d42iybp7p6d1cvqi',12,'2018-10-01 03:18:19','gdfgdf',0),(2,1,'d42iybp7p6d1cvqi',12,'2018-10-01 03:18:30','gdf',0);
    +/*!40000 ALTER TABLE `llx_ticket_msg` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_tva`
    +--
    +
    +DROP TABLE IF EXISTS `llx_tva`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_tva` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `datec` date DEFAULT NULL,
    +  `datep` date DEFAULT NULL,
    +  `datev` date DEFAULT NULL,
    +  `amount` double(24,8) DEFAULT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `note` text COLLATE utf8_unicode_ci,
    +  `fk_bank` int(11) DEFAULT NULL,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `fk_typepayment` int(11) DEFAULT NULL,
    +  `num_payment` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_tva`
    +--
    +
    +LOCK TABLES `llx_tva` WRITE;
    +/*!40000 ALTER TABLE `llx_tva` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_tva` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `login` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `civility` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_ext` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_int` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `employee` smallint(6) DEFAULT '1',
    +  `fk_establishment` int(11) DEFAULT '0',
    +  `pass` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass_crypted` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass_temp` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `api_key` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lastname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `firstname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `job` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `skype` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `office_phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `office_fax` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `user_mobile` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `signature` text COLLATE utf8_unicode_ci,
    +  `admin` smallint(6) DEFAULT '0',
    +  `webcal_login` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `module_comm` smallint(6) DEFAULT '1',
    +  `module_compta` smallint(6) DEFAULT '1',
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `fk_socpeople` int(11) DEFAULT NULL,
    +  `fk_member` int(11) DEFAULT NULL,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `datelastlogin` datetime DEFAULT NULL,
    +  `datepreviouslogin` datetime DEFAULT NULL,
    +  `egroupware_id` int(11) DEFAULT NULL,
    +  `ldap_sid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `statut` tinyint(4) DEFAULT '1',
    +  `photo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `openid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `thm` double(24,8) DEFAULT NULL,
    +  `address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `zip` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `town` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_state` int(11) DEFAULT '0',
    +  `fk_country` int(11) DEFAULT '0',
    +  `color` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `accountancy_code` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `barcode` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_barcode_type` int(11) DEFAULT '0',
    +  `nb_holiday` int(11) DEFAULT '0',
    +  `salary` double(24,8) DEFAULT NULL,
    +  `tjm` double(24,8) DEFAULT NULL,
    +  `salaryextra` double(24,8) DEFAULT NULL,
    +  `weeklyhours` double(16,8) DEFAULT NULL,
    +  `gender` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `note_public` text COLLATE utf8_unicode_ci,
    +  `dateemployment` datetime DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `birth` date DEFAULT NULL,
    +  `pass_encoding` varchar(24) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `default_range` int(11) DEFAULT NULL,
    +  `default_c_exp_tax_cat` int(11) DEFAULT NULL,
    +  `dateemploymentend` date DEFAULT NULL,
    +  `twitter` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `facebook` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `instagram` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `snapchat` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `googleplus` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `youtube` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `whatsapp` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_user_login` (`login`,`entity`),
    +  UNIQUE KEY `uk_user_fk_socpeople` (`fk_socpeople`),
    +  UNIQUE KEY `uk_user_fk_member` (`fk_member`),
    +  UNIQUE KEY `uk_user_api_key` (`api_key`),
    +  KEY `idx_user_api_key` (`api_key`),
    +  KEY `idx_user_fk_societe` (`fk_soc`)
    +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user`
    +--
    +
    +LOCK TABLES `llx_user` WRITE;
    +/*!40000 ALTER TABLE `llx_user` DISABLE KEYS */;
    +INSERT INTO `llx_user` VALUES (1,'2010-07-08 13:20:11','2017-02-01 15:06:04',NULL,NULL,'aeinstein',0,NULL,NULL,NULL,1,0,NULL,'11c9c772d6471aa24c27274bdd8a223b',NULL,NULL,'Einstein','Albert','','','123456789','','','aeinstein@example.com','',0,'',1,1,NULL,NULL,NULL,'','2015-10-05 08:32:44','2015-10-03 11:43:50',NULL,'',1,'alberteinstein.jpg',NULL,NULL,14,NULL,'','','',NULL,NULL,'aaaaff','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(2,'2010-07-08 13:54:48','2017-02-01 15:06:04',NULL,NULL,'demo',1,NULL,NULL,NULL,1,0,NULL,'fe01ce2a7fbac8fafaed7c982a04e229',NULL,NULL,'Doe','David','','','09123123','','','daviddoe@mycompany.com','',0,'',1,1,NULL,NULL,NULL,'','2016-07-30 23:10:54','2016-07-30 23:04:17',NULL,'',1,'johndoe.png',NULL,NULL,11,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(3,'2010-07-11 16:18:59','2017-02-01 15:06:04',NULL,NULL,'pcurie',1,NULL,NULL,NULL,1,0,NULL,'ab335b4eb4c3c99334f656e5db9584c9',NULL,NULL,'Curie','Pierre','','','','','','pcurie@example.com','',0,'',1,1,NULL,NULL,2,'','2012-12-21 17:38:55',NULL,NULL,'',1,'pierrecurie.jpg',NULL,NULL,14,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(4,'2013-01-23 17:52:27','2017-02-01 15:06:04',NULL,NULL,'bbookkeeper',1,NULL,NULL,NULL,1,0,NULL,'a7d30b58d647fcf59b7163f9592b1dbb',NULL,NULL,'Bookkeeper','Bob','Bookkeeper','','','','','','',0,'',1,1,17,6,NULL,'','2013-02-25 10:18:41','2013-01-23 17:53:20',NULL,'',1,NULL,NULL,NULL,11,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(10,'2015-10-03 11:47:41','2017-02-01 15:06:04',NULL,NULL,'mcurie',1,NULL,NULL,NULL,1,0,NULL,'52cda011808bb282d1d3625ab607a145',NULL,'t3mnkbhs','Curie','Marie','','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,'mariecurie.jpg',NULL,NULL,14,NULL,'','','',NULL,NULL,'ffaaff','',NULL,0,0,NULL,NULL,NULL,NULL,'woman',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(11,'2015-10-05 09:07:52','2017-02-01 15:06:04',NULL,NULL,'zzeceo',1,NULL,NULL,NULL,1,0,NULL,'92af989c4c3a5140fb5d73eb77a52454',NULL,'cq78nf9m','Zeceo','Zack','President','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'','2015-10-05 22:48:08','2015-10-05 21:18:46',NULL,'',1,NULL,NULL,NULL,NULL,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(12,'2015-10-05 09:09:46','2018-01-19 11:24:18',NULL,NULL,'admin',0,NULL,NULL,NULL,1,0,NULL,'f6fdffe48c908deb0f4c3bd36c032e72',NULL,'nd6hgbcr','Adminson','Alice','Admin Technical','','','','','','Alice - 123',1,NULL,1,1,NULL,NULL,NULL,'','2018-03-16 13:54:23','2018-01-19 11:21:41',NULL,'',1,'mariecurie.jpg',NULL,NULL,11,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,'woman',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(13,'2015-10-05 21:29:35','2017-02-01 15:06:04',NULL,NULL,'ccommercy',1,NULL,NULL,NULL,1,0,NULL,'179858e041af35e8f4c81d68c55fe9da',NULL,'y451ksdv','Commercy','Charle','Commercial leader','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,11,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(14,'2015-10-05 21:33:33','2017-02-01 15:06:04',NULL,NULL,'sscientol',1,NULL,NULL,NULL,1,0,NULL,'39bee07ac42f31c98e79cdcd5e5fe4c5',NULL,'s2hp8bxd','Scientol','Sam','Scientist leader','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,11,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(16,'2015-10-05 22:47:52','2017-02-20 16:49:00',NULL,NULL,'ccommerson',1,NULL,NULL,NULL,1,0,NULL,'d68005ccf362b82d084551b6291792a3',NULL,'cx9y1dk0','Charle1','Commerson','Sale representative','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'','2015-10-05 23:46:24','2015-10-05 23:37:31',NULL,'',1,NULL,NULL,NULL,13,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(17,'2015-10-05 22:48:39','2017-02-01 15:06:04',NULL,NULL,'cc2',1,NULL,NULL,NULL,1,0,NULL,'a964065211872fb76f876c6c3e952ea3',NULL,'gw8cb7xj','Charle2','Commerson','Sale representative','','','','','','',0,NULL,1,1,NULL,NULL,NULL,'','2015-10-05 23:16:06',NULL,NULL,'',0,NULL,NULL,NULL,13,NULL,'','','',NULL,NULL,'','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(18,'2016-01-22 17:27:02','2017-02-01 15:06:04',NULL,NULL,'ldestailleur',1,NULL,NULL,NULL,1,0,NULL,'1bb7805145a7a5066df9e6d585b8b645',NULL,'87g06wbx','Destailleur','Laurent','Project leader of Dolibarr ERP CRM','','','','','ldestailleur@example.com','<div style=\"line-height: 20.8px;\"><strong>Laurent DESTAILLEUR</strong></div>\r\n\r\n<div style=\"line-height: 20.8px;\">\r\n<div style=\"font-family: verdana, helvetica, sans-serif;\"><span style=\"color:rgb(96, 97, 99); font-family:arial; font-size:medium\"><strong>Project Director</strong></span><br />\r\n<span style=\"color:rgb(51, 102, 153)\"><span style=\"color:rgb(153, 51, 153); font-family:tahoma,new york,times,serif\"><span style=\"color:rgb(51, 102, 153)\">ldestailleur@example.com</span></span></span></div>\r\n\r\n<div style=\"font-family: verdana, helvetica, sans-serif;\">&nbsp;</div>\r\n\r\n<div style=\"font-family: verdana, helvetica, sans-serif;\">\r\n<div style=\"color: rgb(0, 0, 0);\"><span style=\"color:rgb(153, 51, 153); font-family:arial,helvetica,sans-serif; font-size:small\"><span style=\"color:rgb(51, 102, 153)\"><a href=\"http://www.facebook.com/teclib\" style=\"color: rgb(153, 51, 153); text-decoration: none; cursor: pointer;\" target=\"_blank\">Facebook</a></span>&nbsp;|&nbsp;<span style=\"color:rgb(51, 102, 153)\"><a href=\"http://twitter.com/teclib\" style=\"color: rgb(153, 51, 153); text-decoration: none; cursor: pointer;\" target=\"_blank\">Twitter</a></span>&nbsp;|&nbsp;<span style=\"color:rgb(51, 102, 153)\"><span style=\"color:rgb(153, 51, 153)\"><a href=\"http://www.teclib.com/\" style=\"color: rgb(153, 51, 153); text-decoration: none; cursor: pointer;\" target=\"_blank\">www.teclib.com</a></span></span></span></div>\r\n</div>\r\n</div>',0,NULL,1,1,10,10,NULL,'More information on http://www.destailleur.fr','2017-09-06 11:55:30','2017-08-30 15:53:25',NULL,'',1,'ldestailleur_200x200.jpg',NULL,NULL,NULL,NULL,'','','',NULL,NULL,'007f7f','',NULL,0,0,NULL,NULL,NULL,NULL,'man',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),(19,'2017-02-02 03:55:44','2017-02-01 23:56:50',NULL,NULL,'aboston',1,NULL,NULL,NULL,1,0,NULL,'a7a77a5aff2d5fc2f75f2f61507c88d4',NULL,NULL,'Boston','Alex','','','','','','aboston@example.com','<strong>Alex Boston</strong><br />\r\nAdmin support service - 555 01 02 03 04',0,NULL,1,1,NULL,NULL,NULL,'',NULL,NULL,NULL,'',1,NULL,NULL,NULL,12,25.00000000,'','','',NULL,NULL,'ff00ff','',NULL,0,0,NULL,NULL,NULL,32.00000000,NULL,NULL,'2014-11-04 00:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
    +/*!40000 ALTER TABLE `llx_user` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_alert`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_alert`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_alert` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `type` int(11) DEFAULT NULL,
    +  `fk_contact` int(11) DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_alert`
    +--
    +
    +LOCK TABLES `llx_user_alert` WRITE;
    +/*!40000 ALTER TABLE `llx_user_alert` DISABLE KEYS */;
    +INSERT INTO `llx_user_alert` VALUES (1,1,1,1),(2,1,10,12);
    +/*!40000 ALTER TABLE `llx_user_alert` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_clicktodial`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_clicktodial`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_clicktodial` (
    +  `fk_user` int(11) NOT NULL,
    +  `url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `login` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `pass` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `poste` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`fk_user`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_clicktodial`
    +--
    +
    +LOCK TABLES `llx_user_clicktodial` WRITE;
    +/*!40000 ALTER TABLE `llx_user_clicktodial` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_user_clicktodial` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_employment`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_employment`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_employment` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `ref_ext` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_user` int(11) DEFAULT NULL,
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `job` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) NOT NULL,
    +  `salary` double(24,8) DEFAULT NULL,
    +  `salaryextra` double(24,8) DEFAULT NULL,
    +  `weeklyhours` double(16,8) DEFAULT NULL,
    +  `dateemployment` date DEFAULT NULL,
    +  `dateemploymentend` date DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_user_employment` (`ref`,`entity`),
    +  KEY `fk_user_employment_fk_user` (`fk_user`),
    +  CONSTRAINT `fk_user_employment_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_employment`
    +--
    +
    +LOCK TABLES `llx_user_employment` WRITE;
    +/*!40000 ALTER TABLE `llx_user_employment` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_user_employment` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_user_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_extrafields`
    +--
    +
    +LOCK TABLES `llx_user_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_user_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_user_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_param`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_param`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_param` (
    +  `fk_user` int(11) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `param` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `value` text COLLATE utf8_unicode_ci NOT NULL,
    +  UNIQUE KEY `uk_user_param` (`fk_user`,`param`,`entity`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_param`
    +--
    +
    +LOCK TABLES `llx_user_param` WRITE;
    +/*!40000 ALTER TABLE `llx_user_param` DISABLE KEYS */;
    +INSERT INTO `llx_user_param` VALUES (1,1,'MAIN_BOXES_0','1'),(1,1,'MAIN_THEME','eldy'),(1,3,'THEME_ELDY_ENABLE_PERSONALIZED','1'),(1,1,'THEME_ELDY_RGB','ded0ed'),(1,3,'THEME_ELDY_RGB','d0ddc3'),(2,1,'MAIN_BOXES_0','1'),(11,1,'MAIN_BOXES_0','1'),(12,1,'MAIN_BOXES_0','1'),(12,1,'MAIN_LANG_DEFAULT','en_US'),(12,1,'MAIN_SELECTEDFIELDS_/dolibarr_4.0/htdocs/adherents/list.php','d.zip,d.ref,d.lastname,d.firstname,d.company,d.login,d.morphy,t.libelle,d.email,d.datefin,d.statut,'),(12,1,'MAIN_SELECTEDFIELDS_invoicelist','f.tms,f.facnumber,f.ref_client,f.date,f.date_lim_reglement,s.nom,s.town,s.zip,f.fk_mode_reglement,f.total_ht,rtp,f.fk_statut,'),(12,1,'MAIN_SELECTEDFIELDS_projectlist','p.budget_amount,p.ref,p.title,s.nom,commercial,p.dateo,p.datee,p.public,p.opp_amount,p.fk_opp_status,p.opp_percent,p.fk_statut,ef.priority,'),(12,1,'MAIN_SELECTEDFIELDS_proposallist','p.datec,p.ref,p.ref_client,s.nom,s.town,s.zip,p.date,p.fin_validite,p.total_ht,u.login,p.fk_statut,'),(12,1,'MAIN_SELECTEDFIELDS_servicelist','p.ref,p.label,p.duration,p.sellprice,p.minbuyprice,p.tosell,p.tobuy,');
    +/*!40000 ALTER TABLE `llx_user_param` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_rib`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_rib`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_rib` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `label` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bank` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_banque` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `code_guichet` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `cle_rib` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `bic` varchar(11) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `iban_prefix` varchar(34) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `domiciliation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `proprio` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `owner_address` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_rib`
    +--
    +
    +LOCK TABLES `llx_user_rib` WRITE;
    +/*!40000 ALTER TABLE `llx_user_rib` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_user_rib` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_user_rights`
    +--
    +
    +DROP TABLE IF EXISTS `llx_user_rights`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_user_rights` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user` int(11) NOT NULL,
    +  `fk_id` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_user_rights` (`entity`,`fk_user`,`fk_id`),
    +  KEY `fk_user_rights_fk_user_user` (`fk_user`),
    +  CONSTRAINT `fk_user_rights_fk_user_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=16561 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_user_rights`
    +--
    +
    +LOCK TABLES `llx_user_rights` WRITE;
    +/*!40000 ALTER TABLE `llx_user_rights` DISABLE KEYS */;
    +INSERT INTO `llx_user_rights` VALUES (12402,1,1,11),(12380,1,1,12),(12385,1,1,13),(12389,1,1,14),(12393,1,1,15),(12398,1,1,16),(12404,1,1,19),(9726,1,1,21),(9700,1,1,22),(9706,1,1,24),(9711,1,1,25),(9716,1,1,26),(9722,1,1,27),(9728,1,1,28),(9978,1,1,31),(9968,1,1,32),(9974,1,1,34),(1910,1,1,36),(9980,1,1,38),(11573,1,1,41),(11574,1,1,42),(11575,1,1,44),(11576,1,1,45),(7184,1,1,61),(7181,1,1,62),(7183,1,1,64),(7185,1,1,67),(7186,1,1,68),(1678,1,1,71),(1673,1,1,72),(1675,1,1,74),(1679,1,1,75),(1677,1,1,76),(1681,1,1,78),(1682,1,1,79),(12322,1,1,81),(12309,1,1,82),(12312,1,1,84),(12314,1,1,86),(12317,1,1,87),(12320,1,1,88),(12323,1,1,89),(11580,1,1,91),(11581,1,1,92),(11582,1,1,93),(11583,1,1,94),(10097,1,1,95),(10099,1,1,96),(10103,1,1,97),(10104,1,1,98),(7139,1,1,101),(7134,1,1,102),(7136,1,1,104),(7137,1,1,105),(7138,1,1,106),(7140,1,1,109),(10229,1,1,111),(10201,1,1,112),(10207,1,1,113),(10213,1,1,114),(10219,1,1,115),(10225,1,1,116),(10231,1,1,117),(12518,1,1,121),(12508,1,1,122),(12514,1,1,125),(12520,1,1,126),(11577,1,1,141),(11578,1,1,142),(11579,1,1,144),(2307,1,1,151),(2304,1,1,152),(2306,1,1,153),(2308,1,1,154),(10092,1,1,161),(10093,1,1,162),(10094,1,1,163),(10095,1,1,164),(10096,1,1,165),(1585,1,1,170),(12342,1,1,171),(12331,1,1,172),(12335,1,1,173),(12339,1,1,174),(12343,1,1,178),(10000,1,1,221),(9990,1,1,222),(9996,1,1,223),(10002,1,1,229),(10007,1,1,237),(10011,1,1,238),(10015,1,1,239),(1686,1,1,241),(1685,1,1,242),(1687,1,1,243),(12604,1,1,251),(12566,1,1,252),(12569,1,1,253),(12572,1,1,254),(12575,1,1,255),(12579,1,1,256),(1617,1,1,258),(12525,1,1,262),(12544,1,1,281),(12534,1,1,282),(12540,1,1,283),(12546,1,1,286),(12288,1,1,300),(12290,1,1,301),(11591,1,1,302),(1763,1,1,331),(1762,1,1,332),(1764,1,1,333),(12582,1,1,341),(12584,1,1,342),(12586,1,1,343),(12588,1,1,344),(12600,1,1,351),(12593,1,1,352),(12597,1,1,353),(12601,1,1,354),(12605,1,1,358),(12560,1,1,531),(12553,1,1,532),(12557,1,1,534),(1625,1,1,536),(12561,1,1,538),(12358,1,1,700),(12348,1,1,701),(12354,1,1,702),(12360,1,1,703),(1755,1,1,1001),(1754,1,1,1002),(1756,1,1,1003),(1758,1,1,1004),(1759,1,1,1005),(7146,1,1,1101),(7143,1,1,1102),(7145,1,1,1104),(7147,1,1,1109),(12412,1,1,1181),(12458,1,1,1182),(12417,1,1,1183),(12420,1,1,1184),(12423,1,1,1185),(12427,1,1,1186),(12431,1,1,1187),(12437,1,1,1188),(12434,1,1,1189),(1578,1,1,1201),(1579,1,1,1202),(12454,1,1,1231),(12443,1,1,1232),(12446,1,1,1233),(12449,1,1,1234),(12452,1,1,1235),(12455,1,1,1236),(12459,1,1,1237),(1736,1,1,1251),(12409,1,1,1321),(12326,1,1,1421),(8190,1,1,1791),(8187,1,1,1792),(8191,1,1,1793),(12264,1,1,2401),(12260,1,1,2402),(12266,1,1,2403),(12280,1,1,2411),(12276,1,1,2412),(12282,1,1,2413),(12286,1,1,2414),(1618,1,1,2500),(12370,1,1,2501),(12367,1,1,2503),(12371,1,1,2515),(9610,1,1,5001),(9611,1,1,5002),(12490,1,1,20001),(12468,1,1,20002),(12474,1,1,20003),(12480,1,1,20004),(12486,1,1,20005),(12492,1,1,20006),(12302,1,1,23001),(12295,1,1,23002),(12299,1,1,23003),(12303,1,1,23004),(7701,1,1,50101),(4984,1,1,50401),(4983,1,1,50402),(4985,1,1,50403),(4987,1,1,50411),(4988,1,1,50412),(4989,1,1,50415),(12498,1,1,55001),(12499,1,1,55002),(3564,1,1,100700),(3565,1,1,100701),(9596,1,1,101051),(9598,1,1,101052),(9600,1,1,101053),(9604,1,1,101060),(9605,1,1,101061),(7177,1,1,101201),(7178,1,1,101202),(10353,1,1,101250),(10355,1,1,101251),(8980,1,1,101261),(8981,1,1,101262),(7616,1,1,101331),(10030,1,1,101701),(10031,1,1,101702),(3582,1,1,102000),(3583,1,1,102001),(9819,1,1,400051),(9823,1,1,400052),(9827,1,1,400053),(9831,1,1,400055),(132,1,2,11),(133,1,2,12),(134,1,2,13),(135,1,2,14),(136,1,2,16),(137,1,2,19),(138,1,2,21),(139,1,2,22),(140,1,2,24),(141,1,2,25),(142,1,2,26),(143,1,2,27),(10359,1,2,31),(145,1,2,32),(10361,1,2,34),(146,1,2,36),(147,1,2,41),(148,1,2,42),(149,1,2,44),(150,1,2,61),(151,1,2,62),(152,1,2,64),(153,1,2,71),(154,1,2,72),(155,1,2,74),(156,1,2,75),(157,1,2,78),(158,1,2,79),(159,1,2,81),(160,1,2,82),(161,1,2,84),(162,1,2,86),(163,1,2,87),(164,1,2,88),(165,1,2,89),(166,1,2,91),(167,1,2,92),(168,1,2,93),(2475,1,2,95),(2476,1,2,96),(2477,1,2,97),(2478,1,2,98),(169,1,2,101),(170,1,2,102),(171,1,2,104),(172,1,2,109),(173,1,2,111),(174,1,2,112),(175,1,2,113),(176,1,2,114),(177,1,2,116),(178,1,2,117),(179,1,2,121),(180,1,2,122),(181,1,2,125),(182,1,2,141),(183,1,2,142),(184,1,2,144),(2479,1,2,151),(2480,1,2,152),(2481,1,2,153),(2482,1,2,154),(185,1,2,161),(186,1,2,162),(187,1,2,163),(188,1,2,164),(189,1,2,165),(190,1,2,170),(2471,1,2,171),(192,1,2,172),(2472,1,2,173),(193,1,2,221),(194,1,2,222),(195,1,2,229),(196,1,2,241),(197,1,2,242),(198,1,2,243),(199,1,2,251),(201,1,2,262),(202,1,2,281),(203,1,2,282),(204,1,2,283),(205,1,2,331),(15072,1,2,510),(2483,1,2,531),(207,1,2,532),(2484,1,2,534),(208,1,2,536),(2473,1,2,700),(210,1,2,701),(211,1,2,702),(2474,1,2,703),(15064,1,2,771),(15057,1,2,772),(15059,1,2,773),(15061,1,2,774),(15063,1,2,775),(15065,1,2,776),(212,1,2,1001),(213,1,2,1002),(214,1,2,1003),(215,1,2,1004),(216,1,2,1005),(217,1,2,1101),(218,1,2,1102),(219,1,2,1104),(220,1,2,1109),(15073,1,2,1121),(15074,1,2,1122),(15075,1,2,1123),(15076,1,2,1124),(15077,1,2,1125),(15078,1,2,1126),(221,1,2,1181),(222,1,2,1182),(223,1,2,1183),(224,1,2,1184),(225,1,2,1185),(226,1,2,1186),(227,1,2,1187),(228,1,2,1188),(229,1,2,1201),(230,1,2,1202),(231,1,2,1231),(232,1,2,1232),(233,1,2,1233),(234,1,2,1234),(235,1,2,1421),(236,1,2,2401),(237,1,2,2402),(238,1,2,2403),(239,1,2,2411),(240,1,2,2412),(241,1,2,2413),(242,1,2,2500),(2470,1,2,2501),(243,1,2,2515),(10363,1,2,20001),(10364,1,2,20002),(10365,1,2,20003),(10366,1,2,20004),(10367,1,2,20005),(10368,1,2,20006),(15054,1,2,23001),(10362,1,2,50101),(15067,1,2,55001),(15066,1,2,59001),(15068,1,2,63001),(15069,1,2,63002),(15070,1,2,63003),(15071,1,2,63004),(10372,1,2,101250),(1807,1,3,11),(1808,1,3,31),(1809,1,3,36),(1810,1,3,41),(1811,1,3,61),(1812,1,3,71),(1813,1,3,72),(1814,1,3,74),(1815,1,3,75),(1816,1,3,78),(1817,1,3,79),(1818,1,3,91),(1819,1,3,95),(1820,1,3,97),(1821,1,3,111),(1822,1,3,121),(1823,1,3,122),(1824,1,3,125),(1825,1,3,161),(1826,1,3,170),(1827,1,3,171),(1828,1,3,172),(1829,1,3,221),(1830,1,3,222),(1831,1,3,229),(1832,1,3,241),(1833,1,3,242),(1834,1,3,243),(1835,1,3,251),(1836,1,3,255),(1837,1,3,256),(1838,1,3,262),(1839,1,3,281),(1840,1,3,282),(1841,1,3,283),(1842,1,3,331),(1843,1,3,531),(1844,1,3,536),(1845,1,3,700),(1846,1,3,1001),(1847,1,3,1002),(1848,1,3,1003),(1849,1,3,1004),(1850,1,3,1005),(1851,1,3,1181),(1852,1,3,1182),(1853,1,3,1201),(1854,1,3,1202),(1855,1,3,1231),(1856,1,3,2401),(1857,1,3,2402),(1858,1,3,2403),(1859,1,3,2411),(1860,1,3,2412),(1861,1,3,2413),(1862,1,3,2500),(1863,1,3,2515),(8026,1,4,11),(8027,1,4,21),(8028,1,4,31),(8029,1,4,41),(8030,1,4,61),(8031,1,4,71),(8032,1,4,72),(8033,1,4,74),(8034,1,4,75),(8035,1,4,78),(8036,1,4,79),(8037,1,4,81),(8038,1,4,91),(8039,1,4,95),(8040,1,4,97),(8041,1,4,101),(8042,1,4,111),(8043,1,4,121),(8044,1,4,151),(8045,1,4,161),(8046,1,4,171),(8047,1,4,221),(8048,1,4,222),(8049,1,4,229),(8050,1,4,241),(8051,1,4,242),(8052,1,4,243),(8146,1,4,251),(8147,1,4,253),(8053,1,4,262),(8054,1,4,281),(8055,1,4,331),(8056,1,4,341),(8057,1,4,342),(8058,1,4,343),(8059,1,4,344),(8060,1,4,531),(8061,1,4,700),(8062,1,4,1001),(8063,1,4,1002),(8064,1,4,1003),(8065,1,4,1004),(8066,1,4,1005),(8067,1,4,1101),(8068,1,4,1181),(8069,1,4,1182),(8070,1,4,1201),(8071,1,4,1202),(8072,1,4,1231),(8073,1,4,2401),(8074,1,4,2501),(8075,1,4,2503),(8076,1,4,2515),(8077,1,4,20001),(8078,1,4,50101),(8079,1,4,101201),(8080,1,4,101261),(8081,1,4,102000),(8082,1,4,400051),(8083,1,4,400052),(8084,1,4,400053),(8085,1,4,400055),(12608,1,10,11),(12609,1,10,21),(12610,1,10,31),(12611,1,10,41),(12612,1,10,61),(12613,1,10,71),(12614,1,10,72),(12615,1,10,74),(12616,1,10,75),(12617,1,10,78),(12618,1,10,79),(12619,1,10,81),(12620,1,10,91),(12621,1,10,95),(12622,1,10,97),(12623,1,10,101),(12624,1,10,111),(12625,1,10,121),(12626,1,10,151),(12627,1,10,161),(12628,1,10,171),(12629,1,10,221),(12630,1,10,222),(12631,1,10,229),(12632,1,10,241),(12633,1,10,242),(12634,1,10,243),(12635,1,10,262),(12636,1,10,281),(12637,1,10,300),(12638,1,10,331),(12639,1,10,341),(12640,1,10,342),(12641,1,10,343),(12642,1,10,344),(12643,1,10,531),(12644,1,10,700),(12645,1,10,1001),(12646,1,10,1002),(12647,1,10,1003),(12648,1,10,1004),(12649,1,10,1005),(12650,1,10,1101),(12651,1,10,1181),(12652,1,10,1182),(12653,1,10,1201),(12654,1,10,1202),(12655,1,10,1231),(12656,1,10,2401),(12657,1,10,2501),(12658,1,10,2503),(12659,1,10,2515),(12660,1,10,20001),(12661,1,10,20002),(12662,1,10,23001),(12663,1,10,50101),(12664,1,11,11),(12665,1,11,21),(12666,1,11,31),(12667,1,11,41),(12668,1,11,61),(12669,1,11,71),(12670,1,11,72),(12671,1,11,74),(12672,1,11,75),(12673,1,11,78),(12674,1,11,79),(12675,1,11,81),(12676,1,11,91),(12677,1,11,95),(12678,1,11,97),(12679,1,11,101),(12680,1,11,111),(12681,1,11,121),(12682,1,11,151),(12683,1,11,161),(12684,1,11,171),(12685,1,11,221),(12686,1,11,222),(12687,1,11,229),(12688,1,11,241),(12689,1,11,242),(12690,1,11,243),(12691,1,11,262),(12692,1,11,281),(12693,1,11,300),(12694,1,11,331),(12695,1,11,341),(12696,1,11,342),(12697,1,11,343),(12698,1,11,344),(12699,1,11,531),(12700,1,11,700),(12701,1,11,1001),(12702,1,11,1002),(12703,1,11,1003),(12704,1,11,1004),(12705,1,11,1005),(12706,1,11,1101),(12707,1,11,1181),(12708,1,11,1182),(12709,1,11,1201),(12710,1,11,1202),(12711,1,11,1231),(12712,1,11,2401),(12713,1,11,2501),(12714,1,11,2503),(12715,1,11,2515),(12716,1,11,20001),(12717,1,11,20002),(12718,1,11,23001),(12719,1,11,50101),(16456,1,12,11),(16448,1,12,12),(16449,1,12,13),(16450,1,12,14),(16451,1,12,15),(16454,1,12,16),(16457,1,12,19),(14146,1,12,21),(14135,1,12,22),(14137,1,12,24),(14139,1,12,25),(14142,1,12,26),(14145,1,12,27),(14148,1,12,28),(14930,1,12,31),(14926,1,12,32),(14929,1,12,34),(14932,1,12,38),(13816,1,12,41),(13813,1,12,42),(13815,1,12,44),(13817,1,12,45),(14094,1,12,61),(14091,1,12,62),(14093,1,12,64),(14095,1,12,67),(14096,1,12,68),(16203,1,12,71),(16198,1,12,72),(16200,1,12,74),(16204,1,12,75),(16202,1,12,76),(16206,1,12,78),(16207,1,12,79),(16428,1,12,81),(16422,1,12,82),(16423,1,12,84),(16424,1,12,86),(16426,1,12,87),(16427,1,12,88),(16429,1,12,89),(15401,1,12,91),(15397,1,12,92),(15400,1,12,93),(15403,1,12,94),(13990,1,12,95),(12734,1,12,97),(14939,1,12,101),(14935,1,12,102),(14936,1,12,104),(14937,1,12,105),(14938,1,12,106),(14940,1,12,109),(15390,1,12,111),(15377,1,12,112),(15380,1,12,113),(15383,1,12,114),(15386,1,12,115),(15389,1,12,116),(15392,1,12,117),(16518,1,12,121),(16513,1,12,122),(16516,1,12,125),(16519,1,12,126),(13821,1,12,141),(13820,1,12,142),(13822,1,12,144),(13912,1,12,151),(13909,1,12,152),(13911,1,12,153),(13913,1,12,154),(14063,1,12,161),(14056,1,12,162),(14058,1,12,163),(14060,1,12,164),(14062,1,12,165),(14064,1,12,167),(13350,1,12,171),(13345,1,12,172),(13347,1,12,173),(13349,1,12,174),(13351,1,12,178),(13838,1,12,221),(13834,1,12,222),(13837,1,12,223),(13840,1,12,229),(13842,1,12,237),(13844,1,12,238),(13846,1,12,239),(13516,1,12,241),(13515,1,12,242),(13517,1,12,243),(16559,1,12,251),(16540,1,12,252),(16542,1,12,253),(16543,1,12,254),(16545,1,12,255),(16547,1,12,256),(16520,1,12,262),(16530,1,12,281),(16525,1,12,282),(16528,1,12,283),(16531,1,12,286),(16411,1,12,300),(16412,1,12,301),(16194,1,12,331),(16193,1,12,332),(16195,1,12,333),(16548,1,12,341),(16549,1,12,342),(16550,1,12,343),(16551,1,12,344),(16557,1,12,351),(16554,1,12,352),(16556,1,12,353),(16558,1,12,354),(16560,1,12,358),(16384,1,12,501),(16378,1,12,502),(13865,1,12,510),(16507,1,12,511),(16504,1,12,512),(16506,1,12,514),(16508,1,12,517),(15291,1,12,520),(15286,1,12,522),(15288,1,12,524),(15290,1,12,525),(15292,1,12,527),(16537,1,12,531),(16534,1,12,532),(16536,1,12,534),(16538,1,12,538),(13358,1,12,700),(16437,1,12,701),(16435,1,12,702),(16438,1,12,703),(15090,1,12,771),(15081,1,12,772),(15083,1,12,773),(15085,1,12,774),(15087,1,12,775),(15089,1,12,776),(15091,1,12,779),(14917,1,12,1001),(14916,1,12,1002),(14918,1,12,1003),(14920,1,12,1004),(14921,1,12,1005),(14945,1,12,1101),(14943,1,12,1102),(14944,1,12,1104),(14946,1,12,1109),(14762,1,12,1121),(14755,1,12,1122),(14757,1,12,1123),(14759,1,12,1124),(14761,1,12,1125),(14763,1,12,1126),(16460,1,12,1181),(16474,1,12,1182),(16463,1,12,1183),(16464,1,12,1184),(16466,1,12,1185),(16468,1,12,1186),(16470,1,12,1187),(16473,1,12,1188),(16471,1,12,1189),(16475,1,12,1191),(13827,1,12,1201),(13828,1,12,1202),(16483,1,12,1231),(16478,1,12,1232),(16479,1,12,1233),(16481,1,12,1234),(16482,1,12,1235),(16484,1,12,1236),(16302,1,12,1237),(13829,1,12,1251),(16458,1,12,1321),(16459,1,12,1322),(16430,1,12,1421),(16400,1,12,2401),(16398,1,12,2402),(16401,1,12,2403),(16408,1,12,2411),(16406,1,12,2412),(16409,1,12,2413),(16410,1,12,2414),(16442,1,12,2501),(16441,1,12,2503),(16443,1,12,2515),(16386,1,12,3200),(15435,1,12,5001),(15436,1,12,5002),(16496,1,12,20001),(16487,1,12,20002),(16489,1,12,20003),(16493,1,12,20004),(16495,1,12,20005),(16497,1,12,20006),(16491,1,12,20007),(16418,1,12,23001),(16415,1,12,23002),(16417,1,12,23003),(16419,1,12,23004),(13712,1,12,50101),(16388,1,12,50401),(16390,1,12,50411),(16391,1,12,50412),(16392,1,12,50420),(16393,1,12,50430),(16387,1,12,50440),(16499,1,12,55001),(16500,1,12,55002),(14128,1,12,59001),(14129,1,12,59002),(14130,1,12,59003),(14818,1,12,63001),(14815,1,12,63002),(14817,1,12,63003),(14819,1,12,63004),(16501,1,12,64001),(16009,1,12,101331),(16010,1,12,101332),(16011,1,12,101333),(15438,1,12,101701),(15439,1,12,101702),(12776,1,13,11),(12777,1,13,21),(12778,1,13,31),(12779,1,13,41),(12780,1,13,61),(12781,1,13,71),(12782,1,13,72),(12783,1,13,74),(12784,1,13,75),(12785,1,13,78),(12786,1,13,79),(12787,1,13,81),(12788,1,13,91),(12789,1,13,95),(12790,1,13,97),(12791,1,13,101),(12792,1,13,111),(12793,1,13,121),(12794,1,13,151),(12795,1,13,161),(12796,1,13,171),(12797,1,13,221),(12798,1,13,222),(12799,1,13,229),(12800,1,13,241),(12801,1,13,242),(12802,1,13,243),(12803,1,13,262),(12804,1,13,281),(12805,1,13,300),(12806,1,13,331),(12807,1,13,341),(12808,1,13,342),(12809,1,13,343),(12810,1,13,344),(12811,1,13,531),(12812,1,13,700),(12813,1,13,1001),(12814,1,13,1002),(12815,1,13,1003),(12816,1,13,1004),(12817,1,13,1005),(12818,1,13,1101),(12819,1,13,1181),(12820,1,13,1182),(12821,1,13,1201),(12822,1,13,1202),(12823,1,13,1231),(12824,1,13,2401),(12825,1,13,2501),(12826,1,13,2503),(12827,1,13,2515),(12828,1,13,20001),(12829,1,13,20002),(12830,1,13,23001),(12831,1,13,50101),(12832,1,14,11),(12833,1,14,21),(12834,1,14,31),(12835,1,14,41),(12836,1,14,61),(12837,1,14,71),(12838,1,14,72),(12839,1,14,74),(12840,1,14,75),(12841,1,14,78),(12842,1,14,79),(12843,1,14,81),(12844,1,14,91),(12845,1,14,95),(12846,1,14,97),(12847,1,14,101),(12848,1,14,111),(12849,1,14,121),(12850,1,14,151),(12851,1,14,161),(12852,1,14,171),(12853,1,14,221),(12854,1,14,222),(12855,1,14,229),(12856,1,14,241),(12857,1,14,242),(12858,1,14,243),(12859,1,14,262),(12860,1,14,281),(12861,1,14,300),(12862,1,14,331),(12863,1,14,341),(12864,1,14,342),(12865,1,14,343),(12866,1,14,344),(12867,1,14,531),(12868,1,14,700),(12869,1,14,1001),(12870,1,14,1002),(12871,1,14,1003),(12872,1,14,1004),(12873,1,14,1005),(12874,1,14,1101),(12875,1,14,1181),(12876,1,14,1182),(12877,1,14,1201),(12878,1,14,1202),(12879,1,14,1231),(12880,1,14,2401),(12881,1,14,2501),(12882,1,14,2503),(12883,1,14,2515),(12884,1,14,20001),(12885,1,14,20002),(12886,1,14,23001),(12887,1,14,50101),(12944,1,16,11),(12945,1,16,21),(12946,1,16,31),(13056,1,16,41),(13057,1,16,42),(13058,1,16,44),(13059,1,16,45),(12948,1,16,61),(12949,1,16,71),(12950,1,16,72),(12951,1,16,74),(12952,1,16,75),(12953,1,16,78),(12954,1,16,79),(12955,1,16,81),(12956,1,16,91),(12957,1,16,95),(12958,1,16,97),(12959,1,16,101),(12960,1,16,111),(12961,1,16,121),(13060,1,16,141),(13061,1,16,142),(13062,1,16,144),(12962,1,16,151),(12963,1,16,161),(12964,1,16,171),(12965,1,16,221),(12966,1,16,222),(12967,1,16,229),(12968,1,16,241),(12969,1,16,242),(12970,1,16,243),(13128,1,16,251),(13064,1,16,262),(12972,1,16,281),(12973,1,16,300),(12974,1,16,331),(12975,1,16,341),(12976,1,16,342),(12977,1,16,343),(12978,1,16,344),(12979,1,16,531),(12980,1,16,700),(12981,1,16,1001),(12982,1,16,1002),(12983,1,16,1003),(12984,1,16,1004),(12985,1,16,1005),(12986,1,16,1101),(12987,1,16,1181),(12988,1,16,1182),(12989,1,16,1201),(12990,1,16,1202),(12991,1,16,1231),(12992,1,16,2401),(12993,1,16,2501),(12994,1,16,2503),(12995,1,16,2515),(12996,1,16,20001),(12997,1,16,20002),(12998,1,16,23001),(12999,1,16,50101),(13000,1,17,11),(13001,1,17,21),(13002,1,17,31),(13065,1,17,41),(13066,1,17,42),(13067,1,17,44),(13068,1,17,45),(13004,1,17,61),(13005,1,17,71),(13006,1,17,72),(13007,1,17,74),(13008,1,17,75),(13009,1,17,78),(13010,1,17,79),(13011,1,17,81),(13012,1,17,91),(13013,1,17,95),(13014,1,17,97),(13015,1,17,101),(13016,1,17,111),(13017,1,17,121),(13069,1,17,141),(13070,1,17,142),(13071,1,17,144),(13018,1,17,151),(13019,1,17,161),(13020,1,17,171),(13021,1,17,221),(13022,1,17,222),(13023,1,17,229),(13024,1,17,241),(13025,1,17,242),(13026,1,17,243),(13028,1,17,281),(13029,1,17,300),(13030,1,17,331),(13031,1,17,341),(13032,1,17,342),(13033,1,17,343),(13034,1,17,344),(13035,1,17,531),(13036,1,17,700),(13037,1,17,1001),(13038,1,17,1002),(13039,1,17,1003),(13040,1,17,1004),(13041,1,17,1005),(13042,1,17,1101),(13043,1,17,1181),(13044,1,17,1182),(13045,1,17,1201),(13046,1,17,1202),(13047,1,17,1231),(13048,1,17,2401),(13049,1,17,2501),(13050,1,17,2503),(13051,1,17,2515),(13052,1,17,20001),(13053,1,17,20002),(13054,1,17,23001),(13055,1,17,50101),(14504,1,18,11),(14505,1,18,21),(14506,1,18,31),(14507,1,18,41),(14508,1,18,61),(14509,1,18,71),(14510,1,18,78),(14511,1,18,81),(14512,1,18,91),(14513,1,18,95),(14514,1,18,101),(14515,1,18,111),(14516,1,18,121),(14517,1,18,151),(14518,1,18,161),(14519,1,18,221),(14520,1,18,241),(14521,1,18,262),(14522,1,18,281),(14523,1,18,300),(14524,1,18,331),(14525,1,18,332),(14526,1,18,333),(14527,1,18,341),(14528,1,18,342),(14529,1,18,343),(14530,1,18,344),(14531,1,18,531),(14532,1,18,701),(14533,1,18,771),(14534,1,18,774),(14535,1,18,1001),(14536,1,18,1004),(14537,1,18,1101),(14538,1,18,1181),(14539,1,18,1182),(14540,1,18,1201),(14541,1,18,1231),(14542,1,18,2401),(14543,1,18,2501),(14544,1,18,2503),(14545,1,18,2515),(14546,1,18,20001),(14547,1,18,20002),(14548,1,18,50101),(14549,1,18,59001),(15242,1,19,21),(15243,1,19,31),(15244,1,19,41),(15245,1,19,61),(15246,1,19,71),(15247,1,19,78),(15248,1,19,81),(15249,1,19,101),(15250,1,19,121),(15251,1,19,151),(15252,1,19,161),(15253,1,19,221),(15254,1,19,241),(15255,1,19,262),(15256,1,19,281),(15257,1,19,300),(15258,1,19,331),(15259,1,19,332),(15260,1,19,341),(15261,1,19,342),(15262,1,19,343),(15263,1,19,344),(15264,1,19,531),(15265,1,19,701),(15266,1,19,771),(15267,1,19,774),(15268,1,19,777),(15269,1,19,1001),(15270,1,19,1004),(15271,1,19,1101),(15272,1,19,1121),(15273,1,19,1181),(15274,1,19,1182),(15275,1,19,1201),(15276,1,19,1231),(15277,1,19,2401),(15278,1,19,2501),(15279,1,19,20001),(15280,1,19,20002),(15281,1,19,50101),(15282,1,19,59001),(15283,1,19,63001);
    +/*!40000 ALTER TABLE `llx_user_rights` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_usergroup`
    +--
    +
    +DROP TABLE IF EXISTS `llx_usergroup`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_usergroup` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `nom` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `datec` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `note` text COLLATE utf8_unicode_ci,
    +  `model_pdf` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_usergroup_name` (`nom`,`entity`)
    +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_usergroup`
    +--
    +
    +LOCK TABLES `llx_usergroup` WRITE;
    +/*!40000 ALTER TABLE `llx_usergroup` DISABLE KEYS */;
    +INSERT INTO `llx_usergroup` VALUES (1,'Sale representatives',1,'2013-01-16 20:48:08','2015-10-03 09:44:44','All sales representative users',NULL),(2,'Management',1,'2015-10-03 11:46:25','2015-10-03 09:46:25','',NULL),(3,'Scientists',1,'2015-10-03 11:46:46','2015-10-03 09:46:46','',NULL),(4,'Commercial',1,'2015-10-05 21:30:13','2015-10-05 19:30:13','',NULL);
    +/*!40000 ALTER TABLE `llx_usergroup` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_usergroup_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_usergroup_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_usergroup_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_usergroup_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_usergroup_extrafields`
    +--
    +
    +LOCK TABLES `llx_usergroup_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_usergroup_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_usergroup_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_usergroup_rights`
    +--
    +
    +DROP TABLE IF EXISTS `llx_usergroup_rights`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_usergroup_rights` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_usergroup` int(11) NOT NULL,
    +  `fk_id` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_usergroup_rights` (`entity`,`fk_usergroup`,`fk_id`),
    +  KEY `fk_usergroup_rights_fk_usergroup` (`fk_usergroup`),
    +  CONSTRAINT `fk_usergroup_rights_fk_usergroup` FOREIGN KEY (`fk_usergroup`) REFERENCES `llx_usergroup` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=200 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_usergroup_rights`
    +--
    +
    +LOCK TABLES `llx_usergroup_rights` WRITE;
    +/*!40000 ALTER TABLE `llx_usergroup_rights` DISABLE KEYS */;
    +INSERT INTO `llx_usergroup_rights` VALUES (1,1,1,2401),(2,1,1,2402),(3,1,1,2403),(4,1,1,2411),(5,1,1,2412),(6,1,1,2413),(78,1,2,11),(79,1,2,12),(80,1,2,13),(81,1,2,14),(82,1,2,15),(83,1,2,16),(84,1,2,19),(144,1,2,21),(145,1,2,22),(146,1,2,24),(147,1,2,25),(148,1,2,26),(149,1,2,27),(150,1,2,28),(133,1,2,31),(134,1,2,32),(135,1,2,34),(136,1,2,38),(137,1,2,41),(138,1,2,42),(139,1,2,44),(140,1,2,45),(86,1,2,61),(87,1,2,62),(88,1,2,64),(89,1,2,67),(90,1,2,68),(7,1,2,71),(8,1,2,72),(9,1,2,74),(10,1,2,75),(11,1,2,76),(12,1,2,78),(13,1,2,79),(32,1,2,81),(33,1,2,82),(34,1,2,84),(35,1,2,86),(36,1,2,87),(37,1,2,88),(38,1,2,89),(173,1,2,91),(174,1,2,92),(175,1,2,93),(176,1,2,94),(66,1,2,101),(67,1,2,102),(68,1,2,104),(69,1,2,105),(70,1,2,106),(71,1,2,109),(21,1,2,111),(22,1,2,112),(23,1,2,113),(24,1,2,114),(25,1,2,115),(26,1,2,116),(27,1,2,117),(164,1,2,121),(165,1,2,122),(166,1,2,125),(167,1,2,126),(141,1,2,141),(142,1,2,142),(143,1,2,144),(129,1,2,151),(130,1,2,152),(131,1,2,153),(132,1,2,154),(44,1,2,161),(45,1,2,162),(46,1,2,163),(47,1,2,164),(48,1,2,165),(49,1,2,167),(120,1,2,221),(121,1,2,222),(122,1,2,223),(123,1,2,229),(124,1,2,237),(125,1,2,238),(126,1,2,239),(29,1,2,241),(30,1,2,242),(31,1,2,243),(182,1,2,251),(183,1,2,252),(184,1,2,253),(185,1,2,254),(186,1,2,255),(187,1,2,256),(168,1,2,262),(169,1,2,281),(170,1,2,282),(171,1,2,283),(172,1,2,286),(197,1,2,331),(198,1,2,332),(199,1,2,333),(188,1,2,341),(189,1,2,342),(190,1,2,343),(191,1,2,344),(192,1,2,351),(193,1,2,352),(194,1,2,353),(195,1,2,354),(196,1,2,358),(151,1,2,531),(152,1,2,532),(153,1,2,534),(154,1,2,538),(60,1,2,701),(61,1,2,702),(62,1,2,703),(177,1,2,1001),(178,1,2,1002),(179,1,2,1003),(180,1,2,1004),(181,1,2,1005),(72,1,2,1101),(73,1,2,1102),(74,1,2,1104),(75,1,2,1109),(91,1,2,1181),(92,1,2,1182),(93,1,2,1183),(94,1,2,1184),(95,1,2,1185),(96,1,2,1186),(97,1,2,1187),(98,1,2,1188),(99,1,2,1189),(76,1,2,1201),(77,1,2,1202),(100,1,2,1231),(101,1,2,1232),(102,1,2,1233),(103,1,2,1234),(104,1,2,1235),(105,1,2,1236),(106,1,2,1237),(113,1,2,1251),(85,1,2,1321),(39,1,2,1421),(14,1,2,2401),(15,1,2,2402),(16,1,2,2403),(17,1,2,2411),(18,1,2,2412),(19,1,2,2413),(20,1,2,2414),(63,1,2,2501),(64,1,2,2503),(65,1,2,2515),(114,1,2,20001),(115,1,2,20002),(116,1,2,20003),(117,1,2,20004),(118,1,2,20005),(119,1,2,20006),(50,1,2,23001),(51,1,2,23002),(52,1,2,23003),(53,1,2,23004),(28,1,2,50101),(127,1,2,55001),(128,1,2,55002);
    +/*!40000 ALTER TABLE `llx_usergroup_rights` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_usergroup_user`
    +--
    +
    +DROP TABLE IF EXISTS `llx_usergroup_user`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_usergroup_user` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user` int(11) NOT NULL,
    +  `fk_usergroup` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_usergroup_user` (`entity`,`fk_user`,`fk_usergroup`),
    +  KEY `fk_usergroup_user_fk_user` (`fk_user`),
    +  KEY `fk_usergroup_user_fk_usergroup` (`fk_usergroup`),
    +  CONSTRAINT `fk_usergroup_user_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`),
    +  CONSTRAINT `fk_usergroup_user_fk_usergroup` FOREIGN KEY (`fk_usergroup`) REFERENCES `llx_usergroup` (`rowid`)
    +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_usergroup_user`
    +--
    +
    +LOCK TABLES `llx_usergroup_user` WRITE;
    +/*!40000 ALTER TABLE `llx_usergroup_user` DISABLE KEYS */;
    +INSERT INTO `llx_usergroup_user` VALUES (2,1,1,3),(12,1,2,4),(3,1,3,3),(4,1,11,2),(13,1,12,1),(5,1,13,4),(6,1,16,1),(7,1,17,1),(11,1,18,1);
    +/*!40000 ALTER TABLE `llx_usergroup_user` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_webmail_draft`
    +--
    +
    +DROP TABLE IF EXISTS `llx_webmail_draft`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_webmail_draft` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `fk_contact` int(11) NOT NULL DEFAULT '0',
    +  `size` int(11) NOT NULL DEFAULT '0',
    +  `subject` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `body` longtext COLLATE utf8_unicode_ci NOT NULL,
    +  `from` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `to` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `cc` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `bcc` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `files` int(11) NOT NULL DEFAULT '0',
    +  `cron` datetime DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_webmail_draft_fk_user` (`fk_user`),
    +  KEY `idx_webmail_draft_cron` (`cron`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_webmail_draft`
    +--
    +
    +LOCK TABLES `llx_webmail_draft` WRITE;
    +/*!40000 ALTER TABLE `llx_webmail_draft` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_webmail_draft` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_webmail_files`
    +--
    +
    +DROP TABLE IF EXISTS `llx_webmail_files`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_webmail_files` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_mail` int(11) NOT NULL DEFAULT '0',
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    +  `file_name` text NOT NULL,
    +  `file` text NOT NULL,
    +  `file_size` int(11) NOT NULL DEFAULT '0',
    +  `file_type` varchar(255) NOT NULL DEFAULT '',
    +  `search` mediumtext NOT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_webmail_files_fk_user` (`fk_user`),
    +  KEY `idx_webmail_files_files` (`fk_mail`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_webmail_files`
    +--
    +
    +LOCK TABLES `llx_webmail_files` WRITE;
    +/*!40000 ALTER TABLE `llx_webmail_files` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_webmail_files` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_webmail_mail`
    +--
    +
    +DROP TABLE IF EXISTS `llx_webmail_mail`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_webmail_mail` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user` int(11) NOT NULL DEFAULT '0',
    +  `fk_soc` int(11) NOT NULL DEFAULT '0',
    +  `fk_contact` int(11) NOT NULL DEFAULT '0',
    +  `uidl` varchar(255) NOT NULL DEFAULT '',
    +  `datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    +  `size` int(11) NOT NULL DEFAULT '0',
    +  `subject` text NOT NULL,
    +  `body` mediumtext NOT NULL,
    +  `state_new` int(11) NOT NULL DEFAULT '0',
    +  `state_reply` int(11) NOT NULL DEFAULT '0',
    +  `state_forward` int(11) NOT NULL DEFAULT '0',
    +  `state_wait` int(11) NOT NULL DEFAULT '0',
    +  `state_spam` int(11) NOT NULL DEFAULT '0',
    +  `id_correo` int(11) NOT NULL DEFAULT '0',
    +  `is_outbox` int(11) NOT NULL DEFAULT '0',
    +  `state_sent` int(11) NOT NULL DEFAULT '0',
    +  `state_error` varchar(255) NOT NULL DEFAULT '',
    +  `state_crt` int(11) NOT NULL DEFAULT '0',
    +  `state_archiv` int(11) NOT NULL DEFAULT '0',
    +  `priority` int(11) NOT NULL DEFAULT '0',
    +  `sensitivity` int(11) NOT NULL DEFAULT '0',
    +  `from` text NOT NULL,
    +  `to` text NOT NULL,
    +  `cc` text NOT NULL,
    +  `bcc` text NOT NULL,
    +  `files` int(11) NOT NULL DEFAULT '0',
    +  `state_delete` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_webmail_mail_nospam` (`fk_user`,`state_spam`),
    +  KEY `idx_webmail_mail_count` (`fk_user`,`state_new`),
    +  KEY `idx_webmail_mail_sendmail` (`is_outbox`,`state_sent`),
    +  KEY `idx_webmail_mail_fk_user` (`fk_user`)
    +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_webmail_mail`
    +--
    +
    +LOCK TABLES `llx_webmail_mail` WRITE;
    +/*!40000 ALTER TABLE `llx_webmail_mail` DISABLE KEYS */;
    +INSERT INTO `llx_webmail_mail` VALUES (1,1,1,27,0,'1452254519','2016-01-08 16:01:59',0,'Submission of invoice 16','You will find here the invoice 16<br />\r\n<br />\r\nSincerely',0,0,0,0,0,0,1,1,'0',0,0,0,0,'first last <fff@ff.com>','Aljoun Samira <contact@destailleur.fr>','','',1,0);
    +/*!40000 ALTER TABLE `llx_webmail_mail` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_webmail_users`
    +--
    +
    +DROP TABLE IF EXISTS `llx_webmail_users`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_webmail_users` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `fk_user` int(11) NOT NULL,
    +  `login` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `password` mediumtext COLLATE utf8_unicode_ci NOT NULL,
    +  `safemail` tinyint(4) DEFAULT '1',
    +  `dayssafe` int(11) DEFAULT '10',
    +  PRIMARY KEY (`rowid`),
    +  KEY `fk_webmail_users_fk_user` (`fk_user`),
    +  CONSTRAINT `fk_webmail_users_fk_user` FOREIGN KEY (`fk_user`) REFERENCES `llx_user` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_webmail_users`
    +--
    +
    +LOCK TABLES `llx_webmail_users` WRITE;
    +/*!40000 ALTER TABLE `llx_webmail_users` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_webmail_users` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_webmail_users_view`
    +--
    +
    +DROP TABLE IF EXISTS `llx_webmail_users_view`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_webmail_users_view` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_user` int(11) NOT NULL,
    +  `fk_user_view` int(11) NOT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_webmail_users_view`
    +--
    +
    +LOCK TABLES `llx_webmail_users_view` WRITE;
    +/*!40000 ALTER TABLE `llx_webmail_users_view` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_webmail_users_view` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_website`
    +--
    +
    +DROP TABLE IF EXISTS `llx_website`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_website` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `entity` int(11) NOT NULL DEFAULT '1',
    +  `ref` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  `fk_default_home` int(11) DEFAULT NULL,
    +  `virtualhost` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_modification` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `maincolor` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `maincolorbis` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_website_ref` (`ref`,`entity`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_website`
    +--
    +
    +LOCK TABLES `llx_website` WRITE;
    +/*!40000 ALTER TABLE `llx_website` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_website` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_website_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_website_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_website_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_website_extrafields` (`fk_object`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_website_extrafields`
    +--
    +
    +LOCK TABLES `llx_website_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_website_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_website_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_website_page`
    +--
    +
    +DROP TABLE IF EXISTS `llx_website_page`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_website_page` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `fk_website` int(11) NOT NULL,
    +  `pageurl` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `aliasalt` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `keywords` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `content` mediumtext COLLATE utf8_unicode_ci,
    +  `status` int(11) DEFAULT '1',
    +  `date_creation` datetime DEFAULT NULL,
    +  `date_modification` datetime DEFAULT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) DEFAULT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `type_container` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'page',
    +  `lang` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_page` int(11) DEFAULT NULL,
    +  `grabbed_from` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `htmlheader` mediumtext COLLATE utf8_unicode_ci,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `image` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  UNIQUE KEY `uk_website_page_url` (`fk_website`,`pageurl`),
    +  CONSTRAINT `fk_website_page_website` FOREIGN KEY (`fk_website`) REFERENCES `llx_website` (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_website_page`
    +--
    +
    +LOCK TABLES `llx_website_page` WRITE;
    +/*!40000 ALTER TABLE `llx_website_page` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_website_page` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_websiteaccount`
    +--
    +
    +DROP TABLE IF EXISTS `llx_websiteaccount`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_websiteaccount` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `login` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
    +  `password` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `fk_soc` int(11) DEFAULT NULL,
    +  `date_creation` datetime NOT NULL,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_user_creat` int(11) NOT NULL,
    +  `fk_user_modif` int(11) DEFAULT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `status` int(11) DEFAULT NULL,
    +  PRIMARY KEY (`rowid`),
    +  KEY `idx_websiteaccount_rowid` (`rowid`),
    +  KEY `idx_websiteaccount_login` (`login`),
    +  KEY `idx_websiteaccount_fk_soc` (`fk_soc`),
    +  KEY `idx_websiteaccount_import_key` (`import_key`),
    +  KEY `idx_websiteaccount_status` (`status`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_websiteaccount`
    +--
    +
    +LOCK TABLES `llx_websiteaccount` WRITE;
    +/*!40000 ALTER TABLE `llx_websiteaccount` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_websiteaccount` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_websiteaccount_extrafields`
    +--
    +
    +DROP TABLE IF EXISTS `llx_websiteaccount_extrafields`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_websiteaccount_extrafields` (
    +  `rowid` int(11) NOT NULL AUTO_INCREMENT,
    +  `tms` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    +  `fk_object` int(11) NOT NULL,
    +  `import_key` varchar(14) COLLATE utf8_unicode_ci DEFAULT NULL,
    +  PRIMARY KEY (`rowid`)
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_websiteaccount_extrafields`
    +--
    +
    +LOCK TABLES `llx_websiteaccount_extrafields` WRITE;
    +/*!40000 ALTER TABLE `llx_websiteaccount_extrafields` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_websiteaccount_extrafields` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_workstation`
    +--
    +
    +DROP TABLE IF EXISTS `llx_workstation`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_workstation` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `entity` int(11) NOT NULL DEFAULT '0',
    +  `fk_usergroup` int(11) NOT NULL DEFAULT '0',
    +  `name` varchar(255) DEFAULT NULL,
    +  `background` varchar(255) DEFAULT NULL,
    +  `type` varchar(10) DEFAULT NULL,
    +  `code` varchar(10) DEFAULT NULL,
    +  `nb_hour_prepare` double NOT NULL DEFAULT '0',
    +  `nb_hour_manufacture` double NOT NULL DEFAULT '0',
    +  `nb_hour_capacity` double NOT NULL DEFAULT '0',
    +  `nb_ressource` double NOT NULL DEFAULT '0',
    +  `thm` double NOT NULL DEFAULT '0',
    +  `thm_machine` double NOT NULL DEFAULT '0',
    +  `thm_overtime` double NOT NULL DEFAULT '0',
    +  `thm_night` double NOT NULL DEFAULT '0',
    +  `nb_hour_before` double NOT NULL DEFAULT '0',
    +  `nb_hour_after` double NOT NULL DEFAULT '0',
    +  `is_parallele` int(11) NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `entity` (`entity`),
    +  KEY `fk_usergroup` (`fk_usergroup`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_workstation`
    +--
    +
    +LOCK TABLES `llx_workstation` WRITE;
    +/*!40000 ALTER TABLE `llx_workstation` DISABLE KEYS */;
    +INSERT INTO `llx_workstation` VALUES (1,'2018-11-18 17:50:22','2018-11-18 17:50:22',1,4,'aaaa','#','HUMAN','',0,0,0,0,0,0,0,0,0,0,0);
    +/*!40000 ALTER TABLE `llx_workstation` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_workstation_product`
    +--
    +
    +DROP TABLE IF EXISTS `llx_workstation_product`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_workstation_product` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_product` int(11) NOT NULL DEFAULT '0',
    +  `fk_workstation` int(11) NOT NULL DEFAULT '0',
    +  `nb_hour` double NOT NULL DEFAULT '0',
    +  `rang` double NOT NULL DEFAULT '0',
    +  `nb_hour_prepare` double NOT NULL DEFAULT '0',
    +  `nb_hour_manufacture` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_product` (`fk_product`),
    +  KEY `fk_workstation` (`fk_workstation`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_workstation_product`
    +--
    +
    +LOCK TABLES `llx_workstation_product` WRITE;
    +/*!40000 ALTER TABLE `llx_workstation_product` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_workstation_product` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `llx_workstation_schedule`
    +--
    +
    +DROP TABLE IF EXISTS `llx_workstation_schedule`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `llx_workstation_schedule` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `date_cre` datetime DEFAULT NULL,
    +  `date_maj` datetime DEFAULT NULL,
    +  `fk_workstation` int(11) NOT NULL DEFAULT '0',
    +  `day_moment` varchar(255) DEFAULT NULL,
    +  `week_day` int(11) NOT NULL DEFAULT '0',
    +  `nb_ressource` int(11) NOT NULL DEFAULT '0',
    +  `date_off` datetime DEFAULT NULL,
    +  `nb_hour_capacity` double NOT NULL DEFAULT '0',
    +  PRIMARY KEY (`rowid`),
    +  KEY `date_cre` (`date_cre`),
    +  KEY `date_maj` (`date_maj`),
    +  KEY `fk_workstation` (`fk_workstation`),
    +  KEY `date_off` (`date_off`)
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `llx_workstation_schedule`
    +--
    +
    +LOCK TABLES `llx_workstation_schedule` WRITE;
    +/*!40000 ALTER TABLE `llx_workstation_schedule` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `llx_workstation_schedule` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `tmp_links`
    +--
    +
    +DROP TABLE IF EXISTS `tmp_links`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `tmp_links` (
    +  `objectid` int(11) NOT NULL,
    +  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
    +  `max_rowid` int(11) DEFAULT NULL,
    +  `count_rowid` bigint(21) NOT NULL DEFAULT '0'
    +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `tmp_links`
    +--
    +
    +LOCK TABLES `tmp_links` WRITE;
    +/*!40000 ALTER TABLE `tmp_links` DISABLE KEYS */;
    +INSERT INTO `tmp_links` VALUES (3,'fdf',6,2);
    +/*!40000 ALTER TABLE `tmp_links` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `tmp_llx_product_batch`
    +--
    +
    +DROP TABLE IF EXISTS `tmp_llx_product_batch`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `tmp_llx_product_batch` (
    +  `fk_product_stock` int(11) NOT NULL,
    +  `eatby` datetime DEFAULT NULL,
    +  `sellby` datetime DEFAULT NULL,
    +  `batch` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty` double DEFAULT NULL,
    +  `nb` bigint(21) NOT NULL DEFAULT '0'
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `tmp_llx_product_batch`
    +--
    +
    +LOCK TABLES `tmp_llx_product_batch` WRITE;
    +/*!40000 ALTER TABLE `tmp_llx_product_batch` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `tmp_llx_product_batch` ENABLE KEYS */;
    +UNLOCK TABLES;
    +
    +--
    +-- Table structure for table `tmp_llx_product_batch2`
    +--
    +
    +DROP TABLE IF EXISTS `tmp_llx_product_batch2`;
    +/*!40101 SET @saved_cs_client     = @@character_set_client */;
    +/*!40101 SET character_set_client = utf8 */;
    +CREATE TABLE `tmp_llx_product_batch2` (
    +  `rowid` int(11) NOT NULL DEFAULT '0',
    +  `fk_product_stock` int(11) NOT NULL,
    +  `eatby` datetime DEFAULT NULL,
    +  `sellby` datetime DEFAULT NULL,
    +  `batch` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
    +  `qty` double NOT NULL DEFAULT '0'
    +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    +/*!40101 SET character_set_client = @saved_cs_client */;
    +
    +--
    +-- Dumping data for table `tmp_llx_product_batch2`
    +--
    +
    +LOCK TABLES `tmp_llx_product_batch2` WRITE;
    +/*!40000 ALTER TABLE `tmp_llx_product_batch2` DISABLE KEYS */;
    +/*!40000 ALTER TABLE `tmp_llx_product_batch2` ENABLE KEYS */;
    +UNLOCK TABLES;
    +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
    +
    +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
    +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
    +
    +-- Dump completed on 2018-11-23 12:59:51
    diff --git a/dev/initdemo/removeconfdemo.sh b/dev/initdemo/removeconfdemo.sh
    index de297fd1808..b5f76c45205 100755
    --- a/dev/initdemo/removeconfdemo.sh
    +++ b/dev/initdemo/removeconfdemo.sh
    @@ -3,7 +3,7 @@
     # Script to remove setup of a Dolibarr installation.
     # Note: "dialog" tool need to be available.
     #
    -# Regis Houssin       - regis.houssin@capnetworks.com
    +# Regis Houssin       - regis.houssin@inodbox.com
     # Laurent Destailleur - eldy@users.sourceforge.net
     #------------------------------------------------------
     # WARNING: This script erase setup of instance, 
    diff --git a/dev/initdemo/savedemo.sh b/dev/initdemo/savedemo.sh
    index 20aebb29b28..1e051b4cded 100755
    --- a/dev/initdemo/savedemo.sh
    +++ b/dev/initdemo/savedemo.sh
    @@ -3,7 +3,7 @@
     # Script to extrac a database with demo values.
     # Note: "dialog" tool need to be available if no parameter provided.
     #
    -# Regis Houssin       - regis.houssin@capnetworks.com
    +# Regis Houssin       - regis.houssin@inodbox.com
     # Laurent Destailleur - eldy@users.sourceforge.net
     #------------------------------------------------------
     # Usage: savedemo.sh
    @@ -171,6 +171,8 @@ export list="
         --ignore-table=$base.llx_abonne_extrafields 
         --ignore-table=$base.llx_abonne_type
         --ignore-table=$base.llx_abonnement 
    +    --ignore-table=$base.llx_accountingaccount 
    +    --ignore-table=$base.llx_accountingsystem 
         --ignore-table=$base.llx_advanced_extrafields 
         --ignore-table=$base.llx_advanced_extrafields_options 
         --ignore-table=$base.llx_advanced_extrafields_values
    @@ -189,6 +191,9 @@ export list="
     	--ignore-table=$base.llx_c_dolicloud_plans
     	--ignore-table=$base.llx_c_pays
     	--ignore-table=$base.llx_c_source
    +	--ignore-table=$base.llx_c_ticketsup_category
    +	--ignore-table=$base.llx_c_ticketsup_severity
    +	--ignore-table=$base.llx_c_ticketsup_type
     	--ignore-table=$base.llx_cabinetmed_c_banques
     	--ignore-table=$base.llx_cabinetmed_c_ccam
     	--ignore-table=$base.llx_cabinetmed_c_examconclusion
    @@ -246,6 +251,8 @@ export list="
     	--ignore-table=$base.llx_residence
     	--ignore-table=$base.llx_residence_building
     	--ignore-table=$base.llx_residence_building_links
    +	--ignore-table=$base.llx_societe_rib2
    +	--ignore-table=$base.llx_ticketsup
     	--ignore-table=$base.llx_ultimatepdf
     	--ignore-table=$base.llx_update_modules
     	--ignore-table=$base.llx_ventilation_achat
    diff --git a/dev/initdemo/sftpget_and_loaddump.php b/dev/initdemo/sftpget_and_loaddump.php
    index 981ff964b8e..98cb6189935 100755
    --- a/dev/initdemo/sftpget_and_loaddump.php
    +++ b/dev/initdemo/sftpget_and_loaddump.php
    @@ -41,15 +41,15 @@ $passwordbase=isset($argv[6])?$argv[6]:'';
     
     // Include Dolibarr environment
     $res=0;
    -if (! $res && file_exists($path."../../master.inc.php")) $res=@include($path."../../master.inc.php");
    -if (! $res && file_exists($path."../../htdocs/master.inc.php")) $res=@include($path."../../htdocs/master.inc.php");
    -if (! $res && file_exists("../master.inc.php")) $res=@include("../master.inc.php");
    -if (! $res && file_exists("../../master.inc.php")) $res=@include("../../master.inc.php");
    -if (! $res && file_exists("../../../master.inc.php")) $res=@include("../../../master.inc.php");
    -if (! $res && preg_match('/\/nltechno([^\/]*)\//',$_SERVER["PHP_SELF"],$reg)) $res=@include($path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"); // Used on dev env only
    -if (! $res && preg_match('/\/nltechno([^\/]*)\//',$_SERVER["PHP_SELF"],$reg)) $res=@include("../../../dolibarr".$reg[1]."/htdocs/master.inc.php"); // Used on dev env only
    +if (! $res && file_exists($path."../../master.inc.php")) $res=@include $path."../../master.inc.php";
    +if (! $res && file_exists($path."../../htdocs/master.inc.php")) $res=@include $path."../../htdocs/master.inc.php";
    +if (! $res && file_exists("../master.inc.php")) $res=@include "../master.inc.php";
    +if (! $res && file_exists("../../master.inc.php")) $res=@include "../../master.inc.php";
    +if (! $res && file_exists("../../../master.inc.php")) $res=@include "../../../master.inc.php";
    +if (! $res && preg_match('/\/nltechno([^\/]*)\//',$_SERVER["PHP_SELF"],$reg)) $res=@include $path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
    +if (! $res && preg_match('/\/nltechno([^\/]*)\//',$_SERVER["PHP_SELF"],$reg)) $res=@include "../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
     if (! $res) die ("Failed to include master.inc.php file\n");
    -include_once(DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php');
    +include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
     
     /*
    diff --git a/dev/initdemo/updatedemo.php b/dev/initdemo/updatedemo.php
    index 9c453096904..53717314d5f 100755
    --- a/dev/initdemo/updatedemo.php
    +++ b/dev/initdemo/updatedemo.php
    @@ -15,7 +15,7 @@
      * You should have received a copy of the GNU General Public License
      * along with this program. If not, see <http://www.gnu.org/licenses/>.
      * or see http://www.gnu.org/
    - * 
    + *
      * Get a distant dump file and load it into a mysql database
      */
     
    @@ -36,15 +36,15 @@ $confirm=isset($argv[1])?$argv[1]:'';
     
     // Include Dolibarr environment
     $res=0;
    -if (! $res && file_exists($path."../../master.inc.php")) $res=@include($path."../../master.inc.php");
    -if (! $res && file_exists($path."../../htdocs/master.inc.php")) $res=@include($path."../../htdocs/master.inc.php");
    -if (! $res && file_exists("../master.inc.php")) $res=@include("../master.inc.php");
    -if (! $res && file_exists("../../master.inc.php")) $res=@include("../../master.inc.php");
    -if (! $res && file_exists("../../../master.inc.php")) $res=@include("../../../master.inc.php");
    -if (! $res && preg_match('/\/nltechno([^\/]*)\//',$_SERVER["PHP_SELF"],$reg)) $res=@include($path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"); // Used on dev env only
    -if (! $res && preg_match('/\/nltechno([^\/]*)\//',$_SERVER["PHP_SELF"],$reg)) $res=@include("../../../dolibarr".$reg[1]."/htdocs/master.inc.php"); // Used on dev env only
    +if (! $res && file_exists($path."../../master.inc.php")) $res=@include $path."../../master.inc.php";
    +if (! $res && file_exists($path."../../htdocs/master.inc.php")) $res=@include $path."../../htdocs/master.inc.php";
    +if (! $res && file_exists("../master.inc.php")) $res=@include "../master.inc.php";
    +if (! $res && file_exists("../../master.inc.php")) $res=@include "../../master.inc.php";
    +if (! $res && file_exists("../../../master.inc.php")) $res=@include "../../../master.inc.php";
    +if (! $res && preg_match('/\/nltechno([^\/]*)\//',$_SERVER["PHP_SELF"],$reg)) $res=@include $path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
    +if (! $res && preg_match('/\/nltechno([^\/]*)\//',$_SERVER["PHP_SELF"],$reg)) $res=@include "../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
     if (! $res) die ("Failed to include master.inc.php file\n");
    -include_once(DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php');
    +include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
     
     /*
    @@ -74,7 +74,7 @@ $tables=array(
     
     $year=2010;
     $currentyear=$tmp['year'];
    -while ($year <= $currentyear) 
    +while ($year <= $currentyear)
     {
         //$year=2021;
         $delta=($currentyear - $year);
    @@ -84,7 +84,7 @@ while ($year <= $currentyear)
         {
             foreach($tables as $tablekey => $tableval)
             {
    -            print "\nCorrect ".$tablekey." for year ".$year." and move them to current year ".$currentyear." "; 
    +            print "\nCorrect ".$tablekey." for year ".$year." and move them to current year ".$currentyear." ";
                 $sql="select rowid from ".MAIN_DB_PREFIX.$tablekey." where ".$tableval[0]." between '".$year."-01-01' and '".$year."-12-31' and ".$tableval[0]." < DATE_ADD(NOW(), INTERVAL -1 YEAR)";
                 //$sql="select rowid from ".MAIN_DB_PREFIX.$tablekey." where ".$tableval[0]." between '".$year."-01-01' and '".$year."-12-31' and ".$tableval[0]." > NOW()";
                 $resql = $db->query($sql);
    @@ -110,14 +110,14 @@ while ($year <= $currentyear)
                             //print $sql2."\n";
                             $resql2 = $db->query($sql2);
                             if (! $resql2) dol_print_error($db);
    -                    }            
    +                    }
                         $i++;
                     }
                 }
                 else dol_print_error($db);
             }
         }
    -    
    +
         $year++;
     }
     
    diff --git a/dev/resources/dbmodel/dolibarr.uml b/dev/resources/dbmodel/dolibarr.uml
    deleted file mode 100644
    index 57078d6668b..00000000000
    --- a/dev/resources/dbmodel/dolibarr.uml
    +++ /dev/null
    @@ -1,12 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?>
    -<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xmi:id="_qb8akM37EdqwVrslYOdUDA">
    -  <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="dolibarr">
    -    <packagedElement xmi:type="uml:Package" xmi:id="_T5aZ4FK9Ed60vaZbVikprw" name="OrdersModule"/>
    -    <packagedElement xmi:type="uml:Package" xmi:id="_ZhuGMlK9Ed60vaZbVikprw" name="InvoiceModule"/>
    -    <packagedElement xmi:type="uml:Package" xmi:id="_cf3SUlK9Ed60vaZbVikprw" name="UserModule"/>
    -    <packagedElement xmi:type="uml:Package" xmi:id="_maM0glK9Ed60vaZbVikprw" name="FoundationModule"/>
    -    <packagedElement xmi:type="uml:Package" xmi:id="_oqTO4lK9Ed60vaZbVikprw" name="ContractsModule"/>
    -    <packagedElement xmi:type="uml:Package" xmi:id="_rEq_klK9Ed60vaZbVikprw" name="ProposalsModule"/>
    -    <packagedElement xmi:type="uml:Package" xmi:id="_vxYmUlK9Ed60vaZbVikprw" name="EMailingManagement"/>
    -  </packagedElement>
    -</uml:Model>
    diff --git a/dev/resources/dbmodel/dolibarr.umldi b/dev/resources/dbmodel/dolibarr.umldi
    deleted file mode 100644
    index ff97a2a25b1..00000000000
    --- a/dev/resources/dbmodel/dolibarr.umldi
    +++ /dev/null
    @@ -1,53 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?>
    -<diagrams:Diagrams xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.topcased.org/DI/1.0" xmlns:diagrams="http://www.topcased.org/Diagrams/1.0" xmi:id="_SI6FkFK9Ed60vaZbVikprw" activeDiagram="_SI6FkVK9Ed60vaZbVikprw">
    -  <model href="dolibarr.uml#_w8IxIM37EdqwVrslYOdUDA"/>
    -  <diagrams xmi:id="_SI6FkVK9Ed60vaZbVikprw" position="0,0" size="100,100" name="dolibarr" viewport="0,0">
    -    <property xmi:id="_SJ9OcFK9Ed60vaZbVikprw" key="pageFormatName" value="A4"/>
    -    <property xmi:id="_SJ9OcVK9Ed60vaZbVikprw" key="diagramWidth" value="840"/>
    -    <property xmi:id="_SJ9OclK9Ed60vaZbVikprw" key="diagramHeight" value="1188"/>
    -    <property xmi:id="_SJ9Oc1K9Ed60vaZbVikprw" key="pageMarginName" value="Small Margin"/>
    -    <property xmi:id="_SJ9OdFK9Ed60vaZbVikprw" key="diagramTopMargin" value="20"/>
    -    <property xmi:id="_SJ9OdVK9Ed60vaZbVikprw" key="diagramBottomMargin" value="20"/>
    -    <property xmi:id="_SJ9OdlK9Ed60vaZbVikprw" key="diagramLeftMargin" value="20"/>
    -    <property xmi:id="_SJ9Od1K9Ed60vaZbVikprw" key="diagramRightMargin" value="20"/>
    -    <property xmi:id="_SJ9OeFK9Ed60vaZbVikprw" key="orientation" value="portrait"/>
    -    <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SI6FklK9Ed60vaZbVikprw" presentation="org.topcased.modeler.uml.classdiagram">
    -      <element href="dolibarr.uml#_w8IxIM37EdqwVrslYOdUDA"/>
    -    </semanticModel>
    -    <contained xsi:type="di:GraphNode" xmi:id="_T2b-YFK9Ed60vaZbVikprw" position="15,190" size="176,81">
    -      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_T2b-YVK9Ed60vaZbVikprw" presentation="default">
    -        <element href="dolibarr.uml#_T5aZ4FK9Ed60vaZbVikprw"/>
    -      </semanticModel>
    -    </contained>
    -    <contained xsi:type="di:GraphNode" xmi:id="_ZhuGMFK9Ed60vaZbVikprw" position="15,118" size="177,68">
    -      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZhuGMVK9Ed60vaZbVikprw" presentation="default">
    -        <element href="dolibarr.uml#_ZhuGMlK9Ed60vaZbVikprw"/>
    -      </semanticModel>
    -    </contained>
    -    <contained xsi:type="di:GraphNode" xmi:id="_cf3SUFK9Ed60vaZbVikprw" position="15,10" size="174,81">
    -      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_cf3SUVK9Ed60vaZbVikprw" presentation="default">
    -        <element href="dolibarr.uml#_cf3SUlK9Ed60vaZbVikprw"/>
    -      </semanticModel>
    -    </contained>
    -    <contained xsi:type="di:GraphNode" xmi:id="_maM0gFK9Ed60vaZbVikprw" position="291,118" size="145,73">
    -      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_maM0gVK9Ed60vaZbVikprw" presentation="default">
    -        <element href="dolibarr.uml#_maM0glK9Ed60vaZbVikprw"/>
    -      </semanticModel>
    -    </contained>
    -    <contained xsi:type="di:GraphNode" xmi:id="_oqTO4FK9Ed60vaZbVikprw" position="15,274" size="179,80">
    -      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_oqTO4VK9Ed60vaZbVikprw" presentation="default">
    -        <element href="dolibarr.uml#_oqTO4lK9Ed60vaZbVikprw"/>
    -      </semanticModel>
    -    </contained>
    -    <contained xsi:type="di:GraphNode" xmi:id="_rEq_kFK9Ed60vaZbVikprw" position="15,358" size="181,73">
    -      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_rEq_kVK9Ed60vaZbVikprw" presentation="default">
    -        <element href="dolibarr.uml#_rEq_klK9Ed60vaZbVikprw"/>
    -      </semanticModel>
    -    </contained>
    -    <contained xsi:type="di:GraphNode" xmi:id="_vxYmUFK9Ed60vaZbVikprw" position="15,490" size="181,80">
    -      <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vxYmUVK9Ed60vaZbVikprw" presentation="default">
    -        <element href="dolibarr.uml#_vxYmUlK9Ed60vaZbVikprw"/>
    -      </semanticModel>
    -    </contained>
    -  </diagrams>
    -</diagrams:Diagrams>
    diff --git a/dev/resources/dbmodel/dolibarr_schema.mwb b/dev/resources/dbmodel/dolibarr_schema.mwb
    index aec0f2d2299..27bc4ab2403 100644
    Binary files a/dev/resources/dbmodel/dolibarr_schema.mwb and b/dev/resources/dbmodel/dolibarr_schema.mwb differ
    diff --git a/dev/setup/codesniffer/ruleset.xml b/dev/setup/codesniffer/ruleset.xml
    index af962760e06..879d791b8e9 100644
    --- a/dev/setup/codesniffer/ruleset.xml
    +++ b/dev/setup/codesniffer/ruleset.xml
    @@ -4,6 +4,7 @@
     	<description>Dolibarr coding standard.</description>
     
     	<exclude-pattern type="relative">build/html</exclude-pattern>
    +	<exclude-pattern type="relative">build/aps</exclude-pattern>
     	<exclude-pattern type="relative">documents</exclude-pattern>
     	<exclude-pattern type="relative">htdocs/custom</exclude-pattern>
     	<exclude-pattern type="relative">htdocs/includes</exclude-pattern>
    @@ -11,43 +12,29 @@
     	<exclude-pattern type="relative">*/nltechno*</exclude-pattern>
     	<exclude-pattern type="relative">*/htdocs/includes</exclude-pattern>
     	<exclude-pattern type="relative">*.min.css</exclude-pattern>
    +	<exclude-pattern type="relative">*.js</exclude-pattern>
     
     		<!-- List of all tests -->
     
    -	
    +
     	<!-- Rules from Internal Standard -->
    -	
    +
     	<rule ref="Internal.NoCodeFound">
     		<severity>0</severity>
     	</rule>
     
    -	
    -	<!-- Rules from Generic Standard -->
    -		
    -	<rule ref="Generic.CodeAnalysis.EmptyStatement" />
     
    -	<rule ref="Generic.CodeAnalysis.EmptyStatement.DetectedCatch">
    -		<severity>0</severity>
    -	</rule>
    -	<rule ref="Generic.CodeAnalysis.EmptyStatement.DetectedForeach">
    -		<severity>0</severity>
    -	</rule>
    -	<rule ref="Generic.CodeAnalysis.EmptyStatement.DetectedIf">
    -		<severity>0</severity>
    -	</rule>
    -	<rule ref="Generic.CodeAnalysis.EmptyStatement.DetectedElse">
    -		<severity>0</severity>
    -	</rule>
    -	<rule ref="Generic.CodeAnalysis.EmptyStatement.DetectedElseif">
    -		<severity>0</severity>
    -	</rule>
    -	
    -	<rule ref="Generic.CodeAnalysis.EmptyStatement.NotAllowed">
    -		<severity>0</severity>
    -	</rule>
    -	<rule ref="Generic.CodeAnalysis.EmptyStatement.NotAllowedWarning">
    -		<severity>0</severity>
    -	</rule>
    +	<!-- Rules from Generic Standard -->
    +
    +	<rule ref="Generic.CodeAnalysis.EmptyStatement">
    +        <exclude name="Generic.CodeAnalysis.EmptyStatement.DetectedIf"/>
    +        <exclude name="Generic.CodeAnalysis.EmptyStatement.DetectedElse"/>
    +        <exclude name="Generic.CodeAnalysis.EmptyStatement.DetectedElseif"/>
    +        <exclude name="Generic.CodeAnalysis.EmptyStatement.DetectedCatch"/>
    +        <exclude name="Generic.CodeAnalysis.EmptyStatement.DetectedForeach"/>
    +        <exclude name="Generic.CodeAnalysis.EmptyStatement.NotAllowed"/>
    +        <exclude name="Generic.CodeAnalysis.EmptyStatement.NotAllowedWarning"/>
    +    </rule>
     
         <!-- <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" /> -->
     
    @@ -63,7 +50,22 @@
         <rule ref="Generic.CodeAnalysis.UnusedFunctionParameter.Found">
     		<severity>0</severity>
         </rule>
    -
    +    <rule ref="Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed">
    +		<severity>0</severity>
    +    </rule>
    +    <rule ref="Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed">
    +		<severity>0</severity>
    +    </rule>
    +    <rule ref="Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass">
    +		<severity>0</severity>
    +    </rule>
    +    <rule ref="Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassAfterLastUsed">
    +		<severity>0</severity>
    +    </rule>
    +    <rule ref="Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed">
    +		<severity>0</severity>
    +    </rule>
    +    
         <rule ref="Generic.CodeAnalysis.UselessOverridingMethod" />
     
         <!--
    @@ -147,7 +149,7 @@
         <rule ref="Generic.PHP.DeprecatedFunctions.Deprecated">
             <severity>0</severity>
         </rule>
    -	
    +
     	<rule ref="Generic.PHP.DisallowShortOpenTag" />
     
         <rule ref="Generic.PHP.ForbiddenFunctions" />
    @@ -163,7 +165,7 @@
     	<rule ref="Generic.Strings.UnnecessaryStringConcat.Found">
             <severity>0</severity>
     	</rule>
    -    
    +
     	<!-- Disallow usage of tab -->
     	<!--  <rule ref="Generic.WhiteSpace.DisallowTabIndent" /> -->
     
    @@ -171,7 +173,24 @@
     	<!-- Disabled as this does not support tab -->
     	<!-- <rule ref="Generic.WhiteSpace.ScopeIndent" /> -->
     
    +    <!-- There MUST NOT be trailing whitespace at the end of non-blank lines. -->
    +    <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace">
    +        <properties>
    +            <property name="ignoreBlankLines" value="true"/>
    +        </properties>
    +    </rule>
    +    <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.StartFile">
    +        <severity>0</severity>
    +    </rule>
    +    <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.EndFile">
    +        <severity>0</severity>
    +    </rule>
    +    <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.EmptyLines">
    +        <severity>0</severity>
    +    </rule>
    +    <rule ref="Squiz.WhiteSpace.ControlStructureSpacing.SpacingBeforeClose" />
     
    +    <rule ref="Squiz.Functions.MultiLineFunctionDeclaration" />
     
         <!-- Rules from PEAR Standard -->
     
    @@ -186,7 +205,7 @@
         <rule ref="PEAR.Commenting.ClassComment.Missing">
             <severity>0</severity>
         </rule>
    -    
    +
         <rule ref="PEAR.Commenting.ClassComment.MissingTag">
     		<severity>0</severity>
         </rule>
    @@ -206,14 +225,14 @@
         <rule ref="PEAR.Commenting.ClassComment.MissingLinkTag">
             <severity>0</severity>
         </rule>
    -        
    +
         <rule ref="PEAR.Commenting.ClassComment.MissingPackageTag">
             <severity>0</severity>
         </rule>
    -        
     
    -   
    -    <!-- 
    +
    +
    +    <!--
         <rule ref="PEAR.Commenting.FileComment" />
         <rule ref="PEAR.Commenting.FileComment.WrongStyle">
             <severity>0</severity>
    @@ -225,20 +244,20 @@
             <severity>0</severity>
         </rule>
         -->
    -    
    +
         <rule ref="PEAR.Commenting.FunctionComment" />
     
         <rule ref="PEAR.Commenting.FunctionComment.Empty">
             <severity>5</severity>
         </rule>
    -    
    -	<rule ref="PEAR.Commenting.FunctionComment.MissingReturn">
    +
    +	<!--<rule ref="PEAR.Commenting.FunctionComment.MissingReturn">
             <severity>0</severity>
    -    </rule>
    -    <rule ref="PEAR.Commenting.FunctionComment.Missing">
    +    </rule>-->
    +    <!--<rule ref="PEAR.Commenting.FunctionComment.Missing">
             <severity>0</severity>
    -    </rule>
    -    
    +    </rule>-->
    +
         <rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType" />
     
         <rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamName">
    @@ -254,11 +273,11 @@
         <rule ref="PEAR.Commenting.FunctionComment.ReturnNotRequired">
             <severity>0</severity>
         </rule>
    -    
    +
         <rule ref="PEAR.Commenting.FunctionComment.WrongStyle">
             <severity>0</severity>
         </rule>
    -    
    +
         <rule ref="PEAR.Commenting.FunctionComment.SpacingBeforeParamType">
             <severity>0</severity>
         </rule>
    @@ -285,7 +304,20 @@
     	<!-- <rule ref="PEAR.ControlStructures.MultiLineCondition" /> -->
     
     	<!-- Test if () are removed for includes -->
    -	<!-- <rule ref="PEAR.Files.IncludingFile"/> -->
    +	<rule ref="PEAR.Files.IncludingFile" />
    +    <!-- Disable some error messages that we do not want. -->
    +    <rule ref="PEAR.Files.IncludingFile.UseInclude">
    +        <severity>0</severity>
    +    </rule>
    +    <rule ref="PEAR.Files.IncludingFile.UseIncludeOnce">
    +        <severity>0</severity>
    +    </rule>
    +    <rule ref="PEAR.Files.IncludingFile.UseRequire">
    +        <severity>0</severity>
    +    </rule>
    +    <rule ref="PEAR.Files.IncludingFile.UseRequireOnce">
    +        <severity>0</severity>
    +    </rule>
     
     	<rule ref="PEAR.Formatting.MultiLineAssignment" />
     
    @@ -315,14 +347,14 @@
         <rule ref="PEAR.Functions.FunctionCallSignature.SpaceAfterCloseBracket">
             <severity>0</severity>
         </rule>
    -	
    +
     	<rule ref="PEAR.Functions.ValidDefaultValue" />
     
     	<rule ref="PEAR.NamingConventions.ValidClassName" />
     	<rule ref="PEAR.NamingConventions.ValidClassName.Invalid">
             <severity>0</severity>
     	</rule>
    -	
    +
     	<rule ref="PEAR.NamingConventions.ValidClassName.StartWithCapital">
             <severity>0</severity>
     	</rule>
    @@ -330,7 +362,7 @@
     	<rule ref="PEAR.NamingConventions.ValidClassName.StartWithCaptial">
             <severity>0</severity>
     	</rule>
    -	
    +
     	<rule ref="PEAR.NamingConventions.ValidFunctionName" />
     
     	<rule ref="PEAR.NamingConventions.ValidFunctionName.FunctionDoubleUnderscore">
    @@ -347,31 +379,37 @@
             <severity>0</severity>
     	</rule>
     
    -	<rule ref="PEAR.NamingConventions.ValidFunctionName.NotCamelCaps">
    +    <!--<rule ref="PEAR.NamingConventions.ValidFunctionName.NotCamelCaps">
             <severity>0</severity>
    -	</rule>
    +    </rule>-->
    +	<!--<rule ref="PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps">
    +        <severity>0</severity>
    +	</rule>-->
     	<rule ref="PEAR.NamingConventions.ValidFunctionName.PrivateNoUnderscore">
             <severity>0</severity>
     	</rule>
     	<rule ref="PEAR.NamingConventions.ValidVariableName" />
     
    +    <rule ref="PSR2.Classes.ClassDeclaration" />
    +    <rule ref="PSR2.Methods.FunctionClosingBrace" />
    +
     	<!-- This is not in PSR2 -->
     	<rule ref="PEAR.NamingConventions.ValidVariableName.PrivateNoUnderscore">
             <severity>0</severity>
         </rule>
    -	
    +
     	<rule ref="PEAR.WhiteSpace.ObjectOperatorIndent" />
     
     	<!-- Need to be commented to be disabled
     	<rule ref="PEAR.WhiteSpace.ScopeClosingBrace">
             <severity>0</severity>
         </rule>
    -	
    +
         <rule ref="PEAR.WhiteSpace.ScopeClosingBrace.Line">
             <severity>0</severity>
         </rule>
     	-->
    -    
    +
         <!-- Already found as a Generic rule -->
     	<!-- <rule ref="PEAR.WhiteSpace.ScopeIndent" /> -->
     
    diff --git a/dev/tools/fixdosfiles.sh b/dev/tools/fixdosfiles.sh
    index 5fcacd8e2fd..e4ccb1485e1 100755
    --- a/dev/tools/fixdosfiles.sh
    +++ b/dev/tools/fixdosfiles.sh
    @@ -17,14 +17,14 @@ fi
     # To detec
     if [ "x$1" = "xlist" ]
     then
    -	find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep CRLF
    -#	find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" \) -exec file "{}" + | grep -v 'htdocs\/includes' | grep CRLF
    +	find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v 'documents\/website' | grep CRLF
    +#	find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" \) -exec file "{}" + | grep -v 'documents\/website' | grep -v 'htdocs\/includes' | grep CRLF
     fi
     
     # To convert
     if [ "x$1" = "xfix" ]
     then
    -	for fic in `find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep CRLF | awk -F':' '{ print $1 }' `
    +	for fic in `find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v 'documents\/website' | grep CRLF | awk -F':' '{ print $1 }' `
     	do
     		echo "Fix file $fic"
     		dos2unix "$fic"
    diff --git a/dev/tools/snakeCaseToCamelCase.sh b/dev/tools/snakeCaseToCamelCase.sh
    new file mode 100755
    index 00000000000..9196c130755
    --- /dev/null
    +++ b/dev/tools/snakeCaseToCamelCase.sh
    @@ -0,0 +1,130 @@
    +#!/bin/bash
    +
    +## Need "rpl" package
    +RPL_INSTALLED=$(dpkg -s rpl)
    +if [[ -z ${RPL_INSTALLED} ]]; then
    +    echo "This bash need rpl command, you can install it with: sudo apt install rpl"
    +fi
    +
    +DIR_HTDOCS=$( cd "$( dirname "${BASH_SOURCE[0]}" )/../../htdocs" >/dev/null && pwd )
    +
    +PATTERN=""
    +if [[ -f $1 ]]; then
    +    TFile=("$1")        # specific file
    +elif [[ -n $1 ]]; then
    +    PATTERN=$1  # name of a particular file or pattern (ex: societe.class.php)
    +else
    +    PATTERN="*.class.php" # *.lib.php
    +fi
    +
    +if [[ -n ${PATTERN} ]]; then
    +    TCLASSFILE=$(find "${DIR_HTDOCS}" -name "${PATTERN}" | grep -v "/custom/" | grep -v "/includes/" | grep -v -F -f "${DIR_HTDOCS}/../.gitignore")
    +    TFile=()
    +    I=0
    +    for f in ${TCLASSFILE}; do
    +        TFile[${I}]="${f}"
    +        ((I++))
    +    done
    +fi
    +
    +
    +REGEX_FNC_W='^([[:blank:]]*)(public|private|protected)?[ \t]*(static)?[ \t]*[^\$\(]function[ \t]*([a-zA-Z0-9\-\_]*)[\(](.*)[\)][ \t]*([\{]?)$'
    +INDENT="    "
    +
    +for f in ${TFile[@]}; do
    +#    echo ${f}
    +
    +    IFS=$'\n'
    +    TLine=($(cat "${f}" | grep -E "${REGEX_FNC_W}"))
    +
    +    for LINE in ${TLine[@]}; do
    +
    +        if [[ ${LINE} =~ ^${REGEX_FNC_W}$ ]]; then
    +            FIRST_INDENT=${BASH_REMATCH[1]}       # seem not work
    +            FNC_TYPE=${BASH_REMATCH[2]}
    +            STATIC=${BASH_REMATCH[3]}
    +            FNC_NAME=${BASH_REMATCH[4]}
    +            PARAMETERS_ORIGIN=${BASH_REMATCH[5]}
    +            BRACKET_END=${BASH_REMATCH[6]}
    +
    +            if [[ ${LINE} =~ ^([[:blank:]]*) ]]; then # but this seems work to get indentation
    +                FIRST_INDENT=${BASH_REMATCH[1]}
    +            fi
    +
    +            [[ ${FNC_NAME} =~ ^__ ]] && continue    # skip magic function
    +
    +            CAMEL_CASE=$(echo "${FNC_NAME}" | sed -r 's/(_)([a-zA-Z0-9])/\U\2/g')
    +            [[ ${CAMEL_CASE} = ${FNC_NAME} ]] && continue       # skip if no difference
    +
    +#echo A: ${#FIRST_INDENT}
    +#printf "${FIRST_INDENT}TEST INDENT\n"
    +#echo B: ${FNC_TYPE}
    +#echo C: ${STATIC}
    +#echo D: ${FNC_NAME}
    +#echo D: ${CAMEL_CASE}
    +#echo E: ${PARAMETERS_ORIGIN}
    +#echo F: ${BRACKET_END}
    +#exit
    +
    +            [[ -n $(cat "${f}" | grep -i "function[[:blank:]]*${CAMEL_CASE}") ]] && continue   # skip if already exists
    +
    +            TCommentLine=()
    +            J=1
    +            while :; do
    +                COMMENT=$(cat ${f} | grep -B ${J} ${LINE/\$/\\$} | head -n1 | grep -P '^[\t\ ]*(/\*\*|\*[^/]?|\*/)')
    +                if [[ -n ${COMMENT}  ]]; then
    +                    TCommentLine[${J}]="${COMMENT}"
    +                    ((J++))
    +                else
    +                    break
    +                fi
    +            done
    +
    +            COMMENT_ORIGIN=""
    +            COMMENT_ORIGIN_WITH_DEPRECATED=""
    +            COMMENT_DUPLICATE=""
    +            if [[ ${#TCommentLine[@]} -gt 0 ]]; then
    +                for (( idx=${#TCommentLine[@]} ; idx>0 ; idx-- )) ; do
    +                    COMMENT_ORIGIN="${COMMENT_ORIGIN}\n${TCommentLine[idx]}"
    +                done
    +
    +                COMMENT_DUPLICATE=${COMMENT_ORIGIN}
    +
    +                COMMENT_ORIGIN_WITH_DEPRECATED=$(echo "${COMMENT_ORIGIN%?} @deprecated\n${FIRST_INDENT} * @see ${CAMEL_CASE}\n${FIRST_INDENT} */")
    +            fi
    +
    +            PARAMETERS=${PARAMETERS_ORIGIN}
    +            TParam=()
    +            I=0
    +            while [[ ${PARAMETERS} =~ (\$[a-zA-Z0-9\_\-]+) ]]; do
    +                TParam[${I}]=${BASH_REMATCH[1]}
    +                PARAMETERS=${PARAMETERS#*"${BASH_REMATCH[1]}"}
    +                ((I++))
    +            done
    +
    +            PARAMS_STR=$(printf ", %s" "${TParam[@]}")
    +            PARAMS_STR=${PARAMS_STR:2}
    +
    +            REPLACE=${LINE}
    +            [[ -z ${BRACKET_END} ]] && REPLACE="${LINE}\n${FIRST_INDENT}{\n${FIRST_INDENT}${INDENT}" || REPLACE="${LINE}\n${FIRST_INDENT}${INDENT}"
    +            [[ -n ${STATIC} ]] && REPLACE="${REPLACE}return self::" || REPLACE="${REPLACE}return \$this->"
    +            REPLACE="${REPLACE}${CAMEL_CASE}(${PARAMS_STR});\n${FIRST_INDENT}}\n\n"
    +            REPLACE="${REPLACE}${FIRST_INDENT}${COMMENT_ORIGIN}\n${FIRST_INDENT}"
    +            [[ -n ${STATIC} ]] && REPLACE="${REPLACE}${STATIC} "
    +            [[ -n ${FNC_TYPE} ]] && REPLACE="${REPLACE}${FNC_TYPE} "
    +            REPLACE="${REPLACE}function ${CAMEL_CASE}(${PARAMETERS_ORIGIN})"
    +            [[ -n ${BRACKET_END} ]] && REPLACE="${REPLACE}\n${FIRST_INDENT}{"
    +
    +            echo " ${FNC_NAME} -> ${CAMEL_CASE}"
    +
    +            if [[ -n ${COMMENT_ORIGIN_WITH_DEPRECATED} ]]; then
    +                rpl -e --quiet "${COMMENT_ORIGIN}" ${COMMENT_ORIGIN_WITH_DEPRECATED} "${f}"
    +            fi
    +            rpl -e --quiet "${LINE}" ${REPLACE} "${f}"
    +
    +        fi
    +
    +    done
    +done
    +
    +
    diff --git a/dev/tools/test/testtcpdf.php b/dev/tools/test/testtcpdf.php
    index e14dae9c2a3..ce962dce3d9 100755
    --- a/dev/tools/test/testtcpdf.php
    +++ b/dev/tools/test/testtcpdf.php
    @@ -27,8 +27,8 @@
      * @since 2008-03-04
      */
     
    -require_once('../../htdocs/includes/tecnickcom/tcpdf/config/tcpdf_config.php');
    -require_once('../../htdocs/includes/tecnickcom/tcpdf/tcpdf.php');
    +require_once '../../htdocs/includes/tecnickcom/tcpdf/config/tcpdf_config.php';
    +require_once '../../htdocs/includes/tecnickcom/tcpdf/tcpdf.php';
     
     // create new PDF document
     $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
    diff --git a/dev/tools/test/testutf.php b/dev/tools/test/testutf.php
    index c626a92a57d..ffa746bcab5 100644
    --- a/dev/tools/test/testutf.php
    +++ b/dev/tools/test/testutf.php
    @@ -47,8 +47,8 @@ print 'Files has been created. Check its name from your explorer'."\n";
      * @since 2008-09-15
      */
     
    -require_once('../../htdocs/includes/tecnickcom/tcpdf/config/tcpdf_config.php');
    -require_once('../../htdocs/includes/tecnickcom/tcpdf/tcpdf.php');
    +require_once '../../htdocs/includes/tecnickcom/tcpdf/config/tcpdf_config.php';
    +require_once '../../htdocs/includes/tecnickcom/tcpdf/tcpdf.php';
     
     // create new PDF document
     $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
    diff --git a/dev/translation/autotranslator.class.php b/dev/translation/autotranslator.class.php
    index 47d6a25ec15..123b7f6157d 100644
    --- a/dev/translation/autotranslator.class.php
    +++ b/dev/translation/autotranslator.class.php
    @@ -64,8 +64,7 @@ class autoTranslator
     		// Translate
     		//ini_set('default_charset','UTF-8');
     		ini_set('default_charset',$this->_outputpagecode);
    -		$this->parse_refLangTranslationFiles();
    -
    +		$this->parseRefLangTranslationFiles();
     	}
     
     	/**
    @@ -73,7 +72,7 @@ class autoTranslator
     	 *
     	 * 	@return	void
     	 */
    -	private function parse_refLangTranslationFiles()
    +	private function parseRefLangTranslationFiles()
     	{
     
     		$files = $this->getTranslationFilesArray($this->_refLang);
    @@ -346,5 +345,4 @@ class autoTranslator
     
     		return $rep;
     	}
    -
     }
    diff --git a/dev/translation/autotranslator.php b/dev/translation/autotranslator.php
    index 58314a23b9e..c7897810a72 100755
    --- a/dev/translation/autotranslator.php
    +++ b/dev/translation/autotranslator.php
    @@ -37,8 +37,8 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     }
     
     // Include Dolibarr environment
    -require_once($path.'../../htdocs/master.inc.php');
    -require_once($path.'../../htdocs/core/lib/files.lib.php');
    +require_once $path.'../../htdocs/master.inc.php';
    +require_once $path.'../../htdocs/core/lib/files.lib.php';
     // After this $db is an opened handler to database. We close it at end of file.
     
     // Load main language strings
    @@ -88,7 +88,7 @@ if ($argv[2] != 'all')
     	}
     }
     
    -require_once(DOL_DOCUMENT_ROOT."/../dev/translation/autotranslator.class.php");
    +require_once DOL_DOCUMENT_ROOT."/../dev/translation/autotranslator.class.php";
     
     $langParser = new autoTranslator($argv[2],$argv[1],$dir,$file,$argv[3]);
     
    diff --git a/dev/translation/sanity_check_en_langfiles.php b/dev/translation/sanity_check_en_langfiles.php
    index 2eedcda8760..0e3b2c7513f 100755
    --- a/dev/translation/sanity_check_en_langfiles.php
    +++ b/dev/translation/sanity_check_en_langfiles.php
    @@ -295,6 +295,7 @@ if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($a
     	    if (preg_match('/^DescADHERENT_/', $value)) $qualifiedforclean=0;
     	    if (preg_match('/^SubmitTranslation/', $value)) $qualifiedforclean=0;
     	    if (preg_match('/^ModuleCompanyCode/', $value)) $qualifiedforclean=0;
    +	    if (preg_match('/InDolibarr$/', $value)) $qualifiedforclean=0;
     	    // admin.lang
     	    if (preg_match('/^DAV_ALLOW_PUBLIC_DIR/i', $value)) $qualifiedforclean=0;
     	    if (preg_match('/^DAV_ALLOW_ECM_DIR/i', $value)) $qualifiedforclean=0;
    diff --git a/doc/images/dolibarr_screenshot5_1920x1080_b.jpg b/doc/images/dolibarr_screenshot5_1920x1080_b.jpg
    index 5f7d8a5b573..0b5c749cb5c 100644
    Binary files a/doc/images/dolibarr_screenshot5_1920x1080_b.jpg and b/doc/images/dolibarr_screenshot5_1920x1080_b.jpg differ
    diff --git a/doc/index.html b/doc/index.html
    index b888b13d9a6..5c655136e3e 100644
    --- a/doc/index.html
    +++ b/doc/index.html
    @@ -11,15 +11,15 @@ informations on Dolibarr.<br>
     But if you are looking for other resources (downloads, documentation, addons, ...), you can find this
     on Internet on web following sites:<br>
     <br>
    -* <a href="http://wiki.dolibarr.org">Dolibarr wiki (documentation)</a><br>
    +* <a href="https://wiki.dolibarr.org">Dolibarr wiki (documentation)</a><br>
     <br>
    -* <a href="http://www.dolibarr.org">Dolibarr portal (official website)</a><br>
    +* <a href="https://www.dolibarr.org">Dolibarr portal (official website)</a><br>
     <br>
    -* <a href="http://demo.dolibarr.org">Dolibarr demo (online)</a><br>
    +* <a href="https://demo.dolibarr.org">Dolibarr demo (online)</a><br>
     <br>
    -* <a href="http://www.nltechno.com/pages/dolibarrwinbin.php">DoliWamp, the Dolibarr for Windows</a><br>
    +* <a href="https://www.nltechno.com/pages/dolibarrwinbin.php">DoliWamp, the Dolibarr for Windows</a><br>
     <br>
    -* <a href="http://www.dolistore.com">DoliStore (official addons/plugins market place)</a><br>
    +* <a href="https://www.dolistore.com">DoliStore (official addons/plugins market place)</a><br>
     
     </body>
     </html>
    \ No newline at end of file
    diff --git a/doc/install/README b/doc/install/README
    index 83bc6484cea..0c7341b196c 100644
    --- a/doc/install/README
    +++ b/doc/install/README
    @@ -7,12 +7,12 @@ Download
     --------------------------------
     
     * Dolibarr ERP/CRM can be downloaded at sourceforge:
    -http://sourceforge.net/projects/dolibarr/files
    -or from Dolibarr official web site:
    -http://www.dolibarr.org
    +    https://sourceforge.net/projects/dolibarr/files
    +  or from Dolibarr official web site:
    +    https://www.dolibarr.org
     
     * Most external modules are only available on DoliStore:
    -http://www.dolistore.org
    +    https://www.dolistore.com 
     
     
     --------------------------------
    @@ -22,4 +22,4 @@ Install
     * For a Quick guide, take a look at README file into root directory.
     
     * More complete documentations are also available on line on the Dolibarr Wiki:
    -http://wiki.dolibarr.org
    +    https://wiki.dolibarr.org
    diff --git a/doc/install/README-DE b/doc/install/README-DE
    new file mode 100644
    index 00000000000..c7ece3891f3
    --- /dev/null
    +++ b/doc/install/README-DE
    @@ -0,0 +1,33 @@
    +README (deutsch / german / allemand)
    +--------------------------------
    +
    +
    +--------------------------------
    +Download / Herunterladen
    +--------------------------------
    +
    +* Dolibarr ERP/CRM kann man über die offizielle Dolibarr Website
    +    https://www.dolibarr.org/downloads 
    +  oder direkt von Sourceforge
    +    https://sourceforge.net/projects/dolibarr/files/
    +  herunterladen.
    +  
    +  
    +  
    +* Die meisten externen Module/Themens sind über den DoliStore verfügbar:
    +    https://www.dolistore.com/de/
    +
    +
    +--------------------------------
    +Installation
    +--------------------------------
    +
    +* Für eine kurze Einleitung, schau auf die README Datei im Hauptverzeichnis.
    +
    +* Umfangreiche Dokumentationen sind im Dolibarr Wiki zu finden:
    +    https://wiki.dolibarr.org/index.php/Hauptseite 
    +    
    +* eine Deutsche Community bietet der Dolibarr e.V. unter 
    +    https://www.dolibarr.de/ 
    +    
    +    
    diff --git a/doc/install/README-FR b/doc/install/README-FR
    index f954601ae0d..2cee29cf2df 100644
    --- a/doc/install/README-FR
    +++ b/doc/install/README-FR
    @@ -9,19 +9,19 @@ Téléchargement
     * Dolibarr ERP/CRM can be downloaded at sourceforge:
     http://sourceforge.net/projects/dolibarr/files
     or from Dolibarr official web site:
    -http://www.dolibarr.org
    +https://www.dolibarr.org
     
     * Most external modules are only available on DoliStore:
    -http://www.dolistore.org
    +https://www.dolistore.org
     
     
     --------------------------------
     Documentation utilisateur
     --------------------------------
     
    -* Pour une prise en main et installation rapide, consulter le fichier
    +* Pour une prise en main et installation rapide, consultez le fichier
     README-FR à la racine.
     
    -* Une documentation utilisateur francophone plus consistente est disponible en
    +* Une documentation utilisateur francophone plus consistante est disponible en
     ligne sur le wiki de Dolibarr à l'adresse:
    -http://wiki.dolibarr.org
    +https://wiki.dolibarr.org
    diff --git a/doc/user/README b/doc/user/README
    index 19507dba0e4..129dff11058 100644
    --- a/doc/user/README
    +++ b/doc/user/README
    @@ -4,4 +4,4 @@ User guide
     --------------------------------
     
     * All Dolibarr guides are available, on line, on the Dolibarr Web site:
    -http://www.dolibarr.org
    +https://www.dolibarr.org
    diff --git a/doc/user/README-FR b/doc/user/README-FR
    index f3a839de008..fbf67fd89bc 100644
    --- a/doc/user/README-FR
    +++ b/doc/user/README-FR
    @@ -3,9 +3,9 @@ README (french)
     Documentation utilisateur
     --------------------------------
     
    -* Pour une prise en main et installation rapide, consulter le fichier
    +* Pour une prise en main et installation rapide, consultez le fichier
     README-FR à la racine.
     
    -* Une documentation utilisateur francophone plus consistente est disponible en
    +* Une documentation utilisateur francophone plus consistante est disponible en
     ligne sur le site Web de Dolibarr à l'adresse:
    -http://www.dolibarr.fr
    +https://www.dolibarr.fr
    diff --git a/htdocs/.gitignore b/htdocs/.gitignore
    index 9d1e0435f86..ac35d8fab2f 100644
    --- a/htdocs/.gitignore
    +++ b/htdocs/.gitignore
    @@ -23,4 +23,8 @@
     /cabinetmed*
     /webmail*
     /conf/conf.php
    -/subtotal/
    +/subtotal*
    +/abricot*
    +/nomenclature*
    +/of/
    +/workstation/
    diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php
    index da05246b05b..c9b72d9cc4c 100644
    --- a/htdocs/accountancy/admin/account.php
    +++ b/htdocs/accountancy/admin/account.php
    @@ -38,11 +38,11 @@ $id = GETPOST('id', 'int');
     $rowid = GETPOST('rowid', 'int');
     $contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'accountingaccountlist';   // To manage different context of search
     
    -$search_account = GETPOST("search_account");
    -$search_label = GETPOST("search_label");
    -$search_accountparent = GETPOST("search_accountparent");
    -$search_pcgtype = GETPOST("search_pcgtype");
    -$search_pcgsubtype = GETPOST("search_pcgsubtype");
    +$search_account = GETPOST('search_account','alpha');
    +$search_label = GETPOST('search_label','alpha');
    +$search_accountparent = GETPOST('search_accountparent','alpha');
    +$search_pcgtype = GETPOST('search_pcgtype','alpha');
    +$search_pcgsubtype = GETPOST('search_pcgsubtype','alpha');
     
     // Security check
     if ($user->societe_id > 0) accessforbidden();
    @@ -133,7 +133,7 @@ if (empty($reshook))
     				}
     				$offsetforchartofaccount+=($conf->entity  * 100000000);
     
    -				$result = run_sql($sqlfile, 1, $conf->entity, 1, '', 'default', $offsetforchartofaccount);
    +				$result = run_sql($sqlfile, 1, $conf->entity, 1, '', 'default', 32768, 0, $offsetforchartofaccount);
     
     				if ($result > 0)
     				{
    @@ -427,5 +427,6 @@ if ($resql)
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/admin/accountmodel.php b/htdocs/accountancy/admin/accountmodel.php
    index f024f54c41c..e8f6b8e43b7 100644
    --- a/htdocs/accountancy/admin/accountmodel.php
    +++ b/htdocs/accountancy/admin/accountmodel.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2016  Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2011-2018  Philippe Grand          <philippe.grand@atoo-net.com>
      * Copyright (C) 2011       Remy Younes             <ryounes@gmail.com>
    @@ -44,7 +44,7 @@ if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/core
     // Load translation files required by the page
     $langs->loadLangs(array("errors","admin","companies","resource","holiday","compta","accountancy","hrm"));
     
    -$action=GETPOST('action','alpha')?GETPOST('action','alpha'):'view';
    +$action=GETPOST('action','aZ09')?GETPOST('action','aZ09'):'view';
     $confirm=GETPOST('confirm','alpha');
     $id=31;
     $rowid=GETPOST('rowid','alpha');
    @@ -55,8 +55,8 @@ $acts[1] = "disable";
     $actl[0] = img_picto($langs->trans("Disabled"),'switch_off');
     $actl[1] = img_picto($langs->trans("Activated"),'switch_on');
     
    -$listoffset=GETPOST('listoffset');
    -$listlimit=GETPOST('listlimit')>0?GETPOST('listlimit'):1000;
    +$listoffset=GETPOST('listoffset','alpha');
    +$listlimit=GETPOST('listlimit','int')>0?GETPOST('listlimit','int'):1000;
     $active = 1;
     
     $sortfield = GETPOST("sortfield",'aZ09comma');
    @@ -139,13 +139,13 @@ $sourceList=array();
      * Actions
      */
     
    -if (GETPOST('button_removefilter') || GETPOST('button_removefilter.x') || GETPOST('button_removefilter_x'))
    +if (GETPOST('button_removefilter','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter_x','alpha'))
     {
     	$search_country_id = '';
     }
     
     // Actions add or modify an entry into a dictionary
    -if (GETPOST('actionadd') || GETPOST('actionmodify'))
    +if (GETPOST('actionadd','alpha') || GETPOST('actionmodify','alpha'))
     {
     	$listfield=explode(',', str_replace(' ', '',$tabfield[$id]));
     	$listfieldinsert=explode(',',$tabfieldinsert[$id]);
    @@ -235,7 +235,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
     	if ($_POST["accountancy_code_buy"] <= 0) $_POST["accountancy_code_buy"]='';	// If empty, we force to null
     
     	// Si verif ok et action add, on ajoute la ligne
    -	if ($ok && GETPOST('actionadd'))
    +	if ($ok && GETPOST('actionadd','alpha'))
     	{
     		if ($tabrowid[$id])
     		{
    @@ -247,7 +247,6 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
     			{
     				$obj = $db->fetch_object($result);
     				$newid=($obj->newid + 1);
    -
     			} else {
     				dol_print_error($db);
     			}
    @@ -300,7 +299,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
     	}
     
     	// Si verif ok et action modify, on modifie la ligne
    -	if ($ok && GETPOST('actionmodify'))
    +	if ($ok && GETPOST('actionmodify','alpha'))
     	{
     		if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; }
     		else { $rowidcol="rowid"; }
    @@ -341,7 +340,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
     	//$_GET["id"]=GETPOST('id', 'int');       // Force affichage dictionnaire en cours d'edition
     }
     
    -if (GETPOST('actioncancel'))
    +if (GETPOST('actioncancel','alpha'))
     {
     	//$_GET["id"]=GETPOST('id', 'int');       // Force affichage dictionnaire en cours d'edition
     }
    @@ -524,62 +523,18 @@ if ($id)
     			$valuetoshow=ucfirst($fieldlist[$field]);   // Par defaut
     			$valuetoshow=$langs->trans($valuetoshow);   // try to translate
     			$align="left";
    -			if ($fieldlist[$field]=='source')          { $valuetoshow=$langs->trans("Contact"); }
    -			if ($fieldlist[$field]=='price')           { $valuetoshow=$langs->trans("PriceUHT"); }
    -			if ($fieldlist[$field]=='taux')            {
    -				if ($tabname[$id] != MAIN_DB_PREFIX."c_revenuestamp") $valuetoshow=$langs->trans("Rate");
    -				else $valuetoshow=$langs->trans("Amount");
    -				$align='right';
    -			}
    -			if ($fieldlist[$field]=='localtax1_type')  { $valuetoshow=$langs->trans("UseLocalTax")." 2"; $align="center"; $sortable=0; }
    -			if ($fieldlist[$field]=='localtax1')       { $valuetoshow=$langs->trans("Rate")." 2";}
    -			if ($fieldlist[$field]=='localtax2_type')  { $valuetoshow=$langs->trans("UseLocalTax")." 3"; $align="center"; $sortable=0; }
    -			if ($fieldlist[$field]=='localtax2')       { $valuetoshow=$langs->trans("Rate")." 3";}
    -			if ($fieldlist[$field]=='organization')    { $valuetoshow=$langs->trans("Organization"); }
    -			if ($fieldlist[$field]=='lang')            { $valuetoshow=$langs->trans("Language"); }
    -			if ($fieldlist[$field]=='type')            {
    -				if ($tabname[$id] == MAIN_DB_PREFIX."c_paiement") $valuetoshow=$form->textwithtooltip($langs->trans("Type"),$langs->trans("TypePaymentDesc"),2,1,img_help(1,''));
    -				else $valuetoshow=$langs->trans("Type");
    -			}
     			if ($fieldlist[$field]=='code')            { $valuetoshow=$langs->trans("Code"); }
     			if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label')
     			{
     				$valuetoshow=$langs->trans("Label");
     				if ($id != 25) $valuetoshow.="*";
     			}
    -			if ($fieldlist[$field]=='libelle_facture') { $valuetoshow=$langs->trans("LabelOnDocuments")."*"; }
     			if ($fieldlist[$field]=='country')         {
     				if (in_array('region_id',$fieldlist)) { print '<td>&nbsp;</td>'; continue; }		// For region page, we do not show the country input
     				$valuetoshow=$langs->trans("Country");
     			}
    -			if ($fieldlist[$field]=='recuperableonly') { $valuetoshow=$langs->trans("NPR"); $align="center"; }
    -			if ($fieldlist[$field]=='nbjour')          { $valuetoshow=$langs->trans("NbOfDays"); }
    -			if ($fieldlist[$field]=='type_cdr')        { $valuetoshow=$langs->trans("AtEndOfMonth"); $align="center"; }
    -			if ($fieldlist[$field]=='decalage')        { $valuetoshow=$langs->trans("Offset"); }
    -			if ($fieldlist[$field]=='width')           { $valuetoshow=$langs->trans("Width"); }
    -			if ($fieldlist[$field]=='height')          { $valuetoshow=$langs->trans("Height"); }
    -			if ($fieldlist[$field]=='unit')            { $valuetoshow=$langs->trans("MeasuringUnit"); }
    -			if ($fieldlist[$field]=='region_id' || $fieldlist[$field]=='country_id') { $valuetoshow=''; }
    -			if ($fieldlist[$field]=='accountancy_code'){ $valuetoshow=$langs->trans("AccountancyCode"); }
    -			if ($fieldlist[$field]=='accountancy_code_sell'){ $valuetoshow=$langs->trans("AccountancyCodeSell"); }
    -			if ($fieldlist[$field]=='accountancy_code_buy'){ $valuetoshow=$langs->trans("AccountancyCodeBuy"); }
    +			if ($fieldlist[$field]=='country_id') { $valuetoshow=''; }
     			if ($fieldlist[$field]=='pcg_version' || $fieldlist[$field]=='fk_pcg_version') { $valuetoshow=$langs->trans("Pcg_version"); }
    -			if ($fieldlist[$field]=='account_parent')  { $valuetoshow=$langs->trans("Accountparent"); }
    -			if ($fieldlist[$field]=='pcg_type')        { $valuetoshow=$langs->trans("Pcg_type"); }
    -			if ($fieldlist[$field]=='pcg_subtype')     { $valuetoshow=$langs->trans("Pcg_subtype"); }
    -			if ($fieldlist[$field]=='sortorder')       { $valuetoshow=$langs->trans("SortOrder"); }
    -			if ($fieldlist[$field]=='short_label')     { $valuetoshow=$langs->trans("ShortLabel"); }
    -			if ($fieldlist[$field]=='type_template')   { $valuetoshow=$langs->trans("TypeOfTemplate"); }
    -			if ($fieldlist[$field]=='range_account')   { $valuetoshow=$langs->trans("Range"); }
    -			if ($fieldlist[$field]=='sens')            { $valuetoshow=$langs->trans("Sens"); }
    -			if ($fieldlist[$field]=='category_type')   { $valuetoshow=$langs->trans("Calculated"); }
    -			if ($fieldlist[$field]=='formula')         { $valuetoshow=$langs->trans("Formula"); }
    -
    -			if ($id == 2)	// Special cas for state page
    -			{
    -				if ($fieldlist[$field]=='region_id') { $valuetoshow='&nbsp;'; $showfield=1; }
    -				if ($fieldlist[$field]=='region') { $valuetoshow=$langs->trans("Country").'/'.$langs->trans("Region"); $showfield=1; }
    -			}
     
     			if ($valuetoshow != '')
     			{
    @@ -604,7 +559,7 @@ if ($id)
     
     		$obj = new stdClass();
     		// If data was already input, we define them in obj to populate input fields.
    -		if (GETPOST('actionadd'))
    +		if (GETPOST('actionadd','alpha'))
     		{
     			foreach ($fieldlist as $key=>$val)
     			{
    @@ -709,50 +664,15 @@ if ($id)
     			*/
     			$valuetoshow=ucfirst($fieldlist[$field]);   // By defaut
     			$valuetoshow=$langs->trans($valuetoshow);   // try to translate
    -			if ($fieldlist[$field]=='source')          { $valuetoshow=$langs->trans("Contact"); }
    -			if ($fieldlist[$field]=='price')           { $valuetoshow=$langs->trans("PriceUHT"); }
    -			if ($fieldlist[$field]=='taux')            {
    -				if ($tabname[$id] != MAIN_DB_PREFIX."c_revenuestamp") $valuetoshow=$langs->trans("Rate");
    -				else $valuetoshow=$langs->trans("Amount");
    -				$align='right';
    -			}
    -			if ($fieldlist[$field]=='localtax1_type')  { $valuetoshow=$langs->trans("UseLocalTax")." 2"; $align="center"; $sortable=0; }
    -			if ($fieldlist[$field]=='localtax1')       { $valuetoshow=$langs->trans("Rate")." 2"; $sortable=0; }
    -			if ($fieldlist[$field]=='localtax2_type')  { $valuetoshow=$langs->trans("UseLocalTax")." 3"; $align="center"; $sortable=0; }
    -			if ($fieldlist[$field]=='localtax2')       { $valuetoshow=$langs->trans("Rate")." 3"; $sortable=0; }
    -			if ($fieldlist[$field]=='organization')    { $valuetoshow=$langs->trans("Organization"); }
    -			if ($fieldlist[$field]=='lang')            { $valuetoshow=$langs->trans("Language"); }
    -			if ($fieldlist[$field]=='type')            { $valuetoshow=$langs->trans("Type"); }
     			if ($fieldlist[$field]=='code')            { $valuetoshow=$langs->trans("Code"); }
     			if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label')
     			{
     				$valuetoshow=$langs->trans("Label");
     			   	if ($id != 25) $valuetoshow.="*";
     			}
    -			if ($fieldlist[$field]=='libelle_facture') { $valuetoshow=$langs->trans("LabelOnDocuments")."*"; }
     			if ($fieldlist[$field]=='country')         { $valuetoshow=$langs->trans("Country"); }
    -			if ($fieldlist[$field]=='recuperableonly') { $valuetoshow=$langs->trans("NPR"); $align="center"; }
    -			if ($fieldlist[$field]=='nbjour')          { $valuetoshow=$langs->trans("NbOfDays"); }
    -			if ($fieldlist[$field]=='type_cdr')        { $valuetoshow=$langs->trans("AtEndOfMonth"); $align="center"; }
    -			if ($fieldlist[$field]=='decalage')        { $valuetoshow=$langs->trans("Offset"); }
    -			if ($fieldlist[$field]=='width')           { $valuetoshow=$langs->trans("Width"); }
    -			if ($fieldlist[$field]=='height')          { $valuetoshow=$langs->trans("Height"); }
    -			if ($fieldlist[$field]=='unit')            { $valuetoshow=$langs->trans("MeasuringUnit"); }
    -			if ($fieldlist[$field]=='region_id' || $fieldlist[$field]=='country_id') { $showfield=0; }
    -			if ($fieldlist[$field]=='accountancy_code'){ $valuetoshow=$langs->trans("AccountancyCode"); }
    -			if ($fieldlist[$field]=='accountancy_code_sell'){ $valuetoshow=$langs->trans("AccountancyCodeSell"); $sortable=0; }
    -			if ($fieldlist[$field]=='accountancy_code_buy'){ $valuetoshow=$langs->trans("AccountancyCodeBuy"); $sortable=0; }
    +			if ($fieldlist[$field]=='country_id') { $showfield=0; }
     			if ($fieldlist[$field]=='fk_pcg_version')  { $valuetoshow=$langs->trans("Pcg_version"); }
    -			if ($fieldlist[$field]=='account_parent')  { $valuetoshow=$langs->trans("Accountsparent"); }
    -			if ($fieldlist[$field]=='pcg_type')        { $valuetoshow=$langs->trans("Pcg_type"); }
    -			if ($fieldlist[$field]=='pcg_subtype')     { $valuetoshow=$langs->trans("Pcg_subtype"); }
    -			if ($fieldlist[$field]=='sortorder')       { $valuetoshow=$langs->trans("SortOrder"); }
    -			if ($fieldlist[$field]=='short_label')     { $valuetoshow=$langs->trans("ShortLabel"); }
    -			if ($fieldlist[$field]=='type_template')   { $valuetoshow=$langs->trans("TypeOfTemplate"); }
    -			if ($fieldlist[$field]=='range_account')   { $valuetoshow=$langs->trans("Range"); }
    -			if ($fieldlist[$field]=='sens')            { $valuetoshow=$langs->trans("Sens"); }
    -			if ($fieldlist[$field]=='category_type')   { $valuetoshow=$langs->trans("Calculated"); }
    -			if ($fieldlist[$field]=='formula')         { $valuetoshow=$langs->trans("Formula"); }
     
     			// Affiche nom du champ
     			if ($showfield)
    @@ -832,120 +752,9 @@ if ($id)
     									$valuetoshow=($key != "Country".strtoupper($obj->country_code)?$obj->country_code." - ".$key:$obj->country);
     								}
     							}
    -							else if ($fieldlist[$field]=='recuperableonly' || $fieldlist[$field]=='type_cdr' || $fieldlist[$field] == 'deductible' || $fieldlist[$field] == 'category_type') {
    -								if(empty($valuetoshow)) $valuetoshow = $langs->trans('None');
    -								elseif($valuetoshow == 1) $valuetoshow = $langs->trans('AtEndOfMonth');
    -								elseif($valuetoshow == 2) $valuetoshow = $langs->trans('CurrentNext');
    -								$align="center";
    -							}
    -							else if ($fieldlist[$field]=='price' || preg_match('/^amount/i',$fieldlist[$field])) {
    -								$valuetoshow=price($valuetoshow);
    -							}
    -							else if ($fieldlist[$field]=='libelle_facture') {
    -								$langs->loadLangs(array("bills"));
    -								$key=$langs->trans("PaymentCondition".strtoupper($obj->code));
    -								$valuetoshow=($obj->code && $key != "PaymentCondition".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -								$valuetoshow=nl2br($valuetoshow);
    -							}
    -							else if ($fieldlist[$field]=='label' && $tabname[$id]==MAIN_DB_PREFIX.'c_country') {
    -								$key=$langs->trans("Country".strtoupper($obj->code));
    -								$valuetoshow=($obj->code && $key != "Country".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='label' && $tabname[$id]==MAIN_DB_PREFIX.'c_availability') {
    -								$langs->loadLangs(array("propal"));
    -								$key=$langs->trans("AvailabilityType".strtoupper($obj->code));
    -								$valuetoshow=($obj->code && $key != "AvailabilityType".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_actioncomm') {
    -								$key=$langs->trans("Action".strtoupper($obj->code));
    -								$valuetoshow=($obj->code && $key != "Action".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if (! empty($obj->code_iso) && $fieldlist[$field]=='label' && $tabname[$id]==MAIN_DB_PREFIX.'c_currencies') {
    -								$key=$langs->trans("Currency".strtoupper($obj->code_iso));
    -								$valuetoshow=($obj->code_iso && $key != "Currency".strtoupper($obj->code_iso)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_typent') {
    -								$key=$langs->trans(strtoupper($obj->code));
    -								$valuetoshow=($key != strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_prospectlevel') {
    -								$key=$langs->trans(strtoupper($obj->code));
    -								$valuetoshow=($key != strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='label' && $tabname[$id]==MAIN_DB_PREFIX.'c_civility') {
    -								$key=$langs->trans("Civility".strtoupper($obj->code));
    -								$valuetoshow=($obj->code && $key != "Civility".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_type_contact') {
    -								$langs->loadLangs(array("agenda"));
    -								$key=$langs->trans("TypeContact_".$obj->element."_".$obj->source."_".strtoupper($obj->code));
    -								$valuetoshow=($obj->code && $key != "TypeContact_".$obj->element."_".$obj->source."_".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_payment_term') {
    -								$langs->loadLangs(array("bills"));
    -								$key=$langs->trans("PaymentConditionShort".strtoupper($obj->code));
    -								$valuetoshow=($obj->code && $key != "PaymentConditionShort".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_paiement') {
    -								$langs->loadLangs(array("bills"));
    -								$key=$langs->trans("PaymentType".strtoupper($obj->code));
    -								$valuetoshow=($obj->code && $key != "PaymentType".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='label' && $tabname[$id]==MAIN_DB_PREFIX.'c_input_reason') {
    -								$key=$langs->trans("DemandReasonType".strtoupper($obj->code));
    -								$valuetoshow=($obj->code && $key != "DemandReasonType".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_input_method') {
    -								$langs->loadLangs(array("orders"));
    -								$key=$langs->trans($obj->code);
    -								$valuetoshow=($obj->code && $key != $obj->code)?$key:$obj->{$fieldlist[$field]};
    -							}
    -							else if ($fieldlist[$field]=='libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_shipment_mode') {
    -								$langs->loadLangs(array("sendings"));
    -								$key=$langs->trans("SendingMethod".strtoupper($obj->code));
    -								$valuetoshow=($obj->code && $key != "SendingMethod".strtoupper($obj->code)?$key:$obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field] == 'libelle' && $tabname[$id]==MAIN_DB_PREFIX.'c_paper_format')
    -							{
    -								$key = $langs->trans('PaperFormat'.strtoupper($obj->code));
    -								$valuetoshow = ($obj->code && $key != 'PaperFormat'.strtoupper($obj->code) ? $key : $obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field] == 'label' && $tabname[$id] == MAIN_DB_PREFIX.'c_type_fees')
    -							{
    -								$langs->loadLangs(array("trips"));
    -								$key = $langs->trans(strtoupper($obj->code));
    -								$valuetoshow = ($obj->code && $key != strtoupper($obj->code) ? $key : $obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='region_id' || $fieldlist[$field]=='country_id') {
    +							else if ($fieldlist[$field]=='country_id') {
     								$showfield=0;
     							}
    -							else if ($fieldlist[$field]=='unicode') {
    -								$valuetoshow = $langs->getCurrencySymbol($obj->code,1);
    -							}
    -							else if ($fieldlist[$field]=='label' && $tabname[$_GET["id"]]==MAIN_DB_PREFIX.'c_units') {
    -								$langs->loadLangs(array("products"));
    -								$valuetoshow=$langs->trans($obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='short_label' && $tabname[$_GET["id"]]==MAIN_DB_PREFIX.'c_units') {
    -								$langs->loadLangs(array("products"));
    -								$valuetoshow = $langs->trans($obj->{$fieldlist[$field]});
    -							}
    -							else if (($fieldlist[$field] == 'unit') && ($tabname[$id] == MAIN_DB_PREFIX.'c_paper_format'))
    -							{
    -								$key = $langs->trans('SizeUnit'.strtolower($obj->unit));
    -								$valuetoshow = ($obj->code && $key != 'SizeUnit'.strtolower($obj->unit) ? $key : $obj->{$fieldlist[$field]});
    -							}
    -							else if ($fieldlist[$field]=='taux') {
    -								$valuetoshow = price($valuetoshow, 0, $langs, 0, 0);
    -								$align="right";
    -							}
    -							else if (in_array($fieldlist[$field],array('recuperableonly')))
    -							{
    -								$align="center";
    -							}
    -							else if ($fieldlist[$field]=='accountancy_code' || $fieldlist[$field]=='accountancy_code_sell' || $fieldlist[$field]=='accountancy_code_buy') {
    -								$valuetoshow = length_accountg($valuetoshow);
    -							}
     
     							$class='tddict';
     							if ($fieldlist[$field] == 'tracking') $class.=' tdoverflowauto';
    @@ -956,17 +765,6 @@ if ($id)
     
     					// Can an entry be erased or disabled ?
     					$iserasable=1;$canbedisabled=1;$canbemodified=1;	// true by default
    -					if (isset($obj->code) && $id != 10)
    -					{
    -						if (($obj->code == '0' || $obj->code == '' || preg_match('/unknown/i',$obj->code))) { $iserasable = 0; $canbedisabled = 0; }
    -						else if ($obj->code == 'RECEP') { $iserasable = 0; $canbedisabled = 0; }
    -						else if ($obj->code == 'EF0')   { $iserasable = 0; $canbedisabled = 0; }
    -					}
    -
    -					if (isset($obj->type) && in_array($obj->type, array('system', 'systemauto'))) { $iserasable=0; }
    -					if (in_array($obj->code, array('AC_OTH','AC_OTH_AUTO')) || in_array($obj->type, array('systemauto'))) { $canbedisabled=0; $canbedisabled = 0; }
    -					$canbemodified=$iserasable;
    -					if ($obj->code == 'RECEP') $canbemodified=1;
     
     					$url = $_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(! empty($obj->rowid)?$obj->rowid:(! empty($obj->code)?$obj->code:'')).'&code='.(! empty($obj->code)?urlencode($obj->code):'');
     					if ($param) $url .= '&'.$param;
    @@ -1004,7 +802,7 @@ if ($id)
     
     print '<br>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
     
    @@ -1055,53 +853,7 @@ function fieldListAccountModel($fieldlist, $obj='', $tabname='', $context='')
     				print '</td>';
     			}
     		}
    -		elseif ($fieldlist[$field] == 'region')
    -		{
    -			print '<td>';
    -			$formcompany->select_region($region_id,'region');
    -			print '</td>';
    -		}
    -		elseif ($fieldlist[$field] == 'region_id')
    -		{
    -			$region_id = (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:0);
    -			print '<td>';
    -			print '<input type="hidden" name="'.$fieldlist[$field].'" value="'.$region_id.'">';
    -			print '</td>';
    -		}
    -		elseif ($fieldlist[$field] == 'lang')
    -		{
    -			print '<td>';
    -			print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT,'lang');
    -			print '</td>';
    -		}
    -		// Le type de template
    -		elseif ($fieldlist[$field] == 'type_template')
    -		{
    -			print '<td>';
    -			print $form->selectarray('type_template', $elementList,(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''));
    -			print '</td>';
    -		}
    -		// Le type de l'element (pour les type de contact)
    -		elseif ($fieldlist[$field] == 'element')
    -		{
    -			print '<td>';
    -			print $form->selectarray('element', $elementList,(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''));
    -			print '</td>';
    -		}
    -		// La source de l'element (pour les type de contact)
    -		elseif ($fieldlist[$field] == 'source')
    -		{
    -			print '<td>';
    -			print $form->selectarray('source', $sourceList,(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''));
    -			print '</td>';
    -		}
    -		elseif ($fieldlist[$field] == 'type' && $tabname == MAIN_DB_PREFIX."c_actioncomm")
    -		{
    -			print '<td>';
    -			print 'user<input type="hidden" name="type" value="user">';
    -			print '</td>';
    -		}
    -		elseif ($fieldlist[$field] == 'recuperableonly' || $fieldlist[$field] == 'type_cdr' || $fieldlist[$field] == 'deductible' || $fieldlist[$field] == 'category_type') {
    +		elseif ($fieldlist[$field] == 'type_cdr') {
     			if ($fieldlist[$field] == 'type_cdr') print '<td align="center">';
     			else print '<td>';
     			if ($fieldlist[$field] == 'type_cdr') {
    @@ -1111,49 +863,9 @@ function fieldListAccountModel($fieldlist, $obj='', $tabname='', $context='')
     			}
     			print '</td>';
     		}
    -		elseif (in_array($fieldlist[$field],array('nbjour','decalage','taux','localtax1','localtax2'))) {
    -			$align="left";
    -			if (in_array($fieldlist[$field],array('taux','localtax1','localtax2'))) $align="right";	// Fields aligned on right
    -			print '<td align="'.$align.'">';
    -			print '<input type="text" class="flat" value="'.(isset($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'" size="3" name="'.$fieldlist[$field].'">';
    -			print '</td>';
    -		}
    -		elseif (in_array($fieldlist[$field], array('libelle_facture'))) {
    -			print '<td><textarea cols="30" rows="'.ROWS_2.'" class="flat" name="'.$fieldlist[$field].'">'.(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'</textarea></td>';
    -		}
    -		elseif (in_array($fieldlist[$field], array('content')))
    -		{
    -			print '<td>';
    -			if ($context != 'hide')
    -			{
    -				//print '<textarea cols="3" rows="'.ROWS_2.'" class="flat" name="'.$fieldlist[$field].'">'.(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'</textarea>';
    -				$okforextended=true;
    -				$doleditor = new DolEditor($fieldlist[$field], (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''), '', 140, 'dolibarr_mailings', 'In', 0, false, $okforextended, ROWS_5, '90%');
    -				print $doleditor->Create(1);
    -			}
    -			else print '&nbsp;';
    -			print '</td>';
    -		}
    -		elseif ($fieldlist[$field] == 'price' || preg_match('/^amount/i',$fieldlist[$field])) {
    -			print '<td><input type="text" class="flat" value="'.price((! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'')).'" size="8" name="'.$fieldlist[$field].'"></td>';
    -		}
     		elseif ($fieldlist[$field] == 'code' && isset($obj->{$fieldlist[$field]})) {
     			print '<td><input type="text" class="flat" value="'.(! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'" size="10" name="'.$fieldlist[$field].'"></td>';
     		}
    -		elseif ($fieldlist[$field] == 'accountancy_code' || $fieldlist[$field] == 'accountancy_code_sell' || $fieldlist[$field] == 'accountancy_code_buy')
    -		{
    -			print '<td>';
    -			if (! empty($conf->accounting->enabled))
    -			{
    -				$accountancy_account = (! empty($obj->$fieldlist[$field]) ? $obj->$fieldlist[$field] : 0);
    -				print $formaccounting->select_account($accountancy_account, $fieldlist[$field], 1, '', 1, 1, 'maxwidth200 maxwidthonsmartphone');
    -			}
    -			else
    -			{
    -				print '<input type="text" size="10" class="flat" value="'.(isset($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:'').'" name="'.$fieldlist[$field].'">';
    -			}
    -			print '</td>';
    -		}
     		else
     		{
     			print '<td>';
    @@ -1161,7 +873,6 @@ function fieldListAccountModel($fieldlist, $obj='', $tabname='', $context='')
     			if ($fieldlist[$field]=='code') $size='size="8" ';
     			if ($fieldlist[$field]=='position') $size='size="4" ';
     			if ($fieldlist[$field]=='libelle') $size='centpercent';
    -			if ($fieldlist[$field]=='tracking') $class='centpercent';
     			if ($fieldlist[$field]=='sortorder' || $fieldlist[$field]=='sens' || $fieldlist[$field]=='category_type') $size='size="2" ';
     			print '<input type="text" '.$size.' class="flat'.($class?' '.$class:'').'" value="'.(isset($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'">';
     			print '</td>';
    diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php
    index 9643227da64..a2ec757b212 100644
    --- a/htdocs/accountancy/admin/card.php
    +++ b/htdocs/accountancy/admin/card.php
    @@ -1,7 +1,7 @@
     <?php
    -/* Copyright (C) 2013-2014 Olivier Geffroy      <jeff@jeffinfo.com>
    - * Copyright (C) 2013-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
    - * Copyright (C) 2014      Florian Henry        <florian.henry@open-concept.pro>
    +/* Copyright (C) 2013-2014  Olivier Geffroy     <jeff@jeffinfo.com>
    + * Copyright (C) 2013-2018  Alexandre Spangaro  <aspangaro@zendsi.com>
    + * Copyright (C) 2014       Florian Henry       <florian.henry@open-concept.pro>
      *
      * 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
    @@ -18,9 +18,9 @@
      */
     
     /**
    - * \file 		htdocs/accountancy/admin/card.php
    - * \ingroup		Advanced accountancy
    - * \brief 		Card of accounting account
    + *  \file       htdocs/accountancy/admin/card.php
    + *  \ingroup    Advanced accountancy
    + *  \brief      Card of accounting account
      */
     
     require '../../main.inc.php';
    @@ -41,6 +41,7 @@ $id = GETPOST('id', 'int');
     $ref = GETPOST('ref', 'alpha');
     $rowid = GETPOST('rowid', 'int');
     $cancel = GETPOST('cancel','alpha');
    +$accountingaccount = GETPOST('accountingaccount','alpha');
     
     // Security check
     
    @@ -73,25 +74,28 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount)
     		// To manage zero or not at the end of the accounting account
     		if($conf->global->ACCOUNTING_MANAGE_ZERO == 1)
     		{
    -			$account_number = GETPOST('account_number');
    +			$account_number = GETPOST('account_number','string');
     		}
     		else
     		{
    -			$account_number = clean_account(GETPOST('account_number'));
    +			$account_number = clean_account(GETPOST('account_number','string'));
     		}
     
    -		if (GETPOST('account_parent') <= 0) {
    +		if (GETPOST('account_parent','int') <= 0)
    +		{
     			$account_parent = 0;
    -		} else {
    +		}
    +		else
    +		{
     			$account_parent = GETPOST('account_parent','int');
     		}
     
     		$object->fk_pcg_version = $obj->pcg_version;
    -		$object->pcg_type = GETPOST('pcg_type');
    -		$object->pcg_subtype = GETPOST('pcg_subtype');
    +		$object->pcg_type = GETPOST('pcg_type','alpha');
    +		$object->pcg_subtype = GETPOST('pcg_subtype','alpha');
     		$object->account_number = $account_number;
     		$object->account_parent = $account_parent;
    -		$object->account_category = GETPOST('account_category');
    +		$object->account_category = GETPOST('account_category','alpha');
     		$object->label = GETPOST('label', 'alpha');
     		$object->active = 1;
     
    @@ -135,25 +139,28 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount)
     		// To manage zero or not at the end of the accounting account
     		if($conf->global->ACCOUNTING_MANAGE_ZERO == 1)
     		{
    -			$account_number = GETPOST('account_number');
    +			$account_number = GETPOST('account_number','string');
     		}
     		else
     		{
    -			$account_number = clean_account(GETPOST('account_number'));
    +			$account_number = clean_account(GETPOST('account_number','string'));
     		}
     
    -		if (GETPOST('account_parent') <= 0) {
    +		if (GETPOST('account_parent','int') <= 0)
    +		{
     			$account_parent = 0;
    -		} else {
    +		}
    +		else
    +		{
     			$account_parent = GETPOST('account_parent','int');
     		}
     
     		$object->fk_pcg_version = $obj->pcg_version;
    -		$object->pcg_type = GETPOST('pcg_type');
    -		$object->pcg_subtype = GETPOST('pcg_subtype');
    +		$object->pcg_type = GETPOST('pcg_type','alpha');
    +		$object->pcg_subtype = GETPOST('pcg_subtype','alpha');
     		$object->account_number = $account_number;
     		$object->account_parent = $account_parent;
    -		$object->account_category = GETPOST('account_category');
    +		$object->account_category = GETPOST('account_category','alpha');
     		$object->label = GETPOST('label', 'alpha');
     
     		$result = $object->update($user);
    @@ -223,7 +230,7 @@ if ($action == 'create') {
     
     	// Account number
     	print '<tr><td class="titlefieldcreate"><span class="fieldrequired">' . $langs->trans("AccountNumber") . '</span></td>';
    -	print '<td><input name="account_number" size="30" value="' . $object->account_number . '"></td></tr>';
    +	print '<td><input name="account_number" size="30" value="' . $accountingaccount . '"></td></tr>';
     
     	// Label
     	print '<tr><td><span class="fieldrequired">' . $langs->trans("Label") . '</span></td>';
    @@ -381,13 +388,13 @@ else if ($id > 0 || $ref) {
     			if (! empty($user->rights->accounting->chartofaccount)) {
     				print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?action=update&id=' . $id . '">' . $langs->trans('Modify') . '</a>';
     			} else {
    -				print '<a class="butActionRefused" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('Modify') . '</a>';
    +				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&id=' . $id . '">' . $langs->trans('Delete') . '</a>';
     			} else {
    -				print '<a class="butActionRefused" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('Delete') . '</a>';
    +				print '<a class="butActionRefused classfortooltip" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('Delete') . '</a>';
     			}
     
     			print '</div>';
    @@ -397,6 +404,6 @@ else if ($id > 0 || $ref) {
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/accountancy/admin/categories.php b/htdocs/accountancy/admin/categories.php
    index aec34469559..6e003738173 100644
    --- a/htdocs/accountancy/admin/categories.php
    +++ b/htdocs/accountancy/admin/categories.php
    @@ -37,9 +37,9 @@ $id = GETPOST('id', 'int');
     $rowid = GETPOST('rowid', 'int');
     $cancel = GETPOST('cancel','alpha');
     $action = GETPOST('action','aZ09');
    -$cat_id = GETPOST('account_category');
    +$cat_id = GETPOST('account_category','int');
     $selectcpt = GETPOST('cpt_bk', 'array');
    -$cpt_id = GETPOST('cptid');
    +$cpt_id = GETPOST('cptid','int');
     
     if ($cat_id == 0) {
     	$cat_id = null;
    @@ -184,6 +184,6 @@ if ($action == 'display' || $action == 'delete') {
     	print "</table>";
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/accountancy/admin/categories_list.php b/htdocs/accountancy/admin/categories_list.php
    index 15a50e7b8e8..1f10403f798 100644
    --- a/htdocs/accountancy/admin/categories_list.php
    +++ b/htdocs/accountancy/admin/categories_list.php
    @@ -34,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
     // Load translation files required by the page
     $langs->loadLangs(array("errors","admin","companies","resource","holiday","accountancy","hrm"));
     
    -$action=GETPOST('action','alpha')?GETPOST('action','alpha'):'view';
    +$action=GETPOST('action','aZ09')?GETPOST('action','aZ09'):'view';
     $confirm=GETPOST('confirm','alpha');
     $id=32;
     $rowid=GETPOST('rowid','alpha');
    @@ -51,8 +51,8 @@ $acts[1] = "disable";
     $actl[0] = img_picto($langs->trans("Disabled"),'switch_off');
     $actl[1] = img_picto($langs->trans("Activated"),'switch_on');
     
    -$listoffset=GETPOST('listoffset');
    -$listlimit=GETPOST('listlimit')>0?GETPOST('listlimit'):1000;
    +$listoffset=GETPOST('listoffset','alpha');
    +$listlimit=GETPOST('listlimit','int')>0?GETPOST('listlimit','int'):1000;
     $active = 1;
     
     $sortfield = GETPOST("sortfield",'aZ09comma');
    @@ -134,13 +134,13 @@ $sourceList=array();
      * Actions
      */
     
    -if (GETPOST('button_removefilter') || GETPOST('button_removefilter.x') || GETPOST('button_removefilter_x'))
    +if (GETPOST('button_removefilter','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter_x','alpha'))
     {
         $search_country_id = '';
     }
     
     // Actions add or modify an entry into a dictionary
    -if (GETPOST('actionadd') || GETPOST('actionmodify'))
    +if (GETPOST('actionadd','alpha') || GETPOST('actionmodify','alpha'))
     {
         $listfield=explode(',', str_replace(' ', '',$tabfield[$id]));
         $listfieldinsert=explode(',',$tabfieldinsert[$id]);
    @@ -202,7 +202,6 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
                 {
                     $obj = $db->fetch_object($result);
                     $newid=($obj->newid + 1);
    -
                 } else {
                     dol_print_error($db);
                 }
    @@ -250,7 +249,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
         }
     
         // Si verif ok et action modify, on modifie la ligne
    -    if ($ok && GETPOST('actionmodify'))
    +    if ($ok && GETPOST('actionmodify','alpha'))
         {
             if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; }
             else { $rowidcol="rowid"; }
    @@ -291,7 +290,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
         //$_GET["id"]=GETPOST('id', 'int');       // Force affichage dictionnaire en cours d'edition
     }
     
    -if (GETPOST('actioncancel'))
    +if (GETPOST('actioncancel','alpha'))
     {
         //$_GET["id"]=GETPOST('id', 'int');       // Force affichage dictionnaire en cours d'edition
     }
    @@ -513,7 +512,7 @@ if ($id)
     
             $obj = new stdClass();
             // If data was already input, we define them in obj to populate input fields.
    -        if (GETPOST('actionadd'))
    +        if (GETPOST('actionadd','alpha'))
             {
                 foreach ($fieldlist as $key=>$val)
                 {
    @@ -800,7 +799,7 @@ if ($id)
     
     print '<br>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/accountancy/admin/defaultaccounts.php b/htdocs/accountancy/admin/defaultaccounts.php
    index c33d4326836..2f41dfa4bfd 100644
    --- a/htdocs/accountancy/admin/defaultaccounts.php
    +++ b/htdocs/accountancy/admin/defaultaccounts.php
    @@ -1,11 +1,11 @@
     <?php
    -/* Copyright (C) 2013-2014 Olivier Geffroy      <jeff@jeffinfo.com>
    - * Copyright (C) 2013-2014 Florian Henry        <florian.henry@open-concept.pro>
    - * Copyright (C) 2013-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
    - * Copyright (C) 2014-2015 Ari Elbaz (elarifr)  <github@accedinfo.com>
    - * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
    - * Copyright (C) 2014      Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2015      Jean-François Ferry  <jfefe@aternatik.fr>
    +/* Copyright (C) 2013-2014  Olivier Geffroy         <jeff@jeffinfo.com>
    + * Copyright (C) 2013-2014  Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2013-2018  Alexandre Spangaro      <aspangaro@open-dsi.fr>
    + * Copyright (C) 2014-2015  Ari Elbaz (elarifr)     <github@accedinfo.com>
    + * Copyright (C) 2014       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2014       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2015       Jean-François Ferry     <jfefe@aternatik.fr>
      *
      * 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
    @@ -43,7 +43,7 @@ if (empty($user->rights->accounting->chartofaccount))
     	accessforbidden();
     }
     
    -$action = GETPOST('action', 'alpha');
    +$action = GETPOST('action', 'aZ09');
     
     
     $list_account_main = array (
    @@ -63,6 +63,7 @@ $list_account = array (
         'ACCOUNTING_ACCOUNT_SUSPENSE',
         'ACCOUNTING_ACCOUNT_TRANSFER_CASH',
         'DONATION_ACCOUNTINGACCOUNT',
    +    'ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT',
         'LOAN_ACCOUNTING_ACCOUNT_CAPITAL',
         'LOAN_ACCOUNTING_ACCOUNT_INTEREST',
         'LOAN_ACCOUNTING_ACCOUNT_INSURANCE'
    @@ -76,7 +77,7 @@ $list_account = array (
     $accounting_mode = empty($conf->global->ACCOUNTING_MODE) ? 'RECETTES-DEPENSES' : $conf->global->ACCOUNTING_MODE;
     
     
    -if (GETPOST('change_chart'))
    +if (GETPOST('change_chart', 'alpha'))
     {
         $chartofaccounts = GETPOST('chartofaccounts', 'int');
     
    @@ -190,5 +191,6 @@ print '<div class="center"><input type="submit" class="button" value="' . $langs
     
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php
    index 0308df2f400..6ef4bdda90b 100644
    --- a/htdocs/accountancy/admin/export.php
    +++ b/htdocs/accountancy/admin/export.php
    @@ -41,10 +41,10 @@ if (empty($user->rights->accounting->chartofaccount))
     	accessforbidden();
     }
     
    -$action = GETPOST('action', 'alpha');
    +$action = GETPOST('action', 'aZ09');
     
     // Parameters ACCOUNTING_EXPORT_*
    -$main_option = array (
    +$main_option = array(
         'ACCOUNTING_EXPORT_PREFIX_SPEC',
     );
     
    @@ -79,6 +79,7 @@ $model_option = array (
     /*
      * Actions
      */
    +
     if ($action == 'update') {
     	$error = 0;
     
    @@ -124,6 +125,8 @@ if ($action == 'update') {
     	}
     }
     
    +
    +
     /*
      * View
      */
    @@ -267,7 +270,7 @@ if ($num2) {
             } else {
                 print '<input type="text" size="20" id="'. $label .'" name="' . $key['label'] . '" value="' . $conf->global->$label . '">';
             }
    -		
    +
     		print '</td></tr>';
     	}
     
    @@ -278,5 +281,6 @@ print '<div class="center"><input type="submit" class="button" value="' . dol_es
     
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/admin/fiscalyear.php b/htdocs/accountancy/admin/fiscalyear.php
    index 25223e70c68..ca0de98875f 100644
    --- a/htdocs/accountancy/admin/fiscalyear.php
    +++ b/htdocs/accountancy/admin/fiscalyear.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2013-2016 Alexandre Spangaro   <aspangaro@zendsi.com>
    +/* Copyright (C) 2013-2018  Alexandre Spangaro  <aspangaro@zendsi.com>
      *
      * 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
    @@ -16,9 +16,9 @@
      */
     
     /**
    - * \file        htdocs/accountancy/admin/fiscalyear.php
    - * \ingroup     Advanced accountancy
    - * \brief       Setup page to configure fiscal year
    + *  \file       htdocs/accountancy/admin/fiscalyear.php
    + *  \ingroup    Advanced accountancy
    + *  \brief      Setup page to configure fiscal year
      */
     
     require '../../main.inc.php';
    @@ -45,8 +45,8 @@ $langs->loadLangs(array("admin","compta"));
     // Security check
     if ($user->societe_id > 0)
     	accessforbidden();
    -if (! $user->rights->accounting->fiscalyear)              // If we can read accounting records, we shoul be able to see fiscal year.
    -    accessforbidden();
    +if (! $user->rights->accounting->fiscalyear)              // If we can read accounting records, we should be able to see fiscal year.
    +	accessforbidden();
     
     $error = 0;
     
    @@ -113,23 +113,26 @@ if ($result)
     
     	if (! empty($user->rights->accounting->fiscalyear))
     	{
    -		$addbutton = '<a class="butAction" href="fiscalyear_card.php?action=create">' . $langs->trans("NewFiscalYear") . '</a>';
    +		$addbutton = '<a class="butActionNew" href="fiscalyear_card.php?action=create"><span class="valignmiddle">' . $langs->trans("NewFiscalYear") .'</span><span class="fa fa-plus-circle valignmiddle"></span></a>';
     	}
     	else
     	{
    -		$addbutton = '<a class="butActionRefused" href="#">' . $langs->trans("NewFiscalYear") . '</a>';
    +		$addbutton = '<a class="butActionRefused classfortooltip" href="#"><span class="valignmiddle" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">' . $langs->trans("NewFiscalYear") .'</span><span class="fa fa-plus-circle valignmiddle"></span></a>';
     	}
     
     	$title = $langs->trans('AccountingPeriods');
     	print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $params, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy', 0, $addbutton, '', $limit, 1);
     
     	// Load attribute_label
    -	print '<table class="noborder" width="100%">';
    +	print '<div class="div-table-responsive">';
    +	print '<table class="tagtable liste" width="100%">';
     	print '<tr class="liste_titre">';
     	print '<td>' . $langs->trans("Ref") . '</td>';
     	print '<td>' . $langs->trans("Label") . '</td>';
     	print '<td>' . $langs->trans("DateStart") . '</td>';
     	print '<td>' . $langs->trans("DateEnd") . '</td>';
    +	print '<td align="center">' . $langs->trans("NumberOfAccountancyEntries") . '</td>';
    +	print '<td align="center">' . $langs->trans("NumberOfAccountancyMovements") . '</td>';
     	print '<td align="right">' . $langs->trans("Statut") . '</td>';
     	print '</tr>';
     
    @@ -141,9 +144,11 @@ if ($result)
     			$fiscalyearstatic->id = $obj->rowid;
     			print '<tr class="oddeven">';
     			print '<td><a href="fiscalyear_card.php?id=' . $obj->rowid . '">' . img_object($langs->trans("ShowFiscalYear"), "technic") . ' ' . $obj->rowid . '</a></td>';
    -			print '<td align="left">' . $obj->label . '</td>';
    -			print '<td align="left">' . dol_print_date($db->jdate($obj->date_start), 'day') . '</td>';
    -			print '<td align="left">' . dol_print_date($db->jdate($obj->date_end), 'day') . '</td>';
    +			print '<td class="left">' . $obj->label . '</td>';
    +			print '<td class="left">' . dol_print_date($db->jdate($obj->date_start), 'day') . '</td>';
    +			print '<td class="left">' . dol_print_date($db->jdate($obj->date_end), 'day') . '</td>';
    +			print '<td align="center">' . $object->getAccountancyEntriesByFiscalYear($obj->date_start, $obj->date_end) . '</td>';
    +			print '<td align="center">' . $object->getAccountancyMovementsByFiscalYear($obj->date_start, $obj->date_end) . '</td>';
     			print '<td align="right">' . $fiscalyearstatic->LibStatut($obj->statut, 5) . '</td>';
     			print '</tr>';
     			$i++;
    @@ -152,10 +157,11 @@ if ($result)
     		print '<tr class="oddeven"><td colspan="5" class="opacitymedium">' . $langs->trans("None") . '</td></tr>';
     	}
     	print '</table>';
    +	print '</div>';
     } else {
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/admin/fiscalyear_card.php b/htdocs/accountancy/admin/fiscalyear_card.php
    index 32df9afc932..297a3026b02 100644
    --- a/htdocs/accountancy/admin/fiscalyear_card.php
    +++ b/htdocs/accountancy/admin/fiscalyear_card.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2014-2016  Alexandre Spangaro	<aspangaro@zendsi.com>
    +/* Copyright (C) 2014-2016  Alexandre Spangaro  <aspangaro@zendsi.com>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -37,7 +38,7 @@ if (empty($user->rights->accounting->fiscalyear))
     
     $error = 0;
     
    -$action = GETPOST('action', 'alpha');
    +$action = GETPOST('action', 'aZ09');
     $confirm = GETPOST('confirm', 'alpha');
     $id = GETPOST('id', 'int');
     
    @@ -165,16 +166,16 @@ if ($action == 'create')
     	print '<table class="border" width="100%">';
     
     	// Label
    -	print '<tr><td class="titlefieldcreate fieldrequired">' . $langs->trans("Label") . '</td><td><input name="label" size="32" value="' . GETPOST("label") . '"></td></tr>';
    +	print '<tr><td class="titlefieldcreate fieldrequired">' . $langs->trans("Label") . '</td><td><input name="label" size="32" value="' . GETPOST('label', 'alpha') . '"></td></tr>';
     
     	// Date start
     	print '<tr><td class="fieldrequired">' . $langs->trans("DateStart") . '</td><td>';
    -	print $form->select_date(($date_start ? $date_start : ''), 'fiscalyear');
    +	print $form->selectDate(($date_start ? $date_start : ''), 'fiscalyear');
     	print '</td></tr>';
     
     	// Date end
     	print '<tr><td class="fieldrequired">' . $langs->trans("DateEnd") . '</td><td>';
    -	print $form->select_date(($date_end ? $date_end : - 1), 'fiscalyearend');
    +	print $form->selectDate(($date_end ? $date_end : - 1), 'fiscalyearend');
     	print '</td></tr>';
     
     	/*
    @@ -182,7 +183,7 @@ if ($action == 'create')
     	print '<tr>';
     	print '<td class="fieldrequired">' . $langs->trans("Status") . '</td>';
     	print '<td class="valeur">';
    -	print $form->selectarray('statut', $statut2label, GETPOST('statut'));
    +	print $form->selectarray('statut', $statut2label, GETPOST('statut', 'int'));
     	print '</td></tr>';
     	*/
     
    @@ -225,12 +226,12 @@ if ($action == 'create')
     
     			// Date start
     			print '<tr><td class="fieldrequired">' . $langs->trans("DateStart") . '</td><td>';
    -			print $form->select_date($object->date_start ? $object->date_start : - 1, 'fiscalyear');
    +			print $form->selectDate($object->date_start ? $object->date_start : - 1, 'fiscalyear');
     			print '</td></tr>';
     
     			// Date end
     			print '<tr><td class="fieldrequired">' . $langs->trans("DateEnd") . '</td><td>';
    -			print $form->select_date($object->date_end ? $object->date_end : - 1, 'fiscalyearend');
    +			print $form->selectDate($object->date_end ? $object->date_end : - 1, 'fiscalyearend');
     			print '</td></tr>';
     
     			// Statut
    @@ -318,5 +319,6 @@ if ($action == 'create')
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/admin/fiscalyear_info.php b/htdocs/accountancy/admin/fiscalyear_info.php
    index f16e3b9ca0e..3141a624194 100644
    --- a/htdocs/accountancy/admin/fiscalyear_info.php
    +++ b/htdocs/accountancy/admin/fiscalyear_info.php
    @@ -58,5 +58,6 @@ if ($id) {
     	print '</div>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/admin/importaccounts.php b/htdocs/accountancy/admin/importaccounts.php
    index 3af46eec1a4..d3a62b5a6ab 100644
    --- a/htdocs/accountancy/admin/importaccounts.php
    +++ b/htdocs/accountancy/admin/importaccounts.php
    @@ -1,7 +1,8 @@
     <?php
     /* Copyright (C) 2013-2014 Olivier Geffroy      <jeff@jeffinfo.com>
    - * Copyright (C) 2013-2017 Alexandre Spangaro   <aspangaro@zendsi.com> 
    + * Copyright (C) 2013-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
      * Copyright (C) 2014      Florian Henry        <florian.henry@open-concept.pro>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -18,7 +19,7 @@
      */
     
     /**
    - * \file 		htdocs/accountancy/admin/importaccounts.php
    + * \file        htdocs/accountancy/admin/importaccounts.php
      * \ingroup		Advanced accountancy
      * \brief 		Page import accounting account
      */
    @@ -71,10 +72,10 @@ if ($_POST["action"] == 'import') {
     
     				$accounting = new AccountingAccount($db);
     
    -				$monLabel = GETPOST('label' . $maLigneCochee);
    -				$monParentAccount = GETPOST('AccountParent' . $maLigneCochee);
    -				$monType = GETPOST('pcgType' . $maLigneCochee);
    -				$monSubType = GETPOST('pcgSubType' . $maLigneCochee);
    +				$monLabel = (string) GETPOST('label' . $maLigneCochee);
    +				$monParentAccount = (string) GETPOST('AccountParent' . $maLigneCochee);
    +				$monType = (string) GETPOST('pcgType' . $maLigneCochee);
    +				$monSubType = (string) GETPOST('pcgSubType' . $maLigneCochee);
     
     				$accounting->fk_pcg_version = $obj->pcg_version;
     				$accounting->account_number = $maLigneCochee;
    @@ -83,7 +84,7 @@ if ($_POST["action"] == 'import') {
     				$accounting->pcg_type = $monType;
     				$accounting->pcg_subtype = $monSubType;
     				$accounting->active = 1;
    -				
    +
     				$result = $accounting->create($user);
     				if ($result > 0) {
     					setEventMessages($langs->trans("AccountingAccountAdd"), null, 'mesgs');
    @@ -101,7 +102,7 @@ if ($_POST["action"] == 'import') {
     	print '<div><font color="red">' . $langs->trans("EndProcessing") . '</font></div>';
     }
     
    -// list accounting account from product 
    +// list accounting account from product
     
     $sql = "(SELECT p.rowid as product_id, p.accountancy_code_sell as accounting ";
     $sql .= " FROM  " . MAIN_DB_PREFIX . "product as p ";
    @@ -141,11 +142,11 @@ if ($result) {
     		$objp = $db->fetch_object($result);
     		print '<tr class="oddeven">';
     
    -		print '<td align="left">';
    +		print '<td class="left">';
     		print $objp->accounting;
     		print '</td>';
     
    -		print '<td align="left">';
    +		print '<td class="left">';
     		print '<input name="label" size="30" value="">';
     		print '</td>';
     
    @@ -172,14 +173,15 @@ if ($result) {
     		print '</tr>';
     		$i ++;
     	}
    -	
    +
     	print '<tr><td colspan="8">&nbsp;</td></tr><tr><td colspan="8" align="center"><input type="submit" class="butAction" value="' . $langs->trans("Import") . '"></td></tr>';
    -	
    +
     	print '</table>';
     	print '</form>';
     } else {
     	print $db->error();
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php
    index e39d07fc35d..60a81df9a56 100644
    --- a/htdocs/accountancy/admin/index.php
    +++ b/htdocs/accountancy/admin/index.php
    @@ -41,7 +41,7 @@ if (empty($user->rights->accounting->chartofaccount))
     	accessforbidden();
     }
     
    -$action = GETPOST('action', 'alpha');
    +$action = GETPOST('action', 'aZ09');
     
     // Parameters ACCOUNTING_* and others
     $list = array (
    @@ -295,5 +295,6 @@ print '<br>';
     print '<br>';
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php
    index ff3a38769b8..49745676eb3 100644
    --- a/htdocs/accountancy/admin/journals_list.php
    +++ b/htdocs/accountancy/admin/journals_list.php
    @@ -34,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php';
     // Load translation files required by the page
     $langs->loadLangs(array("admin","compta","accountancy"));
     
    -$action=GETPOST('action','alpha')?GETPOST('action','alpha'):'view';
    +$action=GETPOST('action','aZ09')?GETPOST('action','aZ09'):'view';
     $confirm=GETPOST('confirm','alpha');
     $id=35;
     $rowid=GETPOST('rowid','alpha');
    @@ -51,8 +51,8 @@ $acts[1] = "disable";
     $actl[0] = img_picto($langs->trans("Disabled"),'switch_off');
     $actl[1] = img_picto($langs->trans("Activated"),'switch_on');
     
    -$listoffset=GETPOST('listoffset');
    -$listlimit=GETPOST('listlimit')>0?GETPOST('listlimit'):1000;
    +$listoffset=GETPOST('listoffset', 'alpha');
    +$listlimit=GETPOST('listlimit', 'int')>0?GETPOST('listlimit', 'int'):1000;
     $active = 1;
     
     $sortfield = GETPOST("sortfield",'alpha');
    @@ -128,28 +128,28 @@ complete_dictionary_with_modules($taborder,$tabname,$tablib,$tabsql,$tabsqlsort,
     
     // Define elementList and sourceList (used for dictionary type of contacts "llx_c_type_contact")
     $elementList = array();
    -	// Must match ids defined into eldy.lib.php
    -	$sourceList = array(
    -			'1' => $langs->trans('AccountingJournalType1'),
    -			'2' => $langs->trans('AccountingJournalType2'),
    -			'3' => $langs->trans('AccountingJournalType3'),
    -			'4' => $langs->trans('AccountingJournalType4'),
    -			'5' => $langs->trans('AccountingJournalType5'),
    -			'8' => $langs->trans('AccountingJournalType8'),
    -			'9' => $langs->trans('AccountingJournalType9')
    -	);
    +// Must match ids defined into eldy.lib.php
    +$sourceList = array(
    +	'1' => $langs->trans('AccountingJournalType1'),
    +	'2' => $langs->trans('AccountingJournalType2'),
    +	'3' => $langs->trans('AccountingJournalType3'),
    +	'4' => $langs->trans('AccountingJournalType4'),
    +	'5' => $langs->trans('AccountingJournalType5'),
    +	'8' => $langs->trans('AccountingJournalType8'),
    +	'9' => $langs->trans('AccountingJournalType9'),
    +);
     
     /*
      * Actions
      */
     
    -if (GETPOST('button_removefilter') || GETPOST('button_removefilter.x') || GETPOST('button_removefilter_x'))
    +if (GETPOST('button_removefilter', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter_x', 'alpha'))
     {
     	$search_country_id = '';
     }
     
     // Actions add or modify an entry into a dictionary
    -if (GETPOST('actionadd') || GETPOST('actionmodify'))
    +if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
     {
     	$listfield=explode(',', str_replace(' ', '',$tabfield[$id]));
     	$listfieldinsert=explode(',',$tabfieldinsert[$id]);
    @@ -190,7 +190,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
     	if ($_POST["accountancy_code_buy"] <= 0) $_POST["accountancy_code_buy"]='';	// If empty, we force to null
     
     	// Si verif ok et action add, on ajoute la ligne
    -	if ($ok && GETPOST('actionadd'))
    +	if ($ok && GETPOST('actionadd', 'alpha'))
     	{
     		if ($tabrowid[$id])
     		{
    @@ -202,7 +202,6 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
     			{
     				$obj = $db->fetch_object($result);
     				$newid=($obj->newid + 1);
    -
     			} else {
     				dol_print_error($db);
     			}
    @@ -252,7 +251,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
     	}
     
     	// Si verif ok et action modify, on modifie la ligne
    -	if ($ok && GETPOST('actionmodify'))
    +	if ($ok && GETPOST('actionmodify', 'alpha'))
     	{
     		if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; }
     		else { $rowidcol="rowid"; }
    @@ -294,10 +293,10 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
     	//$_GET["id"]=GETPOST('id', 'int');       // Force affichage dictionnaire en cours d'edition
     }
     
    -if (GETPOST('actioncancel'))
    -{
    -	//$_GET["id"]=GETPOST('id', 'int');       // Force affichage dictionnaire en cours d'edition
    -}
    +//if (GETPOST('actioncancel', 'alpha'))
    +//{
    +//	$_GET["id"]=GETPOST('id', 'int');       // Force affichage dictionnaire en cours d'edition
    +//}
     
     if ($action == 'confirm_delete' && $confirm == 'yes')       // delete
     {
    @@ -462,7 +461,7 @@ if ($id)
     
     		$obj = new stdClass();
     		// If data was already input, we define them in obj to populate input fields.
    -		if (GETPOST('actionadd'))
    +		if (GETPOST('actionadd', 'alpha'))
     		{
     			foreach ($fieldlist as $key=>$val)
     			{
    @@ -504,7 +503,7 @@ if ($id)
     		$paramwithsearch = $param;
     		if ($sortorder) $paramwithsearch.= '&sortorder='.$sortorder;
     		if ($sortfield) $paramwithsearch.= '&sortfield='.$sortfield;
    -		if (GETPOST('from')) $paramwithsearch.= '&from='.GETPOST('from','alpha');
    +		if (GETPOST('from', 'alpha')) $paramwithsearch.= '&from='.GETPOST('from','alpha');
     
     		// There is several pages
     		if ($num > $listlimit)
    @@ -683,7 +682,7 @@ if ($id)
     
     print '<br>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php
    index 070e2f353c3..bce4f12e559 100644
    --- a/htdocs/accountancy/admin/productaccount.php
    +++ b/htdocs/accountancy/admin/productaccount.php
    @@ -45,7 +45,7 @@ if (! $user->rights->accounting->bind->write)
         accessforbidden();
     
     // search & action GETPOST
    -$action = GETPOST('action', 'alpha');
    +$action = GETPOST('action', 'aZ09');
     $codeventil_buy = GETPOST('codeventil_buy', 'array');
     $codeventil_sell = GETPOST('codeventil_sell', 'array');
     $chk_prod = GETPOST('chk_prod', 'array');
    @@ -62,8 +62,8 @@ $search_current_account_valid = GETPOST('search_current_account_valid', 'alpha')
     if ($search_current_account_valid == '') $search_current_account_valid='withoutvalidaccount';
     
     $accounting_product_mode = GETPOST('accounting_product_mode', 'alpha');
    -$btn_changeaccount = GETPOST('changeaccount');
    -$btn_changetype = GETPOST('changetype');
    +$btn_changeaccount = GETPOST('changeaccount', 'alpha');
    +$btn_changetype = GETPOST('changetype', 'alpha');
     
     $limit = GETPOST('limit','int')?GETPOST('limit','int'):(empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION)?$conf->liste_limit:$conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION);
     $sortfield = GETPOST("sortfield",'alpha');
    @@ -173,7 +173,6 @@ if ($action == 'update') {
     
     				$cpt++;
     			}
    -
     		}
     
     		if ($ko) setEventMessages($langs->trans("XLineFailedToBeBinded", $ko), null, 'errors');
    @@ -397,12 +396,12 @@ if ($result)
     		print $product_static->getNomUrl(1);
     		print '</td>';
     
    -		print '<td align="left">'.$obj->label.'</td>';
    +		print '<td class="left">'.$obj->label.'</td>';
     
     		if (! empty($conf->global->ACCOUNTANCY_SHOW_PROD_DESC))
     		{
     		    // TODO ADJUST DESCRIPTION SIZE
    -    		// print '<td align="left">' . $obj->description . '</td>';
    +    		// print '<td class="left">' . $obj->description . '</td>';
         		// TODO: we shoul set a user defined value to adjust user square / wide screen size
         		$trunclengh = empty($conf->global->ACCOUNTING_LENGTH_DESCRIPTION) ? 32 : $conf->global->ACCOUNTING_LENGTH_DESCRIPTION;
         		print '<td style="' . $code_sell_p_l_differ . '">' . nl2br(dol_trunc($obj->description, $trunclengh)) . '</td>';
    @@ -415,7 +414,7 @@ if ($result)
     			print '<td align="center">'.$product_static->getLibStatut(3, 1).'</td>';
     
     		// Current accounting account
    -		print '<td align="left">';
    +		print '<td class="left">';
     		if ($accounting_product_mode == 'ACCOUNTANCY_BUY') {
     		    print length_accountg($obj->accountancy_code_buy);
     		    if ($obj->accountancy_code_buy && empty($obj->aaid)) print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
    @@ -431,7 +430,7 @@ if ($result)
     		$defaultvalue='';
     		if ($accounting_product_mode == 'ACCOUNTANCY_BUY') {
         		// Accounting account buy
    -			print '<td align="left">';
    +			print '<td class="left">';
     			//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha');        This is id and we need a code
     			if (empty($defaultvalue)) $defaultvalue=$compta_prodbuy;
     			$codesell=length_accountg($obj->accountancy_code_buy);
    @@ -440,7 +439,7 @@ if ($result)
     			print '</td>';
     		} else {
     			// Accounting account sell
    -			print '<td align="left">';
    +			print '<td class="left">';
     			//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha');        This is id and we need a code
     			if (empty($defaultvalue)) $defaultvalue=$compta_prodsell;
     			$codesell=length_accountg($obj->accountancy_code_sell);
    @@ -495,5 +494,6 @@ if ($result)
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php
    index bf7881f90bf..de7fa495770 100644
    --- a/htdocs/accountancy/bookkeeping/balance.php
    +++ b/htdocs/accountancy/bookkeeping/balance.php
    @@ -1,7 +1,8 @@
     <?php
    -/* Copyright (C) 2016       Olivier Geffroy     <jeff@jeffinfo.com>
    - * Copyright (C) 2016       Florian Henry       <florian.henry@open-concept.pro>
    - * Copyright (C) 2016-2018  Alexandre Spangaro  <aspangaro@zendsi.com>
    +/* Copyright (C) 2016       Olivier Geffroy         <jeff@jeffinfo.com>
    + * Copyright (C) 2016       Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2016-2018  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -40,7 +41,7 @@ $langs->loadLangs(array("accountancy"));
     $page = GETPOST("page");
     $sortorder = GETPOST("sortorder", 'alpha');
     $sortfield = GETPOST("sortfield", 'alpha');
    -$action = GETPOST('action', 'alpha');
    +$action = GETPOST('action', 'aZ09');
     if (GETPOST("exportcsv",'alpha')) $action = 'export_csv';
     
     // Load variable for pagination
    @@ -149,6 +150,7 @@ if ($action == 'export_csv')
     	$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
     
     	$filename = 'balance';
    +	$type_export = 'balance';
     	include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php';
     
     	$result = $object->fetchAllBalance($sortorder, $sortfield, $limit, 0, $filter);
    @@ -165,13 +167,18 @@ if ($action == 'export_csv')
     		print price($line->credit - $line->debit) . $sep;
     		print "\n";
     	}
    +
    +	exit;
     }
     
    -else {
    -	$title_page = $langs->trans("AccountBalance");
     
    -	llxHeader('', $title_page);
    +$title_page = $langs->trans("AccountBalance");
     
    +llxHeader('', $title_page);
    +
    +
    +if ($action != 'export_csv')
    +{
     	// List
     	$nbtotalofrecords = '';
     	if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
    @@ -204,9 +211,9 @@ else {
     
     	$moreforfilter .= '<div class="divsearchfield">';
     	$moreforfilter .= $langs->trans('DateStart') . ': ';
    -	$moreforfilter .= $form->select_date($search_date_start?$search_date_start:-1, 'date_start', 0, 0, 1, '', 1, 0, 1);
    +	$moreforfilter .= $form->selectDate($search_date_start?$search_date_start:-1, 'date_start', 0, 0, 1, '', 1, 0);
     	$moreforfilter .= $langs->trans('DateEnd') . ': ';
    -	$moreforfilter .= $form->select_date($search_date_end?$search_date_end:-1, 'date_end', 0, 0, 1, '', 1, 0, 1);
    +	$moreforfilter .= $form->selectDate($search_date_end?$search_date_end:-1, 'date_end', 0, 0, 1, '', 1, 0);
     	$moreforfilter .= '</div>';
     
     	if (! empty($moreforfilter)) {
    @@ -258,7 +265,7 @@ else {
     		$description = $object->get_compte_desc($line->numero_compte); // Search description of the account
     		$root_account_description = $object->get_compte_racine($line->numero_compte);
     		if (empty($description)) {
    -			$link = '<a href="../admin/card.php?action=create&compte=' . length_accountg($line->numero_compte) . '">' . img_edit_add() . '</a>';
    +			$link = '<a href="../admin/card.php?action=create&accountingaccount=' . length_accountg($line->numero_compte) . '">' . img_edit_add() . '</a>';
     		}
     		print '<tr class="oddeven">';
     
    @@ -267,7 +274,7 @@ else {
     		{
     			// Affiche un Sous-Total par compte comptable
     			if ($displayed_account != "") {
    -				print '<tr class="liste_total"><td align="right" colspan="2">' . $langs->trans("SubTotal") . ':</td><td class="nowrap" align="right">' . price($sous_total_debit) . '</td><td class="nowrap" align="right">' . price($sous_total_credit) . '</td><td class="nowrap" align="right">' . price($sous_total_credit - $sous_total_debit) . '</td>';
    +				print '<tr class="liste_total"><td align="right" colspan="2">' . $langs->trans("SubTotal") . ':</td><td class="nowrap" align="right">' . price($sous_total_debit) . '</td><td class="nowrap" align="right">' . price($sous_total_credit) . '</td><td class="nowrap" align="right">' . price(price2num($sous_total_credit - $sous_total_debit)) . '</td>';
     				print "<td>&nbsp;</td>\n";
     				print '</tr>';
     			}
    @@ -298,18 +305,18 @@ else {
     		$sous_total_credit += $line->credit;
     	}
     
    -	print '<tr class="liste_total"><td align="right" colspan="2">' . $langs->trans("SubTotal") . ':</td><td class="nowrap" align="right">' . price($sous_total_debit) . '</td><td class="nowrap" align="right">' . price($sous_total_credit) . '</td><td class="nowrap" align="right">' . price($sous_total_credit - $sous_total_debit) . '</td>';
    +	print '<tr class="liste_total"><td align="right" colspan="2">' . $langs->trans("SubTotal") . ':</td><td class="nowrap" align="right">' . price($sous_total_debit) . '</td><td class="nowrap" align="right">' . price($sous_total_credit) . '</td><td class="nowrap" align="right">' . price(price2num($sous_total_credit - $sous_total_debit)) . '</td>';
     	print "<td>&nbsp;</td>\n";
     	print '</tr>';
     
    -	print '<tr class="liste_total"><td align="right" colspan="2">' . $langs->trans("AccountBalance") . ':</td><td class="nowrap" align="right">' . price($total_debit) . '</td><td class="nowrap" align="right">' . price($total_credit) . '</td><td class="nowrap" align="right">' . price($total_credit - $total_debit) . '</td>';
    +	print '<tr class="liste_total"><td align="right" colspan="2">' . $langs->trans("AccountBalance") . ':</td><td class="nowrap" align="right">' . price($total_debit) . '</td><td class="nowrap" align="right">' . price($total_credit) . '</td><td class="nowrap" align="right">' . price(price2num($total_credit - $total_debit)) . '</td>';
     	print "<td>&nbsp;</td>\n";
     	print '</tr>';
     
     	print "</table>";
     	print '</form>';
    -
    -	llxFooter();
     }
     
    +// End of page
    +llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/bookkeeping/balancebymonth.php b/htdocs/accountancy/bookkeeping/balancebymonth.php
    index 03265e434f6..a01c42b285a 100644
    --- a/htdocs/accountancy/bookkeeping/balancebymonth.php
    +++ b/htdocs/accountancy/bookkeeping/balancebymonth.php
    @@ -64,7 +64,7 @@ $result = $db->query($sql);
     if ($result) {
     	$row = $db->fetch_row($result);
     	$nbfac = $row[0];
    -	
    +
     	$db->free($result);
     }
     
    @@ -85,7 +85,7 @@ print '<td align="center">' . $langs->trans("SeptemberMin") . '</td>';
     print '<td align="center">' . $langs->trans("OctoberMin") . '</td>';
     print '<td align="center">' . $langs->trans("NovemberMin") . '</td>';
     print '<td align="center">' . $langs->trans("DecemberMin") . '</td>';
    -print '<td align="center"><b>Total</b></td>';
    +print '<td align="center"><strong>Total</strong></td>';
     print '</tr>';
     
     $sql = "SELECT bk.numero_compte AS 'compte',";
    @@ -111,11 +111,11 @@ $resql = $db->query($sql);
     if ($resql) {
     	$i = 0;
     	$num = $db->num_rows($resql);
    -	
    +
     	while ( $i < $num ) {
    -		
    +
     		$row = $db->fetch_row($resql);
    -		
    +
     		print '<tr class="oddeven"><td width="14%">' . length_accountg($row[0]) . '</td>';
     		print '<td align="right" width="6.5%">' . price($row[1]) . '</td>';
     		print '<td align="right" width="6.5%">' . price($row[2]) . '</td>';
    @@ -129,9 +129,9 @@ if ($resql) {
     		print '<td align="right" width="6.5%">' . price($row[10]) . '</td>';
     		print '<td align="right" width="6.5%">' . price($row[11]) . '</td>';
     		print '<td align="right" width="6.5%">' . price($row[12]) . '</td>';
    -		print '<td align="right" width="8%"><b>' . price($row[13]) . '</b></td>';
    +		print '<td align="right" width="8%"><strong>' . price($row[13]) . '</strong></td>';
     		print '</tr>';
    -		
    +
     		$i ++;
     	}
     	$db->free($resql);
    @@ -140,5 +140,6 @@ if ($resql) {
     }
     print "</table>\n";
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php
    index 92c5713880c..567fccaeab1 100644
    --- a/htdocs/accountancy/bookkeeping/card.php
    +++ b/htdocs/accountancy/bookkeeping/card.php
    @@ -1,8 +1,9 @@
     <?php
    -/* Copyright (C) 2013-2017 Olivier Geffroy      <jeff@jeffinfo.com>
    - * Copyright (C) 2013-2017 Florian Henry        <florian.henry@open-concept.pro>
    - * Copyright (C) 2013-2018 Alexandre Spangaro   <aspangaro@zendsi.com>
    - * Copyright (C) 2017      Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2013-2017  Olivier Geffroy         <jeff@jeffinfo.com>
    + * Copyright (C) 2013-2017  Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2013-2018  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2017       Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -31,6 +32,7 @@ require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php';
     require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php';
     require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.facture.class.php';
     require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array("accountancy", "bills", "compta"));
    @@ -48,12 +50,21 @@ if ($user->societe_id > 0) {
     
     $mesg = '';
     
    -$account_number = GETPOST('account_number','alphanohtml');
    +$accountingaccount = new AccountingAccount($db);
    +$accountingjournal = new AccountingJournal($db);
    +
    +$accountingaccount_number = GETPOST('accountingaccount_number','alphanohtml');
    +$accountingaccount->fetch(null, $accountingaccount_number, true);
    +$accountingaccount_label = $accountingaccount->label;
    +
    +$journal_code = GETPOST('code_journal','alpha');
    +$accountingjournal->fetch(null, $journal_code);
    +$journal_label = $accountingjournal->label;
    +
     $subledger_account = GETPOST('subledger_account','alphanohtml');
     if ($subledger_account == - 1) {
     	$subledger_account = null;
     }
    -$label_compte = GETPOST('label_compte','alphanohtml');
     $label_operation= GETPOST('label_operation','alphanohtml');
     $debit = price2num(GETPOST('debit','alpha'));
     $credit = price2num(GETPOST('credit','alpha'));
    @@ -79,7 +90,7 @@ if ($action == "confirm_update") {
     		setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
     		$action='update';
     	}
    -	if (empty($account_number) || $account_number == '-1')
    +	if (empty($accountingaccount_number) || $accountingaccount_number == '-1')
     	{
     		$error++;
     		setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("AccountAccountingShort")), null, 'errors');
    @@ -95,9 +106,9 @@ if ($action == "confirm_update") {
     			$error++;
     			setEventMessages($object->error, $object->errors, 'errors');
     		} else {
    -			$object->numero_compte = $account_number;
    +			$object->numero_compte = $accountingaccount_number;
     			$object->subledger_account = $subledger_account;
    -			$object->label_compte = $label_compte;
    +			$object->label_compte = $accountingaccount_label;
     			$object->label_operation= $label_operation;
     			$object->debit = $debit;
     			$object->credit = $credit;
    @@ -138,7 +149,7 @@ else if ($action == "add") {
     		setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
     		$action='';
     	}
    -	if (empty($account_number) || $account_number == '-1')
    +	if (empty($accountingaccount_number) || $accountingaccount_number == '-1')
     	{
     		$error++;
     		setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("AccountAccountingShort")), null, 'errors');
    @@ -148,9 +159,9 @@ else if ($action == "add") {
     	if (! $error) {
     		$object = new BookKeeping($db);
     
    -		$object->numero_compte = $account_number;
    +		$object->numero_compte = $accountingaccount_number;
     		$object->subledger_account = $subledger_account;
    -		$object->label_compte = $label_compte;
    +		$object->label_compte = $accountingaccount_label;
     		$object->label_operation= $label_operation;
     		$object->debit = $debit;
     		$object->credit = $credit;
    @@ -158,7 +169,8 @@ else if ($action == "add") {
     		$object->doc_type = GETPOST('doc_type','alpha');
     		$object->piece_num = $piece_num;
     		$object->doc_ref = GETPOST('doc_ref','alpha');
    -		$object->code_journal = GETPOST('code_journal','alpha');
    +		$object->code_journal = $journal_code;
    +		$object->journal_label = $journal_label;
     		$object->fk_doc = GETPOST('fk_doc','alpha');
     		$object->fk_docdet = GETPOST('fk_docdet','alpha');
     
    @@ -211,12 +223,12 @@ else if ($action == "confirm_create") {
     
     	$object = new BookKeeping($db);
     
    -	if (! GETPOST('code_journal','alpha') || GETPOST('code_journal','alpha') == '-1') {
    +	if (! $journal_code || $journal_code == '-1') {
     		setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Journal")), null, 'errors');
     		$action='create';
     		$error++;
     	}
    -	if (! GETPOST('next_num_mvt'))
    +	if (! GETPOST('next_num_mvt', 'alpha'))
     	{
     		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("NumPiece")), null, 'errors');
     		$error++;
    @@ -231,7 +243,8 @@ else if ($action == "confirm_create") {
     		$object->doc_type = GETPOST('doc_type','alpha');
     		$object->piece_num = GETPOST('next_num_mvt','alpha');
     		$object->doc_ref = GETPOST('doc_ref','alpha');
    -		$object->code_journal = GETPOST('code_journal','alpha');
    +		$object->code_journal = $journal_code;
    +		$object->journal_label = $journal_label;
     		$object->fk_doc = 0;
     		$object->fk_docdet = 0;
     		$object->montant = 0;
    @@ -252,7 +265,7 @@ else if ($action == "confirm_create") {
     }
     
     if ($action == 'setdate') {
    -	$datedoc = dol_mktime(0, 0, 0, GETPOST('doc_datemonth'), GETPOST('doc_dateday'), GETPOST('doc_dateyear'));
    +	$datedoc = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int'));
     	$result = $object->updateByMvt($piece_num,'doc_date',$db->idate($datedoc),$mode);
     	if ($result < 0) {
     		setEventMessages($object->error, $object->errors, 'errors');
    @@ -266,8 +279,8 @@ if ($action == 'setdate') {
     }
     
     if ($action == 'setjournal') {
    -	$journaldoc = trim(GETPOST('code_journal','alpha'));
    -	$result = $object->updateByMvt($piece_num, 'code_journal', $journaldoc, $mode);
    +	$result = $object->updateByMvt($piece_num, 'code_journal', $journal_code, $mode);
    +	$result = $object->updateByMvt($piece_num, 'journal_label', $journal_label, $mode);
     	if ($result < 0) {
     		setEventMessages($object->error, $object->errors, 'errors');
     	} else {
    @@ -311,7 +324,6 @@ if ($action == 'valid') {
     
     $html = new Form($db);
     $formaccounting = new FormAccounting($db);
    -$accountjournal = new AccountingJournal($db);
     
     llxHeader('', $langs->trans("CreateMvts"));
     
    @@ -350,13 +362,13 @@ if ($action == 'create')
     	print '<tr>';
     	print '<td class="titlefieldcreate fieldrequired">' . $langs->trans("Docdate") . '</td>';
     	print '<td>';
    -	print $html->select_date('', 'doc_date', '', '', '', "create_mvt", 1, 1);
    +	print $html->selectDate('', 'doc_date', '', '', '', "create_mvt", 1, 1);
     	print '</td>';
     	print '</tr>';
     
     	print '<tr>';
     	print '<td class="fieldrequired">' . $langs->trans("Codejournal") . '</td>';
    -	print '<td>' . $formaccounting->select_journal(GETPOST('code_journal'),'code_journal',0,1,array(),1,1) . '</td>';
    +	print '<td>' . $formaccounting->select_journal($journal_code,'code_journal',0,0,1,1) . '</td>';
     	print '</tr>';
     
     	print '<tr>';
    @@ -432,7 +444,7 @@ if ($action == 'create')
     			print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
     			print '<input type="hidden" name="action" value="setdate">';
     			print '<input type="hidden" name="mode" value="'.$mode.'">';
    -			$form->select_date($object->doc_date ? $object->doc_date : - 1, 'doc_date', '', '', '', "setdate");
    +			print $form->selectDate($object->doc_date ? $object->doc_date : - 1, 'doc_date', '', '', '', "setdate");
     			print '<input type="submit" class="button" value="' . $langs->trans('Modify') . '">';
     			print '</form>';
     		} else {
    @@ -459,7 +471,7 @@ if ($action == 'create')
     			print '<input type="submit" class="button" value="' . $langs->trans('Modify') . '">';
     			print '</form>';
     		} else {
    -		print $object->code_journal ;
    +			print $object->code_journal ;
     		}
     		print '</td>';
     		print '</tr>';
    @@ -589,7 +601,6 @@ if ($action == 'create')
     
     				print_liste_field_titre("AccountAccountingShort");
     				print_liste_field_titre("SubledgerAccount");
    -				print_liste_field_titre("LabelAccount");
     				print_liste_field_titre("LabelOperation");
     				print_liste_field_titre("Debit", "", "", "", "", 'align="right"');
     				print_liste_field_titre("Credit", "", "", "", "", 'align="right"');
    @@ -604,7 +615,7 @@ if ($action == 'create')
     
     					if ($action == 'update' && $line->id == $id) {
     						print '<td>';
    -						print $formaccounting->select_account($line->numero_compte, 'account_number', 1, array (), 1, 1, '');
    +						print $formaccounting->select_account($line->numero_compte, 'accountingaccount_number', 1, array (), 1, 1, '');
     						print '</td>';
     						print '<td>';
     						// TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because it does not
    @@ -618,7 +629,6 @@ if ($action == 'create')
     							print '<input type="text" name="subledger_account" value="'.$line->subledger_account.'">';
     						}
     						print '</td>';
    -						print '<td><input type="text" class="minwidth100" name="label_compte" value="' . $line->label_compte . '"/></td>';
     						print '<td><input type="text" class="minwidth200" name="label_operation" value="' . $line->label_operation. '"/></td>';
     						print '<td align="right"><input type="text" size="6" class="right" name="debit" value="' . price($line->debit) . '"/></td>';
     						print '<td align="right"><input type="text" size="6" class="right" name="credit" value="' . price($line->credit) . '"/></td>';
    @@ -627,9 +637,9 @@ if ($action == 'create')
     						print '<input type="submit" class="button" name="update" value="' . $langs->trans("Update") . '">';
     						print '</td>';
     					} else {
    -						print '<td>' . length_accountg($line->numero_compte) . '</td>';
    +						$accountingaccount->fetch(null, $line->numero_compte, true);
    +						print '<td>' . $accountingaccount->getNomUrl(0,1,1,'',0) . '</td>';
     						print '<td>' . length_accounta($line->subledger_account) . '</td>';
    -						print '<td>' . $line->label_compte . '</td>';
     						print '<td>' . $line->label_operation. '</td>';
     						print '<td align="right">' . price($line->debit) . '</td>';
     						print '<td align="right">' . price($line->credit) . '</td>';
    @@ -662,7 +672,7 @@ if ($action == 'create')
     				if ($action == "" || $action == 'add') {
     					print '<tr class="oddeven">';
     					print '<td>';
    -					print $formaccounting->select_account($account_number, 'account_number', 1, array (), 1, 1, '');
    +					print $formaccounting->select_account($accountingaccount_number, 'accountingaccount_number', 1, array (), 1, 1, '');
     					print '</td>';
     					print '<td>';
     					// TODO For the moment we keep a fre input text instead of a combo. The select_auxaccount has problem because it does not
    @@ -676,7 +686,6 @@ if ($action == 'create')
     						print '<input type="text" name="subledger_account" value="">';
     					}
     					print '</td>';
    -					print '<td><input type="text" class="minwidth100" name="label_compte" value=""/></td>';
     					print '<td><input type="text" class="minwidth200" name="label_operation" value=""/></td>';
     					print '<td align="right"><input type="text" size="6" class="right" name="debit" value=""/></td>';
     					print '<td align="right"><input type="text" size="6" class="right" name="credit" value=""/></td>';
    @@ -714,5 +723,6 @@ if ($action == 'create')
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php
    index 476df6d3cab..4b0ab08d1b1 100644
    --- a/htdocs/accountancy/bookkeeping/list.php
    +++ b/htdocs/accountancy/bookkeeping/list.php
    @@ -1,8 +1,9 @@
     <?php
    -/* Copyright (C) 2013-2016  Olivier Geffroy      <jeff@jeffinfo.com>
    - * Copyright (C) 2013-2016  Florian Henry        <florian.henry@open-concept.pro>
    - * Copyright (C) 2013-2017  Alexandre Spangaro   <aspangaro@zendsi.com>
    - * Copyright (C) 2016-2017  Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2013-2016  Olivier Geffroy         <jeff@jeffinfo.com>
    + * Copyright (C) 2013-2016  Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2013-2018  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2016-2017  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -35,10 +36,10 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
     // Load translation files required by the page
     $langs->loadLangs(array("accountancy"));
     
    -$action = GETPOST('action', 'alpha');
    +$action = GETPOST('action', 'aZ09');
     $search_mvt_num = GETPOST('search_mvt_num', 'int');
    -$search_doc_type = GETPOST("search_doc_type");
    -$search_doc_ref = GETPOST("search_doc_ref");
    +$search_doc_type = GETPOST("search_doc_type", 'alpha');
    +$search_doc_ref = GETPOST("search_doc_ref", 'alpha');
     $search_date_start = dol_mktime(0, 0, 0, GETPOST('search_date_startmonth', 'int'), GETPOST('search_date_startday', 'int'), GETPOST('search_date_startyear', 'int'));
     $search_date_end = dol_mktime(0, 0, 0, GETPOST('search_date_endmonth', 'int'), GETPOST('search_date_endday', 'int'), GETPOST('search_date_endyear', 'int'));
     $search_doc_date = dol_mktime(0, 0, 0, GETPOST('doc_datemonth', 'int'), GETPOST('doc_dateday', 'int'), GETPOST('doc_dateyear', 'int'));
    @@ -78,6 +79,7 @@ $search_direction = GETPOST('search_direction', 'alpha');
     $search_debit = GETPOST('search_debit', 'alpha');
     $search_credit = GETPOST('search_credit', 'alpha');
     $search_ledger_code = GETPOST('search_ledger_code', 'alpha');
    +$search_lettering_code = GETPOST('search_lettering_code', 'alpha');
     
     // Load variable for pagination
     $limit = GETPOST('limit','int')?GETPOST('limit', 'int'):(empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION)?$conf->liste_limit:$conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION);
    @@ -137,11 +139,14 @@ $arrayfields=array(
     	'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.lettering_code'=>array('label'=>$langs->trans("LetteringCode"), 'checked'=>1),
     	't.code_journal'=>array('label'=>$langs->trans("Codejournal"), 'checked'=>1),
     	't.date_creation'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0),
     	't.tms'=>array('label'=>$langs->trans("DateModification"), 'checked'=>0),
     );
     
    +if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) unset($arrayfields['t.lettering_code']);
    +
     
     /*
      * Actions
    @@ -175,6 +180,7 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
     	$search_date_modification_end = '';
     	$search_debit = '';
     	$search_credit = '';
    +	$search_lettering_code = '';
     }
     
     // Must be after the remove filter action, before the export.
    @@ -271,6 +277,10 @@ if (! empty($search_credit)) {
     	$filter['t.credit'] = $search_credit;
     	$param .= '&search_credit=' . urlencode($search_credit);
     }
    +if (! empty($search_lettering_code)) {
    +	$filter['t.lettering_code'] = $search_lettering_code;
    +	$param .= '&search_lettering_code=' . urlencode($search_lettering_code);
    + }
     
     
     if ($action == 'delbookkeeping') {
    @@ -336,7 +346,7 @@ if ($action == 'delmouvconfirm') {
     	}
     }
     
    -// Export into a file with format defined into setup
    +// Export into a file with format defined into setup (FEC, CSV, ...)
     if ($action == 'export_file') {
     
     	$result = $object->fetchAll($sortorder, $sortfield, 0, 0, $filter);
    @@ -349,7 +359,9 @@ if ($action == 'export_file') {
     	{
     		$accountancyexport = new AccountancyExport($db);
     		$accountancyexport->export($object->lines);
    -		if (!empty($accountancyexport->errors)) {
    +
    +		if (!empty($accountancyexport->errors))
    +		{
     			setEventMessages('', $accountancyexport->errors, 'errors');
     		}
     		exit;
    @@ -465,11 +477,11 @@ if (! empty($arrayfields['t.doc_date']['checked']))
     	print '<td class="liste_titre center">';
     	print '<div class="nowrap">';
     	print $langs->trans('From') . ' ';
    -	print $form->select_date($search_date_start?$search_date_start:-1, 'search_date_start', 0, 0, 1);
    +	print $form->selectDate($search_date_start?$search_date_start:-1, 'search_date_start', 0, 0, 1);
     	print '</div>';
     	print '<div class="nowrap">';
     	print $langs->trans('to') . ' ';
    -	print $form->select_date($search_date_end?$search_date_end:-1, 'search_date_end', 0, 0, 1);
    +	print $form->selectDate($search_date_end?$search_date_end:-1, 'search_date_end', 0, 0, 1);
     	print '</div>';
     	print '</td>';
     }
    @@ -545,6 +557,13 @@ if (! empty($arrayfields['t.credit']['checked']))
     	print '<input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).'">';
     	print '</td>';
     }
    +// 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 '</td>';
    +}
     // Code journal
     if (! empty($arrayfields['t.code_journal']['checked']))
     {
    @@ -556,11 +575,11 @@ if (! empty($arrayfields['t.date_creation']['checked']))
     	print '<td class="liste_titre center">';
     	print '<div class="nowrap">';
     	print $langs->trans('From') . ' ';
    -	print $form->select_date($search_date_creation_start, 'date_creation_start', 0, 0, 1);
    +	print $form->selectDate($search_date_creation_start, 'date_creation_start', 0, 0, 1);
     	print '</div>';
     	print '<div class="nowrap">';
     	print $langs->trans('to') . ' ';
    -	print $form->select_date($search_date_creation_end, 'date_creation_end', 0, 0, 1);
    +	print $form->selectDate($search_date_creation_end, 'date_creation_end', 0, 0, 1);
     	print '</div>';
     	print '</td>';
     }
    @@ -570,11 +589,11 @@ if (! empty($arrayfields['t.tms']['checked']))
     	print '<td class="liste_titre center">';
     	print '<div class="nowrap">';
     	print $langs->trans('From') . ' ';
    -	print $form->select_date($search_date_modification_start, 'date_modification_start', 0, 0, 1);
    +	print $form->selectDate($search_date_modification_start, 'date_modification_start', 0, 0, 1);
     	print '</div>';
     	print '<div class="nowrap">';
     	print $langs->trans('to') . ' ';
    -	print $form->select_date($search_date_modification_end, 'date_modification_end', 0, 0, 1);
    +	print $form->selectDate($search_date_modification_end, 'date_modification_end', 0, 0, 1);
     	print '</div>';
     	print '</td>';
     }
    @@ -594,6 +613,7 @@ if (! empty($arrayfields['t.subledger_account']['checked']))	print_liste_field_t
     if (! empty($arrayfields['t.label_operation']['checked']))		print_liste_field_titre($arrayfields['t.label_operation']['label'], $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder);
     if (! empty($arrayfields['t.debit']['checked']))				print_liste_field_titre($arrayfields['t.debit']['label'], $_SERVER['PHP_SELF'], "t.debit", "", $param, 'align="right"', $sortfield, $sortorder);
     if (! empty($arrayfields['t.credit']['checked']))				print_liste_field_titre($arrayfields['t.credit']['label'], $_SERVER['PHP_SELF'], "t.credit", "", $param, 'align="right"', $sortfield, $sortorder);
    +if (! empty($arrayfields['t.lettering_code']['checked']))		print_liste_field_titre($arrayfields['t.lettering_code']['label'], $_SERVER['PHP_SELF'], "t.lettering_code", "", $param, 'align="center"', $sortfield, $sortorder);
     if (! empty($arrayfields['t.code_journal']['checked']))			print_liste_field_titre($arrayfields['t.code_journal']['label'], $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder);
     if (! empty($arrayfields['t.date_creation']['checked']))		print_liste_field_titre($arrayfields['t.date_creation']['label'], $_SERVER['PHP_SELF'], "t.date_creation", "", $param, 'align="center"', $sortfield, $sortorder);
     if (! empty($arrayfields['t.tms']['checked']))					print_liste_field_titre($arrayfields['t.tms']['label'], $_SERVER['PHP_SELF'], "t.tms", "", $param, 'align="center"', $sortfield, $sortorder);
    @@ -678,6 +698,13 @@ if ($num > 0)
     			$totalarray['totalcredit'] += $line->credit;
     		}
     
    +		// Lettering code
    +		if (! empty($arrayfields['t.lettering_code']['checked']))
    +		{
    +			print '<td align="center">' . $line->lettering_code . '</td>';
    +			if (! $i) $totalarray['nbfield']++;
    +		}
    +
     		// Journal code
     		if (! empty($arrayfields['t.code_journal']['checked']))
     		{
    @@ -724,15 +751,14 @@ if ($num > 0)
     			$i++;
     				if ($i == 1)
     				{
    -					if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
    -					else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +					if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +					else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     				}
     				elseif ($totalarray['totaldebitfield'] == $i)  print '<td align="right">'.price($totalarray['totaldebit']).'</td>';
     				elseif ($totalarray['totalcreditfield'] == $i) print '<td align="right">'.price($totalarray['totalcredit']).'</td>';
     				else print '<td></td>';
     		}
     		print '</tr>';
    -
     	}
     }
     
    @@ -747,6 +773,6 @@ print '</div>';
     
     print '</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php
    index 80a4f0db5e8..c5726901e2e 100644
    --- a/htdocs/accountancy/bookkeeping/listbyaccount.php
    +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php
    @@ -3,6 +3,7 @@
      * Copyright (C) 2013-2016  Olivier Geffroy     <jeff@jeffinfo.com>
      * Copyright (C) 2013-2016  Florian Henry       <florian.henry@open-concept.pro>
      * Copyright (C) 2013-2018  Alexandre Spangaro  <aspangaro@zendsi.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -287,10 +288,10 @@ print '</td>';
     print '<td class="liste_titre"></td>';
     print '<td class="liste_titre" align="center">';
     print $langs->trans('From') . ': ';
    -print $form->select_date($search_date_start, 'search_date_start', 0, 0, 1);
    +print $form->selectDate($search_date_start, 'search_date_start', 0, 0, 1);
     print '<br>';
     print $langs->trans('to') . ': ';
    -print $form->select_date($search_date_end, 'search_date_end', 0, 0, 1);
    +print $form->selectDate($search_date_end, 'search_date_end', 0, 0, 1);
     print '</td>';
     print '<td class="liste_titre"><input type="text" size="7" class="flat" name="search_doc_ref" value="' . dol_escape_htmltag($search_doc_ref) . '"/></td>';
     print '<td class="liste_titre"><input type="text" size="7" class="flat" name="search_label_operation" value="' . dol_escape_htmltag($search_label_operation) . '"/></td>';
    @@ -421,5 +422,6 @@ print '</tr>';
     print "</table>";
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php b/htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php
    similarity index 60%
    rename from htdocs/accountancy/bookkeeping/thirdparty_lettrage.php
    rename to htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php
    index 9bf287bf3c9..3fdda686eab 100644
    --- a/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php
    +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php
    @@ -2,8 +2,9 @@
     /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005      Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2013      Olivier Geffroy      <jeff@jeffinfo.com>
    - * Copyright (C) 2013      Florian Henry	      <florian.henry@open-concept.pro>
    - * Copyright (C) 2013      Alexandre Spangaro   <alexandre.spangaro@gmail.com>
    + * Copyright (C) 2013      Florian Henry	    <florian.henry@open-concept.pro>
    + * Copyright (C) 2013-2018 Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2018      Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -21,12 +22,11 @@
      */
     
     /**
    - * \file accounting/bookkeeping/thirdparty_lettrage.php
    - * \ingroup Advanced accountancy
    - * \brief Onglet de gestion de parametrages des ventilations
    + * \file        htdocs/accountancy/bookkeeping/thirdparty_lettering_customer.php
    + * \ingroup     accountancy
    + * \brief       Tab to manage customer lettering
      */
     require '../../main.inc.php';
    -
     require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php';
     require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php';
     require_once DOL_DOCUMENT_ROOT . '/accountancy/class/lettering.class.php';
    @@ -34,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
     
     // Load translation files required by the page
    -$langs->loadLangs(array("compta"));
    +$langs->loadLangs(array("compta","accountancy"));
     
     $action = GETPOST('action', 'aZ09');
     $massaction = GETPOST('massaction', 'alpha');
    @@ -61,11 +61,10 @@ $search_year = GETPOST("search_year", 'int');
     $search_doc_type = GETPOST("search_doc_type", 'alpha');
     $search_doc_ref = GETPOST("search_doc_ref", 'alpha');
     
    -$lettering = GETPOST('lettering');
    +$lettering = GETPOST('lettering', 'alpha');
     if (! empty($lettering)) {
     	$action = $lettering;
     }
    -$toselect = GETPOST('toselect', 'array');
     
     // Did we click on purge search criteria ?
     // All tests are required to be compatible with all browsers
    @@ -79,16 +78,15 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x'
     $socid = GETPOST("socid", 'int');
     // if ($user->societe_id) $socid=$user->societe_id;
     
    +$lettering = new Lettering($db);
     $object = new Societe($db);
     $object->id = $socid;
     $result = $object->fetch($socid);
    -if ($result < 0) {
    -	setEventMessage($object->error, 'errors');
    +if ($result < 0)
    +{
    +	setEventMessages($object->error, $object->errors, 'errors');
     }
     
    -$form = new Form($db);
    -$BookKeeping = new lettering($db);
    -$formaccounting = new FormAccounting($db);
     
     /*
      * Action
    @@ -96,82 +94,49 @@ $formaccounting = new FormAccounting($db);
     
     if ($action == 'lettering') {
     
    -	$result = $BookKeeping->updateLettrage($toselect);
    +	$result = $lettering->updateLettering($toselect);
     
     	if ($result < 0) {
    -		setEventMessages('', $BookKeeping->errors, 'errors');
    -		$error ++;
    +		setEventMessages('', $lettering->errors, 'errors');
    +		$error++;
     	}
     }
     
     if ($action == 'autolettrage') {
     
    -	$result = $BookKeeping->lettrageTiers($socid);
    +	$result = $lettering->letteringThirdparty($socid);
     
     	if ($result < 0) {
    -		setEventMessages('', $BookKeeping->errors, 'errors');
    -		$error ++;
    +		setEventMessages('', $lettering->errors, 'errors');
    +		$error++;
     	}
     }
     
    -llxHeader('', 'Compta - Grand Livre');
     
    -/*
    - * Affichage onglets
    +	/*
    + * View
      */
    +
    +$form = new Form($db);
    +$formaccounting = new FormAccounting($db);
    +
    +$title=$object->name." - ".$langs->trans('TabLetteringCustomer');
    +$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
    +llxHeader('',$title,$help_url);
    +
     $head = societe_prepare_head($object);
     
     dol_htmloutput_mesg(is_numeric($error) ? '' : $error, $errors, 'error');
     
    -dol_fiche_head($head, 'accounting', $langs->trans("ThirdParty"), 0, 'company');
    +dol_fiche_head($head, 'lettering_customer', $langs->trans("ThirdParty"), 0, 'company');
     
    -print '<table width="100%" class="border">';
    -print '<tr><td width="30%">' . $langs->trans("ThirdPartyName") . '</td><td width="70%" colspan="3">';
    -$object->next_prev_filter = "te.fournisseur = 1";
    -print $form->showrefnav($object, 'socid', '', ($user->societe_id ? 0 : 1), 'rowid', 'nom', '', '');
    -print '</td></tr>';
    +$linkback = '<a href="'.DOL_URL_ROOT.'/societe/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
     
    -if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field
    -{
    -	print '<tr><td>' . $langs->trans('Prefix') . '</td><td colspan="3">' . $object->prefix_comm . '</td></tr>';
    -}
    +dol_banner_tab($object, 'socid', $linkback, ($user->societe_id?0:1), 'rowid', 'nom', '', '', 0, '', '', 'arearefnobottom');
     
    -print '<tr>';
    -print '<td class="nowrap">' . $langs->trans("CustomerCode") . '</td><td colspan="3">';
    -print $object->code_client;
    -if ($object->check_codeclient() != 0)
    -	print ' <font class="error">(' . $langs->trans("WrongCustomerCode") . ')</font>';
    -print '</td>';
    -print '</tr>';
    +dol_fiche_end();
     
    -print '<tr>';
    -print '<td>';
    -print $form->editfieldkey("CustomerAccountancyCode", 'customeraccountancycode', $object->code_compta, $object, $user->rights->societe->creer);
    -print '</td><td colspan="3">';
    -print $form->editfieldval("CustomerAccountancyCode", 'customeraccountancycode', $object->code_compta, $object, $user->rights->societe->creer);
    -print '</td>';
    -print '</tr>';
    -
    -// Address
    -print '<tr><td valign="top">' . $langs->trans("Address") . '</td><td colspan="3">';
    -dol_print_address($object->address, 'gmap', 'thirdparty', $object->id);
    -print '</td></tr>';
    -
    -// Zip / Town
    -print '<tr><td class="nowrap">' . $langs->trans("Zip") . ' / ' . $langs->trans("Town") . '</td><td colspan="3">' . $object->zip . (($object->zip && $object->town) ? ' / ' : '') . $object->town . '</td>';
    -print '</tr>';
    -
    -// Country
    -print '<tr><td>' . $langs->trans("Country") . '</td><td colspan="3">';
    -// $img=picto_from_langcode($object->country_code);
    -$img = '';
    -if ($object->isInEEC())
    -	print $form->textwithpicto(($img ? $img . ' ' : '') . $object->country, $langs->trans("CountryIsInEEC"), 1, 0);
    -else
    -	print ($img ? $img . ' ' : '') . $object->country;
    -print '</td></tr>';
    -
    -print '</table>';
    +print '<br>';
     
     $sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, ";
     $sql .= " bk.subledger_account, bk.numero_compte , bk.label_compte, bk.debit, ";
    @@ -208,7 +173,7 @@ while ( $obj = $db->fetch_object($resql) ) {
     
     $sql .= $db->plimit($limit + 1, $offset);
     
    -dol_syslog("/accountancy/bookkeeping/thirdparty_lettrage.php", LOG_DEBUG);
    +dol_syslog("/accountancy/bookkeeping/thirdparty_lettering_customer.php", LOG_DEBUG);
     $resql = $db->query($sql);
     if (! $resql) {
     	dol_print_error($db);
    @@ -217,7 +182,7 @@ if (! $resql) {
     
     $num = $db->num_rows($resql);
     
    -dol_syslog("/accountancy/bookkeeping/thirdparty_lettrage.php", LOG_DEBUG);
    +dol_syslog("/accountancy/bookkeeping/thirdparty_lettering_customer.php", LOG_DEBUG);
     if ($resql) {
     	$i = 0;
     
    @@ -231,85 +196,76 @@ if ($resql) {
     	print_liste_field_titre("Doctype", $_SERVER["PHP_SELF"], "bk.doc_type", "", $param, "", $sortfield, $sortorder);
     	print_liste_field_titre("Docdate", $_SERVER["PHP_SELF"], "bk.doc_date", "", $param, "", $sortfield, $sortorder);
     	print_liste_field_titre("Docref", $_SERVER["PHP_SELF"], "bk.doc_ref", "", $param, "", $sortfield, $sortorder);
    -	print_liste_field_titre("Labelcompte", $_SERVER["PHP_SELF"], "bk.label_compte", "", $param, "", $sortfield, $sortorder);
    +	print_liste_field_titre("LabelAccount", $_SERVER["PHP_SELF"], "bk.label_compte", "", $param, "", $sortfield, $sortorder);
     	print_liste_field_titre("Debit", $_SERVER["PHP_SELF"], "bk.debit", "", $param, "", $sortfield, $sortorder);
     	print_liste_field_titre("Credit", $_SERVER["PHP_SELF"], "bk.credit", "", $param, "", $sortfield, $sortorder);
    -	print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "bk.montant", "", $param, "", $sortfield, $sortorder);
    -	print_liste_field_titre("Sens", $_SERVER["PHP_SELF"], "bk.sens", "", $param, "", $sortfield, $sortorder);
    +	print_liste_field_titre("Balancing", $_SERVER["PHP_SELF"], "", "", $param, "", $sortfield, $sortorder);
     	print_liste_field_titre("Codejournal", $_SERVER["PHP_SELF"], "bk.code_journal", "", $param, "", $sortfield, $sortorder);
    -	print_liste_field_titre("Solde", $_SERVER["PHP_SELF"], "", "", $param, "", $sortfield, $sortorder);
    -	print '<td></td>';
    +	print_liste_field_titre("LetteringCode", $_SERVER["PHP_SELF"], "bk.lettering_code", "", $param, "", $sortfield, $sortorder);
     	print "</tr>\n";
     
     	print '<tr class="liste_titre">';
     	print '<td><input type="text" name="search_doc_type" value="' . $search_doc_type . '"></td>';
     	print '<td><input type="text" name="search_year" value="' . $search_year . '"></td>';
     	print '<td><input type="text" name="search_doc_refe" value="' . $search_doc_ref . '"></td>';
    -	print '<td colspan="7">&nbsp;</td>';
    +	print '<td colspan="5">&nbsp;</td>';
     	print '<td align="right">';
     	$searchpicto = $form->showFilterButtons();
     	print $searchpicto;
     	print '</td>';
     	print '</tr>';
     
    -	$var = false;
     	$solde = 0;
     	$tmp = '';
     	while ( $obj = $db->fetch_object($resql) ) {
     
    -		if ($tmp != $obj->lettering_code || empty($tmp))
    -			$tmp = $obj->lettering_code;
    +		if ($tmp != $obj->lettering_code || empty($tmp))						$tmp = $obj->lettering_code;
    +		/*if ($tmp != $obj->lettering_code || empty($obj->lettering_code))*/	$solde += ($obj->credit - $obj->debit);
     
    -		if ($tmp != $obj->lettering_code || empty($obj->lettering_code))
    -			$var = ! $var;
    -
    -		$solde += ($obj->credit - $obj->debit);
    -
    -		print "<tr $bc[$var]>";
    +		print '<tr class="oddeven">';
     
     		if (empty($obj->lettering_code)) {
     			print '<td><a href="' . dol_buildpath('/accountancy/bookkeeping/card.php', 1) . '?piece_num=' . $obj->piece_num . '">';
     			print img_edit();
     			print '</a>&nbsp;' . $obj->doc_type . '</td>' . "\n";
    -		} else
    +		} else {
     			print '<td>' . $obj->doc_type . '</td>' . "\n";
    +		}
     
     		print '<td>' . dol_print_date($db->jdate($obj->doc_date), 'day') . '</td>';
     		print '<td>' . $obj->doc_ref . '</td>';
     		print '<td>' . $obj->label_compte . '</td>';
    -		print '<td>' . price($obj->debit) . '</td>';
    -		print '<td>' . price($obj->credit) . '</td>';
    -		print '<td>' . price($obj->montant) . '</td>';
    -		print '<td>' . $obj->sens . '</td>';
    -		print '<td>' . $obj->code_journal . '</td>';
    -		print '<td>' . round($solde, 2) . '</td>';
    +		print '<td align="right">' . price($obj->debit) . '</td>';
    +		print '<td align="right">' . price($obj->credit) . '</td>';
    +		print '<td align="right">' . price(round($solde, 2)) . '</td>';
    +		print '<td align="center">' . $obj->code_journal . '</td>';
     
     		if (empty($obj->lettering_code)) {
     			print '<td class="nowrap" align="center"><input type="checkbox" class="flat checkforselect" name="toselect[]" id="toselect[]" value="' . $obj->rowid . '" /></td>';
     		} else
    -			print '<td>' . $obj->lettering_code . '</td>';
    +			print '<td align="center">' . $obj->lettering_code . '</td>';
     
     		print "</tr>\n";
     	}
     
     	print '<tr class="oddeven">';
    -
    -	print '<td colspan="4">Mouvement totaux</td>' . "\n";
    -	print '<td><strong>' . price($debit) . '</strong></td>';
    -	print '<td><strong>' . price($credit) . '</strong></td>';
    +	print '<td align="right" colspan="4">'.$langs->trans("Total").':</td>' . "\n";
    +	print '<td align="right"><strong>' . price($debit) . '</strong></td>';
    +	print '<td align="right"><strong>' . price($credit) . '</strong></td>';
     	print '<td colspan="5"></td>';
     	print "</tr>\n";
     
    -	print "<tr $bc[$var]>";
    -	print '<td colspan="9">Solde Comptable</td>' . "\n";
    -	print '<td><strong>' . price($credit - $debit) . '</strong></td>';
    -	print '<td colspan="5"></td>';
    +	print '<tr class="oddeven">';
    +	print '<td align="right" colspan="4">'.$langs->trans("Balancing").':</td>' . "\n";
    +	print '<td colspan="2">&nbsp;</td>';
    +	print '<td align="right"><strong>' . price($credit - $debit) . '</strong></td>';
    +	print '<td colspan="3"></td>';
     	print "</tr>\n";
     
     	print "</table>";
     
     	print '<input class="butAction" type="submit" value="lettering" name="lettering" id="lettering">';
    -	print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?socid=' . $object->id . '&action=autolettrage">' . $langs->trans('AccountancyAutoLettering') . '</a>';
    +	//print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?socid=' . $object->id . '&action=autolettering">' . $langs->trans('AccountancyAutoLettering') . '</a>';
     	print "</form>";
     	$db->free($resql);
     } else {
    @@ -319,4 +275,3 @@ if ($resql) {
     // End of page
     llxFooter();
     $db->close();
    -
    diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php b/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php
    similarity index 58%
    rename from htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php
    rename to htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php
    index cf278c26903..8cd51847b1e 100644
    --- a/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php
    +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php
    @@ -2,8 +2,9 @@
     /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005      Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2013      Olivier Geffroy      <jeff@jeffinfo.com>
    - * Copyright (C) 2013      Florian Henry	      <florian.henry@open-concept.pro>
    - * Copyright (C) 2013      Alexandre Spangaro   <alexandre.spangaro@gmail.com>
    + * Copyright (C) 2013      Florian Henry	    <florian.henry@open-concept.pro>
    + * Copyright (C) 2013-2018 Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2018      Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -21,14 +22,11 @@
      */
     
     /**
    - * \file accounting/bookkeeping/thirdparty_lettrage.php
    - * \ingroup Advanced accountancy
    - * \brief Tab to setup lettering
    + * \file    	htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php
    + * \ingroup 	Advanced accountancy
    + * \brief 		Tab to setup lettering
      */
    -
    -// Dolibarr environment
     require '../../main.inc.php';
    -
     require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php';
     require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php';
     require_once DOL_DOCUMENT_ROOT . '/accountancy/class/lettering.class.php';
    @@ -36,7 +34,7 @@ require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
     
     // Load translation files required by the page
    -$langs->loadLangs(array("compta"));
    +$langs->loadLangs(array("compta","accountancy"));
     
     $action = GETPOST('action', 'aZ09');
     $massaction = GETPOST('massaction', 'alpha');
    @@ -63,11 +61,10 @@ $search_year = GETPOST("search_year",'int');
     $search_doc_type = GETPOST("search_doc_type",'alpha');
     $search_doc_ref = GETPOST("search_doc_ref",'alpha');
     
    -$lettering = GETPOST('lettering');
    +$lettering = GETPOST('lettering', 'alpha');
     if (!empty($lettering)) {
     	$action=$lettering;
     }
    -$toselect = GETPOST('toselect','array');
     
     // Did we click on purge search criteria ?
     // All tests are required to be compatible with all browsers
    @@ -83,111 +80,62 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
     $socid = GETPOST("socid", 'int');
     // if ($user->societe_id) $socid=$user->societe_id;
     
    +$lettering = new Lettering($db);
     $object = new Societe($db);
     $object->id = $socid;
     $result = $object->fetch($socid);
    -if ($result<0) {
    -	setEventMessage($object->error,'errors');
    +if ($result<0)
    +{
    +	setEventMessages($object->error, $object->errors, 'errors');
     }
     
    -$form = new Form($db);
    -$BookKeeping = new lettering($db);
    -$formaccounting = new FormAccounting($db);
     
     /*
      * Action
      */
     if ($action == 'lettering') {
     
    -	$result = $BookKeeping->updateLettrage($toselect);
    +	$result = $lettering->updateLettering($toselect);
     
    -	// var_dump($result);
     	if ($result < 0) {
    -		setEventMessages('', $BookKeeping->errors, 'errors');
    -		$error ++;
    +		setEventMessages('', $lettering->errors, 'errors');
    +		$error++;
     	}
     }
     
     if ($action == 'autolettrage') {
     
    -	$result = $BookKeeping->lettrageTiers($socid);
    +	$result = $lettering->letteringThirdparty($socid);
     
     	if ($result < 0) {
    -		setEventMessages('', $BookKeeping->errors, 'errors');
    -		$error ++;
    +		setEventMessages('', $lettering->errors, 'errors');
    +		$error++;
     	}
     }
     
    -$title = 'AccountancyLettrage';
    -
    -llxHeader('', $title);
    -
    -
    -$param='';
    -if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    -if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    -if (!empty($search_year)) $param.='&search_year='.$search_year;
    -if (!empty($socid)) $param.='&socid='.$socid;
    -if (!empty($search_doc_type)) $param.='&search_doc_type='.$search_doc_type;
    -if (!empty($search_doc_ref)) $param.='&search_doc_ref='.$search_doc_ref;
    -
     
     /*
    - * Affichage onglets
    + * View
      */
    +
    +$form = new Form($db);
    +$formaccounting = new FormAccounting($db);
    +
    +$title=$object->name." - ".$langs->trans('TabLetteringSupplier');
    +$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
    +llxHeader('',$title,$help_url);
    +
     $head = societe_prepare_head($object);
     
     dol_htmloutput_mesg(is_numeric($error) ? '' : $error, $errors, 'error');
     
    -dol_fiche_head($head, 'accounting_supplier', $langs->trans("ThirdParty"), 0, 'company');
    +dol_fiche_head($head, 'lettering_supplier', $langs->trans("ThirdParty"), 0, 'company');
     
    -print '<table width="100%" class="border">';
    -print '<tr><td width="30%">' . $langs->trans("ThirdPartyName") . '</td><td width="70%" colspan="3">';
    -$object->next_prev_filter = "te.fournisseur = 1";
    -print $form->showrefnav($object, 'socid', '', ($user->societe_id ? 0 : 1), 'rowid', 'nom', '', '');
    -print '</td></tr>';
    +$linkback = '<a href="'.DOL_URL_ROOT.'/societe/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
     
    -if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field
    -{
    -	print '<tr><td>' . $langs->trans('Prefix') . '</td><td colspan="3">' . $object->prefix_comm . '</td></tr>';
    -}
    +dol_banner_tab($object, 'socid', $linkback, ($user->societe_id?0:1), 'rowid', 'nom', '', '', 0, '', '', 'arearefnobottom');
     
    -print '<tr>';
    -print '<td class="nowrap">' . $langs->trans("SupplierCode") . '</td><td colspan="3">';
    -print $object->code_fournisseur;
    -if ($object->check_codefournisseur() != 0)
    -	print ' <font class="error">(' . $langs->trans("WrongSupplierCode") . ')</font>';
    -print '</td>';
    -print '</tr>';
    -
    -print '<tr>';
    -print '<td>';
    -print $form->editfieldkey("SupplierAccountancyCode", 'supplieraccountancycode', $object->code_compta_fournisseur, $object, $user->rights->societe->creer);
    -print '</td><td colspan="3">';
    -print $form->editfieldval("SupplierAccountancyCode", 'supplieraccountancycode', $object->code_compta_fournisseur, $object, $user->rights->societe->creer);
    -print '</td>';
    -print '</tr>';
    -
    -// Address
    -print '<tr><td valign="top">' . $langs->trans("Address") . '</td><td colspan="3">';
    -dol_print_address($object->address, 'gmap', 'thirdparty', $object->id);
    -print '</td></tr>';
    -
    -// Zip / Town
    -print '<tr><td class="nowrap">' . $langs->trans("Zip") . ' / ' . $langs->trans("Town") . '</td><td colspan="3">' . $object->zip . (($object->zip && $object->town) ? ' / ' : '') . $object->town . '</td>';
    -print '</tr>';
    -
    -// Country
    -print '<tr><td>' . $langs->trans("Country") . '</td><td colspan="3">';
    -// $img=picto_from_langcode($object->country_code);
    -$img = '';
    -if ($object->isInEEC())
    -	print $form->textwithpicto(($img ? $img . ' ' : '') . $object->country, $langs->trans("CountryIsInEEC"), 1, 0);
    -else
    -	print ($img ? $img . ' ' : '') . $object->country;
    -print '</td></tr>';
    -
    -print '</table>';
    +dol_fiche_end();
     
     $sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, ";
     $sql .= " bk.subledger_account, bk.numero_compte , bk.label_compte, bk.debit, ";
    @@ -251,85 +199,76 @@ if ($resql) {
     	print_liste_field_titre("Doctype", $_SERVER["PHP_SELF"], "bk.doc_type","",$param,"",$sortfield,$sortorder);
     	print_liste_field_titre("Docdate", $_SERVER["PHP_SELF"], "bk.doc_date","",$param,"",$sortfield,$sortorder);
     	print_liste_field_titre("Docref", $_SERVER["PHP_SELF"], "bk.doc_ref","",$param,"",$sortfield,$sortorder);
    -	print_liste_field_titre("Labelcompte", $_SERVER["PHP_SELF"], "bk.label_compte","",$param,"",$sortfield,$sortorder);
    +	print_liste_field_titre("LabelAccount", $_SERVER["PHP_SELF"], "bk.label_compte","",$param,"",$sortfield,$sortorder);
     	print_liste_field_titre("Debit", $_SERVER["PHP_SELF"], "bk.debit","",$param,"",$sortfield,$sortorder);
     	print_liste_field_titre("Credit", $_SERVER["PHP_SELF"], "bk.credit","",$param,"",$sortfield,$sortorder);
    -	print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "bk.montant","",$param,"",$sortfield,$sortorder);
    -	print_liste_field_titre("Sens", $_SERVER["PHP_SELF"], "bk.sens","",$param,"",$sortfield,$sortorder);
    +	print_liste_field_titre("Balancing", $_SERVER["PHP_SELF"], "","",$param,"",$sortfield,$sortorder);
     	print_liste_field_titre("Codejournal", $_SERVER["PHP_SELF"], "bk.code_journal","",$param,"",$sortfield,$sortorder);
    -	print_liste_field_titre("Solde", $_SERVER["PHP_SELF"], "","",$param,"",$sortfield,$sortorder);
    -	print '<td></td>';
    +	print_liste_field_titre("LetteringCode", $_SERVER["PHP_SELF"], "bk.lettering_code", "", $param, "", $sortfield, $sortorder);
     	print "</tr>\n";
     
     	print '<tr class="liste_titre">';
     	print '<td><input type="text" name="search_doc_type" value="' . $search_doc_type . '"></td>';
     	print '<td><input type="text" name="search_year" value="' . $search_year . '"></td>';
     	print '<td><input type="text" name="search_doc_refe" value="' . $search_doc_ref . '"></td>';
    -	print '<td colspan="7">&nbsp;</td>';
    +	print '<td colspan="6">&nbsp;</td>';
     	print '<td align="right">';
     	$searchpicto=$form->showFilterButtons();
     	print $searchpicto;
     	print '</td>';
     	print '</tr>';
     
    -	$var = false;
     	$solde = 0;
     	$tmp = '';
     	while ($obj = $db->fetch_object($resql)) {
     
    -		if ($tmp != $obj->lettering_code || empty($tmp))
    -			$tmp = $obj->lettering_code;
    +		if ($tmp != $obj->lettering_code || empty($tmp))						$tmp = $obj->lettering_code;
    +		/*if ($tmp != $obj->lettering_code || empty($obj->lettering_code))*/	$solde += ($obj->credit - $obj->debit);
     
    -			if ($tmp != $obj->lettering_code || empty($obj->lettering_code))
    -			$var = ! $var;
    -
    -		$solde += ($obj->credit - $obj->debit);
    -
    -		print "<tr $bc[$var]>";
    +		print '<tr class="oddeven">';
     
     		if (empty($obj->lettering_code)) {
     			print '<td><a href="' . dol_buildpath('/accountancy/bookkeeping/card.php', 1) . '?piece_num=' . $obj->piece_num . '">';
     			print img_edit();
     			print '</a>&nbsp;' . $obj->doc_type . '</td>' . "\n";
    -		} else
    +		} else {
     			print '<td>' . $obj->doc_type . '</td>' . "\n";
    +		}
     
     		print '<td>' . dol_print_date($db->jdate($obj->doc_date), 'day') . '</td>';
     		print '<td>' . $obj->doc_ref . '</td>';
     		print '<td>' . $obj->label_compte . '</td>';
    -		print '<td>' . price($obj->debit) . '</td>';
    -		print '<td>' . price($obj->credit) . '</td>';
    -		print '<td>' . price($obj->montant) . '</td>';
    -		print '<td>' . $obj->sens . '</td>';
    -		print '<td>' . $obj->code_journal . '</td>';
    -		print '<td>' . round($solde, 2) . '</td>';
    +		print '<td align="right">' . price($obj->debit) . '</td>';
    +		print '<td align="right">' . price($obj->credit) . '</td>';
    +		print '<td align="right">' . price(round($solde, 2)) . '</td>';
    +		print '<td align="center">' . $obj->code_journal . '</td>';
     
     		if (empty($obj->lettering_code)) {
     			print '<td class="nowrap" align="center"><input type="checkbox" class="flat checkforselect" name="toselect[]" id="toselect[]" value="' . $obj->rowid . '" /></td>';
     		} else
    -			print '<td>' . $obj->lettering_code . '</td>';
    +			print '<td align="center">' . $obj->lettering_code . '</td>';
     
     		print "</tr>\n";
     	}
     
     	print '<tr class="oddeven">';
    -
    -	print '<td colspan="4">Mouvement totaux</td>' . "\n";
    -	print '<td><strong>' . price($debit) . '</strong></td>';
    -	print '<td><strong>' . price($credit) . '</strong></td>';
    +	print '<td align="right" colspan="4">'.$langs->trans("Total").':</td>' . "\n";
    +	print '<td align="right"><strong>' . price($debit) . '</strong></td>';
    +	print '<td align="right"><strong>' . price($credit) . '</strong></td>';
     	print '<td colspan="5"></td>';
     	print "</tr>\n";
     
    -	print "<tr $bc[$var]>";
    -	print '<td colspan="9">Solde Comptable</td>' . "\n";
    -	print '<td><strong>' . price($credit - $debit) . '</strong></td>';
    -	print '<td colspan="5"></td>';
    +	print '<tr class="oddeven">';
    +	print '<td align="right" colspan="4">'.$langs->trans("Balancing").':</td>' . "\n";
    +	print '<td colspan="2">&nbsp;</td>';
    +	print '<td align="right"><strong>' . price($credit - $debit) . '</strong></td>';
    +	print '<td colspan="3"></td>';
     	print "</tr>\n";
     
     	print "</table>";
     
    -	print '<input class="butAction" type="submit" value="lettering" name="lettering" id="lettering">';
    -	print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?socid=' . $object->id . '&action=autolettrage">'.$langs->trans('AccountancyAutoLettering').'</a>';
    +	print '<input class="butAction" type="submit" value="' . $langs->trans('AccountancyLettering') . '" name="lettering" id="lettering">';
    +	//print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?socid=' . $object->id . '&action=autolettrage">'.$langs->trans('AccountancyAutoLettering').'</a>';
     	print "</form>";
     	$db->free($resql);
     } else {
    diff --git a/htdocs/accountancy/class/accountancycategory.class.php b/htdocs/accountancy/class/accountancycategory.class.php
    index 9554a79c858..5b3282a3b29 100644
    --- a/htdocs/accountancy/class/accountancycategory.class.php
    +++ b/htdocs/accountancy/class/accountancycategory.class.php
    @@ -29,27 +29,97 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
     /**
      * Class to manage categories of an accounting account
      */
    -class AccountancyCategory 	// extends CommonObject
    +class AccountancyCategory // extends CommonObject
     {
    -	public $db;							//!< To store db handler
    -	public $error;							//!< To return error code (or message)
    -	public $errors=array();				//!< To return several error codes (or messages)
    -	public $element='c_accounting_category';			//!< Id that identify managed objects
    -	public $table_element='c_accounting_category';	//!< Name of table without prefix where object is stored
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -	public $id;
    +	/**
    +	 * @var string 		Error string
    +	 * @see             errors
    +	 */
    +	public $error;
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='c_accounting_category';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='c_accounting_category';
    +
    +	/**
    +     * @var int ID
    +     */
    +    public $id;
    +
    +	/**
    +	 * @var mixed Sample property 1
    +	 */
     	public $code;
    -	public $label;
    +
    +	/**
    +     * @var string Accountancy Category label
    +     */
    +    public $label;
    +
    +    /**
    +	 * @var mixed Sample property 1
    +	 */
     	public $range_account;
    +
    +	/**
    +	 * @var int Sens of the account:  0: credit - debit, 1: debit - credit
    +	 */
     	public $sens;
    +
    +	/**
    +	 * @var mixed Sample property 1
    +	 */
     	public $category_type;
    +
    +	/**
    +	 * @var mixed Sample property 1
    +	 */
     	public $formula;
    +
    +	/**
    +	 * @var mixed Sample property 1
    +	 */
     	public $position;
    +
    +	/**
    +	 * @var mixed Sample property 1
    +	 */
     	public $fk_country;
    +
    +	/**
    +	 * @var mixed Sample property 1
    +	 */
     	public $active;
     
    +	/**
    +	 * @var mixed Sample property 1
    +	 */
     	public $lines_cptbk;
    +
    +	/**
    +	 * @var mixed Sample property 1
    +	 */
     	public $lines_display;
    +
    +	/**
    +	 * @var mixed Sample property 1
    +	 */
     	public $sdc;
     
     
    @@ -93,16 +163,17 @@ class AccountancyCategory 	// extends CommonObject
     
     		// Insert request
     		$sql = "INSERT INTO ".MAIN_DB_PREFIX."c_accounting_category(";
    -		if ($this->rowid > 0) $sql.= "rowid,";
    -		$sql.= "code,";
    -		$sql.= "label,";
    -		$sql.= "range_account,";
    -		$sql.= "sens,";
    -		$sql.= "category_type,";
    -		$sql.= "formula,";
    -		$sql.= "position,";
    -		$sql.= "fk_country,";
    -		$sql.= "active";
    +		if ($this->rowid > 0) $sql.= "rowid, ";
    +		$sql.= "code, ";
    +		$sql.= "label, ";
    +		$sql.= "range_account, ";
    +		$sql.= "sens, ";
    +		$sql.= "category_type, ";
    +		$sql.= "formula, ";
    +		$sql.= "position, ";
    +		$sql.= "fk_country, ";
    +		$sql.= "active, ";
    +		$sql.= "entity";
     		$sql.= ") VALUES (";
     		if ($this->rowid > 0) $sql.= " ".$this->rowid.",";
     		$sql.= " ".(! isset($this->code)?'NULL':"'".$this->db->escape($this->code)."'").",";
    @@ -114,6 +185,7 @@ class AccountancyCategory 	// extends CommonObject
     		$sql.= " ".(! isset($this->position)?'NULL':$this->db->escape($this->position)).",";
     		$sql.= " ".(! isset($this->fk_country)?'NULL':$this->db->escape($this->fk_country)).",";
     		$sql.= " ".(! isset($this->active)?'NULL':$this->db->escape($this->active));
    +		$sql.= ", ".$conf->entity;
     		$sql.= ")";
     
     		$this->db->begin();
    @@ -126,18 +198,18 @@ class AccountancyCategory 	// extends CommonObject
     		{
     			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."c_accounting_category");
     
    -			if (! $notrigger)
    -			{
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action call a trigger.
    +			// Uncomment this and change MYOBJECT to your own tag if you
    +			// want this action call a trigger.
    +			//if (! $notrigger)
    +			//{
     
    -				//// Call triggers
    -				//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    -				//$interface=new Interfaces($this->db);
    -				//$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
    -				//if ($result < 0) { $error++; $this->errors=$interface->errors; }
    -				//// End call triggers
    -			}
    +			//	// Call triggers
    +			//	include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    +			//	$interface=new Interfaces($this->db);
    +			//	$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
    +			//	if ($result < 0) { $error++; $this->errors=$interface->errors; }
    +			//	// End call triggers
    +			//}
     		}
     
     		// Commit or rollback
    @@ -167,9 +239,8 @@ class AccountancyCategory 	// extends CommonObject
     	 *  @param		string	$label	Label
     	 *  @return     int          	<0 if KO, >0 if OK
     	 */
    -	function fetch($id,$code='',$label='')
    +	function fetch($id, $code='', $label='')
     	{
    -		global $langs;
     		$sql = "SELECT";
     		$sql.= " t.rowid,";
     		$sql.= " t.code,";
    @@ -183,8 +254,12 @@ class AccountancyCategory 	// extends CommonObject
     		$sql.= " t.active";
     		$sql.= " FROM ".MAIN_DB_PREFIX."c_accounting_category as t";
     		if ($id)   $sql.= " WHERE t.rowid = ".$id;
    -		elseif ($code) $sql.= " WHERE t.code = '".$this->db->escape($code)."'";
    -		elseif ($label) $sql.= " WHERE t.label = '".$this->db->escape($label)."'";
    +		else
    +		{
    +			$sql.= " WHERE t.entity IN (".getEntity('c_accounting_category').")"; // Dont't use entity if you use rowid
    +			if ($code) $sql.= " AND t.code = '".$this->db->escape($code)."'";
    +			elseif ($label) $sql.= " AND t.label = '".$this->db->escape($label)."'";
    +		}
     
     		dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
     		$resql=$this->db->query($sql);
    @@ -265,18 +340,17 @@ class AccountancyCategory 	// extends CommonObject
     
     		if (! $error)
     		{
    -			if (! $notrigger)
    -			{
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action call a trigger.
    -
    -				//// Call triggers
    -				//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    -				//$interface=new Interfaces($this->db);
    -				//$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
    -				//if ($result < 0) { $error++; $this->errors=$interface->errors; }
    -				//// End call triggers
    -			}
    +			// Uncomment this and change MYOBJECT to your own tag if you
    +			// want this action call a trigger.
    +			//if (! $notrigger)
    +			//{
    +			//	// Call triggers
    +			//	include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    +			//	$interface=new Interfaces($this->db);
    +			//	$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
    +			//	if ($result < 0) { $error++; $this->errors=$interface->errors; }
    +			//	// End call triggers
    +			//}
     		}
     
     		// Commit or rollback
    @@ -321,18 +395,17 @@ class AccountancyCategory 	// extends CommonObject
     
     		if (! $error)
     		{
    -			if (! $notrigger)
    -			{
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action call a trigger.
    -
    -				//// Call triggers
    -				//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    -				//$interface=new Interfaces($this->db);
    -				//$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf);
    -				//if ($result < 0) { $error++; $this->errors=$interface->errors; }
    -				//// End call triggers
    -			}
    +			// Uncomment this and change MYOBJECT to your own tag if you
    +			// want this action call a trigger.
    +			//if (! $notrigger)
    +			//{
    +			//	// Call triggers
    +			//	include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    +			//	$interface=new Interfaces($this->db);
    +			//	$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf);
    +			//	if ($result < 0) { $error++; $this->errors=$interface->errors; }
    +			//	// End call triggers
    +			//}
     		}
     
     		// Commit or rollback
    @@ -360,7 +433,8 @@ class AccountancyCategory 	// extends CommonObject
     	 * @param int $id Id
     	 * @return int <0 if KO, 0 if not found, >0 if OK
     	 */
    -	public function display($id) {
    +    public function display($id)
    +    {
     		global $conf;
     		$sql = "SELECT t.rowid, t.account_number, t.label";
     		$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t";
    @@ -395,7 +469,8 @@ class AccountancyCategory 	// extends CommonObject
     	 *
     	 * @return int <0 if KO, 0 if not found, >0 if OK
     	 */
    -	public function getCptBK($id) {
    +    public function getCptBK($id)
    +    {
     		global $conf;
     
     		$sql = "SELECT t.numero_compte, t.label_operation, t.doc_ref";
    @@ -410,7 +485,7 @@ class AccountancyCategory 	// extends CommonObject
     		$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
     		$sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS;
     		$sql .= " AND aa.active = 1";
    -		$sql .= " AND aa.entity = = " . $conf->entity . ")";
    +		$sql .= " AND aa.entity = " . $conf->entity . ")";
     		$sql .= " GROUP BY t.numero_compte, t.label_operation, t.doc_ref";
     		$sql .= " ORDER BY t.numero_compte";
     
    @@ -443,8 +518,9 @@ class AccountancyCategory 	// extends CommonObject
     	 *
     	 * @return int <0 if KO, 0 if not found, >0 if OK
     	 */
    -	public function getAccountsWithNoCategory($id) {
    -	    global $conf;
    +    public function getAccountsWithNoCategory($id)
    +    {
    +        global $conf;
     
     	    $sql = "SELECT aa.account_number as numero_compte, aa.label as label_compte";
     	    $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa";
    @@ -486,7 +562,8 @@ class AccountancyCategory 	// extends CommonObject
     	 *
     	 * @return int <0 if KO, >0 if OK
     	 */
    -	public function updateAccAcc($id_cat, $cpts = array()) {
    +    public function updateAccAcc($id_cat, $cpts = array())
    +    {
     		global $conf;
     		$error = 0;
     
    @@ -549,7 +626,8 @@ class AccountancyCategory 	// extends CommonObject
     	 *
     	 * @return int <0 if KO, >0 if OK
     	 */
    -	public function deleteCptCat($cpt_id) {
    +    public function deleteCptCat($cpt_id)
    +    {
     		$error = 0;
     
     		$sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account as aa";
    @@ -639,49 +717,76 @@ class AccountancyCategory 	// extends CommonObject
     	/**
     	 * Function to show result of an accounting account from the ledger with a direction and a period
     	 *
    -	 * @param int 		$cpt 				Id accounting account
    -	 * @param string 	$month 				Specifig month - Can be empty
    +	 * @param int|array	$cpt 				Accounting account or array of accounting account
     	 * @param string 	$date_start			Date start
     	 * @param string 	$date_end			Date end
     	 * @param int 		$sens 				Sens of the account:  0: credit - debit, 1: debit - credit
     	 * @param string	$thirdparty_code	Thirdparty code
    -	 * @return integer 						Result in table
    +	 * @param int       $month 				Specifig month - Can be empty
    +	 * @param int       $year 				Specifig year - Can be empty
    +	 * @return integer 						<0 if KO, >= 0 if OK
     	 */
    -	public function getResult($cpt, $month, $date_start, $date_end, $sens, $thirdparty_code='nofilter')
    +	public function getSumDebitCredit($cpt, $date_start, $date_end, $sens, $thirdparty_code='nofilter', $month=0, $year=0)
     	{
    +		global $conf;
    +
    +		$this->sdc = 0;
    +		$this->sdcpermonth = array();
    +
     		$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";
    -		$sql .= " WHERE t.numero_compte = '" . $cpt."'";
    -		if (! empty($date_start) && ! empty($date_end))
    -			$sql.= " AND t.doc_date >= '".$this->db->idate($date_start)."' AND t.doc_date <= '".$this->db->idate($date_end)."'";
    -		if (! empty($month)) {
    -			$sql .= " AND MONTH(t.doc_date) = " . $month;
    +		//if (in_array($this->db->type, array('mysql', 'mysqli'))) $sql.=' USE INDEX idx_accounting_bookkeeping_doc_date';
    +		$sql .= " WHERE t.entity = ".$conf->entity;
    +		if (is_array($cpt))
    +		{
    +			$listofaccount='';
    +			foreach($cpt as $cptcursor)
    +			{
    +				if ($listofaccount) $listofaccount.=",";
    +				$listofaccount.="'".$cptcursor."'";
    +			}
    +			$sql .= " AND t.numero_compte IN (" .$listofaccount. ")";
    +		}
    +		else
    +		{
    +			$sql .= " AND t.numero_compte = '" . $this->db->escape($cpt) . "'";
    +		}
    +		if (! empty($date_start) && ! empty($date_end) && (empty($month) || empty($year)))	// If month/year provided, it is stronger than filter date_start/date_end
    +			$sql .= " AND (t.doc_date BETWEEN '".$this->db->idate($date_start)."' AND '".$this->db->idate($date_end)."')";
    +		if (! empty($month) && ! empty($year)) {
    +			$sql .= " AND (t.doc_date BETWEEN '".$this->db->idate(dol_get_first_day($year, $month))."' AND '".$this->db->idate(dol_get_last_day($year, $month))."')";
     		}
     		if ($thirdparty_code != 'nofilter')
     		{
    -			$sql .= " AND thirdparty_code = '".$this->db->escape($thirdparty_code)."'";
    +			$sql .= " AND t.thirdparty_code = '".$this->db->escape($thirdparty_code)."'";
     		}
    +		if (is_array($cpt)) $sql.=" GROUP BY t.numero_compte";
    +		//print $sql;
     
    -		dol_syslog(__METHOD__ . " sql=" . $sql, LOG_DEBUG);
     		$resql = $this->db->query($sql);
    -
    -		if ($resql) {
    +		if ($resql)
    +		{
     			$num = $this->db->num_rows($resql);
    -			$this->sdc = 0;
    -			if ($num) {
    +			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;
    +				}
     			}
     			return $num;
     		} else {
     			$this->error = "Error " . $this->db->lasterror();
    +			$this->errors[] = $this->error;
     			dol_syslog(__METHOD__ . " " . $this->error, LOG_ERR);
    -
    -			return - 1;
    +			return -1;
     		}
     	}
     
    @@ -693,7 +798,7 @@ class AccountancyCategory 	// extends CommonObject
     	 */
     	public function getCats($categorytype=-1)
     	{
    -		global $db, $langs, $user, $mysoc, $conf;
    +		global $conf, $mysoc;
     
     		if (empty($mysoc->country_id)) {
     			dol_print_error('', 'Call to select_accounting_account with mysoc country not yet defined');
    @@ -702,7 +807,7 @@ class AccountancyCategory 	// extends CommonObject
     
     		$sql = "SELECT c.rowid, c.code, c.label, c.formula, c.position, c.category_type";
     		$sql .= " FROM " . MAIN_DB_PREFIX . "c_accounting_category as c";
    -		$sql .= " WHERE c.active = 1 ";
    +		$sql .= " WHERE c.active = 1";
     		$sql .= " AND c.entity = " . $conf->entity;
     		if ($categorytype >= 0) $sql.=" AND c.category_type = 1";
     		$sql .= " AND (c.fk_country = ".$mysoc->country_id." OR c.fk_country = 0)";
    @@ -750,7 +855,7 @@ class AccountancyCategory 	// extends CommonObject
     	 */
     	public function getCptsCat($cat_id, $predefinedgroupwhere='')
     	{
    -		global $mysoc;
    +		global $conf, $mysoc;
     		$sql = '';
     
     		if (empty($mysoc->country_id) && empty($mysoc->country_code)) {
    @@ -763,6 +868,7 @@ class AccountancyCategory 	// extends CommonObject
     			$sql = "SELECT t.rowid, t.account_number, t.label as account_label";
     			$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t";
     			$sql .= " WHERE t.fk_accounting_category = ".$cat_id;
    +			$sql .= " AND t.entity = " . $conf->entity;
     			$sql .= " ORDER BY t.account_number";
     		}
     		else
    @@ -770,6 +876,7 @@ class AccountancyCategory 	// extends CommonObject
     			$sql = "SELECT t.rowid, t.account_number, t.label as account_label";
     			$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as t";
     			$sql .= " WHERE ".$predefinedgroupwhere;
    +			$sql .= " AND t.entity = " . $conf->entity;
     			$sql .= " ORDER BY t.account_number";
     		}
     		//echo $sql;
    @@ -783,13 +890,12 @@ class AccountancyCategory 	// extends CommonObject
     			if ($num) {
     				while ($obj = $this->db->fetch_object($resql))
     				{
    -					$name_cat = $obj->name_cat;
     					$data[] = array (
     							'id' => $obj->rowid,
     							'account_number' => $obj->account_number,
     							'account_label' => $obj->account_label,
     					);
    -					$i ++;
    +					$i++;
     				}
     			}
     			return $data;
    @@ -800,5 +906,4 @@ class AccountancyCategory 	// extends CommonObject
     			return -1;
     		}
     	}
    -
     }
    diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php
    index 52b5f1c411f..6f9c0534d2f 100644
    --- a/htdocs/accountancy/class/accountancyexport.class.php
    +++ b/htdocs/accountancy/class/accountancyexport.class.php
    @@ -44,7 +44,8 @@ class AccountancyExport
     	/**
     	 * @var Type of export. Defined by $conf->global->ACCOUNTING_EXPORT_MODELCSV
     	 */
    -	public static $EXPORT_TYPE_NORMAL = 1;	 // Classic CSV
    +	public static $EXPORT_TYPE_NORMAL = 1;	 			// CSV
    +	public static $EXPORT_TYPE_CONFIGURABLE = 10;		// CSV
     	public static $EXPORT_TYPE_CEGID = 2;
     	public static $EXPORT_TYPE_COALA = 3;
     	public static $EXPORT_TYPE_BOB50 = 4;
    @@ -53,13 +54,13 @@ class AccountancyExport
     	public static $EXPORT_TYPE_EBP = 7;
     	public static $EXPORT_TYPE_COGILOG = 8;
     	public static $EXPORT_TYPE_AGIRIS = 9;
    -	public static $EXPORT_TYPE_CONFIGURABLE = 10;
    +	public static $EXPORT_TYPE_FEC = 11;
    +
     
     	/**
    -	 *
     	 * @var string[] Error codes (or messages)
     	 */
    -	public $errors = array ();
    +	public $errors = array();
     
     	/**
     	 *
    @@ -78,7 +79,8 @@ class AccountancyExport
     	 *
     	 * @param DoliDb $db Database handler
     	 */
    -	public function __construct(DoliDB &$db) {
    +	public function __construct(DoliDB &$db)
    +	{
     		global $conf;
     
     		$this->db = &$db;
    @@ -91,11 +93,13 @@ class AccountancyExport
     	 *
     	 * @return array of type
     	 */
    -	public static function getType() {
    +	public static function getType()
    +	{
     		global $langs;
     
     		return array (
    -				self::$EXPORT_TYPE_NORMAL => $langs->trans('Modelcsv_normal'),
    +				//self::$EXPORT_TYPE_NORMAL => $langs->trans('Modelcsv_normal'),
    +				self::$EXPORT_TYPE_CONFIGURABLE => $langs->trans('Modelcsv_configurable'),
     				self::$EXPORT_TYPE_CEGID => $langs->trans('Modelcsv_CEGID'),
     				self::$EXPORT_TYPE_COALA => $langs->trans('Modelcsv_COALA'),
     				self::$EXPORT_TYPE_BOB50 => $langs->trans('Modelcsv_bob50'),
    @@ -104,27 +108,53 @@ class AccountancyExport
     				self::$EXPORT_TYPE_EBP => $langs->trans('Modelcsv_ebp'),
     				self::$EXPORT_TYPE_COGILOG => $langs->trans('Modelcsv_cogilog'),
     				self::$EXPORT_TYPE_AGIRIS => $langs->trans('Modelcsv_agiris'),
    -				self::$EXPORT_TYPE_CONFIGURABLE => $langs->trans('Modelcsv_configurable'),
    +				self::$EXPORT_TYPE_FEC => $langs->trans('Modelcsv_FEC'),
     			);
     	}
     
    +	/**
    +	 * Return string to summarize the format (Used to generated export filename)
    +	 *
    +	 * @param	int		$type		Format id
    +	 * @return 	string				Format code
    +	 */
    +	private static function getFormatCode($type)
    +	{
    +		$formatcode = array (
    +			//self::$EXPORT_TYPE_NORMAL => 'csv',
    +			self::$EXPORT_TYPE_CONFIGURABLE => 'csv',
    +			self::$EXPORT_TYPE_CEGID => 'cegid',
    +			self::$EXPORT_TYPE_COALA => 'coala',
    +			self::$EXPORT_TYPE_BOB50 => 'bob50',
    +			self::$EXPORT_TYPE_CIEL => 'ciel',
    +			self::$EXPORT_TYPE_QUADRATUS => 'quadratus',
    +			self::$EXPORT_TYPE_EBP => 'ebp',
    +			self::$EXPORT_TYPE_COGILOG => 'cogilog',
    +			self::$EXPORT_TYPE_AGIRIS => 'agiris',
    +			self::$EXPORT_TYPE_FEC => 'fec',
    +		);
    +
    +		return $formatcode[$type];
    +	}
    +
     	/**
     	 * Array with all export type available (key + label) and parameters for config
     	 *
     	 * @return array of type
     	 */
    -	public static function getTypeConfig() {
    +	public static function getTypeConfig()
    +	{
     		global $conf, $langs;
     
     		return array (
     			'param' => array(
    -				self::$EXPORT_TYPE_NORMAL => array(
    +				/*self::$EXPORT_TYPE_NORMAL => array(
     					'label' => $langs->trans('Modelcsv_normal'),
     					'ACCOUNTING_EXPORT_FORMAT' => empty($conf->global->ACCOUNTING_EXPORT_FORMAT)?'txt':$conf->global->ACCOUNTING_EXPORT_FORMAT,
     					'ACCOUNTING_EXPORT_SEPARATORCSV' => empty($conf->global->ACCOUNTING_EXPORT_SEPARATORCSV)?',':$conf->global->ACCOUNTING_EXPORT_SEPARATORCSV,
     					'ACCOUNTING_EXPORT_ENDLINE' => empty($conf->global->ACCOUNTING_EXPORT_ENDLINE)?1:$conf->global->ACCOUNTING_EXPORT_ENDLINE,
     					'ACCOUNTING_EXPORT_DATE' => empty($conf->global->ACCOUNTING_EXPORT_DATE)?'%d%m%Y':$conf->global->ACCOUNTING_EXPORT_DATE,
    -				),
    +				),*/
     				self::$EXPORT_TYPE_CEGID => array(
     					'label' => $langs->trans('Modelcsv_CEGID'),
     				),
    @@ -158,6 +188,10 @@ class AccountancyExport
     					'ACCOUNTING_EXPORT_ENDLINE' => empty($conf->global->ACCOUNTING_EXPORT_ENDLINE)?1:$conf->global->ACCOUNTING_EXPORT_ENDLINE,
     					'ACCOUNTING_EXPORT_DATE' => empty($conf->global->ACCOUNTING_EXPORT_DATE)?'%d%m%Y':$conf->global->ACCOUNTING_EXPORT_DATE,
     				),
    +				self::$EXPORT_TYPE_FEC => array(
    +					'label' => $langs->trans('Modelcsv_FEC'),
    +					'ACCOUNTING_EXPORT_FORMAT' => 'txt',
    +				),
     			),
     			'cr'=> array (
     				'1' => $langs->trans("Unix"),
    @@ -170,31 +204,31 @@ class AccountancyExport
     		);
     	}
     
    +
     	/**
    -	 * Download the export
    +	 * Function who chose which export to use with the default config, and make the export into a file
     	 *
    +	 * @param array		$TData 		data
     	 * @return void
     	 */
    -	public static function downloadFile() {
    -		global $conf;
    -		$filename = 'general_ledger';
    -		include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php';
    -	}
    -
    -	/**
    -	 * Function who chose which export to use with the default config
    -	 *
    -	 * @param unknown $TData data
    -	 */
    -	public function export(&$TData) {
    +	public function export(&$TData)
    +	{
     		global $conf, $langs;
    +		global $search_date_end;	// Used into /accountancy/tpl/export_journal.tpl.php
    +
    +		// Define name of file to save
    +		$filename = 'general_ledger-'.$this->getFormatCode($conf->global->ACCOUNTING_EXPORT_MODELCSV);
    +		$type_export = 'general_ledger';
    +
    +		include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php';
     
    -		self::downloadFile();
     
     		switch ($conf->global->ACCOUNTING_EXPORT_MODELCSV) {
     			case self::$EXPORT_TYPE_NORMAL :
    -				$this->exportNormal($TData);
    +			case self::$EXPORT_TYPE_CONFIGURABLE :
    +				$this->exportConfigurable($TData);
     				break;
    +			case self::$EXPORT_TYPE_NORMAL :
     			case self::$EXPORT_TYPE_CEGID :
     				$this->exportCegid($TData);
     				break;
    @@ -219,8 +253,8 @@ class AccountancyExport
     			case self::$EXPORT_TYPE_AGIRIS :
     				$this->exportAgiris($TData);
     				break;
    -			case self::$EXPORT_TYPE_CONFIGURABLE :
    -				$this->exportConfigurable($TData);
    +			case self::$EXPORT_TYPE_FEC :
    +				$this->exportFEC($TData);
     				break;
     			default:
     				$this->errors[] = $langs->trans('accountancy_error_modelnotfound');
    @@ -228,29 +262,6 @@ class AccountancyExport
     		}
     	}
     
    -	/**
    -	 * Export format : Normal
    -	 *
    -	 * @param array $objectLines data
    -	 *
    -	 * @return void
    -	 */
    -	public function exportNormal($objectLines) {
    -		global $conf;
    -
    -		foreach ( $objectLines as $line ) {
    -			// Std export
    -			$date = dol_print_date($line->doc_date, $conf->global->ACCOUNTING_EXPORT_DATE);
    -			print $date . $this->separator;
    -			print $line->doc_ref . $this->separator;
    -			print length_accountg($line->numero_compte) . $this->separator;
    -			print length_accounta($line->subledger_account) . $this->separator;
    -			print price($line->debit) . $this->separator;
    -			print price($line->credit) . $this->separator;
    -			print $line->code_journal . $this->separator;
    -			print $this->end_line;
    -		}
    -	}
     
     	/**
     	 * Export format : CEGID
    @@ -259,7 +270,8 @@ class AccountancyExport
     	 *
     	 * @return void
     	 */
    -	public function exportCegid($objectLines) {
    +	public function exportCegid($objectLines)
    +	{
     		foreach ( $objectLines as $line ) {
     			$date = dol_print_date($line->doc_date, '%d%m%Y');
     			$separator = ";";
    @@ -284,7 +296,8 @@ class AccountancyExport
     	 *
     	 * @return void
     	 */
    -	public function exportCogilog($objectLines) {
    +	public function exportCogilog($objectLines)
    +	{
     		foreach ( $objectLines as $line ) {
     			$date = dol_print_date($line->doc_date, '%d%m%Y');
     			$separator = ";";
    @@ -317,7 +330,8 @@ class AccountancyExport
     	 *
     	 * @return void
     	 */
    -	public function exportCoala($objectLines) {
    +	public function exportCoala($objectLines)
    +	{
     		// Coala export
     		$separator = ";";
     		$end_line = "\n";
    @@ -344,7 +358,8 @@ class AccountancyExport
     	 *
     	 * @return void
     	 */
    -	public function exportBob50($objectLines) {
    +	public function exportBob50($objectLines)
    +	{
     
     		// Bob50
     		$separator = ";";
    @@ -382,7 +397,8 @@ class AccountancyExport
     	 *
     	 * @return void
     	 */
    -	public function exportCiel(&$TData) {
    +	public function exportCiel(&$TData)
    +	{
     		global $conf;
     
     		$end_line ="\r\n";
    @@ -422,12 +438,13 @@ class AccountancyExport
     	 *
     	 * @return void
     	 */
    -	public function exportQuadratus(&$TData) {
    +	public function exportQuadratus(&$TData)
    +	{
     		global $conf;
     
     		$end_line ="\r\n";
     
    -        //We should use dol_now function not time however this is wrong date to transfert in accounting
    +		//We should use dol_now function not time however this is wrong date to transfert in accounting
     		//$date_ecriture = dol_print_date(dol_now(), $conf->global->ACCOUNTING_EXPORT_DATE); // format must be ddmmyy
     		//$date_ecriture = dol_print_date(time(), $conf->global->ACCOUNTING_EXPORT_DATE); // format must be ddmmyy
     		foreach ( $TData as $data ) {
    @@ -441,8 +458,8 @@ class AccountancyExport
     			$Tab['code_journal'] = str_pad(self::trunc($data->code_journal, 2), 2);
     			$Tab['folio'] = '000';
     
    -            //We use invoice date $data->doc_date not $date_ecriture which is the transfert date
    -            //maybe we should set an option for customer who prefer to keep in accounting software the tranfert date instead of invoice date ?
    +			//We use invoice date $data->doc_date not $date_ecriture which is the transfert date
    +			//maybe we should set an option for customer who prefer to keep in accounting software the tranfert date instead of invoice date ?
     			//$Tab['date_ecriture'] = $date_ecriture;
     			$Tab['date_ecriture'] = dol_print_date($data->doc_date, '%d%m%y');
     			$Tab['filler'] = ' ';
    @@ -450,25 +467,25 @@ class AccountancyExport
     			$Tab['sens'] = $data->sens; // C or D
     			$Tab['signe_montant'] = '+';
     
    -            //elarifr le montant doit etre en centimes sans point decimal !
    +			//elarifr le montant doit etre en centimes sans point decimal !
     			$Tab['montant'] = str_pad(abs($data->montant*100), 12, '0', STR_PAD_LEFT); // TODO manage negative amount
    -		    // $Tab['montant'] = str_pad(abs($data->montant), 12, '0', STR_PAD_LEFT); // TODO manage negative amount
    +			// $Tab['montant'] = str_pad(abs($data->montant), 12, '0', STR_PAD_LEFT); // TODO manage negative amount
     			$Tab['contrepartie'] = str_repeat(' ', 8);
     
    -            // elarifr:  date format must be fixed format : 6 char ddmmyy = %d%m%yand not defined by user / dolibarr setting
    +			// elarifr:  date format must be fixed format : 6 char ddmmyy = %d%m%yand not defined by user / dolibarr setting
     			if (! empty($data->date_echeance))
     				//$Tab['date_echeance'] = dol_print_date($data->date_echeance, $conf->global->ACCOUNTING_EXPORT_DATE);
    -				$Tab['date_echeance'] = dol_print_date($data->date_echeance,  '%d%m%y' );     // elarifr:  format must be ddmmyy
    +				$Tab['date_echeance'] = dol_print_date($data->date_echeance,  '%d%m%y' );	 // elarifr:  format must be ddmmyy
     			else
     				$Tab['date_echeance'] = '000000';
     
    -            //elarifr please keep quadra named field lettrage(2) + codestat(3) instead of fake lettrage(5)
    +			//elarifr please keep quadra named field lettrage(2) + codestat(3) instead of fake lettrage(5)
     			//$Tab['lettrage'] = str_repeat(' ', 5);
     			$Tab['lettrage'] = str_repeat(' ', 2);
     			$Tab['codestat'] = str_repeat(' ', 3);
     			$Tab['num_piece'] = str_pad(self::trunc($data->piece_num, 5), 5);
     
    -            //elarifr keep correct quadra named field instead of anon filler
    +			//elarifr keep correct quadra named field instead of anon filler
     			//$Tab['filler2'] = str_repeat(' ', 20);
     			$Tab['affaire'] = str_repeat(' ', 10);
     			$Tab['quantity1'] = str_repeat(' ', 10);
    @@ -477,16 +494,16 @@ class AccountancyExport
     			$Tab['code_journal2'] = str_pad(self::trunc($data->code_journal, 3), 3);
     			$Tab['filler3'] = str_repeat(' ', 3);
     
    -            //elarifr keep correct quadra named field instead of anon filler libelle_ecriture2 is 30 char not 32 !!!!
    -            //as we use utf8, we must remove accent to have only one ascii char instead of utf8 2 chars for specials that report wrong line size that will exceed import format spec
    -            //todo we should filter more than only accent to avoid wrong line size
    -            //TODO: remove invoice number doc_ref in libelle,
    -            //TODO: we should offer an option for customer to build the libelle using invoice number / name / date in accounting software
    +			//elarifr keep correct quadra named field instead of anon filler libelle_ecriture2 is 30 char not 32 !!!!
    +			//as we use utf8, we must remove accent to have only one ascii char instead of utf8 2 chars for specials that report wrong line size that will exceed import format spec
    +			//todo we should filter more than only accent to avoid wrong line size
    +			//TODO: remove invoice number doc_ref in libelle,
    +			//TODO: we should offer an option for customer to build the libelle using invoice number / name / date in accounting software
     			//$Tab['libelle_ecriture2'] = str_pad(self::trunc(dol_string_unaccent($data->doc_ref) . ' ' . dol_string_unaccent($data->label_operation), 30), 30);
     			$Tab['libelle_ecriture2'] = str_pad(self::trunc(dol_string_unaccent($data->label_operation), 30), 30);
     			$Tab['codetva'] = str_repeat(' ', 2);
     
    -            //elarifr we need to keep the 10 lastest number of invoice doc_ref not the beginning part that is the unusefull almost same part
    +			//elarifr we need to keep the 10 lastest number of invoice doc_ref not the beginning part that is the unusefull almost same part
     			//$Tab['num_piece3'] = str_pad(self::trunc($data->piece_num, 10), 10);
     			$Tab['num_piece3'] = substr(self::trunc($data->doc_ref, 20), -10);
     			$Tab['filler4'] = str_repeat(' ', 73);
    @@ -505,7 +522,8 @@ class AccountancyExport
     	 *
     	 * @return void
     	 */
    -	public function exportEbp($objectLines) {
    +	public function exportEbp($objectLines)
    +	{
     
     		$separator = ',';
     		$end_line = "\n";
    @@ -537,7 +555,8 @@ class AccountancyExport
     	 *
     	 * @return void
     	 */
    -	public function exportAgiris($objectLines) {
    +	public function exportAgiris($objectLines)
    +	{
     
     		$separator = ';';
     		$end_line = "\n";
    @@ -553,8 +572,10 @@ class AccountancyExport
     
     			if (empty($line->subledger_account)) {
     				print length_accountg($line->numero_compte) . $separator;
    +				print $line->label_compte . $separator;
     			} else {
     				print length_accounta($line->subledger_account) . $separator;
    +				print $line->subledger_label . $separator;
     			}
     
     			print $line->doc_ref . $separator;
    @@ -562,6 +583,7 @@ class AccountancyExport
     			print price($line->credit) . $separator;
     			print price($line->montant) . $separator;
     			print $line->sens . $separator;
    +			print $line->lettering_code . $separator;
     			print $line->code_journal;
     			print $end_line;
     		}
    @@ -574,7 +596,8 @@ class AccountancyExport
     	 *
     	 * @return void
     	 */
    -	public function exportConfigurable($objectLines) {
    +	public function exportConfigurable($objectLines)
    +	{
     		global $conf;
     
     		foreach ($objectLines as $line) {
    @@ -585,25 +608,121 @@ class AccountancyExport
     			$tab[] = $date;
     			$tab[] = $line->doc_ref;
     			$tab[] = $line->label_operation;
    -			$tab[] =  length_accountg($line->numero_compte);
    -			$tab[] =  length_accounta($line->subledger_account);
    -			$tab[] =  price($line->debit);
    -			$tab[] =  price($line->credit);
    -			$tab[] =  price($line->montant);
    -			$tab[] =  $line->code_journal;
    +			$tab[] = length_accountg($line->numero_compte);
    +			$tab[] = length_accounta($line->subledger_account);
    +			$tab[] = price($line->debit);
    +			$tab[] = price($line->credit);
    +			$tab[] = price($line->montant);
    +			$tab[] = $line->code_journal;
     
     			$separator = $this->separator;
     			print implode($separator, $tab) . $this->end_line;
     		}
     	}
     
    +	/**
    +	 * Export format : FEC
    +	 *
    +	 * @param array $objectLines data
    +	 *
    +	 * @return void
    +	 */
    +	public function exportFEC($objectLines)
    +	{
    +		$separator = "\t";
    +		$end_line = "\n";
    +
    +		print "JournalCode" . $separator;
    +		print "JournalLib" . $separator;
    +		print "EcritureNum" . $separator;
    +		print "EcritureDate" . $separator;
    +		print "CompteNum" . $separator;
    +		print "CompteLib" . $separator;
    +		print "CompAuxNum" . $separator;
    +		print "CompAuxLib" . $separator;
    +		print "PieceRef" . $separator;
    +		print "PieceDate" . $separator;
    +		print "EcritureLib" . $separator;
    +		print "Debit" . $separator;
    +		print "Credit" . $separator;
    +		print "EcritureLet" . $separator;
    +		print "DateLet" . $separator;
    +		print "ValidDate" . $separator;
    +		print "Montantdevise" . $separator;
    +		print "Idevise";
    +		print $end_line;
    +
    +		foreach ( $objectLines as $line ) {
    +			$date_creation = dol_print_date($line->date_creation, '%d%m%Y');
    +			$date_doc = dol_print_date($line->doc_date, '%d%m%Y');
    +			$date_valid = dol_print_date($line->date_validated, '%d%m%Y');
    +
    +			// FEC:JournalCode
    +			print $line->code_journal . $separator;
    +
    +			// FEC:JournalLib
    +			print $line->journal_label . $separator;
    +
    +			// FEC:EcritureNum
    +			print $line->piece_num . $separator;
    +
    +			// FEC:EcritureDate
    +			print $date_creation . $separator;
    +
    +			// FEC:CompteNum
    +			print $line->numero_compte . $separator;
    +
    +			// FEC:CompteLib
    +			print $line->label_compte . $separator;
    +
    +			// FEC:CompAuxNum
    +			print $line->subledger_account . $separator;
    +
    +			// FEC:CompAuxLib
    +			print $line->subledger_label . $separator;
    +
    +			// FEC:PieceRef
    +			print $line->doc_ref . $separator;
    +
    +			// FEC:PieceDate
    +			print $date_doc . $separator;
    +
    +			// FEC:EcritureLib
    +			print $line->label_operation . $separator;
    +
    +			// FEC:Debit
    +			print price2num($line->debit) . $separator;
    +
    +			// FEC:Credit
    +			print price2num($line->credit) . $separator;
    +
    +			// FEC:EcritureLet
    +			print $line->lettering_code . $separator;
    +
    +			// FEC:DateLet
    +			print $line->date_lettering . $separator;
    +
    +			// FEC:ValidDate
    +			print $date_valid . $separator;
    +
    +			// FEC:Montantdevise
    +			print $line->multicurrency_amount . $separator;
    +
    +			// FEC:Idevise
    +			print $line->multicurrency_code;
    +
    +			print $end_line;
    +		}
    +	}
     
     	/**
     	 *
    -	 * @param unknown $str data
    -	 * @param integer $size data
    +	 * @param string	$str 	data
    +	 * @param integer 	$size 	data
    +	 * @return string
     	 */
    -	public static function trunc($str, $size) {
    +	public static function trunc($str, $size)
    +	{
     		return dol_trunc($str, $size, 'right', 'UTF-8', 1);
     	}
     }
    diff --git a/htdocs/accountancy/class/accountancysystem.class.php b/htdocs/accountancy/class/accountancysystem.class.php
    index f14a3e7f761..b70fa7238bb 100644
    --- a/htdocs/accountancy/class/accountancysystem.class.php
    +++ b/htdocs/accountancy/class/accountancysystem.class.php
    @@ -28,22 +28,44 @@
      */
     class AccountancySystem
     {
    -	var $db;
    -	var $error;
    -	var $rowid;
    -	var $fk_pcg_version;
    -	var $pcg_type;
    -	var $pcg_subtype;
    -	var $label;
    -	var $account_number;
    -	var $account_parent;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var int ID
    +	 */
    +	public $rowid;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_pcg_version;
    +
    +	public $pcg_type;
    +	public $pcg_subtype;
    +
    +    /**
    +     * @var string Accountancy System label
    +     */
    +    public $label;
    +
    +	public $account_number;
    +	public $account_parent;
     
     	/**
     	 * Constructor
     	 *
     	 * @param DoliDB $db handler
     	 */
    -	function __construct($db) {
    +    function __construct($db)
    +    {
     		$this->db = $db;
     	}
     
    @@ -102,7 +124,8 @@ class AccountancySystem
     	 * @param User $user making insert
     	 * @return int if KO, Id of line if OK
     	 */
    -	function create($user) {
    +    function create($user)
    +    {
     		$now = dol_now();
     
     		$sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_system";
    @@ -130,4 +153,4 @@ class AccountancySystem
     
     		return $result;
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/accountancy/class/accountingaccount.class.php b/htdocs/accountancy/class/accountingaccount.class.php
    index 257c2af0111..886e19577fb 100644
    --- a/htdocs/accountancy/class/accountingaccount.class.php
    +++ b/htdocs/accountancy/class/accountingaccount.class.php
    @@ -4,6 +4,7 @@
      * Copyright (C) 2013-2014  Florian Henry        <florian.henry@open-concept.pro>
      * Copyright (C) 2014       Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2015       Ari Elbaz (elarifr)  <github@accedinfo.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -30,8 +31,19 @@
      */
     class AccountingAccount extends CommonObject
     {
    +	/**
    +	 * @var string Name of element
    +	 */
     	public $element='accounting_account';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='accounting_account';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'billr';
     
     	/**
    @@ -39,37 +51,95 @@ class AccountingAccount extends CommonObject
     	 * @var int
     	 */
     	public $ismultientitymanaged = 1;
    +
     	/**
     	 * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
     	 * @var integer
     	 */
     	public $restrictiononfksoc = 1;
     
    -	var $db;
    -	var $error;
    -	var $errors;
    -	var $id;
    -	var $rowid;
    -	var $datec; // Creation date
    -	var $fk_pcg_version;
    -	var $pcg_type;
    -	var $pcg_subtype;
    -	var $account_number;
    -	var $account_parent;
    -	var $account_category;
    -	var $label;
    -	var $fk_user_author;
    -	var $fk_user_modif;
    -	var $active;       // duplicate with status
    -	var $status;
    +	/**
    +	 * @var DoliDB Database handler.
    +	 */
    +	public $db;
     
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +	/**
    +	 * @var int ID
    +	 */
    +	public $rowid;
    +
    +	/**
    +     * @var string Creation date
    +     */
    +	public $datec;
    +
    +	/**
    +     * @var string pcg version
    +     */
    +	public $fk_pcg_version;
    +
    +    /**
    +     * @var string pcg type
    +     */
    +	public $pcg_type;
    +
    +    /**
    +     * @var string pcg subtype
    +     */
    +	public $pcg_subtype;
    +
    +    /**
    +     * @var string account number
    +     */
    +	public $account_number;
    +
    +    /**
    +     * @var int ID parent account
    +     */
    +	public $account_parent;
    +
    +    /**
    +     * @var int ID category account
    +     */
    +	public $account_category;
    +
    +	/**
    +	 * @var int Status
    +	 */
    +	public $status;
    +
    +    /**
    +     * @var string Label of account
    +     */
    +    public $label;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_user_author;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_user_modif;
    +
    +	/**
    +	 * @var int active (duplicate with status)
    +	 */
    +    public $active;
     
     	/**
     	 * Constructor
     	 *
     	 * @param DoliDB $db Database handle
     	 */
    -	function __construct($db) {
    +    function __construct($db)
    +    {
     		global $conf;
     
     		$this->db = $db;
    @@ -95,7 +165,7 @@ class AccountingAccount extends CommonObject
     			$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_accounting_category as ca ON a.fk_accounting_category = ca.rowid";
     			$sql .= " WHERE";
     			if ($rowid) {
    -				$sql .= " a.rowid = '" . $rowid . "'";
    +				$sql .= " a.rowid = " . (int) $rowid;
     			} elseif ($account_number) {
     				$sql .= " a.account_number = '" . $this->db->escape($account_number) . "'";
     			}
    @@ -142,11 +212,12 @@ class AccountingAccount extends CommonObject
     	/**
     	 * Insert new accounting account in chart of accounts
     	 *
    -	 * @param User $user Use making action
    -	 * @param int $notrigger Disable triggers
    -	 * @return int <0 if KO, >0 if OK
    +	 * @param  User    $user       User making action
    +	 * @param  int     $notrigger  Disable triggers
    +	 * @return int                 <0 if KO, >0 if OK
     	 */
    -	function create($user, $notrigger = 0) {
    +    function create($user, $notrigger = 0)
    +    {
     		global $conf;
     		$error = 0;
     		$now = dol_now();
    @@ -202,11 +273,11 @@ class AccountingAccount extends CommonObject
     		$sql .= ", " . (empty($this->pcg_type) ? 'NULL' : "'" . $this->db->escape($this->pcg_type) . "'");
     		$sql .= ", " . (empty($this->pcg_subtype) ? 'NULL' : "'" . $this->db->escape($this->pcg_subtype) . "'");
     		$sql .= ", " . (empty($this->account_number) ? 'NULL' : "'" . $this->db->escape($this->account_number) . "'");
    -		$sql .= ", " . (empty($this->account_parent) ? '0' : "'" . $this->db->escape($this->account_parent) . "'");
    -		$sql .= ", " . (empty($this->label) ? 'NULL' : "'" . $this->db->escape($this->label) . "'");
    -		$sql .= ", " . (empty($this->account_category) ? 0 : $this->db->escape($this->account_category));
    +		$sql .= ", " . (empty($this->account_parent) ? 0 : (int) $this->account_parent);
    +		$sql .= ", " . (empty($this->label) ? "''" : "'" . $this->db->escape($this->label) . "'");
    +		$sql .= ", " . (empty($this->account_category) ? 0 : (int) $this->account_category);
     		$sql .= ", " . $user->id;
    -		$sql .= ", " . (! isset($this->active) ? 'NULL' : $this->db->escape($this->active));
    +		$sql .= ", " . (int) $this->active;
     		$sql .= ")";
     
     		$this->db->begin();
    @@ -214,7 +285,7 @@ class AccountingAccount extends CommonObject
     		dol_syslog(get_class($this) . "::create sql=" . $sql, LOG_DEBUG);
     		$resql = $this->db->query($sql);
     		if (! $resql) {
    -			$error ++;
    +			$error++;
     			$this->errors[] = "Error " . $this->db->lasterror();
     		}
     
    @@ -236,12 +307,12 @@ class AccountingAccount extends CommonObject
     
     		// Commit or rollback
     		if ($error) {
    -			foreach ( $this->errors as $errmsg ) {
    +			foreach ($this->errors as $errmsg) {
     				dol_syslog(get_class($this) . "::create " . $errmsg, LOG_ERR);
     				$this->error .= ($this->error ? ', ' . $errmsg : $errmsg);
     			}
     			$this->db->rollback();
    -			return - 1 * $error;
    +			return -1 * $error;
     		} else {
     			$this->db->commit();
     			return $this->id;
    @@ -273,11 +344,11 @@ class AccountingAccount extends CommonObject
     		$sql .= " , pcg_type = " . ($this->pcg_type ? "'" . $this->db->escape($this->pcg_type) . "'" : "null");
     		$sql .= " , pcg_subtype = " . ($this->pcg_subtype ? "'" . $this->db->escape($this->pcg_subtype) . "'" : "null");
     		$sql .= " , account_number = '" . $this->db->escape($this->account_number) . "'";
    -		$sql .= " , account_parent = '" . $this->db->escape($this->account_parent) . "'";
    -		$sql .= " , label = " . ($this->label ? "'" . $this->db->escape($this->label) . "'" : "null");
    -		$sql .= " , fk_accounting_category = " . (empty($this->account_category) ? 0 : $this->db->escape($this->account_category));
    +		$sql .= " , account_parent = " . (int) $this->account_parent;
    +		$sql .= " , label = " . ($this->label ? "'" . $this->db->escape($this->label) . "'" : "''");
    +		$sql .= " , fk_accounting_category = " . (empty($this->account_category) ? 0 : (int) $this->account_category);
     		$sql .= " , fk_user_modif = " . $user->id;
    -		$sql .= " , active = " . $this->active;
    +		$sql .= " , active = " . (int) $this->active;
     		$sql .= " WHERE rowid = " . $this->id;
     
     		dol_syslog(get_class($this) . "::update sql=" . $sql, LOG_DEBUG);
    @@ -297,14 +368,15 @@ class AccountingAccount extends CommonObject
     	 *
     	 * @return int <0 if KO, >0 if OK
     	 */
    -	function checkUsage() {
    +    function checkUsage()
    +    {
     		global $langs;
     
     		$sql = "(SELECT fk_code_ventilation FROM " . MAIN_DB_PREFIX . "facturedet";
    -		$sql .= " WHERE  fk_code_ventilation=" . $this->id . ")";
    -		$sql .= "UNION";
    -		$sql .= "(SELECT fk_code_ventilation FROM " . MAIN_DB_PREFIX . "facture_fourn_det";
    -		$sql .= " WHERE  fk_code_ventilation=" . $this->id . ")";
    +		$sql.= " WHERE fk_code_ventilation=" . $this->id . ")";
    +		$sql.= "UNION";
    +		$sql.= " (SELECT fk_code_ventilation FROM " . MAIN_DB_PREFIX . "facture_fourn_det";
    +		$sql.= " WHERE fk_code_ventilation=" . $this->id . ")";
     
     		dol_syslog(get_class($this) . "::checkUsage sql=" . $sql, LOG_DEBUG);
     		$resql = $this->db->query($sql);
    @@ -330,7 +402,8 @@ class AccountingAccount extends CommonObject
     	 * @param int $notrigger 0=triggers after, 1=disable triggers
     	 * @return int <0 if KO, >0 if OK
     	 */
    -	function delete($user, $notrigger = 0) {
    +    function delete($user, $notrigger = 0)
    +    {
     		$error = 0;
     
     		$result = $this->checkUsage();
    @@ -391,7 +464,7 @@ class AccountingAccount extends CommonObject
     	 * @param	string  $moretitle					Add more text to title tooltip
     	 * @param	int  	$notooltip					1=Disable tooltip
          * @param	int     $save_lastsearch_value		-1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    -	 * @return	string	String with URL
    +	 * @return  string	String with URL
     	 */
     	function getNomUrl($withpicto = 0, $withlabel = 0, $nourl = 0, $moretitle='',$notooltip=0, $save_lastsearch_value=-1)
     	{
    @@ -457,7 +530,8 @@ class AccountingAccount extends CommonObject
     	 * @param int $id of record
     	 * @return void
     	 */
    -	function info($id) {
    +    function info($id)
    +    {
     		$sql = 'SELECT a.rowid, a.datec, a.fk_user_author, a.fk_user_modif, a.tms';
     		$sql .= ' FROM ' . MAIN_DB_PREFIX . 'accounting_account as a';
     		$sql .= ' WHERE a.rowid = ' . $id;
    @@ -488,13 +562,16 @@ class AccountingAccount extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Account deactivated
     	 *
     	 * @param  int  $id         Id
     	 * @return int              <0 if KO, >0 if OK
     	 */
    -	function account_desactivate($id) {
    +    function account_desactivate($id)
    +    {
    +        // phpcs:enable
     		$result = $this->checkUsage();
     
     		if ($result > 0) {
    @@ -520,13 +597,16 @@ class AccountingAccount extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Account activated
     	 *
     	 * @param  int  $id         Id
     	 * @return int              <0 if KO, >0 if OK
     	 */
    -	function account_activate($id) {
    +    function account_activate($id)
    +    {
    +        // phpcs:enable
     		$this->db->begin();
     
     		$sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account ";
    @@ -557,6 +637,7 @@ class AccountingAccount extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -566,6 +647,7 @@ class AccountingAccount extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->loadLangs(array("users"));
     
    @@ -575,27 +657,27 @@ class AccountingAccount extends CommonObject
     			if ($statut == 1) return $langs->trans('Enabled');
     			if ($statut == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($statut == 1) return $langs->trans('Enabled');
     			if ($statut == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
     			if ($statut == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut == 1) return img_picto($langs->trans('Enabled'),'statut4');
     			if ($statut == 0) return img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
     			if ($statut == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
     			if ($statut == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
    diff --git a/htdocs/accountancy/class/accountingjournal.class.php b/htdocs/accountancy/class/accountingjournal.class.php
    index 454de6d7b84..9bd21a4a5c4 100644
    --- a/htdocs/accountancy/class/accountingjournal.class.php
    +++ b/htdocs/accountancy/class/accountingjournal.class.php
    @@ -26,16 +26,44 @@
      */
     class AccountingJournal extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='accounting_journal';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='accounting_journal';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element = '';
    -	public $ismultientitymanaged = 0;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 0;
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'generic';
     
    -	var $rowid;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $rowid;
     
     	public $code;
    -	public $label;
    +
    +	/**
    +     * @var string Accounting Journal label
    +     */
    +    public $label;
    +
     	public $nature;		// 1:various operations, 2:sale, 3:purchase, 4:bank, 5:expense-report, 8:inventory, 9: has-new
     	public $active;
     
    @@ -46,7 +74,8 @@ class AccountingJournal extends CommonObject
     	 *
     	 * @param DoliDB $db Database handle
     	 */
    -	function __construct($db) {
    +    function __construct($db)
    +    {
     		$this->db = $db;
     	}
     
    @@ -117,7 +146,8 @@ class AccountingJournal extends CommonObject
     	 *
     	 * @return int <0 if KO, >0 if OK
     	 */
    -	function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') {
    +    function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND')
    +    {
     		$sql = "SELECT rowid, code, label, nature, active";
     		$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t';
     		// Manage filter
    @@ -245,6 +275,7 @@ class AccountingJournal extends CommonObject
     		return $this->LibType($this->nature,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return type of an accounting journal
     	 *
    @@ -254,6 +285,7 @@ class AccountingJournal extends CommonObject
     	 */
     	function LibType($nature,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$langs->loadLangs(array("accountancy"));
    diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php
    index e751cf1899f..297fe0e3e9c 100644
    --- a/htdocs/accountancy/class/bookkeeping.class.php
    +++ b/htdocs/accountancy/class/bookkeeping.class.php
    @@ -1,7 +1,8 @@
     <?php
    -/* Copyright (C) 2014-2017 Olivier Geffroy		<jeff@jeffinfo.com>
    - * Copyright (C) 2015-2017 Alexandre Spangaro	<aspangaro@zendsi.com>
    - * Copyright (C) 2015-2017 Florian Henry		<florian.henry@open-concept.pro>
    +/* Copyright (C) 2014-2017  Olivier Geffroy     <jeff@jeffinfo.com>
    + * Copyright (C) 2015-2017  Alexandre Spangaro  <aspangaro@zendsi.com>
    + * Copyright (C) 2015-2017  Florian Henry       <florian.henry@open-concept.pro>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -18,9 +19,9 @@
      */
     
     /**
    - *	\file		htdocs/accountancy/class/bookkeeping.class.php
    - *	\ingroup	Advanced accountancy
    - *	\brief		File of class to manage Ledger (General Ledger and Subledger)
    + * \file        htdocs/accountancy/class/bookkeeping.class.php
    + * \ingroup     Advanced accountancy
    + * \brief       File of class to manage Ledger (General Ledger and Subledger)
      */
     
     // Class
    @@ -35,19 +36,25 @@ class BookKeeping extends CommonObject
     	 * @var string Error code (or message)
     	 */
     	public $error;
    +
     	/**
     	 * @var string[] Error codes (or messages)
     	 */
    -	public $errors = array ();
    +	public $errors = array();
    +
     	/**
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'accountingbookkeeping';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'accounting_bookkeeping';
     
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
     
     	/**
    @@ -59,25 +66,69 @@ class BookKeeping extends CommonObject
     	 * @var int ID
     	 */
     	public $id;
    -	/**
    -	 */
    +
     	public $doc_date;
     	public $date_lim_reglement;
    -	public $doc_type;
    +
    +    /**
    +     * @var string doc_type
    +     */
    +    public $doc_type;
    +
    +    /**
    +     * @var string doc_ref
    +     */
     	public $doc_ref;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_doc;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_docdet;
    -	public $thirdparty_code;
    +
    +    /**
    +     * @var string thirdparty code
    +     */
    +    public $thirdparty_code;
    +
    +    /**
    +     * @var string subledger account
    +     */
     	public $subledger_account;
    +
    +    /**
    +     * @var string subledger label
    +     */
     	public $subledger_label;
    +
    +    /**
    +     * @var string  doc_type
    +     */
     	public $numero_compte;
    -	public $label_compte;
    -	public $label_operation;
    +
    +    /**
    +     * @var string label compte
    +     */
    +    public $label_compte;
    +
    +    /**
    +     * @var string label operation
    +     */
    +    public $label_operation;
     	public $debit;
     	public $credit;
     	public $montant;
     	public $sens;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_author;
    +
     	public $import_key;
     	public $code_journal;
     	public $journal_label;
    @@ -88,7 +139,8 @@ class BookKeeping extends CommonObject
     	 *
     	 * @param DoliDb $db Database handler
     	 */
    -	public function __construct(DoliDB $db) {
    +    public function __construct(DoliDB $db)
    +    {
     		$this->db = $db;
     	}
     
    @@ -99,7 +151,8 @@ class BookKeeping extends CommonObject
     	 * @param  bool	$notrigger	false=launch triggers after, true=disable triggers
     	 * @return int				<0 if KO, Id of created object if OK
     	 */
    -	public function create(User $user, $notrigger = false) {
    +    public function create(User $user, $notrigger = false)
    +    {
     		global $conf, $langs;
     
     		dol_syslog(__METHOD__, LOG_DEBUG);
    @@ -168,7 +221,7 @@ class BookKeeping extends CommonObject
     		if (empty($this->credit)) $this->credit = 0;
     
     		// Check parameters
    -		if (empty($this->numero_compte) || $this->numero_compte == '-1' || $this->numero_compte == 'NotDefined')
    +		if (($this->numero_compte == "") || $this->numero_compte == '-1' || $this->numero_compte == 'NotDefined')
     		{
     			$langs->loadLangs(array("errors"));
     			if (in_array($this->doc_type, array('bank', 'expense_report')))
    @@ -328,18 +381,15 @@ class BookKeeping extends CommonObject
     			dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
     		}
     
    -		if (! $error) {
    +		// Uncomment this and change MYOBJECT to your own tag if you
    +		// want this action to call a trigger.
    +		//if (! $error && ! $notrigger) {
     
    -			if (! $notrigger) {
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action to call a trigger.
    -
    -				// // Call triggers
    -				// $result=$this->call_trigger('MYOBJECT_CREATE',$user);
    -				// if ($result < 0) $error++;
    -				// // End call triggers
    -			}
    -		}
    +		// // Call triggers
    +		// $result=$this->call_trigger('MYOBJECT_CREATE',$user);
    +		// if ($result < 0) $error++;
    +		// // End call triggers
    +		//}
     
     		// Commit or rollback
     		if ($error) {
    @@ -420,7 +470,8 @@ class BookKeeping extends CommonObject
     	 * @param  string  $mode 	   Mode
     	 * @return int				 <0 if KO, Id of created object if OK
     	 */
    -	public function createStd(User $user, $notrigger = false, $mode='') {
    +    public function createStd(User $user, $notrigger = false, $mode='')
    +    {
     		global $conf;
     
     		dol_syslog(__METHOD__, LOG_DEBUG);
    @@ -558,15 +609,15 @@ class BookKeeping extends CommonObject
     		if (! $error) {
     			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element . $mode);
     
    -			if (! $notrigger) {
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action to call a trigger.
    +			// Uncomment this and change MYOBJECT to your own tag if you
    +			// want this action to call a trigger.
    +			//if (! $notrigger) {
     
    -				// // Call triggers
    -				// $result=$this->call_trigger('MYOBJECT_CREATE',$user);
    -				// if ($result < 0) $error++;
    -				// // End call triggers
    -			}
    +			// // Call triggers
    +			// $result=$this->call_trigger('MYOBJECT_CREATE',$user);
    +			// if ($result < 0) $error++;
    +			// // End call triggers
    +			//}
     		}
     
     		// Commit or rollback
    @@ -590,7 +641,8 @@ class BookKeeping extends CommonObject
     	 *
     	 * @return int <0 if KO, 0 if not found, >0 if OK
     	 */
    -	public function fetch($id, $ref = null, $mode='') {
    +    public function fetch($id, $ref = null, $mode='')
    +    {
     		global $conf;
     
     		dol_syslog(__METHOD__, LOG_DEBUG);
    @@ -687,7 +739,8 @@ class BookKeeping extends CommonObject
     	 *
     	 * @return int <0 if KO, >=0 if OK
     	 */
    -	public function fetchAllByAccount($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') {
    +    public function fetchAllByAccount($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND')
    +    {
     		global $conf;
     
     		dol_syslog(__METHOD__, LOG_DEBUG);
    @@ -711,6 +764,10 @@ class BookKeeping extends CommonObject
     		$sql .= " t.credit,";
     		$sql .= " t.montant,";
     		$sql .= " t.sens,";
    +		$sql .= " t.multicurrency_amount,";
    +		$sql .= " t.multicurrency_code,";
    +		$sql .= " t.lettering_code,";
    +		$sql .= " t.date_lettering,";
     		$sql .= " t.fk_user_author,";
     		$sql .= " t.import_key,";
     		$sql .= " t.code_journal,";
    @@ -759,7 +816,8 @@ class BookKeeping extends CommonObject
     		if ($resql) {
     			$num = $this->db->num_rows($resql);
     
    -			while ( $obj = $this->db->fetch_object($resql) ) {
    +			$i = 0;
    +			while (($obj = $this->db->fetch_object($resql)) && (empty($limit) || $i < min($limit, $num))) {
     				$line = new BookKeepingLine();
     
     				$line->id = $obj->rowid;
    @@ -779,6 +837,10 @@ class BookKeeping extends CommonObject
     				$line->credit = $obj->credit;
     				$line->montant = $obj->montant;
     				$line->sens = $obj->sens;
    +				$line->multicurrency_amount = $obj->multicurrency_amount;
    +				$line->multicurrency_code = $obj->multicurrency_code;
    +				$line->lettering_code = $obj->lettering_code;
    +				$line->date_lettering = $obj->date_lettering;
     				$line->fk_user_author = $obj->fk_user_author;
     				$line->import_key = $obj->import_key;
     				$line->code_journal = $obj->code_journal;
    @@ -787,6 +849,8 @@ class BookKeeping extends CommonObject
     				$line->date_creation = $obj->date_creation;
     
     				$this->lines[] = $line;
    +
    +				$i++;
     			}
     			$this->db->free($resql);
     
    @@ -802,16 +866,16 @@ class BookKeeping extends CommonObject
     	/**
     	 * Load object in memory from the database
     	 *
    -	 * @param string $sortorder Sort Order
    -	 * @param string $sortfield Sort field
    -	 * @param int $limit offset limit
    -	 * @param int $offset offset limit
    -	 * @param array $filter filter array
    -	 * @param string $filtermode filter mode (AND or OR)
    -	 *
    -	 * @return int <0 if KO, >0 if OK
    +	 * @param string 		$sortorder 		Sort Order
    +	 * @param string 		$sortfield 		Sort field
    +	 * @param int 			$limit 			Offset limit
    +	 * @param int 			$offset 		Offset limit
    +	 * @param array 		$filter 		Filter array
    +	 * @param string 		$filtermode 	Filter mode (AND or OR)
    +	 * @return int 							<0 if KO, >0 if OK
     	 */
    -	public function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') {
    +    public function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND')
    +    {
     		global $conf;
     
     		dol_syslog(__METHOD__, LOG_DEBUG);
    @@ -831,6 +895,7 @@ class BookKeeping extends CommonObject
     		$sql .= " t.label_operation,";
     		$sql .= " t.debit,";
     		$sql .= " t.credit,";
    +		$sql .= " t.lettering_code,";
     		$sql .= " t.montant,";
     		$sql .= " t.sens,";
     		$sql .= " t.fk_user_author,";
    @@ -866,7 +931,7 @@ class BookKeeping extends CommonObject
     				}
     			}
     		}
    -		$sql.= ' WHERE entity IN (' . getEntity('accountancy') . ')';
    +		$sql.= ' WHERE t.entity IN (' . getEntity('accountancy') . ')';
     		if (count($sqlwhere) > 0) {
     			$sql .= ' AND ' . implode(' ' . $filtermode . ' ', $sqlwhere);
     		}
    @@ -883,7 +948,9 @@ class BookKeeping extends CommonObject
     		if ($resql) {
     			$num = $this->db->num_rows($resql);
     
    -			while ( $obj = $this->db->fetch_object($resql) ) {
    +			$i = 0;
    +			while (($obj = $this->db->fetch_object($resql)) && (empty($limit) || $i < min($limit, $num)))
    +			{
     				$line = new BookKeepingLine();
     
     				$line->id = $obj->rowid;
    @@ -903,6 +970,7 @@ class BookKeeping extends CommonObject
     				$line->credit = $obj->credit;
     				$line->montant = $obj->montant;
     				$line->sens = $obj->sens;
    +				$line->lettering_code = $obj->lettering_code;
     				$line->fk_user_author = $obj->fk_user_author;
     				$line->import_key = $obj->import_key;
     				$line->code_journal = $obj->code_journal;
    @@ -912,6 +980,8 @@ class BookKeeping extends CommonObject
     				$line->date_modification = $this->db->jdate($obj->date_modification);
     
     				$this->lines[] = $line;
    +
    +				$i++;
     			}
     			$this->db->free($resql);
     
    @@ -919,8 +989,7 @@ class BookKeeping extends CommonObject
     		} else {
     			$this->errors[] = 'Error ' . $this->db->lasterror();
     			dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
    -
    -			return - 1;
    +			return -1;
     		}
     	}
     
    @@ -970,8 +1039,7 @@ class BookKeeping extends CommonObject
     				}
     			}
     		}
    -		$sql.= ' WHERE 1 = 1';
    -		$sql .= " AND entity IN (" . getEntity('accountancy') . ")";
    +		$sql.= ' WHERE entity IN (' . getEntity('accountancy') . ')';
     		if (count($sqlwhere) > 0) {
     			$sql .= ' AND ' . implode(' ' . $filtermode . ' ', $sqlwhere);
     		}
    @@ -991,13 +1059,14 @@ class BookKeeping extends CommonObject
     			$num = $this->db->num_rows($resql);
     
     			$i = 0;
    -			while (($obj = $this->db->fetch_object($resql)) && ($i < min($limit, $num)))
    +			while (($obj = $this->db->fetch_object($resql)) && (empty($limit) || $i < min($limit, $num)))
     			{
     				$line = new BookKeepingLine();
     
     				$line->numero_compte = $obj->numero_compte;
     				$line->debit = $obj->debit;
     				$line->credit = $obj->credit;
    +
     				$this->lines[] = $line;
     
     				$i++;
    @@ -1021,7 +1090,8 @@ class BookKeeping extends CommonObject
     	 * @param  string  $mode       Mode
     	 * @return int                 <0 if KO, >0 if OK
     	 */
    -	public function update(User $user, $notrigger = false, $mode='') {
    +    public function update(User $user, $notrigger = false, $mode='')
    +    {
     		$error = 0;
     
     		dol_syslog(__METHOD__, LOG_DEBUG);
    @@ -1124,15 +1194,15 @@ class BookKeeping extends CommonObject
     			dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
     		}
     
    -		if (! $error && ! $notrigger) {
    -			// Uncomment this and change MYOBJECT to your own tag if you
    -			// want this action calls a trigger.
    +		// Uncomment this and change MYOBJECT to your own tag if you
    +		// want this action calls a trigger.
    +		//if (! $error && ! $notrigger) {
     
    -			// // Call triggers
    -			// $result=$this->call_trigger('MYOBJECT_MODIFY',$user);
    -			// if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    -			// // End call triggers
    -		}
    +		// // Call triggers
    +		// $result=$this->call_trigger('MYOBJECT_MODIFY',$user);
    +		// if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    +		// // End call triggers
    +		//}
     
     		// Commit or rollback
     		if ($error) {
    @@ -1190,24 +1260,23 @@ class BookKeeping extends CommonObject
     	 * @param string $mode Mode
     	 * @return int <0 if KO, >0 if OK
     	 */
    -	public function delete(User $user, $notrigger = false, $mode='') {
    +    public function delete(User $user, $notrigger = false, $mode='')
    +    {
     		dol_syslog(__METHOD__, LOG_DEBUG);
     
     		$error = 0;
     
     		$this->db->begin();
     
    -		if (! $error) {
    -			if (! $notrigger) {
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action calls a trigger.
    +		// Uncomment this and change MYOBJECT to your own tag if you
    +		// want this action calls a trigger.
    +		//if (! $error && ! $notrigger) {
     
    -				// // Call triggers
    -				// $result=$this->call_trigger('MYOBJECT_DELETE',$user);
    -				// if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    -				// // End call triggers
    -			}
    -		}
    +		// // Call triggers
    +		// $result=$this->call_trigger('MYOBJECT_DELETE',$user);
    +		// if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    +		// // End call triggers
    +		//}
     
     		if (! $error) {
     			$sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element.$mode;
    @@ -1239,7 +1308,8 @@ class BookKeeping extends CommonObject
     	 * @param  string		$importkey		Import key
     	 * @return int Result
     	 */
    -	function deleteByImportkey($importkey) {
    +    function deleteByImportkey($importkey)
    +    {
     		$this->db->begin();
     
     		// first check if line not yet in bookkeeping
    @@ -1268,7 +1338,8 @@ class BookKeeping extends CommonObject
     	 * @param  string $mode 		Mode
     	 * @return int					<0 if KO, >0 if OK
     	 */
    -	function deleteByYearAndJournal($delyear='', $journal='', $mode='') {
    +    function deleteByYearAndJournal($delyear='', $journal='', $mode='')
    +    {
     		global $conf;
     
     		if (empty($delyear) && empty($journal))
    @@ -1307,7 +1378,8 @@ class BookKeeping extends CommonObject
     	 * @param 	int 	$piecenum 	Piecenum to delete
     	 * @return 	int 				Result
     	 */
    -	function deleteMvtNum($piecenum) {
    +    function deleteMvtNum($piecenum)
    +    {
     		global $conf;
     
     		$this->db->begin();
    @@ -1341,10 +1413,12 @@ class BookKeeping extends CommonObject
     	 *
     	 * @return int New id of clone
     	 */
    -	public function createFromClone($fromid) {
    +    public function createFromClone($fromid)
    +    {
     		dol_syslog(__METHOD__, LOG_DEBUG);
     
     		global $user;
    +
     		$error = 0;
     		$object = new BookKeeping($this->db);
     
    @@ -1359,6 +1433,7 @@ class BookKeeping extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result = $object->create($user);
     
     		// Other options
    @@ -1368,6 +1443,8 @@ class BookKeeping extends CommonObject
     			dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (! $error) {
     			$this->db->commit();
    @@ -1376,7 +1453,7 @@ class BookKeeping extends CommonObject
     		} else {
     			$this->db->rollback();
     
    -			return - 1;
    +			return -1;
     		}
     	}
     
    @@ -1386,7 +1463,8 @@ class BookKeeping extends CommonObject
     	 *
     	 * @return void
     	 */
    -	public function initAsSpecimen() {
    +    public function initAsSpecimen()
    +    {
     		global $user;
     
     		$now=dol_now();
    @@ -1422,7 +1500,8 @@ class BookKeeping extends CommonObject
     	 * @param string $mode Mode
     	 * @return int <0 if KO, >0 if OK
     	 */
    -	public function fetchPerMvt($piecenum, $mode='') {
    +    public function fetchPerMvt($piecenum, $mode='')
    +    {
     		global $conf;
     
     		$sql = "SELECT piece_num,doc_date,code_journal,journal_label,doc_ref,doc_type,date_creation";
    @@ -1486,7 +1565,8 @@ class BookKeeping extends CommonObject
     	 * @param  string  $mode       Mode
     	 * @return int                 <0 if KO, >0 if OK
     	 */
    -	function fetchAllPerMvt($piecenum, $mode='') {
    +    function fetchAllPerMvt($piecenum, $mode='')
    +    {
     		global $conf;
     
     		$sql = "SELECT rowid, doc_date, doc_type,";
    @@ -1501,7 +1581,7 @@ class BookKeeping extends CommonObject
     		$result = $this->db->query($sql);
     		if ($result) {
     
    -			while ( $obj = $this->db->fetch_object($result) ) {
    +			while ($obj = $this->db->fetch_object($result)) {
     
     				$line = new BookKeepingLine();
     
    @@ -1538,13 +1618,16 @@ class BookKeeping extends CommonObject
     		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Export bookkeping
     	 *
     	 * @param	string	$model	Model
     	 * @return	int				Result
     	 */
    -	function export_bookkeping($model = 'ebp') {
    +    function export_bookkeping($model = 'ebp')
    +    {
    +        // phpcs:enable
     		global $conf;
     
     		$sql = "SELECT rowid, doc_date, doc_type,";
    @@ -1562,7 +1645,7 @@ class BookKeeping extends CommonObject
     			$this->linesexport = array ();
     
     			$num = $this->db->num_rows($resql);
    -			while ( $obj = $this->db->fetch_object($resql) ) {
    +			while ($obj = $this->db->fetch_object($resql)) {
     				$line = new BookKeepingLine();
     
     				$line->id = $obj->rowid;
    @@ -1600,9 +1683,9 @@ class BookKeeping extends CommonObject
     	/**
     	 * Transform transaction
     	 *
    -	 * @param  number   $direction     If 0 tmp => real, if 1 real => tmp
    -	 * @param  string   $piece_num     Piece num
    -	 * @return void
    +	 * @param  number   $direction      If 0 tmp => real, if 1 real => tmp
    +	 * @param  string   $piece_num      Piece num
    +	 * @return int                      int <0 if KO, >0 if OK
     	 */
     	public function transformTransaction($direction=0,$piece_num='')
     	{
    @@ -1638,8 +1721,7 @@ class BookKeeping extends CommonObject
     				$this->errors[] = 'Error ' . $this->db->lasterror();
     				dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
     			}
    -		}
    -		if ($direction==1) {
    +		} elseif ($direction==1) {
     			$sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element.'_tmp WHERE piece_num = '.$piece_num;
     			$resql = $this->db->query($sql);
     			if (! $resql) {
    @@ -1689,19 +1771,22 @@ class BookKeeping extends CommonObject
     		*/
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	* Return list of accounts with label by chart of accounts
     	*
    -	* @param string		$selectid	Preselected chart of accounts
    -	* @param string		$htmlname	Name of field in html form
    +	* @param string     $selectid   Preselected chart of accounts
    +	* @param string     $htmlname	Name of field in html form
     	* @param int		$showempty	Add an empty field
     	* @param array		$event		Event options
     	* @param int		$select_in	Value is a aa.rowid (0 default) or aa.account_number (1)
     	* @param int		$select_out	Set value returned by select 0=rowid (default), 1=account_number
     	* @param int		$aabase		Set accounting_account base class to display empty=all or from 1 to 8 will display only account beginning by this number
     	* @return string	String with HTML select
    -	*/
    -	function select_account($selectid, $htmlname = 'account', $showempty = 0, $event = array(), $select_in = 0, $select_out = 0, $aabase = '') {
    +    */
    +    function select_account($selectid, $htmlname = 'account', $showempty = 0, $event = array(), $select_in = 0, $select_out = 0, $aabase = '')
    +    {
    +        // phpcs:enable
     		global $conf;
     
     		require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
    @@ -1758,6 +1843,7 @@ class BookKeeping extends CommonObject
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Description of a root accounting account
     	 *
    @@ -1766,6 +1852,7 @@ class BookKeeping extends CommonObject
     	 */
     	function get_compte_racine($account = null)
     	{
    +        // phpcs:enable
     		global $conf;
     		$pcgver = $conf->global->CHARTOFACCOUNTS;
     
    @@ -1789,7 +1876,6 @@ class BookKeeping extends CommonObject
     			}
     
     			return $obj->label;
    -
     		} else {
     			$this->error = "Error " . $this->db->lasterror();
     			dol_syslog(__METHOD__ . " " . $this->error, LOG_ERR);
    @@ -1798,6 +1884,7 @@ class BookKeeping extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Description of accounting account
     	 *
    @@ -1806,6 +1893,7 @@ class BookKeeping extends CommonObject
     	 */
     	function get_compte_desc($account = null)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$pcgver = $conf->global->CHARTOFACCOUNTS;
    @@ -1843,12 +1931,25 @@ class BookKeeping extends CommonObject
      */
     class BookKeepingLine
     {
    +	/**
    +	 * @var int ID
    +	 */
     	public $id;
    +
     	public $doc_date = '';
     	public $doc_type;
     	public $doc_ref;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_doc;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_docdet;
    +
     	public $thirdparty_code;
     	public $subledger_account;
     	public $subledger_label;
    @@ -1859,7 +1960,12 @@ class BookKeepingLine
     	public $credit;
     	public $montant;
     	public $sens;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_author;
    +
     	public $import_key;
     	public $code_journal;
     	public $journal_label;
    diff --git a/htdocs/accountancy/class/lettering.class.php b/htdocs/accountancy/class/lettering.class.php
    index a67fd457e11..1130020b01d 100644
    --- a/htdocs/accountancy/class/lettering.class.php
    +++ b/htdocs/accountancy/class/lettering.class.php
    @@ -1,7 +1,8 @@
     <?php
    -/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2013      Olivier Geffroy      <jeff@jeffinfo.com>
    - * Copyright (C) 2013      Alexandre Spangaro   <alexandre.spangaro@gmail.com>
    +/* Copyright (C) 2004-2005  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2013       Olivier Geffroy         <jeff@jeffinfo.com>
    + * Copyright (C) 2013-2018  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -18,26 +19,27 @@
      */
     
     /**
    - * \file accountancy/class/bookkeeping.class.php
    - * \ingroup Advanced accountancy
    - * \brief 	File of class for lettering
    + * \file      	htdocs/accountancy/class/lettering.class.php
    + * \ingroup 	Advanced accountancy
    + * \brief 		File of class for lettering
      */
    +
     include_once DOL_DOCUMENT_ROOT . "/accountancy/class/bookkeeping.class.php";
     include_once DOL_DOCUMENT_ROOT . "/societe/class/societe.class.php";
     include_once DOL_DOCUMENT_ROOT . "/core/lib/date.lib.php";
     
     /**
    - * Class lettering
    + * Class Lettering
      */
    -class lettering extends BookKeeping
    +class Lettering extends BookKeeping
     {
     	/**
    -	 * lettrageTiers
    +	 * letteringThirdparty
     	 *
     	 * @param int $socid Thirdparty id
    -	 * @return void
    +	 * @return int 1 OK, <0 error
     	 */
    -	public function lettrageTiers($socid)
    +	public function letteringThirdparty($socid)
     	{
     		global $conf;
     
    @@ -47,6 +49,7 @@ class lettering extends BookKeeping
     		$object->id = $socid;
     		$object->fetch($socid);
     
    +
     		if ($object->code_compta == '411CUSTCODE') {
     			$object->code_compta = '';
     		}
    @@ -154,7 +157,7 @@ class lettering extends BookKeeping
     					$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON (bk.fk_doc = pay.fk_bank AND bk.code_journal='" . $obj->code_journal . "')";
     					$sql .= " WHERE payfac.fk_paiement = '" . $obj->url_id . "' ";
     					$sql .= " AND bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4 AND entity=".$conf->entity.") ";
    -					$sql .= " AND fac.entity = ".$conf->entity;
    +					$sql .= " AND fac.entity IN (".getEntity('invoice',0).")";// We don't share object for accountancy
     					$sql .= " AND ( ";
     					if (! empty($object->code_compta)) {
     						$sql .= "  bk.subledger_account = '" . $object->code_compta . "'  ";
    @@ -182,7 +185,7 @@ class lettering extends BookKeeping
     						$sql .= " FROM " . MAIN_DB_PREFIX . "facture fac ";
     						$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON(  bk.fk_doc = fac.rowid AND fac.rowid IN (" . implode(',', $ids_fact) . "))";
     						$sql .= " WHERE code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=2 AND entity=".$conf->entity.") ";
    -						$sql .= " AND fac.entity = ".$conf->entity;
    +						$sql .= " AND fac.entity IN (".getEntity('invoice',0).")";// We don't share object for accountancy
     						$sql .= " AND ( ";
     						if (! empty($object->code_compta)) {
     							$sql .= "  bk.subledger_account = '" . $object->code_compta . "'  ";
    @@ -208,7 +211,7 @@ class lettering extends BookKeeping
     				}
     
     				if (count($ids) > 1) {
    -					$result = $this->updatelettrage($ids);
    +					$result = $this->updateLettering($ids);
     				}
     			}
     		}
    @@ -229,7 +232,7 @@ class lettering extends BookKeeping
     	 * @param boolean $notrigger no trigger
      	 * @return number
     	 */
    -	public function updateLettrage($ids = array(), $notrigger = false)
    +	public function updateLettering($ids = array(), $notrigger = false)
     	{
     		$error = 0;
     		$lettre = 'AAA';
    diff --git a/htdocs/accountancy/customer/card.php b/htdocs/accountancy/customer/card.php
    index 7e1387db951..7d506c6c72c 100644
    --- a/htdocs/accountancy/customer/card.php
    +++ b/htdocs/accountancy/customer/card.php
    @@ -94,7 +94,7 @@ $facture_static = new Facture($db);
     $formaccounting = new FormAccounting($db);
     
     if (! empty($id)) {
    -	$sql = "SELECT f.facnumber, f.rowid as facid, l.fk_product, l.description, l.price,";
    +	$sql = "SELECT f.ref, f.rowid as facid, l.fk_product, l.description, l.price,";
     	$sql .= " l.qty, l.rowid, l.tva_tx, l.remise_percent, l.subprice, p.accountancy_code_sell as code_sell,";
     	$sql .= " l.fk_code_ventilation, aa.account_number, aa.label";
     	$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as l";
    @@ -102,7 +102,7 @@ if (! empty($id)) {
     	$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON l.fk_code_ventilation = aa.rowid";
     	$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = l.fk_facture";
     	$sql .= " WHERE f.fk_statut > 0 AND l.rowid = " . $id;
    -	$sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")"; // We don't share object for accountancy
    +	$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")"; // We don't share object for accountancy
     
     	dol_syslog("/accounting/customer/card.php sql=" . $sql, LOG_DEBUG);
     	$result = $db->query($sql);
    @@ -128,7 +128,7 @@ if (! empty($id)) {
     
     			// Ref facture
     			print '<tr><td>' . $langs->trans("Invoice") . '</td>';
    -			$facture_static->ref = $objp->facnumber;
    +			$facture_static->ref = $objp->ref;
     			$facture_static->id = $objp->facid;
     			print '<td>' . $facture_static->getNomUrl(1) . '</td>';
     			print '</tr>';
    @@ -159,5 +159,6 @@ if (! empty($id)) {
     	print "Error ID incorrect";
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php
    index 18e23826314..6995ab4d384 100644
    --- a/htdocs/accountancy/customer/index.php
    +++ b/htdocs/accountancy/customer/index.php
    @@ -89,7 +89,7 @@ if ($action == 'clean' || $action == 'validatehistory')
     	if (! $resql1) {
     		$error ++;
     		$db->rollback();
    -		setEventMessage($db->lasterror(), 'errors');
    +		setEventMessages($db->lasterror(), null, 'errors');
     	} else {
     		$db->commit();
     	}
    @@ -153,7 +153,7 @@ $y = $year_current;
     $buttonbind = '<a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?year=' . $year_current . '&action=validatehistory">' . $langs->trans("ValidateHistory") . '</a>';
     
     print_barre_liste($langs->trans("OverviewOfAmountOfLinesNotBound"), '', '', '', '', '', '', -1, '', '', 0, $buttonbind, '', 0, 1, 1);
    -//print_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
    +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
     
     print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
    @@ -180,7 +180,7 @@ $sql .= "  LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid
     $sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'";
     $sql .= "  AND f.datef <= '" . $db->idate($search_date_end) . "'";
     $sql .= " AND f.fk_statut > 0";
    -$sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")";   // We don't share object for accountancy
    +$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")";   // We don't share object for accountancy
     $sql .= " AND aa.account_number IS NULL";
     if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
     	$sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")";
    @@ -203,7 +203,7 @@ if ($resql) {
     		}
     		else print length_accountg($row[0]);
     		print '</td>';
    -		print '<td align="left">';
    +		print '<td class="left">';
     		if ($row[0] == 'tobind')
     		{
     			print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
    @@ -229,7 +229,7 @@ print '<br>';
     
     
     print_barre_liste($langs->trans("OverviewOfAmountOfLinesBound"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1);
    -//print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', '');
    +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', '');
     
     print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
    @@ -255,7 +255,7 @@ $sql .= "  LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_factu
     $sql .= "  LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation";
     $sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'";
     $sql .= "  AND f.datef <= '" . $db->idate($search_date_end) . "'";
    -$sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")";   // We don't share object for accountancy
    +$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")";   // We don't share object for accountancy
     $sql .= " AND f.fk_statut > 0";
     if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
     	$sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")";
    @@ -280,7 +280,7 @@ if ($resql) {
     		else print length_accountg($row[0]);
     		print '</td>';
     
    -		print '<td align="left">';
    +		print '<td class="left">';
     		if ($row[0] == 'tobind')
     		{
     			print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
    @@ -309,7 +309,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
     	print '<br>';
     
     	print_barre_liste($langs->trans("OtherInfo"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1);
    -	//print_fiche_titre($langs->trans("OtherInfo"), '', '');
    +	//print load_fiche_titre($langs->trans("OtherInfo"), '', '');
     
     	print '<div class="div-table-responsive-no-min">';
     	print '<table class="noborder" width="100%">';
    @@ -332,7 +332,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
     	$sql .= "  LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture";
     	$sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'";
     	$sql .= "  AND f.datef <= '" . $db->idate($search_date_end) . "'";
    -	$sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")"; // We don't share object for accountancy
    +	$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")"; // We don't share object for accountancy
     	$sql .= " AND f.fk_statut > 0";
     	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
     		$sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")";
    @@ -384,7 +384,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
     		$sql .= "  LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture";
     		$sql .= " WHERE f.datef >= '" . $db->idate($search_date_start) . "'";
     		$sql .= "  AND f.datef <= '" . $db->idate($search_date_end) . "'";
    -		$sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")";   // We don't share object for accountancy
    +		$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")";   // We don't share object for accountancy
     		$sql .= " AND f.fk_statut > 0";
     		if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
     			$sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")";
    @@ -415,6 +415,6 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
     	}
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php
    index cc0ced6b067..f13344c936b 100644
    --- a/htdocs/accountancy/customer/lines.php
    +++ b/htdocs/accountancy/customer/lines.php
    @@ -17,7 +17,6 @@
      *
      * You should have received a copy of the GNU General Public License
      * along with this program. If not, see <http://www.gnu.org/licenses/>.
    - *
      */
     
     /**
    @@ -33,6 +32,7 @@ require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array("bills","compta","accountancy","productbatch"));
    @@ -64,7 +64,7 @@ $pageprev = $page - 1;
     $pagenext = $page + 1;
     $offset = $limit * $page;
     if (! $sortfield)
    -	$sortfield = "f.datef, f.facnumber, fd.rowid";
    +	$sortfield = "f.datef, f.ref, fd.rowid";
     if (! $sortorder) {
     	if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_DONE > 0) {
     		$sortorder = "DESC";
    @@ -135,7 +135,6 @@ if (is_array($changeaccount) && count($changeaccount) > 0) {
     
     		$account_parent = '';   // Protection to avoid to mass apply it a second time
     	}
    -
     }
     
     
    @@ -168,12 +167,13 @@ print '<script type="text/javascript">
     /*
      * Customer Invoice lines
      */
    -$sql = "SELECT f.rowid as facid, f.facnumber as ref, f.type, f.datef, f.ref_client,";
    +$sql = "SELECT f.rowid as facid, f.ref as ref, f.type, f.datef, f.ref_client,";
     $sql.= " fd.rowid, fd.description, fd.product_type as line_type, fd.total_ht, fd.total_tva, fd.tva_tx, fd.vat_src_code, fd.total_ttc,";
     $sql.= " s.rowid as socid, s.nom as name, s.code_compta, s.code_client,";
     $sql.= " p.rowid as product_id, p.fk_product_type as product_type, p.ref as product_ref, p.label as product_label, p.accountancy_code_sell, aa.rowid as fk_compte, aa.account_number, aa.label as label_compte,";
     $sql.= " fd.situation_percent,";
    -$sql.= " co.label as country, s.tva_intra";
    +$sql.= " co.code as country_code, co.label as country,";
    +$sql.= " s.tva_intra";
     $parameters=array();
     $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters);    // Note that $action and $object may have been modified by hook
     $sql.=$hookmanager->resPrint;
    @@ -184,7 +184,7 @@ $sql.= " INNER JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_factur
     $sql.= " INNER JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc";
     $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "c_country as co ON co.rowid = s.fk_pays ";
     $sql.= " WHERE fd.fk_code_ventilation > 0";
    -$sql.= " AND f.entity IN (" . getEntity('facture', 0) . ")";   // We don't share object for accountancy
    +$sql.= " AND f.entity IN (" . getEntity('invoice', 0) . ")";   // We don't share object for accountancy
     $sql.= " AND f.fk_statut > 0";
     if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
     	$sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")";
    @@ -195,7 +195,7 @@ if ($search_lineid) {
         $sql .= natural_search("fd.rowid", $search_lineid, 1);
     }
     if (strlen(trim($search_invoice))) {
    -	$sql .= natural_search("f.facnumber", $search_invoice);
    +	$sql .= natural_search("f.ref", $search_invoice);
     }
     if (strlen(trim($search_ref))) {
     	$sql .= natural_search("p.ref", $search_ref);
    @@ -229,12 +229,23 @@ else if ($search_year > 0)
     	$sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($search_year,1,false))."' AND '".$db->idate(dol_get_last_day($search_year,12,false))."'";
     }
     if (strlen(trim($search_country))) {
    -	$sql .= natural_search("co.label", $search_country);
    +	$arrayofcode = getCountriesInEEC();
    +	$country_code_in_EEC = $country_code_in_EEC_without_me = '';
    +	foreach ($arrayofcode as $key => $value)
    +	{
    +		$country_code_in_EEC.=($country_code_in_EEC ? "," : "")."'".$value."'";
    +		if ($value != $mysoc->country_code) $country_code_in_EEC_without_me.=($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
    +	}
    +	if ($search_country == 'special_allnotme')     $sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
    +	elseif ($search_country == 'special_eec')      $sql .= " AND co.code IN (".$country_code_in_EEC.")";
    +	elseif ($search_country == 'special_eecnotme') $sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
    +	elseif ($search_country == 'special_noteec')   $sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
    +	else $sql .= natural_search(array("co.code","co.label"), $search_country);
     }
     if (strlen(trim($search_tvaintra))) {
     	$sql .= natural_search("s.tva_intra", $search_tvaintra);
     }
    -$sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")";    // We don't share object for accountancy
    +$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")";    // We don't share object for accountancy
     $sql .= $db->order($sortfield, $sortorder);
     
     // Count total nb of records
    @@ -297,9 +308,9 @@ if ($result) {
     	print '<tr class="liste_titre_filter">';
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth25" name="search_lineid" value="' . dol_escape_htmltag($search_lineid) . '""></td>';
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_invoice" value="' . dol_escape_htmltag($search_invoice) . '"></td>';
    -	print '<td class="liste_titre center">';
    -	if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="search_day" value="'.dol_escape_htmltag($search_day).'">';
    -   	print '<input class="flat" type="text" size="1" maxlength="2" name="search_month" value="'.dol_escape_htmltag($search_month).'">';
    +	print '<td class="liste_titre center nowraponall">';
    +	if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_day" value="'.dol_escape_htmltag($search_day).'">';
    +   	print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_month" value="'.dol_escape_htmltag($search_month).'">';
        	$formother->select_year($search_year,'search_year',1, 20, 5);
     	print '</td>';
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_ref" value="' . dol_escape_htmltag($search_ref) . '"></td>';
    @@ -307,7 +318,10 @@ if ($result) {
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_desc" value="' . dol_escape_htmltag($search_desc) . '"></td>';
     	print '<td class="liste_titre" align="right"><input type="text" class="right flat maxwidth50" name="search_amount" value="' . dol_escape_htmltag($search_amount) . '"></td>';
     	print '<td class="liste_titre" align="right"><input type="text" class="right flat maxwidth50" placeholder="%" name="search_vat" size="1" value="' . dol_escape_htmltag($search_vat) . '"></td>';
    -	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_country" value="' . dol_escape_htmltag($search_country) . '"></td>';
    +	print '<td class="liste_titre">';
    +	print $form->select_country($search_country, 'search_country', '', 0, 'maxwidth200', 'code2', 1, 0, 1);
    +	//print '<input type="text" class="flat maxwidth50" name="search_country" value="' . dol_escape_htmltag($search_country) . '">';
    +	print '</td>';
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_tvaintra" value="' . dol_escape_htmltag($search_tvaintra) . '"></td>';
     	print '<td class="liste_titre" align="center"><input type="text" class="flat maxwidth50" name="search_account" value="' . dol_escape_htmltag($search_account) . '"></td>';
     	print '<td class="liste_titre" align="center">';
    @@ -317,8 +331,8 @@ if ($result) {
     
     	print '<tr class="liste_titre">';
     	print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "fd.rowid", "", $param, '', $sortfield, $sortorder);
    -	print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder);
    -	print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.facnumber, fd.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
    +	print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder);
    +	print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.ref, fd.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
     	print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
     	//print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
     	print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "fd.description", "", $param, '', $sortfield, $sortorder);
    @@ -352,7 +366,7 @@ if ($result) {
     		print '<td>' . $objp->rowid . '</td>';
     
     		// Ref Invoice
    -		print '<td>' . $facture_static->getNomUrl(1) . '</td>';
    +		print '<td class="nowraponall">' . $facture_static->getNomUrl(1) . '</td>';
     
     		print '<td align="center">' . dol_print_date($db->jdate($objp->datef), 'day') . '</td>';
     
    @@ -370,9 +384,10 @@ if ($result) {
     		print '</td>';
     
     		print '<td align="right">' . price($objp->total_ht) . '</td>';
    +
     		print '<td align="right">' . vatrate($objp->tva_tx.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')) . '</td>';
     
    -		print '<td>' . $objp->country .'</td>';
    +		print '<td>' . $langs->trans("Country".$objp->country_code) .' ('.$objp->country_code.')</td>';
     
     		print '<td>' . $objp->tva_intra . '</td>';
     
    @@ -400,6 +415,6 @@ if ($result) {
     	print $db->lasterror();
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php
    index 69396131b02..9f95c6857b0 100644
    --- a/htdocs/accountancy/customer/list.php
    +++ b/htdocs/accountancy/customer/list.php
    @@ -34,6 +34,7 @@ require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php
     require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array("bills","compta","accountancy","other","productbatch"));
    @@ -74,7 +75,7 @@ $offset = $limit * $page;
     $pageprev = $page - 1;
     $pagenext = $page + 1;
     if (! $sortfield)
    -	$sortfield = "f.datef, f.facnumber, l.rowid";
    +	$sortfield = "f.datef, f.ref, l.rowid";
     if (! $sortorder) {
     	if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) {
     		$sortorder = "DESC";
    @@ -201,17 +202,19 @@ llxHeader('', $langs->trans("Ventilation"));
     if (empty($chartaccountcode))
     {
     	print $langs->trans("ErrorChartOfAccountSystemNotSelected");
    -	llxFooter();
    -	$db->close();
    +	// End of page
    +    llxFooter();
    +    $db->close();
     	exit;
     }
     
     // Customer Invoice lines
    -$sql = "SELECT f.rowid as facid, f.facnumber as ref, f.datef, f.type as ftype,";
    +$sql = "SELECT f.rowid as facid, f.ref as ref, f.datef, f.type as ftype,";
     $sql.= " l.rowid, l.fk_product, l.description, l.total_ht, l.fk_code_ventilation, l.product_type as type_l, l.tva_tx as tva_tx_line, l.vat_src_code,";
     $sql.= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.accountancy_code_sell as code_sell, p.tva_tx as tva_tx_prod,";
     $sql.= " aa.rowid as aarowid,";
    -$sql.= " co.label as country, s.tva_intra";
    +$sql.= " co.code as country_code, co.label as country,";
    +$sql.= " s.tva_intra";
     $parameters=array();
     $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters);    // Note that $action and $object may have been modified by hook
     $sql.=$hookmanager->resPrint;
    @@ -230,7 +233,7 @@ if ($search_lineid) {
         $sql .= natural_search("l.rowid", $search_lineid, 1);
     }
     if (strlen(trim($search_invoice))) {
    -    $sql .= natural_search("f.facnumber", $search_invoice);
    +    $sql .= natural_search("f.ref", $search_invoice);
     }
     if (strlen(trim($search_ref))) {
         $sql .= natural_search("p.ref", $search_ref);
    @@ -264,7 +267,18 @@ else if ($search_year > 0)
     	$sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($search_year,1,false))."' AND '".$db->idate(dol_get_last_day($search_year,12,false))."'";
     }
     if (strlen(trim($search_country))) {
    -	$sql .= natural_search("co.label", $search_country);
    +	$arrayofcode = getCountriesInEEC();
    +	$country_code_in_EEC = $country_code_in_EEC_without_me = '';
    +	foreach ($arrayofcode as $key => $value)
    +	{
    +		$country_code_in_EEC.=($country_code_in_EEC ? "," : "")."'".$value."'";
    +		if ($value != $mysoc->country_code) $country_code_in_EEC_without_me.=($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
    +	}
    +	if ($search_country == 'special_allnotme')     $sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
    +	elseif ($search_country == 'special_eec')      $sql .= " AND co.code IN (".$country_code_in_EEC.")";
    +	elseif ($search_country == 'special_eecnotme') $sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
    +	elseif ($search_country == 'special_noteec')   $sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
    +	else $sql .= natural_search(array("co.code","co.label"), $search_country);
     }
     if (strlen(trim($search_tvaintra))) {
     	$sql .= natural_search("s.tva_intra", $search_tvaintra);
    @@ -274,7 +288,7 @@ if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
     } else {
     	$sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")";
     }
    -$sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")";    // We don't share object for accountancy
    +$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")";    // We don't share object for accountancy
     
     // Add where from hooks
     $parameters=array();
    @@ -370,7 +384,10 @@ if ($result) {
     	print '<td class="liste_titre"><input type="text" class="flat maxwidthonsmartphone" name="search_desc" value="' . dol_escape_htmltag($search_desc) . '"></td>';
     	print '<td class="liste_titre" align="right"><input type="text" class="flat maxwidth50 right" name="search_amount" value="' . dol_escape_htmltag($search_amount) . '"></td>';
     	print '<td class="liste_titre" align="right"><input type="text" class="flat maxwidth50 right" name="search_vat" placeholder="%" size="1" value="' . dol_escape_htmltag($search_vat) . '"></td>';
    -	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_country" value="' . dol_escape_htmltag($search_country) . '"></td>';
    +	print '<td class="liste_titre">';
    +	print $form->select_country($search_country, 'search_country', '', 0, 'maxwidth200', 'code2', 1, 0, 1);
    +	//print '<input type="text" class="flat maxwidth50" name="search_country" value="' . dol_escape_htmltag($search_country) . '">';
    +	print '</td>';
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_tvaintra" value="' . dol_escape_htmltag($search_tvaintra) . '"></td>';
     	print '<td class="liste_titre"></td>';
     	print '<td class="liste_titre"></td>';
    @@ -382,8 +399,8 @@ if ($result) {
     
     	print '<tr class="liste_titre">';
     	print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder);
    -	print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder);
    -	print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.facnumber, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
    +	print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder);
    +	print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.ref, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder);
     	print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
     	//print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
     	print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder);
    @@ -449,7 +466,7 @@ if ($result) {
     		print '<td>' . $objp->rowid . '</td>';
     
     		// Ref Invoice
    -		print '<td>' . $facture_static->getNomUrl(1) . '</td>';
    +		print '<td class="nowraponall">' . $facture_static->getNomUrl(1) . '</td>';
     
     		print '<td align="center">' . dol_print_date($db->jdate($objp->datef), 'day') . '</td>';
     
    @@ -524,5 +541,6 @@ jQuery(document).ready(function() {
     });
     </script>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/expensereport/card.php b/htdocs/accountancy/expensereport/card.php
    index d9b2137157d..b245e2539a7 100644
    --- a/htdocs/accountancy/expensereport/card.php
    +++ b/htdocs/accountancy/expensereport/card.php
    @@ -167,5 +167,6 @@ if (! empty($id)) {
     	print "Error ID incorrect";
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/expensereport/index.php b/htdocs/accountancy/expensereport/index.php
    index 49b20730eef..b1187b9a480 100644
    --- a/htdocs/accountancy/expensereport/index.php
    +++ b/htdocs/accountancy/expensereport/index.php
    @@ -86,7 +86,7 @@ if ($action == 'clean' || $action == 'validatehistory')
     	if (! $resql1) {
     		$error ++;
     		$db->rollback();
    -		setEventMessage($db->lasterror(), 'errors');
    +		setEventMessages($db->lasterror(), null, 'errors');
     	} else {
     		$db->commit();
     	}
    @@ -150,7 +150,7 @@ $buttonbind = '<a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?year=' .
     
     
     print_barre_liste($langs->trans("OverviewOfAmountOfLinesNotBound"), '', '', '', '', '', '', -1, '', '', 0, $buttonbind, '', 0, 1, 1);
    -//print_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
    +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
     
     print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
    @@ -195,7 +195,7 @@ if ($resql) {
     		}
     		else print length_accountg($row[0]);
     		print '</td>';
    -		print '<td align="left">';
    +		print '<td class="left">';
     		if ($row[0] == 'tobind')
     		{
     			print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/expensereport/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
    @@ -221,7 +221,7 @@ print '<br>';
     
     
     print_barre_liste($langs->trans("OverviewOfAmountOfLinesBound"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1);
    -//print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', '');
    +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', '');
     
     
     print '<div class="div-table-responsive-no-min">';
    @@ -268,7 +268,7 @@ if ($resql) {
     		else print length_accountg($row[0]);
     		print '</td>';
     
    -		print '<td align="left">';
    +		print '<td class="left">';
     		if ($row[0] == 'tobind')
     		{
     			print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/expensereport/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
    @@ -297,7 +297,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
         print '<br>';
     
         print_barre_liste($langs->trans("OtherInfo"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1);
    -    //print_fiche_titre($langs->trans("OtherInfo"), '', '');
    +    //print load_fiche_titre($langs->trans("OtherInfo"), '', '');
     
     	print '<div class="div-table-responsive-no-min">';
         print '<table class="noborder" width="100%">';
    @@ -345,5 +345,6 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
         print '</div>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/expensereport/lines.php b/htdocs/accountancy/expensereport/lines.php
    index 473bc379057..d8dd122150c 100644
    --- a/htdocs/accountancy/expensereport/lines.php
    +++ b/htdocs/accountancy/expensereport/lines.php
    @@ -236,8 +236,6 @@ if ($result) {
     	if ($search_day)        $param .= '&search_day='.urlencode($search_day);
     	if ($search_month)      $param .= '&search_month='.urlencode($search_month);
     	if ($search_year)       $param .= '&search_year='.urlencode($search_year);
    -	if ($search_country)	$param .= "&search_country=" . urlencode($search_country);
    -	if ($search_tvaintra)	$param .= "&search_tvaintra=" . urlencode($search_tvaintra);
     
     	print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">' . "\n";
     	print '<input type="hidden" name="action" value="ventil">';
    @@ -327,7 +325,7 @@ if ($result) {
     
     		print '<td>' . $codeCompta . '</td>';
     
    -		print '<td align="left"><a href="./card.php?id=' . $objp->rowid . '&backtopage='.urlencode($_SERVER["PHP_SELF"].($param?'?'.$param:'')). '">';
    +		print '<td class="left"><a href="./card.php?id=' . $objp->rowid . '&backtopage='.urlencode($_SERVER["PHP_SELF"].($param?'?'.$param:'')). '">';
     		print img_edit();
     		print '</a></td>';
     
    @@ -349,6 +347,6 @@ if ($result) {
     	print $db->lasterror();
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/expensereport/list.php b/htdocs/accountancy/expensereport/list.php
    index a20f88f1c30..8057c9809f2 100644
    --- a/htdocs/accountancy/expensereport/list.php
    +++ b/htdocs/accountancy/expensereport/list.php
    @@ -180,8 +180,9 @@ llxHeader('', $langs->trans("ExpenseReportsVentilation"));
     if (empty($chartaccountcode))
     {
     	print $langs->trans("ErrorChartOfAccountSystemNotSelected");
    -	llxFooter();
    -	$db->close();
    +	// End of page
    +    llxFooter();
    +    $db->close();
     	exit;
     }
     
    @@ -422,5 +423,6 @@ jQuery(document).ready(function() {
     });
     </script>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/index.php b/htdocs/accountancy/index.php
    index 9a3767bd8e4..1c113a73c7e 100644
    --- a/htdocs/accountancy/index.php
    +++ b/htdocs/accountancy/index.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2016       Laurent Destailleur      <eldy@users.sourceforge.net>
    - * Copyright (C) 2016-2018  Alexandre Spangaro       <aspangaro@zendsi.com>
    + * Copyright (C) 2016-2018  Alexandre Spangaro       <aspangaro@open-dsi.fr>
      *
      * 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
    @@ -55,19 +55,19 @@ if ($conf->accounting->enabled)
     	print $langs->trans("AccountancyAreaDescIntro")."<br>\n";
     	print "<br>\n";print "<br>\n";
     
    -	print_fiche_titre('<span class="fa fa-calendar-check-o"></span> '.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."<br>\n";
    +	print load_fiche_titre('<span class="fa fa-calendar-check-o"></span> '.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."<br>\n";
     	print '<hr>';
     	print "<br>\n";
     
     	// STEPS
     	$step++;
    -	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescJournalSetup", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("AccountingJournals").'</strong>');
    +	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescJournalSetup", $step, '<a href="'.DOL_URL_ROOT.'/accountancy/admin/journals_list.php?id=35">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("AccountingJournals").'</strong>'.'</a>');
     	print "<br>\n";
     	$step++;
    -	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChartModel", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("Pcg_version").'</strong>');
    +	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChartModel", $step, '<a href="'.DOL_URL_ROOT.'/accountancy/admin/accountmodel.php">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("Pcg_version").'</strong>'.'</a>');
     	print "<br>\n";
     	$step++;
    -	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChart", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("Chartofaccounts").'</strong>');
    +	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChart", $step, '<a href="'.DOL_URL_ROOT.'/accountancy/admin/account.php">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("Chartofaccounts").'</strong>'.'</a>');
     	print "<br>\n";
     
     	print "<br>\n";
    @@ -76,20 +76,20 @@ if ($conf->accounting->enabled)
     	print "<br>\n";
     
     	$step++;
    -	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescDefault", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
    +	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescDefault", $step, '<a href="'.DOL_URL_ROOT.'/accountancy/admin/defaultaccounts.php">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>'.'</a>');
     	print "<br>\n";
     
     	$step++;
    -	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBank", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuBankAccounts").'</strong>')."\n";
    +	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBank", $step, '<a href="'.DOL_URL_ROOT.'/compta/bank/list.php">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuBankAccounts").'</strong>'.'</a>')."\n";
     	print "<br>\n";
     
     	$step++;
    -	$textlink = '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup").'-'.$langs->transnoentitiesnoconv("MenuVatAccounts").'</strong>';
    +	$textlink = '<a href="'.DOL_URL_ROOT.'/admin/dict.php?id=10&from=accountancy">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup").'-'.$langs->transnoentitiesnoconv("MenuVatAccounts").'</strong>'.'</a>';
     	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescVat", $step, $textlink);
     	print "<br>\n";
     	if (! empty($conf->tax->enabled))
     	{
    -	    $textlink = '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup").'-'.$langs->transnoentitiesnoconv("MenuTaxAccounts").'</strong>';
    +	     $textlink = '<a href="'.DOL_URL_ROOT.'/admin/dict.php?id=7&from=accountancy">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup").'-'.$langs->transnoentitiesnoconv("MenuTaxAccounts").'</strong>'.'</a>';
     	    $step++;
     	    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescContrib", $step, $textlink);
     	    print "<br>\n";
    @@ -105,7 +105,7 @@ if ($conf->accounting->enabled)
     	if (! empty($conf->expensereport->enabled))  // TODO Move this in the default account page because this is only one accounting account per purpose, not several.
     	{
     	    $step++;
    -	    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescExpenseReport", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuExpenseReportAccounts").'</strong>');
    +	    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescExpenseReport", $step, '<a href="'.DOL_URL_ROOT.'/admin/dict.php?id=17&from=accountancy">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuExpenseReportAccounts").'</strong>'.'</a>');
     	    print "<br>\n";
     	}
     	/*
    @@ -118,12 +118,18 @@ if ($conf->accounting->enabled)
     	if (! empty($conf->don->enabled))
     	{
     	    $step++;
    -	    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescDonation", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDonationAccounts").'</strong>');
    +	    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescDonation", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
    +	    print "<br>\n";
    +	}
    +	if (! empty($conf->adherents->enabled))
    +	{
    +	    $step++;
    +	    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescSubscription", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
     	    print "<br>\n";
     	}*/
     
     	$step++;
    -	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescProd", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("ProductsBinding").'</strong>');
    +	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescProd", $step, '<a href="'.DOL_URL_ROOT.'/accountancy/admin/productaccount.php">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("ProductsBinding").'</strong>'.'</a>');
     	print "<br>\n";
     
     
    @@ -131,7 +137,7 @@ if ($conf->accounting->enabled)
     
     
     	print "<br>\n";
    -	print_fiche_titre('<span class="fa fa-calendar"></span> '.$langs->trans("AccountancyAreaDescActionFreq"), '', '');
    +	print load_fiche_titre('<span class="fa fa-calendar"></span> '.$langs->trans("AccountancyAreaDescActionFreq"), '', '');
     	print '<hr>';
     	print "<br>\n";
     	$step = 0;
    @@ -139,18 +145,18 @@ if ($conf->accounting->enabled)
     	$langs->loadLangs(array('bills', 'trips'));
     
     	$step++;
    -	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("BillsCustomers"), '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("CustomersVentilation").'</strong>')."\n";
    +	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("BillsCustomers"), '<a href="'.DOL_URL_ROOT.'/accountancy/customer/index.php">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("CustomersVentilation").'</strong>'.'</a>')."\n";
     	print "<br>\n";
     
     	$step++;
    -	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("BillsSuppliers"), '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("SuppliersVentilation").'</strong>')."\n";
    +	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("BillsSuppliers"), '<a href="'.DOL_URL_ROOT.'/accountancy/supplier/index.php">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("SuppliersVentilation").'</strong>'.'</a>')."\n";
     	print "<br>\n";
     
     	if (! empty($conf->expensereport->enabled) || ! empty($conf->deplacement->enabled))
     	{
     		$step++;
    -		print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("ExpenseReports"), '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("ExpenseReportsVentilation").'</strong>')."\n";
    -		print "<br>\n";
    +		print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("ExpenseReports"), '<a href="'.DOL_URL_ROOT.'/accountancy/expensereport/index.php">'.'<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("ExpenseReportsVentilation").'</strong>'.'</a>')."\n";
    +	    print "<br>\n";
     	}
     
     	$step++;
    @@ -166,5 +172,6 @@ else
     	print $langs->trans("Module10Desc")."<br>\n";
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
    index 6bf387c9b0e..40fca78ab3b 100644
    --- a/htdocs/accountancy/journal/bankjournal.php
    +++ b/htdocs/accountancy/journal/bankjournal.php
    @@ -1,14 +1,14 @@
     <?php
    -/* Copyright (C) 2007-2010  Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2010  Jean Heimburger     <jean@tiaris.info>
    - * Copyright (C) 2011       Juanjo Menent       <jmenent@2byte.es>
    - * Copyright (C) 2012       Regis Houssin       <regis.houssin@capnetworks.com>
    - * Copyright (C) 2013       Christophe Battarel <christophe.battarel@altairis.fr>
    - * Copyright (C) 2013-2018  Alexandre Spangaro  <aspangaro@zendsi.com>
    - * Copyright (C) 2013-2014  Florian Henry       <florian.henry@open-concept.pro>
    - * Copyright (C) 2013-2014  Olivier Geffroy     <jeff@jeffinfo.com>
    - * Copyright (C) 2017       Frédéric France     <frederic.france@netlogic.fr>
    - * Copyright (C) 2018		Ferran Marcet		<fmarcet@2byte.es>
    +/* Copyright (C) 2007-2010  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2007-2010  Jean Heimburger         <jean@tiaris.info>
    + * Copyright (C) 2011       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2012       Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2013       Christophe Battarel     <christophe.battarel@altairis.fr>
    + * Copyright (C) 2013-2018  Alexandre Spangaro      <aspangaro@open-dsi.fr>
    + * Copyright (C) 2013-2014  Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2013-2014  Olivier Geffroy         <jeff@jeffinfo.com>
    + * Copyright (C) 2017-2018  Frédéric France         <frederic.france@netlogic.fr>
    + * Copyright (C) 2018		Ferran Marcet		    <fmarcet@2byte.es>
      *
      * 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
    @@ -34,6 +34,7 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/report.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/bank.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
    +require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php';
     require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php';
     require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
     require_once DOL_DOCUMENT_ROOT . '/user/class/user.class.php';
    @@ -56,9 +57,10 @@ require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/paymentvarious.class.php';
     require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
     require_once DOL_DOCUMENT_ROOT . '/loan/class/loan.class.php';
     require_once DOL_DOCUMENT_ROOT . '/loan/class/paymentloan.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/adherents/class/subscription.class.php';
     
     // Load translation files required by the page
    -$langs->loadLangs(array("companies","other","compta","banks","bills","donations","loan","accountancy","trips","salaries","hrm"));
    +$langs->loadLangs(array("companies","other","compta","banks","bills","donations","loan","accountancy","trips","salaries","hrm","members"));
     
     // Multi journal
     $id_journal = GETPOST('id_journal', 'int');
    @@ -148,6 +150,10 @@ $paymentsalstatic = new PaymentSalary($db);
     $paymentexpensereportstatic = new PaymentExpenseReport($db);
     $paymentvariousstatic = new PaymentVarious($db);
     $paymentloanstatic = new PaymentLoan($db);
    +$accountLinestatic=new AccountLine($db);
    +$paymentsubscriptionstatic = new Subscription($db);
    +
    +$accountingaccount = new AccountingAccount($db);
     
     // Get code of finance journal
     $accountingjournalstatic = new AccountingJournal($db);
    @@ -155,6 +161,7 @@ $accountingjournalstatic->fetch($id_journal);
     $journal = $accountingjournalstatic->code;
     $journal_label = $accountingjournalstatic->label;
     
    +
     dol_syslog("accountancy/journal/bankjournal.php", LOG_DEBUG);
     $result = $db->query($sql);
     if ($result) {
    @@ -163,12 +170,13 @@ if ($result) {
     	//print $sql;
     
     	// Variables
    -	$account_supplier = (! empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined');	// NotDefined is a reserved word
    -	$account_customer = (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined');	// NotDefined is a reserved word
    -	$account_employee = (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : 'NotDefined');	// NotDefined is a reserved word
    -	$account_pay_vat = (! empty($conf->global->ACCOUNTING_VAT_PAY_ACCOUNT) ? $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT : 'NotDefined');	// NotDefined is a reserved word
    -	$account_pay_donation = (! empty($conf->global->DONATION_ACCOUNTINGACCOUNT) ? $conf->global->DONATION_ACCOUNTINGACCOUNT : 'NotDefined');	// NotDefined is a reserved word
    -	$account_transfer = (! empty($conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH) ? $conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH : 'NotDefined');	// NotDefined is a reserved word
    +	$account_supplier			= (! empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined');	// NotDefined is a reserved word
    +	$account_customer			= (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined');	// NotDefined is a reserved word
    +	$account_employee			= (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : 'NotDefined');	// NotDefined is a reserved word
    +	$account_pay_vat			= (! empty($conf->global->ACCOUNTING_VAT_PAY_ACCOUNT) ? $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT : 'NotDefined');	// NotDefined is a reserved word
    +	$account_pay_donation		= (! empty($conf->global->DONATION_ACCOUNTINGACCOUNT) ? $conf->global->DONATION_ACCOUNTINGACCOUNT : 'NotDefined');	// NotDefined is a reserved word
    +	$account_pay_subscription	= (! empty($conf->global->ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT) ? $conf->global->ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT : 'NotDefined');	// NotDefined is a reserved word
    +	$account_transfer			= (! empty($conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH) ? $conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH : 'NotDefined');	// NotDefined is a reserved word
     
     	$tabcompany = array();
     	$tabuser = array();
    @@ -259,7 +267,7 @@ if ($result) {
     			// Now loop on each link of record in bank.
     			foreach ($links as $key => $val) {
     
    -				if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'payment_loan', 'payment_salary', 'payment_various')))
    +				if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'member', 'payment_loan', 'payment_salary', 'payment_various')))
     				{
     					// So we excluded 'company' and 'user' here. We want only payment lines
     
    @@ -337,6 +345,14 @@ if ($result) {
     					$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentdonstatic->getNomUrl(2);
     					$tabpay[$obj->rowid]["paymentdonationid"] = $paymentdonstatic->id;
     					$tabtp[$obj->rowid][$account_pay_donation] += $obj->amount;
    +				} else if ($links[$key]['type'] == 'member') {
    +					$paymentsubscriptionstatic->id = $links[$key]['url_id'];
    +					$paymentsubscriptionstatic->ref = $links[$key]['url_id'];
    +					$paymentsubscriptionstatic->label = $links[$key]['label'];
    +					$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentsubscriptionstatic->getNomUrl(2);
    +					$tabpay[$obj->rowid]["paymentsubscriptionid"] = $paymentsubscriptionstatic->id;
    +					$paymentsubscriptionstatic->fetch($paymentsubscriptionstatic->id);
    +					$tabtp[$obj->rowid][$account_pay_subscription] += $obj->amount;
     				} else if ($links[$key]['type'] == 'payment_vat') {				// Payment VAT
     					$paymentvatstatic->id = $links[$key]['url_id'];
     					$paymentvatstatic->ref = $links[$key]['url_id'];
    @@ -383,7 +399,8 @@ if ($result) {
     						$tabtp[$obj->rowid][$objmid->accountancy_account_interest] -= $objmid->amount_interest;
     					}
     				} else if ($links[$key]['type'] == 'banktransfert') {
    -					$tabpay[$obj->rowid]["lib"] .= ' ' . $langs->trans("BankTransfer");
    +					$accountLinestatic->fetch($links[$key]['url_id']);
    +					$tabpay[$obj->rowid]["lib"] .= ' '.$langs->trans("BankTransfer").'- ' .$accountLinestatic ->getNomUrl(1);
     					$tabtp[$obj->rowid][$account_transfer] += $obj->amount;
     					$bankaccountstatic->fetch($tabpay[$obj->rowid]['fk_bank_account']);
     					$tabpay[$obj->rowid]["soclib"] = $bankaccountstatic->getNomUrl(2);
    @@ -472,7 +489,11 @@ if (! $error && $action == 'writebookkeeping') {
     					$bookkeeping->fk_doc = $key;
     					$bookkeeping->fk_docdet = $val["fk_bank"];
     					$bookkeeping->numero_compte = $k;
    -					$bookkeeping->label_compte = $langs->trans("Bank");
    +
    +					$accountingaccount->fetch(null, $k, true);
    +					$bookkeeping->label_compte = $accountingaccount->label;
    +
    +					$bookkeeping->label_operation = $reflabel;
     					$bookkeeping->montant = $mt;
     					$bookkeeping->sens = ($mt >= 0) ? 'D' : 'C';
     					$bookkeeping->debit = ($mt >= 0 ? $mt : 0);
    @@ -528,6 +549,7 @@ if (! $error && $action == 'writebookkeeping') {
     						$bookkeeping->doc_type = 'bank';
     						$bookkeeping->fk_doc = $key;
     						$bookkeeping->fk_docdet = $val["fk_bank"];
    +						$bookkeeping->label_operation = $reflabel;
     						$bookkeeping->montant = $mt;
     						$bookkeeping->sens = ($mt < 0) ? 'D' : 'C';
     						$bookkeeping->debit = ($mt < 0 ? - $mt : 0);
    @@ -541,22 +563,30 @@ if (! $error && $action == 'writebookkeeping') {
     							$bookkeeping->subledger_account = $tabcompany[$key]['code_compta'];
     							$bookkeeping->subledger_label = $tabcompany[$key]['name'];
     							$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
    -							$bookkeeping->label_compte = '';
    +
    +							$accountingaccount->fetch(null, $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER, true);
    +							$bookkeeping->label_compte = $accountingaccount->label;
     						} else if ($tabtype[$key] == 'payment_supplier') {		   // If payment is payment of supplier invoice, we get ref of invoice
     							$bookkeeping->subledger_account = $tabcompany[$key]['code_compta'];
     							$bookkeeping->subledger_label = $tabcompany[$key]['name'];
     							$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER;
    -							$bookkeeping->label_compte = '';
    +
    +							$accountingaccount->fetch(null, $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER, true);
    +							$bookkeeping->label_compte = $accountingaccount->label;
     						} else if ($tabtype[$key] == 'payment_expensereport') {
     							$bookkeeping->subledger_account = $tabuser[$key]['accountancy_code'];
     							$bookkeeping->subledger_label = $tabuser[$key]['name'];
     							$bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT;
    -							$bookkeeping->label_compte = '';
    +
    +							$accountingaccount->fetch(null, $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT, true);
    +							$bookkeeping->label_compte = $accountingaccount->label;
     						} else if ($tabtype[$key] == 'payment_salary') {
     							$bookkeeping->subledger_account = $tabuser[$key]['accountancy_code'];
     							$bookkeeping->subledger_label = $tabuser[$key]['name'];
     							$bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT;
    -							$bookkeeping->label_compte = '';
    +
    +							$accountingaccount->fetch(null, $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT, true);
    +							$bookkeeping->label_compte = $accountingaccount->label;
     						} else if (in_array($tabtype[$key], array('sc', 'payment_sc'))) {   // If payment is payment of social contribution
     							$bookkeeping->subledger_account = '';
     							$bookkeeping->subledger_label = '';
    @@ -566,27 +596,44 @@ if (! $error && $action == 'writebookkeeping') {
     							$bookkeeping->subledger_account = '';
     							$bookkeeping->subledger_label = '';
     							$bookkeeping->numero_compte = $k;
    -							$bookkeeping->label_compte = '';
    +
    +							$accountingaccount->fetch(null, $k, true);
    +							$bookkeeping->label_compte = $accountingaccount->label;
     						} else if ($tabtype[$key] == 'payment_donation') {
     							$bookkeeping->subledger_account = '';
     							$bookkeeping->subledger_label = '';
     							$bookkeeping->numero_compte = $k;
    -							$bookkeeping->label_compte = '';
    +
    +							$accountingaccount->fetch(null, $k, true);
    +							$bookkeeping->label_compte = $accountingaccount->label;
    +						} else if ($tabtype[$key] == 'member') {
    +							$bookkeeping->subledger_account = '';
    +							$bookkeeping->subledger_label = '';
    +							$bookkeeping->numero_compte = $k;
    +
    +							$accountingaccount->fetch(null, $k, true);
    +							$bookkeeping->label_compte = $accountingaccount->label;
     						} else if ($tabtype[$key] == 'payment_loan') {
     							$bookkeeping->subledger_account = '';
     							$bookkeeping->subledger_label = '';
     							$bookkeeping->numero_compte = $k;
    -							$bookkeeping->label_compte = '';
    +
    +							$accountingaccount->fetch(null, $k, true);
    +							$bookkeeping->label_compte = $accountingaccount->label;
     						} else if ($tabtype[$key] == 'payment_various') {
     							$bookkeeping->subledger_account = '';
     							$bookkeeping->subledger_label = '';
     							$bookkeeping->numero_compte = $k;
    -							$bookkeeping->label_compte = '';
    +
    +							$accountingaccount->fetch(null, $k, true);
    +							$bookkeeping->label_compte = $accountingaccount->label;
     						} else if ($tabtype[$key] == 'banktransfert') {
     							$bookkeeping->subledger_account = '';
     							$bookkeeping->subledger_label = '';
     							$bookkeeping->numero_compte = $k;
    -							$bookkeeping->label_compte = '';
    +
    +							$accountingaccount->fetch(null, $k, true);
    +							$bookkeeping->label_compte = $accountingaccount->label;
     						} else {
     							if ($tabtype[$key] == 'unknown')	// Unknown transaction, we will use a waiting account for thirdparty.
     							{
    @@ -594,7 +641,9 @@ if (! $error && $action == 'writebookkeeping') {
     								$bookkeeping->subledger_account = '';
     								$bookkeeping->subledger_label = '';
     								$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE;
    -								$bookkeeping->label_compte = '';
    +
    +								$accountingaccount->fetch(null, $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE, true);
    +								$bookkeeping->label_compte = $accountingaccount->label;
     							}
     						}
     						$bookkeeping->label_operation = $reflabel;
    @@ -732,6 +781,7 @@ if ($action == 'exportcsv') {		// ISO and not UTF8 !
     	$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
     
     	$filename = 'journal';
    +	$type_export = 'journal';
     	include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php';
     
     	// CSV header line
    @@ -863,7 +913,8 @@ if (empty($action) || $action == 'view') {
     	$description.= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
     
     	$listofchoices=array('notyet'=>$langs->trans("NotYetInGeneralLedger"), 'already'=>$langs->trans("AlreadyInGeneralLedger"));
    -	$period = $form->select_date($date_start?$date_start:-1, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end?$date_end:-1, 'date_end', 0, 0, 0, '', 1, 0, 1). ' -  ' .$langs->trans("JournalizationInLedgerStatus").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1);
    +    $period = $form->selectDate($date_start?$date_start:-1, 'date_start', 0, 0, 0, '', 1, 0) . ' - ' . $form->selectDate($date_end?$date_end:-1, 'date_end', 0, 0, 0, '', 1, 0);
    +    $period .= ' -  ' .$langs->trans("JournalizationInLedgerStatus").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1);
     
     	$varlink = 'id_journal=' . $id_journal;
     
    @@ -895,9 +946,18 @@ if (empty($action) || $action == 'view') {
     
     
     	print '<div class="tabsAction tabsActionNoBottom">';
    +
     	if (! empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL)) print '<input type="button" class="butAction" name="exportcsv" value="' . $langs->trans("ExportDraftJournal") . '" onclick="launch_export();" />';
    -	if ($in_bookkeeping == 'notyet') print '<input type="button" class="butAction" name="writebookkeeping" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
    -	else print '<a class="butActionRefused" name="writebookkeeping">' . $langs->trans("WriteBookKeeping") . '</a>';
    +
    +	if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1'
    +	    || empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') {
    +	   print '<input type="button" class="butActionRefused classfortooltip" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="' . $langs->trans("WriteBookKeeping") . '" />';
    +	}
    +	else {
    +	    if ($in_bookkeeping == 'notyet') print '<input type="button" class="butAction" name="writebookkeeping" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
    +        else print '<a class="butActionRefused classfortooltip" name="writebookkeeping">' . $langs->trans("WriteBookKeeping") . '</a>';
    +	}
    +
     	print '</div>';
     
     	// TODO Avoid using js. We can use a direct link with $param
    @@ -1007,11 +1067,13 @@ if (empty($action) || $action == 'view') {
     					print "<td>";
     					$account_ledger = $k;
     					// Try to force general ledger account depending on type
    -					if ($tabtype[$key] == 'payment') $account_ledger = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
    -					if ($tabtype[$key] == 'payment_supplier') $account_ledger = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER;
    -					if ($tabtype[$key] == 'payment_expensereport') $account_ledger = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT;
    -					if ($tabtype[$key] == 'payment_salary') $account_ledger = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT;
    -					if ($tabtype[$key] == 'payment_vat') $account_ledger = $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT;
    +					if ($tabtype[$key] == 'payment')				$account_ledger = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
    +					if ($tabtype[$key] == 'payment_supplier')		$account_ledger = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER;
    +					if ($tabtype[$key] == 'payment_expensereport')	$account_ledger = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT;
    +					if ($tabtype[$key] == 'payment_salary')			$account_ledger = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT;
    +					if ($tabtype[$key] == 'payment_vat')			$account_ledger = $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT;
    +					if ($tabtype[$key] == 'member')					$account_ledger = $conf->global->ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT;
    +
     					$accounttoshow = length_accounta($account_ledger);
     					if (empty($accounttoshow) || $accounttoshow == 'NotDefined')
     					{
    @@ -1031,11 +1093,12 @@ if (empty($action) || $action == 'view') {
     						{
     							// We will refuse writing
     							$errorstring='UnknownAccountForThirdpartyBlocking';
    -							if ($tabtype[$key] == 'payment') $errorstring='MainAccountForCustomersNotDefined';
    -							if ($tabtype[$key] == 'payment_supplier') $errorstring='MainAccountForSuppliersNotDefined';
    -							if ($tabtype[$key] == 'payment_expensereport') $errorstring='MainAccountForUsersNotDefined';
    -							if ($tabtype[$key] == 'payment_salary') $errorstring='MainAccountForUsersNotDefined';
    -							if ($tabtype[$key] == 'payment_vat') $errorstring='MainAccountForVatPaymentNotDefined';
    +							if ($tabtype[$key] == 'payment')				$errorstring='MainAccountForCustomersNotDefined';
    +							if ($tabtype[$key] == 'payment_supplier')		$errorstring='MainAccountForSuppliersNotDefined';
    +							if ($tabtype[$key] == 'payment_expensereport')	$errorstring='MainAccountForUsersNotDefined';
    +							if ($tabtype[$key] == 'payment_salary')			$errorstring='MainAccountForUsersNotDefined';
    +							if ($tabtype[$key] == 'payment_vat')			$errorstring='MainAccountForVatPaymentNotDefined';
    +							if ($tabtype[$key] == 'member')					$errorstring='MainAccountForSubscriptionPaymentNotDefined';
     							print '<span class="error">'.$langs->trans($errorstring).'</span>';
     						}
     					}
    @@ -1122,7 +1185,7 @@ $db->close();
      *
      * @param 	string 	$val			Array of val
      * @param 	string	$typerecord		Type of record ('payment', 'payment_supplier', 'payment_expensereport', 'payment_vat', ...)
    - * @return string|unknown
    + * @return 	string					A string label to describe a record into llx_bank_url
      */
     function getSourceDocRef($val, $typerecord)
     {
    @@ -1132,93 +1195,93 @@ function getSourceDocRef($val, $typerecord)
     	// WE MUST HAVE SAME REF FOR ALL LINES WE WILL RECORD INTO THE BOOKKEEPING
     	$ref = $val['ref'];
     	if ($ref == '(SupplierInvoicePayment)' || $ref == '(SupplierInvoicePaymentBack)') {
    -		$ref = $langs->trans('Supplier');
    +		$ref = $langs->transnoentitiesnoconv('Supplier');
     	}
     	if ($ref == '(CustomerInvoicePayment)' || $ref == '(CustomerInvoicePaymentBack)') {
    -		$ref = $langs->trans('Customer');
    +		$ref = $langs->transnoentitiesnoconv('Customer');
     	}
     	if ($ref == '(SocialContributionPayment)') {
    -		$ref = $langs->trans('SocialContribution');
    +		$ref = $langs->transnoentitiesnoconv('SocialContribution');
     	}
     	if ($ref == '(DonationPayment)') {
    -		$ref = $langs->trans('Donation');
    +		$ref = $langs->transnoentitiesnoconv('Donation');
     	}
     	if ($ref == '(SubscriptionPayment)') {
    -		$ref = $langs->trans('Subscription');
    +		$ref = $langs->transnoentitiesnoconv('Subscription');
     	}
     	if ($ref == '(ExpenseReportPayment)') {
    -		$ref = $langs->trans('Employee');
    +		$ref = $langs->transnoentitiesnoconv('Employee');
     	}
     	if ($ref == '(LoanPayment)') {
    -		$ref = $langs->trans('Loan');
    +		$ref = $langs->transnoentitiesnoconv('Loan');
     	}
     	if ($ref == '(payment_salary)') {
    -		$ref = $langs->trans('Employee');
    +		$ref = $langs->transnoentitiesnoconv('Employee');
     	}
     
     	$sqlmid = '';
     	if ($typerecord == 'payment')
     	{
    -		$sqlmid = 'SELECT payfac.fk_facture as id, f.facnumber as ref';
    +		$sqlmid = 'SELECT payfac.fk_facture as id, f.ref as ref';
     		$sqlmid .= " FROM ".MAIN_DB_PREFIX."paiement_facture as payfac, ".MAIN_DB_PREFIX."facture as f";
     		$sqlmid .= " WHERE payfac.fk_facture = f.rowid AND payfac.fk_paiement=" . $val["paymentid"];
    -		$ref = $langs->trans("Invoice");
    +		$ref = $langs->transnoentitiesnoconv("Invoice");
     	}
     	elseif ($typerecord == 'payment_supplier')
     	{
     		$sqlmid = 'SELECT payfac.fk_facturefourn as id, f.ref';
     		$sqlmid .= " FROM " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfac, ".MAIN_DB_PREFIX."facture_fourn as f";
     		$sqlmid .= " WHERE payfac.fk_facturefourn = f.rowid AND payfac.fk_paiementfourn=" . $val["paymentsupplierid"];
    -		$ref = $langs->trans("SupplierInvoice");
    +		$ref = $langs->transnoentitiesnoconv("SupplierInvoice");
     	}
     	elseif ($typerecord == 'payment_expensereport')
     	{
     		$sqlmid = 'SELECT e.rowid as id, e.ref';
     		$sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_expensereport as pe, " . MAIN_DB_PREFIX . "expensereport as e";
     		$sqlmid .= " WHERE pe.rowid=" . $val["paymentexpensereport"]." AND pe.fk_expensereport = e.rowid";
    -		$ref = $langs->trans("ExpenseReport");
    +		$ref = $langs->transnoentitiesnoconv("ExpenseReport");
     	}
     	elseif ($typerecord == 'payment_salary')
     	{
     		$sqlmid = 'SELECT s.rowid as ref';
     		$sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_salary as s";
     		$sqlmid .= " WHERE s.rowid=" . $val["paymentsalid"];
    -		$ref = $langs->trans("SalaryPayment");
    +		$ref = $langs->transnoentitiesnoconv("SalaryPayment");
     	}
     	elseif ($typerecord == 'sc')
     	{
     		$sqlmid = 'SELECT sc.rowid as ref';
     		$sqlmid .= " FROM " . MAIN_DB_PREFIX . "paiementcharge as sc";
     		$sqlmid .= " WHERE sc.rowid=" . $val["paymentscid"];
    -		$ref = $langs->trans("SocialContribution");
    +		$ref = $langs->transnoentitiesnoconv("SocialContribution");
     	}
     	elseif ($typerecord == 'payment_vat')
     	{
     		$sqlmid = 'SELECT v.rowid as ref';
     		$sqlmid .= " FROM " . MAIN_DB_PREFIX . "tva as v";
     		$sqlmid .= " WHERE v.rowid=" . $val["paymentvatid"];
    -		$ref = $langs->trans("PaymentVat");
    +		$ref = $langs->transnoentitiesnoconv("PaymentVat");
     	}
     	elseif ($typerecord == 'payment_donation')
     	{
     		$sqlmid = 'SELECT payd.fk_donation as ref';
     		$sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_donation as payd";
     		$sqlmid .= " WHERE payd.fk_donation=" . $val["paymentdonationid"];
    -		$ref = $langs->trans("Donation");
    +		$ref = $langs->transnoentitiesnoconv("Donation");
     	}
     	elseif ($typerecord == 'payment_loan')
     	{
     		$sqlmid = 'SELECT l.rowid as ref';
     		$sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_loan as l";
     		$sqlmid .= " WHERE l.rowid=" . $val["paymentloanid"];
    -		$ref = $langs->trans("LoanPayment");
    +		$ref = $langs->transnoentitiesnoconv("LoanPayment");
     	}
     	elseif ($typerecord == 'payment_various')
     	{
     		$sqlmid = 'SELECT v.rowid as ref';
     		$sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_various as v";
     		$sqlmid .= " WHERE v.rowid=" . $val["paymentvariousid"];
    -		$ref = $langs->trans("VariousPayment");
    +		$ref = $langs->transnoentitiesnoconv("VariousPayment");
     	}
     	// Add warning
     	if (empty($sqlmid))
    @@ -1230,7 +1293,8 @@ function getSourceDocRef($val, $typerecord)
     	{
     		dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG);
     		$resultmid = $db->query($sqlmid);
    -		if ($resultmid) {
    +		if ($resultmid)
    +		{
     			while ($objmid = $db->fetch_object($resultmid))
     			{
     				$ref.=' '.$objmid->ref;
    @@ -1239,6 +1303,6 @@ function getSourceDocRef($val, $typerecord)
     		else dol_print_error($db);
     	}
     
    -	$ref = dol_trunc($langs->trans("BankId").' '.$val['fk_bank'].' - '.$ref, 295);	// 295 + 3 ... i< < than max size of 300
    +	$ref = dol_trunc($langs->transnoentitiesnoconv("BankId").' '.$val['fk_bank'].' - '.$ref, 295);	// 295 + 3 dots (...) is < than max size of 300
     	return $ref;
     }
    diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php
    index 07982f107fd..3147339601c 100644
    --- a/htdocs/accountancy/journal/expensereportsjournal.php
    +++ b/htdocs/accountancy/journal/expensereportsjournal.php
    @@ -1,11 +1,12 @@
     <?php
    -/* Copyright (C) 2007-2010  Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2010  Jean Heimburger		<jean@tiaris.info>
    - * Copyright (C) 2011       Juanjo Menent		<jmenent@2byte.es>
    - * Copyright (C) 2012       Regis Houssin		<regis.houssin@capnetworks.com>
    - * Copyright (C) 2013-2017  Alexandre Spangaro	<aspangaro@zendsi.com>
    - * Copyright (C) 2013-2016  Olivier Geffroy		<jeff@jeffinfo.com>
    - * Copyright (C) 2013-2016  Florian Henry		<florian.henry@open-concept.pro>
    +/* Copyright (C) 2007-2010  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2007-2010  Jean Heimburger         <jean@tiaris.info>
    + * Copyright (C) 2011       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2012       Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2013-2018  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2013-2016  Olivier Geffroy         <jeff@jeffinfo.com>
    + * Copyright (C) 2013-2016  Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -60,6 +61,7 @@ if ($user->societe_id > 0)
     /*
      * Actions
      */
    +$accountingaccount = new AccountingAccount($db);
     
     // Get informations of journal
     $accountingjournalstatic = new AccountingJournal($db);
    @@ -207,8 +209,12 @@ if ($action == 'writebookkeeping') {
     					$bookkeeping->fk_doc = $key;
     					$bookkeeping->fk_docdet = $val["fk_expensereportdet"];
     					$bookkeeping->subledger_account = $tabuser[$key]['user_accountancy_code'];
    -					$bookkeeping->subledger_label = $tabuser[$key]['user_accountancy_code'];
    +					$bookkeeping->subledger_label = $tabuser[$key]['name'];
     					$bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT;
    +
    +					$accountingaccount->fetch(null, $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT, true);
    +					$bookkeeping->label_compte = $accountingaccount->label;
    +
     					$bookkeeping->label_operation = $tabuser[$key]['name'];
     					$bookkeeping->montant = $mt;
     					$bookkeeping->sens = ($mt >= 0) ? 'C' : 'D';
    @@ -247,7 +253,6 @@ if ($action == 'writebookkeeping') {
     			foreach ( $tabht[$key] as $k => $mt ) {
     				if ($mt) {
     					// get compte id and label
    -					$accountingaccount = new AccountingAccount($db);
     					if ($accountingaccount->fetch(null, $k, true)) {
     						$bookkeeping = new BookKeeping($db);
     						$bookkeeping->doc_date = $val["date"];
    @@ -259,6 +264,7 @@ if ($action == 'writebookkeeping') {
     						$bookkeeping->subledger_account = '';
     						$bookkeeping->subledger_label = '';
     						$bookkeeping->numero_compte = $k;
    +						$bookkeeping->label_compte = $accountingaccount->label;
     						$bookkeeping->label_operation = $accountingaccount->label;
     						$bookkeeping->montant = $mt;
     						$bookkeeping->sens = ($mt < 0) ? 'C' : 'D';
    @@ -315,6 +321,10 @@ if ($action == 'writebookkeeping') {
     					$bookkeeping->subledger_account = '';
     					$bookkeeping->subledger_label = '';
     					$bookkeeping->numero_compte = $k;
    +
    +					$accountingaccount->fetch($k, null, true);
    +					$bookkeeping->label_compte = $accountingaccount->label;
    +
     					$bookkeeping->label_operation = $langs->trans("VAT"). ' '.join(', ',$def_tva[$key][$k]).' %';
     					$bookkeeping->montant = $mt;
     					$bookkeeping->sens = ($mt < 0) ? 'C' : 'D';
    @@ -399,11 +409,13 @@ if ($action == 'writebookkeeping') {
     		$param.='&date_endmonth='.$date_endmonth;
     		$param.='&date_endyear='.$date_endyear;
     		$param.='&in_bookkeeping='.$in_bookkeeping;
    +
     		header("Location: ".$_SERVER['PHP_SELF'].($param?'?'.$param:''));
     		exit;
     	}
     }
     
    +
     /*
      * View
      */
    @@ -417,6 +429,7 @@ $userstatic = new User($db);
     	$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
     
     	$filename = 'journal';
    +	$type_export = 'journal';
     	include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php';
     
     	// Model Cegid Expert Export
    @@ -534,7 +547,8 @@ if (empty($action) || $action == 'view') {
     	$description.= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
     
     	$listofchoices=array('notyet'=>$langs->trans("NotYetInGeneralLedger"), 'already'=>$langs->trans("AlreadyInGeneralLedger"));
    -	$period = $form->select_date($date_start?$date_start:-1, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end?$date_end:-1, 'date_end', 0, 0, 0, '', 1, 0, 1). ' -  ' .$langs->trans("JournalizationInLedgerStatus").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1);
    +    $period = $form->selectDate($date_start?$date_start:-1, 'date_start', 0, 0, 0, '', 1, 0) . ' - ' . $form->selectDate($date_end?$date_end:-1, 'date_end', 0, 0, 0, '', 1, 0);
    +    $period .= ' -  ' .$langs->trans("JournalizationInLedgerStatus").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1);
     
     	$varlink = 'id_journal=' . $id_journal;
     
    @@ -547,11 +561,11 @@ if (empty($action) || $action == 'view') {
     	}
     	print '<div class="tabsAction tabsActionNoBottom">';
     	if (empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') {
    -		print '<input type="button" class="butActionRefused" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="' . $langs->trans("WriteBookKeeping") . '" />';
    +		print '<input type="button" class="butActionRefused classfortooltip" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="' . $langs->trans("WriteBookKeeping") . '" />';
     	}
     	else {
     		if ($in_bookkeeping == 'notyet') print '<input type="button" class="butAction" name="writebookkeeping" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
    -		else print '<a href="#" class="butActionRefused" name="writebookkeeping">' . $langs->trans("WriteBookKeeping") . '</a>';
    +		else print '<a href="#" class="butActionRefused classfortooltip" name="writebookkeeping">' . $langs->trans("WriteBookKeeping") . '</a>';
     	}
     	//print '<input type="button" class="butAction" name="exportcsv" value="' . $langs->trans("ExportDraftJournal") . '" onclick="launch_export();" />';
     	print '</div>';
    diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php
    index 14501ae9b82..28d4916884f 100644
    --- a/htdocs/accountancy/journal/purchasesjournal.php
    +++ b/htdocs/accountancy/journal/purchasesjournal.php
    @@ -1,11 +1,13 @@
     <?php
    -/* Copyright (C) 2007-2010  Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2010  Jean Heimburger		<jean@tiaris.info>
    - * Copyright (C) 2011       Juanjo Menent		<jmenent@2byte.es>
    - * Copyright (C) 2012       Regis Houssin		<regis.houssin@capnetworks.com>
    - * Copyright (C) 2013-2017  Alexandre Spangaro	<aspangaro@zendsi.com>
    - * Copyright (C) 2013-2016  Olivier Geffroy		<jeff@jeffinfo.com>
    - * Copyright (C) 2013-2016  Florian Henry		<florian.henry@open-concept.pro>
    +/* Copyright (C) 2007-2010  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2007-2010  Jean Heimburger         <jean@tiaris.info>
    + * Copyright (C) 2011       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2012       Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2013-2017  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2013-2016  Olivier Geffroy         <jeff@jeffinfo.com>
    + * Copyright (C) 2013-2016  Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + * Copyright (C) 2018       Eric Seigne             <eric.seigne@cap-rel.fr>
      *
      * 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
    @@ -65,10 +67,7 @@ $parameters=array();
      */
     $reshook=$hookmanager->executeHooks('doActions',$parameters,$user,$action);    // Note that $action and $object may have been modified by some hooks
     
    -
    -/*
    - * Views
    - */
    +$accountingaccount = new AccountingAccount($db);
     
     // Get informations of journal
     $accountingjournalstatic = new AccountingJournal($db);
    @@ -141,7 +140,7 @@ if ($result) {
     	$num = $db->num_rows($result);
     
     	// Variables
    -	$cptfour = (! empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER)) ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined';
    +	$cptfour = ($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER != "") ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined';
     	$cpttva = (! empty($conf->global->ACCOUNTING_VAT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_BUY_ACCOUNT : 'NotDefined';
     
     	$i = 0;
    @@ -149,7 +148,7 @@ if ($result) {
     		$obj = $db->fetch_object($result);
     
     		// Controls
    -		$compta_soc = (! empty($obj->code_compta_fournisseur)) ? $obj->code_compta_fournisseur : $cptfour;
    +		$compta_soc = ($obj->code_compta_fournisseur != "") ? $obj->code_compta_fournisseur : $cptfour;
     
     		$compta_prod = $obj->compte;
     		if (empty($compta_prod)) {
    @@ -309,8 +308,12 @@ if ($action == 'writebookkeeping') {
     					$bookkeeping->fk_docdet = 0;    // Useless, can be several lines that are source of this record to add
     					$bookkeeping->thirdparty_code = $companystatic->code_fournisseur;
     					$bookkeeping->subledger_account = $tabcompany[$key]['code_compta_fournisseur'];
    -					$bookkeeping->subledger_label = '';    // TODO To complete
    +					$bookkeeping->subledger_label = $tabcompany[$key]['name'];
     					$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER;
    +
    +					$accountingaccount->fetch(null, $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER, true);
    +					$bookkeeping->label_compte = $accountingaccount->label;
    +
     					$bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("SubledgerAccount");
     					$bookkeeping->montant = $mt;
     					$bookkeeping->sens = ($mt >= 0) ? 'C' : 'D';
    @@ -351,7 +354,6 @@ if ($action == 'writebookkeeping') {
     			foreach ( $tabht[$key] as $k => $mt ) {
     				//if ($mt) {
     					// get compte id and label
    -					$accountingaccount = new AccountingAccount($db);
     					if ($accountingaccount->fetch(null, $k, true)) {
     						$bookkeeping = new BookKeeping($db);
     						$bookkeeping->doc_date = $val["date"];
    @@ -365,6 +367,7 @@ if ($action == 'writebookkeeping') {
     						$bookkeeping->subledger_account = '';
     						$bookkeeping->subledger_label = '';
     						$bookkeeping->numero_compte = $k;
    +						$bookkeeping->label_compte = $accountingaccount->label;
     						$bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $accountingaccount->label;
     						$bookkeeping->montant = $mt;
     						$bookkeeping->sens = ($mt < 0) ? 'C' : 'D';
    @@ -425,6 +428,10 @@ if ($action == 'writebookkeeping') {
     						$bookkeeping->subledger_account = '';
     						$bookkeeping->subledger_label = '';
     						$bookkeeping->numero_compte = $k;
    +
    +						$accountingaccount->fetch($k, null, true);
    +						$bookkeeping->label_compte = $accountingaccount->label;
    +
     						$bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("VAT").' '.join(', ',$def_tva[$key][$k]) .' %' . ($numtax?' - Localtax '.$numtax:'');
     						$bookkeeping->montant = $mt;
     						$bookkeeping->sens = ($mt < 0) ? 'C' : 'D';
    @@ -580,6 +587,7 @@ if ($action == 'exportcsv') {		// ISO and not UTF8 !
     	$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
     
     	$filename = 'journal';
    +	$type_export = 'journal';
     	include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php';
     
     	$companystatic = new Fournisseur($db);
    @@ -726,25 +734,26 @@ if (empty($action) || $action == 'view') {
     	}
     
     	$listofchoices=array('notyet'=>$langs->trans("NotYetInGeneralLedger"), 'already'=>$langs->trans("AlreadyInGeneralLedger"));
    -	$period = $form->select_date($date_start?$date_start:-1, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end?$date_end:-1, 'date_end', 0, 0, 0, '', 1, 0, 1). ' -  ' .$langs->trans("JournalizationInLedgerStatus").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1);
    +    $period = $form->selectDate($date_start?$date_start:-1, 'date_start', 0, 0, 0, '', 1, 0) . ' - ' . $form->selectDate($date_end?$date_end:-1, 'date_end', 0, 0, 0, '', 1, 0);
    +    $period .= ' -  ' .$langs->trans("JournalizationInLedgerStatus").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1);
     
     	$varlink = 'id_journal=' . $id_journal;
     
     	journalHead($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink);
     
     	// Button to write into Ledger
    -	if (empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') {
    +	if (($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "") || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') {
     		print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone");
     		print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
     	}
     	print '<div class="tabsAction tabsActionNoBottom">';
     	if (! empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL)) print '<input type="button" class="butAction" name="exportcsv" value="' . $langs->trans("ExportDraftJournal") . '" onclick="launch_export();" />';
    -	if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') {
    -		print '<input type="button" class="butActionRefused" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="' . $langs->trans("WriteBookKeeping") . '" />';
    +	if (empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') {
    +		print '<input type="button" class="butActionRefused classfortooltip" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="' . $langs->trans("WriteBookKeeping") . '" />';
     	}
     	else {
     		if ($in_bookkeeping == 'notyet') print '<input type="button" class="butAction" name="writebookkeeping" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
    -		else print '<a href="#" class="butActionRefused" name="writebookkeeping">' . $langs->trans("WriteBookKeeping") . '</a>';
    +		else print '<a href="#" class="butActionRefused classfortooltip" name="writebookkeeping">' . $langs->trans("WriteBookKeeping") . '</a>';
     	}
     	print '</div>';
     
    @@ -868,16 +877,16 @@ if (empty($action) || $action == 'view') {
     				// Account
     				print "<td>";
     				$accountoshow = length_accounta($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER);
    -				if (empty($accountoshow) || $accountoshow == 'NotDefined')
    +				if (($accountoshow == "") || $accountoshow == 'NotDefined')
     				{
    -					print '<span class="error">'.$langs->trans("MainAccountForCustomersNotDefined").'</span>';
    +					print '<span class="error">'.$langs->trans("MainAccountForSupplierssNotDefined").'</span>';
     				}
     				else print $accountoshow;
     				print '</td>';
     				// Subledger account
     				print "<td>";
     				$accountoshow = length_accounta($k);
    -				if (empty($accountoshow) || $accountoshow == 'NotDefined')
    +				if (($accountoshow == "") || $accountoshow == 'NotDefined')
     				{
     					print '<span class="error">'.$langs->trans("ThirdpartyAccountNotDefined").'</span>';
     				}
    @@ -903,7 +912,7 @@ if (empty($action) || $action == 'view') {
     				// Account
     				print "<td>";
     				$accountoshow = length_accountg($k);
    -				if (empty($accountoshow) || $accountoshow == 'NotDefined')
    +				if (($accountoshow == "") || $accountoshow == 'NotDefined')
     				{
     					print '<span class="error">'.$langs->trans("ProductAccountNotDefined").'</span>';
     				}
    @@ -937,7 +946,7 @@ if (empty($action) || $action == 'view') {
     					// Account
     					print "<td>";
     					$accountoshow = length_accountg($k);
    -					if (empty($accountoshow) || $accountoshow == 'NotDefined')
    +					if (($accountoshow == "") || $accountoshow == 'NotDefined')
     					{
     						print '<span class="error">'.$langs->trans("VATAccountNotDefined").' ('.$langs->trans("Purchase").')'.'</span>';
     					}
    @@ -968,7 +977,7 @@ if (empty($action) || $action == 'view') {
     					// Account
     					print "<td>";
     					$accountoshow = length_accountg($k);
    -					if (empty($accountoshow) || $accountoshow == 'NotDefined')
    +					if (($accountoshow == "") || $accountoshow == 'NotDefined')
     					{
     						print '<span class="error">'.$langs->trans("VATAccountNotDefined").' ('.$langs->trans("NPR counterpart").'). Set ACCOUNTING_COUNTERPART_VAT_NPR to the subvention account'.'</span>';
     					}
    diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php
    index 3b63b761183..243c9fb943c 100644
    --- a/htdocs/accountancy/journal/sellsjournal.php
    +++ b/htdocs/accountancy/journal/sellsjournal.php
    @@ -1,13 +1,14 @@
     <?php
    -/* Copyright (C) 2007-2010  Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2010  Jean Heimburger			<jean@tiaris.info>
    - * Copyright (C) 2011       Juanjo Menent			<jmenent@2byte.es>
    - * Copyright (C) 2012       Regis Houssin			<regis.houssin@capnetworks.com>
    - * Copyright (C) 2013       Christophe Battarel		<christophe.battarel@altairis.fr>
    - * Copyright (C) 2013-2017  Alexandre Spangaro		<aspangaro@zendsi.com>
    - * Copyright (C) 2013-2016  Florian Henry			<florian.henry@open-concept.pro>
    - * Copyright (C) 2013-2016  Olivier Geffroy			<jeff@jeffinfo.com>
    - * Copyright (C) 2014       Raphaël Doursenaud		<rdoursenaud@gpcsolutions.fr>
    +/* Copyright (C) 2007-2010  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2007-2010  Jean Heimburger         <jean@tiaris.info>
    + * Copyright (C) 2011       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2012       Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2013       Christophe Battarel     <christophe.battarel@altairis.fr>
    + * Copyright (C) 2013-2018  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2013-2016  Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2013-2016  Olivier Geffroy         <jeff@jeffinfo.com>
    + * Copyright (C) 2014       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -69,6 +70,8 @@ $parameters=array();
     
     $reshook=$hookmanager->executeHooks('doActions',$parameters,$user,$action);    // Note that $action and $object may have been modified by some hooks
     
    +$accountingaccount = new AccountingAccount($db);
    +
     // Get informations of journal
     $accountingjournalstatic = new AccountingJournal($db);
     $accountingjournalstatic->fetch($id_journal);
    @@ -94,7 +97,7 @@ if (! GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end)
     
     $idpays = $mysoc->country_id;
     
    -$sql = "SELECT f.rowid, f.facnumber, f.type, f.datef as df, f.ref_client, f.date_lim_reglement as dlr, f.close_code,";
    +$sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.ref_client, f.date_lim_reglement as dlr, f.close_code,";
     $sql .= " fd.rowid as fdid, fd.description, fd.product_type, fd.total_ht, fd.total_tva, fd.total_localtax1, fd.total_localtax2, fd.tva_tx, fd.total_ttc, fd.situation_percent, fd.vat_src_code,";
     $sql .= " s.rowid as socid, s.nom as name, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,";
     $sql .= " p.rowid as pid, p.ref as pref, p.accountancy_code_sell, aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte";
    @@ -104,7 +107,7 @@ $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid =
     $sql .= " JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture";
     $sql .= " JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc";
     $sql .= " WHERE fd.fk_code_ventilation > 0";
    -$sql .= " AND f.entity IN (".getEntity('facture', 0).')';	// We don't share object for accountancy, we use source object sharing
    +$sql .= " AND f.entity IN (".getEntity('invoice', 0).')';	// We don't share object for accountancy, we use source object sharing
     $sql .= " AND f.fk_statut > 0";
     if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {	// Non common setup
     	$sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")";
    @@ -192,7 +195,7 @@ if ($result) {
     		// Invoice lines
     		$tabfac[$obj->rowid]["date"] = $db->jdate($obj->df);
     		$tabfac[$obj->rowid]["datereg"] = $db->jdate($obj->dlr);
    -		$tabfac[$obj->rowid]["ref"] = $obj->facnumber;
    +		$tabfac[$obj->rowid]["ref"] = $obj->ref;
     		$tabfac[$obj->rowid]["type"] = $obj->type;
     		$tabfac[$obj->rowid]["description"] = $obj->label_compte;
     		$tabfac[$obj->rowid]["close_code"] = $obj->close_code;		// close_code = 'replaced' for replacement invoices (not used in most european countries)
    @@ -316,8 +319,12 @@ if ($action == 'writebookkeeping') {
     					$bookkeeping->fk_docdet = 0;	// Useless, can be several lines that are source of this record to add
     					$bookkeeping->thirdparty_code = $companystatic->code_client;
     					$bookkeeping->subledger_account = $tabcompany[$key]['code_compta'];
    -					$bookkeeping->subledger_label = '';    // TODO To complete
    +					$bookkeeping->subledger_label = $tabcompany[$key]['name'];
     					$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
    +
    +					$accountingaccount->fetch(null, $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER, true);
    +					$bookkeeping->label_compte = $accountingaccount->label;
    +
     					$bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("SubledgerAccount");
     					$bookkeeping->montant = $mt;
     					$bookkeeping->sens = ($mt >= 0) ? 'D' : 'C';
    @@ -358,7 +365,6 @@ if ($action == 'writebookkeeping') {
     			foreach ( $tabht[$key] as $k => $mt ) {
     				//if ($mt) {
     					// get compte id and label
    -					$accountingaccount = new AccountingAccount($db);
     					if ($accountingaccount->fetch(null, $k, true)) {
     						$bookkeeping = new BookKeeping($db);
     						$bookkeeping->doc_date = $val["date"];
    @@ -372,6 +378,7 @@ if ($action == 'writebookkeeping') {
     						$bookkeeping->subledger_account = '';
     						$bookkeeping->subledger_label = '';
     						$bookkeeping->numero_compte = $k;
    +						$bookkeeping->label_compte = $accountingaccount->label;
     						$bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount->label;
     						$bookkeeping->montant = $mt;
     						$bookkeeping->sens = ($mt < 0) ? 'D' : 'C';
    @@ -431,6 +438,10 @@ if ($action == 'writebookkeeping') {
     						$bookkeeping->subledger_account = '';
     						$bookkeeping->subledger_label = '';
     						$bookkeeping->numero_compte = $k;
    +
    +						$accountingaccount->fetch($k, null, true);
    +						$bookkeeping->label_compte = $accountingaccount->label;
    +
     						$bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT").' '.join(', ',$def_tva[$key][$k]) .' %' . ($numtax?' - Localtax '.$numtax:'');
     						$bookkeeping->montant = $mt;
     						$bookkeeping->sens = ($mt < 0) ? 'D' : 'C';
    @@ -489,7 +500,6 @@ if ($action == 'writebookkeeping') {
     				break;  // Break in the foreach
     			}
     		}
    -
     	}
     
     	$tabpay = $tabfac;
    @@ -537,6 +547,7 @@ if ($action == 'exportcsv') {		// ISO and not UTF8 !
     	$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
     
     	$filename = 'journal';
    +	$type_export = 'journal';
     	include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php';
     
     	$companystatic = new Client($db);
    @@ -660,7 +671,8 @@ if (empty($action) || $action == 'view') {
     		$description .= $langs->trans("DepositsAreIncluded");
     
     	$listofchoices=array('notyet'=>$langs->trans("NotYetInGeneralLedger"), 'already'=>$langs->trans("AlreadyInGeneralLedger"));
    -	$period = $form->select_date($date_start?$date_start:-1, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end?$date_end:-1, 'date_end', 0, 0, 0, '', 1, 0, 1). ' -  ' .$langs->trans("JournalizationInLedgerStatus").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1);
    +    $period = $form->selectDate($date_start?$date_start:-1, 'date_start', 0, 0, 0, '', 1, 0) . ' - ' . $form->selectDate($date_end?$date_end:-1, 'date_end', 0, 0, 0, '', 1, 0);
    +    $period .= ' -  ' .$langs->trans("JournalizationInLedgerStatus").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1);
     
     	$varlink = 'id_journal=' . $id_journal;
     
    @@ -674,11 +686,11 @@ if (empty($action) || $action == 'view') {
     	print '<div class="tabsAction tabsActionNoBottom">';
     	if (! empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL)) print '<input type="button" class="butAction" name="exportcsv" value="' . $langs->trans("ExportDraftJournal") . '" onclick="launch_export();" />';
     	if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') {
    -		print '<input type="button" class="butActionRefused" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="' . $langs->trans("WriteBookKeeping") . '" />';
    +		print '<input type="button" class="butActionRefused classfortooltip" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="' . $langs->trans("WriteBookKeeping") . '" />';
     	}
     	else {
     		if ($in_bookkeeping == 'notyet') print '<input type="button" class="butAction" name="writebookkeeping" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
    -		else print '<a href="#" class="butActionRefused" name="writebookkeeping">' . $langs->trans("WriteBookKeeping") . '</a>';
    +		else print '<a href="#" class="butActionRefused classfortooltip" name="writebookkeeping">' . $langs->trans("WriteBookKeeping") . '</a>';
     	}
     	print '</div>';
     
    diff --git a/htdocs/accountancy/supplier/card.php b/htdocs/accountancy/supplier/card.php
    index f126d00f2e9..8de24e09a9e 100644
    --- a/htdocs/accountancy/supplier/card.php
    +++ b/htdocs/accountancy/supplier/card.php
    @@ -96,7 +96,7 @@ $facturefournisseur_static = new FactureFournisseur($db);
     $formaccounting = new FormAccounting($db);
     
     if (! empty($id)) {
    -	$sql = "SELECT f.ref as facnumber, f.rowid as facid, l.fk_product, l.description, l.rowid, l.fk_code_ventilation, ";
    +	$sql = "SELECT f.ref as ref, f.rowid as facid, l.fk_product, l.description, l.rowid, l.fk_code_ventilation, ";
     	$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label";
     	$sql .= ", aa.account_number, aa.label";
     	$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn_det as l";
    @@ -129,7 +129,7 @@ if (! empty($id)) {
     
     			// ref invoice
     			print '<tr><td>' . $langs->trans("BillsSuppliers") . '</td>';
    -			$facturefournisseur_static->ref = $objp->facnumber;
    +			$facturefournisseur_static->ref = $objp->ref;
     			$facturefournisseur_static->id = $objp->facid;
     			print '<td>' . $facturefournisseur_static->getNomUrl(1) . '</td>';
     			print '</tr>';
    @@ -162,5 +162,6 @@ if (! empty($id)) {
     	print "Error ID incorrect";
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php
    index 334fd347a58..5e993d43834 100644
    --- a/htdocs/accountancy/supplier/index.php
    +++ b/htdocs/accountancy/supplier/index.php
    @@ -87,7 +87,7 @@ if ($action == 'clean' || $action == 'validatehistory')
     	if (! $resql1) {
     		$error ++;
     		$db->rollback();
    -		setEventMessage($db->lasterror(), 'errors');
    +		setEventMessages($db->lasterror(), null, 'errors');
     	} else {
     		$db->commit();
     	}
    @@ -150,7 +150,7 @@ $buttonbind = '<a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?year=' .
     
     
     print_barre_liste($langs->trans("OverviewOfAmountOfLinesNotBound"), '', '', '', '', '', '', -1, '', '', 0, $buttonbind, '', 0, 1, 1);
    -//print_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
    +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, '');
     
     print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
    @@ -195,7 +195,7 @@ if ($resql) {
     		}
     		else print length_accountg($row[0]);
     		print '</td>';
    -		print '<td align="left">';
    +		print '<td class="left">';
     		if ($row[0] == 'tobind')
     		{
     			print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/supplier/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
    @@ -221,7 +221,7 @@ print '<br>';
     
     
     print_barre_liste($langs->trans("OverviewOfAmountOfLinesBound"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1);
    -//print_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', '');
    +//print load_fiche_titre($langs->trans("OverviewOfAmountOfLinesBound"), '', '');
     
     print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
    @@ -266,7 +266,7 @@ if ($resql) {
     		}
     		else print length_accountg($row[0]);
     		print '</td>';
    -		print '<td align="left">';
    +		print '<td class="left">';
     		if ($row[0] == 'tobind')
     		{
     			print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/supplier/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
    @@ -295,7 +295,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
         print '<br>';
     
         print_barre_liste($langs->trans("OtherInfo"), '', '', '', '', '', '', -1, '', '', 0, '', '', 0, 1, 1);
    -    //print_fiche_titre($langs->trans("OtherInfo"), '', '');
    +    //print load_fiche_titre($langs->trans("OtherInfo"), '', '');
     
     	print '<div class="div-table-responsive-no-min">';
         print '<table class="noborder" width="100%">';
    @@ -342,6 +342,6 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
         print '</div>';
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php
    index ef54dec564d..580cf4c407c 100644
    --- a/htdocs/accountancy/supplier/lines.php
    +++ b/htdocs/accountancy/supplier/lines.php
    @@ -34,6 +34,7 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array("compta","bills","other","accountancy","productbatch"));
    @@ -172,7 +173,9 @@ print '<script type="text/javascript">
     $sql = "SELECT f.rowid as facid, f.ref as ref, f.ref_supplier, f.libelle as invoice_label, f.datef, f.fk_soc,";
     $sql.= " l.rowid, l.fk_product, l.product_type as line_type, l.description, l.total_ht , l.qty, l.tva_tx, l.vat_src_code,";
     $sql.= " aa.label, aa.account_number, ";
    -$sql.= " p.rowid as product_id, p.fk_product_type as product_type, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, co.label as country, s.tva_intra";
    +$sql.= " p.rowid as product_id, p.fk_product_type as product_type, p.ref as product_ref, p.label as product_label, p.fk_product_type as type,";
    +$sql.= " co.code as country_code, co.label as country,";
    +$sql.= " s.tva_intra";
     $parameters=array();
     $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters);    // Note that $action and $object may have been modified by hook
     $sql.=$hookmanager->resPrint;
    @@ -221,7 +224,18 @@ else if ($search_year > 0)
     	$sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($search_year,1,false))."' AND '".$db->idate(dol_get_last_day($search_year,12,false))."'";
     }
     if (strlen(trim($search_country))) {
    -	$sql .= natural_search("co.label", $search_country);
    +	$arrayofcode = getCountriesInEEC();
    +	$country_code_in_EEC = $country_code_in_EEC_without_me = '';
    +	foreach ($arrayofcode as $key => $value)
    +	{
    +		$country_code_in_EEC.=($country_code_in_EEC ? "," : "")."'".$value."'";
    +		if ($value != $mysoc->country_code) $country_code_in_EEC_without_me.=($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
    +	}
    +	if ($search_country == 'special_allnotme')     $sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
    +	elseif ($search_country == 'special_eec')      $sql .= " AND co.code IN (".$country_code_in_EEC.")";
    +	elseif ($search_country == 'special_eecnotme') $sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
    +	elseif ($search_country == 'special_noteec')   $sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
    +	else $sql .= natural_search(array("co.code","co.label"), $search_country);
     }
     if (strlen(trim($search_tvaintra))) {
     	$sql .= natural_search("s.tva_intra", $search_tvaintra);
    @@ -299,9 +313,9 @@ if ($result) {
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth25" name="search_lineid" value="' . dol_escape_htmltag($search_lineid) . '""></td>';
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_invoice" value="' . dol_escape_htmltag($search_invoice) . '"></td>';
     	print '<td class="liste_titre"></td>';
    -	print '<td class="liste_titre center">';
    -   	if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="search_day" value="'.$search_day.'">';
    -   	print '<input class="flat" type="text" size="1" maxlength="2" name="search_month" value="'.$search_month.'">';
    +	print '<td class="liste_titre center nowraponall">';
    +   	if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_day" value="'.$search_day.'">';
    +   	print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_month" value="'.$search_month.'">';
        	$formother->select_year($search_year,'search_year',1, 20, 5);
     	print '</td>';
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_ref" value="' . dol_escape_htmltag($search_ref) . '"></td>';
    @@ -309,7 +323,10 @@ if ($result) {
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_desc" value="' . dol_escape_htmltag($search_desc) . '"></td>';
     	print '<td class="liste_titre" align="right"><input type="text" class="right flat maxwidth50" name="search_amount" value="' . dol_escape_htmltag($search_amount) . '"></td>';
     	print '<td class="liste_titre" align="right"><input type="text" class="right flat maxwidth50" name="search_vat" placeholder="%" size="1" value="' . dol_escape_htmltag($search_vat) . '"></td>';
    -	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_country" value="' . dol_escape_htmltag($search_country) . '"></td>';
    +	print '<td class="liste_titre">';
    +	print $form->select_country($search_country, 'search_country', '', 0, 'maxwidth200', 'code2', 1, 0, 1);
    +	//	print '<input type="text" class="flat maxwidth50" name="search_country" value="' . dol_escape_htmltag($search_country) . '">';
    +	print '</td>';
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_tvaintra" value="' . dol_escape_htmltag($search_tvaintra) . '"></td>';
     	print '<td class="liste_titre" align="center"><input type="text" class="flat maxwidth50" name="search_account" value="' . dol_escape_htmltag($search_account) . '"></td>';
     	print '<td class="liste_titre" align="center">';
    @@ -357,7 +374,7 @@ if ($result) {
     		print '<td>' . $objp->rowid . '</td>';
     
     		// Ref Invoice
    -		print '<td>' . $facturefournisseur_static->getNomUrl(1) . '</td>';
    +		print '<td class="nowraponall">' . $facturefournisseur_static->getNomUrl(1) . '</td>';
     
     		print '<td class="tdoverflowonsmartphone">';
     		print $objp->invoice_label;
    @@ -380,9 +397,11 @@ if ($result) {
     		print '</td>';
     
     		print '<td align="right">' . price($objp->total_ht) . '</td>';
    +
     		print '<td align="right">' . vatrate($objp->tva_tx.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')) . '</td>';
     
    -		print '<td>' . $objp->country .'</td>';
    +		print '<td>' . $langs->trans("Country".$objp->country_code) .' ('.$objp->country_code.')</td>';
    +
     		print '<td>' . $objp->tva_intra . '</td>';
     
     		print '<td align="center">';
    @@ -406,7 +425,6 @@ if ($result) {
     	print $db->lasterror();
     }
     
    -
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php
    index 57fdf0ace48..5ac90068ffb 100644
    --- a/htdocs/accountancy/supplier/list.php
    +++ b/htdocs/accountancy/supplier/list.php
    @@ -34,6 +34,7 @@ require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php
     require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array("bills","compta","accountancy","other","productbatch"));
    @@ -202,8 +203,9 @@ llxHeader('', $langs->trans("SuppliersVentilation"));
     if (empty($chartaccountcode))
     {
     	print $langs->trans("ErrorChartOfAccountSystemNotSelected");
    -	llxFooter();
    -	$db->close();
    +	// End of page
    +    llxFooter();
    +    $db->close();
     	exit;
     }
     
    @@ -212,7 +214,8 @@ $sql = "SELECT f.rowid as facid, f.ref, f.ref_supplier, f.libelle as invoice_lab
     $sql.= " l.rowid, l.fk_product, l.description, l.total_ht, l.fk_code_ventilation, l.product_type as type_l, l.tva_tx as tva_tx_line, l.vat_src_code,";
     $sql.= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.accountancy_code_buy as code_buy, p.tva_tx as tva_tx_prod,";
     $sql.= " aa.rowid as aarowid,";
    -$sql.= " co.label as country, s.tva_intra";
    +$sql.= " co.code as country_code, co.label as country,";
    +$sql.= " s.tva_intra";
     $parameters=array();
     $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters);    // Note that $action and $object may have been modified by hook
     $sql.=$hookmanager->resPrint;
    @@ -249,9 +252,6 @@ if (strlen(trim($search_account))) {
     if (strlen(trim($search_vat))) {
         $sql .= natural_search("l.tva_tx", price2num($search_vat), 1);
     }
    -if (strlen(trim($search_tvaintra))) {
    -	$sql .= natural_search("s.tva_intra", $search_tvaintra);
    -}
     if ($search_month > 0)
     {
     	if ($search_year > 0 && empty($search_day))
    @@ -266,7 +266,21 @@ else if ($search_year > 0)
     	$sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($search_year,1,false))."' AND '".$db->idate(dol_get_last_day($search_year,12,false))."'";
     }
     if (strlen(trim($search_country))) {
    -	$sql .= natural_search("co.label", $search_country);
    +	$arrayofcode = getCountriesInEEC();
    +	$country_code_in_EEC = $country_code_in_EEC_without_me = '';
    +	foreach ($arrayofcode as $key => $value)
    +	{
    +		$country_code_in_EEC.=($country_code_in_EEC ? "," : "")."'".$value."'";
    +		if ($value != $mysoc->country_code) $country_code_in_EEC_without_me.=($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
    +	}
    +	if ($search_country == 'special_allnotme')     $sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
    +	elseif ($search_country == 'special_eec')      $sql .= " AND co.code IN (".$country_code_in_EEC.")";
    +	elseif ($search_country == 'special_eecnotme') $sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
    +	elseif ($search_country == 'special_noteec')   $sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
    +	else $sql .= natural_search(array("co.code","co.label"), $search_country);
    +}
    +if (strlen(trim($search_tvaintra))) {
    +	$sql .= natural_search("s.tva_intra", $search_tvaintra);
     }
     if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
     	$sql .= " AND f.type IN (" . FactureFournisseur::TYPE_STANDARD . "," . FactureFournisseur::TYPE_REPLACEMENT . "," . FactureFournisseur::TYPE_CREDIT_NOTE . "," . FactureFournisseur::TYPE_SITUATION . ")";
    @@ -371,7 +385,10 @@ if ($result) {
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_desc" value="' . dol_escape_htmltag($search_desc) . '"></td>';
     	print '<td class="liste_titre" align="right"><input type="text" class="right flat maxwidth50" name="search_amount" value="' . dol_escape_htmltag($search_amount) . '"></td>';
     	print '<td class="liste_titre" align="right"><input type="text" class="right flat maxwidth50" name="search_vat" placeholder="%" size="1" value="' . dol_escape_htmltag($search_vat) . '"></td>';
    -	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_country" value="' . dol_escape_htmltag($search_country) . '"></td>';
    +	print '<td class="liste_titre">';
    +	print $form->select_country($search_country, 'search_country', '', 0, 'maxwidth200', 'code2', 1, 0, 1);
    +	//print '<input type="text" class="flat maxwidth50" name="search_country" value="' . dol_escape_htmltag($search_country) . '">';
    +	print '</td>';
     	print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_tvaintra" value="' . dol_escape_htmltag($search_tvaintra) . '"></td>';
     	print '<td class="liste_titre"></td>';
     	print '<td class="liste_titre"></td>';
    @@ -452,7 +469,7 @@ if ($result) {
     		print '<td>' . $objp->rowid . '</td>';
     
     		// Ref Invoice
    -		print '<td>' . $facturefourn_static->getNomUrl(1) . '</td>';
    +		print '<td class="nowraponall">' . $facturefourn_static->getNomUrl(1) . '</td>';
     
     		print '<td class="tdoverflowonsmartphone">';
     		print $objp->invoice_label;
    @@ -532,5 +549,6 @@ jQuery(document).ready(function() {
     });
     </script>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/accountancy/tpl/export_journal.tpl.php b/htdocs/accountancy/tpl/export_journal.tpl.php
    index 773f7a7ff68..ca3c9c49ea0 100644
    --- a/htdocs/accountancy/tpl/export_journal.tpl.php
    +++ b/htdocs/accountancy/tpl/export_journal.tpl.php
    @@ -1,6 +1,6 @@
     <?php
    -/* Copyright (C) 2015  Alexandre Spangaro	<aspangaro@zendsi.com>
    - * Copyright (C) 2016  Charlie Benke		<charlie@patas-monkey.com>
    +/* Copyright (C) 2015-2018  Alexandre Spangaro	<aspangaro@zendsi.com>
    + * Copyright (C) 2016       Charlie Benke		<charlie@patas-monkey.com>
      *
      * 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
    @@ -27,11 +27,39 @@ $code = $conf->global->MAIN_INFO_ACCOUNTANT_CODE;
     $prefix = $conf->global->ACCOUNTING_EXPORT_PREFIX_SPEC;
     $format = $conf->global->ACCOUNTING_EXPORT_FORMAT;
     $nodateexport = $conf->global->ACCOUNTING_EXPORT_NO_DATE_IN_FILENAME;
    +$siren = $conf->global->MAIN_INFO_SIREN;
     
     $date_export = "_" . dol_print_date(dol_now(), '%Y%m%d%H%M%S');
    +$endaccountingperiod = dol_print_date(dol_now(), '%Y%m%d');
     
     header('Content-Type: text/csv');
     
    -$completefilename = ($code?$code . "_":"") . ($prefix?$prefix . "_":"") . $filename . ($nodateexport?"":$date_export) . "." . $format;
    +
    +if ($conf->global->ACCOUNTING_EXPORT_MODELCSV == "11" && $type_export == "general_ledger") // Specific filename for FEC model export into the general ledger
    +{
    +	// FEC format is defined here: https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000027804775&cidTexte=LEGITEXT000006069583&dateTexte=20130802&oldAction=rechCodeArticle
    +	if (empty($search_date_end))
    +	{
    +		// TODO Get the max date into bookeeping table
    +		$search_date_end = dol_now();
    +	}
    +	$datetouseforfilename = $search_date_end;
    +	$tmparray=dol_getdate($datetouseforfilename);
    +	$fiscalmonth=empty($conf->global->SOCIETE_FISCAL_MONTH_START)?1:$conf->global->SOCIETE_FISCAL_MONTH_START;
    +	// Define end of month to use
    +	if ($tmparray['mon'] <= $fiscalmonth) $tmparray['mon']=$fiscalmonth;
    +	else {
    +		$tmparray['mon']  = $fiscalmonth;
    +		$tmparray['year']++;
    +	}
    +
    +	$endaccountingperiod = dol_print_date(dol_get_last_day($tmparray['year'], $tmparray['mon']), 'dayxcard');
    +
    +	$completefilename = $siren . "FEC" . $endaccountingperiod . "." . $format;
    +}
    +else
    +{
    +	$completefilename = ($code?$code . "_":"") . ($prefix?$prefix . "_":"") . $filename . ($nodateexport?"":$date_export) . "." . $format;
    +}
     
     header('Content-Disposition: attachment;filename=' . $completefilename);
    diff --git a/htdocs/adherents/admin/adherent.php b/htdocs/adherents/admin/adherent.php
    index 4511ee0e8a7..cb1fdfac816 100644
    --- a/htdocs/adherents/admin/adherent.php
    +++ b/htdocs/adherents/admin/adherent.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012 Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2012      J. Fernando Lagrange <fernando@demo-tic.org>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
    @@ -33,8 +33,8 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
     
    -$langs->load("admin");
    -$langs->load("members");
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin","members"));
     
     if (! $user->admin) accessforbidden();
     
    @@ -265,7 +265,6 @@ form_constantes($constantes, 0, $helptext);
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/admin/adherent_emails.php b/htdocs/adherents/admin/adherent_emails.php
    index 88514d83da3..9ee06cd3fa7 100644
    --- a/htdocs/adherents/admin/adherent_emails.php
    +++ b/htdocs/adherents/admin/adherent_emails.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012 Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2012      J. Fernando Lagrange <fernando@demo-tic.org>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
    @@ -33,8 +33,8 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
     
    -$langs->load("admin");
    -$langs->load("members");
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin","members"));
     
     if (! $user->admin) accessforbidden();
     
    @@ -147,8 +147,9 @@ $constantes=array(
     	'ADHERENT_EMAIL_TEMPLATE_AUTOREGISTER'		=>'emailtemplate:member',		/* old was ADHERENT_AUTOREGISTER_MAIL */
     	'ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION'	=>'emailtemplate:member',		/* old was ADHERENT_MAIL_VALID */
     	'ADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION'		=>'emailtemplate:member',		/* old was ADHERENT_MAIL_COTIS */
    -	'ADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION' =>'emailtemplate:member',
     	'ADHERENT_EMAIL_TEMPLATE_CANCELATION'		=>'emailtemplate:member',		/* old was ADHERENT_MAIL_RESIL */
    +	'MEMBER_REMINDER_EMAIL'=>array('type'=>'yesno', 'label'=>$langs->trans('MEMBER_REMINDER_EMAIL', $langs->transnoentities("Module2300Name"))),
    +	'ADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION' =>'emailtemplate:member',
     );
     
     $helptext='*'.$langs->trans("FollowingConstantsWillBeSubstituted").'<br>';
    @@ -160,7 +161,6 @@ form_constantes($constantes, 0, $helptext);
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/admin/adherent_extrafields.php b/htdocs/adherents/admin/adherent_extrafields.php
    index cfdea50538f..17921eabf3c 100644
    --- a/htdocs/adherents/admin/adherent_extrafields.php
    +++ b/htdocs/adherents/admin/adherent_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -28,8 +28,8 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     
    -$langs->load("members");
    -$langs->load("admin");
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin","members"));
     
     $extrafields = new ExtraFields($db);
     $form = new Form($db);
    @@ -94,7 +94,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -	print "<br>";
    +	print '<div name="topofform"></div><br>';
     	print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -107,12 +107,12 @@ if ($action == 'create')
     /* ************************************************************************** */
     if ($action == 'edit' && ! empty($attrname))
     {
    -	print "<br>";
    +	print '<div name="topofform"></div><br>';
     	print load_fiche_titre($langs->trans("FieldEdition", $attrname));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/admin/adherent_type_extrafields.php b/htdocs/adherents/admin/adherent_type_extrafields.php
    index 2c849628ab9..ab9815a8057 100644
    --- a/htdocs/adherents/admin/adherent_type_extrafields.php
    +++ b/htdocs/adherents/admin/adherent_type_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2015		Jean-François Ferry		<jfefe@aternatik.fr>
      *
    @@ -31,8 +31,8 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     
    -$langs->load("members");
    -$langs->load("admin");
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin","members"));
     
     $extrafields = new ExtraFields($db);
     $form = new Form($db);
    @@ -116,6 +116,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/admin/website.php b/htdocs/adherents/admin/website.php
    index 3f8c62eb153..51aca179195 100644
    --- a/htdocs/adherents/admin/website.php
    +++ b/htdocs/adherents/admin/website.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2015	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Juanjo Menent			<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -19,7 +19,7 @@
      */
     
     /**
    - *     	\file       htdocs/adherents/admin/public.php
    + *     	\file       htdocs/adherents/admin/website.php
      *		\ingroup    member
      *		\brief      File of main public page for member module
      *		\author	    Laurent Destailleur
    @@ -31,8 +31,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
     
    -$langs->load("members");
    -$langs->load("admin");
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin","members"));
     
     $action=GETPOST('action', 'alpha');
     
    @@ -241,7 +241,6 @@ if (! empty($conf->global->MEMBER_ENABLE_PUBLIC))
     	print '<a target="_blank" href="'.$urlwithroot.'/public/members/new.php'.$entity_qr.'">'.$urlwithroot.'/public/members/new.php'.$entity_qr.'</a>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/agenda.php b/htdocs/adherents/agenda.php
    index 2b663ecf2bc..f13efd96300 100644
    --- a/htdocs/adherents/agenda.php
    +++ b/htdocs/adherents/agenda.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005      Brice Davoleau       <brice.davoleau@gmail.com>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2007      Patrick Raguin  		<patrick.raguin@gmail.com>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
    @@ -33,8 +33,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
     
    -$langs->load("companies");
    -$langs->load("members");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","members"));
     
     $id = GETPOST('id','int')?GETPOST('id','int'):GETPOST('rowid','int');
     
    @@ -175,8 +175,6 @@ if ($object->id > 0)
         }
     }
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/canvas/actions_adherentcard_common.class.php b/htdocs/adherents/canvas/actions_adherentcard_common.class.php
    index f49d1cecb99..d4c7147da57 100644
    --- a/htdocs/adherents/canvas/actions_adherentcard_common.class.php
    +++ b/htdocs/adherents/canvas/actions_adherentcard_common.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Philippe Grand <philippe.grand@atoo-net.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -28,10 +28,10 @@
     abstract class ActionsAdherentCardCommon
     {
         /**
    -     * Database handler
    -     * @var DoliDB
    +     * @var DoliDB Database handler.
          */
    -    var $db;
    +    public $db;
    +
         var $dirmodule;
         var $targetmodule;
         var $canvas;
    @@ -41,10 +41,16 @@ abstract class ActionsAdherentCardCommon
     	var $tpl = array();
     	//! Object container
     	var $object;
    -	//! Error string
    -	var $error;
    -	//! Error array
    -	var $errors=array();
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
     
     
     	/**
    @@ -69,7 +75,8 @@ abstract class ActionsAdherentCardCommon
         	//}
         }
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *  Set content of ->tpl array, to use into template
          *
          *  @param	string		$action    Type of action
    @@ -78,6 +85,7 @@ abstract class ActionsAdherentCardCommon
          */
         function assign_values(&$action, $id)
         {
    +        // phpcs:enable
             global $conf, $langs, $user, $canvas;
             global $form, $formcompany, $objsoc;
     
    @@ -226,6 +234,7 @@ abstract class ActionsAdherentCardCommon
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
         /**
          *  Assign POST values into object
          *
    @@ -233,6 +242,7 @@ abstract class ActionsAdherentCardCommon
          */
         private function assign_post()
         {
    +        // phpcs:enable
             global $langs, $mysoc;
     
             $this->object->old_name 			= 	$_POST["old_name"];
    @@ -271,5 +281,4 @@ abstract class ActionsAdherentCardCommon
                 }
             }
         }
    -
     }
    diff --git a/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php b/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php
    index 451f46f899f..5ead332bf5f 100644
    --- a/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php
    +++ b/htdocs/adherents/canvas/default/actions_adherentcard_default.class.php
    @@ -1,7 +1,7 @@
     <?php
    -/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012       Philippe Grand      <philippe.grand@atoo-net.com>
    + * Copyright (C) 2012-2018  Philippe Grand      <philippe.grand@atoo-net.com>
      *
      * 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
    @@ -20,20 +20,20 @@
     /**
      *	\file       htdocs/adherents/canvas/default/actions_adherentcard_default.class.php
      *	\ingroup    member
    - *	\brief      Fichier de la classe Thirdparty adherent card controller (default canvas)
    + *	\brief      File of class Thirdparty member card controller (default canvas)
      */
     include_once DOL_DOCUMENT_ROOT.'/adherents/canvas/actions_adherentcard_common.class.php';
     
     /**
      *	\class      ActionsAdherentCardDefault
    - *	\brief      Classe permettant la gestion des adherents par defaut
    + *	\brief      Class allowing the management of the members by default
      */
     class ActionsAdherentCardDefault extends ActionsAdherentCardCommon
     {
     	/**
          *	Constructor
          *
    -     *	@param	DoliDB	$db				Handler acces base de donnees
    +     *	@param	DoliDB	$db				Handler acces data base
          *	@param	string	$dirmodule		Name of directory of module
          *	@param	string	$targetmodule	Name of directory of module where canvas is stored
          *	@param	string	$canvas			Name of canvas
    @@ -51,7 +51,7 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon
     	/**
     	 * 	Return the title of card
     	 *
    -	 * 	@param	string	$action		Code action
    +	 * 	@param	string	$action		Action code
     	 * 	@return	string				Title
     	 */
     	private function getTitle($action)
    @@ -67,6 +67,7 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Assign custom values for canvas
     	 *
    @@ -76,6 +77,7 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon
     	 */
     	function assign_values(&$action, $id)
     	{
    +        // phpcs:enable
     		global $limit, $offset, $sortfield, $sortorder;
     		global $conf, $db, $langs, $user;
     		global $form;
    @@ -117,10 +119,10 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon
     		{
     	        $this->LoadListDatas($limit, $offset, $sortfield, $sortorder);
     		}
    -
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Fetch datas list and save into ->list_datas
     	 *
    @@ -132,6 +134,7 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon
     	 */
     	function LoadListDatas($limit, $offset, $sortfield, $sortorder)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
             //$this->getFieldList();
    @@ -139,4 +142,3 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon
             $this->list_datas = array();
     	}
     }
    -
    diff --git a/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php b/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php
    index 81f34706966..99174e7770b 100644
    --- a/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php
    +++ b/htdocs/adherents/canvas/default/tpl/adherentcard_create.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin  <regis.houssin@inodbox.com>
      * Copyright (C) 2012 Philippe Grand <philippe.grand@atoo-net.com>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php b/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php
    index 4a699b75a22..a0331fee35e 100644
    --- a/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php
    +++ b/htdocs/adherents/canvas/default/tpl/adherentcard_edit.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin  <regis.houssin@inodbox.com>
      * Copyright (C) 2012 Philippe Grand <philippe.grand@atoo-net.com>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php b/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php
    index f19ba96c167..14439bb6e87 100644
    --- a/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php
    +++ b/htdocs/adherents/canvas/default/tpl/adherentcard_view.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Philippe Grand <philippe.grand@atoo-net.com>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php
    index 62b3a3e59a4..2f2c5f9dde8 100644
    --- a/htdocs/adherents/card.php
    +++ b/htdocs/adherents/card.php
    @@ -1,11 +1,12 @@
     <?php
    -/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
    - * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2018 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2012      Marcos García        <marcosgdf@gmail.com>
    - * Copyright (C) 2012-2018 Philippe Grand       <philippe.grand@atoo-net.com>
    - * Copyright (C) 2015-2016 Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
    +/* Copyright (C) 2001-2004  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2002-2003  Jean-Louis Bergamo      <jlb@j1b.org>
    + * Copyright (C) 2004-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2018  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2012       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2012-2018  Philippe Grand          <philippe.grand@atoo-net.com>
    + * Copyright (C) 2015-2018  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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,9 +23,9 @@
      */
     
     /**
    - *       \file       htdocs/adherents/card.php
    - *       \ingroup    member
    - *       \brief      Page of member
    + *  \file       htdocs/adherents/card.php
    + *  \ingroup    member
    + *  \brief      Page of member
      */
     
     require '../main.inc.php';
    @@ -93,7 +94,7 @@ if ($id > 0)
     	// Define variables to know what current user can do on properties of user linked to edited member
     	if ($object->user_id)
     	{
    -		// $ User is the user who edits, $ object->user_id is the id of the related user in the edited member
    +		// $User is the user who edits, $object->user_id is the id of the related user in the edited member
     		$caneditfielduser=((($user->id == $object->user_id) && $user->rights->user->self->creer)
     				|| (($user->id != $object->user_id) && $user->rights->user->user->creer));
     		$caneditpassworduser=((($user->id == $object->user_id) && $user->rights->user->self->password)
    @@ -248,6 +249,7 @@ if (empty($reshook))
     		}
     		$lastname=$_POST["lastname"];
     		$firstname=$_POST["firstname"];
    +		$gender = $_POST["gender"];
     		$societe=$_POST["societe"];
     		$morphy=$_POST["morphy"];
     		$login=$_POST["login"];
    @@ -266,7 +268,7 @@ if (empty($reshook))
     			$langs->load("errors");
     			setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Company")), null, 'errors');
     		}
    -		// Test si le login existe deja
    +		// Check if the login already exists
     		if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
     		{
     			if (empty($login)) {
    @@ -283,6 +285,7 @@ if (empty($reshook))
     			$object->civility_id = trim(GETPOST("civility_id",'alpha'));
     			$object->firstname   = trim(GETPOST("firstname",'alpha'));
     			$object->lastname    = trim(GETPOST("lastname",'alpha'));
    +			$object->gender      = trim(GETPOST("gender",'alpha'));
     			$object->login       = trim(GETPOST("login",'alpha'));
     			$object->pass        = trim(GETPOST("pass",'alpha'));
     
    @@ -300,6 +303,8 @@ if (empty($reshook))
     			$object->phone_mobile= trim(GETPOST("phone_mobile",'alpha'));
     			$object->email       = preg_replace('/\s+/', '', GETPOST("member_email",'alpha'));
     			$object->skype       = trim(GETPOST("skype",'alpha'));
    +			$object->twitter     = trim(GETPOST("twitter",'alpha'));
    +			$object->facebook    = trim(GETPOST("facebook",'alpha'));
     			$object->birth       = $birthdate;
     
     			$object->typeid      = GETPOST("typeid",'int');
    @@ -431,6 +436,7 @@ if (empty($reshook))
     		$civility_id=GETPOST("civility_id",'alpha');
     		$lastname=GETPOST("lastname",'alpha');
     		$firstname=GETPOST("firstname",'alpha');
    +		$gender=GETPOST("gender",'alpha');
     		$societe=GETPOST("societe",'alpha');
     		$address=GETPOST("address",'alpha');
     		$zip=GETPOST("zipcode",'alpha');
    @@ -442,6 +448,8 @@ if (empty($reshook))
     		$phone_perso=GETPOST("phone_perso",'alpha');
     		$phone_mobile=GETPOST("phone_mobile",'alpha');
     		$skype=GETPOST("member_skype",'alpha');
    +		$twitter=GETPOST("member_twitter",'alpha');
    +		$facebook=GETPOST("member_facebook",'alpha');
     		$email=preg_replace('/\s+/', '', GETPOST("member_email",'alpha'));
     		$login=GETPOST("member_login",'alpha');
     		$pass=GETPOST("password",'alpha');
    @@ -457,6 +465,7 @@ if (empty($reshook))
     		$object->civility_id = $civility_id;
     		$object->firstname   = $firstname;
     		$object->lastname    = $lastname;
    +		$object->gender      = $gender;
     		$object->societe     = $societe;
     		$object->address     = $address;
     		$object->zip         = $zip;
    @@ -466,7 +475,11 @@ if (empty($reshook))
     		$object->phone       = $phone;
     		$object->phone_perso = $phone_perso;
     		$object->phone_mobile= $phone_mobile;
    +
     		$object->skype       = $skype;
    +		$object->twitter     = $twitter;
    +		$object->facebook    = $facebook;
    +
     		$object->email       = $email;
     		$object->login       = $login;
     		$object->pass        = $pass;
    @@ -621,8 +634,9 @@ if (empty($reshook))
     				// Set output language
     				$outputlangs = new Translate('', $conf);
     				$outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang);
    +				// Load traductions files requiredby by page
     				$outputlangs->loadLangs(array("main", "members"));
    -				// Get email content fro mtemplae
    +				// Get email content from template
     				$arraydefaultmessage=null;
     				$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION;
     
    @@ -634,27 +648,26 @@ if (empty($reshook))
     					$msg     = $arraydefaultmessage->content;
     				}
     
    -                if (empty($labeltouse) || (int) $labeltouse === -1) {
    -                    //fallback on the old configuration.
    -                    setEventMessages('WarningMandatorySetupNotComplete', [], 'errors');
    -                    $error++;
    -                }else{
    -                    $substitutionarray=getCommonSubstitutionArray($outputlangs, 0, null, $object);
    -                    complete_substitutions_array($substitutionarray, $outputlangs, $object);
    -                    $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs);
    -                    $texttosend = make_substitutions(dol_concatdesc($msg, $adht->getMailOnValid()), $substitutionarray, $outputlangs);
    -
    -                    $moreinheader='X-Dolibarr-Info: send_an_email by adherents/card.php'."\r\n";
    -
    -                    $result=$object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader);
    -                    if ($result < 0)
    -                    {
    -                        $error++;
    -                        setEventMessages($object->error, $object->errors, 'errors');
    -                    }
    -                }
    +				if (empty($labeltouse) || (int) $labeltouse === -1) {
    +					//fallback on the old configuration.
    +					setEventMessages('WarningMandatorySetupNotComplete', [], 'errors');
    +					$error++;
    +				}
    +				else {
    +					$substitutionarray=getCommonSubstitutionArray($outputlangs, 0, null, $object);
    +					complete_substitutions_array($substitutionarray, $outputlangs, $object);
    +					$subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs);
    +					$texttosend = make_substitutions(dol_concatdesc($msg, $adht->getMailOnValid()), $substitutionarray, $outputlangs);
     
    +					$moreinheader='X-Dolibarr-Info: send_an_email by adherents/card.php'."\r\n";
     
    +					$result=$object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader);
    +					if ($result < 0)
    +					{
    +						$error++;
    +						setEventMessages($object->error, $object->errors, 'errors');
    +					}
    +				}
     			}
     		}
     		else
    @@ -702,8 +715,9 @@ if (empty($reshook))
     					// Set output language
     					$outputlangs = new Translate('', $conf);
     					$outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang);
    +					// Load traductions files requiredby by page
     					$outputlangs->loadLangs(array("main", "members"));
    -					// Get email content fro mtemplae
    +					// Get email content from template
     					$arraydefaultmessage=null;
     					$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION;
     
    @@ -715,28 +729,27 @@ if (empty($reshook))
     						$msg     = $arraydefaultmessage->content;
     					}
     
    -                    if (empty($labeltouse) || (int) $labeltouse === -1) {
    -                        //fallback on the old configuration.
    -                        setEventMessages('WarningMandatorySetupNotComplete', [], 'errors');
    -                        $error++;
    -                    }else{
    -                        $substitutionarray=getCommonSubstitutionArray($outputlangs, 0, null, $object);
    -                        complete_substitutions_array($substitutionarray, $outputlangs, $object);
    -                        $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs);
    -                        $texttosend = make_substitutions(dol_concatdesc($msg, $adht->getMailOnResiliate()), $substitutionarray, $outputlangs);
    -
    -                        $moreinheader='X-Dolibarr-Info: send_an_email by adherents/card.php'."\r\n";
    -
    -                        $result=$object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader);
    -                        if ($result < 0)
    -                        {
    -                            $error++;
    -                            setEventMessages($object->error, $object->errors, 'errors');
    -                        }
    -                    }
    -                }
    +					if (empty($labeltouse) || (int) $labeltouse === -1) {
    +						//fallback on the old configuration.
    +						setEventMessages('WarningMandatorySetupNotComplete', [], 'errors');
    +						$error++;
    +					}
    +					else {
    +						$substitutionarray=getCommonSubstitutionArray($outputlangs, 0, null, $object);
    +						complete_substitutions_array($substitutionarray, $outputlangs, $object);
    +						$subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs);
    +						$texttosend = make_substitutions(dol_concatdesc($msg, $adht->getMailOnResiliate()), $substitutionarray, $outputlangs);
     
    +						$moreinheader='X-Dolibarr-Info: send_an_email by adherents/card.php'."\r\n";
     
    +						$result=$object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader);
    +						if ($result < 0)
    +						{
    +							$error++;
    +							setEventMessages($object->error, $object->errors, 'errors');
    +						}
    +					}
    +				}
     			}
     			else
     			{
    @@ -794,7 +807,6 @@ if (empty($reshook))
     	$mode='emailfrommember';
     	$trackid='mem'.$object->id;
     	include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
    -
     }
     
     
    @@ -899,7 +911,7 @@ else
     		// Login
     		if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
     		{
    -			print '<tr><td><span class="fieldrequired">'.$langs->trans("Login").' / '.$langs->trans("Id").'</span></td><td><input type="text" name="member_login" class="minwidth300" maxlength="50" value="'.(isset($_POST["member_login"])?GETPOST("member_login", 'alpha', 2):$object->login).'"></td></tr>';
    +			print '<tr><td><span class="fieldrequired">'.$langs->trans("Login").' / '.$langs->trans("Id").'</span></td><td><input type="text" name="member_login" class="minwidth300" maxlength="50" value="'.(isset($_POST["member_login"])?GETPOST("member_login", 'alpha', 2):$object->login).'" autofocus="autofocus"></td></tr>';
     		}
     
     		// Password
    @@ -946,6 +958,13 @@ else
     		print '<tr><td id="tdfirstname">'.$langs->trans("Firstname").'</td><td><input type="text" name="firstname" class="minwidth300" maxlength="50" value="'.(GETPOST('firstname','alpha')?GETPOST('firstname','alpha'):$object->firstname).'"></td>';
     		print '</tr>';
     
    +		// Gender
    +		print '<tr><td>'.$langs->trans("Gender").'</td>';
    +		print '<td>';
    +		$arraygender=array('man'=>$langs->trans("Genderman"),'woman'=>$langs->trans("Genderwoman"));
    +		print $form->selectarray('gender', $arraygender, GETPOST('gender'), 1);
    +		print '</td></tr>';
    +
     		// EMail
     		print '<tr><td>'.($conf->global->ADHERENT_MAIL_REQUIRED?'<span class="fieldrequired">':'').$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED?'</span>':'').'</td><td><input type="text" name="member_email" class="minwidth300" maxlength="255" value="'.(GETPOST('member_email','alpha')?GETPOST('member_email','alpha'):$object->email).'"></td></tr>';
     
    @@ -993,14 +1012,26 @@ else
     		print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td><input type="text" name="phone_mobile" size="20" value="'.(GETPOST('phone_mobile','alpha')?GETPOST('phone_mobile','alpha'):$object->phone_mobile).'"></td></tr>';
     
     	    // Skype
    -	    if (! empty($conf->skype->enabled))
    +	    if (! empty($conf->socialnetworks->enabled))
     	    {
     			print '<tr><td>'.$langs->trans("Skype").'</td><td><input type="text" name="member_skype" size="40" value="'.(GETPOST('member_skype','alpha')?GETPOST('member_skype','alpha'):$object->skype).'"></td></tr>';
     	    }
     
    -		// Birthday
    +	    // Twitter
    +	    if (! empty($conf->socialnetworks->enabled))
    +	    {
    +	    	print '<tr><td>'.$langs->trans("Twitter").'</td><td><input type="text" name="member_twitter" size="40" value="'.(GETPOST('member_twitter','alpha')?GETPOST('member_twitter','alpha'):$object->twitter).'"></td></tr>';
    +	    }
    +
    +	    // Facebook
    +	    if (! empty($conf->socialnetworks->enabled))
    +	    {
    +	    	print '<tr><td>'.$langs->trans("Facebook").'</td><td><input type="text" name="member_facebook" size="40" value="'.(GETPOST('member_facebook','alpha')?GETPOST('member_facebook','alpha'):$object->facebook).'"></td></tr>';
    +	    }
    +
    +	    // Birthday
     		print "<tr><td>".$langs->trans("Birthday")."</td><td>\n";
    -		$form->select_date(($object->birth ? $object->birth : -1),'birth','','',1,'formsoc');
    +		print $form->selectDate(($object->birth ? $object->birth : -1),'birth','','',1,'formsoc');
     		print "</td></tr>\n";
     
     		// Public profil
    @@ -1011,7 +1042,7 @@ else
     		// Categories
     		if (! empty($conf->categorie->enabled)  && ! empty($user->rights->categorie->lire))
     		{
    -			print '<tr><td>' . fieldLabel('Categories', 'memcars') . '</td><td>';
    +			print '<tr><td>' .$form->editfieldkey("Categories", 'memcats', '', $object, 0) . '</td><td>';
     			$cate_arbo = $form->select_all_categories(Categorie::TYPE_MEMBER, null, 'parent', null, null, 1);
     			print $form->multiselectarray('memcats', $cate_arbo, GETPOST('memcats', 'array'), null, null, null, null, '100%');
     			print "</td></tr>";
    @@ -1134,7 +1165,7 @@ else
     			print '<tr><td><span class="fieldrequired">'.$langs->trans("Login").' / '.$langs->trans("Id").'</span></td><td><input type="text" name="login" class="minwidth300" maxlength="50" value="'.(isset($_POST["login"])?GETPOST("login",'alpha',2):$object->login).'"></td></tr>';
     		}
     
    -	// Password
    +		// Password
     		if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
     		{
     			print '<tr><td class="fieldrequired">'.$langs->trans("Password").'</td><td><input type="password" name="pass" class="minwidth300" maxlength="50" value="'.(isset($_POST["pass"])?GETPOST("pass",'',2):$object->pass).'"></td></tr>';
    @@ -1176,6 +1207,13 @@ else
     		print '<tr><td id="tdfirstname">'.$langs->trans("Firstname").'</td><td><input type="text" name="firstname" class="minwidth300" maxlength="50" value="'.(isset($_POST["firstname"])?GETPOST("firstname",'',3):$object->firstname).'"></td>';
     		print '</tr>';
     
    +		// Gender
    +		print '<tr><td>'.$langs->trans("Gender").'</td>';
    +		print '<td>';
    +		$arraygender=array('man'=>$langs->trans("Genderman"),'woman'=>$langs->trans("Genderwoman"));
    +		print $form->selectarray('gender', $arraygender, GETPOST('gender')?GETPOST('gender'):$object->gender, 1);
    +		print '</td></tr>';
    +
     		// Photo
     		print '<tr><td>'.$langs->trans("Photo").'</td>';
     		print '<td class="hideonsmartphone" valign="middle">';
    @@ -1231,14 +1269,26 @@ else
     		print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td><input type="text" name="phone_mobile" size="20" value="'.(isset($_POST["phone_mobile"])?GETPOST("phone_mobile"):$object->phone_mobile).'"></td></tr>';
     
     	    // Skype
    -	    if (! empty($conf->skype->enabled))
    +	    if (! empty($conf->socialnetworks->enabled))
     	    {
    -			    print '<tr><td>'.$langs->trans("Skype").'</td><td><input type="text" name="skype" class="minwidth100" value="'.(isset($_POST["skype"])?GETPOST("skype"):$object->skype).'"></td></tr>';
    +			print '<tr><td>'.$langs->trans("Skype").'</td><td><input type="text" name="skype" class="minwidth100" value="'.(isset($_POST["skype"])?GETPOST("skype"):$object->skype).'"></td></tr>';
     	    }
     
    -		// Birthday
    +	    // Twitter
    +	    if (! empty($conf->socialnetworks->enabled))
    +	    {
    +	    	print '<tr><td>'.$langs->trans("Twitter").'</td><td><input type="text" name="twitter" class="minwidth100" value="'.(isset($_POST["twitter"])?GETPOST("twitter"):$object->twitter).'"></td></tr>';
    +	    }
    +
    +	    // Facebook
    +	    if (! empty($conf->socialnetworks->enabled))
    +	    {
    +	    	print '<tr><td>'.$langs->trans("Facebook").'</td><td><input type="text" name="facebook" class="minwidth100" value="'.(isset($_POST["facebook"])?GETPOST("facebook"):$object->facebook).'"></td></tr>';
    +	    }
    +
    +	    // Birthday
     		print "<tr><td>".$langs->trans("Birthday")."</td><td>\n";
    -		$form->select_date(($object->birth ? $object->birth : -1),'birth','','',1,'formsoc');
    +		print $form->selectDate(($object->birth ? $object->birth : -1),'birth','','',1,'formsoc');
     		print "</td></tr>\n";
     
     		// Public profil
    @@ -1249,13 +1299,16 @@ else
     		// Categories
     		if (! empty( $conf->categorie->enabled ) && !empty( $user->rights->categorie->lire ))
     		{
    -			print '<tr><td>' . fieldLabel('Categories', 'memcats') . '</td>';
    +			print '<tr><td>' . $form->editfieldkey("Categories", 'memcats', '', $object, 0) . '</td>';
     			print '<td>';
     			$cate_arbo = $form->select_all_categories(Categorie::TYPE_MEMBER, null, null, null, null, 1);
     			$c = new Categorie($db);
     			$cats = $c->containing($object->id, Categorie::TYPE_MEMBER);
    -			foreach ($cats as $cat) {
    -				$arrayselected[] = $cat->id;
    +			$arrayselected = array();
    +			if (is_array($cats)) {
    +				foreach ($cats as $cat) {
    +					$arrayselected[] = $cat->id;
    +				}
     			}
     			print $form->multiselectarray('memcats', $cate_arbo, $arrayselected, '', 0, '', 0, '100%');
     			print "</td></tr>";
    @@ -1301,7 +1354,6 @@ else
     		print '</div>';
     
     		print '</form>';
    -
     	}
     
     	if ($id > 0 && $action != 'edit')
    @@ -1403,6 +1455,7 @@ else
     			// Set output language
     			$outputlangs = new Translate('', $conf);
     			$outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang);
    +			// Load traductions files requiredby by page
     			$outputlangs->loadLangs(array("main", "members"));
     			// Get email content from template
     			$arraydefaultmessage=null;
    @@ -1463,8 +1516,9 @@ else
     			// Set output language
     			$outputlangs = new Translate('', $conf);
     			$outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang);
    +			// Load traductions files requiredby by page
     			$outputlangs->loadLangs(array("main", "members"));
    -			// Get email content fro mtemplae
    +			// Get email content from template
     			$arraydefaultmessage=null;
     			$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION;
     
    @@ -1532,7 +1586,7 @@ else
             print '<div class="fichehalfleft">';
     
             print '<div class="underbanner clearboth"></div>';
    -		print '<table class="border centpercent">';
    +		print '<table class="border tableforfield centpercent">';
     
     		// Login
     		if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
    @@ -1547,6 +1601,12 @@ else
     		print '<tr><td>'.$langs->trans("Nature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
     		print '</tr>';
     
    +		// Gender
    +		print '<tr><td>'.$langs->trans("Gender").'</td>';
    +		print '<td>';
    +		if ($object->gender) print $langs->trans("Gender".$object->gender);
    +		print '</td></tr>';
    +
     		// Company
     		print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->societe.'</td></tr>';
     
    @@ -1601,11 +1661,8 @@ else
     		if (! empty($conf->societe->enabled))
     		{
     			print '<tr><td>';
    -			print '<table class="nobordernopadding" width="100%"><tr><td>';
    -			print $langs->trans("LinkedToDolibarrThirdParty");
    -			print '</td>';
    -			if ($action != 'editthirdparty' && $user->rights->adherent->creer) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editthirdparty&amp;rowid='.$object->id.'">'.img_edit($langs->trans('SetLinkToThirdParty'),1).'</a></td>';
    -			print '</tr></table>';
    +			$editenable = $user->rights->adherent->creer;
    +			print $form->editfieldkey('LinkedToDolibarrThirdParty', 'thirdparty', '', $object, $editenable);
     			print '</td><td colspan="2" class="valeur">';
     			if ($action == 'editthirdparty')
     			{
    @@ -1618,7 +1675,7 @@ else
     				print '<tr><td>';
     				print $form->select_company($object->fk_soc,'socid','',1);
     				print '</td>';
    -				print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
    +				print '<td class="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
     				print '</tr></table></form>';
     			}
     			else
    @@ -1639,19 +1696,8 @@ else
     
     		// Login Dolibarr
     		print '<tr><td>';
    -		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print $langs->trans("LinkedToDolibarrUser");
    -		print '</td>';
    -		if ($action != 'editlogin' && $user->rights->adherent->creer)
    -		{
    -			print '<td align="right">';
    -			if ($user->rights->user->user->creer)
    -			{
    -				print '<a href="'.$_SERVER["PHP_SELF"].'?action=editlogin&amp;rowid='.$object->id.'">'.img_edit($langs->trans('SetLinkToUser'),1).'</a>';
    -			}
    -			print '</td>';
    -		}
    -		print '</tr></table>';
    +		$editenable = $user->rights->adherent->creer && $user->rights->user->user->creer;
    +		print $form->editfieldkey('LinkedToDolibarrUser', 'login', '', $object, $editenable);
     		print '</td><td colspan="2" class="valeur">';
     		if ($action == 'editlogin')
     		{
    @@ -1670,10 +1716,11 @@ else
             print '</table>';
     
             print '</div>';
    -        print '<div class="fichehalfright"><div class="ficheaddleft">';
     
    +        print '<div class="fichehalfright"><div class="ficheaddleft">';
             print '<div class="underbanner clearboth"></div>';
    -        print '<table class="border tableforfield" width="100%">';
    +
    +        print '<table class="border tableforfield tableforfield" width="100%">';
     
     		// Birthday
     		print '<tr><td class="titlefield">'.$langs->trans("Birthday").'</td><td class="valeur">'.dol_print_date($object->birth,'day').'</td></tr>';
    @@ -1724,16 +1771,16 @@ else
     					if ($object->statut >= 1)
     					{
     						if ($object->email) print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$object->id.'&action=sendinfo">'.$langs->trans("SendCardByMail")."</a></div>\n";
    -						else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans("SendCardByMail")."</a></div>\n";
    +						else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans("SendCardByMail")."</a></div>\n";
     					}
     					else
     					{
    -						print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("SendCardByMail")."</font></div>";
    +						print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("SendCardByMail")."</font></div>";
     					}
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("SendCardByMail")."</font></div>";
    +					print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("SendCardByMail")."</font></div>";
     				}*/
     
     				// Modify
    @@ -1743,7 +1790,7 @@ else
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Modify").'</font></div>';
    +					print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Modify").'</font></div>';
     				}
     
     				// Validate
    @@ -1755,7 +1802,7 @@ else
     					}
     					else
     					{
    -						print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Validate").'</font></div>';
    +						print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Validate").'</font></div>';
     					}
     				}
     
    @@ -1768,7 +1815,7 @@ else
     					}
     					else
     					{
    -						print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Reenable")."</font></div>";
    +						print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Reenable")."</font></div>";
     					}
     				}
     
    @@ -1781,7 +1828,7 @@ else
     					}
     					else
     					{
    -						print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Resiliate")."</font></div>";
    +						print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Resiliate")."</font></div>";
     					}
     				}
     
    @@ -1791,11 +1838,11 @@ else
     					if ($user->rights->societe->creer)
     					{
     						if ($object->statut != -1) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_thirdparty">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>';
    -						else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>';
    +						else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>';
     					}
     					else
     					{
    -						print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrThirdParty")."</font></div>";
    +						print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrThirdParty")."</font></div>";
     					}
     				}
     
    @@ -1805,11 +1852,11 @@ else
     					if ($user->rights->user->user->creer)
     					{
     						if ($object->statut != -1) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&amp;action=create_user">'.$langs->trans("CreateDolibarrLogin").'</a></div>';
    -						else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrLogin").'</a></div>';
    +						else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrLogin").'</a></div>';
     					}
     					else
     					{
    -						print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrLogin")."</font></div>";
    +						print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrLogin")."</font></div>";
     					}
     				}
     
    @@ -1820,7 +1867,7 @@ else
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Delete")."</font></div>";
    +					print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Delete")."</font></div>";
     				}
     
     				// Action SPIP
    @@ -1837,7 +1884,6 @@ else
     						print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$object->id.'&action=add_spip">'.$langs->trans("AddIntoSpip")."</a></div>\n";
     					}
     				}
    -
     			}
     		}
     		print '</div>';
    @@ -1916,6 +1962,6 @@ else
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/cartes/carte.php b/htdocs/adherents/cartes/carte.php
    index be3a13d8771..c50de6f8c81 100644
    --- a/htdocs/adherents/cartes/carte.php
    +++ b/htdocs/adherents/cartes/carte.php
    @@ -208,7 +208,6 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg
                 	$mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("DescADHERENT_CARD_TYPE"));
                 }
                 if (! $mesg) $result=members_card_pdf_create($db, $arrayofmembers, $model, $outputlangs);
    -
             }
             elseif ($mode == 'label')
             {
    @@ -310,6 +309,6 @@ print '<br><input class="button" type="submit" value="'.$langs->trans("BuildDoc"
     print '</form>';
     print '<br>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php
    index c7807bc6b00..3a698c6b042 100644
    --- a/htdocs/adherents/class/adherent.class.php
    +++ b/htdocs/adherents/class/adherent.class.php
    @@ -4,10 +4,10 @@
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2009-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    - * Copyright (C) 2014-2016	Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2009-2017	Regis Houssin			<regis.houssin@inodbox.com>
    + * Copyright (C) 2014-2018	Alexandre Spangaro		<aspangaro@zendsi.com>
      * Copyright (C) 2015		Marcos García			<marcosgdf@gmail.com>
    - * Copyright (C) 2015		Frederic France			<frederic.france@free.fr>
    + * Copyright (C) 2015-2018  Frédéric France			<frederic.france@netlogic.fr>
      * Copyright (C) 2015		Raphaël Doursenaud		<rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2016		Juanjo Menent			<jmenent@2byte.es>
      *
    @@ -41,72 +41,176 @@ require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
      */
     class Adherent extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='member';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='adherent';
    -	public $ismultientitymanaged = 1;  // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     
    -	var $mesgs;
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 1;
     
    -	var $login;
    +	public $mesgs;
    +
    +    /**
    +     * @var string login of member
    +     */
    +	public $login;
     
     	//! Clear password in memory
    -	var $pass;
    +	public $pass;
     	//! Clear password in database (defined if DATABASE_PWD_ENCRYPTED=0)
    -	var $pass_indatabase;
    +	public $pass_indatabase;
     	//! Encrypted password in database (always defined)
    -	var $pass_indatabase_crypted;
    +	public $pass_indatabase_crypted;
     
    -	var $societe;
    -	var $company;
    -	var $address;
    -	var $zip;
    -	var $town;
    +    /**
    +     * @var string company name
    +     * @deprecated
    +     */
    +	public $societe;
     
    -	var $state_id;              // Id of department
    -	var $state_code;            // Code of department
    -	var $state;                 // Label of department
    +	/**
    +	 * @var string company name
    +	 */
    +	public $company;
     
    -	var $email;
    -	var $skype;
    -	var $phone;
    -	var $phone_perso;
    -	var $phone_mobile;
    +	/**
    +	 * @var int Thirdparty ID
    +	 */
    +    public $fk_soc;
     
    -	var $morphy;
    -	var $public;
    -	var $statut;			// -1:brouillon, 0:resilie, >=1:valide,paye
    -	var $photo;
    +	/**
    +	 * @var string Address
    +	 */
    +	public $address;
     
    -	var $datec;
    -	var $datem;
    -	var $datevalid;
    -	var $birth;
    +    /**
    +     * @var string zipcode
    +     */
    +    public $zip;
     
    -	var $note_public;
    -	var $note_private;
    +    /**
    +     * @var string town
    +     */
    +	public $town;
     
    -	var $typeid;			// Id type adherent
    -	var $type;				// Libelle type adherent
    -	var $need_subscription;
    +    /**
    +     * @var int Id of state
    +     */
    +    public $state_id;
     
    -	var $user_id;
    -	var $user_login;
    +    /**
    +     * @var string Code of state
    +     */
    +    public $state_code;
     
    -	var $fk_soc;
    +    /**
    +     * @var string Label of state
    +     */
    +	public $state;
     
    -	var $datefin;	// From member table
    +    /**
    +     * @var string email
    +     */
    +	public $email;
    +
    +    /**
    +     * @var string skype account
    +     */
    +    public $skype;
    +
    +    /**
    +     * @var string twitter account
    +     */
    +    public $twitter;
    +
    +    /**
    +     * @var string facebook account
    +     */
    +	public $facebook;
    +
    +    /**
    +     * @var string Phone number
    +     */
    +	public $phone;
    +
    +    /**
    +     * @var string Private Phone number
    +     */
    +	public $phone_perso;
    +
    +    /**
    +     * @var string Mobile phone number
    +     */
    +	public $phone_mobile;
    +
    +    /**
    +     * @var string Fax number
    +     */
    +    public $fax;
    +
    +    /**
    +     * @var string Function
    +     */
    +    public $poste;
    +
    +	public $morphy;
    +	public $public;
    +
    +    // -1:brouillon, 0:resilie, >=1:valide,paye
    +    // def in common object
    +    //public $statut;
    +
    +    public $photo;
    +
    +	public $datec;
    +	public $datem;
    +	public $datevalid;
    +
    +	public $gender;
    +	public $birth;
    +
    +    /**
    +     * @var int id type member
    +     */
    +	public $typeid;
    +
    +    /**
    +     * @var string label type member
    +     */
    +	public $type;
    +	public $need_subscription;
    +
    +	public $user_id;
    +	public $user_login;
    +
    +	public $datefin;	// From member table
     
     	// Fields loaded by fetch_subscriptions()
    -	var $first_subscription_date;
    -	var $first_subscription_amount;
    -	var $last_subscription_date;
    -	var $last_subscription_date_start;
    -	var $last_subscription_date_end;
    -	var $last_subscription_amount;
    -	var $subscriptions=array();
    +	public $first_subscription_date;
    +	public $first_subscription_amount;
    +	public $last_subscription_date;
    +	public $last_subscription_date_start;
    +	public $last_subscription_date_end;
    +	public $last_subscription_amount;
    +	public $subscriptions=array();
     
    -	var $oldcopy;		// To contains a clone of this when we need to save old properties of object
    +    /**
    +     * @var Adherent To contains a clone of this when we need to save old properties of object
    +     */
    +	public $oldcopy;
     
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
     
     	/**
    @@ -125,6 +229,7 @@ class Adherent extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Function sending an email to the current member with the text supplied in parameter.
     	 *
    @@ -143,6 +248,7 @@ class Adherent extends CommonObject
     	 */
     	function send_an_email($text, $subject, $filename_list=array(), $mimetype_list=array(), $mimefilename_list=array(), $addr_cc="", $addr_bcc="", $deliveryreceipt=0, $msgishtml=-1, $errors_to='', $moreinheader='')
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		// Detect if message is HTML
    @@ -221,23 +327,23 @@ class Adherent extends CommonObject
     		$substitutionarray=array(
     		    '__ID__'=>$this->id,
     		    '__MEMBER_ID__'=>$this->id,
    -		    '__CIVILITY__'=>$this->getCivilityLabel(),
    -			'__FIRSTNAME__'=>$msgishtml?dol_htmlentitiesbr($this->firstname):$this->firstname,
    -			'__LASTNAME__'=>$msgishtml?dol_htmlentitiesbr($this->lastname):$this->lastname,
    +			'__CIVILITY__'=>$this->getCivilityLabel(),
    +			'__FIRSTNAME__'=>$msgishtml?dol_htmlentitiesbr($this->firstname):($this->firstname?$this->firstname:''),
    +			'__LASTNAME__'=>$msgishtml?dol_htmlentitiesbr($this->lastname):($this->lastname?$this->lastname:''),
     			'__FULLNAME__'=>$msgishtml?dol_htmlentitiesbr($this->getFullName($langs)):$this->getFullName($langs),
    -			'__COMPANY__'=>$msgishtml?dol_htmlentitiesbr($this->societe):$this->societe,
    -			'__ADDRESS__'=>$msgishtml?dol_htmlentitiesbr($this->address):$this->address,
    -			'__ZIP__'=>$msgishtml?dol_htmlentitiesbr($this->zip):$this->zip,
    -			'__TOWN__'=>$msgishtml?dol_htmlentitiesbr($this->town):$this->town,
    -			'__COUNTRY__'=>$msgishtml?dol_htmlentitiesbr($this->country):$this->country,
    -			'__EMAIL__'=>$msgishtml?dol_htmlentitiesbr($this->email):$this->email,
    -			'__BIRTH__'=>$msgishtml?dol_htmlentitiesbr($birthday):$birthday,
    -			'__PHOTO__'=>$msgishtml?dol_htmlentitiesbr($this->photo):$this->photo,
    -			'__LOGIN__'=>$msgishtml?dol_htmlentitiesbr($this->login):$this->login,
    -			'__PASSWORD__'=>$msgishtml?dol_htmlentitiesbr($this->pass):$this->pass,
    -			'__PHONE__'=>$msgishtml?dol_htmlentitiesbr($this->phone):$this->phone,
    -			'__PHONEPRO__'=>$msgishtml?dol_htmlentitiesbr($this->phone_perso):$this->phone_perso,
    -			'__PHONEMOBILE__'=>$msgishtml?dol_htmlentitiesbr($this->phone_mobile):$this->phone_mobile,
    +			'__COMPANY__'=>$msgishtml?dol_htmlentitiesbr($this->societe):($this->societe?$this->societe:''),
    +			'__ADDRESS__'=>$msgishtml?dol_htmlentitiesbr($this->address):($this->address?$this->address:''),
    +			'__ZIP__'=>$msgishtml?dol_htmlentitiesbr($this->zip):($this->zip?$this->zip:''),
    +			'__TOWN__'=>$msgishtml?dol_htmlentitiesbr($this->town):($this->town?$this->town:''),
    +			'__COUNTRY__'=>$msgishtml?dol_htmlentitiesbr($this->country):($this->country?$this->country:''),
    +			'__EMAIL__'=>$msgishtml?dol_htmlentitiesbr($this->email):($this->email?$this->email:''),
    +			'__BIRTH__'=>$msgishtml?dol_htmlentitiesbr($birthday):($birthday?$birthday:''),
    +			'__PHOTO__'=>$msgishtml?dol_htmlentitiesbr($this->photo):($this->photo?$this->photo:''),
    +			'__LOGIN__'=>$msgishtml?dol_htmlentitiesbr($this->login):($this->login?$this->login:''),
    +			'__PASSWORD__'=>$msgishtml?dol_htmlentitiesbr($this->pass):($this->pass?$this->pass:''),
    +			'__PHONE__'=>$msgishtml?dol_htmlentitiesbr($this->phone):($this->phone?$this->phone:''),
    +			'__PHONEPRO__'=>$msgishtml?dol_htmlentitiesbr($this->phone_perso):($this->phone_perso?$this->phone_perso:''),
    +			'__PHONEMOBILE__'=>$msgishtml?dol_htmlentitiesbr($this->phone_mobile):($this->phone_mobile?$this->phone_mobile:'')
     		);
     
     		complete_substitutions_array($substitutionarray, $langs, $this);
    @@ -404,17 +510,18 @@ class Adherent extends CommonObject
     		dol_syslog(get_class($this)."::update notrigger=".$notrigger.", nosyncuser=".$nosyncuser.", nosyncuserpass=".$nosyncuserpass." nosyncthirdparty=".$nosyncthirdparty.", email=".$this->email);
     
     		// Clean parameters
    -		$this->lastname=trim($this->lastname)?trim($this->lastname):trim($this->lastname);
    -		$this->firstname=trim($this->firstname)?trim($this->firstname):trim($this->firstname);
    -		$this->address=($this->address?$this->address:$this->address);
    -		$this->zip=($this->zip?$this->zip:$this->zip);
    -		$this->town=($this->town?$this->town:$this->town);
    -		$this->country_id=($this->country_id > 0?$this->country_id:$this->country_id);
    -		$this->state_id=($this->state_id > 0?$this->state_id:$this->state_id);
    +		$this->lastname     = trim($this->lastname)?trim($this->lastname):trim($this->lastname);
    +		$this->firstname    = trim($this->firstname)?trim($this->firstname):trim($this->firstname);
    +		$this->gender       = trim($this->gender);
    +		$this->address      = ($this->address?$this->address:$this->address);
    +		$this->zip          = ($this->zip?$this->zip:$this->zip);
    +		$this->town         = ($this->town?$this->town:$this->town);
    +		$this->country_id   = ($this->country_id > 0?$this->country_id:$this->country_id);
    +		$this->state_id     = ($this->state_id > 0?$this->state_id:$this->state_id);
     		if (! empty($conf->global->MAIN_FIRST_TO_UPPER)) $this->lastname=ucwords(trim($this->lastname));
     		if (! empty($conf->global->MAIN_FIRST_TO_UPPER)) $this->firstname=ucwords(trim($this->firstname));
    -		$this->note_public=($this->note_public?$this->note_public:$this->note_public);
    -		$this->note_private=($this->note_private?$this->note_private:$this->note_private);
    +		$this->note_public  = ($this->note_public?$this->note_public:$this->note_public);
    +		$this->note_private = ($this->note_private?$this->note_private:$this->note_private);
     
     		// Check parameters
     		if (! empty($conf->global->ADHERENT_MAIL_REQUIRED) && ! isValidEMail($this->email))
    @@ -430,6 +537,7 @@ class Adherent extends CommonObject
     		$sql.= " civility = ".($this->civility_id?"'".$this->db->escape($this->civility_id)."'":"null");
     		$sql.= ", firstname = ".($this->firstname?"'".$this->db->escape($this->firstname)."'":"null");
     		$sql.= ", lastname = ".($this->lastname?"'".$this->db->escape($this->lastname)."'":"null");
    +		$sql.= ", gender = ".($this->gender != -1 ? "'".$this->db->escape($this->gender)."'" : "null");	// 'man' or 'woman'
     		$sql.= ", login = ".($this->login?"'".$this->db->escape($this->login)."'":"null");
     		$sql.= ", societe = ".($this->societe?"'".$this->db->escape($this->societe)."'":"null");
     		$sql.= ", fk_soc = ".($this->fk_soc > 0?$this->db->escape($this->fk_soc):"null");
    @@ -440,6 +548,8 @@ class Adherent extends CommonObject
     		$sql.= ", state_id = ".($this->state_id>0?$this->db->escape($this->state_id):"null");
     		$sql.= ", email = '".$this->db->escape($this->email)."'";
     		$sql.= ", skype = '".$this->db->escape($this->skype)."'";
    +		$sql.= ", twitter = '".$this->db->escape($this->twitter)."'";
    +		$sql.= ", facebook = '".$this->db->escape($this->facebook)."'";
     		$sql.= ", phone = ".($this->phone?"'".$this->db->escape($this->phone)."'":"null");
     		$sql.= ", phone_perso = ".($this->phone_perso?"'".$this->db->escape($this->phone_perso)."'":"null");
     		$sql.= ", phone_mobile = ".($this->phone_mobile?"'".$this->db->escape($this->phone_mobile)."'":"null");
    @@ -534,18 +644,22 @@ class Adherent extends CommonObject
     						$luser->civility_id=$this->civility_id;
     						$luser->firstname=$this->firstname;
     						$luser->lastname=$this->lastname;
    +						$luser->gender=$this->gender;
     						$luser->pass=$this->pass;
     						$luser->societe_id=$this->societe;
     
     						$luser->birth=$this->birth;
    -                                                $luser->address=$this->address;
    -                                                $luser->zip=$this->zip;
    -                                                $luser->town=$this->town;
    -                                                $luser->country_id=$this->country_id;
    -                                                $luser->state_id=$this->state_id;
    +
    +						$luser->address=$this->address;
    +						$luser->zip=$this->zip;
    +						$luser->town=$this->town;
    +						$luser->country_id=$this->country_id;
    +						$luser->state_id=$this->state_id;
     
     						$luser->email=$this->email;
     						$luser->skype=$this->skype;
    +						$luser->twitter=$this->twitter;
    +						$luser->facebook=$this->facebook;
     						$luser->office_phone=$this->phone;
     						$luser->user_mobile=$this->phone_mobile;
     
    @@ -585,6 +699,8 @@ class Adherent extends CommonObject
     						$lthirdparty->town=$this->town;
     						$lthirdparty->email=$this->email;
     						$lthirdparty->skype=$this->skype;
    +						$lthirdparty->twitter=$this->twitter;
    +						$lthirdparty->facebook=$this->facebook;
     						$lthirdparty->phone=$this->phone;
     						$lthirdparty->state_id=$this->state_id;
     						$lthirdparty->country_id=$this->country_id;
    @@ -636,6 +752,7 @@ class Adherent extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Update denormalized last subscription date.
     	 * 	This function is called when we delete a subscription for example.
    @@ -645,6 +762,7 @@ class Adherent extends CommonObject
     	 */
     	function update_end_date($user)
     	{
    +        // phpcs:enable
     		$this->db->begin();
     
     		// Search for last subscription id and end date
    @@ -689,7 +807,6 @@ class Adherent extends CommonObject
     			$this->db->rollback();
     			return -1;
     		}
    -
     	}
     
     	/**
    @@ -991,6 +1108,7 @@ class Adherent extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Method to load member from its login
     	 *
    @@ -999,6 +1117,7 @@ class Adherent extends CommonObject
     	 */
     	function fetch_login($login)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."adherent";
    @@ -1020,6 +1139,7 @@ class Adherent extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Method to load member from its name
     	 *
    @@ -1029,6 +1149,7 @@ class Adherent extends CommonObject
     	 */
     	function fetch_name($firstname,$lastname)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."adherent";
    @@ -1066,9 +1187,9 @@ class Adherent extends CommonObject
     	{
     		global $langs;
     
    -		$sql = "SELECT d.rowid, d.ref_ext, d.civility as civility_id, d.firstname, d.lastname, d.societe as company, d.fk_soc, d.statut, d.public, d.address, d.zip, d.town, d.note_private,";
    +		$sql = "SELECT d.rowid, d.ref_ext, d.civility as civility_id, d.gender, d.firstname, d.lastname, d.societe as company, d.fk_soc, d.statut, d.public, d.address, d.zip, d.town, d.note_private,";
     		$sql.= " d.note_public,";
    -		$sql.= " d.email, d.skype, d.phone, d.phone_perso, d.phone_mobile, d.login, d.pass, d.pass_crypted,";
    +		$sql.= " d.email, d.skype, d.twitter, d.facebook, d.phone, d.phone_perso, d.phone_mobile, d.login, d.pass, d.pass_crypted,";
     		$sql.= " d.photo, d.fk_adherent_type, d.morphy, d.entity,";
     		$sql.= " d.datec as datec,";
     		$sql.= " d.tms as datem,";
    @@ -1113,6 +1234,7 @@ class Adherent extends CommonObject
     				$this->civility_id		= $obj->civility_id;
     				$this->firstname		= $obj->firstname;
     				$this->lastname			= $obj->lastname;
    +				$this->gender			= $obj->gender;
     				$this->login			= $obj->login;
     				$this->societe			= $obj->company;
     				$this->company			= $obj->company;
    @@ -1140,7 +1262,10 @@ class Adherent extends CommonObject
     				$this->phone_perso		= $obj->phone_perso;
     				$this->phone_mobile		= $obj->phone_mobile;
     				$this->email			= $obj->email;
    +
     				$this->skype			= $obj->skype;
    +				$this->twitter			= $obj->twitter;
    +				$this->facebook			= $obj->facebook;
     
     				$this->photo			= $obj->photo;
     				$this->statut			= $obj->statut;
    @@ -1191,6 +1316,7 @@ class Adherent extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to get member subscriptions data
     	 *				first_subscription_date, first_subscription_date_start, first_subscription_date_end, first_subscription_amount
    @@ -1200,6 +1326,7 @@ class Adherent extends CommonObject
     	 */
     	function fetch_subscriptions()
     	{
    +        // phpcs:enable
     		global $langs;
     
     		require_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php';
    @@ -1747,6 +1874,7 @@ class Adherent extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Function to add member into external tools mailing-list, spip, etc.
     	 *
    @@ -1754,6 +1882,7 @@ class Adherent extends CommonObject
     	 */
     	function add_to_abo()
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		include_once DOL_DOCUMENT_ROOT.'/mailmanspip/class/mailmanspip.class.php';
    @@ -1804,6 +1933,7 @@ class Adherent extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Function to delete a member from external tools like mailing-list, spip, etc.
     	 *
    @@ -1811,6 +1941,7 @@ class Adherent extends CommonObject
     	 */
     	function del_to_abo()
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		include_once DOL_DOCUMENT_ROOT.'/mailmanspip/class/mailmanspip.class.php';
    @@ -1911,8 +2042,8 @@ class Adherent extends CommonObject
     			$label.= '<br><b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
     		if (! empty($this->firstname) || ! empty($this->lastname))
     			$label.= '<br><b>' . $langs->trans('Name') . ':</b> ' . $this->getFullName($langs);
    -		if (! empty($this->societe))
    -			$label.= '<br><b>' . $langs->trans('Company') . ':</b> ' . $this->societe;
    +		if (! empty($this->company))
    +			$label.= '<br><b>' . $langs->trans('Company') . ':</b> ' . $this->company;
     		$label.='</div>';
     
     		$url = DOL_URL_ROOT.'/adherents/card.php?rowid='.$this->id;
    @@ -1983,6 +2114,7 @@ class Adherent extends CommonObject
     		return $this->LibStatut($this->statut,$this->need_subscription,$this->datefin,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -1994,79 +2126,73 @@ class Adherent extends CommonObject
     	 */
     	function LibStatut($statut,$need_subscription,$date_end_subscription,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->load("members");
     		if ($mode == 0)
     		{
     			if ($statut == -1) return $langs->trans("MemberStatusDraft");
    -			if ($statut >= 1)
    -			{
    +			elseif ($statut >= 1) {
     				if (! $date_end_subscription)            return $langs->trans("MemberStatusActive");
     				elseif ($date_end_subscription < time()) return $langs->trans("MemberStatusActiveLate");
     				else                                     return $langs->trans("MemberStatusPaid");
     			}
    -			if ($statut == 0)  return $langs->trans("MemberStatusResiliated");
    +			elseif ($statut == 0)  return $langs->trans("MemberStatusResiliated");
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($statut == -1) return $langs->trans("MemberStatusDraftShort");
    -			if ($statut >= 1)
    -			{
    +			elseif ($statut >= 1) {
     				if (! $date_end_subscription)            return $langs->trans("MemberStatusActiveShort");
     				elseif ($date_end_subscription < time()) return $langs->trans("MemberStatusActiveLateShort");
     				else                                     return $langs->trans("MemberStatusPaidShort");
     			}
    -			if ($statut == 0)  return $langs->trans("MemberStatusResiliatedShort");
    +			elseif ($statut == 0)  return $langs->trans("MemberStatusResiliatedShort");
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0').' '.$langs->trans("MemberStatusDraftShort");
    -			if ($statut >= 1)
    -			{
    +			elseif ($statut >= 1) {
     				if (! $date_end_subscription)            return img_picto($langs->trans('MemberStatusActive'),'statut1').' '.$langs->trans("MemberStatusActiveShort");
     				elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3').' '.$langs->trans("MemberStatusActiveLateShort");
     				else                                     return img_picto($langs->trans('MemberStatusPaid'),'statut4').' '.$langs->trans("MemberStatusPaidShort");
     			}
    -			if ($statut == 0)  return img_picto($langs->trans('MemberStatusResiliated'),'statut5').' '.$langs->trans("MemberStatusResiliatedShort");
    +			elseif ($statut == 0)  return img_picto($langs->trans('MemberStatusResiliated'),'statut5').' '.$langs->trans("MemberStatusResiliatedShort");
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0');
    -			if ($statut >= 1)
    -			{
    +			elseif ($statut >= 1) {
     				if (! $date_end_subscription)            return img_picto($langs->trans('MemberStatusActive'),'statut1');
     				elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3');
     				else                                     return img_picto($langs->trans('MemberStatusPaid'),'statut4');
     			}
    -			if ($statut == 0)  return img_picto($langs->trans('MemberStatusResiliated'),'statut5');
    +			elseif ($statut == 0)  return img_picto($langs->trans('MemberStatusResiliated'),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut == -1) return img_picto($langs->trans('MemberStatusDraft'),'statut0').' '.$langs->trans("MemberStatusDraft");
    -			if ($statut >= 1)
    -			{
    +			elseif ($statut >= 1) {
     				if (! $date_end_subscription)            return img_picto($langs->trans('MemberStatusActive'),'statut1').' '.$langs->trans("MemberStatusActive");
     				elseif ($date_end_subscription < time()) return img_picto($langs->trans('MemberStatusActiveLate'),'statut3').' '.$langs->trans("MemberStatusActiveLate");
     				else                                     return img_picto($langs->trans('MemberStatusPaid'),'statut4').' '.$langs->trans("MemberStatusPaid");
     			}
     			if ($statut == 0)  return img_picto($langs->trans('MemberStatusResiliated'),'statut5').' '.$langs->trans("MemberStatusResiliated");
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut == -1) return $langs->trans("MemberStatusDraft").' '.img_picto($langs->trans('MemberStatusDraft'),'statut0');
    -			if ($statut >= 1)
    -			{
    +			elseif ($statut >= 1) {
     				if (! $date_end_subscription)            return '<span class="hideonsmartphone">'.$langs->trans("MemberStatusActiveShort").' </span>'.img_picto($langs->trans('MemberStatusActive'),'statut1');
     				elseif ($date_end_subscription < time()) return '<span class="hideonsmartphone">'.$langs->trans("MemberStatusActiveLateShort").' </span>'.img_picto($langs->trans('MemberStatusActiveLate'),'statut3');
     				else                                     return '<span class="hideonsmartphone">'.$langs->trans("MemberStatusPaidShort").' </span>'.img_picto($langs->trans('MemberStatusPaid'),'statut4');
     			}
     			if ($statut == 0)  return '<span class="hideonsmartphone">'.$langs->trans("MemberStatusResiliated").' </span>'.img_picto($langs->trans('MemberStatusResiliated'),'statut5');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($statut == -1) return $langs->trans("MemberStatusDraft").' '.img_picto($langs->trans('MemberStatusDraft'),'statut0');
    -			if ($statut >= 1)
    -			{
    +			if ($statut >= 1) {
     				if (! $date_end_subscription)            return '<span class="hideonsmartphone">'.$langs->trans("MemberStatusActive").' </span>'.img_picto($langs->trans('MemberStatusActive'),'statut1');
     				elseif ($date_end_subscription < time()) return '<span class="hideonsmartphone">'.$langs->trans("MemberStatusActiveLate").' </span>'.img_picto($langs->trans('MemberStatusActiveLate'),'statut3');
     				else                                     return '<span class="hideonsmartphone">'.$langs->trans("MemberStatusPaid").' </span>'.img_picto($langs->trans('MemberStatusPaid'),'statut4');
    @@ -2076,6 +2202,7 @@ class Adherent extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Charge indicateurs this->nb de tableau de bord
     	 *
    @@ -2083,9 +2210,10 @@ class Adherent extends CommonObject
     	 */
     	function load_state_board()
     	{
    +        // phpcs:enable
     		global $conf;
     
    -		$this->nb=array();
    +		$this->nb = array();
     
     		$sql = "SELECT count(a.rowid) as nb";
     		$sql.= " FROM ".MAIN_DB_PREFIX."adherent as a";
    @@ -2108,9 +2236,9 @@ class Adherent extends CommonObject
     			$this->error=$this->db->error();
     			return -1;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Load indicators for dashboard (this->nbtodo and this->nbtodolate)
     	 *
    @@ -2119,6 +2247,7 @@ class Adherent extends CommonObject
     	 */
     	function load_board($user)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		if ($user->societe_id) return -1;   // protection pour eviter appel par utilisateur externe
    @@ -2218,6 +2347,7 @@ class Adherent extends CommonObject
     		$this->civility_id = 0;
     		$this->lastname = 'DOLIBARR';
     		$this->firstname = 'SPECIMEN';
    +		$this->gender='man';
     		$this->login='dolibspec';
     		$this->pass='dolibspec';
     		$this->societe = 'Societe ABC';
    @@ -2229,7 +2359,9 @@ class Adherent extends CommonObject
     		$this->country = 'France';
     		$this->morphy = 1;
     		$this->email = 'specimen@specimen.com';
    -		$this->skype = 'tom.hanson';
    +		$this->skype = 'skypepseudo';
    +		$this->twitter = 'twitterpseudo';
    +		$this->facebook = 'facebookpseudo';
     		$this->phone        = '0999999999';
     		$this->phone_perso  = '0999999998';
     		$this->phone_mobile = '0999999997';
    @@ -2258,6 +2390,7 @@ class Adherent extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Retourne chaine DN complete dans l'annuaire LDAP pour l'objet
     	 *
    @@ -2269,6 +2402,7 @@ class Adherent extends CommonObject
     	 */
     	function _load_ldap_dn($info,$mode=0)
     	{
    +        // phpcs:enable
     		global $conf;
     		$dn='';
     		if ($mode==0) $dn=$conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS].",".$conf->global->LDAP_MEMBER_DN;
    @@ -2278,6 +2412,7 @@ class Adherent extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Initialise tableau info (tableau des attributs LDAP)
     	 *
    @@ -2285,6 +2420,7 @@ class Adherent extends CommonObject
     	 */
     	function _load_ldap_info()
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$info=array();
    @@ -2332,6 +2468,8 @@ class Adherent extends CommonObject
     		if ($this->town && ! empty($conf->global->LDAP_MEMBER_FIELD_TOWN))						$info[$conf->global->LDAP_MEMBER_FIELD_TOWN] = $this->town;
     		if ($this->country_code && ! empty($conf->global->LDAP_MEMBER_FIELD_COUNTRY))			$info[$conf->global->LDAP_MEMBER_FIELD_COUNTRY] = $this->country_code;
     		if ($this->skype && ! empty($conf->global->LDAP_MEMBER_FIELD_SKYPE))					$info[$conf->global->LDAP_MEMBER_FIELD_SKYPE] = $this->skype;
    +		if ($this->twitter && ! empty($conf->global->LDAP_MEMBER_FIELD_TWITTER))				$info[$conf->global->LDAP_MEMBER_FIELD_TWITTER] = $this->twitter;
    +		if ($this->facebook && ! empty($conf->global->LDAP_MEMBER_FIELD_FACEBOOK))				$info[$conf->global->LDAP_MEMBER_FIELD_FACEBOOK] = $this->facebook;
     		if ($this->phone && ! empty($conf->global->LDAP_MEMBER_FIELD_PHONE))					$info[$conf->global->LDAP_MEMBER_FIELD_PHONE] = $this->phone;
     		if ($this->phone_perso && ! empty($conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO))		$info[$conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO] = $this->phone_perso;
     		if ($this->phone_mobile && ! empty($conf->global->LDAP_MEMBER_FIELD_MOBILE))			$info[$conf->global->LDAP_MEMBER_FIELD_MOBILE] = $this->phone_mobile;
    @@ -2431,7 +2569,6 @@ class Adherent extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -2475,6 +2612,7 @@ class Adherent extends CommonObject
     	 * Existing categories are left untouch.
     	 *
     	 * @param int[]|int $categories Category or categories IDs
    +     * @return void
     	 */
     	public function setCategories($categories)
     	{
    @@ -2566,12 +2704,18 @@ class Adherent extends CommonObject
     
     		$blockingerrormsg = '';
     
    -		/*if (empty($conf->global->MEMBER_REMINDER_EMAIL))
    +		if (empty($conf->adherent->enabled))	// Should not happen. If module disabled, cron job should not be visible.
    +		{
    +			$langs->load("agenda");
    +			$this->output = $langs->trans('ModuleNotEnabled', $langs->transnoentitiesnoconv("Adherent"));
    +			return 0;
    +		}
    +		if (empty($conf->global->MEMBER_REMINDER_EMAIL))
     		{
     			$langs->load("agenda");
     			$this->output = $langs->trans('EventRemindersByEmailNotEnabled', $langs->transnoentitiesnoconv("Adherent"));
     			return 0;
    -		}*/
    +		}
     
     		$now = dol_now();
     		$nbok = 0;
    @@ -2658,8 +2802,58 @@ class Adherent extends CommonObject
     							{
     								$nbok++;
     
    -								// TODO Add event email sent for member
    +								$message = $msg;
    +								$sendto = $to;
    +								$sendtocc = '';
    +								$sendtobcc = '';
    +								$actioncode='EMAIL';
    +								$extraparams='';
     
    +								$actionmsg='';
    +								$actionmsg2=$langs->transnoentities('MailSentBy').' '.CMailFile::getValidAddress($from,4,0,1).' '.$langs->transnoentities('To').' '.CMailFile::getValidAddress($sendto,4,0,1);
    +								if ($message)
    +								{
    +									$actionmsg=$langs->transnoentities('MailFrom').': '.dol_escape_htmltag($from);
    +									$actionmsg=dol_concatdesc($actionmsg, $langs->transnoentities('MailTo').': '.dol_escape_htmltag($sendto));
    +									if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . dol_escape_htmltag($sendtocc));
    +									$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
    +									$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
    +									$actionmsg = dol_concatdesc($actionmsg, $message);
    +								}
    +
    +								require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
    +
    +	    						// Insert record of emails sent
    +	    						$actioncomm = new ActionComm($this->db);
    +
    +	    						$actioncomm->type_code   = 'AC_OTH_AUTO';		// Type of event ('AC_OTH', 'AC_OTH_AUTO', 'AC_XXX'...)
    +	    						$actioncomm->code        = 'AC_'.$actioncode;
    +	    						$actioncomm->label       = $actionmsg2;
    +	    						$actioncomm->note        = $actionmsg;
    +	    						$actioncomm->fk_project  = 0;
    +	    						$actioncomm->datep       = $now;
    +	    						$actioncomm->datef       = $now;
    +	    						$actioncomm->percentage  = -1;   // Not applicable
    +	    						$actioncomm->socid       = $adherent->thirdparty->id;
    +	    						$actioncomm->contactid   = 0;
    +	    						$actioncomm->authorid    = $user->id;   // User saving action
    +	    						$actioncomm->userownerid = $user->id;	// Owner of action
    +	    						// Fields when action is en email (content should be added into note)
    +	    						$actioncomm->email_msgid = $cmail->msgid;
    +	    						$actioncomm->email_from  = $from;
    +	    						$actioncomm->email_sender= '';
    +	    						$actioncomm->email_to    = $to;
    +	    						$actioncomm->email_tocc  = $sendtocc;
    +	    						$actioncomm->email_tobcc = $sendtobcc;
    +	    						$actioncomm->email_subject = $subject;
    +	    						$actioncomm->errors_to   = '';
    +
    +	    						$actioncomm->fk_element  = $adherent->id;
    +	    						$actioncomm->elementtype = $adherent->element;
    +
    +	    						$actioncomm->extraparams = $extraparams;
    +
    +	    						$actioncomm->create($user);
     							}
     						}
     						else
    @@ -2694,5 +2888,4 @@ class Adherent extends CommonObject
     
     		return 0;
     	}
    -
     }
    diff --git a/htdocs/adherents/class/adherent_type.class.php b/htdocs/adherents/class/adherent_type.class.php
    index ca8372c04ed..984cf49d44d 100644
    --- a/htdocs/adherents/class/adherent_type.class.php
    +++ b/htdocs/adherents/class/adherent_type.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002		Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2016		Charlie Benke			<charlie@patas-monkey.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -32,10 +32,26 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class AdherentType extends CommonObject
     {
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element = 'adherent_type';
    +
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element = 'adherent_type';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'group';
    -	public $ismultientitymanaged = 1;  // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 1;
     
     	/**
     	 * @var string
    @@ -43,19 +59,27 @@ class AdherentType extends CommonObject
     	 * @see label
     	 */
     	public $libelle;
    -	/** @var string Label */
    -	public $label;
    +
    +	/**
    +     * @var string Adherent type label
    +     */
    +    public $label;
    +
     	/**
     	 * @var int Subsription required (0 or 1)
     	 * @since 5.0
     	 */
     	public $subscription;
    +
     	/** @var string 	Public note */
     	public $note;
    +
     	/** @var integer	Can vote */
     	public $vote;
    +
     	/** @var string Email sent during validation */
     	public $mail_valid;
    +
     	/** @var array Array of members */
     	public $members=array();
     
    @@ -282,6 +306,7 @@ class AdherentType extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of members' type
     	 *
    @@ -289,6 +314,7 @@ class AdherentType extends CommonObject
     	 */
     	function liste_array()
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$adherenttypes = array();
    @@ -413,6 +439,7 @@ class AdherentType extends CommonObject
     		return '';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Retourne chaine DN complete dans l'annuaire LDAP pour l'objet
     	 *
    @@ -424,6 +451,7 @@ class AdherentType extends CommonObject
     	 */
     	function _load_ldap_dn($info,$mode=0)
     	{
    +        // phpcs:enable
     		global $conf;
     		$dn='';
     		if ($mode==0) $dn=$conf->global->LDAP_KEY_MEMBERS_TYPES."=".$info[$conf->global->LDAP_KEY_MEMBERS_TYPES].",".$conf->global->LDAP_MEMBER_TYPE_DN;
    @@ -433,6 +461,7 @@ class AdherentType extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Initialize the info array (array of LDAP values) that will be used to call LDAP functions
     	 *
    @@ -440,6 +469,7 @@ class AdherentType extends CommonObject
     	 */
     	function _load_ldap_info()
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$info=array();
    @@ -547,5 +577,4 @@ class AdherentType extends CommonObject
     
     		return '';
     	}
    -
     }
    diff --git a/htdocs/adherents/class/adherentstats.class.php b/htdocs/adherents/class/adherentstats.class.php
    index 59c51cb1d21..310a40c52b3 100644
    --- a/htdocs/adherents/class/adherentstats.class.php
    +++ b/htdocs/adherents/class/adherentstats.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (c) 2005-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -32,6 +32,9 @@ include_once DOL_DOCUMENT_ROOT . '/adherents/class/subscription.class.php';
      */
     class AdherentStats extends Stats
     {
    +    /**
    +     * @var string Name of table without prefix where object is stored
    +     */
         public $table_element;
     
         var $socid;
    @@ -178,5 +181,4 @@ class AdherentStats extends Stats
     
     		return $this->_getAllByYear($sql);
     	}
    -
     }
    diff --git a/htdocs/adherents/class/api_members.class.php b/htdocs/adherents/class/api_members.class.php
    index 217ab47c0ab..2da35df7e2c 100644
    --- a/htdocs/adherents/class/api_members.class.php
    +++ b/htdocs/adherents/class/api_members.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2016	Xebax Christy	<xebax@wanadoo.fr>
    - * Copyright (C) 2017	Regis Houssin	<regis.houssin@capnetworks.com>
    + * Copyright (C) 2017	Regis Houssin	<regis.houssin@inodbox.com>
      *
      * 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
    @@ -91,7 +91,8 @@ class Members extends DolibarrApi
          *
          * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $typeid = '', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $typeid = '', $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -293,7 +294,8 @@ class Members extends DolibarrApi
          * @param   object  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    @@ -407,5 +409,4 @@ class Members extends DolibarrApi
     
     		return $result;
     	}
    -
     }
    diff --git a/htdocs/adherents/class/api_memberstypes.class.php b/htdocs/adherents/class/api_memberstypes.class.php
    index 1a8e93e0609..e82b126529b 100644
    --- a/htdocs/adherents/class/api_memberstypes.class.php
    +++ b/htdocs/adherents/class/api_memberstypes.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2017	Regis Houssin	<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2017	Regis Houssin	<regis.houssin@inodbox.com>
      *
      * 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
    @@ -31,7 +31,7 @@ class MembersTypes extends DolibarrApi
          * @var array   $FIELDS     Mandatory fields, checked when create and update object
          */
         static $FIELDS = array(
    -        'label'
    +        'label',
         );
     
         /**
    @@ -86,7 +86,8 @@ class MembersTypes extends DolibarrApi
          *
          * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -271,7 +272,8 @@ class MembersTypes extends DolibarrApi
          * @param   object  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    @@ -318,5 +320,4 @@ class MembersTypes extends DolibarrApi
     
             return $object;
         }
    -
     }
    diff --git a/htdocs/adherents/class/api_subscriptions.class.php b/htdocs/adherents/class/api_subscriptions.class.php
    index 3ae4f6f39d5..ed403167dd4 100644
    --- a/htdocs/adherents/class/api_subscriptions.class.php
    +++ b/htdocs/adherents/class/api_subscriptions.class.php
    @@ -34,7 +34,7 @@ class Subscriptions extends DolibarrApi
             'fk_adherent',
             'dateh',
             'datef',
    -        'amount'
    +        'amount',
         );
     
         /**
    @@ -85,7 +85,8 @@ class Subscriptions extends DolibarrApi
          *
          * @throws RestException
          */
    -    function index($sortfield = "dateadh", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '') {
    +    function index($sortfield = "dateadh", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    diff --git a/htdocs/adherents/class/subscription.class.php b/htdocs/adherents/class/subscription.class.php
    index 1c4007780b9..96876eb82b6 100644
    --- a/htdocs/adherents/class/subscription.class.php
    +++ b/htdocs/adherents/class/subscription.class.php
    @@ -32,17 +32,38 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class Subscription extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='subscription';
    -	public $table_element='subscription';
    -    public $picto='payment';
     
    -	var $datec;				// Date creation
    -	var $datem;				// Date modification
    -	var $dateh;				// Subscription start date (date subscription)
    -	var $datef;				// Subscription end date
    -	var $fk_adherent;
    -	var $amount;
    -	var $fk_bank;
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='subscription';
    +
    +    /**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto='payment';
    +
    +	public $datec;				// Date creation
    +	public $datem;				// Date modification
    +	public $dateh;				// Subscription start date (date subscription)
    +	public $datef;				// Subscription end date
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_type;
    +	public $fk_adherent;
    +
    +	public $amount;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_bank;
     
     
     	/**
    @@ -82,8 +103,17 @@ class Subscription extends CommonObject
     
     		$this->db->begin();
     
    -		$sql = "INSERT INTO ".MAIN_DB_PREFIX."subscription (fk_adherent, datec, dateadh, datef, subscription, note)";
    -        $sql.= " VALUES (".$this->fk_adherent.", '".$this->db->idate($this->datec)."',";
    +		$sql = "INSERT INTO ".MAIN_DB_PREFIX."subscription (fk_adherent, fk_type, datec, dateadh, datef, subscription, note)";
    +
    +		if ($this->fk_type == null) {
    +require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
    +$member=new Adherent($this->db);
    +$result=$member->fetch($this->fk_adherent);
    +$type=$member->typeid;
    +} else {
    +$type=$this->fk_type;
    +}
    +		$sql.= " VALUES (".$this->fk_adherent.", '".$type."', '".$this->db->idate($now)."',";
     		$sql.= " '".$this->db->idate($this->dateh)."',";
     		$sql.= " '".$this->db->idate($this->datef)."',";
     		$sql.= " ".$this->amount.",";
    @@ -127,7 +157,7 @@ class Subscription extends CommonObject
     	 */
     	function fetch($rowid)
     	{
    -        $sql ="SELECT rowid, fk_adherent, datec,";
    +        $sql ="SELECT rowid, fk_type, fk_adherent, datec,";
     		$sql.=" tms,";
     		$sql.=" dateadh as dateh,";
     		$sql.=" datef,";
    @@ -146,6 +176,7 @@ class Subscription extends CommonObject
     				$this->id             = $obj->rowid;
     				$this->ref            = $obj->rowid;
     
    +				$this->fk_type        = $obj->fk_type;
     				$this->fk_adherent    = $obj->fk_adherent;
     				$this->datec          = $this->db->jdate($obj->datec);
     				$this->datem          = $this->db->jdate($obj->tms);
    @@ -183,6 +214,7 @@ class Subscription extends CommonObject
     		$this->db->begin();
     
     		$sql = "UPDATE ".MAIN_DB_PREFIX."subscription SET ";
    +		$sql .= " fk_type = ".$this->fk_type.",";
     		$sql .= " fk_adherent = ".$this->fk_adherent.",";
     		$sql .= " note=".($this->note ? "'".$this->db->escape($this->note)."'" : 'null').",";
     		$sql .= " subscription = '".price2num($this->amount)."',";
    @@ -317,11 +349,14 @@ class Subscription extends CommonObject
     	/**
     	 *  Return clicable name (with picto eventually)
     	 *
    -	 *	@param	int		$withpicto		0=No picto, 1=Include picto into link, 2=Only picto
    -     *  @param	int  	$notooltip		1=Disable tooltip
    -	 *	@return	string					Chaine avec URL
    +	 *	@param	int		$withpicto					0=No picto, 1=Include picto into link, 2=Only picto
    +     *  @param	int  	$notooltip					1=Disable tooltip
    +	 *	@param	string	$option						Page for link ('', 'nolink', ...)
    +	 *  @param  string  $morecss        			Add more css on link
    +	 *  @param  int     $save_lastsearch_value    	-1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    +	 *	@return	string								Chaine avec URL
     	 */
    -	function getNomUrl($withpicto=0, $notooltip=0)
    +	function getNomUrl($withpicto=0, $notooltip=0, $option='', $morecss='', $save_lastsearch_value=-1)
     	{
     		global $langs;
     
    @@ -330,8 +365,18 @@ class Subscription extends CommonObject
     		$langs->load("members");
             $label=$langs->trans("ShowSubscription").': '.$this->ref;
     
    -        $linkstart = '<a href="'.DOL_URL_ROOT.'/adherents/subscription/card.php?rowid='.$this->id.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
    -		$linkend='</a>';
    +        $url = DOL_URL_ROOT.'/adherents/subscription/card.php?rowid='.$this->id;
    +
    +        if ($option != 'nolink')
    +        {
    +        	// Add param to save lastsearch_values or not
    +        	$add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    +        	if ($save_lastsearch_value == -1 && preg_match('/list\.php/',$_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1;
    +        	if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
    +        }
    +
    +        $linkstart = '<a href="'.$url.'" class="classfortooltip" title="'.dol_escape_htmltag($label, 1).'">';
    +		$linkend = '</a>';
     
     		$picto='payment';
     
    @@ -355,6 +400,7 @@ class Subscription extends CommonObject
     	    return '';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -363,6 +409,7 @@ class Subscription extends CommonObject
     	 */
     	function LibStatut($statut)
     	{
    +        // phpcs:enable
     	    global $langs;
     	    $langs->load("members");
     	    return '';
    @@ -394,7 +441,6 @@ class Subscription extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    diff --git a/htdocs/adherents/document.php b/htdocs/adherents/document.php
    index 8e12dec056e..e8d80898041 100644
    --- a/htdocs/adherents/document.php
    +++ b/htdocs/adherents/document.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador      <csalvador@gpcsolutions.fr>
      *
    @@ -33,9 +33,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
     
    -$langs->load("members");
    -$langs->load("companies");
    -$langs->load('other');
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","members","other"));
    +
     
     $id=GETPOST('id','int');
     $action=GETPOST('action','alpha');
    @@ -91,7 +91,7 @@ if ($id > 0)
     	if ($result > 0)
     	{
     
    -		// Construit liste des fichiers
    +		// Build file list
     		$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     		$totalsize=0;
     		foreach($filearray as $key => $file)
    @@ -170,6 +170,6 @@ else
     	print $langs->trans("ErrorRecordNotFound");
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/adherents/htpasswd.php b/htdocs/adherents/htpasswd.php
    index 5814ed3bf70..adc3d32eea4 100644
    --- a/htdocs/adherents/htpasswd.php
    +++ b/htdocs/adherents/htpasswd.php
    @@ -86,7 +86,6 @@ else
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/index.php b/htdocs/adherents/index.php
    index c9e3d1936c6..3d1883eda0a 100644
    --- a/htdocs/adherents/index.php
    +++ b/htdocs/adherents/index.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -29,8 +29,8 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php';
     
    -$langs->load("companies");
    -$langs->load("members");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","members"));
     
     // Security check
     $result=restrictedArea($user,'adherent');
    @@ -55,7 +55,7 @@ $AdherentsResilies=array();
     
     $AdherentType=array();
     
    -// Liste les adherents
    +// Members list
     $sql = "SELECT t.rowid, t.libelle as label, t.subscription,";
     $sql.= " d.statut, count(d.rowid) as somme";
     $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t";
    @@ -92,7 +92,7 @@ if ($result)
     
     $now=dol_now();
     
    -// List members up to date
    +// Members up to date list
     // current rule: uptodate = the end date is in future whatever is type
     // old rule: uptodate = if type does not need payment, that end date is null, if type need payment that end date is in future)
     $sql = "SELECT count(*) as somme , d.fk_adherent_type";
    @@ -140,7 +140,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS))     // This is usele
         	foreach($listofsearchfields as $key => $value)
         	{
         		if ($i == 0) print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
    -    		print '<tr '.$bc[false].'>';
    +    		print '<tr class="oddeven">';
         		print '<td class="nowrap"><label for="'.$key.'">'.$langs->trans($value["text"]).'</label>:</td><td><input type="text" class="flat inputsearch" name="'.$key.'" id="'.$key.'" size="18"></td>';
         		if ($i == 0) print '<td rowspan="'.count($listofsearchfields).'"><input type="submit" value="'.$langs->trans("Search").'" class="button"></td>';
         		print '</tr>';
    @@ -375,7 +375,7 @@ if ($resql)
     			$staticmember->lastname=$obj->lastname;
     			$staticmember->firstname=$obj->firstname;
     			if (! empty($obj->fk_soc)) {
    -				$staticmember->socid = $obj->fk_soc;
    +				$staticmember->fk_soc = $obj->fk_soc;
     				$staticmember->fetch_thirdparty();
     				$staticmember->name=$staticmember->thirdparty->name;
     			} else {
    @@ -435,6 +435,6 @@ print "</div>";
     
     print '</div></div></div>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/adherents/ldap.php b/htdocs/adherents/ldap.php
    index 1f9f348d564..f45042d6581 100644
    --- a/htdocs/adherents/ldap.php
    +++ b/htdocs/adherents/ldap.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006		Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2017	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -29,10 +29,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/ldap.class.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
     
    -$langs->load("companies");
    -$langs->load("members");
    -$langs->load("ldap");
    -$langs->load("admin");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","members","ldap","admin"));
     
     $rowid = GETPOST('id','int');
     $action = GETPOST('action','aZ09');
    @@ -221,5 +219,6 @@ else
     
     print '</table>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php
    index 3a1dd04443f..d7b3f3304ff 100644
    --- a/htdocs/adherents/list.php
    +++ b/htdocs/adherents/list.php
    @@ -4,6 +4,7 @@
      * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2013-2015  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2014-2016  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2018       Alexandre Spangaro      <aspangaro@zendsi.com>
      *
      * 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
    @@ -20,9 +21,9 @@
      */
     
     /**
    - *      \file       htdocs/adherents/list.php
    - *      \ingroup    member
    - *		\brief      Page to list all members of foundation
    + *  \file       htdocs/adherents/list.php
    + *  \ingroup    member
    + *  \brief      Page to list all members of foundation
      */
     
     require '../main.inc.php';
    @@ -48,6 +49,8 @@ $search=GETPOST("search",'alpha');
     $search_ref=GETPOST("search_ref",'alpha');
     $search_lastname=GETPOST("search_lastname",'alpha');
     $search_firstname=GETPOST("search_firstname",'alpha');
    +$search_gender=GETPOST("search_gender",'alpha');
    +$search_civility=GETPOST("search_civility",'alpha');
     $search_login=GETPOST("search_login",'alpha');
     $search_address=GETPOST("search_address",'alpha');
     $search_zip=GETPOST("search_zip",'alpha');
    @@ -78,14 +81,15 @@ $pagenext = $page + 1;
     if (! $sortorder) { $sortorder=($filter=='outofdate'?"DESC":"ASC"); }
     if (! $sortfield) { $sortfield=($filter=='outofdate'?"d.datefin":"d.lastname"); }
     
    -// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
     $object = new Adherent($db);
    +
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
     $hookmanager->initHooks(array('memberlist'));
     $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('adherent');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -105,8 +109,10 @@ $fieldstosearchall = array(
     if($db->type == 'pgsql') unset($fieldstosearchall['d.rowid']);
     $arrayfields=array(
     	'd.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
    +	'd.civility'=>array('label'=>$langs->trans("Civility"), 'checked'=>0),
     	'd.lastname'=>array('label'=>$langs->trans("Lastname"), 'checked'=>1),
     	'd.firstname'=>array('label'=>$langs->trans("Firstname"), 'checked'=>1),
    +	'd.gender'=>array('label'=>$langs->trans("Gender"), 'checked'=>0),
     	'd.company'=>array('label'=>$langs->trans("Company"), 'checked'=>1),
     	'd.login'=>array('label'=>$langs->trans("Login"), 'checked'=>1),
     	'd.morphy'=>array('label'=>$langs->trans("MorPhy"), 'checked'=>1),
    @@ -121,7 +127,7 @@ $arrayfields=array(
     	'state.nom'=>array('label'=>$langs->trans("State"), 'checked'=>0),
     	'country.code_iso'=>array('label'=>$langs->trans("Country"), 'checked'=>0),
     	/*'d.note_public'=>array('label'=>$langs->trans("NotePublic"), 'checked'=>0),
    -    'd.note_private'=>array('label'=>$langs->trans("NotePrivate"), 'checked'=>0),*/
    +	'd.note_private'=>array('label'=>$langs->trans("NotePrivate"), 'checked'=>0),*/
     	'd.datefin'=>array('label'=>$langs->trans("EndSubscription"), 'checked'=>1, 'position'=>500),
     	'd.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
     	'd.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
    @@ -160,6 +166,8 @@ if (empty($reshook))
     		$search_ref="";
     		$search_lastname="";
     		$search_firstname="";
    +		$search_gender="";
    +		$search_civility="";
     		$search_login="";
     		$search_company="";
     		$search_type="";
    @@ -202,8 +210,8 @@ $memberstatic=new Adherent($db);
     
     $now=dol_now();
     
    -$sql = "SELECT d.rowid, d.login, d.lastname, d.firstname, d.societe as company, d.fk_soc,";
    -$sql.= " d.datefin, d.address, d.zip, d.town, d.state_id, d.country,";
    +$sql = "SELECT d.rowid, d.login, d.lastname, d.firstname, d.gender, d.societe as company, d.fk_soc,";
    +$sql.= " d.civility, d.datefin, d.address, d.zip, d.town, d.state_id, d.country,";
     $sql.= " d.email, d.phone, d.phone_perso, d.phone_mobile, d.skype, d.birth, d.public, d.photo,";
     $sql.= " d.fk_adherent_type as type_id, d.morphy, d.statut, d.datec as date_creation, d.tms as date_update,";
     $sql.= " t.libelle as type, t.subscription,";
    @@ -234,8 +242,10 @@ if ($search_ref)
     	if (is_numeric($search_ref)) $sql.= " AND (d.rowid = ".$db->escape($search_ref).")";
     	else $sql.=" AND 1 = 2";    // Always wrong
     }
    +if ($search_civility) $sql.= natural_search("d.civility", $search_civility);
     if ($search_firstname) $sql.= natural_search("d.firstname", $search_firstname);
     if ($search_lastname) $sql.= natural_search(array("d.firstname", "d.lastname", "d.societe"), $search_lastname);
    +if ($search_gender != '' && $search_gender != '-1') $sql.= " AND d.gender = '".$search_gender."'";
     if ($search_login) $sql.= natural_search("d.login", $search_login);
     if ($search_email) $sql.= natural_search("d.email", $search_email);
     if ($search_town)     $sql.= natural_search("d.town",$search_town);
    @@ -322,8 +332,10 @@ if ($sall != "") $param.="&sall=".urlencode($sall);
     if ($statut != "") $param.="&statut=".urlencode($statut);
     if ($search_ref)   $param.="&search_ref=".urlencode($search_ref);
     if ($search_nom)   $param.="&search_nom=".urlencode($search_nom);
    +if ($search_civility) $param.="&search_civility=".urlencode($search_civility);
     if ($search_firstname) $param.="&search_firstname=".urlencode($search_firstname);
     if ($search_lastname)  $param.="&search_lastname=".urlencode($search_lastname);
    +if ($search_gender)  $param.="&search_gender=".urlencode($search_gender);
     if ($search_login)   $param.="&search_login=".urlencode($search_login);
     if ($search_email)   $param.="&search_email=".urlencode($search_email);
     if ($search_company) $param.="&search_company=".urlencode($search_company);
    @@ -343,8 +355,8 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
     
     // List of mass actions available
     $arrayofmassactions =  array(
    -//    'presend'=>$langs->trans("SendByMail"),
    -//    'builddoc'=>$langs->trans("PDFMerge"),
    +	//'presend'=>$langs->trans("SendByMail"),
    +	//'builddoc'=>$langs->trans("PDFMerge"),
     );
     if ($user->rights->adherent->supprimer) $arrayofmassactions['predelete']=$langs->trans("Delete");
     if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    @@ -427,37 +439,43 @@ if (! empty($arrayfields['d.ref']['checked']))
     	print '<input class="flat maxwidth50" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).'">';
     	print '</td>';
     }
    -
    +if (! empty($arrayfields['d.civility']['checked']))
    +{
    +	print '<td class="liste_titre" align="left">';
    +	print '<input class="flat maxwidth25" type="text" name="search_civility" value="'.dol_escape_htmltag($search_civility).'"></td>';
    +}
     if (! empty($arrayfields['d.firstname']['checked']))
     {
     	print '<td class="liste_titre" align="left">';
     	print '<input class="flat maxwidth50" type="text" name="search_firstname" value="'.dol_escape_htmltag($search_firstname).'"></td>';
     }
    -
     if (! empty($arrayfields['d.lastname']['checked']))
     {
     	print '<td class="liste_titre" align="left">';
     	print '<input class="flat maxwidth50" type="text" name="search_lastname" value="'.dol_escape_htmltag($search_lastname).'"></td>';
     }
    -
    +if (! empty($arrayfields['d.gender']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	$arraygender=array('man'=>$langs->trans("Genderman"),'woman'=>$langs->trans("Genderwoman"));
    +	print $form->selectarray('search_gender', $arraygender, $search_gender, 1);
    +	print '</td>';
    +}
     if (! empty($arrayfields['d.company']['checked']))
     {
     	print '<td class="liste_titre" align="left">';
     	print '<input class="flat maxwidth50" type="text" name="search_company" value="'.dol_escape_htmltag($search_company).'"></td>';
     }
    -
     if (! empty($arrayfields['d.login']['checked']))
     {
     	print '<td class="liste_titre" align="left">';
     	print '<input class="flat maxwidth50" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).'"></td>';
     }
    -
     if (! empty($arrayfields['d.morphy']['checked']))
     {
     	print '<td class="liste_titre" align="left">';
     	print '</td>';
     }
    -
     if (! empty($arrayfields['t.libelle']['checked']))
     {
     	print '<td class="liste_titre">';
    @@ -568,8 +586,10 @@ print "</tr>\n";
     print '<tr class="liste_titre">';
     if (! empty($conf->global->MAIN_SHOW_TECHNICAL_ID))       print_liste_field_titre("ID",$_SERVER["PHP_SELF"],'','',$param,'align="center"',$sortfield,$sortorder);
     if (! empty($arrayfields['d.ref']['checked']))            print_liste_field_titre($arrayfields['d.ref']['label'],$_SERVER["PHP_SELF"],'d.rowid','',$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['d.civility']['checked']))       print_liste_field_titre($arrayfields['d.civility']['label'],$_SERVER["PHP_SELF"],'d.civility','',$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['d.firstname']['checked']))      print_liste_field_titre($arrayfields['d.firstname']['label'],$_SERVER["PHP_SELF"],'d.firstname','',$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['d.lastname']['checked']))       print_liste_field_titre($arrayfields['d.lastname']['label'],$_SERVER["PHP_SELF"],'d.lastname','',$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['d.gender']['checked']))         print_liste_field_titre($arrayfields['d.gender']['label'],$_SERVER['PHP_SELF'],'d.gender',$param,"","",$sortfield,$sortorder);
     if (! empty($arrayfields['d.company']['checked']))        print_liste_field_titre($arrayfields['d.company']['label'],$_SERVER["PHP_SELF"],'d.societe','',$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['d.login']['checked']))          print_liste_field_titre($arrayfields['d.login']['label'],$_SERVER["PHP_SELF"],'d.login','',$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['d.morphy']['checked']))         print_liste_field_titre($arrayfields['d.morphy']['label'],$_SERVER["PHP_SELF"],'d.morphy','',$param,'',$sortfield,$sortorder);
    @@ -577,7 +597,7 @@ if (! empty($arrayfields['t.libelle']['checked']))        print_liste_field_titr
     if (! empty($arrayfields['d.address']['checked']))        print_liste_field_titre($arrayfields['d.address']['label'],$_SERVER["PHP_SELF"],'d.address','',$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['d.zip']['checked']))            print_liste_field_titre($arrayfields['d.zip']['label'],$_SERVER["PHP_SELF"],'d.zip','',$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['d.town']['checked']))           print_liste_field_titre($arrayfields['d.town']['label'],$_SERVER["PHP_SELF"],'d.town','',$param,'',$sortfield,$sortorder);
    -if (! empty($arrayfields['state.nom']['checked']))        print_liste_field_titre($arrayfields['state.town']['label'],$_SERVER["PHP_SELF"],"state.nom","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['state.nom']['checked']))        print_liste_field_titre($arrayfields['state.nom']['label'],$_SERVER["PHP_SELF"],"state.nom","",$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'],$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder);
     if (! empty($arrayfields['d.phone']['checked']))          print_liste_field_titre($arrayfields['d.phone']['label'],$_SERVER["PHP_SELF"],'d.phone','',$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['d.phone_perso']['checked']))    print_liste_field_titre($arrayfields['d.phone_perso']['label'],$_SERVER["PHP_SELF"],'d.phone_perso','',$param,'',$sortfield,$sortorder);
    @@ -598,6 +618,7 @@ print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="c
     print "</tr>\n";
     
     $i = 0;
    +$totalarray=array();
     while ($i < min($num, $limit))
     {
     	$obj = $db->fetch_object($resql);
    @@ -605,8 +626,10 @@ while ($i < min($num, $limit))
     	$datefin=$db->jdate($obj->datefin);
     	$memberstatic->id=$obj->rowid;
     	$memberstatic->ref=$obj->rowid;
    +	$memberstatic->civility_id=$obj->civility;
     	$memberstatic->lastname=$obj->lastname;
     	$memberstatic->firstname=$obj->firstname;
    +	$memberstatic->gender=$obj->gender;
     	$memberstatic->statut=$obj->statut;
     	$memberstatic->datefin= $datefin;
     	$memberstatic->socid = $obj->fk_soc;
    @@ -625,14 +648,24 @@ while ($i < min($num, $limit))
     	if (! empty($conf->global->MAIN_SHOW_TECHNICAL_ID))
     	{
     		print '<td align="center">'.$obj->rowid.'</td>';
    +		if (! $i) $totalarray['nbfield']++;
     	}
     
     	// Ref
     	if (! empty($arrayfields['d.ref']['checked']))
     	{
    -   		print "<td>";
    +		print "<td>";
     		print $memberstatic->getNomUrl(-1, 0, 'card', 'ref');
     		print "</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Civility
    +	if (! empty($arrayfields['d.civility']['checked']))
    +	{
    +		print "<td>";
    +		print $obj->civility;
    +		print "</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
     	}
     	// Firstname
     	if (! empty($arrayfields['d.firstname']['checked']))
    @@ -640,6 +673,7 @@ while ($i < min($num, $limit))
     		print "<td>";
     		print $obj->firstname;
     		print "</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
     	}
     	// Lastname
     	if (! empty($arrayfields['d.lastname']['checked']))
    @@ -647,6 +681,15 @@ while ($i < min($num, $limit))
     		print "<td>";
     		print $obj->lastname;
     		print "</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Gender
    +	if (! empty($arrayfields['d.gender']['checked']))
    +	{
    +		print '<td>';
    +		if ($obj->gender) print $langs->trans("Gender".$obj->gender);
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
     	}
     	// Company
     	if (! empty($arrayfields['d.company']['checked']))
    @@ -658,12 +701,14 @@ while ($i < min($num, $limit))
     	// Login
     	if (! empty($arrayfields['d.login']['checked']))
     	{
    -	   print "<td>".$obj->login."</td>\n";
    +		print "<td>".$obj->login."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
     	}
     	// Moral/Physique
     	if (! empty($arrayfields['d.morphy']['checked']))
     	{
    -	   print "<td>".$memberstatic->getmorphylib($obj->morphy)."</td>\n";
    +		print "<td>".$memberstatic->getmorphylib($obj->morphy)."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
     	}
     	// Type label
     	if (! empty($arrayfields['t.libelle']['checked']))
    @@ -673,6 +718,7 @@ while ($i < min($num, $limit))
     		print '<td class="nowrap">';
     		print $membertypestatic->getNomUrl(1,32);
     		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
     	}
     	// Address
     	if (! empty($arrayfields['d.address']['checked']))
    @@ -680,6 +726,7 @@ while ($i < min($num, $limit))
     		print '<td class="nocellnopadd">';
     		print $obj->address;
     		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
     	}
     	// Zip
     	if (! empty($arrayfields['d.zip']['checked']))
    @@ -815,6 +862,36 @@ while ($i < min($num, $limit))
     	$i++;
     }
     
    +// Show total line
    +if (isset($totalarray['pos']))
    +{
    +	print '<tr class="liste_total">';
    +	$i=0;
    +	while ($i < $totalarray['nbfield'])
    +	{
    +		$i++;
    +		if (! empty($totalarray['pos'][$i]))  print '<td align="right">'.price($totalarray['val'][$totalarray['pos'][$i]]).'</td>';
    +		else
    +		{
    +			if ($i == 1)
    +			{
    +				if ($num < $limit) print '<td class="left">'.$langs->trans("Total").'</td>';
    +				else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
    +			}
    +			else print '<td></td>';
    +		}
    +	}
    +	print '</tr>';
    +}
    +
    +// If no record found
    +if ($num == 0)
    +{
    +	$colspan=1;
    +	foreach($arrayfields as $key => $val) { if (! empty($val['checked'])) $colspan++; }
    +	print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>';
    +}
    +
     $db->free($resql);
     
     $parameters=array('sql' => $sql);
    @@ -827,6 +904,6 @@ print '</form>';
     
     if ($num > $limit || $page) print_barre_liste('', $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_generic.png', 0, '', '', $limit, 1);
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/adherents/note.php b/htdocs/adherents/note.php
    index 1b887406df3..c12c45de8b7 100644
    --- a/htdocs/adherents/note.php
    +++ b/htdocs/adherents/note.php
    @@ -28,9 +28,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
     
    -$langs->load("companies");
    -$langs->load("members");
    -$langs->load("bills");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","members","bills"));
     
     $action=GETPOST('action','alpha');
     $id=GETPOST('id','int');
    @@ -117,9 +116,8 @@ if ($id)
     
     
         dol_fiche_end();
    -
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/adherents/stats/byproperties.php b/htdocs/adherents/stats/byproperties.php
    index ded3dec120e..defbde2dce2 100644
    --- a/htdocs/adherents/stats/byproperties.php
    +++ b/htdocs/adherents/stats/byproperties.php
    @@ -44,8 +44,8 @@ $year = strftime("%Y", time());
     $startyear=$year-2;
     $endyear=$year;
     
    -$langs->load("members");
    -$langs->load("companies");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","members"));
     
     
     /*
    @@ -143,7 +143,6 @@ print '</table>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/stats/geo.php b/htdocs/adherents/stats/geo.php
    index 1c6944c2a0a..2175569b7ce 100644
    --- a/htdocs/adherents/stats/geo.php
    +++ b/htdocs/adherents/stats/geo.php
    @@ -45,8 +45,8 @@ $year = strftime("%Y", time());
     $startyear=$year-2;
     $endyear=$year;
     
    -$langs->load("members");
    -$langs->load("companies");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","members"));
     
     
     /*
    @@ -309,8 +309,6 @@ if ($mode)
     
     dol_fiche_end();
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/stats/index.php b/htdocs/adherents/stats/index.php
    index 083d81d6db6..feebd776d94 100644
    --- a/htdocs/adherents/stats/index.php
    +++ b/htdocs/adherents/stats/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -46,8 +46,8 @@ $year = strftime("%Y", time());
     $startyear=$year-2;
     $endyear=$year;
     
    -$langs->load("members");
    -$langs->load("companies");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","members"));
     
     
     /*
    @@ -167,6 +167,7 @@ print '<br><br>';
     $data = $stats->getAllByYear();
     
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder">';
     print '<tr class="liste_titre" height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
    @@ -207,6 +208,7 @@ foreach ($data as $val)
     }
     
     print '</table>';
    +print '</div>';
     
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
    @@ -229,7 +231,6 @@ print '<div style="clear:both"></div>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/subscription.php b/htdocs/adherents/subscription.php
    index a41438c4097..29a1c97ca90 100644
    --- a/htdocs/adherents/subscription.php
    +++ b/htdocs/adherents/subscription.php
    @@ -1,9 +1,10 @@
     <?php
    -/* Copyright (C) 2001-2004	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2002-2003	Jean-Louis Bergamo		<jlb@j1b.org>
    - * Copyright (C) 2004-2018	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    - * Copyright (C) 2015-2016	Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
    +/* Copyright (C) 2001-2004  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2002-2003  Jean-Louis Bergamo      <jlb@j1b.org>
    + * Copyright (C) 2004-2018  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2012-2017  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2015-2016  Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -358,8 +359,10 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
                 	// Set output language
                 	$outputlangs = new Translate('', $conf);
                 	$outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang);
    +            	// Load traductions files requiredby by page
                 	$outputlangs->loadLangs(array("main", "members"));
    -            	// Get email content from templae
    +
    +            	// Get email content from template
                 	$arraydefaultmessage=null;
                 	$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION;
     
    @@ -581,7 +584,7 @@ if ($rowid > 0)
     			print '<tr><td>';
     			print $form->select_company($object->fk_soc,'socid','',1);
     			print '</td>';
    -			print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
    +			print '<td class="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
     			print '</tr></table></form>';
     		}
     		else
    @@ -652,7 +655,7 @@ if ($rowid > 0)
                 print '<div class="tabsAction">';
     
                 if ($object->statut > 0) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$rowid.'&action=addsubscription">'.$langs->trans("AddSubscription")."</a></div>";
    -            else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("AddSubscription").'</a></div>';
    +            else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("AddSubscription").'</a></div>';
     
                 print '</div>';
             }
    @@ -914,7 +917,7 @@ if ($rowid > 0)
                     $datefrom=dol_time_plus_duree($object->datefin,1,'d');
                 }
             }
    -        print $form->select_date($datefrom,'','','','',"subscription",1,1,1);
    +        print $form->selectDate($datefrom, '', '', '', '', "subscription", 1, 1);
             print "</td></tr>";
     
             // Date end subscription
    @@ -927,7 +930,7 @@ if ($rowid > 0)
                 $dateto=-1;		// By default, no date is suggested
             }
             print '<tr><td>'.$langs->trans("DateEndSubscription").'</td><td>';
    -        print $form->select_date($dateto,'end','','','',"subscription",1,0,1);
    +        print $form->selectDate($dateto, 'end', '', '', '', "subscription", 1, 0);
             print "</td></tr>";
     
             if ($adht->subscription)
    @@ -1028,7 +1031,7 @@ if ($rowid > 0)
     
                     // Date of payment
                     print '<tr class="bankswitchclass"><td class="fieldrequired">'.$langs->trans("DatePayment").'</td><td>';
    -                print $form->select_date(isset($paymentdate)?$paymentdate:-1,'payment',0,0,1,'subscription',1,1,1);
    +                print $form->selectDate(isset($paymentdate)?$paymentdate:-1, 'payment', 0, 0, 1, 'subscription', 1, 1);
                     print "</td></tr>\n";
     
                     print '<tr class="bankswitchclass2"><td>'.$langs->trans('Numero');
    @@ -1071,8 +1074,9 @@ if ($rowid > 0)
                 // Set output language
                 $outputlangs = new Translate('', $conf);
                 $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang);
    +            // Load traductions files requiredby by page
                 $outputlangs->loadLangs(array("main", "members"));
    -            // Get email content fro mtemplae
    +            // Get email content from template
                 $arraydefaultmessage=null;
                 $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION;
     
    @@ -1127,7 +1131,6 @@ else
         print $langs->trans("ErrorRecordNotFound");
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/subscription/card.php b/htdocs/adherents/subscription/card.php
    index f905225a396..014806a2a2f 100644
    --- a/htdocs/adherents/subscription/card.php
    +++ b/htdocs/adherents/subscription/card.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2007-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2007-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -24,17 +25,17 @@
     require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php';
     if (! empty($conf->banque->enabled)) {
     	require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     }
     
    -$langs->load("companies");
    -$langs->load("bills");
    -$langs->load("members");
    -$langs->load("users");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","members","bills","users"));
     
     $adh = new Adherent($db);
    +$adht = new AdherentType($db);
     $object = new Subscription($db);
     $errmsg='';
     
    @@ -103,6 +104,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'update' && ! $canc
     			// Modifie valeures
     			$object->dateh=dol_mktime($_POST['datesubhour'], $_POST['datesubmin'], 0, $_POST['datesubmonth'], $_POST['datesubday'], $_POST['datesubyear']);
     			$object->datef=dol_mktime($_POST['datesubendhour'], $_POST['datesubendmin'], 0, $_POST['datesubendmonth'], $_POST['datesubendday'], $_POST['datesubendyear']);
    +			$object->fk_type=$_POST["typeid"];
     			$object->note=$_POST["note"];
     			$object->amount=$_POST["amount"];
     			//print 'datef='.$object->datef.' '.$_POST['datesubendday'];
    @@ -192,7 +194,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'edit')
     
     	dol_fiche_head($head, 'general', $langs->trans("Subscription"), 0, 'payment');
     
    -    $linkback = '<a href="'.DOL_URL_ROOT.'/adherents/subscription/list.php">'.$langs->trans("BackToList").'</a>';
    +    $linkback = '<a href="'.DOL_URL_ROOT.'/adherents/subscription/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
     
         print "\n";
     	print '<table class="border" width="100%">';
    @@ -203,6 +205,12 @@ if ($user->rights->adherent->cotisation->creer && $action == 'edit')
     	print $form->showrefnav($object, 'rowid', $linkback, 1);
     	print '</td></tr>';
     
    +    // Type
    +	print '<tr>';
    +	print '<td>'.$langs->trans("Type").'</td><td class="valeur" colspan="3">';
    +	print $form->selectarray("typeid", $adht->liste_array(), (isset($_POST["typeid"])?$_POST["typeid"]:$object->fk_type));
    +	print'</td></tr>';
    +
         // Member
     	$adh->ref=$adh->getFullName($langs);
         print '<tr>';
    @@ -211,13 +219,13 @@ if ($user->rights->adherent->cotisation->creer && $action == 'edit')
     
         // Date start subscription
         print '<tr><td>'.$langs->trans("DateSubscription").'</td><td class="valeur" colspan="2">';
    -	$form->select_date($object->dateh,'datesub',1,1,0,'update',1);
    +	print $form->selectDate($object->dateh, 'datesub', 1, 1, 0, 'update', 1);
     	print '</td>';
         print '</tr>';
     
         // Date end subscription
         print '<tr><td>'.$langs->trans("DateEndSubscription").'</td><td class="valeur" colspan="2">';
    -	$form->select_date($object->datef,'datesubend',0,0,0,'update',1);
    +	print $form->selectDate($object->datef, 'datesubend', 0, 0, 0, 'update', 1);
     	print '</td>';
         print '</tr>';
     
    @@ -291,7 +299,7 @@ if ($rowid && $action != 'edit')
         print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
         print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     
    -    $linkback = '<a href="'.DOL_URL_ROOT.'/adherents/subscription/list.php">'.$langs->trans("BackToList").'</a>';
    +    $linkback = '<a href="'.DOL_URL_ROOT.'/adherents/subscription/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
     
         dol_banner_tab($object, 'rowid', $linkback, 1);
     
    @@ -300,6 +308,18 @@ if ($rowid && $action != 'edit')
         print '<div class="underbanner clearboth"></div>';
     
         print '<table class="border" width="100%">';
    +    
    +    // Type
    +    print '<tr>';
    +    print '<td class="titlefield">'.$langs->trans("Type").'</td>';
    +    print '<td class="valeur">';
    +    if (  ! empty($object->fk_type) ) {
    +      $adht->fetch($object->fk_type);
    +    print $adht->getNomUrl(1);
    +      } else {
    +    print $langs->trans("NoType");
    +      }
    +    print '</td></tr>';
     
         // Member
     	$adh->ref=$adh->getFullName($langs);
    @@ -369,7 +389,7 @@ if ($rowid && $action != 'edit')
     		}
     		else
     		{
    -			print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.$langs->trans("BankLineConciliated")."\" href=\"#\">".$langs->trans("Modify")."</a></div>";
    +			print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" title="'.$langs->trans("BankLineConciliated")."\" href=\"#\">".$langs->trans("Modify")."</a></div>";
     		}
     	}
     
    @@ -417,7 +437,6 @@ if ($rowid && $action != 'edit')
         print '</div></div></div>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/subscription/info.php b/htdocs/adherents/subscription/info.php
    index 05856c35f75..a792da530f1 100644
    --- a/htdocs/adherents/subscription/info.php
    +++ b/htdocs/adherents/subscription/info.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2006 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2006 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -28,10 +28,8 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php';
     
    -$langs->load("companies");
    -$langs->load("bills");
    -$langs->load("members");
    -$langs->load("users");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","members","bills","users"));
     
     if (!$user->rights->adherent->lire)
     	accessforbidden();
    @@ -76,5 +74,6 @@ print '</div>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/adherents/subscription/list.php b/htdocs/adherents/subscription/list.php
    index c8f7bce5f95..336122c605e 100644
    --- a/htdocs/adherents/subscription/list.php
    +++ b/htdocs/adherents/subscription/list.php
    @@ -25,15 +25,23 @@
     
     require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/subscription.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
    -$langs->load("members");
    +$langs->loadLangs(array("members","companies"));
     
    -$filter=$_GET["filter"];
    -$statut=isset($_GET["statut"])?$_GET["statut"]:1;
    +$action=GETPOST('action','aZ09');
    +$massaction=GETPOST('massaction','alpha');
    +$confirm=GETPOST('confirm','alpha');
    +$toselect = GETPOST('toselect', 'array');
    +
    +$filter=GETPOST("filter","alpha");
    +$statut=(GETPOSTISSET("statut")?GETPOST("statut","alpha"):1);
     $search_ref=GETPOST('search_ref','alpha');
    +$search_type=GETPOST('search_type','alpha');
     $search_lastname=GETPOST('search_lastname','alpha');
    +$search_firstname=GETPOST('search_firstname','alpha');
     $search_login=GETPOST('search_login','alpha');
     $search_note=GETPOST('search_note','alpha');
     $search_account=GETPOST('search_account','int');
    @@ -53,18 +61,35 @@ $pagenext = $page + 1;
     if (! $sortorder) {  $sortorder="DESC"; }
     if (! $sortfield) {  $sortfield="c.dateadh"; }
     
    +$object = new Subscription($db);
    +
     // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
     $hookmanager->initHooks(array('subscriptionlist'));
     $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('subscription');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
     );
     $arrayfields=array(
    +	'd.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
    +	'd.fk_type'=>array('label'=>$langs->trans("Type"), 'checked'=>1),
    +	'd.lastname'=>array('label'=>$langs->trans("Lastname"), 'checked'=>1),
    +	'd.firstname'=>array('label'=>$langs->trans("Firstname"), 'checked'=>1),
    +	'd.login'=>array('label'=>$langs->trans("Login"), 'checked'=>1),
    +	't.libelle'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
    +	'd.bank'=>array('label'=>$langs->trans("BankAccount"), 'checked'=>1, 'enabled'=>(! empty($conf->banque->enabled))),
    +	/*'d.note_public'=>array('label'=>$langs->trans("NotePublic"), 'checked'=>0),
    +	 'd.note_private'=>array('label'=>$langs->trans("NotePrivate"), 'checked'=>0),*/
    +	'd.datedebut'=>array('label'=>$langs->trans("DateSubscription"), 'checked'=>1, 'position'=>100),
    +	'd.datefin'=>array('label'=>$langs->trans("EndSubscription"), 'checked'=>1, 'position'=>101),
    +	'd.amount'=>array('label'=>$langs->trans("Amount"), 'checked'=>1, 'position'=>102),
    +	'd.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
    +	'd.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
    +//	'd.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000)
     );
     
     // Security check
    @@ -72,7 +97,7 @@ $result=restrictedArea($user,'adherent','','','cotisation');
     
     
     /*
    - *	Actions
    + * Actions
      */
     
     if (GETPOST('cancel','alpha')) { $action='list'; $massaction=''; }
    @@ -90,16 +115,17 @@ if (empty($reshook))
         // Purge search criteria
         if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
         {
    -        $search="";
    -    	$search_ref="";
    -        $search_lastname="";
    -    	$search_firstname="";
    -    	$search_login="";
    -        $search_note="";
    -    	$search_amount="";
    -    	$search_account="";
    -       	$toselect='';
    -       	$search_array_options=array();
    +	    $search="";
    +	    $search_type="";
    +	    $search_ref="";
    +	    $search_lastname="";
    +	    $search_firstname="";
    +	    $search_login="";
    +	    $search_note="";
    +	    $search_amount="";
    +	    $search_account="";
    +	    $toselect='';
    +	    $search_array_options=array();
         }
     }
     
    @@ -109,15 +135,16 @@ if (empty($reshook))
      */
     
     $form=new Form($db);
    +$subscription=new Subscription($db);
    +$adherent=new Adherent($db);
    +$accountstatic=new Account($db);
     
    -llxHeader('',$langs->trans("ListOfSubscriptions"),'EN:Module_Foundations|FR:Module_Adh&eacute;rents|ES:M&oacute;dulo_Miembros');
    -
    +$now=dol_now();
     
     // List of subscriptions
     $sql = "SELECT d.rowid, d.login, d.firstname, d.lastname, d.societe, d.photo,";
    -$sql.= " c.rowid as crowid, c.subscription,";
    -$sql.= " c.dateadh,";
    -$sql.= " c.datef,";
    +$sql.= " c.rowid as crowid, c.fk_type, c.subscription,";
    +$sql.= " c.dateadh, c.datef, c.datec as date_creation, c.tms as date_update,";
     $sql.= " c.fk_bank as bank, c.note,";
     $sql.= " b.fk_account";
     $sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."subscription as c";
    @@ -134,254 +161,469 @@ if ($search_ref)
     	if (is_numeric($search_ref)) $sql.= " AND (c.rowid = ".$db->escape($search_ref).")";
     	else $sql.=" AND 1 = 2";    // Always wrong
     }
    -if ($search_lastname) $sql.= natural_search(array('d.firstname','d.lastname','d.societe'), $search_lastname);
    -if ($search_login) $sql.= natural_search('c.subscription', $search_login);
    +if ($search_type) $sql.= natural_search(array('c.fk_type'), $search_type);
    +if ($search_lastname) $sql.= natural_search(array('d.lastname','d.societe'), $search_lastname);
    +if ($search_firstname) $sql.= natural_search(array('d.firstname'), $search_firstname);
    +if ($search_login) $sql.= natural_search('d.login', $search_login);
     if ($search_note)  $sql.= natural_search('c.note', $search_note);
    -if ($search_account > 0) $sql.= " AND b.fk_account = ".$search_account;
    +if ($search_account > 0) $sql.= " AND b.fk_account = ".urldecode($search_account);
     if ($search_amount) $sql.= natural_search('c.subscription', $search_amount, 1);
    +
    +// Add where from extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
    +
    +// Add where from hooks
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters);    // Note that $action and $object may have been modified by hook
    +$sql.=$hookmanager->resPrint;
    +
     $sql.= $db->order($sortfield,$sortorder);
     
    +// Count total nb of records with no order and no limits
     $nbtotalofrecords = '';
     if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
     {
    -    $result = $db->query($sql);
    -    $nbtotalofrecords = $db->num_rows($result);
    +    $resql = $db->query($sql);
    +    if ($resql) $nbtotalofrecords = $db->num_rows($resql);
    +    else dol_print_error($db);
         if (($page * $limit) > $nbtotalofrecords)	// if total resultset is smaller then paging size (filtering), goto and load page 0
         {
         	$page = 0;
         	$offset = 0;
         }
     }
    -
    +// Add limit
     $sql.= $db->plimit($limit+1, $offset);
     
     $result = $db->query($sql);
    -if ($result)
    +if (! $result)
     {
    -    $num = $db->num_rows($result);
    +	dol_print_error($db);
    +	exit;
    +}
     
    -	$arrayofselected=is_array($toselect)?$toselect:array();
    +$num = $db->num_rows($result);
     
    -	$i = 0;
    +$arrayofselected=is_array($toselect)?$toselect:array();
     
    -    $title=$langs->trans("ListOfSubscriptions");
    -    if (! empty($date_select)) $title.=' ('.$langs->trans("Year").' '.$date_select.')';
    +if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall)
    +{
    +	$obj = $db->fetch_object($resql);
    +	$id = $obj->rowid;
    +	header("Location: ".DOL_URL_ROOT.'/adherents/subscription/card.php?id='.$id);
    +	exit;
    +}
     
    -    $param='';
    -    if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    -    if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    -    if ($statut != '')    $param.="&statut=".$statut;
    -    if ($date_select)     $param.="&date_select=".$date_select;
    -    if ($search_lastname) $param.="&search_lastname=".$search_lastname;
    -	if ($search_login)    $param.="&search_login=".$search_login;
    -	if ($search_acount)   $param.="&search_account=".$search_account;
    -	if ($search_amount)   $param.="&search_amount=".$search_amount;
    -	if ($optioncss != '') $param.='&optioncss='.$optioncss;
    +llxHeader('',$langs->trans("ListOfSubscriptions"),'EN:Module_Foundations|FR:Module_Adh&eacute;rents|ES:M&oacute;dulo_Miembros');
     
    -	// List of mass actions available
    -	$arrayofmassactions =  array(
    -	    //'presend'=>$langs->trans("SendByMail"),
    -	    //'builddoc'=>$langs->trans("PDFMerge"),
    -	);
    -	if ($user->rights->adherent->supprimer) $arrayofmassactions['predelete']=$langs->trans("Delete");
    -	if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    -	$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
    +$i = 0;
     
    -	$newcardbutton='';
    -	if ($user->rights->adherent->cotisation->creer)
    -	{
    -		$newcardbutton='<a class="butActionNew" href="'.DOL_URL_ROOT.'/adherents/list.php?status=-1,1"><span class="valignmiddle">'.$langs->trans('NewSubscription').'</span>';
    -		$newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    -		$newcardbutton.= '</a>';
    -	}
    +$title=$langs->trans("ListOfSubscriptions");
    +if (! empty($date_select)) $title.=' ('.$langs->trans("Year").' '.$date_select.')';
     
    -    print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    -    if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
    -    print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    -    print '<input type="hidden" name="view" value="'.dol_escape_htmltag($view).'">';
    -    print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
    -    print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
    -    print '<input type="hidden" name="page" value="'.$page.'">';
    -    print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
    +$param='';
    +if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
    +if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
    +if ($statut != '')    $param.="&statut=".urlencode($statut);
    +if ($search_type) $param.="&search_type=".urlencode($search_type);
    +if ($date_select)     $param.="&date_select=".urlencode($date_select);
    +if ($search_lastname) $param.="&search_lastname=".urlencode($search_lastname);
    +if ($search_login)    $param.="&search_login=".urlencode($search_login);
    +if ($search_acount)   $param.="&search_account=".urlencode($search_account);
    +if ($search_amount)   $param.="&search_amount=".urlencode($search_amount);
    +if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss);
    +// Add $param from extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
     
    -    print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_generic.png', 0, $newcardbutton, '', $limit);
    +// List of mass actions available
    +$arrayofmassactions =  array(
    +	//'presend'=>$langs->trans("SendByMail"),
    +	//'builddoc'=>$langs->trans("PDFMerge"),
    +);
    +//if ($user->rights->adherent->supprimer) $arrayofmassactions['predelete']=$langs->trans("Delete");
    +if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    +$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
     
    -	$topicmail="Information";
    -	$modelmail="subscription";
    -	$objecttmp=new Subscription($db);
    -	$trackid='sub'.$object->id;
    -	include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
    +$newcardbutton='';
    +if ($user->rights->adherent->cotisation->creer)
    +{
    +	$newcardbutton='<a class="butActionNew" href="'.DOL_URL_ROOT.'/adherents/list.php?status=-1,1"><span class="valignmiddle">'.$langs->trans('NewSubscription').'</span>';
    +	$newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    +	$newcardbutton.= '</a>';
    +}
     
    -	if ($sall)
    -	{
    -		print $langs->trans("Filter")." (".$langs->trans("Ref").", ".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("EMail").", ".$langs->trans("Address")." ".$langs->trans("or")." ".$langs->trans("Town")."): ".$sall;
    -	}
    +print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
    +if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
    +print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    +print '<input type="hidden" name="action" value="list">';
    +print '<input type="hidden" name="view" value="'.dol_escape_htmltag($view).'">';
    +print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
    +print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
    +print '<input type="hidden" name="page" value="'.$page.'">';
    +print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
     
    -    $moreforfilter = '';
    +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_generic.png', 0, $newcardbutton, '', $limit);
     
    -    $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
    -    $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
    -    if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1);
    +$topicmail="Information";
    +$modelmail="subscription";
    +$objecttmp=new Subscription($db);
    +$trackid='sub'.$object->id;
    +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
     
    -    print '<div class="div-table-responsive">';
    -    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
    +if ($sall)
    +{
    +	foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
    +	print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall).'</div>';
    +}
     
    -	// Line for filters fields
    -	print '<tr class="liste_titre_filter">';
    +$moreforfilter = '';
     
    +$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
    +$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
    +if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1);
    +
    +print '<div class="div-table-responsive">';
    +print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
    +
    +
    +// Line for filters fields
    +print '<tr class="liste_titre_filter">';
    +
    +// Line numbering
    +if (! empty($conf->global->MAIN_SHOW_TECHNICAL_ID))
    +{
    +	print '<td class="liste_titre">&nbsp;</td>';
    +}
    +
    +// Ref
    +if (! empty($arrayfields['d.ref']['checked']))
    +{
     	print '<td class="liste_titre" align="left">';
     	print '<input class="flat" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).'" size="4"></td>';
    +}
     
    +// Type
    +if (! empty($arrayfields['d.fk_type']['checked']))
    +{
     	print '<td class="liste_titre" align="left">';
    -	print '<input class="flat" type="text" name="search_lastname" value="'.dol_escape_htmltag($search_lastname).'" size="12"></td>';
    +	print '<input class="flat" type="text" name="search_type" value="'.dol_escape_htmltag($search_type).'" size="7">';
    +  print'</td>';
    +}
     
    +if (! empty($arrayfields['d.lastname']['checked']))
    +{
    +	print '<td class="liste_titre" align="left">';
    +	print '<input class="flat" type="text" name="search_lastname" value="'.dol_escape_htmltag($search_lastname).'" size="7"></td>';
    +}
    +
    +if (! empty($arrayfields['d.firstname']['checked']))
    +{
    +	print '<td class="liste_titre" align="left">';
    +	print '<input class="flat" type="text" name="search_firstname" value="'.dol_escape_htmltag($search_firstname).'" size="12"></td>';
    +}
    +
    +if (! empty($arrayfields['d.login']['checked']))
    +{
     	print '<td class="liste_titre" align="left">';
     	print '<input class="flat" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).'" size="7"></td>';
    +}
     
    -	print '<td class="liste_titre" align="left">';
    -	print '<input class="flat" type="text" name="search_note" value="'.dol_escape_htmltag($search_note).'" size="7"></td>';
    +if (! empty($arrayfields['t.libelle']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '';
    +	print '</td>';
    +}
     
    -    if (! empty($conf->banque->enabled))
    -    {
    -		print '<td class="liste_titre">';
    -		print $form->select_comptes($search_account, 'search_account', 0, '', 1);
    -		print '</td>';
    -    }
    +if (! empty($arrayfields['d.bank']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print $form->select_comptes($search_account, 'search_account', 0, '', 1);
    +	print '</td>';
    +}
     
    +if (! empty($arrayfields['d.date_debut']['checked']))
    +{
     	print '<td class="liste_titre">&nbsp;</td>';
    +}
     
    +if (! empty($arrayfields['d.date_fin']['checked']))
    +{
     	print '<td class="liste_titre">&nbsp;</td>';
    +}
     
    +if (! empty($arrayfields['d.amount']['checked']))
    +{
     	print '<td align="right" class="liste_titre">';
     	print '<input class="flat" type="text" name="search_amount" value="'.dol_escape_htmltag($search_amount).'" size="4">';
     	print '</td>';
    -
    -    // Action column
    -    print '<td class="liste_titre" align="right">';
    -    $searchpicto=$form->showFilterButtons();
    -    print $searchpicto;
    -    print '</td>';
    -
    -	print "</tr>\n";
    -
    -
    -	print '<tr class="liste_titre">';
    -	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"c.rowid",$param,"","",$sortfield,$sortorder);
    -	print_liste_field_titre("Name",$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder);
    -	print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder);
    -	print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"c.note",$param,"",'align="left"',$sortfield,$sortorder);
    -	if (! empty($conf->banque->enabled))
    -	{
    -	    print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"b.fk_account",$pram,"","",$sortfield,$sortorder);
    -	}
    -	print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"c.dateadh",$param,"",'align="center"',$sortfield,$sortorder);
    -	print_liste_field_titre("DateEnd",$_SERVER["PHP_SELF"],"c.datef",$param,"",'align="center"',$sortfield,$sortorder);
    -	print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"c.subscription",$param,"",'align="right"',$sortfield,$sortorder);
    -	//print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
    -	print_liste_field_titre('', $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
    -	print "</tr>\n";
    -
    -
    -    // Static objects
    -    $subscription=new Subscription($db);
    -    $adherent=new Adherent($db);
    -    $accountstatic=new Account($db);
    -
    -    $total=0;
    -    while ($i < min($num, $limit))
    -    {
    -        $obj = $db->fetch_object($result);
    -        $total+=$obj->subscription;
    -
    -        $subscription->ref=$obj->crowid;
    -        $subscription->id=$obj->crowid;
    -
    -        $adherent->lastname=$obj->lastname;
    -        $adherent->firstname=$obj->firstname;
    -        $adherent->ref=$obj->rowid;
    -        $adherent->id=$obj->rowid;
    -        $adherent->statut=$obj->statut;
    -        $adherent->login=$obj->login;
    -        $adherent->photo=$obj->photo;
    -
    -
    -
    -        print '<tr class="oddeven">';
    -
    -        // Ref
    -        print '<td>'.$subscription->getNomUrl(1).'</td>';
    -
    -        // Lastname
    -        print '<td>'.$adherent->getNomUrl(-1).'</td>';
    -
    -        // Login
    -        print '<td>'.$adherent->login.'</td>';
    -
    -        // Libelle
    -        print '<td>';
    -        print dol_trunc($obj->note,32);
    -        print '</td>';
    -
    -		// Banque
    -		if (! empty($conf->banque->enabled))
    -		{
    -			if ($obj->fk_account > 0)
    -			{
    -				$accountstatic->id=$obj->fk_account;
    -				$accountstatic->fetch($obj->fk_account);
    -				//$accountstatic->label=$obj->label;
    -				print '<td>'.$accountstatic->getNomUrl(1).'</td>';
    -			}
    -			else
    -			{
    -				print "<td>";
    -				print "</td>\n";
    -			}
    -		}
    -
    -        // Date start
    -        print '<td align="center">'.dol_print_date($db->jdate($obj->dateadh),'day')."</td>\n";
    -
    -        // Date end
    -        print '<td align="center">'.dol_print_date($db->jdate($obj->datef),'day')."</td>\n";
    -
    -        // Price
    -        print '<td align="right">'.price($obj->subscription).'</td>';
    -
    -        print '<td></td>';
    -
    -        print "</tr>";
    -
    -        $i++;
    -    }
    -
    -    // Total
    -
    -    print '<tr class="liste_total">';
    -    print "<td>".$langs->trans("Total")."</td>\n";
    -    print "<td align=\"right\">&nbsp;</td>\n";
    -    print "<td align=\"right\">&nbsp;</td>\n";
    -    print "<td align=\"right\">&nbsp;</td>\n";
    -    if (! empty($conf->banque->enabled))
    -    {
    -        print '<td>&nbsp;</td>';
    -    }
    -   	print '<td>&nbsp;</td>';
    -   	print '<td>&nbsp;</td>';
    -   	print '<td align="right">'.price($total)."</td>\n";
    -   	print '<td></td>';
    -    print "</tr>\n";
    -
    -    print "</table>";
    -    print '</div>';
    -	print '</form>';
     }
    -else
    +// Extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
    +
    +// Fields from hook
    +$parameters=array('arrayfields'=>$arrayfields);
    +$reshook=$hookmanager->executeHooks('printFieldListOption',$parameters);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +// Date creation
    +if (! empty($arrayfields['d.datec']['checked']))
     {
    -    dol_print_error($db);
    +	print '<td class="liste_titre">';
    +	print '</td>';
    +}
    +// Date modification
    +if (! empty($arrayfields['d.tms']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '</td>';
     }
     
    +// Action column
    +print '<td class="liste_titre" align="right">';
    +$searchpicto=$form->showFilterButtons();
    +print $searchpicto;
    +print '</td>';
     
    +print "</tr>\n";
    +
    +
    +print '<tr class="liste_titre">';
    +if (! empty($arrayfields['d.ref']['checked']))
    +{
    +	print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"c.rowid",$param,"","",$sortfield,$sortorder);
    +}
    +if (! empty($arrayfields['d.fk_type']['checked']))
    +{
    +	print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"c.fk_type",$param,"","",$sortfield,$sortorder);
    +}
    +if (! empty($arrayfields['d.lastname']['checked']))
    +{
    +	print_liste_field_titre("LastName",$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder);
    +}
    +if (! empty($arrayfields['d.firstname']['checked']))
    +{
    +	print_liste_field_titre("FirstName",$_SERVER["PHP_SELF"],"d.firstname",$param,"","",$sortfield,$sortorder);
    +}
    +if (! empty($arrayfields['d.login']['checked']))
    +{
    +	print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder);
    +}
    +if (! empty($arrayfields['t.libelle']['checked']))
    +{
    +	print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"c.note",$param,"",'align="left"',$sortfield,$sortorder);
    +}
    +if (! empty($arrayfields['d.bank']['checked']))
    +{
    +	print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"b.fk_account",$pram,"","",$sortfield,$sortorder);
    +}
    +if (! empty($arrayfields['d.date_debut']['checked']))
    +{
    +	print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"c.dateadh",$param,"",'align="center"',$sortfield,$sortorder);
    +}
    +if (! empty($arrayfields['d.date_fin']['checked']))
    +{
    +	print_liste_field_titre("DateEnd",$_SERVER["PHP_SELF"],"c.datef",$param,"",'align="center"',$sortfield,$sortorder);
    +}
    +if (! empty($arrayfields['d.amount']['checked']))
    +{
    +	print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"c.subscription",$param,"",'align="right"',$sortfield,$sortorder);
    +}
    +// Extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
    +
    +// Hook fields
    +$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;
    +if (! empty($arrayfields['d.datec']['checked']))     print_liste_field_titre($arrayfields['d.datec']['label'],$_SERVER["PHP_SELF"],"d.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
    +if (! empty($arrayfields['d.tms']['checked']))       print_liste_field_titre($arrayfields['d.tms']['label'],$_SERVER["PHP_SELF"],"d.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
    +print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
    +print "</tr>\n";
    +
    +
    +$total=0;
    +$totalarray=array();
    +while ($i < min($num, $limit))
    +{
    +	$obj = $db->fetch_object($result);
    +	$total+=$obj->subscription;
    +
    +	$subscription->ref=$obj->crowid;
    +	$subscription->id=$obj->crowid;
    +
    +	$adherent->lastname=$obj->lastname;
    +	$adherent->firstname=$obj->firstname;
    +	$adherent->ref=$obj->rowid;
    +	$adherent->id=$obj->rowid;
    +	$adherent->statut=$obj->statut;
    +	$adherent->login=$obj->login;
    +	$adherent->photo=$obj->photo;
    +  
    +  $adht = new AdherentType($db);
    +	$adht->fetch($obj->fk_type);
    +
    +	print '<tr class="oddeven">';
    +
    +	// Ref
    +	if (! empty($arrayfields['d.ref']['checked']))
    +	{
    +		print '<td>'.$subscription->getNomUrl(1).'</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +  // Type
    +  if (! empty($arrayfields['d.fk_type']['checked']))
    +	{
    +    print '<td>';
    +    if ( ! empty($obj->fk_type) ) print $adht->getNomUrl(1);
    +    print '</td>';
    +    if (! $i) $totalarray['nbfield']++;
    +	}
    +
    +	// Lastname
    +	if (! empty($arrayfields['d.lastname']['checked']))
    +	{
    +		$adherent->firstname = '';
    +		print '<td>'.$adherent->getNomUrl(-1).'</td>';
    +		$adherent->firstname = $obj->firstname;
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Firstname
    +	if (! empty($arrayfields['d.firstname']['checked']))
    +	{
    +		print '<td>'.$adherent->firstname.'</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +
    +	// Login
    +	if (! empty($arrayfields['d.login']['checked']))
    +	{
    +		print '<td>'.$adherent->login.'</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +
    +	// Label
    +	if (! empty($arrayfields['t.libelle']['checked']))
    +	{
    +		print '<td>';
    +		print dol_trunc($obj->note,128);
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +
    +	// Banque
    +	if (! empty($arrayfields['d.bank']['checked']))
    +	{
    +		print "<td>";
    +		if ($obj->fk_account > 0)
    +		{
    +			$accountstatic->id=$obj->fk_account;
    +			$accountstatic->fetch($obj->fk_account);
    +			//$accountstatic->label=$obj->label;
    +			print $accountstatic->getNomUrl(1);
    +		}
    +		print "</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +
    +	// Date start
    +	if (! empty($arrayfields['d.date_start']['checked']))
    +	{
    +		print '<td align="center">'.dol_print_date($db->jdate($obj->dateadh),'day')."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Date end
    +	if (! empty($arrayfields['d.date_end']['checked']))
    +	{
    +		print '<td align="center">'.dol_print_date($db->jdate($obj->datef),'day')."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Price
    +	if (! empty($arrayfields['d.amount']['checked']))
    +	{
    +		print '<td align="right">'.price($obj->subscription).'</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +		if (! $i) $totalarray['pos'][$totalarray['nbfield']]='d.amount';
    +		$totalarray['val']['d.amount'] += $obj->subscription;
    +	}
    +	// Extra fields
    +	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
    +	// Fields from hook
    +	$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
    +	$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters);    // Note that $action and $object may have been modified by hook
    +	print $hookmanager->resPrint;
    +	// Date creation
    +	if (! empty($arrayfields['d.datec']['checked']))
    +	{
    +		print '<td align="center" class="nowrap">';
    +		print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Date modification
    +	if (! empty($arrayfields['d.tms']['checked']))
    +	{
    +		print '<td align="center" class="nowrap">';
    +		print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Action column
    +	print '<td align="center">';
    +	if ($massactionbutton || $massaction)   // 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($obj->rowid, $arrayofselected)) $selected=1;
    +		print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>';
    +	}
    +	print '</td>';
    +	if (! $i) $totalarray['nbfield']++;
    +
    +	print "</tr>\n";
    +	$i++;
    +}
    +
    +// Show total line
    +if (isset($totalarray['pos']))
    +{
    +	print '<tr class="liste_total">';
    +	$i=0;
    +	while ($i < $totalarray['nbfield'])
    +	{
    +		$i++;
    +		if (! empty($totalarray['pos'][$i]))  print '<td align="right">'.price($totalarray['val'][$totalarray['pos'][$i]]).'</td>';
    +		else
    +		{
    +			if ($i == 1)
    +			{
    +				if ($num < $limit) print '<td class="left">'.$langs->trans("Total").'</td>';
    +				else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
    +			}
    +			else print '<td></td>';
    +		}
    +	}
    +	print '</tr>';
    +}
    +
    +// If no record found
    +if ($num == 0)
    +{
    +	$colspan=1;
    +	foreach($arrayfields as $key => $val) { if (! empty($val['checked'])) $colspan++; }
    +	print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>';
    +}
    +
    +$db->free($resql);
    +
    +$parameters=array('sql' => $sql);
    +$reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +
    +print "</table>";
    +print '</div>';
    +print '</form>';
    +
    +
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/adherents/tpl/linkedobjectblock.tpl.php b/htdocs/adherents/tpl/linkedobjectblock.tpl.php
    index a3033ec090d..eec61e3ba22 100644
    --- a/htdocs/adherents/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/adherents/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2013		Juanjo Menent <jmenent@2byte.es>
      * Copyright (C) 2014       Marcos García <marcosgdf@gmail.com>
      *
    diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php
    index 81375220a85..75cdd3d3c12 100644
    --- a/htdocs/adherents/type.php
    +++ b/htdocs/adherents/type.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2015		Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
      *
    @@ -317,7 +317,7 @@ if ($action == 'create')
     	print '<table class="border" width="100%">';
     	print '<tbody>';
     
    -	print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Label").'</td><td><input type="text" name="label" size="40"></td></tr>';
    +	print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Label").'</td><td><input type="text" class="minwidth200" name="label" autofocus="autofocus"></td></tr>';
     
     	print '<tr><td>'.$langs->trans("SubscriptionRequired").'</td><td>';
     	print $form->selectyesno("subscription",1,1);
    @@ -694,7 +694,6 @@ if ($rowid > 0)
     		{
     		    dol_print_error($db);
     		}
    -
     	}
     
     	/* ************************************************************************** */
    @@ -787,7 +786,6 @@ if ($rowid > 0)
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/adherents/type_ldap.php b/htdocs/adherents/type_ldap.php
    index 7edb42e6c76..3cd57e43390 100644
    --- a/htdocs/adherents/type_ldap.php
    +++ b/htdocs/adherents/type_ldap.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2017 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2017 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -29,9 +29,8 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/ldap.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/ldap.lib.php';
     
    -$langs->load("members");
    -$langs->load("admin");
    -$langs->load("ldap");
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin","members","ldap"));
     
     $id = GETPOST('rowid', 'int');
     $action = GETPOST('action','alpha');
    @@ -187,5 +186,6 @@ else
     
     print '</table>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/agenda.php b/htdocs/admin/agenda.php
    index 6fedfa6d2cb..1c6e5c16fcf 100644
    --- a/htdocs/admin/agenda.php
    +++ b/htdocs/admin/agenda.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2015	Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2011		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2011		Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012  Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2015		Jean-François Ferry <jfefe@aternatik.fr>
      *
    @@ -202,6 +202,6 @@ print "</form>\n";
     
     print "<br>";
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/agenda_extrafields.php b/htdocs/admin/agenda_extrafields.php
    index fadb144b883..29323020325 100644
    --- a/htdocs/admin/agenda_extrafields.php
    +++ b/htdocs/admin/agenda_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2015		Jean-François Ferry		<jfefe@aternatik.fr>
      *
    @@ -85,7 +85,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -98,7 +98,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -117,6 +117,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/agenda_extsites.php b/htdocs/admin/agenda_extsites.php
    index 906ecd8d092..236483f5ed4 100644
    --- a/htdocs/admin/agenda_extsites.php
    +++ b/htdocs/admin/agenda_extsites.php
    @@ -238,7 +238,6 @@ print '</div>';
     
     print "</form>\n";
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/agenda_other.php b/htdocs/admin/agenda_other.php
    index 2d20d285720..2a370cdf580 100644
    --- a/htdocs/admin/agenda_other.php
    +++ b/htdocs/admin/agenda_other.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2016	Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2011		Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2011		Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2017  Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2015		Jean-François Ferry	    <jfefe@aternatik.fr>
      * Copyright (C) 2016		Charlie Benke		    <charlie@patas-monkey.com>
    @@ -356,7 +356,7 @@ print '<tr class="oddeven">'."\n";
     print '<td>'.$langs->trans("AGENDA_DEFAULT_VIEW").'</td>'."\n";
     print '<td align="center">&nbsp;</td>'."\n";
     print '<td align="right">'."\n";
    -$tmplist=array('show_list'=>$langs->trans("ViewList"), 'show_month'=>$langs->trans("ViewCal"), 'show_week'=>$langs->trans("ViewWeek"), 'show_day'=>$langs->trans("ViewDay"), 'show_peruser'=>$langs->trans("ViewPerUser"));
    +$tmplist=array(''=>'&nbsp;', 'show_list'=>$langs->trans("ViewList"), 'show_month'=>$langs->trans("ViewCal"), 'show_week'=>$langs->trans("ViewWeek"), 'show_day'=>$langs->trans("ViewDay"), 'show_peruser'=>$langs->trans("ViewPerUser"));
     print $form->selectarray('AGENDA_DEFAULT_VIEW', $tmplist, $conf->global->AGENDA_DEFAULT_VIEW);
     print '</td></tr>'."\n";
     
    @@ -399,6 +399,6 @@ print '</form>';
     
     print "<br>";
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/agenda_reminder.php b/htdocs/admin/agenda_reminder.php
    index e78a8e089ed..269880236cb 100644
    --- a/htdocs/admin/agenda_reminder.php
    +++ b/htdocs/admin/agenda_reminder.php
    @@ -247,6 +247,6 @@ print '</form>';
     
     print "<br>";
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/agenda_xcal.php b/htdocs/admin/agenda_xcal.php
    index 481a850790e..d55a3713ae1 100644
    --- a/htdocs/admin/agenda_xcal.php
    +++ b/htdocs/admin/agenda_xcal.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2008-2015 	Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2012-2013	Juanjo Menent		<jmenent@2byte.es>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2015		Jean-François Ferry	<jfefe@aternatik.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -198,6 +198,6 @@ if (! empty($conf->use_javascript_ajax))
     	print '</script>';
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/bank.php b/htdocs/admin/bank.php
    index a4e9e4bb210..031e4200268 100644
    --- a/htdocs/admin/bank.php
    +++ b/htdocs/admin/bank.php
    @@ -397,7 +397,7 @@ print '<br><br>';
      */
     //if (! empty($conf->global->MAIN_FEATURES_LEVEL))
     //{
    -print load_fiche_titre($langs->trans("BankAccountReleveModule"), '', '');
    +print load_fiche_titre($langs->trans("Other"), '', '');
     
     
     print "<table class=\"noborder\" width=\"100%\">\n";
    @@ -420,7 +420,7 @@ if ($conf->global->BANK_REPORT_LAST_NUM_RELEVE) {
         print '</a>';
         print '</td>';
     }
    -else 
    +else
     {
         print '<td align="center">' . "\n";
         print '<a href="' . $_SERVER["PHP_SELF"] . '?action=setreportlastnumreleve">' . img_picto($langs->trans("Disabled"),
    @@ -432,6 +432,6 @@ print "</tr>\n";
     print '</table>';
     dol_fiche_end();
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/bank_extrafields.php b/htdocs/admin/bank_extrafields.php
    index 19446092923..f6a729743cf 100644
    --- a/htdocs/admin/bank_extrafields.php
    +++ b/htdocs/admin/bank_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2014		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2015		Jean-François Ferry		<jfefe@aternatik.fr>
      *
    @@ -82,7 +82,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -95,7 +95,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -114,6 +114,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/barcode.php b/htdocs/admin/barcode.php
    index ce1838966b9..6cf9c84d265 100644
    --- a/htdocs/admin/barcode.php
    +++ b/htdocs/admin/barcode.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2004	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2013	Juanjo Menent			<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -63,7 +63,7 @@ if ($action == 'setcoder')
     	$resql=$db->query($sqlp);
     	if (! $resql) dol_print_error($db);
     }
    -else if ($action == 'update')
    +elseif ($action == 'update')
     {
     	$location = GETPOST('GENBARCODE_LOCATION','alpha');
     	$res = dolibarr_set_const($db, "GENBARCODE_LOCATION",$location,'chaine',0,'',$conf->entity);
    @@ -71,7 +71,7 @@ else if ($action == 'update')
     	$res = dolibarr_set_const($db, "PRODUIT_DEFAULT_BARCODE_TYPE", $coder_id,'chaine',0,'',$conf->entity);
     	$coder_id = GETPOST('GENBARCODE_BARCODETYPE_THIRDPARTY','alpha');
     	$res = dolibarr_set_const($db, "GENBARCODE_BARCODETYPE_THIRDPARTY", $coder_id,'chaine',0,'',$conf->entity);
    -	
    +
     	if ($res > 0)
         {
             setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    @@ -81,7 +81,7 @@ else if ($action == 'update')
             setEventMessages($langs->trans("Error"), null, 'errors');
         }
     }
    -else if ($action == 'updateengine')
    +elseif ($action == 'updateengine')
     {
         $sql = "SELECT rowid, coder";
         $sql.= " FROM ".MAIN_DB_PREFIX."c_barcode_type";
    @@ -97,17 +97,17 @@ else if ($action == 'updateengine')
     	   while ($i <	$num)
     	   {
     	       $obj = $db->fetch_object($resql);
    -	       
    +
     	       if (GETPOST('coder'.$obj->rowid, 'alpha'))
     	       {
     	           $coder = GETPOST('coder'.$obj->rowid,'alpha');
     	           $code_id = $obj->rowid;
    -	           
    +
     	           $sqlp = "UPDATE ".MAIN_DB_PREFIX."c_barcode_type";
     	           $sqlp.= " SET coder = '" . $coder."'";
     	           $sqlp.= " WHERE rowid = ". $code_id;
     	           $sqlp.= " AND entity = ".$conf->entity;
    -	           
    +
     	           $upsql=$db->query($sqlp);
     	           if (! $upsql) dol_print_error($db);
     	       }
    @@ -115,9 +115,9 @@ else if ($action == 'updateengine')
     	       $i++;
     	   }
         }
    -
     }
     
    +
     /*
      * View
      */
    @@ -334,7 +334,7 @@ if (! empty($conf->product->enabled))
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("SetDefaultBarcodeTypeProducts").'</td>';
     	print '<td width="60" align="right">';
    -	$formbarcode->select_barcode_type($conf->global->PRODUIT_DEFAULT_BARCODE_TYPE,"PRODUIT_DEFAULT_BARCODE_TYPE",1);
    +	print $formbarcode->selectBarcodeType($conf->global->PRODUIT_DEFAULT_BARCODE_TYPE, "PRODUIT_DEFAULT_BARCODE_TYPE", 1);
     	print '</td></tr>';
     }
     
    @@ -345,7 +345,7 @@ if (! empty($conf->societe->enabled))
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("SetDefaultBarcodeTypeThirdParties").'</td>';
     	print '<td width="60" align="right">';
    -	print $formbarcode->select_barcode_type($conf->global->GENBARCODE_BARCODETYPE_THIRDPARTY,"GENBARCODE_BARCODETYPE_THIRDPARTY",1);
    +	print $formbarcode->selectBarcodeType($conf->global->GENBARCODE_BARCODETYPE_THIRDPARTY, "GENBARCODE_BARCODETYPE_THIRDPARTY", 1);
     	print '</td></tr>';
     }
     
    @@ -433,5 +433,6 @@ if ($conf->produit->enabled)
     
     print "<br>";
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/boxes.php b/htdocs/admin/boxes.php
    index 04fd76e96fc..c0480bb7e50 100644
    --- a/htdocs/admin/boxes.php
    +++ b/htdocs/admin/boxes.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015       Jean-François Ferry		<jfefe@aternatik.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -488,7 +488,6 @@ print '<div class="center"><input type="submit" class="button" value="'.$langs->
     print '</form>';
     print "\n".'<!-- End Other Const -->'."\n";
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/chequereceipts.php b/htdocs/admin/chequereceipts.php
    index df628ecc87f..f85018c03b8 100644
    --- a/htdocs/admin/chequereceipts.php
    +++ b/htdocs/admin/chequereceipts.php
    @@ -217,7 +217,6 @@ foreach ($dirmodels as $reldir)
     							print '</td>';
     
     							print "</tr>\n";
    -
     						}
     					}
     				}
    @@ -280,6 +279,6 @@ dol_fiche_end();
     
     print '</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/clicktodial.php b/htdocs/admin/clicktodial.php
    index c2cfaf9f72a..34a641137dc 100644
    --- a/htdocs/admin/clicktodial.php
    +++ b/htdocs/admin/clicktodial.php
    @@ -140,6 +140,6 @@ if (! empty($conf->global->CLICKTODIAL_URL))
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/commande.php b/htdocs/admin/commande.php
    index cee12e4b08e..d4d7b789974 100644
    --- a/htdocs/admin/commande.php
    +++ b/htdocs/admin/commande.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004      Sebastien Di Cintio          <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier               <benoit.mortier@opensides.be>
      * Copyright (C) 2004      Andre Cianfarani             <acianfa@free.fr>
    - * Copyright (C) 2005-2014 Regis Houssin                <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014 Regis Houssin                <regis.houssin@inodbox.com>
      * Copyright (C) 2008 	   Raphael Bertrand (Resultic)  <raphael.bertrand@resultic.fr>
      * Copyright (C) 2011-2013 Juanjo Menent			    <jmenent@2byte.es>
      * Copyright (C) 2011-2016 Philippe Grand			    <philippe.grand@atoo-net.com>
    @@ -679,7 +679,6 @@ print "</td></tr>\n";
     
     print '</table>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/commande_fournisseur_dispatch_extrafields.php b/htdocs/admin/commande_fournisseur_dispatch_extrafields.php
    new file mode 100644
    index 00000000000..9abc3dc23c7
    --- /dev/null
    +++ b/htdocs/admin/commande_fournisseur_dispatch_extrafields.php
    @@ -0,0 +1,127 @@
    +<?php
    +/* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    + * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
    + * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
    + * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
    + * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
    + * Copyright (C) 2015		Claudio Aschieri		<c.aschieri@19.coop>
    + * Copyright (C) 2018	   Quentin Vial-Gouteyron   <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *      \file       htdocs/admin/commandefournisseurdispatch_extrafields.php
    + *		\ingroup    reception
    + *		\brief      Page to setup extra fields of reception
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
    +
    +
    +if (!$user->admin)
    +	accessforbidden();
    +
    +$langs->load("admin");
    +$langs->load("other");
    +$langs->load("receptions");
    +
    +$extrafields = new ExtraFields($db);
    +$form = new Form($db);
    +
    +// List of supported format
    +$tmptype2label=ExtraFields::$type2label;
    +$type2label=array('');
    +foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
    +
    +$action=GETPOST('action', 'alpha');
    +$attrname=GETPOST('attrname', 'alpha');
    +$elementtype='commande_fournisseur_dispatch'; //Must be the $table_element of the class that manage extrafield
    +
    +if (!$user->admin) accessforbidden();
    +
    +
    +/*
    + * Actions
    + */
    +
    +require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
    +
    +
    +
    +/*
    + * View
    + */
    +
    +$textobject=$langs->transnoentitiesnoconv("Receptions");
    +
    +llxHeader('',$langs->trans("ReceptionsSetup"));
    +
    +$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
    +print load_fiche_titre($langs->trans("ReceptionsSetup"),$linkback,'title_setup');
    +print "<br>\n";
    +
    +$head = reception_admin_prepare_head();
    +
    +dol_fiche_head($head, 'attributeslines_reception', $langs->trans("Receptions"), -1, 'sending');
    +
    +require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
    +
    +dol_fiche_end();
    +
    +
    +// Buttons
    +if ($action != 'create' && $action != 'edit')
    +{
    +    print '<div class="tabsAction">';
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "</div>";
    +}
    +
    +
    +/* ************************************************************************** */
    +/*                                                                            */
    +/* Creation of an optional field											  */
    +/*                                                                            */
    +/* ************************************************************************** */
    +
    +if ($action == 'create')
    +{
    +    print "<br>";
    +    print load_fiche_titre($langs->trans('NewAttribute'));
    +
    +    require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    +}
    +
    +/* ************************************************************************** */
    +/*                                                                            */
    +/* Edition of an optional field                                               */
    +/*                                                                            */
    +/* ************************************************************************** */
    +if ($action == 'edit' && ! empty($attrname))
    +{
    +    print "<br>";
    +    print load_fiche_titre($langs->trans("FieldEdition", $attrname));
    +
    +    require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
    +}
    +
    +llxFooter();
    +
    +$db->close();
    diff --git a/htdocs/admin/company.php b/htdocs/admin/company.php
    index 9b312e7e228..15af65fbb8d 100644
    --- a/htdocs/admin/company.php
    +++ b/htdocs/admin/company.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2007	Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2010-2014	Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2011-2017	Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2015		Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
    @@ -50,6 +50,7 @@ $error=0;
     // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
     $hookmanager->initHooks(array('admincompany','globaladmin'));
     
    +
     /*
      * Actions
      */
    @@ -74,6 +75,8 @@ if ( ($action == 'update' && ! GETPOST("cancel",'alpha'))
     		activateModulesRequiredByCountry($mysoc->country_code);
     	}
     
    +	$db->begin();
    +
     	dolibarr_set_const($db, "MAIN_INFO_SOCIETE_NOM", GETPOST("nom",'nohtml'),'chaine',0,'',$conf->entity);
     	dolibarr_set_const($db, "MAIN_INFO_SOCIETE_ADDRESS", GETPOST("MAIN_INFO_SOCIETE_ADDRESS",'nohtml'),'chaine',0,'',$conf->entity);
     	dolibarr_set_const($db, "MAIN_INFO_SOCIETE_TOWN", GETPOST("MAIN_INFO_SOCIETE_TOWN",'nohtml'),'chaine',0,'',$conf->entity);
    @@ -172,11 +175,24 @@ if ( ($action == 'update' && ! GETPOST("cancel",'alpha'))
     
     	dolibarr_set_const($db, "SOCIETE_FISCAL_MONTH_START", GETPOST("SOCIETE_FISCAL_MONTH_START",'int'),'chaine',0,'',$conf->entity);
     
    -	dolibarr_set_const($db, "FACTURE_TVAOPTION", GETPOST("optiontva",'aZ09'),'chaine',0,'',$conf->entity);
    +	// Sale tax options
    +	$usevat = GETPOST("optiontva",'aZ09');
    +	$uselocaltax1 = GETPOST("optionlocaltax1",'aZ09');
    +	$uselocaltax2 = GETPOST("optionlocaltax2",'aZ09');
    +	if ($uselocaltax1 == 'localtax1on' && ! $usevat)
    +	{
    +		setEventMessages($langs->trans("IfYouUseASecondTaxYouMustSetYouUseTheMainTax"), null, 'errors');
    +		$error++;
    +	}
    +	if ($uselocaltax2 == 'localtax2on' && ! $usevat)
    +	{
    +		setEventMessages($langs->trans("IfYouUseAThirdTaxYouMustSetYouUseTheMainTax"), null, 'errors');
    +		$error++;
    +	}
     
    -	// Local taxes
    -	dolibarr_set_const($db, "FACTURE_LOCAL_TAX1_OPTION", GETPOST("optionlocaltax1",'aZ09'),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "FACTURE_LOCAL_TAX2_OPTION", GETPOST("optionlocaltax2",'aZ09'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "FACTURE_TVAOPTION", $usevat,'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "FACTURE_LOCAL_TAX1_OPTION", $uselocaltax1,'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "FACTURE_LOCAL_TAX2_OPTION", $uselocaltax2,'chaine',0,'',$conf->entity);
     
     	if($_POST["optionlocaltax1"]=="localtax1on")
     	{
    @@ -188,7 +204,7 @@ if ( ($action == 'update' && ! GETPOST("cancel",'alpha'))
     		{
     			dolibarr_set_const($db, "MAIN_INFO_VALUE_LOCALTAX1", GETPOST('lt1','aZ09'),'chaine',0,'',$conf->entity);
     		}
    -		dolibarr_set_const($db,"MAIN_INFO_LOCALTAX_CALC1",  GETPOST("clt1",'aZ09'),'chaine',0,'',$conf->entity);
    +		dolibarr_set_const($db,"MAIN_INFO_LOCALTAX_CALC1", GETPOST("clt1",'aZ09'),'chaine',0,'',$conf->entity);
     	}
     	if($_POST["optionlocaltax2"]=="localtax2on")
     	{
    @@ -200,7 +216,16 @@ if ( ($action == 'update' && ! GETPOST("cancel",'alpha'))
     		{
     			dolibarr_set_const($db, "MAIN_INFO_VALUE_LOCALTAX2", GETPOST('lt2','aZ09'),'chaine',0,'',$conf->entity);
     		}
    -		dolibarr_set_const($db,"MAIN_INFO_LOCALTAX_CALC2",  GETPOST("clt2",'aZ09'),'chaine',0,'',$conf->entity);
    +		dolibarr_set_const($db,"MAIN_INFO_LOCALTAX_CALC2", GETPOST("clt2",'aZ09'),'chaine',0,'',$conf->entity);
    +	}
    +
    +	if (! $error)
    +	{
    +		$db->commit();
    +	}
    +	else
    +	{
    +		$db->rollback();
     	}
     
     	if ($action != 'updateedit' && ! $error)
    @@ -397,7 +422,7 @@ if ($action == 'edit' || $action == 'updateedit')
     		print '<a href="'.$_SERVER["PHP_SELF"].'?action=removelogo">'.img_delete($langs->trans("Delete")).'</a>';
     		if (file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) {
     			print ' &nbsp; ';
    -			print '<img src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('/thumbs/'.$mysoc->logo_mini).'">';
    +			print '<img src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_mini).'">';
     		}
     	} else {
     		print '<img height="30" src="'.DOL_URL_ROOT.'/public/theme/common/nophoto.png">';
    @@ -585,7 +610,7 @@ if ($action == 'edit' || $action == 'updateedit')
     	print '<td colspan="2">';
     	print "<table>";
     	print "<tr><td><label for=\"use_vat\">".$langs->trans("VATIsUsedDesc")."</label></td></tr>";
    -	print "<tr><td><i>".$langs->trans("Example").': '.$langs->trans("VATIsUsedExampleFR")."</i></td></tr>\n";
    +	if ($mysoc->country_code == 'FR') print "<tr><td><i>".$langs->trans("Example").': '.$langs->trans("VATIsUsedExampleFR")."</i></td></tr>\n";
     	print "</table>";
     	print "</td></tr>\n";
     
    @@ -594,7 +619,7 @@ if ($action == 'edit' || $action == 'updateedit')
     	print '<td colspan="2">';
     	print "<table>";
     	print "<tr><td><label for=\"no_vat\">".$langs->trans("VATIsNotUsedDesc")."</label></td></tr>";
    -	print "<tr><td><i>".$langs->trans("Example").': '.$langs->trans("VATIsNotUsedExampleFR")."</i></td></tr>\n";
    +	if ($mysoc->country_code == 'FR') print "<tr><td><i>".$langs->trans("Example").': '.$langs->trans("VATIsNotUsedExampleFR")."</i></td></tr>\n";
     	print "</table>";
     	print "</td></tr>\n";
     
    @@ -622,14 +647,14 @@ if ($action == 'edit' || $action == 'updateedit')
     		print ($example!="LocalTax1IsUsedExample"?"<tr><td><i>".$langs->trans("Example").': '.$langs->transcountry("LocalTax1IsUsedExample",$mysoc->country_code)."</i></td></tr>\n":"");
     		if(! isOnlyOneLocalTax(1))
     		{
    -			print '<tr><td align="left"><label for="lt1">'.$langs->trans("LTRate").'</label>: ';
    +			print '<tr><td class="left"><label for="lt1">'.$langs->trans("LTRate").'</label>: ';
     			$formcompany->select_localtax(1,$conf->global->MAIN_INFO_VALUE_LOCALTAX1, "lt1");
     		    print '</td></tr>';
     		}
     
     		$opcions=array($langs->trans("CalcLocaltax1").' '.$langs->trans("CalcLocaltax1Desc"),$langs->trans("CalcLocaltax2").' - '.$langs->trans("CalcLocaltax2Desc"),$langs->trans("CalcLocaltax3").' - '.$langs->trans("CalcLocaltax3Desc"));
     
    -		print '<tr><td align="left"></label for="clt1">'.$langs->trans("CalcLocaltax").'</label>: ';
    +		print '<tr><td class="left"></label for="clt1">'.$langs->trans("CalcLocaltax").'</label>: ';
     		print $form->selectarray("clt1", $opcions, $conf->global->MAIN_INFO_LOCALTAX_CALC1);
     		print '</td></tr>';
     		print "</table>";
    @@ -666,11 +691,11 @@ if ($action == 'edit' || $action == 'updateedit')
     		print ($example!="LocalTax2IsUsedExample"?"<tr><td><i>".$langs->trans("Example").': '.$langs->transcountry("LocalTax2IsUsedExample",$mysoc->country_code)."</i></td></tr>\n":"");
     		if(! isOnlyOneLocalTax(2))
     		{
    -		    print '<tr><td align="left"><label for="lt2">'.$langs->trans("LTRate").'</label>: ';
    +		    print '<tr><td class="left"><label for="lt2">'.$langs->trans("LTRate").'</label>: ';
     		    $formcompany->select_localtax(2,$conf->global->MAIN_INFO_VALUE_LOCALTAX2, "lt2");
     			print '</td></tr>';
     		}
    -		print '<tr><td align="left"><label for="clt2">'.$langs->trans("CalcLocaltax").'</label>: ';
    +		print '<tr><td class="left"><label for="clt2">'.$langs->trans("CalcLocaltax").'</label>: ';
     		print $form->selectarray("clt2", $opcions, $conf->global->MAIN_INFO_LOCALTAX_CALC2);
     		print '</td></tr>';
     		print "</table>";
    @@ -748,10 +773,11 @@ else
     
     
     	print '<tr class="oddeven"><td>'.$langs->trans("CompanyCurrency").'</td><td>';
    -	print currency_name($conf->currency,1);
    +	print currency_name($conf->currency,0);
     	print ' ('.$conf->currency;
     	print ($conf->currency != $langs->getCurrencySymbol($conf->currency) ? ' - '.$langs->getCurrencySymbol($conf->currency) : '');
     	print ')';
    +	print ' - '.$langs->trans("PriceFormatInCurrentLanguage", $langs->defaultlang).' : '.price(price2num('99.333333333','MT'), 1, $langs, 1, -1, -1, $conf->currency);
     	print '</td></tr>';
     
     
    @@ -765,7 +791,13 @@ else
     
     	// Web
     
    -	print '<tr class="oddeven"><td>'.$langs->trans("Web").'</td><td>' . dol_print_url($conf->global->MAIN_INFO_SOCIETE_WEB,'_blank',80) . '</td></tr>';
    +	print '<tr class="oddeven"><td>'.$langs->trans("Web").'</td><td>';
    +	$arrayofurl = preg_split('/\s/', $conf->global->MAIN_INFO_SOCIETE_WEB);
    +	foreach($arrayofurl as $urltoshow)
    +	{
    +		if ($urltoshow) print dol_print_url($urltoshow,'_blank',80);
    +	}
    +	print '</td></tr>';
     
     	// Barcode
     	if (! empty($conf->barcode->enabled))
    @@ -791,7 +823,7 @@ else
     	}
     	else if ($mysoc->logo_mini && is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini))
     	{
    -		print '<img class="img_logo" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('/thumbs/'.$mysoc->logo_mini).'">';
    +		print '<img class="img_logo" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_mini).'">';
     	}
     	else
     	{
    @@ -1017,7 +1049,7 @@ else
     	print '<td colspan="2">';
     	print "<table>";
     	print "<tr><td><label for=\"use_vat\">".$langs->trans("VATIsUsedDesc")."</label></td></tr>";
    -	print "<tr><td><i>".$langs->trans("Example").': '.$langs->trans("VATIsUsedExampleFR")."</i></td></tr>\n";
    +	if ($mysoc->country_code == 'FR') print "<tr><td><i>".$langs->trans("Example").': '.$langs->trans("VATIsUsedExampleFR")."</i></td></tr>\n";
     	print "</table>";
     	print "</td></tr>\n";
     
    @@ -1027,7 +1059,7 @@ else
     	print '<td colspan="2">';
     	print "<table>";
     	print "<tr><td><label=\"no_vat\">".$langs->trans("VATIsNotUsedDesc")."</label></td></tr>";
    -	print "<tr><td><i>".$langs->trans("Example").': '.$langs->trans("VATIsNotUsedExampleFR")."</i></td></tr>\n";
    +	if ($mysoc->country_code == 'FR') print "<tr><td><i>".$langs->trans("Example").': '.$langs->trans("VATIsNotUsedExampleFR")."</i></td></tr>\n";
     	print "</table>";
     	print "</td></tr>\n";
     
    @@ -1060,7 +1092,7 @@ else
     		{
     			print '<tr><td>'.$langs->trans("LTRate").': '. $conf->global->MAIN_INFO_VALUE_LOCALTAX1 .'</td></tr>';
     		}
    -		print '<tr><td align="left">'.$langs->trans("CalcLocaltax").': ';
    +		print '<tr><td class="left">'.$langs->trans("CalcLocaltax").': ';
     		if($conf->global->MAIN_INFO_LOCALTAX_CALC1==0)
     		{
     			print $langs->trans("CalcLocaltax1").' - '.$langs->trans("CalcLocaltax1Desc");
    @@ -1114,7 +1146,7 @@ else
     		{
     			print '<tr><td>'.$langs->trans("LTRate").': '. $conf->global->MAIN_INFO_VALUE_LOCALTAX2 .'</td></tr>';
     		}
    -		print '<tr><td align="left">'.$langs->trans("CalcLocaltax").': ';
    +		print '<tr><td class="left">'.$langs->trans("CalcLocaltax").': ';
     		if($conf->global->MAIN_INFO_LOCALTAX_CALC2==0)
     		{
     			print $langs->trans("CalcLocaltax1").' - '.$langs->trans("CalcLocaltax1Desc");
    @@ -1153,7 +1185,6 @@ else
     	print '</div>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/compta.php b/htdocs/admin/compta.php
    index 8e17541bfef..86d96227f3c 100644
    --- a/htdocs/admin/compta.php
    +++ b/htdocs/admin/compta.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2013 Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2013-2017 Philippe Grand	    <philippe.grand@atoo-net.com>
      * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
    @@ -164,5 +164,6 @@ print "</table>\n";
     print '<br><br><div style="text-align:center"><input type="submit" class="button" value="'.$langs->trans('Modify').'" name="button"></div>';
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/confexped.php b/htdocs/admin/confexped.php
    index e4691a42e78..660f7c7c500 100644
    --- a/htdocs/admin/confexped.php
    +++ b/htdocs/admin/confexped.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
      * Copyright (C) 2011-2016 Juanjo Menent		<jmenent@2byte.es>ù
      * Copyright (C) 2015      Claudio Aschieri     <c.aschieri@19.coop>
    @@ -147,5 +147,6 @@ print '</table>';
     
     print '</div>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/const.php b/htdocs/admin/const.php
    index 9dd68c16326..cfda870e9da 100644
    --- a/htdocs/admin/const.php
    +++ b/htdocs/admin/const.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Juanjo Menent			<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -314,7 +314,6 @@ if ($conf->use_javascript_ajax)
     
     print "</form>\n";
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/contract.php b/htdocs/admin/contract.php
    index 74f7acb04f3..60be9e062ba 100644
    --- a/htdocs/admin/contract.php
    +++ b/htdocs/admin/contract.php
    @@ -509,7 +509,6 @@ print '</form>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/dav.php b/htdocs/admin/dav.php
    index ea4bbf97af0..51f68ffb7ff 100644
    --- a/htdocs/admin/dav.php
    +++ b/htdocs/admin/dav.php
    @@ -83,7 +83,16 @@ if ($action == 'edit')
     
     		print '<tr class="oddeven"><td>';
     		print $form->textwithpicto($langs->trans($key), $langs->trans($key.'Tooltip'));
    -		print '</td><td><input name="'.$key.'"  class="flat '.(empty($val['css'])?'minwidth200':$val['css']).'" value="' . $conf->global->$key . '"></td></tr>';
    +		print '</td><td>';
    +		if ($key == 'DAV_ALLOW_PUBLIC_DIR' || $key == 'DAV_ALLOW_ECM_DIR')
    +		{
    +			print $form->selectyesno($key, $conf->global->$key, 1);
    +		}
    +		else
    +		{
    +			print '<input name="'.$key.'"  class="flat '.(empty($val['css'])?'minwidth200':$val['css']).'" value="' . $conf->global->$key . '">';
    +		}
    +		print '</td></tr>';
     	}
     
     	print '</table>';
    @@ -104,7 +113,16 @@ else
     	{
     		print '<tr class="oddeven"><td>';
     		print $form->textwithpicto($langs->trans($key),$langs->trans($key.'Tooltip'));
    -		print '</td><td>' . $conf->global->$key . '</td></tr>';
    +		print '</td><td>';
    +		if ($key == 'DAV_ALLOW_PUBLIC_DIR' || $key == 'DAV_ALLOW_ECM_DIR')
    +		{
    +			print yn($conf->global->$key);
    +		}
    +		else
    +		{
    +			print $conf->global->$key;
    +		}
    +		print '</td></tr>';
     	}
     
     	print '</table>';
    @@ -141,8 +159,15 @@ $message='';
     $url='<a href="'.$urlwithroot.'/dav/fileserver.php" target="_blank">'.$urlwithroot.'/dav/fileserver.php</a>';
     $message.=img_picto('','object_globe.png').' '.$langs->trans("WebDavServer",'WebDAV',$url);
     $message.='<br>';
    +if (! empty($conf->global->DAV_ALLOW_PUBLIC_DIR))
    +{
    +	$urlEntity = (! empty($conf->multicompany->enabled)?'?entity='.$conf->entity:'');
    +	$url='<a href="'.$urlwithroot.'/dav/fileserver.php/public/'.$urlEntity.'" target="_blank">'.$urlwithroot.'/dav/fileserver.php/public/'.$urlEntity.'</a>';
    +	$message.=img_picto('','object_globe.png').' '.$langs->trans("WebDavServer",'WebDAV public',$url);
    +	$message.='<br>';
    +}
     print $message;
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/defaultvalues.php b/htdocs/admin/defaultvalues.php
    index 6d56ba415c1..dcd6548b498 100644
    --- a/htdocs/admin/defaultvalues.php
    +++ b/htdocs/admin/defaultvalues.php
    @@ -1,6 +1,6 @@
     <?php
    -/* Copyright (C) 2017		Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2017-2018	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2017-2018	Laurent Destailleur	<eldy@users.sourceforge.net>
    + * Copyright (C) 2017-2018	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -17,8 +17,13 @@
      */
     
     /**
    - *       \file       htdocs/admin/defaultvalues.php
    - *       \brief      Page to set default values used used in a create form
    + *       \file      htdocs/admin/defaultvalues.php
    + *       \brief     Page to set default values used used in a create form
    + *       			Default values are stored into $user->default_values[url]['createform']['querystring'|'_noquery_'][paramkey]=paramvalue
    + *       			Default filters are stored into $user->default_values[url]['filters']['querystring'|'_noquery_'][paramkey]=paramvalue
    + *       			Default sort order are stored into $user->default_values[url]['sortorder']['querystring'|'_noquery_'][paramkey]=paramvalue
    + *       			Default focus are stored into $user->default_values[url]['focus']['querystring'|'_noquery_'][paramkey]=paramvalue
    + *       			Mandatory fields are stored into $user->default_values[url]['mandatory']['querystring'|'_noquery_'][paramkey]=paramvalue
      */
     
     require '../main.inc.php';
    @@ -230,9 +235,9 @@ if ($mode == 'sortorder')
     {
         print info_admin($langs->trans("WarningSettingSortOrder")).'<br>';
     }
    -if ($mode == 'focus')
    +if ($mode == 'mandatory')
     {
    -    print info_admin($langs->trans("FeatureNotYetAvailable")).'<br>';
    +	print info_admin($langs->trans("FeatureSupportedOnTextFieldsOnly")).'<br>';
     }
     
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    @@ -245,7 +250,7 @@ print '<tr class="liste_titre">';
     // Page
     $texthelp=$langs->trans("PageUrlForDefaultValues");
     if ($mode == 'createform') $texthelp.=$langs->trans("PageUrlForDefaultValuesCreate", 'societe/card.php', 'societe/card.php?abc=val1&def=val2');
    -else $texthelp.=$langs->trans("PageUrlForDefaultValuesList", 'societe/list.php', 'societe/card.php?abc=val1&def=val2');
    +else $texthelp.=$langs->trans("PageUrlForDefaultValuesList", 'societe/list.php', 'societe/list.php?abc=val1&def=val2');
     $texturl=$form->textwithpicto($langs->trans("Url"), $texthelp);
     print_liste_field_titre($texturl,$_SERVER["PHP_SELF"],'page,param','',$param,'',$sortfield,$sortorder);
     // Field
    @@ -261,7 +266,7 @@ else
     }
     print_liste_field_titre($textkey,$_SERVER["PHP_SELF"],'param','',$param,'',$sortfield,$sortorder);
     // Value
    -if ($mode != 'focus')
    +if ($mode != 'focus' && $mode != 'mandatory')
     {
         if ($mode != 'sortorder')
         {
    @@ -283,8 +288,9 @@ if ($mode != 'focus')
     }
     // Entity
     if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre("Entity",$_SERVER["PHP_SELF"],'entity,page','',$param,'',$sortfield,$sortorder);
    +else print_liste_field_titre("",$_SERVER["PHP_SELF"],'','',$param,'',$sortfield,$sortorder);
     // Actions
    -print '<td align="center"></td>';
    +print_liste_field_titre("",$_SERVER["PHP_SELF"],'','',$param,'',$sortfield,$sortorder);
     print "</tr>\n";
     
     
    @@ -294,14 +300,14 @@ print "\n";
     print '<tr class="oddeven">';
     // Page
     print '<td>';
    -print '<input type="text" class="flat minwidth200 maxwidthonsmartphone" name="defaulturl" value="">';
    +print '<input type="text" class="flat minwidth200 maxwidthonsmartphone" name="defaulturl" value="'.dol_escape_htmltag(GETPOST('defaulturl','alphanohtml')).'">';
     print '</td>'."\n";
     // Field
     print '<td>';
    -print '<input type="text" class="flat maxwidth100onsmartphone" name="defaultkey" value="">';
    +print '<input type="text" class="flat maxwidth100onsmartphone" name="defaultkey" value="'.dol_escape_htmltag(GETPOST('defaultkey','alphanohtml')).'">';
     print '</td>';
     // Value
    -if ($mode != 'focus')
    +if ($mode != 'focus' && $mode != 'mandatory')
     {
         print '<td>';
         print '<input type="text" class="flat maxwidth100onsmartphone" name="defaultvalue" value="">';
    @@ -311,15 +317,16 @@ if ($mode != 'focus')
     if (! empty($conf->multicompany->enabled) && !$user->entity)
     {
     	print '<td>';
    -	print '<input type="text" class="flat" size="1" name="entity" value="'.$conf->entity.'">';
    +	print '<input type="text" class="flat" size="1" disabled name="entity" value="'.$conf->entity.'">';	// We see environment, but to change it we must switch on other entity
     	print '</td>';
    -	print '<td align="center">';
     }
     else
     {
     	print '<td align="center">';
     	print '<input type="hidden" name="entity" value="'.$conf->entity.'">';
    +	print '</td>';
     }
    +print '<td align="center">';
     $disabled='';
     if (empty($conf->global->MAIN_ENABLE_DEFAULT_VALUES)) $disabled=' disabled="disabled"';
     print '<input type="submit" class="button"'.$disabled.' value="'.$langs->trans("Add").'" name="add">';
    @@ -363,7 +370,7 @@ if ($result)
     		print '</td>'."\n";
     
     		// Value
    -		if ($mode != 'focus')
    +		if ($mode != 'focus' && $mode != 'mandatory')
     		{
         		print '<td>';
         		/*print '<input type="hidden" name="const['.$i.'][rowid]" value="'.$obj->rowid.'">';
    @@ -417,7 +424,6 @@ dol_fiche_end();
     
     print "</form>\n";
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/delais.php b/htdocs/admin/delais.php
    index ae3c43c5b24..a48be10b4e0 100644
    --- a/htdocs/admin/delais.php
    +++ b/htdocs/admin/delais.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2004  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2005       Simon Tosser            <simon@kornog-computing.com>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2016       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -122,6 +122,13 @@ $modules=array(
     		),
     );
     
    +$labelmeteo = array(0=>$langs->trans("No"), 1=>$langs->trans("Yes"), 2=>$langs->trans("OnMobileOnly"));
    +
    +
    +/*
    + * Actions
    + */
    +
     if ($action == 'update')
     {
     	foreach($modules as $module => $delays)
    @@ -148,7 +155,6 @@ if ($action == 'update')
     	for($i=0; $i<4; $i++) {
         	if(isset($_POST['MAIN_METEO'.$plus.'_LEVEL'.$i])) dolibarr_set_const($db, 'MAIN_METEO'.$plus.'_LEVEL'.$i, GETPOST('MAIN_METEO'.$plus.'_LEVEL'.$i, 'int'),'chaine',0,'',$conf->entity);
         }
    -
     }
     
     
    @@ -201,9 +207,10 @@ if ($action == 'edit')
     	print '<table class="noborder" width="100%">';
     	print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td class="center" width="120px">'.$langs->trans("Value").'</td></tr>';
     
    -	$var=false;
     	print '<tr class="oddeven">';
    -	print '<td>'.$langs->trans("MAIN_DISABLE_METEO").'</td><td class="center">' .$form->selectyesno('MAIN_DISABLE_METEO',(empty($conf->global->MAIN_DISABLE_METEO)?0:1),1) . '</td></tr>';
    +	print '<td>'.$langs->trans("MAIN_DISABLE_METEO").'</td><td class="center">';
    +	print $form->selectarray('MAIN_DISABLE_METEO', $labelmeteo, (empty($conf->global->MAIN_DISABLE_METEO)?0:$conf->global->MAIN_DISABLE_METEO));
    +	print '</td></tr>';
     
     	print '</table>';
     }
    @@ -241,10 +248,11 @@ else
     	print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td class="center" width="120px">'.$langs->trans("Value").'</td></tr>';
     
     	print '<tr class="oddeven">';
    -	print '<td>'.$langs->trans("MAIN_DISABLE_METEO").'</td><td class="center">' . yn($conf->global->MAIN_DISABLE_METEO) . '</td></tr>';
    +	print '<td>'.$langs->trans("MAIN_DISABLE_METEO").'</td><td class="center">';
    +	print $labelmeteo[$conf->global->MAIN_DISABLE_METEO];
    +	print '</td></tr>';
     
     	print '</table>';
    -
     }
     
     print '<br>';
    @@ -262,7 +270,6 @@ if($action == 'edit') {
     	print '<input type="hidden" id="MAIN_USE_METEO_WITH_PERCENTAGE" name="MAIN_USE_METEO_WITH_PERCENTAGE" value="'.$conf->global->MAIN_USE_METEO_WITH_PERCENTAGE.'" />';
     
     	print '<br><br>';
    -
     } else {
     	if(empty($conf->global->MAIN_USE_METEO_WITH_PERCENTAGE)) print $langs->trans('MeteoStdModEnabled');
     	else print $langs->trans('MeteoPercentageModEnabled');
    @@ -352,7 +359,6 @@ if ($action == 'edit') {
     	</script>
     
     	<?php
    -
     } else {
     
     	if(!empty($conf->global->MAIN_USE_METEO_WITH_PERCENTAGE)) {
    @@ -375,7 +381,6 @@ if ($action == 'edit') {
     		print '&gt; '.$conf->global->MAIN_METEO_PERCENTAGE_LEVEL3.'&nbsp;%</td>';
     		print '</div>';
     		print '</div>';
    -
     	} else {
     
     		print '<div>';
    @@ -396,7 +401,6 @@ if ($action == 'edit') {
     		print '&gt; '.$level3;
     		print '</div>';
     		print '</div>';
    -
     	}
     }
     
    @@ -406,14 +410,13 @@ if($action == 'edit') {
     
     	print '<br><div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
     	print '<br></form>';
    -
     } else {
     
     	// Boutons d'action
     	print '<br><div class="tabsAction">';
     	print '<a class="butAction" href="delais.php?action=edit">'.$langs->trans("Modify").'</a></div>';
    -
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php
    index e1e0c0d419e..fc3b8f15f39 100644
    --- a/htdocs/admin/dict.php
    +++ b/htdocs/admin/dict.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2010-2016	Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2011-2015	Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2011		Remy Younes				<ryounes@gmail.com>
    @@ -423,7 +423,7 @@ $tabcond[14]= (! empty($conf->product->enabled) && (! empty($conf->ecotax->enabl
     $tabcond[15]= true;
     $tabcond[16]= (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS));
     $tabcond[17]= (! empty($conf->deplacement->enabled) || ! empty($conf->expensereport->enabled));
    -$tabcond[18]= ! empty($conf->expedition->enabled);
    +$tabcond[18]= ! empty($conf->expedition->enabled) || ! empty($conf->reception->enabled);
     $tabcond[19]= ! empty($conf->societe->enabled);
     $tabcond[20]= ! empty($conf->fournisseur->enabled);
     $tabcond[21]= ! empty($conf->propal->enabled);
    @@ -456,7 +456,7 @@ $tabhelp[8]  = array('code'=>$langs->trans("EnterAnyCode"), 'position'=>$langs->
     $tabhelp[9]  = array('code'=>$langs->trans("EnterAnyCode"), 'unicode'=>$langs->trans("UnicodeCurrency"));
     $tabhelp[10] = array('code'=>$langs->trans("EnterAnyCode"), 'taux'=>$langs->trans("SellTaxRate"), 'recuperableonly'=>$langs->trans("RecuperableOnly"), 'localtax1_type'=>$langs->trans("LocalTaxDesc"), 'localtax2_type'=>$langs->trans("LocalTaxDesc"));
     $tabhelp[11] = array('code'=>$langs->trans("EnterAnyCode"), 'position'=>$langs->trans("PositionIntoComboList"));
    -$tabhelp[12] = array('code'=>$langs->trans("EnterAnyCode"), 'type_cdr'=>$langs->trans("TypeCdr"));
    +$tabhelp[12] = array('code'=>$langs->trans("EnterAnyCode"), 'type_cdr'=>$langs->trans("TypeCdr", $langs->transnoentitiesnoconv("NbOfDays"), $langs->transnoentitiesnoconv("Offset"), $langs->transnoentitiesnoconv("NbOfDays"), $langs->transnoentitiesnoconv("Offset")));
     $tabhelp[13] = array('code'=>$langs->trans("EnterAnyCode"));
     $tabhelp[14] = array('code'=>$langs->trans("EnterAnyCode"));
     $tabhelp[15] = array('code'=>$langs->trans("EnterAnyCode"));
    @@ -592,7 +592,7 @@ if ($id == 10)
      * Actions
      */
     
    -if (GETPOST('button_removefilter') || GETPOST('button_removefilter.x') || GETPOST('button_removefilter_x'))
    +if (GETPOST('button_removefilter', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter_x', 'alpha'))
     {
         $search_country_id = '';
         $search_code = '';
    @@ -705,7 +705,6 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
                 {
                     $obj = $db->fetch_object($result);
                     $newid=($obj->newid + 1);
    -
                 } else {
                     dol_print_error($db);
                 }
    @@ -950,8 +949,8 @@ if (empty($id))
     {
         print $langs->trans("DictionaryDesc");
         print " ".$langs->trans("OnlyActiveElementsAreShown")."<br>\n";
    +    print '<br>';
     }
    -print "<br>\n";
     
     
     $param = '&id='.urlencode($id);
    @@ -1016,6 +1015,13 @@ if ($id)
         print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
         print '<input type="hidden" name="from" value="'.dol_escape_htmltag(GETPOST('from','alpha')).'">';
     
    +    if ($id == 10 && empty($conf->global->FACTURE_TVAOPTION))
    +    {
    +    	print info_admin($langs->trans("VATIsUsedIsOff", $langs->transnoentities("Setup"), $langs->transnoentities("CompanyFoundation")));
    +    }
    +
    +    print "<br>\n";
    +
         // Form to add a new line
         if ($tabname[$id])
         {
    @@ -1735,7 +1741,7 @@ else
     
     print '<br>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/admin/dolistore/ajax/image.php b/htdocs/admin/dolistore/ajax/image.php
    index 14d05a036e8..c1bb4e997dc 100644
    --- a/htdocs/admin/dolistore/ajax/image.php
    +++ b/htdocs/admin/dolistore/ajax/image.php
    @@ -20,22 +20,11 @@ if (!defined('REQUIRE_JQUERY_BLOCKUI')) define('REQUIRE_JQUERY_BLOCKUI', 1);
     
     
     /**
    - *      \file       htdocs/commande/info.php
    - *      \ingroup    commande
    - * 		\brief      Page des informations d'une commande
    + *      \file       htdocs/admin/dolistore/ajax/image.php
    + *      \ingroup    admin
    + *      \brief      Page des informations dolistore
      */
    -$res = 0;
    -if (!$res && file_exists("../main.inc.php")) $res = @include("../main.inc.php");
    -if (!$res && file_exists("../../main.inc.php")) $res = @include("../../main.inc.php");
    -if (!$res && file_exists("../../../main.inc.php")) $res = @include("../../../main.inc.php");
    -if (!$res && file_exists("../../../../main.inc.php")) $res = @include("../../../../main.inc.php");
    -if (!$res && file_exists("../../../dolibarr/htdocs/main.inc.php"))
    -        $res = @include("../../../dolibarr/htdocs/main.inc.php");     // Used on dev env only
    -if (!$res && file_exists("../../../../dolibarr/htdocs/main.inc.php"))
    -        $res = @include("../../../../dolibarr/htdocs/main.inc.php");   // Used on dev env only
    -if (!$res && file_exists("../../../../../dolibarr/htdocs/main.inc.php"))
    -        $res = @include("../../../../../dolibarr/htdocs/main.inc.php");   // Used on dev env only
    -if (!$res) die("Include of main fails");
    +require "../../../main.inc.php";
     
     // CORE
     
    @@ -52,8 +41,10 @@ $quality    = GETPOST('quality', 'alpha');
     
     try {
         $url = $conf->global->MAIN_MODULE_DOLISTORE_API_SRV.'/api/images/products/'.$id_product.'/'.$id_image.'/'.$quality;
    -    $api        = new PrestaShopWebservice($conf->global->MAIN_MODULE_DOLISTORE_API_SRV,
    -        $conf->global->MAIN_MODULE_DOLISTORE_API_KEY, $dolistore->debug_api);
    +    $api = new PrestaShopWebservice(
    +        $conf->global->MAIN_MODULE_DOLISTORE_API_SRV,
    +        $conf->global->MAIN_MODULE_DOLISTORE_API_KEY, $dolistore->debug_api
    +    );
         //echo $url;
         $request = $api->executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'GET'));
         header('Content-type:image');
    @@ -65,4 +56,3 @@ try {
         else if ($trace[0]['args'][0] == 401) die('Bad auth key');
         else die('Can not access to '.$conf->global->MAIN_MODULE_DOLISTORE_API_SRV);
     }
    -
    diff --git a/htdocs/admin/dolistore/class/PSWebServiceLibrary.class.php b/htdocs/admin/dolistore/class/PSWebServiceLibrary.class.php
    index de3ca683519..c8fcd061689 100644
    --- a/htdocs/admin/dolistore/class/PSWebServiceLibrary.class.php
    +++ b/htdocs/admin/dolistore/class/PSWebServiceLibrary.class.php
    @@ -53,7 +53,7 @@ class PrestaShopWebservice
     	 * PrestaShopWebservice constructor. Throw an exception when CURL is not installed/activated
     	 * <code>
     	 * <?php
    -	 * require_once('./PrestaShopWebservice.php');
    +	 * require_once './PrestaShopWebservice.php';
     	 * try
     	 * {
     	 * 	$ws = new PrestaShopWebservice('http://mystore.com/', 'ZQ88PRJX5VWQHCWE4EE7SQ7HPNX00RAJ', false);
    @@ -69,7 +69,8 @@ class PrestaShopWebservice
     	 * @param string $key Authentification key
     	 * @param mixed $debug Debug mode Activated (true) or deactivated (false)
     	*/
    -	function __construct($url, $key, $debug = true) {
    +    function __construct($url, $key, $debug = true)
    +    {
     		if (!extension_loaded('curl'))
     		  throw new PrestaShopWebserviceException('Please activate the PHP extension \'curl\' to allow use of PrestaShop webservice library');
     		$this->url = $url;
    @@ -82,6 +83,7 @@ class PrestaShopWebservice
     	 * Take the status code and throw an exception if the server didn't return 200 or 201 code
     	 *
     	 * @param int $status_code Status code of an HTTP return
    +     * @return void
     	 */
     	protected function checkStatusCode($status_code)
     	{
    @@ -175,7 +177,6 @@ class PrestaShopWebservice
     		{
     			$this->printDebug('HTTP REQUEST HEADER', curl_getinfo($session, CURLINFO_HEADER_OUT));
     			$this->printDebug('HTTP RESPONSE HEADER', $header);
    -
     		}
     		$status_code = curl_getinfo($session, CURLINFO_HTTP_CODE);
     		if ($status_code === 0)
    @@ -279,7 +280,7 @@ class PrestaShopWebservice
     	 * </p>
     	 * <code>
     	 * <?php
    -	 * require_once('./PrestaShopWebservice.php');
    +	 * require_once './PrestaShopWebservice.php';
     	 * try
     	 * {
     	 * $ws = new PrestaShopWebservice('http://mystore.com/', 'ZQ88PRJX5VWQHCWE4EE7SQ7HPNX00RAJ', false);
    @@ -383,7 +384,7 @@ class PrestaShopWebservice
     		else
     			throw new PrestaShopWebserviceException('Bad parameters given');
     
    -		$request = self::executeRequest($url,  array(CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS => $xml));
    +		$request = self::executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS => $xml));
     		self::checkStatusCode($request['status_code']);// check the response validity
     		return self::parseXML($request['response']);
     	}
    diff --git a/htdocs/admin/dolistore/class/dolistore.class.php b/htdocs/admin/dolistore/class/dolistore.class.php
    index 660886c835d..553ce2e54e0 100644
    --- a/htdocs/admin/dolistore/class/dolistore.class.php
    +++ b/htdocs/admin/dolistore/class/dolistore.class.php
    @@ -25,9 +25,18 @@ include_once DOL_DOCUMENT_ROOT.'/admin/dolistore/class/PSWebServiceLibrary.class
      */
     class Dolistore
     {
    -	// params
    -	public $start;       // beginning of pagination
    -	public $end;         // end of pagination
    +    /**
    +     * beginning of pagination
    +     * @var int
    +     */
    +
    +     public $start;
    +    /**
    +     * end of pagination
    +     * @var int
    +     */
    +    public $end;
    +
     	public $per_page;    // pagination: display per page
     	public $categorie;   // the current categorie
     	public $search;      // the search keywords
    @@ -56,7 +65,7 @@ class Dolistore
     
     		$langtmp    = explode('_', $langs->defaultlang);
     		$lang       = $langtmp[0];
    -		$lang_array = array('en'=>1, 'fr'=>2, 'es'=>3, 'it'=>4, 'de'=>5);	// Into table ps_lang of Prestashop - 1
    +		$lang_array = array('en'=>0, 'fr'=>1, 'es'=>2, 'it'=>3, 'de'=>4);	// Into table ps_lang of Prestashop - 1
     		if (! in_array($lang, array_keys($lang_array))) $lang = 'en';
     		$this->lang = $lang_array[$lang];
     	}
    @@ -154,6 +163,7 @@ class Dolistore
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return tree of Dolistore categories. $this->categories must have been loaded before.
     	 *
    @@ -162,6 +172,7 @@ class Dolistore
     	 */
     	function get_categories($parent = 0)
     	{
    +        // phpcs:enable
     		if (!isset($this->categories)) die('not possible');
     		if ($parent != 0) {
     			$html = '<ul>';
    @@ -201,6 +212,7 @@ class Dolistore
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return list of product formated for output
     	 *
    @@ -208,6 +220,7 @@ class Dolistore
     	 */
     	function get_products()
     	{
    +        // phpcs:enable
     		global $langs, $conf;
     		$html       = "";
     		$parity     = "pair";
    @@ -282,18 +295,41 @@ class Dolistore
     		return $html;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * get previous link
    +     *
    +     * @param   string    $text     symbol previous
    +     * @return  string              html previous link
    +     */
     	function get_previous_link($text = '<<')
     	{
    +        // phpcs:enable
     		return '<a href="'.$this->get_previous_url().'" class="button">'.$text.'</a>';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * get next link
    +     *
    +     * @param   string    $text     symbol next
    +     * @return  string              html next link
    +     */
     	function get_next_link($text = '>>')
     	{
    +        // phpcs:enable
     		return '<a href="'.$this->get_next_url().'" class="button">'.$text.'</a>';
     	}
     
    -	function get_previous_url()
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +   /**
    +     * get previous url
    +     *
    +     * @return string    previous url
    +     */
    +    function get_previous_url()
     	{
    +        // phpcs:enable
     		$param_array = array();
     		if ($this->start < $this->per_page) {
     			$sub = 0;
    @@ -309,8 +345,15 @@ class Dolistore
     		return $this->url."&".$param;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * get next url
    +     *
    +     * @return string    next url
    +     */
     	function get_next_url()
     	{
    +        // phpcs:enable
     		$param_array = array();
     		if (count($this->products) < $this->per_page) {
     			$add = 0;
    @@ -326,8 +369,17 @@ class Dolistore
     		return $this->url."&".$param;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * version compare
    +     *
    +     * @param   string  $v1     version 1
    +     * @param   string  $v2     version 2
    +     * @return int              result of compare
    +     */
     	function version_compare($v1, $v2)
     	{
    +        // phpcs:enable
     		$v1       = explode('.', $v1);
     		$v2       = explode('.', $v2);
     		$ret      = 0;
    @@ -355,4 +407,3 @@ class Dolistore
     		return $ret;
     	}
     }
    -
    diff --git a/htdocs/admin/dolistore/css/dolistore.css b/htdocs/admin/dolistore/css/dolistore.css
    index bba808a21a0..fb4dc2d5bb1 100644
    --- a/htdocs/admin/dolistore/css/dolistore.css
    +++ b/htdocs/admin/dolistore/css/dolistore.css
    @@ -6,10 +6,10 @@ div.divsearchfield {
     }
     
     .margeCoteGauche,.margeCote{
    -    padding-right: 20px!important;   
    +    padding-right: 20px!important;
     }
     .margeCote,.margeCoteDroite{
    -    padding-left: 20px!important;    
    +    padding-left: 20px!important;
     }
     .nomargesupinf{
         margin-top: 0;
    @@ -26,13 +26,13 @@ div.divsearchfield {
         width: 100%;
     }
     .tree{
    -    margin: 0px 0px 0px 0px; 
    +    margin: 0px 0px 0px 0px;
         padding:0px;
         list-style: none; line-height: 2em; font-family: Arial;
     }
     .tree li{
         font-size: 16px;
    -    position: relative;list-style: none; 
    +    position: relative;list-style: none;
     }
     .tree li:before{
         position: absolute;
    @@ -65,7 +65,7 @@ div.divsearchfield {
     .tree li.root:after{
         display: none;
     }
    -.tree li:last-child:after{ 
    +.tree li:last-child:after{
         display: none
     }
     .blockUI {
    @@ -159,7 +159,7 @@ textarea.row4{
     
     .reviewList {
         max-height: 150px;
    -    overflow-y: scroll; 
    +    overflow-y: scroll;
     }
     
     .reviewRow{
    diff --git a/htdocs/admin/ecm.php b/htdocs/admin/ecm.php
    index dc2f3e489f7..3126f432938 100644
    --- a/htdocs/admin/ecm.php
    +++ b/htdocs/admin/ecm.php
    @@ -109,5 +109,6 @@ print '</td></tr>';
     
     print '</table>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/emailcollector_card.php b/htdocs/admin/emailcollector_card.php
    new file mode 100644
    index 00000000000..eaef18c9543
    --- /dev/null
    +++ b/htdocs/admin/emailcollector_card.php
    @@ -0,0 +1,621 @@
    +<?php
    +/* Copyright (C) 2018 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *   	\file       htdocs/admin/emailcollector_card.php
    + *		\ingroup    emailcollector
    + *		\brief      Page to create/edit/view emailcollector
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/events.class.php';
    +
    +include_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
    +include_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    +include_once DOL_DOCUMENT_ROOT.'/emailcollector/class/emailcollector.class.php';
    +include_once DOL_DOCUMENT_ROOT.'/emailcollector/class/emailcollectorfilter.class.php';
    +include_once DOL_DOCUMENT_ROOT.'/emailcollector/class/emailcollectoraction.class.php';
    +include_once DOL_DOCUMENT_ROOT.'/emailcollector/lib/emailcollector.lib.php';
    +
    +if (!$user->admin)
    +	accessforbidden();
    +
    +// Load traductions files requiredby by page
    +$langs->loadLangs(array("admin", "mails", "other"));
    +
    +// Get parameters
    +$id			= GETPOST('id', 'int');
    +$ref        = GETPOST('ref', 'alpha');
    +$action		= GETPOST('action', 'aZ09');
    +$confirm    = GETPOST('confirm', 'alpha');
    +$cancel     = GETPOST('cancel', 'aZ09');
    +$contextpage= GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'myobjectcard';   // To manage different context of search
    +$backtopage = GETPOST('backtopage', 'alpha');
    +
    +// Initialize technical objects
    +$object = new EmailCollector($db);
    +$extrafields = new ExtraFields($db);
    +$diroutputmassaction = $conf->emailcollector->dir_output . '/temp/massgeneration/' . $user->id;
    +$hookmanager->initHooks(array('emailcollectorcard')); // Note that conf->hooks_modules contains array
    +// Fetch optionals attributes and labels
    +$extralabels = $extrafields->fetch_name_optionals_label('emailcollector');
    +$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_');
    +
    +// Initialize array of search criterias
    +$search_all = trim(GETPOST("search_all", 'alpha'));
    +$search = array();
    +foreach ($object->fields as $key => $val) {
    +	if (GETPOST('search_'.$key,'alpha')) $search[$key]=GETPOST('search_'.$key,'alpha');
    +}
    +
    +if (empty($action) && empty($id) && empty($ref)) $action='view';
    +
    +// Load object
    +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php';  // Must be include, not include_once  // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals
    +
    +// Security check - Protection if external user
    +//if ($user->societe_id > 0) access_forbidden();
    +//if ($user->societe_id > 0) $socid = $user->societe_id;
    +//$isdraft = (($object->statut == MyObject::STATUS_DRAFT) ? 1 : 0);
    +//$result = restrictedArea($user, 'mymodule', $object->id, '', '', 'fk_soc', 'rowid', $isdraft);
    +
    +
    +/*
    + * Actions
    + */
    +
    +$parameters = array();
    +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +if (empty($reshook))
    +{
    +	$error = 0;
    +
    +	$permissiontoadd=1;
    +	$permissiontodelete=1;
    +	if (empty($backtopage)) $backtopage = DOL_URL_ROOT.'/admin/emailcollector_card.php?id='.($id > 0 ? $id : '__ID__');
    +	$backurlforlist = DOL_URL_ROOT.'/admin/emailcollector_list.php';
    +
    +	// Actions cancel, add, update, delete or clone
    +	include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php';
    +
    +	// Actions when linking object each other
    +	include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php';		// Must be include, not include_once
    +
    +	// Actions when printing a doc from card
    +	include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
    +}
    +
    +if (GETPOST('addfilter','alpha'))
    +{
    +	$emailcollectorfilter = new EmailCollectorFilter($db);
    +	$emailcollectorfilter->type = GETPOST('filtertype','az09');
    +	$emailcollectorfilter->rulevalue = GETPOST('rulevalue', 'alpha');
    +	$emailcollectorfilter->fk_emailcollector = $object->id;
    +	$emailcollectorfilter->status = 1;
    +	$result = $emailcollectorfilter->create($user);
    +
    +	if ($result > 0)
    +	{
    +		$object->fetchFilters();
    +	}
    +	else
    +	{
    +		setEventMessages($emailcollectorfilter->errors, $emailcollectorfilter->error, 'errors');
    +	}
    +}
    +
    +if ($action == 'deletefilter')
    +{
    +	$emailcollectorfilter = new EmailCollectorFilter($db);
    +	$emailcollectorfilter->fetch(GETPOST('filterid','int'));
    +	$result = $emailcollectorfilter->delete($user);
    +	if ($result > 0)
    +	{
    +		$object->fetchFilters();
    +	}
    +	else
    +	{
    +		setEventMessages($emailcollectorfilter->errors, $emailcollectorfilter->error, 'errors');
    +	}
    +}
    +
    +if (GETPOST('addoperation','alpha'))
    +{
    +	$emailcollectoroperation = new EmailCollectorAction($db);
    +	$emailcollectoroperation->type = GETPOST('operationtype','az09');
    +	$emailcollectoroperation->actionparam = GETPOST('operationparam', 'none');
    +	$emailcollectoroperation->fk_emailcollector = $object->id;
    +	$emailcollectoroperation->status = 1;
    +	$emailcollectoroperation->position = 50;
    +
    +	$result = $emailcollectoroperation->create($user);
    +
    +	if ($result > 0)
    +	{
    +		$object->fetchActions();
    +	}
    +	else
    +	{
    +		setEventMessages($emailcollectoroperation->errors, $emailcollectoroperation->error, 'errors');
    +	}
    +}
    +
    +if ($action == 'deleteoperation')
    +{
    +	$emailcollectoroperation = new EmailCollectorAction($db);
    +	$emailcollectoroperation->fetch(GETPOST('operationid','int'));
    +	$result = $emailcollectoroperation->delete($user);
    +	if ($result > 0)
    +	{
    +		$object->fetchActions();
    +	}
    +	else
    +	{
    +		setEventMessages($emailcollectoroperation->errors, $emailcollectoroperation->error, 'errors');
    +	}
    +}
    +
    +if ($action == 'confirm_collect')
    +{
    +	dol_include_once('/emailcollector/class/emailcollector.class.php');
    +
    +	$res = $object->doCollectOneCollector();
    +
    +	if ($res > 0)
    +	{
    +		setEventMessages($object->output, null, 'mesgs');
    +	}
    +	else
    +	{
    +		setEventMessages($object->error, null, 'errors');
    +	}
    +
    +	$action = '';
    +}
    +
    +
    +
    +
    +/*
    + * View
    + */
    +
    +$form = new Form($db);
    +$formfile = new FormFile($db);
    +
    +llxHeader('', 'EmailCollector', '');
    +
    +// Example : Adding jquery code
    +print '<script type="text/javascript" language="javascript">
    +jQuery(document).ready(function() {
    +	function init_myfunc()
    +	{
    +		jQuery("#myid").removeAttr(\'disabled\');
    +		jQuery("#myid").attr(\'disabled\',\'disabled\');
    +	}
    +	init_myfunc();
    +	jQuery("#mybutton").click(function() {
    +		init_myfunc();
    +	});
    +});
    +</script>';
    +
    +// Part to create
    +if ($action == 'create') {
    +	print load_fiche_titre($langs->trans("NewEmailCollector", $langs->transnoentitiesnoconv("EmailCollector")));
    +
    +	print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
    +	print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    +	print '<input type="hidden" name="action" value="add">';
    +	print '<input type="hidden" name="backtopage" value="' . $backtopage . '">';
    +
    +	dol_fiche_head(array(), '');
    +
    +	print '<table class="border centpercent">'."\n";
    +
    +	//unset($fields[]);
    +
    +	// Common attributes
    +	include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_add.tpl.php';
    +
    +	// Other attributes
    +	include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_add.tpl.php';
    +
    +	print '</table>'."\n";
    +
    +	dol_fiche_end();
    +
    +	print '<div class="center">';
    +	print '<input type="submit" class="button" name="add" value="' . dol_escape_htmltag($langs->trans("Create")) . '">';
    +	print '&nbsp; ';
    +	print '<input type="' . ($backtopage ? "submit" : "button") . '" class="button" name="cancel" value="' . dol_escape_htmltag($langs->trans("Cancel")) . '"' . ($backtopage ? '' : ' onclick="javascript:history.go(-1)"') . '>'; // Cancel for create does not post form if we don't know the backtopage
    +	print '</div>';
    +
    +	print '</form>';
    +}
    +
    +// Part to edit record
    +if (($id || $ref) && $action == 'edit')
    +{
    +	print load_fiche_titre($langs->trans("EmailCollector"));
    +
    +	print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
    +	print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    +	print '<input type="hidden" name="action" value="update">';
    +	print '<input type="hidden" name="backtopage" value="' . $backtopage . '">';
    +	print '<input type="hidden" name="id" value="' . $object->id . '">';
    +
    +	dol_fiche_head();
    +
    +	print '<table class="border centpercent">' . "\n";
    +
    +	// Common attributes
    +	include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_edit.tpl.php';
    +
    +	// Other attributes
    +	include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_edit.tpl.php';
    +
    +	print '</table>';
    +
    +	dol_fiche_end();
    +
    +	print '<div class="center"><input type="submit" class="button" name="save" value="' . $langs->trans("Save") . '">';
    +	print ' &nbsp; <input type="submit" class="button" name="cancel" value="' . $langs->trans("Cancel") . '">';
    +	print '</div>';
    +
    +	print '</form>';
    +}
    +
    +// Part to show record
    +if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create')))
    +{
    +	$res = $object->fetch_optionals();
    +
    +	$object->fetchFilters();
    +	$object->fetchActions();
    +
    +	$head = emailcollectorPrepareHead($object);
    +	dol_fiche_head($head, 'card', $langs->trans("EmailCollector"), -1, 'emailcollector');
    +
    +	$formconfirm = '';
    +
    +	// Confirmation to delete
    +	if ($action == 'delete')
    +	{
    +		$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteEmailCollector'), $langs->trans('ConfirmDeleteEmailCollector'), 'confirm_delete', '', 0, 1);
    +	}
    +
    +	// Clone confirmation
    +	if ($action == 'clone') {
    +		// Create an array for form
    +		$formquestion = array();
    +		$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('CloneMyObject'), $langs->trans('ConfirmCloneMyObject', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
    +	}
    +
    +	// Confirmation of action process
    +	if ($action == 'collect') {
    +		$formquestion = array(
    +			'text' => $langs->trans("EmailCollectorConfirmCollect"),
    +		);
    +		$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('EmailCollectorConfirmCollectTitle'), $text, 'confirm_collect', $formquestion, 0, 1, 220);
    +	}
    +
    +	// Call Hook formConfirm
    +	$parameters = array('lineid' => $lineid);
    +	$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +	if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +	elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    +
    +	// Print form confirm
    +	print $formconfirm;
    +
    +	// Object card
    +	// ------------------------------------------------------------
    +	$linkback = '<a href="' . dol_buildpath('/admin/emailcollector_list.php', 1) . '?restore_lastsearch_values=1' . (!empty($socid) ? '&socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>';
    +
    +	$morehtmlref = '<div class="refidno">';
    +	/*
    +		// Ref bis
    +		$morehtmlref.=$form->editfieldkey("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->emailcollector->creer, 'string', '', 0, 1);
    +		$morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->emailcollector->creer, 'string', '', null, null, '', 1);
    +		// Thirdparty
    +		$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1);
    +		// Project
    +		if (! empty($conf->projet->enabled))
    +		{
    +		    $langs->load("projects");
    +		    $morehtmlref.='<br>'.$langs->trans('Project') . ' ';
    +		    if ($user->rights->emailcollector->creer)
    +		    {
    +		        if ($action != 'classify')
    +		        {
    +		            $morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    +		            if ($action == 'classify') {
    +		                //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
    +		                $morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
    +		                $morehtmlref.='<input type="hidden" name="action" value="classin">';
    +		                $morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +		                $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
    +		                $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    +		                $morehtmlref.='</form>';
    +		            } else {
    +		                $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
    +		            }
    +		        }
    +		    } else {
    +		        if (! empty($object->fk_project)) {
    +		            $proj = new Project($db);
    +		            $proj->fetch($object->fk_project);
    +		            $morehtmlref.='<a href="'.DOL_URL_ROOT.'/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
    +		            $morehtmlref.=$proj->ref;
    +		            $morehtmlref.='</a>';
    +		        } else {
    +		            $morehtmlref.='';
    +		        }
    +		    }
    +		}
    +	*/
    +	$morehtmlref .= '</div>';
    +
    +	$morehtml = $langs->trans("NbOfEmailsInInbox").' : ';
    +
    +	$sourcedir = $object->source_directory;
    +	$targetdir = ($object->target_directory ? $object->target_directory : '');			// Can be '[Gmail]/Trash' or 'mytag'
    +
    +	$connection = null;
    +	$connectstringserver = '';
    +	$connectstringsource = '';
    +	$connectstringtarget = '';
    +
    +	if (function_exists('imap_open'))
    +	{
    +		$connectstringserver = $object->getConnectStringIMAP();
    +		$connectstringsource = $connectstringserver.imap_utf7_encode($sourcedir);
    +		$connectstringtarget = $connectstringserver.imap_utf7_encode($targetdir);
    +
    +		$connection = imap_open($connectstringsource, $object->user, $object->password);
    +	}
    +	else
    +	{
    +		$morehtml .= 'IMAP functions not available on your PHP';
    +	}
    +
    +	if (! $connection)
    +	{
    +		$morehtml .= 'Failed to open IMAP connection '.$connectstringsource;
    +	}
    +	else
    +	{
    +		//$morehtmlstatus .= imap_num_msg($connection).'</div><div class="statusref">';
    +		$morehtml .= imap_num_msg($connection);
    +	}
    +
    +	if ($connection)
    +	{
    +		imap_close($connection);
    +	}
    +
    +	dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref.'<div class="refidno">'.$morehtml.'</div>', '', 0, '', '', 0, '');
    +
    +	print '<div class="fichecenter">';
    +	print '<div class="fichehalfleft">';
    +	print '<div class="underbanner clearboth"></div>';
    +	print '<table class="border centpercent">'."\n";
    +
    +	// Common attributes
    +	//$keyforbreak='fieldkeytoswithonsecondcolumn';
    +	include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_view.tpl.php';
    +
    +	// Other attributes
    +	include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
    +
    +	print '</table>';
    +
    +
    +	print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
    +	print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    +	print '<input type="hidden" name="action" value="updatefiltersactions">';
    +	print '<input type="hidden" name="backtopage" value="' . $backtopage . '">';
    +	print '<input type="hidden" name="id" value="' . $object->id . '">';
    +
    +	// Filters
    +	print '<table class="border centpercent">';
    +	print '<tr class="liste_titre">';
    +	print '<td>'.$langs->trans("Filters").'</td><td></td><td></td>';
    +	print '</tr>';
    +	// Add filter
    +	print '<tr class="oddeven">';
    +	print '<td>';
    +	$arrayoftypes=array('from'=>'MailFrom', 'to'=>'MailTo', 'cc'=>'Cc', 'bcc'=>'Bcc', 'subject'=>'Subject', 'body'=>'Body', 'seen'=>'AlreadyRead', 'unseen'=>'NotRead', 'withtrackingid'=>'WithDolTrackingID', 'withouttrackingid'=>'WithoutDolTrackingID');
    +	print $form->selectarray('filtertype', $arrayoftypes, '', 1, 0, 0, '', 1);
    +	print '</td><td>';
    +	print '<input type="text" name="rulevalue">';
    +	print '</td>';
    +	print '<td align="right"><input type="submit" name="addfilter" id="addfilter" class="flat button" value="'.$langs->trans("Add").'"></td>';
    +	print '</tr>';
    +	// List filters
    +	foreach($object->filters as $rulefilter)
    +	{
    +		$rulefilterobj=new EmailCollectorFilter($db);
    +		$rulefilterobj->fetch($rulefilter['id']);
    +
    +		print '<tr class="oddeven">';
    +		print '<td>';
    +		print $langs->trans($arrayoftypes[$rulefilter['type']]);
    +		print '</td>';
    +		print '<td>'.$rulefilter['rulevalue'].'</td>';
    +		print '<td align="right">';
    +		//print $rulefilterobj->getLibStatut(3);
    +		print ' <a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=deletefilter&filterid='.$rulefilter['id'].'">'.img_delete().'</a>';
    +		print '</td>';
    +		print '</tr>';
    +	}
    +
    +	print '</tr>';
    +	print '</table>';
    +
    +	print '<div class="clearboth"></div><br>';
    +
    +	// Operations
    +	print '<table id="tablelines" class="noborder noshadow">';
    +	print '<tr class="liste_titre">';
    +	print '<td>'.$langs->trans("EmailcollectorOperations").'</td><td></td><td></td><td></td>';
    +	print '</tr>';
    +	// Add operation
    +	print '<tr class="oddeven">';
    +	print '<td>';
    +	$arrayoftypes=array('loadthirdparty'=>'LoadThirdPartyFromName', 'loadandcreatethirdparty'=>'LoadThirdPartyFromNameOrCreate', 'recordevent'=>'RecordEvent');
    +	if ($conf->projet->enabled) $arrayoftypes['project']='CreateLeadAndThirdParty';
    +	print $form->selectarray('operationtype', $arrayoftypes, '', 1, 0, 0, '', 1);
    +	print '</td><td>';
    +	print '<input type="text" name="operationparam">';
    +	$htmltext=$langs->transnoentitiesnoconv("OperationParamDesc");
    +	//var_dump($htmltext);
    +	print $form->textwithpicto('', $htmltext);
    +	print '</td>';
    +	print '<td></td>';
    +	print '<td align="right"><input type="submit" name="addoperation" id="addoperation" class="flat button" value="'.$langs->trans("Add").'"></td>';
    +	print '</tr>';
    +	// List operations
    +	$nboflines = count($object->actions);
    +	$table_element_line = 'emailcollector_emailcollectoraction';
    +	$fk_element='position';
    +	$i=0;
    +	foreach($object->actions as $ruleaction)
    +	{
    +		$ruleactionobj=new EmailcollectorAction($db);
    +		$ruleactionobj->fetch($ruleaction['id']);
    +
    +		print '<tr class="drag drop oddeven" id="row-'.$ruleaction['id'].'">';
    +		print '<td>';
    +		print $langs->trans($arrayoftypes[$ruleaction['type']]);
    +		print '</td>';
    +		print '<td>'.$ruleaction['actionparam'].'</td>';
    +		print '<td align="right">';
    +		//print $ruleactionobj->getLibStatut(3);
    +		print ' <a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=deleteoperation&operationid='.$ruleaction['id'].'">'.img_delete().'</a>';
    +		print '</td>';
    +		print '<td class="center linecolmove tdlineupdown">';
    +		if ($i > 0)
    +		{
    +			print '<a class="lineupdown" href="'.$_SERVER['PHP_SELF'].'?action=up&amp;rowid='.$ruleaction['id'].'">'.img_up('default', 0, 'imgupforline').'</a>';
    +		}
    +		if ($i < count($object->actions)-1) {
    +			print '<a class="lineupdown" href="'.$_SERVER['PHP_SELF'].'?action=down&amp;rowid='.$ruleaction['id'].'">'.img_down('default', 0, 'imgdownforline').'</a>';
    +		}
    +		print '</td>';
    +		print '</tr>';
    +		$i++;
    +	}
    +
    +	print '</tr>';
    +	print '</table>';
    +
    +	if (! empty($conf->use_javascript_ajax)) {
    +		include DOL_DOCUMENT_ROOT . '/core/tpl/ajaxrow.tpl.php';
    +	}
    +
    +	print '</form>';
    +
    +	print '</div>';
    +	print '</div>';	// End <div class="fichecenter">
    +
    +
    +	print '<div class="clearboth"></div><br>';
    +
    +	dol_fiche_end();
    +
    +	// Buttons for actions
    +	if ($action != 'presend' && $action != 'editline') {
    +		print '<div class="tabsAction">' . "\n";
    +		$parameters = array();
    +		$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +		if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +		if (empty($reshook))
    +		{
    +			print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=edit">' . $langs->trans("Edit") . '</a>' . "\n";
    +
    +			print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=collect">' . $langs->trans("CollectNow") . '</a>' . "\n";
    +
    +			print '<a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=delete">' . $langs->trans('Delete') . '</a>' . "\n";
    +		}
    +		print '</div>' . "\n";
    +	}
    +
    +	// Select mail models is same action as presend
    +	if (GETPOST('modelselected')) {
    +		$action = 'presend';
    +	}
    +
    +	/*
    +	if ($action != 'presend') {
    +		print '<div class="fichecenter"><div class="fichehalfleft">';
    +		print '<a name="builddoc"></a>'; // ancre
    +	*/
    +		// Documents
    +		/*$objref = dol_sanitizeFileName($object->ref);
    +	    $relativepath = $comref . '/' . $comref . '.pdf';
    +	    $filedir = $conf->emailcollector->dir_output . '/' . $objref;
    +	    $urlsource = $_SERVER["PHP_SELF"] . "?id=" . $object->id;
    +	    $genallowed = $user->rights->emailcollector->read;	// If you can read, you can build the PDF to read content
    +	    $delallowed = $user->rights->emailcollector->create;	// If you can create/edit, you can remove a file on card
    +	    print $formfile->showdocuments('emailcollector', $objref, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $soc->default_lang);
    +		*/
    +	/*
    +		// Show links to link elements
    +		$linktoelem = $form->showLinkToObjectBlock($object, null, array('emailcollector'));
    +		$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
    +
    +		print '</div><div class="fichehalfright"><div class="ficheaddleft">';
    +
    +		$MAXEVENT = 10;
    +
    +		$morehtmlright = '<a href="' . dol_buildpath('/emailcollector/emailcollector_info.php', 1) . '?id=' . $object->id . '">';
    +		$morehtmlright .= $langs->trans("SeeAll");
    +		$morehtmlright .= '</a>';
    +
    +		// List of actions on element
    +		include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php';
    +		$formactions = new FormActions($db);
    +		$somethingshown = $formactions->showactions($object, 'emailcollector_emailcollector', $socid, 1, '', $MAXEVENT, '', $morehtmlright);
    +
    +		print '</div></div></div>';
    +	}
    +	*/
    +
    +	//Select mail models is same action as presend
    +	/*
    +	 if (GETPOST('modelselected')) $action = 'presend';
    +
    +	 // Presend form
    +	 $modelmail='inventory';
    +	 $defaulttopic='InformationMessage';
    +	 $diroutput = $conf->product->dir_output.'/inventory';
    +	 $trackid = 'stockinv'.$object->id;
    +
    +	 include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
    +	 */
    +}
    +
    +// End of page
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/admin/emailcollector_list.php b/htdocs/admin/emailcollector_list.php
    new file mode 100644
    index 00000000000..7e72a5ce003
    --- /dev/null
    +++ b/htdocs/admin/emailcollector_list.php
    @@ -0,0 +1,561 @@
    +<?php
    +/* Copyright (C) 2007-2017 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *      \file       htdocs/admin/emailcollector_list.php
    + *      \ingroup    emailcollector
    + *      \brief      List page for emailcollector
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/events.class.php';
    +
    +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formcompany.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
    +dol_include_once('/emailcollector/class/emailcollector.class.php');
    +
    +if (!$user->admin) accessforbidden();
    +
    +// Load traductions files requiredby by page
    +$langs->loadLangs(array("admin", "other"));
    +
    +$action     = GETPOST('action','aZ09')?GETPOST('action','aZ09'):'view';				// The action 'add', 'create', 'edit', 'update', 'view', ...
    +$massaction = GETPOST('massaction','alpha');											// The bulk action (combo box choice into lists)
    +$show_files = GETPOST('show_files','int');												// Show files area generated by bulk actions ?
    +$confirm    = GETPOST('confirm','alpha');												// Result of a confirmation
    +$cancel     = GETPOST('cancel', 'alpha');												// We click on a Cancel button
    +$toselect   = GETPOST('toselect', 'array');												// Array of ids of elements selected into a list
    +$contextpage= GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'emailcollectorlist';   // To manage different context of search
    +$backtopage = GETPOST('backtopage','alpha');											// Go back to a dedicated page
    +$optioncss  = GETPOST('optioncss','aZ');												// Option for the css output (always '' except when 'print')
    +
    +$id			= GETPOST('id','int');
    +
    +// Load variable for pagination
    +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
    +$sortfield = GETPOST('sortfield','alpha');
    +$sortorder = GETPOST('sortorder','alpha');
    +$page = GETPOST('page','int');
    +if (empty($page) || $page == -1 || GETPOST('button_search','alpha') || GETPOST('button_removefilter','alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; }     // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action
    +$offset = $limit * $page;
    +$pageprev = $page - 1;
    +$pagenext = $page + 1;
    +//if (! $sortfield) $sortfield="p.date_fin";
    +//if (! $sortorder) $sortorder="DESC";
    +
    +// Initialize technical objects
    +$object = new EmailCollector($db);
    +$extrafields = new ExtraFields($db);
    +$diroutputmassaction = $conf->emailcollector->dir_output . '/temp/massgeneration/' . $user->id;
    +$hookmanager->initHooks(array('emailcollectorlist')); // Note that conf->hooks_modules contains array
    +// Fetch optionals attributes and labels
    +$extralabels = $extrafields->fetch_name_optionals_label('emailcollector');
    +$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_');
    +
    +// Default sort order (if not yet defined by previous GETPOST)
    +if (! $sortfield) $sortfield="t.".key($object->fields);   // Set here default search field. By default 1st field in definition.
    +if (! $sortorder) $sortorder="ASC";
    +
    +// Security check
    +$socid=0;
    +if ($user->societe_id > 0)	// Protection if external user
    +{
    +	//$socid = $user->societe_id;
    +	accessforbidden();
    +}
    +//$result = restrictedArea($user, 'emailcollector', $id, '');
    +
    +// Initialize array of search criterias
    +$search_all=trim(GETPOST("search_all",'alpha'));
    +$search=array();
    +foreach($object->fields as $key => $val)
    +{
    +	if (GETPOST('search_'.$key,'alpha')) $search[$key]=GETPOST('search_'.$key,'alpha');
    +}
    +
    +// List of fields to search into when doing a "search in all"
    +$fieldstosearchall = array();
    +foreach($object->fields as $key => $val)
    +{
    +	if ($val['searchall']) $fieldstosearchall['t.'.$key]=$val['label'];
    +}
    +
    +// Definition of fields for list
    +$arrayfields=array();
    +foreach($object->fields as $key => $val)
    +{
    +	// If $val['visible']==0, then we never show the field
    +	if (! empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>$val['enabled'], 'position'=>$val['position']);
    +}
    +// Extra fields
    +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0)
    +{
    +	foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val)
    +	{
    +		if (! empty($extrafields->attributes[$object->table_element]['list'][$key]))
    +			$arrayfields["ef.".$key]=array('label'=>$extrafields->attributes[$object->table_element]['label'][$key], 'checked'=>(($extrafields->attributes[$object->table_element]['list'][$key]<0)?0:1), 'position'=>$extrafields->attributes[$object->table_element]['pos'][$key], 'enabled'=>(abs($extrafields->attributes[$object->table_element]['list'][$key])!=3 && $extrafields->attributes[$object->table_element]['perms'][$key]));
    +	}
    +}
    +$object->fields = dol_sort_array($object->fields, 'position');
    +$arrayfields = dol_sort_array($arrayfields, 'position');
    +
    +
    +
    +/*
    + * Actions
    + */
    +
    +if (GETPOST('cancel','alpha')) { $action='list'; $massaction=''; }
    +if (! GETPOST('confirmmassaction','alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; }
    +
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +if (empty($reshook))
    +{
    +	// Selection of new fields
    +	include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
    +
    +	// Purge search criteria
    +	if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') ||GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
    +	{
    +		foreach($object->fields as $key => $val)
    +		{
    +			$search[$key]='';
    +		}
    +		$toselect='';
    +		$search_array_options=array();
    +	}
    +	if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')
    +		|| GETPOST('button_search_x','alpha') || GETPOST('button_search.x','alpha') || GETPOST('button_search','alpha'))
    +	{
    +		$massaction='';     // Protection to avoid mass action if we force a new search during a mass action confirmation
    +	}
    +
    +	// Mass actions
    +	$objectclass='EmailCollector';
    +	$objectlabel='EmailCollector';
    +	$permtoread = $user->rights->emailcollector->read;
    +	$permtodelete = $user->rights->emailcollector->delete;
    +	$uploaddir = $conf->emailcollector->dir_output;
    +	include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
    +}
    +
    +
    +
    +/*
    + * View
    + */
    +
    +$form=new Form($db);
    +
    +$now=dol_now();
    +
    +//$help_url="EN:Module_EmailCollector|FR:Module_EmailCollector_FR|ES:Módulo_EmailCollector";
    +$help_url='';
    +$title = $langs->trans('ListOf', $langs->transnoentitiesnoconv("EmailCollector"));
    +
    +
    +// Build and execute select
    +// --------------------------------------------------------------------
    +$sql = 'SELECT ';
    +foreach($object->fields as $key => $val)
    +{
    +	$sql.='t.'.$key.', ';
    +}
    +// Add fields from extrafields
    +if (! empty($extrafields->attributes[$object->table_element]['label']))
    +	foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.' as options_'.$key.', ' : '');
    +// Add fields from hooks
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +$sql.=$hookmanager->resPrint;
    +$sql=preg_replace('/, $/','', $sql);
    +$sql.= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t";
    +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)";
    +if ($object->ismultientitymanaged == 1) $sql.= " WHERE t.entity IN (".getEntity($object->element).")";
    +else $sql.=" WHERE 1 = 1";
    +foreach($search as $key => $val)
    +{
    +	if ($key == 'status' && $search[$key] == -1) continue;
    +	$mode_search=(($object->isInt($object->fields[$key]) || $object->isFloat($object->fields[$key]))?1:0);
    +	if ($search[$key] != '') $sql.=natural_search($key, $search[$key], (($key == 'status')?2:$mode_search));
    +}
    +if ($search_all) $sql.= natural_search(array_keys($fieldstosearchall), $search_all);
    +// Add where from extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
    +// Add where from hooks
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +$sql.=$hookmanager->resPrint;
    +
    +/* If a group by is required
    +$sql.= " GROUP BY "
    +foreach($object->fields as $key => $val)
    +{
    +	$sql.='t.'.$key.', ';
    +}
    +// Add fields from extrafields
    +if (! empty($extrafields->attributes[$object->table_element]['label'])) {
    +	foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : '');
    +// Add where from hooks
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters);    // Note that $action and $object may have been modified by hook
    +$sql.=$hookmanager->resPrint;
    +$sql=preg_replace('/, $/','', $sql);
    +*/
    +
    +$sql.=$db->order($sortfield,$sortorder);
    +
    +// Count total nb of records
    +$nbtotalofrecords = '';
    +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
    +{
    +	$resql = $db->query($sql);
    +	$nbtotalofrecords = $db->num_rows($resql);
    +	if (($page * $limit) > $nbtotalofrecords)	// if total of record found is smaller than page * limit, goto and load page 0
    +	{
    +		$page = 0;
    +		$offset = 0;
    +	}
    +}
    +// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set.
    +if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords)
    +{
    +	$num = $nbtotalofrecords;
    +}
    +else
    +{
    +	$sql.= $db->plimit($limit+1, $offset);
    +
    +	$resql=$db->query($sql);
    +	if (! $resql)
    +	{
    +		dol_print_error($db);
    +		exit;
    +	}
    +
    +	$num = $db->num_rows($resql);
    +}
    +
    +// Direct jump if only one record found
    +if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all)
    +{
    +	$obj = $db->fetch_object($resql);
    +	$id = $obj->rowid;
    +	header("Location: ".DOL_URL_ROOT.'/emailcollector/emailcollector_card.php?id='.$id);
    +	exit;
    +}
    +
    +
    +// Output page
    +// --------------------------------------------------------------------
    +
    +llxHeader('', $title, $help_url);
    +
    +// Example : Adding jquery code
    +print '<script type="text/javascript" language="javascript">
    +jQuery(document).ready(function() {
    +	function init_myfunc()
    +	{
    +		jQuery("#myid").removeAttr(\'disabled\');
    +		jQuery("#myid").attr(\'disabled\',\'disabled\');
    +	}
    +	init_myfunc();
    +	jQuery("#mybutton").click(function() {
    +		init_myfunc();
    +	});
    +});
    +</script>';
    +
    +$arrayofselected=is_array($toselect)?$toselect:array();
    +
    +$param='';
    +if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
    +if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
    +foreach($search as $key => $val)
    +{
    +	$param.= '&search_'.$key.'='.urlencode($search[$key]);
    +}
    +if ($optioncss != '')     $param.='&optioncss='.urlencode($optioncss);
    +// Add $param from extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
    +
    +// List of mass actions available
    +$arrayofmassactions =  array(
    +	//'presend'=>$langs->trans("SendByMail"),
    +	//'builddoc'=>$langs->trans("PDFMerge"),
    +);
    +if ($user->rights->emailcollector->delete) $arrayofmassactions['predelete']=$langs->trans("Delete");
    +if (GETPOST('nomassaction','int') || in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    +$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
    +
    +print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
    +if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
    +print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    +print '<input type="hidden" name="action" value="list">';
    +print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
    +print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
    +print '<input type="hidden" name="page" value="'.$page.'">';
    +print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
    +
    +$newcardbutton='';
    +//if ($user->rights->emailcollector->creer)
    +//{
    +$newcardbutton='<a class="butActionNew" href="emailcollector_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']).'"><span class="valignmiddle">'.$langs->trans('New').'</span>';
    +$newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    +$newcardbutton.= '</a>';
    +//}
    +
    +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_companies', 0, $newcardbutton, '', $limit);
    +
    +// Add code for pre mass action (confirmation or email presend form)
    +/*$topicmail="";
    +$modelmail="";
    +$objecttmp=new EmailCollector($db);
    +$trackid='xxxx'.$object->id;*/
    +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
    +
    +if ($sall)
    +{
    +	foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
    +	print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall).'</div>';
    +}
    +
    +$moreforfilter = '';
    +/*$moreforfilter.='<div class="divsearchfield">';
    +$moreforfilter.= $langs->trans('MyFilter') . ': <input type="text" name="search_myfield" value="'.dol_escape_htmltag($search_myfield).'">';
    +$moreforfilter.= '</div>';*/
    +
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint;
    +else $moreforfilter = $hookmanager->resPrint;
    +
    +if (! empty($moreforfilter))
    +{
    +	print '<div class="liste_titre liste_titre_bydiv centpercent">';
    +	print $moreforfilter;
    +	print '</div>';
    +}
    +
    +$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
    +$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
    +$selectedfields.=(count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : '');
    +
    +print '<div class="div-table-responsive">';		// You can use div-table-responsive-no-min if you dont need reserved height for your table
    +print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
    +
    +
    +// Fields title search
    +// --------------------------------------------------------------------
    +print '<tr class="liste_titre">';
    +foreach($object->fields as $key => $val)
    +{
    +    $cssforfield='';
    +    if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +    if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +    if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
    +    if (! empty($arrayfields['t.'.$key]['checked'])) print '<td class="liste_titre'.($cssforfield?' '.$cssforfield:'').'"><input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag($search[$key]).'"></td>';
    +}
    +// Extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
    +
    +// Fields from hook
    +$parameters=array('arrayfields'=>$arrayfields);
    +$reshook=$hookmanager->executeHooks('printFieldListOption', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +// Action column
    +print '<td class="liste_titre" align="right">';
    +$searchpicto=$form->showFilterButtons();
    +print $searchpicto;
    +print '</td>';
    +print '</tr>'."\n";
    +
    +
    +// Fields title label
    +// --------------------------------------------------------------------
    +print '<tr class="liste_titre">';
    +foreach($object->fields as $key => $val)
    +{
    +    $cssforfield='';
    +    if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +    if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +    if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
    +    if (! empty($arrayfields['t.'.$key]['checked']))
    +    {
    +        print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($cssforfield?'class="'.$cssforfield.'"':''), $sortfield, $sortorder, ($cssforfield?$cssforfield.' ':''))."\n";
    +    }
    +}
    +// Extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
    +// Hook fields
    +$parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder);
    +$reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"],'','','','align="center"',$sortfield,$sortorder,'maxwidthsearch ')."\n";
    +print '</tr>'."\n";
    +
    +
    +// Detect if we need a fetch on each output line
    +$needToFetchEachLine=0;
    +if (is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 0)
    +{
    +	foreach ($extrafields->attributes[$object->table_element]['computed'] as $key => $val)
    +	{
    +		if (preg_match('/\$object/',$val)) $needToFetchEachLine++;  // There is at least one compute field that use $object
    +	}
    +}
    +
    +
    +// Loop on record
    +// --------------------------------------------------------------------
    +$i=0;
    +$totalarray=array();
    +while ($i < min($num, $limit))
    +{
    +	$obj = $db->fetch_object($resql);
    +	if (empty($obj)) break;		// Should not happen
    +
    +	// Store properties in $object
    +	$object->id = $obj->rowid;
    +	foreach($object->fields as $key => $val)
    +	{
    +		if (isset($obj->$key)) $object->$key = $obj->$key;
    +	}
    +
    +	// Show here line of result
    +	print '<tr class="oddeven">';
    +	foreach($object->fields as $key => $val)
    +	{
    +	    $cssforfield='';
    +	    if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +	    elseif ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
    +	    
    +	    if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +	    elseif ($key == 'ref') $cssforfield.=($cssforfield?' ':'').'nowrap';
    +	    
    +	    if (! empty($arrayfields['t.'.$key]['checked']))
    +	    {
    +	        print '<td';
    +	        if ($cssforfield || $val['css']) print ' class="';
    +	        print $cssforfield;
    +	        if ($cssforfield && $val['css']) print ' ';
    +	        print $val['css'];
    +	        if ($cssforfield || $val['css']) print '"';
    +	        print '>';
    +			print $object->showOutputField($val, $key, $obj->$key, '');
    +			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
    +			if (! empty($val['isameasure']))
    +			{
    +				if (! $i) $totalarray['pos'][$totalarray['nbfield']]='t.'.$key;
    +				$totalarray['val']['t.'.$key] += $obj->$key;
    +			}
    +		}
    +	}
    +	// Extra fields
    +	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
    +	// Fields from hook
    +	$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
    +	$reshook=$hookmanager->executeHooks('printFieldListValue', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +	print $hookmanager->resPrint;
    +	// Action column
    +	print '<td class="nowrap" align="center">';
    +	if ($massactionbutton || $massaction)   // 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($obj->rowid, $arrayofselected)) $selected=1;
    +		print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>';
    +	}
    +	print '</td>';
    +	if (! $i) $totalarray['nbfield']++;
    +
    +	print '</tr>';
    +
    +	$i++;
    +}
    +
    +// Show total line
    +if (isset($totalarray['pos']))
    +{
    +	print '<tr class="liste_total">';
    +	$i=0;
    +	while ($i < $totalarray['nbfield'])
    +	{
    +		$i++;
    +		if (! empty($totalarray['pos'][$i]))  print '<td align="right">'.price($totalarray['val'][$totalarray['pos'][$i]]).'</td>';
    +		else
    +		{
    +			if ($i == 1)
    +			{
    +				if ($num < $limit) print '<td class="left">'.$langs->trans("Total").'</td>';
    +				else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
    +			}
    +			else print '<td></td>';
    +		}
    +	}
    +	print '</tr>';
    +}
    +
    +// If no record found
    +if ($num == 0)
    +{
    +	$colspan=1;
    +	foreach($arrayfields as $key => $val) { if (! empty($val['checked'])) $colspan++; }
    +	print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>';
    +}
    +
    +
    +$db->free($resql);
    +
    +$parameters=array('arrayfields'=>$arrayfields, 'sql'=>$sql);
    +$reshook=$hookmanager->executeHooks('printFieldListFooter', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +
    +print '</table>'."\n";
    +print '</div>'."\n";
    +
    +print '</form>'."\n";
    +
    +if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords))
    +{
    +	$hidegeneratedfilelistifempty=1;
    +	if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) $hidegeneratedfilelistifempty=0;
    +
    +	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    +	$formfile = new FormFile($db);
    +
    +	// Show list of available documents
    +	$urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder;
    +	$urlsource.=str_replace('&amp;','&',$param);
    +
    +	$filedir=$diroutputmassaction;
    +	$genallowed=$user->rights->emailcollector->read;
    +	$delallowed=$user->rights->emailcollector->create;
    +
    +	print $formfile->showdocuments('massfilesarea_emailcollector','',$filedir,$urlsource,0,$delallowed,'',1,1,0,48,1,$param,$title,'','','',null,$hidegeneratedfilelistifempty);
    +}
    +
    +// End of page
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/admin/events.php b/htdocs/admin/events.php
    index 1d1ec548853..347f4c27489 100644
    --- a/htdocs/admin/events.php
    +++ b/htdocs/admin/events.php
    @@ -74,7 +74,7 @@ llxHeader('',$langs->trans("Audit"),$wikihelp);
     //$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
     print load_fiche_titre($langs->trans("SecuritySetup"),'','title_setup');
     
    -print $langs->trans("LogEventDesc")."<br>\n";
    +print $langs->trans("LogEventDesc", $langs->transnoentitiesnoconv("AdminTools"), $langs->transnoentitiesnoconv("Audit"))."<br>\n";
     print "<br>\n";
     
     
    @@ -94,7 +94,7 @@ print "</tr>\n";
     foreach ($eventstolog as $key => $arr)
     {
     	if ($arr['id'])
    -	{		
    +	{
     		print '<tr class="oddeven">';
     		print '<td>'.$arr['id'].'</td>';
     		print '<td>';
    @@ -114,6 +114,6 @@ print "</div>";
     
     print "</form>\n";
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/expedition.php b/htdocs/admin/expedition.php
    index eb18f904229..2ae3a7cad99 100644
    --- a/htdocs/admin/expedition.php
    +++ b/htdocs/admin/expedition.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
      * Copyright (C) 2004		Eric Seigne				<eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012	Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2011-2018	Philippe Grand			<philippe.grand@atoo-net.com>
      *
    @@ -507,5 +507,6 @@ print '<div class="center"><input type="submit" class="button" value="'.$langs->
     
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/expedition_extrafields.php b/htdocs/admin/expedition_extrafields.php
    index af49e5bf064..87682fe7514 100644
    --- a/htdocs/admin/expedition_extrafields.php
    +++ b/htdocs/admin/expedition_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2015		Claudio Aschieri		<c.aschieri@19.coop>
    @@ -87,7 +87,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -100,7 +100,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -119,6 +119,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/expeditiondet_extrafields.php b/htdocs/admin/expeditiondet_extrafields.php
    index 5567e9480e8..e533ca64ac3 100644
    --- a/htdocs/admin/expeditiondet_extrafields.php
    +++ b/htdocs/admin/expeditiondet_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
    @@ -88,7 +88,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -101,7 +101,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -120,6 +120,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/expensereport.php b/htdocs/admin/expensereport.php
    index 1002b146113..f8429069611 100644
    --- a/htdocs/admin/expensereport.php
    +++ b/htdocs/admin/expensereport.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2015 Laurent Destailleur          <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio          <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier               <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2014 Regis Houssin                <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014 Regis Houssin                <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand (Resultic)  <raphael.bertrand@resultic.fr>
      * Copyright (C) 2011-2013 Juanjo Menent			    <jmenent@2byte.es>
      * Copyright (C) 2011-2018 Philippe Grand			    <philippe.grand@atoo-net.com>
    @@ -513,7 +513,6 @@ print '</form>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/expensereport_extrafields.php b/htdocs/admin/expensereport_extrafields.php
    index 8db81edb869..99de68e9e14 100644
    --- a/htdocs/admin/expensereport_extrafields.php
    +++ b/htdocs/admin/expensereport_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      *
    @@ -83,7 +83,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -96,7 +96,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -115,6 +115,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/expensereport_ik.php b/htdocs/admin/expensereport_ik.php
    index db7100d5928..d3937a98ba7 100644
    --- a/htdocs/admin/expensereport_ik.php
    +++ b/htdocs/admin/expensereport_ik.php
    @@ -179,6 +179,7 @@ echo '</table>';
     echo '</form>';
     
     dol_fiche_end();
    -llxFooter();
     
    +// End of page
    +llxFooter();
     $db->close();
    diff --git a/htdocs/admin/expensereport_rules.php b/htdocs/admin/expensereport_rules.php
    index b1d65b8635b..7b2baf0ed94 100644
    --- a/htdocs/admin/expensereport_rules.php
    +++ b/htdocs/admin/expensereport_rules.php
    @@ -1,7 +1,8 @@
     <?php
    -/* Copyright (C) 2012      Mikael Carlavan        <contact@mika-carl.fr>
    - * Copyright (C) 2017      ATM Consulting         <contact@atm-consulting.fr>
    - * Copyright (C) 2017      Pierre-Henry Favre     <phf@atm-consulting.fr>
    +/* Copyright (C) 2012       Mikael Carlavan         <contact@mika-carl.fr>
    + * Copyright (C) 2017       ATM Consulting          <contact@atm-consulting.fr>
    + * Copyright (C) 2017       Pierre-Henry Favre      <phf@atm-consulting.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -182,8 +183,8 @@ if ($action != 'edit')
     
     	echo '<td>'.$form->selectExpense('', 'fk_c_type_fees', 0, 1, 1).'</td>';
     	echo '<td>'.$form->selectarray('code_expense_rules_type', $tab_rules_type, '', 0).'</td>';
    -	echo '<td>'.$form->select_date(strtotime(date('Y-m-01', dol_now())), 'start', '', '', 0, '', 1, 0, 1).'</td>';
    -	echo '<td>'.$form->select_date(strtotime(date('Y-m-t', dol_now())), 'end', '', '', 0, '', 1, 0, 1).'</td>';
    +	echo '<td>'.$form->selectDate(strtotime(date('Y-m-01', dol_now())), 'start', '', '', 0, '', 1, 0).'</td>';
    +	echo '<td>'.$form->selectDate(strtotime(date('Y-m-t', dol_now())), 'end', '', '', 0, '', 1, 0).'</td>';
     	echo '<td><input type="text" value="" name="amount" class="amount" />'.$conf->currency.'</td>';
     	echo '<td>'.$form->selectyesno('restrictive', 0, 1).'</td>';
     	echo '<td align="right"><input type="submit" class="button" value="'.$langs->trans('Add').'" /></td>';
    @@ -270,7 +271,7 @@ foreach ($rules as $rule)
     	echo '<td>';
     	if ($action == 'edit' && $object->id == $rule->id)
     	{
    -		echo $form->select_date(strtotime(date('Y-m-d', $object->dates)), 'start', '', '', 0, '', 1, 0, 1);
    +		print $form->selectDate(strtotime(date('Y-m-d', $object->dates)), 'start', '', '', 0, '', 1, 0);
     	}
     	else
     	{
    @@ -282,7 +283,7 @@ foreach ($rules as $rule)
     	echo '<td>';
     	if ($action == 'edit' && $object->id == $rule->id)
     	{
    -		echo $form->select_date(strtotime(date('Y-m-d', $object->datee)), 'end', '', '', 0, '', 1, 0, 1);
    +		print $form->selectDate(strtotime(date('Y-m-d', $object->datee)), 'end', '', '', 0, '', 1, 0);
     	}
     	else
     	{
    @@ -354,6 +355,7 @@ echo '<script type="text/javascript"> $(function() {
     }); </script>';
     
     dol_fiche_end();
    -llxFooter();
     
    +// End of page
    +llxFooter();
     $db->close();
    diff --git a/htdocs/admin/export.php b/htdocs/admin/export.php
    index b6f12a723ff..cb97502c3f8 100644
    --- a/htdocs/admin/export.php
    +++ b/htdocs/admin/export.php
    @@ -4,9 +4,9 @@
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
      * Copyright (C) 2004		Eric Seigne				<eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012	Juanjo Menent			<jmenent@2byte.es>
    - * Copyright (C) 2011-2015	Philippe Grand			<philippe.grand@atoo-net.com>
    + * Copyright (C) 2011-2018	Philippe Grand			<philippe.grand@atoo-net.com>
      *
      * 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
    @@ -32,9 +32,7 @@ require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     
     // Load translation files required by the page
    -$langs->loadLangs(array('admin', 'exports'));
    -
    -$langs->load('other');
    +$langs->loadLangs(array('admin', 'exports', 'other'));
     
     if (! $user->admin)
     	accessforbidden();
    @@ -59,7 +57,7 @@ llxHeader('', $langs->trans($page_name));
     // Subheader
     $linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">'
         . $langs->trans("BackToModuleList") . '</a>';
    -print_fiche_titre($langs->trans($page_name), $linkback);
    +print load_fiche_titre($langs->trans($page_name), $linkback);
     
     // Configuration header
     
    @@ -73,7 +71,7 @@ dol_fiche_head(
     
     // Setup page goes here
     $form=new Form($db);
    -$var=false;
    +
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
     print '<td>'.$langs->trans("ExportModel").'</td>'."\n";
    @@ -82,8 +80,7 @@ print '<td align="center" width="100"></td>'."\n";
     
     
     // Example with a yes / no select
    -$var=!$var;
    -print '<tr '.$bc[$var].'>';
    +print '<tr class="oddeven">';
     print '<td>'.$langs->trans("set_EXPORTS_SHARE_MODELS").'</td>';
     print '<td align="center" width="20">&nbsp;</td>';
     print '<td align="center" width="100">';
    @@ -94,9 +91,8 @@ echo ajax_constantonoff('EXPORTS_SHARE_MODELS');
     print '</form>';
     print '</td></tr>';
     
    -
     print '</table>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/external_rss.php b/htdocs/admin/external_rss.php
    index 2862a94c207..048d002a3b7 100644
    --- a/htdocs/admin/external_rss.php
    +++ b/htdocs/admin/external_rss.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011 	   Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -325,6 +325,6 @@ else
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/facture.php b/htdocs/admin/facture.php
    index f00d125a4d5..683453023b9 100644
    --- a/htdocs/admin/facture.php
    +++ b/htdocs/admin/facture.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2004	Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011	Laurent Destailleur			<eldy@users.sourceforge.net>
      * Copyright (C) 2005		Eric Seigne					<eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012	Regis Houssin				<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin				<regis.houssin@inodbox.com>
      * Copyright (C) 2008		Raphael Bertrand (Resultic)	<raphael.bertrand@resultic.fr>
      * Copyright (C) 2012-2013  Juanjo Menent				<jmenent@2byte.es>
      * Copyright (C) 2014		Teddy Andreotti				<125155@supinfo.com>
    @@ -238,6 +238,30 @@ if ($action == 'setforcedate')
         }
     }
     
    +if ($action == 'setDefaultPDFModulesByType')
    +{
    +    $invoicetypemodels =  GETPOST('invoicetypemodels');
    +
    +    if(!empty($invoicetypemodels) && is_array($invoicetypemodels))
    +    {
    +        $error = 0;
    +
    +        foreach ($invoicetypemodels as $type => $value)
    +        {
    +            $res = dolibarr_set_const($db, 'FACTURE_ADDON_PDF_'.intval($type),$value,'chaine',0,'',$conf->entity);
    +            if (! $res > 0) $error++;
    +        }
    +
    +        if (! $error)
    +        {
    +            setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    +        }
    +        else
    +        {
    +            setEventMessages($langs->trans("Error"), null, 'errors');
    +        }
    +    }
    +}
     
     
     /*
    @@ -410,7 +434,6 @@ foreach ($dirmodels as $reldir)
                                 print '</td>';
     
                                 print "</tr>\n";
    -
                             }
                         }
                     }
    @@ -465,6 +488,8 @@ print "</tr>\n";
     
     clearstatcache();
     
    +$activatedModels = array();
    +
     foreach ($dirmodels as $reldir)
     {
         foreach (array('','/doc') as $valdir)
    @@ -580,6 +605,47 @@ foreach ($dirmodels as $reldir)
     }
     print '</table>';
     
    +if(!empty($conf->global->INVOICE_USE_DEFAULT_DOCUMENT)) // Hidden conf
    +{
    +    /*
    +     *  Document templates generators
    +     */
    +    print '<br>';
    +    print load_fiche_titre($langs->trans("BillsPDFModulesAccordindToInvoiceType"),'','');
    +    print '<form action="'.$_SERVER["PHP_SELF"].'#default-pdf-modules-by-type-table" method="POST">';
    +    print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'" />';
    +    print '<input type="hidden" name="action" value="setDefaultPDFModulesByType" >';
    +    print '<table id="default-pdf-modules-by-type-table" class="noborder" width="100%">';
    +    print '<tr class="liste_titre">';
    +    print '<td>'.$langs->trans("Type").'</td>';
    +    print '<td>'.$langs->trans("Name").'</td>';
    +    print '<td align="right"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
    +    print "</tr>\n";
    +
    +    $listtype=array(
    +        Facture::TYPE_STANDARD=>$langs->trans("InvoiceStandard"),
    +        Facture::TYPE_REPLACEMENT=>$langs->trans("InvoiceReplacement"),
    +        Facture::TYPE_CREDIT_NOTE=>$langs->trans("InvoiceAvoir"),
    +        Facture::TYPE_DEPOSIT=>$langs->trans("InvoiceDeposit"),
    +    );
    +    if (! empty($conf->global->INVOICE_USE_SITUATION))
    +    {
    +        $listtype[Facture::TYPE_SITUATION] = $langs->trans("InvoiceSituation");
    +    }
    +
    +    foreach ($listtype as $type => $trans)
    +    {
    +        $thisTypeConfName = 'FACTURE_ADDON_PDF_'.$type;
    +        $current = !empty($conf->global->{$thisTypeConfName})?$conf->global->{$thisTypeConfName}:$conf->global->FACTURE_ADDON_PDF;
    +        print '<tr >';
    +        print '<td>'.$trans.'</td>';
    +        print '<td colspan="2" >'.$form->selectarray('invoicetypemodels['.$type.']', ModelePDFFactures::liste_modeles($db), $current,0,0, 0).'</td>';
    +        print "</tr>\n";
    +    }
    +
    +    print '</table>';
    +    print "</form>";
    +}
     
     /*
      *  Modes de reglement
    @@ -632,7 +698,7 @@ if (! empty($conf->banque->enabled))
             }
             else
             {
    -        	print "<i>".$langs->trans("NoActiveBankAccountDefined")."</i>";
    +        	print '<span class="opacitymedium">'.$langs->trans("NoActiveBankAccountDefined").'</span>';
             }
         }
     }
    @@ -662,6 +728,7 @@ if ($resql)
         $i = 0;
         while ($i < $num)
         {
    +
             $row = $db->fetch_row($resql);
     
             print '<option value="'.$row[0].'"';
    @@ -782,7 +849,6 @@ print '</table>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/fckeditor.php b/htdocs/admin/fckeditor.php
    index 19d4a4cc772..8751d906918 100644
    --- a/htdocs/admin/fckeditor.php
    +++ b/htdocs/admin/fckeditor.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2011	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2012-20113	Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -234,6 +234,6 @@ else
          */
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/fichinter.php b/htdocs/admin/fichinter.php
    index a216f2d4ab7..7fd349363e1 100644
    --- a/htdocs/admin/fichinter.php
    +++ b/htdocs/admin/fichinter.php
    @@ -3,10 +3,10 @@
      * Copyright (C) 2004-2011 Laurent Destailleur          <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio          <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier               <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2014 Regis Houssin                <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014 Regis Houssin                <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand (Resultic)  <raphael.bertrand@resultic.fr>
      * Copyright (C) 2011-2013 Juanjo Menent			    <jmenent@2byte.es>
    - * Copyright (C) 2011-2017 Philippe Grand			    <philippe.grand@atoo-net.com>
    + * Copyright (C) 2011-2018 Philippe Grand			    <philippe.grand@atoo-net.com>
      *
      * 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
    @@ -560,7 +560,6 @@ print "</td></tr>\n";
     print '</form>';
     
     //Use draft Watermark
    -
     print "<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">";
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     print "<input type=\"hidden\" name=\"action\" value=\"set_FICHINTER_DRAFT_WATERMARK\">";
    @@ -635,12 +634,10 @@ print '</td>';
     print '</tr>';
     print '</form>';
     
    -
    -
    -
     print '</table>';
     
     print '<br>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/geoipmaxmind.php b/htdocs/admin/geoipmaxmind.php
    index fd1358b69cb..47c51069299 100644
    --- a/htdocs/admin/geoipmaxmind.php
    +++ b/htdocs/admin/geoipmaxmind.php
    @@ -173,6 +173,6 @@ if ($geoip)
     	$geoip->close();
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/holiday.php b/htdocs/admin/holiday.php
    new file mode 100644
    index 00000000000..c687a6fbc2d
    --- /dev/null
    +++ b/htdocs/admin/holiday.php
    @@ -0,0 +1,522 @@
    +<?php
    +/* Copyright (C) 2011-2013      Juanjo Menent	    <jmenent@2byte.es>
    + * Copyright (C) 2011-2018      Philippe Grand	    <philippe.grand@atoo-net.com>
    + * Copyright (C) 2018		    Charlene Benke		<charlie@patas-monkey.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *	\file       htdocs/admin/contract.php
    + *	\ingroup    contract
    + *	\brief      Setup page of module Contracts
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/holiday.lib.php';
    +
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin", "errors", "holiday"));
    +
    +if (!$user->admin) accessforbidden();
    +
    +$action = GETPOST('action','alpha');
    +$value = GETPOST('value','alpha');
    +$label = GETPOST('label','alpha');
    +$scandir = GETPOST('scan_dir','alpha');
    +$type='contract';
    +
    +if (empty($conf->global->HOLIDAY_ADDON))
    +{
    +    $conf->global->HOLIDAY_ADDON='mod_holiday_madona';
    +}
    +
    +
    +/*
    + * Actions
    + */
    +
    +include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
    +
    +if ($action == 'updateMask')
    +{
    +    $maskconst = GETPOST('maskconstholidaty','alpha');
    +    $maskvalue =  GETPOST('maskholiday','alpha');
    +    if ($maskconst) $res = dolibarr_set_const($db,$maskconst,$maskvalue,'chaine',0,'',$conf->entity);
    +
    +    if (! $res > 0) $error++;
    +
    + 	if (! $error)
    +    {
    +        setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    +    }
    +    else
    +    {
    +        setEventMessages($langs->trans("Error"), null, 'errors');
    +    }
    +}
    +
    +else if ($action == 'specimen') // For contract
    +{
    +	$modele= GETPOST('module','alpha');
    +
    +	$holiday = new Holiday($db);
    +	$holiday->initAsSpecimen();
    +
    +	// Search template files
    +	$file=''; $classname=''; $filefound=0;
    +	$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
    +	foreach($dirmodels as $reldir)
    +	{
    +	    $file=dol_buildpath($reldir."core/modules/holiday/doc/pdf_".$modele.".modules.php",0);
    +		if (file_exists($file))
    +		{
    +			$filefound=1;
    +			$classname = "pdf_".$modele;
    +			break;
    +		}
    +	}
    +
    +	if ($filefound)
    +	{
    +		require_once $file;
    +
    +		$module = new $classname($db);
    +
    +		if ($module->write_file($holiday,$langs) > 0)
    +		{
    +			header("Location: ".DOL_URL_ROOT."/document.php?modulepart=holiday&file=SPECIMEN.pdf");
    +			return;
    +		}
    +		else
    +		{
    +			setEventMessages($obj->error, $obj->errors, 'errors');
    +			dol_syslog($obj->error, LOG_ERR);
    +		}
    +	}
    +	else
    +	{
    +		setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
    +		dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
    +	}
    +}
    +
    +// Activate a model
    +else if ($action == 'set')
    +{
    +	$ret = addDocumentModel($value, $type, $label, $scandir);
    +}
    +
    +else if ($action == 'del')
    +{
    +	$ret = delDocumentModel($value, $type);
    +	if ($ret > 0)
    +	{
    +        if ($conf->global->HOLIDAY_ADDON_PDF == "$value") dolibarr_del_const($db, 'HOLIDAY_ADDON_PDF',$conf->entity);
    +	}
    +}
    +
    +// Set default model
    +else if ($action == 'setdoc')
    +{
    +	if (dolibarr_set_const($db, "HOLIDAY_ADDON_PDF",$value,'chaine',0,'',$conf->entity))
    +	{
    +		// La constante qui a ete lue en avant du nouveau set
    +		// on passe donc par une variable pour avoir un affichage coherent
    +		$conf->global->HOLIDAY_ADDON_PDF = $value;
    +	}
    +
    +	// On active le modele
    +	$ret = delDocumentModel($value, $type);
    +	if ($ret > 0)
    +	{
    +		$ret = addDocumentModel($value, $type, $label, $scandir);
    +	}
    +}
    +
    +else if ($action == 'setmod')
    +{
    +	// TODO Verifier si module numerotation choisi peut etre active
    +	// par appel methode canBeActivated
    +
    +	dolibarr_set_const($db, "HOLIDAY_ADDON",$value,'chaine',0,'',$conf->entity);
    +}
    +
    +else if ($action == 'set_other')
    +{
    +	$freetext= GETPOST('HOLIDAY_FREE_TEXT','none');	// No alpha here, we want exact string
    +	$res1 = dolibarr_set_const($db, "HOLIDAY_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity);
    +
    +	$draft= GETPOST('HOLIDAY_DRAFT_WATERMARK','alpha');
    +	$res2 = dolibarr_set_const($db, "HOLIDAY_DRAFT_WATERMARK",trim($draft),'chaine',0,'',$conf->entity);
    +
    +	if (! $res1 > 0 || ! $res2 > 0) $error++;
    +
    + 	if (! $error)
    +    {
    +        setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    +    }
    +    else
    +    {
    +        setEventMessages($langs->trans("Error"), null, 'errors');
    +    }
    +}
    +
    +
    +/*
    + * View
    + */
    +
    +$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
    +
    +llxHeader();
    +
    +$form=new Form($db);
    +
    +$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
    +print load_fiche_titre($langs->trans("HolidaySetup"),$linkback,'title_setup');
    +
    +$head=holiday_admin_prepare_head();
    +
    +dol_fiche_head($head, 'holiday', $langs->trans("Holidays"), -1, 'holiday');
    +
    +/*
    + * Holiday Numbering model
    + */
    +
    +print load_fiche_titre($langs->trans("HolidaysNumberingModules"),'','');
    +
    +print '<table class="noborder" width="100%">';
    +print '<tr class="liste_titre">';
    +print '<td width="100">'.$langs->trans("Name").'</td>';
    +print '<td>'.$langs->trans("Description").'</td>';
    +print '<td>'.$langs->trans("Example").'</td>';
    +print '<td align="center" width="60">'.$langs->trans("Status").'</td>';
    +print '<td align="center" width="16">'.$langs->trans("ShortInfo").'</td>';
    +print "</tr>\n";
    +
    +clearstatcache();
    +
    +foreach ($dirmodels as $reldir)
    +{
    +	$dir = dol_buildpath($reldir."core/modules/holiday/");
    +
    +	if (is_dir($dir))
    +	{
    +		$handle = opendir($dir);
    +		if (is_resource($handle))
    +		{
    +			while (($file = readdir($handle))!==false)
    +			{
    +				if (substr($file, 0, 12) == 'mod_holiday_' && substr($file, dol_strlen($file)-3, 3) == 'php')
    +				{
    +					$file = substr($file, 0, dol_strlen($file)-4);
    +
    +					require_once $dir.$file.'.php';
    +
    +					$module = new $file($db);
    +
    +					// Show modules according to features level
    +					if ($module->version == 'development'  && $conf->global->MAIN_FEATURES_LEVEL < 2) continue;
    +					if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue;
    +
    +					if ($module->isEnabled())
    +					{
    +
    +						print '<tr class="oddeven"><td>'.$module->nom."</td><td>\n";
    +						print $module->info();
    +						print '</td>';
    +
    +						// Show example of numbering model
    +						print '<td class="nowrap">';
    +						$tmp=$module->getExample();
    +						if (preg_match('/^Error/',$tmp)) { $langs->load("errors"); print '<div class="error">'.$langs->trans($tmp).'</div>'; }
    +						elseif ($tmp=='NotConfigured') print $langs->trans($tmp);
    +						else print $tmp;
    +						print '</td>'."\n";
    +
    +						print '<td align="center">';
    +						if ($conf->global->HOLIDAY_ADDON == "$file")
    +						{
    +							print img_picto($langs->trans("Activated"),'switch_on');
    +						}
    +						else
    +						{
    +							print '<a href="'.$_SERVER["PHP_SELF"].'?action=setmod&amp;value='.$file.'">';
    +							print img_picto($langs->trans("Disabled"),'switch_off');
    +							print '</a>';
    +						}
    +						print '</td>';
    +
    +						$holiday=new Holiday($db);
    +						$holiday->initAsSpecimen();
    +
    +						// Info
    +						$htmltooltip='';
    +						$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
    +						$nextval=$module->getNextValue($mysoc,$holiday);
    +                        if ("$nextval" != $langs->trans("NotAvailable")) {  // Keep " on nextval
    +                            $htmltooltip.=''.$langs->trans("NextValue").': ';
    +                            if ($nextval) {
    +                                if (preg_match('/^Error/',$nextval) || $nextval=='NotConfigured')
    +                                    $nextval = $langs->trans($nextval);
    +                                $htmltooltip.=$nextval.'<br>';
    +                            } else {
    +                                $htmltooltip.=$langs->trans($module->error).'<br>';
    +                            }
    +                        }
    +
    +						print '<td align="center">';
    +						print $form->textwithpicto('',$htmltooltip,1,0);
    +						print '</td>';
    +
    +						print '</tr>';
    +					}
    +				}
    +			}
    +			closedir($handle);
    +		}
    +	}
    +}
    +
    +print '</table><br>';
    +
    +
    +
    +if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
    +{
    +
    +/*
    + *  Documents models for Holidays
    + */
    +
    +print load_fiche_titre($langs->trans("TemplatePDFHolidays"),'','');
    +
    +// Defined model definition table
    +$def = array();
    +$sql = "SELECT nom";
    +$sql.= " FROM ".MAIN_DB_PREFIX."document_model";
    +$sql.= " WHERE type = '".$type."'";
    +$sql.= " AND entity = ".$conf->entity;
    +$resql=$db->query($sql);
    +if ($resql)
    +{
    +	$i = 0;
    +	$num_rows=$db->num_rows($resql);
    +	while ($i < $num_rows)
    +	{
    +		$array = $db->fetch_array($resql);
    +		array_push($def, $array[0]);
    +		$i++;
    +	}
    +}
    +else
    +{
    +	dol_print_error($db);
    +}
    +
    +
    +print '<table class="noborder" width="100%">';
    +print '<tr class="liste_titre">';
    +print '<td>'.$langs->trans("Name").'</td>';
    +print '<td>'.$langs->trans("Description").'</td>';
    +print '<td align="center" width="60">'.$langs->trans("Status")."</td>\n";
    +print '<td align="center" width="60">'.$langs->trans("Default")."</td>\n";
    +print '<td align="center" width="80">'.$langs->trans("ShortInfo").'</td>';
    +print '<td align="center" width="80">'.$langs->trans("Preview").'</td>';
    +print "</tr>\n";
    +
    +clearstatcache();
    +
    +foreach ($dirmodels as $reldir)
    +{
    +    foreach (array('','/doc') as $valdir)
    +    {
    +    	$dir = dol_buildpath($reldir."core/modules/holiday".$valdir);
    +
    +        if (is_dir($dir))
    +        {
    +            $handle=opendir($dir);
    +            if (is_resource($handle))
    +            {
    +                while (($file = readdir($handle))!==false)
    +                {
    +                    $filelist[]=$file;
    +                }
    +                closedir($handle);
    +                arsort($filelist);
    +
    +                foreach($filelist as $file)
    +                {
    +                    if (preg_match('/\.modules\.php$/i',$file) && preg_match('/^(pdf_|doc_)/',$file))
    +                    {
    +
    +                    	if (file_exists($dir.'/'.$file))
    +                    	{
    +                    		$name = substr($file, 4, dol_strlen($file) -16);
    +	                        $classname = substr($file, 0, dol_strlen($file) -12);
    +
    +	                        require_once $dir.'/'.$file;
    +	                        $module = new $classname($db);
    +
    +	                        $modulequalified=1;
    +	                        if ($module->version == 'development'  && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified=0;
    +	                        if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified=0;
    +
    +	                        if ($modulequalified)
    +	                        {
    +	                            print '<tr class="oddeven"><td width="100">';
    +	                            print (empty($module->name)?$name:$module->name);
    +	                            print "</td><td>\n";
    +	                            if (method_exists($module,'info')) print $module->info($langs);
    +	                            else print $module->description;
    +	                            print '</td>';
    +
    +	                            // Active
    +	                            if (in_array($name, $def))
    +	                            {
    +	                            	print '<td align="center">'."\n";
    +	                            	print '<a href="'.$_SERVER["PHP_SELF"].'?action=del&value='.$name.'">';
    +	                            	print img_picto($langs->trans("Enabled"),'switch_on');
    +	                            	print '</a>';
    +	                            	print '</td>';
    +	                            }
    +	                            else
    +	                            {
    +	                                print '<td align="center">'."\n";
    +	                                print '<a href="'.$_SERVER["PHP_SELF"].'?action=set&value='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
    +	                                print "</td>";
    +	                            }
    +
    +	                            // Default
    +	                            print '<td align="center">';
    +	                            if ($conf->global->HOLIDAY_ADDON_PDF == $name)
    +	                            {
    +	                                print img_picto($langs->trans("Default"),'on');
    +	                            }
    +	                            else
    +	                            {
    +	                                print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&value='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').'</a>';
    +	                            }
    +	                            print '</td>';
    +
    +	                           // Info
    +		    					$htmltooltip =    ''.$langs->trans("Name").': '.$module->name;
    +					    		$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
    +			                    if ($module->type == 'pdf')
    +			                    {
    +			                        $htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
    +			                    }
    +					    		$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
    +					    		$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
    +					    		$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
    +					    		$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
    +					    		$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
    +					    		$htmltooltip.='<br>'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark,1,1);
    +
    +
    +	                            print '<td align="center">';
    +	                            print $form->textwithpicto('',$htmltooltip,1,0);
    +	                            print '</td>';
    +
    +	                            // Preview
    +	                            print '<td align="center">';
    +	                            if ($module->type == 'pdf')
    +	                            {
    +	                                print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"),'contract').'</a>';
    +	                            }
    +	                            else
    +	                            {
    +	                                print img_object($langs->trans("PreviewNotAvailable"),'generic');
    +	                            }
    +	                            print '</td>';
    +
    +	                            print "</tr>\n";
    +	                        }
    +                    	}
    +                    }
    +                }
    +            }
    +        }
    +    }
    +}
    +
    +print '</table>';
    +print "<br>";
    +
    +
    +/*
    + * Other options
    + */
    +
    +print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
    +print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +print '<input type="hidden" name="action" value="set_other">';
    +
    +print load_fiche_titre($langs->trans("OtherOptions"),'','');
    +print '<table class="noborder" width="100%">';
    +print '<tr class="liste_titre">';
    +print '<td>'.$langs->trans("Parameter").'</td>';
    +print '<td align="center" width="60">'.$langs->trans("Value").'</td>';
    +print "</tr>\n";
    +
    +$substitutionarray=pdf_getSubstitutionArray($langs, array('objectamount'), null, 2);
    +$substitutionarray['__(AnyTranslationKey)__']=$langs->trans("Translation");
    +$htmltext = '<i>'.$langs->trans("AvailableVariables").':<br>';
    +foreach($substitutionarray as $key => $val)	$htmltext.=$key.'<br>';
    +$htmltext.='</i>';
    +
    +print '<tr class="oddeven"><td colspan="2">';
    +print $form->textwithpicto($langs->trans("FreeLegalTextOnHolidays"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext, 1, 'help', '', 0, 2, 'tooltiphelp');
    +print '<br>';
    +$variablename='HOLIDAY_FREE_TEXT';
    +if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT))
    +{
    +    print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
    +}
    +else
    +{
    +    include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    +    $doleditor=new DolEditor($variablename, $conf->global->$variablename,'',80,'dolibarr_notes');
    +    print $doleditor->Create();
    +}
    +print '</td></tr>'."\n";
    +
    +//Use draft Watermark
    +
    +print '<tr class="oddeven"><td>';
    +print $form->textwithpicto($langs->trans("WatermarkOnDraftHolidayCards"), $htmltext, 1, 'help', '', 0, 2, 'watermarktooltip').'<br>';
    +print '</td><td>';
    +print '<input size="50" class="flat" type="text" name="HOLIDAY_DRAFT_WATERMARK" value="'.$conf->global->HOLIDAY_DRAFT_WATERMARK.'">';
    +print '</td></tr>'."\n";
    +
    +print '</table>';
    +
    +print '<div class="center">';
    +print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
    +print '</div>';
    +
    +print '</form>';
    +}
    +
    +
    +dol_fiche_end();
    +
    +// End of page
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php
    index 50edc32d55f..e2168ec2d76 100644
    --- a/htdocs/admin/ihm.php
    +++ b/htdocs/admin/ihm.php
    @@ -1,8 +1,9 @@
     <?php
     /* Copyright (C) 2001-2005	Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2016		Juanjo Menent			<jmenent@2byte.es>
    + * Copyright (C) 2018       Ferran Marcet           <fmarcet@2byte.es>
      *
      * 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
    @@ -79,10 +80,10 @@ if ($action == 'removebackgroundlogin' && ! empty($conf->global->MAIN_LOGIN_BACK
     
     if ($action == 'update')
     {
    -	dolibarr_set_const($db, "MAIN_LANG_DEFAULT",				$_POST["MAIN_LANG_DEFAULT"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MULTILANGS",					$_POST["MAIN_MULTILANGS"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_LANG_DEFAULT", $_POST["MAIN_LANG_DEFAULT"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MULTILANGS", $_POST["MAIN_MULTILANGS"],'chaine',0,'',$conf->entity);
     
    -	dolibarr_set_const($db, "MAIN_THEME",						$_POST["main_theme"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_THEME", $_POST["main_theme"],'chaine',0,'',$conf->entity);
     
     	$val=GETPOST('THEME_TOPMENU_DISABLE_IMAGE');
     	if (! $val) dolibarr_del_const($db, 'THEME_TOPMENU_DISABLE_IMAGE', $conf->entity);
    @@ -133,21 +134,24 @@ if ($action == 'update')
     	if (GETPOST('THEME_ELDY_USE_HOVER') == '') dolibarr_set_const($db, "THEME_ELDY_USE_HOVER", '0', 'chaine', 0, '', $conf->entity);    // If empty, we set to '0' ('000000' is for black)
     	else dolibarr_set_const($db, "THEME_ELDY_USE_HOVER", $_POST["THEME_ELDY_USE_HOVER"], 'chaine', 0, '', $conf->entity);
     
    -	dolibarr_set_const($db, "MAIN_SIZE_LISTE_LIMIT",			$_POST["main_size_liste_limit"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_SIZE_SHORTLIST_LIMIT",		$_POST["main_size_shortliste_limit"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_DISABLE_JAVASCRIPT",			$_POST["main_disable_javascript"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_BUTTON_HIDE_UNAUTHORIZED",	$_POST["MAIN_BUTTON_HIDE_UNAUTHORIZED"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_START_WEEK",					$_POST["MAIN_START_WEEK"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_DAYS",		$_POST["MAIN_DEFAULT_WORKING_DAYS"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_HOURS",		$_POST["MAIN_DEFAULT_WORKING_HOURS"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_SHOW_LOGO",					$_POST["MAIN_SHOW_LOGO"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_FIRSTNAME_NAME_POSITION",		$_POST["MAIN_FIRSTNAME_NAME_POSITION"],'chaine',0,'',$conf->entity);
    +	if (GETPOST('THEME_ELDY_USE_CHECKED') == '') dolibarr_set_const($db, "THEME_ELDY_USE_CHECKED", '0', 'chaine', 0, '', $conf->entity);
    +	else dolibarr_set_const($db, "THEME_ELDY_USE_CHECKED", $_POST["THEME_ELDY_USE_CHECKED"], 'chaine', 0, '', $conf->entity);
     
    -	dolibarr_set_const($db, "MAIN_HELPCENTER_DISABLELINK",		$_POST["MAIN_HELPCENTER_DISABLELINK"],'chaine',0,'',0);	// Param for all entities
    -	dolibarr_set_const($db, "MAIN_MOTD",						dol_htmlcleanlastbr($_POST["main_motd"]),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_HOME",						dol_htmlcleanlastbr($_POST["main_home"]),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_HELP_DISABLELINK",			$_POST["MAIN_HELP_DISABLELINK"],'chaine',0,'',0);	    // Param for all entities
    -	dolibarr_set_const($db, "MAIN_BUGTRACK_ENABLELINK",         $_POST["MAIN_BUGTRACK_ENABLELINK"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_SIZE_LISTE_LIMIT", $_POST["main_size_liste_limit"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_SIZE_SHORTLIST_LIMIT", $_POST["main_size_shortliste_limit"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_DISABLE_JAVASCRIPT", $_POST["main_disable_javascript"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_BUTTON_HIDE_UNAUTHORIZED", $_POST["MAIN_BUTTON_HIDE_UNAUTHORIZED"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_START_WEEK", $_POST["MAIN_START_WEEK"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_DAYS", $_POST["MAIN_DEFAULT_WORKING_DAYS"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_DEFAULT_WORKING_HOURS", $_POST["MAIN_DEFAULT_WORKING_HOURS"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_SHOW_LOGO", $_POST["MAIN_SHOW_LOGO"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_FIRSTNAME_NAME_POSITION", $_POST["MAIN_FIRSTNAME_NAME_POSITION"],'chaine',0,'',$conf->entity);
    +
    +	dolibarr_set_const($db, "MAIN_HELPCENTER_DISABLELINK", $_POST["MAIN_HELPCENTER_DISABLELINK"],'chaine',0,'',0);	// Param for all entities
    +	dolibarr_set_const($db, "MAIN_MOTD", dol_htmlcleanlastbr($_POST["main_motd"]),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_HOME", dol_htmlcleanlastbr($_POST["main_home"]),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_HELP_DISABLELINK", $_POST["MAIN_HELP_DISABLELINK"],'chaine',0,'',0);	    // Param for all entities
    +	dolibarr_set_const($db, "MAIN_BUGTRACK_ENABLELINK", $_POST["MAIN_BUGTRACK_ENABLELINK"],'chaine',0,'',$conf->entity);
     
     	$varforimage='imagebackground'; $dirforimage=$conf->mycompany->dir_output.'/logos/';
     	if ($_FILES[$varforimage]["tmp_name"])
    @@ -236,7 +240,7 @@ if ($action == 'edit')	// Edit
     
     	// Default language
     	print '<tr><td class="titlefield">'.$langs->trans("DefaultLanguage").'</td><td>';
    -	print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT, 'MAIN_LANG_DEFAULT', 1, 0, 0, 0, 0, 'minwidth300');
    +	print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT, 'MAIN_LANG_DEFAULT', 1, 0, 0, 0, 0, 'minwidth300', 2);
     	print '</td>';
     	print '<td width="20">&nbsp;</td>';
     	print '</tr>';
    @@ -413,7 +417,7 @@ if ($action == 'edit')	// Edit
     		print '<a href="'.$_SERVER["PHP_SELF"].'?action=removebackgroundlogin">'.img_delete($langs->trans("Delete")).'</a>';
     		if (file_exists($conf->mycompany->dir_output.'/logos/'.$conf->global->MAIN_LOGIN_BACKGROUND)) {
     			print ' &nbsp; ';
    -			print '<img class="paddingleft valignmiddle" width="100px" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('/'.$conf->global->MAIN_LOGIN_BACKGROUND).'">';
    +			print '<img class="paddingleft valignmiddle" width="100px" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('logos/'.$conf->global->MAIN_LOGIN_BACKGROUND).'">';
     		}
     	} else {
     		print '<img class="paddingleft valignmiddle" width="100" src="'.DOL_URL_ROOT.'/public/theme/common/nophoto.png">';
    @@ -561,7 +565,7 @@ else	// Show
     	print $conf->global->MAIN_LOGIN_BACKGROUND;
     	if ($conf->global->MAIN_LOGIN_BACKGROUND && is_file($conf->mycompany->dir_output.'/logos/'.$conf->global->MAIN_LOGIN_BACKGROUND))
     	{
    -		print '<img class="img_logo paddingleft valignmiddle" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode($conf->global->MAIN_LOGIN_BACKGROUND).'">';
    +		print '<img class="img_logo paddingleft valignmiddle" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('logos/'.$conf->global->MAIN_LOGIN_BACKGROUND).'">';
     	}
     	else
     	{
    @@ -578,6 +582,6 @@ else	// Show
     	print '</div>';
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/index.php b/htdocs/admin/index.php
    index 6542cec1174..be9859c1beb 100644
    --- a/htdocs/admin/index.php
    +++ b/htdocs/admin/index.php
    @@ -89,6 +89,14 @@ print '<br>';
     
     // Show info setup module
     print img_picto('','puce').' '.$langs->trans("SetupDescription4", DOL_URL_ROOT.'/admin/modules.php?mainmenu=home', $langs->transnoentities("Setup"), $langs->transnoentities("Modules"));
    +
    +/*
    +$nbofactivatedmodules=count($conf->modules);
    +$moreinfo=$langs->trans("TotalNumberOfActivatedModules",($nbofactivatedmodules-1), count($modules));
    +if ($nbofactivatedmodules <= 1) $moreinfo .= ' '.img_warning($langs->trans("YouMustEnableOneModule"));
    +print '<br>'.$moreinfo;
    +*/
    +
     if (count($conf->modules) <= (empty($conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING)?1:$conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING))	// If only user module enabled
     {
     	$langs->load("errors");
    @@ -114,7 +122,6 @@ if (empty($reshook))
     	print '<div class="center"><div class="logo_setup"></div></div>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/ldap.php b/htdocs/admin/ldap.php
    index 6776cfb1480..dc21ca36daa 100644
    --- a/htdocs/admin/ldap.php
    +++ b/htdocs/admin/ldap.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004		Sebastien Di Cintio	<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier		<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2006-2011	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2011-2013	Juanjo Menent		<jmenent@2byte.es>
      *
    @@ -336,9 +336,9 @@ if (function_exists("ldap_connect"))
     			print $langs->trans("Error").' '.$ldap->error;
     			print '<br>';
     		}
    -
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/ldap_contacts.php b/htdocs/admin/ldap_contacts.php
    index 3188bf6e58a..f5f5f868801 100644
    --- a/htdocs/admin/ldap_contacts.php
    +++ b/htdocs/admin/ldap_contacts.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2011-2013 Juanjo Menent		<jmenent@2byte.es>
      *
    @@ -318,6 +318,7 @@ if (function_exists("ldap_connect"))
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/admin/ldap_groups.php b/htdocs/admin/ldap_groups.php
    index 4ae6ce9ad97..247ecfb28aa 100644
    --- a/htdocs/admin/ldap_groups.php
    +++ b/htdocs/admin/ldap_groups.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2011-2013 Juanjo Menent		<jmenent@2byte.es>
      *
    @@ -251,5 +251,6 @@ if (function_exists("ldap_connect"))
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/ldap_members.php b/htdocs/admin/ldap_members.php
    index 616eb99a8da..818ec5aaff6 100644
    --- a/htdocs/admin/ldap_members.php
    +++ b/htdocs/admin/ldap_members.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004		Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2006-2008	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2011-2013	Juanjo Menent			<jmenent@2byte.es>
      *
    @@ -80,9 +80,9 @@ if ($action == 'setvalue' && $user->admin)
     	if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION', GETPOST("fieldendlastsubscription"),'chaine',0,'',$conf->entity)) $error++;
     
     	// Subscriptions
    -	if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE',  GETPOST("fieldfirstsubscriptiondate"),'chaine',0,'',$conf->entity)) $error++;
    +	if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE', GETPOST("fieldfirstsubscriptiondate"),'chaine',0,'',$conf->entity)) $error++;
     	if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT',GETPOST("fieldfirstsubscriptionamount"),'chaine',0,'',$conf->entity)) $error++;
    -	if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE',   GETPOST("fieldlastsubscriptiondate"),'chaine',0,'',$conf->entity)) $error++;
    +	if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE', GETPOST("fieldlastsubscriptiondate"),'chaine',0,'',$conf->entity)) $error++;
     	if (! dolibarr_set_const($db, 'LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT', GETPOST("fieldlastsubscriptionamount"),'chaine',0,'',$conf->entity)) $error++;
     
     	// This one must be after the others
    @@ -439,10 +439,8 @@ if (function_exists("ldap_connect"))
     			print $langs->trans("ErrorLDAPMakeManualTest",$conf->ldap->dir_temp).'<br>';
     		}
     	}
    -
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/ldap_members_types.php b/htdocs/admin/ldap_members_types.php
    index e45857f2f38..912d4ee3ea9 100644
    --- a/htdocs/admin/ldap_members_types.php
    +++ b/htdocs/admin/ldap_members_types.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004		Sebastien Di Cintio	<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier		<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2006-2011	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2011-2013	Juanjo Menent		<jmenent@2byte.es>
      *
    @@ -241,5 +241,6 @@ if (function_exists("ldap_connect"))
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/ldap_users.php b/htdocs/admin/ldap_users.php
    index 8b11069fc61..934fcf8e03e 100644
    --- a/htdocs/admin/ldap_users.php
    +++ b/htdocs/admin/ldap_users.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2011-2016 Juanjo Menent		<jmenent@2byte.es>
      *
    @@ -443,7 +443,6 @@ if (function_exists("ldap_connect"))
     					}
     					$liste[$key] = $label;
     				}
    -
     			}
     			else
     		   {
    @@ -470,5 +469,6 @@ if (function_exists("ldap_connect"))
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/limits.php b/htdocs/admin/limits.php
    index e9389b0271d..6342f731347 100644
    --- a/htdocs/admin/limits.php
    +++ b/htdocs/admin/limits.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2010		Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -66,11 +66,11 @@ if ($action == 'update')
     
         if (! $error)
         {
    -        dolibarr_set_const($db, "MAIN_MAX_DECIMALS_UNIT",   $_POST["MAIN_MAX_DECIMALS_UNIT"],'chaine',0,'',$conf->entity);
    -        dolibarr_set_const($db, "MAIN_MAX_DECIMALS_TOT",    $_POST["MAIN_MAX_DECIMALS_TOT"],'chaine',0,'',$conf->entity);
    -        dolibarr_set_const($db, "MAIN_MAX_DECIMALS_SHOWN",  $_POST["MAIN_MAX_DECIMALS_SHOWN"],'chaine',0,'',$conf->entity);
    +        dolibarr_set_const($db, "MAIN_MAX_DECIMALS_UNIT", $_POST["MAIN_MAX_DECIMALS_UNIT"],'chaine',0,'',$conf->entity);
    +        dolibarr_set_const($db, "MAIN_MAX_DECIMALS_TOT", $_POST["MAIN_MAX_DECIMALS_TOT"],'chaine',0,'',$conf->entity);
    +        dolibarr_set_const($db, "MAIN_MAX_DECIMALS_SHOWN", $_POST["MAIN_MAX_DECIMALS_SHOWN"],'chaine',0,'',$conf->entity);
     
    -        dolibarr_set_const($db, "MAIN_ROUNDING_RULE_TOT",   $_POST["MAIN_ROUNDING_RULE_TOT"],'chaine',0,'',$conf->entity);
    +        dolibarr_set_const($db, "MAIN_ROUNDING_RULE_TOT", $_POST["MAIN_ROUNDING_RULE_TOT"],'chaine',0,'',$conf->entity);
     
             header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
             exit;
    @@ -253,7 +253,6 @@ else
     	    print " x ".$langs->trans("Quantity").": ".$qty;
     	    print " - ".$langs->trans("VAT").": ".$vat.'%';
     	    print " &nbsp; -> &nbsp; ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
    -
     	}
     
     	// Important: can debug rounding, to simulate the rounded total
    @@ -306,7 +305,6 @@ else
     	*/
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/livraison.php b/htdocs/admin/livraison.php
    index 88ce717f005..bc82d03d8d7 100644
    --- a/htdocs/admin/livraison.php
    +++ b/htdocs/admin/livraison.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2014 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2013 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2011-2018 Philippe Grand       <philippe.grand@atoo-net.com>
      * Copyright (C) 2015	   Claudio Aschieri		<c.aschieri@19.coop>
    @@ -478,6 +478,7 @@ print '</form>';
     
     print '</table>';
     
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/admin/livraison_extrafields.php b/htdocs/admin/livraison_extrafields.php
    index 6ccf798bc93..31144581564 100644
    --- a/htdocs/admin/livraison_extrafields.php
    +++ b/htdocs/admin/livraison_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2015		Claudio Aschieri		<c.aschieri@19.coop>
    @@ -87,7 +87,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -100,7 +100,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -119,6 +119,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/livraisondet_extrafields.php b/htdocs/admin/livraisondet_extrafields.php
    index 431d5c3c170..32000c67642 100644
    --- a/htdocs/admin/livraisondet_extrafields.php
    +++ b/htdocs/admin/livraisondet_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
    @@ -88,7 +88,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -101,7 +101,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -120,6 +120,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/loan.php b/htdocs/admin/loan.php
    index 3349ac0056a..419f6efbee9 100644
    --- a/htdocs/admin/loan.php
    +++ b/htdocs/admin/loan.php
    @@ -122,5 +122,6 @@ print "</table>\n";
     
     print '<br><div style="text-align:center"><input type="submit" class="button" value="'.$langs->trans('Modify').'" name="button"></div>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/mailing.php b/htdocs/admin/mailing.php
    index 32fbdd4aeb6..d5b866d9d20 100644
    --- a/htdocs/admin/mailing.php
    +++ b/htdocs/admin/mailing.php
    @@ -152,6 +152,6 @@ print '<div align="center"><input type="submit" class="button" value="'.$langs->
     
     print '</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/mailman.php b/htdocs/admin/mailman.php
    index b831c13823f..65c7f5e8d68 100644
    --- a/htdocs/admin/mailman.php
    +++ b/htdocs/admin/mailman.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2013 Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -238,7 +238,6 @@ if (! empty($conf->global->ADHERENT_USE_MAILMAN))
         print '</form>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php
    index 5b6a0841e76..33b6d83e0da 100644
    --- a/htdocs/admin/mails.php
    +++ b/htdocs/admin/mails.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013	   Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2016      Jonathan TISSEAU     <jonathan.tisseau@86dev.fr>
      *
    @@ -65,27 +65,27 @@ complete_substitutions_array($substitutionarrayfortest, $langs);
     
     if ($action == 'update' && empty($_POST["cancel"]))
     {
    -	dolibarr_set_const($db, "MAIN_DISABLE_ALL_MAILS",     GETPOST("MAIN_DISABLE_ALL_MAILS"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_FORCE_SENDTO",     GETPOST("MAIN_MAIL_FORCE_SENDTO"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_ENABLED_USER_DEST_SELECT",     GETPOST("MAIN_MAIL_ENABLED_USER_DEST_SELECT"),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_DISABLE_ALL_MAILS", GETPOST("MAIN_DISABLE_ALL_MAILS"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_FORCE_SENDTO", GETPOST("MAIN_MAIL_FORCE_SENDTO"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_ENABLED_USER_DEST_SELECT", GETPOST("MAIN_MAIL_ENABLED_USER_DEST_SELECT"), 'chaine', 0, '', $conf->entity);
     	// Send mode parameters
    -	dolibarr_set_const($db, "MAIN_MAIL_SENDMODE",         GETPOST("MAIN_MAIL_SENDMODE"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT",        GETPOST("MAIN_MAIL_SMTP_PORT"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_SMTP_SERVER",      GETPOST("MAIN_MAIL_SMTP_SERVER"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_SMTPS_ID",         GETPOST("MAIN_MAIL_SMTPS_ID"), 'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW",         GETPOST("MAIN_MAIL_SMTPS_PW"), 'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS",        GETPOST("MAIN_MAIL_EMAIL_TLS"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS",   GETPOST("MAIN_MAIL_EMAIL_STARTTLS"),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_SENDMODE", GETPOST("MAIN_MAIL_SENDMODE"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT", GETPOST("MAIN_MAIL_SMTP_PORT"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_SMTP_SERVER", GETPOST("MAIN_MAIL_SMTP_SERVER"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_SMTPS_ID", GETPOST("MAIN_MAIL_SMTPS_ID"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW", GETPOST("MAIN_MAIL_SMTPS_PW"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS", GETPOST("MAIN_MAIL_EMAIL_TLS"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS", GETPOST("MAIN_MAIL_EMAIL_STARTTLS"), 'chaine', 0, '', $conf->entity);
     
    -	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_ENABLED",     GETPOST("MAIN_MAIL_EMAIL_DKIM_ENABLED"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_DOMAIN",      GETPOST("MAIN_MAIL_EMAIL_DKIM_DOMAIN"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_SELECTOR",    GETPOST("MAIN_MAIL_EMAIL_DKIM_SELECTOR"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY", GETPOST("MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY"),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_ENABLED", GETPOST("MAIN_MAIL_EMAIL_DKIM_ENABLED"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_DOMAIN", GETPOST("MAIN_MAIL_EMAIL_DKIM_DOMAIN"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_SELECTOR", GETPOST("MAIN_MAIL_EMAIL_DKIM_SELECTOR"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY", GETPOST("MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY"), 'chaine', 0, '', $conf->entity);
     	// Content parameters
    -	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_FROM",       GETPOST("MAIN_MAIL_EMAIL_FROM"), 'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_ERRORS_TO",		  GETPOST("MAIN_MAIL_ERRORS_TO"),  'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_AUTOCOPY_TO",      GETPOST("MAIN_MAIL_AUTOCOPY_TO"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, 'MAIN_MAIL_DEFAULT_FROMTYPE', GETPOST('MAIN_MAIL_DEFAULT_FROMTYPE'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_FROM", GETPOST("MAIN_MAIL_EMAIL_FROM"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_ERRORS_TO", GETPOST("MAIN_MAIL_ERRORS_TO"), 'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_AUTOCOPY_TO", GETPOST("MAIN_MAIL_AUTOCOPY_TO"),'chaine', 0, '', $conf->entity);
    +	dolibarr_set_const($db, 'MAIN_MAIL_DEFAULT_FROMTYPE', GETPOST('MAIN_MAIL_DEFAULT_FROMTYPE'), 'chaine', 0, '', $conf->entity);
     
     	header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
     	exit;
    @@ -366,7 +366,7 @@ if ($action == 'edit')
     	{
     
     		$mainstmpid=(! empty($conf->global->MAIN_MAIL_SMTPS_ID)?$conf->global->MAIN_MAIL_SMTPS_ID:'');
    -		print '<tr '.$bcdd[$var].'><td>'.$langs->trans("MAIN_MAIL_SMTPS_ID").'</td><td>';
    +		print '<tr class="drag drop oddeven"><td>'.$langs->trans("MAIN_MAIL_SMTPS_ID").'</td><td>';
     		// SuperAdministrator access only
     		if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity))
     		{
    @@ -386,7 +386,7 @@ if ($action == 'edit')
     	{
     
     		$mainsmtppw=(! empty($conf->global->MAIN_MAIL_SMTPS_PW)?$conf->global->MAIN_MAIL_SMTPS_PW:'');
    -		print '<tr '.$bcdd[$var].'><td>'.$langs->trans("MAIN_MAIL_SMTPS_PW").'</td><td>';
    +		print '<tr class="drag drop oddeven"><td>'.$langs->trans("MAIN_MAIL_SMTPS_PW").'</td><td>';
     		// SuperAdministrator access only
     		if (empty($conf->multicompany->enabled) || ($user->admin && !$user->entity))
     		{
    @@ -735,7 +735,7 @@ else
     	}
     	else
     	{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans("FeatureNotAvailableOnLinux").'">'.$langs->trans("DoTestServerAvailability").'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("FeatureNotAvailableOnLinux").'">'.$langs->trans("DoTestServerAvailability").'</a>';
     	}
     
     	print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=test&mode=init#formmailbeforetitle">'.$langs->trans("DoTestSend").'</a>';
    @@ -854,7 +854,6 @@ else
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/mails_emailing.php b/htdocs/admin/mails_emailing.php
    index 91826f2be1d..b8a4a85026b 100644
    --- a/htdocs/admin/mails_emailing.php
    +++ b/htdocs/admin/mails_emailing.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013	   Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2016      Jonathan TISSEAU     <jonathan.tisseau@86dev.fr>
      *
    @@ -61,12 +61,12 @@ complete_substitutions_array($substitutionarrayfortest, $langs);
     if ($action == 'update' && empty($_POST["cancel"]))
     {
         // Send mode parameters
    -	dolibarr_set_const($db, "MAIN_MAIL_SENDMODE_EMAILING",       GETPOST("MAIN_MAIL_SENDMODE_EMAILING"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT_EMAILING",      GETPOST("MAIN_MAIL_SMTP_PORT_EMAILING"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_SMTP_SERVER_EMAILING",    GETPOST("MAIN_MAIL_SMTP_SERVER_EMAILING"),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_SMTPS_ID_EMAILING",       GETPOST("MAIN_MAIL_SMTPS_ID_EMAILING"), 'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW_EMAILING",       GETPOST("MAIN_MAIL_SMTPS_PW_EMAILING"), 'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS_EMAILING",      GETPOST("MAIN_MAIL_EMAIL_TLS_EMAILING"),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_SENDMODE_EMAILING", GETPOST("MAIN_MAIL_SENDMODE_EMAILING"),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT_EMAILING", GETPOST("MAIN_MAIL_SMTP_PORT_EMAILING"),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_SMTP_SERVER_EMAILING", GETPOST("MAIN_MAIL_SMTP_SERVER_EMAILING"),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_SMTPS_ID_EMAILING", GETPOST("MAIN_MAIL_SMTPS_ID_EMAILING"), 'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW_EMAILING", GETPOST("MAIN_MAIL_SMTPS_PW_EMAILING"), 'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS_EMAILING", GETPOST("MAIN_MAIL_EMAIL_TLS_EMAILING"),'chaine',0,'',$conf->entity);
     	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS_EMAILING", GETPOST("MAIN_MAIL_EMAIL_STARTTLS_EMAILING"),'chaine',0,'',$conf->entity);
     
     	header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
    @@ -509,7 +509,7 @@ else
     		}
     		else
     		{
    -			print '<a class="butActionRefused" href="#" title="'.$langs->trans("FeatureNotAvailableOnLinux").'">'.$langs->trans("DoTestServerAvailability").'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("FeatureNotAvailableOnLinux").'">'.$langs->trans("DoTestServerAvailability").'</a>';
     		}
     
     		print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=test&amp;mode=init">'.$langs->trans("DoTestSend").'</a>';
    @@ -601,7 +601,6 @@ else
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/mails_senderprofile_list.php b/htdocs/admin/mails_senderprofile_list.php
    index b6268e7fc1e..bbfc2ee2363 100644
    --- a/htdocs/admin/mails_senderprofile_list.php
    +++ b/htdocs/admin/mails_senderprofile_list.php
    @@ -23,7 +23,7 @@
      */
     
     require '../main.inc.php';
    -require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php');
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    @@ -61,7 +61,7 @@ $diroutputmassaction=$conf->admin->dir_output . '/temp/massgeneration/'.$user->i
     $hookmanager->initHooks(array('emailsenderprofilelist'));     // Note that conf->hooks_modules contains array
     // Fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('emailsenderprofile');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // Default sort order (if not yet defined by previous GETPOST)
     if (! $sortfield) $sortfield="t.".key($object->fields);   // Set here default search field. By default 1st field in definition.
    @@ -467,8 +467,8 @@ if (isset($totalarray['pos']))
     		{
     			if ($i == 1)
     			{
    -				if ($num < $limit) print '<td align="left">'.$langs->trans("Total").'</td>';
    -				else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +				if ($num < $limit) print '<td class="left">'.$langs->trans("Total").'</td>';
    +				else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     			}
     			else print '<td></td>';
     		}
    @@ -498,7 +498,7 @@ print '</form>'."\n";
     
     if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords))
     {
    -	require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php');
    +	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     	$formfile = new FormFile($db);
     
     	$hidegeneratedfilelistifempty=1;
    diff --git a/htdocs/admin/mails_templates.php b/htdocs/admin/mails_templates.php
    index 206191f5967..289a3ecd081 100644
    --- a/htdocs/admin/mails_templates.php
    +++ b/htdocs/admin/mails_templates.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2016  Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2011-2018  Philippe Grand          <philippe.grand@atoo-net.com>
      * Copyright (C) 2011       Remy Younes             <ryounes@gmail.com>
    @@ -11,6 +11,7 @@
      * Copyright (C) 2011-2016  Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2015       Ferran Marcet           <fmarcet@2byte.es>
      * Copyright (C) 2016       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -74,7 +75,7 @@ $offset = $listlimit * $page ;
     $pageprev = $page - 1;
     $pagenext = $page + 1;
     
    -if (empty($sortfield)) $sortfield='label, lang, position';
    +if (empty($sortfield)) $sortfield='type_template, lang, position, label';
     if (empty($sortorder)) $sortorder='ASC';
     
     // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    @@ -84,10 +85,6 @@ $hookmanager->initHooks(array('emailtemplates'));
     $tabname=array();
     $tabname[25]= MAIN_DB_PREFIX."c_email_templates";
     
    -// Criteria to sort dictionaries
    -$tabsqlsort=array();
    -$tabsqlsort[25]="label ASC, lang ASC, position ASC";
    -
     // Nom des champs en resultat de select pour affichage du dictionnaire
     $tabfield=array();
     $tabfield[25]= "label,lang,type_template,fk_user,private,position,topic,joinfiles,content";
    @@ -160,6 +157,7 @@ if ($conf->propal->enabled)            $elementList['propal_send']=$langs->trans
     if ($conf->commande->enabled)          $elementList['order_send']=$langs->trans('MailToSendOrder');
     if ($conf->facture->enabled)           $elementList['facture_send']=$langs->trans('MailToSendInvoice');
     if ($conf->expedition->enabled)        $elementList['shipping_send']=$langs->trans('MailToSendShipment');
    +if ($conf->reception->enabled) 		   $elementList['reception_send']=$langs->trans('MailToSendReception');
     if ($conf->ficheinter->enabled)        $elementList['fichinter_send']=$langs->trans('MailToSendIntervention');
     if ($conf->supplier_proposal->enabled) $elementList['supplier_proposal_send']=$langs->trans('MailToSendSupplierRequestForQuotation');
     if ($conf->fournisseur->enabled)       $elementList['order_supplier_send']=$langs->trans('MailToSendSupplierOrder');
    @@ -421,7 +419,7 @@ if ($action == 'delete')
     //var_dump($elementList);
     
     
    -$sql="SELECT rowid as rowid, label, type_template, lang, fk_user, private, position, topic, joinfiles, content_lines, content, active";
    +$sql="SELECT rowid as rowid, label, type_template, lang, fk_user, private, position, topic, joinfiles, content_lines, content, enabled, active";
     $sql.=" FROM ".MAIN_DB_PREFIX."c_email_templates";
     $sql.=" WHERE entity IN (".getEntity('email_template').")";
     if (! $user->admin)
    @@ -447,8 +445,6 @@ $sql.=$db->plimit($listlimit+1,$offset);
     $fieldlist=explode(',',$tabfield[$id]);
     
     // Form to add a new line
    -$alabelisused=0;
    -
     print '<form action="'.$_SERVER['PHP_SELF'].'?id='.$id.'" method="POST">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     print '<input type="hidden" name="from" value="'.dol_escape_htmltag(GETPOST('from','alpha')).'">';
    @@ -460,38 +456,37 @@ print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
     foreach ($fieldlist as $field => $value)
     {
    -        // Determine le nom du champ par rapport aux noms possibles
    -        // dans les dictionnaires de donnees
    -        $valuetoshow=ucfirst($fieldlist[$field]);   // Par defaut
    -        $valuetoshow=$langs->trans($valuetoshow);   // try to translate
    -        $align="left";
    -        if ($fieldlist[$field]=='fk_user')         { $valuetoshow=$langs->trans("Owner");}
    -        if ($fieldlist[$field]=='lang')            { $valuetoshow=(empty($conf->global->MAIN_MULTILANGS) ? '&nbsp;' : $langs->trans("Language")); }
    -        if ($fieldlist[$field]=='type')            { $valuetoshow=$langs->trans("Type"); }
    -        if ($fieldlist[$field]=='code')            { $valuetoshow=$langs->trans("Code"); }
    -        if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label') { $valuetoshow=$langs->trans("Code"); }
    -        if ($fieldlist[$field]=='type_template')   { $valuetoshow=$langs->trans("TypeOfTemplate"); }
    -    	if ($fieldlist[$field]=='private')         { $align='center'; }
    -    	if ($fieldlist[$field]=='position')        { $align='center'; }
    +	// Determine le nom du champ par rapport aux noms possibles
    +	// dans les dictionnaires de donnees
    +	$valuetoshow=ucfirst($fieldlist[$field]);   // Par defaut
    +	$valuetoshow=$langs->trans($valuetoshow);   // try to translate
    +	$align="left";
    +	if ($fieldlist[$field]=='fk_user')         { $valuetoshow=$langs->trans("Owner");}
    +	if ($fieldlist[$field]=='lang')            { $valuetoshow=(empty($conf->global->MAIN_MULTILANGS) ? '&nbsp;' : $langs->trans("Language")); }
    +	if ($fieldlist[$field]=='type')            { $valuetoshow=$langs->trans("Type"); }
    +	if ($fieldlist[$field]=='code')            { $valuetoshow=$langs->trans("Code"); }
    +	if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label') { $valuetoshow=$langs->trans("Code"); }
    +	if ($fieldlist[$field]=='type_template')   { $valuetoshow=$langs->trans("TypeOfTemplate"); }
    +	if ($fieldlist[$field]=='private')         { $align='center'; }
    +	if ($fieldlist[$field]=='position')        { $align='center'; }
     
    -    	if ($fieldlist[$field]=='topic')           { $valuetoshow=''; }
    -    	if ($fieldlist[$field]=='joinfiles')       { $valuetoshow=''; }
    -    	if ($fieldlist[$field]=='content')         { $valuetoshow=''; }
    -    	if ($fieldlist[$field]=='content_lines')   { $valuetoshow=''; }
    +	if ($fieldlist[$field]=='topic')           { $valuetoshow=''; }
    +	if ($fieldlist[$field]=='joinfiles')       { $valuetoshow=''; }
    +	if ($fieldlist[$field]=='content')         { $valuetoshow=''; }
    +	if ($fieldlist[$field]=='content_lines')   { $valuetoshow=''; }
     
    -        if ($valuetoshow != '')
    -        {
    -            print '<td align="'.$align.'">';
    -        	if (! empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i',$tabhelp[$id][$value])) print '<a href="'.$tabhelp[$id][$value].'" target="_blank">'.$valuetoshow.' '.img_help(1,$valuetoshow).'</a>';
    -        	else if (! empty($tabhelp[$id][$value]))
    -        	{
    -        	    if (in_array($value, array('topic'))) print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2, $value);   // Tooltip on click
    -        	    else print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2);                             // Tooltip on hover
    -        	}
    -        	else print $valuetoshow;
    -            print '</td>';
    -         }
    -         if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label') $alabelisused=1;
    +	if ($valuetoshow != '')
    +	{
    +		print '<td align="'.$align.'">';
    +		if (! empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i',$tabhelp[$id][$value])) print '<a href="'.$tabhelp[$id][$value].'" target="_blank">'.$valuetoshow.' '.img_help(1,$valuetoshow).'</a>';
    +		else if (! empty($tabhelp[$id][$value]))
    +		{
    +			if (in_array($value, array('topic'))) print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2, $value);   // Tooltip on click
    +			else print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2);                             // Tooltip on hover
    +		}
    +		else print $valuetoshow;
    +		print '</td>';
    +	}
     }
     print '<td>';
     print '<input type="hidden" name="id" value="' . $id . '">';
    @@ -534,6 +529,7 @@ print '<td align="right">';
     print '</td>';
     print "</tr>";
     
    +// Show fields for topic, join files and body
     $fieldsforcontent = array('topic', 'joinfiles', 'content');
     if (! empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) { $fieldsforcontent = array('content','content_lines'); }
     foreach ($fieldsforcontent as $tmpfieldlist)
    @@ -611,10 +607,16 @@ if ($resql)
         $i = 0;
     
         $param = '&id='.$id;
    +    if ($search_label)                 $param.= '&search_label='.urlencode($search_label);
    +    if ($search_lang > 0)              $param.= '&search_lang='.urlencode($search_lang);
    +    if ($search_type_template != '-1') $param.= '&search_type_template='.urlencode($search_type_template);
    +    if ($search_fk_user > 0)           $param.= '&search_fk_user='.urlencode($search_fk_user);
    +    if ($search_topic)                 $param.= '&search_topic='.urlencode($search_topic);
    +
         $paramwithsearch = $param;
    -    if ($sortorder) $paramwithsearch.= '&sortorder='.$sortorder;
    -    if ($sortfield) $paramwithsearch.= '&sortfield='.$sortfield;
    -    if (GETPOST('from')) $paramwithsearch.= '&from='.GETPOST('from','alpha');
    +    if ($sortorder) $paramwithsearch.= '&sortorder='.urlencode($sortorder);
    +    if ($sortfield) $paramwithsearch.= '&sortfield='.urlencode($sortfield);
    +    if (GETPOST('from','alpha')) $paramwithsearch.= '&from='.urlencode(GETPOST('from','alpha'));
     
         // There is several pages
         if ($num > $listlimit)
    @@ -630,11 +632,11 @@ if ($resql)
         $filterfound=0;
         foreach ($fieldlist as $field => $value)
         {
    -        if ($value == 'label') print '<td class="liste_titre"><input type="text" name="search_label" value="'.dol_escape_htmltag($search_label).'"></td>';
    +        if ($value == 'label') print '<td class="liste_titre"><input type="text" name="search_label" class="maxwidth100" value="'.dol_escape_htmltag($search_label).'"></td>';
             elseif ($value == 'lang')
             {
             	print '<td class="liste_titre">';
    -        	print $formadmin->select_language($search_lang, 'search_lang', 0, null, 1, 0, 0, 'maxwidth150');
    +        	print $formadmin->select_language($search_lang, 'search_lang', 0, null, 1, 0, 0, 'maxwidth100');
             	print '</td>';
             }
             elseif ($value == 'fk_user')
    @@ -643,13 +645,13 @@ if ($resql)
             	$restrictid=array();
             	if (! $user->admin) $restrictid=array($user->id);
             	//var_dump($restrictid);
    -        	print $form->select_dolusers($search_fk_user, 'search_fk_user', 1, null, 0, 'hierarchyme', null, 0, 0, 1, '', 0, '', 'maxwidth200');
    +        	print $form->select_dolusers($search_fk_user, 'search_fk_user', 1, null, 0, 'hierarchyme', null, 0, 0, 1, '', 0, '', 'maxwidth100');
             	print '</td>';
             }
             elseif ($value == 'topic') print '<td class="liste_titre"><input type="text" name="search_topic" value="'.dol_escape_htmltag($search_topic).'"></td>';
             elseif ($value == 'type_template')
             {
    -        	print '<td class="liste_titre">'.$form->selectarray('search_type_template', $elementList, $search_type_template, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth200 maxwidth100onsmartphone').'</td>';
    +        	print '<td class="liste_titre">'.$form->selectarray('search_type_template', $elementList, $search_type_template, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100 maxwidth100onsmartphone').'</td>';
             }
             elseif (! in_array($value, array('content', 'content_lines'))) print '<td class="liste_titre"></td>';
         }
    @@ -671,6 +673,7 @@ if ($resql)
             $align="left";
             $sortable=1;
             $valuetoshow='';
    +        $forcenowrap=1;
             /*
             $tmparray=getLabelOfField($fieldlist[$field]);
             $showfield=$tmp['showfield'];
    @@ -688,7 +691,7 @@ if ($resql)
     		if ($fieldlist[$field]=='private')         { $align='center'; }
     		if ($fieldlist[$field]=='position')        { $align='center'; }
     
    -		if ($fieldlist[$field]=='joinfiles')       { $valuetoshow=$langs->trans("FilesAttachedToEmail"); $align='center'; }
    +		if ($fieldlist[$field]=='joinfiles')       { $valuetoshow=$langs->trans("FilesAttachedToEmail"); $align='center'; $forcenowrap=0; }
     		if ($fieldlist[$field]=='content')         { $valuetoshow=$langs->trans("Content"); $showfield=0;}
     		if ($fieldlist[$field]=='content_lines')   { $valuetoshow=$langs->trans("ContentLines"); $showfield=0; }
     
    @@ -697,8 +700,8 @@ if ($resql)
             {
                 if (! empty($tabhelp[$id][$value]))
                 {
    -                if (in_array($value, array('topic'))) $valuetoshow = $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2, 'tooltip'.$value);   // Tooltip on click
    -                else $valuetoshow = $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2, '', 1);	// Tooltip on hover
    +            	if (in_array($value, array('topic'))) $valuetoshow = $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2, 'tooltip'.$value, $forcenowrap);   // Tooltip on click
    +                else $valuetoshow = $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2, '', $forcenowrap);	// Tooltip on hover
                 }
                 print getTitleFieldOfList($valuetoshow, 0, $_SERVER["PHP_SELF"], ($sortable?$fieldlist[$field]:''), ($page?'page='.$page.'&':''), $param, "align=".$align, $sortfield, $sortorder);
             }
    @@ -787,8 +790,12 @@ if ($resql)
                 		$i++;
                 		continue;		// It means this is a type of template not into elementList (may be because enabled condition of this type is false because module is not enabled)
                 	}
    -				// TODO Test on 'enabled'
    -
    +				// Test on 'enabled'
    +				if (! dol_eval($obj->enabled, 1))
    +				{
    +					$i++;
    +					continue;		// Email template not qualified
    +				}
     
                 	print '<tr class="oddeven" id="rowid-'.$obj->rowid.'">';
     
    @@ -926,6 +933,7 @@ print '</form>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
     
    @@ -990,7 +998,7 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='')
     			print '<td>';
     			if (! empty($conf->global->MAIN_MULTILANGS))
     			{
    -				$selectedlang = GETPOSTISSET('langcode','aZ09')?GETPOST('langcode','aZ09'):$langs->defaultlang;
    +				$selectedlang = GETPOSTISSET('langcode')?GETPOST('langcode', 'aZ09'):$langs->defaultlang;
     				if ($context == 'edit') $selectedlang = $obj->{$fieldlist[$field]};
     				print $formadmin->select_language($selectedlang, 'langcode', 0, null, 1, 0, 0, 'maxwidth150');
     			}
    @@ -1018,17 +1026,18 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='')
     			}
     			else
     			{
    -				print $form->selectarray('type_template', $elementList, (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''), 1, 0, 0, '', 0, 0, 0, '', 'maxwidth200');
    +				print $form->selectarray('type_template', $elementList, (! empty($obj->{$fieldlist[$field]})?$obj->{$fieldlist[$field]}:''), 1, 0, 0, '', 0, 0, 0, '', 'maxwidth150 maxwidth100onsmartphone');
     			}
     			print '</td>';
     		}
    -		elseif ($context == 'add' && in_array($fieldlist[$field], array('topic', 'joinfiles', 'content', 'content_lines'))) continue;
    +		elseif ($context == 'add'  && in_array($fieldlist[$field], array('topic', 'joinfiles', 'content', 'content_lines'))) continue;
     		elseif ($context == 'edit' && in_array($fieldlist[$field], array('topic', 'joinfiles', 'content', 'content_lines'))) continue;
     		elseif ($context == 'hide' && in_array($fieldlist[$field], array('topic', 'joinfiles', 'content', 'content_lines'))) continue;
     		else
     		{
     			$size=''; $class=''; $classtd='';
     			if ($fieldlist[$field]=='code') $class='maxwidth100';
    +			if ($fieldlist[$field]=='label') $class='maxwidth100';
     			if ($fieldlist[$field]=='private') { $class='maxwidth50'; $classtd='center'; }
     			if ($fieldlist[$field]=='position') { $class='maxwidth50'; $classtd='center'; }
     			if ($fieldlist[$field]=='libelle') $class='quatrevingtpercent';
    diff --git a/htdocs/admin/menus.php b/htdocs/admin/menus.php
    index 083d78c03e5..6037304350a 100644
    --- a/htdocs/admin/menus.php
    +++ b/htdocs/admin/menus.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -64,10 +64,10 @@ if ($action == 'update' && ! $cancel)
     {
     	$_SESSION["mainmenu"]="home";   // Le gestionnaire de menu a pu changer
     
    -	dolibarr_set_const($db, "MAIN_MENU_STANDARD",        GETPOST('MAIN_MENU_STANDARD','alpha'),'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_MENU_SMARTPHONE",      GETPOST('MAIN_MENU_SMARTPHONE','alpha'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MENU_STANDARD", GETPOST('MAIN_MENU_STANDARD','alpha'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MENU_SMARTPHONE", GETPOST('MAIN_MENU_SMARTPHONE','alpha'),'chaine',0,'',$conf->entity);
     
    -	dolibarr_set_const($db, "MAIN_MENUFRONT_STANDARD",   GETPOST('MAIN_MENUFRONT_STANDARD','alpha'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MENUFRONT_STANDARD", GETPOST('MAIN_MENUFRONT_STANDARD','alpha'),'chaine',0,'',$conf->entity);
     	dolibarr_set_const($db, "MAIN_MENUFRONT_SMARTPHONE", GETPOST('MAIN_MENUFRONT_SMARTPHONE','alpha'),'chaine',0,'',$conf->entity);
     
     	// Define list of menu handlers to initialize
    @@ -269,7 +269,6 @@ if ($action != 'edit')
     	print '</div>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/menus/edit.php b/htdocs/admin/menus/edit.php
    index 191db98a402..b16e9047b26 100644
    --- a/htdocs/admin/menus/edit.php
    +++ b/htdocs/admin/menus/edit.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2007      Patrick Raguin       <patrick.raguin@gmail.com>
      * Copyright (C) 2007-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016      Meziane Sof          <virtualsof@yahoo.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -28,9 +28,8 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
     
    -
    -$langs->load("admin");
    -$langs->load('other');
    +// Load translation files required by the page
    +$langs->loadLangs(array("other","admin"));
     
     if (! $user->admin) accessforbidden();
     
    @@ -97,6 +96,7 @@ if ($action == 'update')
                 $menu->perms=GETPOST('perms','alpha');
                 $menu->target=GETPOST('target','alpha');
                 $menu->user=GETPOST('user','alpha');
    +            $menu->mainmenu=GETPOST('propertymainmenu','alpha');
                 if (is_numeric(GETPOST('menuIdParent','alpha')))
                 {
                 	$menu->fk_menu=GETPOST('menuIdParent','alpha');
    @@ -124,14 +124,11 @@ if ($action == 'update')
     	        setEventMessages($menu->error, $menu->errors, 'errors');
             }
             $action = "edit";
    -    }
    -    else
    -    {
    +
             header("Location: ".DOL_URL_ROOT."/admin/menus/index.php?menu_handler=".$menu_handler);
             exit;
         }
    -
    -    if ($_GET['return'])
    +    else
         {
             header("Location: ".DOL_URL_ROOT."/admin/menus/index.php?menu_handler=".$menu_handler);
             exit;
    @@ -216,6 +213,7 @@ if ($action == 'add')
             $menu->perms=GETPOST('perms','alpha');
             $menu->target=GETPOST('target','alpha');
             $menu->user=GETPOST('user','alpha');
    +        $menu->mainmenu=GETPOST('propertymainmenu','alpha');
             if (is_numeric(GETPOST('menuId','int')))
             {
             	$menu->fk_menu=GETPOST('menuId','int');
    @@ -290,10 +288,13 @@ if ($action == 'create')
         		{
     				jQuery("#menuId").prop("disabled", true);
     	    		jQuery("#menuId").val(\'\');
    +				jQuery("#propertymainmenu").removeAttr("disabled");
    +	    		jQuery("#propertymainmenu").val(\'\');
     			}
    -    		else
    +    		if (jQuery("#topleft").val() == \'left\')
         		{
     				jQuery("#menuId").removeAttr("disabled");
    +				jQuery("#propertymainmenu").prop("disabled", true);
         		}
         	}
         	init_topleft();
    @@ -339,7 +340,7 @@ if ($action == 'create')
         print '</td>';
         print '<td>'.$langs->trans('DetailMenuHandler').'</td></tr>';
     
    -    //User
    +    // User
         print '<tr><td class="nowrap fieldrequired">'.$langs->trans('MenuForUsers').'</td>';
         print '<td><select class="flat" name="user">';
         print '<option value="2" selected>'.$langs->trans("AllMenus").'</option>';
    @@ -363,9 +364,15 @@ if ($action == 'create')
             print '<option value="left"'.($_POST["type"] && $_POST["type"]=='left'?' selected':'').'>'.$langs->trans('Left').'</option>';
             print '</select>';
         }
    -    //	print '<input type="text" size="50" name="type" value="'.$type.'">';
         print '</td><td>'.$langs->trans('DetailType').'</td></tr>';
     
    +    // Mainmenu code
    +    print '<tr><td class="fieldrequired">'.$langs->trans('MainMenuCode').'</td>';
    +   	print '<td><input type="text" class="minwidth300" id="propertymainmenu" name="propertymainmenu" value="'.(GETPOST("propertymainmenu", 'alpha')?GETPOST("propertymainmenu", 'alpha'):'').'"></td>';
    +    print '<td>';
    +    print $langs->trans("Example").': mytopmenukey';
    +    print '</td></tr>';
    +
         // MenuId Parent
         print '<tr><td class="fieldrequired">'.$langs->trans('MenuIdParent').'</td>';
         if ($parent_rowid)
    @@ -374,23 +381,23 @@ if ($action == 'create')
         }
         else
         {
    -        print '<td><input type="text" size="48" id="menuId" name="menuId" value="'.(GETPOST("menuId", 'int')?GETPOST("menuId", 'int'):'').'"></td>';
    +        print '<td><input type="text" class="minwidth300" id="menuId" name="menuId" value="'.(GETPOST("menuId", 'int')?GETPOST("menuId", 'int'):'').'"></td>';
         }
         print '<td>'.$langs->trans('DetailMenuIdParent');
         print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def';
         print '</td></tr>';
     
         // Title
    -    print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td><td><input type="text" size="30" name="titre" value="'.dol_escape_htmltag(GETPOST("titre",'alpha')).'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
    +    print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td><td><input type="text" class="minwidth300" name="titre" value="'.dol_escape_htmltag(GETPOST("titre",'alpha')).'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
     
         // URL
    -    print '<tr><td class="fieldrequired">'.$langs->trans('URL').'</td><td><input type="text" size="60" name="url" value="'.GETPOST("url",'alpha').'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
    +    print '<tr><td class="fieldrequired">'.$langs->trans('URL').'</td><td><input type="text" class="minwidth500" name="url" value="'.GETPOST("url",'alpha').'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
     
         // Langs
    -    print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" size="30" name="langs" value="'.$parent_langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
    +    print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" class="minwidth300" name="langs" value="'.$parent_langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
     
         // Position
    -    print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" size="5" name="position" value="'.dol_escape_htmltag(isset($_POST["position"])?$_POST["position"]:100).'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
    +    print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" class="width100" name="position" value="'.dol_escape_htmltag(isset($_POST["position"])?$_POST["position"]:100).'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
     
         // Target
         print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
    @@ -399,10 +406,10 @@ if ($action == 'create')
         print '</select></td></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
     
         // Enabled
    -    print '<tr><td>'.$langs->trans('Enabled').'</td><td><input type="text" size="60" name="enabled" value="'.GETPOST("enabled",'alpha').'"></td><td>'.$langs->trans('DetailEnabled').'</td></tr>';
    +    print '<tr><td>'.$langs->trans('Enabled').'</td><td><input type="text" class="minwidth500" name="enabled" value="'.(GETPOSTISSET('enabled')?GETPOST("enabled",'alpha'):'1').'"></td><td>'.$langs->trans('DetailEnabled').'</td></tr>';
     
         // Perms
    -    print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" size="60" name="perms" value="'.GETPOST('perms','alpha').'"></td><td>'.$langs->trans('DetailRight').'</td></tr>';
    +    print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" class="minwidth500" name="perms" value="'.(GETPOSTISSET('perms')?GETPOST('perms','alpha'):'1').'"></td><td>'.$langs->trans('DetailRight').'</td></tr>';
     
         print '</table>';
     
    @@ -456,13 +463,30 @@ elseif ($action == 'edit')
         // Type
         print '<tr><td class="fieldrequired">'.$langs->trans('Type').'</td><td>'.$langs->trans(ucfirst($menu->type)).'</td><td>'.$langs->trans('DetailType').'</td></tr>';
     
    +    // Mainmenu code
    +    if ($menu->type == 'top')
    +    {
    +	    print '<tr><td class="fieldrequired">'.$langs->trans('MainMenuCode').'</td>';
    +	    /*if ($parent_rowid)
    +	     {
    +	     print '<td>'.$parent_rowid.'<input type="hidden" name="propertyleftmenu" value="'.$parent_rowid.'"></td>';
    +	     }
    +	     else
    +	     {*/
    +	    print '<td><input type="text" class="minwidth300" id="propertymainmenu" name="propertymainmenu" value="'.(GETPOST("propertymainmenu", 'alpha')?GETPOST("propertymainmenu", 'alpha'):$menu->mainmenu).'"></td>';
    +	    //}
    +	    print '<td>';
    +	    print $langs->trans("Example").': mytopmenukey';
    +	    print '</td></tr>';
    +    }
    +
         // MenuId Parent
         print '<tr><td class="fieldrequired">'.$langs->trans('MenuIdParent');
         print '</td>';
         $valtouse=$menu->fk_menu;
         if ($menu->fk_mainmenu) $valtouse='fk_mainmenu='.$menu->fk_mainmenu;
         if ($menu->fk_leftmenu) $valtouse.='&fk_leftmenu='.$menu->fk_leftmenu;
    -    print '<td><input type="text" name="menuIdParent" value="'.$valtouse.'" size="48"></td>';
    +    print '<td><input type="text" name="menuIdParent" value="'.$valtouse.'" class="minwidth300"></td>';
         print '<td>'.$langs->trans('DetailMenuIdParent');
         print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def';
         print '</td></tr>';
    @@ -471,16 +495,16 @@ elseif ($action == 'edit')
         //print '<tr><td>'.$langs->trans('Level').'</td><td>'.$menu->level.'</td><td>'.$langs->trans('DetailLevel').'</td></tr>';
     
         // Title
    -    print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td><td><input type="text" size="30" name="titre" value="'.dol_escape_htmltag($menu->titre).'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
    +    print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td><td><input type="text" class="minwidth300" name="titre" value="'.dol_escape_htmltag($menu->titre).'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
     
         // Url
         print '<tr><td class="fieldrequired">'.$langs->trans('URL').'</td><td><input type="text" class="quatrevingtpercent" name="url" value="'.$menu->url.'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
     
         // Langs
    -    print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" size="30" name="langs" value="'.dol_escape_htmltag($menu->langs).'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
    +    print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" class="minwidth300" name="langs" value="'.dol_escape_htmltag($menu->langs).'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
     
         // Position
    -    print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" size="5" name="position" value="'.$menu->position.'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
    +    print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" class="minwidth100" name="position" value="'.$menu->position.'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
     
         // Target
         print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
    @@ -489,12 +513,12 @@ elseif ($action == 'edit')
         print '</select></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
     
         // Enabled
    -    print '<tr><td>'.$langs->trans('Enabled').'</td><td><input type="text" size="60" name="enabled" value="'.dol_escape_htmltag($menu->enabled).'"></td><td>'.$langs->trans('DetailEnabled');
    +    print '<tr><td>'.$langs->trans('Enabled').'</td><td><input type="text" class="minwidth500" name="enabled" value="'.dol_escape_htmltag($menu->enabled).'"></td><td>'.$langs->trans('DetailEnabled');
         if (! empty($menu->enabled)) print ' ('.$langs->trans("ConditionIsCurrently").': '.yn(dol_eval($menu->enabled,1)).')';
         print '</td></tr>';
     
         // Perms
    -    print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" size="60" name="perms" value="'.dol_escape_htmltag($menu->perms).'"></td><td>'.$langs->trans('DetailRight');
    +    print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" class="minwidth500" name="perms" value="'.dol_escape_htmltag($menu->perms).'"></td><td>'.$langs->trans('DetailRight');
         if (! empty($menu->perms)) print ' ('.$langs->trans("ConditionIsCurrently").': '.yn(dol_eval($menu->perms,1)).')';
         print '</td></tr>';
     
    @@ -514,5 +538,6 @@ elseif ($action == 'edit')
         print '<br>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/menus/index.php b/htdocs/admin/menus/index.php
    index c3211fc2d75..d7ef0c4d62b 100644
    --- a/htdocs/admin/menus/index.php
    +++ b/htdocs/admin/menus/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2007      Patrick Raguin       <patrick.raguin@gmail.com>
      * Copyright (C) 2007-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -27,8 +27,8 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php';
     
    -$langs->load("other");
    -$langs->load("admin");
    +// Load translation files required by the page
    +$langs->loadLangs(array("other","admin"));
     
     if (! $user->admin) accessforbidden();
     
    @@ -410,6 +410,6 @@ else
     
     print '<br>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/menus/other.php b/htdocs/admin/menus/other.php
    index 7789c3fb21c..6e5f0d77b4b 100644
    --- a/htdocs/admin/menus/other.php
    +++ b/htdocs/admin/menus/other.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -24,9 +24,8 @@
     require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     
    -$langs->load("users");
    -$langs->load("admin");
    -$langs->load("other");
    +// Load translation files required by the page
    +$langs->loadLangs(array("user","other","admin"));
     
     if (! $user->admin) accessforbidden();
     
    @@ -105,6 +104,6 @@ print '</tr>';
     
     print '</table>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/modulehelp.php b/htdocs/admin/modulehelp.php
    index 6281376dc2e..781f1fd380b 100644
    --- a/htdocs/admin/modulehelp.php
    +++ b/htdocs/admin/modulehelp.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2017	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -162,10 +162,10 @@ foreach ($modulesdir as $dir)
     		    			            	$familykey = $objMod->family;
     		    			            }
     
    -		    			            $moduleposition = ($objMod->module_position?$objMod->module_position:'500');
    -		    			            if ($moduleposition == 500 && ($objMod->isCoreOrExternalModule() == 'external'))
    +		    			            $moduleposition = ($objMod->module_position?$objMod->module_position:'50');
    +		    			            if ($moduleposition == '50' && ($objMod->isCoreOrExternalModule() == 'external'))
     		    			            {
    -		    			                $moduleposition = 800;
    +		    			                $moduleposition = '80';		// External modules at end by default
     		    			            }
     
     		    			            $orders[$i]  = $familyinfo[$familykey]['position']."_".$familykey."_".$moduleposition."_".$j;   // Sort by family, then by module position then number
    @@ -594,7 +594,6 @@ dol_fiche_end();
     
     print '</div>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php
    index ae87a19e433..4694021c233 100644
    --- a/htdocs/admin/modules.php
    +++ b/htdocs/admin/modules.php
    @@ -3,10 +3,11 @@
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Eric Seigne				<eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2015		Jean-François Ferry		<jfefe@aternatik.fr>
      * Copyright (C) 2015		Raphaël Doursenaud		<rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2018		Nicolas ZABOURI 		<info@inovea-conseil.com>
      *
      * 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
    @@ -272,14 +273,13 @@ $dirins_ok=(dol_is_dir($dirins));
     $help_url='EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones';
     llxHeader('',$langs->trans("Setup"),$help_url, '', '', '', $morejs, $morecss, 0, 0);
     
    -$arrayofnatures=array('core'=>$langs->transnoentitiesnoconv("Core"), 'external'=>$langs->transnoentitiesnoconv("External").' - '.$langs->trans("AllPublishers"));
    -$arrayofwarnings=array();    // Array of warning each module want to show when activated
    -$arrayofwarningsext=array();    // Array of warning each module want to show when we activate an external module
     
     // Search modules dirs
     $modulesdir = dolGetModulesDirs();
     
    -
    +$arrayofnatures=array('core'=>$langs->transnoentitiesnoconv("Core"), 'external'=>$langs->transnoentitiesnoconv("External").' - ['.$langs->trans("AllPublishers").']');
    +$arrayofwarnings=array();    // Array of warning each module want to show when activated
    +$arrayofwarningsext=array();    // Array of warning each module want to show when we activate an external module
     $filename = array();
     $modules = array();
     $orders = array();
    @@ -371,10 +371,10 @@ foreach ($modulesdir as $dir)
     		    			            	$familykey = $objMod->family;
     		    			            }
     
    -		    			            $moduleposition = ($objMod->module_position?$objMod->module_position:'500');
    -		    			            if ($moduleposition == 500 && ($objMod->isCoreOrExternalModule() == 'external'))
    +		    			            $moduleposition = ($objMod->module_position?$objMod->module_position:'50');
    +		    			            if ($moduleposition == '50' && ($objMod->isCoreOrExternalModule() == 'external'))
     		    			            {
    -		    			                $moduleposition = 800;
    +		    			            	$moduleposition = '80';		// External modules at end by default
     		    			            }
     
     		    			            // Add list of warnings to show into arrayofwarnings and arrayofwarningsext
    @@ -434,9 +434,7 @@ if ($action == 'reset_confirm' && $user->admin)
     
     		$form = new Form($db);
     		$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?value='.$value.'&mode='.$mode.$param, $langs->trans('ConfirmUnactivation'), $langs->trans(GETPOST('confirm_message_code')), 'reset', '', 'no', 1);
    -
     	}
    -
     }
     
     print $formconfirm;
    @@ -598,17 +596,18 @@ if ($mode == 'common')
             }
     
             // Print a separator if we change family
    -        if ($familykey!=$oldfamily)
    -        {
    -        	if ($oldfamily) print '</table></div><br>';
    +        if ($familykey != $oldfamily) {
    +            if ($oldfamily) {
    +                print '</table></div><br>';
    +            }
     
    -            $familytext=empty($familyinfo[$familykey]['label'])?$familykey:$familyinfo[$familykey]['label'];
    -            print_fiche_titre($familytext, '', '');
    +            $familytext = empty($familyinfo[$familykey]['label'])?$familykey:$familyinfo[$familykey]['label'];
    +            print load_fiche_titre($familytext, '', '');
     
                 print '<div class="div-table-responsive">';
    -        	print '<table class="tagtable liste" summary="list_of_modules">'."\n";
    +            print '<table class="tagtable liste" summary="list_of_modules">'."\n";
     
    -        	$atleastoneforfamily=0;
    +            $atleastoneforfamily=0;
             }
     
             $atleastoneforfamily++;
    @@ -638,6 +637,7 @@ if ($mode == 'common')
             }
     
             print '<tr class="oddeven">'."\n";
    +        if (!empty($conf->global->MAIN_MODULES_SHOW_LINENUMBERS)) print '<td width="20px">'.++$linenum.'</td>';
     
             // Picto + Name of module
             print '  <td width="200px">';
    @@ -670,6 +670,17 @@ if ($mode == 'common')
             // Version
             print '<td class="center nowrap" width="120px">';
             print $versiontrans;
    +        if(!empty($conf->global->CHECKLASTVERSION_EXTERNALMODULE)){
    +            require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
    +            if (!empty($objMod->url_last_version)) {
    +                $newversion = getURLContent($objMod->url_last_version);
    +                if(isset($newversion['content'])){
    +                    if (version_compare($newversion['content'], $versiontrans) > 0) {
    +                        print "&nbsp;<span class='butAction' title='" . $langs->trans('LastStableVersion') . "'>".$newversion['content']."</span>";
    +                    }
    +                }
    +            }
    +        }
             print "</td>\n";
     
             // Activate/Disable and Setup (2 columns)
    @@ -690,7 +701,10 @@ if ($mode == 'common')
             	else if (! empty($objMod->always_enabled) || ((! empty($conf->multicompany->enabled) && $objMod->core_enabled) && ($user->entity || $conf->entity!=1)))
             	{
             		if (method_exists($objMod, 'alreadyUsed') && $objMod->alreadyUsed()) print $langs->trans("Used");
    -        		else print $langs->trans("Required");
    +        		else {
    +        			print img_picto($langs->trans("Required"),'switch_on');
    +        			print $langs->trans("Required");
    +        		}
             		if (! empty($conf->multicompany->enabled) && $user->entity) $disableSetup++;
             	}
             	else
    @@ -699,16 +713,13 @@ if ($mode == 'common')
             			print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?id='.$objMod->numero.'&amp;module_position='.$module_position.'&amp;action=reset_confirm&amp;confirm_message_code='.$objMod->warnings_unactivation[$mysoc->country_code].'&amp;value=' . $modName . '&amp;mode=' . $mode . $param . '">';
             			print img_picto($langs->trans("Activated"),'switch_on');
             			print '</a>';
    -
             		}
             		else {
     
             			print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?id='.$objMod->numero.'&amp;module_position='.$module_position.'&amp;action=reset&amp;value=' . $modName . '&amp;mode=' . $mode .'&amp;confirm=yes' . $param . '">';
             			print img_picto($langs->trans("Activated"),'switch_on');
             			print '</a>';
    -
             		}
    -
             	}
             	print '</td>'."\n";
     
    @@ -763,7 +774,6 @@ if ($mode == 'common')
             	{
             		print '<td class="tdsetuppicto right valignmiddle" width="60px">'.img_picto($langs->trans("NothingToSetup"),"setup",'class="opacitytransp" style="padding-right: 6px"').'</td>';
             	}
    -
             }
             else	// Module not yet activated
     		{
    @@ -799,7 +809,7 @@ if ($mode == 'common')
     	        	        {
             	        	    foreach ($arrayofwarningsextbycountry as $keycountry => $cursorwarningmessage)
             	        	    {
    -        	        	        if ($keycountry == 'always' || $keycountry == $mysoc->country_code)
    +        	        	    	if (preg_match('/^always/', $keycountry) || ($mysoc->country_code && preg_match('/^'.$mysoc->country_code.'/', $keycountry)))
             	        	        {
             	        	            $warningmessage .= ($warningmessage?"\n":"").$langs->trans($cursorwarningmessage, $objMod->getName(), $mysoc->country_code, $modules[$keymodule]->getName());
             	        	            $warningmessage .= ($warningmessage?"\n":"").($warningmessage?"\n":"").$langs->trans("Module").' : '.$objMod->getName();
    @@ -854,9 +864,9 @@ if ($mode == 'marketplace')
         print '<td>'.$langs->trans("URL").'</td>';
         print '</tr>';
     
    -    print "<tr class=\"oddeven\">\n";
    +    print '<tr class="oddeven">'."\n";
         $url='https://www.dolistore.com';
    -    print '<td align="left"><a href="'.$url.'" target="_blank" rel="external"><img border="0" class="imgautosize imgmaxwidth180" src="'.DOL_URL_ROOT.'/theme/dolistore_logo.png"></a></td>';
    +    print '<td class="left"><a href="'.$url.'" target="_blank" rel="external"><img border="0" class="imgautosize imgmaxwidth180" src="'.DOL_URL_ROOT.'/theme/dolistore_logo.png"></a></td>';
         print '<td>'.$langs->trans("DoliStoreDesc").'</td>';
         print '<td><a href="'.$url.'" target="_blank" rel="external">'.$url.'</a></td>';
         print '</tr>';
    @@ -1019,11 +1029,21 @@ if ($mode == 'deploy')
     
     			if ($maxmin > 0)
     			{
    +				print '<script type="text/javascript">
    +				$(document).ready(function() {
    +					jQuery("#fileinstall").on("change", function() {
    +						if(this.files[0].size > '.($maxmin*1024).'){
    +							alert("'.dol_escape_js($langs->trans("ErrorFileSizeTooLarge")).'");
    +							this.value = "";
    +						};
    +					});
    +				});
    +				</script>'."\n";
     				// MAX_FILE_SIZE doit précéder le champ input de type file
     				print '<input type="hidden" name="max_file_size" value="'.($maxmin*1024).'">';
     			}
     
    -			print '<input class="flat minwidth400" type="file" name="fileinstall"> ';
    +			print '<input class="flat minwidth400" type="file" name="fileinstall" id="fileinstall"> ';
     
     			print '<input type="submit" name="send" value="'.dol_escape_htmltag($langs->trans("Send")).'" class="button">';
     
    @@ -1068,18 +1088,18 @@ if ($mode == 'develop')
     	print '</tr>';
     
     	print '<tr class="oddeven" height="80">'."\n";
    -	print '<td align="left">';
    +	print '<td class="left">';
     	//span class="fa fa-bug"></span>
     	//print '<img border="0" class="imgautosize imgmaxwidth180" src="'.DOL_URL_ROOT.'/theme/dolibarr_preferred_partner_int.png">';
     	print '<div class="imgmaxheight50 logo_setup"></div>';
     	print '</td>';
    -	print '<td>'.$langs->trans("TryToUseTheModuleBuilder").'</td>';
    +	print '<td>'.$langs->trans("TryToUseTheModuleBuilder", $langs->transnoentitiesnoconv("ModuleBuilder")).'</td>';
     	print '<td>'.$langs->trans("SeeTopRightMenu").'</td>';
     	print '</tr>';
     
     	print '<tr class="oddeven" height="80">'."\n";
     	$url='https://partners.dolibarr.org';
    -	print '<td align="left">';
    +	print '<td class="left">';
     	print'<a href="'.$url.'" target="_blank" rel="external"><img border="0" class="imgautosize imgmaxwidth180" src="'.DOL_URL_ROOT.'/theme/dolibarr_preferred_partner_int.png"></a>';
     	print '</td>';
     	print '<td>'.$langs->trans("DoliPartnersDesc").'</td>';
    @@ -1091,8 +1111,6 @@ if ($mode == 'develop')
     	dol_fiche_end();
     }
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php
    index b301a2c7a03..0a64145e9a4 100644
    --- a/htdocs/admin/multicurrency.php
    +++ b/htdocs/admin/multicurrency.php
    @@ -45,36 +45,6 @@ $action = GETPOST('action', 'alpha');
      * Actions
      */
     
    -
    -if (preg_match('/set_([a-z0-9_\-]+)/i',$action,$reg))
    -{
    -	$code=$reg[1];
    -	$value=(GETPOST($code, 'alpha') ? GETPOST($code, 'alpha') : 1);
    -	if (dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity) > 0)
    -	{
    -		header("Location: ".$_SERVER["PHP_SELF"]);
    -		exit;
    -	}
    -	else
    -	{
    -		dol_print_error($db);
    -	}
    -}
    -
    -if (preg_match('/del_([a-z0-9_\-]+)/i',$action,$reg))
    -{
    -	$code=$reg[1];
    -	if (dolibarr_del_const($db, $code, 0) > 0)
    -	{
    -		header("Location: ".$_SERVER["PHP_SELF"]);
    -		exit;
    -	}
    -	else
    -	{
    -		dol_print_error($db);
    -	}
    -}
    -
     if ($action == 'add_currency')
     {
     	$error=0;
    @@ -171,7 +141,7 @@ llxHeader('', $langs->trans($page_name));
     
     // Subheader
     $linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php?restore_lastsearch_values=1">' . $langs->trans("BackToModuleList") . '</a>';
    -print_fiche_titre($langs->trans($page_name), $linkback);
    +print load_fiche_titre($langs->trans($page_name), $linkback);
     
     // Configuration header
     $head = multicurrencyAdminPrepareHead();
    @@ -181,30 +151,42 @@ dol_fiche_head($head, 'settings', $langs->trans("ModuleSetup"), -1, "multicurren
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
     print '<td>'.$langs->trans("Parameters").'</td>'."\n";
    -print '<td align="center">'.$langs->trans("Value").'</td>'."\n";
    +print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
     print '</tr>';
     
     print '<tr class="oddeven">';
     print '<td>'.$langs->transnoentitiesnoconv("MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE").'</td>';
    -print '<td align="right">';
    -print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
    -print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -print '<input type="hidden" name="action" value="set_MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE">';
    -print $form->selectyesno("MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE",$conf->global->MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE,1);
    -print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -print '</form>';
    +print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE", $arrval, $conf->global->MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE);
    +}
     print '</td></tr>';
     
     
     print '<tr class="oddeven">';
     print '<td>'.$langs->transnoentitiesnoconv("multicurrency_useOriginTx").'</td>';
    -print '<td align="right">';
    -print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
    -print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -print '<input type="hidden" name="action" value="set_MULTICURRENCY_USE_ORIGIN_TX">';
    -print $form->selectyesno("MULTICURRENCY_USE_ORIGIN_TX",$conf->global->MULTICURRENCY_USE_ORIGIN_TX,1);
    -print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -print '</form>';
    +print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('MULTICURRENCY_USE_ORIGIN_TX');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("MULTICURRENCY_USE_ORIGIN_TX", $arrval, $conf->global->MULTICURRENCY_USE_ORIGIN_TX);
    +}
    +print '</td></tr>';
    +
    +//Online payment with currency on document
    +print '<tr class="oddeven">';
    +print '<td>'.$langs->transnoentitiesnoconv("multicurrency_useCurrency").'</td>';
    +print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT", $arrval, $conf->global->MULTICURRENCY_USE_CURRENCY_ON_DOCUMENT);
    +}
     print '</td></tr>';
     
     /* TODO uncomment when the functionality will integrated
    @@ -361,6 +343,6 @@ print '
     	</script>
     ';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/notification.php b/htdocs/admin/notification.php
    index 43782816202..92ba0bec200 100644
    --- a/htdocs/admin/notification.php
    +++ b/htdocs/admin/notification.php
    @@ -166,12 +166,15 @@ foreach($listofnotifiedevents as $notifiedevent)
     {
     
         $label=$langs->trans("Notify_".$notifiedevent['code']); //!=$langs->trans("Notify_".$notifiedevent['code'])?$langs->trans("Notify_".$notifiedevent['code']):$notifiedevent['label'];
    +    $elementLabel = $langs->trans(ucfirst($notifiedevent['elementtype']));
     
         if ($notifiedevent['elementtype'] == 'order_supplier') $elementLabel = $langs->trans('SupplierOrder');
         elseif ($notifiedevent['elementtype'] == 'propal') $elementLabel = $langs->trans('Proposal');
         elseif ($notifiedevent['elementtype'] == 'facture') $elementLabel = $langs->trans('Bill');
         elseif ($notifiedevent['elementtype'] == 'commande') $elementLabel = $langs->trans('Order');
         elseif ($notifiedevent['elementtype'] == 'ficheinter') $elementLabel = $langs->trans('Intervention');
    +    elseif ($notifiedevent['elementtype'] == 'shipping') $elementLabel = $langs->trans('Shipping');
    +    elseif ($notifiedevent['elementtype'] == 'expensereport') $elementLabel = $langs->trans('ExpenseReport');
     
         if ($i) print ', ';
         print $label;
    @@ -209,11 +212,15 @@ foreach($listofnotifiedevents as $notifiedevent)
     
         $label=$langs->trans("Notify_".$notifiedevent['code']); //!=$langs->trans("Notify_".$notifiedevent['code'])?$langs->trans("Notify_".$notifiedevent['code']):$notifiedevent['label'];
     
    +    $elementLabel = $langs->trans(ucfirst($notifiedevent['elementtype']));
    +	// Special cases
         if ($notifiedevent['elementtype'] == 'order_supplier') $elementLabel = $langs->trans('SupplierOrder');
         elseif ($notifiedevent['elementtype'] == 'propal') $elementLabel = $langs->trans('Proposal');
         elseif ($notifiedevent['elementtype'] == 'facture') $elementLabel = $langs->trans('Bill');
         elseif ($notifiedevent['elementtype'] == 'commande') $elementLabel = $langs->trans('Order');
     	elseif ($notifiedevent['elementtype'] == 'ficheinter') $elementLabel = $langs->trans('Intervention');
    +	elseif ($notifiedevent['elementtype'] == 'shipping') $elementLabel = $langs->trans('Shipping');
    +	elseif ($notifiedevent['elementtype'] == 'expensereport') $elementLabel = $langs->trans('ExpenseReport');
     
         print '<tr class="oddeven">';
         print '<td>'.$elementLabel.'</td>';
    @@ -272,7 +279,6 @@ print '<div class="center"><input type="submit" class="button" value="'.$langs->
     
     print '</form>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/oauth.php b/htdocs/admin/oauth.php
    index f03af4655d4..16827306bda 100644
    --- a/htdocs/admin/oauth.php
    +++ b/htdocs/admin/oauth.php
    @@ -139,7 +139,6 @@ foreach ($list as $key)
         print '<td><label for="'.$key[2].'">'.$langs->trans($key[2]).'</label></td>';
         print '<td><input type="password" size="100" id="'.$key[2].'" name="'.$key[2].'" value="'.$conf->global->{$key[2]}.'">';
         print '</td></tr>';
    -
     }
     
     print '</table>'."\n";
    @@ -150,6 +149,6 @@ print '<div class="center"><input type="submit" class="button" value="'.$langs->
     
     print '</form>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/oauthlogintokens.php b/htdocs/admin/oauthlogintokens.php
    index 4406dbd9576..f29c49e9f38 100644
    --- a/htdocs/admin/oauthlogintokens.php
    +++ b/htdocs/admin/oauthlogintokens.php
    @@ -17,7 +17,7 @@
      */
     
     /**
    - * \file        htdocs/admin/oauthlogintoken.php
    + * \file        htdocs/admin/oauthlogintokens.php
      * \ingroup     oauth
      * \brief       Setup page to configure oauth access to login information
      */
    @@ -327,7 +327,6 @@ if ($mode == 'setup' && $user->admin)
     
             print '</form>';
         }
    -
     }
     
     if ($mode == 'test' && $user->admin)
    @@ -342,7 +341,7 @@ if ($mode == 'test' && $user->admin)
             $langs->load($driver);
             $printer = new $classname($db);
             //print '<pre>'.print_r($printer, true).'</pre>';
    -        if (count($printer->getlist_available_printers())) {
    +        if (count($printer->getlistAvailablePrinters())) {
                 if ($printer->listAvailablePrinters()==0) {
                     print $printer->resprint;
                 } else {
    @@ -352,11 +351,9 @@ if ($mode == 'test' && $user->admin)
             else {
                 print $langs->trans('PleaseConfigureDriverfromList');
             }
    -
         }
     
         print '</table>';
    -
     }
     
     if ($mode == 'userconf' && $user->admin)
    @@ -394,6 +391,6 @@ if ($mode == 'userconf' && $user->admin)
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/openinghours.php b/htdocs/admin/openinghours.php
    new file mode 100644
    index 00000000000..19225273bfc
    --- /dev/null
    +++ b/htdocs/admin/openinghours.php
    @@ -0,0 +1,232 @@
    +<?php
    +/* Copyright (C) 2018       Alexandre Spangaro      <aspangaro@zendsi.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *	\file       htdocs/admin/openinghours.php
    + *	\ingroup    accountant
    + *	\brief      Setup page to configure accountant / auditor
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
    +
    +$action=GETPOST('action','aZ09');
    +$contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'adminaccoutant';   // To manage different context of search
    +
    +// Load translation files required by the page
    +$langs->loadLangs(array('admin', 'companies'));
    +
    +if (! $user->admin) accessforbidden();
    +
    +$error=0;
    +
    +
    +/*
    + * Actions
    + */
    +
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +if ( ($action == 'update' && ! GETPOST("cancel",'alpha'))
    +|| ($action == 'updateedit') )
    +{
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NAME", GETPOST("nom",'nohtml'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_ADDRESS", GETPOST("address",'nohtml'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_TOWN", GETPOST("town",'nohtml'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_ZIP", GETPOST("zipcode",'alpha'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_STATE", GETPOST("state_id",'alpha'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_REGION", GETPOST("region_code",'alpha'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_COUNTRY", GETPOST('country_id','int'), 'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_PHONE", GETPOST("tel",'alpha'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_FAX", GETPOST("fax",'alpha'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_MAIL", GETPOST("mail",'alpha'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_WEB", GETPOST("web",'alpha'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_CODE", GETPOST("code",'nohtml'),'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_INFO_ACCOUNTANT_NOTE", GETPOST("note",'none'),'chaine',0,'',$conf->entity);
    +
    +	if ($action != 'updateedit' && ! $error)
    +	{
    +		header("Location: ".$_SERVER["PHP_SELF"]);
    +		exit;
    +	}
    +}
    +
    +/*
    + * View
    + */
    +
    +$help_url='';
    +llxHeader('',$langs->trans("CompanyFoundation"),$help_url);
    +
    +print load_fiche_titre($langs->trans("CompanyFoundation"),'','title_setup');
    +
    +$head = company_admin_prepare_head();
    +
    +dol_fiche_head($head, 'openinghours', $langs->trans("Company"), -1, 'company');
    +
    +$form=new Form($db);
    +$formother=new FormOther($db);
    +$formcompany=new FormCompany($db);
    +
    +$countrynotdefined='<font class="error">'.$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')</font>';
    +
    +print '<span class="opacitymedium">'.$langs->trans("OpeningHoursDesc")."</span><br>\n";
    +print "<br>\n";
    +
    +if ($action == 'edit' || $action == 'updateedit')
    +{
    +	/**
    +	 * Edit parameters
    +	 */
    +	print "\n".'<script type="text/javascript" language="javascript">';
    +	print '$(document).ready(function () {
    +			  $("#selectcountry_id").change(function() {
    +				document.form_index.action.value="updateedit";
    +				document.form_index.submit();
    +			  });
    +		  });';
    +	print '</script>'."\n";
    +
    +	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'" name="form_index">';
    +	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +	print '<input type="hidden" name="action" value="update">';
    +
    +	print '<table class="noborder" width="100%">';
    +	print '<tr class="liste_titre"><th class="titlefield wordbreak">'.$langs->trans("Day").'</th><th>'.$langs->trans("Value").'</th></tr>'."\n";
    +
    +	// Name
    +	print '<tr class="oddeven"><td class="fieldrequired"><label for="name">'.$langs->trans("CompanyName").'</label></td><td>';
    +	print '<input name="nom" id="name" class="minwidth200" value="'. ($conf->global->MAIN_INFO_ACCOUNTANT_NAME?$conf->global->MAIN_INFO_ACCOUNTANT_NAME: GETPOST("nom",'nohtml')) . '" autofocus="autofocus"></td></tr>'."\n";
    +
    +	// Address
    +	print '<tr class="oddeven"><td><label for="address">'.$langs->trans("CompanyAddress").'</label></td><td>';
    +	print '<textarea name="address" id="address" class="quatrevingtpercent" rows="'.ROWS_3.'">'. ($conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS?$conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS: GETPOST("address",'nohtml')) . '</textarea></td></tr>'."\n";
    +
    +	print '<tr class="oddeven"><td><label for="zipcode">'.$langs->trans("CompanyZip").'</label></td><td>';
    +	print '<input class="minwidth100" name="zipcode" id="zipcode" value="'. ($conf->global->MAIN_INFO_ACCOUNTANT_ZIP?$conf->global->MAIN_INFO_ACCOUNTANT_ZIP: GETPOST("zipcode",'alpha')) . '"></td></tr>'."\n";
    +
    +	print '<tr class="oddeven"><td><label for="town">'.$langs->trans("CompanyTown").'</label></td><td>';
    +	print '<input name="town" class="minwidth100" id="town" value="'. ($conf->global->MAIN_INFO_ACCOUNTANT_TOWN?$conf->global->MAIN_INFO_ACCOUNTANT_TOWN: GETPOST("town",'nohtml')) . '"></td></tr>'."\n";
    +
    +	// Country
    +	print '<tr class="oddeven"><td class="fieldrequired"><label for="selectcountry_id">'.$langs->trans("Country").'</label></td><td class="maxwidthonsmartphone">';
    +	//if (empty($country_selected)) $country_selected=substr($langs->defaultlang,-2);    // By default, country of localization
    +	print $form->select_country($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY, 'country_id');
    +	if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
    +	print '</td></tr>'."\n";
    +
    +	print '<tr class="oddeven"><td><label for="state_id">'.$langs->trans("State").'</label></td><td class="maxwidthonsmartphone">';
    +	$formcompany->select_departement($conf->global->MAIN_INFO_ACCOUNTANT_STATE, $conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY, 'state_id');
    +	print '</td></tr>'."\n";
    +
    +	print '<tr class="oddeven"><td><label for="phone">'.$langs->trans("Phone").'</label></td><td>';
    +	print '<input name="tel" id="phone" value="'. $conf->global->MAIN_INFO_ACCOUNTANT_PHONE . '"></td></tr>';
    +	print '</td></tr>'."\n";
    +
    +	print '<tr class="oddeven"><td><label for="fax">'.$langs->trans("Fax").'</label></td><td>';
    +	print '<input name="fax" id="fax" value="'. $conf->global->MAIN_INFO_ACCOUNTANT_FAX . '"></td></tr>';
    +	print '</td></tr>'."\n";
    +
    +	print '<tr class="oddeven"><td><label for="email">'.$langs->trans("EMail").'</label></td><td>';
    +	print '<input name="mail" id="email" class="minwidth200" value="'. $conf->global->MAIN_INFO_ACCOUNTANT_MAIL . '"></td></tr>';
    +	print '</td></tr>'."\n";
    +
    +	// Web
    +	print '<tr class="oddeven"><td><label for="web">'.$langs->trans("Web").'</label></td><td>';
    +	print '<input name="web" id="web" class="minwidth300" value="'. $conf->global->MAIN_INFO_ACCOUNTANT_WEB . '"></td></tr>';
    +	print '</td></tr>'."\n";
    +
    +	// Code
    +	print '<tr class="oddeven"><td><label for="code">'.$langs->trans("AccountantFileNumber").'</label></td><td>';
    +	print '<input name="code" id="code" class="minwidth100" value="'. ($conf->global->MAIN_INFO_ACCOUNTANT_CODE?$conf->global->MAIN_INFO_ACCOUNTANT_CODE: GETPOST("code",'nohtml')) . '" autofocus="autofocus"></td></tr>'."\n";
    +
    +	// Note
    +	print '<tr class="oddeven"><td class="tdtop"><label for="note">'.$langs->trans("Note").'</label></td><td>';
    +	print '<textarea class="flat quatrevingtpercent" name="note" id="note" rows="'.ROWS_5.'">'.(GETPOST('note','none') ? GETPOST('note','none') : $conf->global->MAIN_INFO_ACCOUNTANT_NOTE).'</textarea></td></tr>';
    +	print '</td></tr>';
    +
    +	print '</table>';
    +
    +	print '<br><div class="center">';
    +	print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
    +	print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
    +	print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
    +	print '</div>';
    +	print '<br>';
    +
    +	print '</form>';
    +}
    +else
    +{
    +	/*
    +	 * Show parameters
    +	 */
    +
    +	// Actions buttons
    +	//print '<div class="tabsAction">';
    +	//print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a>';
    +	//print '</div><br>';
    +
    +	print '<div class="div-table-responsive-no-min">';
    +	print '<table class="noborder" width="100%">';
    +	print '<tr class="liste_titre"><td>'.$langs->trans("Day").'</td><td>'.$langs->trans("Value").'</td></tr>';
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("Monday").'</td><td>' . nl2br(empty($conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS)?'':$conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS) . '</td></tr>';
    +
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("Tuesday").'</td><td>' . (empty($conf->global->MAIN_INFO_ACCOUNTANT_ZIP)?'':$conf->global->MAIN_INFO_ACCOUNTANT_ZIP) . '</td></tr>';
    +
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("Wednesday").'</td><td>' . (empty($conf->global->MAIN_INFO_ACCOUNTANT_TOWN)?'':$conf->global->MAIN_INFO_ACCOUNTANT_TOWN) . '</td></tr>';
    +
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("Thursday").'</td><td>';
    +	if (! empty($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY))
    +	{
    +		$code = getCountry($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY, 2);
    +		$img=picto_from_langcode($code);
    +		print $img?$img.' ':'';
    +		print getCountry($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY,1);
    +	}
    +	print '</td></tr>';
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("Friday").'</td><td>' . dol_print_phone($conf->global->MAIN_INFO_ACCOUNTANT_PHONE,$mysoc->country_code) . '</td></tr>';
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("Saturday").'</td><td>' . dol_print_phone($conf->global->MAIN_INFO_ACCOUNTANT_FAX,$mysoc->country_code) . '</td></tr>';
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("Sunday").'</td><td>' . dol_print_email($conf->global->MAIN_INFO_ACCOUNTANT_MAIL,0,0,0,80) . '</td></tr>';
    +
    +	print '</table>';
    +	print "</div>";
    +
    +	print '</form>';
    +
    +	// Actions buttons
    +	print '<div class="tabsAction">';
    +	print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a></div>';
    +	print '</div>';
    +}
    +
    +llxFooter();
    +
    +$db->close();
    diff --git a/htdocs/admin/order_extrafields.php b/htdocs/admin/order_extrafields.php
    index 361fc5b67bb..789120a7da7 100644
    --- a/htdocs/admin/order_extrafields.php
    +++ b/htdocs/admin/order_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      *
    @@ -85,7 +85,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -98,7 +98,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -117,6 +117,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/orderdet_extrafields.php b/htdocs/admin/orderdet_extrafields.php
    index c75551cf9f0..d998cddb35c 100644
    --- a/htdocs/admin/orderdet_extrafields.php
    +++ b/htdocs/admin/orderdet_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
    @@ -86,7 +86,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -99,7 +99,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -118,6 +118,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/payment.php b/htdocs/admin/payment.php
    index 1864fdb557c..816ab8344ce 100644
    --- a/htdocs/admin/payment.php
    +++ b/htdocs/admin/payment.php
    @@ -83,7 +83,6 @@ if ($action == 'setparams')
     	{
     	    setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
     	}
    -
     }
     
     
    @@ -217,7 +216,6 @@ foreach ($dirmodels as $reldir)
                                 print '</td>';
     
                                 print "</tr>\n";
    -
                             }
                         }
                     }
    @@ -262,7 +260,6 @@ print '</form>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/pdf.php b/htdocs/admin/pdf.php
    index f988b27c5e6..37c836043a0 100644
    --- a/htdocs/admin/pdf.php
    +++ b/htdocs/admin/pdf.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012-2107 Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -32,11 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
     
     // Load translation files required by the page
    -$langs->loadLangs(array('admin', 'languages', 'other'));
    -
    -$langs->load("companies");
    -$langs->load("products");
    -$langs->load("members");
    +$langs->loadLangs(array('admin', 'languages', 'other', 'companies', 'products', 'members'));
     
     if (! $user->admin) accessforbidden();
     
    @@ -54,29 +50,31 @@ if ($cancel) {
     
     if ($action == 'update')
     {
    -	dolibarr_set_const($db, "MAIN_PDF_FORMAT",    $_POST["MAIN_PDF_FORMAT"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_PDF_FORMAT", $_POST["MAIN_PDF_FORMAT"],'chaine',0,'', $conf->entity);
     
    -	dolibarr_set_const($db, "MAIN_PDF_MARGIN_LEFT",    $_POST["MAIN_PDF_MARGIN_LEFT"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_PDF_MARGIN_RIGHT",   $_POST["MAIN_PDF_MARGIN_RIGHT"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_PDF_MARGIN_TOP",     $_POST["MAIN_PDF_MARGIN_TOP"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_PDF_MARGIN_BOTTOM",  $_POST["MAIN_PDF_MARGIN_BOTTOM"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_PDF_MARGIN_LEFT", $_POST["MAIN_PDF_MARGIN_LEFT"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_PDF_MARGIN_RIGHT", $_POST["MAIN_PDF_MARGIN_RIGHT"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_PDF_MARGIN_TOP", $_POST["MAIN_PDF_MARGIN_TOP"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_PDF_MARGIN_BOTTOM", $_POST["MAIN_PDF_MARGIN_BOTTOM"],'chaine',0,'', $conf->entity);
     
    -    dolibarr_set_const($db, "MAIN_PROFID1_IN_ADDRESS",    $_POST["MAIN_PROFID1_IN_ADDRESS"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_PROFID2_IN_ADDRESS",    $_POST["MAIN_PROFID2_IN_ADDRESS"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_PROFID3_IN_ADDRESS",    $_POST["MAIN_PROFID3_IN_ADDRESS"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_PROFID4_IN_ADDRESS",    $_POST["MAIN_PROFID4_IN_ADDRESS"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT",    $_POST["MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT"],'chaine',0,'',$conf->entity);
    +    dolibarr_set_const($db, "MAIN_PROFID1_IN_ADDRESS", $_POST["MAIN_PROFID1_IN_ADDRESS"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_PROFID2_IN_ADDRESS", $_POST["MAIN_PROFID2_IN_ADDRESS"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_PROFID3_IN_ADDRESS", $_POST["MAIN_PROFID3_IN_ADDRESS"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_PROFID4_IN_ADDRESS", $_POST["MAIN_PROFID4_IN_ADDRESS"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT", $_POST["MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT"],'chaine',0,'', $conf->entity);
     
    -	dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS",    $_POST["MAIN_TVAINTRA_NOT_IN_ADDRESS"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DESC",    $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DESC"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_REF",     $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_REF"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_PDF_USE_ISO_LOCATION",     $_POST["MAIN_PDF_USE_ISO_LOCATION"],'chaine',0,'',$conf->entity);
    -	dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS",     $_POST["MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS", $_POST["MAIN_TVAINTRA_NOT_IN_ADDRESS"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DESC", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DESC"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_REF", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_REF"],'chaine',0,'', $conf->entity);
    +
    +	dolibarr_set_const($db, "MAIN_INVERT_SENDER_RECIPIENT", $_POST["MAIN_INVERT_SENDER_RECIPIENT"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_PDF_USE_ISO_LOCATION", $_POST["MAIN_PDF_USE_ISO_LOCATION"],'chaine',0,'', $conf->entity);
    +	dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS", $_POST["MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS"],'chaine',0,'', $conf->entity);
     
     
    -    dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_SECOND_TAX",    $_POST["MAIN_PDF_MAIN_HIDE_SECOND_TAX"],'chaine',0,'',$conf->entity);
    -    dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_THIRD_TAX",     $_POST["MAIN_PDF_MAIN_HIDE_THIRD_TAX"],'chaine',0,'',$conf->entity);
    +    dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_SECOND_TAX", $_POST["MAIN_PDF_MAIN_HIDE_SECOND_TAX"],'chaine',0,'', $conf->entity);
    +    dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_THIRD_TAX", $_POST["MAIN_PDF_MAIN_HIDE_THIRD_TAX"],'chaine',0,'', $conf->entity);
     
     	header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
     	exit;
    @@ -519,7 +517,6 @@ else	// Show
                 $text.= yn($conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX,1);
                 $text.= '</td></tr>';
             }
    -
         }
     
         // Sales TAX / VAT information
    @@ -576,31 +573,36 @@ else	// Show
     	print "</td>";
     	print '</tr>';
     
    -	//Desc
    +	// Hide Desc
     
     	print '<tr class="oddeven"><td>'.$langs->trans("HideDescOnPDF").'</td><td colspan="2">';
     	print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC,1);
     	print '</td></tr>';
     
    -	//Ref
    +	// Hide Ref
     
     	print '<tr class="oddeven"><td>'.$langs->trans("HideRefOnPDF").'</td><td colspan="2">';
     	print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF,1);
     	print '</td></tr>';
     
    -	//Details
    +	// Hide Details
     
     	print '<tr class="oddeven"><td>'.$langs->trans("HideDetailsOnPDF").'</td><td colspan="2">';
     	print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS,1);
     	print '</td></tr>';
     
    +	// Invert sender and recipient
    +	print '<tr class="oddeven"><td>'.$langs->trans("SwapSenderAndRecipientOnPDF").'</td><td colspan="2">';
    +	print yn($conf->global->MAIN_INVERT_SENDER_RECIPIENT,1);
    +	print '</td></tr>';
     
    -    print '<tr class="oddeven"><td>'.$langs->trans("PlaceCustomerAddressToIsoLocation").'</td><td colspan="2">';
    +	// Use French location
    +	print '<tr class="oddeven"><td>'.$langs->trans("PlaceCustomerAddressToIsoLocation").'</td><td colspan="2">';
     	print yn($conf->global->MAIN_PDF_USE_ISO_LOCATION,1);
     	print '</td></tr>';
     
     
    -    print '<tr class="oddeven"><td>'.$langs->trans("ShowDetailsInPDFPageFoot").'</td><td colspan="2">';
    +	print '<tr class="oddeven"><td>'.$langs->trans("ShowDetailsInPDFPageFoot").'</td><td colspan="2">';
     	print $arraydetailsforpdffoot[($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS ? $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS : 0)];
     	print '</td></tr>';
     
    @@ -668,7 +670,6 @@ else	// Show
     	print '<br>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/perms.php b/htdocs/admin/perms.php
    index 50bf939c07f..e7cf64d768e 100644
    --- a/htdocs/admin/perms.php
    +++ b/htdocs/admin/perms.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Herve Prot           <herve.prot@symeos.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -218,5 +218,6 @@ print '</div>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
    -$db->close();
    +$db->close();
    \ No newline at end of file
    diff --git a/htdocs/admin/prelevement.php b/htdocs/admin/prelevement.php
    index 6fd40cf2825..6cec4a52bb9 100644
    --- a/htdocs/admin/prelevement.php
    +++ b/htdocs/admin/prelevement.php
    @@ -1,8 +1,9 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2013 Juanjo Menent        <jmenent@2byte.es>
    + * Copyright (C) 2019      Markus Welters       <markus@welters.de>
      *
      * 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
    @@ -21,7 +22,7 @@
     /**
      *	\file       htdocs/admin/prelevement.php
      *	\ingroup    prelevement
    - *	\brief      Page configuration des prelevements
    + *	\brief      Page to setup Withdrawals
      */
     
     require '../main.inc.php';
    @@ -80,6 +81,22 @@ if ($action == "set")
             $res = dolibarr_set_const($db, "PRELEVEMENT_USER", GETPOST("PRELEVEMENT_USER"),'chaine',0,'',$conf->entity);
             if (! $res > 0) $error++;
         }
    +    if (GETPOST("PRELEVEMENT_END_TO_END") || GETPOST("PRELEVEMENT_END_TO_END")=="")
    +    {
    +        $res = dolibarr_set_const($db, "PRELEVEMENT_END_TO_END", GETPOST("PRELEVEMENT_END_TO_END"),'chaine',0,'',$conf->entity);
    +        if (! $res > 0) $error++;
    +    }
    +    if (GETPOST("PRELEVEMENT_USTRD") || GETPOST("PRELEVEMENT_USTRD")=="")
    +    {
    +        $res = dolibarr_set_const($db, "PRELEVEMENT_USTRD", GETPOST("PRELEVEMENT_USTRD"),'chaine',0,'',$conf->entity);
    +        if (! $res > 0) $error++;
    +    }
    +
    +    if (GETPOST("PRELEVEMENT_ADDDAYS") || GETPOST("PRELEVEMENT_ADDDAYS")=="")
    +    {
    +        $res = dolibarr_set_const($db, "PRELEVEMENT_ADDDAYS", GETPOST("PRELEVEMENT_ADDDAYS"),'chaine',0,'',$conf->entity);
    +        if (! $res > 0) $error++;
    +    } else
     
         if (! $error)
     	{
    @@ -204,23 +221,41 @@ print "</tr>";
     
     // Bank account (from Banks module)
     print '<tr class="impair"><td class="fieldrequired">'.$langs->trans("BankToReceiveWithdraw").'</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     $form->select_comptes($conf->global->PRELEVEMENT_ID_BANKACCOUNT,'PRELEVEMENT_ID_BANKACCOUNT',0,"courant=1",1);
     print '</td></tr>';
     
     // ICS
     print '<tr class="pair"><td class="fieldrequired">'.$langs->trans("ICS").'</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     print '<input type="text" name="PRELEVEMENT_ICS" value="'.$conf->global->PRELEVEMENT_ICS.'" size="15" ></td>';
     print '</td></tr>';
     
     //User
     print '<tr class="impair"><td class="fieldrequired">'.$langs->trans("ResponsibleUser").'</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     print $form->select_dolusers($conf->global->PRELEVEMENT_USER, 'PRELEVEMENT_USER', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
     print '</td>';
     print '</tr>';
     
    +//EntToEnd
    +print '<tr class="pair"><td>'.$langs->trans("END_TO_END").'</td>';
    +print '<td class="left">';
    +print '<input type="text" name="PRELEVEMENT_END_TO_END" value="'.$conf->global->PRELEVEMENT_END_TO_END.'" size="15" ></td>';
    +print '</td></tr>';
    +
    +//USTRD
    +print '<tr class="pair"><td>'.$langs->trans("USTRD").'</td>';
    +print '<td class="left">';
    +print '<input type="text" name="PRELEVEMENT_USTRD" value="'.$conf->global->PRELEVEMENT_USTRD.'" size="15" ></td>';
    +print '</td></tr>';
    +
    +//ADDDAYS
    +print '<tr class="pair"><td>'.$langs->trans("ADDDAYS").'</td>';
    +print '<td align="left">';
    +if (! $conf->global->PRELEVEMENT_ADDDAYS) $conf->global->PRELEVEMENT_ADDDAYS=0;
    +print '<input type="text" name="PRELEVEMENT_ADDDAYS" value="'.$conf->global->PRELEVEMENT_ADDDAYS.'" size="15" ></td>';
    +print '</td></tr>';
     print '</table>';
     print '<br>';
     
    @@ -410,7 +445,7 @@ if (! empty($conf->global->MAIN_MODULE_NOTIFICATION))
     
         $sql = "SELECT u.rowid, u.lastname, u.firstname, u.fk_soc, u.email";
         $sql.= " FROM ".MAIN_DB_PREFIX."user as u";
    -    $sql.= " WHERE entity IN (".getEntity('facture').")";
    +    $sql.= " WHERE entity IN (".getEntity('invoice').")";
     
         $resql=$db->query($sql);
         if ($resql)
    @@ -443,7 +478,6 @@ if (! empty($conf->global->MAIN_MODULE_NOTIFICATION))
         {
             $num = $db->num_rows($resql);
             $i = 0;
    -        $var = false;
             while ($i < $num)
             {
                 $obj = $db->fetch_object($resql);
    @@ -464,7 +498,7 @@ if (! empty($conf->global->MAIN_MODULE_NOTIFICATION))
         print '<td align="right">'.$langs->trans("Action").'</td>';
         print "</tr>\n";
     
    -    print '<tr class="impair"><td align="left">';
    +    print '<tr class="impair"><td class="left">';
         print $form->selectarray('user',$internalusers);//  select_dolusers(0,'user',0);
         print '</td>';
     
    @@ -489,7 +523,6 @@ if (! empty($conf->global->MAIN_MODULE_NOTIFICATION))
     	{
     	    $num = $db->num_rows($resql);
     	    $i = 0;
    -	    $var = false;
     	    while ($i < $num)
     	    {
     	        $obj = $db->fetch_object($resql);
    @@ -511,5 +544,6 @@ if (! empty($conf->global->MAIN_MODULE_NOTIFICATION))
     }
     */
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/propal.php b/htdocs/admin/propal.php
    index 94b1d1dac67..cf860cd64ba 100644
    --- a/htdocs/admin/propal.php
    +++ b/htdocs/admin/propal.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004      Sebastien Di Cintio         <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier              <benoit.mortier@opensides.be>
      * Copyright (C) 2004      Eric Seigne                 <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin               <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin               <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
      * Copyright (C) 2011-2013 Juanjo Menent			   <jmenent@2byte.es>
      *
    @@ -649,7 +649,6 @@ print "</td></tr>\n";
     
     print '</table>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/proxy.php b/htdocs/admin/proxy.php
    index 87a89f5d99b..9490a291729 100644
    --- a/htdocs/admin/proxy.php
    +++ b/htdocs/admin/proxy.php
    @@ -205,5 +205,6 @@ print '</div>';
     
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/receiptprinter.php b/htdocs/admin/receiptprinter.php
    index 4465017bdc6..b8d92687d84 100644
    --- a/htdocs/admin/receiptprinter.php
    +++ b/htdocs/admin/receiptprinter.php
    @@ -52,6 +52,12 @@ if (!$mode) $mode='config';
     
     // used in library escpos maybe useful if php doesn't support gzdecode
     if (!function_exists('gzdecode')) {
    +    /**
    +     * Gzdecode
    +     *
    +     * @param string    $data   data to deflate
    +     * @return string           data deflated
    +     */
         function gzdecode($data)
         {
             return gzinflate(substr($data,10,-8));
    @@ -243,14 +249,14 @@ if ($mode == 'config' && $user->admin)
         print "</tr>\n";
         $ret = $printer->listprinters();
         $nbofprinters = count($printer->listprinters);
    -    
    +
         if ($ret > 0) {
             setEventMessages($printer->error, $printer->errors, 'errors');
         } else {
    -        for ($line=0; $line < $nbofprinters; $line++) 
    +        for ($line=0; $line < $nbofprinters; $line++)
             {
                 print '<tr class="oddeven">';
    -            if ($action=='editprinter' && $printer->listprinters[$line]['rowid']==$printerid) 
    +            if ($action=='editprinter' && $printer->listprinters[$line]['rowid']==$printerid)
                 {
                     print '<input type="hidden" name="printerid" value="'.$printer->listprinters[$line]['rowid'].'">';
                     print '<td><input size="50" type="text" name="printername" value="'.$printer->listprinters[$line]['name'].'"></td>';
    @@ -285,7 +291,7 @@ if ($mode == 'config' && $user->admin)
             }
         }
     
    -    if ($action!='editprinter') 
    +    if ($action!='editprinter')
         {
             if ($nbofprinters > 0)
             {
    @@ -299,7 +305,7 @@ if ($mode == 'config' && $user->admin)
                 print '<th></th>';
                 print "</tr>\n";
             }
    -        
    +
             print '<tr>';
             print '<td><input size="50" type="text" name="printername"></td>';
             $ret = $printer->selectTypePrinter();
    @@ -315,7 +321,7 @@ if ($mode == 'config' && $user->admin)
         print '</table>';
     
         dol_fiche_end();
    -    
    +
         if ($action!='editprinter') {
             print '<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("Add")).'"></div>';
         } else {
    @@ -324,9 +330,9 @@ if ($mode == 'config' && $user->admin)
         print '</form>';
     
         print '<div><p></div>';
    -    
    +
         dol_fiche_head();
    -    
    +
         print $langs->trans("ReceiptPrinterTypeDesc")."<br><br>\n";
         print '<table class="noborder" width="100%">'."\n";
         print '<tr class="oddeven"><td>'.$langs->trans("CONNECTOR_DUMMY").':</td><td>'.$langs->trans("CONNECTOR_DUMMY_HELP").'</td></tr>';
    @@ -338,7 +344,7 @@ if ($mode == 'config' && $user->admin)
         dol_fiche_end();
     
         print '<div><p></div>';
    -    
    +
         dol_fiche_head();
         print $langs->trans("ReceiptPrinterProfileDesc")."<br><br>\n";
         print '<table class="noborder" width="100%">'."\n";
    @@ -378,7 +384,7 @@ if ($mode == 'template' && $user->admin)
             setEventMessages($printer->error, $printer->errors, 'errors');
         } else {
             $max = count($printer->listprinterstemplates);
    -        for ($line=0; $line < $max; $line++) 
    +        for ($line=0; $line < $max; $line++)
             {
                 print '<tr class="oddeven">';
                 if ($action=='edittemplate' && $printer->listprinterstemplates[$line]['rowid']==$templateid) {
    @@ -423,7 +429,7 @@ if ($mode == 'template' && $user->admin)
         print '<th>'.$langs->trans("Description").'</th>';
         print "</tr>\n";
         $max = count($printer->tags);
    -    for ($tag=0; $tag < $max; $tag++) 
    +    for ($tag=0; $tag < $max; $tag++)
         {
             print '<tr class="oddeven">';
             print '<td>&lt;'.$printer->tags[$tag].'&gt;</td><td>'.$langs->trans(strtoupper($printer->tags[$tag])).'</td>';
    @@ -432,22 +438,20 @@ if ($mode == 'template' && $user->admin)
         print '</table>';
     
         dol_fiche_end();
    -
     }
     
     // to remove after test
    -$object=new stdClass();
    -$object->date_time = '2015-11-02 22:30:25';
    -$object->id = 1234;
    -$object->customer_firstname  = 'John';
    -$object->customer_lastname  = 'Deuf';
    -$object->vendor_firstname  = 'Jim';
    -$object->vendor_lastname  = 'Big';
    -$object->barcode = '3700123862396';
    +// $object=new stdClass();
    +// $object->date_time = '2015-11-02 22:30:25';
    +// $object->id = 1234;
    +// $object->customer_firstname  = 'John';
    +// $object->customer_lastname  = 'Deuf';
    +// $object->vendor_firstname  = 'Jim';
    +// $object->vendor_lastname  = 'Big';
    +// $object->barcode = '3700123862396';
     //$printer->sendToPrinter($object, 1, 16);
     //setEventMessages($printer->error, $printer->errors, 'errors');
     
    +// End of page
     llxFooter();
    -
     $db->close();
    -
    diff --git a/htdocs/admin/reception_extrafields.php b/htdocs/admin/reception_extrafields.php
    new file mode 100644
    index 00000000000..dbfccb60773
    --- /dev/null
    +++ b/htdocs/admin/reception_extrafields.php
    @@ -0,0 +1,127 @@
    +<?php
    +/* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    + * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
    + * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
    + * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
    + * Copyright (C) 2015		Claudio Aschieri		<c.aschieri@19.coop>
    + * Copyright (C) 2018	   Quentin Vial-Gouteyron   <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *      \file       htdocs/admin/reception_extrafields.php
    + *		\ingroup    reception
    + *		\brief      Page to setup extra fields of reception
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
    +
    +
    +if (!$user->admin)
    +	accessforbidden();
    +
    +$langs->load("admin");
    +$langs->load("other");
    +$langs->load("receptions");
    +$langs->load("deliveries");
    +
    +
    +$extrafields = new ExtraFields($db);
    +$form = new Form($db);
    +
    +// List of supported format
    +$tmptype2label=ExtraFields::$type2label;
    +$type2label=array('');
    +foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
    +
    +$action=GETPOST('action', 'alpha');
    +$attrname=GETPOST('attrname', 'alpha');
    +$elementtype='reception'; //Must be the $table_element of the class that manage extrafield
    +
    +if (!$user->admin) accessforbidden();
    +
    +
    +/*
    + * Actions
    + */
    +
    +require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
    +
    +
    +
    +/*
    + * View
    + */
    +
    +$textobject=$langs->transnoentitiesnoconv("Receptions");
    +
    +llxHeader('',$langs->trans("ReceptionsSetup"));
    +
    +$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
    +print load_fiche_titre($langs->trans("ReceptionsSetup"),$linkback,'title_setup');
    +print "<br>\n";
    +
    +$head = reception_admin_prepare_head();
    +
    +dol_fiche_head($head, 'attributes_reception', $langs->trans("Receptions"), -1, 'sending');
    +
    +require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
    +
    +dol_fiche_end();
    +
    +
    +// Buttons
    +if ($action != 'create' && $action != 'edit')
    +{
    +    print '<div class="tabsAction">';
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "</div>";
    +}
    +
    +
    +/* ************************************************************************** */
    +/*                                                                            */
    +/* Creation of an optional field											  */
    +/*                                                                            */
    +/* ************************************************************************** */
    +
    +if ($action == 'create')
    +{
    +    print "<br>";
    +    print load_fiche_titre($langs->trans('NewAttribute'));
    +
    +    require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    +}
    +
    +/* ************************************************************************** */
    +/*                                                                            */
    +/* Edition of an optional field                                                */
    +/*                                                                            */
    +/* ************************************************************************** */
    +if ($action == 'edit' && ! empty($attrname))
    +{
    +    print "<br>";
    +    print load_fiche_titre($langs->trans("FieldEdition", $attrname));
    +
    +    require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
    +}
    +
    +llxFooter();
    +
    +$db->close();
    diff --git a/htdocs/admin/reception_setup.php b/htdocs/admin/reception_setup.php
    new file mode 100644
    index 00000000000..4aa362932af
    --- /dev/null
    +++ b/htdocs/admin/reception_setup.php
    @@ -0,0 +1,520 @@
    +<?php
    +/* Copyright (C) 2018	   Quentin Vial-Gouteyron    <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *	    \file       htdocs/admin/confexped.php
    + *		\ingroup    produit
    + *		\brief      Page to setup reception module
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php';
    +
    +$langs->load("admin");
    +$langs->load("receptions");
    +$langs->load('other');
    +
    +
    +if (!$user->admin)
    +  accessforbidden();
    +
    +$action=GETPOST('action','alpha');
    +$value=GETPOST('value','alpha');
    +$label = GETPOST('label','alpha');
    +$scandir = GETPOST('scan_dir','alpha');
    +$type='reception';
    +
    +
    +/*
    + * Actions
    + */
    +
    +if (! empty($conf->reception->enabled) && empty($conf->global->MAIN_SUBMODULE_RECEPTION))
    +{
    +    // This option should always be set to on when module is on.
    +    dolibarr_set_const($db, "MAIN_SUBMODULE_RECEPTION", "1",'chaine',0,'',$conf->entity);
    +}
    +
    +if (empty($conf->global->RECEPTION_ADDON_NUMBER))
    +{
    +    $conf->global->RECEPTION_ADDON_NUMBER='mod_reception_beryl';
    +}
    +
    +
    +/*
    + * Actions
    + */
    +
    +include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
    +
    +if ($action == 'updateMask')
    +{
    +	$maskconst=GETPOST('maskconstreception','alpha');
    +	$maskvalue=GETPOST('maskreception','alpha');
    +	if (! empty($maskconst))
    +		$res = dolibarr_set_const($db,$maskconst,$maskvalue,'chaine',0,'',$conf->entity);
    +
    +	if (isset($res))
    +	{
    +		if ($res > 0)
    +			setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    +		else
    +			setEventMessages($langs->trans("Error"), null, 'errors');
    +	}
    +}
    +
    +else if ($action == 'set_param')
    +{
    +	$freetext=GETPOST('RECEPTION_FREE_TEXT','none');	// No alpha here, we want exact string
    +	$res = dolibarr_set_const($db, "RECEPTION_FREE_TEXT",$freetext,'chaine',0,'',$conf->entity);
    +	if ($res <= 0)
    +	{
    +		$error++;
    +		setEventMessages($langs->trans("Error"), null, 'errors');
    +	}
    +
    +	$draft=GETPOST('RECEPTION_DRAFT_WATERMARK','alpha');
    +	$res = dolibarr_set_const($db, "RECEPTION_DRAFT_WATERMARK",trim($draft),'chaine',0,'',$conf->entity);
    +	if ($res <= 0)
    +	{
    +		$error++;
    +		setEventMessages($langs->trans("Error"), null, 'errors');
    +	}
    +
    +	if (! $error)
    +	{
    +		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    +	}
    +}
    +
    +else if ($action == 'specimen')
    +{
    +	$modele=GETPOST('module','alpha');
    +
    +	$exp = new Reception($db);
    +	$exp->initAsSpecimen();
    +
    +	// Search template files
    +	$file=''; $classname=''; $filefound=0;
    +	$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
    +	foreach($dirmodels as $reldir)
    +	{
    +	    $file=dol_buildpath($reldir."core/modules/reception/doc/pdf_".$modele.".modules.php",0);
    +		if (file_exists($file))
    +		{
    +			$filefound=1;
    +			$classname = "pdf_".$modele;
    +			break;
    +		}
    +	}
    +
    +	if ($filefound)
    +	{
    +		require_once $file;
    +
    +		$module = new $classname($db);
    +
    +		if ($module->write_file($exp,$langs) > 0)
    +		{
    +			header("Location: ".DOL_URL_ROOT."/document.php?modulepart=reception&file=SPECIMEN.pdf");
    +			return;
    +		}
    +		else
    +		{
    +			setEventMessages($module->error, $module->errors, 'errors');
    +			dol_syslog($module->error, LOG_ERR);
    +		}
    +	}
    +	else
    +	{
    +		setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
    +		dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
    +	}
    +}
    +
    +// Activate a model
    +else if ($action == 'set')
    +{
    +	$ret = addDocumentModel($value, $type, $label, $scandir);
    +}
    +
    +else if ($action == 'del')
    +{
    +	$ret = delDocumentModel($value, $type);
    +	if ($ret > 0)
    +	{
    +        if ($conf->global->RECEPTION_ADDON_PDF == "$value") dolibarr_del_const($db, 'RECEPTION_ADDON_PDF',$conf->entity);
    +	}
    +}
    +
    +// Set default model
    +else if ($action == 'setdoc')
    +{
    +	if (dolibarr_set_const($db, "RECEPTION_ADDON_PDF",$value,'chaine',0,'',$conf->entity))
    +	{
    +		// La constante qui a ete lue en avant du nouveau set
    +		// on passe donc par une variable pour avoir un affichage coherent
    +		$conf->global->RECEPTION_ADDON_PDF = $value;
    +	}
    +
    +	// On active le modele
    +	$ret = delDocumentModel($value, $type);
    +	if ($ret > 0)
    +	{
    +		$ret = addDocumentModel($value, $type, $label, $scandir);
    +	}
    +}
    +
    +else if ($action == 'setmodel')
    +{
    +	dolibarr_set_const($db, "RECEPTION_ADDON_NUMBER",$value,'chaine',0,'',$conf->entity);
    +}
    +
    +
    +
    +
    +/*
    + * View
    + */
    +
    +$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
    +
    +$form=new Form($db);
    +
    +llxHeader("",$langs->trans("ReceptionsSetup"));
    +
    +$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
    +print load_fiche_titre($langs->trans("ReceptionsSetup"),$linkback,'title_setup');
    +print '<br>';
    +$head = reception_admin_prepare_head();
    +
    +dol_fiche_head($head, 'reception', $langs->trans("Receptions"), -1, 'sending');
    +
    +// Reception numbering model
    +
    +print load_fiche_titre($langs->trans("ReceptionsNumberingModules"));
    +
    +print '<table class="noborder" width="100%">';
    +print '<tr class="liste_titre">';
    +print '<td width="100">'.$langs->trans("Name").'</td>';
    +print '<td>'.$langs->trans("Description").'</td>';
    +print '<td>'.$langs->trans("Example").'</td>';
    +print '<td class="center" width="60">'.$langs->trans("Status").'</td>';
    +print '<td class="center" width="80">'.$langs->trans("ShortInfo").'</td>';
    +print "</tr>\n";
    +
    +clearstatcache();
    +
    +foreach ($dirmodels as $reldir)
    +{
    +	$dir = dol_buildpath($reldir."core/modules/reception/");
    +	
    +	if (is_dir($dir))
    +	{
    +		$handle = opendir($dir);
    +		if (is_resource($handle))
    +		{
    +			while (($file = readdir($handle))!==false)
    +			{
    +				if (substr($file, 0, 14) == 'mod_reception_' && substr($file, dol_strlen($file)-3, 3) == 'php')
    +				{
    +					$file = substr($file, 0, dol_strlen($file)-4);
    +
    +					require_once $dir.$file.'.php';
    +
    +					$module = new $file;
    +
    +					if ($module->isEnabled())
    +					{
    +						// Show modules according to features level
    +						if ($module->version == 'development'  && $conf->global->MAIN_FEATURES_LEVEL < 2) continue;
    +						if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue;
    +
    +						print '<tr><td>'.$module->nom."</td>\n";
    +						print '<td>';
    +						print $module->info();
    +						print '</td>';
    +
    +                        // Show example of numbering module
    +                        print '<td class="nowrap">';
    +                        $tmp=$module->getExample();
    +                        if (preg_match('/^Error/',$tmp)) {
    +							$langs->load("errors"); print '<div class="error">'.$langs->trans($tmp).'</div>';
    +						}
    +                        elseif ($tmp=='NotConfigured') print $langs->trans($tmp);
    +                        else print $tmp;
    +                        print '</td>'."\n";
    +
    +						print '<td align="center">';
    +						if ($conf->global->RECEPTION_ADDON_NUMBER == "$file")
    +						{
    +							print img_picto($langs->trans("Activated"),'switch_on');
    +						}
    +						else
    +						{
    +							print '<a href="'.$_SERVER["PHP_SELF"].'?action=setmodel&amp;value='.$file.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'">';
    +							print img_picto($langs->trans("Disabled"),'switch_off');
    +							print '</a>';
    +						}
    +						print '</td>';
    +
    +						$reception=new Reception($db);
    +						$reception->initAsSpecimen();
    +
    +						// Info
    +						$htmltooltip='';
    +						$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
    +						$nextval=$module->getNextValue($mysoc,$reception);
    +                        if ("$nextval" != $langs->trans("NotAvailable")) {  // Keep " on nextval
    +                            $htmltooltip.=''.$langs->trans("NextValue").': ';
    +                            if ($nextval) {
    +                                if (preg_match('/^Error/',$nextval) || $nextval=='NotConfigured')
    +                                    $nextval = $langs->trans($nextval);
    +                                $htmltooltip.=$nextval.'<br>';
    +                            } else {
    +                                $htmltooltip.=$langs->trans($module->error).'<br>';
    +                            }
    +                        }
    +
    +						print '<td align="center">';
    +						print $form->textwithpicto('',$htmltooltip,1,0);
    +						print '</td>';
    +
    +						print '</tr>';
    +					}
    +				}
    +			}
    +			closedir($handle);
    +		}
    +	}
    +}
    +
    +print '</table><br>';
    +
    +
    +/*
    + *  Documents models for Receptions Receipt
    + */
    +print load_fiche_titre($langs->trans("ReceptionsReceiptModel"));
    +
    +// Defini tableau def de modele invoice
    +$type="reception";
    +$def = array();
    +
    +$sql = "SELECT nom";
    +$sql.= " FROM ".MAIN_DB_PREFIX."document_model";
    +$sql.= " WHERE type = '".$type."'";
    +$sql.= " AND entity = ".$conf->entity;
    +
    +$resql=$db->query($sql);
    +if ($resql)
    +{
    +	$i = 0;
    +	$num_rows=$db->num_rows($resql);
    +	while ($i < $num_rows)
    +	{
    +		$array = $db->fetch_array($resql);
    +		array_push($def, $array[0]);
    +		$i++;
    +	}
    +}
    +else
    +{
    +	dol_print_error($db);
    +}
    +
    +print '<table class="noborder" width="100%">';
    +print '<tr class="liste_titre">';
    +print '<td width="140">'.$langs->trans("Name").'</td>';
    +print '<td>'.$langs->trans("Description").'</td>';
    +print '<td align="center" width="60">'.$langs->trans("Status").'</td>';
    +print '<td align="center" width="60">'.$langs->trans("Default").'</td>';
    +print '<td align="center" width="80" class="nowrap">'.$langs->trans("ShortInfo").'</td>';
    +print '<td align="center" width="80" class="nowrap">'.$langs->trans("Preview").'</td>';
    +print "</tr>\n";
    +
    +clearstatcache();
    +
    +foreach ($dirmodels as $reldir)
    +{
    +    foreach (array('','/doc') as $valdir)
    +    {
    +    	$dir = dol_buildpath($reldir."core/modules/reception".$valdir);
    +
    +        if (is_dir($dir))
    +        {
    +            $handle=opendir($dir);
    +            if (is_resource($handle))
    +            {
    +                while (($file = readdir($handle))!==false)
    +                {
    +                    $filelist[]=$file;
    +                }
    +                closedir($handle);
    +                arsort($filelist);
    +
    +                foreach($filelist as $file)
    +                {
    +                    if (preg_match('/\.modules\.php$/i',$file) && preg_match('/^(pdf_|doc_)/',$file))
    +                    {
    +
    +                    	if (file_exists($dir.'/'.$file))
    +                    	{
    +                    		$name = substr($file, 4, dol_strlen($file) -16);
    +	                        $classname = substr($file, 0, dol_strlen($file) -12);
    +
    +	                        require_once $dir.'/'.$file;
    +	                        $module = new $classname($db);
    +
    +	                        $modulequalified=1;
    +	                        if ($module->version == 'development'  && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified=0;
    +	                        if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified=0;
    +
    +	                        if ($modulequalified)
    +	                        {
    +	                            print '<tr><td width="100">';
    +	                            print (empty($module->name)?$name:$module->name);
    +	                            print "</td><td>\n";
    +	                            if (method_exists($module,'info')) print $module->info($langs);
    +	                            else print $module->description;
    +	                            print '</td>';
    +
    +	                            // Active
    +	                            if (in_array($name, $def))
    +	                            {
    +	                            	print '<td align="center">'."\n";
    +	                            	print '<a href="'.$_SERVER["PHP_SELF"].'?action=del&value='.$name.'">';
    +	                            	print img_picto($langs->trans("Enabled"),'switch_on');
    +	                            	print '</a>';
    +	                            	print '</td>';
    +	                            }
    +	                            else
    +	                            {
    +	                                print '<td align="center">'."\n";
    +	                                print '<a href="'.$_SERVER["PHP_SELF"].'?action=set&value='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
    +	                                print "</td>";
    +	                            }
    +
    +	                            // Defaut
    +	                            print '<td align="center">';
    +	                            if ($conf->global->RECEPTION_ADDON_PDF == $name)
    +	                            {
    +	                                print img_picto($langs->trans("Default"),'on');
    +	                            }
    +	                            else
    +	                            {
    +	                                print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&value='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').'</a>';
    +	                            }
    +	                            print '</td>';
    +
    +	                           // Info
    +		    					$htmltooltip =    ''.$langs->trans("Name").': '.$module->name;
    +					    		$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
    +			                    if ($module->type == 'pdf')
    +			                    {
    +			                        $htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
    +			                    }
    +					    		$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
    +					    		$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
    +					    		$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
    +					    		$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
    +					    		$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
    +					    		$htmltooltip.='<br>'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark,1,1);
    +
    +	                            print '<td align="center">';
    +	                            print $form->textwithpicto('',$htmltooltip,1,0);
    +	                            print '</td>';
    +
    +	                            // Preview
    +	                            print '<td align="center">';
    +	                            if ($module->type == 'pdf')
    +	                            {
    +	                                print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'&amp;scan_dir='.$module->scandir.'&amp;label='.urlencode($module->name).'">'.img_object($langs->trans("Preview"),'reception').'</a>';
    +	                            }
    +	                            else
    +	                            {
    +	                                print img_object($langs->trans("PreviewNotAvailable"),'generic');
    +	                            }
    +	                            print '</td>';
    +
    +	                            print "</tr>\n";
    +	                        }
    +                    	}
    +                    }
    +                }
    +            }
    +        }
    +    }
    +}
    +
    +print '</table>';
    +print '<br>';
    +
    +
    +/*
    + * Other options
    + *
    + */
    +/*
    +print load_fiche_titre($langs->trans("OtherOptions"));
    +
    +print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
    +print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +print '<input type="hidden" name="action" value="set_param">';
    +
    +print "<table class=\"noborder\" width=\"100%\">";
    +print "<tr class=\"liste_titre\">";
    +print "<td>".$langs->trans("Parameter")."</td>\n";
    +print "</tr>";
    +
    +$substitutionarray=pdf_getSubstitutionArray($langs);
    +$substitutionarray['__(AnyTranslationKey)__']=$langs->trans("Translation");
    +$htmltext = '<i>'.$langs->trans("AvailableVariables").':<br>';
    +foreach($substitutionarray as $key => $val)	$htmltext.=$key.'<br>';
    +$htmltext.='</i>';
    +
    +print '<tr><td>';
    +print $form->textwithpicto($langs->trans("FreeLegalTextOnReceptions"), $langs->trans("AddCRIfTooLong").'<br><br>'.$htmltext).'<br>';
    +$variablename='RECEPTION_FREE_TEXT';
    +if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT))
    +{
    +    print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
    +}
    +else
    +{
    +    include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    +    $doleditor=new DolEditor($variablename, $conf->global->$variablename,'',80,'dolibarr_notes');
    +    print $doleditor->Create();
    +}
    +print "</td></tr>\n";
    +
    +print '<tr><td>';
    +print $form->textwithpicto($langs->trans("WatermarkOnDraftContractCards"), $htmltext).'<br>';
    +print '<input size="50" class="flat" type="text" name="RECEPTION_DRAFT_WATERMARK" value="'.$conf->global->RECEPTION_DRAFT_WATERMARK.'">';
    +print "</td></tr>\n";
    +*/
    +print '</table>';
    +
    +print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></div>';
    +
    +print '</form>';
    +
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/admin/resource.php b/htdocs/admin/resource.php
    index e8f8bdba204..566e57e587b 100644
    --- a/htdocs/admin/resource.php
    +++ b/htdocs/admin/resource.php
    @@ -137,6 +137,6 @@ print '</form>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/resource_extrafields.php b/htdocs/admin/resource_extrafields.php
    index 8193d146aaa..41d8d91cffd 100644
    --- a/htdocs/admin/resource_extrafields.php
    +++ b/htdocs/admin/resource_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2016		Florian Henry			<florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -84,7 +84,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -97,7 +97,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -116,6 +116,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/salaries.php b/htdocs/admin/salaries.php
    index 6c5281173c3..f724bd9e50c 100644
    --- a/htdocs/admin/salaries.php
    +++ b/htdocs/admin/salaries.php
    @@ -75,7 +75,7 @@ if ($action == 'update')
     llxHeader('',$langs->trans('SalariesSetup'));
     
     $form = new Form($db);
    -if (! empty($conf->accounting->enabled)) $formaccounting = New FormAccounting($db);
    +if (! empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db);
     
     $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
     print load_fiche_titre($langs->trans('SalariesSetup'),$linkback,'title_setup');
    @@ -127,5 +127,6 @@ print '<div class="center"><input type="submit" class="button" value="'.$langs->
     
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/security.php b/htdocs/admin/security.php
    index 129853837a4..26dcdc85b8d 100644
    --- a/htdocs/admin/security.php
    +++ b/htdocs/admin/security.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013-2015 Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -500,7 +500,6 @@ print '</form>';
     
     print '</div>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/security_file.php b/htdocs/admin/security_file.php
    index 4a4637185ca..87e0d6dd941 100644
    --- a/htdocs/admin/security_file.php
    +++ b/htdocs/admin/security_file.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2017	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -178,7 +178,6 @@ print '<div class="center"><input type="submit" class="button" name="button" val
     print '</form>';
     
     
    -
     // Form to test upload
     print '<br>';
     $formfile=new FormFile($db);
    @@ -188,5 +187,6 @@ $formfile->form_attach_new_file($_SERVER['PHP_SELF'], $langs->trans("FormToTestF
     $filearray=dol_dir_list($upload_dir, "files", 0, '', '', 'name', SORT_ASC, 1);
     $formfile->list_of_documents($filearray, null, 'admin_temp', '');
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/security_other.php b/htdocs/admin/security_other.php
    index 6503ab10f77..b1e4f745560 100644
    --- a/htdocs/admin/security_other.php
    +++ b/htdocs/admin/security_other.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Juanjo Menent 		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -206,6 +206,6 @@ print '<div class="center"><input type="submit" class="button" name="button" val
     
     print '</form>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/sms.php b/htdocs/admin/sms.php
    index db1cb20b5e3..24a49f5d17d 100644
    --- a/htdocs/admin/sms.php
    +++ b/htdocs/admin/sms.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013 	   Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -48,12 +48,12 @@ $action=GETPOST('action','aZ09');
     
     if ($action == 'update' && empty($_POST["cancel"]))
     {
    -	dolibarr_set_const($db, "MAIN_DISABLE_ALL_SMS",   $_POST["MAIN_DISABLE_ALL_SMS"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_DISABLE_ALL_SMS", $_POST["MAIN_DISABLE_ALL_SMS"], 'chaine', 0, '', $conf->entity);
     
    -	dolibarr_set_const($db, "MAIN_SMS_SENDMODE",      $_POST["MAIN_SMS_SENDMODE"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_SMS_SENDMODE", $_POST["MAIN_SMS_SENDMODE"], 'chaine', 0, '', $conf->entity);
     
    -	dolibarr_set_const($db, "MAIN_MAIL_SMS_FROM",     $_POST["MAIN_MAIL_SMS_FROM"],'chaine',0,'',$conf->entity);
    -	//dolibarr_set_const($db, "MAIN_MAIL_AUTOCOPY_TO",    $_POST["MAIN_MAIL_AUTOCOPY_TO"],'chaine',0,'',$conf->entity);
    +	dolibarr_set_const($db, "MAIN_MAIL_SMS_FROM", $_POST["MAIN_MAIL_SMS_FROM"], 'chaine', 0, '', $conf->entity);
    +	//dolibarr_set_const($db, "MAIN_MAIL_AUTOCOPY_TO", $_POST["MAIN_MAIL_AUTOCOPY_TO"], 'chaine', 0, '', $conf->entity);
     
     	header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
     	exit;
    @@ -169,21 +169,21 @@ if ($action == 'edit')
     	print '<table class="noborder" width="100%">';
     	print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
     
    -	// Disable	
    +	// Disable
     	print '<tr class="oddeven"><td>'.$langs->trans("MAIN_DISABLE_ALL_SMS").'</td><td>';
     	print $form->selectyesno('MAIN_DISABLE_ALL_SMS',$conf->global->MAIN_DISABLE_ALL_SMS,1);
     	print '</td></tr>';
     
    -	// Separator	
    +	// Separator
     	print '<tr class="oddeven"><td colspan="2">&nbsp;</td></tr>';
     
    -	// Method	
    +	// Method
     	print '<tr class="oddeven"><td>'.$langs->trans("MAIN_SMS_SENDMODE").'</td><td>';
     	if (count($listofmethods)) print $form->selectarray('MAIN_SMS_SENDMODE',$listofmethods,$conf->global->MAIN_SMS_SENDMODE,1);
     	else print '<font class="error">'.$langs->trans("None").'</font>';
         print '</td></tr>';
     
    -	// From	
    +	// From
     	print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_SMS_FROM",$langs->transnoentities("Undefined")).'</td>';
     	print '<td><input class="flat" name="MAIN_MAIL_SMS_FROM" size="32" value="' . $conf->global->MAIN_MAIL_SMS_FROM;
     	print '"></td></tr>';
    @@ -213,20 +213,20 @@ else
     	print '<table class="noborder" width="100%">';
     	print '<tr class="liste_titre"><td>'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
     
    -	// Disable	
    +	// Disable
     	print '<tr class="oddeven"><td>'.$langs->trans("MAIN_DISABLE_ALL_SMS").'</td><td>'.yn($conf->global->MAIN_DISABLE_ALL_SMS).'</td></tr>';
     
    -	// Separator	
    +	// Separator
     	print '<tr class="oddeven"><td colspan="2">&nbsp;</td></tr>';
     
    -	// Method	
    +	// Method
     	print '<tr class="oddeven"><td>'.$langs->trans("MAIN_SMS_SENDMODE").'</td><td>';
     	$text=$listofmethods[$conf->global->MAIN_SMS_SENDMODE];
     	if (empty($text)) $text=$langs->trans("Undefined").' '.img_warning();
     	print $text;
     	print '</td></tr>';
     
    -	// From	
    +	// From
     	print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_SMS_FROM",$langs->transnoentities("Undefined")).'</td>';
     	print '<td>'.$conf->global->MAIN_MAIL_SMS_FROM;
     	if (!empty($conf->global->MAIN_MAIL_SMS_FROM) && ! isValidPhone($conf->global->MAIN_MAIL_SMS_FROM)) print ' '.img_warning($langs->trans("ErrorBadPhone"));
    @@ -258,7 +258,7 @@ else
     	}
     	else
     	{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans("FeatureNotAvailableOnLinux").'">'.$langs->trans("DoTestServerAvailability").'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("FeatureNotAvailableOnLinux").'">'.$langs->trans("DoTestServerAvailability").'</a>';
     	}*/
     
     	if (count($listofmethods) && ! empty($conf->global->MAIN_SMS_SENDMODE))
    @@ -267,7 +267,7 @@ else
     	}
     	else
     	{
    -       print '<a class="butActionRefused" href="#">'.$langs->trans("DoTestSend").'</a>';
    +       print '<a class="butActionRefused classfortooltip" href="#">'.$langs->trans("DoTestSend").'</a>';
     	}
     	print '</div>';
     
    @@ -331,7 +331,6 @@ else
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/socialnetworks.php b/htdocs/admin/socialnetworks.php
    new file mode 100644
    index 00000000000..d25becaac4f
    --- /dev/null
    +++ b/htdocs/admin/socialnetworks.php
    @@ -0,0 +1,122 @@
    +<?php
    +/* Copyright (C) 2018 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *   	\file       htdocs/admin/socialnetworks.php
    + *		\ingroup    socialnetworks
    + *		\brief      Page to setup the module Social Networks
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/mailmanspip.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
    +
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin", "errors"));
    +
    +if (! $user->admin) accessforbidden();
    +
    +$type=array('yesno','texte','chaine');
    +
    +$action = GETPOST('action','aZ09');
    +
    +
    +
    +/*
    + * Action
    + */
    +if (preg_match('/set_([a-z0-9_\-]+)/i',$action,$reg))
    +{
    +    $code=$reg[1];
    +    if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0)
    +    {
    +        header("Location: ".$_SERVER["PHP_SELF"]);
    +        exit;
    +    }
    +    else
    +    {
    +        dol_print_error($db);
    +    }
    +}
    +
    +if (preg_match('/del_([a-z0-9_\-]+)/i',$action,$reg))
    +{
    +    $code=$reg[1];
    +    if (dolibarr_del_const($db, $code, $conf->entity) > 0)
    +    {
    +        header("Location: ".$_SERVER["PHP_SELF"]);
    +        exit;
    +    }
    +    else
    +    {
    +        dol_print_error($db);
    +    }
    +}
    +
    +
    +/*
    + * View
    + */
    +
    +$help_url='';
    +
    +llxHeader('',$langs->trans("SocialNetworkSetup"),$help_url);
    +
    +
    +$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
    +print load_fiche_titre($langs->trans("SocialNetworkSetup"),$linkback,'title_setup');
    +
    +//$head = socialnetworks_admin_prepare_head();
    +$h=0;
    +$head = array();
    +$head[$h][0] = DOL_URL_ROOT.'/admin/socialnetworks.php';
    +$head[$h][1] = $langs->trans("Setup");
    +$head[$h][2] = 'setup';
    +$h++;
    +
    +
    +print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
    +
    +dol_fiche_head($head, 'setup', '', 0, 'user');
    +
    +print '<br>';
    +
    +$arrayofsocialnetworks=array('jabber'=>'Jabber', 'skype'=>'Skype', 'twitter'=>'Twitter', 'facebook'=>'Facebook');
    +
    +foreach($arrayofsocialnetworks as $snkey => $snlabel)
    +{
    +	$consttocheck = 'SOCIALNETWORKS_'.strtoupper($snkey);
    +  if ($conf->use_javascript_ajax) {
    +    $link = ajax_constantonoff($consttocheck);
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    $link = $form->selectarray($consttocheck, $arrval, $conf->global->$consttocheck);
    +}
    +  
    +	print $langs->trans('EnableFeatureFor', $snlabel).' '.$link.'<br><br>';
    +}
    +
    +
    +dol_fiche_end();
    +
    +print '</form>';
    +
    +
    +// End of page
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/admin/spip.php b/htdocs/admin/spip.php
    index b9892fdf2a9..02500c6d8f9 100644
    --- a/htdocs/admin/spip.php
    +++ b/htdocs/admin/spip.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2013 Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -163,6 +163,6 @@ else
         dol_fiche_end();
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/stock.php b/htdocs/admin/stock.php
    index cdfaf928cf4..7a60d234405 100644
    --- a/htdocs/admin/stock.php
    +++ b/htdocs/admin/stock.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2006      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2008-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012-2013 Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2013-2018 Philippe Grand       <philippe.grand@atoo-net.com>
      * Copyright (C) 2013      Florian Henry        <florian.henry@open-concept.pro>
    @@ -38,97 +38,35 @@ $action = GETPOST('action','alpha');
     
     
     /*
    - * Actions
    + * Action
      */
    -
    -if($action)
    +if (preg_match('/set_([a-z0-9_\-]+)/i',$action,$reg))
     {
    -	$db->begin();
    -
    -	if ($action == 'STOCK_SUPPORTS_SERVICES')
    -	{
    -		$res = dolibarr_set_const($db, "STOCK_SUPPORTS_SERVICES", GETPOST('STOCK_SUPPORTS_SERVICES','alpha'),'chaine',0,'',$conf->entity);
    -	}
    -	if ($action == 'STOCK_USERSTOCK_AUTOCREATE')
    -	{
    -		$res = dolibarr_set_const($db, "STOCK_USERSTOCK_AUTOCREATE", GETPOST('STOCK_USERSTOCK_AUTOCREATE','alpha'),'chaine',0,'',$conf->entity);
    -	}
    -	if ($action == 'STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE') {
    -		$res = dolibarr_set_const($db, "STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE", GETPOST('STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE','alpha'),'chaine',0,'',$conf->entity);
    -	}
    -	if ($action == 'STOCK_ALLOW_NEGATIVE_TRANSFER')
    -	{
    -		$res = dolibarr_set_const($db, "STOCK_ALLOW_NEGATIVE_TRANSFER", GETPOST('STOCK_ALLOW_NEGATIVE_TRANSFER','alpha'),'chaine',0,'',$conf->entity);
    -	}
    -	// Mode of stock decrease
    -	if ($action == 'STOCK_CALCULATE_ON_BILL'
    -	|| $action == 'STOCK_CALCULATE_ON_VALIDATE_ORDER'
    -	|| $action == 'STOCK_CALCULATE_ON_SHIPMENT'
    -	|| $action == 'STOCK_CALCULATE_ON_SHIPMENT_CLOSE')
    -	{
    -		$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_BILL", '','chaine',0,'',$conf->entity);
    -		$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_VALIDATE_ORDER", '','chaine',0,'',$conf->entity);
    -		$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SHIPMENT", '','chaine',0,'',$conf->entity);
    -		$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SHIPMENT_CLOSE", '','chaine',0,'',$conf->entity);
    -		if ($action == 'STOCK_CALCULATE_ON_BILL')           $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_BILL", GETPOST('STOCK_CALCULATE_ON_BILL','alpha'),'chaine',0,'',$conf->entity);
    -		if ($action == 'STOCK_CALCULATE_ON_VALIDATE_ORDER') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_VALIDATE_ORDER", GETPOST('STOCK_CALCULATE_ON_VALIDATE_ORDER','alpha'),'chaine',0,'',$conf->entity);
    -		if ($action == 'STOCK_CALCULATE_ON_SHIPMENT')       $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SHIPMENT", GETPOST('STOCK_CALCULATE_ON_SHIPMENT','alpha'),'chaine',0,'',$conf->entity);
    -		if ($action == 'STOCK_CALCULATE_ON_SHIPMENT_CLOSE')       $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SHIPMENT_CLOSE", GETPOST('STOCK_CALCULATE_ON_SHIPMENT_CLOSE','alpha'),'chaine',0,'',$conf->entity);
    -	}
    -	// Mode of stock increase
    -	if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_BILL'
    -	|| $action == 'STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER'
    -	|| $action == 'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER')
    -	{
    -		//Use variable cause empty(GETPOST()) do not work with php version < 5.4
    -		$valdispatch=GETPOST('STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER','alpha');
    -
    -		$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_BILL", '','chaine',0,'',$conf->entity);
    -		$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER", '','chaine',0,'',$conf->entity);
    -		$res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER", '','chaine',0,'',$conf->entity);
    -		if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_BILL')           $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_BILL", GETPOST('STOCK_CALCULATE_ON_SUPPLIER_BILL','alpha'),'chaine',0,'',$conf->entity);
    -		if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER", GETPOST('STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER','alpha'),'chaine',0,'',$conf->entity);
    -		if ($action == 'STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER') $res=dolibarr_set_const($db, "STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER", $valdispatch,'chaine',0,'',$conf->entity);
    -		if (empty($valdispatch)) {
    -			$res=dolibarr_set_const($db, "SUPPLIER_ORDER_USE_DISPATCH_STATUS", '','chaine',0,'',$conf->entity);
    -		}
    -	}
    -
    -	if($action == 'SUPPLIER_ORDER_USE_DISPATCH_STATUS') {
    -		$res = dolibarr_set_const($db, "SUPPLIER_ORDER_USE_DISPATCH_STATUS", GETPOST('SUPPLIER_ORDER_USE_DISPATCH_STATUS','alpha'),'chaine',0,'',$conf->entity);
    -	}
    -
    -	if($action == 'STOCK_USE_VIRTUAL_STOCK') {
    -	    $res = dolibarr_set_const($db, "STOCK_USE_VIRTUAL_STOCK", GETPOST('STOCK_USE_VIRTUAL_STOCK','alpha'),'chaine',0,'',$conf->entity);
    -	}
    -
    -	if($action == 'STOCK_MUST_BE_ENOUGH_FOR_INVOICE') {
    -	    $res = dolibarr_set_const($db, "STOCK_MUST_BE_ENOUGH_FOR_INVOICE", GETPOST('STOCK_MUST_BE_ENOUGH_FOR_INVOICE','alpha'),'chaine',0,'',$conf->entity);
    -	}
    -	if($action == 'STOCK_MUST_BE_ENOUGH_FOR_ORDER') {
    -	    $res = dolibarr_set_const($db, "STOCK_MUST_BE_ENOUGH_FOR_ORDER", GETPOST('STOCK_MUST_BE_ENOUGH_FOR_ORDER','alpha'),'chaine',0,'',$conf->entity);
    -	}
    -	if($action == 'STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT') {
    -	    $res = dolibarr_set_const($db, "STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT", GETPOST('STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT','alpha'),'chaine',0,'',$conf->entity);
    -	}
    -	if($action == 'INDEPENDANT_SUBPRODUCT_STOCK') {
    -	    $res = dolibarr_set_const($db, "INDEPENDANT_SUBPRODUCT_STOCK", GETPOST('INDEPENDANT_SUBPRODUCT_STOCK','alpha'),'chaine',0,'',$conf->entity);
    -	}
    -
    -	if (! $res > 0) $error++;
    -
    - 	if (! $error)
    +    $code=$reg[1];
    +    if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0)
         {
    -    	$db->commit();
    -        setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    +        header("Location: ".$_SERVER["PHP_SELF"]);
    +        exit;
         }
         else
         {
    -    	$db->rollback();
    -        setEventMessages($langs->trans("Error"), null, 'errors');
    +        dol_print_error($db);
         }
     }
     
    +if (preg_match('/del_([a-z0-9_\-]+)/i',$action,$reg))
    +{
    +    $code=$reg[1];
    +    if (dolibarr_del_const($db, $code, $conf->entity) > 0)
    +    {
    +        header("Location: ".$_SERVER["PHP_SELF"]);
    +        exit;
    +    }
    +    else
    +    {
    +        dol_print_error($db);
    +    }
    +}
     
     /*
      * View
    @@ -159,23 +97,23 @@ print '<br>';
     // Title rule for stock decrease
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
    -print "  <td>".$langs->trans("RuleForStockManagementDecrease")."</td>\n";
    -print "  <td align=\"right\">&nbsp;</td>\n";
    +print "<td>".$langs->trans("RuleForStockManagementDecrease")."</td>\n";
    +print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
     print '</tr>'."\n";
     
     $found=0;
     
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("DeStockOnBill").'</td>';
    -print '<td align="right">';
    +print '<td align="center">';
     if (! empty($conf->facture->enabled))
     {
    -    print "<form method=\"post\" action=\"stock.php\">";
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_BILL\">";
    -	print $form->selectyesno("STOCK_CALCULATE_ON_BILL",$conf->global->STOCK_CALCULATE_ON_BILL,1,$disabled);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
    -	print "</form>\n";
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_CALCULATE_ON_BILL');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_CALCULATE_ON_BILL", $arrval, $conf->global->STOCK_CALCULATE_ON_BILL);
    +}
     }
     else
     {
    @@ -187,15 +125,15 @@ $found++;
     
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("DeStockOnValidateOrder").'</td>';
    -print '<td align="right">';
    +print '<td align="center">';
     if (! empty($conf->commande->enabled))
     {
    -    print "<form method=\"post\" action=\"stock.php\">";
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_VALIDATE_ORDER\">";
    -	print $form->selectyesno("STOCK_CALCULATE_ON_VALIDATE_ORDER",$conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER,1,$disabled);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
    -	print "</form>\n";
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_CALCULATE_ON_VALIDATE_ORDER');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_CALCULATE_ON_VALIDATE_ORDER", $arrval, $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER);
    +}
     }
     else
     {
    @@ -209,15 +147,15 @@ $found++;
     
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("DeStockOnShipment").'</td>';
    -print '<td align="right">';
    +print '<td align="center">';
     if (! empty($conf->expedition->enabled))
     {
    -	print "<form method=\"post\" action=\"stock.php\">";
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_SHIPMENT\">";
    -	print $form->selectyesno("STOCK_CALCULATE_ON_SHIPMENT",$conf->global->STOCK_CALCULATE_ON_SHIPMENT,1,$disabled);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
    -	print "</form>\n";
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_CALCULATE_ON_SHIPMENT');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_CALCULATE_ON_SHIPMENT", $arrval, $conf->global->STOCK_CALCULATE_ON_SHIPMENT);
    +}
     }
     else
     {
    @@ -229,15 +167,15 @@ $found++;
     
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("DeStockOnShipmentOnClosing").'</td>';
    -print '<td align="right">';
    +print '<td align="center">';
     if (! empty($conf->expedition->enabled))
     {
    -	print "<form method=\"post\" action=\"stock.php\">";
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_SHIPMENT_CLOSE\">";
    -	print $form->selectyesno("STOCK_CALCULATE_ON_SHIPMENT_CLOSE",$conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE,1,$disabled);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
    -	print "</form>\n";
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_CALCULATE_ON_SHIPMENT_CLOSE');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_CALCULATE_ON_SHIPMENT_CLOSE", $arrval, $conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE);
    +}
     }
     else
     {
    @@ -261,23 +199,23 @@ print '<br>';
     // Title rule for stock increase
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
    -print "  <td>".$langs->trans("RuleForStockManagementIncrease")."</td>\n";
    -print "  <td align=\"right\">&nbsp;</td>\n";
    +print "<td>".$langs->trans("RuleForStockManagementIncrease")."</td>\n";
    +print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
     print '</tr>'."\n";
     
     $found=0;
     
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("ReStockOnBill").'</td>';
    -print '<td align="right">';
    +print '<td align="center">';
     if (! empty($conf->fournisseur->enabled))
     {
    -    print "<form method=\"post\" action=\"stock.php\">";
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_SUPPLIER_BILL\">";
    -	print $form->selectyesno("STOCK_CALCULATE_ON_SUPPLIER_BILL",$conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL,1,$disabled);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
    -	print "</form>\n";
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_CALCULATE_ON_SUPPLIER_BILL');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_CALCULATE_ON_SUPPLIER_BILL", $arrval, $conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL);
    +}
     }
     else
     {
    @@ -290,15 +228,15 @@ $found++;
     
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("ReStockOnValidateOrder").'</td>';
    -print '<td align="right">';
    +print '<td align="center">';
     if (! empty($conf->fournisseur->enabled))
     {
    -    print "<form method=\"post\" action=\"stock.php\">";
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER\">";
    -	print $form->selectyesno("STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER",$conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER,1,$disabled);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
    -	print "</form>\n";
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER", $arrval, $conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER);
    +}
     }
     else
     {
    @@ -307,25 +245,57 @@ else
     print "</td>\n</tr>\n";
     $found++;
     
    +if (!empty($conf->reception->enabled))
    +{
    +	print '<tr class="oddeven">';
    +	print '<td width="60%">'.$langs->trans("StockOnReception").'</td>';
    +  print '<td align="center">';
    +
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_CALCULATE_ON_RECEPTION');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_CALCULATE_ON_RECEPTION", $arrval, $conf->global->STOCK_CALCULATE_ON_RECEPTION);
    +}
    +
    +	print "</td>\n</tr>\n";
    +	$found++;
    +
     
     print '<tr class="oddeven">';
    -print '<td>'.$langs->trans("ReStockOnDispatchOrder").'</td>';
    -print '<td align="right">';
    -if (! empty($conf->fournisseur->enabled))
    -{
    -    print "<form method=\"post\" action=\"stock.php\">";
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER\">";
    -	print $form->selectyesno("STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER",$conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER,1,$disabled);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'"'.$disabled.'>';
    -	print "</form>\n";
    +	print '<td width="60%">'.$langs->trans("StockOnReceptionOnClosing").'</td>';
    +  print '<td align="center">';
    +
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_CALCULATE_ON_RECEPTION_CLOSE');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_CALCULATE_ON_RECEPTION_CLOSE", $arrval, $conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE);
    +}
    +	print "</td>\n</tr>\n";
    +	$found++;
     }
     else
     {
    -    print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module40Name"));
    +	print '<tr class="oddeven">';
    +	print '<td>'.$langs->trans("ReStockOnDispatchOrder").'</td>';
    +  print '<td align="center">';
    +	if (! empty($conf->fournisseur->enabled))
    +	{
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER", $arrval, $conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER);
    +}
    +	}
    +	else
    +	{
    +		print $langs->trans("ModuleMustBeEnabledFirst", $langs->transnoentitiesnoconv("Module40Name"));
    +	}
    +	print "</td>\n</tr>\n";
    +	$found++;
     }
    -print "</td>\n</tr>\n";
    -$found++;
     
     /*if (! $found)
     {
    @@ -340,20 +310,20 @@ print '</table>';
     print '<br>';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
    -print "  <td>".$langs->trans("RuleForStockAvailability")."</td>\n";
    -print "  <td align=\"right\">&nbsp;</td>\n";
    +print "<td>".$langs->trans("RuleForStockAvailability")."</td>\n";
    +print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
     print '</tr>'."\n";
     
     
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("WarehouseAllowNegativeTransfer").'</td>';
    -print '<td align="right">';
    -print "<form method=\"post\" action=\"stock.php\">";
    -print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -print "<input type=\"hidden\" name=\"action\" value=\"STOCK_ALLOW_NEGATIVE_TRANSFER\">";
    -print $form->selectyesno("STOCK_ALLOW_NEGATIVE_TRANSFER",$conf->global->STOCK_ALLOW_NEGATIVE_TRANSFER,1);
    -print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -print '</form>';
    +print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_ALLOW_NEGATIVE_TRANSFER');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_ALLOW_NEGATIVE_TRANSFER", $arrval, $conf->global->STOCK_ALLOW_NEGATIVE_TRANSFER);
    +}
     print "</td>\n";
     print "</tr>\n";
     
    @@ -362,13 +332,13 @@ if($conf->invoice->enabled)
     {
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("StockMustBeEnoughForInvoice").'</td>';
    -	print '<td align="right">';
    -	print "<form method=\"post\" action=\"stock.php\">";
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_MUST_BE_ENOUGH_FOR_INVOICE\">";
    -	print $form->selectyesno("STOCK_MUST_BE_ENOUGH_FOR_INVOICE",$conf->global->STOCK_MUST_BE_ENOUGH_FOR_INVOICE,1);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -	print '</form>';
    +  print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_MUST_BE_ENOUGH_FOR_INVOICE');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_MUST_BE_ENOUGH_FOR_INVOICE", $arrval, $conf->global->STOCK_MUST_BE_ENOUGH_FOR_INVOICE);
    +}
     	print "</td>\n";
     	print "</tr>\n";
     }
    @@ -377,13 +347,13 @@ if($conf->order->enabled)
     {
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("StockMustBeEnoughForOrder").'</td>';
    -	print '<td align="right">';
    -	print "<form method=\"post\" action=\"stock.php\">";
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_MUST_BE_ENOUGH_FOR_ORDER\">";
    -	print $form->selectyesno("STOCK_MUST_BE_ENOUGH_FOR_ORDER",$conf->global->STOCK_MUST_BE_ENOUGH_FOR_ORDER,1);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -	print '</form>';
    +  print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_MUST_BE_ENOUGH_FOR_ORDER');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_MUST_BE_ENOUGH_FOR_ORDER", $arrval, $conf->global->STOCK_MUST_BE_ENOUGH_FOR_ORDER);
    +}
     	print "</td>\n";
     	print "</tr>\n";
     }
    @@ -392,13 +362,13 @@ if($conf->expedition->enabled)
     {
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("StockMustBeEnoughForShipment").'</td>';
    -	print '<td align="right">';
    -	print "<form method=\"post\" action=\"stock.php\">";
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT\">";
    -	print $form->selectyesno("STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT",$conf->global->STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT,1);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -	print '</form>';
    +  print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT", $arrval, $conf->global->STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT);
    +}
     	print "</td>\n";
     	print "</tr>\n";
     }
    @@ -413,21 +383,21 @@ if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)
     
     if ($virtualdiffersfromphysical)
     {
    -	print '<table class="noborder" width="100%">';
    -	print '<tr class="liste_titre">';
    -	print "  <td>".$langs->trans("RuleForStockReplenishment")." ".img_help('help',$langs->trans("VirtualDiffersFromPhysical"))."</td>\n";
    -	print "  <td align=\"right\">&nbsp;</td>\n";
    +print '<table class="noborder" width="100%">';
    +print '<tr class="liste_titre">';
    +	print "<td>".$langs->trans("RuleForStockReplenishment")." ".img_help('help',$langs->trans("VirtualDiffersFromPhysical"))."</td>\n";
    +  print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
     	print '</tr>'."\n";
     
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("UseVirtualStockByDefault").'</td>';
    -	print '<td align="right">';
    -	print "<form method=\"post\" action=\"stock.php\">";
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print "<input type=\"hidden\" name=\"action\" value=\"STOCK_USE_VIRTUAL_STOCK\">";
    -	print $form->selectyesno("STOCK_USE_VIRTUAL_STOCK",$conf->global->STOCK_USE_VIRTUAL_STOCK,1);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -	print '</form>';
    +  print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_USE_VIRTUAL_STOCK');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_USE_VIRTUAL_STOCK", $arrval, $conf->global->STOCK_USE_VIRTUAL_STOCK);
    +}
     	print "</td>\n";
     	print "</tr>\n";
     	print '</table>';
    @@ -438,19 +408,19 @@ if ($virtualdiffersfromphysical)
     print '<table class="noborder" width="100%">';
     
     print '<tr class="liste_titre">';
    -print "  <td>".$langs->trans("Other")."</td>\n";
    -print "  <td align=\"right\">&nbsp;</td>\n";
    +print "<td>".$langs->trans("Other")."</td>\n";
    +print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
     print '</tr>'."\n";
     
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("UserWarehouseAutoCreate").'</td>';
    -print '<td align="right">';
    -print "<form method=\"post\" action=\"stock.php\">";
    -print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -print "<input type=\"hidden\" name=\"action\" value=\"STOCK_USERSTOCK_AUTOCREATE\">";
    -print $form->selectyesno("STOCK_USERSTOCK_AUTOCREATE",$conf->global->STOCK_USERSTOCK_AUTOCREATE,1);
    -print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -print '</form>';
    +print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_USERSTOCK_AUTOCREATE');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_USERSTOCK_AUTOCREATE", $arrval, $conf->global->STOCK_USERSTOCK_AUTOCREATE);
    +}
     print "</td>\n";
     print "</tr>\n";
     
    @@ -458,25 +428,25 @@ print '<tr class="oddeven">';
     print '<td>';
     print $form->textwithpicto($langs->trans("StockSupportServices"), $langs->trans("StockSupportServicesDesc"));
     print '</td>';
    -print '<td align="right">';
    -print "<form method=\"post\" action=\"stock.php\">";
    -print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -print "<input type=\"hidden\" name=\"action\" value=\"STOCK_SUPPORTS_SERVICES\">";
    -print $form->selectyesno("STOCK_SUPPORTS_SERVICES",$conf->global->STOCK_SUPPORTS_SERVICES,1);
    -print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -print '</form>';
    +print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_SUPPORTS_SERVICES');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_SUPPORTS_SERVICES", $arrval, $conf->global->STOCK_SUPPORTS_SERVICES);
    +}
     print "</td>\n";
     print "</tr>\n";
     
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("AllowAddLimitStockByWarehouse").'</td>';
    -print '<td align="right">';
    -print "<form method=\"post\" action=\"stock.php\">";
    -print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -print "<input type=\"hidden\" name=\"action\" value=\"STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE\">";
    -print $form->selectyesno("STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE",$conf->global->STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE,1);
    -print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -print '</form>';
    +print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE", $arrval, $conf->global->STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE);
    +}
     print "</td>\n";
     print "</tr>\n";
     
    @@ -485,12 +455,12 @@ if (! empty($conf->fournisseur->enabled) && !empty($conf->global->STOCK_CALCULAT
         print '<tr class="oddeven">';
         print '<td>'.$langs->trans("UseDispatchStatus").'</td>';
         print '<td align="right">';
    -    print "<form method=\"post\" action=\"stock.php\">";
    -    print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -    print "<input type=\"hidden\" name=\"action\" value=\"SUPPLIER_ORDER_USE_DISPATCH_STATUS\">";
    -    print $form->selectyesno("SUPPLIER_ORDER_USE_DISPATCH_STATUS",$conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS,1);
    -    print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -    print "</form>\n";
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('SUPPLIER_ORDER_USE_DISPATCH_STATUS');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("SUPPLIER_ORDER_USE_DISPATCH_STATUS", $arrval, $conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS);
    +}
         print "</td>\n</tr>\n";
     }
     
    @@ -502,46 +472,43 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
     	print '<table class="noborder" width="100%">';
     	print '<tr class="liste_titre">';
     	print '<td>'.$langs->trans("Inventory").'</td>'."\n";
    -	print '<td align="center" width="20">&nbsp;</td>';
    -	print '<td align="center">&nbsp;</td>'."\n";
    +  print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
    +  print '</tr>'."\n";
     
     	// Example with a yes / no select
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("INVENTORY_DISABLE_VIRTUAL").'</td>';
    -	print '<td align="center" width="20">&nbsp;</td>';
    -	print '<td align="right" width="300">';
    -	print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print '<input type="hidden" name="action" value="set_INVENTORY_DISABLE_VIRTUAL">';
    -	print $form->selectyesno("INVENTORY_DISABLE_VIRTUAL",$conf->global->INVENTORY_DISABLE_VIRTUAL,1);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -	print '</form>';
    +  print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('INVENTORY_DISABLE_VIRTUAL');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("INVENTORY_DISABLE_VIRTUAL", $arrval, $conf->global->INVENTORY_DISABLE_VIRTUAL);
    +}
     	print '</td></tr>';
     
     	// Example with a yes / no select
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("INVENTORY_USE_MIN_PA_IF_NO_LAST_PA").'</td>';
    -	print '<td align="center" width="20">&nbsp;</td>';
    -	print '<td align="right" width="300">';
    -	print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print '<input type="hidden" name="action" value="set_INVENTORY_USE_MIN_PA_IF_NO_LAST_PA">';
    -	print $form->selectyesno("INVENTORY_USE_MIN_PA_IF_NO_LAST_PA",$conf->global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA,1);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -	print '</form>';
    +  print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('INVENTORY_USE_MIN_PA_IF_NO_LAST_PA');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("INVENTORY_USE_MIN_PA_IF_NO_LAST_PA", $arrval, $conf->global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA);
    +}
     	print '</td></tr>';
     
     	// Example with a yes / no select
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT").'</td>';
    -	print '<td align="center" width="20">&nbsp;</td>';
    -	print '<td align="right" width="300">';
    -	print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print '<input type="hidden" name="action" value="set_INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT">';
    -	print $form->selectyesno("INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT",$conf->global->INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT,1);
    -	print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -	print '</form>';
    +  print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT", $arrval, $conf->global->INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT);
    +}
     	print '</td></tr>';
     
     	print '</table>';
    @@ -567,7 +534,6 @@ if ($conf->global->PRODUIT_SOUSPRODUITS)
     }
     */
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/supplier_invoice.php b/htdocs/admin/supplier_invoice.php
    index 5dbe26596fe..45d588fb031 100644
    --- a/htdocs/admin/supplier_invoice.php
    +++ b/htdocs/admin/supplier_invoice.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2013 Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2004      Sebastien Di Cintio     <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier          <benoit.mortier@opensides.be>
      * Copyright (C) 2010-2013 Juanjo Menent           <jmenent@2byte.es>
    @@ -519,7 +519,6 @@ print "</td></tr>\n";
     
     print '</table>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/supplier_order.php b/htdocs/admin/supplier_order.php
    index 695d25a963c..88cb18d5d80 100644
    --- a/htdocs/admin/supplier_order.php
    +++ b/htdocs/admin/supplier_order.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2004      Sebastien Di Cintio     <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier          <benoit.mortier@opensides.be>
      * Copyright (C) 2010-2013 Juanjo Menent           <jmenent@2byte.es>
    @@ -589,7 +589,6 @@ print "</td></tr>\n";
     
     print '</table>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/supplier_payment.php b/htdocs/admin/supplier_payment.php
    index c1f3a7cb25d..77f2a95070e 100644
    --- a/htdocs/admin/supplier_payment.php
    +++ b/htdocs/admin/supplier_payment.php
    @@ -301,7 +301,6 @@ foreach ($dirmodels as $reldir)
                                 print '</td>';
     
                                 print "</tr>\n";
    -
                             }
                         }
                     }
    @@ -430,7 +429,6 @@ print '</table>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/supplier_proposal.php b/htdocs/admin/supplier_proposal.php
    index 99069447e81..056982c4d08 100644
    --- a/htdocs/admin/supplier_proposal.php
    +++ b/htdocs/admin/supplier_proposal.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004      Sebastien Di Cintio         <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier              <benoit.mortier@opensides.be>
      * Copyright (C) 2004      Eric Seigne                 <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin               <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin               <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
      * Copyright (C) 2011-2013 Juanjo Menent               <jmenent@2byte.es>
      * Copyright (C) 2015      Jean-François Ferry		   <jfefe@aternatik.fr>
    @@ -582,6 +582,7 @@ print "</tr>\n";
     print "<tr class=\"oddeven\">\n  <td width=\"140\">".$langs->trans("PathDirectory")."</td>\n  <td>".$conf->supplier_proposal->dir_output."</td>\n</tr>\n";
     print "</table>\n<br>";
     
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/admin/supplierinvoice_extrafields.php b/htdocs/admin/supplierinvoice_extrafields.php
    index 7e913772e2c..ee987ed83a1 100644
    --- a/htdocs/admin/supplierinvoice_extrafields.php
    +++ b/htdocs/admin/supplierinvoice_extrafields.php
    @@ -2,9 +2,9 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
    - * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
    + * Copyright (C) 2013-2018	Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2013		Juanjo Menent			<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -32,17 +32,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     
     // Load translation files required by the page
    -$langs->load("orders");
    +$langs->loadLangs(array("admin", "other", "bills", "orders", "suppliers"));
     
     if (!$user->admin)
     	accessforbidden();
     
    -$langs->load("admin");
    -$langs->load("other");
    -$langs->load("bills");
    -$langs->load("orders");
    -$langs->load("suppliers");
    -
     $extrafields = new ExtraFields($db);
     $form = new Form($db);
     
    @@ -91,7 +85,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -104,7 +98,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -123,6 +117,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/supplierinvoicedet_extrafields.php b/htdocs/admin/supplierinvoicedet_extrafields.php
    index d8156d54779..a9d92a4ecd0 100644
    --- a/htdocs/admin/supplierinvoicedet_extrafields.php
    +++ b/htdocs/admin/supplierinvoicedet_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2013		Juanjo Menent			<jmenent@2byte.es>
    @@ -87,7 +87,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -100,7 +100,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -119,6 +119,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/supplierorder_extrafields.php b/htdocs/admin/supplierorder_extrafields.php
    index 30cf4d983e4..e0b7dabb942 100644
    --- a/htdocs/admin/supplierorder_extrafields.php
    +++ b/htdocs/admin/supplierorder_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      *
    @@ -85,7 +85,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -98,7 +98,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -117,6 +117,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/supplierorderdet_extrafields.php b/htdocs/admin/supplierorderdet_extrafields.php
    index 85106bf84f0..b94c78f67e8 100644
    --- a/htdocs/admin/supplierorderdet_extrafields.php
    +++ b/htdocs/admin/supplierorderdet_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2015		Claudio Aschieri		<c.aschieri@19.coop>
    @@ -86,7 +86,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -99,7 +99,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -118,6 +118,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/syslog.php b/htdocs/admin/syslog.php
    index 45dc91a8b95..a3cceda40da 100644
    --- a/htdocs/admin/syslog.php
    +++ b/htdocs/admin/syslog.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2013	   Juanjo Menent        <jmenent@2byte.es>
      *
    @@ -132,9 +132,7 @@ if ($action == 'set')
     	{
     		$db->rollback();
     		setEventMessages($error, $errors, 'errors');
    -
     	}
    -
     }
     
     // Set level
    @@ -250,7 +248,7 @@ foreach ($syslogModules as $moduleName)
     	}
     	print '</td>';
     
    -	print '<td align="left">';
    +	print '<td class="left">';
     	if ($module->getInfo())
     	{
     		print $form->textwithpicto('', $module->getInfo(), 1, 'help');
    @@ -302,6 +300,6 @@ if(! empty($conf->loghandlers['mod_syslog_file']) && ! empty($conf->cron->enable
     print '</table>';
     print "</form>\n";
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/system/about.php b/htdocs/admin/system/about.php
    index 61780d51386..95edc057468 100644
    --- a/htdocs/admin/system/about.php
    +++ b/htdocs/admin/system/about.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2003      Jean-Louis Bergamo    <jlb@j1b.org>
      * Copyright (C) 2004-2013 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
    - * Copyright (C) 2005-2007 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin         <regis.houssin@inodbox.com>
      *
      * 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
    @@ -28,10 +28,8 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
    -$langs->load("admin");
    -$langs->load("help");
    -$langs->load("members");
    -$langs->load("other");
    +// Load translation files required by the page
    +$langs->loadLangs(array("help","members","other","admin"));
     
     $action=GETPOST('action','alpha');
     
    @@ -196,7 +194,7 @@ if ($showpromotemessage)
         {
             print '<br>';
             print '<br>';
    -        
    +
             if ((empty($tmp[2]) && (strpos($tmp[1], '0') === 0)) || (strpos($tmp[2], '0') === 0))
             {
                 print $langs->trans("TitleExampleForMajorRelease").':<br>';
    @@ -214,7 +212,6 @@ if ($showpromotemessage)
         }
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/system/browser.php b/htdocs/admin/system/browser.php
    index 4f2a53de88d..4e6aadbe4b4 100644
    --- a/htdocs/admin/system/browser.php
    +++ b/htdocs/admin/system/browser.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2007		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2007-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -26,9 +26,8 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     
    -$langs->load("admin");
    -$langs->load("install");
    -$langs->load("other");
    +// Load translation files required by the page
    +$langs->loadLangs(array("install","other","admin"));
     
     if (! $user->admin)
     	accessforbidden();
    @@ -66,7 +65,6 @@ print '</table>';
     print '</div>';
     print '<br>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/system/constall.php b/htdocs/admin/system/constall.php
    index 82e8481c2dd..fef49bd5c12 100644
    --- a/htdocs/admin/system/constall.php
    +++ b/htdocs/admin/system/constall.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -24,9 +24,8 @@
     
     require '../../main.inc.php';
     
    -$langs->load("admin");
    -$langs->load("user");
    -$langs->load("install");
    +// Load translation files required by the page
    +$langs->loadLangs(array("install","user","admin"));
     
     
     if (!$user->admin)
    @@ -249,7 +248,6 @@ if ($resql)
     
     print '</table>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/system/database-tables.php b/htdocs/admin/system/database-tables.php
    index 556961cb565..addeb3793c6 100644
    --- a/htdocs/admin/system/database-tables.php
    +++ b/htdocs/admin/system/database-tables.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2005	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -212,5 +212,6 @@ else
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/system/database.php b/htdocs/admin/system/database.php
    index 45ce3c087e6..d5a7bbcdbfd 100644
    --- a/htdocs/admin/system/database.php
    +++ b/htdocs/admin/system/database.php
    @@ -126,6 +126,6 @@ else
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/system/dbtable.php b/htdocs/admin/system/dbtable.php
    index cef493c95f8..2cf249c0f74 100644
    --- a/htdocs/admin/system/dbtable.php
    +++ b/htdocs/admin/system/dbtable.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2005	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -138,6 +138,6 @@ else
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/system/dolibarr.php b/htdocs/admin/system/dolibarr.php
    index b2000b65c5b..85c3a8a1d94 100644
    --- a/htdocs/admin/system/dolibarr.php
    +++ b/htdocs/admin/system/dolibarr.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2007		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2007-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -29,9 +29,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
    -$langs->load("admin");
    -$langs->load("install");
    -$langs->load("other");
    +// Load translation files required by the page
    +$langs->loadLangs(array("install","other","admin"));
     
     $action=GETPOST('action','alpha');
     
    @@ -141,8 +140,11 @@ print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("Session")
     print '<tr class="oddeven"><td>'.$langs->trans("SessionSavePath").'</td><td colspan="2">'.session_save_path().'</td></tr>'."\n";
     print '<tr class="oddeven"><td>'.$langs->trans("SessionName").'</td><td colspan="2">'.session_name().'</td></tr>'."\n";
     print '<tr class="oddeven"><td>'.$langs->trans("SessionId").'</td><td colspan="2">'.session_id().'</td></tr>'."\n";
    -print '<tr class="oddeven"><td>'.$langs->trans("CurrentSessionTimeOut").'</td><td>'.ini_get('session.gc_maxlifetime').' '.$langs->trans("seconds");
    +print '<tr class="oddeven"><td>'.$langs->trans("CurrentSessionTimeOut").' (session.gc_maxlifetime)</td><td>'.ini_get('session.gc_maxlifetime').' '.$langs->trans("seconds");
     print '</td><td align="right">';
    +print '<!-- session.gc_maxlifetime = '.ini_get("session.gc_maxlifetime").' -->'."\n";
    +print '<!-- session.gc_probability = '.ini_get("session.gc_probability").' -->'."\n";
    +print '<!-- session.gc_divisor = '.ini_get("session.gc_divisor").' -->'."\n";
     print $form->textwithpicto('',$langs->trans("SessionExplanation",ini_get("session.gc_probability"),ini_get("session.gc_divisor")));
     print "</td></tr>\n";
     print '<tr class="oddeven"><td>'.$langs->trans("CurrentTheme").'</td><td colspan="2">'.$conf->theme.'</td></tr>'."\n";
    @@ -454,7 +456,6 @@ if ($resql)
     print '</table>';
     print '</div>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/system/filecheck.php b/htdocs/admin/system/filecheck.php
    index 309d20e0abe..895393eec1d 100644
    --- a/htdocs/admin/system/filecheck.php
    +++ b/htdocs/admin/system/filecheck.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2007       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    - * Copyright (C) 2007-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2015       Frederic France         <frederic.france@free.fr>
      * Copyright (C) 2017       Nicolas ZABOURI         <info@inovea-conseil.com>
      *
    @@ -307,7 +307,7 @@ if (! $error && $xml)
             }
             else
             {
    -            $out.='<tr class="oddeven"><td colspan="5" class="opacitymedium">'.$langs->trans("None").'</td></tr>';
    +            $out.='<tr class="oddeven"><td colspan="6" class="opacitymedium">'.$langs->trans("None").'</td></tr>';
             }
             $out.='</table>';
             $out.='</div>';
    @@ -372,11 +372,11 @@ if (! $error && $xml)
             // Show warning
             if (empty($tmpfilelist) && empty($tmpfilelist2) && empty($tmpfilelist3))
             {
    -            setEventMessage($langs->trans("FileIntegrityIsStrictlyConformedWithReference"));
    +            setEventMessages($langs->trans("FileIntegrityIsStrictlyConformedWithReference"), null, 'mesgs');
             }
             else
             {
    -            setEventMessage($langs->trans("FileIntegritySomeFilesWereRemovedOrModified"), 'warnings');
    +            setEventMessages($langs->trans("FileIntegritySomeFilesWereRemovedOrModified"), null, 'warnings');
             }
         }
         else
    @@ -428,7 +428,7 @@ if (! $error && $xml)
         	$outcurrentchecksum = '<span class="'.$resultcode.'">'.$checksumget.'</span>';
         }
     
    -    print_fiche_titre($langs->trans("GlobalChecksum")).'<br>';
    +    print load_fiche_titre($langs->trans("GlobalChecksum")).'<br>';
         print $langs->trans("ExpectedChecksum").' = '. $outexpectedchecksum .'<br>';
         print $langs->trans("CurrentChecksum").' = '. $outcurrentchecksum;
     
    @@ -439,12 +439,8 @@ if (! $error && $xml)
         print $out;
     }
     
    -
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
     
     exit($error);
    -
    diff --git a/htdocs/admin/system/index.php b/htdocs/admin/system/index.php
    index 3d473640618..f0d91d8cf65 100644
    --- a/htdocs/admin/system/index.php
    +++ b/htdocs/admin/system/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -25,9 +25,8 @@
     require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     
    -$langs->load("admin");
    -$langs->load("user");
    -$langs->load("install");
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin", "user", "install"));
     
     if (! $user->admin) accessforbidden();
     
    @@ -106,7 +105,7 @@ print '<br>';
     print '<table class="noborder" width="100%">';
     print "<tr class=\"liste_titre\"><td colspan=\"2\">".$langs->trans("Browser")."</td></tr>\n";
     print "<tr $bc[0]><td width=\"280\">".$langs->trans("UserAgent")."</td><td>" .$_SERVER["HTTP_USER_AGENT"]."</td></tr>\n";
    -print "<tr $bc[1]><td width=\"280\">".$langs->trans("Smartphone")."</td><td>".(empty($conf->browser->phone)?$langs->trans("No"):$conf->browser->phone)."</td></tr>\n";
    +print "<tr $bc[1]><td width=\"280\">".$langs->trans("Smartphone")."</td><td>".(($conf->browser->layout != 'phone')?$langs->trans("No"):$langs->trans("Yes"))."</td></tr>\n";
     print '</table>';
     print '<br>';
     
    @@ -114,6 +113,6 @@ print '<br>';
     //print "<br>\n";
     print info_admin($langs->trans("SystemInfoDesc")).'<br>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/system/modules.php b/htdocs/admin/system/modules.php
    index 4a6967089e2..bcc952b0079 100644
    --- a/htdocs/admin/system/modules.php
    +++ b/htdocs/admin/system/modules.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005-2009	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2007		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -25,9 +25,8 @@
     require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     
    -$langs->load("admin");
    -$langs->load("install");
    -$langs->load("other");
    +// Load translation files required by the page
    +$langs->loadLangs(array("install","other","admin"));
     
     if (! $user->admin)
     	accessforbidden();
    @@ -79,17 +78,17 @@ foreach($modulesdir as $dir)
     						{
     							try {
     	    						$objMod = new $modName($db);
    -						
    +
     			    				$modules[$objMod->numero]=$objMod;
     			    				$modules_names[$objMod->numero]=$objMod->name;
     	    						$modules_files[$objMod->numero]=$file;
     	    						$modules_fullpath[$file]=$dir.$file;
     	    						$picto[$objMod->numero]=(isset($objMod->picto) && $objMod->picto)?$objMod->picto:'generic';
    -							} 
    +							}
     							catch(Exception $e)
     							{
     								dol_syslog("Failed to load ".$dir.$file." ".$e->getMessage(), LOG_ERR);
    -							}	
    +							}
     						}
     						else
     						{
    @@ -159,5 +158,6 @@ foreach($rights_ids as $right_id)
     	$old = $right_id;
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/system/os.php b/htdocs/admin/system/os.php
    index 01d48f2444d..b354402b465 100644
    --- a/htdocs/admin/system/os.php
    +++ b/htdocs/admin/system/os.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -49,6 +49,6 @@ $osversion=version_os();
     print "<tr $bc[1]><td width=\"240\">".$langs->trans("Version")."</td><td>".$osversion."</td></tr>\n";
     print '</table>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/system/perf.php b/htdocs/admin/system/perf.php
    index 1e757b72f63..d69723f1299 100644
    --- a/htdocs/admin/system/perf.php
    +++ b/htdocs/admin/system/perf.php
    @@ -26,9 +26,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     
    -$langs->load("admin");
    -$langs->load("install");
    -$langs->load("other");
    +// Load translation files required by the page
    +$langs->loadLangs(array("install","other","admin"));
     
     if (! $user->admin)
     	accessforbidden();
    @@ -491,7 +490,6 @@ print '<strong>'.$langs->trans("DatabaseStatistics").'</strong>: ';
     print '<br>';
     */
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/system/phpinfo.php b/htdocs/admin/system/phpinfo.php
    index 8664a28b28a..d2fb9352042 100644
    --- a/htdocs/admin/system/phpinfo.php
    +++ b/htdocs/admin/system/phpinfo.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2016       Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -116,7 +116,6 @@ foreach($phparray as $key => $value)
     	print '<br>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/system/xcache.php b/htdocs/admin/system/xcache.php
    index 53eaeec085f..b582e61619b 100644
    --- a/htdocs/admin/system/xcache.php
    +++ b/htdocs/admin/system/xcache.php
    @@ -76,6 +76,6 @@ if ($action == 'clear')
     }
     */
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/taxes.php b/htdocs/admin/taxes.php
    index 7c4bf64909f..76e7496cc4e 100644
    --- a/htdocs/admin/taxes.php
    +++ b/htdocs/admin/taxes.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2013 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2015-2018 Alexandre Spangaro   <aspangaro@zendsi.com>
      *
    @@ -273,6 +273,6 @@ if (! empty($conf->accounting->enabled))
     	print '<br><br><span class="opacitymedium">'.$langs->trans("AccountingAccountForSalesTaxAreDefinedInto", $langs->transnoentitiesnoconv("MenuAccountancy"), $langs->transnoentitiesnoconv("Setup")).'</span>';
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/ticket.php b/htdocs/admin/ticket.php
    index 742f966e4cc..f94117ef747 100644
    --- a/htdocs/admin/ticket.php
    +++ b/htdocs/admin/ticket.php
    @@ -54,10 +54,13 @@ if ($action == 'updateMask') {
             $error++;
         }
     
    -    if (!$error) {
    -        setEventMessage($langs->trans("SetupSaved"));
    -    } else {
    -        setEventMessage($langs->trans("Error"), 'errors');
    +    if (!$error)
    +    {
    +        setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    +    }
    +    else
    +    {
    +        setEventMessages($langs->trans("Error"), null, 'errors');
         }
     } elseif ($action == 'setmod') {
         // TODO Verifier si module numerotation choisi peut etre active
    @@ -250,7 +253,7 @@ dol_fiche_end();
      * Projects Numbering model
      */
     
    -print_titre($langs->trans("TicketNumberingModules"));
    +print load_fiche_titre($langs->trans("TicketNumberingModules"));
     
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
    @@ -350,13 +353,13 @@ if (!$conf->use_javascript_ajax) {
         print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
         print '<input type="hidden" name="action" value="setvarother">';
     }
    -print_titre($langs->trans("TicketParamPublicInterface"));
    +print load_fiche_titre($langs->trans("TicketParamPublicInterface"));
     
     print '<table class="noborder" width="100%">';
     
     // Activate public interface
     print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsActivatePublicInterface") . '</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     if ($conf->use_javascript_ajax) {
         print ajax_constantonoff('TICKET_ENABLE_PUBLIC_INTERFACE');
     } else {
    @@ -364,14 +367,14 @@ if ($conf->use_javascript_ajax) {
         print $form->selectarray("TICKET_ENABLE_PUBLIC_INTERFACE", $arrval, $conf->global->TICKET_ENABLE_PUBLIC_INTERFACE);
     }
     print '</td>';
    -print '<td align="center">';
    +print '<td class="center">';
     print $form->textwithpicto('', $langs->trans("TicketsActivatePublicInterfaceHelp"), 1, 'help');
     print '</td>';
     print '</tr>';
     
     // Check if email exists
     print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsEmailMustExist") . '</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     if ($conf->use_javascript_ajax) {
         print ajax_constantonoff('TICKET_EMAIL_MUST_EXISTS');
     } else {
    @@ -388,7 +391,7 @@ print '</tr>';
     {
     	// Show logo for module
     	print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsShowModuleLogo") . '</td>';
    -	print '<td align="left">';
    +	print '<td class="left">';
     	if ($conf->use_javascript_ajax) {
     	    print ajax_constantonoff('TICKET_SHOW_MODULE_LOGO');
     	} else {
    @@ -404,7 +407,7 @@ print '</tr>';
     
     // Show logo for company
     print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsShowCompanyLogo") . '</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     if ($conf->use_javascript_ajax) {
     	print ajax_constantonoff('TICKET_SHOW_COMPANY_LOGO');
     } else {
    @@ -419,12 +422,12 @@ print '</tr>';
     
     print '</table><br>';
     
    -print_titre($langs->trans("TicketParams"));
    +print load_fiche_titre($langs->trans("TicketParams"));
     print '<table class="noborder" width="100%">';
     
     // Activate email notifications
     print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsDisableEmail") . '</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     if ($conf->use_javascript_ajax) {
         print ajax_constantonoff('TICKET_DISABLE_ALL_MAILS');
     } else {
    @@ -439,7 +442,7 @@ print '</tr>';
     
     // Activate log by email
     print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsLogEnableEmail") . '</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     if ($conf->use_javascript_ajax) {
         print ajax_constantonoff('TICKET_ACTIVATE_LOG_BY_EMAIL');
     } else {
    @@ -456,7 +459,7 @@ print '</tr>';
     if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
     {
     	print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsEmailAlsoSendToMainAddress") . '</td>';
    -	print '<td align="left">';
    +	print '<td class="left">';
     	if ($conf->use_javascript_ajax) {
     	    print ajax_constantonoff('TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS');
     	} else {
    @@ -472,7 +475,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
     
     // Limiter la vue des tickets à ceux assignés à l'utilisateur
     print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsLimitViewAssignedOnly") . '</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     if ($conf->use_javascript_ajax) {
         print ajax_constantonoff('TICKET_LIMIT_VIEW_ASSIGNED_ONLY');
     } else {
    @@ -492,7 +495,7 @@ if (!$conf->use_javascript_ajax) {
     
     // Auto assign ticket at user who created it
     print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsAutoAssignTicket") . '</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     if ($conf->use_javascript_ajax) {
         print ajax_constantonoff('TICKET_AUTO_ASSIGN_USER_CREATE');
     } else {
    @@ -512,7 +515,7 @@ if (!$conf->use_javascript_ajax) {
     }
     
     // Admin var of module
    -print_titre($langs->trans("TicketParamMail"));
    +print load_fiche_titre($langs->trans("TicketParamMail"));
     
     print '<table class="noborder" width="100%">';
     
    @@ -532,7 +535,7 @@ if (empty($conf->global->FCKEDITOR_ENABLE_MAIL)) {
     
     // Email d'envoi des notifications
     print '<tr class="pair"><td>' . $langs->trans("TicketEmailNotificationFrom") . '</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     print '<input type="text" name="TICKET_NOTIFICATION_EMAIL_FROM" value="' . $conf->global->TICKET_NOTIFICATION_EMAIL_FROM . '" size="20" ></td>';
     print '<td align="center">';
     print $form->textwithpicto('', $langs->trans("TicketEmailNotificationFromHelp"), 1, 'help');
    @@ -541,7 +544,7 @@ print '</tr>';
     
     // Email de réception des notifications
     print '<tr class="pair"><td>' . $langs->trans("TicketEmailNotificationTo") . '</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     print '<input type="text"   name="TICKET_NOTIFICATION_EMAIL_TO" value="' . (!empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO) ? $conf->global->TICKET_NOTIFICATION_EMAIL_TO : $conf->global->TICKET_NOTIFICATION_EMAIL_FROM) . '" size="20" ></td>';
     print '<td align="center">';
     print $form->textwithpicto('', $langs->trans("TicketEmailNotificationToHelp"), 1, 'help');
    @@ -638,6 +641,6 @@ print '</tr>';
     print '</table><br>';
     print '</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/ticket_extrafields.php b/htdocs/admin/ticket_extrafields.php
    index 0687a33c52b..f63af3d2a82 100644
    --- a/htdocs/admin/ticket_extrafields.php
    +++ b/htdocs/admin/ticket_extrafields.php
    @@ -16,9 +16,9 @@
      */
     
     /**
    - *      \file       ticket/admin/ticket_extrafields.php
    - *        \ingroup    ticket
    - *        \brief      Page to setup extra fields of ticket
    + *      \file       admin/ticket_extrafields.php
    + *      \ingroup    ticket
    + *      \brief      Page to setup extra fields of ticket
      */
     
     require '../main.inc.php';
    @@ -92,7 +92,7 @@ if ($action != 'create' && $action != 'edit') {
     
     if ($action == 'create') {
         print "<br>";
    -    print_titre($langs->trans('NewAttribute'));
    +    print load_fiche_titre($langs->trans('NewAttribute'));
     
         include DOL_DOCUMENT_ROOT . '/core/tpl/admin_extrafields_add.tpl.php';
     }
    @@ -104,11 +104,11 @@ if ($action == 'create') {
     /* ************************************************************************** */
     if ($action == 'edit' && !empty($attrname)) {
         print "<br>";
    -    print_titre($langs->trans("FieldEdition", $attrname));
    +    print load_fiche_titre($langs->trans("FieldEdition", $attrname));
     
         include DOL_DOCUMENT_ROOT . '/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/tools/dolibarr_export.php b/htdocs/admin/tools/dolibarr_export.php
    index 1c985e23090..55be556afb9 100644
    --- a/htdocs/admin/tools/dolibarr_export.php
    +++ b/htdocs/admin/tools/dolibarr_export.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2018	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2018	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2018	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -493,6 +493,7 @@ print '</table>';
     
     </div> 	<!-- end div fichehalfleft -->
     
    +
     <div id="backupdatabaseright" class="fichehalfright" style="height:480px; overflow: auto;">
     <div class="ficheaddleft">
     
    @@ -505,23 +506,103 @@ print '<br>';
     
     </div>
     </div>
    -
    +</form>
     </fieldset>
     
     <br>
    +<!-- Dump of a server -->
    +
    +<form method="post" action="export_files.php" name="dump">
    +<input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>" />
    +<input type="hidden" name="export_type" value="server" />
     
     <fieldset><legend class="legendforfieldsetstep" style="font-size: 3em">2</legend>
    +
     <?php
     print $langs->trans("BackupDesc2",DOL_DATA_ROOT).'<br>';
     print $langs->trans("BackupDescX").'<br><br>';
    +
     ?>
    -</fieldset>
     
    +<div id="backupfilesleft" class="fichehalfleft">
     
    -
    -</form>
     <?php
     
    -llxFooter();
    +print load_fiche_titre($title?$title:$langs->trans("BackupDumpWizard"));
    +?>
     
    +<label for="zipfilename_template"> <?php echo $langs->trans("FileNameToGenerate"); ?></label><br>
    +<input type="text" name="zipfilename_template" style="width: 90%"
    +	id="zipfilename_template"
    +	value="<?php
    +$prefix='documents';
    +$ext='zip';
    +
    +$file=$prefix.'_'.$dolibarr_main_db_name.'_'.dol_sanitizeFileName(DOL_VERSION).'_'.strftime("%Y%m%d%H%M").'.'.$ext;
    +echo $file;
    +?>" /> <br>
    +<br>
    +
    +
    +<?php
    +// Show compression choices
    +print '<div class="formelementrow">';
    +print "\n";
    +
    +print $langs->trans("Compression").': &nbsp; ';
    +$filecompression = $compression;
    +array_shift($filecompression);
    +$filecompression['zip']= array('function' => 'dol_compress_dir', 'id' => 'radio_compression_zip',  'label' => $langs->trans("FormatZip"));
    +
    +foreach($filecompression as $key => $val)
    +{
    +    if (! $val['function'] || function_exists($val['function']))	// Enabled export format
    +    {
    +        print '<input type="radio" name="compression" value="'.$key.'" id="'.$val['id'].'" checked>';
    +        print ' <label for="'.$val['id'].'">'.$val['label'].'</label>';
    +    }
    +    else	// Disabled export format
    +    {
    +        print '<input type="radio" name="compression" value="'.$key.'" id="'.$val['id'].'" disabled>';
    +        print ' <label for="'.$val['id'].'">'.$val['label'].'</label>';
    +        print ' ('.$langs->trans("NotAvailable").')';
    +    }
    +    print ' &nbsp; &nbsp; ';
    +}
    +
    +print '</div>';
    +print "\n";
    +
    +?>
    +<br>
    +<div align="center"><input type="submit" class="button"
    +	value="<?php echo $langs->trans("GenerateBackup") ?>" id="buttonGo" /><br>
    +<br>
    +</div>
    +
    +</div>
    +
    +<div id="backupdatabaseright" class="fichehalfright" style="height:480px; overflow: auto;">
    +<div class="ficheaddleft">
    +
    +<?php
    +$filearray=dol_dir_list($conf->admin->dir_output.'/documents','files',0,'','',$sortfield,(strtolower($sortorder)=='asc'?SORT_ASC:SORT_DESC),1);
    +$result=$formfile->list_of_documents($filearray,null,'systemtools','',1,'documents/',1,0,$langs->trans("NoBackupFileAvailable"),0,$langs->trans("PreviousDumpFiles"));
    +print '<br>';
    +?>
    +
    +
    +</div>
    +</div>
    +
    +</fieldset>
    +</form>
    +
    +
    +
    +
    +<?php
    +
    +// End of page
    +llxFooter();
     $db->close();
    diff --git a/htdocs/admin/tools/dolibarr_import.php b/htdocs/admin/tools/dolibarr_import.php
    index f390c192159..90220f1bb23 100644
    --- a/htdocs/admin/tools/dolibarr_import.php
    +++ b/htdocs/admin/tools/dolibarr_import.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2012	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -24,8 +24,8 @@
     
     require '../../main.inc.php';
     
    -$langs->load("admin");
    -$langs->load("other");
    +// Load translation files required by the page
    +$langs->loadLangs(array("other","admin"));
     
     if (! $user->admin)
     	accessforbidden();
    @@ -212,6 +212,6 @@ else if (in_array($type, array('pgsql')))
     </fieldset>
     
     <?php
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/tools/eaccelerator.php b/htdocs/admin/tools/eaccelerator.php
    index d3253c02514..c6209cd7c34 100644
    --- a/htdocs/admin/tools/eaccelerator.php
    +++ b/htdocs/admin/tools/eaccelerator.php
    @@ -168,7 +168,6 @@ function create_script_table($list)
             default:
                 $sortby = "file";
                 ($order == "asc" ? uasort($list, 'compare') : uasort($list, 'revcompare'));
    -
         }
     
         foreach($list as $script) {
    @@ -181,7 +180,6 @@ function create_script_table($list)
             print '</tr>';
         }
         print '</table>';
    -
     }
     
     /**
    @@ -335,7 +333,6 @@ if (function_exists('eaccelerator_get')) {
     
     print "<br><br>";
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/tools/export_files.php b/htdocs/admin/tools/export_files.php
    new file mode 100644
    index 00000000000..809cea3b271
    --- /dev/null
    +++ b/htdocs/admin/tools/export_files.php
    @@ -0,0 +1,166 @@
    +<?php
    +/* Copyright (C) 2006-2014  Laurent Destailleur <eldy@users.sourceforge.net>
    + * Copyright (C) 2011       Juanjo Menent       <jmenent@2byte.es>
    + * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
    + *
    +* 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
    +* the Free Software Foundation; either version 3 of the License, or
    +* (at your option) any later version.
    +*
    +* This program is distributed in the hope that it will be useful,
    +* but WITHOUT ANY WARRANTY; without even the implied warranty of
    +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +* GNU General Public License for more details.
    +*
    +* You should have received a copy of the GNU General Public License
    +* along with this program. If not, see <http://www.gnu.org/licenses/>.
    +*/
    +
    +/**
    + *		\file 		htdocs/admin/tools/export.php
    + *		\brief      Page to export a database into a dump file
    + */
    +
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/utils.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    +
    +$langs->load("admin");
    +
    +$action=GETPOST('action','alpha');
    +$what=GETPOST('what','alpha');
    +$export_type=GETPOST('export_type','alpha');
    +$file=GETPOST('zipfilename_template','alpha');
    +$compression = GETPOST('compression');
    +
    +$sortfield = GETPOST('sortfield','alpha');
    +$sortorder = GETPOST('sortorder','alpha');
    +$page = GETPOST("page",'int');
    +if (! $sortorder) $sortorder="DESC";
    +if (! $sortfield) $sortfield="date";
    +if ($page < 0) { $page = 0; }
    +elseif (empty($page)) $page = 0;
    +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
    +$offset = $limit * $page;
    +
    +if (! $user->admin) accessforbidden();
    +
    +$errormsg='';
    +
    +
    +/*
    + * Actions
    + */
    +
    +if ($action == 'delete')
    +{
    +	$file=$conf->admin->dir_output.'/'.GETPOST('urlfile');
    +	$ret=dol_delete_file($file, 1);
    +	if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
    +	else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
    +	$action='';
    +}
    +
    +
    +/*
    + * View
    + */
    +
    +// Increase limit of time. Works only if we are not in safe mode
    +$ExecTimeLimit=600;
    +if (!empty($ExecTimeLimit))
    +{
    +    $err=error_reporting();
    +    error_reporting(0);     // Disable all errors
    +    //error_reporting(E_ALL);
    +    @set_time_limit($ExecTimeLimit);   // Need more than 240 on Windows 7/64
    +    error_reporting($err);
    +}
    +$MemoryLimit=0;
    +if (!empty($MemoryLimit))
    +{
    +    @ini_set('memory_limit', $MemoryLimit);
    +}
    +
    +$form=new Form($db);
    +$formfile = new FormFile($db);
    +
    +//$help_url='EN:Backups|FR:Sauvegardes|ES:Copias_de_seguridad';
    +//llxHeader('','',$help_url);
    +
    +//print load_fiche_titre($langs->trans("Backup"),'','title_setup');
    +
    +
    +// Start with empty buffer
    +$dump_buffer = '';
    +$dump_buffer_len = 0;
    +
    +// We will send fake headers to avoid browser timeout when buffering
    +$time_start = time();
    +
    +
    +$outputdir  = $conf->admin->dir_output.'/documents';
    +$result=dol_mkdir($outputdir);
    +
    +$utils = new Utils($db);
    +
    +if ($compression == 'zip')
    +{
    +    $ret = dol_compress_dir(DOL_DATA_ROOT, $outputdir."/".$file, $compression);
    +    if ($ret < 0)
    +    {
    +        $errormsg = $langs->trans("ErrorFailedToWriteInDir",$outputfile);
    +    }
    +}
    +elseif (in_array($compression, array('gz', 'bz')))
    +{
    +    $file = substr($file, 0, strrpos($file, '.'));
    +    $file .= '.tar';
    +    $cmd = 'tar -cf '.$outputdir."/".$file." --exclude=documents/admin/documents -C ".DOL_DATA_ROOT." ".DOL_DATA_ROOT."/../documents/";
    +    exec($cmd, $out, $retval);
    +    //var_dump($cmd, DOL_DATA_ROOT);exit;
    +    
    +    if ($retval != 0)
    +    {
    +        $langs->load("errors");
    +        dol_syslog("Documents tar retval after exec=".$retval, LOG_ERR);
    +        $errormsg = 'Error tar generation return '.$retval;
    +    }
    +    else
    +    {
    +        if ($compression == 'gz')
    +        {
    +            $cmd = "gzip " . $outputdir."/".$file;
    +        }
    +        if ($compression == 'bz')
    +        {
    +            $cmd = "bzip2 " . $outputdir."/".$file;
    +        }
    +        
    +        exec($cmd, $out, $retval);
    +        if ($retval != 0)
    +        {
    +            $errormsg = 'Error '.$compression.' generation return '.$retval;
    +            unlink($outputdir."/".$file);
    +        }
    +    }
    +}
    +
    +if ($errormsg)
    +{
    +	setEventMessages($langs->trans("Error")." : ".$errormsg, null, 'errors');
    +}
    +
    +print '<br>';
    +
    +
    +// Redirect t backup page
    +header("Location: dolibarr_export.php");
    +
    +$time_end = time();
    +
    +$db->close();
    +
    diff --git a/htdocs/admin/tools/index.php b/htdocs/admin/tools/index.php
    index 98a490550ca..e1e1fc046c5 100644
    --- a/htdocs/admin/tools/index.php
    +++ b/htdocs/admin/tools/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2004	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2006	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -24,8 +24,8 @@
     
     require '../../main.inc.php';
     
    -$langs->load("admin");
    -$langs->load("companies");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","admin"));
     
     if (! $user->admin)
     	accessforbidden();
    @@ -56,6 +56,6 @@ print '<br><br>';
     //print '<div class="center"><div class="logo_setup"></div></div>';
     print '<center><div class="logo_setup"></div></center>';				// For a reason I don't know, the div class="center does not works, we must keep the <center>
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/tools/listevents.php b/htdocs/admin/tools/listevents.php
    index 48d3ef57fd5..eedb22f0aa8 100644
    --- a/htdocs/admin/tools/listevents.php
    +++ b/htdocs/admin/tools/listevents.php
    @@ -1,7 +1,8 @@
     <?php
     /* Copyright (C) 2004-2017  Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012  Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2015       Bahfir Abbes		<bafbes@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -40,10 +41,8 @@ if ($user->societe_id > 0)
     	$socid = $user->societe_id;
     }
     
    -$langs->load("admin");
    -$langs->load("companies");
    -$langs->load("users");
    -$langs->load("other");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","admin","users","other"));
     
     // Load variable for pagination
     $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
    @@ -237,7 +236,7 @@ if ($result)
     	// Lignes des champs de filtres
     	print '<tr class="liste_titre">';
     
    -	print '<td class="liste_titre" width="15%">'.$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).$form->select_date($date_end,'date_end',0,0,0,'',1,0,1).'</td>';
    +	print '<td class="liste_titre" width="15%">'.$form->selectDate($date_start,'date_start',0,0,0,'',1,0).$form->selectDate($date_end,'date_end',0,0,0,'',1,0).'</td>';
     
     	print '<td align="left" class="liste_titre">';
     	print '<input class="flat" type="text" size="10" name="search_code" value="'.$search_code.'">';
    @@ -339,6 +338,6 @@ else
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/tools/listsessions.php b/htdocs/admin/tools/listsessions.php
    index 0e9e315f2ac..7cbb82fbe6e 100644
    --- a/htdocs/admin/tools/listsessions.php
    +++ b/htdocs/admin/tools/listsessions.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -25,7 +25,8 @@
     require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     
    -$langs->load("install");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","install","users","other"));
     
     if (! $user->admin)
     	accessforbidden();
    @@ -40,10 +41,6 @@ if ($user->societe_id > 0)
       $socid = $user->societe_id;
     }
     
    -$langs->load("companies");
    -$langs->load("users");
    -$langs->load("other");
    -
     $sortfield = GETPOST("sortfield",'alpha');
     $sortorder = GETPOST("sortorder",'alpha');
     $page = GETPOST("page",'int');
    @@ -173,7 +170,6 @@ if ($savehandler == 'files')
     		print '<tr '.$bc[false].'><td colspan="6">'.$langs->trans("NoSessionFound",$savepath,$openbasedir).'</td></tr>';
     	}
     	print "</table>";
    -
     }
     else
     {
    @@ -208,5 +204,6 @@ print '</div>';
     
     print '<br>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/tools/purge.php b/htdocs/admin/tools/purge.php
    index f415ed1692c..48968ff1d27 100644
    --- a/htdocs/admin/tools/purge.php
    +++ b/htdocs/admin/tools/purge.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2017	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2012	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -119,7 +119,6 @@ if (preg_match('/^confirm/i',$choice))
     	print $form->formconfirm($_SERVER["PHP_SELF"].'?choice=allfiles', $langs->trans('Purge'), $langs->trans('ConfirmPurge').img_warning().' ', 'purge', $formquestion, 'no', 2);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/tools/update.php b/htdocs/admin/tools/update.php
    index d0802d6b473..a3c6a73e711 100644
    --- a/htdocs/admin/tools/update.php
    +++ b/htdocs/admin/tools/update.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -27,8 +27,8 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/geturl.lib.php';
     
    -$langs->load("admin");
    -$langs->load("other");
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin","other"));
     
     $action=GETPOST('action','alpha');
     
    @@ -76,7 +76,7 @@ print $langs->trans("CurrentVersion").' : <strong>'.DOL_VERSION.'</strong><br>';
     if (function_exists('curl_init'))
     {
         $conf->global->MAIN_USE_RESPONSE_TIMEOUT = 10;
    -    
    +
         if ($action == 'getlastversion')
         {
             if ($sfurl)
    @@ -95,7 +95,7 @@ if (function_exists('curl_init'))
                     }
                     $i++;
                 }
    -            
    +
                 // Show version
             	print $langs->trans("LastStableVersion").' : <b>'. (($version != '0.0')?$version:$langs->trans("Unknown")) .'</b><br>';
             }
    @@ -142,7 +142,6 @@ print '<hr>';
     
     print $langs->trans("GoModuleSetupArea", DOL_URL_ROOT.'/admin/modules.php?mode=deploy', $langs->transnoentities("Home").' - '.$langs->transnoentities("Setup").' - '.$langs->transnoentities("Modules"));
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/translation.php b/htdocs/admin/translation.php
    index cc21a8ff717..6b893a4a78b 100644
    --- a/htdocs/admin/translation.php
    +++ b/htdocs/admin/translation.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2016	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2017	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2017       Frédéric France     <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -384,7 +384,6 @@ if ($mode == 'overwrite')
     
         print '</table>';
         print '</div>';
    -
     }
     
     if ($mode == 'searchkey')
    @@ -584,6 +583,6 @@ if (! empty($langcode))
     	dol_set_focus('#transvalue');
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/triggers.php b/htdocs/admin/triggers.php
    index 1a1893e2eb0..cd2f33b4cb0 100644
    --- a/htdocs/admin/triggers.php
    +++ b/htdocs/admin/triggers.php
    @@ -84,6 +84,6 @@ foreach ($triggers as $trigger)
     print '</table>';
     print '</div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/admin/user.php b/htdocs/admin/user.php
    index f888c8410bb..dc0edc6302b 100644
    --- a/htdocs/admin/user.php
    +++ b/htdocs/admin/user.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2009	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2011	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2015		Juanjo Menent			<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -337,5 +337,6 @@ print "<br>";
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/usergroup.php b/htdocs/admin/usergroup.php
    index 28f1ad6af2f..60c872abed8 100644
    --- a/htdocs/admin/usergroup.php
    +++ b/htdocs/admin/usergroup.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2009	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2011	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2015		Juanjo Menent			<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -282,5 +282,6 @@ print "<br>";
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/admin/website.php b/htdocs/admin/website.php
    index 80144f93c1f..e36b8d59df3 100644
    --- a/htdocs/admin/website.php
    +++ b/htdocs/admin/website.php
    @@ -167,7 +167,6 @@ if (GETPOST('actionadd','alpha') || GETPOST('actionmodify','alpha'))
                 {
                     $obj = $db->fetch_object($result);
                     $newid=($obj->newid + 1);
    -
                 } else {
                     dol_print_error($db);
                 }
    @@ -322,10 +321,16 @@ if ($action == 'confirm_delete' && $confirm == 'yes')       // delete
     
         if ($website->id > 0)
         {
    -	    $sql = "DELETE from ".MAIN_DB_PREFIX."website_page WHERE fk_website ='".$rowid."'";
    -	    $result = $db->query($sql);
    +    	$sql = "DELETE from ".MAIN_DB_PREFIX."website_account WHERE fk_website ='".$rowid."'";
    +    	$result = $db->query($sql);
     
    -	    $sql = "DELETE from ".MAIN_DB_PREFIX."website WHERE rowid ='".$rowid."'";
    +    	$sql = "DELETE from ".MAIN_DB_PREFIX."website_page WHERE fk_website ='".$rowid."'";
    +    	$result = $db->query($sql);
    +
    +    	$sql = "DELETE from ".MAIN_DB_PREFIX."website_extrafields WHERE fk_object ='".$rowid."'";
    +    	$result = $db->query($sql);
    +
    +    	$sql = "DELETE from ".MAIN_DB_PREFIX."website WHERE rowid ='".$rowid."'";
     	    $result = $db->query($sql);
     	    if (! $result)
     	    {
    @@ -640,9 +645,7 @@ if ($id)
     
     dol_fiche_end();
     
    -//print '<br>';
    -
    -
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/admin/website_options.php b/htdocs/admin/website_options.php
    index c688da0e550..9d724b86390 100644
    --- a/htdocs/admin/website_options.php
    +++ b/htdocs/admin/website_options.php
    @@ -143,9 +143,8 @@ else
     
     
     dol_fiche_end();
    -//print '<br>';
    -
     
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/admin/workflow.php b/htdocs/admin/workflow.php
    index b5bdec73f3e..109335ccbf3 100644
    --- a/htdocs/admin/workflow.php
    +++ b/htdocs/admin/workflow.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
      * Copyright (C) 2005-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -28,7 +28,7 @@ require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     
     // Load translation files required by the page
    -$langs->loadLangs(array("admin","workflow","propal","workflow","orders","supplier_proposals"));
    +$langs->loadLangs(array("admin","workflow","propal","workflow","orders","supplier_proposals","receptions"));
     
     if (! $user->admin) accessforbidden();
     
    @@ -86,6 +86,8 @@ $workflowcodes=array(
     	'WORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL'=>array('family'=>'classify_supplier_proposal', 'position'=>60, 'enabled'=>'! empty($conf->supplier_proposal->enabled) && ! empty($conf->fournisseur->enabled)', 'picto'=>'propal','warning'=>''),
     	// Automatic classification supplier order
     	'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER'=>array('family'=>'classify_supplier_order', 'position'=>62, 'enabled'=>'! empty($conf->fournisseur->enabled)', 'picto'=>'order','warning'=>''),
    +	//Automatic classification reception
    +	'WORKFLOW_BILL_ON_RECEPTION'=>array('family'=>'classify_reception', 'position'=>30, 'enabled'=>'! empty($conf->reception->enabled) && ! empty($conf->fournisseur->enabled)', 'picto'=>'bill'),
     );
     
     if (! empty($conf->modules_parts['workflow']) && is_array($conf->modules_parts['workflow']))
    @@ -138,6 +140,7 @@ foreach($workflowcodes as $key => $params)
     			if ($reg[1] == 'order') print ' - '.$langs->trans('Order');
     			if ($reg[1] == 'supplier_proposal') print ' - '.$langs->trans('SupplierProposal');
     			if ($reg[1] == 'supplier_order') print ' - '.$langs->trans('SupplierOrder');
    +			if ($reg[1] == 'reception') print ' - '.$langs->trans('Reception');
     		}
     		else
     		{
    @@ -187,7 +190,6 @@ if ($nbqualified == 0)
     }
     print '</table>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/api/admin/index.php b/htdocs/api/admin/index.php
    index 4017f3c93ac..23c4ea7f316 100644
    --- a/htdocs/api/admin/index.php
    +++ b/htdocs/api/admin/index.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004		Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2016	Laurent Destailleur		<eldy@users.sourceforge.org>
      * Copyright (C) 2011		Juanjo Menent			<jmenent@2byte.es>
    - * Copyright (C) 2012-2018	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012-2018	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2015		Jean-François Ferry		<jfefe@aternatik.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/api/class/api.class.php b/htdocs/api/class/api.class.php
    index 63f66295556..6d6ef4578cd 100644
    --- a/htdocs/api/class/api.class.php
    +++ b/htdocs/api/class/api.class.php
    @@ -94,7 +94,8 @@ class DolibarrApi
          * @param   object  $object	Object to clean
          * @return	array	Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             // Remove $db object property for object
             unset($object->db);
    @@ -218,9 +219,11 @@ class DolibarrApi
     	 * @param string	$feature2		Feature to check, second level of permission (optional). Can be or check with 'level1|level2'.
     	 * @param string	$dbt_keyfield   Field name for socid foreign key if not fk_soc. Not used if objectid is null (optional)
     	 * @param string	$dbt_select     Field name for select if not rowid. Not used if objectid is null (optional)
    +     * @return bool
     	 * @throws RestException
     	 */
    -	static function _checkAccessToResource($resource, $resource_id=0, $dbtablename='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid') {
    +    static function _checkAccessToResource($resource, $resource_id=0, $dbtablename='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid')
    +    {
     
     		// Features/modules to check
     		$featuresarray = array($resource);
    @@ -251,7 +254,7 @@ class DolibarrApi
     	    //$tmp=preg_replace_all('/'.$regexstring.'/', '', $sqlfilters);
     	    $tmp=$sqlfilters;
     	    $ok=0;
    -	    $i=0; $nb=count($tmp);
    +	    $i=0; $nb=strlen($tmp);
     	    $counter=0;
     	    while ($i < $nb)
     	    {
    @@ -268,6 +271,7 @@ class DolibarrApi
     	    return true;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Function to forge a SQL criteria
     	 *
    @@ -276,6 +280,7 @@ class DolibarrApi
     	 */
     	static function _forge_criteria_callback($matches)
     	{
    +        // phpcs:enable
     	    global $db;
     
     	    //dol_syslog("Convert matches ".$matches[1]);
    diff --git a/htdocs/api/class/api_access.class.php b/htdocs/api/class/api_access.class.php
    index d067d6e2ad6..e453bd331c2 100644
    --- a/htdocs/api/class/api_access.class.php
    +++ b/htdocs/api/class/api_access.class.php
    @@ -59,8 +59,7 @@ class DolibarrApiAccess implements iAuthenticate
     	 */
     	public static $user = '';
     
    -    // @codingStandardsIgnoreStart
    -
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName
     	/**
     	 * Check access
     	 *
    @@ -69,6 +68,7 @@ class DolibarrApiAccess implements iAuthenticate
     	 */
     	public function __isAllowed()
     	{
    +        // phpcs:enable
     		global $conf, $db;
     
     		$login = '';
    @@ -166,6 +166,7 @@ class DolibarrApiAccess implements iAuthenticate
     	    return in_array(static::$role, (array) $requirefortest) || static::$role == 'admin';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName
     	/**
     	 * @return string string to be used with WWW-Authenticate header
     	 * @example Basic
    @@ -174,9 +175,9 @@ class DolibarrApiAccess implements iAuthenticate
     	 */
     	public function __getWWWAuthenticateString()
         {
    +        // phpcs:enable
             return '';
         }
    -    // @codingStandardsIgnoreEnd
     
     	/**
     	 * Verify access
    @@ -196,6 +197,5 @@ class DolibarrApiAccess implements iAuthenticate
             return $requires
                 ? static::$role == 'admin' || in_array(static::$role, (array) $requires)
                 : true;
    -
         }
     }
    diff --git a/htdocs/api/class/api_documents.class.php b/htdocs/api/class/api_documents.class.php
    index 07f124741fe..8db471855d6 100644
    --- a/htdocs/api/class/api_documents.class.php
    +++ b/htdocs/api/class/api_documents.class.php
    @@ -103,7 +103,7 @@ class Documents extends DolibarrApi
     		}
     
     		$file_content=file_get_contents($original_file_osencoded);
    -		return array('filename'=>$filename, 'content'=>base64_encode($file_content), 'encoding'=>'MIME base64 (base64_encode php function, http://php.net/manual/en/function.base64-encode.php)' );
    +		return array('filename'=>$filename, 'content-type' => dol_mimetype($filename), 'filesize'=>filesize($original_file), 'content'=>base64_encode($file_content), 'encoding'=>'base64' );
     	}
     
     
    @@ -224,10 +224,9 @@ class Documents extends DolibarrApi
     		}
     
     		$file_content=file_get_contents($original_file_osencoded);
    -		return array('filename'=>$filename, 'content'=>base64_encode($file_content), 'langcode'=>$outputlangs->defaultlang, 'template'=>$templateused, 'encoding'=>'MIME base64 (base64_encode php function, http://php.net/manual/en/function.base64-encode.php)' );
    +		return array('filename'=>$filename, 'content-type' => dol_mimetype($filename), 'filesize'=>filesize($original_file), 'content'=>base64_encode($file_content), 'langcode'=>$outputlangs->defaultlang, 'template'=>$templateused, 'encoding'=>'base64' );
     	}
     
    -
     	/**
     	 * Return the list of documents of a dedicated element (from its ID or Ref)
     	 *
    @@ -356,6 +355,22 @@ class Documents extends DolibarrApi
     
     			$upload_dir = $conf->facture->dir_output . "/" . get_exdir(0, 0, 0, 1, $object, 'invoice');
     		}
    +		else if ($modulepart == 'agenda' || $modulepart == 'action' || $modulepart == 'event')
    +		{
    +			require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
    +
    +			if (!DolibarrApiAccess::$user->rights->agenda->myactions->read && !DolibarrApiAccess::$user->rights->agenda->allactions->read) {
    +				throw new RestException(401);
    +			}
    +
    +			$object = new ActionComm($this->db);
    +			$result=$object->fetch($id, $ref);
    +			if ( ! $result ) {
    +				throw new RestException(404, 'Event not found');
    +			}
    +
    +			$upload_dir = $conf->agenda->dir_output.'/'.dol_sanitizeFileName($object->ref);
    +		}
     		else
     		{
     			throw new RestException(500, 'Modulepart '.$modulepart.' not implemented yet.');
    diff --git a/htdocs/api/class/api_login.class.php b/htdocs/api/class/api_login.class.php
    index 56808819b3f..86d1cfff87c 100644
    --- a/htdocs/api/class/api_login.class.php
    +++ b/htdocs/api/class/api_login.class.php
    @@ -26,7 +26,11 @@ require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
     class Login
     {
     
    -	function __construct() {
    +    /**
    +     * Constructor of the class
    +     */
    +    function __construct()
    +    {
     		global $db;
     		$this->db = $db;
     	}
    @@ -51,7 +55,8 @@ class Login
     	 * @url GET /
     	 * @url POST /
     	 */
    -	public function index($login, $password, $entity='', $reset=0) {
    +    public function index($login, $password, $entity='', $reset=0)
    +    {
     
     	    global $conf, $dolibarr_main_authentication, $dolibarr_auto_user;
     
    diff --git a/htdocs/api/class/api_setup.class.php b/htdocs/api/class/api_setup.class.php
    index ef2b4c8bb6d..39c1f8d6db6 100644
    --- a/htdocs/api/class/api_setup.class.php
    +++ b/htdocs/api/class/api_setup.class.php
    @@ -1,8 +1,9 @@
     <?php
     /* Copyright (C) 2016   Xebax Christy           <xebax@wanadoo.fr>
      * Copyright (C) 2016	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2017	Regis Houssin	<regis.houssin@capnetworks.com>
    - * Copyright (C) 2017	Neil Orley	<neil.orley@oeris.fr>
    + * Copyright (C) 2017	Regis Houssin	        <regis.houssin@inodbox.com>
    + * Copyright (C) 2017	Neil Orley	            <neil.orley@oeris.fr>
    + * Copyright (C) 2018   Frédéric France         <frederic.france@netlogic.fr>
      *
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -121,7 +122,7 @@ class Setup extends DolibarrApi
          * @param string    $filter     To filter the countries by name
          * @param string    $lang       Code of the language the label of the countries must be translated to
          * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)"
    -     * @return List of countries
    +     * @return array                List of countries
          *
          * @url     GET dictionary/countries
          *
    @@ -188,6 +189,7 @@ class Setup extends DolibarrApi
          * @param int       $id        ID of country
          * @param string    $lang      Code of the language the name of the
          *                             country must be translated to
    +     * @return array 			   Array of cleaned object properties
          *
          * @url     GET dictionary/countries/{id}
          *
    @@ -293,6 +295,7 @@ class Setup extends DolibarrApi
          * @param Ccountry $country   Country
          * @param string   $lang      Code of the language the name of the
          *                            country must be translated to
    +     * @return void
          */
         private function translateLabel($country, $lang)
         {
    @@ -323,6 +326,7 @@ class Setup extends DolibarrApi
          * @param int       $page       Page number (starting from zero)
          * @param string    $type       To filter on type of event
          * @param string    $module     To filter on module events
    +     * @param int       $active     Payment term is active or not {@min 0} {@max 1}
          * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)"
          * @return List of events types
          *
    @@ -330,13 +334,13 @@ class Setup extends DolibarrApi
          *
          * @throws RestException
          */
    -    function getListOfEventTypes($sortfield = "code", $sortorder = 'ASC', $limit = 100, $page = 0, $type = '', $module = '', $sqlfilters = '')
    +    function getListOfEventTypes($sortfield = "code", $sortorder = 'ASC', $limit = 100, $page = 0, $type = '', $module = '', $active = 1, $sqlfilters = '')
         {
             $list = array();
     
             $sql = "SELECT id, code, type, libelle as label, module";
             $sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm as t";
    -        $sql.= " WHERE t.active = 1";
    +        $sql.= " WHERE t.active = ".$active;
             if ($type) $sql.=" AND t.type LIKE '%" . $this->db->escape($type) . "%'";
             if ($module)    $sql.=" AND t.module LIKE '%" . $this->db->escape($module) . "%'";
             // Add sql filters
    @@ -377,6 +381,127 @@ class Setup extends DolibarrApi
             return $list;
         }
     
    +    /**
    +     * Get the list of civilities.
    +     *
    +     * @param string    $sortfield  Sort field
    +     * @param string    $sortorder  Sort order
    +     * @param int       $limit      Number of items per page
    +     * @param int       $page       Page number (starting from zero)
    +     * @param string    $module     To filter on module events
    +     * @param int       $active     Payment term is active or not {@min 0} {@max 1}
    +     * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)"
    +     * @return List of events types
    +     *
    +     * @url     GET dictionary/civilities
    +     *
    +     * @throws RestException
    +     */
    +    function getListOfCivilities($sortfield = "code", $sortorder = 'ASC', $limit = 100, $page = 0, $module = '', $active = 1, $sqlfilters = '')
    +    {
    +        $list = array();
    +
    +        $sql = "SELECT rowid, code, label, module";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."c_civility as t";
    +        $sql.= " WHERE t.active = ".$active;
    +        if ($module)    $sql.=" AND t.module LIKE '%" . $this->db->escape($module) . "%'";
    +        // Add sql filters
    +        if ($sqlfilters)
    +        {
    +            if (! DolibarrApi::_checkFilters($sqlfilters))
    +            {
    +                throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
    +            }
    +	        $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
    +            $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
    +        }
    +
    +
    +        $sql.= $this->db->order($sortfield, $sortorder);
    +
    +        if ($limit) {
    +            if ($page < 0) {
    +                $page = 0;
    +            }
    +            $offset = $limit * $page;
    +
    +            $sql .= $this->db->plimit($limit, $offset);
    +        }
    +
    +        $result = $this->db->query($sql);
    +
    +        if ($result) {
    +            $num = $this->db->num_rows($result);
    +            $min = min($num, ($limit <= 0 ? $num : $limit));
    +            for ($i = 0; $i < $min; $i++) {
    +                $list[] = $this->db->fetch_object($result);
    +            }
    +        } else {
    +            throw new RestException(503, 'Error when retrieving list of civility : '.$this->db->lasterror());
    +        }
    +
    +        return $list;
    +    }
    +    
    +    /**
    +     * Get the list of currencies.
    +     *
    +     * @param string    $sortfield  Sort field
    +     * @param string    $sortorder  Sort order
    +     * @param int       $limit      Number of items per page
    +     * @param int       $page       Page number (starting from zero)
    +     * @param int       $active     Payment term is active or not {@min 0} {@max 1}
    +     * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)"
    +     * @return List of events types
    +     *
    +     * @url     GET dictionary/currencies
    +     *
    +     * @throws RestException
    +     */
    +    function getListOfCurrencies($sortfield = "code_iso", $sortorder = 'ASC', $limit = 100, $page = 0, $active = 1, $sqlfilters = '')
    +    {
    +        $list = array();
    + //TODO link with multicurrency module
    +        $sql = "SELECT t.code_iso, t.label, t.unicode";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."c_currencies as t";
    +        $sql.= " WHERE t.active = ".$active;
    +        // Add sql filters
    +        if ($sqlfilters)
    +        {
    +            if (! DolibarrApi::_checkFilters($sqlfilters))
    +            {
    +                throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
    +            }
    +	        $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
    +            $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
    +        }
    +
    +
    +        $sql.= $this->db->order($sortfield, $sortorder);
    +
    +        if ($limit) {
    +            if ($page < 0) {
    +                $page = 0;
    +            }
    +            $offset = $limit * $page;
    +
    +            $sql .= $this->db->plimit($limit, $offset);
    +        }
    +
    +        $result = $this->db->query($sql);
    +
    +        if ($result) {
    +            $num = $this->db->num_rows($result);
    +            $min = min($num, ($limit <= 0 ? $num : $limit));
    +            for ($i = 0; $i < $min; $i++) {
    +                $list[] = $this->db->fetch_object($result);
    +            }
    +        } else {
    +            throw new RestException(503, 'Error when retrieving list of currency : '.$this->db->lasterror());
    +        }
    +
    +        return $list;
    +    }
     
         /**
          * Get the list of extra fields.
    @@ -462,6 +587,7 @@ class Setup extends DolibarrApi
          * @param int       $page       Page number (starting from zero)
          * @param string    $zipcode    To filter on zipcode
          * @param string    $town       To filter on city name
    +     * @param int       $active     Payment term is active or not {@min 0} {@max 1}
          * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)"
          * @return List of towns
          *
    @@ -469,13 +595,13 @@ class Setup extends DolibarrApi
          *
          * @throws RestException
          */
    -    function getListOfTowns($sortfield = "zip,town", $sortorder = 'ASC', $limit = 100, $page = 0, $zipcode = '', $town = '', $sqlfilters = '')
    +    function getListOfTowns($sortfield = "zip,town", $sortorder = 'ASC', $limit = 100, $page = 0, $zipcode = '', $town = '', $active = 1, $sqlfilters = '')
         {
             $list = array();
     
             $sql = "SELECT rowid AS id, zip, town, fk_county, fk_pays AS fk_country";
             $sql.= " FROM ".MAIN_DB_PREFIX."c_ziptown as t";
    -        $sql.= " WHERE t.active = 1";
    +        $sql.= " AND t.active = ".$active;
             if ($zipcode) $sql.=" AND t.zip LIKE '%" . $this->db->escape($zipcode) . "%'";
             if ($town)    $sql.=" AND t.town LIKE '%" . $this->db->escape($town) . "%'";
             // Add sql filters
    @@ -579,6 +705,188 @@ class Setup extends DolibarrApi
             return $list;
         }
     
    +     /**
    +     * Get the list of tickets categories.
    +     *
    +     * @param string    $sortfield  Sort field
    +     * @param string    $sortorder  Sort order
    +     * @param int       $limit      Number of items per page
    +     * @param int       $page       Page number (starting from zero)
    +     * @param int       $active     Payment term is active or not {@min 0} {@max 1}
    +     * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)"
    +     * @return List of events types
    +     *
    +     * @url     GET dictionary/ticket_categories
    +     *
    +     * @throws RestException
    +     */
    +    function getTicketsCategories($sortfield = "code", $sortorder = 'ASC', $limit = 100, $page = 0, $active = 1, $sqlfilters = '')
    +    {
    +    	$list = array();
    +
    +    	$sql = "SELECT rowid, code, pos,  label, use_default, description";
    +    	$sql.= " FROM ".MAIN_DB_PREFIX."c_ticket_category as t";
    +      $sql.= " WHERE t.active = ".$active;
    +    	// Add sql filters
    +    	if ($sqlfilters)
    +    	{
    +    		if (! DolibarrApi::_checkFilters($sqlfilters))
    +    		{
    +    			throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
    +    		}
    +    		$regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
    +    		$sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
    +    	}
    +
    +
    +    	$sql.= $this->db->order($sortfield, $sortorder);
    +
    +    	if ($limit) {
    +    		if ($page < 0) {
    +    			$page = 0;
    +    		}
    +    		$offset = $limit * $page;
    +
    +    		$sql .= $this->db->plimit($limit, $offset);
    +    	}
    +
    +    	$result = $this->db->query($sql);
    +
    +    	if ($result) {
    +    		$num = $this->db->num_rows($result);
    +    		$min = min($num, ($limit <= 0 ? $num : $limit));
    +    		for ($i = 0; $i < $min; $i++) {
    +    			$list[] = $this->db->fetch_object($result);
    +    		}
    +    	} else {
    +    		throw new RestException(503, 'Error when retrieving list of ticket categories : '.$this->db->lasterror());
    +    	}
    +
    +    	return $list;
    +    }
    +
    +    /**
    +     * Get the list of tickets severity.
    +     *
    +     * @param string    $sortfield  Sort field
    +     * @param string    $sortorder  Sort order
    +     * @param int       $limit      Number of items per page
    +     * @param int       $page       Page number (starting from zero)
    +     * @param int       $active     Payment term is active or not {@min 0} {@max 1}
    +     * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)"
    +     * @return List of events types
    +     *
    +     * @url     GET dictionary/ticket_severities
    +     *
    +     * @throws RestException
    +     */
    +    function getTicketsSeverities($sortfield = "code", $sortorder = 'ASC', $limit = 100, $page = 0, $active = 1, $sqlfilters = '')
    +    {
    +    	$list = array();
    +
    +    	$sql = "SELECT rowid, code, pos,  label, use_default, color, description";
    +    	$sql.= " FROM ".MAIN_DB_PREFIX."c_ticket_severity as t";
    +      $sql.= " WHERE t.active = ".$active;
    +    	// Add sql filters
    +    	if ($sqlfilters)
    +    	{
    +    		if (! DolibarrApi::_checkFilters($sqlfilters))
    +    		{
    +    			throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
    +    		}
    +    		$regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
    +    		$sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
    +    	}
    +
    +
    +    	$sql.= $this->db->order($sortfield, $sortorder);
    +
    +    	if ($limit) {
    +    		if ($page < 0) {
    +    			$page = 0;
    +    		}
    +    		$offset = $limit * $page;
    +
    +    		$sql .= $this->db->plimit($limit, $offset);
    +    	}
    +
    +    	$result = $this->db->query($sql);
    +
    +    	if ($result) {
    +    		$num = $this->db->num_rows($result);
    +    		$min = min($num, ($limit <= 0 ? $num : $limit));
    +    		for ($i = 0; $i < $min; $i++) {
    +    			$list[] = $this->db->fetch_object($result);
    +    		}
    +    	} else {
    +    		throw new RestException(503, 'Error when retrieving list of ticket severities : '.$this->db->lasterror());
    +    	}
    +
    +    	return $list;
    +    }
    +
    +    /**
    +     * Get the list of tickets types.
    +     *
    +     * @param string    $sortfield  Sort field
    +     * @param string    $sortorder  Sort order
    +     * @param int       $limit      Number of items per page
    +     * @param int       $page       Page number (starting from zero)
    +     * @param int       $active     Payment term is active or not {@min 0} {@max 1}
    +     * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)"
    +     * @return List of events types
    +     *
    +     * @url     GET dictionary/ticket_types
    +     *
    +     * @throws RestException
    +     */
    +    function getTicketsTypes($sortfield = "code", $sortorder = 'ASC', $limit = 100, $page = 0, $active = 1, $sqlfilters = '')
    +    {
    +    	$list = array();
    +
    +    	$sql = "SELECT rowid, code, pos,  label, use_default, description";
    +    	$sql.= " FROM ".MAIN_DB_PREFIX."c_ticket_type as t";
    +      $sql.= " WHERE t.active = ".$active;
    +    	if ($type) $sql.=" AND t.type LIKE '%" . $this->db->escape($type) . "%'";
    +    	if ($module)    $sql.=" AND t.module LIKE '%" . $this->db->escape($module) . "%'";
    +    	// Add sql filters
    +    	if ($sqlfilters)
    +    	{
    +    		if (! DolibarrApi::_checkFilters($sqlfilters))
    +    		{
    +    			throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
    +    		}
    +    		$regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
    +    		$sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
    +    	}
    +
    +
    +    	$sql.= $this->db->order($sortfield, $sortorder);
    +
    +    	if ($limit) {
    +    		if ($page < 0) {
    +    			$page = 0;
    +    		}
    +    		$offset = $limit * $page;
    +
    +    		$sql .= $this->db->plimit($limit, $offset);
    +    	}
    +
    +    	$result = $this->db->query($sql);
    +
    +    	if ($result) {
    +    		$num = $this->db->num_rows($result);
    +    		$min = min($num, ($limit <= 0 ? $num : $limit));
    +    		for ($i = 0; $i < $min; $i++) {
    +    			$list[] = $this->db->fetch_object($result);
    +    		}
    +    	} else {
    +    		throw new RestException(503, 'Error when retrieving list of ticket types : '.$this->db->lasterror());
    +    	}
    +
    +    	return $list;
    +    }
    +
     
         /**
          * Do a test of integrity for files and setup.
    @@ -863,11 +1171,11 @@ class Setup extends DolibarrApi
         			// Show warning
         			if (empty($tmpfilelist) && empty($tmpfilelist2) && empty($tmpfilelist3))
         			{
    -    				//setEventMessage($langs->trans("FileIntegrityIsStrictlyConformedWithReference"));
    +    				//setEventMessages($langs->trans("FileIntegrityIsStrictlyConformedWithReference"), null, 'mesgs');
         			}
         			else
         			{
    -    				//setEventMessage($langs->trans("FileIntegritySomeFilesWereRemovedOrModified"), 'warnings');
    +    				//setEventMessages($langs->trans("FileIntegritySomeFilesWereRemovedOrModified"), null, 'warnings');
         			}
         		}
         		else
    @@ -916,5 +1224,4 @@ class Setup extends DolibarrApi
     
         	return array('resultcode'=>$resultcode, 'resultcomment'=>$resultcomment, 'expectedchecksum'=> $outexpectedchecksum, 'currentchecksum'=> $outcurrentchecksum, 'out'=>$out);
         }
    -
     }
    diff --git a/htdocs/api/class/api_status.class.php b/htdocs/api/class/api_status.class.php
    index ea61731b51a..3ade4ea51b8 100644
    --- a/htdocs/api/class/api_status.class.php
    +++ b/htdocs/api/class/api_status.class.php
    @@ -26,18 +26,21 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/functions.lib.php';
      */
     class Status
     {
    -	/**
    +    /**
          * Get status (Dolibarr version)
    -	 */
    -	function index() {
    -		global $conf;
    +     *
    +     * @return array
    +     */
    +    function index()
    +    {
    +        global $conf;
     
    -		return array(
    -			'success' => array(
    -				'code' => 200,
    -				'dolibarr_version' => DOL_VERSION,
    -				'access_locked' => (empty($conf->global->MAIN_ONLY_LOGIN_ALLOWED)?'0':$conf->global->MAIN_ONLY_LOGIN_ALLOWED)
    -			)
    -		);
    +        return array(
    +            'success' => array(
    +                'code' => 200,
    +                'dolibarr_version' => DOL_VERSION,
    +                'access_locked' => (empty($conf->global->MAIN_ONLY_LOGIN_ALLOWED)?'0':$conf->global->MAIN_ONLY_LOGIN_ALLOWED),
    +            ),
    +        );
         }
     }
    diff --git a/htdocs/api/index.php b/htdocs/api/index.php
    index e66a19c981a..e55a30304a4 100644
    --- a/htdocs/api/index.php
    +++ b/htdocs/api/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2015	Jean-François Ferry		<jfefe@aternatik.fr>
      * Copyright (C) 2016	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2017	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/asset/admin/assets_extrafields.php b/htdocs/asset/admin/assets_extrafields.php
    index 1cdf78df4bf..f220d5cb849 100644
    --- a/htdocs/asset/admin/assets_extrafields.php
    +++ b/htdocs/asset/admin/assets_extrafields.php
    @@ -64,7 +64,7 @@ $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToM
     print load_fiche_titre($langs->trans("AssetsSetup"),$linkback,'title_setup');
     
     
    -$head = AssetsAdminPrepareHead();
    +$head = asset_admin_prepare_head();
     
     dol_fiche_head($head, 'attributes', $langs->trans("Assets"), -1, 'generic');
     
    @@ -109,6 +109,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/asset/admin/assets_type_extrafields.php b/htdocs/asset/admin/assets_type_extrafields.php
    index d828bffa4de..a791078f37b 100644
    --- a/htdocs/asset/admin/assets_type_extrafields.php
    +++ b/htdocs/asset/admin/assets_type_extrafields.php
    @@ -63,7 +63,7 @@ $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToM
     print load_fiche_titre($langs->trans("AssetsSetup"),$linkback,'title_setup');
     
     
    -$head = AssetsAdminPrepareHead();
    +$head = asset_admin_prepare_head();
     
     dol_fiche_head($head, 'attributes_type', $langs->trans("Assets"), -1, 'generic');
     
    @@ -107,6 +107,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/asset/admin/setup.php b/htdocs/asset/admin/setup.php
    index c240f350590..57738309abd 100644
    --- a/htdocs/asset/admin/setup.php
    +++ b/htdocs/asset/admin/setup.php
    @@ -58,7 +58,7 @@ $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToM
     print load_fiche_titre($langs->trans("AssetsSetup"),$linkback,'title_setup');
     
     
    -$head = AssetsAdminPrepareHead();
    +$head = asset_admin_prepare_head();
     
     dol_fiche_head($head, 'settings', $langs->trans("Assets"), -1, 'generic');
     
    @@ -107,9 +107,8 @@ else
     	print '</div>';
     }
     
    -
    -// Page end
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/asset/card.php b/htdocs/asset/card.php
    index 0187dc93939..d8b8f3aa056 100644
    --- a/htdocs/asset/card.php
    +++ b/htdocs/asset/card.php
    @@ -17,7 +17,7 @@
      */
     
     /**
    - *  \file       card.php
    + *  \file       htdocs/asset/card.php
      *  \ingroup    asset
      *  \brief      Page to create/edit/view asset
      */
    @@ -25,8 +25,8 @@
     require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/asset.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/asset/class/asset.class.php';
    -include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php');
    -include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php');
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array("asset"));
    @@ -45,7 +45,7 @@ $diroutputmassaction=$conf->asset->dir_output . '/temp/massgeneration/'.$user->i
     $hookmanager->initHooks(array('assetcard'));     // Note that conf->hooks_modules contains array
     // Fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('asset');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // Initialize array of search criterias
     $search_all=trim(GETPOST("search_all",'alpha'));
    @@ -203,7 +203,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     {
     	$res = $object->fetch_optionals($object->id, $extralabels);
     
    -	$head = AssetsPrepareHead($object);
    +	$head = asset_prepare_head($object);
     	dol_fiche_head($head, 'card', $langs->trans("Asset"), -1, 'generic');
     
     	$formconfirm = '';
    @@ -221,12 +221,11 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     		$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('XXX'), $text, 'confirm_xxx', $formquestion, 0, 1, 220);
     	}
     
    -	if (! $formconfirm) {
    -		$parameters = array('lineid' => $lineid);
    -		$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    -		if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    -		elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    -	}
    +	// Call Hook formConfirm
    +	$parameters = array('lineid' => $lineid);
    +	$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +	if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +	elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
     
     	// Print form confirm
     	print $formconfirm;
    @@ -288,7 +287,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     			}
     			else
     			{
    -				print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Modify').'</a>'."\n";
    +				print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Modify').'</a>'."\n";
     			}
     
     			if ($user->rights->asset->delete)
    @@ -297,7 +296,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     			}
     			else
     			{
    -				print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Delete').'</a>'."\n";
    +				print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Delete').'</a>'."\n";
     			}
     		}
     		print '</div>'."\n";
    diff --git a/htdocs/asset/class/asset.class.php b/htdocs/asset/class/asset.class.php
    index 4ab05ce675c..335a9f6e9d1 100644
    --- a/htdocs/asset/class/asset.class.php
    +++ b/htdocs/asset/class/asset.class.php
    @@ -35,18 +35,22 @@ class Asset extends CommonObject
     	 * @var string ID to identify managed object
     	 */
     	public $element = 'asset';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'asset';
    +
     	/**
     	 * @var int  Does module support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     	 */
     	public $ismultientitymanaged = 0;
    +
     	/**
     	 * @var int  Does asset support extrafields ? 0=No, 1=Yes
     	 */
     	public $isextrafieldmanaged = 1;
    +
     	/**
     	 * @var string String with name of icon for asset. Must be the part after the 'object_' into object_asset.png
     	 */
    @@ -91,20 +95,59 @@ class Asset extends CommonObject
     		'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'visible'=>-2, 'enabled'=>1, 'position'=>1000, 'notnull'=>-1,),
     		'status' => array('type'=>'integer', 'label'=>'Status', 'visible'=>1, 'enabled'=>1, 'position'=>1000, 'notnull'=>1, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Draft', '1'=>'Active', '-1'=>'Cancel')),
     	);
    +
    +	/**
    +	 * @var int ID
    +	 */
     	public $rowid;
    +
    +	/**
    +	 * @var string Ref
    +	 */
     	public $ref;
    +
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
    -	public $label;
    +
    +    /**
    +     * @var string Asset label
    +     */
    +    public $label;
    +
     	public $amount;
    -	public $fk_soc;
    +
    +	/**
    +	 * @var int Thirdparty ID
    +	 */
    +    public $fk_soc;
    +
    +	/**
    +	 * @var string description
    +	 */
     	public $description;
    +
     	public $note_public;
     	public $note_private;
     	public $date_creation;
     	public $tms;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_modif;
    +
     	public $import_key;
    +
    +	/**
    +	 * @var int Status
    +	 */
     	public $status;
     
     	// If this object has a subtable with lines
    @@ -195,6 +238,8 @@ class Asset extends CommonObject
     			$this->errors = $object->errors;
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (!$error) {
     			$this->db->commit();
    @@ -329,6 +374,7 @@ class Asset extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return the status
     	 *
    @@ -338,43 +384,38 @@ class Asset extends CommonObject
     	 */
     	static function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
    -		if ($mode == 0)
    -		{
    -			$prefix='';
    -			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == 0) return $langs->trans('Disabled');
    -		}
    -		if ($mode == 1)
    +		if ($mode == 0 || $mode == 1)
     		{
     			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == 0) return $langs->trans('Disabled');
    +			elseif ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
    +			elseif ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
    +			elseif ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
     		}
     	}
     
    @@ -424,7 +465,6 @@ class Asset extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -461,4 +501,4 @@ class Asset extends CommonObject
     
     		return 0;
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/asset/class/asset_type.class.php b/htdocs/asset/class/asset_type.class.php
    index 51ea3a0c799..51d76d75155 100644
    --- a/htdocs/asset/class/asset_type.class.php
    +++ b/htdocs/asset/class/asset_type.class.php
    @@ -29,21 +29,44 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class AssetType extends CommonObject
     {
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element = 'asset_type';
    -	public $element = 'asset_type';
    -	public $picto = 'group';
    -	public $ismultientitymanaged = 1;  // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     
    -	/** @var string Label */
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element = 'asset_type';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto = 'invoice';
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 1;
    +
    +	/**
    +	 * @var string Asset type label
    +	 */
     	public $label;
    +
     	/** @var string Accountancy code asset */
     	public $accountancy_code_asset;
    +
     	/** @var string Accountancy code depreciation asset */
     	public $accountancy_code_depreciation_asset;
    +
     	/** @var string Accountancy code depreciation expense */
     	public $accountancy_code_depreciation_expense;
    +
     	/** @var string 	Public note */
     	public $note;
    +
     	/** @var array Array of asset */
     	public $asset=array();
     
    @@ -84,12 +107,14 @@ class AssetType extends CommonObject
     		$sql.= ", accountancy_code_asset";
     		$sql.= ", accountancy_code_depreciation_asset";
     		$sql.= ", accountancy_code_depreciation_expense";
    +		$sql.= ", note";
     		$sql.= ", entity";
     		$sql.= ") VALUES (";
     		$sql.= "'".$this->db->escape($this->label)."'";
     		$sql.= ", '".$this->db->escape($this->accountancy_code_asset)."'";
     		$sql.= ", '".$this->db->escape($this->accountancy_code_depreciation_asset)."'";
     		$sql.= ", '".$this->db->escape($this->accountancy_code_depreciation_expense)."'";
    +		$sql.= ", '".$this->db->escape($this->note)."'";
     		$sql.= ", ".$conf->entity;
     		$sql.= ")";
     
    @@ -156,7 +181,8 @@ class AssetType extends CommonObject
     		$sql.= "label = '".$this->db->escape($this->label) ."',";
     		$sql.= "accountancy_code_asset = '".$this->db->escape($this->accountancy_code_asset)."',";
     		$sql.= "accountancy_code_depreciation_asset = '".$this->db->escape($this->accountancy_code_depreciation_asset)."',";
    -		$sql.= "accountancy_code_depreciation_expense = '".$this->db->escape($this->accountancy_code_depreciation_expense)."'";
    +		$sql.= "accountancy_code_depreciation_expense = '".$this->db->escape($this->accountancy_code_depreciation_expense)."',";
    +		$sql.= "note = '".$this->db->escape($this->note) ."'";
     		$sql.= " WHERE rowid =".$this->id;
     
     		$result = $this->db->query($sql);
    @@ -274,6 +300,7 @@ class AssetType extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of asset's type
     	 *
    @@ -281,6 +308,7 @@ class AssetType extends CommonObject
     	 */
     	function liste_array()
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$assettypes = array();
    @@ -429,5 +457,4 @@ class AssetType extends CommonObject
     	{
     		return '';
     	}
    -
     }
    diff --git a/htdocs/asset/document.php b/htdocs/asset/document.php
    index 66baaae196c..c1332ed10a2 100644
    --- a/htdocs/asset/document.php
    +++ b/htdocs/asset/document.php
    @@ -17,7 +17,7 @@
      */
     
     /**
    - *  \file       document.php
    + *  \file       htdocs/asset/document.php
      *  \ingroup    asset
      *  \brief      Tab for documents linked to Assets
      */
    @@ -95,12 +95,12 @@ if ($object->id)
     	 * Show tabs
     	 */
     	if (! empty($conf->notification->enabled)) $langs->load("mails");
    -	$head = AssetsPrepareHead($object);
    +	$head = asset_prepare_head($object);
     
     	dol_fiche_head($head, 'document', $langs->trans("Asset"), -1, 'generic');
     
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -148,6 +148,6 @@ else
     	accessforbidden('',0,0);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/asset/info.php b/htdocs/asset/info.php
    index 71460f31a2c..e01316ae685 100644
    --- a/htdocs/asset/info.php
    +++ b/htdocs/asset/info.php
    @@ -16,7 +16,7 @@
      */
     
     /**
    - *  \file       info.php
    + *  \file       htdocs/asset/info.php
      *  \ingroup    asset
      *  \brief      Page to show an asset information
      */
    @@ -55,7 +55,7 @@ $form = new Form($db);
     
     $object->info($id);
     
    -$head = AssetsPrepareHead($object);
    +$head = asset_prepare_head($object);
     
     dol_fiche_head($head, 'info', $langs->trans("Asset"), -1, 'generic');
     
    @@ -79,5 +79,6 @@ print '</div>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/asset/list.php b/htdocs/asset/list.php
    index 5dc8b2c6866..cb0a8cca7b2 100644
    --- a/htdocs/asset/list.php
    +++ b/htdocs/asset/list.php
    @@ -18,7 +18,7 @@
      */
     
     /**
    - *   	\file       list.php
    + *   	\file       htdocs/asset/list.php
      *		\ingroup    asset
      *		\brief      List page for asset
      */
    @@ -62,7 +62,7 @@ $diroutputmassaction=$conf->asset->dir_output . '/temp/massgeneration/'.$user->i
     $hookmanager->initHooks(array('assetlist'));     // Note that conf->hooks_modules contains array
     // Fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('asset');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // Default sort order (if not yet defined by previous GETPOST)
     if (! $sortfield) $sortfield="t.".key($object->fields);   // Set here default search field. By default 1st field in definition.
    @@ -474,8 +474,8 @@ if (isset($totalarray['pos']))
     		{
     			if ($i == 1)
     			{
    -				if ($num < $limit) print '<td align="left">'.$langs->trans("Total").'</td>';
    -				else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +				if ($num < $limit) print '<td class="left">'.$langs->trans("Total").'</td>';
    +				else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     			}
     			else print '<td></td>';
     		}
    diff --git a/htdocs/asset/note.php b/htdocs/asset/note.php
    index cf0166df96f..f76c6ea028f 100644
    --- a/htdocs/asset/note.php
    +++ b/htdocs/asset/note.php
    @@ -17,7 +17,7 @@
      */
     
     /**
    - *  \file       note.php
    + *  \file       htdocs/asset/note.php
      *  \ingroup    asset
      *  \brief      Card with notes on Asset
      */
    @@ -78,7 +78,7 @@ if ($id > 0 || ! empty($ref))
     {
     	$object->fetch_thirdparty();
     
    -	$head = AssetsPrepareHead($object);
    +	$head = asset_prepare_head($object);
     
     	dol_fiche_head($head, 'note', $langs->trans("Asset"), -1, 'generic');
     
    @@ -144,6 +144,6 @@ if ($id > 0 || ! empty($ref))
     	dol_fiche_end();
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/asset/type.php b/htdocs/asset/type.php
    index f4409ee5417..b8a282430cc 100644
    --- a/htdocs/asset/type.php
    +++ b/htdocs/asset/type.php
    @@ -49,10 +49,13 @@ $offset = $limit * $page ;
     $pageprev = $page - 1;
     $pagenext = $page + 1;
     if (! $sortorder) {  $sortorder="DESC"; }
    -if (! $sortfield) {  $sortfield="d.lastname"; }
    +if (! $sortfield) {  $sortfield="a.label"; }
     
     $label=GETPOST("label","alpha");
    -$comment=GETPOST("comment");
    +$accountancy_code_asset=GETPOST('accountancy_code_asset','string');
    +$accountancy_code_depreciation_asset=GETPOST('accountancy_code_depreciation_asset','string');
    +$accountancy_code_depreciation_expense=GETPOST('accountancy_code_depreciation_expense','string');
    +$comment=GETPOST('comment','string');
     
     // Security check
     $result=restrictedArea($user,'asset',$rowid,'asset_type');
    @@ -259,39 +262,39 @@ if (! $rowid && $action != 'create' && $action != 'edit')
     			print '</td>';
     			print '<td>'.dol_escape_htmltag($objp->label).'</td>';
     
    -			print '<td>';
    +			print '<td class="center">';
     			if (! empty($conf->accounting->enabled))
     			{
     				$accountingaccount = new AccountingAccount($db);
    -				$accountingaccount->fetch('',$object->accountancy_code_asset,1);
    +				$accountingaccount->fetch('',$objp->accountancy_code_asset,1);
     
    -				print $accountingaccount->getNomUrl(0,1,1,'',1);
    +				print $accountingaccount->getNomUrl(0,0,0,'',0);
     			} else {
    -				print $object->accountancy_code_asset;
    +				print $objp->accountancy_code_asset;
     			}
     			print '</td>';
     
    -			print '<td>';
    +			print '<td class="center">';
     			if (! empty($conf->accounting->enabled))
     			{
     				$accountingaccount2 = new AccountingAccount($db);
    -				$accountingaccount2->fetch('',$object->accountancy_code_depreciation_asset,1);
    +				$accountingaccount2->fetch('',$objp->accountancy_code_depreciation_asset,1);
     
    -				print $accountingaccount2->getNomUrl(0,1,1,'',1);
    +				print $accountingaccount2->getNomUrl(0,0,0,'',0);
     			} else {
    -				print $object->accountancy_code_depreciation_asset;
    +				print $objp->accountancy_code_depreciation_asset;
     			}
     			print '</td>';
     
    -			print '<td>';
    +			print '<td class="center">';
     			if (! empty($conf->accounting->enabled))
     			{
     				$accountingaccount3 = new AccountingAccount($db);
    -				$accountingaccount3->fetch('',$object->accountancy_code_depreciation_expense,1);
    +				$accountingaccount3->fetch('',$objp->accountancy_code_depreciation_expense,1);
     
    -				print $accountingaccount3->getNomUrl(0,1,1,'',1);
    +				print $accountingaccount3->getNomUrl(0,0,0,'',0);
     			} else {
    -				print $object->accountancy_code_depreciation_expense;
    +				print $objp->accountancy_code_depreciation_expense;
     			}
     			print '</td>';
     
    @@ -356,7 +359,6 @@ if ($action == 'create')
     		print '<td>';
     		print $formaccounting->select_account($object->accountancy_code_depreciation_expense, 'accountancy_code_depreciation_expense', 1, '', 1, 1);
     		print '</td></tr>';
    -
     	}
     	else // For external software
     	{
    @@ -419,7 +421,7 @@ if ($rowid > 0)
     		 */
     		if ($action == 'delete')
     		{
    -			print $form->formconfirm($_SERVER['PHP_SELF']."?rowid=".$object->id,$langs->trans("DeleteAMemberType"),$langs->trans("ConfirmDeleteMemberType",$object->label),"confirm_delete", '',0,1);
    +			print $form->formconfirm($_SERVER['PHP_SELF']."?rowid=".$object->id,$langs->trans("DeleteAnAssetType"),$langs->trans("ConfirmDeleteAssetType",$object->label),"confirm_delete", '',0,1);
     		}
     
     		$head = asset_type_prepare_head($object);
    @@ -428,14 +430,23 @@ if ($rowid > 0)
     
     		$linkback = '<a href="'.DOL_URL_ROOT.'/asset/type.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
     
    -		dol_banner_tab($object, 'rowid', $linkback);
    +		$morehtmlref='<div class="refidno">';
    +		// Ref asset type
    +		$morehtmlref.=$form->editfieldkey("Label", 'label', $object->label, $object, $user->rights->asset->write, 'string', '', 0, 1);
    +		$morehtmlref.=$form->editfieldval("Label", 'label', $object->label, $object, $user->rights->asset->write, 'string', '', null, null, '', 1);
    +		$morehtmlref.='</div>';
    +
    +		dol_banner_tab($object, 'rowid', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlright);
     
     		print '<div class="fichecenter">';
     		print '<div class="underbanner clearboth"></div>';
     
     		print '<table class="border" width="100%">';
     
    -		print '</tr>';
    +		print '<tr>';
    +		print '<td class="nowrap">';
    +		print $langs->trans("AccountancyCodeAsset");
    +		print '</td><td>';
     		if (! empty($conf->accounting->enabled))
     		{
     			$accountingaccount = new AccountingAccount($db);
    @@ -446,8 +457,12 @@ if ($rowid > 0)
     			print $object->accountancy_code_asset;
     		}
     		print '</td>';
    +		print '</tr>';
     
    -		print '<td>';
    +		print '<tr>';
    +		print '<td class="nowrap">';
    +		print $langs->trans("AccountancyCodeDepreciationAsset");
    +		print '</td><td>';
     		if (! empty($conf->accounting->enabled))
     		{
     			$accountingaccount2 = new AccountingAccount($db);
    @@ -458,8 +473,12 @@ if ($rowid > 0)
     			print $object->accountancy_code_depreciation_asset;
     		}
     		print '</td>';
    +		print '</tr>';
     
    -		print '<td>';
    +		print '<tr>';
    +		print '<td class="nowrap">';
    +		print $langs->trans("AccountancyCodeDepreciationExpense");
    +		print '</td><td>';
     		if (! empty($conf->accounting->enabled))
     		{
     			$accountingaccount3 = new AccountingAccount($db);
    @@ -469,6 +488,7 @@ if ($rowid > 0)
     		} else {
     			print $object->accountancy_code_depreciation_expense;
     		}
    +		print '</td>';
     		print '</tr>';
     
     		print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
    @@ -494,9 +514,6 @@ if ($rowid > 0)
     			print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=edit&amp;rowid='.$object->id.'">'.$langs->trans("Modify").'</a></div>';
     		}
     
    -		// Add
    -		print '<div class="inline-block divButAction"><a class="butAction" href="card.php?action=create&typeid='.$object->id.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?rowid='.$object->id).'">'.$langs->trans("AddMember").'</a></div>';
    -
     		// Delete
     		if ($user->rights->asset->write)
     		{
    @@ -504,235 +521,6 @@ if ($rowid > 0)
     		}
     
     		print "</div>";
    -
    -
    -		// Show list of assets (nearly same code than in page list.php)
    -		$assettypestatic=new AssetType($db);
    -
    -		$now=dol_now();
    -
    -		$sql = "SELECT a.rowid, d.login, d.firstname, d.lastname, d.societe, ";
    -		$sql.= " d.datefin,";
    -		$sql.= " a.fk_asset_type as type_id,";
    -		$sql.= " t.label as type";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."asset as a, ".MAIN_DB_PREFIX."asset_type as t";
    -		$sql.= " WHERE a.fk_asset_type = t.rowid";
    -		$sql.= " AND a.entity IN (".getEntity('asset').")";
    -		$sql.= " AND t.rowid = ".$object->id;
    -		if ($sall)
    -		{
    -			$sql.=natural_search(array("f.firstname","d.lastname","d.societe","d.email","d.login","d.address","d.town","d.note_public","d.note_private"), $sall);
    -		}
    -		if ($status != '')
    -		{
    -			$sql.= natural_search('d.statut', $status, 2);
    -		}
    -		if ($action == 'search')
    -		{
    -			if (GETPOST('search','alpha'))
    -			{
    -				$sql.= natural_search(array("d.firstname","d.lastname"), GETPOST('search','alpha'));
    -			}
    -		}
    -		if (! empty($search_lastname))
    -		{
    -			$sql.= natural_search(array("d.firstname","d.lastname"), $search_lastname);
    -		}
    -		if (! empty($search_login))
    -		{
    -			$sql.= natural_search("d.login", $search_login);
    -		}
    -		if (! empty($search_email))
    -		{
    -			$sql.= natural_search("d.email", $search_email);
    -		}
    -		if ($filter == 'uptodate')
    -		{
    -			$sql.=" AND datefin >= '".$db->idate($now)."'";
    -		}
    -		if ($filter == 'outofdate')
    -		{
    -			$sql.=" AND datefin < '".$db->idate($now)."'";
    -		}
    -
    -		$sql.= " ".$db->order($sortfield,$sortorder);
    -
    -		// Count total nb of records
    -		$nbtotalofrecords = '';
    -		if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
    -		{
    -			$resql = $db->query($sql);
    -			if ($resql) $nbtotalofrecords = $db->num_rows($result);
    -			else dol_print_error($db);
    -			if (($page * $limit) > $nbtotalofrecords)	// if total resultset is smaller then paging size (filtering), goto and load page 0
    -			{
    -				$page = 0;
    -				$offset = 0;
    -			}
    -		}
    -
    -		$sql.= " ".$db->plimit($conf->liste_limit+1, $offset);
    -
    -		$resql = $db->query($sql);
    -		if ($resql)
    -		{
    -			$num = $db->num_rows($resql);
    -			$i = 0;
    -
    -			$titre=$langs->trans("AssetsList");
    -			if ($status != '')
    -			{
    -				if ($status == '-1,1')								{ $titre=$langs->trans("MembersListQualified"); }
    -				else if ($status == '-1')							{ $titre=$langs->trans("MembersListToValid"); }
    -				else if ($status == '1' && ! $filter)				{ $titre=$langs->trans("MembersListValid"); }
    -				else if ($status == '1' && $filter=='uptodate')		{ $titre=$langs->trans("MembersListUpToDate"); }
    -				else if ($status == '1' && $filter=='outofdate')	{ $titre=$langs->trans("MembersListNotUpToDate"); }
    -				else if ($status == '0')							{ $titre=$langs->trans("MembersListResiliated"); }
    -			}
    -			elseif ($action == 'search')
    -			{
    -				$titre=$langs->trans("MembersListQualified");
    -			}
    -
    -			if ($type > 0)
    -			{
    -				$assettype=new AssetType($db);
    -				$result=$assettype->fetch($type);
    -				$titre.=" (".$assettype->label.")";
    -			}
    -
    -			$param="&rowid=".$object->id;
    -			if (! empty($status))			$param.="&status=".$status;
    -			if (! empty($search_lastname))	$param.="&search_lastname=".$search_lastname;
    -			if (! empty($search_firstname))	$param.="&search_firstname=".$search_firstname;
    -			if (! empty($search_login))		$param.="&search_login=".$search_login;
    -			if (! empty($search_email))		$param.="&search_email=".$search_email;
    -			if (! empty($filter))			$param.="&filter=".$filter;
    -
    -			if ($sall)
    -			{
    -				print $langs->trans("Filter")." (".$langs->trans("Lastname").", ".$langs->trans("Firstname").", ".$langs->trans("EMail").", ".$langs->trans("Address")." ".$langs->trans("or")." ".$langs->trans("Town")."): ".$sall;
    -			}
    -
    -			print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    -			print '<input class="flat" type="hidden" name="rowid" value="'.$object->id.'" size="12"></td>';
    -
    -			print '<br>';
    -			print_barre_liste('',$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords);
    -
    -			$moreforfilter = '';
    -
    -			print '<div class="div-table-responsive">';
    -			print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
    -
    -			// Lignes des champs de filtre
    -			print '<tr class="liste_titre_filter">';
    -
    -			print '<td class="liste_titre" align="left">';
    -			print '<input class="flat" type="text" name="search_lastname" value="'.dol_escape_htmltag($search_lastname).'" size="12"></td>';
    -
    -			print '<td class="liste_titre" align="left">';
    -			print '<input class="flat" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).'" size="7"></td>';
    -
    -			print '<td class="liste_titre">&nbsp;</td>';
    -
    -			print '<td class="liste_titre" align="left">';
    -			print '<input class="flat" type="text" name="search_email" value="'.dol_escape_htmltag($search_email).'" size="12"></td>';
    -
    -			print '<td class="liste_titre">&nbsp;</td>';
    -
    -			print '<td align="right" colspan="2" class="liste_titre">';
    -			print '<input type="image" class="liste_titre" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" name="button_search" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
    -			print '&nbsp; ';
    -			print '<input type="image" class="liste_titre" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/searchclear.png" name="button_removefilter" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
    -			print '</td>';
    -
    -			print "</tr>\n";
    -
    -			print '<tr class="liste_titre">';
    -			print_liste_field_titre( $langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder);
    -			print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder);
    -			print_liste_field_titre("Nature",$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder);
    -			print_liste_field_titre("EMail",$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder);
    -			print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder);
    -			print_liste_field_titre("EndSubscription",$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder);
    -			print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder);
    -			print "</tr>\n";
    -
    -			while ($i < $num && $i < $conf->liste_limit)
    -			{
    -				$objp = $db->fetch_object($resql);
    -
    -				$datefin=$db->jdate($objp->datefin);
    -
    -				$adh=new Asset($db);
    -				$adh->lastname=$objp->lastname;
    -				$adh->firstname=$objp->firstname;
    -
    -				// Lastname
    -				print '<tr class="oddeven">';
    -				if ($objp->societe != '')
    -				{
    -					print '<td><a href="card.php?rowid='.$objp->rowid.'">'.img_object($langs->trans("ShowMember"),"user").' '.$adh->getFullName($langs,0,-1,20).' / '.dol_trunc($objp->societe,12).'</a></td>'."\n";
    -				}
    -				else
    -				{
    -					print '<td><a href="card.php?rowid='.$objp->rowid.'">'.img_object($langs->trans("ShowMember"),"user").' '.$adh->getFullName($langs,0,-1,32).'</a></td>'."\n";
    -				}
    -
    -				// Login
    -				print "<td>".$objp->login."</td>\n";
    -
    -				// Type
    -				/*print '<td class="nowrap">';
    -				$assettypestatic->id=$objp->type_id;
    -				$assettypestatic->label=$objp->type;
    -				print $assettypestatic->getNomUrl(1,12);
    -				print '</td>';
    -				*/
    -
    -				// Moral/Physique
    -				print "<td>".$adh->getmorphylib($objp->morphy)."</td>\n";
    -
    -				// EMail
    -				print "<td>".dol_print_email($objp->email,0,0,1)."</td>\n";
    -
    -				// Statut
    -				print '<td class="nowrap">';
    -				print $adh->LibStatut($objp->statut,$objp->subscription,$datefin,2);
    -				print "</td>";
    -
    -				// Actions
    -				print '<td align="center">';
    -				if ($user->rights->asset->creer)
    -				{
    -					print '<a href="card.php?rowid='.$objp->rowid.'&action=edit&backtopage='.urlencode($_SERVER["PHP_SELF"].'?rowid='.$object->id).'">'.img_edit().'</a>';
    -				}
    -				print '&nbsp;';
    -				if ($user->rights->asset->supprimer)
    -				{
    -					print '<a href="card.php?rowid='.$objp->rowid.'&action=resign">'.img_picto($langs->trans("Resiliate"),'disable.png').'</a>';
    -				}
    -				print "</td>";
    -
    -				print "</tr>\n";
    -				$i++;
    -			}
    -
    -			print "</table>\n";
    -			print '</div>';
    -			print '</form>';
    -
    -			if ($num > $conf->liste_limit)
    -			{
    -				print_barre_liste('',$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'');
    -			}
    -		}
    -		else
    -		{
    -			dol_print_error($db);
    -		}
    -
     	}
     
     	/* ************************************************************************** */
    @@ -782,7 +570,6 @@ if ($rowid > 0)
     			print '<td>';
     			print $formaccounting->select_account($object->accountancy_code_depreciation_expense, 'accountancy_code_depreciation_expense', 1, '', 1, 1);
     			print '</td></tr>';
    -
     		}
     		else // For external software
     		{
    @@ -851,7 +638,6 @@ if ($rowid > 0)
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/asterisk/cidlookup.php b/htdocs/asterisk/cidlookup.php
    index e6b4985f6b8..56e90c1a639 100644
    --- a/htdocs/asterisk/cidlookup.php
    +++ b/htdocs/asterisk/cidlookup.php
    @@ -31,9 +31,9 @@ include '../master.inc.php';
     
     $phone = GETPOST('phone');
     $notfound = $langs->trans("Unknown");
    - 
    +
     // Security check
    -if (empty($conf->clicktodial->enabled)) 
    +if (empty($conf->clicktodial->enabled))
     {
         print "Error: Module Click to dial is not enabled.\n";
         exit;
    diff --git a/htdocs/asterisk/wrapper.php b/htdocs/asterisk/wrapper.php
    index 8cd5ff979a0..66ff541d499 100644
    --- a/htdocs/asterisk/wrapper.php
    +++ b/htdocs/asterisk/wrapper.php
    @@ -190,5 +190,6 @@ else {
         print 'Bad parameters in URL. Must be '.$_SERVER['PHP_SELF'].'?caller=99999&called=99999&login=xxxxx&password=xxxxx';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/barcode/codeinit.php b/htdocs/barcode/codeinit.php
    index 26386052480..7086af7f17e 100644
    --- a/htdocs/barcode/codeinit.php
    +++ b/htdocs/barcode/codeinit.php
    @@ -319,6 +319,6 @@ if ($conf->product->enabled || $conf->product->service)
     print '</form>';
     print '<br>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/barcode/printsheet.php b/htdocs/barcode/printsheet.php
    index 7dfec76b39e..a1f3632fd2f 100644
    --- a/htdocs/barcode/printsheet.php
    +++ b/htdocs/barcode/printsheet.php
    @@ -178,19 +178,19 @@ if ($action == 'builddoc')
     	{
     		// List of values to scan for a replacement
     		$substitutionarray = array (
    -		'%LOGIN%'=>$user->login,
    -		'%COMPANY%'=>$mysoc->name,
    -		'%ADDRESS%'=>$mysoc->address,
    -		'%ZIP%'=>$mysoc->zip,
    -		'%TOWN%'=>$mysoc->town,
    -		'%COUNTRY%'=>$mysoc->country,
    -		'%COUNTRY_CODE%'=>$mysoc->country_code,
    -		'%EMAIL%'=>$mysoc->email,
    -		'%YEAR%'=>$year,
    -		'%MONTH%'=>$month,
    -		'%DAY%'=>$day,
    -		'%DOL_MAIN_URL_ROOT%'=>DOL_MAIN_URL_ROOT,
    -		'%SERVER%'=>"http://".$_SERVER["SERVER_NAME"]."/"
    +		    '%LOGIN%' => $user->login,
    +		    '%COMPANY%' => $mysoc->name,
    +		    '%ADDRESS%' => $mysoc->address,
    +		    '%ZIP%' => $mysoc->zip,
    +		    '%TOWN%' => $mysoc->town,
    +		    '%COUNTRY%' => $mysoc->country,
    +		    '%COUNTRY_CODE%' => $mysoc->country_code,
    +		    '%EMAIL%' => $mysoc->email,
    +		    '%YEAR%' => $year,
    +		    '%MONTH%' => $month,
    +		    '%DAY%' => $day,
    +		    '%DOL_MAIN_URL_ROOT%' => DOL_MAIN_URL_ROOT,
    +		    '%SERVER%' => "http://".$_SERVER["SERVER_NAME"]."/",
     		);
     		complete_substitutions_array($substitutionarray, $langs);
     
    @@ -416,7 +416,7 @@ print $langs->trans("BarcodeType").' &nbsp; ';
     print '</div><div class="tagtd" style="overflow: hidden; white-space: nowrap; max-width: 300px;">';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formbarcode.class.php';
     $formbarcode = new FormBarCode($db);
    -$formbarcode->select_barcode_type($fk_barcode_type, 'fk_barcode_type', 1);
    +print $formbarcode->selectBarcodeType($fk_barcode_type, 'fk_barcode_type', 1);
     print '</div></div>';
     
     // Barcode value
    @@ -441,6 +441,6 @@ print '<br><input class="button" type="submit" id="submitformbarcodegen" '.((GET
     print '</form>';
     print '<br>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/blockedlog/admin/blockedlog.php b/htdocs/blockedlog/admin/blockedlog.php
    index 326fea79c5d..8c2835d856c 100644
    --- a/htdocs/blockedlog/admin/blockedlog.php
    +++ b/htdocs/blockedlog/admin/blockedlog.php
    @@ -178,5 +178,6 @@ if (GETPOST('withtab','alpha'))
     
     print '<br><br>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/blockedlog/admin/blockedlog_list.php b/htdocs/blockedlog/admin/blockedlog_list.php
    index b93856b7af5..49a4daa3b3f 100644
    --- a/htdocs/blockedlog/admin/blockedlog_list.php
    +++ b/htdocs/blockedlog/admin/blockedlog_list.php
    @@ -1,6 +1,7 @@
     <?php
    -/* Copyright (C) 2017      ATM Consulting      <contact@atm-consulting.fr>
    - * Copyright (C) 2017-2018 Laurent Destailleur <eldy@destailleur.fr>
    +/* Copyright (C) 2017       ATM Consulting          <contact@atm-consulting.fr>
    + * Copyright (C) 2017-2018  Laurent Destailleur     <eldy@destailleur.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -131,7 +132,7 @@ else if (GETPOST('downloadcsv','alpha'))
     		{
     			// Make the first fetch to get first line
     			$obj = $db->fetch_object($res);
    -			if ($obj) 
    +			if ($obj)
     			{
     				$previoushash = $block_static->getPreviousHash(0, $obj->rowid);
     				$firstid = $obj->rowid;
    @@ -145,7 +146,7 @@ else if (GETPOST('downloadcsv','alpha'))
     		else
     		{
     			$error++;
    -			setEventMessage($db->lasterror, 'errors');
    +			setEventMessages($db->lasterror, null, 'errors');
     		}
     	}
     
    @@ -250,7 +251,7 @@ else if (GETPOST('downloadcsv','alpha'))
     		}
     		else
     		{
    -			setEventMessage($db->lasterror, 'errors');
    +			setEventMessages($db->lasterror, null, 'errors');
     		}
     	}
     }
    @@ -303,7 +304,7 @@ if (GETPOST('withtab','alpha'))
     	dol_fiche_head($head, 'fingerprints', '', -1);
     }
     
    -print '<span class="opacitymedium">'.$langs->trans("FingerprintsDesc")."</span><br>\n";
    +print '<span class="opacitymedium hideonsmartphone">'.$langs->trans("FingerprintsDesc")."<br></span>\n";
     
     print '<br>';
     
    @@ -341,7 +342,7 @@ for ($month = 1 ; $month <= 12 ; $month++)
     }
     $retstring.="</select>";
     print $retstring;
    -print '<input type="text" name="yeartoexport" class="valignmiddle maxwidth75" value="'.GETPOST('yeartoexport','int').'">';
    +print '<input type="text" name="yeartoexport" class="valignmiddle maxwidth50imp" value="'.GETPOST('yeartoexport','int').'">';
     print '<input type="hidden" name="withtab" value="'.GETPOST('withtab','alpha').'">';
     print '<input type="submit" name="downloadcsv" class="button" value="'.$langs->trans('DownloadLogCSV').'">';
     if (!empty($conf->global->BLOCKEDLOG_USE_REMOTE_AUTHORITY)) print ' | <a href="?action=downloadblockchain'.(GETPOST('withtab','alpha')?'&withtab='.GETPOST('withtab','alpha'):'').'">'.$langs->trans('DownloadBlockChain').'</a>';
    @@ -372,10 +373,10 @@ print '<td class="liste_titre">&nbsp;</td>';
     
     print '<td class="liste_titre">';
     //print $langs->trans("from").': ';
    -$form->select_date($search_start,'search_start');
    +print $form->selectDate($search_start,'search_start');
     //print '<br>';
     //print $langs->trans("to").': ';
    -$form->select_date($search_end,'search_end');
    +print $form->selectDate($search_end,'search_end');
     print '</td>';
     
     // User
    @@ -443,7 +444,6 @@ if (! empty($conf->global->BLOCKEDLOG_SCAN_ALL_FOR_LOWERIDINERROR))
     
     	// TODO Make a full scan of table in reverse order of id of $block, so we can use the parameter $previoushash into checkSignature to save requests
     	// to find the $loweridinerror.
    -
     }
     else
     {
    @@ -537,7 +537,6 @@ if (is_array($blocks))
     			print '<td></td>';
     
     			print '</tr>';
    -
     		}
     	}
     }
    @@ -607,5 +606,6 @@ if (GETPOST('withtab','alpha'))
     
     print '<br><br>';
     
    +// End of page
     llxFooter();
    -$db->close();
    +$db->close();
    \ No newline at end of file
    diff --git a/htdocs/blockedlog/ajax/authority.php b/htdocs/blockedlog/ajax/authority.php
    index 7bde15aa879..1104eeb3c02 100644
    --- a/htdocs/blockedlog/ajax/authority.php
    +++ b/htdocs/blockedlog/ajax/authority.php
    @@ -53,7 +53,6 @@ if($auth->fetch(0, $signature)<=0) {
     if(!empty($hash)) {
     
     	echo $auth->checkBlockchain($hash) ? 'hashisok' : 'hashisjunk';
    -
     }
     elseif(!empty($newblock)){
     	if($auth->checkBlock($newblock)) {
    @@ -65,7 +64,6 @@ elseif(!empty($newblock)){
     	else{
     
     		echo 'blockalreadyadded';
    -
     	}
     }
     else{
    diff --git a/htdocs/blockedlog/ajax/check_signature.php b/htdocs/blockedlog/ajax/check_signature.php
    index 199f9051e07..9617e6cd1ef 100644
    --- a/htdocs/blockedlog/ajax/check_signature.php
    +++ b/htdocs/blockedlog/ajax/check_signature.php
    @@ -49,7 +49,6 @@ $auth->signature = $block_static->getSignature();
     
     foreach($blocks as &$b) {
     	$auth->blockchain.=$b->signature;
    -
     }
     
     $hash = $auth->getBlockchainHash();
    diff --git a/htdocs/blockedlog/class/authority.class.php b/htdocs/blockedlog/class/authority.class.php
    index b1084b01a54..0d0fc183b6c 100644
    --- a/htdocs/blockedlog/class/authority.class.php
    +++ b/htdocs/blockedlog/class/authority.class.php
    @@ -50,10 +50,9 @@ class BlockedLogAuthority
     	 *
     	 *      @param		DoliDB		$db      Database handler
     	 */
    -    public function __construct($db) {
    -
    +    public function __construct($db)
    +    {
         	$this->db = $db;
    -
     	}
     
     	/**
    @@ -61,7 +60,8 @@ class BlockedLogAuthority
     	 *
     	 *	@return     string         			blockchain
     	 */
    -	public function getLocalBlockChain() {
    +    public function getLocalBlockChain()
    +    {
     
     		$block_static = new BlockedLog($this->db);
     
    @@ -73,7 +73,6 @@ class BlockedLogAuthority
     
     		foreach($blocks as &$b) {
     			$this->blockchain.=$b->signature;
    -
     		}
     
     		return $this->blockchain;
    @@ -84,10 +83,10 @@ class BlockedLogAuthority
     	 *
     	 *	@return     string         			hash md5 of blockchain
     	 */
    -	public function getBlockchainHash() {
    +    public function getBlockchainHash()
    +    {
     
     		return md5($this->signature.$this->blockchain);
    -
     	}
     
     	/**
    @@ -96,21 +95,22 @@ class BlockedLogAuthority
     	 *	@param      string		$hash		hash md5 of blockchain to test
     	 *	@return     boolean
     	 */
    -	public function checkBlockchain($hash) {
    +    public function checkBlockchain($hash)
    +    {
     
     		return ($hash === $this->getBlockchainHash() );
    -
     	}
     
     	/**
     	 *	Add a new block to the chain
     	 *
    -	 *	@param      string		$block		new block to chain
    +     *	@param      string		$block		new block to chain
    +     *  @return void
     	 */
    -	public function addBlock($block) {
    +    public function addBlock($block)
    +    {
     
     		$this->blockchain.=$block;
    -
     	}
     
     	/**
    @@ -119,7 +119,8 @@ class BlockedLogAuthority
     	 *	@param      string		$block		new block to chain
     	 *	@return     boolean
     	 */
    -	public function checkBlock($block) {
    +    public function checkBlock($block)
    +    {
     
     		if(strlen($block)!=64) return false;
     
    @@ -141,7 +142,8 @@ class BlockedLogAuthority
     	 *	@param      string		$signature		Signature of object to load
     	 *	@return     int         				>0 if OK, <0 if KO, 0 if not found
     	 */
    -	public function fetch($id, $signature='') {
    +    public function fetch($id, $signature='')
    +    {
     
     		global $langs;
     
    @@ -189,7 +191,6 @@ class BlockedLogAuthority
     			$this->error=$this->db->error();
     			return -1;
     		}
    -
     	}
     
     	/**
    @@ -198,7 +199,8 @@ class BlockedLogAuthority
     	 *	@param	User	$user      		Object user that create
     	 *	@return	int						<0 if KO, >0 if OK
     	 */
    -	public function create($user) {
    +    public function create($user)
    +    {
     
     		global $conf,$langs,$hookmanager;
     
    @@ -243,7 +245,6 @@ class BlockedLogAuthority
     			$this->db->rollback();
     			return -1;
     		}
    -
     	}
     
     	/**
    @@ -252,7 +253,8 @@ class BlockedLogAuthority
     	 *	@param	User	$user      		Object user that create
     	 *	@return	int						<0 if KO, >0 if OK
     	 */
    -	public function update($user) {
    +    public function update($user)
    +    {
     
     		global $conf,$langs,$hookmanager;
     
    @@ -281,7 +283,6 @@ class BlockedLogAuthority
     			$this->db->rollback();
     			return -1;
     		}
    -
     	}
     
     	/**
    @@ -289,7 +290,8 @@ class BlockedLogAuthority
     	 *
     	 *	@return	int						<0 if KO, >0 if OK
     	 */
    -	public function syncSignatureWithAuthority() {
    +    public function syncSignatureWithAuthority()
    +    {
     		global $conf, $langs;
     
     		//TODO create cron task on activation
    @@ -316,18 +318,14 @@ class BlockedLogAuthority
     			if($res === 'blockalreadyadded' || $res === 'blockadded') {
     
     				$block->setCertified();
    -
     			}
     			else {
     
     				$this->error = $langs->trans('ImpossibleToContactAuthority ',$url);
     				return -1;
     			}
    -
    -
     		}
     
     		return 1;
     	}
    -
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/blockedlog/class/blockedlog.class.php b/htdocs/blockedlog/class/blockedlog.class.php
    index 0210491fba7..bc65c72260d 100644
    --- a/htdocs/blockedlog/class/blockedlog.class.php
    +++ b/htdocs/blockedlog/class/blockedlog.class.php
    @@ -18,9 +18,6 @@
      * See https://medium.com/@lhartikk/a-blockchain-in-200-lines-of-code-963cc1cc0e54
      */
     
    -
    -
    -
     /*ini_set('unserialize_callback_func', 'mycallback');
     
     function mycallback($classname)
    @@ -42,13 +39,21 @@ class BlockedLog
     	 * @var int
     	 */
     	public $id;
    +
     	/**
     	 * Entity
     	 * @var int
     	 */
     	public $entity;
     
    +	/**
    +	 * @var string Error message
    +	 */
     	public $error = '';
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
     	public $errors = array();
     
     	/**
    @@ -167,10 +172,15 @@ class BlockedLog
     		if ($conf->banque->enabled) $this->trackedevents['PAYMENT_VARIOUS_CREATE']='logPAYMENT_VARIOUS_CREATE';
     		if ($conf->banque->enabled) $this->trackedevents['PAYMENT_VARIOUS_MODIFY']='logPAYMENT_VARIOUS_MODIFY';
     		if ($conf->banque->enabled) $this->trackedevents['PAYMENT_VARIOUS_DELETE']='logPAYMENT_VARIOUS_DELETE';
    +
    +		// $conf->global->BANK_ENABLE_POS_CASHCONTROL must be set to 1 by all POS modules
    +		$moduleposenabled = ($conf->cashdesk->enabled || $conf->takepos->enabled || ! empty($conf->global->BANK_ENABLE_POS_CASHCONTROL));
    +		if ($moduleposenabled) $this->trackedevents['CASHCONTROL_VALIDATE']='logCASHCONTROL_VALIDATE';
     	}
     
     	/**
     	 *  Try to retrieve source object (it it still exists)
    +     * @return string
     	 */
     	public function getObjectLink()
     	{
    @@ -264,6 +274,17 @@ class BlockedLog
     				$this->error++;
     			}
     		}
    +		else if($this->element === 'cashcontrol') {
    +			require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php';
    +
    +			$object = new CashControl($this->db);
    +			if ($object->fetch($this->fk_object)>0) {
    +				return $object->getNomUrl(1);
    +			}
    +			else{
    +				$this->error++;
    +			}
    +		}
     		else if ($this->action == 'MODULE_SET')
     		{
     			return '<i class="opacitymedium">System to track events into unalterable logs were enabled</i>';
    @@ -281,11 +302,11 @@ class BlockedLog
     		}
     
     		return '<i class="opacitymedium">'.$langs->trans('ImpossibleToReloadObject', $this->element, $this->fk_object).'</i>';
    -
     	}
     
     	/**
     	 *      try to retrieve user author
    +     * @return string
     	 */
     	public function getUser()
     	{
    @@ -345,6 +366,10 @@ class BlockedLog
     		{
     			$this->date_object = $object->dateh;
     		}
    +		elseif ($object->element=='cashcontrol')
    +		{
    +			$this->date_object = $object->date_creation;
    +		}
     		else {
     			$this->date_object = $object->date;
     		}
    @@ -358,7 +383,24 @@ class BlockedLog
     
     		// Set object_data
     		$this->object_data=new stdClass();
    -		$arrayoffieldstoexclude = array('table_element','fields','ref_previous','ref_next','origin','origin_id','oldcopy','picto','error','modelpdf','table_element_line','linkedObjectsIds','linkedObjects','fk_delivery_address');
    +		// Add fields to exclude
    +		$arrayoffieldstoexclude = array(
    +			'table_element','fields','ref_previous','ref_next','origin','origin_id','oldcopy','picto','error','errors','modelpdf','civility_id','contact','contact_id',
    +			'table_element_line','ismultientitymanaged','isextrafieldmanaged',
    +			'linkedObjectsIds','linkedObjects','fk_delivery_address',
    +			'context',
    +		    'projet'          // There is already ->fk_project
    +		);
    +		// Add more fields to exclude depending on object type
    +		if ($this->element == 'cashcontrol')
    +		{
    +		    $arrayoffieldstoexclude = array_merge($arrayoffieldstoexclude, array(
    +		        'name','lastname','firstname','region','region_id','region_code','state','state_id','state_code','country','country_id','country_code',
    +		        'total_ht','total_tva','total_ttc','total_localtax1','total_localtax2',
    +		        'barcode_type','barcode_type_code','barcode_type_label','barcode_type_coder','mode_reglement_id','cond_reglement_id','mode_reglement','cond_reglement','shipping_method_id',
    +		        'fk_incoterms','libelle_incoterms','location_incoterms','lines')
    +		    );
    +		}
     
     		// Add thirdparty info
     		if (empty($object->thirdparty) && method_exists($object, 'fetch_thirdparty')) $object->fetch_thirdparty();
    @@ -407,7 +449,7 @@ class BlockedLog
     			{
     				if (in_array($key, $arrayoffieldstoexclude)) continue;	// Discard some properties
     				if (! in_array($key, array(
    -				'ref','facnumber','ref_client','ref_supplier','date','datef','type','total_ht','total_tva','total_ttc','localtax1','localtax2','revenuestamp','datepointoftax','note_public','lines'
    +				'ref','ref_client','ref_supplier','date','datef','type','total_ht','total_tva','total_ttc','localtax1','localtax2','revenuestamp','datepointoftax','note_public','lines'
     				))) continue;									// Discard if not into a dedicated list
     				if ($key == 'lines')
     				{
    @@ -438,7 +480,7 @@ class BlockedLog
     			{
     				if (in_array($key, $arrayoffieldstoexclude)) continue;	// Discard some properties
     				if (! in_array($key, array(
    -				'ref','facnumber','ref_client','ref_supplier','date','datef','type','total_ht','total_tva','total_ttc','localtax1','localtax2','revenuestamp','datepointoftax','note_public'
    +				'ref','ref_client','ref_supplier','date','datef','type','total_ht','total_tva','total_ttc','localtax1','localtax2','revenuestamp','datepointoftax','note_public'
     				))) continue;									// Discard if not into a dedicated list
     				if (!is_object($value)) $this->object_data->{$key} = $value;
     			}
    @@ -551,7 +593,7 @@ class BlockedLog
     					{
     						if (in_array($key, $arrayoffieldstoexclude)) continue;	// Discard some properties
     						if (! in_array($key, array(
    -						'ref','facnumber','ref_client','ref_supplier','date','datef','type','total_ht','total_tva','total_ttc','localtax1','localtax2','revenuestamp','datepointoftax','note_public'
    +						'ref','ref_client','ref_supplier','date','datef','type','total_ht','total_tva','total_ttc','localtax1','localtax2','revenuestamp','datepointoftax','note_public'
     						))) continue;									// Discard if not into a dedicated list
     						if (!is_object($value))
     						{
    @@ -609,7 +651,8 @@ class BlockedLog
     	 *	@param      int		$id       	Id of object to load
     	 *	@return     int         			>0 if OK, <0 if KO, 0 if not found
     	 */
    -	public function fetch($id) {
    +    public function fetch($id)
    +    {
     
     		global $langs;
     
    @@ -672,7 +715,6 @@ class BlockedLog
     			$this->error=$this->db->error();
     			return -1;
     		}
    -
     	}
     
     
    @@ -705,14 +747,13 @@ class BlockedLog
     	 *
     	 *	@return	boolean
     	 */
    -	public function setCertified() {
    +    public function setCertified()
    +    {
     
     		$res = $this->db->query("UPDATE ".MAIN_DB_PREFIX."blockedlog SET certified=1 WHERE rowid=".$this->id);
     		if($res===false) return false;
     
     		return true;
    -
    -
     	}
     
     	/**
    @@ -722,7 +763,8 @@ class BlockedLog
     	 *  @param	int		$forcesignature		Force signature (for example '0000000000' when we disabled the module)
     	 *	@return	int							<0 if KO, >0 if OK
     	 */
    -	public function create($user, $forcesignature='') {
    +    public function create($user, $forcesignature='')
    +    {
     
     		global $conf,$langs,$hookmanager;
     
    @@ -941,17 +983,14 @@ class BlockedLog
     
     	 		$sql="SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog
     	         WHERE entity=".$conf->entity;
    -
     		}
     		else if ($element=='not_certified') {
     			$sql="SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog
     	         WHERE entity=".$conf->entity." AND certified = 0";
    -
     		}
     		else if ($element=='just_certified') {
     			$sql="SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog
     	         WHERE entity=".$conf->entity." AND certified = 1";
    -
     		}
     		else{
     			$sql="SELECT rowid FROM ".MAIN_DB_PREFIX."blockedlog
    @@ -1029,6 +1068,7 @@ class BlockedLog
     	 * Check if module was already used or not for at least one recording.
     	 *
     	 * @param	int		$ignoresystem		Ignore system events for the test
    +     * @return bool
     	 */
     	function alreadyUsed($ignoresystem=0)
     	{
    @@ -1053,6 +1093,4 @@ class BlockedLog
     
     		return $result;
     	}
    -
     }
    -
    diff --git a/htdocs/blockedlog/lib/blockedlog.lib.php b/htdocs/blockedlog/lib/blockedlog.lib.php
    index 8e715154c64..7025ee464fe 100644
    --- a/htdocs/blockedlog/lib/blockedlog.lib.php
    +++ b/htdocs/blockedlog/lib/blockedlog.lib.php
    @@ -38,6 +38,7 @@ function blockedlogadmin_prepare_head()
     	$head[$h][2] = 'blockedlog';
     	$h++;
     
    +	$langs->load("blockedlog");
     	$head[$h][0] = DOL_URL_ROOT."/blockedlog/admin/blockedlog_list.php?withtab=1";
     	$head[$h][1] = $langs->trans("BrowseBlockedLog");
     
    diff --git a/htdocs/bookmarks/admin/bookmark.php b/htdocs/bookmarks/admin/bookmark.php
    index 25fa032902f..ed20f619b25 100644
    --- a/htdocs/bookmarks/admin/bookmark.php
    +++ b/htdocs/bookmarks/admin/bookmark.php
    @@ -81,5 +81,6 @@ print '<input size="3" type="text" name="BOOKMARKS_SHOW_IN_MENU" value="'.$conf-
     print '</td></tr>';
     print '</table><br><div class="center"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></div></form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/bookmarks/card.php b/htdocs/bookmarks/card.php
    index d450e476506..1d10dc7ca34 100644
    --- a/htdocs/bookmarks/card.php
    +++ b/htdocs/bookmarks/card.php
    @@ -333,10 +333,8 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
     	}
     
     	print '</div>';
    -
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/bookmarks/class/bookmark.class.php b/htdocs/bookmarks/class/bookmark.class.php
    index 1beb4b36871..f66ef8e4d80 100644
    --- a/htdocs/bookmarks/class/bookmark.class.php
    +++ b/htdocs/bookmarks/class/bookmark.class.php
    @@ -28,21 +28,53 @@
      */
     class Bookmark extends CommonObject
     {
    -    public $element='bookmark';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='bookmark';
    +
    +    /**
    +     * @var string Name of table without prefix where object is stored
    +     */
         public $table_element='bookmark';
    -    public $ismultientitymanaged = 1;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    -    public $picto = 'bookmark';
     
    -    var $db;
    +    /**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +    public $ismultientitymanaged = 1;
     
    -    var $id;
    -    var $fk_user;
    -    var $datec;
    -    var $url;
    -    var $target;	// 0=replace, 1=new window
    -    var $title;
    -    var $position;
    -    var $favicon;
    +    /**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto = 'bookmark';
    +
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $id;
    +
    +    /**
    +	 * @var int User ID
    +	 */
    +	public $fk_user;
    +
    +    public $datec;
    +
    +    public $url;
    +
    +    public $target;	// 0=replace, 1=new window
    +
    +    public $title;
    +
    +    public $position;
    +
    +    public $favicon;
     
     
         /**
    @@ -127,7 +159,7 @@ class Bookmark extends CommonObject
             $sql.= ", ".$this->db->escape($conf->entity);
             $sql.= ")";
     
    -        dol_syslog("Bookmark::update", LOG_DEBUG);
    +        dol_syslog("Bookmark::create", LOG_DEBUG);
             $resql = $this->db->query($sql);
             if ($resql)
             {
    @@ -211,7 +243,6 @@ class Bookmark extends CommonObject
                 $this->error=$this->db->lasterror();
                 return -1;
             }
    -
         }
     
     	/**
    @@ -241,5 +272,4 @@ class Bookmark extends CommonObject
     	{
     	    return '';
     	}
    -
     }
    diff --git a/htdocs/bookmarks/list.php b/htdocs/bookmarks/list.php
    index ac5a89c66f3..cca978d748b 100644
    --- a/htdocs/bookmarks/list.php
    +++ b/htdocs/bookmarks/list.php
    @@ -132,7 +132,7 @@ if ($resql)
     		print '<tr class="oddeven">';
     
     		// Id
    -		print '<td align="left">';
    +		print '<td class="left">';
     		print "<a href=\"card.php?id=".$obj->rowid."\">".img_object($langs->trans("ShowBookmark"),"bookmark").' '.$obj->rowid."</a>";
     		print '</td>';
     
    @@ -209,7 +209,7 @@ else
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/cache.manifest b/htdocs/cache.manifest
    index a3d1b1c554f..ebbf1aab4eb 100644
    --- a/htdocs/cache.manifest
    +++ b/htdocs/cache.manifest
    @@ -11,7 +11,6 @@ CACHE:
     theme/dolibarr_logo.png
     support/
     support/index.php
    -support/online.php
     
     support/default.css
     support/helpcenter.png
    diff --git a/htdocs/cashdesk/admin/cashdesk.php b/htdocs/cashdesk/admin/cashdesk.php
    index f4af16b3739..7bc587bd67b 100644
    --- a/htdocs/cashdesk/admin/cashdesk.php
    +++ b/htdocs/cashdesk/admin/cashdesk.php
    @@ -86,7 +86,7 @@ $formproduct=new FormProduct($db);
     llxHeader('',$langs->trans("CashDeskSetup"));
     
     $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
    -print load_fiche_titre($langs->trans("CashDeskSetup"),$linkback,'title_setup');
    +print load_fiche_titre($langs->trans("CashDeskSetup").' (SimplePOS)',$linkback,'title_setup');
     print '<br>';
     
     
    @@ -95,30 +95,49 @@ print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     print '<input type="hidden" name="action" value="set">';
     
    +if (! empty($conf->service->enabled))
    +{
    +	print '<table class="noborder" width="100%">';
    +	print '<tr class="liste_titre">';
    +	print '<td>'.$langs->trans("Parameters").'</td><td>'.$langs->trans("Value").'</td>';
    +	print "</tr>\n";
    +
    +	print '<tr class="oddeven"><td>';
    +	print $langs->trans("CashdeskShowServices");
    +	print '<td colspan="2">';
    +	print $form->selectyesno("CASHDESK_SERVICES",$conf->global->CASHDESK_SERVICES,1);
    +	print "</td></tr>\n";
    +
    +	print '</table>';
    +
    +	print '<br>';
    +}
    +
    +
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
    -print '<td>'.$langs->trans("Parameters").'</td><td>'.$langs->trans("Value").'</td>';
    +print '<td>'.$langs->trans("Terminal").' 0</td><td>'.$langs->trans("Value").'</td>';
     print "</tr>\n";
     
     print '<tr class="oddeven"><td width=\"50%\">'.$langs->trans("CashDeskThirdPartyForSell").'</td>';
     print '<td colspan="2">';
    -print $form->select_company($conf->global->CASHDESK_ID_THIRDPARTY,'socid','s.client in (1,3) AND s.status = 1',1,0,1,array(),0);
    +print $form->select_company($conf->global->CASHDESK_ID_THIRDPARTY,'socid','s.client in (1,3) AND s.status = 1', 1, 0, 0, array(), 0);
     print '</td></tr>';
     if (! empty($conf->banque->enabled))
     {
    -	
    +
     	print '<tr class="oddeven"><td>'.$langs->trans("CashDeskBankAccountForSell").'</td>';
     	print '<td colspan="2">';
     	$form->select_comptes($conf->global->CASHDESK_ID_BANKACCOUNT_CASH,'CASHDESK_ID_BANKACCOUNT_CASH',0,"courant=2",1);
     	print '</td></tr>';
     
    -	
    +
     	print '<tr class="oddeven"><td>'.$langs->trans("CashDeskBankAccountForCheque").'</td>';
     	print '<td colspan="2">';
     	$form->select_comptes($conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE,'CASHDESK_ID_BANKACCOUNT_CHEQUE',0,"courant=1",1);
     	print '</td></tr>';
     
    -	
    +
     	print '<tr class="oddeven"><td>'.$langs->trans("CashDeskBankAccountForCB").'</td>';
     	print '<td colspan="2">';
     	$form->select_comptes($conf->global->CASHDESK_ID_BANKACCOUNT_CB,'CASHDESK_ID_BANKACCOUNT_CB',0,"courant=1",1);
    @@ -127,7 +146,7 @@ if (! empty($conf->banque->enabled))
     
     if (! empty($conf->stock->enabled))
     {
    -	
    +
     	print '<tr class="oddeven"><td>'.$langs->trans("CashDeskDoNotDecreaseStock").'</td>';	// Force warehouse (this is not a default value)
     	print '<td colspan="2">';
     	if (empty($conf->productbatch->enabled)) {
    @@ -138,13 +157,14 @@ if (! empty($conf->stock->enabled))
     	    if (!$conf->global->CASHDESK_NO_DECREASE_STOCK) {
     	       $res = dolibarr_set_const($db,"CASHDESK_NO_DECREASE_STOCK",1,'chaine',0,'',$conf->entity);
     	    }
    -	    print $langs->trans('StockDecreaseForPointOfSaleDisabledbyBatch');
    +	    print $langs->trans("Yes").'<br>';
    +	    print '<span class="opacitymedium">'.$langs->trans('StockDecreaseForPointOfSaleDisabledbyBatch').'</span>';
     	}
     	print '</td></tr>';
     
     	$disabled=$conf->global->CASHDESK_NO_DECREASE_STOCK;
     
    -	
    +
     	print '<tr class="oddeven"><td>'.$langs->trans("CashDeskIdWareHouse").'</td>';	// Force warehouse (this is not a default value)
     	print '<td colspan="2">';
     	if (! $disabled)
    @@ -154,20 +174,11 @@ if (! empty($conf->stock->enabled))
     	}
     	else
     	{
    -		print $langs->trans("StockDecreaseForPointOfSaleDisabled");
    +		print '<span class="opacitymedium">'.$langs->trans("StockDecreaseForPointOfSaleDisabled").'</span>';
     	}
     	print '</td></tr>';
     }
     
    -if (! empty($conf->service->enabled))
    -{
    -    print '<tr class="oddeven"><td>';
    -    print $langs->trans("CashdeskShowServices");
    -    print '<td colspan="2">';
    -    print $form->selectyesno("CASHDESK_SERVICES",$conf->global->CASHDESK_SERVICES,1);
    -    print "</td></tr>\n";
    -}
    -
     // Use Dolibarr Receipt Printer
     if (! empty($conf->receiptprinter->enabled))
     {
    @@ -185,5 +196,6 @@ print '<div class="center"><input type="submit" class="button" value="'.$langs->
     
     print "</form>\n";
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/cashdesk/affContenu.php b/htdocs/cashdesk/affContenu.php
    index bd778f3422e..11b36f09d53 100644
    --- a/htdocs/cashdesk/affContenu.php
    +++ b/htdocs/cashdesk/affContenu.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2007-2008 Jeremie Ollivier      <jeremie.o@laposte.net>
      * Copyright (C) 2008-2009 Laurent Destailleur   <eldy@uers.sourceforge.net>
    - * Copyright (C) 2009      Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009      Regis Houssin         <regis.houssin@inodbox.com>
      *
      * 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
    @@ -87,7 +87,7 @@ print '</div>';
     print '<div class="inline-block" style="vertical-align: top">';
     print '<div class="liste_articles">';
     
    -require ('tpl/liste_articles.tpl.php');
    +require 'tpl/liste_articles.tpl.php';
     
     print '</div>';
     print '</div>';
    diff --git a/htdocs/cashdesk/affIndex.php b/htdocs/cashdesk/affIndex.php
    index a2e467a35e3..c06a140f550 100644
    --- a/htdocs/cashdesk/affIndex.php
    +++ b/htdocs/cashdesk/affIndex.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2007-2008 Jeremie Ollivier      <jeremie.o@laposte.net>
      * Copyright (C) 2008-2010 Laurent Destailleur   <eldy@uers.sourceforge.net>
    - * Copyright (C) 2009      Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009      Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent         <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -36,9 +36,8 @@ if ( $_SESSION['uid'] <= 0 )
     	exit;
     }
     
    -$langs->load("companies");
    -$langs->load("compta");
    -$langs->load("cashdesk");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","compta","cashdesk"));
     
     
     /*
    diff --git a/htdocs/cashdesk/class/Auth.class.php b/htdocs/cashdesk/class/Auth.class.php
    index 5e431514d1c..78b76e20d11 100644
    --- a/htdocs/cashdesk/class/Auth.class.php
    +++ b/htdocs/cashdesk/class/Auth.class.php
    @@ -138,6 +138,5 @@ class Auth
     
     		return $ret;
     	}
    -
     }
     
    diff --git a/htdocs/cashdesk/class/Facturation.class.php b/htdocs/cashdesk/class/Facturation.class.php
    index e76f6c3a142..ea6ac7a47bd 100644
    --- a/htdocs/cashdesk/class/Facturation.class.php
    +++ b/htdocs/cashdesk/class/Facturation.class.php
    @@ -37,7 +37,12 @@ class Facturation
          * int $prix		=> Prix HT du produit en cours
          * int $tva			=> 'rowid' du taux de tva dans llx_c_tva
          */
    -    public $id;
    +
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
         protected $ref;
         protected $qte;
         protected $stock;
    @@ -167,7 +172,6 @@ class Facturation
             $_SESSION['poscart']=$newcartarray;
     
             $this->raz();
    -
         }
     
         /**
    @@ -268,7 +272,6 @@ class Facturation
             $this->prixTotalHt('RESET');
             $this->montantTva('RESET');
             $this->prixTotalTtc('RESET');
    -
         }
     
     
    @@ -286,19 +289,16 @@ class Facturation
             if ( !$aId )
             {
                 return $this->id;
    -
             }
             else if ( $aId == 'RESET' )
             {
     
                 $this->id = null;
    -
             }
             else
             {
     
                 $this->id = $aId;
    -
             }
         }
     
    @@ -309,7 +309,7 @@ class Facturation
          * @return	string			Ref
          */
         public function ref($aRef=null)
    -     {
    +    {
     
             if (is_null($aRef))
             {
    @@ -323,7 +323,6 @@ class Facturation
             {
                 $this->ref = $aRef;
             }
    -
         }
     
         /**
    @@ -347,7 +346,6 @@ class Facturation
             {
                 $this->qte = $aQte;
             }
    -
         }
     
         /**
    @@ -371,7 +369,6 @@ class Facturation
             {
                 $this->stock = $aStock;
             }
    -
         }
     
         /**
    @@ -395,7 +392,6 @@ class Facturation
             {
                 $this->remise_percent = $aRemisePercent;
             }
    -
         }
     
         /**
    @@ -410,17 +406,13 @@ class Facturation
             if (is_null($aMontantRemise)) {
     
                 return $this->montant_remise;
    -
             } else if ( $aMontantRemise == 'RESET' ) {
     
                 $this->montant_remise = null;
    -
             } else {
     
                 $this->montant_remise = $aMontantRemise;
    -
             }
    -
         }
     
         /**
    @@ -435,17 +427,13 @@ class Facturation
             if (is_null($aPrix)) {
     
                 return $this->prix;
    -
             } else if ( $aPrix == 'RESET' ) {
     
                 $this->prix = null;
    -
             } else {
     
                 $this->prix = $aPrix;
    -
             }
    -
         }
     
         /**
    @@ -459,17 +447,13 @@ class Facturation
             if (is_null($aTva)) {
     
                 return $this->tva;
    -
             } else if ( $aTva == 'RESET' ) {
     
                 $this->tva = null;
    -
             } else {
     
                 $this->tva = $aTva;
    -
             }
    -
         }
     
         /**
    @@ -483,15 +467,12 @@ class Facturation
             if (is_null($aNumFacture)) {
     
                 return $this->num_facture;
    -
             } else if ( $aNumFacture == 'RESET' ) {
     
                 $this->num_facture = null;
    -
             } else {
     
                 $this->num_facture = $aNumFacture;
    -
             }
         }
     
    @@ -507,17 +488,13 @@ class Facturation
             if (is_null($aModeReglement)) {
     
                 return $this->mode_reglement;
    -
             } else if ( $aModeReglement == 'RESET' ) {
     
                 $this->mode_reglement = null;
    -
             } else {
     
                 $this->mode_reglement = $aModeReglement;
    -
             }
    -
         }
     
         /**
    @@ -532,17 +509,13 @@ class Facturation
             if (is_null($aMontantEncaisse)) {
     
                 return $this->montant_encaisse;
    -
             } else if ( $aMontantEncaisse == 'RESET' ) {
     
                 $this->montant_encaisse = null;
    -
             } else {
     
                 $this->montant_encaisse = $aMontantEncaisse;
    -
             }
    -
         }
     
         /**
    @@ -560,13 +533,10 @@ class Facturation
             } else if ( $aMontantRendu == 'RESET' ) {
     
                 $this->montant_rendu = null;
    -
             } else {
     
                 $this->montant_rendu = $aMontantRendu;
    -
             }
    -
         }
     
         /**
    @@ -580,15 +550,12 @@ class Facturation
             if (is_null($aPaiementLe)) {
     
                 return $this->paiement_le;
    -
             } else if ( $aPaiementLe == 'RESET' ) {
     
                 $this->paiement_le = null;
    -
             } else {
     
                 $this->paiement_le = $aPaiementLe;
    -
             }
         }
     
    @@ -603,15 +570,12 @@ class Facturation
             if (is_null($aTotalHt)) {
     
                 return $this->prix_total_ht;
    -
             } else if ( $aTotalHt == 'RESET' ) {
     
                 $this->prix_total_ht = null;
    -
             } else {
     
                 $this->prix_total_ht = $aTotalHt;
    -
             }
         }
     
    @@ -626,17 +590,13 @@ class Facturation
             if (is_null($aMontantTva)) {
     
                 return $this->montant_tva;
    -
             } else if ( $aMontantTva == 'RESET' ) {
     
                 $this->montant_tva = null;
    -
             } else {
     
                 $this->montant_tva = $aMontantTva;
    -
             }
    -
         }
     
         /**
    @@ -651,7 +611,7 @@ class Facturation
             {
                 return $this->prix_total_ttc;
             }
    -        else if ( $aTotalTtc == 'RESET' )
    +        elseif ( $aTotalTtc == 'RESET' )
             {
                 $this->prix_total_ttc = null;
             }
    @@ -660,6 +620,4 @@ class Facturation
                 $this->prix_total_ttc = $aTotalTtc;
             }
         }
    -
     }
    -
    diff --git a/htdocs/cashdesk/css/style.css b/htdocs/cashdesk/css/style.css
    index d4149619aae..dc579711aa3 100644
    --- a/htdocs/cashdesk/css/style.css
    +++ b/htdocs/cashdesk/css/style.css
    @@ -52,7 +52,7 @@ p {
     }
     .logopos {
     	padding-top: 20px;
    -	max-height: 40px;	
    +	max-height: 40px;
     }
     
     /* ------------------- Header ------------------- */
    diff --git a/htdocs/cashdesk/facturation.php b/htdocs/cashdesk/facturation.php
    index f52890b68d2..4ca8a562659 100644
    --- a/htdocs/cashdesk/facturation.php
    +++ b/htdocs/cashdesk/facturation.php
    @@ -137,7 +137,6 @@ if ( $nbr_enreg > 1 )
     	{
     		$top_liste_produits = '----- '.$nbr_enreg.' '.$langs->transnoentitiesnoconv("CashDeskProducts").' '.$langs->trans("CashDeskOn").' '.$nbr_enreg.' -----';
     	}
    -
     }
     else if ( $nbr_enreg == 1 )
     {
    @@ -163,4 +162,4 @@ $obj_facturation->paiementLe('RESET');
     
     
     // Affichage des templates
    -require ('tpl/facturation1.tpl.php');
    +require 'tpl/facturation1.tpl.php';
    diff --git a/htdocs/cashdesk/facturation_dhtml.php b/htdocs/cashdesk/facturation_dhtml.php
    index e1a1dcc6bc8..c30b5654828 100644
    --- a/htdocs/cashdesk/facturation_dhtml.php
    +++ b/htdocs/cashdesk/facturation_dhtml.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2007-2008 	Jeremie Ollivier 	<jeremie.o@laposte.net>
      * Copyright (C) 2008-2009 	Laurent Destailleur <eldy@uers.sourceforge.net>
    - * Copyright (C) 2015		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2015		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -108,5 +108,4 @@ if (dol_strlen($search) >= 0)	// If search criteria is on char length at least
     			print '</ul>';
     		}
     	}
    -
     }
    diff --git a/htdocs/cashdesk/facturation_verif.php b/htdocs/cashdesk/facturation_verif.php
    index cdeeaf6c424..6aa81d991df 100644
    --- a/htdocs/cashdesk/facturation_verif.php
    +++ b/htdocs/cashdesk/facturation_verif.php
    @@ -216,7 +216,6 @@ switch($action)
     			$obj_facturation->remisePercent($_POST['txtRemise']);
     			$obj_facturation->ajoutArticle();	// This add an entry into $_SESSION['poscart']
     			// We update prixTotalTtc
    -
     		}
     
     		$redirection = DOL_URL_ROOT.'/cashdesk/affIndex.php?menutpl=facturation';
    @@ -227,7 +226,6 @@ switch($action)
     
     		$redirection = DOL_URL_ROOT.'/cashdesk/affIndex.php?menutpl=facturation';
     		break;
    -
     }
     
     // We saved object obj_facturation
    diff --git a/htdocs/cashdesk/index.php b/htdocs/cashdesk/index.php
    index c09521585e6..c1ecbd55f70 100644
    --- a/htdocs/cashdesk/index.php
    +++ b/htdocs/cashdesk/index.php
    @@ -28,8 +28,8 @@
     require_once '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
     
    -$langs->load("admin");
    -$langs->load("cashdesk");
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin","cashdesk"));
     
     // Test if user logged
     if ( $_SESSION['uid'] > 0 )
    @@ -74,7 +74,7 @@ if (is_array($hookmanager->resArray) && ! empty($hookmanager->resArray)) {
     <?php
     if (! empty($mysoc->logo_small))
     {
    -    print '<img class="logopos" alt="Logo company" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('/thumbs/'.$mysoc->logo_small).'">';
    +    print '<img class="logopos" alt="Logo company" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_small).'">';
     }
     else
     {
    diff --git a/htdocs/cashdesk/index_verif.php b/htdocs/cashdesk/index_verif.php
    index 238a73f6ef7..cd354293022 100644
    --- a/htdocs/cashdesk/index_verif.php
    +++ b/htdocs/cashdesk/index_verif.php
    @@ -30,9 +30,8 @@ include '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/cashdesk/include/environnement.php';
     require_once DOL_DOCUMENT_ROOT.'/cashdesk/class/Auth.class.php';
     
    -$langs->load("main");
    -$langs->load("admin");
    -$langs->load("cashdesk");
    +// Load translation files required by the page
    +$langs->loadLangs(array("main","admin","cashdesk"));
     
     $username = GETPOST("txtUsername");
     $password = GETPOST("pwdPassword");
    @@ -119,7 +118,7 @@ if ( $retour >= 0 )
     		$_SESSION['firstname'] = $tab['firstname'];
     		$_SESSION['CASHDESK_ID_THIRDPARTY'] = ($thirdpartyid > 0 ? $thirdpartyid : '');
             $_SESSION['CASHDESK_ID_WAREHOUSE'] = ($warehouseid > 0 ? $warehouseid : '');
    -        
    +
             $_SESSION['CASHDESK_ID_BANKACCOUNT_CASH'] = ($bankid_cash > 0 ? $bankid_cash : '');
             $_SESSION['CASHDESK_ID_BANKACCOUNT_CHEQUE'] = ($bankid_cheque > 0 ? $bankid_cheque : '');
             $_SESSION['CASHDESK_ID_BANKACCOUNT_CB'] = ($bankid_cb > 0 ? $bankid_cb : '');
    @@ -135,8 +134,8 @@ if ( $retour >= 0 )
     }
     else
     {
    -	$langs->load("errors");
    -    $langs->load("other");
    +	// Load translation files required by the page
    +    $langs->loadLangs(array("other","errors"));
     	$retour=$langs->trans("ErrorBadLoginPassword");
     	header('Location: '.DOL_URL_ROOT.'/cashdesk/index.php?err='.urlencode($retour).'&user='.$username.'&socid='.$thirdpartyid.'&warehouseid='.$warehouseid);
     	exit;
    diff --git a/htdocs/cashdesk/javascript/dhtml.js b/htdocs/cashdesk/javascript/dhtml.js
    index db05855a3b2..e2000abf56e 100644
    --- a/htdocs/cashdesk/javascript/dhtml.js
    +++ b/htdocs/cashdesk/javascript/dhtml.js
    @@ -1,6 +1,6 @@
     
     /* Copyright (C) 2007-2008	Jeremie Ollivier	<jeremie.o@laposte.net>
    - * Copyright (C) 2015		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2015		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/cashdesk/tpl/facturation1.tpl.php b/htdocs/cashdesk/tpl/facturation1.tpl.php
    index 146ae3d40b6..3a3fcd0a6b8 100644
    --- a/htdocs/cashdesk/tpl/facturation1.tpl.php
    +++ b/htdocs/cashdesk/tpl/facturation1.tpl.php
    @@ -2,7 +2,8 @@
     /* Copyright (C) 2007-2008	Jeremie Ollivier	<jeremie.o@laposte.net>
      * Copyright (C) 2011		Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2011		Juanjo Menent		<jmenent@2byte.es>
    - * Copyright (C) 2015		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2015		Regis Houssin		<regis.houssin@inodbox.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -26,10 +27,8 @@ if (empty($langs) || ! is_object($langs))
     	exit;
     }
     
    -
    -$langs->load("main");
    -$langs->load("bills");
    -$langs->load("cashdesk");
    +// Load translation files required by the page
    +$langs->loadLangs(array("main","bills","cashdesk"));
     
     // Object $form must de defined
     
    @@ -90,7 +89,6 @@ $langs->load("cashdesk");
     							print '<option '.$selected.' value="'.$tab_designations[$i]['rowid'].'">'.dol_trunc($tab_designations[$i]['ref'],16).' - '.dol_trunc($label,35,'middle');
     							if (! empty($conf->stock->enabled) && !empty($conf_fkentrepot) && $tab_designations[$i]['fk_product_type']==0) print ' ('.$langs->trans("CashDeskStock").': '.(empty($tab_designations[$i]['reel'])?0:$tab_designations[$i]['reel']).')';
     							print '</option>'."\n";
    -
     						}
     					?>
     				</select>
    @@ -204,7 +202,7 @@ $langs->load("cashdesk");
     				<input class="button bouton_mode_reglement" type="submit" name="btnModeReglement" value="<?php echo $langs->trans("Reported"); ?>" onclick="javascript: verifClic('DIF');" />
     			<?php
     			print $langs->trans("DateDue").' :';
    -			print $form->select_date(-1,'txtDatePaiement',0,0,0,'paymentmode',1,0,1);
    +			print $form->selectDate(-1,'txtDatePaiement',0,0,0,'paymentmode',1,0);
     			print '</div>';
     			?>
     		</div>
    diff --git a/htdocs/cashdesk/tpl/liste_articles.tpl.php b/htdocs/cashdesk/tpl/liste_articles.tpl.php
    index 082a1f901cd..c7bbfa329c2 100644
    --- a/htdocs/cashdesk/tpl/liste_articles.tpl.php
    +++ b/htdocs/cashdesk/tpl/liste_articles.tpl.php
    @@ -28,9 +28,8 @@ if (empty($langs) || ! is_object($langs))
     require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
     require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     
    -$langs->load("main");
    -$langs->load("bills");
    -$langs->load("cashdesk");
    +// Load translation files required by the page
    +$langs->loadLangs(array("main","bills","cashdesk"));
     
     ?>
     
    @@ -60,11 +59,9 @@ else
             if ( $tab[$i]['remise_percent'] > 0 ) {
     
                 $remise_percent = ' -'.$tab[$i]['remise_percent'].'%';
    -
             } else {
     
                 $remise_percent = '';
    -
             }
     
             $remise = $tab[$i]['remise'];
    diff --git a/htdocs/cashdesk/tpl/menu.tpl.php b/htdocs/cashdesk/tpl/menu.tpl.php
    index 250aaa18cc2..d65a39fc6aa 100644
    --- a/htdocs/cashdesk/tpl/menu.tpl.php
    +++ b/htdocs/cashdesk/tpl/menu.tpl.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2007-2008 Jeremie Ollivier      <jeremie.o@laposte.net>
      * Copyright (C) 2008-2010 Laurent Destailleur   <eldy@uers.sourceforge.net>
    - * Copyright (C) 2009      Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009      Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2017      Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2012      Marcos García         <marcosgdf@gmail.com>
      *
    @@ -63,9 +63,8 @@ if (!empty($_SESSION["CASHDESK_ID_WAREHOUSE"]) && ! empty($conf->stock->enabled)
     	$warehouseLink = $warehouse->getNomUrl(1);
     }
     
    -
    -$langs->load("cashdesk");
    -$langs->load("main");
    +// Load translation files required by the page
    +$langs->loadLangs(array("main","cashdesk"));
     
     print "\n".'<!-- menu.tpl.php -->'."\n";
     print '<div class="menu_bloc">';
    diff --git a/htdocs/cashdesk/tpl/ticket.tpl.php b/htdocs/cashdesk/tpl/ticket.tpl.php
    index 3937c9dbde3..5ed7650bfad 100644
    --- a/htdocs/cashdesk/tpl/ticket.tpl.php
    +++ b/htdocs/cashdesk/tpl/ticket.tpl.php
    @@ -27,8 +27,8 @@ if (empty($langs) || ! is_object($langs))
     
     include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
     
    -$langs->load("main");
    -$langs->load('cashdesk');
    +// Load translation files required by the page
    +$langs->loadLangs(array("main","cashdesk"));
     
     top_httphead('text/html');
     
    @@ -47,7 +47,7 @@ $object->fetch($facid);
     
     <div class="entete">
         <div class="logo">
    -        <?php print '<img src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('/thumbs/'.$mysoc->logo_small).'">'; ?>
    +        <?php print '<img src="'.DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_small).'">'; ?>
         </div>
         <div class="infos">
             <p class="address"><?php echo $mysoc->name; ?><br>
    diff --git a/htdocs/cashdesk/tpl/validation1.tpl.php b/htdocs/cashdesk/tpl/validation1.tpl.php
    index 2a390b99c65..750831cead8 100644
    --- a/htdocs/cashdesk/tpl/validation1.tpl.php
    +++ b/htdocs/cashdesk/tpl/validation1.tpl.php
    @@ -23,10 +23,8 @@ if (empty($langs) || ! is_object($langs))
     	exit;
     }
     
    -
    -$langs->load("main");
    -$langs->load("bills");
    -$langs->load("banks");
    +// Load translation files required by the page
    +$langs->loadLangs(array("main","bills","banks"));
     
     // Object $form must de defined
     
    @@ -43,13 +41,11 @@ $langs->load("banks");
     			if ( $obj_facturation->montantTva() ) {
     
     				echo ('<tr><td class="resume_label">'.$langs->trans("VAT").'</td><td>'.price(price2num($obj_facturation->montantTva(),'MT'),0,$langs,0,0,-1,$conf->currency).'</td></tr>');
    -
     			}
     			else
     			{
     
     				echo ('<tr><td class="resume_label">'.$langs->trans("VAT").'</td><td>'.$langs->trans("NoVAT").'</td></tr>');
    -
     			}
     		?>
     		<tr><td class="resume_label"><?php echo $langs->trans("TotalTTC"); ?> </td><td><?php echo price(price2num($obj_facturation->prixTotalTtc(),'MT'),0,$langs,0,0,-1,$conf->currency); ?></td></tr>
    @@ -93,18 +89,15 @@ $langs->load("banks");
     			if ( $obj_facturation->getsetPaymentMode() == 'DIF' ) {
     
     				echo ('<tr><td class="resume_label">'.$langs->trans("DateDue").'</td><td>'.$obj_facturation->paiementLe().'</td></tr>');
    -
     			} else {
     
     				echo ('<tr><td class="resume_label">'.$langs->trans("Received").'</td><td>'.price(price2num($obj_facturation->montantEncaisse(),'MT'),0,$langs,0,0,-1,$conf->currency).'</td></tr>');
    -
     			}
     
     			// Affichage du montant rendu (reglement en especes)
     			if ( $obj_facturation->montantRendu() ) {
     
     				echo ('<tr><td class="resume_label">'.$langs->trans("Change").'</td><td>'.price(price2num($obj_facturation->montantRendu(),'MT'),0,$langs,0,0,-1,$conf->currency).'</td></tr>');
    -
     			}
     
     		?>
    diff --git a/htdocs/cashdesk/tpl/validation2.tpl.php b/htdocs/cashdesk/tpl/validation2.tpl.php
    index a9889451bda..4592e106c9a 100644
    --- a/htdocs/cashdesk/tpl/validation2.tpl.php
    +++ b/htdocs/cashdesk/tpl/validation2.tpl.php
    @@ -24,9 +24,8 @@ if (empty($langs) || ! is_object($langs))
     	exit;
     }
     
    -
    -$langs->load("main");
    -$langs->load("bills");
    +// Load translation files required by the page
    +$langs->loadLangs(array("main","bills"));
     
     ?>
     
    diff --git a/htdocs/cashdesk/validation.php b/htdocs/cashdesk/validation.php
    index 289c864ca32..ff1219861e2 100644
    --- a/htdocs/cashdesk/validation.php
    +++ b/htdocs/cashdesk/validation.php
    @@ -24,5 +24,5 @@
     $form=new Form($db);
     
     // Affichage des templates
    -require ('tpl/validation1.tpl.php');
    +require 'tpl/validation1.tpl.php';
     
    diff --git a/htdocs/cashdesk/validation_ok.php b/htdocs/cashdesk/validation_ok.php
    index 70bf3d1b64f..c8c83a91f18 100644
    --- a/htdocs/cashdesk/validation_ok.php
    +++ b/htdocs/cashdesk/validation_ok.php
    @@ -22,5 +22,5 @@
      */
     
     // Affichage des templates
    -require ('tpl/validation2.tpl.php');
    +require 'tpl/validation2.tpl.php';
     
    diff --git a/htdocs/cashdesk/validation_ticket.php b/htdocs/cashdesk/validation_ticket.php
    index 577df309138..a98b50b0bc9 100644
    --- a/htdocs/cashdesk/validation_ticket.php
    +++ b/htdocs/cashdesk/validation_ticket.php
    @@ -24,7 +24,7 @@
     require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/cashdesk/include/environnement.php';
     require_once DOL_DOCUMENT_ROOT.'/cashdesk/class/Facturation.class.php';
    -include_once(DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php');
    +require_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
     
     $obj_facturation = unserialize($_SESSION['serObjFacturation']);
     unset($_SESSION['serObjFacturation']);
    @@ -35,7 +35,7 @@ $parameters=array();
     $reshook=$hookmanager->executeHooks('doActions',$parameters,$obj_facturation);
     if (empty($reshook))
     {
    -    require ('tpl/ticket.tpl.php');
    +    require 'tpl/ticket.tpl.php';
     }
     
     
    diff --git a/htdocs/cashdesk/validation_verif.php b/htdocs/cashdesk/validation_verif.php
    index 431f921a1fb..be1f201a8fe 100644
    --- a/htdocs/cashdesk/validation_verif.php
    +++ b/htdocs/cashdesk/validation_verif.php
    @@ -215,6 +215,8 @@ switch ($action)
     		$invoice->note_private=$note;
     		$invoice->cond_reglement_id=$cond_reglement_id;
     		$invoice->mode_reglement_id=$mode_reglement_id;
    +		$invoice->module_source = 'cashdesk';
    +		$invoice->pos_source = '0';
     		//print "c=".$invoice->cond_reglement_id." m=".$invoice->mode_reglement_id; exit;
     
     		// Si paiement differe ...
    @@ -253,7 +255,7 @@ switch ($action)
     			}
     			else
     			{
    -				setEventMessage($invoice->error, $invoice->errors, 'errors');
    +				setEventMessages($invoice->error, $invoice->errors, 'errors');
     			    $error++;
     			}
     
    @@ -326,7 +328,6 @@ switch ($action)
                         		$result=$invoice->set_paid($user);
                       			//print 'set paid';exit;
                         	}
    -
                         }
     				}
     				else
    diff --git a/htdocs/categories/admin/categorie.php b/htdocs/categories/admin/categorie.php
    index 92e23a2199a..03adfdbb41e 100644
    --- a/htdocs/categories/admin/categorie.php
    +++ b/htdocs/categories/admin/categorie.php
    @@ -122,5 +122,6 @@ print '</td></tr>';
     
     print '</table>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/categories/admin/categorie_extrafields.php b/htdocs/categories/admin/categorie_extrafields.php
    index 3fd7d1c69b5..a346d86f50e 100644
    --- a/htdocs/categories/admin/categorie_extrafields.php
    +++ b/htdocs/categories/admin/categorie_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -79,7 +79,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -92,7 +92,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -111,6 +111,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/categories/card.php b/htdocs/categories/card.php
    index db56902347b..e69ec4a852d 100644
    --- a/htdocs/categories/card.php
    +++ b/htdocs/categories/card.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005		Matthieu Valleton	<mv@seeschloss.org>
      * Copyright (C) 2006-2017	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2014	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2007		Patrick Raguin		<patrick.raguin@gmail.com>
      * Copyright (C) 2013		Florian Henry		<florian.henry@open-concept.pro>
      * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
    @@ -44,6 +44,7 @@ $origin		= GETPOST('origin','alpha');
     $catorigin	= GETPOST('catorigin','int');
     $type 		= GETPOST('type','alpha');
     $urlfrom	= GETPOST('urlfrom','alpha');
    +$backtopage = GETPOST('backtopage','alpha');
     
     $socid=GETPOST('socid','int');
     $label=GETPOST('label');
    @@ -173,6 +174,11 @@ if (($action == 'add' || $action == 'confirmed') && $user->rights->categorie->cr
     			header("Location: ".$urlfrom);
     			exit;
     		}
    +		elseif ($backtopage)
    +		{
    +			header("Location: ".$backtopage);
    +			exit;
    +		}
     		else if ($idProdOrigin)
     		{
     			header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idProdOrigin.'&type='.$type.'&mesg='.urlencode($langs->trans("CatCreated")));
    @@ -232,8 +238,9 @@ if ($user->rights->categorie->creer)
     		print '<input type="hidden" name="urlfrom" value="'.$urlfrom.'">';
     		print '<input type="hidden" name="action" value="add">';
     		print '<input type="hidden" name="addcat" value="addcat">';
    -		print '<input type="hidden" name="id" value="'.GETPOST('origin').'">';
    +		print '<input type="hidden" name="id" value="'.GETPOST('origin','alpha').'">';
     		print '<input type="hidden" name="type" value="'.$type.'">';
    +		print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
     		if ($origin) print '<input type="hidden" name="origin" value="'.$origin.'">';
     		if ($catorigin)	print '<input type="hidden" name="catorigin" value="'.$catorigin.'">';
     
    @@ -288,7 +295,6 @@ if ($user->rights->categorie->creer)
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/categories/class/api_categories.class.php b/htdocs/categories/class/api_categories.class.php
    index c559d760f0f..843e2fc0ee6 100644
    --- a/htdocs/categories/class/api_categories.class.php
    +++ b/htdocs/categories/class/api_categories.class.php
    @@ -103,7 +103,8 @@ class Categories extends DolibarrApi
          *
     	 * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $type = '', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $type = '', $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -266,7 +267,8 @@ class Categories extends DolibarrApi
          * @param   Categorie  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php
    index 3de9bdfab0a..e4d95d490ed 100644
    --- a/htdocs/categories/class/categorie.class.php
    +++ b/htdocs/categories/class/categorie.class.php
    @@ -2,14 +2,15 @@
     /* Copyright (C) 2005       Matthieu Valleton       <mv@seeschloss.org>
      * Copyright (C) 2005       Davoleau Brice          <brice.davoleau@gmail.com>
      * Copyright (C) 2005       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    - * Copyright (C) 2006-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2007       Patrick Raguin          <patrick.raguin@gmail.com>
      * Copyright (C) 2013-2016  Juanjo Menent           <jmenent@2byte.es>
    - * Copyright (C) 2013-2016  Philippe Grand          <philippe.grand@atoo-net.com>
    + * Copyright (C) 2013-2018  Philippe Grand          <philippe.grand@atoo-net.com>
      * Copyright (C) 2015       Marcos García           <marcosgdf@gmail.com>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2016       Charlie Benke           <charlie@patas-monkey.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -53,6 +54,9 @@ class Categorie extends CommonObject
     	const TYPE_ACCOUNT   = 'bank_account';
         const TYPE_BANK_LINE = 'bank_line';
     
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'category';
     
     
    @@ -61,7 +65,7 @@ class Categorie extends CommonObject
     	 *
     	 * @note This array should be remove in future, once previous constants are moved to the string value. Deprecated
     	 */
    -	private $MAP_ID = array(
    +	protected $MAP_ID = array(
     		'product'      => 0,
     		'supplier'     => 1,
     		'customer'     => 2,
    @@ -72,6 +76,10 @@ class Categorie extends CommonObject
     		'user'         => 7,
     		'bank_line'    => 8,
     	);
    +
    +    /**
    +	 * @var array Code mapping from ID
    +	 */
     	public static $MAP_ID_TO_CODE = array(
     		0 => 'product',
     		1 => 'supplier',
    @@ -89,7 +97,7 @@ class Categorie extends CommonObject
     	 *
     	 * @note Move to const array when PHP 5.6 will be our minimum target
     	 */
    -	private $MAP_CAT_FK = array(
    +	protected $MAP_CAT_FK = array(
     		'product'  => 'product',
     		'customer' => 'soc',
     		'supplier' => 'soc',
    @@ -100,12 +108,13 @@ class Categorie extends CommonObject
             'bank_account' => 'account',
             'project'  => 'project',
     	);
    -	/**
    +
    +    /**
     	 * @var array Category tables mapping from type string
     	 *
     	 * @note Move to const array when PHP 5.6 will be our minimum target
     	 */
    -	private $MAP_CAT_TABLE = array(
    +	protected $MAP_CAT_TABLE = array(
     		'product'  => 'product',
     		'customer' => 'societe',
     		'supplier' => 'fournisseur',
    @@ -116,12 +125,13 @@ class Categorie extends CommonObject
             'bank_account'=> 'account',
             'project'  => 'project',
     	);
    -	/**
    +
    +    /**
     	 * @var array Object class mapping from type string
     	 *
     	 * @note Move to const array when PHP 5.6 will be our minimum target
     	 */
    -	private $MAP_OBJ_CLASS = array(
    +	protected $MAP_OBJ_CLASS = array(
     		'product'  => 'Product',
     		'customer' => 'Societe',
     		'supplier' => 'Fournisseur',
    @@ -132,12 +142,13 @@ class Categorie extends CommonObject
     		'bank_account'  => 'Account',
             'project'  => 'Project',
     	);
    -	/**
    +
    +    /**
     	 * @var array Object table mapping from type string
     	 *
     	 * @note Move to const array when PHP 5.6 will be our minimum target
     	 */
    -	private $MAP_OBJ_TABLE = array(
    +	protected $MAP_OBJ_TABLE = array(
     		'product'  => 'product',
     		'customer' => 'societe',
     		'supplier' => 'societe',
    @@ -148,12 +159,31 @@ class Categorie extends CommonObject
             'project'  => 'projet',
     	);
     
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='category';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='categorie';
     
    +	/**
    +     * @var int ID
    +     */
     	public $fk_parent;
    -	public $label;
    +
    +	/**
    +     * @var string Category label
    +     */
    +   	public $label;
    +
    +	/**
    +	 * @var string description
    +	 */
     	public $description;
    +
     	/**
     	 * @var string     Color
     	 */
    @@ -176,7 +206,14 @@ class Categorie extends CommonObject
     	 */
     	public $type;
     
    -	public $cats = array();			// Categories table in memory
    +	/**
    +	 * @var array Categories table in memory
    +	 */
    +	public $cats = array();
    +
    +    /**
    +	 * @var array Mother of table
    +	 */
     	public $motherof = array();
     
     	/**
    @@ -498,112 +535,27 @@ class Categorie extends CommonObject
     				$error++;
     			}
     		}
    -		if (! $error)
    -		{
    -			$sql  = "DELETE FROM ".MAIN_DB_PREFIX."categorie_societe";
    -			$sql .= " WHERE fk_categorie = ".$this->id;
    -			if (!$this->db->query($sql))
    -			{
    -				$this->error=$this->db->lasterror();
    -				$error++;
    -			}
    -		}
    -		if (! $error)
    -		{
    -			$sql  = "DELETE FROM ".MAIN_DB_PREFIX."categorie_fournisseur";
    -			$sql .= " WHERE fk_categorie = ".$this->id;
    -			if (!$this->db->query($sql))
    -			{
    -				$this->error=$this->db->lasterror();
    -				$error++;
    -			}
    -		}
    -		if (! $error)
    -		{
    -			$sql  = "DELETE FROM ".MAIN_DB_PREFIX."categorie_product";
    -			$sql .= " WHERE fk_categorie = ".$this->id;
    -			if (!$this->db->query($sql))
    -			{
    -				$this->error=$this->db->lasterror();
    -				$error++;
    -			}
    -		}
    -		if (! $error)
    -		{
    -			$sql  = "DELETE FROM ".MAIN_DB_PREFIX."categorie_member";
    -			$sql .= " WHERE fk_categorie = ".$this->id;
    -			if (!$this->db->query($sql))
    -			{
    -				$this->error=$this->db->lasterror();
    -				$error++;
    -			}
    -		}
    -		if (! $error)
    -		{
    -			$sql  = "DELETE FROM ".MAIN_DB_PREFIX."categorie_contact";
    -			$sql .= " WHERE fk_categorie = ".$this->id;
    -			if (!$this->db->query($sql))
    -			{
    -				$this->error=$this->db->lasterror();
    -				$error++;
    -			}
    -		}
    -		if (! $error)
    -		{
    -			$sql  = "DELETE FROM ".MAIN_DB_PREFIX."categorie_contact";
    -			$sql .= " WHERE fk_categorie = ".$this->id;
    -			if (!$this->db->query($sql))
    -			{
    -				$this->error=$this->db->lasterror();
    -				$error++;
    -			}
    -		}
    -		if (! $error)
    -		{
    -			$sql  = "DELETE FROM ".MAIN_DB_PREFIX."categorie_account";
    -			$sql .= " WHERE fk_categorie = ".$this->id;
    -			if (!$this->db->query($sql))
    -			{
    -				$this->error=$this->db->lasterror();
    -				dol_syslog("Error sql=".$sql." ".$this->error, LOG_ERR);
    -				$error++;
    -			}
    -		}
    -		if (! $error)
    -		{
    -		    $sql  = "DELETE FROM ".MAIN_DB_PREFIX."bank_class";
    -		    $sql .= " WHERE fk_categ = ".$this->id;
    -		    if (!$this->db->query($sql))
    -		    {
    -		        $this->error=$this->db->lasterror();
    -		        dol_syslog("Error sql=".$sql." ".$this->error, LOG_ERR);
    -		        $error++;
    -		    }
    -		}
     
    -		if (! $error)
    -		{
    -			$sql  = "DELETE FROM ".MAIN_DB_PREFIX."categorie_lang";
    -			$sql .= " WHERE fk_category = ".$this->id;
    -			if (!$this->db->query($sql))
    -			{
    -				$this->error=$this->db->lasterror();
    -				dol_syslog("Error sql=".$sql." ".$this->error, LOG_ERR);
    -				$error++;
    -			}
    -		}
    -
    -		// Delete category
    -		if (! $error)
    -		{
    -			$sql  = "DELETE FROM ".MAIN_DB_PREFIX."categorie";
    -			$sql .= " WHERE rowid = ".$this->id;
    -			if (!$this->db->query($sql))
    -			{
    -				$this->error=$this->db->lasterror();
    -				$error++;
    -			}
    -		}
    +        $arraydelete = array(
    +            'categorie_societe' => 'fk_categorie',
    +            'categorie_fournisseur' => 'fk_categorie',
    +            'categorie_product' => 'fk_categorie',
    +            'categorie_member' => 'fk_categorie',
    +            'categorie_contact' => 'fk_categorie',
    +            'categorie_account' => 'fk_categorie',
    +            'bank_class' => 'fk_categ',
    +            'categorie_lang' => 'fk_category',
    +            'categorie' => 'rowid',
    +        );
    +        foreach ($arraydelete as $key => $value) {
    +            $sql  = "DELETE FROM " . MAIN_DB_PREFIX . $key;
    +            $sql .= " WHERE ".$value." = ".$this->id;
    +            if (!$this->db->query($sql)) {
    +                $this->errors[] = $this->db->lasterror();
    +                dol_syslog("Error sql=".$sql." ".$this->error, LOG_ERR);
    +                $error++;
    +            }
    +        }
     
     		// Removed extrafields
     		if (! $error && empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
    @@ -628,6 +580,7 @@ class Categorie extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Link an object to the category
     	 *
    @@ -637,6 +590,7 @@ class Categorie extends CommonObject
     	 */
     	function add_type($obj, $type)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf;
     
     		$error=0;
    @@ -711,7 +665,6 @@ class Categorie extends CommonObject
     			    $this->db->rollback();
     			    return -2;
     			}
    -
     		}
     		else
     		{
    @@ -729,6 +682,7 @@ class Categorie extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Delete object from category
     	 *
    @@ -739,6 +693,7 @@ class Categorie extends CommonObject
     	 */
     	function del_type($obj,$type)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf;
     
     		$error=0;
    @@ -791,7 +746,7 @@ class Categorie extends CommonObject
     	 *
     	 * @param   string     $type       Type of category ('customer', 'supplier', 'contact', 'product', 'member')
     	 * @param   int        $onlyids    Return only ids of objects (consume less memory)
    -	 * @return  mixed                  -1 if KO, array of instance of object if OK
    +	 * @return  array|int              -1 if KO, array of instance of object if OK
     	 * @see containsObject
     	 */
     	function getObjectsInCateg($type, $onlyids=0)
    @@ -864,7 +819,7 @@ class Categorie extends CommonObject
     	 * @param	string	$sortorder	Sort order
     	 * @param	int		$limit		Limit for list
     	 * @param	int		$page		Page number
    -	 * @return	array				Array of categories
    +	 * @return	array|int			Array of categories, 0 if no cat, -1 on error
     	 */
     	function getListForItem($id, $type='customer', $sortfield = "s.rowid", $sortorder = 'ASC', $limit = 0, $page = 0)
     	{
    @@ -952,6 +907,7 @@ class Categorie extends CommonObject
     		return $categories;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return childs of a category
     	 *
    @@ -959,6 +915,7 @@ class Categorie extends CommonObject
     	 */
     	function get_filles()
     	{
    +        // phpcs:enable
     		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."categorie";
     		$sql.= " WHERE fk_parent = ".$this->id;
     
    @@ -981,13 +938,15 @@ class Categorie extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
     	/**
     	 * 	Load this->motherof that is array(id_son=>id_parent, ...)
     	 *
     	 *	@return		int		<0 if KO, >0 if OK
     	 */
    -	private function load_motherof()
    +	protected function load_motherof()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$this->motherof=array();
    @@ -1015,6 +974,7 @@ class Categorie extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Rebuilding the category tree as an array
     	 * Return an array of table('id','id_mere',...) trie selon arbre et avec:
    @@ -1028,10 +988,11 @@ class Categorie extends CommonObject
     	 * @param   string 	$type        	Type of categories ('customer', 'supplier', 'contact', 'product', 'member') or (0, 1, 2, ...).
     	 * @param   int    	$markafterid 	Removed all categories including the leaf $markafterid in category tree.
     	 *
    -	 * @return  array               	Array of categories. this->cats and this->motherof are set.
    +	 * @return  array|int               Array of categories. this->cats and this->motherof are set, -1 on error
     	 */
     	function get_full_arbo($type, $markafterid=0)
     	{
    +        // phpcs:enable
     	    global $conf, $langs;
     
     		if (! is_numeric($type)) $type = $this->MAP_ID[$type];
    @@ -1107,6 +1068,7 @@ class Categorie extends CommonObject
     		return $this->cats;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	For category id_categ and its childs available in this->cats, define property fullpath and fulllabel
     	 *
    @@ -1116,6 +1078,7 @@ class Categorie extends CommonObject
     	 */
     	function build_path_from_id_categ($id_categ,$protection=1000)
     	{
    +        // phpcs:enable
     		dol_syslog(get_class($this)."::build_path_from_id_categ id_categ=".$id_categ." protection=".$protection, LOG_DEBUG);
     
     		if (! empty($this->cats[$id_categ]['fullpath']))
    @@ -1149,6 +1112,7 @@ class Categorie extends CommonObject
     		return;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Display content of $this->cats
     	 *
    @@ -1156,6 +1120,7 @@ class Categorie extends CommonObject
     	 */
     	function debug_cats()
     	{
    +        // phpcs:enable
     		// Display $this->cats
     		foreach($this->cats as $key => $val)
     		{
    @@ -1170,15 +1135,17 @@ class Categorie extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Returns all categories
     	 *
     	 *	@param	int			$type		Type of category (0, 1, ...)
     	 *	@param	boolean		$parent		Just parent categories if true
    -	 *	@return	array					Table of Object Category
    +	 *	@return	array|int				Table of Object Category, -1 on error
     	 */
     	function get_all_categories($type=null, $parent=false)
     	{
    +        // phpcs:enable
     		if (! is_numeric($type)) $type = $this->MAP_ID[$type];
     
     		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."categorie";
    @@ -1207,6 +1174,7 @@ class Categorie extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Check if no category with same label already exists for this cat's parent or root and for this cat's type
     	 *
    @@ -1214,6 +1182,7 @@ class Categorie extends CommonObject
     	 */
     	function already_exists()
     	{
    +        // phpcs:enable
     		$type=$this->type;
     
     		if (! is_numeric($type)) $type=$this->MAP_ID[$type];
    @@ -1256,6 +1225,7 @@ class Categorie extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Returns the top level categories (which are not girls)
     	 *
    @@ -1264,9 +1234,11 @@ class Categorie extends CommonObject
     	 */
     	function get_main_categories($type=null)
     	{
    +        // phpcs:enable
     		return $this->get_all_categories($type, true);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Returns the path of the category, with the names of the categories
     	 * separated by $sep (" >> " by default)
    @@ -1278,6 +1250,7 @@ class Categorie extends CommonObject
     	 */
     	function print_all_ways($sep = " &gt;&gt; ", $url='', $nocolor=0)
     	{
    +        // phpcs:enable
     		$ways = array();
     
     		$allways = $this->get_all_ways(); // Load array of categories
    @@ -1324,6 +1297,7 @@ class Categorie extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Returns an array containing the list of parent categories
     	 *
    @@ -1331,6 +1305,7 @@ class Categorie extends CommonObject
     	 */
     	function get_meres()
     	{
    +        // phpcs:enable
     		$parents = array();
     
     		$sql = "SELECT fk_parent FROM ".MAIN_DB_PREFIX."categorie";
    @@ -1358,6 +1333,7 @@ class Categorie extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Returns in a table all possible paths to get to the category
     	 * 	starting with the major categories represented by Tables of categories
    @@ -1366,6 +1342,7 @@ class Categorie extends CommonObject
     	 */
     	function get_all_ways()
     	{
    +        // phpcs:enable
     		$ways = array();
     
     		$parents=$this->get_meres();
    @@ -1397,7 +1374,7 @@ class Categorie extends CommonObject
     	 * @param   string|int	$type   Type of category ('customer', 'supplier', 'contact', 'product', 'member') or (0, 1, 2, ...)
     	 * @param   string 		$mode   'id'=Get array of category ids, 'object'=Get array of fetched category instances, 'label'=Get array of category
     	 *                      	    labels, 'id'= Get array of category IDs
    -	 * @return  mixed           	Array of category objects or < 0 if KO
    +	 * @return  array|int           Array of category objects or < 0 if KO
     	 */
     	function containing($id, $type, $mode='object')
     	{
    @@ -1479,7 +1456,7 @@ class Categorie extends CommonObject
      	 * 	@param		string		$type		Type of category ('member', 'customer', 'supplier', 'product', 'contact'). Old mode (0, 1, 2, ...) is deprecated.
     	 * 	@param		boolean		$exact		Exact string search (true/false)
     	 * 	@param		boolean		$case		Case sensitive (true/false)
    -	 * 	@return		array					Array of category id
    +	 * 	@return		array|int				Array of category id, -1 if error
     	 */
     	function rechercher($id, $nom, $type, $exact = false, $case = false)
     	{
    @@ -1559,7 +1536,7 @@ class Categorie extends CommonObject
     			if (colorIsLight($this->color)) $forced_color='categtextblack';
     		}
     
    -        $link = '<a href="'.DOL_URL_ROOT.'/categories/viewcat.php?id='.$this->id.'&type='.$this->type.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip '.$forced_color .'">';
    +		$link = '<a href="'.DOL_URL_ROOT.'/categories/viewcat.php?id='.$this->id.'&type='.$this->type.'&backtopage='.urlencode($_SERVER['PHP_SELF']).'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip '.$forced_color .'">';
     		$linkend='</a>';
     
     		$picto='category';
    @@ -1572,6 +1549,7 @@ class Categorie extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Deplace fichier uploade sous le nom $files dans le repertoire sdir
     	 *
    @@ -1581,6 +1559,7 @@ class Categorie extends CommonObject
     	 */
     	function add_photo($sdir, $file)
     	{
    +        // phpcs:enable
     		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
     		$dir = $sdir .'/'. get_exdir($this->id,2,0,0,$this,'category') . $this->id ."/";
    @@ -1621,6 +1600,7 @@ class Categorie extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Return tableau de toutes les photos de la categorie
     	 *
    @@ -1630,6 +1610,7 @@ class Categorie extends CommonObject
     	 */
     	function liste_photos($dir,$nbmax=0)
     	{
    +        // phpcs:enable
     		include_once DOL_DOCUMENT_ROOT .'/core/lib/files.lib.php';
     
     		$nbphoto=0;
    @@ -1676,6 +1657,7 @@ class Categorie extends CommonObject
     		return $tabobj;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Efface la photo de la categorie et sa vignette
     	 *
    @@ -1684,6 +1666,7 @@ class Categorie extends CommonObject
     	 */
     	function delete_photo($file)
     	{
    +        // phpcs:enable
             require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
     	    $dir = dirname($file).'/'; // Chemin du dossier contenant l'image d'origine
    @@ -1704,6 +1687,7 @@ class Categorie extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Load size of image file
     	 *
    @@ -1712,6 +1696,7 @@ class Categorie extends CommonObject
     	 */
     	function get_image_size($file)
     	{
    +        // phpcs:enable
     		$infoImg = getimagesize($file); // Recuperation des infos de l'image
     		$this->imgWidth = $infoImg[0]; // Largeur de l'image
     		$this->imgHeight = $infoImg[1]; // Hauteur de l'image
    @@ -1825,7 +1810,6 @@ class Categorie extends CommonObject
     	            {
     	                $this->label		= $obj->label;
     	                $this->description	= $obj->description;
    -
     	            }
     	            $this->multilangs["$obj->lang"]["label"]		= $obj->label;
     	            $this->multilangs["$obj->lang"]["description"]	= $obj->description;
    diff --git a/htdocs/categories/edit.php b/htdocs/categories/edit.php
    index 1cde5e62adc..3f4bbad8192 100644
    --- a/htdocs/categories/edit.php
    +++ b/htdocs/categories/edit.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Matthieu Valleton    <mv@seeschloss.org>
      * Copyright (C) 2006-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007      Patrick Raguin	  	<patrick.raguin@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -192,7 +192,6 @@ print '<div class="center"><input type="submit" class="button" name"submit" valu
     
     print '</form>';
     
    -
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/categories/index.php b/htdocs/categories/index.php
    index 9f41c0b016a..b7e99e50ca0 100644
    --- a/htdocs/categories/index.php
    +++ b/htdocs/categories/index.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2005       Eric Seigne         <eric.seigne@ryxeo.com>
      * Copyright (C) 2006-2016  Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2007       Patrick Raguin      <patrick.raguin@gmail.com>
    - * Copyright (C) 2005-2012  Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -82,6 +82,8 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     print '<form method="post" action="index.php?type='.$type.'">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     print '<input type="hidden" name="type" value="'.$type.'">';
    +
    +
     print '<table class="noborder nohover" width="100%">';
     print '<tr class="liste_titre">';
     print '<td colspan="3">'.$langs->trans("Search").'</td>';
    @@ -173,6 +175,8 @@ foreach($fulltree as $key => $val)
     }
     
     
    +//print_barre_liste('', 0, $_SERVER["PHP_SELF"], '', '', '', '', 0, 0, '', 0, $newcardbutton, '', 0, 1, 1);
    +
     print '<table class="liste nohover" width="100%">';
     print '<tr class="liste_titre"><td>'.$langs->trans("Categories").'</td><td></td><td align="right">';
     if (! empty($conf->use_javascript_ajax))
    @@ -205,6 +209,6 @@ print "</table>";
     
     print '</div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/categories/photos.php b/htdocs/categories/photos.php
    index 1c5359b90e8..233fc6e6a22 100644
    --- a/htdocs/categories/photos.php
    +++ b/htdocs/categories/photos.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2007  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2005       Eric Seigne             <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2014       Jean-François Ferry     <jfefe@aternatik.fr>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
    @@ -69,7 +69,7 @@ if ($id > 0)
     if (isset($_FILES['userfile']) && $_FILES['userfile']['size'] > 0 && $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC))
     {
         if ($object->id) {
    -        
    +
             $file = $_FILES['userfile'];
             if (is_array($file['name']) && count($file['name']) > 0)
             {
    @@ -82,11 +82,10 @@ if (isset($_FILES['userfile']) && $_FILES['userfile']['size'] > 0 && $_POST["sen
                     }
                 }
             }
    -        
    -        if(!empty($file['tmp_name'])){
    +
    +        if(!empty($file['tmp_name'])) {
                 $object->add_photo($upload_dir, $file);
             }
    -        
         }
     }
     
    @@ -190,7 +189,7 @@ if ($object->id)
     		}
     		else
     		{
    -			print '<a class="butActionRefused hideonsmartphone" href="#">';
    +			print '<a class="butActionRefused classfortooltip hideonsmartphone" href="#">';
     			print $langs->trans("AddPhoto").'</a>';
     		}
     	}
    @@ -290,6 +289,6 @@ else
         print $langs->trans("ErrorUnknown");
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/categories/traduction.php b/htdocs/categories/traduction.php
    index 7d71b43a81b..6783b565b99 100644
    --- a/htdocs/categories/traduction.php
    +++ b/htdocs/categories/traduction.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2007       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2010-2016  Destailleur Laurent     <eldy@users.sourceforge.net>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    @@ -269,7 +269,6 @@ if ($action == 'edit')
     	print '</div>';
     
     	print '</form>';
    -
     }
     else if ($action != 'add')
     {
    @@ -334,5 +333,6 @@ if ($action == 'add' && ($user->rights->produit->creer || $user->rights->service
     	print '<br>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php
    index 24e70e7d587..2092c6c52c5 100644
    --- a/htdocs/categories/viewcat.php
    +++ b/htdocs/categories/viewcat.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2005       Matthieu Valleton	<mv@seeschloss.org>
      * Copyright (C) 2006-2015  Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2007       Patrick Raguin		<patrick.raguin@gmail.com>
    - * Copyright (C) 2005-2012  Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -168,7 +168,6 @@ if ($type == Categorie::TYPE_PRODUCT && $elemid && $action == 'addintocategory'
     			setEventMessages($object->error,$object->errors,'errors');
     		}
     	}
    -
     }
     
     
    @@ -697,6 +696,6 @@ if ($type == Categorie::TYPE_PROJECT)
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/collab/index.php b/htdocs/collab/index.php
    index 2c056cd0e07..e7b2ab51d7c 100644
    --- a/htdocs/collab/index.php
    +++ b/htdocs/collab/index.php
    @@ -28,9 +28,8 @@ require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
    -$langs->load("admin");
    -$langs->load("other");
    -$langs->load("website");
    +// Load translation files required by the page
    +$langs->loadLangs(array("admin","other","website"));
     
     if (! $user->admin) accessforbidden();
     
    @@ -456,9 +455,6 @@ if ($action == 'editcontent')
     
     print "</div>\n</form>\n";
     
    -
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php
    index 470a90c355f..d087655a9bd 100644
    --- a/htdocs/comm/action/card.php
    +++ b/htdocs/comm/action/card.php
    @@ -2,11 +2,12 @@
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Simon TOSSER         <simon@kornog-computing.com>
    - * Copyright (C) 2005-2017 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2013 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2013      Florian Henry        <florian.henry@open-concept.pro>
      * Copyright (C) 2014      Cedric GROSS         <c.gross@kreiz-it.fr>
    - * Copyright (C) 2015	   Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2015       Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -39,6 +40,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     
    @@ -250,6 +252,19 @@ if ($action == 'add')
     			}
     		}
     		$object->fk_project = isset($_POST["projectid"])?$_POST["projectid"]:0;
    +
    +		$taskid = GETPOST('taskid','int');
    +		if(!empty($taskid)){
    +
    +		    $taskProject = new Task($db);
    +		    if($taskProject->fetch($taskid)>0){
    +		        $object->fk_project = $taskProject->fk_project;
    +		    }
    +
    +		    $object->fk_element = $taskid;
    +		    $object->elementtype = 'task';
    +		}
    +
     		$object->datep = $datep;
     		$object->datef = $datef;
     		$object->percentage = $percentage;
    @@ -417,8 +432,8 @@ if ($action == 'update')
     		foreach ($socpeopleassigned as $cid) $object->socpeopleassigned[$cid] = array('id' => $cid);
     		$object->contactid   = GETPOST("contactid",'int');
     		$object->fk_project  = GETPOST("projectid",'int');
    -		$object->note        = GETPOST("note");
    -		$object->pnote       = GETPOST("note");
    +		$object->note        = GETPOST("note","none");	// deprecated
    +		$object->note_private= GETPOST("note","none");
     		$object->fk_element	 = GETPOST("fk_element");
     		$object->elementtype = GETPOST("elementtype");
     
    @@ -582,7 +597,6 @@ if (GETPOST('actionmove','alpha') == 'mupdate')
         {
             $action='';
         }
    -
     }
     
     // Actions to delete doc
    @@ -689,9 +703,13 @@ if ($action == 'create')
     	$datep=($datep?$datep:$object->datep);
     	if (GETPOST('datep','int',1)) $datep=dol_stringtotime(GETPOST('datep','int',1),0);
     	print '<tr><td class="nowrap"><span class="fieldrequired">'.$langs->trans("DateActionStart").'</span></td><td>';
    -	if (GETPOST("afaire") == 1) $form->select_date($datep,'ap',1,1,0,"action",1,1,0,0,'fulldayend');
    -	else if (GETPOST("afaire") == 2) $form->select_date($datep,'ap',1,1,1,"action",1,1,0,0,'fulldayend');
    -	else $form->select_date($datep,'ap',1,1,1,"action",1,1,0,0,'fulldaystart');
    +	if (GETPOST("afaire") == 1) {
    +        print $form->selectDate($datep, 'ap', 1, 1, 0, "action", 1, 1, 0, 'fulldayend');
    +    } elseif (GETPOST("afaire") == 2) {
    +        print $form->selectDate($datep, 'ap', 1, 1, 1, "action", 1, 1, 0, 'fulldayend');
    +    } else {
    +        print $form->selectDate($datep, 'ap', 1, 1, 1, "action", 1, 1, 0, 'fulldaystart');
    +    }
     	print '</td></tr>';
     
     	// Date end
    @@ -702,12 +720,17 @@ if ($action == 'create')
     		$datef=dol_time_plus_duree($datep, $conf->global->AGENDA_AUTOSET_END_DATE_WITH_DELTA_HOURS, 'h');
     	}
     	print '<tr><td><span id="dateend"'.(GETPOST("actioncode") == 'AC_RDV'?' class="fieldrequired"':'').'>'.$langs->trans("DateActionEnd").'</span></td><td>';
    -	if (GETPOST("afaire") == 1) $form->select_date($datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend');
    -	else if (GETPOST("afaire") == 2) $form->select_date($datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend');
    -	else $form->select_date($datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend');
    +	if (GETPOST("afaire") == 1) {
    +        print $form->selectDate($datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend');
    +    } elseif (GETPOST("afaire") == 2) {
    +        print $form->selectDate($datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend');
    +    } else {
    +        print $form->selectDate($datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend');
    +    }
     	print '</td></tr>';
     
    -	$userepeatevent=($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0);	// Dev in progress
    +    // Dev in progress
    +	$userepeatevent=($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0);
     	if ($userepeatevent)
     	{
     		// Repeat
    @@ -849,7 +872,6 @@ if ($action == 'create')
     			} else {
     				print $form->select_company('', 'socid', '', 'SelectThirdParty', 1, 0, $events, 0, 'minwidth300');
     			}
    -
     		}
     		print '</td></tr>';
     
    @@ -867,10 +889,37 @@ if ($action == 'create')
     		// Projet associe
     		$langs->load("projects");
     
    -		print '<tr><td class="titlefieldcreate">'.$langs->trans("Project").'</td><td>';
    +		$projectid = GETPOST('projectid', 'int');
    +
    +		print '<tr><td class="titlefieldcreate">'.$langs->trans("Project").'</td><td id="project-input-container" >';
    +
    +		$numproject=$formproject->select_projects((! empty($societe->id)?$societe->id:-1), $projectid, 'projectid', 0, 0, 1, 1);
     
    -		$numproject=$formproject->select_projects((! empty($societe->id)?$societe->id:-1), GETPOST("projectid")?GETPOST("projectid"):'', 'projectid', 0, 0, 1, 1);
     		print ' &nbsp; <a href="'.DOL_URL_ROOT.'/projet/card.php?socid='.$societe->id.'&action=create">'.$langs->trans("AddProject").'</a>';
    +		$urloption='?action=create';
    +		$url = dol_buildpath('comm/action/card.php',2).$urloption;
    +
    +		// update task list
    +		print "\n".'<script type="text/javascript">';
    +		print '$(document).ready(function () {
    +	               $("#projectid").change(function () {
    +                        var url = "'.$url.'&projectid="+$("#projectid").val();
    +                        $.get(url, function(data) {
    +                            console.log($( data ).find("#taskid").html());
    +                            if (data) $("#taskid").html( $( data ).find("#taskid").html() ).select2();
    +                        })
    +                  });
    +               })';
    +		print '</script>'."\n";
    +
    +		print '</td></tr>';
    +
    +		print '<tr><td class="titlefieldcreate">'.$langs->trans("Task").'</td><td id="project-task-input-container" >';
    +
    +		$projectsListId=false;
    +		if(!empty($projectid)){ $projectsListId=$projectid; }
    +		$tid=GETPOST("projecttaskid")?GETPOST("projecttaskid"):'';
    +		$formproject->selectTasks((! empty($societe->id)?$societe->id:-1), $tid, 'taskid', 24, 0, '1', 1, 0, 0, 'maxwidth500',$projectsListId);
     		print '</td></tr>';
     	}
     	if (!empty($origin) && !empty($originid))
    @@ -1057,30 +1106,38 @@ if ($id > 0)
     
     		// Date start
     		print '<tr><td class="nowrap"><span class="fieldrequired">'.$langs->trans("DateActionStart").'</span></td><td colspan="3">';
    -		if (GETPOST("afaire") == 1) $form->select_date($datep?$datep:$object->datep,'ap',1,1,0,"action",1,1,0,0,'fulldaystart');
    -		else if (GETPOST("afaire") == 2) $form->select_date($datep?$datep:$object->datep,'ap',1,1,1,"action",1,1,0,0,'fulldaystart');
    -		else $form->select_date($datep?$datep:$object->datep,'ap',1,1,1,"action",1,1,0,0,'fulldaystart');
    +		if (GETPOST("afaire") == 1) {
    +            print $form->selectDate($datep?$datep:$object->datep, 'ap', 1, 1, 0, "action", 1, 1, 0, 'fulldaystart');
    +        } elseif (GETPOST("afaire") == 2) {
    +            print $form->selectDate($datep?$datep:$object->datep, 'ap', 1, 1, 1, "action", 1, 1, 0, 'fulldaystart');
    +        } else {
    +            print $form->selectDate($datep?$datep:$object->datep, 'ap', 1, 1, 1, "action", 1, 1, 0, 'fulldaystart');
    +        }
     		print '</td></tr>';
     		// Date end
     		print '<tr><td>'.$langs->trans("DateActionEnd").'</td><td colspan="3">';
    -		if (GETPOST("afaire") == 1) $form->select_date($datef?$datef:$object->datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend');
    -		else if (GETPOST("afaire") == 2) $form->select_date($datef?$datef:$object->datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend');
    -		//else $form->select_date($datef?$datef:$object->datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend','ap');
    -		else $form->select_date($datef?$datef:$object->datef,'p2',1,1,1,"action",1,1,0,0,'fulldayend');
    +		if (GETPOST("afaire") == 1) {
    +            print $form->selectDate($datef?$datef:$object->datef, 'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend');
    +        } elseif (GETPOST("afaire") == 2) {
    +            print $form->selectDate($datef?$datef:$object->datef,'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend');
    +        } else {
    +            print $form->selectDate($datef?$datef:$object->datef,'p2', 1, 1, 1, "action", 1, 1, 0, 'fulldayend');
    +        }
     		print '</td></tr>';
     
    -		$userepeatevent=($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0);	// Dev in progress
    +        // Dev in progress
    +		$userepeatevent=($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0);
     		if ($userepeatevent)
     		{
     			// Repeat
     			print '<tr><td>'.$langs->trans("RepeatEvent").'</td><td colspan="3">';
     			print '<input type="hidden" name="recurid" value="'.$object->recurid.'">';
    -			$arrayrecurrulefreq=array(
    -					'no'=>$langs->trans("No"),
    -					'MONTHLY'=>$langs->trans("EveryMonth"),
    -					'WEEKLY'=>$langs->trans("EveryWeek"),
    -					//'DAYLY'=>$langs->trans("EveryDay")
    -					);
    +			$arrayrecurrulefreq = array(
    +				'no'=>$langs->trans("No"),
    +				'MONTHLY'=>$langs->trans("EveryMonth"),
    +				'WEEKLY'=>$langs->trans("EveryWeek"),
    +				//'DAYLY'=>$langs->trans("EveryDay"),
    +			);
     			$selectedrecurrulefreq='no';
     			$selectedrecurrulebymonthday='';
     			$selectedrecurrulebyday='';
    @@ -1173,7 +1230,7 @@ if ($id > 0)
     	    		$listofuserid=json_decode($_SESSION['assignedtouser'], true);
     	    	}
     	    }
    -	    $listofcontactid=$object->socpeopleassigned;	// Contact assigned (not used yet)
    +	    $listofcontactid=$object->socpeopleassigned;	// Contact assigned
     	    $listofotherid=$object->otherassigned;			// Other undefined email (not used yet)
     
     	    print '<tr><td class="tdtop nowrap fieldrequired">'.$langs->trans("ActionAssignedTo").'</td><td colspan="3">';
    @@ -1245,17 +1302,47 @@ if ($id > 0)
     		print '<tr><td class="titlefieldcreate nowrap">'.$langs->trans("Priority").'</td><td>';
     		print '<input type="text" name="priority" value="'.($object->priority?$object->priority:'').'" size="5">';
     		print '</td></tr>';
    -
     		// Object linked
     		if (! empty($object->fk_element) && ! empty($object->elementtype))
     		{
     			include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
                 print '<tr>';
     			print '<td>'.$langs->trans("LinkedObject").'</td>';
    -			print '<td>'.dolGetElementUrl($object->fk_element,$object->elementtype,1);
    -			print '<input type="hidden" name="fk_element" value="'.$object->fk_element.'">';
    -			print '<input type="hidden" name="elementtype" value="'.$object->elementtype.'">';
    -			print '</td>';
    +
    +			if ($object->elementtype == 'task' && ! empty($conf->projet->enabled))
    +			{
    +			    print '<td id="project-task-input-container" >';
    +
    +			    $urloption='?action=create'; // we use create not edit for more flexibility
    +			    $url = DOL_URL_ROOT.'/comm/action/card.php'.$urloption;
    +
    +			    // update task list
    +			    print "\n".'<script type="text/javascript" >';
    +			    print '$(document).ready(function () {
    +	               $("#projectid").change(function () {
    +                        var url = "'.$url.'&projectid="+$("#projectid").val();
    +                        $.get(url, function(data) {
    +                            console.log($( data ).find("#fk_element").html());
    +                            if (data) $("#fk_element").html( $( data ).find("#taskid").html() ).select2();
    +                        })
    +                  });
    +               })';
    +			    print '</script>'."\n";
    +
    +			    $formproject->selectTasks((! empty($societe->id)?$societe->id:-1), $object->fk_element, 'fk_element', 24, 0, 0, 1, 0, 0, 'maxwidth500',$object->fk_project);
    +			    print '<input type="hidden" name="elementtype" value="'.$object->elementtype.'">';
    +
    +			    print '</td>';
    +			}
    +			else
    +			{
    +			    print '<td>';
    +			    print dolGetElementUrl($object->fk_element,$object->elementtype,1);
    +			    print '<input type="hidden" name="fk_element" value="'.$object->fk_element.'">';
    +			    print '<input type="hidden" name="elementtype" value="'.$object->elementtype.'">';
    +			    print '</td>';
    +			}
    +
     			print '</tr>';
     		}
     
    @@ -1522,8 +1609,9 @@ if ($id > 0)
     		print ($object->priority?$object->priority:'');
     		print '</td></tr>';
     
    -		// Object linked
    -		if (! empty($object->fk_element) && ! empty($object->elementtype))
    +		// Object linked (if link is for thirdparty, contact, project it is a recording error. We should not have links in link table
    +		// for such objects because there is already a dedicated field into table llx_actioncomm.
    +		if (! empty($object->fk_element) && ! empty($object->elementtype) && ! in_array($object->elementtype, array('societe','contact','project')))
     		{
     			include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     			print '<tr><td>'.$langs->trans("LinkedObject").'</td>';
    @@ -1570,7 +1658,7 @@ if ($id > 0)
     			}
     			else
     			{
    -				print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans("Modify").'</a></div>';
    +				print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans("Modify").'</a></div>';
     			}
     
     			if ($user->rights->agenda->allactions->create ||
    @@ -1580,7 +1668,7 @@ if ($id > 0)
     			}
     			else
     			{
    -				print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans("ToClone").'</a></div>';
    +				print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans("ToClone").'</a></div>';
     			}
     
     			if ($user->rights->agenda->allactions->delete ||
    @@ -1590,7 +1678,7 @@ if ($id > 0)
     			}
     			else
     			{
    -				print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans("Delete").'</a></div>';
    +				print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans("Delete").'</a></div>';
     			}
     		}
     	}
    @@ -1625,7 +1713,6 @@ if ($id > 0)
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php
    index be8ad550b39..05d5fa43c86 100644
    --- a/htdocs/comm/action/class/actioncomm.class.php
    +++ b/htdocs/comm/action/class/actioncomm.class.php
    @@ -1,9 +1,11 @@
     <?php
    -/* Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2011-2017 Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2015	   Marcos García		<marcosgdf@gmail.com>
    +/* Copyright (C) 2002-2004  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2011  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2011-2017  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2015	    Marcos García		    <marcosgdf@gmail.com>
    + * Copyright (C) 2018	    Nicolas ZABOURI	        <info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -33,15 +35,29 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class ActionComm extends CommonObject
     {
    +    /**
    +     * @var string ID to identify managed object
    +     */
         public $element='action';
    +
    +    /**
    +     * @var string Name of table without prefix where object is stored
    +     */
         public $table_element = 'actioncomm';
    +
         public $table_rowid = 'id';
    -    public $picto='action';
    +
    +    /**
    +     * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +     */
    +    public $picto = 'action';
    +
         /**
          * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
          * @var int
          */
         public $ismultientitymanaged = 1;
    +
         /**
          * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user, 2=Same than 1 but accept record if fksoc is empty
          * @var integer
    @@ -52,7 +68,7 @@ class ActionComm extends CommonObject
          * Id of the event
          * @var int
          */
    -    var $id;
    +    public $id;
     
         /**
          * Id of the event. Use $id as possible
    @@ -60,23 +76,20 @@ class ActionComm extends CommonObject
          */
         public $ref;
     
    -    var $type_id;		// Id into parent table llx_c_actioncomm (used only if option to use type is set)
    -    var $type_code;		// Code into parent table llx_c_actioncomm (used only if option to use type is set). With default setup, should be AC_OTH_AUTO or AC_OTH.
    -    var $type;			// Label into parent table llx_c_actioncomm (used only if option to use type is set)
    -    var $type_color;	// Color into parent table llx_c_actioncomm (used only if option to use type is set)
    -    var $code;			// Free code to identify action. Ie: Agenda trigger add here AC_TRIGGERNAME ('AC_COMPANY_CREATE', 'AC_PROPAL_VALIDATE', ...)
    -
    -    var $label;
    +    public $type_id;		// Id into parent table llx_c_actioncomm (used only if option to use type is set)
    +    public $type_code;		// Code into parent table llx_c_actioncomm (used only if option to use type is set). With default setup, should be AC_OTH_AUTO or AC_OTH.
    +    public $type_label;
    +    public $type;			// Label into parent table llx_c_actioncomm (used only if option to use type is set)
    +    public $type_color;	// Color into parent table llx_c_actioncomm (used only if option to use type is set)
    +    public $code;			// Free code to identify action. Ie: Agenda trigger add here AC_TRIGGERNAME ('AC_COMPANY_CREATE', 'AC_PROPAL_VALIDATE', ...)
     
         /**
    -     * @var string
    -     * @deprecated Use $label
    -     * @see label
    +     * @var string Agenda event label
          */
    -    public $libelle;
    +    public $label;
     
    -    var $datec;			// Date creation record (datec)
    -    var $datem;			// Date modification record (tms)
    +    public $datec;			// Date creation record (datec)
    +    public $datem;			// Date modification record (tms)
     
         /**
          * Object user that create action
    @@ -84,7 +97,7 @@ class ActionComm extends CommonObject
          * @deprecated
          * @see authorid
          */
    -    var $author;
    +    public $author;
     
         /**
          * Object user that modified action
    @@ -92,39 +105,49 @@ class ActionComm extends CommonObject
          * @deprecated
          * @see usermodid
          */
    -    var $usermod;
    -    var $authorid;		// Id user that create action
    -    var $usermodid;		// Id user that modified action
    +    public $usermod;
     
    -    var $datep;			// Date action start (datep)
    -    var $datef;			// Date action end (datep2)
    +    /**
    +     * Id user that create action
    +     * @var int
    +     */
    +    public $authorid;
    +
    +    /**
    +     * Id user that modified action
    +     * @var int
    +     */
    +    public $usermodid;
    +
    +    public $datep;			// Date action start (datep)
    +    public $datef;			// Date action end (datep2)
     
         /**
          * @var int -1=Unkown duration
          * @deprecated
          */
    -    var $durationp = -1;
    -    var $fulldayevent = 0;    // 1=Event on full day
    +    public $durationp = -1;
    +    public $fulldayevent = 0;    // 1=Event on full day
     
         /**
          * Milestone
          * @var int
          * @deprecated Milestone is already event with end date = start date
          */
    -    var $punctual = 1;
    -    var $percentage;    // Percentage
    -    var $location;      // Location
    +    public $punctual = 1;
    +    public $percentage;    // Percentage
    +    public $location;      // Location
     
    -	var $transparency;	// Transparency (ical standard). Used to say if people assigned to event are busy or not by event. 0=available, 1=busy, 2=busy (refused events)
    -    var $priority;      // Small int (0 By default)
    +	public $transparency;	// Transparency (ical standard). Used to say if people assigned to event are busy or not by event. 0=available, 1=busy, 2=busy (refused events)
    +    public $priority;      // Small int (0 By default)
     
    -	var $userassigned = array();	// Array of user ids
    -    var $userownerid;	// Id of user owner = fk_user_action into table
    -    var $userdoneid;	// Id of user done (deprecated)
    +	public $userassigned = array();	// Array of user ids
    +    public $userownerid;	// Id of user owner = fk_user_action into table
    +    public $userdoneid;	// Id of user done (deprecated)
     
    -    var $socpeopleassigned = array(); // Array of contact ids
    +    public $socpeopleassigned = array(); // Array of contact ids
     
    -    var $otherassigned = array(); // Array of other contact emails (not user, not contact)
    +    public $otherassigned = array(); // Array of other contact emails (not user, not contact)
     
     
     	/**
    @@ -133,7 +156,7 @@ class ActionComm extends CommonObject
          * @deprecated
          * @see userownerid
          */
    -    var $usertodo;
    +    public $usertodo;
     
         /**
          * Object user that did action
    @@ -141,10 +164,10 @@ class ActionComm extends CommonObject
          * @deprecated
          * @see userdoneid
          */
    -    var $userdone;
    +    public $userdone;
     
    -    var $socid;
    -    var $contactid;
    +    public $socid;
    +    public $contactid;
     
         /**
          * Company linked to action (optional)
    @@ -152,7 +175,7 @@ class ActionComm extends CommonObject
          * @deprecated
          * @see socid
          */
    -    var $societe;
    +    public $societe;
     
         /**
          * Contact linked to action (optional)
    @@ -160,28 +183,28 @@ class ActionComm extends CommonObject
          * @deprecated
          * @see contactid
          */
    -    var $contact;
    +    public $contact;
     
         // Properties for links to other objects
    -    var $fk_element;    // Id of record
    -    var $elementid;    // Id of record alternative for API
    -    var $elementtype;   // Type of record. This if property ->element of object linked to.
    +    public $fk_element;    // Id of record
    +    public $elementid;    // Id of record alternative for API
    +    public $elementtype;   // Type of record. This if property ->element of object linked to.
     
         // Ical
    -    var $icalname;
    -    var $icalcolor;
    +    public $icalname;
    +    public $icalcolor;
     
    -    var $actions=array();
    +    public $actions=array();
     
         // Fields for emails
    -    var $email_msgid;
    -    var $email_from;
    -    var $email_sender;
    -    var $email_to;
    -    var $email_tocc;
    -    var $email_tobcc;
    -    var $email_subject;
    -    var $errors_to;
    +    public $email_msgid;
    +    public $email_from;
    +    public $email_sender;
    +    public $email_to;
    +    public $email_tocc;
    +    public $email_tobcc;
    +    public $email_subject;
    +    public $errors_to;
     
     
         /**
    @@ -311,7 +334,16 @@ class ActionComm extends CommonObject
             $sql.= "fk_element,";
             $sql.= "elementtype,";
             $sql.= "entity,";
    -        $sql.= "extraparams";
    +        $sql.= "extraparams,";
    +		// Fields emails
    +        $sql.= "email_msgid,";
    +        $sql.= "email_from,";
    +        $sql.= "email_sender,";
    +        $sql.= "email_to,";
    +        $sql.= "email_tocc,";
    +        $sql.= "email_tobcc,";
    +        $sql.= "email_subject,";
    +        $sql.= "errors_to";
             $sql.= ") VALUES (";
             $sql.= "'".$this->db->idate($now)."', ";
             $sql.= (strval($this->datep)!=''?"'".$this->db->idate($this->datep)."'":"null").", ";
    @@ -321,7 +353,7 @@ class ActionComm extends CommonObject
             $sql.= ($code?("'".$code."'"):"null").", ";
             $sql.= ((isset($this->socid) && $this->socid > 0) ? $this->socid:"null").", ";
             $sql.= ((isset($this->fk_project) && $this->fk_project > 0) ? $this->fk_project:"null").", ";
    -        $sql.= " '".$this->db->escape($this->note)."', ";
    +        $sql.= " '".$this->db->escape($this->note_private?$this->note_private:$this->note)."', ";
             $sql.= ((isset($this->contactid) && $this->contactid > 0) ? $this->contactid:"null").", ";
             $sql.= (isset($user->id) && $user->id > 0 ? $user->id:"null").", ";
             $sql.= ($userownerid>0 ? $userownerid:"null").", ";
    @@ -331,7 +363,16 @@ class ActionComm extends CommonObject
             $sql.= (! empty($this->fk_element)?$this->fk_element:"null").", ";
             $sql.= (! empty($this->elementtype)?"'".$this->db->escape($this->elementtype)."'":"null").", ";
             $sql.= $conf->entity.",";
    -        $sql.= (! empty($this->extraparams)?"'".$this->db->escape($this->extraparams)."'":"null");
    +        $sql.= (! empty($this->extraparams)?"'".$this->db->escape($this->extraparams)."'":"null").", ";
    +        // Fields emails
    +        $sql.= (! empty($this->email_msgid)?"'".$this->db->escape($this->email_msgid)."'":"null").", ";
    +        $sql.= (! empty($this->email_from)?"'".$this->db->escape($this->email_from)."'":"null").", ";
    +        $sql.= (! empty($this->email_sender)?"'".$this->db->escape($this->email_sender)."'":"null").", ";
    +        $sql.= (! empty($this->email_to)?"'".$this->db->escape($this->email_to)."'":"null").", ";
    +        $sql.= (! empty($this->email_tocc)?"'".$this->db->escape($this->email_tocc)."'":"null").", ";
    +        $sql.= (! empty($this->email_tobcc)?"'".$this->db->escape($this->email_tobcc)."'":"null").", ";
    +        $sql.= (! empty($this->email_subject)?"'".$this->db->escape($this->email_subject)."'":"null").", ";
    +        $sql.= (! empty($this->errors_to)?"'".$this->db->escape($this->errors_to)."'":"null");
             $sql.= ")";
     
             dol_syslog(get_class($this)."::add", LOG_DEBUG);
    @@ -378,7 +419,6 @@ class ActionComm extends CommonObject
     							$error++;
     							$this->errors[]=$this->db->lasterror();
     						}
    -
     					}
     				}
     			}
    @@ -423,7 +463,6 @@ class ActionComm extends CommonObject
                 $this->error=$this->db->lasterror();
                 return -1;
             }
    -
         }
     
     	/**
    @@ -451,8 +490,6 @@ class ActionComm extends CommonObject
         {
             global $db, $user, $langs, $conf, $hookmanager;
     
    -        $this->context['createfromclone']='createfromclone';
    -
             $error=0;
             $now=dol_now();
     
    @@ -485,7 +522,8 @@ class ActionComm extends CommonObject
     		}
     
             // Create clone
    -        $result=$this->create($fuser);
    +		$this->context['createfromclone']='createfromclone';
    +		$result=$this->create($fuser);
             if ($result < 0) $error++;
     
             if (! $error)
    @@ -592,6 +630,7 @@ class ActionComm extends CommonObject
                     $this->datem   				= $this->db->jdate($obj->datem);
     
                     $this->note					= $obj->note;
    +                $this->note_private			= $obj->note;
                     $this->percentage			= $obj->percentage;
     
                     $this->authorid             = $obj->fk_user_author;
    @@ -634,7 +673,6 @@ class ActionComm extends CommonObject
             }
     
             return $num;
    -
         }
     
     	/**
    @@ -682,6 +720,7 @@ class ActionComm extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Initialize this->userassigned array with list of id of user assigned to event
          *
    @@ -689,6 +728,7 @@ class ActionComm extends CommonObject
          */
         function fetch_userassigned()
         {
    +        // phpcs:enable
             $sql ="SELECT fk_actioncomm, element_type, fk_element, answer_status, mandatory, transparency";
     		$sql.=" FROM ".MAIN_DB_PREFIX."actioncomm_resources";
     		$sql.=" WHERE element_type = 'user' AND fk_actioncomm = ".$this->id;
    @@ -840,7 +880,7 @@ class ActionComm extends CommonObject
             $sql.= ", datep = ".(strval($this->datep)!='' ? "'".$this->db->idate($this->datep)."'" : 'null');
             $sql.= ", datep2 = ".(strval($this->datef)!='' ? "'".$this->db->idate($this->datef)."'" : 'null');
             $sql.= ", durationp = ".(isset($this->durationp) && $this->durationp >= 0 && $this->durationp != ''?"'".$this->db->escape($this->durationp)."'":"null");	// deprecated
    -        $sql.= ", note = ".($this->note ? "'".$this->db->escape($this->note)."'":"null");
    +        $sql.= ", note = '".$this->db->escape($this->note_private?$this->note_private:$this->note)."'";
             $sql.= ", fk_project =". ($this->fk_project > 0 ? $this->fk_project:"null");
             $sql.= ", fk_soc =". ($socid > 0 ? $socid:"null");
             $sql.= ", fk_contact =". ($contactid > 0 ? $contactid:"null");
    @@ -913,7 +953,6 @@ class ActionComm extends CommonObject
     							$error++;
     							$this->errors[]=$this->db->lasterror();
     						}
    -
     					}
     				}
     			}
    @@ -1004,6 +1043,7 @@ class ActionComm extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Load indicators for dashboard (this->nbtodo and this->nbtodolate)
          *
    @@ -1013,7 +1053,8 @@ class ActionComm extends CommonObject
          */
         function load_board($user, $load_state_board=0)
         {
    -    	global $conf, $langs;
    +        // phpcs:enable
    +        global $conf, $langs;
     
         	if(empty($load_state_board)) $sql = "SELECT a.id, a.datep as dp";
         	else {
    @@ -1128,6 +1169,7 @@ class ActionComm extends CommonObject
             return $this->LibStatut($this->percentage,$mode,$hidenastatus,$this->datep);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *		Return label of action status
          *
    @@ -1139,63 +1181,64 @@ class ActionComm extends CommonObject
          */
         function LibStatut($percent,$mode,$hidenastatus=0,$datestart='')
         {
    +        // phpcs:enable
             global $langs;
     
             if ($mode == 0)
             {
             	if ($percent==-1 && ! $hidenastatus) return $langs->trans('StatusNotApplicable');
    -        	else if ($percent==0) return $langs->trans('StatusActionToDo').' (0%)';
    -        	else if ($percent > 0 && $percent < 100) return $langs->trans('StatusActionInProcess').' ('.$percent.'%)';
    -        	else if ($percent >= 100) return $langs->trans('StatusActionDone').' (100%)';
    +        	elseif ($percent==0) return $langs->trans('StatusActionToDo').' (0%)';
    +        	elseif ($percent > 0 && $percent < 100) return $langs->trans('StatusActionInProcess').' ('.$percent.'%)';
    +        	elseif ($percent >= 100) return $langs->trans('StatusActionDone').' (100%)';
             }
    -        else if ($mode == 1)
    +        elseif ($mode == 1)
             {
             	if ($percent==-1 && ! $hidenastatus) return $langs->trans('StatusNotApplicable');
    -        	else if ($percent==0) return $langs->trans('StatusActionToDo');
    -        	else if ($percent > 0 && $percent < 100) return $percent.'%';
    -        	else if ($percent >= 100) return $langs->trans('StatusActionDone');
    +        	elseif ($percent==0) return $langs->trans('StatusActionToDo');
    +        	elseif ($percent > 0 && $percent < 100) return $percent.'%';
    +        	elseif ($percent >= 100) return $langs->trans('StatusActionDone');
             }
    -        else if ($mode == 2)
    +        elseif ($mode == 2)
             {
             	if ($percent==-1 && ! $hidenastatus) return img_picto($langs->trans('StatusNotApplicable'),'statut9').' '.$langs->trans('StatusNotApplicable');
    -        	else if ($percent==0) return img_picto($langs->trans('StatusActionToDo'),'statut1').' '.$langs->trans('StatusActionToDo');
    -        	else if ($percent > 0 && $percent < 100) return img_picto($langs->trans('StatusActionInProcess'),'statut3').' '. $percent.'%';
    -        	else if ($percent >= 100) return img_picto($langs->trans('StatusActionDone'),'statut6').' '.$langs->trans('StatusActionDone');
    +        	elseif ($percent==0) return img_picto($langs->trans('StatusActionToDo'),'statut1').' '.$langs->trans('StatusActionToDo');
    +        	elseif ($percent > 0 && $percent < 100) return img_picto($langs->trans('StatusActionInProcess'),'statut3').' '. $percent.'%';
    +        	elseif ($percent >= 100) return img_picto($langs->trans('StatusActionDone'),'statut6').' '.$langs->trans('StatusActionDone');
             }
    -        else if ($mode == 3)
    +        elseif ($mode == 3)
             {
             	if ($percent==-1 && ! $hidenastatus) return img_picto($langs->trans("Status").': '.$langs->trans('StatusNotApplicable'),'statut9');
    -        	else if ($percent==0) return img_picto($langs->trans("Status").': '.$langs->trans('StatusActionToDo').' (0%)','statut1');
    -        	else if ($percent > 0 && $percent < 100) return img_picto($langs->trans("Status").': '.$langs->trans('StatusActionInProcess').' ('.$percent.'%)','statut3');
    -        	else if ($percent >= 100) return img_picto($langs->trans("Status").': '.$langs->trans('StatusActionDone').' (100%)','statut6');
    +        	elseif ($percent==0) return img_picto($langs->trans("Status").': '.$langs->trans('StatusActionToDo').' (0%)','statut1');
    +        	elseif ($percent > 0 && $percent < 100) return img_picto($langs->trans("Status").': '.$langs->trans('StatusActionInProcess').' ('.$percent.'%)','statut3');
    +        	elseif ($percent >= 100) return img_picto($langs->trans("Status").': '.$langs->trans('StatusActionDone').' (100%)','statut6');
             }
    -        else if ($mode == 4)
    +        elseif ($mode == 4)
             {
             	if ($percent==-1 && ! $hidenastatus) return img_picto($langs->trans('StatusNotApplicable'),'statut9').' '.$langs->trans('StatusNotApplicable');
    -        	else if ($percent==0) return img_picto($langs->trans('StatusActionToDo'),'statut1').' '.$langs->trans('StatusActionToDo').' (0%)';
    -        	else if ($percent > 0 && $percent < 100) return img_picto($langs->trans('StatusActionInProcess'),'statut3').' '.$langs->trans('StatusActionInProcess').' ('.$percent.'%)';
    -        	else if ($percent >= 100) return img_picto($langs->trans('StatusActionDone'),'statut6').' '.$langs->trans('StatusActionDone').' (100%)';
    +        	elseif ($percent==0) return img_picto($langs->trans('StatusActionToDo'),'statut1').' '.$langs->trans('StatusActionToDo').' (0%)';
    +        	elseif ($percent > 0 && $percent < 100) return img_picto($langs->trans('StatusActionInProcess'),'statut3').' '.$langs->trans('StatusActionInProcess').' ('.$percent.'%)';
    +        	elseif ($percent >= 100) return img_picto($langs->trans('StatusActionDone'),'statut6').' '.$langs->trans('StatusActionDone').' (100%)';
             }
    -        else if ($mode == 5)
    +        elseif ($mode == 5)
             {
             	if ($percent==-1 && ! $hidenastatus) return img_picto($langs->trans('StatusNotApplicable'),'statut9');
    -        	else if ($percent==0) return '0% '.img_picto($langs->trans('StatusActionToDo'),'statut1');
    -        	else if ($percent > 0 && $percent < 100) return $percent.'% '.img_picto($langs->trans('StatusActionInProcess').' - '.$percent.'%','statut3');
    -        	else if ($percent >= 100) return $langs->trans('StatusActionDone').' '.img_picto($langs->trans('StatusActionDone'),'statut6');
    +        	elseif ($percent==0) return '0% '.img_picto($langs->trans('StatusActionToDo'),'statut1');
    +        	elseif ($percent > 0 && $percent < 100) return $percent.'% '.img_picto($langs->trans('StatusActionInProcess').' - '.$percent.'%','statut3');
    +        	elseif ($percent >= 100) return $langs->trans('StatusActionDone').' '.img_picto($langs->trans('StatusActionDone'),'statut6');
             }
    -        else if ($mode == 6)
    +        elseif ($mode == 6)
             {
             	if ($percent==-1 && ! $hidenastatus) return $langs->trans('StatusNotApplicable').' '.img_picto($langs->trans('StatusNotApplicable'),'statut9');
    -        	else if ($percent==0) return $langs->trans('StatusActionToDo').' (0%) '.img_picto($langs->trans('StatusActionToDo'),'statut1');
    -        	else if ($percent > 0 && $percent < 100) return $langs->trans('StatusActionInProcess').' ('.$percent.'%) '.img_picto($langs->trans('StatusActionInProcess').' - '.$percent.'%','statut3');
    -        	else if ($percent >= 100) return $langs->trans('StatusActionDone').' (100%) '.img_picto($langs->trans('StatusActionDone'),'statut6');
    +        	elseif ($percent==0) return $langs->trans('StatusActionToDo').' (0%) '.img_picto($langs->trans('StatusActionToDo'),'statut1');
    +        	elseif ($percent > 0 && $percent < 100) return $langs->trans('StatusActionInProcess').' ('.$percent.'%) '.img_picto($langs->trans('StatusActionInProcess').' - '.$percent.'%','statut3');
    +        	elseif ($percent >= 100) return $langs->trans('StatusActionDone').' (100%) '.img_picto($langs->trans('StatusActionDone'),'statut6');
             }
    -        else if ($mode == 7)
    +        elseif ($mode == 7)
             {
                 if ($percent==-1 && ! $hidenastatus) return img_picto($langs->trans('StatusNotApplicable'),'statut9');
    -            else if ($percent==0) return '0% '.img_picto($langs->trans('StatusActionToDo'),'statut1');
    -            else if ($percent > 0 && $percent < 100) return $percent.'% '.img_picto($langs->trans('StatusActionInProcess').' - '.$percent.'%','statut3');
    -            else if ($percent >= 100) return img_picto($langs->trans('StatusActionDone'),'statut6');
    +            elseif ($percent==0) return '0% '.img_picto($langs->trans('StatusActionToDo'),'statut1');
    +            elseif ($percent > 0 && $percent < 100) return $percent.'% '.img_picto($langs->trans('StatusActionInProcess').' - '.$percent.'%','statut3');
    +            elseif ($percent >= 100) return img_picto($langs->trans('StatusActionDone'),'statut6');
             }
     
             return '';
    @@ -1220,7 +1263,10 @@ class ActionComm extends CommonObject
     
     		if (! empty($conf->dol_no_mouse_hover)) $notooltip=1;   // Force disable tooltips
     
    -		$label = $this->label;
    +                if ((!$user->rights->agenda->allactions->read && $this->author->id != $user->id) || (!$user->rights->agenda->myactions->read && $this->author->id == $user->id))
    +                    $option = 'nolink';
    +
    +                $label = $this->label;
     		if (empty($label)) $label=$this->libelle;   // For backward compatibility
     
     		$result='';
    @@ -1245,7 +1291,8 @@ class ActionComm extends CommonObject
     			$tooltip .= '<br><b>' . $langs->trans('Type') . ':</b> ' . $labeltype;
     		if (! empty($this->location))
     			$tooltip .= '<br><b>' . $langs->trans('Location') . ':</b> ' . $this->location;
    -
    +		if (! empty($this->note))
    +			$tooltip .= '<br><b>' . $langs->trans('Note') . ':</b> ' . (dol_textishtml($this->note) ? str_replace(array("\r","\n"), "", $this->note) : $this->note);
     		$linkclose='';
     		if (! empty($conf->global->AGENDA_USE_EVENT_TYPE) && $this->type_color)
     			$linkclose = ' style="background-color:#'.$this->type_color.'"';
    @@ -1286,6 +1333,10 @@ class ActionComm extends CommonObject
     		$linkstart.=$linkclose.'>';
     		$linkend='</a>';
     
    +		if ($option == 'nolink') {
    +			$linkstart = '';
    +			$linkend = '';
    +		}
     		//print 'rrr'.$this->libelle.'rrr'.$this->label.'rrr'.$withpicto;
     
             if ($withpicto == 2)
    @@ -1329,6 +1380,7 @@ class ActionComm extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *		Export events from database into a cal file.
          *
    @@ -1341,11 +1393,12 @@ class ActionComm extends CommonObject
          */
         function build_exportfile($format,$type,$cachedelay,$filename,$filters)
         {
    +        // phpcs:enable
             global $conf,$langs,$dolibarr_main_url_root,$mysoc;
     
    -        require_once (DOL_DOCUMENT_ROOT ."/core/lib/xcal.lib.php");
    -        require_once (DOL_DOCUMENT_ROOT ."/core/lib/date.lib.php");
    -        require_once (DOL_DOCUMENT_ROOT ."/core/lib/files.lib.php");
    +        require_once DOL_DOCUMENT_ROOT ."/core/lib/xcal.lib.php";
    +        require_once DOL_DOCUMENT_ROOT ."/core/lib/date.lib.php";
    +        require_once DOL_DOCUMENT_ROOT ."/core/lib/files.lib.php";
     
             dol_syslog(get_class($this)."::build_exportfile Build export file format=".$format.", type=".$type.", cachedelay=".$cachedelay.", filename=".$filename.", filters size=".count($filters), LOG_DEBUG);
     
    @@ -1533,8 +1586,8 @@ class ActionComm extends CommonObject
     
                 // Write file
                 if ($format == 'vcal') $result=build_calfile($format,$title,$desc,$eventarray,$outputfiletmp);
    -            if ($format == 'ical') $result=build_calfile($format,$title,$desc,$eventarray,$outputfiletmp);
    -            if ($format == 'rss')  $result=build_rssfile($format,$title,$desc,$eventarray,$outputfiletmp);
    +            elseif ($format == 'ical') $result=build_calfile($format,$title,$desc,$eventarray,$outputfiletmp);
    +            elseif ($format == 'rss')  $result=build_rssfile($format,$title,$desc,$eventarray,$outputfiletmp);
     
                 if ($result >= 0)
                 {
    @@ -1644,7 +1697,13 @@ class ActionComm extends CommonObject
         	$this->output = '';
     		$this->error='';
     
    -    	if (empty($conf->global->AGENDA_REMINDER_EMAIL))
    +    	if (empty($conf->agenda->enabled))	// Should not happen. If module disabled, cron job should not be visible.
    +		{
    +			$langs->load("agenda");
    +			$this->output = $langs->trans('ModuleNotEnabled', $langs->transnoentitiesnoconv("Agenda"));
    +			return 0;
    +		}
    +		if (empty($conf->global->AGENDA_REMINDER_EMAIL))
         	{
         		$langs->load("agenda");
         		$this->output = $langs->trans('EventRemindersByEmailNotEnabled', $langs->transnoentitiesnoconv("Agenda"));
    @@ -1659,8 +1718,6 @@ class ActionComm extends CommonObject
     
     		// TODO Scan events of type 'email' into table llx_actioncomm_reminder with status todo, send email, then set status to done
     
    -
    -
         	// Delete also very old past events (we do not keep more than 1 month record in past)
     		$sql = "DELETE FROM ".MAIN_DB_PREFIX."actioncomm_reminder WHERE dateremind < '".$this->db->jdate($now - (3600 * 24 * 32))."'";
     		$this->db->query($sql);
    @@ -1669,6 +1726,4 @@ class ActionComm extends CommonObject
     
         	return $error;
         }
    -
     }
    -
    diff --git a/htdocs/comm/action/class/actioncommreminder.class.php b/htdocs/comm/action/class/actioncommreminder.class.php
    index 4873db461f6..6631d0e375d 100644
    --- a/htdocs/comm/action/class/actioncommreminder.class.php
    +++ b/htdocs/comm/action/class/actioncommreminder.class.php
    @@ -34,14 +34,17 @@ class ActionCommReminder extends CommonObject
     	 * @var string ID to identify managed object
     	 */
     	public $element = 'actioncomm_reminder';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'actioncomm_reminder';
    +
     	/**
     	 * @var array  Does actioncommreminder support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     	 */
     	public $ismultientitymanaged = 0;
    +
     	/**
     	 * @var string String with name of icon for actioncommreminder. Must be the part after the 'object_' into object_actioncommreminder.png
     	 */
    @@ -78,13 +81,28 @@ class ActionCommReminder extends CommonObject
     		'offsetunit' => array('type'=>'varchar(1)', 'label'=>'OffsetUnit', 'visible'=>1, 'enabled'=>1, 'position'=>57, 'notnull'=>1, 'comment'=>"m, h, d, w",),
     		'status' => array('type'=>'integer', 'label'=>'Status', 'visible'=>1, 'enabled'=>1, 'position'=>1000, 'notnull'=>1, 'default'=>0, 'index'=>0, 'arrayofkeyval'=>array('0'=>'ToDo', '1'=>'Done')),
     	);
    +
    +	/**
    +	 * @var int ID
    +	 */
     	public $rowid;
    +
     	public $dateremind;
     	public $typeremind;
    +
    +	/**
    +	 * @var int User ID
    +	 */
     	public $fk_user;
    +
     	public $offsetvalue;
     	public $offsetunit;
    +
    +	/**
    +	 * @var int Status
    +	 */
     	public $status;
    +
     	// END MODULEBUILDER PROPERTIES
     
     
    @@ -165,6 +183,7 @@ class ActionCommReminder extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return the status
     	 *
    @@ -174,43 +193,38 @@ class ActionCommReminder extends CommonObject
     	 */
     	static function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
    -		if ($mode == 0)
    -		{
    -			$prefix='';
    -			if ($status == 1) return $langs->trans('Done');
    -			if ($status == 0) return $langs->trans('ToDo');
    -		}
    -		if ($mode == 1)
    +		if ($mode == 0 || $mode == 1)
     		{
     			if ($status == 1) return $langs->trans('Done');
    -			if ($status == 0) return $langs->trans('ToDo');
    +			elseif ($status == 0) return $langs->trans('ToDo');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status == 1) return img_picto($langs->trans('Done'),'statut4').' '.$langs->trans('Done');
    -			if ($status == 0) return img_picto($langs->trans('ToDo'),'statut5').' '.$langs->trans('ToDo');
    +			elseif ($status == 0) return img_picto($langs->trans('ToDo'),'statut5').' '.$langs->trans('ToDo');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status == 1) return img_picto($langs->trans('Done'),'statut4');
    -			if ($status == 0) return img_picto($langs->trans('ToDo'),'statut5');
    +			elseif ($status == 0) return img_picto($langs->trans('ToDo'),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status == 1) return img_picto($langs->trans('Done'),'statut4').' '.$langs->trans('Done');
    -			if ($status == 0) return img_picto($langs->trans('ToDo'),'statut5').' '.$langs->trans('ToDo');
    +			elseif ($status == 0) return img_picto($langs->trans('ToDo'),'statut5').' '.$langs->trans('ToDo');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status == 1) return $langs->trans('Done').' '.img_picto($langs->trans('Done'),'statut4');
    -			if ($status == 0) return $langs->trans('ToDo').' '.img_picto($langs->trans('ToDo'),'statut5');
    +			elseif ($status == 0) return $langs->trans('ToDo').' '.img_picto($langs->trans('ToDo'),'statut5');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($status == 1) return $langs->trans('Done').' '.img_picto($langs->trans('Done'),'statut4');
    -			if ($status == 0) return $langs->trans('ToDo').' '.img_picto($langs->trans('ToDo'),'statut5');
    +			elseif ($status == 0) return $langs->trans('ToDo').' '.img_picto($langs->trans('ToDo'),'statut5');
     		}
     	}
     
    @@ -224,6 +238,4 @@ class ActionCommReminder extends CommonObject
     	{
     		$this->initAsSpecimenCommon();
     	}
    -
     }
    -
    diff --git a/htdocs/comm/action/class/api_agendaevents.class.php b/htdocs/comm/action/class/api_agendaevents.class.php
    index f5d9c7db762..1e9dde34bde 100644
    --- a/htdocs/comm/action/class/api_agendaevents.class.php
    +++ b/htdocs/comm/action/class/api_agendaevents.class.php
    @@ -46,8 +46,8 @@ class AgendaEvents extends DolibarrApi
          */
         function __construct()
         {
    -		global $db, $conf;
    -		$this->db = $db;
    +        global $db, $conf;
    +        $this->db = $db;
             $this->actioncomm = new ActionComm($this->db);
         }
     
    @@ -99,13 +99,14 @@ class AgendaEvents extends DolibarrApi
          * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.label:like:'%dol%') and (t.datec:<:'20160101')"
          * @return  array               Array of Agenda Events objects
          */
    -    function index($sortfield = "t.id", $sortorder = 'ASC', $limit = 100, $page = 0, $user_ids = 0, $sqlfilters = '') {
    +    function index($sortfield = "t.id", $sortorder = 'ASC', $limit = 100, $page = 0, $user_ids = 0, $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
     
             if (! DolibarrApiAccess::$user->rights->agenda->myactions->read) {
    -        	throw new RestException(401, "Insuffisant rights to read events");
    +            throw new RestException(401, "Insuffisant rights to read events");
             }
     
             // case of external user
    @@ -218,7 +219,7 @@ class AgendaEvents extends DolibarrApi
     
     
         /**
    -     * Update Agenda Event general fields (won't touch lines of expensereport)
    +     * Update Agenda Event general fields
          *
          * @param int   $id             Id of Agenda Event to update
          * @param array $request_data   Datas
    @@ -226,7 +227,8 @@ class AgendaEvents extends DolibarrApi
          * @return int
          */
         /*
    -    function put($id, $request_data = null) {
    +    function put($id, $request_data = null)
    +    {
           if (! DolibarrApiAccess::$user->rights->agenda->myactions->create) {
     			  throw new RestException(401, "Insuffisant rights to create your Agenda Event");
     		  }
    @@ -234,20 +236,20 @@ class AgendaEvents extends DolibarrApi
     		      throw new RestException(401, "Insuffisant rights to create an Agenda Event for owner id ".$request_data['userownerid'].' Your id is '.DolibarrApiAccess::$user->id);
     		  }
     
    -        $result = $this->expensereport->fetch($id);
    +        $result = $this->actioncomm->fetch($id);
             if ( ! $result ) {
    -            throw new RestException(404, 'expensereport not found');
    +            throw new RestException(404, 'actioncomm not found');
             }
     
    -		if ( ! DolibarrApi::_checkAccessToResource('expensereport',$this->expensereport->id)) {
    +		if ( ! DolibarrApi::_checkAccessToResource('actioncomm',$this->actioncomm->id)) {
     			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
     		}
             foreach($request_data as $field => $value) {
                 if ($field == 'id') continue;
    -            $this->expensereport->$field = $value;
    +            $this->actioncomm->$field = $value;
             }
     
    -        if ($this->expensereport->update($id, DolibarrApiAccess::$user,1,'','','update'))
    +        if ($this->actioncomm->update($id, DolibarrApiAccess::$user,1,'','','update'))
                 return $this->get($id);
     
             return false;
    @@ -291,7 +293,6 @@ class AgendaEvents extends DolibarrApi
                     'message' => 'Agenda Event deleted'
                 )
             );
    -
         }
     
         /**
    @@ -308,7 +309,6 @@ class AgendaEvents extends DolibarrApi
                 if (!isset($data[$field]))
                     throw new RestException(400, "$field field missing");
                 $event[$field] = $data[$field];
    -
             }
             return $event;
         }
    @@ -319,7 +319,8 @@ class AgendaEvents extends DolibarrApi
          * @param	object	$object		Object to clean
          * @return	array				Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
         	$object = parent::_cleanObjectDatas($object);
     
    diff --git a/htdocs/comm/action/class/cactioncomm.class.php b/htdocs/comm/action/class/cactioncomm.class.php
    index d8496a9a4ff..d6c25f6d4c1 100644
    --- a/htdocs/comm/action/class/cactioncomm.class.php
    +++ b/htdocs/comm/action/class/cactioncomm.class.php
    @@ -24,24 +24,43 @@
     
     
     /**
    - *		Class to manage different types of events
    + *      Class to manage different types of events
      */
     class CActionComm
     {
    -    var $error;
    -    var $db;
    +    /**
    +     * @var string Error code (or message)
    +     */
    +    public $error='';
     
    -    var $id;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -    var $code;
    -    var $type;
    -    var $libelle;       // deprecated
    -    var $label;
    -    var $active;
    -    var $color;
    -    var $picto;
    +    /**
    +     * @var int ID
    +     */
    +    public $id;
     
    -    var $type_actions=array();
    +    public $code;
    +    public $type;
    +    public $libelle;       // deprecated
    +
    +    /**
    +     * @var string Type of agenda event label
    +     */
    +    public $label;
    +
    +    public $active;
    +    public $color;
    +
    +    /**
    +     * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +     */
    +    public $picto;
    +
    +    public $type_actions=array();
     
     
         /**
    @@ -99,6 +118,7 @@ class CActionComm
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return list of event types: array(id=>label) or array(code=>label)
          *
    @@ -112,6 +132,7 @@ class CActionComm
          */
         function liste_array($active='',$idorcode='id',$excludetype='',$onlyautoornot=0, $morefilter='', $shortlabel=0)
         {
    +        // phpcs:enable
             global $langs,$conf;
             $langs->load("commercial");
     
    @@ -210,5 +231,4 @@ class CActionComm
             $transcode=$langs->trans("Action".$this->code);
             if ($transcode != "Action".$this->code) return $transcode;
         }
    -
     }
    diff --git a/htdocs/comm/action/class/ical.class.php b/htdocs/comm/action/class/ical.class.php
    index 708b52c9151..f3a7af8fc11 100644
    --- a/htdocs/comm/action/class/ical.class.php
    +++ b/htdocs/comm/action/class/ical.class.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2006      Roman Ozana			<ozana@omdesign.cz>
      * Copyright (C) 2011	   Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2013-2014 Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012	   Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012	   Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -27,7 +27,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/xcal.lib.php';
     
     
     /**
    - *		Class to read/parse ICal calendars
    + *  Class to read/parse ICal calendars
      */
     class ICal
     {
    @@ -39,15 +39,15 @@ class ICal
         var $last_key; //Help variable save last key (multiline string)
     
     
    -	/**
    -	 * Constructor
    -	 */
    -	public function __construct()
    -	{
    +    /**
    +     * Constructor
    +     */
    +    public function __construct()
    +    {
    +    }
     
    -	}
    -
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          * Read text file, icalender text file
          *
          * @param 	string 	$file		File
    @@ -55,6 +55,7 @@ class ICal
          */
         function read_file($file)
         {
    +        // phpcs:enable
             $this->file = $file;
             $file_text='';
     
    @@ -67,6 +68,7 @@ class ICal
             return $file_text; // return all text
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Returns the number of calendar events
          *
    @@ -74,9 +76,11 @@ class ICal
          */
         function get_event_count()
         {
    +        // phpcs:enable
             return $this->event_count;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Returns the number of to do
          *
    @@ -84,6 +88,7 @@ class ICal
          */
         function get_todo_count()
         {
    +        // phpcs:enable
             return $this->todo_count;
         }
     
    @@ -195,6 +200,7 @@ class ICal
             return $this->cal;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Add to $this->ical array one value and key.
          *
    @@ -205,6 +211,7 @@ class ICal
          */
         function add_to_array($type, $key, $value)
         {
    +        // phpcs:enable
     
             //print 'type='.$type.' key='.$key.' value='.$value.'<br>'."\n";
     
    @@ -255,6 +262,7 @@ class ICal
             $this->last_key = $key;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Parse text "XXXX:value text some with : " and return array($key = "XXXX", $value="value");
          *
    @@ -263,7 +271,8 @@ class ICal
          */
         function retun_key_value($text)
         {
    -    	/*
    +        // phpcs:enable
    +        /*
             preg_match("/([^:]+)[:]([\w\W]+)/", $text, $matches);
     
             if (empty($matches))
    @@ -275,9 +284,10 @@ class ICal
                 $matches = array_splice($matches, 1, 2);
                 return $matches;
             }*/
    -		return explode(':',$text,2);
    +        return explode(':',$text,2);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Parse RRULE  return array
          *
    @@ -286,7 +296,8 @@ class ICal
          */
         function ical_rrule($value)
         {
    -    	$result=array();
    +        // phpcs:enable
    +        $result = array();
             $rrule = explode(';',$value);
             foreach ($rrule as $line)
             {
    @@ -295,6 +306,8 @@ class ICal
             }
             return $result;
         }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return Unix time from ical date time fomrat (YYYYMMDD[T]HHMMSS[Z] or YYYYMMDD[T]HHMMSS)
          *
    @@ -303,6 +316,7 @@ class ICal
          */
         function ical_date_to_unix($ical_date)
         {
    +        // phpcs:enable
             $ical_date = str_replace('T', '', $ical_date);
             $ical_date = str_replace('Z', '', $ical_date);
     
    @@ -316,6 +330,7 @@ class ICal
             return $ntime;      // ntime is a GTM time
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return unix date from iCal date format
          *
    @@ -325,7 +340,8 @@ class ICal
          */
         function ical_dt_date($key, $value)
         {
    -    	$return_value=array();
    +        // phpcs:enable
    +        $return_value = array();
             $value = $this->ical_date_to_unix($value);
     
             // Analyse TZID
    @@ -345,6 +361,7 @@ class ICal
             return array($key,$return_value);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return sorted eventlist as array or false if calenar is empty
          *
    @@ -352,6 +369,7 @@ class ICal
          */
         function get_sort_event_list()
         {
    +        // phpcs:enable
             $temp = $this->get_event_list();
             if (!empty($temp))
             {
    @@ -364,6 +382,7 @@ class ICal
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Compare two unix timestamp
          *
    @@ -373,9 +392,11 @@ class ICal
          */
         function ical_dtstart_compare($a, $b)
         {
    +        // phpcs:enable
             return strnatcasecmp($a['DTSTART']['unixtime'], $b['DTSTART']['unixtime']);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return eventlist array (not sort eventlist array)
          *
    @@ -383,9 +404,11 @@ class ICal
          */
         function get_event_list()
         {
    +        // phpcs:enable
             return (! empty($this->cal['VEVENT'])?$this->cal['VEVENT']:'');
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return eventlist array (not sort eventlist array)
          *
    @@ -393,9 +416,11 @@ class ICal
          */
         function get_freebusy_list()
         {
    +        // phpcs:enable
             return $this->cal['VFREEBUSY'];
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return to do array (not sort to do array)
          *
    @@ -403,9 +428,11 @@ class ICal
          */
         function get_todo_list()
         {
    +        // phpcs:enable
             return $this->cal['VTODO'];
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return base calendar data
          *
    @@ -413,9 +440,11 @@ class ICal
          */
         function get_calender_data()
         {
    +        // phpcs:enable
             return $this->cal['VCALENDAR'];
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return array with all data
          *
    @@ -423,6 +452,7 @@ class ICal
          */
         function get_all_data()
         {
    +        // phpcs:enable
             return $this->cal;
         }
     }
    diff --git a/htdocs/comm/action/document.php b/htdocs/comm/action/document.php
    index 43e5b89f115..a22a5c411f3 100644
    --- a/htdocs/comm/action/document.php
    +++ b/htdocs/comm/action/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
      *
    @@ -239,7 +239,7 @@ if ($object->id > 0)
     
     	print '<table class="border" width="100%">';
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -268,7 +268,6 @@ else
     	print $langs->trans("ErrorUnknown");
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php
    index c4d719b2e6f..a73731699f2 100644
    --- a/htdocs/comm/action/index.php
    +++ b/htdocs/comm/action/index.php
    @@ -2,11 +2,12 @@
     /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Eric Seigne          <erics@rycks.com>
      * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2014      Cedric GROSS         <c.gross@kreiz-it.fr>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2017      Open-DSI             <support@open-dsi.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -44,9 +45,9 @@ if (! isset($conf->global->AGENDA_MAX_EVENTS_DAY_VIEW)) $conf->global->AGENDA_MA
     if (empty($conf->global->AGENDA_EXT_NB)) $conf->global->AGENDA_EXT_NB=5;
     $MAXAGENDA=$conf->global->AGENDA_EXT_NB;
     
    -$filter = GETPOST("filter",'alpha',3);
    -$filtert = GETPOST("filtert","int",3);
    -$usergroup = GETPOST("usergroup","int",3);
    +$filter = GETPOST("search_filter",'alpha',3)?GETPOST("search_filter",'alpha',3):GETPOST("filter",'alpha',3);
    +$filtert = GETPOST("search_filtert","int",3)?GETPOST("search_filtert","int",3):GETPOST("filtert","int",3);
    +$usergroup = GETPOST("search_usergroup","int",3)?GETPOST("search_usergroup","int",3):GETPOST("usergroup","int",3);
     $showbirthday = empty($conf->use_javascript_ajax)?GETPOST("showbirthday","int"):1;
     
     // If not choice done on calendar owner (like on left menu link "Agenda"), we filter on user.
    @@ -65,7 +66,7 @@ if (! $sortorder) $sortorder="ASC";
     if (! $sortfield) $sortfield="a.datec";
     
     // Security check
    -$socid = GETPOST("socid","int");
    +$socid = GETPOST("search_socid","int")?GETPOST("search_socid","int"):GETPOST("socid","int");
     if ($user->societe_id) $socid=$user->societe_id;
     $result = restrictedArea($user, 'agenda', 0, '', 'myactions');
     if ($socid < 0) $socid='';
    @@ -79,42 +80,45 @@ if (! $user->rights->agenda->allactions->read || $filter =='mine')  // If no per
     }
     
     $action=GETPOST('action','alpha');
    -$resourceid=GETPOST("resourceid","int");
    +$resourceid=GETPOST("search_resourceid","int");
     $year=GETPOST("year","int")?GETPOST("year","int"):date("Y");
     $month=GETPOST("month","int")?GETPOST("month","int"):date("m");
     $week=GETPOST("week","int")?GETPOST("week","int"):date("W");
    -$day=GETPOST("day","int")?GETPOST("day","int"):0;
    -$pid=GETPOST("projectid","int",3);
    -$status=GETPOST("status",'aZ09');		// status may be 0, 50, 100, 'todo'
    -$type=GETPOST("type",'az09');
    +$day=GETPOST("day","int")?GETPOST("day","int"):date("d");
    +$pid=GETPOST("search_projectid","int",3)?GETPOST("search_projectid","int",3):GETPOST("projectid","int",3);
    +$status=GETPOST("search_status",'aZ09')?GETPOST("search_status",'aZ09'):GETPOST("status",'aZ09');		// status may be 0, 50, 100, 'todo'
    +$type=GETPOST("search_type",'az09')?GETPOST("search_type",'az09'):GETPOST("type",'az09');
     $maxprint=(isset($_GET["maxprint"])?GETPOST("maxprint"):$conf->global->AGENDA_MAX_EVENTS_DAY_VIEW);
     // Set actioncode (this code must be same for setting actioncode into peruser, listacton and index)
    -if (GETPOST('actioncode','array'))
    +if (GETPOST('search_actioncode','array'))
     {
    -    $actioncode=GETPOST('actioncode','array',3);
    +    $actioncode=GETPOST('search_actioncode','array',3);
         if (! count($actioncode)) $actioncode='0';
     }
     else
     {
    -    $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE));
    +    $actioncode=GETPOST("search_actioncode","alpha",3)?GETPOST("search_actioncode","alpha",3):(GETPOST("search_actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE));
     }
     if ($actioncode == '' && empty($actioncodearray)) $actioncode=(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE);
     
    -if ($status == ''   && ! isset($_GET['status']) && ! isset($_POST['status'])) $status=(empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS)?'':$conf->global->AGENDA_DEFAULT_FILTER_STATUS);
    -if (empty($action) && ! isset($_GET['action']) && ! isset($_POST['action'])) $action=(empty($conf->global->AGENDA_DEFAULT_VIEW)?'show_month':$conf->global->AGENDA_DEFAULT_VIEW);
    -if ($action == 'default')
    +if ($status == '' && ! GETPOSTISSET('search_status')) $status=(empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS)?'':$conf->global->AGENDA_DEFAULT_FILTER_STATUS);
    +
    +$defaultview = (empty($conf->global->AGENDA_DEFAULT_VIEW) ? 'show_month' : $conf->global->AGENDA_DEFAULT_VIEW);
    +$defaultview = (empty($user->conf->AGENDA_DEFAULT_VIEW) ? $defaultview : $user->conf->AGENDA_DEFAULT_VIEW);
    +if (empty($action) && ! GETPOSTISSET('action')) $action=$defaultview;
    +if ($action == 'default')	// When action is default, we want a calendar view and not the list
     {
    -	$action = ((! empty($conf->global->AGENDA_DEFAULT_VIEW) && $conf->global->AGENDA_DEFAULT_VIEW!='show_list') ? $conf->global->AGENDA_DEFAULT_VIEW : 'show_month');
    +	$action = (($defaultview != 'show_list') ? $defaultview : 'show_month');
     }
    -if (GETPOST('viewcal') && $action != 'show_day' && $action != 'show_week')  {
    +if (GETPOST('viewcal','none') && GETPOST('action','alpha') != 'show_day' && GETPOST('action','alpha') != 'show_week')  {
         $action='show_month'; $day='';
    -}                                                   // View by month
    -if (GETPOST('viewweek') || $action == 'show_week') {
    +} // View by month
    +if (GETPOST('viewweek','none') || GETPOST('action','alpha') == 'show_week') {
         $action='show_week'; $week=($week?$week:date("W")); $day=($day?$day:date("d"));
    -}  // View by week
    -if (GETPOST('viewday') || $action == 'show_day')  {
    +} // View by week
    +if (GETPOST('viewday','none') || GETPOST('action','alpha') == 'show_day')  {
         $action='show_day'; $day=($day?$day:date("d"));
    -}                                  // View by day
    +} // View by day
     
     // Load translation files required by the page
     $langs->loadLangs(array('agenda', 'other', 'commercial'));
    @@ -298,22 +302,22 @@ if ($status == 'done') $title=$langs->trans("DoneActions");
     if ($status == 'todo') $title=$langs->trans("ToDoActions");
     
     $param='';
    -if ($actioncode || isset($_GET['actioncode']) || isset($_POST['actioncode'])) {
    +if ($actioncode || isset($_GET['search_actioncode']) || isset($_POST['search_actioncode'])) {
     	if(is_array($actioncode)) {
    -		foreach($actioncode as $str_action) $param.="&actioncode[]=".$str_action;
    -	} else $param.="&actioncode=".$actioncode;
    +		foreach($actioncode as $str_action) $param.="&search_actioncode[]=".urlencode($str_action);
    +	} else $param.="&search_actioncode=".urlencode($actioncode);
     }
    -if ($resourceid > 0)  $param.="&resourceid=".$resourceid;
    -if ($status || isset($_GET['status']) || isset($_POST['status'])) $param.="&status=".$status;
    -if ($filter)  $param.="&filter=".$filter;
    -if ($usergroup)  $param.="&usergroup=".$usergroup;
    -if ($filtert) $param.="&filtert=".$filtert;
    -if ($socid)   $param.="&socid=".$socid;
    -if ($showbirthday) $param.="&showbirthday=1";
    -if ($pid)     $param.="&projectid=".$pid;
    -if ($type)   $param.="&type=".$type;
    -if ($action == 'show_day' || $action == 'show_week' || $action == 'show_month') $param.='&action='.$action;
    -$param.="&maxprint=".$maxprint;
    +if ($resourceid > 0)  $param.="&search_resourceid=".urlencode($resourceid);
    +if ($status || isset($_GET['status']) || isset($_POST['status'])) $param.="&search_status=".urlencode($status);
    +if ($filter)       $param.="&search_filter=".urlencode($filter);
    +if ($filtert)      $param.="&search_filtert=".urlencode($filtert);
    +if ($usergroup)    $param.="&search_usergroup=".urlencode($usergroup);
    +if ($socid)        $param.="&search_socid=".urlencode($socid);
    +if ($showbirthday) $param.="&search_showbirthday=1";
    +if ($pid)          $param.="&search_projectid=".urlencode($pid);
    +if ($type)         $param.="&search_type=".urlencode($type);
    +if ($action == 'show_day' || $action == 'show_week' || $action == 'show_month') $param.='&action='.urlencode($action);
    +$param.="&maxprint=".urlencode($maxprint);
     
     // Show navigation bar
     if (empty($action) || $action=='show_month')
    @@ -664,7 +668,6 @@ if ($resql)
                 //print ' startincalendar='.dol_print_date($event->date_start_in_calendar).'-endincalendar='.dol_print_date($event->date_end_in_calendar).') was added in '.$j.' different index key of array<br>';
             }
             $i++;
    -
         }
     }
     else
    @@ -1251,8 +1254,8 @@ else    // View by day
     
     print "\n".'</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
     
     
    @@ -1594,13 +1597,13 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
                                     $cachecontacts[$event->contact->id]=$contact;
                                 }
                                 else $contact=$cachecontacts[$event->contact->id];
    -                            if ($linerelatedto) $linerelatedto.=' / ';
    +                            if ($linerelatedto) $linerelatedto.='&nbsp;';
                                 if (! empty($contact->id)) $linerelatedto.=$contact->getNomUrl(1,'',0);
                             }
                             if (! empty($event->fk_element) && $event->fk_element > 0 && ! empty($event->elementtype) && ! empty($conf->global->AGENDA_SHOW_LINKED_OBJECT))
                             {
                                 include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    -                            if ($linerelatedto) $linerelatedto.=' / ';
    +                            if ($linerelatedto) $linerelatedto.='<br>';
                                 $linerelatedto.=dolGetElementUrl($event->fk_element,$event->elementtype,1);
                             }
                             if ($linerelatedto) print '<br>'.$linerelatedto;
    diff --git a/htdocs/comm/action/info.php b/htdocs/comm/action/info.php
    index 9a043a13690..2582e9b6b32 100644
    --- a/htdocs/comm/action/info.php
    +++ b/htdocs/comm/action/info.php
    @@ -114,5 +114,6 @@ print '</td></tr></table>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/action/list.php b/htdocs/comm/action/list.php
    index ae411addb25..63bad1b74f7 100644
    --- a/htdocs/comm/action/list.php
    +++ b/htdocs/comm/action/list.php
    @@ -2,8 +2,9 @@
     /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Eric Seigne          <erics@rycks.com>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2017      Open-DSI             <support@open-dsi.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -40,27 +41,28 @@ $langs->loadLangs(array("users","companies","agenda","commercial"));
     
     $action=GETPOST('action','alpha');
     $contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'actioncommlist';   // To manage different context of search
    -$resourceid=GETPOST("resourceid","int");
    +$resourceid=GETPOST("search_resourceid","int")?GETPOST("search_resourceid","int"):GETPOST("resourceid","int");
    +$pid=GETPOST("search_projectid",'int',3)?GETPOST("search_projectid",'int',3):GETPOST("projectid",'int',3);
    +$status=GETPOST("search_status",'alpha')?GETPOST("search_status",'alpha'):GETPOST("status",'alpha');
    +$type=GETPOST('search_type','alphanohtml')?GETPOST('search_type','alphanohtml'):GETPOST('type','alphanohtml');
    +$optioncss = GETPOST('optioncss','alpha');
     $year=GETPOST("year",'int');
     $month=GETPOST("month",'int');
     $day=GETPOST("day",'int');
    -$pid=GETPOST("projectid",'int',3);
    -$status=GETPOST("status",'alpha');
    -$type=GETPOST('type','alphanohtml');
    -$optioncss = GETPOST('optioncss','alpha');
     // Set actioncode (this code must be same for setting actioncode into peruser, listacton and index)
    -if (GETPOST('actioncode','array'))
    +if (GETPOST('search_actioncode','array'))
     {
    -    $actioncode=GETPOST('actioncode','array',3);
    +    $actioncode=GETPOST('search_actioncode','array',3);
         if (! count($actioncode)) $actioncode='0';
     }
     else
     {
    -    $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE));
    +    $actioncode=GETPOST("search_actioncode","alpha",3)?GETPOST("search_actioncode","alpha",3):(GETPOST("search_actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE));
     }
     if ($actioncode == '' && empty($actioncodearray)) $actioncode=(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE);
     $search_id=GETPOST('search_id','alpha');
     $search_title=GETPOST('search_title','alpha');
    +$search_note=GETPOST('search_note','alpha');
     
     $dateselect=dol_mktime(0, 0, 0, GETPOST('dateselectmonth','int'), GETPOST('dateselectday','int'), GETPOST('dateselectyear','int'));
     $datestart=dol_mktime(0, 0, 0, GETPOST('datestartmonth','int'), GETPOST('datestartday','int'), GETPOST('datestartyear','int'));
    @@ -68,15 +70,19 @@ $dateend=dol_mktime(0, 0, 0, GETPOST('dateendmonth','int'), GETPOST('dateendday'
     if ($status == ''   && ! isset($_GET['status']) && ! isset($_POST['status'])) $status=(empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS)?'':$conf->global->AGENDA_DEFAULT_FILTER_STATUS);
     if (empty($action) && ! isset($_GET['action']) && ! isset($_POST['action'])) $action=(empty($conf->global->AGENDA_DEFAULT_VIEW)?'show_month':$conf->global->AGENDA_DEFAULT_VIEW);
     
    -$filter = GETPOST("filter",'alpha',3);
    -$filtert = GETPOST("filtert","int",3);
    -$usergroup = GETPOST("usergroup","int",3);
    -$showbirthday = empty($conf->use_javascript_ajax)?GETPOST("showbirthday","int"):1;
    +$filter = GETPOST("search_filter",'alpha',3)?GETPOST("search_filter",'alpha',3):GETPOST("filter",'alpha',3);
    +$filtert = GETPOST("search_filtert","int",3)?GETPOST("search_filtert","int",3):GETPOST("filtert","int",3);
    +$usergroup = GETPOST("search_usergroup","int",3)?GETPOST("search_usergroup","int",3):GETPOST("usergroup","int",3);
    +$showbirthday = empty($conf->use_javascript_ajax)?(GETPOST("search_showbirthday","int")?GETPOST("search_showbirthday","int"):GETPOST("showbirthday","int")):1;
    +
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$object = new ActionComm($db);
    +$hookmanager->initHooks(array('agendalist'));
     
     $extrafields = new ExtraFields($db);
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('actioncomm');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     // If not choice done on calendar owner, we filter on user.
     if (empty($filtert) && empty($conf->global->AGENDA_ALL_CALENDARS))
     {
    @@ -103,7 +109,7 @@ if (! $sortfield)
     }
     
     // Security check
    -$socid = GETPOST("socid",'int');
    +$socid = GETPOST("search_socid",'int')?GETPOST("search_socid",'int'):GETPOST("socid",'int');
     if ($user->societe_id) $socid=$user->societe_id;
     $result = restrictedArea($user, 'agenda', 0, '', 'myactions');
     if ($socid < 0) $socid='';
    @@ -116,22 +122,20 @@ if (! $user->rights->agenda->allactions->read || $filter=='mine')	// If no permi
     	$filtert=$user->id;
     }
     
    -// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    -$object = new ActionComm($db);
    -$hookmanager->initHooks(array('agendalist'));
    -
     $arrayfields=array(
     	'a.id'=>array('label'=>"Ref", 'checked'=>1),
     	'owner'=>array('label'=>"Owner", 'checked'=>1),
     	'c.libelle'=>array('label'=>"Type", 'checked'=>1),
     	'a.label'=>array('label'=>"Title", 'checked'=>1),
    +	'a.note'=>array('label'=>'Description', 'checked'=>0),
     	'a.datep'=>array('label'=>"DateStart", 'checked'=>1),
     	'a.datep2'=>array('label'=>"DateEnd", 'checked'=>1),
     	's.nom'=>array('label'=>"ThirdParty", 'checked'=>1),
     	'a.fk_contact'=>array('label'=>"Contact", 'checked'=>1),
     	'a.fk_element'=>array('label'=>"LinkedObject", 'checked'=>0, 'enabled'=>(! empty($conf->global->AGENDA_SHOW_LINKED_OBJECT))),
     	'a.percent'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000),
    -
    +	'a.datec'=>array('label'=>'DateCreation', 'checked'=>0),
    +	'a.tms'=>array('label'=>'DateModification', 'checked'=>0)
     );
     // Extra fields
     if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
    @@ -174,6 +178,7 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
         //$actioncode='';
         $search_id='';
     	$search_title='';
    +    $search_note='';
         $datestart='';
         $dateend='';
         $status='';
    @@ -189,9 +194,9 @@ $form=new Form($db);
     $userstatic=new User($db);
     $formactions=new FormActions($db);
     
    -$nav='';
    -$nav.=$form->select_date($dateselect, 'dateselect', 0, 0, 1, '', 1, 0, 1);
    -$nav.=' <input type="submit" name="submitdateselect" class="button" value="'.$langs->trans("Refresh").'">';
    +$nav = '';
    +$nav .= $form->selectDate($dateselect, 'dateselect', 0, 0, 1, '', 1, 0);
    +$nav .=' <input type="submit" name="submitdateselect" class="button" value="'.$langs->trans("Refresh").'">';
     
     $now=dol_now();
     
    @@ -206,37 +211,38 @@ if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&con
     if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
     if ($actioncode != '') {
     	if(is_array($actioncode)) {
    -		foreach($actioncode as $str_action) $param.="&actioncode[]=".urlencode($str_action);
    -	} else $param.="&actioncode=".urlencode($actioncode);
    +		foreach($actioncode as $str_action) $param.="&search_actioncode[]=".urlencode($str_action);
    +	} else $param.="&search_actioncode=".urlencode($actioncode);
     }
    -if ($resourceid > 0) $param.="&resourceid=".urlencode($resourceid);
    -if ($status != '' && $status > -1) $param.="&status=".urlencode($status);
    -if ($filter) $param.="&filter=".urlencode($filter);
    -if ($filtert) $param.="&filtert=".urlencode($filtert);
    -if ($socid) $param.="&socid=".urlencode($socid);
    -if ($showbirthday) $param.="&showbirthday=1";
    -if ($pid) $param.="&projectid=".urlencode($pid);
    -if ($type) $param.="&type=".urlencode($type);
    -if ($usergroup) $param.="&usergroup=".urlencode($usergroup);
    -if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss);
    +if ($resourceid > 0) $param.="&search_resourceid=".urlencode($resourceid);
    +if ($status != '' && $status > -1) $param.="&search_status=".urlencode($status);
    +if ($filter) $param.="&search_filter=".urlencode($filter);
    +if ($filtert) $param.="&search_filtert=".urlencode($filtert);
    +if ($socid) $param.="&search_socid=".urlencode($socid);
    +if ($showbirthday) $param.="&search_showbirthday=1";
    +if ($pid) $param.="&search_projectid=".urlencode($pid);
    +if ($type) $param.="&search_type=".urlencode($type);
    +if ($usergroup) $param.="&search_usergroup=".urlencode($usergroup);
     if ($search_id != '') $param.='&search_title='.urlencode($search_id);
     if ($search_title != '') $param.='&search_title='.urlencode($search_title);
    +if ($search_note != '') $param.='&search_note='.$search_note;
     if (GETPOST('datestartday','int')) $param.='&datestartday='.GETPOST('datestartday','int');
     if (GETPOST('datestartmonth','int')) $param.='&datestartmonth='.GETPOST('datestartmonth','int');
     if (GETPOST('datestartyear','int')) $param.='&datestartyear='.GETPOST('datestartyear','int');
     if (GETPOST('dateendday','int')) $param.='&dateendday='.GETPOST('dateendday','int');
     if (GETPOST('dateendmonth','int')) $param.='&dateendmonth='.GETPOST('dateendmonth','int');
     if (GETPOST('dateendyear','int')) $param.='&dateendyear='.GETPOST('dateendyear','int');
    +if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss);
     // Add $param from extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
     
     $sql = "SELECT";
     if ($usergroup > 0) $sql.=" DISTINCT";
    -$sql.= " s.nom as societe, s.rowid as socid, s.client,";
    -$sql.= " a.id, a.label, a.datep as dp, a.datep2 as dp2,";
    +$sql.= " s.nom as societe, s.rowid as socid, s.client, s.email as socemail,";
    +$sql.= " a.id, a.label, a.note, a.datep as dp, a.datep2 as dp2,";
     $sql.= ' a.fk_user_author,a.fk_user_action,';
     $sql.= " a.fk_contact, a.note, a.percent as percent,";
    -$sql.= " a.fk_element, a.elementtype,";
    +$sql.= " a.fk_element, a.elementtype, a.datec, a.tms as datem,";
     $sql.= " c.code as type_code, c.libelle as type_label,";
     $sql.= " sp.lastname, sp.firstname, sp.email, sp.phone, sp.address, sp.phone as phone_pro, sp.phone_mobile, sp.phone_perso, sp.fk_pays as country_id";
     
    @@ -306,6 +312,7 @@ if ($status == 'done') { $sql.= " AND (a.percent = 100)"; }
     if ($status == 'todo') { $sql.= " AND (a.percent >= 0 AND a.percent < 100)"; }
     if ($search_id) $sql.=natural_search("a.id", $search_id, 1);
     if ($search_title) $sql.=natural_search("a.label", $search_title);
    +if ($search_note) $sql.=natural_search('a.note', $search_note);
     // We must filter on assignement table
     if ($filtert > 0 || $usergroup > 0)
     {
    @@ -376,10 +383,10 @@ if ($resql)
     
     	//if ($actioncode)    $nav.='<input type="hidden" name="actioncode" value="'.$actioncode.'">';
     	//if ($resourceid)      $nav.='<input type="hidden" name="resourceid" value="'.$resourceid.'">';
    -	if ($filter)          $nav.='<input type="hidden" name="filter" value="'.$filter.'">';
    +	if ($filter)          $nav.='<input type="hidden" name="search_filter" value="'.$filter.'">';
     	//if ($filtert)         $nav.='<input type="hidden" name="filtert" value="'.$filtert.'">';
     	//if ($socid)           $nav.='<input type="hidden" name="socid" value="'.$socid.'">';
    -	if ($showbirthday)    $nav.='<input type="hidden" name="showbirthday" value="1">';
    +	if ($showbirthday)    $nav.='<input type="hidden" name="search_showbirthday" value="1">';
     	//if ($pid)             $nav.='<input type="hidden" name="projectid" value="'.$pid.'">';
     	//if ($usergroup)       $nav.='<input type="hidden" name="usergroup" value="'.$usergroup.'">';
     	print $nav;
    @@ -451,15 +458,17 @@ if ($resql)
     	if (! empty($arrayfields['a.label']['checked']))	print '<td class="liste_titre"><input type="text" class="maxwidth75" name="search_title" value="'.$search_title.'"></td>';
     	if (! empty($arrayfields['a.datep']['checked']))	{
     		print '<td class="liste_titre nowraponall" align="center">';
    -		print $form->select_date($datestart, 'datestart', 0, 0, 1, '', 1, 0, 1);
    +		print $form->selectDate($datestart, 'datestart', 0, 0, 1, '', 1, 0);
     		print '</td>';
     	}
     	if (! empty($arrayfields['a.datep2']['checked']))	{
     		print '<td class="liste_titre nowraponall" align="center">';
    -		print $form->select_date($dateend, 'dateend', 0, 0, 1, '', 1, 0, 1);
    +		print $form->selectDate($dateend, 'dateend', 0, 0, 1, '', 1, 0);
     		print '</td>';
     	}
    -	if (! empty($arrayfields['s.nom']['checked']))			print '<td class="liste_titre"></td>';
    +	if (! empty($arrayfields['s.nom']['checked'])) {
    +        print '<td class="liste_titre"></td>';
    +    }
     	if (! empty($arrayfields['a.fk_contact']['checked']))	print '<td class="liste_titre"></td>';
     	if (! empty($arrayfields['a.fk_element']['checked']))	print '<td class="liste_titre"></td>';
     
    @@ -471,8 +480,9 @@ if ($resql)
     	$reshook=$hookmanager->executeHooks('printFieldListOption',$parameters);    // Note that $action and $object may have been modified by hook
     	print $hookmanager->resPrint;
     
    -
    -    if (! empty($arrayfields['a.percent']['checked']))	{
    +	if (! empty($arrayfields['a.datec']['checked']))	print '<td class="liste_titre"></td>';
    +	if (! empty($arrayfields['a.tms']['checked']))		print '<td class="liste_titre"></td>';
    +	if (! empty($arrayfields['a.percent']['checked']))	{
     		print '<td class="liste_titre center">';
         	print $formactions->form_select_status_action('formaction',$status,1,'status',1,2);
         	print ajax_combobox('selectstatus');
    @@ -490,6 +500,7 @@ if ($resql)
     	if (! empty($arrayfields['owner']['checked']))        print_liste_field_titre($arrayfields['owner']['label'], $_SERVER["PHP_SELF"],"",$param,"","",$sortfield,$sortorder);
     	if (! empty($arrayfields['c.libelle']['checked']))	  print_liste_field_titre($arrayfields['c.libelle']['label'], $_SERVER["PHP_SELF"],"c.libelle",$param,"","",$sortfield,$sortorder);
     	if (! empty($arrayfields['a.label']['checked']))	  print_liste_field_titre($arrayfields['a.label']['label'], $_SERVER["PHP_SELF"],"a.label",$param,"","",$sortfield,$sortorder);
    +	if (! empty($arrayfields['a.note']['checked']))		  print_liste_field_titre($arrayfields['a.note']['label'], $_SERVER["PHP_SELF"],"a.note",$param,"","",$sortfield,$sortorder);
     	//if (! empty($conf->global->AGENDA_USE_EVENT_TYPE))
     	if (! empty($arrayfields['a.datep']['checked']))	  print_liste_field_titre($arrayfields['a.datep']['label'], $_SERVER["PHP_SELF"],"a.datep",$param,'','align="center"',$sortfield,$sortorder);
     	if (! empty($arrayfields['a.datep2']['checked']))	  print_liste_field_titre($arrayfields['a.datep2']['label'], $_SERVER["PHP_SELF"],"a.datep2",$param,'','align="center"',$sortfield,$sortorder);
    @@ -504,6 +515,10 @@ if ($resql)
     	$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;
    +
    +	if (! empty($arrayfields['a.datec']['checked'])) print_liste_field_titre($arrayfields['a.datec']['label'], $_SERVER["PHP_SELF"],"a.datec,a.id",$param,"",'align="center"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['a.tms']['checked'])) print_liste_field_titre($arrayfields['a.tms']['label'], $_SERVER["PHP_SELF"],"a.tms,a.id",$param,"",'align="center"',$sortfield,$sortorder);
    +
     	if (! empty($arrayfields['a.percent']['checked']))print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"a.percent",$param,"",'align="center"',$sortfield,$sortorder);
     	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
     	print "</tr>\n";
    @@ -533,6 +548,7 @@ if ($resql)
     		$actionstatic->type_label=$obj->type_label;
     		$actionstatic->type_picto=$obj->type_picto;
     		$actionstatic->label=$obj->label;
    +		$actionstatic->note=dol_htmlentitiesbr($obj->note);
     
     		print '<tr class="oddeven">';
     
    @@ -586,6 +602,14 @@ if ($resql)
     			print '</td>';
     		}
     
    +		// Description
    +		if (! empty($arrayfields['a.note']['checked'])) {
    +			print '<td class="tdoverflowonsmartphone">';
    +			$text = dolGetFirstLineOfText(dol_string_nohtmltag($actionstatic->note, 0));
    +			print $form->textwithtooltip(dol_trunc($text,40), $actionstatic->note);
    +			print '</td>';
    +		}
    +
     		// Start date
     		if (! empty($arrayfields['a.datep']['checked'])) {
     			print '<td align="center">';
    @@ -609,11 +633,13 @@ if ($resql)
     		// Third party
     		if (! empty($arrayfields['s.nom']['checked'])) {
     			print '<td class="tdoverflowmax100">';
    -			if ($obj->socid)
    +			if ($obj->socid > 0)
     			{
     				$societestatic->id=$obj->socid;
     				$societestatic->client=$obj->client;
     				$societestatic->name=$obj->societe;
    +				$societestatic->email=$obj->socemail;
    +
     				print $societestatic->getNomUrl(1,'',28);
     			}
     			else print '&nbsp;';
    @@ -653,7 +679,6 @@ if ($resql)
                   		print "&nbsp;";
     		        }
     		        print '</td>';
    -
     		}
     
     		// Extra fields
    @@ -663,6 +688,15 @@ if ($resql)
     		$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters);    // Note that $action and $object may have been modified by hook
     		print $hookmanager->resPrint;
     
    +		// Date creation
    +		if (! empty($arrayfields['a.datec']['checked'])) {
    +			// Status/Percent
    +			print '<td align="center" class="nowrap">'.dol_print_date($obj->datec, 'dayhour').'</td>';
    +		}
    +		// Date update
    +		if (! empty($arrayfields['a.tms']['checked'])) {
    +			print '<td align="center" class="nowrap">'.dol_print_date($obj->datem, 'dayhour').'</td>';
    +		}
     		if (! empty($arrayfields['a.percent']['checked'])) {
     			// Status/Percent
     			$datep=$db->jdate($obj->datep);
    @@ -678,14 +712,12 @@ if ($resql)
     	print '</form>';
     
     	$db->free($resql);
    -
     }
     else
     {
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/action/pertype.php b/htdocs/comm/action/pertype.php
    index 2fdfa180319..67a4534ca14 100644
    --- a/htdocs/comm/action/pertype.php
    +++ b/htdocs/comm/action/pertype.php
    @@ -2,9 +2,10 @@
     /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Eric Seigne          <erics@rycks.com>
      * Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2014      Cedric GROSS         <c.gross@kreiz-it.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -262,7 +263,7 @@ $nav.='<input type="hidden" name="begin_d" value="' . $begin_d . '">';
     $nav.='<input type="hidden" name="end_d" value="' . $end_d . '">';
     $nav.='<input type="hidden" name="showbirthday" value="' . $showbirthday . '">';
     
    -$nav.=$form->select_date($dateselect, 'dateselect', 0, 0, 1, '', 1, 0, 1);
    +$nav.= $form->selectDate($dateselect, 'dateselect', 0, 0, 1, '', 1, 0);
     $nav.=' <input type="submit" name="submitdateselect" class="button" value="'.$langs->trans("Refresh").'">';
     $nav.='</form>';
     
    @@ -542,7 +543,6 @@ if ($resql)
                 //print ' startincalendar='.dol_print_date($event->date_start_in_calendar).'-endincalendar='.dol_print_date($event->date_end_in_calendar).') was added in '.$j.' different index key of array<br>';
             }
             $i++;
    -
         }
     }
     else
    @@ -730,10 +730,8 @@ jQuery(document).ready(function() {
     });
     </script>';
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
     
     
    diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php
    index 0cf056ef3a9..9e2a7278a27 100644
    --- a/htdocs/comm/action/peruser.php
    +++ b/htdocs/comm/action/peruser.php
    @@ -2,9 +2,10 @@
     /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Eric Seigne          <erics@rycks.com>
      * Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2014      Cedric GROSS         <c.gross@kreiz-it.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -40,9 +41,9 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     
     if (! isset($conf->global->AGENDA_MAX_EVENTS_DAY_VIEW)) $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW=3;
     
    -$filter = GETPOST("filter",'alpha',3);
    -$filtert = GETPOST("filtert","int",3);
    -$usergroup = GETPOST("usergroup","int",3);
    +$filter = GETPOST("search_filter",'alpha',3)?GETPOST("search_filter",'alpha',3):GETPOST("filter",'alpha',3);
    +$filtert = GETPOST("search_filtert","int",3)?GETPOST("search_filtert","int",3):GETPOST("filtert","int",3);
    +$usergroup = GETPOST("search_usergroup","int",3)?GETPOST("search_usergroup","int",3):GETPOST("usergroup","int",3);
     //if (! ($usergroup > 0) && ! ($filtert > 0)) $filtert = $user->id;
     //$showbirthday = empty($conf->use_javascript_ajax)?GETPOST("showbirthday","int"):1;
     $showbirthday = 0;
    @@ -63,7 +64,7 @@ if (! $sortorder) $sortorder="ASC";
     if (! $sortfield) $sortfield="a.datec";
     
     // Security check
    -$socid = GETPOST("socid","int");
    +$socid = GETPOST("search_socid","int")?GETPOST("search_socid","int"):GETPOST("socid","int");
     if ($user->societe_id) $socid=$user->societe_id;
     $result = restrictedArea($user, 'agenda', 0, '', 'myactions');
     if ($socid < 0) $socid='';
    @@ -78,24 +79,24 @@ if (! $user->rights->agenda->allactions->read || $filter =='mine')  // If no per
     
     //$action=GETPOST('action','alpha');
     $action='show_peruser'; //We use 'show_week' mode
    -$resourceid=GETPOST("resourceid","int");
    +$resourceid=GETPOST("search_resourceid","int")?GETPOST("search_resourceid","int"):GETPOST("resourceid","int");
     $year=GETPOST("year","int")?GETPOST("year","int"):date("Y");
     $month=GETPOST("month","int")?GETPOST("month","int"):date("m");
     $week=GETPOST("week","int")?GETPOST("week","int"):date("W");
     $day=GETPOST("day","int")?GETPOST("day","int"):date("d");
    -$pid=GETPOST("projectid","int",3);
    -$status=GETPOST("status",'alpha');
    -$type=GETPOST("type",'alpha');
    +$pid=GETPOST("search_projectid","int",3)?GETPOST("search_projectid","int",3):GETPOST("projectid","int",3);
    +$status=GETPOST("search_status",'alpha')?GETPOST("search_status",'alpha'):GETPOST("status",'alpha');
    +$type=GETPOST("search_type",'alpha')?GETPOST("search_type",'alpha'):GETPOST("type",'alpha');
     $maxprint=((GETPOST("maxprint",'int')!='')?GETPOST("maxprint",'int'):$conf->global->AGENDA_MAX_EVENTS_DAY_VIEW);
     // Set actioncode (this code must be same for setting actioncode into peruser, listacton and index)
    -if (GETPOST('actioncode','array'))
    +if (GETPOST('search_actioncode','array'))
     {
    -    $actioncode=GETPOST('actioncode','array',3);
    +    $actioncode=GETPOST('search_actioncode','array',3);
         if (! count($actioncode)) $actioncode='0';
     }
     else
     {
    -    $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode","alpha")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE));
    +    $actioncode=GETPOST("search_actioncode","alpha",3)?GETPOST("search_actioncode","alpha",3):(GETPOST("search_actioncode","alpha")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE));
     }
     if ($actioncode == '' && empty($actioncodearray)) $actioncode=(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE);
     
    @@ -200,25 +201,25 @@ if ($status == 'done') $title=$langs->trans("DoneActions");
     if ($status == 'todo') $title=$langs->trans("ToDoActions");
     
     $param='';
    -if ($actioncode || isset($_GET['actioncode']) || isset($_POST['actioncode'])) {
    +if ($actioncode || isset($_GET['search_actioncode']) || isset($_POST['search_actioncode'])) {
     	if(is_array($actioncode)) {
    -		foreach($actioncode as $str_action) $param.="&actioncode[]=".urlencode($str_action);
    -	} else $param.="&actioncode=".urlencode($actioncode);
    +		foreach($actioncode as $str_action) $param.="&search_actioncode[]=".urlencode($str_action);
    +	} else $param.="&search_actioncode=".urlencode($actioncode);
     }
    -if ($resourceid > 0) $param.="&resourceid=".urlencode($resourceid);
    -if ($status || isset($_GET['status']) || isset($_POST['status'])) $param.="&status=".urlencode($status);
    -if ($filter)  $param.="&filter=".urlencode($filter);
    -if ($filtert) $param.="&filtert=".urlencode($filtert);
    -if ($usergroup) $param.="&usergroup=".urlencode($usergroup);
    -if ($socid)   $param.="&socid=".urlencode($socid);
    -if ($showbirthday) $param.="&showbirthday=1";
    -if ($pid)     $param.="&projectid=".urlencode($pid);
    -if ($type)   $param.="&type=".urlencode($type);
    +if ($resourceid > 0) $param.="&search_resourceid=".urlencode($resourceid);
    +if ($status || isset($_GET['status']) || isset($_POST['status'])) $param.="&search_status=".urlencode($status);
    +if ($filter)        $param.="&search_filter=".urlencode($filter);
    +if ($filtert)       $param.="&search_filtert=".urlencode($filtert);
    +if ($usergroup)     $param.="&search_usergroup=".urlencode($usergroup);
    +if ($socid)         $param.="&search_socid=".urlencode($socid);
    +if ($showbirthday)  $param.="&search_showbirthday=1";
    +if ($pid)           $param.="&search_projectid=".urlencode($pid);
    +if ($type)          $param.="&search_type=".urlencode($type);
     if ($action == 'show_day' || $action == 'show_week' || $action == 'show_month' || $action != 'show_peruser') $param.='&action='.urlencode($action);
     if ($begin_h != '') $param.='&begin_h='.urlencode($begin_h);
    -if ($end_h != '') $param.='&end_h='.urlencode($end_h);
    +if ($end_h != '')   $param.='&end_h='.urlencode($end_h);
     if ($begin_d != '') $param.='&begin_d='.urlencode($begin_d);
    -if ($end_d != '') $param.='&end_d='.urlencode($end_d);
    +if ($end_d != '')   $param.='&end_d='.urlencode($end_d);
     $param.="&maxprint=".urlencode($maxprint);
     
     
    @@ -276,7 +277,7 @@ $nav.='<input type="hidden" name="begin_d" value="' . $begin_d . '">';
     $nav.='<input type="hidden" name="end_d" value="' . $end_d . '">';
     $nav.='<input type="hidden" name="showbirthday" value="' . $showbirthday . '">';
     */
    -$nav.=$form->select_date($dateselect, 'dateselect', 0, 0, 1, '', 1, 0, 1);
    +$nav.= $form->selectDate($dateselect, 'dateselect', 0, 0, 1, '', 1, 0);
     $nav.=' <input type="submit" name="submitdateselect" class="button" value="'.$langs->trans("Refresh").'">';
     //$nav.='</form>';
     
    @@ -357,9 +358,23 @@ if ($conf->use_javascript_ajax)
     }
     
     
    +$newcardbutton='';
    +if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create)
    +{
    +	$tmpforcreatebutton=dol_getdate(dol_now(), true);
    +
    +	$newparam.='&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$tmpforcreatebutton['year'];
    +
    +	//$param='month='.$monthshown.'&year='.$year;
    +	$hourminsec='100000';
    +	$newcardbutton = '<a class="butActionNew" href="'.DOL_URL_ROOT.'/comm/action/card.php?action=create&datep='.sprintf("%04d%02d%02d",$tmpforcreatebutton['year'],$tmpforcreatebutton['mon'],$tmpforcreatebutton['mday']).$hourminsec.'&backtopage='.urlencode($_SERVER["PHP_SELF"].($newparam?'?'.$newparam:'')).'"><span class="valignmiddle">'.$langs->trans("AddAction").'</span>';
    +	$newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    +	$newcardbutton.= '</a>';
    +}
     
     $link='';
    -print load_fiche_titre($s, $link.' &nbsp; &nbsp; '.$nav, '');
    +print load_fiche_titre($s, $link.' &nbsp; &nbsp; '.$nav.' '.$newcardbutton, '');
    +
     
     
     // Get event in an array
    @@ -570,7 +585,6 @@ if ($resql)
                 //print ' startincalendar='.dol_print_date($event->date_start_in_calendar).'-endincalendar='.dol_print_date($event->date_end_in_calendar).') was added in '.$j.' different index key of array<br>';
             }
             $i++;
    -
         }
         $db->free($resql);
     }
    @@ -797,7 +811,6 @@ while($currentdaytoshow<$lastdaytoshow) {
     	echo "<br>";
     
     	$currentdaytoshow =  dol_time_plus_duree($currentdaytoshow, 7, 'd');
    -
     }
     
     echo '</div>';
    @@ -865,10 +878,8 @@ jQuery(document).ready(function() {
     });
     </script>';
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
     
     
    diff --git a/htdocs/comm/action/rapport/index.php b/htdocs/comm/action/rapport/index.php
    index 7e4108b470b..323113eb12e 100644
    --- a/htdocs/comm/action/rapport/index.php
    +++ b/htdocs/comm/action/rapport/index.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Eric Seigne          <erics@rycks.com>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -209,5 +209,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/address.php b/htdocs/comm/address.php
    index 9c8b275d198..f9cf7dc5bf1 100644
    --- a/htdocs/comm/address.php
    +++ b/htdocs/comm/address.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2006 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -151,7 +151,6 @@ if ($action == 'add' || $action == 'update')
                 $action= "edit";
             }
         }
    -
     }
     
     else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->societe->supprimer)
    @@ -291,7 +290,6 @@ if ($action == 'create')
             print '</div>'."\n";
     
             print '</form>'."\n";
    -
         }
     }
     elseif ($action == 'edit')
    @@ -486,7 +484,6 @@ else
             }
             print '</div>';
         }
    -
     }
     
     
    diff --git a/htdocs/comm/admin/propal_extrafields.php b/htdocs/comm/admin/propal_extrafields.php
    index 6a6aa12862a..7b58bd6666d 100644
    --- a/htdocs/comm/admin/propal_extrafields.php
    +++ b/htdocs/comm/admin/propal_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -111,6 +111,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/admin/propaldet_extrafields.php b/htdocs/comm/admin/propaldet_extrafields.php
    index 49784228fe6..3fa03a7e8e8 100644
    --- a/htdocs/comm/admin/propaldet_extrafields.php
    +++ b/htdocs/comm/admin/propaldet_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
    @@ -86,7 +86,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -99,7 +99,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -118,6 +118,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php
    index 2cf3c120af6..a9167c43c32 100644
    --- a/htdocs/comm/card.php
    +++ b/htdocs/comm/card.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2015 Laurent Destailleur         <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne                 <eric.seigne@ryxeo.com>
      * Copyright (C) 2006      Andre Cianfarani            <acianfa@free.fr>
    - * Copyright (C) 2005-2017 Regis Houssin               <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017 Regis Houssin               <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
      * Copyright (C) 2010-2014 Juanjo Menent               <jmenent@2byte.es>
      * Copyright (C) 2013      Alexandre Spangaro          <aspangaro.dolibarr@gmail.com>
    @@ -327,7 +327,7 @@ if ($object->id > 0)
     	print '</td><td>';
     	if ($action == 'editconditions')
     	{
    -		$form->form_conditions_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->cond_reglement_id, 'cond_reglement_id',1);
    +		$form->form_conditions_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->cond_reglement_id, 'cond_reglement_id', 1);
     	}
     	else
     	{
    @@ -346,7 +346,7 @@ if ($object->id > 0)
     	print '</td><td>';
     	if ($action == 'editmode')
     	{
    -		$form->form_modes_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id,$object->mode_reglement_id,'mode_reglement_id', 'CRDT');
    +		$form->form_modes_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT', 1, 1);
     	}
     	else
     	{
    @@ -588,7 +588,7 @@ if ($object->id > 0)
     		$link=DOL_URL_ROOT.'/comm/propal/list.php?socid='.$object->id;
     		$icon='bill';
     		if ($link) $boxstat.='<a href="'.$link.'" class="boxstatsindicator thumbstat nobold nounderline">';
    -		$boxstat.='<div class="boxstats">';
    +		$boxstat.='<div class="boxstats" title="'.dol_escape_htmltag($text).'">';
     		$boxstat.='<span class="boxstatstext">'.img_object("",$icon).' '.$text.'</span><br>';
     		$boxstat.='<span class="boxstatsindicator">'.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).'</span>';
     		$boxstat.='</div>';
    @@ -606,7 +606,7 @@ if ($object->id > 0)
     		$link=DOL_URL_ROOT.'/commande/list.php?socid='.$object->id;
     		$icon='bill';
     		if ($link) $boxstat.='<a href="'.$link.'" class="boxstatsindicator thumbstat nobold nounderline">';
    -		$boxstat.='<div class="boxstats">';
    +		$boxstat.='<div class="boxstats" title="'.dol_escape_htmltag($text).'">';
     		$boxstat.='<span class="boxstatstext">'.img_object("",$icon).' '.$text.'</span><br>';
     		$boxstat.='<span class="boxstatsindicator">'.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).'</span>';
     		$boxstat.='</div>';
    @@ -624,7 +624,7 @@ if ($object->id > 0)
     		$link=DOL_URL_ROOT.'/compta/facture/list.php?socid='.$object->id;
     		$icon='bill';
     		if ($link) $boxstat.='<a href="'.$link.'" class="boxstatsindicator thumbstat nobold nounderline">';
    -		$boxstat.='<div class="boxstats">';
    +		$boxstat.='<div class="boxstats" title="'.dol_escape_htmltag($text).'">';
     		$boxstat.='<span class="boxstatstext">'.img_object("",$icon).' '.$text.'</span><br>';
     		$boxstat.='<span class="boxstatsindicator">'.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).'</span>';
     		$boxstat.='</div>';
    @@ -640,7 +640,7 @@ if ($object->id > 0)
     		$link=DOL_URL_ROOT.'/compta/recap-compta.php?socid='.$object->id;
     		$icon='bill';
     		if ($link) $boxstat.='<a href="'.$link.'" class="boxstatsindicator thumbstat nobold nounderline">';
    -		$boxstat.='<div class="boxstats">';
    +		$boxstat.='<div class="boxstats" title="'.dol_escape_htmltag($text).'">';
     		$boxstat.='<span class="boxstatstext">'.img_object("",$icon).' '.$text.'</span><br>';
     		$boxstat.='<span class="boxstatsindicator'.($outstandingOpened>0?' amountremaintopay':'').'">'.price($outstandingOpened, 1, $langs, 1, -1, -1, $conf->currency).$warn.'</span>';
     		$boxstat.='</div>';
    @@ -1136,7 +1136,7 @@ if ($object->id > 0)
     	 */
     	if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     	{
    -        $sql = 'SELECT f.rowid as facid, f.facnumber, f.type, f.amount';
    +        $sql = 'SELECT f.rowid as facid, f.ref, f.type, f.amount';
             $sql.= ', f.total as total_ht';
             $sql.= ', f.tva as total_tva';
             $sql.= ', f.total_ttc';
    @@ -1146,8 +1146,8 @@ if ($object->id > 0)
     		$sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f";
     		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiement_facture as pf ON f.rowid=pf.fk_facture';
     		$sql.= " WHERE f.fk_soc = s.rowid AND s.rowid = ".$object->id;
    -		$sql.= " AND f.entity = ".$conf->entity;
    -		$sql.= ' GROUP BY f.rowid, f.facnumber, f.type, f.amount, f.total, f.tva, f.total_ttc,';
    +		$sql.= " AND f.entity IN (".getEntity('invoice').")";
    +		$sql.= ' GROUP BY f.rowid, f.ref, f.type, f.amount, f.total, f.tva, f.total_ttc,';
     		$sql.= ' f.datef, f.datec, f.paye, f.fk_statut,';
     		$sql.= ' s.nom, s.rowid';
     		$sql.= " ORDER BY f.datef DESC, f.datec DESC";
    @@ -1176,7 +1176,7 @@ if ($object->id > 0)
     				$objp = $db->fetch_object($resql);
     
     				$facturestatic->id = $objp->facid;
    -				$facturestatic->ref = $objp->facnumber;
    +				$facturestatic->ref = $objp->ref;
     				$facturestatic->type = $objp->type;
     				$facturestatic->total_ht = $objp->total_ht;
     				$facturestatic->total_tva = $objp->total_tva;
    @@ -1242,7 +1242,7 @@ if ($object->id > 0)
         {
             if ($object->status != 1)
             {
    -            print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("ThirdPartyIsClosed").'</a></div>';
    +            print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("ThirdPartyIsClosed").'</a></div>';
             }
     
         	if (! empty($conf->propal->enabled) && $user->rights->propal->creer && $object->status==1)
    @@ -1282,7 +1282,7 @@ if ($object->id > 0)
         		{
         			if (empty($user->rights->facture->creer))
         			{
    -    			    print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.dol_escape_js($langs->trans("NotAllowed")).'" href="#">'.$langs->trans("AddBill").'</a></div>';
    +    			    print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" title="'.dol_escape_js($langs->trans("NotAllowed")).'" href="#">'.$langs->trans("AddBill").'</a></div>';
         			}
         			else
         			{
    @@ -1294,14 +1294,13 @@ if ($object->id > 0)
         				    if ($object->client != 0 && $object->client != 2)
         				    {
         					   if (! empty($orders2invoice) && $orders2invoice > 0) print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/commande/orderstoinvoice.php?socid='.$object->id.'">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
    -    					   else print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.dol_escape_js($langs->trans("NoOrdersToInvoice")).'" href="#">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
    +    					   else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" title="'.dol_escape_js($langs->trans("NoOrdersToInvoice")).'" href="#">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
         				    }
    -    				    else print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyMustBeEditAsCustomer")).'" href="#">'.$langs->trans("AddBill").'</a></div>';
    +    				    else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" title="'.dol_escape_js($langs->trans("ThirdPartyMustBeEditAsCustomer")).'" href="#">'.$langs->trans("AddBill").'</a></div>';
         				}
     
         				if ($object->client != 0 && $object->client != 2) print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/compta/facture/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddBill").'</a></div>';
    -    				else print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyMustBeEditAsCustomer")).'" href="#">'.$langs->trans("AddBill").'</a></div>';
    -
    +    				else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" title="'.dol_escape_js($langs->trans("ThirdPartyMustBeEditAsCustomer")).'" href="#">'.$langs->trans("AddBill").'</a></div>';
         			}
         		}
         	}
    @@ -1344,7 +1343,6 @@ if ($object->id > 0)
             // List of done actions
     		show_actions_done($conf,$langs,$db,$object);
     	}
    -
     }
     else
     {
    @@ -1354,5 +1352,4 @@ else
     
     // End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/contact.php b/htdocs/comm/contact.php
    index aa8dae43140..b5cdd58bbc5 100644
    --- a/htdocs/comm/contact.php
    +++ b/htdocs/comm/contact.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003      Eric Seigne			<erics@rycks.com>
      * Copyright (C) 2004-2009 Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -176,6 +176,6 @@ else
         dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/index.php b/htdocs/comm/index.php
    index e90a821b5e3..81685f3fda8 100644
    --- a/htdocs/comm/index.php
    +++ b/htdocs/comm/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -521,7 +521,6 @@ if (! empty($conf->societe->enabled) && $user->rights->societe->lire)
     				print '<td align="right" nowrap>'.dol_print_date($db->jdate($objp->tms),'day')."</td>";
     				print '</tr>';
     				$i++;
    -
     			}
     
     			$db->free($resql);
    @@ -580,7 +579,6 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->societe->lire)
     
     				$i++;
     			}
    -
     		}
     		else
     		{
    @@ -884,6 +882,6 @@ if (! empty($conf->commande->enabled) && $user->rights->commande->lire)
     
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/mailing/advtargetemailing.php b/htdocs/comm/mailing/advtargetemailing.php
    index 1c886e2ba2c..8aa14a45b85 100644
    --- a/htdocs/comm/mailing/advtargetemailing.php
    +++ b/htdocs/comm/mailing/advtargetemailing.php
    @@ -84,9 +84,12 @@ if (empty($template_id)) {
     	$result = $advTarget->fetch($template_id);
     }
     
    -if ($result < 0) {
    -	setEventMessage($advTarget->error, 'errors');
    -} else {
    +if ($result < 0)
    +{
    +	setEventMessages($advTarget->error, $advTarget->errors, 'errors');
    +}
    +else
    +{
     	if (! empty($advTarget->id)) {
     		$array_query = json_decode($advTarget->filtervalue, true);
     	}
    @@ -101,7 +104,7 @@ if ($action == 'loadfilter') {
     	if (! empty($template_id)) {
     		$result = $advTarget->fetch($template_id);
     		if ($result < 0) {
    -			setEventMessage($advTarget->error, 'errors');
    +			setEventMessages($advTarget->error, $advTarget->errors, 'errors');
     		} else {
     			if (! empty($advTarget->id)) {
     				$array_query = json_decode($advTarget->filtervalue, true);
    @@ -202,7 +205,7 @@ if ($action == 'add') {
     	// if ($array_query ['type_of_target'] == 1 || $array_query ['type_of_target'] == 3) {
     	$result = $advTarget->query_thirdparty($array_query);
     	if ($result < 0) {
    -		setEventMessage($advTarget->error, 'errors');
    +		setEventMessages($advTarget->error, $advTarget->errors, 'errors');
     	}
     	/*} else {
     		$advTarget->thirdparty_lines = array ();
    @@ -211,7 +214,7 @@ if ($action == 'add') {
     	if ($user_contact_query && ($array_query['type_of_target'] == 1 || $array_query['type_of_target'] == 2 || $array_query['type_of_target'] == 4)) {
     		$result = $advTarget->query_contact($array_query, 1);
     		if ($result < 0) {
    -			setEventMessage($advTarget->error, 'errors');
    +			setEventMessages($advTarget->error, $advTarget->errors, 'errors');
     		}
     		// If use contact but no result use artefact to so not use socid into add_to_target
     		if (count($advTarget->contact_lines) == 0) {
    @@ -222,7 +225,7 @@ if ($action == 'add') {
     	} else {
     		$advTarget->contact_lines = array ();
     	}
    -	
    +
     	if ((count($advTarget->thirdparty_lines) > 0) || (count($advTarget->contact_lines) > 0)) {
     		// Add targets into database
     		$obj = new mailing_advthirdparties($db);
    @@ -241,10 +244,10 @@ if ($action == 'add') {
     		exit();
     	}
     	if ($result == 0) {
    -		setEventMessage($langs->trans("WarningNoEMailsAdded"), 'warnings');
    +		setEventMessages($langs->trans("WarningNoEMailsAdded"), null, 'warnings');
     	}
     	if ($result < 0) {
    -		setEventMessage($obj->error, 'errors');
    +		setEventMessages($obj->error, $obj->errors, 'errors');
     	}
     }
     
    @@ -264,7 +267,7 @@ if ($action == 'savefilter' || $action == 'createfilter') {
     	$error = 0;
     
     	if ($action == 'createfilter' && empty($template_name)) {
    -		setEventMessage($langs->trans('ErrorFieldRequired', $langs->trans('AdvTgtOrCreateNewFilter')), 'errors');
    +		setEventMessages($langs->trans('ErrorFieldRequired', $langs->trans('AdvTgtOrCreateNewFilter')), null, 'errors');
     		$error ++;
     	}
     
    @@ -353,13 +356,13 @@ if ($action == 'savefilter' || $action == 'createfilter') {
     			$advTarget->name = $template_name;
     			$result = $advTarget->create($user);
     			if ($result < 0) {
    -				setEventMessage($advTarget->error, 'errors');
    +				setEventMessages($advTarget->error, $advTarget->errors, 'errors');
     			}
     		} elseif ($action == 'savefilter') {
    -			
    +
     			$result = $advTarget->update($user);
     			if ($result < 0) {
    -				setEventMessage($advTarget->error, 'errors');
    +				setEventMessages($advTarget->error, $advTarget->errors, 'errors');
     			}
     		}
     		$template_id = $advTarget->id;
    @@ -369,7 +372,7 @@ if ($action == 'savefilter' || $action == 'createfilter') {
     if ($action == 'deletefilter') {
     	$result = $advTarget->delete($user);
     	if ($result < 0) {
    -		setEventMessage($advTarget->error, 'errors');
    +		setEventMessages($advTarget->error, $advTarget->errors, 'errors');
     	}
     	header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id);
     	exit();
    @@ -462,11 +465,11 @@ if ($object->fetch($id) >= 0) {
     
     	// Show email selectors
     	if ($object->statut == 0 && $user->rights->mailing->creer) {
    -		
    +
     		include DOL_DOCUMENT_ROOT . '/core/tpl/advtarget.tpl.php';
    -		
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/mailing/card.php b/htdocs/comm/mailing/card.php
    index 97746ad9d82..233f32d26be 100644
    --- a/htdocs/comm/mailing/card.php
    +++ b/htdocs/comm/mailing/card.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2016	Laurent Destailleur		<eldy@uers.sourceforge.net>
    - * Copyright (C) 2005-2016	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2016	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -747,7 +747,7 @@ if ($action == 'create')
     	dol_fiche_head();
     
     	print '<table class="border" width="100%">';
    -	print '<tr><td class="fieldrequired titlefieldcreate">'.$langs->trans("MailTitle").'</td><td><input class="flat minwidth300" name="titre" value="'.dol_escape_htmltag(GETPOST('titre')).'"></td></tr>';
    +	print '<tr><td class="fieldrequired titlefieldcreate">'.$langs->trans("MailTitle").'</td><td><input class="flat minwidth300" name="titre" value="'.dol_escape_htmltag(GETPOST('titre')).'" autofocus="autofocus"></td></tr>';
     	print '<tr><td class="fieldrequired">'.$langs->trans("MailFrom").'</td><td><input class="flat minwidth200" name="from" value="'.$conf->global->MAILING_EMAIL_FROM.'"></td></tr>';
     	print '<tr><td>'.$langs->trans("MailErrorsTo").'</td><td><input class="flat minwidth200" name="errorsto" value="'.(!empty($conf->global->MAILING_EMAIL_ERRORSTO)?$conf->global->MAILING_EMAIL_ERRORSTO:$conf->global->MAIN_MAIL_ERRORS_TO).'"></td></tr>';
     
    @@ -874,7 +874,7 @@ else
     				}
     			}
     
    -			$linkback = '<a href="'.DOL_URL_ROOT.'/comm/mailing/list.php">'.$langs->trans("BackToList").'</a>';
    +			$linkback = '<a href="'.DOL_URL_ROOT.'/comm/mailing/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
     
     			$morehtmlright='';
     			$nbtry = $nbok = 0;
    @@ -995,7 +995,7 @@ else
     
     				if (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! $user->rights->mailing->mailing_advance->send)
     				{
    -					print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("TestMailing").'</a>';
    +					print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("TestMailing").'</a>';
     				}
     				else
     				{
    @@ -1006,11 +1006,11 @@ else
     				{
     					if ($object->nbemail <= 0)
     					{
    -						print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NoTargetYet")).'">'.$langs->trans("ValidMailing").'</a>';
    +						print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NoTargetYet")).'">'.$langs->trans("ValidMailing").'</a>';
     					}
     					else if (empty($user->rights->mailing->valider))
     					{
    -						print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("ValidMailing").'</a>';
    +						print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("ValidMailing").'</a>';
     					}
     					else
     					{
    @@ -1022,11 +1022,11 @@ else
     				{
     					if ($conf->global->MAILING_LIMIT_SENDBYWEB < 0)
     					{
    -						print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("SendingFromWebInterfaceIsNotAllowed")).'">'.$langs->trans("SendMailing").'</a>';
    +						print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("SendingFromWebInterfaceIsNotAllowed")).'">'.$langs->trans("SendMailing").'</a>';
     					}
     					else if (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! $user->rights->mailing->mailing_advance->send)
     					{
    -						print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("SendMailing").'</a>';
    +						print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("SendMailing").'</a>';
     					}
     					else
     					{
    @@ -1043,7 +1043,7 @@ else
     				{
     					if (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! $user->rights->mailing->mailing_advance->send)
     					{
    -						print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("ResetMailing").'</a>';
    +						print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("ResetMailing").'</a>';
     					}
     					else
     					{
    @@ -1055,7 +1055,7 @@ else
     				{
     					if ($object->statut > 0 && (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! $user->rights->mailing->mailing_advance->delete))
     					{
    -						print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("DeleteMailing").'</a>';
    +						print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("DeleteMailing").'</a>';
     					}
     					else
     					{
    @@ -1165,7 +1165,6 @@ else
     			print '</div>';
     
     			dol_fiche_end();
    -
     		}
     		else
     		{
    @@ -1358,5 +1357,6 @@ else
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/mailing/cibles.php b/htdocs/comm/mailing/cibles.php
    index 08ed54d2fc3..84c1f5954b9 100644
    --- a/htdocs/comm/mailing/cibles.php
    +++ b/htdocs/comm/mailing/cibles.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2016 Laurent Destailleur  <eldy@uers.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014	   Florian Henry        <florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -66,14 +66,13 @@ $modulesdir = dolGetModulesDirs('/mailings');
     $object = new Mailing($db);
     
     
    -
     /*
      * Actions
      */
     
     if ($action == 'add')
     {
    -	$module=GETPOST("module");
    +	$module=GETPOST("module",'alpha');
     	$result=-1;
     
     	foreach ($modulesdir as $dir)
    @@ -90,14 +89,10 @@ if ($action == 'add')
     		{
     			require_once $file;
     
    -			// We fill $filtersarray. Using this variable is now deprecated. Kept for backward compatibility.
    -			$filtersarray=array();
    -			if (isset($_POST["filter"])) $filtersarray[0]=$_POST["filter"];
    -
     			// Add targets into database
     			$obj = new $classname($db);
     			dol_syslog("Call add_to_target on class ".$classname);
    -			$result=$obj->add_to_target($id,$filtersarray);
    +			$result=$obj->add_to_target($id);
     		}
     	}
     	if ($result > 0)
    @@ -306,8 +301,8 @@ if ($object->fetch($id) >= 0)
     			$var = true;
     
     			// Loop on each submodule
    -            foreach($modulenames as $modulename)
    -            {
    +			foreach($modulenames as $modulename)
    +			{
     				// Loading Class
     				$file = $dir.$modulename.".modules.php";
     				$classname = "mailing_".$modulename;
    @@ -646,10 +641,8 @@ if ($object->fetch($id) >= 0)
     	}
     
     	print "\n<!-- Fin liste destinataires selectionnes -->\n";
    -
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/mailing/class/advtargetemailing.class.php b/htdocs/comm/mailing/class/advtargetemailing.class.php
    index 50d9faf0637..83833304d44 100644
    --- a/htdocs/comm/mailing/class/advtargetemailing.class.php
    +++ b/htdocs/comm/mailing/class/advtargetemailing.class.php
    @@ -28,14 +28,35 @@
      */
     class AdvanceTargetingMailing extends CommonObject
     {
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -	var $db; //!< To store db handler
    -	var $error; //!< To return error code (or message)
    -	var $errors = array(); //!< To return several error codes (or messages)
    -	var $element='advtargetemailing';			//!< Id that identify managed objects
    -	var $table_element='advtargetemailing';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    -	var $id;
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='advtargetemailing';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='advtargetemailing';
    +
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
     
     	var $name;
     	var $entity;
    @@ -54,9 +75,9 @@ class AdvanceTargetingMailing extends CommonObject
     
     
     	/**
    -	 * Constructor
    +	 *  Constructor
     	 *
    -	 * 	@param	DoliDb		$db		Database handler
    +	 *  @param  DoliDb		$db		Database handler
     	 */
     	function __construct($db)
     	{
    @@ -219,7 +240,6 @@ class AdvanceTargetingMailing extends CommonObject
     				$this->datec = $this->db->jdate($obj->datec);
     				$this->fk_user_mod = $obj->fk_user_mod;
     				$this->tms = $this->db->jdate($obj->tms);
    -
     			}
     			$this->db->free($resql);
     
    @@ -233,6 +253,7 @@ class AdvanceTargetingMailing extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Load object in memory from the database
     	 *
    @@ -241,6 +262,7 @@ class AdvanceTargetingMailing extends CommonObject
     	 */
     	function fetch_by_mailing($id=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		$sql = "SELECT";
     		$sql.= " t.rowid,";
    @@ -281,7 +303,6 @@ class AdvanceTargetingMailing extends CommonObject
     				$this->datec = $this->db->jdate($obj->datec);
     				$this->fk_user_mod = $obj->fk_user_mod;
     				$this->tms = $this->db->jdate($obj->tms);
    -
     			}
     			$this->db->free($resql);
     
    @@ -298,6 +319,7 @@ class AdvanceTargetingMailing extends CommonObject
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Load object in memory from the database
     	 *
    @@ -307,6 +329,7 @@ class AdvanceTargetingMailing extends CommonObject
     	 */
     	function fetch_by_element($id=0, $type_element='mailing')
     	{
    +        // phpcs:enable
     		global $langs;
     		$sql = "SELECT";
     		$sql.= " t.rowid,";
    @@ -347,7 +370,6 @@ class AdvanceTargetingMailing extends CommonObject
     				$this->datec = $this->db->jdate($obj->datec);
     				$this->fk_user_mod = $obj->fk_user_mod;
     				$this->tms = $this->db->jdate($obj->tms);
    -
     			}
     			$this->db->free($resql);
     
    @@ -523,6 +545,7 @@ class AdvanceTargetingMailing extends CommonObject
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Load object in memory from database
     	 *
    @@ -531,6 +554,7 @@ class AdvanceTargetingMailing extends CommonObject
     	 */
     	function query_thirdparty($arrayquery)
     	{
    +        // phpcs:enable
     		global $langs,$conf;
     
     		$sql = "SELECT";
    @@ -621,30 +645,26 @@ class AdvanceTargetingMailing extends CommonObject
     						if (!empty($arrayquery['options_'.$key.'_max'])) {
     							$sqlwhere[]= " (te.".$key." >= ".$arrayquery['options_'.$key.'_max']." AND te.".$key." <= ".$arrayquery['options_'.$key.'_min'].")";
     						}
    -					} else if (($extrafields->attribute_type[$key] == 'date') ||
    +					} elseif (($extrafields->attribute_type[$key] == 'date') ||
     						($extrafields->attribute_type[$key] == 'datetime')) {
     						if (!empty($arrayquery['options_'.$key.'_end_dt'])){
     							$sqlwhere[]= " (te.".$key." >= '".$this->db->idate($arrayquery['options_'.$key.'_st_dt'])."' AND te.".$key." <= '".$this->db->idate($arrayquery['options_'.$key.'_end_dt'])."')";
     						}
    -					}else if ($extrafields->attribute_type[$key] == 'boolean') {
    +					} elseif ($extrafields->attribute_type[$key] == 'boolean') {
     						if ($arrayquery['options_'.$key]!=''){
     							$sqlwhere[]= " (te.".$key." = ".$arrayquery['options_'.$key].")";
     						}
    -					}else{
    +					} else {
     						if (is_array($arrayquery['options_'.$key])) {
     							$sqlwhere[]= " (te.".$key." IN ('".implode("','",$arrayquery['options_'.$key])."'))";
     						} elseif (!empty($arrayquery['options_'.$key])) {
     							$sqlwhere[]= " (te.".$key." LIKE '".$arrayquery['options_'.$key]."')";
     						}
     					}
    -
     				}
    -
    -
     			}
     
     			if (count($sqlwhere)>0)	$sql.= " WHERE ".implode(" AND ",$sqlwhere);
    -
     		}
     
     
    @@ -676,6 +696,7 @@ class AdvanceTargetingMailing extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Load object in memory from database
     	 *
    @@ -685,6 +706,7 @@ class AdvanceTargetingMailing extends CommonObject
     	 */
     	function query_contact($arrayquery, $withThirdpartyFilter = 0)
     	{
    +        // phpcs:enable
     		global $langs,$conf;
     
     		$sql = "SELECT";
    @@ -723,7 +745,16 @@ class AdvanceTargetingMailing extends CommonObject
     				$sqlwhere[]= " (t.civility IN ('".$this->db->escape(implode("','",$arrayquery['contact_civility']))."'))";
     			}
     			if ($arrayquery['contact_no_email']!='') {
    -				$sqlwhere[]= " (t.no_email='".$this->db->escape($arrayquery['contact_no_email'])."')";
    +				$tmpwhere = '';
    +				if (! empty($arrayquery['contact_no_email']))
    +				{
    +					$tmpwhere.= "(t.email IN (SELECT email FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE t.entity IN (".getEntity('mailing').") AND email = '".$this->db->escape($arrayquery['contact_no_email'])."'))";
    +				}
    +				else
    +				{
    +					$tmpwhere.= "(t.email NOT IN (SELECT email FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE t.entity IN (".getEntity('mailing').") AND email = '".$this->db->escape($arrayquery['contact_no_email'])."'))";
    +				}
    +				$sqlwhere[]= $tmpwhere;
     			}
     			if ($arrayquery['contact_update_st_dt']!='') {
     				$sqlwhere[]= " (t.tms >= '".$this->db->idate($arrayquery['contact_update_st_dt'])."' AND t.tms <= '".$this->db->idate($arrayquery['contact_update_end_dt'])."')";
    @@ -774,7 +805,6 @@ class AdvanceTargetingMailing extends CommonObject
     							$sqlwhere[]= " (te.".$key." LIKE '".$arrayquery['options_'.$key.'_cnct']."')";
     						}
     					}
    -
     				}
     
     				if (! empty($withThirdpartyFilter)) {
    @@ -916,7 +946,8 @@ class AdvanceTargetingMailing extends CommonObject
     	 *  									For exemple  jean;joe;jim%%;!jimo;!jima%> will target all jean, joe, start with jim but not jimo and not everythnig taht start by jima
     	 * 	@return		string		Sql to use for the where condition
     	 */
    -	public function transformToSQL($column_to_test,$criteria) {
    +    public function transformToSQL($column_to_test,$criteria)
    +    {
     		$return_sql_criteria = '(';
     
     		//This is a multiple value test
    @@ -939,7 +970,6 @@ class AdvanceTargetingMailing extends CommonObject
     			if (count($return_sql_not_like)>0) {
     				$return_sql_criteria .= ' AND (' . implode (' AND ', $return_sql_not_like).')';
     			}
    -
     		}else {
     			$return_sql_criteria .= $column_to_test . ' LIKE \''.$this->db->escape($criteria).'\'';
     		}
    @@ -948,6 +978,4 @@ class AdvanceTargetingMailing extends CommonObject
     
     		return $return_sql_criteria;
     	}
    -
    -
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php b/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php
    index 7408bb27d37..19b1ce3e9b4 100644
    --- a/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php
    +++ b/htdocs/comm/mailing/class/html.formadvtargetemailing.class.php
    @@ -16,9 +16,9 @@
      */
     
     /**
    - * \file    comm/mailing/class/html.formadvtragetemaling.class.php
    + * \file    comm/mailing/class/html.formadvtargetemailing.class.php
      * \ingroup mailing
    - * \brief   Fichier de la classe des fonctions predefinie de composants html advtargetemaling
    + * \brief   Fichier de la classe des fonctions predefinies de composant html advtargetemailing
      */
     
     /**
    @@ -26,15 +26,23 @@
      */
     class FormAdvTargetEmailing extends Form
     {
    -	var $db;
    -	var $error;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 * Constructor
     	 *
     	 * @param DoliDB $db handler
     	 */
    -	function __construct($db) {
    +    function __construct($db)
    +    {
     		global $langs;
     
     		$this->db = $db;
    @@ -47,7 +55,8 @@ class FormAdvTargetEmailing extends Form
     	 * @param string $htmlname select field
     	 * @return string select field
     	 */
    -	function multiselectProspectionStatus($selected_array = array(), $htmlname = 'cust_prospect_status') {
    +    function multiselectProspectionStatus($selected_array = array(), $htmlname = 'cust_prospect_status')
    +    {
     		global $conf, $langs;
     		$options_array = array();
     
    @@ -83,7 +92,8 @@ class FormAdvTargetEmailing extends Form
     	 * @param array $selected_array or Code or Label of preselected country
     	 * @return string HTML string with select
     	 */
    -	function multiselectCountry($htmlname = 'country_id', $selected_array=array()) {
    +    function multiselectCountry($htmlname = 'country_id', $selected_array=array())
    +    {
     		global $conf, $langs;
     
     		$langs->load("dict");
    @@ -143,7 +153,8 @@ class FormAdvTargetEmailing extends Form
     	 * @param User $user User action
     	 * @return string combo list code
     	 */
    -	function multiselectselectSalesRepresentatives($htmlname, $selected_array, $user) {
    +    function multiselectselectSalesRepresentatives($htmlname, $selected_array, $user)
    +    {
     
     		global $conf;
     
    @@ -167,7 +178,6 @@ class FormAdvTargetEmailing extends Form
     				$label = $obj_usr->firstname . " " . $obj_usr->name . " (" . $obj_usr->login . ')';
     
     				$options_array [$obj_usr->rowid] = $label;
    -
     			}
     			$this->db->free ( $resql_usr );
     		} else {
    @@ -184,7 +194,8 @@ class FormAdvTargetEmailing extends Form
     	 * @param array $selected_array selected array
     	 * @return string combo list code
     	 */
    -	function multiselectselectLanguage($htmlname='', $selected_array=array()) {
    +    function multiselectselectLanguage($htmlname='', $selected_array=array())
    +    {
     
     		global $conf,$langs;
     
    @@ -311,7 +322,6 @@ class FormAdvTargetEmailing extends Form
     					$i++;
     				}
     			}
    -
     		}
     		else
     		{
    @@ -330,7 +340,8 @@ class FormAdvTargetEmailing extends Form
     	 * @param int $showempty show empty
     	 * @return string HTML combo
     	 */
    -	function advMultiselectarray($htmlname, $options_array = array(), $selected_array = array(), $showempty = 0) {
    +    function advMultiselectarray($htmlname, $options_array = array(), $selected_array = array(), $showempty = 0)
    +    {
     		global $conf, $langs;
     
     		$form=new Form($this->db);
    @@ -365,10 +376,10 @@ class FormAdvTargetEmailing extends Form
     	/**
     	 *  Return combo list of categories
     	 *
    -	 *  @param  string	$htmlname   Name of categorie
    -	 * 	@param	array	$selected_array	value selected
    -	 * 	@param	int	$type	type
    -	 *  @return	string HTML combo
    +	 *  @param  string	$htmlname  		Name of categorie
    +	 * 	@param	array	$selected_array	Value selected
    +	 * 	@param	int		$type			Type
    +	 *  @return	string 					HTML combo
     	 */
     	public function multiselectCategories($htmlname='',$selected_array = array(), $type=0)
     	{
    @@ -398,7 +409,6 @@ class FormAdvTargetEmailing extends Form
     					$i++;
     				}
     			}
    -
     		}
     		else
     		{
    @@ -417,7 +427,8 @@ class FormAdvTargetEmailing extends Form
     	 * @param	string		$type_element	Type element. Example: 'mailing'
     	 * @return	string 						HTML combo
     	 */
    -	public function selectAdvtargetemailingTemplate($htmlname='template_id', $selected=0, $showempty=0, $type_element='mailing') {
    +    public function selectAdvtargetemailingTemplate($htmlname='template_id', $selected=0, $showempty=0, $type_element='mailing')
    +    {
     		global $conf, $user, $langs;
     
     		$out = '';
    @@ -460,4 +471,4 @@ class FormAdvTargetEmailing extends Form
     		$this->db->free ( $resql );
     		return $out;
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/comm/mailing/class/mailing.class.php b/htdocs/comm/mailing/class/mailing.class.php
    index 63fc0a2caab..b807ea23334 100644
    --- a/htdocs/comm/mailing/class/mailing.class.php
    +++ b/htdocs/comm/mailing/class/mailing.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -31,44 +31,55 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class Mailing extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='mailing';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='mailing';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto='email';
     
    -	var $titre;
    -	var $sujet;
    -	var $body;
    -	var $nbemail;
    -	var $bgcolor;
    -	var $bgimage;
    +	public $titre;
    +	public $sujet;
    +	public $body;
    +	public $nbemail;
    +	public $bgcolor;
    +	public $bgimage;
     
    -	var $statut;       // Status 0=Draft, 1=Validated, 2=Sent partially, 3=Sent completely
    +	public $statut;       // Status 0=Draft, 1=Validated, 2=Sent partially, 3=Sent completely
     
    -	var $email_from;
    -	var $email_replyto;
    -	var $email_errorsto;
    +	public $email_from;
    +	public $email_replyto;
    +	public $email_errorsto;
     
    -	var $joined_file1;
    -	var $joined_file2;
    -	var $joined_file3;
    -	var $joined_file4;
    +	public $joined_file1;
    +	public $joined_file2;
    +	public $joined_file3;
    +	public $joined_file4;
     
    -	var $user_creat;
    -	var $user_valid;
    +	public $user_creat;
    +	public $user_valid;
     
    -	var $date_creat;
    -	var $date_valid;
    +	public $date_creat;
    +	public $date_valid;
     
    -	var $extraparams=array();
    +	public $extraparams=array();
     
     	public $statut_dest=array();
     	public $statuts=array();
     
     
    -	/**
    +    /**
          *  Constructor
          *
    -     *  @param      DoliDb		$db      Database handler
    +     *  @param      DoliDb      $db      Database handler
     	 */
     	function __construct($db)
     	{
    @@ -85,7 +96,6 @@ class Mailing extends CommonObject
     		$this->statut_dest[1] = 'MailingStatusSent';
     		$this->statut_dest[2] = 'MailingStatusRead';
     		$this->statut_dest[3] = 'MailingStatusReadAndUnsubscribe';    // Read but ask to not be contacted anymore
    -
     	}
     
     	/**
    @@ -269,8 +279,6 @@ class Mailing extends CommonObject
     
     		$object=new Mailing($this->db);
     
    -		$object->context['createfromclone']='createfromclone';
    -
     		$this->db->begin();
     
     		// Load source object
    @@ -304,6 +312,7 @@ class Mailing extends CommonObject
     		}
     
     		// Create clone
    +		$object->context['createfromclone']='createfromclone';
     		$result=$object->create($user);
     
     		// Other options
    @@ -335,7 +344,6 @@ class Mailing extends CommonObject
     				$sql.= " FROM ".MAIN_DB_PREFIX."mailing_cibles ";
     				$sql.= " WHERE fk_mailing = ".$fromid;
     
    -				dol_syslog(get_class($this)."::createFromClone", LOG_DEBUG);
     				$result=$this->db->query($sql);
     				if ($result)
     				{
    @@ -352,7 +360,6 @@ class Mailing extends CommonObject
     							'source_id'=>$obj->source_id,
     							'source_type'=>$obj->source_type);
     						}
    -
     					}
     				}
     				else
    @@ -363,7 +370,6 @@ class Mailing extends CommonObject
     
     				$mailing_target->add_to_target($object->id, $target_array);
     			}
    -
     		}
     
     		unset($object->context['createfromclone']);
    @@ -432,6 +438,7 @@ class Mailing extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Delete targets emailing
     	 *
    @@ -439,6 +446,7 @@ class Mailing extends CommonObject
     	 */
     	function delete_targets()
     	{
    +        // phpcs:enable
     		$sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing_cibles";
     		$sql.= " WHERE fk_mailing = ".$this->id;
     
    @@ -456,6 +464,7 @@ class Mailing extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Change status of each recipient
     	 *
    @@ -464,6 +473,7 @@ class Mailing extends CommonObject
     	 */
     	function reset_targets_status($user)
     	{
    +        // phpcs:enable
     		$sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles";
     		$sql.= " SET statut = 0";
     		$sql.= " WHERE fk_mailing = ".$this->id;
    @@ -516,6 +526,81 @@ class Mailing extends CommonObject
     	}
     
     
    +	/**
    +	 *  Return a link to the object card (with optionaly the picto)
    +	 *
    +	 *	@param	int		$withpicto					Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto)
    +	 *	@param	string	$option						On what the link point to ('nolink', ...)
    +	 *  @param	int  	$notooltip					1=Disable tooltip
    +	 *  @param  string  $morecss            		Add more css on link
    +	 *  @param  int     $save_lastsearch_value    	-1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    +	 *	@return	string								String with URL
    +	 */
    +	function getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1)
    +	{
    +		global $db, $conf, $langs, $hookmanager;
    +		global $dolibarr_main_authentication, $dolibarr_main_demo;
    +		global $menumanager;
    +
    +		if (! empty($conf->dol_no_mouse_hover)) $notooltip=1;   // Force disable tooltips
    +
    +		$result = '';
    +		$companylink = '';
    +
    +		$label = '<u>' . $langs->trans("ShowEmailing") . '</u>';
    +		$label.= '<br>';
    +		$label.= '<b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
    +
    +		$url = DOL_URL_ROOT.'/comm/mailing/card.php?id='.$this->id;
    +
    +		if ($option != 'nolink')
    +		{
    +			// Add param to save lastsearch_values or not
    +			$add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    +			if ($save_lastsearch_value == -1 && preg_match('/list\.php/',$_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1;
    +			if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
    +		}
    +
    +		$linkclose='';
    +		if (empty($notooltip))
    +		{
    +			if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
    +			{
    +				$label=$langs->trans("ShowEmailing");
    +				$linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    +			}
    +			$linkclose.=' title="'.dol_escape_htmltag($label, 1).'"';
    +			$linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"';
    +
    +			/*
    +			 $hookmanager->initHooks(array('myobjectdao'));
    +			 $parameters=array('id'=>$this->id);
    +			 $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +			 if ($reshook > 0) $linkclose = $hookmanager->resPrint;
    +			 */
    +		}
    +		else $linkclose = ($morecss?' class="'.$morecss.'"':'');
    +
    +		$linkstart = '<a href="'.$url.'"';
    +		$linkstart.=$linkclose.'>';
    +		$linkend='</a>';
    +
    +		$result .= $linkstart;
    +		if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
    +		if ($withpicto != 2) $result.= $this->ref;
    +		$result .= $linkend;
    +		//if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
    +
    +		global $action;
    +		$hookmanager->initHooks(array('emailingdao'));
    +		$parameters=array('id'=>$this->id, 'getnomurl'=>$result);
    +		$reshook=$hookmanager->executeHooks('getNomUrl',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +		if ($reshook > 0) $result = $hookmanager->resPrint;
    +		else $result .= $hookmanager->resPrint;
    +
    +		return $result;
    +	}
    +
     	/**
     	 *  Return label of status of emailing (draft, validated, ...)
     	 *
    @@ -527,6 +612,7 @@ class Mailing extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -536,39 +622,36 @@ class Mailing extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->load('mails');
     
    -		if ($mode == 0)
    +		if ($mode == 0 || $mode == 1)
     		{
     			return $langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 1)
    -		{
    -			return $langs->trans($this->statuts[$statut]);
    -		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut == 0) return img_picto($langs->trans($this->statuts[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]);
     			if ($statut == 1) return img_picto($langs->trans($this->statuts[$statut]),'statut1').' '.$langs->trans($this->statuts[$statut]);
     			if ($statut == 2) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]);
     			if ($statut == 3) return img_picto($langs->trans($this->statuts[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut == 0) return img_picto($langs->trans($this->statuts[$statut]),'statut0');
     			if ($statut == 1) return img_picto($langs->trans($this->statuts[$statut]),'statut1');
     			if ($statut == 2) return img_picto($langs->trans($this->statuts[$statut]),'statut3');
     			if ($statut == 3) return img_picto($langs->trans($this->statuts[$statut]),'statut6');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut == 0) return img_picto($langs->trans($this->statuts[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]);
     			if ($statut == 1) return img_picto($langs->trans($this->statuts[$statut]),'statut1').' '.$langs->trans($this->statuts[$statut]);
     			if ($statut == 2) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]);
     			if ($statut == 3) return img_picto($langs->trans($this->statuts[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut == 0)  return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]),'statut0');
     			if ($statut == 1)  return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]),'statut1');
    @@ -596,39 +679,39 @@ class Mailing extends CommonObject
     		{
     			return $langs->trans('MailingStatusError');
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			return $langs->trans('MailingStatusSent');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut==-1) return $langs->trans("MailingStatusError").' '.img_error($desc);
     			if ($statut==1) return $langs->trans("MailingStatusSent").' '.img_picto($langs->trans("MailingStatusSent"),'statut6');
     			if ($statut==2) return $langs->trans("MailingStatusRead").' '.img_picto($langs->trans("MailingStatusRead"),'statut4');
     			if ($statut==3) return $langs->trans("MailingStatusNotContact").' '.img_picto($langs->trans("MailingStatusNotContact"),'statut3');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut==-1) return $langs->trans("MailingStatusError").' '.img_error($desc);
     			if ($statut==1) return $langs->trans("MailingStatusSent").' '.img_picto($langs->trans("MailingStatusSent"),'statut6');
     			if ($statut==2) return $langs->trans("MailingStatusRead").' '.img_picto($langs->trans("MailingStatusRead"),'statut4');
     			if ($statut==3) return $langs->trans("MailingStatusNotContact").' '.img_picto($langs->trans("MailingStatusNotContact"),'statut3');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut==-1) return $langs->trans("MailingStatusError").' '.img_error($desc);
     			if ($statut==1) return $langs->trans("MailingStatusSent").' '.img_picto($langs->trans("MailingStatusSent"),'statut6');
     			if ($statut==2) return $langs->trans("MailingStatusRead").' '.img_picto($langs->trans("MailingStatusRead"),'statut4');
     			if ($statut==3) return $langs->trans("MailingStatusNotContact").' '.img_picto($langs->trans("MailingStatusNotContact"),'statut3');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     		    if ($statut==-1) return $langs->trans("MailingStatusError").' '.img_error($desc);
     		    if ($statut==1) return $langs->trans("MailingStatusSent").' '.img_picto($langs->trans("MailingStatusSent"),'statut6');
     		    if ($statut==2) return $langs->trans("MailingStatusRead").' '.img_picto($langs->trans("MailingStatusRead"),'statut4');
     		    if ($statut==3) return $langs->trans("MailingStatusNotContact").' '.img_picto($langs->trans("MailingStatusNotContact"),'statut3');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     		    if ($statut==-1) return $langs->trans("MailingStatusError").' '.img_error($desc);
     		    if ($statut==1) return $langs->trans("MailingStatusSent").' '.img_picto($langs->trans("MailingStatusSent"),'statut6');
    @@ -636,6 +719,4 @@ class Mailing extends CommonObject
     		    if ($statut==3) return $langs->trans("MailingStatusNotContact").' '.img_picto($langs->trans("MailingStatusNotContact"),'statut3');
     		}
     	}
    -
     }
    -
    diff --git a/htdocs/comm/mailing/index.php b/htdocs/comm/mailing/index.php
    index 17693a1a73c..cb062e00777 100644
    --- a/htdocs/comm/mailing/index.php
    +++ b/htdocs/comm/mailing/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2010      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010      Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -182,7 +182,6 @@ if ($result)
           print '</tr>';
     	  $i++;
     	}
    -
         }
       else
         {
    @@ -210,7 +209,6 @@ if ($langs->file_exists("html/spam.html",0)) {
         print '<br>';
      }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/mailing/info.php b/htdocs/comm/mailing/info.php
    index b4f2eaeb6f3..79b3d209ec7 100644
    --- a/htdocs/comm/mailing/info.php
    +++ b/htdocs/comm/mailing/info.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -75,5 +75,6 @@ if ($object->fetch($id) >= 0)
     	dol_fiche_end();
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/mailing/list.php b/htdocs/comm/mailing/list.php
    index 87a390d4006..9f0cabea76f 100644
    --- a/htdocs/comm/mailing/list.php
    +++ b/htdocs/comm/mailing/list.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -35,24 +35,26 @@ $sortfield = GETPOST("sortfield",'alpha');
     $sortorder = GETPOST("sortorder",'alpha');
     $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
     $page = GETPOST("page",'int');
    -if (empty($page) || $page == -1) { $page = 0; }     // If $page is not defined, or '' or -1
    +if (empty($page) || $page == -1 || GETPOST('button_search','alpha') || GETPOST('button_removefilter','alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; }     // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action
     $offset = $limit * $page;
     $pageprev = $page - 1;
     $pagenext = $page + 1;
     if (! $sortorder) $sortorder="DESC";
     if (! $sortfield) $sortfield="m.date_creat";
     
    -$sall=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml'));
    -$sref=GETPOST("sref", "alpha");
    +$search_all=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml'));
    +$search_ref=GETPOST("search_ref", "alpha") ? GETPOST("search_ref", "alpha") : GETPOST("sref", "alpha");
     $filteremail=GETPOST('filteremail','alpha');
     
    +$object = new Mailing($db);
    +
     // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
     $hookmanager->initHooks(array('mailinglist'));
     $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('mailing');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -61,6 +63,52 @@ $fieldstosearchall = array(
     
     
     
    +
    +/*
    + * Actions
    + */
    +
    +if (GETPOST('cancel','alpha')) { $action='list'; $massaction=''; }
    +if (! GETPOST('confirmmassaction','alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; }
    +
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +if (empty($reshook))
    +{
    +	// Selection of new fields
    +	include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
    +
    +	// Purge search criteria
    +	if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') ||GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
    +	{
    +		/*foreach($object->fields as $key => $val)
    +		{
    +			$search[$key]='';
    +		}*/
    +		$search_ref = '';
    +		$search_all = '';
    +		$toselect='';
    +		$search_array_options=array();
    +	}
    +	if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')
    +		|| GETPOST('button_search_x','alpha') || GETPOST('button_search.x','alpha') || GETPOST('button_search','alpha'))
    +	{
    +		$massaction='';     // Protection to avoid mass action if we force a new search during a mass action confirmation
    +	}
    +
    +	// Mass actions
    +	/*$objectclass='MyObject';
    +	$objectlabel='MyObject';
    +	$permtoread = $user->rights->mymodule->read;
    +	$permtodelete = $user->rights->mymodule->delete;
    +	$uploaddir = $conf->mymodule->dir_output;
    +	include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
    +	*/
    +}
    +
    +
     /*
      * View
      */
    @@ -76,8 +124,8 @@ if ($filteremail)
     	$sql.= " FROM ".MAIN_DB_PREFIX."mailing as m, ".MAIN_DB_PREFIX."mailing_cibles as mc";
     	$sql.= " WHERE m.rowid = mc.fk_mailing AND m.entity = ".$conf->entity;
     	$sql.= " AND mc.email = '".$db->escape($filteremail)."'";
    -	if ($sref) $sql.= " AND m.rowid = '".$db->escape($sref)."'";
    -	if ($sall) $sql.= " AND (m.titre like '%".$db->escape($sall)."%' OR m.sujet like '%".$db->escape($sall)."%' OR m.body like '%".$db->escape($sall)."%')";
    +	if ($search_ref) $sql.= " AND m.rowid = '".$db->escape($search_ref)."'";
    +	if ($search_all) $sql.= " AND (m.titre like '%".$db->escape($search_all)."%' OR m.sujet like '%".$db->escape($search_all)."%' OR m.body like '%".$db->escape($search_all)."%')";
     	if (! $sortorder) $sortorder="ASC";
     	if (! $sortfield) $sortfield="m.rowid";
     	$sql.= $db->order($sortfield,$sortorder);
    @@ -88,8 +136,8 @@ else
     	$sql = "SELECT m.rowid, m.titre, m.nbemail, m.statut, m.date_creat as datec, m.date_envoi as date_envoi";
     	$sql.= " FROM ".MAIN_DB_PREFIX."mailing as m";
     	$sql.= " WHERE m.entity = ".$conf->entity;
    -	if ($sref) $sql.= " AND m.rowid = '".$db->escape($sref)."'";
    -	if ($sall) $sql.= " AND (m.titre like '%".$db->escape($sall)."%' OR m.sujet like '%".$db->escape($sall)."%' OR m.body like '%".$db->escape($sall)."%')";
    +	if ($search_ref) $sql.= " AND m.rowid = '".$db->escape($search_ref)."'";
    +	if ($search_all) $sql.= " AND (m.titre like '%".$db->escape($search_all)."%' OR m.sujet like '%".$db->escape($search_all)."%' OR m.body like '%".$db->escape($search_all)."%')";
     	if (! $sortorder) $sortorder="ASC";
     	if (! $sortfield) $sortfield="m.rowid";
     	$sql.= $db->order($sortfield,$sortorder);
    @@ -115,7 +163,7 @@ if ($result)
     
     	$i = 0;
     
    -	$param = "&sall=".urlencode($sall);
    +	$param = "&search_all=".urlencode($search_all);
     	if ($filteremail) $param.='&filteremail='.urlencode($filteremail);
     
     	print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
    @@ -135,11 +183,11 @@ if ($result)
     
     	print '<tr class="liste_titre_filter">';
     	print '<td class="liste_titre">';
    -	print '<input type="text" class="flat maxwidth50" name="sref" value="'.dol_escape_htmltag($sref).'">';
    +	print '<input type="text" class="flat maxwidth50" name="search_ref" value="'.dol_escape_htmltag($search_ref).'">';
     	print '</td>';
     	// Title
     	print '<td class="liste_titre">';
    -	print '<input type="text" class="flat maxwidth100 maxwidth50onsmartphone" name="sall" value="'.dol_escape_htmltag($sall).'">';
    +	print '<input type="text" class="flat maxwidth100 maxwidth50onsmartphone" name="search_all" value="'.dol_escape_htmltag($search_all).'">';
     	print '</td>';
     	print '<td class="liste_titre">&nbsp;</td>';
     	if (! $filteremail) print '<td class="liste_titre">&nbsp;</td>';
    @@ -169,16 +217,22 @@ if ($result)
     	{
     		$obj = $db->fetch_object($result);
     
    -
    +		$email->id = $obj->rowid;
    +		$email->ref = $obj->rowid;
     
     		print "<tr>";
    -		print '<td><a href="'.DOL_URL_ROOT.'/comm/mailing/card.php?id='.$obj->rowid.'">';
    -		print img_object($langs->trans("ShowEMail"),"email").' '.stripslashes($obj->rowid).'</a></td>';
    +
    +		print '<td>';
    +		print $email->getNomUrl(1);
    +		print '</td>';
    +
     		print '<td>'.$obj->titre.'</td>';
     		// Date creation
    +
     		print '<td align="center">';
     		print dol_print_date($db->jdate($obj->datec),'day');
     		print '</td>';
    +
     		// Nb of email
     		if (! $filteremail)
     		{
    @@ -196,9 +250,11 @@ if ($result)
     			print $nbemail;
     			print '</td>';
     		}
    +
     		// Last send
     		print '<td align="center" class="nowrap">'.dol_print_date($db->jdate($obj->date_envoi),'day').'</td>';
     		print '</td>';
    +
     		// Status
     		print '<td align="right" class="nowrap">';
     		if ($filteremail)
    @@ -210,7 +266,9 @@ if ($result)
     			print $email->LibStatut($obj->statut,5);
     		}
     		print '</td>';
    +
     		print '<td></td>';
    +
     		print "</tr>\n";
     		$i++;
     	}
    @@ -224,6 +282,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/multiprix.php b/htdocs/comm/multiprix.php
    index 1e8c5c82cf4..7bbf727a517 100644
    --- a/htdocs/comm/multiprix.php
    +++ b/htdocs/comm/multiprix.php
    @@ -45,7 +45,7 @@ if ($user->societe_id > 0)
     
     if ($_POST["action"] == 'setpricelevel')
     {
    -	$soc = New Societe($db);
    +	$soc = new Societe($db);
     	$soc->fetch($id);
     	$soc->set_price_level($_POST["price_level"],$user);
     
    @@ -174,8 +174,8 @@ if ($_socid > 0)
     	{
     		dol_print_error($db);
     	}
    -
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php
    index be5494fbb75..9605f413435 100644
    --- a/htdocs/comm/propal/card.php
    +++ b/htdocs/comm/propal/card.php
    @@ -1,17 +1,18 @@
     <?php
    -/* Copyright (C) 2001-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
    +/* Copyright (C) 2001-2007  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne           <eric.seigne@ryxeo.com>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani      <acianfa@free.fr>
      * Copyright (C) 2010-2016 Juanjo Menent         <jmenent@2byte.es>
    - * Copyright (C) 2010-2015 Philippe Grand        <philippe.grand@atoo-net.com>
    + * Copyright (C) 2010-2018 Philippe Grand        <philippe.grand@atoo-net.com>
      * Copyright (C) 2012-2013 Christophe Battarel   <christophe.battarel@altairis.fr>
      * Copyright (C) 2012      Cedric Salvador       <csalvador@gpcsolutions.fr>
      * Copyright (C) 2013-2014 Florian Henry		 <florian.henry@open-concept.pro>
    - * Copyright (C) 2014	   Ferran Marcet		 <fmarcet@2byte.es>
    - * Copyright (C) 2016      Marcos García         <marcosgdf@gmail.com>
    + * Copyright (C) 2014       Ferran Marcet		 <fmarcet@2byte.es>
    + * Copyright (C) 2016       Marcos García         <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -347,13 +348,13 @@ if (empty($reshook))
     			// If we select proposal to clone during creation (when option PROPAL_CLONE_ON_CREATE_PAGE is on)
     			if (GETPOST('createmode') == 'copy' && GETPOST('copie_propal'))
     			{
    -				if ($object->fetch(GETPOST('copie_propal')) > 0) {
    +				if ($object->fetch(GETPOST('copie_propal','int')) > 0) {
     					$object->ref = GETPOST('ref');
     					$object->datep = $datep;
     					$object->date_livraison = $date_delivery;
     					$object->availability_id = GETPOST('availability_id');
     					$object->demand_reason_id = GETPOST('demand_reason_id');
    -					$object->fk_delivery_address = GETPOST('fk_address');
    +					$object->fk_delivery_address = GETPOST('fk_address','int');
     					$object->shipping_method_id = GETPOST('shipping_method_id', 'int');
     					$object->duree_validite = $duration;
     					$object->cond_reglement_id = GETPOST('cond_reglement_id');
    @@ -361,9 +362,9 @@ if (empty($reshook))
     					$object->fk_account = GETPOST('fk_account', 'int');
     					$object->remise_percent = GETPOST('remise_percent');
     					$object->remise_absolue = GETPOST('remise_absolue');
    -					$object->socid = GETPOST('socid');
    -					$object->contactid = GETPOST('contactid');
    -					$object->fk_project = GETPOST('projectid');
    +					$object->socid = GETPOST('socid','int');
    +					$object->contactid = GETPOST('contactid','int');
    +					$object->fk_project = GETPOST('projectid','int');
     					$object->modelpdf = GETPOST('model');
     					$object->author = $user->id; // deprecated
     					$object->note_private = GETPOST('note_private','none');
    @@ -379,6 +380,7 @@ if (empty($reshook))
     				}
     			} else {
     				$object->ref = GETPOST('ref');
    +				$object->entity = (GETPOSTISSET('entity')?GETPOST('entity', 'int'):$conf->entity);
     				$object->ref_client = GETPOST('ref_client');
     				$object->datep = $datep;
     				$object->date_livraison = $date_delivery;
    @@ -390,8 +392,8 @@ if (empty($reshook))
     				$object->cond_reglement_id = GETPOST('cond_reglement_id');
     				$object->mode_reglement_id = GETPOST('mode_reglement_id');
     				$object->fk_account = GETPOST('fk_account', 'int');
    -				$object->contactid = GETPOST('contactid');
    -				$object->fk_project = GETPOST('projectid');
    +				$object->contactid = GETPOST('contactid','int');
    +				$object->fk_project = GETPOST('projectid','int');
     				$object->modelpdf = GETPOST('model');
     				$object->author = $user->id; // deprecated
     				$object->note_private = GETPOST('note_private','none');
    @@ -565,6 +567,16 @@ if (empty($reshook))
     						}
     					}
     
    +					if (! empty($conf->global->PROPOSAL_AUTO_ADD_AUTHOR_AS_CONTACT))
    +					{
    +						$result = $object->add_contact($user->id, 'SALESREPFOLL', 'internal');
    +						if ($result < 0)
    +						{
    +							$error++;
    +							setEventMessages($langs->trans("ErrorFailedToAddUserAsContact"), null, 'errors');
    +						}
    +					}
    +
     					if (! $error)
     					{
     						$db->commit();
    @@ -685,6 +697,88 @@ if (empty($reshook))
     		}
     	}
     
    +	// add lines from objectlinked
    +	elseif($action == 'import_lines_from_object'
    +	    && $user->rights->propal->creer
    +	    && $object->statut == Propal::STATUS_DRAFT
    +	    )
    +	{
    +	    $fromElement = GETPOST('fromelement');
    +	    $fromElementid = GETPOST('fromelementid');
    +	    $importLines = GETPOST('line_checkbox');
    +
    +	    if(!empty($importLines) && is_array($importLines) && !empty($fromElement) && ctype_alpha($fromElement) && !empty($fromElementid))
    +	    {
    +	        if($fromElement == 'commande')
    +	        {
    +	            dol_include_once('/'.$fromElement.'/class/'.$fromElement.'.class.php');
    +	            $lineClassName = 'OrderLine';
    +	        }
    +	        elseif($fromElement == 'propal')
    +	        {
    +	            dol_include_once('/comm/'.$fromElement.'/class/'.$fromElement.'.class.php');
    +	            $lineClassName = 'PropaleLigne';
    +	        }
    +	        $nextRang = count($object->lines) + 1;
    +	        $importCount = 0;
    +	        $error = 0;
    +	        foreach($importLines as $lineId)
    +	        {
    +	            $lineId = intval($lineId);
    +	            $originLine = new $lineClassName($db);
    +	            if(intval($fromElementid) > 0 && $originLine->fetch( $lineId ) > 0)
    +	            {
    +	                $originLine->fetch_optionals($lineId);
    +	                $desc = $originLine->desc;
    +	                $pu_ht = $originLine->subprice;
    +	                $qty = $originLine->qty;
    +	                $txtva = $originLine->tva_tx;
    +	                $txlocaltax1 = $originLine->localtax1_tx;
    +	                $txlocaltax2 = $originLine->localtax2_tx;
    +	                $fk_product = $originLine->fk_product;
    +	                $remise_percent = $originLine->remise_percent;
    +	                $date_start = $originLine->date_start;
    +	                $date_end = $originLine->date_end;
    +	                $ventil = 0;
    +	                $info_bits = $originLine->info_bits;
    +	                $fk_remise_except = $originLine->fk_remise_except;
    +	                $price_base_type='HT';
    +	                $pu_ttc=0;
    +	                $type = $originLine->product_type;
    +	                $rang=$nextRang++;
    +	                $special_code = $originLine->special_code;
    +	                $origin = $originLine->element;
    +	                $origin_id = $originLine->id;
    +	                $fk_parent_line=0;
    +	                $fk_fournprice=$originLine->fk_fournprice;
    +	                $pa_ht = $originLine->pa_ht;
    +	                $label = $originLine->label;
    +	                $array_options = $originLine->array_options;
    +	                $situation_percent = 100;
    +	                $fk_prev_id = '';
    +	                $fk_unit = $originLine->fk_unit;
    +	                $pu_ht_devise = $originLine->multicurrency_subprice;
    +
    +	                $res = $object->addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1, $txlocaltax2, $fk_product, $remise_percent, $price_base_type, $pu_ttc, $info_bits, $type, $rang, $special_code, $fk_parent_line, $fk_fournprice, $pa_ht, $label,$date_start, $date_end,$array_options, $fk_unit, $origin, $origin_id, $pu_ht_devise, $fk_remise_except);
    +
    +	                if($res > 0){
    +	                    $importCount++;
    +	                }else{
    +	                    $error++;
    +	                }
    +	            }
    +	            else{
    +	                $error++;
    +	            }
    +	        }
    +
    +	        if($error)
    +	        {
    +	            setEventMessages($langs->trans('ErrorsOnXLines',$error), null, 'errors');
    +	        }
    +	    }
    +	}
    +
     	include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
     
     	// Actions to send emails
    @@ -783,7 +877,7 @@ if (empty($reshook))
     				if ($res = $prodcomb->fetchByProductCombination2ValuePairs($idprod, $combinations)) {
     					$idprod = $res->fk_product_child;
     				} else {
    -					setEventMessage($langs->trans('ErrorProductCombinationNotFound'), 'errors');
    +					setEventMessages($langs->trans('ErrorProductCombinationNotFound'), null, 'errors');
     					$error ++;
     				}
     			}
    @@ -947,7 +1041,7 @@ if (empty($reshook))
     					$desc = $prod->description;
     				}
     
    -				$desc = dol_concatdesc($desc, $product_desc);
    +				$desc = dol_concatdesc($desc, $product_desc, '', !empty($conf->global->CHANGE_ORDER_CONCAT_DESCRIPTION));
     
     				// Add dimensions into product description
     				/*if (empty($conf->global->MAIN_PRODUCT_DISABLE_AUTOADD_DIM))
    @@ -1026,7 +1120,7 @@ if (empty($reshook))
     			if ($tva_npr)
     				$info_bits |= 0x01;
     
    -			if (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min))) {
    +			if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS) ) && (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) {
     				$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency));
     				setEventMessages($mesg, null, 'errors');
     			} else {
    @@ -1090,7 +1184,7 @@ if (empty($reshook))
     	}
     
     	// Update a line within proposal
    -	else if ($action == 'updateligne' && $usercancreate && GETPOST('save'))
    +	else if ($action == 'updateline' && $usercancreate && GETPOST('save'))
     	{
     		// Define info_bits
     		$info_bits = 0;
    @@ -1145,8 +1239,7 @@ if (empty($reshook))
     				$price_min = $product->multiprices_min [$object->thirdparty->price_level];
     
     			$label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : '');
    -
    -			if ($price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min))) {
    +			if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS) )&& ($price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min)))) {
     				setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors');
     				$error ++;
     			}
    @@ -1227,7 +1320,7 @@ if (empty($reshook))
     		}
     	}
     
    -	else if ($action == 'updateligne' && $usercancreate && GETPOST('cancel','alpha'))
    +	else if ($action == 'updateline' && $usercancreate && GETPOST('cancel','alpha'))
     	{
     		header('Location: ' . $_SERVER['PHP_SELF'] . '?id=' . $object->id); // Pour reaffichage de la fiche en cours d'edition
     		exit();
    @@ -1354,7 +1447,6 @@ if (empty($reshook))
     	$upload_dir = $conf->propal->multidir_output[$object->entity];
     	$permissioncreate=$usercancreate;
     	include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
    -
     }
     
     
    @@ -1529,7 +1621,7 @@ if ($action == 'create')
     
     	// Date
     	print '<tr><td class="fieldrequired">' . $langs->trans('Date') . '</td><td>';
    -	$form->select_date('', '', '', '', '', "addprop", 1, 1);
    +	print $form->selectDate('', '', '', '', '', "addprop", 1, 1);
     	print '</td></tr>';
     
     	// Validaty duration
    @@ -1577,9 +1669,9 @@ if ($action == 'create')
     		$syear = date("Y", $tmpdte);
     		$smonth = date("m", $tmpdte);
     		$sday = date("d", $tmpdte);
    -		$form->select_date($syear."-".$smonth."-".$sday, 'date_livraison', '', '', '', "addprop");
    +		print $form->selectDate($syear."-".$smonth."-".$sday, 'date_livraison', '', '', '', "addprop");
     	} else {
    -		$form->select_date(-1, 'date_livraison', '', '', '', "addprop", 1, 1);
    +		print $form->selectDate(-1, 'date_livraison', '', '', '', "addprop", 1, 1);
     	}
     	print '</td></tr>';
     
    @@ -1617,7 +1709,7 @@ if ($action == 'create')
     	if (! empty($conf->multicurrency->enabled))
     	{
     		print '<tr>';
    -		print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
    +		print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>';
     		print '<td class="maxwidthonsmartphone">';
     		print $form->selectMultiCurrency($currency_code, 'multicurrency_code', 0);
     		print '</td></tr>';
    @@ -1767,7 +1859,6 @@ if ($action == 'create')
     
     		print '</table>';
     	}
    -
     } elseif ($object->id > 0) {
     	/*
     	 * Show object in view mode
    @@ -1815,7 +1906,6 @@ if ($action == 'create')
     		}
     
     		$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('SetAcceptedRefused'), $text, 'setstatut', $formquestion, '', 1, 250);
    -
     	}
     
     	// Confirm delete
    @@ -1861,12 +1951,11 @@ if ($action == 'create')
     			$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ValidateProp'), $text, 'confirm_validate', '', 0, 1);
     	}
     
    -	if (! $formconfirm) {
    -		$parameters = array('lineid' => $lineid);
    -		$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    -		if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    -		elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    -	}
    +	// Call Hook formConfirm
    +	$parameters = array('lineid' => $lineid);
    +	$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +	if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +	elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
     
     	// Print form confirm
     	print $formconfirm;
    @@ -1925,7 +2014,7 @@ if ($action == 'create')
     	print '<div class="fichehalfleft">';
     	print '<div class="underbanner clearboth"></div>';
     
    -	print '<table class="border" width="100%">';
    +	print '<table class="border tableforfield" width="100%">';
     
     	// Link for thirdparty discounts
     	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
    @@ -1964,7 +2053,7 @@ if ($action == 'create')
     		print '<form name="editdate" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
     		print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
     		print '<input type="hidden" name="action" value="setdate">';
    -		$form->select_date($object->date, 're', '', '', 0, "editdate");
    +		print $form->selectDate($object->date, 're', '', '', 0, "editdate");
     		print '<input type="submit" class="button" value="' . $langs->trans('Modify') . '">';
     		print '</form>';
     	} else {
    @@ -1990,7 +2079,7 @@ if ($action == 'create')
     		print '<form name="editecheance" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
     		print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
     		print '<input type="hidden" name="action" value="setecheance">';
    -		$form->select_date($object->fin_validite, 'ech', '', '', '', "editecheance");
    +		print $form->selectDate($object->fin_validite, 'ech', '', '', '', "editecheance");
     		print '<input type="submit" class="button" value="' . $langs->trans('Modify') . '">';
     		print '</form>';
     	} else {
    @@ -2098,7 +2187,7 @@ if ($action == 'create')
     	print '</tr></table>';
     	print '</td><td>';
     	if (! empty($object->brouillon) && $action == 'editmode' && $usercancreate) {
    -		$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT');
    +		$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT', 1, 1);
     	} else {
     		$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'none');
     	}
    @@ -2111,7 +2200,7 @@ if ($action == 'create')
     		print '<tr>';
     		print '<td>';
     		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print fieldLabel('Currency','multicurrency_code');
    +		print $form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0);
     		print '</td>';
     		if ($action != 'editmulticurrencycode' && ! empty($object->brouillon) && $usercancreate)
     			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencycode&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
    @@ -2128,7 +2217,7 @@ if ($action == 'create')
     		print '<tr>';
     		print '<td>';
     		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print fieldLabel('CurrencyRate','multicurrency_tx');
    +		print $form->editfieldkey('CurrencyRate', 'multicurrency_tx', '', $object, 0);
     		print '</td>';
     		if ($action != 'editmulticurrencyrate' && ! empty($object->brouillon) && $object->multicurrency_code && $object->multicurrency_code != $conf->currency && $usercancreate)
     			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencyrate&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
    @@ -2231,22 +2320,22 @@ if ($action == 'create')
     	print '<div class="ficheaddleft">';
     	print '<div class="underbanner clearboth"></div>';
     
    -	print '<table class="border centpercent">';
    +	print '<table class="border tableforfield centpercent">';
     
     	if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency))
     	{
     		// Multicurrency Amount HT
    -		print '<tr><td class="titlefieldmiddle">' . fieldLabel('MulticurrencyAmountHT','multicurrency_total_ht') . '</td>';
    +		print '<tr><td class="titlefieldmiddle">' . $form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0) . '</td>';
     		print '<td class="nowrap">' . price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     
     		// Multicurrency Amount VAT
    -		print '<tr><td>' . fieldLabel('MulticurrencyAmountVAT','multicurrency_total_tva') . '</td>';
    +		print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0) . '</td>';
     		print '<td class="nowrap">' . price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     
     		// Multicurrency Amount TTC
    -		print '<tr><td>' . fieldLabel('MulticurrencyAmountTTC','multicurrency_total_ttc') . '</td>';
    +		print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0) . '</td>';
     		print '<td class="nowrap">' . price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     	}
    @@ -2318,7 +2407,7 @@ if ($action == 'create')
     
     	print '	<form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#addline' : '#line_' . GETPOST('lineid')) . '" method="POST">
     	<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">
    -	<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateligne') . '">
    +	<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateline') . '">
     	<input type="hidden" name="mode" value="">
     	<input type="hidden" name="id" value="' . $object->id . '">
     	';
    @@ -2374,7 +2463,7 @@ if ($action == 'create')
     						print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=validate">' . $langs->trans('Validate') . '</a></div>';
     					}
     					else
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('Validate') . '</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">' . $langs->trans('Validate') . '</a></div>';
     				}
     				// Create event
     				/*if ($conf->agenda->enabled && ! empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) 	// Add hidden condition because this is not a "workflow" action so should appears somewhere else on page.
    @@ -2397,7 +2486,7 @@ if ($action == 'create')
     					if ($usercansend) {
     						print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle">' . $langs->trans('SendMail') . '</a></div>';
     					} else
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendMail') . '</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">' . $langs->trans('SendMail') . '</a></div>';
     				}
     
     				// Create an order
    @@ -2481,7 +2570,13 @@ if ($action == 'create')
     
     		// Show links to link elements
     		$linktoelem = $form->showLinkToObjectBlock($object, null, array('propal'));
    -		$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
    +
    +		$compatibleImportElementsList = false;
    +		if($user->rights->propal->creer && $object->statut == Propal::STATUS_DRAFT)
    +		{
    +		    $compatibleImportElementsList = array('commande','propal'); // import from linked elements
    +		}
    +		$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem, $compatibleImportElementsList);
     
     		// Show online signature link
     		$useonlinesignature = $conf->global->MAIN_FEATURES_LEVEL;	// Replace this with 1 when feature to make online signature is ok
    diff --git a/htdocs/comm/propal/class/api_proposals.class.php b/htdocs/comm/propal/class/api_proposals.class.php
    index 39857d88365..a03624f3122 100644
    --- a/htdocs/comm/propal/class/api_proposals.class.php
    +++ b/htdocs/comm/propal/class/api_proposals.class.php
    @@ -97,7 +97,8 @@ class Proposals extends DolibarrApi
     	 * @param string    $sqlfilters         Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.datec:<:'20160101')"
     	 * @return  array                       Array of order objects
     	 */
    -	function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '')
    +    {
     		global $db, $conf;
     
     		$obj_ret = array();
    @@ -215,7 +216,8 @@ class Proposals extends DolibarrApi
     	 *
     	 * @return int
     	 */
    -	function getLines($id) {
    +    function getLines($id)
    +    {
     	  if(! DolibarrApiAccess::$user->rights->propal->lire) {
     		  	throw new RestException(401);
     		  }
    @@ -381,7 +383,8 @@ class Proposals extends DolibarrApi
          * @throws 401
          * @throws 404
     	 */
    -	function deleteLine($id, $lineid) {
    +    function deleteLine($id, $lineid)
    +    {
     		if(! DolibarrApiAccess::$user->rights->propal->creer) {
     		  	throw new RestException(401);
     		}
    @@ -415,7 +418,8 @@ class Proposals extends DolibarrApi
     	 *
     	 * @return int
     	 */
    -	function put($id, $request_data = null) {
    +    function put($id, $request_data = null)
    +    {
     	  if(! DolibarrApiAccess::$user->rights->propal->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -487,7 +491,6 @@ class Proposals extends DolibarrApi
     				'message' => 'Commercial Proposal deleted'
     			)
     		);
    -
     	}
     
     	/**
    @@ -697,29 +700,29 @@ class Proposals extends DolibarrApi
     			if (!isset($data[$field]))
     				throw new RestException(400, "$field field missing");
     			$propal[$field] = $data[$field];
    -
     		}
     		return $propal;
     	}
     
     
    -	/**
    -	 * Clean sensible object datas
    -	 *
    -	 * @param   object  $object    Object to clean
    -	 * @return    array    Array of cleaned object properties
    -	 */
    -	function _cleanObjectDatas($object) {
    +    /**
    +     * Clean sensible object datas
    +     *
    +     * @param   object  $object    Object to clean
    +     * @return    array    Array of cleaned object properties
    +     */
    +    function _cleanObjectDatas($object)
    +    {
     
    -		$object = parent::_cleanObjectDatas($object);
    +        $object = parent::_cleanObjectDatas($object);
     
    -        	unset($object->note);
    -		unset($object->name);
    -		unset($object->lastname);
    -		unset($object->firstname);
    -		unset($object->civility_id);
    -		unset($object->address);
    +        unset($object->note);
    +        unset($object->name);
    +        unset($object->lastname);
    +        unset($object->firstname);
    +        unset($object->civility_id);
    +        unset($object->address);
     
    -		return $object;
    -	}
    +        return $object;
    +    }
     }
    diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php
    index a00dec50288..55dd950abf2 100644
    --- a/htdocs/comm/propal/class/propal.class.php
    +++ b/htdocs/comm/propal/class/propal.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004      Eric Seigne				<eric.seigne@ryxeo.com>
      * Copyright (C) 2004-2011 Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley			<marc@ocebo.com>
    - * Copyright (C) 2005-2013 Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013 Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani			<acianfa@free.fr>
      * Copyright (C) 2008      Raphael Bertrand			<raphael.bertrand@resultic.fr>
      * Copyright (C) 2010-2014 Juanjo Menent			<jmenent@2byte.es>
    @@ -47,16 +47,37 @@ require_once DOL_DOCUMENT_ROOT .'/multicurrency/class/multicurrency.class.php';
      */
     class Propal extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='propal';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='propal';
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
     	public $table_element_line='propaldet';
    -	public $fk_element='fk_propal';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
    +	public $fk_element ='fk_propal';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto='propal';
    +
     	/**
     	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     	 * @var int
     	 */
     	public $ismultientitymanaged = 1;
    +
     	/**
     	 * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
     	 * @var integer
    @@ -148,7 +169,12 @@ class Propal extends CommonObject
     	public $remise = 0;
     	public $remise_percent = 0;
     	public $remise_absolue = 0;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_address;
    +
     	public $address_type;
     	public $address;
     	public $availability_id;
    @@ -171,7 +197,11 @@ class Propal extends CommonObject
     	public $specimen;
     
     	// Multicurrency
    +	/**
    +     * @var int ID
    +     */
     	public $fk_multicurrency;
    +
     	public $multicurrency_code;
     	public $multicurrency_tx;
     	public $multicurrency_total_ht;
    @@ -224,9 +254,10 @@ class Propal extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 * 	Add line into array products
    -	 *	$this->thirdparty should be loaded
    +	 *  Add line into array products
    +	 *  $this->thirdparty should be loaded
     	 *
     	 * 	@param  int		$idproduct       	Product Id to add
     	 * 	@param  int		$qty             	Quantity
    @@ -238,6 +269,7 @@ class Propal extends CommonObject
     	 */
     	function add_product($idproduct, $qty, $remise_percent=0)
     	{
    +        // phpcs:enable
     		global $conf, $mysoc;
     
     		if (! $qty) $qty = 1;
    @@ -284,6 +316,7 @@ class Propal extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Adding line of fixed discount in the proposal in DB
     	 *
    @@ -292,6 +325,7 @@ class Propal extends CommonObject
     	 */
     	function insert_discount($idremise)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
    @@ -843,6 +877,7 @@ class Propal extends CommonObject
     		$now=dol_now();
     
     		// Clean parameters
    +		if (empty($this->entity)) $this->entity = $conf->entity;
     		if (empty($this->date)) $this->date=$this->datep;
     		$this->fin_validite = $this->date + ($this->duree_validite * 24 * 3600);
     		if (empty($this->availability_id)) $this->availability_id=0;
    @@ -952,7 +987,7 @@ class Propal extends CommonObject
     		$sql.= ", ".($this->fk_project?$this->fk_project:"null");
     		$sql.= ", ".(int) $this->fk_incoterms;
     		$sql.= ", '".$this->db->escape($this->location_incoterms)."'";
    -		$sql.= ", ".$conf->entity;
    +		$sql.= ", ".$this->entity;
     		$sql.= ", ".(int) $this->fk_multicurrency;
     		$sql.= ", '".$this->db->escape($this->multicurrency_code)."'";
     		$sql.= ", ".(double) $this->multicurrency_tx;
    @@ -1158,6 +1193,7 @@ class Propal extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Insert into DB a proposal object completely defined by its data members (ex, results from copy).
     	 *
    @@ -1167,6 +1203,7 @@ class Propal extends CommonObject
     	 */
     	function create_from($user)
     	{
    +        // phpcs:enable
     		// i love this function because $this->products is not used in create function...
     		$this->products=$this->lines;
     
    @@ -1185,31 +1222,30 @@ class Propal extends CommonObject
     
     		dol_include_once('/projet/class/project.class.php');
     
    -		$this->context['createfromclone']='createfromclone';
    -
     		$error=0;
     		$now=dol_now();
     
    +		dol_syslog(__METHOD__, LOG_DEBUG);
    +
    +		$object = new self($this->db);
    +
     		$this->db->begin();
     
    -		// get extrafields so they will be clone
    -		foreach($this->lines as $line)
    -			$line->fetch_optionals();
    -
    -		// Load dest object
    -		$clonedObj = clone $this;
    +		// Load source object
    +		$object->fetch($this->id);
    +		$object->fetch_lines();
     
     		$objsoc=new Societe($this->db);
     
     		// Change socid if needed
    -		if (! empty($socid) && $socid != $clonedObj->socid)
    +		if (! empty($socid) && $socid != $object->socid)
     		{
     			if ($objsoc->fetch($socid) > 0)
     			{
    -				$clonedObj->socid 				= $objsoc->id;
    -				$clonedObj->cond_reglement_id	= (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0);
    -				$clonedObj->mode_reglement_id	= (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0);
    -				$clonedObj->fk_delivery_address	= '';
    +			    $object->socid 				= $objsoc->id;
    +			    $object->cond_reglement_id	= (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0);
    +			    $object->mode_reglement_id	= (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0);
    +			    $object->fk_delivery_address	= '';
     
     				/*if (!empty($conf->projet->enabled))
                     {
    @@ -1221,44 +1257,51 @@ class Propal extends CommonObject
         					$clonedObj->fk_project = '';
         				}
                     }*/
    -				$clonedObj->fk_project = '';    // A cloned proposal is set by default to no project.
    +			    $object->fk_project = '';    // A cloned proposal is set by default to no project.
     			}
     
     			// reset ref_client
    -			$clonedObj->ref_client  = '';
    +			$object->ref_client  = '';
     
     			// TODO Change product price if multi-prices
     		}
     		else
     		{
    -			$objsoc->fetch($clonedObj->socid);
    +		    $objsoc->fetch($object->socid);
     		}
     
    -		$clonedObj->id=0;
    -		$clonedObj->ref='';
    -		$clonedObj->statut=self::STATUS_DRAFT;
    +		$object->id=0;
    +		$object->ref='';
    +		$object->statut=self::STATUS_DRAFT;
     
     		// Clear fields
    -		$clonedObj->user_author	= $user->id;
    -		$clonedObj->user_valid	= '';
    -		$clonedObj->date		= $now;
    -		$clonedObj->datep		= $now;    // deprecated
    -		$clonedObj->fin_validite	= $clonedObj->date + ($clonedObj->duree_validite * 24 * 3600);
    -		if (empty($conf->global->MAIN_KEEP_REF_CUSTOMER_ON_CLONING)) $clonedObj->ref_client	= '';
    +		$object->user_author	= $user->id;
    +		$object->user_valid	= '';
    +		$object->date		= $now;
    +		$object->datep		= $now;    // deprecated
    +		$object->fin_validite	= $object->date + ($object->duree_validite * 24 * 3600);
    +		if (empty($conf->global->MAIN_KEEP_REF_CUSTOMER_ON_CLONING)) $object->ref_client	= '';
     
     		// Create clone
    -		$result=$clonedObj->create($user);
    +		$object->context['createfromclone']='createfromclone';
    +		$result=$object->create($user);
     		if ($result < 0) $error++;
    -		else
    +
    +		if (! $error)
     		{
     			// copy internal contacts
    -			if ($clonedObj->copy_linked_contact($this, 'internal') < 0)
    +		    if ($object->copy_linked_contact($this, 'internal') < 0)
    +		    {
     				$error++;
    +		    }
    +		}
     
    +		if (! $error)
    +		{
     			// copy external contacts if same company
    -			elseif ($this->socid == $clonedObj->socid)
    +			if ($this->socid == $object->socid)
     			{
    -				if ($clonedObj->copy_linked_contact($this, 'external') < 0)
    +			    if ($object->copy_linked_contact($this, 'external') < 0)
     					$error++;
     			}
     		}
    @@ -1275,13 +1318,13 @@ class Propal extends CommonObject
     			}
     		}
     
    -		unset($this->context['createfromclone']);
    +		unset($object->context['createfromclone']);
     
     		// End
     		if (! $error)
     		{
     			$this->db->commit();
    -			return $clonedObj->id;
    +			return $object->id;
     		}
     		else
     		{
    @@ -1549,6 +1592,7 @@ class Propal extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Load array lines
     	 *
    @@ -1557,15 +1601,16 @@ class Propal extends CommonObject
     	 */
     	function fetch_lines($only_product=0)
     	{
    +        // phpcs:enable
     		$this->lines=array();
     
     		$sql = 'SELECT d.rowid, d.fk_propal, d.fk_parent_line, d.label as custom_label, d.description, d.price, d.vat_src_code, d.tva_tx, d.localtax1_tx, d.localtax2_tx, d.localtax1_type, d.localtax2_type, d.qty, d.fk_remise_except, d.remise_percent, d.subprice, d.fk_product,';
     		$sql.= ' d.info_bits, d.total_ht, d.total_tva, d.total_localtax1, d.total_localtax2, d.total_ttc, d.fk_product_fournisseur_price as fk_fournprice, d.buy_price_ht as pa_ht, d.special_code, d.rang, d.product_type,';
     		$sql.= ' d.fk_unit,';
    -		$sql.= ' p.ref as product_ref, p.description as product_desc, p.fk_product_type, p.label as product_label,';
    +		$sql.= ' p.ref as product_ref, p.description as product_desc, p.fk_product_type, p.label as product_label, p.tobatch as product_batch,';
     		$sql.= ' p.weight, p.weight_units, p.volume, p.volume_units,';
    -		$sql.= ' d.date_start, d.date_end';
    -		$sql.= ' ,d.fk_multicurrency, d.multicurrency_code, d.multicurrency_subprice, d.multicurrency_total_ht, d.multicurrency_total_tva, d.multicurrency_total_ttc';
    +		$sql.= ' d.date_start, d.date_end,';
    +		$sql.= ' d.fk_multicurrency, d.multicurrency_code, d.multicurrency_subprice, d.multicurrency_total_ht, d.multicurrency_total_tva, d.multicurrency_total_ttc';
     		$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet as d';
     		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON (d.fk_product = p.rowid)';
     		$sql.= ' WHERE d.fk_propal = '.$this->id;
    @@ -1594,6 +1639,7 @@ class Propal extends CommonObject
     				$line->product_type     = $objp->product_type;
     				$line->label            = $objp->custom_label;
     				$line->desc             = $objp->description;  // Description ligne
    +				$line->description      = $objp->description;  // Description ligne
     				$line->qty              = $objp->qty;
     				$line->vat_src_code     = $objp->vat_src_code;
     				$line->tva_tx           = $objp->tva_tx;
    @@ -1627,7 +1673,8 @@ class Propal extends CommonObject
     				$line->libelle			= $objp->product_label;		// TODO deprecated
     				$line->product_label	= $objp->product_label;
     				$line->product_desc     = $objp->product_desc; 		// Description produit
    -				$line->fk_product_type  = $objp->fk_product_type;
    +				$line->product_tobatch  = $objp->product_tobatch;
    +				$line->fk_product_type  = $objp->fk_product_type;	// TODO deprecated
     				$line->fk_unit          = $objp->fk_unit;
     				$line->weight = $objp->weight;
     				$line->weight_units = $objp->weight_units;
    @@ -1786,6 +1833,7 @@ class Propal extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Define proposal date
     	 *
    @@ -1796,6 +1844,7 @@ class Propal extends CommonObject
     	 */
     	function set_date($user, $date, $notrigger=0)
     	{
    +        // phpcs:enable
     		if (empty($date))
     		{
     			$this->error='ErrorBadParameter';
    @@ -1853,6 +1902,7 @@ class Propal extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define end validity date
     	 *
    @@ -1863,6 +1913,7 @@ class Propal extends CommonObject
     	 */
     	function set_echeance($user, $date_fin_validite, $notrigger=0)
     	{
    +        // phpcs:enable
     		if (! empty($user->rights->propal->creer))
     		{
     			$error=0;
    @@ -1913,6 +1964,7 @@ class Propal extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set delivery date
     	 *
    @@ -1923,6 +1975,7 @@ class Propal extends CommonObject
     	 */
     	function set_date_livraison($user, $date_livraison, $notrigger=0)
     	{
    +        // phpcs:enable
     		if (! empty($user->rights->propal->creer))
     		{
     			$error=0;
    @@ -1973,6 +2026,7 @@ class Propal extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Set delivery
     	 *
    @@ -1983,6 +2037,7 @@ class Propal extends CommonObject
     	 */
     	function set_availability($user, $id, $notrigger=0)
     	{
    +        // phpcs:enable
     		if (! empty($user->rights->propal->creer) && $this->statut >= self::STATUS_DRAFT)
     		{
     			$error=0;
    @@ -2042,6 +2097,7 @@ class Propal extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Set source of demand
     	 *
    @@ -2052,6 +2108,7 @@ class Propal extends CommonObject
     	 */
     	function set_demand_reason($user, $id, $notrigger=0)
     	{
    +        // phpcs:enable
     		if (! empty($user->rights->propal->creer) && $this->statut >= self::STATUS_DRAFT)
     		{
     			$error=0;
    @@ -2113,6 +2170,7 @@ class Propal extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set customer reference number
     	 *
    @@ -2123,6 +2181,7 @@ class Propal extends CommonObject
     	 */
     	function set_ref_client($user, $ref_client, $notrigger=0)
     	{
    +        // phpcs:enable
     		if (! empty($user->rights->propal->creer))
     		{
     			$error=0;
    @@ -2176,6 +2235,7 @@ class Propal extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set an overall discount on the proposal
     	 *
    @@ -2186,6 +2246,7 @@ class Propal extends CommonObject
     	 */
     	function set_remise_percent($user, $remise, $notrigger=0)
     	{
    +        // phpcs:enable
     		$remise=trim($remise)?trim($remise):0;
     
     		if (! empty($user->rights->propal->creer))
    @@ -2241,6 +2302,7 @@ class Propal extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set an absolute overall discount on the proposal
     	 *
    @@ -2251,6 +2313,7 @@ class Propal extends CommonObject
     	 */
     	function set_remise_absolue($user, $remise, $notrigger=0)
     	{
    +        // phpcs:enable
     		$remise=trim($remise)?trim($remise):0;
     
     		if (! empty($user->rights->propal->creer))
    @@ -2378,7 +2441,7 @@ class Propal extends CommonObject
     	 *  @param		int		$notrigger	1=Does not execute triggers, 0=Execute triggers
     	 *	@return     int         		<0 if KO, >0 if OK
     	 */
    -	function cloture($user, $statut, $note, $notrigger=0)
    +	function cloture($user, $statut, $note="", $notrigger=0)
     	{
     		global $langs,$conf;
     
    @@ -2529,6 +2592,7 @@ class Propal extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set draft status
     	 *
    @@ -2538,6 +2602,7 @@ class Propal extends CommonObject
     	 */
     	function set_draft($user, $notrigger=0)
     	{
    +        // phpcs:enable
     		$error=0;
     
     		$this->db->begin();
    @@ -2586,6 +2651,7 @@ class Propal extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Return list of proposal (eventually filtered on user) into an array
     	 *
    @@ -2601,6 +2667,7 @@ class Propal extends CommonObject
     	 */
     	function liste_array($shortlist=0, $draft=0, $notcurrentuser=0, $socid=0, $limit=0, $offset=0, $sortfield='p.datep', $sortorder='DESC')
     	{
    +        // phpcs:enable
     		global $user;
     
     		$ga = array();
    @@ -2672,6 +2739,7 @@ class Propal extends CommonObject
     		return $this->InvoiceArrayList($this->id);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Returns an array with id and ref of related invoices
     	 *
    @@ -2680,6 +2748,7 @@ class Propal extends CommonObject
     	 */
     	function InvoiceArrayList($id)
     	{
    +        // phpcs:enable
     		$ga = array();
     		$linkedInvoices = array();
     
    @@ -2715,7 +2784,7 @@ class Propal extends CommonObject
     
     		if (count($linkedInvoices) > 0)
     		{
    -			$sql= "SELECT rowid as facid, facnumber, total, datef as df, fk_user_author, fk_statut, paye";
    +			$sql= "SELECT rowid as facid, ref, total, datef as df, fk_user_author, fk_statut, paye";
     			$sql.= " FROM ".MAIN_DB_PREFIX."facture";
     			$sql.= " WHERE rowid IN (".implode(',',$linkedInvoices).")";
     
    @@ -2950,6 +3019,7 @@ class Propal extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Change source demand
     	 *
    @@ -2960,6 +3030,7 @@ class Propal extends CommonObject
     	 */
     	function demand_reason($demand_reason_id, $notrigger=0)
     	{
    +        // phpcs:enable
     		global $user;
     
     		if ($this->statut >= self::STATUS_DRAFT)
    @@ -3066,11 +3137,8 @@ class Propal extends CommonObject
     					$cluser->fetch($obj->fk_user_cloture);
     					$this->user_cloture     = $cluser;
     				}
    -
    -
     			}
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -3090,6 +3158,7 @@ class Propal extends CommonObject
     		return $this->LibStatut($this->statut, $mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    	Return label of a status (draft, validated, ...)
     	 *
    @@ -3099,6 +3168,7 @@ class Propal extends CommonObject
     	 */
     	function LibStatut($statut,$mode=1)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		// Init/load array of translation of status
    @@ -3120,21 +3190,22 @@ class Propal extends CommonObject
     
     		$statuttrans='';
     		if ($statut==self::STATUS_DRAFT) $statuttrans='statut0';
    -		if ($statut==self::STATUS_VALIDATED) $statuttrans='statut1';
    -		if ($statut==self::STATUS_SIGNED) $statuttrans='statut3';
    -		if ($statut==self::STATUS_NOTSIGNED) $statuttrans='statut5';
    -		if ($statut==self::STATUS_BILLED) $statuttrans='statut6';
    +		elseif ($statut==self::STATUS_VALIDATED) $statuttrans='statut1';
    +		elseif ($statut==self::STATUS_SIGNED) $statuttrans='statut3';
    +		elseif ($statut==self::STATUS_NOTSIGNED) $statuttrans='statut5';
    +		elseif ($statut==self::STATUS_BILLED) $statuttrans='statut6';
     
     		if ($mode == 0)	return $this->labelstatut[$statut];
    -		if ($mode == 1)	return $this->labelstatut_short[$statut];
    -		if ($mode == 2)	return img_picto($this->labelstatut_short[$statut], $statuttrans).' '.$this->labelstatut_short[$statut];
    -		if ($mode == 3)	return img_picto($this->labelstatut[$statut], $statuttrans);
    -		if ($mode == 4)	return img_picto($this->labelstatut[$statut],$statuttrans).' '.$this->labelstatut[$statut];
    -		if ($mode == 5)	return '<span class="hideonsmartphone">'.$this->labelstatut_short[$statut].' </span>'.img_picto($this->labelstatut[$statut],$statuttrans);
    -		if ($mode == 6)	return '<span class="hideonsmartphone">'.$this->labelstatut[$statut].' </span>'.img_picto($this->labelstatut[$statut],$statuttrans);
    -	 }
    +		elseif ($mode == 1)	return $this->labelstatut_short[$statut];
    +		elseif ($mode == 2)	return img_picto($this->labelstatut_short[$statut], $statuttrans).' '.$this->labelstatut_short[$statut];
    +		elseif ($mode == 3)	return img_picto($this->labelstatut[$statut], $statuttrans);
    +		elseif ($mode == 4)	return img_picto($this->labelstatut[$statut],$statuttrans).' '.$this->labelstatut[$statut];
    +		elseif ($mode == 5)	return '<span class="hideonsmartphone">'.$this->labelstatut_short[$statut].' </span>'.img_picto($this->labelstatut[$statut],$statuttrans);
    +		elseif ($mode == 6)	return '<span class="hideonsmartphone">'.$this->labelstatut[$statut].' </span>'.img_picto($this->labelstatut[$statut],$statuttrans);
    +	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Load indicators for dashboard (this->nbtodo and this->nbtodolate)
     	 *
    @@ -3144,11 +3215,12 @@ class Propal extends CommonObject
     	 */
     	function load_board($user,$mode)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		$clause = " WHERE";
     
    -		$sql = "SELECT p.rowid, p.ref, p.datec as datec, p.fin_validite as datefin";
    +		$sql = "SELECT p.rowid, p.ref, p.datec as datec, p.fin_validite as datefin, p.total_ht";
     		$sql.= " FROM ".MAIN_DB_PREFIX."propal as p";
     		if (!$user->rights->societe->client->voir && !$user->societe_id)
     		{
    @@ -3192,6 +3264,8 @@ class Propal extends CommonObject
     			while ($obj=$this->db->fetch_object($resql))
     			{
     				$response->nbtodo++;
    +				$response->total+=$obj->total_ht;
    +
     				if ($mode == 'opened')
     				{
     					$datelimit = $this->db->jdate($obj->datefin);
    @@ -3307,6 +3381,7 @@ class Propal extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Charge indicateurs this->nb de tableau de bord
     	 *
    @@ -3314,6 +3389,7 @@ class Propal extends CommonObject
     	 */
     	function load_state_board()
     	{
    +        // phpcs:enable
     		global $user;
     
     		$this->nb=array();
    @@ -3362,13 +3438,7 @@ class Propal extends CommonObject
     		global $conf,$langs;
     		$langs->load("propal");
     
    -		$constant = 'PROPALE_ADDON_'.$this->entity;
    -
    -		if (! empty($conf->global->$constant)) {
    -			$classname = $conf->global->$constant; // for multicompany proposal sharing
    -		} else {
    -			$classname = $conf->global->PROPALE_ADDON;
    -		}
    +		$classname = $conf->global->PROPALE_ADDON;
     
     		if (! empty($classname))
     		{
    @@ -3495,103 +3565,13 @@ class Propal extends CommonObject
     	}
     
     	/**
    -	 * 	Retrieve an array of propal lines
    +	 * 	Retrieve an array of proposal lines
     	 *
     	 * 	@return int		>0 if OK, <0 if KO
     	 */
     	function getLinesArray()
     	{
    -		// TODO Duplicate with fetch_lines ? Wich one to keep ?
    -
    -		$this->lines = array();
    -
    -		$sql = 'SELECT pt.rowid, pt.label as custom_label, pt.description, pt.fk_product, pt.fk_remise_except,';
    -		$sql.= ' pt.qty, pt.vat_src_code, pt.tva_tx, pt.localtax1_tx, pt.localtax2_tx, pt.localtax1_type, pt.localtax2_type, pt.remise_percent, pt.subprice, pt.info_bits,';
    -		$sql.= ' pt.total_ht, pt.total_tva, pt.total_ttc, pt.total_localtax1, pt.total_localtax2, pt.fk_product_fournisseur_price as fk_fournprice, pt.buy_price_ht as pa_ht, pt.special_code,';
    -		$sql.= ' pt.date_start, pt.date_end, pt.product_type, pt.rang, pt.fk_parent_line,';
    -		$sql.= ' pt.fk_unit,';
    -		$sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.description as product_desc, p.tobatch as product_tobatch,';
    -		$sql.= ' p.entity,';
    -		$sql.= ' pt.fk_multicurrency, pt.multicurrency_code, pt.multicurrency_subprice, pt.multicurrency_total_ht, pt.multicurrency_total_tva, pt.multicurrency_total_ttc';
    -		$sql.= ' FROM '.MAIN_DB_PREFIX.'propaldet as pt';
    -		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product=p.rowid';
    -		$sql.= ' WHERE pt.fk_propal = '.$this->id;
    -		$sql.= ' ORDER BY pt.rang ASC, pt.rowid';
    -
    -		dol_syslog(get_class($this).'::getLinesArray', LOG_DEBUG);
    -		$resql = $this->db->query($sql);
    -		if ($resql)
    -		{
    -			$num = $this->db->num_rows($resql);
    -			$i = 0;
    -
    -			while ($i < $num)
    -			{
    -				$obj = $this->db->fetch_object($resql);
    -
    -				$this->lines[$i]					= new PropaleLigne($this->db);
    -				$this->lines[$i]->id				= $obj->rowid; // for backward compatibility
    -				$this->lines[$i]->rowid				= $obj->rowid;
    -				$this->lines[$i]->label 			= $obj->custom_label;
    -				$this->lines[$i]->desc       		= $obj->description;
    -				$this->lines[$i]->description 		= $obj->description;
    -				$this->lines[$i]->fk_product		= $obj->fk_product;
    -				$this->lines[$i]->ref				= $obj->ref;
    -				$this->lines[$i]->product_ref		= $obj->ref;
    -				$this->lines[$i]->entity            = $obj->entity;             // Product entity
    -				$this->lines[$i]->product_label		= $obj->product_label;
    -				$this->lines[$i]->product_desc		= $obj->product_desc;
    -				$this->lines[$i]->product_tobatch   = $obj->product_tobatch;
    -				$this->lines[$i]->fk_product_type	= $obj->fk_product_type;    // deprecated
    -				$this->lines[$i]->product_type		= $obj->product_type;
    -				$this->lines[$i]->qty				= $obj->qty;
    -				$this->lines[$i]->subprice			= $obj->subprice;
    -				$this->lines[$i]->fk_remise_except 	= $obj->fk_remise_except;
    -				$this->lines[$i]->remise_percent	= $obj->remise_percent;
    -
    -				$this->lines[$i]->vat_src_code      = $obj->vat_src_code;
    -				$this->lines[$i]->tva_tx			= $obj->tva_tx;
    -				$this->lines[$i]->localtax1_tx		= $obj->localtax1_tx;
    -				$this->lines[$i]->localtax2_tx		= $obj->localtax2_tx;
    -				$this->lines[$i]->localtax1_type	= $obj->localtax1_type;
    -				$this->lines[$i]->localtax2_type	= $obj->localtax2_type;
    -				$this->lines[$i]->info_bits			= $obj->info_bits;
    -				$this->lines[$i]->total_ht			= $obj->total_ht;
    -				$this->lines[$i]->total_tva			= $obj->total_tva;
    -				$this->lines[$i]->total_ttc			= $obj->total_ttc;
    -				$this->lines[$i]->total_localtax1	= $obj->total_localtax1;
    -				$this->lines[$i]->total_localtax2	= $obj->total_localtax2;
    -				$this->lines[$i]->fk_fournprice		= $obj->fk_fournprice;
    -				$marginInfos						= getMarginInfos($obj->subprice, $obj->remise_percent, $obj->tva_tx, $obj->localtax1_tx, $obj->localtax2_tx, $this->lines[$i]->fk_fournprice, $obj->pa_ht);
    -				$this->lines[$i]->pa_ht				= $marginInfos[0];
    -				$this->lines[$i]->marge_tx			= $marginInfos[1];
    -				$this->lines[$i]->marque_tx			= $marginInfos[2];
    -				$this->lines[$i]->fk_parent_line	= $obj->fk_parent_line;
    -				$this->lines[$i]->special_code		= $obj->special_code;
    -				$this->lines[$i]->rang				= $obj->rang;
    -				$this->lines[$i]->date_start		= $this->db->jdate($obj->date_start);
    -				$this->lines[$i]->date_end			= $this->db->jdate($obj->date_end);
    -				$this->lines[$i]->fk_unit			= $obj->fk_unit;
    -
    -				// Multicurrency
    -				$this->lines[$i]->fk_multicurrency 			= $obj->fk_multicurrency;
    -				$this->lines[$i]->multicurrency_code 		= $obj->multicurrency_code;
    -				$this->lines[$i]->multicurrency_subprice 	= $obj->multicurrency_subprice;
    -				$this->lines[$i]->multicurrency_total_ht 	= $obj->multicurrency_total_ht;
    -				$this->lines[$i]->multicurrency_total_tva 	= $obj->multicurrency_total_tva;
    -				$this->lines[$i]->multicurrency_total_ttc 	= $obj->multicurrency_total_ttc;
    -
    -				$i++;
    -			}
    -			$this->db->free($resql);
    -
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error();
    -			return -1;
    -		}
    +		return $this->fetch_lines();
     	}
     
     	/**
    @@ -3651,7 +3631,14 @@ class Propal extends CommonObject
      */
     class PropaleLigne extends CommonObjectLine
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='propaldet';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='propaldet';
     
     	var $oldline;
    @@ -4186,6 +4173,7 @@ class PropaleLigne extends CommonObjectLine
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Update DB line fields total_xxx
     	 *	Used by migration
    @@ -4194,6 +4182,7 @@ class PropaleLigne extends CommonObjectLine
     	 */
     	function update_total()
     	{
    +        // phpcs:enable
     		$this->db->begin();
     
     		// Mise a jour ligne en base
    @@ -4218,6 +4207,4 @@ class PropaleLigne extends CommonObjectLine
     			return -2;
     		}
     	}
    -
     }
    -
    diff --git a/htdocs/comm/propal/class/propalestats.class.php b/htdocs/comm/propal/class/propalestats.class.php
    index d6e9ee3b103..bdd4a9dfba2 100644
    --- a/htdocs/comm/propal/class/propalestats.class.php
    +++ b/htdocs/comm/propal/class/propalestats.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (c) 2005-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (c) 2011      Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -35,7 +35,10 @@ include_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
      */
     class PropaleStats extends Stats
     {
    -    public $table_element;
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element;
     
         var $socid;
         var $userid;
    diff --git a/htdocs/comm/propal/contact.php b/htdocs/comm/propal/contact.php
    index 5e21f493c64..7fc556a3b12 100644
    --- a/htdocs/comm/propal/contact.php
    +++ b/htdocs/comm/propal/contact.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Patrick Rouillon     <patrick@rouillon.net>
      * Copyright (C) 2005-2016 Destailleur Laurent  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2015 Philippe Grand       <philippe.grand@atoo-net.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -212,6 +212,6 @@ if ($object->id > 0)
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/propal/document.php b/htdocs/comm/propal/document.php
    index 1c8d494214d..07ef56bc1eb 100644
    --- a/htdocs/comm/propal/document.php
    +++ b/htdocs/comm/propal/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
    @@ -94,7 +94,7 @@ if ($object->id > 0)
     	$head = propal_prepare_head($object);
     	dol_fiche_head($head, 'document', $langs->trans('Proposal'), -1, 'propal');
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -179,5 +179,6 @@ else
     	print $langs->trans("ErrorUnknown");
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/propal/index.php b/htdocs/comm/propal/index.php
    index 0dbe2fb855e..f39f9efc54a 100644
    --- a/htdocs/comm/propal/index.php
    +++ b/htdocs/comm/propal/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -353,7 +353,7 @@ if (! empty($conf->propal->enabled) && $user->rights->propale->lire)
     				$companystatic->name=$obj->socname;
     				$companystatic->client=$obj->client;
     				$companystatic->canvas=$obj->canvas;
    -				print '<td align="left">'.$companystatic->getNomUrl(1,'customer',44).'</td>'."\n";
    +				print '<td class="left">'.$companystatic->getNomUrl(1,'customer',44).'</td>'."\n";
     
     				print '<td align="right">';
     				print dol_print_date($db->jdate($obj->dp),'day').'</td>'."\n";
    @@ -530,7 +530,6 @@ if (! empty($conf->propal->enabled))
     //print '</td></tr></table>';
     print '</div></div></div>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/propal/info.php b/htdocs/comm/propal/info.php
    index 317c9902d52..1a1760ce7cf 100644
    --- a/htdocs/comm/propal/info.php
    +++ b/htdocs/comm/propal/info.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2006	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2017    	Ferran Marcet       	<fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -127,5 +127,6 @@ print '</div>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php
    index e48175bf148..2d3917a0d47 100644
    --- a/htdocs/comm/propal/list.php
    +++ b/htdocs/comm/propal/list.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2016 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne           <eric.seigne@ryxeo.com>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2013 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani      <acianfa@free.fr>
      * Copyright (C) 2010-2011 Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2010-2011 Philippe Grand        <philippe.grand@atoo-net.com>
    @@ -11,7 +11,7 @@
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
      * Copyright (C) 2015      Jean-François Ferry     <jfefe@aternatik.fr>
      * Copyright (C) 2016-2018 Ferran Marcet	 <fmarcet@2byte.es>
    - * Copyright (C) 2017      Charlene Benke	 <charlie@patas-monkey.com>
    + * Copyright (C) 2017-2018 Charlene Benke	 <charlie@patas-monkey.com>
      * Copyright (C) 2018	   Nicolas ZABOURI	 <info@inovea-conseil.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -129,7 +129,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('propal');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -161,6 +161,7 @@ $arrayfields=array(
     	'p.total_vat'=>array('label'=>$langs->trans("AmountVAT"), 'checked'=>0),
     	'p.total_ttc'=>array('label'=>$langs->trans("AmountTTC"), 'checked'=>0),
     	'u.login'=>array('label'=>$langs->trans("Author"), 'checked'=>1, 'position'=>10),
    +	'sale_representative'=>array('label'=>$langs->trans("SaleRepresentativesOfThirdParty"), 'checked'=>1),
     	'p.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
     	'p.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
     	'p.fk_statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
    @@ -174,9 +175,6 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
     	}
     }
     
    -$object = new Propal($db);	// To be passed as parameter of executeHooks that need
    -
    -
     /*
      * Actions
      */
    @@ -226,7 +224,6 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
     	$toselect='';
     	$search_array_options=array();
     	$search_categ_cus=0;
    -
     }
     if ($object_statut != '') $viewstatut=$object_statut;
     
    @@ -258,7 +255,7 @@ $projectstatic=new Project($db);
     $formcompany=new FormCompany($db);
     
     $help_url='EN:Commercial_Proposals|FR:Proposition_commerciale|ES:Presupuestos';
    -llxHeader('',$langs->trans('Proposal'),$help_url);
    +//llxHeader('',$langs->trans('Proposal'),$help_url);
     
     $sql = 'SELECT';
     if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
    @@ -332,45 +329,9 @@ if ($viewstatut != '' && $viewstatut != '-1')
     {
     	$sql.= ' AND p.fk_statut IN ('.$db->escape($viewstatut).')';
     }
    -if ($search_month > 0)
    -{
    -	if ($search_year > 0 && empty($search_day))
    -	$sql.= " AND p.datep BETWEEN '".$db->idate(dol_get_first_day($search_year,$search_month,false))."' AND '".$db->idate(dol_get_last_day($search_year,$search_month,false))."'";
    -	else if ($search_year > 0 && ! empty($search_day))
    -	$sql.= " AND p.datep BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $search_month, $search_day, $search_year))."' AND '".$db->idate(dol_mktime(23, 59, 59, $search_month, $search_day, $search_year))."'";
    -	else
    -	$sql.= " AND date_format(p.datep, '%m') = '".$db->escape($search_month)."'";
    -}
    -else if ($search_year > 0)
    -{
    -	$sql.= " AND p.datep BETWEEN '".$db->idate(dol_get_first_day($search_year,1,false))."' AND '".$db->idate(dol_get_last_day($search_year,12,false))."'";
    -}
    -if ($search_month_end > 0)
    -{
    -	if ($search_yearfin > 0 && empty($search_dayfin))
    -		$sql.= " AND p.fin_validite BETWEEN '".$db->idate(dol_get_first_day($search_yearfin,$search_month_end,false))."' AND '".$db->idate(dol_get_last_day($search_yearfin,$search_month_end,false))."'";
    -	else if ($search_yearfin > 0 && ! empty($search_dayfin))
    -		$sql.= " AND p.fin_validite BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $search_month_end, $search_dayfin, $search_yearfin))."' AND '".$db->idate(dol_mktime(23, 59, 59, $search_month_end, $search_dayfin, $search_yearfin))."'";
    -	else
    -		$sql.= " AND date_format(p.fin_validite, '%m') = '".$db->escape($search_month_end)."'";
    -}
    -else if ($search_yearfin > 0)
    -{
    -	$sql.= " AND p.fin_validite BETWEEN '".$db->idate(dol_get_first_day($search_yearfin,1,false))."' AND '".$db->idate(dol_get_last_day($search_yearfin,12,false))."'";
    -}
    -if ($search_monthdelivery > 0)
    -{
    -	if ($search_yeardelivery > 0 && empty($search_daydelivery))
    -		$sql.= " AND p.date_livraison BETWEEN '".$db->idate(dol_get_first_day($search_yeardelivery,$search_monthdelivery,false))."' AND '".$db->idate(dol_get_last_day($search_yeardelivery,$search_monthdelivery,false))."'";
    -	else if ($search_yeardelivery > 0 && ! empty($search_daydelivery))
    -		$sql.= " AND p.date_livraison BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $search_monthdelivery, $search_daydelivery, $search_yeardelivery))."' AND '".$db->idate(dol_mktime(23, 59, 59, $search_monthdelivery, $search_daydelivery, $search_yeardelivery))."'";
    -	else
    -		$sql.= " AND date_format(p.date_livraison, '%m') = '".$db->escape($search_monthdelivery)."'";
    -}
    -else if ($search_yeardelivery > 0)
    -{
    -	$sql.= " AND p.date_livraison BETWEEN '".$db->idate(dol_get_first_day($search_yeardelivery,1,false))."' AND '".$db->idate(dol_get_last_day($search_yeardelivery,12,false))."'";
    -}
    +$sql.= dolSqlDateFilter("p.datep", $search_day, $search_month, $search_year);
    +$sql.= dolSqlDateFilter("p.fin_validite", $search_dayfin, $search_month_end, $search_yearfin);
    +$sql.= dolSqlDateFilter("p.date_livraison", $search_daydelivery, $search_monthdelivery, $search_yeardelivery);
     if ($search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$db->escape($search_sale);
     if ($search_user > 0)
     {
    @@ -404,6 +365,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
     $sql.= $db->plimit($limit+1, $offset);
     
     $resql=$db->query($sql);
    +
     if ($resql)
     {
     	$objectstatic=new Propal($db);
    @@ -425,6 +387,18 @@ if ($resql)
     
     	$arrayofselected=is_array($toselect)?$toselect:array();
     
    +	if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall)
    +	{
    +		$obj = $db->fetch_object($resql);
    +
    +		$id = $obj->rowid;
    +
    +		header("Location: ".DOL_URL_ROOT.'/comm/propal/card.php?id='.$id);
    +		exit;
    +	}
    +
    +	llxHeader('',$langs->trans('Proposal'),$help_url);
    +
     	$param='&viewstatut='.urlencode($viewstatut);
     	if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
     	if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
    @@ -452,11 +426,12 @@ if ($resql)
     
     	// List of mass actions available
     	$arrayofmassactions =  array(
    +		'generate_doc'=>$langs->trans("Generate"),
     		'presend'=>$langs->trans("SendByMail"),
     		'builddoc'=>$langs->trans("PDFMerge"),
     	);
     	if ($user->rights->propal->supprimer) $arrayofmassactions['predelete']=$langs->trans("Delete");
    -	if ($user->rights->propal->cloturer) $arrayofmassactions['closed']=$langs->trans("Closed");
    +	if ($user->rights->propal->cloturer) $arrayofmassactions['closed']=$langs->trans("Close");
     	if (in_array($massaction, array('presend','predelete','closed'))) $arrayofmassactions=array();
     	$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
     
    @@ -669,6 +644,10 @@ if ($resql)
     		print '<input class="flat" size="4" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).'">';
     		print '</td>';
     	}
    +	if (! empty($arrayfields['sale_representative']['checked']))
    +	{
    +		print '<td class="liste_titre"></td>';
    +	}
     	// Extra fields
     	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
     
    @@ -723,6 +702,7 @@ if ($resql)
     	if (! empty($arrayfields['p.total_vat']['checked']))      print_liste_field_titre($arrayfields['p.total_vat']['label'],$_SERVER["PHP_SELF"],'p.tva','',$param, 'align="right"',$sortfield,$sortorder);
     	if (! empty($arrayfields['p.total_ttc']['checked']))      print_liste_field_titre($arrayfields['p.total_ttc']['label'],$_SERVER["PHP_SELF"],'p.total','',$param, 'align="right"',$sortfield,$sortorder);
     	if (! empty($arrayfields['u.login']['checked']))       	  print_liste_field_titre($arrayfields['u.login']['label'],$_SERVER["PHP_SELF"],'u.login','',$param,'align="center"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['sale_representative']['checked'])) print_liste_field_titre($arrayfields['sale_representative']['label'], $_SERVER["PHP_SELF"], "","","$param",'',$sortfield,$sortorder);
     	// Extra fields
     	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
     	// Hook fields
    @@ -945,6 +925,51 @@ if ($resql)
     			if (! $i) $totalarray['nbfield']++;
     		}
     
    +		if (! empty($arrayfields['sale_representative']['checked']))
    +		{
    +			// Sales representatives
    +			print '<td>';
    +			if ($obj->socid > 0)
    +			{
    +				$listsalesrepresentatives=$companystatic->getSalesRepresentatives($user);
    +				if ($listsalesrepresentatives < 0) dol_print_error($db);
    +				$nbofsalesrepresentative=count($listsalesrepresentatives);
    +				if ($nbofsalesrepresentative > 3)   // We print only number
    +				{
    +					print '<a href="'.DOL_URL_ROOT.'/societe/commerciaux.php?socid='.$companystatic->id.'">';
    +					print $nbofsalesrepresentative;
    +					print '</a>';
    +				}
    +				else if ($nbofsalesrepresentative > 0)
    +				{
    +					$userstatic=new User($db);
    +					$j=0;
    +					foreach($listsalesrepresentatives as $val)
    +					{
    +						$userstatic->id=$val['id'];
    +						$userstatic->lastname=$val['lastname'];
    +						$userstatic->firstname=$val['firstname'];
    +						$userstatic->email=$val['email'];
    +						$userstatic->statut=$val['statut'];
    +						$userstatic->entity=$val['entity'];
    +						$userstatic->photo=$val['photo'];
    +
    +						//print '<div class="float">':
    +						print $userstatic->getNomUrl(-2);
    +						$j++;
    +						if ($j < $nbofsalesrepresentative) print ' ';
    +						//print '</div>';
    +					}
    +				}
    +				//else print $langs->trans("NoSalesRepresentativeAffected");
    +			}
    +			else
    +			{
    +				print '&nbsp';
    +			}
    +			print '</td>';
    +		}
    +
     		// Extra fields
     		include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
     		// Fields from hook
    @@ -995,22 +1020,35 @@ if ($resql)
      	   || isset($totalarray['totalttcfield'])
      	   || isset($totalarray['totalamfield'])
      	   || isset($totalarray['totalrtpfield'])
    + 	   || isset($totalarray['totalizable'])
      	   )
     	{
     		print '<tr class="liste_total">';
     		$i=0;
     		while ($i < $totalarray['nbfield'])
     		{
    -		   $i++;
    -		   if ($i == 1)
    -		   {
    -				if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
    -				else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    -		   }
    -		   elseif ($totalarray['totalhtfield'] == $i) print '<td align="right">'.price($totalarray['totalht']).'</td>';
    -		   elseif ($totalarray['totalvatfield'] == $i) print '<td align="right">'.price($totalarray['totalvat']).'</td>';
    -		   elseif ($totalarray['totalttcfield'] == $i) print '<td align="right">'.price($totalarray['totalttc']).'</td>';
    -		   else print '<td></td>';
    +		    $i++;
    +		    if ($i == 1)
    +		    {
    +				if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +				else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
    +		    }
    +		    elseif ($totalarray['totalhtfield'] == $i) print '<td align="right">'.price($totalarray['totalht']).'</td>';
    +		    elseif ($totalarray['totalvatfield'] == $i) print '<td align="right">'.price($totalarray['totalvat']).'</td>';
    +		    elseif ($totalarray['totalttcfield'] == $i) print '<td align="right">'.price($totalarray['totalttc']).'</td>';
    +		    elseif ($totalarray['totalizable']) {
    +                $printed = false;
    +                foreach ($totalarray['totalizable'] as $totalizable) {
    +                    if ($totalizable['pos']==$i && ! $printed) {
    +                        print '<td align="right">'.price($totalizable['total']).'</td>';
    +                        $printed = true;
    +                    }
    +                }
    +                if (! $printed) {
    +                    print '<td></td>';
    +                }
    +            }
    +		    else print '<td></td>';
     		}
     		print '</tr>';
     	}
    diff --git a/htdocs/comm/propal/note.php b/htdocs/comm/propal/note.php
    index 607cff245d9..381b7d105da 100644
    --- a/htdocs/comm/propal/note.php
    +++ b/htdocs/comm/propal/note.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Florian Henry		  	<florian.henry@open-concept.pro>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
    @@ -144,6 +144,6 @@ if ($id > 0 || ! empty($ref))
     	}
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/propal/stats/index.php b/htdocs/comm/propal/stats/index.php
    index ac6b42c45d8..5c54baf7360 100644
    --- a/htdocs/comm/propal/stats/index.php
    +++ b/htdocs/comm/propal/stats/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      *
    @@ -65,9 +65,7 @@ $langs->loadLangs(array('orders', 'companies', 'other', 'suppliers', 'supplier_p
     $form=new Form($db);
     $formpropal=new FormPropal($db);
     
    -$langs->load('propal');
    -$langs->load('other');
    -$langs->load("companies");
    +$langs->loadLangs(array('propal', 'other', 'companies'));
     
     if ($mode == 'customer')
     {
    @@ -253,20 +251,20 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     	print '<table class="noborder" width="100%">';
     	print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
     	// Company
    -	print '<tr><td align="left">'.$langs->trans("ThirdParty").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("ThirdParty").'</td><td class="left">';
     	$filter='s.client in (1,2,3)';
     	print $form->select_company($socid,'socid',$filter,1,0,0,array(),0,'','style="width: 95%"');
     	print '</td></tr>';
     	// User
    -	print '<tr><td align="left">'.$langs->trans("CreatedBy").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("CreatedBy").'</td><td class="left">';
     	print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
     	print '</td></tr>';
     	// Status
    -	print '<tr><td align="left">'.$langs->trans("Status").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("Status").'</td><td class="left">';
         $formpropal->selectProposalStatus(($object_status!=''?$object_status:-1),0,0,1,$mode,'object_status');
     	print '</td></tr>';
     	// Year
    -	print '<tr><td align="left">'.$langs->trans("Year").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("Year").'</td><td class="left">';
     	if (! in_array($year,$arrayyears)) $arrayyears[$year]=$year;
     	if (! in_array($nowyear,$arrayyears)) $arrayyears[$nowyear]=$nowyear;
     	arsort($arrayyears);
    @@ -278,6 +276,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     	print '<br><br>';
     //}
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre" height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
    @@ -320,7 +319,7 @@ foreach ($data as $val)
     }
     
     print '</table>';
    -
    +print '</div>';
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
     
    @@ -344,7 +343,6 @@ print '<div style="clear:both"></div>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php
    index cd49ca863e6..0d8c2064010 100644
    --- a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011  Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011  Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2013       Juanjo Menent <jmenent@2byte.es>
      * Copyright (C) 2014       Marcos García <marcosgdf@gmail.com>
      *
    @@ -57,7 +57,7 @@ foreach($linkedObjectBlock as $key => $objectlink)
             <?php if(!empty($showImportButton) && $conf->global->MAIN_ENABLE_IMPORT_LINKED_OBJECT_LINES)
                 {
                     $url = DOL_URL_ROOT.'/comm/propal/card.php?id='.$objectlink->id;
    -                print '<a class="objectlinked_importbtn" href="'.$url.'&amp;action=selectlines"  data-element="'.$objectlink->element.'"  data-id="'.$objectlink->id.'"  > <i class="fa fa-indent"></i> </a>';  
    +                print '<a class="objectlinked_importbtn" href="'.$url.'&amp;action=selectlines"  data-element="'.$objectlink->element.'"  data-id="'.$objectlink->id.'"  > <i class="fa fa-indent"></i> </a>';
                 }
             ?>
             </td>
    diff --git a/htdocs/comm/prospect/index.php b/htdocs/comm/prospect/index.php
    index 2273012696f..53176c8b76f 100644
    --- a/htdocs/comm/prospect/index.php
    +++ b/htdocs/comm/prospect/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -275,6 +275,6 @@ if ($resql)
     //print '</td></tr></table>';
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/comm/prospect/recap-prospect.php b/htdocs/comm/prospect/recap-prospect.php
    index 50127d719c8..93cfada8860 100644
    --- a/htdocs/comm/prospect/recap-prospect.php
    +++ b/htdocs/comm/prospect/recap-prospect.php
    @@ -89,5 +89,6 @@ else
       	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/recap-client.php b/htdocs/comm/recap-client.php
    index 6cd41c6c658..86c1bad0521 100644
    --- a/htdocs/comm/recap-client.php
    +++ b/htdocs/comm/recap-client.php
    @@ -89,5 +89,6 @@ else
       	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/remise.php b/htdocs/comm/remise.php
    index 6f3287b8831..37f08eb6b48 100644
    --- a/htdocs/comm/remise.php
    +++ b/htdocs/comm/remise.php
    @@ -129,8 +129,9 @@ if ($socid > 0)
     
         	print '</form>';
     
    -    	llxFooter();
    -    	$db->close();
    +    	// End of page
    +        llxFooter();
    +        $db->close();
         	exit;
         }
     
    @@ -226,7 +227,7 @@ if ($socid > 0)
     			print '<tr class="liste_titre">';
     			print '<td width="160">'.$langs->trans("Date").'</td>';
     			print '<td width="160" align="center">'.$langs->trans("CustomerRelativeDiscountShort").'</td>';
    -			print '<td align="left">'.$langs->trans("NoteReason").'</td>';
    +			print '<td class="left">'.$langs->trans("NoteReason").'</td>';
     			print '<td align="center">'.$langs->trans("User").'</td>';
     			print '</tr>';
     			$num = $db->num_rows($resql);
    @@ -239,7 +240,7 @@ if ($socid > 0)
     	    			print '<tr class="oddeven">';
     	    			print '<td>'.dol_print_date($db->jdate($obj->dc),"dayhour").'</td>';
     	    			print '<td align="center">'.price2num($obj->remise_percent).'%</td>';
    -	    			print '<td align="left">'.$obj->note.'</td>';
    +	    			print '<td class="left">'.$obj->note.'</td>';
     	    			print '<td align="center"><a href="'.DOL_URL_ROOT.'/user/card.php?id='.$obj->user_id.'">'.img_object($langs->trans("ShowUser"),'user').' '.$obj->login.'</a></td>';
     	    			print '</tr>';
     	    			$i++;
    @@ -285,7 +286,7 @@ if ($socid > 0)
     			print '<tr class="liste_titre">';
     			print '<td width="160">'.$langs->trans("Date").'</td>';
     			print '<td width="160" align="center">'.$langs->trans("CustomerRelativeDiscountShort").'</td>';
    -			print '<td align="left">'.$langs->trans("NoteReason").'</td>';
    +			print '<td class="left">'.$langs->trans("NoteReason").'</td>';
     			print '<td align="center">'.$langs->trans("User").'</td>';
     			print '</tr>';
     			$num = $db->num_rows($resql);
    @@ -298,7 +299,7 @@ if ($socid > 0)
     					print '<tr class="oddeven">';
     					print '<td>'.dol_print_date($db->jdate($obj->dc),"dayhour").'</td>';
     					print '<td align="center">'.price2num($obj->remise_percent).'%</td>';
    -					print '<td align="left">'.$obj->note.'</td>';
    +					print '<td class="left">'.$obj->note.'</td>';
     					print '<td align="center"><a href="'.DOL_URL_ROOT.'/user/card.php?id='.$obj->user_id.'">'.img_object($langs->trans("ShowUser"),'user').' '.$obj->login.'</a></td>';
     					print '</tr>';
     					$i++;
    @@ -324,5 +325,6 @@ if ($socid > 0)
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/comm/remx.php b/htdocs/comm/remx.php
    index a66e8e66500..fe002f81a97 100644
    --- a/htdocs/comm/remx.php
    +++ b/htdocs/comm/remx.php
    @@ -407,7 +407,7 @@ if ($socid > 0)
     	if($isCustomer) {
     		if($isSupplier) {
     			print '<div class="fichecenter">';
    -			print '<div class="fichehalfleft">';
    +			print '<div class="fichehalfleft fichehalfleft-lg">';
     			print load_fiche_titre($langs->trans("CustomerDiscounts"), '', '');
     		}
     
    @@ -415,7 +415,7 @@ if ($socid > 0)
     		$sql.= " rc.datec as dc, rc.description,";
     		$sql.= " rc.fk_facture_source,";
     		$sql.= " u.login, u.rowid as user_id,";
    -		$sql.= " fa.facnumber as ref, fa.type as type";
    +		$sql.= " fa.ref as ref, fa.type as type";
     		$sql.= " FROM  ".MAIN_DB_PREFIX."user as u, ".MAIN_DB_PREFIX."societe_remise_except as rc";
     		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as fa ON rc.fk_facture_source = fa.rowid";
     		$sql.= " WHERE rc.fk_soc = " . $object->id;
    @@ -542,7 +542,7 @@ if ($socid > 0)
     	if($isSupplier) {
     		if($isCustomer) {
     			print '</div>'; // class="fichehalfleft"
    -			print '<div class="fichehalfright">';
    +			print '<div class="fichehalfright fichehalfright-lg">';
     			print '<div class="ficheaddleft">';
     			print load_fiche_titre($langs->trans("SupplierDiscounts"), '', '');
     		}
    @@ -695,7 +695,7 @@ if ($socid > 0)
     	if($isCustomer) {
     		if($isSupplier) {
     			print '<div class="fichecenter">';
    -			print '<div class="fichehalfleft">';
    +			print '<div class="fichehalfleft fichehalfleft-lg">';
     			print load_fiche_titre($langs->trans("CustomerDiscounts"), '', '');
     		}
     
    @@ -704,8 +704,8 @@ if ($socid > 0)
     		$sql.= " rc.datec as dc, rc.description, rc.fk_facture_line, rc.fk_facture,";
     		$sql.= " rc.fk_facture_source,";
     		$sql.= " u.login, u.rowid as user_id,";
    -		$sql.= " f.rowid, f.facnumber,";
    -		$sql.= " fa.facnumber as ref, fa.type as type";
    +		$sql.= " f.rowid, f.ref,";
    +		$sql.= " fa.ref as ref, fa.type as type";
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
     		$sql.= " , ".MAIN_DB_PREFIX."user as u";
     		$sql.= " , ".MAIN_DB_PREFIX."facturedet as fc";
    @@ -723,8 +723,8 @@ if ($socid > 0)
     		$sql2.= " rc.datec as dc, rc.description, rc.fk_facture_line, rc.fk_facture,";
     		$sql2.= " rc.fk_facture_source,";
     		$sql2.= " u.login, u.rowid as user_id,";
    -		$sql2.= " f.rowid, f.facnumber,";
    -		$sql2.= " fa.facnumber as ref, fa.type as type";
    +		$sql2.= " f.rowid, f.ref,";
    +		$sql2.= " fa.ref as ref, fa.type as type";
     		$sql2.= " FROM ".MAIN_DB_PREFIX."facture as f";
     		$sql2.= " , ".MAIN_DB_PREFIX."user as u";
     		$sql2.= " , ".MAIN_DB_PREFIX."societe_remise_except as rc";
    @@ -819,7 +819,7 @@ if ($socid > 0)
     	    				print $obj->description;
     	    				print '</td>';
     	    			}
    -	    			print '<td align="left" class="nowrap"><a href="'.DOL_URL_ROOT.'/compta/facture/card.php?facid='.$obj->rowid.'">'.img_object($langs->trans("ShowBill"),'bill').' '.$obj->facnumber.'</a></td>';
    +	    			print '<td align="left" class="nowrap"><a href="'.DOL_URL_ROOT.'/compta/facture/card.php?facid='.$obj->rowid.'">'.img_object($langs->trans("ShowBill"),'bill').' '.$obj->ref.'</a></td>';
     	    			print '<td align="right">'.price($obj->amount_ht).'</td>';
     	    			print '<td align="right">'.price2num($obj->tva_tx,'MU').'%</td>';
     	    			print '<td align="right">'.price($obj->amount_ttc).'</td>';
    @@ -848,7 +848,7 @@ if ($socid > 0)
     	if($isSupplier) {
     		if($isCustomer) {
     			print '</div>'; // class="fichehalfleft"
    -			print '<div class="fichehalfright">';
    +			print '<div class="fichehalfright fichehalfright-lg">';
     			print '<div class="ficheaddleft">';
     			print load_fiche_titre($langs->trans("SupplierDiscounts"), '', '');
     		}
    @@ -858,7 +858,7 @@ if ($socid > 0)
     		$sql.= " rc.datec as dc, rc.description, rc.fk_invoice_supplier_line, rc.fk_invoice_supplier,";
     		$sql.= " rc.fk_invoice_supplier_source,";
     		$sql.= " u.login, u.rowid as user_id,";
    -		$sql.= " f.rowid, f.ref as facnumber,";
    +		$sql.= " f.rowid, f.ref as ref,";
     		$sql.= " fa.ref, fa.type as type";
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn as f";
     		$sql.= " , ".MAIN_DB_PREFIX."user as u";
    @@ -877,7 +877,7 @@ if ($socid > 0)
     		$sql2.= " rc.datec as dc, rc.description, rc.fk_invoice_supplier_line, rc.fk_invoice_supplier,";
     		$sql2.= " rc.fk_invoice_supplier_source,";
     		$sql2.= " u.login, u.rowid as user_id,";
    -		$sql2.= " f.rowid, f.ref as facnumber,";
    +		$sql2.= " f.rowid, f.ref as ref,";
     		$sql2.= " fa.ref, fa.type as type";
     		$sql2.= " FROM ".MAIN_DB_PREFIX."facture_fourn as f";
     		$sql2.= " , ".MAIN_DB_PREFIX."user as u";
    @@ -973,7 +973,7 @@ if ($socid > 0)
     						print $obj->description;
     						print '</td>';
     					}
    -					print '<td align="left" class="nowrap"><a href="'.DOL_URL_ROOT.'/fourn/facture/card.php?facid='.$obj->rowid.'">'.img_object($langs->trans("ShowBill"),'bill').' '.$obj->facnumber.'</a></td>';
    +					print '<td align="left" class="nowrap"><a href="'.DOL_URL_ROOT.'/fourn/facture/card.php?facid='.$obj->rowid.'">'.img_object($langs->trans("ShowBill"),'bill').' '.$obj->ref.'</a></td>';
     					print '<td align="right">'.price($obj->amount_ht).'</td>';
     					print '<td align="right">'.price2num($obj->tva_tx,'MU').'%</td>';
     					print '<td align="right">'.price($obj->amount_ttc).'</td>';
    @@ -1006,5 +1006,6 @@ if ($socid > 0)
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php
    index 0b0348ee5e0..36dac7431af 100644
    --- a/htdocs/commande/card.php
    +++ b/htdocs/commande/card.php
    @@ -2,16 +2,17 @@
     /* Copyright (C) 2003-2006	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2005		Marc Barilley / Ocebo	<marc@ocebo.com>
    - * Copyright (C) 2005-2015	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2006		Andre Cianfarani		<acianfa@free.fr>
      * Copyright (C) 2010-2013	Juanjo Menent			<jmenent@2byte.es>
    - * Copyright (C) 2011-2016	Philippe Grand			<philippe.grand@atoo-net.com>
    + * Copyright (C) 2011-2018	Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2012-2013	Christophe Battarel		<christophe.battarel@altairis.fr>
      * Copyright (C) 2012-2016	Marcos García			<marcosgdf@gmail.com>
      * Copyright (C) 2012       Cedric Salvador      	<csalvador@gpcsolutions.fr>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2014       Ferran Marcet			<fmarcet@2byte.es>
      * Copyright (C) 2015       Jean-François Ferry		<jfefe@aternatik.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -105,7 +106,8 @@ $permissionedit = $user->rights->commande->creer; 		// Used by the include of ac
      */
     
     $parameters = array('socid' => $socid);
    -$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
    +// Note that $action and $object may be modified by some hooks
    +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action);
     if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
     
     if (empty($reshook))
    @@ -418,11 +420,11 @@ if (empty($reshook))
     
     						// Hooks
     						$parameters = array('objFrom' => $srcobject);
    -						$reshook = $hookmanager->executeHooks('createFrom', $parameters, $object, $action); // Note that $action and $object may have been
    -						// modified by hook
    -						if ($reshook < 0)
    +						// Note that $action and $object may be modified by hook
    +						$reshook = $hookmanager->executeHooks('createFrom', $parameters, $object, $action);
    +						if ($reshook < 0) {
     							$error++;
    -
    +						}
     					} else {
     						setEventMessages($object->error, $object->errors, 'errors');
     						$error++;
    @@ -700,8 +702,10 @@ if (empty($reshook))
     
     				if ($res = $prodcomb->fetchByProductCombination2ValuePairs($idprod, $combinations)) {
     					$idprod = $res->fk_product_child;
    -				} else {
    -					setEventMessage($langs->trans('ErrorProductCombinationNotFound'), 'errors');
    +				}
    +				else
    +				{
    +					setEventMessages($langs->trans('ErrorProductCombinationNotFound'), null, 'errors');
     					$error ++;
     				}
     			}
    @@ -864,7 +868,7 @@ if (empty($reshook))
     					$desc = $prod->description;
     				}
     
    -				$desc = dol_concatdesc($desc, $product_desc);
    +				$desc = dol_concatdesc($desc, $product_desc, '', !empty($conf->global->CHANGE_ORDER_CONCAT_DESCRIPTION));
     
     				// Add custom code and origin country into description
     				if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (! empty($prod->customcode) || ! empty($prod->country_code))) {
    @@ -928,7 +932,7 @@ if (empty($reshook))
     			if ($tva_npr)
     				$info_bits |= 0x01;
     
    -			if (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min))) {
    +			if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS) )&& (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) {
     				$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency));
     				setEventMessages($mesg, null, 'errors');
     			} else {
    @@ -1049,7 +1053,7 @@ if (empty($reshook))
     
     			$label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : '');
     
    -			if ($price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min))) {
    +			if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS) )&& ($price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min)))) {
     				setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors');
     				$error++;
     			}
    @@ -1316,6 +1320,88 @@ if (empty($reshook))
     		exit();
     	}
     
    +	// add lines from objectlinked
    +	if($action == 'import_lines_from_object'
    +	    && $user->rights->commande->creer
    +	    && $object->statut == Commande::STATUS_DRAFT
    +	  )
    +	{
    +	    $fromElement = GETPOST('fromelement');
    +	    $fromElementid = GETPOST('fromelementid');
    +	    $importLines = GETPOST('line_checkbox');
    +
    +	    if(!empty($importLines) && is_array($importLines) && !empty($fromElement) && ctype_alpha($fromElement) && !empty($fromElementid))
    +	    {
    +	        if($fromElement == 'commande')
    +	        {
    +	            dol_include_once('/'.$fromElement.'/class/'.$fromElement.'.class.php');
    +	            $lineClassName = 'OrderLine';
    +	        }
    +	        elseif($fromElement == 'propal')
    +	        {
    +	            dol_include_once('/comm/'.$fromElement.'/class/'.$fromElement.'.class.php');
    +	            $lineClassName = 'PropaleLigne';
    +	        }
    +	        $nextRang = count($object->lines) + 1;
    +	        $importCount = 0;
    +	        $error = 0;
    +	        foreach($importLines as $lineId)
    +	        {
    +	            $lineId = intval($lineId);
    +	            $originLine = new $lineClassName($db);
    +	            if(intval($fromElementid) > 0 && $originLine->fetch( $lineId ) > 0)
    +	            {
    +	                $originLine->fetch_optionals($lineId);
    +	                $desc = $originLine->desc;
    +	                $pu_ht = $originLine->subprice;
    +	                $qty = $originLine->qty;
    +	                $txtva = $originLine->tva_tx;
    +	                $txlocaltax1 = $originLine->localtax1_tx;
    +	                $txlocaltax2 = $originLine->localtax2_tx;
    +	                $fk_product = $originLine->fk_product;
    +	                $remise_percent = $originLine->remise_percent;
    +	                $date_start = $originLine->date_start;
    +	                $date_end = $originLine->date_end;
    +	                $ventil = 0;
    +	                $info_bits = $originLine->info_bits;
    +	                $fk_remise_except = $originLine->fk_remise_except;
    +	                $price_base_type='HT';
    +	                $pu_ttc=0;
    +	                $type = $originLine->product_type;
    +	                $rang=$nextRang++;
    +	                $special_code = $originLine->special_code;
    +	                $origin = $originLine->element;
    +	                $origin_id = $originLine->id;
    +	                $fk_parent_line=0;
    +	                $fk_fournprice=$originLine->fk_fournprice;
    +	                $pa_ht = $originLine->pa_ht;
    +	                $label = $originLine->label;
    +	                $array_options = $originLine->array_options;
    +	                $situation_percent = 100;
    +	                $fk_prev_id = '';
    +	                $fk_unit = $originLine->fk_unit;
    +	                $pu_ht_devise = $originLine->multicurrency_subprice;
    +
    +	                $res = $object->addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1, $txlocaltax2, $fk_product, $remise_percent, $info_bits, $fk_remise_except, $price_base_type, $pu_ttc, $date_start, $date_end, $type, $rang, $special_code, $fk_parent_line, $fk_fournprice, $pa_ht, $label,$array_options, $fk_unit, $origin, $origin_id, $pu_ht_devise);
    +
    +	                if($res > 0){
    +	                    $importCount++;
    +	                }else{
    +	                    $error++;
    +	                }
    +	            }
    +	            else{
    +	                $error++;
    +	            }
    +	        }
    +
    +	        if($error)
    +	        {
    +	            setEventMessages($langs->trans('ErrorsOnXLines',$error), null, 'errors');
    +	        }
    +	    }
    +	}
    +
     	// Actions when printing a doc from card
     	include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
     
    @@ -1577,7 +1663,7 @@ if ($action == 'create' && $user->rights->commande->creer)
     	}
     	// Date
     	print '<tr><td class="fieldrequired">' . $langs->trans('Date') . '</td><td>';
    -	$form->select_date('', 're', '', '', '', "crea_commande", 1, 1);			// Always autofill date with current date
    +	print $form->selectDate('', 're', '', '', '', "crea_commande", 1, 1);			// Always autofill date with current date
     	print '</td></tr>';
     
     	// Delivery date planed
    @@ -1587,7 +1673,7 @@ if ($action == 'create' && $user->rights->commande->creer)
     		if (! empty($conf->global->DATE_LIVRAISON_WEEK_DELAY)) $datedelivery = time() + ((7*$conf->global->DATE_LIVRAISON_WEEK_DELAY) * 24 * 60 * 60);
     		else $datedelivery=empty($conf->global->MAIN_AUTOFILL_DATE_DELIVERY)?-1:'';
     	}
    -	$form->select_date($datedelivery, 'liv_', '', '', '', "crea_commande", 1, 1);
    +	print $form->selectDate($datedelivery, 'liv_', '', '', '', "crea_commande", 1, 1);
     	print "</td></tr>";
     
     	// Conditions de reglement
    @@ -1667,7 +1753,8 @@ if ($action == 'create' && $user->rights->commande->creer)
     
     	// Other attributes
     	$parameters = array('objectsrc' => $objectsrc, 'socid'=>$socid);
    -	$reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by
    +	// Note that $action and $object may be modified by hook
    +	$reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action);
     	print $hookmanager->resPrint;
     	if (empty($reshook)) {
     		print $object->showOptionals($extrafields, 'edit');
    @@ -1685,7 +1772,7 @@ if ($action == 'create' && $user->rights->commande->creer)
     	if (! empty($conf->multicurrency->enabled))
     	{
     		print '<tr>';
    -		print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
    +		print '<td>'.$form->editfieldkey("Currency", 'multicurrency_code', '', $object, 0).'</td>';
     		print '<td class="maxwidthonsmartphone">';
     		print $form->selectMultiCurrency($currency_code, 'multicurrency_code');
     		print '</td></tr>';
    @@ -1965,12 +2052,12 @@ if ($action == 'create' && $user->rights->commande->creer)
     			$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('CloneOrder'), $langs->trans('ConfirmCloneOrder', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
     		}
     
    -		if (! $formconfirm) {
    -			$parameters = array('lineid' => $lineid);
    -			$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    -			if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    -			elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    -		}
    +		// Call Hook formConfirm
    +		$parameters = array('lineid' => $lineid);
    +		// Note that $action and $object may be modified by hook
    +		$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action);
    +		if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +		elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
     
     		// Print form confirm
     		print $formconfirm;
    @@ -2030,7 +2117,7 @@ if ($action == 'create' && $user->rights->commande->creer)
     		print '<div class="fichehalfleft">';
     		print '<div class="underbanner clearboth"></div>';
     
    -		print '<table class="border" width="100%">';
    +		print '<table class="border tableforfield" width="100%">';
     
     		if ($soc->outstanding_limit)
     		{
    @@ -2073,19 +2160,14 @@ if ($action == 'create' && $user->rights->commande->creer)
     
     		// Date
     		print '<tr><td>';
    -		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print $langs->trans('Date');
    -		print '</td>';
    -
    -		if ($action != 'editdate' && $object->brouillon)
    -			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdate&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
    -		print '</tr></table>';
    +		$editenable = $user->rights->commande->creer && $object->statut == Commande::STATUS_DRAFT;
    +		print $form->editfieldkey("Date", 'date', '', $object, $editenable);
     		print '</td><td>';
     		if ($action == 'editdate') {
     			print '<form name="setdate" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
     			print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
     			print '<input type="hidden" name="action" value="setdate">';
    -			$form->select_date($object->date, 'order_', '', '', '', "setdate");
    +			print $form->selectDate($object->date, 'order_', '', '', '', "setdate");
     			print '<input type="submit" class="button" value="' . $langs->trans('Modify') . '">';
     			print '</form>';
     		} else {
    @@ -2099,18 +2181,14 @@ if ($action == 'create' && $user->rights->commande->creer)
     
     		// Delivery date planed
     		print '<tr><td>';
    -		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print $langs->trans('DateDeliveryPlanned');
    -		print '</td>';
    -		if ($action != 'editdate_livraison')
    -			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdate_livraison&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetDeliveryDate'), 1) . '</a></td>';
    -		print '</tr></table>';
    +		$editenable = $user->rights->commande->creer;
    +		print $form->editfieldkey("DateDeliveryPlanned", 'date_livraison', '', $object, $editenable);
     		print '</td><td>';
     		if ($action == 'editdate_livraison') {
     			print '<form name="setdate_livraison" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
     			print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
     			print '<input type="hidden" name="action" value="setdate_livraison">';
    -			$form->select_date($object->date_livraison ? $object->date_livraison : - 1, 'liv_', '', '', '', "setdate_livraison");
    +			print $form->selectDate($object->date_livraison ? $object->date_livraison : - 1, 'liv_', '', '', '', "setdate_livraison");
     			print '<input type="submit" class="button" value="' . $langs->trans('Modify') . '">';
     			print '</form>';
     		} else {
    @@ -2124,13 +2202,9 @@ if ($action == 'create' && $user->rights->commande->creer)
     
     		// Shipping Method
     		if (! empty($conf->expedition->enabled)) {
    -			print '<tr><td height="10">';
    -			print '<table width="100%" class="nobordernopadding"><tr><td>';
    -			print $langs->trans('SendingMethod');
    -			print '</td>';
    -			if ($action != 'editshippingmethod' && $user->rights->commande->creer)
    -				print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editshippingmethod&amp;id='.$object->id.'">'.img_edit($langs->trans('SetShippingMode'),1).'</a></td>';
    -			print '</tr></table>';
    +			print '<tr><td>';
    +			$editenable = $user->rights->commande->creer;
    +			print $form->editfieldkey("SendingMethod", 'shippingmethod', '', $object, $editenable);
     			print '</td><td>';
     			if ($action == 'editshippingmethod') {
     				$form->formSelectShippingMethod($_SERVER['PHP_SELF'].'?id='.$object->id, $object->shipping_method_id, 'shipping_method_id', 1);
    @@ -2143,15 +2217,12 @@ if ($action == 'create' && $user->rights->commande->creer)
     
     		// Warehouse
     		if (! empty($conf->expedition->enabled) && ! empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) {
    +			$langs->load('stocks');
     			require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
     			$formproduct=new FormProduct($db);
     			print '<tr><td>';
    -			print '<table width="100%" class="nobordernopadding"><tr><td>';
    -			print $langs->trans('Warehouse');
    -			print '</td>';
    -			if ($action != 'editwarehouse' && $user->rights->commande->creer)
    -				print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editwarehouse&amp;id='.$object->id.'">'.img_edit($langs->trans('SetWarehouse'),1).'</a></td>';
    -			print '</tr></table>';
    +			$editenable = $user->rights->commande->creer;
    +			print $form->editfieldkey("Warehouse", 'warehouse', '', $object, $editenable);
     			print '</td><td>';
     			if ($action == 'editwarehouse') {
     				$formproduct->formSelectWarehouses($_SERVER['PHP_SELF'].'?id='.$object->id, $object->warehouse_id, 'warehouse_id', 1);
    @@ -2164,12 +2235,8 @@ if ($action == 'create' && $user->rights->commande->creer)
     
     		// Terms of payment
     		print '<tr><td>';
    -		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print $langs->trans('PaymentConditionsShort');
    -		print '</td>';
    -		if ($action != 'editconditions')
    -			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editconditions&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetConditions'), 1) . '</a></td>';
    -		print '</tr></table>';
    +		$editenable = $user->rights->commande->creer;
    +		print $form->editfieldkey("PaymentConditionsShort", 'conditions', '', $object, $editenable);
     		print '</td><td>';
     		if ($action == 'editconditions') {
     			$form->form_conditions_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->cond_reglement_id, 'cond_reglement_id', 1);
    @@ -2182,15 +2249,11 @@ if ($action == 'create' && $user->rights->commande->creer)
     
     		// Mode of payment
     		print '<tr><td>';
    -		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print $langs->trans('PaymentMode');
    -		print '</td>';
    -		if ($action != 'editmode')
    -			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmode&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetMode'), 1) . '</a></td>';
    -		print '</tr></table>';
    +		$editenable = $user->rights->commande->creer;
    +		print $form->editfieldkey("PaymentMode", 'mode', '', $object, $editenable);
     		print '</td><td>';
     		if ($action == 'editmode') {
    -			$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT');
    +			$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT', 1, 1);
     		} else {
     			$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'none');
     		}
    @@ -2202,12 +2265,8 @@ if ($action == 'create' && $user->rights->commande->creer)
     			// Multicurrency code
     			print '<tr>';
     			print '<td>';
    -			print '<table class="nobordernopadding" width="100%"><tr><td>';
    -			print fieldLabel('Currency','multicurrency_code');
    -			print '</td>';
    -			if ($action != 'editmulticurrencycode' && ! empty($object->brouillon))
    -				print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencycode&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
    -			print '</tr></table>';
    +			$editenable = $user->rights->commande->creer && $object->statut == Commande::STATUS_DRAFT;
    +			print $form->editfieldkey("Currency", 'multicurrencycode', '', $object, $editenable);
     			print '</td><td>';
     			if ($action == 'editmulticurrencycode') {
     				$form->form_multicurrency_code($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_code, 'multicurrency_code');
    @@ -2219,12 +2278,8 @@ if ($action == 'create' && $user->rights->commande->creer)
     			// Multicurrency rate
     			print '<tr>';
     			print '<td>';
    -			print '<table class="nobordernopadding" width="100%"><tr><td>';
    -			print fieldLabel('CurrencyRate','multicurrency_tx');
    -			print '</td>';
    -			if ($action != 'editmulticurrencyrate' && ! empty($object->brouillon) && $object->multicurrency_code && $object->multicurrency_code != $conf->currency)
    -				print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencyrate&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
    -			print '</tr></table>';
    +			$editenable = $user->rights->commande->creer && $object->multicurrency_code && $object->multicurrency_code != $conf->currency && $object->statut == Commande::STATUS_DRAFT;
    +			print $form->editfieldkey("CurrencyRate", 'multicurrencyrate', '', $object, $editenable);
     			print '</td><td>';
     			if ($action == 'editmulticurrencyrate' || $action == 'actualizemulticurrencyrate') {
     				if($action == 'actualizemulticurrencyrate') {
    @@ -2243,13 +2298,9 @@ if ($action == 'create' && $user->rights->commande->creer)
     		}
     
     		// Delivery delay
    -		print '<tr class="fielddeliverydelay"><td height="10">';
    -		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print $langs->trans('AvailabilityPeriod');
    -		print '</td>';
    -		if ($action != 'editavailability')
    -			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editavailability&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetAvailability'), 1) . '</a></td>';
    -		print '</tr></table>';
    +		print '<tr class="fielddeliverydelay"><td>';
    +		$editenable = $user->rights->commande->creer;
    +		print $form->editfieldkey("AvailabilityPeriod", 'availability', '', $object, $editenable);
     		print '</td><td>';
     		if ($action == 'editavailability') {
     			$form->form_availability($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->availability_id, 'availability_id', 1);
    @@ -2259,13 +2310,9 @@ if ($action == 'create' && $user->rights->commande->creer)
     		print '</td></tr>';
     
     		// Source reason (why we have an ordrer)
    -		print '<tr><td height="10">';
    -		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print $langs->trans('Channel');
    -		print '</td>';
    -		if ($action != 'editdemandreason')
    -			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdemandreason&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetDemandReason'), 1) . '</a></td>';
    -		print '</tr></table>';
    +		print '<tr><td>';
    +		$editenable = $user->rights->commande->creer;
    +		print $form->editfieldkey("Channel", 'demandreason', '', $object, $editenable);
     		print '</td><td>';
     		if ($action == 'editdemandreason') {
     			$form->formInputReason($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'demand_reason_id', 1);
    @@ -2276,13 +2323,9 @@ if ($action == 'create' && $user->rights->commande->creer)
     
     		// TODO Order mode (how we receive order). Not yet implemented
     		/*
    -		print '<tr><td height="10">';
    -		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print $langs->trans('SourceMode');
    -		print '</td>';
    -		if ($action != 'editinputmode')
    -			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editinputmode&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetInputMode'), 1) . '</a></td>';
    -		print '</tr></table>';
    +		print '<tr><td>';
    +		$editenable = $user->rights->commande->creer;
    +		print $form->editfieldkey("SourceMode", 'inputmode', '', $object, $editenable);
     		print '</td><td>';
     		if ($action == 'editinputmode') {
     			$form->formInputMode($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->source, 'input_mode_id', 1);
    @@ -2295,15 +2338,13 @@ if ($action == 'create' && $user->rights->commande->creer)
     		$tmparray=$object->getTotalWeightVolume();
     		$totalWeight=$tmparray['weight'];
     		$totalVolume=$tmparray['volume'];
    -		if ($totalWeight)
    -		{
    +		if ($totalWeight) {
     			print '<tr><td>'.$langs->trans("CalculatedWeight").'</td>';
     			print '<td>';
     			print showDimensionInBestUnit($totalWeight, 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND)?$conf->global->MAIN_WEIGHT_DEFAULT_ROUND:-1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT)?$conf->global->MAIN_WEIGHT_DEFAULT_UNIT:'no');
     			print '</td></tr>';
     		}
    -		if ($totalVolume)
    -		{
    +		if ($totalVolume) {
     			print '<tr><td>'.$langs->trans("CalculatedVolume").'</td>';
     			print '<td>';
     			print showDimensionInBestUnit($totalVolume, 0, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND)?$conf->global->MAIN_VOLUME_DEFAULT_ROUND:-1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT)?$conf->global->MAIN_VOLUME_DEFAULT_UNIT:'no');
    @@ -2313,15 +2354,10 @@ if ($action == 'create' && $user->rights->commande->creer)
     		// TODO How record was recorded OrderMode (llx_c_input_method)
     
     		// Incoterms
    -		if (!empty($conf->incoterm->enabled))
    -		{
    +		if (!empty($conf->incoterm->enabled)) {
     			print '<tr><td>';
    -			print '<table width="100%" class="nobordernopadding"><tr><td>';
    -			print $langs->trans('IncotermLabel');
    -			print '<td><td align="right">';
    -			if ($user->rights->commande->creer) print '<a href="'.DOL_URL_ROOT.'/commande/card.php?id='.$object->id.'&action=editincoterm">'.img_edit().'</a>';
    -			else print '&nbsp;';
    -			print '</td></tr></table>';
    +			$editenable = $user->rights->commande->creer;
    +			print $form->editfieldkey("IncotermLabel", 'incoterm', '', $object, $editenable);
     			print '</td>';
     			print '<td>';
     			if ($action != 'editincoterm')
    @@ -2336,15 +2372,10 @@ if ($action == 'create' && $user->rights->commande->creer)
     		}
     
     		// Bank Account
    -		if (! empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_ORDER) && ! empty($conf->banque->enabled))
    -		{
    -			print '<tr><td class="nowrap">';
    -			print '<table width="100%" class="nobordernopadding"><tr><td class="nowrap">';
    -			print $langs->trans('BankAccount');
    -			print '<td>';
    -			if ($action != 'editbankaccount' && $user->rights->commande->creer)
    -				print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editbankaccount&amp;id='.$object->id.'">'.img_edit($langs->trans('SetBankAccount'),1).'</a></td>';
    -			print '</tr></table>';
    +		if (! empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_ORDER) && ! empty($conf->banque->enabled)) {
    +			print '<tr><td>';
    +			$editenable = $user->rights->commande->creer;
    +			print $form->editfieldkey("BankAccount", 'bankaccount', '', $object, $editenable);
     			print '</td><td>';
     			if ($action == 'editbankaccount') {
     				$form->formSelectAccount($_SERVER['PHP_SELF'].'?id='.$object->id, $object->fk_account, 'fk_account', 1);
    @@ -2365,22 +2396,22 @@ if ($action == 'create' && $user->rights->commande->creer)
     		print '<div class="ficheaddleft">';
     		print '<div class="underbanner clearboth"></div>';
     
    -		print '<table class="border centpercent">';
    +		print '<table class="border tableforfield centpercent">';
     
     		if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency))
     		{
     			// Multicurrency Amount HT
    -			print '<tr><td class="titlefieldmiddle">' . fieldLabel('MulticurrencyAmountHT','multicurrency_total_ht') . '</td>';
    +			print '<tr><td class="titlefieldmiddle">' . $form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0) . '</td>';
     			print '<td class="nowrap">' . price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     			print '</tr>';
     
     			// Multicurrency Amount VAT
    -			print '<tr><td>' . fieldLabel('MulticurrencyAmountVAT','multicurrency_total_tva') . '</td>';
    +			print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0) . '</td>';
     			print '<td class="nowrap">' . price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     			print '</tr>';
     
     			// Multicurrency Amount TTC
    -			print '<tr><td>' . fieldLabel('MulticurrencyAmountTTC','multicurrency_total_ttc') . '</td>';
    +			print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0) . '</td>';
     			print '<td class="nowrap">' . price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     			print '</tr>';
     		}
    @@ -2445,12 +2476,11 @@ if ($action == 'create' && $user->rights->commande->creer)
     		 */
     		$result = $object->getLinesArray();
     
    -		print '	<form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#addline' : '#line_' . GETPOST('lineid')) . '" method="POST">
    +		print '<form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#addline' : '#line_' . GETPOST('lineid')) . '" method="POST">
     		<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">
     		<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateline') . '">
     		<input type="hidden" name="mode" value="">
    -		<input type="hidden" name="id" value="' . $object->id . '">
    -		';
    +		<input type="hidden" name="id" value="' . $object->id . '">';
     
     		if (! empty($conf->use_javascript_ajax) && $object->statut == Commande::STATUS_DRAFT) {
     			include DOL_DOCUMENT_ROOT . '/core/tpl/ajaxrow.tpl.php';
    @@ -2476,7 +2506,8 @@ if ($action == 'create' && $user->rights->commande->creer)
     				$object->formAddObjectLine(1, $mysoc, $soc);
     
     				$parameters = array();
    -				$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +				// Note that $action and $object may be modified by hook
    +				$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action);
     			}
     		}
     		print '</table>';
    @@ -2493,15 +2524,15 @@ if ($action == 'create' && $user->rights->commande->creer)
     			print '<div class="tabsAction">';
     
     			$parameters = array();
    -			$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been
    -																									  // modified by hook
    +			// Note that $action and $object may be modified by hook
    +			$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action);
     			if (empty($reshook)) {
     				// Send
     				if ($object->statut > Commande::STATUS_DRAFT) {
     					if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->commande->order_advance->send)) {
     						print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle">' . $langs->trans('SendMail') . '</a></div>';
     					} else
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendMail') . '</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">' . $langs->trans('SendMail') . '</a></div>';
     				}
     
     				// Valid
    @@ -2517,10 +2548,11 @@ if ($action == 'create' && $user->rights->commande->creer)
     					print '<div class="inline-block divButAction"><a class="butAction" href="card.php?id=' . $object->id . '&amp;action=modif">' . $langs->trans('Modify') . '</a></div>';
     				}
     				// Create event
    -				/*if ($conf->agenda->enabled && ! empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD)) 				// Add hidden condition because this is not a
    -																									  // "workflow" action so should appears somewhere else on
    -																									  // page.
    +				/*if ($conf->agenda->enabled && ! empty($conf->global->MAIN_ADD_EVENT_ON_ELEMENT_CARD))
     				{
    +					// Add hidden condition because this is not a
    +					// "workflow" action so should appears somewhere else on
    +					// page.
     					print '<a class="butAction" href="' . DOL_URL_ROOT . '/comm/action/card.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans("AddAction") . '</a>';
     				}*/
     
    @@ -2532,7 +2564,7 @@ if ($action == 'create' && $user->rights->commande->creer)
     						if ($user->rights->ficheinter->creer) {
     							print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/fichinter/card.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans('AddIntervention') . '</a></div>';
     						} else {
    -							print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('AddIntervention') . '</a></div>';
    +							print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('AddIntervention') . '</a></div>';
     						}
     					}
     				}
    @@ -2556,11 +2588,11 @@ if ($action == 'create' && $user->rights->commande->creer)
     							if ($user->rights->expedition->creer) {
     								print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/expedition/shipment.php?id=' . $object->id . '">' . $langs->trans('CreateShipment') . '</a></div>';
     							} else {
    -								print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('CreateShipment') . '</a></div>';
    +								print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('CreateShipment') . '</a></div>';
     							}
     						} else {
     							$langs->load("errors");
    -							print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . dol_escape_htmltag($langs->trans("ErrorModuleSetupNotComplete")) . '">' . $langs->trans('CreateShipment') . '</a></div>';
    +							print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . dol_escape_htmltag($langs->trans("ErrorModuleSetupNotComplete")) . '">' . $langs->trans('CreateShipment') . '</a></div>';
     						}
     					}
     				}
    @@ -2609,7 +2641,7 @@ if ($action == 'create' && $user->rights->commande->creer)
     					if ($numshipping == 0) {
     						print '<div class="inline-block divButAction"><a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=delete">' . $langs->trans('Delete') . '</a></div>';
     					} else {
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("ShippingExist") . '">' . $langs->trans("Delete") . '</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("ShippingExist") . '">' . $langs->trans("Delete") . '</a></div>';
     					}
     				}
     			}
    @@ -2637,7 +2669,14 @@ if ($action == 'create' && $user->rights->commande->creer)
     
     			// Show links to link elements
     			$linktoelem = $form->showLinkToObjectBlock($object, null, array('order'));
    -			$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
    +
    +			$compatibleImportElementsList = false;
    +			if($user->rights->commande->creer
    +			    && $object->statut == Commande::STATUS_DRAFT)
    +			{
    +			    $compatibleImportElementsList = array('commande','propal'); // import from linked elements
    +			}
    +			$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem,$compatibleImportElementsList);
     
     			// Show online payment link
     			$useonlinepayment = (! empty($conf->paypal->enabled) || ! empty($conf->stripe->enabled) || ! empty($conf->paybox->enabled));
    @@ -2676,5 +2715,6 @@ if ($action == 'create' && $user->rights->commande->creer)
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/commande/class/api_orders.class.php b/htdocs/commande/class/api_orders.class.php
    index e52da47e11b..1135a5c2502 100644
    --- a/htdocs/commande/class/api_orders.class.php
    +++ b/htdocs/commande/class/api_orders.class.php
    @@ -97,9 +97,10 @@ class Orders extends DolibarrApi
          * @param string           $sqlfilters          Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')"
          * @return  array                               Array of order objects
          *
    -	 * @throws RestException
    +     * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -185,9 +186,9 @@ class Orders extends DolibarrApi
          */
         function post($request_data = null)
         {
    -      if(! DolibarrApiAccess::$user->rights->commande->creer) {
    -			  throw new RestException(401, "Insuffisant rights");
    -		  }
    +        if(! DolibarrApiAccess::$user->rights->commande->creer) {
    +			throw new RestException(401, "Insuffisant rights");
    +		}
             // Check mandatory fields
             $result = $this->_validate($request_data);
     
    @@ -218,25 +219,26 @@ class Orders extends DolibarrApi
          *
          * @return int
          */
    -    function getLines($id) {
    -      if(! DolibarrApiAccess::$user->rights->commande->lire) {
    -		  	throw new RestException(401);
    -		  }
    +    function getLines($id)
    +    {
    +        if(! DolibarrApiAccess::$user->rights->commande->lire) {
    +			throw new RestException(401);
    +		}
     
    -      $result = $this->commande->fetch($id);
    -      if( ! $result ) {
    -         throw new RestException(404, 'Order not found');
    -      }
    +        $result = $this->commande->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Order not found');
    +        }
     
    -		  if( ! DolibarrApi::_checkAccessToResource('commande',$this->commande->id)) {
    -			  throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -      }
    -      $this->commande->getLinesArray();
    -      $result = array();
    -      foreach ($this->commande->lines as $line) {
    -        array_push($result,$this->_cleanObjectDatas($line));
    -      }
    -      return $result;
    +		if( ! DolibarrApi::_checkAccessToResource('commande',$this->commande->id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
    +        $this->commande->getLinesArray();
    +        $result = array();
    +        foreach ($this->commande->lines as $line) {
    +            array_push($result,$this->_cleanObjectDatas($line));
    +        }
    +        return $result;
         }
     
         /**
    @@ -249,21 +251,22 @@ class Orders extends DolibarrApi
          *
          * @return int
          */
    -    function postLine($id, $request_data = null) {
    -      if(! DolibarrApiAccess::$user->rights->commande->creer) {
    -		  	throw new RestException(401);
    -		  }
    +    function postLine($id, $request_data = null)
    +    {
    +        if(! DolibarrApiAccess::$user->rights->commande->creer) {
    +			throw new RestException(401);
    +		}
     
    -      $result = $this->commande->fetch($id);
    -      if( ! $result ) {
    -         throw new RestException(404, 'Order not found');
    -      }
    +        $result = $this->commande->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Order not found');
    +        }
     
    -		  if( ! DolibarrApi::_checkAccessToResource('commande',$this->commande->id)) {
    -			  throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -      }
    -			$request_data = (object) $request_data;
    -      $updateRes = $this->commande->addline(
    +		if( ! DolibarrApi::_checkAccessToResource('commande',$this->commande->id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
    +		$request_data = (object) $request_data;
    +        $updateRes = $this->commande->addline(
                             $request_data->desc,
                             $request_data->subprice,
                             $request_data->qty,
    @@ -290,15 +293,13 @@ class Orders extends DolibarrApi
                             $request_data->origin,
                             $request_data->origin_id,
                             $request_data->multicurrency_subprice
    -      );
    +        );
     
    -      if ($updateRes > 0) {
    -        return $updateRes;
    -
    -      }
    -      else {
    +        if ($updateRes > 0) {
    +            return $updateRes;
    +        } else {
     			throw new RestException(400, $this->commande->error);
    -      }
    +        }
         }
     
         /**
    @@ -312,51 +313,52 @@ class Orders extends DolibarrApi
          *
          * @return object
          */
    -    function putLine($id, $lineid, $request_data = null) {
    -      if(! DolibarrApiAccess::$user->rights->commande->creer) {
    -		  	throw new RestException(401);
    -		  }
    +    function putLine($id, $lineid, $request_data = null)
    +    {
    +        if(! DolibarrApiAccess::$user->rights->commande->creer) {
    +			throw new RestException(401);
    +		}
     
    -      $result = $this->commande->fetch($id);
    -      if( ! $result ) {
    -         throw new RestException(404, 'Order not found');
    -      }
    +        $result = $this->commande->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Order not found');
    +        }
     
    -		  if( ! DolibarrApi::_checkAccessToResource('commande',$this->commande->id)) {
    -			  throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -      }
    -			$request_data = (object) $request_data;
    -      $updateRes = $this->commande->updateline(
    -                        $lineid,
    -                        $request_data->desc,
    -                        $request_data->subprice,
    -                        $request_data->qty,
    -                        $request_data->remise_percent,
    -                        $request_data->tva_tx,
    -                        $request_data->localtax1_tx,
    -                        $request_data->localtax2_tx,
    -                        'HT',
    -                        $request_data->info_bits,
    -                        $request_data->date_start,
    -                        $request_data->date_end,
    -                        $request_data->product_type,
    -                        $request_data->fk_parent_line,
    -                        0,
    -                        $request_data->fk_fournprice,
    -                        $request_data->pa_ht,
    -                        $request_data->label,
    -                        $request_data->special_code,
    -                        $request_data->array_options,
    -                        $request_data->fk_unit,
    -      					$request_data->multicurrency_subprice
    -      );
    +		if( ! DolibarrApi::_checkAccessToResource('commande',$this->commande->id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
    +		$request_data = (object) $request_data;
    +        $updateRes = $this->commande->updateline(
    +            $lineid,
    +            $request_data->desc,
    +            $request_data->subprice,
    +            $request_data->qty,
    +            $request_data->remise_percent,
    +            $request_data->tva_tx,
    +            $request_data->localtax1_tx,
    +            $request_data->localtax2_tx,
    +            'HT',
    +            $request_data->info_bits,
    +            $request_data->date_start,
    +            $request_data->date_end,
    +            $request_data->product_type,
    +            $request_data->fk_parent_line,
    +            0,
    +            $request_data->fk_fournprice,
    +            $request_data->pa_ht,
    +            $request_data->label,
    +            $request_data->special_code,
    +            $request_data->array_options,
    +            $request_data->fk_unit,
    +      		$request_data->multicurrency_subprice
    +        );
     
    -      if ($updateRes > 0) {
    -        $result = $this->get($id);
    -        unset($result->line);
    -        return $this->_cleanObjectDatas($result);
    -      }
    -      return false;
    +        if ($updateRes > 0) {
    +            $result = $this->get($id);
    +            unset($result->line);
    +            return $this->_cleanObjectDatas($result);
    +        }
    +        return false;
         }
     
         /**
    @@ -372,30 +374,29 @@ class Orders extends DolibarrApi
          * @throws 401
          * @throws 404
          */
    -    function deleteLine($id, $lineid) {
    -      if(! DolibarrApiAccess::$user->rights->commande->creer) {
    -		  	throw new RestException(401);
    -		  }
    +    function deleteLine($id, $lineid)
    +    {
    +        if(! DolibarrApiAccess::$user->rights->commande->creer) {
    +			throw new RestException(401);
    +		}
     
    -      $result = $this->commande->fetch($id);
    -      if( ! $result ) {
    -         throw new RestException(404, 'Order not found');
    -      }
    +        $result = $this->commande->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Order not found');
    +        }
     
    -		  if( ! DolibarrApi::_checkAccessToResource('commande',$this->commande->id)) {
    -			  throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -      }
    +		if( ! DolibarrApi::_checkAccessToResource('commande',$this->commande->id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
     
    -      // TODO Check the lineid $lineid is a line of ojbect
    +        // TODO Check the lineid $lineid is a line of ojbect
     
    -      $updateRes = $this->commande->deleteline(DolibarrApiAccess::$user,$lineid);
    -      if ($updateRes > 0) {
    -        return $this->get($id);
    -      }
    -      else
    -      {
    -      	throw new RestException(405, $this->commande->error);
    -      }
    +        $updateRes = $this->commande->deleteline(DolibarrApiAccess::$user,$lineid);
    +        if ($updateRes > 0) {
    +            return $this->get($id);
    +        } else {
    +            throw new RestException(405, $this->commande->error);
    +        }
         }
     
         /**
    @@ -406,10 +407,11 @@ class Orders extends DolibarrApi
          *
          * @return int
          */
    -    function put($id, $request_data = null) {
    -      if (! DolibarrApiAccess::$user->rights->commande->creer) {
    -		  	throw new RestException(401);
    -		  }
    +    function put($id, $request_data = null)
    +    {
    +        if (! DolibarrApiAccess::$user->rights->commande->creer) {
    +			throw new RestException(401);
    +		}
     
             $result = $this->commande->fetch($id);
             if (! $result) {
    @@ -470,7 +472,6 @@ class Orders extends DolibarrApi
                     'message' => 'Order deleted'
                 )
             );
    -
         }
     
         /**
    @@ -547,24 +548,25 @@ class Orders extends DolibarrApi
          * @throws 404
          * @throws 405
          */
    -    function reopen($id) {
    +    function reopen($id)
    +    {
     
             if(! DolibarrApiAccess::$user->rights->commande->creer) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             if(empty($id)) {
    -                throw new RestException(400, 'Order ID is mandatory');
    +            throw new RestException(400, 'Order ID is mandatory');
             }
             $result = $this->commande->fetch($id);
             if( ! $result ) {
    -                throw new RestException(404, 'Order not found');
    +            throw new RestException(404, 'Order not found');
             }
     
             $result = $this->commande->set_reopen(DolibarrApiAccess::$user);
             if( $result < 0) {
    -                throw new RestException(405, $this->commande->error);
    +            throw new RestException(405, $this->commande->error);
             }else if( $result == 0) {
    -                throw new RestException(304);
    +            throw new RestException(304);
             }
     
             return $result;
    @@ -584,22 +586,23 @@ class Orders extends DolibarrApi
          * @throws 404
          * @throws 405
          */
    -    function setinvoiced($id) {
    +    function setinvoiced($id)
    +    {
     
             if(! DolibarrApiAccess::$user->rights->commande->creer) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             if(empty($id)) {
    -                throw new RestException(400, 'Order ID is mandatory');
    +            throw new RestException(400, 'Order ID is mandatory');
             }
             $result = $this->commande->fetch($id);
             if( ! $result ) {
    -                throw new RestException(404, 'Order not found');
    +            throw new RestException(404, 'Order not found');
             }
     
             $result = $this->commande->classifyBilled(DolibarrApiAccess::$user);
             if( $result < 0) {
    -                throw new RestException(400, $this->commande->error);
    +            throw new RestException(400, $this->commande->error);
             }
     
             $result = $this->commande->fetch($id);
    @@ -675,23 +678,23 @@ class Orders extends DolibarrApi
         function settodraft($id, $idwarehouse=-1)
         {
             if(! DolibarrApiAccess::$user->rights->commande->creer) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             $result = $this->commande->fetch($id);
             if( ! $result ) {
    -                throw new RestException(404, 'Order not found');
    +            throw new RestException(404, 'Order not found');
             }
     
             if( ! DolibarrApi::_checkAccessToResource('commande',$this->commande->id)) {
    -                throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
             }
     
             $result = $this->commande->set_draft(DolibarrApiAccess::$user, $idwarehouse);
             if ($result == 0) {
    -                throw new RestException(304, 'Nothing done. May be object is already closed');
    +            throw new RestException(304, 'Nothing done. May be object is already closed');
             }
             if ($result < 0) {
    -                throw new RestException(500, 'Error when closing Order: '.$this->commande->error);
    +            throw new RestException(500, 'Error when closing Order: '.$this->commande->error);
             }
     
     		$result = $this->commande->fetch($id);
    @@ -709,43 +712,44 @@ class Orders extends DolibarrApi
         }
     
     
    -     /**
    -      * Create an order using an existing proposal.
    -      *
    -      *
    -      * @param int   $proposalid       Id of the proposal
    -      *
    -      * @url     POST /createfromproposal/{proposalid}
    -      *
    -      * @return int
    -      * @throws 400
    -      * @throws 401
    -      * @throws 404
    -      * @throws 405
    -      */
    -     function createOrderFromProposal($proposalid) {
    +    /**
    +     * Create an order using an existing proposal.
    +     *
    +     *
    +     * @param int   $proposalid       Id of the proposal
    +     *
    +     * @url     POST /createfromproposal/{proposalid}
    +     *
    +     * @return int
    +     * @throws 400
    +     * @throws 401
    +     * @throws 404
    +     * @throws 405
    +     */
    +    function createOrderFromProposal($proposalid)
    +    {
     
             require_once DOL_DOCUMENT_ROOT . '/comm/propal/class/propal.class.php';
     
             if(! DolibarrApiAccess::$user->rights->propal->lire) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             if(! DolibarrApiAccess::$user->rights->commande->creer) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             if(empty($proposalid)) {
    -                throw new RestException(400, 'Proposal ID is mandatory');
    +            throw new RestException(400, 'Proposal ID is mandatory');
             }
     
             $propal = new Propal($this->db);
             $result = $propal->fetch($proposalid);
             if( ! $result ) {
    -                throw new RestException(404, 'Proposal not found');
    +            throw new RestException(404, 'Proposal not found');
             }
     
             $result = $this->commande->createFromProposal($propal, DolibarrApiAccess::$user);
             if( $result < 0) {
    -                throw new RestException(405, $this->commande->error);
    +            throw new RestException(405, $this->commande->error);
             }
             $this->commande->fetchObjectLinked();
     
    @@ -759,7 +763,8 @@ class Orders extends DolibarrApi
          * @param   object  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    @@ -785,9 +790,8 @@ class Orders extends DolibarrApi
             $commande = array();
             foreach (Orders::$FIELDS as $field) {
                 if (!isset($data[$field]))
    -                throw new RestException(400, "$field field missing");
    +                throw new RestException(400, $field ." field missing");
                 $commande[$field] = $data[$field];
    -
             }
             return $commande;
         }
    diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php
    index f7f534dbc71..8934e293973 100644
    --- a/htdocs/commande/class/commande.class.php
    +++ b/htdocs/commande/class/commande.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2014 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
      * Copyright (C) 2010-2016 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2011      Jean Heimburger      <jean@tiaris.info>
    @@ -42,48 +42,71 @@ require_once DOL_DOCUMENT_ROOT .'/multicurrency/class/multicurrency.class.php';
      */
     class Commande extends CommonOrder
     {
    -    public $element='commande';
    -    public $table_element='commande';
    -    public $table_element_line = 'commandedet';
    -    public $class_element_line = 'OrderLine';
    -    public $fk_element = 'fk_commande';
    -    public $picto = 'order';
    -    /**
    -     * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    -     * @var int
    -     */
    -    public $ismultientitymanaged = 1;
    -    /**
    -     * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
    -     * @var integer
    -     */
    -    public $restrictiononfksoc = 1;
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='commande';
     
    -    /**
    -     * {@inheritdoc}
    -     */
    -    protected $table_ref_field = 'ref';
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='commande';
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
    +	public $table_element_line = 'commandedet';
    +
    +	public $class_element_line = 'OrderLine';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
    +	public $fk_element = 'fk_commande';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto = 'order';
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 1;
    +
    +	/**
    +	 * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
    +	 * @var integer
    +	 */
    +	public $restrictiononfksoc = 1;
    +
    +	/**
    +	 * {@inheritdoc}
    +	 */
    +	protected $table_ref_field = 'ref';
     
     	/**
     	 * Client ID
     	 * @var int
     	 */
    -    public $socid;
    +	public $socid;
     
    -    public $ref_client;
    -    public $ref_int;
    -    public $contactid;
    +	public $ref_client;
    +	public $ref_int;
    +	public $contactid;
     
     	/**
     	 * Status of the order
     	 * @var int
     	 */
    -    public $statut;
    +	public $statut;
    +
     	/**
     	 * Billed
     	 * @var int
     	 */
    -    public $billed;		// billed or not
    +	public $billed;		// billed or not
     
         /**
          * @var int Draft Status of the order
    @@ -91,62 +114,76 @@ class Commande extends CommonOrder
         public $brouillon;
         public $cond_reglement_code;
     
    -    public $fk_account;
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_account;
     
    -    /**
    -     * It holds the label of the payment mode. Use it in case translation cannot be found.
    -     * @var string
    -     */
    -    public $mode_reglement;
    +	/**
    +	 * It holds the label of the payment mode. Use it in case translation cannot be found.
    +	 * @var string
    +	 */
    +	public $mode_reglement;
     
    -    /**
    -     * Payment mode id
    -     * @var int
    -     */
    -    public $mode_reglement_id;
    -    /**
    -     * Payment mode code
    -     * @var string
    -     */
    -    public $mode_reglement_code;
    -    /**
    -     * Availability delivery time id
    -     * @var int
    -     */
    -    public $availability_id;
    -    /**
    -     * Availability delivery time code
    -     * @var string
    -     */
    -    public $availability_code;
    -    /**
    -     * Label of availability delivery time. Use it in case translation cannot be found.
    -     * @var string
    -     */
    -    public $availability;
    +	/**
    +	 * Payment mode id
    +	 * @var int
    +	 */
    +	public $mode_reglement_id;
    +
    +	/**
    +	 * Payment mode code
    +	 * @var string
    +	 */
    +	public $mode_reglement_code;
    +
    +	/**
    +	 * Availability delivery time id
    +	 * @var int
    +	 */
    +	public $availability_id;
    +
    +	/**
    +	 * Availability delivery time code
    +	 * @var string
    +	 */
    +	public $availability_code;
    +
    +	/**
    +	 * Label of availability delivery time. Use it in case translation cannot be found.
    +	 * @var string
    +	 */
    +	public $availability;
    +
    +	public $demand_reason_id;   // Source reason. Why we receive order (after a phone campaign, ...)
    +	public $demand_reason_code;
    +	public $date;				// Date commande
     
    -    public $demand_reason_id;   // Source reason. Why we receive order (after a phone campaign, ...)
    -    public $demand_reason_code;
    -    public $date;				// Date commande
     	/**
     	 * @deprecated
     	 * @see date
     	 */
    -    public $date_commande;
    -    public $date_livraison;	    // Date expected of shipment (date starting shipment, not the reception that occurs some days after)
    -    public $fk_remise_except;
    -    public $remise_percent;
    -    public $remise_absolue;
    -    public $info_bits;
    -    public $rang;
    -    public $special_code;
    -    public $source;			    // Order mode. How we received order (by phone, by email, ...)
    -    public $extraparams=array();
    +	public $date_commande;
     
    -    public $linked_objects=array();
    +	public $date_livraison;	    // Date expected of shipment (date starting shipment, not the reception that occurs some days after)
     
    -    public $user_author_id;
    -    public $user_valid;
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_remise_except;
    +
    +	public $remise_percent;
    +	public $remise_absolue;
    +	public $info_bits;
    +	public $rang;
    +	public $special_code;
    +	public $source;			    // Order mode. How we received order (by phone, by email, ...)
    +	public $extraparams=array();
    +
    +	public $linked_objects=array();
    +
    +	public $user_author_id;
    +	public $user_valid;
     
     	/**
     	 * @var OrderLine[]
    @@ -154,7 +191,11 @@ class Commande extends CommonOrder
     	public $lines = array();
     
     	// Multicurrency
    +	/**
    +     * @var int ID
    +     */
     	public $fk_multicurrency;
    +
     	public $multicurrency_code;
     	public $multicurrency_tx;
     	public $multicurrency_total_ht;
    @@ -163,10 +204,10 @@ class Commande extends CommonOrder
     
     	public $oldcopy;
     
    -    /**
    -     * ERR Not enough stock
    -     */
    -    const STOCK_NOT_ENOUGH_FOR_ORDER = -3;
    +	/**
    +	 * ERR Not enough stock
    +	 */
    +	const STOCK_NOT_ENOUGH_FOR_ORDER = -3;
     
     	/**
     	 * Canceled status
    @@ -192,49 +233,49 @@ class Commande extends CommonOrder
     	const STATUS_CLOSED = 3;
     
     
    -    /**
    -     *	Constructor
    -     *
    -     *  @param		DoliDB		$db      Database handler
    -     */
    -    function __construct($db)
    -    {
    -        $this->db = $db;
    +	/**
    +	 *	Constructor
    +	 *
    +	 *  @param		DoliDB		$db      Database handler
    +	 */
    +	function __construct($db)
    +	{
    +		$this->db = $db;
     
    -        $this->remise = 0;
    -        $this->remise_percent = 0;
    +		$this->remise = 0;
    +		$this->remise_percent = 0;
     
    -        $this->products = array();
    -    }
    +		$this->products = array();
    +	}
     
    -    /**
    +	/**
     	 *  Returns the reference to the following non used Order depending on the active numbering module
     	 *  defined into COMMANDE_ADDON
     	 *
     	 *  @param	Societe		$soc  	Object thirdparty
     	 *  @return string      		Order free reference
     	 */
    -    function getNextNumRef($soc)
    -    {
    -        global $langs, $conf;
    -        $langs->load("order");
    +	function getNextNumRef($soc)
    +	{
    +		global $langs, $conf;
    +		$langs->load("order");
     
    -        if (! empty($conf->global->COMMANDE_ADDON))
    -        {
    -        	$mybool=false;
    +		if (! empty($conf->global->COMMANDE_ADDON))
    +		{
    +			$mybool=false;
     
    -        	$file = $conf->global->COMMANDE_ADDON.".php";
    +			$file = $conf->global->COMMANDE_ADDON.".php";
     			$classname = $conf->global->COMMANDE_ADDON;
     
     			// Include file with class
     			$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
     			foreach ($dirmodels as $reldir)
     			{
    -                $dir = dol_buildpath($reldir."core/modules/commande/");
    +				$dir = dol_buildpath($reldir."core/modules/commande/");
     
    -                // Load file with numbering class (if found)
    -                $mybool|=@include_once $dir.$file;
    -            }
    +				// Load file with numbering class (if found)
    +				$mybool|=@include_once $dir.$file;
    +			}
     
                 if ($mybool === false)
                 {
    @@ -242,396 +283,400 @@ class Commande extends CommonOrder
                     return '';
                 }
     
    -            $obj = new $classname();
    -            $numref = $obj->getNextValue($soc,$this);
    +			$obj = new $classname();
    +			$numref = $obj->getNextValue($soc,$this);
     
    -            if ($numref != "")
    -            {
    -            	return $numref;
    -            }
    -            else
    +			if ($numref != "")
    +			{
    +				return $numref;
    +			}
    +			else
     			{
     				$this->error=$obj->error;
    -            	//dol_print_error($this->db,get_class($this)."::getNextNumRef ".$obj->error);
    -            	return "";
    -            }
    -        }
    -        else
    -        {
    -            print $langs->trans("Error")." ".$langs->trans("Error_COMMANDE_ADDON_NotDefined");
    -            return "";
    -        }
    -    }
    -
    -
    -    /**
    -     *	Validate order
    -     *
    -     *	@param		User	$user     		User making status change
    -     *	@param		int		$idwarehouse	Id of warehouse to use for stock decrease
    -     *  @param		int		$notrigger		1=Does not execute triggers, 0= execute triggers
    -     *	@return  	int						<=0 if OK, 0=Nothing done, >0 if KO
    -     */
    -    function valid($user, $idwarehouse=0, $notrigger=0)
    -    {
    -        global $conf,$langs;
    -        require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    -
    -        $error=0;
    -
    -        // Protection
    -        if ($this->statut == self::STATUS_VALIDATED)
    -        {
    -            dol_syslog(get_class($this)."::valid action abandonned: already validated", LOG_WARNING);
    -            return 0;
    -        }
    -
    -        if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->creer))
    -       	|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->order_advance->validate))))
    -        {
    -            $this->error='NotEnoughPermissions';
    -            dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
    -            return -1;
    -        }
    -
    -        $now=dol_now();
    -
    -        $this->db->begin();
    -
    -        // Definition du nom de module de numerotation de commande
    -        $soc = new Societe($this->db);
    -        $soc->fetch($this->socid);
    -
    -        // Class of company linked to order
    -        $result=$soc->set_as_client();
    -
    -        // Define new ref
    -        if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref))) // empty should not happened, but when it occurs, the test save life
    -        {
    -            $num = $this->getNextNumRef($soc);
    -        }
    -        else
    +				//dol_print_error($this->db,get_class($this)."::getNextNumRef ".$obj->error);
    +				return "";
    +			}
    +		}
    +		else
     		{
    -            $num = $this->ref;
    -        }
    -        $this->newref = $num;
    +			print $langs->trans("Error")." ".$langs->trans("Error_COMMANDE_ADDON_NotDefined");
    +			return "";
    +		}
    +	}
     
    -        // Validate
    -        $sql = "UPDATE ".MAIN_DB_PREFIX."commande";
    -        $sql.= " SET ref = '".$num."',";
    -        $sql.= " fk_statut = ".self::STATUS_VALIDATED.",";
    -        $sql.= " date_valid='".$this->db->idate($now)."',";
    -        $sql.= " fk_user_valid = ".$user->id;
    -        $sql.= " WHERE rowid = ".$this->id;
     
    -        dol_syslog(get_class($this)."::valid()", LOG_DEBUG);
    -        $resql=$this->db->query($sql);
    -        if (! $resql)
    -        {
    -            dol_print_error($this->db);
    -            $this->error=$this->db->lasterror();
    -            $error++;
    -        }
    +	/**
    +	 *	Validate order
    +	 *
    +	 *	@param		User	$user     		User making status change
    +	 *	@param		int		$idwarehouse	Id of warehouse to use for stock decrease
    +	 *  @param		int		$notrigger		1=Does not execute triggers, 0= execute triggers
    +	 *	@return  	int						<=0 if OK, 0=Nothing done, >0 if KO
    +	 */
    +	function valid($user, $idwarehouse=0, $notrigger=0)
    +	{
    +		global $conf,$langs;
    +		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
    -        if (! $error)
    -        {
    -            // If stock is incremented on validate order, we must increment it
    -            if ($result >= 0 && ! empty($conf->stock->enabled) && $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER == 1)
    -            {
    -                require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php';
    -                $langs->load("agenda");
    +		$error=0;
     
    -                // Loop on each line
    -                $cpt=count($this->lines);
    -                for ($i = 0; $i < $cpt; $i++)
    -                {
    -                    if ($this->lines[$i]->fk_product > 0)
    -                    {
    -                        $mouvP = new MouvementStock($this->db);
    +		// Protection
    +		if ($this->statut == self::STATUS_VALIDATED)
    +		{
    +			dol_syslog(get_class($this)."::valid action abandonned: already validated", LOG_WARNING);
    +			return 0;
    +		}
    +
    +		if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->creer))
    +			|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->order_advance->validate))))
    +		{
    +			$this->error='NotEnoughPermissions';
    +			dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
    +			return -1;
    +		}
    +
    +		$now=dol_now();
    +
    +		$this->db->begin();
    +
    +		// Definition du nom de module de numerotation de commande
    +		$soc = new Societe($this->db);
    +		$soc->fetch($this->socid);
    +
    +		// Class of company linked to order
    +		$result=$soc->set_as_client();
    +
    +		// Define new ref
    +		if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref))) // empty should not happened, but when it occurs, the test save life
    +		{
    +			$num = $this->getNextNumRef($soc);
    +		}
    +		else
    +		{
    +			$num = $this->ref;
    +		}
    +		$this->newref = $num;
    +
    +		// Validate
    +		$sql = "UPDATE ".MAIN_DB_PREFIX."commande";
    +		$sql.= " SET ref = '".$num."',";
    +		$sql.= " fk_statut = ".self::STATUS_VALIDATED.",";
    +		$sql.= " date_valid='".$this->db->idate($now)."',";
    +		$sql.= " fk_user_valid = ".$user->id;
    +		$sql.= " WHERE rowid = ".$this->id;
    +
    +		dol_syslog(get_class($this)."::valid()", LOG_DEBUG);
    +		$resql=$this->db->query($sql);
    +		if (! $resql)
    +		{
    +			dol_print_error($this->db);
    +			$this->error=$this->db->lasterror();
    +			$error++;
    +		}
    +
    +		if (! $error)
    +		{
    +			// If stock is incremented on validate order, we must increment it
    +			if ($result >= 0 && ! empty($conf->stock->enabled) && $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER == 1)
    +			{
    +				require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php';
    +				$langs->load("agenda");
    +
    +				// Loop on each line
    +				$cpt=count($this->lines);
    +				for ($i = 0; $i < $cpt; $i++)
    +				{
    +					if ($this->lines[$i]->fk_product > 0)
    +					{
    +						$mouvP = new MouvementStock($this->db);
     						$mouvP->origin = &$this;
    -                        // We decrement stock of product (and sub-products)
    -                        $result=$mouvP->livraison($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("OrderValidatedInDolibarr",$num));
    -                        if ($result < 0)
    -                        {
    -                        	$error++;
    -                        	$this->error=$mouvP->error;
    -                        }
    -                    }
    -                    if ($error) break;
    -                }
    -            }
    -        }
    +						// We decrement stock of product (and sub-products)
    +						$result=$mouvP->livraison($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("OrderValidatedInDolibarr",$num));
    +						if ($result < 0)
    +						{
    +							$error++;
    +							$this->error=$mouvP->error;
    +						}
    +					}
    +					if ($error) break;
    +				}
    +			}
    +		}
     
    -        if (! $error && ! $notrigger)
    -        {
    -            // Call trigger
    -            $result=$this->call_trigger('ORDER_VALIDATE',$user);
    -            if ($result < 0) $error++;
    -            // End call triggers
    -        }
    -
    -        if (! $error)
    -        {
    -            $this->oldref = $this->ref;
    -
    -            // Rename directory if dir was a temporary ref
    -            if (preg_match('/^[\(]?PROV/i', $this->ref))
    -            {
    -            	// On renomme repertoire ($this->ref = ancienne ref, $num = nouvelle ref)
    -                // in order not to lose the attachments
    -                $oldref = dol_sanitizeFileName($this->ref);
    -                $newref = dol_sanitizeFileName($num);
    -                $dirsource = $conf->commande->dir_output.'/'.$oldref;
    -                $dirdest = $conf->commande->dir_output.'/'.$newref;
    -                if (file_exists($dirsource))
    -                {
    -                    dol_syslog(get_class($this)."::valid() rename dir ".$dirsource." into ".$dirdest);
    -
    -                    if (@rename($dirsource, $dirdest))
    -                    {
    -                        dol_syslog("Rename ok");
    -                        // Rename docs starting with $oldref with $newref
    -                        $listoffiles=dol_dir_list($conf->commande->dir_output.'/'.$newref, 'files', 1, '^'.preg_quote($oldref,'/'));
    -                        foreach($listoffiles as $fileentry)
    -                        {
    -                        	$dirsource=$fileentry['name'];
    -                        	$dirdest=preg_replace('/^'.preg_quote($oldref,'/').'/',$newref, $dirsource);
    -                        	$dirsource=$fileentry['path'].'/'.$dirsource;
    -                        	$dirdest=$fileentry['path'].'/'.$dirdest;
    -                        	@rename($dirsource, $dirdest);
    -                        }
    -                    }
    -                }
    -            }
    -        }
    -
    -        // Set new ref and current status
    -        if (! $error)
    -        {
    -            $this->ref = $num;
    -            $this->statut = self::STATUS_VALIDATED;
    -            $this->brouillon = 0;
    -        }
    -
    -        if (! $error)
    -        {
    -            $this->db->commit();
    -            return 1;
    -        }
    -        else
    +		if (! $error && ! $notrigger)
     		{
    -            $this->db->rollback();
    -            return -1;
    -        }
    -    }
    +			// Call trigger
    +			$result=$this->call_trigger('ORDER_VALIDATE',$user);
    +			if ($result < 0) $error++;
    +			// End call triggers
    +		}
     
    -    /**
    -     *	Set draft status
    -     *
    -     *	@param	User	$user			Object user that modify
    -     *	@param	int		$idwarehouse	Warehouse ID to use for stock change (Used only if option STOCK_CALCULATE_ON_VALIDATE_ORDER is on)
    -     *	@return	int						<0 if KO, >0 if OK
    -     */
    -    function set_draft($user, $idwarehouse=-1)
    -    {
    -        global $conf,$langs;
    +		if (! $error)
    +		{
    +			$this->oldref = $this->ref;
     
    -        $error=0;
    +			// Rename directory if dir was a temporary ref
    +			if (preg_match('/^[\(]?PROV/i', $this->ref))
    +			{
    +				// On renomme repertoire ($this->ref = ancienne ref, $num = nouvelle ref)
    +				// in order not to lose the attachments
    +				$oldref = dol_sanitizeFileName($this->ref);
    +				$newref = dol_sanitizeFileName($num);
    +				$dirsource = $conf->commande->dir_output.'/'.$oldref;
    +				$dirdest = $conf->commande->dir_output.'/'.$newref;
    +				if (file_exists($dirsource))
    +				{
    +					dol_syslog(get_class($this)."::valid() rename dir ".$dirsource." into ".$dirdest);
     
    -        // Protection
    -        if ($this->statut <= self::STATUS_DRAFT)
    -        {
    -            return 0;
    -        }
    +					if (@rename($dirsource, $dirdest))
    +					{
    +						dol_syslog("Rename ok");
    +						// Rename docs starting with $oldref with $newref
    +						$listoffiles=dol_dir_list($conf->commande->dir_output.'/'.$newref, 'files', 1, '^'.preg_quote($oldref,'/'));
    +						foreach($listoffiles as $fileentry)
    +						{
    +							$dirsource=$fileentry['name'];
    +							$dirdest=preg_replace('/^'.preg_quote($oldref,'/').'/',$newref, $dirsource);
    +							$dirsource=$fileentry['path'].'/'.$dirsource;
    +							$dirdest=$fileentry['path'].'/'.$dirdest;
    +							@rename($dirsource, $dirdest);
    +						}
    +					}
    +				}
    +			}
    +		}
     
    -        if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->creer))
    -       	|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->order_advance->validate))))
    -        {
    -            $this->error='Permission denied';
    -            return -1;
    -        }
    +		// Set new ref and current status
    +		if (! $error)
    +		{
    +			$this->ref = $num;
    +			$this->statut = self::STATUS_VALIDATED;
    +            $this->brouillon = 0;
    +		}
     
    -        $this->db->begin();
    +		if (! $error)
    +		{
    +			$this->db->commit();
    +			return 1;
    +		}
    +		else
    +		{
    +			$this->db->rollback();
    +			return -1;
    +		}
    +	}
     
    -        $sql = "UPDATE ".MAIN_DB_PREFIX."commande";
    -        $sql.= " SET fk_statut = ".self::STATUS_DRAFT;
    -        $sql.= " WHERE rowid = ".$this->id;
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Set draft status
    +	 *
    +	 *	@param	User	$user			Object user that modify
    +	 *	@param	int		$idwarehouse	Warehouse ID to use for stock change (Used only if option STOCK_CALCULATE_ON_VALIDATE_ORDER is on)
    +	 *	@return	int						<0 if KO, >0 if OK
    +	 */
    +	function set_draft($user, $idwarehouse=-1)
    +	{
    +        //phpcs:enable
    +		global $conf,$langs;
     
    -        dol_syslog(get_class($this)."::set_draft", LOG_DEBUG);
    -        if ($this->db->query($sql))
    -        {
    -            // If stock is decremented on validate order, we must reincrement it
    -            if (! empty($conf->stock->enabled) && $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER == 1)
    -            {
    -                $result = 0;
    +		$error=0;
     
    -                require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php';
    -                $langs->load("agenda");
    +		// Protection
    +		if ($this->statut <= self::STATUS_DRAFT)
    +		{
    +			return 0;
    +		}
     
    -                $num=count($this->lines);
    -                for ($i = 0; $i < $num; $i++)
    -                {
    -                    if ($this->lines[$i]->fk_product > 0)
    -                    {
    -                        $mouvP = new MouvementStock($this->db);
    -                        $mouvP->origin = &$this;
    -                        // We increment stock of product (and sub-products)
    -                        $result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, 0, $langs->trans("OrderBackToDraftInDolibarr",$this->ref));
    -                        if ($result < 0) { $error++; $this->error=$mouvP->error; break; }
    -                    }
    -                }
    -            }
    +		if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->creer))
    +			|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->order_advance->validate))))
    +		{
    +			$this->error='Permission denied';
    +			return -1;
    +		}
     
    -            if (!$error) {
    -            	// Call trigger
    -            	$result=$this->call_trigger('ORDER_UNVALIDATE',$user);
    -            	if ($result < 0) $error++;
    -            }
    +		$this->db->begin();
     
    -            if (!$error) {
    -           		$this->statut=self::STATUS_DRAFT;
    -            	$this->db->commit();
    -            	return 1;
    -            }else {
    -            	$this->db->rollback();
    -            	return -1;
    -            }
    -        }
    -        else
    -        {
    -            $this->error=$this->db->error();
    -            $this->db->rollback();
    -            return -1;
    -        }
    -    }
    +		$sql = "UPDATE ".MAIN_DB_PREFIX."commande";
    +		$sql.= " SET fk_statut = ".self::STATUS_DRAFT;
    +		$sql.= " WHERE rowid = ".$this->id;
    +
    +		dol_syslog(get_class($this)."::set_draft", LOG_DEBUG);
    +		if ($this->db->query($sql))
    +		{
    +			// If stock is decremented on validate order, we must reincrement it
    +			if (! empty($conf->stock->enabled) && $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER == 1)
    +			{
    +				$result = 0;
    +
    +				require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php';
    +				$langs->load("agenda");
    +
    +				$num=count($this->lines);
    +				for ($i = 0; $i < $num; $i++)
    +				{
    +					if ($this->lines[$i]->fk_product > 0)
    +					{
    +						$mouvP = new MouvementStock($this->db);
    +						$mouvP->origin = &$this;
    +						// We increment stock of product (and sub-products)
    +						$result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, 0, $langs->trans("OrderBackToDraftInDolibarr",$this->ref));
    +						if ($result < 0) { $error++; $this->error=$mouvP->error; break; }
    +					}
    +				}
    +			}
    +
    +			if (!$error) {
    +				// Call trigger
    +				$result=$this->call_trigger('ORDER_UNVALIDATE',$user);
    +				if ($result < 0) $error++;
    +			}
    +
    +			if (!$error) {
    +				$this->statut=self::STATUS_DRAFT;
    +				$this->db->commit();
    +				return 1;
    +			}else {
    +				$this->db->rollback();
    +				return -1;
    +			}
    +		}
    +		else
    +		{
    +			$this->error=$this->db->error();
    +			$this->db->rollback();
    +			return -1;
    +		}
    +	}
     
     
    -    /**
    -     *	Tag the order as validated (opened)
    -     *	Function used when order is reopend after being closed.
    -     *
    -     *	@param      User	$user       Object user that change status
    -     *	@return     int         		<0 if KO, 0 if nothing is done, >0 if OK
    -     */
    -    function set_reopen($user)
    -    {
    -        $error=0;
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Tag the order as validated (opened)
    +	 *	Function used when order is reopend after being closed.
    +	 *
    +	 *	@param      User	$user       Object user that change status
    +	 *	@return     int         		<0 if KO, 0 if nothing is done, >0 if OK
    +	 */
    +	function set_reopen($user)
    +	{
    +        // phpcs:enable
    +		$error=0;
     
    -        if ($this->statut != self::STATUS_CANCELED && $this->statut != self::STATUS_CLOSED)
    -        {
    -        	dol_syslog(get_class($this)."::set_reopen order has not status closed", LOG_WARNING);
    -            return 0;
    -        }
    +		if ($this->statut != self::STATUS_CANCELED && $this->statut != self::STATUS_CLOSED)
    +		{
    +			dol_syslog(get_class($this)."::set_reopen order has not status closed", LOG_WARNING);
    +			return 0;
    +		}
     
    -        $this->db->begin();
    +		$this->db->begin();
     
    -        $sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    -        $sql.= ' SET fk_statut='.self::STATUS_VALIDATED.', facture=0';
    -        $sql.= ' WHERE rowid = '.$this->id;
    +		$sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    +		$sql.= ' SET fk_statut='.self::STATUS_VALIDATED.', facture=0';
    +		$sql.= ' WHERE rowid = '.$this->id;
     
    -        dol_syslog(get_class($this)."::set_reopen", LOG_DEBUG);
    -        $resql = $this->db->query($sql);
    -        if ($resql)
    -        {
    -            // Call trigger
    -            $result=$this->call_trigger('ORDER_REOPEN',$user);
    -            if ($result < 0) $error++;
    -            // End call triggers
    -        }
    -        else
    -        {
    -            $error++;
    -            $this->error=$this->db->lasterror();
    -            dol_print_error($this->db);
    -        }
    +		dol_syslog(get_class($this)."::set_reopen", LOG_DEBUG);
    +		$resql = $this->db->query($sql);
    +		if ($resql)
    +		{
    +			// Call trigger
    +			$result=$this->call_trigger('ORDER_REOPEN',$user);
    +			if ($result < 0) $error++;
    +			// End call triggers
    +		}
    +		else
    +		{
    +			$error++;
    +			$this->error=$this->db->lasterror();
    +			dol_print_error($this->db);
    +		}
     
    -        if (! $error)
    -        {
    -        	$this->statut = self::STATUS_VALIDATED;
    -        	$this->billed = 0;
    +		if (! $error)
    +		{
    +			$this->statut = self::STATUS_VALIDATED;
    +			$this->billed = 0;
     
    -            $this->db->commit();
    -            return 1;
    -        }
    -        else
    -        {
    -	        foreach($this->errors as $errmsg)
    -	        {
    -		        dol_syslog(get_class($this)."::set_reopen ".$errmsg, LOG_ERR);
    -		        $this->error.=($this->error?', '.$errmsg:$errmsg);
    -	        }
    -	        $this->db->rollback();
    -	        return -1*$error;
    -        }
    -    }
    +			$this->db->commit();
    +			return 1;
    +		}
    +		else
    +		{
    +			foreach($this->errors as $errmsg)
    +			{
    +				dol_syslog(get_class($this)."::set_reopen ".$errmsg, LOG_ERR);
    +				$this->error.=($this->error?', '.$errmsg:$errmsg);
    +			}
    +			$this->db->rollback();
    +			return -1*$error;
    +		}
    +	}
     
    -    /**
    -     *  Close order
    -     *
    -     * 	@param      User	$user       Objet user that close
    -     *  @param		int		$notrigger	1=Does not execute triggers, 0=Execute triggers
    -     *	@return		int					<0 if KO, >0 if OK
    -     */
    -    function cloture($user, $notrigger=0)
    -    {
    -        global $conf;
    +	/**
    +	 *  Close order
    +	 *
    +	 * 	@param      User	$user       Objet user that close
    +	 *  @param		int		$notrigger	1=Does not execute triggers, 0=Execute triggers
    +	 *	@return		int					<0 if KO, >0 if OK
    +	 */
    +	function cloture($user, $notrigger=0)
    +	{
    +		global $conf;
     
    -        $error=0;
    +		$error=0;
     
    -        if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->creer))
    -       	|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->order_advance->validate)))
    -        {
    -            $this->db->begin();
    +		if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->creer))
    +			|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->order_advance->validate)))
    +		{
    +			$this->db->begin();
     
    -            $now=dol_now();
    +			$now=dol_now();
     
    -            $sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    -            $sql.= ' SET fk_statut = '.self::STATUS_CLOSED.',';
    -            $sql.= ' fk_user_cloture = '.$user->id.',';
    -            $sql.= " date_cloture = '".$this->db->idate($now)."'";
    -            $sql.= ' WHERE rowid = '.$this->id.' AND fk_statut > '.self::STATUS_DRAFT;
    +			$sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    +			$sql.= ' SET fk_statut = '.self::STATUS_CLOSED.',';
    +			$sql.= ' fk_user_cloture = '.$user->id.',';
    +			$sql.= " date_cloture = '".$this->db->idate($now)."'";
    +			$sql.= ' WHERE rowid = '.$this->id.' AND fk_statut > '.self::STATUS_DRAFT;
     
    -            if ($this->db->query($sql))
    -            {
    -            	if (! $notrigger)
    -            	{
    -		            // Call trigger
    -	            	$result=$this->call_trigger('ORDER_CLOSE',$user);
    -	            	if ($result < 0) $error++;
    -		            // End call triggers
    -            	}
    +			if ($this->db->query($sql))
    +			{
    +				if (! $notrigger)
    +				{
    +					// Call trigger
    +					$result=$this->call_trigger('ORDER_CLOSE',$user);
    +					if ($result < 0) $error++;
    +					// End call triggers
    +				}
     
    -                if (! $error)
    -                {
    -                	$this->statut=self::STATUS_CLOSED;
    +				if (! $error)
    +				{
    +					$this->statut=self::STATUS_CLOSED;
     
    -                    $this->db->commit();
    -                    return 1;
    -                }
    -                else
    -                {
    -                    $this->db->rollback();
    -                    return -1;
    -                }
    -            }
    -            else
    -            {
    -                $this->error=$this->db->lasterror();
    +					$this->db->commit();
    +					return 1;
    +				}
    +				else
    +				{
    +					$this->db->rollback();
    +					return -1;
    +				}
    +			}
    +			else
    +			{
    +				$this->error=$this->db->lasterror();
     
    -                $this->db->rollback();
    -                return -1;
    -            }
    -        }
    -        return 0;
    -    }
    +				$this->db->rollback();
    +				return -1;
    +			}
    +		}
    +		return 0;
    +	}
     
    -    /**
    -     * 	Cancel an order
    -     * 	If stock is decremented on order validation, we must reincrement it
    -     *
    -     *	@param	int		$idwarehouse	Id warehouse to use for stock change.
    -     *	@return	int						<0 if KO, >0 if OK
    -     */
    +	/**
    +	 * 	Cancel an order
    +	 * 	If stock is decremented on order validation, we must reincrement it
    +	 *
    +	 *	@param	int		$idwarehouse	Id warehouse to use for stock change.
    +	 *	@return	int						<0 if KO, >0 if OK
    +	 */
     	function cancel($idwarehouse=-1)
     	{
     		global $conf,$user,$langs;
    @@ -674,10 +719,10 @@ class Commande extends CommonOrder
     
     			if (! $error)
     			{
    -	            // Call trigger
    -	            $result=$this->call_trigger('ORDER_CANCEL',$user);
    -	            if ($result < 0) $error++;
    -	            // End call triggers
    +				// Call trigger
    +				$result=$this->call_trigger('ORDER_CANCEL',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
     			}
     
     			if (! $error)
    @@ -705,24 +750,24 @@ class Commande extends CommonOrder
     		}
     	}
     
    -    /**
    -     *	Create order
    -     *	Note that this->ref can be set or empty. If empty, we will use "(PROV)"
    -     *
    -     *	@param		User	$user 		Objet user that make creation
    -     *	@param		int	    $notrigger	Disable all triggers
    -     *	@return 	int			        <0 if KO, >0 if OK
    -     */
    -    function create($user, $notrigger=0)
    -    {
    -        global $conf,$langs;
    -        $error=0;
    +	/**
    +	 *	Create order
    +	 *	Note that this->ref can be set or empty. If empty, we will use "(PROV)"
    +	 *
    +	 *	@param		User	$user 		Objet user that make creation
    +	 *	@param		int	    $notrigger	Disable all triggers
    +	 *	@return 	int			        <0 if KO, >0 if OK
    +	 */
    +	function create($user, $notrigger=0)
    +	{
    +		global $conf,$langs;
    +		$error=0;
     
    -        // Clean parameters
    -        $this->brouillon = 1;		// set command as draft
    +		// Clean parameters
    +		$this->brouillon = 1;		// set command as draft
     
     		// $date_commande is deprecated
    -        $date = ($this->date_commande ? $this->date_commande : $this->date);
    +		$date = ($this->date_commande ? $this->date_commande : $this->date);
     
     		// Multicurrency (test on $this->multicurrency_tx because we should take the default rate only if not using origin rate)
     		if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) list($this->fk_multicurrency,$this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code, $date);
    @@ -734,412 +779,411 @@ class Commande extends CommonOrder
     			$this->multicurrency_tx = 1;
     		}
     
    -        dol_syslog(get_class($this)."::create user=".$user->id);
    +		dol_syslog(get_class($this)."::create user=".$user->id);
     
    -        // Check parameters
    -    	if (! empty($this->ref))	// We check that ref is not already used
    -    	{
    -    		$result=self::isExistingObject($this->element, 0, $this->ref);	// Check ref is not yet used
    -    		if ($result > 0)
    -    		{
    -    			$this->error='ErrorRefAlreadyExists';
    -    			dol_syslog(get_class($this)."::create ".$this->error,LOG_WARNING);
    -    			$this->db->rollback();
    -    			return -1;
    -    		}
    -    	}
    +		// Check parameters
    +		if (! empty($this->ref))	// We check that ref is not already used
    +		{
    +			$result=self::isExistingObject($this->element, 0, $this->ref);	// Check ref is not yet used
    +			if ($result > 0)
    +			{
    +				$this->error='ErrorRefAlreadyExists';
    +				dol_syslog(get_class($this)."::create ".$this->error,LOG_WARNING);
    +				$this->db->rollback();
    +				return -1;
    +			}
    +		}
     
    -        $soc = new Societe($this->db);
    -        $result=$soc->fetch($this->socid);
    -        if ($result < 0)
    -        {
    -            $this->error="Failed to fetch company";
    -            dol_syslog(get_class($this)."::create ".$this->error, LOG_ERR);
    -            return -2;
    -        }
    -        if (! empty($conf->global->COMMANDE_REQUIRE_SOURCE) && $this->source < 0)
    -        {
    -            $this->error=$langs->trans("ErrorFieldRequired",$langs->trans("Source"));
    -            dol_syslog(get_class($this)."::create ".$this->error, LOG_ERR);
    -            return -1;
    -        }
    +		$soc = new Societe($this->db);
    +		$result=$soc->fetch($this->socid);
    +		if ($result < 0)
    +		{
    +			$this->error="Failed to fetch company";
    +			dol_syslog(get_class($this)."::create ".$this->error, LOG_ERR);
    +			return -2;
    +		}
    +		if (! empty($conf->global->COMMANDE_REQUIRE_SOURCE) && $this->source < 0)
    +		{
    +			$this->error=$langs->trans("ErrorFieldRequired",$langs->trans("Source"));
    +			dol_syslog(get_class($this)."::create ".$this->error, LOG_ERR);
    +			return -1;
    +		}
     
    -        $now=dol_now();
    +		$now=dol_now();
     
    -        $this->db->begin();
    +		$this->db->begin();
     
    -        $sql = "INSERT INTO ".MAIN_DB_PREFIX."commande (";
    -        $sql.= " ref, fk_soc, date_creation, fk_user_author, fk_projet, date_commande, source, note_private, note_public, ref_ext, ref_client, ref_int";
    -        $sql.= ", model_pdf, fk_cond_reglement, fk_mode_reglement, fk_account, fk_availability, fk_input_reason, date_livraison, fk_delivery_address";
    -        $sql.= ", fk_shipping_method";
    -        $sql.= ", fk_warehouse";
    -        $sql.= ", remise_absolue, remise_percent";
    -        $sql.= ", fk_incoterms, location_incoterms";
    -        $sql.= ", entity";
    -        $sql.= ", fk_multicurrency";
    -        $sql.= ", multicurrency_code";
    -        $sql.= ", multicurrency_tx";
    -        $sql.= ")";
    -        $sql.= " VALUES ('(PROV)', ".$this->socid.", '".$this->db->idate($now)."', ".$user->id;
    -        $sql.= ", ".($this->fk_project>0?$this->fk_project:"null");
    -        $sql.= ", '".$this->db->idate($date)."'";
    -        $sql.= ", ".($this->source>=0 && $this->source != '' ?$this->db->escape($this->source):'null');
    -        $sql.= ", '".$this->db->escape($this->note_private)."'";
    -        $sql.= ", '".$this->db->escape($this->note_public)."'";
    -        $sql.= ", ".($this->ref_ext?"'".$this->db->escape($this->ref_ext)."'":"null");
    -        $sql.= ", ".($this->ref_client?"'".$this->db->escape($this->ref_client)."'":"null");
    -        $sql.= ", ".($this->ref_int?"'".$this->db->escape($this->ref_int)."'":"null");
    -        $sql.= ", '".$this->db->escape($this->modelpdf)."'";
    -        $sql.= ", ".($this->cond_reglement_id>0?$this->cond_reglement_id:"null");
    -        $sql.= ", ".($this->mode_reglement_id>0?$this->mode_reglement_id:"null");
    -        $sql.= ", ".($this->fk_account>0?$this->fk_account:'NULL');
    -        $sql.= ", ".($this->availability_id>0?$this->availability_id:"null");
    -        $sql.= ", ".($this->demand_reason_id>0?$this->demand_reason_id:"null");
    -        $sql.= ", ".($this->date_livraison?"'".$this->db->idate($this->date_livraison)."'":"null");
    -        $sql.= ", ".($this->fk_delivery_address>0?$this->fk_delivery_address:'NULL');
    -        $sql.= ", ".($this->shipping_method_id>0?$this->shipping_method_id:'NULL');
    -        $sql.= ", ".($this->warehouse_id>0?$this->warehouse_id:'NULL');
    -        $sql.= ", ".($this->remise_absolue>0?$this->db->escape($this->remise_absolue):'NULL');
    -        $sql.= ", ".($this->remise_percent>0?$this->db->escape($this->remise_percent):0);
    -        $sql.= ", ".(int) $this->fk_incoterms;
    -        $sql.= ", '".$this->db->escape($this->location_incoterms)."'";
    -        $sql.= ", ".$conf->entity;
    +		$sql = "INSERT INTO ".MAIN_DB_PREFIX."commande (";
    +		$sql.= " ref, fk_soc, date_creation, fk_user_author, fk_projet, date_commande, source, note_private, note_public, ref_ext, ref_client, ref_int";
    +		$sql.= ", model_pdf, fk_cond_reglement, fk_mode_reglement, fk_account, fk_availability, fk_input_reason, date_livraison, fk_delivery_address";
    +		$sql.= ", fk_shipping_method";
    +		$sql.= ", fk_warehouse";
    +		$sql.= ", remise_absolue, remise_percent";
    +		$sql.= ", fk_incoterms, location_incoterms";
    +		$sql.= ", entity";
    +		$sql.= ", fk_multicurrency";
    +		$sql.= ", multicurrency_code";
    +		$sql.= ", multicurrency_tx";
    +		$sql.= ")";
    +		$sql.= " VALUES ('(PROV)', ".$this->socid.", '".$this->db->idate($now)."', ".$user->id;
    +		$sql.= ", ".($this->fk_project>0?$this->fk_project:"null");
    +		$sql.= ", '".$this->db->idate($date)."'";
    +		$sql.= ", ".($this->source>=0 && $this->source != '' ?$this->db->escape($this->source):'null');
    +		$sql.= ", '".$this->db->escape($this->note_private)."'";
    +		$sql.= ", '".$this->db->escape($this->note_public)."'";
    +		$sql.= ", ".($this->ref_ext?"'".$this->db->escape($this->ref_ext)."'":"null");
    +		$sql.= ", ".($this->ref_client?"'".$this->db->escape($this->ref_client)."'":"null");
    +		$sql.= ", ".($this->ref_int?"'".$this->db->escape($this->ref_int)."'":"null");
    +		$sql.= ", '".$this->db->escape($this->modelpdf)."'";
    +		$sql.= ", ".($this->cond_reglement_id>0?$this->cond_reglement_id:"null");
    +		$sql.= ", ".($this->mode_reglement_id>0?$this->mode_reglement_id:"null");
    +		$sql.= ", ".($this->fk_account>0?$this->fk_account:'NULL');
    +		$sql.= ", ".($this->availability_id>0?$this->availability_id:"null");
    +		$sql.= ", ".($this->demand_reason_id>0?$this->demand_reason_id:"null");
    +		$sql.= ", ".($this->date_livraison?"'".$this->db->idate($this->date_livraison)."'":"null");
    +		$sql.= ", ".($this->fk_delivery_address>0?$this->fk_delivery_address:'NULL');
    +		$sql.= ", ".($this->shipping_method_id>0?$this->shipping_method_id:'NULL');
    +		$sql.= ", ".($this->warehouse_id>0?$this->warehouse_id:'NULL');
    +		$sql.= ", ".($this->remise_absolue>0?$this->db->escape($this->remise_absolue):'NULL');
    +		$sql.= ", ".($this->remise_percent>0?$this->db->escape($this->remise_percent):0);
    +		$sql.= ", ".(int) $this->fk_incoterms;
    +		$sql.= ", '".$this->db->escape($this->location_incoterms)."'";
    +		$sql.= ", ".$conf->entity;
     		$sql.= ", ".(int) $this->fk_multicurrency;
     		$sql.= ", '".$this->db->escape($this->multicurrency_code)."'";
     		$sql.= ", ".(double) $this->multicurrency_tx;
    -        $sql.= ")";
    +		$sql.= ")";
     
    -        dol_syslog(get_class($this)."::create", LOG_DEBUG);
    -        $resql=$this->db->query($sql);
    -        if ($resql)
    -        {
    -            $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX.'commande');
    +		dol_syslog(get_class($this)."::create", LOG_DEBUG);
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX.'commande');
     
    -            if ($this->id)
    -            {
    -                $fk_parent_line=0;
    -                $num=count($this->lines);
    +			if ($this->id)
    +			{
    +				$fk_parent_line=0;
    +				$num=count($this->lines);
     
    -                /*
    -                 *  Insert products details into db
    -                 */
    -                for ($i=0;$i<$num;$i++)
    -                {
    -                	$line = $this->lines[$i];
    +				/*
    +				 *  Insert products details into db
    +				 */
    +				for ($i=0;$i<$num;$i++)
    +				{
    +					$line = $this->lines[$i];
     
    -                	// Test and convert into object this->lines[$i]. When coming from REST API, we may still have an array
    -				    //if (! is_object($line)) $line=json_decode(json_encode($line), false);  // convert recursively array into object.
    -                	if (! is_object($line)) $line = (object) $line;
    +					// Test and convert into object this->lines[$i]. When coming from REST API, we may still have an array
    +					//if (! is_object($line)) $line=json_decode(json_encode($line), false);  // convert recursively array into object.
    +					if (! is_object($line)) $line = (object) $line;
     
    -                    // Reset fk_parent_line for no child products and special product
    -                    if (($line->product_type != 9 && empty($line->fk_parent_line)) || $line->product_type == 9) {
    -                        $fk_parent_line = 0;
    -                    }
    +					// Reset fk_parent_line for no child products and special product
    +					if (($line->product_type != 9 && empty($line->fk_parent_line)) || $line->product_type == 9) {
    +						$fk_parent_line = 0;
    +					}
     
     					// Complete vat rate with code
     					$vatrate = $line->tva_tx;
     					if ($line->vat_src_code && ! preg_match('/\(.*\)/', $vatrate)) $vatrate.=' ('.$line->vat_src_code.')';
     
    -                    $result = $this->addline(
    -                        $line->desc,
    -                        $line->subprice,
    -                        $line->qty,
    -                        $vatrate,
    -                        $line->localtax1_tx,
    -                        $line->localtax2_tx,
    -                        $line->fk_product,
    -                        $line->remise_percent,
    -                        $line->info_bits,
    -                        $line->fk_remise_except,
    -                        'HT',
    -                        0,
    -                        $line->date_start,
    -                        $line->date_end,
    -                        $line->product_type,
    -                        $line->rang,
    -                        $line->special_code,
    -                        $fk_parent_line,
    -                        $line->fk_fournprice,
    -                        $line->pa_ht,
    -                    	$line->label,
    -                    	$line->array_options,
    -	                    $line->fk_unit,
    -                        $this->element,
    -                        $line->id
    -                    );
    -                    if ($result < 0)
    -                    {
    -                    	if ($result != self::STOCK_NOT_ENOUGH_FOR_ORDER)
    -                    	{
    -                        	$this->error=$this->db->lasterror();
    -                        	dol_print_error($this->db);
    -                    	}
    -                        $this->db->rollback();
    -                        return -1;
    -                    }
    -                    // Defined the new fk_parent_line
    -                    if ($result > 0 && $line->product_type == 9) {
    -                        $fk_parent_line = $result;
    -                    }
    -                }
    -
    -                // update ref
    -                $initialref='(PROV'.$this->id.')';
    -                if (! empty($this->ref)) $initialref=$this->ref;
    -
    -                $sql = 'UPDATE '.MAIN_DB_PREFIX."commande SET ref='".$this->db->escape($initialref)."' WHERE rowid=".$this->id;
    -                if ($this->db->query($sql))
    -                {
    -                    if ($this->id)
    -                    {
    -                    	$this->ref = $initialref;
    -
    -                    	if (! empty($this->linkedObjectsIds) && empty($this->linked_objects))	// To use new linkedObjectsIds instead of old linked_objects
    -                    	{
    -                    		$this->linked_objects = $this->linkedObjectsIds;	// TODO Replace linked_objects with linkedObjectsIds
    -                    	}
    -
    -                        // Add object linked
    -                        if (! $error && $this->id && is_array($this->linked_objects) && ! empty($this->linked_objects))
    -                        {
    -                        	foreach($this->linked_objects as $origin => $tmp_origin_id)
    -                        	{
    -                        	    if (is_array($tmp_origin_id))       // New behaviour, if linked_object can have several links per type, so is something like array('contract'=>array(id1, id2, ...))
    -                        	    {
    -                        	        foreach($tmp_origin_id as $origin_id)
    -                        	        {
    -                        	            $ret = $this->add_object_linked($origin, $origin_id);
    -                        	            if (! $ret)
    -                        	            {
    -                        	                $this->error=$this->db->lasterror();
    -                        	                $error++;
    -                        	            }
    -                        	        }
    -                        	    }
    -                        	    else                                // Old behaviour, if linked_object has only one link per type, so is something like array('contract'=>id1))
    -                        	    {
    -                        	        $origin_id = $tmp_origin_id;
    -                        	        $ret = $this->add_object_linked($origin, $origin_id);
    -                        	        if (! $ret)
    -                        	        {
    -                        	            $this->error=$this->db->lasterror();
    -                        	            $error++;
    -                        	        }
    -                          	    }
    -                        	}
    -                        }
    -
    -            			if (! $error && $this->id && ! empty($conf->global->MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN) && ! empty($this->origin) && ! empty($this->origin_id))   // Get contact from origin object
    -            			{
    -            				$originforcontact = $this->origin;
    -            				$originidforcontact = $this->origin_id;
    -                		    if ($originforcontact == 'shipping')     // shipment and order share the same contacts. If creating from shipment we take data of order
    -                		    {
    -                		        require_once DOL_DOCUMENT_ROOT . '/expedition/class/expedition.class.php';
    -                		        $exp = new Expedition($this->db);
    -                		        $exp->fetch($this->origin_id);
    -                		        $exp->fetchObjectLinked();
    -                		        if (count($exp->linkedObjectsIds['commande']) > 0)
    -                		        {
    -                		            foreach ($exp->linkedObjectsIds['commande'] as $key => $value)
    -                		            {
    -                		                $originforcontact = 'commande';
    -							            if (is_object($value)) $originidforcontact = $value->id;
    -							            else $originidforcontact = $value;
    -                		                break; // We take first one
    -                		            }
    -                		        }
    -                		    }
    -
    -                		    $sqlcontact = "SELECT ctc.code, ctc.source, ec.fk_socpeople FROM ".MAIN_DB_PREFIX."element_contact as ec, ".MAIN_DB_PREFIX."c_type_contact as ctc";
    -                		    $sqlcontact.= " WHERE element_id = ".$originidforcontact." AND ec.fk_c_type_contact = ctc.rowid AND ctc.element = '".$originforcontact."'";
    -
    -                		    $resqlcontact = $this->db->query($sqlcontact);
    -                		    if ($resqlcontact)
    -                		    {
    -                		        while($objcontact = $this->db->fetch_object($resqlcontact))
    -                		        {
    -        					        //print $objcontact->code.'-'.$objcontact->source.'-'.$objcontact->fk_socpeople."\n";
    -                		            $this->add_contact($objcontact->fk_socpeople, $objcontact->code, $objcontact->source);    // May failed because of duplicate key or because code of contact type does not exists for new object
    -                		        }
    -                		    }
    -                		    else dol_print_error($resqlcontact);
    -                		}
    -                    }
    -
    -                    if (! $error)
    -                    {
    -                   		$result=$this->insertExtraFields();
    -                   		if ($result < 0) $error++;
    -                    }
    -
    -                    if (! $error && ! $notrigger)
    -                    {
    -			            // Call trigger
    -			            $result=$this->call_trigger('ORDER_CREATE',$user);
    -			            if ($result < 0) $error++;
    -			            // End call triggers
    -                    }
    -
    -	                if (! $error)
    -	                {
    -		                $this->db->commit();
    -		                return $this->id;
    -	                }
    -	                else
    +					$result = $this->addline(
    +						$line->desc,
    +						$line->subprice,
    +						$line->qty,
    +						$vatrate,
    +						$line->localtax1_tx,
    +						$line->localtax2_tx,
    +						$line->fk_product,
    +						$line->remise_percent,
    +						$line->info_bits,
    +						$line->fk_remise_except,
    +						'HT',
    +						0,
    +						$line->date_start,
    +						$line->date_end,
    +						$line->product_type,
    +						$line->rang,
    +						$line->special_code,
    +						$fk_parent_line,
    +						$line->fk_fournprice,
    +						$line->pa_ht,
    +						$line->label,
    +						$line->array_options,
    +						$line->fk_unit,
    +						$this->element,
    +						$line->id
    +					);
    +					if ($result < 0)
     					{
    -	                	$this->db->rollback();
    -	                	return -1*$error;
    +						if ($result != self::STOCK_NOT_ENOUGH_FOR_ORDER)
    +						{
    +							$this->error=$this->db->lasterror();
    +							dol_print_error($this->db);
    +						}
    +						$this->db->rollback();
    +						return -1;
     					}
    -                }
    -                else
    +					// Defined the new fk_parent_line
    +					if ($result > 0 && $line->product_type == 9) {
    +						$fk_parent_line = $result;
    +					}
    +				}
    +
    +				// update ref
    +				$initialref='(PROV'.$this->id.')';
    +				if (! empty($this->ref)) $initialref=$this->ref;
    +
    +				$sql = 'UPDATE '.MAIN_DB_PREFIX."commande SET ref='".$this->db->escape($initialref)."' WHERE rowid=".$this->id;
    +				if ($this->db->query($sql))
    +				{
    +					if ($this->id)
    +					{
    +						$this->ref = $initialref;
    +
    +						if (! empty($this->linkedObjectsIds) && empty($this->linked_objects))	// To use new linkedObjectsIds instead of old linked_objects
    +						{
    +							$this->linked_objects = $this->linkedObjectsIds;	// TODO Replace linked_objects with linkedObjectsIds
    +						}
    +
    +						// Add object linked
    +						if (! $error && $this->id && is_array($this->linked_objects) && ! empty($this->linked_objects))
    +						{
    +							foreach($this->linked_objects as $origin => $tmp_origin_id)
    +							{
    +								if (is_array($tmp_origin_id))       // New behaviour, if linked_object can have several links per type, so is something like array('contract'=>array(id1, id2, ...))
    +								{
    +									foreach($tmp_origin_id as $origin_id)
    +									{
    +										$ret = $this->add_object_linked($origin, $origin_id);
    +										if (! $ret)
    +										{
    +											$this->error=$this->db->lasterror();
    +											$error++;
    +										}
    +									}
    +								}
    +								else                                // Old behaviour, if linked_object has only one link per type, so is something like array('contract'=>id1))
    +								{
    +									$origin_id = $tmp_origin_id;
    +									$ret = $this->add_object_linked($origin, $origin_id);
    +									if (! $ret)
    +									{
    +										$this->error=$this->db->lasterror();
    +										$error++;
    +									}
    +								}
    +							}
    +						}
    +
    +						if (! $error && $this->id && ! empty($conf->global->MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN) && ! empty($this->origin) && ! empty($this->origin_id))   // Get contact from origin object
    +						{
    +							$originforcontact = $this->origin;
    +							$originidforcontact = $this->origin_id;
    +							if ($originforcontact == 'shipping')     // shipment and order share the same contacts. If creating from shipment we take data of order
    +							{
    +								require_once DOL_DOCUMENT_ROOT . '/expedition/class/expedition.class.php';
    +								$exp = new Expedition($this->db);
    +								$exp->fetch($this->origin_id);
    +								$exp->fetchObjectLinked();
    +								if (count($exp->linkedObjectsIds['commande']) > 0)
    +								{
    +									foreach ($exp->linkedObjectsIds['commande'] as $key => $value)
    +									{
    +										$originforcontact = 'commande';
    +										if (is_object($value)) $originidforcontact = $value->id;
    +										else $originidforcontact = $value;
    +										break; // We take first one
    +									}
    +								}
    +							}
    +
    +							$sqlcontact = "SELECT ctc.code, ctc.source, ec.fk_socpeople FROM ".MAIN_DB_PREFIX."element_contact as ec, ".MAIN_DB_PREFIX."c_type_contact as ctc";
    +							$sqlcontact.= " WHERE element_id = ".$originidforcontact." AND ec.fk_c_type_contact = ctc.rowid AND ctc.element = '".$originforcontact."'";
    +
    +							$resqlcontact = $this->db->query($sqlcontact);
    +							if ($resqlcontact)
    +							{
    +								while($objcontact = $this->db->fetch_object($resqlcontact))
    +								{
    +									//print $objcontact->code.'-'.$objcontact->source.'-'.$objcontact->fk_socpeople."\n";
    +									$this->add_contact($objcontact->fk_socpeople, $objcontact->code, $objcontact->source);    // May failed because of duplicate key or because code of contact type does not exists for new object
    +								}
    +							}
    +							else dol_print_error($resqlcontact);
    +						}
    +					}
    +
    +					if (! $error)
    +					{
    +						$result=$this->insertExtraFields();
    +						if ($result < 0) $error++;
    +					}
    +
    +					if (! $error && ! $notrigger)
    +					{
    +						// Call trigger
    +						$result=$this->call_trigger('ORDER_CREATE',$user);
    +						if ($result < 0) $error++;
    +						// End call triggers
    +					}
    +
    +					if (! $error)
    +					{
    +						$this->db->commit();
    +						return $this->id;
    +					}
    +					else
    +					{
    +						$this->db->rollback();
    +						return -1*$error;
    +					}
    +				}
    +				else
     				{
     					$this->error=$this->db->lasterror();
    -                    $this->db->rollback();
    -                    return -1;
    -                }
    -            }
    -        }
    -        else
    +					$this->db->rollback();
    +					return -1;
    +				}
    +			}
    +		}
    +		else
     		{
    -            dol_print_error($this->db);
    -            $this->db->rollback();
    -            return -1;
    -        }
    -    }
    +			dol_print_error($this->db);
    +			$this->db->rollback();
    +			return -1;
    +		}
    +	}
     
     
    -    /**
    -     *	Load an object from its id and create a new one in database
    -     *
    -     *	@param		int			$socid			Id of thirdparty
    -     *	@return		int							New id of clone
    -     */
    -    function createFromClone($socid=0)
    -    {
    -        global $user,$hookmanager;
    +	/**
    +	 *	Load an object from its id and create a new one in database
    +	 *
    +	 *	@param		int			$socid			Id of thirdparty
    +	 *	@return		int							New id of clone
    +	 */
    +	function createFromClone($socid=0)
    +	{
    +		global $user,$hookmanager;
     
    -        $error=0;
    +		$error=0;
     
    -        $this->context['createfromclone'] = 'createfromclone';
    -
    -        $this->db->begin();
    +		$this->db->begin();
     
     		// get lines so they will be clone
     		foreach($this->lines as $line)
     			$line->fetch_optionals();
     
    -        // Load source object
    -        $objFrom = clone $this;
    +			// Load source object
    +			$objFrom = clone $this;
     
    -        // Change socid if needed
    -        if (! empty($socid) && $socid != $this->socid)
    -        {
    -            $objsoc = new Societe($this->db);
    +			// Change socid if needed
    +			if (! empty($socid) && $socid != $this->socid)
    +			{
    +				$objsoc = new Societe($this->db);
     
    -            if ($objsoc->fetch($socid)>0)
    -            {
    -                $this->socid 				= $objsoc->id;
    -                $this->cond_reglement_id	= (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0);
    -                $this->mode_reglement_id	= (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0);
    -                $this->fk_project			= 0;
    -                $this->fk_delivery_address	= 0;
    -            }
    +				if ($objsoc->fetch($socid)>0)
    +				{
    +					$this->socid 				= $objsoc->id;
    +					$this->cond_reglement_id	= (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0);
    +					$this->mode_reglement_id	= (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0);
    +					$this->fk_project			= 0;
    +					$this->fk_delivery_address	= 0;
    +				}
     
    -            // TODO Change product price if multi-prices
    -        }
    +				// TODO Change product price if multi-prices
    +			}
     
    -        $this->id=0;
    -		$this->ref = '';
    -        $this->statut=self::STATUS_DRAFT;
    +			$this->id=0;
    +			$this->ref = '';
    +			$this->statut=self::STATUS_DRAFT;
     
    -        // Clear fields
    -        $this->user_author_id     = $user->id;
    -        $this->user_valid         = '';
    -		$this->date				  = dol_now();
    -		$this->date_commande	  = dol_now();
    -        $this->date_creation      = '';
    -        $this->date_validation    = '';
    -        $this->ref_client         = '';
    +			// Clear fields
    +			$this->user_author_id     = $user->id;
    +			$this->user_valid         = '';
    +			$this->date				  = dol_now();
    +			$this->date_commande	  = dol_now();
    +			$this->date_creation      = '';
    +			$this->date_validation    = '';
    +			$this->ref_client         = '';
     
    -        // Create clone
    -        $result=$this->create($user);
    -        if ($result < 0) $error++;
    +			// Create clone
    +			$this->context['createfromclone'] = 'createfromclone';
    +			$result=$this->create($user);
    +			if ($result < 0) $error++;
     
    -        if (! $error)
    -        {
    -            // Hook of thirdparty module
    -            if (is_object($hookmanager))
    -            {
    -                $parameters=array('objFrom'=>$objFrom);
    -                $action='';
    -                $reshook=$hookmanager->executeHooks('createFrom',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    -                if ($reshook < 0) $error++;
    -            }
    -        }
    +			if (! $error)
    +			{
    +				// Hook of thirdparty module
    +				if (is_object($hookmanager))
    +				{
    +					$parameters=array('objFrom'=>$objFrom);
    +					$action='';
    +					$reshook=$hookmanager->executeHooks('createFrom',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +					if ($reshook < 0) $error++;
    +				}
    +			}
     
    -        unset($this->context['createfromclone']);
    +			unset($this->context['createfromclone']);
     
    -        // End
    -        if (! $error)
    -        {
    -            $this->db->commit();
    -            return $this->id;
    -        }
    -        else
    -        {
    -            $this->db->rollback();
    -            return -1;
    -        }
    -    }
    +			// End
    +			if (! $error)
    +			{
    +				$this->db->commit();
    +				return $this->id;
    +			}
    +			else
    +			{
    +				$this->db->rollback();
    +				return -1;
    +			}
    +	}
     
     
    -    /**
    -     *  Load an object from a proposal and create a new order into database
    -     *
    -     *  @param      Object			$object 	        Object source
    -     *  @param		User			$user				User making creation
    -     *  @return     int             					<0 if KO, 0 if nothing done, 1 if OK
    -     */
    -    function createFromProposal($object, User $user)
    -    {
    -        global $conf, $hookmanager;
    +	/**
    +	 *  Load an object from a proposal and create a new order into database
    +	 *
    +	 *  @param      Object			$object 	        Object source
    +	 *  @param		User			$user				User making creation
    +	 *  @return     int             					<0 if KO, 0 if nothing done, 1 if OK
    +	 */
    +	function createFromProposal($object, User $user)
    +	{
    +		global $conf, $hookmanager;
     
     		dol_include_once('/core/class/extrafields.class.php');
     
    -        $error=0;
    +		$error=0;
     
     
    -        $this->date_commande = dol_now();
    -        $this->source = 0;
    +		$this->date_commande = dol_now();
    +		$this->source = 0;
     
    -        $num=count($object->lines);
    -        for ($i = 0; $i < $num; $i++)
    -        {
    -            $line = new OrderLine($this->db);
    +		$num=count($object->lines);
    +		for ($i = 0; $i < $num; $i++)
    +		{
    +			$line = new OrderLine($this->db);
     
    -            $line->libelle           = $object->lines[$i]->libelle;
    -            $line->label             = $object->lines[$i]->label;
    -            $line->desc              = $object->lines[$i]->desc;
    -            $line->price             = $object->lines[$i]->price;
    -            $line->subprice          = $object->lines[$i]->subprice;
    -            $line->vat_src_code      = $object->lines[$i]->vat_src_code;
    -            $line->tva_tx            = $object->lines[$i]->tva_tx;
    -            $line->localtax1_tx      = $object->lines[$i]->localtax1_tx;
    -            $line->localtax2_tx      = $object->lines[$i]->localtax2_tx;
    -            $line->qty               = $object->lines[$i]->qty;
    -            $line->fk_remise_except  = $object->lines[$i]->fk_remise_except;
    -            $line->remise_percent    = $object->lines[$i]->remise_percent;
    -            $line->fk_product        = $object->lines[$i]->fk_product;
    -            $line->info_bits         = $object->lines[$i]->info_bits;
    -            $line->product_type      = $object->lines[$i]->product_type;
    -            $line->rang              = $object->lines[$i]->rang;
    -            $line->special_code      = $object->lines[$i]->special_code;
    -            $line->fk_parent_line    = $object->lines[$i]->fk_parent_line;
    -	        $line->fk_unit			 = $object->lines[$i]->fk_unit;
    +			$line->libelle           = $object->lines[$i]->libelle;
    +			$line->label             = $object->lines[$i]->label;
    +			$line->desc              = $object->lines[$i]->desc;
    +			$line->price             = $object->lines[$i]->price;
    +			$line->subprice          = $object->lines[$i]->subprice;
    +			$line->vat_src_code      = $object->lines[$i]->vat_src_code;
    +			$line->tva_tx            = $object->lines[$i]->tva_tx;
    +			$line->localtax1_tx      = $object->lines[$i]->localtax1_tx;
    +			$line->localtax2_tx      = $object->lines[$i]->localtax2_tx;
    +			$line->qty               = $object->lines[$i]->qty;
    +			$line->fk_remise_except  = $object->lines[$i]->fk_remise_except;
    +			$line->remise_percent    = $object->lines[$i]->remise_percent;
    +			$line->fk_product        = $object->lines[$i]->fk_product;
    +			$line->info_bits         = $object->lines[$i]->info_bits;
    +			$line->product_type      = $object->lines[$i]->product_type;
    +			$line->rang              = $object->lines[$i]->rang;
    +			$line->special_code      = $object->lines[$i]->special_code;
    +			$line->fk_parent_line    = $object->lines[$i]->fk_parent_line;
    +			$line->fk_unit			 = $object->lines[$i]->fk_unit;
     
    -            $line->date_start      	= $object->lines[$i]->date_start;
    -            $line->date_end    		= $object->lines[$i]->date_end;
    +			$line->date_start      	= $object->lines[$i]->date_start;
    +			$line->date_end    		= $object->lines[$i]->date_end;
     
     			$line->fk_fournprice	= $object->lines[$i]->fk_fournprice;
     			$marginInfos			= getMarginInfos($object->lines[$i]->subprice, $object->lines[$i]->remise_percent, $object->lines[$i]->tva_tx, $object->lines[$i]->localtax1_tx, $object->lines[$i]->localtax2_tx, $object->lines[$i]->fk_fournprice, $object->lines[$i]->pa_ht);
    @@ -1147,34 +1191,34 @@ class Commande extends CommonOrder
     			$line->marge_tx			= $marginInfos[1];
     			$line->marque_tx		= $marginInfos[2];
     
    -            // get extrafields from original line
    +			// get extrafields from original line
     			$object->lines[$i]->fetch_optionals();
     			foreach($object->lines[$i]->array_options as $options_key => $value)
     				$line->array_options[$options_key] = $value;
     
    -			$this->lines[$i] = $line;
    -        }
    +				$this->lines[$i] = $line;
    +		}
     
    -        $this->socid                = $object->socid;
    -        $this->fk_project           = $object->fk_project;
    -        $this->cond_reglement_id    = $object->cond_reglement_id;
    -        $this->mode_reglement_id    = $object->mode_reglement_id;
    -        $this->fk_account           = $object->fk_account;
    -        $this->availability_id      = $object->availability_id;
    -        $this->demand_reason_id     = $object->demand_reason_id;
    -        $this->date_livraison       = $object->date_livraison;
    -        $this->shipping_method_id   = $object->shipping_method_id;
    -        $this->warehouse_id         = $object->warehouse_id;
    -        $this->fk_delivery_address  = $object->fk_delivery_address;
    -        $this->contact_id           = $object->contactid;
    -        $this->ref_client           = $object->ref_client;
    -        $this->note_private         = $object->note_private;
    -        $this->note_public          = $object->note_public;
    +		$this->socid                = $object->socid;
    +		$this->fk_project           = $object->fk_project;
    +		$this->cond_reglement_id    = $object->cond_reglement_id;
    +		$this->mode_reglement_id    = $object->mode_reglement_id;
    +		$this->fk_account           = $object->fk_account;
    +		$this->availability_id      = $object->availability_id;
    +		$this->demand_reason_id     = $object->demand_reason_id;
    +		$this->date_livraison       = $object->date_livraison;
    +		$this->shipping_method_id   = $object->shipping_method_id;
    +		$this->warehouse_id         = $object->warehouse_id;
    +		$this->fk_delivery_address  = $object->fk_delivery_address;
    +		$this->contact_id           = $object->contactid;
    +		$this->ref_client           = $object->ref_client;
    +		$this->note_private         = $object->note_private;
    +		$this->note_public          = $object->note_public;
     
    -        $this->origin				= $object->element;
    -        $this->origin_id			= $object->id;
    +		$this->origin				= $object->element;
    +		$this->origin_id			= $object->id;
     
    -        // get extrafields from original line
    +		// get extrafields from original line
     		$object->fetch_optionals($object->id);
     
     		$e = new ExtraFields($this->db);
    @@ -1185,87 +1229,87 @@ class Commande extends CommonOrder
     				$this->array_options[$options_key] = $value;
     			}
     		}
    -        // Possibility to add external linked objects with hooks
    -        $this->linked_objects[$this->origin] = $this->origin_id;
    -        if (is_array($object->other_linked_objects) && ! empty($object->other_linked_objects))
    -        {
    -           	$this->linked_objects = array_merge($this->linked_objects, $object->other_linked_objects);
    -        }
    +		// Possibility to add external linked objects with hooks
    +		$this->linked_objects[$this->origin] = $this->origin_id;
    +		if (is_array($object->other_linked_objects) && ! empty($object->other_linked_objects))
    +		{
    +			$this->linked_objects = array_merge($this->linked_objects, $object->other_linked_objects);
    +		}
     
    -        $ret = $this->create($user);
    +		$ret = $this->create($user);
     
    -        if ($ret > 0)
    -        {
    -            // Actions hooked (by external module)
    -            $hookmanager->initHooks(array('orderdao'));
    +		if ($ret > 0)
    +		{
    +			// Actions hooked (by external module)
    +			$hookmanager->initHooks(array('orderdao'));
     
    -            $parameters=array('objFrom'=>$object);
    -            $action='';
    -            $reshook=$hookmanager->executeHooks('createFrom',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    -            if ($reshook < 0) $error++;
    +			$parameters=array('objFrom'=>$object);
    +			$action='';
    +			$reshook=$hookmanager->executeHooks('createFrom',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +			if ($reshook < 0) $error++;
     
    -            if (! $error)
    -            {
    -                // Ne pas passer par la commande provisoire
    -                if ($conf->global->COMMANDE_VALID_AFTER_CLOSE_PROPAL == 1)
    -                {
    -                    $this->fetch($ret);
    -                    $this->valid($user);
    -                }
    -                return $ret;
    -            }
    -            else return -1;
    -        }
    -        else return -1;
    -    }
    +			if (! $error)
    +			{
    +				// Ne pas passer par la commande provisoire
    +				if ($conf->global->COMMANDE_VALID_AFTER_CLOSE_PROPAL == 1)
    +				{
    +					$this->fetch($ret);
    +					$this->valid($user);
    +				}
    +				return $ret;
    +			}
    +			else return -1;
    +		}
    +		else return -1;
    +	}
     
     
    -    /**
    -     *	Add an order line into database (linked to product/service or not)
    -     *
    -     *	@param      string			$desc            	Description of line
    -     *	@param      float			$pu_ht    	        Unit price (without tax)
    -     *	@param      float			$qty             	Quantite
    -     * 	@param    	float			$txtva           	Force Vat rate, -1 for auto (Can contain the vat_src_code too with syntax '9.9 (CODE)')
    -     * 	@param		float			$txlocaltax1		Local tax 1 rate (deprecated, use instead txtva with code inside)
    -     * 	@param		float			$txlocaltax2		Local tax 2 rate (deprecated, use instead txtva with code inside)
    -     *	@param      int				$fk_product      	Id of product
    -     *	@param      float			$remise_percent  	Pourcentage de remise de la ligne
    -     *	@param      int				$info_bits			Bits de type de lignes
    -     *	@param      int				$fk_remise_except	Id remise
    -     *	@param      string			$price_base_type	HT or TTC
    -     *	@param      float			$pu_ttc    		    Prix unitaire TTC
    -     *	@param      int				$date_start       	Start date of the line - Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    -     *	@param      int				$date_end         	End date of the line - Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    -     *	@param      int				$type				Type of line (0=product, 1=service). Not used if fk_product is defined, the type of product is used.
    -     *	@param      int				$rang             	Position of line
    -     *	@param		int				$special_code		Special code (also used by externals modules!)
    -     *	@param		int				$fk_parent_line		Parent line
    -     *  @param		int				$fk_fournprice		Id supplier price
    -     *  @param		int				$pa_ht				Buying price (without tax)
    -     *  @param		string			$label				Label
    +	/**
    +	 *	Add an order line into database (linked to product/service or not)
    +	 *
    +	 *	@param      string			$desc            	Description of line
    +	 *	@param      float			$pu_ht    	        Unit price (without tax)
    +	 *	@param      float			$qty             	Quantite
    +	 * 	@param    	float			$txtva           	Force Vat rate, -1 for auto (Can contain the vat_src_code too with syntax '9.9 (CODE)')
    +	 * 	@param		float			$txlocaltax1		Local tax 1 rate (deprecated, use instead txtva with code inside)
    +	 * 	@param		float			$txlocaltax2		Local tax 2 rate (deprecated, use instead txtva with code inside)
    +	 *	@param      int				$fk_product      	Id of product
    +	 *	@param      float			$remise_percent  	Pourcentage de remise de la ligne
    +	 *	@param      int				$info_bits			Bits de type de lignes
    +	 *	@param      int				$fk_remise_except	Id remise
    +	 *	@param      string			$price_base_type	HT or TTC
    +	 *	@param      float			$pu_ttc    		    Prix unitaire TTC
    +	 *	@param      int				$date_start       	Start date of the line - Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    +	 *	@param      int				$date_end         	End date of the line - Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    +	 *	@param      int				$type				Type of line (0=product, 1=service). Not used if fk_product is defined, the type of product is used.
    +	 *	@param      int				$rang             	Position of line
    +	 *	@param		int				$special_code		Special code (also used by externals modules!)
    +	 *	@param		int				$fk_parent_line		Parent line
    +	 *  @param		int				$fk_fournprice		Id supplier price
    +	 *  @param		int				$pa_ht				Buying price (without tax)
    +	 *  @param		string			$label				Label
     	 *  @param		array			$array_options		extrafields array. Example array('options_codeforfield1'=>'valueforfield1', 'options_codeforfield2'=>'valueforfield2', ...)
    -     * 	@param 		string			$fk_unit 			Code of the unit to use. Null to use the default one
    -     * 	@param		string		    $origin				'order', ...
    -     *  @param		int			    $origin_id			Id of origin object
    +	 * 	@param 		string			$fk_unit 			Code of the unit to use. Null to use the default one
    +	 * 	@param		string		    $origin				'order', ...
    +	 *  @param		int			    $origin_id			Id of origin object
     	 * 	@param		double			$pu_ht_devise		Unit price in currency
    -     *	@return     int             					>0 if OK, <0 if KO
    -     *
    -     *	@see        add_product
    -     *
    -     *	Les parametres sont deja cense etre juste et avec valeurs finales a l'appel
    -     *	de cette methode. Aussi, pour le taux tva, il doit deja avoir ete defini
    -     *	par l'appelant par la methode get_default_tva(societe_vendeuse,societe_acheteuse,produit)
    -     *	et le desc doit deja avoir la bonne valeur (a l'appelant de gerer le multilangue)
    -     */
    +	 *	@return     int             					>0 if OK, <0 if KO
    +	 *
    +	 *	@see        add_product
    +	 *
    +	 *	Les parametres sont deja cense etre juste et avec valeurs finales a l'appel
    +	 *	de cette methode. Aussi, pour le taux tva, il doit deja avoir ete defini
    +	 *	par l'appelant par la methode get_default_tva(societe_vendeuse,societe_acheteuse,produit)
    +	 *	et le desc doit deja avoir la bonne valeur (a l'appelant de gerer le multilangue)
    +	 */
     	function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1=0, $txlocaltax2=0, $fk_product=0, $remise_percent=0, $info_bits=0, $fk_remise_except=0, $price_base_type='HT', $pu_ttc=0, $date_start='', $date_end='', $type=0, $rang=-1, $special_code=0, $fk_parent_line=0, $fk_fournprice=null, $pa_ht=0, $label='',$array_options=0, $fk_unit=null, $origin='', $origin_id=0, $pu_ht_devise = 0)
    -    {
    -    	global $mysoc, $conf, $langs, $user;
    +	{
    +		global $mysoc, $conf, $langs, $user;
     
     		$logtext = "::addline commandeid=$this->id, desc=$desc, pu_ht=$pu_ht, qty=$qty, txtva=$txtva, fk_product=$fk_product, remise_percent=$remise_percent";
     		$logtext.= ", info_bits=$info_bits, fk_remise_except=$fk_remise_except, price_base_type=$price_base_type, pu_ttc=$pu_ttc, date_start=$date_start";
     		$logtext.= ", date_end=$date_end, type=$type special_code=$special_code, fk_unit=$fk_unit, origin=$origin, origin_id=$origin_id, pu_ht_devise=$pu_ht_devise";
    -        dol_syslog(get_class($this).$logtext, LOG_DEBUG);
    +		dol_syslog(get_class($this).$logtext, LOG_DEBUG);
     
     		if ($this->statut == self::STATUS_DRAFT)
     		{
    @@ -1309,7 +1353,7 @@ class Commande extends CommonOrder
     
                 $this->db->begin();
     
    -        	$product_type=$type;
    +			$product_type=$type;
     			if (!empty($fk_product))
     			{
     				$product=new Product($this->db);
    @@ -1318,105 +1362,105 @@ class Commande extends CommonOrder
     
     				if (! empty($conf->global->STOCK_MUST_BE_ENOUGH_FOR_ORDER) && $product_type == 0 && $product->stock_reel < $qty)
     				{
    -                    $langs->load("errors");
    -				    $this->error=$langs->trans('ErrorStockIsNotEnoughToAddProductOnOrder', $product->ref);
    +					$langs->load("errors");
    +					$this->error=$langs->trans('ErrorStockIsNotEnoughToAddProductOnOrder', $product->ref);
     					dol_syslog(get_class($this)."::addline error=Product ".$product->ref.": ".$this->error, LOG_ERR);
     					$this->db->rollback();
     					return self::STOCK_NOT_ENOUGH_FOR_ORDER;
     				}
     			}
     			// Calcul du total TTC et de la TVA pour la ligne a partir de
    -            // qty, pu, remise_percent et txtva
    -            // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
    -            // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
    +			// qty, pu, remise_percent et txtva
    +			// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
    +			// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
     
    -            $localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
    +			$localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
     
    -       		// Clean vat code
    -    		$vat_src_code='';
    -    		if (preg_match('/\((.*)\)/', $txtva, $reg))
    -    		{
    -    		    $vat_src_code = $reg[1];
    -    		    $txtva = preg_replace('/\s*\(.*\)/', '', $txtva);    // Remove code into vatrate.
    -    		}
    +			// Clean vat code
    +			$vat_src_code='';
    +			if (preg_match('/\((.*)\)/', $txtva, $reg))
    +			{
    +				$vat_src_code = $reg[1];
    +				$txtva = preg_replace('/\s*\(.*\)/', '', $txtva);    // Remove code into vatrate.
    +			}
     
    -            $tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $product_type, $mysoc, $localtaxes_type, 100, $this->multicurrency_tx, $pu_ht_devise);
    +			$tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $product_type, $mysoc, $localtaxes_type, 100, $this->multicurrency_tx, $pu_ht_devise);
     
    -            /*var_dump($txlocaltax1);
    -            var_dump($txlocaltax2);
    -            var_dump($localtaxes_type);
    -            var_dump($tabprice);
    -            var_dump($tabprice[9]);
    -            var_dump($tabprice[10]);
    -            exit;*/
    +			/*var_dump($txlocaltax1);
    +			 var_dump($txlocaltax2);
    +			 var_dump($localtaxes_type);
    +			 var_dump($tabprice);
    +			 var_dump($tabprice[9]);
    +			 var_dump($tabprice[10]);
    +			 exit;*/
     
    -            $total_ht  = $tabprice[0];
    -            $total_tva = $tabprice[1];
    -            $total_ttc = $tabprice[2];
    -            $total_localtax1 = $tabprice[9];
    -            $total_localtax2 = $tabprice[10];
    +			$total_ht  = $tabprice[0];
    +			$total_tva = $tabprice[1];
    +			$total_ttc = $tabprice[2];
    +			$total_localtax1 = $tabprice[9];
    +			$total_localtax2 = $tabprice[10];
     			$pu_ht = $tabprice[3];
     
     			// MultiCurrency
     			$multicurrency_total_ht  = $tabprice[16];
    -            $multicurrency_total_tva = $tabprice[17];
    -            $multicurrency_total_ttc = $tabprice[18];
    +			$multicurrency_total_tva = $tabprice[17];
    +			$multicurrency_total_ttc = $tabprice[18];
     			$pu_ht_devise = $tabprice[19];
     
    -            // Rang to use
    -            $rangtouse = $rang;
    -            if ($rangtouse == -1)
    -            {
    -                $rangmax = $this->line_max($fk_parent_line);
    -                $rangtouse = $rangmax + 1;
    -            }
    +			// Rang to use
    +			$rangtouse = $rang;
    +			if ($rangtouse == -1)
    +			{
    +				$rangmax = $this->line_max($fk_parent_line);
    +				$rangtouse = $rangmax + 1;
    +			}
     
    -            // TODO A virer
    -            // Anciens indicateurs: $price, $remise (a ne plus utiliser)
    -            $price = $pu;
    -            $remise = 0;
    -            if ($remise_percent > 0)
    -            {
    -                $remise = round(($pu * $remise_percent / 100), 2);
    -                $price = $pu - $remise;
    -            }
    +			// TODO A virer
    +			// Anciens indicateurs: $price, $remise (a ne plus utiliser)
    +			$price = $pu;
    +			$remise = 0;
    +			if ($remise_percent > 0)
    +			{
    +				$remise = round(($pu * $remise_percent / 100), 2);
    +				$price = $pu - $remise;
    +			}
     
    -            // Insert line
    -            $this->line=new OrderLine($this->db);
    +			// Insert line
    +			$this->line=new OrderLine($this->db);
     
    -            $this->line->context = $this->context;
    +			$this->line->context = $this->context;
     
    -            $this->line->fk_commande=$this->id;
    -            $this->line->label=$label;
    -            $this->line->desc=$desc;
    -            $this->line->qty=$qty;
    +			$this->line->fk_commande=$this->id;
    +			$this->line->label=$label;
    +			$this->line->desc=$desc;
    +			$this->line->qty=$qty;
     
    -            $this->line->vat_src_code=$vat_src_code;
    -            $this->line->tva_tx=$txtva;
    -            $this->line->localtax1_tx=($total_localtax1?$localtaxes_type[1]:0);
    -            $this->line->localtax2_tx=($total_localtax2?$localtaxes_type[3]:0);
    -            $this->line->localtax1_type=$localtaxes_type[0];
    -            $this->line->localtax2_type=$localtaxes_type[2];
    -            $this->line->fk_product=$fk_product;
    +			$this->line->vat_src_code=$vat_src_code;
    +			$this->line->tva_tx=$txtva;
    +			$this->line->localtax1_tx=($total_localtax1?$localtaxes_type[1]:0);
    +			$this->line->localtax2_tx=($total_localtax2?$localtaxes_type[3]:0);
    +			$this->line->localtax1_type=$localtaxes_type[0];
    +			$this->line->localtax2_type=$localtaxes_type[2];
    +			$this->line->fk_product=$fk_product;
     			$this->line->product_type=$product_type;
    -            $this->line->fk_remise_except=$fk_remise_except;
    -            $this->line->remise_percent=$remise_percent;
    -            $this->line->subprice=$pu_ht;
    -            $this->line->rang=$rangtouse;
    -            $this->line->info_bits=$info_bits;
    -            $this->line->total_ht=$total_ht;
    -            $this->line->total_tva=$total_tva;
    -            $this->line->total_localtax1=$total_localtax1;
    -            $this->line->total_localtax2=$total_localtax2;
    -            $this->line->total_ttc=$total_ttc;
    -            $this->line->special_code=$special_code;
    -            $this->line->origin=$origin;
    -            $this->line->origin_id=$origin_id;
    -            $this->line->fk_parent_line=$fk_parent_line;
    -	        $this->line->fk_unit=$fk_unit;
    +			$this->line->fk_remise_except=$fk_remise_except;
    +			$this->line->remise_percent=$remise_percent;
    +			$this->line->subprice=$pu_ht;
    +			$this->line->rang=$rangtouse;
    +			$this->line->info_bits=$info_bits;
    +			$this->line->total_ht=$total_ht;
    +			$this->line->total_tva=$total_tva;
    +			$this->line->total_localtax1=$total_localtax1;
    +			$this->line->total_localtax2=$total_localtax2;
    +			$this->line->total_ttc=$total_ttc;
    +			$this->line->special_code=$special_code;
    +			$this->line->origin=$origin;
    +			$this->line->origin_id=$origin_id;
    +			$this->line->fk_parent_line=$fk_parent_line;
    +			$this->line->fk_unit=$fk_unit;
     
    -            $this->line->date_start=$date_start;
    -            $this->line->date_end=$date_end;
    +			$this->line->date_start=$date_start;
    +			$this->line->date_end=$date_end;
     
     			$this->line->fk_fournprice = $fk_fournprice;
     			$this->line->pa_ht = $pa_ht;
    @@ -1426,187 +1470,190 @@ class Commande extends CommonOrder
     			$this->line->multicurrency_code			= $this->multicurrency_code;
     			$this->line->multicurrency_subprice		= $pu_ht_devise;
     			$this->line->multicurrency_total_ht 	= $multicurrency_total_ht;
    -            $this->line->multicurrency_total_tva 	= $multicurrency_total_tva;
    -            $this->line->multicurrency_total_ttc 	= $multicurrency_total_ttc;
    +			$this->line->multicurrency_total_tva 	= $multicurrency_total_tva;
    +			$this->line->multicurrency_total_ttc 	= $multicurrency_total_ttc;
     
    -            // TODO Ne plus utiliser
    -            $this->line->price=$price;
    -            $this->line->remise=$remise;
    +			// TODO Ne plus utiliser
    +			$this->line->price=$price;
    +			$this->line->remise=$remise;
     
     			if (is_array($array_options) && count($array_options)>0) {
     				$this->line->array_options=$array_options;
     			}
     
    -            $result=$this->line->insert($user);
    -            if ($result > 0)
    -            {
    -                // Reorder if child line
    -                if (! empty($fk_parent_line)) $this->line_order(true,'DESC');
    +			$result=$this->line->insert($user);
    +			if ($result > 0)
    +			{
    +				// Reorder if child line
    +				if (! empty($fk_parent_line)) $this->line_order(true,'DESC');
     
    -                // Mise a jour informations denormalisees au niveau de la commande meme
    -                $result=$this->update_price(1,'auto',0,$mysoc);	// This method is designed to add line from user input so total calculation must be done using 'auto' mode.
    -                if ($result > 0)
    -                {
    -                    $this->db->commit();
    -                    return $this->line->rowid;
    -                }
    -                else
    -                {
    -                    $this->db->rollback();
    -                    return -1;
    -                }
    -            }
    -            else
    -            {
    -                $this->error=$this->line->error;
    -                dol_syslog(get_class($this)."::addline error=".$this->error, LOG_ERR);
    -                $this->db->rollback();
    -                return -2;
    -            }
    -        }
    +				// Mise a jour informations denormalisees au niveau de la commande meme
    +				$result=$this->update_price(1,'auto',0,$mysoc);	// This method is designed to add line from user input so total calculation must be done using 'auto' mode.
    +				if ($result > 0)
    +				{
    +					$this->db->commit();
    +					return $this->line->rowid;
    +				}
    +				else
    +				{
    +					$this->db->rollback();
    +					return -1;
    +				}
    +			}
    +			else
    +			{
    +				$this->error=$this->line->error;
    +				dol_syslog(get_class($this)."::addline error=".$this->error, LOG_ERR);
    +				$this->db->rollback();
    +				return -2;
    +			}
    +		}
     		else
     		{
    -            dol_syslog(get_class($this)."::addline status of order must be Draft to allow use of ->addline()", LOG_ERR);
    +			dol_syslog(get_class($this)."::addline status of order must be Draft to allow use of ->addline()", LOG_ERR);
     			return -3;
    -        }
    -    }
    +		}
    +	}
     
     
    -    /**
    -     *	Add line into array
    -     *	$this->client must be loaded
    -     *
    -     *	@param		int				$idproduct			Product Id
    -     *	@param		float			$qty				Quantity
    -     *	@param		float			$remise_percent		Product discount relative
    -     * 	@param    	int		$date_start         Start date of the line - Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    -     * 	@param    	int		$date_end           End date of the line - Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    -     * 	@return    	void
    -     *
    -     *	TODO	Remplacer les appels a cette fonction par generation objet Ligne
    -     *			insere dans tableau $this->products
    -     */
    -    function add_product($idproduct, $qty, $remise_percent=0.0, $date_start='', $date_end='')
    -    {
    -        global $conf, $mysoc;
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Add line into array
    +	 *	$this->client must be loaded
    +	 *
    +	 *	@param		int				$idproduct			Product Id
    +	 *	@param		float			$qty				Quantity
    +	 *	@param		float			$remise_percent		Product discount relative
    +	 * 	@param    	int		$date_start         Start date of the line - Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    +	 * 	@param    	int		$date_end           End date of the line - Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    +	 * 	@return    	void
    +	 *
    +	 *	TODO	Remplacer les appels a cette fonction par generation objet Ligne
    +	 *			insere dans tableau $this->products
    +	 */
    +	function add_product($idproduct, $qty, $remise_percent=0.0, $date_start='', $date_end='')
    +	{
    +        // phpcs:enable
    +		global $conf, $mysoc;
     
    -        if (! $qty) $qty = 1;
    +		if (! $qty) $qty = 1;
     
    -        if ($idproduct > 0)
    -        {
    -            $prod=new Product($this->db);
    -            $prod->fetch($idproduct);
    +		if ($idproduct > 0)
    +		{
    +			$prod=new Product($this->db);
    +			$prod->fetch($idproduct);
     
    -            $tva_tx = get_default_tva($mysoc,$this->thirdparty,$prod->id);
    -            $tva_npr = get_default_npr($mysoc,$this->thirdparty,$prod->id);
    -            if (empty($tva_tx)) $tva_npr=0;
    -            $vat_src_code = '';     // May be defined into tva_tx
    +			$tva_tx = get_default_tva($mysoc,$this->thirdparty,$prod->id);
    +			$tva_npr = get_default_npr($mysoc,$this->thirdparty,$prod->id);
    +			if (empty($tva_tx)) $tva_npr=0;
    +			$vat_src_code = '';     // May be defined into tva_tx
     
    -            $localtax1_tx=get_localtax($tva_tx,1,$this->thirdparty,$mysoc,$tva_npr);
    -            $localtax2_tx=get_localtax($tva_tx,2,$this->thirdparty,$mysoc,$tva_npr);
    +			$localtax1_tx=get_localtax($tva_tx,1,$this->thirdparty,$mysoc,$tva_npr);
    +			$localtax2_tx=get_localtax($tva_tx,2,$this->thirdparty,$mysoc,$tva_npr);
     
    -            // multiprix
    -            if($conf->global->PRODUIT_MULTIPRICES && $this->thirdparty->price_level)
    -            $price = $prod->multiprices[$this->thirdparty->price_level];
    -            else
    -            $price = $prod->price;
    +			// multiprix
    +			if($conf->global->PRODUIT_MULTIPRICES && $this->thirdparty->price_level) {
    +				$price = $prod->multiprices[$this->thirdparty->price_level];
    +			} else {
    +				$price = $prod->price;
    +			}
     
    -            $line=new OrderLine($this->db);
    +			$line=new OrderLine($this->db);
     
    -            $line->context = $this->context;
    +			$line->context = $this->context;
     
    -            $line->fk_product=$idproduct;
    -            $line->desc=$prod->description;
    -            $line->qty=$qty;
    -            $line->subprice=$price;
    -            $line->remise_percent=$remise_percent;
    -            $line->vat_src_code=$vat_src_code;
    -            $line->tva_tx=$tva_tx;
    -            $line->localtax1_tx=$localtax1_tx;
    -            $line->localtax2_tx=$localtax2_tx;
    -            $line->ref=$prod->ref;
    -            $line->libelle=$prod->label;
    -            $line->product_desc=$prod->description;
    -	        $line->fk_unit=$prod->fk_unit;
    +			$line->fk_product=$idproduct;
    +			$line->desc=$prod->description;
    +			$line->qty=$qty;
    +			$line->subprice=$price;
    +			$line->remise_percent=$remise_percent;
    +			$line->vat_src_code=$vat_src_code;
    +			$line->tva_tx=$tva_tx;
    +			$line->localtax1_tx=$localtax1_tx;
    +			$line->localtax2_tx=$localtax2_tx;
    +			$line->ref=$prod->ref;
    +			$line->libelle=$prod->label;
    +			$line->product_desc=$prod->description;
    +			$line->fk_unit=$prod->fk_unit;
     
    -            // Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    -            // Save the start and end date of the line in the object
    -            if ($date_start) { $line->date_start = $date_start; }
    -            if ($date_end)   { $line->date_end = $date_end; }
    +			// Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    +			// Save the start and end date of the line in the object
    +			if ($date_start) { $line->date_start = $date_start; }
    +			if ($date_end)   { $line->date_end = $date_end; }
     
    -            $this->lines[] = $line;
    +			$this->lines[] = $line;
     
    -            /** POUR AJOUTER AUTOMATIQUEMENT LES SOUSPRODUITS a LA COMMANDE
    -             if (! empty($conf->global->PRODUIT_SOUSPRODUITS))
    -             {
    -             $prod = new Product($this->db);
    -             $prod->fetch($idproduct);
    -             $prod -> get_sousproduits_arbo();
    -             $prods_arbo = $prod->get_arbo_each_prod();
    -             if(count($prods_arbo) > 0)
    -             {
    -             foreach($prods_arbo as $key => $value)
    -             {
    -             // print "id : ".$value[1].' :qty: '.$value[0].'<br>';
    -             if(! in_array($value[1],$this->products))
    -             $this->add_product($value[1], $value[0]);
    +			/** POUR AJOUTER AUTOMATIQUEMENT LES SOUSPRODUITS a LA COMMANDE
    +			 if (! empty($conf->global->PRODUIT_SOUSPRODUITS))
    +			 {
    +			 $prod = new Product($this->db);
    +			 $prod->fetch($idproduct);
    +			 $prod -> get_sousproduits_arbo();
    +			 $prods_arbo = $prod->get_arbo_each_prod();
    +			 if(count($prods_arbo) > 0)
    +			 {
    +			 foreach($prods_arbo as $key => $value)
    +			 {
    +			 // print "id : ".$value[1].' :qty: '.$value[0].'<br>';
    +			 if(! in_array($value[1],$this->products))
    +			 $this->add_product($value[1], $value[0]);
     
    -             }
    -             }
    +			 }
    +			 }
     
    -             }
    -             **/
    -        }
    -    }
    +			 }
    +			 **/
    +		}
    +	}
     
     
    -    /**
    -     *	Get object and lines from database
    -     *
    -     *	@param      int			$id       		Id of object to load
    -     * 	@param		string		$ref			Ref of object
    -     * 	@param		string		$ref_ext		External reference of object
    -     * 	@param		string		$ref_int		Internal reference of other object
    -     *	@return     int         				>0 if OK, <0 if KO, 0 if not found
    -     */
    -    function fetch($id, $ref='', $ref_ext='', $ref_int='')
    -    {
    +	/**
    +	 *	Get object and lines from database
    +	 *
    +	 *	@param      int			$id       		Id of object to load
    +	 * 	@param		string		$ref			Ref of object
    +	 * 	@param		string		$ref_ext		External reference of object
    +	 * 	@param		string		$ref_int		Internal reference of other object
    +	 *	@return     int         				>0 if OK, <0 if KO, 0 if not found
    +	 */
    +	function fetch($id, $ref='', $ref_ext='', $ref_int='')
    +	{
     
    -        // Check parameters
    -        if (empty($id) && empty($ref) && empty($ref_ext) && empty($ref_int)) return -1;
    +		// Check parameters
    +		if (empty($id) && empty($ref) && empty($ref_ext) && empty($ref_int)) return -1;
     
    -        $sql = 'SELECT c.rowid, c.entity, c.date_creation, c.ref, c.fk_soc, c.fk_user_author, c.fk_user_valid, c.fk_statut';
    -        $sql.= ', c.amount_ht, c.total_ht, c.total_ttc, c.tva as total_tva, c.localtax1 as total_localtax1, c.localtax2 as total_localtax2, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_availability, c.fk_input_reason';
    -        $sql.= ', c.fk_account';
    -        $sql.= ', c.date_commande';
    -        $sql.= ', c.date_livraison';
    -        $sql.= ', c.fk_shipping_method';
    -        $sql.= ', c.fk_warehouse';
    -        $sql.= ', c.fk_projet, c.remise_percent, c.remise, c.remise_absolue, c.source, c.facture as billed';
    -        $sql.= ', c.note_private, c.note_public, c.ref_client, c.ref_ext, c.ref_int, c.model_pdf, c.last_main_doc, c.fk_delivery_address, c.extraparams';
    -        $sql.= ', c.fk_incoterms, c.location_incoterms';
    +		$sql = 'SELECT c.rowid, c.entity, c.date_creation, c.ref, c.fk_soc, c.fk_user_author, c.fk_user_valid, c.fk_statut';
    +		$sql.= ', c.amount_ht, c.total_ht, c.total_ttc, c.tva as total_tva, c.localtax1 as total_localtax1, c.localtax2 as total_localtax2, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_availability, c.fk_input_reason';
    +		$sql.= ', c.fk_account';
    +		$sql.= ', c.date_commande, c.date_valid, c.tms';
    +		$sql.= ', c.date_livraison';
    +		$sql.= ', c.fk_shipping_method';
    +		$sql.= ', c.fk_warehouse';
    +		$sql.= ', c.fk_projet, c.remise_percent, c.remise, c.remise_absolue, c.source, c.facture as billed';
    +		$sql.= ', c.note_private, c.note_public, c.ref_client, c.ref_ext, c.ref_int, c.model_pdf, c.last_main_doc, c.fk_delivery_address, c.extraparams';
    +		$sql.= ', c.fk_incoterms, c.location_incoterms';
     		$sql.= ", c.fk_multicurrency, c.multicurrency_code, c.multicurrency_tx, c.multicurrency_total_ht, c.multicurrency_total_tva, c.multicurrency_total_ttc";
    -        $sql.= ", i.libelle as libelle_incoterms";
    -        $sql.= ', p.code as mode_reglement_code, p.libelle as mode_reglement_libelle';
    -        $sql.= ', cr.code as cond_reglement_code, cr.libelle as cond_reglement_libelle, cr.libelle_facture as cond_reglement_libelle_doc';
    -        $sql.= ', ca.code as availability_code, ca.label as availability_label';
    -        $sql.= ', dr.code as demand_reason_code';
    -        $sql.= ' FROM '.MAIN_DB_PREFIX.'commande as c';
    -        $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_payment_term as cr ON c.fk_cond_reglement = cr.rowid';
    -        $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as p ON c.fk_mode_reglement = p.id';
    -        $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_availability as ca ON c.fk_availability = ca.rowid';
    -        $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_input_reason as dr ON c.fk_input_reason = ca.rowid';
    +		$sql.= ", i.libelle as libelle_incoterms";
    +		$sql.= ', p.code as mode_reglement_code, p.libelle as mode_reglement_libelle';
    +		$sql.= ', cr.code as cond_reglement_code, cr.libelle as cond_reglement_libelle, cr.libelle_facture as cond_reglement_libelle_doc';
    +		$sql.= ', ca.code as availability_code, ca.label as availability_label';
    +		$sql.= ', dr.code as demand_reason_code';
    +		$sql.= ' FROM '.MAIN_DB_PREFIX.'commande as c';
    +		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_payment_term as cr ON c.fk_cond_reglement = cr.rowid';
    +		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as p ON c.fk_mode_reglement = p.id';
    +		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_availability as ca ON c.fk_availability = ca.rowid';
    +		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_input_reason as dr ON c.fk_input_reason = ca.rowid';
     		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON c.fk_incoterms = i.rowid';
     
     		if ($id) $sql.= " WHERE c.rowid=".$id;
     		else $sql.= " WHERE c.entity IN (".getEntity('commande').")"; // Dont't use entity if you use rowid
     
    -        if ($ref)     $sql.= " AND c.ref='".$this->db->escape($ref)."'";
    -        if ($ref_ext) $sql.= " AND c.ref_ext='".$this->db->escape($ref_ext)."'";
    -        if ($ref_int) $sql.= " AND c.ref_int='".$this->db->escape($ref_int)."'";
    +		if ($ref)     $sql.= " AND c.ref='".$this->db->escape($ref)."'";
    +		if ($ref_ext) $sql.= " AND c.ref_ext='".$this->db->escape($ref_ext)."'";
    +		if ($ref_int) $sql.= " AND c.ref_int='".$this->db->escape($ref_int)."'";
     
    -        dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
    -        $result = $this->db->query($sql);
    +		dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
    +		$result = $this->db->query($sql);
     		if ($result)
     		{
     			$obj = $this->db->fetch_object($result);
    @@ -1615,50 +1662,53 @@ class Commande extends CommonOrder
     				$this->id					= $obj->rowid;
     				$this->entity				= $obj->entity;
     
    -                $this->ref					= $obj->ref;
    -                $this->ref_client			= $obj->ref_client;
    -                $this->ref_customer			= $obj->ref_client;
    -                $this->ref_ext				= $obj->ref_ext;
    -                $this->ref_int				= $obj->ref_int;
    -                $this->socid				= $obj->fk_soc;
    -                $this->statut				= $obj->fk_statut;
    -                $this->user_author_id		= $obj->fk_user_author;
    -                $this->user_valid           = $obj->fk_user_valid;
    -                $this->total_ht				= $obj->total_ht;
    -                $this->total_tva			= $obj->total_tva;
    -                $this->total_localtax1		= $obj->total_localtax1;
    -                $this->total_localtax2		= $obj->total_localtax2;
    -                $this->total_ttc			= $obj->total_ttc;
    -                $this->date					= $this->db->jdate($obj->date_commande);
    -                $this->date_commande		= $this->db->jdate($obj->date_commande);
    -                $this->remise				= $obj->remise;
    -                $this->remise_percent		= $obj->remise_percent;
    -                $this->remise_absolue		= $obj->remise_absolue;
    -                $this->source				= $obj->source;
    -                $this->billed				= $obj->billed;
    -                $this->note					= $obj->note_private;	// deprecated
    -                $this->note_private			= $obj->note_private;
    -                $this->note_public			= $obj->note_public;
    -                $this->fk_project			= $obj->fk_projet;
    -                $this->modelpdf				= $obj->model_pdf;
    -                $this->last_main_doc		= $obj->last_main_doc;
    -                $this->mode_reglement_id	= $obj->fk_mode_reglement;
    -                $this->mode_reglement_code	= $obj->mode_reglement_code;
    -                $this->mode_reglement		= $obj->mode_reglement_libelle;
    -                $this->cond_reglement_id	= $obj->fk_cond_reglement;
    -                $this->cond_reglement_code	= $obj->cond_reglement_code;
    -                $this->cond_reglement		= $obj->cond_reglement_libelle;
    -                $this->cond_reglement_doc	= $obj->cond_reglement_libelle_doc;
    -                $this->fk_account           = $obj->fk_account;
    -                $this->availability_id		= $obj->fk_availability;
    -                $this->availability_code	= $obj->availability_code;
    -                $this->availability	    	= $obj->availability_label;
    -                $this->demand_reason_id		= $obj->fk_input_reason;
    -                $this->demand_reason_code	= $obj->demand_reason_code;
    -                $this->date_livraison		= $this->db->jdate($obj->date_livraison);
    -                $this->shipping_method_id   = ($obj->fk_shipping_method>0)?$obj->fk_shipping_method:null;
    -                $this->warehouse_id           = ($obj->fk_warehouse>0)?$obj->fk_warehouse:null;
    -                $this->fk_delivery_address	= $obj->fk_delivery_address;
    +				$this->ref					= $obj->ref;
    +				$this->ref_client			= $obj->ref_client;
    +				$this->ref_customer			= $obj->ref_client;
    +				$this->ref_ext				= $obj->ref_ext;
    +				$this->ref_int				= $obj->ref_int;
    +				$this->socid				= $obj->fk_soc;
    +				$this->statut				= $obj->fk_statut;
    +				$this->user_author_id		= $obj->fk_user_author;
    +				$this->user_valid           = $obj->fk_user_valid;
    +				$this->total_ht				= $obj->total_ht;
    +				$this->total_tva			= $obj->total_tva;
    +				$this->total_localtax1		= $obj->total_localtax1;
    +				$this->total_localtax2		= $obj->total_localtax2;
    +				$this->total_ttc			= $obj->total_ttc;
    +				$this->date					= $this->db->jdate($obj->date_commande);
    +				$this->date_commande		= $this->db->jdate($obj->date_commande);
    +				$this->date_creation		= $this->db->jdate($obj->date_creation);
    +				$this->date_validation		= $this->db->jdate($obj->date_valid);
    +				$this->date_modification		= $this->db->jdate($obj->tms);
    +				$this->remise				= $obj->remise;
    +				$this->remise_percent		= $obj->remise_percent;
    +				$this->remise_absolue		= $obj->remise_absolue;
    +				$this->source				= $obj->source;
    +				$this->billed				= $obj->billed;
    +				$this->note					= $obj->note_private;	// deprecated
    +				$this->note_private			= $obj->note_private;
    +				$this->note_public			= $obj->note_public;
    +				$this->fk_project			= $obj->fk_projet;
    +				$this->modelpdf				= $obj->model_pdf;
    +				$this->last_main_doc		= $obj->last_main_doc;
    +				$this->mode_reglement_id	= $obj->fk_mode_reglement;
    +				$this->mode_reglement_code	= $obj->mode_reglement_code;
    +				$this->mode_reglement		= $obj->mode_reglement_libelle;
    +				$this->cond_reglement_id	= $obj->fk_cond_reglement;
    +				$this->cond_reglement_code	= $obj->cond_reglement_code;
    +				$this->cond_reglement		= $obj->cond_reglement_libelle;
    +				$this->cond_reglement_doc	= $obj->cond_reglement_libelle_doc;
    +				$this->fk_account           = $obj->fk_account;
    +				$this->availability_id		= $obj->fk_availability;
    +				$this->availability_code	= $obj->availability_code;
    +				$this->availability	    	= $obj->availability_label;
    +				$this->demand_reason_id		= $obj->fk_input_reason;
    +				$this->demand_reason_code	= $obj->demand_reason_code;
    +				$this->date_livraison		= $this->db->jdate($obj->date_livraison);
    +				$this->shipping_method_id   = ($obj->fk_shipping_method>0)?$obj->fk_shipping_method:null;
    +				$this->warehouse_id           = ($obj->fk_warehouse>0)?$obj->fk_warehouse:null;
    +				$this->fk_delivery_address	= $obj->fk_delivery_address;
     
     				//Incoterms
     				$this->fk_incoterms = $obj->fk_incoterms;
    @@ -1673,207 +1723,211 @@ class Commande extends CommonOrder
     				$this->multicurrency_total_tva 	= $obj->multicurrency_total_tva;
     				$this->multicurrency_total_ttc 	= $obj->multicurrency_total_ttc;
     
    -                $this->extraparams			= (array) json_decode($obj->extraparams, true);
    +				$this->extraparams			= (array) json_decode($obj->extraparams, true);
     
    -                $this->lines				= array();
    +				$this->lines				= array();
     
    -                if ($this->statut == self::STATUS_DRAFT) $this->brouillon = 1;
    +				if ($this->statut == self::STATUS_DRAFT) $this->brouillon = 1;
     
    -                // Retreive all extrafield
    -                // fetch optionals attributes and labels
    -                $this->fetch_optionals();
    +				// Retreive all extrafield
    +				// fetch optionals attributes and labels
    +				$this->fetch_optionals();
     
    -                $this->db->free($result);
    +				$this->db->free($result);
     
    -                /*
    -                 * Lines
    -                 */
    -                $result=$this->fetch_lines();
    -                if ($result < 0)
    -                {
    -                    return -3;
    -                }
    -                return 1;
    -            }
    -            else
    -            {
    -                $this->error='Order with id '.$id.' not found sql='.$sql;
    -                return 0;
    -            }
    -        }
    -        else
    -        {
    -            $this->error=$this->db->error();
    -            return -1;
    -        }
    -    }
    +				/*
    +				 * Lines
    +				 */
    +				$result=$this->fetch_lines();
    +				if ($result < 0)
    +				{
    +					return -3;
    +				}
    +				return 1;
    +			}
    +			else
    +			{
    +				$this->error='Order with id '.$id.' not found sql='.$sql;
    +				return 0;
    +			}
    +		}
    +		else
    +		{
    +			$this->error=$this->db->error();
    +			return -1;
    +		}
    +	}
     
     
    -    /**
    -     *	Adding line of fixed discount in the order in DB
    -     *
    -     *	@param     int	$idremise			Id de la remise fixe
    -     *	@return    int          			>0 si ok, <0 si ko
    -     */
    -    function insert_discount($idremise)
    -    {
    -        global $langs;
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Adding line of fixed discount in the order in DB
    +	 *
    +	 *	@param     int	$idremise			Id de la remise fixe
    +	 *	@return    int          			>0 si ok, <0 si ko
    +	 */
    +	function insert_discount($idremise)
    +	{
    +        // phpcs:enable
    +		global $langs;
     
    -        include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
    -        include_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php';
    +		include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
    +		include_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php';
     
    -        $this->db->begin();
    +		$this->db->begin();
     
    -        $remise=new DiscountAbsolute($this->db);
    -        $result=$remise->fetch($idremise);
    +		$remise=new DiscountAbsolute($this->db);
    +		$result=$remise->fetch($idremise);
     
    -        if ($result > 0)
    -        {
    -            if ($remise->fk_facture)	// Protection against multiple submission
    -            {
    -                $this->error=$langs->trans("ErrorDiscountAlreadyUsed");
    -                $this->db->rollback();
    -                return -5;
    -            }
    +		if ($result > 0)
    +		{
    +			if ($remise->fk_facture)	// Protection against multiple submission
    +			{
    +				$this->error=$langs->trans("ErrorDiscountAlreadyUsed");
    +				$this->db->rollback();
    +				return -5;
    +			}
     
    -            $line = new OrderLine($this->db);
    +			$line = new OrderLine($this->db);
     
    -            $line->fk_commande=$this->id;
    -            $line->fk_remise_except=$remise->id;
    -            $line->desc=$remise->description;   	// Description ligne
    -            $line->vat_src_code=$remise->vat_src_code;
    -            $line->tva_tx=$remise->tva_tx;
    -            $line->subprice=-$remise->amount_ht;
    -            $line->price=-$remise->amount_ht;
    -            $line->fk_product=0;					// Id produit predefini
    -            $line->qty=1;
    -            $line->remise=0;
    -            $line->remise_percent=0;
    -            $line->rang=-1;
    -            $line->info_bits=2;
    +			$line->fk_commande=$this->id;
    +			$line->fk_remise_except=$remise->id;
    +			$line->desc=$remise->description;   	// Description ligne
    +			$line->vat_src_code=$remise->vat_src_code;
    +			$line->tva_tx=$remise->tva_tx;
    +			$line->subprice=-$remise->amount_ht;
    +			$line->price=-$remise->amount_ht;
    +			$line->fk_product=0;					// Id produit predefini
    +			$line->qty=1;
    +			$line->remise=0;
    +			$line->remise_percent=0;
    +			$line->rang=-1;
    +			$line->info_bits=2;
     
    -            $line->total_ht  = -$remise->amount_ht;
    -            $line->total_tva = -$remise->amount_tva;
    -            $line->total_ttc = -$remise->amount_ttc;
    +			$line->total_ht  = -$remise->amount_ht;
    +			$line->total_tva = -$remise->amount_tva;
    +			$line->total_ttc = -$remise->amount_ttc;
     
    -            $result=$line->insert();
    -            if ($result > 0)
    -            {
    -                $result=$this->update_price(1);
    -                if ($result > 0)
    -                {
    -                    $this->db->commit();
    -                    return 1;
    -                }
    -                else
    -                {
    -                    $this->db->rollback();
    -                    return -1;
    -                }
    -            }
    -            else
    -            {
    -                $this->error=$line->error;
    -                $this->db->rollback();
    -                return -2;
    -            }
    -        }
    -        else
    -        {
    -            $this->db->rollback();
    -            return -2;
    -        }
    -    }
    +			$result=$line->insert();
    +			if ($result > 0)
    +			{
    +				$result=$this->update_price(1);
    +				if ($result > 0)
    +				{
    +					$this->db->commit();
    +					return 1;
    +				}
    +				else
    +				{
    +					$this->db->rollback();
    +					return -1;
    +				}
    +			}
    +			else
    +			{
    +				$this->error=$line->error;
    +				$this->db->rollback();
    +				return -2;
    +			}
    +		}
    +		else
    +		{
    +			$this->db->rollback();
    +			return -2;
    +		}
    +	}
     
     
    -    /**
    -     *	Load array lines
    -     *
    -     *	@param		int		$only_product	Return only physical products
    -     *	@return		int						<0 if KO, >0 if OK
    -     */
    -    function fetch_lines($only_product=0)
    -    {
    -        $this->lines=array();
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Load array lines
    +	 *
    +	 *	@param		int		$only_product	Return only physical products
    +	 *	@return		int						<0 if KO, >0 if OK
    +	 */
    +	function fetch_lines($only_product=0)
    +	{
    +        // phpcs:enable
    +		$this->lines=array();
     
    -        $sql = 'SELECT l.rowid, l.fk_product, l.fk_parent_line, l.product_type, l.fk_commande, l.label as custom_label, l.description, l.price, l.qty, l.vat_src_code, l.tva_tx,';
    -        $sql.= ' l.localtax1_tx, l.localtax2_tx, l.localtax1_type, l.localtax2_type, l.fk_remise_except, l.remise_percent, l.subprice, l.fk_product_fournisseur_price as fk_fournprice, l.buy_price_ht as pa_ht, l.rang, l.info_bits, l.special_code,';
    -        $sql.= ' l.total_ht, l.total_ttc, l.total_tva, l.total_localtax1, l.total_localtax2, l.date_start, l.date_end,';
    -	    $sql.= ' l.fk_unit,';
    +		$sql = 'SELECT l.rowid, l.fk_product, l.fk_parent_line, l.product_type, l.fk_commande, l.label as custom_label, l.description, l.price, l.qty, l.vat_src_code, l.tva_tx,';
    +		$sql.= ' l.localtax1_tx, l.localtax2_tx, l.localtax1_type, l.localtax2_type, l.fk_remise_except, l.remise_percent, l.subprice, l.fk_product_fournisseur_price as fk_fournprice, l.buy_price_ht as pa_ht, l.rang, l.info_bits, l.special_code,';
    +		$sql.= ' l.total_ht, l.total_ttc, l.total_tva, l.total_localtax1, l.total_localtax2, l.date_start, l.date_end,';
    +		$sql.= ' l.fk_unit,';
     		$sql.= ' l.fk_multicurrency, l.multicurrency_code, l.multicurrency_subprice, l.multicurrency_total_ht, l.multicurrency_total_tva, l.multicurrency_total_ttc,';
    -        $sql.= ' p.ref as product_ref, p.description as product_desc, p.fk_product_type, p.label as product_label, p.tobatch as product_tobatch,';
    -        $sql.= ' p.weight, p.weight_units, p.volume, p.volume_units';
    -        $sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as l';
    -        $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON (p.rowid = l.fk_product)';
    -        $sql.= ' WHERE l.fk_commande = '.$this->id;
    -        if ($only_product) $sql .= ' AND p.fk_product_type = 0';
    -        $sql .= ' ORDER BY l.rang, l.rowid';
    +		$sql.= ' p.ref as product_ref, p.description as product_desc, p.fk_product_type, p.label as product_label, p.tobatch as product_tobatch,';
    +		$sql.= ' p.weight, p.weight_units, p.volume, p.volume_units';
    +		$sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as l';
    +		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON (p.rowid = l.fk_product)';
    +		$sql.= ' WHERE l.fk_commande = '.$this->id;
    +		if ($only_product) $sql .= ' AND p.fk_product_type = 0';
    +		$sql .= ' ORDER BY l.rang, l.rowid';
     
    -        dol_syslog(get_class($this)."::fetch_lines", LOG_DEBUG);
    -        $result = $this->db->query($sql);
    -        if ($result)
    -        {
    -            $num = $this->db->num_rows($result);
    +		dol_syslog(get_class($this)."::fetch_lines", LOG_DEBUG);
    +		$result = $this->db->query($sql);
    +		if ($result)
    +		{
    +			$num = $this->db->num_rows($result);
     
    -            $i = 0;
    -            while ($i < $num)
    -            {
    -                $objp = $this->db->fetch_object($result);
    +			$i = 0;
    +			while ($i < $num)
    +			{
    +				$objp = $this->db->fetch_object($result);
     
    -                $line = new OrderLine($this->db);
    +				$line = new OrderLine($this->db);
     
    -                $line->rowid            = $objp->rowid;
    -                $line->id               = $objp->rowid;
    -                $line->fk_commande      = $objp->fk_commande;
    -                $line->commande_id      = $objp->fk_commande;
    -                $line->label            = $objp->custom_label;
    -                $line->desc             = $objp->description;
    -                $line->description      = $objp->description;		// Description line
    -                $line->product_type     = $objp->product_type;
    -                $line->qty              = $objp->qty;
    +				$line->rowid            = $objp->rowid;
    +				$line->id               = $objp->rowid;
    +				$line->fk_commande      = $objp->fk_commande;
    +				$line->commande_id      = $objp->fk_commande;
    +				$line->label            = $objp->custom_label;
    +				$line->desc             = $objp->description;
    +				$line->description      = $objp->description;		// Description line
    +				$line->product_type     = $objp->product_type;
    +				$line->qty              = $objp->qty;
     
    -                $line->vat_src_code     = $objp->vat_src_code;
    -                $line->tva_tx           = $objp->tva_tx;
    -	            $line->localtax1_tx     = $objp->localtax1_tx;
    -                $line->localtax2_tx     = $objp->localtax2_tx;
    -	            $line->localtax1_type	= $objp->localtax1_type;
    -	            $line->localtax2_type	= $objp->localtax2_type;
    -	            $line->total_ht         = $objp->total_ht;
    -                $line->total_ttc        = $objp->total_ttc;
    -                $line->total_tva        = $objp->total_tva;
    -                $line->total_localtax1  = $objp->total_localtax1;
    -                $line->total_localtax2  = $objp->total_localtax2;
    -                $line->subprice         = $objp->subprice;
    -                $line->fk_remise_except = $objp->fk_remise_except;
    -                $line->remise_percent   = $objp->remise_percent;
    -                $line->price            = $objp->price;
    -                $line->fk_product       = $objp->fk_product;
    +				$line->vat_src_code     = $objp->vat_src_code;
    +				$line->tva_tx           = $objp->tva_tx;
    +				$line->localtax1_tx     = $objp->localtax1_tx;
    +				$line->localtax2_tx     = $objp->localtax2_tx;
    +				$line->localtax1_type	= $objp->localtax1_type;
    +				$line->localtax2_type	= $objp->localtax2_type;
    +				$line->total_ht         = $objp->total_ht;
    +				$line->total_ttc        = $objp->total_ttc;
    +				$line->total_tva        = $objp->total_tva;
    +				$line->total_localtax1  = $objp->total_localtax1;
    +				$line->total_localtax2  = $objp->total_localtax2;
    +				$line->subprice         = $objp->subprice;
    +				$line->fk_remise_except = $objp->fk_remise_except;
    +				$line->remise_percent   = $objp->remise_percent;
    +				$line->price            = $objp->price;
    +				$line->fk_product       = $objp->fk_product;
     				$line->fk_fournprice 	= $objp->fk_fournprice;
    -		      	$marginInfos			= getMarginInfos($objp->subprice, $objp->remise_percent, $objp->tva_tx, $objp->localtax1_tx, $objp->localtax2_tx, $line->fk_fournprice, $objp->pa_ht);
    -		   		$line->pa_ht 			= $marginInfos[0];
    -		    	$line->marge_tx			= $marginInfos[1];
    -		     	$line->marque_tx		= $marginInfos[2];
    -                $line->rang             = $objp->rang;
    -                $line->info_bits        = $objp->info_bits;
    -                $line->special_code		= $objp->special_code;
    -                $line->fk_parent_line	= $objp->fk_parent_line;
    +				$marginInfos			= getMarginInfos($objp->subprice, $objp->remise_percent, $objp->tva_tx, $objp->localtax1_tx, $objp->localtax2_tx, $line->fk_fournprice, $objp->pa_ht);
    +				$line->pa_ht 			= $marginInfos[0];
    +				$line->marge_tx			= $marginInfos[1];
    +				$line->marque_tx		= $marginInfos[2];
    +				$line->rang             = $objp->rang;
    +				$line->info_bits        = $objp->info_bits;
    +				$line->special_code		= $objp->special_code;
    +				$line->fk_parent_line	= $objp->fk_parent_line;
     
    -                $line->ref				= $objp->product_ref;
    -                $line->product_ref		= $objp->product_ref;
    -                $line->libelle			= $objp->product_label;
    -                $line->product_label	= $objp->product_label;
    -                $line->product_desc     = $objp->product_desc;
    -                $line->product_tobatch  = $objp->product_tobatch;
    -                $line->fk_product_type  = $objp->fk_product_type;	// Produit ou service
    -	            $line->fk_unit          = $objp->fk_unit;
    +				$line->ref				= $objp->product_ref;
    +				$line->product_ref		= $objp->product_ref;
    +				$line->libelle			= $objp->product_label;
    +				$line->product_label	= $objp->product_label;
    +				$line->product_desc     = $objp->product_desc;
    +				$line->product_tobatch  = $objp->product_tobatch;
    +				$line->fk_product_type  = $objp->fk_product_type;	// Produit ou service
    +				$line->fk_unit          = $objp->fk_unit;
     
    -	            $line->weight           = $objp->weight;
    -	            $line->weight_units     = $objp->weight_units;
    -	            $line->volume           = $objp->volume;
    -	            $line->volume_units     = $objp->volume_units;
    +				$line->weight           = $objp->weight;
    +				$line->weight_units     = $objp->weight_units;
    +				$line->volume           = $objp->volume;
    +				$line->volume_units     = $objp->volume_units;
     
    -                $line->date_start       = $this->db->jdate($objp->date_start);
    -                $line->date_end         = $this->db->jdate($objp->date_end);
    +				$line->date_start       = $this->db->jdate($objp->date_start);
    +				$line->date_end         = $this->db->jdate($objp->date_end);
     
     				// Multicurrency
     				$line->fk_multicurrency 		= $objp->fk_multicurrency;
    @@ -1883,813 +1937,830 @@ class Commande extends CommonOrder
     				$line->multicurrency_total_tva 	= $objp->multicurrency_total_tva;
     				$line->multicurrency_total_ttc 	= $objp->multicurrency_total_ttc;
     
    -           	$line->fetch_optionals();
    -
    +				$line->fetch_optionals();
     
                     $this->lines[$i] = $line;
     
    -                $i++;
    -            }
    +				$i++;
    +			}
     
    -            $this->db->free($result);
    +			$this->db->free($result);
     
    -            return 1;
    -        }
    -        else
    -        {
    -            $this->error=$this->db->error();
    -            return -3;
    -        }
    -    }
    +			return 1;
    +		}
    +		else
    +		{
    +			$this->error=$this->db->error();
    +			return -3;
    +		}
    +	}
     
     
    -    /**
    -     *	Return number of line with type product.
    -     *
    -     *	@return		int		<0 if KO, Nbr of product lines if OK
    -     */
    -    function getNbOfProductsLines()
    -    {
    -        $nb=0;
    -        foreach($this->lines as $line)
    -        {
    -            if ($line->product_type == 0) $nb++;
    -        }
    -        return $nb;
    -    }
    +	/**
    +	 *	Return number of line with type product.
    +	 *
    +	 *	@return		int		<0 if KO, Nbr of product lines if OK
    +	 */
    +	function getNbOfProductsLines()
    +	{
    +		$nb=0;
    +		foreach($this->lines as $line)
    +		{
    +			if ($line->product_type == 0) $nb++;
    +		}
    +		return $nb;
    +	}
     
    -    /**
    -     *	Return number of line with type service.
    -     *
    -     *	@return		int		<0 if KO, Nbr of service lines if OK
    -     */
    -    function getNbOfServicesLines()
    -    {
    -        $nb=0;
    -        foreach($this->lines as $line)
    -        {
    -            if ($line->product_type == 1) $nb++;
    -        }
    -        return $nb;
    -    }
    +	/**
    +	 *	Return number of line with type service.
    +	 *
    +	 *	@return		int		<0 if KO, Nbr of service lines if OK
    +	 */
    +	function getNbOfServicesLines()
    +	{
    +		$nb=0;
    +		foreach($this->lines as $line)
    +		{
    +			if ($line->product_type == 1) $nb++;
    +		}
    +		return $nb;
    +	}
     
    -    /**
    -     *	Count numbe rof shipments for this order
    -     *
    -     * 	@return     int                			<0 if KO, Nb of shipment found if OK
    -     */
    -    function getNbOfShipments()
    -    {
    -    	$nb = 0;
    +	/**
    +	 *	Count numbe rof shipments for this order
    +	 *
    +	 * 	@return     int                			<0 if KO, Nb of shipment found if OK
    +	 */
    +	function getNbOfShipments()
    +	{
    +		$nb = 0;
     
    -    	$sql = 'SELECT COUNT(DISTINCT ed.fk_expedition) as nb';
    -    	$sql.= ' FROM '.MAIN_DB_PREFIX.'expeditiondet as ed,';
    -    	$sql.= ' '.MAIN_DB_PREFIX.'commandedet as cd';
    -    	$sql.= ' WHERE';
    -    	$sql.= ' ed.fk_origin_line = cd.rowid';
    -    	$sql.= ' AND cd.fk_commande =' .$this->id;
    -    	//print $sql;
    +		$sql = 'SELECT COUNT(DISTINCT ed.fk_expedition) as nb';
    +		$sql.= ' FROM '.MAIN_DB_PREFIX.'expeditiondet as ed,';
    +		$sql.= ' '.MAIN_DB_PREFIX.'commandedet as cd';
    +		$sql.= ' WHERE';
    +		$sql.= ' ed.fk_origin_line = cd.rowid';
    +		$sql.= ' AND cd.fk_commande =' .$this->id;
    +		//print $sql;
     
    -    	dol_syslog(get_class($this)."::getNbOfShipments", LOG_DEBUG);
    -    	$resql = $this->db->query($sql);
    -    	if ($resql)
    -    	{
    -   			$obj = $this->db->fetch_object($resql);
    -   			if ($obj) $nb = $obj->nb;
    +		dol_syslog(get_class($this)."::getNbOfShipments", LOG_DEBUG);
    +		$resql = $this->db->query($sql);
    +		if ($resql)
    +		{
    +			$obj = $this->db->fetch_object($resql);
    +			if ($obj) $nb = $obj->nb;
     
    -   			$this->db->free($resql);
    -    		return $nb;
    -    	}
    -    	else
    -    	{
    -    		$this->error=$this->db->lasterror();
    -    		return -1;
    -    	}
    -    }
    +			$this->db->free($resql);
    +			return $nb;
    +		}
    +		else
    +		{
    +			$this->error=$this->db->lasterror();
    +			return -1;
    +		}
    +	}
     
    -    /**
    -     *	Load array this->expeditions of lines of shipments with nb of products sent for each order line
    -     *  Note: For a dedicated shipment, the fetch_lines can be used to load the qty_asked and qty_shipped. This function is use to return qty_shipped cumulated for the order
    -     *
    -     *	@param      int		$filtre_statut      Filter on shipment status
    -     * 	@return     int                			<0 if KO, Nb of lines found if OK
    -     */
    -    function loadExpeditions($filtre_statut=-1)
    -    {
    -        $this->expeditions = array();
    +	/**
    +	 *	Load array this->expeditions of lines of shipments with nb of products sent for each order line
    +	 *  Note: For a dedicated shipment, the fetch_lines can be used to load the qty_asked and qty_shipped. This function is use to return qty_shipped cumulated for the order
    +	 *
    +	 *	@param      int		$filtre_statut      Filter on shipment status
    +	 * 	@return     int                			<0 if KO, Nb of lines found if OK
    +	 */
    +	function loadExpeditions($filtre_statut=-1)
    +	{
    +		$this->expeditions = array();
     
    -        $sql = 'SELECT cd.rowid, cd.fk_product,';
    -        $sql.= ' sum(ed.qty) as qty';
    -        $sql.= ' FROM '.MAIN_DB_PREFIX.'expeditiondet as ed,';
    -        if ($filtre_statut >= 0) $sql.= ' '.MAIN_DB_PREFIX.'expedition as e,';
    -        $sql.= ' '.MAIN_DB_PREFIX.'commandedet as cd';
    -        $sql.= ' WHERE';
    -        if ($filtre_statut >= 0) $sql.= ' ed.fk_expedition = e.rowid AND';
    -        $sql.= ' ed.fk_origin_line = cd.rowid';
    -        $sql.= ' AND cd.fk_commande =' .$this->id;
    -        if ($this->fk_product > 0) $sql.= ' AND cd.fk_product = '.$this->fk_product;
    -        if ($filtre_statut >= 0) $sql.=' AND e.fk_statut >= '.$filtre_statut;
    -        $sql.= ' GROUP BY cd.rowid, cd.fk_product';
    -        //print $sql;
    +		$sql = 'SELECT cd.rowid, cd.fk_product,';
    +		$sql.= ' sum(ed.qty) as qty';
    +		$sql.= ' FROM '.MAIN_DB_PREFIX.'expeditiondet as ed,';
    +		if ($filtre_statut >= 0) $sql.= ' '.MAIN_DB_PREFIX.'expedition as e,';
    +		$sql.= ' '.MAIN_DB_PREFIX.'commandedet as cd';
    +		$sql.= ' WHERE';
    +		if ($filtre_statut >= 0) $sql.= ' ed.fk_expedition = e.rowid AND';
    +		$sql.= ' ed.fk_origin_line = cd.rowid';
    +		$sql.= ' AND cd.fk_commande =' .$this->id;
    +		if ($this->fk_product > 0) $sql.= ' AND cd.fk_product = '.$this->fk_product;
    +		if ($filtre_statut >= 0) $sql.=' AND e.fk_statut >= '.$filtre_statut;
    +		$sql.= ' GROUP BY cd.rowid, cd.fk_product';
    +		//print $sql;
     
    -        dol_syslog(get_class($this)."::loadExpeditions", LOG_DEBUG);
    -        $resql = $this->db->query($sql);
    -        if ($resql)
    -        {
    -            $num = $this->db->num_rows($resql);
    -            $i = 0;
    -            while ($i < $num)
    -            {
    -                $obj = $this->db->fetch_object($resql);
    -                $this->expeditions[$obj->rowid] = $obj->qty;
    -                $i++;
    -            }
    -            $this->db->free($resql);
    -            return $num;
    -        }
    -        else
    -        {
    -            $this->error=$this->db->lasterror();
    -            return -1;
    -        }
    -    }
    +		dol_syslog(get_class($this)."::loadExpeditions", LOG_DEBUG);
    +		$resql = $this->db->query($sql);
    +		if ($resql)
    +		{
    +			$num = $this->db->num_rows($resql);
    +			$i = 0;
    +			while ($i < $num)
    +			{
    +				$obj = $this->db->fetch_object($resql);
    +				$this->expeditions[$obj->rowid] = $obj->qty;
    +				$i++;
    +			}
    +			$this->db->free($resql);
    +			return $num;
    +		}
    +		else
    +		{
    +			$this->error=$this->db->lasterror();
    +			return -1;
    +		}
    +	}
     
    -    /**
    -     * Returns a array with expeditions lines number
    -     *
    -     * @return	int		Nb of shipments
    -     *
    -     * TODO deprecate, move to Shipping class
    -     */
    -    function nb_expedition()
    -    {
    -        $sql = 'SELECT count(*)';
    -        $sql.= ' FROM '.MAIN_DB_PREFIX.'expedition as e';
    -        $sql.= ', '.MAIN_DB_PREFIX.'element_element as el';
    -        $sql.= ' WHERE el.fk_source = '.$this->id;
    -        $sql.= " AND el.fk_target = e.rowid";
    -        $sql.= " AND el.targettype = 'shipping'";
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 * Returns a array with expeditions lines number
    +	 *
    +	 * @return	int		Nb of shipments
    +	 *
    +	 * TODO deprecate, move to Shipping class
    +	 */
    +	function nb_expedition()
    +	{
    +        // phpcs:enable
    +		$sql = 'SELECT count(*)';
    +		$sql.= ' FROM '.MAIN_DB_PREFIX.'expedition as e';
    +		$sql.= ', '.MAIN_DB_PREFIX.'element_element as el';
    +		$sql.= ' WHERE el.fk_source = '.$this->id;
    +		$sql.= " AND el.fk_target = e.rowid";
    +		$sql.= " AND el.targettype = 'shipping'";
     
    -        $resql = $this->db->query($sql);
    -        if ($resql)
    -        {
    -            $row = $this->db->fetch_row($resql);
    -            return $row[0];
    -        }
    -        else dol_print_error($this->db);
    -    }
    +		$resql = $this->db->query($sql);
    +		if ($resql)
    +		{
    +			$row = $this->db->fetch_row($resql);
    +			return $row[0];
    +		}
    +		else dol_print_error($this->db);
    +	}
     
    -    /**
    -     *	Return a array with the pending stock by product
    -     *
    -     *	@param      int		$filtre_statut      Filtre sur statut
    -     *	@return     int                 		0 si OK, <0 si KO
    -     *
    -     *	TODO		FONCTION NON FINIE A FINIR
    -     */
    -    function stock_array($filtre_statut=self::STATUS_CANCELED)
    -    {
    -        $this->stocks = array();
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Return a array with the pending stock by product
    +	 *
    +	 *	@param      int		$filtre_statut      Filtre sur statut
    +	 *	@return     int                 		0 si OK, <0 si KO
    +	 *
    +	 *	TODO		FONCTION NON FINIE A FINIR
    +	 */
    +	function stock_array($filtre_statut=self::STATUS_CANCELED)
    +	{
    +        // phpcs:enable
    +		$this->stocks = array();
     
    -        // Tableau des id de produit de la commande
    +		// Tableau des id de produit de la commande
     		$array_of_product=array();
     
    -        // Recherche total en stock pour chaque produit
    -        // TODO $array_of_product est défini vide juste au dessus !!
    -        if (count($array_of_product))
    -        {
    -            $sql = "SELECT fk_product, sum(ps.reel) as total";
    -            $sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps";
    -            $sql.= " WHERE ps.fk_product IN (".join(',',$array_of_product).")";
    -            $sql.= ' GROUP BY fk_product ';
    -            $resql = $this->db->query($sql);
    -            if ($resql)
    -            {
    -                $num = $this->db->num_rows($resql);
    -                $i = 0;
    -                while ($i < $num)
    -                {
    -                    $obj = $this->db->fetch_object($resql);
    -                    $this->stocks[$obj->fk_product] = $obj->total;
    -                    $i++;
    -                }
    -                $this->db->free($resql);
    -            }
    -        }
    -        return 0;
    -    }
    +		// Recherche total en stock pour chaque produit
    +		// TODO $array_of_product est défini vide juste au dessus !!
    +		if (count($array_of_product))
    +		{
    +			$sql = "SELECT fk_product, sum(ps.reel) as total";
    +			$sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps";
    +			$sql.= " WHERE ps.fk_product IN (".join(',',$array_of_product).")";
    +			$sql.= ' GROUP BY fk_product ';
    +			$resql = $this->db->query($sql);
    +			if ($resql)
    +			{
    +				$num = $this->db->num_rows($resql);
    +				$i = 0;
    +				while ($i < $num)
    +				{
    +					$obj = $this->db->fetch_object($resql);
    +					$this->stocks[$obj->fk_product] = $obj->total;
    +					$i++;
    +				}
    +				$this->db->free($resql);
    +			}
    +		}
    +		return 0;
    +	}
     
    -    /**
    -     *  Delete an order line
    -     *
    -     *	@param      User	$user		User object
    -     *  @param      int		$lineid		Id of line to delete
    -     *  @return     int        		 	>0 if OK, 0 if nothing to do, <0 if KO
    -     */
    -    function deleteline($user=null, $lineid=0)
    -    {
    -        if ($this->statut == self::STATUS_DRAFT)
    -        {
    -            $this->db->begin();
    +	/**
    +	 *  Delete an order line
    +	 *
    +	 *	@param      User	$user		User object
    +	 *  @param      int		$lineid		Id of line to delete
    +	 *  @return     int        		 	>0 if OK, 0 if nothing to do, <0 if KO
    +	 */
    +	function deleteline($user=null, $lineid=0)
    +	{
    +		if ($this->statut == self::STATUS_DRAFT)
    +		{
    +			$this->db->begin();
     
    -            $sql = "SELECT fk_product, qty";
    -            $sql.= " FROM ".MAIN_DB_PREFIX."commandedet";
    -            $sql.= " WHERE rowid = ".$lineid;
    +			$sql = "SELECT fk_product, qty";
    +			$sql.= " FROM ".MAIN_DB_PREFIX."commandedet";
    +			$sql.= " WHERE rowid = ".$lineid;
     
    -            $result = $this->db->query($sql);
    -            if ($result)
    -            {
    -                $obj = $this->db->fetch_object($result);
    +			$result = $this->db->query($sql);
    +			if ($result)
    +			{
    +				$obj = $this->db->fetch_object($result);
     
    -                if ($obj)
    -                {
    -                    $product = new Product($this->db);
    -                    $product->id = $obj->fk_product;
    +				if ($obj)
    +				{
    +					$product = new Product($this->db);
    +					$product->id = $obj->fk_product;
     
    -                    // Delete line
    -                    $line = new OrderLine($this->db);
    +					// Delete line
    +					$line = new OrderLine($this->db);
     
    -                    // For triggers
    -                    $line->fetch($lineid);
    +					// For triggers
    +					$line->fetch($lineid);
     
    -                    if ($line->delete($user) > 0)
    -                    {
    -                        $result=$this->update_price(1);
    -
    -                        if ($result > 0)
    -                        {
    -                            $this->db->commit();
    -                            return 1;
    -                        }
    -                        else
    -                        {
    -                            $this->db->rollback();
    -                            $this->error=$this->db->lasterror();
    -                            return -1;
    -                        }
    -                    }
    -                    else
    -                    {
    -                        $this->db->rollback();
    -                        $this->error=$line->error;
    -                        return -1;
    -                    }
    -                }
    -                else
    -                {
    -                    $this->db->rollback();
    -                    return 0;
    -                }
    -            }
    -            else
    -            {
    -                $this->db->rollback();
    -                $this->error=$this->db->lasterror();
    -                return -1;
    -            }
    -        }
    -        else
    -        {
    -        	$this->error='ErrorDeleteLineNotAllowedByObjectStatus';
    -        	return -1;
    -        }
    -    }
    -
    -    /**
    -     * 	Applique une remise relative
    -     *
    -     * 	@param     	User		$user		User qui positionne la remise
    -     * 	@param     	float		$remise		Discount (percent)
    -     * 	@param     	int			$notrigger	1=Does not execute triggers, 0= execute triggers
    -     *	@return		int 					<0 if KO, >0 if OK
    -     */
    -    function set_remise($user, $remise, $notrigger=0)
    -    {
    -        $remise=trim($remise)?trim($remise):0;
    -
    -        if ($user->rights->commande->creer)
    -        {
    -        	$error=0;
    -
    -        	$this->db->begin();
    -
    -            $remise=price2num($remise);
    -
    -            $sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    -            $sql.= ' SET remise_percent = '.$remise;
    -            $sql.= ' WHERE rowid = '.$this->id.' AND fk_statut = '.self::STATUS_DRAFT.' ;';
    -
    -            dol_syslog(__METHOD__, LOG_DEBUG);
    -            $resql=$this->db->query($sql);
    -            if (!$resql)
    -            {
    -            	$this->errors[]=$this->db->error();
    -            	$error++;
    -            }
    -
    -            if (! $error)
    -            {
    -            	$this->oldcopy= clone $this;
    -            	$this->remise_percent = $remise;
    -            	$this->update_price(1);
    -            }
    -
    -            if (! $notrigger && empty($error))
    -            {
    -            	// Call trigger
    -            	$result=$this->call_trigger('ORDER_MODIFY',$user);
    -            	if ($result < 0) $error++;
    -            	// End call triggers
    -            }
    -
    -            if (! $error)
    -            {
    -            	$this->db->commit();
    -            	return 1;
    -            }
    -            else
    -            {
    -            	foreach($this->errors as $errmsg)
    -            	{
    -            		dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    -            		$this->error.=($this->error?', '.$errmsg:$errmsg);
    -            	}
    -            	$this->db->rollback();
    -            	return -1*$error;
    -            }
    -        }
    -    }
    -
    -
    -    /**
    -     * 		Applique une remise absolue
    -     *
    -     * 		@param     	User		$user 		User qui positionne la remise
    -     * 		@param     	float		$remise		Discount
    -     * 		@param     	int			$notrigger	1=Does not execute triggers, 0= execute triggers
    -     *		@return		int 					<0 if KO, >0 if OK
    -     */
    -    function set_remise_absolue($user, $remise, $notrigger=0)
    -    {
    -        $remise=trim($remise)?trim($remise):0;
    -
    -        if ($user->rights->commande->creer)
    -        {
    -        	$error=0;
    -
    -        	$this->db->begin();
    -
    -            $remise=price2num($remise);
    -
    -            $sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    -            $sql.= ' SET remise_absolue = '.$remise;
    -            $sql.= ' WHERE rowid = '.$this->id.' AND fk_statut = '.self::STATUS_DRAFT.' ;';
    -
    -            dol_syslog(__METHOD__, LOG_DEBUG);
    -            $resql=$this->db->query($sql);
    -            if (!$resql)
    -            {
    -            	$this->errors[]=$this->db->error();
    -            	$error++;
    -            }
    -
    -            if (! $error)
    -            {
    -            	$this->oldcopy= clone $this;
    -            	$this->remise_absolue = $remise;
    -            	$this->update_price(1);
    -            }
    -
    -            if (! $notrigger && empty($error))
    -            {
    -            	// Call trigger
    -            	$result=$this->call_trigger('ORDER_MODIFY',$user);
    -            	if ($result < 0) $error++;
    -            	// End call triggers
    -            }
    -
    -            if (! $error)
    -            {
    -            	$this->db->commit();
    -            	return 1;
    -            }
    -            else
    -            {
    -            	foreach($this->errors as $errmsg)
    -            	{
    -            		dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    -            		$this->error.=($this->error?', '.$errmsg:$errmsg);
    -            	}
    -            	$this->db->rollback();
    -            	return -1*$error;
    -            }
    -        }
    -    }
    -
    -
    -    /**
    -     *	Set the order date
    -     *
    -     *	@param      User	$user       Object user making change
    -     *	@param      int		$date		Date
    -     * 	@param     	int		$notrigger	1=Does not execute triggers, 0= execute triggers
    -     *	@return     int         		<0 if KO, >0 if OK
    -     */
    -    function set_date($user, $date, $notrigger=0)
    -    {
    -        if ($user->rights->commande->creer)
    -        {
    -        	$error=0;
    -
    -        	$this->db->begin();
    -
    -            $sql = "UPDATE ".MAIN_DB_PREFIX."commande";
    -            $sql.= " SET date_commande = ".($date ? "'".$this->db->idate($date)."'" : 'null');
    -            $sql.= " WHERE rowid = ".$this->id." AND fk_statut = ".self::STATUS_DRAFT;
    -
    -            dol_syslog(__METHOD__, LOG_DEBUG);
    -            $resql=$this->db->query($sql);
    -            if (!$resql)
    -            {
    -            	$this->errors[]=$this->db->error();
    -            	$error++;
    -            }
    -
    -            if (! $error)
    -            {
    -            	$this->oldcopy= clone $this;
    -            	$this->date = $date;
    -            }
    -
    -            if (! $notrigger && empty($error))
    -            {
    -            	// Call trigger
    -            	$result=$this->call_trigger('ORDER_MODIFY',$user);
    -            	if ($result < 0) $error++;
    -            	// End call triggers
    -            }
    -
    -            if (! $error)
    -            {
    -            	$this->db->commit();
    -            	return 1;
    -            }
    -            else
    -            {
    -            	foreach($this->errors as $errmsg)
    -            	{
    -            		dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    -            		$this->error.=($this->error?', '.$errmsg:$errmsg);
    -            	}
    -            	$this->db->rollback();
    -            	return -1*$error;
    -            }
    -        }
    -        else
    -        {
    -            return -2;
    -        }
    -    }
    -
    -    /**
    -     *	Set the planned delivery date
    -     *
    -     *	@param      User	$user        		Objet utilisateur qui modifie
    -     *	@param      int		$date_livraison     Date de livraison
    -     *  @param     	int		$notrigger			1=Does not execute triggers, 0= execute triggers
    -     *	@return     int         				<0 si ko, >0 si ok
    -     */
    -    function set_date_livraison($user, $date_livraison, $notrigger=0)
    -    {
    -        if ($user->rights->commande->creer)
    -        {
    -        	$error=0;
    -
    -        	$this->db->begin();
    -
    -            $sql = "UPDATE ".MAIN_DB_PREFIX."commande";
    -            $sql.= " SET date_livraison = ".($date_livraison ? "'".$this->db->idate($date_livraison)."'" : 'null');
    -            $sql.= " WHERE rowid = ".$this->id;
    -
    -            dol_syslog(__METHOD__, LOG_DEBUG);
    -            $resql=$this->db->query($sql);
    -            if (!$resql)
    -            {
    -            	$this->errors[]=$this->db->error();
    -            	$error++;
    -            }
    -
    -            if (! $error)
    -            {
    -            	$this->oldcopy= clone $this;
    -            	$this->date_livraison = $date_livraison;
    -            }
    -
    -            if (! $notrigger && empty($error))
    -            {
    -            	// Call trigger
    -            	$result=$this->call_trigger('ORDER_MODIFY',$user);
    -            	if ($result < 0) $error++;
    -            	// End call triggers
    -            }
    -
    -            if (! $error)
    -            {
    -            	$this->db->commit();
    -            	return 1;
    -            }
    -            else
    -            {
    -            	foreach($this->errors as $errmsg)
    -            	{
    -            		dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    -            		$this->error.=($this->error?', '.$errmsg:$errmsg);
    -            	}
    -            	$this->db->rollback();
    -            	return -1*$error;
    -            }
    -        }
    -        else
    -        {
    -            return -2;
    -        }
    -    }
    -
    -    /**
    -     *  Return list of orders (eventuelly filtered on a user) into an array
    -     *
    -     *  @param		int		$shortlist		0=Return array[id]=ref, 1=Return array[](id=>id,ref=>ref,name=>name)
    -     *  @param      int		$draft      	0=not draft, 1=draft
    -     *  @param      User	$excluser      	Objet user to exclude
    -     *  @param    	int		$socid			Id third pary
    -     *  @param    	int		$limit			For pagination
    -     *  @param    	int		$offset			For pagination
    -     *  @param    	string	$sortfield		Sort criteria
    -     *  @param    	string	$sortorder		Sort order
    -     *  @return     int             		-1 if KO, array with result if OK
    -     */
    -    function liste_array($shortlist=0, $draft=0, $excluser='', $socid=0, $limit=0, $offset=0, $sortfield='c.date_commande', $sortorder='DESC')
    -    {
    -        global $user;
    -
    -        $ga = array();
    -
    -        $sql = "SELECT s.rowid, s.nom as name, s.client,";
    -        $sql.= " c.rowid as cid, c.ref";
    -        if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", sc.fk_soc, sc.fk_user";
    -        $sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."commande as c";
    -		if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -        $sql.= " WHERE c.entity IN (".getEntity('commande').")";
    -        $sql.= " AND c.fk_soc = s.rowid";
    -        if (! $user->rights->societe->client->voir && ! $socid) //restriction
    -        {
    -        	$sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
    -        }
    -        if ($socid) $sql.= " AND s.rowid = ".$socid;
    -        if ($draft) $sql.= " AND c.fk_statut = ".self::STATUS_DRAFT;
    -        if (is_object($excluser)) $sql.= " AND c.fk_user_author <> ".$excluser->id;
    -        $sql.= $this->db->order($sortfield,$sortorder);
    -        $sql.= $this->db->plimit($limit,$offset);
    -
    -        $result=$this->db->query($sql);
    -        if ($result)
    -        {
    -            $numc = $this->db->num_rows($result);
    -            if ($numc)
    -            {
    -                $i = 0;
    -                while ($i < $numc)
    -                {
    -                    $obj = $this->db->fetch_object($result);
    -
    -                    if ($shortlist == 1)
    -                    {
    -                    	$ga[$obj->cid] = $obj->ref;
    -                    }
    -                    else if ($shortlist == 2)
    -                    {
    -                    	$ga[$obj->cid] = $obj->ref.' ('.$obj->name.')';
    -                    }
    -                    else
    +					if ($line->delete($user) > 0)
     					{
    -                    	$ga[$i]['id']	= $obj->cid;
    -                    	$ga[$i]['ref'] 	= $obj->ref;
    -                    	$ga[$i]['name'] = $obj->name;
    -                    }
    -                    $i++;
    -                }
    -            }
    -            return $ga;
    -        }
    -        else
    -        {
    -            dol_print_error($this->db);
    -            return -1;
    -        }
    -    }
    +						$result=$this->update_price(1);
     
    -    /**
    -     *	Update delivery delay
    -     *
    -     *	@param      int		$availability_id	Id du nouveau mode
    -     *  @param     	int		$notrigger			1=Does not execute triggers, 0= execute triggers
    -     *	@return     int         				>0 if OK, <0 if KO
    -     */
    -    function availability($availability_id, $notrigger=0)
    -    {
    -        global $user;
    +						if ($result > 0)
    +						{
    +							$this->db->commit();
    +							return 1;
    +						}
    +						else
    +						{
    +							$this->db->rollback();
    +							$this->error=$this->db->lasterror();
    +							return -1;
    +						}
    +					}
    +					else
    +					{
    +						$this->db->rollback();
    +						$this->error=$line->error;
    +						return -1;
    +					}
    +				}
    +				else
    +				{
    +					$this->db->rollback();
    +					return 0;
    +				}
    +			}
    +			else
    +			{
    +				$this->db->rollback();
    +				$this->error=$this->db->lasterror();
    +				return -1;
    +			}
    +		}
    +		else
    +		{
    +			$this->error='ErrorDeleteLineNotAllowedByObjectStatus';
    +			return -1;
    +		}
    +	}
     
    -        dol_syslog('Commande::availability('.$availability_id.')');
    -        if ($this->statut >= self::STATUS_DRAFT)
    -        {
    -        	$error=0;
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 * 	Applique une remise relative
    +	 *
    +	 * 	@param     	User		$user		User qui positionne la remise
    +	 * 	@param     	float		$remise		Discount (percent)
    +	 * 	@param     	int			$notrigger	1=Does not execute triggers, 0= execute triggers
    +	 *	@return		int 					<0 if KO, >0 if OK
    +	 */
    +	function set_remise($user, $remise, $notrigger=0)
    +	{
    +        // phpcs:enable
    +		$remise=trim($remise)?trim($remise):0;
     
    -        	$this->db->begin();
    +		if ($user->rights->commande->creer)
    +		{
    +			$error=0;
     
    -            $sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    -            $sql .= ' SET fk_availability = '.$availability_id;
    -            $sql .= ' WHERE rowid='.$this->id;
    +			$this->db->begin();
     
    -            dol_syslog(__METHOD__, LOG_DEBUG);
    -            $resql=$this->db->query($sql);
    -            if (!$resql)
    -            {
    -            	$this->errors[]=$this->db->error();
    -            	$error++;
    -            }
    +			$remise=price2num($remise);
     
    -            if (! $error)
    -            {
    -            	$this->oldcopy= clone $this;
    -            	$this->availability_id = $availability_id;
    -            }
    +			$sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    +			$sql.= ' SET remise_percent = '.$remise;
    +			$sql.= ' WHERE rowid = '.$this->id.' AND fk_statut = '.self::STATUS_DRAFT.' ;';
     
    -            if (! $notrigger && empty($error))
    -            {
    -            	// Call trigger
    -            	$result=$this->call_trigger('ORDER_MODIFY',$user);
    -            	if ($result < 0) $error++;
    -            	// End call triggers
    -            }
    +			dol_syslog(__METHOD__, LOG_DEBUG);
    +			$resql=$this->db->query($sql);
    +			if (!$resql)
    +			{
    +				$this->errors[]=$this->db->error();
    +				$error++;
    +			}
     
    -            if (! $error)
    -            {
    -            	$this->db->commit();
    -            	return 1;
    -            }
    -            else
    -            {
    -            	foreach($this->errors as $errmsg)
    -            	{
    -            		dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    -            		$this->error.=($this->error?', '.$errmsg:$errmsg);
    -            	}
    -            	$this->db->rollback();
    -            	return -1*$error;
    -            }
    -        }
    -        else
    -        {
    -        	$error_str='Command status do not meet requirement '.$this->statut;
    -            dol_syslog(__METHOD__.$error_str, LOG_ERR);
    -            $this->error=$error_str;
    -            $this->errors[]= $this->error;
    -            return -2;
    -        }
    -    }
    +			if (! $error)
    +			{
    +				$this->oldcopy= clone $this;
    +				$this->remise_percent = $remise;
    +				$this->update_price(1);
    +			}
     
    -    /**
    -     *	Update order demand_reason
    -     *
    -     *  @param      int		$demand_reason_id	Id of new demand
    -     *  @param     	int		$notrigger			1=Does not execute triggers, 0= execute triggers
    -     *  @return     int        			 		>0 if ok, <0 if ko
    -     */
    -    function demand_reason($demand_reason_id, $notrigger=0)
    -    {
    -        global $user;
    +			if (! $notrigger && empty($error))
    +			{
    +				// Call trigger
    +				$result=$this->call_trigger('ORDER_MODIFY',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
    +			}
     
    -        dol_syslog('Commande::demand_reason('.$demand_reason_id.')');
    -        if ($this->statut >= self::STATUS_DRAFT)
    -        {
    -        	$error=0;
    +			if (! $error)
    +			{
    +				$this->db->commit();
    +				return 1;
    +			}
    +			else
    +			{
    +				foreach($this->errors as $errmsg)
    +				{
    +					dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    +					$this->error.=($this->error?', '.$errmsg:$errmsg);
    +				}
    +				$this->db->rollback();
    +				return -1*$error;
    +			}
    +		}
    +	}
     
    -        	$this->db->begin();
     
    -            $sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    -            $sql .= ' SET fk_input_reason = '.$demand_reason_id;
    -            $sql .= ' WHERE rowid='.$this->id;
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 * 		Applique une remise absolue
    +	 *
    +	 * 		@param     	User		$user 		User qui positionne la remise
    +	 * 		@param     	float		$remise		Discount
    +	 * 		@param     	int			$notrigger	1=Does not execute triggers, 0= execute triggers
    +	 *		@return		int 					<0 if KO, >0 if OK
    +	 */
    +	function set_remise_absolue($user, $remise, $notrigger=0)
    +	{
    +        // phpcs:enable
    +		$remise=trim($remise)?trim($remise):0;
     
    -            dol_syslog(__METHOD__, LOG_DEBUG);
    -            $resql=$this->db->query($sql);
    -            if (!$resql)
    -            {
    -            	$this->errors[]=$this->db->error();
    -            	$error++;
    -            }
    +		if ($user->rights->commande->creer)
    +		{
    +			$error=0;
     
    -            if (! $error)
    -            {
    -            	$this->oldcopy= clone $this;
    -            	$this->demand_reason_id = $demand_reason_id;
    -            }
    +			$this->db->begin();
     
    -            if (! $notrigger && empty($error))
    -            {
    -            	// Call trigger
    -            	$result=$this->call_trigger('ORDER_MODIFY',$user);
    -            	if ($result < 0) $error++;
    -            	// End call triggers
    -            }
    +			$remise=price2num($remise);
     
    -            if (! $error)
    -            {
    -            	$this->db->commit();
    -            	return 1;
    -            }
    -            else
    -            {
    -            	foreach($this->errors as $errmsg)
    -            	{
    -            		dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    -            		$this->error.=($this->error?', '.$errmsg:$errmsg);
    -            	}
    -            	$this->db->rollback();
    -            	return -1*$error;
    -            }
    -        }
    -        else
    -        {
    -        	$error_str='order status do not meet requirement '.$this->statut;
    -        	dol_syslog(__METHOD__.$error_str, LOG_ERR);
    -        	$this->error=$error_str;
    -        	$this->errors[]= $this->error;
    -            return -2;
    -        }
    -    }
    +			$sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    +			$sql.= ' SET remise_absolue = '.$remise;
    +			$sql.= ' WHERE rowid = '.$this->id.' AND fk_statut = '.self::STATUS_DRAFT.' ;';
     
    -    /**
    -     *	Set customer ref
    -     *
    -     *	@param      User	$user           User that make change
    -     *	@param      string	$ref_client     Customer ref
    -     *  @param     	int		$notrigger		1=Does not execute triggers, 0= execute triggers
    -     *	@return     int             		<0 if KO, >0 if OK
    -     */
    -    function set_ref_client($user, $ref_client, $notrigger=0)
    -    {
    -        if ($user->rights->commande->creer)
    -        {
    -        	$error=0;
    +			dol_syslog(__METHOD__, LOG_DEBUG);
    +			$resql=$this->db->query($sql);
    +			if (!$resql)
    +			{
    +				$this->errors[]=$this->db->error();
    +				$error++;
    +			}
     
    -        	$this->db->begin();
    +			if (! $error)
    +			{
    +				$this->oldcopy= clone $this;
    +				$this->remise_absolue = $remise;
    +				$this->update_price(1);
    +			}
     
    -            $sql = 'UPDATE '.MAIN_DB_PREFIX.'commande SET';
    -            $sql.= ' ref_client = '.(empty($ref_client) ? 'NULL' : '\''.$this->db->escape($ref_client).'\'');
    -            $sql.= ' WHERE rowid = '.$this->id;
    +			if (! $notrigger && empty($error))
    +			{
    +				// Call trigger
    +				$result=$this->call_trigger('ORDER_MODIFY',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
    +			}
     
    -            dol_syslog(__METHOD__.' this->id='.$this->id.', ref_client='.$ref_client, LOG_DEBUG);
    -            $resql=$this->db->query($sql);
    -            if (!$resql)
    -            {
    -            	$this->errors[]=$this->db->error();
    -            	$error++;
    -            }
    +			if (! $error)
    +			{
    +				$this->db->commit();
    +				return 1;
    +			}
    +			else
    +			{
    +				foreach($this->errors as $errmsg)
    +				{
    +					dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    +					$this->error.=($this->error?', '.$errmsg:$errmsg);
    +				}
    +				$this->db->rollback();
    +				return -1*$error;
    +			}
    +		}
    +	}
     
    -            if (! $error)
    -            {
    -            	$this->oldcopy= clone $this;
    -            	$this->ref_client = $ref_client;
    -            }
     
    -            if (! $notrigger && empty($error))
    -            {
    -            	// Call trigger
    -            	$result=$this->call_trigger('ORDER_MODIFY',$user);
    -            	if ($result < 0) $error++;
    -            	// End call triggers
    -            }
    -            if (! $error)
    -            {
    -            	$this->db->commit();
    -            	return 1;
    -            }
    -            else
    -            {
    -            	foreach($this->errors as $errmsg)
    -            	{
    -            		dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    -            		$this->error.=($this->error?', '.$errmsg:$errmsg);
    -            	}
    -            	$this->db->rollback();
    -            	return -1*$error;
    -            }
    -        }
    -        else
    -        {
    -            return -1;
    -        }
    -    }
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Set the order date
    +	 *
    +	 *	@param      User	$user       Object user making change
    +	 *	@param      int		$date		Date
    +	 * 	@param     	int		$notrigger	1=Does not execute triggers, 0= execute triggers
    +	 *	@return     int         		<0 if KO, >0 if OK
    +	 */
    +	function set_date($user, $date, $notrigger=0)
    +	{
    +        // phpcs:enable
    +		if ($user->rights->commande->creer)
    +		{
    +			$error=0;
    +
    +			$this->db->begin();
    +
    +			$sql = "UPDATE ".MAIN_DB_PREFIX."commande";
    +			$sql.= " SET date_commande = ".($date ? "'".$this->db->idate($date)."'" : 'null');
    +			$sql.= " WHERE rowid = ".$this->id." AND fk_statut = ".self::STATUS_DRAFT;
    +
    +			dol_syslog(__METHOD__, LOG_DEBUG);
    +			$resql=$this->db->query($sql);
    +			if (!$resql)
    +			{
    +				$this->errors[]=$this->db->error();
    +				$error++;
    +			}
    +
    +			if (! $error)
    +			{
    +				$this->oldcopy= clone $this;
    +				$this->date = $date;
    +			}
    +
    +			if (! $notrigger && empty($error))
    +			{
    +				// Call trigger
    +				$result=$this->call_trigger('ORDER_MODIFY',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
    +			}
    +
    +			if (! $error)
    +			{
    +				$this->db->commit();
    +				return 1;
    +			}
    +			else
    +			{
    +				foreach($this->errors as $errmsg)
    +				{
    +					dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    +					$this->error.=($this->error?', '.$errmsg:$errmsg);
    +				}
    +				$this->db->rollback();
    +				return -1*$error;
    +			}
    +		}
    +		else
    +		{
    +			return -2;
    +		}
    +	}
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Set the planned delivery date
    +	 *
    +	 *	@param      User	$user        		Objet utilisateur qui modifie
    +	 *	@param      int		$date_livraison     Date de livraison
    +	 *  @param     	int		$notrigger			1=Does not execute triggers, 0= execute triggers
    +	 *	@return     int         				<0 si ko, >0 si ok
    +	 */
    +	function set_date_livraison($user, $date_livraison, $notrigger=0)
    +	{
    +        // phpcs:enable
    +		if ($user->rights->commande->creer)
    +		{
    +			$error=0;
    +
    +			$this->db->begin();
    +
    +			$sql = "UPDATE ".MAIN_DB_PREFIX."commande";
    +			$sql.= " SET date_livraison = ".($date_livraison ? "'".$this->db->idate($date_livraison)."'" : 'null');
    +			$sql.= " WHERE rowid = ".$this->id;
    +
    +			dol_syslog(__METHOD__, LOG_DEBUG);
    +			$resql=$this->db->query($sql);
    +			if (!$resql)
    +			{
    +				$this->errors[]=$this->db->error();
    +				$error++;
    +			}
    +
    +			if (! $error)
    +			{
    +				$this->oldcopy= clone $this;
    +				$this->date_livraison = $date_livraison;
    +			}
    +
    +			if (! $notrigger && empty($error))
    +			{
    +				// Call trigger
    +				$result=$this->call_trigger('ORDER_MODIFY',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
    +			}
    +
    +			if (! $error)
    +			{
    +				$this->db->commit();
    +				return 1;
    +			}
    +			else
    +			{
    +				foreach($this->errors as $errmsg)
    +				{
    +					dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    +					$this->error.=($this->error?', '.$errmsg:$errmsg);
    +				}
    +				$this->db->rollback();
    +				return -1*$error;
    +			}
    +		}
    +		else
    +		{
    +			return -2;
    +		}
    +	}
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *  Return list of orders (eventuelly filtered on a user) into an array
    +	 *
    +	 *  @param		int		$shortlist		0=Return array[id]=ref, 1=Return array[](id=>id,ref=>ref,name=>name)
    +	 *  @param      int		$draft      	0=not draft, 1=draft
    +	 *  @param      User	$excluser      	Objet user to exclude
    +	 *  @param    	int		$socid			Id third pary
    +	 *  @param    	int		$limit			For pagination
    +	 *  @param    	int		$offset			For pagination
    +	 *  @param    	string	$sortfield		Sort criteria
    +	 *  @param    	string	$sortorder		Sort order
    +	 *  @return     int             		-1 if KO, array with result if OK
    +	 */
    +	function liste_array($shortlist=0, $draft=0, $excluser='', $socid=0, $limit=0, $offset=0, $sortfield='c.date_commande', $sortorder='DESC')
    +	{
    +        // phpcs:enable
    +		global $user;
    +
    +		$ga = array();
    +
    +		$sql = "SELECT s.rowid, s.nom as name, s.client,";
    +		$sql.= " c.rowid as cid, c.ref";
    +		if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", sc.fk_soc, sc.fk_user";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."commande as c";
    +		if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +		$sql.= " WHERE c.entity IN (".getEntity('commande').")";
    +		$sql.= " AND c.fk_soc = s.rowid";
    +		if (! $user->rights->societe->client->voir && ! $socid) //restriction
    +		{
    +			$sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
    +		}
    +		if ($socid) $sql.= " AND s.rowid = ".$socid;
    +		if ($draft) $sql.= " AND c.fk_statut = ".self::STATUS_DRAFT;
    +		if (is_object($excluser)) $sql.= " AND c.fk_user_author <> ".$excluser->id;
    +		$sql.= $this->db->order($sortfield,$sortorder);
    +		$sql.= $this->db->plimit($limit,$offset);
    +
    +		$result=$this->db->query($sql);
    +		if ($result)
    +		{
    +			$numc = $this->db->num_rows($result);
    +			if ($numc)
    +			{
    +				$i = 0;
    +				while ($i < $numc)
    +				{
    +					$obj = $this->db->fetch_object($result);
    +
    +					if ($shortlist == 1)
    +					{
    +						$ga[$obj->cid] = $obj->ref;
    +					}
    +					else if ($shortlist == 2)
    +					{
    +						$ga[$obj->cid] = $obj->ref.' ('.$obj->name.')';
    +					}
    +					else
    +					{
    +						$ga[$i]['id']	= $obj->cid;
    +						$ga[$i]['ref'] 	= $obj->ref;
    +						$ga[$i]['name'] = $obj->name;
    +					}
    +					$i++;
    +				}
    +			}
    +			return $ga;
    +		}
    +		else
    +		{
    +			dol_print_error($this->db);
    +			return -1;
    +		}
    +	}
    +
    +	/**
    +	 *	Update delivery delay
    +	 *
    +	 *	@param      int		$availability_id	Id du nouveau mode
    +	 *  @param     	int		$notrigger			1=Does not execute triggers, 0= execute triggers
    +	 *	@return     int         				>0 if OK, <0 if KO
    +	 */
    +	function availability($availability_id, $notrigger=0)
    +	{
    +		global $user;
    +
    +		dol_syslog('Commande::availability('.$availability_id.')');
    +		if ($this->statut >= self::STATUS_DRAFT)
    +		{
    +			$error=0;
    +
    +			$this->db->begin();
    +
    +			$sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    +			$sql .= ' SET fk_availability = '.$availability_id;
    +			$sql .= ' WHERE rowid='.$this->id;
    +
    +			dol_syslog(__METHOD__, LOG_DEBUG);
    +			$resql=$this->db->query($sql);
    +			if (!$resql)
    +			{
    +				$this->errors[]=$this->db->error();
    +				$error++;
    +			}
    +
    +			if (! $error)
    +			{
    +				$this->oldcopy= clone $this;
    +				$this->availability_id = $availability_id;
    +			}
    +
    +			if (! $notrigger && empty($error))
    +			{
    +				// Call trigger
    +				$result=$this->call_trigger('ORDER_MODIFY',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
    +			}
    +
    +			if (! $error)
    +			{
    +				$this->db->commit();
    +				return 1;
    +			}
    +			else
    +			{
    +				foreach($this->errors as $errmsg)
    +				{
    +					dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    +					$this->error.=($this->error?', '.$errmsg:$errmsg);
    +				}
    +				$this->db->rollback();
    +				return -1*$error;
    +			}
    +		}
    +		else
    +		{
    +			$error_str='Command status do not meet requirement '.$this->statut;
    +			dol_syslog(__METHOD__.$error_str, LOG_ERR);
    +			$this->error=$error_str;
    +			$this->errors[]= $this->error;
    +			return -2;
    +		}
    +	}
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Update order demand_reason
    +	 *
    +	 *  @param      int		$demand_reason_id	Id of new demand
    +	 *  @param     	int		$notrigger			1=Does not execute triggers, 0= execute triggers
    +	 *  @return     int        			 		>0 if ok, <0 if ko
    +	 */
    +	function demand_reason($demand_reason_id, $notrigger=0)
    +	{
    +        // phpcs:enable
    +		global $user;
    +
    +		dol_syslog('Commande::demand_reason('.$demand_reason_id.')');
    +		if ($this->statut >= self::STATUS_DRAFT)
    +		{
    +			$error=0;
    +
    +			$this->db->begin();
    +
    +			$sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
    +			$sql .= ' SET fk_input_reason = '.$demand_reason_id;
    +			$sql .= ' WHERE rowid='.$this->id;
    +
    +			dol_syslog(__METHOD__, LOG_DEBUG);
    +			$resql=$this->db->query($sql);
    +			if (!$resql)
    +			{
    +				$this->errors[]=$this->db->error();
    +				$error++;
    +			}
    +
    +			if (! $error)
    +			{
    +				$this->oldcopy= clone $this;
    +				$this->demand_reason_id = $demand_reason_id;
    +			}
    +
    +			if (! $notrigger && empty($error))
    +			{
    +				// Call trigger
    +				$result=$this->call_trigger('ORDER_MODIFY',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
    +			}
    +
    +			if (! $error)
    +			{
    +				$this->db->commit();
    +				return 1;
    +			}
    +			else
    +			{
    +				foreach($this->errors as $errmsg)
    +				{
    +					dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    +					$this->error.=($this->error?', '.$errmsg:$errmsg);
    +				}
    +				$this->db->rollback();
    +				return -1*$error;
    +			}
    +		}
    +		else
    +		{
    +			$error_str='order status do not meet requirement '.$this->statut;
    +			dol_syslog(__METHOD__.$error_str, LOG_ERR);
    +			$this->error=$error_str;
    +			$this->errors[]= $this->error;
    +			return -2;
    +		}
    +	}
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Set customer ref
    +	 *
    +	 *	@param      User	$user           User that make change
    +	 *	@param      string	$ref_client     Customer ref
    +	 *  @param     	int		$notrigger		1=Does not execute triggers, 0= execute triggers
    +	 *	@return     int             		<0 if KO, >0 if OK
    +	 */
    +	function set_ref_client($user, $ref_client, $notrigger=0)
    +	{
    +        // phpcs:enable
    +		if ($user->rights->commande->creer)
    +		{
    +			$error=0;
    +
    +			$this->db->begin();
    +
    +			$sql = 'UPDATE '.MAIN_DB_PREFIX.'commande SET';
    +			$sql.= ' ref_client = '.(empty($ref_client) ? 'NULL' : '\''.$this->db->escape($ref_client).'\'');
    +			$sql.= ' WHERE rowid = '.$this->id;
    +
    +			dol_syslog(__METHOD__.' this->id='.$this->id.', ref_client='.$ref_client, LOG_DEBUG);
    +			$resql=$this->db->query($sql);
    +			if (!$resql)
    +			{
    +				$this->errors[]=$this->db->error();
    +				$error++;
    +			}
    +
    +			if (! $error)
    +			{
    +				$this->oldcopy= clone $this;
    +				$this->ref_client = $ref_client;
    +			}
    +
    +			if (! $notrigger && empty($error))
    +			{
    +				// Call trigger
    +				$result=$this->call_trigger('ORDER_MODIFY',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
    +			}
    +			if (! $error)
    +			{
    +				$this->db->commit();
    +				return 1;
    +			}
    +			else
    +			{
    +				foreach($this->errors as $errmsg)
    +				{
    +					dol_syslog(__METHOD__.' Error: '.$errmsg, LOG_ERR);
    +					$this->error.=($this->error?', '.$errmsg:$errmsg);
    +				}
    +				$this->db->rollback();
    +				return -1*$error;
    +			}
    +		}
    +		else
    +		{
    +			return -1;
    +		}
    +	}
     
     	/**
     	 * Classify the order as invoiced
    @@ -2700,7 +2771,7 @@ class Commande extends CommonOrder
     	 */
     	function classifyBilled(User $user, $notrigger=0)
     	{
    -        $error = 0;
    +		$error = 0;
     
     		$this->db->begin();
     
    @@ -2719,10 +2790,10 @@ class Commande extends CommonOrder
     
     			if (! $notrigger && empty($error))
     			{
    -            	// Call trigger
    -            	$result=$this->call_trigger('ORDER_CLASSIFY_BILLED',$user);
    -            	if ($result < 0) $error++;
    -            	// End call triggers
    +				// Call trigger
    +				$result=$this->call_trigger('ORDER_CLASSIFY_BILLED',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
     			}
     
     			if (! $error)
    @@ -2744,7 +2815,7 @@ class Commande extends CommonOrder
     		else
     		{
     			$this->error=$this->db->error();
    -            $this->db->rollback();
    +			$this->db->rollback();
     			return -1;
     		}
     	}
    @@ -2756,146 +2827,146 @@ class Commande extends CommonOrder
     	 */
     	function classifyUnBilled()
     	{
    -	    global $conf, $user, $langs;
    -	    $error = 0;
    +		global $conf, $user, $langs;
    +		$error = 0;
     
    -	    $this->db->begin();
    +		$this->db->begin();
     
    -	    $sql = 'UPDATE '.MAIN_DB_PREFIX.'commande SET facture = 0';
    -	    $sql.= ' WHERE rowid = '.$this->id.' AND fk_statut > '.self::STATUS_DRAFT;
    +		$sql = 'UPDATE '.MAIN_DB_PREFIX.'commande SET facture = 0';
    +		$sql.= ' WHERE rowid = '.$this->id.' AND fk_statut > '.self::STATUS_DRAFT;
     
    -	    dol_syslog(get_class($this)."::classifyUnBilled", LOG_DEBUG);
    -	    if ($this->db->query($sql))
    -	    {
    -	    	if (! $error)
    -	    	{
    -	    		$this->oldcopy= clone $this;
    -	    		$this->billed=1;
    -	    	}
    +		dol_syslog(get_class($this)."::classifyUnBilled", LOG_DEBUG);
    +		if ($this->db->query($sql))
    +		{
    +			if (! $error)
    +			{
    +				$this->oldcopy= clone $this;
    +				$this->billed=1;
    +			}
     
    -	        // Call trigger
    -	        $result=$this->call_trigger('ORDER_CLASSIFY_UNBILLED',$user);
    -	        if ($result < 0) $error++;
    -	        // End call triggers
    +			// Call trigger
    +			$result=$this->call_trigger('ORDER_CLASSIFY_UNBILLED',$user);
    +			if ($result < 0) $error++;
    +			// End call triggers
     
    -	        if (! $error)
    -	        {
    -	            $this->billed=0;
    +			if (! $error)
    +			{
    +				$this->billed=0;
     
    -	            $this->db->commit();
    -	            return 1;
    -	        }
    -	        else
    -	        {
    -	            foreach($this->errors as $errmsg)
    -	            {
    -	                dol_syslog(get_class($this)."::classifyUnBilled ".$errmsg, LOG_ERR);
    -	                $this->error.=($this->error?', '.$errmsg:$errmsg);
    -	            }
    -	            $this->db->rollback();
    -	            return -1*$error;
    -	        }
    -	    }
    -	    else
    -	    {
    -	        $this->error=$this->db->error();
    -	        $this->db->rollback();
    -	        return -1;
    -	    }
    +				$this->db->commit();
    +				return 1;
    +			}
    +			else
    +			{
    +				foreach($this->errors as $errmsg)
    +				{
    +					dol_syslog(get_class($this)."::classifyUnBilled ".$errmsg, LOG_ERR);
    +					$this->error.=($this->error?', '.$errmsg:$errmsg);
    +				}
    +				$this->db->rollback();
    +				return -1*$error;
    +			}
    +		}
    +		else
    +		{
    +			$this->error=$this->db->error();
    +			$this->db->rollback();
    +			return -1;
    +		}
     	}
     
     
    -    /**
    -     *  Update a line in database
    -     *
    -     *  @param    	int				$rowid            	Id of line to update
    -     *  @param    	string			$desc             	Description of line
    -     *  @param    	float			$pu               	Unit price
    -     *  @param    	float			$qty              	Quantity
    -     *  @param    	float			$remise_percent   	Percent of discount
    -     *  @param    	float			$txtva           	Taux TVA
    -     * 	@param		float			$txlocaltax1		Local tax 1 rate
    -     *  @param		float			$txlocaltax2		Local tax 2 rate
    -     *  @param    	string			$price_base_type	HT or TTC
    -     *  @param    	int				$info_bits        	Miscellaneous informations on line
    -     *  @param    	int				$date_start        	Start date of the line
    -     *  @param    	int				$date_end          	End date of the line
    -     * 	@param		int				$type				Type of line (0=product, 1=service)
    -     * 	@param		int				$fk_parent_line		Id of parent line (0 in most cases, used by modules adding sublevels into lines).
    -     * 	@param		int				$skip_update_total	Keep fields total_xxx to 0 (used for special lines by some modules)
    -     *  @param		int				$fk_fournprice		Id of origin supplier price
    -     *  @param		int				$pa_ht				Price (without tax) of product when it was bought
    -     *  @param		string			$label				Label
    -     *  @param		int				$special_code		Special code (also used by externals modules!)
    +	/**
    +	 *  Update a line in database
    +	 *
    +	 *  @param    	int				$rowid            	Id of line to update
    +	 *  @param    	string			$desc             	Description of line
    +	 *  @param    	float			$pu               	Unit price
    +	 *  @param    	float			$qty              	Quantity
    +	 *  @param    	float			$remise_percent   	Percent of discount
    +	 *  @param    	float			$txtva           	Taux TVA
    +	 * 	@param		float			$txlocaltax1		Local tax 1 rate
    +	 *  @param		float			$txlocaltax2		Local tax 2 rate
    +	 *  @param    	string			$price_base_type	HT or TTC
    +	 *  @param    	int				$info_bits        	Miscellaneous informations on line
    +	 *  @param    	int				$date_start        	Start date of the line
    +	 *  @param    	int				$date_end          	End date of the line
    +	 * 	@param		int				$type				Type of line (0=product, 1=service)
    +	 * 	@param		int				$fk_parent_line		Id of parent line (0 in most cases, used by modules adding sublevels into lines).
    +	 * 	@param		int				$skip_update_total	Keep fields total_xxx to 0 (used for special lines by some modules)
    +	 *  @param		int				$fk_fournprice		Id of origin supplier price
    +	 *  @param		int				$pa_ht				Price (without tax) of product when it was bought
    +	 *  @param		string			$label				Label
    +	 *  @param		int				$special_code		Special code (also used by externals modules!)
     	 *  @param		array			$array_options		extrafields array
    -     * 	@param 		string			$fk_unit 			Code of the unit to use. Null to use the default one
    +	 * 	@param 		string			$fk_unit 			Code of the unit to use. Null to use the default one
     	 *  @param		double			$pu_ht_devise		Amount in currency
    -     * 	@param		int				$notrigger			disable line update trigger
    -     *  @return   	int              					< 0 if KO, > 0 if OK
    -     */
    +	 * 	@param		int				$notrigger			disable line update trigger
    +	 *  @return   	int              					< 0 if KO, > 0 if OK
    +	 */
     	function updateline($rowid, $desc, $pu, $qty, $remise_percent, $txtva, $txlocaltax1=0.0,$txlocaltax2=0.0, $price_base_type='HT', $info_bits=0, $date_start='', $date_end='', $type=0, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=null, $pa_ht=0, $label='', $special_code=0, $array_options=0, $fk_unit=null, $pu_ht_devise = 0, $notrigger=0)
    -    {
    -        global $conf, $mysoc, $langs, $user;
    +	{
    +		global $conf, $mysoc, $langs, $user;
     
    -        dol_syslog(get_class($this)."::updateline id=$rowid, desc=$desc, pu=$pu, qty=$qty, remise_percent=$remise_percent, txtva=$txtva, txlocaltax1=$txlocaltax1, txlocaltax2=$txlocaltax2, price_base_type=$price_base_type, info_bits=$info_bits, date_start=$date_start, date_end=$date_end, type=$type, fk_parent_line=$fk_parent_line, pa_ht=$pa_ht, special_code=$special_code");
    -        include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
    +		dol_syslog(get_class($this)."::updateline id=$rowid, desc=$desc, pu=$pu, qty=$qty, remise_percent=$remise_percent, txtva=$txtva, txlocaltax1=$txlocaltax1, txlocaltax2=$txlocaltax2, price_base_type=$price_base_type, info_bits=$info_bits, date_start=$date_start, date_end=$date_end, type=$type, fk_parent_line=$fk_parent_line, pa_ht=$pa_ht, special_code=$special_code");
    +		include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
     
    -        if (! empty($this->brouillon))
    -        {
    -            $this->db->begin();
    +		if (! empty($this->brouillon))
    +		{
    +			$this->db->begin();
     
    -            // Clean parameters
    -            if (empty($qty)) $qty=0;
    -            if (empty($info_bits)) $info_bits=0;
    -            if (empty($txtva)) $txtva=0;
    -            if (empty($txlocaltax1)) $txlocaltax1=0;
    -            if (empty($txlocaltax2)) $txlocaltax2=0;
    -            if (empty($remise_percent)) $remise_percent=0;
    -            if (empty($special_code) || $special_code == 3) $special_code=0;
    +			// Clean parameters
    +			if (empty($qty)) $qty=0;
    +			if (empty($info_bits)) $info_bits=0;
    +			if (empty($txtva)) $txtva=0;
    +			if (empty($txlocaltax1)) $txlocaltax1=0;
    +			if (empty($txlocaltax2)) $txlocaltax2=0;
    +			if (empty($remise_percent)) $remise_percent=0;
    +			if (empty($special_code) || $special_code == 3) $special_code=0;
     
    -            $remise_percent=price2num($remise_percent);
    -            $qty=price2num($qty);
    -            $pu = price2num($pu);
    -      		$pa_ht=price2num($pa_ht);
    -        	$pu_ht_devise=price2num($pu_ht_devise);
    -            $txtva=price2num($txtva);
    -            $txlocaltax1=price2num($txlocaltax1);
    -            $txlocaltax2=price2num($txlocaltax2);
    +			$remise_percent=price2num($remise_percent);
    +			$qty=price2num($qty);
    +			$pu = price2num($pu);
    +			$pa_ht=price2num($pa_ht);
    +			$pu_ht_devise=price2num($pu_ht_devise);
    +			$txtva=price2num($txtva);
    +			$txlocaltax1=price2num($txlocaltax1);
    +			$txlocaltax2=price2num($txlocaltax2);
     
    -            // Calcul du total TTC et de la TVA pour la ligne a partir de
    -            // qty, pu, remise_percent et txtva
    -            // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
    -            // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
    +			// Calcul du total TTC et de la TVA pour la ligne a partir de
    +			// qty, pu, remise_percent et txtva
    +			// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
    +			// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
     
    -            $localtaxes_type=getLocalTaxesFromRate($txtva, 0, $this->thirdparty, $mysoc);
    +			$localtaxes_type=getLocalTaxesFromRate($txtva, 0, $this->thirdparty, $mysoc);
     
    -       		// Clean vat code
    -    		$vat_src_code='';
    -    		if (preg_match('/\((.*)\)/', $txtva, $reg))
    -    		{
    -    		    $vat_src_code = $reg[1];
    -    		    $txtva = preg_replace('/\s*\(.*\)/', '', $txtva);    // Remove code into vatrate.
    -    		}
    +			// Clean vat code
    +			$vat_src_code='';
    +			if (preg_match('/\((.*)\)/', $txtva, $reg))
    +			{
    +				$vat_src_code = $reg[1];
    +				$txtva = preg_replace('/\s*\(.*\)/', '', $txtva);    // Remove code into vatrate.
    +			}
     
    -            $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $mysoc, $localtaxes_type, 100, $this->multicurrency_tx, $pu_ht_devise);
    +			$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $mysoc, $localtaxes_type, 100, $this->multicurrency_tx, $pu_ht_devise);
     
    -            $total_ht  = $tabprice[0];
    -            $total_tva = $tabprice[1];
    -            $total_ttc = $tabprice[2];
    -            $total_localtax1 = $tabprice[9];
    -            $total_localtax2 = $tabprice[10];
    +			$total_ht  = $tabprice[0];
    +			$total_tva = $tabprice[1];
    +			$total_ttc = $tabprice[2];
    +			$total_localtax1 = $tabprice[9];
    +			$total_localtax2 = $tabprice[10];
     			$pu_ht  = $tabprice[3];
     			$pu_tva = $tabprice[4];
     			$pu_ttc = $tabprice[5];
     
     			// MultiCurrency
     			$multicurrency_total_ht  = $tabprice[16];
    -            $multicurrency_total_tva = $tabprice[17];
    -            $multicurrency_total_ttc = $tabprice[18];
    +			$multicurrency_total_tva = $tabprice[17];
    +			$multicurrency_total_ttc = $tabprice[18];
     			$pu_ht_devise = $tabprice[19];
     
    -            // Anciens indicateurs: $price, $subprice (a ne plus utiliser)
    -            $price = $pu_ht;
    +			// Anciens indicateurs: $price, $subprice (a ne plus utiliser)
    +			$price = $pu_ht;
     			if ($price_base_type == 'TTC')
     			{
     				$subprice = $pu_ttc;
    @@ -2904,72 +2975,72 @@ class Commande extends CommonOrder
     			{
     				$subprice = $pu_ht;
     			}
    -            $remise = 0;
    -            if ($remise_percent > 0)
    -            {
    -                $remise = round(($pu * $remise_percent / 100),2);
    -                $price = ($pu - $remise);
    -            }
    +			$remise = 0;
    +			if ($remise_percent > 0)
    +			{
    +				$remise = round(($pu * $remise_percent / 100),2);
    +				$price = ($pu - $remise);
    +			}
     
    -            //Fetch current line from the database and then clone the object and set it in $oldline property
    -            $line = new OrderLine($this->db);
    -            $line->fetch($rowid);
    +			//Fetch current line from the database and then clone the object and set it in $oldline property
    +			$line = new OrderLine($this->db);
    +			$line->fetch($rowid);
     
    -            if (!empty($line->fk_product))
    -            {
    -                $product=new Product($this->db);
    -                $result=$product->fetch($line->fk_product);
    -                $product_type=$product->type;
    +			if (!empty($line->fk_product))
    +			{
    +				$product=new Product($this->db);
    +				$result=$product->fetch($line->fk_product);
    +				$product_type=$product->type;
     
    -                if (! empty($conf->global->STOCK_MUST_BE_ENOUGH_FOR_ORDER) && $product_type == 0 && $product->stock_reel < $qty)
    -                {
    -                    $langs->load("errors");
    -                    $this->error=$langs->trans('ErrorStockIsNotEnoughToAddProductOnOrder', $product->ref);
    -                    dol_syslog(get_class($this)."::addline error=Product ".$product->ref.": ".$this->error, LOG_ERR);
    -                    $this->db->rollback();
    -                    return self::STOCK_NOT_ENOUGH_FOR_ORDER;
    -                }
    -            }
    +				if (! empty($conf->global->STOCK_MUST_BE_ENOUGH_FOR_ORDER) && $product_type == 0 && $product->stock_reel < $qty)
    +				{
    +					$langs->load("errors");
    +					$this->error=$langs->trans('ErrorStockIsNotEnoughToAddProductOnOrder', $product->ref);
    +					dol_syslog(get_class($this)."::addline error=Product ".$product->ref.": ".$this->error, LOG_ERR);
    +					$this->db->rollback();
    +					return self::STOCK_NOT_ENOUGH_FOR_ORDER;
    +				}
    +			}
     
    -            $staticline = clone $line;
    +			$staticline = clone $line;
     
    -            $line->oldline = $staticline;
    -            $this->line = $line;
    -            $this->line->context = $this->context;
    +			$line->oldline = $staticline;
    +			$this->line = $line;
    +			$this->line->context = $this->context;
     
    -            // Reorder if fk_parent_line change
    -            if (! empty($fk_parent_line) && ! empty($staticline->fk_parent_line) && $fk_parent_line != $staticline->fk_parent_line)
    -            {
    -            	$rangmax = $this->line_max($fk_parent_line);
    -            	$this->line->rang = $rangmax + 1;
    -            }
    +			// Reorder if fk_parent_line change
    +			if (! empty($fk_parent_line) && ! empty($staticline->fk_parent_line) && $fk_parent_line != $staticline->fk_parent_line)
    +			{
    +				$rangmax = $this->line_max($fk_parent_line);
    +				$this->line->rang = $rangmax + 1;
    +			}
     
    -            $this->line->rowid=$rowid;
    -            $this->line->label=$label;
    -            $this->line->desc=$desc;
    -            $this->line->qty=$qty;
    +			$this->line->rowid=$rowid;
    +			$this->line->label=$label;
    +			$this->line->desc=$desc;
    +			$this->line->qty=$qty;
     
    -            $this->line->vat_src_code	= $vat_src_code;
    -            $this->line->tva_tx         = $txtva;
    -            $this->line->localtax1_tx   = $txlocaltax1;
    -            $this->line->localtax2_tx   = $txlocaltax2;
    +			$this->line->vat_src_code	= $vat_src_code;
    +			$this->line->tva_tx         = $txtva;
    +			$this->line->localtax1_tx   = $txlocaltax1;
    +			$this->line->localtax2_tx   = $txlocaltax2;
     			$this->line->localtax1_type = $localtaxes_type[0];
     			$this->line->localtax2_type = $localtaxes_type[2];
    -            $this->line->remise_percent = $remise_percent;
    -            $this->line->subprice       = $subprice;
    -            $this->line->info_bits      = $info_bits;
    -            $this->line->special_code   = $special_code;
    -            $this->line->total_ht       = $total_ht;
    -            $this->line->total_tva      = $total_tva;
    -            $this->line->total_localtax1= $total_localtax1;
    -            $this->line->total_localtax2= $total_localtax2;
    -            $this->line->total_ttc      = $total_ttc;
    -            $this->line->date_start     = $date_start;
    -            $this->line->date_end       = $date_end;
    -            $this->line->product_type   = $type;
    -            $this->line->fk_parent_line = $fk_parent_line;
    -            $this->line->skip_update_total=$skip_update_total;
    -	        $this->line->fk_unit        = $fk_unit;
    +			$this->line->remise_percent = $remise_percent;
    +			$this->line->subprice       = $subprice;
    +			$this->line->info_bits      = $info_bits;
    +			$this->line->special_code   = $special_code;
    +			$this->line->total_ht       = $total_ht;
    +			$this->line->total_tva      = $total_tva;
    +			$this->line->total_localtax1= $total_localtax1;
    +			$this->line->total_localtax2= $total_localtax2;
    +			$this->line->total_ttc      = $total_ttc;
    +			$this->line->date_start     = $date_start;
    +			$this->line->date_end       = $date_end;
    +			$this->line->product_type   = $type;
    +			$this->line->fk_parent_line = $fk_parent_line;
    +			$this->line->skip_update_total=$skip_update_total;
    +			$this->line->fk_unit        = $fk_unit;
     
     			$this->line->fk_fournprice = $fk_fournprice;
     			$this->line->pa_ht = $pa_ht;
    @@ -2977,44 +3048,44 @@ class Commande extends CommonOrder
     			// Multicurrency
     			$this->line->multicurrency_subprice		= $pu_ht_devise;
     			$this->line->multicurrency_total_ht 	= $multicurrency_total_ht;
    -            $this->line->multicurrency_total_tva 	= $multicurrency_total_tva;
    -            $this->line->multicurrency_total_ttc 	= $multicurrency_total_ttc;
    +			$this->line->multicurrency_total_tva 	= $multicurrency_total_tva;
    +			$this->line->multicurrency_total_ttc 	= $multicurrency_total_ttc;
     
    -            // TODO deprecated
    -            $this->line->price=$price;
    -            $this->line->remise=$remise;
    +			// TODO deprecated
    +			$this->line->price=$price;
    +			$this->line->remise=$remise;
     
     			if (is_array($array_options) && count($array_options)>0) {
     				$this->line->array_options=$array_options;
     			}
     
    -            $result=$this->line->update($user, $notrigger);
    -            if ($result > 0)
    -            {
    -            	// Reorder if child line
    -            	if (! empty($fk_parent_line)) $this->line_order(true,'DESC');
    +			$result=$this->line->update($user, $notrigger);
    +			if ($result > 0)
    +			{
    +				// Reorder if child line
    +				if (! empty($fk_parent_line)) $this->line_order(true,'DESC');
     
    -                // Mise a jour info denormalisees
    -                $this->update_price(1);
    +				// Mise a jour info denormalisees
    +				$this->update_price(1);
     
    -                $this->db->commit();
    -                return $result;
    -            }
    -            else
    -            {
    -	            $this->error=$this->line->error;
    +				$this->db->commit();
    +				return $result;
    +			}
    +			else
    +			{
    +				$this->error=$this->line->error;
     
    -	            $this->db->rollback();
    -	            return -1;
    -            }
    -        }
    -        else
    -        {
    -            $this->error=get_class($this)."::updateline Order status makes operation forbidden";
    -        	$this->errors=array('OrderStatusMakeOperationForbidden');
    -            return -2;
    -        }
    -    }
    +				$this->db->rollback();
    +				return -1;
    +			}
    +		}
    +		else
    +		{
    +			$this->error=get_class($this)."::updateline Order status makes operation forbidden";
    +			$this->errors=array('OrderStatusMakeOperationForbidden');
    +			return -2;
    +		}
    +	}
     
     	/**
     	 *      Update database
    @@ -3111,31 +3182,31 @@ class Commande extends CommonOrder
     		}
     	}
     
    -    /**
    -     *	Delete the customer order
    -     *
    -     *	@param	User	$user		User object
    -     *	@param	int		$notrigger	1=Does not execute triggers, 0= execute triggers
    -     * 	@return	int					<=0 if KO, >0 if OK
    -     */
    -    function delete($user, $notrigger=0)
    -    {
    -        global $conf, $langs;
    -        require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +	/**
    +	 *	Delete the customer order
    +	 *
    +	 *	@param	User	$user		User object
    +	 *	@param	int		$notrigger	1=Does not execute triggers, 0= execute triggers
    +	 * 	@return	int					<=0 if KO, >0 if OK
    +	 */
    +	function delete($user, $notrigger=0)
    +	{
    +		global $conf, $langs;
    +		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
    -        $error = 0;
    +		$error = 0;
     
    -        dol_syslog(get_class($this) . "::delete ".$this->id, LOG_DEBUG);
    +		dol_syslog(get_class($this) . "::delete ".$this->id, LOG_DEBUG);
     
    -        $this->db->begin();
    +		$this->db->begin();
     
    -        if (! $error && ! $notrigger)
    -        {
    -            // Call trigger
    -            $result=$this->call_trigger('ORDER_DELETE',$user);
    -            if ($result < 0) $error++;
    -            // End call triggers
    -        }
    +		if (! $error && ! $notrigger)
    +		{
    +			// Call trigger
    +			$result=$this->call_trigger('ORDER_DELETE',$user);
    +			if ($result < 0) $error++;
    +			// End call triggers
    +		}
     
     		if ($this->nb_expedition() != 0)
     		{
    @@ -3143,311 +3214,318 @@ class Commande extends CommonOrder
     			$error++;
     		}
     
    -        if (! $error)
    -        {
    -        	// Delete order details
    -        	$sql = 'DELETE FROM '.MAIN_DB_PREFIX."commandedet WHERE fk_commande = ".$this->id;
    -        	if (! $this->db->query($sql) )
    -        	{
    -        		$error++;
    -        		$this->errors[]=$this->db->lasterror();
    -        	}
    -        }
    +		if (! $error)
    +		{
    +			// Delete order details
    +			$sql = 'DELETE FROM '.MAIN_DB_PREFIX."commandedet WHERE fk_commande = ".$this->id;
    +			if (! $this->db->query($sql) )
    +			{
    +				$error++;
    +				$this->errors[]=$this->db->lasterror();
    +			}
    +		}
     
    -        if (! $error)
    -        {
    -        	// Delete linked object
    -        	$res = $this->deleteObjectLinked();
    -        	if ($res < 0) $error++;
    -        }
    +		if (! $error)
    +		{
    +			// Delete linked object
    +			$res = $this->deleteObjectLinked();
    +			if ($res < 0) $error++;
    +		}
     
    -        if (! $error)
    -        {
    -        	// Delete linked contacts
    -        	$res = $this->delete_linked_contact();
    -        	if ($res < 0) $error++;
    -        }
    +		if (! $error)
    +		{
    +			// Delete linked contacts
    +			$res = $this->delete_linked_contact();
    +			if ($res < 0) $error++;
    +		}
     
    -        if (! $error)
    -        {
    -        	// Remove extrafields
    -        	if ((! $error) && (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED))) // For avoid conflicts if trigger used
    -        	{
    -        		$result=$this->deleteExtraFields();
    -        		if ($result < 0)
    -        		{
    -        			$error++;
    -        			dol_syslog(get_class($this)."::delete error -4 ".$this->error, LOG_ERR);
    -        		}
    -        	}
    -        }
    +		if (! $error)
    +		{
    +			// Remove extrafields
    +			if ((! $error) && (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED))) // For avoid conflicts if trigger used
    +			{
    +				$result=$this->deleteExtraFields();
    +				if ($result < 0)
    +				{
    +					$error++;
    +					dol_syslog(get_class($this)."::delete error -4 ".$this->error, LOG_ERR);
    +				}
    +			}
    +		}
     
    -        if (! $error)
    -        {
    -        	// Delete object
    -        	$sql = 'DELETE FROM '.MAIN_DB_PREFIX."commande WHERE rowid = ".$this->id;
    -        	if (! $this->db->query($sql) )
    -        	{
    -        		$error++;
    -        		$this->errors[]=$this->db->lasterror();
    -        	}
    -        }
    +		if (! $error)
    +		{
    +			// Delete object
    +			$sql = 'DELETE FROM '.MAIN_DB_PREFIX."commande WHERE rowid = ".$this->id;
    +			if (! $this->db->query($sql) )
    +			{
    +				$error++;
    +				$this->errors[]=$this->db->lasterror();
    +			}
    +		}
     
    -        if (! $error)
    -        {
    -        	// Remove directory with files
    -        	$comref = dol_sanitizeFileName($this->ref);
    -        	if ($conf->commande->dir_output && !empty($this->ref))
    -        	{
    -        		$dir = $conf->commande->dir_output . "/" . $comref ;
    -        		$file = $conf->commande->dir_output . "/" . $comref . "/" . $comref . ".pdf";
    -        		if (file_exists($file))	// We must delete all files before deleting directory
    -        		{
    -        			dol_delete_preview($this);
    +		if (! $error)
    +		{
    +			// Remove directory with files
    +			$comref = dol_sanitizeFileName($this->ref);
    +			if ($conf->commande->dir_output && !empty($this->ref))
    +			{
    +				$dir = $conf->commande->dir_output . "/" . $comref ;
    +				$file = $conf->commande->dir_output . "/" . $comref . "/" . $comref . ".pdf";
    +				if (file_exists($file))	// We must delete all files before deleting directory
    +				{
    +					dol_delete_preview($this);
     
    -        			if (! dol_delete_file($file,0,0,0,$this)) // For triggers
    -        			{
    -        				$this->db->rollback();
    -        				return 0;
    -        			}
    -        		}
    -        		if (file_exists($dir))
    -        		{
    -        			if (! dol_delete_dir_recursive($dir))
    -        			{
    -        				$this->error=$langs->trans("ErrorCanNotDeleteDir",$dir);
    -        				$this->db->rollback();
    -        				return 0;
    -        			}
    -        		}
    -        	}
    -        }
    +					if (! dol_delete_file($file,0,0,0,$this)) // For triggers
    +					{
    +						$this->db->rollback();
    +						return 0;
    +					}
    +				}
    +				if (file_exists($dir))
    +				{
    +					if (! dol_delete_dir_recursive($dir))
    +					{
    +						$this->error=$langs->trans("ErrorCanNotDeleteDir",$dir);
    +						$this->db->rollback();
    +						return 0;
    +					}
    +				}
    +			}
    +		}
     
    -        if (! $error)
    -        {
    -        	$this->db->commit();
    -        	return 1;
    -        }
    -        else
    -        {
    -	        foreach($this->errors as $errmsg)
    -	        {
    -		        $this->error.=($this->error?', '.$errmsg:$errmsg);
    -	        }
    -	        $this->db->rollback();
    -	        return -1*$error;
    -        }
    -    }
    +		if (! $error)
    +		{
    +			$this->db->commit();
    +			return 1;
    +		}
    +		else
    +		{
    +			foreach($this->errors as $errmsg)
    +			{
    +				$this->error.=($this->error?', '.$errmsg:$errmsg);
    +			}
    +			$this->db->rollback();
    +			return -1*$error;
    +		}
    +	}
     
     
    -    /**
    -     *	Load indicators for dashboard (this->nbtodo and this->nbtodolate)
    -     *
    -     *	@param		User	$user   Object user
    -     *	@return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
    -     */
    -    function load_board($user)
    -    {
    -        global $conf, $langs;
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Load indicators for dashboard (this->nbtodo and this->nbtodolate)
    +	 *
    +	 *	@param		User	$user   Object user
    +	 *	@return WorkboardResponse|int <0 if KO, WorkboardResponse if OK
    +	 */
    +	function load_board($user)
    +	{
    +        // phpcs:enable
    +		global $conf, $langs;
     
    -        $clause = " WHERE";
    +		$clause = " WHERE";
     
    -        $sql = "SELECT c.rowid, c.date_creation as datec, c.date_commande, c.date_livraison as delivery_date, c.fk_statut";
    -        $sql.= " FROM ".MAIN_DB_PREFIX."commande as c";
    -        if (!$user->rights->societe->client->voir && !$user->societe_id)
    -        {
    -            $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc";
    -            $sql.= " WHERE sc.fk_user = " .$user->id;
    -            $clause = " AND";
    -        }
    -        $sql.= $clause." c.entity IN (".getEntity('commande').")";
    -        //$sql.= " AND c.fk_statut IN (1,2,3) AND c.facture = 0";
    -        $sql.= " AND ((c.fk_statut IN (".self::STATUS_VALIDATED.",".self::STATUS_SHIPMENTONPROCESS.")) OR (c.fk_statut = ".self::STATUS_CLOSED." AND c.facture = 0))";    // If status is 2 and facture=1, it must be selected
    -        if ($user->societe_id) $sql.=" AND c.fk_soc = ".$user->societe_id;
    +		$sql = "SELECT c.rowid, c.date_creation as datec, c.date_commande, c.date_livraison as delivery_date, c.fk_statut, c.total_ht";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."commande as c";
    +		if (!$user->rights->societe->client->voir && !$user->societe_id)
    +		{
    +			$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON c.fk_soc = sc.fk_soc";
    +			$sql.= " WHERE sc.fk_user = " .$user->id;
    +			$clause = " AND";
    +		}
    +		$sql.= $clause." c.entity IN (".getEntity('commande').")";
    +		//$sql.= " AND c.fk_statut IN (1,2,3) AND c.facture = 0";
    +		$sql.= " AND ((c.fk_statut IN (".self::STATUS_VALIDATED.",".self::STATUS_SHIPMENTONPROCESS.")) OR (c.fk_statut = ".self::STATUS_CLOSED." AND c.facture = 0))";    // If status is 2 and facture=1, it must be selected
    +		if ($user->societe_id) $sql.=" AND c.fk_soc = ".$user->societe_id;
     
    -        $resql=$this->db->query($sql);
    -        if ($resql)
    -        {
    -	        $response = new WorkboardResponse();
    -	        $response->warning_delay=$conf->commande->client->warning_delay/60/60/24;
    -	        $response->label=$langs->trans("OrdersToProcess");
    -	        $response->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3&mainmenu=commercial&leftmenu=orders';
    -	        $response->img=img_object('',"order");
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$response = new WorkboardResponse();
    +			$response->warning_delay=$conf->commande->client->warning_delay/60/60/24;
    +			$response->label=$langs->trans("OrdersToProcess");
    +			$response->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3&mainmenu=commercial&leftmenu=orders';
    +			$response->img=img_object('',"order");
     
    -            $generic_commande = new Commande($this->db);
    +			$generic_commande = new Commande($this->db);
     
    -            while ($obj=$this->db->fetch_object($resql))
    -            {
    -                $response->nbtodo++;
    +			while ($obj=$this->db->fetch_object($resql))
    +			{
    +				$response->nbtodo++;
    +				$response->total+= $obj->total_ht;
     
    -                $generic_commande->statut = $obj->fk_statut;
    -                $generic_commande->date_commande = $this->db->jdate($obj->date_commande);
    -                $generic_commande->date_livraison = $this->db->jdate($obj->delivery_date);
    +				$generic_commande->statut = $obj->fk_statut;
    +				$generic_commande->date_commande = $this->db->jdate($obj->date_commande);
    +				$generic_commande->date_livraison = $this->db->jdate($obj->delivery_date);
     
    -                if ($generic_commande->hasDelay()) {
    -		            $response->nbtodolate++;
    -	            }
    -            }
    +				if ($generic_commande->hasDelay()) {
    +					$response->nbtodolate++;
    +				}
    +			}
     
    -            return $response;
    -        }
    -        else
    -        {
    -            $this->error=$this->db->error();
    -            return -1;
    -        }
    -    }
    +			return $response;
    +		}
    +		else
    +		{
    +			$this->error=$this->db->error();
    +			return -1;
    +		}
    +	}
     
    -    /**
    -     *	Return source label of order
    -     *
    -     *	@return     string      Label
    -     */
    -    function getLabelSource()
    -    {
    -        global $langs;
    +	/**
    +	 *	Return source label of order
    +	 *
    +	 *	@return     string      Label
    +	 */
    +	function getLabelSource()
    +	{
    +		global $langs;
     
    -        $label=$langs->trans('OrderSource'.$this->source);
    +		$label=$langs->trans('OrderSource'.$this->source);
     
    -        if ($label == 'OrderSource') return '';
    -        return $label;
    -    }
    +		if ($label == 'OrderSource') return '';
    +		return $label;
    +	}
     
    -    /**
    -     *	Return status label of Order
    -     *
    -     *	@param      int		$mode       0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label, 5=Short label + Picto, 6=Long label + Picto
    -     *	@return     string      		Label of status
    -     */
    -    function getLibStatut($mode)
    -    {
    -        return $this->LibStatut($this->statut, $this->billed, $mode);
    -    }
    +	/**
    +	 *	Return status label of Order
    +	 *
    +	 *	@param      int		$mode       0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label, 5=Short label + Picto, 6=Long label + Picto
    +	 *	@return     string      		Label of status
    +	 */
    +	function getLibStatut($mode)
    +	{
    +		return $this->LibStatut($this->statut, $this->billed, $mode);
    +	}
     
    -    /**
    -     *	Return label of status
    -     *
    -     *	@param		int		$statut      	  Id statut
    -     *  @param      int		$billed    		  If invoiced
    -     *	@param      int		$mode        	  0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label, 5=Short label + Picto, 6=Long label + Picto
    -     *  @param      int     $donotshowbilled  Do not show billed status after order status
    -     *  @return     string					  Label of status
    -     */
    -    function LibStatut($statut,$billed,$mode,$donotshowbilled=0)
    -    {
    -        global $langs, $conf;
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Return label of status
    +	 *
    +	 *	@param		int		$statut      	  Id statut
    +	 *  @param      int		$billed    		  If invoiced
    +	 *	@param      int		$mode        	  0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label, 5=Short label + Picto, 6=Long label + Picto
    +	 *  @param      int     $donotshowbilled  Do not show billed status after order status
    +	 *  @return     string					  Label of status
    +	 */
    +	function LibStatut($statut,$billed,$mode,$donotshowbilled=0)
    +	{
    +        // phpcs:enable
    +		global $langs, $conf;
     
    -        $billedtext = '';
    -        if (empty($donotshowbilled)) $billedtext .= ($billed?' - '.$langs->trans("Billed"):'');
    +		$billedtext = '';
    +		if (empty($donotshowbilled)) $billedtext .= ($billed?' - '.$langs->trans("Billed"):'');
     
    -        //print 'x'.$statut.'-'.$billed;
    -        if ($mode == 0)
    -        {
    -            if ($statut==self::STATUS_CANCELED) return $langs->trans('StatusOrderCanceled');
    -            if ($statut==self::STATUS_DRAFT) return $langs->trans('StatusOrderDraft');
    -            if ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidated').$billedtext;
    -            if ($statut==self::STATUS_SHIPMENTONPROCESS) return $langs->trans('StatusOrderSentShort').$billedtext;
    -            if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderToBill');
    -            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').$billedtext;
    -            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderDelivered');
    -        }
    -        elseif ($mode == 1)
    -        {
    -            if ($statut==self::STATUS_CANCELED) return $langs->trans('StatusOrderCanceledShort');
    -            if ($statut==self::STATUS_DRAFT) return $langs->trans('StatusOrderDraftShort');
    -            if ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidatedShort').$billedtext;
    -            if ($statut==self::STATUS_SHIPMENTONPROCESS) return $langs->trans('StatusOrderSentShort').$billedtext;
    -            if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderToBillShort');
    -            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').$billedtext;
    -            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderDelivered');
    -        }
    -        elseif ($mode == 2)
    -        {
    -            if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'),'statut5').' '.$langs->trans('StatusOrderCanceledShort');
    -            if ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'),'statut0').' '.$langs->trans('StatusOrderDraftShort');
    -            if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated'),'statut1').' '.$langs->trans('StatusOrderValidatedShort').$billedtext;
    -            if ($statut==self::STATUS_SHIPMENTONPROCESS) return img_picto($langs->trans('StatusOrderSent'),'statut3').' '.$langs->trans('StatusOrderSentShort').$billedtext;
    -            if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut4').' '.$langs->trans('StatusOrderToBillShort');
    -            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').$billedtext,'statut6').' '.$langs->trans('StatusOrderProcessed').$billedtext;
    -            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderDelivered'),'statut6').' '.$langs->trans('StatusOrderDeliveredShort');
    -        }
    -        elseif ($mode == 3)
    -        {
    -            if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'),'statut5');
    -            if ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'),'statut0');
    -            if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated').$billedtext,'statut1');
    -            if ($statut==self::STATUS_SHIPMENTONPROCESS) return img_picto($langs->trans('StatusOrderSentShort').$billedtext,'statut3');
    -            if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut4');
    -            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').$billedtext,'statut6');
    -            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderDelivered'),'statut6');
    -        }
    -        elseif ($mode == 4)
    -        {
    -            if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'),'statut5').' '.$langs->trans('StatusOrderCanceled');
    -            if ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'),'statut0').' '.$langs->trans('StatusOrderDraft');
    -            if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated').$billedtext,'statut1').' '.$langs->trans('StatusOrderValidated').$billedtext;
    -            if ($statut==self::STATUS_SHIPMENTONPROCESS) return img_picto($langs->trans('StatusOrderSentShort').$billedtext,'statut3').' '.$langs->trans('StatusOrderSent').$billedtext;
    -            if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut4').' '.$langs->trans('StatusOrderToBill');
    -            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessedShort').$billedtext,'statut6').' '.$langs->trans('StatusOrderProcessed').$billedtext;
    -            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderDelivered'),'statut6').' '.$langs->trans('StatusOrderDelivered');
    -        }
    -        elseif ($mode == 5)
    -        {
    -            if ($statut==self::STATUS_CANCELED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderCanceledShort').' </span>'.img_picto($langs->trans('StatusOrderCanceled'),'statut5');
    -            if ($statut==self::STATUS_DRAFT) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDraftShort').' </span>'.img_picto($langs->trans('StatusOrderDraft'),'statut0');
    -            if ($statut==self::STATUS_VALIDATED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderValidatedShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderValidated').$billedtext,'statut1');
    -            if ($statut==self::STATUS_SHIPMENTONPROCESS) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderSentShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderSent').$billedtext,'statut3');
    -            if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderToBillShort').' </span>'.img_picto($langs->trans('StatusOrderToBill'),'statut4');
    -            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderProcessedShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderProcessed').$billedtext,'statut6');
    -            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDeliveredShort').' </span>'.img_picto($langs->trans('StatusOrderDelivered'),'statut6');
    -        }
    -        elseif ($mode == 6)
    -        {
    -        	if ($statut==self::STATUS_CANCELED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderCanceled').' </span>'.img_picto($langs->trans('StatusOrderCanceled'),'statut5');
    -        	if ($statut==self::STATUS_DRAFT) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDraft').' </span>'.img_picto($langs->trans('StatusOrderDraft'),'statut0');
    -        	if ($statut==self::STATUS_VALIDATED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderValidated').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderValidated').$billedtext,'statut1');
    -        	if ($statut==self::STATUS_SHIPMENTONPROCESS) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderSent').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderSent').$billedtext,'statut3');
    -        	if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderToBill').' </span>'.img_picto($langs->trans('StatusOrderToBill'),'statut4');
    -        	if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderProcessed').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderProcessed').$billedtext,'statut6');
    -        	if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDelivered').' </span>'.img_picto($langs->trans('StatusOrderDelivered'),'statut6');
    -        }
    -
    -    }
    +		//print 'x'.$statut.'-'.$billed;
    +		if ($mode == 0)
    +		{
    +			if ($statut==self::STATUS_CANCELED) return $langs->trans('StatusOrderCanceled');
    +			if ($statut==self::STATUS_DRAFT) return $langs->trans('StatusOrderDraft');
    +			if ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidated').$billedtext;
    +			if ($statut==self::STATUS_SHIPMENTONPROCESS) return $langs->trans('StatusOrderSentShort').$billedtext;
    +			if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderToBill');
    +			if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').$billedtext;
    +			if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderDelivered');
    +		}
    +		elseif ($mode == 1)
    +		{
    +			if ($statut==self::STATUS_CANCELED) return $langs->trans('StatusOrderCanceledShort');
    +			if ($statut==self::STATUS_DRAFT) return $langs->trans('StatusOrderDraftShort');
    +			if ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidatedShort').$billedtext;
    +			if ($statut==self::STATUS_SHIPMENTONPROCESS) return $langs->trans('StatusOrderSentShort').$billedtext;
    +			if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderToBillShort');
    +			if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').$billedtext;
    +			if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderDelivered');
    +		}
    +		elseif ($mode == 2)
    +		{
    +			if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'),'statut5').' '.$langs->trans('StatusOrderCanceledShort');
    +			if ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'),'statut0').' '.$langs->trans('StatusOrderDraftShort');
    +			if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated'),'statut1').' '.$langs->trans('StatusOrderValidatedShort').$billedtext;
    +			if ($statut==self::STATUS_SHIPMENTONPROCESS) return img_picto($langs->trans('StatusOrderSent'),'statut3').' '.$langs->trans('StatusOrderSentShort').$billedtext;
    +			if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut4').' '.$langs->trans('StatusOrderToBillShort');
    +			if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').$billedtext,'statut6').' '.$langs->trans('StatusOrderProcessed').$billedtext;
    +			if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderDelivered'),'statut6').' '.$langs->trans('StatusOrderDeliveredShort');
    +		}
    +		elseif ($mode == 3)
    +		{
    +			if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'),'statut5');
    +			if ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'),'statut0');
    +			if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated').$billedtext,'statut1');
    +			if ($statut==self::STATUS_SHIPMENTONPROCESS) return img_picto($langs->trans('StatusOrderSentShort').$billedtext,'statut3');
    +			if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut4');
    +			if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').$billedtext,'statut6');
    +			if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderDelivered'),'statut6');
    +		}
    +		elseif ($mode == 4)
    +		{
    +			if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'),'statut5').' '.$langs->trans('StatusOrderCanceled');
    +			if ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'),'statut0').' '.$langs->trans('StatusOrderDraft');
    +			if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated').$billedtext,'statut1').' '.$langs->trans('StatusOrderValidated').$billedtext;
    +			if ($statut==self::STATUS_SHIPMENTONPROCESS) return img_picto($langs->trans('StatusOrderSentShort').$billedtext,'statut3').' '.$langs->trans('StatusOrderSent').$billedtext;
    +			if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut4').' '.$langs->trans('StatusOrderToBill');
    +			if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessedShort').$billedtext,'statut6').' '.$langs->trans('StatusOrderProcessed').$billedtext;
    +			if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderDelivered'),'statut6').' '.$langs->trans('StatusOrderDelivered');
    +		}
    +		elseif ($mode == 5)
    +		{
    +			if ($statut==self::STATUS_CANCELED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderCanceledShort').' </span>'.img_picto($langs->trans('StatusOrderCanceled'),'statut5');
    +			if ($statut==self::STATUS_DRAFT) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDraftShort').' </span>'.img_picto($langs->trans('StatusOrderDraft'),'statut0');
    +			if ($statut==self::STATUS_VALIDATED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderValidatedShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderValidated').$billedtext,'statut1');
    +			if ($statut==self::STATUS_SHIPMENTONPROCESS) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderSentShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderSent').$billedtext,'statut3');
    +			if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderToBillShort').' </span>'.img_picto($langs->trans('StatusOrderToBill'),'statut4');
    +			if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderProcessedShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderProcessed').$billedtext,'statut6');
    +			if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDeliveredShort').' </span>'.img_picto($langs->trans('StatusOrderDelivered'),'statut6');
    +		}
    +		elseif ($mode == 6)
    +		{
    +			if ($statut==self::STATUS_CANCELED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderCanceled').' </span>'.img_picto($langs->trans('StatusOrderCanceled'),'statut5');
    +			if ($statut==self::STATUS_DRAFT) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDraft').' </span>'.img_picto($langs->trans('StatusOrderDraft'),'statut0');
    +			if ($statut==self::STATUS_VALIDATED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderValidated').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderValidated').$billedtext,'statut1');
    +			if ($statut==self::STATUS_SHIPMENTONPROCESS) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderSent').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderSent').$billedtext,'statut3');
    +			if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderToBill').' </span>'.img_picto($langs->trans('StatusOrderToBill'),'statut4');
    +			if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderProcessed').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderProcessed').$billedtext,'statut6');
    +			if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDelivered').' </span>'.img_picto($langs->trans('StatusOrderDelivered'),'statut6');
    +		}
    +	}
     
     
    -    /**
    -     *	Return clicable link of object (with eventually picto)
    -     *
    -     *	@param      int			$withpicto                Add picto into link
    -     *	@param      string	    $option                   Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link)
    -     *	@param      int			$max          	          Max length to show
    -     *	@param      int			$short			          ???
    -     *  @param	    int   	    $notooltip		          1=Disable tooltip
    -     *  @param      int         $save_lastsearch_value    -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    -     *	@return     string          			          String with URL
    -     */
    -    function getNomUrl($withpicto=0, $option='', $max=0, $short=0, $notooltip=0, $save_lastsearch_value=-1)
    -    {
    -        global $conf, $langs, $user;
    +	/**
    +	 *	Return clicable link of object (with eventually picto)
    +	 *
    +	 *	@param      int			$withpicto                Add picto into link
    +	 *	@param      string	    $option                   Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link)
    +	 *	@param      int			$max          	          Max length to show
    +	 *	@param      int			$short			          ???
    +	 *  @param	    int   	    $notooltip		          1=Disable tooltip
    +	 *  @param      int         $save_lastsearch_value    -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    +	 *	@return     string          			          String with URL
    +	 */
    +	function getNomUrl($withpicto=0, $option='', $max=0, $short=0, $notooltip=0, $save_lastsearch_value=-1)
    +	{
    +		global $conf, $langs, $user;
     
    -        if (! empty($conf->dol_no_mouse_hover)) $notooltip=1;   // Force disable tooltips
    +		if (! empty($conf->dol_no_mouse_hover)) $notooltip=1;   // Force disable tooltips
     
    -        $result='';
    +		$result='';
     
    -        if (! empty($conf->expedition->enabled) && ($option == '1' || $option == '2')) $url = DOL_URL_ROOT.'/expedition/shipment.php?id='.$this->id;
    -        else $url = DOL_URL_ROOT.'/commande/card.php?id='.$this->id;
    +		if (! empty($conf->expedition->enabled) && ($option == '1' || $option == '2')) $url = DOL_URL_ROOT.'/expedition/shipment.php?id='.$this->id;
    +		else $url = DOL_URL_ROOT.'/commande/card.php?id='.$this->id;
     
    -        if ($option !== 'nolink')
    -        {
    -            // Add param to save lastsearch_values or not
    -            $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    -            if ($save_lastsearch_value == -1 && preg_match('/list\.php/',$_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1;
    -            if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
    -        }
    +		if (!$user->rights->commande->lire)
    +			$option = 'nolink';
     
    -        if ($short) return $url;
    +		if ($option !== 'nolink')
    +		{
    +			// Add param to save lastsearch_values or not
    +			$add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    +			if ($save_lastsearch_value == -1 && preg_match('/list\.php/',$_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1;
    +			if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
    +		}
     
    -        $label = '';
    +		if ($short) return $url;
    +
    +		$label = '';
     
     		if ($user->rights->commande->lire) {
     			$label = '<u>'.$langs->trans("ShowOrder").'</u>';
    @@ -3467,225 +3545,231 @@ class Commande extends CommonOrder
     		$linkclose='';
     		if (empty($notooltip) && $user->rights->commande->lire)
     		{
    -		    if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
    -		    {
    -		        $label=$langs->trans("ShowOrder");
    -		        $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    -		    }
    -		    $linkclose.= ' title="'.dol_escape_htmltag($label, 1).'"';
    -		    $linkclose.=' class="classfortooltip"';
    +			if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
    +			{
    +				$label=$langs->trans("ShowOrder");
    +				$linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    +			}
    +			$linkclose.= ' title="'.dol_escape_htmltag($label, 1).'"';
    +			$linkclose.=' class="classfortooltip"';
     		}
     
    -        $linkstart = '<a href="'.$url.'"';
    -        $linkstart.=$linkclose.'>';
    -        $linkend='</a>';
    +		$linkstart = '<a href="'.$url.'"';
    +		$linkstart.=$linkclose.'>';
    +		$linkend='</a>';
     
    -        $result .= $linkstart;
    -        if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
    -        if ($withpicto != 2) $result.= $this->ref;
    -        $result .= $linkend;
    +		if ($option === 'nolink') {
    +			$linkstart = '';
    +			$linkend = '';
    +		}
     
    -        return $result;
    -    }
    +		$result .= $linkstart;
    +		if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
    +		if ($withpicto != 2) $result.= $this->ref;
    +		$result .= $linkend;
    +
    +		return $result;
    +	}
     
     
    -    /**
    -     *	Charge les informations d'ordre info dans l'objet commande
    -     *
    -     *	@param  int		$id       Id of order
    -     *	@return	void
    -     */
    -    function info($id)
    -    {
    -        $sql = 'SELECT c.rowid, date_creation as datec, tms as datem,';
    -        $sql.= ' date_valid as datev,';
    -        $sql.= ' date_cloture as datecloture,';
    -        $sql.= ' fk_user_author, fk_user_valid, fk_user_cloture';
    -        $sql.= ' FROM '.MAIN_DB_PREFIX.'commande as c';
    -        $sql.= ' WHERE c.rowid = '.$id;
    -        $result=$this->db->query($sql);
    -        if ($result)
    -        {
    -            if ($this->db->num_rows($result))
    -            {
    -                $obj = $this->db->fetch_object($result);
    -                $this->id = $obj->rowid;
    -                if ($obj->fk_user_author)
    -                {
    -                    $cuser = new User($this->db);
    -                    $cuser->fetch($obj->fk_user_author);
    -                    $this->user_creation   = $cuser;
    -                }
    +	/**
    +	 *	Charge les informations d'ordre info dans l'objet commande
    +	 *
    +	 *	@param  int		$id       Id of order
    +	 *	@return	void
    +	 */
    +	function info($id)
    +	{
    +		$sql = 'SELECT c.rowid, date_creation as datec, tms as datem,';
    +		$sql.= ' date_valid as datev,';
    +		$sql.= ' date_cloture as datecloture,';
    +		$sql.= ' fk_user_author, fk_user_valid, fk_user_cloture';
    +		$sql.= ' FROM '.MAIN_DB_PREFIX.'commande as c';
    +		$sql.= ' WHERE c.rowid = '.$id;
    +		$result=$this->db->query($sql);
    +		if ($result)
    +		{
    +			if ($this->db->num_rows($result))
    +			{
    +				$obj = $this->db->fetch_object($result);
    +				$this->id = $obj->rowid;
    +				if ($obj->fk_user_author)
    +				{
    +					$cuser = new User($this->db);
    +					$cuser->fetch($obj->fk_user_author);
    +					$this->user_creation   = $cuser;
    +				}
     
    -                if ($obj->fk_user_valid)
    -                {
    -                    $vuser = new User($this->db);
    -                    $vuser->fetch($obj->fk_user_valid);
    -                    $this->user_validation = $vuser;
    -                }
    +				if ($obj->fk_user_valid)
    +				{
    +					$vuser = new User($this->db);
    +					$vuser->fetch($obj->fk_user_valid);
    +					$this->user_validation = $vuser;
    +				}
     
    -                if ($obj->fk_user_cloture)
    -                {
    -                    $cluser = new User($this->db);
    -                    $cluser->fetch($obj->fk_user_cloture);
    -                    $this->user_cloture   = $cluser;
    -                }
    +				if ($obj->fk_user_cloture)
    +				{
    +					$cluser = new User($this->db);
    +					$cluser->fetch($obj->fk_user_cloture);
    +					$this->user_cloture   = $cluser;
    +				}
     
    -                $this->date_creation     = $this->db->jdate($obj->datec);
    -                $this->date_modification = $this->db->jdate($obj->datem);
    -                $this->date_validation   = $this->db->jdate($obj->datev);
    -                $this->date_cloture      = $this->db->jdate($obj->datecloture);
    -            }
    +				$this->date_creation     = $this->db->jdate($obj->datec);
    +				$this->date_modification = $this->db->jdate($obj->datem);
    +				$this->date_validation   = $this->db->jdate($obj->datev);
    +				$this->date_cloture      = $this->db->jdate($obj->datecloture);
    +			}
     
    -            $this->db->free($result);
    -
    -        }
    -        else
    -        {
    -            dol_print_error($this->db);
    -        }
    -    }
    +			$this->db->free($result);
    +		}
    +		else
    +		{
    +			dol_print_error($this->db);
    +		}
    +	}
     
     
    -    /**
    -     *  Initialise an instance with random values.
    -     *  Used to build previews or test instances.
    -     *	id must be 0 if object instance is a specimen.
    -     *
    -     *  @return	void
    -     */
    -    function initAsSpecimen()
    -    {
    -        global $langs;
    +	/**
    +	 *  Initialise an instance with random values.
    +	 *  Used to build previews or test instances.
    +	 *	id must be 0 if object instance is a specimen.
    +	 *
    +	 *  @return	void
    +	 */
    +	function initAsSpecimen()
    +	{
    +		global $langs;
     
    -        dol_syslog(get_class($this)."::initAsSpecimen");
    +		dol_syslog(get_class($this)."::initAsSpecimen");
     
    -        // Load array of products prodids
    -        $num_prods = 0;
    -        $prodids = array();
    -        $sql = "SELECT rowid";
    -        $sql.= " FROM ".MAIN_DB_PREFIX."product";
    -        $sql.= " WHERE entity IN (".getEntity('product').")";
    -        $resql = $this->db->query($sql);
    -        if ($resql)
    -        {
    -            $num_prods = $this->db->num_rows($resql);
    -            $i = 0;
    -            while ($i < $num_prods)
    -            {
    -                $i++;
    -                $row = $this->db->fetch_row($resql);
    -                $prodids[$i] = $row[0];
    -            }
    -        }
    +		// Load array of products prodids
    +		$num_prods = 0;
    +		$prodids = array();
    +		$sql = "SELECT rowid";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."product";
    +		$sql.= " WHERE entity IN (".getEntity('product').")";
    +		$resql = $this->db->query($sql);
    +		if ($resql)
    +		{
    +			$num_prods = $this->db->num_rows($resql);
    +			$i = 0;
    +			while ($i < $num_prods)
    +			{
    +				$i++;
    +				$row = $this->db->fetch_row($resql);
    +				$prodids[$i] = $row[0];
    +			}
    +		}
     
    -        // Initialise parametres
    -        $this->id=0;
    -        $this->ref = 'SPECIMEN';
    -        $this->specimen=1;
    -        $this->socid = 1;
    -        $this->date = time();
    -        $this->date_lim_reglement=$this->date+3600*24*30;
    -        $this->cond_reglement_code = 'RECEP';
    -        $this->mode_reglement_code = 'CHQ';
    -        $this->availability_code   = 'DSP';
    -        $this->demand_reason_code  = 'SRC_00';
    -        $this->note_public='This is a comment (public)';
    -        $this->note_private='This is a comment (private)';
    -        // Lines
    -        $nbp = 5;
    -        $xnbp = 0;
    -        while ($xnbp < $nbp)
    -        {
    -            $line=new OrderLine($this->db);
    +		// Initialise parametres
    +		$this->id=0;
    +		$this->ref = 'SPECIMEN';
    +		$this->specimen=1;
    +		$this->socid = 1;
    +		$this->date = time();
    +		$this->date_lim_reglement=$this->date+3600*24*30;
    +		$this->cond_reglement_code = 'RECEP';
    +		$this->mode_reglement_code = 'CHQ';
    +		$this->availability_code   = 'DSP';
    +		$this->demand_reason_code  = 'SRC_00';
    +		$this->note_public='This is a comment (public)';
    +		$this->note_private='This is a comment (private)';
    +		// Lines
    +		$nbp = 5;
    +		$xnbp = 0;
    +		while ($xnbp < $nbp)
    +		{
    +			$line=new OrderLine($this->db);
     
    -            $line->desc=$langs->trans("Description")." ".$xnbp;
    -            $line->qty=1;
    -            $line->subprice=100;
    -            $line->price=100;
    -            $line->tva_tx=20;
    -            if ($xnbp == 2)
    -            {
    -                $line->total_ht=50;
    -                $line->total_ttc=60;
    -                $line->total_tva=10;
    -                $line->remise_percent=50;
    -            }
    -            else
    -            {
    -                $line->total_ht=100;
    -                $line->total_ttc=120;
    -                $line->total_tva=20;
    -                $line->remise_percent=0;
    -            }
    -            if ($num_prods > 0)
    -            {
    -            	$prodid = mt_rand(1, $num_prods);
    -            	$line->fk_product=$prodids[$prodid];
    +			$line->desc=$langs->trans("Description")." ".$xnbp;
    +			$line->qty=1;
    +			$line->subprice=100;
    +			$line->price=100;
    +			$line->tva_tx=20;
    +			if ($xnbp == 2)
    +			{
    +				$line->total_ht=50;
    +				$line->total_ttc=60;
    +				$line->total_tva=10;
    +				$line->remise_percent=50;
    +			}
    +			else
    +			{
    +				$line->total_ht=100;
    +				$line->total_ttc=120;
    +				$line->total_tva=20;
    +				$line->remise_percent=0;
    +			}
    +			if ($num_prods > 0)
    +			{
    +				$prodid = mt_rand(1, $num_prods);
    +				$line->fk_product=$prodids[$prodid];
     				$line->product_ref='SPECIMEN';
    -            }
    +			}
     
    -            $this->lines[$xnbp]=$line;
    +			$this->lines[$xnbp]=$line;
     
    -            $this->total_ht       += $line->total_ht;
    -            $this->total_tva      += $line->total_tva;
    -            $this->total_ttc      += $line->total_ttc;
    +			$this->total_ht       += $line->total_ht;
    +			$this->total_tva      += $line->total_tva;
    +			$this->total_ttc      += $line->total_ttc;
     
    -            $xnbp++;
    -        }
    -    }
    +			$xnbp++;
    +		}
    +	}
     
     
    -    /**
    -     *	Charge indicateurs this->nb de tableau de bord
    -     *
    -     *	@return     int         <0 si ko, >0 si ok
    -     */
    -    function load_state_board()
    -    {
    -        global $user;
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Charge indicateurs this->nb de tableau de bord
    +	 *
    +	 *	@return     int         <0 si ko, >0 si ok
    +	 */
    +	function load_state_board()
    +	{
    +        // phpcs:enable
    +		global $user;
     
    -        $this->nb=array();
    -        $clause = "WHERE";
    +		$this->nb=array();
    +		$clause = "WHERE";
     
    -        $sql = "SELECT count(co.rowid) as nb";
    -        $sql.= " FROM ".MAIN_DB_PREFIX."commande as co";
    -        $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON co.fk_soc = s.rowid";
    -        if (!$user->rights->societe->client->voir && !$user->societe_id)
    -        {
    -            $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc";
    -            $sql.= " WHERE sc.fk_user = " .$user->id;
    -            $clause = "AND";
    -        }
    -        $sql.= " ".$clause." co.entity IN (".getEntity('commande').")";
    +		$sql = "SELECT count(co.rowid) as nb";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."commande as co";
    +		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON co.fk_soc = s.rowid";
    +		if (!$user->rights->societe->client->voir && !$user->societe_id)
    +		{
    +			$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc";
    +			$sql.= " WHERE sc.fk_user = " .$user->id;
    +			$clause = "AND";
    +		}
    +		$sql.= " ".$clause." co.entity IN (".getEntity('commande').")";
     
    -        $resql=$this->db->query($sql);
    -        if ($resql)
    -        {
    -            while ($obj=$this->db->fetch_object($resql))
    -            {
    -                $this->nb["orders"]=$obj->nb;
    -            }
    -            $this->db->free($resql);
    -            return 1;
    -        }
    -        else
    -        {
    -            dol_print_error($this->db);
    -            $this->error=$this->db->error();
    -            return -1;
    -        }
    -    }
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			while ($obj=$this->db->fetch_object($resql))
    +			{
    +				$this->nb["orders"]=$obj->nb;
    +			}
    +			$this->db->free($resql);
    +			return 1;
    +		}
    +		else
    +		{
    +			dol_print_error($this->db);
    +			$this->error=$this->db->error();
    +			return -1;
    +		}
    +	}
     
    -    /**
    +	/**
     	 * 	Create an array of order lines
     	 *
     	 * 	@return int		>0 if OK, <0 if KO
    -     */
    -    function getLinesArray()
    -    {
    -        return $this->fetch_lines();
    -    }
    +	 */
    +	function getLinesArray()
    +	{
    +		return $this->fetch_lines();
    +	}
     
     	/**
     	 *  Create a document onto disk according to template module.
    @@ -3695,7 +3779,7 @@ class Commande extends CommonOrder
     	 *  @param      int			$hidedetails    Hide details of lines
     	 *  @param      int			$hidedesc       Hide description
     	 *  @param      int			$hideref        Hide ref
    -         *  @param   null|array  $moreparams     Array to provide more information
    +	 *  @param      null|array  $moreparams     Array to provide more information
     	 *  @return     int         				0 if KO, 1 if OK
     	 */
     	public function generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
    @@ -3732,45 +3816,45 @@ class Commande extends CommonOrder
     	public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id)
     	{
     		$tables = array(
    -			'commande'
    +		'commande'
     		);
     
     		return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
     	}
     
    -    /**
    -     * Is the customer order delayed?
    -     *
    -     * @return bool     true if late, false if not
    -     */
    -    public function hasDelay()
    -    {
    -        global $conf;
    +	/**
    +	 * Is the customer order delayed?
    +	 *
    +	 * @return bool     true if late, false if not
    +	 */
    +	public function hasDelay()
    +	{
    +		global $conf;
     
    -        if (! ($this->statut > Commande::STATUS_DRAFT && $this->statut < Commande::STATUS_CLOSED)) {
    -            return false;   // Never late if not inside this status range
    -        }
    +		if (! ($this->statut > Commande::STATUS_DRAFT && $this->statut < Commande::STATUS_CLOSED)) {
    +			return false;   // Never late if not inside this status range
    +		}
     
    -        $now = dol_now();
    +		$now = dol_now();
     
    -        return max($this->date_commande, $this->date_livraison) < ($now - $conf->commande->client->warning_delay);
    -    }
    +		return max($this->date_commande, $this->date_livraison) < ($now - $conf->commande->client->warning_delay);
    +	}
     
    -    /**
    -     * Show the customer delayed info
    -     *
    -     * @return string       Show delayed information
    -     */
    -    public function showDelay()
    -    {
    -        global $conf, $langs;
    +	/**
    +	 * Show the customer delayed info
    +	 *
    +	 * @return string       Show delayed information
    +	 */
    +	public function showDelay()
    +	{
    +		global $conf, $langs;
     
    -        if (empty($this->date_livraison)) $text=$langs->trans("OrderDate").' '.dol_print_date($this->date_commande, 'day');
    -        else $text=$text=$langs->trans("DeliveryDate").' '.dol_print_date($this->date_livraison, 'day');
    -        $text.=' '.($conf->commande->client->warning_delay>0?'+':'-').' '.round(abs($conf->commande->client->warning_delay)/3600/24,1).' '.$langs->trans("days").' < '.$langs->trans("Today");
    +		if (empty($this->date_livraison)) $text=$langs->trans("OrderDate").' '.dol_print_date($this->date_commande, 'day');
    +		else $text=$text=$langs->trans("DeliveryDate").' '.dol_print_date($this->date_livraison, 'day');
    +		$text.=' '.($conf->commande->client->warning_delay>0?'+':'-').' '.round(abs($conf->commande->client->warning_delay)/3600/24,1).' '.$langs->trans("days").' < '.$langs->trans("Today");
     
    -        return $text;
    -    }
    +		return $text;
    +	}
     }
     
     
    @@ -3779,10 +3863,14 @@ class Commande extends CommonOrder
      */
     class OrderLine extends CommonOrderLine
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='commandedet';
    +
     	public $table_element='commandedet';
     
    -    var $oldline;
    +	var $oldline;
     
     	/**
     	 * Id of parent order
    @@ -3798,12 +3886,17 @@ class OrderLine extends CommonOrderLine
     	 */
     	public $commande_id;
     
    -    // From llx_commandedet
    -    var $fk_parent_line;
    -    var $fk_facture;
    -    var $label;
    -    var $fk_remise_except;
    -    var $rang = 0;
    +	// From llx_commandedet
    +	var $fk_parent_line;
    +	var $fk_facture;
    +
    +	/**
    +	 * @var string Order lines label
    +	 */
    +	public $label;
    +
    +	var $fk_remise_except;
    +	var $rang = 0;
     	var $fk_fournprice;
     
     	/**
    @@ -3811,8 +3904,8 @@ class OrderLine extends CommonOrderLine
     	 * @var float
     	 */
     	var $pa_ht;
    -    var $marge_tx;
    -    var $marque_tx;
    +	var $marge_tx;
    +	var $marque_tx;
     
     	/**
     	 * @deprecated
    @@ -3820,88 +3913,89 @@ class OrderLine extends CommonOrderLine
     	 */
     	var $remise;
     
    -    // Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    -    // Start and end date of the line
    -    var $date_start;
    -    var $date_end;
    +	// Added by Matelli (See http://matelli.fr/showcases/patchs-dolibarr/add-dates-in-order-lines.html)
    +	// Start and end date of the line
    +	var $date_start;
    +	var $date_end;
     
    -    var $skip_update_total; // Skip update price total for special lines
    +	var $skip_update_total; // Skip update price total for special lines
     
     
    -    /**
    -     *      Constructor
    -     *
    -     *      @param     DoliDB	$db      handler d'acces base de donnee
    -     */
    -    function __construct($db)
    -    {
    -        $this->db= $db;
    -    }
    +	/**
    +	 *      Constructor
    +	 *
    +	 *      @param     DoliDB	$db      handler d'acces base de donnee
    +	 */
    +	function __construct($db)
    +	{
    +		$this->db= $db;
    +	}
     
    -    /**
    -     *  Load line order
    -     *
    -     *  @param  int		$rowid          Id line order
    -     *  @return	int						<0 if KO, >0 if OK
    -     */
    -    function fetch($rowid)
    -    {
    -        $sql = 'SELECT cd.rowid, cd.fk_commande, cd.fk_parent_line, cd.fk_product, cd.product_type, cd.label as custom_label, cd.description, cd.price, cd.qty, cd.tva_tx, cd.localtax1_tx, cd.localtax2_tx,';
    -        $sql.= ' cd.remise, cd.remise_percent, cd.fk_remise_except, cd.subprice,';
    -        $sql.= ' cd.info_bits, cd.total_ht, cd.total_tva, cd.total_localtax1, cd.total_localtax2, cd.total_ttc, cd.fk_product_fournisseur_price as fk_fournprice, cd.buy_price_ht as pa_ht, cd.rang, cd.special_code,';
    -	    $sql.= ' cd.fk_unit,';
    +	/**
    +	 *  Load line order
    +	 *
    +	 *  @param  int		$rowid          Id line order
    +	 *  @return	int						<0 if KO, >0 if OK
    +	 */
    +	function fetch($rowid)
    +	{
    +		$sql = 'SELECT cd.rowid, cd.fk_commande, cd.fk_parent_line, cd.fk_product, cd.product_type, cd.label as custom_label, cd.description, cd.price, cd.qty, cd.tva_tx, cd.localtax1_tx, cd.localtax2_tx,';
    +		$sql.= ' cd.remise, cd.remise_percent, cd.fk_remise_except, cd.subprice,';
    +		$sql.= ' cd.info_bits, cd.total_ht, cd.total_tva, cd.total_localtax1, cd.total_localtax2, cd.total_ttc, cd.fk_product_fournisseur_price as fk_fournprice, cd.buy_price_ht as pa_ht, cd.rang, cd.special_code,';
    +		$sql.= ' cd.fk_unit,';
     		$sql.= ' cd.fk_multicurrency, cd.multicurrency_code, cd.multicurrency_subprice, cd.multicurrency_total_ht, cd.multicurrency_total_tva, cd.multicurrency_total_ttc,';
    -        $sql.= ' p.ref as product_ref, p.label as product_libelle, p.description as product_desc, p.tobatch as product_tobatch,';
    -        $sql.= ' cd.date_start, cd.date_end';
    -        $sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as cd';
    -        $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON cd.fk_product = p.rowid';
    -        $sql.= ' WHERE cd.rowid = '.$rowid;
    -        $result = $this->db->query($sql);
    -        if ($result)
    -        {
    -            $objp = $this->db->fetch_object($result);
    -            $this->rowid            = $objp->rowid;
    -            $this->fk_commande      = $objp->fk_commande;
    -            $this->fk_parent_line   = $objp->fk_parent_line;
    -            $this->label            = $objp->custom_label;
    -            $this->desc             = $objp->description;
    -            $this->qty              = $objp->qty;
    -            $this->price            = $objp->price;
    -            $this->subprice         = $objp->subprice;
    -            $this->vat_src_code     = $objp->vat_src_code;
    -            $this->tva_tx           = $objp->tva_tx;
    -            $this->localtax1_tx		= $objp->localtax1_tx;
    -            $this->localtax2_tx		= $objp->localtax2_tx;
    -            $this->remise           = $objp->remise;
    -            $this->remise_percent   = $objp->remise_percent;
    -            $this->fk_remise_except = $objp->fk_remise_except;
    -            $this->fk_product       = $objp->fk_product;
    -            $this->product_type     = $objp->product_type;
    -            $this->info_bits        = $objp->info_bits;
    +		$sql.= ' p.ref as product_ref, p.label as product_libelle, p.description as product_desc, p.tobatch as product_tobatch,';
    +		$sql.= ' cd.date_start, cd.date_end';
    +		$sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as cd';
    +		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON cd.fk_product = p.rowid';
    +		$sql.= ' WHERE cd.rowid = '.$rowid;
    +		$result = $this->db->query($sql);
    +		if ($result)
    +		{
    +			$objp = $this->db->fetch_object($result);
    +			$this->rowid            = $objp->rowid;
    +			$this->id				= $objp->rowid;
    +			$this->fk_commande      = $objp->fk_commande;
    +			$this->fk_parent_line   = $objp->fk_parent_line;
    +			$this->label            = $objp->custom_label;
    +			$this->desc             = $objp->description;
    +			$this->qty              = $objp->qty;
    +			$this->price            = $objp->price;
    +			$this->subprice         = $objp->subprice;
    +			$this->vat_src_code     = $objp->vat_src_code;
    +			$this->tva_tx           = $objp->tva_tx;
    +			$this->localtax1_tx		= $objp->localtax1_tx;
    +			$this->localtax2_tx		= $objp->localtax2_tx;
    +			$this->remise           = $objp->remise;
    +			$this->remise_percent   = $objp->remise_percent;
    +			$this->fk_remise_except = $objp->fk_remise_except;
    +			$this->fk_product       = $objp->fk_product;
    +			$this->product_type     = $objp->product_type;
    +			$this->info_bits        = $objp->info_bits;
     			$this->special_code		= $objp->special_code;
    -            $this->total_ht         = $objp->total_ht;
    -            $this->total_tva        = $objp->total_tva;
    -            $this->total_localtax1  = $objp->total_localtax1;
    -            $this->total_localtax2  = $objp->total_localtax2;
    -            $this->total_ttc        = $objp->total_ttc;
    +			$this->total_ht         = $objp->total_ht;
    +			$this->total_tva        = $objp->total_tva;
    +			$this->total_localtax1  = $objp->total_localtax1;
    +			$this->total_localtax2  = $objp->total_localtax2;
    +			$this->total_ttc        = $objp->total_ttc;
     			$this->fk_fournprice	= $objp->fk_fournprice;
     			$marginInfos			= getMarginInfos($objp->subprice, $objp->remise_percent, $objp->tva_tx, $objp->localtax1_tx, $objp->localtax2_tx, $this->fk_fournprice, $objp->pa_ht);
     			$this->pa_ht			= $marginInfos[0];
     			$this->marge_tx			= $marginInfos[1];
     			$this->marque_tx		= $marginInfos[2];
    -            $this->special_code		= $objp->special_code;
    -            $this->rang             = $objp->rang;
    +			$this->special_code		= $objp->special_code;
    +			$this->rang             = $objp->rang;
     
    -            $this->ref				= $objp->product_ref;      // deprecated
    -            $this->product_ref		= $objp->product_ref;
    -            $this->libelle			= $objp->product_libelle;  // deprecated
    -            $this->product_label	= $objp->product_libelle;
    -            $this->product_desc     = $objp->product_desc;
    -            $this->product_tobatch  = $objp->product_tobatch;
    -            $this->fk_unit          = $objp->fk_unit;
    +			$this->ref				= $objp->product_ref;      // deprecated
    +			$this->product_ref		= $objp->product_ref;
    +			$this->libelle			= $objp->product_libelle;  // deprecated
    +			$this->product_label	= $objp->product_libelle;
    +			$this->product_desc     = $objp->product_desc;
    +			$this->product_tobatch  = $objp->product_tobatch;
    +			$this->fk_unit          = $objp->fk_unit;
     
    -            $this->date_start       = $this->db->jdate($objp->date_start);
    -            $this->date_end         = $this->db->jdate($objp->date_end);
    +			$this->date_start       = $this->db->jdate($objp->date_start);
    +			$this->date_end         = $this->db->jdate($objp->date_end);
     
     			$this->fk_multicurrency			= $objp->fk_multicurrency;
     			$this->multicurrency_code		= $objp->multicurrency_code;
    @@ -3910,38 +4004,38 @@ class OrderLine extends CommonOrderLine
     			$this->multicurrency_total_tva	= $objp->multicurrency_total_tva;
     			$this->multicurrency_total_ttc	= $objp->multicurrency_total_ttc;
     
    -            $this->db->free($result);
    +			$this->db->free($result);
     
    -            return 1;
    -        }
    -        else
    -        {
    -            $this->error = $this->db->lasterror();
    -            return -1;
    -        }
    -    }
    +			return 1;
    +		}
    +		else
    +		{
    +			$this->error = $this->db->lasterror();
    +			return -1;
    +		}
    +	}
     
    -    /**
    -     * 	Delete line in database
    -     *
    -     *	@param      User	$user        	User that modify
    +	/**
    +	 * 	Delete line in database
    +	 *
    +	 *	@param      User	$user        	User that modify
     	 *  @param      int		$notrigger	    0=launch triggers after, 1=disable triggers
    -     *	@return	 int  <0 si ko, >0 si ok
    -     */
    -    function delete($user=null, $notrigger=0)
    -    {
    -        global $conf, $user, $langs;
    +	 *	@return	 int  <0 si ko, >0 si ok
    +	 */
    +	function delete(User $user, $notrigger=0)
    +	{
    +		global $conf, $langs;
     
     		$error=0;
     
    -	    $this->db->begin();
    +		$this->db->begin();
     
    -        $sql = 'DELETE FROM '.MAIN_DB_PREFIX."commandedet WHERE rowid=".$this->rowid;
    +		$sql = 'DELETE FROM '.MAIN_DB_PREFIX."commandedet WHERE rowid=".$this->rowid;
     
    -        dol_syslog("OrderLine::delete", LOG_DEBUG);
    -        $resql=$this->db->query($sql);
    -        if ($resql)
    -        {
    +		dol_syslog("OrderLine::delete", LOG_DEBUG);
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
     			// Remove extrafields
     			if ((! $error) && (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED))) // For avoid conflicts if trigger used
     			{
    @@ -3956,63 +4050,63 @@ class OrderLine extends CommonOrderLine
     
     			if (! $error && ! $notrigger)
     			{
    -	            // Call trigger
    -	            $result=$this->call_trigger('LINEORDER_DELETE',$user);
    -	            if ($result < 0) $error++;
    -	            // End call triggers
    +				// Call trigger
    +				$result=$this->call_trigger('LINEORDER_DELETE',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
     			}
     
    -	        if (!$error) {
    -		        $this->db->commit();
    -		        return 1;
    -	        }
    +			if (!$error) {
    +				$this->db->commit();
    +				return 1;
    +			}
     
    -	        foreach($this->errors as $errmsg)
    -	        {
    -		        dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
    -		        $this->error.=($this->error?', '.$errmsg:$errmsg);
    -	        }
    -	        $this->db->rollback();
    -	        return -1*$error;
    -        }
    -        else
    -        {
    -            $this->error=$this->db->lasterror();
    -            return -1;
    -        }
    -    }
    +			foreach($this->errors as $errmsg)
    +			{
    +				dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
    +				$this->error.=($this->error?', '.$errmsg:$errmsg);
    +			}
    +			$this->db->rollback();
    +			return -1*$error;
    +		}
    +		else
    +		{
    +			$this->error=$this->db->lasterror();
    +			return -1;
    +		}
    +	}
     
    -    /**
    -     *	Insert line into database
    -     *
    -     *	@param      User	$user        	User that modify
    -     *	@param      int		$notrigger		1 = disable triggers
    -     *	@return		int						<0 if KO, >0 if OK
    -     */
    -    function insert($user=null, $notrigger=0)
    -    {
    -        global $langs, $conf;
    +	/**
    +	 *	Insert line into database
    +	 *
    +	 *	@param      User	$user        	User that modify
    +	 *	@param      int		$notrigger		1 = disable triggers
    +	 *	@return		int						<0 if KO, >0 if OK
    +	 */
    +	function insert($user=null, $notrigger=0)
    +	{
    +		global $langs, $conf;
     
     		$error=0;
     
    -        $pa_ht_isemptystring = (empty($this->pa_ht) && $this->pa_ht == ''); // If true, we can use a default value. If this->pa_ht = '0', we must use '0'.
    +		$pa_ht_isemptystring = (empty($this->pa_ht) && $this->pa_ht == ''); // If true, we can use a default value. If this->pa_ht = '0', we must use '0'.
     
    -        dol_syslog(get_class($this)."::insert rang=".$this->rang);
    +		dol_syslog(get_class($this)."::insert rang=".$this->rang);
     
    -        // Clean parameters
    -        if (empty($this->tva_tx)) $this->tva_tx=0;
    -        if (empty($this->localtax1_tx)) $this->localtax1_tx=0;
    -        if (empty($this->localtax2_tx)) $this->localtax2_tx=0;
    +		// Clean parameters
    +		if (empty($this->tva_tx)) $this->tva_tx=0;
    +		if (empty($this->localtax1_tx)) $this->localtax1_tx=0;
    +		if (empty($this->localtax2_tx)) $this->localtax2_tx=0;
     		if (empty($this->localtax1_type)) $this->localtax1_type=0;
     		if (empty($this->localtax2_type)) $this->localtax2_type=0;
    -        if (empty($this->total_localtax1)) $this->total_localtax1=0;
    -        if (empty($this->total_localtax2)) $this->total_localtax2=0;
    -        if (empty($this->rang)) $this->rang=0;
    -        if (empty($this->remise)) $this->remise=0;
    -        if (empty($this->remise_percent)) $this->remise_percent=0;
    -        if (empty($this->info_bits)) $this->info_bits=0;
    -        if (empty($this->special_code)) $this->special_code=0;
    -        if (empty($this->fk_parent_line)) $this->fk_parent_line=0;
    +		if (empty($this->total_localtax1)) $this->total_localtax1=0;
    +		if (empty($this->total_localtax2)) $this->total_localtax2=0;
    +		if (empty($this->rang)) $this->rang=0;
    +		if (empty($this->remise)) $this->remise=0;
    +		if (empty($this->remise_percent)) $this->remise_percent=0;
    +		if (empty($this->info_bits)) $this->info_bits=0;
    +		if (empty($this->special_code)) $this->special_code=0;
    +		if (empty($this->fk_parent_line)) $this->fk_parent_line=0;
     		if (empty($this->pa_ht)) $this->pa_ht=0;
     
     		// if buy price not defined, define buyprice as configured in margin admin
    @@ -4028,65 +4122,65 @@ class OrderLine extends CommonOrderLine
     			}
     		}
     
    -        // Check parameters
    -        if ($this->product_type < 0) return -1;
    +		// Check parameters
    +		if ($this->product_type < 0) return -1;
     
    -        $this->db->begin();
    +		$this->db->begin();
     
    -        // Insertion dans base de la ligne
    -        $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'commandedet';
    -        $sql.= ' (fk_commande, fk_parent_line, label, description, qty, ';
    -        $sql.= ' vat_src_code, tva_tx, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type,';
    -        $sql.= ' fk_product, product_type, remise_percent, subprice, price, remise, fk_remise_except,';
    -        $sql.= ' special_code, rang, fk_product_fournisseur_price, buy_price_ht,';
    -        $sql.= ' info_bits, total_ht, total_tva, total_localtax1, total_localtax2, total_ttc, date_start, date_end,';
    -	    $sql.= ' fk_unit';
    +		// Insertion dans base de la ligne
    +		$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'commandedet';
    +		$sql.= ' (fk_commande, fk_parent_line, label, description, qty, ';
    +		$sql.= ' vat_src_code, tva_tx, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type,';
    +		$sql.= ' fk_product, product_type, remise_percent, subprice, price, remise, fk_remise_except,';
    +		$sql.= ' special_code, rang, fk_product_fournisseur_price, buy_price_ht,';
    +		$sql.= ' info_bits, total_ht, total_tva, total_localtax1, total_localtax2, total_ttc, date_start, date_end,';
    +		$sql.= ' fk_unit';
     		$sql.= ', fk_multicurrency, multicurrency_code, multicurrency_subprice, multicurrency_total_ht, multicurrency_total_tva, multicurrency_total_ttc';
     		$sql.= ')';
    -        $sql.= " VALUES (".$this->fk_commande.",";
    -        $sql.= " ".($this->fk_parent_line>0?"'".$this->db->escape($this->fk_parent_line)."'":"null").",";
    -        $sql.= " ".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null").",";
    -        $sql.= " '".$this->db->escape($this->desc)."',";
    -        $sql.= " '".price2num($this->qty)."',";
    -        $sql.= " ".(empty($this->vat_src_code)?"''":"'".$this->db->escape($this->vat_src_code)."'").",";
    -        $sql.= " '".price2num($this->tva_tx)."',";
    -        $sql.= " '".price2num($this->localtax1_tx)."',";
    -        $sql.= " '".price2num($this->localtax2_tx)."',";
    +		$sql.= " VALUES (".$this->fk_commande.",";
    +		$sql.= " ".($this->fk_parent_line>0?"'".$this->db->escape($this->fk_parent_line)."'":"null").",";
    +		$sql.= " ".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null").",";
    +		$sql.= " '".$this->db->escape($this->desc)."',";
    +		$sql.= " '".price2num($this->qty)."',";
    +		$sql.= " ".(empty($this->vat_src_code)?"''":"'".$this->db->escape($this->vat_src_code)."'").",";
    +		$sql.= " '".price2num($this->tva_tx)."',";
    +		$sql.= " '".price2num($this->localtax1_tx)."',";
    +		$sql.= " '".price2num($this->localtax2_tx)."',";
     		$sql.= " '".$this->db->escape($this->localtax1_type)."',";
     		$sql.= " '".$this->db->escape($this->localtax2_type)."',";
    -        $sql.= ' '.(! empty($this->fk_product)?$this->fk_product:"null").',';
    -        $sql.= " '".$this->db->escape($this->product_type)."',";
    -        $sql.= " '".price2num($this->remise_percent)."',";
    -        $sql.= " ".(price2num($this->subprice)!==''?price2num($this->subprice):"null").",";
    -        $sql.= " ".($this->price!=''?"'".price2num($this->price)."'":"null").",";
    -        $sql.= " '".price2num($this->remise)."',";
    -        $sql.= ' '.(! empty($this->fk_remise_except)?$this->fk_remise_except:"null").',';
    -        $sql.= ' '.$this->special_code.',';
    -        $sql.= ' '.$this->rang.',';
    +		$sql.= ' '.(! empty($this->fk_product)?$this->fk_product:"null").',';
    +		$sql.= " '".$this->db->escape($this->product_type)."',";
    +		$sql.= " '".price2num($this->remise_percent)."',";
    +		$sql.= " ".(price2num($this->subprice)!==''?price2num($this->subprice):"null").",";
    +		$sql.= " ".($this->price!=''?"'".price2num($this->price)."'":"null").",";
    +		$sql.= " '".price2num($this->remise)."',";
    +		$sql.= ' '.(! empty($this->fk_remise_except)?$this->fk_remise_except:"null").',';
    +		$sql.= ' '.$this->special_code.',';
    +		$sql.= ' '.$this->rang.',';
     		$sql.= ' '.(! empty($this->fk_fournprice)?$this->fk_fournprice:"null").',';
     		$sql.= ' '.price2num($this->pa_ht).',';
    -        $sql.= " '".$this->db->escape($this->info_bits)."',";
    -        $sql.= " ".price2num($this->total_ht).",";
    -        $sql.= " ".price2num($this->total_tva).",";
    -        $sql.= " ".price2num($this->total_localtax1).",";
    -        $sql.= " ".price2num($this->total_localtax2).",";
    -        $sql.= " ".price2num($this->total_ttc).",";
    -        $sql.= " ".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null").',';
    -        $sql.= " ".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null").',';
    -	    $sql.= ' '.(!$this->fk_unit ? 'NULL' : $this->fk_unit);
    +		$sql.= " '".$this->db->escape($this->info_bits)."',";
    +		$sql.= " ".price2num($this->total_ht).",";
    +		$sql.= " ".price2num($this->total_tva).",";
    +		$sql.= " ".price2num($this->total_localtax1).",";
    +		$sql.= " ".price2num($this->total_localtax2).",";
    +		$sql.= " ".price2num($this->total_ttc).",";
    +		$sql.= " ".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null").',';
    +		$sql.= " ".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null").',';
    +		$sql.= ' '.(!$this->fk_unit ? 'NULL' : $this->fk_unit);
     		$sql.= ", ".(! empty($this->fk_multicurrency) ? $this->fk_multicurrency : 'NULL');
     		$sql.= ", '".$this->db->escape($this->multicurrency_code)."'";
     		$sql.= ", ".$this->multicurrency_subprice;
     		$sql.= ", ".$this->multicurrency_total_ht;
     		$sql.= ", ".$this->multicurrency_total_tva;
     		$sql.= ", ".$this->multicurrency_total_ttc;
    -        $sql.= ')';
    +		$sql.= ')';
     
    -        dol_syslog(get_class($this)."::insert", LOG_DEBUG);
    -        $resql=$this->db->query($sql);
    -        if ($resql)
    -        {
    -            $this->rowid=$this->db->last_insert_id(MAIN_DB_PREFIX.'commandedet');
    +		dol_syslog(get_class($this)."::insert", LOG_DEBUG);
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$this->rowid=$this->db->last_insert_id(MAIN_DB_PREFIX.'commandedet');
     
     			if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
     			{
    @@ -4098,42 +4192,42 @@ class OrderLine extends CommonOrderLine
     				}
     			}
     
    -            if (! $error && ! $notrigger)
    -            {
    -	            // Call trigger
    -	            $result=$this->call_trigger('LINEORDER_INSERT',$user);
    -	            if ($result < 0) $error++;
    -	            // End call triggers
    -            }
    +			if (! $error && ! $notrigger)
    +			{
    +				// Call trigger
    +				$result=$this->call_trigger('LINEORDER_INSERT',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
    +			}
     
    -	        if (!$error) {
    -		        $this->db->commit();
    -		        return 1;
    -	        }
    +			if (!$error) {
    +				$this->db->commit();
    +				return 1;
    +			}
     
    -	        foreach($this->errors as $errmsg)
    -	        {
    -		        dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
    -		        $this->error.=($this->error?', '.$errmsg:$errmsg);
    -	        }
    -	        $this->db->rollback();
    -	        return -1*$error;
    -        }
    -        else
    -        {
    -            $this->error=$this->db->error();
    -            $this->db->rollback();
    -            return -2;
    -        }
    -    }
    +			foreach($this->errors as $errmsg)
    +			{
    +				dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
    +				$this->error.=($this->error?', '.$errmsg:$errmsg);
    +			}
    +			$this->db->rollback();
    +			return -1*$error;
    +		}
    +		else
    +		{
    +			$this->error=$this->db->error();
    +			$this->db->rollback();
    +			return -2;
    +		}
    +	}
     
    -    /**
    -     *	Update the line object into db
    -     *
    -     *	@param      User	$user        	User that modify
    +	/**
    +	 *	Update the line object into db
    +	 *
    +	 *	@param      User	$user        	User that modify
     	 *	@param      int		$notrigger		1 = disable triggers
    -     *	@return		int		<0 si ko, >0 si ok
    -     */
    +	 *	@return		int		<0 si ko, >0 si ok
    +	 */
     	function update(User $user, $notrigger=0)
     	{
     		global $conf,$langs;
    @@ -4156,7 +4250,7 @@ class OrderLine extends CommonOrderLine
     		if (empty($this->remise)) $this->remise=0;
     		if (empty($this->remise_percent)) $this->remise_percent=0;
     		if (empty($this->info_bits)) $this->info_bits=0;
    -        if (empty($this->special_code)) $this->special_code=0;
    +		if (empty($this->special_code)) $this->special_code=0;
     		if (empty($this->product_type)) $this->product_type=0;
     		if (empty($this->fk_parent_line)) $this->fk_parent_line=0;
     		if (empty($this->pa_ht)) $this->pa_ht=0;
    @@ -4202,7 +4296,7 @@ class OrderLine extends CommonOrderLine
     		$sql.= " , fk_product_fournisseur_price=".(! empty($this->fk_fournprice)?$this->fk_fournprice:"null");
     		$sql.= " , buy_price_ht='".price2num($this->pa_ht)."'";
     		$sql.= " , info_bits=".$this->info_bits;
    -        $sql.= " , special_code=".$this->special_code;
    +		$sql.= " , special_code=".$this->special_code;
     		$sql.= " , date_start=".(! empty($this->date_start)?"'".$this->db->idate($this->date_start)."'":"null");
     		$sql.= " , date_end=".(! empty($this->date_end)?"'".$this->db->idate($this->date_end)."'":"null");
     		$sql.= " , product_type=".$this->product_type;
    @@ -4212,9 +4306,9 @@ class OrderLine extends CommonOrderLine
     
     		// Multicurrency
     		$sql.= " , multicurrency_subprice=".price2num($this->multicurrency_subprice)."";
    -        $sql.= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht)."";
    -        $sql.= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva)."";
    -        $sql.= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc)."";
    +		$sql.= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht)."";
    +		$sql.= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva)."";
    +		$sql.= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc)."";
     
     		$sql.= " WHERE rowid = ".$this->rowid;
     
    @@ -4234,10 +4328,10 @@ class OrderLine extends CommonOrderLine
     
     			if (! $error && ! $notrigger)
     			{
    -	            // Call trigger
    -	            $result=$this->call_trigger('LINEORDER_UPDATE',$user);
    -	            if ($result < 0) $error++;
    -	            // End call triggers
    +				// Call trigger
    +				$result=$this->call_trigger('LINEORDER_UPDATE',$user);
    +				if ($result < 0) $error++;
    +				// End call triggers
     			}
     
     			if (!$error) {
    @@ -4261,43 +4355,44 @@ class OrderLine extends CommonOrderLine
     		}
     	}
     
    -    /**
    -     *	Update DB line fields total_xxx
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Update DB line fields total_xxx
     	 *	Used by migration
    -     *
    -     *	@return		int		<0 if KO, >0 if OK
    -     */
    -    function update_total()
    -    {
    -        $this->db->begin();
    +	 *
    +	 *	@return		int		<0 if KO, >0 if OK
    +	 */
    +	function update_total()
    +	{
    +        // phpcs:enable
    +		$this->db->begin();
     
    -        // Clean parameters
    -        if (empty($this->total_localtax1)) $this->total_localtax1=0;
    -        if (empty($this->total_localtax2)) $this->total_localtax2=0;
    +		// Clean parameters
    +		if (empty($this->total_localtax1)) $this->total_localtax1=0;
    +		if (empty($this->total_localtax2)) $this->total_localtax2=0;
     
    -        // Mise a jour ligne en base
    -        $sql = "UPDATE ".MAIN_DB_PREFIX."commandedet SET";
    -        $sql.= " total_ht='".price2num($this->total_ht)."'";
    -        $sql.= ",total_tva='".price2num($this->total_tva)."'";
    -        $sql.= ",total_localtax1='".price2num($this->total_localtax1)."'";
    -        $sql.= ",total_localtax2='".price2num($this->total_localtax2)."'";
    -        $sql.= ",total_ttc='".price2num($this->total_ttc)."'";
    -        $sql.= " WHERE rowid = ".$this->rowid;
    +		// Mise a jour ligne en base
    +		$sql = "UPDATE ".MAIN_DB_PREFIX."commandedet SET";
    +		$sql.= " total_ht='".price2num($this->total_ht)."'";
    +		$sql.= ",total_tva='".price2num($this->total_tva)."'";
    +		$sql.= ",total_localtax1='".price2num($this->total_localtax1)."'";
    +		$sql.= ",total_localtax2='".price2num($this->total_localtax2)."'";
    +		$sql.= ",total_ttc='".price2num($this->total_ttc)."'";
    +		$sql.= " WHERE rowid = ".$this->rowid;
     
    -        dol_syslog("OrderLine::update_total", LOG_DEBUG);
    +		dol_syslog("OrderLine::update_total", LOG_DEBUG);
     
    -        $resql=$this->db->query($sql);
    -        if ($resql)
    -        {
    -            $this->db->commit();
    -            return 1;
    -        }
    -        else
    -        {
    -            $this->error=$this->db->error();
    -            $this->db->rollback();
    -            return -2;
    -        }
    -    }
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$this->db->commit();
    +			return 1;
    +		}
    +		else
    +		{
    +			$this->error=$this->db->error();
    +			$this->db->rollback();
    +			return -2;
    +		}
    +	}
     }
    -
    diff --git a/htdocs/commande/class/commandestats.class.php b/htdocs/commande/class/commandestats.class.php
    index 6d9dde94bc4..3c6ec07c6cb 100644
    --- a/htdocs/commande/class/commandestats.class.php
    +++ b/htdocs/commande/class/commandestats.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (c) 2005-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Marcos García        <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -34,6 +34,9 @@ include_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
      */
     class CommandeStats extends Stats
     {
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element;
     
     	var $socid;
    @@ -219,6 +222,5 @@ class CommandeStats extends Stats
     
     		return $this->_getAllByProduct($sql);
     	}
    -
     }
     
    diff --git a/htdocs/commande/contact.php b/htdocs/commande/contact.php
    index 7669239134a..b40a284e728 100644
    --- a/htdocs/commande/contact.php
    +++ b/htdocs/commande/contact.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Patrick Rouillon     <patrick@rouillon.net>
      * Copyright (C) 2005-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2015 Philippe Grand       <philippe.grand@atoo-net.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -214,5 +214,6 @@ if ($id > 0 || ! empty($ref))
     }
     
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/commande/customer.php b/htdocs/commande/customer.php
    index 9263ceb3f45..ff9cb2c37fb 100644
    --- a/htdocs/commande/customer.php
    +++ b/htdocs/commande/customer.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville 	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2007 Laurent Destailleur  	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin       		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin       		<regis.houssin@inodbox.com>
      * Copyright (C) 2012	   Andreu Bisquerra Gaya	<jove@bisquerra.com>
      * Copyright (C) 2012	   David Rodriguez Martinez <davidrm146@gmail.com>
      * Copyright (C) 2012	   Juanjo Menent			<jmenent@2byte.es>
    @@ -173,8 +173,8 @@ if ($resql)
     		print $result;
     		print '</td>';
     		print '<td>'.$obj->town.'&nbsp;</td>';
    -		print '<td align="left">'.$obj->code_client.'&nbsp;</td>';
    -		print '<td align="left">'.$obj->code_compta.'&nbsp;</td>';
    +		print '<td class="left">'.$obj->code_client.'&nbsp;</td>';
    +		print '<td class="left">'.$obj->code_compta.'&nbsp;</td>';
     		print '<td align="right">'.dol_print_date($db->jdate($obj->datec)).'</td>';
     		print "</tr>\n";
     		$i++;
    @@ -190,7 +190,7 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
     
    diff --git a/htdocs/commande/document.php b/htdocs/commande/document.php
    index ffebbaa260a..402467553fb 100644
    --- a/htdocs/commande/document.php
    +++ b/htdocs/commande/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
    @@ -97,7 +97,7 @@ if ($id > 0 || ! empty($ref))
     		$head = commande_prepare_head($object);
     		dol_fiche_head($head, 'documents', $langs->trans('CustomerOrder'), -1, 'order');
     
    -		// Construit liste des fichiers
    +		// Build file list
     		$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     		$totalsize=0;
     		foreach($filearray as $key => $file)
    @@ -189,6 +189,6 @@ else
     }
     
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/commande/index.php b/htdocs/commande/index.php
    index 5cfb87c7a25..a87c4d868bf 100644
    --- a/htdocs/commande/index.php
    +++ b/htdocs/commande/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -479,6 +479,6 @@ if (! empty($conf->commande->enabled))
     print '</div></div></div>';
     
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/commande/info.php b/htdocs/commande/info.php
    index 4bac4a3a447..c52fbd45a37 100644
    --- a/htdocs/commande/info.php
    +++ b/htdocs/commande/info.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2006 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -128,5 +128,6 @@ print '</div>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
    index bbdf59a295c..739e3699133 100644
    --- a/htdocs/commande/list.php
    +++ b/htdocs/commande/list.php
    @@ -1,15 +1,17 @@
     <?php
    -/* Copyright (C) 2001-2005 Rodolphe Quiedeville   <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2016 Laurent Destailleur    <eldy@users.sourceforge.net>
    - * Copyright (C) 2005      Marc Barilley / Ocebo  <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin          <regis.houssin@capnetworks.com>
    - * Copyright (C) 2012      Juanjo Menent          <jmenent@2byte.es>
    - * Copyright (C) 2013      Christophe Battarel    <christophe.battarel@altairis.fr>
    - * Copyright (C) 2013      Cédric Salvador        <csalvador@gpcsolutions.fr>
    - * Copyright (C) 2015      Frederic France        <frederic.france@free.fr>
    - * Copyright (C) 2015      Marcos García          <marcosgdf@gmail.com>
    - * Copyright (C) 2015      Jean-François Ferry    <jfefe@aternatik.fr>
    - * Copyright (C) 2016	   Ferran Marcet		  <fmarcet@2byte.es>
    +/* Copyright (C) 2001-2005  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005       Marc Barilley / Ocebo   <marc@ocebo.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2012       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2013       Christophe Battarel     <christophe.battarel@altairis.fr>
    + * Copyright (C) 2013       Cédric Salvador         <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2015-2018  Frédéric France         <frederic.france@netlogic.fr>
    + * Copyright (C) 2015       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2015       Jean-François Ferry     <jfefe@aternatik.fr>
    + * Copyright (C) 2016       Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2018       Charlene Benke	    <charlie@patas-monkey.com>
    +
      *
      * 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
    @@ -74,6 +76,7 @@ $socid=GETPOST('socid','int');
     $search_user=GETPOST('search_user','int');
     $search_sale=GETPOST('search_sale','int');
     $search_total_ht=GETPOST('search_total_ht','alpha');
    +$search_total_ttc=GETPOST('search_total_ttc','alpha');
     $search_categ_cus=trim(GETPOST("search_categ_cus",'int'));
     $optioncss = GETPOST('optioncss','alpha');
     $billed = GETPOST('billed','int');
    @@ -108,7 +111,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('commande');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -214,7 +217,6 @@ if (empty($reshook))
     	$uploaddir = $conf->commande->dir_output;
     	$trigger_name='ORDER_SENTBYMAIL';
     	include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
    -
     }
     
     
    @@ -233,7 +235,7 @@ $projectstatic=new Project($db);
     
     $title=$langs->trans("Orders");
     $help_url="EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes";
    -llxHeader('',$title,$help_url);
    +// llxHeader('',$title,$help_url);
     
     $sql = 'SELECT';
     if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
    @@ -301,32 +303,8 @@ if ($viewstatut <> '')
     		$sql .= ' AND ((c.fk_statut IN (1,2)) OR (c.fk_statut = 3 AND c.facture = 0))'; // validated, in process or closed but not billed
     	}
     }
    -if ($search_ordermonth > 0)
    -{
    -	if ($search_orderyear > 0 && empty($search_orderday))
    -	$sql.= " AND c.date_commande BETWEEN '".$db->idate(dol_get_first_day($search_orderyear,$search_ordermonth,false))."' AND '".$db->idate(dol_get_last_day($search_orderyear,$search_ordermonth,false))."'";
    -	else if ($search_orderyear > 0 && ! empty($search_orderday))
    -	$sql.= " AND c.date_commande BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $search_ordermonth, $search_orderday, $search_orderyear))."' AND '".$db->idate(dol_mktime(23, 59, 59, $search_ordermonth, $search_orderday, $search_orderyear))."'";
    -	else
    -	$sql.= " AND date_format(c.date_commande, '%m') = '".$search_ordermonth."'";
    -}
    -else if ($search_orderyear > 0)
    -{
    -	$sql.= " AND c.date_commande BETWEEN '".$db->idate(dol_get_first_day($search_orderyear,1,false))."' AND '".$db->idate(dol_get_last_day($search_orderyear,12,false))."'";
    -}
    -if ($search_deliverymonth > 0)
    -{
    -	if ($search_deliveryyear > 0 && empty($search_deliveryday))
    -	$sql.= " AND c.date_livraison BETWEEN '".$db->idate(dol_get_first_day($search_deliveryyear,$search_deliverymonth,false))."' AND '".$db->idate(dol_get_last_day($search_deliveryyear,$search_deliverymonth,false))."'";
    -	else if ($search_deliveryyear > 0 && ! empty($search_deliveryday))
    -	$sql.= " AND c.date_livraison BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $search_deliverymonth, $search_deliveryday, $search_deliveryyear))."' AND '".$db->idate(dol_mktime(23, 59, 59, $search_deliverymonth, $search_deliveryday, $search_deliveryyear))."'";
    -	else
    -	$sql.= " AND date_format(c.date_livraison, '%m') = '".$search_deliverymonth."'";
    -}
    -else if ($search_deliveryyear > 0)
    -{
    -	$sql.= " AND c.date_livraison BETWEEN '".$db->idate(dol_get_first_day($search_deliveryyear,1,false))."' AND '".$db->idate(dol_get_last_day($search_deliveryyear,12,false))."'";
    -}
    +$sql.= dolSqlDateFilter("c.date_commande", $search_orderday, $search_ordermonth, $search_orderyear);
    +$sql.= dolSqlDateFilter("c.date_livraison", $search_deliveryday, $search_deliverymonth, $search_deliveryyear);
     if ($search_town)  $sql.= natural_search('s.town', $search_town);
     if ($search_zip)   $sql.= natural_search("s.zip",$search_zip);
     if ($search_state) $sql.= natural_search("state.nom",$search_state);
    @@ -336,6 +314,7 @@ if ($search_company) $sql .= natural_search('s.nom', $search_company);
     if ($search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale;
     if ($search_user > 0) $sql.= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='commande' AND tc.source='internal' AND ec.element_id = c.rowid AND ec.fk_socpeople = ".$search_user;
     if ($search_total_ht != '') $sql.= natural_search('c.total_ht', $search_total_ht, 1);
    +if ($search_total_ttc != '') $sql.= natural_search('c.total_ttc', $search_total_ttc, 1);
     if ($search_project_ref != '') $sql.= natural_search("p.ref",$search_project_ref);
     if ($search_categ_cus > 0) $sql.= " AND cc.fk_categorie = ".$db->escape($search_categ_cus);
     if ($search_categ_cus == -2)   $sql.= " AND cc.fk_categorie IS NULL";
    @@ -400,6 +379,16 @@ if ($resql)
     
     	$arrayofselected=is_array($toselect)?$toselect:array();
     
    +	if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall)
    +	{
    +		$obj = $db->fetch_object($resql);
    +		$id = $obj->rowid;
    +		header("Location: ".DOL_URL_ROOT.'/commande/card.php?id='.$id);
    +		exit;
    +	}
    +
    +	llxHeader('',$title,$help_url);
    +
     	$param='';
     
     	if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
    @@ -438,6 +427,7 @@ if ($resql)
     
     	// List of mass actions available
     	$arrayofmassactions =  array(
    +		'generate_doc'=>$langs->trans("Generate"),
     		'presend'=>$langs->trans("SendByMail"),
     		'builddoc'=>$langs->trans("PDFMerge"),
     		'cancelorders'=>$langs->trans("Cancel"),
    @@ -489,7 +479,7 @@ if ($resql)
     		print $langs->trans('DateInvoice');
     		print '</td>';
     		print '<td>';
    -		print $form->select_date('', '', '', '', '', '', 1, 1);
    +		print $form->selectDate('', '', '', '', '', '', 1, 1);
     		print '</td>';
     		print '</tr>';
     		print '<tr>';
    @@ -1125,8 +1115,8 @@ if ($resql)
     			$i++;
     			if ($i == 1)
     			{
    -				if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
    -				else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +				if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +				else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     			}
     			elseif ($totalarray['totalhtfield'] == $i) print '<td align="right">'.price($totalarray['totalht']).'</td>';
     			elseif ($totalarray['totalvatfield'] == $i) print '<td align="right">'.price($totalarray['totalvat']).'</td>';
    @@ -1165,5 +1155,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/commande/note.php b/htdocs/commande/note.php
    index 6cff3bfb3bc..1a783f3aae7 100644
    --- a/htdocs/commande/note.php
    +++ b/htdocs/commande/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Florian Henry		<florian.henry@open-concept.pro>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
    @@ -142,5 +142,6 @@ if ($id > 0 || ! empty($ref))
     }
     
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/commande/orderstoinvoice.php b/htdocs/commande/orderstoinvoice.php
    index 03d379270b1..eee72695c7f 100644
    --- a/htdocs/commande/orderstoinvoice.php
    +++ b/htdocs/commande/orderstoinvoice.php
    @@ -1,12 +1,13 @@
     <?php
    -/* Copyright (C) 2001-2005 Rodolphe Quiedeville   	<rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2013 Laurent Destailleur   	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005      Marc Barilley / Ocebo  	<marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin          	<regis.houssin@capnetworks.com>
    - * Copyright (C) 2012	   Andreu Bisquerra Gaya  	<jove@bisquerra.com>
    - * Copyright (C) 2012	   David Rodriguez Martinez <davidrm146@gmail.com>
    - * Copyright (C) 2012-2018 Juanjo Menent			<jmenent@2byte.es>
    - * Copyright (C) 2015	   Ferran Marcet			<fmarcet@2byte.es>
    +/* Copyright (C) 2001-2005  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2013  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005       Marc Barilley / Ocebo   <marc@ocebo.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2012       Andreu Bisquerra Gaya   <jove@bisquerra.com>
    + * Copyright (C) 2012       David Rodriguez Martinez <davidrm146@gmail.com>
    + * Copyright (C) 2012-2018  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2015       Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -117,7 +118,6 @@ if (($action == 'create' || $action == 'add') && !$error)
     
     		$originid=$orders_id[0];
     		$_GET['originid']=$orders_id[0];
    -
     	}
     	if (isset($_POST['orders_to_invoice']))
     	{
    @@ -127,7 +127,6 @@ if (($action == 'create' || $action == 'add') && !$error)
     
     		$originid=$orders_id[0];
     		$_POST['originid']=$orders_id[0];
    -
     	}
     
     	$projectid		= GETPOST('projectid','int')?GETPOST('projectid','int'):0;
    @@ -137,7 +136,7 @@ if (($action == 'create' || $action == 'add') && !$error)
     	$closeOrders	= GETPOST('autocloseorders') ? true : false;
     
     	// Security check
    -	$fieldid = GETPOST('ref','alpha')?'facnumber':'rowid';
    +	$fieldid = GETPOST('ref','alpha')?'ref':'rowid';
     	if ($user->societe_id) $socid=$user->societe_id;
     	$result = restrictedArea($user, 'facture', $id,'','','fk_soc',$fieldid);
     
    @@ -164,7 +163,7 @@ if (($action == 'create' || $action == 'add') && !$error)
     				// Si facture standard
     				$object->socid				= $_POST['socid'];
     				$object->type				= $_POST['type'];
    -				$object->number				= $_POST['facnumber'];
    +				$object->number				= $_POST['ref'];
     				$object->date				= $datefacture;
     				$object->note_public		= trim($_POST['note_public']);
     				$object->note				= trim($_POST['note']);
    @@ -406,7 +405,7 @@ if ($action == 'create' && !$error)
     	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     	print '<input type="hidden" name="action" value="add">';
     	print '<input type="hidden" name="socid" value="'.$soc->id.'">' ."\n";
    -	print '<input name="facnumber" type="hidden" value="provisoire">';
    +	print '<input name="ref" type="hidden" value="provisoire">';
     	print '<input name="ref_client" type="hidden" value="'.$ref_client.'">';
     	print '<input name="ref_int" type="hidden" value="'.$ref_int.'">';
     	print '<input type="hidden" name="origin" value="'.GETPOST('origin').'">';
    @@ -442,7 +441,7 @@ if ($action == 'create' && !$error)
     
     	// Date invoice
     	print '<tr><td class="fieldrequired">'.$langs->trans('Date').'</td><td>';
    -	$html->select_date('','','','','',"add",1,1);
    +	print $html->selectDate('', '', '', '', '', "add", 1, 1);
     	print '</td></tr>';
     	// Payment term
     	print '<tr><td class="nowrap">'.$langs->trans('PaymentConditionsShort').'</td><td>';
    @@ -530,8 +529,6 @@ if ($action == 'create' && !$error)
     
     	print '</td></tr>';
     	print "</table>\n";
    -
    -
     }
     
     // Mode liste
    @@ -596,8 +593,8 @@ if (($action != 'create' && $action != 'add') || ($action == 'create' && $error)
     		$num = $db->num_rows($resql);
     		print load_fiche_titre($title);
     		$i = 0;
    -		$period=$html->select_date($date_start,'date_start',0,0,1,'',1,0,1).' - '.$html->select_date($date_end,'date_end',0,0,1,'',1,0,1);
    -		$periodely=$html->select_date($date_starty,'date_start_dely',0,0,1,'',1,0,1).' - '.$html->select_date($date_endy,'date_end_dely',0,0,1,'',1,0,1);
    +		$period=$html->selectDate($date_start,'date_start',0,0,1,'',1,0).' - '.$html->selectDate($date_end,'date_end',0,0,1,'',1,0);
    +		$periodely=$html->selectDate($date_starty,'date_start_dely',0,0,1,'',1,0).' - '.$html->selectDate($date_endy,'date_end_dely',0,0,1,'',1,0);
     
     		if (! empty($socid))
     		{
    @@ -654,7 +651,7 @@ if (($action != 'create' && $action != 'add') || ($action == 'create' && $error)
     		print '</form>';
     
     		print '<form name="orders2invoice" action="orderstoinvoice.php" method="GET">';
    -		
    +
     		$generic_commande = new Commande($db);
     
     		while ($i < $num)
    @@ -736,8 +733,8 @@ if (($action != 'create' && $action != 'add') || ($action == 'create' && $error)
     	{
     		dol_print_error($db);
     	}
    -
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/commande/stats/index.php b/htdocs/commande/stats/index.php
    index 8f259808357..6fc778fb064 100644
    --- a/htdocs/commande/stats/index.php
    +++ b/htdocs/commande/stats/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      *
    @@ -263,16 +263,16 @@ print '<input type="hidden" name="mode" value="'.$mode.'">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
     // Company
    -print '<tr><td align="left">'.$langs->trans("ThirdParty").'</td><td align="left">';
    +print '<tr><td class="left">'.$langs->trans("ThirdParty").'</td><td class="left">';
     if ($mode == 'customer') $filter='s.client in (1,2,3)';
     if ($mode == 'supplier') $filter='s.fournisseur = 1';
     print $form->select_company($socid,'socid',$filter,1,0,0,array(),0,'','style="width: 95%"');
     print '</td></tr>';
     // User
    -print '<tr><td align="left">'.$langs->trans("CreatedBy").'</td><td align="left">';
    +print '<tr><td class="left">'.$langs->trans("CreatedBy").'</td><td class="left">';
     print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
     // Status
    -print '<tr><td align="left">'.$langs->trans("Status").'</td><td align="left">';
    +print '<tr><td class="left">'.$langs->trans("Status").'</td><td class="left">';
     if ($mode == 'customer')
     {
         $liststatus=array(
    @@ -290,7 +290,7 @@ if ($mode == 'supplier')
     }
     print '</td></tr>';
     // Year
    -print '<tr><td align="left">'.$langs->trans("Year").'</td><td align="left">';
    +print '<tr><td class="left">'.$langs->trans("Year").'</td><td class="left">';
     if (! in_array($year,$arrayyears)) $arrayyears[$year]=$year;
     if (! in_array($nowyear,$arrayyears)) $arrayyears[$nowyear]=$nowyear;
     arsort($arrayyears);
    @@ -302,6 +302,7 @@ print '</form>';
     print '<br><br>';
     
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre" height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
    @@ -346,6 +347,7 @@ foreach ($data as $val)
     }
     
     print '</table>';
    +print '</div>';
     
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
    @@ -369,7 +371,6 @@ print '<div style="clear:both"></div>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/commande/tpl/linkedobjectblock.tpl.php b/htdocs/commande/tpl/linkedobjectblock.tpl.php
    index 758a37eddb8..392d2455e2a 100644
    --- a/htdocs/commande/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/commande/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2013		Juanjo Menent <jmenent@2byte.es>
      * Copyright (C) 2014       Marcos García <marcosgdf@gmail.com>
      *
    diff --git a/htdocs/compta/bank/annuel.php b/htdocs/compta/bank/annuel.php
    index a786cf5ca28..64f4e15cce6 100644
    --- a/htdocs/compta/bank/annuel.php
    +++ b/htdocs/compta/bank/annuel.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Charles-Fr BENKE     <charles.fr@benke.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *		\brief       Page to report input-output of a bank account
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
    @@ -339,7 +339,6 @@ else
     				$i++;
     			}
     			$db->free($resql);
    -
     		}
     		else
     		{
    @@ -494,5 +493,6 @@ else
     
     print "\n</div><br>\n";
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php
    index ec41a28327f..a8d86c1a5f9 100644
    --- a/htdocs/compta/bank/bankentries_list.php
    +++ b/htdocs/compta/bank/bankentries_list.php
    @@ -1,13 +1,14 @@
     <?php
     /* Copyright (C) 2001-2002  Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018  Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010  Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010  Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012       Vinícius Nogueira    <viniciusvgn@gmail.com>
      * Copyright (C) 2014       Florian Henry        <florian.henry@open-cooncept.pro>
      * Copyright (C) 2015       Jean-François Ferry  <jfefe@aternatik.fr>
      * Copyright (C) 2016       Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2017       Alexandre Spangaro   <aspangaro@zendsi.com>
      * Copyright (C) 2018       Ferran Marcet        <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -29,7 +30,7 @@
      *	\brief      List of bank transactions
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
     require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
    @@ -121,6 +122,12 @@ if ($id > 0 || ! empty($ref))
         $search_account = $object->id;     // Force the search field on id of account
     }
     
    +if (! ($object->id > 0) )
    +{
    +	$langs->load("errors");
    +	print($langs->trans('ErrorRecordNotFound'));
    +	exit;
    +}
     
     // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
     $hookmanager->initHooks(array('banktransactionlist', $contextpage));
    @@ -128,7 +135,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('banktransaction');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost('banktransaction','','search_');
     
     $arrayfields=array(
         'b.rowid'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
    @@ -203,12 +210,12 @@ if (empty($reshook))
     }
     
     // Conciliation
    -if (GETPOST('confirm_reconcile') && $user->rights->banque->consolidate)
    +if ((GETPOST('confirm_savestatement','alpha') || GETPOST('confirm_reconcile','alpha')) && $user->rights->banque->consolidate)
     {
         $error=0;
     
         // Definition, nettoyage parametres
    -    $num_releve=trim(GETPOST("num_releve"));
    +    $num_releve=trim(GETPOST("num_releve","alpha"));
     
         if ($num_releve)
         {
    @@ -221,7 +228,7 @@ if (GETPOST('confirm_reconcile') && $user->rights->banque->consolidate)
                     {
                         $result=$bankline->fetch($row);
                         $bankline->num_releve=$num_releve; //$_POST["num_releve"];
    -                    $result=$bankline->update_conciliation($user, GETPOST("cat"));
    +                    $result=$bankline->update_conciliation($user, GETPOST("cat"), GETPOST('confirm_reconcile','alpha')?1:0);	// If we confirm_reconcile, we set flag 'rappro' to 1.
                         if ($result < 0)
                         {
                             setEventMessages($bankline->error, $bankline->errors, 'errors');
    @@ -247,7 +254,21 @@ if (GETPOST('confirm_reconcile') && $user->rights->banque->consolidate)
     
         if (! $error)
         {
    -        header('Location: '.$_SERVER["PHP_SELF"].'?id='.$id);	// To avoid to submit twice and allow back
    +    	$param='action=reconcile&contextpage=banktransactionlist&id='.$id.'&search_account='.$id;
    +		$param.='&search_conciliated='.urlencode($search_conciliated);
    +		if ($page) $param.='&page='.urlencode($page);
    +		if ($offset) $param.='&offset='.urlencode($offset);
    +		if ($search_thirdparty) $param.='&search_thirdparty='.urlencode($search_thirdparty);
    +		if ($search_num_releve) $param.='&search_num_releve='.urlencode($search_num_releve);
    +		if ($search_start_dt) $param.='&search_start_dt='.urlencode($search_start_dt);
    +		if ($search_end_dt) $param.='&search_end_dt='.urlencode($search_end_dt);
    +		if ($search_start_dv) $param.='&search_start_dv='.urlencode($search_start_dv);
    +		if ($search_end_dv) $param.='&search_end_dv='.urlencode($search_end_dv);
    +		if ($search_type) $param.='&search_type='.urlencode($search_type);
    +		if ($search_debit) $param.='&search_debit='.urlencode($search_debit);
    +		if ($search_credit) $param.='&search_credit='.urlencode($search_credit);
    +		$param.='&sortfield='.urlencode($sortfield).'&sortorder='.urlencode($sortorder);
    +		header('Location: '.$_SERVER["PHP_SELF"].'?'.$param);	// To avoid to submit twice and allow the back button
             exit;
         }
     }
    @@ -301,7 +322,7 @@ if (GETPOST('save') && ! $cancel && $user->rights->banque->modifier)
         	$error++;
         }*/
     
    -    if (! $error)
    +    if (! $error && ! empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT))
         {
         	$objecttmp = new Account($db);
         	$objecttmp->fetch($bankaccountid);
    @@ -428,7 +449,7 @@ if ($id > 0 || ! empty($ref))
                 if ($user->rights->banque->consolidate) {
                 	$newparam = $param;
                 	$newparam = preg_replace('/search_conciliated=\d+/i','',$newparam);
    -            	$buttonreconcile = '<a class="butActionNew" style="margin-bottom: 5px !important; margin-top: 5px !important" href="'.DOL_URL_ROOT.'/compta/bank/bankentries_list.php?action=reconcile&search_conciliated=0'.$newparam.'">'.$langs->trans("Conciliate").'</a>';
    +            	$buttonreconcile = '<a class="butActionNew" style="margin-bottom: 5px !important; margin-top: 5px !important" href="'.DOL_URL_ROOT.'/compta/bank/bankentries_list.php?action=reconcile&sortfield=b.datev,b.dateo,b.rowid&amp;sortorder=asc,asc,asc&search_conciliated=0'.$newparam.'">'.$langs->trans("Conciliate").'</a>';
                 } else {
                 	$buttonreconcile = '<a class="butActionNewRefused" style="margin-bottom: 5px !important; margin-top: 5px !important" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>';
                 }
    @@ -578,6 +599,8 @@ if ($resql)
     	        print Form::selectarray('cat', $options, GETPOST('cat'), 1);
     	    }
     	    print '<br>'.$langs->trans("ThenCheckLinesAndConciliate").' ';
    +	    print '<input class="button" name="confirm_savestatement" type="submit" value="'.$langs->trans("SaveStatementOnly").'">';
    +	    print ' '.$langs->trans("or").' ';
     	    print '<input class="button" name="confirm_reconcile" type="submit" value="'.$langs->trans("Conciliate").'">';
     	    print ' '.$langs->trans("or").' ';
     	    print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';
    @@ -617,7 +640,7 @@ if ($resql)
     	    }
     
     		// Using BANK_REPORT_LAST_NUM_RELEVE to automatically report last num (or not)
    -		if ($conf->global->BANK_REPORT_LAST_NUM_RELEVE == 1)
    +		if (! empty($conf->global->BANK_REPORT_LAST_NUM_RELEVE))
     		{
     			print '
     			    <script type="text/javascript">
    @@ -629,7 +652,7 @@ if ($resql)
     	}
     
     	// Form to add a transaction with no invoice
    -	if ($user->rights->banque->modifier && $action == 'addline')
    +	if ($user->rights->banque->modifier && $action == 'addline' && ! empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT))
     	{
     		print load_fiche_titre($langs->trans("AddBankRecordLong"),'','');
     
    @@ -666,7 +689,7 @@ if ($resql)
     		}
     		print '</td>';
     		print '<td class="nowrap">';
    -		$form->select_date(empty($dateop)?-1:$dateop,'op',0,0,0,'transaction');
    +		print $form->selectDate(empty($dateop)?-1:$dateop, 'op', 0, 0, 0, 'transaction');
     		print '</td>';
     		print '<td>&nbsp;</td>';
     		print '<td class="nowrap">';
    @@ -728,7 +751,7 @@ if ($resql)
     	{
     		if (empty($conf->global->BANK_DISABLE_DIRECT_INPUT))
     		{
    -			if (! empty($conf->global->BANK_USE_VARIOUS_PAYMENT))	// If direct entries is done using miscellaneous payments
    +			if (empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT))	// If direct entries is done using miscellaneous payments
     			{
     				if ($user->rights->banque->modifier) {
     					$newcardbutton = '<a class="butActionNew" href="'.DOL_URL_ROOT.'/compta/bank/various_payment/card.php?action=create&accountid='.$search_account.'&backtopage='.urlencode($_SERVER['PHP_SELF'].'?id='.urlencode($search_account)).'"><span class="valignmiddle">'.$langs->trans("AddBankRecord").'</span>';
    @@ -787,17 +810,17 @@ if ($resql)
     	$moreforfilter.='<div class="divsearchfield">';
     	$moreforfilter .= $langs->trans('DateOperationShort').' : ';
     	$moreforfilter .= '<div class="nowrap'.($conf->browser->layout=='phone'?' centpercent':'').' inline-block">'.$langs->trans('From') . ' ';
    -	$moreforfilter .= $form->select_date($search_dt_start, 'search_start_dt', 0, 0, 1, "search_form", 1, 0, 1).'</div>';
    +	$moreforfilter .= $form->selectDate($search_dt_start, 'search_start_dt', 0, 0, 1, "search_form", 1, 0).'</div>';
     	//$moreforfilter .= ' - ';
    -	$moreforfilter .= '<div class="nowrap'.($conf->browser->layout=='phone'?' centpercent':'').' inline-block">'.$langs->trans('to') . ' ' . $form->select_date($search_dt_end, 'search_end_dt', 0, 0, 1, "search_form", 1, 0, 1).'</div>';
    +	$moreforfilter .= '<div class="nowrap'.($conf->browser->layout=='phone'?' centpercent':'').' inline-block">'.$langs->trans('to') . ' ' . $form->selectDate($search_dt_end, 'search_end_dt', 0, 0, 1, "search_form", 1, 0).'</div>';
     	$moreforfilter .= '</div>';
     
     	$moreforfilter.='<div class="divsearchfield">';
     	$moreforfilter .= $langs->trans('DateValueShort').' : ';
     	$moreforfilter .= '<div class="nowrap'.($conf->browser->layout=='phone'?' centpercent':'').' inline-block">'.$langs->trans('From') . ' ';
    -	$moreforfilter .= $form->select_date($search_dv_start, 'search_start_dv', 0, 0, 1, "search_form", 1, 0, 1).'</div>';
    +	$moreforfilter .= $form->selectDate($search_dv_start, 'search_start_dv', 0, 0, 1, "search_form", 1, 0).'</div>';
     	//$moreforfilter .= ' - ';
    -	$moreforfilter .= '<div class="nowrap'.($conf->browser->layout=='phone'?' centpercent':'').' inline-block">'.$langs->trans('to') . ' ' . $form->select_date($search_dv_end, 'search_end_dv', 0, 0, 1, "search_form", 1, 0, 1).'</div>';
    +	$moreforfilter .= '<div class="nowrap'.($conf->browser->layout=='phone'?' centpercent':'').' inline-block">'.$langs->trans('to') . ' ' . $form->selectDate($search_dv_end, 'search_end_dv', 0, 0, 1, "search_form", 1, 0).'</div>';
     	$moreforfilter .= '</div>';
     
     	if (! empty($conf->categorie->enabled))
    @@ -1400,16 +1423,17 @@ if ($resql)
     
         	if (! empty($arrayfields['b.num_releve']['checked']))
         	{
    -            print '<td class="nowrap" align="center">';
    +            print '<td class="nowraponall" align="center">';
             	// Transaction reconciliated or edit link
             	if ($bankaccount->canBeConciliated() > 0)
             	{
    -            	if ($objp->conciliated)  // If line not conciliated and account can be conciliated
    +        		if ($objp->num_releve)
                 	{
    -            	    print '<a href="releve.php?num='.$objp->num_releve.'&amp;account='.$objp->bankid.'">'.$objp->num_releve.'</a>';
    +            	    print '<a href="releve.php?num='.$objp->num_releve.'&account='.$objp->bankid.'&save_lastsearch_values=1">'.$objp->num_releve.'</a>';
                 	}
    -            	else if ($action == 'reconcile')
    +            	if (! $objp->conciliated && $action == 'reconcile')
                 	{
    +            		if ($objp->num_releve) print '&nbsp;';
                 	    print '<input class="flat" name="rowid['.$objp->rowid.']" type="checkbox" value="'.$objp->rowid.'" size="1"'.(! empty($_POST['rowid'][$objp->rowid])?' checked':'').'>';
                 	}
             	}
    @@ -1434,7 +1458,7 @@ if ($resql)
         	// Transaction reconciliated or edit link
         	if ($objp->conciliated && $bankaccount->canBeConciliated() > 0)  // If line not conciliated and account can be conciliated
         	{
    -    	    print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&amp;account='.$objp->bankid.'&amp;page='.$page.'">';
    +    	    print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?save_lastsearch_values=1&amp;rowid='.$objp->rowid.'&amp;account='.$objp->bankid.'&amp;page='.$page.'">';
         	    print img_edit();
         	    print '</a>';
         	}
    @@ -1442,13 +1466,13 @@ if ($resql)
         	{
         	    if ($user->rights->banque->modifier || $user->rights->banque->consolidate)
         	    {
    -    	        print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&amp;account='.$objp->bankid.'&amp;page='.$page.'">';
    +    	        print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?save_lastsearch_values=1&amp;rowid='.$objp->rowid.'&amp;account='.$objp->bankid.'&amp;page='.$page.'">';
         	        print img_edit();
         	        print '</a>';
         	    }
         	    else
         	    {
    -    	        print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&amp;account='.$objp->bankid.'&amp;page='.$page.'">';
    +    	        print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?save_lastsearch_values=1&amp;rowid='.$objp->rowid.'&amp;account='.$objp->bankid.'&amp;page='.$page.'">';
         	        print img_view();
         	        print '</a>';
         	    }
    @@ -1496,8 +1520,8 @@ if ($resql)
     	        $i++;
     	        if ($i == 1)
     	        {
    -	            if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
    -	            else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +	            if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +	            else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     	        }
     	        elseif ($totalarray['totaldebfield'] == $i) print '<td align="right">'.price(-1 * $totalarray['totaldeb']).'</td>';
     	        elseif ($totalarray['totalcredfield'] == $i) print '<td align="right">'.price($totalarray['totalcred']).'</td>';
    @@ -1529,6 +1553,6 @@ if ($_POST["action"] == "search" && ! $num)
     	print '<div class="opacitymedium">'.$langs->trans("NoRecordFound").'</div>';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/bank/bilan.php b/htdocs/compta/bank/bilan.php
    index 5e5194d55c8..99856a2dea2 100644
    --- a/htdocs/compta/bank/bilan.php
    +++ b/htdocs/compta/bank/bilan.php
    @@ -22,7 +22,7 @@
      *		\brief      Page de bilan
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
     // Load translation files required by the page
    @@ -92,5 +92,6 @@ print "<tr class=\"oddeven\"><td>".$langs->trans("BankBalance")."</td><td align=
     
     print "</table>";
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/bank/budget.php b/htdocs/compta/bank/budget.php
    index 280cd9bdbc0..1d20c4a0d00 100644
    --- a/htdocs/compta/bank/budget.php
    +++ b/htdocs/compta/bank/budget.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *		\brief      Page de budget
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
     // Load translation files required by the page
    @@ -96,5 +96,6 @@ else
     }
     print "</table>";
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/bank/card.php b/htdocs/compta/bank/card.php
    index db497733863..4e33a8c0aae 100644
    --- a/htdocs/compta/bank/card.php
    +++ b/htdocs/compta/bank/card.php
    @@ -2,10 +2,11 @@
     /* Copyright (C) 2002-2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2016	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2014-2017	Alexandre Spangaro		<aspangaro@zendsi.com>
      * Copyright (C) 2015		Jean-François Ferry		<jfefe@aternatik.fr>
      * Copyright (C) 2016		Marcos García			<marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -27,7 +28,7 @@
      *		\brief      Page to create/view a bank account
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/bank.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT . '/core/class/html.formcompany.class.php';
    @@ -59,7 +60,8 @@ $extrafields = new ExtraFields($db);
     // fetch optionals attributes and labels
     $extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
     
    -
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$hookmanager->initHooks(array('bankcard','globalcard'));
     
     /*
      * Actions
    @@ -284,7 +286,7 @@ if ($action == 'confirm_delete' && $_POST["confirm"] == "yes" && $user->rights->
     $form = new Form($db);
     $formbank = new FormBank($db);
     $formcompany = new FormCompany($db);
    -if (! empty($conf->accounting->enabled)) $formaccounting = New FormAccounting($db);
    +if (! empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db);
     
     $countrynotdefined=$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')';
     
    @@ -431,7 +433,7 @@ if ($action == 'create')
     
     	print '<tr><td>'.$langs->trans("Date").'</td>';
     	print '<td>';
    -	$form->select_date('', 're', 0, 0, 0, 'formsoc');
    +	print $form->selectDate('', 're', 0, 0, 0, 'formsoc');
     	print '</td></tr>';
     
     	print '<tr><td>'.$langs->trans("BalanceMinimalAllowed").'</td>';
    @@ -574,7 +576,6 @@ else
     		if ($action == 'delete')
     		{
     			$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id,$langs->trans("DeleteAccount"),$langs->trans("ConfirmDeleteAccount"),"confirm_delete");
    -
     		}
     
     		// Print form confirm
    @@ -590,7 +591,7 @@ else
     		print '<div class="fichehalfleft">';
     		print '<div class="underbanner clearboth"></div>';
     
    -		print '<table class="border" width="100%">';
    +		print '<table class="border tableforfield" width="100%">';
     
     		// Type
     		print '<tr><td class="titlefield">'.$langs->trans("AccountType").'</td>';
    @@ -657,7 +658,7 @@ else
     		print '<div class="ficheaddleft">';
     		print '<div class="underbanner clearboth"></div>';
     
    -		print '<table class="border centpercent">';
    +		print '<table class="border tableforfield centpercent">';
     
     		// Categories
     		if ($conf->categorie->enabled) {
    @@ -676,7 +677,7 @@ else
     
     			print '<div class="underbanner clearboth"></div>';
     
    -			print '<table class="border centpercent">';
    +			print '<table class="border tableforfield centpercent">';
     
     			print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("BankName").'</td>';
     			print '<td>'.$object->bank.'</td></tr>';
    @@ -764,7 +765,6 @@ else
     		}
     
     		print '</div>';
    -
     	}
     
     	/* ************************************************************************** */
    @@ -1031,8 +1031,8 @@ else
     
     		print '</form>';
     	}
    -
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/bank/categ.php b/htdocs/compta/bank/categ.php
    index be029fcb2f5..926252053e2 100644
    --- a/htdocs/compta/bank/categ.php
    +++ b/htdocs/compta/bank/categ.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Charles-Fr BENKE     <charles.fr@benke.fr>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      * Copyright (C) 2016      Marcos García        <marcosgdf@gmail.com>
    @@ -26,7 +26,7 @@
      *      \brief      Page ajout de categories bancaires
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/bankcateg.class.php';
     
    @@ -34,6 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/bankcateg.class.php';
     $langs->loadLangs(array('banks', 'categories'));
     
     $action=GETPOST('action','aZ09');
    +$optioncss  = GETPOST('optioncss','aZ');												// Option for the css output (always '' except when 'print')
     
     if (!$user->rights->banque->configurer)
       accessforbidden();
    @@ -80,16 +81,36 @@ if ($categid) {
     llxHeader();
     
     
    -print load_fiche_titre($langs->trans("RubriquesTransactions"), '', 'title_bank.png');
    +print load_fiche_titre($langs->trans("RubriquesTransactions"));
     
     print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    +if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    +print '<input type="hidden" name="action" value="list">';
    +/*print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
    +print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
    +print '<input type="hidden" name="page" value="'.$page.'">';
    +print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
    +*/
     
    +print '<div class="div-table-responsive">';		// You can use div-table-responsive-no-min if you dont need reserved height for your table
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
     print '<td>'.$langs->trans("Ref").'</td><td colspan="2">'.$langs->trans("Label").'</td>';
     print "</tr>\n";
     
    +// Line to add category
    +if ($action != 'edit')
    +{
    +
    +	print '<tr class="oddeven">';
    +	print '<td>&nbsp;</td><td><input name="label" type="text" size="45"></td>';
    +	print '<td align="center"><input type="submit" name="add" class="button" value="'.$langs->trans("Add").'"></td>';
    +	print '</tr>';
    +}
    +
    +
     $sql = "SELECT rowid, label";
     $sql.= " FROM ".MAIN_DB_PREFIX."bank_categ";
     $sql.= " WHERE entity = ".$conf->entity;
    @@ -129,19 +150,11 @@ if ($result)
     	$db->free($result);
     }
     
    +print '</table>';
    +print '</div>';
     
    -/*
    - * Line to add category
    - */
    -if ($action != 'edit')
    -{
    -
    -	print '<tr class="oddeven">';
    -	print '<td>&nbsp;</td><td><input name="label" type="text" size="45"></td>';
    -	print '<td align="center"><input type="submit" name="add" class="button" value="'.$langs->trans("Add").'"></td>';
    -	print '</tr>';
    -}
    -
    -print '</table></form>';
    +print '</form>';
     
    +// End of page
     llxFooter();
    +$db->close();
    diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php
    index 364004ca3f4..80a0c6f819b 100644
    --- a/htdocs/compta/bank/class/account.class.php
    +++ b/htdocs/compta/bank/class/account.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Christophe Combelles	<ccomb@free.fr>
    - * Copyright (C) 2005-2010	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2015-2016	Marcos García			<marcosgdf@gmail.com>
      * Copyright (C) 2015-2017	Alexandre Spangaro		<aspangaro@zendsi.com>
    @@ -36,8 +36,19 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class Account extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element = 'bank_account';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element = 'bank_account';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'account';
     
     	/**
    @@ -48,7 +59,7 @@ class Account extends CommonObject
     	public $rowid;
     
     	/**
    -	 * Label
    +	 * Account Label
     	 * @var string
     	 */
     	public $label;
    @@ -160,6 +171,10 @@ class Account extends CommonObject
     	 * @var string
     	 */
     	public $account_number;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_accountancy_journal;
     
     	/**
    @@ -241,7 +256,7 @@ class Account extends CommonObject
     	}
     
     	/**
    -	 * Shows the account number in the appropiate format
    +	 * Shows the account number in the appropriate format
     	 *
     	 * @return string
     	 */
    @@ -286,6 +301,7 @@ class Account extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Add a link between bank line record and its source
     	 *
    @@ -298,6 +314,7 @@ class Account extends CommonObject
     	 */
     	function add_url_line($line_id, $url_id, $url, $label, $type)
     	{
    +        // phpcs:enable
     		$sql = "INSERT INTO ".MAIN_DB_PREFIX."bank_url (";
     		$sql.= "fk_bank";
     		$sql.= ", url_id";
    @@ -325,6 +342,7 @@ class Account extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 		TODO Move this into AccountLine
     	 *      Return array with links from llx_bank_url
    @@ -332,10 +350,11 @@ class Account extends CommonObject
     	 *      @param  int         $fk_bank    To search using bank transaction id
     	 *      @param  int         $url_id     To search using link to
     	 *      @param  string      $type       To search using type
    -	 *      @return array|-1                Array of links array('url'=>, 'url_id'=>, 'label'=>, 'type'=> 'fk_bank'=> ) or -1 on error
    +	 *      @return array|int               Array of links array('url'=>, 'url_id'=>, 'label'=>, 'type'=> 'fk_bank'=> ) or -1 on error
     	 */
     	function get_url($fk_bank='', $url_id='', $type='')
     	{
    +        // phpcs:enable
     		$lines = array();
     
     		// Check parameters
    @@ -400,7 +419,7 @@ class Account extends CommonObject
     	 */
     	function addline($date, $oper, $label, $amount, $num_chq, $categorie, User $user, $emetteur='',$banque='', $accountancycode='', $datev=null)
     	{
    -		// Deprecatîon warning
    +		// Deprecation warning
     		if (is_numeric($oper)) {
     			dol_syslog(__METHOD__ . ": using numeric operations is deprecated", LOG_WARNING);
     		}
    @@ -411,7 +430,7 @@ class Account extends CommonObject
     
     		$now=dol_now();
     
    -		if (is_numeric($oper))    // Clean oper to have a code instead of a rowid
    +		if (is_numeric($oper))    // Clean operation to have a code instead of a rowid
     		{
     			$sql = "SELECT code FROM ".MAIN_DB_PREFIX."c_paiement";
     			$sql.= " WHERE id=".$oper;
    @@ -774,14 +793,16 @@ class Account extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 *    	Update BBAN (RIB) account fields
    +	 *  Update BBAN (RIB) account fields
     	 *
    -	 *    	@param	User	$user       Object user making update
    -	 *		@return	int					<0 if KO, >0 if OK
    +	 *  @param	User	$user       Object user making update
    +	 *	@return	int					<0 if KO, >0 if OK
     	 */
     	function update_bban(User $user = null)
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		// Clean parameters
    @@ -943,8 +964,10 @@ class Account extends CommonObject
     	 * Existing categories are left untouch.
     	 *
     	 * @param int[]|int $categories Category or categories IDs
    +     * @return void
     	 */
    -	public function setCategories($categories) {
    +    public function setCategories($categories)
    +    {
     		// Handle single category
     		if (! is_array($categories)) {
     			$categories = array($categories);
    @@ -1058,6 +1081,7 @@ class Account extends CommonObject
     		return $this->LibStatut($this->clos,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return label of given object status
     	 *
    @@ -1067,6 +1091,7 @@ class Account extends CommonObject
     	 */
     	function LibStatut($statut, $mode = 0)
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->load('banks');
     
    @@ -1095,6 +1120,7 @@ class Account extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Renvoi si un compte peut etre supprimer ou non (sans mouvements)
     	 *
    @@ -1102,6 +1128,7 @@ class Account extends CommonObject
     	 */
     	function can_be_deleted()
     	{
    +        // phpcs:enable
     		$can_be_deleted=false;
     
     		$sql = "SELECT COUNT(rowid) as nb";
    @@ -1162,6 +1189,7 @@ class Account extends CommonObject
     		return price2num($solde, 'MU');
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Load indicators for dashboard (this->nbtodo and this->nbtodolate)
     	 *
    @@ -1171,6 +1199,7 @@ class Account extends CommonObject
     	 */
     	function load_board(User $user, $filteraccountid = 0)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		if ($user->societe_id) return -1;   // protection pour eviter appel par utilisateur externe
    @@ -1217,6 +1246,7 @@ class Account extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Charge indicateurs this->nb de tableau de bord
     	 *		@param		int			$filteraccountid	To get info for a particular account id
    @@ -1224,6 +1254,7 @@ class Account extends CommonObject
     	 */
     	function load_state_board($filteraccountid = 0)
     	{
    +        // phpcs:enable
     		global $user;
     
     		if ($user->societe_id) return -1;   // protection pour eviter appel par utilisateur externe
    @@ -1300,13 +1331,19 @@ class Account extends CommonObject
     	 */
     	function getNomUrl($withpicto=0, $mode='', $option='', $save_lastsearch_value=-1, $notooltip=0)
     	{
    -		global $conf, $langs;
    +		global $conf, $langs, $user;
     
     		$result='';
     		$label = '<u>' . $langs->trans("ShowAccount") . '</u>';
     		$label .= '<br><b>' . $langs->trans('BankAccount') . ':</b> ' . $this->label;
     		$label .= '<br><b>' . $langs->trans('AccountNumber') . ':</b> ' . $this->number;
     		$label .= '<br><b>' . $langs->trans("AccountCurrency") . ':</b> ' . $this->currency_code;
    +
    +		if (empty($user->rights->banque->lire) || !empty($user->socid))
    +		{
    +			$option = 'nolink';
    +		}
    +
     		if (! empty($conf->accounting->enabled))
     		{
     			include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
    @@ -1337,6 +1374,11 @@ class Account extends CommonObject
     		$linkstart = '<a href="'.$url.$linkclose;
     		$linkend = '</a>';
     
    +                if ($option == 'nolink') {
    +                    $linkstart = '';
    +                    $linkend = '';
    +                }
    +
     		$result .= $linkstart;
     		if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
     		if ($withpicto != 2) $result.= $this->ref.($option == 'reflabel' && $this->label ? ' - '.$this->label : '');
    @@ -1491,7 +1533,6 @@ class Account extends CommonObject
     	 */
     	function info($id)
     	{
    -
     	}
     
     	/**
    @@ -1536,7 +1577,6 @@ class Account extends CommonObject
     
     		//Get the order the properties are shown
     		return $fieldarray;
    -
     	}
     
     	/**
    @@ -1610,7 +1650,6 @@ class Account extends CommonObject
     		$this->owner_address   = 'Owner address';
     		$this->country_id      = 1;
     	}
    -
     }
     
     
    @@ -1619,36 +1658,93 @@ class Account extends CommonObject
      */
     class AccountLine extends CommonObject
     {
    -	var $error;
    -	var $db;
    -	var $element='bank';
    -	var $table_element='bank';
    -	var $picto = 'generic';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    -	var $id;
    -	var $ref;
    -	var $datec;
    -	var $dateo;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='bank';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='bank';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto = 'generic';
    +
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +    /**
    +     * @var string Ref
    +     */
    +    public $ref;
    +
    +	public $datec;
    +	public $dateo;
     
     	/**
     	 * Value date
     	 */
    -	var $datev;
    -	var $amount;
    -	var $label;
    -	var $note;
    -	var $fk_user_author;
    -	var $fk_user_rappro;
    -	var $fk_type;
    -	var $rappro;        // Is it conciliated
    -	var $num_releve;    // If conciliated, what is bank statement
    -	var $num_chq;       // Num of cheque
    -	var $bank_chq;      // Bank of cheque
    -	var $fk_bordereau;  // Id of cheque receipt
    +	public $datev;
    +	public $amount;
     
    -	var $fk_account;            // Id of bank account
    -	var $bank_account_label;    // Label of bank account
    +    /**
    +     * @var string bank transaction lines label
    +     */
    +    public $label;
     
    +    public $note;
    +
    +    /**
    +     * @var int ID
    +     */
    +	public $fk_user_author;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_rappro;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_type;
    +
    +	public $rappro;        // Is it conciliated
    +	public $num_releve;    // If conciliated, what is bank statement
    +	public $num_chq;       // Num of cheque
    +	public $bank_chq;      // Bank of cheque
    +
    +	/**
    +     * @var int ID of cheque receipt
    +     */
    +	public $fk_bordereau;
    +
    +	/**
    +     * @var int ID of bank account
    +     */
    +	public $fk_account;
    +
    +	public $bank_account_label;    // Label of bank account
    +
    +    /**
    +	 * Issuer
    +	 * @var Societe
    +	 */
     	public $emetteur;
     
     	/**
    @@ -1834,6 +1930,7 @@ class AccountLine extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Delete bank line records
     	 *
    @@ -1842,6 +1939,7 @@ class AccountLine extends CommonObject
     	 */
     	function delete_urls(User $user = null)
     	{
    +        // phpcs:enable
     		$nbko=0;
     
     		if ($this->rappro)
    @@ -1904,15 +2002,18 @@ class AccountLine extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 *		Update conciliation field
    +	 *	Update conciliation field
     	 *
    -	 *		@param	User	$user		Objet user making update
    -	 *		@param 	int		$cat		Category id
    -	 *		@return	int					<0 if KO, >0 if OK
    +	 *	@param	User	$user			Objet user making update
    +	 *	@param 	int		$cat			Category id
    +	 *	@param	int		$conciliated	1=Set transaction to conciliated, 0=Keep transaction non conciliated
    +	 *	@return	int						<0 if KO, >0 if OK
     	 */
    -	function update_conciliation(User $user, $cat)
    +	function update_conciliation(User $user, $cat, $conciliated=1)
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$this->db->begin();
    @@ -1928,9 +2029,9 @@ class AccountLine extends CommonObject
     		}
     
     		$sql = "UPDATE ".MAIN_DB_PREFIX."bank SET";
    -		$sql.= " rappro = 1";
    +		$sql.= " rappro = ".$conciliated;
     		$sql.= ", num_releve = '".$this->db->escape($this->num_releve)."'";
    -		$sql.= ", fk_user_rappro = ".$user->id;
    +		if ($conciliated) $sql.= ", fk_user_rappro = ".$user->id;
     		$sql.= " WHERE rowid = ".$this->id;
     
     		dol_syslog(get_class($this)."::update_conciliation", LOG_DEBUG);
    @@ -1966,6 +2067,7 @@ class AccountLine extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Increase/decrease value date of a rowid
     	 *
    @@ -1975,6 +2077,7 @@ class AccountLine extends CommonObject
     	 */
     	function datev_change($rowid,$sign=1)
     	{
    +        // phpcs:enable
     		$sql = "SELECT datev FROM ".MAIN_DB_PREFIX."bank WHERE rowid = ".$rowid;
     		$resql = $this->db->query($sql);
     		if ($resql)
    @@ -2004,6 +2107,7 @@ class AccountLine extends CommonObject
     		return 0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Increase value date of a rowid
     	 *
    @@ -2012,9 +2116,11 @@ class AccountLine extends CommonObject
     	 */
     	function datev_next($id)
     	{
    +        // phpcs:enable
     		return $this->datev_change($id,1);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Decrease value date of a rowid
     	 *
    @@ -2023,10 +2129,12 @@ class AccountLine extends CommonObject
     	 */
     	function datev_previous($id)
     	{
    +        // phpcs:enable
     		return $this->datev_change($id,-1);
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Increase/decrease operation date of a rowid
     	 *
    @@ -2036,6 +2144,7 @@ class AccountLine extends CommonObject
     	 */
     	function dateo_change($rowid,$sign=1)
     	{
    +        // phpcs:enable
     		$sql = "SELECT dateo FROM ".MAIN_DB_PREFIX."bank WHERE rowid = ".$rowid;
     		$resql = $this->db->query($sql);
     		if ($resql)
    @@ -2065,6 +2174,7 @@ class AccountLine extends CommonObject
     		return 0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Increase operation date of a rowid
     	 *
    @@ -2073,9 +2183,11 @@ class AccountLine extends CommonObject
     	 */
     	function dateo_next($id)
     	{
    +        // phpcs:enable
     		return $this->dateo_change($id,1);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Decrease operation date of a rowid
     	 *
    @@ -2084,6 +2196,7 @@ class AccountLine extends CommonObject
     	 */
     	function dateo_previous($id)
     	{
    +        // phpcs:enable
     		return $this->dateo_change($id,-1);
     	}
     
    @@ -2190,6 +2303,7 @@ class AccountLine extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -2199,6 +2313,7 @@ class AccountLine extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		//$langs->load('companies');
     		/*
    @@ -2268,6 +2383,4 @@ class AccountLine extends CommonObject
     		}
     		return 0;
     	}
    -
     }
    -
    diff --git a/htdocs/compta/bank/class/bankcateg.class.php b/htdocs/compta/bank/class/bankcateg.class.php
    index 176fdb626a5..dc9c1d242e8 100644
    --- a/htdocs/compta/bank/class/bankcateg.class.php
    +++ b/htdocs/compta/bank/class/bankcateg.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016 Marcos García        <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -30,11 +30,21 @@ class BankCateg // extends CommonObject
     {
     	//public $element='bank_categ';			//!< Id that identify managed objects
     	//public $table_element='bank_categ';	//!< Name of table without prefix where object is stored
    -    public $picto='generic';
    -    
    -	public $id;
    -	public $label;
    -   
    +    /**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto='generic';
    +
    +	/**
    +     * @var int ID
    +     */
    +    public $id;
    +
    +	/**
    +     * @var string bank categories label
    +     */
    +    public $label;
    +
     
     	/**
     	 * Constructor
    @@ -205,7 +215,7 @@ class BankCateg // extends CommonObject
     		{
     		    $sql = "DELETE FROM ".MAIN_DB_PREFIX."categorie_account";
         		$sql.= " WHERE fk_categorie = ".$this->id;
    -    		
    +
         		$resql = $this->db->query($sql);
         		if (!$resql)
         		{
    @@ -213,13 +223,13 @@ class BankCateg // extends CommonObject
         		    $this->errors[] = "Error ".$this->db->lasterror();
         		}
     		}
    -		
    +
     		// Delete link between tag and bank lines
     		if (! $error)
     		{
     		    $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_class";
     		    $sql.= " WHERE fk_categ = ".$this->id;
    -		
    +
     		    $resql = $this->db->query($sql);
     		    if (!$resql)
     		    {
    @@ -227,21 +237,21 @@ class BankCateg // extends CommonObject
     		        $this->errors[] = "Error ".$this->db->lasterror();
     		    }
     		}
    -		
    +
     		// Delete bank categ
     		if (! $error)
     		{
         		$sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_categ";
         		$sql .= " WHERE rowid=".$this->id;
    -    
    +
         		$resql = $this->db->query($sql);
    -    		if (!$resql) 
    +    		if (!$resql)
         		{
         			$error++;
         			$this->errors[] = "Error ".$this->db->lasterror();
         		}
     		}
    -		
    +
         	// Commit or rollback
     		if ($error) {
     			foreach ($this->errors as $errmsg) {
    @@ -270,8 +280,6 @@ class BankCateg // extends CommonObject
     
     		$object = new BankCateg($this->db);
     
    -		$object->context['createfromclone'] = 'createfromclone';
    -
     		$this->db->begin();
     
     		// Load source object
    @@ -280,6 +288,7 @@ class BankCateg // extends CommonObject
     		$object->statut = 0;
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result = $object->create($user);
     
     		// Other options
    @@ -339,5 +348,4 @@ class BankCateg // extends CommonObject
     		$this->id = 0;
     		$this->label = '';
     	}
    -
     }
    diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php
    index fe56ea99504..47edacb2410 100644
    --- a/htdocs/compta/bank/class/paymentvarious.class.php
    +++ b/htdocs/compta/bank/class/paymentvarious.class.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2017       Alexandre Spangaro  <aspangaro@zendsi.com>
    +/* Copyright (C) 2017       Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -30,25 +31,65 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class PaymentVarious extends CommonObject
     {
    -	public $element='variouspayment';		//!< Id that identify managed objects
    -	public $table_element='payment_various';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='variouspayment';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='payment_various';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'bill';
     
    -	var $id;
    -	var $ref;
    -	var $tms;
    -	var $datep;
    -	var $datev;
    -	var $sens;
    -	var $amount;
    -	var $type_payment;
    -	var $num_payment;
    -	var $label;
    -	var $accountancy_code;
    -	var $fk_project;
    -	var $fk_bank;
    -	var $fk_user_author;
    -	var $fk_user_modif;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +	/**
    +	 * @var string Ref
    +	 */
    +	public $ref;
    +
    +	public $tms;
    +	public $datep;
    +	public $datev;
    +	public $sens;
    +	public $amount;
    +	public $type_payment;
    +	public $num_payment;
    +
    +	/**
    +     * @var string various payments label
    +     */
    +    public $label;
    +
    +	public $accountancy_code;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_project;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_bank;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_author;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_modif;
     
     
     	/**
    @@ -61,14 +102,13 @@ class PaymentVarious extends CommonObject
     		$this->db = $db;
     		$this->element = 'payment_various';
     		$this->table_element = 'payment_various';
    -		return 1;
     	}
     
     	/**
     	 * Update database
     	 *
     	 * @param   User	$user        	User that modify
    -	 * @param	int		$notrigger	    0=no, 1=yes (no update trigger)
    +	 * @param   int		$notrigger      0=no, 1=yes (no update trigger)
     	 * @return  int         			<0 if KO, >0 if OK
     	 */
     	function update($user=null, $notrigger=0)
    @@ -81,9 +121,9 @@ class PaymentVarious extends CommonObject
     		$this->amount=trim($this->amount);
     		$this->label=trim($this->label);
     		$this->note=trim($this->note);
    -		$this->fk_bank=trim($this->fk_bank);
    -		$this->fk_user_author=trim($this->fk_user_author);
    -		$this->fk_user_modif=trim($this->fk_user_modif);
    +		$this->fk_bank = (int) $this->fk_bank;
    +		$this->fk_user_author = (int) $this->fk_user_author;
    +		$this->fk_user_modif = (int) $this->fk_user_modif;
     
     		$this->db->begin();
     
    @@ -281,9 +321,9 @@ class PaymentVarious extends CommonObject
     		$this->amount=price2num(trim($this->amount));
     		$this->label=trim($this->label);
     		$this->note=trim($this->note);
    -		$this->fk_bank=trim($this->fk_bank);
    -		$this->fk_user_author=trim($this->fk_user_author);
    -		$this->fk_user_modif=trim($this->fk_user_modif);
    +		$this->fk_bank = (int) $this->fk_bank;
    +		$this->fk_user_author = (int) $this->fk_user_author;
    +		$this->fk_user_modif = (int) $this->fk_user_modif;
     
     		// Check parameters
     		if (! $this->label)
    @@ -363,13 +403,14 @@ class PaymentVarious extends CommonObject
     
     					// Insert payment into llx_bank
     					// Add link 'payment_various' in bank_url between payment and bank transaction
    -					if ($this->sens == '0') $sign='-';
    +					$sign=1;
    +					if ($this->sens == '0') $sign=-1;
     
     					$bank_line_id = $acc->addline(
     						$this->datep,
     						$this->type_payment,
     						$this->label,
    -						$sign.abs($this->amount),
    +						$sign * abs($this->amount),
     						$this->num_payment,
     						'',
     						$user
    @@ -411,7 +452,6 @@ class PaymentVarious extends CommonObject
     				$result=$this->call_trigger('PAYMENT_VARIOUS_CREATE',$user);
     				if ($result < 0) $error++;
     				// End call triggers
    -
     			}
     			else $error++;
     
    @@ -434,6 +474,7 @@ class PaymentVarious extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update link between payment various and line generate into llx_bank
     	 *
    @@ -442,6 +483,7 @@ class PaymentVarious extends CommonObject
     	 */
     	function update_fk_bank($id_bank)
     	{
    +        // phpcs:enable
     		$sql = 'UPDATE '.MAIN_DB_PREFIX.'payment_various SET fk_bank = '.$id_bank;
     		$sql.= ' WHERE rowid = '.$this->id;
     		$result = $this->db->query($sql);
    @@ -468,6 +510,7 @@ class PaymentVarious extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -477,39 +520,40 @@ class PaymentVarious extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
     		{
     			return $langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			return $langs->trans($this->statuts_short[$statut]);
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts_short[$statut]);
    -			if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts_short[$statut]);
    -			if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts_short[$statut]);
    +			elseif ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts_short[$statut]);
    +			elseif ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts_short[$statut]);
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut==0 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0');
    -			if ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4');
    -			if ($statut==2 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    +			elseif ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4');
    +			elseif ($statut==2 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut==0 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]);
    -			if ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts[$statut]);
    -			if ($statut==2 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
    +			elseif ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts[$statut]);
    +			elseif ($statut==2 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut==0 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut0');
    -			if ($statut==1 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut4');
    -			if ($statut==2 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    +			elseif ($statut==1 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut4');
    +			elseif ($statut==2 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
     		}
     	}
     
    @@ -517,24 +561,71 @@ class PaymentVarious extends CommonObject
     	/**
     	 *	Send name clicable (with possibly the picto)
     	 *
    -	 *	@param  int		$withpicto		0=No picto, 1=Include picto into link, 2=Only picto
    -	 *	@param  string	$option			link option
    -	 *	@return string					Chaine with URL
    +	 *	@param  int		$withpicto					0=No picto, 1=Include picto into link, 2=Only picto
    +	 *	@param  string	$option						link option
    +	 *  @param  int     $save_lastsearch_value	 	-1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    +     *  @param	int  	$notooltip		 			1=Disable tooltip
    +	 *	@return string								String with URL
     	 */
    -	function getNomUrl($withpicto=0,$option='')
    +	function getNomUrl($withpicto=0, $option='', $save_lastsearch_value=-1, $notooltip=0)
     	{
    +		global $db, $conf, $langs, $hookmanager;
     		global $langs;
     
    -		$result='';
    -		$label=$langs->trans("ShowVariousPayment").': '.$this->ref;
    +		if (! empty($conf->dol_no_mouse_hover)) $notooltip=1;   // Force disable tooltips
     
    -		$linkstart = '<a href="'.DOL_URL_ROOT.'/compta/bank/various_payment/card.php?id='.$this->id.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
    +		$result='';
    +
    +		$label='<u>'.$langs->trans("ShowVariousPayment").'</u>';
    +		$label.= '<br>';
    +		$label.= '<b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
    +
    +		$url = DOL_URL_ROOT.'/compta/bank/various_payment/card.php?id='.$this->id;
    +
    +		if ($option != 'nolink')
    +		{
    +			// Add param to save lastsearch_values or not
    +			$add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    +			if ($save_lastsearch_value == -1 && preg_match('/list\.php/',$_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1;
    +			if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
    +		}
    +
    +		$linkclose='';
    +		if (empty($notooltip))
    +		{
    +			if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
    +			{
    +				$label=$langs->trans("ShowMyObject");
    +				$linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    +			}
    +			$linkclose.=' title="'.dol_escape_htmltag($label, 1).'"';
    +			$linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"';
    +
    +			/*
    +			 $hookmanager->initHooks(array('myobjectdao'));
    +			 $parameters=array('id'=>$this->id);
    +			 $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +			 if ($reshook > 0) $linkclose = $hookmanager->resPrint;
    +			 */
    +		}
    +		else $linkclose = ($morecss?' class="'.$morecss.'"':'');
    +
    +		$linkstart = '<a href="'.$url.'"';
    +		$linkstart.=$linkclose.'>';
     		$linkend='</a>';
     
     		$result .= $linkstart;
     		if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
    -		if ($withpicto != 2) $result.= ($maxlen?dol_trunc($this->ref,$maxlen):$this->ref);
    +		if ($withpicto != 2) $result.= $this->ref;
     		$result .= $linkend;
    +		//if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
    +
    +		global $action;
    +		$hookmanager->initHooks(array('variouspayment'));
    +		$parameters=array('id'=>$this->id, 'getnomurl'=>$result);
    +		$reshook=$hookmanager->executeHooks('getNomUrl',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +		if ($reshook > 0) $result = $hookmanager->resPrint;
    +		else $result .= $hookmanager->resPrint;
     
     		return $result;
     	}
    @@ -582,5 +673,4 @@ class PaymentVarious extends CommonObject
     			dol_print_error($this->db);
     		}
     	}
    -
     }
    diff --git a/htdocs/compta/bank/document.php b/htdocs/compta/bank/document.php
    index 33e74dc3691..e9fdc37a79f 100644
    --- a/htdocs/compta/bank/document.php
    +++ b/htdocs/compta/bank/document.php
    @@ -3,7 +3,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2017 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017 Regis Houssin         <regis.houssin@inodbox.com>
      *
      * 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
    @@ -24,7 +24,7 @@
      * 	\ingroup    banque
      * 	\brief      Page de gestion des documents attaches a un compte bancaire
      */
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT . "/core/lib/bank.lib.php";
     require_once DOL_DOCUMENT_ROOT . "/core/lib/files.lib.php";
     require_once DOL_DOCUMENT_ROOT . "/core/lib/images.lib.php";
    @@ -105,7 +105,7 @@ if ($id > 0 || !empty($ref)) {
             dol_fiche_head($head, 'document', $langs->trans("FinancialAccount"), -1, 'account');
     
     
    -        // Construit liste des fichiers
    +        // Build file list
             $filearray = dol_dir_list($upload_dir, "files", 0, '', '\.meta$',
                     $sortfield,
                     (strtolower($sortorder) == 'desc' ? SORT_DESC : SORT_ASC), 1);
    @@ -147,7 +147,6 @@ else {
         exit;
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/bank/graph.php b/htdocs/compta/bank/graph.php
    index b829002a990..958ff129a06 100644
    --- a/htdocs/compta/bank/graph.php
    +++ b/htdocs/compta/bank/graph.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -23,7 +23,7 @@
      *	\brief      Page graph des transactions bancaires
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
    @@ -265,7 +265,7 @@ else
     		unset($amounts);
     	}
     
    -	// Tableau 2
    +	// Graph Balance for the year
     
     	if ($mode == 'standard')
     	{
    @@ -384,7 +384,7 @@ else
     		$px2->SetTitle($title);
     		$px2->SetWidth($WIDTH);
     		$px2->SetHeight($HEIGHT);
    -		$px2->SetType(array('lines','lines','lines'));
    +		$px2->SetType(array('linesnopoint','linesnopoint','linesnopoint'));
     		$px2->setBgColor('onglet');
     		$px2->setBgColorGrid(array(255,255,255));
     		$px2->SetHideXGrid(true);
    @@ -403,7 +403,7 @@ else
     		unset($amounts);
     	}
     
    -	// Tableau 3 - All time line
    +	// Graph 3 - Balance for all time line
     
     	if ($mode == 'showalltime')
     	{
    @@ -500,7 +500,7 @@ else
     		$px3->SetTitle($title);
     		$px3->SetWidth($WIDTH);
     		$px3->SetHeight($HEIGHT);
    -		$px3->SetType(array('lines','lines','lines'));
    +		$px3->SetType(array('linesnopoint','linesnopoint','linesnopoint'));
     		$px3->setBgColor('onglet');
     		$px3->setBgColorGrid(array(255,255,255));
     		$px3->SetPrecisionY(0);
    @@ -864,7 +864,6 @@ if ($mode == 'showalltime')
     
     print '</table>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/bank/info.php b/htdocs/compta/bank/info.php
    index ab43b9374aa..7eaeb515aa9 100644
    --- a/htdocs/compta/bank/info.php
    +++ b/htdocs/compta/bank/info.php
    @@ -21,7 +21,7 @@
      *     \brief      Onglet info d'une ecriture bancaire
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
    @@ -71,5 +71,6 @@ print '</td></tr></table>';
     
     print '</div>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/bank/ligne.php b/htdocs/compta/bank/ligne.php
    index e006f78c6e7..d98db0ea998 100644
    --- a/htdocs/compta/bank/ligne.php
    +++ b/htdocs/compta/bank/ligne.php
    @@ -3,10 +3,11 @@
      * Copyright (C) 2003      Xavier DUTOIT        <doli@sydesy.com>
      * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Christophe Combelles <ccomb@free.fr>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015-2017 Alexandre Spangaro	<aspangaro@zendsi.com>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      * Copyright (C) 2016      Marcos García        <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -28,12 +29,12 @@
      *	\brief      Page to edit a bank transaction record
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
     
     // Load translation files required by the page
    -$langs->loadLangs(array('banks', 'categories', 'compta', 'bills'));
    +$langs->loadLangs(array('banks', 'categories', 'compta', 'bills', 'other'));
     if (! empty($conf->adherent->enabled)) $langs->load("members");
     if (! empty($conf->don->enabled)) $langs->load("donations");
     if (! empty($conf->loan->enabled)) $langs->load("loan");
    @@ -98,8 +99,10 @@ if ($action == 'confirm_delete_categ' && $confirm == "yes" && $user->rights->ban
         	{
             	dol_print_error($db);
         	}
    -	} else {
    -		setEventMessage('Missing ids','errors');
    +	}
    +	else
    +	{
    +		setEventMessages($langs->trans("MissingIds"), null, 'errors');
     	}
     }
     
    @@ -338,16 +341,26 @@ if ($result)
                 {
                     if ($key) print '<br>';
                     if ($links[$key]['type']=='payment') {
    -                    print '<a href="'.DOL_URL_ROOT.'/compta/paiement/card.php?id='.$links[$key]['url_id'].'">';
    +                    require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
    +                    $paymenttmp=new Paiement($db);
    +                    $paymenttmp->fetch($links[$key]['url_id']);
    +                    $paymenttmp->ref = $langs->trans("Payment").' '.$paymenttmp->ref;
    +                    /*print '<a href="'.DOL_URL_ROOT.'/compta/paiement/card.php?id='.$links[$key]['url_id'].'">';
                         print img_object($langs->trans('ShowPayment'),'payment').' ';
                         print $langs->trans("Payment");
    -                    print '</a>';
    +                    print '</a>';*/
    +                    print $paymenttmp->getNomUrl(1);
                     }
                     else if ($links[$key]['type']=='payment_supplier') {
    -                    print '<a href="'.DOL_URL_ROOT.'/fourn/paiement/card.php?id='.$links[$key]['url_id'].'">';
    +                    require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php';
    +                    $paymenttmp=new PaiementFourn($db);
    +                    $paymenttmp->fetch($links[$key]['url_id']);
    +                    $paymenttmp->ref = $langs->trans("Payment").' '.$paymenttmp->ref;
    +                    /*print '<a href="'.DOL_URL_ROOT.'/fourn/paiement/card.php?id='.$links[$key]['url_id'].'">';
                         print img_object($langs->trans('ShowPayment'),'payment').' ';
                         print $langs->trans("Payment");
    -                    print '</a>';
    +                    print '</a>';*/
    +                    print $paymenttmp->getNomUrl(1);
                     }
                     else if ($links[$key]['type']=='company') {
                         $societe=new Societe($db);
    @@ -448,7 +461,6 @@ if ($result)
                     $receipt=new RemiseCheque($db);
                     $receipt->fetch($objp->receiptid);
                     print ' &nbsp; &nbsp; '.$langs->trans("CheckReceipt").': '.$receipt->getNomUrl(2);
    -
                 }
                 print '</td>';
             }
    @@ -495,7 +507,7 @@ if ($result)
             if ($user->rights->banque->modifier || $user->rights->banque->consolidate)
             {
                 print '<td>';
    -            print $form->select_date($db->jdate($objp->do),'dateo','','','','update',1,0,1,$objp->rappro);
    +            print $form->selectDate($db->jdate($objp->do), 'dateo', '', '', '', 'update', 1, 0, $objp->rappro);
                 if (! $objp->rappro)
                 {
                     print ' &nbsp; ';
    @@ -519,7 +531,7 @@ if ($result)
             if ($user->rights->banque->modifier || $user->rights->banque->consolidate)
             {
                 print '<td>';
    -            print $form->select_date($db->jdate($objp->dv),'datev','','','','update',1,0,1,$objp->rappro);
    +            print $form->selectDate($db->jdate($objp->dv), 'datev', '', '', '', 'update', 1, 0, $objp->rappro);
                 if (! $objp->rappro)
                 {
                     print ' &nbsp; ';
    @@ -594,7 +606,7 @@ if ($result)
                 $langs->load('categories');
     
                 // Bank line
    -            print '<tr><td class="toptd">' . fieldLabel('RubriquesTransactions', 'custcats') . '</td><td>';
    +            print '<tr><td class="toptd">' . $form->editfieldkey('RubriquesTransactions', 'custcats', '', $object, 0) . '</td><td>';
                 $cate_arbo = $form->select_all_categories(Categorie::TYPE_BANK_LINE, null, 'parent', null, null, 1);
                 print $form->multiselectarray('custcats', $cate_arbo, $arrayselected, null, null, null, null, "90%");
                 print "</td></tr>";
    @@ -679,13 +691,12 @@ if ($result)
     
     			print '</form>';
             }
    -
         }
     
         $db->free($result);
     }
     else dol_print_error($db);
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php
    index 3a67a3d5309..cc93cfd61a1 100644
    --- a/htdocs/compta/bank/list.php
    +++ b/htdocs/compta/bank/list.php
    @@ -1,9 +1,7 @@
     <?php
    -use Stripe\BankAccount;
    -
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      * Copyright (C) 2018      Ferran Marcet		<fmarcet@2byte.es>
      *
    @@ -27,7 +25,7 @@ use Stripe\BankAccount;
      *       \brief      Home page of bank module
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/tva/class/tva.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php';
    @@ -76,7 +74,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('bank_account');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -428,7 +426,7 @@ foreach ($accounts as $key=>$type)
         // Ref
         if (! empty($arrayfields['b.ref']['checked']))
         {
    -        print '<td>'.$obj->getNomUrl(1).'</td>';
    +        print '<td class="nowrap">'.$obj->getNomUrl(1).'</td>';
     	    if (! $i) $totalarray['nbfield']++;
         }
     
    @@ -552,7 +550,7 @@ foreach ($accounts as $key=>$type)
         // Balance
         if (! empty($arrayfields['balance']['checked']))
         {
    -		print '<td align="right">';
    +		print '<td align="right" class="nowraponall">';
     		print '<a href="'.DOL_URL_ROOT.'/compta/bank/bankentries_list.php?id='.$obj->id.'">'.price($solde, 0, $langs, 0, -1, -1, $obj->currency_code).'</a>';
     		print '</td>';
     		if (! $i) $totalarray['nbfield']++;
    @@ -590,8 +588,8 @@ if (isset($totalarray['totalbalancefield']) && $lastcurrencycode != 'various')	/
             $i++;
             if ($i == 1)
             {
    -            if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
    -            else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +            if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +            else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
             }
             elseif ($totalarray['totalbalancefield'] == $i) print '<td align="right">'.price($totalarray['totalbalance'], 0, $langs, 0, 0, -1, $lastcurrencycode).'</td>';
             else print '<td></td>';
    @@ -604,7 +602,6 @@ print "</div>";
     
     print "</form>";
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/bank/releve.php b/htdocs/compta/bank/releve.php
    index 1d9d5526700..d355fcc4900 100644
    --- a/htdocs/compta/bank/releve.php
    +++ b/htdocs/compta/bank/releve.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      * Copyright (C) 2017      Patrick Delcroix	<pmpdelcroix@gmail.com>
      *
    @@ -25,7 +25,7 @@
      *		\brief      Page to show a bank statement report
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
     require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
    @@ -417,7 +417,7 @@ if (empty($numref))
     			if ($user->rights->banque->consolidate) {
     				print '<a class="butAction" href="'.DOL_URL_ROOT.'/compta/bank/bankentries_list.php?action=reconcile&search_conciliated=0'.$param.'">'.$langs->trans("Conciliate").'</a>';
     			} else {
    -				print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>';
    +				print '<a class="butActionRefused classfortooltip" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>';
     			}
     		}
     
    @@ -813,7 +813,6 @@ else
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/bank/transfer.php b/htdocs/compta/bank/transfer.php
    index 765001e75a5..ae6b625b6e5 100644
    --- a/htdocs/compta/bank/transfer.php
    +++ b/htdocs/compta/bank/transfer.php
    @@ -1,10 +1,11 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012	   Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -26,7 +27,7 @@
      *		\brief      Page de saisie d'un virement
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
    @@ -253,7 +254,7 @@ $form->select_comptes($account_to, 'account_to', 0, '', 1, '', empty($conf->mult
     print "</td>\n";
     
     print "<td>";
    -$form->select_date((! empty($dateo)?$dateo:''),'','','','','add');
    +print $form->selectDate((! empty($dateo)?$dateo:''), '', '', '', '', 'add');
     print "</td>\n";
     print '<td><input name="label" class="flat quatrevingtpercent" type="text" value="'.dol_escape_htmltag($label).'"></td>';
     print '<td><input name="amount" class="flat" type="text" size="6" value="'.dol_escape_htmltag($amount).'"></td>';
    @@ -265,5 +266,6 @@ print '<br><div class="center"><input type="submit" class="button" value="'.$lan
     
     print "</form>";
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/bank/treso.php b/htdocs/compta/bank/treso.php
    index 0fb8880ce87..bc9aa4e2c4c 100644
    --- a/htdocs/compta/bank/treso.php
    +++ b/htdocs/compta/bank/treso.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2005-2009 Regis Houssin               <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2005-2009 Regis Houssin               <regis.houssin@inodbox.com>
      * Copyright (C) 2008-2009 Laurent Destailleur (Eldy)  <eldy@users.sourceforge.net>
      * Copyright (C) 2008      Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
      * Copyright (C) 2015	   Marcos García			   <marcosgdf@gmail.com
    @@ -49,6 +49,9 @@ $result=restrictedArea($user,'banque',$id,'bank_account&bank_account','','',$fie
     $vline=isset($_GET["vline"])?$_GET["vline"]:$_POST["vline"];
     $page=isset($_GET["page"])?$_GET["page"]:0;
     
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$hookmanager->initHooks(array('banktreso','globalcard'));
    +
     /*
      * View
      */
    @@ -100,6 +103,8 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
         print '<br>';
     
     	$solde = $object->solde(0);
    +	if($conf->global->MULTICOMPANY_INVOICE_SHARING_ENABLED)$colspan = 6;
    +	else $colspan = 5;
     
     	// Show next coming entries
         print '<div class="div-table-responsive">';
    @@ -109,6 +114,7 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
     	print '<tr class="liste_titre">';
     	print '<td>'.$langs->trans("DateDue").'</td>';
     	print '<td>'.$langs->trans("Description").'</td>';
    +	if($conf->global->MULTICOMPANY_INVOICE_SHARING_ENABLED )print '<td>'.$langs->trans("Entity").'</td>';
     	print '<td>'.$langs->trans("ThirdParty").'</td>';
     	print '<td align="right">'.$langs->trans("Debit").'</td>';
     	print '<td align="right">'.$langs->trans("Credit").'</td>';
    @@ -116,7 +122,6 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
     	print '</tr>';
     
     	// Current balance
    -
     	print '<tr class="liste_total">';
     	print '<td align="left" colspan="5">'.$langs->trans("CurrentBalance").'</td>';
     	print '<td align="right" class="nowrap">'.price($solde).'</td>';
    @@ -124,100 +129,77 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
     
     
     	print '<tr class="liste_titre">';
    -	print '<td align="left" colspan="5">'.$langs->trans("RemainderToPay").'</td>';
    +	print '<td align="left" colspan="'.$colspan.'">'.$langs->trans("RemainderToPay").'</td>';
     	print '<td align="right" class="nowrap">&nbsp;</td>';
     	print '</tr>';
     
     
     	// Remainder to pay in future
    +	$sqls = array();
     
     	// Customer invoices
    -	$sql = "SELECT 'invoice' as family, f.rowid as objid, f.facnumber as ref, f.total_ttc, f.type, f.date_lim_reglement as dlr,";
    +	$sql = "SELECT 'invoice' as family, f.rowid as objid, f.ref as ref, f.total_ttc, f.type, f.date_lim_reglement as dlr,";
     	$sql.= " s.rowid as socid, s.nom as name, s.fournisseur";
     	$sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
     	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON f.fk_soc = s.rowid";
    -	$sql.= " WHERE f.entity = ".$conf->entity;
    +	$sql.= " WHERE f.entity IN  (".getEntity('invoice').")";
     	$sql.= " AND f.paye = 0 AND f.fk_statut = 1";	// Not paid
    -    $sql.= " AND (f.fk_account IN (0, ".$object->id.") OR f.fk_account IS NULL)"; // Id bank account of invoice
    -    $sql.= " ORDER BY dlr ASC";
    +	$sql.= " AND (f.fk_account IN (0, ".$object->id.") OR f.fk_account IS NULL)"; // Id bank account of invoice
    +	$sql.= " ORDER BY dlr ASC";
    +	$sqls[] = $sql;
     
     	// Supplier invoices
    -	$sql2= " SELECT 'invoice_supplier' as family, ff.rowid as objid, ff.ref as ref, ff.ref_supplier as ref_supplier, (-1*ff.total_ttc) as total_ttc, ff.type, ff.date_lim_reglement as dlr,";
    -	$sql2.= " s.rowid as socid, s.nom as name, s.fournisseur";
    -	$sql2.= " FROM ".MAIN_DB_PREFIX."facture_fourn as ff";
    -	$sql2.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON ff.fk_soc = s.rowid";
    -	$sql2.= " WHERE ff.entity = ".$conf->entity;
    -	$sql2.= " AND ff.paye = 0 AND fk_statut = 1";	// Not paid
    -    $sql2.= " AND (ff.fk_account IN (0, ".$object->id.") OR ff.fk_account IS NULL)"; // Id bank account of supplier invoice
    -    $sql2.= " ORDER BY dlr ASC";
    +	$sql = " SELECT 'invoice_supplier' as family, ff.rowid as objid, ff.ref as ref, ff.ref_supplier as ref_supplier, (-1*ff.total_ttc) as total_ttc, ff.type, ff.date_lim_reglement as dlr,";
    +	$sql.= " s.rowid as socid, s.nom as name, s.fournisseur";
    +	$sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn as ff";
    +	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON ff.fk_soc = s.rowid";
    +	$sql.= " WHERE ff.entity = ".$conf->entity;
    +	$sql.= " AND ff.paye = 0 AND fk_statut = 1";	// Not paid
    +	$sql.= " AND (ff.fk_account IN (0, ".$object->id.") OR ff.fk_account IS NULL)"; // Id bank account of supplier invoice
    +	$sql.= " ORDER BY dlr ASC";
    +	$sqls[] = $sql;
     
     	// Social contributions
    -	$sql3= " SELECT 'social_contribution' as family, cs.rowid as objid, cs.libelle as ref, (-1*cs.amount) as total_ttc, ccs.libelle as type, cs.date_ech as dlr";
    -    $sql3.= ", cs.fk_account";
    -	$sql3.= " FROM ".MAIN_DB_PREFIX."chargesociales as cs";
    -	$sql3.= " LEFT JOIN ".MAIN_DB_PREFIX."c_chargesociales as ccs ON cs.fk_type = ccs.id";
    -	$sql3.= " WHERE cs.entity = ".$conf->entity;
    -	$sql3.= " AND cs.paye = 0";	// Not paid
    -    $sql3.= " AND (cs.fk_account IN (0, ".$object->id.") OR cs.fk_account IS NULL)"; // Id bank account of social contribution
    -	$sql3.= " ORDER BY dlr ASC";
    +	$sql = " SELECT 'social_contribution' as family, cs.rowid as objid, cs.libelle as ref, (-1*cs.amount) as total_ttc, ccs.libelle as type, cs.date_ech as dlr";
    +	$sql.= ", cs.fk_account";
    +	$sql.= " FROM ".MAIN_DB_PREFIX."chargesociales as cs";
    +	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_chargesociales as ccs ON cs.fk_type = ccs.id";
    +	$sql.= " WHERE cs.entity = ".$conf->entity;
    +	$sql.= " AND cs.paye = 0";	// Not paid
    +	$sql.= " AND (cs.fk_account IN (0, ".$object->id.") OR cs.fk_account IS NULL)"; // Id bank account of social contribution
    +	$sql.= " ORDER BY dlr ASC";
    +	$sqls[] = $sql;
    +
    +	// others sql
    +	$parameters = array();
    +	$reshook = $hookmanager->executeHooks('addMoreSQL', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +	if(empty($reshook) and isset($hookmanager->resArray['sql'])){
    +		$sqls[] = $hookmanager->resArray['sql'];
    +	}
     
     	$error=0;
     	$tab_sqlobjOrder=array();
     	$tab_sqlobj=array();
     
    -	// List customer invoices
    -	$result = $db->query($sql);
    -	if ($result)
    -	{
    -		$num = $db->num_rows($result);
    -		for ($i = 0;$i < $num;$i++)
    -		{
    -			$sqlobj = $db->fetch_object($result);
    -			$tab_sqlobj[] = $sqlobj;
    -			$tab_sqlobjOrder[]= $db->jdate($sqlobj->dlr);
    +	foreach($sqls as $sql){
    +		$resql = $db->query($sql);
    +		if($resql){
    +			while($sqlobj = $db->fetch_object($resql)){
    +				$tab_sqlobj[] = $sqlobj;
    +				$tab_sqlobjOrder[]= $db->jdate($sqlobj->dlr);
    +			}
    +			$db->free($resql);
    +			}else{
    +			$error++;
     		}
    -		$db->free($result);
     	}
    -	else $error++;
    -
    -	// List supplier invoices
    -	$result2=$db->query($sql2);
    -	if ($result2)
    -	{
    -		$num = $db->num_rows($result2);
    -		for ($i = 0;$i < $num;$i++)
    -		{
    -			$sqlobj = $db->fetch_object($result2);
    -			$tab_sqlobj[] = $sqlobj;
    -			$tab_sqlobjOrder[]= $db->jdate($sqlobj->dlr);
    -		}
    -		$db->free($result2);
    -	}
    -	else $error++;
    -
    -	// List social contributions
    -	$result3=$db->query($sql3);
    -	if ($result3)
    -	{
    -		$num = $db->num_rows($result3);
    -
    -		for ($i = 0;$i < $num;$i++)
    -		{
    -			$sqlobj = $db->fetch_object($result3);
    -			$tab_sqlobj[] = $sqlobj;
    -			$tab_sqlobjOrder[]= $db->jdate($sqlobj->dlr);
    -		}
    -		$db->free($result3);
    -	}
    -	else $error++;
    -
     
     	// Sort array
     	if (! $error)
     	{
     		array_multisort($tab_sqlobjOrder,$tab_sqlobj);
     
    -		//Apply distinct filter
    +		// Apply distinct filter
     		foreach ($tab_sqlobj as $key=>$value) {
     			$tab_sqlobj[$key] = "'" . serialize($value) . "'";
     		}
    @@ -228,7 +210,6 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
     
     		$num = count($tab_sqlobj);
     
    -		//$num = $db->num_rows($result);
     		$i = 0;
     		while ($i < $num)
     		{
    @@ -236,7 +217,6 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
     			$ref = '';
     			$refcomp = '';
     
    -			//$obj = $db->fetch_object($result);
     			$obj = array_shift($tab_sqlobj);
     
     			if ($obj->family == 'invoice_supplier')
    @@ -284,6 +264,14 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
     				$paiement = -1*$socialcontribstatic->getSommePaiement();	// Payment already done
     			}
     
    +			$parameters = array('obj' => $obj);
    +			$reshook = $hookmanager->executeHooks('moreFamily', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +			if(empty($reshook)){
    +				$ref = isset($hookmanager->resArray['ref']) ? $hookmanager->resArray['ref'] : '';
    +				$refcomp = isset($hookmanager->resArray['refcomp']) ? $hookmanager->resArray['refcomp'] : '';
    +				$paiement = isset($hookmanager->resArray['paiement']) ? $hookmanager->resArray['paiement'] : 0;
    +			}
    +
     			$total_ttc = $obj->total_ttc;
     			if ($paiement) $total_ttc = $obj->total_ttc - $paiement;
     			$solde += $total_ttc;
    @@ -291,8 +279,6 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
     			// We discard lines with a remainder to pay to 0
     			if (price2num($total_ttc) != 0)
     			{
    -
    -
         			// Show line
         			print '<tr class="oddeven">';
         			print '<td>';
    @@ -300,6 +286,12 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
         			else print $langs->trans("NotDefined");
         			print "</td>";
         			print "<td>".$ref."</td>";
    +				if($conf->global->MULTICOMPANY_INVOICE_SHARING_ENABLED ){
    +					if($obj->family == 'invoice'){
    +						$mc->getInfo($obj->entity);
    +						print "<td>".$mc->label."</td>";
    +					}else print "<td></td>";
    +				}
         			print "<td>".$refcomp."</td>";
         			if ($obj->total_ttc < 0) { print "<td align=\"right\">".price(abs($total_ttc))."</td><td>&nbsp;</td>"; };
         			if ($obj->total_ttc >= 0) { print "<td>&nbsp;</td><td align=\"right\">".price($total_ttc)."</td>"; };
    @@ -315,20 +307,28 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
     		dol_print_error($db);
     	}
     
    -	// Solde actuel
    +	// Other lines
    +	$parameters = array('solde' => $solde);
    +	$reshook = $hookmanager->executeHooks('printObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +	if(empty($reshook)){
    +		print $hookmanager->resPrint;
    +    $solde = isset($hookmanager->resArray['solde']) ? $hookmanager->resArray['solde'] : $solde;
    +	}
     
    +	// solde
     	print '<tr class="liste_total">';
    -	print '<td align="left" colspan="5">'.$langs->trans("FutureBalance").' ('.$object->currency_code.')</td>';
    +	print '<td align="left" colspan="'.$colspan.'">'.$langs->trans("FutureBalance").' ('.$object->currency_code.')</td>';
     	print '<td align="right" class="nowrap">'.price($solde, 0, $langs, 0, 0, -1, $object->currency_code).'</td>';
     	print '</tr>';
     
     	print "</table>";
    -    print "</div>";
    +  print "</div>";
     }
     else
     {
     	print $langs->trans("ErrorBankAccountNotFound");
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php
    index 1b4d7579892..d2adc857ec7 100644
    --- a/htdocs/compta/bank/various_payment/card.php
    +++ b/htdocs/compta/bank/various_payment/card.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2017       Alexandre Spangaro  <aspangaro@zendsi.com>
    +/* Copyright (C) 2017       Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -85,7 +86,7 @@ if (empty($reshook))
     	{
     		if ($action != 'addlink')
     		{
    -			$urltogo=$backtopage?$backtopage:dol_buildpath('/compta/bank/various_payment/index.php',1);
    +			$urltogo=$backtopage?$backtopage:dol_buildpath('/compta/bank/various_payment/list.php',1);
     			header("Location: ".$urltogo);
     			exit;
     		}
    @@ -154,7 +155,8 @@ if (empty($reshook))
     			if ($ret > 0)
     			{
     				$db->commit();
    -				header("Location: index.php");
    +				$urltogo=($backtopage ? $backtopage : DOL_URL_ROOT.'/compta/bank/various_payment/list.php');
    +				header("Location: ".$urltogo);
     				exit;
     			}
     			else
    @@ -189,7 +191,7 @@ if (empty($reshook))
     				if ($result >= 0)
     				{
     					$db->commit();
    -					header("Location: ".DOL_URL_ROOT.'/compta/bank/various_payment/index.php');
    +					header("Location: ".DOL_URL_ROOT.'/compta/bank/various_payment/list.php');
     					exit;
     				}
     				else
    @@ -220,7 +222,7 @@ if (empty($reshook))
     llxHeader("",$langs->trans("VariousPayment"));
     
     $form = new Form($db);
    -if (! empty($conf->accounting->enabled)) $formaccounting = New FormAccounting($db);
    +if (! empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db);
     if (! empty($conf->projet->enabled)) $formproject = new FormProjets($db);
     
     if ($id)
    @@ -254,32 +256,32 @@ if ($action == 'create')
     
     	// Date payment
     	print '<tr><td>';
    -	print fieldLabel('DatePayment','datep',1).'</td><td>';
    -	print $form->select_date((empty($datep)?-1:$datep),"datep",'','','','add',1,1);
    +	print $form->editfieldkey('DatePayment', 'datep', '', $object, 0, 'string', '', 1).'</td><td>';
    +	print $form->selectDate((empty($datep)?-1:$datep),"datep",'','','','add',1,1);
     	print '</td></tr>';
     
     	// Date value for bank
     	print '<tr><td>';
    -	print fieldLabel('DateValue','datev',0).'</td><td>';
    -	print $form->select_date((empty($datev)?-1:$datev),"datev",'','','','add',1,1);
    +	print $form->editfieldkey('DateValue', 'datev', '', $object, 0).'</td><td>';
    +	print $form->selectDate((empty($datev)?-1:$datev),"datev",'','','','add',1,1);
     	print '</td></tr>';
     
     	// Label
     	print '<tr><td>';
    -	print fieldLabel('Label','label',1).'</td><td>';
    +	print $form->editfieldkey('Label', 'label', '', $object, 0, 'string', '', 1).'</td><td>';
     	print '<input name="label" id="label" class="minwidth300" value="'.($label?$label:$langs->trans("VariousPayment")).'">';
     	print '</td></tr>';
     
     	// Sens
     	print '<tr><td>';
    -	print fieldLabel('Sens','sens',1).'</td><td>';
    +	print $form->editfieldkey('Sens', 'sens', '', $object, 0, 'string', '', 1).'</td><td>';
         $sensarray=array( '0' => $langs->trans("Debit"), '1' => $langs->trans("Credit"));
         print $form->selectarray('sens',$sensarray,$sens);
     	print '</td></tr>';
     
     	// Amount
     	print '<tr><td>';
    -	print fieldLabel('Amount','amount',1).'</td><td>';
    +	print $form->editfieldkey('Amount', 'amount', '', $object, 0, 'string', '', 1).'</td><td>';
     	print '<input name="amount" id="amount" class="minwidth100" value="'.$amount.'">';
     	print '</td></tr>';
     
    @@ -287,14 +289,14 @@ if ($action == 'create')
     	if (! empty($conf->banque->enabled))
     	{
     		print '<tr><td>';
    -		print fieldLabel('BankAccount','selectaccountid',1).'</td><td>';
    +		print $form->editfieldkey('BankAccount', 'selectaccountid', '', $object, 0, 'string', '', 1).'</td><td>';
     		$form->select_comptes($accountid,"accountid",0,'',1);  // Affiche liste des comptes courant
     		print '</td></tr>';
     	}
     
     	// Type payment
     	print '<tr><td>';
    -	print fieldLabel('PaymentMode','selectpaymenttype',1).'</td><td>';
    +	print $form->editfieldkey('PaymentMode', 'selectpaymenttype', '', $object, 0, 'string', '', 1).'</td><td>';
     	$form->select_types_paiements($paymenttype, "paymenttype");
     	print '</td></tr>';
     
    @@ -375,7 +377,7 @@ if ($id)
     	{
     		$langs->load("projects");
     		$morehtmlref.=$langs->trans('Project') . ' ';
    -		if ($user->rights->tax->charges->creer)
    +		if ($user->rights->banque->modifier)
     		{
     			if ($action != 'classify')
     				$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    @@ -394,16 +396,14 @@ if ($id)
     			if (! empty($object->fk_project)) {
     				$proj = new Project($db);
     				$proj->fetch($object->fk_project);
    -				$morehtmlref.='<a href="'.DOL_URL_ROOT.'/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
    -				$morehtmlref.=$proj->ref;
    -				$morehtmlref.='</a>';
    +				$morehtmlref.=$proj->getNomUrl(1);
     			} else {
     				$morehtmlref.='';
     			}
     		}
     	}
     	$morehtmlref.='</div>';
    -	$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/various_payment/index.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
    +	$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/various_payment/list.php?restore_lastsearch_values=1'.(! empty($socid)?'&socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
     
     	dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlright);
     
    @@ -489,18 +489,16 @@ if ($id)
     		}
     		else
     		{
    -			print '<a class="butActionRefused" href="#" title="'.(dol_escape_htmltag($langs->trans("NotAllowed"))).'">'.$langs->trans("Delete").'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.(dol_escape_htmltag($langs->trans("NotAllowed"))).'">'.$langs->trans("Delete").'</a>';
     		}
     	}
     	else
     	{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans("LinkedToAConciliatedTransaction").'">'.$langs->trans("Delete").'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("LinkedToAConciliatedTransaction").'">'.$langs->trans("Delete").'</a>';
     	}
     	print "</div>";
     }
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/bank/various_payment/document.php b/htdocs/compta/bank/various_payment/document.php
    index cf596860a4b..c255ef19c16 100644
    --- a/htdocs/compta/bank/various_payment/document.php
    +++ b/htdocs/compta/bank/various_payment/document.php
    @@ -27,6 +27,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array("compta", "banks", "bills", "users", "accountancy"));
    @@ -81,15 +82,15 @@ if ($object->id)
     {
     	$head=various_payment_prepare_head($object);
     
    -	dol_fiche_head($head, 'documents',  $langs->trans("VariousPayment"), 0, 'payment');
    +	dol_fiche_head($head, 'documents',  $langs->trans("VariousPayment"), -1, 'payment');
     
     	$morehtmlref='<div class="refidno">';
     	// Project
     	if (! empty($conf->projet->enabled))
     	{
     		$langs->load("projects");
    -		$morehtmlref.=$langs->trans('Project') . ' ';
    -		if ($user->rights->tax->charges->creer)
    +		$morehtmlref.=$langs->trans('Project') . ' : ';
    +		if ($user->rights->banque->modifier && 0)
     		{
     			if ($action != 'classify')
     				$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    @@ -108,23 +109,21 @@ if ($object->id)
     			if (! empty($object->fk_project)) {
     				$proj = new Project($db);
     				$proj->fetch($object->fk_project);
    -				$morehtmlref.='<a href="'.DOL_URL_ROOT.'/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
    -				$morehtmlref.=$proj->ref;
    -				$morehtmlref.='</a>';
    +				$morehtmlref.=$proj->getNomUrl(1);
     			} else {
     				$morehtmlref.='';
     			}
     		}
     	}
     	$morehtmlref.='</div>';
    -	$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/various_payment/index.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
    +	$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/various_payment/list.php?restore_lastsearch_values=1'.(! empty($socid)?'&socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
     
     	dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlright);
     
     	print '<div class="fichecenter">';
     	print '<div class="underbanner clearboth"></div>';
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -154,6 +153,6 @@ else
     	print $langs->trans("ErrorUnknown");
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/bank/various_payment/info.php b/htdocs/compta/bank/various_payment/info.php
    index bb66871d6c0..d9f8709b155 100644
    --- a/htdocs/compta/bank/various_payment/info.php
    +++ b/htdocs/compta/bank/various_payment/info.php
    @@ -25,6 +25,7 @@ require '../../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array("compta", "banks", "bills", "users", "accountancy"));
    @@ -49,15 +50,56 @@ $object->info($id);
     
     $head = various_payment_prepare_head($object);
     
    -dol_fiche_head($head, 'info', $langs->trans("VariousPayment"), 0, 'payment');
    +dol_fiche_head($head, 'info', $langs->trans("VariousPayment"), -1, 'payment');
     
     
    +$morehtmlref='<div class="refidno">';
    +// Project
    +if (! empty($conf->projet->enabled))
    +{
    +	$langs->load("projects");
    +	$morehtmlref.=$langs->trans('Project') . ' : ';
    +	if ($user->rights->banque->modifier && 0)
    +	{
    +		if ($action != 'classify')
    +			$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    +			if ($action == 'classify') {
    +				//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
    +				$morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
    +				$morehtmlref.='<input type="hidden" name="action" value="classin">';
    +				$morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +				$morehtmlref.=$formproject->select_projects(0, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
    +				$morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    +				$morehtmlref.='</form>';
    +			} else {
    +				$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
    +			}
    +	} else {
    +		if (! empty($object->fk_project)) {
    +			$proj = new Project($db);
    +			$proj->fetch($object->fk_project);
    +			$morehtmlref.=$proj->getNomUrl(1);
    +		} else {
    +			$morehtmlref.='';
    +		}
    +	}
    +}
    +$morehtmlref.='</div>';
    +$linkback = '<a href="'.DOL_URL_ROOT.'/compta/bank/various_payment/list.php?restore_lastsearch_values=1'.(! empty($socid)?'&socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
    +
    +dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlright);
    +
    +print '<div class="fichecenter">';
    +print '<div class="underbanner clearboth"></div>';
    +
    +print '<br>';
    +
     print '<table width="100%"><tr><td>';
     dol_print_object_info($object);
     print '</td></tr></table>';
     
     print '</div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/bank/various_payment/index.php b/htdocs/compta/bank/various_payment/list.php
    similarity index 97%
    rename from htdocs/compta/bank/various_payment/index.php
    rename to htdocs/compta/bank/various_payment/list.php
    index 6535e0c0082..91608666601 100644
    --- a/htdocs/compta/bank/various_payment/index.php
    +++ b/htdocs/compta/bank/various_payment/list.php
    @@ -1,6 +1,7 @@
     <?php
    -/* Copyright (C) 2017       Alexandre Spangaro  <aspangaro@zendsi.com>
    - * Copyright (C) 2017       Laurent Destailleur <eldy@users.sourceforge.net>
    +/* Copyright (C) 2017       Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2017       Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -17,7 +18,7 @@
      */
     
     /**
    - *  \file       htdocs/compta/bank/various_payment/index.php
    + *  \file       htdocs/compta/bank/various_payment/list.php
      *  \ingroup    bank
      *  \brief      List of various payments
      */
    @@ -189,7 +190,7 @@ if ($result)
     	// Date
     	print '<td class="liste_titre center">';
     	print '<div class="nowrap">';
    -	print $form->select_date($search_date, 'date_doc', 0, 0, 1);
    +	print $form->selectDate($search_date, 'date_doc', 0, 0, 1);
     	print '</div>';
     	print '</td>';
     
    @@ -344,5 +345,6 @@ else
     }
     
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/cashcontrol/cashcontrol_card.php b/htdocs/compta/cashcontrol/cashcontrol_card.php
    new file mode 100644
    index 00000000000..314a4641f12
    --- /dev/null
    +++ b/htdocs/compta/cashcontrol/cashcontrol_card.php
    @@ -0,0 +1,575 @@
    +<?php
    +/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2013      Charles-Fr BENKE     <charles.fr@benke.fr>
    + * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
    + * Copyright (C) 2016      Marcos García        <marcosgdf@gmail.com>
    + * Copyright (C) 2018      Andreu Bisquerra		<jove@bisquerra.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *      \file       htdocs/compta/cashcontrol/cashcontrol_card.php
    + *      \ingroup    cashdesk|takepos
    + *      \brief      Page to show a cash fence
    + */
    +
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php';
    +
    +$langs->loadLangs(array("install","cashdesk","admin","banks"));
    +
    +$id=GETPOST('id','int');
    +$ref = GETPOST('ref', 'alpha');
    +$action=GETPOST('action','aZ09');
    +$categid = GETPOST('categid');
    +$label = GETPOST("label");
    +
    +$now=dol_now();
    +$syear = (GETPOSTISSET('closeyear')?GETPOST('closeyear', 'int'):dol_print_date($now, "%Y"));
    +$smonth = (GETPOSTISSET('closemonth')?GETPOST('closemonth', 'int'):dol_print_date($now, "%m"));
    +$sday = (GETPOSTISSET('closeday')?GETPOST('closeday', 'int'):dol_print_date($now, "%d"));
    +
    +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
    +$sortfield = GETPOST("sortfield",'alpha');
    +$sortorder = GETPOST("sortorder",'alpha');
    +$page = GETPOST("page",'int');
    +if (empty($page) || $page == -1) { $page = 0; }     // If $page is not defined, or '' or -1
    +$offset = $limit * $page;
    +$pageprev = $page - 1;
    +$pagenext = $page + 1;
    +if (! $sortfield) $sortfield='rowid';
    +if (! $sortorder) $sortorder='ASC';
    +
    +// Security check
    +if (! $user->rights->cashdesk->use && ! $user->rights->takepos->use)
    +{
    +	accessforbidden();
    +}
    +
    +$arrayofpaymentmode=array('cash'=>'Cash', 'cheque'=>'Cheque', 'card'=>'CreditCard');
    +
    +$arrayofposavailable=array();
    +if (! empty($conf->cashdesk->enabled)) $arrayofposavailable['cashdesk']=$langs->trans('CashDesk').' (cashdesk)';
    +if (! empty($conf->takepos->enabled))  $arrayofposavailable['takepos']=$langs->trans('TakePOS').' (takepos)';
    +// TODO Add hook here to allow other POS to add themself
    +
    +$object= new CashControl($db);
    +$extrafields = new ExtraFields($db);
    +
    +// fetch optionals attributes and labels
    +$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
    +
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$hookmanager->initHooks(array('cashcontrolcard','globalcard'));
    +
    +
    +/*
    + * Actions
    + */
    +
    +$permissiontoadd = ($user->rights->cashdesk->use || $user->rights->takepos->use);
    +$permissiontodelete = ($user->rights->cashdesk->use || $user->rights->takepos->use) || ($permissiontoadd && $object->status == 0);
    +if (empty($backtopage)) $backtopage = dol_buildpath('/compta/cashcontrol/cashcontrol_card.php',1).'?id='.($id > 0 ? $id : '__ID__');
    +$backurlforlist = dol_buildpath('/compta/cashcontrol/cashcontrol_list.php',1);
    +$triggermodname = 'CACHCONTROL_MODIFY';	// Name of trigger action code to execute when we modify record
    +
    +if (empty($conf->global->CASHDESK_ID_BANKACCOUNT_CASH))
    +{
    +	setEventMessages($langs->trans("CashDesk")." - ".$langs->trans("NotConfigured"), null, 'errors');
    +}
    +
    +
    +if (GETPOST('cancel','alpha'))
    +{
    +	$action = 'create';
    +}
    +
    +if ($action=="start")
    +{
    +	$error=0;
    +	if (! GETPOST('posmodule','alpha') || GETPOST('posmodule','alpha') == '-1')
    +	{
    +		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Module")), null, 'errors');
    +		$action='create';
    +		$error++;
    +	}
    +	if (GETPOST('posnumber','alpha') == '')
    +	{
    +		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CashDesk")), null, 'errors');
    +		$action='create';
    +		$error++;
    +	}
    +	if (! GETPOST('closeyear','alpha') || GETPOST('closeyear','alpha') == '-1')
    +	{
    +		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Year")), null, 'errors');
    +		$action='create';
    +		$error++;
    +	}
    +}
    +elseif ($action=="add")
    +{
    +	if (GETPOST('opening','alpha') == '')
    +	{
    +		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("InitialBankBalance")), null, 'errors');
    +		$action='start';
    +		$error++;
    +	}
    +	$error=0;
    +	foreach($arrayofpaymentmode as $key=>$val)
    +	{
    +		if (GETPOST($key.'_amount','alpha') == '')
    +		{
    +			setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv($val)), null, 'errors');
    +			$action='start';
    +			$error++;
    +		}
    +		else
    +		{
    +			$object->$key = price2num(GETPOST($key.'_amount','alpha'));
    +		}
    +	}
    +
    +	if (! $error)
    +	{
    +		$object->day_close = GETPOST('closeday', 'int');
    +		$object->month_close = GETPOST('closemonth', 'int');
    +		$object->year_close = GETPOST('closeyear', 'int');
    +
    +	    $object->opening=price2num(GETPOST('opening','alpha'));
    +	    $object->posmodule=GETPOST('posmodule','alpha');
    +		$object->posnumber=GETPOST('posnumber','alpha');
    +
    +		$db->begin();
    +
    +		$id=$object->create($user);
    +
    +		if ($id > 0)
    +		{
    +			$db->commit();
    +			$action="view";
    +		}
    +		else
    +		{
    +			$db->rollback;
    +			$action="view";
    +		}
    +	}
    +}
    +
    +if ($action=="close")
    +{
    +	$object->fetch($id);
    +
    +    $result = $object->valid($user);
    +	if ($result <= 0)
    +	{
    +		setEventMessages($object->error, $object->errors, 'errors');
    +	}
    +	else
    +	{
    +		setEventMessages($langs->trans("CashFenceDone"), null);
    +	}
    +
    +    $action="view";
    +}
    +
    +// Action to delete
    +if ($action == 'confirm_delete' && ! empty($permissiontodelete))
    +{
    +    $object->fetch($id);
    +
    +    if (! ($object->id > 0))
    +    {
    +        dol_print_error('', 'Error, object must be fetched before being deleted');
    +        exit;
    +    }
    +
    +    $result=$object->delete($user);
    +    var_dump($result);
    +    if ($result > 0)
    +    {
    +        // Delete OK
    +        setEventMessages("RecordDeleted", null, 'mesgs');
    +        header("Location: ".$backurlforlist);
    +        exit;
    +    }
    +    else
    +    {
    +        if (! empty($object->errors)) setEventMessages(null, $object->errors, 'errors');
    +        else setEventMessages($object->error, null, 'errors');
    +    }
    +}
    +
    +
    +/*
    + * View
    + */
    +
    +$form=new Form($db);
    +
    +if ($action=="create" || $action=="start")
    +{
    +	llxHeader();
    +
    +	$initialbalanceforterminal=array();
    +	$theoricalamountforterminal=array();
    +	$theoricalnbofinvoiceforterminal=array();
    +
    +	if (GETPOST('posnumber','alpha') != '' && GETPOST('posnumber','alpha') != '' && GETPOST('posnumber','alpha') != '-1')
    +	{
    +		$posmodule = GETPOST('posmodule','alpha');
    +		$terminalid = GETPOST('posnumber','alpha');
    +
    +		// Calculate $initialbalanceforterminal for terminal 0
    +		foreach($arrayofpaymentmode as $key => $val)
    +		{
    +			if ($key != 'cash')
    +			{
    +				$initialbalanceforterminal[$terminalid][$key] = 0;
    +				continue;
    +			}
    +
    +			// Get the bank account dedicated to this point of sale module/terminal
    +			$bankid = $conf->global->CASHDESK_ID_BANKACCOUNT_CASH;			// This value is ok for 'Terminal 0' for module 'CashDesk' and 'TakePos' (they manage only 1 terminal)
    +			// Hook to get the good bank id according to posmodule and posnumber.
    +			// @TODO add hook here
    +
    +			$sql = "SELECT SUM(amount) as total FROM ".MAIN_DB_PREFIX."bank";
    +			$sql.= " WHERE fk_account = ".$bankid;
    +			if ($syear && ! $smonth)              $sql.= " AND dateo < '".$db->idate(dol_get_first_day($syear, 1))."'";
    +			elseif ($syear && $smonth && ! $sday) $sql.= " AND dateo < '".$db->idate(dol_get_first_day($syear, $smonth))."'";
    +			elseif ($syear && $smonth && $sday)   $sql.= " AND dateo < '".$db->idate(dol_mktime(0, 0, 0, $smonth, $sday, $syear))."'";
    +			else dol_print_error('', 'Year not defined');
    +
    +			$resql = $db->query($sql);
    +			if ($resql)
    +			{
    +				$obj = $db->fetch_object($resql);
    +				if ($obj) $initialbalanceforterminal[$terminalid][$key] = $obj->total;
    +			}
    +			else dol_print_error($db);
    +		}
    +
    +		// Calculate $theoricalamountforterminal for terminal 0
    +		foreach($arrayofpaymentmode as $key => $val)
    +		{
    +			/*$sql = "SELECT SUM(amount) as total FROM ".MAIN_DB_PREFIX."bank";
    +			$sql.= " WHERE fk_account = ".$bankid;*/
    +			$sql = "SELECT SUM(pf.amount) as total, COUNT(*) as nb";
    +			$sql.= " FROM ".MAIN_DB_PREFIX."paiement_facture as pf, ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."paiement as p, ".MAIN_DB_PREFIX."c_paiement as cp";
    +			$sql.= " WHERE pf.fk_facture = f.rowid AND p.rowid = pf.fk_paiement AND cp.id = p.fk_paiement";
    +			$sql.= " AND f.module_source = '".$db->escape($posmodule)."'";
    +			$sql.= " AND f.pos_source = '".$db->escape($terminalid)."'";
    +			$sql.= " AND f.paye = 1";
    +			$sql.= " AND p.entity IN (".getEntity('facture').")";
    +			if ($key == 'cash')       $sql.=" AND cp.code = 'LIQ'";
    +			elseif ($key == 'cheque') $sql.=" AND cp.code = 'CHQ'";
    +			elseif ($key == 'card')   $sql.=" AND cp.code = 'CB'";
    +			else
    +			{
    +				dol_print_error('Value for key = '.$key.' not supported');
    +				exit;
    +			}
    +			if ($syear && ! $smonth)              $sql.= " AND datef BETWEEN '".$db->idate(dol_get_first_day($syear, 1))."' AND '".$db->idate(dol_get_last_day($syear, 12))."'";
    +			elseif ($syear && $smonth && ! $sday) $sql.= " AND datef BETWEEN '".$db->idate(dol_get_first_day($syear, $smonth))."' AND '".$db->idate(dol_get_last_day($syear, $smonth))."'";
    +			elseif ($syear && $smonth && $sday)   $sql.= " AND datef BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $smonth, $sday, $syear))."' AND '".$db->idate(dol_mktime(23, 59, 59, $smonth, $sday, $syear))."'";
    +			else dol_print_error('', 'Year not defined');
    +
    +			$resql = $db->query($sql);
    +			if ($resql)
    +			{
    +				$theoricalamountforterminal[$terminalid][$key] = $initialbalanceforterminal[$terminalid][$key];
    +
    +				$obj = $db->fetch_object($resql);
    +				if ($obj)
    +				{
    +					$theoricalamountforterminal[$terminalid][$key] = price2num($theoricalamountforterminal[$terminalid][$key] + $obj->total);
    +					$theoricalnbofinvoiceforterminal[$terminalid][$key] = $obj->nb;
    +				}
    +			}
    +			else dol_print_error($db);
    +		}
    +	}
    +
    +	print load_fiche_titre($langs->trans("CashControl")." - ".$langs->trans("New"), '', 'title_bank.png');
    +
    +	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    +    if ($action == 'start' && GETPOST('posnumber','int') != '' && GETPOST('posnumber','int') != '' && GETPOST('posnumber','int') != '-1')
    +    {
    +	    print '<input type="hidden" name="action" value="add">';
    +    }
    +    else
    +    {
    +    	print '<input type="hidden" name="action" value="start">';
    +    }
    +    print '<table class="noborder" width="100%">';
    +    print '<tr class="liste_titre">';
    +    print '<td>'.$langs->trans("Module").'</td>';
    +    print '<td>'.$langs->trans("CashDesk").' ID</td>';
    +    print '<td>'.$langs->trans("Year").'</td>';
    +    print '<td>'.$langs->trans("Month").'</td>';
    +    print '<td>'.$langs->trans("Day").'</td>';
    +    print '<td></td>';
    +    print "</tr>\n";
    +
    +	$disabled=0;
    +	$prefix='close';
    +
    +    print '<tr class="oddeven">';
    +    print '<td>'.$form->selectarray('posmodule', $arrayofposavailable, GETPOST('posmodule','alpha'), (count($arrayofposavailable)>1?1:0)).'</td>';
    +    print '<td><input name="posnumber" type="text" class="maxwidth50" value="'.(GETPOSTISSET('posnumber')?GETPOST('posnumber','alpha'):'0').'"></td>';
    +	// Year
    +	print '<td>';
    +	$retstring='<select'.($disabled?' disabled':'').' class="flat valignmiddle maxwidth75imp" id="'.$prefix.'year" name="'.$prefix.'year">';
    +	for ($year = $syear - 10; $year < $syear + 10 ; $year++)
    +	{
    +		$retstring.='<option value="'.$year.'"'.($year == $syear ? ' selected':'').'>'.$year.'</option>';
    +	}
    +	$retstring.="</select>\n";
    +	print $retstring;
    +	print '</td>';
    +	// Month
    +	print '<td>';
    +	$retstring='<select'.($disabled?' disabled':'').' class="flat valignmiddle maxwidth75imp" id="'.$prefix.'month" name="'.$prefix.'month">';
    +	$retstring.='<option value="0"></option>';
    +	for ($month = 1 ; $month <= 12 ; $month++)
    +	{
    +		$retstring.='<option value="'.$month.'"'.($month == $smonth?' selected':'').'>';
    +		$retstring.=dol_print_date(mktime(12,0,0,$month,1,2000),"%b");
    +		$retstring.="</option>";
    +	}
    +	$retstring.="</select>";
    +	print $retstring;
    +	print '</td>';
    +	// Day
    +	print '<td>';
    +	$retstring='<select'.($disabled?' disabled':'').' class="flat valignmiddle maxwidth50imp" id="'.$prefix.'day" name="'.$prefix.'day">';
    +	$retstring.='<option value="0" selected>&nbsp;</option>';
    +	for ($day = 1 ; $day <= 31; $day++)
    +	{
    +		$retstring.='<option value="'.$day.'"'.($day == $sday ? ' selected':'').'>'.$day.'</option>';
    +	}
    +	$retstring.="</select>";
    +	print $retstring;
    +	print '</td>';
    +	// Button Start
    +	print '<td>';
    +	if ($action == 'start' && GETPOST('posnumber') != '' && GETPOST('posnumber') != '' && GETPOST('posnumber') != '-1')
    +	{
    +		print '';
    +	}
    +	else
    +	{
    +		print '<input type="submit" name="add" class="button" value="'.$langs->trans("Start").'">';
    +	}
    +	print '</td>';
    +	print '</table>';
    +
    +	if ($action == 'start' && GETPOST('posnumber') != '' && GETPOST('posnumber') != '' && GETPOST('posnumber') != '-1')
    +	{
    +		$posmodule = GETPOST('posmodule','alpha');
    +		$terminalid = GETPOST('posnumber','alpha');
    +
    +		print '<br>';
    +
    +		print '<table class="noborder" width="100%">';
    +
    +		print '<tr class="liste_titre">';
    +		print '<td></td>';
    +		print '<td align="center">'.$langs->trans("InitialBankBalance");
    +		//print '<br>'.$langs->trans("TheoricalAmount").'<br>'.$langs->trans("RealAmount");
    +		print '</td>';
    +		print '<td align="center" class="hide0" colspan="'.count($arrayofpaymentmode).'">';
    +		print $langs->trans("AmountAtEndOfPeriod");
    +		print '</td>';
    +		print '<td></td>';
    +		print '</tr>';
    +
    +		print '<tr class="liste_titre">';
    +		print '<td></td>';
    +		print '<td align="center">'.$langs->trans("Cash");
    +		//print '<br>'.$langs->trans("TheoricalAmount").'<br>'.$langs->trans("RealAmount");
    +		print '</td>';
    +		$i=0;
    +		foreach($arrayofpaymentmode as $key => $val)
    +		{
    +			print '<td align="center"'.($i == 0 ? ' class="hide0"':'').'>'.$langs->trans($val);
    +			//print '<br>'.$langs->trans("TheoricalAmount").'<br>'.$langs->trans("RealAmount");
    +			print '</td>';
    +			$i++;
    +		}
    +		print '<td></td>';
    +		print '</tr>';
    +
    +		print '<tr>';
    +		// Initial amount
    +		print '<td>'.$langs->trans("NbOfInvoices").'</td>';
    +		print '<td align="center">';
    +		print '</td>';
    +		// Amount per payment type
    +		$i=0;
    +		foreach($arrayofpaymentmode as $key => $val)
    +		{
    +		    print '<td align="center"'.($i == 0 ? ' class="hide0"':'').'>';
    +		    print $theoricalnbofinvoiceforterminal[$terminalid][$key];
    +		    print '</td>';
    +		    $i++;
    +		}
    +		// Save
    +		print '<td align="center"></td>';
    +		print '</tr>';
    +
    +		print '<tr>';
    +		// Initial amount
    +		print '<td>'.$langs->trans("TheoricalAmount").'</td>';
    +		print '<td align="center">';
    +		print price($initialbalanceforterminal[$terminalid]['cash']).'<br>';
    +		print '</td>';
    +		// Amount per payment type
    +		$i=0;
    +		foreach($arrayofpaymentmode as $key => $val)
    +		{
    +			print '<td align="center"'.($i == 0 ? ' class="hide0"':'').'>';
    +			print price($theoricalamountforterminal[$terminalid][$key]).'<br>';
    +			print '</td>';
    +			$i++;
    +		}
    +		// Save
    +		print '<td align="center"></td>';
    +		print '</tr>';
    +
    +		print '<tr>';
    +		print '<td>'.$langs->trans("RealAmount").'</td>';
    +		// Initial amount
    +		print '<td align="center">';
    +		print '<input name="opening" type="text" class="maxwidth100 center" value="'.(GETPOSTISSET('opening')?price2num(GETPOST('opening','alpha')):price($initialbalanceforterminal[$terminalid]['cash'])).'">';
    +		print '</td>';
    +		// Amount per payment type
    +		$i=0;
    +		foreach($arrayofpaymentmode as $key => $val)
    +		{
    +			print '<td align="center"'.($i == 0 ? ' class="hide0"':'').'>';
    +			print '<input name="'.$key.'_amount" type="text"'.($key == 'cash'?' autofocus':'').' class="maxwidth100 center" value="'.GETPOST($key.'_amount','alpha').'">';
    +			print '</td>';
    +			$i++;
    +		}
    +		// Save
    +		print '<td align="center">';
    +		print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';
    +		print '<input type="submit" name="add" class="button" value="'.$langs->trans("Save").'">';
    +		print '</td>';
    +		print '</tr>';
    +
    +		print '</form>';
    +	}
    +    print '</form>';
    +}
    +
    +if (empty($action) || $action=="view")
    +{
    +    $object->fetch($id);
    +
    +    llxHeader('', $langs->trans("CashControl"));
    +
    +    $head=array();
    +    $head[0][0] = DOL_URL_ROOT.'/compta/cashcontrol/cashcontrol_card.php?id='.$object->id;
    +    $head[0][1] = $langs->trans("Card");
    +    $head[0][2] = 'cashcontrol';
    +
    +    dol_fiche_head($head, 'cashcontrol', $langs->trans("CashControl"), -1, 'cashcontrol');
    +
    +    $linkback = '<a href="' . DOL_URL_ROOT . '/compta/cashcontrol/cashcontrol_list.php?restore_lastsearch_values=1">' . $langs->trans("BackToList") . '</a>';
    +
    +    $morehtmlref='<div class="refidno">';
    +    $morehtmlref.='</div>';
    +
    +
    +    dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'rowid', $morehtmlref);
    +
    +    print '<div class="fichecenter">';
    +    print '<div class="fichehalfleft">';
    +	print '<div class="underbanner clearboth"></div>';
    +    print '<table class="border tableforfield" width="100%">';
    +
    +	print '<tr><td class="titlefield nowrap">';
    +	print $langs->trans("Ref");
    +	print '</td><td>';
    +	print $id;
    +	print '</td></tr>';
    +
    +	print '<tr><td valign="middle">'.$langs->trans("Module").'</td><td>';
    +	print $object->posmodule;
    +	print "</td></tr>";
    +
    +	print '<tr><td valign="middle">'.$langs->trans("CashDesk").' ID</td><td>';
    +	print $object->posnumber;
    +	print "</td></tr>";
    +
    +	print '<tr><td class="nowrap">';
    +	print $langs->trans("Period");
    +	print '</td><td>';
    +	print $object->year_close."-".$object->month_close."-".$object->day_close;
    +	print '</td></tr>';
    +
    +	print '</table>';
    +    print '</div>';
    +
    +    print '<div class="fichehalfright"><div class="ficheaddleft">';
    +	print '<div class="underbanner clearboth"></div>';
    +    print '<table class="border tableforfield" width="100%">';
    +
    +    print '<tr><td class="titlefield nowrap">';
    +    print $langs->trans("DateCreationShort");
    +    print '</td><td>';
    +    print dol_print_date($object->date_creation, 'dayhour');
    +    print '</td></tr>';
    +
    +    print '<tr><td valign="middle">'.$langs->trans("InitialBankBalance").' - '.$langs->trans("Cash").'</td><td>';
    +    print price($object->opening, 0, $langs, 1, -1, -1, $conf->currency);
    +    print "</td></tr>";
    +
    +    foreach($arrayofpaymentmode as $key => $val)
    +    {
    +        print '<tr><td valign="middle">'.$langs->trans($val).'</td><td>';
    +    	print price($object->$key, 0, $langs, 1, -1, -1, $conf->currency);
    +    	print "</td></tr>";
    +    }
    +
    +	print "</table>\n";
    +    print '</div>';
    +    print '</div></div>';
    +    print '<div style="clear:both"></div>';
    +
    +    dol_fiche_end();
    +
    +	print '<div class="tabsAction">';
    +	print '<div class="inline-block divButAction"><a target="_blank" class="butAction" href="report.php?id='.$id.'">' . $langs->trans('PrintTicket') . '</a></div>';
    +	if ($object->status == CashControl::STATUS_DRAFT)
    +	{
    +		print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $id . '&amp;action=close">' . $langs->trans('Close') . '</a></div>';
    +
    +		print '<div class="inline-block divButAction"><a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?id=' . $id . '&amp;action=confirm_delete">' . $langs->trans('Delete') . '</a></div>';
    +	}
    +	print '</div>';
    +
    +	print '<center><iframe src="report.php?id='.$id.'" width="60%" height="800"></iframe></center>';
    +}
    +
    +// End of page
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/compta/cashcontrol/cashcontrol_list.php b/htdocs/compta/cashcontrol/cashcontrol_list.php
    new file mode 100644
    index 00000000000..e6358fcb5eb
    --- /dev/null
    +++ b/htdocs/compta/cashcontrol/cashcontrol_list.php
    @@ -0,0 +1,573 @@
    +<?php
    +/* Copyright (C) 2007-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) ---Put here your own copyright and developer email---
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *   	\file       cashcontrol_list.php
    + *		\ingroup    cashdesk|takepos
    + *		\brief      List page for cashcontrol
    + */
    +
    +//if (! defined('NOREQUIREDB'))              define('NOREQUIREDB','1');					// Do not create database handler $db
    +//if (! defined('NOREQUIREUSER'))            define('NOREQUIREUSER','1');				// Do not load object $user
    +//if (! defined('NOREQUIRESOC'))             define('NOREQUIRESOC','1');				// Do not load object $mysoc
    +//if (! defined('NOREQUIRETRAN'))            define('NOREQUIRETRAN','1');				// Do not load object $langs
    +//if (! defined('NOSCANGETFORINJECTION'))    define('NOSCANGETFORINJECTION','1');		// Do not check injection attack on GET parameters
    +//if (! defined('NOSCANPOSTFORINJECTION'))   define('NOSCANPOSTFORINJECTION','1');		// Do not check injection attack on POST parameters
    +//if (! defined('NOCSRFCHECK'))              define('NOCSRFCHECK','1');					// Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on).
    +//if (! defined('NOTOKENRENEWAL'))           define('NOTOKENRENEWAL','1');				// Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on)
    +//if (! defined('NOSTYLECHECK'))             define('NOSTYLECHECK','1');				// Do not check style html tag into posted data
    +//if (! defined('NOIPCHECK'))                define('NOIPCHECK','1');					// Do not check IP defined into conf $dolibarr_main_restrict_ip
    +//if (! defined('NOREQUIREMENU'))            define('NOREQUIREMENU','1');				// If there is no need to load and show top and left menu
    +//if (! defined('NOREQUIREHTML'))            define('NOREQUIREHTML','1');				// If we don't need to load the html.form.class.php
    +//if (! defined('NOREQUIREAJAX'))            define('NOREQUIREAJAX','1');       	  	// Do not load ajax.lib.php library
    +//if (! defined("NOLOGIN"))                  define("NOLOGIN",'1');						// If this page is public (can be called outside logged session)
    +//if (! defined("MAIN_LANG_DEFAULT"))        define('MAIN_LANG_DEFAULT','auto');					// Force lang to a particular value
    +//if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE','aloginmodule');		// Force authentication handler
    +//if (! defined("NOREDIRECTBYMAINTOLOGIN"))  define('NOREDIRECTBYMAINTOLOGIN',1);		// The main.inc.php does not make a redirect if not logged, instead show simple error message
    +
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +
    +// Load translation files required by the page
    +$langs->loadLangs(array("banks","other"));
    +
    +$action     = GETPOST('action','aZ09')?GETPOST('action','aZ09'):'view';				// The action 'add', 'create', 'edit', 'update', 'view', ...
    +$massaction = GETPOST('massaction','alpha');											// The bulk action (combo box choice into lists)
    +$show_files = GETPOST('show_files','int');												// Show files area generated by bulk actions ?
    +$confirm    = GETPOST('confirm','alpha');												// Result of a confirmation
    +$cancel     = GETPOST('cancel', 'alpha');												// We click on a Cancel button
    +$toselect   = GETPOST('toselect', 'array');												// Array of ids of elements selected into a list
    +$contextpage= GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'cashcontrol';    // To manage different context of search
    +$backtopage = GETPOST('backtopage','alpha');											// Go back to a dedicated page
    +$optioncss  = GETPOST('optioncss','aZ');												// Option for the css output (always '' except when 'print')
    +
    +$id			= GETPOST('id','int');
    +
    +// Load variable for pagination
    +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
    +$sortfield = GETPOST('sortfield','alpha');
    +$sortorder = GETPOST('sortorder','alpha');
    +$page = GETPOST('page','int');
    +if (empty($page) || $page == -1 || GETPOST('button_search','alpha') || GETPOST('button_removefilter','alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; }     // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action
    +$offset = $limit * $page;
    +$pageprev = $page - 1;
    +$pagenext = $page + 1;
    +//if (! $sortfield) $sortfield="p.date_fin";
    +//if (! $sortorder) $sortorder="DESC";
    +
    +// Initialize technical objects
    +$object=new CashControl($db);
    +$extrafields = new ExtraFields($db);
    +$diroutputmassaction=$conf->monmodule->dir_output . '/temp/massgeneration/'.$user->id;
    +$hookmanager->initHooks(array('cashcontrol'));     // Note that conf->hooks_modules contains array
    +// Fetch optionals attributes and labels
    +$extralabels = $extrafields->fetch_name_optionals_label('cashcontrol');	// Load $extrafields->attributes['cashcontrol']
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
    +
    +// Default sort order (if not yet defined by previous GETPOST)
    +if (! $sortfield) $sortfield="t.".key($object->fields);   // Set here default search field. By default 1st field in definition.
    +if (! $sortorder) $sortorder="ASC";
    +
    +// Security check
    +$socid=0;
    +if ($user->societe_id > 0)	// Protection if external user
    +{
    +	//$socid = $user->societe_id;
    +	accessforbidden();
    +}
    +//$result = restrictedArea($user, 'monmodule', $id, '');
    +
    +// Initialize array of search criterias
    +$search_all=trim(GETPOST("search_all",'alpha'));
    +$search=array();
    +foreach($object->fields as $key => $val)
    +{
    +	if (GETPOST('search_'.$key,'alpha')) $search[$key]=GETPOST('search_'.$key,'alpha');
    +}
    +
    +// List of fields to search into when doing a "search in all"
    +$fieldstosearchall = array();
    +foreach($object->fields as $key => $val)
    +{
    +	if ($val['searchall']) $fieldstosearchall['t.'.$key]=$val['label'];
    +}
    +
    +// Definition of fields for list
    +$arrayfields=array();
    +foreach($object->fields as $key => $val)
    +{
    +	// If $val['visible']==0, then we never show the field
    +	if (! empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>$val['enabled'], 'position'=>$val['position']);
    +}
    +// Extra fields
    +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0)
    +{
    +	foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val)
    +	{
    +		if (! empty($extrafields->attributes[$object->table_element]['list'][$key]))
    +			$arrayfields["ef.".$key]=array('label'=>$extrafields->attributes[$object->table_element]['label'][$key], 'checked'=>(($extrafields->attributes[$object->table_element]['list'][$key]<0)?0:1), 'position'=>$extrafields->attributes[$object->table_element]['pos'][$key], 'enabled'=>(abs($extrafields->attributes[$object->table_element]['list'][$key])!=3 && $extrafields->attributes[$object->table_element]['perms'][$key]));
    +	}
    +}
    +$object->fields = dol_sort_array($object->fields, 'position');
    +$arrayfields = dol_sort_array($arrayfields, 'position');
    +
    +
    +
    +/*
    + * Actions
    + */
    +
    +if (GETPOST('cancel','alpha')) { $action='list'; $massaction=''; }
    +if (! GETPOST('confirmmassaction','alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; }
    +
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +if (empty($reshook))
    +{
    +	// Selection of new fields
    +	include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
    +
    +	// Purge search criteria
    +	if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') ||GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
    +	{
    +		foreach($object->fields as $key => $val)
    +		{
    +			$search[$key]='';
    +		}
    +		$toselect='';
    +		$search_array_options=array();
    +	}
    +	if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')
    +		|| GETPOST('button_search_x','alpha') || GETPOST('button_search.x','alpha') || GETPOST('button_search','alpha'))
    +	{
    +		$massaction='';     // Protection to avoid mass action if we force a new search during a mass action confirmation
    +	}
    +
    +	// Mass actions
    +	$objectclass='CashControl';
    +	$objectlabel='CashControl';
    +	$permtoread = ($user->rights->cashdesk->use || $user->rights->takepos->use);
    +	$permtodelete = ($user->rights->cashdesk->use || $user->rights->takepos->use);
    +
    +	//$uploaddir = '';
    +	//include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
    +}
    +
    +
    +
    +/*
    + * View
    + */
    +
    +$form=new Form($db);
    +
    +$now=dol_now();
    +
    +//$help_url="EN:Module_pos_cash_fence|FR:Module_pos_cash_fence_FR|ES:Módulo_pos_cash_fence";
    +$help_url='';
    +$title = $langs->trans('CashControl');
    +
    +
    +// Build and execute select
    +// --------------------------------------------------------------------
    +$sql = 'SELECT ';
    +foreach($object->fields as $key => $val)
    +{
    +	$sql.='t.'.$key.', ';
    +}
    +// Add fields from extrafields
    +if (! empty($extrafields->attributes[$object->table_element]['label']))
    +{
    +	foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.' as options_'.$key.', ' : '');
    +}
    +// Add fields from hooks
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +$sql.=$hookmanager->resPrint;
    +$sql=preg_replace('/, $/','', $sql);
    +$sql.= " FROM ".MAIN_DB_PREFIX.$object->table_element." as t";
    +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)";
    +if ($object->ismultientitymanaged == 1) $sql.= " WHERE t.entity IN (".getEntity($object->element).")";
    +else $sql.=" WHERE 1 = 1";
    +foreach($search as $key => $val)
    +{
    +	if ($key == 'status' && $search[$key] == -1) continue;
    +	$mode_search=(($object->isInt($object->fields[$key]) || $object->isFloat($object->fields[$key]))?1:0);
    +	if ($search[$key] != '') $sql.=natural_search($key, $search[$key], (($key == 'status')?2:$mode_search));
    +}
    +if ($search_all) $sql.= natural_search(array_keys($fieldstosearchall), $search_all);
    +// Add where from extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
    +// Add where from hooks
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +$sql.=$hookmanager->resPrint;
    +
    +/* If a group by is required
    + $sql.= " GROUP BY "
    + foreach($object->fields as $key => $val)
    + {
    + $sql.='t.'.$key.', ';
    + }
    + // Add fields from extrafields
    + if (! empty($extrafields->attributes[$object->table_element]['label'])) {
    + foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? "ef.".$key.', ' : '');
    + // Add where from hooks
    + $parameters=array();
    + $reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters);    // Note that $action and $object may have been modified by hook
    + $sql.=$hookmanager->resPrint;
    + $sql=preg_replace('/, $/','', $sql);
    + */
    +
    +$sql.=$db->order($sortfield,$sortorder);
    +
    +// Count total nb of records
    +$nbtotalofrecords = '';
    +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
    +{
    +	$resql = $db->query($sql);
    +	$nbtotalofrecords = $db->num_rows($resql);
    +	if (($page * $limit) > $nbtotalofrecords)	// if total of record found is smaller than page * limit, goto and load page 0
    +	{
    +		$page = 0;
    +		$offset = 0;
    +	}
    +}
    +// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set.
    +if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords)
    +{
    +	$num = $nbtotalofrecords;
    +}
    +else
    +{
    +	$sql.= $db->plimit($limit+1, $offset);
    +
    +	$resql=$db->query($sql);
    +	if (! $resql)
    +	{
    +		dol_print_error($db);
    +		exit;
    +	}
    +
    +	$num = $db->num_rows($resql);
    +}
    +
    +// Direct jump if only one record found
    +if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all)
    +{
    +	$obj = $db->fetch_object($resql);
    +	$id = $obj->rowid;
    +	header("Location: ".dol_buildpath('/compta/cashcontrol/cashcontrol_card.php', 1).'?id='.$id);
    +	exit;
    +}
    +
    +
    +// Output page
    +// --------------------------------------------------------------------
    +
    +llxHeader('', $title, $help_url);
    +
    +// Example : Adding jquery code
    +print '<script type="text/javascript" language="javascript">
    +jQuery(document).ready(function() {
    +	function init_myfunc()
    +	{
    +		jQuery("#myid").removeAttr(\'disabled\');
    +		jQuery("#myid").attr(\'disabled\',\'disabled\');
    +	}
    +	init_myfunc();
    +	jQuery("#mybutton").click(function() {
    +		init_myfunc();
    +	});
    +});
    +</script>';
    +
    +$arrayofselected=is_array($toselect)?$toselect:array();
    +
    +$param='';
    +if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
    +if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
    +foreach($search as $key => $val)
    +{
    +	$param.= '&search_'.$key.'='.urlencode($search[$key]);
    +}
    +if ($optioncss != '')     $param.='&optioncss='.urlencode($optioncss);
    +// Add $param from extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
    +
    +// List of mass actions available
    +$arrayofmassactions =  array(
    +//'presend'=>$langs->trans("SendByMail"),
    +//'builddoc'=>$langs->trans("PDFMerge"),
    +);
    +if ($user->rights->monmodule->delete) $arrayofmassactions['predelete']=$langs->trans("Delete");
    +if (GETPOST('nomassaction','int') || in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    +$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
    +
    +print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
    +if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
    +print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    +print '<input type="hidden" name="action" value="list">';
    +print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
    +print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
    +print '<input type="hidden" name="page" value="'.$page.'">';
    +print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
    +
    +$newcardbutton='';
    +//if ($user->rights->monmodule->creer)
    +	//{
    +$newcardbutton='<a class="butActionNew" href="cashcontrol_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']).'"><span class="valignmiddle">'.$langs->trans('New').'</span>';
    +$newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    +$newcardbutton.= '</a>';
    +//}
    +
    +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_companies', 0, $newcardbutton, '', $limit);
    +
    +// Add code for pre mass action (confirmation or email presend form)
    +$topicmail="SendCashControlRef";
    +$modelmail="cashcontrol";
    +$objecttmp=new CashControl($db);
    +$trackid='xxxx'.$object->id;
    +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
    +
    +if ($sall)
    +{
    +	foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
    +	print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall).'</div>';
    +}
    +
    +$moreforfilter = '';
    +/*$moreforfilter.='<div class="divsearchfield">';
    + $moreforfilter.= $langs->trans('MyFilter') . ': <input type="text" name="search_myfield" value="'.dol_escape_htmltag($search_myfield).'">';
    + $moreforfilter.= '</div>';*/
    +
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint;
    +else $moreforfilter = $hookmanager->resPrint;
    +
    +if (! empty($moreforfilter))
    +{
    +	print '<div class="liste_titre liste_titre_bydiv centpercent">';
    +	print $moreforfilter;
    +	print '</div>';
    +}
    +
    +$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
    +$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
    +$selectedfields.=(count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : '');
    +
    +print '<div class="div-table-responsive">';		// You can use div-table-responsive-no-min if you dont need reserved height for your table
    +print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
    +
    +
    +// Fields title search
    +// --------------------------------------------------------------------
    +print '<tr class="liste_titre">';
    +foreach($object->fields as $key => $val)
    +{
    +	$cssforfield='';
    +	if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +	if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +	if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
    +	if (! empty($arrayfields['t.'.$key]['checked'])) print '<td class="liste_titre'.($cssforfield?' '.$cssforfield:'').'"><input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag($search[$key]).'"></td>';
    +}
    +// Extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
    +
    +// Fields from hook
    +$parameters=array('arrayfields'=>$arrayfields);
    +$reshook=$hookmanager->executeHooks('printFieldListOption', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +// Action column
    +print '<td class="liste_titre" align="right">';
    +$searchpicto=$form->showFilterButtons();
    +print $searchpicto;
    +print '</td>';
    +print '</tr>'."\n";
    +
    +
    +// Fields title label
    +// --------------------------------------------------------------------
    +print '<tr class="liste_titre">';
    +foreach($object->fields as $key => $val)
    +{
    +	$cssforfield='';
    +	if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +	if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +	if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
    +	if (! empty($arrayfields['t.'.$key]['checked']))
    +	{
    +		print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($cssforfield?'class="'.$cssforfield.'"':''), $sortfield, $sortorder, ($cssforfield?$cssforfield.' ':''))."\n";
    +	}
    +}
    +// Extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
    +// Hook fields
    +$parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder);
    +$reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"],'','','','align="center"',$sortfield,$sortorder,'maxwidthsearch ')."\n";
    +print '</tr>'."\n";
    +
    +
    +// Detect if we need a fetch on each output line
    +$needToFetchEachLine=0;
    +if (is_array($extrafields->attributes[$object->table_element]['computed']) && count($extrafields->attributes[$object->table_element]['computed']) > 0)
    +{
    +	foreach ($extrafields->attributes[$object->table_element]['computed'] as $key => $val)
    +	{
    +		if (preg_match('/\$object/',$val)) $needToFetchEachLine++;  // There is at least one compute field that use $object
    +	}
    +}
    +
    +
    +// Loop on record
    +// --------------------------------------------------------------------
    +$i=0;
    +$totalarray=array();
    +while ($i < min($num, $limit))
    +{
    +	$obj = $db->fetch_object($resql);
    +	if (empty($obj)) break;		// Should not happen
    +
    +	// Store properties in $object
    +	$object->id = $obj->rowid;
    +	foreach($object->fields as $key => $val)
    +	{
    +		if (isset($obj->$key)) $object->$key = $obj->$key;
    +	}
    +
    +	// Show here line of result
    +	print '<tr class="oddeven">';
    +	foreach($object->fields as $key => $val)
    +	{
    +		$cssforfield='';
    +		if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +		if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +		if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
    +		if (! empty($arrayfields['t.'.$key]['checked']))
    +		{
    +			print '<td';
    +			if ($cssforfield || $val['css']) print ' class="';
    +			print $cssforfield;
    +			if ($cssforfield && $val['css']) print ' ';
    +			print $val['css'];
    +			if ($cssforfield || $val['css']) print '"';
    +			print '>';
    +			print $object->showOutputField($val, $key, $obj->$key, '');
    +			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
    +			if (! empty($val['isameasure']))
    +			{
    +				if (! $i) $totalarray['pos'][$totalarray['nbfield']]='t.'.$key;
    +				$totalarray['val']['t.'.$key] += $obj->$key;
    +			}
    +		}
    +	}
    +	// Extra fields
    +	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
    +	// Fields from hook
    +	$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
    +	$reshook=$hookmanager->executeHooks('printFieldListValue', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +	print $hookmanager->resPrint;
    +	// Action column
    +	print '<td class="nowrap" align="center">';
    +	if ($massactionbutton || $massaction)   // 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($obj->rowid, $arrayofselected)) $selected=1;
    +		print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>';
    +	}
    +	print '</td>';
    +	if (! $i) $totalarray['nbfield']++;
    +
    +	print '</tr>';
    +
    +	$i++;
    +}
    +
    +// Show total line
    +if (isset($totalarray['pos']))
    +{
    +	print '<tr class="liste_total">';
    +	$i=0;
    +	while ($i < $totalarray['nbfield'])
    +	{
    +		$i++;
    +		if (! empty($totalarray['pos'][$i]))  print '<td align="right">'.price($totalarray['val'][$totalarray['pos'][$i]]).'</td>';
    +		else
    +		{
    +			if ($i == 1)
    +			{
    +				if ($num < $limit) print '<td class="left">'.$langs->trans("Total").'</td>';
    +				else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
    +			}
    +			else print '<td></td>';
    +		}
    +	}
    +	print '</tr>';
    +}
    +
    +// If no record found
    +if ($num == 0)
    +{
    +	$colspan=1;
    +	foreach($arrayfields as $key => $val) { if (! empty($val['checked'])) $colspan++; }
    +	print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>';
    +}
    +
    +$db->free($resql);
    +
    +$parameters=array('arrayfields'=>$arrayfields, 'sql'=>$sql);
    +$reshook=$hookmanager->executeHooks('printFieldListFooter', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +
    +print '</table>'."\n";
    +print '</div>'."\n";
    +
    +print '</form>'."\n";
    +
    +if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords))
    +{
    +	$hidegeneratedfilelistifempty=1;
    +	if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) $hidegeneratedfilelistifempty=0;
    +
    +	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    +	$formfile = new FormFile($db);
    +
    +	// Show list of available documents
    +	$urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder;
    +	$urlsource.=str_replace('&amp;','&',$param);
    +
    +	$filedir=$diroutputmassaction;
    +	$genallowed=$user->rights->monmodule->read;
    +	$delallowed=$user->rights->monmodule->create;
    +
    +	print $formfile->showdocuments('massfilesarea_monmodule','',$filedir,$urlsource,0,$delallowed,'',1,1,0,48,1,$param,$title,'','','',null,$hidegeneratedfilelistifempty);
    +}
    +
    +// End of page
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/compta/cashcontrol/class/cashcontrol.class.php b/htdocs/compta/cashcontrol/class/cashcontrol.class.php
    new file mode 100644
    index 00000000000..d0a10ec94da
    --- /dev/null
    +++ b/htdocs/compta/cashcontrol/class/cashcontrol.class.php
    @@ -0,0 +1,429 @@
    +<?php
    +/* Copyright (C) 2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2016 Marcos García        <marcosgdf@gmail.com>
    + * Copyright (C) 2018 Andreu Bisquerra     <jove@bisquerra.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file       cashcontrol/class/cashcontrol.class.php
    + * \ingroup    cashdesk|takepos
    + * \brief      This file is CRUD class file (Create/Read/Update/Delete) for cash fence table
    + */
    +
    +/**
    + *    Class to manage cash fence
    + */
    +class CashControl extends CommonObject
    +{
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element = 'cashcontrol';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element = 'pos_cash_fence';
    +
    +	/**
    +	 * @var int  Does pos_cash_fence support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 */
    +	public $ismultientitymanaged = 1;
    +
    +	/**
    +	 * @var int  Does pos_cash_fence support extrafields ? 0=No, 1=Yes
    +	 */
    +	public $isextrafieldmanaged = 0;
    +
    +	/**
    +	 * @var string String with name of icon for pos_cash_fence. Must be the part after the 'object_' into object_pos_cash_fence.png
    +	 */
    +	public $picto = 'account';
    +
    +	public $fields=array(
    +	'rowid' =>array('type'=>'integer', 'label'=>'ID', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>10),
    +	'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>15),
    +	'ref' =>array('type'=>'varchar(64)', 'label'=>'Ref', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'position'=>18),
    +	'posmodule' =>array('type'=>'varchar(30)', 'label'=>'Module', 'enabled'=>1, 'visible'=>1, 'notnul'=>1, 'position'=>19),
    +	'posnumber' =>array('type'=>'varchar(30)', 'label'=>'CashDesk', 'enabled'=>1, 'visible'=>1, 'notnul'=>1, 'position'=>20),
    +	'label' =>array('type'=>'varchar(255)', 'label'=>'Label', 'enabled'=>1, 'visible'=>0, 'position'=>24),
    +	'opening' =>array('type'=>'double(24,8)', 'label'=>'Opening', 'enabled'=>1, 'visible'=>1, 'position'=>25),
    +	'cash' =>array('type'=>'double(24,8)', 'label'=>'Cash', 'enabled'=>1, 'visible'=>1, 'position'=>30),
    +	'cheque' =>array('type'=>'double(24,8)', 'label'=>'Cheque', 'enabled'=>1, 'visible'=>1, 'position'=>33),
    +	'card' =>array('type'=>'double(24,8)', 'label'=>'CreditCard', 'enabled'=>1, 'visible'=>1, 'position'=>36),
    +	'year_close' =>array('type'=>'integer', 'label'=>'Year close', 'enabled'=>1, 'visible'=>1, 'notnul'=>1, 'position'=>50),
    +	'month_close' =>array('type'=>'integer', 'label'=>'Month close', 'enabled'=>1, 'visible'=>1, 'position'=>55),
    +	'day_close' =>array('type'=>'integer', 'label'=>'Day close', 'enabled'=>1, 'visible'=>1, 'position'=>60),
    +	'date_valid' =>array('type'=>'datetime', 'label'=>'DateValid', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>490),
    +	'date_creation' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>500),
    +	'tms' =>array('type'=>'timestamp', 'label'=>'Tms', 'enabled'=>1, 'visible'=>0, 'notnull'=>1, 'position'=>505),
    +	'import_key' =>array('type'=>'varchar(14)', 'label'=>'Import key', 'enabled'=>1, 'visible'=>0, 'position'=>510),
    +	'status' => array('type'=>'integer', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'position'=>1000, 'notnull'=>1, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Brouillon', '1'=>'Validated')),
    +	);
    +
    +	public $id;
    +	public $opening;
    +	public $status;
    +	public $year_close;
    +	public $month_close;
    +	public $day_close;
    +	public $posmodule;
    +	public $posnumber;
    +	public $cash;
    +	public $cheque;
    +	public $card;
    +	public $date_valid;
    +	public $date_creation;
    +	public $date_modification;
    +
    +	const STATUS_DRAFT = 0;
    +	const STATUS_VALIDATED = 1;
    +
    +
    +	/**
    +	 * Constructor
    +	 *
    +	 * @param DoliDB $db Database handler
    +	 */
    +	public function __construct(DoliDB $db)
    +	{
    +		$this->db = $db;
    +	}
    +
    +
    +	/**
    +	 *  Create in database
    +	 *
    +	 * @param  User $user User that create
    +	 * @param  int $notrigger 0=launch triggers after, 1=disable triggers
    +	 * @return int <0 if KO, Id of created object if OK
    +	 */
    +	public function create(User $user, $notrigger = 0)
    +	{
    +		global $conf;
    +
    +		$error = 0;
    +
    +		// Clean data
    +		if (empty($this->cash)) $this->cash=0;
    +		if (empty($this->cheque)) $this->cheque=0;
    +		if (empty($this->card)) $this->card=0;
    +
    +		// Insert request
    +		$sql = "INSERT INTO ".MAIN_DB_PREFIX."pos_cash_fence (";
    +		$sql .= "entity";
    +		//$sql .= ", ref";
    +		$sql .= ", opening";
    +		$sql .= ", status";
    +		$sql .= ", date_creation";
    +		$sql .= ", posmodule";
    +		$sql .= ", posnumber";
    +		$sql .= ", day_close";
    +		$sql .= ", month_close";
    +		$sql .= ", year_close";
    +		$sql .= ", cash";
    +		$sql .= ", cheque";
    +		$sql .= ", card";
    +		$sql .= ") VALUES (";
    +		//$sql .= "'(PROV)', ";
    +		$sql .= $conf->entity;
    +		$sql .= ", ".(is_numeric($this->opening) ? $this->opening : 0);
    +		$sql .= ", 0";										// Draft by default
    +		$sql .= ", '".$this->db->idate(dol_now())."'";
    +		$sql .= ", '".$this->db->escape($this->posmodule)."'";
    +		$sql .= ", '".$this->db->escape($this->posnumber)."'";
    +		$sql .= ", ".($this->day_close > 0 ? $this->day_close : "null");
    +		$sql .= ", ".($this->month_close > 0 ? $this->month_close : "null");
    +		$sql .= ", ".$this->year_close;
    +		$sql .= ", ".$this->cash;
    +		$sql .= ", ".$this->cheque;
    +		$sql .= ", ".$this->card;
    +		$sql .= ")";
    +
    +		$this->db->begin();
    +
    +		dol_syslog(get_class($this)."::create", LOG_DEBUG);
    +		$resql = $this->db->query($sql);
    +		if (!$resql) {
    +			$error++;
    +			$this->errors[] = "Error ".$this->db->lasterror();
    +		}
    +
    +		if (!$error) {
    +			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."pos_cash_fence");
    +
    +			$sql = 'UPDATE '.MAIN_DB_PREFIX.'pos_cash_fence SET ref = rowid where rowid = '.$this->id;
    +			$this->db->query($sql);
    +		}
    +
    +		// Commit or rollback
    +		if ($error) {
    +			foreach ($this->errors as $errmsg) {
    +				dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
    +				$this->error .= ($this->error ? ', '.$errmsg : $errmsg);
    +			}
    +			$this->db->rollback();
    +			return -1 * $error;
    +		} else {
    +			$this->db->commit();
    +			return $this->id;
    +		}
    +	}
    +
    +	/**
    +	 * Validate cash fence
    +	 *
    +	 * @param 	User 		$user		User
    +	 * @param 	number 		$notrigger	No trigger
    +	 * @return 	int						<0 if KO, >0 if OK
    +	 */
    +	public function valid(User $user, $notrigger = 0)
    +	{
    +		global $conf,$langs;
    +		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +
    +		$error = 0;
    +
    +		// Protection
    +		if ($this->status == self::STATUS_VALIDATED)
    +		{
    +			dol_syslog(get_class($this)."::valid action abandonned: already validated", LOG_WARNING);
    +			return 0;
    +		}
    +
    +		/*
    +		 $posmodule = $this->posmodule;
    +		 if (! empty($user->rights->$posmodule->use))
    +		 {
    +		 $this->error='NotEnoughPermissions';
    +		 dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
    +		 return -1;
    +		 }
    +		 */
    +
    +		$now=dol_now();
    +
    +		// Update request
    +		$sql = "UPDATE ".MAIN_DB_PREFIX."pos_cash_fence";
    +		$sql.= " SET status = ".self::STATUS_VALIDATED.",";
    +		$sql.= " date_valid='".$this->db->idate($now)."',";
    +		$sql.= " fk_user_valid = ".$user->id;
    +		$sql.= " WHERE rowid=".$this->id;
    +
    +		$this->db->begin();
    +
    +		dol_syslog(get_class($this)."::close", LOG_DEBUG);
    +		$resql = $this->db->query($sql);
    +		if (!$resql) {
    +			$error++;
    +			$this->errors[] = "Error ".$this->db->lasterror();
    +		}
    +
    +		if (!$error) {
    +			$this->status = self::STATUS_VALIDATED;
    +			$this->date_valid = $now;
    +			$this->fk_user_valid = $user->id;
    +		}
    +
    +		if (! $error && ! $notrigger)
    +		{
    +			// Call trigger
    +			$result=$this->call_trigger('CASHCONTROL_VALIDATE', $user);
    +			if ($result < 0) $error++;
    +			// End call triggers
    +		}
    +
    +		// Commit or rollback
    +		if ($error) {
    +			foreach ($this->errors as $errmsg) {
    +				dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
    +				$this->error .= ($this->error ? ', '.$errmsg : $errmsg);
    +			}
    +			$this->db->rollback();
    +			return -1 * $error;
    +		} else {
    +			$this->db->commit();
    +			return $this->id;
    +		}
    +	}
    +
    +
    +	/**
    +	 * Load object in memory from the database
    +	 *
    +	 * @param int    $id   Id object
    +	 * @param string $ref  Ref
    +	 * @return int         <0 if KO, 0 if not found, >0 if OK
    +	 */
    +	public function fetch($id, $ref = null)
    +	{
    +		$result = $this->fetchCommon($id, $ref);
    +		if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines();
    +		return $result;
    +	}
    +
    +	/**
    +	 * Delete object in database
    +	 *
    +	 * @param User $user       User that deletes
    +	 * @param bool $notrigger  false=launch triggers after, true=disable triggers
    +	 * @return int             <0 if KO, >0 if OK
    +	 */
    +	public function delete(User $user, $notrigger = false)
    +	{
    +	    return $this->deleteCommon($user, $notrigger);
    +	    //return $this->deleteCommon($user, $notrigger, 1);
    +	}
    +
    +	/**
    +	 *  Return label of the status
    +	 *
    +	 *  @param  int		$mode          0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
    +	 *  @return	string 			       Label of status
    +	 */
    +	public function getLibStatut($mode=0)
    +	{
    +		return $this->LibStatut($this->status, $mode);
    +	}
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
    +	/**
    +	 *  Return the status
    +	 *
    +	 *  @param	int		$status        Id status
    +	 *  @param  int		$mode          0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
    +	 *  @return string 			       Label of status
    +	 */
    +	public function LibStatut($status, $mode=0)
    +	{
    +		// phpcs:enable
    +		if (empty($this->labelstatus))
    +		{
    +			global $langs;
    +			//$langs->load("mymodule");
    +			$this->labelstatus[0] = $langs->trans('Draft');
    +			$this->labelstatus[1] = $langs->trans('Closed');
    +		}
    +
    +		if ($mode == 0)
    +		{
    +			return $this->labelstatus[$status];
    +		}
    +		elseif ($mode == 1)
    +		{
    +			return $this->labelstatus[$status];
    +		}
    +		elseif ($mode == 2)
    +		{
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut6', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut0', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +		}
    +		elseif ($mode == 3)
    +		{
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut6', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut0', '', false, 0, 0, '', 'valignmiddle');
    +		}
    +		elseif ($mode == 4)
    +		{
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut6', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut0', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +		}
    +		elseif ($mode == 5)
    +		{
    +			if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut6', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut0', '', false, 0, 0, '', 'valignmiddle');
    +		}
    +		elseif ($mode == 6)
    +		{
    +			if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut6', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut0', '', false, 0, 0, '', 'valignmiddle');
    +		}
    +	}
    +
    +	/**
    +	 *    Return clicable link of object (with eventually picto)
    +	 *
    +	 * @param  int    $withpicto             Add picto into link
    +	 * @param  string $option                Where point the link ('stock', 'composition', 'category', 'supplier', '')
    +	 * @param  int    $maxlength             Maxlength of ref
    +	 * @param  int    $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    +	 * @param  int    $notooltip			 No tooltip
    +	 * @return string                                String with URL
    +	 */
    +	public function getNomUrl($withpicto=0, $option='', $maxlength=0, $save_lastsearch_value=-1, $notooltip=0)
    +	{
    +		global $conf, $langs, $hookmanager;
    +		include_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
    +
    +		$result='';
    +		$newref=($this->ref?$this->ref:$this->id);
    +		if ($maxlength) { $newref=dol_trunc($newref, $maxlength, 'middle'); }
    +
    +		$label = '<u>' . $langs->trans("ShowCashFence") . '</u>';
    +		$label .= '<br><b>' . $langs->trans('ProductRef') . ':</b> ' . ($this->ref?$this->ref:$this->id);
    +
    +		$linkclose='';
    +		if (empty($notooltip)) {
    +			if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
    +				$label=$langs->trans("ShowCashFence");
    +				$linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    +			}
    +
    +			$linkclose.= ' title="'.dol_escape_htmltag($label, 1, 1).'"';
    +			$linkclose.= ' class="classfortooltip"';
    +
    +			/*
    +			 $hookmanager->initHooks(array('productdao'));
    +			 $parameters=array('id'=>$this->id);
    +			 $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +			 if ($reshook > 0) $linkclose = $hookmanager->resPrint;
    +			 */
    +		}
    +
    +		$url = DOL_URL_ROOT.'/compta/cashcontrol/cashcontrol_card.php?id='.$this->id;
    +
    +		if ($option !== 'nolink') {
    +			// Add param to save lastsearch_values or not
    +			$add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    +			if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) { $add_save_lastsearch_values=1;
    +			}
    +			if ($add_save_lastsearch_values) { $url.='&save_lastsearch_values=1';
    +			}
    +		}
    +
    +		$linkstart = '<a href="'.$url.'"';
    +		$linkstart.=$linkclose.'>';
    +		$linkend='</a>';
    +
    +		$result.=$linkstart;
    +		if ($withpicto) {
    +			$result.=(img_object(($notooltip?'':$label), 'bank', ($notooltip?'class="paddingright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1));
    +		}
    +		$result.= $newref;
    +		$result.= $linkend;
    +
    +		global $action;
    +		$hookmanager->initHooks(array('cashfencedao'));
    +		$parameters=array('id'=>$this->id, 'getnomurl'=>$result);
    +		$reshook=$hookmanager->executeHooks('getNomUrl', $parameters, $this, $action);    // Note that $action and $object may have been modified by some hooks
    +		if ($reshook > 0) { $result = $hookmanager->resPrint;
    +		} else { $result .= $hookmanager->resPrint;
    +		}
    +
    +		return $result;
    +	}
    +}
    \ No newline at end of file
    diff --git a/htdocs/compta/cashcontrol/report.php b/htdocs/compta/cashcontrol/report.php
    new file mode 100644
    index 00000000000..51f3c096f56
    --- /dev/null
    +++ b/htdocs/compta/cashcontrol/report.php
    @@ -0,0 +1,286 @@
    +<?php
    +/* Copyright (C) 2001-2002  Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2016  Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2010  Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2012       Vinícius Nogueira    <viniciusvgn@gmail.com>
    + * Copyright (C) 2014       Florian Henry        <florian.henry@open-cooncept.pro>
    + * Copyright (C) 2015       Jean-François Ferry  <jfefe@aternatik.fr>
    + * Copyright (C) 2016       Juanjo Menent        <jmenent@2byte.es>
    + * Copyright (C) 2017       Alexandre Spangaro   <aspangaro@zendsi.com>
    + * Copyright (C) 2018       Andreu Bisquerra	 <jove@bisquerra.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *	\file       htdocs/compta/cashcontrol/report.php
    + *	\ingroup    cashdesk|takepos
    + *	\brief      List of bank transactions
    + */
    +
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/compta/cashcontrol/class/cashcontrol.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
    +
    +$id = GETPOST('id','int');
    +
    +$_GET['optioncss']="print";
    +include_once 'class/cashcontrol.class.php';
    +$cashcontrol= new CashControl($db);
    +$cashcontrol->fetch($id);
    +
    +$limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit;
    +$sortorder='ASC';
    +$sortfield='b.datev,b.dateo,b.rowid';
    +
    +$arrayfields=array(
    +    'b.rowid'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
    +    'b.dateo'=>array('label'=>$langs->trans("DateOperationShort"), 'checked'=>1),
    +    'b.num_chq'=>array('label'=>$langs->trans("Number"), 'checked'=>1),
    +    'ba.ref'=>array('label'=>$langs->trans("BankAccount"), 'checked'=>1),
    +    'b.debit'=>array('label'=>$langs->trans("Debit"), 'checked'=>1, 'position'=>600),
    +    'b.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1, 'position'=>605),
    +);
    +
    +$syear  = $cashcontrol->year_close;
    +$smonth = $cashcontrol->month_close;
    +$sday   = $cashcontrol->day_close;
    +
    +$posmodule = $cashcontrol->posmodule;
    +$terminalid = $cashcontrol->posnumber;
    +
    +
    +/*
    + * View
    + */
    +
    +llxHeader('', $langs->trans("CashControl"), '', '', 0, 0, array(), array(), $param);
    +
    +/*$sql = "SELECT b.rowid, b.dateo as do, b.datev as dv, b.amount, b.label, b.rappro as conciliated, b.num_releve, b.num_chq,";
    +$sql.= " b.fk_account, b.fk_type,";
    +$sql.= " ba.rowid as bankid, ba.ref as bankref,";
    +$sql.= " bu.url_id,";
    +$sql.= " f.module_source, f.facnumber as facnumber";
    +$sql.= " FROM ";
    +//if ($bid) $sql.= MAIN_DB_PREFIX."bank_class as l,";
    +$sql.= " ".MAIN_DB_PREFIX."bank_account as ba,";
    +$sql.= " ".MAIN_DB_PREFIX."bank as b";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu ON bu.fk_bank = b.rowid AND type = 'payment'";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as f ON bu.url_id = f.rowid";
    +$sql.= " WHERE b.fk_account = ba.rowid";
    +// Define filter on invoice
    +$sql.= " AND f.module_source = '".$db->escape($cashcontrol->posmodule)."'";
    +$sql.= " AND f.pos_source = '".$db->escape($cashcontrol->posnumber)."'";
    +$sql.= " AND f.entity IN (".getEntity('facture').")";
    +// Define filter on data
    +if ($syear && ! $smonth)              $sql.= " AND dateo BETWEEN '".$db->idate(dol_get_first_day($syear, 1))."' AND '".$db->idate(dol_get_last_day($syear, 12))."'";
    +elseif ($syear && $smonth && ! $sday) $sql.= " AND dateo BETWEEN '".$db->idate(dol_get_first_day($syear, $smonth))."' AND '".$db->idate(dol_get_last_day($syear, $smonth))."'";
    +elseif ($syear && $smonth && $sday)   $sql.= " AND dateo BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $smonth, $sday, $syear))."' AND '".$db->idate(dol_mktime(23, 59, 59, $smonth, $sday, $syear))."'";
    +else dol_print_error('', 'Year not defined');
    +// Define filter on bank account
    +$sql.=" AND (b.fk_account=".$conf->global->CASHDESK_ID_BANKACCOUNT_CASH;
    +$sql.=" OR b.fk_account=".$conf->global->CASHDESK_ID_BANKACCOUNT_CB;
    +$sql.=" OR b.fk_account=".$conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE;
    +$sql.=")";
    +*/
    +$sql = "SELECT f.rowid as facid, f.facnumber, f.datef as do, pf.amount as amount, b.fk_account as bankid, cp.code";
    +$sql.= " FROM ".MAIN_DB_PREFIX."paiement_facture as pf, ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."paiement as p, ".MAIN_DB_PREFIX."c_paiement as cp, ".MAIN_DB_PREFIX."bank as b";
    +$sql.= " WHERE pf.fk_facture = f.rowid AND p.rowid = pf.fk_paiement AND cp.id = p.fk_paiement AND p.fk_bank = b.rowid";
    +$sql.= " AND f.module_source = '".$db->escape($posmodule)."'";
    +$sql.= " AND f.pos_source = '".$db->escape($terminalid)."'";
    +$sql.= " AND f.paye = 1";
    +$sql.= " AND p.entity IN (".getEntity('facture').")";
    +/*if ($key == 'cash')       $sql.=" AND cp.code = 'LIQ'";
    +elseif ($key == 'cheque') $sql.=" AND cp.code = 'CHQ'";
    +elseif ($key == 'card')   $sql.=" AND cp.code = 'CB'";
    +else
    +{
    +	dol_print_error('Value for key = '.$key.' not supported');
    +	exit;
    +}*/
    +if ($syear && ! $smonth)              $sql.= " AND datef BETWEEN '".$db->idate(dol_get_first_day($syear, 1))."' AND '".$db->idate(dol_get_last_day($syear, 12))."'";
    +elseif ($syear && $smonth && ! $sday) $sql.= " AND datef BETWEEN '".$db->idate(dol_get_first_day($syear, $smonth))."' AND '".$db->idate(dol_get_last_day($syear, $smonth))."'";
    +elseif ($syear && $smonth && $sday)   $sql.= " AND datef BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $smonth, $sday, $syear))."' AND '".$db->idate(dol_mktime(23, 59, 59, $smonth, $sday, $syear))."'";
    +else dol_print_error('', 'Year not defined');
    +
    +$resql = $db->query($sql);
    +if ($resql)
    +{
    +	$num = $db->num_rows($resql);
    +	$i = 0;
    +
    +	print "<center><h2>";
    +	if ($cashcontrol->status==2) print $langs->trans("CashControl")." ".$cashcontrol->id;
    +	else print $langs->trans("CashControl")." - ".$langs->trans("Draft");
    +	print "<br>".$langs->trans("DateCreationShort").": ".dol_print_date($cashcontrol->date_creation, 'dayhour')."</h2></center>";
    +
    +	$invoicetmp = new Facture($db);
    +
    +
    +	print "<div style='text-align: right'><h2>";
    +	print $langs->trans("InitialBankBalance").' - '.$langs->trans("Cash")." : ".price($cashcontrol->opening);
    +	print "</h2></div>";
    +
    +    print '<div class="div-table-responsive">';
    +    print '<table class="tagtable liste">'."\n";
    +
    +	// Fields title
    +	print '<tr class="liste_titre">';
    +	print_liste_field_titre($arrayfields['b.rowid']['label'],$_SERVER['PHP_SELF'],'b.rowid','',$param,'',$sortfield,$sortorder);
    +	print_liste_field_titre($arrayfields['b.dateo']['label'],$_SERVER['PHP_SELF'],'b.dateo','',$param,'align="left"',$sortfield,$sortorder);
    +	print_liste_field_titre($arrayfields['ba.ref']['label'],$_SERVER['PHP_SELF'],'ba.ref','',$param,'align="right"',$sortfield,$sortorder);
    +	print_liste_field_titre($arrayfields['b.debit']['label'],$_SERVER['PHP_SELF'],'b.amount','',$param,'align="right"',$sortfield,$sortorder);
    +	print_liste_field_titre($arrayfields['b.credit']['label'],$_SERVER['PHP_SELF'],'b.amount','',$param,'align="right"',$sortfield,$sortorder);
    +	print "</tr>\n";
    +
    +	$posconciliatecol = 0;
    +
    +	// Loop on each record
    +	$sign = 1;
    +	$cash=$bank=$cheque=$other=0;
    +
    +    $totalarray=array();
    +    while ($i < min($num,$limit))
    +    {
    +        $objp = $db->fetch_object($resql);
    +
    +        if (empty($cachebankaccount[$objp->bankid]))
    +        {
    +            $bankaccounttmp = new Account($db);
    +            $bankaccounttmp->fetch($objp->bankid);
    +            $cachebankaccount[$objp->bankid]=$bankaccounttmp;
    +            $bankaccount = $bankaccounttmp;
    +        }
    +        else
    +        {
    +            $bankaccount = $cachebankaccount[$objp->bankid];
    +        }
    +
    +		/*if ($first == "yes")
    +		{
    +			print '<tr class="oddeven">';
    +			print '<td>'.$langs->trans("InitialBankBalance").' - '.$langs->trans("Cash").'</td>';
    +			print '<td></td><td></td><td></td><td align="right">'.price($cashcontrol->opening).'</td>';
    +			print '</tr>';
    +			$first = "no";
    +		}*/
    +
    +		print '<tr class="oddeven">';
    +
    +		// Ref
    +        print '<td align="left" class="nowrap">';
    +        $invoicetmp->fetch($objp->facid);
    +        print $invoicetmp->getNomUrl(1);
    +        print '</td>';
    +        if (! $i) $totalarray['nbfield']++;
    +
    +
    +        // Date ope
    +    	print '<td align="left" class="nowrap">';
    +    	print '<span id="dateoperation_'.$objp->rowid.'">'.dol_print_date($db->jdate($objp->do),"day")."</span>";
    +    	print "</td>\n";
    +        if (! $i) $totalarray['nbfield']++;
    +
    +    	// Bank account
    +        print '<td align="right" class="nowrap">';
    +		print $bankaccount->getNomUrl(1);
    +		if ($conf->global->CASHDESK_ID_BANKACCOUNT_CASH==$bankaccount->id) $cash+=$objp->amount;
    +		elseif ($conf->global->CASHDESK_ID_BANKACCOUNT_CB==$bankaccount->id) $bank+=$objp->amount;
    +		elseif ($conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE==$bankaccount->id) $cheque+=$objp->amount;
    +		else $other+=$objp->amount;
    +		print "</td>\n";
    +        if (! $i) $totalarray['nbfield']++;
    +
    +    	// Debit
    +    	print '<td align="right">';
    +    	if ($objp->amount < 0)
    +    	{
    +    	    print price($objp->amount * -1);
    +    	    $totalarray['totaldeb'] += $objp->amount;
    +    	}
    +    	print "</td>\n";
    +    	if (! $i) $totalarray['nbfield']++;
    +    	if (! $i) $totalarray['totaldebfield']=$totalarray['nbfield'];
    +
    +    	// Credit
    +    	print '<td align="right">';
    +    	if ($objp->amount > 0)
    +    	{
    +			print price($objp->amount);
    +    	    $totalarray['totalcred'] += $objp->amount;
    +    	}
    +    	print "</td>\n";
    +    	if (! $i) $totalarray['nbfield']++;
    +    	if (! $i) $totalarray['totalcredfield']=$totalarray['nbfield'];
    +
    +		print "</tr>";
    +
    +		$i++;
    +	}
    +
    +	// Show total line
    +	if (isset($totalarray['totaldebfield']) || isset($totalarray['totalcredfield']))
    +	{
    +	    print '<tr class="liste_total">';
    +	    $i=0;
    +	    while ($i < $totalarray['nbfield'])
    +	    {
    +	        $i++;
    +	        if ($i == 1)
    +	        {
    +	            if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +	            else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
    +	        }
    +	        elseif ($totalarray['totaldebfield'] == $i) print '<td align="right">'.price(-1 * $totalarray['totaldeb']).'</td>';
    +	        elseif ($totalarray['totalcredfield'] == $i) print '<td align="right">'.price($totalarray['totalcred']).'</td>';
    +	        else print '<td></td>';
    +	    }
    +	    print '</tr>';
    +	}
    +
    +	print "</table>";
    +
    +	$cash=$cash+$cashcontrol->opening;
    +	print "<div style='text-align: right'><h2>";
    +	print $langs->trans("Cash").": ".price($cash)."<br><br>";
    +	print $langs->trans("PaymentTypeCB").": ".price($bank)."<br><br>";
    +	print $langs->trans("PaymentTypeCHQ").": ".price($cheque)."<br><br>";
    +	if ($other) print $langs->trans("Other").": ".price($other)."<br><br>";
    +	print "</h2></div>";
    +
    +	//save totals to DB
    +	/*
    +	$sql = "UPDATE ".MAIN_DB_PREFIX."pos_cash_fence ";
    +	$sql .= "SET";
    +	$sql .= " cash='".$cash."'";
    +    $sql .= ", card='".$bank."'";
    +	$sql .= " where rowid=".$id;
    +	$db->query($sql);
    +	*/
    +
    +	print "</div>";
    +
    +    print '</form>';
    +
    +	$db->free($resql);
    +}
    +else
    +{
    +	dol_print_error($db);
    +}
    +
    +llxFooter();
    +
    +$db->close();
    diff --git a/htdocs/compta/charges/index.php b/htdocs/compta/charges/index.php
    index 4b3caf4f790..c77805a4a73 100644
    --- a/htdocs/compta/charges/index.php
    +++ b/htdocs/compta/charges/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2016 Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2011-2014 Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
    @@ -294,7 +294,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
     
     
     		        print '<tr class="oddeven">';
    -		        print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
    +		        print '<td class="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
     
     		        print "<td>".$obj->label."</td>\n";
     
    @@ -303,7 +303,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
     		        // Ref payment
     				$tva_static->id=$obj->rowid;
     				$tva_static->ref=$obj->rowid;
    -		        print '<td align="left">'.$tva_static->getNomUrl(1)."</td>\n";
    +		        print '<td class="left">'.$tva_static->getNomUrl(1)."</td>\n";
     
     		        // Date
     		        print '<td align="center">'.dol_print_date($db->jdate($obj->dm),'day')."</td>\n";
    @@ -423,14 +423,14 @@ while($j<$numlt)
     				$total = $total + $obj->amount;
     
     				print '<tr class="oddeven">';
    -				print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
    +				print '<td class="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
     
     				print "<td>".$obj->label."</td>\n";
     
     				// Ref payment
     				$tva_static->id=$obj->rowid;
     				$tva_static->ref=$obj->rowid;
    -				print '<td align="left">'.$tva_static->getNomUrl(1)."</td>\n";
    +				print '<td class="left">'.$tva_static->getNomUrl(1)."</td>\n";
     
     				print '<td align="center">'.dol_print_date($db->jdate($obj->dp),'day')."</td>\n";
     				print '<td align="right">'.price($obj->amount)."</td>";
    @@ -463,7 +463,7 @@ if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read))
     
             print "<br>";
     
    -        print_fiche_titre( $langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
    +        print load_fiche_titre( $langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
     
             $sql = "SELECT s.rowid, s.amount, s.label, s.datep as datep, s.datev as datev, s.datesp, s.dateep, s.salary, s.fk_bank, u.salary as current_salary,";
     		$sql.= " pct.code as payment_code,";
    @@ -508,14 +508,14 @@ if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read))
     
                     print '<tr class="oddeven">';
     
    -                print '<td align="left">'.dol_print_date($db->jdate($obj->dateep),'day').'</td>'."\n";
    +                print '<td class="left">'.dol_print_date($db->jdate($obj->dateep),'day').'</td>'."\n";
     
                     print "<td>".$obj->label."</td>\n";
     
                     // Ref payment
                     $sal_static->id=$obj->rowid;
                     $sal_static->ref=$obj->rowid;
    -                print '<td align="left">'.$sal_static->getNomUrl(1)."</td>\n";
    +                print '<td class="left">'.$sal_static->getNomUrl(1)."</td>\n";
     
                     // Date
                     print '<td align="center">'.dol_print_date($db->jdate($obj->datep),'day')."</td>\n";
    @@ -568,7 +568,6 @@ if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read))
     
     print '</form>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/clients.php b/htdocs/compta/clients.php
    index ceb9324961e..c82219cb7be 100644
    --- a/htdocs/compta/clients.php
    +++ b/htdocs/compta/clients.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -184,8 +184,8 @@ if ($resql)
     		print $thirdpartystatic->getNomUrl(1,'compta');
     		print '</td>';
     		print '<td>'.$obj->town.'&nbsp;</td>';
    -		print '<td align="left">'.$obj->code_client.'&nbsp;</td>';
    -		print '<td align="left">'.$obj->code_compta.'&nbsp;</td>';
    +		print '<td class="left">'.$obj->code_client.'&nbsp;</td>';
    +		print '<td class="left">'.$obj->code_compta.'&nbsp;</td>';
     		print '<td align="right">'.dol_print_date($db->jdate($obj->datec)).'</td>';
     		print "</tr>\n";
     		$i++;
    diff --git a/htdocs/compta/compta-files.php b/htdocs/compta/compta-files.php
    new file mode 100644
    index 00000000000..83e475f2855
    --- /dev/null
    +++ b/htdocs/compta/compta-files.php
    @@ -0,0 +1,375 @@
    +<?php
    +/* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2017      Pierre-Henry Favre   <support@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +/**
    + *  \file       htdocs/compta/compta-files.php
    + *  \ingroup    compta
    + *  \brief      Page to show portoflio and files of a thirdparty and download it
    + */
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php';
    +
    +$langs->loadLangs(array("accountancy","bills"));
    +
    +$date_start =GETPOST('date_start','alpha');
    +$date_startDay= GETPOST('date_startday','int');
    +$date_startMonth= GETPOST('date_startmonth','int');
    +$date_startYear= GETPOST('date_startyear','int');
    +$date_start=($date_startDay)?dol_mktime(0,0,0,$date_startMonth,$date_startDay,$date_startYear):strtotime($date_start);
    +$date_stop =GETPOST('date_stop','alpha');
    +$date_stopDay= GETPOST('date_stopday','int');
    +$date_stopMonth= GETPOST('date_stopmonth','int');
    +$date_stopYear= GETPOST('date_stopyear','int');
    +//FIXME doldate
    +$date_stop=($date_stopDay)?dol_mktime(0,0,0,$date_stopMonth,$date_stopDay,$date_stopYear):strtotime($date_stop);
    +$action =GETPOST('action','alpha');
    +
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$hookmanager->initHooks(array('comptafileslist','globallist'));
    +
    +// Load variable for pagination
    +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
    +$sortfield = GETPOST('sortfield','alpha');
    +$sortorder = GETPOST('sortorder','alpha');
    +$page = GETPOST('page','int');
    +if (empty($page) || $page == -1) { $page = 0; }     // If $page is not defined, or '' or -1
    +$offset = $limit * $page;
    +$pageprev = $page - 1;
    +$pagenext = $page + 1;
    +if (! $sortfield) $sortfield="f.datef,f.rowid"; // Set here default search field
    +if (! $sortorder) $sortorder="DESC";
    +
    +
    +$arrayfields=array(
    +    'date'=>array('label'=>"Date", 'checked'=>1),
    +    //...
    +);
    +
    +// Security check
    +if (empty($conf->compta->enabled) && empty($conf->accounting->enabled)) {
    +    accessforbidden();
    +}
    +if ($user->societe_id > 0)
    +    accessforbidden();
    +
    +
    +
    +/*
    + * Actions
    + */
    +
    +//$parameters = array('socid' => $id);
    +//$reshook = $hookmanager->executeHooks('doActions', $parameters, $object); // Note that $object may have been modified by some hooks
    +//if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +$filesarray=array();
    +$result=false;
    +if(($action=="searchfiles"||$action=="dl" ) && $date_start && $date_stop){
    +    $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'";
    +    $sql="SELECT rowid as id, ref as ref,paye as paid, total_ttc, fk_soc, datef as date, 'Invoice' as item FROM ".MAIN_DB_PREFIX."facture";
    +    $sql.=" WHERE datef between ".$wheretail;
    +    $sql.=" UNION ALL";
    +    $sql.=" SELECT rowid as id, ref, paye as paid, total_ttc, fk_soc, datef as date, 'InvoiceSupplier' as item  FROM ".MAIN_DB_PREFIX."facture_fourn";
    +    $sql.=" WHERE datef between ".$wheretail;
    +    $sql.=" UNION ALL";
    +    $sql.=" SELECT rowid as id, ref, paid, total_ttc, fk_user_author as fk_soc, date_fin as date,'ExpenseReport' as item  FROM ".MAIN_DB_PREFIX."expensereport";
    +    $sql.=" WHERE date_fin between  ".$wheretail;
    +    $sql.=" UNION ALL";
    +    $sql.=" SELECT rowid as id, ref,paid,amount as total_ttc, '0' as fk_soc, datedon as date,'Donation' as item  FROM ".MAIN_DB_PREFIX."don";
    +    $sql.=" WHERE datedon between ".$wheretail;
    +    $sql.=" UNION ALL";
    +    $sql.=" SELECT rowid as id, label as ref, 1 as paid, amount as total_ttc, fk_user as fk_soc,datep as date,'SalaryPayment' as item  FROM ".MAIN_DB_PREFIX."payment_salary";
    +    $sql.=" WHERE datep between ".$wheretail;
    +    $sql.=" UNION ALL";
    +    $sql.=" SELECT rowid as id, libelle as ref, paye as paid, amount as total_ttc, 0 as fk_soc, date_creation as date, 'SocialContributions' as item  FROM ".MAIN_DB_PREFIX."chargesociales";
    +    $sql.=" WHERE date_creation between ".$wheretail;
    +    $resd = $db->query($sql);
    +    $files=array();
    +    $link='';
    +
    +    if ($resd)
    +    {
    +         $numd = $db->num_rows($resd);
    +
    +         $tmpinvoice=new Facture($db);
    +         $tmpinvoicesupplier=new FactureFournisseur($db);
    +         $tmpdonation=new Don($db);
    +
    +         $upload_dir ='';
    +         $i=0;
    +         while($i<$numd)
    +         {
    +            $objd = $db->fetch_object($resd);
    +
    +            switch($objd->item)
    +            {
    +                case "Invoice":
    +                    $subdir=dol_sanitizeFileName($objd->ref);
    +                    $upload_dir = $conf->facture->dir_output.'/'.$subdir;
    +                    $link="document.php?modulepart=facture&file=".str_replace('/','%2F',$subdir).'%2F';
    +                    break;
    +                case "InvoiceSupplier":
    +                    $tmpinvoicesupplier->fetch($objd->id);
    +                    $subdir=get_exdir(0,0,0,1,$tmpinvoicesupplier,'invoice_supplier').'/'.dol_sanitizeFileName($objd->ref);
    +                    $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir;
    +                    $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/','%2F',$subdir).'%2F';
    +                    break;
    +                case "Expense":
    +                    $subdir=dol_sanitizeFileName($objd->ref);
    +                    $upload_dir = $conf->expensereport->dir_output.'/'.$subdir;
    +                    $link="document.php?modulepart=expensereport&file=".str_replace('/','%2F',$subdir).'%2F';
    +                    break;
    +                case "Salary":
    +                    $subdir=dol_sanitizeFileName($objd->id);
    +                    $upload_dir = $conf->salaries->dir_output.'/'.$subdir;
    +                    $link="document.php?modulepart=salaries&file=".str_replace('/','%2F',$subdir).'%2F';
    +                    break;
    +                case "Donation":
    +                    $tmpdonation->fetch($objp->id);
    +                    $subdir=get_exdir(0,0,0,1,$tmpdonation,'donation'). '/'. dol_sanitizeFileName($objd->id);
    +                    $upload_dir = $conf->don->dir_output . '/' . $subdir;
    +                    $link="document.php?modulepart=don&file=".str_replace('/','%2F',$subdir).'%2F';
    +                    break;
    +                case "SocialContributions":
    +                    $subdir=dol_sanitizeFileName($objd->id);
    +                    $upload_dir = $conf->tax->dir_output . '/' . $subdir;
    +                    $link="document.php?modulepart=tax&file=".str_replace('/','%2F',$subdir).'%2F';
    +                    break;
    +                default:
    +                    $subdir='';
    +                    $upload_dir='';
    +                    $link='';
    +                    break;
    +            }
    +
    +            if (!empty($upload_dir))
    +            {
    +                $result=true;
    +                $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1);
    +                if (count($files)<1) {
    +                    $nofile['date']=$db->idate($objd->date);
    +                    $nofile['paid']=$objd->paid;
    +                    $nofile['amount']=$objd->total_ttc;
    +                    $nofile['ref']=$objd->ref;
    +                    $nofile['fk']=$objd->fk_soc;
    +                    $nofile['item']=$objd->item;
    +
    +                    $filesarray[]=$nofile;
    +                }
    +                else
    +                {
    +                    foreach ($files as $key => $file)
    +                    {
    +                        $file['date']=$db->idate($objd->date);
    +                        $file['paid']=$objd->paid;
    +                        $file['amount']=$objd->total_ttc;
    +                        $file['ref']=$objd->ref;
    +                        $file['fk']=$objd->fk_soc;
    +                        $file['item']=$objd->item;
    +                        $file['link']=$link.$file['name'];
    +                        $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name'];
    +
    +                        $filesarray[]=$file;
    +                    }
    +                }
    +            }
    +            $i++;
    +         }
    +     }
    +     else
    +     {
    +         dol_print_error($db);
    +     }
    +
    +     $db->free($resd);
    +}
    +
    +/*
    + * cleanup of old ZIP
    + */
    +//FIXME
    +/*
    +*ZIP creation
    +*/
    +
    +if ($result && $action == "dl")
    +{
    +    dol_delete_file($zip);
    +
    +    $log='date,type,ref,total,paid,filename,item_id'."\n";
    +    $zipname = ($conf->accounting->dir_temp ? $conf->accounting->dir_temp : $conf->compta->dir_temp).'/'.($date_start)."-".($date_stop).'_export.zip';
    +
    +    $zip = new ZipArchive;
    +    $res = $zip->open($zipname, ZipArchive::OVERWRITE|ZipArchive::CREATE);
    +    if ($res)
    +    {
    +        foreach ($filesarray as $key=> $file)
    +        {
    +                if (file_exists($file["fullname"])) $zip->addFile($file["fullname"], $file["relpathnamelang"]); //
    +                $log.=$file['date'].','.$file['item'].','.$file['ref'].','.$file['amount'].','.$file['paid'].','.$file["name"].','.$file['fk']."\n";
    +        }
    +        $zip->addFromString('log.csv', $log);
    +        $zip->close();
    +
    +        ///Then download the zipped file.
    +        header('Content-Type: application/zip');
    +        header('Content-disposition: attachment; filename='.basename($zipname));
    +        header('Content-Length: ' . filesize($zipname));
    +        readfile($zipname);
    +
    +        dol_delete_file($zipname);
    +
    +        exit();
    +    }
    +}
    +
    +
    +/*
    + * View
    + */
    +
    +llxHeader('',$title,$help_url);
    +
    +$h=0;
    +$head[$h][0] = $_SERVER["PHP_SELF"].$varlink;
    +$head[$h][1] = $langs->trans("AccountantFiles");
    +$head[$h][2] = 'AccountantFiles';
    +
    +dol_fiche_head($head, 'AccountantFiles');
    +
    +$form = new Form($db);
    +$userstatic=new User($db);
    +$title=$langs->trans("ComptaFiles").' - '.$langs->trans("List");
    +print '<form name="searchfiles" action="?action=searchfiles'.$tail.'" method="POST" >'."\n";
    +print $langs->trans("ReportPeriod").': '.$form->select_date($date_start,'date_start',0,0,0,"",1,1,1);
    +print ' - '.$form->select_date($date_stop,'date_stop',0,0,0,"",1,1,1)."\n</a>";
    +print '<input class="button" type="submit" value="'.$langs->trans("Refresh").'" /></form>'."\n";
    +
    +dol_fiche_end();
    +
    +if (!empty($date_start) && !empty($date_stop))
    +{
    +    $param='action=searchfiles';
    +    $param.='&date_startday='.GETPOST('date_startday','int');
    +    $param.='&date_startmonth='.GETPOST('date_startmonth','int');
    +    $param.='&date_startyear='.GETPOST('date_startyear','int');
    +    $param.='&date_stopday='.GETPOST('date_stopday','int');
    +    $param.='&date_stopmonth='.GETPOST('date_stopmonth','int');
    +    $param.='&date_stopyear='.GETPOST('date_stopyear','int');
    +
    +    print '<form name="dl" action="?action=dl" method="POST" >'."\n";
    +
    +    echo dol_print_date($date_start, 'day')." - ".dol_print_date($date_stop, 'day');
    +
    +    print '<input type="hidden" name="date_start" value="'.dol_print_date($date_start,'dayxcard').'" />';
    +    print '<input type="hidden" name="date_stop"  value="'.dol_print_date($date_stop, 'dayxcard').'" />';
    +
    +    //print   '<input type="hidden" name="date_stopDay"  value="'.dol_print_date($date_stop, '%d').'" />';
    +    //print   '<input type="hidden" name="date_stopMonth"  value="'.dol_print_date($date_stop, '%m').'" />';
    +    //print   '<input type="hidden" name="date_stopYear"  value="'.dol_print_date($date_stop, '%Y').'" />';
    +
    +    //print   '<input type="hidden" name="date_startDay"  value="'.dol_print_date($date_start, '%d').'" />';
    +    //print   '<input type="hidden" name="date_startMonth"  value="'.dol_print_date($date_start, '%m').'" />';
    +    //print   '<input type="hidden" name="date_startYear"  value="'.dol_print_date($date_start, '%m').'" />';
    +
    +    print '<input class="butAction" type="submit" value="'.$langs->trans("Download").'" />';
    +    print '</form>'."\n";
    +
    +    print '<br>';
    +
    +    print '<div class="div-table-responsive">';		// You can use div-table-responsive-no-min if you dont need reserved height for your table
    +    print '<table class="noborder" width="100%">';
    +    print '<tr class="liste_titre">';
    +    print_liste_field_titre($arrayfields['date']['label'],$_SERVER["PHP_SELF"],"date","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
    +    print '<td>'.$langs->trans("Type").'</td>';
    +    print '<td>'.$langs->trans("Ref").'</td>';
    +    print '<td>'.$langs->trans("Link").'</td>';
    +    print '<td>'.$langs->trans("Paid").'</td>';
    +    print '<td align="right">'.$langs->trans("Debit").'</td>';
    +    print '<td align="right">'.$langs->trans("Credit").'</td>';
    +    print '<td align="right">'.$langs->trans("Balance").'</td>';
    +    print '</tr>';
    +    if ($result)
    +    {
    +        $TData = dol_sort_array($filesarray, 'date', 'ASC');
    +            if(empty($TData)) {
    +                            print '<tr class="oddeven"><td colspan="7">'.$langs->trans("NoItem").'</td></tr>';
    +            } else {
    +                            // Sort array by date ASC to calucalte balance
    +
    +                            $totalDebit = 0;
    +                            $totalCredit = 0;
    +                            // Balance calculation
    +                            $balance = 0;
    +                            foreach($TData as &$data1) {
    +                                    if($data1['item']!='Invoice'&& $data1['item']!='Donation' ){
    +                                         $data1['amount']=-$data1['amount'];
    +                                    }
    +                                    if ($data1['amount']>0){
    +                                   }else{
    +                                   }
    +                                   $balance += $data1['amount'];
    +                                    $data1['balance'] = $balance;
    +                            }
    +                    // Display array
    +                    foreach($TData as $data) {
    +                            $html_class = '';
    +                            //if (!empty($data['fk_facture'])) $html_class = 'facid-'.$data['fk_facture'];
    +                            //elseif (!empty($data['fk_paiement'])) $html_class = 'payid-'.$data['fk_paiement'];
    +                            print '<tr class="oddeven '.$html_class.'">';
    +                            print "<td align=\"center\">";
    +                            print dol_print_date($data['date'],'day');
    +                            print "</td>\n";
    +                            print '<td aling="left">'.$data['item'].'</td>';
    +                            print '<td aling="left">'.$data['ref'].'</td>';
    +
    +                            // File link
    +                            print '<td><a href='.DOL_URL_ROOT.'/'.$data['link'].">".$data['name']."</a></td>\n";
    +
    +                            print '<td aling="left">'.$data['paid'].'</td>';
    +                            print '<td align="right">'.(($data['amount'] > 0) ? price(abs($data['amount'])) : '')."</td>\n";
    +                            $totalDebit += ($data['amount'] > 0) ? abs($data['amount']) : 0;
    +                            print '<td align="right">'.(($data['amount'] > 0) ? '' : price(abs($data['amount'])))."</td>\n";
    +                            $totalCredit += ($data['amount'] > 0) ? 0 : abs($data['amount']);
    +                            // Balance
    +                            print '<td align="right">'.price($data['balance'])."</td>\n";
    +                            print "</tr>\n";
    +                    }
    +                    print '<tr class="liste_total">';
    +                    print '<td colspan="5">&nbsp;</td>';
    +                    print '<td align="right">'.price($totalDebit).'</td>';
    +                    print '<td align="right">'.price($totalCredit).'</td>';
    +                    print '<td align="right">'.price(price2num($totalDebit - $totalCredit, 'MT')).'</td>';
    +                    print "</tr>\n";
    +                    }
    +            }
    +    print "</table>";
    +    print '</div>';
    +}
    +
    +
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/compta/deplacement/card.php b/htdocs/compta/deplacement/card.php
    index 05d509e268d..922df54c147 100644
    --- a/htdocs/compta/deplacement/card.php
    +++ b/htdocs/compta/deplacement/card.php
    @@ -1,9 +1,10 @@
     <?php
     /* Copyright (C) 2003		Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012	Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012		Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
    + * Copyright (C) 2013       Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -20,8 +21,8 @@
      */
     
     /**
    - *  \file       	htdocs/compta/deplacement/card.php
    - *  \brief      	Page to show a trip card
    + *  \file       htdocs/compta/deplacement/card.php
    + *  \brief      Page to show a trip card
      */
     
     require '../../main.inc.php';
    @@ -263,7 +264,7 @@ if ($action == 'create')
     
         print "<tr>";
         print '<td class="fieldrequired">'.$langs->trans("Date").'</td><td>';
    -    print $form->select_date($datec?$datec:-1,'','','','','add',1,1,1);
    +    print $form->selectDate($datec?$datec:-1, '', '', '', '', 'add', 1, 1);
         print '</td></tr>';
     
         // Km
    @@ -360,7 +361,7 @@ else if ($id)
     
                 // Date
                 print '<tr><td class="fieldrequired">'.$langs->trans("Date").'</td><td>';
    -            print $form->select_date($object->date,'',0,0,0,'update',1,0,1);
    +            print $form->selectDate($object->date, '', 0, 0, 0, 'update', 1, 0);
                 print '</td></tr>';
     
                 // Km
    @@ -420,7 +421,6 @@ else if ($id)
                 if ($action == 'delete')
                 {
                     print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("DeleteTrip"),$langs->trans("ConfirmDeleteTrip"),"confirm_delete");
    -
                 }
     
                 $soc = new Societe($db);
    @@ -531,7 +531,7 @@ else if ($id)
     	            }
     	            else
     	            {
    -	                print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Modify').'</a>';
    +	                print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Modify').'</a>';
     	            }
                 }
     
    @@ -543,7 +543,7 @@ else if ($id)
                     }
                     else
                     {
    -                    print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Validate').'</a>';
    +                    print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Validate').'</a>';
                     }
                 }
     
    @@ -555,7 +555,7 @@ else if ($id)
                     }
                     else
                     {
    -                    print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('ClassifyRefunded').'</a>';
    +                    print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('ClassifyRefunded').'</a>';
                     }
                 }
     
    @@ -565,7 +565,7 @@ else if ($id)
                 }
                 else
                 {
    -                print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Delete').'</a>';
    +                print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Delete').'</a>';
                 }
     
                 print '</div>';
    @@ -577,7 +577,6 @@ else if ($id)
         }
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/deplacement/class/deplacement.class.php b/htdocs/compta/deplacement/class/deplacement.class.php
    index 05664080ed3..2c21c2694ae 100644
    --- a/htdocs/compta/deplacement/class/deplacement.class.php
    +++ b/htdocs/compta/deplacement/class/deplacement.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -31,23 +31,52 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class Deplacement extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='deplacement';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='deplacement';
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
     	public $table_element_line = '';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element = '';
    -	public $ismultientitymanaged = 0;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     
    -	var $datec;         // Creation date
    -	var $dated;
    -	var $fk_user_author;
    -	var $fk_user;
    -	var $km;
    -	var $socid;
    -	var $statut;		// 0=draft, 1=validated
    -	var $extraparams=array();
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 0;
     
    -	var $statuts=array();
    -	var $statuts_short=array();
    +	public $datec;         // Creation date
    +	public $dated;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_author;
    +
    +	/**
    +	 * @var int User ID
    +	 */
    +	public $fk_user;
    +
    +	public $km;
    +	public $socid;
    +	public $statut;		// 0=draft, 1=validated
    +	public $extraparams=array();
    +
    +	public $statuts=array();
    +	public $statuts_short=array();
     
        /**
     	* Constructor
    @@ -146,7 +175,6 @@ class Deplacement extends CommonObject
     			$this->db->rollback();
     			return -1;
     		}
    -
     	}
     
     	/**
    @@ -293,6 +321,7 @@ class Deplacement extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -302,35 +331,36 @@ class Deplacement extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
     		{
     			return $langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			return $langs->trans($this->statuts_short[$statut]);
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts_short[$statut]);
     			if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts_short[$statut]);
     			if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts_short[$statut]);
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut==0 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0');
     			if ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4');
     			if ($statut==2 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut==0 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]);
     			if ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts[$statut]);
     			if ($statut==2 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut==0 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut0');
     			if ($statut==1 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut4');
    @@ -445,6 +475,4 @@ class Deplacement extends CommonObject
     			dol_print_error($this->db);
     		}
     	}
    -
     }
    -
    diff --git a/htdocs/compta/deplacement/class/deplacementstats.class.php b/htdocs/compta/deplacement/class/deplacementstats.class.php
    index 75ac39a7cca..ae93eb094d9 100644
    --- a/htdocs/compta/deplacement/class/deplacementstats.class.php
    +++ b/htdocs/compta/deplacement/class/deplacementstats.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (c) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -30,6 +30,9 @@ include_once DOL_DOCUMENT_ROOT . '/compta/deplacement/class/deplacement.class.ph
      */
     class DeplacementStats extends Stats
     {
    +    /**
    +     * @var string Name of table without prefix where object is stored
    +     */
         public $table_element;
     
         var $socid;
    diff --git a/htdocs/compta/deplacement/document.php b/htdocs/compta/deplacement/document.php
    index 59d92140c86..b17974b444a 100644
    --- a/htdocs/compta/deplacement/document.php
    +++ b/htdocs/compta/deplacement/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
      * Copyright (C) 2011-2012 Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    @@ -91,7 +91,7 @@ if ($object->id)
     	dol_fiche_head($head, 'documents',  $langs->trans("TripCard"), 0, 'trip');
     
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -122,13 +122,12 @@ if ($object->id)
         $permission = $user->rights->deplacement->creer;
         $param = '&id=' . $object->id;
         include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
    -
     }
     else
     {
     	print $langs->trans("ErrorUnknown");
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/deplacement/index.php b/htdocs/compta/deplacement/index.php
    index a390023e280..ef28a7909f9 100644
    --- a/htdocs/compta/deplacement/index.php
    +++ b/htdocs/compta/deplacement/index.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003		Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015	Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004		Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2011	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011	Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -191,7 +191,6 @@ if ($result)
     
                 $i++;
             }
    -
         }
         else
         {
    @@ -204,7 +203,6 @@ else dol_print_error($db);
     
     print '</div></div></div>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/deplacement/info.php b/htdocs/compta/deplacement/info.php
    index 6a62484323f..f63b1765efb 100644
    --- a/htdocs/compta/deplacement/info.php
    +++ b/htdocs/compta/deplacement/info.php
    @@ -59,5 +59,6 @@ if ($id)
         print '</div>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/deplacement/list.php b/htdocs/compta/deplacement/list.php
    index bdbdad0a712..d6d599d7ece 100644
    --- a/htdocs/compta/deplacement/list.php
    +++ b/htdocs/compta/deplacement/list.php
    @@ -2,8 +2,9 @@
     /* Copyright (C) 2003		Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012	Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004		Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2011	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011	Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012		Juanjo Menent        <jmenent@2byte.es>
    + * Copyright (C) 2018           charlene Benke	     <charlie@patas-monkey.com>
      *
      * 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
    @@ -55,6 +56,7 @@ if (! $sortfield) $sortfield="d.dated";
     
     $year=GETPOST("year");
     $month=GETPOST("month");
    +$day=GETPOST("day");
     
     if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter','alpha')) // Both test are required to be compatible with all browsers
     {
    @@ -64,6 +66,7 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter','a
     	// $search_amount="";
     	$year="";
     	$month="";
    +	$day="";
     }
     
     /*
    @@ -102,20 +105,7 @@ if ($search_company)
     {
         $sql .= natural_search('s.nom', $search_company);
     }
    -// if ($search_amount)		$sql.=" AND d.km='".$db->escape(price2num(trim($search_amount)))."'";
    -if ($month > 0)
    -{
    -    if ($year > 0 && empty($day))
    -    $sql.= " AND d.dated BETWEEN '".$db->idate(dol_get_first_day($year,$month,false))."' AND '".$db->idate(dol_get_last_day($year,$month,false))."'";
    -    else if ($year > 0 && ! empty($day))
    -    $sql.= " AND d.dated BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month, $day, $year))."' AND '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year))."'";
    -    else
    -    $sql.= " AND date_format(d.dated, '%m') = '".$month."'";
    -}
    -else if ($year > 0)
    -{
    -	$sql.= " AND d.dated BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
    -}
    +$sql.= dolSqlDateFilter("d.dated", $day, $month, $year);
     
     $sql.= $db->order($sortfield,$sortorder);
     $sql.= $db->plimit($limit + 1, $offset);
    @@ -212,6 +202,6 @@ else
         dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/deplacement/stats/index.php b/htdocs/compta/deplacement/stats/index.php
    index cf652948a6e..207e19fc265 100644
    --- a/htdocs/compta/deplacement/stats/index.php
    +++ b/htdocs/compta/deplacement/stats/index.php
    @@ -256,6 +256,7 @@ print '</table>';
     print '</form>';
     print '<br><br>';
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="border" width="100%">';
     print '<tr height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
    @@ -288,7 +289,7 @@ foreach ($data as $val)
     }
     
     print '</table>';
    -
    +print '</div>';
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
     
    @@ -312,7 +313,6 @@ print '<div style="clear:both"></div>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/facture/admin/facture_cust_extrafields.php b/htdocs/compta/facture/admin/facture_cust_extrafields.php
    index 2c676e399de..b0816d762a8 100644
    --- a/htdocs/compta/facture/admin/facture_cust_extrafields.php
    +++ b/htdocs/compta/facture/admin/facture_cust_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
     * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
    -* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
    +* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
     * Copyright (C) 2013 Jean-Francois FERRY <jfefe@aternatik.fr>
     *
     * This program is free software; you can redistribute it and/or modify
    @@ -80,7 +80,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -93,7 +93,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -114,6 +114,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/facture/admin/facture_rec_cust_extrafields.php b/htdocs/compta/facture/admin/facture_rec_cust_extrafields.php
    index 18aa3c99442..153f959b381 100644
    --- a/htdocs/compta/facture/admin/facture_rec_cust_extrafields.php
    +++ b/htdocs/compta/facture/admin/facture_rec_cust_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
     * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
    -* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
    +* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
     * Copyright (C) 2013 Jean-Francois FERRY <jfefe@aternatik.fr>
     * Copyright (C) 2017 John BOTELLA <contact@atm-consulting.fr>
     *
    @@ -81,7 +81,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -94,7 +94,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -115,6 +115,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/facture/admin/facturedet_cust_extrafields.php b/htdocs/compta/facture/admin/facturedet_cust_extrafields.php
    index 2b90ae7fe05..74da2466e1e 100644
    --- a/htdocs/compta/facture/admin/facturedet_cust_extrafields.php
    +++ b/htdocs/compta/facture/admin/facturedet_cust_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
     * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
    -* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
    +* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
     * Copyright (C) 2013 Jean-Francois FERRY <jfefe@aternatik.fr>
     * Copyright (C) 2013 Florian Henry	<florian.henry@open-concept.pro>
     *
    @@ -81,7 +81,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -94,7 +94,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -113,6 +113,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/facture/admin/facturedet_rec_cust_extrafields.php b/htdocs/compta/facture/admin/facturedet_rec_cust_extrafields.php
    index 97f8b78b195..637928e80ee 100644
    --- a/htdocs/compta/facture/admin/facturedet_rec_cust_extrafields.php
    +++ b/htdocs/compta/facture/admin/facturedet_rec_cust_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
     * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
    -* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
    +* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
     * Copyright (C) 2013 Jean-Francois FERRY <jfefe@aternatik.fr>
     * Copyright (C) 2013 Florian Henry	<florian.henry@open-concept.pro>
     *
    @@ -81,7 +81,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -94,7 +94,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +	print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -113,6 +113,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php
    index 8541581fb49..c3bcbf1d45b 100644
    --- a/htdocs/compta/facture/card.php
    +++ b/htdocs/compta/facture/card.php
    @@ -1,19 +1,20 @@
     <?php
    -/* Copyright (C) 2002-2006 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
    - * Copyright (C) 2004      Eric Seigne           <eric.seigne@ryxeo.com>
    - * Copyright (C) 2004-2016 Laurent Destailleur   <eldy@users.sourceforge.net>
    - * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2015 Regis Houssin         <regis.houssin@capnetworks.com>
    - * Copyright (C) 2006      Andre Cianfarani      <acianfa@free.fr>
    - * Copyright (C) 2010-2015 Juanjo Menent         <jmenent@2byte.es>
    - * Copyright (C) 2012-2013 Christophe Battarel   <christophe.battarel@altairis.fr>
    - * Copyright (C) 2012-2013 Cédric Salvador       <csalvador@gpcsolutions.fr>
    - * Copyright (C) 2012-2014 Raphaël Doursenaud    <rdoursenaud@gpcsolutions.fr>
    - * Copyright (C) 2013      Jean-Francois FERRY   <jfefe@aternatik.fr>
    - * Copyright (C) 2013-2014 Florian Henry         <florian.henry@open-concept.pro>
    - * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    - * Copyright (C) 2014-2018 Ferran Marcet	 	 <fmarcet@2byte.es>
    - * Copyright (C) 2015-2016 Marcos García         <marcosgdf@gmail.com>
    +/* Copyright (C) 2002-2006  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004       Eric Seigne             <eric.seigne@ryxeo.com>
    + * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005       Marc Barilley / Ocebo   <marc@ocebo.com>
    + * Copyright (C) 2005-2015  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2006       Andre Cianfarani        <acianfa@free.fr>
    + * Copyright (C) 2010-2015  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2012-2013  Christophe Battarel     <christophe.battarel@altairis.fr>
    + * Copyright (C) 2012-2013  Cédric Salvador         <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2012-2014  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2013       Jean-Francois FERRY     <jfefe@aternatik.fr>
    + * Copyright (C) 2013-2014  Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2013       Cédric Salvador         <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2014-2018  Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2015-2016  Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -108,16 +109,29 @@ if ($id > 0 || ! empty($ref)) {
     // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
     $hookmanager->initHooks(array('invoicecard','globalcard'));
     
    -$permissionnote = $user->rights->facture->creer; // Used by the include of actions_setnotes.inc.php
    -$permissiondellink=$user->rights->facture->creer;	// Used by the include of actions_dellink.inc.php
    -$permissiontoedit = $user->rights->facture->creer; // Used by the include of actions_lineupdonw.inc.php
    +$usercanread = $user->rights->facture->lire;
    +$usercancreate = $user->rights->facture->creer;
    +$usercanissuepayment = $user->rights->facture->paiement;
    +$usercandelete = $user->rights->facture->supprimer;
    +$usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->validate)));
    +$usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->facture->invoice_advance->send);
    +$usercanreopen = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->facture->invoice_advance->reopen);
    +$usercanunvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($usercancreate)) || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->unvalidate)));
    +
    +$usercanproductignorepricemin = ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS));
    +$usercancreatemargin = $user->rights->margins->creer;
    +$usercanreadallmargin = $user->rights->margins->liretous;
    +$usercancreatewithdrarequest = $user->rights->prelevement->bons->creer;
    +
    +$permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc.php
    +$permissiondellink = $usercancreate;	// Used by the include of actions_dellink.inc.php
    +$permissiontoedit = $usercancreate; // Used by the include of actions_lineupdonw.inc.php
     
     // Security check
    -$fieldid = (! empty($ref) ? 'facnumber' : 'rowid');
    +$fieldid = (! empty($ref) ? 'ref' : 'rowid');
     if ($user->societe_id) $socid = $user->societe_id;
     $isdraft = (($object->statut == Facture::STATUS_DRAFT) ? 1 : 0);
    -$result = restrictedArea($user, 'facture', $id, '', '', 'fk_soc', $fieldid, null, $isdraft);
    -
    +$result = restrictedArea($user, 'facture', $id, '', '', 'fk_soc', $fieldid, $isdraft);
     
     /*
      * Actions
    @@ -146,7 +160,7 @@ if (empty($reshook))
     	include DOL_DOCUMENT_ROOT.'/core/actions_lineupdown.inc.php';	// Must be include, not include_once
     
     	// Action clone object
    -	if ($action == 'confirm_clone' && $confirm == 'yes' && $user->rights->facture->creer) {
    +	if ($action == 'confirm_clone' && $confirm == 'yes' && $usercancreate) {
     	//	if (1 == 0 && empty($_REQUEST["clone_content"]) && empty($_REQUEST["clone_receivers"])) {
     	//		$mesgs [] = '<div class="error">' . $langs->trans("NoCloneOptionsSpecified") . '</div>';
     	//	} else {
    @@ -164,7 +178,7 @@ if (empty($reshook))
     	}
     
     	// Change status of invoice
    -	else if ($action == 'reopen' && $user->rights->facture->creer) {
    +	else if ($action == 'reopen' && $usercancreate) {
     		$result = $object->fetch($id);
     		if ($object->statut == 2 || ($object->statut == 3 && $object->close_code != 'replaced') || ($object->statut == 1 && $object->paye == 1)) {    // ($object->statut == 1 && $object->paye == 1) should not happened but can be found when data are corrupted
     			$result = $object->set_unpaid($user);
    @@ -193,8 +207,8 @@ if (empty($reshook))
     
     		$isErasable=$object->is_erasable();
     
    -		if (($user->rights->facture->supprimer && $isErasable > 0)
    -			|| ($user->rights->facture->creer && $isErasable == 1))
    +		if (($usercandelete && $isErasable > 0)
    +			|| ($usercancreate && $isErasable == 1))
     		{
     			$result = $object->delete($user, 0, $idwarehouse);
     			if ($result > 0) {
    @@ -208,7 +222,7 @@ if (empty($reshook))
     	}
     
     	// Delete line
    -	else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $user->rights->facture->creer)
    +	else if ($action == 'confirm_deleteline' && $confirm == 'yes' && $usercancreate)
     	{
     		$object->fetch($id);
     		$object->fetch_thirdparty();
    @@ -242,7 +256,7 @@ if (empty($reshook))
     	}
     
     	// Delete link of credit note to invoice
    -	else if ($action == 'unlinkdiscount' && $user->rights->facture->creer)
    +	else if ($action == 'unlinkdiscount' && $usercancreate)
     	{
     		$discount = new DiscountAbsolute($db);
     		$result = $discount->fetch(GETPOST("discountid"));
    @@ -250,7 +264,7 @@ if (empty($reshook))
     	}
     
     	// Validation
    -	else if ($action == 'valid' && $user->rights->facture->creer)
    +	else if ($action == 'valid' && $usercancreate)
     	{
     		$object->fetch($id);
     
    @@ -270,7 +284,7 @@ if (empty($reshook))
     		}
     	}
     
    -	else if ($action == 'set_thirdparty' && $user->rights->facture->creer)
    +	else if ($action == 'set_thirdparty' && $usercancreate)
     	{
     		$object->fetch($id);
     		$object->setValueFrom('fk_soc', $socid, '', null, 'int', '', $user, 'BILL_MODIFY');
    @@ -279,13 +293,13 @@ if (empty($reshook))
     		exit();
     	}
     
    -	else if ($action == 'classin' && $user->rights->facture->creer)
    +	else if ($action == 'classin' && $usercancreate)
     	{
     		$object->fetch($id);
     		$object->setProject($_POST['projectid']);
     	}
     
    -	else if ($action == 'setmode' && $user->rights->facture->creer)
    +	else if ($action == 'setmode' && $usercancreate)
     	{
     		$object->fetch($id);
     		$result = $object->setPaymentMethods(GETPOST('mode_reglement_id', 'int'));
    @@ -294,16 +308,16 @@ if (empty($reshook))
     	}
     
     	// Multicurrency Code
    -	else if ($action == 'setmulticurrencycode' && $user->rights->facture->creer) {
    +	else if ($action == 'setmulticurrencycode' && $usercancreate) {
     		$result = $object->setMulticurrencyCode(GETPOST('multicurrency_code', 'alpha'));
     	}
     
     	// Multicurrency rate
    -	else if ($action == 'setmulticurrencyrate' && $user->rights->facture->creer) {
    +	else if ($action == 'setmulticurrencyrate' && $usercancreate) {
     		$result = $object->setMulticurrencyRate(price2num(GETPOST('multicurrency_tx')), GETPOST('calculation_mode', 'int'));
     	}
     
    -	else if ($action == 'setinvoicedate' && $user->rights->facture->creer)
    +	else if ($action == 'setinvoicedate' && $usercancreate)
     	{
     		$object->fetch($id);
     		$old_date_lim_reglement = $object->date_lim_reglement;
    @@ -322,7 +336,7 @@ if (empty($reshook))
     		if ($result < 0) dol_print_error($db, $object->error);
     	}
     
    -	else if ($action == 'setdate_pointoftax' && $user->rights->facture->creer)
    +	else if ($action == 'setdate_pointoftax' && $usercancreate)
     	{
     		$object->fetch($id);
     		$date_pointoftax = dol_mktime(12, 0, 0, $_POST['date_pointoftaxmonth'], $_POST['date_pointoftaxday'], $_POST['date_pointoftaxyear']);
    @@ -331,7 +345,7 @@ if (empty($reshook))
     		if ($result < 0) dol_print_error($db, $object->error);
     	}
     
    -	else if ($action == 'setconditions' && $user->rights->facture->creer)
    +	else if ($action == 'setconditions' && $usercancreate)
     	{
     		$object->fetch($id);
     		$object->cond_reglement_code = 0; // To clean property
    @@ -347,7 +361,7 @@ if (empty($reshook))
     		if ($result < 0) dol_print_error($db, $object->error);
     	}
     
    -	else if ($action == 'setpaymentterm' && $user->rights->facture->creer)
    +	else if ($action == 'setpaymentterm' && $usercancreate)
     	{
     		$object->fetch($id);
     		$object->date_lim_reglement = dol_mktime(12, 0, 0, $_POST['paymenttermmonth'], $_POST['paymenttermday'], $_POST['paymenttermyear']);
    @@ -360,7 +374,7 @@ if (empty($reshook))
     			dol_print_error($db, $object->error);
     	}
     
    -	else if ($action == 'setrevenuestamp' && $user->rights->facture->creer)
    +	else if ($action == 'setrevenuestamp' && $usercancreate)
     	{
     		$object->fetch($id);
     		$object->revenuestamp = GETPOST('revenuestamp');
    @@ -377,18 +391,18 @@ if (empty($reshook))
     	}
     
     	// bank account
    -	else if ($action == 'setbankaccount' && $user->rights->facture->creer)
    +	else if ($action == 'setbankaccount' && $usercancreate)
     	{
     		$result=$object->setBankAccount(GETPOST('fk_account', 'int'));
     	}
     
    -	else if ($action == 'setremisepercent' && $user->rights->facture->creer)
    +	else if ($action == 'setremisepercent' && $usercancreate)
     	{
     		$object->fetch($id);
     		$result = $object->set_remise($user, $_POST['remise_percent']);
     	}
     
    -	else if ($action == "setabsolutediscount" && $user->rights->facture->creer)
    +	else if ($action == "setabsolutediscount" && $usercancreate)
     	{
     		// POST[remise_id] or POST[remise_id_for_payment]
     
    @@ -446,17 +460,14 @@ if (empty($reshook))
     		}
     	}
     
    -	else if ($action == 'setref_client' && $user->rights->facture->creer)
    +	else if ($action == 'setref_client' && $usercancreate)
     	{
     		$object->fetch($id);
     		$object->set_ref_client(GETPOST('ref_client'));
     	}
     
     	// Classify to validated
    -	else if ($action == 'confirm_valid' && $confirm == 'yes' &&
    -		((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->creer))
    -	   	|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->validate)))
    -	)
    +	else if ($action == 'confirm_valid' && $confirm == 'yes' && $usercanvalidate)
     	{
     		$idwarehouse = GETPOST('idwarehouse','int');
     
    @@ -556,10 +567,7 @@ if (empty($reshook))
     	}
     
     	// Go back to draft status (unvalidate)
    -	else if ($action == 'confirm_modif' &&
    -		((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->creer))
    -	   	|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->unvalidate)))
    -	)
    +	else if ($action == 'confirm_modif' && $usercanunvalidate)
     	{
     		$idwarehouse = GETPOST('idwarehouse','int');
     
    @@ -639,13 +647,13 @@ if (empty($reshook))
     	}
     
     	// Classify "paid"
    -	else if ($action == 'confirm_paid' && $confirm == 'yes' && $user->rights->facture->paiement)
    +	else if ($action == 'confirm_paid' && $confirm == 'yes' && $usercanissuepayment)
     	{
     		$object->fetch($id);
     		$result = $object->set_paid($user);
     		if ($result<0) setEventMessages($object->error, $object->errors, 'errors');
     	} // Classif "paid partialy"
    -	else if ($action == 'confirm_paid_partially' && $confirm == 'yes' && $user->rights->facture->paiement)
    +	else if ($action == 'confirm_paid_partially' && $confirm == 'yes' && $usercanissuepayment)
     	{
     		$object->fetch($id);
     		$close_code = GETPOST("close_code",'none');
    @@ -670,7 +678,7 @@ if (empty($reshook))
     	}
     
     	// Convertir en reduc
    -	else if ($action == 'confirm_converttoreduc' && $confirm == 'yes' && $user->rights->facture->creer)
    +	else if ($action == 'confirm_converttoreduc' && $confirm == 'yes' && $usercancreate)
     	{
     		$object->fetch($id);
     		$object->fetch_thirdparty();
    @@ -730,7 +738,7 @@ if (empty($reshook))
     				$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as c ON p.fk_paiement = c.id';
     				$sql.= ' WHERE pf.fk_facture = '.$object->id;
     				$sql.= ' AND pf.fk_paiement = p.rowid';
    -				$sql.= ' AND p.entity IN (' . getEntity('facture').')';
    +				$sql.= ' AND p.entity IN (' . getEntity('invoice').')';
     
     				$resql = $db->query($sql);
     				if (! $resql) dol_print_error($db);
    @@ -747,7 +755,6 @@ if (empty($reshook))
     				{
     					$error++;
     				}
    -
     			}
     			if ($object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT)
     			{
    @@ -768,7 +775,6 @@ if (empty($reshook))
     						break;
     					}
     				}
    -
     			}
     
     			if (empty($error))
    @@ -798,7 +804,7 @@ if (empty($reshook))
     	}
     
     	// Delete payment
    -	elseif ($action == 'confirm_delete_paiement' && $confirm == 'yes' && $user->rights->facture->creer)
    +	elseif ($action == 'confirm_delete_paiement' && $confirm == 'yes' && $usercancreate)
     	{
     		$object->fetch($id);
     		if ($object->statut == Facture::STATUS_VALIDATED && $object->paye == 0)
    @@ -818,14 +824,14 @@ if (empty($reshook))
     	/*
     	 * Insert new invoice in database
     	 */
    -	else if ($action == 'add' && $user->rights->facture->creer)
    +	else if ($action == 'add' && $usercancreate)
     	{
     		if ($socid > 0) $object->socid = GETPOST('socid', 'int');
     
     		$db->begin();
     
     		$error = 0;
    -
    +		$originentity = GETPOST('originentity');
     		// Fill array 'array_options' with data from add form
     		$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
     		$ret = $extrafields->setOptionalsFromPost($extralabels, $object);
    @@ -870,6 +876,7 @@ if (empty($reshook))
     				$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
     				$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
     				$object->multicurrency_tx   = GETPOST('originmulticurrency_tx', 'int');
    +				$object->entity				= (GETPOSTISSET('entity')?GETPOST('entity', 'int'):$conf->entity);
     
     				// Proprietes particulieres a facture de remplacement
     				$object->fk_facture_source = $_POST['fac_replacement'];
    @@ -903,8 +910,11 @@ if (empty($reshook))
     
     			if (! $error)
     			{
    +				if(!empty($originentity)){
    +					$object->entity = $originentity;
    +				}
     				$object->socid				= GETPOST('socid','int');
    -				$object->number				= $_POST['facnumber'];
    +				$object->number				= $_POST['ref'];
     				$object->date				= $dateinvoice;
     				$object->date_pointoftax	= $date_pointoftax;
     				$object->note_public		= trim(GETPOST('note_public','none'));
    @@ -922,6 +932,7 @@ if (empty($reshook))
     				$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
     				$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
     				$object->multicurrency_tx   = GETPOST('originmulticurrency_tx', 'int');
    +				$object->entity				= (GETPOSTISSET('entity')?GETPOST('entity', 'int'):$conf->entity);
     
     				// Proprietes particulieres a facture avoir
     				$object->fk_facture_source = $sourceinvoice > 0 ? $sourceinvoice : '';
    @@ -1003,15 +1014,11 @@ if (empty($reshook))
     							                $line->multicurrency_total_ht  = $line->multicurrency_total_ht  - $prevLine->multicurrency_total_ht;
     							                $line->multicurrency_total_tva = $line->multicurrency_total_tva - $prevLine->multicurrency_total_tva;
     							                $line->multicurrency_total_ttc = $line->multicurrency_total_ttc - $prevLine->multicurrency_total_ttc;
    -
    -
     							            }
     							        }
     
     							        // prorata
     							        $line->situation_percent = $maxPrevSituationPercent - $line->situation_percent;
    -
    -
     							    }
     							}
     
    @@ -1043,7 +1050,6 @@ if (empty($reshook))
     
     						$object->update_price(1);
     					}
    -
     				}
     
     				if(GETPOST('invoiceAvoirWithPaymentRestAmount', 'int')==1 && $id>0)
    @@ -1089,7 +1095,7 @@ if (empty($reshook))
     			{
     				$object->socid			 = GETPOST('socid','int');
     				$object->type            = $_POST['type'];
    -				$object->number          = $_POST['facnumber'];
    +				$object->number          = $_POST['ref'];
     				$object->date            = $dateinvoice;
     				$object->date_pointoftax = $date_pointoftax;
     				$object->note_public	 = trim(GETPOST('note_public','none'));
    @@ -1108,6 +1114,7 @@ if (empty($reshook))
     				$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
     				$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
     				$object->multicurrency_tx   = GETPOST('originmulticurrency_tx', 'int');
    +				$object->entity				= (GETPOSTISSET('entity')?GETPOST('entity', 'int'):$conf->entity);
     
     				// Source facture
     				$object->fac_rec = GETPOST('fac_rec', 'int');
    @@ -1139,7 +1146,7 @@ if (empty($reshook))
     				// Si facture standard
     				$object->socid				= GETPOST('socid','int');
     				$object->type				= GETPOST('type');
    -				$object->number				= $_POST['facnumber'];
    +				$object->number				= $_POST['ref'];
     				$object->date				= $dateinvoice;
     				$object->date_pointoftax	= $date_pointoftax;
     				$object->note_public		= trim(GETPOST('note_public','none'));
    @@ -1158,6 +1165,7 @@ if (empty($reshook))
     				$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
     				$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
     				$object->multicurrency_tx   = GETPOST('originmulticurrency_tx', 'int');
    +				$object->entity				= (GETPOSTISSET('entity')?GETPOST('entity', 'int'):$conf->entity);
     
     				if (GETPOST('type') == Facture::TYPE_SITUATION)
     				{
    @@ -1345,7 +1353,6 @@ if (empty($reshook))
     								$subprice_diff = $object->lines[0]->subprice - $diff / (1 + $object->lines[0]->tva_tx / 100);
     								$object->updateline($object->lines[0]->id, $object->lines[0]->desc, $subprice_diff, $object->lines[0]->qty, $object->lines[0]->remise_percent, $object->lines[0]->date_start, $object->lines[0]->date_end, $object->lines[0]->tva_tx, 0, 0, 'HT', $object->lines[0]->info_bits, $object->lines[0]->product_type, 0, 0, 0, $object->lines[0]->pa_ht, $object->lines[0]->label, 0, array(), 100);
     							}
    -
     						}
     						else
     						{
    @@ -1494,7 +1501,6 @@ if (empty($reshook))
     							setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
     							$error++;
     						}
    -
     					} else {
     						setEventMessages($object->error, $object->errors, 'errors');
     						$error++;
    @@ -1642,7 +1648,7 @@ if (empty($reshook))
     	}
     
     	// Add a new line
    -	else if ($action == 'addline' && $user->rights->facture->creer)
    +	else if ($action == 'addline' && $usercancreate)
     	{
     		$langs->load('errors');
     		$error = 0;
    @@ -1730,8 +1736,10 @@ if (empty($reshook))
     
     				if ($res = $prodcomb->fetchByProductCombination2ValuePairs($idprod, $combinations)) {
     					$idprod = $res->fk_product_child;
    -				} else {
    -					setEventMessage($langs->trans('ErrorProductCombinationNotFound'), 'errors');
    +				}
    +				else
    +				{
    +					setEventMessages($langs->trans('ErrorProductCombinationNotFound'), null, 'errors');
     					$error++;
     				}
     			}
    @@ -1910,7 +1918,7 @@ if (empty($reshook))
     					$desc = $prod->description;
     				}
     
    -				$desc = dol_concatdesc($desc, $product_desc);
    +				$desc = dol_concatdesc($desc, $product_desc, '', !empty($conf->global->CHANGE_ORDER_CONCAT_DESCRIPTION));
     
     				// Add custom code and origin country into description
     				if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (! empty($prod->customcode) || ! empty($prod->country_code))) {
    @@ -1973,7 +1981,7 @@ if (empty($reshook))
     			if ($tva_npr)
     				$info_bits |= 0x01;
     
    -			if (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min))) {
    +			if ($usercanproductignorepricemin && (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) {
     				$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency));
     				setEventMessages($mesg, null, 'errors');
     			} else {
    @@ -2045,7 +2053,7 @@ if (empty($reshook))
     		}
     	}
     
    -	elseif ($action == 'updateligne' && $user->rights->facture->creer && ! GETPOST('cancel','alpha'))
    +	elseif ($action == 'updateline' && $usercancreate && ! GETPOST('cancel','alpha'))
     	{
     		if (! $object->fetch($id) > 0)	dol_print_error($db);
     		$object->fetch_thirdparty();
    @@ -2136,7 +2144,7 @@ if (empty($reshook))
     			$label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : '');
     
     			// Check price is not lower than minimum (check is done only for standard or replacement invoices)
    -			if (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min))) {
    +			if ($usercanproductignorepricemin && (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min)))) {
     				setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors');
     				$error++;
     			}
    @@ -2173,7 +2181,7 @@ if (empty($reshook))
     
     		// Update line
     		if (! $error) {
    -			if (empty($user->rights->margins->creer))
    +			if (empty($usercancreatemargin))
     			{
     				foreach ($object->lines as &$line)
     				{
    @@ -2251,7 +2259,7 @@ if (empty($reshook))
     		}
     	}
     
    -	else if ($action == 'updatealllines' && $user->rights->facture->creer && $_POST['all_percent'] == $langs->trans('Modifier'))
    +	else if ($action == 'updatealllines' && $usercancreate && $_POST['all_percent'] == $langs->trans('Modifier'))
     	{
     		if (!$object->fetch($id) > 0) dol_print_error($db);
     		if (!is_null(GETPOST('all_progress')) && GETPOST('all_progress') != "")
    @@ -2268,23 +2276,22 @@ if (empty($reshook))
     		}
     	}
     
    -	else if ($action == 'updateligne' && $user->rights->facture->creer && $_POST['cancel'] == $langs->trans('Cancel')) {
    +	else if ($action == 'updateline' && $usercancreate && $_POST['cancel'] == $langs->trans('Cancel')) {
     		header('Location: ' . $_SERVER["PHP_SELF"] . '?facid=' . $id); // Pour reaffichage de la fiche en cours d'edition
     		exit();
     	}
     
     	// Outing situation invoice from cycle
    -	elseif ($action == 'confirm_situationout' && $confirm == 'yes' && $user->rights->facture->creer)
    +	elseif ($action == 'confirm_situationout' && $confirm == 'yes' && $usercancreate)
     	{
     	    $object->fetch($id,'', '','', true);
     
     	    if ($object->statut == Facture::STATUS_VALIDATED
     	        && $object->type == Facture::TYPE_SITUATION
    -	        && $user->rights->facture->creer
    +	        && $usercancreate
     	        && !$objectidnext
     	        && $object->is_last_in_cycle()
    -	        && ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->creer))
    -	            || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->unvalidate)))
    +	    	&& $usercanunvalidate
     	        )
     	    {
     	        $outingError = 0;
    @@ -2366,7 +2373,6 @@ if (empty($reshook))
                                     $line->situation_percent = $line->situation_percent - $maxPrevSituationPercent;
     
                                     if($line->update()<0) $errors++;
    -
     	                        }
     	                    }
     	                }
    @@ -2395,7 +2401,7 @@ if (empty($reshook))
     
     	// add lines from objectlinked
     	elseif($action == 'import_lines_from_object'
    -	    && $user->rights->facture->creer
    +	    && $usercancreate
     	    && $object->statut == Facture::STATUS_DRAFT
     	    && ($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA || $object->type == Facture::TYPE_SITUATION))
     	{
    @@ -2470,7 +2476,7 @@ if (empty($reshook))
     
     	        if($error)
     	        {
    -	            setEventMessage($langs->trans('ErrorsOnXLines',$error), 'errors');
    +	            setEventMessages($langs->trans('ErrorsOnXLines',$error), null, 'errors');
     	        }
     	    }
     	}
    @@ -2488,7 +2494,7 @@ if (empty($reshook))
     
     	// Actions to build doc
     	$upload_dir = $conf->facture->dir_output;
    -	$permissioncreate=$user->rights->facture->creer;
    +	$permissioncreate=$usercancreate;
     	include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
     
     
    @@ -2515,7 +2521,7 @@ if (empty($reshook))
     			$action = 'edit_extras';
     	}
     
    -	if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $user->rights->facture->creer) {
    +	if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB) && $usercancreate) {
     		if ($action == 'addcontact') {
     			$result = $object->fetch($id);
     
    @@ -2597,7 +2603,6 @@ if ($action == 'create')
     
     	// Load objectsrc
     	$remise_absolue = 0;
    -
     	if (! empty($origin) && ! empty($originid))
     	{
     		// Parse element/subelement (ex: project_task)
    @@ -2696,7 +2701,6 @@ if ($action == 'create')
     		print ajax_combobox('fac_replacement');
     		print ajax_combobox('fac_avoir');
     		print ajax_combobox('situations');
    -
     	}
     
     	if ($origin == 'contrat')
    @@ -2715,11 +2719,12 @@ if ($action == 'create')
     	print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
     	print '<input type="hidden" name="action" value="add">';
     	if ($soc->id > 0) print '<input type="hidden" name="socid" value="' . $soc->id . '">' . "\n";
    -	print '<input name="facnumber" type="hidden" value="provisoire">';
    +	print '<input name="ref" type="hidden" value="provisoire">';
     	print '<input name="ref_client" type="hidden" value="' . $ref_client . '">';
     	print '<input name="ref_int" type="hidden" value="' . $ref_int . '">';
     	print '<input type="hidden" name="origin" value="' . $origin . '">';
     	print '<input type="hidden" name="originid" value="' . $originid . '">';
    +	print '<input type="hidden" name="originentity" value="' . GETPOST('originentity') . '">';
     	if (!empty($currency_tx)) print '<input type="hidden" name="originmulticurrency_tx" value="' . $currency_tx . '">';
     
     	dol_fiche_head('');
    @@ -2887,7 +2892,8 @@ if ($action == 'create')
     	// Standard invoice
     	print '<div class="tagtr listofinvoicetype"><div class="tagtd listofinvoicetype">';
     	$tmp='<input type="radio" id="radio_standard" name="type" value="0"' . (GETPOST('type') == 0 ? ' checked' : '') . '> ';
    -	$desc = $form->textwithpicto($tmp.$langs->trans("InvoiceStandardAsk"), $langs->transnoentities("InvoiceStandardDesc"), 1, 'help', '', 0, 3);
    +	$tmp  = $tmp.'<label for="radio_standard" >'.$langs->trans("InvoiceStandardAsk").'</label>';
    +	$desc = $form->textwithpicto($tmp, $langs->transnoentities("InvoiceStandardDesc"), 1, 'help', '', 0, 3);
     	print $desc;
     	print '</div></div>';
     
    @@ -2906,7 +2912,8 @@ if ($action == 'create')
         		});
         		</script>';
     
    -			$desc = $form->textwithpicto($tmp.$langs->trans("InvoiceDeposit"), $langs->transnoentities("InvoiceDepositDesc"), 1, 'help', '', 0, 3);
    +			$tmp  = $tmp.'<label for="radio_deposit" >'.$langs->trans("InvoiceDeposit").'</label>';
    +			$desc = $form->textwithpicto($tmp, $langs->transnoentities("InvoiceDepositDesc"), 1, 'help', '', 0, 3);
     			print '<table class="nobordernopadding"><tr><td>';
     			print $desc;
     			print '</td>';
    @@ -2930,8 +2937,9 @@ if ($action == 'create')
     		{
     			// First situation invoice
     			print '<div class="tagtr listofinvoicetype"><div class="tagtd listofinvoicetype">';
    -			$tmp='<input type="radio" name="type" value="5"' . (GETPOST('type') == 5 ? ' checked' : '') . '> ';
    -			$desc = $form->textwithpicto($tmp.$langs->trans("InvoiceFirstSituationAsk"), $langs->transnoentities("InvoiceFirstSituationDesc"), 1, 'help', '', 0, 3);
    +			$tmp='<input id="radio_situation invoice" type="radio" name="type" value="5"' . (GETPOST('type') == 5 ? ' checked' : '') . '> ';
    +			$tmp  = $tmp.'<label for="radio_situation invoice" >'.$langs->trans("InvoiceFirstSituationAsk").'</label>';
    +			$desc = $form->textwithpicto($tmp, $langs->transnoentities("InvoiceFirstSituationDesc"), 1, 'help', '', 0, 3);
     			print $desc;
     			print '</div></div>';
     
    @@ -2941,7 +2949,7 @@ if ($action == 'create')
     			$tmp='<input type="radio" name="type" value="5"' . (GETPOST('type') == 5 && GETPOST('originid') ? ' checked' : '');
     			if ($opt == ('<option value ="0" selected>' . $langs->trans('NoSituations') . '</option>') || (GETPOST('origin') && GETPOST('origin') != 'facture' && GETPOST('origin') != 'commande')) $tmp.=' disabled';
     			$tmp.= '> ';
    -			$text = $tmp.$langs->trans("InvoiceSituationAsk") . ' ';
    +			$text = '<label>'.$tmp.$langs->trans("InvoiceSituationAsk") . '</label> ';
     			$text .= '<select class="flat" id="situations" name="situations">';
     			$text .= $opt;
     			$text .= '</select>';
    @@ -2965,7 +2973,7 @@ if ($action == 'create')
         			});
         		});
         		</script>';
    -			$text = $tmp.$langs->trans("InvoiceReplacementAsk") . ' ';
    +			$text = '<label>'.$tmp.$langs->trans("InvoiceReplacementAsk") . '</label>';
     			$text .= '<select class="flat" name="fac_replacement" id="fac_replacement"';
     			if (! $options)
     				$text .= ' disabled';
    @@ -2986,13 +2994,14 @@ if ($action == 'create')
     	{
     		print '<div class="tagtr listofinvoicetype"><div class="tagtd listofinvoicetype">';
     		$tmp='<input type="radio" name="type" id="radio_replacement" value="0" disabled> ';
    -		$text = $tmp.$langs->trans("InvoiceReplacement") . ' ';
    +		$text = '<label>'.$tmp.$langs->trans("InvoiceReplacement") . '</label> ';
     		$text.= '('.$langs->trans("YouMustCreateInvoiceFromThird").') ';
     		$desc = $form->textwithpicto($text, $langs->transnoentities("InvoiceReplacementDesc"), 1, 'help', '', 0, 3);
     		print $desc;
     		print '</div></div>';
     	}
     
    +
     	if (empty($origin))
     	{
     		if ($socid > 0)
    @@ -3019,7 +3028,7 @@ if ($action == 'create')
         				});
         			});
         			</script>';
    -				$text = $tmp.$langs->transnoentities("InvoiceAvoirAsk") . ' ';
    +				$text = '<label>'.$tmp.$langs->transnoentities("InvoiceAvoirAsk") . '</label> ';
     				// $text.='<input type="text" value="">';
     				$text .= '<select class="flat valignmiddle" name="fac_avoir" id="fac_avoir"';
     				if (! $optionsav)
    @@ -3048,7 +3057,7 @@ if ($action == 'create')
     			print '<div class="tagtr listofinvoicetype"><div class="tagtd listofinvoicetype">';
     			if (empty($conf->global->INVOICE_CREDIT_NOTE_STANDALONE)) $tmp='<input type="radio" name="type" id="radio_creditnote" value="0" disabled> ';
     			else $tmp='<input type="radio" name="type" id="radio_creditnote" value="2" > ';
    -			$text = $tmp.$langs->trans("InvoiceAvoir") . ' ';
    +			$text = '<label>'.$tmp.$langs->trans("InvoiceAvoir") . '</label> ';
     			$text.= '('.$langs->trans("YouMustCreateInvoiceFromThird").') ';
     			$desc = $form->textwithpicto($text, $langs->transnoentities("InvoiceAvoirDesc"), 1, 'help', '', 0, 3);
     			print $desc;
    @@ -3059,7 +3068,7 @@ if ($action == 'create')
     	// Template invoice
     	print '<div class="tagtr listofinvoicetype"><div class="tagtd listofinvoicetype">';
     	$tmp='<input type="radio" name="type" id="radio_template" value="0" disabled> ';
    -	$text = $tmp.$langs->trans("RepeatableInvoice") . ' ';
    +	$text = '<label>'.$tmp.$langs->trans("RepeatableInvoice") . '</label> ';
     	//$text.= '('.$langs->trans("YouMustCreateStandardInvoiceFirst").') ';
     	$desc = $form->textwithpicto($text, $langs->transnoentities("YouMustCreateStandardInvoiceFirstDesc"), 1, 'help', '', 0, 3);
     	print $desc;
    @@ -3067,6 +3076,41 @@ if ($action == 'create')
     
     	print '</div>';
     
    +
    +	if(!empty($conf->global->INVOICE_USE_DEFAULT_DOCUMENT)) // Hidden conf
    +	{
    +    	// Add auto select default document model
    +    	$listtType=array(Facture::TYPE_STANDARD,Facture::TYPE_REPLACEMENT,Facture::TYPE_CREDIT_NOTE,Facture::TYPE_DEPOSIT,Facture::TYPE_SITUATION);
    +    	$jsListType='';
    +    	foreach ($listtType as $type)
    +    	{
    +    	    $thisTypeConfName = 'FACTURE_ADDON_PDF_'.$type;
    +    	    $curent = !empty($conf->global->{$thisTypeConfName})?$conf->global->{$thisTypeConfName}:$conf->global->FACTURE_ADDON_PDF;
    +    	    $jsListType.=(!empty($jsListType)?',':'').'"'.$type.'":"'.$curent.'"';
    +    	}
    +
    +    	print '<script type="text/javascript" language="javascript">
    +        		$(document).ready(function() {
    +                    var listType = {'.$jsListType.'};
    +        			$("[name=\'type\'").change(function() {
    +        				if($( this ).prop("checked"))
    +                        {
    +                            if(($( this ).val() in listType))
    +                            {
    +                                $("#model").val(listType[$( this ).val()]);
    +                            }
    +                            else
    +                            {
    +                                $("#model").val("'.$conf->global->FACTURE_ADDON_PDF.'");
    +                            }
    +                        }
    +        			});
    +        		});
    +        		</script>';
    +	}
    +
    +
    +
     	print '</td></tr>';
     
     	if ($socid > 0)
    @@ -3086,7 +3130,7 @@ if ($action == 'create')
     
     	// Date invoice
     	print '<tr><td class="fieldrequired">' . $langs->trans('DateInvoice') . '</td><td colspan="2">';
    -	print $form->select_date($datefacture?$datefacture:$dateinvoice, '', '', '', '', "add", 1, 1, 1);
    +	print $form->selectDate($datefacture?$datefacture:$dateinvoice, '', '', '', '', "add", 1, 1);
     	print '</td></tr>';
     
     	// Date point of tax
    @@ -3094,7 +3138,7 @@ if ($action == 'create')
     	{
     		print '<tr><td class="fieldrequired">' . $langs->trans('DatePointOfTax') . '</td><td colspan="2">';
     		$date_pointoftax = dol_mktime(12, 0, 0, $_POST['date_pointoftaxmonth'], $_POST['date_pointoftaxday'], $_POST['date_pointoftaxyear']);
    -		print $form->select_date($date_pointoftax?$date_pointoftax:-1, 'date_pointoftax', '', '', '', "add", 1, 1, 1);
    +		print $form->selectDate($date_pointoftax?$date_pointoftax:-1, 'date_pointoftax', '', '', '', "add", 1, 1);
     		print '</td></tr>';
     	}
     
    @@ -3157,14 +3201,21 @@ if ($action == 'create')
     	print '<td colspan="2">';
     	include_once DOL_DOCUMENT_ROOT . '/core/modules/facture/modules_facture.php';
     	$liste = ModelePDFFactures::liste_modeles($db);
    -	print $form->selectarray('model', $liste, $conf->global->FACTURE_ADDON_PDF);
    +	if(!empty($conf->global->INVOICE_USE_DEFAULT_DOCUMENT)){ // Hidden conf
    +	   $paramkey='FACTURE_ADDON_PDF_'.$object->type;
    +	   $curent = !empty($conf->global->$paramkey)?$conf->global->$paramkey:$conf->global->FACTURE_ADDON_PDF;
    +	}
    +	else{
    +	   $curent = $conf->global->FACTURE_ADDON_PDF;
    +	}
    +	print $form->selectarray('model', $liste, $curent);
     	print "</td></tr>";
     
     	// Multicurrency
     	if (! empty($conf->multicurrency->enabled))
     	{
     		print '<tr>';
    -		print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
    +		print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>';
     		print '<td colspan="2" class="maxwidthonsmartphone">';
     		print $form->selectMultiCurrency($currency_code, 'multicurrency_code');
     		print '</td></tr>';
    @@ -3436,11 +3487,10 @@ else if ($id > 0 || ! empty($ref))
     	    $formquestion = array();
     	    // remove situation from cycle
     	    if ($object->statut == Facture::STATUS_VALIDATED
    -	        && $user->rights->facture->creer
    +	        && $usercancreate
     	        && !$objectidnext
     	        && $object->is_last_in_cycle()
    -	        && ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->creer))
    -	            || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->unvalidate)))
    +	    	&& $usercanunvalidate
     	        )
     	    {
     	        $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $label, $text, 'confirm_situationout', $formquestion, "yes", 1);
    @@ -3617,7 +3667,6 @@ else if ($id > 0 || ! empty($ref))
     	{
     		$payment_id = GETPOST('paiement_id');
     		$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&paiement_id='.$payment_id, $langs->trans('DeletePayment'), $langs->trans('ConfirmDeletePayment'), 'confirm_delete_paiement', '', 'no', 1);
    -
     	}
     
     	// Confirmation de la suppression d'une ligne produit
    @@ -3637,13 +3686,11 @@ else if ($id > 0 || ! empty($ref))
     		$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('CloneInvoice'), $langs->trans('ConfirmCloneInvoice', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
     	}
     
    -	if (! $formconfirm)
    -	{
    -		$parameters = array('lineid' => $lineid);
    -		$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    -		if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    -		elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    -	}
    +	// Call Hook formConfirm
    +	$parameters = array('lineid' => $lineid);
    +	$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +	if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +	elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
     
     	// Print form confirm
     	print $formconfirm;
    @@ -3654,8 +3701,8 @@ else if ($id > 0 || ! empty($ref))
     
     	$morehtmlref='<div class="refidno">';
     	// Ref customer
    -	$morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->facture->creer, 'string', '', 0, 1);
    -	$morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->facture->creer, 'string', '', null, null, '', 1);
    +	$morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, $usercancreate, 'string', '', 0, 1);
    +	$morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $usercancreate, 'string', '', null, null, '', 1);
     	// Thirdparty
     	$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1,'customer');
     	if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) $morehtmlref.=' (<a href="'.DOL_URL_ROOT.'/compta/facture/list.php?socid='.$object->thirdparty->id.'&search_societe='.urlencode($object->thirdparty->name).'">'.$langs->trans("OtherBills").'</a>)';
    @@ -3664,7 +3711,7 @@ else if ($id > 0 || ! empty($ref))
     	{
     		$langs->load("projects");
     		$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
    -		if ($user->rights->facture->creer)
    +		if ($usercancreate)
     		{
     			if ($action != 'classify')
     				$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    @@ -3695,13 +3742,13 @@ else if ($id > 0 || ! empty($ref))
     
     	$object->totalpaye = $totalpaye;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    -	dol_banner_tab($object, 'ref', $linkback, 1, 'facnumber', 'ref', $morehtmlref, '', 0, '', '');
    +	dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', '');
     
     	print '<div class="fichecenter">';
     	print '<div class="fichehalfleft">';
     	print '<div class="underbanner clearboth"></div>';
     
    -	print '<table class="border" width="100%">';
    +	print '<table class="border tableforfield" width="100%">';
     
     	// Type
     	print '<tr><td class="titlefield">' . $langs->trans('Type') . '</td><td>';
    @@ -3763,7 +3810,7 @@ else if ($id > 0 || ! empty($ref))
     	print '<table class="nobordernopadding" width="100%"><tr><td>';
     	print $langs->trans('DateInvoice');
     	print '</td>';
    -	if ($object->type != Facture::TYPE_CREDIT_NOTE && $action != 'editinvoicedate' && ! empty($object->brouillon) && $user->rights->facture->creer && empty($conf->global->FAC_FORCE_DATE_VALIDATION))
    +	if ($object->type != Facture::TYPE_CREDIT_NOTE && $action != 'editinvoicedate' && ! empty($object->brouillon) && $usercancreate && empty($conf->global->FAC_FORCE_DATE_VALIDATION))
     		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editinvoicedate&amp;facid=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
     	print '</tr></table>';
     	print '</td><td>';
    @@ -3804,7 +3851,7 @@ else if ($id > 0 || ! empty($ref))
     	print '<table class="nobordernopadding" width="100%"><tr><td>';
     	print $langs->trans('PaymentConditionsShort');
     	print '</td>';
    -	if ($object->type != Facture::TYPE_CREDIT_NOTE && $action != 'editconditions' && $user->rights->facture->creer)
    +	if ($object->type != Facture::TYPE_CREDIT_NOTE && $action != 'editconditions' && $usercancreate)
     		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editconditions&amp;facid=' . $object->id . '">' . img_edit($langs->trans('SetConditions'), 1) . '</a></td>';
     	print '</tr></table>';
     	print '</td><td>';
    @@ -3825,7 +3872,7 @@ else if ($id > 0 || ! empty($ref))
     	print '<table class="nobordernopadding" width="100%"><tr><td>';
     	print $langs->trans('DateMaxPayment');
     	print '</td>';
    -	if ($object->type != Facture::TYPE_CREDIT_NOTE && $action != 'editpaymentterm' && $user->rights->facture->creer)
    +	if ($object->type != Facture::TYPE_CREDIT_NOTE && $action != 'editpaymentterm' && $usercancreate)
     		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editpaymentterm&amp;facid=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
     	print '</tr></table>';
     	print '</td><td>';
    @@ -3849,13 +3896,13 @@ else if ($id > 0 || ! empty($ref))
     	print '<table class="nobordernopadding" width="100%"><tr><td>';
     	print $langs->trans('PaymentMode');
     	print '</td>';
    -	if ($action != 'editmode' && $user->rights->facture->creer)
    +	if ($action != 'editmode' && $usercancreate)
     		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmode&amp;facid=' . $object->id . '">' . img_edit($langs->trans('SetMode'), 1) . '</a></td>';
     	print '</tr></table>';
     	print '</td><td>';
     	if ($action == 'editmode')
     	{
    -		$form->form_modes_reglement($_SERVER['PHP_SELF'].'?facid='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT');
    +		$form->form_modes_reglement($_SERVER['PHP_SELF'].'?facid='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT', 1, 1);
     	}
     	else
     	{
    @@ -3870,25 +3917,22 @@ else if ($id > 0 || ! empty($ref))
     		print '<tr>';
     		print '<td>';
     		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print fieldLabel('Currency','multicurrency_code');
    +		print $form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0);
     		print '</td>';
    -		if ($action != 'editmulticurrencycode' && ! empty($object->brouillon))
    +		if ($usercancreate && $action != 'editmulticurrencycode' && ! empty($object->brouillon))
     			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencycode&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
     		print '</tr></table>';
     		print '</td><td>';
    -		if ($action == 'editmulticurrencycode') {
    -			$form->form_multicurrency_code($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_code, 'multicurrency_code');
    -		} else {
    -			$form->form_multicurrency_code($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_code, 'none');
    -		}
    +		$htmlname = (($usercancreate && $action == 'editmulticurrencycode')?'multicurrency_code':'none');
    +		$form->form_multicurrency_code($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_code, $htmlname);
     		print '</td></tr>';
     
     		print '<tr>';
     		print '<td>';
     		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print fieldLabel('CurrencyRate','multicurrency_tx');
    +		print $form->editfieldkey('CurrencyRate', 'multicurrency_tx', '', $object, 0);
     		print '</td>';
    -		if ($action != 'editmulticurrencyrate' && ! empty($object->brouillon) && $object->multicurrency_code && $object->multicurrency_code != $conf->currency)
    +		if ($usercancreate && $action != 'editmulticurrencyrate' && ! empty($object->brouillon) && $object->multicurrency_code && $object->multicurrency_code != $conf->currency)
     			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencyrate&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
     		print '</tr></table>';
     		print '</td><td>';
    @@ -3896,7 +3940,7 @@ else if ($id > 0 || ! empty($ref))
     			if($action == 'actualizemulticurrencyrate') {
     				list($object->fk_multicurrency, $object->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($object->db, $object->multicurrency_code);
     			}
    -			$form->form_multicurrency_rate($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_tx, 'multicurrency_tx', $object->multicurrency_code);
    +			$form->form_multicurrency_rate($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_tx, ($usercancreate?'multicurrency_tx':'none'), $object->multicurrency_code);
     		} else {
     			$form->form_multicurrency_rate($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->multicurrency_tx, 'none', $object->multicurrency_code);
     			if($object->statut == $object::STATUS_DRAFT && $object->multicurrency_code && $object->multicurrency_code != $conf->currency) {
    @@ -3913,7 +3957,7 @@ else if ($id > 0 || ! empty($ref))
     	print '<table width="100%" class="nobordernopadding"><tr><td class="nowrap">';
     	print $langs->trans('BankAccount');
     	print '<td>';
    -	if (($action != 'editbankaccount') && $user->rights->facture->creer)
    +	if (($action != 'editbankaccount') && $usercancreate)
     		print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editbankaccount&amp;id='.$object->id.'">'.img_edit($langs->trans('SetBankAccount'),1).'</a></td>';
     	print '</tr></table>';
     	print '</td><td>';
    @@ -3928,11 +3972,6 @@ else if ($id > 0 || ! empty($ref))
     	print "</td>";
     	print '</tr>';
     
    -
    -
    -
    -
    -
     	// Incoterms
     	if (!empty($conf->incoterm->enabled))
     	{
    @@ -3940,7 +3979,7 @@ else if ($id > 0 || ! empty($ref))
     		print '<table width="100%" class="nobordernopadding"><tr><td>';
     		print $langs->trans('IncotermLabel');
     		print '<td><td align="right">';
    -		if ($user->rights->facture->creer) print '<a href="'.DOL_URL_ROOT.'/compta/facture/card.php?facid='.$object->id.'&action=editincoterm">'.img_edit().'</a>';
    +		if ($usercancreate) print '<a href="'.DOL_URL_ROOT.'/compta/facture/card.php?facid='.$object->id.'&action=editincoterm">'.img_edit().'</a>';
     		else print '&nbsp;';
     		print '</td></tr></table>';
     		print '</td>';
    @@ -3967,22 +4006,22 @@ else if ($id > 0 || ! empty($ref))
     	print '<div class="ficheaddleft">';
     	print '<div class="underbanner clearboth"></div>';
     
    -	print '<table class="border centpercent">';
    +	print '<table class="border tableforfield centpercent">';
     
     	if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency))
     	{
     		// Multicurrency Amount HT
    -		print '<tr><td class="titlefieldmiddle">' . fieldLabel('MulticurrencyAmountHT','multicurrency_total_ht') . '</td>';
    +		print '<tr><td class="titlefieldmiddle">' . $form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0) . '</td>';
     		print '<td class="nowrap amountcard">' . price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     
     		// Multicurrency Amount VAT
    -		print '<tr><td>' . fieldLabel('MulticurrencyAmountVAT','multicurrency_total_tva') . '</td>';
    +		print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0) . '</td>';
     		print '<td class="nowrap amountcard">' . price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     
     		// Multicurrency Amount TTC
    -		print '<tr><td>' . fieldLabel('MulticurrencyAmountTTC','multicurrency_total_ttc') . '</td>';
    +		print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0) . '</td>';
     		print '<td class="nowrap amountcard">' . price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     	}
    @@ -4014,7 +4053,7 @@ else if ($id > 0 || ! empty($ref))
     		print '<table class="nobordernopadding" width="100%"><tr><td>';
     		print $langs->trans('RevenueStamp');
     		print '</td>';
    -		if ($action != 'editrevenuestamp' && ! empty($object->brouillon) && $user->rights->facture->creer)
    +		if ($action != 'editrevenuestamp' && ! empty($object->brouillon) && $usercancreate)
     		{
     			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editrevenuestamp&amp;facid=' . $object->id . '">' . img_edit($langs->trans('SetRevenuStamp'), 1) . '</a></td>';
     		}
    @@ -4195,7 +4234,6 @@ else if ($id > 0 || ! empty($ref))
     	            print '<td align="right">' . price($next_invoice->total_ttc) . '</td>';
     	            print '<td align="right">' . $next_invoice->getLibStatut(3, $totalpaye) . '</td>';
     	            print '</tr>';
    -
     	        }
     
     	        $total_global_ht += $total_next_ht;
    @@ -4240,7 +4278,7 @@ else if ($id > 0 || ! empty($ref))
     	$sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'bank as b ON p.fk_bank = b.rowid';
     	$sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'bank_account as ba ON b.fk_account = ba.rowid';
     	$sql .= ' WHERE pf.fk_facture = ' . $object->id . ' AND pf.fk_paiement = p.rowid';
    -	$sql .= ' AND p.entity IN (' . getEntity('facture').')';
    +	$sql .= ' AND p.entity IN (' . getEntity('invoice').')';
     	$sql .= ' ORDER BY p.datep, p.tms';
     
     	$result = $db->query($sql);
    @@ -4477,6 +4515,7 @@ else if ($id > 0 || ! empty($ref))
     
     			print '<tr class="liste_titre nodrag nodrop">';
     
    +			// Adds a line numbering column
     			if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) {
     				print '<td align="center" width="5">&nbsp;</td>';
     			}
    @@ -4490,7 +4529,7 @@ else if ($id > 0 || ! empty($ref))
     			if (! empty($conf->margin->enabled) && empty($user->societe_id))
     			{
     				print '<td align="right" class="margininfos" width="80">&nbsp;</td>';
    -				if ((! empty($conf->global->DISPLAY_MARGIN_RATES) || ! empty($conf->global->DISPLAY_MARK_RATES)) && $user->rights->margins->liretous) {
    +				if ((! empty($conf->global->DISPLAY_MARGIN_RATES) || ! empty($conf->global->DISPLAY_MARK_RATES)) && $usercanreadallmargin) {
     					print '<td align="right" class="margininfos" width="50">&nbsp;</td>';
     				}
     			}
    @@ -4500,6 +4539,7 @@ else if ($id > 0 || ! empty($ref))
     			print '<td width="10">&nbsp;</td>';
     			print "</tr>\n";
     
    +			// Adds a line numbering column
     			if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) {
     				print '<td align="center" width="5">&nbsp;</td>';
     			}
    @@ -4523,7 +4563,7 @@ else if ($id > 0 || ! empty($ref))
     
     	print '	<form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#addline' : '#line_' . GETPOST('lineid')) . '" method="POST">
     	<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">
    -	<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateligne') . '">
    +	<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateline') . '">
     	<input type="hidden" name="mode" value="">
     	<input type="hidden" name="id" value="' . $object->id . '">
     	';
    @@ -4540,7 +4580,7 @@ else if ($id > 0 || ! empty($ref))
     		$ret = $object->printObjectLines($action, $mysoc, $soc, $lineid, 1);
     
     	// Form to add new line
    -	if ($object->statut == 0 && $user->rights->facture->creer && $action != 'valid' && $action != 'editline' && ($object->is_first() || !$object->situation_cycle_ref))
    +	if ($object->statut == 0 && $usercancreate && $action != 'valid' && $action != 'editline')
     	{
     	    if ($action != 'editline' && $action != 'selectlines')
     		{
    @@ -4581,23 +4621,22 @@ else if ($id > 0 || ! empty($ref))
     					{
     						if (! $objectidnext && $object->is_last_in_cycle())
     						{
    -							if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->creer))
    -		   						|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->unvalidate)))
    +							if ($usercanunvalidate)
     							{
     								print '<div class="inline-block divButAction"><a class="butAction'.($conf->use_javascript_ajax?' reposition':'').'" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&amp;action=modif">' . $langs->trans('Modify') . '</a></div>';
     							} else {
    -								print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("NotEnoughPermissions") . '">' . $langs->trans('Modify') . '</span></div>';
    +								print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("NotEnoughPermissions") . '">' . $langs->trans('Modify') . '</span></div>';
     							}
     						} else if (!$object->is_last_in_cycle()) {
    -							print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("NotLastInCycle") . '">' . $langs->trans('Modify') . '</span></div>';
    +							print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("NotLastInCycle") . '">' . $langs->trans('Modify') . '</span></div>';
     						} else {
    -							print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('Modify') . '</span></div>';
    +							print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('Modify') . '</span></div>';
     						}
     					}
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseDispatchedInAccounting") . '">' . $langs->trans('Modify') . '</span></div>';
    +					print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseDispatchedInAccounting") . '">' . $langs->trans('Modify') . '</span></div>';
     				}
     			}
     
    @@ -4609,20 +4648,19 @@ else if ($id > 0 || ! empty($ref))
     				|| ($object->type == Facture::TYPE_CREDIT_NOTE && empty($discount->id))
     				|| ($object->type == Facture::TYPE_DEPOSIT && empty($discount->id)))
     				&& ($object->statut == 2 || $object->statut == 3 || ($object->statut == 1 && $object->paye == 1))   // Condition ($object->statut == 1 && $object->paye == 1) should not happened but can be found due to corrupted data
    -				&& ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->facture->creer) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->facture->invoice_advance->reopen)))				// A paid invoice (partially or completely)
    +				&& ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || $usercanreopen))				// A paid invoice (partially or completely)
     			{
     				if (! $objectidnext && $object->close_code != 'replaced') 				// Not replaced by another invoice
     				{
     					print '<div class="inline-block divButAction"><a class="butAction'.($conf->use_javascript_ajax?' reposition':'').'" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&amp;action=reopen">' . $langs->trans('ReOpen') . '</a></div>';
     				} else {
    -					print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('ReOpen') . '</span></div>';
    +					print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('ReOpen') . '</span></div>';
     				}
     			}
     
     			// Validate
     			if ($object->statut == Facture::STATUS_DRAFT && count($object->lines) > 0 && ((($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA || $object->type == Facture::TYPE_SITUATION) && (! empty($conf->global->FACTURE_ENABLE_NEGATIVE) || $object->total_ttc >= 0)) || ($object->type == Facture::TYPE_CREDIT_NOTE && $object->total_ttc <= 0))) {
    -				if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->creer))
    -		  		|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->validate)))
    +				if ($usercanvalidate)
     				{
     					print '<div class="inline-block divButAction"><a class="butAction'.($conf->use_javascript_ajax?' reposition':'').'" href="' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&amp;action=valid">' . $langs->trans('Validate') . '</a></div>';
     				}
    @@ -4631,12 +4669,12 @@ else if ($id > 0 || ! empty($ref))
     			// Send by mail
     			if (($object->statut == Facture::STATUS_VALIDATED || $object->statut == Facture::STATUS_CLOSED) || ! empty($conf->global->FACTURE_SENDBYEMAIL_FOR_ALL_STATUS)) {
     				if ($objectidnext) {
    -					print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('SendMail') . '</span></div>';
    +					print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('SendMail') . '</span></div>';
     				} else {
    -					if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->facture->invoice_advance->send) {
    +					if ($usercansend) {
     						print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&action=presend&mode=init#formmailbeforetitle">' . $langs->trans('SendMail') . '</a></div>';
     					} else
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendMail') . '</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">' . $langs->trans('SendMail') . '</a></div>';
     				}
     			}
     
    @@ -4645,33 +4683,33 @@ else if ($id > 0 || ! empty($ref))
     			{
     				if ($resteapayer > 0)
     				{
    -					if ($user->rights->prelevement->bons->creer)
    +					if ($usercancreatewithdrarequest)
     					{
     						if (! $objectidnext && $object->close_code != 'replaced') 				// Not replaced by another invoice
     						{
     							print '<a class="butAction" href="'.DOL_URL_ROOT.'/compta/facture/prelevement.php?facid='.$object->id.'" title="'.dol_escape_htmltag($langs->trans("MakeWithdrawRequest")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
     						} else {
    -							print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('MakeWithdrawRequest') . '</span></div>';
    +							print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('MakeWithdrawRequest') . '</span></div>';
     						}
     					}
     					else
     					{
    -						//print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
    +						//print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
     					}
     				}
     				else
     				{
    -					//print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("AmountMustBePositive")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
    +					//print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("AmountMustBePositive")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
     				}
     			}
     
     			// Create payment
    -			if ($object->type != Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $user->rights->facture->paiement) {
    +			if ($object->type != Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $usercanissuepayment) {
     				if ($objectidnext) {
    -					print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('DoPayment') . '</span></div>';
    +					print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('DoPayment') . '</span></div>';
     				} else {
     					//if ($resteapayer == 0) {		// Sometimes we can receive more, so we accept to enter more and will offer a button to convert into discount (but it is not a credit note, just a prepayment done)
    -					//	print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseRemainderToPayIsZero") . '">' . $langs->trans('DoPayment') . '</span></div>';
    +					//	print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseRemainderToPayIsZero") . '">' . $langs->trans('DoPayment') . '</span></div>';
     					//} else {
     						print '<div class="inline-block divButAction"><a class="butAction" href="'. DOL_URL_ROOT .'/compta/paiement.php?facid=' . $object->id . '&amp;action=create&amp;accountid='.$object->fk_account.'">' . $langs->trans('DoPayment') . '</a></div>';
     					//}
    @@ -4681,11 +4719,11 @@ else if ($id > 0 || ! empty($ref))
     			// Reverse back money or convert to reduction
     			if ($object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_STANDARD) {
     				// For credit note only
    -				if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $user->rights->facture->paiement)
    +				if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $usercanissuepayment)
     				{
     					if ($resteapayer == 0)
     					{
    -						print '<div class="inline-block divButAction"><span class="butActionRefused" title="'.$langs->trans("DisabledBecauseRemainderToPayIsZero").'">'.$langs->trans('DoPaymentBack').'</span></div>';
    +						print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="'.$langs->trans("DisabledBecauseRemainderToPayIsZero").'">'.$langs->trans('DoPaymentBack').'</span></div>';
     					}
     					else
     					{
    @@ -4694,24 +4732,24 @@ else if ($id > 0 || ! empty($ref))
     				}
     
     				// For standard invoice with excess received
    -				if ($object->type == Facture::TYPE_STANDARD && empty($object->paye) && ($object->total_ttc - $totalpaye - $totalcreditnotes - $totaldeposits) < 0 && $user->rights->facture->creer && empty($discount->id))
    +				if ($object->type == Facture::TYPE_STANDARD && empty($object->paye) && ($object->total_ttc - $totalpaye - $totalcreditnotes - $totaldeposits) < 0 && $usercancreate && empty($discount->id))
     				{
     					print '<div class="inline-block divButAction"><a class="butAction'.($conf->use_javascript_ajax?' reposition':'').'" href="'.$_SERVER["PHP_SELF"].'?facid='.$object->id.'&amp;action=converttoreduc">'.$langs->trans('ConvertExcessReceivedToReduc').'</a></div>';
     				}
     				// For credit note
    -				if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $user->rights->facture->creer && $object->getSommePaiement() == 0) {
    +				if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $usercancreate && $object->getSommePaiement() == 0) {
     					print '<div class="inline-block divButAction"><a class="butAction'.($conf->use_javascript_ajax?' reposition':'').'" href="' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&amp;action=converttoreduc">' . $langs->trans('ConvertToReduc') . '</a></div>';
     				}
     				// For deposit invoice
    -				if ($object->type == Facture::TYPE_DEPOSIT && $user->rights->facture->creer && $object->statut > 0 && empty($discount->id))
    +				if ($object->type == Facture::TYPE_DEPOSIT && $usercancreate && $object->statut > 0 && empty($discount->id))
     				{
     					print '<div class="inline-block divButAction"><a class="butAction'.($conf->use_javascript_ajax?' reposition':'').'" href="'.$_SERVER["PHP_SELF"].'?facid='.$object->id.'&amp;action=converttoreduc">'.$langs->trans('ConvertToReduc').'</a></div>';
     				}
     			}
     
     			// Classify paid
    -			if ($object->statut == 1 && $object->paye == 0 && $user->rights->facture->paiement && (($object->type != Facture::TYPE_CREDIT_NOTE && $object->type != Facture::TYPE_DEPOSIT && $resteapayer <= 0) || ($object->type == Facture::TYPE_CREDIT_NOTE && $resteapayer >= 0))
    -				|| ($object->type == Facture::TYPE_DEPOSIT && $object->paye == 0 && $object->total_ttc > 0 && $resteapayer == 0 && $user->rights->facture->paiement && empty($discount->id))
    +			if ($object->statut == 1 && $object->paye == 0 && $usercanissuepayment && (($object->type != Facture::TYPE_CREDIT_NOTE && $object->type != Facture::TYPE_DEPOSIT && $resteapayer <= 0) || ($object->type == Facture::TYPE_CREDIT_NOTE && $resteapayer >= 0))
    +				|| ($object->type == Facture::TYPE_DEPOSIT && $object->paye == 0 && $object->total_ttc > 0 && $resteapayer == 0 && $usercanissuepayment && empty($discount->id))
     			)
     			{
     				print '<div class="inline-block divButAction"><a class="butAction'.($conf->use_javascript_ajax?' reposition':'').'" href="'.$_SERVER['PHP_SELF'].'?facid='.$object->id.'&amp;action=paid">'.$langs->trans('ClassifyPaid').'</a></div>';
    @@ -4719,7 +4757,7 @@ else if ($id > 0 || ! empty($ref))
     
     			// Classify 'closed not completely paid' (possible si validee et pas encore classee payee)
     
    -			if ($object->statut == 1 && $object->paye == 0 && $resteapayer > 0 && $user->rights->facture->paiement)
    +			if ($object->statut == 1 && $object->paye == 0 && $resteapayer > 0 && $usercanissuepayment)
     			{
     				if ($totalpaye > 0 || $totalcreditnotes > 0)
     				{
    @@ -4732,7 +4770,7 @@ else if ($id > 0 || ! empty($ref))
     					{
     						if ($objectidnext)
     						{
    -							print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('ClassifyCanceled') . '</span></div>';
    +							print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('ClassifyCanceled') . '</span></div>';
     						}
     						else
     						{
    @@ -4743,13 +4781,13 @@ else if ($id > 0 || ! empty($ref))
     			}
     
     			// Clone
    -			if (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA) && $user->rights->facture->creer)
    +			if (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA) && $usercancreate)
     			{
     				print '<div class="inline-block divButAction"><a class="butAction'.($conf->use_javascript_ajax?' reposition':'').'" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&amp;action=clone&amp;object=invoice">' . $langs->trans("ToClone") . '</a></div>';
     			}
     
     			// Clone as predefined / Create template
    -			if (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA) && $object->statut == 0 && $user->rights->facture->creer)
    +			if (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA) && $object->statut == 0 && $usercancreate)
     			{
     				if (! $objectidnext && count($object->lines) > 0)
     				{
    @@ -4758,41 +4796,39 @@ else if ($id > 0 || ! empty($ref))
     			}
     
     			// Create a credit note
    -			if (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA) && $object->statut > 0 && $user->rights->facture->creer)
    +			if (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA) && $object->statut > 0 && $usercancreate)
     			{
     				if (! $objectidnext)
     				{
    -					print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?socid=' . $object->socid .'&amp;fac_avoir=' . $object->id . '&amp;action=create&amp;type=2'.($object->fk_project > 0 ? '&amp;projectid='.$object->fk_project : '').'">' . $langs->trans("CreateCreditNote") . '</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?socid=' . $object->socid .'&amp;fac_avoir=' . $object->id . '&amp;action=create&amp;type=2'.($object->fk_project > 0 ? '&amp;projectid='.$object->fk_project : '').'' . $object->id . '&amp;action=create&amp;type=2'.($object->entity > 0 ? '&amp;originentity='.$object->entity : '').'">' . $langs->trans("CreateCreditNote") . '</a></div>';
     				}
     			}
     
     			// For situation invoice with excess received
     			if ($object->statut > Facture::STATUS_DRAFT
     			    && ($object->total_ttc - $totalpaye - $totalcreditnotes - $totaldeposits) > 0
    -			    && $user->rights->facture->creer
    +			    && $usercancreate
     			    && !$objectidnext
     			    && $object->is_last_in_cycle()
     			    && $conf->global->INVOICE_USE_SITUATION_CREDIT_NOTE
     			    )
     			{
    -			    if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->creer))
    -			        || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->unvalidate)))
    +				if ($usercanunvalidate)
     			    {
     			        print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?socid=' . $object->socid .'&amp;fac_avoir=' . $object->id . '&amp;invoiceAvoirWithLines=1&amp;action=create&amp;type=2'.($object->fk_project > 0 ? '&amp;projectid='.$object->fk_project : '').'">' . $langs->trans("CreateCreditNote") . '</a></div>';
     			    } else {
    -			        print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("NotEnoughPermissions") . '">' . $langs->trans("CreateCreditNote") . '</span></div>';
    +			        print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("NotEnoughPermissions") . '">' . $langs->trans("CreateCreditNote") . '</span></div>';
     			    }
     			}
     
     			// remove situation from cycle
     			if ($object->statut > Facture::STATUS_DRAFT
     			    && $object->type == Facture::TYPE_SITUATION
    -			    && $user->rights->facture->creer
    +			    && $usercancreate
     			    && !$objectidnext
     			    && $object->situation_counter > 1
     			    && $object->is_last_in_cycle()
    -			    && ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->creer))
    -			        || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->unvalidate)))
    +				&& $usercanunvalidate
     			    )
     			{
     			    if(($object->total_ttc - $totalcreditnotes  ) == 0 )
    @@ -4801,52 +4837,52 @@ else if ($id > 0 || ! empty($ref))
     			    }
     			    else
     			    {
    -			        print '<div class="inline-block divButAction"><a id="butSituationOutRefused" class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseNotEnouthCreditNote") . '" >' . $langs->trans("RemoveSituationFromCycle") . '</a></div>';
    +			        print '<div class="inline-block divButAction"><a id="butSituationOutRefused" class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseNotEnouthCreditNote") . '" >' . $langs->trans("RemoveSituationFromCycle") . '</a></div>';
     			    }
     			}
     
     			// Create next situation invoice
    -			if ($user->rights->facture->creer && ($object->type == 5) && ($object->statut == 1 || $object->statut == 2)) {
    +			if ($usercancreate && ($object->type == 5) && ($object->statut == 1 || $object->statut == 2)) {
     				if ($object->is_last_in_cycle() && $object->situation_final != 1) {
     					print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?action=create&amp;type=5&amp;origin=facture&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '" >' . $langs->trans('CreateNextSituationInvoice') . '</a></div>';
     				} else if (!$object->is_last_in_cycle()) {
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseNotLastInCycle") . '">' . $langs->trans('CreateNextSituationInvoice') . '</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseNotLastInCycle") . '">' . $langs->trans('CreateNextSituationInvoice') . '</a></div>';
     				} else {
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseFinal") . '">' . $langs->trans('CreateNextSituationInvoice') . '</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseFinal") . '">' . $langs->trans('CreateNextSituationInvoice') . '</a></div>';
     				}
     			}
     
     			// Delete
     			$isErasable = $object->is_erasable();
    -			if ($user->rights->facture->supprimer || ($user->rights->facture->creer && $isErasable == 1))	// isErasable = 1 means draft with temporary ref (draft can always be deleted with no need of permissions)
    +			if ($usercandelete || ($usercancreate && $isErasable == 1))	// isErasable = 1 means draft with temporary ref (draft can always be deleted with no need of permissions)
     			{
     				//var_dump($isErasable);
     				if ($isErasable == -4) {
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecausePayments") . '">' . $langs->trans('Delete') . '</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecausePayments") . '">' . $langs->trans('Delete') . '</a></div>';
     				}
     				elseif ($isErasable == -3) {
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseNotLastSituationInvoice") . '">' . $langs->trans('Delete') . '</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseNotLastSituationInvoice") . '">' . $langs->trans('Delete') . '</a></div>';
     				}
     				elseif ($isErasable == -2) {
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseNotLastInvoice") . '">' . $langs->trans('Delete') . '</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseNotLastInvoice") . '">' . $langs->trans('Delete') . '</a></div>';
     				}
     				elseif ($isErasable == -1) {
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseDispatchedInBookkeeping") . '">' . $langs->trans('Delete') . '</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseDispatchedInBookkeeping") . '">' . $langs->trans('Delete') . '</a></div>';
     				}
     				elseif ($isErasable <= 0)	// Any other cases
     				{
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseNotErasable") . '">' . $langs->trans('Delete') . '</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseNotErasable") . '">' . $langs->trans('Delete') . '</a></div>';
     				}
     				elseif ($objectidnext)
     				{
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('Delete') . '</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseReplacedInvoice") . '">' . $langs->trans('Delete') . '</a></div>';
     				}
     				else
     				{
     					print '<div class="inline-block divButAction"><a class="butActionDelete'.($conf->use_javascript_ajax?' reposition':'').'" href="' . $_SERVER["PHP_SELF"] . '?facid=' . $object->id . '&amp;action=delete">' . $langs->trans('Delete') . '</a></div>';
     				}
     			} else {
    -				print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("NotAllowed") . '">' . $langs->trans('Delete') . '</a></div>';
    +				print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("NotAllowed") . '">' . $langs->trans('Delete') . '</a></div>';
     			}
     		}
     		print '</div>';
    @@ -4865,8 +4901,8 @@ else if ($id > 0 || ! empty($ref))
     		$filename = dol_sanitizeFileName($object->ref);
     		$filedir = $conf->facture->dir_output . '/' . dol_sanitizeFileName($object->ref);
     		$urlsource = $_SERVER['PHP_SELF'] . '?facid=' . $object->id;
    -		$genallowed = $user->rights->facture->lire;
    -		$delallowed = $user->rights->facture->creer;
    +		$genallowed = $usercanread;
    +		$delallowed = $usercancreate;
     
     		print $formfile->showdocuments('facture', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $soc->default_lang);
     		$somethingshown = $formfile->numoffiles;
    @@ -4875,7 +4911,7 @@ else if ($id > 0 || ! empty($ref))
     		$linktoelem = $form->showLinkToObjectBlock($object, null, array('invoice'));
     
     		$compatibleImportElementsList = false;
    -		if($user->rights->facture->creer
    +		if($usercancreate
     		    && $object->statut == Facture::STATUS_DRAFT
     		    && ($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_PROFORMA || $object->type == Facture::TYPE_SITUATION) )
     		{
    @@ -4921,5 +4957,6 @@ else if ($id > 0 || ! empty($ref))
     	include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/facture/class/api_invoices.class.php b/htdocs/compta/facture/class/api_invoices.class.php
    index 7012b0ef800..04c2bedeb41 100644
    --- a/htdocs/compta/facture/class/api_invoices.class.php
    +++ b/htdocs/compta/facture/class/api_invoices.class.php
    @@ -32,7 +32,7 @@ class Invoices extends DolibarrApi
          * @var array   $FIELDS     Mandatory fields, checked when create and update object
          */
         static $FIELDS = array(
    -        'socid'
    +        'socid',
         );
     
         /**
    @@ -104,7 +104,8 @@ class Invoices extends DolibarrApi
          *
     	 * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids='', $status='', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids='', $status='', $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -122,7 +123,7 @@ class Invoices extends DolibarrApi
     
             if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale
     
    -        $sql.= ' WHERE t.entity IN ('.getEntity('facture').')';
    +        $sql.= ' WHERE t.entity IN ('.getEntity('invoice').')';
             if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql.= " AND t.fk_soc = sc.fk_soc";
             if ($socids) $sql.= " AND t.fk_soc IN (".$socids.")";
     
    @@ -245,29 +246,30 @@ class Invoices extends DolibarrApi
          * @throws 404
          * @throws 405
          */
    -    function createInvoiceFromOrder($orderid) {
    +    function createInvoiceFromOrder($orderid)
    +    {
     
             require_once DOL_DOCUMENT_ROOT . '/commande/class/commande.class.php';
     
             if(! DolibarrApiAccess::$user->rights->commande->lire) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             if(! DolibarrApiAccess::$user->rights->facture->creer) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             if(empty($orderid)) {
    -                throw new RestException(400, 'Order ID is mandatory');
    +            throw new RestException(400, 'Order ID is mandatory');
             }
     
             $order = new Commande($this->db);
             $result = $order->fetch($orderid);
             if( ! $result ) {
    -                throw new RestException(404, 'Order not found');
    +            throw new RestException(404, 'Order not found');
             }
     
             $result = $this->invoice->createFromOrder($order, DolibarrApiAccess::$user);
             if( $result < 0) {
    -                throw new RestException(405, $this->invoice->error);
    +            throw new RestException(405, $this->invoice->error);
             }
             $this->invoice->fetchObjectLinked();
             return $this->_cleanObjectDatas($this->invoice);
    @@ -282,7 +284,8 @@ class Invoices extends DolibarrApi
          *
          * @return int
          */
    -    function getLines($id) {
    +    function getLines($id)
    +    {
         	if(! DolibarrApiAccess::$user->rights->facture->lire) {
         		throw new RestException(401);
         	}
    @@ -319,7 +322,8 @@ class Invoices extends DolibarrApi
          * @throws 401
          * @throws 404
          */
    -    function putLine($id, $lineid, $request_data = null) {
    +    function putLine($id, $lineid, $request_data = null)
    +    {
         	if(! DolibarrApiAccess::$user->rights->facture->creer) {
         		throw new RestException(401);
         	}
    @@ -383,7 +387,8 @@ class Invoices extends DolibarrApi
          * @throws 404
          * @throws 405
          */
    -    function deleteLine($id, $lineid) {
    +    function deleteLine($id, $lineid)
    +    {
     
         	if(! DolibarrApiAccess::$user->rights->facture->creer) {
         		throw new RestException(401);
    @@ -449,7 +454,7 @@ class Invoices extends DolibarrApi
                  }
             }
     
    -        if($this->invoice->update($id, DolibarrApiAccess::$user))
    +        if($this->invoice->update(DolibarrApiAccess::$user))
                 return $this->get($id);
     
             return false;
    @@ -511,67 +516,68 @@ class Invoices extends DolibarrApi
          * @throws 404
          * @throws 400
          */
    -    function postLine($id, $request_data = null) {
    -      if(! DolibarrApiAccess::$user->rights->facture->creer) {
    -                        throw new RestException(401);
    -                  }
    +    function postLine($id, $request_data = null)
    +    {
    +        if(! DolibarrApiAccess::$user->rights->facture->creer) {
    +            throw new RestException(401);
    +        }
     
    -      $result = $this->invoice->fetch($id);
    -      if( ! $result ) {
    -         throw new RestException(404, 'Invoice not found');
    -      }
    +        $result = $this->invoice->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Invoice not found');
    +        }
     
    -      if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) {
    -                          throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -      }
    +        if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) {
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
     
    -      $request_data = (object) $request_data;
    +        $request_data = (object) $request_data;
     
    -      // Reset fk_parent_line for no child products and special product
    -      if (($request_data->product_type != 9 && empty($request_data->fk_parent_line)) || $request_data->product_type == 9) {
    -              $request_data->fk_parent_line = 0;
    -      }
    +        // Reset fk_parent_line for no child products and special product
    +        if (($request_data->product_type != 9 && empty($request_data->fk_parent_line)) || $request_data->product_type == 9) {
    +            $request_data->fk_parent_line = 0;
    +        }
     
    -      // calculate pa_ht
    -      $marginInfos = getMarginInfos($request_data->subprice, $request_data->remise_percent, $request_data->tva_tx, $request_data->localtax1_tx, $request_data->localtax2_tx, $request_data->fk_fournprice, $request_data->pa_ht);
    -      $pa_ht = $marginInfos[0];
    +        // calculate pa_ht
    +        $marginInfos = getMarginInfos($request_data->subprice, $request_data->remise_percent, $request_data->tva_tx, $request_data->localtax1_tx, $request_data->localtax2_tx, $request_data->fk_fournprice, $request_data->pa_ht);
    +        $pa_ht = $marginInfos[0];
     
    -      $updateRes = $this->invoice->addline(
    -                              $request_data->desc,
    -                              $request_data->subprice,
    -                              $request_data->qty,
    -                              $request_data->tva_tx,
    -                              $request_data->localtax1_tx,
    -                              $request_data->localtax2_tx,
    -                              $request_data->fk_product,
    -                              $request_data->remise_percent,
    -                              $request_data->date_start,
    -                              $request_data->date_end,
    -                              $request_data->fk_code_ventilation,
    -                              $request_data->info_bits,
    -                              $request_data->fk_remise_except,
    -                              'HT',
    -                              0,
    -                              $request_data->product_type,
    -                              $request_data->rang,
    -                              $request_data->special_code,
    -                              $request_data->origin,
    -                              $request_data->origin_id,
    -                              $request_data->fk_parent_line,
    -                              empty($request_data->fk_fournprice)?null:$request_data->fk_fournprice,
    -                              $pa_ht,
    -                              $request_data->label,
    -                              $request_data->array_options,
    -                              $request_data->situation_percent,
    -                              $request_data->fk_prev_id,
    -                              $request_data->fk_unit
    -      );
    +        $updateRes = $this->invoice->addline(
    +            $request_data->desc,
    +            $request_data->subprice,
    +            $request_data->qty,
    +            $request_data->tva_tx,
    +            $request_data->localtax1_tx,
    +            $request_data->localtax2_tx,
    +            $request_data->fk_product,
    +            $request_data->remise_percent,
    +            $request_data->date_start,
    +            $request_data->date_end,
    +            $request_data->fk_code_ventilation,
    +            $request_data->info_bits,
    +            $request_data->fk_remise_except,
    +            'HT',
    +            0,
    +            $request_data->product_type,
    +            $request_data->rang,
    +            $request_data->special_code,
    +            $request_data->origin,
    +            $request_data->origin_id,
    +            $request_data->fk_parent_line,
    +            empty($request_data->fk_fournprice)?null:$request_data->fk_fournprice,
    +            $pa_ht,
    +            $request_data->label,
    +            $request_data->array_options,
    +            $request_data->situation_percent,
    +            $request_data->fk_prev_id,
    +            $request_data->fk_unit
    +        );
     
    -      if ($updateRes < 0) {
    +        if ($updateRes < 0) {
                 throw new RestException(400, 'Unable to insert the new line. Check your inputs. '.$this->invoice->error);
    -      }
    +        }
     
    -      return $updateRes;
    +        return $updateRes;
         }
     
         /**
    @@ -647,23 +653,23 @@ class Invoices extends DolibarrApi
         function settodraft($id, $idwarehouse=-1)
         {
             if(! DolibarrApiAccess::$user->rights->facture->creer) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             $result = $this->invoice->fetch($id);
             if( ! $result ) {
    -                throw new RestException(404, 'Invoice not found');
    +            throw new RestException(404, 'Invoice not found');
             }
     
             if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) {
    -                throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
             }
     
             $result = $this->invoice->set_draft(DolibarrApiAccess::$user, $idwarehouse);
             if ($result == 0) {
    -                throw new RestException(304, 'Nothing done.');
    +            throw new RestException(304, 'Nothing done.');
             }
             if ($result < 0) {
    -                throw new RestException(500, 'Error : '.$this->invoice->error);
    +            throw new RestException(500, 'Error : '.$this->invoice->error);
             }
     
             $result = $this->invoice->fetch($id);
    @@ -750,23 +756,23 @@ class Invoices extends DolibarrApi
         function settopaid($id, $close_code='', $close_note='')
         {
             if(! DolibarrApiAccess::$user->rights->facture->creer) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             $result = $this->invoice->fetch($id);
             if( ! $result ) {
    -                throw new RestException(404, 'Invoice not found');
    +            throw new RestException(404, 'Invoice not found');
             }
     
             if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) {
    -                throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
             }
     
             $result = $this->invoice->set_paid(DolibarrApiAccess::$user, $close_code, $close_note);
             if ($result == 0) {
    -                throw new RestException(304, 'Error nothing done. May be object is already validated');
    +            throw new RestException(304, 'Error nothing done. May be object is already validated');
             }
             if ($result < 0) {
    -                throw new RestException(500, 'Error : '.$this->invoice->error);
    +            throw new RestException(500, 'Error : '.$this->invoice->error);
             }
     
     
    @@ -801,23 +807,23 @@ class Invoices extends DolibarrApi
         function settounpaid($id)
         {
             if(! DolibarrApiAccess::$user->rights->facture->creer) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             $result = $this->invoice->fetch($id);
             if( ! $result ) {
    -                throw new RestException(404, 'Invoice not found');
    +            throw new RestException(404, 'Invoice not found');
             }
     
             if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) {
    -                throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
             }
     
             $result = $this->invoice->set_unpaid(DolibarrApiAccess::$user);
             if ($result == 0) {
    -                throw new RestException(304, 'Nothing done');
    +            throw new RestException(304, 'Nothing done');
             }
             if ($result < 0) {
    -                throw new RestException(500, 'Error : '.$this->invoice->error);
    +            throw new RestException(500, 'Error : '.$this->invoice->error);
             }
     
     
    @@ -849,30 +855,31 @@ class Invoices extends DolibarrApi
          * @throws 404
          * @throws 405
          */
    -    function useDiscount($id, $discountid) {
    +    function useDiscount($id, $discountid)
    +    {
     
             if(! DolibarrApiAccess::$user->rights->facture->creer) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             if(empty($id)) {
    -                throw new RestException(400, 'Invoice ID is mandatory');
    +            throw new RestException(400, 'Invoice ID is mandatory');
             }
             if(empty($discountid)) {
    -                throw new RestException(400, 'Discount ID is mandatory');
    +            throw new RestException(400, 'Discount ID is mandatory');
             }
     
             if( ! DolibarrApi::_checkAccessToResource('facture',$id)) {
    -                throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
             }
     
             $result = $this->invoice->fetch($id);
             if( ! $result ) {
    -                throw new RestException(404, 'Invoice not found');
    +            throw new RestException(404, 'Invoice not found');
             }
     
             $result = $this->invoice->insert_discount($discountid);
             if( $result < 0) {
    -                throw new RestException(405, $this->invoice->error);
    +            throw new RestException(405, $this->invoice->error);
             }
     
             return $result;
    @@ -894,32 +901,33 @@ class Invoices extends DolibarrApi
          * @throws 404
          * @throws 405
          */
    -    function useCreditNote($id, $discountid) {
    +    function useCreditNote($id, $discountid)
    +    {
     
             require_once DOL_DOCUMENT_ROOT . '/core/class/discount.class.php';
     
             if(! DolibarrApiAccess::$user->rights->facture->creer) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             if(empty($id)) {
    -                throw new RestException(400, 'Invoice ID is mandatory');
    +            throw new RestException(400, 'Invoice ID is mandatory');
             }
             if(empty($discountid)) {
    -                throw new RestException(400, 'Credit ID is mandatory');
    +            throw new RestException(400, 'Credit ID is mandatory');
             }
     
             if( ! DolibarrApi::_checkAccessToResource('facture',$id)) {
    -                throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
             }
             $discount = new DiscountAbsolute($this->db);
             $result = $discount->fetch($discountid);
             if( ! $result ) {
    -                throw new RestException(404, 'Credit not found');
    +            throw new RestException(404, 'Credit not found');
             }
     
             $result = $discount->link_to_invoice(0, $id);
             if( $result < 0) {
    -                throw new RestException(405, $discount->error);
    +            throw new RestException(405, $discount->error);
             }
     
             return $result;
    @@ -938,27 +946,28 @@ class Invoices extends DolibarrApi
          * @throws 404
          * @throws 405
          */
    -    function getPayments($id) {
    +    function getPayments($id)
    +    {
     
             if(! DolibarrApiAccess::$user->rights->facture->lire) {
    -                throw new RestException(401);
    +            throw new RestException(401);
             }
             if(empty($id)) {
    -                throw new RestException(400, 'Invoice ID is mandatory');
    +            throw new RestException(400, 'Invoice ID is mandatory');
             }
     
             if( ! DolibarrApi::_checkAccessToResource('facture',$id)) {
    -                throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
             }
     
             $result = $this->invoice->fetch($id);
             if( ! $result ) {
    -                throw new RestException(404, 'Invoice not found');
    +            throw new RestException(404, 'Invoice not found');
             }
     
             $result = $this->invoice->getListOfPayments();
             if( $result < 0) {
    -                throw new RestException(405, $this->invoice->error);
    +            throw new RestException(405, $this->invoice->error);
             }
     
             return $result;
    @@ -985,8 +994,9 @@ class Invoices extends DolibarrApi
          * @throws 401
          * @throws 404
          */
    -    function addPayment($id, $datepaye, $paiementid, $closepaidinvoices, $accountid, $num_paiement='', $comment='', $chqemetteur='', $chqbank='') {
    -    	global $conf;
    +    function addPayment($id, $datepaye, $paiementid, $closepaidinvoices, $accountid, $num_paiement='', $comment='', $chqemetteur='', $chqbank='')
    +    {
    +        global $conf;
     
         	require_once DOL_DOCUMENT_ROOT . '/compta/paiement/class/paiement.class.php';
     
    @@ -1111,7 +1121,7 @@ class Invoices extends DolibarrApi
             require_once DOL_DOCUMENT_ROOT . '/compta/paiement/class/paiement.class.php';
     
             if(! DolibarrApiAccess::$user->rights->facture->creer) {
    -                throw new RestException(403);
    +            throw new RestException(403);
             }
             foreach($arrayofamounts as $id => $amount) {
             	if(empty($id)) {
    @@ -1215,18 +1225,19 @@ class Invoices extends DolibarrApi
          * @param   object  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
    -    	$object = parent::_cleanObjectDatas($object);
    +        $object = parent::_cleanObjectDatas($object);
     
             unset($object->note);
    -    	unset($object->address);
    -    	unset($object->barcode_type);
    -    	unset($object->barcode_type_code);
    -    	unset($object->barcode_type_label);
    -    	unset($object->barcode_type_coder);
    +        unset($object->address);
    +        unset($object->barcode_type);
    +        unset($object->barcode_type_code);
    +        unset($object->barcode_type_label);
    +        unset($object->barcode_type_coder);
     
    -    	return $object;
    +        return $object;
         }
     
         /**
    @@ -1241,11 +1252,11 @@ class Invoices extends DolibarrApi
         {
             $invoice = array();
             foreach (Invoices::$FIELDS as $field) {
    -            if (!isset($data[$field]))
    +            if (!isset($data[$field])) {
                     throw new RestException(400, "$field field missing");
    +            }
                 $invoice[$field] = $data[$field];
             }
             return $invoice;
         }
    -
     }
    diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php
    index a82f06ad851..5090132632e 100644
    --- a/htdocs/compta/facture/class/facture-rec.class.php
    +++ b/htdocs/compta/facture/class/facture-rec.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2005	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2010-2011	Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2012       Cedric Salvador      <csalvador@gpcsolutions.fr>
      * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
    @@ -39,36 +39,59 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
      */
     class FactureRec extends CommonInvoice
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='facturerec';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='facture_rec';
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
     	public $table_element_line='facturedet_rec';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element='fk_facture';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto='bill';
     
    -	var $entity;
    -	var $number;
    -	var $date;
    -	var $amount;
    -	var $remise;
    -	var $tva;
    -	var $total;
    -	var $db_table;
    -	var $propalid;
    +	/**
    +	 * @var int Entity
    +	 */
    +	public $entity;
     
    -	var $date_last_gen;
    -	var $date_when;
    -	var $nb_gen_done;
    -	var $nb_gen_max;
    +	public $number;
    +	public $date;
    +	public $amount;
    +	public $remise;
    +	public $tva;
    +	public $total;
    +	public $db_table;
    +	public $propalid;
     
    -	var $frequency;
    -	var $unit_frequency;
    +	public $date_last_gen;
    +	public $date_when;
    +	public $nb_gen_done;
    +	public $nb_gen_max;
     
    -	var $rang;
    -	var $special_code;
    +	public $frequency;
    +	public $unit_frequency;
     
    -	var $usenewprice=0;
    +	public $rang;
    +	public $special_code;
     
    -	var $suspended;			// status
    +	public $usenewprice=0;
    +
    +	public $suspended;			// status
     
     	const STATUS_NOTSUSPENDED = 0;
     	const STATUS_SUSPENDED = 1;
    @@ -317,7 +340,7 @@ class FactureRec extends CommonInvoice
     		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_payment_term as c ON f.fk_cond_reglement = c.rowid';
     		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as p ON f.fk_mode_reglement = p.id';
     		//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON el.fk_target = f.rowid AND el.targettype = 'facture'";
    -		$sql.= ' WHERE f.entity IN ('.getEntity('facture').')';
    +		$sql.= ' WHERE f.entity IN ('.getEntity('invoice').')';
     		if ($rowid) $sql.= ' AND f.rowid='.$rowid;
     		elseif ($ref) $sql.= " AND f.titre='".$this->db->escape($ref)."'";
     		/* This field are not used for template invoice
    @@ -432,18 +455,20 @@ class FactureRec extends CommonInvoice
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Recupere les lignes de factures predefinies dans this->lines
     	 *
    -	 *	@return     int         1 if OK, < 0 if KO
    - 	 */
    +	 *  @return     int         1 if OK, < 0 if KO
    +     */
     	function fetch_lines()
     	{
    +        // phpcs:enable
     		$this->lines=array();
     
     		// Retreive all extrafield for line
     		// fetch optionals attributes and labels
    -		require_once(DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php');
    +		require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     		$extrafieldsline=new ExtraFields($this->db);
     		$extrafieldsline=$extrafieldsline->fetch_name_optionals_label('facturedet_rec',true);
     
    @@ -973,26 +998,25 @@ class FactureRec extends CommonInvoice
     	 *
     	 *  WARNING: This method change temporarly context $conf->entity to be in correct context for each recurring invoice found.
     	 *
    -	 *  @param	int		$restictoninvoiceid		0=All qualified template invoices found. > 0 = restrict action on invoice ID
    +	 *  @param	int		$restrictioninvoiceid		0=All qualified template invoices found. > 0 = restrict action on invoice ID
     	 *  @param	int		$forcevalidation		1=Force validation of invoice whatever is template auto_validate flag.
     	 *  @return	int								0 if OK, < 0 if KO (this function is used also by cron so only 0 is OK)
     	 */
    -	function createRecurringInvoices($restictoninvoiceid=0, $forcevalidation=0)
    +	function createRecurringInvoices($restrictioninvoiceid=0, $forcevalidation=0)
     	{
    -		global $conf, $langs, $db, $user;
    +		global $conf, $langs, $db, $user, $hookmanager;
     
     		$error=0;
    -
    -		$langs->load("bills");
    -		$langs->load('main');
    -
     		$nb_create=0;
     
    +		// Load translation files required by the page
    +		$langs->loadLangs(array("main","bills"));
    +
     		$now = dol_now();
     		$tmparray=dol_getdate($now);
     		$today = dol_mktime(23,59,59,$tmparray['mon'],$tmparray['mday'],$tmparray['year']);   // Today is last second of current day
     
    -		dol_syslog("createRecurringInvoices restictoninvoiceid=".$restictoninvoiceid." forcevalidation=".$forcevalidation);
    +		dol_syslog("createRecurringInvoices restrictioninvoiceid=".$restrictioninvoiceid." forcevalidation=".$forcevalidation);
     
     		$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'facture_rec';
     		$sql.= ' WHERE frequency > 0';      // A recurring invoice is an invoice with a frequency
    @@ -1000,30 +1024,39 @@ class FactureRec extends CommonInvoice
     		$sql.= ' AND (nb_gen_done < nb_gen_max OR nb_gen_max = 0)';
     		$sql.= ' AND suspended = 0';
     		$sql.= ' AND entity = '.$conf->entity;	// MUST STAY = $conf->entity here
    -		if ($restictoninvoiceid > 0) $sql.=' AND rowid = '.$restictoninvoiceid;
    +		if ($restrictioninvoiceid > 0)
    +			$sql.=' AND rowid = '.$restrictioninvoiceid;
     		$sql.= $db->order('entity', 'ASC');
     		//print $sql;exit;
    +		$parameters = array(
    +			'restrictioninvoiceid' => $restrictioninvoiceid,
    +			'forcevalidation' => $forcevalidation,
    +			);
    +		$reshook = $hookmanager->executeHooks('beforeCreationOfRecurringInvoices', $parameters, $sql); // note that $sql might be modified by hooks
     
     		$resql = $db->query($sql);
     		if ($resql)
     		{
    -		    $i=0;
    -		    $num = $db->num_rows($resql);
    +			$i=0;
    +			$num = $db->num_rows($resql);
     
    -		    if ($num) $this->output.=$langs->trans("FoundXQualifiedRecurringInvoiceTemplate", $num)."\n";
    -		    else $this->output.=$langs->trans("NoQualifiedRecurringInvoiceTemplateFound");
    +			if ($num)
    +				$this->output.=$langs->trans("FoundXQualifiedRecurringInvoiceTemplate", $num)."\n";
    +			else
    +				$this->output.=$langs->trans("NoQualifiedRecurringInvoiceTemplateFound");
     
    -		    $saventity = $conf->entity;
    +			$saventity = $conf->entity;
     
    -		    while ($i < $num)     // Loop on each template invoice. If $num = 0, test is false at first pass.
    +			while ($i < $num)     // Loop on each template invoice. If $num = 0, test is false at first pass.
     			{
     				$line = $db->fetch_object($resql);
     
    -			    $db->begin();
    +				$db->begin();
     
    -			    $invoiceidgenerated = 0;
    +				$invoiceidgenerated = 0;
     
    -			    $facturerec = new FactureRec($db);
    +				$facture = null;
    +				$facturerec = new FactureRec($db);
     				$facturerec->fetch($line->rowid);
     
     				if ($facturerec->id > 0)
    @@ -1033,44 +1066,44 @@ class FactureRec extends CommonInvoice
     
     					dol_syslog("createRecurringInvoices Process invoice template id=".$facturerec->id.", ref=".$facturerec->ref.", entity=".$facturerec->entity);
     
    -				    $facture = new Facture($db);
    +					$facture = new Facture($db);
     					$facture->fac_rec = $facturerec->id;    // We will create $facture from this recurring invoice
     					$facture->fk_fac_rec_source = $facturerec->id;    // We will create $facture from this recurring invoice
     
    -				    $facture->type = self::TYPE_STANDARD;
    -				    $facture->brouillon = 1;
    -				    $facture->date = (empty($facturerec->date_when)?$now:$facturerec->date_when);	// We could also use dol_now here but we prefer date_when so invoice has real date when we would like even if we generate later.
    -				    $facture->socid = $facturerec->socid;
    +					$facture->type = self::TYPE_STANDARD;
    +					$facture->brouillon = 1;
    +					$facture->date = (empty($facturerec->date_when)?$now:$facturerec->date_when);	// We could also use dol_now here but we prefer date_when so invoice has real date when we would like even if we generate later.
    +					$facture->socid = $facturerec->socid;
     
    -				    $invoiceidgenerated = $facture->create($user);
    -				    if ($invoiceidgenerated <= 0)
    -				    {
    -				        $this->errors = $facture->errors;
    -				        $this->error = $facture->error;
    -				        $error++;
    -				    }
    -				    if (! $error && ($facturerec->auto_validate || $forcevalidation))
    -				    {
    -				        $result = $facture->validate($user);
    -				        if ($result <= 0)
    -				        {
    -	    			        $this->errors = $facture->errors;
    -	    			        $this->error = $facture->error;
    -				            $error++;
    -	                    }
    -				    }
    -	                if (! $error && $facturerec->generate_pdf)
    -	                {
    -	                    // We refresh the object in order to have all necessary data (like date_lim_reglement)
    -	                    $facture->fetch($facture->id);
    -	                    $result = $facture->generateDocument($facturerec->modelpdf, $langs);
    -	                    if ($result <= 0)
    -	                    {
    -	                        $this->errors = $facture->errors;
    -	                        $this->error = $facture->error;
    -	                        $error++;
    -	                    }
    -	                }
    +					$invoiceidgenerated = $facture->create($user);
    +					if ($invoiceidgenerated <= 0)
    +					{
    +						$this->errors = $facture->errors;
    +						$this->error = $facture->error;
    +						$error++;
    +					}
    +					if (! $error && ($facturerec->auto_validate || $forcevalidation))
    +					{
    +						$result = $facture->validate($user);
    +						if ($result <= 0)
    +						{
    +							$this->errors = $facture->errors;
    +							$this->error = $facture->error;
    +							$error++;
    +						}
    +					}
    +					if (! $error && $facturerec->generate_pdf)
    +					{
    +						// We refresh the object in order to have all necessary data (like date_lim_reglement)
    +						$facture->fetch($facture->id);
    +						$result = $facture->generateDocument($facturerec->modelpdf, $langs);
    +						if ($result <= 0)
    +						{
    +							$this->errors = $facture->errors;
    +							$this->error = $facture->error;
    +							$error++;
    +						}
    +					}
     				}
     				else
     				{
    @@ -1089,9 +1122,19 @@ class FactureRec extends CommonInvoice
     				}
     				else
     				{
    -				    $db->rollback("createRecurringInvoices Process invoice template id=".$facturerec->id.", ref=".$facturerec->ref);
    +					$db->rollback("createRecurringInvoices Process invoice template id=".$facturerec->id.", ref=".$facturerec->ref);
     				}
     
    +				$parameters = array(
    +					'cpt'        => $i,
    +					'total'      => $num,
    +					'errorCount' => $error,
    +					'invoiceidgenerated' => $invoiceidgenerated,
    +					'facturerec' => $facturerec,	// it's an object which PHP passes by "reference", so modifiable by hooks.
    +					'this'       => $this,		// it's an object which PHP passes by "reference", so modifiable by hooks.
    +					);
    +				$reshook = $hookmanager->executeHooks('afterCreationOfRecurringInvoice', $parameters, $facture);  // note: $facture can be modified by hooks (warning: $facture can be null)
    +
     				$i++;
     			}
     
    @@ -1173,6 +1216,7 @@ class FactureRec extends CommonInvoice
     		return $this->LibStatut($this->frequency?1:0, $this->suspended, $mode, $alreadypaid, empty($this->type)?0:$this->type);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return label of a status
     	 *
    @@ -1185,6 +1229,7 @@ class FactureRec extends CommonInvoice
     	 */
     	function LibStatut($recur, $status, $mode=0, $alreadypaid=-1, $type=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->load('bills');
     
    @@ -1203,7 +1248,7 @@ class FactureRec extends CommonInvoice
     				else return $langs->trans("Draft");
     			}
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			$prefix='Short';
     			if ($recur)
    @@ -1217,7 +1262,7 @@ class FactureRec extends CommonInvoice
     				else return $langs->trans("Draft");
     			}
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($recur)
     			{
    @@ -1230,7 +1275,7 @@ class FactureRec extends CommonInvoice
     				else return img_picto($langs->trans('Draft'),'statut0').' '.$langs->trans('Draft');
     			}
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($recur)
     			{
    @@ -1244,7 +1289,7 @@ class FactureRec extends CommonInvoice
     				else return img_picto($langs->trans('Draft'),'statut0');
     			}
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			$prefix='';
     			if ($recur)
    @@ -1258,7 +1303,7 @@ class FactureRec extends CommonInvoice
     				else return img_picto($langs->trans('Draft'),'statut0').' '.$langs->trans('Draft');
     			}
     		}
    -		if ($mode == 5 || $mode == 6)
    +		elseif ($mode == 5 || $mode == 6)
     		{
     			$prefix='';
     			if ($mode == 5) $prefix='Short';
    @@ -1639,7 +1684,14 @@ class FactureRec extends CommonInvoice
      */
     class FactureLigneRec extends CommonInvoiceLine
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='facturedetrec';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='facturedet_rec';
     
     	var $date_start_fill;
    @@ -1843,7 +1895,5 @@ class FactureLigneRec extends CommonInvoiceLine
         		$this->db->rollback();
         		return -2;
         	}
    -
         }
    -
     }
    diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php
    index a6e979cdd10..3e4335774c9 100644
    --- a/htdocs/compta/facture/class/facture.class.php
    +++ b/htdocs/compta/facture/class/facture.class.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004      Sebastien Di Cintio   <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier        <benoit.mortier@opensides.be>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2014 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani      <acianfa@free.fr>
      * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
      * Copyright (C) 2010-2016 Juanjo Menent         <jmenent@2byte.es>
    @@ -53,16 +53,37 @@ if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accoun
      */
     class Facture extends CommonInvoice
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='facture';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='facture';
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
     	public $table_element_line = 'facturedet';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element = 'fk_facture';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto='bill';
    +
     	/**
     	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     	 * @var int
     	 */
     	public $ismultientitymanaged = 1;
    +
     	/**
     	 * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
     	 * @var integer
    @@ -72,16 +93,23 @@ class Facture extends CommonInvoice
     	/**
     	 * {@inheritdoc}
     	 */
    -	protected $table_ref_field = 'facnumber';
    +	protected $table_ref_field = 'ref';
     
     	public $socid;
     
     	public $author;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_author;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_valid;
    +
     	public $date;              // Date invoice
    -	public $date_creation;		// Creation date
    -	public $date_validation;	// Validation date
     	public $datem;
     	public $ref_client;
     	public $ref_int;
    @@ -105,21 +133,34 @@ class Facture extends CommonInvoice
     	public $close_note;
     	//! 1 if invoice paid COMPLETELY, 0 otherwise (do not use it anymore, use statut and close_code)
     	public $paye;
    +	//! key of module source when invoice generated from a dedicated module ('cashdesk', 'takepos', ...)
    +	public $module_source;
    +	//! key of pos source ('0', '1', ...)
    +	public $pos_source;
    +	//! id of template invoice when generated from a template invoice
    +	public $fk_fac_rec_source;
     	//! id of source invoice if replacement invoice or credit note
     	public $fk_facture_source;
     	public $linked_objects=array();
     	public $date_lim_reglement;
     	public $cond_reglement_code;		// Code in llx_c_paiement
     	public $mode_reglement_code;		// Code in llx_c_paiement
    -	public $fk_bank;					// Field to store bank id to use when payment mode is withdraw
    +
    +	/**
    +     * @var int ID Field to store bank id to use when payment mode is withdraw
    +     */
    +	public $fk_bank;
    +
     	/**
     	 * @deprecated
     	 */
     	public $products=array();
    +
     	/**
     	 * @var FactureLigne[]
     	 */
     	public $lines=array();
    +
     	public $line;
     	public $extraparams=array();
     	public $specimen;
    @@ -127,7 +168,11 @@ class Facture extends CommonInvoice
     	public $fac_rec;
     
     	// Multicurrency
    +	/**
    +     * @var int ID
    +     */
     	public $fk_multicurrency;
    +
     	public $multicurrency_code;
     	public $multicurrency_tx;
     	public $multicurrency_total_ht;
    @@ -192,7 +237,7 @@ class Facture extends CommonInvoice
     	const TYPE_SITUATION = 5;
     
     	/**
    -	 * Draft
    +	 * Draft status
     	 */
     	const STATUS_DRAFT = 0;
     
    @@ -405,7 +450,7 @@ class Facture extends CommonInvoice
     		$socid  = $this->socid;
     
     		$sql = "INSERT INTO ".MAIN_DB_PREFIX."facture (";
    -		$sql.= " facnumber";
    +		$sql.= " ref";
     		$sql.= ", entity";
     		$sql.= ", ref_ext";
     		$sql.= ", type";
    @@ -419,7 +464,7 @@ class Facture extends CommonInvoice
     		$sql.= ", note_public";
     		$sql.= ", ref_client, ref_int";
             $sql.= ", fk_account";
    -		$sql.= ", fk_fac_rec_source, fk_facture_source, fk_user_author, fk_projet";
    +		$sql.= ", module_source, pos_source, fk_fac_rec_source, fk_facture_source, fk_user_author, fk_projet";
     		$sql.= ", fk_cond_reglement, fk_mode_reglement, date_lim_reglement, model_pdf";
     		$sql.= ", situation_cycle_ref, situation_counter, situation_final";
     		$sql.= ", fk_incoterms, location_incoterms";
    @@ -443,6 +488,8 @@ class Facture extends CommonInvoice
     		$sql.= ", ".($this->ref_client?"'".$this->db->escape($this->ref_client)."'":"null");
     		$sql.= ", ".($this->ref_int?"'".$this->db->escape($this->ref_int)."'":"null");
     		$sql.= ", ".($this->fk_account>0?$this->fk_account:'NULL');
    +		$sql.= ", ".($this->module_source ? "'".$this->db->escape($this->module_source)."'" : "null");
    +		$sql.= ", ".($this->pos_source != '' ? "'".$this->db->escape($this->pos_source)."'" : "null");
     		$sql.= ", ".($this->fk_fac_rec_source?"'".$this->db->escape($this->fk_fac_rec_source)."'":"null");
     		$sql.= ", ".($this->fk_facture_source?"'".$this->db->escape($this->fk_facture_source)."'":"null");
     		$sql.= ", ".($user->id > 0 ? "'".$user->id."'":"null");
    @@ -467,7 +514,7 @@ class Facture extends CommonInvoice
     
     			// Update ref with new one
     			$this->ref='(PROV'.$this->id.')';
    -			$sql = 'UPDATE '.MAIN_DB_PREFIX."facture SET facnumber='".$this->db->escape($this->ref)."' WHERE rowid=".$this->id;
    +			$sql = 'UPDATE '.MAIN_DB_PREFIX."facture SET ref='".$this->db->escape($this->ref)."' WHERE rowid=".$this->id;
     
     			$resql=$this->db->query($sql);
     			if (! $resql) $error++;
    @@ -900,12 +947,10 @@ class Facture extends CommonInvoice
     	 */
     	function createFromClone($socid=0)
     	{
    -		global $user,$hookmanager;
    +		global $user,$hookmanager, $conf;
     
     		$error=0;
     
    -		$this->context['createfromclone'] = 'createfromclone';
    -
     		$this->db->begin();
     
     		// get extrafields so they will be clone
    @@ -915,8 +960,6 @@ class Facture extends CommonInvoice
     		// Load source object
     		$objFrom = clone $this;
     
    -
    -
     		// Change socid if needed
     		if (! empty($socid) && $socid != $this->socid)
     		{
    @@ -943,6 +986,7 @@ class Facture extends CommonInvoice
     		$this->user_valid         = '';
     		$this->fk_facture_source  = 0;
     		$this->date_creation      = '';
    +		$this->date_modification = '';
     		$this->date_validation    = '';
     		$this->ref_client         = '';
     		$this->close_code         = '';
    @@ -960,6 +1004,7 @@ class Facture extends CommonInvoice
     		}
     
     		// Create clone
    +		$this->context['createfromclone'] = 'createfromclone';
     		$result=$this->create($user);
     		if ($result < 0) $error++;
     		else {
    @@ -1159,7 +1204,8 @@ class Facture extends CommonInvoice
     		if ($option == 'withdraw') $url = DOL_URL_ROOT.'/compta/facture/prelevement.php?facid='.$this->id;
     		else $url = DOL_URL_ROOT.'/compta/facture/card.php?facid='.$this->id;
     
    -		if ($short) return $url;
    +        if (!$user->rights->facture->lire)
    +            $option = 'nolink';
     
     		if ($option !== 'nolink')
     		{
    @@ -1169,6 +1215,8 @@ class Facture extends CommonInvoice
     			if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
     		}
     
    +		if ($short) return $url;
    +
     		$picto='bill';
     		if ($this->type == self::TYPE_REPLACEMENT) $picto.='r';	// Replacement invoice
     		if ($this->type == self::TYPE_CREDIT_NOTE) $picto.='a';	// Credit note
    @@ -1190,7 +1238,7 @@ class Facture extends CommonInvoice
                 if (! empty($this->total_tva))
                     $label.= '<br><b>' . $langs->trans('VAT') . ':</b> ' . price($this->total_tva, 0, $langs, 0, -1, -1, $conf->currency);
                 if (! empty($this->total_localtax1) && $this->total_localtax1 != 0)		// We keep test != 0 because $this->total_localtax1 can be '0.00000000'
    -                $label.= '<br><b>eee' . $langs->trans('LT1') . ':</b> ' . price($this->total_localtax1, 0, $langs, 0, -1, -1, $conf->currency);
    +                $label.= '<br><b>' . $langs->trans('LT1') . ':</b> ' . price($this->total_localtax1, 0, $langs, 0, -1, -1, $conf->currency);
                 if (! empty($this->total_localtax2) && $this->total_localtax2 != 0)
                     $label.= '<br><b>' . $langs->trans('LT2') . ':</b> ' . price($this->total_localtax2, 0, $langs, 0, -1, -1, $conf->currency);
                 if (! empty($this->total_ttc))
    @@ -1214,6 +1262,11 @@ class Facture extends CommonInvoice
             $linkstart.=$linkclose.'>';
     		$linkend='</a>';
     
    +        if ($option == 'nolink') {
    +            $linkstart = '';
    +            $linkend = '';
    +        }
    +
     		$result .= $linkstart;
     		if ($withpicto) $result.=img_object(($notooltip?'':$label), $picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
     		if ($withpicto != 2) $result.= ($max?dol_trunc($this->ref,$max):$this->ref);
    @@ -1221,12 +1274,14 @@ class Facture extends CommonInvoice
     
     		if ($addlinktonotes)
     		{
    -		    $txttoshow=($user->societe_id>0?$this->note_public:$this->note_private);
    +		    $txttoshow=($user->socid > 0 ? $this->note_public : $this->note_private);
     		    if ($txttoshow)
     		    {
                     $notetoshow=$langs->trans("ViewPrivateNote").':<br>'.dol_string_nohtmltag($txttoshow,1);
         		    $result.=' <span class="note inline-block">';
    -    		    $result.='<a href="'.DOL_URL_ROOT.'/compta/facture/note.php?id='.$this->id.'" class="classfortooltip" title="'.dol_escape_htmltag($notetoshow).'">'.img_picto('','object_generic').'</a>';
    +    		    $result.='<a href="'.DOL_URL_ROOT.'/compta/facture/note.php?id='.$this->id.'" class="classfortooltip" title="'.dol_escape_htmltag($notetoshow).'">';
    +    		    $result.=img_picto('','note');
    +    		    $result.='</a>';
         		    //$result.=img_picto($langs->trans("ViewNote"),'object_generic');
         		    //$result.='</a>';
         		    $result.='</span>';
    @@ -1252,7 +1307,7 @@ class Facture extends CommonInvoice
     
     		if (empty($rowid) && empty($ref) && empty($ref_ext) && empty($ref_int)) return -1;
     
    -		$sql = 'SELECT f.rowid,f.entity,f.facnumber,f.ref_client,f.ref_ext,f.ref_int,f.type,f.fk_soc,f.amount';
    +		$sql = 'SELECT f.rowid,f.entity,f.ref,f.ref_client,f.ref_ext,f.ref_int,f.type,f.fk_soc,f.amount';
     		$sql.= ', f.tva, f.localtax1, f.localtax2, f.total, f.total_ttc, f.revenuestamp';
     		$sql.= ', f.remise_percent, f.remise_absolue, f.remise';
     		$sql.= ', f.datef as df, f.date_pointoftax';
    @@ -1276,9 +1331,9 @@ class Facture extends CommonInvoice
     		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON f.fk_incoterms = i.rowid';
     
     		if ($rowid)   $sql.= " WHERE f.rowid=".$rowid;
    -		else $sql.= ' WHERE f.entity IN ('.getEntity('facture').')'; // Dont't use entity if you use rowid
    +		else $sql.= ' WHERE f.entity IN ('.getEntity('invoice').')'; // Dont't use entity if you use rowid
     
    -		if ($ref)     $sql.= " AND f.facnumber='".$this->db->escape($ref)."'";
    +		if ($ref)     $sql.= " AND f.ref='".$this->db->escape($ref)."'";
     		if ($ref_ext) $sql.= " AND f.ref_ext='".$this->db->escape($ref_ext)."'";
     		if ($ref_int) $sql.= " AND f.ref_int='".$this->db->escape($ref_int)."'";
     
    @@ -1293,7 +1348,7 @@ class Facture extends CommonInvoice
     				$this->id					= $obj->rowid;
     				$this->entity				= $obj->entity;
     
    -				$this->ref					= $obj->facnumber;
    +				$this->ref					= $obj->ref;
     				$this->ref_client			= $obj->ref_client;
     				$this->ref_ext				= $obj->ref_ext;
     				$this->ref_int				= $obj->ref_int;
    @@ -1302,6 +1357,7 @@ class Facture extends CommonInvoice
     				$this->date_pointoftax		= $this->db->jdate($obj->date_pointoftax);
     				$this->date_creation		= $this->db->jdate($obj->datec);
     				$this->date_validation		= $this->db->jdate($obj->datev);
    +				$this->date_modification		= $this->db->jdate($obj->datem);
     				$this->datem				= $this->db->jdate($obj->datem);
     				$this->remise_percent		= $obj->remise_percent;
     				$this->remise_absolue		= $obj->remise_absolue;
    @@ -1392,6 +1448,7 @@ class Facture extends CommonInvoice
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Load all detailed lines into this->lines
     	 *
    @@ -1399,6 +1456,7 @@ class Facture extends CommonInvoice
     	 */
     	function fetch_lines()
     	{
    +        // phpcs:enable
     		$this->lines=array();
     
     		$sql = 'SELECT l.rowid, l.fk_facture, l.fk_product, l.fk_parent_line, l.label as custom_label, l.description, l.product_type, l.price, l.qty, l.vat_src_code, l.tva_tx,';
    @@ -1537,7 +1595,6 @@ class Facture extends CommonInvoice
     				}
     			}
     		}
    -
     	}
     
     	/**
    @@ -1555,7 +1612,7 @@ class Facture extends CommonInvoice
     
     		// Clean parameters
     		if (empty($this->type)) $this->type= self::TYPE_STANDARD;
    -		if (isset($this->facnumber)) $this->facnumber=trim($this->ref);
    +		if (isset($this->ref)) $this->ref=trim($this->ref);
     		if (isset($this->ref_client)) $this->ref_client=trim($this->ref_client);
     		if (isset($this->increment)) $this->increment=trim($this->increment);
     		if (isset($this->close_code)) $this->close_code=trim($this->close_code);
    @@ -1571,7 +1628,7 @@ class Facture extends CommonInvoice
     
     		// Update request
     		$sql = "UPDATE ".MAIN_DB_PREFIX."facture SET";
    -		$sql.= " facnumber=".(isset($this->ref)?"'".$this->db->escape($this->ref)."'":"null").",";
    +		$sql.= " ref=".(isset($this->ref)?"'".$this->db->escape($this->ref)."'":"null").",";
     		$sql.= " type=".(isset($this->type)?$this->db->escape($this->type):"null").",";
     		$sql.= " ref_client=".(isset($this->ref_client)?"'".$this->db->escape($this->ref_client)."'":"null").",";
     		$sql.= " increment=".(isset($this->increment)?"'".$this->db->escape($this->increment)."'":"null").",";
    @@ -1652,6 +1709,7 @@ class Facture extends CommonInvoice
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Add a discount line into an invoice (as an invoice line) using an existing absolute discount (Consume the discount)
     	 *
    @@ -1660,6 +1718,7 @@ class Facture extends CommonInvoice
     	 */
     	function insert_discount($idremise)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
    @@ -1752,6 +1811,7 @@ class Facture extends CommonInvoice
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set customer ref
     	 *
    @@ -1761,6 +1821,7 @@ class Facture extends CommonInvoice
     	 */
     	function set_ref_client($ref_client, $notrigger=0)
     	{
    +        // phpcs:enable
     	    global $user;
     
     		$error=0;
    @@ -1945,7 +2006,8 @@ class Facture extends CommonInvoice
     
     							if (! dol_delete_file($file,0,0,0,$this)) // For triggers
     							{
    -								$this->error=$langs->trans("ErrorCanNotDeleteFile",$file);
    +								$langs->load("errors");
    +								$this->error=$langs->trans("ErrorFailToDeleteFile",$file);
     								$this->db->rollback();
     								return 0;
     							}
    @@ -1954,7 +2016,8 @@ class Facture extends CommonInvoice
     						{
     							if (! dol_delete_dir_recursive($dir)) // For remove dir and meta
     							{
    -								$this->error=$langs->trans("ErrorCanNotDeleteDir",$dir);
    +								$langs->load("errors");
    +								$this->error=$langs->trans("ErrorFailToDeleteDir",$dir);
     								$this->db->rollback();
     								return 0;
     							}
    @@ -1985,6 +2048,7 @@ class Facture extends CommonInvoice
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Tag la facture comme paye completement (si close_code non renseigne) => this->fk_statut=2, this->paye=1
     	 *  ou partiellement (si close_code renseigne) + appel trigger BILL_PAYED => this->fk_statut=2, this->paye stay 0
    @@ -1996,6 +2060,7 @@ class Facture extends CommonInvoice
     	 */
     	function set_paid($user, $close_code='', $close_note='')
     	{
    +        // phpcs:enable
     		$error=0;
     
     		if ($this->paye != 1)
    @@ -2043,6 +2108,7 @@ class Facture extends CommonInvoice
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Tag la facture comme non payee completement + appel trigger BILL_UNPAYED
     	 *	Fonction utilisee quand un paiement prelevement est refuse,
    @@ -2053,6 +2119,7 @@ class Facture extends CommonInvoice
     	 */
     	function set_unpaid($user)
     	{
    +        // phpcs:enable
     		$error=0;
     
     		$this->db->begin();
    @@ -2090,6 +2157,7 @@ class Facture extends CommonInvoice
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Tag invoice as canceled, with no payment on it (example for replacement invoice or payment never received) + call trigger BILL_CANCEL
     	 *	Warning, if option to decrease stock on invoice was set, this function does not change stock (it might be a cancel because
    @@ -2102,6 +2170,7 @@ class Facture extends CommonInvoice
     	 */
     	function set_canceled($user, $close_code='', $close_note='')
     	{
    +        // phpcs:enable
     
     		dol_syslog(get_class($this)."::set_canceled rowid=".$this->id, LOG_DEBUG);
     
    @@ -2265,7 +2334,7 @@ class Facture extends CommonInvoice
     
     			// Validate
     			$sql = 'UPDATE '.MAIN_DB_PREFIX.'facture';
    -			$sql.= " SET facnumber='".$num."', fk_statut = ".self::STATUS_VALIDATED.", fk_user_valid = ".($user->id > 0 ? $user->id : "null").", date_valid = '".$this->db->idate($now)."'";
    +			$sql.= " SET ref='".$num."', fk_statut = ".self::STATUS_VALIDATED.", fk_user_valid = ".($user->id > 0 ? $user->id : "null").", date_valid = '".$this->db->idate($now)."'";
     			if (! empty($conf->global->FAC_FORCE_DATE_VALIDATION))	// If option enabled, we force invoice date
     			{
     				$sql.= ", datef='".$this->db->idate($this->date)."'";
    @@ -2374,7 +2443,7 @@ class Facture extends CommonInvoice
     			if (! $error)
     			{
     				$this->ref = $num;
    -				$this->facnumber=$num;
    +				$this->ref=$num;
     				$this->statut= self::STATUS_VALIDATED;
     				$this->brouillon=0;
     				$this->date_validation=$now;
    @@ -2393,7 +2462,6 @@ class Facture extends CommonInvoice
         				else $this->situation_final = 1;
     
     				$this->setFinal($user);
    -
                     }
     			}
     		}
    @@ -2453,6 +2521,7 @@ class Facture extends CommonInvoice
     		return true;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set draft status
     	 *
    @@ -2462,6 +2531,7 @@ class Facture extends CommonInvoice
     	 */
     	function set_draft($user,$idwarehouse=-1)
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$error=0;
    @@ -3020,6 +3090,7 @@ class Facture extends CommonInvoice
     		else return $situation_percent < $obj->situation_percent;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Update invoice line with percentage
     	 *
    @@ -3029,9 +3100,10 @@ class Facture extends CommonInvoice
     	 */
     	function update_percent($line, $percent)
     	{
    +        // phpcs:enable
     	    global $mysoc,$user;
     
    -		include_once(DOL_DOCUMENT_ROOT . '/core/lib/price.lib.php');
    +		include_once DOL_DOCUMENT_ROOT . '/core/lib/price.lib.php';
     
     		// Cap percentages to 100
     		if ($percent > 100) $percent = 100;
    @@ -3116,6 +3188,7 @@ class Facture extends CommonInvoice
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set percent discount
     	 *
    @@ -3126,6 +3199,7 @@ class Facture extends CommonInvoice
     	 */
     	function set_remise($user, $remise, $notrigger=0)
     	{
    +        // phpcs:enable
     		// Clean parameters
     		if (empty($remise)) $remise=0;
     
    @@ -3180,6 +3254,7 @@ class Facture extends CommonInvoice
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set absolute discount
     	 *
    @@ -3190,6 +3265,7 @@ class Facture extends CommonInvoice
     	 */
     	function set_remise_absolue($user, $remise, $notrigger=0)
     	{
    +        // phpcs:enable
     		if (empty($remise)) $remise=0;
     
     		if ($user->rights->facture->creer)
    @@ -3270,8 +3346,10 @@ class Facture extends CommonInvoice
     
     			$mybool=false;
     
    +			
     			$file = $conf->global->FACTURE_ADDON.".php";
     			$classname = $conf->global->FACTURE_ADDON;
    +			
     
     			// Include file with class
     			$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
    @@ -3304,7 +3382,7 @@ class Facture extends CommonInvoice
                         }
     				}
     			}
    -
    +			
     			if (! $mybool)
     			{
     				dol_print_error('',"Failed to include file ".$file);
    @@ -3380,6 +3458,7 @@ class Facture extends CommonInvoice
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of invoices (eventually filtered on a user) into an array
     	 *
    @@ -3395,16 +3474,17 @@ class Facture extends CommonInvoice
     	 */
     	function liste_array($shortlist=0, $draft=0, $excluser='', $socid=0, $limit=0, $offset=0, $sortfield='f.datef,f.rowid', $sortorder='DESC')
     	{
    +        // phpcs:enable
     		global $conf,$user;
     
     		$ga = array();
     
     		$sql = "SELECT s.rowid, s.nom as name, s.client,";
    -		$sql.= " f.rowid as fid, f.facnumber as ref, f.datef as df";
    +		$sql.= " f.rowid as fid, f.ref as ref, f.datef as df";
     		if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", sc.fk_soc, sc.fk_user";
     		$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture as f";
     		if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE f.entity = ".$conf->entity;
    +		$sql.= " WHERE f.entity IN (".getEntity('invoice').")";
     		$sql.= " AND f.fk_soc = s.rowid";
     		if (! $user->rights->societe->client->voir && ! $socid) //restriction
     		{
    @@ -3454,6 +3534,7 @@ class Facture extends CommonInvoice
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of invoices qualified to be replaced by another invoice.
     	 *	Invoices matching the following rules are returned:
    @@ -3464,22 +3545,23 @@ class Facture extends CommonInvoice
     	 */
     	function list_replacable_invoices($socid=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$return = array();
     
    -		$sql = "SELECT f.rowid as rowid, f.facnumber, f.fk_statut,";
    +		$sql = "SELECT f.rowid as rowid, f.ref, f.fk_statut,";
     		$sql.= " ff.rowid as rowidnext";
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
     		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiement_facture as pf ON f.rowid = pf.fk_facture";
     		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as ff ON f.rowid = ff.fk_facture_source";
     		$sql.= " WHERE (f.fk_statut = ".self::STATUS_VALIDATED." OR (f.fk_statut = ".self::STATUS_ABANDONED." AND f.close_code = '".self::CLOSECODE_ABANDONED."'))";
    -		$sql.= " AND f.entity = ".$conf->entity;
    +		$sql.= " AND f.entity IN (".getEntity('invoice').")";
     		$sql.= " AND f.paye = 0";					// Pas classee payee completement
     		$sql.= " AND pf.fk_paiement IS NULL";		// Aucun paiement deja fait
     		$sql.= " AND ff.fk_statut IS NULL";			// Renvoi vrai si pas facture de remplacement
     		if ($socid > 0) $sql.=" AND f.fk_soc = ".$socid;
    -		$sql.= " ORDER BY f.facnumber";
    +		$sql.= " ORDER BY f.ref";
     
     		dol_syslog(get_class($this)."::list_replacable_invoices", LOG_DEBUG);
     		$resql=$this->db->query($sql);
    @@ -3488,7 +3570,7 @@ class Facture extends CommonInvoice
     			while ($obj=$this->db->fetch_object($resql))
     			{
     				$return[$obj->rowid]=array(	'id' => $obj->rowid,
    -				'ref' => $obj->facnumber,
    +				'ref' => $obj->ref,
     				'status' => $obj->fk_statut);
     			}
     			//print_r($return);
    @@ -3502,6 +3584,7 @@ class Facture extends CommonInvoice
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of invoices qualified to be corrected by a credit note.
     	 *	Invoices matching the following rules are returned:
    @@ -3512,16 +3595,17 @@ class Facture extends CommonInvoice
     	 */
     	function list_qualified_avoir_invoices($socid=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$return = array();
     
     
    -		$sql = "SELECT f.rowid as rowid, f.facnumber, f.fk_statut, f.type, f.paye, pf.fk_paiement";
    +		$sql = "SELECT f.rowid as rowid, f.ref, f.fk_statut, f.type, f.paye, pf.fk_paiement";
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
     		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiement_facture as pf ON f.rowid = pf.fk_facture";
     		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as ff ON (f.rowid = ff.fk_facture_source AND ff.type=".self::TYPE_REPLACEMENT.")";
    -		$sql.= " WHERE f.entity = ".$conf->entity;
    +		$sql.= " WHERE f.entity IN (".getEntity('invoice').")";
     		$sql.= " AND f.fk_statut in (".self::STATUS_VALIDATED.",".self::STATUS_CLOSED.")";
     		//  $sql.= " WHERE f.fk_statut >= 1";
     		//	$sql.= " AND (f.paye = 1";				// Classee payee completement
    @@ -3546,7 +3630,7 @@ class Facture extends CommonInvoice
     		}
     
     		if ($socid > 0) $sql.=" AND f.fk_soc = ".$socid;
    -		$sql.= " ORDER BY f.facnumber";
    +		$sql.= " ORDER BY f.ref";
     
     		dol_syslog(get_class($this)."::list_qualified_avoir_invoices", LOG_DEBUG);
     		$resql=$this->db->query($sql);
    @@ -3559,9 +3643,9 @@ class Facture extends CommonInvoice
     				if ($obj->fk_statut == self::STATUS_CLOSED) $qualified=1;
     				if ($qualified)
     				{
    -					//$ref=$obj->facnumber;
    +					//$ref=$obj->ref;
     					$paymentornot=($obj->fk_paiement?1:0);
    -					$return[$obj->rowid]=array('ref'=>$obj->facnumber,'status'=>$obj->fk_statut,'type'=>$obj->type,'paye'=>$obj->paye,'paymentornot'=>$paymentornot);
    +					$return[$obj->rowid]=array('ref'=>$obj->ref,'status'=>$obj->fk_statut,'type'=>$obj->type,'paye'=>$obj->paye,'paymentornot'=>$paymentornot);
     				}
     			}
     
    @@ -3575,6 +3659,7 @@ class Facture extends CommonInvoice
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Create a withdrawal request for a standing order.
     	 *  Use the remain to pay excluding all existing open direct debit requests.
    @@ -3585,6 +3670,7 @@ class Facture extends CommonInvoice
     	 */
     	function demande_prelevement($fuser, $amount=0)
     	{
    +        // phpcs:enable
     
     		$error=0;
     
    @@ -3685,6 +3771,7 @@ class Facture extends CommonInvoice
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Supprime une demande de prelevement
     	 *
    @@ -3694,6 +3781,7 @@ class Facture extends CommonInvoice
     	 */
     	function demande_prelevement_delete($fuser, $did)
     	{
    +        // phpcs:enable
     		$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'prelevement_facture_demande';
     		$sql .= ' WHERE rowid = '.$did;
     		$sql .= ' AND traite = 0';
    @@ -3710,6 +3798,7 @@ class Facture extends CommonInvoice
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Load indicators for dashboard (this->nbtodo and this->nbtodolate)
     	 *
    @@ -3718,11 +3807,12 @@ class Facture extends CommonInvoice
     	 */
     	function load_board($user)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		$clause = " WHERE";
     
    -		$sql = "SELECT f.rowid, f.date_lim_reglement as datefin,f.fk_statut";
    +		$sql = "SELECT f.rowid, f.date_lim_reglement as datefin,f.fk_statut, f.total";
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
     		if (!$user->rights->societe->client->voir && !$user->societe_id)
     		{
    @@ -3731,7 +3821,7 @@ class Facture extends CommonInvoice
     			$clause = " AND";
     		}
     		$sql.= $clause." f.paye=0";
    -		$sql.= " AND f.entity = ".$conf->entity;
    +		$sql.= " AND f.entity IN (".getEntity('invoice').")";
     		$sql.= " AND f.fk_statut = ".self::STATUS_VALIDATED;
     		if ($user->societe_id) $sql.= " AND f.fk_soc = ".$user->societe_id;
     
    @@ -3755,6 +3845,7 @@ class Facture extends CommonInvoice
     				$generic_facture->statut = $obj->fk_statut;
     
     				$response->nbtodo++;
    +				$response->total += $obj->total;
     
     				if ($generic_facture->hasDelay()) {
     					$response->nbtodolate++;
    @@ -3954,6 +4045,7 @@ class Facture extends CommonInvoice
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Load indicators for dashboard (this->nbtodo and this->nbtodolate)
     	 *
    @@ -3961,6 +4053,7 @@ class Facture extends CommonInvoice
     	 */
     	function load_state_board()
     	{
    +        // phpcs:enable
     		global $conf, $user;
     
     		$this->nb=array();
    @@ -3976,7 +4069,7 @@ class Facture extends CommonInvoice
     			$sql.= " WHERE sc.fk_user = " .$user->id;
     			$clause = "AND";
     		}
    -		$sql.= " ".$clause." f.entity = ".$conf->entity;
    +		$sql.= " ".$clause." f.entity IN (".getEntity('invoice').")";
     
     		$resql=$this->db->query($sql);
     		if ($resql)
    @@ -4014,7 +4107,7 @@ class Facture extends CommonInvoice
     	 *  @param  int			$hidedetails    Hide details of lines
     	 *  @param  int			$hidedesc       Hide description
     	 *  @param  int			$hideref        Hide ref
    -	 * @param   null|array  $moreparams     Array to provide more information
    +	 *  @param   null|array  $moreparams     Array to provide more information
     	 *	@return int        					<0 if KO, >0 if OK
     	 */
     	public function generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
    @@ -4023,12 +4116,15 @@ class Facture extends CommonInvoice
     
     		$langs->load("bills");
     
    -		if (! dol_strlen($modele)) {
    -
    +		if (! dol_strlen($modele))
    +		{
     			$modele = 'crabe';
    +			$thisTypeConfName = 'FACTURE_ADDON_PDF_'.$this->type;
     
     			if ($this->modelpdf) {
     				$modele = $this->modelpdf;
    +			} elseif (! empty($conf->global->$thisTypeConfName)) {
    +				$modele = $conf->global->$thisTypeConfName;
     			} elseif (! empty($conf->global->FACTURE_ADDON_PDF)) {
     				$modele = $conf->global->FACTURE_ADDON_PDF;
     			}
    @@ -4047,7 +4143,7 @@ class Facture extends CommonInvoice
     	function newCycle()
     	{
     		$sql = 'SELECT max(situation_cycle_ref) FROM ' . MAIN_DB_PREFIX . 'facture as f';
    -		$sql.= " WHERE f.entity in (".getEntity('facture', 0).")";
    +		$sql.= " WHERE f.entity in (".getEntity('invoice', 0).")";
     		$resql = $this->db->query($sql);
     		if ($resql) {
     			if ($resql->num_rows > 0)
    @@ -4067,6 +4163,7 @@ class Facture extends CommonInvoice
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Checks if the invoice is the first of a cycle
     	 *
    @@ -4074,9 +4171,11 @@ class Facture extends CommonInvoice
     	 */
     	function is_first()
     	{
    +        // phpcs:enable
     		return ($this->situation_counter == 1);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Returns an array containing the previous situations as Facture objects
     	 *
    @@ -4084,6 +4183,7 @@ class Facture extends CommonInvoice
     	 */
     	function get_prev_sits()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$sql = 'SELECT rowid FROM ' . MAIN_DB_PREFIX . 'facture';
    @@ -4156,6 +4256,7 @@ class Facture extends CommonInvoice
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Checks if the invoice is the last in its cycle
     	 *
    @@ -4164,6 +4265,7 @@ class Facture extends CommonInvoice
     	 */
     	function is_last_in_cycle()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if (!empty($this->situation_cycle_ref)) {
    @@ -4226,45 +4328,52 @@ class Facture extends CommonInvoice
      */
     class FactureLigne extends CommonInvoiceLine
     {
    -    public $element='facturedet';
    -    public $table_element='facturedet';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='facturedet';
     
    -	var $oldline;
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='facturedet';
    +
    +	public $oldline;
     
     	//! From llx_facturedet
     	//! Id facture
    -	var $fk_facture;
    +	public $fk_facture;
     	//! Id parent line
    -	var $fk_parent_line;
    +	public $fk_parent_line;
     	/**
     	 * @deprecated
     	 */
    -	var $label;
    +	public $label;
     	//! Description ligne
    -	var $desc;
    +	public $desc;
     
    -	var $localtax1_type;	// Local tax 1 type
    -	var $localtax2_type;	// Local tax 2 type
    -	var $fk_remise_except;	// Link to line into llx_remise_except
    -	var $rang = 0;
    +	public $localtax1_type;	// Local tax 1 type
    +	public $localtax2_type;	// Local tax 2 type
    +	public $fk_remise_except;	// Link to line into llx_remise_except
    +	public $rang = 0;
     
    -	var $fk_fournprice;
    -	var $pa_ht;
    -	var $marge_tx;
    -	var $marque_tx;
    +	public $fk_fournprice;
    +	public $pa_ht;
    +	public $marge_tx;
    +	public $marque_tx;
     
    -	var $special_code;	// Liste d'options non cumulabels:
    +	public $special_code;	// Liste d'options non cumulabels:
     	// 1: frais de port
     	// 2: ecotaxe
     	// 3: ??
     
    -	var $origin;
    -	var $origin_id;
    +	public $origin;
    +	public $origin_id;
     
    -	var $fk_code_ventilation = 0;
    +	public $fk_code_ventilation = 0;
     
    -	var $date_start;
    -	var $date_end;
    +	public $date_start;
    +	public $date_end;
     
     	// Ne plus utiliser
     	//var $price;         	// P.U. HT apres remise % de ligne (exemple 80)
    @@ -4275,17 +4384,17 @@ class FactureLigne extends CommonInvoiceLine
     	 * @deprecated
     	 * @see product_ref
     	 */
    -	var $ref;				// Product ref (deprecated)
    -	var $product_ref;       // Product ref
    +	public $ref;				// Product ref (deprecated)
    +	public $product_ref;       // Product ref
     	/**
     	 * @deprecated
     	 * @see product_label
     	 */
    -	var $libelle;      		// Product label (deprecated)
    -	var $product_label;     // Product label
    -	var $product_desc;  	// Description produit
    +	public $libelle;      		// Product label (deprecated)
    +	public $product_label;     // Product label
    +	public $product_desc;  	// Description produit
     
    -	var $skip_update_total; // Skip update price total for special lines
    +	public $skip_update_total; // Skip update price total for special lines
     
     	/**
     	 * @var int Situation advance percentage
    @@ -4298,12 +4407,12 @@ class FactureLigne extends CommonInvoiceLine
     	public $fk_prev_id;
     
     	// Multicurrency
    -	var $fk_multicurrency;
    -	var $multicurrency_code;
    -	var $multicurrency_subprice;
    -	var $multicurrency_total_ht;
    -	var $multicurrency_total_tva;
    -	var $multicurrency_total_ttc;
    +	public $fk_multicurrency;
    +	public $multicurrency_code;
    +	public $multicurrency_subprice;
    +	public $multicurrency_total_ht;
    +	public $multicurrency_total_tva;
    +	public $multicurrency_total_ttc;
     
     	/**
     	 *	Load invoice line from database
    @@ -4335,6 +4444,7 @@ class FactureLigne extends CommonInvoiceLine
     			$objp = $this->db->fetch_object($result);
     
     			$this->rowid				= $objp->rowid;
    +			$this->id					= $objp->rowid;
     			$this->fk_facture			= $objp->fk_facture;
     			$this->fk_parent_line		= $objp->fk_parent_line;
     			$this->label				= $objp->custom_label;
    @@ -4603,7 +4713,6 @@ class FactureLigne extends CommonInvoiceLine
     
     			$this->db->commit();
     			return $this->id;
    -
     		}
     		else
     		{
    @@ -4785,6 +4894,7 @@ class FactureLigne extends CommonInvoiceLine
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *	Update DB line fields total_xxx
     	 *	Used by migration
    @@ -4793,6 +4903,7 @@ class FactureLigne extends CommonInvoiceLine
     	 */
     	function update_total()
     	{
    +        // phpcs:enable
     		$this->db->begin();
     		dol_syslog(get_class($this)."::update_total", LOG_DEBUG);
     
    @@ -4825,6 +4936,7 @@ class FactureLigne extends CommonInvoiceLine
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Returns situation_percent of the previous line.
     	 * Warning: If invoice is a replacement invoice, this->fk_prev_id is id of the replaced line.
    @@ -4835,6 +4947,7 @@ class FactureLigne extends CommonInvoiceLine
     	 */
     	function get_prev_progress($invoiceid, $include_credit_note=true)
     	{
    +        // phpcs:enable
     		if (is_null($this->fk_prev_id) || empty($this->fk_prev_id) || $this->fk_prev_id == "") {
     			return 0;
     		} else {
    diff --git a/htdocs/compta/facture/class/facturestats.class.php b/htdocs/compta/facture/class/facturestats.class.php
    index 434fab6f373..4cf9477613e 100644
    --- a/htdocs/compta/facture/class/facturestats.class.php
    +++ b/htdocs/compta/facture/class/facturestats.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (c) 2005-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -35,7 +35,11 @@ class FactureStats extends Stats
         var $socid;
         var $userid;
     
    -    public $table_element;
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element;
    +	
         var $from;
         var $field;
         var $where;
    @@ -76,7 +80,7 @@ class FactureStats extends Stats
     		}
     
     		$this->where = " f.fk_statut > 0";
    -		$this->where.= " AND f.entity = ".$conf->entity;
    +		$this->where.= " AND f.entity IN (".getEntity('invoice').")";
     		if (!$user->rights->societe->client->voir && !$this->socid) $this->where .= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
     		if ($mode == 'customer') $this->where.=" AND (f.fk_statut <> 3 OR f.close_code <> 'replaced')";	// Exclude replaced invoices as they are duplicated (we count closed invoices for other reasons)
     		if ($this->socid)
    @@ -220,7 +224,5 @@ class FactureStats extends Stats
     
     		return $this->_getAllByProduct($sql);
     	}
    -
    -
     }
     
    diff --git a/htdocs/compta/facture/class/paymentterm.class.php b/htdocs/compta/facture/class/paymentterm.class.php
    index 90a564fa006..55a3e40b55f 100644
    --- a/htdocs/compta/facture/class/paymentterm.class.php
    +++ b/htdocs/compta/facture/class/paymentterm.class.php
    @@ -28,23 +28,38 @@
      */
     class PaymentTerm // extends CommonObject
     {
    -	var $db;							//!< To store db handler
    -	var $error;							//!< To return error code (or message)
    -	var $errors=array();				//!< To return several error codes (or messages)
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
     	//public  $element='c_payment_term';			//!< Id that identify managed objects
     	//public  $table_element='c_payment_term';	//!< Name of table without prefix where object is stored
    -	var $context =array();
    +	public $context =array();
     
    -    var $id;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -	var $code;
    -	var $sortorder;
    -	var $active;
    -	var $libelle;
    -	var $libelle_facture;
    -	var $type_cdr;
    -	var $nbjour;
    -	var $decalage;
    +	public $code;
    +	public $sortorder;
    +	public $active;
    +	public $libelle;
    +	public $libelle_facture;
    +	public $type_cdr;
    +	public $nbjour;
    +	public $decalage;
     
     
     
    @@ -120,18 +135,17 @@ class PaymentTerm // extends CommonObject
             {
                 $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."c_payment_term");
     
    -			if (! $notrigger)
    -			{
    -	            // Uncomment this and change MYOBJECT to your own tag if you
    -	            // want this action call a trigger.
    +	        // Uncomment this and change MYOBJECT to your own tag if you
    +	        // want this action call a trigger.
    +			//if (! $notrigger) {
     
    -	            //// Call triggers
    -	            //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    -	            //$interface=new Interfaces($this->db);
    -	            //$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
    -	            //if ($result < 0) { $error++; $this->errors=$interface->errors; }
    -	            //// End call triggers
    -			}
    +	        //    // Call triggers
    +	        //    include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    +	        //    $interface=new Interfaces($this->db);
    +	        //    $result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
    +	        //    if ($result < 0) { $error++; $this->errors=$interface->errors; }
    +	        //    // End call triggers
    +			//}
             }
     
             // Commit or rollback
    @@ -197,8 +211,6 @@ class PaymentTerm // extends CommonObject
     				$this->type_cdr = $obj->type_cdr;
     				$this->nbjour = $obj->nbjour;
     				$this->decalage = $obj->decalage;
    -
    -
                 }
                 $this->db->free($resql);
     
    @@ -296,21 +308,16 @@ class PaymentTerm // extends CommonObject
     		$resql = $this->db->query($sql);
     		if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
     
    -		if (! $error)
    -		{
    -			if (! $notrigger)
    -			{
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action call a trigger.
    -
    +		// Uncomment this and change MYOBJECT to your own tag if you
    +		// want this action call a trigger.
    +		//if (! $error && ! $notrigger) {
     				// Call triggers
     				//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
     				//$interface=new Interfaces($this->db);
     				//$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
     				//if ($result < 0) { $error++; $this->errors=$interface->errors; }
     				// End call triggers
    -			}
    -		}
    +		//}
     
     		// Commit or rollback
     		if ($error)
    @@ -352,21 +359,16 @@ class PaymentTerm // extends CommonObject
     		$resql = $this->db->query($sql);
         	if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
     
    -		if (! $error)
    -		{
    -			if (! $notrigger)
    -			{
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -		        // want this action call a trigger.
    -
    +		// Uncomment this and change MYOBJECT to your own tag if you
    +		// want this action call a trigger.
    +		//if (! $error && ! $notrigger) {
     		        //// Call triggers
     		        //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
     		        //$interface=new Interfaces($this->db);
     		        //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf);
     		        //if ($result < 0) { $error++; $this->errors=$interface->errors; }
     		        //// End call triggers
    -			}
    -		}
    +		//}
     
             // Commit or rollback
     		if ($error)
    @@ -402,8 +404,6 @@ class PaymentTerm // extends CommonObject
     
     		$object=new PaymentTerm($this->db);
     
    -		$object->context['createfromclone'] = 'createfromclone';
    -
     		$this->db->begin();
     
     		// Load source object
    @@ -415,6 +415,7 @@ class PaymentTerm // extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result=$object->create($user);
     
     		// Other options
    @@ -424,14 +425,11 @@ class PaymentTerm // extends CommonObject
     			$error++;
     		}
     
    -		if (! $error)
    -		{
    +		//if (! $error)
    +		//{
    +		//}
     
    -
    -
    -		}
    -
    -		unset($this->context['createfromclone']);
    +		unset($object->context['createfromclone']);
     
     		// End
     		if (! $error)
    @@ -467,5 +465,4 @@ class PaymentTerm // extends CommonObject
     		$this->nbjour='';
     		$this->decalage='';
     	}
    -
     }
    diff --git a/htdocs/compta/facture/contact.php b/htdocs/compta/facture/contact.php
    index af872a174ca..80277e14741 100644
    --- a/htdocs/compta/facture/contact.php
    +++ b/htdocs/compta/facture/contact.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Patrick Rouillon     <patrick@rouillon.net>
      * Copyright (C) 2005-2009 Destailleur Laurent  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2015 Philippe Grand       <philippe.grand@atoo-net.com>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
    @@ -193,7 +193,7 @@ if ($id > 0 || ! empty($ref))
     
     		$object->totalpaye = $totalpaye;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    -		dol_banner_tab($object, 'ref', $linkback, 1, 'facnumber', 'ref', $morehtmlref, '', 0, '', '', 1);
    +		dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', '', 1);
     
     		dol_fiche_end();
     
    @@ -206,7 +206,6 @@ if ($id > 0 || ! empty($ref))
     		    $res=@include dol_buildpath($reldir.'/contacts.tpl.php');
     		    if ($res) break;
     		}
    -
     	}
     	else
     	{
    @@ -215,6 +214,6 @@ if ($id > 0 || ! empty($ref))
     	}
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/facture/document.php b/htdocs/compta/facture/document.php
    index 828c77f1178..9543b5fe4bf 100644
    --- a/htdocs/compta/facture/document.php
    +++ b/htdocs/compta/facture/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2011 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      * Copyright (C) 2017      Frédéric France       <frederic.france@netlogic.fr>
    @@ -35,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     if (! empty($conf->projet->enabled)) {
    -	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
    +	include_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     }
     
     // Load translation files required by the page
    @@ -78,7 +78,7 @@ if ($object->fetch($id))
      * Actions
      */
     
    -include_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php';
     
     
     /*
    @@ -104,7 +104,7 @@ if ($id > 0 || ! empty($ref))
     
         	$totalpaye = $object->getSommePaiement();
     
    -		// Construit liste des fichiers
    +		// Build file list
     		$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     		$totalsize=0;
     		foreach($filearray as $key => $file)
    @@ -160,7 +160,7 @@ if ($id > 0 || ! empty($ref))
     
     	    $object->totalpaye = $totalpaye;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    -	    dol_banner_tab($object, 'ref', $linkback, 1, 'facnumber', 'ref', $morehtmlref, '', 0);
    +	    dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0);
     
     		print '<div class="fichecenter">';
     		print '<div class="underbanner clearboth"></div>';
    @@ -191,6 +191,6 @@ else
     	print $langs->trans("ErrorUnknown");
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php
    index fb70da42665..c048737b156 100644
    --- a/htdocs/compta/facture/fiche-rec.php
    +++ b/htdocs/compta/facture/fiche-rec.php
    @@ -1,14 +1,14 @@
     <?php
    -/* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2013      Florian Henry	    <florian.henry@open-concept.pro>
    - * Copyright (C) 2013      Juanjo Menent	    <jmenent@2byte.es>
    - * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
    - * Copyright (C) 2012      Cedric Salvador      <csalvador@gpcsolutions.fr>
    - * Copyright (C) 2015      Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
    - * Copyright (C) 2016      Meziane Sof		<virtualsof@yahoo.fr>
    - * Copyright (C) 2017       Frédéric France         <frederic.france@netlogic.fr>
    +/* Copyright (C) 2002-2003  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2013       Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2013       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2015       Jean-François Ferry     <jfefe@aternatik.fr>
    + * Copyright (C) 2012       Cedric Salvador         <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2015       Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2016       Meziane Sof             <virtualsof@yahoo.fr>
    + * Copyright (C) 2017-2018  Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -35,8 +35,8 @@ require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture-rec.class.php';
     require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
     if (! empty($conf->projet->enabled)) {
    -	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
    -	//require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php';
    +	include_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
    +	//include_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php';
     }
     require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php';
     require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
    @@ -94,7 +94,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('facture_rec');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     $permissionnote = $user->rights->facture->creer; // Used by the include of actions_setnotes.inc.php
     $permissiondellink=$user->rights->facture->creer;	// Used by the include of actions_dellink.inc.php
    @@ -263,7 +263,6 @@ if (empty($reshook))
     	if ($action == 'setconditions' && $user->rights->facture->creer)
     	{
     		$result=$object->setPaymentTerms(GETPOST('cond_reglement_id', 'int'));
    -
     	}
     	// Set mode
     	elseif ($action == 'setmode' && $user->rights->facture->creer)
    @@ -546,7 +545,7 @@ if (empty($reshook))
     			}
     			elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
     			{
    -				require_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php';
    +				include_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php';
     
     				$prodcustprice = new Productcustomerprice($db);
     
    @@ -629,12 +628,10 @@ if (empty($reshook))
     					$tmptxt .= $langs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $langs, 0);
     				$tmptxt .= ')';
     				$desc = dol_concatdesc($desc, $tmptxt);
    -
     			}
     
     			$type = $prod->type;
     			$fk_unit = $prod->fk_unit;
    -
     		}
     		else
     		{
    @@ -664,7 +661,7 @@ if (empty($reshook))
     		if ($tva_npr)
     			$info_bits |= 0x01;
     
    -		if (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))
    +		if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS) )&& (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min))))
     		{
     			$mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency));
     			setEventMessages($mesg, null, 'errors');
    @@ -744,7 +741,7 @@ if (empty($reshook))
     		}
     	}
     
    -	elseif ($action == 'updateligne' && $user->rights->facture->creer && ! GETPOST('cancel','alpha'))
    +	elseif ($action == 'updateline' && $user->rights->facture->creer && ! GETPOST('cancel','alpha'))
     	{
     		if (! $object->fetch($id) > 0)	dol_print_error($db);
     		$object->fetch_thirdparty();
    @@ -831,7 +828,7 @@ if (empty($reshook))
     			$label = ((GETPOST('update_label') && GETPOST('product_label')) ? GETPOST('product_label') : '');
     
     			// Check price is not lower than minimum (check is done only for standard or replacement invoices)
    -			if (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min)))
    +			if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS) )&& (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_REPLACEMENT) && $price_min && (price2num($pu_ht) * (1 - price2num(GETPOST('remise_percent')) / 100) < price2num($price_min))))
     			{
     				setEventMessages($langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)), null, 'errors');
     				$error ++;
    @@ -1113,7 +1110,7 @@ if ($action == 'create')
     		// Date next run
     		print "<tr><td>".$langs->trans('NextDateToExecution')."</td><td>";
     		$date_next_execution = isset($date_next_execution) ? $date_next_execution : (GETPOST('remonth') ? dol_mktime(12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')) : -1);
    -		print $form->select_date($date_next_execution, '', 1, 1, '', "add", 1, 1, 1);
    +		print $form->selectDate($date_next_execution, '', 1, 1, '', "add", 1, 1);
     		print "</td></tr>";
     
     		// Number max of generation
    @@ -1338,11 +1335,11 @@ else
     		print '</td><td>';
     		if ($action == 'editmode')
     		{
    -			$form->form_modes_reglement($_SERVER['PHP_SELF'].'?facid='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT');
    +			$form->form_modes_reglement($_SERVER['PHP_SELF'].'?facid='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', 'CRDT', 1, 1);
     		}
     		else
     		{
    -			$form->form_modes_reglement($_SERVER['PHP_SELF'].'?facid='.$object->id, $object->mode_reglement_id, 'none', 'CRDT');
    +			$form->form_modes_reglement($_SERVER['PHP_SELF'].'?facid='.$object->id, $object->mode_reglement_id, 'none');
     		}
     		print '</td></tr>';
     
    @@ -1479,7 +1476,7 @@ else
     			print '<tr><td>';
     			print "<input type='text' name='frequency' value='".$object->frequency."' size='5' />&nbsp;".$form->selectarray('unit_frequency', array('d'=>$langs->trans('Day'), 'm'=>$langs->trans('Month'), 'y'=>$langs->trans('Year')), ($object->unit_frequency?$object->unit_frequency:'m'));
     			print '</td>';
    -			print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
    +			print '<td class="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
     			print '</tr></table></form>';
     		}
     		else
    @@ -1626,7 +1623,7 @@ else
     		// Lines
     		print '	<form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#add' : '#line_' . GETPOST('lineid')) . '" method="POST">
             	<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">
    -        	<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateligne') . '">
    +        	<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateline') . '">
             	<input type="hidden" name="mode" value="">
             	<input type="hidden" name="id" value="' . $object->id . '">
             	';
    @@ -1677,7 +1674,7 @@ else
     			{
     				if (! empty($object->frequency) && $object->nb_gen_max > 0 && ($object->nb_gen_done >= $object->nb_gen_max))
     				{
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("MaxGenerationReached")).'">'.$langs->trans("CreateBill").'</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("MaxGenerationReached")).'">'.$langs->trans("CreateBill").'</a></div>';
     				}
     				else
     				{
    @@ -1687,13 +1684,13 @@ else
     					}
     					else
     					{
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("DateIsNotEnough")).'">'.$langs->trans("CreateBill").'</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("DateIsNotEnough")).'">'.$langs->trans("CreateBill").'</a></div>';
     					}
     				}
     			}
     			else
     			{
    -				print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">'.$langs->trans("CreateBill").'</a></div>';
    +				print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("CreateBill").'</a></div>';
     			}
     		}
     
    @@ -1730,10 +1727,9 @@ else
     
     
     		print '</div></div>';
    -
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/facture/info.php b/htdocs/compta/facture/info.php
    index 8964b85203b..1a329484913 100644
    --- a/htdocs/compta/facture/info.php
    +++ b/htdocs/compta/facture/info.php
    @@ -29,7 +29,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/invoice.lib.php';
     if (! empty($conf->projet->enabled)) {
    -	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
    +	include_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     }
     
     // Load translation files required by the page
    @@ -107,7 +107,7 @@ $morehtmlref.='</div>';
     
     $object->totalpaye = $totalpaye;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    -dol_banner_tab($object, 'ref', $linkback, 1, 'facnumber', 'ref', $morehtmlref, '', 0);
    +dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0);
     
     print '<div class="fichecenter">';
     print '<div class="underbanner clearboth"></div>';
    @@ -122,5 +122,6 @@ print '</div>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/facture/invoicetemplate_list.php b/htdocs/compta/facture/invoicetemplate_list.php
    index b7b985dd73c..be372e8a570 100644
    --- a/htdocs/compta/facture/invoicetemplate_list.php
    +++ b/htdocs/compta/facture/invoicetemplate_list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Florian Henry	    <florian.henry@open-concept.pro>
      * Copyright (C) 2013      Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
    @@ -108,7 +108,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('facture_rec');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     $permissionnote = $user->rights->facture->creer; // Used by the include of actions_setnotes.inc.php
     $permissiondellink=$user->rights->facture->creer;	// Used by the include of actions_dellink.inc.php
    @@ -190,7 +190,6 @@ if (empty($reshook))
         $permtodelete = $user->rights->mymodule->delete;
         $uploaddir = $conf->mymodule->dir_output;
         include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';*/
    -
     }
     
     
    @@ -223,7 +222,7 @@ if (! $user->rights->societe->client->voir && ! $socid) {
     	$sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
     }
     $sql.= " WHERE f.fk_soc = s.rowid";
    -$sql.= ' AND f.entity IN ('.getEntity('facture').')';
    +$sql.= ' AND f.entity IN ('.getEntity('invoice').')';
     if (! $user->rights->societe->client->voir && ! $socid) {
     	$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
     }
    @@ -689,8 +688,8 @@ if ($resql)
     			{
     				if ($i == 1)
     				{
    -					if ($num < $limit) print '<td align="left">'.$langs->trans("Total").'</td>';
    -					else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +					if ($num < $limit) print '<td class="left">'.$langs->trans("Total").'</td>';
    +					else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     				}
     				else print '<td></td>';
     			}
    @@ -709,6 +708,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php
    index 3bec9bbebcb..7a06e6f66df 100644
    --- a/htdocs/compta/facture/list.php
    +++ b/htdocs/compta/facture/list.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004      Eric Seigne           <eric.seigne@ryxeo.com>
      * Copyright (C) 2004-2016 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2015 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani      <acianfa@free.fr>
      * Copyright (C) 2010-2012 Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2012      Christophe Battarel   <christophe.battarel@altairis.fr>
    @@ -12,6 +12,7 @@
      * Copyright (C) 2015      Jean-François Ferry   <jfefe@aternatik.fr>
      * Copyright (C) 2015-2016 Ferran Marcet         <fmarcet@2byte.es>
      * Copyright (C) 2017      Josep Lluís Amador    <joseplluis@lliuretic.cat>
    + * Copyright (C) 2018      Charlene Benke        <charlie@patas-monkey.com>
      *
      * 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
    @@ -88,7 +89,7 @@ $search_country=GETPOST("search_country",'int');
     $search_type_thirdparty=GETPOST("search_type_thirdparty",'int');
     $search_user = GETPOST('search_user','int');
     $search_sale = GETPOST('search_sale','int');
    -$search_day		= GETPOST('search_day','int');
    +$search_day	= GETPOST('search_day','int');
     $search_month	= GETPOST('search_month','int');
     $search_year	= GETPOST('search_year','int');
     $search_day_lim		= GETPOST('search_day_lim','int');
    @@ -117,7 +118,7 @@ $pageprev = $page - 1;
     $pagenext = $page + 1;
     
     // Security check
    -$fieldid = (! empty($ref)?'facnumber':'rowid');
    +$fieldid = (! empty($ref)?'ref':'rowid');
     if (! empty($user->societe_id)) $socid=$user->societe_id;
     $result = restrictedArea($user, 'facture', $id,'','','fk_soc',$fieldid);
     
    @@ -134,11 +135,11 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('facture');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    -	'f.facnumber'=>'Ref',
    +	'f.ref'=>'Ref',
     	'f.ref_client'=>'RefCustomer',
     	'pd.description'=>'Description',
     	's.nom'=>"ThirdParty",
    @@ -148,29 +149,29 @@ if (empty($user->socid)) $fieldstosearchall["f.note_private"]="NotePrivate";
     
     $checkedtypetiers=0;
     $arrayfields=array(
    -	'f.facnumber'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
    -	'f.ref_client'=>array('label'=>$langs->trans("RefCustomer"), 'checked'=>1),
    -	'f.type'=>array('label'=>$langs->trans("Type"), 'checked'=>0),
    -	'f.date'=>array('label'=>$langs->trans("DateInvoice"), 'checked'=>1),
    -	'f.date_lim_reglement'=>array('label'=>$langs->trans("DateDue"), 'checked'=>1),
    -	'p.ref'=>array('label'=>$langs->trans("ProjectRef"), 'checked'=>0, 'enabled'=>(empty($conf->projet->enabled)?0:1)),
    -	's.nom'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1),
    -	's.town'=>array('label'=>$langs->trans("Town"), 'checked'=>1),
    -	's.zip'=>array('label'=>$langs->trans("Zip"), 'checked'=>1),
    -	'state.nom'=>array('label'=>$langs->trans("StateShort"), 'checked'=>0),
    -	'country.code_iso'=>array('label'=>$langs->trans("Country"), 'checked'=>0),
    -	'typent.code'=>array('label'=>$langs->trans("ThirdPartyType"), 'checked'=>$checkedtypetiers),
    -	'f.fk_mode_reglement'=>array('label'=>$langs->trans("PaymentMode"), 'checked'=>1),
    -	'f.total_ht'=>array('label'=>$langs->trans("AmountHT"), 'checked'=>1),
    -	'f.total_vat'=>array('label'=>$langs->trans("AmountVAT"), 'checked'=>0),
    +	'f.ref'=>array('label'=>"Ref", 'checked'=>1),
    +	'f.ref_client'=>array('label'=>"RefCustomer", 'checked'=>1),
    +	'f.type'=>array('label'=>"Type", 'checked'=>0),
    +	'f.date'=>array('label'=>"DateInvoice", 'checked'=>1),
    +	'f.date_lim_reglement'=>array('label'=>"DateDue", 'checked'=>1),
    +	'p.ref'=>array('label'=>"ProjectRef", 'checked'=>0, 'enabled'=>(empty($conf->projet->enabled)?0:1)),
    +	's.nom'=>array('label'=>"ThirdParty", 'checked'=>1),
    +	's.town'=>array('label'=>"Town", 'checked'=>1),
    +	's.zip'=>array('label'=>"Zip", 'checked'=>1),
    +	'state.nom'=>array('label'=>"StateShort", 'checked'=>0),
    +	'country.code_iso'=>array('label'=>"Country", 'checked'=>0),
    +	'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers),
    +	'f.fk_mode_reglement'=>array('label'=>"PaymentMode", 'checked'=>1),
    +	'f.total_ht'=>array('label'=>"AmountHT", 'checked'=>1),
    +	'f.total_vat'=>array('label'=>"AmountVAT", 'checked'=>0),
     	'f.total_localtax1'=>array('label'=>$langs->transcountry("AmountLT1", $mysoc->country_code), 'checked'=>0, 'enabled'=>($mysoc->localtax1_assuj=="1")),
     	'f.total_localtax2'=>array('label'=>$langs->transcountry("AmountLT2", $mysoc->country_code), 'checked'=>0, 'enabled'=>($mysoc->localtax2_assuj=="1")),
    -	'f.total_ttc'=>array('label'=>$langs->trans("AmountTTC"), 'checked'=>0),
    -	'dynamount_payed'=>array('label'=>$langs->trans("Received"), 'checked'=>0),
    -	'rtp'=>array('label'=>$langs->trans("Rest"), 'checked'=>0),
    -	'f.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
    -	'f.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
    -	'f.fk_statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
    +	'f.total_ttc'=>array('label'=>"AmountTTC", 'checked'=>0),
    +	'dynamount_payed'=>array('label'=>"Received", 'checked'=>0),
    +	'rtp'=>array('label'=>"Rest", 'checked'=>0),
    +	'f.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>500),
    +	'f.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>500),
    +	'f.fk_statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000),
     );
     // Extra fields
     if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
    @@ -230,7 +231,6 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter','a
     	$toselect='';
     	$search_array_options=array();
     	$search_categ_cus=0;
    -
     }
     
     if (empty($reshook))
    @@ -270,7 +270,6 @@ if ($massaction == 'withdrawrequest')
     				$totalcreditnotes = $objecttmp->getSumCreditNotesUsed();
     				$totaldeposits = $objecttmp->getSumDepositsUsed();
     				$objecttmp->resteapayer = price2num($objecttmp->total_ttc - $totalpaye - $totalcreditnotes - $totaldeposits,'MT');
    -				$listofbills[] = $objecttmp;
     				if($objecttmp->paye || $objecttmp->resteapayer==0){
     					$error++;
     					setEventMessages($objecttmp->ref.' '.$langs->trans("AlreadyPaid"), $objecttmp->errors, 'errors');
    @@ -302,18 +301,20 @@ if ($massaction == 'withdrawrequest')
     
     				if ($numprlv>0){
     					$error++;
    -					setEventMessages($objecttmp->ref.' '.$langs->trans("RequestAlreadyDone"), $objecttmp->errors, 'errors');
    +					setEventMessages($objecttmp->ref.' '.$langs->trans("RequestAlreadyDone"), $objecttmp->errors, 'warnings');
     				}
    -				if (!empty($objecttmp->mode_reglement_code ) && $objecttmp->mode_reglement_code != 'PRE'){
    +				else if (!empty($objecttmp->mode_reglement_code ) && $objecttmp->mode_reglement_code != 'PRE'){
     					$error++;
     					setEventMessages($objecttmp->ref.' '.$langs->trans("BadPaymentMethod"), $objecttmp->errors, 'errors');
     				}
    -
    +				else {
    +					$listofbills[] = $objecttmp;    // $listofbills will only contains invoices with good payment method and no request already done
    +				}
     			}
     		}
     
    -		//Massive withdraw request
    -		if(!empty($listofbills) && empty($error))
    +		//Massive withdraw request for request with no errors
    +		if(!empty($listofbills))
     		{
     			$nbwithdrawrequestok=0;
     			foreach($listofbills as $aBill)
    @@ -338,7 +339,6 @@ if ($massaction == 'withdrawrequest')
     			}
     		}
     	}
    -
     }
     
     
    @@ -355,11 +355,11 @@ $facturestatic=new Facture($db);
     $formcompany=new FormCompany($db);
     $thirdpartystatic=new Societe($db);
     
    -llxHeader('',$langs->trans('CustomersInvoices'),'EN:Customers_Invoices|FR:Factures_Clients|ES:Facturas_a_clientes');
    +// llxHeader('',$langs->trans('CustomersInvoices'),'EN:Customers_Invoices|FR:Factures_Clients|ES:Facturas_a_clientes');
     
     $sql = 'SELECT';
     if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
    -$sql.= ' f.rowid as id, f.facnumber as ref, f.ref_client, f.type, f.note_private, f.note_public, f.increment, f.fk_mode_reglement, f.total as total_ht, f.tva as total_vat, f.total_ttc,';
    +$sql.= ' f.rowid as id, f.ref, f.ref_client, f.type, f.note_private, f.note_public, f.increment, f.fk_mode_reglement, f.total as total_ht, f.tva as total_vat, f.total_ttc,';
     $sql.= ' f.localtax1 as total_localtax1, f.localtax2 as total_localtax2,';
     $sql.= ' f.datef as df, f.date_lim_reglement as datelimite,';
     $sql.= ' f.paye as paye, f.fk_statut,';
    @@ -400,7 +400,7 @@ if ($search_user > 0)
     	$sql.=", ".MAIN_DB_PREFIX."c_type_contact as tc";
     }
     $sql.= ' WHERE f.fk_soc = s.rowid';
    -$sql.= ' AND f.entity IN ('.getEntity('facture').')';
    +$sql.= ' AND f.entity IN ('.getEntity('invoice').')';
     if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
     if ($search_product_category > 0) $sql.=" AND cp.fk_categorie = ".$db->escape($search_product_category);
     if ($socid > 0) $sql.= ' AND s.rowid = '.$socid;
    @@ -418,24 +418,16 @@ if ($filtre)
     		$sql .= ' AND ' . $db->escape(trim($filt[0])) . ' = ' . $db->escape(trim($filt[1]));
     	}
     }
    -if ($search_ref) $sql .= natural_search('f.facnumber', $search_ref);
    +if ($search_ref) $sql .= natural_search('f.ref', $search_ref);
     if ($search_refcustomer) $sql .= natural_search('f.ref_client', $search_refcustomer);
    -if ($search_type != '' && $search_type >= 0)
    -{
    -	if ($search_type == '0') $sql.=" AND f.type = 0";  // standard
    -	if ($search_type == '1') $sql.=" AND f.type = 1";  // replacement
    -	if ($search_type == '2') $sql.=" AND f.type = 2";  // credit note
    -	if ($search_type == '3') $sql.=" AND f.type = 3";  // deposit
    -	if ($search_type == '4') $sql.=" AND f.type = 4";  // proforma
    -	if ($search_type == '5') $sql.=" AND f.type = 5";  // situation
    -}
    +if ($search_type != '' && $search_type != '-1') $sql.=" AND f.type IN (".$db->escape($search_type).")";
     if ($search_project) $sql .= natural_search('p.ref', $search_project);
     if ($search_societe) $sql .= natural_search('s.nom', $search_societe);
     if ($search_town)  $sql.= natural_search('s.town', $search_town);
     if ($search_zip)   $sql.= natural_search("s.zip",$search_zip);
     if ($search_state) $sql.= natural_search("state.nom",$search_state);
    -if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')';
    -if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')';
    +if ($search_country) $sql .= " AND s.fk_pays IN (".$db->escape($search_country).')';
    +if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$db->escape($search_type_thirdparty).')';
     if ($search_company) $sql .= natural_search('s.nom', $search_company);
     if ($search_montant_ht != '') $sql.= natural_search('f.total', $search_montant_ht, 1);
     if ($search_montant_vat != '') $sql.= natural_search('f.tva', $search_montant_vat, 1);
    @@ -459,34 +451,10 @@ if ($search_status != '-1' && $search_status != '')
     	}
     }
     if ($search_paymentmode > 0) $sql .= " AND f.fk_mode_reglement = ".$db->escape($search_paymentmode);
    -if ($search_month > 0)
    -{
    -	if ($search_year > 0 && empty($search_day))
    -	$sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($search_year,$search_month,false))."' AND '".$db->idate(dol_get_last_day($search_year,$search_month,false))."'";
    -	else if ($search_year > 0 && ! empty($search_day))
    -	$sql.= " AND f.datef BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $search_month, $search_day, $search_year))."' AND '".$db->idate(dol_mktime(23, 59, 59, $search_month, $search_day, $search_year))."'";
    -	else
    -	$sql.= " AND date_format(f.datef, '%m') = '".$search_month."'";
    -}
    -else if ($search_year > 0)
    -{
    -	$sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($search_year,1,false))."' AND '".$db->idate(dol_get_last_day($search_year,12,false))."'";
    -}
    -if ($search_month_lim > 0)
    -{
    -	if ($search_year_lim > 0 && empty($search_day_lim))
    -		$sql.= " AND f.date_lim_reglement BETWEEN '".$db->idate(dol_get_first_day($search_year_lim,$search_month_lim,false))."' AND '".$db->idate(dol_get_last_day($search_year_lim,$search_month_lim,false))."'";
    -	else if ($search_year_lim > 0 && ! empty($search_day_lim))
    -		$sql.= " AND f.date_lim_reglement BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $search_month_lim, $search_day_lim, $search_year_lim))."' AND '".$db->idate(dol_mktime(23, 59, 59, $search_month_lim, $search_day_lim, $search_year_lim))."'";
    -	else
    -		$sql.= " AND date_format(f.date_lim_reglement, '%m') = '".$db->escape($search_month_lim)."'";
    -}
    -else if ($search_year_lim > 0)
    -{
    -	$sql.= " AND f.date_lim_reglement BETWEEN '".$db->idate(dol_get_first_day($search_year_lim,1,false))."' AND '".$db->idate(dol_get_last_day($search_year_lim,12,false))."'";
    -}
    +$sql.= dolSqlDateFilter("f.datef", $search_day, $search_month, $search_year);
    +$sql.= dolSqlDateFilter("f.date_lim_reglement",	$search_day_lim, $search_month_lim, $search_year_lim);
     if ($option == 'late') $sql.=" AND f.date_lim_reglement < '".$db->idate(dol_now() - $conf->facture->client->warning_delay)."'";
    -if ($search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale;
    +if ($search_sale > 0)  $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale;
     if ($search_user > 0)
     {
     	$sql.= " AND ec.fk_c_type_contact = tc.rowid AND tc.element='facture' AND tc.source='internal' AND ec.element_id = f.rowid AND ec.fk_socpeople = ".$search_user;
    @@ -500,7 +468,7 @@ $sql.=$hookmanager->resPrint;
     
     if (! $sall)
     {
    -	$sql.= ' GROUP BY f.rowid, f.facnumber, ref_client, f.type, f.note_private, f.note_public, f.increment, f.fk_mode_reglement, f.total, f.tva, f.total_ttc,';
    +	$sql.= ' GROUP BY f.rowid, f.ref, ref_client, f.type, f.note_private, f.note_public, f.increment, f.fk_mode_reglement, f.total, f.tva, f.total_ttc,';
     	$sql.= ' f.localtax1, f.localtax2,';
     	$sql.= ' f.datef, f.date_lim_reglement,';
     	$sql.= ' f.paye, f.fk_statut,';
    @@ -541,15 +509,26 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
     }
     
     $sql.= $db->plimit($limit+1,$offset);
    -//print $sql;
     
     $resql = $db->query($sql);
    +
     if ($resql)
     {
     	$num = $db->num_rows($resql);
     
     	$arrayofselected=is_array($toselect)?$toselect:array();
     
    +	if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall)
    +	{
    +		$obj = $db->fetch_object($resql);
    +		$id = $obj->id;
    +
    +		header("Location: ".DOL_URL_ROOT.'/compta/facture/card.php?facid='.$id);
    +		exit;
    +	}
    +
    +	llxHeader('',$langs->trans('CustomersInvoices'),'EN:Customers_Invoices|FR:Factures_Clients|ES:Facturas_a_clientes');
    +
     	if ($socid)
     	{
     		$soc = new Societe($db);
    @@ -593,8 +572,9 @@ if ($resql)
     
     	$arrayofmassactions=array(
     		'validate'=>$langs->trans("Validate"),
    -		'presend'=>$langs->trans("SendByMail"),
    +		'generate_doc'=>$langs->trans("ReGeneratePDF"),
     		'builddoc'=>$langs->trans("PDFMerge"),
    +		'presend'=>$langs->trans("SendByMail"),
     	);
     	if ($conf->prelevement->enabled) {
             	$langs->load("withdrawals");
    @@ -704,7 +684,7 @@ if ($resql)
     	// Filters lines
     	print '<tr class="liste_titre_filter">';
     	// Ref
    -	if (! empty($arrayfields['f.facnumber']['checked']))
    +	if (! empty($arrayfields['f.ref']['checked']))
     	{
     		print '<td class="liste_titre" align="left">';
     		print '<input class="flat" size="6" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).'">';
    @@ -751,7 +731,7 @@ if ($resql)
     		if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="search_day_lim" value="'.dol_escape_htmltag($search_day_lim).'">';
     		print '<input class="flat valignmiddle width25" type="text" size="1" maxlength="2" name="search_month_lim" value="'.dol_escape_htmltag($search_month_lim).'">';
     		$formother->select_year($search_year_lim?$search_year_lim:-1,'search_year_lim',1, 20, 5, 0, 0, '', 'widthauto valignmiddle');
    -		print '<br><input type="checkbox" name="search_option" value="late"'.($option == 'late'?' checked':'').'> '.$langs->trans("Late");
    +		print '<br><input type="checkbox" name="search_option" value="late"'.($option == 'late'?' checked':'').'> '.$langs->trans("Alert");
     		print '</td>';
     	}
     	// Project
    @@ -876,7 +856,7 @@ if ($resql)
     	print "</tr>\n";
     
     	print '<tr class="liste_titre">';
    -	if (! empty($arrayfields['f.facnumber']['checked']))          print_liste_field_titre($arrayfields['f.facnumber']['label'],$_SERVER['PHP_SELF'],'f.facnumber','',$param,'',$sortfield,$sortorder);
    +	if (! empty($arrayfields['f.ref']['checked']))          print_liste_field_titre($arrayfields['f.ref']['label'],$_SERVER['PHP_SELF'],'f.ref','',$param,'',$sortfield,$sortorder);
     	if (! empty($arrayfields['f.ref_client']['checked']))         print_liste_field_titre($arrayfields['f.ref_client']['label'],$_SERVER["PHP_SELF"],'f.ref_client','',$param,'',$sortfield,$sortorder);
     	if (! empty($arrayfields['f.type']['checked']))               print_liste_field_titre($arrayfields['f.type']['label'],$_SERVER["PHP_SELF"],'f.type','',$param,'',$sortfield,$sortorder);
     	if (! empty($arrayfields['f.date']['checked']))               print_liste_field_titre($arrayfields['f.date']['label'],$_SERVER['PHP_SELF'],'f.datef','',$param,'align="center"',$sortfield,$sortorder);
    @@ -920,9 +900,13 @@ if ($resql)
     			$obj = $db->fetch_object($resql);
     
     			$datelimit=$db->jdate($obj->datelimite);
    +
     			$facturestatic->id=$obj->id;
     			$facturestatic->ref=$obj->ref;
     			$facturestatic->type=$obj->type;
    +            $facturestatic->total_ht=$obj->total_ht;
    +            $facturestatic->total_tva=$obj->total_vat;
    +            $facturestatic->total_ttc=$obj->total_ttc;
     			$facturestatic->statut=$obj->fk_statut;
     			$facturestatic->total_ttc=$obj->total_ttc;
                 $facturestatic->paye=$obj->paye;
    @@ -954,18 +938,16 @@ if ($resql)
     			}
     
     			print '<tr class="oddeven">';
    -			if (! empty($arrayfields['f.facnumber']['checked']))
    +			if (! empty($arrayfields['f.ref']['checked']))
     			{
     				print '<td class="nowrap">';
     
     				print '<table class="nobordernopadding"><tr class="nocellnopadd">';
     
    -				print '<td class="nobordernopadding nowrap">';
    +				print '<td class="nobordernopadding nowraponall">';
     				print $facturestatic->getNomUrl(1,'',200,0,'',0,1);
     				print empty($obj->increment)?'':' ('.$obj->increment.')';
    -				print '</td>';
     
    -				print '<td style="min-width: 20px" class="nobordernopadding nowrap">';
     				$filename=dol_sanitizeFileName($obj->ref);
     				$filedir=$conf->facture->dir_output . '/' . dol_sanitizeFileName($obj->ref);
     				$urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->id;
    @@ -1011,7 +993,7 @@ if ($resql)
     				print '<td align="center" class="nowrap">'.dol_print_date($datelimit,'day');
     				if ($facturestatic->hasDelay())
     				{
    -					print img_warning($langs->trans('Late'));
    +				    print img_warning($langs->trans('Alert').' - '.$langs->trans('Late'));
     				}
     				print '</td>';
     				if (! $i) $totalarray['nbfield']++;
    @@ -1075,11 +1057,20 @@ if ($resql)
     			if (! empty($arrayfields['typent.code']['checked']))
     			{
     				print '<td align="center">';
    -				if (count($typenArray)==0) $typenArray = $formcompany->typent_array(1);
    +				if (! is_array($typenArray) || count($typenArray)==0) $typenArray = $formcompany->typent_array(1);
     				print $typenArray[$obj->typent_code];
     				print '</td>';
     				if (! $i) $totalarray['nbfield']++;
     			}
    +			// Staff
    +			if (! empty($arrayfields['staff.code']['checked']))
    +			{
    +				print '<td align="center">';
    +				if (! is_array($staffArray) || count($staffArray)==0) $staffArray = $formcompany->effectif_array(1);
    +				print $staffArray[$obj->staff_code];
    +				print '</td>';
    +				if (! $i) $totalarray['nbfield']++;
    +			}
     
     			// Payment mode
     			if (! empty($arrayfields['f.fk_mode_reglement']['checked']))
    @@ -1211,8 +1202,8 @@ if ($resql)
     			   $i++;
     			   if ($i == 1)
     			   {
    -					if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
    -					else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +					if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +					else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     			   }
     			   elseif ($totalarray['totalhtfield'] == $i)  print '<td align="right">'.price($totalarray['totalht']).'</td>';
     			   elseif ($totalarray['totalvatfield'] == $i) print '<td align="right">'.price($totalarray['totalvat']).'</td>';
    @@ -1224,7 +1215,6 @@ if ($resql)
     			   else print '<td></td>';
     			}
     			print '</tr>';
    -
     		}
     	}
     
    @@ -1257,5 +1247,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/facture/note.php b/htdocs/compta/facture/note.php
    index 58fc26030b7..48b74e532c2 100644
    --- a/htdocs/compta/facture/note.php
    +++ b/htdocs/compta/facture/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Florian Henry		<florian.henry@open-concept.pro>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
    @@ -130,7 +130,7 @@ if ($id > 0 || ! empty($ref))
     
         $object->totalpaye = $totalpaye;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    -    dol_banner_tab($object, 'ref', $linkback, 1, 'facnumber', 'ref', $morehtmlref, '', 0);
    +    dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0);
     
     	print '<div class="fichecenter">';
     	print '<div class="underbanner clearboth"></div>';
    @@ -142,7 +142,6 @@ if ($id > 0 || ! empty($ref))
     	dol_fiche_end();
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/facture/prelevement.php b/htdocs/compta/facture/prelevement.php
    index ecde973bd3b..07e8678e447 100644
    --- a/htdocs/compta/facture/prelevement.php
    +++ b/htdocs/compta/facture/prelevement.php
    @@ -2,9 +2,10 @@
     /* Copyright (C) 2002-2005	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004       Eric Seigne				<eric.seigne@ryxeo.com>
      * Copyright (C) 2004-2016  Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012  Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2010-2014  Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2017       Ferran Marcet			<fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -45,7 +46,7 @@ $ref=GETPOST('ref','alpha');
     $socid=GETPOST('socid','int');
     $action=GETPOST('action','alpha');
     
    -$fieldid = (! empty($ref)?'facnumber':'rowid');
    +$fieldid = (! empty($ref)?'ref':'rowid');
     if ($user->societe_id) $socid=$user->societe_id;
     $result = restrictedArea($user, 'facture', $id, '', '', 'fk_soc', $fieldid);
     
    @@ -208,7 +209,7 @@ if ($object->id > 0)
     
     	$object->totalpaye = $totalpaye;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    -	dol_banner_tab($object, 'ref', $linkback, 1, 'facnumber', 'ref', $morehtmlref, '', 0, '', '');
    +	dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', '');
     
     	print '<div class="fichecenter">';
     	print '<div class="fichehalfleft">';
    @@ -402,17 +403,17 @@ if ($object->id > 0)
     	if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency))
     	{
     	    // Multicurrency Amount HT
    -	    print '<tr><td class="titlefieldmiddle">' . fieldLabel('MulticurrencyAmountHT','multicurrency_total_ht') . '</td>';
    +	    print '<tr><td class="titlefieldmiddle">' . $form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0) . '</td>';
     	    print '<td class="nowrap">' . price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     	    print '</tr>';
     
     	    // Multicurrency Amount VAT
    -	    print '<tr><td>' . fieldLabel('MulticurrencyAmountVAT','multicurrency_total_tva') . '</td>';
    +	    print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0) . '</td>';
     	    print '<td class="nowrap">' . price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     	    print '</tr>';
     
     	    // Multicurrency Amount TTC
    -	    print '<tr><td>' . fieldLabel('MulticurrencyAmountTTC','multicurrency_total_ttc') . '</td>';
    +	    print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0) . '</td>';
     	    print '<td class="nowrap">' . price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     	    print '</tr>';
     	}
    @@ -542,22 +543,22 @@ if ($object->id > 0)
         		}
         		else
         		{
    -    			print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
    +    			print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
         		}
     	    }
     	    else
             {
    -            print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("AmountMustBePositive")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
    +            print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("AmountMustBePositive")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
             }
     	}
     	else
     	{
     		if ($num == 0)
     		{
    -			if ($object->statut > Facture::STATUS_DRAFT) print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("AlreadyPaid")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
    -			else print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("Draft")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
    +			if ($object->statut > Facture::STATUS_DRAFT) print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("AlreadyPaid")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
    +			else print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("Draft")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
     		}
    -		else print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("RequestAlreadyDone")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
    +		else print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("RequestAlreadyDone")).'">'.$langs->trans("MakeWithdrawRequest").'</a>';
     	}
     
     	print "</div><br>\n";
    @@ -574,7 +575,7 @@ if ($object->id > 0)
     	print '<table class="noborder" width="100%">';
     
     	print '<tr class="liste_titre">';
    -	print '<td align="left">'.$langs->trans("DateRequest").'</td>';
    +	print '<td class="left">'.$langs->trans("DateRequest").'</td>';
     	print '<td align="center">'.$langs->trans("User").'</td>';
     	print '<td align="center">'.$langs->trans("Amount").'</td>';
     	print '<td align="center">'.$langs->trans("WithdrawalReceipt").'</td>';
    @@ -606,7 +607,7 @@ if ($object->id > 0)
     			$obj = $db->fetch_object($result_sql);
     
     			print '<tr class="oddeven">';
    -			print '<td align="left">'.dol_print_date($db->jdate($obj->date_demande),'day')."</td>\n";
    +			print '<td class="left">'.dol_print_date($db->jdate($obj->date_demande),'day')."</td>\n";
     			print '<td align="center"><a href="'.DOL_URL_ROOT.'/user/card.php?id='.$obj->user_id.'">'.img_object($langs->trans("ShowUser"),'user').' '.$obj->login.'</a></td>';
     			print '<td align="center">'.price($obj->amount).'</td>';
     			print '<td align="center">-</td>';
    @@ -656,7 +657,7 @@ if ($object->id > 0)
     
     			print '<tr class="oddeven">';
     
    -			print '<td align="left">'.dol_print_date($db->jdate($obj->date_demande),'day')."</td>\n";
    +			print '<td class="left">'.dol_print_date($db->jdate($obj->date_demande),'day')."</td>\n";
     
     			print '<td align="center"><a href="'.DOL_URL_ROOT.'/user/card.php?id='.$obj->user_id.'">'.img_object($langs->trans("ShowUser"),'user').' '.$obj->login.'</a></td>';
     
    @@ -696,6 +697,6 @@ if ($object->id > 0)
     	print '</div>';
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/facture/stats/index.php b/htdocs/compta/facture/stats/index.php
    index 0416e04f7b0..0b0520b4737 100644
    --- a/htdocs/compta/facture/stats/index.php
    +++ b/htdocs/compta/facture/stats/index.php
    @@ -255,7 +255,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     	print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
     	print '</td></tr>';
     	// Status
    -	print '<tr><td align="left">'.$langs->trans("Status").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("Status").'</td><td class="left">';
     	if ($mode == 'customer')
     	{
     	    $liststatus=array('0'=>$langs->trans("BillStatusDraft"), '1'=>$langs->trans("BillStatusNotPaid"), '2'=>$langs->trans("BillStatusPaid"), '3'=>$langs->trans("BillStatusCanceled"));
    @@ -280,6 +280,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     	print '<br><br>';
     //}
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre" height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
    @@ -323,7 +324,7 @@ foreach ($data as $val)
     }
     
     print '</table>';
    -
    +print '</div>';
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
     
    @@ -347,7 +348,6 @@ print '<div style="clear:both"></div>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php b/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php
    index 1a55771b963..d57d594beac 100644
    --- a/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2013		Juanjo Menent <jmenent@2byte.es>
      * Copyright (C) 2014       Marcos García <marcosgdf@gmail.com>
      *
    @@ -47,8 +47,8 @@ foreach($linkedObjectBlock as $key => $objectlink)
         if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass.=' liste_sub_total';
     ?>
     	<tr class="<?php echo $trclass; ?>" data-element="<?php echo $objectlink->element; ?>"  data-id="<?php echo $objectlink->id; ?>" >
    -        <td class="linkedcol-element" ><?php echo $langs->trans("CustomerInvoice"); ?></td>
    -        <td class="linkedcol-name" ><?php echo $objectlink->getNomUrl(1); ?></td>
    +        <td class="linkedcol-element"><?php echo $langs->trans("CustomerInvoice"); ?></td>
    +        <td class="linkedcol-name"><?php echo $objectlink->getNomUrl(1); ?></td>
         	<td class="linkedcol-ref" align="center"><?php echo $objectlink->ref_client; ?></td>
         	<td class="linkedcol-date" align="center"><?php echo dol_print_date($objectlink->date,'day'); ?></td>
         	<td class="linkedcol-amount" align="right"><?php
    diff --git a/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php b/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php
    index 5f224bc2026..f0214080797 100644
    --- a/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php
    +++ b/htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2013		Juanjo Menent <jmenent@2byte.es>
      * Copyright (C) 2014       Marcos García <marcosgdf@gmail.com>
      *
    @@ -47,24 +47,34 @@ foreach($linkedObjectBlock as $key => $objectlink)
         if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass.=' liste_sub_total';
     ?>
     <tr class="<?php echo $trclass; ?>" >
    -    <td><?php echo $langs->trans("RepeatableInvoice"); ?></td>
    -    <td><?php echo $objectlink->getNomUrl(1); ?></td>
    -	<td align="center"></td>
    -	<td align="center"><?php echo dol_print_date($objectlink->date_when,'day'); ?></td>
    -	<td align="right"><?php
    +    <td class="linkedcol-element"><?php echo $langs->trans("RepeatableInvoice"); ?></td>
    +    <td class="linkedcol-name"><?php echo $objectlink->getNomUrl(1); ?></td>
    +	<td class="linkedcol-ref" align="center"></td>
    +	<td class="linkedcol-date" align="center"><?php echo dol_print_date($objectlink->date_when,'day'); ?></td>
    +	<td class="linkedcol-amount" align="right"><?php
     		if ($user->rights->facture->lire) {
     			$total = $total + $objectlink->total_ht;
     			echo price($objectlink->total_ht);
     		} ?></td>
    -	<td align="right">
    -	<?php
    -		print $objectlink->getLibStatut(3);
    -	?>
    -	</td>
    -	<td align="right"><a href="<?php echo $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=dellink&dellinkid='.$key; ?>"><?php echo img_picto($langs->transnoentitiesnoconv("RemoveLink"), 'unlink'); ?></a></td>
    +	<td class="linkedcol-statut" align="right"><?php echo $objectlink->getLibStatut(3); ?></td>
    +	<td class="linkedcol-action" align="right"><a href="<?php echo $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=dellink&dellinkid='.$key; ?>"><?php echo img_picto($langs->transnoentitiesnoconv("RemoveLink"), 'unlink'); ?></a></td>
     </tr>
     <?php
     }
    +if (count($linkedObjectBlock) > 1)
    +{
    +	?>
    +    <tr class="liste_total <?php echo (empty($noMoreLinkedObjectBlockAfter)?'liste_sub_total':''); ?>">
    +        <td><?php echo $langs->trans("Total"); ?></td>
    +        <td></td>
    +    	<td align="center"></td>
    +    	<td align="center"></td>
    +    	<td align="right"><?php echo price($total); ?></td>
    +    	<td align="right"></td>
    +    	<td align="right"></td>
    +    </tr>
    +    <?php
    +}
     ?>
     
     <!-- END PHP TEMPLATE -->
    \ No newline at end of file
    diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php
    index ea43c270b5f..e05095b2ea4 100644
    --- a/htdocs/compta/index.php
    +++ b/htdocs/compta/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015-2016 Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      * Copyright (C) 2015      Raphaël Doursenaud   <rdoursenaud@gpcsolutions.fr>
    @@ -136,7 +136,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS))     // This is usele
      */
     if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     {
    -    $sql = "SELECT f.facnumber";
    +    $sql = "SELECT f.ref";
         $sql.= ", f.rowid, f.total as total_ht, f.tva as total_tva, f.total_ttc, f.ref_client";
         $sql.= ", f.type";
         $sql.= ", s.nom as name";
    @@ -146,7 +146,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     	$sql.= " FROM ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."societe as s";
     	if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
     	$sql.= " WHERE s.rowid = f.fk_soc AND f.fk_statut = 0";
    -	$sql.= " AND f.entity = ".$conf->entity;
    +	$sql.= " AND f.entity IN (".getEntity('invoice').")";
     	if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
     
     	if ($socid)
    @@ -162,7 +162,6 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     
     	if ( $resql )
     	{
    -		$var = false;
     		$num = $db->num_rows($resql);
     
     		print '<table class="noborder" width="100%">';
    @@ -178,7 +177,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     			{
     				$obj = $db->fetch_object($resql);
     
    -				$facturestatic->ref=$obj->facnumber;
    +				$facturestatic->ref=$obj->ref;
     				$facturestatic->id=$obj->rowid;
     				$facturestatic->total_ht=$obj->total_ht;
     				$facturestatic->total_tva=$obj->total_tva;
    @@ -205,10 +204,9 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     				print '</tr>';
     				$tot_ttc+=$obj->total_ttc;
     				$i++;
    -
     			}
     
    -			print '<tr class="liste_total"><td align="left">'.$langs->trans("Total").'</td>';
    +			print '<tr class="liste_total"><td class="left">'.$langs->trans("Total").'</td>';
     			print '<td colspan="2" align="right">'.price($tot_ttc).'</td>';
     			print '</tr>';
     		}
    @@ -238,7 +236,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
         $sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn as f, ".MAIN_DB_PREFIX."societe as s LEFT JOIN ".MAIN_DB_PREFIX."c_country as cc ON cc.rowid = s.fk_pays";
     	if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
     	$sql.= " WHERE s.rowid = f.fk_soc AND f.fk_statut = 0";
    -	$sql.= " AND f.entity = ".$conf->entity;
    +	$sql.= " AND f.entity IN (".getEntity('invoice').')';
     	if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
     	if ($socid)	$sql.= " AND f.fk_soc = ".$socid;
     	// Add where from hooks
    @@ -295,7 +293,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
     				$i++;
     			}
     
    -			print '<tr class="liste_total"><td align="left">'.$langs->trans("Total").'</td>';
    +			print '<tr class="liste_total"><td class="left">'.$langs->trans("Total").'</td>';
     			print '<td colspan="2" align="right">'.price($tot_ttc).'</td>';
     			print '</tr>';
     		}
    @@ -322,7 +320,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     	$langs->load("boxes");
     	$facstatic=new Facture($db);
     
    -	$sql = "SELECT f.rowid, f.facnumber, f.fk_statut, f.type, f.total as total_ht, f.tva as total_tva, f.total_ttc, f.paye, f.tms";
    +	$sql = "SELECT f.rowid, f.ref, f.fk_statut, f.type, f.total as total_ht, f.tva as total_tva, f.total_ttc, f.paye, f.tms";
     	$sql.= ", f.date_lim_reglement as datelimite";
     	$sql.= ", s.nom as name";
         $sql.= ", s.rowid as socid";
    @@ -333,7 +331,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiement_facture as pf on f.rowid=pf.fk_facture";
     	if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
     	$sql.= " WHERE s.rowid = f.fk_soc";
    -	$sql.= " AND f.entity = ".$conf->entity;
    +	$sql.= " AND f.entity IN (".getEntity('invoice').")";
     	if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
     	if ($socid) $sql.= " AND f.fk_soc = ".$socid;
     	// Add where from hooks
    @@ -341,7 +339,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     	$reshook=$hookmanager->executeHooks('printFieldListWhereCustomerLastModified',$parameters);
     	$sql.=$hookmanager->resPrint;
     
    -	$sql.= " GROUP BY f.rowid, f.facnumber, f.fk_statut, f.type, f.total, f.tva, f.total_ttc, f.paye, f.tms, f.date_lim_reglement,";
    +	$sql.= " GROUP BY f.rowid, f.ref, f.fk_statut, f.type, f.total, f.tva, f.total_ttc, f.paye, f.tms, f.date_lim_reglement,";
     	$sql.= " s.nom, s.rowid, s.code_client, s.code_compta, s.email,";
     	$sql.= " cc.rowid, cc.code";
     	$sql.= " ORDER BY f.tms DESC ";
    @@ -350,7 +348,6 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     	$resql = $db->query($sql);
     	if ($resql)
     	{
    -		$var=false;
     		$num = $db->num_rows($resql);
     		$i = 0;
     
    @@ -368,7 +365,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     			{
     				$obj = $db->fetch_object($resql);
     
    -				$facturestatic->ref=$obj->facnumber;
    +				$facturestatic->ref=$obj->ref;
     				$facturestatic->id=$obj->rowid;
     				$facturestatic->total_ht=$obj->total_ht;
     				$facturestatic->total_tva=$obj->total_tva;
    @@ -402,14 +399,14 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     				}
     				print '</td>';
     				print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';
    -				$filename=dol_sanitizeFileName($obj->facnumber);
    -				$filedir=$conf->facture->dir_output . '/' . dol_sanitizeFileName($obj->facnumber);
    +				$filename=dol_sanitizeFileName($obj->ref);
    +				$filedir=$conf->facture->dir_output . '/' . dol_sanitizeFileName($obj->ref);
     				$urlsource=$_SERVER['PHP_SELF'].'?facid='.$obj->rowid;
     				print $formfile->getDocumentsLink($facturestatic->element, $filename, $filedir);
     				print '</td></tr></table>';
     
     				print '</td>';
    -				print '<td align="left">';
    +				print '<td class="left">';
                     print $thirdpartystatic->getNomUrl(1,'customer',44);
     				print '</td>';
     				if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print '<td align="right">'.price($obj->total_ht).'</td>';
    @@ -473,7 +470,6 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
     	$resql=$db->query($sql);
     	if ($resql)
     	{
    -		$var=false;
     		$num = $db->num_rows($resql);
     
     		print '<table class="noborder" width="100%">';
    @@ -520,7 +516,6 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
     				$total_ttc +=  $obj->total_ttc;
     				$totalam +=  $obj->am;
     				$i++;
    -				$var = !$var;
     			}
     		}
     		else
    @@ -600,7 +595,6 @@ if (! empty($conf->don->enabled) && $user->rights->societe->lire)
     
     				$i++;
     			}
    -
     		}
     		else
     		{
    @@ -642,7 +636,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
     
     			print '<table class="noborder" width="100%">';
     			print '<tr class="liste_titre">';
    -			print '<th>'.$langs->trans("ContributionsToPay").($num?' <a href="'.DOL_URL_ROOT.'/compta/sociales/index.php?status=0"><span class="badge">'.$num.'</span></a>':'').'</th>';
    +			print '<th>'.$langs->trans("ContributionsToPay").($num?' <a href="'.DOL_URL_ROOT.'/compta/sociales/list.php?status=0"><span class="badge">'.$num.'</span></a>':'').'</th>';
     			print '<th align="center">'.$langs->trans("DateDue").'</th>';
     			print '<th align="right">'.$langs->trans("AmountTTC").'</th>';
     			print '<th align="right">'.$langs->trans("Paid").'</th>';
    @@ -780,7 +774,7 @@ if (! empty($conf->facture->enabled) && ! empty($conf->commande->enabled) && $us
     
     				print '</td>';
     
    -				print '<td align="left">';
    +				print '<td class="left">';
                     print $societestatic->getNomUrl(1,'customer',44);
     				print '</td>';
     				if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print '<td align="right">'.price($obj->total_ht).'</td>';
    @@ -793,7 +787,6 @@ if (! empty($conf->facture->enabled) && ! empty($conf->commande->enabled) && $us
     				//print "x".$tot_ttc."z".$obj->tot_fttc;
     				$tot_tobill += ($obj->total_ttc-$obj->tot_fttc);
     				$i++;
    -
     			}
     
     			print '<tr class="liste_total"><td colspan="2">'.$langs->trans("Total").' &nbsp; <font style="font-weight: normal">('.$langs->trans("RemainderToBill").': '.price($tot_tobill).')</font> </td>';
    @@ -819,7 +812,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     {
     	$facstatic=new Facture($db);
     
    -	$sql = "SELECT f.rowid, f.facnumber, f.fk_statut, f.datef, f.type, f.total as total_ht, f.tva as total_tva, f.total_ttc, f.paye, f.tms";
    +	$sql = "SELECT f.rowid, f.ref, f.fk_statut, f.datef, f.type, f.total as total_ht, f.tva as total_tva, f.total_ttc, f.paye, f.tms";
     	$sql.= ", f.date_lim_reglement as datelimite";
     	$sql.= ", s.nom as name";
         $sql.= ", s.rowid as socid, s.email";
    @@ -830,7 +823,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiement_facture as pf on f.rowid=pf.fk_facture";
     	if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
     	$sql.= " WHERE s.rowid = f.fk_soc AND f.paye = 0 AND f.fk_statut = 1";
    -	$sql.= " AND f.entity = ".$conf->entity;
    +	$sql.= " AND f.entity IN (".getEntity('invoice').')';
     	if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
     	if ($socid) $sql.= " AND f.fk_soc = ".$socid;
     	// Add where from hooks
    @@ -838,9 +831,9 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     	$reshook=$hookmanager->executeHooks('printFieldListWhereCustomerUnpaid',$parameters);
     	$sql.=$hookmanager->resPrint;
     
    -	$sql.= " GROUP BY f.rowid, f.facnumber, f.fk_statut, f.datef, f.type, f.total, f.tva, f.total_ttc, f.paye, f.tms, f.date_lim_reglement,";
    +	$sql.= " GROUP BY f.rowid, f.ref, f.fk_statut, f.datef, f.type, f.total, f.tva, f.total_ttc, f.paye, f.tms, f.date_lim_reglement,";
     	$sql.= " s.nom, s.rowid, s.email, s.code_client, s.code_compta, cc.rowid, cc.code";
    -	$sql.= " ORDER BY f.datef ASC, f.facnumber ASC";
    +	$sql.= " ORDER BY f.datef ASC, f.ref ASC";
     
     	$resql = $db->query($sql);
     	if ($resql)
    @@ -865,7 +858,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     			{
     				$obj = $db->fetch_object($resql);
     
    -				$facturestatic->ref=$obj->facnumber;
    +				$facturestatic->ref=$obj->ref;
     				$facturestatic->id=$obj->rowid;
     				$facturestatic->total_ht=$obj->total_ht;
     				$facturestatic->total_tva=$obj->total_tva;
    @@ -898,14 +891,14 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
     				}
     				print '</td>';
     				print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';
    -				$filename=dol_sanitizeFileName($obj->facnumber);
    -				$filedir=$conf->facture->dir_output . '/' . dol_sanitizeFileName($obj->facnumber);
    +				$filename=dol_sanitizeFileName($obj->ref);
    +				$filedir=$conf->facture->dir_output . '/' . dol_sanitizeFileName($obj->ref);
     				$urlsource=$_SERVER['PHP_SELF'].'?facid='.$obj->rowid;
     				print $formfile->getDocumentsLink($facturestatic->element, $filename, $filedir);
     				print '</td></tr></table>';
     
     				print '</td>';
    -				print '<td align="left">' ;
    +				print '<td class="left">' ;
     				print $societestatic->getNomUrl(1,'customer',44);
     				print '</td>';
     				print '<td align="right">'.dol_print_date($db->jdate($obj->datelimite),'day').'</td>';
    @@ -1069,7 +1062,7 @@ if ($resql)
     		$obj = $db->fetch_object($resql);
     
     
    -		print "<tr ".$bc[$var]."><td>".dol_print_date($db->jdate($obj->da),"day")."</td>";
    +		print '<tr class="oddeven"><td>'.dol_print_date($db->jdate($obj->da),"day").'</td>';
     		print '<td><a href="action/card.php">'.$obj->libelle.' '.$obj->label.'</a></td></tr>';
     		$i++;
     	}
    @@ -1080,7 +1073,6 @@ if ($resql)
     
     print '</div></div></div>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/journal/purchasesjournal.php b/htdocs/compta/journal/purchasesjournal.php
    index 2bc754ccf11..2ab17905715 100644
    --- a/htdocs/compta/journal/purchasesjournal.php
    +++ b/htdocs/compta/journal/purchasesjournal.php
    @@ -1,10 +1,11 @@
     <?php
    -/* Copyright (C) 2007-2010	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2010	Jean Heimburger		<jean@tiaris.info>
    - * Copyright (C) 2011-2014	Juanjo Menent		<jmenent@2byte.es>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    - * Copyright (C) 2011-2012	Alexandre spangaro	<aspangaro.dolibarr@gmail.com>
    - * Copyright (C) 2013		Marcos García		<marcosgdf@gmail.com>
    +/* Copyright (C) 2007-2010  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2007-2010  Jean Heimburger         <jean@tiaris.info>
    + * Copyright (C) 2011-2014  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2012       Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2011-2012  Alexandre spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2013       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -80,7 +81,8 @@ $date_end=dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
     
     if (empty($date_start) || empty($date_end)) // We define date_start and date_end
     {
    -	$date_start=dol_get_first_day($pastmonthyear,$pastmonth,false); $date_end=dol_get_last_day($pastmonthyear,$pastmonth,false);
    +    $date_start=dol_get_first_day($pastmonthyear,$pastmonth,false);
    +    $date_end=dol_get_last_day($pastmonthyear,$pastmonth,false);
     }
     
     $name=$langs->trans("PurchasesJournal");
    @@ -90,7 +92,7 @@ $builddate=dol_now();
     $description=$langs->trans("DescPurchasesJournal").'<br>';
     if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
     else  $description.= $langs->trans("DepositsAreIncluded");
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     
     report_header($name,'',$period,$periodlink,$description,$builddate,$exportlink);
     
    @@ -108,7 +110,7 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_tva as ct ON fd.tva_tx = ct.taux AND fd.i
     $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = fd.fk_product";
     $sql.= " JOIN ".MAIN_DB_PREFIX."facture_fourn as f ON f.rowid = fd.fk_facture_fourn";
     $sql.= " JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = f.fk_soc" ;
    -$sql.= " WHERE f.fk_statut > 0 AND f.entity = ".$conf->entity;
    +$sql.= " WHERE f.fk_statut > 0 AND f.entity IN (".getEntity('invoice').")";
     if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2)";
     else $sql.= " AND f.type IN (0,1,2,3)";
     if ($date_start && $date_end) $sql .= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'";
    @@ -251,8 +253,6 @@ foreach ($tabfac as $key => $val)
     
     print "</table>";
     
    -
     // End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/journal/sellsjournal.php b/htdocs/compta/journal/sellsjournal.php
    index 24b36cf76c0..42b2c8a95af 100644
    --- a/htdocs/compta/journal/sellsjournal.php
    +++ b/htdocs/compta/journal/sellsjournal.php
    @@ -1,12 +1,13 @@
     <?php
    -/* Copyright (C) 2007-2010	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2010	Jean Heimburger		<jean@tiaris.info>
    - * Copyright (C) 2011-2014	Juanjo Menent		<jmenent@2byte.es>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    - * Copyright (C) 2011-2012  Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
    - * Copyright (C) 2012       Cédric Salvador     <csalvador@gpcsolutions.fr>
    - * Copyright (C) 2013		Marcos García		<marcosgdf@gmail.com>
    - * Copyright (C) 2014       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
    +/* Copyright (C) 2007-2010  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2007-2010  Jean Heimburger         <jean@tiaris.info>
    + * Copyright (C) 2011-2014  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2012       Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2011-2012  Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2012       Cédric Salvador         <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2013       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2014       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -93,13 +94,13 @@ $builddate=dol_now();
     $description=$langs->trans("DescSellsJournal").'<br>';
     if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
     else  $description.= $langs->trans("DepositsAreIncluded");
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     report_header($name,'',$period,$periodlink,$description,$builddate,$exportlink);
     
     $p = explode(":", $conf->global->MAIN_INFO_SOCIETE_COUNTRY);
     $idpays = $p[0];
     
    -$sql = "SELECT f.rowid, f.facnumber, f.type, f.datef, f.ref_client,";
    +$sql = "SELECT f.rowid, f.ref, f.type, f.datef, f.ref_client,";
     $sql.= " fd.product_type, fd.total_ht, fd.total_tva, fd.tva_tx, fd.total_ttc, fd.localtax1_tx, fd.localtax2_tx, fd.total_localtax1, fd.total_localtax2, fd.rowid as id, fd.situation_percent,";
     $sql.= " s.rowid as socid, s.nom as name, s.code_compta, s.client,";
     $sql.= " p.rowid as pid, p.ref as pref, p.accountancy_code_sell,";
    @@ -109,7 +110,7 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = fd.fk_product";
     $sql.= " JOIN ".MAIN_DB_PREFIX."facture as f ON f.rowid = fd.fk_facture";
     $sql.= " JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = f.fk_soc";
     $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_tva ct ON fd.tva_tx = ct.taux AND fd.info_bits = ct.recuperableonly AND ct.fk_pays = '".$idpays."'";
    -$sql.= " WHERE f.entity = ".$conf->entity;
    +$sql.= " WHERE f.entity IN (".getEntity('invoice').")";
     $sql.= " AND f.fk_statut > 0";
     if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
     	$sql.= " AND f.type IN (".Facture::TYPE_STANDARD.",".Facture::TYPE_REPLACEMENT.",".Facture::TYPE_CREDIT_NOTE.",".Facture::TYPE_SITUATION.")";
    @@ -179,7 +180,7 @@ if ($result)
     
         	//la ligne facture
        		$tabfac[$obj->rowid]["date"] = $obj->datef;
    -   		$tabfac[$obj->rowid]["ref"] = $obj->facnumber;
    +   		$tabfac[$obj->rowid]["ref"] = $obj->ref;
        		$tabfac[$obj->rowid]["type"] = $obj->type;
        		if (! isset($tabttc[$obj->rowid][$compta_soc])) $tabttc[$obj->rowid][$compta_soc]=0;
        		if (! isset($tabht[$obj->rowid][$compta_prod])) $tabht[$obj->rowid][$compta_prod]=0;
    @@ -282,7 +283,6 @@ foreach ($tabfac as $key => $val)
     
     print "</table>";
     
    -
     // End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/localtax/card.php b/htdocs/compta/localtax/card.php
    index e8a84fcc9e1..0582c4b14b3 100644
    --- a/htdocs/compta/localtax/card.php
    +++ b/htdocs/compta/localtax/card.php
    @@ -1,6 +1,7 @@
     <?php
    -/* Copyright (C) 2011-2014      Juanjo Menent <jmenent@2byte.es>
    - * Copyright (C) 2015			Marcos García <marcosgdf@gmail.com>
    +/* Copyright (C) 2011-2014  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2015       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -172,11 +173,11 @@ if ($action == 'create')
     
         print "<tr>";
         print '<td class="titlefieldcreate fieldrequired">'.$langs->trans("DatePayment").'</td><td>';
    -    print $form->select_date($datep,"datep",'','','','add',1,1);
    +    print $form->selectDate($datep, "datep", '', '', '', 'add', 1, 1);
         print '</td></tr>';
     
         print '<tr><td class="fieldrequired">'.$form->textwithpicto($langs->trans("PeriodEndDate"), $langs->trans("LastDayTaxIsRelatedTo")).'</td><td>';
    -    print $form->select_date($datev,"datev",'','','','add',1,1);
    +    print $form->selectDate($datev, "datev", '', '', '', 'add', 1, 1);
         print '</td></tr>';
     
     	// Label
    @@ -294,11 +295,11 @@ if ($id)
     	}
     	else
     	{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans("LinkedToAConcialitedTransaction").'">'.$langs->trans("Delete").'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("LinkedToAConcialitedTransaction").'">'.$langs->trans("Delete").'</a>';
     	}
     	print "</div>";
     }
     
    +// End of page
     llxFooter();
     $db->close();
    -
    diff --git a/htdocs/compta/localtax/class/localtax.class.php b/htdocs/compta/localtax/class/localtax.class.php
    index a75de537724..49c95c26c2e 100644
    --- a/htdocs/compta/localtax/class/localtax.class.php
    +++ b/htdocs/compta/localtax/class/localtax.class.php
    @@ -29,19 +29,46 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class Localtax extends CommonObject
     {
    -	public $element='localtax';			//!< Id that identify managed objects
    -	public $table_element='localtax';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='localtax';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='localtax';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto='payment';
     
    -	var $ltt;
    -	var $tms;
    -	var $datep;
    -	var $datev;
    -	var $amount;
    -	var $label;
    -	var $fk_bank;
    -	var $fk_user_creat;
    -	var $fk_user_modif;
    +	public $ltt;
    +	public $tms;
    +	public $datep;
    +	public $datev;
    +	public $amount;
    +
    +	/**
    +     * @var string local tax
    +     */
    +    public $label;
    +
    +    /**
    +     * @var int ID
    +     */
    +	public $fk_bank;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_modif;
     
         /**
     	 *	Constructor
    @@ -331,6 +358,7 @@ class Localtax extends CommonObject
             return $solde;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Total de la localtax des factures emises par la societe.
          *
    @@ -339,6 +367,7 @@ class Localtax extends CommonObject
          */
         function localtax_sum_collectee($year = 0)
         {
    +        // phpcs:enable
             $sql = "SELECT sum(f.localtax) as amount";
             $sql .= " FROM ".MAIN_DB_PREFIX."facture as f WHERE f.paye = 1";
             if ($year)
    @@ -369,6 +398,7 @@ class Localtax extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	localtax payed
          *
    @@ -377,6 +407,7 @@ class Localtax extends CommonObject
          */
         function localtax_sum_payee($year = 0)
         {
    +        // phpcs:enable
     
             $sql = "SELECT sum(f.total_localtax) as total_localtax";
             $sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn as f";
    @@ -409,6 +440,7 @@ class Localtax extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	localtax payed
          *  Total de la localtax payed
    @@ -418,6 +450,7 @@ class Localtax extends CommonObject
          */
         function localtax_sum_reglee($year = 0)
         {
    +        // phpcs:enable
     
             $sql = "SELECT sum(f.amount) as amount";
             $sql .= " FROM ".MAIN_DB_PREFIX."localtax as f";
    @@ -563,6 +596,7 @@ class Localtax extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Update the link betwen localtax payment and the line into llx_bank
          *
    @@ -571,6 +605,7 @@ class Localtax extends CommonObject
          */
     	function update_fk_bank($id)
     	{
    +        // phpcs:enable
     		$sql = 'UPDATE '.MAIN_DB_PREFIX.'localtax SET fk_bank = '.$id;
     		$sql.= ' WHERE rowid = '.$this->id;
     		$result = $this->db->query($sql);
    @@ -622,18 +657,19 @@ class Localtax extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Renvoi le libelle d'un statut donne
     	 *
     	 * @param   int		$status     Statut
     	 * @param   int		$mode       0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
    -	 * @return	string  		    Libelle du statut
    +	 * @return	string              Libelle du statut
     	 */
    -	function LibStatut($status,$mode=0)
    -	{
    -		global $langs;	// TODO Renvoyer le libelle anglais et faire traduction a affichage
    -
    -		return '';
    -	}
    +    function LibStatut($status, $mode=0)
    +    {
    +        // phpcs:enable
    +        global $langs;  // TODO Renvoyer le libelle anglais et faire traduction a affichage
     
    +        return '';
    +    }
     }
    diff --git a/htdocs/compta/localtax/clients.php b/htdocs/compta/localtax/clients.php
    index 9502ff46d2d..574c7103c61 100644
    --- a/htdocs/compta/localtax/clients.php
    +++ b/htdocs/compta/localtax/clients.php
    @@ -1,6 +1,7 @@
     <?php
    -/* Copyright (C) 2011-2014	Juanjo Menent 		<jmenent@2byte.es>
    - * Copyright (C) 2014	    Ferran Marcet       <fmarcet@2byte.es>
    +/* Copyright (C) 2011-2014	Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2014	    Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -117,7 +118,7 @@ if ($calc==0 || $calc==1)	// Calculate on invoice for goods and services
     {
         $calcmode=$calc==0?$langs->trans("CalcModeLT".$local):$langs->trans("CalcModeLT".$local."Rec");
         $calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRulesLT",DOL_URL_ROOT.'/admin/company.php').')';
    -    $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +    $period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
         if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
         $description.=$fsearch;
         $description.='<br>('.$langs->trans("TaxModuleSetupToModifyRulesLT",DOL_URL_ROOT.'/admin/company.php').')';
    @@ -134,7 +135,7 @@ if ($calc==2) 	// Invoice for goods, payment for services
     {
         $calcmode=$langs->trans("CalcModeLT2Debt");
         $calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRulesLT",DOL_URL_ROOT.'/admin/company.php').')';
    -    $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +    $period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
         if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
         $description.=$fsearch;
         $description.='<br>('.$langs->trans("TaxModuleSetupToModifyRulesLT",DOL_URL_ROOT.'/admin/company.php').')';
    @@ -158,8 +159,8 @@ if($calc ==0 || $calc == 2)
     {
     	print "<table class=\"noborder\" width=\"100%\">";
     	print "<tr class=\"liste_titre\">";
    -	print '<td align="left">'.$langs->trans("Num")."</td>";
    -	print '<td align="left">'.$langs->trans("Customer")."</td>";
    +	print '<td class="left">'.$langs->trans("Num")."</td>";
    +	print '<td class="left">'.$langs->trans("Customer")."</td>";
     	print "<td>".$langs->transcountry("ProfId1",$mysoc->country_code)."</td>";
     	print "<td align=\"right\">".$langs->trans("TotalHT")."</td>";
     	print "<td align=\"right\">".$vatcust."</td>";
    @@ -239,8 +240,8 @@ if($calc ==0 || $calc == 2)
     if($calc ==0 || $calc == 1){
     	print "<table class=\"noborder\" width=\"100%\">";
     	print "<tr class=\"liste_titre\">";
    -	print '<td align="left">'.$langs->trans("Num")."</td>";
    -	print '<td align="left">'.$langs->trans("Supplier")."</td>";
    +	print '<td class="left">'.$langs->trans("Num")."</td>";
    +	print '<td class="left">'.$langs->trans("Supplier")."</td>";
     	print "<td>".$langs->transcountry("ProfId1",$mysoc->country_code)."</td>";
     	print "<td align=\"right\">".$langs->trans("TotalHT")."</td>";
     	print "<td align=\"right\">".$vatsup."</td>";
    @@ -298,7 +299,6 @@ if($calc ==0 || $calc == 1){
     		print '</tr>';
     
     		print '</table>';
    -
     	}
     	else
     	{
    @@ -321,9 +321,9 @@ if($calc ==0){
     	print '<td class="liste_total" colspan="4">'.$langs->trans("TotalToPay").($q?', '.$langs->trans("Quadri").' '.$q:'').'</td>';
     	print '<td class="liste_total nowrap" align="right"><b>'.price(price2num($diff,'MT'))."</b></td>\n";
     	print "</tr>\n";
    -
     }
     print '</table>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/localtax/index.php b/htdocs/compta/localtax/index.php
    index c62034ee65c..1e2c26c0c62 100644
    --- a/htdocs/compta/localtax/index.php
    +++ b/htdocs/compta/localtax/index.php
    @@ -1,7 +1,8 @@
     <?php
    -/* Copyright (C) 2011-2014 Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2014      Ferran Marcet        <fmarcet@2byte.es>
    - * Copyright (C) 2018      Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2011-2014  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2014       Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2018       Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -223,7 +224,7 @@ $calcmode.= '('.$langs->trans("TaxModuleSetupToModifyRulesLT",DOL_URL_ROOT.'/adm
     
     //if (! empty($conf->global->MAIN_MODULE_ACCOUNTING)) $description.='<br>'.$langs->trans("ThisIsAnEstimatedValue");
     
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     
     $builddate=dol_now();
     
    @@ -587,5 +588,6 @@ pt($db, $sql, $langs->trans("Month"));
     
     print '</div></div>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/localtax/list.php b/htdocs/compta/localtax/list.php
    index 0e32a249f17..881420cc89e 100644
    --- a/htdocs/compta/localtax/list.php
    +++ b/htdocs/compta/localtax/list.php
    @@ -83,8 +83,8 @@ if ($result)
     		$localtax_static->ref=$obj->rowid;
     		print "<td>".$localtax_static->getNomUrl(1)."</td>\n";
             print "<td>".dol_trunc($obj->label,40)."</td>\n";
    -        print '<td align="left">'.dol_print_date($db->jdate($obj->datev),'day')."</td>\n";
    -        print '<td align="left">'.dol_print_date($db->jdate($obj->datep),'day')."</td>\n";
    +        print '<td class="left">'.dol_print_date($db->jdate($obj->datev),'day')."</td>\n";
    +        print '<td class="left">'.dol_print_date($db->jdate($obj->datep),'day')."</td>\n";
             $total = $total + $obj->amount;
     
             print "<td align=\"right\">".price($obj->amount)."</td>";
    @@ -103,5 +103,6 @@ else
         dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/localtax/quadri_detail.php b/htdocs/compta/localtax/quadri_detail.php
    index 31729693f37..73a9f77341a 100644
    --- a/htdocs/compta/localtax/quadri_detail.php
    +++ b/htdocs/compta/localtax/quadri_detail.php
    @@ -4,6 +4,7 @@
      * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2006-2007 Yannick Warnier      <ywarnier@beeznest.org>
      * Copyright (C) 2014-2016 Juanjo Menent		<jmenent@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -132,18 +133,22 @@ if ($modetax == 1) $calcmode=$langs->trans('OptionVATDebitOption');
     if ($modetax == 2) $calcmode=$langs->trans('OptionPaymentForProductAndServices');
     $calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
     // Set period
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    -$prevyear=$year_start; $prevquarter=$q;
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
    +$prevyear=$year_start;
    +$prevquarter=$q;
     if ($prevquarter > 1) {
     	$prevquarter--;
     } else {
    -	$prevquarter=4; $prevyear--;
    +    $prevquarter=4;
    +    $prevyear--;
     }
    -$nextyear=$year_start; $nextquarter=$q;
    +$nextyear=$year_start;
    +$nextquarter=$q;
     if ($nextquarter < 4) {
     	$nextquarter++;
     } else {
    -	$nextquarter=1; $nextyear++;
    +    $nextquarter=1;
    +    $nextyear++;
     }
     $description.=$fsearch;
     $builddate=dol_now();
    @@ -209,7 +214,7 @@ if (! is_array($x_coll) || ! is_array($x_paye))
     	$langs->load("errors");
     	if ($x_coll == -1)
     		print '<tr><td colspan="'.$columns.'">'.$langs->trans("ErrorNoAccountancyModuleLoaded").'</td></tr>';
    -	else if ($x_coll == -2)
    +	elseif ($x_coll == -2)
     		print '<tr><td colspan="'.$columns.'">'.$langs->trans("FeatureNotYetAvailable").'</td></tr>';
     	else
     		print '<tr><td colspan="'.$columns.'">'.$langs->trans("Error").'</td></tr>';
    @@ -313,8 +318,8 @@ else
     	//{
     		// Customers invoices
     		print '<tr class="liste_titre">';
    -		print '<td align="left">'.$elementcust.'</td>';
    -		print '<td align="left">'.$productcust.'</td>';
    +		print '<td class="left">'.$elementcust.'</td>';
    +		print '<td class="left">'.$productcust.'</td>';
     		if ($modetax != 2) print '<td align="right">'.$amountcust.'</td>';
     		if ($modetax != 1) print '<td align="right">'.$langs->trans("Payment").' ('.$langs->trans("PercentOfInvoice").')</td>';
     		print '<td align="right">'.$langs->trans("BI").'</td>';
    @@ -355,7 +360,7 @@ else
     						print '<td class="nowrap" align="left">'.$fields['link'].'</td>';
     
     						// Description
    -						print '<td align="left">';
    +						print '<td class="left">';
     						if ($fields['pid'])
     						{
     							$product_static->id=$fields['pid'];
    @@ -476,8 +481,8 @@ else
     		echo '<table class="noborder" width="100%">';
     		//print table headers for this quadri - expenses now
     		print '<tr class="liste_titre">';
    -		print '<td align="left">'.$elementsup.'</td>';
    -		print '<td align="left">'.$productsup.'</td>';
    +		print '<td class="left">'.$elementsup.'</td>';
    +		print '<td class="left">'.$productsup.'</td>';
     		if ($modetax != 1)
     		{
     			print '<td align="right">'.$amountsup.'</td>';
    @@ -517,7 +522,7 @@ else
     						print '<td class="nowrap" align="left">'.$fields['link'].'</td>';
     
     						// Description
    -						print '<td align="left">';
    +						print '<td class="left">';
     						if ($fields['pid'])
     						{
     							$product_static->id=$fields['pid'];
    @@ -584,7 +589,7 @@ else
     
     						// Localtax
     						print '<td class="nowrap" align="right">';
    -						$temp_vat=($local==1?$fields['localtax1']:$fields['localtax2'])*$ratiopaymentinvoice;;
    +						$temp_vat=($local==1?$fields['localtax1']:$fields['localtax2'])*$ratiopaymentinvoice;
     						print price(price2num($temp_vat,'MT'),1);
     						//print price($fields['vat']);
     						print '</td>';
    @@ -640,5 +645,6 @@ else
     }
     print '</table>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/paiement.php b/htdocs/compta/paiement.php
    index c2ce95dd827..51435433aa4 100644
    --- a/htdocs/compta/paiement.php
    +++ b/htdocs/compta/paiement.php
    @@ -1,13 +1,14 @@
     <?php
    -/* Copyright (C) 2001-2006 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2017 Laurent Destailleur   <eldy@users.sourceforge.net>
    - * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    - * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
    - * Copyright (C) 2012      Cédric Salvador       <csalvador@gpcsolutions.fr>
    - * Copyright (C) 2014      Raphaël Doursenaud    <rdoursenaud@gpcsolutions.fr>
    - * Copyright (C) 2014      Teddy Andreotti       <125155@supinfo.com>
    - * Copyright (C) 2015      Juanjo Menent		 <jmenent@2byte.es>
    +/* Copyright (C) 2001-2006  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2017  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005       Marc Barilley / Ocebo   <marc@ocebo.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2007       Franky Van Liedekerke   <franky.van.liedekerke@telenet.be>
    + * Copyright (C) 2012       Cédric Salvador         <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2014       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2014       Teddy Andreotti         <125155@supinfo.com>
    + * Copyright (C) 2015       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -467,7 +468,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
             print '<tr><td><span class="fieldrequired">'.$langs->trans('Date').'</span></td><td>';
             $datepayment = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
             $datepayment= ($datepayment == '' ? (empty($conf->global->MAIN_AUTOFILL_DATE)?-1:'') : $datepayment);
    -        $form->select_date($datepayment,'','','',0,"add_paiement",1,1,0,0,'','',$facture->date);
    +        print $form->selectDate($datepayment, '', '', '', 0, "add_paiement", 1, 1, 0, '', '', $facture->date);
             print '</td></tr>';
     
             // Payment mode
    @@ -524,10 +525,10 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
              * List of unpaid invoices
              */
     
    -        $sql = 'SELECT f.rowid as facid, f.facnumber, f.total_ttc, f.multicurrency_code, f.multicurrency_total_ttc, f.type,';
    -        $sql.= ' f.datef as df, f.fk_soc as socid';
    +        $sql = 'SELECT f.rowid as facid, f.ref, f.total_ttc, f.multicurrency_code, f.multicurrency_total_ttc, f.type,';
    +        $sql.= ' f.datef as df, f.fk_soc as socid, f.date_lim_reglement as dlr';
             $sql.= ' FROM '.MAIN_DB_PREFIX.'facture as f';
    -		$sql.= ' WHERE f.entity IN ('.getEntity('facture', $conf->entity).')';
    +		$sql.= ' WHERE f.entity IN ('.getEntity('invoice', $conf->entity).')';
             $sql.= ' AND (f.fk_soc = '.$facture->socid;
     		// Can pay invoices of all child of parent company
     		if(!empty($conf->global->FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS) && !empty($facture->thirdparty->parent)) {
    @@ -549,7 +550,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
             }
     
             // Sort invoices by date and serial number: the older one comes first
    -        $sql.=' ORDER BY f.datef ASC, f.facnumber ASC';
    +        $sql.=' ORDER BY f.datef ASC, f.ref ASC';
     
             $resql = $db->query($sql);
             if ($resql)
    @@ -577,11 +578,14 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
                     print '<tr class="liste_titre">';
                     print '<td>'.$arraytitle.'</td>';
                     print '<td align="center">'.$langs->trans('Date').'</td>';
    -                if (!empty($conf->multicurrency->enabled)) print '<td>'.$langs->trans('Currency').'</td>';
    -                if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$langs->trans('MulticurrencyAmountTTC').'</td>';
    -                if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$multicurrencyalreadypayedlabel.'</td>';
    -                if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$multicurrencyremaindertopay.'</td>';
    -                if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$langs->trans('MulticurrencyPaymentAmount').'</td>';
    +                print '<td align="center">'.$langs->trans('DateMaxPayment').'</td>';
    +                if (!empty($conf->multicurrency->enabled)) {
    +                	print '<td>'.$langs->trans('Currency').'</td>';
    +                	print '<td align="right">'.$langs->trans('MulticurrencyAmountTTC').'</td>';
    +                	print '<td align="right">'.$multicurrencyalreadypayedlabel.'</td>';
    +                	print '<td align="right">'.$multicurrencyremaindertopay.'</td>';
    +                	print '<td align="right">'.$langs->trans('MulticurrencyPaymentAmount').'</td>';
    +                }
                     print '<td align="right">'.$langs->trans('AmountTTC').'</td>';
                     print '<td align="right">'.$alreadypayedlabel.'</td>';
                     print '<td align="right">'.$remaindertopay.'</td>';
    @@ -610,8 +614,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
                         $remaintopay=price2num($invoice->total_ttc - $paiement - $creditnotes - $deposits,'MT');
     
     					// Multicurrency Price
    -					if (!empty($conf->multicurrency->enabled))
    -					{
    +					if (!empty($conf->multicurrency->enabled)) {
     						$multicurrency_payment = $invoice->getSommePaiement(1);
     						$multicurrency_creditnotes=$invoice->getSumCreditNotesUsed(1);
     						$multicurrency_deposits=$invoice->getSumDepositsUsed(1);
    @@ -629,6 +632,24 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
                         // Date
                         print '<td align="center">'.dol_print_date($db->jdate($objp->df),'day')."</td>\n";
     
    +                    // Date Max Payment
    +                    if ($objp->dlr > 0 )
    +                    {
    +                        print '<td align="center">';
    +                        print dol_print_date($db->jdate($objp->dlr), 'day');
    +
    +                        if ($invoice->hasDelay())
    +                        {
    +                            print img_warning($langs->trans('Late'));
    +                        }
    +
    +                        print '</td>';
    +                    }
    +                    else
    +                    {
    +                        print '<td align="center"><b>--</b></td>';
    +                    }
    +
                         // Currency
                         if (!empty($conf->multicurrency->enabled)) print '<td align="center">'.$objp->multicurrency_code."</td>\n";
     
    @@ -740,11 +761,13 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
                         // Print total
                         print '<tr class="liste_total">';
                         print '<td colspan="2" align="left">'.$langs->trans('TotalTTC').'</td>';
    -					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
    -					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
    -					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
    -					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
    -					if (!empty($conf->multicurrency->enabled)) print '<td align="right" id="multicurrency_result" style="font-weight: bold;"></td>';
    +                    if (!empty($conf->multicurrency->enabled)) {
    +                    	print '<td></td>';
    +                    	print '<td></td>';
    +                    	print '<td></td>';
    +                    	print '<td></td>';
    +                    	print '<td align="right" id="multicurrency_result" style="font-weight: bold;"></td>';
    +                    }
     					print '<td align="right"><b>'.price($sign * $total_ttc).'</b></td>';
                         print '<td align="right"><b>'.price($sign * $totalrecu);
                         if ($totalrecucreditnote) print '+'.price($totalrecucreditnote);
    @@ -821,12 +844,12 @@ if (! GETPOST('action','aZ09'))
         if (! $sortorder) $sortorder='DESC';
         if (! $sortfield) $sortfield='p.datep';
     
    -    $sql = 'SELECT p.datep as dp, p.amount, f.amount as fa_amount, f.facnumber';
    +    $sql = 'SELECT p.datep as dp, p.amount, f.amount as fa_amount, f.ref';
         $sql.=', f.rowid as facid, c.libelle as paiement_type, p.num_paiement';
         $sql.= ' FROM '.MAIN_DB_PREFIX.'paiement as p LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as c ON p.fk_paiement = c.id';
         $sql.= ', '.MAIN_DB_PREFIX.'facture as f';
         $sql.= ' WHERE p.fk_facture = f.rowid';
    -    $sql.= ' AND f.entity IN (' . getEntity('facture').')';
    +    $sql.= ' AND f.entity IN (' . getEntity('invoice').')';
         if ($socid)
         {
             $sql.= ' AND f.fk_soc = '.$socid;
    @@ -844,7 +867,7 @@ if (! GETPOST('action','aZ09'))
             print_barre_liste($langs->trans('Payments'), $page, $_SERVER["PHP_SELF"],'',$sortfield,$sortorder,'',$num);
             print '<table class="noborder" width="100%">';
             print '<tr class="liste_titre">';
    -        print_liste_field_titre('Invoice',$_SERVER["PHP_SELF"],'facnumber','','','',$sortfield,$sortorder);
    +        print_liste_field_titre('Invoice',$_SERVER["PHP_SELF"],'ref','','','',$sortfield,$sortorder);
             print_liste_field_titre('Date',$_SERVER["PHP_SELF"],'dp','','','',$sortfield,$sortorder);
             print_liste_field_titre('Type',$_SERVER["PHP_SELF"],'libelle','','','',$sortfield,$sortorder);
             print_liste_field_titre('Amount',$_SERVER["PHP_SELF"],'fa_amount','','','align="right"',$sortfield,$sortorder);
    @@ -856,7 +879,7 @@ if (! GETPOST('action','aZ09'))
                 $objp = $db->fetch_object($resql);
     
                 print '<tr class="oddeven">';
    -            print '<td><a href="'.DOL_URL_ROOT.'/compta/facture/card.php?facid='.$objp->facid.'">'.$objp->facnumber."</a></td>\n";
    +            print '<td><a href="'.DOL_URL_ROOT.'/compta/facture/card.php?facid='.$objp->facid.'">'.$objp->ref."</a></td>\n";
                 print '<td>'.dol_print_date($db->jdate($objp->dp))."</td>\n";
                 print '<td>'.$objp->paiement_type.' '.$objp->num_paiement."</td>\n";
                 print '<td align="right">'.price($objp->amount).'</td><td>&nbsp;</td>';
    diff --git a/htdocs/compta/paiement/card.php b/htdocs/compta/paiement/card.php
    index 656d6c673f2..6b9fe7c3be5 100644
    --- a/htdocs/compta/paiement/card.php
    +++ b/htdocs/compta/paiement/card.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004      Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2013	   Marcos García		 <marcosgdf@gmail.com>
      * Copyright (C) 2015	   Juanjo Menent		 <jmenent@2byte.es>
      *
    @@ -107,7 +107,7 @@ if ($action == 'confirm_valide' && $confirm == 'yes' && $user->rights->facture->
     	$db->begin();
     
         $object->fetch($id);
    -	if ($object->valide() > 0)
    +	if ($object->valide($user) > 0)
     	{
     		$db->commit();
     
    @@ -157,7 +157,7 @@ if ($action == 'setnum_paiement' && ! empty($_POST['num_paiement']))
     if ($action == 'setdatep' && ! empty($_POST['datepday']))
     {
     	$object->fetch($id);
    -    $datepaye = dol_mktime(12, 0, 0, $_POST['datepmonth'], $_POST['datepday'], $_POST['datepyear']);
    +	$datepaye = dol_mktime(GETPOST('datephour','int'), GETPOST('datepmin','int'), GETPOST('datepsec','int'), GETPOST('datepmonth','int'), GETPOST('datepday','int'), GETPOST('datepyear','int'));
     	$res = $object->update_date($datepaye);
     	if ($res === 0)
     	{
    @@ -191,23 +191,17 @@ $head = payment_prepare_head($object);
     
     dol_fiche_head($head, 'payment', $langs->trans("PaymentCustomerInvoice"), -1, 'payment');
     
    -/*
    - * Confirmation de la suppression du paiement
    - */
    +// Confirmation de la suppression du paiement
     if ($action == 'delete')
     {
     	print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete','',0,2);
    -
     }
     
    -/*
    - * Confirmation de la validation du paiement
    - */
    +// Confirmation de la validation du paiement
     if ($action == 'valide')
     {
     	$facid = $_GET['facid'];
     	print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;facid='.$facid, $langs->trans("ValidatePayment"), $langs->trans("ConfirmValidatePayment"), 'confirm_valide','',0,2);
    -
     }
     
     $linkback = '<a href="' . DOL_URL_ROOT . '/compta/paiement/list.php">' . $langs->trans("BackToList") . '</a>';
    @@ -222,20 +216,26 @@ print '<table class="border centpercent">'."\n";
     
     // Date payment
     print '<tr><td class="titlefield">'.$form->editfieldkey("Date",'datep',$object->date,$object,$user->rights->facture->paiement).'</td><td>';
    -print $form->editfieldval("Date",'datep',$object->date,$object,$user->rights->facture->paiement,'datepicker','',null,$langs->trans('PaymentDateUpdateSucceeded'));
    +print $form->editfieldval("Date", 'datep', $object->date, $object,$user->rights->facture->paiement, 'datehourpicker', '', null, $langs->trans('PaymentDateUpdateSucceeded'));
     print '</td></tr>';
     
     // Payment type (VIR, LIQ, ...)
     $labeltype=$langs->trans("PaymentType".$object->type_code)!=("PaymentType".$object->type_code)?$langs->trans("PaymentType".$object->type_code):$object->type_libelle;
    -print '<tr><td>'.$langs->trans('PaymentMode').'</td><td>'.$labeltype.'</td></tr>';
    +print '<tr><td>'.$langs->trans('PaymentMode').'</td><td>'.$labeltype;
    +print $object->num_paiement?' - '.$object->num_paiement:'';
    +print '</td></tr>';
    +
    +// Amount
    +print '<tr><td>'.$langs->trans('Amount').'</td><td>'.price($object->amount,'',$langs,0,-1,-1,$conf->currency).'</td></tr>';
     
     $disable_delete = 0;
     // Bank account
     if (! empty($conf->banque->enabled))
     {
    +	$bankline=new AccountLine($db);
    +
     	if ($object->fk_account > 0)
     	{
    -		$bankline=new AccountLine($db);
     		$bankline->fetch($object->bank_line);
     		if ($bankline->rappro)
     		{
    @@ -307,9 +307,6 @@ print '<tr><td class="tdtop">'.$form->editfieldkey("Comments",'note',$object->no
     print $form->editfieldval("Note",'note',$object->note,$object,$user->rights->facture->paiement,'textarea:'.ROWS_3.':90%');
     print '</td></tr>';
     
    -// Amount
    -print '<tr><td>'.$langs->trans('Amount').'</td><td>'.price($object->amount,'',$langs,0,-1,-1,$conf->currency).'</td></tr>';
    -
     print '</table>';
     
     print '</div>';
    @@ -321,11 +318,11 @@ dol_fiche_end();
      * List of invoices
      */
     
    -$sql = 'SELECT f.rowid as facid, f.facnumber, f.type, f.total_ttc, f.paye, f.fk_statut, pf.amount, s.nom as name, s.rowid as socid';
    +$sql = 'SELECT f.rowid as facid, f.ref, f.type, f.total_ttc, f.paye, f.fk_statut, pf.amount, s.nom as name, s.rowid as socid';
     $sql.= ' FROM '.MAIN_DB_PREFIX.'paiement_facture as pf,'.MAIN_DB_PREFIX.'facture as f,'.MAIN_DB_PREFIX.'societe as s';
     $sql.= ' WHERE pf.fk_facture = f.rowid';
     $sql.= ' AND f.fk_soc = s.rowid';
    -$sql.= ' AND f.entity = '.$conf->entity;
    +$sql.= ' AND f.entity IN ('.getEntity('invoice').')';
     $sql.= ' AND pf.fk_paiement = '.$object->id;
     $resql=$db->query($sql);
     if ($resql)
    @@ -345,6 +342,7 @@ if ($resql)
     	print '<tr class="liste_titre">';
     	print '<td>'.$langs->trans('Bill').'</td>';
     	print '<td>'.$langs->trans('Company').'</td>';
    +	if($conf->global->MULTICOMPANY_INVOICE_SHARING_ENABLED )print '<td>'.$langs->trans('Entity').'</td>';
     	print '<td align="right">'.$langs->trans('ExpectedToPay').'</td>';
         print '<td align="right">'.$langs->trans('PayedByThisPayment').'</td>';
         print '<td align="right">'.$langs->trans('RemainderToPay').'</td>';
    @@ -380,6 +378,13 @@ if ($resql)
     			print $thirdpartystatic->getNomUrl(1);
     			print '</td>';
     
    +			// Expected to pay
    +			if($conf->global->MULTICOMPANY_INVOICE_SHARING_ENABLED ){
    +				print '<td>';
    +				$mc->getInfo($objp->entity);
    +				print $mc->label;
    +				print '</td>';
    +			}
     			// Expected to pay
     			print '<td align="right">'.price($objp->total_ttc).'</td>';
     
    @@ -443,13 +448,13 @@ if ($user->societe_id == 0 && $action == '')
     		}
     		else
     		{
    -			print '<a class="butActionRefused" href="#" title="'.$title_button.'">'.$langs->trans('Delete').'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.$title_button.'">'.$langs->trans('Delete').'</a>';
     		}
     	}
     }
     
     print '</div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/paiement/cheque/card.php b/htdocs/compta/paiement/cheque/card.php
    index 69f3bd102df..c19d51b5891 100644
    --- a/htdocs/compta/paiement/cheque/card.php
    +++ b/htdocs/compta/paiement/cheque/card.php
    @@ -1,10 +1,11 @@
     <?php
     /* Copyright (C) 2006		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2007-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2016	Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2013 		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2015-2016	Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -273,7 +274,7 @@ else if ($action == 'remove_file' && $user->rights->banque->cheque)
     {
     	if ($object->fetch($id) > 0)
     	{
    -		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +		include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
     		$langs->load("other");
     
    @@ -339,7 +340,6 @@ else
     	if ($action == 'delete')
     	{
     		print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans("DeleteCheckReceipt"), $langs->trans("ConfirmDeleteCheckReceipt"), 'confirm_delete','','',1);
    -
     	}
     
     	/*
    @@ -348,7 +348,6 @@ else
     	if ($action == 'valide')
     	{
     		print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans("ValidateCheckReceipt"), $langs->trans("ConfirmValidateCheckReceipt"), 'confirm_valide','','',1);
    -
     	}
     
     	/*
    @@ -386,7 +385,7 @@ if ($action == 'new')
     	//print '<tr><td width="30%">'.$langs->trans('Date').'</td><td width="70%">'.dol_print_date($now,'day').'</td></tr>';
     	// Filter
     	print '<tr><td class="titlefieldcreate">'.$langs->trans("DateChequeReceived").'</td><td>';
    -	print $form->select_date($filterdate,'fd',0,0,1,'',1,1,1);
    +	print $form->selectDate($filterdate, 'fd', 0, 0, 1, '', 1, 1);
     	print '</td></tr>';
         print '<tr><td>'.$langs->trans("BankAccount").'</td><td>';
         $form->select_comptes($filteraccountid,'accountid',0,'courant <> 2',1);
    @@ -547,12 +546,11 @@ if ($action == 'new')
     		}
     		else
     		{
    -			print '<a class="butActionRefused" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans('NewCheckDepositOn',$account_label).'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans('NewCheckDepositOn',$account_label).'</a>';
     		}
     		print '</div><br>';
     		print '</form>';
     	}
    -
     }
     else
     {
    @@ -586,7 +584,7 @@ else
             print '<form name="setdate" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
             print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
             print '<input type="hidden" name="action" value="setdate">';
    -        $form->select_date($object->date_bordereau,'datecreate_','','','',"setdate");
    +        print $form->selectDate($object->date_bordereau, 'datecreate_', '', '', '', "setdate");
             print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
             print '</form>';
         }
    @@ -786,7 +784,6 @@ if ($user->societe_id == 0 && ! empty($object->id) && $object->statut == 0 && $u
     if ($user->societe_id == 0 && ! empty($object->id) && $user->rights->banque->cheque)
     {
     	print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delete&amp;sortfield='.$sortfield.'&amp;sortorder='.$sortorder.'">'.$langs->trans('Delete').'</a>';
    -
     }
     print '</div>';
     
    @@ -806,8 +803,6 @@ if ($action != 'new')
     	}
     }
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/paiement/cheque/class/remisecheque.class.php b/htdocs/compta/paiement/cheque/class/remisecheque.class.php
    index 528b01477a6..28973d3c4e2 100644
    --- a/htdocs/compta/paiement/cheque/class/remisecheque.class.php
    +++ b/htdocs/compta/paiement/cheque/class/remisecheque.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2006      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2007-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2016 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
      *
    @@ -33,14 +33,25 @@ require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
      */
     class RemiseCheque extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='chequereceipt';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='bordereau_cheque';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'payment';
     
    -	var $num;
    -	var $intitule;
    +	public $num;
    +	public $intitule;
     	//! Numero d'erreur Plage 1024-1279
    -	var $errno;
    +	public $errno;
     
     	public $amount;
     	public $date_bordereau;
    @@ -48,6 +59,10 @@ class RemiseCheque extends CommonObject
     	public $account_label;
     	public $author_id;
     	public $nbcheque;
    +
    +	/**
    +	 * @var string Ref
    +	 */
     	public $ref;
     
     	/**
    @@ -106,7 +121,6 @@ class RemiseCheque extends CommonObject
     				{
     					$this->ref         = $obj->ref;
     				}
    -
     			}
     			$this->db->free($resql);
     
    @@ -137,6 +151,8 @@ class RemiseCheque extends CommonObject
     
     		$now=dol_now();
     
    +		dol_syslog("RemiseCheque::Create start", LOG_DEBUG);
    +
     		$this->db->begin();
     
     		$sql = "INSERT INTO ".MAIN_DB_PREFIX."bordereau_cheque (";
    @@ -163,7 +179,6 @@ class RemiseCheque extends CommonObject
     		$sql.= ", ''";
     		$sql.= ")";
     
    -		dol_syslog("RemiseCheque::Create", LOG_DEBUG);
     		$resql = $this->db->query($sql);
     		if ( $resql )
     		{
    @@ -180,7 +195,6 @@ class RemiseCheque extends CommonObject
     				$sql.= " SET ref='(PROV".$this->id.")'";
     				$sql.= " WHERE rowid=".$this->id."";
     
    -				dol_syslog("RemiseCheque::Create", LOG_DEBUG);
     				$resql = $this->db->query($sql);
     				if (! $resql)
     				{
    @@ -227,13 +241,12 @@ class RemiseCheque extends CommonObject
     						if($linetoremise==$lineid) $checkremise=true;
     					}
     
    -					if($checkremise==true)
    +					if ($checkremise)
     					{
     						$sql = "UPDATE ".MAIN_DB_PREFIX."bank";
     						$sql.= " SET fk_bordereau = ".$this->id;
     						$sql.= " WHERE rowid = ".$lineid;
     
    -						dol_syslog("RemiseCheque::Create", LOG_DEBUG);
     						$resql = $this->db->query($sql);
     						if (!$resql)
     						{
    @@ -269,11 +282,13 @@ class RemiseCheque extends CommonObject
             if (! $this->errno)
             {
                 $this->db->commit();
    +            dol_syslog("RemiseCheque::Create end", LOG_DEBUG);
                 return $this->id;
             }
             else
             {
                 $this->db->rollback();
    +            dol_syslog("RemiseCheque::Create end", LOG_DEBUG);
                 return $this->errno;
             }
     	}
    @@ -480,6 +495,7 @@ class RemiseCheque extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Load indicators for dashboard (this->nbtodo and this->nbtodolate)
     	 *
    @@ -488,6 +504,7 @@ class RemiseCheque extends CommonObject
     	 */
     	function load_board($user)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		if ($user->societe_id) return -1;   // protection pour eviter appel par utilisateur externe
    @@ -533,6 +550,7 @@ class RemiseCheque extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Charge indicateurs this->nb de tableau de bord
     	 *
    @@ -540,6 +558,7 @@ class RemiseCheque extends CommonObject
     	 */
     	function load_state_board()
     	{
    +        // phpcs:enable
     		global $user;
     
     		if ($user->societe_id) return -1;   // protection pour eviter appel par utilisateur externe
    @@ -593,8 +612,8 @@ class RemiseCheque extends CommonObject
     		$file = "pdf_".$model.".class.php";
     		if (file_exists($dir.$file))
     		{
    -			require_once DOL_DOCUMENT_ROOT .'/compta/bank/class/account.class.php';
    -			require_once $dir.$file;
    +			include_once DOL_DOCUMENT_ROOT .'/compta/bank/class/account.class.php';
    +			include_once $dir.$file;
     
     			$classname='BordereauCheque'.ucfirst($model);
     			$docmodel = new $classname($this->db);
    @@ -847,13 +866,15 @@ class RemiseCheque extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Charge les proprietes ref_previous et ref_next
     	 *
    -	 *	@return     int   <0 if KO, 0 if OK
    +	 *  @return     int   <0 if KO, 0 if OK
     	 */
     	function load_previous_next_id()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$this->errno = 0;
    @@ -888,6 +909,7 @@ class RemiseCheque extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *      Set the creation date
          *
    @@ -897,6 +919,7 @@ class RemiseCheque extends CommonObject
          */
         function set_date($user, $date)
         {
    +        // phpcs:enable
             if ($user->rights->banque->cheque)
             {
                 $sql = "UPDATE ".MAIN_DB_PREFIX."bordereau_cheque";
    @@ -922,6 +945,7 @@ class RemiseCheque extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Set the ref of bordereau
     	 *
    @@ -931,6 +955,7 @@ class RemiseCheque extends CommonObject
     	 */
     	function set_number($user, $ref)
     	{
    +        // phpcs:enable
     		if ($user->rights->banque->cheque)
     		{
     			$sql = "UPDATE ".MAIN_DB_PREFIX."bordereau_cheque";
    @@ -1044,6 +1069,7 @@ class RemiseCheque extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return label of a status
     	 *
    @@ -1053,6 +1079,7 @@ class RemiseCheque extends CommonObject
     	 */
     	function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;	// TODO Renvoyer le libelle anglais et faire traduction a affichage
     		$langs->load('compta');
     		if ($mode == 0)
    @@ -1060,37 +1087,36 @@ class RemiseCheque extends CommonObject
     			if ($status == 0) return $langs->trans('ToValidate');
     			if ($status == 1) return $langs->trans('Validated');
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($status == 0) return $langs->trans('ToValidate');
     			if ($status == 1) return $langs->trans('Validated');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status == 0) return img_picto($langs->trans('ToValidate'),'statut0').' '.$langs->trans('ToValidate');
     			if ($status == 1) return img_picto($langs->trans('Validated'),'statut4').' '.$langs->trans('Validated');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status == 0) return img_picto($langs->trans('ToValidate'),'statut0');
     			if ($status == 1) return img_picto($langs->trans('Validated'),'statut4');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status == 0) return img_picto($langs->trans('ToValidate'),'statut0').' '.$langs->trans('ToValidate');
     			if ($status == 1) return img_picto($langs->trans('Validated'),'statut4').' '.$langs->trans('Validated');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status == 0) return $langs->trans('ToValidate').' '.img_picto($langs->trans('ToValidate'),'statut0');
     			if ($status == 1) return $langs->trans('Validated').' '.img_picto($langs->trans('Validated'),'statut4');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($status == 0) return $langs->trans('ToValidate').' '.img_picto($langs->trans('ToValidate'),'statut0');
     			if ($status == 1) return $langs->trans('Validated').' '.img_picto($langs->trans('Validated'),'statut4');
     		}
     		return $langs->trans('Unknown');
     	}
    -
     }
    diff --git a/htdocs/compta/paiement/cheque/index.php b/htdocs/compta/paiement/cheque/index.php
    index 826a4333147..1748a3fa9d2 100644
    --- a/htdocs/compta/paiement/cheque/index.php
    +++ b/htdocs/compta/paiement/cheque/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2006      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2007-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016      Juanjo Menent	    <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *		\brief      Home page for cheque receipts
      */
     
    -require('../../../main.inc.php');
    +require '../../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/paiement/cheque/class/remisecheque.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
    @@ -151,6 +151,6 @@ else
     
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/paiement/cheque/list.php b/htdocs/compta/paiement/cheque/list.php
    index 800f40b9694..d9ac1ab11eb 100644
    --- a/htdocs/compta/paiement/cheque/list.php
    +++ b/htdocs/compta/paiement/cheque/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2006		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2007-2016	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2014		Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2016		Juanjo Menent   		<jmenent@2byte.es>
      *
    @@ -25,7 +25,7 @@
      *   \brief      Page list of cheque deposits
      */
     
    -require('../../../main.inc.php');
    +require '../../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/paiement/cheque/class/remisecheque.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
    @@ -250,6 +250,6 @@ else
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/paiement/class/cpaiement.class.php b/htdocs/compta/paiement/class/cpaiement.class.php
    index 59f13023b24..26d4ea0510e 100644
    --- a/htdocs/compta/paiement/class/cpaiement.class.php
    +++ b/htdocs/compta/paiement/class/cpaiement.class.php
    @@ -34,15 +34,12 @@ class Cpaiement
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'cpaiement';
    +	
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'c_paiement';
     
    -
    -	/**
    -	 */
    -
     	public $code;
     	public $libelle;
     	public $type;
    @@ -50,9 +47,6 @@ class Cpaiement
     	public $accountancy_code;
     	public $module;
     
    -	/**
    -	 */
    -
     
     	/**
     	 * Constructor
    @@ -141,15 +135,15 @@ class Cpaiement
     		if (!$error) {
     			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element);
     
    -			if (!$notrigger) {
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action to call a trigger.
    +			// Uncomment this and change MYOBJECT to your own tag if you
    +			// want this action to call a trigger.
    +			//if (!$notrigger) {
     
    -				//// Call triggers
    -				//$result=$this->call_trigger('MYOBJECT_CREATE',$user);
    -				//if ($result < 0) $error++;
    -				//// End call triggers
    -			}
    +			//  // Call triggers
    +			//  $result=$this->call_trigger('MYOBJECT_CREATE',$user);
    +			//  if ($result < 0) $error++;
    +			//  // End call triggers
    +			//}
     		}
     
     		// Commit or rollback
    @@ -206,8 +200,6 @@ class Cpaiement
     				$this->active = $obj->active;
     				$this->accountancy_code = $obj->accountancy_code;
     				$this->module = $obj->module;
    -
    -
     			}
     			$this->db->free($resql);
     
    @@ -284,15 +276,15 @@ class Cpaiement
     			dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
     		}
     
    -		if (!$error && !$notrigger) {
    -			// Uncomment this and change MYOBJECT to your own tag if you
    -			// want this action calls a trigger.
    +		// Uncomment this and change MYOBJECT to your own tag if you
    +		// want this action calls a trigger.
    +		//if (!$error && !$notrigger) {
     
    -			//// Call triggers
    -			//$result=$this->call_trigger('MYOBJECT_MODIFY',$user);
    -			//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    -			//// End call triggers
    -		}
    +		//  // Call triggers
    +		//  $result=$this->call_trigger('MYOBJECT_MODIFY',$user);
    +		//  if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    +		//  // End call triggers
    +		//}
     
     		// Commit or rollback
     		if ($error) {
    @@ -322,17 +314,15 @@ class Cpaiement
     
     		$this->db->begin();
     
    -		if (!$error) {
    -			if (!$notrigger) {
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action calls a trigger.
    +		// Uncomment this and change MYOBJECT to your own tag if you
    +		// want this action calls a trigger.
    +		//if (!$error && !$notrigger) {
     
    -				//// Call triggers
    -				//$result=$this->call_trigger('MYOBJECT_DELETE',$user);
    -				//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    -				//// End call triggers
    -			}
    -		}
    +		//  // Call triggers
    +		//  $result=$this->call_trigger('MYOBJECT_DELETE',$user);
    +		//  if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    +		//  // End call triggers
    +		//}
     
     		if (!$error) {
     			$sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element;
    @@ -375,8 +365,5 @@ class Cpaiement
     		$this->active = '';
     		$this->accountancy_code = '';
     		$this->module = '';
    -
    -
     	}
    -
     }
    diff --git a/htdocs/compta/paiement/class/paiement.class.php b/htdocs/compta/paiement/class/paiement.class.php
    index 539c70f591b..c4cb529d895 100644
    --- a/htdocs/compta/paiement/class/paiement.class.php
    +++ b/htdocs/compta/paiement/class/paiement.class.php
    @@ -1,12 +1,14 @@
     <?php
    -/* Copyright (C) 2002-2004 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2010 Laurent Destailleur   <eldy@users.sourceforge.net>
    - * Copyright (C)      2005 Marc Barilley / Ocebo <marc@ocebo.com>
    +/* Copyright (C) 2002-2004  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2010  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005       Marc Barilley / Ocebo   <marc@ocebo.com>
      * Copyright (C) 2012      Cédric Salvador       <csalvador@gpcsolutions.fr>
      * Copyright (C) 2014      Raphaël Doursenaud    <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2014      Marcos García 		 <marcosgdf@gmail.com>
      * Copyright (C) 2015      Juanjo Menent		 <jmenent@2byte.es>
      * Copyright (C) 2018      Ferran Marcet		 <fmarcet@2byte.es>
    + * Copyright (C) 2018      Thibault FOUCART		 <support@ptibogxiv.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -36,36 +38,105 @@ require_once DOL_DOCUMENT_ROOT .'/multicurrency/class/multicurrency.class.php';
      */
     class Paiement extends CommonObject
     {
    -    public $element='payment';
    -    public $table_element='paiement';
    -    public $picto = 'payment';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='payment';
    +
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='paiement';
    +
    +    /**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto = 'payment';
    +
    +	public $facid;
    +	public $datepaye;
     
    -	var $facid;
    -	var $datepaye;
     	/**
     	 * @deprecated
     	 * @see amount, amounts
     	 */
    -    var $total;
    +    public $total;
    +
     	/**
     	 * @deprecated
     	 * @see amount, amounts
     	 */
    -	var $montant;
    -	var $amount;            // Total amount of payment
    -	var $amounts=array();   // Array of amounts
    -	var $multicurrency_amounts=array();   // Array of amounts
    -	var $author;
    -	var $paiementid;	// Type de paiement. Stocke dans fk_paiement
    +	public $montant;
    +
    +	public $amount;            // Total amount of payment
    +	public $amounts=array();   // Array of amounts
    +	public $multicurrency_amounts=array();   // Array of amounts
    +	public $author;
    +	public $paiementid;	// Type de paiement. Stocke dans fk_paiement
     	// de llx_paiement qui est lie aux types de
    -	//paiement de llx_c_paiement
    -	var $num_paiement;	// Numero du CHQ, VIR, etc...
    -	var $num_payment;	// Numero du CHQ, VIR, etc...
    -	var $bank_account;	// Id compte bancaire du paiement
    -	var $bank_line;     // Id de la ligne d'ecriture bancaire
    +    //paiement de llx_c_paiement
    +
    +    /**
    +     * @var string type libelle
    +     */
    +    public $type_libelle;
    +
    +    /**
    +     * @var string type code
    +     */
    +    public $type_code;
    +
    +    /**
    +     * @var string Numero du CHQ, VIR, etc...
    +     * @deprecated
    +     * @see num_payment
    +     */
    +    public $numero;
    +
    +    /**
    +     * @var string Numero du CHQ, VIR, etc...
    +     * @deprecated
    +     * @see num_payment
    +     */
    +    public $num_paiement;
    +
    +    /**
    +     * @var string Numero du CHQ, VIR, etc...
    +     */
    +    public $num_payment;
    +
    +    /**
    +     * @var string Id of external payment mode
    +     */
    +    public $ext_payment_id;
    +
    +    /**
    +     * @var string Name of external payment mode
    +     */
    +    public $ext_payment_site;
    +
    +    /**
    +     * @var int bank account id of payment
    +     * @deprecated
    +     */
    +    public $bank_account;
    +
    +    /**
    +     * @var int bank account id of payment
    +     */
    +    public $fk_account;
    +
    +    /**
    +     * @var int id of payment line in bank account
    +     */
    +    public $bank_line;
    +
     	// fk_paiement dans llx_paiement est l'id du type de paiement (7 pour CHQ, ...)
    -	// fk_paiement dans llx_paiement_facture est le rowid du paiement
    -    var $fk_paiement;    // Type of paiment
    +    // fk_paiement dans llx_paiement_facture est le rowid du paiement
    +    /**
    +     * @var int payment id
    +     */
    +    public $fk_paiement;    // Type of payment
     
     
     	/**
    @@ -73,7 +144,7 @@ class Paiement extends CommonObject
     	 *
     	 *  @param		DoliDB		$db      Database handler
     	 */
    -	function __construct($db)
    +	public function __construct($db)
     	{
     		$this->db = $db;
     	}
    @@ -86,15 +157,15 @@ class Paiement extends CommonObject
     	 *    @param	int		$fk_bank	Id of bank line associated to payment
     	 *    @return   int		            <0 if KO, 0 if not found, >0 if OK
     	 */
    -	function fetch($id, $ref='', $fk_bank='')
    +	public function fetch($id, $ref='', $fk_bank='')
     	{
    -		$sql = 'SELECT p.rowid, p.ref, p.datep as dp, p.amount, p.statut, p.fk_bank,';
    +		$sql = 'SELECT p.rowid, p.ref, p.datep as dp, p.amount, p.statut, p.ext_payment_id, p.ext_payment_site, p.fk_bank,';
     		$sql.= ' c.code as type_code, c.libelle as type_libelle,';
     		$sql.= ' p.num_paiement as num_payment, p.note,';
     		$sql.= ' b.fk_account';
     		$sql.= ' FROM '.MAIN_DB_PREFIX.'paiement as p LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as c ON p.fk_paiement = c.id';
     		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON p.fk_bank = b.rowid';
    -		$sql.= ' WHERE p.entity IN (' . getEntity('facture').')';
    +		$sql.= ' WHERE p.entity IN (' . getEntity('invoice').')';
     		if ($id > 0)
     			$sql.= ' AND p.rowid = '.$id;
     		else if ($ref)
    @@ -121,6 +192,8 @@ class Paiement extends CommonObject
     				$this->type_libelle   = $obj->type_libelle;
     				$this->type_code      = $obj->type_code;
     				$this->statut         = $obj->statut;
    +                $this->ext_payment_id = $obj->ext_payment_id;
    +                $this->ext_payment_site = $obj->ext_payment_site;
     
     				$this->bank_account   = $obj->fk_account; // deprecated
     				$this->fk_account     = $obj->fk_account;
    @@ -215,8 +288,8 @@ class Paiement extends CommonObject
     		}
     		$note = ($this->note_public?$this->note_public:$this->note);
     
    -		$sql = "INSERT INTO ".MAIN_DB_PREFIX."paiement (entity, ref, datec, datep, amount, multicurrency_amount, fk_paiement, num_paiement, note, fk_user_creat)";
    -		$sql.= " VALUES (".$conf->entity.", '".$this->ref."', '". $this->db->idate($now)."', '".$this->db->idate($this->datepaye)."', '".$total."', '".$mtotal."', ".$this->paiementid.", '".$this->num_paiement."', '".$this->db->escape($note)."', ".$user->id.")";
    +		$sql = "INSERT INTO ".MAIN_DB_PREFIX."paiement (entity, ref, datec, datep, amount, multicurrency_amount, fk_paiement, num_paiement, note, ext_payment_id, ext_payment_site, fk_user_creat)";
    +		$sql.= " VALUES (".$conf->entity.", '".$this->db->escape($this->ref)."', '". $this->db->idate($now)."', '".$this->db->idate($this->datepaye)."', ".$total.", ".$mtotal.", ".$this->paiementid.", '".$this->db->escape($this->num_paiement)."', '".$this->db->escape($note)."', ".($this->ext_payment_id?"'".$this->db->escape($this->ext_payment_id)."'":"null").", ".($this->ext_payment_site?"'".$this->db->escape($this->ext_payment_site)."'":"null").", ".$user->id.")";
     
     		dol_syslog(get_class($this)."::Create insert paiement", LOG_DEBUG);
     		$resql = $this->db->query($sql);
    @@ -377,7 +450,7 @@ class Paiement extends CommonObject
     				}
     			}
     
    -			if (! $error)
    +			if (! $error)    // All payments into $this->amounts were recorded without errors
     			{
     				// Appel des triggers
     				$result=$this->call_trigger('PAYMENT_CUSTOMER_CREATE', $user);
    @@ -545,7 +618,7 @@ class Paiement extends CommonObject
     
             	$this->fk_account=$accountid;
     
    -        	require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
    +        	include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
                 dol_syslog("$user->id,$mode,$label,$this->fk_account,$emetteur_nom,$emetteur_banque");
     
    @@ -694,6 +767,7 @@ class Paiement extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Mise a jour du lien entre le paiement et la ligne generee dans llx_bank
     	 *
    @@ -702,6 +776,7 @@ class Paiement extends CommonObject
     	 */
     	function update_fk_bank($id_bank)
     	{
    +        // phpcs:enable
     		$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element.' set fk_bank = '.$id_bank;
     		$sql.= ' WHERE rowid = '.$this->id;
     
    @@ -719,6 +794,7 @@ class Paiement extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Updates the payment date
          *
    @@ -727,29 +803,63 @@ class Paiement extends CommonObject
          */
         function update_date($date)
         {
    -        if (!empty($date) && $this->statut!=1)
    +        // phpcs:enable
    +        $error=0;
    +
    +        if (!empty($date) && $this->statut != 1)
             {
    +            $this->db->begin();
    +
    +            dol_syslog(get_class($this)."::update_date with date = ".$date, LOG_DEBUG);
    +
                 $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element;
                 $sql.= " SET datep = '".$this->db->idate($date)."'";
                 $sql.= " WHERE rowid = ".$this->id;
     
    -            dol_syslog(get_class($this)."::update_date", LOG_DEBUG);
                 $result = $this->db->query($sql);
    -            if ($result)
    +            if (! $result)
                 {
    -            	$this->datepaye = $date;
    +                $error++;
    +                $this->error='Error -1 '.$this->db->error();
    +            }
    +
    +            $type = $this->element;
    +
    +            $sql = "UPDATE ".MAIN_DB_PREFIX.'bank';
    +            $sql.= " SET dateo = '".$this->db->idate($date)."', datev = '".$this->db->idate($date)."'";
    +            $sql.= " WHERE rowid IN (SELECT fk_bank FROM ".MAIN_DB_PREFIX."bank_url WHERE type = '".$type."' AND url_id = ".$this->id.")";
    +            $sql.= " AND rappro = 0";
    +
    +            $result = $this->db->query($sql);
    +            if (! $result)
    +            {
    +                $error++;
    +                $this->error='Error -1 '.$this->db->error();
    +            }
    +
    +            if (! $error)
    +            {
    +
    +            }
    +
    +            if (! $error)
    +            {
    +                $this->datepaye = $date;
                     $this->date = $date;
    +
    +                $this->db->commit();
                     return 0;
                 }
                 else
                 {
    -                $this->error='Error -1 '.$this->db->error();
    +                $this->db->rollback();
                     return -2;
                 }
             }
             return -1; //no date given or already validated
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Updates the payment number
          *
    @@ -758,6 +868,7 @@ class Paiement extends CommonObject
          */
         function update_num($num)
         {
    +        // phpcs:enable
         	if(!empty($num) && $this->statut!=1)
             {
                 $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element;
    @@ -783,9 +894,10 @@ class Paiement extends CommonObject
     	/**
     	 *    Validate payment
     	 *
    -	 *    @return     int     <0 if KO, >0 if OK
    +	 *	  @param	User	$user		User making validation
    +	 *    @return   int     			<0 if KO, >0 if OK
     	 */
    -	function valide()
    +	function valide(User $user=null)
     	{
     		$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element.' SET statut = 1 WHERE rowid = '.$this->id;
     
    @@ -806,9 +918,10 @@ class Paiement extends CommonObject
     	/**
     	 *    Reject payment
     	 *
    -	 *    @return     int     <0 if KO, >0 if OK
    +	 *	  @param	User	$user		User making reject
    +	 *    @return   int     			<0 if KO, >0 if OK
     	 */
    -	function reject()
    +	function reject(User $user=null)
     	{
     		$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element.' SET statut = 2 WHERE rowid = '.$this->id;
     
    @@ -1058,13 +1171,15 @@ class Paiement extends CommonObject
     		if (! empty($conf->dol_no_mouse_hover)) $notooltip=1;   // Force disable tooltips
     
     		$result='';
    -        $label = $langs->trans("ShowPayment").': '.$this->ref;
    +        $label = '<u>'.$langs->trans("ShowPayment").'</u><br>';
    +        $label.= '<strong>'.$langs->trans("Ref").':</strong> '.$this->ref;
    +        $label.= '<br><strong>'.$langs->trans("Date").':</strong> '.dol_print_date($this->datepaye ? $this->datepaye : $this->date, 'dayhour');
             if ($mode == 'withlistofinvoices')
             {
                 $arraybill = $this->getBillsArray();
                 if (is_array($arraybill) && count($arraybill) > 0)
                 {
    -            	require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
    +            	include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
                 	$facturestatic=new Facture($this->db);
                 	foreach ($arraybill as $billid)
                 	{
    @@ -1112,6 +1227,7 @@ class Paiement extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Renvoi le libelle d'un statut donne
     	 *
    @@ -1121,6 +1237,7 @@ class Paiement extends CommonObject
     	 */
     	function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;	// TODO Renvoyer le libelle anglais et faire traduction a affichage
     
     		$langs->load('compta');
    @@ -1162,15 +1279,17 @@ class Paiement extends CommonObject
     		return '';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 *    	Load the third party of object, from id into this->thirdparty
    +	 *  Load the third party of object, from id into this->thirdparty
     	 *
    -	 *		@param		int		$force_thirdparty_id	Force thirdparty id
    -	 *		@return		int								<0 if KO, >0 if OK
    +	 *	@param		int		$force_thirdparty_id	Force thirdparty id
    +	 *	@return		int								<0 if KO, >0 if OK
     	 */
     	function fetch_thirdparty($force_thirdparty_id=0)
     	{
    -		require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php';
    +        // phpcs:enable
    +		include_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php';
     
     		if (empty($force_thirdparty_id))
     		{
    diff --git a/htdocs/compta/paiement/index.php b/htdocs/compta/paiement/index.php
    index 7f1597b5afc..5bcda011615 100644
    --- a/htdocs/compta/paiement/index.php
    +++ b/htdocs/compta/paiement/index.php
    @@ -31,5 +31,6 @@ llxHeader();
     
     print load_fiche_titre("Payments");
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/paiement/info.php b/htdocs/compta/paiement/info.php
    index 9f55761dba0..86e45508b2c 100644
    --- a/htdocs/compta/paiement/info.php
    +++ b/htdocs/compta/paiement/info.php
    @@ -76,5 +76,6 @@ print '</div>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/paiement/list.php b/htdocs/compta/paiement/list.php
    index 064ca877c3f..12669947cff 100644
    --- a/htdocs/compta/paiement/list.php
    +++ b/htdocs/compta/paiement/list.php
    @@ -1,12 +1,13 @@
     <?php
     /* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Cédric Salvador      <csalvador@gpcsolutions.fr>
      * Copyright (C) 2015      Jean-François Ferry  <jfefe@aternatik.fr>
      * Copyright (C) 2015      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2017      Alexandre Spangaro   <aspangaro@zendsi.com>
      * Copyright (C) 2018      Ferran Marcet        <fmarcet@2byte.es>
    + * Copyright (C) 2018      Charlene Benke       <charlie@patas-monkey.com>
      *
      * 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
    @@ -36,7 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php';
     
     // Load translation files required by the page
    -$langs->loadLangs(array('bills', 'compta'));
    +$langs->loadLangs(array('bills', 'compta', 'companies'));
     
     // Security check
     $facid	= GETPOST('facid','int');
    @@ -75,6 +76,8 @@ if (! $sortfield) $sortfield="p.rowid";
     $hookmanager->initHooks(array('paymentlist'));
     $extrafields = new ExtraFields($db);
     
    +$arrayfields=array();
    +
     
     /*
      * Actions
    @@ -118,7 +121,7 @@ if (GETPOST("orphelins"))
     	$sql.=$hookmanager->resPrint;
         $sql.= " FROM ".MAIN_DB_PREFIX."paiement as p LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as c ON p.fk_paiement = c.id";
         $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiement_facture as pf ON p.rowid = pf.fk_paiement";
    -    $sql.= " WHERE p.entity IN (" . getEntity('facture').")";
    +    $sql.= " WHERE p.entity IN (" . getEntity('invoice').")";
         $sql.= " AND pf.fk_facture IS NULL";
     	// Add where from hooks
     	$parameters=array();
    @@ -131,7 +134,7 @@ else
         $sql.= " p.statut, p.num_paiement,";
         $sql.= " c.code as paiement_code,";
         $sql.= " ba.rowid as bid, ba.ref as bref, ba.label as blabel, ba.number, ba.account_number as account_number, ba.fk_accountancy_journal as accountancy_journal,";
    -    $sql.= " s.rowid as socid, s.nom as name";
    +    $sql.= " s.rowid as socid, s.nom as name, s.email";
     	// Add fields for extrafields
     	foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key;
     	// Add fields from hooks
    @@ -149,7 +152,7 @@ else
         {
             $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON s.rowid = sc.fk_soc";
         }
    -    $sql.= " WHERE p.entity IN (" . getEntity('facture') . ")";
    +    $sql.= " WHERE p.entity IN (" . getEntity('invoice') . ")";
         if (! $user->rights->societe->client->voir && ! $socid)
         {
             $sql.= " AND sc.fk_user = " .$user->id;
    @@ -161,19 +164,7 @@ else
             else  $sql.= " AND f.fk_user_author = ".$userid;
         }
         // Search criteria
    -    if ($month > 0)
    -    {
    -        if ($year > 0 && empty($day))
    -        $sql.= " AND p.datep BETWEEN '".$db->idate(dol_get_first_day($year,$month,false))."' AND '".$db->idate(dol_get_last_day($year,$month,false))."'";
    -        else if ($year > 0 && ! empty($day))
    -        $sql.= " AND p.datep BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month, $day, $year))."' AND '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year))."'";
    -        else
    -        $sql.= " AND date_format(p.datep, '%m') = '".$month."'";
    -    }
    -    else if ($year > 0)
    -    {
    -        $sql.= " AND p.datep BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
    -    }
    +    $sql.= dolSqlDateFilter("p.datep", $day, $month, $year);
         if ($search_ref)       		    $sql .= natural_search('p.ref', $search_ref);
         if ($search_account > 0)      	$sql .=" AND b.fk_account=".$search_account;
         if ($search_paymenttype != "")  $sql .=" AND c.code='".$db->escape($search_paymenttype)."'";
    @@ -209,8 +200,8 @@ if ($resql)
         $i = 0;
     
         $param='';
    -    if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    -    if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    +    if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
    +    if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
         $param.=(GETPOST("orphelins")?"&orphelins=1":"");
         $param.=($search_ref?"&search_ref=".urlencode($search_ref):"");
         $param.=($search_company?"&search_company=".urlencode($search_company):"");
    @@ -296,23 +287,28 @@ if ($resql)
         {
             $objp = $db->fetch_object($resql);
     
    +        $paymentstatic->id=$objp->rowid;
    +        $paymentstatic->ref=$objp->ref;
    +
             print '<tr class="oddeven">';
     
             print '<td>';
    -        $paymentstatic->id=$objp->rowid;
    -        $paymentstatic->ref=$objp->ref;
             print $paymentstatic->getNomUrl(1);
             print '</td>';
     
             // Date
    -        print '<td align="center">'.dol_print_date($db->jdate($objp->dp),'day').'</td>';
    +        $dateformatforpayment = 'day';
    +        if (! empty($conf->global->INVOICE_USE_HOURS_FOR_PAYMENT)) $dateformatforpayment='dayhour';
    +        print '<td align="center">'.dol_print_date($db->jdate($objp->dp), $dateformatforpayment).'</td>';
     
             // Thirdparty
             print '<td>';
    -        if ($objp->socid)
    +        if ($objp->socid > 0)
             {
                 $companystatic->id=$objp->socid;
                 $companystatic->name=$objp->name;
    +            $companystatic->email=$objp->email;
    +
                 print $companystatic->getNomUrl(1,'',24);
             }
             else print '&nbsp;';
    @@ -371,5 +367,6 @@ else
         dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/paiement/rapport.php b/htdocs/compta/paiement/rapport.php
    index 3e6427f6ac2..c2c63aea84d 100644
    --- a/htdocs/compta/paiement/rapport.php
    +++ b/htdocs/compta/paiement/rapport.php
    @@ -166,6 +166,6 @@ if ($year)
         }
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/paiement/tovalidate.php b/htdocs/compta/paiement/tovalidate.php
    index e60f65f924e..a037326d9b1 100644
    --- a/htdocs/compta/paiement/tovalidate.php
    +++ b/htdocs/compta/paiement/tovalidate.php
    @@ -71,7 +71,7 @@ if ($socid)
         $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiement_facture as pf ON p.rowid = pf.fk_paiement";
         $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as f ON pf.fk_facture = f.rowid";
     }
    -$sql.= " WHERE p.entity IN (" . getEntity('facture') . ')';
    +$sql.= " WHERE p.entity IN (" . getEntity('invoice') . ')';
     if ($socid)
     {
         $sql.= " AND f.fk_soc = ".$socid;
    @@ -139,5 +139,6 @@ if ($resql)
         print "</table>";
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/paiement_charge.php b/htdocs/compta/paiement_charge.php
    index fba8723d818..0b497510bf6 100644
    --- a/htdocs/compta/paiement_charge.php
    +++ b/htdocs/compta/paiement_charge.php
    @@ -1,6 +1,6 @@
     <?php
    -/* Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2016      Frédéric France      <frederic.france@free.fr>
    +/* Copyright (C) 2004-2014  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2016-2018  Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -17,9 +17,9 @@
      */
     
     /**
    - *	    \file       htdocs/compta/paiement_charge.php
    - *		\ingroup    tax
    - *		\brief      Page to add payment of a tax
    + *      \file       htdocs/compta/paiement_charge.php
    + *      \ingroup    tax
    + *      \brief      Page to add payment of a tax
      */
     
     require '../main.inc.php';
    @@ -147,7 +147,6 @@ if ($action == 'add_payment' || ($action == 'confirm_paiement' && $confirm=='yes
                 }
             }
     	}
    -
     }
     
     
    @@ -226,7 +225,7 @@ if ($action == 'create')
     	print '<tr><td class="fieldrequired">'.$langs->trans("Date").'</td><td>';
     	$datepaye = dol_mktime(12, 0, 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]);
     	$datepayment=empty($conf->global->MAIN_AUTOFILL_DATE)?(empty($_POST["remonth"])?-1:$datepaye):0;
    -	$form->select_date($datepayment,'','','','',"add_payment",1,1);
    +	print $form->selectDate($datepayment, '', '', '', '', "add_payment", 1, 1);
     	print "</td>";
     	print '</tr>';
     
    @@ -265,7 +264,7 @@ if ($action == 'create')
     	print '<table class="noborder" width="100%">';
     	print '<tr class="liste_titre">';
     	//print '<td>'.$langs->trans("SocialContribution").'</td>';
    -	print '<td align="left">'.$langs->trans("DateDue").'</td>';
    +	print '<td class="left">'.$langs->trans("DateDue").'</td>';
     	print '<td align="right">'.$langs->trans("Amount").'</td>';
     	print '<td align="right">'.$langs->trans("AlreadyPaid").'</td>';
     	print '<td align="right">'.$langs->trans("RemainderToPay").'</td>';
    diff --git a/htdocs/compta/payment_sc/card.php b/htdocs/compta/payment_sc/card.php
    index b395016aeed..d1e0fe8e4e9 100644
    --- a/htdocs/compta/payment_sc/card.php
    +++ b/htdocs/compta/payment_sc/card.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004      Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@inodbox.com>
      *
      * 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
    @@ -74,7 +74,8 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->tax->char
     	}
     }
     
    -// Create payment
    +// Validate social contribution
    +/*
     if ($action == 'confirm_valide' && $confirm == 'yes' && $user->rights->tax->charges->creer)
     {
     	$db->begin();
    @@ -111,6 +112,7 @@ if ($action == 'confirm_valide' && $confirm == 'yes' && $user->rights->tax->char
     		$db->rollback();
     	}
     }
    +*/
     
     
     /*
    @@ -144,18 +146,19 @@ dol_fiche_head($head, $hselected, $langs->trans("PaymentSocialContribution"), -1
     if ($action == 'delete')
     {
     	print $form->formconfirm('card.php?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete','',0,2);
    -
     }
     
     /*
      * Validation confirmation of payment
      */
    +/*
     if ($action == 'valide')
     {
     	$facid = $_GET['facid'];
     	print $form->formconfirm('card.php?id='.$object->id.'&amp;facid='.$facid, $langs->trans("ValidatePayment"), $langs->trans("ConfirmValidatePayment"), 'confirm_valide','',0,2);
     
     }
    +*/
     
     
     $linkback = '<a href="' . DOL_URL_ROOT . '/compta/sociales/payments.php">' . $langs->trans("BackToList") . '</a>';
    @@ -316,15 +319,13 @@ if ($action == '')
     		}
     		else
     		{
    -			print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("CantRemovePaymentWithOneInvoicePaid")).'">'.$langs->trans('Delete').'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("CantRemovePaymentWithOneInvoicePaid")).'">'.$langs->trans('Delete').'</a>';
     		}
     	}
     }
     
     print '</div>';
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/prelevement/bons.php b/htdocs/compta/prelevement/bons.php
    index 0cbaa9ce55e..cfe2e2a942c 100644
    --- a/htdocs/compta/prelevement/bons.php
    +++ b/htdocs/compta/prelevement/bons.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2012 Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      * 	\brief      Page liste des bons de prelevements
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
    @@ -74,7 +74,7 @@ llxHeader('',$langs->trans("WithdrawalsReceipts"));
     
     $sql = "SELECT p.rowid, p.ref, p.amount, p.statut, p.datec";
     $sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
    -$sql.= " WHERE p.entity IN (".getEntity('facture').")";
    +$sql.= " WHERE p.entity IN (".getEntity('invoice').")";
     if ($search_ref) $sql.=natural_search("p.ref", $search_ref);
     if ($search_amount) $sql.=natural_search("p.amount", $search_amount, 1);
     
    @@ -183,7 +183,6 @@ else
       dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/prelevement/card.php b/htdocs/compta/prelevement/card.php
    index 343a45472b6..60e471d712d 100644
    --- a/htdocs/compta/prelevement/card.php
    +++ b/htdocs/compta/prelevement/card.php
    @@ -1,7 +1,8 @@
     <?php
    -/* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2005-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2016 Juanjo Menent 		<jmenent@2byte.es>
    +/* Copyright (C) 2005       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2005-2010  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2010-2016  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -23,22 +24,18 @@
      *	\brief      Card of a direct debit
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/prelevement.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/ligneprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
     // Load translation files required by the page
    -$langs->loadLangs(array('banks', 'categories'));
    +$langs->loadLangs(array('banks', 'categories','bills','withdrawals'));
     
     if (!$user->rights->prelevement->bons->lire)
     accessforbidden();
     
    -$langs->load("bills");
    -$langs->load("withdrawals");
    -
    -
     // Security check
     if ($user->societe_id > 0) accessforbidden();
     
    @@ -244,7 +241,7 @@ if ($id > 0 || $ref)
     		print '<tr class="liste_titre">';
     		print '<td colspan="3">'.$langs->trans("NotifyTransmision").'</td></tr>';
     		print '<tr class="oddeven"><td>'.$langs->trans("TransData").'</td><td>';
    -		print $form->select_date('','','','','',"userfile",1,1);
    +		print $form->selectDate('', '', '', '', '', "userfile", 1, 1);
     		print '</td></tr>';
     		print '<tr class="oddeven"><td>'.$langs->trans("TransMetod").'</td><td>';
     		print $form->selectarray("methode",$object->methodes_trans);
    @@ -268,7 +265,7 @@ if ($id > 0 || $ref)
     		print '<tr class="liste_titre">';
     		print '<td colspan="3">'.$langs->trans("NotifyCredit").'</td></tr>';
     		print '<tr class="oddeven"><td>'.$langs->trans('CreditDate').'</td><td>';
    -		print $form->select_date('','','','','',"infocredit",1,1);
    +		print $form->selectDate('', '', '', '', '', "infocredit", 1, 1);
     		print '</td></tr>';
     		print '</table>';
     		print '<br>'.$langs->trans("ThisWillAlsoAddPaymentOnInvoice");
    @@ -419,6 +416,6 @@ if ($id > 0 || $ref)
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php
    index 245b25be3b6..143b73fbaeb 100644
    --- a/htdocs/compta/prelevement/class/bonprelevement.class.php
    +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2015 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2010-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2014-2016 Ferran Marcet       <fmarcet@2byte.es>
    @@ -39,29 +39,40 @@ require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
      */
     class BonPrelevement extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='widthdraw';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='prelevement_bons';
    -	public $picto = 'payment';
     
    -	var $date_echeance;
    -	var $raison_sociale;
    -	var $reference_remise;
    -	var $emetteur_code_guichet;
    -	var $emetteur_numero_compte;
    -	var $emetteur_code_banque;
    -	var $emetteur_number_key;
    +    /**
    +     * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +     */
    +    public $picto = 'payment';
     
    -	var $emetteur_iban;
    -	var $emetteur_bic;
    -	var $emetteur_ics;
    +	public $date_echeance;
    +	public $raison_sociale;
    +	public $reference_remise;
    +	public $emetteur_code_guichet;
    +	public $emetteur_numero_compte;
    +	public $emetteur_code_banque;
    +	public $emetteur_number_key;
     
    -	var $total;
    -	var $_fetched;
    -	var $statut;    // 0-Wait, 1-Trans, 2-Done
    -	var $labelstatut=array();
    +	public $emetteur_iban;
    +	public $emetteur_bic;
    +	public $emetteur_ics;
     
    -	var $invoice_in_error=array();
    -	var $thirdparty_in_error=array();
    +	public $total;
    +	public $fetched;
    +	public $statut;    // 0-Wait, 1-Trans, 2-Done
    +	public $labelstatut=array();
    +
    +	public $invoice_in_error=array();
    +	public $thirdparty_in_error=array();
     
     
     	/**
    @@ -98,9 +109,10 @@ class BonPrelevement extends CommonObject
     
     		$this->methodes_trans[0] = "Internet";
     
    -		$this->_fetched = 0;
    +		$this->fetched = 0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Add invoice to withdrawal
     	 *
    @@ -116,6 +128,7 @@ class BonPrelevement extends CommonObject
     	 */
     	function AddFacture($facture_id, $client_id, $client_nom, $amount, $code_banque, $code_guichet, $number, $number_key)
     	{
    +        // phpcs:enable
     		$result = 0;
     		$line_id = 0;
     
    @@ -156,7 +169,6 @@ class BonPrelevement extends CommonObject
     		}
     
     		return $result;
    -
     	}
     
     	/**
    @@ -235,7 +247,6 @@ class BonPrelevement extends CommonObject
     				dol_syslog(get_class($this)."::addline Error -2");
     				$result = -2;
     			}
    -
     		}
     
     		return $result;
    @@ -277,7 +288,7 @@ class BonPrelevement extends CommonObject
     		$sql.= ", p.fk_user_credit";
     		$sql.= ", p.statut";
     		$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
    -		$sql.= " WHERE p.entity IN (".getEntity('facture').")";
    +		$sql.= " WHERE p.entity IN (".getEntity('invoice').")";
     		if ($rowid > 0) $sql.= " AND p.rowid = ".$rowid;
     		else $sql.= " AND p.ref = '".$this->db->escape($ref)."'";
     
    @@ -304,7 +315,7 @@ class BonPrelevement extends CommonObject
     
     				$this->statut             = $obj->statut;
     
    -				$this->_fetched = 1;
    +				$this->fetched = 1;
     
     				return 1;
     			}
    @@ -320,6 +331,7 @@ class BonPrelevement extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set credite and set status of linked invoices. Still used ??
     	 *
    @@ -327,6 +339,7 @@ class BonPrelevement extends CommonObject
     	 */
     	function set_credite()
     	{
    +        // phpcs:enable
     		global $user,$conf;
     
     		$error = 0;
    @@ -397,6 +410,7 @@ class BonPrelevement extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set direct debit order to "credited" status.
     	 *
    @@ -406,11 +420,12 @@ class BonPrelevement extends CommonObject
     	 */
     	function set_infocredit($user, $date)
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$error = 0;
     
    -		if ($this->_fetched == 1)
    +		if ($this->fetched == 1)
     		{
     			if ($date >= $this->date_trans)
     			{
    @@ -499,7 +514,6 @@ class BonPrelevement extends CommonObject
     							dol_syslog(get_class($this)."::set_infocredit Update lines Error");
     							$error++;
     						}
    -
     					}
     					else
     					{
    @@ -543,6 +557,7 @@ class BonPrelevement extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set withdrawal to transmited status
     	 *
    @@ -553,6 +568,7 @@ class BonPrelevement extends CommonObject
     	 */
     	function set_infotrans($user, $date, $method)
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$error = 0;
    @@ -667,6 +683,7 @@ class BonPrelevement extends CommonObject
     		return $arr;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Returns amount of withdrawal
     	 *
    @@ -674,6 +691,7 @@ class BonPrelevement extends CommonObject
     	 */
     	function SommeAPrelever()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$sql = "SELECT sum(pfd.amount) as nb";
    @@ -681,7 +699,7 @@ class BonPrelevement extends CommonObject
     		$sql.= " ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
     		//$sql.= " ,".MAIN_DB_PREFIX."c_paiement as cp";
     		$sql.= " WHERE f.fk_statut = 1";
    -		$sql.= " AND f.entity = ".$conf->entity;
    +		$sql.= " AND f.entity IN (".getEntity('invoice').")";
     		$sql.= " AND f.rowid = pfd.fk_facture";
     		$sql.= " AND f.paye = 0";
     		$sql.= " AND pfd.traite = 0";
    @@ -704,6 +722,7 @@ class BonPrelevement extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Get number of invoices to withdrawal
     	 *	TODO delete params banque and agence when not necesary
    @@ -714,13 +733,14 @@ class BonPrelevement extends CommonObject
     	 */
     	function NbFactureAPrelever($banque=0,$agence=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$sql = "SELECT count(f.rowid) as nb";
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
     		$sql.= ", ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
     		$sql.= " WHERE f.fk_statut = 1";
    -		$sql.= " AND f.entity = ".$conf->entity;
    +		$sql.= " AND f.entity IN (".getEntity('invoice').")";
     		$sql.= " AND f.rowid = pfd.fk_facture";
     		$sql.= " AND f.paye = 0";
     		$sql.= " AND pfd.traite = 0";
    @@ -745,6 +765,7 @@ class BonPrelevement extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Create a withdraw
     	 *  TODO delete params banque and agence when not necesary
    @@ -758,20 +779,21 @@ class BonPrelevement extends CommonObject
     	 */
     	function Create($banque=0, $agence=0, $mode='real', $format='ALL',$executiondate='')
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		dol_syslog(__METHOD__."::Bank=".$banque." Office=".$agence." mode=".$mode." format=".$format, LOG_DEBUG);
     
    -		require_once (DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php");
    -		require_once (DOL_DOCUMENT_ROOT."/societe/class/societe.class.php");
    +		require_once DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php";
    +		require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php";
     
     		if (empty($format)) return 'ErrorBadParametersForDirectDebitFileCreate';
     
     		$error = 0;
     
     		$datetimeprev = time();
    -                //Choice the date of the execution direct debit
    -                if(!empty($executiondate)) $datetimeprev = $executiondate;
    +        //Choice the date of the execution direct debit
    +        if(!empty($executiondate)) $datetimeprev = $executiondate;
     
     		$month = strftime("%m", $datetimeprev);
     		$year = strftime("%Y", $datetimeprev);
    @@ -798,7 +820,7 @@ class BonPrelevement extends CommonObject
     			$sql.= ", ".MAIN_DB_PREFIX."societe as s";
     			$sql.= ", ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
     			$sql.= " WHERE f.rowid = pfd.fk_facture";
    -			$sql.= " AND f.entity IN (".getEntity('facture').')';
    +			$sql.= " AND f.entity IN (".getEntity('invoice').')';
     			$sql.= " AND s.rowid = f.fk_soc";
     			//if ($banque || $agence) $sql.= " AND s.rowid = sr.fk_soc";
     			$sql.= " AND f.fk_statut = 1";
    @@ -1034,10 +1056,8 @@ class BonPrelevement extends CommonObject
     							$error++;
     							dol_syslog(__METHOD__."::Update Orders::Error=".$this->db->error(), LOG_ERR);
     						}
    -
     					}
     				}
    -
     			}
     
     			if (!$error)
    @@ -1180,6 +1200,7 @@ class BonPrelevement extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Delete a notification def by id
     	 *
    @@ -1188,6 +1209,7 @@ class BonPrelevement extends CommonObject
     	 */
     	function DeleteNotificationById($rowid)
     	{
    +        // phpcs:enable
     		$result = 0;
     
     		$sql = "DELETE FROM ".MAIN_DB_PREFIX."notify_def";
    @@ -1203,6 +1225,7 @@ class BonPrelevement extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Delete a notification
     	 *
    @@ -1212,6 +1235,7 @@ class BonPrelevement extends CommonObject
     	 */
     	function DeleteNotification($user, $action)
     	{
    +        // phpcs:enable
     		$result = 0;
     
     		$sql = "DELETE FROM ".MAIN_DB_PREFIX."notify_def";
    @@ -1227,6 +1251,7 @@ class BonPrelevement extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Add a notification
     	 *
    @@ -1237,6 +1262,7 @@ class BonPrelevement extends CommonObject
     	 */
     	function AddNotification($db, $user, $action)
     	{
    +        // phpcs:enable
     		$result = 0;
     
     		if ($this->DeleteNotification($user, $action) == 0)
    @@ -1323,7 +1349,7 @@ class BonPrelevement extends CommonObject
     
     			$sql = "SELECT soc.code_client as code, soc.address, soc.zip, soc.town, c.code as country_code,";
     			$sql.= " pl.client_nom as nom, pl.code_banque as cb, pl.code_guichet as cg, pl.number as cc, pl.amount as somme,";
    -			$sql.= " f.facnumber as fac, pf.fk_facture as idfac, rib.datec, rib.iban_prefix as iban, rib.bic as bic, rib.rowid as drum";
    +			$sql.= " f.ref as fac, pf.fk_facture as idfac, rib.datec, rib.iban_prefix as iban, rib.bic as bic, rib.rowid as drum";
     			$sql.= " FROM";
     			$sql.= " ".MAIN_DB_PREFIX."prelevement_lignes as pl,";
     			$sql.= " ".MAIN_DB_PREFIX."facture as f,";
    @@ -1449,10 +1475,10 @@ class BonPrelevement extends CommonObject
     		if (! empty($conf->global->MAIN_UMASK))
     		@chmod($this->file, octdec($conf->global->MAIN_UMASK));
     		return $result;
    -
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Write recipient of request (customer)
     	 *
    @@ -1462,13 +1488,14 @@ class BonPrelevement extends CommonObject
     	 *	@param	string	$rib_guichet 	code of bank office
     	 *	@param	string	$rib_number		bank account
     	 *	@param	float	$amount			amount
    -	 *	@param	string	$facnumber		ref of invoice
    +	 *	@param	string	$ref		ref of invoice
     	 *	@param	int		$facid			id of invoice
     	 *  @param	string	$rib_dom		rib domiciliation
     	 *	@return	void
     	 */
    -	function EnregDestinataire($rowid, $client_nom, $rib_banque, $rib_guichet, $rib_number, $amount, $facnumber, $facid, $rib_dom='')
    +	function EnregDestinataire($rowid, $client_nom, $rib_banque, $rib_guichet, $rib_number, $amount, $ref, $facid, $rib_dom='')
     	{
    +        // phpcs:enable
     		fputs($this->file, "06");
     		fputs($this->file, "08"); // Prelevement ordinaire
     
    @@ -1510,7 +1537,7 @@ class BonPrelevement extends CommonObject
     
     		// Libelle F
     
    -		fputs($this->file, substr("*_".$facnumber."_RDVnet".$rowid."                               ", 0, 31));
    +		fputs($this->file, substr("*_".$ref."_RDVnet".$rowid."                               ", 0, 31));
     
     		// Code etablissement G1
     
    @@ -1539,6 +1566,7 @@ class BonPrelevement extends CommonObject
     		return $pre.$row_code_client.'-'.$row_drum.'-'.date('U', $row_datec);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Write recipient of request (customer)
     	 *
    @@ -1552,7 +1580,7 @@ class BonPrelevement extends CommonObject
     	 *	@param	string		$row_cg				pl.code_guichet AS cg,		Not used for SEPA
     	 *	@param	string		$row_cc				pl.number AS cc,			Not used for SEPA
     	 *	@param	string		$row_somme			pl.amount AS somme,
    -	 *	@param	string		$row_facnumber		f.facnumber
    +	 *	@param	string		$row_ref		f.ref
     	 *	@param	string		$row_idfac			pf.fk_facture AS idfac,
     	 *	@param	string		$row_iban			rib.iban_prefix AS iban,
     	 *	@param	string		$row_bic			rib.bic AS bic,
    @@ -1560,8 +1588,9 @@ class BonPrelevement extends CommonObject
     	 *	@param	string		$row_drum			rib.rowid used to generate rum
     	 *	@return	string							Return string with SEPA part DrctDbtTxInf
     	 */
    -	function EnregDestinataireSEPA($row_code_client, $row_nom, $row_address, $row_zip, $row_town, $row_country_code, $row_cb, $row_cg, $row_cc, $row_somme, $row_facnumber, $row_idfac, $row_iban, $row_bic, $row_datec, $row_drum)
    +	function EnregDestinataireSEPA($row_code_client, $row_nom, $row_address, $row_zip, $row_town, $row_country_code, $row_cb, $row_cg, $row_cc, $row_somme, $row_ref, $row_idfac, $row_iban, $row_bic, $row_datec, $row_drum)
     	{
    +        // phpcs:enable
     		$CrLf = "\n";
     		$Rowing = sprintf("%06d", $row_idfac);
     
    @@ -1575,7 +1604,8 @@ class BonPrelevement extends CommonObject
     		$XML_DEBITOR ='';
     		$XML_DEBITOR .='			<DrctDbtTxInf>'.$CrLf;
     		$XML_DEBITOR .='				<PmtId>'.$CrLf;
    -		$XML_DEBITOR .='					<EndToEndId>'.('AS-'.dol_trunc($row_facnumber,20).'-'.$Rowing).'</EndToEndId>'.$CrLf;          // ISO20022 states that EndToEndId has a MaxLength of 35 characters
    +	//	$XML_DEBITOR .='					<EndToEndId>'.('AS-'.dol_trunc($row_ref,20).'-'.$Rowing).'</EndToEndId>'.$CrLf;          // ISO20022 states that EndToEndId has a MaxLength of 35 characters
    +		$XML_DEBITOR .='					<EndToEndId>'.(($conf->global->PRELEVEMENT_END_TO_END != "" ) ? $conf->global->PRELEVEMENT_END_TO_END : ('AS-'.dol_trunc($row_ref,20)).'-'.$Rowing).'</EndToEndId>'.$CrLf;          // ISO20022 states that EndToEndId has a MaxLength of 35 characters
     		$XML_DEBITOR .='				</PmtId>'.$CrLf;
     		$XML_DEBITOR .='				<InstdAmt Ccy="EUR">'.round($row_somme, 2).'</InstdAmt>'.$CrLf;
     		$XML_DEBITOR .='				<DrctDbtTx>'.$CrLf;
    @@ -1606,14 +1636,16 @@ class BonPrelevement extends CommonObject
     		$XML_DEBITOR .='					</Id>'.$CrLf;
     		$XML_DEBITOR .='				</DbtrAcct>'.$CrLf;
     		$XML_DEBITOR .='				<RmtInf>'.$CrLf;
    -	//	$XML_DEBITOR .='					<Ustrd>'.($row_facnumber.'/'.$Rowing.'/'.$Rum).'</Ustrd>'.$CrLf;
    -		$XML_DEBITOR .='					<Ustrd>'.dol_trunc($row_facnumber, 135).'</Ustrd>'.$CrLf;        // 140 max
    +	//	$XML_DEBITOR .='					<Ustrd>'.($row_ref.'/'.$Rowing.'/'.$Rum).'</Ustrd>'.$CrLf;
    +	//	$XML_DEBITOR .='					<Ustrd>'.dol_trunc($row_ref, 135).'</Ustrd>'.$CrLf;        // 140 max
    +		$XML_DEBITOR .='					<Ustrd>'.(($conf->global->PRELEVEMENT_USTRD != "" ) ? $conf->global->PRELEVEMENT_USTRD : dol_trunc($row_ref, 135) ).'</Ustrd>'.$CrLf;        // 140 max
     		$XML_DEBITOR .='				</RmtInf>'.$CrLf;
     		$XML_DEBITOR .='			</DrctDbtTxInf>'.$CrLf;
     		return $XML_DEBITOR;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Write sender of request (me)
     	 *
    @@ -1621,6 +1653,7 @@ class BonPrelevement extends CommonObject
     	 */
     	function EnregEmetteur()
     	{
    +        // phpcs:enable
     		fputs($this->file, "03");
     		fputs($this->file, "08"); // Prelevement ordinaire
     
    @@ -1677,9 +1710,9 @@ class BonPrelevement extends CommonObject
     		fputs($this->file, substr("                                        ",0,5));
     
     		fputs($this->file, "\n");
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Write sender of request (me).
     	 *  Note: The tag PmtInf is opened here but closed into caller
    @@ -1694,6 +1727,7 @@ class BonPrelevement extends CommonObject
     	 */
     	function EnregEmetteurSEPA($configuration, $ladate, $nombre, $total, $CrLf='\n', $format='FRST')
     	{
    +        // phpcs:enable
     		// SEPA INITIALISATION
     		global $conf;
     
    @@ -1801,6 +1835,7 @@ class BonPrelevement extends CommonObject
     		return $XML_SEPA_INFO;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Write end
     	 *
    @@ -1809,6 +1844,7 @@ class BonPrelevement extends CommonObject
     	 */
     	function EnregTotal($total)
     	{
    +        // phpcs:enable
     		fputs($this->file, "08");
     		fputs($this->file, "08"); // Prelevement ordinaire
     
    @@ -1873,6 +1909,7 @@ class BonPrelevement extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return status label for a status
     	 *
    @@ -1882,6 +1919,7 @@ class BonPrelevement extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     		if (empty($this->labelstatut))
     		{
     			global $langs;
    @@ -1891,45 +1929,39 @@ class BonPrelevement extends CommonObject
     			$this->labelstatut[2]=$langs->trans("StatusCredited");
     		}
     
    -		if ($mode == 0)
    +		if ($mode == 0 || $mode == 1)
     		{
     			return $this->labelstatut[$statut];
     		}
    -		if ($mode == 1)
    -		{
    -			return $this->labelstatut[$statut];
    -		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut==0) return img_picto($this->labelstatut[$statut],'statut1').' '.$this->labelstatut[$statut];
     			if ($statut==1) return img_picto($this->labelstatut[$statut],'statut3').' '.$this->labelstatut[$statut];
     			if ($statut==2) return img_picto($this->labelstatut[$statut],'statut6').' '.$this->labelstatut[$statut];
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut==0) return img_picto($this->labelstatut[$statut],'statut1');
     			if ($statut==1) return img_picto($this->labelstatut[$statut],'statut3');
     			if ($statut==2) return img_picto($this->labelstatut[$statut],'statut6');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut==0) return img_picto($this->labelstatut[$statut],'statut1').' '.$this->labelstatut[$statut];
     			if ($statut==1) return img_picto($this->labelstatut[$statut],'statut3').' '.$this->labelstatut[$statut];
     			if ($statut==2) return img_picto($this->labelstatut[$statut],'statut6').' '.$this->labelstatut[$statut];
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut==0) return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut1');
     			if ($statut==1) return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut3');
     			if ($statut==2) return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut6');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($statut==0) return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut1');
     			if ($statut==1) return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut3');
     			if ($statut==2) return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut6');
     		}
     	}
    -
     }
    -
    diff --git a/htdocs/compta/prelevement/class/ligneprelevement.class.php b/htdocs/compta/prelevement/class/ligneprelevement.class.php
    index fa8545c4ea2..7e100022c7a 100644
    --- a/htdocs/compta/prelevement/class/ligneprelevement.class.php
    +++ b/htdocs/compta/prelevement/class/ligneprelevement.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2011 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
      *
    @@ -31,8 +31,15 @@
      */
     class LignePrelevement
     {
    -	var $id;
    -	var $db;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	var $statuts = array();
     
    @@ -121,6 +128,7 @@ class LignePrelevement
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Return status label for a status
     	 *
    @@ -130,25 +138,26 @@ class LignePrelevement
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
     		{
     			return $langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut1').' '.$langs->trans($this->statuts[$statut]);   // Waiting
     			if ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);   // Credited
     			if ($statut==3) return img_picto($langs->trans($this->statuts[$statut]),'statut8').' '.$langs->trans($this->statuts[$statut]);   // Refused
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut1');
     			if ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut6');
     			if ($statut==3) return img_picto($langs->trans($this->statuts[$statut]),'statut8');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut==0) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]),'statut1');
     			if ($statut==2) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]),'statut6');
    @@ -173,4 +182,3 @@ class LignePrelevement
     		return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
     	}
     }
    -
    diff --git a/htdocs/compta/prelevement/class/rejetprelevement.class.php b/htdocs/compta/prelevement/class/rejetprelevement.class.php
    index 87de138e63a..4797121a24c 100644
    --- a/htdocs/compta/prelevement/class/rejetprelevement.class.php
    +++ b/htdocs/compta/prelevement/class/rejetprelevement.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2013 Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -30,8 +30,15 @@
      */
     class RejetPrelevement
     {
    -	var $id;
    -	var $db;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     
     	/**
    @@ -62,7 +69,6 @@ class RejetPrelevement
     
         	$this->facturer[0]=$langs->trans("NoInvoiceRefused");
     		$this->facturer[1]=$langs->trans("InvoiceRefused");
    -
     	}
     
     	/**
    @@ -169,7 +175,6 @@ class RejetPrelevement
     					$error++;
     					dol_syslog("RejetPrelevement::Create Error payment validation");
     				}
    -
     			}
     			//Tag invoice as unpaid
     			dol_syslog("RejetPrelevement::Create set_unpaid fac ".$fac->ref);
    @@ -191,9 +196,9 @@ class RejetPrelevement
     			dol_syslog("RejetPrelevement::Create Rollback");
     			$this->db->rollback();
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Send email to all users that has asked the withdraw request
     	 *
    @@ -202,6 +207,7 @@ class RejetPrelevement
     	 */
     	function _send_email($fac)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$userid = 0;
    @@ -288,7 +294,7 @@ class RejetPrelevement
     		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as f ON (pf.fk_facture = f.rowid)";
     		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."prelevement_lignes as pl ON (pf.fk_prelevement_lignes = pl.rowid)";
     		$sql.= " WHERE pf.fk_prelevement_lignes = ".$this->id;
    -		$sql.= " AND f.entity = ".$conf->entity;
    +		$sql.= " AND f.entity IN  (".getEntity('invoice').")";
     
     		$resql=$this->db->query($sql);
     		if ($resql)
    @@ -320,7 +326,6 @@ class RejetPrelevement
     		}
     
     		return $arr;
    -
     	}
     
     	/**
    @@ -364,6 +369,4 @@ class RejetPrelevement
     			return -2;
     		}
     	}
    -
     }
    -
    diff --git a/htdocs/compta/prelevement/create.php b/htdocs/compta/prelevement/create.php
    index 9cc2cf77867..2c542f9bad0 100644
    --- a/htdocs/compta/prelevement/create.php
    +++ b/htdocs/compta/prelevement/create.php
    @@ -1,9 +1,11 @@
     <?php
    -/* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2010-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2010-2012 Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2018      Nicolas ZABOURI      <info@inovea-conseil.com>
    +/* Copyright (C) 2005       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2010-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2009  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2010-2012  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2018       Nicolas ZABOURI         <info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + * Copyright (C) 2019      Markus Welters       <markus@welters.de>
      *
      * 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
    @@ -25,7 +27,7 @@
      *	\brief      Prelevement creation page
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
     require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
    @@ -45,7 +47,7 @@ $result = restrictedArea($user, 'prelevement', '', '', 'bons');
     $action = GETPOST('action','alpha');
     $mode = GETPOST('mode','alpha')?GETPOST('mode','alpha'):'real';
     $format = GETPOST('format','aZ09');
    -$limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit;
    +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
     $page = GETPOST("page",'int');
     if (empty($page) || $page == -1) { $page = 0; }     // If $page is not defined, or '' or -1
     $offset = $limit * $page;
    @@ -66,7 +68,7 @@ if ($action == 'create')
     {
     	// $conf->global->PRELEVEMENT_CODE_BANQUE and $conf->global->PRELEVEMENT_CODE_GUICHET should be empty
     	$bprev = new BonPrelevement($db);
    -        $executiondate = dol_mktime(0, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear'));
    +        $executiondate = dol_mktime(0, 0, 0, GETPOST('remonth'), (GETPOST('reday')+$conf->global->PRELEVEMENT_ADDDAYS), GETPOST('reyear'));
     
             $result = $bprev->create($conf->global->PRELEVEMENT_CODE_BANQUE, $conf->global->PRELEVEMENT_CODE_GUICHET, $mode, $format,$executiondate);
     	if ($result < 0)
    @@ -153,31 +155,30 @@ print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">'
     if ($nb) {
         if ($pricetowithdraw) {
             print $langs->trans('ExecutionDate').' ';
    -        print $form->select_date();
    +        print $form->selectDate();
             if ($mysoc->isInEEC()) {
                 print '<select name="format"><option value="FRST">'.$langs->trans('SEPAFRST').'</option><option value="RCUR">'.$langs->trans('SEPARCUR').'</option></select>';
                 print '<input class="butAction" type="submit" value="' . $langs->trans("CreateForSepa") . '"/>';
             } else {
                 print '<a class="butAction"  type="submit" href="create.php?action=create&format=ALL">' . $langs->trans("CreateAll") . "</a>\n";
     		}
    -
     		}
     		else
     		{
     		if ($mysoc->isInEEC())
     		{
    -			print '<a class="butActionRefused" href="#">'.$langs->trans("CreateForSepaFRST")."</a>\n";
    -			print '<a class="butActionRefused" href="#">'.$langs->trans("CreateForSepaRCUR")."</a>\n";
    +			print '<a class="butActionRefused classfortooltip" href="#">'.$langs->trans("CreateForSepaFRST")."</a>\n";
    +			print '<a class="butActionRefused classfortooltip" href="#">'.$langs->trans("CreateForSepaRCUR")."</a>\n";
     		}
     		else
     		{
    -			print '<a class="butActionRefused" href="#">'.$langs->trans("CreateAll")."</a>\n";
    +			print '<a class="butActionRefused classfortooltip" href="#">'.$langs->trans("CreateAll")."</a>\n";
     		}
     	}
     }
     else
     {
    -	print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NoInvoiceToWithdraw", $langs->transnoentitiesnoconv("StandingOrders"))).'">'.$langs->trans("CreateAll")."</a>\n";
    +	print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NoInvoiceToWithdraw", $langs->transnoentitiesnoconv("StandingOrders"))).'">'.$langs->trans("CreateAll")."</a>\n";
     }
     
     print "</div>\n";
    @@ -188,13 +189,13 @@ print '<br>';
      * Invoices waiting for withdraw
      */
     
    -$sql = "SELECT f.facnumber, f.rowid, f.total_ttc, s.nom as name, s.rowid as socid,";
    +$sql = "SELECT f.ref, f.rowid, f.total_ttc, s.nom as name, s.rowid as socid,";
     $sql.= " pfd.date_demande, pfd.amount";
     $sql.= " FROM ".MAIN_DB_PREFIX."facture as f,";
     $sql.= " ".MAIN_DB_PREFIX."societe as s,";
     $sql.= " ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
     $sql.= " WHERE s.rowid = f.fk_soc";
    -$sql.= " AND f.entity = ".$conf->entity;
    +$sql.= " AND f.entity IN (".getEntity('invoice').")";
     $sql.= " AND pfd.traite = 0";
     $sql.= " AND pfd.fk_facture = f.rowid";
     if ($socid) $sql.= " AND f.fk_soc = ".$socid;
    @@ -249,7 +250,7 @@ if ($resql)
     			print '<tr class="oddeven">';
     			print '<td>';
     			$invoicestatic->id=$obj->rowid;
    -			$invoicestatic->ref=$obj->facnumber;
    +			$invoicestatic->ref=$obj->ref;
     			print $invoicestatic->getNomUrl(1,'withdraw');
     			print '</td>';
     			// Thirdparty
    @@ -303,7 +304,7 @@ print load_fiche_titre($langs->trans("LastWithdrawalReceipts",$limit),'','');
     $sql = "SELECT p.rowid, p.ref, p.amount, p.statut";
     $sql.= ", p.datec";
     $sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
    -$sql.= " WHERE p.entity IN (".getEntity('facture').")";
    +$sql.= " WHERE p.entity IN (".getEntity('invoice').")";
     $sql.= " ORDER BY datec DESC";
     $sql.=$db->plimit($limit);
     
    @@ -348,5 +349,6 @@ else
     }
     */
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/prelevement/demandes.php b/htdocs/compta/prelevement/demandes.php
    index d20f92cb188..4c8fdeba602 100644
    --- a/htdocs/compta/prelevement/demandes.php
    +++ b/htdocs/compta/prelevement/demandes.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012 Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *  \brief      Page to list withdraw requests
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/modules/modPrelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
     require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
    @@ -52,7 +52,7 @@ $offset = $limit * $page;
     $pageprev = $page - 1;
     $pagenext = $page + 1;
     if (! $sortorder) $sortorder="DESC";
    -if (! $sortfield) $sortfield="f.facnumber";
    +if (! $sortfield) $sortfield="f.ref";
     
     
     /*
    @@ -66,7 +66,7 @@ $invoicestatic=new Facture($db);
     
     // List of requests
     
    -$sql= "SELECT f.facnumber, f.rowid, f.total_ttc,";
    +$sql= "SELECT f.ref, f.rowid, f.total_ttc,";
     $sql.= " s.nom as name, s.rowid as socid,";
     $sql.= " pfd.date_demande as date_demande,";
     $sql.= " pfd.fk_user_demande";
    @@ -75,7 +75,7 @@ $sql.= " ".MAIN_DB_PREFIX."societe as s,";
     $sql.= " ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
     if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
     $sql.= " WHERE s.rowid = f.fk_soc";
    -$sql.= " AND f.entity = ".$conf->entity;
    +$sql.= " AND f.entity IN (".getEntity('invoice').")";
     if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
     if ($socid) $sql.= " AND f.fk_soc = ".$socid;
     if (!$statut) $sql.= " AND pfd.traite = 0";
    @@ -138,7 +138,7 @@ if ($resql)
     		// Ref facture
     		print '<td>';
     		$invoicestatic->id=$obj->rowid;
    -		$invoicestatic->ref=$obj->facnumber;
    +		$invoicestatic->ref=$obj->ref;
     		print $invoicestatic->getNomUrl(1,'withdraw');
     		print '</td>';
     
    @@ -167,5 +167,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/prelevement/factures.php b/htdocs/compta/prelevement/factures.php
    index 2eabd64873d..c6add6da5b8 100644
    --- a/htdocs/compta/prelevement/factures.php
    +++ b/htdocs/compta/prelevement/factures.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2012 Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *     \brief      Page liste des factures prelevees
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/prelevement.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/rejetprelevement.class.php';
    @@ -134,7 +134,6 @@ if ($prev_id > 0 || $ref)
     		print '</div>';
     
     		dol_fiche_end();
    -
         }
       	else
         {
    @@ -145,7 +144,7 @@ if ($prev_id > 0 || $ref)
     
     // List of invoices
     $sql = "SELECT pf.rowid,";
    -$sql.= " f.rowid as facid, f.facnumber as ref, f.total_ttc,";
    +$sql.= " f.rowid as facid, f.ref as ref, f.total_ttc,";
     $sql.= " s.rowid as socid, s.nom as name, pl.statut, pl.amount as amount_requested";
     $sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
     $sql.= ", ".MAIN_DB_PREFIX."prelevement_lignes as pl";
    @@ -156,7 +155,7 @@ $sql.= " WHERE pf.fk_prelevement_lignes = pl.rowid";
     $sql.= " AND pl.fk_prelevement_bons = p.rowid";
     $sql.= " AND f.fk_soc = s.rowid";
     $sql.= " AND pf.fk_facture = f.rowid";
    -$sql.= " AND f.entity = ".$conf->entity;
    +$sql.= " AND f.entity IN (".getEntity('invoice').")";
     if ($prev_id) $sql.= " AND p.rowid=".$prev_id;
     if ($socid) $sql.= " AND s.rowid = ".$socid;
     $sql.= $db->order($sortfield,$sortorder);
    @@ -296,7 +295,6 @@ else
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/prelevement/fiche-rejet.php b/htdocs/compta/prelevement/fiche-rejet.php
    index 113153bc896..2daf4bbf427 100644
    --- a/htdocs/compta/prelevement/fiche-rejet.php
    +++ b/htdocs/compta/prelevement/fiche-rejet.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005      Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2012 Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *		\brief      Withdraw reject
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/prelevement.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/rejetprelevement.class.php';
    @@ -135,7 +135,6 @@ if ($prev_id > 0 || $ref)
     		print '</div>';
     
     		dol_fiche_end();
    -
         }
       	else
         {
    @@ -245,5 +244,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/prelevement/fiche-stat.php b/htdocs/compta/prelevement/fiche-stat.php
    index c126212f17c..731bc1dc81d 100644
    --- a/htdocs/compta/prelevement/fiche-stat.php
    +++ b/htdocs/compta/prelevement/fiche-stat.php
    @@ -23,7 +23,7 @@
      *	\brief      Prelevement statistics
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/prelevement.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/ligneprelevement.class.php';
    @@ -132,7 +132,6 @@ if ($prev_id > 0 || $ref)
     		print '</div>';
     
     		dol_fiche_end();
    -
     	}
     	else
     	{
    @@ -193,5 +192,6 @@ if ($prev_id > 0 || $ref)
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/prelevement/index.php b/htdocs/compta/prelevement/index.php
    index de99b56eb19..9579057658d 100644
    --- a/htdocs/compta/prelevement/index.php
    +++ b/htdocs/compta/prelevement/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2013      Florian Henry		<florian.henry@open-concept.pro>
      *
    @@ -26,7 +26,7 @@
      */
     
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
     require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
    @@ -91,7 +91,7 @@ print '</td></tr></table><br>';
     /*
      * Invoices waiting for withdraw
      */
    -$sql = "SELECT f.facnumber, f.rowid, f.total_ttc, f.fk_statut, f.paye, f.type,";
    +$sql = "SELECT f.ref, f.rowid, f.total_ttc, f.fk_statut, f.paye, f.type,";
     $sql.= " pfd.date_demande, pfd.amount,";
     $sql.= " s.nom as name, s.rowid as socid";
     $sql.= " FROM ".MAIN_DB_PREFIX."facture as f,";
    @@ -99,7 +99,7 @@ $sql.= " ".MAIN_DB_PREFIX."societe as s";
     if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
     $sql.= " , ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
     $sql.= " WHERE s.rowid = f.fk_soc";
    -$sql.= " AND f.entity = ".$conf->entity;
    +$sql.= " AND f.entity IN (".getEntity('invoice').")";
     $sql.= " AND pfd.traite = 0 AND pfd.fk_facture = f.rowid";
     if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
     if ($socid) $sql.= " AND f.fk_soc = ".$socid;
    @@ -120,7 +120,7 @@ if ($resql)
                 $obj = $db->fetch_object($resql);
     
                 $invoicestatic->id=$obj->rowid;
    -            $invoicestatic->ref=$obj->facnumber;
    +            $invoicestatic->ref=$obj->ref;
                 $invoicestatic->statut=$obj->fk_statut;
                 $invoicestatic->paye=$obj->paye;
                 $invoicestatic->type=$obj->type;
    @@ -221,6 +221,6 @@ else
     
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/prelevement/ligne.php b/htdocs/compta/prelevement/ligne.php
    index 721cf62bcd7..7c8ac06bc70 100644
    --- a/htdocs/compta/prelevement/ligne.php
    +++ b/htdocs/compta/prelevement/ligne.php
    @@ -1,8 +1,9 @@
     <?php
    -/* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2005-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2010-2013 Juanjo Menent        <jmenent@2byte.es>
    +/* Copyright (C) 2005       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2005-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2009  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2010-2013  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -24,7 +25,7 @@
      *	\brief      card of withdraw line
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/ligneprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/rejetprelevement.class.php';
    @@ -88,7 +89,6 @@ if ($action == 'confirm_rejet')
     				header("Location: ligne.php?id=".$id);
     				exit;
     			}
    -
     		}
     		else
     		{
    @@ -196,7 +196,7 @@ if ($id)
     		//Date
     		print '<tr><td class="fieldrequired valid">'.$langs->trans("RefusedData").'</td>';
     		print '<td colspan="2" class="valid">';
    -		print $form->select_date('','','','','',"confirm_rejet");
    +		print $form->selectDate('', '', '', '', '', "confirm_rejet");
     		print '</td></tr>';
     
     		//Reason
    @@ -235,12 +235,12 @@ if ($id)
     			}
     			else
     			{
    -				print "<a class=\"butActionRefused\" href=\"#\" title=\"".$langs->trans("NotAllowed")."\">".$langs->trans("StandingOrderReject")."</a>";
    +				print "<a class=\"butActionRefused classfortooltip\" href=\"#\" title=\"".$langs->trans("NotAllowed")."\">".$langs->trans("StandingOrderReject")."</a>";
     			}
     		}
     		else
     		{
    -			print "<a class=\"butActionRefused\" href=\"#\" title=\"".$langs->trans("NotPossibleForThisStatusOfWithdrawReceiptORLine")."\">".$langs->trans("StandingOrderReject")."</a>";
    +			print "<a class=\"butActionRefused classfortooltip\" href=\"#\" title=\"".$langs->trans("NotPossibleForThisStatusOfWithdrawReceiptORLine")."\">".$langs->trans("StandingOrderReject")."</a>";
     		}
     	}
     
    @@ -261,7 +261,7 @@ if ($id)
     	 * List of invoices
     	 */
     	$sql = "SELECT pf.rowid";
    -	$sql.= " ,f.rowid as facid, f.facnumber as ref, f.total_ttc, f.paye, f.fk_statut";
    +	$sql.= " ,f.rowid as facid, f.ref as ref, f.total_ttc, f.paye, f.fk_statut";
     	$sql.= " , s.rowid as socid, s.nom as name";
     	$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
     	$sql.= " , ".MAIN_DB_PREFIX."prelevement_lignes as pl";
    @@ -272,7 +272,7 @@ if ($id)
     	$sql.= " AND pl.fk_prelevement_bons = p.rowid";
     	$sql.= " AND f.fk_soc = s.rowid";
     	$sql.= " AND pf.fk_facture = f.rowid";
    -	$sql.= " AND f.entity = ".$conf->entity;
    +	$sql.= " AND f.entity IN (".getEntity('invoice').")";
     	$sql.= " AND pl.rowid=".$id;
     	if ($socid)	$sql.= " AND s.rowid = ".$socid;
     	$sql.= " ORDER BY $sortfield $sortorder ";
    @@ -334,6 +334,6 @@ if ($id)
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/prelevement/list.php b/htdocs/compta/prelevement/list.php
    index 8d657f00221..bba7c19805a 100644
    --- a/htdocs/compta/prelevement/list.php
    +++ b/htdocs/compta/prelevement/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2018 Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *      \brief      Page liste des prelevements
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/ligneprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
    @@ -82,7 +82,7 @@ $form=new Form($db);
     llxHeader('',$langs->trans("WithdrawalsLines"));
     
     $sql = "SELECT p.rowid, p.ref, p.statut, p.datec";
    -$sql.= " ,f.rowid as facid, f.facnumber, f.total_ttc";
    +$sql.= " ,f.rowid as facid, f.ref, f.total_ttc";
     $sql.= " , s.rowid as socid, s.nom as name, s.code_client";
     $sql.= " , pl.amount, pl.statut as statut_ligne, pl.rowid as rowid_ligne";
     $sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
    @@ -94,7 +94,7 @@ $sql.= " WHERE pl.fk_prelevement_bons = p.rowid";
     $sql.= " AND pf.fk_prelevement_lignes = pl.rowid";
     $sql.= " AND pf.fk_facture = f.rowid";
     $sql.= " AND f.fk_soc = s.rowid";
    -$sql.= " AND f.entity = ".$conf->entity;
    +$sql.= " AND f.entity IN (".getEntity('invoice').")";
     if ($socid) $sql.= " AND s.rowid = ".$socid;
     if ($search_line) $sql.= " AND pl.rowid = '".$db->escape($search_line)."'";
     if ($search_bon) $sql.= natural_search("p.ref", $search_bon);
    @@ -155,7 +155,7 @@ if ($result)
         print '<tr class="liste_titre">';
         print_liste_field_titre("Line",$_SERVER["PHP_SELF"]);
         print_liste_field_titre("WithdrawalsReceipts",$_SERVER["PHP_SELF"],"p.ref");
    -    print_liste_field_titre("Bill",$_SERVER["PHP_SELF"],"f.facnumber",'',$urladd);
    +    print_liste_field_titre("Bill",$_SERVER["PHP_SELF"],"f.ref",'',$urladd);
         print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom");
         print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client",'','','align="center"');
         print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"p.datec","","",'align="center"');
    @@ -185,7 +185,7 @@ if ($result)
     
             print '<td><a href="'.DOL_URL_ROOT.'/compta/facture/card.php?facid='.$obj->facid.'">';
             print img_object($langs->trans("ShowBill"),"bill");
    -          print '&nbsp;<a href="'.DOL_URL_ROOT.'/compta/facture/card.php?facid='.$obj->facid.'">'.$obj->facnumber."</a></td>\n";
    +          print '&nbsp;<a href="'.DOL_URL_ROOT.'/compta/facture/card.php?facid='.$obj->facid.'">'.$obj->ref."</a></td>\n";
             print '</a></td>';
     
             print '<td><a href="card.php?id='.$obj->rowid.'">'.$obj->name."</a></td>\n";
    @@ -213,5 +213,6 @@ else
         dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/prelevement/rejets.php b/htdocs/compta/prelevement/rejets.php
    index c8812bba1a9..4e71efc5379 100644
    --- a/htdocs/compta/prelevement/rejets.php
    +++ b/htdocs/compta/prelevement/rejets.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2013 Juanjo Menent 		<jmenent@2byte.es>
      * Copyright (C) 2005-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      *
    @@ -24,7 +24,7 @@
      *      \brief      Reject page
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/rejetprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/ligneprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
    @@ -120,5 +120,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/prelevement/stats.php b/htdocs/compta/prelevement/stats.php
    index 20d213e820b..e7bd8622fa2 100644
    --- a/htdocs/compta/prelevement/stats.php
    +++ b/htdocs/compta/prelevement/stats.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2011 Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *      \brief      Page with statistics on withdrawals
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/ligneprelevement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
    @@ -225,7 +225,7 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
     
    diff --git a/htdocs/compta/recap-compta.php b/htdocs/compta/recap-compta.php
    index 3a22666e2f7..ccb941ad5e1 100644
    --- a/htdocs/compta/recap-compta.php
    +++ b/htdocs/compta/recap-compta.php
    @@ -117,12 +117,12 @@ if ($id > 0)
     
     		$TData = array();
     
    -		$sql = "SELECT s.nom, s.rowid as socid, f.facnumber, f.amount, f.datef as df,";
    +		$sql = "SELECT s.nom, s.rowid as socid, f.ref, f.amount, f.datef as df,";
     		$sql.= " f.paye as paye, f.fk_statut as statut, f.rowid as facid,";
     		$sql.= " u.login, u.rowid as userid";
     		$sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f,".MAIN_DB_PREFIX."user as u";
     		$sql.= " WHERE f.fk_soc = s.rowid AND s.rowid = ".$object->id;
    -		$sql.= " AND f.entity = ".$conf->entity;
    +		$sql.= " AND f.entity IN (".getEntity('invoice').")";
     		$sql.= " AND f.fk_user_valid = u.rowid";
     		$sql.= $db->order($sortfield, $sortorder);
     
    diff --git a/htdocs/compta/resultat/clientfourn.php b/htdocs/compta/resultat/clientfourn.php
    index c9e32b9a97f..86d24037cba 100644
    --- a/htdocs/compta/resultat/clientfourn.php
    +++ b/htdocs/compta/resultat/clientfourn.php
    @@ -1,12 +1,13 @@
     <?php
    -/* Copyright (C) 2002-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2012      Cédric Salvador      <csalvador@gpcsolutions.fr>
    - * Copyright (C) 2012-2014 Raphaël Dourseanud   <rdoursenaud@gpcsolutions.fr>
    - * Copyright (C) 2014-2106 Ferran Marcet        <fmarcet@2byte.es>
    - * Copyright (C) 2014	   Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2014	   Florian Henry        <florian.henry@open-concept.pro>
    +/* Copyright (C) 2002-2006  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2017  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2012       Cédric Salvador         <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2012-2014  Raphaël Dourseanud      <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2014-2106  Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2014       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2014       Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -161,7 +162,7 @@ if ($modecompta=="CREANCES-DETTES")
     	$calcmode=$langs->trans("CalcModeDebt");
         $calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?date_startyear='.$tmps['year'].'&date_startmonth='.$tmps['mon'].'&date_startday='.$tmps['mday'].'&date_endyear='.$tmpe['year'].'&date_endmonth='.$tmpe['mon'].'&date_endday='.$tmpe['mday'].'&modecompta=RECETTES-DEPENSES">','</a>').')';
         if (! empty($conf->accounting->enabled)) $calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?date_startyear='.$tmps['year'].'&date_startmonth='.$tmps['mon'].'&date_startday='.$tmps['mday'].'&date_endyear='.$tmpe['year'].'&date_endmonth='.$tmpe['mon'].'&date_endday='.$tmpe['mday'].'&modecompta=BOOKKEEPING">','</a>').')';
    -    $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +    $period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     	$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($tmps['year']-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($tmps['year']+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
         $description=$langs->trans("RulesResultDue");
     	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
    @@ -175,9 +176,8 @@ elseif ($modecompta=="RECETTES-DEPENSES")
     	$calcmode=$langs->trans("CalcModeEngagement");
         $calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?date_startyear='.$tmps['year'].'&date_startmonth='.$tmps['mon'].'&date_startday='.$tmps['mday'].'&date_endyear='.$tmpe['year'].'&date_endmonth='.$tmpe['mon'].'&date_endday='.$tmpe['mday'].'&modecompta=CREANCES-DETTES">','</a>').')';
         if (! empty($conf->accounting->enabled)) $calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?date_startyear='.$tmps['year'].'&date_startmonth='.$tmps['mon'].'&date_startday='.$tmps['mday'].'&date_endyear='.$tmpe['year'].'&date_endmonth='.$tmpe['mon'].'&date_endday='.$tmpe['mday'].'&modecompta=BOOKKEEPING">','</a>').')';
    -    //$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',1,1,0,'',1,0,1);
    -    $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    -	$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($tmps['year']-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($tmps['year']+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
    +    $period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
    +    $periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($tmps['year']-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($tmps['year']+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
         $description=$langs->trans("RulesResultInOut");
         $builddate=dol_now();
         //$exportlink=$langs->trans("NotYetAvailable");
    @@ -188,8 +188,7 @@ elseif ($modecompta=="BOOKKEEPING")
     	$calcmode=$langs->trans("CalcModeBookkeeping");
         $calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?date_startyear='.$tmps['year'].'&date_startmonth='.$tmps['mon'].'&date_startday='.$tmps['mday'].'&date_endyear='.$tmpe['year'].'&date_endmonth='.$tmpe['mon'].'&date_endday='.$tmpe['mday'].'&modecompta=RECETTES-DEPENSES">','</a>').')';
     	$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?date_startyear='.$tmps['year'].'&date_startmonth='.$tmps['mon'].'&date_startday='.$tmps['mday'].'&date_endyear='.$tmpe['year'].'&date_endmonth='.$tmpe['mon'].'&date_endday='.$tmpe['mday'].'&modecompta=CREANCES-DETTES">','</a>').')';
    -	//$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',1,1,0,'',1,0,1);
    -	$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +	$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     	$arraylist=array('no'=>$langs->trans("No"), 'yes'=>$langs->trans("AccountWithNonZeroValues"), 'all'=>$langs->trans("All"));
     	$period.=' &nbsp; &nbsp; '.$langs->trans("DetailByAccount").' '. $form->selectarray('showaccountdetail', $arraylist, $showaccountdetail, 0);
     	$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($tmps['year']-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($tmps['year']+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
    @@ -304,7 +303,7 @@ if ($modecompta == 'BOOKKEEPING')
     
     					foreach($cpts as $i => $cpt)
     					{
    -						$return = $AccCat->getResult($cpt['account_number'], 0, $date_start, $date_end, $cpt['dc']);
    +						$return = $AccCat->getSumDebitCredit($cpt['account_number'], $date_start, $date_end, $cpt['dc']);
     						if ($return < 0) {
     							setEventMessages(null, $AccCat->errors, 'errors');
     							$resultN=0;
    @@ -372,7 +371,7 @@ else
     	    if (! empty($date_start) && ! empty($date_end))
     	    	$sql.= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'";
     	}
    -	$sql.= " AND f.entity = ".$conf->entity;
    +	$sql.= " AND f.entity IN (".getEntity('invoice').")";
     	if ($socid) $sql.= " AND f.fk_soc = ".$socid;
     	$sql.= " GROUP BY name, socid";
     	$sql.= $db->order($sortfield, $sortorder);
    @@ -774,7 +773,7 @@ else
     
     		            print '<tr class="oddeven"><td>&nbsp;</td>';
     
    -		            print "<td>".$langs->trans("Salary")." <a href=\"".DOL_URL_ROOT."/compta/salaries/index.php?filtre=s.fk_user=".$obj->fk_user."\">".$obj->firstname." ".$obj->lastname."</a></td>\n";
    +		            print "<td>".$langs->trans("Salary")." <a href=\"".DOL_URL_ROOT."/compta/salaries/list.php?filtre=s.fk_user=".$obj->fk_user."\">".$obj->firstname." ".$obj->lastname."</a></td>\n";
     
     		            if ($modecompta == 'CREANCES-DETTES') print '<td align="right">'.price(-$obj->amount).'</td>';
     		            print '<td align="right">'.price(-$obj->amount).'</td>';
    @@ -992,7 +991,7 @@ else
     				$sql.= " AND f.type IN (0,1,2,3,5)";
     		    if (! empty($date_start) && ! empty($date_end))
     		    	$sql.= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'";
    -		    $sql.= " AND f.entity = ".$conf->entity;
    +		    $sql.= " AND f.entity IN (".getEntity('invoice').")";
     		    $sql.= " GROUP BY dm";
     		    $newsortfield = $sortfield;
     		    if ($newsortfield == 's.nom, s.rowid') $newsortfield = 'dm';
    @@ -1210,6 +1209,6 @@ if ($mysoc->tva_assuj != 'franchise')	// Assujetti
     print "</table>";
     print '<br>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/resultat/index.php b/htdocs/compta/resultat/index.php
    index fbbc7a36eef..3a3ba57cb18 100644
    --- a/htdocs/compta/resultat/index.php
    +++ b/htdocs/compta/resultat/index.php
    @@ -1,10 +1,11 @@
     <?php
    -/* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2014-2016 Ferran Marcet        <fmarcet@2byte.es>
    - * Copyright (C) 2014	   Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2014	   Florian Henry        <florian.henry@open-concept.pro>
    +/* Copyright (C) 2003       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2014-2016  Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2014       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2014       Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -124,7 +125,7 @@ if ($modecompta == 'CREANCES-DETTES')
     	$calcmode=$langs->trans("CalcModeDebt");
     	$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
     	if (! empty($conf->accounting->enabled)) $calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=BOOKKEEPING">','</a>').')';
    -	$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +	$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     	$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear-2)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
     	$description=$langs->trans("RulesAmountWithTaxIncluded");
     	$description.='<br>'.$langs->trans("RulesResultDue");
    @@ -138,7 +139,7 @@ else if ($modecompta=="RECETTES-DEPENSES") {
     	$calcmode=$langs->trans("CalcModeEngagement");
     	$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
     	if (! empty($conf->accounting->enabled)) $calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=BOOKKEEPING">','</a>').')';
    -	$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +	$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     	$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear-2)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
     	$description=$langs->trans("RulesAmountWithTaxIncluded");
     	$description.='<br>'.$langs->trans("RulesResultInOut");
    @@ -151,7 +152,7 @@ else if ($modecompta=="BOOKKEEPING")
     	$calcmode=$langs->trans("CalcModeBookkeeping");
     	$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
     	$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
    -	$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +	$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     	$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear-2)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
     	$description=$langs->trans("RulesAmountOnInOutBookkeepingRecord");
     	$description.=' ('.$langs->trans("SeePageForSetup", DOL_URL_ROOT.'/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin', $langs->transnoentitiesnoconv("Accountancy").' / '.$langs->transnoentitiesnoconv("Setup").' / '.$langs->trans("Chartofaccounts")).')';
    @@ -206,7 +207,7 @@ if (! empty($conf->facture->enabled) && ($modecompta == 'CREANCES-DETTES' || $mo
     	    	$sql.= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'";
     	}
     
    -	$sql.= " AND f.entity = ".$conf->entity;
    +	$sql.= " AND f.entity IN (".getEntity('invoice').")";
     	if ($socid) $sql.= " AND f.fk_soc = $socid";
     	$sql.= " GROUP BY dm";
     	$sql.= " ORDER BY dm";
    @@ -369,7 +370,7 @@ if (! empty($conf->tax->enabled) && ($modecompta == 'CREANCES-DETTES' || $modeco
     		$sql.= " WHERE f.fk_statut IN (1,2)";
     		if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
     		else $sql.= " AND f.type IN (0,1,2,3,5)";
    -		$sql.= " AND f.entity = ".$conf->entity;
    +		$sql.= " AND f.entity IN (".getEntity('invoice').")";
         	if (! empty($date_start) && ! empty($date_end))
         		$sql.= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'";
     		$sql.= " GROUP BY dm";
    @@ -687,7 +688,6 @@ if (! empty($conf->expensereport->enabled) && ($modecompta == 'CREANCES-DETTES'
     		$column='p.date_valid';
     		if (! empty($date_start) && ! empty($date_end))
     			$sql.= " AND ".$column." >= '".$db->idate($date_start)."' AND ".$column." <= '".$db->idate($date_end)."'";
    -
     	} elseif ($modecompta == 'RECETTES-DEPENSES') {
     		$sql = "SELECT date_format(pe.datep,'%Y-%m') as dm, sum(p.total_ht) as amount_ht,sum(p.total_ttc) as amount_ttc";
     		$sql.= " FROM ".MAIN_DB_PREFIX."expensereport as p";
    @@ -720,7 +720,6 @@ if (! empty($conf->expensereport->enabled) && ($modecompta == 'CREANCES-DETTES'
     
     				if (! isset($decaiss_ttc[$obj->dm])) $decaiss_ttc[$obj->dm]=0;
     				$decaiss_ttc[$obj->dm] += $obj->amount_ttc;
    -
     			}
     		}
     	}
    @@ -728,7 +727,6 @@ if (! empty($conf->expensereport->enabled) && ($modecompta == 'CREANCES-DETTES'
     	{
     		dol_print_error($db);
     	}
    -
     }
     elseif ($modecompta == 'BOOKKEEPING') {
     	// Nothing from this table
    @@ -1009,5 +1007,6 @@ print "</tr>\n";
     print "</table>";
     print '</div>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/resultat/result.php b/htdocs/compta/resultat/result.php
    index 23c7e91b989..16d2631686c 100644
    --- a/htdocs/compta/resultat/result.php
    +++ b/htdocs/compta/resultat/result.php
    @@ -1,7 +1,8 @@
     <?php
    -/* Copyright (C) 2016-2017		Jamal Elbaz			<jamelbaz@gmail.com>
    - * Copyright (C) 2016 	    	Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
    - * Copyright (C) 2018 	    	Laurent Destailleur <eldy@destailleur.fr>
    +/* Copyright (C) 2016-2017  Jamal Elbaz             <jamelbaz@gmail.com>
    + * Copyright (C) 2016       Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2018       Laurent Destailleur     <eldy@destailleur.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -77,7 +78,7 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end
     	{
     		// We define date_start and date_end
     		$year_end=$year_start + ($nbofyear - 1);
    -		$month_start=GETPOST("month")?GETPOST("month"):($conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START):1);
    +		$month_start=GETPOST("month",'int')?GETPOST("month",'int'):($conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START):1);
     		$date_startmonth = $month_start;
     		if (! GETPOST('month'))
     		{
    @@ -107,8 +108,10 @@ if (($date_start < dol_time_plus_duree($date_end, -1, 'y')) || ($date_start > $d
     // $date_start and $date_end are defined. We force $start_year and $nbofyear
     $tmps=dol_getdate($date_start);
     $start_year = $tmps['year'];
    +$start_month = $tmps['mon'];
     $tmpe=dol_getdate($date_end);
     $year_end = $tmpe['year'];
    +$month_end = $tmpe['mon'];
     $nbofyear = ($year_end - $start_year) + 1;
     
     $date_start_previous = dol_time_plus_duree($date_start, -1, 'y');
    @@ -171,7 +174,7 @@ if ($modecompta=="CREANCES-DETTES")
     	$calcmode=$langs->trans("CalcModeDebt");
     	$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$start_year.(GETPOST("month")>0?'&month='.GETPOST("month"):'').'&modecompta=RECETTES-DEPENSES">','</a>').')';
     	if (! empty($conf->accounting->enabled)) $calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$start_year.'&modecompta=BOOKKEEPING">','</a>').')';
    -	$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +	$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     	//$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
     	$description=$langs->trans("RulesResultDue");
     	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
    @@ -179,25 +182,24 @@ if ($modecompta=="CREANCES-DETTES")
     	$builddate=dol_now();
     	//$exportlink=$langs->trans("NotYetAvailable");
     }
    -else if ($modecompta=="RECETTES-DEPENSES") {
    +elseif ($modecompta=="RECETTES-DEPENSES") {
     	$name=$langs->trans("AnnualByAccountInputOutputMode");
     	$calcmode=$langs->trans("CalcModeEngagement");
     	$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.(GETPOST("month")>0?'&month='.GETPOST("month"):'').'&modecompta=CREANCES-DETTES">','</a>').')';
     	if (! empty($conf->accounting->enabled)) $calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=BOOKKEEPING">','</a>').')';
    -	//$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',1,1,0,'',1,0,1);
    -	$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +	$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     	//$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
     	$description=$langs->trans("RulesResultInOut");
     	$builddate=dol_now();
     	//$exportlink=$langs->trans("NotYetAvailable");
     }
    -else if ($modecompta=="BOOKKEEPING")
    +elseif ($modecompta=="BOOKKEEPING")
     {
     	$name = $langs->trans("ReportInOut").', '.$langs->trans("ByPersonalizedAccountGroups");
     	$calcmode=$langs->trans("CalcModeBookkeeping");
     	//$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
     	//$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
    -	$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +	$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     	$arraylist=array('no'=>$langs->trans("No"), 'yes'=>$langs->trans("AccountWithNonZeroValues"), 'all'=>$langs->trans("All"));
     	$period.=' &nbsp; &nbsp; '.$langs->trans("DetailByAccount").' '. $form->selectarray('showaccountdetail', $arraylist, $showaccountdetail, 0);
     	$periodlink = $textprevyear . $textnextyear ;
    @@ -231,13 +233,13 @@ print '<th class="liste_titre" align="right">'.$langs->trans("SelectedPeriod").'
     foreach($months as $k => $v){
     	if (($k+1) >= $date_startmonth)
     	{
    -		print '<th class="liste_titre width50" align="right" >'.$langs->trans($v).'</th>';
    +		print '<th class="liste_titre width50" align="right" >'.$langs->trans('MonthShort'.sprintf("%02s",($k+1))).'</th>';
     	}
     }
     foreach($months as $k => $v){
     	if (($k+1) < $date_startmonth)
     	{
    -		print '<th class="liste_titre width50" align="right" >'.$langs->trans($v).'</th>';
    +		print '<th class="liste_titre width50" align="right" >'.$langs->trans('MonthShort'.sprintf("%02s",($k+1))).'</th>';
     	}
     }
     print	'</tr>';
    @@ -247,12 +249,12 @@ if ($modecompta == 'CREANCES-DETTES')
     	//if (! empty($date_start) && ! empty($date_end))
     	//	$sql.= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'";
     }
    -else if ($modecompta=="RECETTES-DEPENSES")
    +elseif ($modecompta=="RECETTES-DEPENSES")
     {
     	//if (! empty($date_start) && ! empty($date_end))
     	//	$sql.= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'";
     }
    -else if ($modecompta=="BOOKKEEPING")
    +elseif ($modecompta=="BOOKKEEPING")
     {
     
     	// Get array of all report groups that are active
    @@ -374,13 +376,14 @@ else if ($modecompta=="BOOKKEEPING")
     				}
     			}
     
    -
     			print "</tr>\n";
     
     			//var_dump($sommes);
     		}
     		else			// normal category
     		{
    +			$code = $cat['code'];	// Category code we process
    +
     			$totCat = array();
     			$totCat['NP'] = 0;
     			$totCat['N'] = 0;
    @@ -390,9 +393,73 @@ else if ($modecompta=="BOOKKEEPING")
     				$totCat['M'][$k] = 0;
     			}
     
    -			// Set $cpts of with array of accounts in the category/group
    +			// Set $cpts with array of accounts in the category/group
     			$cpts = $AccCat->getCptsCat($cat['rowid']);
     
    +			$arrayofaccountforfilter=array();
    +			foreach($cpts as $i => $cpt)	// Loop on each account.
    +			{
    +				$arrayofaccountforfilter[]=$cpt['account_number'];
    +			}
    +
    +			// N-1
    +			if (! empty($arrayofaccountforfilter))
    +			{
    +				$return = $AccCat->getSumDebitCredit($arrayofaccountforfilter, $date_start_previous, $date_end_previous, $cpt['dc']?$cpt['dc']:0);
    +
    +				if ($return < 0) {
    +					setEventMessages(null, $AccCat->errors, 'errors');
    +					$resultNP=0;
    +				} else {
    +					foreach($cpts as $i => $cpt)	// Loop on each account.
    +					{
    +						$resultNP = empty($AccCat->sdcperaccount[$cpt['account_number']])?0:$AccCat->sdcperaccount[$cpt['account_number']];
    +
    +						$totCat['NP'] += $resultNP;
    +						$sommes[$code]['NP'] += $resultNP;
    +						$totPerAccount[$cpt['account_number']]['NP'] = $resultNP;
    +					}
    +				}
    +			}
    +
    +			// Set value into column N and month M ($totCat)
    +			// This make 12 calls for each accountancy account (12 monthes M)
    +			foreach($cpts as $i => $cpt)	// Loop on each account.
    +			{
    +				// We make 1 loop for each account because we may want detail per account.
    +				// @TODO Optimize to ask a 'group by' account and a filter with account in (..., ...) in request
    +
    +				// Each month
    +				$resultN = 0;
    +				foreach($months as $k => $v)
    +				{
    +					$monthtoprocess = $k+1;			// ($k+1) is month 1, 2, ..., 12
    +					$yeartoprocess = $start_year;
    +					if (($k+1) < $start_month) $yeartoprocess++;
    +
    +					//var_dump($monthtoprocess.'_'.$yeartoprocess);
    +					$return = $AccCat->getSumDebitCredit($cpt['account_number'], $date_start, $date_end, $cpt['dc']?$cpt['dc']:0, 'nofilter', $monthtoprocess, $yeartoprocess);
    +					if ($return < 0) {
    +						setEventMessages(null, $AccCat->errors, 'errors');
    +						$resultM=0;
    +					} else {
    +						$resultM=$AccCat->sdc;
    +					}
    +					$totCat['M'][$k] += $resultM;
    +					$sommes[$code]['M'][$k] += $resultM;
    +					$totPerAccount[$cpt['account_number']]['M'][$k] = $resultM;
    +
    +					$resultN += $resultM;
    +				}
    +
    +				$totCat['N'] += $resultN;
    +				$sommes[$code]['N'] += $resultN;
    +				$totPerAccount[$cpt['account_number']]['N'] = $resultN;
    +			}
    +
    +
    +			// Now output columns for row $code ('VTE', 'MAR', ...)
    +
     			print "<tr>";
     
     			// Column group
    @@ -426,54 +493,6 @@ else if ($modecompta=="BOOKKEEPING")
     			}
     			print '</td>';
     
    -			$code = $cat['code'];
    -
    -			// Set value into column NPrevious, N and each month M ($totCat)
    -			// This make 14 calls for each detail of account (NP, N and month m)
    -			foreach($cpts as $i => $cpt)
    -			{
    -				// N-1
    -				$return = $AccCat->getResult($cpt['account_number'], 0, $date_start_previous, $date_end_previous, $cpt['dc']);
    -
    -				if ($return < 0) {
    -					setEventMessages(null, $AccCat->errors, 'errors');
    -					$resultNP=0;
    -				} else {
    -					$resultNP=$AccCat->sdc;
    -				}
    -
    -				//N
    -				$return = $AccCat->getResult($cpt['account_number'], 0, $date_start, $date_end, $cpt['dc']);
    -				if ($return < 0) {
    -					setEventMessages(null, $AccCat->errors, 'errors');
    -					$resultN=0;
    -				} else {
    -					$resultN=$AccCat->sdc;
    -				}
    -
    -				$totCat['NP'] += $resultNP;
    -				$totCat['N'] += $resultN;
    -				$sommes[$code]['NP'] += $resultNP;
    -				$sommes[$code]['N'] += $resultN;
    -				$totPerAccount[$cpt['account_number']]['NP'] = $resultNP;
    -				$totPerAccount[$cpt['account_number']]['N'] = $resultN;
    -
    -				foreach($months as $k => $v)
    -				{
    -					$return = $AccCat->getResult($cpt['account_number'], $k+1, $date_start, $date_end, $cpt['dc']);
    -					if ($return < 0) {
    -						setEventMessages(null, $AccCat->errors, 'errors');
    -						$resultM=0;
    -					} else {
    -						$resultM=$AccCat->sdc;
    -					}
    -					$totCat['M'][$k] += $resultM;
    -					$sommes[$code]['M'][$k] += $resultM;
    -					$totPerAccount[$cpt['account_number']]['M'][$k] = $resultM;
    -				}
    -			}
    -
    -			// Now output columns for row $code ('VTE', 'MAR', ...)
     			print '<td align="right">' . price($totCat['NP'])  . '</td>';
     			print '<td align="right">' . price($totCat['N']) . '</td>';
     
    @@ -487,8 +506,7 @@ else if ($modecompta=="BOOKKEEPING")
     
     			print "</tr>\n";
     
    -			// Loop on detail of all accounts
    -			// This make 14 calls for each detail of account (NP, N and month m)
    +			// Loop on detail of all accounts to output the detail
     			if ($showaccountdetail != 'no')
     			{
     				foreach($cpts as $i => $cpt)
    @@ -525,7 +543,6 @@ else if ($modecompta=="BOOKKEEPING")
     								print '<td align="right">' . price($resultM) . '</td>';
     							}
     						}
    -
     						print "</tr>\n";
     					}
     				}
    @@ -537,5 +554,6 @@ else if ($modecompta=="BOOKKEEPING")
     print "</table>";
     print '</div>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/salaries/card.php b/htdocs/compta/salaries/card.php
    index c4a2406e6d0..474fcd0a6cb 100644
    --- a/htdocs/compta/salaries/card.php
    +++ b/htdocs/compta/salaries/card.php
    @@ -1,8 +1,9 @@
     <?php
    -/* Copyright (C) 2011-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
    - * Copyright (C) 2014      Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2015      Jean-François Ferry  <jfefe@aternatik.fr>
    - * Copyright (C) 2015      Charlie BENKE        <charlie@patas-monkey.com>
    +/* Copyright (C) 2011-2018  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2014       Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2015       Jean-François Ferry     <jfefe@aternatik.fr>
    + * Copyright (C) 2015       Charlie BENKE           <charlie@patas-monkey.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -29,12 +30,20 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/salaries/class/paymentsalary.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/salaries.lib.php';
    +if (! empty($conf->projet->enabled))
    +{
    +	require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    +	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
    +}
     
     // Load translation files required by the page
     $langs->loadLangs(array("compta","banks","bills","users","salaries","hrm"));
    +if (! empty($conf->projet->enabled))	$langs->load("projects");
     
     $id=GETPOST("id",'int');
     $action=GETPOST('action','aZ09');
    +$cancel= GETPOST('cancel', 'aZ09');
    +$projectid = (GETPOST('projectid','int') ? GETPOST('projectid', 'int') : GETPOST('fk_project','int'));
     
     // Security check
     $socid = GETPOST("socid","int");
    @@ -52,20 +61,27 @@ $hookmanager->initHooks(array('salarycard','globalcard'));
      * Actions
      */
     
    -if ($_POST["cancel"] == $langs->trans("Cancel"))
    +if ($cancel)
     {
    -	header("Location: index.php");
    +	header("Location: list.php");
     	exit;
     }
     
    -if ($action == 'add' && $_POST["cancel"] <> $langs->trans("Cancel"))
    +// Link to a project
    +if ($action == 'classin' && $user->rights->banque->modifier)
    +{
    +	$object->fetch($id);
    +	$object->setProject(GETPOST('projectid'));
    +}
    +
    +if ($action == 'add' && empty($cancel))
     {
     	$error=0;
     
    -	$datep=dol_mktime(12,0,0, $_POST["datepmonth"], $_POST["datepday"], $_POST["datepyear"]);
    -	$datev=dol_mktime(12,0,0, $_POST["datevmonth"], $_POST["datevday"], $_POST["datevyear"]);
    -	$datesp=dol_mktime(12,0,0, $_POST["datespmonth"], $_POST["datespday"], $_POST["datespyear"]);
    -	$dateep=dol_mktime(12,0,0, $_POST["dateepmonth"], $_POST["dateepday"], $_POST["dateepyear"]);
    +	$datep=dol_mktime(12,0,0, GETPOST("datepmonth",'int'), GETPOST("datepday",'int'), GETPOST("datepyear",'int'));
    +	$datev=dol_mktime(12,0,0, GETPOST("datevmonth",'int'), GETPOST("datevday",'int'), GETPOST("datevyear",'int'));
    +	$datesp=dol_mktime(12,0,0, GETPOST("datespmonth",'int'), GETPOST("datespday",'int'), GETPOST("datespyear",'int'));
    +	$dateep=dol_mktime(12,0,0, GETPOST("dateepmonth",'int'), GETPOST("dateepday",'int'), GETPOST("dateepyear",'int'));
     	if (empty($datev)) $datev=$datep;
     
     	$type_payment = dol_getIdFromCode($db, GETPOST("paymenttype", 'alpha'), 'c_paiement', 'code', 'id', 1);
    @@ -82,6 +98,7 @@ if ($action == 'add' && $_POST["cancel"] <> $langs->trans("Cancel"))
     	$object->type_payment=($type_payment > 0 ? $type_payment : 0);
     	$object->num_payment=GETPOST("num_payment");
     	$object->fk_user_author=$user->id;
    +	$object->fk_project= GETPOST('fk_project','int');
     
     	// Set user current salary as ref salaray for the payment
     	$fuser=new User($db);
    @@ -122,7 +139,7 @@ if ($action == 'add' && $_POST["cancel"] <> $langs->trans("Cancel"))
     		if ($ret > 0)
     		{
     			$db->commit();
    -			header("Location: index.php");
    +			header("Location: list.php");
     			exit;
     		}
     		else
    @@ -157,7 +174,7 @@ if ($action == 'delete')
     			if ($result >= 0)
     			{
     				$db->commit();
    -				header("Location: ".DOL_URL_ROOT.'/compta/salaries/index.php');
    +				header("Location: ".DOL_URL_ROOT.'/compta/salaries/list.php');
     				exit;
     			}
     			else
    @@ -187,6 +204,7 @@ if ($action == 'delete')
     llxHeader("",$langs->trans("SalaryPayment"));
     
     $form = new Form($db);
    +if (! empty($conf->projet->enabled)) $formproject = new FormProjets($db);
     
     if ($id)
     {
    @@ -237,59 +255,71 @@ if ($action == 'create')
     
     	// Date payment
     	print '<tr><td>';
    -	print fieldLabel('DatePayment','datep',1).'</td><td>';
    -	print $form->select_date((empty($datep)?-1:$datep),"datep",'','','','add',1,1);
    +	print $form->editfieldkey('DatePayment', 'datep', '', $object, 0, 'string', '', 1).'</td><td>';
    +	print $form->selectDate((empty($datep)?-1:$datep), "datep", '', '', '', 'add', 1, 1);
     	print '</td></tr>';
     
     	// Date value for bank
     	print '<tr><td>';
    -	print fieldLabel('DateValue','datev',0).'</td><td>';
    -	print $form->select_date((empty($datev)?-1:$datev),"datev",'','','','add',1,1);
    +	print $form->editfieldkey('DateValue', 'datev', '', $object, 0).'</td><td>';
    +	print $form->selectDate((empty($datev)?-1:$datev), "datev", '', '', '', 'add', 1, 1);
     	print '</td></tr>';
     
     	// Employee
     	print '<tr><td>';
    -	print fieldLabel('Employee','fk_user',1).'</td><td>';
    +	print $form->editfieldkey('Employee', 'fk_user', '', $object, 0, 'string', '', 1).'</td><td>';
     	$noactive=0;	// We keep active and unactive users
     	print $form->select_dolusers(GETPOST('fk_user','int'), 'fk_user', 1, '', 0, '', '', 0, 0, 0, 'AND employee=1', 0, '', 'maxwidth300', $noactive);
     	print '</td></tr>';
     
     	// Label
     	print '<tr><td>';
    -	print fieldLabel('Label','label',1).'</td><td>';
    +	print $form->editfieldkey('Label', 'label', '', $object, 0, 'string', '', 1).'</td><td>';
     	print '<input name="label" id="label" class="minwidth300" value="'.(GETPOST("label")?GETPOST("label"):$langs->trans("SalaryPayment")).'">';
     	print '</td></tr>';
     
     	// Date start period
     	print '<tr><td>';
    -	print fieldLabel('DateStartPeriod','datesp',1).'</td><td>';
    -	print $form->select_date($datesp,"datesp",'','','','add');
    +	print $form->editfieldkey('DateStartPeriod', 'datesp', '', $object, 0, 'string', '', 1).'</td><td>';
    +	print $form->selectDate($datesp, "datesp", '', '', '', 'add');
     	print '</td></tr>';
     
     	// Date end period
     	print '<tr><td>';
    -	print fieldLabel('DateEndPeriod','dateep',1).'</td><td>';
    -	print $form->select_date($dateep,"dateep",'','','','add');
    +	print $form->editfieldkey('DateEndPeriod', 'dateep', '', $object, 0, 'string', '', 1).'</td><td>';
    +	print $form->selectDate($dateep, "dateep", '', '', '', 'add');
     	print '</td></tr>';
     
     	// Amount
     	print '<tr><td>';
    -	print fieldLabel('Amount','amount',1).'</td><td>';
    +	print $form->editfieldkey('Amount', 'amount', '', $object, 0, 'string', '', 1).'</td><td>';
     	print '<input name="amount" id="amount" class="minwidth100" value="'.GETPOST("amount").'">';
     	print '</td></tr>';
     
    +	// Project
    +	if (! empty($conf->projet->enabled))
    +	{
    +		$formproject=new FormProjets($db);
    +
    +		print '<tr><td>'.$langs->trans("Project").'</td><td>';
    +
    +		$numproject=$formproject->select_projects(-1, $projectid,'fk_project',0,0,1,1);
    +
    +		print '</td></tr>';
    +	}
    +
     	// Bank
     	if (! empty($conf->banque->enabled))
     	{
     		print '<tr><td>';
    -		print fieldLabel('BankAccount','selectaccountid',1).'</td><td>';
    +		print $form->editfieldkey('BankAccount', 'selectaccountid', '', $object, 0, 'string', '', 1).'</td><td>';
     		$form->select_comptes($_POST["accountid"],"accountid",0,'',1);  // Affiche liste des comptes courant
     		print '</td></tr>';
     	}
     
     	// Type payment
     	print '<tr><td>';
    -	print fieldLabel('PaymentMode','selectpaymenttype',1).'</td><td>';
    +	print $form->editfieldkey('PaymentMode', 'selectpaymenttype', '', $object, 0, 'string', '', 1).'</td><td>';
     	$form->select_types_paiements(GETPOST("paymenttype"), "paymenttype", '', 2);
     	print '</td></tr>';
     
    @@ -335,14 +365,46 @@ if ($id)
     
     	dol_fiche_head($head, 'card', $langs->trans("SalaryPayment"), -1, 'payment');
     
    -    $linkback = '<a href="'.DOL_URL_ROOT.'/compta/salaries/index.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
    +	$linkback = '<a href="'.DOL_URL_ROOT.'/compta/salaries/list.php?restore_lastsearch_values=1'.(! empty($socid)?'&socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
     
     	$morehtmlref='<div class="refidno">';
     
    +	// Employee
     	$userstatic=new User($db);
     	$userstatic->fetch($object->fk_user);
    -
     	$morehtmlref.=$langs->trans('Employee') . ' : ' . $userstatic->getNomUrl(1);
    +
    +	// Project
    +	if (! empty($conf->projet->enabled))
    +	{
    +		$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
    +		if ($user->rights->salaries->write)
    +		{
    +			if ($action != 'classify')
    +				$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    +				if ($action == 'classify') {
    +					//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
    +					$morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
    +					$morehtmlref.='<input type="hidden" name="action" value="classin">';
    +					$morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +					$morehtmlref.=$formproject->select_projects(0, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
    +					$morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    +					$morehtmlref.='</form>';
    +				} else {
    +					$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
    +				}
    +		} else {
    +			if (! empty($object->fk_project)) {
    +				$proj = new Project($db);
    +				$proj->fetch($object->fk_project);
    +				$morehtmlref.='<a href="'.DOL_URL_ROOT.'/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
    +				$morehtmlref.=$proj->ref;
    +				$morehtmlref.='</a>';
    +			} else {
    +				$morehtmlref.='';
    +			}
    +		}
    +	}
     	$morehtmlref.='</div>';
     
     	dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', '');
    @@ -415,18 +477,16 @@ if ($id)
     		}
     		else
     		{
    -			print '<a class="butActionRefused" href="#" title="'.(dol_escape_htmltag($langs->trans("NotAllowed"))).'">'.$langs->trans("Delete").'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.(dol_escape_htmltag($langs->trans("NotAllowed"))).'">'.$langs->trans("Delete").'</a>';
     		}
     	}
     	else
     	{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans("LinkedToAConciliatedTransaction").'">'.$langs->trans("Delete").'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("LinkedToAConciliatedTransaction").'">'.$langs->trans("Delete").'</a>';
     	}
     	print "</div>";
     }
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/salaries/class/paymentsalary.class.php b/htdocs/compta/salaries/class/paymentsalary.class.php
    index 3a3f34b85b4..76a8284daff 100644
    --- a/htdocs/compta/salaries/class/paymentsalary.class.php
    +++ b/htdocs/compta/salaries/class/paymentsalary.class.php
    @@ -1,6 +1,6 @@
     <?php
    -/* Copyright (C) 2011-2015 Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
    - * Copyright (C) 2014	   Juanjo Menent		<jmenent@2byte.es>
    +/* Copyright (C) 2011-2018 Alexandre Spangaro   <aspangaro@zendsi.com>
    + * Copyright (C) 2014      Juanjo Menent        <jmenent@2byte.es>
      *
      * 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
    @@ -17,9 +17,9 @@
      */
     
     /**
    - *      \file       htdocs/compta/salaries/class/paymentsalary.class.php
    - *      \ingroup    salaries
    - *      \brief		Class for salaries module payment
    + *  \file       htdocs/compta/salaries/class/paymentsalary.class.php
    + *  \ingroup    salaries
    + *  \brief      Class for salaries module payment
      */
     
     // Put here all includes required by your class file
    @@ -31,22 +31,61 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class PaymentSalary extends CommonObject
     {
    -	public $element='payment_salary';			//!< Id that identify managed objects
    -	public $table_element='payment_salary';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='payment_salary';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='payment_salary';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto='payment';
     
     	public $tms;
    +
    +	/**
    +	 * @var int User ID
    +	 */
     	public $fk_user;
    +
     	public $datep;
     	public $datev;
     	public $amount;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_project;
    +
     	public $type_payment;
     	public $num_payment;
    -	public $label;
    +
    +	/**
    +     * @var string salary payments label
    +     */
    +    public $label;
    +
     	public $datesp;
     	public $dateep;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_bank;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_author;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_modif;
     
     
    @@ -60,7 +99,6 @@ class PaymentSalary extends CommonObject
     		$this->db = $db;
     		$this->element = 'payment_salary';
     		$this->table_element = 'payment_salary';
    -		return 1;
     	}
     
     	/**
    @@ -102,6 +140,7 @@ class PaymentSalary extends CommonObject
     		$sql.= " datep='".$this->db->idate($this->datep)."',";
     		$sql.= " datev='".$this->db->idate($this->datev)."',";
     		$sql.= " amount=".price2num($this->amount).",";
    +		$sql.= " fk_projet='".$this->db->escape($this->fk_project)."',";
     		$sql.= " fk_typepayment=".$this->fk_typepayment."',";
     		$sql.= " num_payment='".$this->db->escape($this->num_payment)."',";
     		$sql.= " label='".$this->db->escape($this->label)."',";
    @@ -161,6 +200,7 @@ class PaymentSalary extends CommonObject
     		$sql.= " s.datep,";
     		$sql.= " s.datev,";
     		$sql.= " s.amount,";
    +		$sql.= " s.fk_projet as fk_project,";
     		$sql.= " s.fk_typepayment,";
     		$sql.= " s.num_payment,";
     		$sql.= " s.label,";
    @@ -186,25 +226,26 @@ class PaymentSalary extends CommonObject
     			{
     				$obj = $this->db->fetch_object($resql);
     
    -				$this->id    = $obj->rowid;
    -				$this->ref   = $obj->rowid;
    -				$this->tms   = $this->db->jdate($obj->tms);
    -				$this->fk_user = $obj->fk_user;
    -				$this->datep = $this->db->jdate($obj->datep);
    -				$this->datev = $this->db->jdate($obj->datev);
    -				$this->amount = $obj->amount;
    -				$this->type_payement = $obj->fk_typepayment;
    -				$this->num_payment = $obj->num_payment;
    -				$this->label = $obj->label;
    -				$this->datesp = $this->db->jdate($obj->datesp);
    -				$this->dateep = $this->db->jdate($obj->dateep);
    -				$this->note  = $obj->note;
    -				$this->fk_bank = $obj->fk_bank;
    -				$this->fk_user_author = $obj->fk_user_author;
    -				$this->fk_user_modif = $obj->fk_user_modif;
    -				$this->fk_account = $obj->fk_account;
    -				$this->fk_type = $obj->fk_type;
    -				$this->rappro  = $obj->rappro;
    +				$this->id				= $obj->rowid;
    +				$this->ref				= $obj->rowid;
    +				$this->tms				= $this->db->jdate($obj->tms);
    +				$this->fk_user			= $obj->fk_user;
    +				$this->datep			= $this->db->jdate($obj->datep);
    +				$this->datev			= $this->db->jdate($obj->datev);
    +				$this->amount			= $obj->amount;
    +				$this->fk_project		= $obj->fk_project;
    +				$this->type_payement	= $obj->fk_typepayment;
    +				$this->num_payment		= $obj->num_payment;
    +				$this->label			= $obj->label;
    +				$this->datesp			= $this->db->jdate($obj->datesp);
    +				$this->dateep			= $this->db->jdate($obj->dateep);
    +				$this->note				= $obj->note;
    +				$this->fk_bank			= $obj->fk_bank;
    +				$this->fk_user_author	= $obj->fk_user_author;
    +				$this->fk_user_modif	= $obj->fk_user_modif;
    +				$this->fk_account		= $obj->fk_account;
    +				$this->fk_type			= $obj->fk_type;
    +				$this->rappro			= $obj->rappro;
     			}
     			$this->db->free($resql);
     
    @@ -276,12 +317,12 @@ class PaymentSalary extends CommonObject
     		$this->fk_user_modif='';
     	}
     
    -    /**
    -     *  Create in database
    -     *
    -     *  @param      User	$user       User that create
    -     *  @return     int      			<0 if KO, >0 if OK
    -     */
    +	/**
    +	 *  Create in database
    +	 *
    +	 *  @param      User	$user       User that create
    +	 *  @return     int      			<0 if KO, >0 if OK
    +	 */
     	function create($user)
     	{
     		global $conf,$langs;
    @@ -331,6 +372,7 @@ class PaymentSalary extends CommonObject
     		$sql.= ", datep";
     		$sql.= ", datev";
     		$sql.= ", amount";
    +		$sql.= ", fk_projet";
     		$sql.= ", salary";
     		$sql.= ", fk_typepayment";
     		$sql.= ", num_payment";
    @@ -348,6 +390,7 @@ class PaymentSalary extends CommonObject
     		$sql.= ", '".$this->db->idate($this->datep)."'";
     		$sql.= ", '".$this->db->idate($this->datev)."'";
     		$sql.= ", ".$this->amount;
    +		$sql.= ", ".($this->fk_project > 0? $this->fk_project : 0);
     		$sql.= ", ".($this->salary > 0 ? $this->salary : "null");
     		$sql.= ", ".$this->db->escape($this->type_payment);
     		$sql.= ", '".$this->db->escape($this->num_payment)."'";
    @@ -444,7 +487,6 @@ class PaymentSalary extends CommonObject
     	            $result=$this->call_trigger('PAYMENT_SALARY_CREATE',$user);
     	            if ($result < 0) $error++;
     	            // End call triggers
    -
     			}
     			else $error++;
     
    @@ -467,6 +509,7 @@ class PaymentSalary extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update link between payment salary and line generate into llx_bank
     	 *
    @@ -475,6 +518,7 @@ class PaymentSalary extends CommonObject
     	 */
     	function update_fk_bank($id_bank)
     	{
    +        // phpcs:enable
     		$sql = 'UPDATE '.MAIN_DB_PREFIX.'payment_salary SET fk_bank = '.$id_bank;
     		$sql.= ' WHERE rowid = '.$this->id;
     		$result = $this->db->query($sql);
    @@ -493,26 +537,73 @@ class PaymentSalary extends CommonObject
     	/**
     	 *	Send name clicable (with possibly the picto)
     	 *
    -	 *	@param	int		$withpicto		0=No picto, 1=Include picto into link, 2=Only picto
    -	 *	@param	string	$option			link option
    -	 *	@return	string					Chaine with URL
    +	 *	@param	int		$withpicto					0=No picto, 1=Include picto into link, 2=Only picto
    +	 *	@param	string	$option						link option
    +     *  @param	int  	$notooltip					1=Disable tooltip
    +     *  @param  string  $morecss            		Add more css on link
    +     *  @param  int     $save_lastsearch_value    	-1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    +	 *	@return	string								Chaine with URL
     	 */
    -	function getNomUrl($withpicto=0,$option='')
    +	function getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1)
     	{
    -		global $langs;
    +		global $db, $conf, $langs, $hookmanager;
    +		global $dolibarr_main_authentication, $dolibarr_main_demo;
    +		global $menumanager;
     
    -		$result='';
    -        $label=$langs->trans("ShowSalaryPayment").': '.$this->ref;
    +		if (! empty($conf->dol_no_mouse_hover)) $notooltip=1;   // Force disable tooltips
     
    -        $linkstart = '<a href="'.DOL_URL_ROOT.'/compta/salaries/card.php?id='.$this->id.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
    +		$result = '';
    +
    +		$label = '<u>' . $langs->trans("ShowSalaryPayment") . '</u>';
    +		$label.= '<br>';
    +		$label.= '<b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
    +
    +		$url = DOL_URL_ROOT.'/compta/salaries/card.php?id='.$this->id;
    +
    +		if ($option != 'nolink')
    +		{
    +			// Add param to save lastsearch_values or not
    +			$add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    +			if ($save_lastsearch_value == -1 && preg_match('/list\.php/',$_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1;
    +			if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
    +		}
    +
    +		$linkclose='';
    +		if (empty($notooltip))
    +		{
    +			if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
    +			{
    +				$label=$langs->trans("ShowMyObject");
    +				$linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    +			}
    +			$linkclose.=' title="'.dol_escape_htmltag($label, 1).'"';
    +			$linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"';
    +
    +			/*
    +			 $hookmanager->initHooks(array('myobjectdao'));
    +			 $parameters=array('id'=>$this->id);
    +			 $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +			 if ($reshook > 0) $linkclose = $hookmanager->resPrint;
    +			 */
    +		}
    +		else $linkclose = ($morecss?' class="'.$morecss.'"':'');
    +
    +		$linkstart = '<a href="'.$url.'"';
    +		$linkstart.=$linkclose.'>';
     		$linkend='</a>';
     
    -		$picto='payment';
    -
     		$result .= $linkstart;
     		if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
     		if ($withpicto != 2) $result.= $this->ref;
     		$result .= $linkend;
    +		//if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
    +
    +		global $action,$hookmanager;
    +		$hookmanager->initHooks(array('salarypayment'));
    +		$parameters=array('id'=>$this->id, 'getnomurl'=>$result);
    +		$reshook=$hookmanager->executeHooks('getNomUrl',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +		if ($reshook > 0) $result = $hookmanager->resPrint;
    +		else $result .= $hookmanager->resPrint;
     
     		return $result;
     	}
    @@ -566,6 +657,7 @@ class PaymentSalary extends CommonObject
     	    return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Renvoi le libelle d'un statut donne
     	 *
    @@ -575,6 +667,7 @@ class PaymentSalary extends CommonObject
     	 */
     	function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     	    global $langs;	// TODO Renvoyer le libelle anglais et faire traduction a affichage
     
     	    $langs->load('compta');
    @@ -615,5 +708,4 @@ class PaymentSalary extends CommonObject
     	    }*/
     	    return '';
     	}
    -
     }
    diff --git a/htdocs/compta/salaries/class/salariesstats.class.php b/htdocs/compta/salaries/class/salariesstats.class.php
    index 647dc27f4a5..82a8d094148 100644
    --- a/htdocs/compta/salaries/class/salariesstats.class.php
    +++ b/htdocs/compta/salaries/class/salariesstats.class.php
    @@ -29,6 +29,9 @@ include_once DOL_DOCUMENT_ROOT . '/compta/salaries/class/paymentsalary.class.php
      */
     class SalariesStats extends Stats
     {
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element;
     
     	var $socid;
    diff --git a/htdocs/compta/salaries/document.php b/htdocs/compta/salaries/document.php
    index 49d283522ee..33e92ecaf3b 100644
    --- a/htdocs/compta/salaries/document.php
    +++ b/htdocs/compta/salaries/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
      * Copyright (C) 2011-2012 Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    @@ -91,7 +91,7 @@ if ($object->id)
     
     	dol_fiche_head($head, 'documents',  $langs->trans("SalaryPayment"), -1, 'payment');
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -99,7 +99,7 @@ if ($object->id)
     		$totalsize+=$file['size'];
     	}
     
    -	$linkback = '<a href="'.DOL_URL_ROOT.'/compta/salaries/index.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
    +	$linkback = '<a href="'.DOL_URL_ROOT.'/compta/salaries/list.php?restore_lastsearch_values=1'.(! empty($socid)?'&socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
     
     	$morehtmlref='<div class="refidno">';
     
    @@ -127,13 +127,12 @@ if ($object->id)
     	$permission = $user->rights->salaries->write;
     	$param = '&id=' . $object->id;
     	include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
    -
     }
     else
     {
     	print $langs->trans("ErrorUnknown");
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/salaries/info.php b/htdocs/compta/salaries/info.php
    index 467abe3618c..87d24ceb406 100644
    --- a/htdocs/compta/salaries/info.php
    +++ b/htdocs/compta/salaries/info.php
    @@ -54,7 +54,7 @@ $head = salaries_prepare_head($object);
     
     dol_fiche_head($head, 'info', $langs->trans("SalaryPayment"), -1, 'payment');
     
    -$linkback = '<a href="'.DOL_URL_ROOT.'/compta/salaries/index.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
    +$linkback = '<a href="'.DOL_URL_ROOT.'/compta/salaries/list.php?restore_lastsearch_values=1'.(! empty($socid)?'&socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
     
     $morehtmlref='<div class="refidno">';
     
    @@ -79,6 +79,6 @@ print '</div>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/salaries/index.php b/htdocs/compta/salaries/list.php
    similarity index 99%
    rename from htdocs/compta/salaries/index.php
    rename to htdocs/compta/salaries/list.php
    index 73f50b57564..c7f5970723e 100644
    --- a/htdocs/compta/salaries/index.php
    +++ b/htdocs/compta/salaries/list.php
    @@ -18,7 +18,7 @@
      */
     
     /**
    - *	    \file       htdocs/compta/salaries/index.php
    + *	    \file       htdocs/compta/salaries/list.php
      *      \ingroup    salaries
      *		\brief     	List of salaries payments
      */
    @@ -231,6 +231,7 @@ if ($result)
     
             $salstatic->id=$obj->rowid;
     		$salstatic->ref=$obj->rowid;
    +
             // Ref
     		print "<td>".$salstatic->getNomUrl(1)."</td>\n";
     		// Employee
    @@ -294,6 +295,6 @@ else
         dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/salaries/stats/index.php b/htdocs/compta/salaries/stats/index.php
    index 090629ba97d..6471f66cf57 100644
    --- a/htdocs/compta/salaries/stats/index.php
    +++ b/htdocs/compta/salaries/stats/index.php
    @@ -187,7 +187,7 @@ $head[$h][1] = $langs->trans("ByMonthYear");
     $head[$h][2] = 'byyear';
     $h++;
     
    -complete_head_from_modules($conf,$langs,null,$head,$h,'trip_stats');
    +complete_head_from_modules($conf,$langs,null,$head,$h,'salaries_stats');
     
     dol_fiche_head($head, 'byyear', $langs->trans("Statistics"), -1);
     
    @@ -197,7 +197,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     
     // Show filter box
     print '<form name="stats" method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    -print '<table class="border" width="100%">';
    +print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
     // User
     print '<tr><td>'.$langs->trans("User").'</td><td>';
    @@ -214,8 +214,9 @@ print '</table>';
     print '</form>';
     print '<br><br>';
     
    -print '<table class="border" width="100%">';
    -print '<tr>';
    +print '<div class="div-table-responsive-no-min">';
    +print '<table class="noborder" width="100%">';
    +print '<tr class="liste_titre" height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
     print '<td align="right">'.$langs->trans("Number").'</td>';
     print '<td align="right">'.$langs->trans("AmountTotal").'</td>';
    @@ -230,14 +231,16 @@ foreach ($data as $val)
     	{
     		// If we have empty year
     		$oldyear--;
    -		print '<tr height="24">';
    +
    +		print '<tr class="oddeven" height="24">';
     		print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'">'.$oldyear.'</a></td>';
     		print '<td align="right">0</td>';
     		print '<td align="right">0</td>';
     		print '<td align="right">0</td>';
     		print '</tr>';
     	}
    -	print '<tr height="24">';
    +
    +	print '<tr class="oddeven" height="24">';
     	print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'">'.$year.'</a></td>';
     	print '<td align="right">'.$val['nb'].'</td>';
     	print '<td align="right">'.price(price2num($val['total'],'MT'),1).'</td>';
    @@ -247,6 +250,7 @@ foreach ($data as $val)
     }
     
     print '</table>';
    +print '</div>';
     
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
    @@ -271,7 +275,6 @@ print '<div style="clear:both"></div>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/sociales/card.php b/htdocs/compta/sociales/card.php
    index 4fc9eb00bcd..6a0d53d6987 100644
    --- a/htdocs/compta/sociales/card.php
    +++ b/htdocs/compta/sociales/card.php
    @@ -1,8 +1,8 @@
     <?php
    -/* Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2016      Frédéric France      <frederic.france@free.fr>
    - * Copyright (C) 2017      Alexandre Spangaro   <aspangaro@zendsi.com>
    +/* Copyright (C) 2004-2016 Laurent Destailleur      <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2013 Regis Houssin            <regis.houssin@inodbox.com>
    + * Copyright (C) 2016-2018 Frédéric France          <frederic.france@netlogic.fr>
    + * Copyright (C) 2017      Alexandre Spangaro       <aspangaro@zendsi.com>
      *
      * 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
    @@ -32,11 +32,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     if (! empty($conf->projet->enabled))
     {
    -	require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    -	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
    +	include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    +	include_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
     }
     if (! empty($conf->accounting->enabled)) {
    -	require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php';
    +	include_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php';
     }
     
     // Load translation files required by the page
    @@ -332,7 +332,7 @@ if ($action == 'create')
     	print $form->textwithpicto($langs->trans("PeriodEndDate"), $langs->trans("LastDayTaxIsRelatedTo"));
     	print '</td>';
        	print '<td>';
    -	print $form->select_date(! empty($dateperiod)?$dateperiod:'-1', 'period', 0, 0, 0, 'charge', 1);
    +	print $form->selectDate(! empty($dateperiod)?$dateperiod:'-1', 'period', 0, 0, 0, 'charge', 1);
     	print '</td>';
     	print '</tr>';
     
    @@ -342,7 +342,7 @@ if ($action == 'create')
     	print $langs->trans("DateDue");
     	print '</td>';
     	print '<td>';
    -	print $form->select_date(! empty($dateech)?$dateech:'-1', 'ech', 0, 0, 0, 'charge', 1);
    +	print $form->selectDate(! empty($dateech)?$dateech:'-1', 'ech', 0, 0, 0, 'charge', 1);
     	print '</td>';
     	print "</tr>\n";
     
    @@ -481,7 +481,7 @@ if ($id > 0)
     		}
     		$morehtmlref.='</div>';
     
    -		$linkback = '<a href="' . DOL_URL_ROOT . '/compta/sociales/index.php?restore_lastsearch_values=1">' . $langs->trans("BackToList") . '</a>';
    +		$linkback = '<a href="' . DOL_URL_ROOT . '/compta/sociales/list.php?restore_lastsearch_values=1">' . $langs->trans("BackToList") . '</a>';
     
     		$object->totalpaye = $totalpaye;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    @@ -502,7 +502,7 @@ if ($id > 0)
     		print "<td>";
     		if ($action == 'edit')
     		{
    -			print $form->select_date($object->periode, 'period', 0, 0, 0, 'charge', 1);
    +			print $form->selectDate($object->periode, 'period', 0, 0, 0, 'charge', 1);
     		}
     		else
     		{
    @@ -514,10 +514,9 @@ if ($id > 0)
     		if ($action == 'edit')
     		{
     			print '<tr><td>'.$langs->trans("DateDue")."</td><td>";
    -			print $form->select_date($object->date_ech, 'ech', 0, 0, 0, 'charge', 1);
    +			print $form->selectDate($object->date_ech, 'ech', 0, 0, 0, 'charge', 1);
     			print "</td></tr>";
    -		}
    -		else {
    +		} else {
     			print "<tr><td>".$langs->trans("DateDue")."</td><td>".dol_print_date($object->date_ech,'day')."</td></tr>";
     		}
     
    @@ -750,7 +749,6 @@ if ($id > 0)
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/sociales/class/cchargesociales.class.php b/htdocs/compta/sociales/class/cchargesociales.class.php
    index a44b820c8ea..9e13ffcd8a5 100644
    --- a/htdocs/compta/sociales/class/cchargesociales.class.php
    +++ b/htdocs/compta/sociales/class/cchargesociales.class.php
    @@ -25,7 +25,7 @@
      */
     
     // Put here all includes required by your class file
    -require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
    +//require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
     //require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
     //require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php';
     
    @@ -38,25 +38,25 @@ class Cchargesociales
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'cchargesociales';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'c_chargesociales';
     
    -	/**
    -	 */
    -	
     	public $libelle;
     	public $deductible;
     	public $active;
     	public $code;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_pays;
    +
     	public $module;
     	public $accountancy_code;
     
    -	/**
    -	 */
    -	
     
     	/**
     	 * Constructor
    @@ -82,38 +82,25 @@ class Cchargesociales
     
     		$error = 0;
     
    -		// Clean parameters
    -		
    -		if (isset($this->libelle)) {
    -			 $this->libelle = trim($this->libelle);
    -		}
    -		if (isset($this->deductible)) {
    -			 $this->deductible = trim($this->deductible);
    -		}
    -		if (isset($this->active)) {
    -			 $this->active = trim($this->active);
    -		}
    -		if (isset($this->code)) {
    -			 $this->code = trim($this->code);
    -		}
    -		if (isset($this->fk_pays)) {
    -			 $this->fk_pays = trim($this->fk_pays);
    -		}
    -		if (isset($this->module)) {
    -			 $this->module = trim($this->module);
    -		}
    -		if (isset($this->accountancy_code)) {
    -			 $this->accountancy_code = trim($this->accountancy_code);
    -		}
    -
    -		
    +        // Clean parameters
    +        $this->trimParameters(
    +            array(
    +                'libelle',
    +                'deductible',
    +                'active',
    +                'code',
    +                'fk_pays',
    +                'module',
    +                'accountancy_code',
    +            )
    +        );
     
     		// Check parameters
     		// Put here code to add control on parameters values
     
     		// Insert request
     		$sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . '(';
    -		
    +
     		$sql.= 'libelle,';
     		$sql.= 'deductible,';
     		$sql.= 'active,';
    @@ -122,9 +109,9 @@ class Cchargesociales
     		$sql.= 'module';
     		$sql.= 'accountancy_code';
     
    -		
    +
     		$sql .= ') VALUES (';
    -		
    +
     		$sql .= ' '.(! isset($this->libelle)?'NULL':"'".$this->db->escape($this->libelle)."'").',';
     		$sql .= ' '.(! isset($this->deductible)?'NULL':$this->deductible).',';
     		$sql .= ' '.(! isset($this->active)?'NULL':$this->active).',';
    @@ -133,7 +120,7 @@ class Cchargesociales
     		$sql .= ' '.(! isset($this->module)?'NULL':"'".$this->db->escape($this->module)."'").',';
     		$sql .= ' '.(! isset($this->accountancy_code)?'NULL':"'".$this->db->escape($this->accountancy_code)."'");
     
    -		
    +
     		$sql .= ')';
     
     		$this->db->begin();
    @@ -148,7 +135,7 @@ class Cchargesociales
     		if (!$error) {
     			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element);
     
    -			if (!$notrigger) {
    +			//if (!$notrigger) {
     				// Uncomment this and change MYOBJECT to your own tag if you
     				// want this action to call a trigger.
     
    @@ -156,7 +143,7 @@ class Cchargesociales
     				//$result=$this->call_trigger('MYOBJECT_CREATE',$user);
     				//if ($result < 0) $error++;
     				//// End call triggers
    -			}
    +			//}
     		}
     
     		// Commit or rollback
    @@ -206,7 +193,7 @@ class Cchargesociales
     				$obj = $this->db->fetch_object($resql);
     
     				$this->id = $obj->id;
    -				
    +
     				$this->libelle = $obj->libelle;
     				$this->deductible = $obj->deductible;
     				$this->active = $obj->active;
    @@ -214,8 +201,6 @@ class Cchargesociales
     				$this->fk_pays = $obj->fk_pays;
     				$this->module = $obj->module;
     				$this->accountancy_code = $obj->accountancy_code;
    -
    -				
     			}
     			$this->db->free($resql);
     
    @@ -247,30 +232,19 @@ class Cchargesociales
     		dol_syslog(__METHOD__, LOG_DEBUG);
     
     		// Clean parameters
    -		
    -		if (isset($this->libelle)) {
    -			 $this->libelle = trim($this->libelle);
    -		}
    -		if (isset($this->deductible)) {
    -			 $this->deductible = trim($this->deductible);
    -		}
    -		if (isset($this->active)) {
    -			 $this->active = trim($this->active);
    -		}
    -		if (isset($this->code)) {
    -			 $this->code = trim($this->code);
    -		}
    -		if (isset($this->fk_pays)) {
    -			 $this->fk_pays = trim($this->fk_pays);
    -		}
    -		if (isset($this->module)) {
    -			 $this->module = trim($this->module);
    -		}
    -		if (isset($this->accountancy_code)) {
    -			 $this->accountancy_code = trim($this->accountancy_code);
    -		}
     
    -		
    +        $this->trimParameters(
    +            array(
    +                'libelle',
    +                'deductible',
    +                'active',
    +                'code',
    +                'fk_pays',
    +                'module',
    +                'accountancy_code',
    +            )
    +        );
    +
     
     		// Check parameters
     		// Put here code to add a control on parameters values
    @@ -295,7 +269,7 @@ class Cchargesociales
     			dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
     		}
     
    -		if (!$error && !$notrigger) {
    +		//if (!$error && !$notrigger) {
     			// Uncomment this and change MYOBJECT to your own tag if you
     			// want this action calls a trigger.
     
    @@ -303,7 +277,7 @@ class Cchargesociales
     			//$result=$this->call_trigger('MYOBJECT_MODIFY',$user);
     			//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
     			//// End call triggers
    -		}
    +		//}
     
     		// Commit or rollback
     		if ($error) {
    @@ -333,8 +307,8 @@ class Cchargesociales
     
     		$this->db->begin();
     
    -		if (!$error) {
    -			if (!$notrigger) {
    +		//if (!$error) {
    +			//if (!$notrigger) {
     				// Uncomment this and change MYOBJECT to your own tag if you
     				// want this action calls a trigger.
     
    @@ -342,8 +316,8 @@ class Cchargesociales
     				//$result=$this->call_trigger('MYOBJECT_DELETE',$user);
     				//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
     				//// End call triggers
    -			}
    -		}
    +			//}
    +		//}
     
     		if (!$error) {
     			$sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element;
    @@ -395,6 +369,7 @@ class Cchargesociales
     		// ...
     
     		// Create clone
    +		$this->context['createfromclone'] = 'createfromclone';
     		$result = $object->create($user);
     
     		// Other options
    @@ -404,6 +379,8 @@ class Cchargesociales
     			dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
     		}
     
    +		unset($this->context['createfromclone']);
    +
     		// End
     		if (!$error) {
     			$this->db->commit();
    @@ -412,7 +389,7 @@ class Cchargesociales
     		} else {
     			$this->db->rollback();
     
    -			return - 1;
    +			return -1;
     		}
     	}
     
    @@ -454,7 +431,7 @@ class Cchargesociales
     		$result.= $link . $this->ref . $linkend;
     		return $result;
     	}
    -	
    +
     	/**
     	 *  Retourne le libelle du status d'un user (actif, inactif)
     	 *
    @@ -466,6 +443,7 @@ class Cchargesociales
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un status donne
     	 *
    @@ -475,42 +453,42 @@ class Cchargesociales
     	 */
     	function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
     		{
    -			$prefix='';
     			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == 0) return $langs->trans('Disabled');
    +			elseif ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == 0) return $langs->trans('Disabled');
    +			elseif ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
    +			elseif ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
     		}
     	}
    -	
    -	
    +
    +
     	/**
     	 * Initialise object with example values
     	 * Id must be 0 if object instance is a specimen
    @@ -520,7 +498,7 @@ class Cchargesociales
     	public function initAsSpecimen()
     	{
     		$this->id = 0;
    -		
    +
     		$this->libelle = '';
     		$this->deductible = '';
     		$this->active = '';
    @@ -528,8 +506,21 @@ class Cchargesociales
     		$this->fk_pays = '';
     		$this->module = '';
     		$this->accountancy_code = '';
    -
    -		
     	}
     
    +    /**
    +     * Trim object parameters
    +     * @param string[] $parameters array of parameters to trim
    +     *
    +     * @return void
    +     */
    +    private function trimParameters($parameters)
    +    {
    +        if (!is_array($parameters)) return;
    +        foreach ($parameters as $parameter) {
    +            if (isset($this->$parameter)) {
    +                $this->$parameter = trim($this->$parameter);
    +            }
    +        }
    +    }
     }
    diff --git a/htdocs/compta/sociales/class/chargesociales.class.php b/htdocs/compta/sociales/class/chargesociales.class.php
    index 65e6085a650..cca5a4d7dd2 100644
    --- a/htdocs/compta/sociales/class/chargesociales.class.php
    +++ b/htdocs/compta/sociales/class/chargesociales.class.php
    @@ -32,9 +32,21 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class ChargeSociales extends CommonObject
     {
    -    public $element='chargesociales';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='chargesociales';
    +
         public $table='chargesociales';
    -    public $table_element='chargesociales';
    +
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='chargesociales';
    +
    +    /**
    +     * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +     */
         public $picto = 'bill';
     
         /**
    @@ -42,18 +54,26 @@ class ChargeSociales extends CommonObject
          */
         protected $table_ref_field = 'ref';
     
    -    var $date_ech;
    -    var $lib;
    -    var $type;
    -    var $type_libelle;
    -    var $amount;
    -    var $paye;
    -    var $periode;
    -    var $date_creation;
    -    var $date_modification;
    -    var $date_validation;
    -    var $fk_account;
    -	var $fk_project;
    +    public $date_ech;
    +    public $lib;
    +    public $type;
    +    public $type_libelle;
    +    public $amount;
    +    public $paye;
    +    public $periode;
    +    public $date_creation;
    +    public $date_modification;
    +    public $date_validation;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_account;
    +
    +    /**
    +     * @var int ID
    +     */
    +	public $fk_project;
     
     
         /**
    @@ -64,7 +84,6 @@ class ChargeSociales extends CommonObject
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
         /**
    @@ -280,7 +299,6 @@ class ChargeSociales extends CommonObject
                 $this->db->rollback();
                 return -1;
             }
    -
         }
     
     
    @@ -350,7 +368,6 @@ class ChargeSociales extends CommonObject
                 {
                     return 0;
                 }
    -
             }
             else
             {
    @@ -359,6 +376,7 @@ class ChargeSociales extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Tag social contribution as payed completely
          *
    @@ -367,6 +385,7 @@ class ChargeSociales extends CommonObject
          */
         function set_paid($user)
         {
    +        // phpcs:enable
             $sql = "UPDATE ".MAIN_DB_PREFIX."chargesociales SET";
             $sql.= " paye = 1";
             $sql.= " WHERE rowid = ".$this->id;
    @@ -374,6 +393,8 @@ class ChargeSociales extends CommonObject
             if ($return) return 1;
             else return -1;
         }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Remove tag payed on social contribution
          *
    @@ -382,6 +403,7 @@ class ChargeSociales extends CommonObject
          */
         function set_unpaid($user)
         {
    +        // phpcs:enable
             $sql = "UPDATE ".MAIN_DB_PREFIX."chargesociales SET";
             $sql.= " paye = 0";
             $sql.= " WHERE rowid = ".$this->id;
    @@ -402,6 +424,7 @@ class ChargeSociales extends CommonObject
             return $this->LibStatut($this->paye,$mode,$alreadypaid);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Renvoi le libelle d'un statut donne
          *
    @@ -412,52 +435,49 @@ class ChargeSociales extends CommonObject
          */
         function LibStatut($statut,$mode=0,$alreadypaid=-1)
         {
    +        // phpcs:enable
             global $langs;
    -        $langs->load('customers');
    -        $langs->load('bills');
     
    -        if ($mode == 0)
    +        // Load translation files required by the page
    +        $langs->loadLangs(array("customers","bills"));
    +
    +        if ($mode == 0 || $mode == 1)
             {
                 if ($statut ==  0) return $langs->trans("Unpaid");
                 if ($statut ==  1) return $langs->trans("Paid");
             }
    -        if ($mode == 1)
    -        {
    -            if ($statut ==  0) return $langs->trans("Unpaid");
    -            if ($statut ==  1) return $langs->trans("Paid");
    -        }
    -        if ($mode == 2)
    +        elseif ($mode == 2)
             {
                 if ($statut ==  0 && $alreadypaid <= 0) return img_picto($langs->trans("Unpaid"), 'statut1').' '.$langs->trans("Unpaid");
                 if ($statut ==  0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3').' '.$langs->trans("BillStatusStarted");
                 if ($statut ==  1) return img_picto($langs->trans("Paid"), 'statut6').' '.$langs->trans("Paid");
             }
    -        if ($mode == 3)
    +        elseif ($mode == 3)
             {
                 if ($statut ==  0 && $alreadypaid <= 0) return img_picto($langs->trans("Unpaid"), 'statut1');
                 if ($statut ==  0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3');
                 if ($statut ==  1) return img_picto($langs->trans("Paid"), 'statut6');
             }
    -        if ($mode == 4)
    +        elseif ($mode == 4)
             {
                 if ($statut ==  0 && $alreadypaid <= 0) return img_picto($langs->trans("Unpaid"), 'statut1').' '.$langs->trans("Unpaid");
                 if ($statut ==  0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3').' '.$langs->trans("BillStatusStarted");
                 if ($statut ==  1) return img_picto($langs->trans("Paid"), 'statut6').' '.$langs->trans("Paid");
             }
    -        if ($mode == 5)
    +        elseif ($mode == 5)
             {
                 if ($statut ==  0 && $alreadypaid <= 0) return $langs->trans("Unpaid").' '.img_picto($langs->trans("Unpaid"), 'statut1');
                 if ($statut ==  0 && $alreadypaid > 0) return $langs->trans("BillStatusStarted").' '.img_picto($langs->trans("BillStatusStarted"), 'statut3');
                 if ($statut ==  1) return $langs->trans("Paid").' '.img_picto($langs->trans("Paid"), 'statut6');
             }
    -        if ($mode == 6)
    +        elseif ($mode == 6)
             {
                 if ($statut ==  0 && $alreadypaid <= 0) return $langs->trans("Unpaid").' '.img_picto($langs->trans("Unpaid"), 'statut1');
                 if ($statut ==  0 && $alreadypaid > 0) return $langs->trans("BillStatusStarted").' '.img_picto($langs->trans("BillStatusStarted"), 'statut3');
                 if ($statut ==  1) return $langs->trans("Paid").' '.img_picto($langs->trans("Paid"), 'statut6');
             }
     
    -        return "Error, mode/status not found";
    +        else return "Error, mode/status not found";
         }
     
     
    @@ -606,7 +626,6 @@ class ChargeSociales extends CommonObject
                 }
     
                 $this->db->free($result);
    -
             }
             else
             {
    @@ -637,4 +656,3 @@ class ChargeSociales extends CommonObject
             $this->type_libelle = 'Social contribution label';
         }
     }
    -
    diff --git a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php
    index ba9c671f755..74ddce68230 100644
    --- a/htdocs/compta/sociales/class/paymentsocialcontribution.class.php
    +++ b/htdocs/compta/sociales/class/paymentsocialcontribution.class.php
    @@ -31,26 +31,60 @@ require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'
      */
     class PaymentSocialContribution extends CommonObject
     {
    -	public $element='paiementcharge';			//!< Id that identify managed objects
    -	public $table_element='paiementcharge';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='paiementcharge';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='paiementcharge';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'payment';
     
    -	var $fk_charge;
    -	var $datec='';
    -	var $tms='';
    -	var $datep='';
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_charge;
    +
    +	public $datec='';
    +	public $tms='';
    +	public $datep='';
    +
     	/**
     	 * @deprecated
     	 * @see amount
     	 */
    -	var $total;
    -    var $amount;            // Total amount of payment
    -    var $amounts=array();   // Array of amounts
    -	var $fk_typepaiement;
    -	var $num_paiement;
    -	var $fk_bank;
    -	var $fk_user_creat;
    -	var $fk_user_modif;
    +	public $total;
    +
    +    public $amount;            // Total amount of payment
    +    public $amounts=array();   // Array of amounts
    +
    +    /**
    +     * @var int ID
    +     */
    +	public $fk_typepaiement;
    +
    +	public $num_paiement;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_bank;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_modif;
     
     	/**
     	 *	Constructor
    @@ -161,7 +195,6 @@ class PaymentSocialContribution extends CommonObject
     			{
     				$error++;
     			}
    -
     		}
     
     		$result = $this->call_trigger('PAYMENTSOCIALCONTRIBUTION_CREATE',$user);
    @@ -426,8 +459,6 @@ class PaymentSocialContribution extends CommonObject
     
     		$object=new PaymentSocialContribution($this->db);
     
    -		$object->context['createfromclone'] = 'createfromclone';
    -
     		$this->db->begin();
     
     		// Load source object
    @@ -439,6 +470,7 @@ class PaymentSocialContribution extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result=$object->create($user);
     
     		// Other options
    @@ -455,7 +487,7 @@ class PaymentSocialContribution extends CommonObject
     
     		}
     
    -		unset($this->context['createfromclone']);
    +		unset($object->context['createfromclone']);
     
     		// End
     		if (! $error)
    @@ -493,8 +525,6 @@ class PaymentSocialContribution extends CommonObject
     		$this->fk_bank='';
     		$this->fk_user_creat='';
     		$this->fk_user_modif='';
    -
    -
     	}
     
     
    @@ -518,7 +548,7 @@ class PaymentSocialContribution extends CommonObject
     
             if (! empty($conf->banque->enabled))
             {
    -            require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
    +            include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
                 $acc = new Account($this->db);
                 $acc->fetch($accountid);
    @@ -594,6 +624,7 @@ class PaymentSocialContribution extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Mise a jour du lien entre le paiement de  charge et la ligne dans llx_bank generee
     	 *
    @@ -602,6 +633,7 @@ class PaymentSocialContribution extends CommonObject
     	 */
     	function update_fk_bank($id_bank)
     	{
    +        // phpcs:enable
     		$sql = "UPDATE ".MAIN_DB_PREFIX."paiementcharge SET fk_bank = ".$id_bank." WHERE rowid = ".$this->id;
     
     		dol_syslog(get_class($this)."::update_fk_bank", LOG_DEBUG);
    @@ -629,6 +661,7 @@ class PaymentSocialContribution extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Renvoi le libelle d'un statut donne
     	 *
    @@ -638,6 +671,7 @@ class PaymentSocialContribution extends CommonObject
     	 */
     	function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;	// TODO Renvoyer le libelle anglais et faire traduction a affichage
     
     		$langs->load('compta');
    @@ -708,5 +742,3 @@ class PaymentSocialContribution extends CommonObject
     		return $result;
     	}
     }
    -
    -
    diff --git a/htdocs/compta/sociales/document.php b/htdocs/compta/sociales/document.php
    index 490dbf3a1fe..6b5fd8f9e52 100644
    --- a/htdocs/compta/sociales/document.php
    +++ b/htdocs/compta/sociales/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
      * Copyright (C) 2011      Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    @@ -35,8 +35,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     if (! empty($conf->projet->enabled))
     {
    -    require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    -    require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
    +    include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    +    include_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
     }
     
     // Load translation files required by the page
    @@ -76,7 +76,7 @@ $modulepart='tax';
      * Actions
      */
     
    -include_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php';
     
     if ($action == 'setlib' && $user->rights->tax->charges->creer)
     {
    @@ -127,7 +127,7 @@ if ($object->id)
     	}
     	$morehtmlref.='</div>';
     
    -	$linkback = '<a href="' . DOL_URL_ROOT . '/compta/sociales/index.php?restore_lastsearch_values=1">' . $langs->trans("BackToList") . '</a>';
    +	$linkback = '<a href="' . DOL_URL_ROOT . '/compta/sociales/list.php?restore_lastsearch_values=1">' . $langs->trans("BackToList") . '</a>';
     
     	$object->totalpaye = $totalpaye;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    @@ -136,7 +136,7 @@ if ($object->id)
     	print '<div class="fichecenter">';
     	print '<div class="underbanner clearboth"></div>';
     
    -    // Construit liste des fichiers
    +    // Build file list
         $filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
         $totalsize=0;
         foreach($filearray as $key => $file)
    @@ -168,7 +168,6 @@ else
         print $langs->trans("ErrorUnknown");
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/sociales/info.php b/htdocs/compta/sociales/info.php
    index 1827c1597f8..35c00766252 100644
    --- a/htdocs/compta/sociales/info.php
    +++ b/htdocs/compta/sociales/info.php
    @@ -27,8 +27,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/tax.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     if (! empty($conf->projet->enabled))
     {
    -    require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    -    require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
    +    include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    +    include_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
     }
     
     // Load translation files required by the page
    @@ -98,7 +98,7 @@ if (! empty($conf->projet->enabled))
     }
     $morehtmlref.='</div>';
     
    -$linkback = '<a href="' . DOL_URL_ROOT . '/compta/sociales/index.php?restore_lastsearch_values=1">' . $langs->trans("BackToList") . '</a>';
    +$linkback = '<a href="' . DOL_URL_ROOT . '/compta/sociales/list.php?restore_lastsearch_values=1">' . $langs->trans("BackToList") . '</a>';
     
     $object->totalpaye = $totalpaye;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    @@ -115,6 +115,6 @@ print '</td></tr></table>';
     
     print '</div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/sociales/index.php b/htdocs/compta/sociales/list.php
    similarity index 89%
    rename from htdocs/compta/sociales/index.php
    rename to htdocs/compta/sociales/list.php
    index bd323c972fe..261ca57cb94 100644
    --- a/htdocs/compta/sociales/index.php
    +++ b/htdocs/compta/sociales/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016      Frédéric France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -19,7 +19,7 @@
      */
     
     /**
    - *   	\file       htdocs/compta/sociales/index.php
    + *   	\file       htdocs/compta/sociales/list.php
      *		\ingroup    tax
      *		\brief      Page to list all social contributions
      */
    @@ -55,19 +55,19 @@ if (! $sortorder) $sortorder="DESC";
     $year=GETPOST("year",'int');
     $filtre=GETPOST("filtre",'int');
     
    -if (empty($_REQUEST['typeid']))
    +if (! GETPOSTISSET('search_typeid'))
     {
     	$newfiltre=str_replace('filtre=','',$filtre);
     	$filterarray=explode('-',$newfiltre);
     	foreach($filterarray as $val)
     	{
     		$part=explode(':',$val);
    -		if ($part[0] == 'cs.fk_type') $typeid=$part[1];
    +		if ($part[0] == 'cs.fk_type') $search_typeid=$part[1];
     	}
     }
     else
     {
    -	$typeid=$_REQUEST['typeid'];
    +	$search_typeid=GETPOST('search_typeid','int');
     }
     
     if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All test are required to be compatible with all browsers
    @@ -76,11 +76,12 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
     	$search_label="";
     	$search_amount="";
     	$search_status='';
    -    $typeid="";
    +    $search_typeid="";
     	$year="";
     	$month="";
     }
     
    +
     /*
      *	View
      */
    @@ -118,8 +119,8 @@ if ($filtre) {
         $filtre=str_replace(":","=",$filtre);
         $sql .= " AND ".$filtre;
     }
    -if ($typeid) {
    -    $sql .= " AND cs.fk_type=".$db->escape($typeid);
    +if ($search_typeid) {
    +    $sql .= " AND cs.fk_type=".$db->escape($search_typeid);
     }
     $sql.= " GROUP BY cs.rowid, cs.fk_type, cs.amount, cs.date_ech, cs.libelle, cs.paye, cs.periode, c.libelle";
     $sql.= $db->order($sortfield,$sortorder);
    @@ -139,10 +140,14 @@ if ($resql)
     	$i = 0;
     
     	$param='';
    -    if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    -	if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    -	if ($year)   $param.='&amp;year='.$year;
    -	if ($typeid) $param.='&amp;typeid='.$typeid;
    +    if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
    +	if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
    +	if ($search_ref)    $param.='&search_ref='.urlencode($search_ref);
    +	if ($search_label)  $param.='&search_label='.urlencode($search_label);
    +	if ($search_amount) $param.='&search_amount='.urlencode($search_amount);
    +	if ($search_typeid) $param.='&search_typeid='.urlencode($search_typeid);
    +	if ($search_status != '' && $search_status != '-1') $param.='&search_status='.urlencode($search_status);
    +	if ($year)          $param.='&year='.urlencode($year);
     
     	$newcardbutton='';
     	if($user->rights->tax->charges->creer)
    @@ -193,7 +198,7 @@ if ($resql)
     		print '<td class="liste_titre"><input type="text" class="flat" size="8" name="search_label" value="'.dol_escape_htmltag($search_label).'"></td>';
     		// Type
     		print '<td class="liste_titre" align="left">';
    -	    $formsocialcontrib->select_type_socialcontrib($typeid,'typeid',1,0,0,'maxwidth100onsmartphone');
    +	    $formsocialcontrib->select_type_socialcontrib($search_typeid,'search_typeid',1,0,0,'maxwidth100onsmartphone');
     	    print '</td>';
     		// Period end date
     		print '<td class="liste_titre">&nbsp;</td>';
    @@ -282,8 +287,8 @@ if ($resql)
     		if (isset($totalarray['totalttcfield']))
     		{
     		    print '<tr class="liste_total">';
    -            if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
    -            else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +            if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +            else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
                 print '<td></td>';
                 print '<td></td>';
                 print '<td></td>';
    @@ -304,5 +309,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/sociales/payments.php b/htdocs/compta/sociales/payments.php
    index b31ea8e4d2f..efdd39d2205 100644
    --- a/htdocs/compta/sociales/payments.php
    +++ b/htdocs/compta/sociales/payments.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2016 Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2011-2014 Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
    @@ -259,7 +259,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
     		        $total = $total + $obj->amount;
     
     		        print '<tr class="oddeven">';
    -		        print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
    +		        print '<td class="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
     
     		        print "<td>".$obj->label."</td>\n";
     
    @@ -268,7 +268,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
     		        // Ref payment
     				$tva_static->id=$obj->rowid;
     				$tva_static->ref=$obj->rowid;
    -		        print '<td align="left">'.$tva_static->getNomUrl(1)."</td>\n";
    +		        print '<td class="left">'.$tva_static->getNomUrl(1)."</td>\n";
     
     		        print '<td align="center">'.dol_print_date($db->jdate($obj->dm),'day')."</td>\n";
     		        print '<td align="right">'.price($obj->amount)."</td>";
    @@ -360,7 +360,7 @@ while($j<$numlt)
     				$total = $total + $obj->amount;
     
     				print '<tr class="oddeven">';
    -				print '<td align="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
    +				print '<td class="left">'.dol_print_date($db->jdate($obj->dm),'day').'</td>'."\n";
     
     				print "<td>".$obj->label."</td>\n";
     
    @@ -369,7 +369,7 @@ while($j<$numlt)
     				// Ref payment
     				$tva_static->id=$obj->rowid;
     				$tva_static->ref=$obj->rowid;
    -				print '<td align="left">'.$tva_static->getNomUrl(1)."</td>\n";
    +				print '<td class="left">'.$tva_static->getNomUrl(1)."</td>\n";
     
     				print '<td align="center">'.dol_print_date($db->jdate($obj->dp),'day')."</td>\n";
     				print '<td align="right">'.price($obj->amount)."</td>";
    @@ -405,7 +405,7 @@ if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read))
     
             print "<br>";
     
    -        print_fiche_titre($langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
    +        print load_fiche_titre($langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', '');
     
             $sql = "SELECT s.rowid, s.amount, s.label, s.datep as datep, s.datev as datev, s.datesp, s.dateep, s.salary, u.salary as current_salary";
             $sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as s, ".MAIN_DB_PREFIX."user as u";
    @@ -442,7 +442,7 @@ if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read))
     
                     print '<tr class="oddeven">';
     
    -                print '<td align="left">'.dol_print_date($db->jdate($obj->dateep),'day').'</td>'."\n";
    +                print '<td class="left">'.dol_print_date($db->jdate($obj->dateep),'day').'</td>'."\n";
     
                     print "<td>".$obj->label."</td>\n";
     
    @@ -451,7 +451,7 @@ if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read))
                     // Ref payment
                     $sal_static->id=$obj->rowid;
                     $sal_static->ref=$obj->rowid;
    -                print '<td align="left">'.$sal_static->getNomUrl(1)."</td>\n";
    +                print '<td class="left">'.$sal_static->getNomUrl(1)."</td>\n";
     
                     print '<td align="center">'.dol_print_date($db->jdate($obj->datep),'day')."</td>\n";
                     print '<td align="right">'.price($obj->amount)."</td>";
    @@ -480,7 +480,6 @@ if (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read))
     
     print '</form>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/stats/byratecountry.php b/htdocs/compta/stats/byratecountry.php
    index 2c43db42d13..df199d2e23e 100644
    --- a/htdocs/compta/stats/byratecountry.php
    +++ b/htdocs/compta/stats/byratecountry.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2018        Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2018       Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -152,7 +153,7 @@ if ($modetax == 1) $calcmode=$langs->trans('OptionVATDebitOption');
     if ($modetax == 2) $calcmode=$langs->trans('OptionPaymentForProductAndServices');
     $calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
     // Set period
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     $prevyear=$year_start; $prevquarter=$q;
     if ($prevquarter > 1) {
     	$prevquarter--;
    @@ -230,7 +231,7 @@ else if ($modecompta=="BOOKKEEPINGCOLLECTED")
     
     
     }
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     if ($date_end == dol_time_plus_duree($date_start, 1, 'y') - 1) $periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year_start-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year_start+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
     else $periodlink = '';
     
    @@ -249,8 +250,8 @@ if ($modecompta == 'CREANCES-DETTES')
     
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre"><td width="6%" class="right">' . $langs->trans("TurnoverbyVatrate") . '</td>';
    -print '<td align="left">' . $langs->trans("ProductOrService") . '</td>';
    -print '<td align="left">' . $langs->trans("Country") . '</td>';
    +print '<td class="left">' . $langs->trans("ProductOrService") . '</td>';
    +print '<td class="left">' . $langs->trans("Country") . '</td>';
     $i=0;
     while($i < 12)
     {
    @@ -280,7 +281,7 @@ if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
     } else {
     	$sql.= " AND f.type IN (0,1,2,3,5)";
     }
    -$sql .= " AND f.entity IN (" . getEntity("facture", 0) . ")";
    +$sql .= " AND f.entity IN (" . getEntity('invoice', 0) . ")";
     $sql .= " GROUP BY fd.tva_tx,fd.product_type, cc.label ";
     
     dol_syslog("htdocs/compta/tva/index.php sql=" . $sql, LOG_DEBUG);
    @@ -291,9 +292,9 @@ if ($resql) {
     	while ( $obj = $db->fetch_object($resql)) {
     		print '<tr class="oddeven"><td class="right">' . vatrate($obj->vatrate) . '</td>';
     		if ($obj->product_type == 0) {
    -			print '<td align="left">'. $langs->trans("Product") . '</td>';
    +			print '<td class="left">'. $langs->trans("Product") . '</td>';
     		} else {
    -			print '<td align="left">'. $langs->trans("Service") . '</td>';
    +			print '<td class="left">'. $langs->trans("Service") . '</td>';
     		}
     		print '<td>' .$obj->country . '</td>';
     		for($i = 0; $i < 12; $i++) {
    @@ -311,7 +312,7 @@ if ($resql) {
     
     	// Total
     	print '<tr class="liste_total"><td class="right"></td>';
    -	print '<td align="left"></td>';
    +	print '<td class="left"></td>';
     	print '<td></td>';
     	for($i = 0; $i < 12; $i++) {
     		$j = $i + (empty($conf->global->SOCIETE_FISCAL_MONTH_START)?1:$conf->global->SOCIETE_FISCAL_MONTH_START);
    @@ -321,15 +322,14 @@ if ($resql) {
     	}
     	print '<td align="right" width="6%"><b>' . price($totalpermonth['total']) . '</b></td>';
     	print '</tr>';
    -
     } else {
     	print $db->lasterror(); // Show last sql error
     }
     
     
     print '<tr class="liste_titre"><td width="6%" class="right">' . $langs->trans("PurchasebyVatrate") . '</td>';
    -print '<td align="left">' . $langs->trans("ProductOrService") . '</td>';
    -print '<td align="left">' . $langs->trans("Country") . '</td>';
    +print '<td class="left">' . $langs->trans("ProductOrService") . '</td>';
    +print '<td class="left">' . $langs->trans("Country") . '</td>';
     $i=0;
     while($i < 12)
     {
    @@ -371,9 +371,9 @@ if ($resql2) {
     	while ( $obj = $db->fetch_object($resql2)) {
     		print '<tr class="oddeven"><td class="right">' . vatrate($obj->vatrate) . '</td>';
     		if ($obj->product_type == 0) {
    -			print '<td align="left">'. $langs->trans("Product") . '</td>';
    +			print '<td class="left">'. $langs->trans("Product") . '</td>';
     		} else {
    -			print '<td align="left">'. $langs->trans("Service") . '</td>';
    +			print '<td class="left">'. $langs->trans("Service") . '</td>';
     		}
     		print '<td>' . $obj->country . '</td>';
     		for($i = 0; $i < 12; $i++) {
    @@ -391,7 +391,7 @@ if ($resql2) {
     
     	// Total
     	print '<tr class="liste_total"><td class="right"></td>';
    -	print '<td align="left"></td>';
    +	print '<td class="left"></td>';
     	print '<td></td>';
     	for($i = 0; $i < 12; $i++) {
     		$j = $i + (empty($conf->global->SOCIETE_FISCAL_MONTH_START)?1:$conf->global->SOCIETE_FISCAL_MONTH_START);
    @@ -405,7 +405,6 @@ if ($resql2) {
     	print $db->lasterror(); // Show last sql error
     }
     print "</table>\n";
    -
     } else {
     	// $modecompta != 'CREANCES-DETTES'
     	// "Calculation of part of each product for accountancy in this mode is not possible. When a partial payment (for example 5 euros) is done on an
    @@ -414,7 +413,6 @@ print "</table>\n";
     	print '<br>'.$langs->trans("TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant") . '<br>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/stats/cabyprodserv.php b/htdocs/compta/stats/cabyprodserv.php
    index 5d28ab3e077..701fe86f10e 100644
    --- a/htdocs/compta/stats/cabyprodserv.php
    +++ b/htdocs/compta/stats/cabyprodserv.php
    @@ -1,7 +1,8 @@
     <?php
    -/* Copyright (C) 2013      Antoine Iauch	   <aiauch@gpcsolutions.fr>
    - * Copyright (C) 2013-2016 Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2015      Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
    +/* Copyright (C) 2013       Antoine Iauch	        <aiauch@gpcsolutions.fr>
    + * Copyright (C) 2013-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -199,7 +200,7 @@ else if ($modecompta=="BOOKKEEPINGCOLLECTED")
     
     }
     
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     if ($date_end == dol_time_plus_duree($date_start, 1, 'y') - 1) $periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year_start-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year_start+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
     else $periodlink = '';
     
    @@ -258,7 +259,7 @@ if ($modecompta == 'CREANCES-DETTES')
     		$sql.= ")";
     		$sql.= " AND cp.fk_categorie = c.rowid AND cp.fk_product = p.rowid";
     	}
    -	$sql.= " AND f.entity = ".$conf->entity;
    +	$sql.= " AND f.entity IN (".getEntity('invoice').")";
     	$sql.= " GROUP BY p.rowid, p.ref, p.label, p.fk_product_type";
     	$sql.= $db->order($sortfield,$sortorder);
     
    @@ -461,5 +462,6 @@ if ($modecompta == 'CREANCES-DETTES')
     	print '<br>'.$langs->trans("TurnoverPerProductInCommitmentAccountingNotRelevant") . '<br>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/compta/stats/cabyuser.php b/htdocs/compta/stats/cabyuser.php
    index ccb286c1420..ba9556dd2ac 100644
    --- a/htdocs/compta/stats/cabyuser.php
    +++ b/htdocs/compta/stats/cabyuser.php
    @@ -1,8 +1,9 @@
     <?php
    -/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2013      Antoine Iauch        <aiauch@gpcsolutions.fr>
    +/* Copyright (C) 2001-2003  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2009  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2013       Antoine Iauch           <aiauch@gpcsolutions.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -177,7 +178,7 @@ else if ($modecompta=="BOOKKEEPINGCOLLECTED")
     
     
     }
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     if ($date_end == dol_time_plus_duree($date_start, 1, 'y') - 1) $periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year_start-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year_start+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
     else $periodlink = '';
     
    @@ -231,7 +232,7 @@ if ($modecompta == 'CREANCES-DETTES') {
     	    $sql.= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'";
     	}
     }
    -$sql.= " AND f.entity = ".$conf->entity;
    +$sql.= " AND f.entity IN (".getEntity('invoice').")";
     if ($socid) $sql.= " AND f.fk_soc = ".$socid;
     $sql .= " GROUP BY u.rowid, u.lastname, u.firstname";
     $sql .= " ORDER BY u.rowid";
    @@ -465,7 +466,6 @@ print "</table>";
     print '</div>';
     print '</form>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/stats/casoc.php b/htdocs/compta/stats/casoc.php
    index 8e00dfe5fbe..eec3bbcfbac 100644
    --- a/htdocs/compta/stats/casoc.php
    +++ b/htdocs/compta/stats/casoc.php
    @@ -1,10 +1,11 @@
     <?php
     /* Copyright (C) 2001-2003  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2007       Franky Van Liedekerke   <franky.van.liedekerke@telenet.be>
      * Copyright (C) 2013       Antoine Iauch           <aiauch@gpcsolutions.fr>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -203,7 +204,7 @@ else if ($modecompta=="BOOKKEEPINGCOLLECTED")
     
     
     }
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     if ($date_end == dol_time_plus_duree($date_start, 1, 'y') - 1) $periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year_start-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year_start+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
     else $periodlink = '';
     
    @@ -290,7 +291,7 @@ if (!empty($search_societe))  $sql.= natural_search('s.nom', $search_societe);
     if (!empty($search_zip))      $sql.= natural_search('s.zip', $search_zip);
     if (!empty($search_town))     $sql.= natural_search('s.town', $search_town);
     if ($search_country > 0)      $sql.= ' AND s.fk_pays = '.$search_country.'';
    -$sql.= " AND f.entity = ".$conf->entity;
    +$sql.= " AND f.entity IN (".getEntity('invoice').")";
     if ($socid) $sql.= " AND f.fk_soc = ".$socid;
     $sql.= " GROUP BY s.rowid, s.nom, s.zip, s.town, s.fk_pays";
     $sql.= " ORDER BY s.rowid";
    @@ -312,7 +313,6 @@ if ($result) {
     	        $catotal_ht+=$obj->amount;
     	        $catotal+=$obj->amount_ttc;
     	        $i++;
    -
     	}
     } else {
     	dol_print_error($db);
    @@ -646,6 +646,6 @@ print "</div>";
     
     print '</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/stats/index.php b/htdocs/compta/stats/index.php
    index c255d236664..79ff8ff5df5 100644
    --- a/htdocs/compta/stats/index.php
    +++ b/htdocs/compta/stats/index.php
    @@ -1,8 +1,9 @@
     <?php
    -/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2017	   Olivier Geffroy      <jeff@jeffinfo.com>
    +/* Copyright (C) 2001-2004  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2009  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2017       Olivier Geffroy         <jeff@jeffinfo.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -119,7 +120,7 @@ if ($modecompta=="CREANCES-DETTES")
     	$calcmode=$langs->trans("CalcModeDebt");
     	//$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
     	$calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=BOOKKEEPING">','</a>').')';
    -	$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +	$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     	$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear-2)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
     	$description=$langs->trans("RulesCADue");
     	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.= $langs->trans("DepositsAreNotIncluded");
    @@ -133,7 +134,7 @@ else if ($modecompta=="RECETTES-DEPENSES")
     	$calcmode=$langs->trans("CalcModeEngagement");
     	//$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
     	//$calcmode.='<br>('.$langs->trans("SeeReportInBookkeepingMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=BOOKKEEPINGCOLLECTED">','</a>').')';
    -	$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +	$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     	$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear-2)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
     	$description=$langs->trans("RulesCAIn");
     	$description.= $langs->trans("DepositsAreIncluded");
    @@ -146,7 +147,7 @@ else if ($modecompta=="BOOKKEEPING")
     	$calcmode=$langs->trans("CalcModeBookkeeping");
     	$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
     	//$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
    -	$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +	$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     	$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear-2)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+$nbofyear)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
     	$description=$langs->trans("RulesCATotalSaleJournal");
     	$builddate=dol_now();
    @@ -170,7 +171,7 @@ if ($modecompta == 'CREANCES-DETTES')
     	$sql.= " WHERE f.fk_statut in (1,2)";
     	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
     	else $sql.= " AND f.type IN (0,1,2,3,5)";
    -	$sql.= " AND f.entity = ".$conf->entity;
    +	$sql.= " AND f.entity IN (".getEntity('invoice').")";
     if ($socid) $sql.= " AND f.fk_soc = ".$socid;
     }
     else if ($modecompta=="RECETTES-DEPENSES")
    @@ -185,7 +186,7 @@ else if ($modecompta=="RECETTES-DEPENSES")
     	$sql.= ", ".MAIN_DB_PREFIX."paiement as p";
     	$sql.= " WHERE p.rowid = pf.fk_paiement";
     	$sql.= " AND pf.fk_facture = f.rowid";
    -	$sql.= " AND f.entity = ".$conf->entity;
    +	$sql.= " AND f.entity IN (".getEntity('invoice').")";
     if ($socid) $sql.= " AND f.fk_soc = ".$socid;
     }
     else if ($modecompta=="BOOKKEEPING")
    @@ -540,14 +541,14 @@ print '</div>';
      // Factures non reglees
      // Y a bug ici. Il faut prendre le reste a payer et non le total des factures non reglees !
     
    - $sql = "SELECT f.facnumber, f.rowid, s.nom, s.rowid as socid, f.total_ttc, sum(pf.amount) as am";
    + $sql = "SELECT f.ref, f.rowid, s.nom, s.rowid as socid, f.total_ttc, sum(pf.amount) as am";
      $sql .= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f left join ".MAIN_DB_PREFIX."paiement_facture as pf on f.rowid=pf.fk_facture";
      $sql .= " WHERE s.rowid = f.fk_soc AND f.paye = 0 AND f.fk_statut = 1";
      if ($socid)
      {
      $sql .= " AND f.fk_soc = $socid";
      }
    - $sql .= " GROUP BY f.facnumber,f.rowid,s.nom, s.rowid, f.total_ttc";
    + $sql .= " GROUP BY f.ref,f.rowid,s.nom, s.rowid, f.total_ttc";
     
      $resql=$db->query($sql);
      if ($resql)
    @@ -629,6 +630,6 @@ print '</div>';
     
      */
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/compta/tva/card.php b/htdocs/compta/tva/card.php
    index 4480682b091..d5779266661 100644
    --- a/htdocs/compta/tva/card.php
    +++ b/htdocs/compta/tva/card.php
    @@ -1,8 +1,9 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -255,11 +256,11 @@ if ($action == 'create')
     
         print "<tr>";
         print '<td class="titlefieldcreate fieldrequired">'.$langs->trans("DatePayment").'</td><td>';
    -    print $form->select_date($datep,"datep",'','','','add',1,1);
    +    print $form->selectDate($datep, "datep", '', '', '', 'add', 1, 1);
         print '</td></tr>';
     
         print '<tr><td class="fieldrequired">'.$form->textwithpicto($langs->trans("PeriodEndDate"), $langs->trans("LastDayTaxIsRelatedTo")).'</td><td>';
    -    print $form->select_date($datev,"datev",'','','','add',1,1);
    +    print $form->selectDate($datev, "datev", '', '', '', 'add', 1, 1);
         print '</td></tr>';
     
     	// Label
    @@ -388,12 +389,12 @@ if ($id)
     		}
     		else
     		{
    -			print '<a class="butActionRefused" href="#" title="'.(dol_escape_htmltag($langs->trans("NotAllowed"))).'">'.$langs->trans("Delete").'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.(dol_escape_htmltag($langs->trans("NotAllowed"))).'">'.$langs->trans("Delete").'</a>';
     		}
     	}
     	else
     	{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans("LinkedToAConciliatedTransaction").'">'.$langs->trans("Delete").'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("LinkedToAConciliatedTransaction").'">'.$langs->trans("Delete").'</a>';
     	}
     	print "</div>";
     }
    diff --git a/htdocs/compta/tva/class/tva.class.php b/htdocs/compta/tva/class/tva.class.php
    index af330910cdf..33d48de8bfc 100644
    --- a/htdocs/compta/tva/class/tva.class.php
    +++ b/htdocs/compta/tva/class/tva.class.php
    @@ -1,8 +1,9 @@
     <?php
    -/* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2011-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
    - * Copyright (C) 2018      Philippe Grand       <philippe.grand@atoo-net.com>
    +/* Copyright (C) 2002-2003  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2008  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2011-2017  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2018       Philippe Grand          <philippe.grand@atoo-net.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -33,20 +34,47 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class Tva extends CommonObject
     {
    -	public $element='tva';			//!< Id that identify managed objects
    -	public $table_element='tva';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='tva';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='tva';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto='payment';
     
    -	var $tms;
    -	var $datep;
    -	var $datev;
    -	var $amount;
    -	var $type_payment;
    -	var $num_payment;
    -	var $label;
    -	var $fk_bank;
    -	var $fk_user_creat;
    -	var $fk_user_modif;
    +	public $tms;
    +	public $datep;
    +	public $datev;
    +	public $amount;
    +	public $type_payment;
    +	public $num_payment;
    +
    +	/**
    +     * @var string label
    +     */
    +    public $label;
    +
    +    /**
    +     * @var int ID
    +     */
    +	public $fk_bank;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_modif;
     
         /**
     	 *	Constructor
    @@ -76,9 +104,9 @@ class Tva extends CommonObject
     		$this->amount=trim($this->amount);
     		$this->label=trim($this->label);
     		$this->note=trim($this->note);
    -		$this->fk_bank=trim($this->fk_bank);
    -		$this->fk_user_creat=trim($this->fk_user_creat);
    -		$this->fk_user_modif=trim($this->fk_user_modif);
    +		$this->fk_bank = (int) $this->fk_bank;
    +		$this->fk_user_creat = (int) $this->fk_user_creat;
    +		$this->fk_user_modif = (int) $this->fk_user_modif;
     
     		// Check parameters
     		// Put here code to add control on parameters values
    @@ -155,9 +183,9 @@ class Tva extends CommonObject
     		$this->amount=trim($this->amount);
     		$this->label=trim($this->label);
     		$this->note=trim($this->note);
    -		$this->fk_bank=trim($this->fk_bank);
    -		$this->fk_user_creat=trim($this->fk_user_creat);
    -		$this->fk_user_modif=trim($this->fk_user_modif);
    +		$this->fk_bank = (int) $this->fk_bank;
    +		$this->fk_user_creat = (int) $this->fk_user_creat;
    +		$this->fk_user_modif = (int) $this->fk_user_modif;
     
     		// Check parameters
     		// Put here code to add control on parameters values
    @@ -350,14 +378,16 @@ class Tva extends CommonObject
             return $solde;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Total of the VAT from invoices emitted by the thirdparty.
          *
          *	@param	int		$year		Year
    -     *	@return	double				Amount
    +     *  @return	double				Amount
          */
         function tva_sum_collectee($year = 0)
         {
    +        // phpcs:enable
     
             $sql = "SELECT sum(f.tva) as amount";
             $sql .= " FROM ".MAIN_DB_PREFIX."facture as f WHERE f.paye = 1";
    @@ -389,6 +419,7 @@ class Tva extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	VAT payed
          *
    @@ -397,6 +428,7 @@ class Tva extends CommonObject
          */
         function tva_sum_payee($year = 0)
         {
    +        // phpcs:enable
     
             $sql = "SELECT sum(f.total_tva) as total_tva";
             $sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn as f";
    @@ -429,6 +461,7 @@ class Tva extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Total of the VAT payed
          *
    @@ -437,6 +470,7 @@ class Tva extends CommonObject
          */
         function tva_sum_reglee($year = 0)
         {
    +        // phpcs:enable
     
             $sql = "SELECT sum(f.amount) as amount";
             $sql .= " FROM ".MAIN_DB_PREFIX."tva as f";
    @@ -486,9 +520,9 @@ class Tva extends CommonObject
             $this->amount=price2num(trim($this->amount));
             $this->label=trim($this->label);
     		$this->note=trim($this->note);
    -		$this->fk_bank=trim($this->fk_bank);
    -		$this->fk_user_creat=trim($this->fk_user_creat);
    -		$this->fk_user_modif=trim($this->fk_user_modif);
    +		$this->fk_bank = (int) $this->fk_bank;
    +		$this->fk_user_creat = (int) $this->fk_user_creat;
    +		$this->fk_user_modif = (int) $this->fk_user_modif;
     		if (empty($this->datec)) $this->datec = dol_now();
     
             // Check parameters
    @@ -620,6 +654,7 @@ class Tva extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *  Update link between payment tva and line generate into llx_bank
          *
    @@ -628,8 +663,9 @@ class Tva extends CommonObject
          */
     	function update_fk_bank($id_bank)
     	{
    -		$sql = 'UPDATE '.MAIN_DB_PREFIX.'tva SET fk_bank = '.$id_bank;
    -		$sql.= ' WHERE rowid = '.$this->id;
    +        // phpcs:enable
    +		$sql = 'UPDATE '.MAIN_DB_PREFIX.'tva SET fk_bank = '.(int) $id_bank;
    +		$sql.= ' WHERE rowid = '.(int) $this->id;
     		$result = $this->db->query($sql);
     		if ($result)
     		{
    @@ -734,7 +770,7 @@ class Tva extends CommonObject
     	{
     		$sql = "SELECT t.rowid, t.tms, t.fk_user_modif, t.datec, t.fk_user_creat";
     		$sql.= " FROM ".MAIN_DB_PREFIX."tva as t";
    -		$sql.= " WHERE t.rowid = ".$id;
    +		$sql.= " WHERE t.rowid = ".(int) $id;
     
     		dol_syslog(get_class($this)."::info", LOG_DEBUG);
     		$result=$this->db->query($sql);
    @@ -764,7 +800,6 @@ class Tva extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -783,6 +818,7 @@ class Tva extends CommonObject
     	    return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Renvoi le libelle d'un statut donne
     	 *
    @@ -790,10 +826,11 @@ class Tva extends CommonObject
     	 * @param   int		$mode       0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
     	 * @return	string  		    Libelle du statut
     	 */
    -	function LibStatut($status,$mode=0)
    -	{
    -	    global $langs;	// TODO Renvoyer le libelle anglais et faire traduction a affichage
    +    function LibStatut($status,$mode=0)
    +    {
    +        // phpcs:enable
    +        global $langs;	// TODO Renvoyer le libelle anglais et faire traduction a affichage
     
    -	    return '';
    -	}
    +        return '';
    +    }
     }
    diff --git a/htdocs/compta/tva/clients.php b/htdocs/compta/tva/clients.php
    index ae95d71ca9c..45b93692e3a 100644
    --- a/htdocs/compta/tva/clients.php
    +++ b/htdocs/compta/tva/clients.php
    @@ -3,7 +3,8 @@
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
      * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2006      Yannick Warnier      <ywarnier@beeznest.org>
    - * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
    + * Copyright (C) 2014       Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -136,18 +137,22 @@ if ($modetax == 1) $calcmode=$langs->trans('OptionVATDebitOption');
     if ($modetax == 2) $calcmode=$langs->trans('OptionPaymentForProductAndServices');
     $calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
     // Set period
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    -$prevyear=$year_start; $prevquarter=$q;
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
    +$prevyear=$year_start;
    +$prevquarter=$q;
     if ($prevquarter > 1) {
     	$prevquarter--;
     } else {
    -	$prevquarter=4; $prevyear--;
    +    $prevquarter=4;
    +    $prevyear--;
     }
    -$nextyear=$year_start; $nextquarter=$q;
    +$nextyear=$year_start;
    +$nextquarter=$q;
     if ($nextquarter < 4) {
     	$nextquarter++;
     } else {
    -	$nextquarter=1; $nextyear++;
    +    $nextquarter=1;
    +    $nextyear++;
     }
     $builddate=dol_now();
     
    @@ -342,12 +347,12 @@ if (! is_array($x_coll) || ! is_array($x_paye))
     
     	// Customers invoices
     	print '<tr class="liste_titre">';
    -	print '<td align="left">'.$elementcust.'</td>';
    -	print '<td align="left">'.$langs->trans("DateInvoice").'</td>';
    -	if ($conf->global->TAX_MODE_SELL_PRODUCT == 'payment' || $conf->global->TAX_MODE_SELL_SERVICE == 'payment') print '<td align="left">'.$langs->trans("DatePayment").'</td>';
    +	print '<td class="left">'.$elementcust.'</td>';
    +	print '<td class="left">'.$langs->trans("DateInvoice").'</td>';
    +	if ($conf->global->TAX_MODE_SELL_PRODUCT == 'payment' || $conf->global->TAX_MODE_SELL_SERVICE == 'payment') print '<td class="left">'.$langs->trans("DatePayment").'</td>';
     	else print '<td></td>';
     	print '<td align="right">'.$namerate.'</td>';
    -	print '<td align="left">'.$productcust.'</td>';
    +	print '<td class="left">'.$productcust.'</td>';
     	if ($modetax != 1)
     	{
     		print '<td align="right">'.$amountcust.'</td>';
    @@ -412,17 +417,17 @@ if (! is_array($x_coll) || ! is_array($x_paye))
     				print '<td class="nowrap" align="left">'.$fields['link'].'</td>';
     
     				// Invoice date
    -				print '<td align="left">' . dol_print_date($fields['datef'], 'day') . '</td>';
    +				print '<td class="left">' . dol_print_date($fields['datef'], 'day') . '</td>';
     
     				// Payment date
    -				if ($conf->global->TAX_MODE_SELL_PRODUCT == 'payment' || $conf->global->TAX_MODE_SELL_SERVICE == 'payment') print '<td align="left">' . dol_print_date($fields['datep'], 'day') . '</td>';
    +				if ($conf->global->TAX_MODE_SELL_PRODUCT == 'payment' || $conf->global->TAX_MODE_SELL_SERVICE == 'payment') print '<td class="left">' . dol_print_date($fields['datep'], 'day') . '</td>';
     				else print '<td></td>';
     
     				// Rate
     				print '<td align="right">' . $fields['drate'] . '</td>';
     
     				// Description
    -				print '<td align="left">';
    +				print '<td class="left">';
     				if ($fields['pid'])
     				{
     					$product_static->id=$fields['pid'];
    @@ -548,12 +553,12 @@ if (! is_array($x_coll) || ! is_array($x_paye))
     
     	// Print table headers for this quadri - expenses now
     	print '<tr class="liste_titre liste_titre_topborder">';
    -	print '<td align="left">'.$elementsup.'</td>';
    -	print '<td align="left">'.$langs->trans("DateInvoice").'</td>';
    -	if ($conf->global->TAX_MODE_BUY_PRODUCT == 'payment' || $conf->global->TAX_MODE_BUY_SERVICE == 'payment') print '<td align="left">'.$langs->trans("DatePayment").'</td>';
    +	print '<td class="left">'.$elementsup.'</td>';
    +	print '<td class="left">'.$langs->trans("DateInvoice").'</td>';
    +	if ($conf->global->TAX_MODE_BUY_PRODUCT == 'payment' || $conf->global->TAX_MODE_BUY_SERVICE == 'payment') print '<td class="left">'.$langs->trans("DatePayment").'</td>';
     	else print '<td></td>';
    -	print '<td align="left">'.$namesup.'</td>';
    -	print '<td align="left">'.$productsup.'</td>';
    +	print '<td class="left">'.$namesup.'</td>';
    +	print '<td class="left">'.$productsup.'</td>';
     	if ($modetax != 1) {
     		print '<td align="right">'.$amountsup.'</td>';
     		print '<td align="right">'.$langs->trans("Payment").' ('.$langs->trans("PercentOfInvoice").')</td>';
    @@ -605,17 +610,17 @@ if (! is_array($x_coll) || ! is_array($x_paye))
     				print '<td class="nowrap" align="left">'.$fields['link'].'</td>';
     
     				// Invoice date
    -				print '<td align="left">' . dol_print_date($fields['datef'], 'day') . '</td>';
    +				print '<td class="left">' . dol_print_date($fields['datef'], 'day') . '</td>';
     
     				// Payment date
    -				if ($conf->global->TAX_MODE_BUY_PRODUCT == 'payment' || $conf->global->TAX_MODE_BUY_SERVICE == 'payment') print '<td align="left">' . dol_print_date($fields['datep'], 'day') . '</td>';
    +				if ($conf->global->TAX_MODE_BUY_PRODUCT == 'payment' || $conf->global->TAX_MODE_BUY_SERVICE == 'payment') print '<td class="left">' . dol_print_date($fields['datep'], 'day') . '</td>';
     				else print '<td></td>';
     
     				// Company name
    -				print '<td align="left">' . $fields['company_link'] . '</td>';
    +				print '<td class="left">' . $fields['company_link'] . '</td>';
     
     				// Description
    -				print '<td align="left">';
    +				print '<td class="left">';
     				if ($fields['pid'])
     				{
     					$product_static->id=$fields['pid'];
    diff --git a/htdocs/compta/tva/document.php b/htdocs/compta/tva/document.php
    index b83cad80bdd..1228fcb5125 100644
    --- a/htdocs/compta/tva/document.php
    +++ b/htdocs/compta/tva/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
      * Copyright (C) 2011      Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    @@ -122,7 +122,7 @@ if ($object->id)
     	print '<div class="fichecenter">';
     	print '<div class="underbanner clearboth"></div>';
     
    -    // Construit liste des fichiers
    +    // Build file list
         $filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
         $totalsize=0;
         foreach($filearray as $key => $file)
    diff --git a/htdocs/compta/tva/index.php b/htdocs/compta/tva/index.php
    index 5c346ca9ced..514f2030065 100644
    --- a/htdocs/compta/tva/index.php
    +++ b/htdocs/compta/tva/index.php
    @@ -2,8 +2,9 @@
     /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
      * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014      Ferran Marcet        <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -217,7 +218,7 @@ if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
     }
     if (! empty($conf->global->MAIN_MODULE_ACCOUNTING)) $description.='<br>'.$langs->trans("ThisIsAnEstimatedValue");
     
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     
     $builddate=dol_now();
     
    diff --git a/htdocs/compta/tva/list.php b/htdocs/compta/tva/list.php
    index d835b0264e1..f0bb433c65c 100644
    --- a/htdocs/compta/tva/list.php
    +++ b/htdocs/compta/tva/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2017 Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -166,7 +166,7 @@ if ($result)
     	print_barre_liste($langs->trans("VATPayments"),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$totalnboflines, 'title_accountancy', 0, $newcardbutton, '', $limit);
     
     	print '<div class="div-table-responsive">';
    -	print '<table class="noborder" width="100%">';
    +	print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
     
     	print '<tr class="liste_titre_filter">';
     	print '<td class="liste_titre"><input type="text" class="flat" size="4" name="search_ref" value="'.dol_escape_htmltag($search_ref).'"></td>';
    diff --git a/htdocs/compta/tva/quadri_detail.php b/htdocs/compta/tva/quadri_detail.php
    index e2c7cc5d793..a8e22815ea4 100644
    --- a/htdocs/compta/tva/quadri_detail.php
    +++ b/htdocs/compta/tva/quadri_detail.php
    @@ -1,9 +1,10 @@
     <?php
    -/* Copyright (C) 2001-2003        Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004             Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2004-2013        Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2007, 2015  Yannick Warnier      <ywarnier@beeznest.org>
    - * Copyright (C) 2014	          Ferran Marcet        <fmarcet@2byte.es>
    +/* Copyright (C) 2001-2003  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004       Eric Seigne             <eric.seigne@ryxeo.com>
    + * Copyright (C) 2004-2013  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2006-2015  Yannick Warnier         <ywarnier@beeznest.org>
    + * Copyright (C) 2014       Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -135,18 +136,21 @@ if ($modetax == 1) $calcmode=$langs->trans('OptionVATDebitOption');
     if ($modetax == 2) $calcmode=$langs->trans('OptionPaymentForProductAndServices');
     $calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
     // Set period
    -$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
    +$period=$form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0).' - '.$form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     $prevyear=$year_start; $prevquarter=$q;
     if ($prevquarter > 1) {
     	$prevquarter--;
     } else {
    -	$prevquarter=4; $prevyear--;
    +    $prevquarter=4;
    +    $prevyear--;
     }
    -$nextyear=$year_start; $nextquarter=$q;
    +$nextyear=$year_start;
    +$nextquarter=$q;
     if ($nextquarter < 4) {
     	$nextquarter++;
     } else {
    -	$nextquarter=1; $nextyear++;
    +    $nextquarter=1;
    +    $nextyear++;
     }
     $description.=$fsearch;
     $builddate=dol_now();
    @@ -332,12 +336,12 @@ if (! is_array($x_coll) || ! is_array($x_paye))
     
     	// Customers invoices
     	print '<tr class="liste_titre">';
    -	print '<td align="left">'.$elementcust.'</td>';
    -	print '<td align="left">'.$langs->trans("DateInvoice").'</td>';
    -	if ($conf->global->TAX_MODE_SELL_PRODUCT == 'payment' || $conf->global->TAX_MODE_SELL_SERVICE == 'payment') print '<td align="left">'.$langs->trans("DatePayment").'</td>';
    +	print '<td class="left">'.$elementcust.'</td>';
    +	print '<td class="left">'.$langs->trans("DateInvoice").'</td>';
    +	if ($conf->global->TAX_MODE_SELL_PRODUCT == 'payment' || $conf->global->TAX_MODE_SELL_SERVICE == 'payment') print '<td class="left">'.$langs->trans("DatePayment").'</td>';
     	else print '<td></td>';
    -	print '<td align="left">'.$namecust.'</td>';
    -	print '<td align="left">'.$productcust.'</td>';
    +	print '<td class="left">'.$namecust.'</td>';
    +	print '<td class="left">'.$productcust.'</td>';
     	if ($modetax != 1)
     	{
     		print '<td align="right">'.$amountcust.'</td>';
    @@ -389,17 +393,17 @@ if (! is_array($x_coll) || ! is_array($x_paye))
     				print '<td class="nowrap" align="left">'.$fields['link'].'</td>';
     
     				// Invoice date
    -				print '<td align="left">' . dol_print_date($fields['datef'], 'day') . '</td>';
    +				print '<td class="left">' . dol_print_date($fields['datef'], 'day') . '</td>';
     
     				// Payment date
    -				if ($conf->global->TAX_MODE_SELL_PRODUCT == 'payment' || $conf->global->TAX_MODE_SELL_SERVICE == 'payment') print '<td align="left">' . dol_print_date($fields['datep'], 'day') . '</td>';
    +				if ($conf->global->TAX_MODE_SELL_PRODUCT == 'payment' || $conf->global->TAX_MODE_SELL_SERVICE == 'payment') print '<td class="left">' . dol_print_date($fields['datep'], 'day') . '</td>';
     				else print '<td></td>';
     
     				// Company name
    -				print '<td align="left">' . $fields['company_link'] . '</td>';
    +				print '<td class="left">' . $fields['company_link'] . '</td>';
     
     				// Description
    -				print '<td align="left">';
    +				print '<td class="left">';
     				if ($fields['pid'])
     				{
     					$product_static->id=$fields['pid'];
    @@ -525,12 +529,12 @@ if (! is_array($x_coll) || ! is_array($x_paye))
     
     	// Print table headers for this quadri - expenses now
     	print '<tr class="liste_titre liste_titre_topborder">';
    -	print '<td align="left">'.$elementsup.'</td>';
    -	print '<td align="left">'.$langs->trans("DateInvoice").'</td>';
    -	if ($conf->global->TAX_MODE_BUY_PRODUCT == 'payment' || $conf->global->TAX_MODE_BUY_SERVICE == 'payment') print '<td align="left">'.$langs->trans("DatePayment").'</td>';
    +	print '<td class="left">'.$elementsup.'</td>';
    +	print '<td class="left">'.$langs->trans("DateInvoice").'</td>';
    +	if ($conf->global->TAX_MODE_BUY_PRODUCT == 'payment' || $conf->global->TAX_MODE_BUY_SERVICE == 'payment') print '<td class="left">'.$langs->trans("DatePayment").'</td>';
     	else print '<td></td>';
    -	print '<td align="left">'.$namesup.'</td>';
    -	print '<td align="left">'.$productsup.'</td>';
    +	print '<td class="left">'.$namesup.'</td>';
    +	print '<td class="left">'.$productsup.'</td>';
     	if ($modetax != 1) {
     		print '<td align="right">'.$amountsup.'</td>';
     		print '<td align="right">'.$langs->trans("Payment").' ('.$langs->trans("PercentOfInvoice").')</td>';
    @@ -570,17 +574,17 @@ if (! is_array($x_coll) || ! is_array($x_paye))
     				print '<td class="nowrap" align="left">'.$fields['link'].'</td>';
     
     				// Invoice date
    -				print '<td align="left">' . dol_print_date($fields['datef'], 'day') . '</td>';
    +				print '<td class="left">' . dol_print_date($fields['datef'], 'day') . '</td>';
     
     				// Payment date
    -				if ($conf->global->TAX_MODE_BUY_PRODUCT == 'payment' || $conf->global->TAX_MODE_BUY_SERVICE == 'payment') print '<td align="left">' . dol_print_date($fields['datep'], 'day') . '</td>';
    +				if ($conf->global->TAX_MODE_BUY_PRODUCT == 'payment' || $conf->global->TAX_MODE_BUY_SERVICE == 'payment') print '<td class="left">' . dol_print_date($fields['datep'], 'day') . '</td>';
     				else print '<td></td>';
     
     				// Company name
    -				print '<td align="left">' . $fields['company_link'] . '</td>';
    +				print '<td class="left">' . $fields['company_link'] . '</td>';
     
     				// Description
    -				print '<td align="left">';
    +				print '<td class="left">';
     				if ($fields['pid'])
     				{
     					$product_static->id=$fields['pid'];
    diff --git a/htdocs/conf/conf.php.example b/htdocs/conf/conf.php.example
    index 7475cf54ddb..886a6171818 100644
    --- a/htdocs/conf/conf.php.example
    +++ b/htdocs/conf/conf.php.example
    @@ -14,7 +14,7 @@
     // dolibarr_main_url_root
     // This parameter defines the root URL of your Dolibarr index.php page without ending "/".
     // It must link to the directory htdocs.
    -// In most cases, this is autodetected but it's still required 
    +// In most cases, this is autodetected but it's still required
     // * to show full url bookmarks for some services (ie: agenda rss export url, ...)
     // * or when using Apache dir aliases (autodetect fails)
     // * or when using nginx (autodetect fails)
    @@ -40,7 +40,7 @@ $dolibarr_main_document_root='';
     // dolibarr_main_url_root_alt
     // This parameter defines the relative sub URLs to add to $dolibarr_main_url_root to
     // forge alternative root directories (used by modules developers).
    -// You can put several values, separated by a coma, but number of entries must match 
    +// You can put several values, separated by a coma, but number of entries must match
     // number of entries into $dolibarr_main_document_root_alt.
     // Examples:
     // $dolibarr_main_url_root_alt='/custom';
    @@ -52,7 +52,7 @@ $dolibarr_main_document_root='';
     // dolibarr_main_document_root_alt
     // This parameter contains absolute alternative root file system directories (used by
     // modules developers).
    -// You can put several values, separated by a coma, but number of entries must match 
    +// You can put several values, separated by a coma, but number of entries must match
     // number of entries into $dolibarr_main_url_root_alt.
     // Examples:
     // $dolibarr_main_document_root_alt='/var/www/dolibarr/htdocs/custom';
    @@ -162,7 +162,7 @@ $dolibarr_main_db_collation='utf8_unicode_ci';
     // Default value: dolibarr
     // Possible values: Any values found in files in htdocs/core/login directory after
     // the "function_" string and before the ".php" string. You can also separate several
    -// values using a ",". In this case, Dolibarr will check login/pass for each value in 
    +// values using a ",". In this case, Dolibarr will check login/pass for each value in
     // order defined into value. However, note that this can't work with all values.
     // Examples:
     // $dolibarr_main_authentication='http';
    @@ -207,10 +207,10 @@ $dolibarr_main_authentication='dolibarr';
     // 0 = No forced redirect
     // 1 = Force redirect to https, until SCRIPT_URI start with https into response
     // 2 = Force redirect to https, until SERVER["HTTPS"] is 'on' into response
    -// 'https://my.domain.com' = Force reditect to https using this domain name. 
    +// 'https://my.domain.com' = Force reditect to https using this domain name.
     // Warning: If you enable this parameter, your web server must be configured to
    -// respond URL with https protocol. 
    -// According to your web server setup, some values may works and other not. Try 
    +// respond URL with https protocol.
    +// According to your web server setup, some values may works and other not. Try
     // different values (1,2 or 'https://my.domain.com') if you experience problems.
     // Default value: 0
     // Possible values: 0, 1, 2 or 'https://my.domain.com'
    diff --git a/htdocs/contact/agenda.php b/htdocs/contact/agenda.php
    index 183433b02f9..fbd3e46b9a7 100644
    --- a/htdocs/contact/agenda.php
    +++ b/htdocs/contact/agenda.php
    @@ -1,8 +1,8 @@
     <?php
     /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
      * Copyright (C) 2013      Florian Henry		<florian.henry@open-concept.pro>
      * Copyright (C) 2013-2016 Alexandre Spangaro 	<aspangaro.dolibarr@gmail.com>
    @@ -132,16 +132,13 @@ if (empty($reshook))
      *	View
      */
     
    +$form = new Form($db);
     
     $title = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses"));
     if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/contactnameonly/',$conf->global->MAIN_HTML_TITLE) && $object->lastname) $title=$object->lastname;
     $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
     llxHeader('', $title, $help_url);
     
    -$form = new Form($db);
    -$formcompany = new FormCompany($db);
    -
    -$countrynotdefined=$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')';
     
     if ($socid > 0)
     {
    @@ -259,20 +256,16 @@ else
         	//print '<div class="tabsAction">';
             //print '</div>';
     
    -
    -    	$morehtmlcenter='';
    -        if (! empty($conf->agenda->enabled))
    -        {
    -        	if (! empty($user->rights->agenda->myactions->create) || ! empty($user->rights->agenda->allactions->create))
    -        	{
    -            	$morehtmlcenter.= '<a class="butAction" href="'.DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out.'">'.$langs->trans("AddAction").'</a>';
    -        	}
    -        	else
    -        	{
    -            	$morehtmlcenter.= '<a class="butActionRefused" href="#">'.$langs->trans("AddAction").'</a>';
    -        	}
    -        }
    -
    +    	$newcardbutton='';
    +    	if (! empty($conf->agenda->enabled))
    +    	{
    +    		if (! empty($user->rights->agenda->myactions->create) || ! empty($user->rights->agenda->allactions->create))
    +    		{
    +    			$newcardbutton.='<a class="butActionNew" href="'.DOL_URL_ROOT.'/comm/action/card.php?action=create'.$out.'"><span class="valignmiddle">'.$langs->trans("AddAction").'</span>';
    +    			$newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    +    			$newcardbutton.= '</a>';
    +    		}
    +    	}
     
             if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) ))
            	{
    @@ -282,7 +275,8 @@ else
                 if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
                 if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
     
    -            print_barre_liste($langs->trans("ActionsOnCompany"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $morehtmlcenter, 0, -1, '', '', '', '', 0, 1, 1);
    +            print load_fiche_titre($langs->trans("ActionsOnContact"), $newcardbutton, '');
    +            //print_barre_liste($langs->trans("ActionsOnCompany"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $morehtmlcenter, 0, -1, '', '', '', '', 0, 1, 1);
     
                 // List of all actions
         		$filters=array();
    diff --git a/htdocs/contact/canvas/actions_contactcard_common.class.php b/htdocs/contact/canvas/actions_contactcard_common.class.php
    index ba96c865d1a..bac7c9059a9 100644
    --- a/htdocs/contact/canvas/actions_contactcard_common.class.php
    +++ b/htdocs/contact/canvas/actions_contactcard_common.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -27,7 +27,11 @@
      */
     abstract class ActionsContactCardCommon
     {
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
         var $dirmodule;
         var $targetmodule;
         var $canvas;
    @@ -37,10 +41,17 @@ abstract class ActionsContactCardCommon
     	var $tpl = array();
     	//! Object container
     	var $object;
    -	//! Error string
    -	var $error;
    -	//! Error array
    -	var $errors=array();
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
     
     
     	/**
    @@ -65,7 +76,8 @@ abstract class ActionsContactCardCommon
         	//}
         }
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *  Set content of ->tpl array, to use into template
          *
          *  @param	string		$action    Type of action
    @@ -74,6 +86,7 @@ abstract class ActionsContactCardCommon
          */
         function assign_values(&$action, $id)
         {
    +        // phpcs:enable
             global $conf, $langs, $user, $canvas;
             global $form, $formcompany, $objsoc;
     
    @@ -254,6 +267,7 @@ abstract class ActionsContactCardCommon
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
         /**
          *  Assign POST values into object
          *
    @@ -261,31 +275,32 @@ abstract class ActionsContactCardCommon
          */
         private function assign_post()
         {
    +        // phpcs:enable
             global $langs, $mysoc;
     
    -        $this->object->old_name 			= 	$_POST["old_name"];
    -        $this->object->old_firstname 		= 	$_POST["old_firstname"];
    +        $this->object->old_name 		= $_POST["old_name"];
    +        $this->object->old_firstname 	= $_POST["old_firstname"];
     
    -        $this->object->socid				=	$_POST["socid"];
    -        $this->object->lastname				=	$_POST["name"];
    -        $this->object->firstname			= 	$_POST["firstname"];
    -        $this->object->civility_id			= 	$_POST["civility_id"];
    -        $this->object->poste				= 	$_POST["poste"];
    -        $this->object->address				=	$_POST["address"];
    -        $this->object->zip					=	$_POST["zipcode"];
    -        $this->object->town					=	$_POST["town"];
    -        $this->object->fk_departement		=	$_POST["state_id"];
    -        $this->object->country_id			=	$_POST["country_id"]?$_POST["country_id"]:$mysoc->country_id;
    -        $this->object->state_id        		=	$_POST["state_id"];
    -        $this->object->phone_pro			= 	$_POST["phone_pro"];
    -        $this->object->phone_perso			= 	$_POST["phone_perso"];
    -        $this->object->phone_mobile			= 	$_POST["phone_mobile"];
    -        $this->object->fax					=	$_POST["fax"];
    -        $this->object->email				=	$_POST["email"];
    -        $this->object->jabberid				= 	$_POST["jabberid"];
    -        $this->object->priv					= 	$_POST["priv"];
    -        $this->object->note					=	$_POST["note"];
    -        $this->object->canvas				=	$_POST["canvas"];
    +        $this->object->socid			= $_POST["socid"];
    +        $this->object->lastname			= $_POST["name"];
    +        $this->object->firstname		= $_POST["firstname"];
    +        $this->object->civility_id		= $_POST["civility_id"];
    +        $this->object->poste			= $_POST["poste"];
    +        $this->object->address			= $_POST["address"];
    +        $this->object->zip				= $_POST["zipcode"];
    +        $this->object->town				= $_POST["town"];
    +        $this->object->fk_departement	= $_POST["state_id"];
    +        $this->object->country_id		= $_POST["country_id"]?$_POST["country_id"]:$mysoc->country_id;
    +        $this->object->state_id        	= $_POST["state_id"];
    +        $this->object->phone_pro		= $_POST["phone_pro"];
    +        $this->object->phone_perso		= $_POST["phone_perso"];
    +        $this->object->phone_mobile		= $_POST["phone_mobile"];
    +        $this->object->fax				= $_POST["fax"];
    +        $this->object->email			= $_POST["email"];
    +        $this->object->jabberid			= $_POST["jabberid"];
    +        $this->object->priv				= $_POST["priv"];
    +        $this->object->note				= $_POST["note"];
    +        $this->object->canvas			= $_POST["canvas"];
     
             // We set country_id, and country_code label of the chosen country
             if ($this->object->country_id)
    @@ -305,6 +320,4 @@ abstract class ActionsContactCardCommon
                 $this->object->country		=	$langs->trans("Country".$obj->code)?$langs->trans("Country".$obj->code):$obj->label;
             }
         }
    -
     }
    -
    diff --git a/htdocs/contact/canvas/default/actions_contactcard_default.class.php b/htdocs/contact/canvas/default/actions_contactcard_default.class.php
    index bfcb5a21142..1847e19a0ed 100644
    --- a/htdocs/contact/canvas/default/actions_contactcard_default.class.php
    +++ b/htdocs/contact/canvas/default/actions_contactcard_default.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Laurent Destailleur	<eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -29,8 +29,8 @@ include_once DOL_DOCUMENT_ROOT.'/contact/canvas/actions_contactcard_common.class
      */
     class ActionsContactCardDefault extends ActionsContactCardCommon
     {
    -	/**
    -     *	Constructor
    +    /**
    +     *  Constructor
          *
          *	@param	DoliDB	$db				Handler acces base de donnees
          *	@param	string	$dirmodule		Name of directory of module
    @@ -66,6 +66,7 @@ class ActionsContactCardDefault extends ActionsContactCardCommon
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Assign custom values for canvas
     	 *
    @@ -75,6 +76,7 @@ class ActionsContactCardDefault extends ActionsContactCardCommon
     	 */
     	function assign_values(&$action, $id)
     	{
    +        // phpcs:enable
     		global $limit, $offset, $sortfield, $sortorder;
     		global $conf, $db, $langs, $user;
     		global $form;
    @@ -116,10 +118,10 @@ class ActionsContactCardDefault extends ActionsContactCardCommon
     		{
     	        $this->LoadListDatas($limit, $offset, $sortfield, $sortorder);
     		}
    -
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Fetch datas list and save into ->list_datas
     	 *
    @@ -131,6 +133,7 @@ class ActionsContactCardDefault extends ActionsContactCardCommon
     	 */
     	function LoadListDatas($limit, $offset, $sortfield, $sortorder)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
             //$this->getFieldList();
    @@ -138,4 +141,3 @@ class ActionsContactCardDefault extends ActionsContactCardCommon
             $this->list_datas = array();
     	}
     }
    -
    diff --git a/htdocs/contact/canvas/default/tpl/contactcard_create.tpl.php b/htdocs/contact/canvas/default/tpl/contactcard_create.tpl.php
    index 1561f046845..9f2bdd4b114 100644
    --- a/htdocs/contact/canvas/default/tpl/contactcard_create.tpl.php
    +++ b/htdocs/contact/canvas/default/tpl/contactcard_create.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/contact/canvas/default/tpl/contactcard_edit.tpl.php b/htdocs/contact/canvas/default/tpl/contactcard_edit.tpl.php
    index 1eaccff5a1f..bc3b30c29ad 100644
    --- a/htdocs/contact/canvas/default/tpl/contactcard_edit.tpl.php
    +++ b/htdocs/contact/canvas/default/tpl/contactcard_edit.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    @@ -125,11 +125,6 @@ echo $this->control->tpl['ajax_selectcountry'];
     	<?php } ?>
     </tr>
     
    -<tr>
    -	<td><?php echo $langs->trans("IM"); ?></td>
    -	<td colspan="3"><input name="jabberid" type="text" size="50" maxlength="80" value="<?php echo $this->control->tpl['jabberid']; ?>"></td>
    -</tr>
    -
     <tr>
     	<td><?php echo $langs->trans("ContactVisibility"); ?></td>
     	<td colspan="3"><?php echo $this->control->tpl['select_visibility']; ?></td>
    diff --git a/htdocs/contact/canvas/default/tpl/contactcard_view.tpl.php b/htdocs/contact/canvas/default/tpl/contactcard_view.tpl.php
    index 6041e7c3e2c..bb9bc1d06b5 100644
    --- a/htdocs/contact/canvas/default/tpl/contactcard_view.tpl.php
    +++ b/htdocs/contact/canvas/default/tpl/contactcard_view.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    @@ -110,11 +110,6 @@ dol_htmloutput_errors($this->control->tpl['error'],$this->control->tpl['errors']
     	<?php } ?>
     </tr>
     
    -<tr>
    -	<td><?php echo $langs->trans("IM"); ?></td>
    -	<td colspan="3"><?php echo $this->control->tpl['jabberid']; ?></td>
    -</tr>
    -
     <tr>
     	<td><?php echo $langs->trans("ContactVisibility"); ?></td>
     	<td colspan="3"><?php echo $this->control->tpl['visibility']; ?></td>
    diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php
    index 52957d25343..9371f1e3200 100644
    --- a/htdocs/contact/card.php
    +++ b/htdocs/contact/card.php
    @@ -1,13 +1,15 @@
     <?php
    -/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2017 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
    - * Copyright (C) 2013      Florian Henry		<florian.henry@open-concept.pro>
    - * Copyright (C) 2013-2016 Alexandre Spangaro 	<aspangaro.dolibarr@gmail.com>
    - * Copyright (C) 2014      Juanjo Menent	 	<jmenent@2byte.es>
    - * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
    +/* Copyright (C) 2004-2005  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
    + * Copyright (C) 2005-2017  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2007       Franky Van Liedekerke   <franky.van.liedekerke@telenet.be>
    + * Copyright (C) 2013       Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2013-2016  Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2014       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2015       Jean-François Ferry     <jfefe@aternatik.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + * Copyright (C) 2019       Josep Lluís Amador      <joseplluis@lliuretic.cat>
      *
      * 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
    @@ -39,9 +41,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    -require_once DOL_DOCUMENT_ROOT. '/core/class/html.form.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
     require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
    -require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array('companies', 'users', 'other', 'commercial'));
    @@ -185,13 +187,14 @@ if (empty($reshook))
             $object->country_id		= GETPOST("country_id",'int');
             $object->state_id		= GETPOST("state_id",'int');
             $object->skype			= GETPOST("skype",'alpha');
    +        $object->twitter		= GETPOST("twitter",'alpha');
    +        $object->facebook		= GETPOST("facebook",'alpha');
             $object->email			= GETPOST("email",'alpha');
             $object->phone_pro		= GETPOST("phone_pro",'alpha');
             $object->phone_perso	= GETPOST("phone_perso",'alpha');
             $object->phone_mobile	= GETPOST("phone_mobile",'alpha');
             $object->fax			= GETPOST("fax",'alpha');
             $object->jabberid		= GETPOST("jabberid",'alpha');
    -		$object->no_email		= GETPOST("no_email",'int');
             $object->priv			= GETPOST("priv",'int');
             $object->note_public	= GETPOST("note_public",'none');
             $object->note_private	= GETPOST("note_private",'none');
    @@ -224,7 +227,7 @@ if (empty($reshook))
                     $action = 'create';
     			} else {
     				// Categories association
    -				$contcats = GETPOST( 'contcats', 'array');
    +				$contcats = GETPOST('contcats', 'array');
     				$object->setCategories($contcats);
     			}
             }
    @@ -357,12 +360,13 @@ if (empty($reshook))
     
                 $object->email			= GETPOST("email",'alpha');
                 $object->skype			= GETPOST("skype",'alpha');
    +            $object->twitter		= GETPOST("twitter",'alpha');
    +            $object->facebook		= GETPOST("facebook",'alpha');
                 $object->phone_pro		= GETPOST("phone_pro",'alpha');
                 $object->phone_perso	= GETPOST("phone_perso",'alpha');
                 $object->phone_mobile	= GETPOST("phone_mobile",'alpha');
                 $object->fax			= GETPOST("fax",'alpha');
                 $object->jabberid		= GETPOST("jabberid",'alpha');
    -			$object->no_email		= GETPOST("no_email",'int');
                 $object->priv			= GETPOST("priv",'int');
                 $object->note_public	= GETPOST("note_public",'none');
            		$object->note_private	= GETPOST("note_private",'none');
    @@ -371,28 +375,22 @@ if (empty($reshook))
     			$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
     			if ($ret < 0) $error++;
     
    -            $result = $object->update($contactid, $user);
    +			$result = $object->update($contactid, $user);
     
     			if ($result > 0) {
     				// Categories association
    -				// First we delete all categories association
    -				$sql = 'DELETE FROM ' . MAIN_DB_PREFIX . 'categorie_contact';
    -				$sql .= ' WHERE fk_socpeople = ' . $object->id;
    -				$db->query( $sql );
    -
    -				// Then we add the associated categories
    -				$categories = GETPOST( 'contcats', 'array');
    +				$categories = GETPOST('contcats', 'array');
     				$object->setCategories($categories);
     
    -                $object->old_lastname='';
    -                $object->old_firstname='';
    -                $action = 'view';
    -            }
    -            else
    -            {
    -                setEventMessages($object->error, $object->errors, 'errors');
    -                $action = 'edit';
    -            }
    +				$object->old_lastname='';
    +				$object->old_firstname='';
    +				$action = 'view';
    +			}
    +			else
    +			{
    +				setEventMessages($object->error, $object->errors, 'errors');
    +				$action = 'edit';
    +			}
             }
     
             if (! $error && empty($errors))
    @@ -404,6 +402,12 @@ if (empty($reshook))
            		}
             }
         }
    +
    +    // Actions to send emails
    +	$trigger_name='CONTACT_SENTBYMAIL';
    +	$paramname='id';
    +	$mode='emailfromcontact';
    +	include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
     }
     
     
    @@ -646,8 +650,21 @@ else
     	        print '<td><input name="email" id="email" type="text" class="maxwidth100onsmartphone" value="'.dol_escape_htmltag(GETPOST("email",'alpha')?GETPOST("email",'alpha'):$object->email).'"></td>';
                 if (! empty($conf->mailing->enabled))
                 {
    +            	$noemail = '';
    +            	if (empty($noemail) && ! empty($object->email))
    +            	{
    +            		$sql="SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE entity IN (".getEntity('mailing').") AND email = '".$db->escape($object->email)."'";
    +            		//print $sql;
    +            		$resql=$db->query($sql);
    +            		if ($resql)
    +            		{
    +            			$obj=$db->fetch_object($resql);
    +            			$noemail = $obj->nb;
    +            		}
    +            	}
    +
                 	print '<td><label for="no_email">'.$langs->trans("No_Email").'</label></td>';
    -	            print '<td>'.$form->selectyesno('no_email',(GETPOST("no_email",'alpha')?GETPOST("no_email",'alpha'):$object->no_email), 1).'</td>';
    +	            print '<td>'.$form->selectyesno('no_email',(GETPOSTISSET("no_email")?GETPOST("no_email",'alpha'):$noemail), 1).'</td>';
                 }
                 else
     			      {
    @@ -655,15 +672,32 @@ else
                 }
                 print '</tr>';
     
    -            // Instant message and no email
    -            print '<tr><td><label for="jabberid">'.$langs->trans("IM").'</label></td>';
    -            print '<td colspan="3"><input name="jabberid" id="jabberid" type="text" class="minwidth100" maxlength="80" value="'.dol_escape_htmltag(GETPOST("jabberid",'alpha')?GETPOST("jabberid",'alpha'):$object->jabberid).'"></td></tr>';
    -
    -            // Skype
    -            if (! empty($conf->skype->enabled))
    +            if (! empty($conf->socialnetworks->enabled))
                 {
    -                print '<tr><td><label for="skype">'.$langs->trans("Skype").'</label></td>';
    -                print '<td colspan="3"><input name="skype" id="skype" type="text" class="minwidth100" maxlength="80" value="'.dol_escape_htmltag(GETPOST("skype",'alpha')?GETPOST("skype",'alpha'):$object->skype).'"></td></tr>';
    +            	// Jabber
    +            	if (! empty($conf->global->SOCIALNETWORKS_JABBER))
    +            	{
    +            		print '<tr><td><label for="skype">'.$form->editfieldkey('Jabber','jabberid', '', $object, 0).'</label></td>';
    +            		print '<td colspan="3"><input type="text" name="jabberid" id="jabberid" class="minwidth100" maxlength="80" value="'.dol_escape_htmltag(GETPOSTISSET("jabberid")?GETPOST("jabberid",'alpha'):$object->jabberid).'"></td></tr>';
    +            	}
    +            	// Skype
    +            	if (! empty($conf->global->SOCIALNETWORKS_SKYPE))
    +            	{
    +            		print '<tr><td><label for="skype">'.$form->editfieldkey('Skype', 'skype', '', $object, 0).'</label></td>';
    +            		print '<td colspan="3"><input type="text" name="skype" id="skype" class="minwidth100" maxlength="80" value="'.dol_escape_htmltag(GETPOSTISSET("skype")?GETPOST("skype",'alpha'):$object->skype).'"></td></tr>';
    +            	}
    +            	// Twitter
    +            	if (! empty($conf->global->SOCIALNETWORKS_TWITTER))
    +            	{
    +            		print '<tr><td><label for="twitter">'.$form->editfieldkey('Twitter', 'twitter', '', $object, 0).'</label></td>';
    +            		print '<td colspan="3"><input type="text" name="twitter" id="twitter" class="minwidth100" maxlength="80" value="'.dol_escape_htmltag(GETPOSTISSET("twitter")?GETPOST("twitter",'alpha'):$object->twitter).'"></td></tr>';
    +            	}
    +            	// Facebook
    +            	if (! empty($conf->global->SOCIALNETWORKS_FACEBOOK))
    +            	{
    +            		print '<tr><td><label for="facebook">'.$form->editfieldkey('Facebook', 'facebook', '', $object, 0).'</label></td>';
    +            		print '<td colspan="3"><input type="text" name="facebook" id="facebook" class="minwidth100" maxlength="80" value="'.dol_escape_htmltag(GETPOSTISSET("facebook")?GETPOST("facebook",'alpha'):$object->facebook).'"></td></tr>';
    +            	}
                 }
     
                 // Visibility
    @@ -674,10 +708,9 @@ else
     
     			// Categories
     			if (! empty($conf->categorie->enabled)  && ! empty($user->rights->categorie->lire)) {
    -				print '<tr><td>' . fieldLabel( 'Categories', 'contcats' ) . '</td><td colspan="3">';
    -				$cate_arbo = $form->select_all_categories( Categorie::TYPE_CONTACT, null, 'parent', null, null, 1 );
    -				print $form->multiselectarray( 'contcats', $cate_arbo, GETPOST( 'contcats', 'array' ), null, null, null,
    -					null, '90%' );
    +				print '<tr><td>' . $form->editfieldkey('Categories', 'contcats', '', $object, 0) . '</td><td colspan="3">';
    +				$cate_arbo = $form->select_all_categories(Categorie::TYPE_CONTACT, null, 'parent', null, null, 1);
    +				print $form->multiselectarray('contcats', $cate_arbo, GETPOST('contcats', 'array'), null, null, null, null, '90%');
     				print "</td></tr>";
     			}
     
    @@ -704,11 +737,11 @@ else
                 $form=new Form($db);
                 if ($object->birthday)
                 {
    -                print $form->select_date($object->birthday,'birthday',0,0,0,"perso", 1, 0, 1);
    +                print $form->selectDate($object->birthday, 'birthday', 0, 0, 0, "perso", 1, 0);
                 }
                 else
                 {
    -                print $form->select_date('','birthday',0,0,1,"perso", 1, 0, 1);
    +                print $form->selectDate('', 'birthday', 0, 0, 1, "perso", 1, 0);
                 }
                 print '</td>';
     
    @@ -899,13 +932,25 @@ else
                 }
                 print '</tr>';
     
    -            // Jabberid
    -            print '<tr><td><label for="jabberid">'.$langs->trans("IM").'</label></td>';
    -	        print '<td><input name="jabberid" id="jabberid" type="text" class="minwidth100" maxlength="80" value="'.(isset($_POST["jabberid"])?$_POST["jabberid"]:$object->jabberid).'"></td>';
    +            // Unsubscribe
    +            print '<tr>';
                 if (! empty($conf->mailing->enabled))
                 {
    +            	$noemail = '';
    +            	if (empty($noemail) && ! empty($object->email))
    +            	{
    +            		$sql="SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE entity IN (".getEntity('mailing').") AND email = '".$db->escape($object->email)."'";
    +            		//print $sql;
    +            		$resql=$db->query($sql);
    +            		if ($resql)
    +            		{
    +            			$obj=$db->fetch_object($resql);
    +            			$noemail = $obj->nb;
    +            		}
    +            	}
    +
                 	print '<td><label for="no_email">'.$langs->trans("No_Email").'</label></td>';
    -	            print '<td>'.$form->selectyesno('no_email',(isset($_POST["no_email"])?$_POST["no_email"]:$object->no_email), 1).'</td>';
    +	            print '<td>'.$form->selectyesno('no_email',(GETPOSTISSET("no_email")?GETPOST("no_email",'alpha'):$noemail), 1).'</td>';
                 }
                 else
     			{
    @@ -913,11 +958,32 @@ else
     			}
                 print '</tr>';
     
    -            // Skype
    -            if (! empty($conf->skype->enabled))
    +            if (! empty($conf->socialnetworks->enabled))
                 {
    -                print '<tr><td><label for="skype">'.$langs->trans("Skype").'</label></td>';
    -	            print '<td><input name="skype" id="skype" type="text" class="minwidth100" maxlength="80" value="'.(isset($_POST["skype"])?GETPOST("skype"):$object->skype).'"></td></tr>';
    +            	// Jabber ID
    +            	if (! empty($conf->global->SOCIALNETWORKS_JABBER))
    +            	{
    +            		print '<tr><td><label for="jabberid">'.$form->editfieldkey('Jabber','jabberid', '', $object, 0).'</label></td>';
    +            		print '<td><input type="text" name="jabberid" id="jabberid" class="minwidth100" maxlength="80" value="'.dol_escape_htmltag(GETPOSTISSET("jabberid")?GETPOST("jabberid",'alpha'):$object->jabberid).'"></td></tr>';
    +            	}
    +            	// Skype
    +            	if (! empty($conf->global->SOCIALNETWORKS_SKYPE))
    +            	{
    +            		print '<tr><td><label for="skype">'.$form->editfieldkey('Skype', 'skype', '', $object, 0).'</label></td>';
    +            		print '<td><input type="text" name="skype" id="skype" class="minwidth100" maxlength="80" value="'.dol_escape_htmltag(GETPOSTISSET("skype")?GETPOST("skype",'alpha'):$object->skype).'"></td></tr>';
    +            	}
    +            	// Twitter
    +            	if (! empty($conf->global->SOCIALNETWORKS_TWITTER))
    +            	{
    +            		print '<tr><td><label for="twitter">'.$form->editfieldkey('Twitter', 'twitter', '', $object, 0).'</label></td>';
    +            		print '<td><input type="text" name="twitter" id="twitter" class="minwidth100" maxlength="80" value="'.dol_escape_htmltag(GETPOSTISSET("twitter")?GETPOST("twitter",'alpha'):$object->twitter).'"></td></tr>';
    +            	}
    +            	// Facebook
    +            	if (! empty($conf->global->SOCIALNETWORKS_FACEBOOK))
    +            	{
    +            		print '<tr><td><label for="facebook">'.$form->editfieldkey('Facebook', 'facebook', '', $object, 0).'</label></td>';
    +            		print '<td><input type="text" name="facebook" id="facebook" class="minwidth100" maxlength="80" value="'.dol_escape_htmltag(GETPOST("facebook")?GETPOST("facebook",'alpha'):$object->facebook).'"></td></tr>';
    +            	}
                 }
     
                 // Visibility
    @@ -945,16 +1011,16 @@ else
                 print '</td></tr>';
     
     			// Categories
    -			if (!empty( $conf->categorie->enabled ) && !empty( $user->rights->categorie->lire )) {
    -				print '<tr><td>' . fieldLabel( 'Categories', 'contcats' ) . '</td>';
    +			if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) {
    +				print '<tr><td>' . $form->editfieldkey('Categories', 'contcats', '', $object, 0) . '</td>';
     				print '<td colspan="3">';
    -				$cate_arbo = $form->select_all_categories( Categorie::TYPE_CONTACT, null, null, null, null, 1 );
    -				$c = new Categorie( $db );
    -				$cats = $c->containing( $object->id, 'contact' );
    +				$cate_arbo = $form->select_all_categories(Categorie::TYPE_CONTACT, null, null, null, null, 1);
    +				$c = new Categorie($db);
    +				$cats = $c->containing($object->id, 'contact');
     				foreach ($cats as $cat) {
     					$arrayselected[] = $cat->id;
     				}
    -				print $form->multiselectarray( 'contcats', $cate_arbo, $arrayselected, '', 0, '', 0, '90%' );
    +				print $form->multiselectarray('contcats', $cate_arbo, $arrayselected, '', 0, '', 0, '90%');
     				print "</td></tr>";
     			}
     
    @@ -1066,10 +1132,10 @@ else
                 $password=$generated_password;
     
                 // Create a form array
    -            $formquestion=array(
    -            array('label' => $langs->trans("LoginToCreate"), 'type' => 'text', 'name' => 'login', 'value' => $login),
    -            array('label' => $langs->trans("Password"), 'type' => 'text', 'name' => 'password', 'value' => $password),
    -            //array('label' => $form->textwithpicto($langs->trans("Type"),$langs->trans("InternalExternalDesc")), 'type' => 'select', 'name' => 'intern', 'default' => 1, 'values' => array(0=>$langs->trans('Internal'),1=>$langs->trans('External')))
    +            $formquestion = array(
    +                array('label' => $langs->trans("LoginToCreate"), 'type' => 'text', 'name' => 'login', 'value' => $login),
    +                array('label' => $langs->trans("Password"), 'type' => 'text', 'name' => 'password', 'value' => $password),
    +                //array('label' => $form->textwithpicto($langs->trans("Type"),$langs->trans("InternalExternalDesc")), 'type' => 'select', 'name' => 'intern', 'default' => 1, 'values' => array(0=>$langs->trans('Internal'),1=>$langs->trans('External')))
                 );
                 $text=$langs->trans("ConfirmCreateContact").'<br>';
                 if (! empty($conf->societe->enabled))
    @@ -1078,7 +1144,6 @@ else
                     else $text.=$langs->trans("UserWillBeInternalUser");
                 }
                 print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id,$langs->trans("CreateDolibarrLogin"),$text,"confirm_create_user",$formquestion,'yes');
    -
             }
     
             $linkback = '<a href="'.DOL_URL_ROOT.'/contact/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
    @@ -1119,11 +1184,23 @@ else
                 print '<td><a href="'.DOL_URL_ROOT.'/comm/mailing/list.php?filteremail='.urlencode($object->email).'">'.$object->getNbOfEMailings().'</a></td></tr>';
             }
     
    -        // Instant message and no email
    -        print '<tr><td>'.$langs->trans("IM").'</td><td>'.$object->jabberid.'</td></tr>';
    +        // Unsubscribe opt-out
             if (!empty($conf->mailing->enabled))
             {
    -        	print '<tr><td>'.$langs->trans("No_Email").'</td><td>'.yn($object->no_email).'</td></tr>';
    +        	//print 'eee'.$object->email;
    +        	$noemail = $object->no_email;
    +        	if (empty($noemail) && ! empty($object->email))
    +        	{
    +        		$sql="SELECT COUNT(*) as nb FROM ".MAIN_DB_PREFIX."mailing_unsubscribe WHERE entity IN (".getEntity('mailing').") AND email = '".$db->escape($object->email)."'";
    +        		//print $sql;
    +        		$resql=$db->query($sql);
    +        		if ($resql)
    +        		{
    +        			$obj=$db->fetch_object($resql);
    +        			$noemail = $obj->nb;
    +        		}
    +        	}
    +        	print '<tr><td>'.$langs->trans("No_Email").'</td><td>'.yn($noemail).'</td></tr>';
             }
     
             print '<tr><td>'.$langs->trans("ContactVisibility").'</td><td>';
    @@ -1142,7 +1219,7 @@ else
     		if (! empty($conf->categorie->enabled)  && ! empty($user->rights->categorie->lire)) {
     			print '<tr><td class="titlefield">' . $langs->trans("Categories") . '</td>';
     			print '<td colspan="3">';
    -			print $form->showCategories( $object->id, 'contact', 1 );
    +			print $form->showCategories($object->id, 'contact', 1);
     			print '</td></tr>';
     		}
     
    @@ -1216,9 +1293,20 @@ else
     
     		$parameters=array();
     		$reshook=$hookmanager->executeHooks('addMoreActionsButtons',$parameters,$object,$action);    // Note that $action and $object may have been modified by hook
    -		if (empty($reshook))
    +		if (empty($reshook) && $action!='presend')
     		{
    -        	if ($user->rights->societe->contact->creer)
    +			if (! empty($object->email))
    +			{
    +				$langs->load("mails");
    +				print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;action=presend&amp;mode=init#formmailbeforetitle">'.$langs->trans('SendMail').'</a></div>';
    +			}
    +			else
    +			{
    +				$langs->load("mails");
    +				print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans('SendMail').'</a></div>';
    +			}
    +
    +			if ($user->rights->societe->contact->creer)
                 {
                     print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&action=edit">'.$langs->trans('Modify').'</a>';
                 }
    @@ -1248,6 +1336,13 @@ else
     
             print "</div>";
     
    +	    // Presend form
    +	    $modelmail='contact';
    +	    $defaulttopic='Information';
    +	    $diroutput = $conf->contact->dir_output;
    +	    $trackid = 'con'.$object->id;
    +
    +	    include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
         }
     }
     
    diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php
    index dbf45cfb1a0..a5297750386 100644
    --- a/htdocs/contact/class/contact.class.php
    +++ b/htdocs/contact/class/contact.class.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2002-2004 Rodolphe Quiedeville        <rodolphe@quiedeville.org>
      * Copyright (C) 2004      Benoit Mortier              <benoit.mortier@opensides.be>
      * Copyright (C) 2004-2013 Laurent Destailleur         <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin               <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin               <regis.houssin@inodbox.com>
      * Copyright (C) 2007      Franky Van Liedekerke       <franky.van.liedekerker@telenet.be>
      * Copyright (C) 2008      Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
      * Copyright (C) 2013      Florian Henry		  	       <florian.henry@open-concept.pro>
    @@ -37,9 +37,25 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class Contact extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='contact';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='socpeople';
    -	public $ismultientitymanaged = 1;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 1;
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'contact';
     
     
    @@ -71,24 +87,24 @@ class Contact extends CommonObject
     
     	/**
     	 * @deprecated
    -	 * @see state_id
    +	 * @see $state_id
     	 */
     	public $fk_departement;
     	/**
     	 * @deprecated
    -	 * @see state_code
    +	 * @see $state_code
     	 */
     	public $departement_code;
     	/**
     	 * @deprecated
    -	 * @see state
    +	 * @see $state
     	 */
     	public $departement;
     	public $state_id;	        	// Id of department
     	public $state_code;		    // Code of department
     	public $state;			        // Label of department
     
    -    	public $poste;                 // Position
    +    public $poste;                 // Position
     
     	public $socid;					// fk_soc
     	public $statut;				// 0=inactif, 1=actif
    @@ -107,7 +123,6 @@ class Contact extends CommonObject
     
     	public $birthday;
     	public $default_lang;
    -	public $no_email;				// 1=Don't send e-mail to this contact, 0=do
     
     	public $ref_facturation;       // Reference number of invoice for which it is contact
     	public $ref_contrat;           // Nb de reference contrat pour lequel il est contact
    @@ -123,9 +138,6 @@ class Contact extends CommonObject
     	public $oldcopy;				// To contains a clone of this when we need to save old properties of object
     
     
    -
    -
    -
     	/**
     	 *	Constructor
     	 *
    @@ -137,6 +149,7 @@ class Contact extends CommonObject
     		$this->statut = 1;	// By default, status is enabled
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Load indicators into this->nb for board
     	 *
    @@ -144,6 +157,7 @@ class Contact extends CommonObject
     	 */
     	function load_state_board()
     	{
    +        // phpcs:enable
     		global $user;
     
     		$this->nb=array();
    @@ -343,6 +357,8 @@ class Contact extends CommonObject
     		$sql .= ", fax='".$this->db->escape($this->fax)."'";
     		$sql .= ", email='".$this->db->escape($this->email)."'";
     		$sql .= ", skype='".$this->db->escape($this->skype)."'";
    +		$sql .= ", twitter='".$this->db->escape($this->twitter)."'";
    +		$sql .= ", facebook='".$this->db->escape($this->facebook)."'";
     		$sql .= ", photo='".$this->db->escape($this->photo)."'";
     		$sql .= ", birthday=".($this->birthday ? "'".$this->db->idate($this->birthday)."'" : "null");
     		$sql .= ", note_private = ".(isset($this->note_private)?"'".$this->db->escape($this->note_private)."'":"null");
    @@ -355,7 +371,6 @@ class Contact extends CommonObject
     		$sql .= ", statut = ".$this->db->escape($this->statut);
     		$sql .= ", fk_user_modif=".($user->id > 0 ? "'".$this->db->escape($user->id)."'":"NULL");
     		$sql .= ", default_lang=".($this->default_lang?"'".$this->db->escape($this->default_lang)."'":"NULL");
    -		$sql .= ", no_email=".($this->no_email?"'".$this->db->escape($this->no_email)."'":"0");
     		$sql .= ", entity = " . $this->db->escape($this->entity);
     		$sql .= " WHERE rowid=".$this->db->escape($id);
     
    @@ -430,6 +445,16 @@ class Contact extends CommonObject
     					$tmpobj->skype = $this->skype;
     					$usermustbemodified++;
     				}
    +				if ($tmpobj->twitter != $this->twitter)
    +				{
    +					$tmpobj->twitter = $this->twitter;
    +					$usermustbemodified++;
    +				}
    +				if ($tmpobj->facebook != $this->facebook)
    +				{
    +					$tmpobj->facebook = $this->facebook;
    +					$usermustbemodified++;
    +				}
     				if ($usermustbemodified)
     				{
     					$result=$tmpobj->update($user, 0, 1, 1, 1);
    @@ -466,6 +491,7 @@ class Contact extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Retourne chaine DN complete dans l'annuaire LDAP pour l'objet
     	 *
    @@ -477,15 +503,17 @@ class Contact extends CommonObject
     	 */
     	function _load_ldap_dn($info,$mode=0)
     	{
    +        // phpcs:enable
     		global $conf;
     		$dn='';
     		if ($mode==0) $dn=$conf->global->LDAP_KEY_CONTACTS."=".$info[$conf->global->LDAP_KEY_CONTACTS].",".$conf->global->LDAP_CONTACT_DN;
    -		if ($mode==1) $dn=$conf->global->LDAP_CONTACT_DN;
    -		if ($mode==2) $dn=$conf->global->LDAP_KEY_CONTACTS."=".$info[$conf->global->LDAP_KEY_CONTACTS];
    +		elseif ($mode==1) $dn=$conf->global->LDAP_CONTACT_DN;
    +		elseif ($mode==2) $dn=$conf->global->LDAP_KEY_CONTACTS."=".$info[$conf->global->LDAP_KEY_CONTACTS];
     		return $dn;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Initialise tableau info (tableau des attributs LDAP)
     	 *
    @@ -493,12 +521,13 @@ class Contact extends CommonObject
     	 */
     	function _load_ldap_info()
     	{
    -		global $conf,$langs;
    +        // phpcs:enable
    +		global $conf, $langs;
     
             $info = array();
     
             // Object classes
    -		$info["objectclass"]=explode(',',$conf->global->LDAP_CONTACT_OBJECT_CLASS);
    +		$info["objectclass"]=explode(',', $conf->global->LDAP_CONTACT_OBJECT_CLASS);
     
     		$this->fullname=$this->getFullName($langs);
     
    @@ -559,6 +588,7 @@ class Contact extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update field alert birthday
     	 *
    @@ -569,6 +599,7 @@ class Contact extends CommonObject
     	 */
     	function update_perso($id, $user=null, $notrigger=0)
     	{
    +        // phpcs:enable
     	    $error=0;
     	    $result=false;
     
    @@ -649,12 +680,13 @@ class Contact extends CommonObject
     	/**
     	 *  Load object contact
     	 *
    -	 *  @param      int		$id          id du contact
    -	 *  @param      User	$user        Utilisateur (abonnes aux alertes) qui veut les alertes de ce contact
    -     *  @param      string  $ref_ext     External reference, not given by Dolibarr
    -	 *  @return     int     		     -1 if KO, 0 if OK but not found, 1 if OK
    +	 *  @param      int		$id         id du contact
    +	 *  @param      User	$user       Utilisateur (abonnes aux alertes) qui veut les alertes de ce contact
    +     *  @param      string  $ref_ext    External reference, not given by Dolibarr
    +     *  @param		string	$email		Email
    +	 *  @return     int     		    -1 if KO, 0 if OK but not found, 1 if OK
     	 */
    -	function fetch($id, $user=0, $ref_ext='')
    +	function fetch($id, $user=null, $ref_ext='', $email='')
     	{
     		global $langs;
     
    @@ -673,9 +705,9 @@ class Contact extends CommonObject
     		$sql.= " c.fk_pays as country_id,";
     		$sql.= " c.fk_departement,";
     		$sql.= " c.birthday,";
    -		$sql.= " c.poste, c.phone, c.phone_perso, c.phone_mobile, c.fax, c.email, c.jabberid, c.skype,";
    +		$sql.= " c.poste, c.phone, c.phone_perso, c.phone_mobile, c.fax, c.email, c.jabberid, c.skype, c.twitter, c.facebook,";
             $sql.= " c.photo,";
    -		$sql.= " c.priv, c.note_private, c.note_public, c.default_lang, c.no_email, c.canvas,";
    +		$sql.= " c.priv, c.note_private, c.note_public, c.default_lang, c.canvas,";
     		$sql.= " c.import_key,";
     		$sql.= " c.datec as date_creation, c.tms as date_modification,";
     		$sql.= " co.label as country, co.code as country_code,";
    @@ -688,9 +720,15 @@ class Contact extends CommonObject
     		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON c.rowid = u.fk_socpeople";
     		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON c.fk_soc = s.rowid";
     		if ($id) $sql.= " WHERE c.rowid = ". $id;
    -		elseif ($ref_ext) {
    +		else
    +		{
     			$sql .= " WHERE c.entity IN (".getEntity($this->element).")";
    -			$sql .= " AND c.ref_ext = '".$this->db->escape($ref_ext)."'";
    +			if ($ref_ext) {
    +				$sql .= " AND c.ref_ext = '".$this->db->escape($ref_ext)."'";
    +			}
    +			if ($email) {
    +				$sql .= " AND c.email = '".$this->db->escape($email)."'";
    +			}
     		}
     
     		$resql=$this->db->query($sql);
    @@ -714,7 +752,7 @@ class Contact extends CommonObject
     
     				$this->date_creation     = $this->db->jdate($obj->date_creation);
     				$this->date_modification = $this->db->jdate($obj->date_modification);
    -				
    +
     				$this->fk_departement	= $obj->fk_departement;    // deprecated
     				$this->state_id			= $obj->fk_departement;
     				$this->departement_code	= $obj->state_code;	       // deprecated
    @@ -739,6 +777,8 @@ class Contact extends CommonObject
     				$this->email				= $obj->email;
     				$this->jabberid			= $obj->jabberid;
     				$this->skype				= $obj->skype;
    +				$this->twitter				= $obj->twitter;
    +				$this->facebook				= $obj->facebook;
     				$this->photo				= $obj->photo;
     				$this->priv				= $obj->priv;
     				$this->mail				= $obj->email;
    @@ -748,7 +788,6 @@ class Contact extends CommonObject
     				$this->note_private		= $obj->note_private;
     				$this->note_public		= $obj->note_public;
     				$this->default_lang		= $obj->default_lang;
    -				$this->no_email			= $obj->no_email;
     				$this->user_id			= $obj->user_id;
     				$this->user_login		= $obj->user_login;
     				$this->canvas			= $obj->canvas;
    @@ -840,6 +879,7 @@ class Contact extends CommonObject
         	}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Load number of elements the contact is used as a link for
     	 *  ref_facturation
    @@ -851,6 +891,7 @@ class Contact extends CommonObject
     	 */
     	function load_ref_elements()
     	{
    +        // phpcs:enable
     		// Compte les elements pour lesquels il est contact
     		$sql ="SELECT tc.element, count(ec.rowid) as nb";
     		$sql.=" FROM ".MAIN_DB_PREFIX."element_contact as ec, ".MAIN_DB_PREFIX."c_type_contact as tc";
    @@ -869,9 +910,9 @@ class Contact extends CommonObject
     				if ($obj->nb)
     				{
     					if ($obj->element=='facture')  $this->ref_facturation = $obj->nb;
    -					if ($obj->element=='contrat')  $this->ref_contrat = $obj->nb;
    -					if ($obj->element=='commande') $this->ref_commande = $obj->nb;
    -					if ($obj->element=='propal')   $this->ref_propal = $obj->nb;
    +					elseif ($obj->element=='contrat')  $this->ref_contrat = $obj->nb;
    +					elseif ($obj->element=='commande') $this->ref_commande = $obj->nb;
    +					elseif ($obj->element=='propal')   $this->ref_propal = $obj->nb;
     				}
     			}
     			$this->db->free($resql);
    @@ -896,8 +937,8 @@ class Contact extends CommonObject
     
     		$error=0;
     
    -		$this->old_lastname       = $obj->lastname;
    -		$this->old_firstname      = $obj->firstname;
    +		//$this->old_lastname = $obj->lastname;
    +		//$this->old_firstname = $obj->firstname;
     
     		$this->db->begin();
     
    @@ -1017,7 +1058,7 @@ class Contact extends CommonObject
     			{
     				$obj = $this->db->fetch_object($resql);
     
    -				$this->id                = $obj->rowid;
    +				$this->id = $obj->rowid;
     
     				if ($obj->fk_user_creat) {
     					$cuser = new User($this->db);
    @@ -1182,6 +1223,7 @@ class Contact extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Renvoi le libelle d'un statut donne
     	 *
    @@ -1191,6 +1233,7 @@ class Contact extends CommonObject
     	 */
     	function LibStatut($statut,$mode)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
    @@ -1207,7 +1250,6 @@ class Contact extends CommonObject
     		{
     			if ($statut==0 || $statut==5) return img_picto($langs->trans('Disabled'),'statut5', 'class="pictostatus"').' '.$langs->trans('Disabled');
     			elseif ($statut==1 || $statut==4) return img_picto($langs->trans('Enabled'),'statut4', 'class="pictostatus"').' '.$langs->trans('Enabled');
    -
     		}
     		elseif ($mode == 3)
     		{
    @@ -1227,6 +1269,7 @@ class Contact extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return translated label of Public or Private
     	 *
    @@ -1235,6 +1278,7 @@ class Contact extends CommonObject
     	 */
     	function LibPubPriv($statut)
     	{
    +        // phpcs:enable
     		global $langs;
     		if ($statut=='1') return $langs->trans('ContactPrivate');
     		else return $langs->trans('ContactPublic');
    @@ -1339,6 +1383,7 @@ class Contact extends CommonObject
     	 * Existing categories are left untouch.
     	 *
     	 * @param int[]|int $categories Category or categories IDs
    +     * @return void
     	 */
     	public function setCategories($categories)
     	{
    diff --git a/htdocs/contact/document.php b/htdocs/contact/document.php
    index 1a60ddaaccb..d118c4de3b9 100644
    --- a/htdocs/contact/document.php
    +++ b/htdocs/contact/document.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2014	Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2015	Frederic France		<frederic.france@free.fr>
    - * Copyright (C) 2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2017	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -97,7 +97,7 @@ if ($object->id)
         dol_fiche_head($head, 'documents', $title, -1, 'contact');
     
     
    -    // Construit liste des fichiers
    +    // Build file list
         $filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
         $totalsize=0;
         foreach($filearray as $key => $file)
    diff --git a/htdocs/contact/info.php b/htdocs/contact/info.php
    index 7ddee3f7722..05862e0e9aa 100644
    --- a/htdocs/contact/info.php
    +++ b/htdocs/contact/info.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/contact/ldap.php b/htdocs/contact/ldap.php
    index 045cdfcd2c5..eaf165136e2 100644
    --- a/htdocs/contact/ldap.php
    +++ b/htdocs/contact/ldap.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2010	Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2017	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2017	Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php
    index 905b2a680b0..af15d873acb 100644
    --- a/htdocs/contact/list.php
    +++ b/htdocs/contact/list.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2004  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2003       Eric Seigne             <erics@rycks.com>
      * Copyright (C) 2004-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2013-2015  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2013       Cédric Salvador         <csalvador@gpcsolutions.fr>
      * Copyright (C) 2013       Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    @@ -68,6 +68,8 @@ $search_phone_mobile=GETPOST("search_phone_mobile",'alpha');
     $search_fax=GETPOST("search_fax",'alpha');
     $search_email=GETPOST("search_email",'alpha');
     $search_skype=GETPOST("search_skype",'alpha');
    +$search_twitter=GETPOST("search_twitter",'alpha');
    +$search_facebook=GETPOST("search_facebook",'alpha');
     $search_priv=GETPOST("search_priv",'alpha');
     $search_categ=GETPOST("search_categ",'int');
     $search_categ_thirdparty=GETPOST("search_categ_thirdparty",'int');
    @@ -131,7 +133,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('contact');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -156,7 +158,10 @@ $arrayfields=array(
     	'p.phone_mobile'=>array('label'=>"PhoneMobile", 'checked'=>1),
     	'p.fax'=>array('label'=>"Fax", 'checked'=>0),
     	'p.email'=>array('label'=>"EMail", 'checked'=>1),
    -	'p.skype'=>array('label'=>"Skype", 'checked'=>1, 'enabled'=>(! empty($conf->skype->enabled))),
    +	'p.jabberid'=>array('label'=>"Jabber", 'checked'=>1, 'enabled'=>(! empty($conf->socialnetworks->enabled))),
    +	'p.skype'=>array('label'=>"Skype", 'checked'=>1, 'enabled'=>(! empty($conf->socialnetworks->enabled))),
    +	'p.twitter'=>array('label'=>"Twitter", 'checked'=>1, 'enabled'=>(! empty($conf->socialnetworks->enabled))),
    +	'p.facebook'=>array('label'=>"Facebook", 'checked'=>1, 'enabled'=>(! empty($conf->socialnetworks->enabled))),
     	'p.thirdparty'=>array('label'=>"ThirdParty", 'checked'=>1, 'enabled'=>empty($conf->global->SOCIETE_DISABLE_CONTACTS)),
     	'p.priv'=>array('label'=>"ContactVisibility", 'checked'=>1, 'position'=>200),
     	'p.datec'=>array('label'=>"DateCreationShort", 'checked'=>0, 'position'=>500),
    @@ -198,7 +203,7 @@ if (empty($reshook))
     	include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
     
     	// Did we click on purge search criteria ?
    -	if (GETPOST('button_removefilter_x') || GETPOST('button_removefilter.x') || GETPOST('button_removefilter'))	// All tests are required to be compatible with all browsers
    +	if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha'))	// All tests are required to be compatible with all browsers
     	{
     		$sall="";
     		$search_id='';
    @@ -217,6 +222,8 @@ if (empty($reshook))
     		$search_fax="";
     		$search_email="";
     		$search_skype="";
    +		$search_twitter="";
    +		$search_facebook="";
     		$search_priv="";
     		$search_status=-1;
     		$search_categ='';
    @@ -311,6 +318,8 @@ if (strlen($search_phone_pro))      $sql.= natural_search('p.phone', $search_pho
     if (strlen($search_phone_mobile))   $sql.= natural_search('p.phone_mobile', $search_phone_mobile);
     if (strlen($search_fax))            $sql.= natural_search('p.fax', $search_fax);
     if (strlen($search_skype))          $sql.= natural_search('p.skype', $search_skype);
    +if (strlen($search_twitter))        $sql.= natural_search('p.twitter', $search_twitter);
    +if (strlen($search_facebook))       $sql.= natural_search('p.facebook', $search_facebook);
     if (strlen($search_email))          $sql.= natural_search('p.email', $search_email);
     if (strlen($search_zip))   			$sql.= natural_search("p.zip",$search_zip);
     if (strlen($search_town))   		$sql.= natural_search("p.town",$search_town);
    @@ -603,6 +612,18 @@ if (! empty($arrayfields['p.skype']['checked']))
     	print '<input class="flat" type="text" name="search_skype" size="6" value="'.dol_escape_htmltag($search_skype).'">';
     	print '</td>';
     }
    +if (! empty($arrayfields['p.twitter']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat" type="text" name="search_twitter" size="6" value="'.dol_escape_htmltag($search_twitter).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['p.facebook']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat" type="text" name="search_facebook" size="6" value="'.dol_escape_htmltag($search_facebook).'">';
    +	print '</td>';
    +}
     if (! empty($arrayfields['p.thirdparty']['checked']))
     {
     	print '<td class="liste_titre">';
    @@ -673,6 +694,8 @@ if (! empty($arrayfields['p.phone_mobile']['checked']))        print_liste_field
     if (! empty($arrayfields['p.fax']['checked']))                 print_liste_field_titre($arrayfields['p.fax']['label'],$_SERVER["PHP_SELF"],"p.fax", $begin, $param, '', $sortfield,$sortorder);
     if (! empty($arrayfields['p.email']['checked']))               print_liste_field_titre($arrayfields['p.email']['label'],$_SERVER["PHP_SELF"],"p.email", $begin, $param, '', $sortfield,$sortorder);
     if (! empty($arrayfields['p.skype']['checked']))               print_liste_field_titre($arrayfields['p.skype']['label'],$_SERVER["PHP_SELF"],"p.skype", $begin, $param, '', $sortfield,$sortorder);
    +if (! empty($arrayfields['p.twitter']['checked']))             print_liste_field_titre($arrayfields['p.twitter']['label'],$_SERVER["PHP_SELF"],"p.twitter", $begin, $param, '', $sortfield,$sortorder);
    +if (! empty($arrayfields['p.facebook']['checked']))            print_liste_field_titre($arrayfields['p.facebook']['label'],$_SERVER["PHP_SELF"],"p.facebook", $begin, $param, '', $sortfield,$sortorder);
     if (! empty($arrayfields['p.thirdparty']['checked']))          print_liste_field_titre($arrayfields['p.thirdparty']['label'],$_SERVER["PHP_SELF"],"s.nom", $begin, $param, '', $sortfield,$sortorder);
     if (! empty($arrayfields['p.priv']['checked']))                print_liste_field_titre($arrayfields['p.priv']['label'],$_SERVER["PHP_SELF"],"p.priv", $begin, $param, 'align="center"', $sortfield,$sortorder);
     // Extra fields
    @@ -800,10 +823,29 @@ while ($i < min($num,$limit))
     		print '<td>'.dol_print_email($obj->email,$obj->rowid,$obj->socid,'AC_EMAIL',18).'</td>';
     		if (! $i) $totalarray['nbfield']++;
     	}
    +
     	// Skype
     	if (! empty($arrayfields['p.skype']['checked']))
     	{
    -		if (! empty($conf->skype->enabled)) { print '<td>'.dol_print_skype($obj->skype,$obj->rowid,$obj->socid,'AC_SKYPE',18).'</td>'; }
    +		if (! empty($conf->socialnetworks->enabled)) { print '<td>'.dol_print_socialnetworks($obj->skype,$obj->rowid,$obj->socid,'skype').'</td>'; }
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Jabber
    +	if (! empty($arrayfields['p.jabberid']['checked']))
    +	{
    +		if (! empty($conf->socialnetworks->enabled)) { print '<td>'.dol_print_socialnetworks($obj->jabberid,$obj->rowid,$obj->socid,'jabberid').'</td>'; }
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Twitter
    +	if (! empty($arrayfields['p.twitter']['checked']))
    +	{
    +		if (! empty($conf->socialnetworks->enabled)) { print '<td>'.dol_print_socialnetworks($obj->twitter,$obj->rowid,$obj->socid,'twitter').'</td>'; }
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Facebook
    +	if (! empty($arrayfields['p.facebook']['checked']))
    +	{
    +		if (! empty($conf->socialnetworks->enabled)) { print '<td>'.dol_print_socialnetworks($obj->facebook,$obj->rowid,$obj->socid,'facebook').'</td>'; }
     		if (! $i) $totalarray['nbfield']++;
     	}
     	// Company
    diff --git a/htdocs/contact/note.php b/htdocs/contact/note.php
    index 731dadb6433..8958e8dcf6a 100644
    --- a/htdocs/contact/note.php
    +++ b/htdocs/contact/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2003,2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011      Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010           Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2013           Florian Henry		 <florian.henry@open-concept.pro>
      *
    diff --git a/htdocs/contact/perso.php b/htdocs/contact/perso.php
    index 3e5ec085132..8e74c33cd14 100644
    --- a/htdocs/contact/perso.php
    +++ b/htdocs/contact/perso.php
    @@ -1,7 +1,8 @@
     <?php
    -/* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2004       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2011  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -199,7 +200,7 @@ if ($action == 'edit')
         // Date To Birth
         print '<tr><td>'.$langs->trans("DateToBirth").'</td><td>';
         $form=new Form($db);
    -    print $form->select_date($object->birthday,'birthday',0,0,1,"perso", 1,0,1);
    +    print $form->selectDate($object->birthday, 'birthday', 0, 0, 1, "perso", 1,0);
         print '</td>';
     
         print '<td colspan="2">'.$langs->trans("Alert").': ';
    diff --git a/htdocs/contact/vcard.php b/htdocs/contact/vcard.php
    index 5229a0e8416..c43157f101c 100644
    --- a/htdocs/contact/vcard.php
    +++ b/htdocs/contact/vcard.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -61,13 +61,13 @@ $v->setName($contact->lastname, $contact->firstname, "", "", "");
     $v->setFormattedName($contact->getFullName($langs));
     
     // By default, all informations are for work (except phone_perso and phone_mobile)
    -$v->setPhoneNumber($contact->phone_pro, "PREF;WORK;VOICE");
    -$v->setPhoneNumber($contact->phone_mobile, "CELL;VOICE");
    -$v->setPhoneNumber($contact->fax, "WORK;FAX");
    +$v->setPhoneNumber($contact->phone_pro, "TYPE=WORK;VOICE");
    +$v->setPhoneNumber($contact->phone_mobile, "TYPE=CELL;VOICE");
    +$v->setPhoneNumber($contact->fax, "TYPE=WORK;FAX");
     
    -$v->setAddress("", "", $contact->address, $contact->town, "", $contact->zip, ($contact->country_code?$contact->country:''), "WORK;POSTAL");
    -$v->setLabel("", "", $contact->address, $contact->town, "", $contact->zip, ($contact->country_code?$contact->country:''), "WORK");
    -$v->setEmail($contact->email,'internet,pref');
    +$v->setAddress("", "", $contact->address, $contact->town, "", $contact->zip, ($contact->country_code?$contact->country:''), "TYPE=WORK;POSTAL");
    +$v->setLabel("", "", $contact->address, $contact->town, "", $contact->zip, ($contact->country_code?$contact->country:''), "TYPE=WORK");
    +$v->setEmail($contact->email,'TYPE=PREF,INTERNET');
     $v->setNote($contact->note);
     
     $v->setTitle($contact->poste);
    @@ -75,17 +75,17 @@ $v->setTitle($contact->poste);
     // Data from linked company
     if ($company->id)
     {
    -	$v->setURL($company->url, "WORK");
    -	if (! $contact->phone_pro) $v->setPhoneNumber($company->phone, "WORK;VOICE");
    -	if (! $contact->fax)       $v->setPhoneNumber($company->fax, "WORK;FAX");
    -	if (! $contact->zip)        $v->setAddress("", "", $company->address, $company->town, "", $company->zip, $company->country, "WORK;POSTAL");
    -	if ($company->email != $contact->email) $v->setEmail($company->email,'internet');
    +	$v->setURL($company->url, "TYPE=WORK");
    +	if (! $contact->phone_pro) $v->setPhoneNumber($company->phone, "TYPE=WORK;VOICE");
    +	if (! $contact->fax)       $v->setPhoneNumber($company->fax, "TYPE=WORK;FAX");
    +	if (! $contact->zip)        $v->setAddress("", "", $company->address, $company->town, "", $company->zip, $company->country, "TYPE=WORK;POSTAL");
    +	if ($company->email != $contact->email) $v->setEmail($company->email,'TYPE=PREF,INTERNET');
     	// Si contact lie a un tiers non de type "particulier"
     	if ($contact->typent_code != 'TE_PRIVATE') $v->setOrg($company->name);
     }
     
     // Personal informations
    -$v->setPhoneNumber($contact->phone_perso, "HOME;VOICE");
    +$v->setPhoneNumber($contact->phone_perso, "TYPE=HOME;VOICE");
     if ($contact->birthday) $v->setBirthday($contact->birthday);
     
     $db->close();
    diff --git a/htdocs/contrat/admin/contract_extrafields.php b/htdocs/contrat/admin/contract_extrafields.php
    index b9b0d51c162..3e3e82f6e0b 100644
    --- a/htdocs/contrat/admin/contract_extrafields.php
    +++ b/htdocs/contrat/admin/contract_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013-2018	Philippe Grand			<philippe.grand@atoo-net.com>
      *
    @@ -81,7 +81,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -94,7 +94,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -	print '<div name="topofform"></div><br>';
    +	print '<br><div name="topofform" id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    diff --git a/htdocs/contrat/admin/contractdet_extrafields.php b/htdocs/contrat/admin/contractdet_extrafields.php
    index 42a8ed589d7..69cfd219fcf 100644
    --- a/htdocs/contrat/admin/contractdet_extrafields.php
    +++ b/htdocs/contrat/admin/contractdet_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2014		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      *
    @@ -81,7 +81,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -94,8 +94,8 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    -    print load_fiche_titre($langs->trans('NewAttribute'));
    +	print '<br><div id="newattrib"></div>';
    +	print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
     }
    diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php
    index 5f418cb0568..491ead83b6e 100644
    --- a/htdocs/contrat/card.php
    +++ b/htdocs/contrat/card.php
    @@ -1,14 +1,15 @@
     <?php
    -/* Copyright (C) 2003-2004	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2014	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2014	Regis Houssin			<regis.houssin@capnetworks.com>
    - * Copyright (C) 2006		Andre Cianfarani		<acianfa@free.fr>
    - * Copyright (C) 2010-2017	Juanjo Menent			<jmenent@2byte.es>
    +/* Copyright (C) 2003-2004  Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2014  Laurent Destailleur		<eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2014  Regis Houssin			<regis.houssin@inodbox.com>
    + * Copyright (C) 2006       Andre Cianfarani		<acianfa@free.fr>
    + * Copyright (C) 2010-2017  Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2013       Christophe Battarel     <christophe.battarel@altairis.fr>
      * Copyright (C) 2013-2014  Florian Henry		  	<florian.henry@open-concept.pro>
      * Copyright (C) 2014-2018	Ferran Marcet		  	<fmarcet@2byte.es>
      * Copyright (C) 2014-2016  Marcos García           <marcosgdf@gmail.com>
    - * Copyright (C) 2015       Jean-François Ferry		<jfefe@aternatik.fr>
    + * Copyright (C) 2015       Jean-François Ferry     <jfefe@aternatik.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -30,7 +31,7 @@
      *       \brief      Page of a contract
      */
     
    -require ("../main.inc.php");
    +require "../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/contract.lib.php';
    @@ -539,7 +540,7 @@ if (empty($reshook))
     				}
     
     			   	$desc=$prod->description;
    -			   	$desc=dol_concatdesc($desc,$product_desc);
    +			   	$desc=dol_concatdesc($desc,$product_desc, '', !empty($conf->global->CHANGE_ORDER_CONCAT_DESCRIPTION));
     				$fk_unit = $prod->fk_unit;
     			}
     			else
    @@ -565,7 +566,7 @@ if (empty($reshook))
     			$info_bits=0;
     			if ($tva_npr) $info_bits |= 0x01;
     
    -			if($price_min && (price2num($pu_ht)*(1-price2num($remise_percent)/100) < price2num($price_min)))
    +			if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS) )&& ($price_min && (price2num($pu_ht)*(1-price2num($remise_percent)/100) < price2num($price_min))))
     			{
     				$object->error = $langs->trans("CantBeLessThanMinPrice",price(price2num($price_min,'MU'),0,$langs,0,0,-1,$conf->currency));
     				$result = -1 ;
    @@ -1242,7 +1243,7 @@ if ($action == 'create')
     	print '</td></tr>';
     
     	print '<tr><td><span class="fieldrequired">'.$langs->trans("Date").'</span></td><td>';
    -	$form->select_date($datecontrat,'',0,0,'',"contrat");
    +	print $form->selectDate($datecontrat, '', 0, 0, '', "contrat");
     	print "</td></tr>";
     
     	// Project
    @@ -1317,8 +1318,10 @@ else
     	{
     		$object->fetch_thirdparty();
     
    -		$result=$object->fetch_lines();	// This also init $this->nbofserviceswait, $this->nbofservicesopened, $this->nbofservicesexpired=, $this->nbofservicesclosed
    -		if ($result < 0) dol_print_error($db,$object->error);
    +		$result=$object->fetch_lines(); // This also init $this->nbofserviceswait, $this->nbofservicesopened, $this->nbofservicesexpired=, $this->nbofservicesclosed
    +		if ($result < 0) {
    +            dol_print_error($db,$object->error);
    +        }
     
     		$nbofservices=count($object->lines);
     
    @@ -1333,56 +1336,54 @@ else
     
     		$head = contract_prepare_head($object);
     
    -		$hselected = 0;
    +        $hselected = 0;
    +        $formconfirm = '';
     
    -		dol_fiche_head($head, $hselected, $langs->trans("Contract"), -1, 'contract');
    +        dol_fiche_head($head, $hselected, $langs->trans("Contract"), -1, 'contract');
     
     
    -		/*
    -         * Confirmation de la suppression du contrat
    -         */
    -		if ($action == 'delete')
    -		{
    -			print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("DeleteAContract"),$langs->trans("ConfirmDeleteAContract"),"confirm_delete",'',0,1);
    +        if ($action == 'delete') {
    +            //Confirmation de la suppression du contrat
    +            $formconfirm = $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("DeleteAContract"),$langs->trans("ConfirmDeleteAContract"),"confirm_delete",'',0,1);
    +        } elseif ($action == 'valid') {
    +            //Confirmation de la validation
    +            $ref = substr($object->ref, 1, 4);
    +            if ($ref == 'PROV' && !empty($modCodeContract->code_auto)) {
    +                $numref = $object->getNextNumRef($object->thirdparty);
    +            } else {
    +                $numref = $object->ref;
    +            }
    +            $text = $langs->trans('ConfirmValidateContract',$numref);
    +            $formconfirm = $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("ValidateAContract"),$text,"confirm_valid",'',0,1);
    +        } elseif ($action == 'close') {
    +            // Confirmation de la fermeture
    +            $formconfirm = $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("CloseAContract"),$langs->trans("ConfirmCloseContract"),"confirm_close",'',0,1);
    +        } elseif ($action == 'activate') {
    +            $formconfirm = $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("ActivateAllOnContract"),$langs->trans("ConfirmActivateAllOnContract"),"confirm_activate",'',0,1);
    +        } elseif ($action == 'clone') {
    +            // Clone confirmation
    +            $formquestion = array(array('type' => 'other','name' => 'socid','label' => $langs->trans("SelectThirdParty"),'value' => $form->select_company(GETPOST('socid', 'int'), 'socid', '(s.client=1 OR s.client=2 OR s.client=3)')));
    +            $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('CloneContract'), $langs->trans('ConfirmCloneContract', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
    +        }
     
    -		}
     
    -		/*
    -         * Confirmation de la validation
    -         */
    -		if ($action == 'valid')
    -		{
    -			$ref = substr($object->ref, 1, 4);
    -			if ($ref == 'PROV' && !empty($modCodeContract->code_auto))
    -			{
    -				$numref = $object->getNextNumRef($object->thirdparty);
    -			}
    -			else
    -			{
    -				$numref = $object->ref;
    -			}
    +        // Call Hook formConfirm
    +        $parameters = array(
    +            'id' => $id,
    +            //'lineid' => $lineid,
    +        );
    +        // Note that $action and $object may have been modified by hook
    +        $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action);
    +        if (empty($reshook)) {
    +            $formconfirm .= $hookmanager->resPrint;
    +        } elseif ($reshook > 0) {
    +            $formconfirm = $hookmanager->resPrint;
    +        }
     
    -			$text=$langs->trans('ConfirmValidateContract',$numref);
    +        // Print form confirm
    +        print $formconfirm;
     
    -			print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("ValidateAContract"),$text,"confirm_valid",'',0,1);
    -
    -		}
    -
    -		/*
    -         * Confirmation de la fermeture
    -         */
    -		if ($action == 'close')
    -		{
    -			print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("CloseAContract"),$langs->trans("ConfirmCloseContract"),"confirm_close",'',0,1);
    -
    -		}
    -		if ($action == 'activate')
    -		{
    -			print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("ActivateAllOnContract"),$langs->trans("ConfirmActivateAllOnContract"),"confirm_activate",'',0,1);
    -
    -		}
    -
    -		/*
    +        /*
              *   Contrat
              */
     		if (! empty($object->brouillon) && $user->rights->contrat->creer)
    @@ -1392,12 +1393,6 @@ else
     			print '<input type="hidden" name="action" value="setremise">';
     		}
     
    -		// Clone confirmation
    -		if ($action == 'clone') {
    -			$formquestion = array(array('type' => 'other','name' => 'socid','label' => $langs->trans("SelectThirdParty"),'value' => $form->select_company(GETPOST('socid', 'int'), 'socid', '(s.client=1 OR s.client=2 OR s.client=3)')));
    -			print $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('CloneContract'), $langs->trans('ConfirmCloneContract', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
    -		}
    -
     		// Contract card
     
     		$linkback = '<a href="'.DOL_URL_ROOT.'/contrat/list.php?restore_lastsearch_values=1'.(! empty($socid)?'&socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
    @@ -1464,7 +1459,7 @@ else
     		print '<div class="underbanner clearboth"></div>';
     
     
    -		print '<table class="border" width="100%">';
    +		print '<table class="border tableforfield" width="100%">';
     
     		// Ligne info remises tiers
     		print '<tr><td class="titlefield">'.$langs->trans('Discount').'</td><td colspan="3">';
    @@ -1516,7 +1511,7 @@ else
     		}
     
     
    -		$colorb='666666';
    +		$colorb = '666666';
     
     		$arrayothercontracts=$object->getListOfContracts('others');
     
    @@ -1630,7 +1625,7 @@ else
     					// Quantite
     					print '<td align="center">'.$objp->qty.'</td>';
     					// Unit
    -					if($conf->global->PRODUCT_USE_UNITS) print '<td align="left">'.$langs->trans($object->lines[$cursorline-1]->getLabelOfUnit()).'</td>';
    +					if($conf->global->PRODUCT_USE_UNITS) print '<td class="left">'.$langs->trans($object->lines[$cursorline-1]->getLabelOfUnit()).'</td>';
     					// Remise
     					if ($objp->remise_percent > 0)
     					{
    @@ -1757,7 +1752,7 @@ else
     					print '<td align="center"><input size="2" type="text" name="elqty" value="'.$objp->qty.'"></td>';
     					if ($conf->global->PRODUCT_USE_UNITS)
     					{
    -						print '<td align="left">';
    +						print '<td class="left">';
     						print $form->selectUnits($objp->fk_unit, "unit");
     						print '</td>';
     					}
    @@ -1782,9 +1777,9 @@ else
     					print '<tr class="oddeven">';
     					print '<td colspan="'.$colspan.'">';
     					print $langs->trans("DateStartPlanned").' ';
    -					$form->select_date($db->jdate($objp->date_debut),"date_start_update",$usehm,$usehm,($db->jdate($objp->date_debut)>0?0:1),"update");
    +					print $form->selectDate($db->jdate($objp->date_debut), "date_start_update", $usehm, $usehm, ($db->jdate($objp->date_debut)>0?0:1), "update");
     					print ' &nbsp;&nbsp;'.$langs->trans("DateEndPlanned").' ';
    -					$form->select_date($db->jdate($objp->date_fin),"date_end_update",$usehm,$usehm,($db->jdate($objp->date_fin)>0?0:1),"update");
    +					print $form->selectDate($db->jdate($objp->date_fin), "date_end_update", $usehm, $usehm, ($db->jdate($objp->date_fin)>0?0:1), "update");
     					print '</td>';
     					print '</tr>';
     
    @@ -1967,10 +1962,10 @@ else
     
     				print '<tr class="oddeven">';
     				print '<td class="nohover">'.$langs->trans("DateServiceActivate").'</td><td class="nohover">';
    -				print $form->select_date($dateactstart,'',$usehm,$usehm,'',"active",1,0,1);
    +				print $form->selectDate($dateactstart, '', $usehm, $usehm, '', "active", 1, 0);
     				print '</td>';
     				print '<td class="nohover">'.$langs->trans("DateEndPlanned").'</td><td class="nohover">';
    -				print $form->select_date($dateactend,"end",$usehm,$usehm,'',"active",1,0,1);
    +				print $form->selectDate($dateactend, "end", $usehm, $usehm, '', "active", 1, 0);
     				print '</td>';
     				print '<td class="center nohover">';
     				print '</td>';
    @@ -2028,7 +2023,7 @@ else
     					if ($objp->statut == 4)
     					{
     						print $langs->trans("DateEndReal").' ';
    -						print $form->select_date($dateactend,"end",$usehm,$usehm,($objp->date_fin_reelle>0?0:1),"closeline",1,1,1);
    +						print $form->selectDate($dateactend, "end", $usehm, $usehm, ($objp->date_fin_reelle>0?0:1), "closeline", 1, 1);
     					}
     				}
     				print '</td>';
    @@ -2068,10 +2063,6 @@ else
     			print '<div class="div-table-responsive-no-min">';
     			print '<table id="tablelines" class="noborder noshadow" width="100%">';	// Array with (n*2)+1 lines
     
    -			// Trick to not show product entries
    -			$savproductenabled=$conf->product->enabled;
    -			if (empty($conf->global->CONTRACT_SUPPORT_PRODUCTS)) $conf->product->enabled = 0;
    -
     			// Form to add new line
     	   		if ($action != 'editline')
     			{
    @@ -2084,9 +2075,6 @@ else
     				$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
     			}
     
    -			// Restore correct setup
    -			$conf->product->enabled = $savproductenabled;
    -
     			print '</table>';
     			print '</div>';
     			print '</form>';
    @@ -2113,32 +2101,32 @@ else
     					if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->commande->order_advance->send)) {
     						print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle">' . $langs->trans('SendMail') . '</a></div>';
     					} else
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendMail') . '</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">' . $langs->trans('SendMail') . '</a></div>';
     				}
     
     				if ($object->statut == 0 && $nbofservices)
     				{
     					if ($user->rights->contrat->creer) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=valid">'.$langs->trans("Validate").'</a></div>';
    -					else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("Validate").'</a></div>';
    +					else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("Validate").'</a></div>';
     				}
     				if ($object->statut == 1)
     				{
     					if ($user->rights->contrat->creer) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=reopen">'.$langs->trans("Modify").'</a></div>';
    -					else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("Modify").'</a></div>';
    +					else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("Modify").'</a></div>';
     				}
     
     				if (! empty($conf->facture->enabled) && $object->statut > 0)
     				{
     					$langs->load("bills");
     					if ($user->rights->facture->creer) print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/compta/facture/card.php?action=create&amp;origin='.$object->element.'&amp;originid='.$object->id.'&amp;socid='.$object->thirdparty->id.'">'.$langs->trans("CreateBill").'</a></div>';
    -					else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("CreateBill").'</a></div>';
    +					else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("CreateBill").'</a></div>';
     				}
     
     				if (! empty($conf->commande->enabled) && $object->statut > 0 && $object->nbofservicesclosed < $nbofservices)
     				{
     					$langs->load("orders");
     					if ($user->rights->commande->creer) print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/commande/card.php?action=create&amp;origin='.$object->element.'&amp;originid='.$object->id.'&amp;socid='.$object->thirdparty->id.'">'.$langs->trans("CreateOrder").'</a></div>';
    -					else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("CreateOrder").'</a></div>';
    +					else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("CreateOrder").'</a></div>';
     				}
     
     				// Clone
    @@ -2154,7 +2142,7 @@ else
     					}
     					else
     					{
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">'.$langs->trans("ActivateAllContracts").'</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("ActivateAllContracts").'</a></div>';
     					}
     				}
     				if ($object->nbofservicesclosed < $nbofservices)
    @@ -2165,7 +2153,7 @@ else
     					}
     					else
     					{
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">'.$langs->trans("CloseAllContracts").'</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("CloseAllContracts").'</a></div>';
     					}
     
     					//if (! $numactive)
    @@ -2173,7 +2161,7 @@ else
     					//}
     					//else
     					//{
    -					//	print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("CloseRefusedBecauseOneServiceActive").'">'.$langs->trans("Close").'</a></div>';
    +					//	print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("CloseRefusedBecauseOneServiceActive").'">'.$langs->trans("Close").'</a></div>';
     					//}
     				}
     
    @@ -2186,7 +2174,7 @@ else
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans("Delete").'</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans("Delete").'</a></div>';
     				}
     			}
     
    diff --git a/htdocs/contrat/class/api_contracts.class.php b/htdocs/contrat/class/api_contracts.class.php
    index 1bb17eb4352..585d5399771 100644
    --- a/htdocs/contrat/class/api_contracts.class.php
    +++ b/htdocs/contrat/class/api_contracts.class.php
    @@ -1,6 +1,7 @@
     <?php
     /* Copyright (C) 2015   Jean-François Ferry     <jfefe@aternatik.fr>
      * Copyright (C) 2016	Laurent Destailleur		<eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -55,13 +56,13 @@ class Contracts extends DolibarrApi
         }
     
         /**
    -     * Get properties of a contrat object
    +     * Get properties of a contract object
          *
    -     * Return an array with contrat informations
    +     * Return an array with contract informations
          *
          * @param       int         $id         ID of contract
          * @return 	array|mixed data without useless information
    -	 *
    +     *
          * @throws 	RestException
          */
         function get($id)
    @@ -100,7 +101,8 @@ class Contracts extends DolibarrApi
          *
     	 * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -214,27 +216,28 @@ class Contracts extends DolibarrApi
          *
          * @url	GET {id}/lines
          *
    -     * @return int
    +     * @return array
          */
    -    function getLines($id) {
    -      if(! DolibarrApiAccess::$user->rights->contrat->lire) {
    -		  	throw new RestException(401);
    -		  }
    +    function getLines($id)
    +    {
    +        if(! DolibarrApiAccess::$user->rights->contrat->lire) {
    +            throw new RestException(401);
    +		}
     
    -      $result = $this->contract->fetch($id);
    -      if( ! $result ) {
    -         throw new RestException(404, 'Contract not found');
    -      }
    +        $result = $this->contract->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Contract not found');
    +        }
     
    -		  if( ! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
    -			  throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -      }
    -      $this->contract->getLinesArray();
    -      $result = array();
    -      foreach ($this->contract->lines as $line) {
    -        array_push($result,$this->_cleanObjectDatas($line));
    -      }
    -      return $result;
    +		if( ! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
    +		    throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
    +        $this->contract->getLinesArray();
    +        $result = array();
    +        foreach ($this->contract->lines as $line) {
    +            array_push($result, $this->_cleanObjectDatas($line));
    +        }
    +        return $result;
         }
     
         /**
    @@ -245,48 +248,48 @@ class Contracts extends DolibarrApi
          *
          * @url	POST {id}/lines
          *
    -     * @return int
    +     * @return int|bool
          */
    -    function postLine($id, $request_data = null) {
    -      if(! DolibarrApiAccess::$user->rights->contrat->creer) {
    -		  	throw new RestException(401);
    -		  }
    +    function postLine($id, $request_data = null)
    +    {
    +        if(! DolibarrApiAccess::$user->rights->contrat->creer) {
    +			throw new RestException(401);
    +		}
     
    -      $result = $this->contract->fetch($id);
    -      if( ! $result ) {
    -         throw new RestException(404, 'Contract not found');
    -      }
    +        $result = $this->contract->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Contract not found');
    +        }
     
    -		  if( ! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
    -			  throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -      }
    -			$request_data = (object) $request_data;
    -      $updateRes = $this->contract->addline(
    -                        $request_data->desc,
    -                        $request_data->subprice,
    -                        $request_data->qty,
    -                        $request_data->tva_tx,
    -                        $request_data->localtax1_tx,
    -                        $request_data->localtax2_tx,
    -                        $request_data->fk_product,
    -                        $request_data->remise_percent,
    -                        $request_data->date_start,			// date_start = date planned start, date ouverture = date_start_real
    -                        $request_data->date_end,			// date_end = date planned end, date_cloture = date_end_real
    -                        $request_data->HT,
    -      					$request_data->subprice_excl_tax,
    -      					$request_data->info_bits,
    -                        $request_data->fk_fournprice,
    -				      	$request_data->pa_ht,
    -      					$request_data->array_options,
    -      					$request_data->fk_unit,
    -      					$request_data->rang
    -      );
    +		if( ! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
    +		$request_data = (object) $request_data;
    +        $updateRes = $this->contract->addline(
    +            $request_data->desc,
    +            $request_data->subprice,
    +            $request_data->qty,
    +            $request_data->tva_tx,
    +            $request_data->localtax1_tx,
    +            $request_data->localtax2_tx,
    +            $request_data->fk_product,
    +            $request_data->remise_percent,
    +            $request_data->date_start,			// date_start = date planned start, date ouverture = date_start_real
    +            $request_data->date_end,			// date_end = date planned end, date_cloture = date_end_real
    +            $request_data->HT,
    +      		$request_data->subprice_excl_tax,
    +      		$request_data->info_bits,
    +            $request_data->fk_fournprice,
    +			$request_data->pa_ht,
    +      		$request_data->array_options,
    +      		$request_data->fk_unit,
    +      		$request_data->rang
    +        );
     
    -      if ($updateRes > 0) {
    -        return $updateRes;
    -
    -      }
    -      return false;
    +        if ($updateRes > 0) {
    +            return $updateRes;
    +        }
    +        return false;
         }
     
         /**
    @@ -298,52 +301,53 @@ class Contracts extends DolibarrApi
          *
          * @url	PUT {id}/lines/{lineid}
          *
    -     * @return object
    +     * @return array|bool
          */
    -    function putLine($id, $lineid, $request_data = null) {
    -      if(! DolibarrApiAccess::$user->rights->contrat->creer) {
    -		  	throw new RestException(401);
    -		  }
    -
    -      $result = $this->contract->fetch($id);
    -      if( ! $result ) {
    -         throw new RestException(404, 'Contrat not found');
    -      }
    -
    -		if( ! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
    -			  throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +    function putLine($id, $lineid, $request_data = null)
    +    {
    +        if(! DolibarrApiAccess::$user->rights->contrat->creer) {
    +			throw new RestException(401);
     		}
     
    -      $request_data = (object) $request_data;
    +        $result = $this->contract->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Contrat not found');
    +        }
     
    -      $updateRes = $this->contract->updateline(
    -                        $lineid,
    -                        $request_data->desc,
    -                        $request_data->subprice,
    -                        $request_data->qty,
    -                        $request_data->remise_percent,
    -                        $request_data->date_ouveture_prevue,
    -                        $request_data->date_fin_validite,
    -      					$request_data->tva_tx,
    -                        $request_data->localtax1_tx,
    -                        $request_data->localtax2_tx,
    -                        $request_data->date_ouverture,
    -                        $request_data->date_cloture,
    -      					'HT',
    -                        $request_data->info_bits,
    -                        $request_data->fk_fourn_price,
    -                        $request_data->pa_ht,
    -                        $request_data->array_options,
    -                        $request_data->fk_unit
    -      );
    +		if( ! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +		}
     
    -      if ($updateRes > 0) {
    -        $result = $this->get($id);
    -        unset($result->line);
    -        return $this->_cleanObjectDatas($result);
    -      }
    +        $request_data = (object) $request_data;
     
    -      return false;
    +        $updateRes = $this->contract->updateline(
    +            $lineid,
    +            $request_data->desc,
    +            $request_data->subprice,
    +            $request_data->qty,
    +            $request_data->remise_percent,
    +            $request_data->date_ouveture_prevue,
    +            $request_data->date_fin_validite,
    +      		$request_data->tva_tx,
    +            $request_data->localtax1_tx,
    +            $request_data->localtax2_tx,
    +            $request_data->date_ouverture,
    +            $request_data->date_cloture,
    +      		'HT',
    +            $request_data->info_bits,
    +            $request_data->fk_fourn_price,
    +            $request_data->pa_ht,
    +            $request_data->array_options,
    +            $request_data->fk_unit
    +        );
    +
    +        if ($updateRes > 0) {
    +            $result = $this->get($id);
    +            unset($result->line);
    +            return $this->_cleanObjectDatas($result);
    +        }
    +
    +        return false;
         }
     
         /**
    @@ -357,15 +361,16 @@ class Contracts extends DolibarrApi
          *
          * @url	PUT {id}/lines/{lineid}/activate
          *
    -     * @return object
    +     * @return array|bool
          */
    -    function activateLine($id, $lineid, $datestart, $dateend = null, $comment = null) {
    +    function activateLine($id, $lineid, $datestart, $dateend = null, $comment = null)
    +    {
         	if(! DolibarrApiAccess::$user->rights->contrat->creer) {
         		throw new RestException(401);
         	}
     
         	$result = $this->contract->fetch($id);
    -    	if( ! $result ) {
    +    	if (! $result) {
         		throw new RestException(404, 'Contrat not found');
         	}
     
    @@ -394,15 +399,16 @@ class Contracts extends DolibarrApi
          *
          * @url	PUT {id}/lines/{lineid}/unactivate
          *
    -     * @return object
    +     * @return array|bool
          */
    -    function unactivateLine($id, $lineid, $datestart, $comment = null) {
    -    	if(! DolibarrApiAccess::$user->rights->contrat->creer) {
    +    function unactivateLine($id, $lineid, $datestart, $comment = null)
    +    {
    +    	if (! DolibarrApiAccess::$user->rights->contrat->creer) {
         		throw new RestException(401);
         	}
     
         	$result = $this->contract->fetch($id);
    -    	if( ! $result ) {
    +    	if (! $result) {
         		throw new RestException(404, 'Contrat not found');
         	}
     
    @@ -436,51 +442,53 @@ class Contracts extends DolibarrApi
          * @throws 401
          * @throws 404
          */
    -    function deleteLine($id, $lineid) {
    -      if(! DolibarrApiAccess::$user->rights->contrat->creer) {
    -		  	throw new RestException(401);
    -		  }
    +    function deleteLine($id, $lineid)
    +    {
    +        if (! DolibarrApiAccess::$user->rights->contrat->creer) {
    +			throw new RestException(401);
    +		}
     
    -      $result = $this->contract->fetch($id);
    -      if( ! $result ) {
    -         throw new RestException(404, 'Contrat not found');
    -      }
    +        $result = $this->contract->fetch($id);
    +        if (! $result) {
    +            throw new RestException(404, 'Contrat not found');
    +        }
     
    -		  if( ! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
    -			  throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -      }
    +		if (! DolibarrApi::_checkAccessToResource('contrat', $this->contract->id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
     
    -      // TODO Check the lineid $lineid is a line of ojbect
    +        // TODO Check the lineid $lineid is a line of object
     
    -      $updateRes = $this->contract->deleteline($lineid, DolibarrApiAccess::$user);
    -      if ($updateRes > 0) {
    -        return $this->get($id);
    -      }
    -      else
    -      {
    -      	throw new RestException(405, $this->contract->error);
    -      }
    +        $updateRes = $this->contract->deleteline($lineid, DolibarrApiAccess::$user);
    +        if ($updateRes > 0) {
    +            return $this->get($id);
    +        }
    +        else
    +        {
    +      	    throw new RestException(405, $this->contract->error);
    +        }
         }
     
         /**
          * Update contract general fields (won't touch lines of contract)
          *
    -     * @param int   $id             Id of contrat to update
    +     * @param int   $id             Id of contract to update
          * @param array $request_data   Datas
          *
          * @return int
          */
    -    function put($id, $request_data = null) {
    -      if(! DolibarrApiAccess::$user->rights->contrat->creer) {
    -		  	throw new RestException(401);
    -		  }
    +    function put($id, $request_data = null)
    +    {
    +        if (! DolibarrApiAccess::$user->rights->contrat->creer) {
    +			throw new RestException(401);
    +		}
     
             $result = $this->contract->fetch($id);
    -        if( ! $result ) {
    +        if (! $result) {
                 throw new RestException(404, 'Contrat not found');
             }
     
    -		if( ! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
    +		if (! DolibarrApi::_checkAccessToResource('contrat', $this->contract->id)) {
     			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
     		}
             foreach($request_data as $field => $value) {
    @@ -507,19 +515,19 @@ class Contracts extends DolibarrApi
          */
         function delete($id)
         {
    -        if(! DolibarrApiAccess::$user->rights->contrat->supprimer) {
    +        if (! DolibarrApiAccess::$user->rights->contrat->supprimer) {
     			throw new RestException(401);
     		}
             $result = $this->contract->fetch($id);
    -        if( ! $result ) {
    +        if (! $result) {
                 throw new RestException(404, 'Contract not found');
             }
     
    -		if( ! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
    +		if (! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
     			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
     		}
     
    -        if( ! $this->contract->delete(DolibarrApiAccess::$user)) {
    +        if (! $this->contract->delete(DolibarrApiAccess::$user)) {
                 throw new RestException(500, 'Error when delete contract : '.$this->contract->error);
             }
     
    @@ -529,11 +537,10 @@ class Contracts extends DolibarrApi
                     'message' => 'Contract deleted'
                 )
             );
    -
         }
     
         /**
    -     * Validate an contract
    +     * Validate a contract
          *
          * @param   int $id             Contract ID
          * @param   int $notrigger      1=Does not execute triggers, 0= execute triggers
    @@ -550,15 +557,15 @@ class Contracts extends DolibarrApi
          */
         function validate($id, $notrigger=0)
         {
    -        if(! DolibarrApiAccess::$user->rights->contrat->creer) {
    +        if (! DolibarrApiAccess::$user->rights->contrat->creer) {
     			throw new RestException(401);
     		}
             $result = $this->contract->fetch($id);
    -        if( ! $result ) {
    +        if (! $result) {
                 throw new RestException(404, 'Contract not found');
             }
     
    -		if( ! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
    +		if (! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
     			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
     		}
     
    @@ -596,15 +603,15 @@ class Contracts extends DolibarrApi
          */
         function close($id, $notrigger=0)
         {
    -    	if(! DolibarrApiAccess::$user->rights->contrat->creer) {
    +    	if (! DolibarrApiAccess::$user->rights->contrat->creer) {
         		throw new RestException(401);
         	}
         	$result = $this->contract->fetch($id);
    -    	if( ! $result ) {
    +    	if (! $result) {
         		throw new RestException(404, 'Contract not found');
         	}
     
    -    	if( ! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
    +    	if (! DolibarrApi::_checkAccessToResource('contrat',$this->contract->id)) {
         		throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
         	}
     
    @@ -632,7 +639,8 @@ class Contracts extends DolibarrApi
          * @param   object  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    @@ -665,7 +673,6 @@ class Contracts extends DolibarrApi
                 if (!isset($data[$field]))
                     throw new RestException(400, "$field field missing");
                 $contrat[$field] = $data[$field];
    -
             }
             return $contrat;
         }
    diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php
    index dc94d57809f..5929ec034d1 100644
    --- a/htdocs/contrat/class/contrat.class.php
    +++ b/htdocs/contrat/class/contrat.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012	Destailleur Laurent		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2014	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2006		Andre Cianfarani		<acianfa@free.fr>
      * Copyright (C) 2008		Raphael Bertrand		<raphael.bertrand@resultic.fr>
      * Copyright (C) 2010-2016	Juanjo Menent			<jmenent@2byte.es>
    @@ -9,6 +9,7 @@
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2014-2015	Marcos García			<marcosgdf@gmail.com>
      * Copyright (C) 2018   	Nicolas ZABOURI			<info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      * Copyright (C) 2015-2018	Ferran Marcet			<fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -41,16 +42,37 @@ require_once DOL_DOCUMENT_ROOT . '/margin/lib/margins.lib.php';
      */
     class Contrat extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='contrat';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='contrat';
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
     	public $table_element_line='contratdet';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element='fk_contrat';
    -    public $picto='contract';
    +
    +    /**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto='contract';
    +
         /**
          * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
          * @var int
          */
         public $ismultientitymanaged = 1;
    +
         /**
          * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
          * @var integer
    @@ -66,27 +88,29 @@ class Contrat extends CommonObject
     	 * Customer reference of the contract
     	 * @var string
     	 */
    -	var $ref_customer;
    +	public $ref_customer;
     
     	/**
     	 * Supplier reference of the contract
     	 * @var string
     	 */
    -	var $ref_supplier;
    +	public $ref_supplier;
     
     	/**
     	 * Client id linked to the contract
     	 * @var int
     	 */
    -	var $socid;
    -	var $societe;		// Objet societe
    +	public $socid;
    +
    +	public $societe;		// Objet societe
     
     	/**
     	 * Status of the contract
     	 * @var int
     	 */
    -	var $statut=0;		// 0=Draft,
    -	var $product;
    +	public $statut=0;		// 0=Draft,
    +
    +	public $product;
     
     	/**
     	 * @var int		Id of user author of the contract
    @@ -113,7 +137,7 @@ class Contrat extends CommonObject
     	/**
     	 * @var int		Date of creation
     	 */
    -	var $date_creation;
    +	public $date_creation;
     
     	/**
     	 * @var int		Date of last modification. Not filled until you call ->info()
    @@ -123,34 +147,34 @@ class Contrat extends CommonObject
     	/**
     	 * @var int		Date of validation
     	 */
    -	var $date_validation;
    +	public $date_validation;
     
     	/**
     	 * @var int		Date when contract was signed
     	 */
    -	var $date_contrat;
    +	public $date_contrat;
     
     	/**
     	 * @var int		Date of contract closure
     	 * @deprecated we close contract lines, not a contract
     	 */
    -	var $date_cloture;
    +	public $date_cloture;
     
    -	var $commercial_signature_id;
    -	var $commercial_suivi_id;
    +	public $commercial_signature_id;
    +	public $commercial_suivi_id;
     
     	/**
     	 * @deprecated Use fk_project instead
     	 * @see fk_project
     	 */
    -	var $fk_projet;
    +	public $fk_projet;
     
    -	var $extraparams=array();
    +	public $extraparams=array();
     
     	/**
     	 * @var ContratLigne[]		Contract lines
     	 */
    -	var $lines=array();
    +	public $lines=array();
     
     	/**
     	 * Maps ContratLigne IDs to $this->lines indexes
    @@ -226,18 +250,20 @@ class Contrat extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Activate a contract line
     	 *
     	 *  @param	User		$user       Objet User who activate contract
     	 *  @param  int			$line_id    Id of line to activate
    -	 *  @param  int			$date       Date d'ouverture
    -	 *  @param  int|string	$date_end   Date fin prevue
    +	 *  @param  int			$date       Opening date
    +	 *  @param  int|string	$date_end   Expected end date
     	 * 	@param	string		$comment	A comment typed by user
     	 *  @return int         			<0 if KO, >0 if OK
     	 */
     	function active_line($user, $line_id, $date, $date_end='', $comment='')
     	{
    +        // phpcs:enable
     		$result = $this->lines[$this->lines_id_index_mapper[$line_id]]->active_line($user, $date, $date_end, $comment);
     		if ($result < 0)
     		{
    @@ -248,17 +274,19 @@ class Contrat extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Close a contract line
     	 *
     	 *  @param	User		$user       Objet User who close contract
     	 *  @param  int			$line_id    Id of line to close
    -	 *  @param  int			$date_end	Date end
    +	 *  @param  int			$date_end	End date
     	 * 	@param	string		$comment	A comment typed by user
     	 *  @return int         			<0 if KO, >0 if OK
     	 */
     	function close_line($user, $line_id, $date_end, $comment='')
     	{
    +        // phpcs:enable
     		$result=$this->lines[$this->lines_id_index_mapper[$line_id]]->close_line($user, $date_end, $comment);
     		if ($result < 0)
     		{
    @@ -285,11 +313,11 @@ class Contrat extends CommonObject
     
     		$this->db->begin();
     
    +		$error=0;
    +
     		// Load lines
     		$this->fetch_lines();
     
    -		$error=0;
    -
     		foreach($this->lines as $contratline)
     		{
     			// Open lines not already open
    @@ -510,13 +538,12 @@ class Contrat extends CommonObject
     			$this->db->rollback();
     			return -1;
     		}
    -
     	}
     
     	/**
     	 * Unvalidate a contract
     	 *
    -	 * @param	User	$user      		Objet User
    +	 * @param	User	$user      		Object User
          * @param	int		$notrigger		1=Does not execute triggers, 0=execute triggers
     	 * @return	int						<0 if KO, >0 if OK
     	 */
    @@ -558,7 +585,7 @@ class Contrat extends CommonObject
     			// End call triggers
     		}
     
    -		// Set new ref and define current statut
    +		// Set new ref and define current status
     		if (! $error)
     		{
     			$this->statut=0;
    @@ -617,56 +644,49 @@ class Contrat extends CommonObject
     		$resql = $this->db->query($sql);
     		if ($resql)
     		{
    -			$result = $this->db->fetch_array($resql);
    +			$obj = $this->db->fetch_object($resql);
     
    -			if ($result)
    +			if ($obj)
     			{
    -				$this->id						= $result["rowid"];
    -				$this->ref						= (!isset($result["ref"]) || !$result["ref"]) ? $result["rowid"] : $result["ref"];
    -				$this->ref_customer				= $result["ref_customer"];
    -				$this->ref_supplier				= $result["ref_supplier"];
    -				$this->ref_ext					= $result["ref_ext"];
    -				$this->statut					= $result["statut"];
    -				$this->mise_en_service			= $this->db->jdate($result["datemise"]);
    +				$this->id						= $obj->rowid;
    +				$this->ref						= (!isset($obj->ref) || !$obj->ref) ? $obj->rowid : $obj->ref;
    +				$this->ref_customer				= $obj->ref_customer;
    +				$this->ref_supplier				= $obj->ref_supplier;
    +				$this->ref_ext					= $obj->ref_ext;
    +				$this->statut					= $obj->statut;
    +				$this->mise_en_service			= $this->db->jdate($obj->datemise);
     
    -				$this->date_contrat				= $this->db->jdate($result["datecontrat"]);
    -				$this->date_creation			= $this->db->jdate($result["datecontrat"]);
    +				$this->date_contrat				= $this->db->jdate($obj->datecontrat);
    +				$this->date_creation			= $this->db->jdate($obj->datecontrat);
     
    -				$this->fin_validite				= $this->db->jdate($result["fin_validite"]);
    -				$this->date_cloture				= $this->db->jdate($result["date_cloture"]);
    +				$this->fin_validite				= $this->db->jdate($obj->fin_validite);
    +				$this->date_cloture				= $this->db->jdate($obj->date_cloture);
     
     
    -				$this->user_author_id			= $result["fk_user_author"];
    +				$this->user_author_id			= $obj->fk_user_author;
     
    -				$this->commercial_signature_id	= $result["fk_commercial_signature"];
    -				$this->commercial_suivi_id		= $result["fk_commercial_suivi"];
    +				$this->commercial_signature_id	= $obj->fk_commercial_signature;
    +				$this->commercial_suivi_id		= $obj->fk_commercial_suivi;
     
    -				$this->note_private				= $result["note_private"];
    -				$this->note_public				= $result["note_public"];
    -				$this->modelpdf					= $result["model_pdf"];
    +				$this->note_private				= $obj->note_private;
    +				$this->note_public				= $obj->note_public;
    +				$this->modelpdf					= $obj->model_pdf;
     
    -				$this->fk_projet				= $result["fk_projet"]; // deprecated
    -				$this->fk_project				= $result["fk_projet"];
    +				$this->fk_projet				= $obj->fk_projet; // deprecated
    +				$this->fk_project				= $obj->fk_projet;
     
    -				$this->socid					= $result["fk_soc"];
    -				$this->fk_soc					= $result["fk_soc"];
    +				$this->socid					= $obj->fk_soc;
    +				$this->fk_soc					= $obj->fk_soc;
     
    -				$this->extraparams				= (array) json_decode($result["extraparams"], true);
    +				$this->extraparams				= (array) json_decode($obj->extraparams, true);
     
     				$this->db->free($resql);
     
    -
    -				// Retreive all extrafield
    +				// Retreive all extrafields
     				// fetch optionals attributes and labels
     				$this->fetch_optionals();
     
    -
    -				/*
    -				 * Lines
    -				 */
    -
    -				$this->lines  = array();
    -
    +				// Lines
     				$result=$this->fetch_lines();
     				if ($result < 0)
     				{
    @@ -689,9 +709,9 @@ class Contrat extends CommonObject
     			$this->error=$this->db->error();
     			return -1;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Load lines array into this->lines.
     	 *  This set also nbofserviceswait, nbofservicesopened, nbofservicesexpired and nbofservicesclosed
    @@ -700,6 +720,7 @@ class Contrat extends CommonObject
     	 */
     	function fetch_lines()
     	{
    +        // phpcs:enable
     		$this->nbofserviceswait=0;
     		$this->nbofservicesopened=0;
     		$this->nbofservicesexpired=0;
    @@ -719,7 +740,7 @@ class Contrat extends CommonObject
     		$this->lines=array();
             $pos = 0;
     
    -		// Selectionne les lignes contrats liees a un produit
    +		// Selects contract lines related to a product
     		$sql = "SELECT p.label as product_label, p.description as product_desc, p.ref as product_ref,";
     		$sql.= " d.rowid, d.fk_contrat, d.statut, d.description, d.price_ht, d.vat_src_code, d.tva_tx, d.localtax1_tx, d.localtax2_tx, d.localtax1_type, d.localtax2_type, d.qty, d.remise_percent, d.subprice, d.fk_product_fournisseur_price as fk_fournprice, d.buy_price_ht as pa_ht,";
     		$sql.= " d.total_ht,";
    @@ -753,7 +774,7 @@ class Contrat extends CommonObject
     				$line->id				= $objp->rowid;
     				$line->ref				= $objp->rowid;
     				$line->fk_contrat		= $objp->fk_contrat;
    -				$line->desc				= $objp->description;  // Description ligne
    +				$line->desc				= $objp->description;  // Description line
     				$line->qty				= $objp->qty;
     				$line->vat_src_code 	= $objp->vat_src_code ;
     				$line->tva_tx			= $objp->tva_tx;
    @@ -784,9 +805,9 @@ class Contrat extends CommonObject
     				$line->fk_unit           = $objp->fk_unit;
     
     				$line->ref				= $objp->product_ref;	// deprecated
    -				$line->product_ref		= $objp->product_ref;   // Ref product
    -				$line->product_desc		= $objp->product_desc;  // Description product
    -				$line->product_label	= $objp->product_label; // Label product
    +				$line->product_ref		= $objp->product_ref;   // Product Ref
    +				$line->product_desc		= $objp->product_desc;  // Product Description
    +				$line->product_label	= $objp->product_label; // Product Label
     
     				$line->description		= $objp->description;
     
    @@ -804,7 +825,7 @@ class Contrat extends CommonObject
     				$line->date_fin_prevue   = $this->db->jdate($objp->date_fin_validite);
     				$line->date_fin_reel     = $this->db->jdate($objp->date_cloture);
     
    -				// Retreive all extrafield for contract
    +				// Retreive all extrafields for contract
     				// fetch optionals attributes and labels
     				$line->fetch_optionals();
     
    @@ -910,7 +931,7 @@ class Contrat extends CommonObject
     				$modCodeContract = new $module();
     
     				if (!empty($modCodeContract->code_auto)) {
    -					// Mise a jour ref
    +					// Update ref
     					$sql = 'UPDATE '.MAIN_DB_PREFIX."contrat SET ref='(PROV".$this->id.")' WHERE rowid=".$this->id;
     					if ($this->db->query($sql))
     					{
    @@ -934,14 +955,14 @@ class Contrat extends CommonObject
     				}
     			}
     
    -			// Insert contacts commerciaux ('SALESREPSIGN','contrat')
    +			// Insert business contacts ('SALESREPSIGN','contrat')
     			if (! $error)
     			{
         			$result=$this->add_contact($this->commercial_signature_id,'SALESREPSIGN','internal');
         			if ($result < 0) $error++;
     			}
     
    -			// Insert contacts commerciaux ('SALESREPFOLL','contrat')
    +			// Insert business contacts ('SALESREPFOLL','contrat')
     			if (! $error)
     			{
                     $result=$this->add_contact($this->commercial_suivi_id,'SALESREPFOLL','internal');
    @@ -1389,7 +1410,7 @@ class Contrat extends CommonObject
     			if (empty($remise_percent)) $remise_percent=0;
     
     			$localtaxes_type=getLocalTaxesFromRate($txtva, 0, $this->societe, $mysoc);
    -			
    +
     			// Clean vat code
     			$vat_src_code='';
     			if (preg_match('/\((.*)\)/', $txtva, $reg))
    @@ -1397,7 +1418,7 @@ class Contrat extends CommonObject
     				$vat_src_code = $reg[1];
     				$txtva = preg_replace('/\s*\(.*\)/', '', $txtva);    // Remove code into vatrate.
     			}
    -			
    +
     			// Calcul du total TTC et de la TVA pour la ligne a partir de
     			// qty, pu, remise_percent et txtva
     			// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
    @@ -1692,7 +1713,7 @@ class Contrat extends CommonObject
     			else
     			{
     				$this->db->rollback();
    -				dol_syslog(get_class($this)."::updateligne Erreur -2");
    +				dol_syslog(get_class($this)."::updateline Erreur -2");
     				return -2;
     			}
     		}
    @@ -1700,7 +1721,7 @@ class Contrat extends CommonObject
     		{
     			$this->db->rollback();
     			$this->error=$this->db->error();
    -			dol_syslog(get_class($this)."::updateligne Erreur -1");
    +			dol_syslog(get_class($this)."::updateline Erreur -1");
     			return -1;
     		}
     	}
    @@ -1771,6 +1792,7 @@ class Contrat extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update statut of contract according to services
     	 *
    @@ -1780,6 +1802,7 @@ class Contrat extends CommonObject
     	 */
     	function update_statut($user)
     	{
    +        // phpcs:enable
     		dol_syslog(__METHOD__ . " is deprecated", LOG_WARNING);
     
     		// If draft, we keep it (should not happen)
    @@ -1809,6 +1832,7 @@ class Contrat extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi label of a given contrat status
     	 *
    @@ -1818,33 +1842,34 @@ class Contrat extends CommonObject
     	 */
     	function LibStatut($statut,$mode)
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->load("contracts");
     		if ($mode == 0)
     		{
     			if ($statut == 0) { return $langs->trans("ContractStatusDraft"); }
    -			if ($statut == 1) { return $langs->trans("ContractStatusValidated"); }
    -			if ($statut == 2) { return $langs->trans("ContractStatusClosed"); }
    +			elseif ($statut == 1) { return $langs->trans("ContractStatusValidated"); }
    +			elseif ($statut == 2) { return $langs->trans("ContractStatusClosed"); }
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($statut == 0) { return $langs->trans("ContractStatusDraft"); }
    -			if ($statut == 1) { return $langs->trans("ContractStatusValidated"); }
    -			if ($statut == 2) { return $langs->trans("ContractStatusClosed"); }
    +			elseif ($statut == 1) { return $langs->trans("ContractStatusValidated"); }
    +			elseif ($statut == 2) { return $langs->trans("ContractStatusClosed"); }
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut == 0) { return img_picto($langs->trans('ContractStatusDraft'),'statut0').' '.$langs->trans("ContractStatusDraft"); }
    -			if ($statut == 1) { return img_picto($langs->trans('ContractStatusValidated'),'statut4').' '.$langs->trans("ContractStatusValidated"); }
    -			if ($statut == 2) { return img_picto($langs->trans('ContractStatusClosed'),'statut6').' '.$langs->trans("ContractStatusClosed"); }
    +			elseif ($statut == 1) { return img_picto($langs->trans('ContractStatusValidated'),'statut4').' '.$langs->trans("ContractStatusValidated"); }
    +			elseif ($statut == 2) { return img_picto($langs->trans('ContractStatusClosed'),'statut6').' '.$langs->trans("ContractStatusClosed"); }
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut == 0) { return img_picto($langs->trans('ContractStatusDraft'),'statut0'); }
    -			if ($statut == 1) { return img_picto($langs->trans('ContractStatusValidated'),'statut4'); }
    -			if ($statut == 2) { return img_picto($langs->trans('ContractStatusClosed'),'statut6'); }
    +			elseif ($statut == 1) { return img_picto($langs->trans('ContractStatusValidated'),'statut4'); }
    +			elseif ($statut == 2) { return img_picto($langs->trans('ContractStatusClosed'),'statut6'); }
     		}
    -		if ($mode == 4 || $mode == 6 || $mode == 7)
    +		elseif ($mode == 4 || $mode == 6 || $mode == 7)
     		{
     			$text='';
     			if ($mode == 4)
    @@ -1866,11 +1891,11 @@ class Contrat extends CommonObject
     			$text.=($mode == 7?'</div>':'');
     			return $text;
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut == 0) { return $langs->trans("ContractStatusDraft").' '.img_picto($langs->trans('ContractStatusDraft'),'statut0'); }
    -			if ($statut == 1) { return $langs->trans("ContractStatusValidated").' '.img_picto($langs->trans('ContractStatusValidated'),'statut4'); }
    -			if ($statut == 2) { return $langs->trans("ContractStatusClosed").' '.img_picto($langs->trans('ContractStatusClosed'),'statut6'); }
    +			elseif ($statut == 1) { return $langs->trans("ContractStatusValidated").' '.img_picto($langs->trans('ContractStatusValidated'),'statut4'); }
    +			elseif ($statut == 2) { return $langs->trans("ContractStatusClosed").' '.img_picto($langs->trans('ContractStatusClosed'),'statut6'); }
     		}
     	}
     
    @@ -1983,7 +2008,6 @@ class Contrat extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -1991,6 +2015,7 @@ class Contrat extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of line rowid
     	 *
    @@ -1999,6 +2024,7 @@ class Contrat extends CommonObject
     	 */
     	function array_detail($statut=-1)
     	{
    +        // phpcs:enable
     		$tab=array();
     
     		$sql = "SELECT cd.rowid";
    @@ -2066,6 +2092,7 @@ class Contrat extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *      Load indicators for dashboard (this->nbtodo and this->nbtodolate)
          *
    @@ -2075,6 +2102,7 @@ class Contrat extends CommonObject
     	 */
     	function load_board($user,$mode)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		$this->from = " FROM ".MAIN_DB_PREFIX."contrat as c";
    @@ -2090,7 +2118,7 @@ class Contrat extends CommonObject
     			$sql.= " AND c.rowid = cd.fk_contrat";
     			$sql.= " AND cd.statut = 0";
     		}
    -		if ($mode == 'expired')
    +		elseif ($mode == 'expired')
     		{
     			$sql = "SELECT cd.rowid, cd.date_fin_validite as datefin";
     			$sql.= $this->from;
    @@ -2144,6 +2172,7 @@ class Contrat extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Charge indicateurs this->nb de tableau de bord
     	 *
    @@ -2151,6 +2180,7 @@ class Contrat extends CommonObject
     	 */
     	function load_state_board()
     	{
    +        // phpcs:enable
     		global $conf, $user;
     
     		$this->nb=array();
    @@ -2352,16 +2382,16 @@ class Contrat extends CommonObject
     	 * @param int $notrigger	1=Does not execute triggers, 0= execute triggers
     	 * @return int New id of clone
     	 */
    -	function createFromClone($socid = 0, $notrigger=0) {
    -		global $db, $user, $langs, $conf, $hookmanager;
    +    function createFromClone($socid = 0, $notrigger=0)
    +    {
    +		global $db, $user, $langs, $conf, $hookmanager, $extrafields;
     
     		dol_include_once('/projet/class/project.class.php');
     
    -		$this->context['createfromclone'] = 'createfromclone';
    -
     		$error = 0;
     
     		$this->fetch($this->id);
    +
     		// Load dest object
     		$clonedObj = clone $this;
             $clonedObj->socid = $socid;
    @@ -2372,8 +2402,23 @@ class Contrat extends CommonObject
     
     		$objsoc->fetch($clonedObj->socid);
     
    -		// $clonedObj->id=0;
    +		// Clean data
     		$clonedObj->statut = 0;
    +		// Clean extrafields
    +		if (is_array($clonedObj->array_options) && count($clonedObj->array_options) > 0)
    +		{
    +			$extrafields->fetch_name_optionals_label($this->element);
    +			foreach($clonedObj->array_options as $key => $option)
    +			{
    +				$shortkey = preg_replace('/options_/', '', $key);
    +				//var_dump($shortkey); var_dump($extrafields->attributes[$this->element]['unique'][$shortkey]);
    +				if (! empty($extrafields->attributes[$this->element]['unique'][$shortkey]))
    +				{
    +					//var_dump($key); var_dump($clonedObj->array_options[$key]); exit;
    +					unset($clonedObj->array_options[$key]);
    +				}
    +			}
    +		}
     
     		if (empty($conf->global->CONTRACT_ADDON) || ! is_readable(DOL_DOCUMENT_ROOT . "/core/modules/contract/" . $conf->global->CONTRACT_ADDON . ".php")) {
     			$this->error = 'ErrorSetupNotComplete';
    @@ -2388,11 +2433,12 @@ class Contrat extends CommonObject
     		$clonedObj->ref = $modContract->getNextValue($objsoc, $clonedObj);
     
     		// get extrafields so they will be clone
    -		foreach ( $this->lines as $line ) {
    -			$line->fetch_optionals($line->rowid);
    +		foreach ($this->lines as $line) {
    +			$line->fetch_optionals($line->id);
     		}
     
     		// Create clone
    +		$clonedObj->context['createfromclone'] = 'createfromclone';
     		$result = $clonedObj->create($user);
     		if ($result < 0) {
     			$error ++;
    @@ -2430,10 +2476,9 @@ class Contrat extends CommonObject
     				if ($reshook < 0)
     					$error ++;
     			}
    -
     		}
     
    -		unset($this->context['createfromclone']);
    +		unset($clonedObj->context['createfromclone']);
     
     		// End
     		if (! $error) {
    @@ -2452,79 +2497,128 @@ class Contrat extends CommonObject
      */
     class ContratLigne extends CommonObjectLine
     {
    -    public $element='contratdet';
    -    public $table_element='contratdet';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='contratdet';
     
    -	var $id;
    -	var $ref;
    -	var $tms;
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='contratdet';
    +
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +	/**
    +	 * @var string Ref
    +	 */
    +	public $ref;
    +
    +	public $tms;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_contrat;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_product;
    +
    +	public $statut;					// 0 inactive, 4 active, 5 closed
    +	public $type;						// 0 for product, 1 for service
     
    -	var $fk_contrat;
    -	var $fk_product;
    -	var $statut;					// 0 inactive, 4 active, 5 closed
    -	var $type;						// 0 for product, 1 for service
     	/**
     	 * @var string
     	 * @deprecated
     	 */
    -	var $label;
    +	public $label;
    +
     	/**
     	 * @var string
     	 * @deprecated
     	 */
     	public $libelle;
     
    -	var $description;
    +	/**
    +	 * @var string description
    +	 */
    +	public $description;
     
    -	var $product_ref;
    -	var $product_label;
    +	public $product_ref;
    +	public $product_label;
     
    -	var $date_commande;
    +	public $date_commande;
     
    -	var $date_start;				// date start planned
    -	var $date_start_real;			// date start real
    -	var $date_end;					// date end planned
    -	var $date_end_real;				// date end real
    +	public $date_start;				// date start planned
    +	public $date_start_real;			// date start real
    +	public $date_end;					// date end planned
    +	public $date_end_real;				// date end real
     	// For backward compatibility
    -	var $date_ouverture_prevue;		// date start planned
    -	var $date_ouverture;			// date start real
    -	var $date_fin_validite;			// date end planned
    -	var $date_cloture;				// date end real
    -	var $tva_tx;
    -	var $localtax1_tx;
    -	var $localtax2_tx;
    -	var $localtax1_type;	// Local tax 1 type
    -	var $localtax2_type;	// Local tax 2 type
    -	var $qty;
    -	var $remise_percent;
    -	var $remise;
    -	var $fk_remise_except;
    +	public $date_ouverture_prevue;		// date start planned
    +	public $date_ouverture;			// date start real
    +	public $date_fin_validite;			// date end planned
    +	public $date_cloture;				// date end real
    +	public $tva_tx;
    +	public $localtax1_tx;
    +	public $localtax2_tx;
    +	public $localtax1_type;	// Local tax 1 type
    +	public $localtax2_type;	// Local tax 2 type
    +	public $qty;
    +	public $remise_percent;
    +	public $remise;
     
    -	var $subprice;					// Unit price HT
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_remise_except;
    +
    +	public $subprice;					// Unit price HT
     
     	/**
     	 * @var float
     	 * @deprecated Use $price_ht instead
    -	 * @see price_ht
    +	 * @see $price_ht
     	 */
     	public $price;
     
    -	var $price_ht;
    +	public $price_ht;
     
    -	var $total_ht;
    -	var $total_tva;
    -	var $total_localtax1;
    -	var $total_localtax2;
    -	var $total_ttc;
    +	public $total_ht;
    +	public $total_tva;
    +	public $total_localtax1;
    +	public $total_localtax2;
    +	public $total_ttc;
     
    -	var $fk_fournprice;
    -	var $pa_ht;
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_fournprice;
     
    -	var $info_bits;
    -	var $fk_user_author;
    -	var $fk_user_ouverture;
    -	var $fk_user_cloture;
    -	var $commentaire;
    +	public $pa_ht;
    +
    +	public $info_bits;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_author;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_ouverture;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_cloture;
    +
    +	public $commentaire;
     
     	const STATUS_INITIAL = 0;
     	const STATUS_OPEN = 4;
    @@ -2554,6 +2648,7 @@ class ContratLigne extends CommonObjectLine
     		return $this->LibStatut($this->statut,$mode,((! empty($this->date_fin_validite))?($this->date_fin_validite < dol_now()?1:0):-1));
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return label of a contract line status
     	 *
    @@ -2565,55 +2660,56 @@ class ContratLigne extends CommonObjectLine
     	 */
     	static function LibStatut($statut,$mode,$expired=-1,$moreatt='')
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->load("contracts");
     		if ($mode == 0)
     		{
     			if ($statut == self::STATUS_INITIAL) { return $langs->trans("ServiceStatusInitial"); }
    -			if ($statut == self::STATUS_OPEN && $expired == -1) { return $langs->trans("ServiceStatusRunning"); }
    -			if ($statut == self::STATUS_OPEN && $expired == 0)  { return $langs->trans("ServiceStatusNotLate"); }
    -			if ($statut == self::STATUS_OPEN && $expired == 1)  { return $langs->trans("ServiceStatusLate"); }
    -			if ($statut == self::STATUS_CLOSED) { return $langs->trans("ServiceStatusClosed");  }
    +			elseif ($statut == self::STATUS_OPEN && $expired == -1) { return $langs->trans("ServiceStatusRunning"); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 0)  { return $langs->trans("ServiceStatusNotLate"); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 1)  { return $langs->trans("ServiceStatusLate"); }
    +			elseif ($statut == self::STATUS_CLOSED) { return $langs->trans("ServiceStatusClosed");  }
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($statut == self::STATUS_INITIAL) { return $langs->trans("ServiceStatusInitial"); }
    -			if ($statut == self::STATUS_OPEN && $expired == -1) { return $langs->trans("ServiceStatusRunning"); }
    -			if ($statut == self::STATUS_OPEN && $expired == 0)  { return $langs->trans("ServiceStatusNotLateShort"); }
    -			if ($statut == self::STATUS_OPEN && $expired == 1)  { return $langs->trans("ServiceStatusLateShort"); }
    -			if ($statut == self::STATUS_CLOSED) { return $langs->trans("ServiceStatusClosed");  }
    +			elseif ($statut == self::STATUS_OPEN && $expired == -1) { return $langs->trans("ServiceStatusRunning"); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 0)  { return $langs->trans("ServiceStatusNotLateShort"); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 1)  { return $langs->trans("ServiceStatusLateShort"); }
    +			elseif ($statut == self::STATUS_CLOSED) { return $langs->trans("ServiceStatusClosed");  }
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut == self::STATUS_INITIAL) { return img_picto($langs->trans('ServiceStatusInitial'),'statut0').' '.$langs->trans("ServiceStatusInitial"); }
    -			if ($statut == self::STATUS_OPEN && $expired == -1) { return img_picto($langs->trans('ServiceStatusRunning'),'statut4').' '.$langs->trans("ServiceStatusRunning"); }
    -			if ($statut == self::STATUS_OPEN && $expired == 0)  { return img_picto($langs->trans('ServiceStatusNotLate'),'statut4').' '.$langs->trans("ServiceStatusNotLateShort"); }
    -			if ($statut == self::STATUS_OPEN && $expired == 1)  { return img_picto($langs->trans('ServiceStatusLate'),'statut3').' '.$langs->trans("ServiceStatusLateShort"); }
    -			if ($statut == self::STATUS_CLOSED) { return img_picto($langs->trans('ServiceStatusClosed'),'statut6') .' '.$langs->trans("ServiceStatusClosed"); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == -1) { return img_picto($langs->trans('ServiceStatusRunning'),'statut4').' '.$langs->trans("ServiceStatusRunning"); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 0)  { return img_picto($langs->trans('ServiceStatusNotLate'),'statut4').' '.$langs->trans("ServiceStatusNotLateShort"); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 1)  { return img_picto($langs->trans('ServiceStatusLate'),'statut3').' '.$langs->trans("ServiceStatusLateShort"); }
    +			elseif ($statut == self::STATUS_CLOSED) { return img_picto($langs->trans('ServiceStatusClosed'),'statut6') .' '.$langs->trans("ServiceStatusClosed"); }
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut == self::STATUS_INITIAL) { return img_picto($langs->trans('ServiceStatusInitial'),'statut0',$moreatt); }
    -			if ($statut == self::STATUS_OPEN && $expired == -1) { return img_picto($langs->trans('ServiceStatusRunning'),'statut4',$moreatt); }
    -			if ($statut == self::STATUS_OPEN && $expired == 0)  { return img_picto($langs->trans('ServiceStatusNotLate'),'statut4',$moreatt); }
    -			if ($statut == self::STATUS_OPEN && $expired == 1)  { return img_picto($langs->trans('ServiceStatusLate'),'statut3',$moreatt); }
    -			if ($statut == self::STATUS_CLOSED) { return img_picto($langs->trans('ServiceStatusClosed'),'statut6',$moreatt); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == -1) { return img_picto($langs->trans('ServiceStatusRunning'),'statut4',$moreatt); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 0)  { return img_picto($langs->trans('ServiceStatusNotLate'),'statut4',$moreatt); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 1)  { return img_picto($langs->trans('ServiceStatusLate'),'statut3',$moreatt); }
    +			elseif ($statut == self::STATUS_CLOSED) { return img_picto($langs->trans('ServiceStatusClosed'),'statut6',$moreatt); }
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut == self::STATUS_INITIAL) { return img_picto($langs->trans('ServiceStatusInitial'),'statut0').' '.$langs->trans("ServiceStatusInitial"); }
    -			if ($statut == self::STATUS_OPEN && $expired == -1) { return img_picto($langs->trans('ServiceStatusRunning'),'statut4').' '.$langs->trans("ServiceStatusRunning"); }
    -			if ($statut == self::STATUS_OPEN && $expired == 0)  { return img_picto($langs->trans('ServiceStatusNotLate'),'statut4').' '.$langs->trans("ServiceStatusNotLate"); }
    -			if ($statut == self::STATUS_OPEN && $expired == 1)  { return img_picto($langs->trans('ServiceStatusLate'),'statut3').' '.$langs->trans("ServiceStatusLate"); }
    -			if ($statut == self::STATUS_CLOSED) { return img_picto($langs->trans('ServiceStatusClosed'),'statut6') .' '.$langs->trans("ServiceStatusClosed"); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == -1) { return img_picto($langs->trans('ServiceStatusRunning'),'statut4').' '.$langs->trans("ServiceStatusRunning"); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 0)  { return img_picto($langs->trans('ServiceStatusNotLate'),'statut4').' '.$langs->trans("ServiceStatusNotLate"); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 1)  { return img_picto($langs->trans('ServiceStatusLate'),'statut3').' '.$langs->trans("ServiceStatusLate"); }
    +			elseif ($statut == self::STATUS_CLOSED) { return img_picto($langs->trans('ServiceStatusClosed'),'statut6') .' '.$langs->trans("ServiceStatusClosed"); }
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut == self::STATUS_INITIAL) { return $langs->trans("ServiceStatusInitial").' '.img_picto($langs->trans('ServiceStatusInitial'),'statut0'); }
    -			if ($statut == self::STATUS_OPEN && $expired == -1) { return $langs->trans("ServiceStatusRunning").' '.img_picto($langs->trans('ServiceStatusRunning'),'statut4'); }
    -			if ($statut == self::STATUS_OPEN && $expired == 0)  { return $langs->trans("ServiceStatusNotLateShort").' '.img_picto($langs->trans('ServiceStatusNotLateShort'),'statut4'); }
    -			if ($statut == self::STATUS_OPEN && $expired == 1)  { return $langs->trans("ServiceStatusLateShort").' '.img_picto($langs->trans('ServiceStatusLate'),'statut3'); }
    -			if ($statut == self::STATUS_CLOSED) { return $langs->trans("ServiceStatusClosed").' '.img_picto($langs->trans('ServiceStatusClosed'),'statut6'); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == -1) { return $langs->trans("ServiceStatusRunning").' '.img_picto($langs->trans('ServiceStatusRunning'),'statut4'); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 0)  { return $langs->trans("ServiceStatusNotLateShort").' '.img_picto($langs->trans('ServiceStatusNotLateShort'),'statut4'); }
    +			elseif ($statut == self::STATUS_OPEN && $expired == 1)  { return $langs->trans("ServiceStatusLateShort").' '.img_picto($langs->trans('ServiceStatusLate'),'statut3'); }
    +			elseif ($statut == self::STATUS_CLOSED) { return $langs->trans("ServiceStatusClosed").' '.img_picto($langs->trans('ServiceStatusClosed'),'statut6'); }
     		}
     	}
     
    @@ -2763,7 +2859,6 @@ class ContratLigne extends CommonObjectLine
     				$marginInfos = getMarginInfos($obj->subprice, $obj->remise_percent, $obj->tva_tx, $obj->localtax1_tx, $obj->localtax2_tx, $this->fk_fournprice, $obj->pa_ht);
     				$this->pa_ht = $marginInfos[0];
     				$this->fk_unit     = $obj->fk_unit;
    -
     			}
     			$this->db->free($resql);
     
    @@ -2791,9 +2886,9 @@ class ContratLigne extends CommonObjectLine
     		$error=0;
     
     		// Clean parameters
    -		$this->fk_contrat=trim($this->fk_contrat);
    -		$this->fk_product=trim($this->fk_product);
    -		$this->statut=(int) $this->statut;
    +		$this->fk_contrat = (int) $this->fk_contrat;
    +		$this->fk_product = (int) $this->fk_product;
    +		$this->statut = (int) $this->statut;
     		$this->label=trim($this->label);
     		$this->description=trim($this->description);
     		$this->vat_src_code=trim($this->vat_src_code);
    @@ -2803,7 +2898,7 @@ class ContratLigne extends CommonObjectLine
     		$this->qty=trim($this->qty);
     		$this->remise_percent=trim($this->remise_percent);
     		$this->remise=trim($this->remise);
    -		$this->fk_remise_except=trim($this->fk_remise_except);
    +		$this->fk_remise_except = (int) $this->fk_remise_except;
     		$this->subprice=price2num($this->subprice);
     		$this->price_ht=price2num($this->price_ht);
     		$this->total_ht=trim($this->total_ht);
    @@ -2812,9 +2907,9 @@ class ContratLigne extends CommonObjectLine
     		$this->total_localtax2=trim($this->total_localtax2);
     		$this->total_ttc=trim($this->total_ttc);
     		$this->info_bits=trim($this->info_bits);
    -		$this->fk_user_author=trim($this->fk_user_author);
    -		$this->fk_user_ouverture=trim($this->fk_user_ouverture);
    -		$this->fk_user_cloture=trim($this->fk_user_cloture);
    +		$this->fk_user_author = (int) $this->fk_user_author;
    +		$this->fk_user_ouverture = (int) $this->fk_user_ouverture;
    +		$this->fk_user_cloture = (int) $this->fk_user_cloture;
     		$this->commentaire=trim($this->commentaire);
     		//if (empty($this->subprice)) $this->subprice = 0;
     		if (empty($this->price_ht)) $this->price_ht = 0;
    @@ -2953,15 +3048,14 @@ class ContratLigne extends CommonObjectLine
     			}
     		}
     
    -		if (! $error)
    -		{
    -			if (! $notrigger)
    -			{
    -	            // Call trigger
    -	            $result=$this->call_trigger('LINECONTRACT_UPDATE', $user);
    -	            if ($result < 0) { $error++; $this->db->rollback(); }
    -	            // End call triggers
    -			}
    +		if (! $error && ! $notrigger) {
    +	        // Call trigger
    +	        $result=$this->call_trigger('LINECONTRACT_UPDATE', $user);
    +	        if ($result < 0) {
    +                $error++;
    +                $this->db->rollback();
    +            }
    +	        // End call triggers
     		}
     
     		if (! $error)
    @@ -2976,6 +3070,7 @@ class ContratLigne extends CommonObjectLine
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Mise a jour en base des champs total_xxx de ligne
     	 *		Used by migration process
    @@ -2984,6 +3079,7 @@ class ContratLigne extends CommonObjectLine
     	 */
     	function update_total()
     	{
    +        // phpcs:enable
     		$this->db->begin();
     
     		// Mise a jour ligne en base
    @@ -3092,6 +3188,7 @@ class ContratLigne extends CommonObjectLine
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Activate a contract line
     	 *
    @@ -3103,6 +3200,7 @@ class ContratLigne extends CommonObjectLine
     	 */
     	function active_line($user, $date, $date_end = '', $comment = '')
     	{
    +        // phpcs:enable
     		global $langs, $conf;
     
     		$error = 0;
    @@ -3149,6 +3247,7 @@ class ContratLigne extends CommonObjectLine
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Close a contract line
     	 *
    @@ -3160,6 +3259,7 @@ class ContratLigne extends CommonObjectLine
     	 */
     	function close_line($user, $date_end, $comment = '', $notrigger=0)
     	{
    +        // phpcs:enable
     		global $langs, $conf;
     
     		// Update object
    diff --git a/htdocs/contrat/contact.php b/htdocs/contrat/contact.php
    index 4d403198eb8..d68eee4eb5a 100644
    --- a/htdocs/contrat/contact.php
    +++ b/htdocs/contrat/contact.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005		Patrick Rouillon	<patrick@rouillon.net>
      * Copyright (C) 2005-2009	Destailleur Laurent	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *      \brief      Onglet de gestion des contacts des contrats
      */
     
    -require ("../main.inc.php");
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/contract.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
     require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
    @@ -163,27 +163,26 @@ if ($id > 0 || ! empty($ref))
     		$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
     		// Thirdparty
     	    $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
    -	    // Project
    -	    if (! empty($conf->projet->enabled))
    -	    {
    -	        $langs->load("projects");
    -	        $morehtmlref.='<br>'.$langs->trans('Project') . ' ';
    -	        if ($user->rights->contrat->creer)
    -	        {
    -	            if ($action != 'classify')
    -	                //$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    -	                $morehtmlref.=' : ';
    -	            	if ($action == 'classify') {
    -	                    //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
    -	                    $morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
    -	                    $morehtmlref.='<input type="hidden" name="action" value="classin">';
    -	                    $morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	                    $morehtmlref.=$formproject->select_projects($object->thirdparty->id, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
    -	                    $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    -	                    $morehtmlref.='</form>';
    -	                } else {
    -	                    $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->thirdparty->id, $object->fk_project, 'none', 0, 0, 0, 1);
    -	                }
    +        // Project
    +        if (! empty($conf->projet->enabled)) {
    +            $langs->load("projects");
    +            $morehtmlref.='<br>'.$langs->trans('Project') . ' ';
    +            if ($user->rights->contrat->creer) {
    +                if ($action != 'classify') {
    +                    //$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    +                    $morehtmlref.=' : ';
    +                }
    +                if ($action == 'classify') {
    +	                //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
    +	                $morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
    +	                $morehtmlref.='<input type="hidden" name="action" value="classin">';
    +	                $morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +	                $morehtmlref.=$formproject->select_projects($object->thirdparty->id, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
    +	                $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    +	                $morehtmlref.='</form>';
    +	            } else {
    +	                $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->thirdparty->id, $object->fk_project, 'none', 0, 0, 0, 1);
    +	            }
     	        } else {
     	            if (! empty($object->fk_project)) {
     	                $proj = new Project($db);
    @@ -210,9 +209,12 @@ if ($id > 0 || ! empty($ref))
     
             // Ligne info remises tiers
             print '<tr><td class="titlefield">'.$langs->trans('Discount').'</td><td colspan="3">';
    -        if ($object->thirdparty->remise_percent) print $langs->trans("CompanyHasRelativeDiscount",$object->thirdparty->remise_percent);
    -        else print $langs->trans("CompanyHasNoRelativeDiscount");
    -        $absolute_discount=$object->thirdparty->getAvailableDiscounts();
    +        if ($object->thirdparty->remise_percent) {
    +            print $langs->trans("CompanyHasRelativeDiscount",$object->thirdparty->remise_percent);
    +        } else {
    +            print $langs->trans("CompanyHasNoRelativeDiscount");
    +        }
    +        $absolute_discount = $object->thirdparty->getAvailableDiscounts();
             print '. ';
             if ($absolute_discount) print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->trans("Currency".$conf->currency));
             else print $langs->trans("CompanyHasNoAbsoluteDiscount");
    @@ -238,10 +240,7 @@ if ($id > 0 || ! empty($ref))
     
     		// Contacts lines
     		include DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php';
    -
    -	}
    -	else
    -	{
    +	} else {
     		print "ErrorRecordNotFound";
     	}
     }
    diff --git a/htdocs/contrat/document.php b/htdocs/contrat/document.php
    index 0208d68f80d..7373278df1a 100644
    --- a/htdocs/contrat/document.php
    +++ b/htdocs/contrat/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2005		Marc Barilley / Ocebo	<marc@ocebo.com>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2005		Simon TOSSER			<simon@kornog-computing.com>
      * Copyright (C) 2013		Cédric Salvador			<csalvador@gpcsolutions.fr>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
    @@ -27,7 +27,7 @@
      *       \brief      Page des documents joints sur les contrats
      */
     
    -require ("../main.inc.php");
    +require "../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/core/lib/contract.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    @@ -103,7 +103,7 @@ if ($object->id)
     	dol_fiche_head($head, 'documents', $langs->trans("Contract"), -1, 'contract');
     
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -192,7 +192,6 @@ if ($object->id)
         $permtoedit = $user->rights->contrat->creer;
         $param = '&id=' . $object->id;
         include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
    -
     }
     else
     {
    diff --git a/htdocs/contrat/index.php b/htdocs/contrat/index.php
    index b78bf52b6be..098a1737955 100644
    --- a/htdocs/contrat/index.php
    +++ b/htdocs/contrat/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,9 +24,9 @@
      *		\brief      Home page of contract area
      */
     
    -require ("../main.inc.php");
    -require_once (DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php");
    -require_once (DOL_DOCUMENT_ROOT."/product/class/product.class.php");
    +require "../main.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php";
    +require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php";
     
     // Load translation files required by the page
     $langs->loadLangs(array('products', 'companies', 'contracts'));
    @@ -279,7 +279,6 @@ if (! empty($conf->contrat->enabled) && $user->rights->contrat->lire)
     				print '</tr>';
     				//$tot_ttc+=$obj->total_ttc;
     				$i++;
    -
     			}
     		}
     		else
    @@ -354,7 +353,7 @@ if ($result)
     		print $staticcompany->getNomUrl(1,'',20);
     		print '</td>';
     		print '<td align="center">'.dol_print_date($db->jdate($obj->tms),'dayhour').'</td>';
    -		//print '<td align="left">'.$staticcontrat->LibStatut($obj->statut,2).'</td>';
    +		//print '<td class="left">'.$staticcontrat->LibStatut($obj->statut,2).'</td>';
     		print '<td align="right" width="32">'.($obj->nb_initial>0 ? $obj->nb_initial.$staticcontratligne->LibStatut(0,3):'').'</td>';
     		print '<td align="right" width="32">'.($obj->nb_running>0 ? $obj->nb_running.$staticcontratligne->LibStatut(4,3,0):'').'</td>';
     		print '<td align="right" width="32">'.($obj->nb_expired>0 ? $obj->nb_expired.$staticcontratligne->LibStatut(4,3,1):'').'</td>';
    @@ -365,7 +364,6 @@ if ($result)
     	$db->free($result);
     
     	print "</table>";
    -
     }
     else
     {
    @@ -444,7 +442,6 @@ if ($resql)
     	$db->free();
     
     	print "</table>";
    -
     }
     else
     {
    @@ -523,7 +520,6 @@ if ($resql)
     	$db->free();
     
     	print "</table>";
    -
     }
     else
     {
    @@ -603,7 +599,6 @@ if ($resql)
     	$db->free();
     
     	print "</table>";
    -
     }
     else
     {
    diff --git a/htdocs/contrat/info.php b/htdocs/contrat/info.php
    index 8899351c284..c783ca4948c 100644
    --- a/htdocs/contrat/info.php
    +++ b/htdocs/contrat/info.php
    @@ -22,7 +22,7 @@
      *      \brief      Page des informations d'un contrat
      */
     
    -require ("../main.inc.php");
    +require "../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/contract.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
    diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php
    index b4255046ad4..07c18ad42f9 100644
    --- a/htdocs/contrat/list.php
    +++ b/htdocs/contrat/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Cédric Salvador      <csalvador@gpcsolutions.fr>
      * Copyright (C) 2014      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2015	   Claudio Aschieri		<c.aschieri@19.coop>
    @@ -28,7 +28,7 @@
      *       \brief      Page liste des contrats
      */
     
    -require ("../main.inc.php");
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    @@ -100,7 +100,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('contrat');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
     	'c.ref'=>'Ref',
    @@ -364,6 +364,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
     
     // List of mass actions available
     $arrayofmassactions =  array(
    +	'generate_doc'=>$langs->trans("Generate"),
     	'presend'=>$langs->trans("SendByMail"),
     	'builddoc'=>$langs->trans("PDFMerge"),
     );
    @@ -621,7 +622,7 @@ while ($i < min($num,$limit))
     		if (!empty($obj->note_private) || !empty($obj->note_public))
     		{
     			print ' <span class="note">';
    -			print '<a href="'.DOL_URL_ROOT.'/contrat/note.php?id='.$obj->rowid.'">'.img_picto($langs->trans("ViewPrivateNote"),'object_generic').'</a>';
    +			print '<a href="'.DOL_URL_ROOT.'/contrat/note.php?id='.$obj->rowid.'&save_lastsearch_values=1">'.img_picto($langs->trans("ViewPrivateNote"),'note').'</a>';
     			print '</span>';
     		}
     
    diff --git a/htdocs/contrat/note.php b/htdocs/contrat/note.php
    index c160201191a..193c25e0398 100644
    --- a/htdocs/contrat/note.php
    +++ b/htdocs/contrat/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *      \brief      Fiche de notes sur un contrat
      */
     
    -require ("../main.inc.php");
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/contract.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
     if (! empty($conf->projet->enabled)) {
    @@ -177,7 +177,6 @@ if ($id > 0 || ! empty($ref))
     	include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php';
     
     	dol_fiche_end();
    -
     }
     
     
    diff --git a/htdocs/contrat/services_list.php b/htdocs/contrat/services_list.php
    index 66c56e2a162..2e4fa4ce3da 100644
    --- a/htdocs/contrat/services_list.php
    +++ b/htdocs/contrat/services_list.php
    @@ -1,9 +1,10 @@
     <?php
    -/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
    - * Copyright (C) 2018      Ferran Marcet		<fmarcet@2byte.es>
    +/* Copyright (C) 2001-2004  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2015       Jean-François Ferry     <jfefe@aternatik.fr>
    + * Copyright (C) 2018       Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -25,10 +26,10 @@
      *		\brief      Page to list services in contracts
      */
     
    -require ("../main.inc.php");
    -require_once (DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php");
    -require_once (DOL_DOCUMENT_ROOT."/product/class/product.class.php");
    -require_once (DOL_DOCUMENT_ROOT."/societe/class/societe.class.php");
    +require "../main.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php";
    +require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php";
    +require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php";
     
     // Load translation files required by the page
     $langs->loadLangs(array('products', 'contracts', 'companies'));
    @@ -83,7 +84,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('contratdet');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // Security check
     $contratid = GETPOST('id','int');
    @@ -455,7 +456,7 @@ if (! empty($arrayfields['cd.date_ouverture_prevue']['checked']))
     	print $form->selectarray('filter_opouvertureprevue',$arrayofoperators,$filter_opouvertureprevue,1);
     	print ' ';
     	$filter_dateouvertureprevue=dol_mktime(0,0,0,$opouvertureprevuemonth,$opouvertureprevueday,$opouvertureprevueyear);
    -	print $form->select_date($filter_dateouvertureprevue,'opouvertureprevue',0,0,1,'',1,0,1);
    +	print $form->selectDate($filter_dateouvertureprevue, 'opouvertureprevue', 0, 0, 1, '', 1, 0);
     	print '</td>';
     }
     if (! empty($arrayfields['cd.date_ouverture']['checked']))
    @@ -465,7 +466,7 @@ if (! empty($arrayfields['cd.date_ouverture']['checked']))
     	print $form->selectarray('filter_op1',$arrayofoperators,$filter_op1,1);
     	print ' ';
     	$filter_date1=dol_mktime(0,0,0,$op1month,$op1day,$op1year);
    -	print $form->select_date($filter_date1,'op1',0,0,1,'',1,0,1);
    +	print $form->selectDate($filter_date1, 'op1', 0, 0, 1, '', 1, 0);
     	print '</td>';
     }
     if (! empty($arrayfields['cd.date_fin_validite']['checked']))
    @@ -475,7 +476,7 @@ if (! empty($arrayfields['cd.date_fin_validite']['checked']))
     	print $form->selectarray('filter_op2',$arrayofoperators,$filter_op2,1);
     	print ' ';
     	$filter_date2=dol_mktime(0,0,0,$op2month,$op2day,$op2year);
    -	print $form->select_date($filter_date2,'op2',0,0,1,'',1,0,1);
    +	print $form->selectDate($filter_date2, 'op2', 0, 0, 1, '', 1, 0);
     	print '</td>';
     }
     if (! empty($arrayfields['cd.date_cloture']['checked']))
    @@ -485,7 +486,7 @@ if (! empty($arrayfields['cd.date_cloture']['checked']))
     	print $form->selectarray('filter_opcloture',$arrayofoperators,$filter_opcloture,1);
     	print ' ';
     	$filter_date_cloture=dol_mktime(0,0,0,$opcloturemonth,$opclotureday,$opclotureyear);
    -	print $form->select_date($filter_date_cloture,'opcloture',0,0,1,'',1,0,1);
    +	print $form->selectDate($filter_date_cloture, 'opcloture', 0, 0, 1, '', 1, 0);
     	print '</td>';
     }
     // Extra fields
    @@ -731,8 +732,8 @@ if (isset($totalarray['displaytotalline'])) {
     	while ($i < $totalarray['nbfield']) {
     		$i++;
     		if ($i == 1) {
    -			if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
    -			else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +			if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +			else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     		}
     		elseif ($totalarray['totalhtfield'] == $i) print '<td align="right">'.price($totalarray['totalht']).'</td>';
     		elseif ($totalarray['totalvatfield'] == $i) print '<td align="right">'.price($totalarray['totalvat']).'</td>';
    diff --git a/htdocs/contrat/tpl/linkedobjectblock.tpl.php b/htdocs/contrat/tpl/linkedobjectblock.tpl.php
    index 328be816327..64d40edebc0 100644
    --- a/htdocs/contrat/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/contrat/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2018      Juanjo Menent <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/actions_addupdatedelete.inc.php b/htdocs/core/actions_addupdatedelete.inc.php
    index c7cb1dc6f78..63fc671d797 100644
    --- a/htdocs/core/actions_addupdatedelete.inc.php
    +++ b/htdocs/core/actions_addupdatedelete.inc.php
    @@ -72,7 +72,7 @@ if ($action == 'add' && ! empty($permissiontoadd))
     
     	if (! $error)
     	{
    -		$result=$object->createCommon($user);
    +		$result=$object->create($user);
     		if ($result > 0)
     		{
     			// Creation OK
    @@ -127,7 +127,7 @@ if ($action == 'update' && ! empty($permissiontoadd))
     
     	if (! $error)
     	{
    -		$result=$object->updateCommon($user);
    +		$result=$object->update($user);
     		if ($result > 0)
     		{
     			$action='view';
    @@ -149,6 +149,7 @@ if ($action == 'update' && ! empty($permissiontoadd))
     if ($action == "update_extras" && ! empty($permissiontoadd))
     {
     	$object->fetch(GETPOST('id','int'));
    +
     	$attributekey = GETPOST('attribute','alpha');
     	$attributekeylong = 'options_'.$attributekey;
     	$object->array_options['options_'.$attributekey] = GETPOST($attributekeylong,' alpha');
    @@ -169,7 +170,13 @@ if ($action == "update_extras" && ! empty($permissiontoadd))
     // Action to delete
     if ($action == 'confirm_delete' && ! empty($permissiontodelete))
     {
    -	$result=$object->deleteCommon($user);
    +    if (! ($object->id > 0))
    +    {
    +        dol_print_error('', 'Error, object must be fetched before being deleted');
    +        exit;
    +    }
    +
    +	$result=$object->delete($user);
     	if ($result > 0)
     	{
     		// Delete OK
    @@ -195,7 +202,7 @@ if ($action == 'confirm_clone' && $confirm == 'yes' && ! empty($permissiontoadd)
     	{
     		if ($object->id > 0)
     		{
    -			// Because createFromClone modifies the object, we must clone it so that we can restore it later
    +			// Because createFromClone modifies the object, we must clone it so that we can restore it later if error
     			$orig = clone $object;
     
     			$result=$object->createFromClone($user, $object->id);
    diff --git a/htdocs/core/actions_extrafields.inc.php b/htdocs/core/actions_extrafields.inc.php
    index 6b6d40acd9c..bae5001b256 100644
    --- a/htdocs/core/actions_extrafields.inc.php
    +++ b/htdocs/core/actions_extrafields.inc.php
    @@ -29,7 +29,7 @@ $mesg=array();
     
     $extrasize=GETPOST('size','int');
     $type=GETPOST('type','alpha');
    -$param=GETPOST('param','alpha');;
    +$param=GETPOST('param','alpha');
     
     if ($type=='double' && strpos($extrasize,',')===false) $extrasize='24,8';
     if ($type=='date')     $extrasize='';
    @@ -178,10 +178,12 @@ if ($action == 'add')
                     	(GETPOST('alwayseditable', 'alpha')?1:0),
                     	(GETPOST('perms', 'alpha')?GETPOST('perms', 'alpha'):''),
                     	$visibility,
    -					0,
    +					GETPOST('help','alpha'),
                         GETPOST('computed_value','alpha'),
                     	(GETPOST('entitycurrentorall', 'alpha')?0:''),
    -                	GETPOST('langfile', 'alpha')
    +                    GETPOST('langfile', 'alpha'),
    +                    1,
    +                    (GETPOST('totalizable', 'alpha')?1:0)
                     );
         			if ($result > 0)
         			{
    @@ -331,7 +333,7 @@ if ($action == 'update')
         			$visibility = GETPOST('list', 'alpha');
         			if ($type == 'separate') $visibility=3;
     
    -    			$result=$extrafields->update(
    +                $result=$extrafields->update(
         				GETPOST('attrname', 'alpha'),
         				GETPOST('label', 'alpha'),
         				$type,
    @@ -344,11 +346,13 @@ if ($action == 'update')
         				(GETPOST('alwayseditable', 'alpha')?1:0),
         				(GETPOST('perms', 'alpha')?GETPOST('perms', 'alpha'):''),
                     	$visibility,
    -					0,
    +					GETPOST('help','alpha'),
         			    GETPOST('default_value','alpha'),
         				GETPOST('computed_value','alpha'),
         				(GETPOST('entitycurrentorall', 'alpha')?0:''),
    -    				GETPOST('langfile')
    +                    GETPOST('langfile'),
    +                    1,
    +                    (GETPOST('totalizable', 'alpha')?1:0)
         			);
         			if ($result > 0)
         			{
    diff --git a/htdocs/core/actions_linkedfiles.inc.php b/htdocs/core/actions_linkedfiles.inc.php
    index 297f7821599..de92d7c9744 100644
    --- a/htdocs/core/actions_linkedfiles.inc.php
    +++ b/htdocs/core/actions_linkedfiles.inc.php
    @@ -50,13 +50,17 @@ if (GETPOST('sendit','alpha') && ! empty($conf->global->MAIN_UPLOAD_DOC))
     
     		if (! $error)
     		{
    +			// Define if we have to generate thumbs or not
    +			$generatethumbs = 1;
    +			if (GETPOST('section_dir')) $generatethumbs=0;
    +
     			if (! empty($upload_dirold) && ! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO))
     			{
    -				$result = dol_add_file_process($upload_dirold, 0, 1, 'userfile', GETPOST('savingdocmask', 'alpha'));
    +				$result = dol_add_file_process($upload_dirold, 0, 1, 'userfile', GETPOST('savingdocmask', 'alpha'), null, '', $generatethumbs);
     			}
     			elseif (! empty($upload_dir))
     			{
    -				$result = dol_add_file_process($upload_dir, 0, 1, 'userfile', GETPOST('savingdocmask', 'alpha'));
    +				$result = dol_add_file_process($upload_dir, 0, 1, 'userfile', GETPOST('savingdocmask', 'alpha'), null, '', $generatethumbs);
     			}
     		}
     	}
    @@ -69,7 +73,7 @@ elseif (GETPOST('linkit','none') && ! empty($conf->global->MAIN_UPLOAD_DOC))
             if (substr($link, 0, 7) != 'http://' && substr($link, 0, 8) != 'https://' && substr($link, 0, 7) != 'file://') {
                 $link = 'http://' . $link;
             }
    -        dol_add_file_process($upload_dir, 0, 1, 'userfile', null, $link);
    +        dol_add_file_process($upload_dir, 0, 1, 'userfile', null, $link, '', 0);
         }
     }
     
    @@ -77,20 +81,23 @@ elseif (GETPOST('linkit','none') && ! empty($conf->global->MAIN_UPLOAD_DOC))
     // Delete file/link
     if ($action == 'confirm_deletefile' && $confirm == 'yes')
     {
    -        $urlfile = GETPOST('urlfile', 'alpha', 0, null, null, 1);	// Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP).
    -        if (GETPOST('section', 'alpha')) $file = $upload_dir . "/" . $urlfile;	// For a delete of GED module urlfile contains full path from upload_dir
    -        else															// For documents pages, upload_dir contains already path to file from module dir, so we clean path into urlfile.
    +        $urlfile = GETPOST('urlfile', 'alpha', 0, null, null, 1);				// Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP).
    +        if (GETPOST('section', 'alpha')) 	// For a delete from the ECM module, upload_dir is ECM root dir and urlfile contains relative path from upload_dir
    +        {
    +        	$file = $upload_dir . (preg_match('/\/$/', $upload_dir) ? '' : '/') . $urlfile;
    +        }
    +        else								// For a delete from the file manager into another module, or from documents pages, upload_dir contains already path to file from module dir, so we clean path into urlfile.
     		{
            		$urlfile=basename($urlfile);
    -			$file = $upload_dir . "/" . $urlfile;
    +       		$file = $upload_dir . (preg_match('/\/$/', $upload_dir) ? '' : '/') . $urlfile;
     			if (! empty($upload_dirold)) $fileold = $upload_dirold . "/" . $urlfile;
     		}
    -        $linkid = GETPOST('linkid', 'int');	// Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP).
    +        $linkid = GETPOST('linkid', 'int');
     
    -        if ($urlfile)
    +        if ($urlfile)		// delete of a file
             {
    -	        $dir = dirname($file).'/';     // Chemin du dossier contenant l'image d'origine
    -	        $dirthumb = $dir.'/thumbs/';   // Chemin du dossier contenant la vignette
    +	        $dir = dirname($file).'/';		// Chemin du dossier contenant l'image d'origine
    +	        $dirthumb = $dir.'/thumbs/';	// Chemin du dossier contenant la vignette (if file is an image)
     
     	        $ret = dol_delete_file($file, 0, 0, 0, (is_object($object)?$object:null));
                 if (! empty($fileold)) dol_delete_file($fileold, 0, 0, 0, (is_object($object)?$object:null));     // Delete file using old path
    @@ -114,7 +121,7 @@ if ($action == 'confirm_deletefile' && $confirm == 'yes')
                 if ($ret) setEventMessages($langs->trans("FileWasRemoved", $urlfile), null, 'mesgs');
                 else setEventMessages($langs->trans("ErrorFailToDeleteFile", $urlfile), null, 'errors');
             }
    -        elseif ($linkid)
    +        elseif ($linkid)	// delete of external link
             {
                 require_once DOL_DOCUMENT_ROOT . '/core/class/link.class.php';
                 $link = new Link($db);
    @@ -143,7 +150,7 @@ if ($action == 'confirm_deletefile' && $confirm == 'yes')
             	}
             	else
             	{
    -        		header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id.(!empty($withproject)?'&withproject=1':''));
    +        		header('Location: '.$_SERVER["PHP_SELF"].'?id='.$object->id.(GETPOST('section_dir','alpha')?'&section_dir='.urlencode(GETPOST('section_dir','alpha')):'').(!empty($withproject)?'&withproject=1':''));
             		exit;
             	}
             }
    @@ -187,7 +194,7 @@ elseif ($action == 'renamefile' && GETPOST('renamefilesave','alpha'))
     	        // Security:
     	        // Disallow file with some extensions. We rename them.
     	        // Because if we put the documents directory into a directory inside web root (very bad), this allows to execute on demand arbitrary code.
    -	        if (preg_match('/\.htm|\.html|\.php|\.pl|\.cgi$/i',$filenameto) && empty($conf->global->MAIN_DOCUMENT_IS_OUTSIDE_WEBROOT_SO_NOEXE_NOT_REQUIRED))
    +	        if (preg_match('/(\.htm|\.html|\.php|\.pl|\.cgi)$/i',$filenameto) && empty($conf->global->MAIN_DOCUMENT_IS_OUTSIDE_WEBROOT_SO_NOEXE_NOT_REQUIRED))
     	        {
     	            $filenameto.= '.noexe';
     	        }
    @@ -208,13 +215,23 @@ elseif ($action == 'renamefile' && GETPOST('renamefilesave','alpha'))
     	            		$result = dol_move($srcpath, $destpath);
     			            if ($result)
     			            {
    -			            	if ($object->id)
    -			            	{
    -			                	$object->addThumbs($destpath);
    -			            	}
    +			            	// Define if we have to generate thumbs or not
    +			            	$generatethumbs = 1;
    +			            	// When we rename a file from the file manager in ecm, we must not regenerate thumbs (not a problem, we do pass here)
    +			            	// When we rename a file from the website module, we must not regenerate thumbs (module = medias in such a case)
    +			            	// but when we rename from a tab "Documents", we must regenerate thumbs
    +			            	if (GETPOST('modulepart') == 'medias') $generatethumbs=0;
     
    -			                // TODO Add revert function of addThumbs to remove for old name
    -			                //$object->delThumbs($srcpath);
    +			            	if ($generatethumbs)
    +			            	{
    +			            		if ($object->id)
    +				            	{
    +				                	$object->addThumbs($destpath);
    +				            	}
    +
    +				                // TODO Add revert function of addThumbs to remove thumbs with old name
    +				                //$object->delThumbs($srcpath);
    +			            	}
     
     			                setEventMessages($langs->trans("FileRenamed"), null);
     			            }
    diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php
    index 33eeda9f4b2..630c67e9979 100644
    --- a/htdocs/core/actions_massactions.inc.php
    +++ b/htdocs/core/actions_massactions.inc.php
    @@ -75,6 +75,7 @@ if (! $error && $massaction == 'confirm_presend')
     	{
     		$thirdparty=new Societe($db);
     		if ($objecttmp->element == 'expensereport') $thirdparty=new User($db);
    +		if ($objecttmp->element == 'holiday')       $thirdparty=new User($db);
     
     		$objecttmp=new $objectclass($db);
     		foreach($toselect as $toselectid)
    @@ -84,9 +85,10 @@ if (! $error && $massaction == 'confirm_presend')
     			if ($result > 0)
     			{
     				$listofobjectid[$toselectid]=$toselectid;
    -				$thirdpartyid=$objecttmp->fk_soc?$objecttmp->fk_soc:$objecttmp->socid;
    -				if ($objecttmp->element == 'societe') $thirdpartyid=$objecttmp->id;
    +				$thirdpartyid=($objecttmp->fk_soc?$objecttmp->fk_soc:$objecttmp->socid);
    +				if ($objecttmp->element == 'societe')       $thirdpartyid=$objecttmp->id;
     				if ($objecttmp->element == 'expensereport') $thirdpartyid=$objecttmp->fk_user_author;
    +				if ($objecttmp->element == 'holiday')       $thirdpartyid=$objecttmp->fk_user;
     				$listofobjectthirdparties[$thirdpartyid]=$thirdpartyid;
     				$listofobjectref[$thirdpartyid][$toselectid]=$objecttmp;
     			}
    @@ -327,7 +329,7 @@ if (! $error && $massaction == 'confirm_presend')
     				$message = GETPOST('message','none');
     
     				$sendtobcc = GETPOST('sendtoccc');
    -				if ($objectclass == 'Propale') 				$sendtobcc .= (empty($conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO) ? '' : (($sendtobcc?", ":"").$conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO));
    +				if ($objectclass == 'Propal') 				$sendtobcc .= (empty($conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO) ? '' : (($sendtobcc?", ":"").$conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO));
     				if ($objectclass == 'Commande') 			$sendtobcc .= (empty($conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO) ? '' : (($sendtobcc?", ":"").$conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO));
     				if ($objectclass == 'Facture') 				$sendtobcc .= (empty($conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO) ? '' : (($sendtobcc?", ":"").$conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO));
     				if ($objectclass == 'Supplier_Proposal') 	$sendtobcc .= (empty($conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_PROPOSAL_TO) ? '' : (($sendtobcc?", ":"").$conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_PROPOSAL_TO));
    @@ -380,11 +382,32 @@ if (! $error && $massaction == 'confirm_presend')
     					$filename = $attachedfiles['names'];
     					$mimetype = $attachedfiles['mimes'];
     
    +					// Define the trackid when emails sent from the mass action
    +					if ($oneemailperrecipient)
    +					{
    +						$trackid='thi'.$thirdparty->id;
    +						if ($objecttmp->element == 'expensereport') $trackid='use'.$thirdparty->id;
    +						if ($objecttmp->element == 'holiday') $trackid='use'.$thirdparty->id;
    +					}
    +					else
    +					{
    +						$trackid=strtolower(get_class($objecttmp));
    +						if (get_class($objecttmp)=='Contrat')  $trackid='con';
    +						if (get_class($objecttmp)=='Propal')   $trackid='pro';
    +						if (get_class($objecttmp)=='Commande') $trackid='ord';
    +						if (get_class($objecttmp)=='Facture')  $trackid='inv';
    +						if (get_class($objecttmp)=='Supplier_Proposal')   $trackid='spr';
    +						if (get_class($objecttmp)=='CommandeFournisseur') $trackid='sor';
    +						if (get_class($objecttmp)=='FactureFournisseur')  $trackid='sin';
    +
    +						$trackid.=$objecttmp->id;
    +					}
     					//var_dump($filepath);
    +					//var_dump($trackid);exit;
     
     					// Send mail (substitutionarray must be done just before this)
    -					require_once(DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php');
    -					$mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$sendtobcc,$deliveryreceipt,-1);
    +					require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
    +					$mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$sendtobcc,$deliveryreceipt,-1,'','',$trackid);
     					if ($mailfile->error)
     					{
     						$resaction.='<div class="error">'.$mailfile->error.'</div>';
    @@ -401,6 +424,8 @@ if (! $error && $massaction == 'confirm_presend')
     							// Insert logs into agenda
     							foreach($listofqualifiedobj as $objid => $objectobj)
     							{
    +								dol_syslog("Try to insert email event into agenda for objid=".$objid." => objectobj=".get_class($objectobj));
    +
     								/*if ($objectclass == 'Propale') $actiontypecode='AC_PROP';
     	                            if ($objectclass == 'Commande') $actiontypecode='AC_COM';
     	                            if ($objectclass == 'Facture') $actiontypecode='AC_FAC';
    @@ -426,19 +451,19 @@ if (! $error && $massaction == 'confirm_presend')
     								$objectobj->elementtype	= $objectobj->element;
     
     								$triggername = strtoupper(get_class($objectobj)) .'_SENTBYMAIL';
    -								if ($triggername == 'SOCIETE_SENTBYMAIL')    $triggername = 'COMPANY_SENTBYEMAIL';
    -								if ($triggername == 'CONTRAT_SENTBYMAIL')    $triggername = 'CONTRACT_SENTBYEMAIL';
    -								if ($triggername == 'COMMANDE_SENTBYMAIL')   $triggername = 'ORDER_SENTBYEMAIL';
    +								if ($triggername == 'SOCIETE_SENTBYMAIL')    $triggername = 'COMPANY_SENTBYMAIL';
    +								if ($triggername == 'CONTRAT_SENTBYMAIL')    $triggername = 'CONTRACT_SENTBYMAIL';
    +								if ($triggername == 'COMMANDE_SENTBYMAIL')   $triggername = 'ORDER_SENTBYMAIL';
     								if ($triggername == 'FACTURE_SENTBYMAIL')    $triggername = 'BILL_SENTBYMAIL';
    -								if ($triggername == 'EXPEDITION_SENTBYMAIL') $triggername = 'SHIPPING_SENTBYEMAIL';
    +								if ($triggername == 'EXPEDITION_SENTBYMAIL') $triggername = 'SHIPPING_SENTBYMAIL';
     								if ($triggername == 'COMMANDEFOURNISSEUR_SENTBYMAIL') $triggername = 'ORDER_SUPPLIER_SENTBYMAIL';
    -								if ($triggername == 'FACTUREFOURNISSEUR_SENTBYMAIL') $triggername = 'BILL_SUPPLIER_SENTBYEMAIL';
    -								if ($triggername == 'SUPPLIERPROPOSAL_SENTBYMAIL') $triggername = 'PROPOSAL_SUPPLIER_SENTBYEMAIL';
    +								if ($triggername == 'FACTUREFOURNISSEUR_SENTBYMAIL') $triggername = 'BILL_SUPPLIER_SENTBYMAIL';
    +								if ($triggername == 'SUPPLIERPROPOSAL_SENTBYMAIL') $triggername = 'PROPOSAL_SUPPLIER_SENTBYMAIL';
     
     								if (! empty($triggername))
     								{
     									// Appel des triggers
    -									include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
    +									include_once DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php";
     									$interface=new Interfaces($db);
     									$result=$interface->run_triggers($triggername, $objectobj, $user, $langs, $conf);
     									if ($result < 0) { $error++; $errors=$interface->errors; }
    @@ -719,7 +744,7 @@ if ($massaction == 'confirm_createbills')
     	if (! $error)
     	{
     		$db->commit();
    -		setEventMessage($langs->trans('BillCreated', $nb_bills_created));
    +		setEventMessages($langs->trans('BillCreated', $nb_bills_created), null, 'mesgs');
     
     		// Make a redirect to avoid to bill twice if we make a refresh or back
     		$param='';
    @@ -841,7 +866,8 @@ if (! $error && $massaction == "builddoc" && $permtoread && ! GETPOST('button_se
     	}
     
     	$arrayofinclusion=array();
    -	foreach($listofobjectref as $tmppdf) $arrayofinclusion[]='^'.preg_quote(dol_sanitizeFileName($tmppdf).'.pdf','/').'$';
    +	foreach($listofobjectref as $tmppdf) $arrayofinclusion[]='^'.preg_quote(dol_sanitizeFileName($tmppdf),'/').'\.pdf$';
    +	foreach($listofobjectref as $tmppdf) $arrayofinclusion[]='^'.preg_quote(dol_sanitizeFileName($tmppdf),'/').'_[a-zA-Z0-9-_]+\.pdf$';	// To include PDF generated from ODX files
     	$listoffiles = dol_dir_list($uploaddir,'all',1,implode('|',$arrayofinclusion),'\.meta$|\.png','date',SORT_DESC,0,true);
     
     	// build list of files with full path
    @@ -1157,6 +1183,67 @@ if (! $error && ($massaction == 'delete' || ($action == 'delete' && $confirm ==
     	//var_dump($listofobjectthirdparties);exit;
     }
     
    +// Generate document foreach object according to model linked to object
    +// @TODO : propose model selection
    +if (! $error && $massaction == 'generate_doc' && $permtoread)
    +{
    +	$db->begin();
    +
    +	$objecttmp=new $objectclass($db);
    +	$nbok = 0;
    +	foreach($toselect as $toselectid)
    +	{
    +		$result=$objecttmp->fetch($toselectid);
    +		if ($result > 0)
    +		{
    +			$outputlangs = $langs;
    +			$newlang='';
    +
    +			if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang=GETPOST('lang_id','aZ09');
    +			if ($conf->global->MAIN_MULTILANGS && empty($newlang) && isset($objecttmp->thirdparty->default_lang)) $newlang=$objecttmp->thirdparty->default_lang;  // for proposal, order, invoice, ...
    +			if ($conf->global->MAIN_MULTILANGS && empty($newlang) && isset($objecttmp->default_lang)) $newlang=$objecttmp->default_lang;                  // for thirdparty
    +			if (! empty($newlang))
    +			{
    +				$outputlangs = new Translate("",$conf);
    +				$outputlangs->setDefaultLang($newlang);
    +			}
    +
    +			// To be sure vars is defined
    +			if (empty($hidedetails)) $hidedetails=0;
    +			if (empty($hidedesc)) $hidedesc=0;
    +			if (empty($hideref)) $hideref=0;
    +			if (empty($moreparams)) $moreparams=null;
    +
    +			$result= $objecttmp->generateDocument($objecttmp->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
    +
    +			if ($result <= 0)
    +			{
    +				setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
    +				$error++;
    +				break;
    +			}
    +			else $nbok++;
    +		}
    +		else
    +		{
    +			setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
    +			$error++;
    +			break;
    +		}
    +	}
    +
    +	if (! $error)
    +	{
    +		if ($nbok > 1) setEventMessages($langs->trans("RecordsGenerated", $nbok), null, 'mesgs');
    +		else setEventMessages($langs->trans("RecordGenerated", $nbok), null, 'mesgs');
    +		$db->commit();
    +	}
    +	else
    +	{
    +		$db->rollback();
    +	}
    +}
    +
     $parameters['toselect']=$toselect;
     $parameters['uploaddir']=$uploaddir;
     
    diff --git a/htdocs/core/actions_printing.inc.php b/htdocs/core/actions_printing.inc.php
    index 302ad161241..d5c40c17ad0 100644
    --- a/htdocs/core/actions_printing.inc.php
    +++ b/htdocs/core/actions_printing.inc.php
    @@ -28,8 +28,7 @@
     // Filename to print must be provided into 'file' parameter
     
     // Print file
    -if ($action == 'print_file' && $user->rights->printing->read)
    -{
    +if ($action == 'print_file' && $user->rights->printing->read) {
         $langs->load("printing");
         require_once DOL_DOCUMENT_ROOT . '/core/modules/printing/modules_printing.php';
         $objectprint = new PrintingDriver($db);
    @@ -48,14 +47,24 @@ if ($action == 'print_file' && $user->rights->printing->read)
                 {
                     $printerfound++;
     
    -                $subdir=(GETPOST('printer', 'alpha')=='expedition'?'sending':'');
    +                $subdir='';
                     $module = GETPOST('printer', 'alpha');
    -                if ($module =='commande_fournisseur') {
    -                    $module = 'fournisseur';
    -                    $subdir = 'commande';
    +                switch ($module )
    +                {
    +                    case 'livraison' :
    +                        $subdir = 'receipt';
    +                        $module = 'expedition';
    +                        break;
    +                    case 'expedition' :
    +                        $subdir = 'sending';
    +                        break;
    +                    case 'commande_fournisseur' :
    +                        $module = 'fournisseur';
    +                        $subdir = 'commande';
    +                        break;
                     }
                     try {
    -                    $ret = $printer->print_file(GETPOST('file', 'alpha'), $module, $subdir);
    +                    $ret = $printer->printFile(GETPOST('file', 'alpha'), $module, $subdir);
                         if ($ret > 0) {
                             //print '<pre>'.print_r($printer->errors, true).'</pre>';
                             setEventMessages($printer->error, $printer->errors, 'errors');
    diff --git a/htdocs/core/actions_sendmails.inc.php b/htdocs/core/actions_sendmails.inc.php
    index da31b9dee96..183585d986b 100644
    --- a/htdocs/core/actions_sendmails.inc.php
    +++ b/htdocs/core/actions_sendmails.inc.php
    @@ -114,7 +114,7 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
     		$result=$object->fetch($id);
     
     		$sendtosocid=0;    // Thirdparty on object
    -		if (method_exists($object,"fetch_thirdparty") && ! in_array($object->element, array('societe','member','user','expensereport')))
    +		if (method_exists($object,"fetch_thirdparty") && ! in_array($object->element, array('societe','member','user','expensereport', 'contact')))
     		{
     			$result=$object->fetch_thirdparty();
     			if ($object->element == 'user' && $result == 0) $result=1;    // Even if not found, we consider ok
    @@ -131,6 +131,11 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
     			$thirdparty=$object;
     			if ($thirdparty->id > 0) $sendtosocid=$thirdparty->id;
     		}
    +		else if ($object->element == 'contact')
    +		{
    +			$contact=$object;
    +			if ($contact->id > 0) $sendtosocid=$contact->fetch_thirdparty()->id;
    +		}
     		else dol_print_error('','Use actions_sendmails.in.php for an element/object that is not supported');
     
     		if (is_object($hookmanager))
    @@ -172,6 +177,11 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
     				{
     					$tmparray[] = dol_string_nospecial($thirdparty->name, ' ', array(",")).' <'.$thirdparty->email.'>';
     				}
    +				// Recipient was provided from combo list
    +				elseif ($val == 'contact') // Id of contact
    +				{
    +					$tmparray[] = dol_string_nospecial($contact->name, ' ', array(",")).' <'.$contact->email.'>';
    +				}
     				elseif ($val)	// Id du contact
     				{
     					$tmparray[] = $thirdparty->contact_get_property((int) $val,'email');
    @@ -216,6 +226,11 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
     				{
     					$tmparray[] = dol_string_nospecial($thirdparty->name, ' ', array(",")).' <'.$thirdparty->email.'>';
     				}
    +				// Recipient was provided from combo list
    +				elseif ($val == 'contact') // Id of contact
    +				{
    +					$tmparray[] = dol_string_nospecial($contact->name, ' ', array(",")).' <'.$contact->email.'>';
    +				}
     				elseif ($val)	// Id du contact
     				{
     					$tmparray[] = $thirdparty->contact_get_property((int) $val,'email');
    @@ -426,10 +441,11 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
     					    if (empty($actiontypecode)) $actiontypecode='AC_OTH_AUTO'; // Event insert into agenda automatically
     
     						$object->socid			= $sendtosocid;	   // To link to a company
    -						$object->sendtoid		= $sendtoid;	   // To link to contacts/addresses. This is an array.
    +						$object->sendtoid		= $sendtoid;	   // To link to contact addresses. This is an array.
     						$object->actiontypecode	= $actiontypecode; // Type of event ('AC_OTH', 'AC_OTH_AUTO', 'AC_XXX'...)
    -						$object->actionmsg		= $actionmsg;      // Long text
    -						$object->actionmsg2		= $actionmsg2;     // Short text
    +						$object->actionmsg		= $actionmsg;      // Long text (@TODO Replace this with $message, we already have details of email in dedicated properties)
    +						$object->actionmsg2		= $actionmsg2;     // Short text ($langs->transnoentities('MailSentBy')...);
    +
     						$object->trackid        = $trackid;
     						$object->fk_element		= $object->id;
     						$object->elementtype	= $object->element;
    @@ -440,6 +456,15 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
     							$object->sendtouserid	= $sendtouserid;
     						}
     
    +						$object->email_msgid = $mailfile->msgid;	// @TODO Set msgid into $mailfile after sending
    +						$object->email_from = $from;
    +						$object->email_subject = $subject;
    +						$object->email_to = $sendto;
    +						$object->email_tocc = $sendtocc;
    +						$object->email_tobcc = $sendtobcc;
    +						$object->email_subject = $subject;
    +						$object->email_msgid = $mailfile->msgid;
    +
     						// Call of triggers
     						if (! empty($trigger_name))
     						{
    @@ -497,5 +522,4 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
     		dol_syslog('Failed to read data of object id='.$object->id.' element='.$object->element);
     		$action = 'presend';
     	}
    -
     }
    diff --git a/htdocs/core/actions_setnotes.inc.php b/htdocs/core/actions_setnotes.inc.php
    index 50b35392644..ec253d5ef4a 100644
    --- a/htdocs/core/actions_setnotes.inc.php
    +++ b/htdocs/core/actions_setnotes.inc.php
    @@ -32,8 +32,33 @@ if ($action == 'setnote_public' && ! empty($permissionnote) && ! GETPOST('cancel
     {
     	if (empty($action) || ! is_object($object) || empty($id)) dol_print_error('','Include of actions_setnotes.inc.php was done but required variable was not set before');
     	if (empty($object->id)) $object->fetch($id);	// Fetch may not be already done
    -	$result=$object->update_note(dol_html_entity_decode(GETPOST('note_public', 'none'), ENT_QUOTES),'_public');
    -	if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
    +	
    +	$result_update=$object->update_note(dol_html_entity_decode(GETPOST('note_public', 'none'), ENT_QUOTES),'_public');
    +
    +	if ($result_update < 0) setEventMessages($object->error, $object->errors, 'errors');
    +	elseif (in_array($object->table_element, array('supplier_proposal', 'propal', 'commande_fournisseur', 'commande', 'facture_fourn', 'facture')))
    +	{
    +		// Define output language
    +		if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
    +		{
    +			$outputlangs = $langs;
    +			$newlang = '';
    +			if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09');
    +			if ($conf->global->MAIN_MULTILANGS && empty($newlang))	$newlang = $object->thirdparty->default_lang;
    +			if (! empty($newlang)) {
    +				$outputlangs = new Translate("", $conf);
    +				$outputlangs->setDefaultLang($newlang);
    +			}
    +			$model=$object->modelpdf;
    +			$hidedetails = (GETPOST('hidedetails','int') ? GETPOST('hidedetails','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0));
    +			$hidedesc = (GETPOST('hidedesc','int') ? GETPOST('hidedesc','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC) ?  1 : 0));
    +			$hideref = (GETPOST('hideref','int') ? GETPOST('hideref','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0));
    +
    +			$result=$object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
    +			
    +			if ($result < 0) dol_print_error($db,$result);
    +		}
    +	}
     }
     // Set public note
     else if ($action == 'setnote_private' && ! empty($permissionnote) && ! GETPOST('cancel','alpha'))
    diff --git a/htdocs/core/ajax/ajaxdirpreview.php b/htdocs/core/ajax/ajaxdirpreview.php
    index 290c33f9859..bfbf35b019c 100644
    --- a/htdocs/core/ajax/ajaxdirpreview.php
    +++ b/htdocs/core/ajax/ajaxdirpreview.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Simon Tosser         <simon@kornog-computing.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010	   Pierre Morin         <pierre.morin@auguria.net>
      * Copyright (C) 2013      Marcos García        <marcosgdf@gmail.com>
      *
    @@ -82,9 +82,16 @@ else    // For no ajax call
                 dol_print_error($db,$ecmdir->error);
                 exit;
             }
    +
    +        $relativepath=$ecmdir->getRelativePath();	// Example   'mydir/'
         }
    -    $relativepath=$ecmdir->getRelativePath();
    -    $upload_dir = $rootdirfordoc.'/'.$relativepath;
    +	elseif (GETPOST('section_dir'))
    +	{
    +		$relativepath=GETPOST('section_dir');
    +	}
    +	//var_dump($section.'-'.GETPOST('section_dir').'-'.$relativepath);
    +
    +	$upload_dir = $rootdirfordoc.'/'.$relativepath;
     }
     
     if (empty($url))
    @@ -158,8 +165,8 @@ print '<!-- ajaxdirpreview type='.$type.' -->'."\n";
     //print '<!-- Page called with mode='.dol_escape_htmltag(isset($mode)?$mode:'').' type='.dol_escape_htmltag($type).' module='.dol_escape_htmltag($module).' url='.dol_escape_htmltag($url).' '.dol_escape_htmltag($_SERVER["PHP_SELF"]).'?'.dol_escape_htmltag($_SERVER["QUERY_STRING"]).' -->'."\n";
     
     $param=($sortfield?'&sortfield='.$sortfield:'').($sortorder?'&sortorder='.$sortorder:'');
    -if (! empty($website)) $param.='&website='.$website;
    -if (! empty($pageid))  $param.='&pageid='.$pageid;
    +if (! empty($websitekey)) $param.='&website='.$websitekey;
    +if (! empty($pageid))     $param.='&pageid='.$pageid;
     
     
     // Dir scan
    @@ -228,7 +235,18 @@ if ($type == 'directory')
         {
         	if ($module == 'medias')
         	{
    -    		$relativepath=GETPOST('file','alpha');
    +    		/*
    +    		   $_POST is array like
    +    		  'token' => string '062380e11b7dcd009d07318b57b71750' (length=32)
    +			  'action' => string 'file_manager' (length=12)
    +			  'website' => string 'template' (length=8)
    +			  'pageid' => string '124' (length=3)
    +			  'section_dir' => string 'mydir/' (length=3)
    +			  'section_id' => string '0' (length=1)
    +			  'max_file_size' => string '2097152' (length=7)
    +			  'sendit' => string 'Envoyer fichier' (length=15)
    +    		 */
    +    		$relativepath=GETPOST('file','alpha')?GETPOST('file','alpha'):GETPOST('section_dir','alpha');
         		if ($relativepath && $relativepath!= '/') $relativepath.='/';
         		$upload_dir = $dolibarr_main_data_root.'/'.$module.'/'.$relativepath;
         		if (GETPOSTISSET('website') || GETPOSTISSET('file_manager'))
    @@ -236,7 +254,7 @@ if ($type == 'directory')
     	    		$param.='&file_manager=1';
     	    		if (!preg_match('/website=/',$param)) $param.='&website='.urlencode(GETPOST('website','alpha'));
     	    		if (!preg_match('/pageid=/',$param)) $param.='&pageid='.urlencode(GETPOST('pageid','int'));
    -	    		//if (!preg_match('/backtopage=/',$param)) $param.='&backtopage='.urlencode($_SERVER["PHP_SELF"].'?file_manager=1&website='.$website.'&pageid='.$pageid);
    +	    		//if (!preg_match('/backtopage=/',$param)) $param.='&backtopage='.urlencode($_SERVER["PHP_SELF"].'?file_manager=1&website='.$websitekey.'&pageid='.$pageid);
     	    	}
         	}
         	else
    @@ -271,14 +289,14 @@ if ($type == 'directory')
     
         	if ($module == 'medias')
         	{
    -    		$useinecm = 2;
    +    		$useinecm = 6;
         		$modulepart='medias';
             	$perm=($user->rights->website->write || $user->rights->emailing->creer);
             	$title='none';
         	}
         	else
         	{
    -    		$useinecm = 1;
    +    		$useinecm = 5;
         		$modulepart='ecm';
             	$perm=$user->rights->ecm->upload;
             	$title='';	// Use default
    @@ -317,7 +335,7 @@ if ($useajax || $action == 'delete')
     	$formquestion['section_id']=array('type'=>'hidden','value'=>$section_id,'name'=>'section_id');		// We must always put field, even if empty because it is fille by javascript later
     	$formquestion['section_dir']=array('type'=>'hidden','value'=>$section_dir,'name'=>'section_dir');	// We must always put field, even if empty because it is fille by javascript later
     	if (! empty($action) && $action == 'file_manager')	$formquestion['file_manager']=array('type'=>'hidden','value'=>1,'name'=>'file_manager');
    -	if (! empty($website))								$formquestion['website']=array('type'=>'hidden','value'=>$website,'name'=>'website');
    +	if (! empty($websitekey))							$formquestion['website']=array('type'=>'hidden','value'=>$websitekey,'name'=>'website');
     	if (! empty($pageid) && $pageid > 0)				$formquestion['pageid']=array('type'=>'hidden','value'=>$pageid,'name'=>'pageid');
     
     	print $form->formconfirm($url,$langs->trans("DeleteFile"),$langs->trans("ConfirmDeleteFile"),'confirm_deletefile',$formquestion,"no",($useajax?'deletefile':0));
    diff --git a/htdocs/core/ajax/ajaxdirtree.php b/htdocs/core/ajax/ajaxdirtree.php
    index cfff81749de..d90a3f5f316 100644
    --- a/htdocs/core/ajax/ajaxdirtree.php
    +++ b/htdocs/core/ajax/ajaxdirtree.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2007-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2007-2018  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -39,16 +40,26 @@ if (! isset($mode) || $mode != 'noajax')    // For ajax call
     	include_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
     	include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php';
     
    +	//if (GETPOST('preopened')) { $_GET['dir'] = $_POST['dir'] = '/bbb/'; }
    +
     	$openeddir = GETPOST('openeddir');
     	$modulepart= GETPOST('modulepart');
     	$selecteddir = jsUnEscape(GETPOST('dir'));        // relative path. We must decode using same encoding function used by javascript: escape()
    +
    +	$preopened = GETPOST('preopened');
    +
     	if ($selecteddir != '/') $selecteddir = preg_replace('/\/$/','',$selecteddir);    // We removed last '/' except if it is '/'
     }
     else    // For no ajax call
     {
    +	//if (GETPOST('preopened')) { $_GET['dir'] = $_POST['dir'] = GETPOST('preopened'); }
    +
     	$openeddir = GETPOST('openeddir');
     	$modulepart= GETPOST('modulepart');
     	$selecteddir = GETPOST('dir');
    +
    +	$preopened = GETPOST('preopened');
    +
     	if ($selecteddir != '/') $selecteddir = preg_replace('/\/$/','',$selecteddir);    // We removed last '/' except if it is '/'
     	if (empty($url)) $url=DOL_URL_ROOT.'/ecm/index.php';
     }
    @@ -58,8 +69,16 @@ $langs->load("ecm");
     
     // Define fullpathselecteddir.
     $fullpathselecteddir='<none>';
    -if ($modulepart == 'ecm') $fullpathselecteddir=$conf->ecm->dir_output.'/'.($selecteddir != '/' ? $selecteddir : '');
    -if ($modulepart == 'medias') $fullpathselecteddir=$dolibarr_main_data_root.'/medias/'.($selecteddir != '/' ? $selecteddir : '');
    +if ($modulepart == 'ecm')
    +{
    +	$fullpathselecteddir=$conf->ecm->dir_output.'/'.($selecteddir != '/' ? $selecteddir : '');
    +	$fullpathpreopened=$conf->ecm->dir_output.'/'.($preopened != '/' ? $preopened : '');
    +}
    +elseif ($modulepart == 'medias')
    +{
    +	$fullpathselecteddir=$dolibarr_main_data_root.'/medias/'.($selecteddir != '/' ? $selecteddir : '');
    +	$fullpathpreopened=$dolibarr_main_data_root.'/medias/'.($preopened != '/' ? $preopened : '');
    +}
     
     
     // Security:
    @@ -77,7 +96,7 @@ if ($modulepart == 'ecm')
     {
     	if (! $user->rights->ecm->read) accessforbidden();
     }
    -if ($modulepart == 'medias')
    +elseif ($modulepart == 'medias')
     {
     	// Always allowed
     }
    @@ -87,20 +106,20 @@ if ($modulepart == 'medias')
      * View
      */
     
    -if (! isset($mode) || $mode != 'noajax')
    +if (! isset($mode) || $mode != 'noajax')	// if ajax mode
     {
     	top_httphead();
     }
     
    -//print '<!-- selecteddir = '.$selecteddir.', openeddir = '.$openeddir.', modulepart='.$modulepart.' -->'."\n";
    +//print '<!-- selecteddir (relative dir we click on) = '.$selecteddir.', openeddir = '.$openeddir.', modulepart='.$modulepart.', preopened='.$preopened.' -->'."\n";
     $userstatic=new User($db);
     $form=new Form($db);
     $ecmdirstatic = new EcmDirectory($db);
     
    -// Load full tree from database. We will use it to define nbofsubdir and nboffilesinsubdir
    +// Load full tree of ECM module from database. We will use it to define nbofsubdir and nboffilesinsubdir
     if (empty($sqltree)) $sqltree=$ecmdirstatic->get_full_arbo(0);
     
    -// Try to find key into $sqltree
    +// Try to find selected dir id into $sqltree and save it into $current_ecmdir_id
     $current_ecmdir_id=-1;
     foreach($sqltree as $keycursor => $val)
     {
    @@ -113,131 +132,13 @@ foreach($sqltree as $keycursor => $val)
     
     if (! empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABLE_JS))
     {
    -	if (file_exists($fullpathselecteddir))
    -	{
    -		$files = @scandir($fullpathselecteddir);
    +	treeOutputForAbsoluteDir($sqltree, $selecteddir, $fullpathselecteddir, $modulepart, $websitekey, $pageid, $preopened, $fullpathpreopened);
     
    -		if ($files)
    -	    {
    -	    	natcasesort($files);
    -	    	if (count($files) > 2)    /* The 2 accounts for . and .. */
    -	    	{
    -	    		echo '<ul class="ecmjqft" style="display: none;">'."\n";
    -
    -	    		// All dirs
    -	    		foreach ($files as $file)    // $file can be '.', '..', or 'My dir' or 'My file'
    -	    		{
    -	    		    if ($file == 'temp') continue;
    -
    -	    	        $nbofsubdir=0;
    -	    	        $nboffilesinsubdir=0;
    -
    -	    	        $val=array();
    -
    -	    	        // Loop on all database entries (sqltree) to find the one matching the subdir found into dir to scan
    -			        foreach($sqltree as $key => $tmpval)
    -			        {
    -	    	            //print "-- key=".$key." - ".$tmpval['fullrelativename']." vs ".(($selecteddir != '/'?$selecteddir.'/':'').$file)."<br>\n";
    -			        	if ($tmpval['fullrelativename'] == (($selecteddir != '/'?$selecteddir.'/':'').$file))		// We found equivalent record into database
    -			            {
    -			                $val=$tmpval;
    -			                $resarray=tree_showpad($sqltree,$key,1);
    -
    -			                // Refresh cache for this subdir
    -			            	if (isset($val['cachenbofdoc']) && $val['cachenbofdoc'] < 0)	// Cache is not up to date, so we update it for this directory t
    -			            	{
    -			            		$result=$ecmdirstatic->fetch($val['id']);
    -			            		$ecmdirstatic->ref=$ecmdirstatic->label;
    -
    -			            		$result=$ecmdirstatic->refreshcachenboffile(0);
    -			            		$val['cachenbofdoc']=$result;
    -			            	}
    -
    -	                        $a=$resarray[0];
    -	                        $nbofsubdir=$resarray[1];
    -	                        $nboffilesinsubdir=$resarray[2];
    -	                        break;
    -			            }
    -			        }
    -
    -	    		    //print 'modulepart='.$modulepart.' fullpathselecteddir='.$fullpathselecteddir.' - val[fullrelativename] (in database)='.$val['fullrelativename'].' - val[id]='.$val['id'].' - is_dir='.dol_is_dir($fullpathselecteddir . $file).' - file='.$file."\n";
    -	    		    if ($file != '.' && $file != '..' && ((! empty($val['fullrelativename']) && $val['id'] >= 0) || dol_is_dir($fullpathselecteddir . (preg_match('/\/$/',$fullpathselecteddir)?'':'/') . $file)))
    -	    		    {
    -						if (empty($val['fullrelativename']))	// If we did not find entry into database, but found a directory (dol_is_dir was ok at previous test)
    -						{
    -	    		    		$val['fullrelativename']=(($selecteddir && $selecteddir != '/')?$selecteddir.'/':'').$file;
    -	    		    		$val['id']=0;
    -	    		    		$val['label']=$file;
    -	    		    		$val['description']='';
    -	    		    		$nboffilesinsubdir=$langs->trans("Unknown");
    -						}
    -
    -			        	print '<li class="directory collapsed">';
    -
    -	    				print "<a class=\"fmdirlia jqft ecmjqft\" href=\"";
    -	    				print "#";
    -	    				print "\" rel=\"" . dol_escape_htmltag($val['fullrelativename'].'/') . "\" id=\"fmdirlia_id_".$val['id']."\"";
    -						print " onClick=\"loadandshowpreview('".dol_escape_js($val['fullrelativename'])."',".$val['id'].")";
    -	    				print "\">";
    -	    				print dol_escape_htmltag($file);
    -	    				print "</a>";
    -
    -	    				print '<div class="ecmjqft">';
    -
    -	    				print '<table class="nobordernopadding"><tr>';
    -
    -	    				/*print '<td align="left">';
    -	    				print dol_escape_htmltag($file);
    -	    				print '</td>';*/
    -
    -	    				// Nb of docs
    -	    				print '<td align="right">';
    -	    				print (isset($val['cachenbofdoc']) && $val['cachenbofdoc']  >= 0)?$val['cachenbofdoc']:'&nbsp;';
    -	    				print '</td>';
    -	    				print '<td align="left">';
    -	    				if ($nbofsubdir > 0  && $nboffilesinsubdir > 0) print '<font color="#AAAAAA">+'.$nboffilesinsubdir.'</font> ';
    -	    				print '</td>';
    -
    -	    				// Edit link
    -	    				print '<td align="right" width="18"><a href="';
    -	    				print DOL_URL_ROOT.'/ecm/dir_card.php?module='.urlencode($modulepart).'&section='.$val['id'].'&relativedir='.urlencode($val['fullrelativename']);
    -	    				print '&backtopage='.urlencode($_SERVER["PHP_SELF"].'?file_manager=1&website='.$website.'&pageid='.$pageid);
    -	    				print '">'.img_edit($langs->trans("Edit").' - '.$langs->trans("View"), 0, 'class="valignmiddle opacitymedium"').'</a></td>';
    -
    -	    				// Add link
    -	    				//print '<td align="right"><a href="'.DOL_URL_ROOT.'/ecm/dir_add_card.php?action=create&amp;catParent='.$val['id'].'">'.img_edit_add().'</a></td>';
    -	    				//print '<td align="right" width="14">&nbsp;</td>';
    -
    -	    				// Info
    -	    				if ($modulepart == 'ecm')
    -	    				{
    -	    					print '<td align="right" width="18">';
    -		    				$userstatic->id=isset($val['fk_user_c'])?$val['fk_user_c']:0;
    -		    				$userstatic->lastname=isset($val['login_c'])?$val['login_c']:0;
    -		    				$htmltooltip='<b>'.$langs->trans("ECMSection").'</b>: '.$val['label'].'<br>';
    -		    				$htmltooltip='<b>'.$langs->trans("Type").'</b>: '.$langs->trans("ECMSectionManual").'<br>';
    -		    				$htmltooltip.='<b>'.$langs->trans("ECMCreationUser").'</b>: '.$userstatic->getNomUrl(1, '', false, 1).'<br>';
    -		    				$htmltooltip.='<b>'.$langs->trans("ECMCreationDate").'</b>: '.(isset($val['date_c'])?dol_print_date($val['date_c'],"dayhour"):$langs->trans("NeedRefresh")).'<br>';
    -		    				$htmltooltip.='<b>'.$langs->trans("Description").'</b>: '.$val['description'].'<br>';
    -		    				$htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInDir").'</b>: '.((isset($val['cachenbofdoc']) && $val['cachenbofdoc'] >= 0)?$val['cachenbofdoc']:$langs->trans("NeedRefresh")).'<br>';
    -		    				if ($nboffilesinsubdir > 0) $htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInSubDir").'</b>: '.$nboffilesinsubdir;
    -		    				else $htmltooltip.='<b>'.$langs->trans("ECMNbOfSubDir").'</b>: '.($nbofsubdir >= 0 ? $nbofsubdir : $langs->trans("NeedRefresh")).'<br>';
    -		    				print $form->textwithpicto('',$htmltooltip,1,"info");
    -		    				print "</td>";
    -	    				}
    -
    -	    				print "</tr></table>\n";
    -	                    print '</div>';
    -
    -	                    //print '<div>&nbsp;</div>';
    -	    				print "</li>\n";
    -	    			}
    -	    		}
    -
    -	    		// Enable jquery handlers on new generated HTML objects (same code than into lib_footer.js.php)
    -	    		// Because the content is reloaded by ajax call, we must also reenable some jquery hooks
    -				print "\n<!-- JS CODE TO ENABLE Tooltips on all object with class classfortooltip (reload into ajaxdirtree) -->\n";
    -	    		print '<script type="text/javascript">
    +	// TODO Find a solution to not output this code for each leaf we open
    +	// Enable jquery handlers on new generated HTML objects (same code than into lib_footer.js.php)
    +	// Because the content is reloaded by ajax call, we must also reenable some jquery hooks
    +	print "\n<!-- JS CODE TO ENABLE Tooltips on all object with class classfortooltip (reload into ajaxdirtree) -->\n";
    +	print '<script type="text/javascript">
     	            	jQuery(document).ready(function () {
     	            		jQuery(".classfortooltip").tooltip({
     							show: { collision: "flipfit", effect:\'toggle\', delay:50 },
    @@ -250,13 +151,6 @@ if (! empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABLE
     	            	});
     	            	</script>';
     
    -	    		echo "</ul>\n";
    -
    -	    	}
    -	    }
    -	    else print "PermissionDenied";
    -	}
    -
     	// This ajax service is called only when a directory $selecteddir is opened but not when closed.
     	//print '<script language="javascript">';
     	//print "loadandshowpreview('".dol_escape_js($selecteddir)."');";
    @@ -380,7 +274,7 @@ if (empty($conf->use_javascript_ajax) || ! empty($conf->global->MAIN_ECM_DISABLE
     			print '<table class="nobordernopadding"><tr><td>';
     			print $val['cachenbofdoc'];
     			print '</td>';
    -			print '<td align="left">';
    +			print '<td class="left">';
     			if ($nbofsubdir && $nboffilesinsubdir) print '<font color="#AAAAAA">+'.$nboffilesinsubdir.'</font> ';
     			print '</td>';
     
    @@ -426,3 +320,175 @@ if (empty($conf->use_javascript_ajax) || ! empty($conf->global->MAIN_ECM_DISABLE
     
     // Close db if mode is not noajax
     if ((! isset($mode) || $mode != 'noajax') && is_object($db)) $db->close();
    +
    +
    +
    +/**
    + * treeOutputForAbsoluteDir
    + *
    + * @param	array	$sqltree				Sqltree
    + * @param	string	$selecteddir			Selected dir
    + * @param	string	$fullpathselecteddir	Full path of selected dir
    + * @param	string	$modulepart				Modulepart
    + * @param	string	$websitekey				Website key
    + * @param	int		$pageid					Page id
    + * @param	string	$preopened				Current open dir
    + * @param	string	$fullpathpreopened		Full path of current open dir
    + * @param	int		$depth					Depth
    + * @return	void
    + */
    +function treeOutputForAbsoluteDir($sqltree, $selecteddir, $fullpathselecteddir, $modulepart, $websitekey, $pageid, $preopened, $fullpathpreopened, $depth=0)
    +{
    +	global $conf, $db, $langs, $form;
    +	global $dolibarr_main_data_root;
    +
    +	$ecmdirstatic = new EcmDirectory($db);
    +	$userstatic = new User($db);
    +
    +	if (file_exists($fullpathselecteddir))
    +	{
    +		$files = @scandir($fullpathselecteddir);
    +
    +		if (! empty($files))
    +		{
    +			natcasesort($files);
    +			if (count($files) > 2)    /* The 2 accounts for . and .. */
    +			{
    +				echo '<ul class="ecmjqft" style="display: none;">'."\n";
    +
    +				// All dirs
    +				foreach ($files as $file)    // $file can be '.', '..', or 'My dir' or 'My file'
    +				{
    +					if ($file == 'temp') continue;
    +
    +					$nbofsubdir=0;
    +					$nboffilesinsubdir=0;
    +
    +					$val=array();
    +
    +					// Loop on all database entries (sqltree) to find the one matching the subdir found into dir to scan
    +					foreach($sqltree as $key => $tmpval)
    +					{
    +						//print "-- key=".$key." - ".$tmpval['fullrelativename']." vs ".(($selecteddir != '/'?$selecteddir.'/':'').$file)."<br>\n";
    +						if ($tmpval['fullrelativename'] == (($selecteddir != '/'?$selecteddir.'/':'').$file))		// We found equivalent record into database
    +						{
    +							$val=$tmpval;
    +							$resarray=tree_showpad($sqltree,$key,1);
    +
    +							// Refresh cache for this subdir
    +							if (isset($val['cachenbofdoc']) && $val['cachenbofdoc'] < 0)	// Cache is not up to date, so we update it for this directory t
    +							{
    +								$result=$ecmdirstatic->fetch($val['id']);
    +								$ecmdirstatic->ref=$ecmdirstatic->label;
    +
    +								$result=$ecmdirstatic->refreshcachenboffile(0);
    +								$val['cachenbofdoc']=$result;
    +							}
    +
    +							$a=$resarray[0];
    +							$nbofsubdir=$resarray[1];
    +							$nboffilesinsubdir=$resarray[2];
    +							break;
    +						}
    +					}
    +
    +					//print 'modulepart='.$modulepart.' fullpathselecteddir='.$fullpathselecteddir.' - val[fullrelativename] (in database)='.$val['fullrelativename'].' - val[id]='.$val['id'].' - is_dir='.dol_is_dir($fullpathselecteddir . $file).' - file='.$file."\n";
    +					if ($file != '.' && $file != '..' && ((! empty($val['fullrelativename']) && $val['id'] >= 0) || dol_is_dir($fullpathselecteddir . (preg_match('/\/$/',$fullpathselecteddir)?'':'/') . $file)))
    +					{
    +						if (empty($val['fullrelativename']))	// If we did not find entry into database, but found a directory (dol_is_dir was ok at previous test)
    +						{
    +							$val['fullrelativename']=(($selecteddir && $selecteddir != '/')?$selecteddir.'/':'').$file;
    +							$val['id']=0;
    +							$val['label']=$file;
    +							$val['description']='';
    +							$nboffilesinsubdir=$langs->trans("Unknown");
    +						}
    +
    +						$collapsedorexpanded='collapsed';
    +						if (preg_match('/^'.preg_quote($val['fullrelativename'].'/', '/').'/', $preopened)) $collapsedorexpanded='expanded';
    +						print '<li class="directory '.$collapsedorexpanded.'">';	// collapsed is opposite if expanded
    +
    +						print "<a class=\"fmdirlia jqft ecmjqft\" href=\"";
    +						print "#";
    +						print "\" rel=\"" . dol_escape_htmltag($val['fullrelativename'].'/') . "\" id=\"fmdirlia_id_".$val['id']."\"";
    +						print " onClick=\"loadandshowpreview('".dol_escape_js($val['fullrelativename'])."',".$val['id'].")";
    +						print "\">";
    +						print dol_escape_htmltag($file);
    +						print "</a>";
    +
    +						print '<div class="ecmjqft">';
    +
    +						print '<table class="nobordernopadding"><tr>';
    +
    +						/*print '<td class="left">';
    +						 print dol_escape_htmltag($file);
    +						 print '</td>';*/
    +
    +						// Nb of docs
    +						print '<td align="right">';
    +						print (isset($val['cachenbofdoc']) && $val['cachenbofdoc']  >= 0)?$val['cachenbofdoc']:'&nbsp;';
    +						print '</td>';
    +						print '<td class="left">';
    +						if ($nbofsubdir > 0  && $nboffilesinsubdir > 0) print '<font color="#AAAAAA">+'.$nboffilesinsubdir.'</font> ';
    +						print '</td>';
    +
    +						// Edit link
    +						print '<td align="right" width="18"><a href="';
    +						print DOL_URL_ROOT.'/ecm/dir_card.php?module='.urlencode($modulepart).'&section='.$val['id'].'&relativedir='.urlencode($val['fullrelativename']);
    +						print '&backtopage='.urlencode($_SERVER["PHP_SELF"].'?file_manager=1&website='.$websitekey.'&pageid='.$pageid);
    +						print '">'.img_edit($langs->trans("Edit").' - '.$langs->trans("View"), 0, 'class="valignmiddle opacitymedium"').'</a></td>';
    +
    +						// Add link
    +						//print '<td align="right"><a href="'.DOL_URL_ROOT.'/ecm/dir_add_card.php?action=create&amp;catParent='.$val['id'].'">'.img_edit_add().'</a></td>';
    +						//print '<td align="right" width="14">&nbsp;</td>';
    +
    +						// Info
    +						if ($modulepart == 'ecm')
    +						{
    +							print '<td align="right" width="18">';
    +							$userstatic->id=isset($val['fk_user_c'])?$val['fk_user_c']:0;
    +							$userstatic->lastname=isset($val['login_c'])?$val['login_c']:0;
    +							$htmltooltip='<b>'.$langs->trans("ECMSection").'</b>: '.$val['label'].'<br>';
    +							$htmltooltip='<b>'.$langs->trans("Type").'</b>: '.$langs->trans("ECMSectionManual").'<br>';
    +							$htmltooltip.='<b>'.$langs->trans("ECMCreationUser").'</b>: '.$userstatic->getNomUrl(1, '', false, 1).'<br>';
    +							$htmltooltip.='<b>'.$langs->trans("ECMCreationDate").'</b>: '.(isset($val['date_c'])?dol_print_date($val['date_c'],"dayhour"):$langs->trans("NeedRefresh")).'<br>';
    +							$htmltooltip.='<b>'.$langs->trans("Description").'</b>: '.$val['description'].'<br>';
    +							$htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInDir").'</b>: '.((isset($val['cachenbofdoc']) && $val['cachenbofdoc'] >= 0)?$val['cachenbofdoc']:$langs->trans("NeedRefresh")).'<br>';
    +							if ($nboffilesinsubdir > 0) $htmltooltip.='<b>'.$langs->trans("ECMNbOfFilesInSubDir").'</b>: '.$nboffilesinsubdir;
    +							else $htmltooltip.='<b>'.$langs->trans("ECMNbOfSubDir").'</b>: '.($nbofsubdir >= 0 ? $nbofsubdir : $langs->trans("NeedRefresh")).'<br>';
    +							print $form->textwithpicto('',$htmltooltip,1,"info");
    +							print "</td>";
    +						}
    +
    +						print "</tr></table>\n";
    +						print '</div>';
    +
    +						//print 'selecteddir='.$selecteddir.' preopened='.$preopened.' $val[\'fullrelativename\']='.$val['fullrelativename']."<br>\n";
    +						if (preg_match('/^'.preg_quote($val['fullrelativename'].'/', '/').'/', $preopened))
    +						{
    +							//print 'modulepart='.$modulepart.' fullpathselecteddir='.$fullpathselecteddir.' - val[fullrelativename] (in database)='.$val['fullrelativename'].' - val[id]='.$val['id'].' - is_dir='.dol_is_dir($fullpathselecteddir . $file).' - file='.$file."\n";
    +							$newselecteddir = $val['fullrelativename'];
    +							$newfullpathselecteddir='';
    +							if ($modulepart == 'ecm')
    +							{
    +								$newfullpathselecteddir=$conf->ecm->dir_output.'/'.($val['fullrelativename'] != '/' ? $val['fullrelativename'] : '');
    +							}
    +							elseif ($modulepart == 'medias')
    +							{
    +								$newfullpathselecteddir=$dolibarr_main_data_root.'/medias/'.($val['fullrelativename'] != '/' ? $val['fullrelativename'] : '');
    +							}
    +
    +							if ($newfullpathselecteddir) treeOutputForAbsoluteDir($sqltree, $newselecteddir, $newfullpathselecteddir, $modulepart, $websitekey, $pageid, $preopened, $fullpathpreopened, $depth+1);
    +						}
    +
    +						print "</li>\n";
    +					}
    +				}
    +
    +				echo "</ul>\n";
    +			}
    +		}
    +		else print "PermissionDenied";
    +	}
    +}
    +
    diff --git a/htdocs/core/ajax/box.php b/htdocs/core/ajax/box.php
    index f6bd5b5214a..93b317a43c9 100644
    --- a/htdocs/core/ajax/box.php
    +++ b/htdocs/core/ajax/box.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2007-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/ajax/check_notifications.php b/htdocs/core/ajax/check_notifications.php
    index 6984bbff5b4..a5c73655bab 100644
    --- a/htdocs/core/ajax/check_notifications.php
    +++ b/htdocs/core/ajax/check_notifications.php
    @@ -44,37 +44,37 @@ $eventfound = array();
     //dol_syslog('time='.$time.' $_SESSION[auto_ck_events_not_before]='.$_SESSION['auto_check_events_not_before']);
     
     // TODO Try to make a solution with only a javascript timer that is easier. Difficulty is to avoid notification twice when several tabs are opened.
    -if ($time >= $_SESSION['auto_check_events_not_before']) 
    +if ($time >= $_SESSION['auto_check_events_not_before'])
     {
         $time_update = (int) $conf->global->MAIN_BROWSER_NOTIFICATION_FREQUENCY;   // Always defined
    -    if (! empty($_SESSION['auto_check_events_not_before'])) 
    +    if (! empty($_SESSION['auto_check_events_not_before']))
         {
             // We start scan from the not before so if two tabs were opend at differents seconds and we close one (so the js timer),
    -        // then we are not losing periods 
    +        // then we are not losing periods
             $starttime = $_SESSION['auto_check_events_not_before'];
             // Protection to avoid too long sessions
    -        if ($starttime < ($time - (int) $conf->global->MAIN_SESSION_TIMEOUT)) 
    +        if ($starttime < ($time - (int) $conf->global->MAIN_SESSION_TIMEOUT))
             {
                 dol_syslog("We ask to check browser notification on a too large period. We fix this with current date.");
                 $starttime = $time;
             }
         }
    -    else 
    +    else
         {
             $starttime = $time;
         }
    -    
    +
         $_SESSION['auto_check_events_not_before'] = $time + $time_update;
    -    
    -    // Force save of session change we did. 
    +
    +    // Force save of session change we did.
         // WARNING: Any change in sessions after that will not be saved !
         session_write_close();
    -    
    +
         require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
    -	
    -    
    +
    +
         dol_syslog('NEW $_SESSION[auto_check_events_not_before]='.$_SESSION['auto_check_events_not_before']);
    -    
    +
         $sql = 'SELECT id';
         $sql .= ' FROM ' . MAIN_DB_PREFIX . 'actioncomm a, ' . MAIN_DB_PREFIX . 'actioncomm_resources ar';
         $sql .= ' WHERE a.id = ar.fk_actioncomm';
    @@ -91,11 +91,11 @@ if ($time >= $_SESSION['auto_check_events_not_before'])
     
             $actionmod = new ActionComm($db);
     
    -        while ($obj = $db->fetch_object($resql)) 
    +        while ($obj = $db->fetch_object($resql))
             {
    -            $langs->load("agenda");
    -            $langs->load("commercial");
    -            
    +            // Load translation files required by the page
    +            $langs->loadLangs(array('agenda', 'commercial'));
    +
                 $actionmod->fetch($obj->id);
     
                 // Message must be formated and translated to be used with javascript directly
    @@ -105,7 +105,7 @@ if ($time >= $_SESSION['auto_check_events_not_before'])
                 $event['tipo'] = $langs->transnoentities('Action' . $actionmod->code);
                 $event['titulo'] = $actionmod->label;
                 $event['location'] = $langs->transnoentities('Location').': '.$actionmod->location;
    -            
    +
                 $eventfound[] = $event;
             }
         }
    @@ -113,7 +113,6 @@ if ($time >= $_SESSION['auto_check_events_not_before'])
         {
             dol_syslog("Error sql = ".$db->lasterror(), LOG_ERR);
         }
    -
     }
     
     print json_encode($eventfound);
    diff --git a/htdocs/core/ajax/constantonoff.php b/htdocs/core/ajax/constantonoff.php
    index 9e9f8a0d799..0f733f4df5c 100644
    --- a/htdocs/core/ajax/constantonoff.php
    +++ b/htdocs/core/ajax/constantonoff.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011-2015 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011-2015 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/ajax/contacts.php b/htdocs/core/ajax/contacts.php
    index b03b9f128cf..777fa076639 100644
    --- a/htdocs/core/ajax/contacts.php
    +++ b/htdocs/core/ajax/contacts.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012 Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012 Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2016 Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/ajax/extraparams.php b/htdocs/core/ajax/extraparams.php
    index 908c1ef9f11..e5972d29d70 100644
    --- a/htdocs/core/ajax/extraparams.php
    +++ b/htdocs/core/ajax/extraparams.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/ajax/fileupload.php b/htdocs/core/ajax/fileupload.php
    index 9405aa26cf1..1cf5678cb00 100644
    --- a/htdocs/core/ajax/fileupload.php
    +++ b/htdocs/core/ajax/fileupload.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Laurent Destailleur	<eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/ajax/getaccountcurrency.php b/htdocs/core/ajax/getaccountcurrency.php
    index 2289d8e1c0f..d58c81efdba 100644
    --- a/htdocs/core/ajax/getaccountcurrency.php
    +++ b/htdocs/core/ajax/getaccountcurrency.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/ajax/loadinplace.php b/htdocs/core/ajax/loadinplace.php
    index 099f66ba3de..abf3efba7db 100644
    --- a/htdocs/core/ajax/loadinplace.php
    +++ b/htdocs/core/ajax/loadinplace.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011-2014 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011-2014 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/ajax/price.php b/htdocs/core/ajax/price.php
    index 577f659b2cc..3eab18216d1 100644
    --- a/htdocs/core/ajax/price.php
    +++ b/htdocs/core/ajax/price.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -25,7 +25,7 @@ if (! defined('NOREQUIREMENU'))  define('NOREQUIREMENU','1');
     if (! defined('NOREQUIREAJAX'))  define('NOREQUIREAJAX','1');
     if (! defined('NOREQUIRESOC'))   define('NOREQUIRESOC','1');
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     
     $output		= GETPOST('output','alpha');
     $amount		= price2num(GETPOST('amount','alpha'));
    @@ -52,7 +52,6 @@ if (! empty($output) && isset($amount) && isset($tva_tx))
     			$price = price2num($amount * (1 + ($tva_tx/100)), 'MU');
     			$return['price_ht'] = $amount;
     			$return['price_ttc'] = (isset($price) && $price != '' ? price($price) : '');
    -
     		}
     		else if ($output == 'price_ht') {
     
    diff --git a/htdocs/core/ajax/row.php b/htdocs/core/ajax/row.php
    index 98f18df8a68..5348f36976d 100644
    --- a/htdocs/core/ajax/row.php
    +++ b/htdocs/core/ajax/row.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2015 Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2015 Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2017      Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -42,8 +42,8 @@ top_httphead();
     print '<!-- Ajax page called with url '.dol_escape_htmltag($_SERVER["PHP_SELF"]).'?'.dol_escape_htmltag($_SERVER["QUERY_STRING"]).' -->'."\n";
     
     // Registering the location of boxes
    -if ((isset($_POST['roworder']) && ! empty($_POST['roworder'])) && (isset($_POST['table_element_line']) && ! empty($_POST['table_element_line']))
    -	&& (isset($_POST['fk_element']) && ! empty($_POST['fk_element'])) && (isset($_POST['element_id']) && ! empty($_POST['element_id'])) )
    +if ((! empty($_POST['roworder'])) && (! empty($_POST['table_element_line']))
    +	&& (! empty($_POST['fk_element'])) && (! empty($_POST['element_id'])))
     {
     	$roworder=GETPOST('roworder','alpha',2);
     	$table_element_line=GETPOST('table_element_line','alpha',2);
    @@ -53,6 +53,7 @@ if ((isset($_POST['roworder']) && ! empty($_POST['roworder'])) && (isset($_POST[
     	dol_syslog("AjaxRow roworder=".$roworder." table_element_line=".$table_element_line." fk_element=".$fk_element." element_id=".$element_id, LOG_DEBUG);
     
     	$rowordertab = explode(',',$roworder);
    +	$newrowordertab = array();
     	foreach($rowordertab as $value)
     	{
     		if (! empty($value)) $newrowordertab[] = $value;
    @@ -62,6 +63,7 @@ if ((isset($_POST['roworder']) && ! empty($_POST['roworder'])) && (isset($_POST[
     	$row->table_element_line = $table_element_line;
     	$row->fk_element = $fk_element;
     	$row->id = $element_id;
    +
     	$row->line_ajaxorder($newrowordertab);		// This update field rank or position in table row->table_element_line
     
     	// Reorder line to have position of children lines sharing same counter than parent lines
    diff --git a/htdocs/core/ajax/saveinplace.php b/htdocs/core/ajax/saveinplace.php
    index 7070d1a8799..188dcbb29da 100644
    --- a/htdocs/core/ajax/saveinplace.php
    +++ b/htdocs/core/ajax/saveinplace.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011-2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011-2012 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/ajax/security.php b/htdocs/core/ajax/security.php
    index fa1ce2103d4..d6bfe51b45c 100644
    --- a/htdocs/core/ajax/security.php
    +++ b/htdocs/core/ajax/security.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011-2015 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011-2015 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/ajax/selectsearchbox.php b/htdocs/core/ajax/selectsearchbox.php
    index 364903c9cd7..8d6c4fe0c31 100644
    --- a/htdocs/core/ajax/selectsearchbox.php
    +++ b/htdocs/core/ajax/selectsearchbox.php
    @@ -155,6 +155,12 @@ if (empty($reshook))
     }
     else $arrayresult=$hookmanager->resArray;
     
    +// This allow to keep a search entry to the top
    +if(! empty($conf->global->DEFAULT_SEARCH_INTO_MODULE)) {
    +    $key = 'searchinto'.$conf->global->DEFAULT_SEARCH_INTO_MODULE;
    +    if(array_key_exists($key, $arrayresult)) $arrayresult[$key]['position'] = -10;
    +}
    +
     // Sort on position
     $arrayresult = dol_sort_array($arrayresult, 'position');
     
    diff --git a/htdocs/core/ajax/vatrates.php b/htdocs/core/ajax/vatrates.php
    index 3826e521d06..8fe38d02552 100644
    --- a/htdocs/core/ajax/vatrates.php
    +++ b/htdocs/core/ajax/vatrates.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/ajax/ziptown.php b/htdocs/core/ajax/ziptown.php
    index 2100d3d3600..c1af6a2ac22 100644
    --- a/htdocs/core/ajax/ziptown.php
    +++ b/htdocs/core/ajax/ziptown.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010     Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010     Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2011-204 Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/boxes/box_actions.php b/htdocs/core/boxes/box_actions.php
    index f6d9d03dccf..aea85fd111e 100644
    --- a/htdocs/core/boxes/box_actions.php
    +++ b/htdocs/core/boxes/box_actions.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014 	   Charles-Fr BENKE        <charles.fr@benke.fr>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
    @@ -37,7 +37,11 @@ class box_actions extends ModeleBoxes
     	var $boxlabel="BoxLastActions";
     	var $depends = array("agenda");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
     	var $info_box_head = array();
    @@ -228,7 +232,6 @@ class box_actions extends ModeleBoxes
     					}
     				}
     				$out.= '</table>';
    -
     			}
     			$out.= '</div>';
     			if ($actioncejour)
    @@ -256,6 +259,5 @@ class box_actions extends ModeleBoxes
     
     		return '';
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_activity.php b/htdocs/core/boxes/box_activity.php
    index 4fb8cc19c82..413dc43d8b2 100644
    --- a/htdocs/core/boxes/box_activity.php
    +++ b/htdocs/core/boxes/box_activity.php
    @@ -35,7 +35,11 @@ class box_activity extends ModeleBoxes
         var $boxlabel='BoxGlobalActivity';
         var $depends = array("facture");
     
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
         var $param;
         var $enabled = 1;
     
    @@ -285,7 +289,7 @@ class box_activity extends ModeleBoxes
             		$sql.= " FROM (".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f";
             		if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
             		$sql.= ")";
    -        		$sql.= " WHERE f.entity IN (".getEntity('facture').')';
    +        		$sql.= " WHERE f.entity IN (".getEntity('invoice').')';
             		if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
             		if($user->societe_id) $sql.= " AND s.rowid = ".$user->societe_id;
             		$sql.= " AND f.fk_soc = s.rowid";
    @@ -367,7 +371,7 @@ class box_activity extends ModeleBoxes
             	if ($refresh) {
             		$sql = "SELECT f.fk_statut, SUM(f.total_ttc) as Mnttot, COUNT(*) as nb";
             		$sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f";
    -        		$sql.= " WHERE f.entity IN (".getEntity('facture').')';
    +        		$sql.= " WHERE f.entity IN (".getEntity('invoice').')';
             		$sql.= " AND f.fk_soc = s.rowid";
             		$sql.= " AND f.datef >= '".$db->idate($tmpdate)."' AND f.paye=0";
             		$sql.= " GROUP BY f.fk_statut";
    diff --git a/htdocs/core/boxes/box_bookmarks.php b/htdocs/core/boxes/box_bookmarks.php
    index e2a45ffab22..c3a29877104 100644
    --- a/htdocs/core/boxes/box_bookmarks.php
    +++ b/htdocs/core/boxes/box_bookmarks.php
    @@ -33,7 +33,11 @@ class box_bookmarks extends ModeleBoxes
     	var $boxlabel="BoxMyLastBookmarks";
     	var $depends = array("bookmark");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
     	var $info_box_head = array();
    @@ -157,6 +161,5 @@ class box_bookmarks extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_clients.php b/htdocs/core/boxes/box_clients.php
    index 7ab2de66a7b..9b1e4e34261 100644
    --- a/htdocs/core/boxes/box_clients.php
    +++ b/htdocs/core/boxes/box_clients.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -37,7 +37,11 @@ class box_clients extends ModeleBoxes
     	var $boxlabel="BoxLastCustomers";
     	var $depends = array("societe");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $enabled = 1;
     
     	var $info_box_head = array();
    @@ -159,7 +163,6 @@ class box_clients extends ModeleBoxes
                     'text' => $langs->trans("ReadPermissionNotAllowed")
     			);
     		}
    -
     	}
     
     	/**
    @@ -174,6 +177,5 @@ class box_clients extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_commandes.php b/htdocs/core/boxes/box_commandes.php
    index 9bbde140dbe..3f86909f04a 100644
    --- a/htdocs/core/boxes/box_commandes.php
    +++ b/htdocs/core/boxes/box_commandes.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -37,7 +37,11 @@ class box_commandes extends ModeleBoxes
         var $boxlabel="BoxLastCustomerOrders";
         var $depends = array("commande");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
         var $info_box_head = array();
    @@ -198,6 +202,5 @@ class box_commandes extends ModeleBoxes
         {
             return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
         }
    -
     }
     
    diff --git a/htdocs/core/boxes/box_comptes.php b/htdocs/core/boxes/box_comptes.php
    index 52f8e6c7d9e..5a5c2f59986 100644
    --- a/htdocs/core/boxes/box_comptes.php
    +++ b/htdocs/core/boxes/box_comptes.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Christophe
      * Copyright (C) 2005-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
    @@ -38,7 +38,11 @@ class box_comptes extends ModeleBoxes
     	var $boxlabel="BoxCurrentAccounts";
     	var $depends = array("banque");     // Box active if module banque active
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     	var $enabled = 1;
     
    @@ -170,7 +174,6 @@ class box_comptes extends ModeleBoxes
                     'text' => $langs->trans("ReadPermissionNotAllowed")
                 );
             }
    -
     	}
     
     	/**
    @@ -185,6 +188,5 @@ class box_comptes extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_contacts.php b/htdocs/core/boxes/box_contacts.php
    index a8dc7f1231d..2d9d7e9461b 100644
    --- a/htdocs/core/boxes/box_contacts.php
    +++ b/htdocs/core/boxes/box_contacts.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      * Copyright (C) 2018      Josep Lluís Amador   <joseplluis@lliuretic.cat>
      *
    @@ -39,7 +39,11 @@ class box_contacts extends ModeleBoxes
     	var $boxlabel="BoxLastContacts";
     	var $depends = array("societe");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
     	var $info_box_head = array();
    @@ -185,6 +189,5 @@ class box_contacts extends ModeleBoxes
     	{
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_contracts.php b/htdocs/core/boxes/box_contracts.php
    index 49d6df67d7f..7239fa78919 100644
    --- a/htdocs/core/boxes/box_contracts.php
    +++ b/htdocs/core/boxes/box_contracts.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010      Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      * Copyright (C) 2016-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
      *
    @@ -36,7 +36,11 @@ class box_contracts extends ModeleBoxes
         var $boxlabel="BoxLastContracts";
         var $depends = array("contrat");	// conf->contrat->enabled
     
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
         var $param;
     
         var $info_box_head = array();
    @@ -79,7 +83,7 @@ class box_contracts extends ModeleBoxes
             	$contractstatic=new Contrat($db);
             	$thirdpartytmp=new Societe($db);
     
    -    	    $sql = "SELECT s.nom as name, s.rowid as socid,";
    +    	    $sql = "SELECT s.nom as name, s.rowid as socid, s.email, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,";
         		$sql.= " c.rowid, c.ref, c.statut as fk_statut, c.date_contrat, c.datec, c.fin_validite, c.date_cloture";
         		$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c";
         		if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    @@ -104,6 +108,7 @@ class box_contracts extends ModeleBoxes
                     while ($line < $num)
                     {
         				$objp = $db->fetch_object($resql);
    +
         				$datec=$db->jdate($objp->datec);
         				$dateterm=$db->jdate($objp->fin_validite);
         				$dateclose=$db->jdate($objp->date_cloture);
    @@ -116,6 +121,13 @@ class box_contracts extends ModeleBoxes
     
         				$thirdpartytmp->name = $objp->name;
         				$thirdpartytmp->id = $objp->socid;
    +    				$thirdpartytmp->email = $objp->email;
    +    				$thirdpartytmp->client = $objp->client;
    +    				$thirdpartytmp->fournisseur = $objp->fournisseur;
    +    				$thirdpartytmp->code_client = $objp->code_client;
    +    				$thirdpartytmp->code_fournisseur = $objp->code_fournisseur;
    +    				$thirdpartytmp->code_compta = $objp->code_compta;
    +    				$thirdpartytmp->code_compta_fournisseur = $objp->code_compta_fournisseur;
     
         				// fin_validite is no more on contract but on services
         				// if ($objp->fk_statut == 1 && $dateterm < ($now - $conf->contrat->cloture->warning_delay)) { $late = img_warning($langs->trans("Late")); }
    @@ -181,6 +193,5 @@ class box_contracts extends ModeleBoxes
         {
             return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
         }
    -
     }
     
    diff --git a/htdocs/core/boxes/box_external_rss.php b/htdocs/core/boxes/box_external_rss.php
    index 01eb4ac8893..fa7d35f6db0 100644
    --- a/htdocs/core/boxes/box_external_rss.php
    +++ b/htdocs/core/boxes/box_external_rss.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Eric Seigne          <erics@rycks.com>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -39,7 +39,11 @@ class box_external_rss extends ModeleBoxes
         var $boxlabel="BoxLastRssInfos";
         var $depends = array("externalrss");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $paramdef;	// Params of box definition (not user params)
     
         var $info_box_head = array();
    @@ -107,6 +111,7 @@ class box_external_rss extends ModeleBoxes
                     'sublink' => $link,
                     'subtext'=>$langs->trans("LastRefreshDate").': '.($rssparser->getLastFetchDate()?dol_print_date($rssparser->getLastFetchDate(),"dayhourtext"):$langs->trans("Unknown")),
                     'subpicto'=>'help',
    +		'target'=>'_blank',
                 );
     		}
     
    @@ -194,6 +199,5 @@ class box_external_rss extends ModeleBoxes
         {
             return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
         }
    -
     }
     
    diff --git a/htdocs/core/boxes/box_factures.php b/htdocs/core/boxes/box_factures.php
    index 9b457bab856..ae4a32fad7c 100644
    --- a/htdocs/core/boxes/box_factures.php
    +++ b/htdocs/core/boxes/box_factures.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -35,7 +35,11 @@ class box_factures extends ModeleBoxes
     	var $boxlabel="BoxLastCustomerBills";
     	var $depends = array("facture");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
     	var $info_box_head = array();
    @@ -85,7 +89,7 @@ class box_factures extends ModeleBoxes
     
             if ($user->rights->facture->lire) {
                 $sql = "SELECT f.rowid as facid";
    -            $sql.= ", f.facnumber, f.type, f.total as total_ht";
    +            $sql.= ", f.ref, f.type, f.total as total_ht";
                 $sql.= ", f.tva as total_tva";
                 $sql.= ", f.total_ttc";
                 $sql.= ", f.datef as df";
    @@ -96,11 +100,11 @@ class box_factures extends ModeleBoxes
     			if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
     			$sql.= ")";
     			$sql.= " WHERE f.fk_soc = s.rowid";
    -			$sql.= " AND f.entity = ".$conf->entity;
    +			$sql.= " AND f.entity IN (".getEntity('invoice').")";
     			if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
     			if($user->societe_id)	$sql.= " AND s.rowid = ".$user->societe_id;
    -            if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql.= " ORDER BY f.datef DESC, f.facnumber DESC ";
    -            else $sql.= " ORDER BY f.tms DESC, f.facnumber DESC ";
    +            if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql.= " ORDER BY f.datef DESC, f.ref DESC ";
    +            else $sql.= " ORDER BY f.tms DESC, f.ref DESC ";
     			$sql.= $db->plimit($max, 0);
     
     			$result = $db->query($sql);
    @@ -119,7 +123,7 @@ class box_factures extends ModeleBoxes
                         $datem = $db->jdate($objp->tms);
     
                         $facturestatic->id = $objp->facid;
    -                    $facturestatic->ref = $objp->facnumber;
    +                    $facturestatic->ref = $objp->ref;
                         $facturestatic->type = $objp->type;
                         $facturestatic->total_ht = $objp->total_ht;
                         $facturestatic->total_tva = $objp->total_tva;
    @@ -189,7 +193,6 @@ class box_factures extends ModeleBoxes
                         'text' => ($db->error().' sql='.$sql),
                     );
                 }
    -
             } else {
                 $this->info_box_contents[0][0] = array(
                     'td' => 'align="left" class="nohover opacitymedium"',
    @@ -210,5 +213,4 @@ class box_factures extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
    diff --git a/htdocs/core/boxes/box_factures_fourn.php b/htdocs/core/boxes/box_factures_fourn.php
    index 00df80f334b..617f041d7d2 100644
    --- a/htdocs/core/boxes/box_factures_fourn.php
    +++ b/htdocs/core/boxes/box_factures_fourn.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -36,7 +36,11 @@ class box_factures_fourn extends ModeleBoxes
     	var $boxlabel="BoxLastSupplierBills";
     	var $depends = array("facture","fournisseur");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
     	var $info_box_head = array();
    @@ -214,6 +218,5 @@ class box_factures_fourn extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_factures_fourn_imp.php b/htdocs/core/boxes/box_factures_fourn_imp.php
    index 1f894be3309..bd8fde32aab 100644
    --- a/htdocs/core/boxes/box_factures_fourn_imp.php
    +++ b/htdocs/core/boxes/box_factures_fourn_imp.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -35,7 +35,11 @@ class box_factures_fourn_imp extends ModeleBoxes
     	var $boxlabel = "BoxOldestUnpaidSupplierBills";
     	var $depends = array("facture","fournisseur");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
     	var $info_box_head = array();
    @@ -187,7 +191,6 @@ class box_factures_fourn_imp extends ModeleBoxes
                     'text' => $langs->trans("ReadPermissionNotAllowed")
                 );
             }
    -
         }
     
     	/**
    @@ -202,6 +205,5 @@ class box_factures_fourn_imp extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_factures_imp.php b/htdocs/core/boxes/box_factures_imp.php
    index 32fa7c823d7..11331f7f3e7 100644
    --- a/htdocs/core/boxes/box_factures_imp.php
    +++ b/htdocs/core/boxes/box_factures_imp.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -38,7 +38,11 @@ class box_factures_imp extends ModeleBoxes
     	var $boxlabel="BoxOldestUnpaidCustomerBills";
     	var $depends = array("facture");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
     	var $info_box_head = array();
    @@ -85,7 +89,7 @@ class box_factures_imp extends ModeleBoxes
     			$sql = "SELECT s.nom as name, s.rowid as socid, s.email,";
                 $sql.= " s.code_client,";
                 $sql.= " s.logo,";
    -			$sql.= " f.facnumber, f.date_lim_reglement as datelimite,";
    +			$sql.= " f.ref, f.date_lim_reglement as datelimite,";
                 $sql.= " f.type,";
     			$sql.= " f.amount, f.datef as df,";
                 $sql.= " f.total as total_ht,";
    @@ -98,15 +102,15 @@ class box_factures_imp extends ModeleBoxes
     			$sql.= ", ".MAIN_DB_PREFIX."facture as f";
     			$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiement_facture as pf ON f.rowid=pf.fk_facture ";
     			$sql.= " WHERE f.fk_soc = s.rowid";
    -			$sql.= " AND f.entity = ".$conf->entity;
    +			$sql.= " AND f.entity IN (".getEntity('invoice').")";
     			$sql.= " AND f.paye = 0";
     			$sql.= " AND fk_statut = 1";
     			if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
     			if($user->societe_id) $sql.= " AND s.rowid = ".$user->societe_id;
    -			$sql.= " GROUP BY s.nom, s.rowid, s.code_client, s.logo, f.facnumber, f.date_lim_reglement,";
    +			$sql.= " GROUP BY s.nom, s.rowid, s.code_client, s.logo, f.ref, f.date_lim_reglement,";
     			$sql.= " f.type, f.amount, f.datef, f.total, f.tva, f.total_ttc, f.paye, f.fk_statut, f.rowid";
    -			//$sql.= " ORDER BY f.datef DESC, f.facnumber DESC ";
    -			$sql.= " ORDER BY datelimite ASC, f.facnumber ASC ";
    +			//$sql.= " ORDER BY f.datef DESC, f.ref DESC ";
    +			$sql.= " ORDER BY datelimite ASC, f.ref ASC ";
     			$sql.= $db->plimit($max, 0);
     
     			$result = $db->query($sql);
    @@ -123,7 +127,7 @@ class box_factures_imp extends ModeleBoxes
     					$objp = $db->fetch_object($result);
     					$datelimite=$db->jdate($objp->datelimite);
                         $facturestatic->id = $objp->facid;
    -                    $facturestatic->ref = $objp->facnumber;
    +                    $facturestatic->ref = $objp->ref;
                         $facturestatic->type = $objp->type;
                         $facturestatic->total_ht = $objp->total_ht;
                         $facturestatic->total_tva = $objp->total_tva;
    @@ -207,5 +211,4 @@ class box_factures_imp extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
    diff --git a/htdocs/core/boxes/box_ficheinter.php b/htdocs/core/boxes/box_ficheinter.php
    index ef7ba62c15c..76d1414f53f 100644
    --- a/htdocs/core/boxes/box_ficheinter.php
    +++ b/htdocs/core/boxes/box_ficheinter.php
    @@ -36,7 +36,11 @@ class box_ficheinter extends ModeleBoxes
     	var $boxlabel="BoxFicheInter";
     	var $depends = array("ficheinter");	// conf->contrat->enabled
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
     	var $info_box_head = array();
    @@ -166,6 +170,5 @@ class box_ficheinter extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_fournisseurs.php b/htdocs/core/boxes/box_fournisseurs.php
    index 32ffd1f5618..c66c7f674c2 100644
    --- a/htdocs/core/boxes/box_fournisseurs.php
    +++ b/htdocs/core/boxes/box_fournisseurs.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2006 Destailleur Laurent  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -36,7 +36,11 @@ class box_fournisseurs extends ModeleBoxes
         var $boxlabel="BoxLastSuppliers";
         var $depends = array("fournisseur");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
         var $info_box_head = array();
    @@ -146,7 +150,6 @@ class box_fournisseurs extends ModeleBoxes
                     'text' => $langs->trans("ReadPermissionNotAllowed")
                 );
             }
    -
         }
     
     	/**
    @@ -161,6 +164,5 @@ class box_fournisseurs extends ModeleBoxes
         {
             return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
         }
    -
     }
     
    diff --git a/htdocs/core/boxes/box_goodcustomers.php b/htdocs/core/boxes/box_goodcustomers.php
    index 8e4ec988144..138326d6c01 100644
    --- a/htdocs/core/boxes/box_goodcustomers.php
    +++ b/htdocs/core/boxes/box_goodcustomers.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      * Copyright (C) 2016      Charlie Benke        <charlie@patas-monkey.com>
      *
    @@ -38,7 +38,11 @@ class box_goodcustomers extends ModeleBoxes
     	var $boxlabel="BoxGoodCustomers";
     	var $depends = array("societe");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $enabled = 1;
     
     	var $info_box_head = array();
    @@ -155,7 +159,6 @@ class box_goodcustomers extends ModeleBoxes
     				'text' => $langs->trans("ReadPermissionNotAllowed")
     			);
     		}
    -
     	}
     
     	/**
    diff --git a/htdocs/core/boxes/box_graph_invoices_permonth.php b/htdocs/core/boxes/box_graph_invoices_permonth.php
    index abbdc7b7c71..fd0b4e593c0 100644
    --- a/htdocs/core/boxes/box_graph_invoices_permonth.php
    +++ b/htdocs/core/boxes/box_graph_invoices_permonth.php
    @@ -33,7 +33,10 @@ class box_graph_invoices_permonth extends ModeleBoxes
     	var $boxlabel="BoxCustomersInvoicesPerMonth";
     	var $depends = array("facture");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	var $info_box_head = array();
     	var $info_box_contents = array();
    @@ -255,7 +258,6 @@ class box_graph_invoices_permonth extends ModeleBoxes
     			{
     				$this->info_box_contents[0][0] = array('tr'=>'class="oddeven nohover"', 'td' => 'align="left" class="nohover"', 'maxlength'=>500, 'text' => $mesg);
     			}
    -
     		}
     		else {
     			$this->info_box_contents[0][0] = array(
    @@ -277,6 +279,5 @@ class box_graph_invoices_permonth extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php b/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php
    index 53d9ce08059..f13b19259c9 100644
    --- a/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php
    +++ b/htdocs/core/boxes/box_graph_invoices_supplier_permonth.php
    @@ -33,7 +33,10 @@ class box_graph_invoices_supplier_permonth extends ModeleBoxes
     	var $boxlabel="BoxSuppliersInvoicesPerMonth";
     	var $depends = array("fournisseur");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	var $info_box_head = array();
     	var $info_box_contents = array();
    @@ -254,7 +257,6 @@ class box_graph_invoices_supplier_permonth extends ModeleBoxes
         	        										'maxlength'=>500,
     	            										'text' => $mesg);
     			}
    -
     		}
     		else {
     			$this->info_box_contents[0][0] = array(
    @@ -276,6 +278,5 @@ class box_graph_invoices_supplier_permonth extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_graph_orders_permonth.php b/htdocs/core/boxes/box_graph_orders_permonth.php
    index 05a0ff498ec..fefa90c5fea 100644
    --- a/htdocs/core/boxes/box_graph_orders_permonth.php
    +++ b/htdocs/core/boxes/box_graph_orders_permonth.php
    @@ -33,7 +33,10 @@ class box_graph_orders_permonth extends ModeleBoxes
     	var $boxlabel="BoxCustomersOrdersPerMonth";
     	var $depends = array("commande");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	var $info_box_head = array();
     	var $info_box_contents = array();
    @@ -253,7 +256,6 @@ class box_graph_orders_permonth extends ModeleBoxes
         	        										'maxlength'=>500,
     	            										'text' => $mesg);
     			}
    -
     		}
     		else {
     			$this->info_box_contents[0][0] = array(
    @@ -275,6 +277,5 @@ class box_graph_orders_permonth extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_graph_orders_supplier_permonth.php b/htdocs/core/boxes/box_graph_orders_supplier_permonth.php
    index e88ed46be72..e388d226fd2 100644
    --- a/htdocs/core/boxes/box_graph_orders_supplier_permonth.php
    +++ b/htdocs/core/boxes/box_graph_orders_supplier_permonth.php
    @@ -33,7 +33,10 @@ class box_graph_orders_supplier_permonth extends ModeleBoxes
     	var $boxlabel="BoxSuppliersOrdersPerMonth";
     	var $depends = array("fournisseur");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	var $info_box_head = array();
     	var $info_box_contents = array();
    @@ -252,7 +255,6 @@ class box_graph_orders_supplier_permonth extends ModeleBoxes
         	        										'maxlength'=>500,
     	            										'text' => $mesg);
     			}
    -
     		}
     		else {
     			$this->info_box_contents[0][0] = array(
    @@ -274,6 +276,5 @@ class box_graph_orders_supplier_permonth extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_graph_product_distribution.php b/htdocs/core/boxes/box_graph_product_distribution.php
    index 39a7a3984d2..9dc4c162e0f 100644
    --- a/htdocs/core/boxes/box_graph_product_distribution.php
    +++ b/htdocs/core/boxes/box_graph_product_distribution.php
    @@ -1,5 +1,6 @@
     <?php
     /* Copyright (C) 2013-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -33,7 +34,11 @@ class box_graph_product_distribution extends ModeleBoxes
     	var $boxlabel="BoxProductDistribution";
     	var $depends = array("product|service","facture|propal|commande");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
     	var $info_box_head = array();
    @@ -135,10 +140,10 @@ class box_graph_product_distribution extends ModeleBoxes
     
     		if (! empty($conf->facture->enabled) && ! empty($user->rights->facture->lire))
     		{
    -
     			// Build graphic number of object. $data = array(array('Lib',val1,val2,val3),...)
     			if ($showinvoicenb)
     			{
    +                $langs->load("bills");
     				include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facturestats.class.php';
     
     				$showpointvalue = 1; $nocolor = 0;
    @@ -198,6 +203,7 @@ class box_graph_product_distribution extends ModeleBoxes
     			// Build graphic number of object. $data = array(array('Lib',val1,val2,val3),...)
     			if ($showpropalnb)
     			{
    +                $langs->load("propal");
     				include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propalestats.class.php';
     
     				$showpointvalue = 1; $nocolor = 0;
    @@ -254,11 +260,10 @@ class box_graph_product_distribution extends ModeleBoxes
     
     		if (! empty($conf->commande->enabled) && ! empty($user->rights->commande->lire))
     		{
    -			$langs->load("orders");
    -
     			// Build graphic number of object. $data = array(array('Lib',val1,val2,val3),...)
     			if ($showordernb)
     			{
    +			    $langs->load("orders");
     				include_once DOL_DOCUMENT_ROOT.'/commande/class/commandestats.class.php';
     
     				$showpointvalue = 1; $nocolor = 0;
    @@ -397,7 +402,6 @@ class box_graph_product_distribution extends ModeleBoxes
     				'text' => $mesg
     			);
     		}
    -
     	}
     
     	/**
    @@ -412,6 +416,5 @@ class box_graph_product_distribution extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_graph_propales_permonth.php b/htdocs/core/boxes/box_graph_propales_permonth.php
    index 4f05e186b43..f28b0ec2c99 100644
    --- a/htdocs/core/boxes/box_graph_propales_permonth.php
    +++ b/htdocs/core/boxes/box_graph_propales_permonth.php
    @@ -33,7 +33,10 @@ class box_graph_propales_permonth extends ModeleBoxes
     	var $boxlabel="BoxProposalsPerMonth";
     	var $depends = array("propal");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	var $info_box_head = array();
     	var $info_box_contents = array();
    @@ -256,7 +259,6 @@ class box_graph_propales_permonth extends ModeleBoxes
         	        										'maxlength'=>500,
     	            										'text' => $mesg);
     			}
    -
     		}
     		else {
     			$this->info_box_contents[0][0] = array(
    @@ -278,6 +280,5 @@ class box_graph_propales_permonth extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_last_modified_ticket.php b/htdocs/core/boxes/box_last_modified_ticket.php
    index a0613d58f3e..9ce7dd91605 100644
    --- a/htdocs/core/boxes/box_last_modified_ticket.php
    +++ b/htdocs/core/boxes/box_last_modified_ticket.php
    @@ -34,7 +34,12 @@ class box_last_modified_ticket extends ModeleBoxes
         public $boximg = "ticket";
         public $boxlabel;
         public $depends = array("ticket");
    +    
    +    /**
    +     * @var DoliDB Database handler.
    +     */
         public $db;
    +    
         public $param;
         public $info_box_head = array();
         public $info_box_contents = array();
    diff --git a/htdocs/core/boxes/box_last_ticket.php b/htdocs/core/boxes/box_last_ticket.php
    index 2dfa71af904..a824a707168 100644
    --- a/htdocs/core/boxes/box_last_ticket.php
    +++ b/htdocs/core/boxes/box_last_ticket.php
    @@ -34,7 +34,12 @@ class box_last_ticket extends ModeleBoxes
         public $boximg = "ticket";
         public $boxlabel;
         public $depends = array("ticket");
    +    
    +    /**
    +     * @var DoliDB Database handler.
    +     */
         public $db;
    +    
         public $param;
         public $info_box_head = array();
         public $info_box_contents = array();
    diff --git a/htdocs/core/boxes/box_lastlogin.php b/htdocs/core/boxes/box_lastlogin.php
    index 05bd3043b0a..c8149c6384b 100644
    --- a/htdocs/core/boxes/box_lastlogin.php
    +++ b/htdocs/core/boxes/box_lastlogin.php
    @@ -35,7 +35,11 @@ class box_lastlogin extends ModeleBoxes
         var $boxlabel='BoxLoginInformation';
         var $depends = array("user");
     
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
         var $param;
         var $enabled = 1;
     
    @@ -94,7 +98,6 @@ class box_lastlogin extends ModeleBoxes
                 'td' => '',
                 'text' => $tmp,
             );
    -        
         }
     
     
    diff --git a/htdocs/core/boxes/box_members.php b/htdocs/core/boxes/box_members.php
    index e5819f0f14c..b0f999f54f1 100644
    --- a/htdocs/core/boxes/box_members.php
    +++ b/htdocs/core/boxes/box_members.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -37,7 +37,11 @@ class box_members extends ModeleBoxes
     	var $boxlabel="BoxLastMembers";
     	var $depends = array("adherent");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     	var $enabled = 1;
     
    @@ -164,7 +168,6 @@ class box_members extends ModeleBoxes
                     'text' => $langs->trans("ReadPermissionNotAllowed")
                 );
             }
    -
         }
     
     	/**
    @@ -179,6 +182,5 @@ class box_members extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_produits.php b/htdocs/core/boxes/box_produits.php
    index 53449afceeb..3dd66eb1da2 100644
    --- a/htdocs/core/boxes/box_produits.php
    +++ b/htdocs/core/boxes/box_produits.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -38,7 +38,11 @@ class box_produits extends ModeleBoxes
     	var $boxlabel="BoxLastProducts";
     	var $depends = array("produit");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
     	var $param;
     
     	var $info_box_head = array();
    @@ -131,13 +135,13 @@ class box_produits extends ModeleBoxes
     					$productstatic->entity = $objp->entity;
     
     					$this->info_box_contents[$line][] = array(
    -                        'td' => 'class="tdoverflowmax150 maxwidth150onsmartphone"',
    +                        'td' => 'class="tdoverflowmax100 maxwidth100onsmartphone"',
                             'text' => $productstatic->getNomUrl(1),
                             'asis' => 1,
                         );
     
                         $this->info_box_contents[$line][] = array(
    -                        'td' => 'class="tdoverflowmax150 maxwidth150onsmartphone"',
    +                        'td' => 'class="tdoverflowmax100 maxwidth100onsmartphone"',
                             'text' => $objp->label,
                         );
     
    @@ -226,6 +230,5 @@ class box_produits extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_produits_alerte_stock.php b/htdocs/core/boxes/box_produits_alerte_stock.php
    index ee49e9e4534..896ceb93df6 100644
    --- a/htdocs/core/boxes/box_produits_alerte_stock.php
    +++ b/htdocs/core/boxes/box_produits_alerte_stock.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2005-2012 Maxime Kohlhaas      <mko@atm-consulting.fr>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      * Copyright (C) 2015      Juanjo Menent	    <jmenent@2byte.es>
    @@ -40,7 +40,11 @@ class box_produits_alerte_stock extends ModeleBoxes
     	var $boxlabel="BoxProductsAlertStock";
     	var $depends = array("produit");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $param;
     
     	var $info_box_head = array();
    @@ -238,6 +242,5 @@ class box_produits_alerte_stock extends ModeleBoxes
         {
             return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_project.php b/htdocs/core/boxes/box_project.php
    index 976cbf1766c..a48543a00f6 100644
    --- a/htdocs/core/boxes/box_project.php
    +++ b/htdocs/core/boxes/box_project.php
    @@ -23,7 +23,7 @@
      *  \ingroup    projet
      *  \brief      Module to show Projet activity of the current Year
      */
    -include_once(DOL_DOCUMENT_ROOT."/core/boxes/modules_boxes.php");
    +include_once DOL_DOCUMENT_ROOT."/core/boxes/modules_boxes.php";
     
     /**
      * Class to manage the box to show last projet
    @@ -34,7 +34,12 @@ class box_project extends ModeleBoxes
     	var $boximg="object_projectpub";
     	var $boxlabel;
     	//var $depends = array("projet");
    -	var $db;
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
     	var $param;
     
     	var $info_box_head = array();
    @@ -49,8 +54,9 @@ class box_project extends ModeleBoxes
         function __construct($db,$param='')
         {
             global $user, $langs;
    -        $langs->load("boxes");
    -        $langs->load("projects");
    +
    +        // Load translation files required by the page
    +        $langs->loadLangs(array('boxes', 'projects'));
     
             $this->db = $db;
             $this->boxlabel="Projects";
    @@ -80,7 +86,7 @@ class box_project extends ModeleBoxes
     		// list the summary of the orders
     		if ($user->rights->projet->lire) {
     
    -		    include_once(DOL_DOCUMENT_ROOT.'/projet/class/project.class.php');
    +		    include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     		    $projectstatic = new Project($this->db);
     
     		    $socid=$user->societe_id;
    @@ -179,7 +185,6 @@ class box_project extends ModeleBoxes
                 'td' => '',
                 'text' => "&nbsp;",
             );
    -
     	}
     
     	/**
    diff --git a/htdocs/core/boxes/box_propales.php b/htdocs/core/boxes/box_propales.php
    index 8dad41f64a1..2b3426f21b8 100644
    --- a/htdocs/core/boxes/box_propales.php
    +++ b/htdocs/core/boxes/box_propales.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -37,7 +37,11 @@ class box_propales extends ModeleBoxes
         var $boxlabel="BoxLastProposals";
         var $depends = array("propal");	// conf->propal->enabled
     
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
         var $param;
     
         var $info_box_head = array();
    @@ -188,6 +192,5 @@ class box_propales extends ModeleBoxes
         {
             return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
         }
    -
     }
     
    diff --git a/htdocs/core/boxes/box_prospect.php b/htdocs/core/boxes/box_prospect.php
    index 3186d0d30ce..a4382f86048 100644
    --- a/htdocs/core/boxes/box_prospect.php
    +++ b/htdocs/core/boxes/box_prospect.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -39,7 +39,11 @@ class box_prospect extends ModeleBoxes
     	var $boxlabel="BoxLastProspects";
     	var $depends = array("societe");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $enabled = 1;
     
     	var $info_box_head = array();
    @@ -176,6 +180,5 @@ class box_prospect extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_services_contracts.php b/htdocs/core/boxes/box_services_contracts.php
    index 44a1ca020b5..708b781f092 100644
    --- a/htdocs/core/boxes/box_services_contracts.php
    +++ b/htdocs/core/boxes/box_services_contracts.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2017 	   Nicolas Zabouri      <info@inovea-conseil.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -37,7 +37,11 @@ class box_services_contracts extends ModeleBoxes
     	var $boxlabel="BoxLastProductsInContract";
     	var $depends = array("service","contrat");
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
     	var $param;
     
     	var $info_box_head = array();
    @@ -84,8 +88,8 @@ class box_services_contracts extends ModeleBoxes
     		    $thirdpartytmp = new Societe($db);
     		    $productstatic = new Product($db);
     
    -			$sql = "SELECT s.nom as name, s.rowid as socid,";
    -			$sql.= " c.rowid, c.ref, c.statut as contract_status,";
    +			$sql = "SELECT s.nom as name, s.rowid as socid, s.email, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,";
    +			$sql.= " c.rowid, c.ref, c.statut as contract_status, c.ref_customer, c.ref_supplier,";
     			$sql.= " cd.rowid as cdid, cd.label, cd.description, cd.tms as datem, cd.statut, cd.product_type as type,";
     			$sql.= " p.rowid as product_id, p.ref as product_ref, p.label as plabel, p.fk_product_type as ptype, p.entity";
     			$sql.= " FROM (".MAIN_DB_PREFIX."societe as s";
    @@ -123,9 +127,18 @@ class box_services_contracts extends ModeleBoxes
                         $contractstatic->statut=$objp->contract_status;
     					$contractstatic->id=$objp->rowid;
     					$contractstatic->ref=$objp->ref;
    +					$contractstatic->ref_customer=$objp->ref_customer;
    +					$contractstatic->ref_supplier=$objp->ref_supplier;
     
     					$thirdpartytmp->name = $objp->name;
     					$thirdpartytmp->id = $objp->socid;
    +					$thirdpartytmp->email = $objp->email;
    +					$thirdpartytmp->client = $objp->client;
    +					$thirdpartytmp->fournisseur = $objp->fournisseur;
    +					$thirdpartytmp->code_client = $objp->code_client;
    +					$thirdpartytmp->code_fournisseur = $objp->code_fournisseur;
    +					$thirdpartytmp->code_compta = $objp->code_compta;
    +					$thirdpartytmp->code_compta_fournisseur = $objp->code_compta_fournisseur;
     
     					// Multilangs
     					if (! empty($conf->global->MAIN_MULTILANGS) && $objp->product_id > 0) // if option multilang is on
    @@ -177,7 +190,7 @@ class box_services_contracts extends ModeleBoxes
     					}
     
     
    -					$this->info_box_contents[$i][] = array('td' => 'class="tdoverflowmax150 maxwidth150onsmartphone"',
    +					$this->info_box_contents[$i][] = array('td' => 'class="tdoverflowmax100 maxwidth100onsmartphone"',
                         'text' => $s,
     					'asis' => 1
                         );
    @@ -187,7 +200,7 @@ class box_services_contracts extends ModeleBoxes
     					'asis' => 1
                         );
     
    -					$this->info_box_contents[$i][] = array('td' => 'class="tdoverflowmax150 maxwidth150onsmartphone"',
    +					$this->info_box_contents[$i][] = array('td' => 'class="tdoverflowmax100 maxwidth100onsmartphone"',
                         'text' => $thirdpartytmp->getNomUrl(1),
     					'asis' => 1
                         );
    @@ -218,7 +231,6 @@ class box_services_contracts extends ModeleBoxes
                     'text' => $langs->trans("ReadPermissionNotAllowed")
     			);
     		}
    -
     	}
     
     	/**
    @@ -233,6 +245,5 @@ class box_services_contracts extends ModeleBoxes
         {
     		return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
     	}
    -
     }
     
    diff --git a/htdocs/core/boxes/box_services_expired.php b/htdocs/core/boxes/box_services_expired.php
    index 72d4390a2e2..ed62e127816 100644
    --- a/htdocs/core/boxes/box_services_expired.php
    +++ b/htdocs/core/boxes/box_services_expired.php
    @@ -35,7 +35,11 @@ class box_services_expired extends ModeleBoxes
         var $boxlabel="BoxOldestExpiredServices";
         var $depends = array("contrat");	// conf->propal->enabled
     
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
         var $param;
     
         var $info_box_head = array();
    @@ -80,7 +84,7 @@ class box_services_expired extends ModeleBoxes
         	    // Select contracts with at least one expired service
     			$sql = "SELECT ";
         		$sql.= " c.rowid, c.ref, c.statut as fk_statut, c.date_contrat, c.ref_customer, c.ref_supplier,";
    -			$sql.= " s.nom as name, s.rowid as socid,";
    +			$sql.= " s.nom as name, s.rowid as socid, s.email, s.client, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,";
     			$sql.= " MIN(cd.date_fin_validite) as date_line, COUNT(cd.rowid) as nb_services";
         		$sql.= " FROM ".MAIN_DB_PREFIX."contrat as c, ".MAIN_DB_PREFIX."societe s, ".MAIN_DB_PREFIX."contratdet as cd";
                 if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    @@ -109,8 +113,15 @@ class box_services_expired extends ModeleBoxes
     
         				$objp = $db->fetch_object($resql);
     
    -    				$thirdpartytmp->id = $objp->socid;
         				$thirdpartytmp->name = $objp->name;
    +    				$thirdpartytmp->id = $objp->socid;
    +    				$thirdpartytmp->email = $objp->email;
    +    				$thirdpartytmp->client = $objp->client;
    +    				$thirdpartytmp->fournisseur = $objp->fournisseur;
    +    				$thirdpartytmp->code_client = $objp->code_client;
    +    				$thirdpartytmp->code_fournisseur = $objp->code_fournisseur;
    +    				$thirdpartytmp->code_compta = $objp->code_compta;
    +    				$thirdpartytmp->code_compta_fournisseur = $objp->code_compta_fournisseur;
     
         				$contract->id = $objp->rowid;
         				$contract->ref = $objp->ref;
    @@ -156,8 +167,6 @@ class box_services_expired extends ModeleBoxes
                                                             'maxlength'=>500,
                                                             'text' => ($db->error().' sql='.$sql));
         		}
    -
    -
         	}
         	else
         	{
    @@ -180,6 +189,5 @@ class box_services_expired extends ModeleBoxes
         {
             return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
         }
    -
    - }
    +}
     
    diff --git a/htdocs/core/boxes/box_supplier_orders.php b/htdocs/core/boxes/box_supplier_orders.php
    index 895f411e3d6..4621950843e 100644
    --- a/htdocs/core/boxes/box_supplier_orders.php
    +++ b/htdocs/core/boxes/box_supplier_orders.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2006 Destailleur Laurent  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Raphaël Doursenaud   <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
    @@ -36,7 +36,11 @@ class box_supplier_orders extends ModeleBoxes
         var $boxlabel="BoxLatestSupplierOrders";
         var $depends = array("fournisseur");
     
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
         var $param;
         var $info_box_head = array();
         var $info_box_contents = array();
    @@ -184,6 +188,5 @@ class box_supplier_orders extends ModeleBoxes
         {
             return parent::showBox($this->info_box_head, $this->info_box_contents, $nooutput);
         }
    -
     }
     
    diff --git a/htdocs/core/boxes/box_task.php b/htdocs/core/boxes/box_task.php
    index 3a665243073..cf1e799e486 100644
    --- a/htdocs/core/boxes/box_task.php
    +++ b/htdocs/core/boxes/box_task.php
    @@ -1,6 +1,6 @@
     <?php
    -/* Copyright (C) 2012-2014 Charles-François BENKE <charles.fr@benke.fr>
    - * Copyright (C) 2015      Frederic France        <frederic.france@free.fr>
    +/* Copyright (C) 2012-2018 Charlene BENKE 	<charlie@patas-monkey.com>
    + * Copyright (C) 2015      Frederic France      <frederic.france@free.fr>
      *
      * 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,8 +22,8 @@
      *  \brief      Module to Task activity of the current year
      */
     
    -include_once(DOL_DOCUMENT_ROOT."/core/boxes/modules_boxes.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/date.lib.php");
    +include_once DOL_DOCUMENT_ROOT."/core/boxes/modules_boxes.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php";
     
     
     /**
    @@ -31,16 +31,21 @@ require_once(DOL_DOCUMENT_ROOT."/core/lib/date.lib.php");
      */
     class box_task extends ModeleBoxes
     {
    -    var $boxcode="projet";
    -    var $boximg="object_projecttask";
    -    var $boxlabel;
    -    //var $depends = array("projet");
    -    var $db;
    -    var $param;
    -    var $enabled = 0;		// Disabled because bugged.
    +    public $boxcode="projet";
    +    public $boximg="object_projecttask";
    +    public $boxlabel;
    +    //public $depends = array("projet");
     
    -    var $info_box_head = array();
    -    var $info_box_contents = array();
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    public $param;
    +    public $enabled = 0;		// Disabled because bugged.
    +
    +    public $info_box_head = array();
    +    public $info_box_contents = array();
     
     
         /**
    @@ -52,8 +57,10 @@ class box_task extends ModeleBoxes
         function __construct($db,$param='')
         {
             global $user, $langs;
    -        $langs->load("boxes");
    -        $langs->load("projects");
    +
    +        // Load translation files required by the page
    +        $langs->loadLangs(array('boxes', 'projects'));
    +
             $this->boxlabel="Tasks";
             $this->db = $db;
     
    @@ -75,7 +82,10 @@ class box_task extends ModeleBoxes
     		$totalMnt = 0;
     		$totalnb = 0;
     		$totalDuree=0;
    -		include_once(DOL_DOCUMENT_ROOT."/projet/class/task.class.php");
    +		$totalplannedtot=0;
    +		$totaldurationtot=0;
    +		
    +		include_once DOL_DOCUMENT_ROOT."/projet/class/task.class.php";
     		$taskstatic=new Task($db);
     
     
    @@ -126,13 +136,12 @@ class box_task extends ModeleBoxes
     		}
     
     
    -		// Add the sum à the bottom of the boxes
    +		// Add the sum at the bottom of the boxes
     		$this->info_box_contents[$i][] = array('tr' => 'class="liste_total"', 'td' => '', 'text' => $langs->trans("Total")."&nbsp;".$textHead);
     		$this->info_box_contents[$i][] = array('td' => 'align="right" ', 'text' => number_format($totalnb, 0, ',', ' ')."&nbsp;".$langs->trans("Tasks"));
     		$this->info_box_contents[$i][] = array('td' => 'align="right" ', 'text' => ConvertSecondToTime($totalplannedtot,'all',25200,5));
     		$this->info_box_contents[$i][] = array('td' => 'align="right" ', 'text' => ConvertSecondToTime($totaldurationtot,'all',25200,5));
     		$this->info_box_contents[$i][] = array('td' => '', 'text' => "");
    -
     	}
     
     	/**
    diff --git a/htdocs/core/boxes/modules_boxes.php b/htdocs/core/boxes/modules_boxes.php
    index 61af58a4b8b..9ae35403ec7 100644
    --- a/htdocs/core/boxes/modules_boxes.php
    +++ b/htdocs/core/boxes/modules_boxes.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2013  Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012  Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2014       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2015       Frederic France     <frederic.france@free.fr>
      *
    @@ -31,7 +31,7 @@
      *
      * Boxes parent class
      */
    -class ModeleBoxes    // Can't be abtract as it is instantiated to build "empty" boxes
    +class ModeleBoxes // Can't be abtract as it is instantiated to build "empty" boxes
     {
     	/**
     	 * @var DoliDB Database handler
    @@ -213,7 +213,6 @@ class ModeleBoxes    // Can't be abtract as it is instantiated to build "empty"
             require_once DOL_DOCUMENT_ROOT .'/core/lib/files.lib.php';
     
     		$MAXLENGTHBOX=60;   // Mettre 0 pour pas de limite
    -		$var = false;
     
             $cachetime = 900;   // 900 : 15mn
             $cachedir = DOL_DATA_ROOT.'/boxes/temp';
    @@ -503,8 +502,6 @@ class ModeleBoxes    // Can't be abtract as it is instantiated to build "empty"
     		}
     		return $widget;
     	}
    -
    -
     }
     
     
    diff --git a/htdocs/core/class/CMailFile.class.php b/htdocs/core/class/CMailFile.class.php
    index facc8104740..52d98790dcc 100644
    --- a/htdocs/core/class/CMailFile.class.php
    +++ b/htdocs/core/class/CMailFile.class.php
    @@ -5,7 +5,7 @@
      * Copyright (C) 2000-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Jean-Louis Bergamo   <jlb@j1b.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -59,13 +59,19 @@ class CMailFile
     
     	var $eol;
     	var $eol2;
    -	var $error='';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	var $smtps;			// Contains SMTPs object (if this method is used)
     	var $phpmailer;		// Contains PHPMailer object (if this method is used)
     
    -	//CSS
    -	var $css;
    +	/**
    +	 * @var string CSS
    +	 */
    +	public $css;
     	//! Defined css style for body background
     	var $styleCSS;
     	//! Defined background directly in body tag
    @@ -113,7 +119,7 @@ class CMailFile
     	 *  @param  string  $sendcontext      	 'standard', 'emailing', ... (used to define with sending mode and parameters to use)
     	 *  @param	string	$replyto			 Reply-to email (will be set to same value than From by default if not provided)
     	 */
    -	function __construct($subject,$to,$from,$msg,$filename_list=array(),$mimetype_list=array(),$mimefilename_list=array(),$addr_cc="",$addr_bcc="",$deliveryreceipt=0,$msgishtml=0,$errors_to='',$css='',$trackid='',$moreinheader='',$sendcontext='standard',$replyto='')
    +	function __construct($subject, $to, $from, $msg, $filename_list=array(), $mimetype_list=array(), $mimefilename_list=array(), $addr_cc="", $addr_bcc="", $deliveryreceipt=0, $msgishtml=0, $errors_to='', $css='', $trackid='', $moreinheader='', $sendcontext='standard', $replyto='')
     	{
     		global $conf, $dolibarr_main_data_root;
     
    @@ -377,7 +383,7 @@ class CMailFile
                 //$this->message = new Swift_SignedMessage();
                 // Adding a trackid header to a message
     			$headers = $this->message->getHeaders();
    -			$headers->addTextHeader('X-Dolibarr-TRACKID', $trackid);
    +			$headers->addTextHeader('X-Dolibarr-TRACKID', $trackid . '@' . $host);
     			$headerID = time() . '.swiftmailer-dolibarr-' . $trackid . '@' . $host;
     			$msgid = $headers->get('Message-ID');
     			$msgid->setId($headerID);
    @@ -479,7 +485,6 @@ class CMailFile
     			// --------------------------------------
     			$this->error = 'Bad value for sendmode';
     		}
    -
     	}
     
     
    @@ -566,7 +571,8 @@ class CMailFile
     				$keyforstarttls  ='MAIN_MAIL_EMAIL_STARTTLS_EMAILING';
     			}
     
    -			if(!empty($conf->global->MAIN_MAIL_FORCE_SENDTO)) {
    +			if (!empty($conf->global->MAIN_MAIL_FORCE_SENDTO))
    +			{
     				$this->addr_to = $conf->global->MAIN_MAIL_FORCE_SENDTO;
     				$this->addr_cc = '';
     				$this->addr_bcc = '';
    @@ -731,7 +737,11 @@ class CMailFile
     					if (! empty($conf->global->MAIN_MAIL_DEBUG)) $this->dump_mail();
     
     					$result=$this->smtps->getErrors();
    -					if (empty($this->error) && empty($result)) $res=true;
    +					if (empty($this->error) && empty($result))
    +					{
    +						dol_syslog("CMailFile::sendfile: mail end success", LOG_DEBUG);
    +						$res=true;
    +					}
     					else
     					{
     						if (empty($this->error)) $this->error=$result;
    @@ -794,6 +804,10 @@ class CMailFile
     					dol_syslog("CMailFile::sendfile: mail end error=".$this->error, LOG_ERR);
     					$res=false;
     				}
    +				else
    +				{
    +					dol_syslog("CMailFile::sendfile: mail end success", LOG_DEBUG);
    +				}
     			}
     			else
     			{
    @@ -836,6 +850,7 @@ class CMailFile
     		return '=?'.$conf->file->character_set_client.'?B?'.base64_encode($stringtoencode).'?=';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Read a file on disk and return encoded content for emails (mode = 'mail')
     	 *
    @@ -844,6 +859,7 @@ class CMailFile
     	 */
     	function _encode_file($sourcefile)
     	{
    +        // phpcs:enable
     		$newsourcefile=dol_osencode($sourcefile);
     
     		if (is_readable($newsourcefile))
    @@ -861,6 +877,7 @@ class CMailFile
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Write content of a SMTP request into a dump file (mode = all)
     	 *  Used for debugging.
    @@ -870,6 +887,7 @@ class CMailFile
     	 */
     	function dump_mail()
     	{
    +        // phpcs:enable
     		global $conf,$dolibarr_main_data_root;
     
     		if (@is_writeable($dolibarr_main_data_root))	// Avoid fatal error on fopen with open_basedir
    @@ -928,7 +946,7 @@ class CMailFile
     	/**
     	 * Build a css style (mode = all) into this->styleCSS and this->bodyCSS
     	 *
    -	 * @return css
    +	 * @return string
     	 */
     	function buildCSS()
     	{
    @@ -954,6 +972,7 @@ class CMailFile
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Create SMTP headers (mode = 'mail')
     	 *
    @@ -961,6 +980,7 @@ class CMailFile
     	 */
     	function write_smtpheaders()
     	{
    +        // phpcs:enable
     		global $conf;
     		$out = "";
     
    @@ -993,9 +1013,9 @@ class CMailFile
     		if ($trackid)
     		{
     			// References is kept in response and Message-ID is returned into In-Reply-To:
    -			$out.= 'Message-ID: <' . time() . '.phpmail-dolibarr-'.$trackid.'@' . $host . ">" . $this->eol2;	// Uppercase seems replaced by phpmail
    -			$out.= 'References: <' . time() . '.phpmail-dolibarr-'.$trackid.'@' . $host . ">" . $this->eol2;
    -			$out.= 'X-Dolibarr-TRACKID: '.$trackid. $this->eol2;
    +			$out.= 'Message-ID: <' . time() . '.phpmail-dolibarr-'. $trackid . '@' . $host . ">" . $this->eol2;	// Uppercase seems replaced by phpmail
    +			$out.= 'References: <' . time() . '.phpmail-dolibarr-'. $trackid . '@' . $host . ">" . $this->eol2;
    +			$out.= 'X-Dolibarr-TRACKID: ' . $trackid . '@' . $host. $this->eol2;
     		}
     		else
     		{
    @@ -1016,6 +1036,7 @@ class CMailFile
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Create header MIME (mode = 'mail')
     	 *
    @@ -1025,10 +1046,11 @@ class CMailFile
     	 */
     	function write_mimeheaders($filename_list, $mimefilename_list)
     	{
    +        // phpcs:enable
     		$mimedone=0;
     		$out = "";
     
    -		if ($filename_list)
    +		if (is_array($filename_list))
     		{
     			$filename_list_size=count($filename_list);
     			for($i=0;$i < $filename_list_size;$i++)
    @@ -1045,6 +1067,7 @@ class CMailFile
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return email content (mode = 'mail')
     	 *
    @@ -1053,6 +1076,7 @@ class CMailFile
     	 */
     	function write_body($msgtext)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$out='';
    @@ -1145,6 +1169,7 @@ class CMailFile
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Attach file to email (mode = 'mail')
     	 *
    @@ -1155,6 +1180,7 @@ class CMailFile
     	 */
     	function write_files($filename_list,$mimetype_list,$mimefilename_list)
     	{
    +        // phpcs:enable
     		$out = '';
     
     		$filename_list_size=count($filename_list);
    @@ -1192,21 +1218,23 @@ class CMailFile
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Attach an image to email (mode = 'mail')
     	 *
    -	 * @param	array	$images_list	Tableau
    +	 * @param	array	$images_list	Array of array image
     	 * @return	string					Chaine images encodees
     	 */
     	function write_images($images_list)
     	{
    +        // phpcs:enable
     		$out = '';
     
    -		if ($images_list)
    +		if (is_array($images_list))
     		{
     			foreach ($images_list as $img)
     			{
    -				dol_syslog("CMailFile::write_images: i=$i");
    +				dol_syslog("CMailFile::write_images: ".$img["name"]);
     
     				$out.= "--" . $this->related_boundary . $this->eol; // always related for an inline image
     				$out.= "Content-Type: " . $img["content_type"] . "; name=\"".$img["name"]."\"".$this->eol;
    @@ -1223,6 +1251,7 @@ class CMailFile
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Try to create a socket connection
     	 *
    @@ -1232,6 +1261,7 @@ class CMailFile
     	 */
     	function check_server_port($host,$port)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$_retVal=0;
    @@ -1286,6 +1316,7 @@ class CMailFile
     		return $_retVal;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * This function has been modified as provided by SirSir to allow multiline responses when
     	 * using SMTP Extensions.
    @@ -1296,6 +1327,7 @@ class CMailFile
     	 */
     	function server_parse($socket, $response)
     	{
    +        // phpcs:enable
     		$_retVal = true;	// Indicates if Object was created or not
     		$server_response = '';
     
    @@ -1328,10 +1360,10 @@ class CMailFile
     		// Build the list of image extensions
     		$extensions = array_keys($this->image_types);
     
    -
    +		$matches = array();
     		preg_match_all('/(?:"|\')([^"\']+\.('.implode('|', $extensions).'))(?:"|\')/Ui', $this->html, $matches);  // If "xxx.ext" or 'xxx.ext' found
     
    -		if ($matches)
    +		if (! empty($matches))
     		{
     			$i=0;
     			foreach ($matches[1] as $full)
    @@ -1520,4 +1552,3 @@ class CMailFile
     		return $ret;
     	}
     }
    -
    diff --git a/htdocs/core/class/CSMSFile.class.php b/htdocs/core/class/CSMSFile.class.php
    index 0a149feabf4..86ffed48551 100644
    --- a/htdocs/core/class/CSMSFile.class.php
    +++ b/htdocs/core/class/CSMSFile.class.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2000-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Jean-Louis Bergamo   <jlb@j1b.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -34,15 +34,18 @@
      */
     class CSMSFile
     {
    -    var $error='';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    -	var $addr_from;
    -	var $addr_to;
    -	var $deferred;
    -	var $priority;
    -	var $class;
    -	var $message;
    -	var $nostop;
    +	public $addr_from;
    +	public $addr_to;
    +	public $deferred;
    +	public $priority;
    +	public $class;
    +	public $message;
    +	public $nostop;
     
     
     	/**
    @@ -192,6 +195,7 @@ class CSMSFile
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Write content of a SendSms request into a dump file (mode = all)
     	 *  Used for debugging.
    @@ -200,6 +204,7 @@ class CSMSFile
     	 */
     	function dump_sms()
     	{
    +        // phpcs:enable
     		global $conf,$dolibarr_main_data_root;
     
     		if (@is_writeable($dolibarr_main_data_root))	// Avoid fatal error on fopen with open_basedir
    @@ -221,6 +226,7 @@ class CSMSFile
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Write content of a SendSms result into a dump file (mode = all)
          *  Used for debugging.
    @@ -230,6 +236,7 @@ class CSMSFile
          */
         function dump_sms_result($result)
         {
    +        // phpcs:enable
             global $conf,$dolibarr_main_data_root;
     
             if (@is_writeable($dolibarr_main_data_root))    // Avoid fatal error on fopen with open_basedir
    @@ -244,6 +251,4 @@ class CSMSFile
                 @chmod($outputfile, octdec($conf->global->MAIN_UMASK));
             }
         }
    -
     }
    -
    diff --git a/htdocs/core/class/antivir.class.php b/htdocs/core/class/antivir.class.php
    index 1c3ea5a07b6..1b45d490d9d 100644
    --- a/htdocs/core/class/antivir.class.php
    +++ b/htdocs/core/class/antivir.class.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2000-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Jean-Louis Bergamo   <jlb@j1b.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -26,15 +26,29 @@
      */
     
     /**
    - *      \class      AntiVir
    - *      \brief      Class to scan for virus
    + *      Class to scan for virus
      */
     class AntiVir
     {
    -	var $error;
    -	var $errors;
    -	var $output;
    -	var $db;
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
    +	/**
    +	 * @var string Used to return message
    +	 */
    +	public $output;
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	/**
     	 *  Constructor
    @@ -46,6 +60,7 @@ class AntiVir
     		$this->db=$db;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Scan a file with antivirus.
     	 *  This function runs the command defined in setup. This antivirus command must return 0 if OK.
    @@ -56,6 +71,7 @@ class AntiVir
     	 */
     	function dol_avscan_file($file)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$return = 0;
    @@ -168,6 +184,4 @@ class AntiVir
     
     		return $ret;
     	}
    -
     }
    -
    diff --git a/htdocs/core/class/canvas.class.php b/htdocs/core/class/canvas.class.php
    index 6851c124743..4694a5e4652 100644
    --- a/htdocs/core/class/canvas.class.php
    +++ b/htdocs/core/class/canvas.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2018	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011 		Laurent Destailleur	<eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -28,19 +28,30 @@
      */
     class Canvas
     {
    -	var $db;
    -	var $error;
    -	var $errors=array();
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -	var $actiontype;
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    -    var $dirmodule;			// Module directory
    -    var $targetmodule;      // Module concerned by canvas (ex: thirdparty, contact, ...)
    -    var $canvas;            // Name of canvas (ex: company, individual, product, service, ...)
    -    var $card;              // Tab (sub-canvas)
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
     
    -    var $template_dir;			// Initialized by getCanvas with templates directory
    -    var $control;           	// Initialized by getCanvas with controller instance
    +	public $actiontype;
    +
    +    public $dirmodule;			// Module directory
    +    public $targetmodule;      // Module concerned by canvas (ex: thirdparty, contact, ...)
    +    public $canvas;            // Name of canvas (ex: company, individual, product, service, ...)
    +    public $card;              // Tab (sub-canvas)
    +
    +    public $template_dir;		// Initialized by getCanvas with templates directory
    +    public $control;           	// Initialized by getCanvas with controller instance
     
     
        /**
    @@ -122,6 +133,7 @@ class Canvas
             //print ' => template_dir='.$this->template_dir.'<br>';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 * 	Shared method for canvas to assign values for templates
     	 *
    @@ -132,6 +144,7 @@ class Canvas
     	 */
     	function assign_values(&$action='view', $id=0, $ref='')
     	{
    +        // phpcs:enable
     		if (method_exists($this->control,'assign_values')) $this->control->assign_values($action, $id, $ref);
     	}
     
    @@ -145,10 +158,11 @@ class Canvas
         {
             if (empty($this->template_dir)) return 0;
     
    -        if (file_exists($this->template_dir.($this->card?$this->card.'_':'').$this->_cleanaction($action).'.tpl.php')) return 1;
    +        if (file_exists($this->template_dir.(!empty($this->card)?$this->card.'_':'').$this->_cleanaction($action).'.tpl.php')) return 1;
             else return 0;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Display a canvas page. This will include the template for output.
     	 *	Variables used by templates may have been defined or loaded before into the assign_values function.
    @@ -158,10 +172,11 @@ class Canvas
     	 */
     	function display_canvas($action)
     	{
    +        // phpcs:enable
     		global $db, $conf, $langs, $user, $canvas;
     		global $form, $formfile;
     
    -		include $this->template_dir.($this->card?$this->card.'_':'').$this->_cleanaction($action).'.tpl.php';        // Include native PHP template
    +		include $this->template_dir.(!empty($this->card)?$this->card.'_':'').$this->_cleanaction($action).'.tpl.php';        // Include native PHP template
     	}
     
     
    @@ -197,5 +212,4 @@ class Canvas
     			return $ret;
     		}
     	}
    -
     }
    diff --git a/htdocs/core/class/ccountry.class.php b/htdocs/core/class/ccountry.class.php
    index 7964510c91c..f07916a7511 100644
    --- a/htdocs/core/class/ccountry.class.php
    +++ b/htdocs/core/class/ccountry.class.php
    @@ -32,17 +32,38 @@
      */
     class Ccountry // extends CommonObject
     {
    -	var $db;							//!< To store db handler
    -	var $error;							//!< To return error code (or message)
    -	var $errors=array();				//!< To return several error codes (or messages)
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
     	//var $element='ccountry';			//!< Id that identify managed objects
     	//var $table_element='ccountry';	//!< Name of table without prefix where object is stored
     
    -    var $id;
    -	var $code;
    -	var $code_iso;
    -	var $label;
    -	var $active;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +	public $code;
    +	public $code_iso;
    +
    +	/**
    +     * @var string Countries label
    +     */
    +    public $label;
    +
    +	public $active;
     
     
     
    @@ -55,7 +76,6 @@ class Ccountry // extends CommonObject
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    @@ -312,5 +332,4 @@ class Ccountry // extends CommonObject
     			return 1;
     		}
     	}
    -
     }
    diff --git a/htdocs/core/class/comment.class.php b/htdocs/core/class/comment.class.php
    index 9aeebd575bf..332f7e115ef 100644
    --- a/htdocs/core/class/comment.class.php
    +++ b/htdocs/core/class/comment.class.php
    @@ -1,23 +1,60 @@
     <?php
    +/*
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
     /**
      * 	Class to manage comment
      */
     class Comment extends CommonObject
     {
    -	public $element='comment';		//!< Id that identify managed objects
    -	public $table_element='comment';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='comment';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='comment';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
    +	public $fk_element ='';
     
    -	public $fk_element;
     	public $element_type;
     
    +	/**
    +	 * @var string description
    +	 */
     	public $description;
     
     	public $tms;
     
     	public $datec;
     
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_author;
     
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
     
     	public $import_key;
    @@ -320,12 +357,11 @@ class Comment extends CommonObject
     				}
     				$db->free($resql);
     			} else {
    -				$error++; $this->errors[]="Error ".$this->db->lasterror();
    +				$this->errors[]="Error ".$this->db->lasterror();
     				return -1;
     			}
    -
     		}
     
     		return count($this->comments);
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php
    index 18e2817f040..11bc678196a 100644
    --- a/htdocs/core/class/commondocgenerator.class.php
    +++ b/htdocs/core/class/commondocgenerator.class.php
    @@ -1,10 +1,11 @@
     <?php
    -/* Copyright (C) 2003-2005	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2010	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2004		Eric Seigne		<eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    - * Copyright (C) 2015       	Marcos García           <marcosgdf@gmail.com>
    - * Copyright (C) 2016       	Charlie Benke           <charlie@patas-monkey.com>
    +/* Copyright (C) 2003-2005	Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2010	Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2004		Eric Seigne             <eric.seigne@ryxeo.com>
    + * Copyright (C) 2005-2012	Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2015       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2016       Charlie Benke           <charlie@patas-monkey.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -33,7 +34,19 @@
      */
     abstract class CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +    /**
    +     * @var string[]    Array of error strings
    +     */
    +    public $errors = array();
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
     	protected $db;
     
     
    @@ -42,11 +55,13 @@ abstract class CommonDocGenerator
     	 *
     	 *  @param		DoliDB		$db      Database handler
     	*/
    -	public function __construct($db) {
    -		$this->db = $db;
    -	}
    +    public function __construct($db)
    +    {
    +        $this->db = $db;
    +    }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Define array with couple subtitution key => subtitution value
          *
    @@ -56,6 +71,7 @@ abstract class CommonDocGenerator
          */
         function get_substitutionarray_user($user,$outputlangs)
         {
    +        // phpcs:enable
             global $conf;
     
             $logotouse=$conf->user->dir_output.'/'.get_exdir($user->id, 2, 0, 1, $user, 'user').'/'.$user->photo;
    @@ -83,6 +99,7 @@ abstract class CommonDocGenerator
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Define array with couple subtitution key => subtitution value
          *
    @@ -92,6 +109,7 @@ abstract class CommonDocGenerator
          */
         function get_substitutionarray_mysoc($mysoc,$outputlangs)
         {
    +        // phpcs:enable
             global $conf;
     
             if (empty($mysoc->forme_juridique) && ! empty($mysoc->forme_juridique_code))
    @@ -141,6 +159,7 @@ abstract class CommonDocGenerator
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Define array with couple subtitution key => subtitution value
          *
    @@ -150,6 +169,7 @@ abstract class CommonDocGenerator
          */
         function get_substitutionarray_thirdparty($object,$outputlangs)
         {
    +        // phpcs:enable
             global $conf;
     
             if (empty($object->country) && ! empty($object->country_code))
    @@ -220,6 +240,7 @@ abstract class CommonDocGenerator
     		return $array_thirdparty;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Define array with couple subtitution key => subtitution value
     	 *
    @@ -228,7 +249,9 @@ abstract class CommonDocGenerator
     	 * @param   array		$array_key	    Name of the key for return array
     	 * @return	array 						Array of substitution key->code
     	 */
    -	function get_substitutionarray_contact($object, $outputlangs, $array_key = 'object') {
    +    function get_substitutionarray_contact($object, $outputlangs, $array_key = 'object')
    +    {
    +        // phpcs:enable
     		global $conf;
     
     		if(empty($object->country) && ! empty($object->country_code))
    @@ -291,6 +314,7 @@ abstract class CommonDocGenerator
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Define array with couple subtitution key => subtitution value
          *
    @@ -299,6 +323,7 @@ abstract class CommonDocGenerator
          */
         function get_substitutionarray_other($outputlangs)
         {
    +        // phpcs:enable
         	global $conf;
     
         	$now=dol_now('gmt');	// gmt
    @@ -327,6 +352,7 @@ abstract class CommonDocGenerator
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Define array with couple substitution key => substitution value
     	 *
    @@ -337,6 +363,7 @@ abstract class CommonDocGenerator
     	 */
     	function get_substitutionarray_object($object,$outputlangs,$array_key='object')
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$sumpayed=$sumdeposit=$sumcreditnote='';
    @@ -473,20 +500,23 @@ abstract class CommonDocGenerator
     		return $resarray;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    -	 *	@param  array			$line				Array of lines
    +	 *	@param  Object			$line				Object line
     	 *	@param  Translate		$outputlangs        Lang object to use for output
     	 *  @return	array								Return a substitution array
     	 */
    -	function get_substitutionarray_lines($line,$outputlangs)
    +	function get_substitutionarray_lines($line, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$resarray= array(
     			'line_fulldesc'=>doc_getlinedesc($line,$outputlangs),
     			'line_product_ref'=>$line->product_ref,
    +			'line_product_ref_fourn'=>$line->ref_fourn, // for supplier doc lines
     			'line_product_label'=>$line->product_label,
     			'line_product_type'=>$line->product_type,
     			'line_desc'=>$line->desc,
    @@ -543,12 +573,13 @@ abstract class CommonDocGenerator
     			$tmpproduct = new Product($this->db);
     			$result = $tmpproduct->fetch($line->fk_product);
     			foreach($tmpproduct->array_options as $key=>$label)
    -				$resarray["line_".$key] = $label;
    +				$resarray["line_product_".$key] = $label;
     		}
     
     		return $resarray;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Define array with couple substitution key => substitution value
          *
    @@ -559,6 +590,7 @@ abstract class CommonDocGenerator
          */
         function get_substitutionarray_shipment($object,$outputlangs,$array_key='object')
         {
    +        // phpcs:enable
         	global $conf;
     		dol_include_once('/core/lib/product.lib.php');
     		$object->list_delivery_methods($object->shipping_method_id);
    @@ -610,8 +642,9 @@ abstract class CommonDocGenerator
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -     *	Define array with couple substitution key => substitution value
    +     *  Define array with couple substitution key => substitution value
          *
          *	@param  ExpeditionLigne	$line				Object line
          *	@param  Translate		$outputlangs        Lang object to use for output
    @@ -619,8 +652,9 @@ abstract class CommonDocGenerator
          */
         function get_substitutionarray_shipment_lines($line, $outputlangs)
         {
    -    	global $conf;
    -		dol_include_once('/core/lib/product.lib.php');
    +        // phpcs:enable
    +        global $conf;
    +        dol_include_once('/core/lib/product.lib.php');
     
             $resarray = array(
     	    	'line_fulldesc'=>doc_getlinedesc($line,$outputlangs),
    @@ -642,7 +676,7 @@ abstract class CommonDocGenerator
     	    	'line_volume'=>empty($line->volume) ? '' : $line->volume*$line->qty_shipped.' '.measuring_units_string($line->volume_units, 'volume'),
         	);
     
    -		// Retrieve extrafields
    +        // Retrieve extrafields
             $extrafieldkey = $line->element;
             $array_key = "line";
             require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
    @@ -656,6 +690,7 @@ abstract class CommonDocGenerator
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Define array with couple subtitution key => subtitution value
          *
    @@ -664,15 +699,17 @@ abstract class CommonDocGenerator
          * @param   boolean		$recursive    	Want to fetch child array or child object
          * @return	array						Array of substitution key->code
          */
    -    function get_substitutionarray_each_var_object(&$object,$outputlangs,$recursive=true) {
    +    function get_substitutionarray_each_var_object(&$object,$outputlangs,$recursive=true)
    +    {
    +        // phpcs:enable
             $array_other = array();
    -        if(!empty($object)) {
    +        if (!empty($object)) {
                 foreach($object as $key => $value) {
    -                if(!empty($value)) {
    -                    if(!is_array($value) && !is_object($value)) {
    +                if (!empty($value)) {
    +                    if (!is_array($value) && !is_object($value)) {
                             $array_other['object_'.$key] = $value;
                         }
    -                    if(is_array($value) && $recursive){
    +                    if (is_array($value) && $recursive) {
                             $array_other['object_'.$key] = $this->get_substitutionarray_each_var_object($value,$outputlangs,false);
                         }
                     }
    @@ -682,6 +719,7 @@ abstract class CommonDocGenerator
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Fill array with couple extrafield key => extrafield value
          *
    @@ -692,8 +730,9 @@ abstract class CommonDocGenerator
          *  @param  Translate		$outputlangs        Lang object to use for output
          *	@return	array								Substitution array
          */
    -	function fill_substitutionarray_with_extrafields($object,$array_to_fill,$extrafields,$array_key,$outputlangs)
    +    function fill_substitutionarray_with_extrafields($object,$array_to_fill,$extrafields,$array_key,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     		foreach($extrafields->attribute_label as $key=>$label)
     		{
    @@ -735,11 +774,34 @@ abstract class CommonDocGenerator
     				$array_to_fill=array_merge($array_to_fill,array($array_key.'_options_'.$key.'_locale' => $object->array_options['options_'.$key.'_locale']));
     				$array_to_fill=array_merge($array_to_fill,array($array_key.'_options_'.$key.'_rfc' => $object->array_options['options_'.$key.'_rfc']));
     			}
    +			else if($extrafields->attribute_type[$key] == 'link')
    +			{
    +				$id = $object->array_options['options_'.$key];
    +				if ($id != "")
    +				{
    +					$param = $extrafields->attribute_param[$key];
    +					$param_list=array_keys($param['options']);              // $param_list='ObjectName:classPath'
    +					$InfoFieldList = explode(":", $param_list[0]);
    +					$classname=$InfoFieldList[0];
    +					$classpath=$InfoFieldList[1];
    +					if (! empty($classpath))
    +					{
    +						dol_include_once($InfoFieldList[1]);
    +						if ($classname && class_exists($classname))
    +						{
    +							$tmpobject = new $classname($this->db);
    +							$tmpobject->fetch($id);
    +							// completely replace the id with the linked object name
    +							$object->array_options['options_'.$key] = $tmpobject->name;
    +						}
    +					}
    +				}
    +			}
    +
     			$array_to_fill=array_merge($array_to_fill,array($array_key.'_options_'.$key => $object->array_options['options_'.$key]));
     		}
     
     		return $array_to_fill;
    -
     	}
     
     
    @@ -757,10 +819,231 @@ abstract class CommonDocGenerator
     	 */
         function printRect($pdf, $x, $y, $l, $h, $hidetop=0, $hidebottom=0)
         {
    -	    if (empty($hidetop) || $hidetop==-1) $pdf->line($x, $y, $x+$l, $y);
    -	    $pdf->line($x+$l, $y, $x+$l, $y+$h);
    -	    if (empty($hidebottom)) $pdf->line($x+$l, $y+$h, $x, $y+$h);
    -	    $pdf->line($x, $y+$h, $x, $y);
    +        if (empty($hidetop) || $hidetop==-1) $pdf->line($x, $y, $x+$l, $y);
    +        $pdf->line($x+$l, $y, $x+$l, $y+$h);
    +        if (empty($hidebottom)) $pdf->line($x+$l, $y+$h, $x, $y+$h);
    +        $pdf->line($x, $y+$h, $x, $y);
    +    }
    +
    +
    +    /**
    +     *   	uasort callback function to Sort colums fields
    +     *
    +     *   	@param	array			$a    			PDF lines array fields configs
    +     *   	@param	array			$b    			PDF lines array fields configs
    +     *      @return	int								Return compare result
    +     */
    +    function columnSort($a, $b)
    +    {
    +        if(empty($a['rank'])){ $a['rank'] = 0; }
    +        if(empty($b['rank'])){ $b['rank'] = 0; }
    +        if ($a['rank'] == $b['rank']) {
    +            return 0;
    +        }
    +        return ($a['rank'] > $b['rank']) ? -1 : 1;
    +    }
    +
    +    /**
    +     *   	Prepare Array Column Field
    +     *
    +     *   	@param	object			$object				common object
    +     *   	@param	Translate		$outputlangs		langs
    +     *      @param	int				$hidedetails		Do not show line details
    +     *      @param	int				$hidedesc			Do not show desc
    +     *      @param	int				$hideref			Do not show ref
    +     *      @return	null
    +     */
    +    function prepareArrayColumnField($object,$outputlangs,$hidedetails=0,$hidedesc=0,$hideref=0)
    +    {
    +        global $conf;
    +
    +        $this->defineColumnField($object,$outputlangs,$hidedetails,$hidedesc,$hideref);
    +
    +
    +        // Sorting
    +        uasort ( $this->cols, array( $this, 'columnSort' ) );
    +
    +        // Positionning
    +        $curX = $this->page_largeur-$this->marge_droite; // start from right
    +
    +        // Array witdh
    +        $arrayWidth = $this->page_largeur-$this->marge_droite-$this->marge_gauche;
    +
    +        // Count flexible column
    +        $totalDefinedColWidth = 0;
    +        $countFlexCol = 0;
    +        foreach ($this->cols as $colKey =>& $colDef)
    +        {
    +            if(!$this->getColumnStatus($colKey)) continue; // continue if desable
    +
    +            if(!empty($colDef['scale'])){
    +                // In case of column widht is defined by percentage
    +                $colDef['width'] = abs($arrayWidth * $colDef['scale'] / 100 );
    +            }
    +
    +            if(empty($colDef['width'])){
    +                $countFlexCol++;
    +            }
    +            else{
    +                $totalDefinedColWidth += $colDef['width'];
    +            }
    +        }
    +
    +        foreach ($this->cols as $colKey =>& $colDef)
    +        {
    +            // setting empty conf with default
    +            if(!empty($colDef['title'])){
    +                $colDef['title'] = array_replace($this->defaultTitlesFieldsStyle, $colDef['title']);
    +            }
    +            else{
    +                $colDef['title'] = $this->defaultTitlesFieldsStyle;
    +            }
    +
    +            // setting empty conf with default
    +            if(!empty($colDef['content'])){
    +                $colDef['content'] = array_replace($this->defaultContentsFieldsStyle, $colDef['content']);
    +            }
    +            else{
    +                $colDef['content'] = $this->defaultContentsFieldsStyle;
    +            }
    +
    +            if($this->getColumnStatus($colKey))
    +            {
    +                // In case of flexible column
    +                if(empty($colDef['width'])){
    +                    $colDef['width'] = abs(($arrayWidth - $totalDefinedColWidth)) / $countFlexCol;
    +                }
    +
    +                // Set positions
    +                $lastX = $curX;
    +                $curX = $lastX - $colDef['width'];
    +                $colDef['xStartPos'] = $curX;
    +                $colDef['xEndPos']   = $lastX;
    +            }
    +        }
    +    }
    +
    +    /**
    +     *   	get column content width from column key
    +     *
    +     *   	@param	string			$colKey    		the column key
    +     *      @return	float      width in mm
    +     */
    +    function getColumnContentWidth($colKey)
    +    {
    +        $colDef = $this->cols[$colKey];
    +        return  $colDef['width'] - $colDef['content']['padding'][3] - $colDef['content']['padding'][1];
    +    }
    +
    +
    +    /**
    +     *   	get column content X (abscissa) left position from column key
    +     *
    +     *   	@param	string    $colKey    		the column key
    +     *      @return	float      X position in mm
    +     */
    +    function getColumnContentXStart($colKey)
    +    {
    +        $colDef = $this->cols[$colKey];
    +        return  $colDef['xStartPos'] + $colDef['content']['padding'][3];
    +    }
    +
    +    /**
    +     *   	get column position rank from column key
    +     *
    +     *   	@param	string		$colKey    		the column key
    +     *      @return	int         rank on success and -1 on error
    +     */
    +    function getColumnRank($colKey)
    +    {
    +        if(!isset($this->cols[$colKey]['rank'])) return -1;
    +        return  $this->cols[$colKey]['rank'];
    +    }
    +
    +    /**
    +     *   	get column position rank from column key
    +     *
    +     *   	@param	string		$newColKey    	the new column key
    +     *   	@param	array		$defArray    	a single column definition array
    +     *   	@param	string		$targetCol    	target column used to place the new column beside
    +     *   	@param	bool		$insertAfterTarget    	insert before or after target column ?
    +     *      @return	int         new rank on success and -1 on error
    +     */
    +    function insertNewColumnDef($newColKey, $defArray, $targetCol = false, $insertAfterTarget = false)
    +    {
    +        // prepare wanted rank
    +        $rank = -1;
    +
    +        // try to get rank from target column
    +        if(!empty($targetCol)){
    +            $rank = $this->getColumnRank($targetCol);
    +            if($rank>=0 && $insertAfterTarget){ $rank++; }
    +        }
    +
    +        // get rank from new column definition
    +        if($rank<0 && !empty($defArray['rank'])){
    +            $rank = $defArray['rank'];
    +        }
    +
    +        // error: no rank
    +        if($rank<0){ return -1; }
    +
    +        foreach ($this->cols as $colKey =>& $colDef)
    +        {
    +            if( $rank <= $colDef['rank'])
    +            {
    +                $colDef['rank'] = $colDef['rank'] + 1;
    +            }
    +        }
    +
    +        $defArray['rank'] = $rank;
    +        $this->cols[$newColKey] = $defArray; // array_replace is used to preserve keys
    +
    +        return $rank;
    +    }
    +
    +
    +    /**
    +     *   	print standard column content
    +     *
    +     *   	@param	PDF		    $pdf    	pdf object
    +     *   	@param	float		$curY    	curent Y position
    +     *   	@param	string		$colKey    	the column key
    +     *   	@param	string		$columnText   column text
    +     *      @return	int         new rank on success and -1 on error
    +     */
    +    function printStdColumnContent($pdf, &$curY, $colKey, $columnText = '')
    +    {
    +        global $hookmanager;
    +
    +        $parameters=array(
    +            'curY' => &$curY,
    +            'columnText' => $columnText,
    +            'colKey' => $colKey
    +        );
    +        $reshook=$hookmanager->executeHooks('printStdColumnContent',$parameters,$this);    // Note that $action and $object may have been modified by hook
    +        if ($reshook < 0) setEventMessages($hookmanager->error,$hookmanager->errors,'errors');
    +        if (!$reshook)
    +        {
    +            if(empty($columnText)) return;
    +            $pdf->SetXY($this->getColumnContentXStart($colKey),$curY); // Set curent position
    +            $colDef = $this->cols[$colKey];
    +            $pdf->writeHTMLCell( $this->getColumnContentWidth($colKey),2,$this->getColumnContentXStart($colKey),$curY, $columnText,0,0,0,true,$colDef['content']['align']);
    +        }
    +    }
    +
    +
    +    /**
    +     *   	get column status from column key
    +     *
    +     *   	@param	string			$colKey    		the column key
    +     *      @return	float      width in mm
    +     */
    +    function getColumnStatus($colKey)
    +    {
    +        if( !empty($this->cols[$colKey]['status'])){
    +            return true;
    +        }
    +        else  return  false;
         }
     }
    -
    diff --git a/htdocs/core/class/commoninvoice.class.php b/htdocs/core/class/commoninvoice.class.php
    index 3aa8eb4e1ab..cd346dd95e2 100644
    --- a/htdocs/core/class/commoninvoice.class.php
    +++ b/htdocs/core/class/commoninvoice.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012       Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012       Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2012       Cédric Salvador     <csalvador@gpcsolutions.fr>
      * Copyright (C) 2012-2014  Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
      *
    @@ -62,7 +62,7 @@ abstract class CommonInvoice extends CommonObject
         const TYPE_SITUATION = 5;
     
     	/**
    -	 * Draft
    +	 * Draft status
     	 */
     	const STATUS_DRAFT = 0;
     
    @@ -325,6 +325,7 @@ abstract class CommonInvoice extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return if an invoice can be deleted
     	 *	Rule is:
    @@ -340,6 +341,7 @@ abstract class CommonInvoice extends CommonObject
     	 */
     	function is_erasable()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		// We check if invoice is a temporary number (PROVxxxx)
    @@ -362,11 +364,11 @@ abstract class CommonInvoice extends CommonObject
     			if ($this->element != 'invoice_supplier')
     			{
     				if (empty($this->thirdparty)) $this->fetch_thirdparty();	// We need to have this->thirdparty defined, in case of numbering rule use tags that depend on thirdparty (like {t} tag).
    -				$maxfacnumber = $this->getNextNumRef($this->thirdparty,'last');
    +				$maxref = $this->getNextNumRef($this->thirdparty,'last');
     
     				// If there is no invoice into the reset range and not already dispatched, we can delete
     				// If invoice to delete is last one and not already dispatched, we can delete
    -				if (empty($conf->global->INVOICE_CAN_ALWAYS_BE_REMOVED) && $maxfacnumber != '' && $maxfacnumber != $this->ref) return -2;
    +				if (empty($conf->global->INVOICE_CAN_ALWAYS_BE_REMOVED) && $maxref != '' && $maxref != $this->ref) return -2;
     
     				// TODO If there is payment in bookkeeping, check payment is not dispatched in accounting
     				// ...
    @@ -430,11 +432,11 @@ abstract class CommonInvoice extends CommonObject
     	{
     		global $langs;
             if ($this->type == CommonInvoice::TYPE_STANDARD) return $langs->trans("InvoiceStandard");
    -        if ($this->type == CommonInvoice::TYPE_REPLACEMENT) return $langs->trans("InvoiceReplacement");
    -        if ($this->type == CommonInvoice::TYPE_CREDIT_NOTE) return $langs->trans("InvoiceAvoir");
    -        if ($this->type == CommonInvoice::TYPE_DEPOSIT) return $langs->trans("InvoiceDeposit");
    -        if ($this->type == CommonInvoice::TYPE_PROFORMA) return $langs->trans("InvoiceProForma");           // Not used.
    -        if ($this->type == CommonInvoice::TYPE_SITUATION) return $langs->trans("InvoiceSituation");
    +        elseif ($this->type == CommonInvoice::TYPE_REPLACEMENT) return $langs->trans("InvoiceReplacement");
    +        elseif ($this->type == CommonInvoice::TYPE_CREDIT_NOTE) return $langs->trans("InvoiceAvoir");
    +        elseif ($this->type == CommonInvoice::TYPE_DEPOSIT) return $langs->trans("InvoiceDeposit");
    +        elseif ($this->type == CommonInvoice::TYPE_PROFORMA) return $langs->trans("InvoiceProForma");           // Not used.
    +        elseif ($this->type == CommonInvoice::TYPE_SITUATION) return $langs->trans("InvoiceSituation");
     		return $langs->trans("Unknown");
     	}
     
    @@ -450,6 +452,7 @@ abstract class CommonInvoice extends CommonObject
     		return $this->LibStatut($this->paye, $this->statut, $mode, $alreadypaid, $this->type);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return label of a status
     	 *
    @@ -462,6 +465,7 @@ abstract class CommonInvoice extends CommonObject
     	 */
     	function LibStatut($paye, $status, $mode=0, $alreadypaid=-1, $type=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->load('bills');
     
    @@ -472,10 +476,10 @@ abstract class CommonInvoice extends CommonObject
     			if (! $paye)
     			{
     				if ($status == 0) return $langs->trans('Bill'.$prefix.'StatusDraft');
    -				if (($status == 3 || $status == 2) && $alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusClosedUnpaid');
    -				if (($status == 3 || $status == 2) && $alreadypaid > 0) return $langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
    -				if ($alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusNotPaid');
    -				return $langs->trans('Bill'.$prefix.'StatusStarted');
    +				elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusClosedUnpaid');
    +				elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return $langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
    +				elseif ($alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusNotPaid');
    +				else return $langs->trans('Bill'.$prefix.'StatusStarted');
     			}
     			else
     			{
    @@ -484,16 +488,16 @@ abstract class CommonInvoice extends CommonObject
     				else return $langs->trans('Bill'.$prefix.'StatusPaid');
     			}
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			$prefix='Short';
     			if (! $paye)
     			{
     				if ($status == 0) return $langs->trans('Bill'.$prefix.'StatusDraft');
    -				if (($status == 3 || $status == 2) && $alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusCanceled');
    -				if (($status == 3 || $status == 2) && $alreadypaid > 0) return $langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
    -				if ($alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusNotPaid');
    -				return $langs->trans('Bill'.$prefix.'StatusStarted');
    +				elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusCanceled');
    +				elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return $langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
    +				elseif ($alreadypaid <= 0) return $langs->trans('Bill'.$prefix.'StatusNotPaid');
    +				else return $langs->trans('Bill'.$prefix.'StatusStarted');
     			}
     			else
     			{
    @@ -502,16 +506,16 @@ abstract class CommonInvoice extends CommonObject
     				else return $langs->trans('Bill'.$prefix.'StatusPaid');
     			}
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			$prefix='Short';
     			if (! $paye)
     			{
     				if ($status == 0) return img_picto($langs->trans('BillStatusDraft'),'statut0').' '.$langs->trans('Bill'.$prefix.'StatusDraft');
    -				if (($status == 3 || $status == 2) && $alreadypaid <= 0) return img_picto($langs->trans('StatusCanceled'),'statut5').' '.$langs->trans('Bill'.$prefix.'StatusCanceled');
    -				if (($status == 3 || $status == 2) && $alreadypaid > 0) return img_picto($langs->trans('BillStatusClosedPaidPartially'),'statut9').' '.$langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
    -				if ($alreadypaid <= 0) return img_picto($langs->trans('BillStatusNotPaid'),'statut1').' '.$langs->trans('Bill'.$prefix.'StatusNotPaid');
    -				return img_picto($langs->trans('BillStatusStarted'),'statut3').' '.$langs->trans('Bill'.$prefix.'StatusStarted');
    +				elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return img_picto($langs->trans('StatusCanceled'),'statut5').' '.$langs->trans('Bill'.$prefix.'StatusCanceled');
    +				elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return img_picto($langs->trans('BillStatusClosedPaidPartially'),'statut9').' '.$langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
    +				elseif ($alreadypaid <= 0) return img_picto($langs->trans('BillStatusNotPaid'),'statut1').' '.$langs->trans('Bill'.$prefix.'StatusNotPaid');
    +				else return img_picto($langs->trans('BillStatusStarted'),'statut3').' '.$langs->trans('Bill'.$prefix.'StatusStarted');
     			}
     			else
     			{
    @@ -520,16 +524,16 @@ abstract class CommonInvoice extends CommonObject
     				else return img_picto($langs->trans('BillStatusPaid'),'statut6').' '.$langs->trans('Bill'.$prefix.'StatusPaid');
     			}
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			$prefix='Short';
     			if (! $paye)
     			{
     				if ($status == 0) return img_picto($langs->trans('BillStatusDraft'),'statut0');
    -				if (($status == 3 || $status == 2) && $alreadypaid <= 0) return img_picto($langs->trans('BillStatusCanceled'),'statut5');
    -				if (($status == 3 || $status == 2) && $alreadypaid > 0) return img_picto($langs->trans('BillStatusClosedPaidPartially'),'statut9');
    -				if ($alreadypaid <= 0) return img_picto($langs->trans('BillStatusNotPaid'),'statut1');
    -				return img_picto($langs->trans('BillStatusStarted'),'statut3');
    +				elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return img_picto($langs->trans('BillStatusCanceled'),'statut5');
    +				elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return img_picto($langs->trans('BillStatusClosedPaidPartially'),'statut9');
    +				elseif ($alreadypaid <= 0) return img_picto($langs->trans('BillStatusNotPaid'),'statut1');
    +				else return img_picto($langs->trans('BillStatusStarted'),'statut3');
     			}
     			else
     			{
    @@ -538,16 +542,16 @@ abstract class CommonInvoice extends CommonObject
     				else return img_picto($langs->trans('BillStatusPaid'),'statut6');
     			}
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			$prefix='';
     			if (! $paye)
     			{
     				if ($status == 0) return img_picto($langs->trans('BillStatusDraft'),'statut0').' '.$langs->trans('BillStatusDraft');
    -				if (($status == 3 || $status == 2) && $alreadypaid <= 0) return img_picto($langs->trans('BillStatusCanceled'),'statut5').' '.$langs->trans('Bill'.$prefix.'StatusCanceled');
    -				if (($status == 3 || $status == 2) && $alreadypaid > 0) return img_picto($langs->trans('BillStatusClosedPaidPartially'),'statut9').' '.$langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
    -				if ($alreadypaid <= 0) return img_picto($langs->trans('BillStatusNotPaid'),'statut1').' '.$langs->trans('BillStatusNotPaid');
    -				return img_picto($langs->trans('BillStatusStarted'),'statut3').' '.$langs->trans('BillStatusStarted');
    +				elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return img_picto($langs->trans('BillStatusCanceled'),'statut5').' '.$langs->trans('Bill'.$prefix.'StatusCanceled');
    +				elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return img_picto($langs->trans('BillStatusClosedPaidPartially'),'statut9').' '.$langs->trans('Bill'.$prefix.'StatusClosedPaidPartially');
    +				elseif ($alreadypaid <= 0) return img_picto($langs->trans('BillStatusNotPaid'),'statut1').' '.$langs->trans('BillStatusNotPaid');
    +				else return img_picto($langs->trans('BillStatusStarted'),'statut3').' '.$langs->trans('BillStatusStarted');
     			}
     			else
     			{
    @@ -556,21 +560,21 @@ abstract class CommonInvoice extends CommonObject
     				else return img_picto($langs->trans('BillStatusPaid'),'statut6').' '.$langs->trans('BillStatusPaid');
     			}
     		}
    -		if ($mode == 5 || $mode == 6)
    +		elseif ($mode == 5 || $mode == 6)
     		{
     			$prefix='';
     			if ($mode == 5) $prefix='Short';
     			if (! $paye)
     			{
     				if ($status == 0) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusDraft').' </span>'.img_picto($langs->trans('BillStatusDraft'),'statut0');
    -				if (($status == 3 || $status == 2) && $alreadypaid <= 0) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusCanceled').' </span>'.img_picto($langs->trans('BillStatusCanceled'),'statut5');
    -				if (($status == 3 || $status == 2) && $alreadypaid > 0) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusClosedPaidPartially').' </span>'.img_picto($langs->trans('BillStatusClosedPaidPartially'),'statut9');
    -				if ($alreadypaid <= 0)
    +				elseif (($status == 3 || $status == 2) && $alreadypaid <= 0) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusCanceled').' </span>'.img_picto($langs->trans('BillStatusCanceled'),'statut5');
    +				elseif (($status == 3 || $status == 2) && $alreadypaid > 0) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusClosedPaidPartially').' </span>'.img_picto($langs->trans('BillStatusClosedPaidPartially'),'statut9');
    +				elseif ($alreadypaid <= 0)
     				{
     				    if ($type == self::TYPE_CREDIT_NOTE) return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusNotRefunded').' </span>'.img_picto($langs->trans('StatusNotRefunded'),'statut1');
     				    return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusNotPaid').' </span>'.img_picto($langs->trans('BillStatusNotPaid'),'statut1');
     				}
    -				return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusStarted').' </span>'.img_picto($langs->trans('BillStatusStarted'),'statut3');
    +				else return '<span class="xhideonsmartphone">'.$langs->trans('Bill'.$prefix.'StatusStarted').' </span>'.img_picto($langs->trans('BillStatusStarted'),'statut3');
     			}
     			else
     			{
    @@ -581,21 +585,25 @@ abstract class CommonInvoice extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Renvoi une date limite de reglement de facture en fonction des
    -	 *	conditions de reglements de la facture et date de facturation
    +	 *	conditions de reglements de la facture et date de facturation.
     	 *
     	 *	@param      integer	$cond_reglement   	Condition of payment (code or id) to use. If 0, we use current condition.
    -	 *	@return     date     			       	Date limite de reglement si ok, <0 si ko
    +	 *  @return     date     			       	Date limite de reglement si ok, <0 si ko
     	 */
     	function calculate_date_lim_reglement($cond_reglement=0)
     	{
    +        // phpcs:enable
     		if (! $cond_reglement) $cond_reglement=$this->cond_reglement_code;
     		if (! $cond_reglement) $cond_reglement=$this->cond_reglement_id;
     
    -		$cdr_nbjour=0; $cdr_type=0; $cdr_decalage=0;
    +		$cdr_nbjour=0;
    +        $cdr_type=0;
    +        $cdr_decalage=0;
     
    -		$sqltemp = 'SELECT c.type_cdr,c.nbjour,c.decalage';
    +		$sqltemp = 'SELECT c.type_cdr, c.nbjour, c.decalage';
     		$sqltemp.= ' FROM '.MAIN_DB_PREFIX.'c_payment_term as c';
     		if (is_numeric($cond_reglement)) $sqltemp.= " WHERE c.rowid=".$cond_reglement;
     		else {
    @@ -624,12 +632,18 @@ abstract class CommonInvoice extends CommonObject
     
     		/* Definition de la date limite */
     
    -		// 1 : ajout du nombre de jours
    -		$datelim = $this->date + ($cdr_nbjour * 3600 * 24);
    -
    -		// 2 : application de la regle "fin de mois"
    -		if ($cdr_type == 1)
    +		// 0 : ajout du nombre de jours
    +		if ($cdr_type == 0)
     		{
    +			$datelim = $this->date + ($cdr_nbjour * 3600 * 24);
    +
    +			$datelim += ($cdr_decalage * 3600 * 24);
    +		}
    +		// 1 : application de la regle "fin de mois"
    +		elseif ($cdr_type == 1)
    +		{
    +			$datelim = $this->date + ($cdr_nbjour * 3600 * 24);
    +
     			$mois=date('m', $datelim);
     			$annee=date('Y', $datelim);
     			if ($mois == 12)
    @@ -644,23 +658,24 @@ abstract class CommonInvoice extends CommonObject
     			// On se deplace au debut du mois suivant, et on retire un jour
     			$datelim=dol_mktime(12,0,0,$mois,1,$annee);
     			$datelim -= (3600 * 24);
    -		}
    -		elseif($cdr_type == 2 && !empty($cdr_nbjour)) // Application de la règle, le N du mois courant ou suivant
    -		{
     
    -			$date_piece = dol_mktime(0,0,0,date('m', $this->date),date('d', $this->date),date('Y', $this->date)); // Sans les heures minutes et secondes
    -			$date_lim_current = dol_mktime(0,0,0,date('m', $this->date),$cdr_nbjour,date('Y', $this->date)); // Sans les heures minutes et secondes
    -			$date_lim_next = strtotime(date('Y-m-d', $date_lim_current).' +1month');
    +			$datelim += ($cdr_decalage * 3600 * 24);
    +		}
    +		// 2 : application de la règle, le N du mois courant ou suivant
    +		elseif ($cdr_type == 2 && !empty($cdr_decalage))
    +		{
    +			$datelim = $this->date + ($cdr_nbjour * 3600 * 24);
    +
    +			$date_piece = dol_mktime(0, 0, 0, date('m', $datelim),date('d', $datelim),date('Y', $datelim)); // Sans les heures minutes et secondes
    +			$date_lim_current = dol_mktime(0, 0, 0, date('m', $datelim), $cdr_decalage, date('Y', $datelim)); // Sans les heures minutes et secondes
    +			$date_lim_next = dol_time_plus_duree($date_lim_current, 1, 'm');	// Add 1 month
     
     			$diff = $date_piece - $date_lim_current;
     
    -			if($diff < 0) $datelim = $date_lim_current;
    +			if ($diff < 0) $datelim = $date_lim_current;
     			else $datelim = $date_lim_next;
    -
     		}
    -
    -		// 3 : application du decalage
    -		$datelim += ($cdr_decalage * 3600 * 24);
    +		else return 'Bad value for type_cdr in database for record cond_reglement = '.$cond_reglement;
     
     		return $datelim;
     	}
    @@ -777,4 +792,3 @@ abstract class CommonInvoiceLine extends CommonObjectLine
     		$this->db = $db;
     	}
     }
    -
    diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
    index 877bb2c5c93..92f32393df7 100644
    --- a/htdocs/core/class/commonobject.class.php
    +++ b/htdocs/core/class/commonobject.class.php
    @@ -1,11 +1,9 @@
     <?php
     /* Copyright (C) 2006-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2010-2013 Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2012      Christophe Battarel  <christophe.battarel@altairis.fr>
    + * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2015 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2012-2013 Christophe Battarel  <christophe.battarel@altairis.fr>
    - * Copyright (C) 2011-2018 Philippe Grand	    <philippe.grand@atoo-net.com>
    + * Copyright (C) 2011-2019 Philippe Grand       <philippe.grand@atoo-net.com>
      * Copyright (C) 2012-2015 Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2012-2015 Raphaël Doursenaud   <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2012      Cedric Salvador      <csalvador@gpcsolutions.fr>
    @@ -13,8 +11,9 @@
      * Copyright (C) 2016      Bahfir abbes         <dolipar@dolipar.org>
      * Copyright (C) 2017      ATM Consulting       <support@atm-consulting.fr>
      * Copyright (C) 2017      Nicolas ZABOURI      <info@inovea-conseil.com>
    - * Copyright (C) 2017      Rui Strecht		    <rui.strecht@aliartalentos.com>
    - * Copyright (C) 2018      Frederic France      <frederic.france@netlogic.fr>
    + * Copyright (C) 2017      Rui Strecht          <rui.strecht@aliartalentos.com>
    + * Copyright (C) 2018      Frédéric France      <frederic.france@netlogic.fr>
    + * Copyright (C) 2018      Josep Lluís Amador   <joseplluis@lliuretic.cat>
      *
      * 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
    @@ -64,19 +63,19 @@ abstract class CommonObject
     	public $errors=array();
     
     	/**
    -	 * @var string
    +	 * @var string ID to identify managed object
     	 */
     	public $element;
     
     	/**
    -	 * @var string
    +	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element;
     
     	/**
    -	 * @var
    +	 * @var int    Name of subtable line
     	 */
    -	public $table_element_line;
    +	public $table_element_line='';
     
     	/**
     	 * @var string		Key value used to track if data is coming from import wizard
    @@ -169,6 +168,7 @@ abstract class CommonObject
     	 * @see fetch_origin()
     	 */
     	public $origin;
    +
     	/**
     	 * @var int 	The id of originating object
     	 * @see fetch_origin()
    @@ -399,6 +399,12 @@ abstract class CommonObject
     	public $firstname;
     	public $civility_id;
     
    +	// Dates
    +	public $date_creation;			// Date creation
    +	public $date_validation;		// Date validation
    +	public $date_modification;		// Date last change (tms field)
    +
    +
     
     	// No constructor as it is an abstract class
     
    @@ -456,7 +462,7 @@ abstract class CommonObject
     	 *
     	 *	@param	Translate	$langs			Language object for translation of civility (used only if option is 1)
     	 *	@param	int			$option			0=No option, 1=Add civility
    -	 * 	@param	int			$nameorder		-1=Auto, 0=Lastname+Firstname, 1=Firstname+Lastname, 2=Firstname
    +	 * 	@param	int			$nameorder		-1=Auto, 0=Lastname+Firstname, 1=Firstname+Lastname, 2=Firstname, 3=Firstname if defined else lastname
     	 * 	@param	int			$maxlen			Maximum length
     	 * 	@return	string						String with full name
     	 */
    @@ -609,12 +615,19 @@ abstract class CommonObject
     			$out.=dol_print_url($this->url,'_goout',0,1);
     			$outdone++;
     		}
    -		if (! empty($conf->skype->enabled))
    +		$out.='<div style="clear: both;">';
    +		if (! empty($conf->socialnetworks->enabled))
     		{
    -			$out.='<div style="clear: both;"></div>';
    -			if ($this->skype) $out.=dol_print_skype($this->skype,$this->id,$object->id,'AC_SKYPE');
    +			if ($this->skype) $out.=dol_print_socialnetworks($this->skype,$this->id,$object->id,'skype');
    +			$outdone++;
    +			if ($this->jabberid) $out.=dol_print_socialnetworks($this->jabberid,$this->id,$object->id,'jabber');
    +			$outdone++;
    +			if ($this->twitter) $out.=dol_print_socialnetworks($this->twitter,$this->id,$object->id,'twitter');
    +			$outdone++;
    +			if ($this->facebook) $out.=dol_print_socialnetworks($this->facebook,$this->id,$object->id,'facebook');
     			$outdone++;
     		}
    +		$out.='</div>';
     
     		$out.='<!-- END Part to show address block -->';
     
    @@ -685,10 +698,12 @@ abstract class CommonObject
     			}
     			else return '';
     		}
    -
     		// Define $urlwithroot
     		$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
    -		$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT;		// This is to use external domain name found into config file
    +		// This is to use external domain name found into config file
    +		//if (DOL_URL_ROOT && ! preg_match('/\/$/', $urlwithouturlroot) && ! preg_match('/^\//', DOL_URL_ROOT)) $urlwithroot=$urlwithouturlroot.'/'.DOL_URL_ROOT;
    +		//else
    +		$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT;
     		//$urlwithroot=DOL_MAIN_URL_ROOT;					// This is to use same domain name than current
     
     		$forcedownload=0;
    @@ -714,6 +729,7 @@ abstract class CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Add a link between element $this->element and a contact
     	 *
    @@ -725,6 +741,7 @@ abstract class CommonObject
     	 */
     	function add_contact($fk_socpeople, $type_contact, $source='external',$notrigger=0)
     	{
    +        // phpcs:enable
     		global $user,$langs;
     
     
    @@ -836,6 +853,7 @@ abstract class CommonObject
     		} else return 0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Copy contact from one element to current
     	 *
    @@ -845,6 +863,7 @@ abstract class CommonObject
     	 */
     	function copy_linked_contact($objFrom, $source='internal')
     	{
    +        // phpcs:enable
     		$contacts = $objFrom->liste_contact(-1, $source);
     		foreach($contacts as $contact)
     		{
    @@ -857,6 +876,7 @@ abstract class CommonObject
     		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Update a link to contact line
     	 *
    @@ -868,6 +888,7 @@ abstract class CommonObject
     	 */
     	function update_contact($rowid, $statut, $type_contact_id=0, $fk_socpeople=0)
     	{
    +        // phpcs:enable
     		// Insert into database
     		$sql = "UPDATE ".MAIN_DB_PREFIX."element_contact set";
     		$sql.= " statut = ".$statut;
    @@ -886,6 +907,7 @@ abstract class CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Delete a link to contact line
     	 *
    @@ -895,6 +917,7 @@ abstract class CommonObject
     	 */
     	function delete_contact($rowid, $notrigger=0)
     	{
    +        // phpcs:enable
     		global $user;
     
     
    @@ -923,6 +946,7 @@ abstract class CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Delete all links between an object $this and all its contacts
     	 *
    @@ -932,6 +956,7 @@ abstract class CommonObject
     	 */
     	function delete_linked_contact($source='',$code='')
     	{
    +        // phpcs:enable
     		$temp = array();
     		$typeContact = $this->liste_type_contact($source,'',0,0,$code);
     
    @@ -958,6 +983,7 @@ abstract class CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Get array of all contacts for an object
     	 *
    @@ -965,10 +991,11 @@ abstract class CommonObject
     	 *    @param	string		$source		Source of contact: external or thirdparty (llx_socpeople) or internal (llx_user)
     	 *    @param	int         $list       0:Return array contains all properties, 1:Return array contains just id
     	 *    @param    string      $code       Filter on this code of contact type ('SHIPPING', 'BILLING', ...)
    -	 *    @return	array		            Array of contacts
    +	 *    @return	array|int		        Array of contacts, -1 if error
     	 */
     	function liste_contact($statut=-1,$source='external',$list=0,$code='')
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$tab=array();
    @@ -1063,9 +1090,9 @@ abstract class CommonObject
     			dol_print_error($this->db);
     			return -1;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Return array with list of possible values for type of contacts
     	 *
    @@ -1078,6 +1105,7 @@ abstract class CommonObject
     	 */
     	function liste_type_contact($source='internal', $order='position', $option=0, $activeonly=0, $code='')
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if (empty($order)) $order='position';
    @@ -1139,6 +1167,9 @@ abstract class CommonObject
     		if($this->element=='shipping' && $this->origin_id != 0) {
     			$id=$this->origin_id;
     			$element='commande';
    +        } else if($this->element=='reception' && $this->origin_id != 0) {
    +            $id=$this->origin_id;
    +            $element='order_supplier';
     		} else {
     			$id=$this->id;
     			$element=$this->element;
    @@ -1179,6 +1210,7 @@ abstract class CommonObject
     		return $result;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *		Load object contact with id=$this->contactid into $this->contact
     	 *
    @@ -1187,6 +1219,7 @@ abstract class CommonObject
     	 */
     	function fetch_contact($contactid=null)
     	{
    +        // phpcs:enable
     		if (empty($contactid)) $contactid=$this->contactid;
     
     		if (empty($contactid)) return 0;
    @@ -1198,6 +1231,7 @@ abstract class CommonObject
     		return $result;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    	Load the third party of object, from id $this->socid or $this->fk_soc, into this->thirdparty
     	 *
    @@ -1206,6 +1240,7 @@ abstract class CommonObject
     	 */
     	function fetch_thirdparty($force_thirdparty_id=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if (empty($this->socid) && empty($this->fk_soc) && empty($this->fk_thirdparty) && empty($force_thirdparty_id))
    @@ -1259,6 +1294,7 @@ abstract class CommonObject
     		return $this->fetch($result->rowid);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Load data for barcode into properties ->barcode_type*
     	 *	Properties ->barcode_type that is id of barcode. Type is used to find other properties, but
    @@ -1268,6 +1304,7 @@ abstract class CommonObject
     	 */
     	function fetch_barcode()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		dol_syslog(get_class($this).'::fetch_barcode this->element='.$this->element.' this->barcode_type='.$this->barcode_type);
    @@ -1308,6 +1345,7 @@ abstract class CommonObject
     		return 0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *		Load the project with id $this->fk_project into this->project
     	 *
    @@ -1315,6 +1353,7 @@ abstract class CommonObject
     	 */
     	function fetch_projet()
     	{
    +        // phpcs:enable
     		include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     
     		if (empty($this->fk_project) && ! empty($this->fk_projet)) $this->fk_project = $this->fk_projet;	// For backward compatibility
    @@ -1328,6 +1367,7 @@ abstract class CommonObject
     		return $result;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *		Load the product with id $this->fk_product into this->product
     	 *
    @@ -1335,6 +1375,7 @@ abstract class CommonObject
     	 */
     	function fetch_product()
     	{
    +        // phpcs:enable
     		include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     
     		if (empty($this->fk_product)) return 0;
    @@ -1346,6 +1387,7 @@ abstract class CommonObject
     		return $result;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *		Load the user with id $userid into this->user
     	 *
    @@ -1354,12 +1396,14 @@ abstract class CommonObject
     	 */
     	function fetch_user($userid)
     	{
    +        // phpcs:enable
     		$user = new User($this->db);
     		$result=$user->fetch($userid);
     		$this->user = $user;
     		return $result;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Read linked origin object
     	 *
    @@ -1367,8 +1411,10 @@ abstract class CommonObject
     	 */
     	function fetch_origin()
     	{
    +        // phpcs:enable
     		if ($this->origin == 'shipping') $this->origin = 'expedition';
     		if ($this->origin == 'delivery') $this->origin = 'livraison';
    +        if ($this->origin == 'order_supplier') $this->origin = 'commandeFournisseur';
     
     		$origin = $this->origin;
     
    @@ -1526,6 +1572,7 @@ abstract class CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Load properties id_previous and id_next by comparing $fieldid with $this->ref
     	 *
    @@ -1536,6 +1583,7 @@ abstract class CommonObject
     	 */
     	function load_previous_next_ref($filter, $fieldid, $nodbprefix=0)
     	{
    +        // phpcs:enable
     		global $conf, $user;
     
     		if (! $this->table_element)
    @@ -1731,7 +1779,7 @@ abstract class CommonObject
     			if (get_class($this) == 'Fournisseur') $fieldname = 'mode_reglement_supplier';
     
     			$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element;
    -			$sql .= ' SET '.$fieldname.' = '.$id;
    +			$sql .= ' SET '.$fieldname.' = '.(($id > 0 || $id == '0') ? $id : 'NULL');
     			$sql .= ' WHERE rowid='.$this->id;
     
     			if ($this->db->query($sql))
    @@ -1864,7 +1912,7 @@ abstract class CommonObject
     							case 'order_supplier':
     								$this->updateline(
     									$line->id, ($line->description?$line->description:$line->desc), $line->subprice, $line->qty, $line->remise_percent,
    -									$line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits,  $line->product_type, false,
    +									$line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits, $line->product_type, false,
     									$line->date_start, $line->date_end, $line->array_options, $line->fk_unit, $line->multicurrency_subprice
     								);
     								break;
    @@ -1879,7 +1927,6 @@ abstract class CommonObject
     								dol_syslog(get_class($this).'::setMulticurrencyRate no updateline defined', LOG_DEBUG);
     								break;
     						}
    -
     					}
     				}
     
    @@ -1917,7 +1964,7 @@ abstract class CommonObject
     			if (get_class($this) == 'Fournisseur') $fieldname = 'cond_reglement_supplier';
     
     			$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element;
    -			$sql .= ' SET '.$fieldname.' = '.$id;
    +			$sql .= ' SET '.$fieldname.' = '.(($id > 0 || $id == '0') ? $id : 'NULL');
     			$sql .= ' WHERE rowid='.$this->id;
     
     			if ($this->db->query($sql))
    @@ -2026,7 +2073,6 @@ abstract class CommonObject
                 $this->db->commit();
                 return 1;
             }
    -
     	}
     
     
    @@ -2161,6 +2207,7 @@ abstract class CommonObject
     
     	// TODO: Move line related operations to CommonObjectLine?
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Save a new position (field rang) for details lines.
     	 *  You can choose to set position for lines with already a position or lines without any position defined.
    @@ -2172,6 +2219,7 @@ abstract class CommonObject
     	 */
     	function line_order($renum=false, $rowidorder='ASC', $fk_parent_line=true)
     	{
    +        // phpcs:enable
     		if (! $this->table_element_line)
     		{
     			dol_syslog(get_class($this)."::line_order was called on objet with property table_element_line not defined",LOG_ERR);
    @@ -2280,6 +2328,7 @@ abstract class CommonObject
     		return $rows;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Update a line to have a lower rank
     	 *
    @@ -2289,6 +2338,7 @@ abstract class CommonObject
     	 */
     	function line_up($rowid, $fk_parent_line=true)
     	{
    +        // phpcs:enable
     		$this->line_order(false, 'ASC', $fk_parent_line);
     
     		// Get rang of line
    @@ -2298,6 +2348,7 @@ abstract class CommonObject
     		$this->updateLineUp($rowid, $rang);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Update a line to have a higher rank
     	 *
    @@ -2307,6 +2358,7 @@ abstract class CommonObject
     	 */
     	function line_down($rowid, $fk_parent_line=true)
     	{
    +        // phpcs:enable
     		$this->line_order(false, 'ASC', $fk_parent_line);
     
     		// Get rang of line
    @@ -2329,7 +2381,7 @@ abstract class CommonObject
     	function updateRangOfLine($rowid,$rang)
     	{
     		$fieldposition = 'rang';
    -		if ($this->table_element_line == 'ecm_files') $fieldposition = 'position';
    +		if (in_array($this->table_element_line, array('ecm_files', 'emailcollector_emailcollectoraction'))) $fieldposition = 'position';
     
     		$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET '.$fieldposition.' = '.$rang;
     		$sql.= ' WHERE rowid = '.$rowid;
    @@ -2341,6 +2393,7 @@ abstract class CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Update position of line with ajax (rang)
     	 *
    @@ -2349,6 +2402,7 @@ abstract class CommonObject
     	 */
     	function line_ajaxorder($rows)
     	{
    +        // phpcs:enable
     		$num = count($rows);
     		for ($i = 0 ; $i < $num ; $i++)
     		{
    @@ -2365,14 +2419,17 @@ abstract class CommonObject
     	 */
     	function updateLineUp($rowid,$rang)
     	{
    -		if ($rang > 1 )
    +		if ($rang > 1)
     		{
    -			$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.$rang ;
    +			$fieldposition = 'rang';
    +			if (in_array($this->table_element_line, array('ecm_files', 'emailcollector_emailcollectoraction'))) $fieldposition = 'position';
    +
    +			$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET '.$fieldposition.' = '.$rang ;
     			$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
     			$sql.= ' AND rang = '.($rang - 1);
     			if ($this->db->query($sql) )
     			{
    -				$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang  = '.($rang - 1);
    +				$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET '.$fieldposition.' = '.($rang - 1);
     				$sql.= ' WHERE rowid = '.$rowid;
     				if (! $this->db->query($sql) )
     				{
    @@ -2398,12 +2455,15 @@ abstract class CommonObject
     	{
     		if ($rang < $max)
     		{
    -			$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.$rang;
    +			$fieldposition = 'rang';
    +			if (in_array($this->table_element_line, array('ecm_files', 'emailcollector_emailcollectoraction'))) $fieldposition = 'position';
    +
    +			$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET '.$fieldposition.' = '.$rang;
     			$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
     			$sql.= ' AND rang = '.($rang+1);
     			if ($this->db->query($sql) )
     			{
    -				$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET rang = '.($rang+1);
    +				$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element_line.' SET '.$fieldposition.' = '.($rang+1);
     				$sql.= ' WHERE rowid = '.$rowid;
     				if (! $this->db->query($sql) )
     				{
    @@ -2456,6 +2516,7 @@ abstract class CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Get max value used for position of line (rang)
     	 *
    @@ -2464,6 +2525,7 @@ abstract class CommonObject
     	 */
     	function line_max($fk_parent_line=0)
     	{
    +        // phpcs:enable
     		// Search the last rang with fk_parent_line
     		if ($fk_parent_line)
     		{
    @@ -2502,6 +2564,7 @@ abstract class CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update external ref of element
     	 *
    @@ -2510,6 +2573,7 @@ abstract class CommonObject
     	 */
     	function update_ref_ext($ref_ext)
     	{
    +        // phpcs:enable
     		if (! $this->table_element)
     		{
     			dol_syslog(get_class($this)."::update_ref_ext was called on objet with property table_element not defined", LOG_ERR);
    @@ -2533,6 +2597,7 @@ abstract class CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update note of element
     	 *
    @@ -2540,8 +2605,9 @@ abstract class CommonObject
     	 *  @param		string		$suffix		'', '_public' or '_private'
     	 *  @return     int      		   		<0 if KO, >0 if OK
     	 */
    -	function update_note($note,$suffix='')
    +	function update_note($note, $suffix='')
     	{
    +        // phpcs:enable
     		global $user;
     
     		if (! $this->table_element)
    @@ -2584,6 +2650,7 @@ abstract class CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Update public note (kept for backward compatibility)
     	 *
    @@ -2594,9 +2661,11 @@ abstract class CommonObject
     	 */
     	function update_note_public($note)
     	{
    +        // phpcs:enable
     		return $this->update_note($note,'_public');
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Update total_ht, total_ttc, total_vat, total_localtax1, total_localtax2 for an object (sum of lines).
     	 *  Must be called at end of methods addline or updateline.
    @@ -2609,7 +2678,8 @@ abstract class CommonObject
     	 */
     	function update_price($exclspec=0,$roundingadjust='none',$nodatabaseupdate=0,$seller=null)
     	{
    -		global $conf;
    +        // phpcs:enable
    +		global $conf, $hookmanager, $action;
     
     		// Some external module want no update price after a trigger because they have another method to calculate the total (ex: with an extrafield)
     		$MODULE = "";
    @@ -2700,7 +2770,10 @@ abstract class CommonObject
     				$obj = $this->db->fetch_object($resql);
     
     				// Note: There is no check on detail line and no check on total, if $forcedroundingmode = 'none'
    -				if ($forcedroundingmode == '0')	// Check if data on line are consistent. This may solve lines that were not consistent because set with $forcedroundingmode='auto'
    +				$parameters=array('fk_element' => $obj->rowid);
    +				$reshook = $hookmanager->executeHooks('changeRoundingMode', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
    +
    +				if (empty($reshook) && $forcedroundingmode == '0')	// Check if data on line are consistent. This may solve lines that were not consistent because set with $forcedroundingmode='auto'
     				{
     					$localtax_array=array($obj->localtax1_type,$obj->localtax1_tx,$obj->localtax2_type,$obj->localtax2_tx);
     					$tmpcal=calcul_price_total($obj->qty, $obj->up, $obj->remise_percent, $obj->vatrate, $obj->localtax1_tx, $obj->localtax2_tx, 0, 'HT', $obj->info_bits, $obj->product_type, $seller, $localtax_array, (isset($obj->situation_percent) ? $obj->situation_percent : 100), $multicurrency_tx);
    @@ -2749,7 +2822,6 @@ abstract class CommonObject
     								$this->total_ttc -= $diff;
     								$total_tva_by_vats[$obj->vatrate] -= $diff;
     								$total_ttc_by_vats[$obj->vatrate] -= $diff;
    -
     					}
     				}
     
    @@ -2832,6 +2904,7 @@ abstract class CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Add objects linked in llx_element_element.
     	 *
    @@ -2842,6 +2915,7 @@ abstract class CommonObject
     	 */
     	function add_object_linked($origin=null, $origin_id=null)
     	{
    +        // phpcs:enable
     		$origin = (! empty($origin) ? $origin : $this->origin);
     		$origin_id = (! empty($origin_id) ? $origin_id : $this->origin_id);
     
    @@ -2849,7 +2923,7 @@ abstract class CommonObject
     		if ($origin == 'order') $origin='commande';
     		if ($origin == 'invoice') $origin='facture';
     		if ($origin == 'invoice_template') $origin='facturerec';
    -
    +    	if ($origin == 'supplierorder') $origin='order_supplier';
     		$this->db->begin();
     
     		$sql = "INSERT INTO ".MAIN_DB_PREFIX."element_element (";
    @@ -2879,7 +2953,9 @@ abstract class CommonObject
     	}
     
     	/**
    -	 *	Fetch array of objects linked to current object. Links are loaded into this->linkedObjects array and this->linkedObjectsIds
    +	 *	Fetch array of objects linked to current object (object of enabled modules only). Links are loaded into
    +	 *		this->linkedObjectsIds array and
    +	 *		this->linkedObjects array if $loadalsoobjects = 1
     	 *  Possible usage for parameters:
     	 *  - all parameters empty -> we look all link to current object (current object can be source or target)
     	 *  - source id+type -> will get target list linked to source
    @@ -2887,17 +2963,18 @@ abstract class CommonObject
     	 *  - source id+type + target type -> will get target list of the type
     	 *  - target id+type + target source -> will get source list of the type
     	 *
    -	 *	@param	int		$sourceid		Object source id (if not defined, id of object)
    -	 *	@param  string	$sourcetype		Object source type (if not defined, element name of object)
    -	 *	@param  int		$targetid		Object target id (if not defined, id of object)
    -	 *	@param  string	$targettype		Object target type (if not defined, elemennt name of object)
    -	 *	@param  string	$clause			'OR' or 'AND' clause used when both source id and target id are provided
    -	 *  @param  int		$alsosametype	0=Return only links to object that differs from source. 1=Include also link to objects of same type.
    -	 *  @param  string	$orderby		SQL 'ORDER BY' clause
    -	 *	@return int						<0 if KO, >0 if OK
    +	 *	@param	int		$sourceid			Object source id (if not defined, id of object)
    +	 *	@param  string	$sourcetype			Object source type (if not defined, element name of object)
    +	 *	@param  int		$targetid			Object target id (if not defined, id of object)
    +	 *	@param  string	$targettype			Object target type (if not defined, elemennt name of object)
    +	 *	@param  string	$clause				'OR' or 'AND' clause used when both source id and target id are provided
    +	 *  @param  int		$alsosametype		0=Return only links to object that differs from source type. 1=Include also link to objects of same type.
    +	 *  @param  string	$orderby			SQL 'ORDER BY' clause
    +	 *  @param	int		$loadalsoobjects	Load also array this->linkedObjects (Use 0 to increase performances)
    +	 *	@return int							<0 if KO, >0 if OK
     	 *  @see	add_object_linked, updateObjectLinked, deleteObjectLinked
     	 */
    -	function fetchObjectLinked($sourceid=null,$sourcetype='',$targetid=null,$targettype='',$clause='OR',$alsosametype=1,$orderby='sourcetype')
    +	function fetchObjectLinked($sourceid=null,$sourcetype='',$targetid=null,$targettype='',$clause='OR',$alsosametype=1,$orderby='sourcetype',$loadalsoobjects=1)
     	{
     		global $conf;
     
    @@ -2926,10 +3003,10 @@ abstract class CommonObject
     		$targettype = (! empty($targettype) ? $targettype : $this->element);
     
     		/*if (empty($sourceid) && empty($targetid))
    -        {
    -        	dol_syslog('Bad usage of function. No source nor target id defined (nor as parameter nor as object id)', LOG_ERR);
    -        	return -1;
    -        }*/
    +		 {
    +		 dol_syslog('Bad usage of function. No source nor target id defined (nor as parameter nor as object id)', LOG_ERR);
    +		 return -1;
    +		 }*/
     
     		// Links between objects are stored in table element_element
     		$sql = 'SELECT rowid, fk_source, sourcetype, fk_target, targettype';
    @@ -2991,7 +3068,8 @@ abstract class CommonObject
     
     			if (! empty($this->linkedObjectsIds))
     			{
    -				foreach($this->linkedObjectsIds as $objecttype => $objectids)       // $objecttype is a module name ('facture', 'mymodule', ...) or a module name with a suffix ('project_task', 'mymodule_myobj', ...)
    +				$tmparray = $this->linkedObjectsIds;
    +				foreach($tmparray as $objecttype => $objectids)       // $objecttype is a module name ('facture', 'mymodule', ...) or a module name with a suffix ('project_task', 'mymodule_myobj', ...)
     				{
     					// Parse element/subelement (ex: project_task, cabinetmed_consultation, ...)
     					$module = $element = $subelement = $objecttype;
    @@ -3057,21 +3135,28 @@ abstract class CommonObject
     					// Here $module, $classfile and $classname are set
     					if ($conf->$module->enabled && (($element != $this->element) || $alsosametype))
     					{
    -						dol_include_once('/'.$classpath.'/'.$classfile.'.class.php');
    -						//print '/'.$classpath.'/'.$classfile.'.class.php '.class_exists($classname);
    -						if (class_exists($classname))
    +						if ($loadalsoobjects)
     						{
    -							foreach($objectids as $i => $objectid)	// $i is rowid into llx_element_element
    +							dol_include_once('/'.$classpath.'/'.$classfile.'.class.php');
    +							//print '/'.$classpath.'/'.$classfile.'.class.php '.class_exists($classname);
    +							if (class_exists($classname))
     							{
    -								$object = new $classname($this->db);
    -								$ret = $object->fetch($objectid);
    -								if ($ret >= 0)
    +								foreach($objectids as $i => $objectid)	// $i is rowid into llx_element_element
     								{
    -									$this->linkedObjects[$objecttype][$i] = $object;
    +									$object = new $classname($this->db);
    +									$ret = $object->fetch($objectid);
    +									if ($ret >= 0)
    +									{
    +										$this->linkedObjects[$objecttype][$i] = $object;
    +									}
     								}
     							}
     						}
     					}
    +					else
    +					{
    +						unset($this->linkedObjectsIds[$objecttype]);
    +					}
     				}
     			}
     			return 1;
    @@ -3501,6 +3586,10 @@ abstract class CommonObject
     			{
     				if (empty($totalToShip)) $totalToShip=0;    // Avoid warning because $totalToShip is ''
     				$totalToShip+=$line->qty_shipped;   // defined for shipment only
    +            }else if ($line->element == 'commandefournisseurdispatch' && isset($line->qty))
    +            {
    +                if (empty($totalToShip)) $totalToShip=0;
    +                $totalToShip+=$line->qty;   // defined for reception only
     			}
     
     			// Define qty, weight, volume, weight_units, volume_units
    @@ -3513,10 +3602,14 @@ abstract class CommonObject
     			}
     
     			$weight = $line->weight ? $line->weight : 0;
    +            ($weight==0 && !empty($line->product->weight))? $weight=$line->product->weight: 0;
     			$volume = $line->volume ? $line->volume : 0;
    +			($volume==0 && !empty($line->product->volume))? $volume=$line->product->volume: 0;
     
     			$weight_units=$line->weight_units;
    +			($weight_units==0 && !empty($line->product->weight_units))? $weight_units=$line->product->weight_units: 0;
     			$volume_units=$line->volume_units;
    +			($volume_units==0 && !empty($line->product->volume_units))? $volume_units=$line->product->volume_units: 0;
     
     			$weightUnit=0;
     			$volumeUnit=0;
    @@ -3593,6 +3686,7 @@ abstract class CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Return incoterms informations
     	 *    TODO Use a cache for label get
    @@ -3601,6 +3695,7 @@ abstract class CommonObject
     	 */
     	function display_incoterms()
     	{
    +        // phpcs:enable
     		$out = '';
     		$this->libelle_incoterms = '';
     		if (!empty($this->fk_incoterms))
    @@ -3772,6 +3867,7 @@ abstract class CommonObject
     
     			print '<tr class="liste_titre nodrag nodrop">';
     
    +			// Adds a line numbering column
     			if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER)) print '<td class="linecolnum" align="center" width="5">&nbsp;</td>';
     
     			// Description
    @@ -4030,7 +4126,7 @@ abstract class CommonObject
     		print '<td align="right">'.$langs->trans('Qty').'</td>';
     		if($conf->global->PRODUCT_USE_UNITS)
     		{
    -			print '<td align="left">'.$langs->trans('Unit').'</td>';
    +			print '<td class="left">'.$langs->trans('Unit').'</td>';
     		}
     		print '<td align="right">'.$langs->trans('ReductionShort').'</td></tr>';
     
    @@ -4110,6 +4206,11 @@ abstract class CommonObject
     			$productstatic->id = $line->fk_product;
     			$productstatic->ref = $line->ref;
     			$productstatic->type = $line->fk_product_type;
    +            if(empty($productstatic->ref)){
    +				$line->fetch_product();
    +				$productstatic = $line->product;
    +			}
    +
     			$this->tpl['label'].= $productstatic->getNomUrl(1);
     			$this->tpl['label'].= ' - '.(! empty($line->label)?$line->label:$line->product_label);
     			// Dates
    @@ -4126,6 +4227,7 @@ abstract class CommonObject
     			}else {
     				$this->tpl['label'].= ($line->label ? '&nbsp;'.$line->label : '');
     			}
    +
     			// Dates
     			if ($line->product_type == 1 && ($date_start || $date_end))
     			{
    @@ -4200,6 +4302,7 @@ abstract class CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Add resources to the current object : add entry into llx_element_resources
     	 *	Need $this->element & $this->id
    @@ -4212,6 +4315,7 @@ abstract class CommonObject
     	 */
     	function add_element_resource($resource_id, $resource_type, $busy=0, $mandatory=0)
     	{
    +        // phpcs:enable
     		$this->db->begin();
     
     		$sql = "INSERT INTO ".MAIN_DB_PREFIX."element_resources (";
    @@ -4244,6 +4348,7 @@ abstract class CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Delete a link to resource line
     	 *
    @@ -4254,6 +4359,7 @@ abstract class CommonObject
     	 */
     	function delete_resource($rowid, $element, $notrigger=0)
     	{
    +        // phpcs:enable
     		global $user;
     
     		$this->db->begin();
    @@ -4544,7 +4650,6 @@ abstract class CommonObject
     				dol_print_error($this->db, "Error generating document for ".__CLASS__.". Error: ".$obj->error, $obj->errors);
     				return -1;
     			}
    -
     		}
     		else
     		{
    @@ -4620,13 +4725,13 @@ abstract class CommonObject
     		if (isset($conf->global->$keyforfieldname)) return $conf->global->$keyforfieldname;
     
     		// TODO Ad here a scan into table llx_overwrite_default with a filter on $this->element and $fieldname
    -
     	}
     
     
     	/* For triggers */
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Call trigger based on this instance.
     	 * Some context information may also be provided into array property this->context.
    @@ -4639,6 +4744,7 @@ abstract class CommonObject
     	 */
     	function call_trigger($trigger_name, $user)
     	{
    +        // phpcs:enable
     		global $langs,$conf;
     
     		include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    @@ -4663,6 +4769,7 @@ abstract class CommonObject
     	/* Functions for extrafields */
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Function to get extra fields of an object into $this->array_options
     	 *  This method is in most cases called by method fetch of objects but you can call it separately.
    @@ -4673,6 +4780,7 @@ abstract class CommonObject
     	 */
     	function fetch_optionals($rowid=null, $optionsArray=null)
     	{
    +        // phpcs:enable
     		if (empty($rowid)) $rowid=$this->id;
     
     		// To avoid SQL errors. Probably not the better solution though
    @@ -4937,8 +5045,6 @@ abstract class CommonObject
     						$new_array_options[$key] = price2num($this->array_options[$key]);
     						break;
     					case 'date':
    -						$new_array_options[$key] = $this->db->idate($this->array_options[$key]);
    -						break;
     					case 'datetime':
     						// If data is a string instead of a timestamp, we convert it
     						if (! is_int($this->array_options[$key])) {
    @@ -5190,10 +5296,10 @@ abstract class CommonObject
     	 * @param  string  		$moreparam     To add more parameters on html input tag
     	 * @param  string  		$keysuffix     Prefix string to add into name and id of field (can be used to avoid duplicate names)
     	 * @param  string  		$keyprefix     Suffix string to add into name and id of field (can be used to avoid duplicate names)
    -	 * @param  string|int	$showsize      Value for css to define size. May also be a numeric.
    +	 * @param  string|int		$morecss       Value for css to define style/length of field. May also be a numeric.
     	 * @return string
     	 */
    -	function showInputField($val, $key, $value, $moreparam='', $keysuffix='', $keyprefix='', $showsize=0)
    +	function showInputField($val, $key, $value, $moreparam='', $keysuffix='', $keyprefix='', $morecss=0)
     	{
     		global $conf,$langs,$form;
     
    @@ -5203,38 +5309,51 @@ abstract class CommonObject
     			$form=new Form($this->db);
     		}
     
    +		$val=$this->fields[$key];
    +
    +		$out='';
    +        $type='';
    +        $param = array();
    +        $param['options']=array();
    +        $size =$this->fields[$key]['size'];
    +        // Because we work on extrafields
    +        if(preg_match('/^integer:(.*):(.*)/i', $val['type'], $reg)){
    +            $param['options']=array($reg[1].':'.$reg[2]=>'N');
    +            $type ='link';
    +        } elseif(preg_match('/^link:(.*):(.*)/i', $val['type'], $reg)) {
    +            $param['options']=array($reg[1].':'.$reg[2]=>'N');
    +            $type ='link';
    +        } elseif(preg_match('/^sellist:(.*):(.*):(.*):(.*)/i', $val['type'], $reg)) {
    +            $param['options']=array($reg[1].':'.$reg[2].':'.$reg[3].':'.$reg[4]=>'N');
    +            $type ='sellist';
    +        } elseif(preg_match('/varchar\((\d+)\)/', $val['type'],$reg)) {
    +            $param['options']=array();
    +            $type ='varchar';
    +            $size=$reg[1];
    +        } elseif(preg_match('/varchar/', $val['type'])) {
    +            $param['options']=array();
    +            $type ='varchar';
    +        } elseif(is_array($this->fields[$key]['arrayofkeyval'])) {
    +            $param['options']=$this->fields[$key]['arrayofkeyval'];
    +            $type ='select';
    +        } else {
    +            $param['options']=array();
    +            $type =$this->fields[$key]['type'];
    +        }
    +
    +		$label=$this->fields[$key]['label'];
    +		//$elementtype=$this->fields[$key]['elementtype'];	// Seems not used
    +		$default=$this->fields[$key]['default'];
    +		$computed=$this->fields[$key]['computed'];
    +		$unique=$this->fields[$key]['unique'];
    +		$required=$this->fields[$key]['required'];
    +
    +		$langfile=$this->fields[$key]['langfile'];
    +		$list=$this->fields[$key]['list'];
    +		$hidden=abs($this->fields[$key]['visible'])!=1?1:0;
    +
     		$objectid = $this->id;
     
    -		$label= $val['label'];
    -		$type = $val['type'];
    -		$size = $val['css'];
    -
    -		// Convert var to be able to share same code than showInputField of extrafields
    -		if (preg_match('/varchar\((\d+)\)/', $type, $reg))
    -		{
    -			$type = 'varchar';		// convert varchar(xx) int varchar
    -			$size = $reg[1];
    -		}
    -		elseif (preg_match('/varchar/', $type)) $type = 'varchar';		// convert varchar(xx) into varchar
    -		elseif (preg_match('/double/', $type)) $type = 'double';		// convert double(xx) into double
    -		if (is_array($val['arrayofkeyval'])) $type='select';
    -		if (preg_match('/^integer:(.*):(.*)/i', $val['type'], $reg)) $type='link';
    -
    -		$default=$val['default'];
    -		$computed=$val['computed'];
    -		$unique=$val['unique'];
    -		$required=$val['required'];
    -		$param=$val['param'];
    -		if (is_array($val['arrayofkeyval'])) $param['options'] = $val['arrayofkeyval'];
    -		if (preg_match('/^integer:(.*):(.*)/i', $val['type'], $reg))
    -		{
    -			$type='link';
    -			$param['options']=array($reg[1].':'.$reg[2]=>$reg[1].':'.$reg[2]);
    -		}
    -		$langfile=$val['langfile'];
    -		$list=$val['list'];
    -		$hidden=(abs($val['visible'])!=1 ? 1 : 0);
    -		$help=$val['help'];
     
     		if ($computed)
     		{
    @@ -5242,54 +5361,50 @@ abstract class CommonObject
     			else return '';
     		}
     
    +
     		// Use in priority showsize from parameters, then $val['css'] then autodefine
    -		if (empty($showsize) && ! empty($val['css']))
    +		if (empty($morecss) && ! empty($val['css']))
     		{
     			$showsize = $val['css'];
     		}
    -		if (empty($showsize))
    +		if (empty($morecss))
     		{
     			if ($type == 'date')
     			{
    -				//$showsize=10;
    -				$showsize = 'minwidth100imp';
    +				$morecss = 'minwidth100imp';
     			}
     			elseif ($type == 'datetime')
     			{
    -				//$showsize=19;
    -				$showsize = 'minwidth200imp';
    +				$morecss = 'minwidth200imp';
     			}
    -			elseif (in_array($type,array('int','double','price')))
    +			elseif (in_array($type,array('int','integer','price')) || preg_match('/^double(\([0-9],[0-9]\)){0,1}/',$type))
     			{
    -				//$showsize=10;
    -				$showsize = 'maxwidth75';
    -			}
    -			elseif ($type == 'url')
    +				$morecss = 'maxwidth75';
    +                        }elseif ($type == 'url')
     			{
    -				$showsize='minwidth400';
    +				$morecss='minwidth400';
     			}
     			elseif ($type == 'boolean')
     			{
    -				$showsize='';
    +				$morecss='';
     			}
     			else
     			{
     				if (round($size) < 12)
     				{
    -					$showsize = 'minwidth100';
    +					$morecss = 'minwidth100';
     				}
     				else if (round($size) <= 48)
     				{
    -					$showsize = 'minwidth200';
    +					$morecss = 'minwidth200';
     				}
     				else
     				{
    -					//$showsize=48;
    -					$showsize = 'minwidth400';
    +					$morecss = 'minwidth400';
     				}
     			}
     		}
    -		//var_dump($showsize.' '.$size);
    +
     		if (in_array($type,array('date','datetime')))
     		{
     			$tmp=explode(',',$size);
    @@ -5297,37 +5412,51 @@ abstract class CommonObject
     
     			$showtime = in_array($type,array('datetime')) ? 1 : 0;
     
    -			// Do not show current date when field not required (see select_date() method)
    +			// Do not show current date when field not required (see selectDate() method)
     			if (!$required && $value == '') $value = '-1';
     
     			// TODO Must also support $moreparam
    -			$out = $form->select_date($value, $keyprefix.$key.$keysuffix, $showtime, $showtime, $required, '', 1, ($keyprefix != 'search_' ? 1 : 0), 1, 0, 1);
    +			$out = $form->selectDate($value, $keyprefix.$key.$keysuffix, $showtime, $showtime, $required, '', 1, (($keyprefix != 'search_' && $keyprefix != 'search_options_') ? 1 : 0), 0, 1);
     		}
     		elseif (in_array($type,array('int','integer')))
     		{
     			$tmp=explode(',',$size);
     			$newsize=$tmp[0];
    -			$out='<input type="text" class="flat '.$showsize.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$newsize.'" value="'.$value.'"'.($moreparam?$moreparam:'').'>';
    +			$out='<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$newsize.'" value="'.dol_escape_htmltag($value).'"'.($moreparam?$moreparam:'').'>';
     		}
     		elseif (preg_match('/varchar/', $type))
     		{
    -			$out='<input type="text" class="flat '.$showsize.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$size.'" value="'.dol_escape_htmltag($value).'"'.($moreparam?$moreparam:'').'>';
    +			$out='<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$size.'" value="'.dol_escape_htmltag($value).'"'.($moreparam?$moreparam:'').'>';
     		}
     		elseif (in_array($type, array('mail', 'phone', 'url')))
     		{
    -			$out='<input type="text" class="flat '.$showsize.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam?$moreparam:'').'>';
    +			$out='<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'" '.($moreparam?$moreparam:'').'>';
     		}
     		elseif ($type == 'text')
     		{
    -			require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    -			$doleditor=new DolEditor($keyprefix.$key.$keysuffix,$value,'',200,'dolibarr_notes','In',false,false,0,ROWS_5,'90%');
    -			$out=$doleditor->Create(1);
    +			if (! preg_match('/search_/', $keyprefix))		// If keyprefix is search_ or search_options_, we must just use a simple text field
    +			{
    +				require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    +				$doleditor=new DolEditor($keyprefix.$key.$keysuffix,$value,'',200,'dolibarr_notes','In',false,false,false,ROWS_5,'90%');
    +				$out=$doleditor->Create(1);
    +			}
    +			else
    +			{
    +				$out='<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'" '.($moreparam?$moreparam:'').'>';
    +			}
     		}
     		elseif ($type == 'html')
     		{
    -			require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    -			$doleditor=new DolEditor($keyprefix.$key.$keysuffix,$value,'',200,'dolibarr_notes','In',false,false,! empty($conf->fckeditor->enabled) && $conf->global->FCKEDITOR_ENABLE_SOCIETE,ROWS_5,'90%');
    -			$out=$doleditor->Create(1);
    +			if (! preg_match('/search_/', $keyprefix))		// If keyprefix is search_ or search_options_, we must just use a simple text field
    +			{
    +				require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    +				$doleditor=new DolEditor($keyprefix.$key.$keysuffix,$value,'',200,'dolibarr_notes','In',false,false,! empty($conf->fckeditor->enabled) && $conf->global->FCKEDITOR_ENABLE_SOCIETE,ROWS_5,'90%');
    +				$out=$doleditor->Create(1);
    +			}
    +			else
    +			{
    +				$out='<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'" '.($moreparam?$moreparam:'').'>';
    +			}
     		}
     		elseif ($type == 'boolean')
     		{
    @@ -5337,21 +5466,21 @@ abstract class CommonObject
     			} else {
     				$checked=' value="1" ';
     			}
    -			$out='<input type="checkbox" class="flat '.$showsize.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.$checked.' '.($moreparam?$moreparam:'').'>';
    +			$out='<input type="checkbox" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.$checked.' '.($moreparam?$moreparam:'').'>';
     		}
     		elseif ($type == 'price')
     		{
     			if (!empty($value)) {		// $value in memory is a php numeric, we format it into user number format.
     				$value=price($value);
     			}
    -			$out='<input type="text" class="flat '.$showsize.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam?$moreparam:'').'> '.$langs->getCurrencySymbol($conf->currency);
    +			$out='<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam?$moreparam:'').'> '.$langs->getCurrencySymbol($conf->currency);
     		}
    -		elseif ($type == 'double')
    +		elseif (preg_match('/^double(\([0-9],[0-9]\)){0,1}/',$type))
     		{
     			if (!empty($value)) {		// $value in memory is a php numeric, we format it into user number format.
     				$value=price($value);
     			}
    -			$out='<input type="text" class="flat '.$showsize.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam?$moreparam:'').'> ';
    +			$out='<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam?$moreparam:'').'> ';
     		}
     		elseif ($type == 'select')
     		{
    @@ -5362,8 +5491,8 @@ abstract class CommonObject
     				$out.= ajax_combobox($keyprefix.$key.$keysuffix, array(), 0);
     			}
     
    -			$out.='<select class="flat '.$showsize.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.($moreparam?$moreparam:'').'>';
    -			if ((! isset($val['default'])) || ($val['notnull'] != 1)) $out.='<option value="0">&nbsp;</option>';
    +			$out.='<select class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.($moreparam?$moreparam:'').'>';
    +                if((! isset($this->fields[$key]['default'])) ||($this->fields[$key]['notnull']!=1))$out.='<option value="0">&nbsp;</option>';
     			foreach ($param['options'] as $key => $val)
     			{
     				if ((string) $key == '') continue;
    @@ -5384,11 +5513,13 @@ abstract class CommonObject
     				$out.= ajax_combobox($keyprefix.$key.$keysuffix, array(), 0);
     			}
     
    -			$out.='<select class="flat '.$showsize.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.($moreparam?$moreparam:'').'>';
    +			$out.='<select class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.($moreparam?$moreparam:'').'>';
     			if (is_array($param['options']))
     			{
     				$param_list=array_keys($param['options']);
     				$InfoFieldList = explode(":", $param_list[0]);
    +				$parentName='';
    +				$parentField='';
     				// 0 : tableName
     				// 1 : label field name
     				// 2 : key fields name (if differ of rowid)
    @@ -5473,8 +5604,9 @@ abstract class CommonObject
     						$obj = $this->db->fetch_object($resql);
     
     						// Several field into label (eq table:code|libelle:rowid)
    +						$notrans = false;
     						$fields_label = explode('|',$InfoFieldList[1]);
    -						if(is_array($fields_label))
    +						if (is_array($fields_label))
     						{
     							$notrans = true;
     							foreach ($fields_label as $field_toshow)
    @@ -5488,7 +5620,7 @@ abstract class CommonObject
     						}
     						$labeltoshow=dol_trunc($labeltoshow,45);
     
    -						if ($value==$obj->rowid)
    +						if ($value == $obj->rowid)
     						{
     							foreach ($fields_label as $field_toshow)
     							{
    @@ -5503,7 +5635,7 @@ abstract class CommonObject
     						}
     						else
     						{
    -							if(!$notrans)
    +							if (! $notrans)
     							{
     								$translabel=$langs->trans($obj->{$InfoFieldList[1]});
     								if ($translabel!=$obj->{$InfoFieldList[1]}) {
    @@ -5519,7 +5651,7 @@ abstract class CommonObject
     								$out.='<option value="'.$obj->rowid.'" selected>'.$labeltoshow.'</option>';
     							}
     
    -							if (!empty($InfoFieldList[3]))
    +							if (!empty($InfoFieldList[3]) && $parentField)
     							{
     								$parent = $parentName.':'.$obj->{$parentField};
     							}
    @@ -5550,7 +5682,7 @@ abstract class CommonObject
     			$out='';
     			foreach ($param['options'] as $keyopt => $val)
     			{
    -				$out.='<input class="flat '.$showsize.'" type="radio" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.($moreparam?$moreparam:'');
    +				$out.='<input class="flat '.$morecss.'" type="radio" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.($moreparam?$moreparam:'');
     				$out.=' value="'.$keyopt.'"';
     				$out.=' id="'.$keyprefix.$key.$keysuffix.'_'.$keyopt.'"';
     				$out.= ($value==$keyopt?'checked':'');
    @@ -5569,6 +5701,8 @@ abstract class CommonObject
     			if (is_array($param['options'])) {
     				$param_list = array_keys($param['options']);
     				$InfoFieldList = explode(":", $param_list[0]);
    +				$parentName='';
    +				$parentField='';
     				// 0 : tableName
     				// 1 : label field name
     				// 2 : key fields name (if differ of rowid)
    @@ -5642,6 +5776,7 @@ abstract class CommonObject
     						$labeltoshow = '';
     						$obj = $this->db->fetch_object($resql);
     
    +						$notrans = false;
     						// Several field into label (eq table:code|libelle:rowid)
     						$fields_label = explode('|', $InfoFieldList[1]);
     						if (is_array($fields_label)) {
    @@ -5665,7 +5800,6 @@ abstract class CommonObject
     							}
     
     							$data[$obj->rowid]=$labeltoshow;
    -
     						} else {
     							if (! $notrans) {
     								$translabel = $langs->trans($obj->{$InfoFieldList[1]});
    @@ -5682,7 +5816,7 @@ abstract class CommonObject
     									$data[$obj->rowid]=$labeltoshow;
     								}
     
    -								if (! empty($InfoFieldList[3])) {
    +								if (! empty($InfoFieldList[3]) && $parentField) {
     									$parent = $parentName . ':' . $obj->{$parentField};
     								}
     
    @@ -5694,23 +5828,29 @@ abstract class CommonObject
     					$this->db->free($resql);
     
     					$out=$form->multiselectarray($keyprefix.$key.$keysuffix, $data, $value_arr, '', 0, '', 0, '100%');
    -
     				} else {
     					print 'Error in request ' . $sql . ' ' . $this->db->lasterror() . '. Check setup of extra parameters.<br>';
     				}
     			}
    -			$out .= '</select>';
     		}
     		elseif ($type == 'link')
     		{
     			$param_list=array_keys($param['options']);				// $param_list='ObjectName:classPath'
    -			$showempty=(($val['notnull'] == 1 && $val['default'] != '')?0:1);
    +			$showempty=(($required && $default != '')?0:1);
     			$out=$form->selectForForms($param_list[0], $keyprefix.$key.$keysuffix, $value, $showempty);
    +			if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
    +			{
    +            			list($class,$classfile)=explode(':',$param_list[0]);
    +            			if (file_exists(dol_buildpath(dirname(dirname($classfile)).'/card.php'))) $url_path=dol_buildpath(dirname(dirname($classfile)).'/card.php',1);
    +            			else $url_path=dol_buildpath(dirname(dirname($classfile)).'/'.$class.'_card.php',1);
    +            			$out.='<a class="butActionNew" href="'.$url_path.'?action=create&backtopage='.$_SERVER['PHP_SELF'].'"><span class="fa fa-plus-circle valignmiddle"></span></a>';
    +            			// TODO Add Javascript code to add input fields contents to new elements urls
    +			}
     		}
     		elseif ($type == 'password')
     		{
     			// If prefix is 'search_', field is used as a filter, we use a common text field.
    -			$out='<input type="'.($keyprefix=='search_'?'text':'password').'" class="flat '.$showsize.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam?$moreparam:'').'>';
    +			$out='<input type="'.($keyprefix=='search_'?'text':'password').'" class="flat '.$morecss.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam?$moreparam:'').'>';
     		}
     		elseif ($type == 'array')
     		{
    @@ -5757,7 +5897,6 @@ abstract class CommonObject
     		return $out;
     	}
     
    -
     	/**
     	 * Return HTML string to show a field into a page
     	 * Code very similar with showOutputField of extra fields
    @@ -6003,13 +6142,13 @@ abstract class CommonObject
     		{
     			$value_arr=explode(',',$value);
     			$value='';
    -			if (is_array($value_arr))
    +			if (is_array($value_arr) && count($value_arr)>0)
     			{
     				foreach ($value_arr as $keyval=>$valueval) {
     					$toprint[]='<li class="select2-search-choice-dolibarr noborderoncategories" style="background: #aaa">'.$param['options'][$valueval].'</li>';
     				}
    +				$value='<div class="select2-container-multi-dolibarr" style="width: 90%;"><ul class="select2-choices-dolibarr">'.implode(' ', $toprint).'</ul></div>';
     			}
    -			$value='<div class="select2-container-multi-dolibarr" style="width: 90%;"><ul class="select2-choices-dolibarr">'.implode(' ', $toprint).'</ul></div>';
     		}
     		elseif ($type == 'chkbxlst')
     		{
    @@ -6076,7 +6215,6 @@ abstract class CommonObject
     					}
     				}
     				$value='<div class="select2-container-multi-dolibarr" style="width: 90%;"><ul class="select2-choices-dolibarr">'.implode(' ', $toprint).'</ul></div>';
    -
     			} else {
     				dol_syslog(get_class($this) . '::showOutputField error ' . $this->db->lasterror(), LOG_WARNING);
     			}
    @@ -6093,6 +6231,7 @@ abstract class CommonObject
     				$InfoFieldList = explode(":", $param_list[0]);
     				$classname=$InfoFieldList[0];
     				$classpath=$InfoFieldList[1];
    +				$getnomurlparam=(empty($InfoFieldList[2]) ? 3 : $InfoFieldList[2]);
     				if (! empty($classpath))
     				{
     					dol_include_once($InfoFieldList[1]);
    @@ -6100,7 +6239,7 @@ abstract class CommonObject
     					{
     						$object = new $classname($this->db);
     						$object->fetch($value);
    -						$value=$object->getNomUrl(3);
    +						$value=$object->getNomUrl($getnomurlparam);
     					}
     				}
     				else
    @@ -6109,6 +6248,7 @@ abstract class CommonObject
     					return 'Error bad setup of extrafield';
     				}
     			}
    +			else $value='';
     		}
     		elseif ($type == 'text' || $type == 'html')
     		{
    @@ -6135,7 +6275,7 @@ abstract class CommonObject
     	 *
     	 * @param 	Extrafields $extrafields    Extrafield Object
     	 * @param 	string      $mode           Show output (view) or input (edit) for extrafield
    -	 * @param 	array       $params         Optional parameters
    +	 * @param 	array       $params         Optional parameters. Example: array('style'=>'class="oddeven"', 'colspan'=>$colspan)
     	 * @param 	string      $keysuffix      Suffix string to add after name and id of field (can be used to avoid duplicate names)
     	 * @param 	string      $keyprefix      Prefix string to add before name and id of field (can be used to avoid duplicate names)
     	 * @param	string		$onetrtd		All fields in same tr td
    @@ -6158,10 +6298,8 @@ abstract class CommonObject
     			$e = 0;
     			foreach($extrafields->attributes[$this->table_element]['label'] as $key=>$label)
     			{
    -			    if (isset($extrafields->attributes[$this->table_element]['list'][$key])
    -			        && empty($extrafields->attributes[$this->table_element]['list'][$key]) && $mode == 'view'){
    -			        continue;
    -			    }
    +				// Show only the key field in params
    +				if (is_array($params) && array_key_exists('onlykey',$params) && $key != $params['onlykey']) continue;
     
     				$enabled = 1;
     				if ($enabled && isset($extrafields->attributes[$this->table_element]['list'][$key]))
    @@ -6181,12 +6319,11 @@ abstract class CommonObject
     				// Load language if required
     				if (! empty($extrafields->attributes[$this->table_element]['langfile'][$key])) $langs->load($extrafields->attributes[$this->table_element]['langfile'][$key]);
     
    +				$colspan='3';
     				if (is_array($params) && count($params)>0) {
     					if (array_key_exists('colspan',$params)) {
     						$colspan=$params['colspan'];
     					}
    -				}else {
    -					$colspan='3';
     				}
     
     				switch($mode) {
    @@ -6449,6 +6586,7 @@ abstract class CommonObject
     		return $buyPrice;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Show photos of an object (nbmax maximum), into several columns
     	 *
    @@ -6468,6 +6606,7 @@ abstract class CommonObject
     	 */
     	function show_photos($modulepart, $sdir, $size=0, $nbmax=0, $nbbyrow=5, $showfilename=0, $showaction=0, $maxHeight=120, $maxWidth=160, $nolink=0, $notitle=0, $usesharelink=0)
     	{
    +        // phpcs:enable
     		global $conf,$user,$langs;
     
     		include_once DOL_DOCUMENT_ROOT .'/core/lib/files.lib.php';
    @@ -6862,6 +7001,7 @@ abstract class CommonObject
     	 * Function to load data from a SQL pointer into properties of current object $this
     	 *
     	 * @param   stdClass    $obj    Contain data of object from database
    +     * @return void
     	 */
     	protected function setVarsFromFetchObj(&$obj)
     	{
    @@ -6925,7 +7065,8 @@ abstract class CommonObject
     	 * @param	array		$fieldsentry	Properties of field
     	 * @return 	string
     	 */
    -	protected function quote($value, $fieldsentry) {
    +    protected function quote($value, $fieldsentry)
    +    {
     		if (is_null($value)) return 'NULL';
     		else if (preg_match('/^(int|double|real)/i', $fieldsentry['type'])) return $this->db->escape("$value");
     		else return "'".$this->db->escape($value)."'";
    @@ -7160,16 +7301,45 @@ abstract class CommonObject
     	/**
     	 * Delete object in database
     	 *
    -	 * @param User $user       User that deletes
    -	 * @param bool $notrigger  false=launch triggers after, true=disable triggers
    -	 * @return int             <0 if KO, >0 if OK
    +	 * @param 	User 	$user       			User that deletes
    +	 * @param 	bool 	$notrigger  			false=launch triggers after, true=disable triggers
    +	 * @param	int		$forcechilddeletion		0=no, 1=Force deletion of children
    +	 * @return 	int             				<=0 if KO, >0 if OK
     	 */
    -	public function deleteCommon(User $user, $notrigger = false)
    +	public function deleteCommon(User $user, $notrigger=false, $forcechilddeletion=0)
     	{
     		$error=0;
     
     		$this->db->begin();
     
    +		if ($forcechilddeletion)
    +		{
    +			foreach($this->childtables as $table)
    +			{
    +				$sql = 'DELETE FROM '.MAIN_DB_PREFIX.$table.' WHERE '.$this->fk_element.' = '.$this->id;
    +				$resql = $this->db->query($sql);
    +				if (! $resql)
    +				{
    +					$this->error=$this->db->lasterror();
    +					$this->errors[]=$this->error;
    +					$this->db->rollback();
    +					return -1;
    +				}
    +			}
    +		}
    +		elseif (! empty($this->fk_element) && ! empty($this->childtables))	// If object has childs linked with a foreign key field, we check all child tables.
    +		{
    +			$objectisused = $this->isObjectUsed($this->id);
    +			if (! empty($objectisused))
    +			{
    +				dol_syslog(get_class($this)."::deleteCommon Can't delete record as it has some child", LOG_WARNING);
    +				$this->error='ErrorRecordHasChildren';
    +				$this->errors[]=$this->error;
    +				$this->db->rollback();
    +				return 0;
    +			}
    +		}
    +
     		if (! $error) {
     			if (! $notrigger) {
     				// Call triggers
    @@ -7240,7 +7410,7 @@ abstract class CommonObject
     		$comment = new Comment($this->db);
     		$result=$comment->fetchAllFor($this->element, $this->id);
     		if ($result<0) {
    -			$this->errors=array_merge($this->errors,$comment->errors);
    +			$this->errors=array_merge($this->errors, $comment->errors);
     			return -1;
     		} else {
     			$this->comments = $comment->comments;
    @@ -7258,4 +7428,19 @@ abstract class CommonObject
     		return count($this->comments);
     	}
     
    +    /**
    +     * Trim object parameters
    +     * @param string[] $parameters array of parameters to trim
    +     *
    +     * @return void
    +     */
    +    public function trimParameters($parameters)
    +    {
    +        if (!is_array($parameters)) return;
    +        foreach ($parameters as $parameter) {
    +            if (isset($this->$parameter)) {
    +                $this->$parameter = trim($this->$parameter);
    +            }
    +        }
    +    }
     }
    diff --git a/htdocs/core/class/commonobjectline.class.php b/htdocs/core/class/commonobjectline.class.php
    index bed227eb408..91d4245ff88 100644
    --- a/htdocs/core/class/commonobjectline.class.php
    +++ b/htdocs/core/class/commonobjectline.class.php
    @@ -53,7 +53,7 @@ abstract class CommonObjectLine extends CommonObject
         /**
          *	Returns the translation key from units dictionary.
          *  A langs->trans() must be called on result to get translated value.
    -     *  
    +     *
          * 	@param	string $type Label type (long or short)
          *	@return	string|int <0 if ko, label if ok
          */
    @@ -94,4 +94,3 @@ abstract class CommonObjectLine extends CommonObject
     
     	// For the moment we use the extends on CommonObject until PHP min is 5.4 so use Traits.
     }
    -
    diff --git a/htdocs/core/class/commonorder.class.php b/htdocs/core/class/commonorder.class.php
    index b3e5033330d..199b29b87cd 100644
    --- a/htdocs/core/class/commonorder.class.php
    +++ b/htdocs/core/class/commonorder.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -144,6 +144,5 @@ abstract class CommonOrderLine extends CommonObjectLine
     	public $info_bits = 0;
     
     	public $special_code = 0;
    -
     }
     
    diff --git a/htdocs/core/class/commonstickergenerator.class.php b/htdocs/core/class/commonstickergenerator.class.php
    index 1091962f6ea..d5bf6f3317e 100644
    --- a/htdocs/core/class/commonstickergenerator.class.php
    +++ b/htdocs/core/class/commonstickergenerator.class.php
    @@ -1,10 +1,10 @@
     <?php
    -/* Copyright (C) 2003 Steve Dillon
    - * Copyright (C) 2003 Laurent Passebecq
    +/* Copyright (C) 2003      Steve Dillon
    + * Copyright (C) 2003      Laurent Passebecq
      * Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
      * Copyright (C) 2006-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2015 Francis Appels  <francis.appels@yahoo.com>
    + * Copyright (C) 2015      Francis Appels  <francis.appels@yahoo.com>
      *
      * 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
    @@ -61,9 +61,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/format_cards.lib.php';
      */
     abstract class CommonStickerGenerator
     {
    +	public $code;   // Code of format
     
    -	public $code;		// Code of format
    -	public $format;	// Array with informations
    +	/**
    +     * @var array format Array with informations
    +     */
    +    public $format;
     
     	// protected
     	var $_Avery_Name	= '';	// Nom du format de l'etiquette
    @@ -93,7 +96,8 @@ abstract class CommonStickerGenerator
     	{
     		$this->db = $db;
     	}
    -		
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Function to build PDF on disk, then output on HTTP strem.
     	 *
    @@ -104,6 +108,7 @@ abstract class CommonStickerGenerator
     	 *  @return int             				1=OK, 0=KO
     	 */
     	abstract function write_file($arrayofrecords,$outputlangs,$srctemplatepath,$outputdir='');
    +    // phpcs:enable
     
     	/**
     	 * Output a sticker on page at position _COUNTX, _COUNTY (_COUNTX and _COUNTY start from 0)
    @@ -114,7 +119,8 @@ abstract class CommonStickerGenerator
     	 * @return  void
     	 */
     	abstract function addSticker(&$pdf,$outputlangs,$param);
    -	
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Methode qui permet de modifier la taille des caracteres
     	 * Cela modiera aussi l'espace entre chaque ligne
    @@ -125,13 +131,15 @@ abstract class CommonStickerGenerator
     	 */
     	function Set_Char_Size(&$pdf,$pt)
     	{
    +        // phpcs:enable
     		if ($pt > 3) {
     			$this->_Char_Size = $pt;
     			$this->_Line_Height = $this->_Get_Height_Chars($pt);
     			$pdf->SetFont('','',$pt);
     		}
    -	}	
    +	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * protected Print dot line
     	 *
    @@ -146,6 +154,7 @@ abstract class CommonStickerGenerator
     	 */
         function _Pointille(&$pdf,$x1=0,$y1=0,$x2=210,$y2=297,$epaisseur=1,$nbPointilles=15)
     	{
    +        // phpcs:enable
     		$pdf->SetLineWidth($epaisseur);
     		$length=abs($x1-$x2);
     		$hauteur=abs($y1-$y2);
    @@ -173,6 +182,7 @@ abstract class CommonStickerGenerator
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * protected Function realisant une croix aux 4 coins des cartes
     	 *
    @@ -187,6 +197,7 @@ abstract class CommonStickerGenerator
     	 */
     	function _Croix(&$pdf,$x1=0,$y1=0,$x2=210,$y2=297,$epaisseur=1,$taille=4)
     	{
    +        // phpcs:enable
     		$pdf->SetDrawColor(192,192,192);
     
     		$pdf->SetLineWidth($epaisseur);
    @@ -208,25 +219,28 @@ abstract class CommonStickerGenerator
     	}
     
     	/**
    -	 * protected Convert units (in to mm, mm to in)
    +	 * Convert units (in to mm, mm to in)
     	 * $src and $dest must be 'in' or 'mm'
     	 *
     	 * @param int       $value  value
    -	 * @param string    $src    from
    -	 * @param string    $dest   to
    +	 * @param string    $src    from ('in' or 'mm')
    +	 * @param string    $dest   to ('in' or 'mm')
     	 * @return float    value   value after conversion
     	 */
    -	function _Convert_Metric ($value, $src, $dest)
    +	private function convertMetric($value, $src, $dest)
     	{
     		if ($src != $dest) {
    -			$tab['in'] = 39.37008;
    -			$tab['mm'] = 1000;
    +			$tab = array(
    +				'in'=>39.37008,
    +				'mm'=>1000
    +			);
     			return $value * $tab[$dest] / $tab[$src];
    -		} else {
    -			return $value;
     		}
    +
    +		return $value;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * protected Give the height for a char size given.
     	 *
    @@ -235,6 +249,7 @@ abstract class CommonStickerGenerator
     	 */
     	function _Get_Height_Chars($pt)
     	{
    +        // phpcs:enable
     		// Tableau de concordance entre la hauteur des caracteres et de l'espacement entre les lignes
     		$_Table_Hauteur_Chars = array(6=>2, 7=>2.5, 8=>3, 9=>3.5, 10=>4, 11=>6, 12=>7, 13=>8, 14=>9, 15=>10);
     		if (in_array($pt, array_keys($_Table_Hauteur_Chars))) {
    @@ -244,6 +259,7 @@ abstract class CommonStickerGenerator
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * protected Set format
     	 *
    @@ -251,20 +267,20 @@ abstract class CommonStickerGenerator
     	 * @param    string    $format  Format
     	 * @return   void
     	 */
    -	function _Set_Format(&$pdf, $format)  
    +	function _Set_Format(&$pdf, $format)
     	{
    -		$this->_Metric 	= $format['metric'];
    -		$this->_Avery_Name 	= $format['name'];
    -		$this->_Avery_Code	= $format['code'];
    -		$this->_Margin_Left	= $this->_Convert_Metric($format['marginLeft'], $this->_Metric, $this->_Metric_Doc);
    -		$this->_Margin_Top	= $this->_Convert_Metric($format['marginTop'], $this->_Metric, $this->_Metric_Doc);
    -		$this->_X_Space 	= $this->_Convert_Metric($format['SpaceX'], $this->_Metric, $this->_Metric_Doc);
    -		$this->_Y_Space 	= $this->_Convert_Metric($format['SpaceY'], $this->_Metric, $this->_Metric_Doc);
    -		$this->_X_Number 	= $format['NX'];
    -		$this->_Y_Number 	= $format['NY'];
    -		$this->_Width 	= $this->_Convert_Metric($format['width'], $this->_Metric, $this->_Metric_Doc);
    -		$this->_Height	= $this->_Convert_Metric($format['height'], $this->_Metric, $this->_Metric_Doc);
    +        // phpcs:enable
    +		$this->_Metric = $format['metric'];
    +		$this->_Avery_Name = $format['name'];
    +		$this->_Avery_Code = $format['code'];
    +		$this->_Margin_Left	= $this->convertMetric($format['marginLeft'], $this->_Metric, $this->_Metric_Doc);
    +		$this->_Margin_Top = $this->convertMetric($format['marginTop'], $this->_Metric, $this->_Metric_Doc);
    +		$this->_X_Space = $this->convertMetric($format['SpaceX'], $this->_Metric, $this->_Metric_Doc);
    +		$this->_Y_Space = $this->convertMetric($format['SpaceY'], $this->_Metric, $this->_Metric_Doc);
    +		$this->_X_Number = $format['NX'];
    +		$this->_Y_Number = $format['NY'];
    +		$this->_Width = $this->convertMetric($format['width'], $this->_Metric, $this->_Metric_Doc);
    +		$this->_Height = $this->convertMetric($format['height'], $this->_Metric, $this->_Metric_Doc);
     		$this->Set_Char_Size($pdf, $format['font-size']);
     	}
    -
     }
    diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php
    index 4a76abff06f..de39260e007 100644
    --- a/htdocs/core/class/conf.class.php
    +++ b/htdocs/core/class/conf.class.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Xavier Dutoit        <doli@sydesy.com>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2017 Regis Houssin      	<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017 Regis Houssin      	<regis.houssin@inodbox.com>
      * Copyright (C) 2006 	   Jean Heimburger    	<jean@tiaris.info>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -35,8 +35,12 @@ class Conf
     	/** \public */
     	//! To store properties found in conf file
     	var $file;
    -	//! Object with database handler
    -	var $db;
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
     	//! To store properties found into database
     	var $global;
     	//! To store browser info
    @@ -178,7 +182,7 @@ class Conf
     							if (is_array($arrValue) && ! empty($arrValue)) $value = $arrValue;
     							else if (in_array($partname,array('login','menus','substitutions','triggers','tpl'))) $value = '/'.$modulename.'/core/'.$partname.'/';
     							else if (in_array($partname,array('models','theme'))) $value = '/'.$modulename.'/';
    -							else if (in_array($partname,array('sms'))) $value = $modulename;
    +							else if (in_array($partname,array('sms'))) $value = '/'.$modulename.'/';
     							else if ($value == 1) $value = '/'.$modulename.'/core/modules/'.$partname.'/';	// ex: partname = societe
     							$this->modules_parts[$partname] = array_merge($this->modules_parts[$partname], array($modulename => $value));	// $value may be a string or an array
     						}
    @@ -234,7 +238,11 @@ class Conf
     		{
     			global $mc;
     			$ret = @dol_include_once('/multicompany/class/actions_multicompany.class.php');
    -			if ($ret) $mc = new ActionsMulticompany($db);
    +			if ($ret)
    +			{
    +				$mc = new ActionsMulticompany($db);
    +				$this->mc = $mc;
    +			}
     		}
     
     		// Clean some variables
    @@ -344,32 +352,46 @@ class Conf
     		if (! empty($this->fournisseur))
     		{
     			$this->fournisseur->commande=new stdClass();
    -			$this->fournisseur->commande->dir_output=$rootfordata."/fournisseur/commande";
    -			$this->fournisseur->commande->dir_temp  =$rootfordata."/fournisseur/commande/temp";
    +			$this->fournisseur->commande->multidir_output=array($this->entity => $rootfordata."/fournisseur/commande");
    +			$this->fournisseur->commande->multidir_temp  =array($this->entity => $rootfordata."/fournisseur/commande/temp");
    +			$this->fournisseur->commande->dir_output=$rootfordata."/fournisseur/commande";		// For backward compatibility
    +			$this->fournisseur->commande->dir_temp  =$rootfordata."/fournisseur/commande/temp";	// For backward compatibility
     			$this->fournisseur->facture=new stdClass();
    -			$this->fournisseur->facture->dir_output =$rootfordata."/fournisseur/facture";
    -			$this->fournisseur->facture->dir_temp   =$rootfordata."/fournisseur/facture/temp";
    +			$this->fournisseur->facture->multidir_output=array($this->entity => $rootfordata."/fournisseur/facture");
    +			$this->fournisseur->facture->multidir_temp  =array($this->entity => $rootfordata."/fournisseur/facture/temp");
    +			$this->fournisseur->facture->dir_output =$rootfordata."/fournisseur/facture";		// For backward compatibility
    +			$this->fournisseur->facture->dir_temp   =$rootfordata."/fournisseur/facture/temp";	// For backward compatibility
     			$this->supplierproposal=new stdClass();
    -			$this->supplierproposal->dir_output=$rootfordata."/supplier_proposal";
    -			$this->supplierproposal->dir_temp=$rootfordata."/supplier_proposal/temp";
    +			$this->supplierproposal->multidir_output=array($this->entity => $rootfordata."/supplier_proposal");
    +			$this->supplierproposal->multidir_temp  =array($this->entity => $rootfordata."/supplier_proposal/temp");
    +			$this->supplierproposal->dir_output=$rootfordata."/supplier_proposal";				// For backward compatibility
    +			$this->supplierproposal->dir_temp=$rootfordata."/supplier_proposal/temp";			// For backward compatibility
     			$this->fournisseur->payment=new stdClass();
    -			$this->fournisseur->payment->dir_output =$rootfordata."/fournisseur/payment";
    -			$this->fournisseur->payment->dir_temp   =$rootfordata."/fournisseur/payment/temp";
    +			$this->fournisseur->payment->multidir_output=array($this->entity => $rootfordata."/fournisseur/payment");
    +			$this->fournisseur->payment->multidir_temp  =array($this->entity => $rootfordata."/fournisseur/payment/temp");
    +			$this->fournisseur->payment->dir_output =$rootfordata."/fournisseur/payment";		// For backward compatibility
    +			$this->fournisseur->payment->dir_temp   =$rootfordata."/fournisseur/payment/temp";	// For backward compatibility
     
     			// To prepare split of module fournisseur into fournisseur + supplier_order + supplier_invoice
     			if (! empty($this->fournisseur->enabled) && empty($this->global->MAIN_USE_NEW_SUPPLIERMOD))  // By default, if module supplier is on, we set new properties
     			{
         			$this->supplier_order=new stdClass();
         			$this->supplier_order->enabled=1;
    -    			$this->supplier_order->dir_output=$rootfordata."/fournisseur/commande";
    -    			$this->supplier_order->dir_temp=$rootfordata."/fournisseur/commande/temp";
    +    			$this->supplier_order->multidir_output=array($this->entity => $rootfordata."/fournisseur/commande");
    +    			$this->supplier_order->multidir_temp  =array($this->entity => $rootfordata."/fournisseur/commande/temp");
    +    			$this->supplier_order->dir_output=$rootfordata."/fournisseur/commande";			// For backward compatibility
    +    			$this->supplier_order->dir_temp=$rootfordata."/fournisseur/commande/temp";		// For backward compatibility
         			$this->supplier_invoice=new stdClass();
         			$this->supplier_invoice->enabled=1;
    -    			$this->supplier_invoice->dir_output=$rootfordata."/fournisseur/facture";
    -    			$this->supplier_invoice->dir_temp=$rootfordata."/fournisseur/facture/temp";
    +    			$this->supplier_invoice->multidir_output=array($this->entity => $rootfordata."/fournisseur/facture");
    +    			$this->supplier_invoice->multidir_temp  =array($this->entity => $rootfordata."/fournisseur/facture/temp");
    +    			$this->supplier_invoice->dir_output=$rootfordata."/fournisseur/facture";		// For backward compatibility
    +    			$this->supplier_invoice->dir_temp=$rootfordata."/fournisseur/facture/temp";		// For backward compatibility
         			$this->supplierproposal=new stdClass();
    -    			$this->supplierproposal->dir_output=$rootfordata."/supplier_proposal";
    -    			$this->supplierproposal->dir_temp=$rootfordata."/supplier_proposal/temp";
    +    			$this->supplierproposal->multidir_output=array($this->entity => $rootfordata."/supplier_proposal");
    +    			$this->supplierproposal->multidir_temp  =array($this->entity => $rootfordata."/supplier_proposal/temp");
    +    			$this->supplierproposal->dir_output=$rootfordata."/supplier_proposal";			// For backward compatibility
    +    			$this->supplierproposal->dir_temp=$rootfordata."/supplier_proposal/temp";		// For backward compatibility
     			}
     		}
     
    @@ -406,10 +428,11 @@ class Conf
             $this->global->MAIN_MAIL_USE_MULTI_PART=1;
     
     		// societe
    -		if (empty($this->global->SOCIETE_CODECLIENT_ADDON))       $this->global->SOCIETE_CODECLIENT_ADDON="mod_codeclient_leopard";
    -		if (empty($this->global->SOCIETE_CODECOMPTA_ADDON))       $this->global->SOCIETE_CODECOMPTA_ADDON="mod_codecompta_panicum";
    +		if (empty($this->global->SOCIETE_CODECLIENT_ADDON))		$this->global->SOCIETE_CODECLIENT_ADDON="mod_codeclient_leopard";
    +		if (empty($this->global->SOCIETE_CODECOMPTA_ADDON))		$this->global->SOCIETE_CODECOMPTA_ADDON="mod_codecompta_panicum";
     
    -		if (empty($this->global->CHEQUERECEIPTS_ADDON))           $this->global->CHEQUERECEIPTS_ADDON='mod_chequereceipt_mint';
    +		if (empty($this->global->CHEQUERECEIPTS_ADDON))			$this->global->CHEQUERECEIPTS_ADDON='mod_chequereceipt_mint';
    +		if (empty($conf->global->TICKETSUP_ADDON))				$this->global->TICKETSUP_ADDON='mod_ticket_simple';
     
             // Security
     		if (empty($this->global->USER_PASSWORD_GENERATED)) $this->global->USER_PASSWORD_GENERATED='standard'; // Default password generator
    @@ -435,7 +458,11 @@ class Conf
     			$this->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE=0;
     			$this->global->STOCK_CALCULATE_ON_SUPPLIER_BILL=0;
     			$this->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER=0;
    -			$this->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER=1;
    +			if(empty($this->reception->enabled))$this->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER=1;
    +			else {
    +				$this->global->STOCK_CALCULATE_ON_RECEPTION=1;
    +				$this->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE=0;
    +			}
     		}
     
     		// conf->currency
    @@ -665,7 +692,6 @@ class Conf
     				$this->loghandlers[$handler] = $loghandlerinstance;
     			}
     		}
    -
     	}
     }
     
    diff --git a/htdocs/core/class/coreobject.class.php b/htdocs/core/class/coreobject.class.php
    index 1456fb991c2..5129ac54ece 100644
    --- a/htdocs/core/class/coreobject.class.php
    +++ b/htdocs/core/class/coreobject.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* EXPERIMENTAL
    - * 
    + *
      * Copyright (C) 2016		ATM Consulting			<support@atm-consulting.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -22,7 +22,7 @@
      *	\ingroup    core
      *	\brief      File of class to manage all object. Might be replace or merge into commonobject
      */
    - 
    +
     require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
     
     class CoreObject extends CommonObject
    @@ -54,7 +54,7 @@ class CoreObject extends CommonObject
     		$this->id = 0;
     		$this->datec = 0;
     		$this->tms = 0;
    -		
    +
     		if (!empty($this->fields))
     		{
     			foreach ($this->fields as $field=>$info)
    @@ -68,14 +68,13 @@ class CoreObject extends CommonObject
     
                 $this->to_delete=false;
                 $this->is_clone=false;
    -			
    +
     			return true;
     		}
     		else
             {
     			return false;
     		}
    -			
     	}
     
         /**
    @@ -110,7 +109,7 @@ class CoreObject extends CommonObject
         	if($res>0) {
         		if ($loadChild) $this->fetchChild();
         	}
    -    	
    +
         	return $res;
     	}
     
    @@ -133,14 +132,14 @@ class CoreObject extends CommonObject
     				if($object->{$key} === $id) return $k;
     			}
     		}
    -	
    +
     		$k = count($this->{$tabName});
    -	
    +
     		$className = ucfirst($tabName);
     		$this->{$tabName}[$k] = new $className($this->db);
     		if($id>0 && $key==='id' && $try_to_load)
     		{
    -			$this->{$tabName}[$k]->fetch($id); 
    +			$this->{$tabName}[$k]->fetch($id);
     		}
     
     		return $k;
    @@ -171,6 +170,8 @@ class CoreObject extends CommonObject
     
         /**
          * Function to fetch children objects
    +     *
    +     * @return void
          */
         public function fetchChild()
         {
    @@ -207,6 +208,7 @@ class CoreObject extends CommonObject
          * Function to update children data
          *
          * @param   User    $user   user object
    +     * @return void
          */
     	public function saveChild(User &$user)
         {
    @@ -220,7 +222,7 @@ class CoreObject extends CommonObject
     					foreach($this->{$className} as $i => &$object)
     					{
     						$object->{$this->fk_element} = $this->id;
    -						
    +
     						$object->update($user);
     						if($this->unsetChildDeleted && isset($object->to_delete) && $object->to_delete==true) unset($this->{$className}[$i]);
     					}
    @@ -268,7 +270,6 @@ class CoreObject extends CommonObject
                 $this->db->rollback();
                 return -1;
             }
    -
     	}
     
         /**
    @@ -434,5 +435,4 @@ class CoreObject extends CommonObject
     
     		return 1;
     	}
    -
     }
    diff --git a/htdocs/core/class/cstate.class.php b/htdocs/core/class/cstate.class.php
    index ae2adde87d4..4320446d7b5 100644
    --- a/htdocs/core/class/cstate.class.php
    +++ b/htdocs/core/class/cstate.class.php
    @@ -32,16 +32,44 @@
      */
     class Cstate // extends CommonObject
     {
    -	var $db;							//!< To store db handler
    -	var $error;							//!< To return error code (or message)
    -	var $errors=array();				//!< To return several error codes (or messages)
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
     	//var $element='cstate';			//!< Id that identify managed objects
     	//var $table_element='cstate';	    //!< Name of table without prefix where object is stored
     
    -    var $id;
    -	var $code_departement;
    -	var $nom;
    -	var $active;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +	public $code_departement;
    +
    +	/**
    +	 * @var string
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='';
    +
    +	/**
    +	 * @var string name
    +	 */
    +	public $name='';
    +
    +	public $active;
     
     
     
    @@ -54,7 +82,6 @@ class Cstate // extends CommonObject
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    @@ -301,5 +328,4 @@ class Cstate // extends CommonObject
     			return 1;
     		}
     	}
    -
     }
    diff --git a/htdocs/core/class/ctypent.class.php b/htdocs/core/class/ctypent.class.php
    index b3bb750bd80..db8ed461727 100644
    --- a/htdocs/core/class/ctypent.class.php
    +++ b/htdocs/core/class/ctypent.class.php
    @@ -27,17 +27,33 @@
      */
     class Ctypent // extends CommonObject
     {
    -	var $db;							//!< To store db handler
    -	var $error;							//!< To return error code (or message)
    -	var $errors=array();				//!< To return several error codes (or messages)
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
     	//var $element='ctypent';			//!< Id that identify managed objects
     	//var $table_element='ctypent';	//!< Name of table without prefix where object is stored
     
    -    var $id;
    -	var $code;
    -	var $libelle;
    -	var $active;
    -	var $module;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +	public $code;
    +	public $libelle;
    +	public $active;
    +	public $module;
     
     
     
    @@ -50,7 +66,6 @@ class Ctypent // extends CommonObject
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    @@ -317,5 +332,4 @@ class Ctypent // extends CommonObject
     			return 1;
     		}
     	}
    -
     }
    diff --git a/htdocs/core/class/ctyperesource.class.php b/htdocs/core/class/ctyperesource.class.php
    index a5a6ea879ce..95c642772e2 100644
    --- a/htdocs/core/class/ctyperesource.class.php
    +++ b/htdocs/core/class/ctyperesource.class.php
    @@ -19,7 +19,7 @@
      */
     
     /**
    - * \file    resource/ctyperesource.class.php
    + * \file    htdocs/core/class/ctyperesource.class.php
      * \ingroup resource
      */
     
    @@ -36,6 +36,7 @@ class Ctyperesource
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'ctyperesource';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
    @@ -46,15 +47,14 @@ class Ctyperesource
     	 */
     	public $lines = array();
     
    -	/**
    -	 */
    -
     	public $code;
    -	public $label;
    -	public $active;
     
     	/**
    -	 */
    +     * @var string Type resource label
    +     */
    +    public $label;
    +
    +	public $active;
     
     
     	/**
    @@ -127,15 +127,15 @@ class Ctyperesource
     		if (!$error) {
     			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element);
     
    -			if (!$notrigger) {
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action to call a trigger.
    +			// Uncomment this and change MYOBJECT to your own tag if you
    +			// want this action to call a trigger.
    +			//if (!$notrigger) {
     
    -				//// Call triggers
    -				//$result=$this->call_trigger('MYOBJECT_CREATE',$user);
    -				//if ($result < 0) $error++;
    -				//// End call triggers
    -			}
    +			//  // Call triggers
    +			//  $result=$this->call_trigger('MYOBJECT_CREATE',$user);
    +			//  if ($result < 0) $error++;
    +			//  // End call triggers
    +			//}
     		}
     
     		// Commit or rollback
    @@ -188,8 +188,6 @@ class Ctyperesource
     				$this->code = $obj->code;
     				$this->label = $obj->label;
     				$this->active = $obj->active;
    -
    -
     			}
     
     			// Retrieve all extrafields for invoice
    @@ -269,8 +267,6 @@ class Ctyperesource
     				$line->code = $obj->code;
     				$line->label = $obj->label;
     				$line->active = $obj->active;
    -
    -
     			}
     			$this->db->free($resql);
     
    @@ -331,15 +327,15 @@ class Ctyperesource
     			dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR);
     		}
     
    -		if (!$error && !$notrigger) {
    -			// Uncomment this and change MYOBJECT to your own tag if you
    -			// want this action calls a trigger.
    +		// Uncomment this and change MYOBJECT to your own tag if you
    +		// want this action calls a trigger.
    +		//if (!$error && !$notrigger) {
     
    -			//// Call triggers
    -			//$result=$this->call_trigger('MYOBJECT_MODIFY',$user);
    -			//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    -			//// End call triggers
    -		}
    +		//  // Call triggers
    +		//  $result=$this->call_trigger('MYOBJECT_MODIFY',$user);
    +		//  if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    +		//  // End call triggers
    +		//}
     
     		// Commit or rollback
     		if ($error) {
    @@ -369,17 +365,15 @@ class Ctyperesource
     
     		$this->db->begin();
     
    -		if (!$error) {
    -			if (!$notrigger) {
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action calls a trigger.
    +		// Uncomment this and change MYOBJECT to your own tag if you
    +		// want this action calls a trigger.
    +		//if (!$error && !$notrigger) {
     
    -				//// Call triggers
    -				//$result=$this->call_trigger('MYOBJECT_DELETE',$user);
    -				//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    -				//// End call triggers
    -			}
    -		}
    +		//  // Call triggers
    +		//  $result=$this->call_trigger('MYOBJECT_DELETE',$user);
    +		//  if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    +		//  // End call triggers
    +		//}
     
     		// If you need to delete child tables to, you can insert them here
     
    @@ -433,6 +427,7 @@ class Ctyperesource
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result = $object->create($user);
     
     		// Other options
    @@ -442,6 +437,8 @@ class Ctyperesource
     			dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR);
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (!$error) {
     			$this->db->commit();
    @@ -450,7 +447,7 @@ class Ctyperesource
     		} else {
     			$this->db->rollback();
     
    -			return - 1;
    +			return -1;
     		}
     	}
     
    @@ -468,7 +465,6 @@ class Ctyperesource
     		$this->label = '';
     		$this->active = '';
     	}
    -
     }
     
     /**
    @@ -480,16 +476,20 @@ class CtyperesourceLine
     	 * @var int ID
     	 */
     	public $id;
    +
     	/**
     	 * @var mixed Sample line property 1
     	 */
    -
     	public $code;
    -	public $label;
    +
    +	/**
    +     * @var string Type resource line label
    +     */
    +    public $label;
    +
     	public $active;
     
     	/**
     	 * @var mixed Sample line property 2
     	 */
    -
     }
    diff --git a/htdocs/core/class/discount.class.php b/htdocs/core/class/discount.class.php
    index e3098911418..48c426a830f 100644
    --- a/htdocs/core/class/discount.class.php
    +++ b/htdocs/core/class/discount.class.php
    @@ -28,23 +28,66 @@
      */
     class DiscountAbsolute
     {
    +    /**
    +     * @var DoliDB Database handler.
    +     */
         public $db;
    -    public $error;
     
    -    public $id;					// Id discount
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error;
    +
    +	/**
    +	 * @var string[]	Array of error strings
    +	 */
    +	public $errors=array();
    +
    +	/**
    +	 * @var int ID discount
    +	 */
    +	public $id;
    +
    +    /**
    +	 * @var int Thirdparty ID
    +	 */
         public $fk_soc;
    +
         public $discount_type;			// 0 => customer discount, 1 => supplier discount
         public $amount_ht;				//
         public $amount_tva;			//
         public $amount_ttc;			//
         public $tva_tx;				// Vat rate
    -    public $fk_user;				// Id utilisateur qui accorde la remise
    -    public $description;			// Description libre
    +
    +    /**
    +	 * @var int User ID Id utilisateur qui accorde la remise
    +	 */
    +	public $fk_user;
    +
    +    /**
    +	 * @var string description
    +	 */
    +	public $description;
    +
         public $datec;					// Date creation
    -    public $fk_facture_line;  		// Id invoice line when a discount is used into an invoice line (for absolute discounts)
    -    public $fk_facture;			    // Id invoice when a discount line is used into an invoice (for credit note)
    -    public $fk_facture_source;		// Id facture avoir a l'origine de la remise
    -    public $ref_facture_source;	    // Ref facture avoir a l'origine de la remise
    +
    +    /**
    +     * @var int ID invoice line when a discount is used into an invoice line (for absolute discounts)
    +     */
    +    public $fk_facture_line;
    +
    +    /**
    +     * @var int ID invoice when a discount line is used into an invoice (for credit note)
    +     */
    +    public $fk_facture;
    +
    +    /**
    +     * @var int ID credit note having caused the discount
    +     */
    +    public $fk_facture_source;
    +
    +    public $ref_facture_source;	    // Ref credit note having caused the discount
    +
         public $ref_invoice_supplier_source;
     
         /**
    @@ -83,7 +126,7 @@ class DiscountAbsolute
             $sql.= " sr.multicurrency_amount_ht, sr.multicurrency_amount_tva, sr.multicurrency_amount_ttc,";
             $sql.= " sr.fk_facture_line, sr.fk_facture, sr.fk_facture_source, sr.fk_invoice_supplier_line, sr.fk_invoice_supplier, sr.fk_invoice_supplier_source, sr.description,";
             $sql.= " sr.datec,";
    -        $sql.= " f.facnumber as ref_facture_source, fsup.facnumber as ref_invoice_supplier_source";
    +        $sql.= " f.ref as ref_facture_source, fsup.ref as ref_invoice_supplier_source";
             $sql.= " FROM ".MAIN_DB_PREFIX."societe_remise_except as sr";
             $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as f ON sr.fk_facture_source = f.rowid";
             $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as fsup ON sr.fk_invoice_supplier_source = fsup.rowid";
    @@ -343,6 +386,7 @@ class DiscountAbsolute
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Link the discount to a particular invoice line or a particular invoice.
          *	When discount is a global discount used as an invoice line, we link using rowidline.
    @@ -354,6 +398,7 @@ class DiscountAbsolute
          */
         function link_to_invoice($rowidline,$rowidinvoice)
         {
    +        // phpcs:enable
             // Check parameters
             if (! $rowidline && ! $rowidinvoice)
             {
    @@ -397,6 +442,7 @@ class DiscountAbsolute
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Link the discount to a particular invoice line or a particular invoice.
          *	Do not call this if discount is linked to a reconcialiated invoice
    @@ -405,6 +451,7 @@ class DiscountAbsolute
          */
         function unlink_invoice()
         {
    +        // phpcs:enable
             $sql ="UPDATE ".MAIN_DB_PREFIX."societe_remise_except";
     		if(! empty($this->discount_type)) {
            		$sql.=" SET fk_invoice_supplier_line = NULL, fk_invoice_supplier = NULL";
    @@ -520,11 +567,11 @@ class DiscountAbsolute
         }
     
         /**
    -     *  Return amount (with tax) of all credit notes and deposits invoices used by invoice as a payment
    +     *  Return amount (with tax) of all credit notes invoices + excess received used by invoice as a payment
          *
          *	@param		CommonInvoice	  $invoice	    	Object invoice
     	 *	@param		int			      $multicurrency	Return multicurrency_amount instead of amount
    -     *	@return		int					        		<0 if KO, Sum of credit notes and deposits amount otherwise
    +     *	@return		int					        		<0 if KO, Sum of credit notes and excess received amount otherwise
          */
         function getSumCreditNotesUsed($invoice, $multicurrency=0)
         {
    diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php
    index 860d89afea8..548721be05f 100644
    --- a/htdocs/core/class/doleditor.class.php
    +++ b/htdocs/core/class/doleditor.class.php
    @@ -135,9 +135,9 @@ class DolEditor
                 $this->height				= $height;
                 $this->width				= $width;
         	}
    -
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Output edit area inside the HTML stream.
          *	Output depends on this->tool (fckeditor, ckeditor, textarea, ...)
    @@ -151,6 +151,7 @@ class DolEditor
          */
         function Create($noprint=0, $morejs='', $disallowAnyContent=true, $titlecontent='', $option='')
         {
    +        // phpcs:enable
         	global $conf,$langs;
     
         	$fullpage=false;
    @@ -345,6 +346,4 @@ class DolEditor
             if ($noprint) return $out;
             else print $out;
         }
    -
     }
    -
    diff --git a/htdocs/core/class/dolexception.class.php b/htdocs/core/class/dolexception.class.php
    index cb3c71cfd5c..b61bc6e388c 100644
    --- a/htdocs/core/class/dolexception.class.php
    +++ b/htdocs/core/class/dolexception.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/class/dolgraph.class.php b/htdocs/core/class/dolgraph.class.php
    index b002c96f081..42386494a37 100644
    --- a/htdocs/core/class/dolgraph.class.php
    +++ b/htdocs/core/class/dolgraph.class.php
    @@ -39,42 +39,46 @@
      */
     class DolGraph
     {
    -	var $type=array();			// Array with type of each series. Example: array('bars', 'lines', ...)
    -	var $mode='side';		    // Mode bars graph: side, depth
    +	public $type=array();			// Array with type of each series. Example: array('bars', 'lines', ...)
    +	public $mode='side';		    // Mode bars graph: side, depth
     	private $_library='jflot';	// Graphic library to use (jflot, artichow)
     
     	//! Array of data
    -	var $data;				// Data of graph: array(array('abs1',valA1,valB1), array('abs2',valA2,valB2), ...)
    -	var $title;				// Title of graph
    -	var $cssprefix='';		// To add into css styles
    -	var $width=380;
    -	var $height=200;
    -	var $MaxValue=0;
    -	var $MinValue=0;
    -	var $SetShading=0;
    +	public $data;				// Data of graph: array(array('abs1',valA1,valB1), array('abs2',valA2,valB2), ...)
    +	public $title;				// Title of graph
    +	public $cssprefix='';		// To add into css styles
    +	public $width=380;
    +	public $height=200;
    +	public $MaxValue=0;
    +	public $MinValue=0;
    +	public $SetShading=0;
     
    -	var $PrecisionY=-1;
    +	public $PrecisionY=-1;
     
    -	var $horizTickIncrement=-1;
    -	var $SetNumXTicks=-1;
    -	var $labelInterval=-1;
    +	public $horizTickIncrement=-1;
    +	public $SetNumXTicks=-1;
    +	public $labelInterval=-1;
     
    -	var $hideXGrid=false;
    -	var $hideYGrid=false;
    +	public $hideXGrid=false;
    +	public $hideYGrid=false;
     
    -	var $Legend=array();
    -	var $LegendWidthMin=0;
    -	var $showlegend=1;
    -	var $showpointvalue=1;
    -	var $showpercent=0;
    -	var $combine=0;				// 0.05 if you want to combine records < 5% into "other"
    -	var $graph;     			// Objet Graph (Artichow, Phplot...)
    -	var $error;
    +	public $Legend=array();
    +	public $LegendWidthMin=0;
    +	public $showlegend=1;
    +	public $showpointvalue=1;
    +	public $showpercent=0;
    +	public $combine=0;				// 0.05 if you want to combine records < 5% into "other"
    +	public $graph;     			// Objet Graph (Artichow, Phplot...)
     
    -	var $bordercolor;			// array(R,G,B)
    -	var $bgcolor;				// array(R,G,B)
    -	var $bgcolorgrid=array(255,255,255);			// array(R,G,B)
    -	var $datacolor;				// array(array(R,G,B),...)
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	public $bordercolor;			// array(R,G,B)
    +	public $bgcolor;				// array(R,G,B)
    +	public $bgcolorgrid=array(255,255,255);			// array(R,G,B)
    +	public $datacolor;				// array(array(R,G,B),...)
     
     	private $stringtoshow;      // To store string to output graph into HTML page
     
    @@ -124,6 +128,7 @@ class DolGraph
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set Y precision
     	 *
    @@ -132,10 +137,12 @@ class DolGraph
     	 */
     	function SetPrecisionY($which_prec)
     	{
    +        // phpcs:enable
     		$this->PrecisionY = $which_prec;
     		return true;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Utiliser SetNumTicks ou SetHorizTickIncrement mais pas les 2
     	 *
    @@ -144,10 +151,12 @@ class DolGraph
     	 */
     	function SetHorizTickIncrement($xi)
     	{
    +        // phpcs:enable
     		$this->horizTickIncrement = $xi;
     		return true;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Utiliser SetNumTicks ou SetHorizTickIncrement mais pas les 2
     	 *
    @@ -156,10 +165,12 @@ class DolGraph
     	 */
     	function SetNumXTicks($xt)
     	{
    +        // phpcs:enable
     		$this->SetNumXTicks = $xt;
     		return true;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set label interval to reduce number of labels
     	 *
    @@ -168,10 +179,12 @@ class DolGraph
     	 */
     	function SetLabelInterval($x)
     	{
    +        // phpcs:enable
     		$this->labelInterval = $x;
     		return true;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Hide X grid
     	 *
    @@ -180,10 +193,12 @@ class DolGraph
     	 */
     	function SetHideXGrid($bool)
     	{
    +        // phpcs:enable
     		$this->hideXGrid = $bool;
     		return true;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Hide Y grid
     	 *
    @@ -192,10 +207,12 @@ class DolGraph
     	 */
     	function SetHideYGrid($bool)
     	{
    +        // phpcs:enable
     		$this->hideYGrid = $bool;
     		return true;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set y label
     	 *
    @@ -204,9 +221,11 @@ class DolGraph
     	 */
     	function SetYLabel($label)
     	{
    +        // phpcs:enable
     		$this->YLabel = $label;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set width
     	 *
    @@ -215,9 +234,11 @@ class DolGraph
     	 */
     	function SetWidth($w)
     	{
    +        // phpcs:enable
     		$this->width = $w;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set title
     	 *
    @@ -226,9 +247,11 @@ class DolGraph
     	 */
     	function SetTitle($title)
     	{
    +        // phpcs:enable
     		$this->title = $title;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set data
     	 *
    @@ -238,9 +261,11 @@ class DolGraph
     	 */
     	function SetData($data)
     	{
    +        // phpcs:enable
     		$this->data = $data;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set data
     	 *
    @@ -249,9 +274,11 @@ class DolGraph
     	 */
     	function SetDataColor($datacolor)
     	{
    +        // phpcs:enable
     		$this->datacolor = $datacolor;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set type
     	 *
    @@ -260,9 +287,11 @@ class DolGraph
     	 */
     	function SetType($type)
     	{
    +        // phpcs:enable
     		$this->type = $type;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set legend
     	 *
    @@ -271,9 +300,11 @@ class DolGraph
     	 */
     	function SetLegend($legend)
     	{
    +        // phpcs:enable
     		$this->Legend = $legend;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set min width
     	 *
    @@ -282,9 +313,11 @@ class DolGraph
     	 */
     	function SetLegendWidthMin($legendwidthmin)
     	{
    +        // phpcs:enable
     		$this->LegendWidthMin = $legendwidthmin;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set max value
     	 *
    @@ -293,9 +326,11 @@ class DolGraph
     	 */
     	function SetMaxValue($max)
     	{
    +        // phpcs:enable
     		$this->MaxValue = $max;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Get max value
     	 *
    @@ -303,9 +338,11 @@ class DolGraph
     	 */
     	function GetMaxValue()
     	{
    +        // phpcs:enable
     		return $this->MaxValue;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set min value
     	 *
    @@ -314,9 +351,11 @@ class DolGraph
     	 */
     	function SetMinValue($min)
     	{
    +        // phpcs:enable
     		$this->MinValue = $min;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Get min value
     	 *
    @@ -324,9 +363,11 @@ class DolGraph
     	 */
     	function GetMinValue()
     	{
    +        // phpcs:enable
     		return $this->MinValue;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set height
     	 *
    @@ -335,9 +376,11 @@ class DolGraph
     	 */
     	function SetHeight($h)
     	{
    +        // phpcs:enable
     		$this->height = $h;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set shading
     	 *
    @@ -346,9 +389,11 @@ class DolGraph
     	 */
     	function SetShading($s)
     	{
    +        // phpcs:enable
     		$this->SetShading = $s;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set shading
     	 *
    @@ -357,9 +402,11 @@ class DolGraph
     	 */
     	function SetCssPrefix($s)
     	{
    +        // phpcs:enable
     		$this->cssprefix = $s;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Reset bg color
     	 *
    @@ -367,9 +414,11 @@ class DolGraph
     	 */
     	function ResetBgColor()
     	{
    +        // phpcs:enable
     		unset($this->bgcolor);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Reset bgcolorgrid
     	 *
    @@ -377,6 +426,7 @@ class DolGraph
     	 */
     	function ResetBgColorGrid()
     	{
    +        // phpcs:enable
     		unset($this->bgcolorgrid);
     	}
     
    @@ -425,6 +475,7 @@ class DolGraph
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Define background color of complete image
     	 *
    @@ -433,6 +484,7 @@ class DolGraph
     	 */
     	function SetBgColor($bg_color = array(255,255,255))
     	{
    +        // phpcs:enable
     		global $theme_bgcolor,$theme_bgcoloronglet;
     
     		if (! is_array($bg_color))
    @@ -453,6 +505,7 @@ class DolGraph
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Define background color of grid
     	 *
    @@ -461,6 +514,7 @@ class DolGraph
     	 */
     	function SetBgColorGrid($bg_colorgrid = array(255,255,255))
     	{
    +        // phpcs:enable
     		global $theme_bgcolor,$theme_bgcoloronglet;
     
     		if (! is_array($bg_colorgrid))
    @@ -481,6 +535,7 @@ class DolGraph
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Reset data color
     	 *
    @@ -488,9 +543,11 @@ class DolGraph
     	 */
     	function ResetDataColor()
     	{
    +        // phpcs:enable
     		unset($this->datacolor);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Get max value
     	 *
    @@ -498,6 +555,7 @@ class DolGraph
     	 */
     	function GetMaxValueInData()
     	{
    +        // phpcs:enable
     		$k = 0;
     		$vals = array();
     
    @@ -516,6 +574,7 @@ class DolGraph
     		return $vals[0];
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return min value of all data
     	 *
    @@ -523,6 +582,7 @@ class DolGraph
     	 */
     	function GetMinValueInData()
     	{
    +        // phpcs:enable
     		$k = 0;
     		$vals = array();
     
    @@ -541,6 +601,7 @@ class DolGraph
     		return $vals[0];
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return max value of all data
     	 *
    @@ -548,6 +609,7 @@ class DolGraph
     	 */
     	function GetCeilMaxValue()
     	{
    +        // phpcs:enable
     		$max = $this->GetMaxValueInData();
     		if ($max != 0) $max++;
     		$size=dol_strlen(abs(ceil($max)));
    @@ -564,6 +626,7 @@ class DolGraph
     		return $res;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return min value of all data
     	 *
    @@ -571,6 +634,7 @@ class DolGraph
     	 */
     	function GetFloorMinValue()
     	{
    +        // phpcs:enable
     		$min = $this->GetMinValueInData();
     		if ($min == '') $min=0;
     		if ($min != 0) $min--;
    @@ -618,6 +682,7 @@ class DolGraph
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
     	/**
     	 * Build a graph onto disk using Artichow library and return img string to it
     	 *
    @@ -627,6 +692,7 @@ class DolGraph
     	 */
     	private function draw_artichow($file,$fileurl)
     	{
    +        // phpcs:enable
     		global $artichow_defaultfont;
     
     		dol_syslog(get_class($this)."::draw_artichow this->type=".join(',',$this->type));
    @@ -638,7 +704,7 @@ class DolGraph
     		// Create graph
     		$classname='';
     		if (! isset($this->type[0]) || $this->type[0] == 'bars')  $classname='BarPlot';    // Only one type (first one) is supported by artichow
    -		else if ($this->type[0] == 'lines') $classname='LinePlot';
    +		else if ($this->type[0] == 'lines' || $this->type[0] == 'linesnopoint') $classname='LinePlot';
     		else $classname='TypeUnknown';
     		include_once ARTICHOW_PATH.$classname.'.class.php';
     
    @@ -743,7 +809,7 @@ class DolGraph
     				$plot->SetYMin($this->MinValue);
     			}
     
    -			if ($this->type[0] == 'lines')
    +			if ($this->type[0] == 'lines' || $this->type[0] == 'linesnopoint')
     			{
     				$color=new Color($this->datacolor[$i][0],$this->datacolor[$i][1],$this->datacolor[$i][2],20);
     				$colorbis=new Color(min($this->datacolor[$i][0]+20,255),min($this->datacolor[$i][1]+20,255),min($this->datacolor[$i][2]+20,255),60);
    @@ -774,8 +840,8 @@ class DolGraph
     			// solve a bug in Artichow with UTF8
     			if (count($this->Legend))
     			{
    -				if ($this->type[0] == 'bars')  $group->legend->add($plot, $this->Legend[$i], LEGEND_BACKGROUND);
    -				if ($this->type[0] == 'lines') $group->legend->add($plot, $this->Legend[$i], LEGEND_LINE);
    +				if ($this->type[0] == 'bars')  										$group->legend->add($plot, $this->Legend[$i], LEGEND_BACKGROUND);
    +				if ($this->type[0] == 'lines' || $this->type[0] == 'linesnopoint')	$group->legend->add($plot, $this->Legend[$i], LEGEND_LINE);
     			}
     			$group->add($plot);
     
    @@ -797,6 +863,7 @@ class DolGraph
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
     	/**
     	 * Build a graph using JFlot library. Input when calling this method should be:
     	 *	$this->data  = array(array(0=>'labelxA',1=>yA),  array('labelxB',yB));
    @@ -813,8 +880,9 @@ class DolGraph
     	 * @param	string	$fileurl	Url path to show image if saved onto disk. Never used here.
     	 * @return	void
     	 */
    -	private function draw_jflot($file,$fileurl)
    +	private function draw_jflot($file, $fileurl)
     	{
    +        // phpcs:enable
     		global $artichow_defaultfont;
     
     		dol_syslog(get_class($this)."::draw_jflot this->type=".join(',',$this->type)." this->MaxValue=".$this->MaxValue);
    @@ -959,19 +1027,22 @@ class DolGraph
     		else
     		{
     			// Add code to support tooltips
    +		    // TODO: remove js css and use graph-tooltip-inner class instead by adding css in each themes
     			$this->stringtoshow.='
     			function showTooltip_'.$tag.'(x, y, contents) {
    -				$(\'<div id="tooltip_'.$tag.'">\' + contents + \'</div>\').css({
    +				$(\'<div class="graph-tooltip-inner" id="tooltip_'.$tag.'">\' + contents + \'</div>\').css({
     					position: \'absolute\',
     					display: \'none\',
    -					top: y + 5,
    -					left: x + 5,
    -					border: \'1px solid #ddd\',
    -					padding: \'2px\',
    -					\'background-color\': \'#ffe\',
    +					top: y + 10,
    +					left: x + 15,
    +					border: \'1px solid #000\',
    +					padding: \'5px\',
    +					\'background-color\': \'#000\',
    +					\'color\': \'#fff\',
    +					\'font-weight\': \'bold\',
     					width: 200,
     					opacity: 0.80
    -				}).appendTo("body").fadeIn(20);
    +				}).appendTo("body").fadeIn(100);
     			}
     
     			var previousPoint = null;
    @@ -1012,12 +1083,13 @@ class DolGraph
     				if ($i > $firstlot) $this->stringtoshow.=', '."\n";
     				$color=sprintf("%02x%02x%02x",$this->datacolor[$i][0],$this->datacolor[$i][1],$this->datacolor[$i][2]);
     				$this->stringtoshow.='{ ';
    -				if (! isset($this->type[$i]) || $this->type[$i] == 'bars') $this->stringtoshow.='bars: { show: true, align: "'.($i==$firstlot?'center':'left').'", barWidth: 0.5 }, ';
    -				if (isset($this->type[$i]) && $this->type[$i] == 'lines')  $this->stringtoshow.='lines: { show: true, fill: false }, ';
    +				if (! isset($this->type[$i]) || $this->type[$i] == 'bars') $this->stringtoshow.='bars: { lineWidth: 1, show: true, align: "'.($i==$firstlot?'center':'left').'", barWidth: 0.5 }, ';
    +				if (isset($this->type[$i]) && ($this->type[$i] == 'lines' || $this->type[$i] == 'linesnopoint')) $this->stringtoshow.='lines: { show: true, fill: false }, points: { show: '.($this->type[$i] == 'linesnopoint' ? 'false' : 'true').' }, ';
     				$this->stringtoshow.='color: "#'.$color.'", label: "'.(isset($this->Legend[$i]) ? dol_escape_js($this->Legend[$i]) : '').'", data: d'.$i.' }';
     				$i++;
     			}
    -			$this->stringtoshow.="\n".' ], { series: { stack: stack, lines: { fill: false, steps: steps }, bars: { barWidth: 0.6 } }'."\n";
    +			// shadowSize: 0 -> Drawing is faster without shadows
    +			$this->stringtoshow.="\n".' ], { series: { shadowSize: 0, stack: stack, lines: { fill: false, steps: steps }, bars: { barWidth: 0.6 } }'."\n";
     
     			// Xaxis
     			$this->stringtoshow.=', xaxis: { ticks: ['."\n";
    @@ -1036,11 +1108,10 @@ class DolGraph
     			// Background color
     			$color1=sprintf("%02x%02x%02x",$this->bgcolorgrid[0],$this->bgcolorgrid[0],$this->bgcolorgrid[2]);
     			$color2=sprintf("%02x%02x%02x",$this->bgcolorgrid[0],$this->bgcolorgrid[1],$this->bgcolorgrid[2]);
    -			$this->stringtoshow.=', grid: { hoverable: true, backgroundColor: { colors: ["#'.$color1.'", "#'.$color2.'"] } }'."\n";
    +			$this->stringtoshow.=', grid: { hoverable: true, backgroundColor: { colors: ["#'.$color1.'", "#'.$color2.'"] }, borderWidth: 1, borderColor: \'#e6e6e6\', tickColor  : \'#e6e6e6\' }'."\n";
     			//$this->stringtoshow.=', shadowSize: 20'."\n";    TODO Uncommet this
     			$this->stringtoshow.='});'."\n";
     			$this->stringtoshow.='}'."\n";
    -
     		}
     
     		$this->stringtoshow.='plotWithOptions_'.$tag.'();'."\n";
    @@ -1093,6 +1164,4 @@ class DolGraph
     		}
     		return 0;
     	}
    -
     }
    -
    diff --git a/htdocs/core/class/dolreceiptprinter.class.php b/htdocs/core/class/dolreceiptprinter.class.php
    index 2499176b58b..f38afc67807 100644
    --- a/htdocs/core/class/dolreceiptprinter.class.php
    +++ b/htdocs/core/class/dolreceiptprinter.class.php
    @@ -1,6 +1,6 @@
     <?php
     /*
    - * Copyright (C) 2015       Frederic France     <frederic.france@free.fr>
    + * Copyright (C) 2015-2018  Frédéric France     <frederic.france@free.fr>
      *
      * 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
    @@ -45,7 +45,7 @@
      * <dol_cut_paper_partial>                          Cut ticket partially
      * <dol_open_drawer>                                Open cash drawer
      * <dol_activate_buzzer>                            Activate buzzer
    - * 
    + *
      * Code which can be placed everywhere
      * <dol_print_qrcode>                               Print QR Code
      * <dol_print_date>                                 Print date AAAA-MM-DD
    @@ -94,7 +94,7 @@
     
     require_once DOL_DOCUMENT_ROOT .'/includes/mike42/escpos-php/Escpos.php';
     
    - 
    +
     /**
      * Class to manage Receipt Printers
      */
    @@ -105,12 +105,25 @@ class dolReceiptPrinter extends Escpos
         const CONNECTOR_NETWORK_PRINT = 3;
         const CONNECTOR_WINDOWS_PRINT = 4;
         //const CONNECTOR_JAVA = 5;
    -    var $db;
    +
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
         var $tags;
         var $printer;
         var $template;
    -    var $error;
    -    var $errors;
    +
    +    /**
    +     * @var string Error code (or message)
    +     */
    +    public $error='';
    +
    +    /**
    +     * @var string[] Error codes (or messages)
    +     */
    +    public $errors = array();
     
     
     
    @@ -191,7 +204,6 @@ class dolReceiptPrinter extends Escpos
                 'dol_print_if_customer_tax_number',
                 'dol_print_if_customer_account_balance_positive',
             );
    -
         }
     
         /**
    @@ -204,6 +216,7 @@ class dolReceiptPrinter extends Escpos
             global $conf;
             $error = 0;
             $line = 0;
    +        $obj = array();
             $sql = 'SELECT rowid, name, fk_type, fk_profile, parameter';
             $sql.= ' FROM '.MAIN_DB_PREFIX.'printer_receipt';
             $sql.= ' WHERE entity = '.$conf->entity;
    @@ -271,6 +284,7 @@ class dolReceiptPrinter extends Escpos
             global $conf;
             $error = 0;
             $line = 0;
    +        $obj = array();
             $sql = 'SELECT rowid, name, template';
             $sql.= ' FROM '.MAIN_DB_PREFIX.'printer_receipt_template';
             $sql.= ' WHERE entity = '.$conf->entity;
    @@ -300,16 +314,16 @@ class dolReceiptPrinter extends Escpos
         function selectTypePrinter($selected='', $htmlname='printertypeid')
         {
             global $langs;
    -        
    +
             $options = array(
                 1 => $langs->trans('CONNECTOR_DUMMY'),
                 2 => $langs->trans('CONNECTOR_FILE_PRINT'),
                 3 => $langs->trans('CONNECTOR_NETWORK_PRINT'),
                 4 => $langs->trans('CONNECTOR_WINDOWS_PRINT')
             );
    -        
    +
             $this->resprint = Form::selectarray($htmlname, $options, $selected);
    -        
    +
             return 0;
         }
     
    @@ -324,7 +338,7 @@ class dolReceiptPrinter extends Escpos
         function selectProfilePrinter($selected='', $htmlname='printerprofileid')
         {
             global $langs;
    -        
    +
             $options = array(
                 0 => $langs->trans('PROFILE_DEFAULT'),
                 1 => $langs->trans('PROFILE_SIMPLE'),
    @@ -332,12 +346,13 @@ class dolReceiptPrinter extends Escpos
                 3 => $langs->trans('PROFILE_P822D'),
                 4 => $langs->trans('PROFILE_STAR')
             );
    -        
    +
             $this->profileresprint = Form::selectarray($htmlname, $options, $selected);
             return 0;
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Function to Add a printer in db
          *
    @@ -349,6 +364,7 @@ class dolReceiptPrinter extends Escpos
          */
         function AddPrinter($name, $type, $profile, $parameter)
         {
    +        // phpcs:enable
             global $conf;
             $error = 0;
             $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'printer_receipt';
    @@ -362,6 +378,7 @@ class dolReceiptPrinter extends Escpos
             return $error;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Function to Update a printer in db
          *
    @@ -374,6 +391,7 @@ class dolReceiptPrinter extends Escpos
          */
         function UpdatePrinter($name, $type, $profile, $parameter, $printerid)
         {
    +        // phpcs:enable
             global $conf;
             $error = 0;
             $sql = 'UPDATE '.MAIN_DB_PREFIX.'printer_receipt';
    @@ -390,6 +408,7 @@ class dolReceiptPrinter extends Escpos
             return $error;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Function to Delete a printer from db
          *
    @@ -398,6 +417,7 @@ class dolReceiptPrinter extends Escpos
          */
         function DeletePrinter($printerid)
         {
    +        // phpcs:enable
             global $conf;
             $error = 0;
             $sql = 'DELETE FROM '.MAIN_DB_PREFIX.'printer_receipt';
    @@ -410,6 +430,7 @@ class dolReceiptPrinter extends Escpos
             return $error;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Function to Update a printer template in db
          *
    @@ -420,6 +441,7 @@ class dolReceiptPrinter extends Escpos
          */
         function UpdateTemplate($name, $template, $templateid)
         {
    +        // phpcs:enable
             global $conf;
             $error = 0;
             $sql = 'UPDATE '.MAIN_DB_PREFIX.'printer_receipt_template';
    @@ -435,6 +457,7 @@ class dolReceiptPrinter extends Escpos
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Function to Send Test page to Printer
          *
    @@ -443,6 +466,7 @@ class dolReceiptPrinter extends Escpos
          */
         function SendTestToPrinter($printerid)
         {
    +        // phpcs:enable
             global $conf;
             $error = 0;
             $img = new EscposImage(DOL_DOCUMENT_ROOT .'/theme/common/dolibarr_logo_bw.png');
    @@ -460,7 +484,6 @@ class dolReceiptPrinter extends Escpos
                     $this->printer->cut();
                     //print '<pre>'.print_r($this->connector, true).'</pre>';
                     $this->printer->close();
    -
                 } catch (Exception $e) {
                     $this->errors[] = $e->getMessage();
                     $error++;
    @@ -469,6 +492,7 @@ class dolReceiptPrinter extends Escpos
             return $error;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Function to Print Receipt Ticket
          *
    @@ -479,6 +503,7 @@ class dolReceiptPrinter extends Escpos
          */
         function SendToPrinter($object, $templateid, $printerid)
         {
    +        // phpcs:enable
             global $conf;
             $error = 0;
             $ret = $this->loadTemplate($templateid);
    @@ -520,11 +545,11 @@ class dolReceiptPrinter extends Escpos
             $ret = $this->InitPrinter($printerid);
             if ($ret>0) {
                 setEventMessages($this->error, $this->errors, 'errors');
    -        } 
    -        else 
    +        }
    +        else
             {
                 $nboflines = count($vals);
    -            for ($line=0; $line < $nboflines; $line++) 
    +            for ($line=0; $line < $nboflines; $line++)
                 {
                     switch ($vals[$line]['tag']) {
                         case 'DOL_ALIGN_CENTER':
    @@ -595,7 +620,6 @@ class dolReceiptPrinter extends Escpos
                 // uncomment next line to see content sent to printer
                 //print '<pre>'.print_r($this->connector, true).'</pre>';
                 $this->printer->close();
    -
             }
             return $error;
         }
    @@ -632,6 +656,7 @@ class dolReceiptPrinter extends Escpos
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Function Init Printer
          *
    @@ -640,6 +665,7 @@ class dolReceiptPrinter extends Escpos
          */
         function InitPrinter($printerid)
         {
    +        // phpcs:enable
             global $conf;
             $error=0;
             $sql = 'SELECT rowid, name, fk_type, fk_profile, parameter';
    diff --git a/htdocs/core/class/emailsenderprofile.class.php b/htdocs/core/class/emailsenderprofile.class.php
    index 7f34165030b..3a1fba460c4 100644
    --- a/htdocs/core/class/emailsenderprofile.class.php
    +++ b/htdocs/core/class/emailsenderprofile.class.php
    @@ -39,14 +39,17 @@ class EmailSenderProfile extends CommonObject
     	 * @var string ID to identify managed object
     	 */
     	public $element = 'emailsenderprofile';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'c_email_senderprofile';
    +
     	/**
     	 * @var array  Does emailsenderprofile support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     	 */
     	public $ismultientitymanaged = 1;
    +
     	/**
     	 * @var string String with name of icon for emailsenderprofile
     	 */
    @@ -85,9 +88,22 @@ class EmailSenderProfile extends CommonObject
     		'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'visible'=>-1, 'enabled'=>1, 'position'=>500, 'notnull'=>1,),
     		'active' => array('type'=>'integer', 'label'=>'Status', 'visible'=>1, 'enabled'=>1, 'position'=>1000, 'notnull'=>-1, 'index'=>1),
     	);
    +
    +	/**
    +	 * @var int ID
    +	 */
     	public $rowid;
    +
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
    -	public $label;
    +
    +	/**
    +     * @var string Email Sender Profile label
    +     */
    +    public $label;
    +
     	public $email;
     	public $date_creation;
     	public $tms;
    @@ -191,6 +207,8 @@ class EmailSenderProfile extends CommonObject
     			$this->errors = $object->errors;
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (!$error) {
     			$this->db->commit();
    @@ -307,6 +325,7 @@ class EmailSenderProfile extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return the status
     	 *
    @@ -318,38 +337,32 @@ class EmailSenderProfile extends CommonObject
     	{
     		global $langs;
     
    -		if ($mode == 0)
    -		{
    -			$prefix='';
    -			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == 0) return $langs->trans('Disabled');
    -		}
    -		if ($mode == 1)
    +		if ($mode == 0 || $mode == 1)
     		{
     			if ($status == 1) return $langs->trans('Enabled');
     			if ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
     			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
     			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
    @@ -402,7 +415,6 @@ class EmailSenderProfile extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -420,7 +432,6 @@ class EmailSenderProfile extends CommonObject
     	{
     		$this->initAsSpecimenCommon();
     	}
    -
     }
     
     /**
    diff --git a/htdocs/core/class/events.class.php b/htdocs/core/class/events.class.php
    index bb63e5b199f..68e029dae4b 100644
    --- a/htdocs/core/class/events.class.php
    +++ b/htdocs/core/class/events.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -30,26 +30,52 @@
     
     
     /**
    - *	Events class
    + *  Events class
      */
     class Events // extends CommonObject
     {
    -	public $element='events';				//!< Id that identify managed objects
    -	public $table_element='events';		//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='events';
     
    -	var $id;
    -	var $db;
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='events';
     
    -	var $error;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -	var $tms;
    -	var $type;
    -	var $entity;
    -	var $dateevent;
    -	var $description;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	public $tms;
    +	public $type;
    +
    +	/**
    +	 * @var int Entity
    +	 */
    +	public $entity;
    +
    +	public $dateevent;
    +
    +	/**
    +	 * @var string description
    +	 */
    +	public $description;
     
     	// List of all Audit/Security events supported by triggers
    -	var $eventstolog=array(
    +	public $eventstolog=array(
     		array('id'=>'USER_LOGIN',             'test'=>1),
     		array('id'=>'USER_LOGIN_FAILED',      'test'=>1),
     	    array('id'=>'USER_LOGOUT',            'test'=>1),
    @@ -96,7 +122,6 @@ class Events // extends CommonObject
     	function __construct($db)
     	{
     		$this->db = $db;
    -		return 1;
     	}
     
     
    @@ -281,5 +306,4 @@ class Events // extends CommonObject
     		$this->dateevent=time();
     		$this->description='This is a specimen event';
     	}
    -
     }
    diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php
    index 596486654fa..12fa3ea9bc9 100644
    --- a/htdocs/core/class/extrafields.class.php
    +++ b/htdocs/core/class/extrafields.class.php
    @@ -4,11 +4,12 @@
      * Copyright (C) 2004       Sebastien Di Cintio     <sdicintio@ressource-toi.org>
      * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
      * Copyright (C) 2009-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2013       Florian Henry           <forian.henry@open-concept.pro>
      * Copyright (C) 2015       Charles-Fr BENKE        <charles.fr@benke.fr>
      * Copyright (C) 2016       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2017       Nicolas ZABOURI         <info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -36,7 +37,10 @@
      */
     class ExtraFields
     {
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	// type of element (for what object is the extrafield)
     	// @deprecated
    @@ -87,7 +91,11 @@ class ExtraFields
     	// New array to store extrafields definition
     	var $attributes;
     
    -	var $error;
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
     	var $errno;
     
     
    @@ -156,14 +164,14 @@ class ExtraFields
     	 *  @param  int				$alwayseditable		Is attribute always editable regardless of the document status
     	 *  @param	string			$perms				Permission to check
     	 *  @param	string			$list				Visibilty ('0'=never visible, '1'=visible on list+forms, '2'=list only, '3'=form only or 'eval string')
    -	 *  @param	int				$notused			Deprecated.
    +	 *  @param	string			$help				Text with help tooltip
     	 *  @param  string  		$computed           Computed value
     	 *  @param  string  		$entity    		 	Entity of extrafields (for multicompany modules)
     	 *  @param  string  		$langfile  		 	Language file
     	 *  @param  string  		$enabled  		 	Condition to have the field enabled or not
     	 *  @return int      							<=0 if KO, >0 if OK
     	 */
    -	function addExtraField($attrname, $label, $type, $pos, $size, $elementtype, $unique=0, $required=0, $default_value='', $param='', $alwayseditable=0, $perms='', $list='-1', $notused=0, $computed='', $entity='', $langfile='', $enabled='1')
    +	function addExtraField($attrname, $label, $type, $pos, $size, $elementtype, $unique=0, $required=0, $default_value='', $param='', $alwayseditable=0, $perms='', $list='-1', $help='', $computed='', $entity='', $langfile='', $enabled='1')
     	{
     		if (empty($attrname)) return -1;
     		if (empty($label)) return -1;
    @@ -174,13 +182,13 @@ class ExtraFields
     		// Create field into database except for separator type which is not stored in database
     		if ($type != 'separate')
     		{
    -			$result=$this->create($attrname, $type, $size, $elementtype, $unique, $required, $default_value, $param, $perms, $list, $computed);
    +			$result=$this->create($attrname, $type, $size, $elementtype, $unique, $required, $default_value, $param, $perms, $list, $computed, $help);
     		}
     		$err1=$this->errno;
     		if ($result > 0 || $err1 == 'DB_ERROR_COLUMN_ALREADY_EXISTS' || $type == 'separate')
     		{
     			// Add declaration of field into table
    -			$result2=$this->create_label($attrname, $label, $type, $pos, $size, $elementtype, $unique, $required, $param, $alwayseditable, $perms, $list, $notused, $default_value, $computed, $entity, $langfile, $enabled);
    +			$result2=$this->create_label($attrname, $label, $type, $pos, $size, $elementtype, $unique, $required, $param, $alwayseditable, $perms, $list, $help, $default_value, $computed, $entity, $langfile, $enabled);
     			$err2=$this->errno;
     			if ($result2 > 0 || ($err1 == 'DB_ERROR_COLUMN_ALREADY_EXISTS' && $err2 == 'DB_ERROR_RECORD_ALREADY_EXISTS'))
     			{
    @@ -285,6 +293,7 @@ class ExtraFields
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
     	/**
     	 *	Add description of a new optional attribute
     	 *
    @@ -300,7 +309,7 @@ class ExtraFields
     	 *  @param  int				$alwayseditable	Is attribute always editable regardless of the document status
     	 *  @param	string			$perms			Permission to check
     	 *  @param	string			$list			Visibily
    -	 *  @param	int				$notused		Deprecated.
    +	 *  @param	string			$help			Help on tooltip
     	 *  @param  string          $default        Default value (in database. use the default_value feature for default value on screen).
     	 *  @param  string          $computed       Computed value
     	 *  @param  string          $entity     	Entity of extrafields
    @@ -308,8 +317,9 @@ class ExtraFields
     	 *  @param  string  		$enabled  		Condition to have the field enabled or not
     	 *  @return	int								<=0 if KO, >0 if OK
     	 */
    -	private function create_label($attrname, $label='', $type='', $pos=0, $size=0, $elementtype='member', $unique=0, $required=0, $param='', $alwayseditable=0, $perms='', $list='-1', $notused=0, $default='', $computed='',$entity='', $langfile='', $enabled='1')
    +	private function create_label($attrname, $label='', $type='', $pos=0, $size=0, $elementtype='member', $unique=0, $required=0, $param='', $alwayseditable=0, $perms='', $list='-1', $help='', $default='', $computed='',$entity='', $langfile='', $enabled='1')
     	{
    +        // phpcs:enable
     		global $conf,$user;
     
     		if ($elementtype == 'thirdparty') $elementtype='societe';
    @@ -357,7 +367,8 @@ class ExtraFields
     			$sql.= " fk_user_author,";
     			$sql.= " fk_user_modif,";
     			$sql.= " datec,";
    -			$sql.= " enabled";
    +			$sql.= " enabled,";
    +			$sql.= " help";
     			$sql.= " )";
     			$sql.= " VALUES('".$attrname."',";
     			$sql.= " '".$this->db->escape($label)."',";
    @@ -378,7 +389,8 @@ class ExtraFields
     			$sql .= " " . (is_object($user) ? $user->id : 0). ",";
     			$sql .= " " . (is_object($user) ? $user->id : 0). ",";
     			$sql .= "'" . $this->db->idate(dol_now()) . "',";
    -			$sql.= " ".($enabled?"'".$this->db->escape($enabled)."'":"1");
    +			$sql.= " ".($enabled?"'".$this->db->escape($enabled)."'":"1").",";
    +			$sql.= " ".($help?"'".$this->db->escape($help)."'":"null");
     			$sql.=')';
     
     			dol_syslog(get_class($this)."::create_label", LOG_DEBUG);
    @@ -450,9 +462,9 @@ class ExtraFields
     		{
     			return 0;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
     	/**
     	 *	Delete description of an optional attribute
     	 *
    @@ -462,6 +474,7 @@ class ExtraFields
     	 */
     	private function delete_label($attrname, $elementtype='member')
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if ($elementtype == 'thirdparty') $elementtype='societe';
    @@ -490,7 +503,6 @@ class ExtraFields
     		{
     			return 0;
     		}
    -
     	}
     
     	/**
    @@ -508,20 +520,21 @@ class ExtraFields
     	 *  @param  int		$alwayseditable		Is attribute always editable regardless of the document status
     	 *  @param	string	$perms				Permission to check
     	 *  @param	string	$list				Visibility
    -	 *  @param	int		$notused			Deprecated.
    +	 *  @param	string	$help				Help on tooltip
     	 *  @param  string  $default            Default value (in database. use the default_value feature for default value on screen).
     	 *  @param  string  $computed           Computed value
     	 *  @param  string  $entity	            Entity of extrafields
     	 *  @param	string	$langfile			Language file
     	 *  @param  string  $enabled  			Condition to have the field enabled or not
    +     *  @param  int     $totalizable        Is extrafield totalizable on list
     	 * 	@return	int							>0 if OK, <=0 if KO
     	 */
    -	function update($attrname, $label, $type, $length, $elementtype, $unique=0, $required=0, $pos=0, $param='', $alwayseditable=0, $perms='', $list='', $notused=0, $default='', $computed='', $entity='', $langfile='', $enabled='1')
    +	function update($attrname, $label, $type, $length, $elementtype, $unique=0, $required=0, $pos=0, $param='', $alwayseditable=0, $perms='', $list='', $help='', $default='', $computed='', $entity='', $langfile='', $enabled='1', $totalizable=0)
     	{
     		if ($elementtype == 'thirdparty') $elementtype='societe';
     		if ($elementtype == 'contact') $elementtype='socpeople';
     
    -		$table=$elementtype.'_extrafields';
    +        $table=$elementtype.'_extrafields';
     		if ($elementtype == 'categorie') $table='categories_extrafields';
     
     		if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
    @@ -566,7 +579,7 @@ class ExtraFields
     			{
     				if ($label)
     				{
    -					$result=$this->update_label($attrname,$label,$type,$length,$elementtype,$unique,$required,$pos,$param,$alwayseditable,$perms,$list,$notused,$default,$computed,$entity,$langfile,$enabled);
    +					$result=$this->update_label($attrname,$label,$type,$length,$elementtype,$unique,$required,$pos,$param,$alwayseditable,$perms,$list,$help,$default,$computed,$entity,$langfile,$enabled, $totalizable);
     				}
     				if ($result > 0)
     				{
    @@ -599,9 +612,9 @@ class ExtraFields
     		{
     			return 0;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
     	/**
     	 *  Modify description of personalized attribute
     	 *
    @@ -617,18 +630,20 @@ class ExtraFields
     	 *  @param  int		$alwayseditable		Is attribute always editable regardless of the document status
     	 *  @param	string	$perms				Permission to check
     	 *  @param	string	$list				Visiblity
    -	 *  @param	int		$notused			Deprecated.
    +	 *  @param	string	$help				Help on tooltip.
     	 *  @param  string  $default            Default value (in database. use the default_value feature for default value on screen).
     	 *  @param  string  $computed           Computed value
     	 *  @param  string  $entity     		Entity of extrafields
     	 *  @param	string	$langfile			Language file
     	 *  @param  string  $enabled  			Condition to have the field enabled or not
    -	 *  @return	int							<=0 if KO, >0 if OK
    +     *  @param  int     $totalizable        Is extrafield totalizable on list
    +     *  @return	int							<=0 if KO, >0 if OK
     	 */
    -	private function update_label($attrname,$label,$type,$size,$elementtype,$unique=0,$required=0,$pos=0,$param='',$alwayseditable=0,$perms='',$list='0',$notused=0,$default='',$computed='',$entity='',$langfile='',$enabled='1')
    +	private function update_label($attrname,$label,$type,$size,$elementtype,$unique=0,$required=0,$pos=0,$param='',$alwayseditable=0,$perms='',$list='0',$help='',$default='',$computed='',$entity='',$langfile='',$enabled='1', $totalizable=0)
     	{
    +        // phpcs:enable
     		global $conf, $user;
    -		dol_syslog(get_class($this)."::update_label ".$attrname.", ".$label.", ".$type.", ".$size.", ".$elementtype.", ".$unique.", ".$required.", ".$pos.", ".$alwayseditable.", ".$perms.", ".$list.", ".$notused.", ".$default.", ".$computed.", ".$entity.", ".$langfile.", ".$enabled);
    +		dol_syslog(get_class($this)."::update_label ".$attrname.", ".$label.", ".$type.", ".$size.", ".$elementtype.", ".$unique.", ".$required.", ".$pos.", ".$alwayseditable.", ".$perms.", ".$list.", ".$default.", ".$computed.", ".$entity.", ".$langfile.", ".$enabled.", ".$totalizable);
     
     		// Clean parameters
     		if ($elementtype == 'thirdparty') $elementtype='societe';
    @@ -636,6 +651,9 @@ class ExtraFields
     
     		if (empty($pos)) $pos=0;
     		if (empty($list)) $list='0';
    +        if (empty($totalizable)) {
    +            $totalizable = 0;
    +        }
     		if (empty($required)) $required=0;
     		if (empty($unique)) $unique=0;
     		if (empty($alwayseditable)) $alwayseditable=0;
    @@ -690,12 +708,14 @@ class ExtraFields
     			$sql.= " alwayseditable,";
     			$sql.= " param,";
     			$sql.= " list,";
    +            $sql.= " totalizable,";
     			$sql.= " fielddefault,";
     			$sql.= " fieldcomputed,";
     			$sql.= " fk_user_author,";
     			$sql.= " fk_user_modif,";
     			$sql.= " datec,";
    -			$sql.= " enabled";
    +			$sql.= " enabled,";
    +			$sql.= " help";
     			$sql.= ") VALUES (";
     			$sql.= "'".$attrname."',";
     			$sql.= " ".($entity===''?$conf->entity:$entity).",";
    @@ -711,12 +731,14 @@ class ExtraFields
     			$sql.= " '".$this->db->escape($alwayseditable)."',";
     			$sql.= " '".$this->db->escape($params)."',";
     			$sql.= " '".$this->db->escape($list)."', ";
    +            $sql.= " ".$totalizable.",";
     			$sql.= " ".(($default!='')?"'".$this->db->escape($default)."'":"null").",";
     			$sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null").",";
     			$sql .= " " . $user->id . ",";
     			$sql .= " " . $user->id . ",";
     			$sql .= "'" . $this->db->idate(dol_now()) . "',";
    -			$sql .= "'" . $this->db->escape($enabled). "'";
    +			$sql .= "'" . $this->db->escape($enabled). "',";
    +			$sql.= " ".($help?"'".$this->db->escape($help)."'":"null");
     			$sql.= ")";
     
     			$resql2=$this->db->query($sql);
    @@ -740,6 +762,7 @@ class ExtraFields
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Load array this->attributes, or old this->attribute_xxx like attribute_label, attribute_type, ...
     	 *
    @@ -749,6 +772,7 @@ class ExtraFields
     	 */
     	function fetch_name_optionals_label($elementtype,$forceload=false)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if (empty($elementtype)) return array();
    @@ -781,7 +805,7 @@ class ExtraFields
     		// We should not have several time this log. If we have, there is some optimization to do by calling a simple $object->fetch_optionals() that include cache management.
     		dol_syslog("fetch_name_optionals_label elementtype=".$elementtype);
     
    -		$sql = "SELECT rowid,name,label,type,size,elementtype,fieldunique,fieldrequired,param,pos,alwayseditable,perms,langs,list,fielddefault,fieldcomputed,entity,enabled";
    +		$sql = "SELECT rowid,name,label,type,size,elementtype,fieldunique,fieldrequired,param,pos,alwayseditable,perms,langs,list,totalizable,fielddefault,fieldcomputed,entity,enabled,help";
     		$sql.= " FROM ".MAIN_DB_PREFIX."extrafields";
     		$sql.= " WHERE entity IN (0,".$conf->entity.")";
     		if ($elementtype) $sql.= " AND elementtype = '".$elementtype."'";	// Filed with object->table_element
    @@ -815,6 +839,7 @@ class ExtraFields
     					$this->attribute_perms[$tab->name]=(strlen($tab->perms) == 0 ? 1 : $tab->perms);
     					$this->attribute_langfile[$tab->name]=$tab->langs;
     					$this->attribute_list[$tab->name]=$tab->list;
    +					$this->attribute_totalizable[$tab->name]=$tab->totalizable;
     					$this->attribute_entityid[$tab->name]=$tab->entity;
     					$this->attribute_entitylabel[$tab->name]=(empty($labelmulticompany[$tab->entity])?'Entity'.$tab->entity:$labelmulticompany[$tab->entity]);
     
    @@ -833,9 +858,11 @@ class ExtraFields
     					$this->attributes[$tab->elementtype]['perms'][$tab->name]=(strlen($tab->perms) == 0 ? 1 : $tab->perms);
     					$this->attributes[$tab->elementtype]['langfile'][$tab->name]=$tab->langs;
     					$this->attributes[$tab->elementtype]['list'][$tab->name]=$tab->list;
    +                    $this->attributes[$tab->elementtype]['totalizable'][$tab->name]=$tab->totalizable;
     					$this->attributes[$tab->elementtype]['entityid'][$tab->name]=$tab->entity;
     					$this->attributes[$tab->elementtype]['entitylabel'][$tab->name]=(empty($labelmulticompany[$tab->entity])?'Entity'.$tab->entity:$labelmulticompany[$tab->entity]);
     					$this->attributes[$tab->elementtype]['enabled'][$tab->name]=$tab->enabled;
    +					$this->attributes[$tab->elementtype]['help'][$tab->name]=$tab->help;
     
     					$this->attributes[$tab->elementtype]['loaded']=1;
     				}
    @@ -893,6 +920,8 @@ class ExtraFields
     			$perms=dol_eval($this->attributes[$extrafieldsobjectkey]['perms'][$key], 1);
     			$langfile=$this->attributes[$extrafieldsobjectkey]['langfile'][$key];
     			$list=dol_eval($this->attributes[$extrafieldsobjectkey]['list'][$key], 1);
    +			$totalizable=$this->attributes[$extrafieldsobjectkey]['totalizable'][$key];
    +			$help=$this->attributes[$extrafieldsobjectkey]['help'][$key];
     			$hidden=(empty($list) ? 1 : 0);		// If empty, we are sure it is hidden, otherwise we show. If it depends on mode (view/create/edit form or list, this must be filtered by caller)
     		}
     		else	// Old usage
    @@ -908,6 +937,7 @@ class ExtraFields
     			$param=$this->attribute_param[$key];
     			$langfile=$this->attribute_langfile[$key];
     			$list=$this->attribute_list[$key];
    +			$totalizable=$this->attribute_totalizable[$key];
     			$hidden=(empty($list) ? 1 : 0);		// If empty, we are sure it is hidden, otherwise we show. If it depends on mode (view/create/edit form or list, this must be filtered by caller)
     		}
     
    @@ -967,11 +997,11 @@ class ExtraFields
     
     			$showtime = in_array($type,array('datetime')) ? 1 : 0;
     
    -			// Do not show current date when field not required (see select_date() method)
    +			// Do not show current date when field not required (see selectDate() method)
     			if (!$required && $value == '') $value = '-1';
     
     			// TODO Must also support $moreparam
    -			$out = $form->select_date($value, $keyprefix.$key.$keysuffix, $showtime, $showtime, $required, '', 1, (($keyprefix != 'search_' && $keyprefix != 'search_options_') ? 1 : 0), 1, 0, 1);
    +			$out = $form->selectDate($value, $keyprefix.$key.$keysuffix, $showtime, $showtime, $required, '', 1, (($keyprefix != 'search_' && $keyprefix != 'search_options_') ? 1 : 0), 0, 1);
     		}
     		elseif (in_array($type,array('int','integer')))
     		{
    @@ -1303,7 +1333,58 @@ class ExtraFields
     					// current object id can be use into filter
     					if (strpos($InfoFieldList[4], '$ID$')!==false && !empty($objectid)) {
     						$InfoFieldList[4]=str_replace('$ID$',$objectid,$InfoFieldList[4]);
    -					} else {
    +					} else if (preg_match("#^.*list.php$#",$_SERVER["DOCUMENT_URI"])) {
    +						// Pattern for word=$ID$
    +						$word = '\b[a-zA-Z0-9-\.-_]+\b=\$ID\$';
    +						
    +						// Removing space arount =, ( and )
    +						$InfoFieldList[4]=preg_replace('# *(=|\(|\)) *#','$1', $InfoFieldList[4]);
    +						
    +						$nbPreg = 1;
    +						// While we have parenthesis
    +						while ($nbPreg!=0) {
    +							// Init des compteurs
    +							$nbPregRepl = $nbPregSel = 0;
    +							// On retire toutes les parenthèses sans = avant
    +							$InfoFieldList[4]=preg_replace( '#([^=])(\([^)^(]*(' . $word .   ')[^)^(]*\))#','$1 $3 ',$InfoFieldList[4],-1,$nbPregRepl);
    +							// On retire les espaces autour des = et parenthèses
    +							$InfoFieldList[4]=preg_replace('# *(=|\(|\)) *#','$1', $InfoFieldList[4]);
    +							// On retire toutes les parenthèses avec = avant
    +							$InfoFieldList[4]=preg_replace(  '#\b[a-zA-Z0-9-\.-_]+\b=\([^)^(]*(' . $word .   ')[^)^(]*\)#','$1 ',$InfoFieldList[4], -1, $nbPregSel);
    +							// On retire les espaces autour des = et parenthèses
    +							$InfoFieldList[4]=preg_replace('# *(=|\(|\)) *#','$1', $InfoFieldList[4]);
    +							
    +							// Calcul du compteur général pour la boucle
    +							$nbPreg = $nbPregRepl + $nbPregSel;
    +						}
    +						
    +						// Si l'on a un AND ou un OR, avant ou après
    +						preg_match('#(AND|OR|) *('.$word.') *(AND|OR|)#',$InfoFieldList[4],$matchCondition);
    +						while(!empty($matchCondition[0])) {
    +							// If the two sides differ but are not empty
    +							if (! empty($matchCondition[1]) && ! empty($matchCondition[3]) && $matchCondition[1] != $matchCondition[3] ) {
    +								// Nobody sain would do that without parentheses
    +								$InfoFieldList[4]=str_replace('$ID$','0',$InfoFieldList[4]);
    +							}
    +							else {
    +								if (! empty($matchCondition[1])) {
    +									$boolCond =(( $matchCondition[1] == "AND" )?' AND 1 ':' OR 0 ');
    +									$InfoFieldList[4]=str_replace($matchCondition[0],$boolCond.$matchCondition[3],$InfoFieldList[4]);
    +								}
    +								else if (! empty($matchCondition[3])) {
    +									$boolCond =(( $matchCondition[3] == "AND" )?' 1 AND ':' 0 OR');
    +									$InfoFieldList[4]=str_replace($matchCondition[0],$boolCond,$InfoFieldList[4]);
    +								}
    +								else {
    +									$InfoFieldList[4] = 1;
    +								}
    +							}
    +							
    +							// Si l'on a un AND ou un OR, avant ou après
    +							preg_match('#(AND|OR|) *('.$word.') *(AND|OR|)#',$InfoFieldList[4],$matchCondition);
    +						}
    +					}
    +					else {
     						$InfoFieldList[4]=str_replace('$ID$','0',$InfoFieldList[4]);
     					}
     
    @@ -1362,7 +1443,6 @@ class ExtraFields
     							}
     
     							$data[$obj->rowid]=$labeltoshow;
    -
     						} else {
     							if (! $notrans) {
     								$translabel = $langs->trans($obj->{$InfoFieldList[1]});
    @@ -1391,7 +1471,6 @@ class ExtraFields
     					$this->db->free($resql);
     
     					$out=$form->multiselectarray($keyprefix.$key.$keysuffix, $data, $value_arr, '', 0, '', 0, '100%');
    -
     				} else {
     					print 'Error in request ' . $sql . ' ' . $this->db->lasterror() . '. Check setup of extra parameters.<br>';
     				}
    @@ -1677,7 +1756,6 @@ class ExtraFields
     					}
     				}
     				$value='<div class="select2-container-multi-dolibarr" style="width: 90%;"><ul class="select2-choices-dolibarr">'.implode(' ', $toprint).'</ul></div>';
    -
     			} else {
     				dol_syslog(get_class($this) . '::showOutputField error ' . $this->db->lasterror(), LOG_WARNING);
     			}
    @@ -1751,7 +1829,7 @@ class ExtraFields
     
     		$align='';
     
    -		if ($type == 'date')
    +        if ($type == 'date')
     		{
     			$align="center";
     		}
    @@ -1779,6 +1857,10 @@ class ExtraFields
     		{
     			$align="center";
     		}
    +		elseif ($type == 'price')
    +		{
    +			$align="right";
    +		}
     
     		return $align;
     	}
    diff --git a/htdocs/core/class/fileupload.class.php b/htdocs/core/class/fileupload.class.php
    index c3a40599877..027fdda0514 100644
    --- a/htdocs/core/class/fileupload.class.php
    +++ b/htdocs/core/class/fileupload.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/class/fiscalyear.class.php b/htdocs/core/class/fiscalyear.class.php
    index 987033d35e3..c1c288cbf79 100644
    --- a/htdocs/core/class/fiscalyear.class.php
    +++ b/htdocs/core/class/fiscalyear.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2014-2017	Alexandre Spangaro	<aspangaro@zendsi.com>
    +/* Copyright (C) 2014-2018  Alexandre Spangaro  <aspangaro@zendsi.com>
      *
      * 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
    @@ -16,49 +16,80 @@
      */
     
     /**
    - *      \file       htdocs/core/class/fiscalyear.php
    + *      \file       htdocs/core/class/fiscalyear.class.php
      *		\ingroup    fiscal year
      *		\brief      File of class to manage fiscal years
      */
     
    -require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
     
     /**
      * Class to manage fiscal year
      */
     class Fiscalyear extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='fiscalyear';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='accounting_fiscalyear';
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
     	public $table_element_line = '';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element = '';
    -	public $ismultientitymanaged = 1;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     
    -	var $rowid;
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 1;
     
    -	var $label;
    -	var $date_start;
    -	var $date_end;
    -	var $datec;
    -	var $statut;		// 0=open, 1=closed
    -	var $entity;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $rowid;
     
    -	var $statuts=array();
    -	var $statuts_short=array();
    +	/**
    +	 * @var string fiscal year label
    +	 */
    +	public $label;
    +
    +	public $date_start;
    +	public $date_end;
    +	public $datec;
    +	public $statut;		// 0=open, 1=closed
    +
    +	/**
    +	 * @var int Entity
    +	 */
    +	public $entity;
    +
    +	public $statuts=array();
    +	public $statuts_short=array();
     
     	/**
     	 * Constructor
     	 *
     	 * @param	DoliDB		$db		Database handler
     	 */
    -	function __construct($db)
    +	function __construct(DoliDB $db)
     	{
    +		global $langs;
    +
     		$this->db = $db;
     
     		$this->statuts_short = array(0 => 'Opened', 1 => 'Closed');
    -        $this->statuts = array(0 => 'Opened', 1 => 'Closed');
    -
    -		return 1;
    +		$this->statuts = array(0 => 'Opened', 1 => 'Closed');
     	}
     
     	/**
    @@ -134,10 +165,10 @@ class Fiscalyear extends CommonObject
     
     		// Check parameters
     		if (empty($this->date_start) && empty($this->date_end))
    -        {
    -            $this->error='ErrorBadParameter';
    -            return -1;
    -        }
    +		{
    +			$this->error='ErrorBadParameter';
    +			return -1;
    +		}
     
     		$this->db->begin();
     
    @@ -238,6 +269,7 @@ class Fiscalyear extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Give a label from a status
     	 *
    @@ -247,35 +279,36 @@ class Fiscalyear extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +		// phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
     		{
     			return $langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			return $langs->trans($this->statuts_short[$statut]);
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts_short[$statut]);
    -			if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut8').' '.$langs->trans($this->statuts_short[$statut]);
    +			elseif ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut8').' '.$langs->trans($this->statuts_short[$statut]);
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut==0 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4');
    -			if ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut8');
    +			elseif ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut8');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut==0 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut4').' '.$langs->trans($this->statuts[$statut]);
    -			if ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut8').' '.$langs->trans($this->statuts[$statut]);
    +			elseif ($statut==1 && ! empty($this->statuts_short[$statut])) return img_picto($langs->trans($this->statuts_short[$statut]),'statut8').' '.$langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut==0 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut4');
    -			if ($statut==1 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    +			elseif ($statut==1 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
     		}
     	}
     
    @@ -324,4 +357,55 @@ class Fiscalyear extends CommonObject
     		}
     	}
     
    +	/**
    +	 *  Return the number of entries by fiscal year
    +	 *
    +	 *	@param	int		$datestart	Date start to scan
    +	 *	@param	int		$dateend	Date end to scan
    +	 *	@return	string				Number of entries
    +	 */
    +	function getAccountancyEntriesByFiscalYear($datestart, $dateend)
    +	{
    +		global $conf;
    +
    +		$sql = "SELECT count(DISTINCT piece_num) as nb";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping ";
    +		$sql.= " WHERE doc_date >= '".$datestart."' and doc_date <= '".$dateend."'";
    +
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$obj = $this->db->fetch_object($resql);
    +			$nb = $obj->nb;
    +		}
    +		else dol_print_error($this->db);
    +
    +		return $nb;
    +	}
    +
    +	/**
    +	 *  Return the number of movements by fiscal year
    +	 *
    +	 *	@param	int		$datestart	Date start to scan
    +	 *	@param	int		$dateend	Date end to scan
    +	 *	@return	string				Number of movements
    +	 */
    +	function getAccountancyMovementsByFiscalYear($datestart, $dateend)
    +	{
    +		global $conf;
    +
    +		$sql = "SELECT count(rowid) as nb";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping ";
    +		$sql.= " WHERE doc_date >= '".$datestart."' AND doc_date <= '".$dateend."'";
    +
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$obj = $this->db->fetch_object($resql);
    +			$nb = $obj->nb;
    +		}
    +		else dol_print_error($this->db);
    +
    +		return $nb;
    +	}
     }
    diff --git a/htdocs/core/class/genericobject.class.php b/htdocs/core/class/genericobject.class.php
    index c89b5c31fea..993d884c88b 100644
    --- a/htdocs/core/class/genericobject.class.php
    +++ b/htdocs/core/class/genericobject.class.php
    @@ -24,20 +24,18 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
     
     
     /**
    - *	Class of a generic business object
    + *  Class of a generic business object
      */
     
     class GenericObject extends CommonObject
     {
    -	/**
    -	 *	Constructor
    -	 *
    -	 *  @param		DoliDB		$db      Database handler
    -	 */
    -	function __construct($db)
    -	{
    -	    $this->db=$db;
    -	}
    -
    +    /**
    +     * Constructor
    +     *
    +     * @param       DoliDB      $db     Database handler
    +     */
    +    function __construct($db)
    +    {
    +        $this->db=$db;
    +    }
     }
    -
    diff --git a/htdocs/core/class/google.class.php b/htdocs/core/class/google.class.php
    index e923ec12252..615729ba9c3 100644
    --- a/htdocs/core/class/google.class.php
    +++ b/htdocs/core/class/google.class.php
    @@ -26,10 +26,17 @@
      */
     class GoogleAPI
     {
    -	var $db;
    -	var $error;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -	var $key;
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	public $key;
     
     	/**
     	 * Constructor
    diff --git a/htdocs/core/class/hookmanager.class.php b/htdocs/core/class/hookmanager.class.php
    index 439e31caae1..4b0ed682e49 100644
    --- a/htdocs/core/class/hookmanager.class.php
    +++ b/htdocs/core/class/hookmanager.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2010-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2014 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2014 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2011 Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -29,9 +29,20 @@
      */
     class HookManager
     {
    -	var $db;
    -	var $error;
    -	var $errors=array();
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +	
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
     
         // Context hookmanager was created for ('thirdpartycard', 'thirdpartydao', ...)
         var $contextarray=array();
    @@ -272,5 +283,4 @@ class HookManager
     
             return ($error?-1:$resaction);
     	}
    -
     }
    diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
    index 58df0ad4e22..5cafb86cdc6 100644
    --- a/htdocs/core/class/html.form.class.php
    +++ b/htdocs/core/class/html.form.class.php
    @@ -4,20 +4,23 @@
      * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
      * Copyright (C) 2004       Sebastien Di Cintio     <sdicintio@ressource-toi.org>
      * Copyright (C) 2004       Eric Seigne             <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2017  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2006       Andre Cianfarani        <acianfa@free.fr>
      * Copyright (C) 2006       Marc Barilley/Ocebo     <marc@ocebo.com>
      * Copyright (C) 2007       Franky Van Liedekerke   <franky.van.liedekerker@telenet.be>
      * Copyright (C) 2007       Patrick Raguin          <patrick.raguin@gmail.com>
      * Copyright (C) 2010       Juanjo Menent           <jmenent@2byte.es>
    - * Copyright (C) 2010-2014  Philippe Grand          <philippe.grand@atoo-net.com>
    + * Copyright (C) 2010-2019  Philippe Grand          <philippe.grand@atoo-net.com>
      * Copyright (C) 2011       Herve Prot              <herve.prot@symeos.com>
      * Copyright (C) 2012-2016  Marcos García           <marcosgdf@gmail.com>
      * Copyright (C) 2012       Cedric Salvador         <csalvador@gpcsolutions.fr>
      * Copyright (C) 2012-2015  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2014       Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2018       Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      * Copyright (C) 2018       Nicolas ZABOURI	        <info@inovea-conseil.com>
    + * Copyright (C) 2018       Christophe Battarel     <christophe@altairis.fr>
    + * Copyright (C) 2018       Josep Lluis Amador      <joseplluis@lliuretic.cat>
      *
      * 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
    @@ -48,17 +51,30 @@
      */
     class Form
     {
    -	var $db;
    -	var $error;
    -	var $num;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +    /**
    +     * @var string[]    Array of error strings
    +     */
    +    public $errors = array();
    +
    +	public $num;
     
     	// Cache arrays
    -	var $cache_types_paiements=array();
    -	var $cache_conditions_paiements=array();
    -	var $cache_availability=array();
    -	var $cache_demand_reason=array();
    -	var $cache_types_fees=array();
    -	var $cache_vatrates=array();
    +	public $cache_types_paiements=array();
    +	public $cache_conditions_paiements=array();
    +	public $cache_availability=array();
    +	public $cache_demand_reason=array();
    +	public $cache_types_fees=array();
    +	public $cache_vatrates=array();
     
     
     	/**
    @@ -203,11 +219,11 @@ class Form
     				}
     				else if ($typeofdata == 'day' || $typeofdata == 'datepicker')
     				{
    -					$ret.=$this->select_date($value,$htmlname,0,0,1,'form'.$htmlname,1,0,1);
    +					$ret.=$this->selectDate($value,$htmlname,0,0,1,'form'.$htmlname,1,0);
     				}
     				else if ($typeofdata == 'dayhour' || $typeofdata == 'datehourpicker')
     				{
    -					$ret.=$this->select_date($value,$htmlname,1,1,1,'form'.$htmlname,1,0,1);
    +					$ret.=$this->selectDate($value,$htmlname,1,1,1,'form'.$htmlname,1,0);
     				}
     				else if (preg_match('/^select;/',$typeofdata))
     				{
    @@ -228,7 +244,7 @@ class Form
     				}
     				if (empty($notabletag)) $ret.='</td>';
     
    -				if (empty($notabletag)) $ret.='<td align="left">';
    +				if (empty($notabletag)) $ret.='<td class="left">';
     				//else $ret.='<div class="clearboth"></div>';
     			   	$ret.='<input type="submit" class="button'.(empty($notabletag)?'':' ').'" name="modify" value="'.$langs->trans("Modify").'">';
     			   	if (preg_match('/ckeditor|textarea/',$typeofdata) && empty($notabletag)) $ret.='<br>'."\n";
    @@ -436,7 +452,7 @@ class Form
     		if ($notabs == 2) $tag='div';
     		if ($notabs == 3) $tag='span';
     		// Sanitize tooltip
    -		$htmltext=str_replace("\\","\\\\",$htmltext);
    +		//$htmltext=str_replace("\\","\\\\",$htmltext);
     		$htmltext=str_replace("\r","",$htmltext);
     		$htmltext=str_replace("\n","",$htmltext);
     
    @@ -646,6 +662,7 @@ class Form
     		return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return combo list of activated countries, into language of user
     	 *
    @@ -654,14 +671,16 @@ class Form
     	 *  @param  string	$htmloption     	Options html on select object
     	 *  @param	integer	$maxlength			Max length for labels (0=no limit)
     	 *  @param	string	$morecss			More css class
    -	 *  @param	string	$usecodeaskey		'code3'=Use code on 3 alpha as key, 'code2"=Use code on 2 alpha as key
    +	 *  @param	string	$usecodeaskey		''=Use id as key (default), 'code3'=Use code on 3 alpha as key, 'code2"=Use code on 2 alpha as key
     	 *  @param	int		$showempty			Show empty choice
    -	 *  @param	int		$disablefavorites	Disable favorites
    +	 *  @param	int		$disablefavorites	1=Disable favorites,
    +	 *  @param	int		$addspecialentries	1=Add dedicated entries for group of countries (like 'European Economic Community', ...)
     	 *  @return string           			HTML string with select
     	 */
    -	function select_country($selected='', $htmlname='country_id', $htmloption='', $maxlength=0, $morecss='minwidth300', $usecodeaskey='', $showempty=1, $disablefavorites=0)
    +	function select_country($selected='', $htmlname='country_id', $htmloption='', $maxlength=0, $morecss='minwidth300', $usecodeaskey='', $showempty=1, $disablefavorites=0, $addspecialentries=0)
     	{
    -		global $conf,$langs;
    +        // phpcs:enable
    +		global $conf,$langs,$mysoc;
     
     		$langs->load("dict");
     
    @@ -703,15 +722,31 @@ class Form
     				if (empty($disablefavorites)) array_multisort($favorite, SORT_DESC, $label, SORT_ASC, $countryArray);
     				else $countryArray = dol_sort_array($countryArray, 'label');
     
    +				if ($showempty)
    +				{
    +					$out.='<option value="">&nbsp;</option>'."\n";
    +				}
    +
    +				if ($addspecialentries)	// Add dedicated entries for groups of countries
    +				{
    +					//if ($showempty) $out.= '<option value="" disabled class="selectoptiondisabledwhite">--------------</option>';
    +					$out.= '<option value="special_allnotme"'.($selected == 'special_allnotme' ? ' selected' : '').'>'.$langs->trans("CountriesExceptMe", $langs->transnoentitiesnoconv("Country".$mysoc->country_code)).'</option>';
    +					$out.= '<option value="special_eec"'.($selected == 'special_eec' ? ' selected' : '').'>'.$langs->trans("CountriesInEEC").'</option>';
    +					if ($mysoc->isInEEC()) $out.= '<option value="special_eecnotme"'.($selected == 'special_eecnotme' ? ' selected' : '').'>'.$langs->trans("CountriesInEECExceptMe", $langs->transnoentitiesnoconv("Country".$mysoc->country_code)).'</option>';
    +					$out.= '<option value="special_noteec"'.($selected == 'special_noteec' ? ' selected' : '').'>'.$langs->trans("CountriesNotInEEC").'</option>';
    +					$out.= '<option value="" disabled class="selectoptiondisabledwhite">--------------</option>';
    +				}
    +
     				foreach ($countryArray as $row)
     				{
    -					if (empty($showempty) && empty($row['rowid'])) continue;
    +					//if (empty($showempty) && empty($row['rowid'])) continue;
    +					if (empty($row['rowid'])) continue;
     
     					if (empty($disablefavorites) && $row['favorite'] && $row['code_iso']) $atleastonefavorite++;
     					if (empty($row['favorite']) && $atleastonefavorite)
     					{
     						$atleastonefavorite=0;
    -						$out.= '<option value="" disabled class="selectoptiondisabledwhite">----------------------</option>';
    +						$out.= '<option value="" disabled class="selectoptiondisabledwhite">--------------</option>';
     					}
     					if ($selected && $selected != '-1' && ($selected == $row['rowid'] || $selected == $row['code_iso'] || $selected == $row['code_iso3'] || $selected == $row['label']) )
     					{
    @@ -742,6 +777,7 @@ class Form
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return select list of incoterms
     	 *
    @@ -756,6 +792,7 @@ class Form
     	 */
     	function select_incoterms($selected='', $location_incoterms='', $page='', $htmlname='incoterm_id', $htmloption='', $forcecombo=1, $events=array())
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$langs->load("dict");
    @@ -834,6 +871,7 @@ class Form
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of types of lines (product or service)
     	 * 	Example: 0=product, 1=service, 9=other (for external module)
    @@ -842,15 +880,16 @@ class Form
     	 *	@param  string	$htmlname       Name of field in html form
     	 * 	@param	int		$showempty		Add an empty field
     	 * 	@param	int		$hidetext		Do not show label 'Type' before combo box (used only if there is at least 2 choices to select)
    -	 * 	@param	integer	$forceall		1=Force to show products and services in combo list, whatever are activated modules, 0=No force, -1=Force none (and set hidden field to 'service')
    +	 * 	@param	integer	$forceall		1=Force to show products and services in combo list, whatever are activated modules, 0=No force, 2=Force to show only Products, 3=Force to show only services, -1=Force none (and set hidden field to 'service')
     	 *  @return	void
     	 */
     	function select_type_of_lines($selected='',$htmlname='type',$showempty=0,$hidetext=0,$forceall=0)
     	{
    +        // phpcs:enable
     		global $db,$langs,$user,$conf;
     
     		// If product & services are enabled or both disabled.
    -		if ($forceall > 0 || (empty($forceall) && ! empty($conf->product->enabled) && ! empty($conf->service->enabled))
    +		if ($forceall == 1 || (empty($forceall) && ! empty($conf->product->enabled) && ! empty($conf->service->enabled))
     		|| (empty($forceall) && empty($conf->product->enabled) && empty($conf->service->enabled)) )
     		{
     			if (empty($hidetext)) print $langs->trans("Type").': ';
    @@ -873,12 +912,12 @@ class Form
     			print '</select>';
     			//if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
     		}
    -		if (empty($forceall) && empty($conf->product->enabled) && ! empty($conf->service->enabled))
    +		if ((empty($forceall) && empty($conf->product->enabled) && ! empty($conf->service->enabled)) || $forceall == 3)
     		{
     			print $langs->trans("Service");
     			print '<input type="hidden" name="'.$htmlname.'" value="1">';
     		}
    -		if (empty($forceall) && ! empty($conf->product->enabled) && empty($conf->service->enabled))
    +		if ((empty($forceall) && ! empty($conf->product->enabled) && empty($conf->service->enabled)) || $forceall == 2)
     		{
     			print $langs->trans("Product");
     			print '<input type="hidden" name="'.$htmlname.'" value="0">';
    @@ -889,6 +928,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Load into cache cache_types_fees, array of types of fees
     	 *
    @@ -896,6 +936,7 @@ class Form
     	 */
     	function load_cache_types_fees()
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$num = count($this->cache_types_fees);
    @@ -936,6 +977,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of types of notes
     	 *
    @@ -946,13 +988,14 @@ class Form
     	 */
     	function select_type_fees($selected='',$htmlname='type',$showempty=0)
     	{
    +        // phpcs:enable
     		global $user, $langs;
     
     		dol_syslog(__METHOD__." selected=".$selected.", htmlname=".$htmlname, LOG_DEBUG);
     
     		$this->load_cache_types_fees();
     
    -		print '<select class="flat" name="'.$htmlname.'">';
    +		print '<select id="select_'.$htmlname.'" class="flat" name="'.$htmlname.'">';
     		if ($showempty)
     		{
     			print '<option value="-1"';
    @@ -974,6 +1017,7 @@ class Form
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return HTML code to select a company.
     	 *
    @@ -988,9 +1032,11 @@ class Form
     	 */
     	function select_thirdparty($selected='', $htmlname='socid', $filter='', $limit=20, $ajaxoptions=array(), $forcecombo=0)
     	{
    +        // phpcs:enable
        		return $this->select_thirdparty_list($selected,$htmlname,$filter,1,0,$forcecombo,array(),'',0, $limit);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Output html form to select a third party
     	 *
    @@ -1007,10 +1053,12 @@ class Form
     	 *	@param	string	$selected_input_value	Value of preselected input text (for use with ajax)
     	 *  @param	int		$hidelabel				Hide label (0=no, 1=yes, 2=show search icon (before) and placeholder, 3 search icon after)
     	 *  @param	array	$ajaxoptions			Options for ajax_autocompleter
    +	 * 	@param  bool	$multiple				add [] in the name of element and add 'multiple' attribut (not working with ajax_autocompleter)
     	 * 	@return	string							HTML string with select box for thirdparty.
     	 */
    -	function select_company($selected='', $htmlname='socid', $filter='', $showempty='', $showtype=0, $forcecombo=0, $events=array(), $limit=0, $morecss='minwidth100', $moreparam='', $selected_input_value='', $hidelabel=1, $ajaxoptions=array())
    +	function select_company($selected='', $htmlname='socid', $filter='', $showempty='', $showtype=0, $forcecombo=0, $events=array(), $limit=0, $morecss='minwidth100', $moreparam='', $selected_input_value='', $hidelabel=1, $ajaxoptions=array(), $multiple=false)
     	{
    +        // phpcs:enable
     		global $conf,$user,$langs;
     
     		$out='';
    @@ -1046,12 +1094,13 @@ class Form
     		else
     		{
     			// Immediate load of all database
    -			$out.=$this->select_thirdparty_list($selected, $htmlname, $filter, $showempty, $showtype, $forcecombo, $events, '', 0, $limit, $morecss, $moreparam);
    +			$out.=$this->select_thirdparty_list($selected, $htmlname, $filter, $showempty, $showtype, $forcecombo, $events, '', 0, $limit, $morecss, $moreparam, $multiple);
     		}
     
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Output html form to select a third party.
     	 *  Note, you must use the select_company to get the component to select a third party. This function must only be called by select_company.
    @@ -1068,27 +1117,42 @@ class Form
     	 *  @param	int		$limit			Limit number of answers
     	 *  @param	string	$morecss		Add more css styles to the SELECT component
     	 *	@param  string	$moreparam      Add more parameters onto the select tag. For example 'style="width: 95%"' to avoid select2 component to go over parent container
    +	 *	@param  bool	$multiple       add [] in the name of element and add 'multiple' attribut
     	 * 	@return	string					HTML string with
     	 */
    -	function select_thirdparty_list($selected='',$htmlname='socid',$filter='',$showempty='', $showtype=0, $forcecombo=0, $events=array(), $filterkey='', $outputmode=0, $limit=0, $morecss='minwidth100', $moreparam='')
    +	function select_thirdparty_list($selected='',$htmlname='socid',$filter='',$showempty='', $showtype=0, $forcecombo=0, $events=array(), $filterkey='', $outputmode=0, $limit=0, $morecss='minwidth100', $moreparam='', $multiple=false)
     	{
    +        // phpcs:enable
     		global $conf,$user,$langs;
     
     		$out='';
     		$num=0;
     		$outarray=array();
     
    +		if ($selected === '') $selected = array();
    +		else if (!is_array($selected)) $selected = array($selected);
    +
     		// Clean $filter that may contains sql conditions so sql code
    -		if (function_exists('test_sql_and_script_inject')) {
    -			if (test_sql_and_script_inject($filter, 3)>0) {
    +		if (function_exists('testSqlAndScriptInject')) {
    +			if (testSqlAndScriptInject($filter, 3)>0) {
     				$filter ='';
     			}
     		}
     
     		// On recherche les societes
     		$sql = "SELECT s.rowid, s.nom as name, s.name_alias, s.client, s.fournisseur, s.code_client, s.code_fournisseur";
    -		$sql.= " FROM ".MAIN_DB_PREFIX ."societe as s";
    +
    +		if ($conf->global->COMPANY_SHOW_ADDRESS_SELECTLIST) {
    +			$sql .= ", s.address, s.zip, s.town";
    +		 	$sql .= ", dictp.code as country_code";
    +		}
    +
    +		$sql.= " FROM (".MAIN_DB_PREFIX ."societe as s";
     		if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +		$sql.= " )";
    +		if ($conf->global->COMPANY_SHOW_ADDRESS_SELECTLIST) {
    +			$sql.= " LEFT OUTER JOIN ".MAIN_DB_PREFIX."c_country as dictp ON dictp.rowid=s.fk_pays";
    +		}
     		$sql.= " WHERE s.entity IN (".getEntity('societe').")";
     		if (! empty($user->socid)) $sql.= " AND s.rowid = ".$user->socid;
     		if ($filter) $sql.= " AND (".$filter.")";
    @@ -1131,7 +1195,7 @@ class Form
     			}
     
     			// Construct $out and $outarray
    -			$out.= '<select id="'.$htmlname.'" class="flat'.($morecss?' '.$morecss:'').'"'.($moreparam?' '.$moreparam:'').' name="'.$htmlname.'">'."\n";
    +			$out.= '<select id="'.$htmlname.'" class="flat'.($morecss?' '.$morecss:'').'"'.($moreparam?' '.$moreparam:'').' name="'.$htmlname.($multiple ? '[]' : '').'" '.($multiple ? 'multiple' : '').'>'."\n";
     
     			$textifempty='';
     			// Do not use textifempty = ' ' or '&nbsp;' here, or search on key will search on ' key'.
    @@ -1178,9 +1242,16 @@ class Form
     						if ($obj->client || $obj->fournisseur) $label.=')';
     					}
     
    +					if ($conf->global->COMPANY_SHOW_ADDRESS_SELECTLIST) {
    +						$label.='-'.$obj->address.'-'. $obj->zip.' '. $obj->town;
    +						if (!empty($obj->country_code)) {
    +							$label.= ' '. $langs->trans('Country'.$obj->country_code);
    +						}
    +					}
    +
     					if (empty($outputmode))
     					{
    -						if ($selected > 0 && $selected == $obj->rowid)
    +						if (in_array($obj->rowid,$selected))
     						{
     							$out.= '<option value="'.$obj->rowid.'" selected>'.$label.'</option>';
     						}
    @@ -1212,6 +1283,7 @@ class Form
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    	Return HTML combo list of absolute discounts
     	 *
    @@ -1224,6 +1296,7 @@ class Form
     	 */
     	function select_remises($selected, $htmlname, $filter, $socid, $maxvalue=0)
     	{
    +        // phpcs:enable
     		global $langs,$conf;
     
     		// On recherche les remises
    @@ -1239,7 +1312,7 @@ class Form
     		$resql=$this->db->query($sql);
     		if ($resql)
     		{
    -			print '<select class="flat maxwidthonsmartphone" name="'.$htmlname.'">';
    +			print '<select id="select_'.$htmlname.'" class="flat maxwidthonsmartphone" name="'.$htmlname.'">';
     			$num = $this->db->num_rows($resql);
     
     			$qualifiedlines=$num;
    @@ -1287,6 +1360,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of all contacts (for a third party or all)
     	 *
    @@ -1309,6 +1383,7 @@ class Form
     	 */
     	function select_contacts($socid,$selected='',$htmlname='contactid',$showempty=0,$exclude='',$limitto='',$showfunction=0, $moreclass='', $showsoc=0, $forcecombo=0, $events=array(), $options_only=false, $moreparam='', $htmlid='')
     	{
    +        // phpcs:enable
     		print $this->selectcontacts($socid,$selected,$htmlname,$showempty,$exclude,$limitto,$showfunction, $moreclass, $options_only, $showsoc, $forcecombo, $events, $moreparam, $htmlid);
     		return $this->num;
     	}
    @@ -1317,6 +1392,8 @@ class Form
     	 *	Return HTML code of the SELECT of list of all contacts (for a third party or all).
     	 *  This also set the number of contacts found into $this->num
     	 *
    +	 * @since 9.0 Add afterSelectContactOptions hook
    +	 *
     	 *	@param	int			$socid      	Id ot third party or 0 for all or -1 for empty list
     	 *	@param  array|int	$selected   	Array of ID of pre-selected contact id
     	 *	@param  string		$htmlname  	    Name of HTML field ('none' for a not editable field)
    @@ -1327,22 +1404,32 @@ class Form
     	 *	@param	string		$moreclass		Add more class to class style
     	 *	@param	bool		$options_only	Return options only (for ajax treatment)
     	 *	@param	integer		$showsoc	    Add company into label
    -	 * 	@param	int			$forcecombo		Force to use combo box
    +	 * 	@param	int			$forcecombo		Force to use combo box (so no ajax beautify effect)
     	 *  @param	array		$events			Event options. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled')))
     	 *  @param	string		$moreparam		Add more parameters onto the select tag. For example 'style="width: 95%"' to avoid select2 component to go over parent container
     	 *  @param	string		$htmlid			Html id to use instead of htmlname
    +	 *  @param	bool		$multiple		add [] in the name of element and add 'multiple' attribut
     	 *	@return	 int						<0 if KO, Nb of contact in list if OK
     	 */
    -	function selectcontacts($socid, $selected='', $htmlname='contactid', $showempty=0, $exclude='', $limitto='', $showfunction=0, $moreclass='', $options_only=false, $showsoc=0, $forcecombo=0, $events=array(), $moreparam='', $htmlid='')
    +	function selectcontacts($socid, $selected='', $htmlname='contactid', $showempty=0, $exclude='', $limitto='', $showfunction=0, $moreclass='', $options_only=false, $showsoc=0, $forcecombo=0, $events=array(), $moreparam='', $htmlid='', $multiple=false)
     	{
    -		global $conf,$langs;
    +		global $conf,$langs,$hookmanager,$action;
     
     		$langs->load('companies');
     
     		if (empty($htmlid)) $htmlid = $htmlname;
    -        $out='';
     
    -		// On recherche les societes
    +		if ($selected === '') $selected = array();
    +		else if (!is_array($selected)) $selected = array($selected);
    +		$out='';
    +
    +		if (! is_object($hookmanager))
    +		{
    +			include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
    +			$hookmanager=new HookManager($this->db);
    +		}
    +
    +		// We search third parties
     		$sql = "SELECT sp.rowid, sp.lastname, sp.statut, sp.firstname, sp.poste";
     		if ($showsoc > 0) $sql.= " , s.nom as company";
     		$sql.= " FROM ".MAIN_DB_PREFIX ."socpeople as sp";
    @@ -1364,9 +1451,10 @@ class Form
     				$out .= ajax_combobox($htmlid, $events, $conf->global->CONTACT_USE_SEARCH_TO_SELECT);
     			}
     
    -			if ($htmlname != 'none' && ! $options_only) $out.= '<select class="flat'.($moreclass?' '.$moreclass:'').'" id="'.$htmlid.'" name="'.$htmlname.'" '.(!empty($moreparam) ? $moreparam : '').'>';
    -			if ($showempty == 1 || ($showempty == 3 && $num > 1)) $out.= '<option value="0"'.($selected=='0'?' selected':'').'>&nbsp;</option>';
    -			if ($showempty == 2) $out.= '<option value="0"'.($selected=='0'?' selected':'').'>'.$langs->trans("Internal").'</option>';
    +			if ($htmlname != 'none' && ! $options_only) $out.= '<select class="flat'.($moreclass?' '.$moreclass:'').'" id="'.$htmlid.'" name="'.$htmlname.($multiple ? '[]' : '').'" '.($multiple ? 'multiple' : '').' '.(!empty($moreparam) ? $moreparam : '').'>';
    +			if (($showempty == 1 || ($showempty == 3 && $num > 1)) && !$multiple) $out.= '<option value="0"'.(in_array(0,$selected)?' selected':'').'>&nbsp;</option>';
    +			if ($showempty == 2) $out.= '<option value="0"'.(in_array(0,$selected)?' selected':'').'>'.$langs->trans("Internal").'</option>';
    +
     			$num = $this->db->num_rows($resql);
     			$i = 0;
     			if ($num)
    @@ -1374,7 +1462,6 @@ class Form
     				include_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
     				$contactstatic=new Contact($this->db);
     
    -				if (!is_array($selected)) $selected = array($selected);
     				while ($i < $num)
     				{
     					$obj = $this->db->fetch_object($resql);
    @@ -1424,10 +1511,22 @@ class Form
     			}
     			else
     			{
    -				$out.= '<option value="-1"'.($showempty==2?'':' selected').' disabled>';
    +				$out.= '<option value="-1"'.(($showempty==2 || $multiple) ? '' : ' selected').' disabled>';
     				$out.= ($socid != -1) ? ($langs->trans($socid?"NoContactDefinedForThirdParty":"NoContactDefined")) : $langs->trans('SelectAThirdPartyFirst');
     				$out.= '</option>';
     			}
    +
    +			$parameters = array(
    +				'socid'=>$socid,
    +				'htmlname'=>$htmlname,
    +				'resql'=>$resql,
    +				'out'=>&$out,
    +				'showfunction'=>$showfunction,
    +				'showsoc'=>$showsoc,
    +			);
    +
    +			$reshook = $hookmanager->executeHooks( 'afterSelectContactOptions', $parameters, $this, $action );    // Note that $action and $object may have been modified by some hooks
    +
     			if ($htmlname != 'none' && ! $options_only)
     			{
     				$out.= '</select>';
    @@ -1443,6 +1542,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return select list of users
     	 *
    @@ -1460,9 +1560,11 @@ class Form
     	 */
     	function select_users($selected='',$htmlname='userid',$show_empty=0,$exclude=null,$disabled=0,$include='',$enableonly='',$force_entity='0')
     	{
    +        // phpcs:enable
     		print $this->select_dolusers($selected,$htmlname,$show_empty,$exclude,$disabled,$include,$enableonly,$force_entity);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return select list of users
     	 *
    @@ -1482,16 +1584,21 @@ class Form
     	 *  @param	string	$morecss		More css
     	 *  @param  int     $noactive       Show only active users (this will also happened whatever is this option if USER_HIDE_INACTIVE_IN_COMBOBOX is on).
     	 *  @param  int		$outputmode     0=HTML select string, 1=Array
    +	 *  @param  bool	$multiple       add [] in the name of element and add 'multiple' attribut
     	 * 	@return	string					HTML select string
     	 *  @see select_dolgroups
     	 */
    -	function select_dolusers($selected='', $htmlname='userid', $show_empty=0, $exclude=null, $disabled=0, $include='', $enableonly='', $force_entity='0', $maxlength=0, $showstatus=0, $morefilter='', $show_every=0, $enableonlytext='', $morecss='', $noactive=0, $outputmode=0)
    +	function select_dolusers($selected='', $htmlname='userid', $show_empty=0, $exclude=null, $disabled=0, $include='', $enableonly='', $force_entity='0', $maxlength=0, $showstatus=0, $morefilter='', $show_every=0, $enableonlytext='', $morecss='', $noactive=0, $outputmode=0, $multiple=false)
     	{
    +        // phpcs:enable
     		global $conf,$user,$langs;
     
     		// If no preselected user defined, we take current user
     		if ((is_numeric($selected) && ($selected < -2 || empty($selected))) && empty($conf->global->SOCIETE_DISABLE_DEFAULT_SALESREPRESENTATIVE)) $selected=$user->id;
     
    +		if ($selected === '') $selected = array();
    +		else if (!is_array($selected)) $selected = array($selected);
    +
     		$excludeUsers=null;
     		$includeUsers=null;
     
    @@ -1527,7 +1634,7 @@ class Form
     			else $sql.= " WHERE u.entity IS NOT NULL";
     		}
     		else
    -	   {
    +		{
     			if (! empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE))
     			{
     				$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."usergroup_user as ug";
    @@ -1567,9 +1674,9 @@ class Form
     				$out .= ajax_combobox($htmlname);
     
     				// do not use maxwidthonsmartphone by default. Set it by caller so auto size to 100% will work when not defined
    -				$out.= '<select class="flat'.($morecss?' minwidth100 '.$morecss:' minwidth200').'" id="'.$htmlname.'" name="'.$htmlname.'"'.($disabled?' disabled':'').'>';
    -				if ($show_empty) $out.= '<option value="-1"'.((empty($selected) || $selected==-1)?' selected':'').'>&nbsp;</option>'."\n";
    -				if ($show_every) $out.= '<option value="-2"'.(($selected==-2)?' selected':'').'>-- '.$langs->trans("Everybody").' --</option>'."\n";
    +				$out.= '<select class="flat'.($morecss?' minwidth100 '.$morecss:' minwidth200').'" id="'.$htmlname.'" name="'.$htmlname.($multiple ? '[]' : '').'" '.($multiple ? 'multiple' : '').' '.($disabled?' disabled':'').'>';
    +				if ($show_empty && !$multiple) $out.= '<option value="-1"'.((empty($selected) || in_array(-1,$selected))?' selected':'').'>&nbsp;</option>'."\n";
    +				if ($show_every) $out.= '<option value="-2"'.((in_array(-2,$selected))?' selected':'').'>-- '.$langs->trans("Everybody").' --</option>'."\n";
     
     				$userstatic=new User($this->db);
     
    @@ -1584,7 +1691,7 @@ class Form
     					$disableline='';
     					if (is_array($enableonly) && count($enableonly) && ! in_array($obj->rowid,$enableonly)) $disableline=($enableonlytext?$enableonlytext:'1');
     
    -					if ((is_object($selected) && $selected->id == $obj->rowid) || (! is_object($selected) && $selected == $obj->rowid))
    +					if ((is_object($selected) && $selected->id == $obj->rowid) || (! is_object($selected) && in_array($obj->rowid,$selected) ))
     					{
     						$out.= '<option value="'.$obj->rowid.'"';
     						if ($disableline) $out.= ' disabled';
    @@ -1666,6 +1773,7 @@ class Form
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return select list of users. Selected users are stored into session.
     	 *  List of users are provided into $_SESSION['assignedtouser'].
    @@ -1690,6 +1798,7 @@ class Form
     	 */
     	function select_dolusers_forevent($action='', $htmlname='userid', $show_empty=0, $exclude=null, $disabled=0, $include='', $enableonly='', $force_entity='0', $maxlength=0, $showstatus=0, $morefilter='', $showproperties=0, $listofuserid=array(), $listofcontactid=array(), $listofotherid=array())
     	{
    +        // phpcs:enable
     		global $conf, $user, $langs;
     
     		$userstatic=new User($this->db);
    @@ -1754,6 +1863,7 @@ class Form
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of products for customer in Ajax if Ajax activated or go to select_produits_list
     	 *
    @@ -1781,6 +1891,7 @@ class Form
     	 */
     	function select_produits($selected='', $htmlname='productid', $filtertype='', $limit=20, $price_level=0, $status=1, $finished=2, $selected_input_value='', $hidelabel=0, $ajaxoptions=array(), $socid=0, $showempty='1', $forcecombo=0, $morecss='', $hidepriceinlabel=0, $warehouseStatus='', $selected_combinations = array())
     	{
    +        // phpcs:enable
     		global $langs,$conf;
     
     		$price_level = (! empty($price_level) ? $price_level : 0);
    @@ -1896,6 +2007,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of products for a customer
     	 *
    @@ -1921,6 +2033,7 @@ class Form
     	 */
     	function select_produits_list($selected='',$htmlname='productid',$filtertype='',$limit=20,$price_level=0,$filterkey='',$status=1,$finished=2,$outputmode=0,$socid=0,$showempty='1',$forcecombo=0,$morecss='',$hidepriceinlabel=0, $warehouseStatus='')
     	{
    +        // phpcs:enable
     		global $langs,$conf,$user,$db;
     
     		$out='';
    @@ -1949,6 +2062,17 @@ class Form
     
     		$sql = "SELECT ";
     		$sql.= $selectFields . $selectFieldsGrouped;
    +
    +		if (! empty($conf->global->PRODUCT_SORT_BY_CATEGORY))
    +		{
    +			//Product category
    +			$sql.= ", (SELECT ".MAIN_DB_PREFIX."categorie_product.fk_categorie
    +						FROM ".MAIN_DB_PREFIX."categorie_product
    +						WHERE ".MAIN_DB_PREFIX."categorie_product.fk_product=p.rowid
    +						LIMIT 1
    +				) AS categorie_product_id ";
    +		}
    +
     		//Price by customer
     		if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES) && !empty($socid))
     		{
    @@ -1983,6 +2107,12 @@ class Form
     			$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."entrepot as e on ps.fk_entrepot = e.rowid";
     		}
     
    +		// include search in supplier ref
    +		if(!empty($conf->global->MAIN_SEARCH_PRODUCT_BY_FOURN_REF))
    +		{
    +            $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON p.rowid = pfp.fk_product";
    +		}
    +
     		//Price by customer
     		if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES) && !empty($socid)) {
     			$sql.=" LEFT JOIN  ".MAIN_DB_PREFIX."product_customer_price as pcp ON pcp.fk_soc=".$socid." AND pcp.fk_product=p.rowid";
    @@ -2035,6 +2165,12 @@ class Form
     				if ($i > 0) $sql.=" AND ";
     				$sql.="(p.ref LIKE '".$db->escape($prefix.$crit)."%' OR p.label LIKE '".$db->escape($prefix.$crit)."%'";
     				if (! empty($conf->global->MAIN_MULTILANGS)) $sql.=" OR pl.label LIKE '".$db->escape($prefix.$crit)."%'";
    +				if (!empty($conf->global->PRODUCT_AJAX_SEARCH_ON_DESCRIPTION))
    +				{
    +					$sql.=" OR p.description LIKE '".$db->escape($prefix.$crit)."%'";
    +					if (! empty($conf->global->MAIN_MULTILANGS)) $sql.=" OR pl.description LIKE '".$db->escape($prefix.$crit)."%'";
    +				}
    +				if (! empty($conf->global->MAIN_SEARCH_PRODUCT_BY_FOURN_REF)) $sql.=" OR pfp.ref_fourn LIKE '".$db->escape($prefix.$crit)."%'";
     				$sql.=")";
     				$i++;
     			}
    @@ -2046,7 +2182,19 @@ class Form
     		{
     			$sql.= ' GROUP BY'.$selectFields;
     		}
    -		$sql.= $db->order("p.ref");
    +
    +		//Sort by category
    +		if(! empty($conf->global->PRODUCT_SORT_BY_CATEGORY))
    +		{
    +			$sql .= " ORDER BY categorie_product_id ";
    +			//ASC OR DESC order
    +			($conf->global->PRODUCT_SORT_BY_CATEGORY == 1) ? $sql .="ASC" : $sql .="DESC";
    +		}
    +		else
    +		{
    +			$sql.= $db->order("p.ref");
    +		}
    +
     		$sql.= $db->plimit($limit, 0);
     
     		// Build output string
    @@ -2382,6 +2530,7 @@ class Form
     		$optJson = array('key'=>$outkey, 'value'=>$outref, 'label'=>$outval, 'label2'=>$outlabel, 'desc'=>$outdesc, 'type'=>$outtype, 'price_ht'=>$outprice_ht, 'price_ttc'=>$outprice_ttc, 'pricebasetype'=>$outpricebasetype, 'tva_tx'=>$outtva_tx, 'qty'=>$outqty, 'discount'=>$outdiscount, 'duration_value'=>$outdurationvalue, 'duration_unit'=>$outdurationunit);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of products for customer (in Ajax if Ajax activated or go to select_produits_fournisseurs_list)
     	 *
    @@ -2393,10 +2542,12 @@ class Form
     	 *	@param	array	$ajaxoptions	Options for ajax_autocompleter
     	 *  @param	int		$hidelabel		Hide label (0=no, 1=yes)
     	 *  @param  int     $alsoproductwithnosupplierprice    1=Add also product without supplier prices
    +	 *  @param	string	$morecss		More CSS
     	 *	@return	void
     	 */
    -	function select_produits_fournisseurs($socid, $selected='', $htmlname='productid', $filtertype='', $filtre='', $ajaxoptions=array(), $hidelabel=0, $alsoproductwithnosupplierprice=0)
    +	function select_produits_fournisseurs($socid, $selected='', $htmlname='productid', $filtertype='', $filtre='', $ajaxoptions=array(), $hidelabel=0, $alsoproductwithnosupplierprice=0, $morecss='')
     	{
    +        // phpcs:enable
     		global $langs,$conf;
     		global $price_level, $status, $finished;
     
    @@ -2419,10 +2570,11 @@ class Form
     		}
     		else
     		{
    -			print $this->select_produits_fournisseurs_list($socid,$selected,$htmlname,$filtertype,$filtre,'',-1,0,0,$alsoproductwithnosupplierprice);
    +			print $this->select_produits_fournisseurs_list($socid, $selected, $htmlname, $filtertype, $filtre, '', -1, 0, 0, $alsoproductwithnosupplierprice, $morecss);
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of suppliers products
     	 *
    @@ -2436,10 +2588,12 @@ class Form
     	 *  @param  int		$outputmode     0=HTML select string, 1=Array
     	 *  @param  int     $limit          Limit of line number
     	 *  @param  int     $alsoproductwithnosupplierprice    1=Add also product without supplier prices
    +	 *  @param	string	$morecss		Add more CSS
     	 *  @return array           		Array of keys for json
     	 */
    -	function select_produits_fournisseurs_list($socid,$selected='',$htmlname='productid',$filtertype='',$filtre='',$filterkey='',$statut=-1,$outputmode=0,$limit=100,$alsoproductwithnosupplierprice=0)
    +	function select_produits_fournisseurs_list($socid,$selected='',$htmlname='productid',$filtertype='',$filtre='',$filterkey='',$statut=-1,$outputmode=0,$limit=100,$alsoproductwithnosupplierprice=0,$morecss='')
     	{
    +        // phpcs:enable
     		global $langs,$conf,$db;
     
     		$out='';
    @@ -2492,7 +2646,7 @@ class Form
     			$num = $this->db->num_rows($result);
     
     			//$out.='<select class="flat" id="select'.$htmlname.'" name="'.$htmlname.'">';	// remove select to have id same with combo and ajax
    -			$out.='<select class="flat maxwidthonsmartphone" id="'.$htmlname.'" name="'.$htmlname.'">';
    +			$out.='<select class="flat maxwidthonsmartphone'.($morecss?' '.$morecss:'').'" id="'.$htmlname.'" name="'.$htmlname.'">';
     			if (! $selected) $out.='<option value="0" selected>&nbsp;</option>';
     			else $out.='<option value="0">&nbsp;</option>';
     
    @@ -2652,6 +2806,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of suppliers prices for a product
     	 *
    @@ -2662,6 +2817,7 @@ class Form
     	 */
     	function select_product_fourn_price($productid, $htmlname='productfournpriceid', $selected_supplier='')
     	{
    +        // phpcs:enable
     		global $langs,$conf;
     
     		$langs->load('stocks');
    @@ -2685,7 +2841,7 @@ class Form
     		{
     			$num = $this->db->num_rows($result);
     
    -			$form = '<select class="flat" name="'.$htmlname.'">';
    +			$form = '<select class="flat" id="select_'.$htmlname.'" name="'.$htmlname.'">';
     
     			if (! $num)
     			{
    @@ -2763,6 +2919,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Return list of delivery address
     	 *
    @@ -2774,7 +2931,8 @@ class Form
     	 */
     	function select_address($selected, $socid, $htmlname='address_id',$showempty=0)
     	{
    -		// On recherche les utilisateurs
    +        // phpcs:enable
    +		// looking for users
     		$sql = "SELECT a.rowid, a.label";
     		$sql .= " FROM ".MAIN_DB_PREFIX ."societe_address as a";
     		$sql .= " WHERE a.fk_soc = ".$socid;
    @@ -2784,7 +2942,7 @@ class Form
     		$resql=$this->db->query($sql);
     		if ($resql)
     		{
    -			print '<select class="flat" name="'.$htmlname.'">';
    +			print '<select class="flat" id="select_'.$htmlname.'" name="'.$htmlname.'">';
     			if ($showempty) print '<option value="0">&nbsp;</option>';
     			$num = $this->db->num_rows($resql);
     			$i = 0;
    @@ -2815,6 +2973,7 @@ class Form
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Load into cache list of payment terms
     	 *
    @@ -2822,6 +2981,7 @@ class Form
     	 */
     	function load_cache_conditions_paiements()
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$num = count($this->cache_conditions_paiements);
    @@ -2862,6 +3022,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Charge dans cache la liste des délais de livraison possibles
     	 *
    @@ -2869,6 +3030,7 @@ class Form
     	 */
     	function load_cache_availability()
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$num = count($this->cache_availability);
    @@ -3010,7 +3172,7 @@ class Form
     
     		$this->loadCacheInputReason();
     
    -		print '<select class="flat" name="'.$htmlname.'">';
    +		print '<select class="flat" id="select_'.$htmlname.'" name="'.$htmlname.'">';
     		if ($addempty) print '<option value="0"'.(empty($selected)?' selected':'').'>&nbsp;</option>';
     		foreach($this->cache_demand_reason as $id => $arraydemandreason)
     		{
    @@ -3032,6 +3194,7 @@ class Form
     		if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Charge dans cache la liste des types de paiements possibles
     	 *
    @@ -3039,6 +3202,7 @@ class Form
     	 */
     	function load_cache_types_paiements()
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$num=count($this->cache_types_paiements);
    @@ -3084,6 +3248,7 @@ class Form
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Return list of payment modes.
     	 *      Constant MAIN_DEFAULT_PAYMENT_TERM_ID can used to set default value but scope is all application, probably not what you want.
    @@ -3099,6 +3264,7 @@ class Form
     	 */
     	function select_conditions_paiements($selected=0, $htmlname='condid', $filtertype=-1, $addempty=0, $noinfoadmin=0, $morecss='')
     	{
    +        // phpcs:enable
     		global $langs, $user, $conf;
     
     		dol_syslog(__METHOD__." selected=".$selected.", htmlname=".$htmlname, LOG_DEBUG);
    @@ -3128,6 +3294,7 @@ class Form
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Return list of payment methods
     	 *
    @@ -3144,6 +3311,7 @@ class Form
     	 */
     	function select_types_paiements($selected='', $htmlname='paiementtype', $filtertype='', $format=0, $empty=1, $noadmininfo=0, $maxlength=0, $active=1, $morecss='')
     	{
    +        // phpcs:enable
     		global $langs,$user;
     
     		dol_syslog(__METHOD__." ".$selected.", ".$htmlname.", ".$filtertype.", ".$format, LOG_DEBUG);
    @@ -3169,17 +3337,17 @@ class Form
     			if ($empty && empty($arraytypes['code'])) continue;
     
     			if ($format == 0) print '<option value="'.$id.'"';
    -			if ($format == 1) print '<option value="'.$arraytypes['code'].'"';
    -			if ($format == 2) print '<option value="'.$arraytypes['code'].'"';
    -			if ($format == 3) print '<option value="'.$id.'"';
    +			elseif ($format == 1) print '<option value="'.$arraytypes['code'].'"';
    +			elseif ($format == 2) print '<option value="'.$arraytypes['code'].'"';
    +			elseif ($format == 3) print '<option value="'.$id.'"';
     			// Si selected est text, on compare avec code, sinon avec id
     			if (preg_match('/[a-z]/i', $selected) && $selected == $arraytypes['code']) print ' selected';
     			elseif ($selected == $id) print ' selected';
     			print '>';
     			if ($format == 0) $value=($maxlength?dol_trunc($arraytypes['label'],$maxlength):$arraytypes['label']);
    -			if ($format == 1) $value=$arraytypes['code'];
    -			if ($format == 2) $value=($maxlength?dol_trunc($arraytypes['label'],$maxlength):$arraytypes['label']);
    -			if ($format == 3) $value=$arraytypes['code'];
    +			elseif ($format == 1) $value=$arraytypes['code'];
    +			elseif ($format == 2) $value=($maxlength?dol_trunc($arraytypes['label'],$maxlength):$arraytypes['label']);
    +			elseif ($format == 3) $value=$arraytypes['code'];
     			print $value?$value:'&nbsp;';
     			print '</option>';
     		}
    @@ -3201,7 +3369,7 @@ class Form
     
     		$return='';
     
    -		$return.= '<select class="flat" name="'.$htmlname.'">';
    +		$return.= '<select class="flat" id="select_'.$htmlname.'" name="'.$htmlname.'">';
     		$options = array(
     			'HT'=>$langs->trans("HT"),
     			'TTC'=>$langs->trans("TTC")
    @@ -3324,7 +3492,7 @@ class Form
     		$langs->load('bills');
     
     		$opt = '<option value ="" selected></option>';
    -		$sql = 'SELECT rowid, facnumber, situation_cycle_ref, situation_counter, situation_final, fk_soc FROM ' . MAIN_DB_PREFIX . 'facture WHERE situation_counter>=1';
    +		$sql = 'SELECT rowid, ref, situation_cycle_ref, situation_counter, situation_final, fk_soc FROM ' . MAIN_DB_PREFIX . 'facture WHERE situation_counter>=1';
     		$sql.= ' ORDER by situation_cycle_ref, situation_counter desc';
     		$resql = $this->db->query($sql);
     		if ($resql && $this->db->num_rows($resql) > 0) {
    @@ -3340,11 +3508,11 @@ class Form
     						//not final ?
     			            if ($obj->situation_final != 1) {
     							//Not prov?
    -			                if (substr($obj->facnumber, 1, 4) != 'PROV') {
    +			                if (substr($obj->ref, 1, 4) != 'PROV') {
     			                    if ($selected == $obj->rowid) {
    -			                        $opt .= '<option value="' . $obj->rowid . '" selected>' . $obj->facnumber . '</option>';
    +			                        $opt .= '<option value="' . $obj->rowid . '" selected>' . $obj->ref . '</option>';
     								} else {
    -								    $opt .= '<option value="' . $obj->rowid . '">' . $obj->facnumber . '</option>';
    +								    $opt .= '<option value="' . $obj->rowid . '">' . $obj->ref . '</option>';
     								}
     							}
     						}
    @@ -3409,6 +3577,7 @@ class Form
     		return $return;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return a HTML select list of bank accounts
     	 *
    @@ -3419,13 +3588,15 @@ class Form
     	 *  @param  int		$useempty           1=Add an empty value in list, 2=Add an empty value in list only if there is more than 2 entries.
     	 *  @param  string	$moreattrib         To add more attribute on select
     	 *  @param	int		$showcurrency		Show currency in label
    -	 * 	@return	void
    +	 * 	@return	int							<0 if error, Num of bank account found if OK (0, 1, 2, ...)
     	 */
     	function select_comptes($selected='',$htmlname='accountid',$statut=0,$filtre='',$useempty=0,$moreattrib='',$showcurrency=0)
     	{
    +        // phpcs:enable
     		global $langs, $conf;
     
     		$langs->load("admin");
    +		$num = 0;
     
     		$sql = "SELECT rowid, label, bank, clos as status, currency_code";
     		$sql.= " FROM ".MAIN_DB_PREFIX."bank_account";
    @@ -3469,13 +3640,15 @@ class Form
     			}
     			else
     			{
    -				if ($statut == 0) print $langs->trans("NoActiveBankAccountDefined");
    -				else print $langs->trans("NoBankAccountFound");
    +				if ($statut == 0) print '<span class="opacitymedium">'.$langs->trans("NoActiveBankAccountDefined").'</span>';
    +				else print '<span class="opacitymedium">'.$langs->trans("NoBankAccountFound").'</span>';
     			}
     		}
     		else {
     			dol_print_error($this->db);
     		}
    +
    +		return $num;
     	}
     
     	/**
    @@ -3494,8 +3667,8 @@ class Form
     			print '<form method="POST" action="'.$page.'">';
     			print '<input type="hidden" name="action" value="setbankaccount">';
     			print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -			$this->select_comptes($selected, $htmlname, 0, '', $addempty);
    -			print '<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    +			$nbaccountfound = $this->select_comptes($selected, $htmlname, 0, '', $addempty);
    +			if ($nbaccountfound > 0) print '<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
     			print '</form>';
     		} else {
     
    @@ -3512,6 +3685,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Return list of categories having choosed type
     	 *
    @@ -3526,6 +3700,7 @@ class Form
     	 */
     	function select_all_categories($type, $selected='', $htmlname="parent", $maxlength=64, $excludeafterid=0, $outputmode=0)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     		$langs->load("categories");
     
    @@ -3597,6 +3772,7 @@ class Form
     		return $output;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *     Show a confirmation HTML form or AJAX popup
     	 *
    @@ -3615,6 +3791,8 @@ class Form
     	 */
     	function form_confirm($page, $title, $question, $action, $formquestion='', $selectedchoice="", $useajax=0, $height=170, $width=500)
     	{
    +        // phpcs:enable
    +        dol_syslog(__METHOD__ . ': using form_confirm is deprecated. Use formconfim instead.', LOG_WARNING);
     		print $this->formconfirm($page, $title, $question, $action, $formquestion, $selectedchoice, $useajax, $height, $width);
     	}
     
    @@ -3672,7 +3850,7 @@ class Form
     
     			// Now add questions
     			$more.='<table class="paddingtopbottomonly" width="100%">'."\n";
    -			$more.='<tr><td colspan="3">'.(! empty($formquestion['text'])?$formquestion['text']:'').'</td></tr>'."\n";
    +			if (! empty($formquestion['text'])) $more.='<tr><td colspan="2">'.$formquestion['text'].'</td></tr>'."\n";
     			foreach ($formquestion as $key => $input)
     			{
     				if (is_array($input) && ! empty($input))
    @@ -3683,53 +3861,51 @@ class Form
     
     					if ($input['type'] == 'text')
     					{
    -						$more.='<tr><td>'.$input['label'].'</td><td colspan="2" align="left"><input type="text" class="flat'.$morecss.'" id="'.$input['name'].'" name="'.$input['name'].'"'.$size.' value="'.$input['value'].'"'.$moreattr.' /></td></tr>'."\n";
    +						$more.='<tr><td'.(empty($input['tdclass'])?'':(' class="'.$input['tdclass'].'"')).'>'.$input['label'].'</td><td class="left"><input type="text" class="flat'.$morecss.'" id="'.$input['name'].'" name="'.$input['name'].'"'.$size.' value="'.$input['value'].'"'.$moreattr.' /></td></tr>'."\n";
     					}
    -					else if ($input['type'] == 'password')
    +					elseif ($input['type'] == 'password')
     					{
    -						$more.='<tr><td>'.$input['label'].'</td><td colspan="2" align="left"><input type="password" class="flat'.$morecss.'" id="'.$input['name'].'" name="'.$input['name'].'"'.$size.' value="'.$input['value'].'"'.$moreattr.' /></td></tr>'."\n";
    +						$more.='<tr><td'.(empty($input['tdclass'])?'':(' class="'.$input['tdclass'].'"')).'>'.$input['label'].'</td><td class="left"><input type="password" class="flat'.$morecss.'" id="'.$input['name'].'" name="'.$input['name'].'"'.$size.' value="'.$input['value'].'"'.$moreattr.' /></td></tr>'."\n";
     					}
    -					else if ($input['type'] == 'select')
    +					elseif ($input['type'] == 'select')
     					{
    -						$more.='<tr><td>';
    -						if (! empty($input['label'])) $more.=$input['label'].'</td><td valign="top" colspan="2" align="left">';
    +						$more.='<tr><td'.(empty($input['tdclass'])?'':(' class="'.$input['tdclass'].'"')).'>';
    +						if (! empty($input['label'])) $more.=$input['label'].'</td><td class="tdtop" align="left">';
     						$more.=$this->selectarray($input['name'],$input['values'],$input['default'],1,0,0,$moreattr,0,0,0,'',$morecss);
     						$more.='</td></tr>'."\n";
     					}
    -					else if ($input['type'] == 'checkbox')
    +					elseif ($input['type'] == 'checkbox')
     					{
     						$more.='<tr>';
    -						$more.='<td>'.$input['label'].' </td><td align="left">';
    +						$more.='<td'.(empty($input['tdclass'])?'':(' class="'.$input['tdclass'].'"')).'>'.$input['label'].' </td><td class="left">';
     						$more.='<input type="checkbox" class="flat'.$morecss.'" id="'.$input['name'].'" name="'.$input['name'].'"'.$moreattr;
     						if (! is_bool($input['value']) && $input['value'] != 'false' && $input['value'] != '0') $more.=' checked';
     						if (is_bool($input['value']) && $input['value']) $more.=' checked';
     						if (isset($input['disabled'])) $more.=' disabled';
     						$more.=' /></td>';
    -						$more.='<td align="left">&nbsp;</td>';
     						$more.='</tr>'."\n";
     					}
    -					else if ($input['type'] == 'radio')
    +					elseif ($input['type'] == 'radio')
     					{
     						$i=0;
     						foreach($input['values'] as $selkey => $selval)
     						{
     							$more.='<tr>';
    -							if ($i==0) $more.='<td class="tdtop">'.$input['label'].'</td>';
    -							else $more.='<td>&nbsp;</td>';
    -							$more.='<td width="20"><input type="radio" class="flat'.$morecss.'" id="'.$input['name'].'" name="'.$input['name'].'" value="'.$selkey.'"'.$moreattr;
    +							if ($i==0) $more.='<td'.(empty($input['tdclass'])?' class="tdtop"':(' class="tdtop '.$input['tdclass'].'"')).'>'.$input['label'].'</td>';
    +							else $more.='<td'.(empty($input['tdclass'])?'':(' class="'.$input['tdclass'].'"')).'>&nbsp;</td>';
    +							$more.='<td><input type="radio" class="flat'.$morecss.'" id="'.$input['name'].'" name="'.$input['name'].'" value="'.$selkey.'"'.$moreattr;
     							if ($input['disabled']) $more.=' disabled';
    -							$more.=' /></td>';
    -							$more.='<td align="left">';
    +							$more.=' /> ';
     							$more.=$selval;
     							$more.='</td></tr>'."\n";
     							$i++;
     						}
     					}
    -					else if ($input['type'] == 'date')
    +					elseif ($input['type'] == 'date')
     					{
    -						$more.='<tr><td>'.$input['label'].'</td>';
    -						$more.='<td colspan="2" align="left">';
    -						$more.=$this->select_date($input['value'],$input['name'],0,0,0,'',1,0,1);
    +						$more.='<tr><td'.(empty($input['tdclass'])?'':(' class="'.$input['tdclass'].'"')).'>'.$input['label'].'</td>';
    +						$more.='<td class="left">';
    +						$more.=$this->selectDate($input['value'],$input['name'],0,0,0,'',1,0);
     						$more.='</td></tr>'."\n";
     						$formquestion[] = array('name'=>$input['name'].'day');
     						$formquestion[] = array('name'=>$input['name'].'month');
    @@ -3737,17 +3913,17 @@ class Form
     						$formquestion[] = array('name'=>$input['name'].'hour');
     						$formquestion[] = array('name'=>$input['name'].'min');
     					}
    -					else if ($input['type'] == 'other')
    +					elseif ($input['type'] == 'other')
     					{
    -						$more.='<tr><td>';
    -						if (! empty($input['label'])) $more.=$input['label'].'</td><td colspan="2" align="left">';
    +						$more.='<tr><td'.(empty($input['tdclass'])?'':(' class="'.$input['tdclass'].'"')).'>';
    +						if (! empty($input['label'])) $more.=$input['label'].'</td><td class="left">';
     						$more.=$input['value'];
     						$more.='</td></tr>'."\n";
     					}
     
    -					else if ($input['type'] == 'onecolumn')
    +					elseif ($input['type'] == 'onecolumn')
     					{
    -						$more.='<tr><td colspan="3" align="left">';
    +						$more.='<tr><td colspan="2" class="left">';
     						$more.=$input['value'];
     						$more.='</td></tr>'."\n";
     					}
    @@ -3794,21 +3970,21 @@ class Form
     			$formconfirm.= ($question ? '<div class="confirmmessage">'.img_help('','').' '.$question . '</div>': '');
     			$formconfirm.= '</div>'."\n";
     
    -			$formconfirm.= "\n<!-- begin ajax form_confirm page=".$page." -->\n";
    +			$formconfirm.= "\n<!-- begin ajax formconfirm page=".$page." -->\n";
     			$formconfirm.= '<script type="text/javascript">'."\n";
     			$formconfirm.= 'jQuery(document).ready(function() {
                 $(function() {
                 	$( "#'.$dialogconfirm.'" ).dialog(
                 	{
                         autoOpen: '.($autoOpen ? "true" : "false").',';
    -					if ($newselectedchoice == 'no')
    -					{
    -						$formconfirm.='
    +			if ($newselectedchoice == 'no')
    +			{
    +				$formconfirm.='
     						open: function() {
                 				$(this).parent().find("button.ui-button:eq(2)").focus();
     						},';
    -					}
    -					$formconfirm.='
    +			}
    +			$formconfirm.='
                         resizable: false,
                         height: "'.$height.'",
                         width: "'.$width.'",
    @@ -3816,7 +3992,7 @@ class Form
                         closeOnEscape: false,
                         buttons: {
                             "'.dol_escape_js($langs->transnoentities("Yes")).'": function() {
    -                        	var options="";
    +                        	var options = "&token='.urlencode($_SESSION['newtoken']).'";
                             	var inputok = '.json_encode($inputok).';
                              	var pageyes = "'.dol_escape_js(! empty($pageyes)?$pageyes:'').'";
                              	if (inputok.length>0) {
    @@ -3835,7 +4011,7 @@ class Form
                                 $(this).dialog("close");
                             },
                             "'.dol_escape_js($langs->transnoentities("No")).'": function() {
    -                        	var options = "";
    +                        	var options = "&token='.urlencode($_SESSION['newtoken']).'";
                              	var inputko = '.json_encode($inputko).';
                              	var pageno="'.dol_escape_js(! empty($pageno)?$pageno:'').'";
                              	if (inputko.length>0) {
    @@ -3865,16 +4041,16 @@ class Form
                 });
                 });
                 </script>';
    -			$formconfirm.= "<!-- end ajax form_confirm -->\n";
    +			$formconfirm.= "<!-- end ajax formconfirm -->\n";
     		}
     		else
     		{
    -			$formconfirm.= "\n<!-- begin form_confirm page=".$page." -->\n";
    +			$formconfirm.= "\n<!-- begin formconfirm page=".$page." -->\n";
     
     			if (empty($disableformtag)) $formconfirm.= '<form method="POST" action="'.$page.'" class="notoptoleftroright">'."\n";
     
     			$formconfirm.= '<input type="hidden" name="action" value="'.$action.'">'."\n";
    -			if (empty($disableformtag)) $formconfirm.= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'."\n";
    +			$formconfirm.= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'."\n";
     
     			$formconfirm.= '<table width="100%" class="valid">'."\n";
     
    @@ -3903,13 +4079,14 @@ class Form
     			if (empty($disableformtag)) $formconfirm.= "</form>\n";
     			$formconfirm.= '<br>';
     
    -			$formconfirm.= "<!-- end form_confirm -->\n";
    +			$formconfirm.= "<!-- end formconfirm -->\n";
     		}
     
     		return $formconfirm;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Show a form to select a project
     	 *
    @@ -3925,6 +4102,7 @@ class Form
     	 */
     	function form_project($page, $socid, $selected='', $htmlname='projectid', $discard_closed=0, $maxlength=20, $forcefocus=0, $nooutput=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
    @@ -3968,6 +4146,7 @@ class Form
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show a form to select payment conditions
     	 *
    @@ -3979,6 +4158,7 @@ class Form
     	 */
     	function form_conditions_reglement($page, $selected='', $htmlname='cond_reglement_id', $addempty=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		if ($htmlname != "none")
     		{
    @@ -4001,6 +4181,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Show a form to select a delivery delay
     	 *
    @@ -4012,6 +4193,7 @@ class Form
     	 */
     	function form_availability($page, $selected='', $htmlname='availability', $addempty=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		if ($htmlname != "none")
     		{
    @@ -4075,6 +4257,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Show a form + html select a date
     	 *
    @@ -4085,10 +4268,11 @@ class Form
     	 *    @param    int			$displaymin		Display minutes selector
     	 *    @param	int			$nooutput		1=No print output, return string
     	 *    @return	string
    -	 *    @see		select_date
    +	 *    @see		selectDate
     	 */
     	function form_date($page, $selected, $htmlname, $displayhour=0, $displaymin=0, $nooutput=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$ret='';
    @@ -4100,9 +4284,9 @@ class Form
     			$ret.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     			$ret.='<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
     			$ret.='<tr><td>';
    -			$ret.=$this->select_date($selected,$htmlname,$displayhour,$displaymin,1,'form'.$htmlname,1,0,1);
    +			$ret.=$this->selectDate($selected,$htmlname,$displayhour,$displaymin,1,'form'.$htmlname,1,0);
     			$ret.='</td>';
    -			$ret.='<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
    +			$ret.='<td class="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
     			$ret.='</tr></table></form>';
     		}
     		else
    @@ -4116,6 +4300,7 @@ class Form
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Show a select form to choose a user
     	 *
    @@ -4128,6 +4313,7 @@ class Form
     	 */
     	function form_users($page, $selected='', $htmlname='userid', $exclude='', $include='')
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($htmlname != "none")
    @@ -4154,6 +4340,7 @@ class Form
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Show form with payment mode
     	 *
    @@ -4162,17 +4349,19 @@ class Form
     	 *    @param    string	$htmlname    	Name of select html field
     	 *    @param  	string	$filtertype		To filter on field type in llx_c_paiement (array('code'=>xx,'label'=>zz))
     	 *    @param    int     $active         Active or not, -1 = all
    +	 *    @param   int     $addempty       1=Add empty entry
     	 *    @return	void
     	 */
    -	function form_modes_reglement($page, $selected='', $htmlname='mode_reglement_id', $filtertype='', $active=1)
    +	function form_modes_reglement($page, $selected='', $htmlname='mode_reglement_id', $filtertype='', $active=1, $addempty=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		if ($htmlname != "none")
     		{
     			print '<form method="POST" action="'.$page.'">';
     			print '<input type="hidden" name="action" value="setmode">';
     			print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -			$this->select_types_paiements($selected,$htmlname,$filtertype,0,0,0,0,$active);
    +			$this->select_types_paiements($selected, $htmlname, $filtertype, 0, $addempty, 0, 0, $active);
     			print '<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
     			print '</form>';
     		}
    @@ -4188,6 +4377,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Show form with multicurrency code
     	 *
    @@ -4198,6 +4388,7 @@ class Form
     	 */
     	function form_multicurrency_code($page, $selected='', $htmlname='multicurrency_code')
     	{
    +        // phpcs:enable
     		global $langs;
     		if ($htmlname != "none")
     		{
    @@ -4215,6 +4406,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Show form with multicurrency rate
     	 *
    @@ -4226,6 +4418,7 @@ class Form
     	 */
     	function form_multicurrency_rate($page, $rate='', $htmlname='multicurrency_tx', $currency='')
     	{
    +        // phpcs:enable
     		global $langs, $mysoc, $conf;
     
     		if ($htmlname != "none")
    @@ -4256,6 +4449,7 @@ class Form
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show a select box with available absolute discounts
     	 *
    @@ -4273,6 +4467,7 @@ class Form
     	 */
     	function form_remise_dispo($page, $selected, $htmlname, $socid, $amount, $filter='', $maxvalue=0, $more='', $hidelist=0, $discount_type=0)
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     		if ($htmlname != "none")
     		{
    @@ -4351,6 +4546,7 @@ class Form
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Show forms to select a contact
     	 *
    @@ -4362,6 +4558,7 @@ class Form
     	 */
     	function form_contacts($page, $societe, $selected='', $htmlname='contactid')
     	{
    +        // phpcs:enable
     		global $langs, $conf;
     
     		if ($htmlname != "none")
    @@ -4378,7 +4575,7 @@ class Form
     				print '<a href="'.DOL_URL_ROOT.'/contact/card.php?socid='.$societe->id.'&amp;action=create&amp;backtoreferer=1">'.$addcontact.'</a>';
     			}
     			print '</td>';
    -			print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
    +			print '<td class="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
     			print '</tr></table></form>';
     		}
     		else
    @@ -4395,6 +4592,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Output html select to select thirdparty
     	 *
    @@ -4406,20 +4604,23 @@ class Form
     	 * 	@param	int		$showtype		Show third party type in combolist (customer, prospect or supplier)
     	 * 	@param	int		$forcecombo		Force to use combo box
     	 *  @param	array	$events			Event options. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled')))
    +	 *  @param  int     $nooutput       No print output. Return it only.
     	 *  @return	void
     	 */
    -	function form_thirdparty($page, $selected='', $htmlname='socid', $filter='',$showempty=0, $showtype=0, $forcecombo=0, $events=array())
    +	function form_thirdparty($page, $selected='', $htmlname='socid', $filter='',$showempty=0, $showtype=0, $forcecombo=0, $events=array(), $nooutput=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
    +		$out = '';
     		if ($htmlname != "none")
     		{
    -			print '<form method="post" action="'.$page.'">';
    -			print '<input type="hidden" name="action" value="set_thirdparty">';
    -			print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -			print $this->select_company($selected, $htmlname, $filter, $showempty, $showtype, $forcecombo, $events);
    -			print '<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    -			print '</form>';
    +			$out.='<form method="post" action="'.$page.'">';
    +			$out.= '<input type="hidden" name="action" value="set_thirdparty">';
    +			$out.= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +			$out.= $this->select_company($selected, $htmlname, $filter, $showempty, $showtype, $forcecombo, $events);
    +			$out.= '<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    +			$out.= '</form>';
     		}
     		else
     		{
    @@ -4428,24 +4629,30 @@ class Form
     				require_once DOL_DOCUMENT_ROOT .'/societe/class/societe.class.php';
     				$soc = new Societe($this->db);
     				$soc->fetch($selected);
    -				print $soc->getNomUrl($langs);
    +				$out.= $soc->getNomUrl($langs);
     			}
     			else
     			{
    -				print "&nbsp;";
    +				$out.= "&nbsp;";
     			}
     		}
    +
    +		if ($nooutput) return $out;
    +		else print $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Retourne la liste des devises, dans la langue de l'utilisateur
     	 *
     	 *    @param	string	$selected    preselected currency code
     	 *    @param    string	$htmlname    name of HTML select list
    +     *    @deprecated
     	 *    @return	void
     	 */
     	function select_currency($selected='',$htmlname='currency_id')
     	{
    +        // phpcs:enable
     		print $this->selectCurrency($selected,$htmlname);
     	}
     
    @@ -4537,7 +4744,6 @@ class Form
     					$out.= '</option>';
     				}
     			}
    -
     		}
     
     		$out.= '</select>';
    @@ -4548,6 +4754,7 @@ class Form
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Load into the cache vat rates of a country
     	 *
    @@ -4556,6 +4763,7 @@ class Form
     	 */
     	function load_cache_vatrates($country_code)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$num = count($this->cache_vatrates);
    @@ -4613,6 +4821,7 @@ class Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Output an HTML select vat rate.
     	 *  The name of this function should be selectVat. We keep bad name for compatibility purpose.
    @@ -4636,6 +4845,7 @@ class Form
     	 */
     	function load_tva($htmlname='tauxtva', $selectedrate='', $societe_vendeuse='', $societe_acheteuse='', $idprod=0, $info_bits=0, $type='', $options_only=false, $mode=0)
     	{
    +        // phpcs:enable
     		global $langs,$conf,$mysoc;
     
     		$langs->load('errors');
    @@ -4741,8 +4951,12 @@ class Form
     			$disabled=false; $title='';
     			if (is_object($societe_vendeuse) && $societe_vendeuse->id == $mysoc->id && $societe_vendeuse->tva_assuj == "0")
     			{
    -				$title=' title="'.$langs->trans('VATIsNotUsed').'"';
    -				$disabled=true;
    +				// Override/enable VAT for expense report regardless of global setting - needed if expense report used for business expenses
    +				if (empty($conf->global->OVERRIDE_VAT_FOR_EXPENSE_REPORT))
    +				{
    +					$title=' title="'.$langs->trans('VATIsNotUsed').'"';
    +					$disabled=true;
    +				}
     			}
     
     			if (! $options_only) $return.= '<select class="flat minwidth75imp" id="'.$htmlname.'" name="'.$htmlname.'"'.($disabled?' disabled':'').$title.'>';
    @@ -4804,8 +5018,9 @@ class Form
     	}
     
     
    -	/**
    -	 *	Show a HTML widget to input a date or combo list for day, month, years and optionaly hours and minutes.
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Show a HTML widget to input a date or combo list for day, month, years and optionaly hours and minutes.
     	 *  Fields are preselected with :
     	 *            	- set_time date (must be a local PHP server timestamp or string date with format 'YYYY-MM-DD' or 'YYYY-MM-DD HH:MM')
     	 *            	- local date in user area, if set_time is '' (so if set_time is '', output may differs when done from two different location)
    @@ -4824,18 +5039,52 @@ class Form
     	 *  @param  int			$fullday        When a checkbox with this html name is on, hour and day are set with 00:00 or 23:59
     	 *  @param	string		$addplusone		Add a link "+1 hour". Value must be name of another select_date field.
     	 *  @param  datetime    $adddateof      Add a link "Date of invoice" using the following date.
    -	 * 	@return	string|null						Nothing or string if nooutput is 1
    -	 *  @see	form_date, select_month, select_year, select_dayofweek
    +	 *  @return	string|void					Nothing or string if nooutput is 1
    +     *  @deprecated
    +	 *  @see    form_date, select_month, select_year, select_dayofweek
     	 */
    -	function select_date($set_time='', $prefix='re', $h=0, $m=0, $empty=0, $form_name="", $d=1, $addnowlink=0, $nooutput=0, $disabled=0, $fullday='', $addplusone='', $adddateof='')
    +    function select_date($set_time='', $prefix='re', $h=0, $m=0, $empty=0, $form_name="", $d=1, $addnowlink=0, $nooutput=0, $disabled=0, $fullday='', $addplusone='', $adddateof='')
    +    {
    +        // phpcs:enable
    +        $retstring = $this->selectDate($set_time, $prefix, $h, $m, $empty, $form_name, $d, $addnowlink, $disabled, $fullday, $addplusone, $adddateof);
    +        if (! empty($nooutput)) {
    +            return $retstring;
    +        }
    +        print $retstring;
    +        return;
    +    }
    +
    +    /**
    +     *  Show a HTML widget to input a date or combo list for day, month, years and optionaly hours and minutes.
    +	 *  Fields are preselected with :
    +	 *              - set_time date (must be a local PHP server timestamp or string date with format 'YYYY-MM-DD' or 'YYYY-MM-DD HH:MM')
    +	 *              - local date in user area, if set_time is '' (so if set_time is '', output may differs when done from two different location)
    +	 *              - Empty (fields empty), if set_time is -1 (in this case, parameter empty must also have value 1)
    +	 *
    +	 *  @param  timestamp   $set_time       Pre-selected date (must be a local PHP server timestamp), -1 to keep date not preselected, '' to use current date with 00:00 hour (Parameter 'empty' must be 0 or 2).
    +	 *  @param	string		$prefix			Prefix for fields name
    +	 *  @param	int			$h				1 or 2=Show also hours (2=hours on a new line), -1 has same effect but hour and minutes are prefilled with 23:59 if date is empty, 3 show hour always empty
    +	 *	@param	int			$m				1=Show also minutes, -1 has same effect but hour and minutes are prefilled with 23:59 if date is empty, 3 show minutes always empty
    +	 *	@param	int			$empty			0=Fields required, 1=Empty inputs are allowed, 2=Empty inputs are allowed for hours only
    +	 *	@param	string		$form_name 		Not used
    +	 *	@param	int			$d				1=Show days, month, years
    +	 * 	@param	int			$addnowlink		Add a link "Now"
    +	 * 	@param 	int			$disabled		Disable input fields
    +	 *  @param  int			$fullday        When a checkbox with this html name is on, hour and day are set with 00:00 or 23:59
    +	 *  @param	string		$addplusone		Add a link "+1 hour". Value must be name of another selectDate field.
    +	 *  @param  datetime    $adddateof      Add a link "Date of invoice" using the following date.
    +	 * 	@return string                      Html for selectDate
    +	 *  @see    form_date, select_month, select_year, select_dayofweek
    +	 */
    +	function selectDate($set_time='', $prefix='re', $h=0, $m=0, $empty=0, $form_name="", $d=1, $addnowlink=0, $disabled=0, $fullday='', $addplusone='', $adddateof='')
     	{
     		global $conf,$langs;
     
     		$retstring='';
     
    -		if($prefix=='') $prefix='re';
    -		if($h == '') $h=0;
    -		if($m == '') $m=0;
    +		if ($prefix=='') $prefix='re';
    +		if ($h == '') $h=0;
    +		if ($m == '') $m=0;
     		$emptydate=0;
     		$emptyhours=0;
     		if ($empty == 1) { $emptydate=1; $emptyhours=1; }
    @@ -4895,7 +5144,6 @@ class Form
     		if (! empty($conf->use_javascript_ajax) && (empty($conf->global->MAIN_POPUP_CALENDAR) || $conf->global->MAIN_POPUP_CALENDAR != "none")) {
     			$usecalendar = ((empty($conf->global->MAIN_POPUP_CALENDAR) || $conf->global->MAIN_POPUP_CALENDAR == 'eldy')?'jquery':$conf->global->MAIN_POPUP_CALENDAR);
     		}
    -		//if (! empty($conf->browser->phone)) $usecalendar='combo';
     
     		if ($d)
     		{
    @@ -5174,12 +5422,10 @@ class Form
     			$retstring.=' - <button class="dpInvisibleButtons datenowlink" id="dateofinvoice" type="button" name="_dateofinvoice" value="now" onclick="jQuery(\'#re\').val(\''.dol_print_date($adddateof,'day').'\');jQuery(\'#reday\').val(\''.$tmparray['mday'].'\');jQuery(\'#remonth\').val(\''.$tmparray['mon'].'\');jQuery(\'#reyear\').val(\''.$tmparray['year'].'\');">'.$langs->trans("DateInvoice").'</a>';
     		}
     
    -		if (! empty($nooutput)) return $retstring;
    -
    -		print $retstring;
    -		return;
    +		return $retstring;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to show a form to select a duration on a page
     	 *
    @@ -5191,10 +5437,11 @@ class Form
     	 *						            if 'textselect' input hour is in text and input min is a combo
     	 *  @param	integer	$minunderhours	If 1, show minutes selection under the hours
     	 * 	@param	int	$nooutput		    Do not output html string but return it
    -	 *  @return	string|null
    +	 *  @return	string|void
     	 */
     	function select_duration($prefix, $iSecond='', $disabled=0, $typehour='select', $minunderhours=0, $nooutput=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$retstring='';
    @@ -5212,7 +5459,7 @@ class Form
     
     		if ($typehour=='select' )
     		{
    -			$retstring.='<select class="flat" name="'.$prefix.'hour"'.($disabled?' disabled':'').'>';
    +			$retstring.='<select class="flat" id="select_'.$prefix.'hour" name="'.$prefix.'hour"'.($disabled?' disabled':'').'>';
     			for ($hour = 0; $hour < 25; $hour++)	// For a duration, we allow 24 hours
     			{
     				$retstring.='<option value="'.$hour.'"';
    @@ -5239,7 +5486,7 @@ class Form
     
     		if ($typehour=='select' || $typehour=='textselect')
     		{
    -			$retstring.='<select class="flat" name="'.$prefix.'min"'.($disabled?' disabled':'').'>';
    +			$retstring.='<select class="flat" id="select_'.$prefix.'min" name="'.$prefix.'min"'.($disabled?' disabled':'').'>';
     			for ($min = 0; $min <= 55; $min=$min+5)
     			{
     				$retstring.='<option value="'.$min.'"';
    @@ -5485,7 +5732,7 @@ class Form
     	 *  @param  int             $disablebademail	Check if an email is found into value and if not disable and colorize entry
     	 *  @param  int             $nohtmlescape		No html escaping.
     	 * 	@return	string								HTML select string.
    -	 *  @see multiselectarray
    +	 *  @see multiselectarray, selectArrayAjax, selectArrayFilter
     	 */
     	static function selectarray($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $moreparam='', $translate=0, $maxlen=0, $disabled=0, $sort='', $morecss='', $addjscombo=0, $moreparamonempty='',$disablebademail=0, $nohtmlescape=0)
     	{
    @@ -5593,7 +5840,7 @@ class Form
     	 *  @param	string	$morecss				Add more class to css styles
     	 *  @param  int     $callurlonselect        If set to 1, some code is added so an url return by the ajax is called when value is selected.
     	 *  @param  string  $placeholder            String to use as placeholder
    -	 *  @param  integer $acceptdelayedhtml      1 if caller request to have html js content not returned but saved into global $delayedhtmlcontent (so caller can show it at end of page to avoid flash FOUC effect)
    +	 *  @param  integer $acceptdelayedhtml      1 = caller is requesting to have html js content not returned but saved into global $delayedhtmlcontent (so caller can show it at end of page to avoid flash FOUC effect)
     	 * 	@return	string   						HTML select string
     	 *  @see selectArrayFilter, ajax_combobox in ajax.lib.php
     	 */
    @@ -5695,7 +5942,7 @@ class Form
     	 *  @param	string	$morecss				Add more class to css styles
     	 *  @param  int     $callurlonselect        If set to 1, some code is added so an url return by the ajax is called when value is selected.
     	 *  @param  string  $placeholder            String to use as placeholder
    -	 *  @param  integer $acceptdelayedhtml      1 if caller request to have html js content not returned but saved into global $delayedhtmlcontent (so caller can show it at end of page to avoid flash FOUC effect)
    +	 *  @param  integer $acceptdelayedhtml      1 = caller is requesting to have html js content not returned but saved into global $delayedhtmlcontent (so caller can show it at end of page to avoid flash FOUC effect)
     	 * 	@return	string   						HTML select string
     	 *  @see selectArrayAjax, ajax_combobox in ajax.lib.php
     	 */
    @@ -5815,9 +6062,9 @@ class Form
     	 *  @param	string	$placeholder	String to use as placeholder
     	 *  @param	int		$addjscombo		Add js combo
     	 *	@return	string					HTML multiselect string
    -	 *  @see selectarray
    +	 *  @see selectarray, selectArrayAjax, selectArrayFilter
     	 */
    -	static function multiselectarray($htmlname, $array, $selected=array(), $key_in_label=0, $value_as_key=0, $morecss='', $translate=0, $width=0, $moreattrib='',$elemtype='', $placeholder='', $addjscombo=-1)
    +	static function multiselectarray($htmlname, $array, $selected=array(), $key_in_label=0, $value_as_key=0, $morecss='', $translate=0, $width=0, $moreattrib='', $elemtype='', $placeholder='', $addjscombo=-1)
     	{
     		global $conf, $langs;
     
    @@ -5831,46 +6078,61 @@ class Form
     		// Add code for jquery to use multiselect
     		if (! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) || defined('REQUIRE_JQUERY_MULTISELECT'))
     		{
    -			$tmpplugin=empty($conf->global->MAIN_USE_JQUERY_MULTISELECT)?constant('REQUIRE_JQUERY_MULTISELECT'):$conf->global->MAIN_USE_JQUERY_MULTISELECT;
    -   			$out.="\n".'<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
    -    			<script type="text/javascript">'."\n";
    +			$out.="\n".'<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
    +						<script type="text/javascript">'."\n";
     			if ($addjscombo == 1)
     			{
    -	    	$out.= '	function formatResult(record) {'."\n";
    -						if ($elemtype == 'category')
    -						{
    -							$out.='	//return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> <a href="'.DOL_URL_ROOT.'/categories/viewcat.php?type=0&id=\'+record.id+\'">\'+record.text+\'</a></span>\';
    -								  	return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> \'+record.text+\'</span>\';';
    -						}
    -						else
    -						{
    -							$out.='return record.text;';
    -						}
    -			$out.= '	};
    -    				function formatSelection(record) {'."\n";
    -						if ($elemtype == 'category')
    -						{
    -							$out.='	//return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> <a href="'.DOL_URL_ROOT.'/categories/viewcat.php?type=0&id=\'+record.id+\'">\'+record.text+\'</a></span>\';
    -								  	return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> \'+record.text+\'</span>\';';
    -						}
    -						else
    -						{
    -							$out.='return record.text;';
    -						}
    -			$out.= '	};
    -	    			$(document).ready(function () {
    -    					$(\'#'.$htmlname.'\').'.$tmpplugin.'({
    -    						dir: \'ltr\',
    -							// Specify format function for dropdown item
    -							formatResult: formatResult,
    -    					 	templateResult: formatResult,		/* For 4.0 */
    -							// Specify format function for selected item
    -							formatSelection: formatSelection,
    -    					 	templateResult: formatSelection		/* For 4.0 */
    -    					});
    -    				});';
    +				$tmpplugin=empty($conf->global->MAIN_USE_JQUERY_MULTISELECT)?constant('REQUIRE_JQUERY_MULTISELECT'):$conf->global->MAIN_USE_JQUERY_MULTISELECT;
    +				$out.=	'function formatResult(record) {'."\n";
    +				if ($elemtype == 'category')
    +				{
    +					$out.='	//return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> <a href="'.DOL_URL_ROOT.'/categories/viewcat.php?type=0&id=\'+record.id+\'">\'+record.text+\'</a></span>\';
    +									  	return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> \'+record.text+\'</span>\';';
    +				}
    +				else
    +				{
    +					$out.='return record.text;';
    +				}
    +				$out.=	'};'."\n";
    +				$out.=	'function formatSelection(record) {'."\n";
    +				if ($elemtype == 'category')
    +				{
    +					$out.='	//return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> <a href="'.DOL_URL_ROOT.'/categories/viewcat.php?type=0&id=\'+record.id+\'">\'+record.text+\'</a></span>\';
    +									  	return \'<span><img src="'.DOL_URL_ROOT.'/theme/eldy/img/object_category.png'.'"> \'+record.text+\'</span>\';';
    +				}
    +				else
    +				{
    +					$out.='return record.text;';
    +				}
    +				$out.=	'};'."\n";
    +				$out.=	'$(document).ready(function () {
    +							$(\'#'.$htmlname.'\').'.$tmpplugin.'({
    +								dir: \'ltr\',
    +								// Specify format function for dropdown item
    +								formatResult: formatResult,
    +							 	templateResult: formatResult,		/* For 4.0 */
    +								// Specify format function for selected item
    +								formatSelection: formatSelection,
    +							 	templateResult: formatSelection		/* For 4.0 */
    +							});
    +						});'."\n";
     			}
    -    		$out.='	</script>';
    +			elseif ($addjscombo == 2)
    +			{
    +				// Add other js lib
    +				// ...
    +				$out.= '$(document).ready(function () {
    +							$(\'#'.$htmlname.'\').multiSelect({
    +								containerHTML: \'<div class="multi-select-container">\',
    +								menuHTML: \'<div class="multi-select-menu">\',
    +								buttonHTML: \'<span class="multi-select-button '.$morecss.'">\',
    +								menuItemHTML: \'<label class="multi-select-menuitem">\',
    +								activeClass: \'multi-select-container--open\',
    +								noneText: \''.$placeholder.'\'
    +							});
    +						})';
    +			}
    +			$out.=	'</script>';
     		}
     
     		// Try also magic suggest
    @@ -5948,7 +6210,7 @@ class Form
     		   }
     		   if ($val['label'])
     		   {
    -			   $lis.='<li><input type="checkbox" value="'.$key.'"'.(empty($val['checked'])?'':' checked="checked"').'/>'.dol_escape_htmltag($langs->trans($val['label'])).'</li>';
    +		   	$lis.='<li><input type="checkbox" id="checkbox'.$key.'" value="'.$key.'"'.(empty($val['checked'])?'':' checked="checked"').'/><label for="checkbox'.$key.'">'.dol_escape_htmltag($langs->trans($val['label'])).'</label></li>';
     			   $listcheckedstring.=(empty($val['checked'])?'':$key.',');
     		   }
     		}
    @@ -6057,7 +6319,7 @@ class Form
     		$hookmanager->initHooks(array('commonobject'));
     		$parameters=array(
     			'morehtmlright' => $morehtmlright,
    -		    'compatibleImportElementsList' =>& $compatibleImportElementsList,
    +		    'compatibleImportElementsList' => &$compatibleImportElementsList,
     		);
     		$reshook=$hookmanager->executeHooks('showLinkedObjectBlock',$parameters,$object,$action);    // Note that $action and $object may have been modified by hook
     
    @@ -6123,6 +6385,10 @@ class Form
     					$tplpath = 'expedition';
     					if (empty($conf->expedition->enabled)) continue;	// Do not show if module disabled
     				}
    +        		else if ($objecttype == 'reception') {
    +        			$tplpath = 'reception';
    +        			if (empty($conf->reception->enabled)) continue;	// Do not show if module disabled
    +        		}
     				else if ($objecttype == 'delivery')         {
     					$tplpath = 'livraison';
     					if (empty($conf->expedition->enabled)) continue;	// Do not show if module disabled
    @@ -6218,8 +6484,8 @@ class Form
     			$possiblelinks=array(
     				'propal'=>array('enabled'=>$conf->propal->enabled, 'perms'=>1, 'label'=>'LinkToProposal', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, t.ref_client, t.total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('propal').')'),
     				'order'=>array('enabled'=>$conf->commande->enabled, 'perms'=>1, 'label'=>'LinkToOrder', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, t.ref_client, t.total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."commande as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('commande').')'),
    -				'invoice'=>array('enabled'=>$conf->facture->enabled, 'perms'=>1, 'label'=>'LinkToInvoice', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.facnumber as ref, t.ref_client, t.total as total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('facture').')'),
    -				'invoice_template'=>array('enabled'=>$conf->facture->enabled, 'perms'=>1, 'label'=>'LinkToTemplateInvoice', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.titre as ref, t.total as total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_rec as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('facture').')'),
    +				'invoice'=>array('enabled'=>$conf->facture->enabled, 'perms'=>1, 'label'=>'LinkToInvoice', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, t.ref_client, t.total as total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('invoice').')'),
    +				'invoice_template'=>array('enabled'=>$conf->facture->enabled, 'perms'=>1, 'label'=>'LinkToTemplateInvoice', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.titre as ref, t.total as total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture_rec as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('invoice').')'),
     				'contrat'=>array('enabled'=>$conf->contrat->enabled , 'perms'=>1, 'label'=>'LinkToContract', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, t.ref_supplier, '' as total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('contract').')'),
     				'fichinter'=>array('enabled'=>$conf->ficheinter->enabled, 'perms'=>1, 'label'=>'LinkToIntervention', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."fichinter as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('intervention').')'),
     				'supplier_proposal'=>array('enabled'=>$conf->supplier_proposal->enabled , 'perms'=>1, 'label'=>'LinkToSupplierProposal', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, '' as ref_supplier, t.total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."supplier_proposal as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('supplier_proposal').')'),
    @@ -6234,6 +6500,7 @@ class Form
     		$hookmanager->initHooks(array('commonobject'));
     		$parameters=array('listofidcompanytoscan' => $listofidcompanytoscan);
     		$reshook=$hookmanager->executeHooks('showLinkToObjectBlock',$parameters,$object,$action);    // Note that $action and $object may have been modified by hook
    +
     		if (empty($reshook))
     		{
     			if (is_array($hookmanager->resArray) && count($hookmanager->resArray))
    @@ -6266,17 +6533,19 @@ class Form
     					$num = $this->db->num_rows($resqllist);
     					$i = 0;
     
    -					print '<br><form action="'.$_SERVER["PHP_SELF"].'" method="POST" name="formlinked'.$key.'">';
    -					print '<input type="hidden" name="id" value="'.$object->id.'">';
    +					print '<br>';
    +					print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST" name="formlinked'.$key.'">';
     					print '<input type="hidden" name="action" value="addlink">';
    +					print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +					print '<input type="hidden" name="id" value="'.$object->id.'">';
     					print '<input type="hidden" name="addlink" value="'.$key.'">';
     					print '<table class="noborder">';
     					print '<tr class="liste_titre">';
     					print '<td class="nowrap"></td>';
     					print '<td align="center">' . $langs->trans("Ref") . '</td>';
    -					print '<td align="left">' . $langs->trans("RefCustomer") . '</td>';
    +					print '<td class="left">' . $langs->trans("RefCustomer") . '</td>';
     					print '<td align="right">' . $langs->trans("AmountHTShort") . '</td>';
    -					print '<td align="left">' . $langs->trans("Company") . '</td>';
    +					print '<td class="left">' . $langs->trans("Company") . '</td>';
     					print '</tr>';
     					while ($i < $num)
     					{
    @@ -6360,7 +6629,7 @@ class Form
     	 *  @param	int      	$useempty		1=Add empty line
     	 *	@return	string						See option
     	 */
    -	function selectyesno($htmlname, $value='', $option=0, $disabled=false, $useempty='')
    +	function selectyesno($htmlname, $value='', $option=0, $disabled=false, $useempty=0)
     	{
     		global $langs;
     
    @@ -6392,6 +6661,7 @@ class Form
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of export templates
     	 *
    @@ -6403,7 +6673,7 @@ class Form
     	 */
     	function select_export_model($selected='',$htmlname='exportmodelid',$type='',$useempty=0)
     	{
    -
    +        // phpcs:enable
     		$sql = "SELECT rowid, label";
     		$sql.= " FROM ".MAIN_DB_PREFIX."export_model";
     		$sql.= " WHERE type = '".$type."'";
    @@ -6411,7 +6681,7 @@ class Form
     		$result = $this->db->query($sql);
     		if ($result)
     		{
    -			print '<select class="flat" name="'.$htmlname.'">';
    +			print '<select class="flat" id="select_'.$htmlname.'" name="'.$htmlname.'">';
     			if ($useempty)
     			{
     				print '<option value="-1">&nbsp;</option>';
    @@ -6484,14 +6754,31 @@ class Form
     			// Special case for project/task page
     			if ($paramid == 'project_ref')
     			{
    -				$navurl = preg_replace('/\/tasks\/(task|contact|time|note|document)\.php/','/tasks.php',$navurl);
    -				$paramid='ref';
    +			    if (preg_match('/\/tasks\/(task|contact|note|document)\.php/', $navurl))     // TODO Remove this when nav with project_ref on task pages are ok
    +			    {
    +				    $navurl = preg_replace('/\/tasks\/(task|contact|time|note|document)\.php/', '/tasks.php', $navurl);
    +    				$paramid='ref';
    +			    }
     			}
     
     			// accesskey is for Windows or Linux:  ALT + key for chrome, ALT + SHIFT + KEY for firefox
     			// accesskey is for Mac:               CTRL + key for all browsers
    -			$previous_ref = $object->ref_previous?'<a accesskey="p" title="'.$langs->trans("KeyboardShortcut").' ALT+p|ALT+SHIFT+p|CTRL+p" href="'.$navurl.'?'.$paramid.'='.urlencode($object->ref_previous).$moreparam.'"><i class="fa fa-chevron-left"></i></a>':'<span class="inactive"><i class="fa fa-chevron-left opacitymedium"></i></span>';
    -			$next_ref     = $object->ref_next?'<a accesskey="n" title="'.$langs->trans("KeyboardShortcut").' ALT+n|ALT+SHIFT+n|CTRL+n" href="'.$navurl.'?'.$paramid.'='.urlencode($object->ref_next).$moreparam.'"><i class="fa fa-chevron-right"></i></a>':'<span class="inactive"><i class="fa fa-chevron-right opacitymedium"></i></span>';
    +			$stringforfirstkey = $langs->trans("KeyboardShortcut");
    +			if ($conf->browser->name == 'chrome')
    +			{
    +				$stringforfirstkey .= ' ALT +';
    +			}
    +			elseif ($conf->browser->name == 'firefox')
    +			{
    +				$stringforfirstkey .= ' ALT + SHIFT +';
    +			}
    +			else
    +			{
    +				$stringforfirstkey .= ' CTL +';
    +			}
    +
    +			$previous_ref = $object->ref_previous?'<a accesskey="p" title="'.$stringforfirstkey.' p" class="classfortooltip" href="'.$navurl.'?'.$paramid.'='.urlencode($object->ref_previous).$moreparam.'"><i class="fa fa-chevron-left"></i></a>':'<span class="inactive"><i class="fa fa-chevron-left opacitymedium"></i></span>';
    +			$next_ref     = $object->ref_next?'<a accesskey="n" title="'.$stringforfirstkey.' n" class="classfortooltip" href="'.$navurl.'?'.$paramid.'='.urlencode($object->ref_next).$moreparam.'"><i class="fa fa-chevron-right"></i></a>':'<span class="inactive"><i class="fa fa-chevron-right opacitymedium"></i></span>';
     		}
     
     		//print "xx".$previous_ref."x".$next_ref;
    @@ -6626,16 +6913,17 @@ class Form
     	 * 		@param	string		$imagesize		    'mini', 'small' or '' (original)
     	 *      @param  int         $addlinktofullsize  Add link to fullsize image
     	 *      @param  int         $cache              1=Accept to use image in cache
    +	 *      @param	string		$forcecapture		Force parameter capture on HTML input file element to ask a smartphone to allow to open camera to take photo. Auto if empty.
     	 * 	  	@return string    						HTML code to output photo
     	 */
    -	static function showphoto($modulepart, $object, $width=100, $height=0, $caneditfield=0, $cssclass='photowithmargin', $imagesize='', $addlinktofullsize=1, $cache=0)
    +	static function showphoto($modulepart, $object, $width=100, $height=0, $caneditfield=0, $cssclass='photowithmargin', $imagesize='', $addlinktofullsize=1, $cache=0, $forcecapture='')
     	{
     		global $conf,$langs;
     
     		$entity = (! empty($object->entity) ? $object->entity : $conf->entity);
     		$id = (! empty($object->id) ? $object->id : $object->rowid);
     
    -		$ret='';$dir='';$file='';$originalfile='';$altfile='';$email='';
    +		$ret='';$dir='';$file='';$originalfile='';$altfile='';$email='';$capture='';
     		if ($modulepart=='societe')
     		{
     			$dir=$conf->societe->multidir_output[$entity];
    @@ -6659,19 +6947,21 @@ class Form
     				$originalfile=get_exdir(0, 0, 0, 0, $object, 'contact').'/photos/'.$object->photo;
     			}
     			$email=$object->email;
    +			$capture='user';
     		}
     		else if ($modulepart=='userphoto')
     		{
     			$dir=$conf->user->dir_output;
     			if (! empty($object->photo))
     			{
    -				if ((string) $imagesize == 'mini') $file=get_exdir($id, 2, 0, 0, $object, 'user').getImageFileNameForSize($object->photo, '_mini');
    -				else if ((string) $imagesize == 'small') $file=get_exdir($id, 2, 0, 0, $object, 'user').getImageFileNameForSize($object->photo, '_small');
    -				else $file=get_exdir($id, 2, 0, 0, $object, 'user').$object->photo;
    -				$originalfile=get_exdir($id, 2, 0, 0, $object, 'user').$object->photo;
    +				if ((string) $imagesize == 'mini') $file=get_exdir(0, 0, 0, 0, $object, 'user').$object->id.'/'.getImageFileNameForSize($object->photo, '_mini');
    +				else if ((string) $imagesize == 'small') $file=get_exdir(0, 0, 0, 0, $object, 'user').$object->id.'/'.getImageFileNameForSize($object->photo, '_small');
    +				else $file=get_exdir(0, 0, 0, 0, $object, 'user').'/'.$object->id.'/'.$object->photo;
    +				$originalfile=get_exdir(0, 0, 0, 0, $object, 'user').'/'.$object->id.'/'.$object->photo;
     			}
     			if (! empty($conf->global->MAIN_OLD_IMAGE_LINKS)) $altfile=$object->id.".jpg";	// For backward compatibility
     			$email=$object->email;
    +			$capture='user';
     		}
     		else if ($modulepart=='memberphoto')
     		{
    @@ -6685,6 +6975,7 @@ class Form
     			}
     			if (! empty($conf->global->MAIN_OLD_IMAGE_LINKS)) $altfile=$object->id.".jpg";	// For backward compatibility
     			$email=$object->email;
    +			$capture='user';
     		}
     		else
     		{
    @@ -6701,6 +6992,8 @@ class Form
     			$email=$object->email;
     		}
     
    +		if ($forcecapture) $capture = $forcecapture;
    +
     		if ($dir)
     		{
     			if ($file && file_exists($dir."/".$file))
    @@ -6757,16 +7050,16 @@ class Form
     				if ($object->photo) $ret.="<br>\n";
     				$ret.='<table class="nobordernopadding centpercent">';
     				if ($object->photo) $ret.='<tr><td><input type="checkbox" class="flat photodelete" name="deletephoto" id="photodelete"> '.$langs->trans("Delete").'<br><br></td></tr>';
    -				$ret.='<tr><td class="tdoverflow"><input type="file" class="flat maxwidth200onsmartphone" name="photo" id="photoinput"></td></tr>';
    +				$ret.='<tr><td class="tdoverflow"><input type="file" class="flat maxwidth200onsmartphone" name="photo" id="photoinput"'.($capture?' capture="'.$capture.'"':'').'></td></tr>';
     				$ret.='</table>';
     			}
    -
     		}
     		else dol_print_error('','Call of showphoto with wrong parameters modulepart='.$modulepart);
     
     		return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return select list of groups
     	 *
    @@ -6778,11 +7071,13 @@ class Form
     	 *  @param  string	$include        Array list of groups id to include
     	 * 	@param	int		$enableonly		Array list of groups id to be enabled. All other must be disabled
     	 * 	@param	string	$force_entity	'0' or Ids of environment to force
    +	 * 	@param	bool	$multiple		add [] in the name of element and add 'multiple' attribut (not working with ajax_autocompleter)
     	 *  @return	string
     	 *  @see select_dolusers
     	 */
    -	function select_dolgroups($selected='', $htmlname='groupid', $show_empty=0, $exclude='', $disabled=0, $include='', $enableonly='', $force_entity='0')
    +	function select_dolgroups($selected='', $htmlname='groupid', $show_empty=0, $exclude='', $disabled=0, $include='', $enableonly='', $force_entity='0', $multiple=false)
     	{
    +        // phpcs:enable
     		global $conf,$user,$langs;
     
     		// Permettre l'exclusion de groupes
    @@ -6790,6 +7085,8 @@ class Form
     		// Permettre l'inclusion de groupes
     		if (is_array($include))	$includeGroups = implode("','",$include);
     
    +		if (!is_array($selected)) $selected = array($selected);
    +
     		$out='';
     
     		// On recherche les groupes
    @@ -6821,13 +7118,13 @@ class Form
     			include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
     		   	$out .= ajax_combobox($htmlname);
     
    -			$out.= '<select class="flat minwidth200" id="'.$htmlname.'" name="'.$htmlname.'"'.($disabled?' disabled':'').'>';
    +			$out.= '<select class="flat minwidth200" id="'.$htmlname.'" name="'.$htmlname.($multiple ? '[]' : '').'" '.($multiple ? 'multiple' : '').' '.($disabled?' disabled':'').'>';
     
     			$num = $this->db->num_rows($resql);
     			$i = 0;
     			if ($num)
     			{
    -				if ($show_empty) $out.= '<option value="-1"'.($selected==-1?' selected':'').'>&nbsp;</option>'."\n";
    +				if ($show_empty && !$multiple) $out.= '<option value="-1"'.(in_array(-1,$selected)?' selected':'').'>&nbsp;</option>'."\n";
     
     				while ($i < $num)
     				{
    @@ -6837,7 +7134,7 @@ class Form
     
     					$out.= '<option value="'.$obj->rowid.'"';
     					if ($disableline) $out.= ' disabled';
    -					if ((is_object($selected) && $selected->id == $obj->rowid) || (! is_object($selected) && $selected == $obj->rowid))
    +					if ((is_object($selected[0]) && $selected[0]->id == $obj->rowid) || (! is_object($selected[0]) && in_array($obj->rowid,$selected) ))
     					{
     						$out.= ' selected';
     					}
    @@ -6855,7 +7152,7 @@ class Form
     			}
     			else
     			{
    -				if ($show_empty) $out.= '<option value="-1"'.($selected==-1?' selected':'').'></option>'."\n";
    +				if ($show_empty) $out.= '<option value="-1"'.(in_array(-1,$selected)?' selected':'').'></option>'."\n";
     				$out.= '<option value="" disabled>'.$langs->trans("NoUserGroupDefined").'</option>';
     			}
     			$out.= '</select>';
    @@ -6904,17 +7201,22 @@ class Form
                 	$("#checkallactions").click(function() {
                         if($(this).is(\':checked\')){
                             console.log("We check all");
    -                		$(".'.$cssclass.'").prop(\'checked\', true);
    +                		$(".'.$cssclass.'").prop(\'checked\', true).trigger(\'change\');
                         }
                         else
                         {
                             console.log("We uncheck all");
    -                		$(".'.$cssclass.'").prop(\'checked\', false);
    +                		$(".'.$cssclass.'").prop(\'checked\', false).trigger(\'change\');
                         }'."\n";
     		if ($calljsfunction) $out.='if (typeof initCheckForSelect == \'function\') { initCheckForSelect(0); } else { console.log("No function initCheckForSelect found. Call won\'t be done."); }';
     		$out.='         });
    -                });
    -            </script>';
    +
    +        	$(".checkforselect").change(function() {
    +				$(this).closest("tr").toggleClass("highlight", this.checked);
    +			});
    +
    + 	});
    +    </script>';
     
     		return $out;
     	}
    @@ -6938,7 +7240,7 @@ class Form
     	}
     
     	/**
    -	 * Return HTML to show the select categories of expense category
    +	 * Return HTML to show the select of expense categories
     	 *
     	 * @param	string	$selected              preselected category
     	 * @param	string	$htmlname              name of HTML select list
    @@ -6954,14 +7256,14 @@ class Form
     		global $db, $conf, $langs, $user;
     
     		$sql = 'SELECT rowid, label FROM '.MAIN_DB_PREFIX.'c_exp_tax_cat WHERE active = 1';
    -		$sql.= ' AND entity IN (0,'.getEntity('').')';
    +		$sql.= ' AND entity IN (0,'.getEntity('exp_tax_cat').')';
     		if (!empty($excludeid)) $sql.= ' AND rowid NOT IN ('.implode(',', $excludeid).')';
     		$sql.= ' ORDER BY label';
     
     		$resql = $db->query($sql);
     		if ($resql)
     		{
    -			$out = '<select name="'.$htmlname.'" class="'.$htmlname.' flat minwidth75imp">';
    +			$out = '<select id="select_'.$htmlname.'" name="'.$htmlname.'" class="'.$htmlname.' flat minwidth75imp">';
     			if ($useempty) $out.= '<option value="0">&nbsp;</option>';
     
     			while ($obj = $db->fetch_object($resql))
    @@ -7048,7 +7350,7 @@ class Form
     		$resql = $db->query($sql);
     		if ($resql)
     		{
    -			$out = '<select name="'.$htmlname.'" class="'.$htmlname.' flat minwidth75imp">';
    +			$out = '<select id="select_'.$htmlname.'" name="'.$htmlname.'" class="'.$htmlname.' flat minwidth75imp">';
     			if ($useempty) $out.= '<option value="0"></option>';
     
     			while ($obj = $db->fetch_object($resql))
    @@ -7085,7 +7387,7 @@ class Form
     		$resql = $db->query($sql);
     		if ($resql)
     		{
    -			$out = '<select name="'.$htmlname.'" class="'.$htmlname.' flat minwidth75imp">';
    +			$out = '<select id="select_'.$htmlname.'" name="'.$htmlname.'" class="'.$htmlname.' flat minwidth75imp">';
     			if ($useempty) $out.= '<option value="0"></option>';
     			if ($allchoice) $out.= '<option value="-1">'.$langs->trans('AllExpenseReport').'</option>';
     
    @@ -7106,6 +7408,4 @@ class Form
     
     		return $out;
     	}
    -
     }
    -
    diff --git a/htdocs/core/class/html.formaccounting.class.php b/htdocs/core/class/html.formaccounting.class.php
    index 17e437f5223..5ffaf0463a6 100644
    --- a/htdocs/core/class/html.formaccounting.class.php
    +++ b/htdocs/core/class/html.formaccounting.class.php
    @@ -35,10 +35,17 @@ class FormAccounting extends Form
     
     	private $options_cache = array();
     
    -	var $db;
    -	var $error;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +   /**
     	* Constructor
     	*
     	* @param		DoliDB		$db      Database handler
    @@ -48,6 +55,7 @@ class FormAccounting extends Form
     	    $this->db = $db;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return list of journals with label by nature
     	 *
    @@ -64,6 +72,7 @@ class FormAccounting extends Form
     	 */
     	function select_journal($selectid, $htmlname = 'journal', $nature=0, $showempty = 0, $select_in = 0, $select_out = 0, $morecss='maxwidth300 maxwidthonsmartphone', $usecache='', $disabledajaxcombo=0)
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$out = '';
    @@ -129,6 +138,7 @@ class FormAccounting extends Form
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Return list of accounting category.
          * 	Use mysoc->country_id or mysoc->country_code so they must be defined.
    @@ -143,6 +153,7 @@ class FormAccounting extends Form
          */
         function select_accounting_category($selected='',$htmlname='account_category', $useempty=0, $maxlen=0, $help=1, $allcountries=0)
         {
    +        // phpcs:enable
             global $db,$langs,$user,$mysoc;
     
             if (empty($mysoc->country_id) && empty($mysoc->country_code) && empty($allcountries))
    @@ -209,6 +220,7 @@ class FormAccounting extends Form
             print $out;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return select filter with date of transaction
     	 *
    @@ -216,7 +228,9 @@ class FormAccounting extends Form
     	 * @param string $selectedkey Value
     	 * @return string HTML edit field
     	 */
    -	function select_bookkeeping_importkey($htmlname = 'importkey', $selectedkey = '') {
    +    function select_bookkeeping_importkey($htmlname = 'importkey', $selectedkey = '')
    +    {
    +        // phpcs:enable
     		$options = array();
     
     		$sql = 'SELECT DISTINCT import_key from ' . MAIN_DB_PREFIX . 'accounting_bookkeeping';
    @@ -239,6 +253,7 @@ class FormAccounting extends Form
     		return Form::selectarray($htmlname, $options, $selectedkey);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return list of accounts with label by chart of accounts
     	 *
    @@ -254,6 +269,7 @@ class FormAccounting extends Form
     	 */
     	function select_account($selectid, $htmlname = 'account', $showempty = 0, $event = array(), $select_in = 0, $select_out = 0, $morecss='maxwidth300 maxwidthonsmartphone', $usecache='')
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
    @@ -330,6 +346,7 @@ class FormAccounting extends Form
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return list of auxilary thirdparty accounts
     	 *
    @@ -339,7 +356,9 @@ class FormAccounting extends Form
     	 * @param string   $morecss        More css
     	 * @return string                  String with HTML select
     	 */
    -	function select_auxaccount($selectid, $htmlname='account_num_aux', $showempty=0, $morecss='maxwidth200') {
    +    function select_auxaccount($selectid, $htmlname='account_num_aux', $showempty=0, $morecss='maxwidth200')
    +    {
    +        // phpcs:enable
     
     		$aux_account = array();
     
    @@ -389,6 +408,7 @@ class FormAccounting extends Form
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return HTML combo list of years existing into book keepping
     	 *
    @@ -400,6 +420,7 @@ class FormAccounting extends Form
     	 */
     	function selectyear_accountancy_bookkepping($selected = '', $htmlname = 'yearid', $useempty = 0, $output_format = 'html')
     	{
    +        // phpcs:enable
     	    global $conf;
     
     		$out_array = array();
    @@ -428,4 +449,3 @@ class FormAccounting extends Form
     		}
     	}
     }
    -
    diff --git a/htdocs/core/class/html.formactions.class.php b/htdocs/core/class/html.formactions.class.php
    index f7313dcee9f..9dbf8b9ae47 100644
    --- a/htdocs/core/class/html.formactions.class.php
    +++ b/htdocs/core/class/html.formactions.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (c) 2008-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2018 Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -29,8 +29,15 @@
      */
     class FormActions
     {
    -    var $db;
    -    var $error;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
         /**
    @@ -41,10 +48,10 @@ class FormActions
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Show list of action status
          *
    @@ -59,6 +66,7 @@ class FormActions
          */
         function form_select_status_action($formname, $selected, $canedit=1, $htmlname='complete', $showempty=0, $onlyselect=0, $morecss='maxwidth100')
         {
    +        // phpcs:enable
             global $langs,$conf;
     
             $listofstatus = array(
    @@ -235,13 +243,13 @@ class FormActions
     
     	        		print '<tr class="oddeven">';
     	        		// Ref
    -					print '<td>'.$ref.'</td>';
    +					print '<td class="nowraponall">'.$ref.'</td>';
     					// Onwer
     	        		print '<td>';
     	        		if (! empty($action->userownerid))
     	        		{
     	        			$userstatic->fetch($action->userownerid);	// TODO Introduce a cache on users fetched
    -	        			print $userstatic->getNomUrl(-1, '', 0, 0, 16, 0, '', '');
    +	        			print $userstatic->getNomUrl(-1, '', 0, 0, 16, 0, 'firstelselast', '');
     	        		}
     	        		print '</td>';
     					// Type
    @@ -306,6 +314,7 @@ class FormActions
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Output html select list of type of event
          *
    @@ -320,6 +329,7 @@ class FormActions
          */
         function select_type_actions($selected='', $htmlname='actioncode', $excludetype='', $onlyautoornot=0, $hideinfohelp=0, $multiselect=0, $nooutput=0)
         {
    +        // phpcs:enable
             global $langs,$user,$form,$conf;
     
             if (! is_object($form)) $form=new Form($this->db);
    @@ -359,5 +369,4 @@ class FormActions
             else print $out;
             return '';
         }
    -
     }
    diff --git a/htdocs/core/class/html.formadmin.class.php b/htdocs/core/class/html.formadmin.class.php
    index fd0470c63f4..32a421a7b61 100644
    --- a/htdocs/core/class/html.formadmin.class.php
    +++ b/htdocs/core/class/html.formadmin.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007      Patrick Raguin 		<patrick.raguin@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -41,9 +41,9 @@ class FormAdmin
     	function __construct($db)
     	{
     		$this->db = $db;
    -		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    	Return html select list with available languages (key='en_US', value='United States' for example)
     	 *
    @@ -55,11 +55,13 @@ class FormAdmin
     	 *      @param      int			$showwarning    Show a warning if language is not complete
     	 *      @param		int			$disabled		Disable edit of select
     	 *      @param		string		$morecss		Add more css styles
    -	 *      @param      int         $showcode       Add language code into label
    +	 *      @param      int         $showcode       1=Add language code into label at begining, 2=Add language code into label at end
    +	 *      @param		int			$forcecombo		Force to use combo box (so no ajax beautify effect)
     	 *      @return		string						Return HTML select string with list of languages
    -	 */
    -	function select_language($selected='', $htmlname='lang_id', $showauto=0, $filter=null, $showempty='', $showwarning=0, $disabled=0, $morecss='', $showcode=0)
    +     */
    +	function select_language($selected='', $htmlname='lang_id', $showauto=0, $filter=null, $showempty='', $showwarning=0, $disabled=0, $morecss='', $showcode=0, $forcecombo=0)
     	{
    +		// phpcs:enable
     		global $langs;
     
     		$langs_available=$langs->get_available_languages(DOL_DOCUMENT_ROOT,12);
    @@ -87,8 +89,9 @@ class FormAdmin
     
     		foreach ($langs_available as $key => $value)
     		{
    -		    $valuetoshow=$value;
    -		    if ($showcode) $valuetoshow=$key.' - '.$value;
    +			$valuetoshow=$value;
    +			if ($showcode == 1) $valuetoshow=$key.' - '.$value;
    +			if ($showcode == 2) $valuetoshow=$value.' ('.$key.')';
     
     			if ($filter && is_array($filter))
     			{
    @@ -109,12 +112,16 @@ class FormAdmin
     		$out.= '</select>';
     
     		// Make select dynamic
    -        include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
    -        $out.= ajax_combobox($htmlname);
    +		if (! $forcecombo)
    +		{
    +			include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
    +			$out.= ajax_combobox($htmlname);
    +		}
     
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *    Return list of available menus (eldy_backoffice, ...)
          *
    @@ -126,6 +133,7 @@ class FormAdmin
          */
         function select_menu($selected, $htmlname, $dirmenuarray, $moreattrib='')
         {
    +		// phpcs:enable
             global $langs,$conf;
     
             // Clean parameters
    @@ -204,6 +212,7 @@ class FormAdmin
     		print '</select>';
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return combo list of available menu families
          *
    @@ -214,6 +223,7 @@ class FormAdmin
          */
         function select_menu_families($selected, $htmlname, $dirmenuarray)
         {
    +		// phpcs:enable
     		global $langs,$conf;
     
             //$expdevmenu=array('smartphone_backoffice.php','smartphone_frontoffice.php');  // Menu to disable if $conf->global->MAIN_FEATURES_LEVEL is not set
    @@ -275,6 +285,7 @@ class FormAdmin
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return a HTML select list of timezones
          *
    @@ -284,6 +295,7 @@ class FormAdmin
          */
         function select_timezone($selected,$htmlname)
         {
    +		// phpcs:enable
     		global $langs,$conf;
     
             print '<select class="flat" id="'.$htmlname.'" name="'.$htmlname.'">';
    @@ -327,17 +339,19 @@ class FormAdmin
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 *    	Return html select list with available languages (key='en_US', value='United States' for example)
    +	 *  Return html select list with available languages (key='en_US', value='United States' for example)
     	 *
    -	 *    	@param      string	$selected       Paper format pre-selected
    -	 *    	@param      string	$htmlname       Name of HTML select field
    -	 * 		@param		string	$filter			Value to filter on code
    -	 * 		@param		int		$showempty		Add empty value
    -	 * 		@return		string					Return HTML output
    +	 *  @param      string	$selected       Paper format pre-selected
    +	 *  @param      string	$htmlname       Name of HTML select field
    +	 * 	@param		string	$filter			Value to filter on code
    +	 * 	@param		int		$showempty		Add empty value
    +	 * 	@return		string					Return HTML output
     	 */
     	function select_paper_format($selected='',$htmlname='paperformat_id',$filter=0,$showempty=0)
     	{
    +		// phpcs:enable
     		global $langs;
     
     		$langs->load("dict");
    diff --git a/htdocs/core/class/html.formbank.class.php b/htdocs/core/class/html.formbank.class.php
    index 4ee00555b85..9cf60cc45b1 100644
    --- a/htdocs/core/class/html.formbank.class.php
    +++ b/htdocs/core/class/html.formbank.class.php
    @@ -29,8 +29,15 @@
      */
     class FormBank
     {
    -    var $db;
    -    var $error;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
         /**
    diff --git a/htdocs/core/class/html.formbarcode.class.php b/htdocs/core/class/html.formbarcode.class.php
    index 9e6fb7370d4..65a3213bad8 100644
    --- a/htdocs/core/class/html.formbarcode.class.php
    +++ b/htdocs/core/class/html.formbarcode.class.php
    @@ -1,21 +1,22 @@
     <?php
    -/* Copyright (C) 2007-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    - * Copyright (C) 2008-2012	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
    -* the Free Software Foundation; either version 3 of the License, or
    -* (at your option) any later version.
    -*
    -* This program is distributed in the hope that it will be useful,
    -* but WITHOUT ANY WARRANTY; without even the implied warranty of
    -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    -* GNU General Public License for more details.
    -*
    -* You should have received a copy of the GNU General Public License
    -* along with this program. If not, see <http://www.gnu.org/licenses/>.
    -*
    -*/
    +/* Copyright (C) 2007-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2008-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + *
    + */
     
     /**
      *      \file       htdocs/core/class/html.formbarcode.class.php
    @@ -28,19 +29,25 @@
      */
     class FormBarCode
     {
    -    var $db;
    -    var $error;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +     * @var string Error code (or message)
    +     */
    +    public $error='';
     
     
         /**
    -     *	Constructor
    +     *  Constructor
          *
    -     *	@param	DoliDB		$db		Database handler
    +     *  @param  DoliDB		$db		Database handler
          */
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    @@ -106,17 +113,35 @@ class FormBarCode
             return $select_encoder;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -     *	Return form to select type of barcode
    +     *  Print form to select type of barcode
          *
    -     *	@param	int		$selected          Id code pre-selected
    -     *  @param	string	$htmlname          Name of HTML select field
    -     *  @param  int		$useempty          Affiche valeur vide dans liste
    -     *  @return	void
    +     *  @param  int     $selected          Id code pre-selected
    +     *  @param  string  $htmlname          Name of HTML select field
    +     *  @param  int     $useempty          Affiche valeur vide dans liste
    +     *  @return void
    +     *  @deprecated
          */
    -    function select_barcode_type($selected='',$htmlname='barcodetype_id',$useempty=0)
    +    function select_barcode_type($selected='', $htmlname='barcodetype_id', $useempty=0)
         {
    -        global $langs,$conf;
    +        // phpcs:enable
    +        print $this->selectBarcodeType($selected, $htmlname, $useempty);
    +    }
    +
    +    /**
    +     *  Return html form to select type of barcode
    +     *
    +     *  @param  int     $selected          Id code pre-selected
    +     *  @param  string  $htmlname          Name of HTML select field
    +     *  @param  int     $useempty          Display empty value in select
    +     *  @return string
    +     */
    +    function selectBarcodeType($selected='', $htmlname='barcodetype_id', $useempty=0)
    +    {
    +        global $langs, $conf;
    +
    +        $out = '';
     
             $sql = "SELECT rowid, code, libelle";
             $sql.= " FROM ".MAIN_DB_PREFIX."c_barcode_type";
    @@ -125,46 +150,40 @@ class FormBarCode
             $sql.= " ORDER BY code";
     
             $result = $this->db->query($sql);
    -        if ($result)
    -        {
    +        if ($result) {
                 $num = $this->db->num_rows($result);
                 $i = 0;
     
    -            if ($useempty && $num > 0)
    -            {
    -                print '<select class="flat minwidth75imp" name="'.$htmlname.'" id="select_'.$htmlname.'">';
    -                print '<option value="0">&nbsp;</option>';
    -            }
    -            else
    -            {
    +            if ($useempty && $num > 0) {
    +                $out .= '<select class="flat minwidth75imp" name="' . $htmlname . '" id="select_' . $htmlname . '">';
    +                $out .= '<option value="0">&nbsp;</option>';
    +            } else {
                     $langs->load("errors");
    -                print '<select disabled class="flat minwidth75imp" name="'.$htmlname.'" id="select_'.$htmlname.'">';
    -                print '<option value="0" selected>'.$langs->trans('ErrorNoActivatedBarcode').'</option>';
    +                $out .= '<select disabled class="flat minwidth75imp" name="' . $htmlname . '" id="select_' . $htmlname . '">';
    +                $out .= '<option value="0" selected>' . $langs->trans('ErrorNoActivatedBarcode') . '</option>';
                 }
     
    -            while ($i < $num)
    -            {
    +            while ($i < $num) {
                     $obj = $this->db->fetch_object($result);
    -                if ($selected == $obj->rowid)
    -                {
    -                    print '<option value="'.$obj->rowid.'" selected>';
    +                if ($selected == $obj->rowid) {
    +                    $out .= '<option value="' . $obj->rowid . '" selected>';
    +                } else {
    +                    $out .= '<option value="' . $obj->rowid . '">';
                     }
    -                else
    -                {
    -                    print '<option value="'.$obj->rowid.'">';
    -                }
    -                print $obj->libelle;
    -                print '</option>';
    +                $out .= $obj->libelle;
    +                $out .= '</option>';
                     $i++;
                 }
    -            print "</select>";
    -            print ajax_combobox("select_".$htmlname);
    +            $out .= "</select>";
    +            $out .= ajax_combobox("select_".$htmlname);
             }
             else {
                 dol_print_error($this->db);
             }
    +        return $out;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Show form to select type of barcode
          *
    @@ -172,23 +191,37 @@ class FormBarCode
          *  @param  int			$selected    	Id condition preselected
          *  @param  string		$htmlname    	Nom du formulaire select
          *  @return	void
    +     *  @deprecated
          */
         function form_barcode_type($page, $selected='', $htmlname='barcodetype_id')
         {
    -        global $langs,$conf;
    -        if ($htmlname != "none")
    -        {
    -            print '<form method="post" action="'.$page.'">';
    -            print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -            print '<input type="hidden" name="action" value="set'.$htmlname.'">';
    -            print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
    -            print '<tr><td>';
    -            $this->select_barcode_type($selected, $htmlname, 1);
    -            print '</td>';
    -            print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'">';
    -            print '</td></tr></table></form>';
    -        }
    +        // phpcs:enable
    +        print $this->formBarcodeType($page, $selected, $htmlname);
         }
     
    +    /**
    +     *  Return html form to select type of barcode
    +     *
    +     *  @param  string      $page           Page
    +     *  @param  int         $selected       Id condition preselected
    +     *  @param  string      $htmlname       Nom du formulaire select
    +     *  @return string
    +     */
    +    function formBarcodeType($page, $selected='', $htmlname='barcodetype_id')
    +    {
    +        global $langs, $conf;
    +        $out = '';
    +        if ($htmlname != "none") {
    +            $out .= '<form method="post" action="' . $page . '">';
    +            $out .= '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    +            $out .= '<input type="hidden" name="action" value="set'.$htmlname.'">';
    +            $out .= '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
    +            $out .= '<tr><td>';
    +            $out .= $this->selectBarcodeType($selected, $htmlname, 1);
    +            $out .= '</td>';
    +            $out .= '<td class="left"><input type="submit" class="button" value="' . $langs->trans("Modify") . '">';
    +            $out .= '</td></tr></table></form>';
    +        }
    +        return $out;
    +    }
     }
    -
    diff --git a/htdocs/core/class/html.formcompany.class.php b/htdocs/core/class/html.formcompany.class.php
    index 665716db034..9d0bded74b6 100644
    --- a/htdocs/core/class/html.formcompany.class.php
    +++ b/htdocs/core/class/html.formcompany.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2014		Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2017		Rui Strecht			<rui.strecht@aliartalentos.com>
      *
    @@ -31,10 +31,15 @@
      */
     class FormCompany
     {
    -	var $db;
    -	var $error;
    -
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 *	Constructor
    @@ -44,11 +49,10 @@ class FormCompany
     	function __construct($db)
     	{
     		$this->db = $db;
    -
    -		return 1;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    	Return list of labels (translated) of third parties type
     	 *
    @@ -58,6 +62,7 @@ class FormCompany
     	 */
     	function typent_array($mode=0, $filter='')
     	{
    +        // phpcs:enable
     		global $langs,$mysoc;
     
     		$effs = array();
    @@ -90,6 +95,7 @@ class FormCompany
     		return $effs;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Renvoie la liste des types d'effectifs possibles (pas de traduction car nombre)
     	 *
    @@ -99,6 +105,7 @@ class FormCompany
     	 */
     	function effectif_array($mode=0, $filter='')
     	{
    +        // phpcs:enable
     		$effs = array();
     
     		$sql = "SELECT id, code, libelle";
    @@ -128,6 +135,7 @@ class FormCompany
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Affiche formulaire de selection des modes de reglement
     	 *
    @@ -139,6 +147,7 @@ class FormCompany
     	 */
     	function form_prospect_level($page, $selected='', $htmlname='prospect_level_id', $empty=0)
     	{
    +        // phpcs:enable
     		global $user, $langs;
     
     		print '<form method="post" action="'.$page.'">';
    @@ -177,6 +186,7 @@ class FormCompany
     		print '</form>';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Retourne la liste deroulante des departements/province/cantons tout pays confondu ou pour un pays donne.
     	 *   Dans le cas d'une liste tout pays confondus, l'affichage fait une rupture sur le pays.
    @@ -191,9 +201,11 @@ class FormCompany
     	 */
     	function select_departement($selected='',$country_codeid=0, $htmlname='state_id')
     	{
    +        // phpcs:enable
     		print $this->select_state($selected,$country_codeid, $htmlname);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Retourne la liste deroulante des departements/province/cantons tout pays confondu ou pour un pays donne.
     	 *    Dans le cas d'une liste tout pays confondus, l'affichage fait une rupture sur le pays.
    @@ -209,6 +221,7 @@ class FormCompany
     	 */
     	function select_state($selected='',$country_codeid=0, $htmlname='state_id')
     	{
    +        // phpcs:enable
     		global $conf,$langs,$user;
     
     		dol_syslog(get_class($this)."::select_departement selected=".$selected.", country_codeid=".$country_codeid,LOG_DEBUG);
    @@ -308,6 +321,7 @@ class FormCompany
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Retourne la liste deroulante des regions actives dont le pays est actif
     	 *   La cle de la liste est le code (il peut y avoir plusieurs entree pour
    @@ -320,6 +334,7 @@ class FormCompany
     	 */
     	function select_region($selected='',$htmlname='region_id')
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     		$langs->load("dict");
     
    @@ -374,6 +389,7 @@ class FormCompany
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return combo list with people title
     	 *
    @@ -384,6 +400,7 @@ class FormCompany
     	 */
     	function select_civility($selected='',$htmlname='civility_id',$morecss='maxwidth100')
     	{
    +        // phpcs:enable
     		global $conf,$langs,$user;
     		$langs->load("dict");
     
    @@ -430,6 +447,7 @@ class FormCompany
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Retourne la liste deroulante des formes juridiques tous pays confondus ou pour un pays donne.
     	 *    Dans le cas d'une liste tous pays confondu, on affiche une rupture sur le pays.
    @@ -443,9 +461,11 @@ class FormCompany
     	 */
     	function select_forme_juridique($selected='', $country_codeid=0, $filter='')
     	{
    +        // phpcs:enable
     		print $this->select_juridicalstatus($selected, $country_codeid, $filter);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Retourne la liste deroulante des formes juridiques tous pays confondus ou pour un pays donne.
     	 *    Dans le cas d'une liste tous pays confondu, on affiche une rupture sur le pays
    @@ -458,6 +478,7 @@ class FormCompany
     	 */
     	function select_juridicalstatus($selected='', $country_codeid=0, $filter='', $htmlname='forme_juridique_code')
     	{
    +        // phpcs:enable
     		global $conf,$langs,$user;
     		$langs->load("dict");
     
    @@ -740,6 +761,7 @@ class FormCompany
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Return a select list with zip codes and their town
     	 *
    @@ -754,6 +776,7 @@ class FormCompany
     	 */
     	function select_ziptown($selected='', $htmlname='zipcode', $fields='', $fieldsize=0, $disableautocomplete=0, $moreattrib='',$morecss='')
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$out='';
    @@ -771,6 +794,7 @@ class FormCompany
     		return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return HTML string to use as input of professional id into a HTML page (siren, siret, etc...)
          *
    @@ -783,6 +807,7 @@ class FormCompany
          */
         function get_input_id_prof($idprof,$htmlname,$preselected,$country_code,$morecss='maxwidth100onsmartphone quatrevingtpercent')
         {
    +        // phpcs:enable
             global $conf,$langs;
     
             $formlength=0;
    @@ -821,6 +846,7 @@ class FormCompany
             return $out;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return a HTML select with localtax values for thirdparties
          *
    @@ -831,10 +857,11 @@ class FormCompany
          */
         function select_localtax($local, $selected, $htmlname)
         {
    -    	$tax=get_localtax_by_third($local);
    +        // phpcs:enable
    +        $tax=get_localtax_by_third($local);
     
    -    	$num = $this->db->num_rows($tax);
    -    	$i = 0;
    +        $num = $this->db->num_rows($tax);
    +        $i = 0;
         	if ($num)
         	{
         		$valors=explode(":", $tax);
    @@ -861,6 +888,4 @@ class FormCompany
         		}
         	}
         }
    -
     }
    -
    diff --git a/htdocs/core/class/html.formcontract.class.php b/htdocs/core/class/html.formcontract.class.php
    index f4902e4912e..5bdb00cfc40 100644
    --- a/htdocs/core/class/html.formcontract.class.php
    +++ b/htdocs/core/class/html.formcontract.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012-2013  Charles-Fr BENKE		<charles.fr@benke.fr>
    +/* Copyright (C) 2012-2018  Charlene BENKE	<charlie@patas-monkey.com>
      *
      * 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
    @@ -27,8 +27,15 @@
      */
     class FormContract
     {
    -    var $db;
    -    var $error;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
         /**
    @@ -42,6 +49,7 @@ class FormContract
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show a combo list with contracts qualified for a third party
     	 *
    @@ -54,18 +62,29 @@ class FormContract
     	 */
     	function select_contract($socid=-1, $selected='', $htmlname='contrattid', $maxlength=16, $showempty=1)
     	{
    +        // phpcs:enable
     		global $db,$user,$conf,$langs;
     
     		$hideunselectables = false;
    -		if (! empty($conf->global->PROJECT_HIDE_UNSELECTABLES)) $hideunselectables = true;
    +		if (! empty($conf->global->CONTRACT_HIDE_UNSELECTABLES)) $hideunselectables = true;
     
     		// Search all contacts
     		$sql = 'SELECT c.rowid, c.ref, c.fk_soc, c.statut';
     		$sql.= ' FROM '.MAIN_DB_PREFIX .'contrat as c';
     		$sql.= " WHERE c.entity = ".$conf->entity;
     		//if ($contratListId) $sql.= " AND c.rowid IN (".$contratListId.")";
    +		if ($socid > 0)
    +		{
    +			// CONTRACT_ALLOW_TO_LINK_FROM_OTHER_COMPANY is 'all' or a list of ids separated by coma.
    +		    	if (empty($conf->global->CONTRACT_ALLOW_TO_LINK_FROM_OTHER_COMPANY))
    +			    $sql.= " AND (c.fk_soc=".$socid." OR c.fk_soc IS NULL)";
    +		    	else if ($conf->global->CONTRACT_ALLOW_TO_LINK_FROM_OTHER_COMPANY != 'all')
    +			{
    +		        	$sql.= " AND (c.fk_soc IN (".$socid.", ".$conf->global->CONTRACT_ALLOW_TO_LINK_FROM_OTHER_COMPANY.") ";
    +				$sql.= " OR c.fk_soc IS NULL)";
    +		    	}
    +		}
     		if ($socid == 0) $sql.= " AND (c.fk_soc = 0 OR c.fk_soc IS NULL)";
    -		if ($socid > 0)  $sql.= " AND (c.fk_soc=".$socid." OR c.fk_soc IS NULL)";
     		$sql.= " ORDER BY c.ref ";
     
     		dol_syslog(get_class($this)."::select_contract", LOG_DEBUG);
    @@ -98,12 +117,12 @@ class FormContract
     						else
     						{
     							$disabled=0;
    -							if (! $obj->statut > 0)
    +							if ( $obj->statut ==  0)
     							{
     								$disabled=1;
     								$labeltoshow.=' ('.$langs->trans("Draft").')';
     							}
    -							if ($socid > 0 && (! empty($obj->fk_soc) && $obj->fk_soc != $socid))
    +							if ( empty($conf->global->CONTRACT_ALLOW_TO_LINK_FROM_OTHER_COMPANY) &&  $socid > 0 && (! empty($obj->fk_soc) && $obj->fk_soc != $socid))
     							{
     								$disabled=1;
     								$labeltoshow.=' - '.$langs->trans("LinkedToAnotherCompany");
    @@ -130,14 +149,14 @@ class FormContract
     			}
     			print '</select>';
     			$db->free($resql);
    -			
    +
     			if (!empty($conf->use_javascript_ajax))
     			{
     				// Make select dynamic
     				include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
     				print ajax_combobox($htmlname);
     			}
    -			
    +
     			return $num;
     		}
     		else
    @@ -146,7 +165,7 @@ class FormContract
     			return -1;
     		}
     	}
    -	
    +
     	/**
     	 *	Show a form to select a contract
     	 *
    @@ -156,12 +175,12 @@ class FormContract
     	 *	@param  string	$htmlname   Nom de la zone html
     	 *	@param	int		$maxlength	Maximum length of label
     	 *	@param	int		$showempty	Show empty line
    -	 *	@return int         		Nbr of project if OK, <0 if KO
    +	 *	@return int                 Nbr of project if OK, <0 if KO
     	 */
     	function formSelectContract($page, $socid=-1, $selected='', $htmlname='contrattid', $maxlength=16, $showempty=1)
     	{
    -	    global $langs;
    -	
    +        global $langs;
    +
             print "\n";
             print '<form method="post" action="'.$page.'">';
             print '<input type="hidden" name="action" value="setcontract">';
    @@ -169,6 +188,5 @@ class FormContract
             $this->select_contract($socid, $selected, $htmlname, $maxlength, $showempty);
             print '<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
             print '</form>';
    -	}	
    -	
    +    }
     }
    diff --git a/htdocs/core/class/html.formcron.class.php b/htdocs/core/class/html.formcron.class.php
    index 255868f02a5..94747481cb0 100644
    --- a/htdocs/core/class/html.formcron.class.php
    +++ b/htdocs/core/class/html.formcron.class.php
    @@ -28,8 +28,15 @@
      */
     class FormCron extends Form
     {
    -	var $db;
    -	var $error;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 *	Constructor
    @@ -39,10 +46,10 @@ class FormCron extends Form
     	function __construct($db)
     	{
     		$this->db = $db;
    -		return 1;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Display On Off selector
     	 *
    @@ -53,6 +60,7 @@ class FormCron extends Form
     	 */
     	function select_typejob($htmlname,$selected=0,$readonly=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$langs->load('cron@cron');
    diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php
    index c7288aa63d3..906c52c6a6e 100644
    --- a/htdocs/core/class/html.formfile.class.php
    +++ b/htdocs/core/class/html.formfile.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2013	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2014	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2014	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2010-2016	Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2013		Charles-Fr BENKE	<charles.fr@benke.fr>
      * Copyright (C) 2013		Cédric Salvador		<csalvador@gpcsolutions.fr>
    @@ -36,7 +36,11 @@ class FormFile
     {
     	private $db;
     
    +	/**
    +	 * @var string Error code (or message)
    +	 */
     	public $error;
    +
     	public $numoffiles;
     	public $infofiles;			// Used to return informations by function getDocumentsLink
     
    @@ -50,10 +54,10 @@ class FormFile
     	{
     		$this->db = $db;
     		$this->numoffiles=0;
    -		return 1;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Show form to upload a new file.
     	 *
    @@ -75,6 +79,7 @@ class FormFile
     	 */
     	function form_attach_new_file($url, $title='', $addcancel=0, $sectionid=0, $perm=1, $size=50, $object='', $options='', $useajax=1, $savingdocmask='', $linkfiles=1, $htmlname='formuserfile', $accept='', $sectiondir='')
     	{
    +        // phpcs:enable
     		global $conf,$langs, $hookmanager;
     		$hookmanager->initHooks(array('formfile'));
     
    @@ -227,6 +232,7 @@ class FormFile
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Show the box with list of available documents for object
     	 *
    @@ -251,6 +257,7 @@ class FormFile
     	 */
     	function show_documents($modulepart,$modulesubdir,$filedir,$urlsource,$genallowed,$delallowed=0,$modelselected='',$allowgenifempty=1,$forcenomultilang=0,$iconPDF=0,$notused=0,$noform=0,$param='',$title='',$buttonlabel='',$codelang='')
     	{
    +        // phpcs:enable
     		$this->numoffiles=0;
     		print $this->showdocuments($modulepart,$modulesubdir,$filedir,$urlsource,$genallowed,$delallowed,$modelselected,$allowgenifempty,$forcenomultilang,$iconPDF,$notused,$noform,$param,$title,$buttonlabel,$codelang);
     		return $this->numoffiles;
    @@ -306,7 +313,7 @@ class FormFile
     		}
     
     		$printer=0;
    -		if (in_array($modulepart,array('facture','supplier_proposal','propal','proposal','order','commande','expedition', 'commande_fournisseur', 'expensereport')))	// The direct print feature is implemented only for such elements
    +		if (in_array($modulepart,array('facture','supplier_proposal','propal','proposal','order','commande','expedition', 'commande_fournisseur', 'expensereport','livraison')))	// The direct print feature is implemented only for such elements
     		{
     			$printer = (!empty($user->rights->printing->read) && !empty($conf->printing->enabled))?true:false;
     		}
    @@ -409,6 +416,15 @@ class FormFile
     					$modellist=ModelePDFExpedition::liste_modeles($this->db);
     				}
     			}
    +            elseif ($modulepart == 'reception')
    +            {
    +                if (is_array($genallowed)) $modellist=$genallowed;
    +                else
    +                {
    +					include_once DOL_DOCUMENT_ROOT.'/core/modules/reception/modules_reception.php';
    +					$modellist = ModelePdfReception::liste_modeles($this->db);
    +				}
    +            }
     			elseif ($modulepart == 'livraison')
     			{
     				if (is_array($genallowed)) $modellist=$genallowed;
    @@ -675,7 +691,7 @@ class FormFile
     				$formadmin=new FormAdmin($this->db);
     				$defaultlang=$codelang?$codelang:$langs->getDefaultLang();
     				$morecss='maxwidth150';
    -				if (! empty($conf->browser->phone)) $morecss='maxwidth100';
    +				if ($conf->browser->layout == 'phone') $morecss='maxwidth100';
     				$out.= $formadmin->select_language($defaultlang, 'lang_id', 0, 0, 0, 0, 0, $morecss);
     			}
     			else
    @@ -714,7 +730,6 @@ class FormFile
     				$reshook = $hookmanager->executeHooks('formBuilddocOptions',$parameters,$GLOBALS['object']);
     				$out.= $hookmanager->resPrint;
     			}
    -
     		}
     
     		// Get list of files
    @@ -844,7 +859,6 @@ class FormFile
     			{
     				$out.='<tr><td colspan="'.(3+($addcolumforpicto?1:0)).'" class="opacitymedium">'.$langs->trans("None").'</td></tr>'."\n";
     			}
    -
     		}
     
     		if ($headershown)
    @@ -882,15 +896,13 @@ class FormFile
     		$out='';
     		$this->infofiles=array('nboffiles'=>0,'extensions'=>array(),'files'=>array());
     
    +		$entity = 1; // Without multicompany
    +
     		// Get object entity
    -		if (empty($conf->multicompany->enabled))
    -		{
    -			$entity = $conf->entity;
    -		}
    -		else
    +		if (! empty($conf->multicompany->enabled))
     		{
     			preg_match('/\/([0-9]+)\/[^\/]+\/'.preg_quote($modulesubdir,'/').'$/', $filedir, $regs);
    -			$entity = ((! empty($regs[1]) && $regs[1] > 1) ? $regs[1] : $conf->entity);
    +			$entity = ((! empty($regs[1]) && $regs[1] > 1) ? $regs[1] : 1); // If entity id not found in $filedir this is entity 1 by default
     		}
     
     		// Get list of files starting with name of ref (but not followed by "-" to discard uploaded files and get only generated files)
    @@ -911,7 +923,7 @@ class FormFile
     		if (! empty($file_list))
     		{
     			$out='<dl class="dropdown inline-block">
    -    			<dt><a data-ajax="false" href="#" onClick="return false;">'.img_picto('', 'listlight', '', 0, 0, 0, '', 'valignbottom').'</a></dt>
    +    			<dt><a data-ajax="false" href="#" onClick="return false;">'.img_picto('', 'listlight', '', 0, 0, 0, '', 'valignmiddle').'</a></dt>
         			<dd><div class="multichoicedoc" style="position:absolute;left:100px;" ><ul class="ulselectedfields" style="display: none;">';
     			$tmpout='';
     
    @@ -978,6 +990,7 @@ class FormFile
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Show list of documents in $filearray (may be they are all in same directory but may not)
     	 *  This also sync database if $upload_dir is defined.
    @@ -990,9 +1003,11 @@ class FormFile
     	 * 	@param	 string	$relativepath		Relative path of docs (autodefined if not provided), relative to module dir, not to MAIN_DATA_ROOT.
     	 * 	@param	 int	$permonobject		Permission on object (so permission to delete or crop document)
     	 * 	@param	 int	$useinecm			Change output for use in ecm module:
    -	 * 										0: Add a previw link. Show also rename and crop file
    +	 * 										0 or 6: Add a preview column. Show also a rename and crop button.
     	 * 										1: Add link to edit ECM entry
     	 * 										2: Add rename and crop file
    +	 *                                      4: Add a preview column
    +	 *                                      5: Add link to edit ECM entry and Add a preview column
     	 * 	@param	 string	$textifempty		Text to show if filearray is empty ('NoFileFound' if not defined)
     	 *  @param   int	$maxlength          Maximum length of file name shown.
     	 *  @param	 string	$title				Title before list. Use 'none' to disable title.
    @@ -1009,13 +1024,14 @@ class FormFile
     	 */
     	function list_of_documents($filearray,$object,$modulepart,$param='',$forcedownload=0,$relativepath='',$permonobject=1,$useinecm=0,$textifempty='',$maxlength=0,$title='',$url='', $showrelpart=0, $permtoeditline=-1,$upload_dir='',$sortfield='',$sortorder='ASC', $disablemove=1, $addfilterfields=0)
     	{
    +        // phpcs:enable
     		global $user, $conf, $langs, $hookmanager;
     		global $sortfield, $sortorder, $maxheightmini;
     		global $dolibarr_main_url_root;
     		global $form;
     
     		$disablecrop=1;
    -		if (in_array($modulepart, array('societe','product','produit','service','expensereport','holiday','member','project','ticket','user'))) $disablecrop=0;
    +		if (in_array($modulepart, array('expensereport','holiday','member','project','product','produit','service','societe','tax','ticket','user'))) $disablecrop=0;
     
     		// Define relative path used to store the file
     		if (empty($relativepath))
    @@ -1086,7 +1102,7 @@ class FormFile
     			}
     
     			// Show list of existing files
    -			if (empty($useinecm) && $title != 'none') print load_fiche_titre($title?$title:$langs->trans("AttachedFiles"));
    +			if ((empty($useinecm) || $useinecm == 6) && $title != 'none') print load_fiche_titre($title?$title:$langs->trans("AttachedFiles"));
     			if (empty($url)) $url=$_SERVER["PHP_SELF"];
     
     			print '<!-- html.formfile::list_of_documents -->'."\n";
    @@ -1099,7 +1115,7 @@ class FormFile
     			}
     
     			print '<div class="div-table-responsive-no-min">';
    -			print '<table width="100%" id="tablelines" class="'.($useinecm?'liste noborder':'liste').'">'."\n";
    +			print '<table width="100%" id="tablelines" class="'.(($useinecm && $useinecm != 6)?'liste noborder':'liste').'">'."\n";
     
     			if (! empty($addfilterfields))
     			{
    @@ -1107,7 +1123,7 @@ class FormFile
     				print '<td><input type="search_doc_ref" value="'.dol_escape_htmltag(GETPOST('search_doc_ref','alpha')).'"></td>';
     				print '<td></td>';
     				print '<td></td>';
    -				if (empty($useinecm)) print '<td></td>';
    +				if (empty($useinecm) || $useinecm == 4 || $useinecm == 5 || $useinecm == 6) print '<td></td>';
     				print '<td></td>';
     				print '<td></td>';
     				if (! $disablemove) print '<td></td>';
    @@ -1119,7 +1135,7 @@ class FormFile
     			print_liste_field_titre('Documents2',$url,"name","",$param,'align="left"',$sortfield,$sortorder);
     			print_liste_field_titre('Size',$url,"size","",$param,'align="right"',$sortfield,$sortorder);
     			print_liste_field_titre('Date',$url,"date","",$param,'align="center"',$sortfield,$sortorder);
    -			if (empty($useinecm)) print_liste_field_titre('',$url,"","",$param,'align="center"');					// Preview
    +			if (empty($useinecm) || $useinecm == 4 || $useinecm == 5 || $useinecm == 6) print_liste_field_titre('',$url,"","",$param,'align="center"');					// Preview
     			print_liste_field_titre('');
     			print_liste_field_titre('');
     			if (! $disablemove) print_liste_field_titre('');
    @@ -1133,7 +1149,6 @@ class FormFile
     				//var_dump($sortfield.' - '.$sortorder);
     				if ($sortfield && $sortorder)	// If $sortfield is for example 'position_name', we will sort on the property 'position_name' (that is concat of position+name)
     				{
    -					//var_dump($sortfield);
     					$filearray=dol_sort_array($filearray, $sortfield, $sortorder);
     				}
     			}
    @@ -1156,7 +1171,7 @@ class FormFile
     					print '<!-- Line list_of_documents '.$key.' relativepath = '.$relativepath.' -->'."\n";
     					// Do we have entry into database ?
     					print '<!-- In database: position='.$filearray[$key]['position'].' -->'."\n";
    -					print '<tr id="row-'.($filearray[$key]['rowid']>0?$filearray[$key]['rowid']:'-AFTER'.$lastrowid.'POS'.($i+1)).'">';
    +					print '<tr class="oddeven" id="row-'.($filearray[$key]['rowid']>0?$filearray[$key]['rowid']:'AFTER'.$lastrowid.'POS'.($i+1)).'">';
     
     					// File name
     					print '<td class="minwith200">';
    @@ -1207,20 +1222,31 @@ class FormFile
     					print '<td align="center" width="140px">'.dol_print_date($file['date'],"dayhour","tzuser").'</td>';	// 140px = width for date with PM format
     
     					// Preview
    -					if (empty($useinecm))
    +					if (empty($useinecm) || $useinecm == 4 || $useinecm == 5|| $useinecm == 6)
     					{
     						$fileinfo = pathinfo($file['name']);
     						print '<td align="center">';
     						if (image_format_supported($file['name']) > 0)
     						{
    -							$minifile=getImageFileNameForSize($file['name'], '_mini'); // For new thumbs using same ext (in lower case howerver) than original
    -							if (! dol_is_file($file['path'].'/'.$minifile)) $minifile=getImageFileNameForSize($file['name'], '_mini', '.png'); // For backward compatibility of old thumbs that were created with filename in lower case and with .png extension
    +						    if ($useinecm == 5 || $useinecm == 6)
    +						    {
    +						        $minifile=getImageFileNameForSize($file['name'], '');     // There is no thumb for ECM module and Media filemanager, so we use true image
    +						    }
    +						    else
    +						    {
    +						        $minifile=getImageFileNameForSize($file['name'], '_mini'); // For new thumbs using same ext (in lower case howerver) than original
    +						    }
    +						    if (! dol_is_file($file['path'].'/'.$minifile)) $minifile=getImageFileNameForSize($file['name'], '_mini', '.png'); // For backward compatibility of old thumbs that were created with filename in lower case and with .png extension
     							//print $file['path'].'/'.$minifile.'<br>';
     
    -							$urlforhref=getAdvancedPreviewUrl($modulepart, $relativepath.$fileinfo['filename'].'.'.strtolower($fileinfo['extension']), 0, '&entity='.(!empty($object->entity)?$object->entity:$conf->entity));
    -							if (empty($urlforhref)) $urlforhref=DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.(!empty($object->entity)?$object->entity:$conf->entity).'&file='.urlencode($relativepath.$fileinfo['filename'].'.'.strtolower($fileinfo['extension']));
    -							print '<a href="'.$urlforhref.'" class="aphoto" target="_blank">';
    -							print '<img border="0" height="'.$maxheightmini.'" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.(!empty($object->entity)?$object->entity:$conf->entity).'&file='.urlencode($relativepath.$minifile).'" title="">';
    +							$urlforhref=getAdvancedPreviewUrl($modulepart, $relativepath.$fileinfo['filename'].'.'.strtolower($fileinfo['extension']), 1, '&entity='.(!empty($object->entity)?$object->entity:$conf->entity));
    +							if (empty($urlforhref)) {
    +								$urlforhref=DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.(!empty($object->entity)?$object->entity:$conf->entity).'&file='.urlencode($relativepath.$fileinfo['filename'].'.'.strtolower($fileinfo['extension']));
    +								print '<a href="'.$urlforhref.'" class="aphoto" target="_blank">';
    +							} else {
    +								print '<a href="'.$urlforhref['url'].'" class="'.$urlforhref['css'].'" target="'.$urlforhref['target'].'" mime="'.$urlforhref['mime'].'">';
    +							}
    +							print '<img border="0" height="'.(($useinecm == 4 || $useinecm == 5 || $useinecm == 6)? '12' : $maxheightmini).'" src="'.DOL_URL_ROOT.'/viewimage.php?modulepart='.$modulepart.'&entity='.(!empty($object->entity)?$object->entity:$conf->entity).'&file='.urlencode($relativepath.$minifile).'" title="">';
     							print '</a>';
     						}
     						else print '&nbsp;';
    @@ -1252,12 +1278,9 @@ class FormFile
     								if ($forcedownload) $paramlink.=($paramlink?'&':'').'attachment=1';
     
     								$fulllink=$urlwithroot.'/document.php'.($paramlink?'?'.$paramlink:'');
    -								//if (! empty($object->ref))       $fulllink.='&hashn='.$object->ref;		// Hash of file path
    -								//elseif (! empty($object->label)) $fulllink.='&hashc='.$object->label;		// Hash of file content
     
     								print img_picto($langs->trans("FileSharedViaALink"),'object_globe.png').' ';
     								print '<input type="text" class="quatrevingtpercent" id="downloadlink" name="downloadexternallink" value="'.dol_escape_htmltag($fulllink).'">';
    -								//print ' <a href="'.$fulllink.'">'.$langs->trans("Download").'</a>';	// No target here
     							}
     							else
     							{
    @@ -1273,11 +1296,11 @@ class FormFile
     						// Delete or view link
     						// ($param must start with &)
     						print '<td class="valignmiddle right actionbuttons"><!-- action on files -->';
    -						if ($useinecm == 1)
    +						if ($useinecm == 1 || $useinecm == 5)
     						{
     							print '<a href="'.DOL_URL_ROOT.'/ecm/file_card.php?urlfile='.urlencode($file['name']).$param.'" class="editfilelink" rel="'.urlencode($file['name']).'">'.img_edit('default', 0, 'class="paddingrightonly"').'</a>';
     						}
    -						if (! $useinecm || $useinecm == 2)
    +						if (empty($useinecm) || $useinecm == 2 || $useinecm == 6)
     						{
     							$newmodulepart=$modulepart;
     							if (in_array($modulepart, array('product','produit','service'))) $newmodulepart='produit|service';
    @@ -1293,28 +1316,23 @@ class FormFile
     
     							if ($permtoeditline)
     							{
    -								print '<a href="'.(($useinecm == 1)?'#':($url.'?action=editfile&urlfile='.urlencode($filepath).$param)).'" class="editfilelink" rel="'.$filepath.'">'.img_edit('default',0,'class="paddingrightonly"').'</a>';
    +								$paramsectiondir=(in_array($modulepart, array('medias','ecm'))?'&section_dir='.urlencode($relativepath):'');
    +								print '<a href="'.(($useinecm == 1 || $useinecm == 5)?'#':($url.'?action=editfile&urlfile='.urlencode($filepath).$paramsectiondir.$param)).'" class="editfilelink" rel="'.$filepath.'">'.img_edit('default',0,'class="paddingrightonly"').'</a>';
     							}
     						}
     						if ($permonobject)
     						{
    -							/*
    -    						if ($file['level1name'] <> $object->id)
    -    							$filepath=$file['level1name'].'/'.$file['name'];
    -    						else
    -    							$filepath=$file['name'];
    -    						*/
     							$useajax=1;
     							if (! empty($conf->dol_use_jmobile)) $useajax=0;
     							if (empty($conf->use_javascript_ajax)) $useajax=0;
     							if (! empty($conf->global->MAIN_ECM_DISABLE_JS)) $useajax=0;
    -							print '<a href="'.(($useinecm && $useajax)?'#':($url.'?action=delete&urlfile='.urlencode($filepath).$param)).'" class="deletefilelink" rel="'.$filepath.'">'.img_delete().'</a>';
    +							print '<a href="'.((($useinecm && $useinecm != 6) && $useajax)?'#':($url.'?action=delete&urlfile='.urlencode($filepath).$param)).'" class="deletefilelink" rel="'.$filepath.'">'.img_delete().'</a>';
     						}
     						print "</td>";
     
     						if (empty($disablemove))
     						{
    -							if ($nboffiles > 1 && empty($conf->browser->phone)) {
    +							if ($nboffiles > 1 && $conf->browser->layout != 'phone') {
     								print '<td align="center" class="linecolmove tdlineupdown">';
     								if ($i > 0) {
     									print '<a class="lineupdown" href="'.$_SERVER["PHP_SELF"].'?id='.$this->id.'&amp;action=up&amp;rowid='.$line->id.'">'.img_up('default',0,'imgupforline').'</a>';
    @@ -1325,7 +1343,7 @@ class FormFile
     								print '</td>';
     							}
     							else {
    -							   	print '<td align="center"'.((empty($conf->browser->phone) && empty($disablemove)) ?' class="linecolmove tdlineupdown"':' class="linecolmove"').'>';
    +							   	print '<td align="center"'.(($conf->browser->layout != 'phone' && empty($disablemove)) ?' class="linecolmove tdlineupdown"':' class="linecolmove"').'>';
     							   	print '</td>';
     							}
     					   }
    @@ -1346,7 +1364,7 @@ class FormFile
     			}
     			if ($nboffiles == 0)
     			{
    -				$colspan=(empty($useinecm)?'6':'6');
    +				$colspan='6';
     				if (empty($disablemove)) $colspan++;		// 6 columns or 7
     				print '<tr class="oddeven"><td colspan="'.$colspan.'" class="opacitymedium">';
     				if (empty($textifempty)) print $langs->trans("NoFileFound");
    @@ -1375,6 +1393,7 @@ class FormFile
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show list of documents in a directory
     	 *
    @@ -1395,6 +1414,7 @@ class FormFile
     	 */
     	function list_of_autoecmfiles($upload_dir, $filearray, $modulepart, $param, $forcedownload=0, $relativepath='', $permtodelete=1, $useinecm=0, $textifempty='', $maxlength=0, $url='', $addfilterfields=0)
     	{
    +        // phpcs:enable
     		global $user, $conf, $langs, $form;
     		global $sortfield, $sortorder;
     		global $search_doc_ref;
    @@ -1402,7 +1422,7 @@ class FormFile
     		dol_syslog(get_class($this).'::list_of_autoecmfiles upload_dir='.$upload_dir.' modulepart='.$modulepart);
     
     		// Show list of documents
    -		if (empty($useinecm)) print load_fiche_titre($langs->trans("AttachedFiles"));
    +		if (empty($useinecm) || $useinecm == 6) print load_fiche_titre($langs->trans("AttachedFiles"));
     		if (empty($url)) $url=$_SERVER["PHP_SELF"];
     
     		if (! empty($addfilterfields))
    @@ -1610,7 +1630,7 @@ class FormFile
     				print '<td align="right">'.dol_print_size($file['size'],1,1).'</td>';
     				print '<td align="center">'.dol_print_date($file['date'],"dayhour").'</td>';
     				print '<td align="right">';
    -				//if (! empty($useinecm))  print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?modulepart='.$modulepart;
    +				//if (! empty($useinecm) && $useinecm != 6)  print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?modulepart='.$modulepart;
     				//if ($forcedownload) print '&attachment=1';
     				//print '&file='.urlencode($relativefile).'">';
     				//print img_view().'</a> &nbsp; ';
    @@ -1663,7 +1683,6 @@ class FormFile
     
     		// Include template
     		include DOL_DOCUMENT_ROOT.'/core/tpl/ajax/fileupload_view.tpl.php';
    -
     	}
     
     	/**
    @@ -1835,6 +1854,4 @@ class FormFile
     		}
     		return $out;
     	}
    -
     }
    -
    diff --git a/htdocs/core/class/html.formintervention.class.php b/htdocs/core/class/html.formintervention.class.php
    index b675ba6e674..ae35b74fad9 100644
    --- a/htdocs/core/class/html.formintervention.class.php
    +++ b/htdocs/core/class/html.formintervention.class.php
    @@ -27,8 +27,15 @@
      */
     class FormIntervention
     {
    -    var $db;
    -    var $error;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
         /**
    @@ -42,6 +49,7 @@ class FormIntervention
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show a combo list with contracts qualified for a third party
     	 *
    @@ -54,6 +62,7 @@ class FormIntervention
     	 */
     	function select_interventions($socid=-1, $selected='', $htmlname='interventionid', $maxlength=16, $showempty=1)
     	{
    +        // phpcs:enable
     		global $db,$user,$conf,$langs;
     
     		$out='';
    diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php
    index e8693af943a..2cb10056cc3 100644
    --- a/htdocs/core/class/html.formmail.class.php
    +++ b/htdocs/core/class/html.formmail.class.php
    @@ -1,9 +1,10 @@
     <?php
     /* Copyright (C) 2005-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin		<regis.houssin@capnetworks.com>
    - * Copyright (C) 2010-2011 Juanjo Menent		<jmenent@2byte.es>
    + * Copyright (C) 2005-2012 Regis Houssin	    <regis.houssin@inodbox.com>
    + * Copyright (C) 2010-2011 Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2015-2017 Marcos García        <marcosgdf@gmail.com>
    - * Copyright (C) 2015-2017 Nicolas ZABOURI        <info@inovea-conseil.com>
    + * Copyright (C) 2015-2017 Nicolas ZABOURI      <info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -35,58 +36,83 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/html.form.class.php';
      */
     class FormMail extends Form
     {
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -	var $withform;				// 1=Include HTML form tag and show submit button, 0=Do not include form tag and submit button, -1=Do not include form tag but include submit button
    +	public $withform;				// 1=Include HTML form tag and show submit button, 0=Do not include form tag and submit button, -1=Do not include form tag but include submit button
     
    -	var $fromname;
    -	var $frommail;
    -	var $replytoname;
    -	var $replytomail;
    -	var $toname;
    -	var $tomail;
    -	var $trackid;
    +	public $fromname;
    +	public $frommail;
    +
    +    /**
    +     * @var string user, company, robot
    +     */
    +    public $fromtype;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fromid;
    +
    +    /**
    +     * @var string thirdparty etc
    +     */
    +    public $totype;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $toid;
    +
    +    public $replytoname;
    +	public $replytomail;
    +	public $toname;
    +	public $tomail;
    +	public $trackid;
    +
    +	public $withsubstit;			// Show substitution array
    +	public $withfrom;
     
    -	var $withsubstit;			// Show substitution array
    -	var $withfrom;
     	/**
     	 * @var int
     	 * @deprecated Fill withto with array before calling method.
     	 * @see withto
     	 */
     	public $withtosocid;
    +
     	/**
     	 * @var int|int[]
     	 */
     	public $withto;				// Show recipient emails
    -	var $withtofree;			// Show free text for recipient emails
    -	var $withtocc;
    -	var $withtoccc;
    -	var $withtopic;
    -	var $withfile;				// 0=No attaches files, 1=Show attached files, 2=Can add new attached files
    -	var $withmaindocfile;		// 1=Add a checkbox "Attach also main document" for mass actions (checked by default), -1=Add checkbox (not checked by default)
    -	var $withbody;
     
    -	var $withfromreadonly;
    -	var $withreplytoreadonly;
    -	var $withtoreadonly;
    -	var $withtoccreadonly;
    -	var $withtocccreadonly;
    -	var $withtopicreadonly;
    -	var $withfilereadonly;
    -	var $withdeliveryreceipt;
    -	var $withcancel;
    -	var $withfckeditor;
    +	public $withtofree;			// Show free text for recipient emails
    +	public $withtocc;
    +	public $withtoccc;
    +	public $withtopic;
    +	public $withfile;				// 0=No attaches files, 1=Show attached files, 2=Can add new attached files
    +	public $withmaindocfile;		// 1=Add a checkbox "Attach also main document" for mass actions (checked by default), -1=Add checkbox (not checked by default)
    +	public $withbody;
     
    -	var $substit=array();
    -	var $substit_lines=array();
    -	var $param=array();
    +	public $withfromreadonly;
    +	public $withreplytoreadonly;
    +	public $withtoreadonly;
    +	public $withtoccreadonly;
    +	public $withtocccreadonly;
    +	public $withtopicreadonly;
    +	public $withfilereadonly;
    +	public $withdeliveryreceipt;
    +	public $withcancel;
    +	public $withfckeditor;
    +
    +	public $substit=array();
    +	public $substit_lines=array();
    +	public $param=array();
     
     	public $withtouser=array();
     	public $withtoccuser=array();
     
    -	var $error;
    -
     	public $lines_model;
     
     
    @@ -123,10 +149,9 @@ class FormMail extends Form
     		$this->withbodyreadonly=0;
     		$this->withdeliveryreceiptreadonly=0;
     		$this->withfckeditor=-1;	// -1 = Auto
    -
    -		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Clear list of attached files in send mail form (also stored in session)
     	 *
    @@ -134,6 +159,7 @@ class FormMail extends Form
     	 */
     	function clear_attached_files()
     	{
    +        // phpcs:enable
     		global $conf,$user;
     		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
    @@ -148,6 +174,7 @@ class FormMail extends Form
     		unset($_SESSION["listofmimes".$keytoavoidconflict]);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Add a file into the list of attached files (stored in SECTION array)
     	 *
    @@ -158,6 +185,7 @@ class FormMail extends Form
     	 */
     	function add_attached_files($path, $file='', $type='')
     	{
    +        // phpcs:enable
     		$listofpaths=array();
     		$listofnames=array();
     		$listofmimes=array();
    @@ -180,6 +208,7 @@ class FormMail extends Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Remove a file from the list of attached files (stored in SECTION array)
     	 *
    @@ -188,6 +217,7 @@ class FormMail extends Form
     	 */
     	function remove_attached_files($keytodelete)
     	{
    +        // phpcs:enable
     		$listofpaths=array();
     		$listofnames=array();
     		$listofmimes=array();
    @@ -208,6 +238,7 @@ class FormMail extends Form
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return list of attached files (stored in SECTION array)
     	 *
    @@ -215,6 +246,7 @@ class FormMail extends Form
     	 */
     	function get_attached_files()
     	{
    +        // phpcs:enable
     		$listofpaths=array();
     		$listofnames=array();
     		$listofmimes=array();
    @@ -226,6 +258,7 @@ class FormMail extends Form
     		return array('paths'=>$listofpaths, 'names'=>$listofnames, 'mimes'=>$listofmimes);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show the form to input an email
     	 *  this->withfile: 0=No attaches files, 1=Show attached files, 2=Can add new attached files
    @@ -237,9 +270,11 @@ class FormMail extends Form
     	 */
     	function show_form($addfileaction='addfile',$removefileaction='removefile')
     	{
    +        // phpcs:enable
     		print $this->get_form($addfileaction,$removefileaction);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Get the form to input an email
     	 *  this->withfile: 0=No attaches files, 1=Show attached files, 2=Can add new attached files
    @@ -252,13 +287,13 @@ class FormMail extends Form
     	 */
     	function get_form($addfileaction='addfile', $removefileaction='removefile')
     	{
    +        // phpcs:enable
     		global $conf, $langs, $user, $hookmanager, $form;
     
     		if (! is_object($form)) $form=new Form($this->db);
     
    -		$langs->load("other");
    -		$langs->load("mails");
    -
    +		// Load translation files required by the page
    +        $langs->loadLangs(array('other', 'mails'));
     
     		// Clear temp files. Must be done at beginning, before call of triggers
     		if (GETPOST('mode','alpha') == 'init' || (GETPOST('modelmailselected','alpha') && GETPOST('modelmailselected','alpha') != '-1'))
    @@ -649,7 +684,7 @@ class FormMail extends Form
     				$out.= "</td></tr>\n";
     			}
     
    -			// withoptiononeemailperrecipient
    +			// With option one email per recipient
     			if (! empty($this->withoptiononeemailperrecipient))
     			{
     				$out.= '<tr><td class="minwidth200">';
    @@ -716,39 +751,8 @@ class FormMail extends Form
     			}
     
     			// CCC
    -			if (! empty($this->withtoccc) || is_array($this->withtoccc))
    -			{
    -				$out.= '<tr><td>';
    -				$out.= $form->textwithpicto($langs->trans("MailCCC"),$langs->trans("YouCanUseCommaSeparatorForSeveralRecipients"));
    -				$out.= '</td><td>';
    -				if (! empty($this->withtocccreadonly))
    -				{
    -					$out.= (! is_array($this->withtoccc) && ! is_numeric($this->withtoccc))?$this->withtoccc:"";
    -				}
    -				else
    -				{
    -					$out.= '<input class="minwidth200" id="sendtoccc" name="sendtoccc" value="'.((! is_array($this->withtoccc) && ! is_numeric($this->withtoccc))? (isset($_POST["sendtoccc"])?$_POST["sendtoccc"]:$this->withtoccc) : (isset($_POST["sendtoccc"])?$_POST["sendtoccc"]:"") ).'" />';
    -					if (! empty($this->withtoccc) && is_array($this->withtoccc))
    -					{
    -						$out.= " ".$langs->trans("and")."/".$langs->trans("or")." ";
    -						// multiselect array convert html entities into options tags, even if we dont want this, so we encode them a second time
    -						$tmparray = $this->withtoccc;
    -						foreach($tmparray as $key => $val)
    -						{
    -							$tmparray[$key]=dol_htmlentities($tmparray[$key], null, 'UTF-8', true);
    -						}
    -						$withtocccselected=GETPOST("receiverccc");     // Array of selected value
    -						$out.= $form->multiselectarray("receiverccc", $tmparray, $withtocccselected, null, null, null,null, "90%");
    -					}
    -				}
    -
    -				$showinfobcc='';
    -				if (! empty($conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO) && ! empty($this->param['models']) && $this->param['models'] == 'propal_send') $showinfobcc=$conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO;
    -				if (! empty($conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_PROPOSAL_TO) && ! empty($this->param['models']) && $this->param['models'] == 'supplier_proposal_send') $showinfobcc=$conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_PROPOSAL_TO;
    -				if (! empty($conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO) && ! empty($this->param['models']) && $this->param['models'] == 'order_send') $showinfobcc=$conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO;
    -				if (! empty($conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO) && ! empty($this->param['models']) && $this->param['models'] == 'facture_send') $showinfobcc=$conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO;
    -				if ($showinfobcc) $out.=' + '.$showinfobcc;
    -				$out.= "</td></tr>\n";
    +			if (! empty($this->withtoccc) || is_array($this->withtoccc)) {
    +				$out .= $this->getHtmlForWithCcc();
     			}
     
     			// Replyto
    @@ -764,77 +768,18 @@ class FormMail extends Form
     			}
     
     			// Errorsto
    -			if (! empty($this->witherrorsto))
    -			{
    -				//if (! $this->errorstomail) $this->errorstomail=$this->frommail;
    -				$errorstomail = (! empty($conf->global->MAIN_MAIL_ERRORS_TO) ? $conf->global->MAIN_MAIL_ERRORS_TO : $this->errorstomail);
    -				if ($this->witherrorstoreadonly)
    -				{
    -					$out.= '<input type="hidden" id="errorstomail" name="errorstomail" value="'.$errorstomail.'" />';
    -					$out.= '<tr><td>'.$langs->trans("MailErrorsTo").'</td><td>';
    -					$out.= $errorstomail;
    -					$out.= "</td></tr>\n";
    -				}
    -				else
    -				{
    -					$out.= '<tr><td>'.$langs->trans("MailErrorsTo").'</td><td>';
    -					$out.= '<input size="30" id="errorstomail" name="errorstomail" value="'.$errorstomail.'" />';
    -					$out.= "</td></tr>\n";
    -				}
    +			if (! empty($this->witherrorsto)) {
    +				$out .= $this->getHtmlForWithErrorsTo();
     			}
     
     			// Ask delivery receipt
    -			if (! empty($this->withdeliveryreceipt))
    -			{
    -				$out.= '<tr><td>'.$langs->trans("DeliveryReceipt").'</td><td>';
    -
    -				if (! empty($this->withdeliveryreceiptreadonly))
    -				{
    -					$out.= yn($this->withdeliveryreceipt);
    -				}
    -				else
    -				{
    -					$defaultvaluefordeliveryreceipt=0;
    -					if (! empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_PROPAL) && ! empty($this->param['models']) && $this->param['models'] == 'propal_send') $defaultvaluefordeliveryreceipt=1;
    -					if (! empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_SUPPLIER_PROPOSAL) && ! empty($this->param['models']) && $this->param['models'] == 'supplier_proposal_send') $defaultvaluefordeliveryreceipt=1;
    -					if (! empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_ORDER) && ! empty($this->param['models']) && $this->param['models'] == 'order_send') $defaultvaluefordeliveryreceipt=1;
    -					if (! empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_INVOICE) && ! empty($this->param['models']) && $this->param['models'] == 'facture_send') $defaultvaluefordeliveryreceipt=1;
    -					$out.= $form->selectyesno('deliveryreceipt', (isset($_POST["deliveryreceipt"])?$_POST["deliveryreceipt"]:$defaultvaluefordeliveryreceipt), 1);
    -				}
    -
    -				$out.= "</td></tr>\n";
    +			if (! empty($this->withdeliveryreceipt)) {
    +				$out .= $this->getHtmlForDeliveryReceipt();
     			}
     
     			// Topic
    -			if (! empty($this->withtopic))
    -			{
    -				$defaulttopic=GETPOST('subject','none');
    -				if (! GETPOST('modelselected','alpha') || GETPOST('modelmailselected') != '-1')
    -				{
    -					if ($arraydefaultmessage && $arraydefaultmessage->topic) {
    -						$defaulttopic = $arraydefaultmessage->topic;
    -					} elseif (! is_numeric($this->withtopic)) {
    -						$defaulttopic = $this->withtopic;
    -					}
    -				}
    -
    -				$defaulttopic=make_substitutions($defaulttopic,$this->substit);
    -
    -				$out.= '<tr>';
    -				$out.= '<td class="fieldrequired">';
    -				$out.=$form->textwithpicto($langs->trans('MailTopic'), $helpforsubstitution, 1, 'help', '', 0, 2, 'substittooltipfromtopic');
    -				$out.='</td>';
    -				$out.= '<td>';
    -				if ($this->withtopicreadonly)
    -				{
    -					$out.= $defaulttopic;
    -					$out.= '<input type="hidden" class="quatrevingtpercent" id="subject" name="subject" value="'.$defaulttopic.'" />';
    -				}
    -				else
    -				{
    -					$out.= '<input type="text" class="quatrevingtpercent" id="subject" name="subject" value="'. ((isset($_POST["subject"]) && ! $_POST['modelselected'])?$_POST["subject"]:($defaulttopic?$defaulttopic:'')) .'" />';
    -				}
    -				$out.= "</td></tr>\n";
    +			if (! empty($this->withtopic)) {
    +				$out .= $this->getHtmlForTopic($arraydefaultmessage, $helpforsubstitution);
     			}
     
     			// Attached files
    @@ -947,7 +892,7 @@ class FormMail extends Form
     					$url=getOnlinePaymentUrl(0, $typeforonlinepayment, $this->substit['__REF__']);
     					$paymenturl=$url;
     
    -					$validpaymentmethod = getValidOnlinePaymentMethods($paymentmethod);
    +					$validpaymentmethod = getValidOnlinePaymentMethods('');
     				}
     
     				if (count($validpaymentmethod) > 0 && $paymenturl)
    @@ -1064,7 +1009,126 @@ class FormMail extends Form
     		}
     	}
     
    +	/**
    +	 * get html For WithCCC
    +	 *
    +	 * @return string html
    +	 */
    +	public function getHtmlForWithCcc()
    +	{
    +		global $conf, $langs, $form;
    +		$out = '<tr><td>';
    +		$out.= $form->textwithpicto($langs->trans("MailCCC"),$langs->trans("YouCanUseCommaSeparatorForSeveralRecipients"));
    +		$out.= '</td><td>';
    +		if (! empty($this->withtocccreadonly)) {
    +			$out.= (! is_array($this->withtoccc) && ! is_numeric($this->withtoccc))?$this->withtoccc:"";
    +		} else {
    +			$out.= '<input class="minwidth200" id="sendtoccc" name="sendtoccc" value="'.((! is_array($this->withtoccc) && ! is_numeric($this->withtoccc))? (isset($_POST["sendtoccc"])?$_POST["sendtoccc"]:$this->withtoccc) : (isset($_POST["sendtoccc"])?$_POST["sendtoccc"]:"") ).'" />';
    +			if (! empty($this->withtoccc) && is_array($this->withtoccc)) {
    +				$out.= " ".$langs->trans("and")."/".$langs->trans("or")." ";
    +				// multiselect array convert html entities into options tags, even if we dont want this, so we encode them a second time
    +				$tmparray = $this->withtoccc;
    +				foreach ($tmparray as $key => $val) {
    +					$tmparray[$key]=dol_htmlentities($tmparray[$key], null, 'UTF-8', true);
    +				}
    +				$withtocccselected=GETPOST("receiverccc");     // Array of selected value
    +				$out.= $form->multiselectarray("receiverccc", $tmparray, $withtocccselected, null, null, null,null, "90%");
    +			}
    +		}
     
    +		$showinfobcc='';
    +		if (! empty($conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO) && ! empty($this->param['models']) && $this->param['models'] == 'propal_send') $showinfobcc=$conf->global->MAIN_MAIL_AUTOCOPY_PROPOSAL_TO;
    +		if (! empty($conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_PROPOSAL_TO) && ! empty($this->param['models']) && $this->param['models'] == 'supplier_proposal_send') $showinfobcc=$conf->global->MAIN_MAIL_AUTOCOPY_SUPPLIER_PROPOSAL_TO;
    +		if (! empty($conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO) && ! empty($this->param['models']) && $this->param['models'] == 'order_send') $showinfobcc=$conf->global->MAIN_MAIL_AUTOCOPY_ORDER_TO;
    +		if (! empty($conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO) && ! empty($this->param['models']) && $this->param['models'] == 'facture_send') $showinfobcc=$conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO;
    +		if ($showinfobcc) $out.=' + '.$showinfobcc;
    +		$out.= "</td></tr>\n";
    +		return $out;
    +	}
    +
    +	/**
    +	 * get Html For WithErrorsTo
    +	 *
    +	 * @return string html
    +	 */
    +	public function getHtmlForWithErrorsTo()
    +	{
    +		global $conf, $langs;
    +		//if (! $this->errorstomail) $this->errorstomail=$this->frommail;
    +		$errorstomail = (! empty($conf->global->MAIN_MAIL_ERRORS_TO) ? $conf->global->MAIN_MAIL_ERRORS_TO : $this->errorstomail);
    +		if ($this->witherrorstoreadonly) {
    +			$out.= '<tr><td>'.$langs->trans("MailErrorsTo").'</td><td>';
    +			$out = '<input type="hidden" id="errorstomail" name="errorstomail" value="'.$errorstomail.'" />';
    +			$out.= $errorstomail;
    +			$out.= "</td></tr>\n";
    +		} else {
    +			$out.= '<tr><td>'.$langs->trans("MailErrorsTo").'</td><td>';
    +			$out.= '<input size="30" id="errorstomail" name="errorstomail" value="'.$errorstomail.'" />';
    +			$out.= "</td></tr>\n";
    +		}
    +		return $out;
    +	}
    +
    +	/**
    +	 * get Html For Asking for Deliveriy Receipt
    +	 *
    +	 * @return string html
    +	 */
    +	public function getHtmlForDeliveryreceipt()
    +	{
    +		global $conf, $langs, $form;
    +		$out = '<tr><td>'.$langs->trans("DeliveryReceipt").'</td><td>';
    +
    +		if (! empty($this->withdeliveryreceiptreadonly)) {
    +			$out.= yn($this->withdeliveryreceipt);
    +		} else {
    +			$defaultvaluefordeliveryreceipt=0;
    +			if (! empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_PROPAL) && ! empty($this->param['models']) && $this->param['models'] == 'propal_send') $defaultvaluefordeliveryreceipt=1;
    +			if (! empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_SUPPLIER_PROPOSAL) && ! empty($this->param['models']) && $this->param['models'] == 'supplier_proposal_send') $defaultvaluefordeliveryreceipt=1;
    +			if (! empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_ORDER) && ! empty($this->param['models']) && $this->param['models'] == 'order_send') $defaultvaluefordeliveryreceipt=1;
    +			if (! empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_INVOICE) && ! empty($this->param['models']) && $this->param['models'] == 'facture_send') $defaultvaluefordeliveryreceipt=1;
    +			$out.= $form->selectyesno('deliveryreceipt', (isset($_POST["deliveryreceipt"])?$_POST["deliveryreceipt"]:$defaultvaluefordeliveryreceipt), 1);
    +		}
    +		$out.= "</td></tr>\n";
    +		return $out;
    +	}
    +
    +	/**
    +	 * get Html For Topic of message
    +	 *
    +	 * @param	array	$arraydefaultmessage		Array with message template content
    +	 * @param	string	$helpforsubstitution		Help string for substitution
    +	 * @return 	string 								Text for topic
    +	 */
    +	public function getHtmlForTopic($arraydefaultmessage, $helpforsubstitution)
    +	{
    +		global $conf, $langs, $form;
    +
    +		$defaulttopic = GETPOST('subject','none');
    +		if (! GETPOST('modelselected','alpha') || GETPOST('modelmailselected') != '-1') {
    +			if ($arraydefaultmessage && $arraydefaultmessage->topic) {
    +				$defaulttopic = $arraydefaultmessage->topic;
    +			} elseif (! is_numeric($this->withtopic)) {
    +				$defaulttopic = $this->withtopic;
    +			}
    +		}
    +
    +		$defaulttopic=make_substitutions($defaulttopic,$this->substit);
    +
    +		$out = '<tr>';
    +		$out.= '<td class="fieldrequired">';
    +		$out.= $form->textwithpicto($langs->trans('MailTopic'), $helpforsubstitution, 1, 'help', '', 0, 2, 'substittooltipfromtopic');
    +		$out.= '</td>';
    +		$out.= '<td>';
    +		if ($this->withtopicreadonly) {
    +			$out.= $defaulttopic;
    +			$out.= '<input type="hidden" class="quatrevingtpercent" id="subject" name="subject" value="'.$defaulttopic.'" />';
    +		} else {
    +			$out.= '<input type="text" class="quatrevingtpercent" id="subject" name="subject" value="'. ((isset($_POST["subject"]) && ! $_POST['modelselected'])?$_POST["subject"]:($defaulttopic?$defaulttopic:'')) .'" />';
    +		}
    +		$out.= "</td></tr>\n";
    +		return $out;
    +	}
     
     	/**
     	 *      Return templates of email with type = $type_template or type = 'all'.
    @@ -1384,8 +1448,6 @@ class FormMail extends Form
     			}
     		}
     
    -		$tmparray['__(AnyTranslationKey)__']="Translation";
    -
     		foreach($tmparray as $key => $val)
     		{
     			if (empty($val)) $tmparray[$key]=$key;
    @@ -1393,7 +1455,6 @@ class FormMail extends Form
     
     		return $tmparray;
     	}
    -
     }
     
     
    @@ -1402,8 +1463,16 @@ class FormMail extends Form
      */
     class ModelMail
     {
    +	/**
    +	 * @var int ID
    +	 */
     	public $id;
    -	public $label;
    +
    +	/**
    +     * @var string Model mail label
    +     */
    +    public $label;
    +
     	public $topic;
     	public $content;
     	public $content_lines;
    diff --git a/htdocs/core/class/html.formmailing.class.php b/htdocs/core/class/html.formmailing.class.php
    index e3e6ce4cbf9..067692f5094 100644
    --- a/htdocs/core/class/html.formmailing.class.php
    +++ b/htdocs/core/class/html.formmailing.class.php
    @@ -23,11 +23,14 @@
     require_once DOL_DOCUMENT_ROOT .'/core/class/html.form.class.php';
     
     /**
    - *	Class to offer components to list and upload files
    + *  Class to offer components to list and upload files
      */
     class FormMailing extends Form
     {
    -	public $errors=array();
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
     
     	/**
     	 * Output a select with destinaries status
    @@ -37,7 +40,8 @@ class FormMailing extends Form
     	 * @param integer  $show_empty     Show empty option
     	 * @return string HTML select
     	 */
    -	public function selectDestinariesStatus($selectedid='',$htmlname='dest_status', $show_empty=0) {
    +    public function selectDestinariesStatus($selectedid='', $htmlname='dest_status', $show_empty=0)
    +    {
     
     		global $langs;
     		$langs->load("mails");
    @@ -54,5 +58,5 @@ class FormMailing extends Form
             $options = $options + $mailing->statut_dest;
     
             return Form::selectarray($htmlname, $options, $selectedid, 0, 0, 0, '', 1);
    -	}
    +    }
     }
    diff --git a/htdocs/core/class/html.formmargin.class.php b/htdocs/core/class/html.formmargin.class.php
    index da8acce83d4..cdd827145b0 100644
    --- a/htdocs/core/class/html.formmargin.class.php
    +++ b/htdocs/core/class/html.formmargin.class.php
    @@ -28,8 +28,15 @@
      */
     class FormMargin
     {
    -    var $db;
    -    var $error;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
         /**
    @@ -40,8 +47,6 @@ class FormMargin
         function __construct($db)
         {
             $this->db = $db;
    -
    -        return 1;
         }
     
     
    @@ -275,6 +280,5 @@ class FormMargin
     		print '</table>';
     		print '</div>';
     	}
    -
     }
     
    diff --git a/htdocs/core/class/html.formorder.class.php b/htdocs/core/class/html.formorder.class.php
    index 68fa96e03ee..781b3f76e4f 100644
    --- a/htdocs/core/class/html.formorder.class.php
    +++ b/htdocs/core/class/html.formorder.class.php
    @@ -100,6 +100,5 @@ class FormOrder extends Form
     
     		return 1;
     	}
    -
     }
     
    diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php
    index 69fe03ecaa1..8ca0b988fda 100644
    --- a/htdocs/core/class/html.formother.class.php
    +++ b/htdocs/core/class/html.formother.class.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
      * Copyright (C) 2006      Marc Barilley/Ocebo  <marc@ocebo.com>
      * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerker@telenet.be>
    @@ -38,7 +38,11 @@
     class FormOther
     {
         private $db;
    -    public $error;
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error;
     
     
         /**
    @@ -49,11 +53,10 @@ class FormOther
         function __construct($db)
         {
             $this->db = $db;
    -
    -        return 1;
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Return HTML select list of export models
          *
    @@ -64,12 +67,13 @@ class FormOther
          *    @param    int		$fk_user          Utilisateur créant le modèle
          *    @return	void
          */
    -    function select_export_model($selected='',$htmlname='exportmodelid',$type='',$useempty=0, $fk_user=null)
    +    function select_export_model($selected='', $htmlname='exportmodelid', $type='', $useempty=0, $fk_user=null)
         {
    +        // phpcs:enable
             $sql = "SELECT rowid, label";
             $sql.= " FROM ".MAIN_DB_PREFIX."export_model";
             $sql.= " WHERE type = '".$type."'";
    -		if(!empty($fk_user))$sql.=" AND fk_user=".$fk_user;
    +		if (!empty($fk_user)) $sql.=" AND fk_user=".$fk_user;
             $sql.= " ORDER BY rowid";
             $result = $this->db->query($sql);
             if ($result)
    @@ -105,6 +109,7 @@ class FormOther
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Return list of export models
          *
    @@ -114,8 +119,9 @@ class FormOther
          *    @param    int		$useempty          Affiche valeur vide dans liste
          *    @return	void
          */
    -    function select_import_model($selected='',$htmlname='importmodelid',$type='',$useempty=0)
    +    function select_import_model($selected='', $htmlname='importmodelid', $type='', $useempty=0)
         {
    +        // phpcs:enable
             $sql = "SELECT rowid, label";
             $sql.= " FROM ".MAIN_DB_PREFIX."import_model";
             $sql.= " WHERE type = '".$type."'";
    @@ -154,6 +160,7 @@ class FormOther
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Return list of ecotaxes with label
          *
    @@ -161,8 +168,9 @@ class FormOther
          *    @param    string	$htmlname	Name of combo list
          *    @return	integer
          */
    -    function select_ecotaxes($selected='',$htmlname='ecotaxe_id')
    +    function select_ecotaxes($selected='', $htmlname='ecotaxe_id')
         {
    +        // phpcs:enable
             global $langs;
     
             $sql = "SELECT e.rowid, e.code, e.label, e.price, e.organization,";
    @@ -210,6 +218,7 @@ class FormOther
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Return list of revenue stamp for country
          *
    @@ -218,8 +227,9 @@ class FormOther
          *    @param    string	$country_code   Country Code
          *    @return	string					HTML select list
          */
    -    function select_revenue_stamp($selected='',$htmlname='revenuestamp',$country_code='')
    +    function select_revenue_stamp($selected='', $htmlname='revenuestamp', $country_code='')
         {
    +        // phpcs:enable
         	global $langs;
     
         	$out='';
    @@ -267,6 +277,7 @@ class FormOther
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Return a HTML select list to select a percent
          *
    @@ -281,6 +292,7 @@ class FormOther
          */
         function select_percent($selected=0,$htmlname='percent',$disabled=0,$increment=5,$start=0,$end=100,$showempty=0)
         {
    +        // phpcs:enable
             $return = '<select class="flat" name="'.$htmlname.'" '.($disabled?'disabled':'').'>';
             if ($showempty) $return.='<option value="-1"'.(($selected == -1 || $selected == '')?' selected':'').'>&nbsp;</option>';
     
    @@ -303,6 +315,7 @@ class FormOther
             return $return;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return select list for categories (to use in form search selectors)
          *
    @@ -317,6 +330,7 @@ class FormOther
          */
         function select_categories($type, $selected=0, $htmlname='search_categ', $nocateg=0, $showempty=1, $morecss='')
         {
    +        // phpcs:enable
             global $conf, $langs;
             require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
     
    @@ -363,6 +377,7 @@ class FormOther
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return select list for categories (to use in form search selectors)
          *
    @@ -376,6 +391,7 @@ class FormOther
          */
         function select_salesrepresentatives($selected,$htmlname,$user,$showstatus=0,$showempty=1,$morecss='')
         {
    +        // phpcs:enable
             global $conf,$langs;
             $langs->load('users');
     
    @@ -617,6 +633,7 @@ class FormOther
     		else print $textifnotdefined;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *		Output a HTML code to select a color
          *
    @@ -631,6 +648,7 @@ class FormOther
          */
         function select_color($set_color='', $prefix='f_color', $form_name='', $showcolorbox=1, $arrayofcolors='')
         {
    +        // phpcs:enable
         	print $this->selectColor($set_color, $prefix, $form_name, $showcolorbox, $arrayofcolors);
         }
     
    @@ -734,6 +752,7 @@ class FormOther
             return $out;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Creation d'un icone de couleur
          *
    @@ -746,6 +765,7 @@ class FormOther
          */
         function CreateColorIcon($color,$module,$name,$x='12',$y='12')
         {
    +        // phpcs:enable
             global $conf;
     
             $file = $conf->$module->dir_temp.'/'.$name.'.png';
    @@ -773,6 +793,7 @@ class FormOther
             ImageDestroy($image);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    	Return HTML combo list of week
          *
    @@ -783,15 +804,18 @@ class FormOther
          */
         function select_dayofweek($selected='',$htmlname='weekid',$useempty=0)
         {
    +        // phpcs:enable
             global $langs;
     
    -        $week = array(	0=>$langs->trans("Day0"),
    -        1=>$langs->trans("Day1"),
    -        2=>$langs->trans("Day2"),
    -        3=>$langs->trans("Day3"),
    -        4=>$langs->trans("Day4"),
    -        5=>$langs->trans("Day5"),
    -        6=>$langs->trans("Day6"));
    +        $week = array(
    +            0=>$langs->trans("Day0"),
    +            1=>$langs->trans("Day1"),
    +            2=>$langs->trans("Day2"),
    +            3=>$langs->trans("Day3"),
    +            4=>$langs->trans("Day4"),
    +            5=>$langs->trans("Day5"),
    +            6=>$langs->trans("Day6")
    +        );
     
             $select_week = '<select class="flat" name="'.$htmlname.'">';
             if ($useempty)
    @@ -815,6 +839,7 @@ class FormOther
             return $select_week;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *      Return HTML combo list of month
          *
    @@ -827,6 +852,7 @@ class FormOther
          */
         function select_month($selected='', $htmlname='monthid', $useempty=0, $longlabel=0, $morecss='')
         {
    +        // phpcs:enable
             global $langs;
     
             require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    @@ -856,6 +882,7 @@ class FormOther
             return $select_month;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Return HTML combo list of years
          *
    @@ -872,6 +899,7 @@ class FormOther
          */
         function select_year($selected='',$htmlname='yearid',$useempty=0, $min_year=10, $max_year=5, $offset=0, $invert=0, $option='', $morecss='valignmiddle widthauto')
         {
    +        // phpcs:enable
             print $this->selectyear($selected,$htmlname,$useempty,$min_year,$max_year,$offset,$invert,$option,$morecss);
         }
     
    @@ -928,6 +956,7 @@ class FormOther
             return $out;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Show form to select address
          *
    @@ -941,6 +970,7 @@ class FormOther
          */
         function form_address($page, $selected, $socid, $htmlname='address_id', $origin='', $originid='')
         {
    +        // phpcs:enable
             global $langs,$conf;
             global $form;
     
    @@ -1012,7 +1042,7 @@ class FormOther
             		if (! empty($boxidactivatedforuser[$box->id])) continue;	// Already visible for user
             		$label=$langs->transnoentitiesnoconv($box->boxlabel);
             		//if (preg_match('/graph/',$box->class)) $label.=' ('.$langs->trans("Graph").')';
    -        		if (preg_match('/graph/',$box->class) && empty($conf->browser->phone))
    +        		if (preg_match('/graph/',$box->class) && $conf->browser->layout != 'phone')
             		{
             			$label=$label.' <span class="fa fa-bar-chart"></span>';
             		}
    @@ -1119,8 +1149,8 @@ class FormOther
     
             if ($nbboxactivated)
             {
    -        	$langs->load("boxes");
    -			$langs->load("projects");
    +        	// Load translation files required by the page
    +            $langs->loadLangs(array("boxes","projects"));
     
             	$emptybox=new ModeleBoxes($db);
     
    @@ -1146,7 +1176,7 @@ class FormOther
                     }
                 }
     
    -            if (empty($conf->browser->phone))
    +            if ($conf->browser->layout != 'phone')
                 {
                 	$emptybox->box_id='A';
                 	$emptybox->info_box_head=array();
    @@ -1173,7 +1203,7 @@ class FormOther
                     }
                 }
     
    -            if (empty($conf->browser->phone))
    +            if ($conf->browser->layout != 'phone')
                 {
                 	$emptybox->box_id='B';
                 	$emptybox->info_box_head=array();
    @@ -1182,13 +1212,13 @@ class FormOther
                 }
     
                 $boxlistb.= "<!-- End box right container -->\n";
    -
             }
     
             return array('selectboxlist'=>count($boxactivated)?$selectboxlist:'', 'boxactivated'=>$boxactivated, 'boxlista'=>$boxlista, 'boxlistb'=>$boxlistb);
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return a HTML select list of a dictionary
          *
    @@ -1203,6 +1233,7 @@ class FormOther
          */
         function select_dictionary($htmlname,$dictionarytable,$keyfield='code',$labelfield='label',$selected='',$useempty=0,$moreattrib='')
         {
    +        // phpcs:enable
             global $langs, $conf;
     
             $langs->load("admin");
    @@ -1251,6 +1282,4 @@ class FormOther
                 dol_print_error($this->db);
             }
         }
    -
     }
    -
    diff --git a/htdocs/core/class/html.formprojet.class.php b/htdocs/core/class/html.formprojet.class.php
    index 42ea2d216aa..dea04047405 100644
    --- a/htdocs/core/class/html.formprojet.class.php
    +++ b/htdocs/core/class/html.formprojet.class.php
    @@ -1,6 +1,7 @@
     <?php
     /* Copyright (c) 2013 Florian Henry  <florian.henry@open-concept.pro>
      * Copyright (C) 2015 Marcos García  <marcosgdf@gmail.com>
    + * Copyright (C) 2018 Charlene Benke <charlie@patas-monkey.com>
      *
      * 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
    @@ -28,8 +29,15 @@
      */
     class FormProjets
     {
    -	var $db;
    -	var $error;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
     	/**
    @@ -40,9 +48,9 @@ class FormProjets
     	function __construct($db)
     	{
     		$this->db = $db;
    -		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Output a combo list with projects qualified for a third party / user
     	 *
    @@ -65,6 +73,7 @@ class FormProjets
     	 */
     	function select_projects($socid=-1, $selected='', $htmlname='projectid', $maxlength=16, $option_only=0, $show_empty=1, $discard_closed=0, $forcefocus=0, $disabled=0, $mode = 0, $filterkey = '', $nooutput=0, $forceaddid=0, $morecss='', $htmlid='')
     	{
    +        // phpcs:enable
     		global $langs,$conf,$form;
     
     		$out='';
    @@ -110,6 +119,7 @@ class FormProjets
     		else return $out;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Returns an array with projects qualified for a third party
     	 *
    @@ -132,6 +142,7 @@ class FormProjets
     	 */
     	function select_projects_list($socid=-1, $selected='', $htmlname='projectid', $maxlength=24, $option_only=0, $show_empty=1, $discard_closed=0, $forcefocus=0, $disabled=0, $mode=0, $filterkey = '', $nooutput=0, $forceaddid=0, $htmlid='', $morecss='maxwidth500')
     	{
    +        // phpcs:enable
     		global $user,$conf,$langs;
     
     		require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    @@ -139,10 +150,10 @@ class FormProjets
     		if (empty($htmlid)) $htmlid = $htmlname;
     
     		$out='';
    -        $outarray=array();
    +		$outarray=array();
     
     		$hideunselectables = false;
    -		if (! empty($conf->global->PROJECT_HIDE_UNSELECTABLES)) $hideunselectables = true;
    +		if (! empty($conf->global->CONTRACT_HIDE_UNSELECTABLES)) $hideunselectables = true;
     
     		$projectsListId = false;
     		if (empty($user->rights->projet->all->lire))
    @@ -335,11 +346,11 @@ class FormProjets
     		}
     
     		// Search all projects
    -		$sql = 'SELECT t.rowid, t.ref as tref, t.label as tlabel, p.ref, p.title, p.fk_soc, p.fk_statut, p.public,';
    +		$sql = 'SELECT t.rowid, t.ref as tref, t.label as tlabel, p.rowid as pid, p.ref, p.title, p.fk_soc, p.fk_statut, p.public,';
     		$sql.= ' s.nom as name';
     		$sql.= ' FROM '.MAIN_DB_PREFIX .'projet as p';
    -		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON s.rowid = p.fk_soc';
    -		$sql.= ', '.MAIN_DB_PREFIX.'projet_task as t';
    +		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON s.rowid = p.fk_soc,';
    +		$sql.= ' '.MAIN_DB_PREFIX.'projet_task as t';
     		$sql.= " WHERE p.entity IN (".getEntity('project').")";
     		$sql.= " AND t.fk_projet = p.rowid";
     		if ($projectsListId) $sql.= " AND p.rowid IN (".$projectsListId.")";
    @@ -382,7 +393,7 @@ class FormProjets
     					}
     					else
     					{
    -						if ($discard_closed == 1 && $obj->fk_statut == 2)
    +						if ($discard_closed == 1 && $obj->fk_statut == Project::STATUS_CLOSED)
     						{
     							$i++;
     							continue;
    @@ -400,12 +411,12 @@ class FormProjets
     							if ($obj->name) $labeltoshow.=' ('.$obj->name.')';
     
     							$disabled=0;
    -							if ($obj->fk_statut == 0)
    +							if ($obj->fk_statut == Project::STATUS_DRAFT)
     							{
     								$disabled=1;
     								$labeltoshow.=' - '.$langs->trans("Draft");
     							}
    -							else if ($obj->fk_statut == 2)
    +							else if ($obj->fk_statut == Project::STATUS_CLOSED)
     							{
     								if ($discard_closed == 2) $disabled=1;
     								$labeltoshow.=' - '.$langs->trans("Closed");
    @@ -466,6 +477,7 @@ class FormProjets
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Build a HTML select list of element of same thirdparty to suggest to link them to project
     	 *
    @@ -473,19 +485,21 @@ class FormProjets
     	 *    @param	string		$socid				If of thirdparty to use as filter or 'id1,id2,...'
     	 *    @param	string		$morecss			More CSS
     	 *    @param    int         $limitonstatus      Add filters to limit length of list to opened status (for example to avoid ERR_RESPONSE_HEADERS_TOO_BIG on project/element.php page). TODO To implement
    +	 *    @param	string		$projectkey			Equivalent key  to fk_projet for actual table_element
     	 *    @return	int|string						The HTML select list of element or '' if nothing or -1 if KO
     	 */
    -	function select_element($table_element, $socid=0, $morecss='', $limitonstatus=-2)
    +	function select_element($table_element, $socid=0, $morecss='', $limitonstatus=-2,$projectkey="fk_projet")
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		if ($table_element == 'projet_task') return '';		// Special cas of element we never link to a project (already always done)
     
     		$linkedtothirdparty=false;
    -		if (! in_array($table_element, array('don','expensereport_det','expensereport','loan','stock_mouvement','chargesociales'))) $linkedtothirdparty=true;
    +		if (! in_array($table_element, array('don','expensereport_det','expensereport','loan','stock_mouvement','payment_salary','payment_various','chargesociales'))) $linkedtothirdparty=true;
     
     		$sqlfilter='';
    -		$projectkey="fk_projet";
    +
     		//print $table_element;
     		switch ($table_element)
     		{
    @@ -493,7 +507,7 @@ class FormProjets
     				$sql = "SELECT t.rowid, t.label as ref";
     				break;
     			case "facture":
    -				$sql = "SELECT t.rowid, t.facnumber as ref";
    +				$sql = "SELECT t.rowid, t.ref as ref";
     				break;
     			case "facture_fourn":
     				$sql = "SELECT t.rowid, t.ref, t.ref_supplier";
    @@ -525,6 +539,9 @@ class FormProjets
     				$sql = 'SELECT t.rowid, t.label as ref';
     				$projectkey='fk_origin';
     				break;
    +			case "payment_salary":
    +				$sql = "SELECT t.rowid, t.num_payment as ref";	// TODO In a future fill and use real ref field
    +				break;
     			case "payment_various":
     				$sql = "SELECT t.rowid, t.num_payment as ref";
     				break;
    @@ -618,10 +635,16 @@ class FormProjets
     			if ($num > 0)
     			{
     				$sellist = '<select class="flat oppstatus'.($morecss?' '.$morecss:'').'" id="'.$htmlname.'" name="'.$htmlname.'">';
    -				if ($showempty) $sellist.= '<option value="-1">&nbsp;</option>';    // Without &nbsp, strange move of screen when switching value
    -				if ($showallnone) $sellist.= '<option value="all"'.($preselected == 'all'?' selected="selected"':'').'>--'.$langs->trans("OnlyOpportunitiesShort").'--</option>';
    -				if ($showallnone) $sellist.= '<option value="openedopp"'.($preselected == 'openedopp'?' selected="selected"':'').'>--'.$langs->trans("OpenedOpportunitiesShort").'--</option>';
    -				if ($showallnone) $sellist.= '<option value="none"'.($preselected == 'none'?' selected="selected"':'').'>--'.$langs->trans("NotAnOpportunityShort").'--</option>';
    +				if ($showempty) {
    +                    // Without &nbsp, strange move of screen when switching value
    +                    $sellist.= '<option value="-1">&nbsp;</option>';
    +                }
    +				if ($showallnone) {
    +                    $sellist.= '<option value="all"'.($preselected == 'all'?' selected="selected"':'').'>-- '.$langs->trans("OnlyOpportunitiesShort").' --</option>';
    +				    $sellist.= '<option value="openedopp"'.($preselected == 'openedopp'?' selected="selected"':'').'>-- '.$langs->trans("OpenedOpportunitiesShort").' --</option>';
    +				    $sellist.= '<option value="notopenedopp"'.($preselected == 'notopenedopp'?' selected="selected"':'').'>-- '.$langs->trans("NotOpenedOpportunitiesShort").' --</option>';
    +				    $sellist.= '<option value="none"'.($preselected == 'none'?' selected="selected"':'').'>-- '.$langs->trans("NotAnOpportunityShort").' --</option>';
    +                }
     				while ($i < $num)
     				{
     					$obj = $this->db->fetch_object($resql);
    @@ -662,5 +685,4 @@ class FormProjets
     			return -1;
     		}
     	}
    -
     }
    diff --git a/htdocs/core/class/html.formpropal.class.php b/htdocs/core/class/html.formpropal.class.php
    index 14e1a466275..c4ac522d98a 100644
    --- a/htdocs/core/class/html.formpropal.class.php
    +++ b/htdocs/core/class/html.formpropal.class.php
    @@ -27,8 +27,15 @@
      */
     class FormPropal
     {
    -	var $db;
    -	var $error;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +	
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
     	/**
    @@ -59,10 +66,10 @@ class FormPropal
     
             $prefix='';
             $listofstatus=array();
    -        if ($mode == 'supplier') 
    +        if ($mode == 'supplier')
             {
                 $prefix='SupplierProposalStatus';
    -            
    +
                 $langs->load("supplier_proposal");
                 $listofstatus=array(
                     0=>array('id'=>0, 'code'=>'PR_DRAFT'),
    @@ -75,7 +82,7 @@ class FormPropal
             else
             {
                 $prefix="PropalStatus";
    -            
    +
                 $sql = "SELECT id, code, label, active FROM ".MAIN_DB_PREFIX."c_propalst";
                 $sql .= " WHERE active = 1";
                 dol_syslog(get_class($this)."::selectProposalStatus", LOG_DEBUG);
    @@ -139,4 +146,3 @@ class FormPropal
             print '</select>';
         }
     }
    -
    diff --git a/htdocs/core/class/html.formsms.class.php b/htdocs/core/class/html.formsms.class.php
    index 6db6f200136..4ef6208723d 100644
    --- a/htdocs/core/class/html.formsms.class.php
    +++ b/htdocs/core/class/html.formsms.class.php
    @@ -1,20 +1,21 @@
     <?php
    -/* Copyright (C) 2005-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
    -*
    -* 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
    -* the Free Software Foundation; either version 3 of the License, or
    -* (at your option) any later version.
    -*
    -* This program is distributed in the hope that it will be useful,
    -* but WITHOUT ANY WARRANTY; without even the implied warranty of
    -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    -* GNU General Public License for more details.
    -*
    -* You should have received a copy of the GNU General Public License
    -* along with this program. If not, see <http://www.gnu.org/licenses/>.
    -*/
    +/* Copyright (C) 2005-2011  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2010       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
     
     /**
      *       \file       htdocs/core/class/html.formsms.class.php
    @@ -32,31 +33,42 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/html.form.class.php';
      */
     class FormSms
     {
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -    var $fromname;
    -    var $fromsms;
    -    var $replytoname;
    -    var $replytomail;
    -    var $toname;
    -    var $tomail;
    +    public $fromname;
    +    public $fromsms;
    +    public $replytoname;
    +    public $replytomail;
    +    public $toname;
    +    public $tomail;
     
    -    var $withsubstit;			// Show substitution array
    -    var $withfrom;
    -    var $withto;
    -    var $withtopic;
    -    var $withbody;
    +    public $withsubstit;			// Show substitution array
    +    public $withfrom;
    +    public $withto;
    +    public $withtopic;
    +    public $withbody;
     
    -    var $withfromreadonly;
    -    var $withreplytoreadonly;
    -    var $withtoreadonly;
    -    var $withtopicreadonly;
    -    var $withcancel;
    +    public $withfromreadonly;
    +    public $withreplytoreadonly;
    +    public $withtoreadonly;
    +    public $withtopicreadonly;
    +    public $withcancel;
     
    -    var $substit=array();
    -    var $param=array();
    +    public $substit=array();
    +    public $param=array();
     
    -    var $error;
    +    /**
    +     * @var string Error code (or message)
    +     */
    +    public $error='';
    +
    +    /**
    +     * @var string[]	Array of error strings
    +     */
    +    public $errors=array();
     
     
         /**
    @@ -78,26 +90,25 @@ class FormSms
             $this->withtoreadonly=0;
             $this->withtopicreadonly=0;
             $this->withbodyreadonly=0;
    -
    -        return 1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Show the form to input an sms.
          *
    -     *	@param	string	$morecss        Class on first column td
    -     *  @param  int     $showform       Show form tags and submit button (recommanded is to use with value 0)
    +     *	@param	string	$morecss Class on first column td
    +     *  @param int $showform Show form tags and submit button (recommanded is to use with value 0)
          *	@return	void
          */
         function show_form($morecss='titlefield', $showform=1)
         {
    +     // phpcs:enable
             global $conf, $langs, $user, $form;
     
             if (! is_object($form)) $form=new Form($this->db);
     
    -        $langs->load("other");
    -        $langs->load("mails");
    -        $langs->load("sms");
    +        // Load translation files required by the page
    +        $langs->loadLangs(array('other', 'mails', 'sms'));
     
             $soc=new Societe($this->db);
             if (!empty($this->withtosocid) && $this->withtosocid > 0)
    @@ -354,6 +365,4 @@ function limitChars(textarea, limit, infodiv)
     
             print "<!-- End form SMS -->\n";
         }
    -
     }
    -
    diff --git a/htdocs/core/class/html.formsocialcontrib.class.php b/htdocs/core/class/html.formsocialcontrib.class.php
    index 83886e63af8..99e36878390 100644
    --- a/htdocs/core/class/html.formsocialcontrib.class.php
    +++ b/htdocs/core/class/html.formsocialcontrib.class.php
    @@ -27,8 +27,15 @@
      */
     class FormSocialContrib
     {
    -	var $db;
    -	var $error;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
     	/**
    @@ -41,9 +48,10 @@ class FormSocialContrib
     	    $this->db = $db;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -     *	Return list of social contributions.
    -     * 	Use mysoc->country_id or mysoc->country_code so they must be defined.
    +     *  Return list of social contributions.
    +     *  Use mysoc->country_id or mysoc->country_code so they must be defined.
          *
          *	@param	string	$selected       Preselected type
          *	@param  string	$htmlname       Name of field in form
    @@ -55,6 +63,7 @@ class FormSocialContrib
          */
         function select_type_socialcontrib($selected='',$htmlname='actioncode', $useempty=0, $maxlen=40, $help=1, $morecss='minwidth300')
         {
    +        // phpcs:enable
             global $conf,$db,$langs,$user,$mysoc;
     
             if (empty($mysoc->country_id) && empty($mysoc->country_code))
    @@ -113,6 +122,4 @@ class FormSocialContrib
                 dol_print_error($db,$db->lasterror());
             }
         }
    -
     }
    -
    diff --git a/htdocs/core/class/html.formticket.class.php b/htdocs/core/class/html.formticket.class.php
    index 9c3daefd62a..6c4a9703014 100644
    --- a/htdocs/core/class/html.formticket.class.php
    +++ b/htdocs/core/class/html.formticket.class.php
    @@ -39,9 +39,16 @@ if (!class_exists('FormCompany')) {
      */
     class FormTicket
     {
    +    /**
    +     * @var DoliDB Database handler.
    +     */
         public $db;
     
         public $track_id;
    +
    +    /**
    +     * @var int ID
    +     */
         public $fk_user_create;
     
         public $message;
    @@ -80,7 +87,10 @@ class FormTicket
         public $substit = array();
         public $param = array();
     
    -    public $error;
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error;
     
     
         /**
    @@ -106,8 +116,6 @@ class FormTicket
             $this->withref = 0;
             $this->withextrafields = 0;         // Show extrafields or not
             //$this->withtopicreadonly=0;
    -
    -        return 1;
         }
     
         /**
    @@ -120,9 +128,8 @@ class FormTicket
         {
             global $conf, $langs, $user, $hookmanager;
     
    -        $langs->load("other");
    -        $langs->load("mails");
    -        $langs->load("ticket");
    +        // Load translation files required by the page
    +        $langs->loadLangs(array('other', 'mails', 'ticket'));
     
             $form = new Form($this->db);
             $formcompany = new FormCompany($this->db);
    @@ -722,8 +729,8 @@ class FormTicket
         {
             global $conf, $langs, $user, $mysoc;
     
    -        $langs->load("other");
    -        $langs->load("mails");
    +        // Load translation files required by the page
    +        $langs->loadLangs(array('other', 'mails'));
     
             $addfileaction = 'addfile';
     
    diff --git a/htdocs/core/class/html.formwebsite.class.php b/htdocs/core/class/html.formwebsite.class.php
    index fc863c4d069..f5feccd5860 100644
    --- a/htdocs/core/class/html.formwebsite.class.php
    +++ b/htdocs/core/class/html.formwebsite.class.php
    @@ -28,7 +28,11 @@
     class FormWebsite
     {
         private $db;
    -    public $error;
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error;
     
     
         /**
    @@ -39,8 +43,6 @@ class FormWebsite
         function __construct($db)
         {
             $this->db = $db;
    -
    -        return 1;
         }
     
     
    @@ -201,5 +203,4 @@ class FormWebsite
     
         	return $out;
         }
    -
     }
    diff --git a/htdocs/core/class/infobox.class.php b/htdocs/core/class/infobox.class.php
    index 4125aa89eb9..dedf3ec384f 100644
    --- a/htdocs/core/class/infobox.class.php
    +++ b/htdocs/core/class/infobox.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -281,6 +281,5 @@ class InfoBox
                 return -1;
             }
         }
    -
     }
     
    diff --git a/htdocs/core/class/interfaces.class.php b/htdocs/core/class/interfaces.class.php
    index 655969d73f6..6f43643eeb7 100644
    --- a/htdocs/core/class/interfaces.class.php
    +++ b/htdocs/core/class/interfaces.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2006      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2010      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010      Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -31,9 +31,17 @@ require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php';
      */
     class Interfaces
     {
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
     	var $dir;				// Directory with all core and external triggers files
    -    var $errors	= array();	// Array for errors
    +
    +    /**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
     
         /**
          *	Constructor
    @@ -45,6 +53,7 @@ class Interfaces
             $this->db = $db;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *   Function called when a Dolibarr business event occurs
          *   This function call all qualified triggers.
    @@ -52,12 +61,13 @@ class Interfaces
          *   @param		string		$action     Trigger event code
          *   @param     object		$object     Objet concerned. Some context information may also be provided into array property object->context.
          *   @param     User		$user       Objet user
    -     *   @param     Lang		$langs      Objet lang
    +     *   @param     Translate	$langs      Objet lang
          *   @param     Conf		$conf       Objet conf
          *   @return    int         			Nb of triggers ran if no error, -Nb of triggers with errors otherwise.
          */
         function run_triggers($action,$object,$user,$langs,$conf)
         {
    +        // phpcs:enable
             // Check parameters
             if (! is_object($object) || ! is_object($conf))	// Error
             {
    @@ -76,6 +86,7 @@ class Interfaces
                 global $db;
                 $user = new User($db);
             }
    +        //dol_syslog(get_class($this)."::run_triggers action=".$action." Launch run_triggers", LOG_DEBUG);
     
             $nbfile = $nbtotal = $nbok = $nbko = 0;
     
    @@ -84,6 +95,7 @@ class Interfaces
             $orders = array();
     		$i=0;
     
    +
     		$dirtriggers=array_merge(array('/core/triggers'),$conf->modules_parts['triggers']);
             foreach($dirtriggers as $reldir)
             {
    @@ -360,5 +372,4 @@ class Interfaces
             }
             return $triggers;
         }
    -
     }
    diff --git a/htdocs/core/class/ldap.class.php b/htdocs/core/class/ldap.class.php
    index f54caacff8b..8c42d691d39 100644
    --- a/htdocs/core/class/ldap.class.php
    +++ b/htdocs/core/class/ldap.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004		Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004		Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2017	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2015	Laurent Destailleur  <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -29,12 +29,21 @@
      */
     class Ldap
     {
    -	var $error;
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string[]	Array of error strings
    +	 */
    +	public $errors = array();
     
     	/**
     	 * Tableau des serveurs (IP addresses ou nom d'hotes)
     	 */
     	var $server=array();
    +
     	/**
     	 * Base DN (e.g. "dc=foo,dc=com")
     	 */
    @@ -140,6 +149,7 @@ class Ldap
     
     	// Connection handling methods -------------------------------------------
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Connect and bind
     	 * 	Use this->server, this->serverPort, this->ldapProtocolVersion, this->serverType, this->searchUser, this->searchPassword
    @@ -149,6 +159,7 @@ class Ldap
     	 */
     	function connect_bind()
     	{
    +        // phpcs:enable
     		global $langs, $conf;
     
     		$connected=0;
    @@ -370,7 +381,8 @@ class Ldap
     	 *
     	 * @return	boolean					version
     	 */
    -	function setVersion() {
    +    function setVersion()
    +    {
     		// LDAP_OPT_PROTOCOL_VERSION est une constante qui vaut 17
     		$ldapsetversion = ldap_set_option($this->connection, LDAP_OPT_PROTOCOL_VERSION, $this->ldapProtocolVersion);
     		return $ldapsetversion;
    @@ -381,7 +393,8 @@ class Ldap
     	 *
     	 * @return	boolean					referrals
     	 */
    -	function setReferrals() {
    +    function setReferrals()
    +    {
     		// LDAP_OPT_REFERRALS est une constante qui vaut ?
     		$ldapreferrals = ldap_set_option($this->connection, LDAP_OPT_REFERRALS, 0);
     		return $ldapreferrals;
    @@ -643,6 +656,7 @@ class Ldap
     		return -1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Build a LDAP message
     	 *
    @@ -652,6 +666,7 @@ class Ldap
     	 */
     	function dump_content($dn, $info)
     	{
    +        // phpcs:enable
     		$content='';
     
     		// Create file content
    @@ -1423,6 +1438,7 @@ class Ldap
     		return($retval);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Convertit le temps ActiveDirectory en Unix timestamp
     	 *
    @@ -1431,6 +1447,7 @@ class Ldap
     	 */
     	function convert_time($value)
     	{
    +        // phpcs:enable
     		$dateLargeInt=$value; // nano secondes depuis 1601 !!!!
     		$secsAfterADEpoch = $dateLargeInt / (10000000); // secondes depuis le 1 jan 1601
     		$ADToUnixConvertor=((1970-1601) * 365.242190) * 86400; // UNIX start date - AD start date * jours * secondes
    diff --git a/htdocs/core/class/link.class.php b/htdocs/core/class/link.class.php
    index 0441c04a86e..8413725ab11 100644
    --- a/htdocs/core/class/link.class.php
    +++ b/htdocs/core/class/link.class.php
    @@ -28,13 +28,29 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class Link extends CommonObject
     {
    -    public $element = 'link';
    -    public $table_element = 'links';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element = 'link';
    +
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element = 'links';
    +
    +    /**
    +	 * @var int Entity
    +	 */
    +	public $entity;
     
    -    public $entity;
         public $datea;
         public $url;
    +
    +    /**
    +     * @var string Links label
    +     */
         public $label;
    +
         public $objecttype;
         public $objectid;
     
    @@ -46,11 +62,7 @@ class Link extends CommonObject
          */
         public function __construct($db)
         {
    -        global $conf;
    -
             $this->db = $db;
    -
    -        return 1;
         }
     
     
    @@ -378,7 +390,5 @@ class Link extends CommonObject
                 $this->db->rollback();
                 return -1;
             }
    -
         }
    -
     }
    diff --git a/htdocs/core/class/menu.class.php b/htdocs/core/class/menu.class.php
    index 17d5e06589f..3d9d92189a3 100644
    --- a/htdocs/core/class/menu.class.php
    +++ b/htdocs/core/class/menu.class.php
    @@ -73,7 +73,7 @@ class Menu
         /**
          * Insert a menu entry into this->liste
          *
    -     * @param	int		$idafter	Array key after which inserting new entry
    +     * @param   int		$idafter	Array key after which inserting new entry
          * @param	string	$url        Url to follow on click
          * @param   string	$titre      Label of menu to add
          * @param   integer	$level      Level of menu to add
    @@ -96,6 +96,7 @@ class Menu
             $this->liste=array_merge($array_start,$array_new,$array_end);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Remove a menu entry from this->liste
          *
    @@ -103,7 +104,10 @@ class Menu
          */
         function remove_last()
         {
    -    	if (count($this->liste) > 1) array_pop($this->liste);
    +        // phpcs:enable
    +        if (count($this->liste) > 1) {
    +            array_pop($this->liste);
    +        }
         }
     
         /**
    diff --git a/htdocs/core/class/menubase.class.php b/htdocs/core/class/menubase.class.php
    index 48880633563..86b27948389 100644
    --- a/htdocs/core/class/menubase.class.php
    +++ b/htdocs/core/class/menubase.class.php
    @@ -1,6 +1,7 @@
     <?php
     /* Copyright (C) 2007-2009	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@inodbox.com>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -28,19 +29,49 @@
      */
     class Menubase
     {
    -    public $db;							// To store db handler
    -    public $error;							// To return error code (or message)
    -    public $errors=array();				// To return several error codes (or messages)
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -    public $id;
    +    /**
    +     * @var string Error code (or message)
    +     */
    +    public $error;
    +
    +    /**
    +     * @var string[] Error codes (or messages)
    +     */
    +    public $errors = array();
    +
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
     
         public $menu_handler;
         public $module;
         public $type;
         public $mainmenu;
    +
    +    /**
    +     * @var int ID
    +     */
         public $fk_menu;
    +
    +    /**
    +     * @var string fk_mainmenu
    +     */
         public $fk_mainmenu;
    +
    +    /**
    +     * @var string fk_leftmenu
    +     */
         public $fk_leftmenu;
    +
    +    /**
    +     * @var int position
    +     */
         public $position;
         public $url;
         public $target;
    @@ -84,10 +115,10 @@ class Menubase
             $this->type=trim($this->type);
             $this->mainmenu=trim($this->mainmenu);
             $this->leftmenu=trim($this->leftmenu);
    -        $this->fk_menu=trim($this->fk_menu);          // If -1, fk_mainmenu and fk_leftmenu must be defined
    +        $this->fk_menu = (int) $this->fk_menu;          // If -1, fk_mainmenu and fk_leftmenu must be defined
             $this->fk_mainmenu=trim($this->fk_mainmenu);
             $this->fk_leftmenu=trim($this->fk_leftmenu);
    -        $this->position=trim($this->position);
    +        $this->position = (int) $this->position;
             $this->url=trim($this->url);
             $this->target=trim($this->target);
             $this->titre=trim($this->titre);
    @@ -95,7 +126,7 @@ class Menubase
             $this->perms=trim($this->perms);
             $this->enabled=trim($this->enabled);
             $this->user=trim($this->user);
    -        $this->position=trim($this->position);
    +        if (empty($this->position)) $this->position=0;
             if (! $this->level) $this->level=0;
     
             // Check parameters
    @@ -128,7 +159,7 @@ class Menubase
             $sql = "SELECT count(*)";
             $sql.= " FROM ".MAIN_DB_PREFIX."menu";
             $sql.= " WHERE menu_handler = '".$this->db->escape($this->menu_handler)."'";
    -        $sql.= " AND fk_menu = ".((int) $this->db->escape($this->fk_menu));
    +        $sql.= " AND fk_menu = ".((int) $this->fk_menu);
             $sql.= " AND position = ".((int) $this->position);
             $sql.= " AND url = '".$this->db->escape($this->url)."'";
             $sql.= " AND entity = ".$conf->entity;
    @@ -225,10 +256,10 @@ class Menubase
             $this->type=trim($this->type);
             $this->mainmenu=trim($this->mainmenu);
             $this->leftmenu=trim($this->leftmenu);
    -        $this->fk_menu=trim($this->fk_menu);
    +        $this->fk_menu = (int) $this->fk_menu;
             $this->fk_mainmenu=trim($this->fk_mainmenu);
             $this->fk_leftmenu=trim($this->fk_leftmenu);
    -        $this->position=trim($this->position);
    +        $this->position = (int) $this->position;
             $this->url=trim($this->url);
             $this->target=trim($this->target);
             $this->titre=trim($this->titre);
    @@ -247,7 +278,7 @@ class Menubase
             $sql.= " type='".$this->db->escape($this->type)."',";
             $sql.= " mainmenu='".$this->db->escape($this->mainmenu)."',";
             $sql.= " leftmenu='".$this->db->escape($this->leftmenu)."',";
    -        $sql.= " fk_menu='".$this->db->escape($this->fk_menu)."',";
    +        $sql.= " fk_menu=".$this->fk_menu.",";
             $sql.= " fk_mainmenu=".($this->fk_mainmenu?"'".$this->db->escape($this->fk_mainmenu)."'":"null").",";
             $sql.= " fk_leftmenu=".($this->fk_leftmenu?"'".$this->db->escape($this->fk_leftmenu)."'":"null").",";
             $sql.= " position=".($this->position > 0 ? $this->position : 0).",";
    @@ -558,7 +589,6 @@ class Menubase
     
                 $a = 0;
                 $b = 0;
    -            $oldrowid=0;
                 while ($a < $numa)
                 {
                     //$objm = $this->db->fetch_object($resql);
    @@ -683,6 +713,4 @@ class Menubase
                 }
             }
        }
    -
     }
    -
    diff --git a/htdocs/core/class/notify.class.php b/htdocs/core/class/notify.class.php
    index ae22728f06d..e7cd7cabe53 100644
    --- a/htdocs/core/class/notify.class.php
    +++ b/htdocs/core/class/notify.class.php
    @@ -2,6 +2,7 @@
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2014	   Juanjo Menent		<jmenent@2byte.es>
    + * Copyright (C) 2018 	   Philippe Grand		<philippe.grand@atoo-net.com>
      *
      * 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
    @@ -30,21 +31,41 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/CMailFile.class.php';
      */
     class Notify
     {
    -	var $id;
    -	var $db;
    -	var $error;
    -	var $errors=array();
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -	var $author;
    -	var $ref;
    -	var $date;
    -	var $duree;
    -	var $note;
    -	var $fk_project;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
    +	public $author;
    +	public $ref;
    +	public $date;
    +	public $duree;
    +	public $note;
    +
    +	/**
    +     * @var int Project ID
    +     */
    +    public $fk_project;
     
     	// Les codes actions sont definis dans la table llx_notify_def
     
     	// codes actions supported are
    +	// @TODO defined also into interface_50_modNotificiation_Notificiation.class.php
     	public $arrayofnotifsupported = array(
     		'BILL_VALIDATE',
     		'BILL_PAYED',
    @@ -56,7 +77,11 @@ class Notify
     		'ORDER_SUPPLIER_VALIDATE',
     		'ORDER_SUPPLIER_APPROVE',
     		'ORDER_SUPPLIER_REFUSE',
    -		'SHIPPING_VALIDATE'
    +		'SHIPPING_VALIDATE',
    +		'EXPENSE_REPORT_VALIDATE',
    +		'EXPENSE_REPORT_APPROVE',
    +		'HOLIDAY_VALIDATE',
    +		'HOLIDAY_APPROVE'
     	);
     
     
    @@ -320,22 +345,27 @@ class Notify
     		$oldref=(empty($object->oldref)?$object->ref:$object->oldref);
     		$newref=(empty($object->newref)?$object->ref:$object->newref);
     
    +		$sql = '';
    +
     		// Check notification per third party
    -		$sql = "SELECT 'tocontactid' as type_target, c.email, c.rowid as cid, c.lastname, c.firstname, c.default_lang,";
    -		$sql.= " a.rowid as adid, a.label, a.code, n.rowid, n.type";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."socpeople as c,";
    -		$sql.= " ".MAIN_DB_PREFIX."c_action_trigger as a,";
    -		$sql.= " ".MAIN_DB_PREFIX."notify_def as n,";
    -		$sql.= " ".MAIN_DB_PREFIX."societe as s";
    -		$sql.= " WHERE n.fk_contact = c.rowid AND a.rowid = n.fk_action";
    -		$sql.= " AND n.fk_soc = s.rowid";
    -		if (is_numeric($notifcode)) $sql.= " AND n.fk_action = ".$notifcode;	// Old usage
    -		else $sql.= " AND a.code = '".$notifcode."'";	// New usage
    -		$sql .= " AND s.rowid = ".$object->socid;
    +		if ($object->socid > 0)
    +		{
    +			$sql.= "SELECT 'tocontactid' as type_target, c.email, c.rowid as cid, c.lastname, c.firstname, c.default_lang,";
    +			$sql.= " a.rowid as adid, a.label, a.code, n.rowid, n.type";
    +			$sql.= " FROM ".MAIN_DB_PREFIX."socpeople as c,";
    +			$sql.= " ".MAIN_DB_PREFIX."c_action_trigger as a,";
    +			$sql.= " ".MAIN_DB_PREFIX."notify_def as n,";
    +			$sql.= " ".MAIN_DB_PREFIX."societe as s";
    +			$sql.= " WHERE n.fk_contact = c.rowid AND a.rowid = n.fk_action";
    +			$sql.= " AND n.fk_soc = s.rowid";
    +			if (is_numeric($notifcode)) $sql.= " AND n.fk_action = ".$notifcode;	// Old usage
    +			else $sql.= " AND a.code = '".$notifcode."'";	// New usage
    +			$sql .= " AND s.rowid = ".$object->socid;
    +
    +			$sql.= "\nUNION\n";
    +		}
     
     		// Check notification per user
    -		$sql.= "\nUNION\n";
    -
     		$sql.= "SELECT 'touserid' as type_target, c.email, c.rowid as cid, c.lastname, c.firstname, c.lang as default_lang,";
     		$sql.= " a.rowid as adid, a.label, a.code, n.rowid, n.type";
     		$sql.= " FROM ".MAIN_DB_PREFIX."user as c,";
    @@ -343,12 +373,20 @@ class Notify
     		$sql.= " ".MAIN_DB_PREFIX."notify_def as n";
     		$sql.= " WHERE n.fk_user = c.rowid AND a.rowid = n.fk_action";
     		if (is_numeric($notifcode)) $sql.= " AND n.fk_action = ".$notifcode;	// Old usage
    -		else $sql.= " AND a.code = '".$notifcode."'";	// New usage
    +		else $sql.= " AND a.code = '".$this->db->escape($notifcode)."'";	// New usage
     
     		$result = $this->db->query($sql);
     		if ($result)
     		{
     			$num = $this->db->num_rows($result);
    +			$projtitle='';
    +			if (! empty($object->fk_project))
    +			{
    +				require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    +				$proj = new Project($this->db);
    +				$proj->fetch($object->fk_project);
    +				$projtitle='('.$proj->title.')';
    +			}
     
     			if ($num > 0)
     			{
    @@ -371,7 +409,7 @@ class Notify
     							$outputlangs->loadLangs(array("main","other"));
     						}
     
    -						$subject = '['.$mysoc->name.'] '.$outputlangs->transnoentitiesnoconv("DolibarrNotification");
    +						$subject = '['.$mysoc->name.'] '.$outputlangs->transnoentitiesnoconv("DolibarrNotification").($projtitle?' '.$projtitle:'');
     
     						switch ($notifcode) {
     							case 'BILL_VALIDATE':
    @@ -445,6 +483,26 @@ class Notify
     								$object_type = 'order_supplier';
     								$mesg = $outputlangs->transnoentitiesnoconv("EMailTextExpeditionValidated",$newref);
     								break;
    +							case 'EXPENSE_REPORT_VALIDATE':
    +								$dir_output = $conf->expensereport->dir_output;
    +								$object_type = 'expensereport';
    +								$mesg = $outputlangs->transnoentitiesnoconv("EMailTextExpenseReportValidated",$newref);
    +								break;
    +							case 'EXPENSE_REPORT_APPROVE':
    +								$dir_output = $conf->expensereport->dir_output;
    +								$object_type = 'expensereport';
    +								$mesg = $outputlangs->transnoentitiesnoconv("EMailTextExpenseReportApproved",$newref);
    +								break;
    +							case 'HOLIDAY_VALIDATE':
    +								$dir_output = $conf->holiday->dir_output;
    +								$object_type = 'holiday';
    +								$mesg = $outputlangs->transnoentitiesnoconv("EMailTextHolidayValidated",$newref);
    +								break;
    +							case 'HOLIDAY_APPROVE':
    +								$dir_output = $conf->holiday->dir_output;
    +								$object_type = 'holiday';
    +								$mesg = $outputlangs->transnoentitiesnoconv("EMailTextHolidayApproved",$newref);
    +								break;
     						}
     						$ref = dol_sanitizeFileName($newref);
     						$pdf_path = $dir_output."/".$ref."/".$ref.".pdf";
    @@ -491,12 +549,10 @@ class Notify
     							if ($obj->type_target == 'touserid') {
     	 							$sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_user, type, objet_type, type_target, objet_id, email)";
     								$sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$notifcodedefid.", ".($object->socid?$object->socid:'null').", ".$obj->cid.", '".$obj->type."', '".$object_type."', '".$obj->type_target."', ".$object->id.", '".$this->db->escape($obj->email)."')";
    -
     							}
     							else {
     								$sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_soc, fk_contact, type, objet_type, type_target, objet_id, email)";
     								$sql.= " VALUES ('".$this->db->idate(dol_now())."', ".$notifcodedefid.", ".($object->socid?$object->socid:'null').", ".$obj->cid.", '".$obj->type."', '".$object_type."', '".$obj->type_target."', ".$object->id.", '".$this->db->escape($obj->email)."')";
    -
     							}
     							if (! $this->db->query($sql))
     							{
    @@ -553,7 +609,7 @@ class Notify
     				$link = '';
     				$num++;
     
    -				$subject = '['.$mysoc->name.'] '.$langs->transnoentitiesnoconv("DolibarrNotification");
    +				$subject = '['.$mysoc->name.'] '.$langs->transnoentitiesnoconv("DolibarrNotification").($projtitle?' '.$projtitle:'');
     
     				switch ($notifcode) {
     					case 'BILL_VALIDATE':
    @@ -635,6 +691,26 @@ class Notify
     						$object_type = 'order_supplier';
     						$mesg = $langs->transnoentitiesnoconv("EMailTextExpeditionValidated",$newref);
     						break;
    +					case 'EXPENSE_REPORT_VALIDATE':
    +						$dir_output = $conf->expensereport->dir_output;
    +						$object_type = 'expensereport';
    +						$mesg = $langs->transnoentitiesnoconv("EMailTextExpenseReportValidated",$newref);
    +						break;
    +					case 'EXPENSE_REPORT_APPROVE':
    +						$dir_output = $conf->expensereport->dir_output;
    +						$object_type = 'expensereport';
    +						$mesg = $langs->transnoentitiesnoconv("EMailTextExpenseReportApproved",$newref);
    +						break;
    +					case 'HOLIDAY_VALIDATE':
    +						$dir_output = $conf->holiday->dir_output;
    +						$object_type = 'holiday';
    +						$mesg = $langs->transnoentitiesnoconv("EMailTextHolidayValidated",$newref);
    +						break;
    +					case 'HOLIDAY_APPROVE':
    +						$dir_output = $conf->holiday->dir_output;
    +						$object_type = 'holiday';
    +						$mesg = $langs->transnoentitiesnoconv("EMailTextHolidayApproved",$newref);
    +						break;
     				}
     				$ref = dol_sanitizeFileName($newref);
     				$pdf_path = $dir_output."/".$ref."/".$ref.".pdf";
    @@ -717,6 +793,4 @@ class Notify
     		if (! $error) return $num;
     		else return -1 * $error;
     	}
    -
     }
    -
    diff --git a/htdocs/core/class/openid.class.php b/htdocs/core/class/openid.class.php
    index d46481a0c60..48de42ad847 100644
    --- a/htdocs/core/class/openid.class.php
    +++ b/htdocs/core/class/openid.class.php
    @@ -30,8 +30,8 @@ class SimpleOpenID
         var $URLs = array();
         var $error = array();
         var $fields = array(
    -		'required'	 => array(),
    -		'optional'	 => array(),
    +		'required' => array(),
    +		'optional' => array(),
         );
     
         /**
    @@ -45,6 +45,7 @@ class SimpleOpenID
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * SetOpenIDServer
          *
    @@ -53,9 +54,11 @@ class SimpleOpenID
          */
         function SetOpenIDServer($a)
         {
    +        // phpcs:enable
             $this->URLs['openid_server'] = $a;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * SetOpenIDServer
          *
    @@ -64,9 +67,11 @@ class SimpleOpenID
          */
         function SetTrustRoot($a)
         {
    +        // phpcs:enable
             $this->URLs['trust_root'] = $a;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * SetOpenIDServer
          *
    @@ -75,9 +80,11 @@ class SimpleOpenID
          */
         function SetCancelURL($a)
         {
    +        // phpcs:enable
             $this->URLs['cancel'] = $a;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * SetApprovedURL
          *
    @@ -86,9 +93,11 @@ class SimpleOpenID
          */
         function SetApprovedURL($a)
         {
    +        // phpcs:enable
             $this->URLs['approved'] = $a;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * SetRequiredFields
          *
    @@ -97,13 +106,15 @@ class SimpleOpenID
          */
         function SetRequiredFields($a)
         {
    -        if (is_array($a)){
    +        // phpcs:enable
    +        if (is_array($a)) {
                 $this->fields['required'] = $a;
    -        }else{
    +        } else {
                 $this->fields['required'][] = $a;
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * SetOptionalFields
          *
    @@ -112,23 +123,27 @@ class SimpleOpenID
          */
         function SetOptionalFields($a)
         {
    -        if (is_array($a)){
    +        // phpcs:enable
    +        if (is_array($a)) {
                 $this->fields['optional'] = $a;
    -        }else{
    +        } else {
                 $this->fields['optional'][] = $a;
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * SetIdentity
          *
    -     * @param	string	$a		Server
    +     * @param	string  $a		Server
          * @return	void
          */
         function SetIdentity($a)
    -    { 	// Set Identity URL
    +    {
    +        // phpcs:enable
    +        // Set Identity URL
             if ((stripos($a, 'http://') === false)
    -        && (stripos($a, 'https://') === false)){
    +        && (stripos($a, 'https://') === false)) {
                 $a = 'http://'.$a;
             }
             /*
    @@ -147,16 +162,20 @@ class SimpleOpenID
             $this->openid_url_identity = $a;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * GetIdentity
          *
          * @return	string
          */
         function GetIdentity()
    -    { 	// Get Identity
    +    {
    +        // phpcs:enable
    +        // Get Identity
             return $this->openid_url_identity;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * SetOpenIDServer
          *
    @@ -164,10 +183,12 @@ class SimpleOpenID
          */
         function GetError()
         {
    +        // phpcs:enable
             $e = $this->error;
             return array('code'=>$e[0],'description'=>$e[1]);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * ErrorStore
          *
    @@ -177,6 +198,7 @@ class SimpleOpenID
          */
         function ErrorStore($code, $desc = null)
         {
    +        // phpcs:enable
             $errs['OPENID_NOSERVERSFOUND'] = 'Cannot find OpenID Server TAG on Identity page.';
             if ($desc == null){
                 $desc = $errs[$code];
    @@ -184,6 +206,7 @@ class SimpleOpenID
             $this->error = array($code,$desc);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * IsError
          *
    @@ -191,6 +214,7 @@ class SimpleOpenID
          */
         function IsError()
         {
    +        // phpcs:enable
             if (count($this->error) > 0)
             {
                 return true;
    @@ -221,6 +245,7 @@ class SimpleOpenID
             return $r;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * OpenID_Standarize
          *
    @@ -229,6 +254,7 @@ class SimpleOpenID
          */
         function OpenID_Standarize($openid_identity = null)
         {
    +        // phpcs:enable
             if ($openid_identity === null)
             $openid_identity = $this->openid_url_identity;
     
    @@ -254,7 +280,8 @@ class SimpleOpenID
          * @return false|string		false if KO, string of url if OK
          */
         function array2url($arr)
    -    { // converts associated array to URL Query String
    +    {
    +        // converts associated array to URL Query String
             if (!is_array($arr)){
                 return false;
             }
    @@ -265,6 +292,7 @@ class SimpleOpenID
             return $query;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * FSOCK_Request
          *
    @@ -275,6 +303,7 @@ class SimpleOpenID
          */
         function FSOCK_Request($url, $method="GET", $params = "")
         {
    +        // phpcs:enable
             $fp = fsockopen("ssl://www.myopenid.com", 443, $errno, $errstr, 3); // Connection timeout is 3 seconds
             if (!$fp) {
                 $this->ErrorStore('OPENID_SOCKETERROR', $errstr);
    @@ -297,6 +326,7 @@ class SimpleOpenID
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * CURL_Request
          *
    @@ -306,7 +336,9 @@ class SimpleOpenID
          * @return string
          */
         function CURL_Request($url, $method="GET", $params = "")
    -    { // Remember, SSL MUST BE SUPPORTED
    +    {
    +        // phpcs:enable
    +        // Remember, SSL MUST BE SUPPORTED
             if (is_array($params)) $params = $this->array2url($params);
     
             $curl = curl_init($url . ($method == "GET" && $params != "" ? "?" . $params : ""));
    @@ -327,6 +359,7 @@ class SimpleOpenID
             return $response;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * HTML2OpenIDServer
          *
    @@ -335,6 +368,7 @@ class SimpleOpenID
          */
         function HTML2OpenIDServer($content)
         {
    +        // phpcs:enable
             $get = array();
     
             // Get details of their OpenID server and (optional) delegate
    @@ -353,6 +387,7 @@ class SimpleOpenID
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Get openid server
          *
    @@ -361,7 +396,8 @@ class SimpleOpenID
          */
         function GetOpenIDServer($url='')
         {
    -    	global $conf;
    +        // phpcs:enable
    +        global $conf;
     
     		include_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
     		if (empty($url)) $url=$conf->global->MAIN_AUTHENTICATION_OPENID_URL;
    @@ -369,18 +405,19 @@ class SimpleOpenID
             $response = getURLContent($url);
     
             list($servers, $delegates) = $this->HTML2OpenIDServer($response);
    -        if (count($servers) == 0){
    +        if (count($servers) == 0) {
                 $this->ErrorStore('OPENID_NOSERVERSFOUND');
                 return false;
             }
             if (isset($delegates[0])
    -        && ($delegates[0] != "")){
    +        && ($delegates[0] != "")) {
                 $this->SetIdentity($delegates[0]);
             }
             $this->SetOpenIDServer($servers[0]);
             return $servers[0];
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * GetRedirectURL
          *
    @@ -388,6 +425,7 @@ class SimpleOpenID
          */
         function GetRedirectURL()
         {
    +        // phpcs:enable
             $params = array();
             $params['openid.return_to'] = urlencode($this->URLs['approved']);
             $params['openid.mode'] = 'checkid_setup';
    @@ -405,6 +443,7 @@ class SimpleOpenID
             return $this->URLs['openid_server'] . "?". $this->array2url($params);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Redirect
          *
    @@ -412,6 +451,7 @@ class SimpleOpenID
          */
         function Redirect()
         {
    +        // phpcs:enable
             $redirect_to = $this->GetRedirectURL();
             if (headers_sent())
             { // Use JavaScript to redirect if content has been previously sent (not recommended, but safe)
    @@ -425,6 +465,7 @@ class SimpleOpenID
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * ValidateWithServer
          *
    @@ -432,6 +473,7 @@ class SimpleOpenID
          */
         function ValidateWithServer()
         {
    +        // phpcs:enable
             $params = array(
     			'openid.assoc_handle' => urlencode($_GET['openid_assoc_handle']),
     			'openid.signed' => urlencode($_GET['openid_signed']),
    @@ -520,6 +562,4 @@ class SimpleOpenID
             	return $server;
     	    }
         }
    -
     }
    -
    diff --git a/htdocs/core/class/rssparser.class.php b/htdocs/core/class/rssparser.class.php
    index 47c36cb0eaf..fd37476a26e 100644
    --- a/htdocs/core/class/rssparser.class.php
    +++ b/htdocs/core/class/rssparser.class.php
    @@ -26,8 +26,15 @@
      */
     class RssParser
     {
    -    var $db;
    -    var $error;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
         private $_format='';
         private $_urlRSS;
    @@ -54,7 +61,7 @@ class RssParser
          */
         public function __construct($db)
         {
    -    	$this->db=$db;
    +    	$this->db = $db;
         }
     
         /**
    @@ -454,6 +461,7 @@ class RssParser
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Triggered when opened tag is found
          *
    @@ -464,6 +472,7 @@ class RssParser
          */
         function feed_start_element($p, $element, &$attrs)
         {
    +        // phpcs:enable
             $el = $element = strtolower($element);
             $attrs = array_change_key_case($attrs, CASE_LOWER);
     
    @@ -536,8 +545,6 @@ class RssParser
                 }
     
                 $this->incontent = $el;
    -
    -
             }
     
             // if inside an Atom content construct (e.g. content or summary) field treat tags as text
    @@ -574,6 +581,7 @@ class RssParser
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Triggered when CDATA is found
          *
    @@ -583,6 +591,7 @@ class RssParser
          */
         function feed_cdata($p, $text)
         {
    +        // phpcs:enable
             if ($this->_format == 'atom' and $this->incontent)
             {
                 $this->append_content($text);
    @@ -594,6 +603,7 @@ class RssParser
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Triggered when closed tag is found
          *
    @@ -603,6 +613,7 @@ class RssParser
          */
         function feed_end_element($p, $el)
         {
    +        // phpcs:enable
             $el = strtolower($el);
     
             if ($el == 'item' or $el == 'entry')
    @@ -663,6 +674,7 @@ class RssParser
             $str1 .= $str2;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Enter description here ...
          *
    @@ -671,6 +683,7 @@ class RssParser
          */
         function append_content($text)
         {
    +        // phpcs:enable
             if ( $this->initem ) {
                 $this->concat($this->current_item[ $this->incontent ], $text);
             }
    @@ -719,10 +732,8 @@ class RssParser
                 elseif ($this->inchannel) {
                     $this->concat($this->channel[ $el ], $text);
                 }
    -
             }
         }
    -
     }
     
     
    @@ -745,11 +756,10 @@ function xml2php($xml)
             foreach($value->attributes() as $ak=>$av)
             {
                 $child[$ak] = (string) $av;
    -
             }
     
             //Let see if the new child is not in the array
    -        if($tab === false && in_array($key,array_keys($array)))
    +        if ($tab === false && in_array($key,array_keys($array)))
             {
                 //If this element is already in the array we will create an indexed array
                 $tmp = $array[$key];
    @@ -773,12 +783,10 @@ function xml2php($xml)
         }
     
     
    -    if($fils==0)
    +    if ($fils==0)
         {
             return (string) $xml;
         }
     
         return $array;
    -
     }
    -
    diff --git a/htdocs/core/class/smtps.class.php b/htdocs/core/class/smtps.class.php
    index ffa9dafdfbe..1ade95098fa 100644
    --- a/htdocs/core/class/smtps.class.php
    +++ b/htdocs/core/class/smtps.class.php
    @@ -344,6 +344,7 @@ class SMTPs
     		$_aryToList = $this->getTO();
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Attempt a connection to mail server
     	 *
    @@ -351,6 +352,7 @@ class SMTPs
     	 */
     	function _server_connect()
     	{
    +        // phpcs:enable
     		// Default return value
     		$_retVal = true;
     
    @@ -406,6 +408,7 @@ class SMTPs
     		return $_retVal;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Attempt mail server authentication for a secure connection
     	 *
    @@ -413,6 +416,7 @@ class SMTPs
     	 */
     	function _server_authenticate()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		// Send the RFC2554 specified EHLO.
    @@ -656,7 +660,7 @@ class SMTPs
     		{
     			// If the path is not valid, this will NOT generate an error,
     			// it will simply return false.
    -			if ( ! @include ( $_strConfigPath ) )
    +			if ( ! @include $_strConfigPath)
     			{
     				$this->_setErr(110, '"' . $_strConfigPath . '" is not a valid path.');
     				$_retVal = false;
    @@ -1036,6 +1040,7 @@ class SMTPs
     		$this->_msgRecipients = $aryHost;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Returns an array of the various parts of an email address
     	 * This assumes a well formed address:
    @@ -1054,6 +1059,7 @@ class SMTPs
     	 */
     	function _strip_email($_strAddr)
     	{
    +        // phpcs:enable
     		// Keep the orginal
     		$_aryEmail['org'] = $_strAddr;
     
    @@ -1087,6 +1093,7 @@ class SMTPs
     		return $_aryEmail;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Returns an array of bares addresses for use with 'RCPT TO:'
     	 * This is a "build as you go" method. Each time this method is called
    @@ -1096,6 +1103,7 @@ class SMTPs
     	 */
     	function get_RCPT_list()
     	{
    +        // phpcs:enable
     		/**
     		 * An array of bares addresses for use with 'RCPT TO:'
     		 */
    @@ -1117,6 +1125,7 @@ class SMTPs
     		return $_RCPT_list;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Returns an array of addresses for a specific type; TO, CC or BCC
     	 *
    @@ -1125,6 +1134,7 @@ class SMTPs
     	 */
     	function get_email_list($_which = null)
     	{
    +        // phpcs:enable
     		// We need to know which address segment to pull
     		if ( $_which )
     		{
    @@ -1165,7 +1175,6 @@ class SMTPs
     			$this->_setErr(102, 'eMail type not defined.');
     			return false;
     		}
    -
     	}
     
     	/**
    @@ -1301,7 +1310,7 @@ class SMTPs
     			// References is kept in response and Message-ID is returned into In-Reply-To:
     			$_header .= 'Message-ID: <' . time() . '.SMTPs-dolibarr-'.$trackid.'@' . $host . ">\r\n";
     			$_header .= 'References: <' . time() . '.SMTPs-dolibarr-'.$trackid.'@' . $host . ">\r\n";
    -			$_header .= 'X-Dolibarr-TRACKID: ' . $trackid . "\r\n";
    +			$_header .= 'X-Dolibarr-TRACKID: ' . $trackid . '@' . $host . "\r\n";
     		}
     		else
     		{
    @@ -1650,7 +1659,7 @@ class SMTPs
     	 * @param 	integer 	$_value 	Message Priority
     	 * @return 	void
     	 */
    -	function setPriority ( $_value = 3 )
    +	function setPriority( $_value = 3 )
     	{
     		if ( ( is_numeric($_value) ) &&
     		( ( $_value >= 0 ) && ( $_value <= 5 ) ) )
    @@ -1746,6 +1755,7 @@ class SMTPs
     		else if ($type == 'alternative') return $this->_smtpsAlternativeBoundary;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * This function has been modified as provided by SirSir to allow multiline responses when
     	 * using SMTP Extensions
    @@ -1756,6 +1766,7 @@ class SMTPs
     	 */
     	function server_parse($socket, $response)
     	{
    +        // phpcs:enable
     		/**
     		 * Returns constructed SELECT Object string or boolean upon failure
     		 * Default value is set at true
    @@ -1787,6 +1798,7 @@ class SMTPs
     		return $_retVal;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Send str
     	 *
    @@ -1797,6 +1809,7 @@ class SMTPs
     	 */
     	function socket_send_str( $_strSend, $_returnCode = null, $CRLF = "\r\n" )
     	{
    +        // phpcs:enable
     		if ($this->_debug) $this->log.=$_strSend;	// @CHANGE LDR for log
     		fputs($this->socket, $_strSend . $CRLF);
     		if ($this->_debug) $this->log.=' ('.$_returnCode.')' . $CRLF;
    @@ -1814,12 +1827,14 @@ class SMTPs
     	 * @param  int    $_errNum  Error Code Number
     	 * @param  string $_errMsg  Error Message
     	 * @return void
    -	 */
    -	function _setErr ( $_errNum, $_errMsg )
    -	{
    -		$this->_smtpsErrors[] = array( 'num' => $_errNum,
    -                                       'msg' => $_errMsg );
    -	}
    +     */
    +    function _setErr( $_errNum, $_errMsg )
    +    {
    +        $this->_smtpsErrors[] = array(
    +            'num' => $_errNum,
    +            'msg' => $_errMsg,
    +        );
    +    }
     
     	/**
     	 * Returns errors codes and messages for Class
    @@ -1840,8 +1855,6 @@ class SMTPs
     
     		return implode("\n", $_errMsg);
     	}
    -
    -
     }
     
     
    @@ -2049,4 +2062,3 @@ class SMTPs
      *  - basic shell with some commets
      *
      */
    -
    diff --git a/htdocs/core/class/stats.class.php b/htdocs/core/class/stats.class.php
    index 1433085a36a..90986e7b6da 100644
    --- a/htdocs/core/class/stats.class.php
    +++ b/htdocs/core/class/stats.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (c) 2008-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012       Marcos García           <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php
    index 04867db0e7a..a8d22b61257 100644
    --- a/htdocs/core/class/translate.class.php
    +++ b/htdocs/core/class/translate.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001      Eric Seigne         <erics@rycks.com>
      * Copyright (C) 2004-2015 Destailleur Laurent <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin       <regis.houssin@inodbox.com>
      *
      * 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
    @@ -189,7 +189,7 @@ class Translate
     
     
     		// Load $this->tab_translate[] from database
    -		if (empty($loadfromfileonly) && count($this->tab_translate) == 0) $this->loadFromDatabase($db);      // Nothing was loaded yet, so we load database.
    +		if (empty($loadfromfileonly) && count($this->tab_translate) == 0) $this->loadFromDatabase($db);      // No translation was never loaded yet, so we load database.
     
     
     		$newdomain = $domain;
    @@ -231,7 +231,8 @@ class Translate
     
     			$filelangexists=is_file($file_lang_osencoded);
     
    -			//dol_syslog(get_class($this).'::Load Try to read for alt='.$alt.' langofdir='.$langofdir.' newdomain='.$domain.' modulename='.$modulename.' file_lang='.$file_lang." => filelangexists=".$filelangexists);
    +			//dol_syslog(get_class($this).'::Load Try to read for alt='.$alt.' langofdir='.$langofdir.' domain='.$domain.' newdomain='.$newdomain.' modulename='.$modulename.' file_lang='.$file_lang." => filelangexists=".$filelangexists);
    +			//print 'Try to read for alt='.$alt.' langofdir='.$langofdir.' domain='.$domain.' newdomain='.$newdomain.' modulename='.$modulename.' this->_tab_loaded[newdomain]='.$this->_tab_loaded[$newdomain].' file_lang='.$file_lang." => filelangexists=".$filelangexists."\n";
     
     			if ($filelangexists)
     			{
    @@ -354,12 +355,12 @@ class Translate
     			$this->load($domain,$alt+1,$stopafterdirection,$langofdir);
     		}
     
    -		// We already are the reference file. No more files to scan to complete.
    +		// We are in the pass of the reference file. No more files to scan to complete.
     		if ($alt == 2)
     		{
    -			if ($fileread) $this->_tab_loaded[$newdomain]=1;	// Set domain file as loaded
    +			if ($fileread) $this->_tab_loaded[$newdomain]=1;								// Set domain file as found so loaded
     
    -			if (empty($this->_tab_loaded[$newdomain])) $this->_tab_loaded[$newdomain]=2;           // Set this file as found
    +			if (empty($this->_tab_loaded[$newdomain])) $this->_tab_loaded[$newdomain]=2;	// Set this file as not found
     		}
     
     		// This part is deprecated and replaced with table llx_overwrite_trans
    @@ -410,22 +411,18 @@ class Translate
     		//dol_syslog("Translate::Load Start domain=".$domain." alt=".$alt." forcelangdir=".$forcelangdir." this->defaultlang=".$this->defaultlang);
     
     		$newdomain = $domain;
    -		$modulename = '';
     
    -        // Check cache
    -		if (! empty($this->_tab_loaded[$newdomain]))	// File already loaded for this domain
    +		// Check cache
    +		if (! empty($this->_tab_loaded[$newdomain]))	// File already loaded for this domain 'database'
     		{
     			//dol_syslog("Translate::Load already loaded for newdomain=".$newdomain);
     			return 0;
     		}
     
    -		$this->_tab_loaded[$newdomain] = 1;   // We want to be sure this function is called once only.
    +		$this->_tab_loaded[$newdomain] = 1;   // We want to be sure this function is called once only for domain 'database'
     
             $fileread=0;
    -		$langofdir=(empty($forcelangdir)?$this->defaultlang:$forcelangdir);
    -
    -		// Redefine alt
    -		$alt=2;
    +		$langofdir=$this->defaultlang;
     
     		if (empty($langofdir))	// This may occurs when load is called without setting the language and without providing a value for forcelangdir
     		{
    @@ -434,14 +431,14 @@ class Translate
     		}
     
     		// TODO Move cache read out of loop on dirs or at least filelangexists
    -	    $found=false;
    +		$found=false;
     
     		// Enable caching of lang file in memory (not by default)
     		$usecachekey='';
     		// Using a memcached server
     		if (! empty($conf->memcached->enabled) && ! empty($conf->global->MEMCACHED_SERVER))
     		{
    -			$usecachekey=$newdomain.'_'.$langofdir.'_'.md5($file_lang);    // Should not contains special chars
    +			$usecachekey=$newdomain.'_'.$langofdir;    // Should not contains special chars
     		}
     		// Using cache with shmop. Speed gain: 40ms - Memory overusage: 200ko (Size of session cache file)
     		else if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x02))
    @@ -573,7 +570,11 @@ class Translate
                 //$newstr=$this->getLabelFromKey($db,$reg[1],'c_ordersource','code','label');
             }
     
    -        if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) dol_syslog(__METHOD__." missing translation for key '".$newstr."' in ".$_SERVER["PHP_SELF"], LOG_DEBUG);
    +        /* Disabled. There is too many cases where translation of $newstr is not defined is normal (like when output with setEventMessage an already translated string)
    +        if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2)
    +        {
    +        	dol_syslog(__METHOD__." MAIN_FEATURES_LEVEL=DEVELOP: missing translation for key '".$newstr."' in ".$_SERVER["PHP_SELF"], LOG_DEBUG);
    +        }*/
     
             return $newstr;
     	}
    @@ -651,11 +652,12 @@ class Translate
     	 *  @param  string	$param2     chaine de param2
     	 *  @param  string	$param3     chaine de param3
     	 *  @param  string	$param4     chaine de param4
    +	 *  @param  string	$param5     chaine de param5
     	 *  @return string      		Translated string (encoded into UTF8)
     	 */
    -	function transnoentities($key, $param1='', $param2='', $param3='', $param4='')
    +	function transnoentities($key, $param1='', $param2='', $param3='', $param4='', $param5='')
     	{
    -		return $this->convToOutputCharset($this->transnoentitiesnoconv($key, $param1, $param2, $param3, $param4));
    +		return $this->convToOutputCharset($this->transnoentitiesnoconv($key, $param1, $param2, $param3, $param4, $param5));
     	}
     
     
    @@ -671,9 +673,10 @@ class Translate
     	 *  @param  string	$param2     chaine de param2
     	 *  @param  string	$param3     chaine de param3
     	 *  @param  string	$param4     chaine de param4
    +	 *  @param  string	$param5     chaine de param5
     	 *  @return string      		Translated string
     	 */
    -	function transnoentitiesnoconv($key, $param1='', $param2='', $param3='', $param4='')
    +	function transnoentitiesnoconv($key, $param1='', $param2='', $param3='', $param4='', $param5='')
     	{
     		global $conf;
     
    @@ -696,7 +699,7 @@ class Translate
                 if (! preg_match('/^Format/',$key))
                 {
                 	//print $str;
    -           		$str=sprintf($str,$param1,$param2,$param3,$param4);	// Replace %s and %d except for FormatXXX strings.
    +           		$str=sprintf($str, $param1, $param2, $param3, $param4, $param5);	// Replace %s and %d except for FormatXXX strings.
                 }
     
                 return $str;
    @@ -752,6 +755,7 @@ class Translate
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of all available languages
     	 *
    @@ -762,6 +766,7 @@ class Translate
     	 */
     	function get_available_languages($langdir=DOL_DOCUMENT_ROOT,$maxlength=0,$usecode=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		// We scan directory langs to detect available languages
    @@ -791,6 +796,7 @@ class Translate
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return if a filename $filename exists for current language (or alternate language)
     	 *
    @@ -800,6 +806,7 @@ class Translate
     	 */
     	function file_exists($filename,$searchalt=0)
     	{
    +        // phpcs:enable
     		// Test si fichier dans repertoire de la langue
     		foreach($this->dir as $searchdir)
     		{
    @@ -1014,6 +1021,7 @@ class Translate
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return an array with content of all loaded translation keys (found into this->tab_translate) so
     	 * we get a substitution array we can use for substitutions (for mail or ODT generation for example)
    @@ -1022,6 +1030,7 @@ class Translate
     	 */
     	function get_translations_for_substitutions()
     	{
    +        // phpcs:enable
     		$substitutionarray = array();
     
     		foreach($this->tab_translate as $code => $label) {
    diff --git a/htdocs/core/class/utils.class.php b/htdocs/core/class/utils.class.php
    index ab71975690f..9061539a804 100644
    --- a/htdocs/core/class/utils.class.php
    +++ b/htdocs/core/class/utils.class.php
    @@ -27,7 +27,10 @@
      */
     class Utils
     {
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	var $output;   // Used by Cron method to return message
     	var $result;   // Used by Cron method to return data
    @@ -281,8 +284,9 @@ class Utils
     			}
     
     			$errormsg='';
    +			$handle = '';
     
    -			// Debut appel methode execution
    +			// Start call method to execute dump
     			$fullcommandcrypted=$command." ".$paramcrypted." 2>&1";
     			$fullcommandclear=$command." ".$paramclear." 2>&1";
     			if ($compression == 'none') $handle = fopen($outputfile, 'w');
    @@ -339,7 +343,6 @@ class Utils
     						elseif (preg_match('/'.preg_quote('SET SQL_NOTES=@OLD_SQL_NOTES').'/i',$read)) $ok=1;
     					}
     					pclose($handlein);
    -
     				}
     
     
    @@ -374,7 +377,7 @@ class Utils
     				{
     					// Renommer fichier sortie en fichier erreur
     					//print "$outputfile -> $outputerror";
    -					@dol_delete_file($outputerror,1);
    +					@dol_delete_file($outputerror, 1, 0, 0, null, false, 0);
     					@rename($outputfile,$outputerror);
     					// Si safe_mode on et command hors du parametre exec, on a un fichier out vide donc errormsg vide
     					if (! $errormsg)
    @@ -406,13 +409,13 @@ class Utils
     
     			if ($compression == 'gz' or $compression == 'bz')
     			{
    -				$this->backup_tables($outputfiletemp);
    +				$this->backupTables($outputfiletemp);
     				dol_compress_file($outputfiletemp, $outputfile, $compression);
     				unlink($outputfiletemp);
     			}
     			else
     			{
    -				$this->backup_tables($outputfile);
    +				$this->backupTables($outputfile);
     			}
     
     			$this->output = "";
    @@ -481,7 +484,7 @@ class Utils
     			{
     				$i++;
     				if ($i <= $keeplastnfiles) continue;
    -				dol_delete_file($val['fullname']);
    +				dol_delete_file($val['fullname'], 0, 0, 0, null, false, 0);
     			}
     		}
     
    @@ -708,12 +711,14 @@ class Utils
     	}
     
     	/**
    -	 * This saves syslog files and compresses older ones
    -	 * Used from cronjob
    +	 * This saves syslog files and compresses older ones.
    +	 * Nb of archive to keep is defined into $conf->global->SYSLOG_FILE_SAVES
    +	 * CAN BE A CRON TASK
     	 *
     	 * @return	int						0 if OK, < 0 if KO
     	 */
    -	function compressSyslogs() {
    +    function compressSyslogs()
    +    {
     		global $conf;
     
     		if(empty($conf->loghandlers['mod_syslog_file'])) { // File Syslog disabled
    @@ -746,50 +751,52 @@ class Utils
     			$logname = $file['name'];
     			$logpath = $file['path'];
     
    -			// Handle already compressed files to rename them and add +1
    +			if (dol_is_file($logpath.'/'.$logname) && dol_filesize($logpath.'/'.$logname) > 0)	// If log file exists and is not empty
    +			{
    +				// Handle already compressed files to rename them and add +1
     
    -			$filter = '^'.preg_quote($logname, '/').'\.([0-9]+)\.gz$';
    +				$filter = '^'.preg_quote($logname, '/').'\.([0-9]+)\.gz$';
     
    -			$gzfilestmp = dol_dir_list($logpath, 'files', 0, $filter);
    -			$gzfiles = array();
    +				$gzfilestmp = dol_dir_list($logpath, 'files', 0, $filter);
    +				$gzfiles = array();
     
    -			foreach($gzfilestmp as $gzfile) {
    -				$tabmatches = array();
    -				preg_match('/'.$filter.'/i', $gzfile['name'], $tabmatches);
    +				foreach($gzfilestmp as $gzfile) {
    +					$tabmatches = array();
    +					preg_match('/'.$filter.'/i', $gzfile['name'], $tabmatches);
     
    -				$numsave = intval($tabmatches[1]);
    +					$numsave = intval($tabmatches[1]);
     
    -				$gzfiles[$numsave] = $gzfile;
    -			}
    -
    -			krsort($gzfiles, SORT_NUMERIC);
    -
    -			foreach($gzfiles as $numsave => $dummy) {
    -				if (dol_is_file($logpath.'/'.$logname.'.'.($numsave+1).'.gz')) {
    -					return -2;
    +					$gzfiles[$numsave] = $gzfile;
     				}
     
    -				if($numsave >= $nbSaves) {
    -					dol_delete_file($logpath.'/'.$logname.'.'.$numsave.'.gz');
    -				} else {
    -					dol_move($logpath.'/'.$logname.'.'.$numsave.'.gz', $logpath.'/'.$logname.'.'.($numsave+1).'.gz', 0, 1, 0, 0);
    -				}
    -			}
    +				krsort($gzfiles, SORT_NUMERIC);
     
    -			// Compress last save
    -			if (dol_is_file($logpath.'/'.$logname.'.1')) {
    -				if($nbSaves > 1) {
    -					$gzfilehandle = gzopen($logpath.'/'.$logname.'.2.gz', 'wb9');
    +				foreach($gzfiles as $numsave => $dummy) {
    +					if (dol_is_file($logpath.'/'.$logname.'.'.($numsave+1).'.gz')) {
    +						return -2;
    +					}
    +
    +					if($numsave >= $nbSaves) {
    +						dol_delete_file($logpath.'/'.$logname.'.'.$numsave.'.gz', 0, 0, 0, null, false, 0);
    +					} else {
    +						dol_move($logpath.'/'.$logname.'.'.$numsave.'.gz', $logpath.'/'.$logname.'.'.($numsave+1).'.gz', 0, 1, 0, 0);
    +					}
    +				}
    +
    +				// Compress current file and recreate it
    +
    +				if ($nbSaves > 0) {			// If $nbSaves is 1, we keep 1 archive .gz file, If 2, we keep 2 .gz files
    +					$gzfilehandle = gzopen($logpath.'/'.$logname.'.1.gz', 'wb9');
     
     					if (empty($gzfilehandle)) {
    -						$this->error = 'Failted to open file '.$logpath.'/'.$logname.'.2.gz';
    +						$this->error = 'Failted to open file '.$logpath.'/'.$logname.'.1.gz';
     						return -3;
     					}
     
    -					$sourcehandle = fopen($logpath.'/'.$logname.'.1', 'r');
    +					$sourcehandle = fopen($logpath.'/'.$logname, 'r');
     
     					if (empty($sourcehandle)) {
    -						$this->error = 'Failed to open file '.$logpath.'/'.$logname.'.1';
    +						$this->error = 'Failed to open file '.$logpath.'/'.$logname;
     						return -4;
     					}
     
    @@ -799,19 +806,18 @@ class Utils
     
     					fclose($sourcehandle);
     					gzclose($gzfilehandle);
    -				} else {
    -					dol_delete_file($logpath.'/'.$logname.'.1');
    -				}
    -			}
     
    -			// Compress current file et recreate it
    -
    -			if (dol_is_file($logpath.'/'.$logname)) {
    -				if (dol_move($logpath.'/'.$logname, $logpath.'/'.$logname.'.1', 0, 1, 0, 0))
    -				{
    -					$newlog = fopen($logpath.'/'.$logname, 'a+');
    -					fclose($newlog);
    +					@chmod($logpath.'/'.$logname.'.1.gz', octdec(empty($conf->global->MAIN_UMASK)?'0664':$conf->global->MAIN_UMASK));
     				}
    +
    +				dol_delete_file($logpath.'/'.$logname, 0, 0, 0, null, false, 0);
    +
    +				// Create empty file
    +				$newlog = fopen($logpath.'/'.$logname, 'a+');
    +				fclose($newlog);
    +
    +				//var_dump($logpath.'/'.$logname." - ".octdec(empty($conf->global->MAIN_UMASK)?'0664':$conf->global->MAIN_UMASK));
    +				@chmod($logpath.'/'.$logname, octdec(empty($conf->global->MAIN_UMASK)?'0664':$conf->global->MAIN_UMASK));
     			}
     		}
     
    @@ -829,7 +835,7 @@ class Utils
     	 *	@param	string	$tables			Table name or '*' for all
     	 *	@return	int						<0 if KO, >0 if OK
     	 */
    -	function backup_tables($outputfile, $tables='*')
    +	function backupTables($outputfile, $tables='*')
     	{
     		global $db, $langs;
     		global $errormsg;
    @@ -989,4 +995,4 @@ class Utils
     
     		return 1;
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/core/class/vcard.class.php b/htdocs/core/class/vcard.class.php
    index 8bdeb3e43b7..27144c9293a 100644
    --- a/htdocs/core/class/vcard.class.php
    +++ b/htdocs/core/class/vcard.class.php
    @@ -111,12 +111,13 @@ class vCard
          *	mise en forme de la photo
          *  warning NON TESTE !
          *
    -     *	@param	string	$type			Type
    -     *	@param	string	$photo			Photo
    -     *	@return	void
    -	 */
    +     *  @param  string  $type			Type
    +     *  @param  string  $photo			Photo
    +     *  @return	void
    +     */
         function setPhoto($type, $photo)
    -    { // $type = "GIF" | "JPEG"
    +    {
    +        // $type = "GIF" | "JPEG"
             $this->properties["PHOTO;TYPE=$type;ENCODING=BASE64"] = base64_encode($photo);
         }
     
    @@ -155,7 +156,7 @@ class vCard
          *	@return	void
          */
         function setBirthday($date)
    -    { 
    +    {
             // $date format is YYYY-MM-DD - RFC 2425 and RFC 2426
             $this->properties["BDAY"] = dol_print_date($date, 'dayrfc');
         }
    @@ -200,7 +201,8 @@ class vCard
          *	@param	string	$type			Type
          *	@return	void
          */
    -    function setLabel($postoffice="", $extended="", $street="", $city="", $region="", $zip="", $country="", $type="HOME;POSTAL") {
    +    function setLabel($postoffice="", $extended="", $street="", $city="", $region="", $zip="", $country="", $type="HOME;POSTAL")
    +    {
             $label = "";
             if ($postoffice!="") $label.= "$postoffice\r\n";
             if ($extended!="") $label.= "$extended\r\n";
    @@ -307,8 +309,8 @@ class vCard
         function getVCard()
         {
             $text = "BEGIN:VCARD\r\n";
    -        //$text.= "VERSION:3.0\r\n";
    -        $text.= "VERSION:2.1\r\n";
    +        $text.= "VERSION:3.0\r\n";
    +        //$text.= "VERSION:2.1\r\n";
             foreach($this->properties as $key => $value)
             {
                 $text.= "$key:$value\r\n";
    @@ -328,5 +330,4 @@ class vCard
         {
             return $this->filename;
         }
    -
     }
    diff --git a/htdocs/core/class/workboardresponse.class.php b/htdocs/core/class/workboardresponse.class.php
    index 13de74281ff..35449693599 100644
    --- a/htdocs/core/class/workboardresponse.class.php
    +++ b/htdocs/core/class/workboardresponse.class.php
    @@ -1,6 +1,7 @@
     <?php
     
     /* Copyright (C) 2015   Marcos García   <marcosgdf@gmail.com>
    + * Copyright (C) 2018   Charlene Benke  <charlie@patas-monkey.com>
      *
      * 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
    @@ -66,4 +67,9 @@ class WorkboardResponse
     	 */
     	public $nbtodolate = 0;
     
    -}
    \ No newline at end of file
    +	/**
    +	 * total price of items
    +	 * @var int
    +	 */
    +	public $total = 0;
    +}
    diff --git a/htdocs/core/datepicker.php b/htdocs/core/datepicker.php
    index 074760e88ca..6d0cd48ccfe 100644
    --- a/htdocs/core/datepicker.php
    +++ b/htdocs/core/datepicker.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) phpBSM
      * Copyright (C) 2005-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014	   Juanjo Menent        <jmenent@2byte.es>
      *
      * This file is a modified version of datepicker.php from phpBSM to fix some
    @@ -41,8 +41,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     
     if (GETPOST('lang', 'aZ09')) $langs->setDefaultLang(GETPOST('lang', 'aZ09'));	// If language was forced on URL by the main.inc.php
     
    -$langs->load("main");
    -$langs->load("agenda");
    +// Load translation files required by the page
    +$langs->loadLangs(array("main","agenda"));
     
     $right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
     $left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
    @@ -66,18 +66,19 @@ else
     }
     
     // Define tradMonths javascript array (we define this in datapicker AND in parent page to avoid errors with IE8)
    -$tradTemp=array($langs->trans("January"),
    -$langs->trans("February"),
    -$langs->trans("March"),
    -$langs->trans("April"),
    -$langs->trans("May"),
    -$langs->trans("June"),
    -$langs->trans("July"),
    -$langs->trans("August"),
    -$langs->trans("September"),
    -$langs->trans("October"),
    -$langs->trans("November"),
    -$langs->trans("December")
    +$tradTemp=array(
    +    $langs->trans("January"),
    +    $langs->trans("February"),
    +    $langs->trans("March"),
    +    $langs->trans("April"),
    +    $langs->trans("May"),
    +    $langs->trans("June"),
    +    $langs->trans("July"),
    +    $langs->trans("August"),
    +    $langs->trans("September"),
    +    $langs->trans("October"),
    +    $langs->trans("November"),
    +    $langs->trans("December")
     );
     print '<script type="text/javascript">';
     print 'var tradMonths = [';
    @@ -96,25 +97,22 @@ $qualified=true;
     
     if (! isset($_GET["sd"])) $_GET["sd"]="00000000";
     
    -if (! isset($_GET["m"])) $qualified=false;
    -if (! isset($_GET["y"])) $qualified=false;
    +if (! isset($_GET["m"]) || ! isset($_GET["y"])) $qualified=false;
     if (isset($_GET["m"]) && isset($_GET["y"]))
     {
    -	if ($_GET["m"] < 1)    $qualified=false;
    -	if ($_GET["m"] > 12)   $qualified=false;
    -	if ($_GET["y"] < 0)    $qualified=false;
    -	if ($_GET["y"] > 9999) $qualified=false;
    +	if ($_GET["m"] < 1 || $_GET["m"] > 12) $qualified=false;
    +	if ($_GET["y"] < 0 || $_GET["y"] > 9999) $qualified=false;
     }
     
     // If parameters provided, we show calendar
     if ($qualified)
     {
     	//print $_GET["cm"].",".$_GET["sd"].",".$_GET["m"].",".$_GET["y"];exit;
    -	displayBox(GETPOST("sd",'alpha'),GETPOST("m",'int'),GETPOST("y",'int'));
    +	displayBox(GETPOST("sd",'alpha'), GETPOST("m",'int'), GETPOST("y",'int'));
     }
     else
     {
    -	dol_print_error('','ErrorBadParameters');
    +	dol_print_error('', 'ErrorBadParameters');
     }
     
     
    @@ -195,9 +193,7 @@ function displayBox($selectedDate,$month,$year)
     	{
     		echo '<td width="', (int) (($i+1)*100/7) - (int) ($i*100/7), '%">', $langs->trans($day_names[($i + $startday) % 7]), '</td>', "\n";
     	}
    -	?>
    -	</tr>
    -	<?php
    +	print '</tr>';
     	//print "x ".$thedate." y";			// $thedate = first day of month
     	$firstdate=dol_getdate($thedate);
     	//var_dump($firstdateofweek);
    @@ -210,7 +206,7 @@ function displayBox($selectedDate,$month,$year)
     		//print_r($mydate);
     		if ($mydate < $firstdate)	// At first run
     		{
    -			echo "<TR class=\"dpWeek\">";
    +			echo "<tr class=\"dpWeek\">";
     			//echo $conf->global->MAIN_START_WEEK.' '.$firstdate["wday"].' '.$startday;
     			$cols=0;
     			for ($i = 0; $i < 7; $i++)
    @@ -221,7 +217,7 @@ function displayBox($selectedDate,$month,$year)
     					$mydate = $firstdate;
     					break;
     				}
    -				echo "<TD>&nbsp;</TD>";
    +				echo "<td>&nbsp;</td>";
     				$cols++;
     			}
     		}
    @@ -229,7 +225,7 @@ function displayBox($selectedDate,$month,$year)
     		{
     			if ($mydate["wday"] == $startday)
     			{
    -				echo "<TR class=\"dpWeek\">";
    +				echo "<tr class=\"dpWeek\">";
     				$cols=0;
     			}
     		}
    @@ -245,17 +241,17 @@ function displayBox($selectedDate,$month,$year)
     		}
     
     		// Sur click dans calendrier, appelle fonction dpClickDay
    -		echo "<TD class=\"".$dayclass."\"";
    +		echo "<td class=\"".$dayclass."\"";
     		echo " onMouseOver=\"dpHighlightDay(".$mydate["year"].",parseInt('".dol_print_date($thedate,"%m")."',10),".$mydate["mday"].",tradMonths)\"";
     		echo " onClick=\"dpClickDay(".$mydate["year"].",parseInt('".dol_print_date($thedate,"%m")."',10),".$mydate["mday"].",'".$langs->trans("FormatDateShortJavaInput")."')\"";
    -		echo ">".sprintf("%02s",$mydate["mday"])."</TD>";
    +		echo ">".sprintf("%02s",$mydate["mday"])."</td>";
     		$cols++;
     
     		if (($mydate["wday"] + 1) % 7 == $startday) echo "</TR>\n";
     
     		//$thedate=strtotime("tomorrow",$thedate);
     		$day++;
    -		$thedate=dol_mktime(12,0,0,$month,$day,$year);
    +		$thedate=dol_mktime(12, 0, 0, $month, $day, $year);
     		if ($thedate == '')
     		{
     			$stoploop=1;
    @@ -269,8 +265,8 @@ function displayBox($selectedDate,$month,$year)
     
     	if ($cols < 7)
     	{
    -		for($i=6; $i>=$cols; $i--) echo "<TD>&nbsp;</TD>";
    -		echo "</TR>\n";
    +		for($i=6; $i>=$cols; $i--) echo "<td>&nbsp;</td>";
    +		echo "</tr>\n";
     	}
     	?>
     	<tr>
    diff --git a/htdocs/core/db/Database.interface.php b/htdocs/core/db/Database.interface.php
    index 65699585f4a..54b950fdee7 100644
    --- a/htdocs/core/db/Database.interface.php
    +++ b/htdocs/core/db/Database.interface.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2002-2007	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2006		Andre Cianfarani		<acianfa@free.fr>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2014-2015  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -35,13 +35,15 @@ interface Database
     	 */
     	function ifsql($test, $resok, $resko);
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return datas as an array
     	 *
     	 * @param   resource $resultset Resultset of request
     	 * @return  array                    Array
     	 */
    -	function fetch_row($resultset);
    +    function fetch_row($resultset);
    +    // phpcs:enable
     
     	/**
     	 * Convert (by PHP) a GM Timestamp date into a string date with PHP server TZ to insert into a date field.
    @@ -66,6 +68,7 @@ interface Database
     	 */
     	function begin();
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Create a new database
     	 * Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
    @@ -77,7 +80,8 @@ interface Database
     	 * @param   string 		$owner 			Username of database owner
     	 * @return  resource                	resource defined if OK, null if KO
     	 */
    -	function DDLCreateDb($database, $charset = '', $collation = '', $owner = '');
    +    function DDLCreateDb($database, $charset = '', $collation = '', $owner = '');
    +    // phpcs:enable
     
     	/**
     	 * Return version of database server into an array
    @@ -95,6 +99,7 @@ interface Database
     	 */
     	static function convertSQLFromMysql($line, $type = 'ddl');
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
     	 *
    @@ -102,7 +107,8 @@ interface Database
     	 * @return 	int            Nombre de lignes
     	 * @see    	num_rows
     	 */
    -	function affected_rows($resultset);
    +    function affected_rows($resultset);
    +    // phpcs:enable
     
     	/**
     	 * Return description of last error
    @@ -111,6 +117,7 @@ interface Database
     	 */
     	function error();
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  List tables into a database
     	 *
    @@ -118,7 +125,8 @@ interface Database
     	 *  @param	string		$table		Nmae of table filter ('xxx%')
     	 *  @return	array					List of tables in an array
     	 */
    -	function DDLListTables($database, $table = '');
    +    function DDLListTables($database, $table = '');
    +    // phpcs:enable
     
     	/**
     	 * Return last request executed with query()
    @@ -144,13 +152,15 @@ interface Database
     	 */
     	function decrypt($value);
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Return datas as an array
     	 *
     	 * @param   resource $resultset Resultset of request
     	 * @return  array                    Array
     	 */
    -	function fetch_array($resultset);
    +    function fetch_array($resultset);
    +    // phpcs:enable
     
     	/**
     	 * Return last error label
    @@ -167,6 +177,7 @@ interface Database
     	 */
     	function escape($stringtoencode);
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Get last ID after an insert INSERT
     	 *
    @@ -174,7 +185,8 @@ interface Database
     	 * @param   string 	$fieldid 	Field name
     	 * @return  int                	Id of row
     	 */
    -	function last_insert_id($tab, $fieldid = 'rowid');
    +    function last_insert_id($tab, $fieldid = 'rowid');
    +    // phpcs:enable
     
     	/**
     	 *    Return full path of restore program
    @@ -196,7 +208,7 @@ interface Database
     	 *
     	 * @param   string $query SQL query string
     	 * @param   int $usesavepoint 0=Default mode, 1=Run a savepoint before and a rollback to savepoint if error (this allow to have some request with errors inside global transactions).
    -	 *                                    Note that with Mysql, this parameter is not used as Myssql can already commit a transaction even if one request is in error, without using savepoints.
    +	 *                            Note that with Mysql, this parameter is not used as Myssql can already commit a transaction even if one request is in error, without using savepoints.
     	 * @param   string $type Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
     	 * @return  resource                Resultset of answer
     	 */
    @@ -247,6 +259,7 @@ interface Database
     	 */
     	function getDefaultCollationDatabase();
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return number of lines for result of a SELECT
     	 *
    @@ -254,7 +267,8 @@ interface Database
     	 * @return 	int                        Nb of lines
     	 * @see    	affected_rows
     	 */
    -	function num_rows($resultset);
    +    function num_rows($resultset);
    +    // phpcs:enable
     
     	/**
     	 * Return full path of dump program
    @@ -277,6 +291,7 @@ interface Database
     	 */
     	function errno();
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Create a table into database
     	 *
    @@ -289,15 +304,18 @@ interface Database
     	 * @param        array $keys 			Tableau des champs cles noms => valeur
     	 * @return       int                    <0 if KO, >=0 if OK
     	 */
    -	function DDLCreateTable($table, $fields, $primary_key, $type, $unique_keys = null, $fulltext_keys = null, $keys = null);
    +    function DDLCreateTable($table, $fields, $primary_key, $type, $unique_keys = null, $fulltext_keys = null, $keys = null);
    +    // phpcs:enable
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Drop a table into database
     	 *
     	 * @param        string $table 			Name of table
     	 * @return       int                    <0 if KO, >=0 if OK
     	 */
    -	function DDLDropTable($table);
    +    function DDLDropTable($table);
    +    // phpcs:enable
     
     	/**
     	 * Return list of available charset that can be used to store data in database
    @@ -306,6 +324,7 @@ interface Database
     	 */
     	function getListOfCharacterSet();
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Create a new field into table
     	 *
    @@ -315,8 +334,10 @@ interface Database
     	 * @param    string $field_position 	Optionnel ex.: "after champtruc"
     	 * @return   int                        <0 if KO, >0 if OK
     	 */
    -	function DDLAddField($table, $field_name, $field_desc, $field_position = "");
    +    function DDLAddField($table, $field_name, $field_desc, $field_position = "");
    +    // phpcs:enable
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Drop a field from table
     	 *
    @@ -324,8 +345,10 @@ interface Database
     	 * @param    string $field_name 		Name of field to drop
     	 * @return   int                        <0 if KO, >0 if OK
     	 */
    -	function DDLDropField($table, $field_name);
    +    function DDLDropField($table, $field_name);
    +    // phpcs:enable
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Update format of a field into a table
     	 *
    @@ -334,7 +357,8 @@ interface Database
     	 * @param    string 	$field_desc 	Array with description of field format
     	 * @return   int                        <0 if KO, >0 if OK
     	 */
    -	function DDLUpdateField($table, $field_name, $field_desc);
    +    function DDLUpdateField($table, $field_name, $field_desc);
    +    // phpcs:enable
     
     	/**
     	 * Return list of available collation that can be used for database
    @@ -343,6 +367,7 @@ interface Database
     	 */
     	function getListOfCollation();
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return a pointer of line with description of a table or field
     	 *
    @@ -350,7 +375,8 @@ interface Database
     	 * @param    string 	$field 			Optionnel : Name of field if we want description of field
     	 * @return   resource            		Resource
     	 */
    -	function DDLDescTable($table, $field = "");
    +    function DDLDescTable($table, $field = "");
    +    // phpcs:enable
     
     	/**
     	 * Return version of database server
    @@ -366,6 +392,7 @@ interface Database
     	 */
     	function getDefaultCharacterSetDatabase();
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Create a user and privileges to connect to database (even if database does not exists yet)
     	 *
    @@ -380,7 +407,8 @@ interface Database
     		$dolibarr_main_db_user,
     		$dolibarr_main_db_pass,
     		$dolibarr_main_db_name
    -	);
    +    );
    +    // phpcs:enable
     
     	/**
     	 * Convert (by PHP) a PHP server TZ string date into a Timestamps date (GMT if gm=true)
    @@ -411,13 +439,15 @@ interface Database
     	 */
     	function commit($log = '');
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * List information of columns into a table.
     	 *
     	 * @param   string 			$table 			Name of table
     	 * @return  array                			Array with inforation on table
     	 */
    -	function DDLInfoTable($table);
    +    function DDLInfoTable($table);
    +    // phpcs:enable
     
     	/**
     	 * Free last resultset used.
    @@ -442,27 +472,32 @@ interface Database
     	 */
     	function lastqueryerror();
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return connexion ID
     	 *
     	 * @return  string      Id connexion
     	 */
    -	function DDLGetConnectId();
    +    function DDLGetConnectId();
    +    // phpcs:enable
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Renvoie la ligne courante (comme un objet) pour le curseur resultset
     	 *
     	 * @param   resource $resultset Curseur de la requete voulue
     	 * @return  Object                    Object result line or false if KO or end of cursor
     	 */
    -	function fetch_object($resultset);
    +    function fetch_object($resultset);
    +    // phpcs:enable
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Select a database
     	 *
     	 * @param	string $database Name of database
     	 * @return  boolean            true if OK, false if KO
     	 */
    -	function select_db($database);
    -
    +    function select_db($database);
    +    // phpcs:enable
     }
    diff --git a/htdocs/core/db/mssql.class.php b/htdocs/core/db/mssql.class.php
    index 4734c3364b5..f9e982961c9 100644
    --- a/htdocs/core/db/mssql.class.php
    +++ b/htdocs/core/db/mssql.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007      Simon Desee          <simon@dedisoft.com>
      * Copyright (C) 2015       Cedric GROSS            <c.gross@kreiz-it.fr>
      *
    @@ -139,6 +139,7 @@ class DoliDBMssql extends DoliDB
     		return $line;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Select a database
     	 *
    @@ -147,6 +148,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function select_db($database)
     	{
    +        // phpcs:enable
     		return @mssql_select_db($database, $this->db);
     	}
     
    @@ -372,7 +374,6 @@ class DoliDBMssql extends DoliDB
                         $query="ALTER TABLE [".$matches[1]."] ADD CONSTRAINT [".$matches[2]."] PRIMARY KEY CLUSTERED (".$matches[3].")";
         		    }
         		}
    -
     		}
     
     		if ($type=="auto" || $type='ddl')
    @@ -414,7 +415,6 @@ class DoliDBMssql extends DoliDB
         	       $sql='SET IDENTITY_INSERT ['.trim($matches[1]).'] ON;';
         	       @mssql_query($sql, $this->db);
         	       $post_query='SET IDENTITY_INSERT ['.trim($matches[1]).'] OFF;';
    -
         	   }
     		}
     		//print "<!--".$query."-->";
    @@ -459,6 +459,7 @@ class DoliDBMssql extends DoliDB
     		return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Renvoie la ligne courante (comme un objet) pour le curseur resultset
     	 *
    @@ -467,11 +468,13 @@ class DoliDBMssql extends DoliDB
     	 */
     	function fetch_object($resultset)
     	{
    +        // phpcs:enable
     		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
     		if (! is_resource($resultset)) { $resultset=$this->_results; }
     		return mssql_fetch_object($resultset);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *	Return datas as an array
          *
    @@ -480,12 +483,14 @@ class DoliDBMssql extends DoliDB
     	 */
     	function fetch_array($resultset)
     	{
    +        // phpcs:enable
     		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
     		if (! is_resource($resultset)) { $resultset=$this->_results; }
     		return mssql_fetch_array($resultset);
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *	Return datas as an array
          *
    @@ -494,11 +499,13 @@ class DoliDBMssql extends DoliDB
     	 */
     	function fetch_row($resultset)
     	{
    +        // phpcs:enable
     		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
     		if (! is_resource($resultset)) { $resultset=$this->_results; }
     		return @mssql_fetch_row($resultset);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *	Return number of lines for result of a SELECT
          *
    @@ -508,11 +515,13 @@ class DoliDBMssql extends DoliDB
     	 */
     	function num_rows($resultset)
     	{
    +        // phpcs:enable
     		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
     		if (! is_resource($resultset)) { $resultset=$this->_results; }
     		return mssql_num_rows($resultset);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
     	 *
    @@ -522,6 +531,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function affected_rows($resultset)
     	{
    +        // phpcs:enable
     		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
     		if (! is_resource($resultset)) { $resultset=$this->_results; }
     		// mssql necessite un link de base pour cette fonction contrairement
    @@ -639,6 +649,7 @@ class DoliDBMssql extends DoliDB
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Get last ID after an insert INSERT
     	 *
    @@ -648,6 +659,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function last_insert_id($tab,$fieldid='rowid')
     	{
    +        // phpcs:enable
     		$res = $this->query("SELECT @@IDENTITY as id");
     		if ($res && $data = $this->fetch_array($res))
     		{
    @@ -702,6 +714,7 @@ class DoliDBMssql extends DoliDB
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return connexion ID
     	 *
    @@ -709,6 +722,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function DDLGetConnectId()
     	{
    +        // phpcs:enable
     		$resql=$this->query('SELECT CONNECTION_ID()');
     		if ($resql)
     		{
    @@ -718,6 +732,7 @@ class DoliDBMssql extends DoliDB
     		else return '?';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Create a new database
     	 *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
    @@ -731,6 +746,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function DDLCreateDb($database,$charset='',$collation='',$owner='')
     	{
    +        // phpcs:enable
             /*if (empty($charset))   $charset=$this->forcecharset;
             if (empty($collation)) $collation=$this->forcecollate;
             */
    @@ -754,6 +770,7 @@ class DoliDBMssql extends DoliDB
     	    return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  List tables into a database
     	 *
    @@ -763,10 +780,12 @@ class DoliDBMssql extends DoliDB
     	 */
     	function DDLListTables($database,$table='')
     	{
    +        // phpcs:enable
     		$this->_results = mssql_list_tables($database, $this->db);
     		return $this->_results;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	List information of columns into a table.
     	 *
    @@ -775,6 +794,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function DDLInfoTable($table)
     	{
    +        // phpcs:enable
     
     		// FIXME: Dummy method
     		// TODO: Implement
    @@ -784,6 +804,7 @@ class DoliDBMssql extends DoliDB
     		return $infotables;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Create a table into database
     	 *
    @@ -798,6 +819,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys=null,$fulltext_keys=null,$keys=null)
     	{
    +        // phpcs:enable
     		// FIXME: $fulltext_keys parameter is unused
     
     		// cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
    @@ -863,6 +885,7 @@ class DoliDBMssql extends DoliDB
     		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Drop a table into database
     	 *
    @@ -871,6 +894,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function DDLDropTable($table)
     	{
    +        // phpcs:enable
     		$sql = "DROP TABLE ".$table;
     
     		if (! $this->query($sql))
    @@ -879,6 +903,7 @@ class DoliDBMssql extends DoliDB
     			return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return a pointer of line with description of a table or field
     	 *
    @@ -888,6 +913,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function DDLDescTable($table,$field="")
     	{
    +        // phpcs:enable
     		$sql="DESC ".$table." ".$field;
     
     		dol_syslog($sql);
    @@ -895,6 +921,7 @@ class DoliDBMssql extends DoliDB
     		return $this->_results;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Create a new field into table
     	 *
    @@ -906,6 +933,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function DDLAddField($table,$field_name,$field_desc,$field_position="")
     	{
    +        // phpcs:enable
     		// cles recherchees dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra
     		// ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
     		$sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
    @@ -931,6 +959,7 @@ class DoliDBMssql extends DoliDB
     		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Update format of a field into a table
     	 *
    @@ -941,6 +970,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function DDLUpdateField($table,$field_name,$field_desc)
     	{
    +        // phpcs:enable
     		$sql = "ALTER TABLE ".$table;
     		$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
     		if ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
    @@ -954,6 +984,7 @@ class DoliDBMssql extends DoliDB
     		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Drop a field from table
     	 *
    @@ -963,6 +994,7 @@ class DoliDBMssql extends DoliDB
     	 */
     	function DDLDropField($table,$field_name)
     	{
    +        // phpcs:enable
     		$sql= "ALTER TABLE ".$table." DROP COLUMN `".$field_name."`";
     		dol_syslog($sql,LOG_DEBUG);
     		if (! $this->query($sql))
    @@ -973,6 +1005,7 @@ class DoliDBMssql extends DoliDB
     		else return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Create a user and privileges to connect to database (even if database does not exists yet)
     	 *
    @@ -984,7 +1017,8 @@ class DoliDBMssql extends DoliDB
     	 */
     	function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass,$dolibarr_main_db_name)
     	{
    -	    $sql = "CREATE LOGIN ".$this->EscapeFieldName($dolibarr_main_db_user)." WITH PASSWORD='$dolibarr_main_db_pass'";
    +        // phpcs:enable
    +        $sql = "CREATE LOGIN ".$this->EscapeFieldName($dolibarr_main_db_user)." WITH PASSWORD='$dolibarr_main_db_pass'";
             dol_syslog(get_class($this)."::DDLCreateUser", LOG_DEBUG);	// No sql to avoid password in log
             $resql=$this->query($sql);
             if (! $resql)
    @@ -1132,17 +1166,21 @@ class DoliDBMssql extends DoliDB
     		return array();
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Escape a field name according to escape's syntax
     	 *
     	 * @param      string $fieldname   Field's name to escape
     	 * @return     string              field's name escaped
     	 */
    -	function EscapeFieldName($fieldname) {
    +    function EscapeFieldName($fieldname)
    +    {
    +        // phpcs:enable
     	    return "[".$fieldname."]";
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Get information on field
     	 *
    @@ -1150,7 +1188,9 @@ class DoliDBMssql extends DoliDB
     	 * @param      mixed   $fields     String for one field or array of string for multiple field
     	 * @return false|object
     	 */
    -	function GetFieldInformation($table,$fields) {
    +    function GetFieldInformation($table,$fields)
    +    {
    +        // phpcs:enable
     	    $sql="SELECT * from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='".$this->escape($table)."' AND COLUMN_NAME";
     	    if (is_array($fields))
     	    {
    @@ -1174,6 +1214,4 @@ class DoliDBMssql extends DoliDB
     
     	    return $result;
     	}
    -
     }
    -
    diff --git a/htdocs/core/db/mysqli.class.php b/htdocs/core/db/mysqli.class.php
    index 23c19542ae6..185ebe1a56f 100644
    --- a/htdocs/core/db/mysqli.class.php
    +++ b/htdocs/core/db/mysqli.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2002-2005	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2006		Andre Cianfarani		<acianfa@free.fr>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -167,16 +167,18 @@ class DoliDBMysqli extends DoliDB
             return $line;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 *	Select a database
    +	 *  Select a database
     	 *
    -	 *	@param	    string	$database	Name of database
    -	 *	@return	    boolean  		    true if OK, false if KO
    +	 *  @param	    string	$database	Name of database
    +	 *  @return	    boolean  		    true if OK, false if KO
     	 */
         function select_db($database)
         {
    +        // phpcs:enable
             dol_syslog(get_class($this)."::select_db database=".$database, LOG_DEBUG);
    -	    return $this->db->select_db($database);
    +        return $this->db->select_db($database);
         }
     
     
    @@ -285,6 +287,7 @@ class DoliDBMysqli extends DoliDB
             return $ret;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Renvoie la ligne courante (comme un objet) pour le curseur resultset
          *
    @@ -293,12 +296,14 @@ class DoliDBMysqli extends DoliDB
          */
         function fetch_object($resultset)
         {
    +        // phpcs:enable
             // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
             if (! is_object($resultset)) { $resultset=$this->_results; }
     		return $resultset->fetch_object();
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Return datas as an array
          *
    @@ -307,11 +312,13 @@ class DoliDBMysqli extends DoliDB
          */
         function fetch_array($resultset)
         {
    +        // phpcs:enable
             // If resultset not provided, we take the last used by connexion
             if (! is_object($resultset)) { $resultset=$this->_results; }
             return $resultset->fetch_array();
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Return datas as an array
          *
    @@ -320,6 +327,7 @@ class DoliDBMysqli extends DoliDB
          */
         function fetch_row($resultset)
         {
    +        // phpcs:enable
             // If resultset not provided, we take the last used by connexion
             if (! is_bool($resultset))
             {
    @@ -333,6 +341,7 @@ class DoliDBMysqli extends DoliDB
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Return number of lines for result of a SELECT
          *
    @@ -342,11 +351,13 @@ class DoliDBMysqli extends DoliDB
          */
         function num_rows($resultset)
         {
    +        // phpcs:enable
             // If resultset not provided, we take the last used by connexion
             if (! is_object($resultset)) { $resultset=$this->_results; }
             return $resultset->num_rows;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
          *
    @@ -356,6 +367,7 @@ class DoliDBMysqli extends DoliDB
          */
         function affected_rows($resultset)
         {
    +        // phpcs:enable
             // If resultset not provided, we take the last used by connexion
             if (! is_object($resultset)) { $resultset=$this->_results; }
             // mysql necessite un link de base pour cette fonction contrairement
    @@ -456,6 +468,7 @@ class DoliDBMysqli extends DoliDB
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 * Get last ID after an insert INSERT
     	 *
    @@ -465,6 +478,7 @@ class DoliDBMysqli extends DoliDB
          */
         function last_insert_id($tab,$fieldid='rowid')
         {
    +        // phpcs:enable
             return $this->db->insert_id;
         }
     
    @@ -538,6 +552,7 @@ class DoliDBMysqli extends DoliDB
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 * Return connexion ID
     	 *
    @@ -545,6 +560,7 @@ class DoliDBMysqli extends DoliDB
          */
         function DDLGetConnectId()
         {
    +        // phpcs:enable
             $resql=$this->query('SELECT CONNECTION_ID()');
             if ($resql)
             {
    @@ -554,8 +570,9 @@ class DoliDBMysqli extends DoliDB
             else return '?';
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -	 *	Create a new database
    +     *  Create a new database
     	 *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
     	 *	We force to create database with charset this->forcecharset and collate this->forcecollate
     	 *
    @@ -567,6 +584,7 @@ class DoliDBMysqli extends DoliDB
          */
         function DDLCreateDb($database,$charset='',$collation='',$owner='')
         {
    +        // phpcs:enable
             if (empty($charset))   $charset=$this->forcecharset;
             if (empty($collation)) $collation=$this->forcecollate;
     
    @@ -586,6 +604,7 @@ class DoliDBMysqli extends DoliDB
             return $ret;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *  List tables into a database
     	 *
    @@ -595,6 +614,7 @@ class DoliDBMysqli extends DoliDB
          */
         function DDLListTables($database, $table='')
         {
    +        // phpcs:enable
             $listtables=array();
     
             $like = '';
    @@ -612,6 +632,7 @@ class DoliDBMysqli extends DoliDB
             return $listtables;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	List information of columns into a table.
     	 *
    @@ -620,6 +641,7 @@ class DoliDBMysqli extends DoliDB
          */
         function DDLInfoTable($table)
         {
    +        // phpcs:enable
             $infotables=array();
     
             $sql="SHOW FULL COLUMNS FROM ".$table.";";
    @@ -636,6 +658,7 @@ class DoliDBMysqli extends DoliDB
             return $infotables;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Create a table into database
     	 *
    @@ -650,6 +673,7 @@ class DoliDBMysqli extends DoliDB
          */
         function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys=null,$fulltext_keys=null,$keys=null)
         {
    +        // phpcs:enable
     	    // FIXME: $fulltext_keys parameter is unused
     
             // cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
    @@ -718,15 +742,17 @@ class DoliDBMysqli extends DoliDB
             return 1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -     *	Drop a table into database
    +     *  Drop a table into database
          *
          *	@param	    string	$table 			Name of table
          *	@return	    int						<0 if KO, >=0 if OK
          */
         function DDLDropTable($table)
         {
    -    	$sql = "DROP TABLE ".$table;
    +        // phpcs:enable
    +        $sql = "DROP TABLE ".$table;
     
     		if (! $this->query($sql))
      			return -1;
    @@ -734,6 +760,7 @@ class DoliDBMysqli extends DoliDB
         		return 1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Return a pointer of line with description of a table or field
     	 *
    @@ -743,6 +770,7 @@ class DoliDBMysqli extends DoliDB
          */
         function DDLDescTable($table,$field="")
         {
    +        // phpcs:enable
             $sql="DESC ".$table." ".$field;
     
             dol_syslog(get_class($this)."::DDLDescTable ".$sql,LOG_DEBUG);
    @@ -750,6 +778,7 @@ class DoliDBMysqli extends DoliDB
             return $this->_results;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Create a new field into table
     	 *
    @@ -761,6 +790,7 @@ class DoliDBMysqli extends DoliDB
          */
         function DDLAddField($table,$field_name,$field_desc,$field_position="")
         {
    +        // phpcs:enable
             // cles recherchees dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra
             // ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
             $sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
    @@ -800,6 +830,7 @@ class DoliDBMysqli extends DoliDB
             return -1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Update format of a field into a table
     	 *
    @@ -810,6 +841,7 @@ class DoliDBMysqli extends DoliDB
          */
         function DDLUpdateField($table,$field_name,$field_desc)
         {
    +        // phpcs:enable
             $sql = "ALTER TABLE ".$table;
             $sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
             if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
    @@ -845,6 +877,7 @@ class DoliDBMysqli extends DoliDB
             return 1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Drop a field from table
     	 *
    @@ -854,16 +887,18 @@ class DoliDBMysqli extends DoliDB
          */
         function DDLDropField($table,$field_name)
         {
    +        // phpcs:enable
             $sql= "ALTER TABLE ".$table." DROP COLUMN `".$field_name."`";
             dol_syslog(get_class($this)."::DDLDropField ".$sql,LOG_DEBUG);
             if ($this->query($sql)) {
                 return 1;
             }
    -	    $this->error=$this->lasterror();
    -	    return -1;
    +        $this->error=$this->lasterror();
    +        return -1;
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 * 	Create a user and privileges to connect to database (even if database does not exists yet)
     	 *
    @@ -875,6 +910,7 @@ class DoliDBMysqli extends DoliDB
          */
         function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass,$dolibarr_main_db_name)
         {
    +        // phpcs:enable
             $sql = "CREATE USER '".$this->escape($dolibarr_main_db_user)."'";
             dol_syslog(get_class($this)."::DDLCreateUser", LOG_DEBUG);	// No sql to avoid password in log
             $resql=$this->query($sql);
    @@ -1082,4 +1118,3 @@ class DoliDBMysqli extends DoliDB
             return $result;
         }
     }
    -
    diff --git a/htdocs/core/db/pgsql.class.php b/htdocs/core/db/pgsql.class.php
    index 8e57b29109e..85abdf2b004 100644
    --- a/htdocs/core/db/pgsql.class.php
    +++ b/htdocs/core/db/pgsql.class.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2014	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Yann Droneaud			<yann@droneaud.fr>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2015       Marcos García           <marcosgdf@gmail.com>
    @@ -359,8 +359,9 @@ class DoliDBPgsql extends DoliDB
     		return $line;
     	}
     
    -	/**
    -	 *	Select a database
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Select a database
          *  Ici postgresql n'a aucune fonction equivalente de mysql_select_db
          *  On compare juste manuellement si la database choisie est bien celle activee par la connexion
     	 *
    @@ -369,9 +370,13 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function select_db($database)
     	{
    -		if ($database == $this->database_name) return true;
    -		else return false;
    -	}
    +        // phpcs:enable
    +        if ($database == $this->database_name) {
    +            return true;
    +        } else {
    +            return false;
    +        }
    +    }
     
     	/**
     	 *	Connexion to server
    @@ -540,6 +545,7 @@ class DoliDBPgsql extends DoliDB
     		return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Renvoie la ligne courante (comme un objet) pour le curseur resultset
     	 *
    @@ -548,12 +554,14 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function fetch_object($resultset)
     	{
    +        // phpcs:enable
             // If resultset not provided, we take the last used by connexion
     		if (! is_resource($resultset)) { $resultset=$this->_results; }
     		return pg_fetch_object($resultset);
     	}
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *	Return datas as an array
          *
          *	@param	resource	$resultset  Resultset of request
    @@ -561,11 +569,13 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function fetch_array($resultset)
     	{
    +        // phpcs:enable
             // If resultset not provided, we take the last used by connexion
     		if (! is_resource($resultset)) { $resultset=$this->_results; }
     		return pg_fetch_array($resultset);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *	Return datas as an array
          *
    @@ -574,25 +584,29 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function fetch_row($resultset)
     	{
    +        // phpcs:enable
     		// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
     		if (! is_resource($resultset)) { $resultset=$this->_results; }
     		return pg_fetch_row($resultset);
     	}
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *	Return number of lines for result of a SELECT
          *
          *	@param	resourse	$resultset  Resulset of requests
          *	@return int		    			Nb of lines, -1 on error
          *	@see    affected_rows
    -	 */
    +     */
     	function num_rows($resultset)
     	{
    +        // phpcs:enable
             // If resultset not provided, we take the last used by connexion
     		if (! is_resource($resultset)) { $resultset=$this->_results; }
     		return pg_num_rows($resultset);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
     	 *
    @@ -602,6 +616,7 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function affected_rows($resultset)
     	{
    +        // phpcs:enable
             // If resultset not provided, we take the last used by connexion
     		if (! is_resource($resultset)) { $resultset=$this->_results; }
     		// pgsql necessite un resultset pour cette fonction contrairement
    @@ -754,6 +769,7 @@ class DoliDBPgsql extends DoliDB
     		return pg_last_error($this->db);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Get last ID after an insert INSERT
     	 *
    @@ -763,6 +779,7 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function last_insert_id($tab,$fieldid='rowid')
     	{
    +        // phpcs:enable
     		//$result = pg_query($this->db,"SELECT MAX(".$fieldid.") FROM ".$tab);
     		$result = pg_query($this->db,"SELECT currval('".$tab."_".$fieldid."_seq')");
     		if (! $result)
    @@ -819,6 +836,7 @@ class DoliDBPgsql extends DoliDB
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return connexion ID
     	 *
    @@ -826,11 +844,13 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function DDLGetConnectId()
     	{
    +        // phpcs:enable
     		return '?';
     	}
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Create a new database
     	 *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
    @@ -844,6 +864,7 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function DDLCreateDb($database,$charset='',$collation='',$owner='')
     	{
    +        // phpcs:enable
     	    if (empty($charset))   $charset=$this->forcecharset;
     		if (empty($collation)) $collation=$this->forcecollate;
     
    @@ -856,6 +877,7 @@ class DoliDBPgsql extends DoliDB
     		return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  List tables into a database
     	 *
    @@ -864,7 +886,8 @@ class DoliDBPgsql extends DoliDB
     	 *  @return	array					List of tables in an array
     	 */
     	function DDLListTables($database, $table='')
    -	{
    +    {
    +        // phpcs:enable
     		$listtables=array();
     
     		$like = '';
    @@ -880,6 +903,7 @@ class DoliDBPgsql extends DoliDB
     		return $listtables;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	List information of columns into a table.
     	 *
    @@ -889,6 +913,7 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function DDLInfoTable($table)
     	{
    +        // phpcs:enable
     		$infotables=array();
     
     		$sql="SELECT ";
    @@ -920,6 +945,7 @@ class DoliDBPgsql extends DoliDB
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Create a table into database
     	 *
    @@ -934,6 +960,7 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys=null,$fulltext_keys=null,$keys=null)
     	{
    +        // phpcs:enable
     		// FIXME: $fulltext_keys parameter is unused
     
     		// cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
    @@ -999,6 +1026,7 @@ class DoliDBPgsql extends DoliDB
     		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Drop a table into database
     	 *
    @@ -1007,6 +1035,7 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function DDLDropTable($table)
     	{
    +        // phpcs:enable
     		$sql = "DROP TABLE ".$table;
     
     		if (! $this->query($sql))
    @@ -1015,6 +1044,7 @@ class DoliDBPgsql extends DoliDB
     			return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Create a user to connect to database
     	 *
    @@ -1026,6 +1056,7 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass,$dolibarr_main_db_name)
     	{
    +        // phpcs:enable
     		// Note: using ' on user does not works with pgsql
     		$sql = "CREATE USER ".$this->escape($dolibarr_main_db_user)." with password '".$this->escape($dolibarr_main_db_pass)."'";
     
    @@ -1039,6 +1070,7 @@ class DoliDBPgsql extends DoliDB
     		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return a pointer of line with description of a table or field
     	 *
    @@ -1048,6 +1080,7 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function DDLDescTable($table,$field="")
     	{
    +        // phpcs:enable
     		$sql ="SELECT attname FROM pg_attribute, pg_type WHERE typname = '".$table."' AND attrelid = typrelid";
     		$sql.=" AND attname NOT IN ('cmin', 'cmax', 'ctid', 'oid', 'tableoid', 'xmin', 'xmax')";
     		if ($field) $sql.= " AND attname = '".$field."'";
    @@ -1057,6 +1090,7 @@ class DoliDBPgsql extends DoliDB
     		return $this->_results;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Create a new field into table
     	 *
    @@ -1068,34 +1102,36 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function DDLAddField($table,$field_name,$field_desc,$field_position="")
     	{
    +        // phpcs:enable
     		// cles recherchees dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra
     		// ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
     		$sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
     		$sql .= $field_desc['type'];
    -		if(preg_match("/^[^\s]/i",$field_desc['value']))
    +		if (preg_match("/^[^\s]/i",$field_desc['value']))
     		    if (! in_array($field_desc['type'],array('int','date','datetime')))
     		    {
     		        $sql.= "(".$field_desc['value'].")";
     		    }
     		if (preg_match("/^[^\s]/i",$field_desc['attribute']))
    -		$sql .= " ".$field_desc['attribute'];
    +            $sql .= " ".$field_desc['attribute'];
     		if (preg_match("/^[^\s]/i",$field_desc['null']))
    -		$sql .= " ".$field_desc['null'];
    +            $sql .= " ".$field_desc['null'];
     		if (preg_match("/^[^\s]/i",$field_desc['default']))
    -		if (preg_match("/null/i",$field_desc['default']))
    -		$sql .= " default ".$field_desc['default'];
    -		else
    -		$sql .= " default '".$field_desc['default']."'";
    +            if (preg_match("/null/i",$field_desc['default']))
    +                $sql .= " default ".$field_desc['default'];
    +		    else
    +                $sql .= " default '".$field_desc['default']."'";
     		if (preg_match("/^[^\s]/i",$field_desc['extra']))
    -		$sql .= " ".$field_desc['extra'];
    +            $sql .= " ".$field_desc['extra'];
     		$sql .= " ".$field_position;
     
     		dol_syslog($sql,LOG_DEBUG);
    -		if(! $this -> query($sql))
    +		if (! $this -> query($sql))
     			return -1;
     		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Update format of a field into a table
     	 *
    @@ -1106,6 +1142,7 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function DDLUpdateField($table,$field_name,$field_desc)
     	{
    +        // phpcs:enable
     		$sql = "ALTER TABLE ".$table;
     		$sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
     		if ($field_desc['type'] == 'double' || $field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
    @@ -1139,6 +1176,7 @@ class DoliDBPgsql extends DoliDB
     		return 1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Drop a field from table
     	 *
    @@ -1148,6 +1186,7 @@ class DoliDBPgsql extends DoliDB
     	 */
     	function DDLDropField($table,$field_name)
     	{
    +        // phpcs:enable
     		$sql= "ALTER TABLE ".$table." DROP COLUMN ".$field_name;
     		dol_syslog($sql,LOG_DEBUG);
     		if (! $this->query($sql))
    diff --git a/htdocs/core/db/sqlite3.class.php b/htdocs/core/db/sqlite3.class.php
    index 78762f282b4..bbd5853f95f 100644
    --- a/htdocs/core/db/sqlite3.class.php
    +++ b/htdocs/core/db/sqlite3.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2002-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Raphaël Doursenaud   <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -260,7 +260,6 @@ class DoliDBSqlite3 extends DoliDB
                         // Pour l'instant les contraintes ne sont pas créées
                         dol_syslog(get_class().'::query line emptied');
                         $line = 'SELECT 0;';
    -
                     }
     
                     //if (preg_match('/rowid\s+.*\s+PRIMARY\s+KEY,/i', $line)) {
    @@ -296,6 +295,7 @@ class DoliDBSqlite3 extends DoliDB
             return $line;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Select a database
          *
    @@ -304,8 +304,9 @@ class DoliDBSqlite3 extends DoliDB
          */
         function select_db($database)
         {
    +        // phpcs:enable
             dol_syslog(get_class($this)."::select_db database=".$database, LOG_DEBUG);
    -	    // sqlite_select_db() does not exist
    +        // sqlite_select_db() does not exist
             //return sqlite_select_db($this->db,$database);
             return true;
         }
    @@ -443,7 +444,6 @@ class DoliDBSqlite3 extends DoliDB
     
                 // dummy statement
                 $query="SELECT 0";
    -
             } else {
                 $query=$this->convertSQLFromMysql($query,$type);
             }
    @@ -490,6 +490,7 @@ class DoliDBSqlite3 extends DoliDB
             return $ret;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Renvoie la ligne courante (comme un objet) pour le curseur resultset
          *
    @@ -498,6 +499,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function fetch_object($resultset)
         {
    +        // phpcs:enable
             // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
             if (! is_object($resultset)) { $resultset=$this->_results; }
             //return $resultset->fetch(PDO::FETCH_OBJ);
    @@ -509,6 +511,7 @@ class DoliDBSqlite3 extends DoliDB
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Return datas as an array
          *
    @@ -517,6 +520,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function fetch_array($resultset)
         {
    +        // phpcs:enable
             // If resultset not provided, we take the last used by connexion
             if (! is_object($resultset)) { $resultset=$this->_results; }
             //return $resultset->fetch(PDO::FETCH_ASSOC);
    @@ -524,6 +528,7 @@ class DoliDBSqlite3 extends DoliDB
     	    return $ret;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Return datas as an array
          *
    @@ -532,6 +537,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function fetch_row($resultset)
         {
    +        // phpcs:enable
             // If resultset not provided, we take the last used by connexion
             if (! is_bool($resultset))
             {
    @@ -545,6 +551,7 @@ class DoliDBSqlite3 extends DoliDB
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Return number of lines for result of a SELECT
          *
    @@ -554,7 +561,8 @@ class DoliDBSqlite3 extends DoliDB
          */
         function num_rows($resultset)
         {
    -	    // FIXME: SQLite3Result does not have a queryString member
    +        // phpcs:enable
    +        // FIXME: SQLite3Result does not have a queryString member
     
             // If resultset not provided, we take the last used by connexion
             if (! is_object($resultset)) { $resultset=$this->_results; }
    @@ -564,6 +572,7 @@ class DoliDBSqlite3 extends DoliDB
             return 0;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Return number of lines for result of a SELECT
          *
    @@ -573,7 +582,8 @@ class DoliDBSqlite3 extends DoliDB
          */
         function affected_rows($resultset)
         {
    -	    // FIXME: SQLite3Result does not have a queryString member
    +        // phpcs:enable
    +        // FIXME: SQLite3Result does not have a queryString member
     
             // If resultset not provided, we take the last used by connexion
             if (! is_object($resultset)) { $resultset=$this->_results; }
    @@ -692,6 +702,7 @@ class DoliDBSqlite3 extends DoliDB
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Get last ID after an insert INSERT
          *
    @@ -701,6 +712,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function last_insert_id($tab,$fieldid='rowid')
         {
    +        // phpcs:enable
             return $this->db->lastInsertRowId();
         }
     
    @@ -773,6 +785,7 @@ class DoliDBSqlite3 extends DoliDB
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return connexion ID
          *
    @@ -780,10 +793,12 @@ class DoliDBSqlite3 extends DoliDB
          */
         function DDLGetConnectId()
         {
    +        // phpcs:enable
             return '?';
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Create a new database
     	 *	Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
    @@ -797,6 +812,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function DDLCreateDb($database,$charset='',$collation='',$owner='')
         {
    +        // phpcs:enable
             if (empty($charset))   $charset=$this->forcecharset;
             if (empty($collation)) $collation=$this->forcecollate;
     
    @@ -816,6 +832,7 @@ class DoliDBSqlite3 extends DoliDB
             return $ret;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  List tables into a database
          *
    @@ -825,6 +842,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function DDLListTables($database, $table='')
         {
    +        // phpcs:enable
             $listtables=array();
     
             $like = '';
    @@ -842,8 +860,9 @@ class DoliDBSqlite3 extends DoliDB
             return $listtables;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -	 *	List information of columns into a table.
    +     *  List information of columns into a table.
          *
     	 *	@param	string	$table		Name of table
     	 *	@return	array				Tableau des informations des champs de la table
    @@ -851,6 +870,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function DDLInfoTable($table)
         {
    +        // phpcs:enable
             $infotables=array();
     
             $sql="SHOW FULL COLUMNS FROM ".$table.";";
    @@ -867,6 +887,7 @@ class DoliDBSqlite3 extends DoliDB
             return $infotables;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Create a table into database
          *
    @@ -881,7 +902,8 @@ class DoliDBSqlite3 extends DoliDB
          */
         function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys=null,$fulltext_keys=null,$keys=null)
         {
    -	    // FIXME: $fulltext_keys parameter is unused
    +        // phpcs:enable
    +        // FIXME: $fulltext_keys parameter is unused
     
             // cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
             // ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
    @@ -945,6 +967,7 @@ class DoliDBSqlite3 extends DoliDB
             return 1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Drop a table into database
          *
    @@ -953,6 +976,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function DDLDropTable($table)
         {
    +        // phpcs:enable
         	$sql = "DROP TABLE ".$table;
     
         	if (! $this->query($sql))
    @@ -961,6 +985,7 @@ class DoliDBSqlite3 extends DoliDB
         		return 1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Return a pointer of line with description of a table or field
          *
    @@ -970,6 +995,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function DDLDescTable($table,$field="")
         {
    +        // phpcs:enable
             $sql="DESC ".$table." ".$field;
     
             dol_syslog(get_class($this)."::DDLDescTable ".$sql,LOG_DEBUG);
    @@ -977,6 +1003,7 @@ class DoliDBSqlite3 extends DoliDB
             return $this->_results;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Create a new field into table
          *
    @@ -988,6 +1015,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function DDLAddField($table,$field_name,$field_desc,$field_position="")
         {
    +        // phpcs:enable
             // cles recherchees dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra
             // ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
             $sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
    @@ -1020,6 +1048,7 @@ class DoliDBSqlite3 extends DoliDB
             return 1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Update format of a field into a table
          *
    @@ -1030,6 +1059,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function DDLUpdateField($table,$field_name,$field_desc)
         {
    +        // phpcs:enable
             $sql = "ALTER TABLE ".$table;
             $sql .= " MODIFY COLUMN ".$field_name." ".$field_desc['type'];
             if ($field_desc['type'] == 'tinyint' || $field_desc['type'] == 'int' || $field_desc['type'] == 'varchar') {
    @@ -1042,6 +1072,7 @@ class DoliDBSqlite3 extends DoliDB
             return 1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *	Drop a field from table
          *
    @@ -1051,6 +1082,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function DDLDropField($table,$field_name)
         {
    +        // phpcs:enable
             $sql= "ALTER TABLE ".$table." DROP COLUMN `".$field_name."`";
             dol_syslog(get_class($this)."::DDLDropField ".$sql,LOG_DEBUG);
             if (! $this->query($sql))
    @@ -1062,8 +1094,9 @@ class DoliDBSqlite3 extends DoliDB
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -	 * 	Create a user and privileges to connect to database (even if database does not exists yet)
    +     * 	Create a user and privileges to connect to database (even if database does not exists yet)
          *
     	 *	@param	string	$dolibarr_main_db_host 		Ip serveur
     	 *	@param	string	$dolibarr_main_db_user 		Nom user a creer
    @@ -1073,6 +1106,7 @@ class DoliDBSqlite3 extends DoliDB
          */
         function DDLCreateUser($dolibarr_main_db_host,$dolibarr_main_db_user,$dolibarr_main_db_pass,$dolibarr_main_db_name)
         {
    +        // phpcs:enable
             $sql = "INSERT INTO user ";
             $sql.= "(Host,User,password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Index_Priv,Alter_priv,Lock_tables_priv)";
             $sql.= " VALUES ('".$this->escape($dolibarr_main_db_host)."','".$this->escape($dolibarr_main_db_user)."',password('".addslashes($dolibarr_main_db_pass)."')";
    @@ -1294,6 +1328,7 @@ class DoliDBSqlite3 extends DoliDB
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
         /**
          * calc_daynr
          *
    @@ -1302,7 +1337,9 @@ class DoliDBSqlite3 extends DoliDB
          * @param	int     $day 		Day
          * @return int Formatted date
          */
    -    private static function calc_daynr($year, $month, $day) {
    +    private static function calc_daynr($year, $month, $day)
    +    {
    +        // phpcs:enable
             $y = $year;
             if ($y == 0 && $month == 0) return 0;
             $num = (365* $y + 31 * ($month - 1) + $day);
    @@ -1315,6 +1352,7 @@ class DoliDBSqlite3 extends DoliDB
             return $num + floor($y / 4) - $temp;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
         /**
          * calc_weekday
          *
    @@ -1322,11 +1360,14 @@ class DoliDBSqlite3 extends DoliDB
          * @param bool	$sunday_first_day_of_week		???
          * @return int
          */
    -    private static function calc_weekday($daynr, $sunday_first_day_of_week) {
    -      $ret = floor(($daynr + 5 + ($sunday_first_day_of_week ? 1 : 0)) % 7);
    -      return $ret;
    +    private static function calc_weekday($daynr, $sunday_first_day_of_week)
    +    {
    +        // phpcs:enable
    +        $ret = floor(($daynr + 5 + ($sunday_first_day_of_week ? 1 : 0)) % 7);
    +        return $ret;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
         /**
          * calc_days_in_year
          *
    @@ -1335,9 +1376,11 @@ class DoliDBSqlite3 extends DoliDB
          */
         private static function calc_days_in_year($year)
         {
    -      return (($year & 3) == 0 && ($year%100 || ($year%400 == 0 && $year)) ? 366 : 365);
    +        // phpcs:enable
    +        return (($year & 3) == 0 && ($year%100 || ($year%400 == 0 && $year)) ? 366 : 365);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
     	/**
     	 * calc_week
     	 *
    @@ -1348,7 +1391,9 @@ class DoliDBSqlite3 extends DoliDB
     	 * @param 	string	$calc_year			???
     	 * @return	string						???
     	 */
    -    private static function calc_week($year, $month, $day, $week_behaviour, &$calc_year) {
    +    private static function calc_week($year, $month, $day, $week_behaviour, &$calc_year)
    +    {
    +        // phpcs:enable
             $daynr=self::calc_daynr($year,$month,$day);
             $first_daynr=self::calc_daynr($year,1,1);
             $monday_first= ($week_behaviour & self::WEEK_MONDAY_FIRST) ? 1 : 0;
    @@ -1386,6 +1431,4 @@ class DoliDBSqlite3 extends DoliDB
           }
           return floor($days/7+1);
         }
    -
     }
    -
    diff --git a/htdocs/core/doxygen.php b/htdocs/core/doxygen.php
    index 55ea34a5778..542a0effeb2 100644
    --- a/htdocs/core/doxygen.php
    +++ b/htdocs/core/doxygen.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/filemanagerdol/connectors/php/io.php b/htdocs/core/filemanagerdol/connectors/php/io.php
    index 66d024edce8..3ac325ed5d4 100644
    --- a/htdocs/core/filemanagerdol/connectors/php/io.php
    +++ b/htdocs/core/filemanagerdol/connectors/php/io.php
    @@ -24,7 +24,7 @@
     
     /**
      * CombinePaths
    - * 
    + *
      * @param   string $sBasePath     sBasePath
      * @param   string $sFolder       sFolder
      * @return  string                Combined path
    @@ -393,13 +393,13 @@ EOF;
     // This is the function that sends the results of the uploading process to CKE.
     /**
      * SendCKEditorResults
    - * 
    + *
      * @param   string  $callback       callback
      * @param   string  $sFileUrl       sFileUrl
      * @param   string  $customMsg      customMsg
      * @return  void
      */
    -function SendCKEditorResults ($callback, $sFileUrl, $customMsg = '')
    +function SendCKEditorResults($callback, $sFileUrl, $customMsg = '')
     {
       echo '<script type="text/javascript">';
     
    @@ -409,5 +409,3 @@ function SendCKEditorResults ($callback, $sFileUrl, $customMsg = '')
     
       echo '</script>';
     }
    -
    -
    diff --git a/htdocs/core/get_info.php b/htdocs/core/get_info.php
    index 2f08a1d7d24..4e52c584083 100644
    --- a/htdocs/core/get_info.php
    +++ b/htdocs/core/get_info.php
    @@ -134,7 +134,7 @@ if (! empty($conf->modulebuilder->enabled))
     
     // Link to print main content area
     /*
    -if (empty($conf->global->MAIN_PRINT_DISABLELINK) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && empty($conf->browser->phone))
    +if (empty($conf->global->MAIN_PRINT_DISABLELINK) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $conf->browser->layout != 'phone')
     {
     	$qs=dol_escape_htmltag($_SERVER["QUERY_STRING"]);
     
    diff --git a/htdocs/core/js/blockUI.js b/htdocs/core/js/blockUI.js
    index 6abcc706e25..b485565ee07 100644
    --- a/htdocs/core/js/blockUI.js
    +++ b/htdocs/core/js/blockUI.js
    @@ -1,4 +1,4 @@
    -// Copyright (C) 2012	Regis Houssin	<regis.houssin@capnetworks.com>
    +// Copyright (C) 2012	Regis Houssin	<regis.houssin@inodbox.com>
     //
     // 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
    @@ -41,7 +41,7 @@ $(document).ready(function() {
     				'-moz-border-radius':	 '10px',
     				'border-radius': 		 '10px'
     			},
    -			
    +
     			// styles applied when using $.growlUI
     			dolEventErrorCSS: {
     				width:  	'350px',
    @@ -60,7 +60,7 @@ $(document).ready(function() {
     			}
     
     	};*/
    -	
    +
     	$.dolEventValid = function(title, message, timeout, onClose) {
     		var $m = $('<div class="dolEventValid"></div>');
     		if (title) $m.append('<h1>'+title+'</h1>');
    @@ -73,7 +73,7 @@ $(document).ready(function() {
     			css: $.blockUI.events.dolEventValidCSS
     		});
     	};
    -	
    +
     	$.dolEventError = function(title, message, timeout, onClose) {
     		var $m = $('<div class="dolEventError"></div>');
     		if (title) $m.append('<h1>'+title+'</h1>');
    @@ -87,7 +87,7 @@ $(document).ready(function() {
     		});
     		$('.dolEventError').click($.unblockUI);
     	};
    -	
    +
     	$.pleaseBePatient = function(message) {
     		$.blockUI({
     			message: message,
    diff --git a/htdocs/core/js/dst.js b/htdocs/core/js/dst.js
    index 486e7027b43..739beebeac5 100644
    --- a/htdocs/core/js/dst.js
    +++ b/htdocs/core/js/dst.js
    @@ -1,5 +1,5 @@
     // Copyright (C) 2011-2014	Laurent Destailleur	<eldy@users.sourceforge.net>
    -// Copyright (C) 2011-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +// Copyright (C) 2011-2012	Regis Houssin		<regis.houssin@inodbox.com>
     // Copyright (C) 2015       Marcos García       <marcosgdf@gmail.com>
     //
     // This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/js/editinplace.js b/htdocs/core/js/editinplace.js
    index d1d4b6254ee..8501474ec0c 100644
    --- a/htdocs/core/js/editinplace.js
    +++ b/htdocs/core/js/editinplace.js
    @@ -1,4 +1,4 @@
    -// Copyright (C) 2011-2014	Regis Houssin		<regis.houssin@capnetworks.com>
    +// Copyright (C) 2011-2014	Regis Houssin		<regis.houssin@inodbox.com>
     // Copyright (C) 2011-2017	Laurent Destailleur	<eldy@users.sourceforge.net>
     //
     // This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/js/lib_foot.js.php b/htdocs/core/js/lib_foot.js.php
    index cc08af7431f..cfa05289f4b 100644
    --- a/htdocs/core/js/lib_foot.js.php
    +++ b/htdocs/core/js/lib_foot.js.php
    @@ -29,14 +29,14 @@ if (! defined('NOREQUIREMENU'))   define('NOREQUIREMENU',1);
     if (! defined('NOREQUIREHTML'))   define('NOREQUIREHTML',1);
     if (! defined('NOREQUIREAJAX'))   define('NOREQUIREAJAX','1');
     
    -session_cache_limiter(false);
    +session_cache_limiter('public');
     
     require_once '../../main.inc.php';
     
     // Define javascript type
     top_httphead('text/javascript; charset=UTF-8');
     // Important: Following code is to avoid page request by browser and PHP CPU at each Dolibarr page access.
    -if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate');
    +if (empty($dolibarr_nocache)) header('Cache-Control: max-age=10800, public, must-revalidate');
     else header('Cache-Control: no-cache');
     
     //var_dump($conf);
    diff --git a/htdocs/core/js/lib_gravatar.js.php b/htdocs/core/js/lib_gravatar.js.php
    index 485a57ede88..dad6482460a 100644
    --- a/htdocs/core/js/lib_gravatar.js.php
    +++ b/htdocs/core/js/lib_gravatar.js.php
    @@ -33,14 +33,14 @@ if (! defined('NOREQUIREMENU'))   define('NOREQUIREMENU',1);
     if (! defined('NOREQUIREHTML'))   define('NOREQUIREHTML',1);
     if (! defined('NOREQUIREAJAX'))   define('NOREQUIREAJAX','1');
     
    -session_cache_limiter(false);
    +session_cache_limiter('public');
     
     require_once '../../main.inc.php';
     
     // Define javascript type
     top_httphead('text/javascript; charset=UTF-8');
     // Important: Following code is to avoid page request by browser and PHP CPU at each Dolibarr page access.
    -if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate');
    +if (empty($dolibarr_nocache)) header('Cache-Control: max-age=10800, public, must-revalidate');
     else header('Cache-Control: no-cache');
     
     ?>
    diff --git a/htdocs/core/js/lib_head.js.php b/htdocs/core/js/lib_head.js.php
    index 1aa9c458e39..5b909c6e148 100644
    --- a/htdocs/core/js/lib_head.js.php
    +++ b/htdocs/core/js/lib_head.js.php
    @@ -1,6 +1,6 @@
     <?php
    -/* Copyright (C) 2005-2014  Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2014  Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2005-2018  Laurent Destailleur <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2014  Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -32,47 +32,47 @@ if (! defined('NOREQUIREMENU'))   define('NOREQUIREMENU',1);
     if (! defined('NOREQUIREHTML'))   define('NOREQUIREHTML',1);
     if (! defined('NOREQUIREAJAX'))   define('NOREQUIREAJAX','1');
     
    -session_cache_limiter(false);
    +session_cache_limiter('public');
     
     require_once '../../main.inc.php';
     
     // Define javascript type
     top_httphead('text/javascript; charset=UTF-8');
     // Important: Following code is to avoid page request by browser and PHP CPU at each Dolibarr page access.
    -if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate');
    +if (empty($dolibarr_nocache)) header('Cache-Control: max-age=10800, public, must-revalidate');
     else header('Cache-Control: no-cache');
     
     
     
     // Define tradMonths javascript array (we define this in datepicker AND in parent page to avoid errors with IE8)
     $tradMonths=array(
    -dol_escape_js($langs->transnoentitiesnoconv("January")),
    -dol_escape_js($langs->transnoentitiesnoconv("February")),
    -dol_escape_js($langs->transnoentitiesnoconv("March")),
    -dol_escape_js($langs->transnoentitiesnoconv("April")),
    -dol_escape_js($langs->transnoentitiesnoconv("May")),
    -dol_escape_js($langs->transnoentitiesnoconv("June")),
    -dol_escape_js($langs->transnoentitiesnoconv("July")),
    -dol_escape_js($langs->transnoentitiesnoconv("August")),
    -dol_escape_js($langs->transnoentitiesnoconv("September")),
    -dol_escape_js($langs->transnoentitiesnoconv("October")),
    -dol_escape_js($langs->transnoentitiesnoconv("November")),
    -dol_escape_js($langs->transnoentitiesnoconv("December"))
    +dol_escape_js($langs->transnoentitiesnoconv("Month01")),
    +dol_escape_js($langs->transnoentitiesnoconv("Month02")),
    +dol_escape_js($langs->transnoentitiesnoconv("Month03")),
    +dol_escape_js($langs->transnoentitiesnoconv("Month04")),
    +dol_escape_js($langs->transnoentitiesnoconv("Month05")),
    +dol_escape_js($langs->transnoentitiesnoconv("Month06")),
    +dol_escape_js($langs->transnoentitiesnoconv("Month07")),
    +dol_escape_js($langs->transnoentitiesnoconv("Month08")),
    +dol_escape_js($langs->transnoentitiesnoconv("Month09")),
    +dol_escape_js($langs->transnoentitiesnoconv("Month10")),
    +dol_escape_js($langs->transnoentitiesnoconv("Month11")),
    +dol_escape_js($langs->transnoentitiesnoconv("Month12"))
     );
     
     $tradMonthsShort=array(
    -$langs->trans("JanuaryMin"),
    -$langs->trans("FebruaryMin"),
    -$langs->trans("MarchMin"),
    -$langs->trans("AprilMin"),
    -$langs->trans("MayMin"),
    -$langs->trans("JuneMin"),
    -$langs->trans("JulyMin"),
    -$langs->trans("AugustMin"),
    -$langs->trans("SeptemberMin"),
    -$langs->trans("OctoberMin"),
    -$langs->trans("NovemberMin"),
    -$langs->trans("DecemberMin")
    +$langs->trans("MonthShort01"),
    +$langs->trans("MonthShort02"),
    +$langs->trans("MonthShort03"),
    +$langs->trans("MonthShort04"),
    +$langs->trans("MonthShort05"),
    +$langs->trans("MonthShort06"),
    +$langs->trans("MonthShort07"),
    +$langs->trans("MonthShort08"),
    +$langs->trans("MonthShort09"),
    +$langs->trans("MonthShort10"),
    +$langs->trans("MonthShort11"),
    +$langs->trans("MonthShort12")
     );
     
     $tradDays=array(
    @@ -918,7 +918,7 @@ function document_preview(file, type, title)
     		{
     			optionsbuttons = {
     			    "<?php echo dol_escape_js($langs->transnoentitiesnoconv("OriginalSize")); ?>": function() { console.log("Click on original size"); jQuery(".ui-dialog-content.ui-widget-content > object").css({ "max-height": "none" }); },
    -				"<?php echo dol_escape_js($langs->transnoentitiesnoconv("Close")); ?>": function() { $( this ).dialog( "close" ); }
    +				"<?php echo dol_escape_js($langs->transnoentitiesnoconv("CloseWindow")); ?>": function() { $( this ).dialog( "close" ); }
     				};
     		}
     
    diff --git a/htdocs/core/js/lib_notification.js.php b/htdocs/core/js/lib_notification.js.php
    index 6900e9b03e7..fa7095c65ac 100644
    --- a/htdocs/core/js/lib_notification.js.php
    +++ b/htdocs/core/js/lib_notification.js.php
    @@ -40,7 +40,7 @@ if (! ($_SERVER['HTTP_REFERER'] === $dolibarr_main_url_root . '/' || $_SERVER['H
     
         // TODO Try to make a solution with only a javascript timer that is easier. Difficulty is to avoid notification twice when.
         /* session already started into main
    -    session_cache_limiter(false);
    +    session_cache_limiter('public');
         header('Cache-Control: no-cache');
         session_set_cookie_params(0, '/', null, false, true);   // Add tag httponly on session cookie
         session_start();*/
    diff --git a/htdocs/core/js/lib_photosresize.js b/htdocs/core/js/lib_photosresize.js
    index 9c4c6671b1e..37fb21a4a01 100644
    --- a/htdocs/core/js/lib_photosresize.js
    +++ b/htdocs/core/js/lib_photosresize.js
    @@ -21,10 +21,10 @@
     
     /* Enable jcrop plugin onto id cropbox */
     jQuery(function() {
    -   jQuery('#cropbox').Jcrop({
    -      onSelect: updateCoords, 
    -      onChange: updateCoords
    -   });
    +    jQuery('#cropbox').Jcrop({
    +        onSelect: updateCoords,
    +        onChange: updateCoords
    +    });
     });
     
     /* Update fields that store new size */
    diff --git a/htdocs/core/js/listview.js b/htdocs/core/js/listview.js
    index de3113d0fae..f5ee0af6568 100644
    --- a/htdocs/core/js/listview.js
    +++ b/htdocs/core/js/listview.js
    @@ -22,28 +22,28 @@ var Listview_include = true;
     
     function Listview_OrderDown(idListe, column) {
     	var base_url = document.location.href;
    -	
    +
     	base_url = Listview_recup_form_param(idListe,base_url);
     	base_url = Listview_removeParam(base_url,'Listview['+encodeURIComponent(idListe)+'][orderBy]');
    -	
    +
     	base_url = Listview_removeParam(base_url,'get-all-for-export');
    -	
    +
     	document.location.href=Listview_modifyUrl(base_url,"Listview["+encodeURIComponent(idListe)+"][orderBy]["+encodeURIComponent(column)+"]","DESC");
     }
     function Listview_OrderUp(idListe, column) {
    -	
    +
     	var base_url = document.location.href;
    -	
    +
     	base_url = Listview_recup_form_param(idListe,base_url);
     	base_url = Listview_removeParam(base_url,'Listview['+encodeURIComponent(idListe)+'][orderBy]');
    -	
    +
     	base_url = Listview_removeParam(base_url,'get-all-for-export');
    -	
    +
     	document.location.href=Listview_modifyUrl(base_url,"Listview["+encodeURIComponent(idListe)+"][orderBy]["+encodeURIComponent(column)+"]","ASC");
     }
     function Listview_modifyUrl(strURL,paramName,paramNewValue){
     	    if (strURL.indexOf(paramName+'=')!=-1){
    -        	
    +
                     var strFirstPart=strURL.substring(0,strURL.indexOf(paramName+'=',0))+paramName+'=';
                     var strLastPart="";
                     if (strURL.indexOf('&',strFirstPart.length-1)>0)
    @@ -56,55 +56,55 @@ function Listview_modifyUrl(strURL,paramName,paramNewValue){
                     else
                             strURL+='?'+paramName+'='+paramNewValue;
             }
    -        
    +
             return strURL;
     }
     function Listview_removeParam(strURL, paramMask) {
     	var cpt=0;
     	var url = '';
    -	
    +
     	 while(strURL.indexOf(paramMask)!=-1 && cpt++ <50){
     	 	var strFirstPart= strURL.substring(0,strURL.indexOf(paramMask)-1);
    -	 	
    +
     	 	var strLastPart='';
     	 	if (strURL.indexOf('&',strFirstPart.length+1)>0) {
    -	 		strLastPart = strURL.substring(strURL.indexOf('&',strFirstPart.length+1),strURL.length);	
    +	 		strLastPart = strURL.substring(strURL.indexOf('&',strFirstPart.length+1),strURL.length);
     	 	}
    -	 		
    +
     		url = strFirstPart+strLastPart;
    -	 	
    +
     	 }
    -	 
    +
     	 if(url=='')url = strURL;
    -	 
    +
     	 return url;
     }
     
     function Listview_recup_form_param(idListe,base_url) {
    -	
    +
     	$('#'+idListe+' tr.barre-recherche [listviewtbs],#'+idListe+' tr.barre-recherche-head input,#'+idListe+' tr.barre-recherche-head select,#'+idListe+' div.tabsAction input[listviewtbs]').each(function(i,item) {
     		if($(item).attr("name")) {
     			base_url = Listview_modifyUrl(base_url, $(item).attr("name") , $(item).val());
     		}
    -		
    +
     	});
    -	
    +
     	return base_url;
     }
     
     function Listview_GoToPage(idListe,pageNumber){
    -	
    +
     	var base_url = document.location.href;
    -	
    +
     	base_url = Listview_recup_form_param(idListe,base_url);
     	base_url =Listview_modifyUrl(base_url,"Listview["+encodeURIComponent(idListe)+"][page]",pageNumber);
    -	
    +
     	base_url = Listview_removeParam(base_url,'get-all-for-export');
    -	
    +
     	document.location.href=base_url;
     }
     function Listview_submitSearch(obj) {
    -	
    +
     	$form = $(obj).closest('form');
     	console.log($form);
     	if($form.length>0){
    @@ -113,20 +113,20 @@ function Listview_submitSearch(obj) {
     }
     function Listview_launch_downloadAs(mode,url,token,session_name) {
     	 $('#listviewdAS_export_form').remove();
    -	
    +
     	$form = $('<form action="'+url+'" method="post" name="listviewdAS_export_form" id="listTBSdAS_export_form"></form>');
     	$form.append('<input type="hidden" name="mode" value="'+mode+'" />');
     	$form.append('<input type="hidden" name="token" value="'+token+'" />');
     	$form.append('<input type="hidden" name="session_name" value="'+session_name+'" />');
    -	
    +
     	$('body').append($form);
    -	
    +
         $('#listviewdAS_export_form').submit();
    -	
    +
     }
     
     function Listview_downloadAs(obj, mode,url,token,session_name) {
    -	
    +
     	$form = $(obj).closest('form');
     	$div = $form.find('div.tabsAction');
     	$div.append('<input type="hidden" listviewtbs="hidden" name="token" value="'+token+'" />');
    @@ -134,33 +134,33 @@ function Listview_downloadAs(obj, mode,url,token,session_name) {
     	$div.append('<input type="hidden" listviewtbs="hidden" name="url" value="'+url+'" />');
     	$div.append('<input type="hidden" listviewtbs="hidden" name="session_name" value="'+session_name+'" />');
     	$div.append('<input type="hidden" listviewtbs="hidden" name="get-all-for-export" value="1" />');
    -	
    +
     	Listview_submitSearch(obj);
     }
     
     $(document).ready(function() {
     	$('tr.barre-recherche input').keypress(function(e) {
     	    if(e.which == 13) {
    -	       
    +
     	       var id_list = $(this).closest('table').attr('id');
    -	       
    +
     	       $('#'+id_list+' .list-search-link').click();
    -	       
    +
     	    }
     	});
    -	
    +
     	var $_GET = {};
    -	
    +
     	document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
     	    function decode(s) {
     	        return decodeURIComponent(s.split("+").join(" "));
     	    }
    -	
    +
     	    $_GET[decode(arguments[1])] = decode(arguments[2]);
     	});
    -	
    +
     	if(typeof $_GET["get-all-for-export"] != "undefined") {
     		Listview_launch_downloadAs($_GET['mode'],$_GET['url'],$_GET['token'],$_GET['session_name']);
     	}
    -	
    +
     });
    diff --git a/htdocs/core/js/timepicker.js.php b/htdocs/core/js/timepicker.js.php
    index f93bb3410f2..38c450b8e23 100644
    --- a/htdocs/core/js/timepicker.js.php
    +++ b/htdocs/core/js/timepicker.js.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2012	Laurent Destailleur	<eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -29,14 +29,14 @@ if (! defined('NOREQUIREMENU'))   define('NOREQUIREMENU',1);
     if (! defined('NOREQUIREHTML'))   define('NOREQUIREHTML',1);
     if (! defined('NOREQUIREAJAX'))   define('NOREQUIREAJAX','1');
     
    -session_cache_limiter(false);
    +session_cache_limiter('public');
     
     require_once '../../main.inc.php';
     
     // Define javascript type
     top_httphead('text/javascript; charset=UTF-8');
     // Important: Following code is to avoid page request by browser and PHP CPU at each Dolibarr page access.
    -if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate');
    +if (empty($dolibarr_nocache)) header('Cache-Control: max-age=10800, public, must-revalidate');
     else header('Cache-Control: no-cache');
     ?>
     
    diff --git a/htdocs/core/js/timesheet.js b/htdocs/core/js/timesheet.js
    index aaec6971e2f..3bd93555d76 100644
    --- a/htdocs/core/js/timesheet.js
    +++ b/htdocs/core/js/timesheet.js
    @@ -24,9 +24,9 @@ function regexEvent(objet,evt,type)
         {
               case 'days':
                   var regex= /^[0-9]{1}([.,]{1}[0-9]{1})?$/;
    -   
    +
                   if(regex.test(objet.value) )
    -              { 
    +              {
                     var tmp=objet.value.replace(',','.');
                     if(tmp<=1.5){
                         var tmpint=parseInt(tmp);
    @@ -41,15 +41,20 @@ function regexEvent(objet,evt,type)
                   }else{
                      objet.value= '0';
                 }
    -          break; 
    +          break;
               case 'hours':
                   var regex= /^[0-9]{1,2}:[0-9]{2}$/;
                   var regex2=/^[0-9]{1,2}$/;
    +              var regex3= /^[0-9]{1}([.,]{1}[0-9]{1,2})?$/;
                   if(!regex.test(objet.value))
    -              { 
    +              {
                       if(regex2.test(objet.value))
                         objet.value=objet.value+':00';
    -                  else
    +                  else if(regex3.test(objet.value)) {
    +                    var tmp=parseFloat(objet.value.replace(',','.'));
    +                    var rnd=Math.trunc(tmp);
    +                    objet.value=rnd+':'+ Math.round(60*(tmp-rnd));
    +                  } else
                         objet.value='';
                   }
                   /* alert(jQuery("#"+id).val()); */
    @@ -58,25 +63,25 @@ function regexEvent(objet,evt,type)
                   //var regex= /^[0-9:]{1}$/;
                   //alert(event.charCode);
                   var charCode = (evt.which) ? evt.which : event.keyCode;
    -              
    +
                   if(((charCode >= 48) && (charCode <= 57)) || //num
                         (charCode===46) || (charCode===8)||// comma & periode
                         (charCode === 58) || (charCode==44) )// : & all charcode
                   {
                       // ((charCode>=96) && (charCode<=105)) || //numpad
                 	  return true;
    -         
    +
                   }else
                   {
                       return false;
                   }
    -                
    -              break;    
    +
    +              break;
               default:
                   break;
           }
    -}    
    -  
    +}
    +
     
     function pad(n) {
         return (n < 10) ? ("0" + n) : n;
    @@ -90,7 +95,7 @@ function parseTime(timeStr, dt)
         if (!dt) {
             dt = new Date();
         }
    - 
    +
         var time = timeStr.match(/(\d+)(?::(\d\d))?\s*(p?)/i);
         if (!time) {
             return -1;
    @@ -102,7 +107,7 @@ function parseTime(timeStr, dt)
         else {
             hours += (hours < 12 && time[3]) ? 12 : 0;
         }
    - 
    +
         dt.setHours(hours);
         dt.setMinutes(parseInt(time[2], 10) || 0);
         dt.setSeconds(0, 0);
    @@ -117,10 +122,10 @@ function updateTotal(days,mode)
         {
             var total = new Date(0);
             total.setHours(0);
    -        total.setMinutes(0);   
    +        total.setMinutes(0);
             var nbline = document.getElementById('numberOfLines').value;
             for (var i=-1; i<nbline; i++)
    -        { 
    +        {
                 var id='timespent['+i+']['+days+']';
                 var taskTime= new Date(0);
                 var element=document.getElementById(id);
    @@ -128,7 +133,7 @@ function updateTotal(days,mode)
                 {
                 	/* alert(element.value);*/
                     if (element.value)
    -                {   
    +                {
                     	result=parseTime(element.value,taskTime);
                     }
                     else
    @@ -142,14 +147,14 @@ function updateTotal(days,mode)
                     }
                 }
     
    -            var id='timeadded['+i+']['+days+']';   
    +            var id='timeadded['+i+']['+days+']';
                 var taskTime= new Date(0);
                 var element=document.getElementById(id);
                 if(element)
                 {
                 	/* alert(element.value);*/
                     if (element.value)
    -                {   
    +                {
                     	result=parseTime(element.value,taskTime);
                     }
                     else
    @@ -173,7 +178,7 @@ function updateTotal(days,mode)
             		console.log(this.value)
                 	alert(element.value);*/
                     if (this.value)
    -                {   
    +                {
                     	console.log(this.value+':00')
                     	result=parseTime(this.value+':00',taskTime);
                     }
    @@ -197,7 +202,7 @@ function updateTotal(days,mode)
             		console.log(this.value)
                 	alert(element.value);*/
                     if (this.value)
    -                {   
    +                {
                     	console.log('00:'+this.value)
                     	result=parseTime('00:'+"00".substring(0, 2 - this.value.length) + this.value,taskTime);
                     }
    @@ -212,11 +217,11 @@ function updateTotal(days,mode)
             		console.log(total.getMinutes())
                 }
             });
    -        
    +
             if (total.getHours() || total.getMinutes()) jQuery('.totalDay'+days).addClass("bold");
             else jQuery('.totalDay'+days).removeClass("bold");
         	jQuery('.totalDay'+days).text(pad(total.getHours())+':'+pad(total.getMinutes()));
    -    	
    +
         	var totalhour = 0;
         	var totalmin = 0;
             for (var i=0; i<7; i++)
    @@ -238,14 +243,14 @@ function updateTotal(days,mode)
             var total =0;
             var nbline = document.getElementById('numberOfLines').value;
             for (var i=-1; i<nbline; i++)
    -        { 
    -            var id='timespent['+i+']['+days+']';   
    +        {
    +            var id='timespent['+i+']['+days+']';
                 var taskTime= new Date(0);
                 var element=document.getElementById(id);
                 if(element)
                 {
                     if (element.value)
    -                {   
    +                {
                         total+=parseInt(element.value);
     
                        }
    @@ -255,13 +260,13 @@ function updateTotal(days,mode)
                     }
                 }
     
    -            var id='timeadded['+i+']['+days+']';   
    +            var id='timeadded['+i+']['+days+']';
                 var taskTime= new Date(0);
                 var element=document.getElementById(id);
                 if(element)
                 {
                     if (element.value)
    -                {   
    +                {
                         total+=parseInt(element.value);
     
                        }
    @@ -271,11 +276,9 @@ function updateTotal(days,mode)
                     }
                 }
             }
    -        
    +
             if (total) jQuery('.totalDay'+days).addClass("bold");
             else jQuery('.totalDay'+days).removeClass("bold");
         	jQuery('.totalDay'+days).text(total);
         }
     }
    -
    -   
    \ No newline at end of file
    diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php
    index f4b027840c1..aae550d65f8 100644
    --- a/htdocs/core/lib/admin.lib.php
    +++ b/htdocs/core/lib/admin.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2011  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2016  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2016  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2012       J. Fernando Lagrange    <fernando@demo-tic.org>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
    @@ -108,28 +108,37 @@ function versiondolibarrarray()
     
     
     /**
    - *	Launch a sql file. Function used by:
    + *	Launch a sql file. Function is used by:
      *  - Migrate process (dolibarr-xyz-abc.sql)
      *  - Loading sql menus (auguria)
      *  - Running specific Sql by a module init
    + *  - Loading sql file of website import package
      *  Install process however does not use it.
    - *  Note that Sql files must have all comments at start of line.
    + *  Note that Sql files must have all comments at start of line. Also this function take ';' as the char to detect end of sql request
      *
    - *	@param		string	$sqlfile					Full path to sql file
    - * 	@param		int		$silent						1=Do not output anything, 0=Output line for update page
    - * 	@param		int		$entity						Entity targeted for multicompany module
    - *	@param		int		$usesavepoint				1=Run a savepoint before each request and a rollback to savepoint if error (this allow to have some request with errors inside global transactions).
    - *	@param		string	$handler					Handler targeted for menu
    - *	@param 		string	$okerror					Family of errors we accept ('default', 'none')
    + *	@param		string	$sqlfile			Full path to sql file
    + * 	@param		int		$silent				1=Do not output anything, 0=Output line for update page
    + * 	@param		int		$entity				Entity targeted for multicompany module
    + *	@param		int		$usesavepoint		1=Run a savepoint before each request and a rollback to savepoint if error (this allow to have some request with errors inside global transactions).
    + *	@param		string	$handler			Handler targeted for menu (replace __HANDLER__ with this value)
    + *	@param 		string	$okerror			Family of errors we accept ('default', 'none')
    + *  @param		int		$linelengthlimit	Limit for length of each line (Use 0 if unknown, may be faster if defined)
    + *  @param		int		$nocommentremoval	Do no try to remove comments (in such a case, we consider that each line is a request, so use also $linelengthlimit=0)
      *  @param		int		$offsetforchartofaccount	Offset to use to load chart of account table to update sql on the fly to add offset to rowid and account_parent value
    - * 	@return		int									<=0 if KO, >0 if OK
    + * 	@return		int							<=0 if KO, >0 if OK
      */
    -function run_sql($sqlfile, $silent=1, $entity='', $usesavepoint=1, $handler='', $okerror='default', $offsetforchartofaccount=0)
    +function run_sql($sqlfile, $silent=1, $entity='', $usesavepoint=1, $handler='', $okerror='default', $linelengthlimit=32768, $nocommentremoval=0, $offsetforchartofaccount=0)
     {
         global $db, $conf, $langs, $user;
     
         dol_syslog("Admin.lib::run_sql run sql file ".$sqlfile." silent=".$silent." entity=".$entity." usesavepoint=".$usesavepoint." handler=".$handler." okerror=".$okerror, LOG_DEBUG);
     
    +    if (! is_numeric($linelengthlimit))
    +    {
    +    	dol_syslog("Admin.lib::run_sql param linelengthlimit is not a numeric", LOG_ERR);
    +    	return -1;
    +    }
    +
         $ok=0;
         $error=0;
         $i=0;
    @@ -144,7 +153,9 @@ function run_sql($sqlfile, $silent=1, $entity='', $usesavepoint=1, $handler='',
         {
             while (! feof($fp))
             {
    -            $buf = fgets($fp, 32768);
    +        	// Warning fgets with second parameter that is null or 0 hang.
    +        	if ($linelengthlimit > 0) $buf = fgets($fp, $linelengthlimit);
    +        	else $buf = fgets($fp);
     
                 // Test if request must be ran only for particular database or version (if yes, we must remove the -- comment)
                 if (preg_match('/^--\sV(MYSQL|PGSQL)([^\s]*)/i',$buf,$reg))
    @@ -192,13 +203,13 @@ function run_sql($sqlfile, $silent=1, $entity='', $usesavepoint=1, $handler='',
                 }
     
                 // Add line buf to buffer if not a comment
    -            if (! preg_match('/^\s*--/',$buf))
    +            if ($nocommentremoval || ! preg_match('/^\s*--/',$buf))
                 {
    -                $buf=preg_replace('/([,;ERLT\)])\s*--.*$/i','\1',$buf); //remove comment from a line that not start with -- before add it to the buffer
    +            	if (empty($nocommentremoval)) $buf=preg_replace('/([,;ERLT\)])\s*--.*$/i','\1',$buf); //remove comment from a line that not start with -- before add it to the buffer
                     $buffer .= trim($buf);
                 }
     
    -            //          print $buf.'<br>';
    +            //print $buf.'<br>';exit;
     
                 if (preg_match('/;/',$buffer))	// If string contains ';', it's end of a request string, we save it in arraysql.
                 {
    @@ -224,13 +235,13 @@ function run_sql($sqlfile, $silent=1, $entity='', $usesavepoint=1, $handler='',
             $newsql=$sql;
     
             // Replace __+MAX_table__ with max of table
    -        while (preg_match('/__\+MAX_([A-Za-z_]+)__/i',$newsql,$reg))
    +        while (preg_match('/__\+MAX_([A-Za-z0-9_]+)__/i',$newsql,$reg))
             {
                 $table=$reg[1];
                 if (! isset($listofmaxrowid[$table]))
                 {
                     //var_dump($db);
    -                $sqlgetrowid='SELECT MAX(rowid) as max from '.$table;
    +                $sqlgetrowid='SELECT MAX(rowid) as max from '.preg_replace('/^llx_/', MAIN_DB_PREFIX, $table);
                     $resql=$db->query($sqlgetrowid);
                     if ($resql)
                     {
    @@ -247,9 +258,10 @@ function run_sql($sqlfile, $silent=1, $entity='', $usesavepoint=1, $handler='',
                         break;
                     }
                 }
    +            // Replace __+MAX_llx_table__ with +999
                 $from='__+MAX_'.$table.'__';
                 $to='+'.$listofmaxrowid[$table];
    -            $newsql=str_replace($from,$to,$newsql);
    +            $newsql=str_replace($from, $to, $newsql);
                 dol_syslog('Admin.lib::run_sql New Request '.($i+1).' (replacing '.$from.' to '.$to.')', LOG_DEBUG);
     
                 $arraysql[$i]=$newsql;
    @@ -712,10 +724,18 @@ function defaultvalues_prepare_head()
         $head[$h][2] = 'sortorder';
         $h++;
     
    -    $head[$h][0] = DOL_URL_ROOT."/admin/defaultvalues.php?mode=focus";
    -    $head[$h][1] = $langs->trans("DefaultFocus");
    -    $head[$h][2] = 'focus';
    -    $h++;
    +    if (! empty($conf->use_javascript_ajax))
    +    {
    +    	$head[$h][0] = DOL_URL_ROOT."/admin/defaultvalues.php?mode=focus";
    +	    $head[$h][1] = $langs->trans("DefaultFocus");
    +	    $head[$h][2] = 'focus';
    +	    $h++;
    +
    +	    $head[$h][0] = DOL_URL_ROOT."/admin/defaultvalues.php?mode=mandatory";
    +	    $head[$h][1] = $langs->trans("DefaultMandatory");
    +	    $head[$h][2] = 'mandatory';
    +	    $h++;
    +    }
     
         /*$head[$h][0] = DOL_URL_ROOT."/admin/translation.php?mode=searchkey";
         $head[$h][1] = $langs->trans("TranslationKeySearch");
    @@ -915,10 +935,11 @@ function activateModule($value,$withdeps=1)
                 if (isset($objMod->depends) && is_array($objMod->depends) && ! empty($objMod->depends))
                 {
                     // Activation of modules this module depends on
    -                // this->depends may be array('modModule1', 'mmodModule2') or array('always'=>"modModule1", 'FR'=>'modModule2')
    +                // this->depends may be array('modModule1', 'mmodModule2') or array('always1'=>"modModule1", 'FR'=>'modModule2')
                     foreach ($objMod->depends as $key => $modulestring)
                     {
    -                    if ((! is_numeric($key)) && $key != 'always' && $key != $mysoc->country_code)
    +                	//var_dump((! is_numeric($key)) && ! preg_match('/^always/', $key) && $mysoc->country_code && ! preg_match('/^'.$mysoc->country_code.'/', $key));exit;
    +                	if ((! is_numeric($key)) && ! preg_match('/^always/', $key) && $mysoc->country_code && ! preg_match('/^'.$mysoc->country_code.'/', $key))
                         {
                             dol_syslog("We are not concerned by dependency with key=".$key." because our country is ".$mysoc->country_code);
                             continue;
    @@ -1214,9 +1235,8 @@ function activateModulesRequiredByCountry($country_code)
     							{
     								activateModule($modName);
     
    -								setEventMessage($objMod->automatic_activation[$country_code],'warnings');
    +								setEventMessages($objMod->automatic_activation[$country_code], null, 'warnings');
     							}
    -
     						}
     						else dol_syslog("Module ".get_class($objMod)." not qualified");
     					}
    @@ -1336,7 +1356,8 @@ function complete_elementList_with_modules(&$elementList)
     /**
      *	Show array with constants to edit
      *
    - *	@param	array	$tableau		Array of constants array('key'=>type, ) where type can be 'string', 'text', 'textarea', 'html', 'yesno', 'emailtemplate:xxx', ...
    + *	@param	array	$tableau		Array of constants array('key'=>array('type'=>type, 'label'=>label)
    + *									where type can be 'string', 'text', 'textarea', 'html', 'yesno', 'emailtemplate:xxx', ...
      *	@param	int		$strictw3c		0=Include form into table (deprecated), 1=Form is outside table to respect W3C (no form into table), 2=No form nor button at all
      *  @param  string  $helptext       Help
      *	@return	void
    @@ -1360,17 +1381,28 @@ function form_constantes($tableau, $strictw3c=0, $helptext='')
         if (empty($strictw3c)) print '<td align="center" width="80">'.$langs->trans("Action").'</td>';
         print "</tr>\n";
     
    +    $label='';
         $listofparam=array();
         foreach($tableau as $key => $const)	// Loop on each param
         {
    +    	$label='';
         	// $const is a const key like 'MYMODULE_ABC'
    -    	if (is_numeric($key)) {
    +    	if (is_numeric($key)) {		// Very old behaviour
         		$type = 'string';
         	}
         	else
         	{
    -    		$type = $const;
    -    		$const = $key;
    +    		if (is_array($const))
    +    		{
    +    			$type = $const['type'];
    +				$label = $const['label'];
    +    			$const = $key;
    +    		}
    +    		else
    +    		{
    +    			$type = $const;
    +    			$const = $key;
    +    		}
         	}
     
             $sql = "SELECT ";
    @@ -1411,7 +1443,7 @@ function form_constantes($tableau, $strictw3c=0, $helptext='')
                 print '<input type="hidden" name="constnote_'.$obj->name.'" value="'.nl2br(dol_escape_htmltag($obj->note)).'">';
                 print '<input type="hidden" name="consttype_'.$obj->name.'" value="'.($obj->type?$obj->type:'string').'">';
     
    -            print $langs->trans('Desc'.$const);
    +            print ($label ? $label : $langs->trans('Desc'.$const));
     
                 if ($const == 'ADHERENT_MAILMAN_URL')
                 {
    @@ -1680,6 +1712,14 @@ function company_admin_prepare_head()
     	$head[$h][2] = 'company';
     	$h++;
     
    +	if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
    +	{
    +    	$head[$h][0] = DOL_URL_ROOT."/admin/openinghours.php";
    +    	$head[$h][1] = $langs->trans("OpeningHours");
    +    	$head[$h][2] = 'openinghours';
    +    	$h++;
    +	}
    +
     	$head[$h][0] = DOL_URL_ROOT."/admin/accountant.php";
     	$head[$h][1] = $langs->trans("Accountant");
     	$head[$h][2] = 'accountant';
    @@ -1702,7 +1742,7 @@ function email_admin_prepare_head()
     	$h = 0;
     	$head = array();
     
    -	if ($user->admin && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu'] != 'email_templates'))
    +	if (! empty($user->admin) && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu'] != 'email_templates'))
     	{
     		$head[$h][0] = DOL_URL_ROOT."/admin/mails.php";
     		$head[$h][1] = $langs->trans("OutGoingEmailSetup");
    @@ -1723,7 +1763,7 @@ function email_admin_prepare_head()
     	$head[$h][2] = 'templates';
     	$h++;
     
    -	if ($conf->global->MAIN_FEATURES_LEVEL >= 1)
    +	if ($conf->global->MAIN_FEATURES_LEVEL >= 1 && ! empty($user->admin) && (empty($_SESSION['leftmenu']) || $_SESSION['leftmenu'] != 'email_templates'))
     	{
     		$head[$h][0] = DOL_URL_ROOT."/admin/mails_senderprofile_list.php";
     		$head[$h][1] = $langs->trans("EmailSenderProfiles");
    @@ -1735,5 +1775,3 @@ function email_admin_prepare_head()
     
     	return $head;
     }
    -
    -
    diff --git a/htdocs/core/lib/agenda.lib.php b/htdocs/core/lib/agenda.lib.php
    index a6562af2729..6dab036193d 100644
    --- a/htdocs/core/lib/agenda.lib.php
    +++ b/htdocs/core/lib/agenda.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011	   Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -64,11 +64,11 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
     	print '<input type="hidden" name="month" value="' . $month . '">';
     	print '<input type="hidden" name="day" value="' . $day . '">';
     	print '<input type="hidden" name="action" value="' . $action . '">';
    -	print '<input type="hidden" name="showbirthday" value="' . $showbirthday . '">';
    +	print '<input type="hidden" name="search_showbirthday" value="' . $showbirthday . '">';
     
     	print '<div class="fichecenter">';
     
    -	if (! empty($conf->browser->phone)) print '<div class="fichehalfleft">';
    +	if ($conf->browser->layout == 'phone') print '<div class="fichehalfleft">';
     	else print '<table class="nobordernopadding" width="100%"><tr><td class="borderright">';
     
     	print '<table class="nobordernopadding centpercent">';
    @@ -79,7 +79,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
     		print '<td class="nowrap" style="padding-bottom: 2px; padding-right: 4px;">';
     		print $langs->trans("ActionsToDoBy").' &nbsp; ';
     		print '</td><td style="padding-bottom: 2px; padding-right: 4px;">';
    -		print $form->select_dolusers($filtert, 'filtert', 1, '', ! $canedit, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
    +		print $form->select_dolusers($filtert, 'search_filtert', 1, '', ! $canedit, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
     		if (empty($conf->dol_optimize_smallscreen)) print ' &nbsp; '.$langs->trans("or") . ' '.$langs->trans("ToUserOfGroup").' &nbsp; ';
     		print $form->select_dolgroups($usergroupid, 'usergroup', 1, '', ! $canedit);
     		print '</td></tr>';
    @@ -94,7 +94,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
         		print '<td class="nowrap" style="padding-bottom: 2px; padding-right: 4px;">';
         		print $langs->trans("Resource");
         		print ' &nbsp;</td><td class="nowrap maxwidthonsmartphone" style="padding-bottom: 2px; padding-right: 4px;">';
    -            print $formresource->select_resource_list($resourceid, "resourceid", '', 1, 0, 0, null, '', 2);
    +            print $formresource->select_resource_list($resourceid, "search_resourceid", '', 1, 0, 0, null, '', 2);
         		print '</td></tr>';
     		}
     
    @@ -108,7 +108,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
     		{
                 $multiselect=(!empty($conf->global->AGENDA_USE_EVENT_TYPE));
     		}
    -        print $formactions->select_type_actions($actioncode, "actioncode", $excludetype, (empty($conf->global->AGENDA_USE_EVENT_TYPE)?1:-1), 0, $multiselect);
    +        print $formactions->select_type_actions($actioncode, "search_actioncode", $excludetype, (empty($conf->global->AGENDA_USE_EVENT_TYPE)?1:-1), 0, $multiselect);
     		print '</td></tr>';
     	}
     
    @@ -118,7 +118,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
     		print '<td class="nowrap" style="padding-bottom: 2px; padding-right: 4px;">';
     		print $langs->trans("ThirdParty").' &nbsp; ';
     		print '</td><td class="nowrap" style="padding-bottom: 2px;">';
    -		print $form->select_company($socid, 'socid', '', 'SelectThirdParty', 0, 0, null, 0);
    +		print $form->select_company($socid, 'search_socid', '', 'SelectThirdParty', 0, 0, null, 0);
     		print '</td></tr>';
     	}
     
    @@ -131,7 +131,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
     		print '<td class="nowrap" style="padding-bottom: 2px;">';
     		print $langs->trans("Project").' &nbsp; ';
     		print '</td><td class="nowrap" style="padding-bottom: 2px;">';
    -		print $formproject->select_projects($socid?$socid:-1, $pid, 'projectid', 0, 0, 1, 0, 0, 0, 0, '', 1, 0, 'maxwidth500');
    +		print $formproject->select_projects($socid?$socid:-1, $pid, 'search_projectid', 0, 0, 1, 0, 0, 0, 0, '', 1, 0, 'maxwidth500');
     		print '</td></tr>';
     	}
     
    @@ -142,7 +142,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
     		print '<td class="nowrap" style="padding-bottom: 2px; padding-right: 4px;">';
     		print $langs->trans("Status");
     		print ' &nbsp;</td><td class="nowrap" style="padding-bottom: 2px; padding-right: 4px;">';
    -		$formactions->form_select_status_action('formaction', $status, 1, 'status', 1, 2, 'minwidth100');
    +		$formactions->form_select_status_action('formaction', $status, 1, 'search_status', 1, 2, 'minwidth100');
     		print '</td></tr>';
     	}
     
    @@ -180,10 +180,10 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
     
     	print '</table>';
     
    -	if (! empty($conf->browser->phone)) print '</div>';
    +	if ($conf->browser->layout == 'phone') print '</div>';
     	else print '</td>';
     
    -	if (! empty($conf->browser->phone)) print '<div class="fichehalfright">';
    +	if ($conf->browser->layout == 'phone') print '<div class="fichehalfright">';
     	else print '<td align="center" valign="middle" class="nowrap">';
     
     	print '<table class="centpercent"><tr><td align="center">';
    @@ -193,7 +193,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
     	print '</td></tr>';
     	print '</table>';
     
    -	if (! empty($conf->browser->phone)) print '</div>';
    +	if ($conf->browser->layout == 'phone') print '</div>';
     	else print '</td></tr></table>';
     
     	print '</div>';	// Close fichecenter
    diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php
    index 28131837814..1fcda0e34d2 100644
    --- a/htdocs/core/lib/ajax.lib.php
    +++ b/htdocs/core/lib/ajax.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2015 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2015 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Christophe Battarel  <christophe.battarel@altairis.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -35,12 +35,12 @@
      *  @param	string	$urloption			More parameters on URL request
      *  @param	int		$minLength			Minimum number of chars to trigger that Ajax search
      *  @param	int		$autoselect			Automatic selection if just one value
    - *  @param	array	$ajaxoptions		Multiple options array
    - *                                          Ex: array('update'=>array('field1','field2'...)) will reset field1 and field2 once select done
    - *                                          Ex: array('disabled'=> )
    - *                                          Ex: array('show'=> )
    - *                                          Ex: array('update_textarea'=> )
    - *                                          Ex: array('option_disabled'=> id to disable and warning to show if we select a disabled value (this is possible when using autocomplete ajax)
    + *  @param	array   $ajaxoptions		Multiple options array
    + *                                      - Ex: array('update'=>array('field1','field2'...)) will reset field1 and field2 once select done
    + *                                      - Ex: array('disabled'=> )
    + *                                      - Ex: array('show'=> )
    + *                                      - Ex: array('update_textarea'=> )
    + *                                      - Ex: array('option_disabled'=> id to disable and warning to show if we select a disabled value (this is possible when using autocomplete ajax)
      *	@return string              		Script
      */
     function ajax_autocompleter($selected, $htmlname, $url, $urloption='', $minLength=2, $autoselect=0, $ajaxoptions=array())
    @@ -377,7 +377,7 @@ function ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0, $
     
     	// select2 disabled for smartphones with standard browser.
     	// TODO With select2 v4, it seems ok, except that responsive style on table become crazy when scrolling at end of array)
    -	if (! empty($conf->browser->phone)) return '';
    +	if (! empty($conf->browser->layout) && $conf->browser->layout == 'phone') return '';
     
     	if (! empty($conf->global->MAIN_DISABLE_AJAX_COMBOX)) return '';
     	if (empty($conf->use_javascript_ajax)) return '';
    @@ -623,4 +623,3 @@ function ajax_object_onoff($object, $code, $field, $text_on, $text_off, $input=a
     
         return $out;
     }
    -
    diff --git a/htdocs/core/lib/asset.lib.php b/htdocs/core/lib/asset.lib.php
    index 5953c8b9420..b0a4a6b81a9 100644
    --- a/htdocs/core/lib/asset.lib.php
    +++ b/htdocs/core/lib/asset.lib.php
    @@ -16,7 +16,7 @@
      */
     
     /**
    - * \file    core/lib/assets.lib.php
    + * \file    htdocs/core/lib/asset.lib.php
      * \ingroup asset
      * \brief   Library files with common functions for Assets
      */
    @@ -24,9 +24,9 @@
     /**
      * Prepare admin pages header
      *
    - * @return array
    + * @return array head array with tabs
      */
    -function AssetsAdminPrepareHead()
    +function asset_admin_prepare_head()
     {
     	global $langs, $conf;
     
    @@ -65,7 +65,12 @@ function AssetsAdminPrepareHead()
     	return $head;
     }
     
    -function AssetsPrepareHead()
    +/**
    + * Prepare admin pages header
    + *
    + * @return array head array with tabs
    + */
    +function asset_prepare_head()
     {
     	global $langs, $conf;
     
    diff --git a/htdocs/core/lib/bank.lib.php b/htdocs/core/lib/bank.lib.php
    index 5e1e300520c..28845122f0d 100644
    --- a/htdocs/core/lib/bank.lib.php
    +++ b/htdocs/core/lib/bank.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2016	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2015		Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2016		Juanjo Menent   	<jmenent@2byte.es>
      *
    @@ -161,7 +161,8 @@ function bank_admin_prepare_head($object)
      * @param   Object	$object		Object related to tabs
      * @return  array				Array of tabs to shoc
      */
    -function various_payment_prepare_head($object) {
    +function various_payment_prepare_head($object)
    +{
     
     	global $db, $langs, $conf;
     
    @@ -214,7 +215,6 @@ function checkSwiftForAccount($account)
         } else {
             return false;
         }
    -
     }
     
     /**
    @@ -356,7 +356,7 @@ function checkES($IentOfi, $InumCta)
         $sum = 0;
     
         for ($i = 0; $i < 11; $i++) {
    -        $sum += $values[$i] * substr($InumCta, $i, 1);
    +        $sum += $values[$i] * (int) substr($InumCta, $i, 1);//int to cast result of substr to a number
         }
     
         $key = 11 - $sum % 11;
    @@ -369,4 +369,3 @@ function checkES($IentOfi, $InumCta)
         $keycontrol .= $key;
         return $keycontrol;
     }
    -
    diff --git a/htdocs/core/lib/barcode.lib.php b/htdocs/core/lib/barcode.lib.php
    index 13956f688aa..efd245209d2 100644
    --- a/htdocs/core/lib/barcode.lib.php
    +++ b/htdocs/core/lib/barcode.lib.php
    @@ -251,7 +251,7 @@ function barcode_encode_genbarcode($code,$encoding)
         $command=escapeshellarg($genbarcode_loc);
         //$paramclear=" \"".str_replace("\"", "\\\"",$code)."\" \"".str_replace("\"", "\\\"",strtoupper($encoding))."\"";
         $paramclear=" ".escapeshellarg($code)." ".escapeshellarg(strtoupper($encoding));
    -    
    +
         $fullcommandclear=$command." ".$paramclear." 2>&1";
         //print $fullcommandclear."<br>\n";exit;
     
    @@ -277,8 +277,8 @@ function barcode_encode_genbarcode($code,$encoding)
         	"error" => ""
         );
         //var_dump($ret);
    -    if (preg_match('/permission denied/i',$ret['bars'])) 
    -    { 
    +    if (preg_match('/permission denied/i',$ret['bars']))
    +    {
         	$ret['error']=$ret['bars']; $ret['bars']='';
         	return $ret;
         }
    diff --git a/htdocs/core/lib/categories.lib.php b/htdocs/core/lib/categories.lib.php
    index 4be484e1aa4..4d85c412bab 100644
    --- a/htdocs/core/lib/categories.lib.php
    +++ b/htdocs/core/lib/categories.lib.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -33,8 +33,8 @@ function categories_prepare_head($object,$type)
     {
     	global $langs, $conf, $user;
     
    -	$langs->load("categories");
    -	$langs->load("products");
    +	// Load translation files required by the page
    +    $langs->loadLangs(array('categories', 'products'));
     
     	$h = 0;
     	$head = array();
    @@ -48,7 +48,7 @@ function categories_prepare_head($object,$type)
     	$head[$h][1] = $langs->trans("Photos");
     	$head[$h][2] = 'photos';
     	$h++;
    -	
    +
     	if (! empty($conf->global->MAIN_MULTILANGS))
     	{
         	$head[$h][0] = DOL_URL_ROOT.'/categories/traduction.php?id='.$object->id.'&amp;type='.$type;
    @@ -56,7 +56,7 @@ function categories_prepare_head($object,$type)
         	$head[$h][2] = 'translation';
         	$h++;
     	}
    -	
    +
         // Show more tabs from modules
         // Entries must be declared in modules descriptor with line
         // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__');   to add new tab
    @@ -87,7 +87,7 @@ function categoriesadmin_prepare_head()
     	$head[$h][1] = $langs->trans("Setup");
     	$head[$h][2] = 'setup';
     	$h++;
    -	
    +
     	$head[$h][0] = DOL_URL_ROOT.'/categories/admin/categorie_extrafields.php';
     	$head[$h][1] = $langs->trans("ExtraFieldsCategories");
     	$head[$h][2] = 'attributes_categories';
    diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php
    index c00d4469b05..41b0f1af3ef 100644
    --- a/htdocs/core/lib/company.lib.php
    +++ b/htdocs/core/lib/company.lib.php
    @@ -2,15 +2,15 @@
     /* Copyright (C) 2006-2011  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2006       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2007       Patrick Raguin          <patrick.raguin@gmail.com>
    - * Copyright (C) 2010-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2013-2014  Florian Henry           <florian.henry@open-concept.pro>
      * Copyright (C) 2013-2014  Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2013       Christophe Battarel     <contact@altairis.fr>
    - * Copyright (C) 2013       Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    - * Copyright (C) 2015       Frederic France         <frederic.france@free.fr>
    + * Copyright (C) 2013-2018  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2015-2018  Frédéric France         <frederic.france@netlogic.fr>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    - * Copyright (C) 2017       Rui Strecht			    <rui.strecht@aliartalentos.com>
    - * Copyright (C) 2018       Ferran Marcet		    <fmarcet@2byte.es>
    + * Copyright (C) 2017       Rui Strecht             <rui.strecht@aliartalentos.com>
    + * Copyright (C) 2018       Ferran Marcet           <fmarcet@2byte.es>
      *
      * 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
    @@ -155,18 +155,18 @@ function societe_prepare_head(Societe $object)
     		// Tab to accountancy
     		if (! empty($conf->accounting->enabled) && $object->client>0)
     		{
    -			$head[$h][0] = DOL_URL_ROOT.'/accountancy/bookkeeping/thirdparty_lettrage.php?socid='.$object->id;
    -			$head[$h][1] = $langs->trans("TabAccountingCustomer");
    -			$head[$h][2] = 'accounting';
    +			$head[$h][0] = DOL_URL_ROOT.'/accountancy/bookkeeping/thirdparty_lettering_customer.php?socid='.$object->id;
    +			$head[$h][1] = $langs->trans("TabLetteringCustomer");
    +			$head[$h][2] = 'lettering_customer';
     			$h++;
     		}
     
     		// Tab to accountancy
     		if (! empty($conf->accounting->enabled) && $object->fournisseur>0)
     		{
    -			$head[$h][0] = DOL_URL_ROOT.'/accountancy/bookkeeping/thirdparty_lettrage_supplier.php?socid='.$object->id;
    -			$head[$h][1] = $langs->trans("TabAccountingSupplier");
    -			$head[$h][2] = 'accounting_supplier';
    +			$head[$h][0] = DOL_URL_ROOT.'/accountancy/bookkeeping/thirdparty_lettering_supplier.php?socid='.$object->id;
    +			$head[$h][1] = $langs->trans("TabLetteringSupplier");
    +			$head[$h][2] = 'lettering_supplier';
     			$h++;
     		}
     	}
    @@ -635,7 +635,6 @@ function getFormeJuridiqueLabel($code)
             {
                 return $langs->trans("NotDefined");
             }
    -
         }
     }
     
    @@ -911,7 +910,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
         {
         	if (GETPOST('search_'.$key,'alpha')) $search[$key]=GETPOST('search_'.$key,'alpha');
         }
    -    $search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +    $search_array_options=$extrafields->getOptionalsFromPost($contactstatic->table_element,'','search_');
     
         // Purge search criteria
         if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') ||GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
    @@ -1246,12 +1245,12 @@ function show_addresses($conf,$langs,$db,$object,$backtopage='')
     			print "</tr>\n";
     		}
     	}
    -	else
    -	{
    +	//else
    +	//{
     		//print '<tr class="oddeven">';
     		//print '<td>'.$langs->trans("NoAddressYetDefined").'</td>';
     		//print "</tr>\n";
    -	}
    +	//}
     	print "\n</table>\n";
     
     	print "<br>\n";
    @@ -1287,8 +1286,8 @@ function show_actions_todo($conf,$langs,$db,$filterobj,$objcon='',$noprint=0,$ac
      * 		@param	Conf		       $conf		   Object conf
      * 		@param	Translate	       $langs		   Object langs
      * 		@param	DoliDB		       $db			   Object db
    - * 		@param	mixed			   $filterobj	   Object Adherent|Societe|Project|Product|CommandeFournisseur
    - * 		@param	Contact		       $objcon		   Object contact
    + * 		@param	mixed			   $filterobj	   Filter on object Adherent|Societe|Project|Product|CommandeFournisseur|Dolresource|Ticket|... to list events linked to an object
    + * 		@param	Contact		       $objcon		   Filter on object contact to filter events on a contact
      *      @param  int			       $noprint        Return string but does not output it
      *      @param  string		       $actioncode     Filter on actioncode
      *      @param  string             $donetodo       Filter on event 'done' or 'todo' or ''=nofilter (all).
    @@ -1296,11 +1295,10 @@ function show_actions_todo($conf,$langs,$db,$filterobj,$objcon='',$noprint=0,$ac
      *      @param  string             $sortfield      Sort field
      *      @param  string             $sortorder      Sort order
      *      @return	mixed					           Return html part or void if noprint is 1
    - *      TODO change function to be able to list event linked to an object.
      */
     function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=0, $actioncode='', $donetodo='done', $filters=array(), $sortfield='a.datep,a.id', $sortorder='DESC')
     {
    -    global $user,$conf;
    +    global $user, $conf;
         global $form;
     
         global $param;
    @@ -1318,45 +1316,70 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
         if (! empty($conf->agenda->enabled))
         {
             // Recherche histo sur actioncomm
    -        $sql = "SELECT a.id, a.label,";
    -        $sql.= " a.datep as dp,";
    +	 	if (is_object($objcon) && $objcon->id) {
    +			$sql = "SELECT DISTINCT a.id, a.label,";
    +		}
    +		else
    +		{
    +			$sql = "SELECT a.id, a.label,";
    +		}
    +		$sql.= " a.datep as dp,";
             $sql.= " a.datep2 as dp2,";
             $sql.= " a.note, a.percent,";
             $sql.= " a.fk_element, a.elementtype,";
             $sql.= " a.fk_user_author, a.fk_contact,";
             $sql.= " c.code as acode, c.libelle as alabel, c.picto as apicto,";
             $sql.= " u.rowid as user_id, u.login as user_login, u.photo as user_photo, u.firstname as user_firstname, u.lastname as user_lastname";
    -        if (is_object($filterobj) && get_class($filterobj) == 'Societe')  $sql.= ", sp.lastname, sp.firstname";
    -        if (is_object($filterobj) && get_class($filterobj) == 'Adherent') $sql.= ", m.lastname, m.firstname";
    -        if (is_object($filterobj) && get_class($filterobj) == 'CommandeFournisseur') $sql.= ", o.ref";
    -        if (is_object($filterobj) && get_class($filterobj) == 'Product') $sql.= ", o.ref";
    +        if (is_object($filterobj) && get_class($filterobj) == 'Societe')      $sql.= ", sp.lastname, sp.firstname";
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'Adherent') $sql.= ", m.lastname, m.firstname";
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'CommandeFournisseur')  $sql.= ", o.ref";
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'Product')  $sql.= ", o.ref";
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'Ticket')   $sql.= ", o.ref";
             $sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a";
             $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u on u.rowid = a.fk_user_action";
             $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_actioncomm as c ON a.fk_action = c.id";
    -        if (is_object($filterobj) && get_class($filterobj) == 'Societe')  $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid";
    -        if (is_object($filterobj) && get_class($filterobj) == 'Adherent') $sql.= ", ".MAIN_DB_PREFIX."adherent as m";
    -        if (is_object($filterobj) && get_class($filterobj) == 'CommandeFournisseur') $sql.= ", ".MAIN_DB_PREFIX."commande_fournisseur as o";
    -        if (is_object($filterobj) && get_class($filterobj) == 'Product') $sql.= ", ".MAIN_DB_PREFIX."product as o";
    +
    +        if (is_object($objcon) && $objcon->id) {
    +		    $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."actioncomm_resources as r ON a.id = r.fk_actioncomm";
    +		    $sql.= " AND r.element_type = '" . $db->escape($objcon->table_element) . "' AND r.fk_element = " . $objcon->id;
    +	    }
    +
    +	    if (is_object($filterobj) && get_class($filterobj) == 'Societe')  $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid";
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'Dolresource') {
    +        	$sql.= " INNER JOIN ".MAIN_DB_PREFIX."element_resources as er";
    +        	$sql.= " ON er.resource_type = 'dolresource'";
    +        	$sql.= " AND er.element_id = a.id";
    +        	$sql.= " AND er.resource_id = ".$filterobj->id;
    +        }
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'Adherent') $sql.= ", ".MAIN_DB_PREFIX."adherent as m";
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'CommandeFournisseur') $sql.= ", ".MAIN_DB_PREFIX."commande_fournisseur as o";
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'Product') $sql.= ", ".MAIN_DB_PREFIX."product as o";
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'Ticket') $sql.= ", ".MAIN_DB_PREFIX."ticket as o";
    +
             $sql.= " WHERE a.entity IN (".getEntity('agenda').")";
    -        if (is_object($filterobj) && get_class($filterobj) == 'Societe'  && $filterobj->id) $sql.= " AND a.fk_soc = ".$filterobj->id;
    -        if (is_object($filterobj) && get_class($filterobj) == 'Project' && $filterobj->id) $sql.= " AND a.fk_project = ".$filterobj->id;
    -        if (is_object($filterobj) && get_class($filterobj) == 'Adherent')
    +        if (is_object($filterobj) && in_array(get_class($filterobj), array('Societe', 'Client', 'Fournisseur')) && $filterobj->id) $sql.= " AND a.fk_soc = ".$filterobj->id;
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'Project' && $filterobj->id) $sql.= " AND a.fk_project = ".$filterobj->id;
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'Adherent')
             {
                 $sql.= " AND a.fk_element = m.rowid AND a.elementtype = 'member'";
                 if ($filterobj->id) $sql.= " AND a.fk_element = ".$filterobj->id;
             }
    -        if (is_object($filterobj) && get_class($filterobj) == 'CommandeFournisseur')
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'CommandeFournisseur')
             {
             	$sql.= " AND a.fk_element = o.rowid AND a.elementtype = 'order_supplier'";
             	if ($filterobj->id) $sql.= " AND a.fk_element = ".$filterobj->id;
             }
    -        if (is_object($filterobj) && get_class($filterobj) == 'Product')
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'Product')
             {
             	$sql.= " AND a.fk_element = o.rowid AND a.elementtype = 'product'";
             	if ($filterobj->id) $sql.= " AND a.fk_element = ".$filterobj->id;
             }
    -        //TODO check how ot work with new table actioncomm_resources and multiple contact affectation
    -        if (is_object($objcon) && $objcon->id) $sql.= " AND a.fk_contact = ".$objcon->id;
    +        elseif (is_object($filterobj) && get_class($filterobj) == 'Ticket')
    +        {
    +        	$sql.= " AND a.fk_element = o.rowid AND a.elementtype = 'ticket'";
    +        	if ($filterobj->id) $sql.= " AND a.fk_element = ".$filterobj->id;
    +        }
    +
             // Condition on actioncode
             if (! empty($actioncode))
             {
    @@ -1367,7 +1390,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
                     else
                     {
                         if ($actioncode == 'AC_OTH') $sql.= " AND c.type != 'systemauto'";
    -                    if ($actioncode == 'AC_OTH_AUTO') $sql.= " AND c.type = 'systemauto'";
    +                    elseif ($actioncode == 'AC_OTH_AUTO') $sql.= " AND c.type = 'systemauto'";
                     }
                 }
                 else
    @@ -1378,8 +1401,10 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
                 }
             }
             if ($donetodo == 'todo') $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep > '".$db->idate($now)."'))";
    -        if ($donetodo == 'done') $sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep <= '".$db->idate($now)."'))";
    +        elseif ($donetodo == 'done') $sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep <= '".$db->idate($now)."'))";
             if (is_array($filters) && $filters['search_agenda_label']) $sql.= natural_search('a.label', $filters['search_agenda_label']);
    +
    +		//TODO Add limit in nb of results
             $sql.= $db->order($sortfield, $sortorder);
             dol_syslog("company.lib::show_actions_done", LOG_DEBUG);
             $resql=$db->query($sql);
    @@ -1401,7 +1426,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
                     }
     
                     //if ($donetodo == 'todo') $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep > '".$db->idate($now)."'))";
    -                //if ($donetodo == 'done') $sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep <= '".$db->idate($now)."'))";
    +                //elseif ($donetodo == 'done') $sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep <= '".$db->idate($now)."'))";
                     $tododone='';
                     if (($obj->percent >= 0 and $obj->percent < 100) || ($obj->percent == -1 && $obj->datep > $now)) $tododone='todo';
     
    @@ -1499,13 +1524,10 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
         {
             $delay_warning=$conf->global->MAIN_DELAY_ACTIONS_TODO*24*60*60;
     
    -        require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
             require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
    -        require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
    -        require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
    -        require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
    -        require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
    -        require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +	    require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
    +	    require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
     
             $formactions=new FormActions($db);
     
    @@ -1513,14 +1535,9 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
             $userstatic=new User($db);
             $contactstatic = new Contact($db);
     
    -        // TODO mutualize/uniformize
    -        $propalstatic=new Propal($db);
    -        $orderstatic=new Commande($db);
    -        $supplierorderstatic=new CommandeFournisseur($db);
    -        $facturestatic=new Facture($db);
    -
             $out.='<form name="listactionsfilter" class="listactionsfilter" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
    -        if ($objcon && get_class($objcon) == 'Contact' && $filterobj && get_class($filterobj) == 'Societe')
    +        if ($objcon && get_class($objcon) == 'Contact' &&
    +            (is_null($filterobj) || get_class($filterobj) == 'Societe'))
             {
                 $out.='<input type="hidden" name="id" value="'.$objcon->id.'" />';
             }
    @@ -1606,14 +1623,14 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
                 $out.='</td>';
     
                 // Author of event
    -            $out.='<td>';
    +            $out.='<td class="tdoverflowmax100">';
                 //$userstatic->id=$histo[$key]['userid'];
                 //$userstatic->login=$histo[$key]['login'];
                 //$out.=$userstatic->getLoginUrl(1);
                 if ($histo[$key]['userid'] > 0)
                 {
    -            	$userstatic->fetch($histo[$key]['userid']);
    -            	$out.=$userstatic->getNomUrl(-1);
    +            	$userstatic->fetch($histo[$key]['userid']);	// TODO Introduce a cache on users fetched
    +            	$out.=$userstatic->getNomUrl(-1, '', 0, 0, 16, 0, 'firstelselast', '');
                 }
                 $out.='</td>';
     
    @@ -1679,45 +1696,10 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
                 //$out.='<td>'.dol_trunc($histo[$key]['note'], 40).'</td>';
     
                 // Objet lie
    -            // TODO mutualize/uniformize
                 $out.='<td>';
    -            //var_dump($histo[$key]['elementtype']);
    -            if (isset($histo[$key]['elementtype']))
    +            if (isset($histo[$key]['elementtype']) && !empty($histo[$key]['fk_element']))
                 {
    -            	if ($histo[$key]['elementtype'] == 'propal' && ! empty($conf->propal->enabled))
    -            	{
    -            		//$propalstatic->ref=$langs->trans("ProposalShort");
    -            		//$propalstatic->id=$histo[$key]['fk_element'];
    -                    if ($propalstatic->fetch($histo[$key]['fk_element'])>0) {
    -                        $propalstatic->type=$histo[$key]['ftype'];
    -                        $out.=$propalstatic->getNomUrl(1);
    -                    } else {
    -                        //$out.= '<span class="opacitymedium">'.$langs->trans("ProposalDeleted").'</span>';
    -                    }
    -             	}
    -            	elseif (($histo[$key]['elementtype'] == 'order' || $histo[$key]['elementtype'] == 'commande') && ! empty($conf->commande->enabled))
    -            	{
    -            		//$orderstatic->ref=$langs->trans("Order");
    -            		//$orderstatic->id=$histo[$key]['fk_element'];
    -                    if ($orderstatic->fetch($histo[$key]['fk_element'])>0) {
    -                        $orderstatic->type=$histo[$key]['ftype'];
    -                        $out.=$orderstatic->getNomUrl(1);
    -                    } else {
    -                    	//$out.= '<span class="opacitymedium">'.$langs->trans("OrderDeleted").'<span>';
    -                    }
    -             	}
    -            	elseif (($histo[$key]['elementtype'] == 'invoice' || $histo[$key]['elementtype'] == 'facture') && ! empty($conf->facture->enabled))
    -            	{
    -            		//$facturestatic->ref=$langs->trans("Invoice");
    -            		//$facturestatic->id=$histo[$key]['fk_element'];
    -                    if ($facturestatic->fetch($histo[$key]['fk_element'])>0) {
    -                        $facturestatic->type=$histo[$key]['ftype'];
    -                        $out.=$facturestatic->getNomUrl(1,'compta');
    -                    } else {
    -                    	//$out.= '<span class="opacitymedium">'.$langs->trans("InvoiceDeleted").'</span>';
    -                    }
    -            	}
    -            	else $out.='&nbsp;';
    +            	$out.=dolGetElementUrl($histo[$key]['fk_element'],$histo[$key]['elementtype'],1);
                 }
                 else $out.='&nbsp;';
                 $out.='</td>';
    diff --git a/htdocs/core/lib/contact.lib.php b/htdocs/core/lib/contact.lib.php
    index f1d721b62e6..3c61410230f 100644
    --- a/htdocs/core/lib/contact.lib.php
    +++ b/htdocs/core/lib/contact.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2010  Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2017  Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2017  Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2015       Frederic France     <frederic.france@free.fr>
      * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
      *
    diff --git a/htdocs/core/lib/contract.lib.php b/htdocs/core/lib/contract.lib.php
    index 9d986e983bc..c7434e80878 100644
    --- a/htdocs/core/lib/contract.lib.php
    +++ b/htdocs/core/lib/contract.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php
    index 8985a4e7621..0f84f46497e 100644
    --- a/htdocs/core/lib/date.lib.php
    +++ b/htdocs/core/lib/date.lib.php
    @@ -1,9 +1,10 @@
     <?php
     /* Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2015 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2017      Ferran Marcet        <fmarcet@2byte.es>
    - *
    + * Copyright (C) 2018      Charlene Benke       <charlie@patas-monkey.com>
    +*
      * 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
      * the Free Software Foundation; either version 3 of the License, or
    @@ -150,7 +151,7 @@ function dol_time_plus_duree($time, $duration_value, $duration_unit)
      * @return     int						Time into seconds
      * @see convertSecondToTime
      */
    -function convertTime2Seconds($iHours=0,$iMinutes=0,$iSeconds=0)
    +function convertTime2Seconds($iHours=0, $iMinutes=0, $iSeconds=0)
     {
     	$iResult=($iHours*3600)+($iMinutes*60)+$iSeconds;
     	return $iResult;
    @@ -162,15 +163,16 @@ function convertTime2Seconds($iHours=0,$iMinutes=0,$iSeconds=0)
      *
      *    	@param      int		$iSecond		Number of seconds
      *    	@param      string	$format		    Output format ('all': total delay days hour:min like "2 days 12:30",
    - *                                                         'allwithouthour': total delay days without hour part like "2 days",
    - *                                                         'allhourmin': total delay with format hours:min like "60:30",
    - *                                                         'allhour': total delay hours without min/sec like "60:30",
    - *                                                         'fullhour': total delay hour decimal like "60.5" for 60:30,
    - *                                                         'hour': only hours part "12",
    - *                                                         'min': only minutes part "30",
    - *                                                         'sec': only seconds part,
    - *                                                         'month': only month part,
    - *                                                         'year': only year part);
    + *                                          - 'allwithouthour': total delay days without hour part like "2 days",
    + *                                          - 'allhourmin': total delay with format hours:min like "60:30",
    + *                                          - 'allhourminsec': total delay with format hours:min:sec like "60:30:10",
    + *                                          - 'allhour': total delay hours without min/sec like "60:30",
    + *                                          - 'fullhour': total delay hour decimal like "60.5" for 60:30,
    + *                                          - 'hour': only hours part "12",
    + *                                          - 'min': only minutes part "30",
    + *                                          - 'sec': only seconds part,
    + *                                          - 'month': only month part,
    + *                                          - 'year': only year part);
      *      @param      int		$lengthOfDay    Length of day (default 86400 seconds for 1 day, 28800 for 8 hour)
      *      @param      int		$lengthOfWeek   Length of week (default 7)
      *    	@return     string		 		 	Formated text of duration
    @@ -184,7 +186,7 @@ function convertSecondToTime($iSecond, $format='all', $lengthOfDay=86400, $lengt
     	if (empty($lengthOfDay))  $lengthOfDay = 86400;         // 1 day = 24 hours
         if (empty($lengthOfWeek)) $lengthOfWeek = 7;            // 1 week = 7 days
     
    -	if ($format == 'all' || $format == 'allwithouthour' || $format == 'allhour' || $format == 'allhourmin')
    +    if ($format == 'all' || $format == 'allwithouthour' || $format == 'allhour' || $format == 'allhourmin' || $format == 'allhourminsec')
     	{
     		if ((int) $iSecond === 0) return '0';	// This is to avoid having 0 return a 12:00 AM for en_US
     
    @@ -231,11 +233,15 @@ function convertSecondToTime($iSecond, $format='all', $lengthOfDay=86400, $lengt
     				$sTime.= dol_print_date($iSecond,'hourduration',true);
     			}
     		}
    -		if ($format == 'allhourmin')
    +		elseif ($format == 'allhourminsec')
    +		{
    +		    return sprintf("%02d",($sWeek*$lengthOfWeek*24 + $sDay*24 + (int) floor($iSecond/3600))).':'.sprintf("%02d",((int) floor(($iSecond % 3600)/60))).':'.sprintf("%02d",((int) ($iSecond % 60)));
    +		}
    +		elseif ($format == 'allhourmin')
     		{
     		    return sprintf("%02d",($sWeek*$lengthOfWeek*24 + $sDay*24 + (int) floor($iSecond/3600))).':'.sprintf("%02d",((int) floor(($iSecond % 3600)/60)));
     		}
    -		if ($format == 'allhour')
    +		elseif ($format == 'allhour')
     		{
     			return sprintf("%02d",($sWeek*$lengthOfWeek*24 + $sDay*24 + (int) floor($iSecond/3600)));
     		}
    @@ -274,6 +280,35 @@ function convertSecondToTime($iSecond, $format='all', $lengthOfDay=86400, $lengt
     }
     
     
    +/**
    + * Generate a SQL string to make a filter into a range (for second of date until last second of date)
    + *
    + * @param      string	$datefield		Name of SQL field where apply sql date filter
    + * @param      int		$day_date		Day date
    + * @param      int		$month_date		Month date
    + * @param      int		$year_date		Year date
    + * @return     string	$sqldate		String with SQL filter
    + */
    +function dolSqlDateFilter($datefield, $day_date, $month_date, $year_date)
    +{
    +	global $db;
    +	$sqldate="";
    +	if ($month_date > 0) {
    +		if ($year_date > 0 && empty($day_date)) {
    +			$sqldate.= " AND ".$datefield." BETWEEN '".$db->idate(dol_get_first_day($year_date, $month_date, false));
    +			$sqldate.= "' AND '".$db->idate(dol_get_last_day($year_date, $month_date, false))."'";
    +		} else if ($year_date > 0 && ! empty($day_date)) {
    +			$sqldate.= " AND ".$datefield." BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month_date, $day_date, $year_date));
    +			$sqldate.= "' AND '".$db->idate(dol_mktime(23, 59, 59, $month_date, $day_date, $year_date))."'";
    +		} else
    +			$sqldate.= " AND date_format( ".$datefield.", '%m') = '".$db->escape($month_date)."'";
    +	} else if ($year_date > 0){
    +		$sqldate.= " AND ".$datefield." BETWEEN '".$db->idate(dol_get_first_day($year_date, 1, false));
    +		$sqldate.= "' AND '".$db->idate(dol_get_last_day($year_date, 12, false))."'";
    +	}
    +	return $sqldate;
    +}
    +
     /**
      *	Convert a string date into a GM Timestamps date
      *	Warning: YYYY-MM-DDTHH:MM:SS+02:00 (RFC3339) is not supported. If parameter gm is 1, we will use no TZ, if not we will use TZ of server, not the one inside string.
    @@ -439,7 +474,6 @@ function dol_get_next_week($day, $week, $month, $year)
     	$tmparray=dol_getdate($time,true);
     
     	return array('year' => $tmparray['year'], 'month' => $tmparray['mon'], 'day' => $tmparray['mday']);
    -
     }
     
     /**	Return GMT time for first day of a month or year
    @@ -586,6 +620,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $
     	{
     		$ferie=false;
     		$countryfound=0;
    +		$includesaturdayandsunday=1;
     
     		$jour  = date("d", $timestampStart);
     		$mois  = date("m", $timestampStart);
    @@ -672,12 +707,6 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $
     			$mois_pentecote = date("m", $date_pentecote);
     			if($jour_pentecote == $jour && $mois_pentecote == $mois) $ferie=true;
     			// "Pentecote"
    -
    -			// Calul des samedis et dimanches
    -			$jour_julien = unixtojd($timestampStart);
    -			$jour_semaine = jddayofweek($jour_julien, 0);
    -			if($jour_semaine == 0 || $jour_semaine == 6) $ferie=true;
    -			// Samedi (6) et dimanche (0)
     		}
     
     		// Pentecoste and Ascensione in Italy go to the sunday after: isn't holiday.
    @@ -704,12 +733,18 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $
     			$mois_paques = date("m", $date_paques);
     			if($jour_paques == $jour && $mois_paques == $mois) $ferie=true;
     			// Paques
    +		}
     
    -			// Calul des samedis et dimanches
    -			$jour_julien = unixtojd($timestampStart);
    -			$jour_semaine = jddayofweek($jour_julien, 0);
    -			if($jour_semaine == 0 || $jour_semaine == 6) $ferie=true;
    -			//Samedi (6) et dimanche (0)
    +		if ($countrycode == 'IN')
    +		{
    +			$countryfound=1;
    +
    +			if($jour == 1 && $mois == 1) $ferie=true; // New Year's Day
    +			if($jour == 26 && $mois == 1) $ferie=true; // Republic Day
    +			if($jour == 1 && $mois == 5) $ferie=true; // May Day
    +			if($jour == 15 && $mois == 8) $ferie=true; // Independence Day
    +			if($jour == 2 && $mois == 10) $ferie=true; // Gandhi Jayanti
    +			if($jour == 25 && $mois == 12) $ferie=true; // Christmas
     		}
     
     		if ($countrycode == 'ES')
    @@ -747,12 +782,6 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $
     			$mois_viernes = date("m", $date_viernes);
     			if($jour_viernes == $jour && $mois_viernes == $mois) $ferie=true;
     			//Viernes Santo
    -
    -			// Calul des samedis et dimanches
    -			$jour_julien = unixtojd($timestampStart);
    -			$jour_semaine = jddayofweek($jour_julien, 0);
    -			if($jour_semaine == 0 || $jour_semaine == 6) $ferie=true;
    -			//Samedi (6) et dimanche (0)
     		}
     
     		if ($countrycode == 'AT')
    @@ -834,22 +863,15 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $
     		    $mois_fronleichnam = date("m", $date_fronleichnam);
     		    if($jour_fronleichnam == $jour && $mois_fronleichnam == $mois) $ferie=true;
     		    // Fronleichnam
    -
    -		    // Calul des samedis et dimanches
    -		    $jour_julien = unixtojd($timestampStart);
    -		    $jour_semaine = jddayofweek($jour_julien, 0);
    -		    if($jour_semaine == 0 || $jour_semaine == 6) $ferie=true;
    -		    //Samedi (6) et dimanche (0)
     		}
     
    -		// Cas pays non defini
    -		if (! $countryfound)
    +		// If we have to include saturday and sunday
    +		if ($includesaturdayandsunday)
     		{
    -			// Calul des samedis et dimanches
     			$jour_julien = unixtojd($timestampStart);
     			$jour_semaine = jddayofweek($jour_julien, 0);
     			if($jour_semaine == 0 || $jour_semaine == 6) $ferie=true;
    -			//Samedi (6) et dimanche (0)
    +			//Saturday (6) and Sunday (0)
     		}
     
     		// On incremente compteur
    @@ -946,44 +968,43 @@ function num_open_day($timestampStart, $timestampEnd, $inhour=0, $lastday=0, $ha
      *  This replace old function monthArrayOrSelected.
      *
      *	@param	Translate	$outputlangs	Object langs
    - *  @param	int			$short			1=Return short label
    + *  @param	int			$short			0=Return long label, 1=Return short label
      *	@return array						Month string or array if selected < 0
      */
     function monthArray($outputlangs,$short=0)
     {
     	$montharray = array (
    -	    1  => $outputlangs->trans("January"),
    -	    2  => $outputlangs->trans("February"),
    -	    3  => $outputlangs->trans("March"),
    -	    4  => $outputlangs->trans("April"),
    -	    5  => $outputlangs->trans("May"),
    -	    6  => $outputlangs->trans("June"),
    -	    7  => $outputlangs->trans("July"),
    -	    8  => $outputlangs->trans("August"),
    -	    9  => $outputlangs->trans("September"),
    -	    10 => $outputlangs->trans("October"),
    -	    11 => $outputlangs->trans("November"),
    -	    12 => $outputlangs->trans("December")
    +	    1  => $outputlangs->trans("Month01"),
    +	    2  => $outputlangs->trans("Month02"),
    +	    3  => $outputlangs->trans("Month03"),
    +	    4  => $outputlangs->trans("Month04"),
    +	    5  => $outputlangs->trans("Month05"),
    +	    6  => $outputlangs->trans("Month06"),
    +	    7  => $outputlangs->trans("Month07"),
    +	    8  => $outputlangs->trans("Month08"),
    +	    9  => $outputlangs->trans("Month09"),
    +	    10 => $outputlangs->trans("Month10"),
    +	    11 => $outputlangs->trans("Month11"),
    +	    12 => $outputlangs->trans("Month12")
         );
     
     	if (! empty($short))
     	{
     		$montharray = array (
    -		    1  => $outputlangs->trans("JanuaryMin"),
    -		    2  => $outputlangs->trans("FebruaryMin"),
    -		    3  => $outputlangs->trans("MarchMin"),
    -		    4  => $outputlangs->trans("AprilMin"),
    -		    5  => $outputlangs->trans("MayMin"),
    -		    6  => $outputlangs->trans("JuneMin"),
    -		    7  => $outputlangs->trans("JulyMin"),
    -		    8  => $outputlangs->trans("AugustMin"),
    -		    9  => $outputlangs->trans("SeptemberMin"),
    -		    10 => $outputlangs->trans("OctoberMin"),
    -		    11 => $outputlangs->trans("NovemberMin"),
    -		    12 => $outputlangs->trans("DecemberMin")
    +		    1  => $outputlangs->trans("MonthShort01"),
    +		    2  => $outputlangs->trans("MonthShort02"),
    +		    3  => $outputlangs->trans("MonthShort03"),
    +		    4  => $outputlangs->trans("MonthShort04"),
    +		    5  => $outputlangs->trans("MonthShort05"),
    +		    6  => $outputlangs->trans("MonthShort06"),
    +		    7  => $outputlangs->trans("MonthShort07"),
    +		    8  => $outputlangs->trans("MonthShort08"),
    +		    9  => $outputlangs->trans("MonthShort09"),
    +		    10 => $outputlangs->trans("MonthShort10"),
    +		    11 => $outputlangs->trans("MonthShort11"),
    +		    12 => $outputlangs->trans("MonthShort12")
     			);
     	}
     
     	return $montharray;
     }
    -
    diff --git a/htdocs/core/lib/doc.lib.php b/htdocs/core/lib/doc.lib.php
    index ae8410bd188..b5e607fbbc5 100644
    --- a/htdocs/core/lib/doc.lib.php
    +++ b/htdocs/core/lib/doc.lib.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2006-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2006		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2007		Patrick Raguin			<patrick.raguin@gmail.com>
    - * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2012		Christophe Battarel		<christophe.battarel@altairis.fr>
      *
    diff --git a/htdocs/core/lib/doleditor.lib.php b/htdocs/core/lib/doleditor.lib.php
    index 1981ae63d09..459bb3e3f2b 100644
    --- a/htdocs/core/lib/doleditor.lib.php
    +++ b/htdocs/core/lib/doleditor.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2015		Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/lib/emailing.lib.php b/htdocs/core/lib/emailing.lib.php
    index 00a06ca3f09..06ceb2c96b0 100644
    --- a/htdocs/core/lib/emailing.lib.php
    +++ b/htdocs/core/lib/emailing.lib.php
    @@ -46,10 +46,9 @@ function emailing_prepare_head(Mailing $object)
     		if ($object->nbemail > 0) $head[$h][1].= ' <span class="badge">'.$object->nbemail.'</span>';
         	$head[$h][2] = 'targets';
         	$h++;
    -
     	}
    -	
    -	if (! empty($conf->global->EMAILING_USE_ADVANCED_SELECTOR)) 
    +
    +	if (! empty($conf->global->EMAILING_USE_ADVANCED_SELECTOR))
     	{
     		$head[$h][0] = DOL_URL_ROOT."/comm/mailing/advtargetemailing.php?id=".$object->id;
     		$head[$h][1] = $langs->trans("MailAdvTargetRecipients");
    diff --git a/htdocs/core/lib/expedition.lib.php b/htdocs/core/lib/expedition.lib.php
    index 0fa5f0ae643..275970c41c1 100644
    --- a/htdocs/core/lib/expedition.lib.php
    +++ b/htdocs/core/lib/expedition.lib.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2006-2012	Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2007		Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2010-2012	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010		Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2015 Claudio Aschieri				<c.aschieri@19.coop>
      *
    diff --git a/htdocs/core/lib/expensereport.lib.php b/htdocs/core/lib/expensereport.lib.php
    index 1efdc73f247..da1a7048dee 100644
    --- a/htdocs/core/lib/expensereport.lib.php
    +++ b/htdocs/core/lib/expensereport.lib.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011	Regis Houssin	<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011	Regis Houssin	<regis.houssin@inodbox.com>
      *
      * 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
    @@ -67,7 +67,7 @@ function expensereport_prepare_head($object)
     	    $head[$h][2] = 'note';
     	    $h++;
     	}
    -	
    +
     	$head[$h][0] = DOL_URL_ROOT . '/expensereport/info.php?id=' . $object->id;
     	$head[$h][1] = $langs->trans("Info");
     	$head[$h][2] = 'info';
    @@ -81,11 +81,12 @@ function expensereport_prepare_head($object)
     /**
      * Returns an array with the tabs for the "Expense report payment" section
      * It loads tabs from modules looking for the entity payment
    - * 
    + *
      * @param	Paiement	$object		Current payment object
      * @return	array					Tabs for the payment section
      */
    -function payment_expensereport_prepare_head(PaymentExpenseReport $object) {
    +function payment_expensereport_prepare_head(PaymentExpenseReport $object)
    +{
     
     	global $langs, $conf;
     
    @@ -139,7 +140,7 @@ function expensereport_admin_prepare_head()
     		$head[$h][2] = 'expenseik';
     		$h++;
     	}
    -	
    +
     	if (!empty($conf->global->MAIN_USE_EXPENSE_RULE))
     	{
     		$head[$h][0] = DOL_URL_ROOT."/admin/expensereport_rules.php";
    @@ -147,7 +148,7 @@ function expensereport_admin_prepare_head()
     		$head[$h][2] = 'expenserules';
     		$h++;
     	}
    -	
    +
     	// Show more tabs from modules
     	// Entries must be declared in modules descriptor with line
     	// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__');   to add new tab
    @@ -168,5 +169,5 @@ function expensereport_admin_prepare_head()
     
     	complete_head_from_modules($conf,$langs,null,$head,$h,'expensereport_admin','remove');
     
    -	return $head;
    +    return $head;
     }
    diff --git a/htdocs/core/lib/fichinter.lib.php b/htdocs/core/lib/fichinter.lib.php
    index 8507a85292a..0ef39203f57 100644
    --- a/htdocs/core/lib/fichinter.lib.php
    +++ b/htdocs/core/lib/fichinter.lib.php
    @@ -1,9 +1,10 @@
     <?php
     /* Copyright (C) 2006-2007	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2007		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    - * Copyright (C) 2016		   Gilles Poirier 		   <glgpoirier@gmail.com>
    - 
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
    + * Copyright (C) 2016		Gilles Poirier 		   <glgpoirier@gmail.com>
    + * Copyright (C) 2018		charlene Benke 		   <charlie@patas-monkey.com>
    +
      *
      * 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
    @@ -75,11 +76,10 @@ function fichinter_prepare_head($object)
     				foreach($resources as $resource_obj)
     				{
     					$linked_resources = $object->getElementResources('fichinter',$object->id,$resource_obj);
    -					
     				}
     			}
     		}
    -				
    +
        		$head[$h][0] = DOL_URL_ROOT.'/resource/element_resource.php?element=fichinter&element_id='.$object->id;
     		$head[$h][1] = $langs->trans("Resources");
     		if ($nbResource > 0) $head[$h][1].= ' <span class="badge">'.$nbResource.'</span>';
    @@ -162,4 +162,28 @@ function fichinter_admin_prepare_head()
     		return $head;
     }
     
    +/**
    + * Prepare array with list of tabs
    + *
    + * @param   Object  $object     Object related to tabs
    + * @return  array               Array of tabs to show
    + */
    +function fichinter_rec_prepare_head($object)
    +{
    +	global $langs, $conf; //, $user;
     
    +	$h = 0;
    +	$head = array();
    +
    +	$head[$h][0] = DOL_URL_ROOT.'/fichinter/card-rec.php?id='.$object->id;
    +	$head[$h][1] = $langs->trans("CardFichinter");
    +	$head[$h][2] = 'card';
    +	$h++;
    +
    +	complete_head_from_modules($conf, $langs, $object, $head, $h, 'intervention-rec');
    +
    +	complete_head_from_modules($conf, $langs, $object, $head, $h,'intervention-rec','remove');
    +
    +
    +	return $head;
    +}
    diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php
    index 210626f461c..ae80d371e33 100644
    --- a/htdocs/core/lib/files.lib.php
    +++ b/htdocs/core/lib/files.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2012  Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2012-2015  Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2012-2015  Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2012-2016  Juanjo Menent       <jmenent@2byte.es>
      * Copyright (C) 2015       Marcos García       <marcosgdf@gmail.com>
      * Copyright (C) 2016       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
    @@ -574,7 +574,7 @@ function dol_filemtime($pathoffile)
      * @param	array	$arrayreplacement	Array with strings to replace. Example: array('valuebefore'=>'valueafter', ...)
      * @param	string	$destfile			Destination file (can't be a directory). If empty, will be same than source file.
      * @param	int		$newmask			Mask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0666'
    - * @param	int		$indexdatabase		Index new file into database.
    + * @param	int		$indexdatabase		1=index new file into database.
      * @return	int							<0 if error, 0 if nothing done (dest file already exists), >0 if OK
      * @see		dol_copy dolReplaceRegExInFile
      */
    @@ -611,7 +611,7 @@ function dolReplaceInFile($srcfile, $arrayreplacement, $destfile='', $newmask=0,
     	dol_delete_file($tmpdestfile);
     
     	// Create $newpathoftmpdestfile from $newpathofsrcfile
    -	$content=file_get_contents($newpathofsrcfile, 'r');
    +	$content = file_get_contents($newpathofsrcfile, 'r');
     
     	$content = make_substitutions($content, $arrayreplacement, null);
     
    @@ -651,7 +651,6 @@ function dolReplaceInFile($srcfile, $arrayreplacement, $destfile='', $newmask=0,
     function dolReplaceRegExInFile($srcfile, $arrayreplacement, $destfile='', $newmask=0, $indexdatabase=0)
     {
     	// TODO
    -
     }
     
     /**
    @@ -782,7 +781,6 @@ function dolCopyDir($srcfile, $destfile, $newmask, $overwriteifexists, $arrayrep
     					$result=$tmpresult;
     				}
     				if ($result < 0) break;
    -
     			}
     		}
     		closedir($dir_handle);
    @@ -1055,7 +1053,7 @@ function dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disable
     		// Security:
     		// Disallow file with some extensions. We rename them.
     		// Because if we put the documents directory into a directory inside web root (very bad), this allows to execute on demand arbitrary code.
    -		if (preg_match('/\.htm|\.html|\.php|\.pl|\.cgi$/i',$dest_file) && empty($conf->global->MAIN_DOCUMENT_IS_OUTSIDE_WEBROOT_SO_NOEXE_NOT_REQUIRED))
    +		if (preg_match('/(\.htm|\.html|\.php|\.pl|\.cgi)$/i',$dest_file) && empty($conf->global->MAIN_DOCUMENT_IS_OUTSIDE_WEBROOT_SO_NOEXE_NOT_REQUIRED))
     		{
     			$file_name.= '.noexe';
     		}
    @@ -1134,16 +1132,17 @@ function dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disable
      *  @param	int		$nohook			Disable all hooks
      *  @param	object	$object			Current object in use
      *  @param	boolean	$allowdotdot	Allow to delete file path with .. inside. Never use this, it is reserved for migration purpose.
    + *  @param	int		$indexdatabase	Try to remove also index entries.
      *  @return boolean         		True if no error (file is deleted or if glob is used and there's nothing to delete), False if error
      *  @see dol_delete_dir
      */
    -function dol_delete_file($file,$disableglob=0,$nophperrors=0,$nohook=0,$object=null,$allowdotdot=false)
    +function dol_delete_file($file, $disableglob=0, $nophperrors=0, $nohook=0, $object=null, $allowdotdot=false, $indexdatabase=1)
     {
     	global $db, $conf, $user, $langs;
     	global $hookmanager;
     
    -	$langs->load("other");
    -	$langs->load("errors");
    +	// Load translation files required by the page
    +    $langs->loadLangs(array('other', 'errors'));
     
     	dol_syslog("dol_delete_file file=".$file." disableglob=".$disableglob." nophperrors=".$nophperrors." nohook=".$nohook);
     
    @@ -1201,7 +1200,7 @@ function dol_delete_file($file,$disableglob=0,$nophperrors=0,$nohook=0,$object=n
     						{
     							$rel_filetodelete = preg_replace('/^[\\/]/', '', $rel_filetodelete);
     
    -							if (is_object($db))		// $db may not be defined when lib is in a context with define('NOREQUIREDB',1)
    +							if (is_object($db) && $indexdatabase)		// $db may not be defined when lib is in a context with define('NOREQUIREDB',1)
     							{
     								dol_syslog("Try to remove also entries in database for full relative path = ".$rel_filetodelete, LOG_DEBUG);
     								include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php';
    @@ -1269,7 +1268,7 @@ function dol_delete_dir($dir,$nophperrors=0)
      *  @param  int		$nophperrors    Disable all PHP output errors
      *  @param	int		$onlysub		Delete only files and subdir, not main directory
      *  @param  int		$countdeleted   Counter to count nb of elements found really deleted
    - *  @return int             		Number of files and directory we try to remove. NB really removed is returned into $countdeleted.
    + *  @return int             		Number of files and directory we try to remove. NB really removed is returned into var by reference $countdeleted.
      */
     function dol_delete_dir_recursive($dir, $count=0, $nophperrors=0, $onlysub=0, &$countdeleted=0)
     {
    @@ -1509,7 +1508,7 @@ function dol_init_file_process($pathtoscan='', $trackid='')
      *
      * @param	string	$upload_dir				Directory where to store uploaded file (note: used to forge $destpath = $upload_dir + filename)
      * @param	int		$allowoverwrite			1=Allow overwrite existing file
    - * @param	int		$donotupdatesession		1=Do no edit _SESSION variable but update database index. 0=Update _SESSION and not database index.
    + * @param	int		$donotupdatesession		1=Do no edit _SESSION variable but update database index. 0=Update _SESSION and not database index. -1=Do not update SESSION neither db.
      * @param	string	$varfiles				_FILES var name
      * @param	string	$savingdocmask			Mask to use to define output filename. For example 'XXXXX-__YYYYMMDD__-__file__'
      * @param	string	$link					Link to add (to add a link instead of a file)
    @@ -1591,7 +1590,7 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio
     					}
     
     					// Update table of files
    -					if ($donotupdatesession)
    +					if ($donotupdatesession == 1)
     					{
     						$result = addFileIntoDatabaseIndex($upload_dir, basename($destfile), $TFile['name'][$i], 'uploaded', 0);
     						if ($result < 0)
    @@ -1656,7 +1655,7 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio
      * All information used are in db, conf, langs, user and _FILES.
      *
      * @param	int		$filenb					File nb to delete
    - * @param	int		$donotupdatesession		1=Do not edit _SESSION variable
    + * @param	int		$donotupdatesession		-1 or 1 = Do not update _SESSION variable
      * @param   int		$donotdeletefile        1=Do not delete physically file
      * @param   string  $trackid                Track id (used to prefix name of session vars to avoid conflict)
      * @return	void
    @@ -2120,6 +2119,9 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity,
     		if (empty($conf->multicompany->enabled)) $entity=1;
     		else $entity=0;
     	}
    +	// Fix modulepart
    +	if ($modulepart == 'users') $modulepart='user';
    +
     	dol_syslog('modulepart='.$modulepart.' original_file='.$original_file.' entity='.$entity);
     	// We define $accessallowed and $sqlprotectagainstexternals
     	$accessallowed=0;
    @@ -2162,10 +2164,10 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity,
     		$original_file=$dirins.'/'.$original_file;
     	}
     	// Wrapping for some images
    -	elseif (($modulepart == 'mycompany' || $modulepart == 'companylogo') && !empty($conf->mycompany->dir_output))
    +	elseif ($modulepart == 'mycompany' && !empty($conf->mycompany->dir_output))
     	{
     		$accessallowed=1;
    -		$original_file=$conf->mycompany->dir_output.'/logos/'.$original_file;
    +		$original_file=$conf->mycompany->dir_output.'/'.$original_file;
     	}
     	// Wrapping for users photos
     	elseif ($modulepart == 'userphoto' && !empty($conf->user->dir_output))
    @@ -2808,6 +2810,19 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity,
     			if ($fuser->rights->{$reg[1]}->{$lire} || $fuser->rights->{$reg[1]}->{$read} || ($fuser->rights->{$reg[1]}->{$download})) $accessallowed=1;
     			$original_file=$conf->{$reg[1]}->dir_output.'/'.$fuser->id.'/'.$original_file;
     		}
    +		else if (preg_match('/^massfilesarea_([a-z]+)$/i', $modulepart, $reg))
    +		{
    +			if (empty($conf->{$reg[1]}->dir_output))	// modulepart not supported
    +			{
    +				dol_print_error('','Error call dol_check_secure_access_document with not supported value for modulepart parameter ('.$modulepart.')');
    +				exit;
    +			}
    +			if ($fuser->rights->{$reg[1]}->{$lire} || preg_match('/^specimen/i', $original_file))
    +			{
    +				$accessallowed=1;
    +			}
    +			$original_file=$conf->{$reg[1]}->dir_output.'/temp/massgeneration/'.$user->id.'/'.$original_file;
    +		}
     		else
     		{
     			if (empty($conf->$modulepart->dir_output))	// modulepart not supported
    diff --git a/htdocs/core/lib/format_cards.lib.php b/htdocs/core/lib/format_cards.lib.php
    index 7e89946d471..ecfce2108dd 100644
    --- a/htdocs/core/lib/format_cards.lib.php
    +++ b/htdocs/core/lib/format_cards.lib.php
    @@ -36,7 +36,7 @@ $sql = "SELECT rowid, code, name, paper_size, orientation, metric, leftmargin, t
     $resql = $db->query($sql);
     if ($resql)
     {
    -    while ($row = $db->fetch_array($resql)) 
    +    while ($row = $db->fetch_array($resql))
         {
             $_Avery_Labels[$row['code']]['name']=$row['name'];
             $_Avery_Labels[$row['code']]['paper-size']=$row['paper_size'];
    diff --git a/htdocs/core/lib/fourn.lib.php b/htdocs/core/lib/fourn.lib.php
    index ac956abf524..4f3351a4d86 100644
    --- a/htdocs/core/lib/fourn.lib.php
    +++ b/htdocs/core/lib/fourn.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2009	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2006		Marc Barilley		<marc@ocebo.com>
      * Copyright (C) 2011-2013  Philippe Grand      <philippe.grand@atoo-net.com>
      *
    @@ -121,7 +121,7 @@ function ordersupplier_prepare_head($object)
     		$h++;
     	}
     
    -	if (! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER))
    +	if (! empty($conf->stock->enabled) && (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)))
     	{
     		$langs->load("stocks");
     		$head[$h][0] = DOL_URL_ROOT.'/fourn/commande/dispatch.php?id='.$object->id;
    diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
    index b9685a043d0..69e8927a801 100644
    --- a/htdocs/core/lib/functions.lib.php
    +++ b/htdocs/core/lib/functions.lib.php
    @@ -5,7 +5,7 @@
      * Copyright (C) 2004		Sebastien Di Cintio			<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier				<benoit.mortier@opensides.be>
      * Copyright (C) 2004		Christophe Combelles			<ccomb@free.fr>
    - * Copyright (C) 2005-2017	Regis Houssin				<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin				<regis.houssin@inodbox.com>
      * Copyright (C) 2008		Raphael Bertrand (Resultic)	<raphael.bertrand@resultic.fr>
      * Copyright (C) 2010-2018	Juanjo Menent				<jmenent@2byte.es>
      * Copyright (C) 2013		Cédric Salvador				<csalvador@gpcsolutions.fr>
    @@ -39,48 +39,6 @@
     include_once DOL_DOCUMENT_ROOT .'/core/lib/json.lib.php';
     
     
    -/**
    - * Function to return value of a static property when class
    - * name is dynamically defined (not hard coded).
    - * This is because $myclass::$myvar works from PHP 5.3.0+ only
    - *
    - * @param	string 	$class		Class name
    - * @param 	string 	$member		Name of property
    - * @return 	mixed				Return value of static property
    - * @deprecated Dolibarr now requires 5.3.0+, use $class::$property syntax
    - * @see https://php.net/manual/language.oop5.static.php
    - */
    -function getStaticMember($class, $member)
    -{
    -	dol_syslog(__FUNCTION__ . " is deprecated", LOG_WARNING);
    -
    -	// This part is deprecated. Uncomment if for php 5.2.*, and comment next isset class::member
    -	/*if (version_compare(phpversion(), '5.3.0', '<'))
    -	{
    -		if (is_object($class)) $class = get_class($class);
    -		$classObj = new ReflectionClass($class);
    -		$result = null;
    -
    -		$found=0;
    -		foreach($classObj->getStaticProperties() as $prop => $value)
    -		{
    -			if ($prop == $member)
    -			{
    -				$result = $value;
    -				$found++;
    -				break;
    -			}
    -		}
    -
    -		if ($found) return $result;
    -	}*/
    -
    -	if (isset($class::$member)) return $class::$member;
    -	dol_print_error('','Try to get a static member "'.$member.'" in class "'.$class.'" that does not exists or is not static.');
    -	return null;
    -}
    -
    -
     /**
      * Return a DoliDB instance (database handler).
      *
    @@ -107,7 +65,7 @@ function getDoliDBInstance($type, $host, $user, $pass, $name, $port)
      * 	@param	string	$element		Current element
      *									'societe', 'socpeople', 'actioncomm', 'agenda', 'resource',
      *									'product', 'productprice', 'stock',
    - *									'propal', 'supplier_proposal', 'facture', 'facture_fourn', 'payment_various',
    + *									'propal', 'supplier_proposal', 'invoice', 'facture_fourn', 'payment_various',
      *									'categorie', 'bank_account', 'bank_account', 'adherent', 'user',
      *									'commande', 'commande_fournisseur', 'expedition', 'intervention', 'survey',
      *									'contract', 'tax', 'expensereport', 'holiday', 'multicurrency', 'project',
    @@ -115,16 +73,16 @@ function getDoliDBInstance($type, $host, $user, $pass, $name, $port)
      *									'c_paiement', 'c_payment_term', ...
      * 	@param	int		$shared			0=Return id of current entity only,
      * 									1=Return id of current entity + shared entities (default)
    - *  @param	int		$forceentity	Entity id
    + *  @param	object	$currentobject	Current object if needed
      * 	@return	mixed				Entity id(s) to use
      */
    -function getEntity($element, $shared=1, $forceentity=null)
    +function getEntity($element, $shared=1, $currentobject=null)
     {
     	global $conf, $mc;
     
     	if (is_object($mc))
     	{
    -		return $mc->getEntity($element, $shared, $forceentity);
    +		return $mc->getEntity($element, $shared, $currentobject);
     	}
     	else
     	{
    @@ -254,19 +212,19 @@ function GETPOSTISSET($paramname)
      *  Use the property $user->default_values[path]['creatform'] and/or $user->default_values[path]['filters'] and/or $user->default_values[path]['sortorder']
      *  Note: The property $user->default_values is loaded by main.php when loading the user.
      *
    - *  @param	string	$paramname   Name of parameter to found
    - *  @param	string	$check	     Type of check
    - *                                  ''=no check (deprecated)
    - *                                  'none'=no check (only for param that should have very rich content)
    - *                                  'int'=check it's numeric (integer or float)
    - *                                  'intcomma'=check it's integer+comma ('1,2,3,4...')
    - *                                  'alpha'=check it's text and sign
    - *                                  'aZ'=check it's a-z only
    - *                                  'aZ09'=check it's simple alpha string (recommended for keys)
    - *                                  'array'=check it's array
    - *                                  'san_alpha'=Use filter_var with FILTER_SANITIZE_STRING (do not use this for free text string)
    - *                                  'nohtml', 'alphanohtml'=check there is no html content
    - *                                  'custom'= custom filter specify $filter and $options)
    + *  @param  string  $paramname   Name of parameter to found
    + *  @param  string  $check	     Type of check
    + *                               ''=no check (deprecated)
    + *                               'none'=no check (only for param that should have very rich content)
    + *                               'int'=check it's numeric (integer or float)
    + *                               'intcomma'=check it's integer+comma ('1,2,3,4...')
    + *                               'alpha'=check it's text and sign
    + *                               'aZ'=check it's a-z only
    + *                               'aZ09'=check it's simple alpha string (recommended for keys)
    + *                               'array'=check it's array
    + *                               'san_alpha'=Use filter_var with FILTER_SANITIZE_STRING (do not use this for free text string)
    + *                               'nohtml', 'alphanohtml'=check there is no html content
    + *                               'custom'= custom filter specify $filter and $options)
      *  @param	int		$method	     Type of method (0 = get then post, 1 = only get, 2 = only post, 3 = post then get, 4 = post then get then cookie)
      *  @param  int     $filter      Filter to apply when $check is set to 'custom'. (See http://php.net/manual/en/filter.filters.php for détails)
      *  @param  mixed   $options     Options to pass to filter_var when $check is set to 'custom'
    @@ -436,7 +394,7 @@ function GETPOST($paramname, $check='none', $method=0, $filter=null, $options=nu
     						}
     						elseif (isset($user->default_values[$relativepathstring]['filters']))
     						{
    -							foreach($user->default_values[$relativepathstring]['filters'] as $defkey => $defval)
    +							foreach($user->default_values[$relativepathstring]['filters'] as $defkey => $defval)	// $defkey is a querystring like 'a=b&c=d', $defval is key of user
     							{
     								$qualified = 0;
     								if ($defkey != '_noquery_')
    @@ -592,7 +550,6 @@ function GETPOST($paramname, $check='none', $method=0, $filter=null, $options=nu
     	// Save data into session if key start with 'search_' or is 'smonth', 'syear', 'month', 'year'
     	if (empty($method) || $method == 3 || $method == 4)
     	{
    -		//if (preg_match('/^search_/', $paramname) || in_array($paramname, array('sortorder', 'sortfield", 'smonth', 'syear', 'month', 'year')))
     		if (preg_match('/^search_/', $paramname) || in_array($paramname, array('sortorder','sortfield')))
     		{
     			//var_dump($paramname.' - '.$out.' '.$user->default_values[$relativepathstring]['filters'][$paramname]);
    @@ -601,8 +558,7 @@ function GETPOST($paramname, $check='none', $method=0, $filter=null, $options=nu
     			// - posted value not empty, or
     			// - if posted value is empty and a default value exists that is not empty (it means we did a filter to an empty value when default was not).
     
    -			//if (! empty($out) || ! empty($user->default_values[$relativepathstring]['filters'][$paramname]))
    -			if ($out != '')		// $out = '0' like 'abc' is a search criteria to keep
    +			if ($out != '')		// $out = '0' or 'abc', it is a search criteria to keep
     			{
     				$user->lastsearch_values_tmp[$relativepathstring][$paramname]=$out;
     			}
    @@ -613,35 +569,39 @@ function GETPOST($paramname, $check='none', $method=0, $filter=null, $options=nu
     }
     
     
    -/**
    - *  Return a prefix to use for this Dolibarr instance, for session/cookie names or email id.
    - *  This prefix is valid in a web context only and is unique for instance and avoid conflict
    - *  between multi-instances, even when having two instances with one root dir or two instances
    - *  in virtual servers.
    - *
    - *  @param  string  $mode       			'' (prefix for session name) or 'email' (prefix for email id)
    - *  @return	string      					A calculated prefix
    - */
     if (! function_exists('dol_getprefix'))
     {
    -	function dol_getprefix($mode='')
    -	{
    +    /**
    +     *  Return a prefix to use for this Dolibarr instance, for session/cookie names or email id.
    +     *  The prefix for session is unique in a web context only and is unique for instance and avoid conflict
    +     *  between multi-instances, even when having two instances with same root dir or two instances in same virtual servers.
    +     *  The prefix for email is unique if MAIL_PREFIX_FOR_EMAIL_ID is set to a value, otherwise value may be same than other instance.
    +     *
    +     *  @param  string  $mode                   '' (prefix for session name) or 'email' (prefix for email id)
    +     *  @return	string                          A calculated prefix
    +     */
    +    function dol_getprefix($mode='')
    +    {
     		global $conf;
     
    -		// If MAIL_PREFIX_FOR_EMAIL_ID is set and prefix is for email
    -		if ($mode == 'email' && ! empty($conf->global->MAIL_PREFIX_FOR_EMAIL_ID))
    +		// If prefix is for email
    +		if ($mode == 'email')
     		{
    -			if ($conf->global->MAIL_PREFIX_FOR_EMAIL_ID != 'SERVER_NAME') return $conf->global->MAIL_PREFIX_FOR_EMAIL_ID;
    -			else if (isset($_SERVER["SERVER_NAME"])) return $_SERVER["SERVER_NAME"];
    +			if (! empty($conf->global->MAIL_PREFIX_FOR_EMAIL_ID))	// If MAIL_PREFIX_FOR_EMAIL_ID is set (a value initialized with a random value is recommended)
    +			{
    +				if ($conf->global->MAIL_PREFIX_FOR_EMAIL_ID != 'SERVER_NAME') return $conf->global->MAIL_PREFIX_FOR_EMAIL_ID;
    +				else if (isset($_SERVER["SERVER_NAME"])) return $_SERVER["SERVER_NAME"];
    +			}
    +			return dol_hash(DOL_DOCUMENT_ROOT.DOL_URL_ROOT, '3');
     		}
     
     		if (isset($_SERVER["SERVER_NAME"]) && isset($_SERVER["DOCUMENT_ROOT"]))
     		{
    -			return dol_hash($_SERVER["SERVER_NAME"].$_SERVER["DOCUMENT_ROOT"].DOL_DOCUMENT_ROOT.DOL_URL_ROOT);
    -			// Use this for a "readable" cookie name
    +			return dol_hash($_SERVER["SERVER_NAME"].$_SERVER["DOCUMENT_ROOT"].DOL_DOCUMENT_ROOT.DOL_URL_ROOT, '3');
    +			// Use this for a "readable" key
     			//return dol_sanitizeFileName($_SERVER["SERVER_NAME"].$_SERVER["DOCUMENT_ROOT"].DOL_DOCUMENT_ROOT.DOL_URL_ROOT);
     		}
    -		else return dol_hash(DOL_DOCUMENT_ROOT.DOL_URL_ROOT);
    +		return dol_hash(DOL_DOCUMENT_ROOT.DOL_URL_ROOT, '3');
     	}
     }
     
    @@ -675,7 +635,7 @@ function dol_include_once($relpath, $classname='')
     
     
     /**
    - *	Return path of url or filesystem. Return alternate root if exists.
    + *	Return path of url or filesystem. Can check into alternate dir or alternate dir + main dir depending on value of $returnemptyifnotfound.
      *
      * 	@param	string	$path						Relative path to file (if mode=0) or relative url (if mode=1). Ie: mydir/myfile, ../myfile
      *  @param	int		$type						0=Used for a Filesystem path, 1=Used for an URL path (output relative), 2=Used for an URL path (output full path using same host that current url), 3=Used for an URL path (output full path using host defined into $dolibarr_main_url_root of conf file)
    @@ -695,7 +655,10 @@ function dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
     		$res = DOL_DOCUMENT_ROOT.'/'.$path;		// Standard default path
     		foreach ($conf->file->dol_document_root as $key => $dirroot)	// ex: array(["main"]=>"/home/main/htdocs", ["alt0"]=>"/home/dirmod/htdocs", ...)
     		{
    -			if ($key == 'main') continue;
    +			if ($key == 'main')
    +			{
    +				continue;
    +			}
     			if (file_exists($dirroot.'/'.$path))
     			{
     				$res=$dirroot.'/'.$path;
    @@ -1042,6 +1005,8 @@ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename='
     		}
     		if ($level > $conf->global->SYSLOG_LEVEL) return;
     
    +		$message = preg_replace('/password=\'[^\']*\'/', 'password=\'hidden\'', $message);	// protection to avoid to have value of password in log
    +
     		// If adding log inside HTML page is required
     		if (! empty($_REQUEST['logtohtml']) && (! empty($conf->global->MAIN_ENABLE_LOG_TO_HTML) || ! empty($conf->global->MAIN_LOGTOHTML)))   // MAIN_LOGTOHTML kept for backward compatibility
     		{
    @@ -1049,7 +1014,7 @@ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename='
     		}
     
     		//TODO: Remove this. MAIN_ENABLE_LOG_INLINE_HTML should be deprecated and use a log handler dedicated to HTML output
    -		// If enable html log tag enabled and url parameter log defined, we show output log on HTML comments
    +		// If html log tag enabled and url parameter log defined, we show output log on HTML comments
     		if (! empty($conf->global->MAIN_ENABLE_LOG_INLINE_HTML) && ! empty($_GET["log"]))
     		{
     			print "\n\n<!-- Log start\n";
    @@ -1230,7 +1195,6 @@ function dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $pi
     					$outmore.='<a class="tabimage'.($morecss?' '.$morecss:'').'" href="'.$links[$i][0].'">'.$links[$i][1].'</a>'."\n";
     				else
     					$outmore.='<span class="tabspan">'.$links[$i][1].'</span>'."\n";
    -
     			}
     			else if (! empty($links[$i][1]))
     			{
    @@ -1359,7 +1323,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
     		$width=80; $cssclass='photoref';
     		$showimage=$object->is_photo_available($conf->product->multidir_output[$entity]);
     		$maxvisiblephotos=(isset($conf->global->PRODUCT_MAX_VISIBLE_PHOTO)?$conf->global->PRODUCT_MAX_VISIBLE_PHOTO:5);
    -		if ($conf->browser->phone) $maxvisiblephotos=1;
    +		if ($conf->browser->layout == 'phone') $maxvisiblephotos=1;
     		if ($showimage) $morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref">'.$object->show_photos('product', $conf->product->multidir_output[$entity],'small',$maxvisiblephotos,0,0,0,$width,0).'</div>';
     		else
     		{
    @@ -1378,7 +1342,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
     		$width=80; $cssclass='photoref';
     		$showimage=$object->is_photo_available($conf->ticket->multidir_output[$entity].'/'.$object->track_id);
     		$maxvisiblephotos=(isset($conf->global->TICKETSUP_MAX_VISIBLE_PHOTO)?$conf->global->TICKETSUP_MAX_VISIBLE_PHOTO:2);
    -		if ($conf->browser->phone) $maxvisiblephotos=1;
    +		if ($conf->browser->layout == 'phone') $maxvisiblephotos=1;
     		if ($showimage) $morehtmlleft.='<div class="floatleft inline-block valignmiddle divphotoref">'.$object->show_photos('ticket', $conf->ticket->multidir_output[$entity],'small',$maxvisiblephotos,0,0,0,$width,0).'</div>';
     		else
     		{
    @@ -1436,6 +1400,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
     						{
     							if (empty($conf->global->MAIN_DISABLE_PDF_THUMBS))		// If you experienc trouble with pdf thumb generation and imagick, you can disable here.
     							{
    +								include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     								$ret = dol_convert_file($file, 'png', $fileimage);
     								if ($ret < 0) $error++;
     							}
    @@ -1600,6 +1565,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r
      * @param	string	$langkey		Translation key
      * @param 	string	$fieldkey		Key of the html select field the text refers to
      * @param	int		$fieldrequired	1=Field is mandatory
    + * @return string
      * @deprecated Form::editfieldkey
      */
     function fieldLabel($langkey, $fieldkey, $fieldrequired=0)
    @@ -2196,50 +2162,52 @@ function dol_print_email($email,$cid=0,$socid=0,$addlink=0,$max=64,$showinvalid=
     }
     
     /**
    - * Show Skype link
    + * Show social network link
      *
    - * @param	string		$skype			Skype to show (only skype, without 'Name of recipient' before)
    + * @param	string		$value			Skype to show (only skype, without 'Name of recipient' before)
      * @param	int 		$cid 			Id of contact if known
      * @param	int 		$socid 			Id of third party if known
    - * @param	int 		$addlink		0=no link to create action
    - * @param	int			$max			Max number of characters to show
    + * @param	string 		$type			'skype','facebook',...
      * @return	string						HTML Link
      */
    -function dol_print_skype($skype,$cid=0,$socid=0,$addlink=0,$max=64)
    +function dol_print_socialnetworks($value,$cid,$socid,$type)
     {
     	global $conf,$user,$langs;
     
    -	$newskype=$skype;
    +	$newskype=$value;
     
    -	if (empty($skype)) return '&nbsp;';
    +	if (empty($value)) return '&nbsp;';
     
    -	if (! empty($addlink))
    +	if (! empty($type))
     	{
    -		$newskype =img_picto($langs->trans("Skype"), 'object_skype.png');
    -		$newskype.= '&nbsp;';
    -		$newskype.=dol_trunc($skype,$max);
    -		$newskype.= '&nbsp;';
    -		$newskype.='<a href="skype:';
    -		$newskype.=dol_trunc($skype,$max);
    -		$newskype.='?call" alt="'.$langs->trans("Call").'&nbsp;'.$skype.'" title="'.$langs->trans("Call").'&nbsp;'.$skype.'">';
    -		$newskype.='<img src="'.DOL_URL_ROOT.'/theme/common/skype_callbutton.png" border="0">';
    -		$newskype.='</a>&nbsp;&nbsp;&nbsp;<a href="skype:';
    -		$newskype.=dol_trunc($skype,$max);
    -		$newskype.='?chat" alt="'.$langs->trans("Chat").'&nbsp;'.$skype.'" title="'.$langs->trans("Chat").'&nbsp;'.$skype.'">';
    -		$newskype.='<img src="'.DOL_URL_ROOT.'/theme/common/skype_chatbutton.png" border="0">';
    -		$newskype.='</a>';
    -
    -		if (($cid || $socid) && ! empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create)
    +		$newskype ='<div class="divsocialnetwork inline-block valignmiddle">';
    +		$newskype.=img_picto($langs->trans(strtoupper($type)), $type.'.png', '', false, 0, 0, '', 'paddingright');
    +		$newskype.=$value;
    +		if ($type == 'skype')
     		{
    -			$type='AC_SKYPE'; $link='';
    -			if (! empty($conf->global->AGENDA_ADDACTIONFORSKYPE)) $link='<a href="'.DOL_URL_ROOT.'/comm/action/card.php?action=create&amp;backtopage=1&amp;actioncode='.$type.'&amp;contactid='.$cid.'&amp;socid='.$socid.'">'.img_object($langs->trans("AddAction"),"calendar").'</a>';
    -			$newskype='<div class="divskype nowrap">'.$newskype.($link?' '.$link:'').'</div>';
    +			$newskype.= '&nbsp;';
    +			$newskype.='<a href="skype:';
    +			$newskype.=$value;
    +			$newskype.='?call" alt="'.$langs->trans("Call").'&nbsp;'.$value.'" title="'.$langs->trans("Call").'&nbsp;'.$value.'">';
    +			$newskype.='<img src="'.DOL_URL_ROOT.'/theme/common/skype_callbutton.png" border="0">';
    +			$newskype.='</a><a href="skype:';
    +			$newskype.=$value;
    +			$newskype.='?chat" alt="'.$langs->trans("Chat").'&nbsp;'.$value.'" title="'.$langs->trans("Chat").'&nbsp;'.$value.'">';
    +			$newskype.='<img class="paddingleft" src="'.DOL_URL_ROOT.'/theme/common/skype_chatbutton.png" border="0">';
    +			$newskype.='</a>';
     		}
    +		if (($cid || $socid) && ! empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create && $type=='skype')
    +		{
    +			$addlink='AC_SKYPE'; $link='';
    +			if (! empty($conf->global->AGENDA_ADDACTIONFORSKYPE)) $link='<a href="'.DOL_URL_ROOT.'/comm/action/card.php?action=create&amp;backtopage=1&amp;actioncode='.$addlink.'&amp;contactid='.$cid.'&amp;socid='.$socid.'">'.img_object($langs->trans("AddAction"),"calendar").'</a>';
    +			$newskype.=($link?' '.$link:'');
    +		}
    +		$newskype.='</div>';
     	}
     	else
     	{
     		$langs->load("errors");
    -		$newskype.=img_warning($langs->trans("ErrorBadSkype",$skype));
    +		$newskype.=img_warning($langs->trans("ErrorBadSocialNetworkValue",$value));
     	}
     	return $newskype;
     }
    @@ -2554,7 +2522,7 @@ function dol_print_phone($phone,$countrycode='',$cid=0,$socid=0,$addlink='',$sep
     	}
     	if (! empty($addlink))	// Link on phone number (+ link to add action if conf->global->AGENDA_ADDACTIONFORPHONE set)
     	{
    -		if (! empty($conf->browser->phone) || (! empty($conf->clicktodial->enabled) && ! empty($conf->global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS)))	// If phone or option for, we use link of phone
    +		if ($conf->browser->layout == 'phone' || (! empty($conf->clicktodial->enabled) && ! empty($conf->global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS)))	// If phone or option for, we use link of phone
     		{
     			$newphone ='<a href="tel:'.$phone.'"';
     			$newphone.='>'.$phone.'</a>';
    @@ -2671,7 +2639,7 @@ function dol_print_ip($ip,$mode=0)
      */
     function getUserRemoteIP()
     {
    -	$ip = $_SERVER['HTTP_X_FORWARDED_FOR']?$_SERVER['HTTP_X_FORWARDED_FOR']:(($_SERVER['HTTP_CLIENT_IP']?$_SERVER['HTTP_CLIENT_IP']:$_SERVER['REMOTE_ADDR']));
    +	$ip = empty($_SERVER['HTTP_X_FORWARDED_FOR'])? (empty($_SERVER['HTTP_CLIENT_IP'])?(empty($_SERVER['REMOTE_ADDR'])?'':$_SERVER['REMOTE_ADDR']):$_SERVER['HTTP_CLIENT_IP']) : $_SERVER['HTTP_X_FORWARDED_FOR'];
     	return $ip;
     }
     
    @@ -2802,6 +2770,35 @@ function isValidEmail($address, $acceptsupervisorkey=0)
     	return false;
     }
     
    +/**
    + *	Return if the domain name has a valid MX record.
    + *  WARNING: This need function idn_to_ascii, checkdnsrr and getmxrr
    + *
    + *	@param	    string		$domain	    			Domain name (Ex: "yahoo.com", "yhaoo.com", "dolibarr.fr")
    + *	@return     int     							-1 if error (function not available), 0=Not valid, 1=Valid
    + */
    +function isValidMXRecord($domain)
    +{
    +	if (function_exists('idn_to_ascii') && function_exists('checkdnsrr'))
    +	{
    +		if (! checkdnsrr(idn_to_ascii($domain), 'MX'))
    +		{
    +			return 0;
    +		}
    +		if (function_exists('getmxrr'))
    +		{
    +			$mxhosts=array();
    +			$weight=array();
    +			getmxrr(idn_to_ascii($domain), $mxhosts, $weight);
    +			if (count($mxhosts) > 1) return 1;
    +			if (count($mxhosts) == 1 && ! empty($mxhosts[0])) return 1;
    +
    +			return 0;
    +		}
    +	}
    +	return -1;
    +}
    +
     /**
      *  Return true if phone number syntax is ok
      *  TODO Decide what to do with this
    @@ -2822,222 +2819,55 @@ function isValidPhone($phone)
      * @param   string		$stringencoding		Encoding of string
      * @return  int								Length of string
      */
    -function dol_strlen($string,$stringencoding='UTF-8')
    +function dol_strlen($string, $stringencoding='UTF-8')
     {
     	if (function_exists('mb_strlen')) return mb_strlen($string,$stringencoding);
     	else return strlen($string);
     }
     
     /**
    - * Make a substring. Works even in mbstring module is not enabled.
    + * Make a substring. Works even if mbstring module is not enabled for better compatibility.
      *
      * @param	string	$string				String to scan
      * @param	string	$start				Start position
    - * @param	int		$length				Length
    + * @param	int		$length				Length (in nb of characters or nb of bytes depending on trunconbytes param)
      * @param   string	$stringencoding		Page code used for input string encoding
    + * @param	int		$trunconbytes		1=Length is max of bytes instead of max of characters
      * @return  string						substring
      */
    -function dol_substr($string,$start,$length,$stringencoding='')
    +function dol_substr($string, $start, $length, $stringencoding='', $trunconbytes=0)
     {
     	global $langs;
     
     	if (empty($stringencoding)) $stringencoding=$langs->charset_output;
     
     	$ret='';
    -	if (function_exists('mb_substr'))
    +	if (empty($trunconbytes))
     	{
    -		$ret=mb_substr($string,$start,$length,$stringencoding);
    +		if (function_exists('mb_substr'))
    +		{
    +			$ret=mb_substr($string, $start, $length, $stringencoding);
    +		}
    +		else
    +		{
    +			$ret=substr($string, $start, $length);
    +		}
     	}
     	else
     	{
    -		$ret=substr($string,$start,$length);
    +		if (function_exists('mb_strcut'))
    +		{
    +			$ret=mb_strcut($string, $start, $length, $stringencoding);
    +		}
    +		else
    +		{
    +			$ret=substr($string, $start, $length);
    +		}
     	}
     	return $ret;
     }
     
     
    -/**
    - *  Show a javascript graph.
    - *  Do not use this function anymore. Use DolGraph class instead.
    - *
    - *  @param		string	$htmlid			Html id name
    - *  @param		int		$width			Width in pixel
    - *  @param		int		$height			Height in pixel
    - *  @param		array	$data			Data array
    - *  @param		int		$showlegend		1 to show legend, 0 otherwise
    - *  @param		string	$type			Type of graph ('pie', 'barline')
    - *  @param		int		$showpercent	Show percent (with type='pie' only)
    - *  @param		string	$url			Param to add an url to click values
    - *  @param		int		$combineother	0=No combine, 0.05=Combine if lower than 5%
    - *  @param      int     $shownographyet Show graph to say there is not enough data
    - *  @return		void
    - *  @deprecated
    - *  @see DolGraph
    - */
    -function dol_print_graph($htmlid,$width,$height,$data,$showlegend=0,$type='pie',$showpercent=0,$url='',$combineother=0.05,$shownographyet=0)
    -{
    -	dol_syslog(__FUNCTION__ . " is deprecated", LOG_WARNING);
    -
    -	global $conf,$langs;
    -	global $theme_datacolor;    // To have var kept when function is called several times
    -
    -	if ($shownographyet)
    -	{
    -		print '<div class="nographyet" style="width:'.$width.'px;height:'.$height.'px;"></div>';
    -		print '<div class="nographyettext">'.$langs->trans("NotEnoughDataYet").'</div>';
    -		return;
    -	}
    -
    -	if (empty($conf->use_javascript_ajax)) return;
    -	$jsgraphlib='flot';
    -	$datacolor=array();
    -
    -	// Load colors of theme into $datacolor array
    -	$color_file = DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/graph-color.php";
    -	if (is_readable($color_file))
    -	{
    -		include_once $color_file;
    -		if (isset($theme_datacolor))
    -		{
    -			$datacolor=array();
    -			foreach($theme_datacolor as $val)
    -			{
    -				$datacolor[]="#".sprintf("%02x",$val[0]).sprintf("%02x",$val[1]).sprintf("%02x",$val[2]);
    -			}
    -		}
    -	}
    -	print '<div id="'.$htmlid.'" style="width:'.$width.'px;height:'.$height.'px;"></div>';
    -
    -	// We use Flot js lib
    -	if ($jsgraphlib == 'flot')
    -	{
    -		if ($type == 'pie')
    -		{
    -			// data is   array('series'=>array(serie1,serie2,...),
    -			//                 'seriestype'=>array('bar','line',...),
    -			//                 'seriescolor'=>array(0=>'#999999',1=>'#999999',...)
    -			//                 'xlabel'=>array(0=>labelx1,1=>labelx2,...));
    -			// serieX is array('label'=>'label', data=>val)
    -			print '
    -			<script type="text/javascript">
    -			$(function () {
    -				var data = '.json_encode($data['series']).';
    -
    -				function plotWithOptions() {
    -					$.plot($("#'.$htmlid.'"), data,
    -					{
    -						series: {
    -							pie: {
    -								show: true,
    -								radius: 0.8,';
    -			if ($combineother)
    -			{
    -				print '
    -								combine: {
    -								 	threshold: '.$combineother.'
    -								},';
    -			}
    -			print '
    -								label: {
    -									show: true,
    -									radius: 0.9,
    -									formatter: function(label, series) {
    -										var percent=Math.round(series.percent);
    -										var number=series.data[0][1];
    -										return \'';
    -										print '<div style="font-size:8pt;text-align:center;padding:2px;color:black;">';
    -										if ($url) print '<a style="color: #FFFFFF;" border="0" href="'.$url.'">';
    -										print '\'+'.($showlegend?'number':'label+\' \'+number');
    -										if (! empty($showpercent)) print '+\'<br/>\'+percent+\'%\'';
    -										print '+\'';
    -										if ($url) print '</a>';
    -										print '</div>\';
    -									},
    -									background: {
    -										opacity: 0.0,
    -										color: \'#000000\'
    -									},
    -								}
    -							}
    -						},
    -						zoom: {
    -							interactive: true
    -						},
    -						pan: {
    -							interactive: true
    -						},';
    -						if (count($datacolor))
    -						{
    -							print 'colors: '.(! empty($data['seriescolor']) ? json_encode($data['seriescolor']) : json_encode($datacolor)).',';
    -						}
    -						print 'legend: {show: '.($showlegend?'true':'false').', position: \'ne\' }
    -					});
    -				}
    -				plotWithOptions();
    -			});
    -			</script>';
    -		}
    -		else if ($type == 'barline')
    -		{
    -			// data is   array('series'=>array(serie1,serie2,...),
    -			//                 'seriestype'=>array('bar','line',...),
    -			//                 'seriescolor'=>array(0=>'#999999',1=>'#999999',...)
    -			//                 'xlabel'=>array(0=>labelx1,1=>labelx2,...));
    -			// serieX is array('label'=>'label', data=>array(0=>y1,1=>y2,...)) with same nb of value than into xlabel
    -			print '
    -			<script type="text/javascript">
    -			$(function () {
    -				var data = [';
    -				$i=0; $outputserie=0;
    -				foreach($data['series'] as $serie)
    -				{
    -					if ($data['seriestype'][$i]=='line') { $i++; continue; };
    -					if ($outputserie > 0) print ',';
    -					print '{ bars: { stack: 0, show: true, barWidth: 0.9, align: \'center\' }, label: \''.dol_escape_js($serie['label']).'\', data: '.json_encode($serie['data']).'}'."\n";
    -					$outputserie++; $i++;
    -				}
    -				if ($outputserie) print ', ';
    -				//print '];
    -				//var datalines = [';
    -				$i=0; $outputserie=0;
    -				foreach($data['series'] as $serie)
    -				{
    -					if (empty($data['seriestype'][$i]) || $data['seriestype'][$i]=='bar') { $i++; continue; };
    -					if ($outputserie > 0) print ',';
    -					print '{ lines: { show: true }, label: \''.dol_escape_js($serie['label']).'\', data: '.json_encode($serie['data']).'}'."\n";
    -					$outputserie++; $i++;
    -				}
    -				print '];
    -				var dataticks = '.json_encode($data['xlabel']).'
    -
    -				function plotWithOptions() {
    -					$.plot(jQuery("#'.$htmlid.'"), data,
    -					{
    -						series: {
    -							stack: 0
    -						},
    -						zoom: {
    -							interactive: true
    -						},
    -						pan: {
    -							interactive: true
    -						},';
    -						if (count($datacolor))
    -						{
    -							print 'colors: '.json_encode($datacolor).',';
    -						}
    -						print 'legend: {show: '.($showlegend?'true':'false').'},
    -						xaxis: {ticks: dataticks}
    -					});
    -				}
    -				plotWithOptions();
    -			});
    -			</script>';
    -		}
    -		else print 'BadValueForParameterType';
    -	}
    -}
    -
     /**
      *	Truncate a string to a particular length adding '...' if string larger than length.
      * 	If length = max length+1, we do no truncate to avoid having just 1 char replaced with '...'.
    @@ -3048,7 +2878,7 @@ function dol_print_graph($htmlid,$width,$height,$data,$showlegend=0,$type='pie',
      *	@param	string	$trunc				Where to trunc: right, left, middle (size must be a 2 power), wrap
      * 	@param	string	$stringencoding		Tell what is source string encoding
      *  @param	int		$nodot				Truncation do not add ... after truncation. So it's an exact truncation.
    - *  @param  int     $display            Trunc is use to display and can be changed for small screen. TODO Remove this param (must be dealt with CSS)
    + *  @param  int     $display            Trunc is used to display data and can be changed for small screen. TODO Remove this param (must be dealt with CSS)
      *	@return string						Truncated string. WARNING: length is never higher than $size if $nodot is set, but can be 3 chars higher otherwise.
      */
     function dol_trunc($string,$size=40,$trunc='right',$stringencoding='UTF-8',$nodot=0, $display=0)
    @@ -3115,8 +2945,8 @@ function dol_trunc($string,$size=40,$trunc='right',$stringencoding='UTF-8',$nodo
      *	@param		boolean|int	$pictoisfullpath	If true or 1, image path is a full path
      *	@param		int			$srconly			Return only content of the src attribute of img.
      *  @param		int			$notitle			1=Disable tag title. Use it if you add js tooltip, to avoid duplicate tooltip.
    - *  @param		string		$alt				Force alt for bind peoplae
    - *  @param		string		$morecss			Add more class css on img tag (For example 'myclascss')
    + *  @param		string		$alt				Force alt for bind people
    + *  @param		string		$morecss			Add more class css on img tag (For example 'myclascss'). Work only if $moreatt is empty.
      *  @return     string       				    Return img tag
      *  @see        #img_object, #img_picto_common
      */
    @@ -3142,12 +2972,14 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
     
     		//if (in_array($picto, array('switch_off', 'switch_on', 'off', 'on')))
     		if (empty($srconly) && in_array($pictowithoutext, array(
    -				'bank', 'close_title', 'delete', 'edit', 'ellipsis-h', 'filter', 'grip', 'grip_title', 'off', 'on', 'play', 'playdisabled', 'printer', 'resize',
    -				'switch_off', 'switch_on', 'unlink', 'uparrow')
    -			)) {
    +				'bank', 'close_title', 'delete', 'edit', 'ellipsis-h', 'filter', 'grip', 'grip_title', 'list', 'listlight', 'off', 'on', 'play', 'playdisabled', 'printer', 'resize',
    +				'note', 'split', 'switch_off', 'switch_on', 'unlink', 'uparrow', '1downarrow', '1uparrow',
    +				'jabber','skype','twitter','facebook'
    +			)
    +		)) {
     			$fakey = $pictowithoutext;
    -			$facolor = '';
    -			$fasize = '';
    +			$facolor = ''; $fasize = '';
    +			$marginleftonlyshort = 2;
     			if ($pictowithoutext == 'switch_off') {
     				$fakey = 'fa-toggle-off';
     				$facolor = '#999';
    @@ -3186,6 +3018,12 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
     			}
     			elseif ($pictowithoutext == 'grip_title' || $pictowithoutext == 'grip') {
     				$fakey = 'fa-arrows';
    +				if (! empty($conf->global->MAIN_USE_FONT_AWESOME_5)) $fakey = 'fa-arrows-alt';
    +			}
    +			elseif ($pictowithoutext == 'listlight') {
    +				$fakey = 'fa-download';
    +				$facolor = '#999';
    +				$marginleftonlyshort=1;
     			}
     			elseif ($pictowithoutext == 'printer') {
     				$fakey = 'fa-print';
    @@ -3196,10 +3034,23 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
     				$fakey = 'fa-crop';
     				$facolor = '#444';
     			}
    +			elseif ($pictowithoutext == 'note') {
    +				$fakey = 'fa-sticky-note-o';
    +				$facolor = '#999';
    +				$marginleftonlyshort=1;
    +			}
     			elseif ($pictowithoutext == 'uparrow') {
     				$fakey = 'fa-mail-forward';
     				$facolor = '#555';
     			}
    +			elseif ($pictowithoutext == '1uparrow') {
    +				$fakey = 'fa-caret-up';
    +				$marginleftonlyshort = 1;
    +			}
    +			elseif ($pictowithoutext == '1downarrow') {
    +				$fakey = 'fa-caret-down';
    +				$marginleftonlyshort = 1;
    +			}
     			elseif ($pictowithoutext == 'unlink')     {
     				$fakey = 'fa-chain-broken';
     				$facolor = '#555';
    @@ -3208,15 +3059,29 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
     				$fakey = 'fa-play';
     				$facolor = '#ccc';
     			}
    +			elseif ($pictowithoutext == 'play') {
    +				$fakey = 'fa-play';
    +				$facolor = '#444';
    +			}
    +			elseif ($pictowithoutext == 'jabber') {
    +				$fakey = 'fa-comment-o';
    +			}
    +			elseif ($pictowithoutext == 'split') {
    +			    $fakey = 'fa-code-fork';
    +			}
     			else {
     				$fakey = 'fa-'.$pictowithoutext;
     				$facolor = '#444';
    +				$marginleftonlyshort=0;
     			}
     
    +            $reg=array();
     			if (preg_match('/class="([^"]+)"/', $moreatt, $reg)) {
     				$morecss.= ($morecss?' ':'').$reg[1];
     			}
    -			$enabledisablehtml = '<span class="fa '.$fakey.' marginleftonly valignmiddle'.($morecss?' '.$morecss:'').'" style="'.($fasize?('font-size: '.$fasize.';'):'').($facolor?(' color: '.$facolor.';'):'').'" alt="'.dol_escape_htmltag($titlealt).'" title="'.dol_escape_htmltag($titlealt).'"'.($moreatt?' '.$moreatt:'').'>';
    +			$fa='fa';
    +			if (! empty($conf->global->MAIN_USE_FONT_AWESOME_5)) $fa='fas';
    +			$enabledisablehtml = '<span class="'.$fa.' '.$fakey.' '.($marginleftonlyshort?($marginleftonlyshort==1?'marginleftonlyshort':'marginleftonly'):'').' valignmiddle'.($morecss?' '.$morecss:'').'" style="'.($fasize?('font-size: '.$fasize.';'):'').($facolor?(' color: '.$facolor.';'):'').'" alt="'.dol_escape_htmltag($titlealt).'"'.(($notitle || empty($titlealt))?'':' title="'.dol_escape_htmltag($titlealt).'"').($moreatt?' '.$moreatt:'').'>';
     			if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
     				$enabledisablehtml.= $titlealt;
     			}
    @@ -3232,11 +3097,11 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
     			$path = $conf->global->MAIN_OVERWRITE_THEME_RES.'/theme/'.$conf->global->MAIN_OVERWRITE_THEME_RES;  // To allow an external module to overwrite image resources whatever is activated theme
     		}
     		else if (! empty($conf->modules_parts['theme']) && array_key_exists($theme, $conf->modules_parts['theme'])) {
    -			$path = $theme.'/theme/'.$theme;	// If the theme have the same name as the module
    +			$path = $theme.'/theme/'.$theme;     // If the theme have the same name as the module
     		}
     
     		// If we ask an image into $url/$mymodule/img (instead of default path)
    -		if (preg_match('/^([^@]+)@([^@]+)$/i',$picto,$regs)) {
    +		if (preg_match('/^([^@]+)@([^@]+)$/i', $picto, $regs)) {
     			$picto = $regs[1];
     			$path = $regs[2];	// $path is $mymodule
     		}
    @@ -3265,15 +3130,8 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
     	if ($srconly) {
     		return $fullpathpicto;
     	}
    -	else {
     		// tag title is used for tooltip on <a>, tag alt can be used with very simple text on image for bind people
    -		//$tmparray=array(0=>$titlealt);
    -		//if (empty($notitle) && preg_match('/:[^\s0-9]/',$titlealt)) $tmparray=explode(':',$titlealt);		// We explode if we have TextA:TextB. Not if we have TextA: TextB
    -		//$title=$tmparray[0];
    -		//$alt=empty($tmparray[1])?'':$tmparray[1];
    -		$title = $titlealt;
    -		return '<img src="'.$fullpathpicto.'" alt="'.dol_escape_htmltag($alt).'"'.(($notitle || empty($title))?'':' title="'.dol_escape_htmltag($title).'"').($moreatt?' '.$moreatt:' class="inline-block"').'>';	// Alt is used for accessibility, title for popup
    -	}
    +    return '<img src="'.$fullpathpicto.'" alt="'.dol_escape_htmltag($alt).'"'.(($notitle || empty($titlealt))?'':' title="'.dol_escape_htmltag($titlealt).'"').($moreatt?' '.$moreatt:' class="inline-block'.($morecss?' '.$morecss:'').'"').'>';	// Alt is used for accessibility, title for popup
     }
     
     /**
    @@ -3847,8 +3705,8 @@ function dol_print_error($db='',$error='',$errors=null)
     		$langs = new Translate('', $conf);
     		$langs->load("main");
     	}
    -	$langs->load("main");
    -	$langs->load("errors");
    +	// Load translation files required by the page
    +    $langs->loadLangs(array('main', 'errors'));
     
     	if ($_SERVER['DOCUMENT_ROOT'])    // Mode web
     	{
    @@ -3900,7 +3758,6 @@ function dol_print_error($db='',$error='',$errors=null)
     			$out.='> '.$langs->transnoentities("RequestLastAccessInError").":\n".($db->lastqueryerror()?$db->lastqueryerror():$langs->transnoentities("ErrorNoRequestInError"))."\n";
     			$out.='> '.$langs->transnoentities("ReturnCodeLastAccessInError").":\n".($db->lasterrno()?$db->lasterrno():$langs->transnoentities("ErrorNoRequestInError"))."\n";
     			$out.='> '.$langs->transnoentities("InformationLastAccessInError").":\n".($db->lasterror()?$db->lasterror():$langs->transnoentities("ErrorNoRequestInError"))."\n";
    -
     		}
     		$syslog.=", sql=".$db->lastquery();
     		$syslog.=", db_error=".$db->lasterror();
    @@ -4172,10 +4029,10 @@ function load_fiche_titre($titre, $morehtmlright='', $picto='title_generic.png',
     	if ($picto == 'setup') $picto='title_generic.png';
     
     	$return.= "\n";
    -	$return.= '<table '.($id?'id="'.$id.'" ':'').'summary="" class="centpercent notopnoleftnoright'.($morecssontable?' '.$morecssontable:'').'" style="margin-bottom: 2px;"><tr>';
    +	$return.= '<table '.($id?'id="'.$id.'" ':'').'summary="" class="centpercent notopnoleftnoright'.($morecssontable?' '.$morecssontable:'').'" style="margin-bottom: 6px;"><tr>';	// maring bottom must be same than into print_barre_list
     	if ($picto) $return.= '<td class="nobordernopadding widthpictotitle opacityhigh" valign="middle">'.img_picto('',$picto, 'class="valignmiddle widthpictotitle pictotitle"', $pictoisfullpath).'</td>';
    -	$return.= '<td class="nobordernopadding" valign="middle">';
    -	$return.= '<div class="titre">'.$titre.'</div>';
    +	$return.= '<td class="nobordernopadding valignmiddle">';
    +	$return.= '<div class="titre inline-block">'.$titre.'</div>';
     	$return.= '</td>';
     	if (dol_strlen($morehtmlcenter))
     	{
    @@ -4234,12 +4091,12 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so
     
     	print "\n";
     	print "<!-- Begin title '".$titre."' -->\n";
    -	print '<table width="100%" border="0" class="notopnoleftnoright'.($morecss?' '.$morecss:'').'" style="margin-bottom: 6px;"><tr>';
    +	print '<table border="0" class="centpercent notopnoleftnoright'.($morecss?' '.$morecss:'').'" style="margin-bottom: 6px;"><tr>';	// maring bottom must be same than into load_fiche_tire
     
     	// Left
     	//if ($picto && $titre) print '<td class="nobordernopadding hideonsmartphone" width="40" align="left" valign="middle">'.img_picto('', $picto, 'id="pictotitle"', $pictoisfullpath).'</td>';
     	print '<td class="nobordernopadding valignmiddle">';
    -	if ($picto && $titre) print img_picto('', $picto, 'class="hideonsmartphone valignmiddle opacityhigh widthpictotitle" id="pictotitle"', $pictoisfullpath);
    +	if ($picto && $titre) print img_picto('', $picto, 'class="hideonsmartphone valignmiddle opacityhigh pictotitle widthpictotitle"', $pictoisfullpath);
     	print '<div class="titre inline-block">'.$titre;
     	if (!empty($titre) && $savtotalnboflines >= 0 && (string) $savtotalnboflines != '') print ' ('.$totalnboflines.')';
     	print '</div></td>';
    @@ -4455,7 +4312,7 @@ function vatrate($rate, $addpercent=false, $info_bits=0, $usestarfornpr=0)
      *		@param	string		$currency_code	To add currency symbol (''=add nothing, 'auto'=Use default currency, 'XXX'=add currency symbols for XXX currency)
      *		@return	string						Chaine avec montant formate
      *
    - *		@see	price2num					Revert function of price
    + *		@see	price2num()					Revert function of price
      */
     function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
     {
    @@ -4518,7 +4375,11 @@ function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerou
     		if ($currency_code == 'auto') $currency_code=$conf->currency;
     
     		$listofcurrenciesbefore=array('USD','GBP','AUD','MXN','PEN','CNY');
    -		if (in_array($currency_code,$listofcurrenciesbefore)) $cursymbolbefore.=$outlangs->getCurrencySymbol($currency_code);
    +		$listoflanguagesbefore=array('nl_NL');
    +		if (in_array($currency_code, $listofcurrenciesbefore) || in_array($outlangs->defaultlang, $listoflanguagesbefore))
    +		{
    +		    $cursymbolbefore.=$outlangs->getCurrencySymbol($currency_code);
    +		}
     		else
     		{
     			$tmpcur=$outlangs->getCurrencySymbol($currency_code);
    @@ -4624,37 +4485,49 @@ function price2num($amount,$rounding='',$alreadysqlnb=0)
      * Output a dimension with best unit
      *
      * @param   float       $dimension      Dimension
    - * @param   int         $unit           Unit of dimension (0, -3, ...)
    + * @param   int         $unit           Unit of dimension (Example: 0=kg, -3=g, 98=ounce, 99=pound, ...)
      * @param   string      $type           'weight', 'volume', ...
      * @param   Translate   $outputlangs    Translate language object
      * @param   int         $round          -1 = non rounding, x = number of decimal
    - * @param   string      $forceunitoutput    'no' or numeric (-3, -6, ...) compared to $unit
    + * @param   string      $forceunitoutput    'no' or numeric (-3, -6, ...) compared to $unit (In most case, this value is value defined into $conf->global->MAIN_WEIGHT_DEFAULT_UNIT)
      * @return  string                      String to show dimensions
      */
     function showDimensionInBestUnit($dimension, $unit, $type, $outputlangs, $round=-1, $forceunitoutput='no')
     {
     	require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
     
    -	if (($forceunitoutput == 'no' && $dimension < 1/10000) || (is_numeric($forceunitoutput) && $forceunitoutput == -6))
    +	if (($forceunitoutput == 'no' && $dimension < 1/10000 && $unit < 90) || (is_numeric($forceunitoutput) && $forceunitoutput == -6))
     	{
     		$dimension = $dimension * 1000000;
     		$unit = $unit - 6;
     	}
    -	elseif (($forceunitoutput == 'no' && $dimension < 1/10) || (is_numeric($forceunitoutput) && $forceunitoutput == -3))
    +	elseif (($forceunitoutput == 'no' && $dimension < 1/10 && $unit < 90) || (is_numeric($forceunitoutput) && $forceunitoutput == -3))
     	{
     		$dimension = $dimension * 1000;
     		$unit = $unit - 3;
     	}
    -	elseif (($forceunitoutput == 'no' && $dimension > 100000000) || (is_numeric($forceunitoutput) && $forceunitoutput == 6))
    +	elseif (($forceunitoutput == 'no' && $dimension > 100000000 && $unit < 90) || (is_numeric($forceunitoutput) && $forceunitoutput == 6))
     	{
     		$dimension = $dimension / 1000000;
     		$unit = $unit + 6;
     	}
    -	elseif (($forceunitoutput == 'no' && $dimension > 100000) || (is_numeric($forceunitoutput) && $forceunitoutput == 3))
    +	elseif (($forceunitoutput == 'no' && $dimension > 100000 && $unit < 90) || (is_numeric($forceunitoutput) && $forceunitoutput == 3))
     	{
     		$dimension = $dimension / 1000;
     		$unit = $unit + 3;
     	}
    +	// Special case when we want output unit into pound or ounce
    +	/* TODO
    +	if ($unit < 90 && $type == 'weight' && is_numeric($forceunitoutput) && (($forceunitoutput == 98) || ($forceunitoutput == 99))
    +	{
    +	    $dimension = // convert dimension from standard unit into ounce or pound
    +	    $unit = $forceunitoutput;
    +	}
    +	if ($unit > 90 && $type == 'weight' && is_numeric($forceunitoutput) && $forceunitoutput < 90)
    +	{
    +	    $dimension = // convert dimension from standard unit into ounce or pound
    +	    $unit = $forceunitoutput;
    +	}*/
     
     	$ret=price($dimension, 0, $outputlangs, 0, 0, $round).' '.measuring_units_string($unit, $type);
     
    @@ -4850,7 +4723,6 @@ function get_localtax_by_third($local)
     	}
     
     	return 0;
    -
     }
     
     
    @@ -4963,7 +4835,6 @@ function getLocalTaxesFromRate($vatrate, $local, $buyer, $seller, $firstparamisi
     		else
     		{
     			return array($obj->localtax1_type, get_localtax($vatrate, 1, $buyer, $seller), $obj->localtax2_type, get_localtax($vatrate, 2, $buyer, $seller), $obj->accountancy_code_sell,$obj->accountancy_code_buy);
    -
     		}
     	}
     
    @@ -5085,8 +4956,6 @@ function get_product_localtax_for_country($idprod, $local, $thirdparty_seller)
     		else
     		{
     			// TODO Read default product vat according to countrycode and product
    -
    -
     		}
     	}
     
    @@ -5147,7 +5016,7 @@ function get_default_tva(Societe $thirdparty_seller, Societe $thirdparty_buyer,
     	$buyer_country_code = $thirdparty_buyer->country_code;
     	$buyer_in_cee = isInEEC($thirdparty_buyer);
     
    -	dol_syslog("get_default_tva: seller use vat=".$seller_use_vat.", seller country=".$seller_country_code.", seller in cee=".$seller_in_cee.", buyer country=".$buyer_country_code.", buyer in cee=".$buyer_in_cee.", idprod=".$idprod.", idprodfournprice=".$idprodfournprice.", SERVICE_ARE_ECOMMERCE_200238EC=".(! empty($conf->global->SERVICES_ARE_ECOMMERCE_200238EC)?$conf->global->SERVICES_ARE_ECOMMERCE_200238EC:''));
    +	dol_syslog("get_default_tva: seller use vat=".$seller_use_vat.", seller country=".$seller_country_code.", seller in cee=".$seller_in_cee.", buyer vat number=".$thirdparty_buyer->tva_intra." buyer country=".$buyer_country_code.", buyer in cee=".$buyer_in_cee.", idprod=".$idprod.", idprodfournprice=".$idprodfournprice.", SERVICE_ARE_ECOMMERCE_200238EC=".(! empty($conf->global->SERVICES_ARE_ECOMMERCE_200238EC)?$conf->global->SERVICES_ARE_ECOMMERCE_200238EC:''));
     
     	// If services are eServices according to EU Council Directive 2002/38/EC (http://ec.europa.eu/taxation_customs/taxation/vat/traders/e-commerce/article_1610_en.htm)
     	// we use the buyer VAT.
    @@ -5198,8 +5067,7 @@ function get_default_tva(Societe $thirdparty_seller, Societe $thirdparty_buyer,
     	}
     
     	// Si (vendeur en France et acheteur hors Communaute europeenne et acheteur particulier) alors TVA par defaut=TVA du produit vendu. Fin de regle
    -	if (! empty($conf->global->MAIN_USE_VAT_OF_PRODUCT_FOR_INDIVIDUAL_CUSTOMER_OUT_OF_EEC) && empty($buyer_in_cee) && !$thirdparty_buyer->isACompany())
    -	{
    +	if (! empty($conf->global->MAIN_USE_VAT_OF_PRODUCT_FOR_INDIVIDUAL_CUSTOMER_OUT_OF_EEC) && empty($buyer_in_cee) && !$thirdparty_buyer->isACompany()) {
     		return get_product_vat_for_country($idprod,$thirdparty_seller,$idprodfournprice);
     	}
     
    @@ -5570,7 +5438,6 @@ function dolGetFirstLineOfText($text, $nboflines=1)
     		{
     			$firstline=preg_replace('/<br[^>]*>.*$/s','',$text);		// The s pattern modifier means the . can match newline characters
     			$firstline=preg_replace('/<div[^>]*>.*$/s','',$firstline);	// The s pattern modifier means the . can match newline characters
    -
     		}
     		else
     		{
    @@ -5867,22 +5734,31 @@ function dol_textishtml($msg,$option=0)
      *  text1 txt  + text2 html => dol_nl2br(text1) + '<br>' + text2
      *  text1 txt  + text2 txt  => text1 + '\n' + text2
      *
    - *  @param	string	$text1		Text 1
    - *  @param	string	$text2		Text 2
    - *  @param  bool	$forxml     false=Use <br>, true=Use <br />
    - *  @return	string				Text 1 + new line + Text2
    + *  @param  string  $text1          Text 1
    + *  @param  string  $text2          Text 2
    + *  @param  bool    $forxml         false=Use <br>instead of \n if html content detected, true=Use <br /> instead of \n if html content detected
    + *  @param  bool    $invert         invert order of description lines if CONF CHANGE_ORDER_CONCAT_DESCRIPTION is active
    + *  @return string                  Text 1 + new line + Text2
      *  @see    dol_textishtml
      */
    -function dol_concatdesc($text1,$text2,$forxml=false)
    +function dol_concatdesc($text1,$text2,$forxml=false, $invert=false)
     {
    -	$ret='';
    -	$ret.= (! dol_textishtml($text1) && dol_textishtml($text2))?dol_nl2br($text1, 0, $forxml):$text1;
    -	$ret.= (! empty($text1) && ! empty($text2)) ? ((dol_textishtml($text1) || dol_textishtml($text2))?($forxml?"<br \>\n":"<br>\n") : "\n") : "";
    -	$ret.= (dol_textishtml($text1) && ! dol_textishtml($text2))?dol_nl2br($text2, 0, $forxml):$text2;
    -	return $ret;
    +        if (!empty($invert))
    +        {
    +                $tmp = $text1;
    +                $text1 = $text2;
    +                $text2 = $tmp;
    +        }
    +
    +        $ret='';
    +        $ret.= (! dol_textishtml($text1) && dol_textishtml($text2))?dol_nl2br($text1, 0, $forxml):$text1;
    +        $ret.= (! empty($text1) && ! empty($text2)) ? ((dol_textishtml($text1) || dol_textishtml($text2))?($forxml?"<br \>\n":"<br>\n") : "\n") : "";
    +        $ret.= (dol_textishtml($text1) && ! dol_textishtml($text2))?dol_nl2br($text2, 0, $forxml):$text2;
    +        return $ret;
     }
     
     
    +
     /**
      * Return array of possible common substitutions. This includes several families like: 'system', 'mycompany', 'object', 'objectamount', 'date', 'user'
      *
    @@ -5962,7 +5838,7 @@ function getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $ob
     			$substitutionarray['__THIRDPARTY_NAME_ALIAS__'] = '__THIRDPARTY_NAME_ALIAS__';
     			$substitutionarray['__THIRDPARTY_EMAIL__'] = '__THIRDPARTY_EMAIL__';
     
    -			if (is_object($object) && $object->element == 'member')
    +			if (! empty($conf->adherent->enabled))
     			{
     				$substitutionarray['__MEMBER_ID__'] = '__MEMBER_ID__';
     				$substitutionarray['__MEMBER_CIVILITY__'] = '__MEMBER_CIVILITY__';
    @@ -5986,9 +5862,13 @@ function getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $ob
     			$substitutionarray['__SECUREKEYPAYMENT_INVOICE__'] = 'Security key for payment on an invoice';
     			$substitutionarray['__SECUREKEYPAYMENT_CONTRACTLINE__'] = 'Security key for payment on a a service';
     
    -			if (is_object($object) && $object->element == 'shipping')
    +			$substitutionarray['__DIRECTDOWNLOAD_URL_PROPOSAL__'] = 'Direct download url of a proposal';
    +			$substitutionarray['__DIRECTDOWNLOAD_URL_ORDER__'] = 'Direct download url of an order';
    +			$substitutionarray['__DIRECTDOWNLOAD_URL_INVOICE__'] = 'Direct download url of an invoice';
    +
    +			if (! empty($conf->expedition->enabled))
     			{
    -				$substitutionarray['__SHIPPINGTRACKNUM__']='Shipping tacking number';
    +			    $substitutionarray['__SHIPPINGTRACKNUM__']='Shipping tacking number';
     				$substitutionarray['__SHIPPINGTRACKNUMURL__']='Shipping tracking url';
     			}
     		}
    @@ -5996,38 +5876,41 @@ function getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $ob
     		{
     			$substitutionarray['__ID__'] = $object->id;
     			$substitutionarray['__REF__'] = $object->ref;
    -			$substitutionarray['__REFCLIENT__'] = (isset($object->ref_client) ? $object->ref_client : (isset($object->ref_customer) ? $object->ref_customer : ''));
    -			$substitutionarray['__REFSUPPLIER__'] = (isset($object->ref_supplier) ? $object->ref_supplier : '');
    +			$substitutionarray['__REFCLIENT__'] = (isset($object->ref_client) ? $object->ref_client : (isset($object->ref_customer) ? $object->ref_customer : null));
    +			$substitutionarray['__REFSUPPLIER__'] = (isset($object->ref_supplier) ? $object->ref_supplier : null);
     
    -			// TODO Use this ?
    +			// TODO Remove this
     			$msgishtml = 0;
     
     			$birthday = dol_print_date($object->birth,'day');
     
    -			$substitutionarray['__MEMBER_ID__']=$object->id;
    -			if (method_exists($object, 'getCivilityLabel')) $substitutionarray['__MEMBER_CIVILITY__'] = $object->getCivilityLabel();
    -			$substitutionarray['__MEMBER_FIRSTNAME__']=$msgishtml?dol_htmlentitiesbr($object->firstname):$object->firstname;
    -			$substitutionarray['__MEMBER_LASTNAME__']=$msgishtml?dol_htmlentitiesbr($object->lastname):$object->lastname;
    -			if (method_exists($object, 'getFullName')) $substitutionarray['__MEMBER_FULLNAME__']=$msgishtml?dol_htmlentitiesbr($object->getFullName($outputlangs)):$object->getFullName($outputlangs);
    -			$substitutionarray['__MEMBER_COMPANY__']=$msgishtml?dol_htmlentitiesbr($object->societe):$object->societe;
    -			$substitutionarray['__MEMBER_ADDRESS__']=$msgishtml?dol_htmlentitiesbr($object->address):$object->address;
    -			$substitutionarray['__MEMBER_ZIP__']=$msgishtml?dol_htmlentitiesbr($object->zip):$object->zip;
    -			$substitutionarray['__MEMBER_TOWN__']=$msgishtml?dol_htmlentitiesbr($object->town):$object->town;
    -			$substitutionarray['__MEMBER_COUNTRY__']=$msgishtml?dol_htmlentitiesbr($object->country):$object->country;
    -			$substitutionarray['__MEMBER_EMAIL__']=$msgishtml?dol_htmlentitiesbr($object->email):$object->email;
    -			$substitutionarray['__MEMBER_BIRTH__']=$msgishtml?dol_htmlentitiesbr($birthday):$birthday;
    -			$substitutionarray['__MEMBER_PHOTO__']=$msgishtml?dol_htmlentitiesbr($object->photo):$object->photo;
    -			$substitutionarray['__MEMBER_LOGIN__']=$msgishtml?dol_htmlentitiesbr($object->login):$object->login;
    -			$substitutionarray['__MEMBER_PASSWORD__']=$msgishtml?dol_htmlentitiesbr($object->pass):$object->pass;
    -			$substitutionarray['__MEMBER_PHONE__']=$msgishtml?dol_htmlentitiesbr($object->phone):$object->phone;
    -			$substitutionarray['__MEMBER_PHONEPRO__']=$msgishtml?dol_htmlentitiesbr($object->phone_perso):$object->phone_perso;
    -			$substitutionarray['__MEMBER_PHONEMOBILE__']=$msgishtml?dol_htmlentitiesbr($object->phone_mobile):$object->phone_mobile;
    -			$substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE__']       = dol_print_date($object->first_subscription_date, 'dayrfc');
    -			$substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE_START__'] = dol_print_date($object->first_subscription_date_start, 'dayrfc');
    -			$substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE_END__']   = dol_print_date($object->first_subscription_date_end, 'dayrfc');
    -			$substitutionarray['__MEMBER_LAST_SUBSCRIPTION_DATE__']        = dol_print_date($object->last_subscription_date, 'dayrfc');
    -			$substitutionarray['__MEMBER_LAST_SUBSCRIPTION_DATE_START__']  = dol_print_date($object->last_subscription_date_start, 'dayrfc');
    -			$substitutionarray['__MEMBER_LAST_SUBSCRIPTION_DATE_END__']    = dol_print_date($object->last_subscription_date_end, 'dayrfc');
    +			if ($object->id > 0)
    +			{
    +				$substitutionarray['__MEMBER_ID__']=$object->id;
    +				if (method_exists($object, 'getCivilityLabel')) $substitutionarray['__MEMBER_CIVILITY__'] = $object->getCivilityLabel();
    +				$substitutionarray['__MEMBER_FIRSTNAME__']=$msgishtml?dol_htmlentitiesbr($object->firstname):$object->firstname;
    +				$substitutionarray['__MEMBER_LASTNAME__']=$msgishtml?dol_htmlentitiesbr($object->lastname):$object->lastname;
    +				if (method_exists($object, 'getFullName')) $substitutionarray['__MEMBER_FULLNAME__']=$msgishtml?dol_htmlentitiesbr($object->getFullName($outputlangs)):$object->getFullName($outputlangs);
    +				$substitutionarray['__MEMBER_COMPANY__']=$msgishtml?dol_htmlentitiesbr($object->societe):$object->societe;
    +				$substitutionarray['__MEMBER_ADDRESS__']=$msgishtml?dol_htmlentitiesbr($object->address):$object->address;
    +				$substitutionarray['__MEMBER_ZIP__']=$msgishtml?dol_htmlentitiesbr($object->zip):$object->zip;
    +				$substitutionarray['__MEMBER_TOWN__']=$msgishtml?dol_htmlentitiesbr($object->town):$object->town;
    +				$substitutionarray['__MEMBER_COUNTRY__']=$msgishtml?dol_htmlentitiesbr($object->country):$object->country;
    +				$substitutionarray['__MEMBER_EMAIL__']=$msgishtml?dol_htmlentitiesbr($object->email):$object->email;
    +				$substitutionarray['__MEMBER_BIRTH__']=$msgishtml?dol_htmlentitiesbr($birthday):$birthday;
    +				$substitutionarray['__MEMBER_PHOTO__']=$msgishtml?dol_htmlentitiesbr($object->photo):$object->photo;
    +				$substitutionarray['__MEMBER_LOGIN__']=$msgishtml?dol_htmlentitiesbr($object->login):$object->login;
    +				$substitutionarray['__MEMBER_PASSWORD__']=$msgishtml?dol_htmlentitiesbr($object->pass):$object->pass;
    +				$substitutionarray['__MEMBER_PHONE__']=$msgishtml?dol_htmlentitiesbr($object->phone):$object->phone;
    +				$substitutionarray['__MEMBER_PHONEPRO__']=$msgishtml?dol_htmlentitiesbr($object->phone_perso):$object->phone_perso;
    +				$substitutionarray['__MEMBER_PHONEMOBILE__']=$msgishtml?dol_htmlentitiesbr($object->phone_mobile):$object->phone_mobile;
    +				$substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE__']       = dol_print_date($object->first_subscription_date, 'dayrfc');
    +				$substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE_START__'] = dol_print_date($object->first_subscription_date_start, 'dayrfc');
    +				$substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE_END__']   = dol_print_date($object->first_subscription_date_end, 'dayrfc');
    +				$substitutionarray['__MEMBER_LAST_SUBSCRIPTION_DATE__']        = dol_print_date($object->last_subscription_date, 'dayrfc');
    +				$substitutionarray['__MEMBER_LAST_SUBSCRIPTION_DATE_START__']  = dol_print_date($object->last_subscription_date_start, 'dayrfc');
    +				$substitutionarray['__MEMBER_LAST_SUBSCRIPTION_DATE_END__']    = dol_print_date($object->last_subscription_date_end, 'dayrfc');
    +			}
     
     			if (is_object($object) && $object->element == 'societe')
     			{
    @@ -6059,17 +5942,20 @@ function getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $ob
     
     			if (is_object($object) && $object->element == 'contrat' && is_array($object->lines))
     			{
    -				$dateplannedstart='';
    -				$datenextexpiration='';
    -				foreach($object->lines as $line)
    +				if ($object->id > 0)
     				{
    -					if ($line->date_ouverture_prevue > $dateplannedstart) $dateplannedstart = $line->date_ouverture_prevue;
    -					if ($line->statut == 4 && $line->date_fin_prevue && (! $datenextexpiration || $line->date_fin_prevue < $datenextexpiration)) $datenextexpiration = $line->date_fin_prevue;
    +					$dateplannedstart='';
    +					$datenextexpiration='';
    +					foreach($object->lines as $line)
    +					{
    +						if ($line->date_ouverture_prevue > $dateplannedstart) $dateplannedstart = $line->date_ouverture_prevue;
    +						if ($line->statut == 4 && $line->date_fin_prevue && (! $datenextexpiration || $line->date_fin_prevue < $datenextexpiration)) $datenextexpiration = $line->date_fin_prevue;
    +					}
    +					$substitutionarray['__CONTRACT_HIGHEST_PLANNED_START_DATE__'] = dol_print_date($dateplannedstart, 'dayrfc');
    +					$substitutionarray['__CONTRACT_HIGHEST_PLANNED_START_DATETIME__'] = dol_print_date($dateplannedstart, 'standard');
    +					$substitutionarray['__CONTRACT_LOWEST_EXPIRATION_DATE__'] = dol_print_date($datenextexpiration, 'dayrfc');
    +					$substitutionarray['__CONTRACT_LOWEST_EXPIRATION_DATETIME__'] = dol_print_date($datenextexpiration, 'standard');
     				}
    -				$substitutionarray['__CONTRACT_HIGHEST_PLANNED_START_DATE__'] = dol_print_date($dateplannedstart, 'dayrfc');
    -				$substitutionarray['__CONTRACT_HIGHEST_PLANNED_START_DATETIME__'] = dol_print_date($dateplannedstart, 'standard');
    -				$substitutionarray['__CONTRACT_LOWEST_EXPIRATION_DATE__'] = dol_print_date($datenextexpiration, 'dayrfc');
    -				$substitutionarray['__CONTRACT_LOWEST_EXPIRATION_DATETIME__'] = dol_print_date($datenextexpiration, 'standard');
     			}
     
     			// Create dynamic tags for __EXTRAFIELD_FIELD__
    @@ -6108,14 +5994,33 @@ function getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $ob
     				$paymenturl=$url;
     			}
     
    -			$substitutionarray['__ONLINE_PAYMENT_TEXT_AND_URL__']=($paymenturl?str_replace('\n', "\n", $outputlangs->trans("PredefinedMailContentLink", $paymenturl)):'');
    -			$substitutionarray['__ONLINE_PAYMENT_URL__']=$paymenturl;
    +			if ($object->id > 0)
    +			{
    +				$substitutionarray['__ONLINE_PAYMENT_TEXT_AND_URL__']=($paymenturl?str_replace('\n', "\n", $outputlangs->trans("PredefinedMailContentLink", $paymenturl)):'');
    +				$substitutionarray['__ONLINE_PAYMENT_URL__']=$paymenturl;
    +
    +				if (! empty($conf->global->PROPOSAL_ALLOW_EXTERNAL_DOWNLOAD) && is_object($object) && $object->element == 'propal')
    +				{
    +					$substitutionarray['__DIRECTDOWNLOAD_URL_PROPOSAL__'] = $object->getLastMainDocLink($object->element);
    +				}
    +				else $substitutionarray['__DIRECTDOWNLOAD_URL_PROPOSAL__'] = '';
    +				if (! empty($conf->global->ORDER_ALLOW_EXTERNAL_DOWNLOAD) && is_object($object) && $object->element == 'commande')
    +				{
    +					$substitutionarray['__DIRECTDOWNLOAD_URL_ORDER__'] = $object->getLastMainDocLink($object->element);
    +				}
    +				else $substitutionarray['__DIRECTDOWNLOAD_URL_ORDER__'] = '';
    +				if (! empty($conf->global->INVOICE_ALLOW_EXTERNAL_DOWNLOAD) && is_object($object) && $object->element == 'facture')
    +				{
    +					$substitutionarray['__DIRECTDOWNLOAD_URL_INVOICE__'] = $object->getLastMainDocLink($object->element);
    +				}
    +				else $substitutionarray['__DIRECTDOWNLOAD_URL_INVOICE__'] = '';
    +			}
     		}
     	}
     	if (empty($exclude) || ! in_array('objectamount', $exclude))
     	{
    -		$substitutionarray['__DATE_YMD__']        = is_object($object)?(isset($object->date) ? dol_print_date($object->date, 'day', 0, $outputlangs) : '') : '';
    -		$substitutionarray['__DATE_DUE_YMD__']    = is_object($object)?(isset($object->date_lim_reglement)? dol_print_date($object->date_lim_reglement, 'day', 0, $outputlangs) : '') : '';
    +		$substitutionarray['__DATE_YMD__']        = is_object($object)?(isset($object->date) ? dol_print_date($object->date, 'day', 0, $outputlangs) : null) : '';
    +		$substitutionarray['__DATE_DUE_YMD__']    = is_object($object)?(isset($object->date_lim_reglement) ? dol_print_date($object->date_lim_reglement, 'day', 0, $outputlangs) : null) : '';
     
     		$substitutionarray['__AMOUNT__']          = is_object($object)?$object->total_ttc:'';
     		$substitutionarray['__AMOUNT_EXCL_TAX__'] = is_object($object)?$object->total_ht:'';
    @@ -6123,11 +6028,11 @@ function getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $ob
     		if ($onlykey != 2 || $mysoc->useLocalTax(1)) $substitutionarray['__AMOUNT_TAX2__']     = is_object($object)?$object->total_localtax1:'';
     		if ($onlykey != 2 || $mysoc->useLocalTax(2)) $substitutionarray['__AMOUNT_TAX3__']     = is_object($object)?$object->total_localtax2:'';
     
    -		$substitutionarray['__AMOUNT_FORMATED__']          = is_object($object)?price($object->total_ttc, 0, $outputlangs, 0, 0, -1, $conf->currency):'';
    -		$substitutionarray['__AMOUNT_EXCL_TAX_FORMATED__'] = is_object($object)?price($object->total_ht, 0, $outputlangs, 0, 0, -1, $conf->currency):'';
    -		$substitutionarray['__AMOUNT_VAT_FORMATED__']      = is_object($object)?($object->total_vat?price($object->total_vat, 0, $outputlangs, 0, 0, -1, $conf->currency):price($object->total_tva, 0, $outputlangs, 0, 0, -1, $conf->currency)):'';
    -		if ($onlykey != 2 || $mysoc->useLocalTax(1)) $substitutionarray['__AMOUNT_TAX2_FORMATED__']     = is_object($object)?price($object->total_localtax1, 0, $outputlangs, 0, 0, -1, $conf->currency):'';
    -		if ($onlykey != 2 || $mysoc->useLocalTax(2)) $substitutionarray['__AMOUNT_TAX3_FORMATED__']     = is_object($object)?price($object->total_localtax2, 0, $outputlangs, 0, 0, -1, $conf->currency):'';
    +		$substitutionarray['__AMOUNT_FORMATED__']          = is_object($object)?($object->total_ttc ? price($object->total_ttc, 0, $outputlangs, 0, 0, -1, $conf->currency) : null):'';
    +		$substitutionarray['__AMOUNT_EXCL_TAX_FORMATED__'] = is_object($object)?($object->total_ht ? price($object->total_ht, 0, $outputlangs, 0, 0, -1, $conf->currency) : null):'';
    +		$substitutionarray['__AMOUNT_VAT_FORMATED__']      = is_object($object)?($object->total_vat ? price($object->total_vat, 0, $outputlangs, 0, 0, -1, $conf->currency): ($object->total_tva ? price($object->total_tva, 0, $outputlangs, 0, 0, -1, $conf->currency) : null)):'';
    +		if ($onlykey != 2 || $mysoc->useLocalTax(1)) $substitutionarray['__AMOUNT_TAX2_FORMATED__']     = is_object($object)? ($object->total_localtax1 ? price($object->total_localtax1, 0, $outputlangs, 0, 0, -1, $conf->currency) : null):'';
    +		if ($onlykey != 2 || $mysoc->useLocalTax(2)) $substitutionarray['__AMOUNT_TAX3_FORMATED__']     = is_object($object)? ($object->total_localtax2 ? price($object->total_localtax2, 0, $outputlangs, 0, 0, -1, $conf->currency) : null):'';
     
     		// TODO Add keys for foreign multicurrency
     
    @@ -6153,7 +6058,13 @@ function getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $ob
     
     		$substitutionarray=array_merge($substitutionarray, array(
     			'__DAY__' => (string) $tmp['mday'],
    +			'__DAY_TEXT__' => $outputlangs->trans('Day'.$tmp['wday']),					// Monday
    +			'__DAY_TEXT_SHORT__' => $outputlangs->trans($tmp['weekday'].'Min'),			// Mon
    +			'__DAY_TEXT_MIN__' => $outputlangs->trans('Short'.$tmp['weekday']),			// M
     			'__MONTH__' => (string) $tmp['mon'],
    +			'__MONTH_TEXT__' => $outputlangs->trans('Month'.sprintf("%02d", $tmp['mon'])),
    +			'__MONTH_TEXT_SHORT__' => $outputlangs->trans('MonthShort'.sprintf("%02d", $tmp['mon'])),
    +			'__MONTH_TEXT_MIN__' => $outputlangs->trans('MonthVeryShort'.sprintf("%02d", $tmp['mon'])),
     			'__YEAR__' => (string) $tmp['year'],
     			'__PREVIOUS_DAY__' => (string) $tmp2['day'],
     			'__PREVIOUS_MONTH__' => (string) $tmp3['month'],
    @@ -6164,16 +6075,16 @@ function getCommonSubstitutionArray($outputlangs, $onlykey=0, $exclude=null, $ob
     		));
     	}
     
    -	if (empty($exclude) || ! in_array('system', $exclude))
    -	{
    -		$substitutionarray['__(AnyTranslationKey)__']=$outputlangs->trans('TranslationOfKey');
    -		$substitutionarray['__[AnyConstantKey]__']=$outputlangs->trans('ValueOfConstant');
    -		$substitutionarray['__DOL_MAIN_URL_ROOT__']=DOL_MAIN_URL_ROOT;
    -	}
     	if (! empty($conf->multicompany->enabled))
     	{
     		$substitutionarray=array_merge($substitutionarray, array('__ENTITY_ID__' => $conf->entity));
     	}
    +	if (empty($exclude) || ! in_array('system', $exclude))
    +	{
    +		$substitutionarray['__DOL_MAIN_URL_ROOT__']=DOL_MAIN_URL_ROOT;
    +		$substitutionarray['__(AnyTranslationKey)__']=$outputlangs->trans('TranslationOfKey');
    +		$substitutionarray['__[AnyConstantKey]__']=$outputlangs->trans('ValueOfConstantKey');
    +	}
     
     	return $substitutionarray;
     }
    @@ -6232,10 +6143,12 @@ function make_substitutions($text, $substitutionarray, $outputlangs=null)
     	// Make substitition for array $substitutionarray
     	foreach ($substitutionarray as $key => $value)
     	{
    +		if (! isset($value)) continue;	// If value is null, it same than not having substitution key at all into array, we do not replace.
    +
     		if ($key == '__SIGNATURE__' && (! empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))) $value='';		// Protection
     		if ($key == '__USER_SIGNATURE__' && (! empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))) $value='';	// Protection
     
    -		$text=str_replace("$key","$value",$text);	// We must keep the " to work when value is 123.5 for example
    +		$text=str_replace("$key", "$value", $text);	// We must keep the " to work when value is 123.5 for example
     	}
     
     	return $text;
    @@ -6353,7 +6266,7 @@ function get_date_range($date_start,$date_end,$format = '',$outputlangs='', $wit
      *
      * @param	string	$firstname		Firstname
      * @param	string	$lastname		Lastname
    - * @param	int		$nameorder		-1=Auto, 0=Lastname+Firstname, 1=Firstname+Lastname, 2=Firstname
    + * @param	int		$nameorder		-1=Auto, 0=Lastname+Firstname, 1=Firstname+Lastname, 2=Firstname, 3=Firstname if defined else lastname
      * @return	string					Firstname + lastname or Lastname + firstname
      */
     function dolGetFirstLastname($firstname,$lastname,$nameorder=-1)
    @@ -6363,15 +6276,19 @@ function dolGetFirstLastname($firstname,$lastname,$nameorder=-1)
     	$ret='';
     	// If order not defined, we use the setup
     	if ($nameorder < 0) $nameorder=(empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)?1:0);
    -	if ($nameorder && ((string) $nameorder != '2'))
    +	if ($nameorder && $nameorder != 2 && $nameorder != 3)
     	{
     		$ret.=$firstname;
     		if ($firstname && $lastname) $ret.=' ';
     		$ret.=$lastname;
     	}
    -	else if ($nameorder == 2)
    +	else if ($nameorder == 2 || $nameorder == 3)
     	{
     	   $ret.=$firstname;
    +	   if (empty($ret) && $nameorder == 3)
    +	   {
    +	   		$ret.=$lastname;
    +	   }
     	}
     	else
     	{
    @@ -6751,26 +6668,27 @@ function dol_getIdFromCode($db, $key, $tablename, $fieldkey='code', $fieldid='id
     	if ($key == '') return '';
     
     	// Check in cache
    -	if (isset($cache_codes[$tablename][$key]))	// Can be defined to 0 or ''
    +	if (isset($cache_codes[$tablename][$key][$fieldid]))	// Can be defined to 0 or ''
     	{
    -		return $cache_codes[$tablename][$key];   // Found in cache
    +		return $cache_codes[$tablename][$key][$fieldid];   // Found in cache
     	}
     
    +	dol_syslog('dol_getIdFromCode (value not found into cache)', LOG_DEBUG);
    +
     	$sql = "SELECT ".$fieldid." as valuetoget";
     	$sql.= " FROM ".MAIN_DB_PREFIX.$tablename;
     	$sql.= " WHERE ".$fieldkey." = '".$db->escape($key)."'";
     	if (! empty($entityfilter))
     		$sql.= " AND entity IN (" . getEntity($tablename) . ")";
     
    -	dol_syslog('dol_getIdFromCode', LOG_DEBUG);
     	$resql = $db->query($sql);
     	if ($resql)
     	{
     		$obj = $db->fetch_object($resql);
    -		if ($obj) $cache_codes[$tablename][$key]=$obj->valuetoget;
    -		else $cache_codes[$tablename][$key]='';
    +		if ($obj) $cache_codes[$tablename][$key][$fieldid]=$obj->valuetoget;
    +		else $cache_codes[$tablename][$key][$fieldid]='';
     		$db->free($resql);
    -		return $cache_codes[$tablename][$key];
    +		return $cache_codes[$tablename][$key][$fieldid];
     	}
     	else
     	{
    @@ -6782,7 +6700,7 @@ function dol_getIdFromCode($db, $key, $tablename, $fieldkey='code', $fieldid='id
      * Verify if condition in string is ok or not
      *
      * @param 	string		$strRights		String with condition to check
    - * @return 	boolean						True or False. Return true if strRights is ''
    + * @return 	boolean						True or False. Return True if strRights is ''
      */
     function verifCond($strRights)
     {
    @@ -6794,13 +6712,8 @@ function verifCond($strRights)
     	$rights = true;
     	if ($strRights != '')
     	{
    -		//$tab_rights = explode('&&', $strRights);
    -		//$i = 0;
    -		//while (($i < count($tab_rights)) && ($rights == true)) {
     		$str = 'if(!(' . $strRights . ')) { $rights = false; }';
    -		dol_eval($str);
    -		//	$i++;
    -		//}
    +		dol_eval($str);		// The dol_eval must contains all the global $xxx used into a condition
     	}
     	return $rights;
     }
    @@ -6817,8 +6730,8 @@ function verifCond($strRights)
     function dol_eval($s, $returnvalue=0, $hideerrors=1)
     {
     	// Only global variables can be changed by eval function and returned to caller
    -	global $db, $langs, $user, $conf;
    -	global $mainmenu, $leftmenu;
    +	global $db, $langs, $user, $conf, $website, $websitepage;
    +	global $action, $mainmenu, $leftmenu;
     	global $rights;
     	global $object;
     	global $mysoc;
    @@ -6863,8 +6776,6 @@ function picto_from_langcode($codelang, $moreatt = '')
     
     	if (empty($codelang)) return '';
     
    -	if (empty($codelang)) return '';
    -
     	if ($codelang == 'auto')
     	{
     		return '<span class="fa fa-globe"></span>';
    @@ -6896,13 +6807,15 @@ function picto_from_langcode($codelang, $moreatt = '')
      */
     function getLanguageCodeFromCountryCode($countrycode)
     {
    -	$countrycodetolanguage = array(
    -		'SA' => 'ar_AR',
    -		'DK' => 'da_DA',
    -		'CA' => 'en_CA',
    -		'SE' => 'sv_SV'
    -	);
    -	if (! empty($countrycodetolanguage[$countrycode])) return $countrycodetolanguage[$countrycode];
    +	global $mysoc;
    +
    +	if (strtoupper($countrycode) == 'MQ') return 'fr_CA';
    +	if (strtoupper($countrycode) == 'SE') return 'sv_SE';	// se_SE is Sami/Sweden, and we want in priority sv_SE for SE country
    +	if (strtoupper($countrycode) == 'CH')
    +	{
    +		if ($mysoc->country_code == 'FR') return 'fr_CH';
    +		if ($mysoc->country_code == 'DE') return 'de_CH';
    +	}
     
     	// Locale list taken from:
     	// http://stackoverflow.com/questions/3191664/
    @@ -6920,7 +6833,6 @@ function getLanguageCodeFromCountryCode($countrycode)
     		'ar-LB',
     		'ar-LY',
     		'ar-MA',
    -		'arn-CL',
     		'ar-OM',
     		'ar-QA',
     		'ar-SA',
    @@ -6928,8 +6840,6 @@ function getLanguageCodeFromCountryCode($countrycode)
     		'ar-TN',
     		'ar-YE',
     		'as-IN',
    -		'az-Cyrl-AZ',
    -		'az-Latn-AZ',
     		'ba-RU',
     		'be-BY',
     		'bg-BG',
    @@ -6937,8 +6847,6 @@ function getLanguageCodeFromCountryCode($countrycode)
     		'bn-IN',
     		'bo-CN',
     		'br-FR',
    -		'bs-Cyrl-BA',
    -		'bs-Latn-BA',
     		'ca-ES',
     		'co-FR',
     		'cs-CZ',
    @@ -6949,10 +6857,8 @@ function getLanguageCodeFromCountryCode($countrycode)
     		'de-DE',
     		'de-LI',
     		'de-LU',
    -		'dsb-DE',
     		'dv-MV',
     		'el-GR',
    -		'en-029',
     		'en-AU',
     		'en-BZ',
     		'en-CA',
    @@ -6992,7 +6898,6 @@ function getLanguageCodeFromCountryCode($countrycode)
     		'eu-ES',
     		'fa-IR',
     		'fi-FI',
    -		'fil-PH',
     		'fo-FO',
     		'fr-BE',
     		'fr-CA',
    @@ -7004,14 +6909,11 @@ function getLanguageCodeFromCountryCode($countrycode)
     		'ga-IE',
     		'gd-GB',
     		'gl-ES',
    -		'gsw-FR',
     		'gu-IN',
    -		'ha-Latn-NG',
     		'he-IL',
     		'hi-IN',
     		'hr-BA',
     		'hr-HR',
    -		'hsb-DE',
     		'hu-HU',
     		'hy-AM',
     		'id-ID',
    @@ -7020,15 +6922,12 @@ function getLanguageCodeFromCountryCode($countrycode)
     		'is-IS',
     		'it-CH',
     		'it-IT',
    -		'iu-Cans-CA',
    -		'iu-Latn-CA',
     		'ja-JP',
     		'ka-GE',
     		'kk-KZ',
     		'kl-GL',
     		'km-KH',
     		'kn-IN',
    -		'kok-IN',
     		'ko-KR',
     		'ky-KG',
     		'lb-LU',
    @@ -7039,8 +6938,6 @@ function getLanguageCodeFromCountryCode($countrycode)
     		'mk-MK',
     		'ml-IN',
     		'mn-MN',
    -		'mn-Mong-CN',
    -		'moh-CA',
     		'mr-IN',
     		'ms-BN',
     		'ms-MY',
    @@ -7050,24 +6947,17 @@ function getLanguageCodeFromCountryCode($countrycode)
     		'nl-BE',
     		'nl-NL',
     		'nn-NO',
    -		'nso-ZA',
     		'oc-FR',
     		'or-IN',
     		'pa-IN',
     		'pl-PL',
    -		'prs-AF',
     		'ps-AF',
     		'pt-BR',
     		'pt-PT',
    -		'qut-GT',
    -		'quz-BO',
    -		'quz-EC',
    -		'quz-PE',
     		'rm-CH',
     		'ro-RO',
     		'ru-RU',
     		'rw-RW',
    -		'sah-RU',
     		'sa-IN',
     		'se-FI',
     		'se-NO',
    @@ -7075,39 +6965,20 @@ function getLanguageCodeFromCountryCode($countrycode)
     		'si-LK',
     		'sk-SK',
     		'sl-SI',
    -		'sma-NO',
    -		'sma-SE',
    -		'smj-NO',
    -		'smj-SE',
    -		'smn-FI',
    -		'sms-FI',
     		'sq-AL',
    -		'sr-Cyrl-BA',
    -		'sr-Cyrl-CS',
    -		'sr-Cyrl-ME',
    -		'sr-Cyrl-RS',
    -		'sr-Latn-BA',
    -		'sr-Latn-CS',
    -		'sr-Latn-ME',
    -		'sr-Latn-RS',
     		'sv-FI',
     		'sv-SE',
     		'sw-KE',
    -		'syr-SY',
     		'ta-IN',
     		'te-IN',
    -		'tg-Cyrl-TJ',
     		'th-TH',
     		'tk-TM',
     		'tn-ZA',
     		'tr-TR',
     		'tt-RU',
    -		'tzm-Latn-DZ',
     		'ug-CN',
     		'uk-UA',
     		'ur-PK',
    -		'uz-Cyrl-UZ',
    -		'uz-Latn-UZ',
     		'vi-VN',
     		'wo-SN',
     		'xh-ZA',
    @@ -7120,14 +6991,17 @@ function getLanguageCodeFromCountryCode($countrycode)
     		'zu-ZA',
     	);
     
    +	$buildprimarykeytotest = strtolower($countrycode).'-'.strtoupper($countrycode);
    +	if (in_array($buildprimarykeytotest, $locales)) return strtolower($countrycode).'_'.strtoupper($countrycode);
    +
     	foreach ($locales as $locale)
     	{
    -		$locale_region = locale_get_region($locale);
     		$locale_language = locale_get_primary_language($locale);
    -		$locale_array = array('language' => $locale_language, 'region' => $locale_region);
    +		$locale_region = locale_get_region($locale);
     		if (strtoupper($countrycode) == $locale_region)
     		{
    -			return locale_compose($locale_array);
    +			//var_dump($locale.'-'.$locale_language.'-'.$locale_region);
    +			return strtolower($locale_language).'_'.strtoupper($locale_region);
     		}
     	}
     
    @@ -7223,7 +7097,7 @@ function complete_head_from_modules($conf,$langs,$object,&$head,&$h,$type,$mode=
     				foreach($head as $key => $val)
     				{
     					$condition = (! empty($values[3]) ? verifCond($values[3]) : 1);
    -					//var_dump($key.' - '.$tabname.' - '.$head[$key][2].' - '.$condition);
    +					//var_dump($key.' - '.$tabname.' - '.$head[$key][2].' - '.$values[3].' - '.$condition);
     					if ($head[$key][2]==$tabname && $condition)
     					{
     						unset($head[$key]);
    @@ -7260,7 +7134,8 @@ function complete_head_from_modules($conf,$langs,$object,&$head,&$h,$type,$mode=
      */
     function printCommonFooter($zone='private')
     {
    -	global $conf, $hookmanager;
    +	global $conf, $hookmanager, $user;
    +	global $action;
     	global $micro_start_time;
     
     	if ($zone == 'private') print "\n".'<!-- Common footer for private page -->'."\n";
    @@ -7280,11 +7155,12 @@ function printCommonFooter($zone='private')
     		if (! empty($conf->use_javascript_ajax))
     		{
     			print '<script type="text/javascript" language="javascript">'."\n";
    +			print 'jQuery(document).ready(function() {'."\n";
     
     			if ($zone == 'private' && empty($conf->dol_use_jmobile))
     			{
     				print "\n";
    -				print '/* JS CODE TO ENABLE to enable handler to switch left menu page (menuhider) */'."\n";
    +				print '/* JS CODE TO ENABLE to manage handler to switch left menu page (menuhider) */'."\n";
     				print 'jQuery(".menuhider").click(function() {';
     				print '  console.log("We click on .menuhider");'."\n";
     				//print "  $('.side-nav').animate({width:'toggle'},200);\n";     // OK with eldy theme but not with md
    @@ -7293,7 +7169,82 @@ function printCommonFooter($zone='private')
     				print '});'."\n";
     			}
     
    -			// Google Analytics (need Google module)
    +			// Management of focus and mandatory for fields
    +			if ($action == 'create' || $action == 'edit' || (empty($action) && (preg_match('/new\.php/', $_SERVER["PHP_SELF"]))))
    +			{
    +				print '/* JS CODE TO ENABLE to manage focus and mandatory form fields */'."\n";
    +				$relativepathstring = $_SERVER["PHP_SELF"];
    +				// Clean $relativepathstring
    +				if (constant('DOL_URL_ROOT')) $relativepathstring = preg_replace('/^'.preg_quote(constant('DOL_URL_ROOT'),'/').'/', '', $relativepathstring);
    +				$relativepathstring = preg_replace('/^\//', '', $relativepathstring);
    +				$relativepathstring = preg_replace('/^custom\//', '', $relativepathstring);
    +				$tmpqueryarraywehave=explode('&', dol_string_nohtmltag($_SERVER['QUERY_STRING']));
    +				if (!empty($user->default_values[$relativepathstring]['focus']))
    +				{
    +					foreach($user->default_values[$relativepathstring]['focus'] as $defkey => $defval)
    +					{
    +						$qualified = 0;
    +						if ($defkey != '_noquery_')
    +						{
    +							$tmpqueryarraytohave=explode('&', $defkey);
    +							$foundintru=0;
    +							foreach($tmpqueryarraytohave as $tmpquerytohave)
    +							{
    +								if (! in_array($tmpquerytohave, $tmpqueryarraywehave)) $foundintru=1;
    +							}
    +							if (! $foundintru) $qualified=1;
    +							//var_dump($defkey.'-'.$qualified);
    +						}
    +						else $qualified = 1;
    +
    +						if ($qualified)
    +						{
    +							foreach($defval as $paramkey => $paramval)
    +							{
    +								// Set focus on field
    +								print 'jQuery("input[name=\''.$paramkey.'\']").focus();'."\n";
    +								print 'jQuery("textarea[name=\''.$paramkey.'\']").focus();'."\n";
    +								print 'jQuery("select[name=\''.$paramkey.'\']").focus();'."\n";		// Not really usefull, but we keep it in case of.
    +							}
    +						}
    +					}
    +				}
    +				if (!empty($user->default_values[$relativepathstring]['mandatory']))
    +				{
    +					foreach($user->default_values[$relativepathstring]['mandatory'] as $defkey => $defval)
    +					{
    +						$qualified = 0;
    +						if ($defkey != '_noquery_')
    +						{
    +							$tmpqueryarraytohave=explode('&', $defkey);
    +							$foundintru=0;
    +							foreach($tmpqueryarraytohave as $tmpquerytohave)
    +							{
    +								if (! in_array($tmpquerytohave, $tmpqueryarraywehave)) $foundintru=1;
    +							}
    +							if (! $foundintru) $qualified=1;
    +							//var_dump($defkey.'-'.$qualified);
    +						}
    +						else $qualified = 1;
    +
    +						if ($qualified)
    +						{
    +							foreach($defval as $paramkey => $paramval)
    +							{
    +								// Add property 'required' on input
    +								print 'jQuery("input[name=\''.$paramkey.'\']").prop(\'required\',true);'."\n";
    +								print 'jQuery("textarea[name=\''.$paramkey.'\']").prop(\'required\',true);'."\n";
    +								print 'jQuery("select[name=\''.$paramkey.'\']").prop(\'required\',true);'."\n";		// required on a select works only if key is "", this does not happen in Dolibarr
    +							}
    +						}
    +					}
    +				}
    +			}
    +
    +			print '});'."\n";
    +
    +			// Google Analytics
    +			// TODO Add a hook here
     			if (! empty($conf->google->enabled) && ! empty($conf->global->MAIN_GOOGLE_AN_ID))
     			{
     				if (($conf->dol_use_jmobile != 4))
    @@ -7429,15 +7380,16 @@ function dol_getmypid()
     /**
      * Generate natural SQL search string for a criteria (this criteria can be tested on one or several fields)
      *
    - * @param 	string|string[]	$fields 	String or array of strings, filled with the name of all fields in the SQL query we must check (combined with a OR). Example: array("p.field1","p.field2")
    - * @param 	string 			$value 		The value to look for.
    + * @param   string|string[]	$fields 	String or array of strings, filled with the name of all fields in the SQL query we must check (combined with a OR). Example: array("p.field1","p.field2")
    + * @param   string 			$value 		The value to look for.
      *                          		    If param $mode is 0, can contains several keywords separated with a space or |
    - *                                         like "keyword1 keyword2" = We want record field like keyword1 AND field like keyword2
    - *                                         or like "keyword1|keyword2" = We want record field like keyword1 OR field like keyword2
    + *                                      like "keyword1 keyword2" = We want record field like keyword1 AND field like keyword2
    + *                                      or like "keyword1|keyword2" = We want record field like keyword1 OR field like keyword2
      *                             			If param $mode is 1, can contains an operator <, > or = like "<10" or ">=100.5 < 1000"
      *                             			If param $mode is 2, can contains a list of int id separated by comma like "1,3,4"
      *                             			If param $mode is 3, can contains a list of string separated by comma like "a,b,c"
    - * @param	integer			$mode		0=value is list of keyword strings, 1=value is a numeric test (Example ">5.5 <10"), 2=value is a list of id separated with comma (Example '1,3,4')
    + * @param	integer			$mode		0=value is list of keyword strings, 1=value is a numeric test (Example ">5.5 <10"), 2=value is a list of ID separated with comma (Example '1,3,4')
    + * 										3=value is list of string separated with comma (Example 'text 1,text 2'), 4=value is a list of ID separated with comma (Example '1,3,4') for search into a multiselect string ('1,2')
      * @param	integer			$nofirstand	1=Do not output the first 'AND'
      * @return 	string 			$res 		The statement to append to the SQL query
      */
    @@ -7521,11 +7473,9 @@ function natural_search($fields, $value, $mode=0, $nofirstand=0)
     			else if ($mode == 4)
     			{
     			    $tmparray=explode(',',trim($crit));
    -
     			    if (count($tmparray))
     			    {
     			        $listofcodes='';
    -
     			        foreach($tmparray as $val)
     			        {
     			            if ($val)
    @@ -7534,7 +7484,7 @@ function natural_search($fields, $value, $mode=0, $nofirstand=0)
     			                $newres .= ' OR '. $field . ' = \'' . $db->escape(trim($val)) . '\'';
     			                $newres .= ' OR '. $field . ' LIKE \'%,' . $db->escape(trim($val)) . '\'';
     			                $newres .= ' OR '. $field . ' LIKE \'%,' . $db->escape(trim($val)) . ',%\'';
    -					$newres .= ')';
    +			                $newres .= ')';
     			                $i2++;
     			            }
     			        }
    @@ -7686,6 +7636,7 @@ function getAdvancedPreviewUrl($modulepart, $relativepath, $alldata=0, $param=''
      *
      * @param string	$htmlname	Id of html object
      * @param string	$addlink	Add a 'link to' after
    + * @return string
      */
     function ajax_autoselect($htmlname, $addlink='')
     {
    @@ -7823,6 +7774,7 @@ function dol_mimetype($file, $default='application/octet-stream', $mode=0)
      * @param int		$id				id of line
      * @param bool		$checkentity	add filter on entity
      * @param string	$rowidfield		name of the column rowid
    + * @return string
      */
     function getDictvalue($tablename, $field, $id, $checkentity=false, $rowidfield='rowid')
     {
    @@ -7832,7 +7784,7 @@ function getDictvalue($tablename, $field, $id, $checkentity=false, $rowidfield='
     	{
     		$dictvalues[$tablename] = array();
     		$sql = 'SELECT * FROM '.$tablename.' WHERE 1';
    -		if ($checkentity) $sql.= ' entity IN (0,'.getEntity('').')';
    +		if ($checkentity) $sql.= ' AND entity IN (0,'.getEntity($tablename).')';
     
     		$resql = $db->query($sql);
     		if ($resql)
    diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php
    index 41ff14b011a..aae70adfb62 100644
    --- a/htdocs/core/lib/functions2.lib.php
    +++ b/htdocs/core/lib/functions2.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2011  Laurent Destailleur         <eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2012  Regis Houssin               <regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2012  Regis Houssin               <regis.houssin@inodbox.com>
      * Copyright (C) 2008       Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
      * Copyright (C) 2014-2016  Marcos García               <marcosgdf@gmail.com>
      * Copyright (C) 2015       Ferran Marcet               <fmarcet@2byte.es>
    @@ -194,9 +194,10 @@ function dol_print_file($langs,$filename,$searchalt=0)
      */
     function dol_print_object_info($object, $usetable=0)
     {
    -    global $langs,$db;
    -    $langs->load("other");
    -    $langs->load("admin");
    +    global $langs, $db;
    +
    +    // Load translation files required by the page
    +    $langs->loadLangs(array('other', 'admin'));
     
         include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     
    @@ -989,7 +990,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m
         if ($bentityon) // only if entity enable
         	$sql.= " AND entity IN (".getEntity($sharetable).")";
         else if (! empty($forceentity))
    -    	$sql.= " AND entity = ".(int) $forceentity;
    +    	$sql.= " AND entity IN (".$forceentity.")";
         if ($where) $sql.=$where;
         if ($sqlwhere) $sql.=' AND '.$sqlwhere;
     
    @@ -1038,7 +1039,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m
         	if ($bentityon) // only if entity enable
             	$sql.= " AND entity IN (".getEntity($sharetable).")";
             else if (! empty($forceentity))
    -        	$sql.= " AND entity = ".(int) $forceentity;
    +        	$sql.= " AND entity IN (".$forceentity.")";
             if ($where) $sql.=$where;
             if ($sqlwhere) $sql.=' AND '.$sqlwhere;
     
    @@ -1094,7 +1095,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m
                 if ($bentityon) // only if entity enable
                 	$maskrefclient_sql.= " AND entity IN (".getEntity($sharetable).")";
                 else if (! empty($forceentity))
    -            	$sql.= " AND entity = ".(int) $forceentity;
    +            	$sql.= " AND entity IN (".$forceentity.")";
                 if ($where) $maskrefclient_sql.=$where; //use the same optional where as general mask
                 if ($sqlwhere) $maskrefclient_sql.=' AND '.$sqlwhere; //use the same sqlwhere as general mask
                 $maskrefclient_sql.=' AND (SUBSTRING('.$field.', '.(strpos($maskwithnocode,$maskrefclient)+1).', '.dol_strlen($maskrefclient_maskclientcode).")='".$maskrefclient_clientcode."')";
    @@ -1167,7 +1168,16 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m
         return $numFinal;
     }
     
    -function get_string_between($string, $start, $end){
    +/**
    + * Get string between
    + *
    + * @param   string  $string     String to test
    + * @param   int     $start      Value for start
    + * @param   int     $end        Value for end
    + * @return  string              Return part of string
    + */
    +function get_string_between($string, $start, $end)
    +{
         $string = " ".$string;
          $ini = strpos($string,$start);
          if ($ini == 0) return "";
    @@ -1760,7 +1770,7 @@ function getSoapParams()
     
     
     /**
    - * List urls of element
    + * Return link url to an object
      *
      * @param 	int		$objectid		Id of record
      * @param 	string	$objecttype		Type of object ('invoice', 'order', 'expedition_bon', ...)
    @@ -1871,7 +1881,11 @@ function dolGetElementUrl($objectid,$objecttype,$withpicto=0,$option='')
     			{
     				$object = new $classname($db);
     				$res=$object->fetch($objectid);
    -				if ($res > 0) $ret=$object->getNomUrl($withpicto,$option);
    +				if ($res > 0) {
    +					$ret=$object->getNomUrl($withpicto,$option);
    +				} elseif($res==0) {
    +					$ret=$langs->trans('Deleted');
    +				}
     				unset($object);
     			}
     			else dol_syslog("Class with classname ".$classname." is unknown even after the include", LOG_ERR);
    @@ -2193,7 +2207,8 @@ function colorStringToArray($stringcolor,$colorifnotfound=array(88,88,88))
      * @param   array $input    Array of products
      * @return  array           Array of combinations
      */
    -function cartesianArray(array $input) {
    +function cartesianArray(array $input)
    +{
         // filter out empty values
         $input = array_filter($input);
     
    @@ -2301,8 +2316,9 @@ function getModuleDirForApiClass($module)
      * @param	$max	int	Between 0 and 255
      * @return String
      */
    -function random_color_part($min=0,$max=255) {
    -	return str_pad( dechex( mt_rand( $min, $max) ), 2, '0', STR_PAD_LEFT);
    +function random_color_part($min=0,$max=255)
    +{
    +    return str_pad( dechex( mt_rand( $min, $max) ), 2, '0', STR_PAD_LEFT);
     }
     
     /*
    @@ -2312,6 +2328,7 @@ function random_color_part($min=0,$max=255) {
      * @param	$max	int	Between 0 and 255
      * @return String
      */
    -function random_color($min=0, $max=255) {
    -	return random_color_part($min, $max) . random_color_part($min, $max) . random_color_part($min, $max);
    +function random_color($min=0, $max=255)
    +{
    +    return random_color_part($min, $max) . random_color_part($min, $max) . random_color_part($min, $max);
     }
    diff --git a/htdocs/core/lib/functionsnumtoword.lib.php b/htdocs/core/lib/functionsnumtoword.lib.php
    index f4319b7d11a..9f04a81fa5f 100644
    --- a/htdocs/core/lib/functionsnumtoword.lib.php
    +++ b/htdocs/core/lib/functionsnumtoword.lib.php
    @@ -21,12 +21,12 @@
      *	\brief			A set of functions for Dolibarr
      *					This file contains all frequently used functions.
      */
    - 
    - 
    +
    +
     /**
      * Function to return number in text.
    - * 
    - * 
    + *
    + *
      * @param	float 	$num			Number to convert
      * @param	Lang	$langs			Language
      * @param	boolean	$currency		0=number to translate | 1=currency to translate
    @@ -36,7 +36,7 @@
     function dol_convertToWord($num, $langs, $currency=false, $centimes=false)
     {
     	global $conf;
    -	
    +
         $num = str_replace(array(',', ' '), '', trim($num));
         if(! $num) {
             return false;
    @@ -48,49 +48,49 @@ function dol_convertToWord($num, $langs, $currency=false, $centimes=false)
         $num = (int) $TNum[0];
         $words = array();
         $list1 = array(
    -    	'', 
    -    	$langs->transnoentitiesnoconv('one'), 
    -    	$langs->transnoentitiesnoconv('two'), 
    -    	$langs->transnoentitiesnoconv('three'), 
    -    	$langs->transnoentitiesnoconv('four'), 
    -    	$langs->transnoentitiesnoconv('five'), 
    -    	$langs->transnoentitiesnoconv('six'), 
    -    	$langs->transnoentitiesnoconv('seven'), 
    -    	$langs->transnoentitiesnoconv('eight'), 
    -    	$langs->transnoentitiesnoconv('nine'), 
    -    	$langs->transnoentitiesnoconv('ten'), 
    +    	'',
    +    	$langs->transnoentitiesnoconv('one'),
    +    	$langs->transnoentitiesnoconv('two'),
    +    	$langs->transnoentitiesnoconv('three'),
    +    	$langs->transnoentitiesnoconv('four'),
    +    	$langs->transnoentitiesnoconv('five'),
    +    	$langs->transnoentitiesnoconv('six'),
    +    	$langs->transnoentitiesnoconv('seven'),
    +    	$langs->transnoentitiesnoconv('eight'),
    +    	$langs->transnoentitiesnoconv('nine'),
    +    	$langs->transnoentitiesnoconv('ten'),
         	$langs->transnoentitiesnoconv('eleven'),
    -        $langs->transnoentitiesnoconv('twelve'), 
    -        $langs->transnoentitiesnoconv('thirteen'), 
    -        $langs->transnoentitiesnoconv('fourteen'), 
    -        $langs->transnoentitiesnoconv('fifteen'), 
    -        $langs->transnoentitiesnoconv('sixteen'), 
    -        $langs->transnoentitiesnoconv('seventeen'), 
    -        $langs->transnoentitiesnoconv('eighteen'), 
    +        $langs->transnoentitiesnoconv('twelve'),
    +        $langs->transnoentitiesnoconv('thirteen'),
    +        $langs->transnoentitiesnoconv('fourteen'),
    +        $langs->transnoentitiesnoconv('fifteen'),
    +        $langs->transnoentitiesnoconv('sixteen'),
    +        $langs->transnoentitiesnoconv('seventeen'),
    +        $langs->transnoentitiesnoconv('eighteen'),
             $langs->transnoentitiesnoconv('nineteen')
         );
         $list2 = array(
    -    	'', 
    -	    $langs->transnoentitiesnoconv('ten'), 
    -	    $langs->transnoentitiesnoconv('twenty'), 
    -	    $langs->transnoentitiesnoconv('thirty'), 
    -	    $langs->transnoentitiesnoconv('forty'), 
    -	    $langs->transnoentitiesnoconv('fifty'), 
    -	    $langs->transnoentitiesnoconv('sixty'), 
    -	    $langs->transnoentitiesnoconv('seventy'), 
    -	    $langs->transnoentitiesnoconv('eighty'), 
    -	    $langs->transnoentitiesnoconv('ninety'), 
    +    	'',
    +	    $langs->transnoentitiesnoconv('ten'),
    +	    $langs->transnoentitiesnoconv('twenty'),
    +	    $langs->transnoentitiesnoconv('thirty'),
    +	    $langs->transnoentitiesnoconv('forty'),
    +	    $langs->transnoentitiesnoconv('fifty'),
    +	    $langs->transnoentitiesnoconv('sixty'),
    +	    $langs->transnoentitiesnoconv('seventy'),
    +	    $langs->transnoentitiesnoconv('eighty'),
    +	    $langs->transnoentitiesnoconv('ninety'),
     	    $langs->transnoentitiesnoconv('hundred')
     	);
         $list3 = array(
    -    	'', 
    -    	$langs->transnoentitiesnoconv('thousand'), 
    -    	$langs->transnoentitiesnoconv('million'), 
    -    	$langs->transnoentitiesnoconv('billion'), 
    -    	$langs->transnoentitiesnoconv('trillion'), 
    +    	'',
    +    	$langs->transnoentitiesnoconv('thousand'),
    +    	$langs->transnoentitiesnoconv('million'),
    +    	$langs->transnoentitiesnoconv('billion'),
    +    	$langs->transnoentitiesnoconv('trillion'),
         	$langs->transnoentitiesnoconv('quadrillion')
         );
    -	
    +
         $num_length = strlen($num);
         $levels = (int) (($num_length + 2) / 3);
         $max_length = $levels * 3;
    @@ -120,11 +120,11 @@ function dol_convertToWord($num, $langs, $currency=false, $centimes=false)
     	$concatWords = implode(' ', $words);
     	// Delete multi whitespaces
     	$concatWords = trim(preg_replace('/[ ]+/', ' ', $concatWords));
    -	
    +
     	if(!empty($currency)) {
     		$concatWords .= ' '.$currency;
     	}
    -	
    +
     	// If we need to write cents call again this function for cents
     	if(!empty($TNum[1])) {
     		if(!empty($currency)) $concatWords .= ' '.$langs->transnoentities('and');
    @@ -133,11 +133,11 @@ function dol_convertToWord($num, $langs, $currency=false, $centimes=false)
     	}
         return $concatWords;
     }
    - 
    - 
    +
    +
     /**
      * Function to return number or amount in text.
    - * 
    + *
      * @deprecated
      * @param	float 	$numero			Number to convert
      * @param	Lang	$langs			Language
    @@ -164,7 +164,7 @@ function dolNumberToWord($numero, $langs, $numorcurrency='number')
     	/*In dolibarr 3.6.2 (my current version) doesn't have $langs->default and
     	in case exist why ask $lang like a parameter?*/
     	if (((is_object($langs) && $langs->default == 'es_MX') || (! is_object($langs) && $langs == 'es_MX')) && $numorcurrency == 'currency')
    -	{	
    +	{
     		if ($numero>=1 && $numero<2) {
     			return ("UN PESO ".$parte_decimal." / 100 M.N.");
     		}
    @@ -229,10 +229,11 @@ function dolNumberToWord($numero, $langs, $numorcurrency='number')
     
     /**
      * hundreds2text
    - * 
    + *
      * @param integer $hundreds     Hundreds
      * @param integer $tens         Tens
      * @param integer $units        Units
    + * @return string
      */
     function hundreds2text($hundreds, $tens, $units)
     {
    diff --git a/htdocs/core/lib/holiday.lib.php b/htdocs/core/lib/holiday.lib.php
    index 56d19d0e0f1..b4b19d4df40 100644
    --- a/htdocs/core/lib/holiday.lib.php
    +++ b/htdocs/core/lib/holiday.lib.php
    @@ -61,3 +61,32 @@ function holiday_prepare_head($object)
     
     	return $head;
     }
    +
    +
    +/**
    + *  Return array head with list of tabs to view object informations
    + *
    +  *  @return array           		head
    + */
    +function holiday_admin_prepare_head()
    +{
    +	global $db, $langs, $conf, $user;
    +
    +	$h = 0;
    +	$head = array();
    +
    +    $head[$h][0] = DOL_URL_ROOT.'/admin/holiday.php';
    +    $head[$h][1] = $langs->trans("Setup");
    +    $head[$h][2] = 'holiday';
    +    $h++;
    +
    +    // Show more tabs from modules
    +    // Entries must be declared in modules descriptor with line
    +    // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__');   to add new tab
    +    // $this->tabs = array('entity:-tabname);   												to remove a tab
    +    complete_head_from_modules($conf,$langs,null,$head,$h,'holiday_admin');
    +
    +	complete_head_from_modules($conf,$langs,null,$head,$h,'holiday_admin','remove');
    +
    +	return $head;
    +}
    diff --git a/htdocs/core/lib/hrm.lib.php b/htdocs/core/lib/hrm.lib.php
    index 5f7eabc7500..08b0e3be01a 100644
    --- a/htdocs/core/lib/hrm.lib.php
    +++ b/htdocs/core/lib/hrm.lib.php
    @@ -18,7 +18,7 @@
     /**
      * \file    htdocs/core/lib/hrm.lib.php
      * \ingroup HRM
    - * \brief   Library for hrm 
    + * \brief   Library for hrm
      */
     $langs->load('hrm');
     
    diff --git a/htdocs/core/lib/images.lib.php b/htdocs/core/lib/images.lib.php
    index f0a666b03e9..a37bd2818a1 100644
    --- a/htdocs/core/lib/images.lib.php
    +++ b/htdocs/core/lib/images.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/lib/import.lib.php b/htdocs/core/lib/import.lib.php
    index ea700c38845..c3b8beac249 100644
    --- a/htdocs/core/lib/import.lib.php
    +++ b/htdocs/core/lib/import.lib.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2006-2009  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2007       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    - * Copyright (C) 2010       Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010       Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2010       Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
    diff --git a/htdocs/core/lib/invoice.lib.php b/htdocs/core/lib/invoice.lib.php
    index 4e7fa860529..aa728e5d653 100644
    --- a/htdocs/core/lib/invoice.lib.php
    +++ b/htdocs/core/lib/invoice.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Florian Henry		<florian.henry@open-concept.pro>
      * Copyright (C) 2015      Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2017      	Charlie Benke		<charlie@patas-monkey.com>
    @@ -36,7 +36,7 @@
     function facture_prepare_head($object)
     {
     	global $db, $langs, $conf;
    -	
    +
     	$h = 0;
     	$head = array();
     
    @@ -63,7 +63,7 @@ function facture_prepare_head($object)
     	    $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
     	    $sql .= " WHERE pfd.fk_facture = ".$object->id;
             $resql=$db->query($sql);
    -        if ($resql) 
    +        if ($resql)
             {
                 $obj=$db->fetch_object($resql);
                 if ($obj) $nbStandingOrders = $obj->nb;
    @@ -152,12 +152,12 @@ function invoice_admin_prepare_head()
     	$head[$h][1] = $langs->trans("ExtraFieldsLines");
     	$head[$h][2] = 'attributeslines';
     	$h++;
    -	
    +
     	$head[$h][0] = DOL_URL_ROOT.'/compta/facture/admin/facture_rec_cust_extrafields.php';
     	$head[$h][1] = $langs->trans("ExtraFieldsCustomerInvoicesRec");
     	$head[$h][2] = 'attributesrec';
     	$h++;
    -	
    +
     	$head[$h][0] = DOL_URL_ROOT.'/compta/facture/admin/facturedet_rec_cust_extrafields.php';
     	$head[$h][1] = $langs->trans("ExtraFieldsLinesRec");
     	$head[$h][2] = 'attributeslinesrec';
    @@ -169,10 +169,16 @@ function invoice_admin_prepare_head()
     }
     
     
    +/**
    + * Return array head with list of tabs to view object informations.
    + *
    + * @param   Facture     $object     Invoice object
    + * @return array                    head array with tabs
    + */
     function invoice_rec_prepare_head($object)
     {
     	global $db, $langs, $conf;
    -	
    +
     	$h = 0;
     	$head = array();
     
    @@ -191,5 +197,3 @@ function invoice_rec_prepare_head($object)
     
     	return $head;
     }
    -
    -
    diff --git a/htdocs/core/lib/invoice2.lib.php b/htdocs/core/lib/invoice2.lib.php
    index 866cf004ca6..f511d12da21 100644
    --- a/htdocs/core/lib/invoice2.lib.php
    +++ b/htdocs/core/lib/invoice2.lib.php
    @@ -23,8 +23,8 @@
      *      \brief      Function to rebuild PDF and merge PDF files into one
      */
     
    -require_once(DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php');
    -require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php');
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
     
     
     /**
    @@ -50,13 +50,13 @@ require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php');
      */
     function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filter, $dateafterdate, $datebeforedate, $paymentdateafter, $paymentdatebefore, $usestdout, $regenerate=0, $filesuffix='', $paymentbankid='', $thirdpartiesid='', $fileprefix='mergedpdf')
     {
    -	$sql = "SELECT DISTINCT f.rowid, f.facnumber";
    +	$sql = "SELECT DISTINCT f.rowid, f.ref";
     	$sql.= " FROM ".MAIN_DB_PREFIX."facture as f";
     	$sqlwhere='';
     	$sqlorder='';
     	if (in_array('all',$filter))
     	{
    -		$sqlorder = " ORDER BY f.facnumber ASC";
    +		$sqlorder = " ORDER BY f.ref ASC";
     	}
     	if (in_array('date',$filter))
     	{
    @@ -175,11 +175,11 @@ function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filte
     					$filename=$conf->facture->dir_output.'/'.$fac->ref.'/'.$fac->ref.'.pdf';
     					if ($regenerate || ! dol_is_file($filename))
     					{
    -	            	    if ($usestdout) print "Build PDF for invoice ".$obj->facnumber." - Lang = ".$outputlangs->defaultlang."\n";
    +	            	    if ($usestdout) print "Build PDF for invoice ".$obj->ref." - Lang = ".$outputlangs->defaultlang."\n";
     	    				$result= $fac->generateDocument($regenerate?$regenerate:$fac->modelpdf, $outputlangs);
     					}
     					else {
    -					    if ($usestdout) print "PDF for invoice ".$obj->facnumber." already exists\n";
    +					    if ($usestdout) print "PDF for invoice ".$obj->ref." already exists\n";
     					}
     
     					// Add file into files array
    diff --git a/htdocs/core/lib/json.lib.php b/htdocs/core/lib/json.lib.php
    index 61d6a923c1f..f58d1b44dbf 100644
    --- a/htdocs/core/lib/json.lib.php
    +++ b/htdocs/core/lib/json.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2011-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2011-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2011-2012	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/lib/ldap.lib.php b/htdocs/core/lib/ldap.lib.php
    index 3db36723b32..9f2e55153d0 100644
    --- a/htdocs/core/lib/ldap.lib.php
    +++ b/htdocs/core/lib/ldap.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006		Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2017	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -111,16 +111,16 @@ function show_ldap_test_button($butlabel,$testlabel,$key,$dn,$objectclass)
     	print '<br>';
     	if (! function_exists("ldap_connect"))
     	{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans('LDAPFunctionsNotAvailableOnPHP').'">'.$butlabel.'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans('LDAPFunctionsNotAvailableOnPHP').'">'.$butlabel.'</a>';
     	}
     	else if (empty($conf->global->LDAP_SERVER_HOST))
     	{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans('LDAPSetupNotComplete').'">'.$butlabel.'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans('LDAPSetupNotComplete').'">'.$butlabel.'</a>';
     	}
     	else if (empty($key) || empty($dn) || empty($objectclass))
     	{
     		$langs->load("errors");
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans('ErrorLDAPSetupNotComplete').'">'.$butlabel.'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans('ErrorLDAPSetupNotComplete').'">'.$butlabel.'</a>';
     	}
     	else
     	{
    diff --git a/htdocs/core/lib/loan.lib.php b/htdocs/core/lib/loan.lib.php
    index 3f7029dd26b..0b617bb0d5c 100644
    --- a/htdocs/core/lib/loan.lib.php
    +++ b/htdocs/core/lib/loan.lib.php
    @@ -40,6 +40,11 @@ function loan_prepare_head($object)
     	$head[$tab][1] = $langs->trans('Card');
     	$head[$tab][2] = 'card';
     	$tab++;
    +	
    +	$head[$tab][0] = DOL_URL_ROOT.'/loan/schedule.php?loanid='.$object->id;
    +	$head[$tab][1] = $langs->trans('FinancialCommitment');
    +	$head[$tab][2] = 'FinancialCommitment';
    +	$tab++;
     
         // Show more tabs from modules
         // Entries must be declared in modules descriptor with line
    @@ -59,7 +64,7 @@ function loan_prepare_head($object)
     	$tab++;
     
     	if (empty($conf->global->MAIN_DISABLE_NOTES_TAB))
    -	{		
    +	{
     		$nbNote = (empty($object->note_private)?0:1)+(empty($object->note_public)?0:1);
     		$head[$tab][0] = DOL_URL_ROOT."/loan/note.php?id=".$object->id;
     		$head[$tab][1] = $langs->trans("Notes");
    diff --git a/htdocs/core/lib/member.lib.php b/htdocs/core/lib/member.lib.php
    index 3148d484ab5..a5016579cd4 100644
    --- a/htdocs/core/lib/member.lib.php
    +++ b/htdocs/core/lib/member.lib.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2006-2015	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2015-2016	Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2015		Raphaël Doursenaud	<rdoursenaud@gpcsolutions.fr>
    - * Copyright (C) 2017		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2017		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/lib/modulebuilder.lib.php b/htdocs/core/lib/modulebuilder.lib.php
    index 8187c15f684..4981e0fffd0 100644
    --- a/htdocs/core/lib/modulebuilder.lib.php
    +++ b/htdocs/core/lib/modulebuilder.lib.php
    @@ -63,7 +63,9 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir='
         		setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Label")), null, 'errors');
         		return -2;
         	}
    -    	if (! preg_match('/^(integer|date|timestamp|varchar|double|html|price)/', $addfieldentry['type']))
    +
    +    	if (! preg_match('/^(price|boolean|sellist|integer|date|timestamp|varchar|double|text|html)/', $addfieldentry['type']))
    +
         	{
         		setEventMessages($langs->trans('BadFormatForType', $objectname), null, 'errors');
         		return -2;
    @@ -259,8 +261,10 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir='',
     
                 $type = $val['type'];
                 $type = preg_replace('/:.*$/', '', $type);		// For case type = 'integer:Societe:societe/class/societe.class.php'
    +
                 if ($type == 'html') $type = 'text';            // html modulebuilder type is a text type in database
    -            if ($type == 'price') $type = 'double';            // html modulebuilder type is a text type in database
    +            else if ($type == 'price') $type = 'double';            // html modulebuilder type is a text type in database
    +            else if ($type == 'link' || $type == 'sellist') $type = 'integer';
                 $texttoinsert.= "\t".$key." ".$type;
                 if ($key == 'rowid')  $texttoinsert.= ' AUTO_INCREMENT PRIMARY KEY';
                 if ($key == 'entity') $texttoinsert.= ' DEFAULT 1';
    @@ -269,7 +273,7 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir='',
                 	if ($val['default'] != '')
                 	{
                 		if (preg_match('/^null$/i', $val['default'])) $texttoinsert.= " DEFAULT NULL";
    -            		else if (preg_match('/varchar/', $val['type'])) $texttoinsert.= " DEFAULT '".$db->escape($val['default'])."'";
    +            		else if (preg_match('/varchar/', $type )) $texttoinsert.= " DEFAULT '".$db->escape($val['default'])."'";
                 		else $texttoinsert.= (($val['default'] > 0)?' DEFAULT '.$val['default']:'');
                 	}
                 }
    @@ -339,5 +343,3 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir='',
     
         return $error ? -1 : 1;
     }
    -
    -
    diff --git a/htdocs/core/lib/order.lib.php b/htdocs/core/lib/order.lib.php
    index cdbd46b1aa7..93a7aaa71e0 100644
    --- a/htdocs/core/lib/order.lib.php
    +++ b/htdocs/core/lib/order.lib.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2006-2012	Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2007		Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2010-2012	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010		Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/lib/payments.lib.php b/htdocs/core/lib/payments.lib.php
    index 9e07976f072..0119b0f0ee5 100644
    --- a/htdocs/core/lib/payments.lib.php
    +++ b/htdocs/core/lib/payments.lib.php
    @@ -25,7 +25,8 @@
      * @param Paiement $object Current payment object
      * @return array Tabs for the payment section
      */
    -function payment_prepare_head(Paiement $object) {
    +function payment_prepare_head(Paiement $object)
    +{
     
     	global $langs, $conf;
     
    @@ -60,8 +61,8 @@ function payment_prepare_head(Paiement $object) {
      * @param Paiement $object Current payment object
      * @return array Tabs for the payment section
      */
    -function payment_supplier_prepare_head(Paiement $object) {
    -
    +function payment_supplier_prepare_head(Paiement $object)
    +{
     	global $langs, $conf;
     
     	$h = 0;
    @@ -91,7 +92,7 @@ function payment_supplier_prepare_head(Paiement $object) {
     /**
      * Return array of valid payment mode
      *
    - * @param	string	$paymentmethod		Filter on this payment method
    + * @param	string	$paymentmethod		Filter on this payment method (''=none, 'paypal', ...)
      * @return	array						Array of valid payment method
      */
     function getValidOnlinePaymentMethods($paymentmethod='')
    @@ -126,8 +127,9 @@ function showOnlinePaymentUrl($type,$ref)
     {
     	global $conf, $langs;
     
    -	$langs->load("payment");
    -	$langs->load("paybox");
    +	// Load translation files required by the page
    +    $langs->loadLangs(array('payment', 'paybox'));
    +
     	$servicename='Online';
     
     	$out = img_picto('','object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePayment",$servicename).'<br>';
    @@ -235,6 +237,24 @@ function getOnlinePaymentUrl($mode, $type, $ref='', $amount='9.99', $freetag='yo
     			}
     		}
     	}
    +	if ($type == 'donation')
    +	{
    +		$out=DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?source=donation&ref='.($mode?'<font color="#666666">':'');
    +		if ($mode == 1) $out.='donation_ref';
    +		if ($mode == 0) $out.=urlencode($ref);
    +		$out.=($mode?'</font>':'');
    +		if (! empty($conf->global->PAYMENT_SECURITY_TOKEN))
    +		{
    +			if (empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) $out.='&securekey='.$conf->global->PAYMENT_SECURITY_TOKEN;
    +			else
    +			{
    +				$out.='&securekey='.($mode?'<font color="#666666">':'');
    +				if ($mode == 1) $out.="hash('".$conf->global->PAYMENT_SECURITY_TOKEN."' + '".$type."' + donation_ref)";
    +				if ($mode == 0) $out.= dol_hash($conf->global->PAYMENT_SECURITY_TOKEN . $type . $ref, 2);
    +				$out.=($mode?'</font>':'');
    +			}
    +		}
    +	}
     
     	// For multicompany
     	if (! empty($out) && ! empty($conf->multicompany->enabled)) $out.="&entity=".$conf->entity; // Check the entity because we may have the same reference in several entities
    diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php
    index ffd19489d1b..056796032d4 100644
    --- a/htdocs/core/lib/pdf.lib.php
    +++ b/htdocs/core/lib/pdf.lib.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2006-2017	Laurent Destailleur 	<eldy@users.sourceforge.net>
      * Copyright (C) 2006		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2007		Patrick Raguin      	<patrick.raguin@gmail.com>
    - * Copyright (C) 2010-2012	Regis Houssin       	<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin       	<regis.houssin@inodbox.com>
      * Copyright (C) 2010-2017	Juanjo Menent       	<jmenent@2byte.es>
      * Copyright (C) 2012		Christophe Battarel		<christophe.battarel@altairis.fr>
      * Copyright (C) 2012       Cédric Salvador         <csalvador@gpcsolutions.fr>
    @@ -261,8 +261,9 @@ function pdf_getHeightForLogo($logo, $url = false)
     /**
      * Function to try to calculate height of a HTML Content
      *
    - * @param TCPDF     $pdf            PDF initialized object
    - * @param string    $htmlcontent    HTML Contect
    + * @param 	TCPDF     $pdf				PDF initialized object
    + * @param 	string    $htmlcontent		HTML Contect
    + * @return 	int							Height
      * @see getStringHeight
      */
     function pdfGetHeightForHtmlContent(&$pdf, $htmlcontent)
    @@ -756,7 +757,7 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default
     					$content = $account->number;
     				} elseif ($val == 'BankAccountNumberKey') {
     					// Key
    -					$tmplength = 13;
    +					$tmplength = 15;
     					$content = $account->cle_rib;
     				}elseif ($val == 'IBAN' || $val == 'BIC') {
     					// Key
    @@ -1203,8 +1204,16 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
     	$note=(! empty($object->lines[$i]->note)?$object->lines[$i]->note:'');
     	$dbatch=(! empty($object->lines[$i]->detail_batch)?$object->lines[$i]->detail_batch:false);
     
    -	if ($issupplierline) $prodser = new ProductFournisseur($db);
    -	else $prodser = new Product($db);
    +	if ($issupplierline)
    +	{
    +		include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php';
    +		$prodser = new ProductFournisseur($db);
    +	}
    +	else
    +	{
    +		include_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
    +		$prodser = new Product($db);
    +	}
     
     	if ($idprod)
     	{
    @@ -1282,7 +1291,17 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
     		{
     			if ($idprod)
     			{
    -				if (empty($hidedesc)) $libelleproduitservice.=$desc;
    +				if (empty($hidedesc))
    +				{
    +					if (!empty($conf->global->MAIN_DOCUMENTS_DESCRIPTION_FIRST))
    +					{
    +						$libelleproduitservice=$desc."\n".$libelleproduitservice;
    +					}
    +					else
    +					{
    +						$libelleproduitservice.=$desc;
    +					}
    +				}
     			}
     			else
     			{
    @@ -1328,6 +1347,7 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
     		if (! empty($libelleproduitservice) && ! empty($ref_prodserv)) $ref_prodserv .= " - ";
     	}
     
    +	if(!empty($ref_prodserv) && !empty($conf->global->ADD_HTML_FORMATING_INTO_DESC_DOC)){ $ref_prodserv = '<b>'.$ref_prodserv.'</b>'; }
     	$libelleproduitservice=$prefix_prodserv.$ref_prodserv.$libelleproduitservice;
     
     	// Add an additional description for the category products
    @@ -1363,7 +1383,11 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
     			$period='('.$outputlangs->transnoentitiesnoconv('DateUntil',dol_print_date($object->lines[$i]->date_end, $format, false, $outputlangs)).')';
     		}
     		//print '>'.$outputlangs->charset_output.','.$period;
    +		if(!empty($conf->global->ADD_HTML_FORMATING_INTO_DESC_DOC)){
    +		    $libelleproduitservice.= '<b style="color:#333666;" ><em>'."__N__</b> ".$period.'</em>';
    +		}else{
     		$libelleproduitservice.="__N__".$period;
    +		}
     		//print $libelleproduitservice;
     	}
     
    @@ -1495,7 +1519,7 @@ function pdf_getlineref_supplier($object,$i,$outputlangs,$hidedetails=0)
      *  @param	int			$hidedetails		Hide details (0=no, 1=yes, 2=just special lines)
      * 	@return	string
      */
    -function pdf_getlinevatrate($object,$i,$outputlangs,$hidedetails=0)
    +function pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails=0)
     {
     	global $conf, $hookmanager, $mysoc;
     
    @@ -1849,6 +1873,7 @@ function pdf_getlineremisepercent($object,$i,$outputlangs,$hidedetails=0)
     function pdf_getlineprogress($object, $i, $outputlangs, $hidedetails = 0, $hookmanager = null)
     {
     	if (empty($hookmanager)) global $hookmanager;
    +	global $conf;
     
     	$reshook=0;
         $result='';
    @@ -2086,8 +2111,8 @@ function pdf_getLinkedObjects($object,$outputlangs)
     		}
     		else if ($objecttype == 'shipping')
     		{
    -			$outputlangs->load('orders');
    -			$outputlangs->load('sendings');
    +			$outputlangs->loadLangs(array("orders", "sendings"));
    +
     			foreach($objects as $x => $elementobject)
     			{
     			    $order=null;
    @@ -2161,4 +2186,3 @@ function pdf_getSizeForImage($realpath)
     	}
     	return array('width'=>$width,'height'=>$height);
     }
    -
    diff --git a/htdocs/core/lib/prelevement.lib.php b/htdocs/core/lib/prelevement.lib.php
    index 47bc2cb1974..e6393326c71 100644
    --- a/htdocs/core/lib/prelevement.lib.php
    +++ b/htdocs/core/lib/prelevement.lib.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2010-2011 	Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2010		Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2011      	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2011      	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php
    index 731f8859eba..68e78a29d76 100644
    --- a/htdocs/core/lib/product.lib.php
    +++ b/htdocs/core/lib/product.lib.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2006-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2007       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    - * Copyright (C) 2009-2010  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2010  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2015-2016	Marcos García			<marcosgdf@gmail.com>
      *
    @@ -190,8 +190,9 @@ function product_prepare_head($object)
     function productlot_prepare_head($object)
     {
         global $db, $langs, $conf, $user;
    -    $langs->load("products");
    -    $langs->load("productbatch");
    +
    +    // Load translation files required by the page
    +    $langs->loadLangs(array("products","productbatch"));
     
         $h = 0;
         $head = array();
    @@ -200,7 +201,7 @@ function productlot_prepare_head($object)
         $head[$h][1] = $langs->trans("Card");
         $head[$h][2] = 'card';
     	$h++;
    -	
    +
     	// Attachments
     	require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
         require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php';
    diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php
    index 4d5779c52d1..8b6ca6a5ca3 100644
    --- a/htdocs/core/lib/project.lib.php
    +++ b/htdocs/core/lib/project.lib.php
    @@ -1,7 +1,8 @@
     <?php
     /* Copyright (C) 2006-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2010      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent        <jmenent@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -51,9 +52,44 @@ function project_prepare_head($object)
     	$head[$h][2] = 'contact';
     	$h++;
     
    +	if (empty($conf->global->PROJECT_HIDE_TASKS))
    +	{
    +		// Then tab for sub level of projet, i mean tasks
    +		$head[$h][0] = DOL_URL_ROOT.'/projet/tasks.php?id='.$object->id;
    +		$head[$h][1] = $langs->trans("Tasks");
    +
    +		require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
    +		$taskstatic=new Task($db);
    +		$nbTasks=count($taskstatic->getTasksArray(0, 0, $object->id, 0, 0));
    +		if ($nbTasks > 0) $head[$h][1].= ' <span class="badge">'.($nbTasks).'</span>';
    +		$head[$h][2] = 'tasks';
    +		$h++;
    +
    +		$nbTimeSpent=0;
    +		$sql = "SELECT t.rowid";
    +		//$sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t, ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."user as u";
    +		//$sql .= " WHERE t.fk_user = u.rowid AND t.fk_task = pt.rowid";
    +		$sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t, ".MAIN_DB_PREFIX."projet_task as pt";
    +		$sql .= " WHERE t.fk_task = pt.rowid";
    +		$sql .= " AND pt.fk_projet =".$object->id;
    +		$resql = $db->query($sql);
    +		if ($resql)
    +		{
    +			$obj = $db->fetch_object($resql);
    +			if ($obj) $nbTimeSpent=1;
    +		}
    +		else dol_print_error($db);
    +
    +		$head[$h][0] = DOL_URL_ROOT.'/projet/tasks/time.php?withproject=1&projectid='.$object->id;
    +		$head[$h][1] = $langs->trans("TimeSpent");
    +		if ($nbTimeSpent > 0) $head[$h][1].= ' <span class="badge">...</span>';
    +		$head[$h][2] = 'timespent';
    +		$h++;
    +	}
    +
     	if (! empty($conf->fournisseur->enabled) || ! empty($conf->propal->enabled) || ! empty($conf->commande->enabled)
    -	|| ! empty($conf->facture->enabled) || ! empty($conf->contrat->enabled)
    -	|| ! empty($conf->ficheinter->enabled) || ! empty($conf->agenda->enabled) || ! empty($conf->deplacement->enabled))
    +		|| ! empty($conf->facture->enabled) || ! empty($conf->contrat->enabled)
    +		|| ! empty($conf->ficheinter->enabled) || ! empty($conf->agenda->enabled) || ! empty($conf->deplacement->enabled))
     	{
     		$head[$h][0] = DOL_URL_ROOT.'/projet/element.php?id='.$object->id;
     		$head[$h][1] = $langs->trans("ProjectOverview");
    @@ -91,41 +127,6 @@ function project_prepare_head($object)
     	$head[$h][2] = 'document';
     	$h++;
     
    -	if (empty($conf->global->PROJECT_HIDE_TASKS))
    -	{
    -		// Then tab for sub level of projet, i mean tasks
    -		$head[$h][0] = DOL_URL_ROOT.'/projet/tasks.php?id='.$object->id;
    -		$head[$h][1] = $langs->trans("Tasks");
    -
    -		require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
    -		$taskstatic=new Task($db);
    -		$nbTasks=count($taskstatic->getTasksArray(0, 0, $object->id, 0, 0));
    -		if ($nbTasks > 0) $head[$h][1].= ' <span class="badge">'.($nbTasks).'</span>';
    -		$head[$h][2] = 'tasks';
    -		$h++;
    -
    -		$nbTimeSpent=0;
    -		$sql = "SELECT t.rowid";
    -		//$sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t, ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."user as u";
    -		//$sql .= " WHERE t.fk_user = u.rowid AND t.fk_task = pt.rowid";
    -		$sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t, ".MAIN_DB_PREFIX."projet_task as pt";
    -		$sql .= " WHERE t.fk_task = pt.rowid";
    -		$sql .= " AND pt.fk_projet =".$object->id;
    -		$resql = $db->query($sql);
    -		if ($resql)
    -		{
    -			$obj = $db->fetch_object($resql);
    -			if ($obj) $nbTimeSpent=1;
    -		}
    -		else dol_print_error($db);
    -
    -		$head[$h][0] = DOL_URL_ROOT.'/projet/tasks/time.php?withproject=1&projectid='.$object->id;
    -		$head[$h][1] = $langs->trans("TimeSpent");
    -		if ($nbTimeSpent > 0) $head[$h][1].= ' <span class="badge">...</span>';
    -		$head[$h][2] = 'timespent';
    -		$h++;
    -	}
    -
     	// Manage discussion
     	if (!empty($conf->global->PROJECT_ALLOW_COMMENT_ON_PROJECT))
     	{
    @@ -1047,7 +1048,7 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr
     
     				// Form to add new time
     				print '<td class="nowrap leftborder" align="center">';
    -				$tableCell=$form->select_date($preselectedday,$lines[$i]->id,1,1,2,"addtime",0,0,1,$disabledtask);
    +				$tableCell = $form->selectDate($preselectedday, $lines[$i]->id, 1, 1, 2, "addtime", 0, 0, $disabledtask);
     				print $tableCell;
     				print '</td>';
     
    @@ -1204,7 +1205,7 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
     				{
     					continue;
     				}
    -				
    +
     				// Break on a new project
     				if ($parent == 0 && $lines[$i]->fk_project != $lastprojectid)
     				{
    @@ -1706,4 +1707,3 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
     		print '</table></form>';
     	}
     }
    -
    diff --git a/htdocs/core/lib/propal.lib.php b/htdocs/core/lib/propal.lib.php
    index c50661de831..3fc37196c71 100644
    --- a/htdocs/core/lib/propal.lib.php
    +++ b/htdocs/core/lib/propal.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -32,9 +32,7 @@
     function propal_prepare_head($object)
     {
     	global $db, $langs, $conf, $user;
    -	$langs->load("propal");
    -	$langs->load("compta");
    -	$langs->load("companies");
    +	$langs->loadLangs(array('propal', 'compta', 'companies'));
     
     	$h = 0;
     	$head = array();
    @@ -48,6 +46,7 @@ function propal_prepare_head($object)
     	|| (! empty($conf->livraison_bon->enabled) && $user->rights->expedition->livraison->lire))))
     	{
     		$langs->load("sendings");
    +		$text = '';
     		$head[$h][0] = DOL_URL_ROOT.'/expedition/propal.php?id='.$object->id;
     		if ($conf->expedition_bon->enabled) $text=$langs->trans("Shipment");
     		if ($conf->livraison_bon->enabled)  $text.='/'.$langs->trans("Receivings");
    diff --git a/htdocs/core/lib/reception.lib.php b/htdocs/core/lib/reception.lib.php
    new file mode 100644
    index 00000000000..0fc71c555dd
    --- /dev/null
    +++ b/htdocs/core/lib/reception.lib.php
    @@ -0,0 +1,129 @@
    +<?php
    +/* Copyright (C) 2006-2012	Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2007		Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2010-2012	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010		Juanjo Menent        <jmenent@2byte.es>
    + * Copyright (C) 2015 Claudio Aschieri				<c.aschieri@19.coop>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *  \file       htdocs/core/lib/reception.lib.php
    + *  \brief      Function for reception module
    + *  \ingroup    reception
    + */
    +
    +/**
    + * Prepare array with list of tabs
    + *
    + * @param   Reception	$object		Object related to tabs
    + * @return  array				Array of tabs to show
    + */
    +function reception_prepare_head(Reception $object)
    +{
    +	global $db, $langs, $conf, $user;
    +
    +	$langs->load("sendings");
    +	$langs->load("deliveries");
    +
    +	$h = 0;
    +	$head = array();
    +
    +	$head[$h][0] = DOL_URL_ROOT."/reception/card.php?id=".$object->id;
    +	$head[$h][1] = $langs->trans("ReceptionCard");
    +	$head[$h][2] = 'reception';
    +	$h++;
    +
    +	
    +
    +	if (empty($conf->global->MAIN_DISABLE_CONTACTS_TAB))
    +	{
    +	    $objectsrc = $object;
    +	    if ($object->origin == 'commande' && $object->origin_id > 0)
    +	    {
    +	        $objectsrc = new Commande($db);
    +	        $objectsrc->fetch($object->origin_id);
    +	    }
    +	    $nbContact = count($objectsrc->liste_contact(-1,'internal')) + count($objectsrc->liste_contact(-1,'external'));
    +	    $head[$h][0] = DOL_URL_ROOT."/reception/contact.php?id=".$object->id;
    +    	$head[$h][1] = $langs->trans("ContactsAddresses");
    +		if ($nbContact > 0) $head[$h][1].= ' <span class="badge">'.$nbContact.'</span>';
    +    	$head[$h][2] = 'contact';
    +    	$h++;
    +	}
    +	
    +    $nbNote = 0;
    +    if (!empty($object->note_private)) $nbNote++;
    +    if (!empty($object->note_public)) $nbNote++;
    +	$head[$h][0] = DOL_URL_ROOT."/reception/note.php?id=".$object->id;
    +	$head[$h][1] = $langs->trans("Notes");
    +	if ($nbNote > 0) $head[$h][1].= ' <span class="badge">'.$nbNote.'</span>';
    +	$head[$h][2] = 'note';
    +	$h++;
    +	
    +	
    +	
    +
    +	
    +
    +    complete_head_from_modules($conf,$langs,$object,$head,$h,'order','remove');
    +
    +    return $head;
    +}
    +
    +/**
    + *  Return array head with list of tabs to view object informations.
    + *
    + *  @return	array   	    		    head array with tabs
    + */
    +function reception_admin_prepare_head()
    +{
    +	global $langs, $conf, $user;
    +	$langs->load("receptions");
    +
    +	$h = 0;
    +	$head = array();
    +	
    +	$head[$h][0] = DOL_URL_ROOT."/admin/reception_setup.php";
    +	$head[$h][1] = $langs->trans("Reception");
    +	$head[$h][2] = 'reception';
    +	$h++;
    +
    +	
    +	if (! empty($conf->global->MAIN_SUBMODULE_RECEPTION))
    +	{
    +	$head[$h][0] = DOL_URL_ROOT.'/admin/reception_extrafields.php';
    +	$head[$h][1] = $langs->trans("ExtraFields");
    +	$head[$h][2] = 'attributes_reception';
    +	$h++;
    +	}
    +	
    +	if (! empty($conf->global->MAIN_SUBMODULE_RECEPTION))
    +	{
    +	$head[$h][0] = DOL_URL_ROOT.'/admin/commande_fournisseur_dispatch_extrafields.php';
    +	$head[$h][1] = $langs->trans("ExtraFieldsLines");
    +	$head[$h][2] = 'attributeslines_reception';
    +	$h++;
    +	}
    +	
    +	
    +	
    +	complete_head_from_modules($conf,$langs,null,$head,$h,'reception_admin','remove');
    +
    +	return $head;
    +}
    +
    +
    diff --git a/htdocs/core/lib/report.lib.php b/htdocs/core/lib/report.lib.php
    index 475fbaa48d5..5a8aa344240 100644
    --- a/htdocs/core/lib/report.lib.php
    +++ b/htdocs/core/lib/report.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -91,7 +91,7 @@ function report_header($reportname,$notused,$period,$periodlink,$description,$bu
     	print '<td>'.$langs->trans("ReportPeriod").'</td>';
     	print '<td>';
     	if ($period) print $period;
    -	if ($variante) print '<td>'.$periodlink.'</td>';
    +	if ($variante) print '<td class="nowraponall">'.$periodlink.'</td>';
     	print '</td>';
     	print '</tr>';
     
    diff --git a/htdocs/core/lib/resource.lib.php b/htdocs/core/lib/resource.lib.php
    index 6ab25c5b57f..defc45823e4 100644
    --- a/htdocs/core/lib/resource.lib.php
    +++ b/htdocs/core/lib/resource.lib.php
    @@ -77,6 +77,16 @@ function resource_prepare_head($object)
     	$head[$h][2] = 'documents';
     	$h++;
     
    +	$head[$h][0] = DOL_URL_ROOT.'/resource/agenda.php?id='.$object->id;
    +	$head[$h][1] = $langs->trans("Events");
    +	if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) ))
    +	{
    +		$head[$h][1].= '/';
    +		$head[$h][1].= $langs->trans("Agenda");
    +	}
    +	$head[$h][2] = 'agenda';
    +	$h++;
    +
     	/*$head[$h][0] = DOL_URL_ROOT.'/resource/info.php?id='.$object->id;
     	$head[$h][1] = $langs->trans('Info');
     	$head[$h][2] = 'info';
    @@ -87,7 +97,13 @@ function resource_prepare_head($object)
     	return $head;
     }
     
    -function resource_admin_prepare_head() {
    +/**
    + * Prepare head for admin tabs
    + *
    + * @return  array               Array of head entries
    + */
    +function resource_admin_prepare_head()
    +{
     
     	global $langs, $conf, $user;
     
    @@ -113,5 +129,4 @@ function resource_admin_prepare_head() {
     	complete_head_from_modules($conf,$langs,null,$head,$h,'resource_admin','remove');
     
     	return $head;
    -
     }
    diff --git a/htdocs/core/lib/salaries.lib.php b/htdocs/core/lib/salaries.lib.php
    index eaaa90a710e..0c121c308d3 100644
    --- a/htdocs/core/lib/salaries.lib.php
    +++ b/htdocs/core/lib/salaries.lib.php
    @@ -20,14 +20,15 @@
     /**
      * Returns an array with the tabs for the "salaries" section
      * It loads tabs from modules looking for the entity salaries
    - *  
    + *
      * @param Paiement $object Current salaries object
      * @return array Tabs for the salaries section
      */
    -function salaries_prepare_head($object) {
    -	
    +function salaries_prepare_head($object)
    +{
    +
     	global $db, $langs, $conf;
    -	
    +
     	$h = 0;
     	$head = array();
     
    @@ -57,7 +58,7 @@ function salaries_prepare_head($object) {
     	$head[$h][1] = $langs->trans("Info");
     	$head[$h][2] = 'info';
     	$h++;
    -    
    +
     	complete_head_from_modules($conf,$langs,$object,$head,$h,'salaries', 'remove');
     
     	return $head;
    diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php
    index d12ee339909..c95ad9afe82 100644
    --- a/htdocs/core/lib/security.lib.php
    +++ b/htdocs/core/lib/security.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2017 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2017 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -142,7 +142,7 @@ function dol_hash($chain, $type='0')
      *  If constant MAIN_SECURITY_HASH_ALGO is defined, we use this function as hashing function.
      *  If constant MAIN_SECURITY_SALT is defined, we use it as a salt.
      *
    - * 	@param 		string		$chain		String to hash
    + * 	@param 		string		$chain		String to hash (not hashed string)
      * 	@param 		string		$hash		hash to compare
      * 	@param		string		$type		Type of hash ('0':auto, '1':sha1, '2':sha1+md5, '3':md5, '4':md5 for OpenLdap, '5':sha256). Use '3' here, if hash is not needed for security purpose, for security need, prefer '0'.
      * 	@return		bool					True if the computed hash is the same as the given one
    @@ -174,12 +174,11 @@ function dol_verifyHash($chain, $hash, $type='0')
      *	@param  string	$feature2		Feature to check, second level of permission (optional). Can be a 'or' check with 'level1|level2'.
      *  @param  string	$dbt_keyfield   Field name for socid foreign key if not fk_soc. Not used if objectid is null (optional)
      *  @param  string	$dbt_select     Field name for select if not rowid. Not used if objectid is null (optional)
    - *  @param	Canvas	$objcanvas		Object canvas
      *  @param	int		$isdraft		1=The object with id=$objectid is a draft
      * 	@return	int						Always 1, die process if not allowed
      *  @see dol_check_secure_access_document
      */
    -function restrictedArea($user, $features, $objectid=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $objcanvas=null, $isdraft=0)
    +function restrictedArea($user, $features, $objectid=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0)
     {
     	global $db, $conf;
     	global $hookmanager;
    @@ -659,12 +658,13 @@ function checkUserAccessToObject($user, $featuresarray, $objectid=0, $tableandsh
      */
     function accessforbidden($message='',$printheader=1,$printfooter=1,$showonlymessage=0)
     {
    -	global $conf, $db, $user, $langs;
    -	if (! is_object($langs))
    -	{
    -		include_once DOL_DOCUMENT_ROOT.'/core/class/translate.class.php';
    -		$langs=new Translate('',$conf);
    -	}
    +    global $conf, $db, $user, $langs;
    +    if (! is_object($langs))
    +    {
    +        include_once DOL_DOCUMENT_ROOT.'/core/class/translate.class.php';
    +        $langs=new Translate('',$conf);
    +        $langs->setDefaultLang();
    +    }
     
     	$langs->load("errors");
     
    diff --git a/htdocs/core/lib/security2.lib.php b/htdocs/core/lib/security2.lib.php
    index b6a348ea91d..c09cd7f78d3 100644
    --- a/htdocs/core/lib/security2.lib.php
    +++ b/htdocs/core/lib/security2.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2017 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2017 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -103,12 +103,12 @@ function checkLoginPassEntity($usertotest,$passwordtotest,$entitytotest,$authmod
         			}
         			else
         			{
    -    				dol_syslog("Authentification ko - failed to load file '".$authfile."'",LOG_ERR);
    +    				dol_syslog("Authentification ko - failed to load file '".$authfile."'", LOG_ERR);
         				sleep(1);
    -    				$langs->load('main');
    -    				$langs->load('other');
    -    				$langs->load('errors');
    -    				$_SESSION["dol_loginmesg"]=$langs->trans("ErrorFailedToLoadLoginFileForMode",$mode);
    +    				// Load translation files required by the page
    +                    $langs->loadLangs(array('other', 'main', 'errors'));
    +
    +    				$_SESSION["dol_loginmesg"]=$langs->trans("ErrorFailedToLoadLoginFileForMode", $mode);
         			}
         		}
         	}
    @@ -118,18 +118,18 @@ function checkLoginPassEntity($usertotest,$passwordtotest,$entitytotest,$authmod
     }
     
     
    -/**
    - * Show Dolibarr default login page.
    - * Part of this code is also duplicated into main.inc.php::top_htmlhead
    - *
    - * @param		Translate	$langs		Lang object (must be initialized by a new).
    - * @param		Conf		$conf		Conf object
    - * @param		Societe		$mysoc		Company object
    - * @return		void
    - */
     if (! function_exists('dol_loginfunction'))
     {
    -	function dol_loginfunction($langs,$conf,$mysoc)
    +    /**
    +     * Show Dolibarr default login page.
    +     * Part of this code is also duplicated into main.inc.php::top_htmlhead
    +     *
    +     * @param       Translate   $langs      Lang object (must be initialized by a new).
    +     * @param       Conf        $conf       Conf object
    +     * @param       Societe     $mysoc      Company object
    +     * @return      void
    +     */
    +    function dol_loginfunction($langs,$conf,$mysoc)
     	{
     		global $dolibarr_main_demo,$db;
     		global $smartphone,$hookmanager;
    @@ -228,11 +228,11 @@ if (! function_exists('dol_loginfunction'))
     
     		if (! empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small))
     		{
    -			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('thumbs/'.$mysoc->logo_small);
    +			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_small);
     		}
     		elseif (! empty($mysoc->logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$mysoc->logo))
     		{
    -			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode($mysoc->logo);
    +			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/'.$mysoc->logo);
     			$width=128;
     		}
     		elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/img/dolibarr_logo.png'))
    @@ -443,11 +443,12 @@ function encodedecode_dbpassconf($level=0)
     /**
      * Return a generated password using default module
      *
    - * @param		boolean		$generic		true=Create generic password (32 chars/numbers), false=Use the configured password generation module
    - * @return		string						New value for password
    + * @param		boolean		$generic				true=Create generic password (32 chars/numbers), false=Use the configured password generation module
    + * @param		array		$replaceambiguouschars	Discard ambigous characters. For example array('I').
    + * @return		string								New value for password
      * @see dol_hash
      */
    -function getRandomPassword($generic=false)
    +function getRandomPassword($generic=false, $replaceambiguouschars=null)
     {
     	global $db,$conf,$langs,$user;
     
    @@ -508,6 +509,20 @@ function getRandomPassword($generic=false)
     		unset($genhandler);
     	}
     
    +	// Do we have to discard some alphabetic characters ?
    +	if (is_array($replaceambiguouschars) && count($replaceambiguouschars) > 0)
    +	{
    +		$numbers = "ABCDEF";
    +		$max = strlen($numbers) - 1;
    +		if (function_exists('random_int'))	// Cryptographic random
    +		{
    +			$generated_password=str_replace($replaceambiguouschars, $numbers{random_int(0, $max)}, $generated_password);
    +		}
    +		else
    +		{
    +			$generated_password=str_replace($replaceambiguouschars, $numbers{mt_rand(0, $max)}, $generated_password);
    +		}
    +	}
    +
     	return $generated_password;
     }
    -
    diff --git a/htdocs/core/lib/sendings.lib.php b/htdocs/core/lib/sendings.lib.php
    index b79b1d094da..be8aeb890fc 100644
    --- a/htdocs/core/lib/sendings.lib.php
    +++ b/htdocs/core/lib/sendings.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -36,8 +36,8 @@ function shipping_prepare_head($object)
     {
     	global $db, $langs, $conf, $user;
     
    -	$langs->load("sendings");
    -	$langs->load("deliveries");
    +	// Load translation files required by the page
    +    $langs->loadLangs(array("sendings","deliveries"));
     
     	$h = 0;
     	$head = array();
    @@ -121,8 +121,8 @@ function delivery_prepare_head($object)
     {
     	global $langs, $conf, $user;
     
    -	$langs->load("sendings");
    -	$langs->load("deliveries");
    +	// Load translation files required by the page
    +    $langs->loadLangs(array("sendings","deliveries"));
     
     	$h = 0;
     	$head = array();
    @@ -217,9 +217,9 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
     
     			print '<table class="liste" width="100%">';
     			print '<tr class="liste_titre">';
    -			//print '<td align="left">'.$langs->trans("QtyOrdered").'</td>';
    -			print '<td align="left">'.$langs->trans("SendingSheet").'</td>';
    -			print '<td align="left">'.$langs->trans("Description").'</td>';
    +			//print '<td class="left">'.$langs->trans("QtyOrdered").'</td>';
    +			print '<td class="left">'.$langs->trans("SendingSheet").'</td>';
    +			print '<td class="left">'.$langs->trans("Description").'</td>';
     			print '<td align="center">'.$langs->trans("DateCreation").'</td>';
     			print '<td align="center">'.$langs->trans("DateDeliveryPlanned").'</td>';
     			print '<td align="center">'.$langs->trans("QtyPreparedOrShipped").'</td>';
    diff --git a/htdocs/core/lib/signature.lib.php b/htdocs/core/lib/signature.lib.php
    index b11d809caf2..2790c80c8e0 100644
    --- a/htdocs/core/lib/signature.lib.php
    +++ b/htdocs/core/lib/signature.lib.php
    @@ -28,8 +28,9 @@ function showOnlineSignatureUrl($type,$ref)
     {
     	global $conf, $langs;
     
    -	$langs->load("payment");
    -	$langs->load("paybox");
    +	// Load translation files required by the page
    +    $langs->loadLangs(array("payment","paybox"));
    +
     	$servicename='Online';
     
     	$out = img_picto('','object_globe.png').' '.$langs->trans("ToOfferALinkForOnlineSignature",$servicename).'<br>';
    diff --git a/htdocs/core/lib/stock.lib.php b/htdocs/core/lib/stock.lib.php
    index ac59ab230c7..579944117ab 100644
    --- a/htdocs/core/lib/stock.lib.php
    +++ b/htdocs/core/lib/stock.lib.php
    @@ -39,7 +39,7 @@ function stock_prepare_head($object)
     	$head[$h][2] = 'card';
     	$h++;
     
    -	$head[$h][0] = DOL_URL_ROOT.'/product/stock/mouvement.php?id='.$object->id;
    +	$head[$h][0] = DOL_URL_ROOT.'/product/stock/movement_list.php?id='.$object->id;
     	$head[$h][1] = $langs->trans("StockMovements");
     	$head[$h][2] = 'movements';
     	$h++;
    diff --git a/htdocs/core/lib/supplier_proposal.lib.php b/htdocs/core/lib/supplier_proposal.lib.php
    index 1756c92a32a..53dcf1c443f 100644
    --- a/htdocs/core/lib/supplier_proposal.lib.php
    +++ b/htdocs/core/lib/supplier_proposal.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -32,8 +32,9 @@
     function supplier_proposal_prepare_head($object)
     {
     	global $db, $langs, $conf, $user;
    -	$langs->load("supplier_proposal");
    -	$langs->load("compta");
    +
    +	// Load translation files required by the page
    +    $langs->loadLangs(array("supplier_proposal","compta"));
     
     	$h = 0;
     	$head = array();
    diff --git a/htdocs/core/lib/tax.lib.php b/htdocs/core/lib/tax.lib.php
    index 1cce7527018..7927bec0268 100644
    --- a/htdocs/core/lib/tax.lib.php
    +++ b/htdocs/core/lib/tax.lib.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004-2009 Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2006-2007 Yannick Warnier		<ywarnier@beeznest.org>
    - * Copyright (C) 2011	   Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2011	   Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2012-2017 Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2012      Cédric Salvador      <csalvador@gpcsolutions.fr>
      * Copyright (C) 2012-2014 Raphaël Doursenaud   <rdoursenaud@gpcsolutions.fr>
    @@ -109,7 +109,7 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
         	$total_tva='total_tva';
         	$paymenttable='paiement';
         	$paymentfacturetable='paiement_facture';
    -    	$invoicefieldref='facnumber';
    +    	$invoicefieldref='ref';
         }
         if ($direction == 'buy')
         {
    @@ -152,7 +152,7 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
         	$sql.= " ".MAIN_DB_PREFIX."societe as s,";
         	$sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d" ;
         	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
    -    	$sql.= " WHERE f.entity = " . $conf->entity;
    +    	$sql.= " WHERE f.entity IN (".getEntity($invoicetable).")";
         	$sql.= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely)
         	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
         	else $sql.= " AND f.type IN (0,1,2,3,5)";
    @@ -191,7 +191,7 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
         	$sql.= " ".MAIN_DB_PREFIX."societe as s,";
         	$sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d";
         	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
    -    	$sql.= " WHERE f.entity = " . $conf->entity;
    +    	$sql.= " WHERE f.entity IN (".getEntity($invoicetable).")";
         	$sql.= " AND f.fk_statut in (1,2)"; // Paid (partially or completely)
         	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
         	else $sql.= " AND f.type IN (0,1,2,3,5)";
    @@ -300,7 +300,7 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
         	$sql.= " ".MAIN_DB_PREFIX."societe as s,";
         	$sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d" ;
         	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
    -    	$sql.= " WHERE f.entity = " . $conf->entity;
    +    	$sql.= " WHERE f.entity IN (".getEntity($invoicetable).")";
         	$sql.= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely)
         	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
         	else $sql.= " AND f.type IN (0,1,2,3,5)";
    @@ -339,7 +339,7 @@ function tax_by_thirdparty($type, $db, $y, $date_start, $date_end, $modetax, $di
         	$sql.= " ".MAIN_DB_PREFIX."societe as s,";
         	$sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d";
         	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
    -    	$sql.= " WHERE f.entity = " . $conf->entity;
    +    	$sql.= " WHERE f.entity IN (".getEntity($invoicetable).")";
         	$sql.= " AND f.fk_statut in (1,2)"; // Paid (partially or completely)
         	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
         	else $sql.= " AND f.type IN (0,1,2,3,5)";
    @@ -578,7 +578,7 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
             $total_tva='total_tva';
             $paymenttable='paiement';
             $paymentfacturetable='paiement_facture';
    -        $invoicefieldref='facnumber';
    +        $invoicefieldref='ref';
         }
         else
         {
    @@ -621,7 +621,7 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
             $sql.= " ".MAIN_DB_PREFIX."societe as s,";
             $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d" ;
             $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
    -        $sql.= " WHERE f.entity = " . $conf->entity;
    +        $sql.= " WHERE f.entity IN (".getEntity($invoicetable).")";
             $sql.= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely)
             if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
             else $sql.= " AND f.type IN (0,1,2,3,5)";
    @@ -660,7 +660,7 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
         	$sql.= " ".MAIN_DB_PREFIX."societe as s,";
         	$sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d";
         	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
    -    	$sql.= " WHERE f.entity = " . $conf->entity;
    +    	$sql.= " WHERE f.entity IN (".getEntity($invoicetable).")";
         	$sql.= " AND f.fk_statut in (1,2)"; // Paid (partially or completely)
         	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
         	else $sql.= " AND f.type IN (0,1,2,3,5)";
    @@ -769,7 +769,7 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
             $sql.= " ".MAIN_DB_PREFIX."societe as s,";
             $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d" ;
             $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
    -        $sql.= " WHERE f.entity = " . $conf->entity;
    +        $sql.= " WHERE f.entity IN (".getEntity($invoicetable).")";
             $sql.= " AND f.fk_statut in (1,2)"; // Validated or paid (partially or completely)
             if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
     		else $sql.= " AND f.type IN (0,1,2,3,5)";
    @@ -808,7 +808,7 @@ function tax_by_rate($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire
             $sql.= " ".MAIN_DB_PREFIX."societe as s,";
             $sql.= " ".MAIN_DB_PREFIX.$invoicedettable." as d";
             $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p on d.fk_product = p.rowid";
    -        $sql.= " WHERE f.entity = " . $conf->entity;
    +        $sql.= " WHERE f.entity IN (".getEntity($invoicetable).")";
             $sql.= " AND f.fk_statut in (1,2)"; // Paid (partially or completely)
             if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $sql.= " AND f.type IN (0,1,2,5)";
     		else $sql.= " AND f.type IN (0,1,2,3,5)";
    diff --git a/htdocs/core/lib/ticket.lib.php b/htdocs/core/lib/ticket.lib.php
    index 7fac65ab42b..735050af437 100644
    --- a/htdocs/core/lib/ticket.lib.php
    +++ b/htdocs/core/lib/ticket.lib.php
    @@ -103,8 +103,13 @@ function ticket_prepare_head($object)
     
     
         // History
    -    $head[$h][0] = DOL_URL_ROOT.'/ticket/history.php?track_id=' . $object->track_id;
    +    $head[$h][0] = DOL_URL_ROOT.'/ticket/agenda.php?track_id=' . $object->track_id;
         $head[$h][1] = $langs->trans('Events');
    +    if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) ))
    +    {
    +    	$head[$h][1].= '/';
    +    	$head[$h][1].= $langs->trans("Agenda");
    +    }
         $head[$h][2] = 'tabTicketLogs';
         $h++;
     
    @@ -155,9 +160,9 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $
         	$urllogo = DOL_URL_ROOT . '/theme/login_logo.png';
     
         	if (!empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output . '/logos/thumbs/' . $mysoc->logo_small)) {
    -    		$urllogo = DOL_URL_ROOT . '/viewimage.php?cache=1&amp;modulepart=companylogo&amp;file=' . urlencode('thumbs/' . $mysoc->logo_small);
    +    		$urllogo = DOL_URL_ROOT . '/viewimage.php?modulepart=mycompany&amp;entity='.$conf->entity.'&amp;file=' . urlencode('logos/thumbs/'.$mysoc->logo_small);
         	} elseif (!empty($mysoc->logo) && is_readable($conf->mycompany->dir_output . '/logos/' . $mysoc->logo)) {
    -    		$urllogo = DOL_URL_ROOT . '/viewimage.php?cache=1&amp;modulepart=companylogo&amp;file=' . urlencode($mysoc->logo);
    +    		$urllogo = DOL_URL_ROOT . '/viewimage.php?modulepart=mycompany&amp;entity='.$conf->entity.'&amp;file=' . urlencode('logos/'.$mysoc->logo);
         		$width = 128;
         	} elseif (is_readable(DOL_DOCUMENT_ROOT . '/theme/dolibarr_logo.png')) {
         		$urllogo = DOL_URL_ROOT . '/theme/dolibarr_logo.png';
    @@ -170,20 +175,3 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $
     
         print '<div style="margin-left: 50px; margin-right: 50px;">';
     }
    -
    -/**
    - * Show footer for new member
    - *
    - * @return void
    - */
    -function llxFooterTicket()
    -{
    -    print '</div>';
    -
    -    printCommonFooter('public');
    -
    -    dol_htmloutput_events();
    -
    -    print "</body>\n";
    -    print "</html>\n";
    -}
    diff --git a/htdocs/core/lib/trip.lib.php b/htdocs/core/lib/trip.lib.php
    index 33f977bcf34..76dde5be734 100644
    --- a/htdocs/core/lib/trip.lib.php
    +++ b/htdocs/core/lib/trip.lib.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011	Regis Houssin	<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011	Regis Houssin	<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php
    index 81989d0aaa1..5747c0a5c0e 100644
    --- a/htdocs/core/lib/usergroups.lib.php
    +++ b/htdocs/core/lib/usergroups.lib.php
    @@ -1,7 +1,8 @@
     <?php
     /* Copyright (C) 2006-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2017	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2015	    Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2018       Ferran Marcet       <fmarcet@2byte.es>
      *
      * 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
    @@ -322,6 +323,10 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
     	if (empty($foruserprofile)) $hoverdisabled=(isset($conf->global->THEME_ELDY_USE_HOVER) && $conf->global->THEME_ELDY_USE_HOVER == '0');
     	else $hoverdisabled=(is_object($fuser)?(empty($fuser->conf->THEME_ELDY_USE_HOVER) || $fuser->conf->THEME_ELDY_USE_HOVER == '0'):'');
     
    +	$checkeddisabled='';
    +	if (empty($foruserprofile)) $checkeddisabled=(isset($conf->global->THEME_ELDY_USE_CHECKED) && $conf->global->THEME_ELDY_USE_CHECKED == '0');
    +	else $checkeddisabled=(is_object($fuser)?(empty($fuser->conf->THEME_ELDY_USE_CHECKED) || $fuser->conf->THEME_ELDY_USE_CHECKED == '0'):'');
    +
     	$colspan=2;
     	if ($foruserprofile) $colspan=4;
     
    @@ -816,8 +821,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
     	     print '</tr>';
     	     */
     	}
    -	else
    -	{
    +	else {
     		print '<tr class="oddeven">';
     		print '<td>'.$langs->trans("HighlightLinesColor").'</td>';
     		print '<td colspan="'.($colspan-1).'">';
    @@ -825,22 +829,66 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
     		//print ' &nbsp; ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
     		if ($edit)
     		{
    -			if ($conf->global->THEME_ELDY_USE_HOVER == '1') $color='edf4fb';
    +			if ($conf->global->THEME_ELDY_USE_HOVER == '1') $color='e6edf0';
     			else $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_USE_HOVER,array()),'');
     			print $formother->selectColor($color,'THEME_ELDY_USE_HOVER','formcolor',1).' ';
     		}
     		else
     		{
    -			if ($conf->global->THEME_ELDY_USE_HOVER == '1') $color='edf4fb';
    +			if ($conf->global->THEME_ELDY_USE_HOVER == '1') $color='e6edf0';
     			else $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_USE_HOVER,array()),'');
     			if ($color)
     			{
    -				if ($color != 'edf4fb') print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
    +				if ($color != 'e6edf0') print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
     				else print $langs->trans("Default");
     			}
     			else print $langs->trans("None");
     		}
    -		print ' &nbsp; <span class="nowraponall">('.$langs->trans("Default").': <strong>edf4fb</strong>) ';
    +		print ' &nbsp; <span class="nowraponall">('.$langs->trans("Default").': <strong>e6edf0</strong>) ';
    +		print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
    +		print '</span>';
    +		print '</td>';
    +	}
    +
    +	// Use Checked
    +	if ($foruserprofile)
    +	{
    +		/* Must first change option to choose color of highlight instead of yes or no.
    +	     print '<tr class="oddeven">';
    +	     print '<td>'.$langs->trans("HighlightLinesOnMouseHover").'</td>';
    +	     print '<td><input '.$bc[$var].' name="check_THEME_ELDY_USE_HOVER" disabled="disabled" type="checkbox" '.($conf->global->THEME_ELDY_USE_HOVER?" checked":"").'></td>';
    +	     print '<td align="left" class="nowrap" width="20%"><input '.$bc[$var].' name="check_MAIN_THEME"'.($edit?'':' disabled').' type="checkbox" '.($selected_theme?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
    +	     print '<td><input '.$bc[$var].' name="check_THEME_ELDY_USE_HOVER"'.($edit?'':' disabled="disabled"').' type="checkbox" '.($hoverdisabled?"":" checked").'>';
    +	     print ' &nbsp; ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
    +	     print '</td>';
    +	     print '</tr>';
    +	     */
    +	}
    +	else
    +	{
    +		print '<tr class="oddeven">';
    +		print '<td>'.$langs->trans("HighlightLinesChecked").'</td>';
    +		print '<td colspan="'.($colspan-1).'">';
    +		//print '<input '.$bc[$var].' name="check_THEME_ELDY_USE_HOVER"'.($edit?'':' disabled').' type="checkbox" '.($hoverdisabled?"":" checked").'>';
    +		//print ' &nbsp; ('.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
    +		if ($edit)
    +		{
    +			if ($conf->global->THEME_ELDY_USE_CHECKED == '1') $color='e6edf0';
    +			else $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_USE_CHECKED,array()),'');
    +			print $formother->selectColor($color,'THEME_ELDY_USE_CHECKED','formcolor',1).' ';
    +		}
    +		else
    +		{
    +			if ($conf->global->THEME_ELDY_USE_CHECKED == '1') $color='e6edf0';
    +			else $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_USE_CHECKED,array()),'');
    +			if ($color)
    +			{
    +				if ($color != 'e6edf0') print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; background-color: #'.$color.'" value="'.$color.'">';
    +				else print $langs->trans("Default");
    +			}
    +			else print $langs->trans("None");
    +		}
    +		print ' &nbsp; <span class="nowraponall">('.$langs->trans("Default").': <strong>e6edf0</strong>) ';
     		print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
     		print '</span>';
     		print '</td>';
    diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php
    index 4ca0812c9ee..da16b0846c5 100644
    --- a/htdocs/core/lib/website.lib.php
    +++ b/htdocs/core/lib/website.lib.php
    @@ -31,27 +31,58 @@
      * @param	string		$content			Content to replace
      * @param	int			$removephppart		0=Replace PHP sections with a PHP badge. 1=Remove completely PHP sections.
      * @return	boolean							True if OK
    + * @see dolWebsiteOutput for function used to replace content in a web server context
      */
     function dolWebsiteReplacementOfLinks($website, $content, $removephppart=0)
     {
    +	$nbrep = 0;
    +
     	// Replace php code. Note $content may come from database and does not contains body tags.
     	$replacewith='...php...';
     	if ($removephppart) $replacewith='';
     	$content = preg_replace('/value="<\?php((?!\?>).)*\?>\n*/ims', 'value="'.$replacewith.'"', $content);
     
    +	$replacewith='"callto=#';
    +	if ($removephppart) $replacewith='';
    +	$content = preg_replace('/"callto:<\?php((?!\?>).)*\?>\n*/ims', $replacewith, $content);
    +
    +	$replacewith='"mailto=#';
    +	if ($removephppart) $replacewith='';
    +	$content = preg_replace('/"mailto:<\?php((?!\?>).)*\?>\n*/ims', $replacewith, $content);
    +
    +	$replacewith='src="php';
    +	if ($removephppart) $replacewith='';
    +	$content = preg_replace('/src="<\?php((?!\?>).)*\?>\n*/ims', $replacewith, $content);
    +
    +	$replacewith='href="php';
    +	if ($removephppart) $replacewith='';
    +	$content = preg_replace('/href="<\?php((?!\?>).)*\?>\n*/ims', $replacewith, $content);
    +
    +	//$replacewith='<span class="phptag">...php...</span>';
     	$replacewith='<span class="phptag">...php...</span>';
     	if ($removephppart) $replacewith='';
    -	$content = preg_replace('/<\?php((?!\?>).)*\?>\n*/ims', $replacewith, $content);
    +	//$content = preg_replace('/<\?php((?!\?toremove>).)*\?toremove>\n*/ims', $replacewith, $content);
    +	/*if ($content === null) {
    +		if (preg_last_error() == PREG_JIT_STACKLIMIT_ERROR) $content = 'preg_replace error (when removing php tags) PREG_JIT_STACKLIMIT_ERROR';
    +	}*/
    +	$content = dolStripPhpCode($content, $replacewith);
    +	//var_dump($content);
     
     	// Replace relative link / with dolibarr URL
     	$content = preg_replace('/(href=")\/\"/', '\1'.DOL_URL_ROOT.'/website/index.php?website='.$website->ref.'&pageid='.$website->fk_default_home.'"', $content, -1, $nbrep);
     	// Replace relative link /xxx.php with dolibarr URL
     	$content = preg_replace('/(href=")\/?([^:\"]*)(\.php\")/', '\1'.DOL_URL_ROOT.'/website/index.php?website='.$website->ref.'&pageref=\2"', $content, -1, $nbrep);
     
    +	// Fix relative link into medias with correct URL after the DOL_URL_ROOT: ../url("medias/
     	$content = preg_replace('/url\((["\']?)medias\//', 'url(\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep);
    +	$content = preg_replace('/data-slide-bg=(["\']?)medias\//', 'data-slide-bg=\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep);
     
    +	// <img src="medias/image.png... => <img src="dolibarr/viewimage.php/modulepart=medias&file=image.png...
    +	$content = preg_replace('/(<img[^>]*src=")(medias\/)/', '\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep);
     	// <img src="image.png... => <img src="dolibarr/viewimage.php/modulepart=medias&file=image.png...
    -	$content = preg_replace('/(<img[^>]*src=")(?!(http|'.preg_quote(DOL_URL_ROOT,'/').'\/viewimage))/', '\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep);
    +	$content = preg_replace('/(<img[^>]*src=")(?!(http|\/?viewimage|'.preg_quote(DOL_URL_ROOT,'/').'\/viewimage))/', '\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep);
    +	// <img src="viewimage.php/modulepart=medias&file=image.png" => <img src="dolibarr/viewimage.php/modulepart=medias&file=image.png"
    +	$content = preg_replace('/(<img[^>]*src=")(\/?viewimage\.php)/', '\1'.DOL_URL_ROOT.'/viewimage.php', $content, -1, $nbrep);
     
     	// action="newpage.php" => action="dolibarr/website/index.php?website=...&pageref=newpage
     	$content = preg_replace('/(action=")\/?([^:\"]*)(\.php\")/', '\1'.DOL_URL_ROOT.'/website/index.php?website='.$website->ref.'&pageref=\2"', $content, -1, $nbrep);
    @@ -64,29 +95,73 @@ function dolWebsiteReplacementOfLinks($website, $content, $removephppart=0)
     }
     
     
    +/**
    + * Remove PHP code part from a string.
    + *
    + * @param 	string	$str			String to clean
    + * @param	string	$replacewith	String to use as replacement
    + * @return 	string					Result string without php code
    + */
    +function dolStripPhpCode($str, $replacewith='')
    +{
    +	$newstr = '';
    +
    +	//split on each opening tag
    +	$parts = explode('<?php',$str);
    +	if (!empty($parts))
    +	{
    +		$i=0;
    +		foreach($parts as $part)
    +		{
    +			if ($i == 0) 	// The first part is never php code
    +			{
    +				$i++;
    +				$newstr .= $part;
    +				continue;
    +			}
    +			//split on closing tag
    +			$partlings = explode('?>', $part);
    +			if (!empty($partlings))
    +			{
    +				//remove content before closing tag
    +				if (count($partlings) > 1) $partlings[0] = '';
    +				//append to out string
    +				$newstr .= $replacewith.implode('',$partlings);
    +			}
    +		}
    +	}
    +	return $newstr;
    +}
    +
    +
     /**
      * Render a string of an HTML content and output it.
      * Used to ouput the page when viewed from server (Dolibarr or Apache).
      *
      * @param   string  $content    Content string
      * @return  void
    - * @see	dolWebsiteSaveContent
    + * @see	dolWebsiteReplacementOfLinks  for function used to replace content in the backoffice context when USEDOLIBARREDITOR is not on
      */
     function dolWebsiteOutput($content)
     {
     	global $db, $langs, $conf, $user;
     	global $dolibarr_main_url_root, $dolibarr_main_data_root;
     
    -	dol_syslog("dolWebsiteOutput start (mode=".(defined('USEDOLIBARRSERVER')?'USEDOLIBARRSERVER':'').')');
    +	dol_syslog("dolWebsiteOutput start (USEDOLIBARRSERVER=".(defined('USEDOLIBARRSERVER')?'1':'')." (USEDOLIBARREDITOR=".(defined('USEDOLIBARREDITOR')?'1':'').')');
     
     	// Define $urlwithroot
     	$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
     	$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT;		// This is to use external domain name found into config file
     	//$urlwithroot=DOL_MAIN_URL_ROOT;					// This is to use same domain name than current
     
    -	// Note: This seems never called when page is output inside the website editor (search 'REPLACEMENT OF LINKS When page called by website editor')
    -
    -	if (defined('USEDOLIBARRSERVER'))	// REPLACEMENT OF LINKS When page called from Dolibarr server
    +	if (defined('USEDOLIBARREDITOR'))		// REPLACEMENT OF LINKS When page called from Dolibarr editor
    +	{
    +		// We remove the <head> part of content
    +		$content = preg_replace('/<head>.*<\/head>/ims', '', $content);
    +		$content = preg_replace('/^.*<body(\s[^>]*)*>/ims', '', $content);
    +		$content = preg_replace('/<\/body(\s[^>]*)*>.*$/ims', '', $content);
    +	}
    +	elseif (defined('USEDOLIBARRSERVER'))	// REPLACEMENT OF LINKS When page called from Dolibarr server
     	{
     		global $website;
     
    @@ -98,20 +173,29 @@ function dolWebsiteOutput($content)
     		$content=preg_replace('/(href=")\/?([a-zA-Z0-9\-]+)(\")/', '\1'.DOL_URL_ROOT.'/public/website/index.php?website='.$website->ref.'&pageref=\2\3', $content, -1, $nbrep);
     		$content=preg_replace('/(href=")\/?([a-zA-Z0-9\-]+)(\?)/', '\1'.DOL_URL_ROOT.'/public/website/index.php?website='.$website->ref.'&pageref=\2\3', $content, -1, $nbrep);
     
    -		// Fix relative link /document.php with correct URL after the DOL_URL_ROOT:  ...href="/document.php?modulepart="
    +		// Fix relative link /document.php with correct URL after the DOL_URL_ROOT:  href="/document.php?modulepart=" => href="/dolibarr/document.php?modulepart="
     		$content=preg_replace('/(href=")(\/?document\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep);
     		$content=preg_replace('/(src=")(\/?document\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep);
     
    -		// Fix relative link /viewimage.php with correct URL after the DOL_URL_ROOT:  ...href="/viewimage.php?modulepart="
    +		// Fix relative link /viewimage.php with correct URL after the DOL_URL_ROOT: href="/viewimage.php?modulepart=" => href="/dolibarr/viewimage.php?modulepart="
     		$content=preg_replace('/(href=")(\/?viewimage\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep);
    +		$content=preg_replace('/(src=")(\/?viewimage\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3', $content, -1, $nbrep);
     
     		// Fix relative link into medias with correct URL after the DOL_URL_ROOT: ../url("medias/
     		$content=preg_replace('/url\((["\']?)medias\//', 'url(\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep);
    +		$content=preg_replace('/data-slide-bg=(["\']?)medias\//', 'data-slide-bg=\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep);
    +
    +		// <img src="medias/image.png... => <img src="dolibarr/viewimage.php/modulepart=medias&file=image.png...
    +		$content = preg_replace('/(<img[^>]*src=")(medias\/)/', '\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep);
    +		// <img src="image.png... => <img src="dolibarr/viewimage.php/modulepart=medias&file=image.png...
    +		$content = preg_replace('/(<img[^>]*src=")(?!(http|\/?viewimage|'.preg_quote(DOL_URL_ROOT,'/').'\/viewimage))/', '\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep);
    +		// <img src="viewimage.php/modulepart=medias&file=image.png" => <img src="dolibarr/viewimage.php/modulepart=medias&file=image.png"
    +		$content = preg_replace('/(<img[^>]*src=")(\/?viewimage\.php)/', '\1'.DOL_URL_ROOT.'/viewimage.php', $content, -1, $nbrep);
     
     		// action="newpage.php" => action="dolibarr/website/index.php?website=...&pageref=newpage
     		$content = preg_replace('/(action=")\/?([^:\"]*)(\.php\")/', '\1'.DOL_URL_ROOT.'/public/website/index.php?website='.$website->ref.'&pageref=\2"', $content, -1, $nbrep);
     	}
    -	else								// REPLACEMENT OF LINKS When page called from virtual host
    +	else									// REPLACEMENT OF LINKS When page called from virtual host
     	{
     		$symlinktomediaexists=1;
     
    @@ -122,9 +206,17 @@ function dolWebsiteOutput($content)
     		$nbrep=0;
     		if (! $symlinktomediaexists)
     		{
    -			$content=preg_replace('/(<a[^>]*href=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1'.$urlwithroot.'/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep);
    -			$content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1'.$urlwithroot.'/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep);
    -			$content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/',  '\1'.$urlwithroot.'/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep);
    +			$content=preg_replace('/(<script[^>]*src=")[^\"]*document\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep);
    +
    +			$content=preg_replace('/(<a[^>]*href=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep);
    +			$content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep);
    +			$content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/',  '\1/wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep);
    +
    +			$content=preg_replace('/(<a[^>]*href=")[^\"]*viewimage\.php([^\"]*)hashp=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2hashp=\3\4', $content, -1, $nbrep);
    +			$content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)hashp=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2hashp=\3\4', $content, -1, $nbrep);
    +			$content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)hashp=([^\)]*)(["\']?\))/',  '\1/wrapper.php\2hashp\3\4', $content, -1, $nbrep);
    +
    +			$content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=mycompany([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=mycompany\3file=\4\5', $content, -1, $nbrep);
     		}
     		else
     		{
    @@ -133,6 +225,12 @@ function dolWebsiteOutput($content)
     			$content=preg_replace('/(<a[^>]*href=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1medias/\4\5', $content, -1, $nbrep);
     			$content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1medias/\4\5', $content, -1, $nbrep);
     			$content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/', '\1medias/\4\5', $content, -1, $nbrep);
    +
    +			$content=preg_replace('/(<a[^>]*href=")[^\"]*viewimage\.php([^\"]*)hashp=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2hashp=\3\4', $content, -1, $nbrep);
    +			$content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)hashp=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2hashp=\3\4', $content, -1, $nbrep);
    +			$content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)hashp=([^\)]*)(["\']?\))/', '\1/wrapper.php\2hashp=\3\4', $content, -1, $nbrep);
    +
    +			$content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=mycompany([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=mycompany\3file=\4\5', $content, -1, $nbrep);
     		}
     	}
     
    @@ -261,9 +359,9 @@ function redirectToContainer($containerref, $containeraliasalt='',$containerid=0
      */
     function includeContainer($containerref)
     {
    -	global $conf, $db, $langs, $mysoc, $user, $website;
    +	global $conf, $db, $hookmanager, $langs, $mysoc, $user, $website, $websitepage, $weblangs;	// Very important. Required to have var available when running inluded containers.
     	global $includehtmlcontentopened;
    -	global $websitekey;
    +	global $websitekey, $websitepagefile;
     
     	$MAXLEVEL=20;
     
    @@ -486,6 +584,31 @@ function getAllImages($object, $objectpage, $urltograb, &$tmp, &$action, $modify
     
     
     
    +/**
    + * Save content of a page on disk
    + *
    + * @param	string		$filemaster			Full path of filename master.inc.php for website to generate
    + * @return	boolean							True if OK
    + */
    +function dolSaveMasterFile($filemaster)
    +{
    +	global $conf;
    +
    +	// Now generate the master.inc.php page
    +	dol_syslog("We regenerate the master file");
    +	dol_delete_file($filemaster);
    +
    +	$mastercontent = '<?php'."\n";
    +	$mastercontent.= '// File generated to link to the master file - DO NOT MODIFY - It is just an include'."\n";
    +	$mastercontent.= "if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) require_once '".DOL_DOCUMENT_ROOT."/master.inc.php';\n";
    +	$mastercontent.= '?>'."\n";
    +	$result = file_put_contents($filemaster, $mastercontent);
    +	if (! empty($conf->global->MAIN_UMASK))
    +		@chmod($filemaster, octdec($conf->global->MAIN_UMASK));
    +
    +	return $result;
    +}
    +
     /**
      * Save content of a page on disk
      *
    @@ -508,10 +631,11 @@ function dolSavePageAlias($filealias, $object, $objectpage)
     	$aliascontent.= 'else require $dolibarr_main_data_root.\'/website/\'.$website->ref.\'/page'.$objectpage->id.'.tpl.php\';'."\n";
     	$aliascontent.= '?>'."\n";
     	$result = file_put_contents($filealias, $aliascontent);
    -	if (! empty($conf->global->MAIN_UMASK))
    -		@chmod($filealias, octdec($conf->global->MAIN_UMASK));
    +	if (! empty($conf->global->MAIN_UMASK)) {
    +        @chmod($filealias, octdec($conf->global->MAIN_UMASK));
    +    }
     
    -		return ($result?true:false);
    +	return ($result?true:false);
     }
     
     
    @@ -537,8 +661,8 @@ function dolSavePageContent($filetpl, $object, $objectpage)
     
     	$tplcontent ='';
     	$tplcontent.= "<?php // BEGIN PHP\n";
    -	$tplcontent.= '$websitekey=basename(dirname(__FILE__));'."\n";
    -	$tplcontent.= "if (! defined('USEDOLIBARRSERVER')) { require_once './master.inc.php'; } // Not already loaded"."\n";
    +	$tplcontent.= '$websitekey=basename(dirname(__FILE__)); if (empty($websitepagefile)) $websitepagefile=__FILE__;'."\n";
    +	$tplcontent.= "if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) { require_once './master.inc.php'; } // Not already loaded"."\n";
     	$tplcontent.= "require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';\n";
     	$tplcontent.= "require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';\n";
     	$tplcontent.= "ob_start();\n";
    @@ -554,10 +678,11 @@ function dolSavePageContent($filetpl, $object, $objectpage)
     	$tplcontent.= '<meta name="title" content="'.dol_string_nohtmltag($objectpage->title, 0, 'UTF-8').'" />'."\n";
     	$tplcontent.= '<meta name="description" content="'.dol_string_nohtmltag($objectpage->description, 0, 'UTF-8').'" />'."\n";
     	$tplcontent.= '<meta name="generator" content="'.DOL_APPLICATION_TITLE.' '.DOL_VERSION.' (https://www.dolibarr.org)" />'."\n";
    +	$tplcontent.= '<link href="/'.(($objectpage->id == $object->fk_default_home) ? '' : ($objectpage->pageurl.'.php')).'" rel="canonical" />'."\n";
     	$tplcontent.= '<!-- Include link to CSS file -->'."\n";
    -	$tplcontent.= '<link rel="stylesheet" href="styles.css.php?websiteid='.$object->id.'" type="text/css" />'."\n";
    +	$tplcontent.= '<link rel="stylesheet" href="styles.css.php?website=<?php echo $websitekey; ?>" type="text/css" />'."\n";
     	$tplcontent.= '<!-- Include HTML header from common file -->'."\n";
    -	$tplcontent.= '<?php print preg_replace(\'/<\/?html>/ims\', \'\', file_get_contents(DOL_DATA_ROOT."/website/'.$object->ref.'/htmlheader.html")); ?>'."\n";
    +	$tplcontent.= '<?php print preg_replace(\'/<\/?html>/ims\', \'\', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?>'."\n";
     	$tplcontent.= '<!-- Include HTML header from page header block -->'."\n";
     	$tplcontent.= preg_replace('/<\/?html>/ims', '', $objectpage->htmlheader)."\n";
     	$tplcontent.= '</head>'."\n";
    @@ -582,26 +707,28 @@ function dolSavePageContent($filetpl, $object, $objectpage)
     
     
     /**
    - * Save content of the index.php page
    + * Save content of the index.php and wrapper.php page
      *
      * @param	string		$pathofwebsite			Path of website root
      * @param	string		$fileindex				Full path of file index.php
      * @param	string		$filetpl				File tpl to index.php page redirect to
    + * @param	string		$filewrapper			Full path of file wrapper.php
      * @return	boolean								True if OK
      */
    -function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl)
    +function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl, $filewrapper)
     {
     	global $conf;
     
    -	$result=0;
    +	$result1=false;
    +	$result2=false;
     
     	dol_mkdir($pathofwebsite);
    -	dol_delete_file($fileindex);
     
    +	dol_delete_file($fileindex);
     	$indexcontent = '<?php'."\n";
     	$indexcontent.= "// BEGIN PHP File generated to provide an index.php as Home Page or alias redirector - DO NOT MODIFY - It is just a generated wrapper.\n";
    -	$indexcontent.= '$websitekey=basename(dirname(__FILE__));'."\n";
    -	$indexcontent.= "if (! defined('USEDOLIBARRSERVER')) { require_once './master.inc.php'; } // Load master if not already loaded\n";
    +	$indexcontent.= '$websitekey=basename(dirname(__FILE__)); if (empty($websitepagefile)) $websitepagefile=__FILE__;'."\n";
    +	$indexcontent.= "if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) { require_once './master.inc.php'; } // Load master if not already loaded\n";
     	$indexcontent.= 'if (! empty($_GET[\'pageref\']) || ! empty($_GET[\'pagealiasalt\']) || ! empty($_GET[\'pageid\'])) {'."\n";
     	$indexcontent.= "	require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';\n";
     	$indexcontent.= "	require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';\n";
    @@ -609,11 +736,19 @@ function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl)
     	$indexcontent.= "}\n";
     	$indexcontent.= "include_once './".basename($filetpl)."'\n";
     	$indexcontent.= '// END PHP ?>'."\n";
    -	$result = file_put_contents($fileindex, $indexcontent);
    +	$result1 = file_put_contents($fileindex, $indexcontent);
     	if (! empty($conf->global->MAIN_UMASK))
     		@chmod($fileindex, octdec($conf->global->MAIN_UMASK));
     
    -	return $result;
    +	dol_delete_file($filewrapper);
    +
    +	$wrappercontent=file_get_contents(DOL_DOCUMENT_ROOT.'/website/samples/wrapper.html');
    +
    +	$result2 = file_put_contents($filewrapper, $wrappercontent);
    +	if (! empty($conf->global->MAIN_UMASK))
    +		@chmod($filewrapper, octdec($conf->global->MAIN_UMASK));
    +
    +	return ($result1 && $result2);
     }
     
     
    @@ -751,5 +886,3 @@ function dolSaveHtaccessFile($filehtaccess, $htaccess)
     
     		return true;
     }
    -
    -
    diff --git a/htdocs/core/lib/xcal.lib.php b/htdocs/core/lib/xcal.lib.php
    index b0a30697413..10d68475c97 100644
    --- a/htdocs/core/lib/xcal.lib.php
    +++ b/htdocs/core/lib/xcal.lib.php
    @@ -64,7 +64,7 @@ function build_calfile($format,$title,$desc,$events_array,$outputfile)
             && $conf->global->MAIN_AGENDA_EXPORT_CACHE > 60){
     	        $hh=convertSecondToTime($conf->global->MAIN_AGENDA_EXPORT_CACHE,'hour');
     	        $mm=convertSecondToTime($conf->global->MAIN_AGENDA_EXPORT_CACHE,'min');
    -	        $ss=convertSecondToTime($conf->global->MAIN_AGENDA_EXPORT_CACHE,'sec'); 
    +	        $ss=convertSecondToTime($conf->global->MAIN_AGENDA_EXPORT_CACHE,'sec');
     	        fwrite($calfileh,"X-PUBLISHED-TTL: P".$hh."H".$mm."M".$ss."S\n");
             }
     
    @@ -263,7 +263,6 @@ function build_calfile($format,$title,$desc,$events_array,$outputfile)
     				$comment ['enddate']		= $enddate;
     				fwrite($calfileh,"COMMENT:" . serialize ($comment) . "\n");
     				*/
    -
     			}
     		}
     
    @@ -520,4 +519,3 @@ function quotedPrintDecode($str)
     	$out = quoted_printable_decode($out);	// Available with PHP 4+
     	return trim($out);
     }
    -
    diff --git a/htdocs/core/login/functions_dolibarr.php b/htdocs/core/login/functions_dolibarr.php
    index 25d5f2dc30c..70cb1e4fa86 100644
    --- a/htdocs/core/login/functions_dolibarr.php
    +++ b/htdocs/core/login/functions_dolibarr.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2015 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2015 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2011 Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -111,8 +111,10 @@ function check_user_password_dolibarr($usertotest,$passwordtotest,$entitytotest=
     				{
     					dol_syslog("functions_dolibarr::check_user_password_dolibarr Authentification ko bad password for '".$usertotest."'");
     					sleep(2);      // Anti brut force protection
    -					$langs->load('main');
    -					$langs->load('errors');
    +
    +					// Load translation files required by the page
    +                    $langs->loadLangs(array('main', 'errors'));
    +
     					$_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword");
     				}
     
    @@ -137,8 +139,10 @@ function check_user_password_dolibarr($usertotest,$passwordtotest,$entitytotest=
     			{
     				dol_syslog("functions_dolibarr::check_user_password_dolibarr Authentification ko user not found for '".$usertotest."'");
     				sleep(1);
    -				$langs->load('main');
    -				$langs->load('errors');
    +
    +				// Load translation files required by the page
    +                $langs->loadLangs(array('main', 'errors'));
    +
     				$_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword");
     			}
     		}
    diff --git a/htdocs/core/login/functions_empty.php b/htdocs/core/login/functions_empty.php
    index b2ce4a3c533..a8b90de0e46 100644
    --- a/htdocs/core/login/functions_empty.php
    +++ b/htdocs/core/login/functions_empty.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/login/functions_ldap.php b/htdocs/core/login/functions_ldap.php
    index d468c882b2d..4587dbae11b 100644
    --- a/htdocs/core/login/functions_ldap.php
    +++ b/htdocs/core/login/functions_ldap.php
    @@ -54,8 +54,10 @@ function check_user_password_ldap($usertotest,$passwordtotest,$entitytotest)
     	{
     		dol_syslog("functions_ldap::check_user_password_ldap Authentification ko failed to connect to LDAP. LDAP functions are disabled on this PHP");
     		sleep(1);
    -		$langs->load('main');
    -		$langs->load('other');
    +
    +		// Load translation files required by the page
    +        $langs->loadLangs(array('main', 'other'));
    +
     		$_SESSION["dol_loginmesg"]=$langs->trans("ErrorLDAPFunctionsAreDisabledOnThisPHP").' '.$langs->trans("TryAnotherConnectionMode");
     		return;
     	}
    @@ -201,14 +203,15 @@ function check_user_password_ldap($usertotest,$passwordtotest,$entitytotest)
     					}
     					unset($usertmp);
     				}
    -
     			}
     			if ($result == 1)
     			{
     				dol_syslog("functions_ldap::check_user_password_ldap Authentification ko bad user/password for '".$usertotest."'");
     				sleep(1);
    -				$langs->load('main');
    -				$langs->load('other');
    +
    +				// Load translation files required by the page
    +                $langs->loadLangs(array('main', 'other'));
    +
     				$_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword");
     			}
     		}
    @@ -230,9 +233,10 @@ function check_user_password_ldap($usertotest,$passwordtotest,$entitytotest)
     				dol_syslog("functions_ldap::check_user_password_ldap ".$ldap->ldapErrorCode." ".$ldap->ldapErrorText);
     			}
     			sleep(2);      // Anti brut force protection
    -			$langs->load('main');
    -			$langs->load('other');
    -			$langs->load('errors');
    +
    +			// Load translation files required by the page
    +            $langs->loadLangs(array('main', 'other', 'errors'));
    +;
     			$_SESSION["dol_loginmesg"]=($ldap->error?$ldap->error:$langs->trans("ErrorBadLoginPassword"));
     		}
     
    diff --git a/htdocs/core/login/functions_openid.php b/htdocs/core/login/functions_openid.php
    index 83543c43dd5..bc8d7f45122 100644
    --- a/htdocs/core/login/functions_openid.php
    +++ b/htdocs/core/login/functions_openid.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -70,7 +70,7 @@ function check_user_password_openid($usertotest,$passwordtotest,$entitytotest)
             $openid = new SimpleOpenID();
             $openid->SetIdentity($_GET['openid_identity']);
             $openid_validation_result = $openid->ValidateWithServer();
    -        if ($openid_validation_result == true)
    +        if ($openid_validation_result === true)
             {
                 // OK HERE KEY IS VALID
     
    @@ -90,7 +90,7 @@ function check_user_password_openid($usertotest,$passwordtotest,$entitytotest)
                     }
                 }
             }
    -        else if($openid->IsError() == true)
    +        else if($openid->IsError() === true)
             {
                 // ON THE WAY, WE GOT SOME ERROR
                 $error = $openid->GetError();
    diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql
    index c8d2692c2f5..f49c4cb6027 100644
    --- a/htdocs/core/menus/init_menu_auguria.sql
    +++ b/htdocs/core/menus/init_menu_auguria.sql
    @@ -24,209 +24,214 @@ insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, left
     insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '1', __HANDLER__, 'left', 90__+MAX_llx_menu__, 'home', '', 1__+MAX_llx_menu__, '/index.php', 'MyDashboard', 0, '', '', '', 2, 0, __ENTITY__);
     
     -- Home - Setup
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$user->admin', __HANDLER__, 'left', 100__+MAX_llx_menu__, 'home', 'setup', 1__+MAX_llx_menu__, '/admin/index.php?leftmenu=setup', 'Setup', 0, 'admin', '', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 101__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/company.php?leftmenu=setup', 'MenuCompanySetup', 1, 'admin', '', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 102__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/ihm.php?leftmenu=setup', 'GUISetup', 1, 'admin', '', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 114__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/translation.php?leftmenu=setup', 'Translation', 1, 'admin', '', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$user->admin', __HANDLER__, 'left', 100__+MAX_llx_menu__, 'home', 'setup', 1__+MAX_llx_menu__, '/admin/index.php?mainmenu=home&amp;leftmenu=setup', 'Setup', 0, 'admin', '', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 101__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/company.php?mainmenu=home&amp;leftmenu=setup', 'MenuCompanySetup', 1, 'admin', '', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 102__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/ihm.php?mainmenu=home&amp;leftmenu=setup', 'GUISetup', 1, 'admin', '', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 114__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/translation.php?mainmenu=home&amp;leftmenu=setup', 'Translation', 1, 'admin', '', '', 2, 4, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 103__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/modules.php?leftmenu=setup', 'Modules', 1, 'admin', '', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 104__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/boxes.php?leftmenu=setup', 'Boxes', 1, 'admin', '', '', 2, 6, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 105__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/menus.php?leftmenu=setup', 'Menus', 1, 'admin', '', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 106__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/delais.php?leftmenu=setup', 'Alerts', 1, 'admin', '', '', 2, 7, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 108__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/security_other.php?leftmenu=setup', 'Security', 1, 'admin', '', '', 2, 8, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 110__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/limits.php?leftmenu=setup', 'MenuLimits', 1, 'admin', '', '', 2, 9, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 107__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/pdf.php?leftmenu=setup', 'PDF', 1, 'admin', '', '', 2, 10, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 109__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/mails.php?leftmenu=setup', 'Emails', 1, 'admin', '', '', 2, 11, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 113__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/sms.php?leftmenu=setup', 'SMS', 1, 'admin', '', '', 2, 12, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 111__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/dict.php?leftmenu=setup', 'Dictionary', 1, 'admin', '', '', 2, 13, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 112__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/const.php?leftmenu=setup', 'OtherSetup', 1, 'admin', '', '', 2, 14, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 103__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/modules.php?mainmenu=home&amp;leftmenu=setup', 'Modules', 1, 'admin', '', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 104__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/boxes.php?mainmenu=home&amp;leftmenu=setup', 'Boxes', 1, 'admin', '', '', 2, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 105__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/menus.php?mainmenu=home&amp;leftmenu=setup', 'Menus', 1, 'admin', '', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 106__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/delais.php?mainmenu=home&amp;leftmenu=setup', 'Alerts', 1, 'admin', '', '', 2, 7, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 108__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/security_other.php?mainmenu=home&amp;leftmenu=setup', 'Security', 1, 'admin', '', '', 2, 8, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 110__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/limits.php?mainmenu=home&amp;leftmenu=setup', 'MenuLimits', 1, 'admin', '', '', 2, 9, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 107__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/pdf.php?mainmenu=home&amp;leftmenu=setup', 'PDF', 1, 'admin', '', '', 2, 10, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 109__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/mails.php?mainmenu=home&amp;leftmenu=setup', 'Emails', 1, 'admin', '', '', 2, 11, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 113__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/sms.php?mainmenu=home&amp;leftmenu=setup', 'SMS', 1, 'admin', '', '', 2, 12, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 111__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/dict.php?mainmenu=home&amp;leftmenu=setup', 'Dictionary', 1, 'admin', '', '', 2, 13, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="setup"', __HANDLER__, 'left', 112__+MAX_llx_menu__, 'home', '', 100__+MAX_llx_menu__, '/admin/const.php?mainmenu=home&amp;leftmenu=setup', 'OtherSetup', 1, 'admin', '', '', 2, 14, __ENTITY__);
     -- Home - Admin tools
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$user->admin', __HANDLER__, 'left', 300__+MAX_llx_menu__, 'home', 'admintools', 1__+MAX_llx_menu__, '/admin/tools/index.php?leftmenu=admintools', 'AdminTools', 0, 'admin', '', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 201__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/dolibarr.php?leftmenu=admintools', 'InfoDolibarr', 1, 'admin', '', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 202__+MAX_llx_menu__, 'home', '', 201__+MAX_llx_menu__, '/admin/system/modules.php?leftmenu=admintools', 'Modules', 2, 'admin', '', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 203__+MAX_llx_menu__, 'home', '', 201__+MAX_llx_menu__, '/admin/triggers.php?leftmenu=admintools', 'Triggers', 2, 'admin', '', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 204__+MAX_llx_menu__, 'home', '', 201__+MAX_llx_menu__, '/admin/system/filecheck.php?leftmenu=admintools', 'FileCheck', 2, 'admin', '', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 205__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/browser.php?leftmenu=admintools', 'InfoBrowser', 1, 'admin', '', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 206__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/os.php?leftmenu=admintools', 'InfoOS', 1, 'admin', '', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 207__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/web.php?leftmenu=admintools', 'InfoWebServer', 1, 'admin', '', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 208__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/phpinfo.php?leftmenu=admintools', 'InfoPHP', 1, 'admin', '', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 210__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/database.php?leftmenu=admintools', 'InfoDatabase', 1, 'admin', '', '', 2, 5, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 301__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/dolibarr_export.php?leftmenu=admintools', 'Backup', 1, 'admin', '', '', 2, 6, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 302__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/dolibarr_import.php?leftmenu=admintools', 'Restore', 1, 'admin', '', '', 2, 7, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 305__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/update.php?leftmenu=admintools', 'MenuUpgrade', 1, 'admin', '', '', 2, 8, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools" && function_exists("eaccelerator_info")', __HANDLER__, 'left', 306__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/eaccelerator.php?leftmenu=admintools', 'EAccelerator', 1, 'admin', '', '', 2, 9, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 307__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/listevents.php?leftmenu=admintools', 'Audit', 1, 'admin', '', '', 2, 10, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 308__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/listsessions.php?leftmenu=admintools', 'Sessions', 1, 'admin', '', '', 2, 11, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 309__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/purge.php?leftmenu=admintools', 'Purge', 1, 'admin', '', '', 2, 12, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 311__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/about.php?leftmenu=admintools', 'ExternalResources', 1, 'admin', '', '', 2, 14, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$user->admin', __HANDLER__, 'left', 300__+MAX_llx_menu__, 'home', 'admintools', 1__+MAX_llx_menu__, '/admin/tools/index.php?mainmenu=home&amp;leftmenu=admintools', 'AdminTools', 0, 'admin', '', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 201__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/dolibarr.php?mainmenu=home&amp;leftmenu=admintools', 'InfoDolibarr', 1, 'admin', '', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 202__+MAX_llx_menu__, 'home', '', 201__+MAX_llx_menu__, '/admin/system/modules.php?mainmenu=home&amp;leftmenu=admintools', 'Modules', 2, 'admin', '', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 203__+MAX_llx_menu__, 'home', '', 201__+MAX_llx_menu__, '/admin/triggers.php?mainmenu=home&amp;leftmenu=admintools', 'Triggers', 2, 'admin', '', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 204__+MAX_llx_menu__, 'home', '', 201__+MAX_llx_menu__, '/admin/system/filecheck.php?mainmenu=home&amp;leftmenu=admintools', 'FileCheck', 2, 'admin', '', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 205__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/browser.php?mainmenu=home&amp;leftmenu=admintools', 'InfoBrowser', 1, 'admin', '', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 206__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/os.php?mainmenu=home&amp;leftmenu=admintools', 'InfoOS', 1, 'admin', '', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 207__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/web.php?mainmenu=home&amp;leftmenu=admintools', 'InfoWebServer', 1, 'admin', '', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 208__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/phpinfo.php?mainmenu=home&amp;leftmenu=admintools', 'InfoPHP', 1, 'admin', '', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 210__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/database.php?mainmenu=home&amp;leftmenu=admintools', 'InfoDatabase', 1, 'admin', '', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 301__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/dolibarr_export.php?mainmenu=home&amp;leftmenu=admintools', 'Backup', 1, 'admin', '', '', 2, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 302__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/dolibarr_import.php?mainmenu=home&amp;leftmenu=admintools', 'Restore', 1, 'admin', '', '', 2, 7, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 305__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/update.php?mainmenu=home&amp;leftmenu=admintools', 'MenuUpgrade', 1, 'admin', '', '', 2, 8, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools" && function_exists("eaccelerator_info")', __HANDLER__, 'left', 306__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/eaccelerator.php?mainmenu=home&amp;leftmenu=admintools', 'EAccelerator', 1, 'admin', '', '', 2, 9, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 307__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/listevents.php?mainmenu=home&amp;leftmenu=admintools', 'Audit', 1, 'admin', '', '', 2, 10, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 308__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/listsessions.php?mainmenu=home&amp;leftmenu=admintools', 'Sessions', 1, 'admin', '', '', 2, 11, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 309__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/tools/purge.php?mainmenu=home&amp;leftmenu=admintools', 'Purge', 1, 'admin', '', '', 2, 12, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 311__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/admin/system/about.php?mainmenu=home&amp;leftmenu=admintools', 'ExternalResources', 1, 'admin', '', '', 2, 14, __ENTITY__);
     
     insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="admintools"', __HANDLER__, 'left', 320__+MAX_llx_menu__, 'home', '', 300__+MAX_llx_menu__, '/product/admin/product_tools.php?mainmenu=home&amp;leftmenu=admintools', 'ProductVatMassChange', 1, 'products', '', '', 2, 15, __ENTITY__);
     -- Home - Menu users and groups
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '1', __HANDLER__, 'left', 400__+MAX_llx_menu__, 'home', 'users', 1__+MAX_llx_menu__, '/user/home.php?leftmenu=users', 'MenuUsersAndGroups', 0, 'users', '', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '1', __HANDLER__, 'left', 400__+MAX_llx_menu__, 'home', 'users', 1__+MAX_llx_menu__, '/user/home.php?mainmenu=home&amp;leftmenu=users', 'MenuUsersAndGroups', 0, 'users', '', '', 2, 4, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 401__+MAX_llx_menu__, 'home', '', 400__+MAX_llx_menu__, '/user/list.php?leftmenu=users', 'Users', 1, 'users', '$user->rights->user->user->lire || $user->admin', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 402__+MAX_llx_menu__, 'home', '', 401__+MAX_llx_menu__, '/user/card.php?leftmenu=users&amp;action=create', 'NewUser', 2, 'users', '($user->rights->user->user->creer || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 401__+MAX_llx_menu__, 'home', '', 400__+MAX_llx_menu__, '/user/list.php?mainmenu=home&amp;leftmenu=users', 'Users', 1, 'users', '$user->rights->user->user->lire || $user->admin', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 402__+MAX_llx_menu__, 'home', '', 401__+MAX_llx_menu__, '/user/card.php?mainmenu=home&amp;leftmenu=users&amp;action=create', 'NewUser', 2, 'users', '($user->rights->user->user->creer || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)', '', 2, 0, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 404__+MAX_llx_menu__, 'home', '', 401__+MAX_llx_menu__, '/user/hierarchy.php?leftmenu=users', 'HierarchicView', 1, 'users', '$user->rights->user->user->lire || $user->admin', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 405__+MAX_llx_menu__, 'home', '', 401__+MAX_llx_menu__, '/categories/index.php?leftmenu=users&type=7', 'UsersCategoriesShort', 1, 'categories', '$user->rights->user->user->lire || $user->admin', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 404__+MAX_llx_menu__, 'home', '', 401__+MAX_llx_menu__, '/user/hierarchy.php?mainmenu=home&amp;leftmenu=users', 'HierarchicView', 1, 'users', '$user->rights->user->user->lire || $user->admin', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 405__+MAX_llx_menu__, 'home', '', 401__+MAX_llx_menu__, '/categories/index.php?mainmenu=home&amp;leftmenu=users&type=7', 'UsersCategoriesShort', 1, 'categories', '$user->rights->user->user->lire || $user->admin', '', 2, 0, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 407__+MAX_llx_menu__, 'home', '', 400__+MAX_llx_menu__, '/user/group/list.php?leftmenu=users', 'Groups', 1, 'users', '(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->read:$user->rights->user->user->lire) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 408__+MAX_llx_menu__, 'home', '', 407__+MAX_llx_menu__, '/user/group/card.php?leftmenu=users&amp;action=create', 'NewGroup', 2, 'users', '(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->write:$user->rights->user->user->creer) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 407__+MAX_llx_menu__, 'home', '', 400__+MAX_llx_menu__, '/user/group/list.php?mainmenu=home&amp;leftmenu=users', 'Groups', 1, 'users', '(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->read:$user->rights->user->user->lire) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$leftmenu=="users"', __HANDLER__, 'left', 408__+MAX_llx_menu__, 'home', '', 407__+MAX_llx_menu__, '/user/group/card.php?mainmenu=home&amp;leftmenu=users&amp;action=create', 'NewGroup', 2, 'users', '(($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->write:$user->rights->user->user->creer) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE)', '', 2, 0, __ENTITY__);
     
     -- Third parties
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 500__+MAX_llx_menu__, 'companies', 'thirdparties', 2__+MAX_llx_menu__, '/societe/index.php?leftmenu=thirdparties', 'ThirdParty', 0, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 501__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/card.php?action=create', 'MenuNewThirdParty', 1, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 502__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?action=create', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 503__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?type=f&leftmenu=suppliers', 'ListSuppliersShort', 1, 'suppliers', '$user->rights->societe->lire && $user->rights->fournisseur->lire', '', 2, 5, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 504__+MAX_llx_menu__, 'companies', '', 503__+MAX_llx_menu__, '/societe/card.php?leftmenu=supplier&amp;action=create&amp;type=f', 'NewSupplier', 2, 'suppliers', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 506__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?type=p&leftmenu=prospects', 'ListProspectsShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 507__+MAX_llx_menu__, 'companies', '', 506__+MAX_llx_menu__, '/societe/card.php?leftmenu=prospects&amp;action=create&amp;type=p', 'MenuNewProspect', 2, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 509__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?type=c&leftmenu=customers', 'ListCustomersShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 510__+MAX_llx_menu__, 'companies', '', 509__+MAX_llx_menu__, '/societe/card.php?leftmenu=customers&amp;action=create&amp;type=c', 'MenuNewCustomer', 2, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 500__+MAX_llx_menu__, 'companies', 'thirdparties', 2__+MAX_llx_menu__, '/societe/index.php?mainmenu=companies&amp;leftmenu=thirdparties', 'ThirdParty', 0, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 501__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&amp;action=create', 'MenuNewThirdParty', 1, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 502__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&amp;action=create', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 503__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&amp;type=f&leftmenu=suppliers', 'ListSuppliersShort', 1, 'suppliers', '$user->rights->societe->lire && $user->rights->fournisseur->lire', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 504__+MAX_llx_menu__, 'companies', '', 503__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&amp;leftmenu=supplier&amp;action=create&amp;type=f', 'NewSupplier', 2, 'suppliers', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 506__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&amp;type=p&leftmenu=prospects', 'ListProspectsShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 507__+MAX_llx_menu__, 'companies', '', 506__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&amp;leftmenu=prospects&amp;action=create&amp;type=p', 'MenuNewProspect', 2, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 509__+MAX_llx_menu__, 'companies', '', 500__+MAX_llx_menu__, '/societe/list.php?mainmenu=companies&amp;type=c&leftmenu=customers', 'ListCustomersShort', 1, 'companies', '$user->rights->societe->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 510__+MAX_llx_menu__, 'companies', '', 509__+MAX_llx_menu__, '/societe/card.php?mainmenu=companies&amp;leftmenu=customers&amp;action=create&amp;type=c', 'MenuNewCustomer', 2, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
     -- Third parties - Contacts
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 600__+MAX_llx_menu__, 'companies', 'contacts', 2__+MAX_llx_menu__, '/contact/list.php?leftmenu=contacts', 'ContactsAddresses', 0, 'companies', '$user->rights->societe->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 601__+MAX_llx_menu__, 'companies', '', 600__+MAX_llx_menu__, '/contact/card.php?leftmenu=contacts&amp;action=create', 'NewContactAddress', 1, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 602__+MAX_llx_menu__, 'companies', '', 600__+MAX_llx_menu__, '/contact/list.php?leftmenu=contacts', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 604__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?leftmenu=contacts&amp;type=p', 'ThirdPartyProspects', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 605__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?leftmenu=contacts&amp;type=c', 'ThirdPartyCustomers', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 606__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?leftmenu=contacts&amp;type=f', 'ThirdPartySuppliers', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 607__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?leftmenu=contacts&amp;type=o', 'Others', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 600__+MAX_llx_menu__, 'companies', 'contacts', 2__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&amp;leftmenu=contacts', 'ContactsAddresses', 0, 'companies', '$user->rights->societe->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 601__+MAX_llx_menu__, 'companies', '', 600__+MAX_llx_menu__, '/contact/card.php?mainmenu=companies&amp;leftmenu=contacts&amp;action=create', 'NewContactAddress', 1, 'companies', '$user->rights->societe->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 602__+MAX_llx_menu__, 'companies', '', 600__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&amp;leftmenu=contacts', 'List', 1, 'companies', '$user->rights->societe->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 604__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&amp;leftmenu=contacts&amp;type=p', 'ThirdPartyProspects', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 605__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&amp;leftmenu=contacts&amp;type=c', 'ThirdPartyCustomers', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 606__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&amp;leftmenu=contacts&amp;type=f', 'ThirdPartySuppliers', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled', __HANDLER__, 'left', 607__+MAX_llx_menu__, 'companies', '', 602__+MAX_llx_menu__, '/contact/list.php?mainmenu=companies&amp;leftmenu=contacts&amp;type=o', 'Others', 2, 'companies', '$user->rights->societe->contact->lire', '', 2, 4, __ENTITY__);
     -- Third parties - Category customer
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 650__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&amp;type=1', 'SuppliersCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 651__+MAX_llx_menu__, 'companies', '', 650__+MAX_llx_menu__, '/categories/card.php?action=create&amp;type=1', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 650__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?mainmenu=companies&amp;leftmenu=cat&amp;type=1', 'SuppliersCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 651__+MAX_llx_menu__, 'companies', '', 650__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&amp;action=create&amp;type=1', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
     -- Third parties - Category supplier
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->fournisseur->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 660__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&amp;type=2', 'CustomersProspectsCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->fournisseur->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 661__+MAX_llx_menu__, 'companies', '', 660__+MAX_llx_menu__, '/categories/card.php?action=create&amp;type=2', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->fournisseur->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 660__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?mainmenu=companies&amp;leftmenu=cat&amp;type=2', 'CustomersProspectsCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->fournisseur->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 661__+MAX_llx_menu__, 'companies', '', 660__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&amp;action=create&amp;type=2', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
     -- Third parties - Category contact
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 670__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&amp;type=4', 'ContactCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 671__+MAX_llx_menu__, 'companies', '', 670__+MAX_llx_menu__, '/categories/card.php?action=create&amp;type=4', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 670__+MAX_llx_menu__, 'companies', 'cat', 2__+MAX_llx_menu__, '/categories/index.php?mainmenu=companies&amp;leftmenu=cat&amp;type=4', 'ContactCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->societe->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 671__+MAX_llx_menu__, 'companies', '', 670__+MAX_llx_menu__, '/categories/card.php?mainmenu=companies&amp;action=create&amp;type=4', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
     -- Product - Product
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2800__+MAX_llx_menu__, 'products', 'product', 3__+MAX_llx_menu__, '/product/index.php?leftmenu=product&amp;type=0', 'Products', 0, 'products', '$user->rights->produit->lire', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2801__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/card.php?leftmenu=product&amp;action=create&amp;type=0', 'NewProduct', 1, 'products', '$user->rights->produit->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2802__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/list.php?leftmenu=product&amp;type=0', 'List', 1, 'products', '$user->rights->produit->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2803__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassort.php?type=0', 'Stocks', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->productbatch->enabled', __HANDLER__, 'left', 2805__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassortlot.php?type=0', 'StocksByLotSerial', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 5, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->productbatch->enabled', __HANDLER__, 'left', 2806__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/stock/productlot_list.php', 'LotSerial', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2800__+MAX_llx_menu__, 'products', 'product', 3__+MAX_llx_menu__, '/product/index.php?mainmenu=products&amp;leftmenu=product&amp;type=0', 'Products', 0, 'products', '$user->rights->produit->lire', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2801__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/card.php?mainmenu=products&amp;leftmenu=product&amp;action=create&amp;type=0', 'NewProduct', 1, 'products', '$user->rights->produit->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2802__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/list.php?mainmenu=products&amp;leftmenu=product&amp;type=0', 'List', 1, 'products', '$user->rights->produit->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->product->enabled', __HANDLER__, 'left', 2803__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassort.php?mainmenu=products&amp;type=0', 'Stocks', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->productbatch->enabled', __HANDLER__, 'left', 2805__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/reassortlot.php?mainmenu=products&amp;type=0', 'StocksByLotSerial', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->productbatch->enabled', __HANDLER__, 'left', 2806__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/stock/productlot_list.php?mainmenu=products', 'LotSerial', 1, 'products', '$user->rights->produit->lire && $user->rights->stock->lire', '', 2, 6, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->variants->enabled', __HANDLER__, 'left', 2807__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/variants/list.php', 'VariantAttributes', 1, 'products', '$user->rights->produit->lire', '', 2, 7, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->variants->enabled', __HANDLER__, 'left', 2807__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/variants/list.php?mainmenu=products', 'VariantAttributes', 1, 'products', '$user->rights->produit->lire', '', 2, 7, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 2804__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/stats/card.php?id=all&amp;leftmenu=stats&amp;type=0', 'Statistics', 1, 'main', '$user->rights->produit->lire', '', 2, 8, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 2804__+MAX_llx_menu__, 'products', '', 2800__+MAX_llx_menu__, '/product/stats/card.php?mainmenu=products&amp;id=all&amp;leftmenu=stats&amp;type=0', 'Statistics', 1, 'main', '$user->rights->produit->lire', '', 2, 8, __ENTITY__);
     -- Product - Services
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->service->enabled', __HANDLER__, 'left', 2900__+MAX_llx_menu__, 'products', 'service', 3__+MAX_llx_menu__, '/product/index.php?leftmenu=service&amp;type=1', 'Services', 0, 'products', '$user->rights->service->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->service->enabled', __HANDLER__, 'left', 2901__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/card.php?leftmenu=service&amp;action=create&amp;type=1', 'NewService', 1, 'products', '$user->rights->service->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->service->enabled', __HANDLER__, 'left', 2902__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/list.php?leftmenu=service&amp;type=1', 'List', 1, 'products', '$user->rights->service->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 2903__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/stats/card.php?id=all&amp;leftmenu=stats&amp;type=1', 'Statistics', 1, 'main', '$user->rights->service->lire', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->service->enabled', __HANDLER__, 'left', 2900__+MAX_llx_menu__, 'products', 'service', 3__+MAX_llx_menu__, '/product/index.php?mainmenu=products&amp;leftmenu=service&amp;type=1', 'Services', 0, 'products', '$user->rights->service->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->service->enabled', __HANDLER__, 'left', 2901__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/card.php?mainmenu=products&amp;leftmenu=service&amp;action=create&amp;type=1', 'NewService', 1, 'products', '$user->rights->service->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->service->enabled', __HANDLER__, 'left', 2902__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/list.php?mainmenu=products&amp;leftmenu=service&amp;type=1', 'List', 1, 'products', '$user->rights->service->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 2903__+MAX_llx_menu__, 'products', '', 2900__+MAX_llx_menu__, '/product/stats/card.php?mainmenu=products&amp;id=all&amp;leftmenu=stats&amp;type=1', 'Statistics', 1, 'main', '$user->rights->service->lire', '', 2, 5, __ENTITY__);
     -- Product - Stocks
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3100__+MAX_llx_menu__, 'products', 'stock', 3__+MAX_llx_menu__, '/product/stock/index.php?leftmenu=stock', 'Stock', 0, 'stocks', '$user->rights->stock->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3101__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/card.php?action=create', 'MenuNewWarehouse', 1, 'stocks', '$user->rights->stock->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3102__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/list.php', 'List', 1, 'stocks', '$user->rights->stock->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3104__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/mouvement.php', 'Movements', 1, 'stocks', '$user->rights->stock->mouvement->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled && $conf->supplier_order->enabled', __HANDLER__, 'left', 3105__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/replenish.php', 'Replenishments', 1, 'stocks', '$user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3106__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/massstockmove.php', 'MassStockTransferShort', 1, 'stocks', '$user->rights->stock->mouvement->creer', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3100__+MAX_llx_menu__, 'products', 'stock', 3__+MAX_llx_menu__, '/product/stock/index.php?mainmenu=products&amp;leftmenu=stock', 'Stock', 0, 'stocks', '$user->rights->stock->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3101__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/card.php?mainmenu=products&amp;action=create', 'MenuNewWarehouse', 1, 'stocks', '$user->rights->stock->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3102__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/list.php?mainmenu=products', 'List', 1, 'stocks', '$user->rights->stock->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3104__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/movement_list.php?mainmenu=products', 'Movements', 1, 'stocks', '$user->rights->stock->mouvement->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled && $conf->supplier_order->enabled', __HANDLER__, 'left', 3105__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/replenish.php?mainmenu=products', 'Replenishments', 1, 'stocks', '$user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3106__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/massstockmove.php?mainmenu=products', 'MassStockTransferShort', 1, 'stocks', '$user->rights->stock->mouvement->creer', '', 2, 5, __ENTITY__);
     
     -- Product - Categories
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3200__+MAX_llx_menu__, 'products', 'cat', 3__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&amp;type=0', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3201__+MAX_llx_menu__, 'products', '', 3200__+MAX_llx_menu__, '/categories/card.php?action=create&amp;type=0', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3200__+MAX_llx_menu__, 'products', 'cat', 3__+MAX_llx_menu__, '/categories/index.php?mainmenu=products&amp;leftmenu=cat&amp;type=0', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3201__+MAX_llx_menu__, 'products', '', 3200__+MAX_llx_menu__, '/categories/card.php?mainmenu=products&amp;action=create&amp;type=0', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
     -- Product - Shipment
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expedition->enabled', __HANDLER__, 'left', 1300__+MAX_llx_menu__, 'commercial', 'sendings', 3__+MAX_llx_menu__, '/expedition/index.php?leftmenu=sendings', 'Shipments', 0, 'sendings', '$user->rights->expedition->lire', '', 2, 6, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expedition->enabled && $leftmenu=="sendings"', __HANDLER__, 'left', 1301__+MAX_llx_menu__, 'commercial', '', 1300__+MAX_llx_menu__, '/expedition/card.php?action=create2&leftmenu=sendings', 'NewSending', 1, 'sendings', '$user->rights->expedition->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expedition->enabled && $leftmenu=="sendings"', __HANDLER__, 'left', 1302__+MAX_llx_menu__, 'commercial', '', 1300__+MAX_llx_menu__, '/expedition/list.php?leftmenu=sendings', 'List', 1, 'sendings', '$user->rights->expedition->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expedition->enabled && $leftmenu=="sendings"', __HANDLER__, 'left', 1303__+MAX_llx_menu__, 'commercial', '', 1300__+MAX_llx_menu__, '/expedition/stats/index.php?leftmenu=sendings', 'Statistics', 1, 'sendings', '$user->rights->expedition->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expedition->enabled', __HANDLER__, 'left', 1300__+MAX_llx_menu__, 'commercial', 'sendings', 3__+MAX_llx_menu__, '/expedition/index.php?mainmenu=commercial&amp;leftmenu=sendings', 'Shipments', 0, 'sendings', '$user->rights->expedition->lire', '', 2, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expedition->enabled && $leftmenu=="sendings"', __HANDLER__, 'left', 1301__+MAX_llx_menu__, 'commercial', '', 1300__+MAX_llx_menu__, '/expedition/card.php?mainmenu=commercial&amp;action=create2&leftmenu=sendings', 'NewSending', 1, 'sendings', '$user->rights->expedition->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expedition->enabled && $leftmenu=="sendings"', __HANDLER__, 'left', 1302__+MAX_llx_menu__, 'commercial', '', 1300__+MAX_llx_menu__, '/expedition/list.php?mainmenu=commercial&amp;leftmenu=sendings', 'List', 1, 'sendings', '$user->rights->expedition->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expedition->enabled && $leftmenu=="sendings"', __HANDLER__, 'left', 1303__+MAX_llx_menu__, 'commercial', '', 1300__+MAX_llx_menu__, '/expedition/stats/index.php?mainmenu=commercial&amp;leftmenu=sendings', 'Statistics', 1, 'sendings', '$user->rights->expedition->lire', '', 2, 2, __ENTITY__);
    +-- Product - Reception
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->reception->enabled', __HANDLER__, 'left', 1350__+MAX_llx_menu__, 'commercial', 'receptions', 3__+MAX_llx_menu__, '/reception/index.php?mainmenu=commercial&amp;leftmenu=receptions', 'Receptions', 0, 'receptions', '$user->rights->reception->lire', '', 2, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->reception->enabled && $leftmenu=="receptions"', __HANDLER__, 'left', 1351__+MAX_llx_menu__, 'commercial', '', 1350__+MAX_llx_menu__, '/reception/card.php?mainmenu=commercial&amp;action=create2&leftmenu=receptions', 'NewSending', 1, 'receptions', '$user->rights->reception->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->reception->enabled && $leftmenu=="receptions"', __HANDLER__, 'left', 1352__+MAX_llx_menu__, 'commercial', '', 1350__+MAX_llx_menu__, '/reception/list.php?mainmenu=commercial&amp;leftmenu=receptions', 'List', 1, 'receptions', '$user->rights->reception->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->reception->enabled && $leftmenu=="receptions"', __HANDLER__, 'left', 1353__+MAX_llx_menu__, 'commercial', '', 1350__+MAX_llx_menu__, '/reception/stats/index.php?mainmenu=commercial&amp;leftmenu=receptions', 'Statistics', 1, 'receptions', '$user->rights->reception->lire', '', 2, 2, __ENTITY__);
     
     -- Commercial - Proposals
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 1100__+MAX_llx_menu__, 'commercial', 'propals', 5__+MAX_llx_menu__, '/comm/propal/index.php?leftmenu=propals', 'Prop', 0, 'propal', '$user->rights->propale->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 1101__+MAX_llx_menu__, 'commercial', '', 1100__+MAX_llx_menu__, '/comm/propal/card.php?action=create&amp;leftmenu=propals', 'NewPropal', 1, 'propal', '$user->rights->propale->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 1102__+MAX_llx_menu__, 'commercial', '', 1100__+MAX_llx_menu__, '/comm/propal/list.php?leftmenu=propals', 'List', 1, 'propal', '$user->rights->propale->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled && $leftmenu=="propals"', __HANDLER__, 'left', 1103__+MAX_llx_menu__, 'commercial', '', 1102__+MAX_llx_menu__, '/comm/propal/list.php?leftmenu=propals&amp;viewstatut=0', 'PropalsDraft', 1, 'propal', '$user->rights->propale->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled && $leftmenu=="propals"', __HANDLER__, 'left', 1104__+MAX_llx_menu__, 'commercial', '', 1102__+MAX_llx_menu__, '/comm/propal/list.php?leftmenu=propals&amp;viewstatut=1', 'PropalsOpened', 1, 'propal', '$user->rights->propale->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled && $leftmenu=="propals"', __HANDLER__, 'left', 1105__+MAX_llx_menu__, 'commercial', '', 1102__+MAX_llx_menu__, '/comm/propal/list.php?leftmenu=propals&amp;viewstatut=2', 'PropalStatusSigned', 1, 'propal', '$user->rights->propale->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled && $leftmenu=="propals"', __HANDLER__, 'left', 1106__+MAX_llx_menu__, 'commercial', '', 1102__+MAX_llx_menu__, '/comm/propal/list.php?leftmenu=propals&amp;viewstatut=3', 'PropalStatusNotSigned', 1, 'propal', '$user->rights->propale->lire', '', 2, 5, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled && $leftmenu=="propals"', __HANDLER__, 'left', 1107__+MAX_llx_menu__, 'commercial', '', 1102__+MAX_llx_menu__, '/comm/propal/list.php?leftmenu=propals&amp;viewstatut=4', 'PropalStatusBilled', 1, 'propal', '$user->rights->propale->lire', '', 2, 6, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 1110__+MAX_llx_menu__, 'commercial', '', 1100__+MAX_llx_menu__, '/comm/propal/stats/index.php?leftmenu=propals', 'Statistics', 1, 'propal', '$user->rights->propale->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 1100__+MAX_llx_menu__, 'commercial', 'propals', 5__+MAX_llx_menu__, '/comm/propal/index.php?mainmenu=commercial&amp;leftmenu=propals', 'Proposals', 0, 'propal', '$user->rights->propale->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 1101__+MAX_llx_menu__, 'commercial', '', 1100__+MAX_llx_menu__, '/comm/propal/card.php?mainmenu=commercial&amp;action=create&amp;leftmenu=propals', 'NewPropal', 1, 'propal', '$user->rights->propale->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 1102__+MAX_llx_menu__, 'commercial', '', 1100__+MAX_llx_menu__, '/comm/propal/list.php?mainmenu=commercial&amp;leftmenu=propals', 'List', 1, 'propal', '$user->rights->propale->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled && $leftmenu=="propals"', __HANDLER__, 'left', 1103__+MAX_llx_menu__, 'commercial', '', 1102__+MAX_llx_menu__, '/comm/propal/list.php?mainmenu=commercial&amp;leftmenu=propals&amp;viewstatut=0', 'PropalsDraft', 1, 'propal', '$user->rights->propale->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled && $leftmenu=="propals"', __HANDLER__, 'left', 1104__+MAX_llx_menu__, 'commercial', '', 1102__+MAX_llx_menu__, '/comm/propal/list.php?mainmenu=commercial&amp;leftmenu=propals&amp;viewstatut=1', 'PropalsOpened', 1, 'propal', '$user->rights->propale->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled && $leftmenu=="propals"', __HANDLER__, 'left', 1105__+MAX_llx_menu__, 'commercial', '', 1102__+MAX_llx_menu__, '/comm/propal/list.php?mainmenu=commercial&amp;leftmenu=propals&amp;viewstatut=2', 'PropalStatusSigned', 1, 'propal', '$user->rights->propale->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled && $leftmenu=="propals"', __HANDLER__, 'left', 1106__+MAX_llx_menu__, 'commercial', '', 1102__+MAX_llx_menu__, '/comm/propal/list.php?mainmenu=commercial&amp;leftmenu=propals&amp;viewstatut=3', 'PropalStatusNotSigned', 1, 'propal', '$user->rights->propale->lire', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled && $leftmenu=="propals"', __HANDLER__, 'left', 1107__+MAX_llx_menu__, 'commercial', '', 1102__+MAX_llx_menu__, '/comm/propal/list.php?mainmenu=commercial&amp;leftmenu=propals&amp;viewstatut=4', 'PropalStatusBilled', 1, 'propal', '$user->rights->propale->lire', '', 2, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->propal->enabled', __HANDLER__, 'left', 1110__+MAX_llx_menu__, 'commercial', '', 1100__+MAX_llx_menu__, '/comm/propal/stats/index.php?mainmenu=commercial&amp;leftmenu=propals', 'Statistics', 1, 'propal', '$user->rights->propale->lire', '', 2, 4, __ENTITY__);
     -- Commercial - Customer's orders
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled', __HANDLER__, 'left', 1200__+MAX_llx_menu__, 'commercial', 'orders', 5__+MAX_llx_menu__, '/commande/index.php?leftmenu=orders', 'CustomersOrders', 0, 'orders', '$user->rights->commande->lire', '', 2, 5, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled', __HANDLER__, 'left', 1201__+MAX_llx_menu__, 'commercial', '', 1200__+MAX_llx_menu__, '/commande/card.php?action=create&amp;leftmenu=orders', 'NewOrder', 1, 'orders', '$user->rights->commande->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled', __HANDLER__, 'left', 1202__+MAX_llx_menu__, 'commercial', '', 1200__+MAX_llx_menu__, '/commande/list.php?leftmenu=orders', 'List', 1, 'orders', '$user->rights->commande->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1203__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?leftmenu=orders&amp;viewstatut=0', 'StatusOrderDraftShort', 1, 'orders', '$user->rights->commande->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1204__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?leftmenu=orders&amp;viewstatut=1', 'StatusOrderValidated', 1, 'orders', '$user->rights->commande->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1205__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?leftmenu=orders&amp;viewstatut=2', 'StatusOrderOnProcessShort', 1, 'orders', '$user->rights->commande->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1206__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?leftmenu=orders&amp;viewstatut=3', 'StatusOrderToBill', 1, 'orders', '$user->rights->commande->lire', '', 2, 5, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1207__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?leftmenu=orders&amp;viewstatut=4', 'StatusOrderProcessed', 1, 'orders', '$user->rights->commande->lire', '', 2, 6, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1208__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?leftmenu=orders&amp;viewstatut=-1', 'StatusOrderCanceledShort', 1, 'orders', '$user->rights->commande->lire', '', 2, 7, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled', __HANDLER__, 'left', 1209__+MAX_llx_menu__, 'commercial', '', 1200__+MAX_llx_menu__, '/commande/stats/index.php?leftmenu=orders', 'Statistics', 1, 'orders', '$user->rights->commande->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled', __HANDLER__, 'left', 1200__+MAX_llx_menu__, 'commercial', 'orders', 5__+MAX_llx_menu__, '/commande/index.php?mainmenu=commercial&amp;leftmenu=orders', 'CustomersOrders', 0, 'orders', '$user->rights->commande->lire', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled', __HANDLER__, 'left', 1201__+MAX_llx_menu__, 'commercial', '', 1200__+MAX_llx_menu__, '/commande/card.php?mainmenu=commercial&amp;action=create&amp;leftmenu=orders', 'NewOrder', 1, 'orders', '$user->rights->commande->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled', __HANDLER__, 'left', 1202__+MAX_llx_menu__, 'commercial', '', 1200__+MAX_llx_menu__, '/commande/list.php?mainmenu=commercial&amp;leftmenu=orders', 'List', 1, 'orders', '$user->rights->commande->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1203__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?mainmenu=commercial&amp;leftmenu=orders&amp;viewstatut=0', 'StatusOrderDraftShort', 1, 'orders', '$user->rights->commande->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1204__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?mainmenu=commercial&amp;leftmenu=orders&amp;viewstatut=1', 'StatusOrderValidated', 1, 'orders', '$user->rights->commande->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1205__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?mainmenu=commercial&amp;leftmenu=orders&amp;viewstatut=2', 'StatusOrderOnProcessShort', 1, 'orders', '$user->rights->commande->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1206__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?mainmenu=commercial&amp;leftmenu=orders&amp;viewstatut=3', 'StatusOrderToBill', 1, 'orders', '$user->rights->commande->lire', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1207__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?mainmenu=commercial&amp;leftmenu=orders&amp;viewstatut=4', 'StatusOrderProcessed', 1, 'orders', '$user->rights->commande->lire', '', 2, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1208__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/list.php?mainmenu=commercial&amp;leftmenu=orders&amp;viewstatut=-1', 'StatusOrderCanceledShort', 1, 'orders', '$user->rights->commande->lire', '', 2, 7, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled', __HANDLER__, 'left', 1209__+MAX_llx_menu__, 'commercial', '', 1200__+MAX_llx_menu__, '/commande/stats/index.php?mainmenu=commercial&amp;leftmenu=orders', 'Statistics', 1, 'orders', '$user->rights->commande->lire', '', 2, 4, __ENTITY__);
     -- Commercial - Supplier's orders
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_order->enabled', __HANDLER__, 'left', 5100__+MAX_llx_menu__, 'commercial', 'orders_suppliers', 5__+MAX_llx_menu__, '/fourn/commande/index.php?leftmenu=orders_suppliers', 'SuppliersOrders', 0, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 6, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_order->enabled', __HANDLER__, 'left', 5101__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/fourn/commande/card.php?action=create&amp;leftmenu=orders_suppliers', 'NewOrder', 1, 'orders', '$user->rights->fournisseur->commande->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_order->enabled', __HANDLER__, 'left', 5102__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/fourn/commande/list.php?leftmenu=orders_suppliers&amp;viewstatut=0', 'List', 1, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_order->enabled', __HANDLER__, 'left', 5108__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/commande/stats/index.php?leftmenu=orders_suppliers&amp;mode=supplier', 'Statistics', 1, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 7, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_order->enabled', __HANDLER__, 'left', 5100__+MAX_llx_menu__, 'commercial', 'orders_suppliers', 5__+MAX_llx_menu__, '/fourn/commande/index.php?mainmenu=commercial&amp;leftmenu=orders_suppliers', 'SuppliersOrders', 0, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_order->enabled', __HANDLER__, 'left', 5101__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/fourn/commande/card.php?mainmenu=commercial&amp;action=create&amp;leftmenu=orders_suppliers', 'NewOrder', 1, 'orders', '$user->rights->fournisseur->commande->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_order->enabled', __HANDLER__, 'left', 5102__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/fourn/commande/list.php?mainmenu=commercial&amp;leftmenu=orders_suppliers&amp;viewstatut=0', 'List', 1, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_order->enabled', __HANDLER__, 'left', 5108__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/commande/stats/index.php?mainmenu=commercial&amp;leftmenu=orders_suppliers&amp;mode=supplier', 'Statistics', 1, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 7, __ENTITY__);
     -- Commercial - Contracts
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled', __HANDLER__, 'left', 1400__+MAX_llx_menu__, 'commercial', 'contracts', 5__+MAX_llx_menu__, '/contrat/index.php?leftmenu=contracts', 'Contracts', 0, 'contracts', '$user->rights->contrat->lire', '', 2, 7, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled', __HANDLER__, 'left', 1401__+MAX_llx_menu__, 'commercial', '', 1400__+MAX_llx_menu__, '/contrat/card.php?&action=create&amp;leftmenu=contracts', 'NewContract', 1, 'contracts', '$user->rights->contrat->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled', __HANDLER__, 'left', 1402__+MAX_llx_menu__, 'commercial', '', 1400__+MAX_llx_menu__, '/contrat/list.php?leftmenu=contracts', 'List', 1, 'contracts', '$user->rights->contrat->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled', __HANDLER__, 'left', 1403__+MAX_llx_menu__, 'commercial', '', 1400__+MAX_llx_menu__, '/contrat/services_list.php?leftmenu=contracts', 'MenuServices', 1, 'contracts', '$user->rights->contrat->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled && $leftmenu=="contracts"', __HANDLER__, 'left', 1404__+MAX_llx_menu__, 'commercial', '', 1403__+MAX_llx_menu__, '/contrat/services_list.php?leftmenu=contracts&amp;mode=0', 'MenuInactiveServices', 2, 'contracts', '$user->rights->contrat->lire', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled && $leftmenu=="contracts"', __HANDLER__, 'left', 1405__+MAX_llx_menu__, 'commercial', '', 1403__+MAX_llx_menu__, '/contrat/services_list.php?leftmenu=contracts&amp;mode=4', 'MenuRunningServices', 2, 'contracts', '$user->rights->contrat->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled && $leftmenu=="contracts"', __HANDLER__, 'left', 1406__+MAX_llx_menu__, 'commercial', '', 1403__+MAX_llx_menu__, '/contrat/services_list.php?leftmenu=contracts&amp;mode=4&amp;filter=expired', 'MenuExpiredServices', 2, 'contracts', '$user->rights->contrat->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled && $leftmenu=="contracts"', __HANDLER__, 'left', 1407__+MAX_llx_menu__, 'commercial', '', 1403__+MAX_llx_menu__, '/contrat/services_list.php?leftmenu=contracts&amp;mode=5', 'MenuClosedServices', 2, 'contracts', '$user->rights->contrat->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled', __HANDLER__, 'left', 1400__+MAX_llx_menu__, 'commercial', 'contracts', 5__+MAX_llx_menu__, '/contrat/index.php?mainmenu=commercial&amp;leftmenu=contracts', 'Contracts', 0, 'contracts', '$user->rights->contrat->lire', '', 2, 7, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled', __HANDLER__, 'left', 1401__+MAX_llx_menu__, 'commercial', '', 1400__+MAX_llx_menu__, '/contrat/card.php?mainmenu=commercial&amp;action=create&amp;leftmenu=contracts', 'NewContract', 1, 'contracts', '$user->rights->contrat->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled', __HANDLER__, 'left', 1402__+MAX_llx_menu__, 'commercial', '', 1400__+MAX_llx_menu__, '/contrat/list.php?mainmenu=commercial&amp;leftmenu=contracts', 'List', 1, 'contracts', '$user->rights->contrat->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled', __HANDLER__, 'left', 1403__+MAX_llx_menu__, 'commercial', '', 1400__+MAX_llx_menu__, '/contrat/services_list.php?mainmenu=commercial&amp;leftmenu=contracts', 'MenuServices', 1, 'contracts', '$user->rights->contrat->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled && $leftmenu=="contracts"', __HANDLER__, 'left', 1404__+MAX_llx_menu__, 'commercial', '', 1403__+MAX_llx_menu__, '/contrat/services_list.php?mainmenu=commercial&amp;leftmenu=contracts&amp;mode=0', 'MenuInactiveServices', 2, 'contracts', '$user->rights->contrat->lire', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled && $leftmenu=="contracts"', __HANDLER__, 'left', 1405__+MAX_llx_menu__, 'commercial', '', 1403__+MAX_llx_menu__, '/contrat/services_list.php?mainmenu=commercial&amp;leftmenu=contracts&amp;mode=4', 'MenuRunningServices', 2, 'contracts', '$user->rights->contrat->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled && $leftmenu=="contracts"', __HANDLER__, 'left', 1406__+MAX_llx_menu__, 'commercial', '', 1403__+MAX_llx_menu__, '/contrat/services_list.php?mainmenu=commercial&amp;leftmenu=contracts&amp;mode=4&amp;filter=expired', 'MenuExpiredServices', 2, 'contracts', '$user->rights->contrat->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->contrat->enabled && $leftmenu=="contracts"', __HANDLER__, 'left', 1407__+MAX_llx_menu__, 'commercial', '', 1403__+MAX_llx_menu__, '/contrat/services_list.php?mainmenu=commercial&amp;leftmenu=contracts&amp;mode=5', 'MenuClosedServices', 2, 'contracts', '$user->rights->contrat->lire', '', 2, 3, __ENTITY__);
     -- Commercial - Interventions
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->ficheinter->enabled', __HANDLER__, 'left', 1500__+MAX_llx_menu__, 'commercial', 'ficheinter', 5__+MAX_llx_menu__, '/fichinter/list.php?leftmenu=ficheinter', 'Interventions', 0, 'interventions', '$user->rights->ficheinter->lire', '', 2, 8, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->ficheinter->enabled', __HANDLER__, 'left', 1501__+MAX_llx_menu__, 'commercial', '', 1500__+MAX_llx_menu__, '/fichinter/card.php?action=create&amp;leftmenu=ficheinter', 'NewIntervention', 1, 'interventions', '$user->rights->ficheinter->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->ficheinter->enabled', __HANDLER__, 'left', 1502__+MAX_llx_menu__, 'commercial', '', 1500__+MAX_llx_menu__, '/fichinter/list.php?leftmenu=ficheinter', 'List', 1, 'interventions', '$user->rights->ficheinter->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->ficheinter->enabled', __HANDLER__, 'left', 1503__+MAX_llx_menu__, 'commercial', '', 1500__+MAX_llx_menu__, '/fichinter/stats/index.php?leftmenu=ficheinter', 'Statistics', 1, 'interventions', '$user->rights->ficheinter->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->ficheinter->enabled', __HANDLER__, 'left', 1500__+MAX_llx_menu__, 'commercial', 'ficheinter', 5__+MAX_llx_menu__, '/fichinter/list.php?mainmenu=commercial&amp;leftmenu=ficheinter', 'Interventions', 0, 'interventions', '$user->rights->ficheinter->lire', '', 2, 8, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->ficheinter->enabled', __HANDLER__, 'left', 1501__+MAX_llx_menu__, 'commercial', '', 1500__+MAX_llx_menu__, '/fichinter/card.php?mainmenu=commercial&amp;action=create&amp;leftmenu=ficheinter', 'NewIntervention', 1, 'interventions', '$user->rights->ficheinter->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->ficheinter->enabled', __HANDLER__, 'left', 1502__+MAX_llx_menu__, 'commercial', '', 1500__+MAX_llx_menu__, '/fichinter/list.php?mainmenu=commercial&amp;leftmenu=ficheinter', 'List', 1, 'interventions', '$user->rights->ficheinter->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->ficheinter->enabled', __HANDLER__, 'left', 1503__+MAX_llx_menu__, 'commercial', '', 1500__+MAX_llx_menu__, '/fichinter/stats/index.php?mainmenu=commercial&amp;leftmenu=ficheinter', 'Statistics', 1, 'interventions', '$user->rights->ficheinter->lire', '', 2, 2, __ENTITY__);
     -- Billing - Supplier invoice
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1600__+MAX_llx_menu__, 'billing', 'supplier_bills', 6__+MAX_llx_menu__, '/fourn/facture/list.php?leftmenu=suppliers_bills', 'BillsSuppliers', 0, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1601__+MAX_llx_menu__, 'billing', '', 1600__+MAX_llx_menu__, '/fourn/facture/card.php?action=create&amp;leftmenu=suppliers_bills', 'NewBill', 1, 'bills', '$user->rights->fournisseur->facture->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1602__+MAX_llx_menu__, 'billing', '', 1600__+MAX_llx_menu__, '/fourn/facture/list.php?leftmenu=suppliers_bills', 'List', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1600__+MAX_llx_menu__, 'billing', 'supplier_bills', 6__+MAX_llx_menu__, '/fourn/facture/list.php?mainmenu=billing&amp;leftmenu=suppliers_bills', 'BillsSuppliers', 0, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1601__+MAX_llx_menu__, 'billing', '', 1600__+MAX_llx_menu__, '/fourn/facture/card.php?mainmenu=billing&amp;action=create&amp;leftmenu=suppliers_bills', 'NewBill', 1, 'bills', '$user->rights->fournisseur->facture->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1602__+MAX_llx_menu__, 'billing', '', 1600__+MAX_llx_menu__, '/fourn/facture/list.php?mainmenu=billing&amp;leftmenu=suppliers_bills', 'List', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 1, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1603__+MAX_llx_menu__, 'billing', 'suppliers_bills_payment', 1600__+MAX_llx_menu__, '/fourn/facture/paiement.php?leftmenu=suppliers_bills_payment', 'Payments', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1605__+MAX_llx_menu__, 'billing', 'suppliers_bills_reports', 1603__+MAX_llx_menu__, '/fourn/facture/rapport.php?leftmenu=suppliers_bills_reports', 'Reporting', 2, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1604__+MAX_llx_menu__, 'billing', 'customers_bills_stats',   1600__+MAX_llx_menu__, '/compta/facture/stats/index.php?leftmenu=customers_bills_stats&mode=supplier', 'Statistics', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 8, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1603__+MAX_llx_menu__, 'billing', 'suppliers_bills_payment', 1600__+MAX_llx_menu__, '/fourn/facture/paiement.php?mainmenu=billing&amp;leftmenu=suppliers_bills_payment', 'Payments', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1605__+MAX_llx_menu__, 'billing', 'suppliers_bills_reports', 1603__+MAX_llx_menu__, '/fourn/facture/rapport.php?mainmenu=billing&amp;leftmenu=suppliers_bills_reports', 'Reporting', 2, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->supplier_invoice->enabled', __HANDLER__, 'left', 1604__+MAX_llx_menu__, 'billing', 'customers_bills_stats',   1600__+MAX_llx_menu__, '/compta/facture/stats/index.php?mainmenu=billing&amp;leftmenu=customers_bills_stats&mode=supplier', 'Statistics', 1, 'bills', '$user->rights->fournisseur->facture->lire', '', 2, 8, __ENTITY__);
     -- Billing - Customer invoice
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1700__+MAX_llx_menu__, 'billing', 'customer_bills', 6__+MAX_llx_menu__, '/compta/facture/list.php?leftmenu=customers_bills', 'BillsCustomers', 0, 'bills', '$user->rights->facture->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1701__+MAX_llx_menu__, 'billing', '', 1700__+MAX_llx_menu__, '/compta/facture/card.php?action=create&amp;leftmenu=customers_bills', 'NewBill', 1, 'bills', '$user->rights->facture->creer', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1705__+MAX_llx_menu__, 'billing', '', 1700__+MAX_llx_menu__, '/compta/facture/list.php?leftmenu=customers_bills', 'List', 1, 'bills', '$user->rights->facture->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1700__+MAX_llx_menu__, 'billing', 'customer_bills', 6__+MAX_llx_menu__, '/compta/facture/list.php?mainmenu=billing&amp;leftmenu=customers_bills', 'BillsCustomers', 0, 'bills', '$user->rights->facture->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1701__+MAX_llx_menu__, 'billing', '', 1700__+MAX_llx_menu__, '/compta/facture/card.php?mainmenu=billing&amp;action=create&amp;leftmenu=customers_bills', 'NewBill', 1, 'bills', '$user->rights->facture->creer', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1705__+MAX_llx_menu__, 'billing', '', 1700__+MAX_llx_menu__, '/compta/facture/list.php?mainmenu=billing&amp;leftmenu=customers_bills', 'List', 1, 'bills', '$user->rights->facture->lire', '', 2, 4, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1720__+MAX_llx_menu__, 'billing', '', 1705__+MAX_llx_menu__, '/compta/facture/list.php?leftmenu=customers_bills_draft&amp;search_status=0', 'BillShortStatusDraft', 2, 'bills', '$user->rights->facture->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1721__+MAX_llx_menu__, 'billing', '', 1705__+MAX_llx_menu__, '/compta/facture/list.php?leftmenu=customers_bills_notpaid&amp;search_status=1', 'BillShortStatusNotPaid', 2, 'bills', '$user->rights->facture->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1722__+MAX_llx_menu__, 'billing', '', 1705__+MAX_llx_menu__, '/compta/facture/list.php?leftmenu=customers_bills_paid&amp;search_status=2', 'BillShortStatusPaid', 2, 'bills', '$user->rights->facture->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1723__+MAX_llx_menu__, 'billing', '', 1705__+MAX_llx_menu__, '/compta/facture/list.php?leftmenu=customers_bills_canceled&amp;search_status=3', 'BillShortStatusCanceled', 2, 'bills', '$user->rights->facture->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1720__+MAX_llx_menu__, 'billing', '', 1705__+MAX_llx_menu__, '/compta/facture/list.php?mainmenu=billing&amp;leftmenu=customers_bills_draft&amp;search_status=0', 'BillShortStatusDraft', 2, 'bills', '$user->rights->facture->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1721__+MAX_llx_menu__, 'billing', '', 1705__+MAX_llx_menu__, '/compta/facture/list.php?mainmenu=billing&amp;leftmenu=customers_bills_notpaid&amp;search_status=1', 'BillShortStatusNotPaid', 2, 'bills', '$user->rights->facture->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1722__+MAX_llx_menu__, 'billing', '', 1705__+MAX_llx_menu__, '/compta/facture/list.php?mainmenu=billing&amp;leftmenu=customers_bills_paid&amp;search_status=2', 'BillShortStatusPaid', 2, 'bills', '$user->rights->facture->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1723__+MAX_llx_menu__, 'billing', '', 1705__+MAX_llx_menu__, '/compta/facture/list.php?mainmenu=billing&amp;leftmenu=customers_bills_canceled&amp;search_status=3', 'BillShortStatusCanceled', 2, 'bills', '$user->rights->facture->lire', '', 2, 4, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1702__+MAX_llx_menu__, 'billing', '', 1700__+MAX_llx_menu__, '/compta/facture/invoicetemplate_list.php?leftmenu=customers_bills', 'ListOfTemplates', 1, 'bills', '$user->rights->facture->lire', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1702__+MAX_llx_menu__, 'billing', '', 1700__+MAX_llx_menu__, '/compta/facture/invoicetemplate_list.php?mainmenu=billing&amp;leftmenu=customers_bills', 'ListOfTemplates', 1, 'bills', '$user->rights->facture->lire', '', 2, 5, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1704__+MAX_llx_menu__, 'billing', 'customers_bills_payment', 1700__+MAX_llx_menu__, '/compta/paiement/list.php?leftmenu=customers_bills_payment', 'Payments', 1, 'bills', '$user->rights->facture->lire', '', 2, 6, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1710__+MAX_llx_menu__, 'billing', 'customers_bills_reports', 1704__+MAX_llx_menu__, '/compta/paiement/rapport.php?leftmenu=customers_bills_reports', 'Reportings', 2, 'bills', '$user->rights->facture->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1714__+MAX_llx_menu__, 'billing', 'customers_bills_stats',   1700__+MAX_llx_menu__, '/compta/facture/stats/index.php?leftmenu=customers_bills_stats', 'Statistics', 1, 'bills', '$user->rights->facture->lire', '', 2, 8, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1704__+MAX_llx_menu__, 'billing', 'customers_bills_payment', 1700__+MAX_llx_menu__, '/compta/paiement/list.php?mainmenu=billing&amp;leftmenu=customers_bills_payment', 'Payments', 1, 'bills', '$user->rights->facture->lire', '', 2, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1710__+MAX_llx_menu__, 'billing', 'customers_bills_reports', 1704__+MAX_llx_menu__, '/compta/paiement/rapport.php?mainmenu=billing&amp;leftmenu=customers_bills_reports', 'Reportings', 2, 'bills', '$user->rights->facture->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->facture->enabled', __HANDLER__, 'left', 1714__+MAX_llx_menu__, 'billing', 'customers_bills_stats',   1700__+MAX_llx_menu__, '/compta/facture/stats/index.php?mainmenu=billing&amp;leftmenu=customers_bills_stats', 'Statistics', 1, 'bills', '$user->rights->facture->lire', '', 2, 8, __ENTITY__);
     -- Billing - Orders to bill
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled', __HANDLER__, 'left', 1900__+MAX_llx_menu__, 'billing', 'orders', 6__+MAX_llx_menu__, '/commande/list.php?leftmenu=orders&amp;viewstatut=3', 'MenuOrdersToBill', 0, 'orders', '$user->rights->commande->lire', '', 0, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->commande->enabled', __HANDLER__, 'left', 1900__+MAX_llx_menu__, 'billing', 'orders', 6__+MAX_llx_menu__, '/commande/list.php?mainmenu=billing&amp;leftmenu=orders&amp;viewstatut=3', 'MenuOrdersToBill', 0, 'orders', '$user->rights->commande->lire', '', 0, 3, __ENTITY__);
     -- Donations
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled', __HANDLER__, 'left', 2000__+MAX_llx_menu__, 'billing', 'donations', 6__+MAX_llx_menu__, '/don/index.php?leftmenu=donations&amp;mainmenu=billing', 'Donations', 0, 'donations', '$user->rights->don->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2001__+MAX_llx_menu__, 'billing', '', 2000__+MAX_llx_menu__, '/don/card.php?leftmenu=donations&amp;mainmenu=billing&amp;action=create', 'NewDonation', 1, 'donations', '$user->rights->don->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2002__+MAX_llx_menu__, 'billing', '', 2000__+MAX_llx_menu__, '/don/list.php?leftmenu=donations&amp;mainmenu=billing', 'List', 1, 'donations', '$user->rights->don->lire', '', 2, 1, __ENTITY__);
    --- insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2003__+MAX_llx_menu__, 'billing', '', 2000__+MAX_llx_menu__, '/don/stats/index.php?leftmenu=donations&amp;mainmenu=billing', 'Statistics', 1, 'donations', '$user->rights->don->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled', __HANDLER__, 'left', 2000__+MAX_llx_menu__, 'billing', 'donations', 6__+MAX_llx_menu__, '/don/index.php?mainmenu=billing&amp;leftmenu=donations', 'Donations', 0, 'donations', '$user->rights->don->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2001__+MAX_llx_menu__, 'billing', '', 2000__+MAX_llx_menu__, '/don/card.php?mainmenu=billing&amp;leftmenu=donations&amp;action=create', 'NewDonation', 1, 'donations', '$user->rights->don->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2002__+MAX_llx_menu__, 'billing', '', 2000__+MAX_llx_menu__, '/don/list.php?mainmenu=billing&amp;leftmenu=donations', 'List', 1, 'donations', '$user->rights->don->lire', '', 2, 1, __ENTITY__);
    +-- insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2003__+MAX_llx_menu__, 'billing', '', 2000__+MAX_llx_menu__, '/don/stats/index.php?mainmenu=billing&amp;leftmenu=donations', 'Statistics', 1, 'donations', '$user->rights->don->lire', '', 2, 2, __ENTITY__);
     -- Special expenses
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled || $conf->salaries->enabled || $conf->loan->enabled || $conf->banque->enabled', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'billing', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax&amp;mainmenu=billing', 'MenuSpecialExpenses', 0, 'compta', '(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) || (! empty($conf->loan->enabled) && $user->rights->loan->read) || (! empty($conf->banque->enabled) && $user->rights->banque->lire)', '', 0, 6, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled', __HANDLER__, 'left', 2210__+MAX_llx_menu__, 'billing', 'tax_sal', 2200__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary&amp;mainmenu=billing', 'Salaries', 1, 'salaries', '$user->rights->salaries->read', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2211__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/card.php?leftmenu=tax_salary&amp;action=create', 'NewPayment', 2, 'companies', '$user->rights->salaries->write', '', 0, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2212__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary', 'Payments', 2, 'companies', '$user->rights->salaries->read', '', 0, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2213__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/stats/index.php?leftmenu=tax_salary', 'Statistics', 2, 'companies', '$user->rights->salaries->read', '', 0, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled', __HANDLER__, 'left', 2220__+MAX_llx_menu__, 'billing', 'tax_loan', 2200__+MAX_llx_menu__, '/loan/index.php?leftmenu=tax_loan&amp;mainmenu=billing', 'Loans', 1, 'loan', '$user->rights->loan->read', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled && $leftmenu=="tax_loan"', __HANDLER__, 'left', 2221__+MAX_llx_menu__, 'billing', '', 2220__+MAX_llx_menu__, '/loan/card.php?leftmenu=tax_loan&amp;action=create', 'NewLoan', 2, 'loan', '$user->rights->loan->write', '', 0, 2, __ENTITY__);
    ---insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled && $leftmenu=="tax_loan"', __HANDLER__, 'left', 2222__+MAX_llx_menu__, 'billing', '', 2220__+MAX_llx_menu__, '/loan/payment/list.php?leftmenu=tax_loan', 'Payments', 2, 'companies', '$user->rights->loan->read', '', 0, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled && $leftmenu=="tax_loan" && ! empty($conf->global->LOAN_SHOW_CALCULATOR)', __HANDLER__, 'left', 2223__+MAX_llx_menu__, 'billing', '', 2220__+MAX_llx_menu__, '/loan/calc.php?leftmenu=tax_loan', 'Calculator', 2, 'companies', '$user->rights->loan->calc', '', 0, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled', __HANDLER__, 'left', 2250__+MAX_llx_menu__, 'billing', 'tax_social', 2200__+MAX_llx_menu__, '/compta/sociales/index.php?leftmenu=tax_social', 'SocialContributions', 1, '', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2251__+MAX_llx_menu__, 'billing', '', 2250__+MAX_llx_menu__, '/compta/sociales/card.php?leftmenu=tax_social&amp;action=create', 'MenuNewSocialContribution', 2, '', '$user->rights->tax->charges->creer', '', 0, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2252__+MAX_llx_menu__, 'billing', '', 2250__+MAX_llx_menu__, '/compta/sociales/payments.php?leftmenu=tax_social&amp;mainmenu=billing&amp;mode=sconly', 'Payments', 2, '', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)', __HANDLER__, 'left', 2300__+MAX_llx_menu__, 'billing', 'tax_vat', 2200__+MAX_llx_menu__, '/compta/tva/list.php?leftmenu=tax_vat&amp;mainmenu=billing', 'VAT', 1, 'companies', '$user->rights->tax->charges->lire', '', 0, 7, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2301__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/card.php?leftmenu=tax_vat&amp;action=create', 'New', 2, 'companies', '$user->rights->tax->charges->creer', '', 0, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2302__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/list.php?leftmenu=tax_vat', 'List', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2303__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/index.php?leftmenu=tax_vat', 'ReportByMonth', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2304__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/clients.php?leftmenu=tax_vat', 'ReportByCustomers', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2305__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/quadri_detail.php?leftmenu=tax_vat', 'ReportByQuarter', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1', __HANDLER__, 'left', 2350__+MAX_llx_menu__, 'billing', 'tax_various', 2200__+MAX_llx_menu__, '/compta/bank/various_payment/index.php?leftmenu=tax_various&amp;mainmenu=billing', 'MenuVariousPayment', 1, 'banks', '$user->rights->banque->lire', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && $leftmenu=="tax_various"', __HANDLER__, 'left', 2351__+MAX_llx_menu__, 'billing', '', 2350__+MAX_llx_menu__, '/compta/bank/various_payment/card.php?leftmenu=tax_various&amp;action=create', 'MenuNewVariousPayment', 2, 'various_payment', '$user->rights->banque->modifier', '', 0, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && $leftmenu=="tax_various"', __HANDLER__, 'left', 2352__+MAX_llx_menu__, 'billing', '', 2350__+MAX_llx_menu__, '/compta/bank/various_payment/index.php?leftmenu=tax_various', 'List', 2, 'various_payment', '$user->rights->banque->lire', '', 0, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled || $conf->salaries->enabled || $conf->loan->enabled || $conf->banque->enabled', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'billing', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?mainmenu=billing&amp;leftmenu=tax', 'MenuSpecialExpenses', 0, 'compta', '(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read)) || (! empty($conf->loan->enabled) && $user->rights->loan->read) || (! empty($conf->banque->enabled) && $user->rights->banque->lire)', '', 0, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled', __HANDLER__, 'left', 2210__+MAX_llx_menu__, 'billing', 'tax_sal', 2200__+MAX_llx_menu__, '/compta/salaries/list.php?mainmenu=billing&amp;leftmenu=tax_salary', 'Salaries', 1, 'salaries', '$user->rights->salaries->read', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2211__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/card.php?mainmenu=billing&amp;leftmenu=tax_salary&amp;action=create', 'NewPayment', 2, 'companies', '$user->rights->salaries->write', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2212__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/list.php?mainmenu=billing&amp;leftmenu=tax_salary', 'Payments', 2, 'companies', '$user->rights->salaries->read', '', 0, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2213__+MAX_llx_menu__, 'billing', '', 2210__+MAX_llx_menu__, '/compta/salaries/stats/index.php?mainmenu=billing&amp;leftmenu=tax_salary', 'Statistics', 2, 'companies', '$user->rights->salaries->read', '', 0, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled', __HANDLER__, 'left', 2220__+MAX_llx_menu__, 'billing', 'tax_loan', 2200__+MAX_llx_menu__, '/loan/list.php?mainmenu=billing&amp;leftmenu=tax_loan', 'Loans', 1, 'loan', '$user->rights->loan->read', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled && $leftmenu=="tax_loan"', __HANDLER__, 'left', 2221__+MAX_llx_menu__, 'billing', '', 2220__+MAX_llx_menu__, '/loan/card.php?mainmenu=billing&amp;leftmenu=tax_loan&amp;action=create', 'NewLoan', 2, 'loan', '$user->rights->loan->write', '', 0, 2, __ENTITY__);
    +--insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled && $leftmenu=="tax_loan"', __HANDLER__, 'left', 2222__+MAX_llx_menu__, 'billing', '', 2220__+MAX_llx_menu__, '/loan/payment/list.php?mainmenu=billing&amp;leftmenu=tax_loan', 'Payments', 2, 'companies', '$user->rights->loan->read', '', 0, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->loan->enabled && $leftmenu=="tax_loan" && ! empty($conf->global->LOAN_SHOW_CALCULATOR)', __HANDLER__, 'left', 2223__+MAX_llx_menu__, 'billing', '', 2220__+MAX_llx_menu__, '/loan/calc.php?mainmenu=billing&amp;leftmenu=tax_loan', 'Calculator', 2, 'companies', '$user->rights->loan->calc', '', 0, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled', __HANDLER__, 'left', 2250__+MAX_llx_menu__, 'billing', 'tax_social', 2200__+MAX_llx_menu__, '/compta/sociales/list.php?mainmenu=billing&amp;leftmenu=tax_social', 'SocialContributions', 1, '', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2251__+MAX_llx_menu__, 'billing', '', 2250__+MAX_llx_menu__, '/compta/sociales/card.php?mainmenu=billing&amp;leftmenu=tax_social&amp;action=create', 'MenuNewSocialContribution', 2, '', '$user->rights->tax->charges->creer', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && $leftmenu=="tax_social"', __HANDLER__, 'left', 2252__+MAX_llx_menu__, 'billing', '', 2250__+MAX_llx_menu__, '/compta/sociales/payments.php?mainmenu=billing&amp;leftmenu=tax_social&amp;mode=sconly', 'Payments', 2, '', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS)', __HANDLER__, 'left', 2300__+MAX_llx_menu__, 'billing', 'tax_vat', 2200__+MAX_llx_menu__, '/compta/tva/list.php?mainmenu=billing&amp;leftmenu=tax_vat', 'VAT', 1, 'companies', '$user->rights->tax->charges->lire', '', 0, 7, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2301__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/card.php?mainmenu=billing&amp;leftmenu=tax_vat&amp;action=create', 'New', 2, 'companies', '$user->rights->tax->charges->creer', '', 0, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2302__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/list.php?mainmenu=billing&amp;leftmenu=tax_vat', 'List', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2303__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/index.php?mainmenu=billing&amp;leftmenu=tax_vat', 'ReportByMonth', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2304__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/clients.php?mainmenu=billing&amp;leftmenu=tax_vat', 'ReportByCustomers', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2305__+MAX_llx_menu__, 'billing', '', 2300__+MAX_llx_menu__, '/compta/tva/quadri_detail.php?mainmenu=billing&amp;leftmenu=tax_vat', 'ReportByQuarter', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)', __HANDLER__, 'left', 2350__+MAX_llx_menu__, 'billing', 'tax_various', 2200__+MAX_llx_menu__, '/compta/bank/various_payment/list.php?mainmenu=billing&amp;leftmenu=tax_various', 'MenuVariousPayment', 1, 'banks', '$user->rights->banque->lire', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && $leftmenu=="tax_various"', __HANDLER__, 'left', 2351__+MAX_llx_menu__, 'billing', '', 2350__+MAX_llx_menu__, '/compta/bank/various_payment/card.php?mainmenu=billing&amp;leftmenu=tax_various&amp;action=create', 'New', 2, 'various_payment', '$user->rights->banque->modifier', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && $leftmenu=="tax_various"', __HANDLER__, 'left', 2352__+MAX_llx_menu__, 'billing', '', 2350__+MAX_llx_menu__, '/compta/bank/various_payment/list.php?mainmenu=billing&amp;leftmenu=tax_various', 'List', 2, 'various_payment', '$user->rights->banque->lire', '', 0, 3, __ENTITY__);
     -- Accounting Expert
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2400__+MAX_llx_menu__, 'accountancy', 'accountancy', 9__+MAX_llx_menu__, '/accountancy/index.php?leftmenu=accountancy', 'MenuAccountancy', 0, 'accountancy', '! empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire', '', 0, 7, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2400__+MAX_llx_menu__, 'accountancy', 'accountancy', 9__+MAX_llx_menu__, '/accountancy/index.php?mainmenu=accountancy&amp;leftmenu=accountancy', 'MenuAccountancy', 0, 'accountancy', '! empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire', '', 0, 7, __ENTITY__);
     	-- Setup
     	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2451__+MAX_llx_menu__, 'accountancy', 'accountancy_admin',            2400__+MAX_llx_menu__, '/accountancy/index.php?mainmenu=accountancy&leftmenu=accountancy_admin', 'Setup', 1, 'accountancy', '$user->rights->accounting->chartofaccount', '', 0, 1, __ENTITY__);
     
    @@ -248,15 +253,15 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
     	-- Accounting period
     	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_admin" && $conf->global->MAIN_FEATURES_LEVEL > 0', __HANDLER__, 'left', 2450__+MAX_llx_menu__,  'accountancy', 'accountancy_admin_period', 2451__+MAX_llx_menu__, '/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin', 'FiscalPeriod', 1, 'admin', '', '', 2, 80, __ENTITY__);
     	-- Binding
    -	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled', __HANDLER__, 'left', 2401__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_customer', 2400__+MAX_llx_menu__, '/accountancy/customer/index.php?leftmenu=accountancy_dispatch_customer', 'CustomersVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 2, __ENTITY__);
    -	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && $leftmenu=="accountancy_dispatch_customer"', __HANDLER__, 'left', 2402__+MAX_llx_menu__, 'accountancy', '', 2401__+MAX_llx_menu__, '/accountancy/customer/list.php', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 3, __ENTITY__);
    -	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && $leftmenu=="accountancy_dispatch_customer"', __HANDLER__, 'left', 2403__+MAX_llx_menu__, 'accountancy', '', 2401__+MAX_llx_menu__, '/accountancy/customer/lines.php', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 4, __ENTITY__);
    -	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 2410__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_supplier', 2400__+MAX_llx_menu__, '/accountancy/supplier/index.php?leftmenu=accountancy_dispatch_supplier', 'SuppliersVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 5, __ENTITY__);
    -	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2411__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/list.php', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 6, __ENTITY__);
    -	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2412__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/lines.php', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 7, __ENTITY__);
    -	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled', __HANDLER__, 'left', 2420__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_expensereport', 2400__+MAX_llx_menu__, '/accountancy/expensereport/index.php?leftmenu=accountancy_dispatch_expensereport', 'ExpenseReportsVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 5, __ENTITY__);
    -	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu=="accountancy_dispatch_expensereport"', __HANDLER__, 'left', 2421__+MAX_llx_menu__, 'accountancy', '', 2420__+MAX_llx_menu__, '/accountancy/expensereport/list.php', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 6, __ENTITY__);
    -	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu=="accountancy_dispatch_expensereport"', __HANDLER__, 'left', 2422__+MAX_llx_menu__, 'accountancy', '', 2420__+MAX_llx_menu__, '/accountancy/expensereport/lines.php', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 7, __ENTITY__);
    +	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled', __HANDLER__, 'left', 2401__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_customer', 2400__+MAX_llx_menu__, '/accountancy/customer/index.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_customer', 'CustomersVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 2, __ENTITY__);
    +	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && $leftmenu=="accountancy_dispatch_customer"', __HANDLER__, 'left', 2402__+MAX_llx_menu__, 'accountancy', '', 2401__+MAX_llx_menu__, '/accountancy/customer/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 3, __ENTITY__);
    +	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->facture->enabled && $leftmenu=="accountancy_dispatch_customer"', __HANDLER__, 'left', 2403__+MAX_llx_menu__, 'accountancy', '', 2401__+MAX_llx_menu__, '/accountancy/customer/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 4, __ENTITY__);
    +	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 2410__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_supplier', 2400__+MAX_llx_menu__, '/accountancy/supplier/index.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_supplier', 'SuppliersVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 5, __ENTITY__);
    +	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2411__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 6, __ENTITY__);
    +	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->fournisseur->enabled && $leftmenu=="accountancy_dispatch_supplier"', __HANDLER__, 'left', 2412__+MAX_llx_menu__, 'accountancy', '', 2410__+MAX_llx_menu__, '/accountancy/supplier/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 7, __ENTITY__);
    +	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled', __HANDLER__, 'left', 2420__+MAX_llx_menu__, 'accountancy', 'accountancy_dispatch_expensereport', 2400__+MAX_llx_menu__, '/accountancy/expensereport/index.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_expensereport', 'ExpenseReportsVentilation', 1, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 5, __ENTITY__);
    +	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu=="accountancy_dispatch_expensereport"', __HANDLER__, 'left', 2421__+MAX_llx_menu__, 'accountancy', '', 2420__+MAX_llx_menu__, '/accountancy/expensereport/list.php?mainmenu=accountancy', 'ToDispatch', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 6, __ENTITY__);
    +	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $conf->expensereport->enabled && $leftmenu=="accountancy_dispatch_expensereport"', __HANDLER__, 'left', 2422__+MAX_llx_menu__, 'accountancy', '', 2420__+MAX_llx_menu__, '/accountancy/expensereport/lines.php?mainmenu=accountancy', 'Dispatched', 2, 'accountancy', '$user->rights->accounting->bind->write', '', 0, 7, __ENTITY__);
     	-- Journals
     	--insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2705__+MAX_llx_menu__, 'accountancy', '', 2400__+MAX_llx_menu__, '', 'Journalization', 1, 'main', '$user->rights->accounting->comptarapport->lire', '', 0, 1, __ENTITY__);
     	--insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2707__+MAX_llx_menu__, 'accountancy', '', 2705__+MAX_llx_menu__, '/accountancy/journal/bankjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=3', 'BankJournal', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 1, __ENTITY__);
    @@ -277,106 +282,108 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
     	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2446__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2444__+MAX_llx_menu__, '/compta/stats/cabyuser.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ByUsers', 3, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 23, __ENTITY__);
     	insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2447__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2444__+MAX_llx_menu__, '/compta/stats/cabyprodserv.php?mainmenu=accountancy&leftmenu=accountancy_report', 'ByProductsAndServices', 3, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 24, __ENTITY__);
     -- Accounting simple
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled', __HANDLER__, 'left', 2700__+MAX_llx_menu__, 'accountancy', 'ca', 9__+MAX_llx_menu__, '/compta/resultat/index.php?leftmenu=ca&amp;mainmenu=accountancy', 'Reportings', 0, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 11, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2711__+MAX_llx_menu__, 'accountancy', '', 2700__+MAX_llx_menu__, '/compta/resultat/index.php?leftmenu=ca', 'MenuReportInOut', 1, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2712__+MAX_llx_menu__, 'accountancy', '', 2701__+MAX_llx_menu__, '/compta/resultat/clientfourn.php?leftmenu=ca', 'ByCompanies', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2713__+MAX_llx_menu__, 'accountancy', '', 2700__+MAX_llx_menu__, '/compta/stats/index.php?leftmenu=ca', 'ReportTurnover', 1, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2714__+MAX_llx_menu__, 'accountancy', '', 2703__+MAX_llx_menu__, '/compta/stats/casoc.php?leftmenu=ca', 'ByCompanies', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2715__+MAX_llx_menu__, 'accountancy', '', 2703__+MAX_llx_menu__, '/compta/stats/cabyuser.php?leftmenu=ca', 'ByUsers', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2716__+MAX_llx_menu__, 'accountancy', '', 2703__+MAX_llx_menu__, '/compta/stats/cabyprodserv.php?leftmenu=ca', 'ByProductsAndServices', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled', __HANDLER__, 'left', 2700__+MAX_llx_menu__, 'accountancy', 'ca', 9__+MAX_llx_menu__, '/compta/resultat/index.php?mainmenu=accountancy&amp;leftmenu=ca', 'Reportings', 0, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 11, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2711__+MAX_llx_menu__, 'accountancy', '', 2700__+MAX_llx_menu__, '/compta/resultat/index.php?mainmenu=accountancy&amp;leftmenu=ca', 'MenuReportInOut', 1, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2712__+MAX_llx_menu__, 'accountancy', '', 2701__+MAX_llx_menu__, '/compta/resultat/clientfourn.php?mainmenu=accountancy&amp;leftmenu=ca', 'ByCompanies', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2713__+MAX_llx_menu__, 'accountancy', '', 2700__+MAX_llx_menu__, '/compta/stats/index.php?mainmenu=accountancy&amp;leftmenu=ca', 'ReportTurnover', 1, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2714__+MAX_llx_menu__, 'accountancy', '', 2703__+MAX_llx_menu__, '/compta/stats/casoc.php?mainmenu=accountancy&amp;leftmenu=ca', 'ByCompanies', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2715__+MAX_llx_menu__, 'accountancy', '', 2703__+MAX_llx_menu__, '/compta/stats/cabyuser.php?mainmenu=accountancy&amp;leftmenu=ca', 'ByUsers', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->comptabilite->enabled && $leftmenu=="ca"', __HANDLER__, 'left', 2716__+MAX_llx_menu__, 'accountancy', '', 2703__+MAX_llx_menu__, '/compta/stats/cabyprodserv.php?mainmenu=accountancy&amp;leftmenu=ca', 'ByProductsAndServices', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 1, __ENTITY__);
     -- Assets
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->assets->enabled', __HANDLER__, 'left', 3000__+MAX_llx_menu__, 'accountancy', 'assets', 10__+MAX_llx_menu__, '/assets/list.php?leftmenu=assets&amp;mainmenu=accountancy', 'MenuAssets', 0, 'assets', '$user->rights->assets->read', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->assets->enabled && $leftmenu=="assets"', __HANDLER__, 'left', 3001__+MAX_llx_menu__, 'accountancy', '', 3000__+MAX_llx_menu__, '/assets/card.php?leftmenu=assets&amp;mainmenu=accountancy&amp;action=create', 'MenuNewAsset', 1, 'assets', '$user->rights->assets->write', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->assets->enabled && $leftmenu=="assets"', __HANDLER__, 'left', 3002__+MAX_llx_menu__, 'accountancy', '', 3000__+MAX_llx_menu__, '/assets/type.php?leftmenu=assets&amp;mainmenu=accountancy&amp;action=create', 'MenuTypeAssets', 1, 'assets', '$user->rights->assets->write', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->assets->enabled && $leftmenu=="assets"', __HANDLER__, 'left', 3003__+MAX_llx_menu__, 'accountancy', '', 3000__+MAX_llx_menu__, '/assets/list.php?leftmenu=assets&amp;mainmenu=accountancy', 'MenuListAssets', 1, 'assets', '$user->rights->assets->read', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->assets->enabled', __HANDLER__, 'left', 3000__+MAX_llx_menu__, 'accountancy', 'assets', 10__+MAX_llx_menu__, '/assets/list.php?mainmenu=accountancy&amp;leftmenu=assets', 'MenuAssets', 0, 'assets', '$user->rights->assets->read', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->assets->enabled && $leftmenu=="assets"', __HANDLER__, 'left', 3001__+MAX_llx_menu__, 'accountancy', '', 3000__+MAX_llx_menu__, '/assets/card.php?mainmenu=accountancy&amp;leftmenu=assets&amp;action=create', 'MenuNewAsset', 1, 'assets', '$user->rights->assets->write', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->assets->enabled && $leftmenu=="assets"', __HANDLER__, 'left', 3002__+MAX_llx_menu__, 'accountancy', '', 3000__+MAX_llx_menu__, '/assets/type.php?mainmenu=accountancy&amp;leftmenu=assets&amp;action=create', 'MenuTypeAssets', 1, 'assets', '$user->rights->assets->write', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->assets->enabled && $leftmenu=="assets"', __HANDLER__, 'left', 3003__+MAX_llx_menu__, 'accountancy', '', 3000__+MAX_llx_menu__, '/assets/list.php?mainmenu=accountancy&amp;leftmenu=assets', 'MenuListAssets', 1, 'assets', '$user->rights->assets->read', '', 2, 1, __ENTITY__);
     -- Check deposit
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1711__+MAX_llx_menu__, 'accountancy', 'checks', 14__+MAX_llx_menu__, '/compta/paiement/cheque/index.php?leftmenu=checks&amp;mainmenu=bank', 'MenuChequeDeposits', 0, 'bills', '$user->rights->banque->lire', '', 2, 9, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1712__+MAX_llx_menu__, 'accountancy', '', 1711__+MAX_llx_menu__, '/compta/paiement/cheque/card.php?leftmenu=checks&amp;action=new', 'NewCheckDeposit', 1, 'compta', '$user->rights->banque->lire', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1713__+MAX_llx_menu__, 'accountancy', '', 1711__+MAX_llx_menu__, '/compta/paiement/cheque/list.php?leftmenu=checks', 'List', 1, 'bills', '$user->rights->banque->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1711__+MAX_llx_menu__, 'accountancy', 'checks', 14__+MAX_llx_menu__, '/compta/paiement/cheque/index.php?mainmenu=bank&amp;leftmenu=checks', 'MenuChequeDeposits', 0, 'bills', '$user->rights->banque->lire', '', 2, 9, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1712__+MAX_llx_menu__, 'accountancy', '', 1711__+MAX_llx_menu__, '/compta/paiement/cheque/card.php?mainmenu=bank&amp;leftmenu=checks&amp;action=new', 'NewCheckDeposit', 1, 'compta', '$user->rights->banque->lire', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))', __HANDLER__, 'left', 1713__+MAX_llx_menu__, 'accountancy', '', 1711__+MAX_llx_menu__, '/compta/paiement/cheque/list.php?mainmenu=bank&amp;leftmenu=checks', 'List', 1, 'bills', '$user->rights->banque->lire', '', 2, 1, __ENTITY__);
     -- Withdrawal
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled', __HANDLER__, 'left', 2500__+MAX_llx_menu__, 'accountancy', 'withdraw', 14__+MAX_llx_menu__, '/compta/prelevement/index.php?leftmenu=withdraw&amp;mainmenu=bank', 'StandingOrders', 0, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 9, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2502__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/create.php?leftmenu=withdraw', 'NewStandingOrder', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2503__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/bons.php?leftmenu=withdraw', 'WithdrawalsReceipts', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2504__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/list.php?leftmenu=withdraw', 'WithdrawalsLines', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2506__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/rejets.php?leftmenu=withdraw', 'Rejects', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 5, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2507__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/stats.php?leftmenu=withdraw', 'Statistics', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled', __HANDLER__, 'left', 2500__+MAX_llx_menu__, 'accountancy', 'withdraw', 14__+MAX_llx_menu__, '/compta/prelevement/index.php?mainmenu=bank&amp;leftmenu=withdraw', 'StandingOrders', 0, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 9, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2502__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/create.php?mainmenu=bank&amp;leftmenu=withdraw', 'NewStandingOrder', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2503__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/bons.php?mainmenu=bank&amp;leftmenu=withdraw', 'WithdrawalsReceipts', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2504__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/list.php?mainmenu=bank&amp;leftmenu=withdraw', 'WithdrawalsLines', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2506__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/rejets.php?mainmenu=bank&amp;leftmenu=withdraw', 'Rejects', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->prelevement->enabled && $leftmenu=="withdraw"', __HANDLER__, 'left', 2507__+MAX_llx_menu__, 'accountancy', '', 2500__+MAX_llx_menu__, '/compta/prelevement/stats.php?mainmenu=bank&amp;leftmenu=withdraw', 'Statistics', 1, 'withdrawals', '$user->rights->prelevement->bons->lire', '', 2, 6, __ENTITY__);
     -- Bank
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled', __HANDLER__, 'left', 2600__+MAX_llx_menu__, 'accountancy', 'bank', 14__+MAX_llx_menu__, '/compta/bank/list.php?leftmenu=bank&amp;mainmenu=bank', 'MenuBankCash', 0, 'banks', '$user->rights->banque->lire', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2601__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/card.php?action=create&amp;leftmenu=bank', 'MenuNewFinancialAccount', 1, 'banks', '$user->rights->banque->configurer', '', 0, 0, __ENTITY__);
    --- insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2602__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/categ.php?leftmenu=bank', 'Rubriques', 1, 'categories', '$user->rights->banque->configurer', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2603__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/bankentries_list.php?leftmenu=bank', 'ListTransactions', 1, 'banks', '$user->rights->banque->lire', '', 0, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2604__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/budget.php?leftmenu=bank', 'ListTransactionsByCategory', 1, 'banks', '$user->rights->banque->lire', '', 0, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2606__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/transfer.php?leftmenu=bank', 'BankTransfers', 1, 'banks', '$user->rights->banque->transfer', '', 0, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled', __HANDLER__, 'left', 2600__+MAX_llx_menu__, 'accountancy', 'bank', 14__+MAX_llx_menu__, '/compta/bank/list.php?mainmenu=bank&amp;leftmenu=bank', 'MenuBankCash', 0, 'banks', '$user->rights->banque->lire', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2601__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/card.php?mainmenu=bank&amp;action=create&amp;leftmenu=bank', 'MenuNewFinancialAccount', 1, 'banks', '$user->rights->banque->configurer', '', 0, 0, __ENTITY__);
    +-- insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2602__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/categ.php?mainmenu=bank&amp;leftmenu=bank', 'Rubriques', 1, 'categories', '$user->rights->banque->configurer', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2603__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/bankentries_list.php?mainmenu=bank&amp;leftmenu=bank', 'ListTransactions', 1, 'banks', '$user->rights->banque->lire', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2604__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/budget.php?mainmenu=bank&amp;leftmenu=bank', 'ListTransactionsByCategory', 1, 'banks', '$user->rights->banque->lire', '', 0, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && ($leftmenu=="bank" || $leftmenu=="checks" || $leftmenu=="withdraw")', __HANDLER__, 'left', 2606__+MAX_llx_menu__, 'accountancy', '', 2600__+MAX_llx_menu__, '/compta/bank/transfer.php?mainmenu=bank&amp;leftmenu=bank', 'BankTransfers', 1, 'banks', '$user->rights->banque->transfer', '', 0, 5, __ENTITY__);
     -- Bank - Categories
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 2650__+MAX_llx_menu__, 'accountancy', 'cat', 14__+MAX_llx_menu__, '/categories/index.php?leftmenu=bank&amp;type=5', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 2651__+MAX_llx_menu__, 'accountancy', '', 2650__+MAX_llx_menu__, '/categories/card.php?leftmenu=bank&amp;action=create&amp;type=5', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 2650__+MAX_llx_menu__, 'accountancy', 'cat', 14__+MAX_llx_menu__, '/categories/index.php?mainmenu=bank&amp;leftmenu=bank&amp;type=5', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 2651__+MAX_llx_menu__, 'accountancy', '', 2650__+MAX_llx_menu__, '/categories/card.php?mainmenu=bank&amp;leftmenu=bank&amp;action=create&amp;type=5', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
     -- Project
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3600__+MAX_llx_menu__, 'project', 'projects', 7__+MAX_llx_menu__, '/projet/index.php?leftmenu=projects', 'Projects', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3601__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/card.php?leftmenu=projects&amp;action=create', 'NewProject', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3602__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3603__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/stats/index.php?leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3600__+MAX_llx_menu__, 'project', 'projects', 7__+MAX_llx_menu__, '/projet/index.php?mainmenu=project&amp;leftmenu=projects', 'LeadsOrProjects', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3601__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/card.php?mainmenu=project&amp;leftmenu=projects&amp;action=create', 'New', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3602__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?mainmenu=project&amp;leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && $conf->global->PROJECT_USE_OPPORTUNITIES != 0', __HANDLER__, 'left', 3603__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?mainmenu=project&amp;leftmenu=projects&search_opp_status=openedopp&search_status=99', 'ListOpenLeads', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && $conf->global->PROJECT_USE_OPPORTUNITIES != 2', __HANDLER__, 'left', 3604__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/list.php?mainmenu=project&amp;leftmenu=projects&search_opp_status=notopenedopp&search_status=99', 'ListOpenProjects', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3605__+MAX_llx_menu__, 'project', '', 3600__+MAX_llx_menu__, '/projet/stats/index.php?mainmenu=project&amp;leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3700__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/index.php?leftmenu=projects', 'Activities', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3701__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks.php?leftmenu=projects&amp;action=create', 'NewTask', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3702__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/list.php?leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3704__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/stats/index.php?leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3700__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/index.php?mainmenu=project&amp;leftmenu=projects', 'Activities', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3701__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks.php?mainmenu=project&amp;leftmenu=projects&amp;action=create', 'NewTask', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3702__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/list.php?mainmenu=project&amp;leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3704__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/stats/index.php?mainmenu=project&amp;leftmenu=projects', 'Statistics', 1, 'projects', '$user->rights->projet->lire', '', 2, 4, __ENTITY__);
     
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3400__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/perweek.php?leftmenu=projects', 'NewTimeSpent', 0, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled && !$conf->global->PROJECT_HIDE_TASKS', __HANDLER__, 'left', 3400__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/perweek.php?mainmenu=project&amp;leftmenu=projects', 'NewTimeSpent', 0, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
     
     -- Project - Categories
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3804__+MAX_llx_menu__, 'project', 'cat', 7__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&amp;type=6', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3805__+MAX_llx_menu__, 'project', '', 3804__+MAX_llx_menu__, '/categories/card.php?action=create&amp;type=6', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3804__+MAX_llx_menu__, 'project', 'cat', 7__+MAX_llx_menu__, '/categories/index.php?mainmenu=project&amp;leftmenu=cat&amp;type=6', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3805__+MAX_llx_menu__, 'project', '', 3804__+MAX_llx_menu__, '/categories/card.php?mainmenu=project&amp;action=create&amp;type=6', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
     -- Tools
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($user->socid)', __HANDLER__, 'left', 3900__+MAX_llx_menu__, 'tools', 'email_templates', 8__+MAX_llx_menu__, '/admin/mails_templates.php?leftmenu=email_templates', 'EMailTemplates', 0, '', '', '', 0, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->mailing->enabled', __HANDLER__, 'left', 3910__+MAX_llx_menu__, 'tools', 'mailing', 8__+MAX_llx_menu__, '/comm/mailing/index.php?leftmenu=mailing', 'EMailings', 0, 'mails', '$user->rights->mailing->lire', '', 0, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->mailing->enabled', __HANDLER__, 'left', 3911__+MAX_llx_menu__, 'tools', '', 3910__+MAX_llx_menu__, '/comm/mailing/card.php?leftmenu=mailing&amp;action=create', 'NewMailing', 1, 'mails', '$user->rights->mailing->creer', '', 0, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->mailing->enabled', __HANDLER__, 'left', 3912__+MAX_llx_menu__, 'tools', '', 3910__+MAX_llx_menu__, '/comm/mailing/list.php?leftmenu=mailing', 'List', 1, 'mails', '$user->rights->mailing->lire', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->export->enabled', __HANDLER__, 'left', 4100__+MAX_llx_menu__, 'tools', 'export', 8__+MAX_llx_menu__, '/exports/index.php?leftmenu=export', 'FormatedExport', 0, 'exports', '$user->rights->export->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->export->enabled', __HANDLER__, 'left', 4101__+MAX_llx_menu__, 'tools', '', 4100__+MAX_llx_menu__, '/exports/export.php?leftmenu=export', 'NewExport', 1, 'exports', '$user->rights->export->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->import->enabled', __HANDLER__, 'left', 4130__+MAX_llx_menu__, 'tools', 'import', 8__+MAX_llx_menu__, '/imports/index.php?leftmenu=import', 'FormatedImport', 0, 'exports', '$user->rights->import->run', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->import->enabled', __HANDLER__, 'left', 4131__+MAX_llx_menu__, 'tools', '', 4130__+MAX_llx_menu__, '/imports/import.php?leftmenu=import', 'NewImport', 1, 'exports', '$user->rights->import->run', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', 'empty($user->socid)', __HANDLER__, 'left', 3900__+MAX_llx_menu__, 'tools', 'email_templates', 8__+MAX_llx_menu__, '/admin/mails_templates.php?mainmenu=tools&amp;leftmenu=email_templates', 'EMailTemplates', 0, '', '', '', 0, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->mailing->enabled', __HANDLER__, 'left', 3910__+MAX_llx_menu__, 'tools', 'mailing', 8__+MAX_llx_menu__, '/comm/mailing/index.php?mainmenu=tools&amp;leftmenu=mailing', 'EMailings', 0, 'mails', '$user->rights->mailing->lire', '', 0, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->mailing->enabled', __HANDLER__, 'left', 3911__+MAX_llx_menu__, 'tools', '', 3910__+MAX_llx_menu__, '/comm/mailing/card.php?mainmenu=tools&amp;leftmenu=mailing&amp;action=create', 'NewMailing', 1, 'mails', '$user->rights->mailing->creer', '', 0, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->mailing->enabled', __HANDLER__, 'left', 3912__+MAX_llx_menu__, 'tools', '', 3910__+MAX_llx_menu__, '/comm/mailing/list.php?mainmenu=tools&amp;leftmenu=mailing', 'List', 1, 'mails', '$user->rights->mailing->lire', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->export->enabled', __HANDLER__, 'left', 4100__+MAX_llx_menu__, 'tools', 'export', 8__+MAX_llx_menu__, '/exports/index.php?mainmenu=tools&amp;leftmenu=export', 'FormatedExport', 0, 'exports', '$user->rights->export->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->export->enabled', __HANDLER__, 'left', 4101__+MAX_llx_menu__, 'tools', '', 4100__+MAX_llx_menu__, '/exports/export.php?mainmenu=tools&amp;leftmenu=export', 'NewExport', 1, 'exports', '$user->rights->export->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->import->enabled', __HANDLER__, 'left', 4130__+MAX_llx_menu__, 'tools', 'import', 8__+MAX_llx_menu__, '/imports/index.php?mainmenu=tools&amp;leftmenu=import', 'FormatedImport', 0, 'exports', '$user->rights->import->run', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->import->enabled', __HANDLER__, 'left', 4131__+MAX_llx_menu__, 'tools', '', 4130__+MAX_llx_menu__, '/imports/import.php?mainmenu=tools&amp;leftmenu=import', 'NewImport', 1, 'exports', '$user->rights->import->run', '', 2, 0, __ENTITY__);
     -- Members
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4200__+MAX_llx_menu__, 'members', 'members', 13__+MAX_llx_menu__, '/adherents/index.php?leftmenu=members&amp;mainmenu=members', 'Members', 0, 'members', '$user->rights->adherent->lire', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4201__+MAX_llx_menu__, 'members', '', 4200__+MAX_llx_menu__, '/adherents/card.php?leftmenu=members&amp;action=create', 'NewMember', 1, 'members', '$user->rights->adherent->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4200__+MAX_llx_menu__, 'members', 'members', 13__+MAX_llx_menu__, '/adherents/index.php?mainmenu=members&amp;leftmenu=members', 'Members', 0, 'members', '$user->rights->adherent->lire', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4201__+MAX_llx_menu__, 'members', '', 4200__+MAX_llx_menu__, '/adherents/card.php?mainmenu=members&amp;leftmenu=members&amp;action=create', 'NewMember', 1, 'members', '$user->rights->adherent->creer', '', 2, 0, __ENTITY__);
     insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4202__+MAX_llx_menu__, 'members', '', 4200__+MAX_llx_menu__, '/adherents/list.php', 'List', 1, 'members', '$user->rights->adherent->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4203__+MAX_llx_menu__, 'members', '', 4202__+MAX_llx_menu__, '/adherents/list.php?leftmenu=members&amp;statut=-1', 'MenuMembersToValidate', 2, 'members', '$user->rights->adherent->lire', '', 2, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4204__+MAX_llx_menu__, 'members', '', 4202__+MAX_llx_menu__, '/adherents/list.php?leftmenu=members&amp;statut=1', 'MenuMembersValidated', 2, 'members', '$user->rights->adherent->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4205__+MAX_llx_menu__, 'members', '', 4202__+MAX_llx_menu__, '/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=outofdate', 'MenuMembersNotUpToDate', 2, 'members', '$user->rights->adherent->lire', '', 2, 4, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4206__+MAX_llx_menu__, 'members', '', 4202__+MAX_llx_menu__, '/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=uptodate', 'MenuMembersUpToDate', 2, 'members', '$user->rights->adherent->lire', '', 2, 5, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4207__+MAX_llx_menu__, 'members', '', 4202__+MAX_llx_menu__, '/adherents/list.php?leftmenu=members&amp;statut=0', 'MenuMembersResiliated', 2, 'members', '$user->rights->adherent->lire', '', 2, 6, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4208__+MAX_llx_menu__, 'members', '', 4200__+MAX_llx_menu__, '/adherents/stats/geo.php?leftmenu=members&amp;mode=memberbycountry', 'MenuMembersStats', 1, 'members', '$user->rights->adherent->lire', '', 2, 7, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '! empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && $conf->adherent->enabled', __HANDLER__, 'left', 4502__+MAX_llx_menu__, 'members', '', 4200__+MAX_llx_menu__, '/adherents/htpasswd.php?leftmenu=export', 'Filehtpasswd', 1, 'members', '$user->rights->adherent->export', '', 2, 9, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4503__+MAX_llx_menu__, 'members', '', 4200__+MAX_llx_menu__, '/adherents/cartes/carte.php?leftmenu=export', 'MembersCards', 1, 'members', '$user->rights->adherent->export', '', 2, 10, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4203__+MAX_llx_menu__, 'members', '', 4202__+MAX_llx_menu__, '/adherents/list.php?mainmenu=members&amp;leftmenu=members&amp;statut=-1', 'MenuMembersToValidate', 2, 'members', '$user->rights->adherent->lire', '', 2, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4204__+MAX_llx_menu__, 'members', '', 4202__+MAX_llx_menu__, '/adherents/list.php?mainmenu=members&amp;leftmenu=members&amp;statut=1', 'MenuMembersValidated', 2, 'members', '$user->rights->adherent->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4205__+MAX_llx_menu__, 'members', '', 4202__+MAX_llx_menu__, '/adherents/list.php?mainmenu=members&amp;leftmenu=members&amp;statut=1&amp;filter=outofdate', 'MenuMembersNotUpToDate', 2, 'members', '$user->rights->adherent->lire', '', 2, 4, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4206__+MAX_llx_menu__, 'members', '', 4202__+MAX_llx_menu__, '/adherents/list.php?mainmenu=members&amp;leftmenu=members&amp;statut=1&amp;filter=uptodate', 'MenuMembersUpToDate', 2, 'members', '$user->rights->adherent->lire', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4207__+MAX_llx_menu__, 'members', '', 4202__+MAX_llx_menu__, '/adherents/list.php?mainmenu=members&amp;leftmenu=members&amp;statut=0', 'MenuMembersResiliated', 2, 'members', '$user->rights->adherent->lire', '', 2, 6, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4208__+MAX_llx_menu__, 'members', '', 4200__+MAX_llx_menu__, '/adherents/stats/geo.php?mainmenu=members&amp;leftmenu=members&amp;mode=memberbycountry', 'MenuMembersStats', 1, 'members', '$user->rights->adherent->lire', '', 2, 7, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '! empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && $conf->adherent->enabled', __HANDLER__, 'left', 4502__+MAX_llx_menu__, 'members', '', 4200__+MAX_llx_menu__, '/adherents/htpasswd.php?mainmenu=members&amp;leftmenu=export', 'Filehtpasswd', 1, 'members', '$user->rights->adherent->export', '', 2, 9, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4503__+MAX_llx_menu__, 'members', '', 4200__+MAX_llx_menu__, '/adherents/cartes/carte.php?mainmenu=members&amp;leftmenu=export', 'MembersCards', 1, 'members', '$user->rights->adherent->export', '', 2, 10, __ENTITY__);
     -- Members - Subscriptions
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4300__+MAX_llx_menu__, 'members', '', 13__+MAX_llx_menu__, '/adherents/index.php?leftmenu=members&amp;mainmenu=members', 'Subscriptions', 0, 'compta', '$user->rights->adherent->cotisation->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4301__+MAX_llx_menu__, 'members', '', 4300__+MAX_llx_menu__, '/adherents/list.php?statut=-1&amp;leftmenu=accountancy&amp;mainmenu=members', 'NewSubscription', 1, 'compta', '$user->rights->adherent->cotisation->creer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4302__+MAX_llx_menu__, 'members', '', 4300__+MAX_llx_menu__, '/adherents/subscription/list.php?leftmenu=members', 'List', 1, 'compta', '$user->rights->adherent->cotisation->lire', '', 2, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4303__+MAX_llx_menu__, 'members', '', 4300__+MAX_llx_menu__, '/adherents/stats/index.php?leftmenu=members', 'MenuMembersStats', 1, 'members', '$user->rights->adherent->lire', '', 2, 7, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4700__+MAX_llx_menu__, 'members', 'setup', 13__+MAX_llx_menu__, '/adherents/type.php?leftmenu=setup&amp;mainmenu=members', 'MembersTypes', 0, 'members', '$user->rights->adherent->configurer', '', 2, 5, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4701__+MAX_llx_menu__, 'members', '', 4700__+MAX_llx_menu__, '/adherents/type.php?leftmenu=setup&amp;mainmenu=members&amp;action=create', 'New', 1, 'members', '$user->rights->adherent->configurer', '', 2, 0, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4702__+MAX_llx_menu__, 'members', '', 4700__+MAX_llx_menu__, '/adherents/type.php?leftmenu=setup&amp;mainmenu=members', 'List', 1, 'members', '$user->rights->adherent->configurer', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4300__+MAX_llx_menu__, 'members', '', 13__+MAX_llx_menu__, '/adherents/index.php?mainmenu=members&amp;leftmenu=members', 'Subscriptions', 0, 'compta', '$user->rights->adherent->cotisation->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4301__+MAX_llx_menu__, 'members', '', 4300__+MAX_llx_menu__, '/adherents/list.php?mainmenu=members&amp;statut=-1&amp;leftmenu=accountancy', 'NewSubscription', 1, 'compta', '$user->rights->adherent->cotisation->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4302__+MAX_llx_menu__, 'members', '', 4300__+MAX_llx_menu__, '/adherents/subscription/list.php?mainmenu=members&amp;leftmenu=members', 'List', 1, 'compta', '$user->rights->adherent->cotisation->lire', '', 2, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4303__+MAX_llx_menu__, 'members', '', 4300__+MAX_llx_menu__, '/adherents/stats/index.php?mainmenu=members&amp;leftmenu=members', 'MenuMembersStats', 1, 'members', '$user->rights->adherent->lire', '', 2, 7, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4700__+MAX_llx_menu__, 'members', 'setup', 13__+MAX_llx_menu__, '/adherents/type.php?mainmenu=members&amp;leftmenu=setup', 'MembersTypes', 0, 'members', '$user->rights->adherent->configurer', '', 2, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4701__+MAX_llx_menu__, 'members', '', 4700__+MAX_llx_menu__, '/adherents/type.php?mainmenu=members&amp;leftmenu=setup&amp;action=create', 'New', 1, 'members', '$user->rights->adherent->configurer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled', __HANDLER__, 'left', 4702__+MAX_llx_menu__, 'members', '', 4700__+MAX_llx_menu__, '/adherents/type.php?mainmenu=members&amp;leftmenu=setup', 'List', 1, 'members', '$user->rights->adherent->configurer', '', 2, 1, __ENTITY__);
     -- Members - Category member
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5200__+MAX_llx_menu__, 'members', 'cat', 13__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&amp;type=3', 'MembersCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5201__+MAX_llx_menu__, 'members', '', 5200__+MAX_llx_menu__, '/categories/card.php?action=create&amp;type=3', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5200__+MAX_llx_menu__, 'members', 'cat', 13__+MAX_llx_menu__, '/categories/index.php?mainmenu=members&amp;leftmenu=cat&amp;type=3', 'MembersCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5201__+MAX_llx_menu__, 'members', '', 5200__+MAX_llx_menu__, '/categories/card.php?mainmenu=members&amp;action=create&amp;type=3', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
     -- HRM - Employee
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->hrm->enabled', __HANDLER__, 'left', 4600__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/user/list.php?leftmenu=hrm&mode=employee', 'Employees', 0, 'hrm', '$user->rights->hrm->employee->read', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->hrm->enabled', __HANDLER__, 'left', 4601__+MAX_llx_menu__, 'hrm', '', 4600__+MAX_llx_menu__, '/user/card.php?action=create&employee=1', 'NewEmployee', 1, 'hrm', '$user->rights->hrm->employee->write', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->hrm->enabled', __HANDLER__, 'left', 4602__+MAX_llx_menu__, 'hrm', '', 4600__+MAX_llx_menu__, '/user/list.php?$leftmenu=hrm&mode=employee&contextpage=employeelist', 'List', 1, 'hrm', '$user->rights->hrm->employee->read', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->hrm->enabled', __HANDLER__, 'left', 4600__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/user/list.php?mainmenu=hrm&amp;leftmenu=hrm&mode=employee', 'Employees', 0, 'hrm', '$user->rights->hrm->employee->read', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->hrm->enabled', __HANDLER__, 'left', 4601__+MAX_llx_menu__, 'hrm', '', 4600__+MAX_llx_menu__, '/user/card.php?mainmenu=hrm&amp;action=create&employee=1', 'NewEmployee', 1, 'hrm', '$user->rights->hrm->employee->write', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->hrm->enabled', __HANDLER__, 'left', 4602__+MAX_llx_menu__, 'hrm', '', 4600__+MAX_llx_menu__, '/user/list.php?mainmenu=hrm&amp;leftmenu=hrm&mode=employee&contextpage=employeelist', 'List', 1, 'hrm', '$user->rights->hrm->employee->read', '', 0, 2, __ENTITY__);
     -- HRM - Holiday
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5000__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/holiday/list.php?&leftmenu=hrm', 'CPTitreMenu', 0, 'holiday', '$user->rights->holiday->read', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5001__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/card.php?&action=request', 'MenuAddCP', 1, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5002__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/list.php?&leftmenu=hrm', 'List', 1, 'holiday', '$user->rights->holiday->read', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5003__+MAX_llx_menu__, 'hrm', '', 5002__+MAX_llx_menu__, '/holiday/list.php?search_statut=2&leftmenu=hrm', 'ListToApprove', 2, 'trips', '$user->rights->holiday->read', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5004__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/define_holiday.php?&action=request', 'MenuConfCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5005__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/view_log.php?&action=request', 'MenuLogCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 3, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5000__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/holiday/list.php?mainmenu=hrm&amp;leftmenu=hrm', 'CPTitreMenu', 0, 'holiday', '$user->rights->holiday->read', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5001__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/card.php?mainmenu=hrm&amp;action=request', 'MenuAddCP', 1, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5002__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/list.php?mainmenu=hrm&amp;leftmenu=hrm', 'List', 1, 'holiday', '$user->rights->holiday->read', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5003__+MAX_llx_menu__, 'hrm', '', 5002__+MAX_llx_menu__, '/holiday/list.php?mainmenu=hrm&amp;search_statut=2&leftmenu=hrm', 'ListToApprove', 2, 'trips', '$user->rights->holiday->read', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5004__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/define_holiday.php?mainmenu=hrm&amp;action=request', 'MenuConfCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5005__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/view_log.php?mainmenu=hrm&amp;action=request', 'MenuLogCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 3, __ENTITY__);
     -- HRM - Trips and expenses (old module)
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2100__+MAX_llx_menu__, 'accountancy', 'tripsandexpenses', 15__+MAX_llx_menu__, '/compta/deplacement/index.php?leftmenu=tripsandexpenses', 'TripsAndExpenses', 0, 'trips', '$user->rights->deplacement->lire', '', 0, 5, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2101__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/card.php?action=create&amp;leftmenu=tripsandexpenses', 'New', 1, 'trips', '$user->rights->deplacement->creer', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2102__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/list.php?leftmenu=tripsandexpenses', 'List', 1, 'trips', '$user->rights->deplacement->lire', '', 0, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2103__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/stats/index.php?leftmenu=tripsandexpenses', 'Statistics', 1, 'trips', '$user->rights->deplacement->lire', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2100__+MAX_llx_menu__, 'accountancy', 'tripsandexpenses', 15__+MAX_llx_menu__, '/compta/deplacement/index.php?mainmenu=accountancy&amp;leftmenu=tripsandexpenses', 'TripsAndExpenses', 0, 'trips', '$user->rights->deplacement->lire', '', 0, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2101__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/card.php?mainmenu=accountancy&amp;action=create&amp;leftmenu=tripsandexpenses', 'New', 1, 'trips', '$user->rights->deplacement->creer', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2102__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/list.php?mainmenu=accountancy&amp;leftmenu=tripsandexpenses', 'List', 1, 'trips', '$user->rights->deplacement->lire', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2103__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/stats/index.php?mainmenu=accountancy&amp;leftmenu=tripsandexpenses', 'Statistics', 1, 'trips', '$user->rights->deplacement->lire', '', 0, 2, __ENTITY__);
     -- HRM - Expense reports
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expensereport->enabled', __HANDLER__, 'left', 5300__+MAX_llx_menu__, 'hrm', 'expensereport', 15__+MAX_llx_menu__, '/expensereport/index.php?leftmenu=expensereport', 'TripsAndExpenses', 0, 'trips', '$user->rights->expensereport->lire', '', 0, 5, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expensereport->enabled', __HANDLER__, 'left', 5301__+MAX_llx_menu__, 'hrm', '', 5300__+MAX_llx_menu__, '/expensereport/card.php?action=create&amp;leftmenu=expensereport', 'New', 1, 'trips', '$user->rights->expensereport->creer', '', 0, 1, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expensereport->enabled', __HANDLER__, 'left', 5302__+MAX_llx_menu__, 'hrm', '', 5300__+MAX_llx_menu__, '/expensereport/list.php?leftmenu=expensereport', 'List', 1, 'trips', '$user->rights->expensereport->lire', '', 0, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expensereport->enabled', __HANDLER__, 'left', 5303__+MAX_llx_menu__, 'hrm', '', 5302__+MAX_llx_menu__, '/expensereport/list.php?search_status=2&amp;leftmenu=expensereport', 'ListToApprove', 2, 'trips', '$user->rights->expensereport->approve', '', 0, 2, __ENTITY__);
    -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expensereport->enabled', __HANDLER__, 'left', 5304__+MAX_llx_menu__, 'hrm', '', 5300__+MAX_llx_menu__, '/expensereport/stats/index.php?leftmenu=expensereport', 'Statistics', 1, 'trips', '$user->rights->expensereport->lire', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expensereport->enabled', __HANDLER__, 'left', 5300__+MAX_llx_menu__, 'hrm', 'expensereport', 15__+MAX_llx_menu__, '/expensereport/index.php?mainmenu=hrm&amp;leftmenu=expensereport', 'TripsAndExpenses', 0, 'trips', '$user->rights->expensereport->lire', '', 0, 5, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expensereport->enabled', __HANDLER__, 'left', 5301__+MAX_llx_menu__, 'hrm', '', 5300__+MAX_llx_menu__, '/expensereport/card.php?mainmenu=hrm&amp;action=create&amp;leftmenu=expensereport', 'New', 1, 'trips', '$user->rights->expensereport->creer', '', 0, 1, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expensereport->enabled', __HANDLER__, 'left', 5302__+MAX_llx_menu__, 'hrm', '', 5300__+MAX_llx_menu__, '/expensereport/list.php?mainmenu=hrm&amp;leftmenu=expensereport', 'List', 1, 'trips', '$user->rights->expensereport->lire', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expensereport->enabled', __HANDLER__, 'left', 5303__+MAX_llx_menu__, 'hrm', '', 5302__+MAX_llx_menu__, '/expensereport/list.php?mainmenu=hrm&amp;search_status=2&amp;leftmenu=expensereport', 'ListToApprove', 2, 'trips', '$user->rights->expensereport->approve', '', 0, 2, __ENTITY__);
    +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->expensereport->enabled', __HANDLER__, 'left', 5304__+MAX_llx_menu__, 'hrm', '', 5300__+MAX_llx_menu__, '/expensereport/stats/index.php?mainmenu=hrm&amp;leftmenu=expensereport', 'Statistics', 1, 'trips', '$user->rights->expensereport->lire', '', 0, 2, __ENTITY__);
    diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php
    index fee6ae6c595..1ca94b38106 100644
    --- a/htdocs/core/menus/standard/auguria.lib.php
    +++ b/htdocs/core/menus/standard/auguria.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2010-2013	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -153,7 +153,7 @@ function print_start_menu_array_auguria()
         global $conf;
     
     	print '<div class="tmenudiv">';
    -	print '<ul class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)?'':' title="Top menu"').'>';
    +	print '<ul role="navigation" class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)?'':' title="Top menu"').'>';
     }
     
     /**
    @@ -273,7 +273,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
     		$mysoc->logo_mini=$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI;
     		if (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini))
     		{
    -			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('thumbs/'.$mysoc->logo_mini);
    +			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_mini);
     		}
     		else
     		{
    @@ -517,7 +517,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
     				$tmp=explode('?',$menu_array[$i]['url'],2);
     				$url = $shorturl = $tmp[0];
     				$param = (isset($tmp[1])?$tmp[1]:'');    // params in url of the menu link
    -				
    +
     				// Complete param to force leftmenu to '' to close open menu when we click on a link with no leftmenu defined.
     				if ((! preg_match('/mainmenu/i',$param)) && (! preg_match('/leftmenu/i',$param)) && ! empty($menu_array[$i]['mainmenu']))
     				{
    diff --git a/htdocs/core/menus/standard/auguria_menu.php b/htdocs/core/menus/standard/auguria_menu.php
    index df31b9c9d8f..f4cb98d9c4b 100644
    --- a/htdocs/core/menus/standard/auguria_menu.php
    +++ b/htdocs/core/menus/standard/auguria_menu.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007      Patrick Raguin       <patrick.raguin@gmail.com>
    - * Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2008-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -28,7 +28,11 @@
      */
     class MenuManager
     {
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    
     	var $type_user;								// Put 0 for internal users, 1 for external users
     	var $atarget="";                            // To store default target to use onto links
     	var $name="auguria";
    diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php
    index 6325643cf87..223cacaf26a 100644
    --- a/htdocs/core/menus/standard/eldy.lib.php
    +++ b/htdocs/core/menus/standard/eldy.lib.php
    @@ -1,10 +1,11 @@
     <?php
     /* Copyright (C) 2010-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2010      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012-2015 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador      <csalvador@gpcsolutions.fr>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    - * Copyright (C) 2018	   Ferran Marcet        <fmarcet@2byte.es>
    + * Copyright (C) 2018      Ferran Marcet        <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -76,9 +77,11 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
     	$menu->add('/index.php?mainmenu=home&amp;leftmenu=home', $titlehome, 0, $showmode, $atarget, "home", '', 10, $id, $idsel, $classname);
     
     	// Members
    -	$tmpentry=array('enabled'=>(! empty($conf->adherent->enabled)),
    -	'perms'=>(! empty($user->rights->adherent->lire)),
    -	'module'=>'adherent');
    +	$tmpentry = array(
    +        'enabled'=>(! empty($conf->adherent->enabled)),
    +        'perms'=>(! empty($user->rights->adherent->lire)),
    +        'module'=>'adherent',
    +    );
     	$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
     	if ($showmode)
     	{
    @@ -91,12 +94,16 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
     	}
     
     	// Third parties
    -	$tmpentry=array('enabled'=>(( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)), 'perms'=>(! empty($user->rights->societe->lire) || ! empty($user->rights->fournisseur->lire)), 'module'=>'societe|fournisseur');
    +	$tmpentry = array(
    +        'enabled'=>(( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)),
    +        'perms'=>(! empty($user->rights->societe->lire) || ! empty($user->rights->fournisseur->lire)),
    +        'module'=>'societe|fournisseur',
    +    );
     	$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
     	if ($showmode)
     	{
    -		$langs->load("companies");
    -		$langs->load("suppliers");
    +	    // Load translation files required by the page
    +        $langs->loadLangs(array("companies","suppliers"));
     
     		$classname="";
     		if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "companies") { $classname='class="tmenusel"'; $_SESSION['idmenu']=''; }
    @@ -107,7 +114,11 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
     	}
     
     	// Products-Services
    -	$tmpentry=array('enabled'=>(! empty($conf->product->enabled) || ! empty($conf->service->enabled)), 'perms'=>(! empty($user->rights->produit->lire) || ! empty($user->rights->service->lire)), 'module'=>'product|service');
    +	$tmpentry = array(
    +        'enabled'=>(! empty($conf->product->enabled) || ! empty($conf->service->enabled)),
    +        'perms'=>(! empty($user->rights->produit->lire) || ! empty($user->rights->service->lire)),
    +        'module'=>'product|service',
    +    );
     	$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
     	if ($showmode)
     	{
    @@ -132,6 +143,37 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
     		$menu->add('/product/index.php?mainmenu=products&amp;leftmenu=', $chaine, 0, $showmode, $atarget, "products", '', 30, $id, $idsel, $classname);
     	}
     
    +	// Projects
    +	$tmpentry=array('enabled'=>(! empty($conf->projet->enabled)),
    +	'perms'=>(! empty($user->rights->projet->lire)),
    +	'module'=>'projet');
    +	$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
    +	if ($showmode)
    +	{
    +		$langs->load("projects");
    +
    +		$classname="";
    +		if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "project") { $classname='class="tmenusel"'; $_SESSION['idmenu']=''; }
    +		else $classname = 'class="tmenu"';
    +		$idsel='project';
    +
    +		$title = $langs->trans("LeadsOrProjects");	// Leads and opportunities by default
    +		$showmodel = $showmodep = $showmode;
    +		if (empty($conf->global->PROJECT_USE_OPPORTUNITIES))
    +		{
    +			$title = $langs->trans("Projects");
    +			$showmodel = 0;
    +		}
    +		if ($conf->global->PROJECT_USE_OPPORTUNITIES == 2) {
    +			$title = $langs->trans("Leads");
    +			$showmodep = 0;
    +		}
    +
    +		$menu->add('/projet/index.php?mainmenu=project&amp;leftmenu=', $title, 0, $showmode, $atarget, "project", '', 35, $id, $idsel, $classname);
    +		//$menu->add('/projet/index.php?mainmenu=project&amp;leftmenu=&search_opp_status=openedopp', $langs->trans("ListLeads"), 0, $showmodel & $conf->global->PROJECT_USE_OPPORTUNITIES, $atarget, "project", '', 70, $id, $idsel, $classname);
    +		//$menu->add('/projet/index.php?mainmenu=project&amp;leftmenu=&search_opp_status=notopenedopp', $langs->trans("ListProjects"), 0, $showmodep, $atarget, "project", '', 70, $id, $idsel, $classname);
    +	}
    +
     	// Commercial
     	$menuqualified=0;
     	if (! empty($conf->propal->enabled)) $menuqualified++;
    @@ -140,10 +182,11 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
     	if (! empty($conf->supplier_proposal->enabled)) $menuqualified++;
     	if (! empty($conf->contrat->enabled)) $menuqualified++;
     	if (! empty($conf->ficheinter->enabled)) $menuqualified++;
    -	$tmpentry=array(
    +	$tmpentry = array(
     	    'enabled'=>$menuqualified,
     	    'perms'=>(! empty($user->rights->societe->lire) || ! empty($user->rights->societe->contact->lire)),
    -	    'module'=>'propal|commande|supplier_order|contrat|ficheinter');
    +        'module'=>'propal|commande|supplier_order|contrat|ficheinter',
    +    );
     	$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
     	if ($showmode)
     	{
    @@ -165,10 +208,11 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
     	if (! empty($conf->salaries->enabled)) $menuqualified++;
     	if (! empty($conf->supplier_invoice->enabled)) $menuqualified++;
     	if (! empty($conf->loan->enabled)) $menuqualified++;
    -	$tmpentry=array(
    -	   'enabled'=>$menuqualified,
    -	'perms'=>(! empty($user->rights->facture->lire) || ! empty($user->rights->don->lire) || ! empty($user->rights->tax->charges->lire) || ! empty($user->rights->salaries->read) || ! empty($user->rights->fournisseur->facture->lire) || ! empty($user->rights->loan->read)),
    -	   'module'=>'facture|supplier_invoice|don|tax|salaries|loan');
    +	$tmpentry = array(
    +	    'enabled'=>$menuqualified,
    +	    'perms'=>(! empty($user->rights->facture->lire) || ! empty($user->rights->don->lire) || ! empty($user->rights->tax->charges->lire) || ! empty($user->rights->salaries->read) || ! empty($user->rights->fournisseur->facture->lire) || ! empty($user->rights->loan->read)),
    +        'module'=>'facture|supplier_invoice|don|tax|salaries|loan',
    +    );
     	$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
     	if ($showmode)
     	{
    @@ -183,14 +227,16 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
     	}
     
     	// Bank
    -	$tmpentry=array('enabled'=>(! empty($conf->banque->enabled) || ! empty($conf->prelevement->enabled)),
    -	'perms'=>(! empty($user->rights->banque->lire) || ! empty($user->rights->prelevement->lire)),
    -	'module'=>'banque|prelevement');
    +	$tmpentry = array(
    +        'enabled'=>(! empty($conf->banque->enabled) || ! empty($conf->prelevement->enabled)),
    +	    'perms'=>(! empty($user->rights->banque->lire) || ! empty($user->rights->prelevement->lire)),
    +        'module'=>'banque|prelevement',
    +    );
     	$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
     	if ($showmode)
     	{
    -		$langs->load("compta");
    -		$langs->load("banks");
    +	    // Load translation files required by the page
    +        $langs->loadLangs(array("compta","banks"));
     
     		$classname="";
     		if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "bank") { $classname='class="tmenusel"'; $_SESSION['idmenu']=''; }
    @@ -205,10 +251,11 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
     	if (! empty($conf->comptabilite->enabled)) $menuqualified++;
     	if (! empty($conf->accounting->enabled)) $menuqualified++;
     	if (! empty($conf->asset->enabled)) $menuqualified++;
    -	$tmpentry=array(
    -	'enabled'=>$menuqualified,
    -	'perms'=>(! empty($user->rights->compta->resultat->lire) || ! empty($user->rights->accounting->mouvements->lire) || ! empty($user->rights->asset->read)),
    -	'module'=>'comptabilite|accounting');
    +	$tmpentry = array(
    +	    'enabled'=>$menuqualified,
    +	    'perms'=>(! empty($user->rights->compta->resultat->lire) || ! empty($user->rights->accounting->mouvements->lire) || ! empty($user->rights->asset->read)),
    +        'module'=>'comptabilite|accounting',
    +    );
     	$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
     	if ($showmode)
     	{
    @@ -222,27 +269,12 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
     		$menu->add('/accountancy/index.php?mainmenu=accountancy&amp;leftmenu=', $langs->trans("MenuAccountancy"), 0, $showmode, $atarget, "accountancy", '', 54, $id, $idsel, $classname);
     	}
     
    -	// Projects
    -	$tmpentry=array('enabled'=>(! empty($conf->projet->enabled)),
    -	'perms'=>(! empty($user->rights->projet->lire)),
    -	'module'=>'projet');
    -	$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
    -	if ($showmode)
    -	{
    -		$langs->load("projects");
    -
    -		$classname="";
    -		if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "project") { $classname='class="tmenusel"'; $_SESSION['idmenu']=''; }
    -		else $classname = 'class="tmenu"';
    -		$idsel='project';
    -
    -		$menu->add('/projet/index.php?mainmenu=project&amp;leftmenu=', $langs->trans("Projects"), 0, $showmode, $atarget, "project", '', 70, $id, $idsel, $classname);
    -	}
    -
     	// HRM
    -	$tmpentry=array('enabled'=>(! empty($conf->hrm->enabled) || ! empty($conf->holiday->enabled) || ! empty($conf->deplacement->enabled) || ! empty($conf->expensereport->enabled)),
    -	'perms'=>(! empty($user->rights->hrm->employee->read) || ! empty($user->rights->holiday->write) || ! empty($user->rights->deplacement->lire) || ! empty($user->rights->expensereport->lire)),
    -	'module'=>'hrm|holiday|deplacement|expensereport');
    +	$tmpentry = array(
    +        'enabled'=>(! empty($conf->hrm->enabled) || ! empty($conf->holiday->enabled) || ! empty($conf->deplacement->enabled) || ! empty($conf->expensereport->enabled)),
    +	    'perms'=>(! empty($user->rights->hrm->employee->read) || ! empty($user->rights->holiday->write) || ! empty($user->rights->deplacement->lire) || ! empty($user->rights->expensereport->lire)),
    +        'module'=>'hrm|holiday|deplacement|expensereport',
    +    );
     	$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
     	if ($showmode)
     	{
    @@ -257,10 +289,11 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
     	}
     
     	// Tools
    -	$tmpentry=array(
    -	'enabled'=>1,
    -	'perms'=>1,
    -	'module'=>'');
    +	$tmpentry = array(
    +	    'enabled'=>1,
    +	    'perms'=>1,
    +        'module'=>'',
    +    );
     	$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
     	if ($showmode)
     	{
    @@ -319,19 +352,21 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
     	// Sort on position
     	$menu->liste = dol_sort_array($menu->liste, 'position');
     
    -	// Output menu entries
    -	foreach($menu->liste as $menkey => $menuval)
    -	{
    -	    if (empty($noout)) print_start_menu_entry($menuval['idsel'],$menuval['classname'],$menuval['enabled']);
    -	    if (empty($noout)) print_text_menu_entry($menuval['titre'], $menuval['enabled'], (($menuval['url']!='#' && !preg_match('/^(http:\/\/|https:\/\/)/i', $menuval['url'])) ? DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target']?$menuval['target']:$atarget));
    -	    if (empty($noout)) print_end_menu_entry($menuval['enabled']);
    -	}
    +    // Output menu entries
    +    if (empty($noout)) {
    +        foreach($menu->liste as $menkey => $menuval) {
    +            print_start_menu_entry($menuval['idsel'],$menuval['classname'],$menuval['enabled']);
    +            print_text_menu_entry($menuval['titre'], $menuval['enabled'], (($menuval['url']!='#' && !preg_match('/^(http:\/\/|https:\/\/)/i', $menuval['url'])) ? DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target']?$menuval['target']:$atarget));
    +            print_end_menu_entry($menuval['enabled']);
    +        }
    +    }
     
     	$showmode=1;
    -	if (empty($noout)) print_start_menu_entry('','class="tmenuend"',$showmode);
    -	if (empty($noout)) print_end_menu_entry($showmode);
    -
    -	if (empty($noout)) print_end_menu_array();
    +    if (empty($noout)) {
    +        print_start_menu_entry('','class="tmenuend"',$showmode);
    +        print_end_menu_entry($showmode);
    +        print_end_menu_array();
    +    }
     
     	return 0;
     }
    @@ -347,7 +382,7 @@ function print_start_menu_array()
         global $conf;
     
     	print '<div class="tmenudiv">';
    -	print '<ul class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)?'':' title="Top menu"').'>';
    +	print '<ul role="navigation" class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)?'':' title="Top menu"').'>';
     }
     
     /**
    @@ -384,8 +419,7 @@ function print_text_menu_entry($text, $showmode, $url, $id, $idsel, $classname,
     {
     	global $langs;
     
    -	if ($showmode == 1)
    -	{
    +	if ($showmode == 1) {
     		print '<a class="tmenuimage" tabindex="-1" href="'.$url.'"'.($atarget?' target="'.$atarget.'"':'').'>';
     		print '<div class="'.$id.' '.$idsel.' topmenuimage"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
     		print '</a>';
    @@ -394,9 +428,7 @@ function print_text_menu_entry($text, $showmode, $url, $id, $idsel, $classname,
     		print $text;
     		print '</span>';
     		print '</a>';
    -	}
    -	if ($showmode == 2)
    -	{
    +	} elseif ($showmode == 2) {
     		print '<div class="'.$id.' '.$idsel.' topmenuimage tmenudisabled"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
     		print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
     		print '<span class="mainmenuaspan">';
    @@ -454,6 +486,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     {
     	global $user,$conf,$langs,$dolibarr_main_db_name,$mysoc;
     
    +	//var_dump($tabMenu);
    +
     	$newmenu = $menu;
     
     	$mainmenu=($forcemainmenu?$forcemainmenu:$_SESSION["mainmenu"]);
    @@ -467,7 +501,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     		$mysoc->logo_mini=$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI;
     		if (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini))
     		{
    -			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('thumbs/'.$mysoc->logo_mini);
    +			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_mini);
     		}
     		else
     		{
    @@ -509,7 +543,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     	 * We update newmenu with entries found into database
     	 * --------------------------------------------------
     	 */
    -	if ($mainmenu)
    +	if ($mainmenu)	// If this is empty, loading hard coded menu and loading personalised menu will fail
     	{
     		/*
     		 * Menu HOME
    @@ -526,8 +560,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     
     			if ($usemenuhider || empty($leftmenu) || $leftmenu=="setup")
     			{
    -				$langs->load("admin");
    -				$langs->load("help");
    +			    // Load translation files required by the page
    +                $langs->loadLangs(array("admin","help"));
     
     				$warnpicto='';
     				if (empty($conf->global->MAIN_INFO_SOCIETE_NOM) || empty($conf->global->MAIN_INFO_SOCIETE_COUNTRY))
    @@ -563,13 +597,15 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     			$newmenu->add("/admin/tools/index.php?mainmenu=home&amp;leftmenu=admintools", $langs->trans("AdminTools"), 0, $user->admin, '', $mainmenu, 'admintools', 0, '', '', '', '<i class="fa fa-server fa-fw paddingright"></i>');
     			if ($usemenuhider || empty($leftmenu) || preg_match('/^admintools/',$leftmenu))
     			{
    -				$langs->load("admin");
    -				$langs->load("help");
    +			    // Load translation files required by the page
    +                $langs->loadLangs(array('admin', 'help'));
     
     				$newmenu->add('/admin/system/dolibarr.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('InfoDolibarr'), 1);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=='admintools_info') $newmenu->add('/admin/system/modules.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('Modules'), 2);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=='admintools_info') $newmenu->add('/admin/triggers.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('Triggers'), 2);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=='admintools_info') $newmenu->add('/admin/system/filecheck.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('FileCheck'), 2);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=='admintools_info') {
    +                    $newmenu->add('/admin/system/modules.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('Modules'), 2);
    +				    $newmenu->add('/admin/triggers.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('Triggers'), 2);
    +                    $newmenu->add('/admin/system/filecheck.php?mainmenu=home&amp;leftmenu=admintools_info', $langs->trans('FileCheck'), 2);
    +                }
     				$newmenu->add('/admin/system/browser.php?mainmenu=home&amp;leftmenu=admintools', $langs->trans('InfoBrowser'), 1);
     				$newmenu->add('/admin/system/os.php?mainmenu=home&amp;leftmenu=admintools', $langs->trans('InfoOS'), 1);
     				$newmenu->add('/admin/system/web.php?mainmenu=home&amp;leftmenu=admintools', $langs->trans('InfoWebServer'), 1);
    @@ -612,7 +648,6 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     					$newmenu->add("/user/group/list.php?leftmenu=users", $langs->trans("ListOfGroups"), 2, (($conf->global->MAIN_USE_ADVANCED_PERMS?$user->rights->user->group_advance->read:$user->rights->user->user->lire) || $user->admin) && !(! empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE));
     				}
     			}
    -
     		}
     
     
    @@ -670,6 +705,25 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$newmenu->add("/societe/card.php?leftmenu=suppliers&amp;action=create&amp;type=f",$langs->trans("MenuNewSupplier"), 2, $user->rights->societe->creer && ($user->rights->fournisseur->lire || $user->rights->supplier_proposal->lire));
     			}
     
    +			// Categories
    +			if (! empty($conf->categorie->enabled))
    +			{
    +				$langs->load("categories");
    +				if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))
    +				{
    +					// Categories prospects/customers
    +					$menutoshow=$langs->trans("CustomersProspectsCategoriesShort");
    +					if (! empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) $menutoshow=$langs->trans("CustomersCategoriesShort");
    +					if (! empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) $menutoshow=$langs->trans("ProspectsCategoriesShort");
    +					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=2", $menutoshow, 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');
    +				}
    +				// Categories suppliers
    +				if (! empty($conf->fournisseur->enabled))
    +				{
    +					$newmenu->add("/categories/index.php?leftmenu=catfournish&amp;type=1", $langs->trans("SuppliersCategoriesShort"), 1, $user->rights->categorie->lire);
    +				}
    +			}
    +
     			// Contacts
     			$newmenu->add("/societe/index.php?leftmenu=thirdparties", (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")), 0, $user->rights->societe->contact->lire, '', $mainmenu, 'contacts');
     			$newmenu->add("/contact/card.php?leftmenu=contacts&amp;action=create", (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("NewContact") : $langs->trans("NewContactAddress")), 1, $user->rights->societe->contact->creer);
    @@ -684,25 +738,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     			if (! empty($conf->categorie->enabled))
     			{
     				$langs->load("categories");
    -				if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))
    -				{
    -					// Categories prospects/customers
    -				    $menutoshow=$langs->trans("CustomersProspectsCategoriesShort");
    -				    if (! empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) $menutoshow=$langs->trans("CustomersCategoriesShort");
    -				    if (! empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) $menutoshow=$langs->trans("ProspectsCategoriesShort");
    -					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=2", $menutoshow, 0, $user->rights->categorie->lire, '', $mainmenu, 'cat');
    -				    $newmenu->add("/categories/card.php?action=create&amp;type=2", $langs->trans("NewCategory"), 1, $user->rights->categorie->creer);
    -				}
     				// Categories Contact
    -				$newmenu->add("/categories/index.php?leftmenu=catcontact&amp;type=4", $langs->trans("ContactCategoriesShort"), 0, $user->rights->categorie->lire, '', $mainmenu, 'cat');
    -				$newmenu->add("/categories/card.php?action=create&amp;type=4", $langs->trans("NewCategory"), 1, $user->rights->categorie->creer);
    -				// Categories suppliers
    -				if (! empty($conf->fournisseur->enabled))
    -				{
    -					$newmenu->add("/categories/index.php?leftmenu=catfournish&amp;type=1", $langs->trans("SuppliersCategoriesShort"), 0, $user->rights->categorie->lire);
    -					$newmenu->add("/categories/card.php?action=create&amp;type=1", $langs->trans("NewCategory"), 1, $user->rights->categorie->creer);
    -				}
    -				//if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire);
    +				$newmenu->add("/categories/index.php?leftmenu=catcontact&amp;type=4", $langs->trans("ContactCategoriesShort"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');
     			}
     		}
     
    @@ -720,12 +757,14 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$newmenu->add("/comm/propal/index.php?leftmenu=propals", $langs->trans("Proposals"), 0, $user->rights->propale->lire, '', $mainmenu, 'propals', 100);
     				$newmenu->add("/comm/propal/card.php?action=create&amp;leftmenu=propals", $langs->trans("NewPropal"), 1, $user->rights->propale->creer);
     				$newmenu->add("/comm/propal/list.php?leftmenu=propals", $langs->trans("List"), 1, $user->rights->propale->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="propals") $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=0", $langs->trans("PropalsDraft"), 2, $user->rights->propale->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="propals") $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=1", $langs->trans("PropalsOpened"), 2, $user->rights->propale->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="propals") $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=2", $langs->trans("PropalStatusSigned"), 2, $user->rights->propale->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="propals") $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=3", $langs->trans("PropalStatusNotSigned"), 2, $user->rights->propale->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="propals") $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=4", $langs->trans("PropalStatusBilled"), 2, $user->rights->propale->lire);
    -				//if ($usemenuhider || empty($leftmenu) || $leftmenu=="propals") $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=2,3,4", $langs->trans("PropalStatusClosedShort"), 2, $user->rights->propale->lire);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=="propals") {
    +                    $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=0", $langs->trans("PropalsDraft"), 2, $user->rights->propale->lire);
    +				    $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=1", $langs->trans("PropalsOpened"), 2, $user->rights->propale->lire);
    +				    $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=2", $langs->trans("PropalStatusSigned"), 2, $user->rights->propale->lire);
    +				    $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=3", $langs->trans("PropalStatusNotSigned"), 2, $user->rights->propale->lire);
    +				    $newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=4", $langs->trans("PropalStatusBilled"), 2, $user->rights->propale->lire);
    +                    //$newmenu->add("/comm/propal/list.php?leftmenu=propals&viewstatut=2,3,4", $langs->trans("PropalStatusClosedShort"), 2, $user->rights->propale->lire);
    +                }
     				$newmenu->add("/comm/propal/stats/index.php?leftmenu=propals", $langs->trans("Statistics"), 1, $user->rights->propale->lire);
     			}
     
    @@ -736,12 +775,14 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
                     $newmenu->add("/commande/index.php?leftmenu=orders", $langs->trans("CustomersOrders"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders', 200);
                     $newmenu->add("/commande/card.php?action=create&amp;leftmenu=orders", $langs->trans("NewOrder"), 1, $user->rights->commande->creer);
                     $newmenu->add("/commande/list.php?leftmenu=orders", $langs->trans("List"), 1, $user->rights->commande->lire);
    -                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=0", $langs->trans("StatusOrderDraftShort"), 2, $user->rights->commande->lire);
    -                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=1", $langs->trans("StatusOrderValidated"), 2, $user->rights->commande->lire);
    -                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders" && ! empty($conf->expedition->enabled)) $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=2", $langs->trans("StatusOrderSentShort"), 2, $user->rights->commande->lire);
    -                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=3", $langs->trans("StatusOrderDelivered"), 2, $user->rights->commande->lire);
    -                //if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=4", $langs->trans("StatusOrderProcessed"), 2, $user->rights->commande->lire);
    -                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=-1", $langs->trans("StatusOrderCanceledShort"), 2, $user->rights->commande->lire);
    +                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") {
    +                    $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=0", $langs->trans("StatusOrderDraftShort"), 2, $user->rights->commande->lire);
    +                    $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=1", $langs->trans("StatusOrderValidated"), 2, $user->rights->commande->lire);
    +                    if (! empty($conf->expedition->enabled)) $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=2", $langs->trans("StatusOrderSentShort"), 2, $user->rights->commande->lire);
    +                    $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=3", $langs->trans("StatusOrderDelivered"), 2, $user->rights->commande->lire);
    +                    //$newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=4", $langs->trans("StatusOrderProcessed"), 2, $user->rights->commande->lire);
    +                    $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=-1", $langs->trans("StatusOrderCanceledShort"), 2, $user->rights->commande->lire);
    +                }
                     $newmenu->add("/commande/stats/index.php?leftmenu=orders", $langs->trans("Statistics"), 1, $user->rights->commande->lire);
                 }
     
    @@ -753,14 +794,16 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$newmenu->add("/fourn/commande/card.php?action=create&amp;leftmenu=orders_suppliers", $langs->trans("NewOrder"), 1, $user->rights->fournisseur->commande->creer);
     				$newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers", $langs->trans("List"), 1, $user->rights->fournisseur->commande->lire);
     
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=0", $langs->trans("StatusOrderDraftShort"), 2, $user->rights->fournisseur->commande->lire);
    -                if (($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") && empty($conf->global->SUPPLIER_ORDER_HIDE_VALIDATED)) $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=1", $langs->trans("StatusOrderValidated"), 2, $user->rights->fournisseur->commande->lire);
    -                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=2", $langs->trans("StatusOrderApprovedShort"), 2, $user->rights->fournisseur->commande->lire);
    -                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=3", $langs->trans("StatusOrderOnProcessShort"), 2, $user->rights->fournisseur->commande->lire);
    -                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=4", $langs->trans("StatusOrderReceivedPartiallyShort"), 2, $user->rights->fournisseur->commande->lire);
    -                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=5", $langs->trans("StatusOrderReceivedAll"), 2, $user->rights->fournisseur->commande->lire);
    -                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=6,7", $langs->trans("StatusOrderCanceled"), 2, $user->rights->fournisseur->commande->lire);
    -                if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=9", $langs->trans("StatusOrderRefused"), 2, $user->rights->fournisseur->commande->lire);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") {
    +                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=0", $langs->trans("StatusOrderDraftShort"), 2, $user->rights->fournisseur->commande->lire);
    +                    if (empty($conf->global->SUPPLIER_ORDER_HIDE_VALIDATED)) $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=1", $langs->trans("StatusOrderValidated"), 2, $user->rights->fournisseur->commande->lire);
    +                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=2", $langs->trans("StatusOrderApprovedShort"), 2, $user->rights->fournisseur->commande->lire);
    +                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=3", $langs->trans("StatusOrderOnProcessShort"), 2, $user->rights->fournisseur->commande->lire);
    +                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=4", $langs->trans("StatusOrderReceivedPartiallyShort"), 2, $user->rights->fournisseur->commande->lire);
    +                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=5", $langs->trans("StatusOrderReceivedAll"), 2, $user->rights->fournisseur->commande->lire);
    +                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=6,7", $langs->trans("StatusOrderCanceled"), 2, $user->rights->fournisseur->commande->lire);
    +                    $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=9", $langs->trans("StatusOrderRefused"), 2, $user->rights->fournisseur->commande->lire);
    +                }
                     // Billed is another field. We should add instead a dedicated filter on list. if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&billed=1", $langs->trans("StatusOrderBilled"), 2, $user->rights->fournisseur->commande->lire);
     
     
    @@ -775,10 +818,12 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$newmenu->add("/contrat/card.php?action=create&amp;leftmenu=contracts", $langs->trans("NewContractSubscription"), 1, $user->rights->contrat->creer);
     				$newmenu->add("/contrat/list.php?leftmenu=contracts", $langs->trans("List"), 1, $user->rights->contrat->lire);
     				$newmenu->add("/contrat/services_list.php?leftmenu=contracts", $langs->trans("MenuServices"), 1, $user->rights->contrat->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="contracts") $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=0", $langs->trans("MenuInactiveServices"), 2, $user->rights->contrat->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="contracts") $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=4", $langs->trans("MenuRunningServices"), 2, $user->rights->contrat->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="contracts") $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=4&amp;filter=expired", $langs->trans("MenuExpiredServices"), 2, $user->rights->contrat->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="contracts") $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=5", $langs->trans("MenuClosedServices"), 2, $user->rights->contrat->lire);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=="contracts") {
    +                    $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=0", $langs->trans("MenuInactiveServices"), 2, $user->rights->contrat->lire);
    +				    $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=4", $langs->trans("MenuRunningServices"), 2, $user->rights->contrat->lire);
    +				    $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=4&amp;filter=expired", $langs->trans("MenuExpiredServices"), 2, $user->rights->contrat->lire);
    +                    $newmenu->add("/contrat/services_list.php?leftmenu=contracts&amp;mode=5", $langs->trans("MenuClosedServices"), 2, $user->rights->contrat->lire);
    +                }
     			}
     
     			// Interventions
    @@ -788,10 +833,9 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$newmenu->add("/fichinter/index.php?leftmenu=ficheinter", $langs->trans("Interventions"), 0, $user->rights->ficheinter->lire, '', $mainmenu, 'ficheinter', 2200);
     				$newmenu->add("/fichinter/card.php?action=create&amp;leftmenu=ficheinter", $langs->trans("NewIntervention"), 1, $user->rights->ficheinter->creer, '', '', '', 201);
     				$newmenu->add("/fichinter/list.php?leftmenu=ficheinter", $langs->trans("List"), 1, $user->rights->ficheinter->lire, '', '', '', 202);
    -
    +				$newmenu->add("/fichinter/card-red.php?leftmenu=ficheinter", $langs->trans("ModelList"), 1, $user->rights->ficheinter->lire, '', '', '', 203);
     				$newmenu->add("/fichinter/stats/index.php?leftmenu=ficheinter", $langs->trans("Statistics"), 1, $user->rights->fournisseur->commande->lire);
     			}
    -
     		}
     
     
    @@ -876,8 +920,10 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     			{
     				$langs->load("donations");
     				$newmenu->add("/don/index.php?leftmenu=donations&amp;mainmenu=billing",$langs->trans("Donations"), 0, $user->rights->don->lire, '', $mainmenu, 'donations');
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="donations") $newmenu->add("/don/card.php?leftmenu=donations&amp;action=create",$langs->trans("NewDonation"), 1, $user->rights->don->creer);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="donations") $newmenu->add("/don/list.php?leftmenu=donations",$langs->trans("List"), 1, $user->rights->don->lire);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=="donations") {
    +                    $newmenu->add("/don/card.php?leftmenu=donations&amp;action=create",$langs->trans("NewDonation"), 1, $user->rights->don->creer);
    +                    $newmenu->add("/don/list.php?leftmenu=donations",$langs->trans("List"), 1, $user->rights->don->lire);
    +                }
     				// if ($leftmenu=="donations") $newmenu->add("/don/stats/index.php",$langs->trans("Statistics"), 1, $user->rights->don->lire);
     			}
     
    @@ -892,40 +938,48 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				// Social contributions
     				if (! empty($conf->tax->enabled))
     				{
    -					$newmenu->add("/compta/sociales/index.php?leftmenu=tax_social",$langs->trans("MenuSocialContributions"),1,$user->rights->tax->charges->lire);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_social/i',$leftmenu)) $newmenu->add("/compta/sociales/card.php?leftmenu=tax_social&action=create",$langs->trans("MenuNewSocialContribution"), 2, $user->rights->tax->charges->creer);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_social/i',$leftmenu)) $newmenu->add("/compta/sociales/index.php?leftmenu=tax_social",$langs->trans("List"),2,$user->rights->tax->charges->lire);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_social/i',$leftmenu)) $newmenu->add("/compta/sociales/payments.php?leftmenu=tax_social&amp;mainmenu=billing&amp;mode=sconly",$langs->trans("Payments"), 2, $user->rights->tax->charges->lire);
    +					$newmenu->add("/compta/sociales/list.php?leftmenu=tax_social",$langs->trans("MenuSocialContributions"),1,$user->rights->tax->charges->lire);
    +					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_social/i',$leftmenu)) {
    +                        $newmenu->add("/compta/sociales/card.php?leftmenu=tax_social&action=create",$langs->trans("MenuNewSocialContribution"), 2, $user->rights->tax->charges->creer);
    +					    $newmenu->add("/compta/sociales/list.php?leftmenu=tax_social",$langs->trans("List"),2,$user->rights->tax->charges->lire);
    +                        $newmenu->add("/compta/sociales/payments.php?leftmenu=tax_social&amp;mainmenu=billing&amp;mode=sconly",$langs->trans("Payments"), 2, $user->rights->tax->charges->lire);
    +                    }
     					// VAT
     					if (empty($conf->global->TAX_DISABLE_VAT_MENUS))
     					{
     						$newmenu->add("/compta/tva/list.php?leftmenu=tax_vat&amp;mainmenu=billing",$langs->transcountry("VAT", $mysoc->country_code),1,$user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat');
    -						if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/card.php?leftmenu=tax_vat&action=create",$langs->trans("New"),2,$user->rights->tax->charges->creer);
    -						if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/list.php?leftmenu=tax_vat",$langs->trans("List"),2,$user->rights->tax->charges->lire);
    -						if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/index.php?leftmenu=tax_vat",$langs->trans("ReportByMonth"),2,$user->rights->tax->charges->lire);
    -						if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);
    -						if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/quadri_detail.php?leftmenu=tax_vat", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);
    +						if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) {
    +                            $newmenu->add("/compta/tva/card.php?leftmenu=tax_vat&action=create",$langs->trans("New"),2,$user->rights->tax->charges->creer);
    +						    $newmenu->add("/compta/tva/list.php?leftmenu=tax_vat",$langs->trans("List"),2,$user->rights->tax->charges->lire);
    +						    $newmenu->add("/compta/tva/index.php?leftmenu=tax_vat",$langs->trans("ReportByMonth"),2,$user->rights->tax->charges->lire);
    +						    $newmenu->add("/compta/tva/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);
    +                            $newmenu->add("/compta/tva/quadri_detail.php?leftmenu=tax_vat", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);
    +                        }
     						global $mysoc;
     
     						//Local Taxes 1
     						if($mysoc->useLocalTax(1) && (isset($mysoc->localtax1_assuj) && $mysoc->localtax1_assuj=="1"))
     						{
     							$newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&amp;mainmenu=billing&amp;localTaxType=1",$langs->transcountry("LT1",$mysoc->country_code),1,$user->rights->tax->charges->lire);
    -							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_1_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/card.php?leftmenu=tax_1_vat&action=create&amp;localTaxType=1",$langs->trans("New"),2,$user->rights->tax->charges->creer);
    -							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_1_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&amp;localTaxType=1",$langs->trans("List"),2,$user->rights->tax->charges->lire);
    -							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_1_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/index.php?leftmenu=tax_1_vat&amp;localTaxType=1",$langs->trans("ReportByMonth"),2,$user->rights->tax->charges->lire);
    -							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_1_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);
    -							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_1_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);
    +							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_1_vat/i',$leftmenu)) {
    +                                $newmenu->add("/compta/localtax/card.php?leftmenu=tax_1_vat&action=create&amp;localTaxType=1",$langs->trans("New"),2,$user->rights->tax->charges->creer);
    +							    $newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&amp;localTaxType=1",$langs->trans("List"),2,$user->rights->tax->charges->lire);
    +							    $newmenu->add("/compta/localtax/index.php?leftmenu=tax_1_vat&amp;localTaxType=1",$langs->trans("ReportByMonth"),2,$user->rights->tax->charges->lire);
    +							    $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);
    +                                $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_1_vat&amp;localTaxType=1", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);
    +                            }
     						}
     						//Local Taxes 2
     						if($mysoc->useLocalTax(2) && (isset($mysoc->localtax2_assuj) && $mysoc->localtax2_assuj=="1"))
     						{
     							$newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&amp;mainmenu=billing&amp;localTaxType=2",$langs->transcountry("LT2",$mysoc->country_code),1,$user->rights->tax->charges->lire);
    -							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_2_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/card.php?leftmenu=tax_2_vat&action=create&amp;localTaxType=2",$langs->trans("New"),2,$user->rights->tax->charges->creer);
    -							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_2_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&amp;localTaxType=2",$langs->trans("List"),2,$user->rights->tax->charges->lire);
    -							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_2_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/index.php?leftmenu=tax_2_vat&amp;localTaxType=2",$langs->trans("ReportByMonth"),2,$user->rights->tax->charges->lire);
    -							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_2_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);
    -							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_2_vat/i',$leftmenu)) $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);
    +							if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_2_vat/i',$leftmenu)) {
    +                                $newmenu->add("/compta/localtax/card.php?leftmenu=tax_2_vat&action=create&amp;localTaxType=2",$langs->trans("New"),2,$user->rights->tax->charges->creer);
    +							    $newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&amp;localTaxType=2",$langs->trans("List"),2,$user->rights->tax->charges->lire);
    +							    $newmenu->add("/compta/localtax/index.php?leftmenu=tax_2_vat&amp;localTaxType=2",$langs->trans("ReportByMonth"),2,$user->rights->tax->charges->lire);
    +							    $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire);
    +                                $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_2_vat&amp;localTaxType=2", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire);
    +                            }
     						}
     					}
     				}
    @@ -934,28 +988,34 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				if (! empty($conf->salaries->enabled))
     				{
     					$langs->load("salaries");
    -					$newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary&amp;mainmenu=billing",$langs->trans("Salaries"),1,$user->rights->salaries->read, '', $mainmenu, 'tax_salary');
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) $newmenu->add("/compta/salaries/card.php?leftmenu=tax_salary&action=create",$langs->trans("NewPayment"),2,$user->rights->salaries->write);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) $newmenu->add("/compta/salaries/index.php?leftmenu=tax_salary",$langs->trans("Payments"),2,$user->rights->salaries->read);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) $newmenu->add("/compta/salaries/stats/index.php?leftmenu=tax_salary", $langs->trans("Statistics"),2,$user->rights->salaries->read);
    +					$newmenu->add("/compta/salaries/list.php?leftmenu=tax_salary&amp;mainmenu=billing",$langs->trans("Salaries"),1,$user->rights->salaries->read, '', $mainmenu, 'tax_salary');
    +					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i',$leftmenu)) {
    +                        $newmenu->add("/compta/salaries/card.php?leftmenu=tax_salary&action=create",$langs->trans("NewPayment"),2,$user->rights->salaries->write);
    +					    $newmenu->add("/compta/salaries/list.php?leftmenu=tax_salary",$langs->trans("Payments"),2,$user->rights->salaries->read);
    +                        $newmenu->add("/compta/salaries/stats/index.php?leftmenu=tax_salary", $langs->trans("Statistics"),2,$user->rights->salaries->read);
    +                    }
     				}
     
     				// Loan
     				if (! empty($conf->loan->enabled))
     				{
     					$langs->load("loan");
    -					$newmenu->add("/loan/index.php?leftmenu=tax_loan&amp;mainmenu=billing",$langs->trans("Loans"),1,$user->rights->loan->read, '', $mainmenu, 'tax_loan');
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_loan/i',$leftmenu)) $newmenu->add("/loan/card.php?leftmenu=tax_loan&action=create",$langs->trans("NewLoan"),2,$user->rights->loan->write);
    -					//if (empty($leftmenu) || preg_match('/^tax_loan/i',$leftmenu)) $newmenu->add("/loan/payment/list.php?leftmenu=tax_loan",$langs->trans("Payments"),2,$user->rights->loan->read);
    +					$newmenu->add("/loan/list.php?leftmenu=tax_loan&amp;mainmenu=billing",$langs->trans("Loans"),1,$user->rights->loan->read, '', $mainmenu, 'tax_loan');
    +					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_loan/i',$leftmenu)) {
    +                        $newmenu->add("/loan/card.php?leftmenu=tax_loan&action=create",$langs->trans("NewLoan"),2,$user->rights->loan->write);
    +                        //$newmenu->add("/loan/payment/list.php?leftmenu=tax_loan",$langs->trans("Payments"),2,$user->rights->loan->read);
    +                    }
     				}
     
     				// Various payment
    -				if (! empty($conf->banque->enabled) && $conf->global->MAIN_FEATURES_LEVEL >= 1)
    +				if (! empty($conf->banque->enabled) && empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT))
     				{
     					$langs->load("banks");
    -					$newmenu->add("/compta/bank/various_payment/index.php?leftmenu=tax_various&amp;mainmenu=billing",$langs->trans("MenuVariousPayment"),1,$user->rights->banque->lire, '', $mainmenu, 'tax_various');
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_various/i',$leftmenu)) $newmenu->add("/compta/bank/various_payment/card.php?leftmenu=tax_various&action=create",$langs->trans("MenuNewVariousPayment"), 2, $user->rights->banque->modifier);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_various/i',$leftmenu)) $newmenu->add("/compta/bank/various_payment/index.php?leftmenu=tax_various",$langs->trans("List"),2,$user->rights->banque->lire);
    +					$newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various&amp;mainmenu=billing",$langs->trans("MenuVariousPayment"),1,$user->rights->banque->lire, '', $mainmenu, 'tax_various');
    +					if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_various/i',$leftmenu)) {
    +                        $newmenu->add("/compta/bank/various_payment/card.php?leftmenu=tax_various&action=create",$langs->trans("New"), 2, $user->rights->banque->modifier);
    +                        $newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various",$langs->trans("List"),2,$user->rights->banque->lire);
    +                    }
     				}
     			}
     		}
    @@ -977,56 +1037,60 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     
     				// Chart of account
     				$newmenu->add("/accountancy/index.php?leftmenu=accountancy_admin", $langs->trans("Setup"),1,$user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin', 1);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/accountancy/admin/index.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("General"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_general', 10);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("AccountingJournals"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_journal', 20);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/accountancy/admin/accountmodel.php?id=31&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("Pcg_version"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chartmodel', 30);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("Chartofaccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 40);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/accountancy/admin/categories_list.php?id=32&search_country_id=".$mysoc->country_id."&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("AccountingCategory"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 41);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuDefaultAccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 50);
    -				if (! empty($conf->banque->enabled))
    -				{
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/compta/bank/list.php?mainmenu=accountancy&leftmenu=accountancy_admin&search_status=-1", $langs->trans("MenuBankAccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_bank', 51);
    -				}
    -				if (! empty($conf->facture->enabled) || ! empty($conf->fournisseur->enabled))
    -				{
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/admin/dict.php?id=10&from=accountancy&search_country_id=".$mysoc->country_id."&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuVatAccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 52);
    -				}
    -				if (! empty($conf->tax->enabled))
    -				{
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/admin/dict.php?id=7&from=accountancy&search_country_id=".$mysoc->country_id."&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuTaxAccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 53);
    -				}
    -				if (! empty($conf->expensereport->enabled))
    -				{
    -					if (preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/admin/dict.php?id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuExpenseReportAccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 54);
    -				}
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/accountancy/admin/productaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuProductsAccounts"), 2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_product', 55);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/accountancy/admin/export.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("ExportOptions"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_export', 60);
    +				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) {
    +                    $newmenu->add("/accountancy/admin/index.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("General"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_general', 10);
    +				    $newmenu->add("/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("AccountingJournals"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_journal', 20);
    +				    $newmenu->add("/accountancy/admin/accountmodel.php?id=31&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("Pcg_version"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chartmodel', 30);
    +				    $newmenu->add("/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("Chartofaccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 40);
    +				    $newmenu->add("/accountancy/admin/categories_list.php?id=32&search_country_id=".$mysoc->country_id."&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("AccountingCategory"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 41);
    +				    $newmenu->add("/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuDefaultAccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 50);
    +				    if (! empty($conf->banque->enabled)) {
    +					    $newmenu->add("/compta/bank/list.php?mainmenu=accountancy&leftmenu=accountancy_admin&search_status=-1", $langs->trans("MenuBankAccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_bank', 51);
    +				    }
    +				    if (! empty($conf->facture->enabled) || ! empty($conf->fournisseur->enabled)) {
    +					    $newmenu->add("/admin/dict.php?id=10&from=accountancy&search_country_id=".$mysoc->country_id."&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuVatAccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 52);
    +				    }
    +				    if (! empty($conf->tax->enabled)) {
    +					    $newmenu->add("/admin/dict.php?id=7&from=accountancy&search_country_id=".$mysoc->country_id."&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuTaxAccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 53);
    +				    }
    +				    if (! empty($conf->expensereport->enabled)) {
    +					    $newmenu->add("/admin/dict.php?id=17&from=accountancy&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuExpenseReportAccounts"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 54);
    +				    }
    +				    $newmenu->add("/accountancy/admin/productaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuProductsAccounts"), 2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_product', 55);
    +				    $newmenu->add("/accountancy/admin/export.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("ExportOptions"),2, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_export', 60);
     
    -				// Fiscal year
    -				if ($conf->global->MAIN_FEATURES_LEVEL > 1)     // Not yet used. In a future will lock some periods.
    -				{
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_admin/',$leftmenu)) $newmenu->add("/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("FiscalPeriod"), 2, $user->rights->accounting->fiscalyear, '', $mainmenu, 'fiscalyear');
    -				}
    +				    // Fiscal year
    +				    if ($conf->global->MAIN_FEATURES_LEVEL > 1) {
    +                        // Not yet used. In a future will lock some periods.
    +					    $newmenu->add("/accountancy/admin/fiscalyear.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("FiscalPeriod"), 2, $user->rights->accounting->fiscalyear, '', $mainmenu, 'fiscalyear');
    +                    }
    +                }
     
     				// Binding
     				if (! empty($conf->facture->enabled))
     				{
     					$newmenu->add("/accountancy/customer/index.php?leftmenu=accountancy_dispatch_customer&amp;mainmenu=accountancy",$langs->trans("CustomersVentilation"),1,$user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_customer');
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_customer/',$leftmenu)) $newmenu->add("/accountancy/customer/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_customer",$langs->trans("ToBind"),2,$user->rights->accounting->bind->write);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_customer/',$leftmenu)) $newmenu->add("/accountancy/customer/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_customer",$langs->trans("Binded"),2,$user->rights->accounting->bind->write);
    +					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_customer/',$leftmenu)) {
    +                        $newmenu->add("/accountancy/customer/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_customer",$langs->trans("ToBind"),2,$user->rights->accounting->bind->write);
    +                        $newmenu->add("/accountancy/customer/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_customer",$langs->trans("Binded"),2,$user->rights->accounting->bind->write);
    +                    }
     				}
     				if (! empty($conf->supplier_invoice->enabled))
     				{
     					$newmenu->add("/accountancy/supplier/index.php?leftmenu=accountancy_dispatch_supplier&amp;mainmenu=accountancy",$langs->trans("SuppliersVentilation"),1,$user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_supplier');
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_supplier/',$leftmenu)) $newmenu->add("/accountancy/supplier/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_supplier",$langs->trans("ToBind"),2,$user->rights->accounting->bind->write);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_supplier/',$leftmenu)) $newmenu->add("/accountancy/supplier/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_supplier",$langs->trans("Binded"),2,$user->rights->accounting->bind->write);
    +					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_supplier/',$leftmenu)) {
    +                        $newmenu->add("/accountancy/supplier/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_supplier",$langs->trans("ToBind"),2,$user->rights->accounting->bind->write);
    +                        $newmenu->add("/accountancy/supplier/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_supplier",$langs->trans("Binded"),2,$user->rights->accounting->bind->write);
    +                    }
     				}
     
     				if (! empty($conf->expensereport->enabled))
     				{
     					$newmenu->add("/accountancy/expensereport/index.php?leftmenu=accountancy_dispatch_expensereport&amp;mainmenu=accountancy",$langs->trans("ExpenseReportsVentilation"),1,$user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_expensereport');
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_expensereport/',$leftmenu)) $newmenu->add("/accountancy/expensereport/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_expensereport",$langs->trans("ToBind"),2,$user->rights->accounting->bind->write);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_expensereport/',$leftmenu)) $newmenu->add("/accountancy/expensereport/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_expensereport",$langs->trans("Binded"),2,$user->rights->accounting->bind->write);
    +					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_expensereport/',$leftmenu)) {
    +                        $newmenu->add("/accountancy/expensereport/list.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_expensereport",$langs->trans("ToBind"),2,$user->rights->accounting->bind->write);
    +                        $newmenu->add("/accountancy/expensereport/lines.php?mainmenu=accountancy&amp;leftmenu=accountancy_dispatch_expensereport",$langs->trans("Binded"),2,$user->rights->accounting->bind->write);
    +                    }
     				}
     
     				// Journals
    @@ -1073,7 +1137,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     								if ($nature)
     								{
     									$langs->load('accountancy');
    -									$newmenu->add('/accountancy/journal/'.$nature.'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid, $langs->trans($objp->label), 2, $user->rights->accounting->comptarapport->lire);
    +									$journallabel=$langs->transnoentities($objp->label);	// Labels in this table are set by loading llx_accounting_abc.sql. Label can be 'ACCOUNTING_SELL_JOURNAL', 'InventoryJournal', ...
    +									$newmenu->add('/accountancy/journal/'.$nature.'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid, $journallabel, 2, $user->rights->accounting->comptarapport->lire);
     								}
     								$i++;
     							}
    @@ -1094,35 +1159,47 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				// Balance
     				$newmenu->add("/accountancy/bookkeeping/balance.php?mainmenu=accountancy&amp;leftmenu=accountancy_balance",$langs->trans("AccountBalance"),1,$user->rights->accounting->mouvements->lire);
     
    +				// Files
    +				if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2)
    +				{
    +					$newmenu->add("/compta/compta-files.php?mainmenu=accountancy&amp;leftmenu=accountancy_files",$langs->trans("AccountantFiles"),1,$user->rights->accounting->mouvements->lire);
    +				}
    +
     				// Reports
     				$langs->load("compta");
     
     				$newmenu->add("/compta/resultat/index.php?mainmenu=accountancy&amp;leftmenu=accountancy_report",$langs->trans("Reportings"),1,$user->rights->accounting->comptarapport->lire, '', $mainmenu, 'ca');
     
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/resultat/index.php?leftmenu=accountancy_report",$langs->trans("MenuReportInOut"),2,$user->rights->accounting->comptarapport->lire);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=accountancy_report",$langs->trans("ByPredefinedAccountGroups"),3,$user->rights->accounting->comptarapport->lire);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/resultat/result.php?leftmenu=accountancy_report",$langs->trans("ByPersonalizedAccountGroups"),3,$user->rights->accounting->comptarapport->lire);
    +				if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) {
    +                    $newmenu->add("/compta/resultat/index.php?leftmenu=accountancy_report",$langs->trans("MenuReportInOut"),2,$user->rights->accounting->comptarapport->lire);
    +				    $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=accountancy_report",$langs->trans("ByPredefinedAccountGroups"),3,$user->rights->accounting->comptarapport->lire);
    +                    $newmenu->add("/compta/resultat/result.php?leftmenu=accountancy_report",$langs->trans("ByPersonalizedAccountGroups"),3,$user->rights->accounting->comptarapport->lire);
    +                }
     
     				$modecompta='CREANCES-DETTES';
     				if(! empty($conf->accounting->enabled) && ! empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta='BOOKKEEPING';	// Not yet implemented. Should be BOOKKEEPINGCOLLECTED
     				if ($modecompta)
     				{
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ReportTurnover"),2,$user->rights->accounting->comptarapport->lire);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ByCompanies"),3,$user->rights->accounting->comptarapport->lire);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ByUsers"),3,$user->rights->accounting->comptarapport->lire);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"),3,$user->rights->accounting->comptarapport->lire);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"),3,$user->rights->accounting->comptarapport->lire);
    +					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) {
    +                        $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ReportTurnover"),2,$user->rights->accounting->comptarapport->lire);
    +					    $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ByCompanies"),3,$user->rights->accounting->comptarapport->lire);
    +					    $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ByUsers"),3,$user->rights->accounting->comptarapport->lire);
    +					    $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"),3,$user->rights->accounting->comptarapport->lire);
    +                        $newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"),3,$user->rights->accounting->comptarapport->lire);
    +                    }
     				}
     
     				$modecompta='RECETTES-DEPENSES';
     				//if (! empty($conf->accounting->enabled) && ! empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta='';	// Not yet implemented. Should be BOOKKEEPINGCOLLECTED
     				if ($modecompta)
     				{
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ReportTurnoverCollected"),2,$user->rights->accounting->comptarapport->lire);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ByCompanies"),3,$user->rights->accounting->comptarapport->lire);
    -					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ByUsers"),3,$user->rights->accounting->comptarapport->lire);
    -					//if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"),3,$user->rights->accounting->comptarapport->lire);
    -					//if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) $newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"),3,$user->rights->accounting->comptarapport->lire);
    +					if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/',$leftmenu)) {
    +                        $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ReportTurnoverCollected"),2,$user->rights->accounting->comptarapport->lire);
    +					    $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ByCompanies"),3,$user->rights->accounting->comptarapport->lire);
    +					    $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta,$langs->trans("ByUsers"),3,$user->rights->accounting->comptarapport->lire);
    +					    //$newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"),3,$user->rights->accounting->comptarapport->lire);
    +                        //$newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"),3,$user->rights->accounting->comptarapport->lire);
    +                    }
     				}
     			}
     
    @@ -1134,30 +1211,32 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				// Bilan, resultats
     				$newmenu->add("/compta/resultat/index.php?leftmenu=report&amp;mainmenu=accountancy",$langs->trans("Reportings"),0,$user->rights->compta->resultat->lire, '', $mainmenu, 'ca');
     
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/resultat/index.php?leftmenu=report",$langs->trans("MenuReportInOut"),1,$user->rights->compta->resultat->lire);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=report",$langs->trans("ByCompanies"),2,$user->rights->compta->resultat->lire);
    -				/* On verra ca avec module compabilite expert
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/resultat/compteres.php?leftmenu=report","Compte de resultat",2,$user->rights->compta->resultat->lire);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/resultat/bilan.php?leftmenu=report","Bilan",2,$user->rights->compta->resultat->lire);
    -				*/
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/stats/index.php?leftmenu=report",$langs->trans("ReportTurnover"),1,$user->rights->compta->resultat->lire);
    +				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) {
    +                    $newmenu->add("/compta/resultat/index.php?leftmenu=report",$langs->trans("MenuReportInOut"),1,$user->rights->compta->resultat->lire);
    +				    $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=report",$langs->trans("ByCompanies"),2,$user->rights->compta->resultat->lire);
    +				    /* On verra ca avec module compabilite expert
    +				    $newmenu->add("/compta/resultat/compteres.php?leftmenu=report","Compte de resultat",2,$user->rights->compta->resultat->lire);
    +				    $newmenu->add("/compta/resultat/bilan.php?leftmenu=report","Bilan",2,$user->rights->compta->resultat->lire);
    +				    */
    +				    $newmenu->add("/compta/stats/index.php?leftmenu=report",$langs->trans("ReportTurnover"),1,$user->rights->compta->resultat->lire);
     
    -				/*
    -				 if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/stats/cumul.php?leftmenu=report","Cumule",2,$user->rights->compta->resultat->lire);
    -				if (! empty($conf->propal->enabled)) {
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/stats/prev.php?leftmenu=report","Previsionnel",2,$user->rights->compta->resultat->lire);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/stats/comp.php?leftmenu=report","Transforme",2,$user->rights->compta->resultat->lire);
    -				}
    -				*/
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/stats/casoc.php?leftmenu=report",$langs->trans("ByCompanies"),2,$user->rights->compta->resultat->lire);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/stats/cabyuser.php?leftmenu=report",$langs->trans("ByUsers"),2,$user->rights->compta->resultat->lire);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=report", $langs->trans("ByProductsAndServices"),2,$user->rights->compta->resultat->lire);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/stats/byratecountry.php?leftmenu=report", $langs->trans("ByVatRate"),2,$user->rights->compta->resultat->lire);
    +				    /*
    +				    $newmenu->add("/compta/stats/cumul.php?leftmenu=report","Cumule",2,$user->rights->compta->resultat->lire);
    +				    if (! empty($conf->propal->enabled)) {
    +				        $newmenu->add("/compta/stats/prev.php?leftmenu=report","Previsionnel",2,$user->rights->compta->resultat->lire);
    +				        $newmenu->add("/compta/stats/comp.php?leftmenu=report","Transforme",2,$user->rights->compta->resultat->lire);
    +				    }
    +				    */
    +				    $newmenu->add("/compta/stats/casoc.php?leftmenu=report",$langs->trans("ByCompanies"),2,$user->rights->compta->resultat->lire);
    +				    $newmenu->add("/compta/stats/cabyuser.php?leftmenu=report",$langs->trans("ByUsers"),2,$user->rights->compta->resultat->lire);
    +				    $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=report", $langs->trans("ByProductsAndServices"),2,$user->rights->compta->resultat->lire);
    +				    $newmenu->add("/compta/stats/byratecountry.php?leftmenu=report", $langs->trans("ByVatRate"),2,$user->rights->compta->resultat->lire);
     
    -				// Journaux
    +				    // Journaux
    +				    $newmenu->add("/compta/journal/sellsjournal.php?leftmenu=report",$langs->trans("SellsJournal"),1,$user->rights->compta->resultat->lire, '', '', '', 50);
    +                    $newmenu->add("/compta/journal/purchasesjournal.php?leftmenu=report",$langs->trans("PurchasesJournal"),1,$user->rights->compta->resultat->lire, '', '', '', 51);
    +                }
     				//if ($leftmenu=="ca") $newmenu->add("/compta/journaux/index.php?leftmenu=ca",$langs->trans("Journaux"),1,$user->rights->compta->resultat->lire||$user->rights->accounting->comptarapport->lire);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/journal/sellsjournal.php?leftmenu=report",$langs->trans("SellsJournal"),1,$user->rights->compta->resultat->lire, '', '', '', 50);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/report/',$leftmenu)) $newmenu->add("/compta/journal/purchasesjournal.php?leftmenu=report",$langs->trans("PurchasesJournal"),1,$user->rights->compta->resultat->lire, '', '', '', 51);
     			}
     
     			// Assets
    @@ -1168,8 +1247,10 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$newmenu->add("/asset/card.php?action=create",$langs->trans("MenuNewAsset"), 1, $user->rights->asset->write);
     				$newmenu->add("/asset/list.php?leftmenu=asset&amp;mainmenu=accountancy",$langs->trans("MenuListAssets"), 1, $user->rights->asset->read);
     				$newmenu->add("/asset/type.php?leftmenu=asset_type",$langs->trans("MenuTypeAssets"), 1, $user->rights->asset->read, '', $mainmenu, 'asset_type');
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/asset_type/',$leftmenu)) $newmenu->add("/asset/type.php?leftmenu=asset_type&amp;action=create",$langs->trans("MenuNewTypeAssets"), 2, $user->rights->asset->write);
    -				if ($usemenuhider || empty($leftmenu) || preg_match('/asset_type/',$leftmenu)) $newmenu->add("/asset/type.php?leftmenu=asset_type",$langs->trans("MenuListTypeAssets"), 2, $user->rights->asset->read);
    +				if ($usemenuhider || empty($leftmenu) || preg_match('/asset_type/',$leftmenu)) {
    +                    $newmenu->add("/asset/type.php?leftmenu=asset_type&amp;action=create",$langs->trans("MenuNewTypeAssets"), 2, $user->rights->asset->write);
    +                    $newmenu->add("/asset/type.php?leftmenu=asset_type",$langs->trans("MenuListTypeAssets"), 2, $user->rights->asset->read);
    +                }
     			}
     		}
     
    @@ -1179,10 +1260,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     		 */
     		if ($mainmenu == 'bank')
     		{
    -			$langs->load("withdrawals");
    -			$langs->load("banks");
    -			$langs->load("bills");
    -			$langs->load('categories');
    +			// Load translation files required by the page
    +			$langs->loadLangs(array("withdrawals","banks","bills","categories"));
     
     			// Bank-Caisse
     			if (! empty($conf->banque->enabled))
    @@ -1197,40 +1276,50 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$newmenu->add("/compta/bank/transfer.php",$langs->trans("MenuBankInternalTransfer"),1,$user->rights->banque->transfer);
     			}
     
    -            if (! empty($conf->categorie->enabled)) {
    -                $langs->load("categories");
    -                $newmenu->add("/categories/index.php?type=5",$langs->trans("Rubriques"),0,$user->rights->categorie->creer, '', $mainmenu, 'tags');
    -                $newmenu->add("/categories/card.php?action=create&amp;type=5",$langs->trans("NewCategory"),1,$user->rights->categorie->creer);
    -                $newmenu->add("/compta/bank/categ.php",$langs->trans("RubriquesTransactions"),0,$user->rights->categorie->creer, '', $mainmenu, 'tags');
    -                $newmenu->add("/compta/bank/categ.php",$langs->trans("NewCategory"),1,$user->rights->categorie->creer, '', $mainmenu, 'tags');
    -	    }
    +			if (! empty($conf->categorie->enabled))
    +			{
    +				$langs->load("categories");
    +				$newmenu->add("/categories/index.php?type=5",$langs->trans("Rubriques"),1,$user->rights->categorie->creer, '', $mainmenu, 'tags');
    +				$newmenu->add("/compta/bank/categ.php",$langs->trans("RubriquesTransactions"),1,$user->rights->categorie->creer, '', $mainmenu, 'tags');
    +			}
     
     			// Prelevements
     			if (! empty($conf->prelevement->enabled))
     			{
     				$newmenu->add("/compta/prelevement/index.php?leftmenu=withdraw&amp;mainmenu=bank",$langs->trans("StandingOrders"),0,$user->rights->prelevement->bons->lire, '', $mainmenu, 'withdraw');
     
    -				//if ($usemenuhider || empty($leftmenu) || $leftmenu=="withdraw") $newmenu->add("/compta/prelevement/demandes.php?status=0&amp;mainmenu=bank",$langs->trans("StandingOrderToProcess"),1,$user->rights->prelevement->bons->lire);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=="withdraw") {
    +                    //$newmenu->add("/compta/prelevement/demandes.php?status=0&amp;mainmenu=bank",$langs->trans("StandingOrderToProcess"),1,$user->rights->prelevement->bons->lire);
     
    -				if (empty($leftmenu) || $leftmenu=="withdraw") $newmenu->add("/compta/prelevement/create.php?mainmenu=bank",$langs->trans("NewStandingOrder"),1,$user->rights->prelevement->bons->creer);
    +				    $newmenu->add("/compta/prelevement/create.php?mainmenu=bank",$langs->trans("NewStandingOrder"),1,$user->rights->prelevement->bons->creer);
     
    +				    $newmenu->add("/compta/prelevement/bons.php?mainmenu=bank",$langs->trans("WithdrawalsReceipts"),1,$user->rights->prelevement->bons->lire);
    +				    $newmenu->add("/compta/prelevement/list.php?mainmenu=bank",$langs->trans("WithdrawalsLines"),1,$user->rights->prelevement->bons->lire);
    +				    $newmenu->add("/compta/prelevement/rejets.php?mainmenu=bank",$langs->trans("Rejects"),1,$user->rights->prelevement->bons->lire);
    +				    $newmenu->add("/compta/prelevement/stats.php?mainmenu=bank",$langs->trans("Statistics"),1,$user->rights->prelevement->bons->lire);
     
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="withdraw") $newmenu->add("/compta/prelevement/bons.php?mainmenu=bank",$langs->trans("WithdrawalsReceipts"),1,$user->rights->prelevement->bons->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="withdraw") $newmenu->add("/compta/prelevement/list.php?mainmenu=bank",$langs->trans("WithdrawalsLines"),1,$user->rights->prelevement->bons->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="withdraw") $newmenu->add("/compta/prelevement/rejets.php?mainmenu=bank",$langs->trans("Rejects"),1,$user->rights->prelevement->bons->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="withdraw") $newmenu->add("/compta/prelevement/stats.php?mainmenu=bank",$langs->trans("Statistics"),1,$user->rights->prelevement->bons->lire);
    -
    -				//if ($usemenuhider || empty($leftmenu) || $leftmenu=="withdraw") $newmenu->add("/compta/prelevement/config.php",$langs->trans("Setup"),1,$user->rights->prelevement->bons->configurer);
    +                    //$newmenu->add("/compta/prelevement/config.php",$langs->trans("Setup"),1,$user->rights->prelevement->bons->configurer);
    +                }
     			}
     
     			// Gestion cheques
     			if (empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && ! empty($conf->banque->enabled) && (! empty($conf->facture->enabled) || ! empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON)))
     			{
     				$newmenu->add("/compta/paiement/cheque/index.php?leftmenu=checks&amp;mainmenu=bank",$langs->trans("MenuChequeDeposits"),0,$user->rights->banque->cheque, '', $mainmenu, 'checks');
    -				if (preg_match('/checks/',$leftmenu)) $newmenu->add("/compta/paiement/cheque/card.php?leftmenu=checks_bis&amp;action=new&amp;mainmenu=bank",$langs->trans("NewChequeDeposit"),1,$user->rights->banque->cheque);
    -				if (preg_match('/checks/',$leftmenu)) $newmenu->add("/compta/paiement/cheque/list.php?leftmenu=checks_bis&amp;mainmenu=bank",$langs->trans("List"),1,$user->rights->banque->cheque);
    +				if (preg_match('/checks/',$leftmenu)) {
    +                    $newmenu->add("/compta/paiement/cheque/card.php?leftmenu=checks_bis&amp;action=new&amp;mainmenu=bank",$langs->trans("NewChequeDeposit"),1,$user->rights->banque->cheque);
    +                    $newmenu->add("/compta/paiement/cheque/list.php?leftmenu=checks_bis&amp;mainmenu=bank",$langs->trans("List"),1,$user->rights->banque->cheque);
    +                }
     			}
     
    +			// Cash Control
    +			if (! empty($conf->takepos->enabled) || ! empty($conf->cashdesk->enabled))
    +			{
    +				$permtomakecashfence = ($user->rights->cashdesk->use ||$user->rights->takepos->use);
    +				$newmenu->add("/compta/cashcontrol/cashcontrol_list.php?action=list",$langs->trans("POS"),0,$permtomakecashfence, '', $mainmenu, 'cashcontrol');
    +				$newmenu->add("/compta/cashcontrol/cashcontrol_card.php?action=create",$langs->trans("NewCashFence"),1,$permtomakecashfence);
    +				$newmenu->add("/compta/cashcontrol/cashcontrol_list.php?action=list",$langs->trans("List"),1,$permtomakecashfence);
    +			}
     		}
     
     		/*
    @@ -1262,6 +1351,14 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				{
     					$newmenu->add("/product/stats/card.php?id=all&leftmenu=stats&type=0", $langs->trans("Statistics"), 1, $user->rights->produit->lire && $user->rights->propale->lire);
     				}
    +
    +				// Categories
    +				if (! empty($conf->categorie->enabled))
    +				{
    +					$langs->load("categories");
    +					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=0", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');
    +					//if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire);
    +				}
     			}
     
     			// Services
    @@ -1274,15 +1371,13 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				{
     					$newmenu->add("/product/stats/card.php?id=all&leftmenu=stats&type=1", $langs->trans("Statistics"), 1, $user->rights->service->lire && $user->rights->propale->lire);
     				}
    -			}
    -
    -			// Categories
    -			if (! empty($conf->categorie->enabled))
    -			{
    -				$langs->load("categories");
    -				$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=0", $langs->trans("Categories"), 0, $user->rights->categorie->lire, '', $mainmenu, 'cat');
    -				$newmenu->add("/categories/card.php?action=create&amp;type=0", $langs->trans("NewCategory"), 1, $user->rights->categorie->creer);
    -				//if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire);
    +				// Categories
    +				if (! empty($conf->categorie->enabled))
    +				{
    +					$langs->load("categories");
    +					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=0", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');
    +					//if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire);
    +				}
     			}
     
     			// Warehouse
    @@ -1292,7 +1387,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$newmenu->add("/product/stock/index.php?leftmenu=stock", $langs->trans("Warehouses"), 0, $user->rights->stock->lire, '', $mainmenu, 'stock');
     				$newmenu->add("/product/stock/card.php?action=create", $langs->trans("MenuNewWarehouse"), 1, $user->rights->stock->creer);
     				$newmenu->add("/product/stock/list.php", $langs->trans("List"), 1, $user->rights->stock->lire);
    -				$newmenu->add("/product/stock/mouvement.php", $langs->trans("Movements"), 1, $user->rights->stock->mouvement->lire);
    +				$newmenu->add("/product/stock/movement_list.php", $langs->trans("Movements"), 1, $user->rights->stock->mouvement->lire);
     
                     $newmenu->add("/product/stock/massstockmove.php", $langs->trans("MassStockTransferShort"), 1, $user->rights->stock->mouvement->creer);
                     if ($conf->supplier_order->enabled) $newmenu->add("/product/stock/replenish.php", $langs->trans("Replenishment"), 1, $user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire);
    @@ -1319,19 +1414,33 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
         			}
     			}
     
    -			// Expeditions
    +			// Shipments
     			if (! empty($conf->expedition->enabled))
     			{
     				$langs->load("sendings");
     				$newmenu->add("/expedition/index.php?leftmenu=sendings", $langs->trans("Shipments"), 0, $user->rights->expedition->lire, '', $mainmenu, 'sendings');
     				$newmenu->add("/expedition/card.php?action=create2&amp;leftmenu=sendings", $langs->trans("NewSending"), 1, $user->rights->expedition->creer);
     				$newmenu->add("/expedition/list.php?leftmenu=sendings", $langs->trans("List"), 1, $user->rights->expedition->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="sendings") $newmenu->add("/expedition/list.php?leftmenu=sendings&viewstatut=0", $langs->trans("StatusSendingDraftShort"), 2, $user->rights->expedition->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="sendings") $newmenu->add("/expedition/list.php?leftmenu=sendings&viewstatut=1", $langs->trans("StatusSendingValidatedShort"), 2, $user->rights->expedition->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="sendings") $newmenu->add("/expedition/list.php?leftmenu=sendings&viewstatut=2", $langs->trans("StatusSendingProcessedShort"), 2, $user->rights->expedition->lire);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=="sendings") {
    +                    $newmenu->add("/expedition/list.php?leftmenu=sendings&viewstatut=0", $langs->trans("StatusSendingDraftShort"), 2, $user->rights->expedition->lire);
    +				    $newmenu->add("/expedition/list.php?leftmenu=sendings&viewstatut=1", $langs->trans("StatusSendingValidatedShort"), 2, $user->rights->expedition->lire);
    +                    $newmenu->add("/expedition/list.php?leftmenu=sendings&viewstatut=2", $langs->trans("StatusSendingProcessedShort"), 2, $user->rights->expedition->lire);
    +                }
     				$newmenu->add("/expedition/stats/index.php?leftmenu=sendings", $langs->trans("Statistics"), 1, $user->rights->expedition->lire);
     			}
     
    +      // Receptions
    +			if (! empty($conf->reception->enabled))
    +			{
    +				$langs->load("receptions");
    +				$newmenu->add("/reception/index.php?leftmenu=receptions", $langs->trans("Receptions"), 0, $user->rights->reception->lire, '', $mainmenu, 'receptions');
    +				$newmenu->add("/reception/card.php?action=create2&amp;leftmenu=receptions", $langs->trans("NewReception"), 1, $user->rights->reception->creer);
    +				$newmenu->add("/reception/list.php?leftmenu=receptions", $langs->trans("List"), 1, $user->rights->reception->lire);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=="receptions") $newmenu->add("/reception/list.php?leftmenu=receptions&viewstatut=0", $langs->trans("StatusReceptionDraftShort"), 2, $user->rights->reception->lire);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=="receptions") $newmenu->add("/reception/list.php?leftmenu=receptions&viewstatut=1", $langs->trans("StatusReceptionValidatedShort"), 2, $user->rights->reception->lire);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=="receptions") $newmenu->add("/reception/list.php?leftmenu=receptions&viewstatut=2", $langs->trans("StatusReceptionProcessedShort"), 2, $user->rights->reception->lire);
    +				$newmenu->add("/reception/stats/index.php?leftmenu=receptions", $langs->trans("Statistics"), 1, $user->rights->reception->lire);
    +			}
     		}
     
     		/*
    @@ -1345,19 +1454,52 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     
     				$search_project_user = GETPOST('search_project_user','int');
     
    -				// Project affected to user
    -				$newmenu->add("/projet/index.php?leftmenu=projects".($search_project_user?'&search_project_user='.$search_project_user:''), $langs->trans("Projects"), 0, $user->rights->projet->lire, '', $mainmenu, 'projects');
    -				$newmenu->add("/projet/card.php?leftmenu=projects&action=create".($search_project_user?'&search_project_user='.$search_project_user:''), $langs->trans("NewProject"), 1, $user->rights->projet->creer);
    -				$newmenu->add("/projet/list.php?leftmenu=projects".($search_project_user?'&search_project_user='.$search_project_user:'')."&search_status=99", $langs->trans("List"), 1, $user->rights->projet->lire);
    +				$tmpentry = array(
    +                    'enabled'=>(! empty($conf->projet->enabled)),
    +				    'perms'=>(! empty($user->rights->projet->lire)),
    +                    'module'=>'projet',
    +                );
    +				$showmode=isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal);
    +
    +				$titleboth=$langs->trans("LeadsOrProjects");
    +				$titlenew = $langs->trans("NewLeadOrProject");	// Leads and opportunities by default
    +				if ($conf->global->PROJECT_USE_OPPORTUNITIES == 0)
    +				{
    +					$titleboth=$langs->trans("Projects");
    +					$titlenew = $langs->trans("NewProject");
    +				}
    +				if ($conf->global->PROJECT_USE_OPPORTUNITIES == 2) {	// 2 = leads only
    +					$titleboth=$langs->trans("Leads");
    +					$titlenew = $langs->trans("NewLead");
    +				}
    +
    +				// Project assigned to user
    +				$newmenu->add("/projet/index.php?leftmenu=projects".($search_project_user?'&search_project_user='.$search_project_user:''), $titleboth, 0, $user->rights->projet->lire, '', $mainmenu, 'projects');
    +				$newmenu->add("/projet/card.php?leftmenu=projects&action=create".($search_project_user?'&search_project_user='.$search_project_user:''), $titlenew, 1, $user->rights->projet->creer);
    +
    +				if ($conf->global->PROJECT_USE_OPPORTUNITIES == 0)
    +				{
    +					$newmenu->add("/projet/list.php?leftmenu=projets".($search_project_user?'&search_project_user='.$search_project_user:'').'&search_status=99', $langs->trans("List"), 1, $showmode, '', 'project', 'list');
    +				}
    +				elseif ($conf->global->PROJECT_USE_OPPORTUNITIES == 1)
    +				{
    +					$newmenu->add("/projet/list.php?leftmenu=projets".($search_project_user?'&search_project_user='.$search_project_user:''), $langs->trans("List"), 1, $showmode, '', 'project', 'list');
    +					$newmenu->add('/projet/list.php?mainmenu=project&amp;leftmenu=list&search_opp_status=openedopp&search_status=99&contextpage=lead', $langs->trans("ListOpenLeads"), 2, $showmode);
    +					$newmenu->add('/projet/list.php?mainmenu=project&amp;leftmenu=list&search_opp_status=notopenedopp&search_status=99&contextpage=project', $langs->trans("ListOpenProjects"), 2, $showmode);
    +				}
    +				elseif ($conf->global->PROJECT_USE_OPPORTUNITIES == 2) {	// 2 = leads only
    +					$newmenu->add('/projet/list.php?mainmenu=project&amp;leftmenu=list&search_opp_status=openedopp&search_status=99', $langs->trans("List"), 2, $showmode);
    +				}
     
    -				// All project i have permission on
    -				/*
    -				$newmenu->add("/projet/index.php?leftmenu=projects", $langs->trans("Projects"), 0, $user->rights->projet->lire && $user->rights->projet->lire, '', $mainmenu, 'projects');
    -				$newmenu->add("/projet/card.php?leftmenu=projects&action=create", $langs->trans("NewProject"), 1, $user->rights->projet->creer && $user->rights->projet->creer);
    -				$newmenu->add("/projet/list.php?leftmenu=projects&search_status=99", $langs->trans("List"), 1, $user->rights->projet->lire && $user->rights->projet->lire);
    -                */
     				$newmenu->add("/projet/stats/index.php?leftmenu=projects", $langs->trans("Statistics"), 1, $user->rights->projet->lire);
     
    +				// Categories
    +				if (! empty($conf->categorie->enabled))
    +				{
    +					$langs->load("categories");
    +					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=6", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');
    +				}
    +
     				if (empty($conf->global->PROJECT_HIDE_TASKS))
     				{
     					// Project affected to user
    @@ -1367,22 +1509,6 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				    $newmenu->add("/projet/tasks/stats/index.php?leftmenu=projects", $langs->trans("Statistics"), 1, $user->rights->projet->lire);
     
     				    $newmenu->add("/projet/activity/perweek.php?leftmenu=tasks".($search_project_user?'&search_project_user='.$search_project_user:''), $langs->trans("NewTimeSpent"), 0, $user->rights->projet->lire);
    -
    -					// All project i have permission on
    -					/*$newmenu->add("/projet/activity/index.php", $langs->trans("Activities"), 0, $user->rights->projet->lire && $user->rights->projet->lire);
    -					$newmenu->add("/projet/tasks.php?action=create", $langs->trans("NewTask"), 1, $user->rights->projet->creer && $user->rights->projet->creer);
    -					$newmenu->add("/projet/tasks/list.php", $langs->trans("List"), 1, $user->rights->projet->lire && $user->rights->projet->lire);
    -					$newmenu->add("/projet/activity/perweek.php", $langs->trans("NewTimeSpent"), 1, $user->rights->projet->creer && $user->rights->projet->lire);
    -					*/
    -				}
    -
    -				// Categories
    -				if (! empty($conf->categorie->enabled))
    -				{
    -					$langs->load("categories");
    -					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=6", $langs->trans("Categories"), 0, $user->rights->categorie->lire, '', $mainmenu, 'cat');
    -					$newmenu->add("/categories/card.php?action=create&amp;type=6", $langs->trans("NewCategory"), 1, $user->rights->categorie->creer);
    -					//if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire);
     				}
     			}
     		}
    @@ -1405,17 +1531,19 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     			// Leave/Holiday/Vacation module
     			if (! empty($conf->holiday->enabled))
     			{
    -				$langs->load("holiday");
    -				$langs->load("trips");
    +			    // Load translation files required by the page
    +                $langs->loadLangs(array("holiday","trips"));
     
     				$newmenu->add("/holiday/list.php?leftmenu=hrm", $langs->trans("CPTitreMenu"), 0, $user->rights->holiday->read, '', $mainmenu, 'hrm');
     				$newmenu->add("/holiday/card.php?action=request", $langs->trans("New"), 1,$user->rights->holiday->write);
     				$newmenu->add("/holiday/list.php?leftmenu=hrm", $langs->trans("List"), 1,$user->rights->holiday->read);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="hrm") $newmenu->add("/holiday/list.php?search_statut=1&leftmenu=hrm", $langs->trans("DraftCP"), 2, $user->rights->holiday->read);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="hrm") $newmenu->add("/holiday/list.php?search_statut=2&leftmenu=hrm", $langs->trans("ToReviewCP"), 2, $user->rights->holiday->read);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="hrm") $newmenu->add("/holiday/list.php?search_statut=3&leftmenu=hrm", $langs->trans("ApprovedCP"), 2, $user->rights->holiday->read);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="hrm") $newmenu->add("/holiday/list.php?search_statut=4&leftmenu=hrm", $langs->trans("CancelCP"), 2, $user->rights->holiday->read);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="hrm") $newmenu->add("/holiday/list.php?search_statut=5&leftmenu=hrm", $langs->trans("RefuseCP"), 2, $user->rights->holiday->read);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=="hrm") {
    +                    $newmenu->add("/holiday/list.php?search_statut=1&leftmenu=hrm", $langs->trans("DraftCP"), 2, $user->rights->holiday->read);
    +				    $newmenu->add("/holiday/list.php?search_statut=2&leftmenu=hrm", $langs->trans("ToReviewCP"), 2, $user->rights->holiday->read);
    +				    $newmenu->add("/holiday/list.php?search_statut=3&leftmenu=hrm", $langs->trans("ApprovedCP"), 2, $user->rights->holiday->read);
    +				    $newmenu->add("/holiday/list.php?search_statut=4&leftmenu=hrm", $langs->trans("CancelCP"), 2, $user->rights->holiday->read);
    +                    $newmenu->add("/holiday/list.php?search_statut=5&leftmenu=hrm", $langs->trans("RefuseCP"), 2, $user->rights->holiday->read);
    +                }
     				$newmenu->add("/holiday/define_holiday.php?action=request", $langs->trans("MenuConfCP"), 1, $user->rights->holiday->read);
     				$newmenu->add("/holiday/month_report.php", $langs->trans("MenuReportMonth"), 1, $user->rights->holiday->read_all);
     				$newmenu->add("/holiday/view_log.php?action=request", $langs->trans("MenuLogCP"), 1, $user->rights->holiday->define_holiday);
    @@ -1438,12 +1566,14 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$newmenu->add("/expensereport/index.php?leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("TripsAndExpenses"), 0, $user->rights->expensereport->lire, '', $mainmenu, 'expensereport');
     				$newmenu->add("/expensereport/card.php?action=create&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("New"), 1, $user->rights->expensereport->creer);
     				$newmenu->add("/expensereport/list.php?leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("List"), 1, $user->rights->expensereport->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="expensereport") $newmenu->add("/expensereport/list.php?search_status=0&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Draft"), 2, $user->rights->expensereport->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="expensereport") $newmenu->add("/expensereport/list.php?search_status=2&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Validated"), 2, $user->rights->expensereport->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="expensereport") $newmenu->add("/expensereport/list.php?search_status=5&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Approved"), 2, $user->rights->expensereport->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="expensereport") $newmenu->add("/expensereport/list.php?search_status=6&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Paid"), 2, $user->rights->expensereport->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="expensereport") $newmenu->add("/expensereport/list.php?search_status=4&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Canceled"), 2, $user->rights->expensereport->lire);
    -				if ($usemenuhider || empty($leftmenu) || $leftmenu=="expensereport") $newmenu->add("/expensereport/list.php?search_status=99&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Refused"), 2, $user->rights->expensereport->lire);
    +				if ($usemenuhider || empty($leftmenu) || $leftmenu=="expensereport") {
    +                    $newmenu->add("/expensereport/list.php?search_status=0&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Draft"), 2, $user->rights->expensereport->lire);
    +				    $newmenu->add("/expensereport/list.php?search_status=2&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Validated"), 2, $user->rights->expensereport->lire);
    +				    $newmenu->add("/expensereport/list.php?search_status=5&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Approved"), 2, $user->rights->expensereport->lire);
    +				    $newmenu->add("/expensereport/list.php?search_status=6&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Paid"), 2, $user->rights->expensereport->lire);
    +				    $newmenu->add("/expensereport/list.php?search_status=4&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Canceled"), 2, $user->rights->expensereport->lire);
    +                    $newmenu->add("/expensereport/list.php?search_status=99&amp;leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Refused"), 2, $user->rights->expensereport->lire);
    +                }
     				$newmenu->add("/expensereport/stats/index.php?leftmenu=expensereport&amp;mainmenu=hrm", $langs->trans("Statistics"), 1, $user->rights->expensereport->lire);
     			}
     
    @@ -1502,8 +1632,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     		{
     			if (! empty($conf->adherent->enabled))
     			{
    -				$langs->load("members");
    -				$langs->load("compta");
    +				// Load translation files required by the page
    +                $langs->loadLangs(array("members","compta"));
     
     				$newmenu->add("/adherents/index.php?leftmenu=members&amp;mainmenu=members",$langs->trans("Members"),0,$user->rights->adherent->lire, '', $mainmenu, 'members');
     				$newmenu->add("/adherents/card.php?leftmenu=members&amp;action=create",$langs->trans("NewMember"),1,$user->rights->adherent->creer);
    @@ -1514,23 +1644,21 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$newmenu->add("/adherents/list.php?leftmenu=members&amp;statut=1&amp;filter=outofdate",$langs->trans("MenuMembersNotUpToDate"),2,$user->rights->adherent->lire);
     				$newmenu->add("/adherents/list.php?leftmenu=members&amp;statut=0",$langs->trans("MenuMembersResiliated"),2,$user->rights->adherent->lire);
     				$newmenu->add("/adherents/stats/index.php?leftmenu=members",$langs->trans("MenuMembersStats"),1,$user->rights->adherent->lire);
    -				if (! empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && ($usemenuhider || empty($leftmenu) || $leftmenu=='none' || $leftmenu=="members" || $leftmenu=="export")) $newmenu->add("/adherents/htpasswd.php?leftmenu=export",$langs->trans("Filehtpasswd"),1,$user->rights->adherent->export);
    +
     				$newmenu->add("/adherents/cartes/carte.php?leftmenu=export",$langs->trans("MembersCards"),1,$user->rights->adherent->export);
    +				if (! empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && ($usemenuhider || empty($leftmenu) || $leftmenu=='none' || $leftmenu=="members" || $leftmenu=="export")) $newmenu->add("/adherents/htpasswd.php?leftmenu=export",$langs->trans("Filehtpasswd"),1,$user->rights->adherent->export);
    +
    +				if (! empty($conf->categorie->enabled))
    +				{
    +					$langs->load("categories");
    +					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=3", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat');
    +				}
     
     				$newmenu->add("/adherents/index.php?leftmenu=members&amp;mainmenu=members",$langs->trans("Subscriptions"),0,$user->rights->adherent->cotisation->lire);
     				$newmenu->add("/adherents/list.php?leftmenu=members&amp;statut=-1,1&amp;mainmenu=members",$langs->trans("NewSubscription"),1,$user->rights->adherent->cotisation->creer);
     				$newmenu->add("/adherents/subscription/list.php?leftmenu=members",$langs->trans("List"),1,$user->rights->adherent->cotisation->lire);
     				$newmenu->add("/adherents/stats/index.php?leftmenu=members",$langs->trans("MenuMembersStats"),1,$user->rights->adherent->lire);
     
    -
    -				if (! empty($conf->categorie->enabled))
    -				{
    -					$langs->load("categories");
    -					$newmenu->add("/categories/index.php?leftmenu=cat&amp;type=3", $langs->trans("Categories"), 0, $user->rights->categorie->lire, '', $mainmenu, 'cat');
    -					$newmenu->add("/categories/card.php?action=create&amp;type=3", $langs->trans("NewCategory"), 1, $user->rights->categorie->creer);
    -					//if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire);
    -				}
    -
     				//$newmenu->add("/adherents/index.php?leftmenu=export&amp;mainmenu=members",$langs->trans("Tools"),0,$user->rights->adherent->export, '', $mainmenu, 'export');
     				//if (! empty($conf->export->enabled) && ($usemenuhider || empty($leftmenu) || $leftmenu=="export")) $newmenu->add("/exports/index.php?leftmenu=export",$langs->trans("Datas"),1,$user->rights->adherent->export);
     
    @@ -1539,7 +1667,6 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$newmenu->add("/adherents/type.php?leftmenu=setup&amp;mainmenu=members&amp;action=create",$langs->trans("New"),1,$user->rights->adherent->configurer);
     				$newmenu->add("/adherents/type.php?leftmenu=setup&amp;mainmenu=members",$langs->trans("List"),1,$user->rights->adherent->configurer);
     			}
    -
     		}
     
     		// Add personalized menus and modules menus
    @@ -1599,9 +1726,11 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     				$i++;
     			}
     		}
    -
     	}
     
    +	//var_dump($tabMenu);    //
    +	//var_dump($newmenu->liste);
    +
     	// Build final $menu_array = $menu_array_before +$newmenu->liste + $menu_array_after
     	//var_dump($menu_array_before);exit;
     	//var_dump($menu_array_after);exit;
    @@ -1761,5 +1890,3 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
     
     	return count($menu_array);
     }
    -
    -
    diff --git a/htdocs/core/menus/standard/eldy_menu.php b/htdocs/core/menus/standard/eldy_menu.php
    index 11f1de43a1f..4992fc6d11c 100644
    --- a/htdocs/core/menus/standard/eldy_menu.php
    +++ b/htdocs/core/menus/standard/eldy_menu.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -27,7 +27,11 @@
      */
     class MenuManager
     {
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
     	var $type_user;									// Put 0 for internal users, 1 for external users
     	var $atarget="";                                // To store default target to use onto links
     	var $name="eldy";
    @@ -105,6 +109,7 @@ class MenuManager
             $menuArbo = new Menubase($this->db,'eldy');
             $menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'eldy', $tabMenu);
             $this->tabMenu=$tabMenu;
    +        //var_dump($tabMenu);
     
             //if ($forcemainmenu == 'all') { var_dump($this->tabMenu); exit; }
         }
    @@ -112,7 +117,7 @@ class MenuManager
     
         /**
          *  Show menu.
    -     *  Module defined in sql tables are stored into this->tabMenu BEFORE this is called.
    +     *  Module defined in sql tables were stored into $this->tabMenu BEFORE this is called.
          *
          *	@param	string	$mode			'top', 'topnb', 'left', 'jmobile' (used to get full xml ul/li menu)
          *  @param	array	$moredata		An array with more data to output
    @@ -122,6 +127,8 @@ class MenuManager
         {
         	global $conf, $langs, $user;
     
    +    	//var_dump($this->tabMenu);
    +
             require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/eldy.lib.php';
     
             if ($this->type_user == 1)
    @@ -311,8 +318,6 @@ class MenuManager
     	        				}
     	        				print '</li>'."\n";
            					}
    -
    -
            				}
             			//var_dump($submenu);
             			print '</ul>';
    @@ -331,6 +336,5 @@ class MenuManager
             //print 'xx'.$mode;
             return 0;
         }
    -
     }
     
    diff --git a/htdocs/core/menus/standard/empty.php b/htdocs/core/menus/standard/empty.php
    index f761b593fb7..038167ae512 100644
    --- a/htdocs/core/menus/standard/empty.php
    +++ b/htdocs/core/menus/standard/empty.php
    @@ -25,7 +25,11 @@
      */
     class MenuManager
     {
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
     	var $type_user=0;					// Put 0 for internal users, 1 for external users
     	var $atarget="";               		// To store default target to use onto links
     
    @@ -53,7 +57,6 @@ class MenuManager
     	 */
     	function loadMenu()
     	{
    -
     	}
     
     
    @@ -308,8 +311,6 @@ class MenuManager
     		                    }
     		                    print '</li>'."\n";
     		                }
    -
    -
     		            }
     		            //var_dump($submenu);
     		            print '</ul>';
    @@ -520,7 +521,7 @@ function print_start_menu_array_empty()
         global $conf;
     
     	print '<div class="tmenudiv">';
    -	print '<ul class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)?'':' title="Top menu"').'>';
    +	print '<ul role="navigation" class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)?'':' title="Top menu"').'>';
     }
     
     /**
    diff --git a/htdocs/core/modules/DolibarrModules.class.php b/htdocs/core/modules/DolibarrModules.class.php
    index 52d65f85678..9e8d5565f67 100644
    --- a/htdocs/core/modules/DolibarrModules.class.php
    +++ b/htdocs/core/modules/DolibarrModules.class.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
      * Copyright (C) 2004       Eric Seigne             <eric.seigne@ryxeo.com>
      * Copyright (C) 2005-2013  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2014       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2018       Josep Lluís Amador      <joseplluis@lliuretic.cat>
      *
    @@ -33,2183 +33,2188 @@
      *
      * Parent class for module descriptor class files
      */
    -class DolibarrModules           // Can not be abstract, because we need to instantiate it into unActivateModule to be able to disable a module whose files were removed.
    +class DolibarrModules // Can not be abstract, because we need to instantiate it into unActivateModule to be able to disable a module whose files were removed.
     {
    -	/**
    -	 * @var DoliDb Database handler
    -	 */
    -	public $db;
    -
    -	/**
    -	 * @var int Module unique ID
    -	 * @see https://wiki.dolibarr.org/index.php/List_of_modules_id
    -	 */
    -	public $numero;
    -
    -	/**
    -	 * @var string Publisher name
    -	 * @since 4.0.0
    -	 */
    -	public $editor_name;
    -
    -	/**
    -	 * @var string URL of module at publisher site
    -	 * @since 4.0.0
    -	 */
    -	public $editor_url;
    -
    -	/**
    -	 * @var string Family
    -	 * @see familyinfo
    -	 *
    -	 * Native values: 'crm', 'financial', 'hr', 'projects', 'products', 'ecm', 'technic', 'other'.
    -	 * Use familyinfo to declare a custom value.
    -	 */
    -	public $family;
    -
    -	/**
    -	 * @var array Custom family informations
    -	 * @see family
    -	 *
    -	 * e.g.:
    -	 * array(
    -	 *     'myownfamily' => array(
    -	 *         'position' => '001',
    -	 *         'label' => $langs->trans("MyOwnFamily")
    -	 *     )
    -	 * );
    -	 *
    -	 */
    -	public $familyinfo;
    -
    -	/**
    -	 * @var int Module position
    -	 * @since 3.9.0
    -	 */
    -	public $module_position=500;
    -
    -	/**
    -	 * @var string Module name
    -	 *
    -	 * Only used if Module[ID]Name translation string is not found.
    -	 *
    -	 * You can use the following code to automatically derive it from your module's class name:
    -	 * preg_replace('/^mod/i', '', get_class($this))
    -	 */
    -	public $name;
    -
    -	/**
    -	 * @var string[] Paths to create when module is activated
    -	 *
    -	 * e.g.: array('/mymodule/temp')
    -	 */
    -	public $dirs = array();
    -
    -	/**
    -	 * @var array Module boxes
    -	 */
    -	public $boxes = array();
    -
    -	/**
    -	 * @var array Module constants
    -	 */
    -	public $const = array();
    -
    -	/**
    -	 * @var array Module cron jobs entries
    -	 */
    -	public $cronjobs = array();
    -
    -	/**
    -	 * @var array Module access rights
    -	 */
    -	public $rights;
    -
    -	/**
    -	 * @var string Module access rights family
    -	 */
    -	public $rights_class;
    -
    -	/**
    -	 * @var array Module menu entries
    -	 */
    -	public $menu = array();
    -
    -	/**
    -	 * @var array Module parts
    -	 *  array(
    -	 *      // Set this to 1 if module has its own trigger directory (/mymodule/core/triggers)
    -	 *      'triggers' => 0,
    -	 *      // Set this to 1 if module has its own login method directory (/mymodule/core/login)
    -	 *      'login' => 0,
    -	 *      // Set this to 1 if module has its own substitution function file (/mymodule/core/substitutions)
    -	 *      'substitutions' => 0,
    -	 *      // Set this to 1 if module has its own menus handler directory (/mymodule/core/menus)
    -	 *      'menus' => 0,
    -	 *      // Set this to 1 if module has its own theme directory (/mymodule/theme)
    -	 *      'theme' => 0,
    -	 *      // Set this to 1 if module overwrite template dir (/mymodule/core/tpl)
    -	 *      'tpl' => 0,
    -	 *      // Set this to 1 if module has its own barcode directory (/mymodule/core/modules/barcode)
    -	 *      'barcode' => 0,
    -	 *      // Set this to 1 if module has its own models directory (/mymodule/core/modules/xxx)
    -	 *      'models' => 0,
    -	 *      // Set this to relative path of css file if module has its own css file
    -	 *      'css' => '/mymodule/css/mymodule.css.php',
    -	 *      // Set this to relative path of js file if module must load a js on all pages
    -	 *      'js' => '/mymodule/js/mymodule.js',
    -	 *      // Set here all hooks context managed by module
    -	 *      'hooks' => array('hookcontext1','hookcontext2')
    -	 *  )
    -	 */
    -	public $module_parts = array();
    -
    -	/**
    -	 * @var string Module documents ?
    -	 * @deprecated Seems unused anywhere
    -	 */
    -	public $docs;
    -
    -	/**
    -	 * @var string ?
    -	 * @deprecated Seems unused anywhere
    -	 */
    -	public $dbversion = "-";
    -
    -	/**
    -	 * @var string Error message
    -	 */
    -	public $error;
    -
    -	/**
    -	 * @var string Module version
    -	 * @see http://semver.org
    -	 *
    -	 * The following keywords can also be used:
    -	 * 'development'
    -	 * 'experimental'
    -	 * 'dolibarr': only for core modules that share its version
    -	 * 'dolibarr_deprecated': only for deprecated core modules
    -	 *
    -	 */
    -	public $version;
    -
    -	/**
    -	 * @var string Module description (short text)
    -	 *
    -	 * Only used if Module[ID]Desc translation string is not found.
    -	 */
    -	public $description;
    -
    -	/**
    -	 * @var string Module description (long text)
    -	 * @since 4.0.0
    -	 *
    -	 * HTML content supported.
    -	 */
    -	public $descriptionlong;
    -
    -
    -	// For exports
    -
    -	/**
    -	 * @var string Module export code
    -	 */
    -	public $export_code;
    -
    -	/**
    -	 * @var string Module export label
    -	 */
    -	public $export_label;
    -
    -	public $export_permission;
    -	public $export_fields_array;
    -	public $export_TypeFields_array;
    -	public $export_entities_array;
    -	public $export_special_array;           // special or computed field
    -	public $export_dependencies_array;
    -	public $export_sql_start;
    -	public $export_sql_end;
    -	public $export_sql_order;
    -
    -
    -	// For import
    -
    -	/**
    -	 * @var string Module import code
    -	 */
    -	public $import_code;
    -
    -	/**
    -	 * @var string Module import label
    -	 */
    -	public $import_label;
    -
    -
    -	/**
    -	 * @var string Module constant name
    -	 */
    -	public $const_name;
    -
    -	/**
    -	 * @var bool Module can't be disabled
    -	 */
    -	public $always_enabled;
    -
    -	/**
    -	 * @var int Module is enabled globally (Multicompany support)
    -	 */
    -	public $core_enabled;
    -
    -	/**
    -	 * @var string Relative path to module style sheet
    -	 * @deprecated
    -	 * @see module_parts
    -	 */
    -	public $style_sheet = '';
    -
    -	/**
    -	 * @var 0|1|2|3 Where to display the module in setup page
    -	 * @deprecated @since 4.0.0
    -	 * @see family
    -	 * @see familyinfo
    -	 *
    -	 * 0: common
    -	 * 1: interface
    -	 * 2: others
    -	 * 3: very specific
    -	 */
    -	public $special;
    -
    -	/**
    -	 * @var string Name of image file used for this module
    -	 *
    -	 * If file is in theme/yourtheme/img directory under name object_pictoname.png use 'pictoname'
    -	 * If file is in module/img directory under name object_pictoname.png use 'pictoname@module'
    -	 */
    -	public $picto;
    -
    -	/**
    -	 * @var string[] List of config pages
    -	 *
    -	 * Name of php pages stored into module/admin directory, used to setup module.
    -	 * e.g.: "admin.php@module"
    -	 */
    -	public $config_page_url;
    -
    -
    -	/**
    -	 * @var string[] List of module class names that must be enabled if this module is enabled.
    -	 *
    -	 * e.g.: array('modAnotherModule', 'modYetAnotherModule')
    -	 */
    -	public $depends;
    -
    -	/**
    -	 * @var int[] List of module ids to disable if this one is disabled.
    -	 */
    -	public $requiredby;
    -
    -	/**
    -	 * @var string[] List of module class names as string this module is in conflict with.
    -	 * @see depends
    -	 */
    -	public $conflictwith;
    -
    -	/**
    -	 * @var string[] Module language files
    -	 */
    -	public $langfiles;
    -
    -	/**
    -	 * @var array<string,string> Array of warnings to show when we activate the module
    -	 *
    -	 * array('always'='text') or array('FR'='text')
    -	 */
    -	public $warnings_activation;
    -
    -	/**
    -	 * @var array<string,string> Array of warnings to show when we activate an external module
    -	 *
    -	 * array('always'='text') or array('FR'='text')
    -	 */
    -	public $warnings_activation_ext;
    -
    -
    -	/**
    -	 * @var array() Minimum version of PHP required by module.
    -	 * e.g.: PHP ≥ 5.3 = array(5, 3)
    -	 */
    -	public $phpmin;
    -
    -	/**
    -	 * @var array Minimum version of Dolibarr required by module.
    -	 * e.g.: Dolibarr ≥ 3.6 = array(3, 6)
    -	 */
    -	public $need_dolibarr_version;
    -
    -	/**
    -	 * @var bool Whether to hide the module.
    -	 */
    -	public $hidden = false;
    -
    -
    -
    -
    -
    -	/**
    -	 * Constructor. Define names, constants, directories, boxes, permissions
    -	 *
    -	 * @param DoliDB		$db      Database handler
    -	 */
    -	public function __construct($db)
    -	{
    -		$this->db = $db;
    -	}
    -	// We should but can't set this as abstract because this will make dolibarr hang
    -	// after migration due to old module not implementing. We must wait PHP is able to make
    -	// a try catch on Fatal error to manage this correctly.
    -	// We need constructor into function unActivateModule into admin.lib.php
    -
    -
    -	/**
    -	 * Enables a module.
    -	 * Inserts all informations into database
    -	 *
    -	 * @param   array  		$array_sql  SQL requests to be executed when enabling module
    -	 * @param   string      $options    String with options when disabling module:
    -	 *                                    'noboxes' = Do not insert boxes
    -	 *                                    'newboxdefonly' = For boxes, insert def of boxes only and not boxes activation
    -	 *
    -	 * @return  int                         1 if OK, 0 if KO
    -	 */
    -	function _init($array_sql, $options='')
    -	{
    -		global $conf;
    -		$err=0;
    -
    -		$this->db->begin();
    -
    -		// Insert activation module constant
    -		if (! $err) $err+=$this->_active();
    -
    -		// Insert new pages for tabs (into llx_const)
    -		if (! $err) $err+=$this->insert_tabs();
    -
    -		// Insert activation of module's parts
    -		if (! $err) $err+=$this->insert_module_parts();
    -
    -		// Insert constant defined by modules (into llx_const)
    -		if (! $err && ! preg_match('/newboxdefonly/',$options)) $err+=$this->insert_const();	// Test on newboxdefonly to avoid to erase value during upgrade
    -
    -		// Insert boxes def into llx_boxes_def and boxes setup (into llx_boxes)
    -		if (! $err && ! preg_match('/noboxes/',$options)) $err+=$this->insert_boxes($options);
    -
    -		// Insert cron job entries (entry in llx_cronjobs)
    -		if (! $err) $err+=$this->insert_cronjobs();
    -
    -		// Insert permission definitions of module into llx_rights_def. If user is admin, grant this permission to user.
    -		if (! $err) $err+=$this->insert_permissions(1, null, 1);
    -
    -		// Insert specific menus entries into database
    -		if (! $err) $err+=$this->insert_menus();
    -
    -		// Create module's directories
    -		if (! $err) $err+=$this->create_dirs();
    -
    -		// Execute addons requests
    -		$num=count($array_sql);
    -		for ($i = 0; $i < $num; $i++)
    -		{
    -			if (! $err)
    -			{
    -				$val=$array_sql[$i];
    -				$sql=$val;
    -				$ignoreerror=0;
    -				if (is_array($val))
    -				{
    -					$sql=$val['sql'];
    -					$ignoreerror=$val['ignoreerror'];
    -				}
    -				// Add current entity id
    -				$sql=str_replace('__ENTITY__', $conf->entity, $sql);
    -
    -				dol_syslog(get_class($this)."::_init ignoreerror=".$ignoreerror."", LOG_DEBUG);
    -				$result=$this->db->query($sql, $ignoreerror);
    -				if (! $result)
    -				{
    -					if (! $ignoreerror)
    -					{
    -						$this->error=$this->db->lasterror();
    -						$err++;
    -					}
    -					else
    -					{
    -						dol_syslog(get_class($this)."::_init Warning ".$this->db->lasterror(), LOG_WARNING);
    -					}
    -				}
    -			}
    -		}
    -
    -		// Return code
    -		if (! $err)
    -		{
    -			$this->db->commit();
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->db->rollback();
    -			return 0;
    -		}
    -	}
    -
    -	/**
    -	 * Disable function. Deletes the module constant and boxes from the database.
    -	 *
    -	 * @param   string[]    $array_sql  SQL requests to be executed when module is disabled
    -	 * @param   string      $options	Options when disabling module:
    -	 *                                    'newboxdefonly|noboxes' = We don't remove boxes.
    -	 *
    -	 * @return  int                     1 if OK, 0 if KO
    -	 */
    -	function _remove($array_sql, $options='')
    -	{
    -		$err=0;
    -
    -		$this->db->begin();
    -
    -		// Remove activation module line (constant MAIN_MODULE_MYMODULE in llx_const)
    -		if (! $err) $err+=$this->_unactive();
    -
    -		// Remove activation of module's new tabs (MAIN_MODULE_MYMODULE_TABS_XXX in llx_const)
    -		if (! $err) $err+=$this->delete_tabs();
    -
    -		// Remove activation of module's parts (MAIN_MODULE_MYMODULE_XXX in llx_const)
    -		if (! $err) $err+=$this->delete_module_parts();
    -
    -		// Remove constants defined by modules
    -		if (! $err) $err+=$this->delete_const();
    -
    -		// Remove list of module's available boxes (entry in llx_boxes)
    -		if (! $err && ! preg_match('/(newboxdefonly|noboxes)/',$options)) $err+=$this->delete_boxes();	// We don't have to delete if option ask to keep boxes safe or ask to add new box def only
    -
    -		// Remove list of module's cron job entries (entry in llx_cronjobs)
    -		if (! $err) $err+=$this->delete_cronjobs();
    -
    -		// Remove module's permissions from list of available permissions (entries in llx_rights_def)
    -		if (! $err) $err+=$this->delete_permissions();
    -
    -		// Remove module's menus (entries in llx_menu)
    -		if (! $err) $err+=$this->delete_menus();
    -
    -		// Remove module's directories
    -		if (! $err) $err+=$this->delete_dirs();
    -
    -		// Run complementary sql requests
    -		$num=count($array_sql);
    -		for ($i = 0; $i < $num; $i++)
    -		{
    -			if (! $err)
    -			{
    -				dol_syslog(get_class($this)."::_remove", LOG_DEBUG);
    -				$result=$this->db->query($array_sql[$i]);
    -				if (! $result)
    -				{
    -					$this->error=$this->db->error();
    -					$err++;
    -				}
    -			}
    -		}
    -
    -		// Return code
    -		if (! $err)
    -		{
    -			$this->db->commit();
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->db->rollback();
    -			return 0;
    -		}
    -	}
    -
    -
    -	/**
    -	 * Gives the translated module name if translation exists in admin.lang or into language files of module.
    -	 * Otherwise return the module key name.
    -	 *
    -	 * @return  string  Translated module name
    -	 */
    -	function getName()
    -	{
    -		global $langs;
    -		$langs->load("admin");
    -
    -		if ($langs->transnoentitiesnoconv("Module".$this->numero."Name") != ("Module".$this->numero."Name"))
    -		{
    -			// If module name translation exists
    -			return $langs->transnoentitiesnoconv("Module".$this->numero."Name");
    -		}
    -		else
    -		{
    -			// If module name translation using it's unique id does not exists, we try to use its name to find translation
    -			if (is_array($this->langfiles))
    -			{
    -				foreach($this->langfiles as $val)
    -				{
    -					if ($val) $langs->load($val);
    -				}
    -			}
    -
    -			if ($langs->trans("Module".$this->name."Name") != ("Module".$this->name."Name"))
    -			{
    -				// If module name translation exists
    -				return $langs->transnoentitiesnoconv("Module".$this->name."Name");
    -			}
    -
    -			// Last chance with simple label
    -			return $langs->transnoentitiesnoconv($this->name);
    -		}
    -	}
    -
    -
    -	/**
    -	 * Gives the translated module description if translation exists in admin.lang or the default module description
    -	 *
    -	 * @return  string  Translated module description
    -	 */
    -	function getDesc()
    -	{
    -		global $langs;
    -		$langs->load("admin");
    -
    -		if ($langs->transnoentitiesnoconv("Module".$this->numero."Desc") != ("Module".$this->numero."Desc"))
    -		{
    -			// If module description translation exists
    -			return $langs->transnoentitiesnoconv("Module".$this->numero."Desc");
    -		}
    -		else
    -		{
    -			// If module description translation does not exist using its unique id, we can use its name to find translation
    -			if (is_array($this->langfiles))
    -			{
    -				foreach($this->langfiles as $val)
    -				{
    -					if ($val) $langs->load($val);
    -				}
    -			}
    -
    -			if ($langs->transnoentitiesnoconv("Module".$this->name."Desc") != ("Module".$this->name."Desc"))
    -			{
    -				// If module name translation exists
    -				return $langs->trans("Module".$this->name."Desc");
    -			}
    -
    -			// Last chance with simple label
    -			return $langs->trans($this->description);
    -		}
    -	}
    -
    -	/**
    -	 * Gives the long description of a module. First check README-la_LA.md then README.md
    -	 * If not markdown files found, it return translated value of the key ->descriptionlong.
    -	 *
    -	 * @return  string                  Long description of a module from README.md of from property.
    -	 */
    -	function getDescLong()
    -	{
    -		global $langs;
    -		$langs->load("admin");
    -
    -		include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    -		include_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
    -
    -		$pathoffile = $this->getDescLongReadmeFound();
    -
    -		if ($pathoffile)     // Mostly for external modules
    -		{
    -			$content = file_get_contents($pathoffile);
    -
    -			if ((float) DOL_VERSION >= 6.0)
    -			{
    -				@include_once DOL_DOCUMENT_ROOT.'/core/lib/parsemd.lib.php';
    -
    -				$content = dolMd2Html($content, 'parsedown',
    -					array(
    -						'doc/'=>dol_buildpath(strtolower($this->name).'/doc/', 1),
    -						'img/'=>dol_buildpath(strtolower($this->name).'/img/', 1),
    -						'images/'=>dol_buildpath(strtolower($this->name).'/imgages/', 1),
    -					));
    -			}
    -			else
    -			{
    -				$content = nl2br($content);
    -			}
    -		}
    -		else                // Mostly for internal modules
    -		{
    -			if (! empty($this->descriptionlong))
    -			{
    -				if (is_array($this->langfiles))
    -				{
    -					foreach($this->langfiles as $val)
    -					{
    -						if ($val) $langs->load($val);
    -					}
    -				}
    -
    -				$content = $langs->transnoentitiesnoconv($this->descriptionlong);
    -			}
    -		}
    -
    -		return $content;
    -	}
    -
    -	/**
    -	 * Return path of file if a README file was found.
    -	 *
    -	 * @return  string      Path of file if a README file was found.
    -	 */
    -	function getDescLongReadmeFound()
    -	{
    -		global $langs;
    -
    -		$filefound= false;
    -
    -		// Define path to file README.md.
    -		// First check README-la_LA.md then README-la.md then README.md
    -		$pathoffile = dol_buildpath(strtolower($this->name).'/README-'.$langs->defaultlang.'.md', 0);
    -		if (dol_is_file($pathoffile))
    -		{
    -			$filefound = true;
    -		}
    -		if (! $filefound)
    -		{
    -			$tmp=explode('_', $langs->defaultlang);
    -			$pathoffile = dol_buildpath(strtolower($this->name).'/README-'.$tmp[0].'.md', 0);
    -			if (dol_is_file($pathoffile))
    -			{
    -				$filefound = true;
    -			}
    -		}
    -		if (! $filefound)
    -		{
    -			$pathoffile = dol_buildpath(strtolower($this->name).'/README.md', 0);
    -			if (dol_is_file($pathoffile))
    -			{
    -				$filefound = true;
    -			}
    -		}
    -
    -		return ($filefound?$pathoffile:'');
    -	}
    -
    -
    -	/**
    -	 * Gives the changelog. First check ChangeLog-la_LA.md then ChangeLog.md
    -	 *
    -	 * @return  string  Content of ChangeLog
    -	 */
    -	function getChangeLog()
    -	{
    -		global $langs;
    -		$langs->load("admin");
    -
    -		include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    -		include_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
    -
    -		$filefound= false;
    -
    -		// Define path to file README.md.
    -		// First check README-la_LA.md then README.md
    -		$pathoffile = dol_buildpath(strtolower($this->name).'/ChangeLog-'.$langs->defaultlang.'.md', 0);
    -		if (dol_is_file($pathoffile))
    -		{
    -			$filefound = true;
    -		}
    -		if (! $filefound)
    -		{
    -			$pathoffile = dol_buildpath(strtolower($this->name).'/ChangeLog.md', 0);
    -			if (dol_is_file($pathoffile))
    -			{
    -				$filefound = true;
    -			}
    -		}
    -
    -		if ($filefound)     // Mostly for external modules
    -		{
    -			$content = file_get_contents($pathoffile);
    -
    -			if ((float) DOL_VERSION >= 6.0)
    -			{
    -				@include_once DOL_DOCUMENT_ROOT.'/core/lib/parsemd.lib.php';
    -				$content = dolMd2Html($content, 'parsedown', array('doc/'=>dol_buildpath(strtolower($this->name).'/doc/', 1)));
    -			}
    -			else
    -			{
    -				$content = nl2br($content);
    -			}
    -		}
    -
    -		return $content;
    -	}
    -
    -	/**
    -	 * Gives the publisher name
    -	 *
    -	 * @return  string  Publisher name
    -	 */
    -	function getPublisher()
    -	{
    -		return $this->editor_name;
    -	}
    -
    -	/**
    -	 * Gives the publisher url
    -	 *
    -	 * @return  string  Publisher url
    -	 */
    -	function getPublisherUrl()
    -	{
    -		return $this->editor_url;
    -	}
    -
    -	/**
    -	 * Gives module version (translated if param $translated is on)
    -	 * For 'experimental' modules, gives 'experimental' translation
    -	 * For 'dolibarr' modules, gives Dolibarr version
    -	 *
    -	 * @param   int     $translated     1=Special version keys are translated, 0=Special version keys are not translated
    -	 * @return  string                  Module version
    -	 */
    -	function getVersion($translated=1)
    -	{
    -		global $langs;
    -		$langs->load("admin");
    -
    -		$ret='';
    -
    -		$newversion=preg_replace('/_deprecated/','',$this->version);
    -		if ($newversion == 'experimental') $ret=($translated?$langs->transnoentitiesnoconv("VersionExperimental"):$newversion);
    -		elseif ($newversion == 'development') $ret=($translated?$langs->transnoentitiesnoconv("VersionDevelopment"):$newversion);
    -		elseif ($newversion == 'dolibarr') $ret=DOL_VERSION;
    -		elseif ($newversion) $ret=$newversion;
    -		else $ret=($translated?$langs->transnoentitiesnoconv("VersionUnknown"):'unknown');
    -
    -		if (preg_match('/_deprecated/',$this->version)) $ret.=($translated?' ('.$langs->transnoentitiesnoconv("Deprecated").')':$this->version);
    -		return $ret;
    -	}
    -
    -
    -	/**
    -	 * Tells if module is core or external
    -	 *
    -	 * @return  string  'core', 'external' or 'unknown'
    -	 */
    -	function isCoreOrExternalModule()
    -	{
    -		if ($this->version == 'dolibarr' || $this->version == 'dolibarr_deprecated') return 'core';
    -		if (! empty($this->version) && ! in_array($this->version,array('experimental','development'))) return 'external';
    -		if (! empty($this->editor_name) || ! empty($this->editor_url)) return 'external';
    -		if ($this->numero >= 100000) return 'external';
    -		return 'unknown';
    -	}
    -
    -
    -	/**
    -	 * Gives module related language files list
    -	 *
    -	 * @return  string[]    Language files list
    -	 */
    -	function getLangFilesArray()
    -	{
    -		return $this->langfiles;
    -	}
    -
    -	/**
    -	 * Gives translated label of an export dataset
    -	 *
    -	 * @param   int     $r  Dataset index
    -	 *
    -	 * @return string       Translated databaset label
    -	 */
    -	function getExportDatasetLabel($r)
    -	{
    -		global $langs;
    -
    -		$langstring="ExportDataset_".$this->export_code[$r];
    -		if ($langs->trans($langstring) == $langstring)
    -		{
    -			// Translation not found
    -			return $langs->trans($this->export_label[$r]);
    -		}
    -		else
    -		{
    -			// Translation found
    -			return $langs->trans($langstring);
    -		}
    -	}
    -
    -
    -	/**
    -	 * Gives translated label of an import dataset
    -	 *
    -	 * @param   int     $r  Dataset index
    -	 *
    -	 * @return  string      Translated dataset label
    -	 */
    -	function getImportDatasetLabel($r)
    -	{
    -		global $langs;
    -
    -		$langstring="ImportDataset_".$this->import_code[$r];
    -		//print "x".$langstring;
    -		if ($langs->trans($langstring) == $langstring)
    -		{
    -			// Translation not found
    -			return $langs->transnoentitiesnoconv($this->import_label[$r]);
    -		}
    -		else
    -		{
    -			// Translation found
    -			return $langs->transnoentitiesnoconv($langstring);
    -		}
    -	}
    -
    -
    -	/**
    -	 * Gives the last date of activation
    -	 *
    -	 * @return  timestamp       Date of last activation
    -	 */
    -	function getLastActivationDate()
    -	{
    -		global $conf;
    -
    -		$sql = "SELECT tms FROM ".MAIN_DB_PREFIX."const";
    -		$sql.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($this->const_name)."'";
    -		$sql.= " AND entity IN (0, ".$conf->entity.")";
    -
    -		dol_syslog(get_class($this)."::getLastActiveDate", LOG_DEBUG);
    -		$resql=$this->db->query($sql);
    -		if (! $resql) $err++;
    -		else
    -		{
    -			$obj=$this->db->fetch_object($resql);
    -			if ($obj) return $this->db->jdate($obj->tms);
    -		}
    -
    -		return '';
    -	}
    -
    -
    -	/**
    -	 * Gives the last author of activation
    -	 *
    -	 * @return  array       Array array('authorid'=>Id of last activation user, 'lastactivationdate'=>Date of last activation)
    -	 */
    -	function getLastActivationInfo()
    -	{
    -		global $conf;
    -
    -		$sql = "SELECT tms, note FROM ".MAIN_DB_PREFIX."const";
    -		$sql.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($this->const_name)."'";
    -		$sql.= " AND entity IN (0, ".$conf->entity.")";
    -
    -		dol_syslog(get_class($this)."::getLastActiveDate", LOG_DEBUG);
    -		$resql=$this->db->query($sql);
    -		if (! $resql) $err++;
    -		else
    -		{
    -			$obj=$this->db->fetch_object($resql);
    -			$tmp=array();
    -			if ($obj->note)
    -			{
    -				$tmp=json_decode($obj->note, true);
    -			}
    -			if ($obj) return array('authorid'=>$tmp['authorid'], 'ip'=>$tmp['ip'], 'lastactivationdate'=>$this->db->jdate($obj->tms));
    -		}
    -
    -		return array();
    -	}
    -
    -
    -	/**
    -	 * Insert constants for module activation
    -	 *
    -	 * @return  int Error count (0 if OK)
    -	 */
    -	function _active()
    -	{
    -		global $conf, $user;
    -
    -		$err = 0;
    -
    -		// Common module
    -		$entity = ((! empty($this->always_enabled) || ! empty($this->core_enabled)) ? 0 : $conf->entity);
    -
    -		$sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    -		$sql.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($this->const_name)."'";
    -		$sql.= " AND entity IN (0, ".$entity.")";
    -
    -		dol_syslog(get_class($this)."::_active delete activation constant", LOG_DEBUG);
    -		$resql=$this->db->query($sql);
    -		if (! $resql) $err++;
    -
    -		$note=json_encode(array('authorid'=>(is_object($user)?$user->id:0), 'ip'=>(empty($_SERVER['REMOTE_ADDR'])?'':$_SERVER['REMOTE_ADDR'])));
    -
    -		$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name, value, visible, entity, note) VALUES";
    -		$sql.= " (".$this->db->encrypt($this->const_name,1);
    -		$sql.= ", ".$this->db->encrypt('1',1);
    -		$sql.= ", 0, ".$entity;
    -		$sql.= ", '".$this->db->escape($note)."')";
    -
    -		dol_syslog(get_class($this)."::_active insert activation constant", LOG_DEBUG);
    -		$resql=$this->db->query($sql);
    -		if (! $resql) $err++;
    -
    -		return $err;
    -	}
    -
    -
    -	/**
    -	 * Module deactivation
    -	 *
    -	 * @return  int Error count (0 if OK)
    -	 */
    -	function _unactive()
    -	{
    -		global $conf;
    -
    -		$err = 0;
    -
    -		// Common module
    -		$entity = ((! empty($this->always_enabled) || ! empty($this->core_enabled)) ? 0 : $conf->entity);
    -
    -		$sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    -		$sql.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($this->const_name)."'";
    -		$sql.= " AND entity IN (0, ".$entity.")";
    -
    -		dol_syslog(get_class($this)."::_unactive", LOG_DEBUG);
    -		$this->db->query($sql);
    -
    -		return $err;
    -	}
    -
    -
    -	/**
    -	 * Create tables and keys required by module.
    -	 * Files module.sql and module.key.sql with create table and create keys
    -	 * commands must be stored in directory reldir='/module/sql/'
    -	 * This function is called by this->init
    -	 *
    -	 * @param   string  $reldir Relative directory where to scan files
    -	 * @return  int             <=0 if KO, >0 if OK
    -	 */
    -	function _load_tables($reldir)
    -	{
    -		global $conf;
    -
    -		$error=0;
    -		$dirfound=0;
    -
    -		if (empty($reldir)) return 1;
    -
    -		include_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php';
    -
    -		$ok = 1;
    -		foreach($conf->file->dol_document_root as $dirroot)
    -		{
    -			if ($ok)
    -			{
    -				$dir = $dirroot.$reldir;
    -				$ok = 0;
    -
    -				$handle=@opendir($dir);         // Dir may not exists
    -				if (is_resource($handle))
    -				{
    -					$dirfound++;
    -
    -					// Run llx_mytable.sql files, then llx_mytable_*.sql
    -					$files = array();
    -					while (($file = readdir($handle))!==false)
    -					{
    -						$files[] = $file;
    -					}
    -					sort($files);
    -					foreach ($files as $file)
    -					{
    -						if (preg_match('/\.sql$/i',$file) && ! preg_match('/\.key\.sql$/i',$file) && substr($file,0,4) == 'llx_' && substr($file,0,4) != 'data')
    -						{
    -							$result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?1:0, '', 1);
    -							if ($result <= 0) $error++;
    -						}
    -					}
    -
    -					rewinddir($handle);
    -
    -					// Run llx_mytable.key.sql files (Must be done after llx_mytable.sql) then then llx_mytable_*.key.sql
    -					$files = array();
    -					while (($file = readdir($handle))!==false)
    -					{
    -						$files[] = $file;
    -					}
    -					sort($files);
    -					foreach ($files as $file)
    -					{
    -						if (preg_match('/\.key\.sql$/i',$file) && substr($file,0,4) == 'llx_' && substr($file,0,4) != 'data')
    -						{
    -							$result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?1:0, '', 1);
    -							if ($result <= 0) $error++;
    -						}
    -					}
    -
    -					rewinddir($handle);
    -
    -					// Run data_xxx.sql files (Must be done after llx_mytable.key.sql)
    -					$files = array();
    -					while (($file = readdir($handle))!==false)
    -					{
    -						$files[] = $file;
    -					}
    -					sort($files);
    -					foreach ($files as $file)
    -					{
    -						if (preg_match('/\.sql$/i',$file) && ! preg_match('/\.key\.sql$/i',$file) && substr($file,0,4) == 'data')
    -						{
    -							$result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?1:0, '', 1);
    -							if ($result <= 0) $error++;
    -						}
    -					}
    -
    -					rewinddir($handle);
    -
    -					// Run update_xxx.sql files
    -					$files = array();
    -					while (($file = readdir($handle))!==false)
    -					{
    -						$files[] = $file;
    -					}
    -					sort($files);
    -					foreach ($files as $file)
    -					{
    -						if (preg_match('/\.sql$/i',$file) && ! preg_match('/\.key\.sql$/i',$file) && substr($file,0,6) == 'update')
    -						{
    -							$result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?1:0, '', 1);
    -							if ($result <= 0) $error++;
    -						}
    -					}
    -
    -					closedir($handle);
    -				}
    -
    -				if ($error == 0)
    -				{
    -					$ok = 1;
    -				}
    -			}
    -		}
    -
    -		if (! $dirfound) dol_syslog("A module ask to load sql files into ".$reldir." but this directory was not found.", LOG_WARNING);
    -		return $ok;
    -	}
    -
    -
    -	/**
    -	 * Adds boxes
    -	 *
    -	 * @param   string  $option Options when disabling module ('newboxdefonly'=insert only boxes definition)
    -	 *
    -	 * @return  int             Error count (0 if OK)
    -	 */
    -	function insert_boxes($option='')
    -	{
    -		require_once DOL_DOCUMENT_ROOT . '/core/class/infobox.class.php';
    -
    -		global $conf;
    -
    -		$err=0;
    -
    -		if (is_array($this->boxes))
    -		{
    -			dol_syslog(get_class($this)."::insert_boxes", LOG_DEBUG);
    -
    -			$pos_name = InfoBox::getListOfPagesForBoxes();
    -
    -			foreach ($this->boxes as $key => $value)
    -			{
    -				$file  = isset($this->boxes[$key]['file'])?$this->boxes[$key]['file']:'';
    -				$note  = isset($this->boxes[$key]['note'])?$this->boxes[$key]['note']:'';
    -				$enabledbydefaulton = isset($this->boxes[$key]['enabledbydefaulton'])?$this->boxes[$key]['enabledbydefaulton']:'Home';
    -
    -				if (empty($file)) $file  = isset($this->boxes[$key][1])?$this->boxes[$key][1]:'';	// For backward compatibility
    -				if (empty($note)) $note  = isset($this->boxes[$key][2])?$this->boxes[$key][2]:'';	// For backward compatibility
    -
    -				// Search if boxes def already present
    -				$sql = "SELECT count(*) as nb FROM ".MAIN_DB_PREFIX."boxes_def";
    -				$sql.= " WHERE file = '".$this->db->escape($file)."'";
    -				$sql.= " AND entity = ".$conf->entity;
    -				if ($note) $sql.=" AND note ='".$this->db->escape($note)."'";
    -
    -				$result=$this->db->query($sql);
    -				if ($result)
    -				{
    -					$obj = $this->db->fetch_object($result);
    -					if ($obj->nb == 0)
    -					{
    -						$this->db->begin();
    -
    -						if (! $err)
    -						{
    -							$sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes_def (file, entity, note)";
    -							$sql.= " VALUES ('".$this->db->escape($file)."', ";
    -							$sql.= $conf->entity.", ";
    -							$sql.= $note?"'".$this->db->escape($note)."'":"null";
    -							$sql.= ")";
    -
    -							dol_syslog(get_class($this)."::insert_boxes", LOG_DEBUG);
    -							$resql=$this->db->query($sql);
    -							if (! $resql) $err++;
    -
    -						}
    -						if (! $err && ! preg_match('/newboxdefonly/',$option))
    -						{
    -							$lastid=$this->db->last_insert_id(MAIN_DB_PREFIX."boxes_def","rowid");
    -
    -							foreach ($pos_name as $key2 => $val2)
    -							{
    -								//print 'key2='.$key2.'-val2='.$val2."<br>\n";
    -								if ($enabledbydefaulton && $val2 != $enabledbydefaulton) continue;		// Not enabled by default onto this page.
    -
    -								$sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes (box_id,position,box_order,fk_user,entity)";
    -								$sql.= " VALUES (".$lastid.", ".$key2.", '0', 0, ".$conf->entity.")";
    -
    -								dol_syslog(get_class($this)."::insert_boxes onto page ".$key2."=".$val2."", LOG_DEBUG);
    -								$resql=$this->db->query($sql);
    -								if (! $resql) $err++;
    -							}
    -						}
    -
    -						if (! $err)
    -						{
    -							$this->db->commit();
    -						}
    -						else
    -						{
    -							$this->error=$this->db->lasterror();
    -							$this->db->rollback();
    -						}
    -					}
    -					// else box already registered into database
    -				}
    -				else
    -			  {
    -					$this->error=$this->db->lasterror();
    -					$err++;
    -				}
    -			}
    -		}
    -
    -		return $err;
    -	}
    -
    -
    -	/**
    -	 * Removes boxes
    -	 *
    -	 * @return  int Error count (0 if OK)
    -	 */
    -	function delete_boxes()
    -	{
    -		global $conf;
    -
    -		$err=0;
    -
    -		if (is_array($this->boxes))
    -		{
    -			foreach ($this->boxes as $key => $value)
    -			{
    -				//$titre = $this->boxes[$key][0];
    -				$file  = $this->boxes[$key]['file'];
    -				//$note  = $this->boxes[$key][2];
    -
    -				// TODO If the box is also included by another module and the other module is still on, we should not remove it.
    -				// For the moment, we manage this with hard coded exception
    -				//print "Remove box ".$file.'<br>';
    -				if ($file == 'box_graph_product_distribution.php')
    -				{
    -					if (! empty($conf->produit->enabled) || ! empty($conf->service->enabled))
    -					{
    -						dol_syslog("We discard disabling of module ".$file." because another module still active require it.");
    -						continue;
    -					}
    -				}
    -
    -				if (empty($file)) $file  = isset($this->boxes[$key][1])?$this->boxes[$key][1]:'';	// For backward compatibility
    -
    -				if ($this->db->type == 'sqlite3') {
    -					// sqlite doesn't support "USING" syntax.
    -					// TODO: remove this dependency.
    -					$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes ";
    -					$sql .= "WHERE ".MAIN_DB_PREFIX."boxes.box_id IN (";
    -					$sql .= "SELECT ".MAIN_DB_PREFIX."boxes_def.rowid ";
    -					$sql .= "FROM ".MAIN_DB_PREFIX."boxes_def ";
    -					$sql .= "WHERE ".MAIN_DB_PREFIX."boxes_def.file = '".$this->db->escape($file)."') ";
    -					$sql .= "AND ".MAIN_DB_PREFIX."boxes.entity = ".$conf->entity;
    -				} else {
    -					$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes";
    -					$sql.= " USING ".MAIN_DB_PREFIX."boxes, ".MAIN_DB_PREFIX."boxes_def";
    -					$sql.= " WHERE ".MAIN_DB_PREFIX."boxes.box_id = ".MAIN_DB_PREFIX."boxes_def.rowid";
    -					$sql.= " AND ".MAIN_DB_PREFIX."boxes_def.file = '".$this->db->escape($file)."'";
    -					$sql.= " AND ".MAIN_DB_PREFIX."boxes.entity = ".$conf->entity;
    -				}
    -
    -				dol_syslog(get_class($this)."::delete_boxes", LOG_DEBUG);
    -				$resql=$this->db->query($sql);
    -				if (! $resql)
    -				{
    -					$this->error=$this->db->lasterror();
    -					$err++;
    -				}
    -
    -				$sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def";
    -				$sql.= " WHERE file = '".$this->db->escape($file)."'";
    -				$sql.= " AND entity = ".$conf->entity;
    -
    -				dol_syslog(get_class($this)."::delete_boxes", LOG_DEBUG);
    -				$resql=$this->db->query($sql);
    -				if (! $resql)
    -				{
    -					$this->error=$this->db->lasterror();
    -					$err++;
    -				}
    -			}
    -		}
    -
    -		return $err;
    -	}
    -
    -	/**
    -	 * Adds cronjobs
    -	 *
    -	 * @return  int             Error count (0 if OK)
    -	 */
    -	function insert_cronjobs()
    -	{
    -		require_once DOL_DOCUMENT_ROOT . '/core/class/infobox.class.php';
    -
    -		global $conf;
    -
    -		$err=0;
    -
    -		if (is_array($this->cronjobs))
    -		{
    -			dol_syslog(get_class($this)."::insert_cronjobs", LOG_DEBUG);
    -
    -			foreach ($this->cronjobs as $key => $value)
    -			{
    -				$entity  = isset($this->cronjobs[$key]['entity'])?$this->cronjobs[$key]['entity']:$conf->entity;
    -				$label  = isset($this->cronjobs[$key]['label'])?$this->cronjobs[$key]['label']:'';
    -				$jobtype  = isset($this->cronjobs[$key]['jobtype'])?$this->cronjobs[$key]['jobtype']:'';
    -				$class  = isset($this->cronjobs[$key]['class'])?$this->cronjobs[$key]['class']:'';
    -				$objectname  = isset($this->cronjobs[$key]['objectname'])?$this->cronjobs[$key]['objectname']:'';
    -				$method = isset($this->cronjobs[$key]['method'])?$this->cronjobs[$key]['method']:'';
    -				$command  = isset($this->cronjobs[$key]['command'])?$this->cronjobs[$key]['command']:'';
    -				$parameters  = isset($this->cronjobs[$key]['parameters'])?$this->cronjobs[$key]['parameters']:'';
    -				$comment = isset($this->cronjobs[$key]['comment'])?$this->cronjobs[$key]['comment']:'';
    -				$frequency = isset($this->cronjobs[$key]['frequency'])?$this->cronjobs[$key]['frequency']:'';
    -				$unitfrequency = isset($this->cronjobs[$key]['unitfrequency'])?$this->cronjobs[$key]['unitfrequency']:'';
    -				$status = isset($this->cronjobs[$key]['status'])?$this->cronjobs[$key]['status']:'';
    -				$priority = isset($this->cronjobs[$key]['priority'])?$this->cronjobs[$key]['priority']:'';
    -				$test = isset($this->cronjobs[$key]['test'])?$this->cronjobs[$key]['test']:'';					// Line must be enabled or not (so visible or not)
    -
    -				// Search if boxes def already present
    -				$sql = "SELECT count(*) as nb FROM ".MAIN_DB_PREFIX."cronjob";
    -				$sql.= " WHERE module_name = '".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."'";
    -				if ($class) $sql.= " AND classesname = '".$this->db->escape($class)."'";
    -				if ($objectname) $sql.= " AND objectname = '".$this->db->escape($objectname)."'";
    -				if ($method) $sql.= " AND methodename = '".$this->db->escape($method)."'";
    -				if ($command) $sql.= " AND command = '".$this->db->escape($command)."'";
    -				$sql.= " AND entity = ".$entity;	// Must be exact entity
    -
    -				$now=dol_now();
    -
    -				$result=$this->db->query($sql);
    -				if ($result)
    -				{
    -					$obj = $this->db->fetch_object($result);
    -					if ($obj->nb == 0)
    -					{
    -						$this->db->begin();
    -
    -						if (! $err)
    -						{
    -							$sql = "INSERT INTO ".MAIN_DB_PREFIX."cronjob (module_name, datec, datestart, label, jobtype, classesname, objectname, methodename, command, params, note,";
    -							if(is_int($frequency)){ $sql.= ' frequency,'; }
    -							if(is_int($unitfrequency)){ $sql.= ' unitfrequency,'; }
    -							if(is_int($priority)){ $sql.= ' priority,'; }
    -							if(is_int($status)){ $sql.= ' status,'; }
    -							$sql.= " entity, test)";
    -							$sql.= " VALUES (";
    -							$sql.= "'".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."', ";
    -							$sql.= "'".$this->db->idate($now)."', ";
    -							$sql.= "'".$this->db->idate($now)."', ";
    -							$sql.= "'".$this->db->escape($label)."', ";
    -							$sql.= "'".$this->db->escape($jobtype)."', ";
    -							$sql.= ($class?"'".$this->db->escape($class)."'":"null").",";
    -							$sql.= ($objectname?"'".$this->db->escape($objectname)."'":"null").",";
    -							$sql.= ($method?"'".$this->db->escape($method)."'":"null").",";
    -							$sql.= ($command?"'".$this->db->escape($command)."'":"null").",";
    -							$sql.= ($parameters?"'".$this->db->escape($parameters)."'":"null").",";
    -							$sql.= ($comment?"'".$this->db->escape($comment)."'":"null").",";
    -							if(is_int($frequency)){ $sql.= "'".$this->db->escape($frequency)."', "; }
    -							if(is_int($unitfrequency)){ $sql.= "'".$this->db->escape($unitfrequency)."', "; }
    -							if(is_int($priority)) {$sql.= "'".$this->db->escape($priority)."', ";}
    -							if(is_int($status)){ $sql.= "'".$this->db->escape($status)."', "; }
    -							$sql.= $entity.",";
    -							$sql.= "'".$this->db->escape($test)."'";
    -							$sql.= ")";
    -
    -							$resql=$this->db->query($sql);
    -							if (! $resql) $err++;
    -
    -						}
    -
    -						if (! $err)
    -						{
    -							$this->db->commit();
    -						}
    -						else
    -						{
    -							$this->error=$this->db->lasterror();
    -							$this->db->rollback();
    -						}
    -					}
    -					// else box already registered into database
    -				}
    -				else
    -			  {
    -					$this->error=$this->db->lasterror();
    -					$err++;
    -				}
    -			}
    -		}
    -
    -		return $err;
    -	}
    -
    -
    -	/**
    -	 * Removes boxes
    -	 *
    -	 * @return  int Error count (0 if OK)
    -	 */
    -	function delete_cronjobs()
    -	{
    -		global $conf;
    -
    -		$err=0;
    -
    -		if (is_array($this->cronjobs))
    -		{
    -			$sql = "DELETE FROM ".MAIN_DB_PREFIX."cronjob";
    -			$sql.= " WHERE module_name = '".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."'";
    -			$sql.= " AND entity = ".$conf->entity;
    -			$sql.= " AND test = '1'";		// We delete on lines that are not set with a complete test that is '$conf->module->enabled' so when module is disabled, the cron is also removed.
    -											// For crons declared with a '$conf->module->enabled', there is no need to delete the line, so we don't loose setup if we reenable module.
    -
    -			dol_syslog(get_class($this)."::delete_cronjobs", LOG_DEBUG);
    -			$resql=$this->db->query($sql);
    -			if (! $resql)
    -			{
    -				$this->error=$this->db->lasterror();
    -				$err++;
    -			}
    -		}
    -
    -		return $err;
    -	}
    -
    -	/**
    -	 * Removes tabs
    -	 *
    -	 * @return  int Error count (0 if OK)
    -	 */
    -	function delete_tabs()
    -	{
    -		global $conf;
    -
    -		$err=0;
    -
    -		$sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    -		$sql.= " WHERE ".$this->db->decrypt('name')." like '".$this->db->escape($this->const_name)."_TABS_%'";
    -		$sql.= " AND entity = ".$conf->entity;
    -
    -		dol_syslog(get_class($this)."::delete_tabs", LOG_DEBUG);
    -		if (! $this->db->query($sql))
    -		{
    -			$this->error=$this->db->lasterror();
    -			$err++;
    -		}
    -
    -		return $err;
    -	}
    -
    -	/**
    -	 * Adds tabs
    -	 *
    -	 * @return int  Error count (0 if ok)
    -	 */
    -	function insert_tabs()
    -	{
    -		global $conf;
    -
    -		$err=0;
    -
    -		if (! empty($this->tabs))
    -		{
    -			dol_syslog(get_class($this)."::insert_tabs", LOG_DEBUG);
    -
    -			$i=0;
    -			foreach ($this->tabs as $key => $value)
    -			{
    -				if (is_array($value) && count($value) == 0) continue;	// Discard empty arrays
    -
    -				$entity=$conf->entity;
    -				$newvalue = $value;
    -
    -				if (is_array($value))
    -				{
    -					$newvalue = $value['data'];
    -					if (isset($value['entity'])) $entity = $value['entity'];
    -				}
    -
    -				if ($newvalue)
    -				{
    -					$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (";
    -					$sql.= "name";
    -					$sql.= ", type";
    -					$sql.= ", value";
    -					$sql.= ", note";
    -					$sql.= ", visible";
    -					$sql.= ", entity";
    -					$sql.= ")";
    -					$sql.= " VALUES (";
    -					$sql.= $this->db->encrypt($this->const_name."_TABS_".$i,1);
    -					$sql.= ", 'chaine'";
    -					$sql.= ", ".$this->db->encrypt($newvalue,1);
    -					$sql.= ", null";
    -					$sql.= ", '0'";
    -					$sql.= ", ".$entity;
    -					$sql.= ")";
    -
    -					$resql = $this->db->query($sql);
    -					if (! $resql)
    -					{
    -						dol_syslog($this->db->lasterror(), LOG_ERR);
    -						if ($this->db->lasterrno() != 'DB_ERROR_RECORD_ALREADY_EXISTS')
    -						{
    -							$this->error = $this->db->lasterror();
    -							$this->errors[] = $this->db->lasterror();
    -							$err++;
    -							break;
    -						}
    -					}
    -				}
    -				$i++;
    -			}
    -		}
    -		return $err;
    -	}
    -
    -	/**
    -	 * Adds constants
    -	 *
    -	 * @return  int Error count (0 if OK)
    -	 */
    -	function insert_const()
    -	{
    -		global $conf;
    -
    -		$err=0;
    -
    -		if (empty($this->const)) return 0;
    -
    -		dol_syslog(get_class($this)."::insert_const", LOG_DEBUG);
    -
    -		foreach ($this->const as $key => $value)
    -		{
    -			$name      = $this->const[$key][0];
    -			$type      = $this->const[$key][1];
    -			$val       = $this->const[$key][2];
    -			$note      = isset($this->const[$key][3])?$this->const[$key][3]:'';
    -			$visible   = isset($this->const[$key][4])?$this->const[$key][4]:0;
    -			$entity    = (! empty($this->const[$key][5]) && $this->const[$key][5]!='current')?0:$conf->entity;
    -
    -			// Clean
    -			if (empty($visible)) $visible='0';
    -			if (empty($val) && $val != '0') $val='';
    -
    -			$sql = "SELECT count(*)";
    -			$sql.= " FROM ".MAIN_DB_PREFIX."const";
    -			$sql.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($name)."'";
    -			$sql.= " AND entity = ".$entity;
    -
    -			$result=$this->db->query($sql);
    -			if ($result)
    -			{
    -				$row = $this->db->fetch_row($result);
    -
    -				if ($row[0] == 0)   // If not found
    -				{
    -					$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,value,note,visible,entity)";
    -					$sql.= " VALUES (";
    -					$sql.= $this->db->encrypt($name,1);
    -					$sql.= ",'".$type."'";
    -					$sql.= ",".(($val != '')?$this->db->encrypt($val,1):"''");
    -					$sql.= ",".($note?"'".$this->db->escape($note)."'":"null");
    -					$sql.= ",'".$visible."'";
    -					$sql.= ",".$entity;
    -					$sql.= ")";
    -
    -					if (! $this->db->query($sql) )
    -					{
    -						$err++;
    -					}
    -				}
    -				else
    -				{
    -					dol_syslog(get_class($this)."::insert_const constant '".$name."' already exists", LOG_WARNING);
    -				}
    -			}
    -			else
    -			{
    -				$err++;
    -			}
    -		}
    -
    -		return $err;
    -	}
    -
    -	/**
    -	 * Removes constants tagged 'deleteonunactive'
    -	 *
    -	 * @return  int <0 if KO, 0 if OK
    -	 */
    -	function delete_const()
    -	{
    -		global $conf;
    -
    -		$err=0;
    -
    -		if (empty($this->const)) return 0;
    -
    -		foreach ($this->const as $key => $value)
    -		{
    -			$name      = $this->const[$key][0];
    -			$deleteonunactive = (! empty($this->const[$key][6]))?1:0;
    -
    -			if ($deleteonunactive)
    -			{
    -				$sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    -				$sql.= " WHERE ".$this->db->decrypt('name')." = '".$name."'";
    -				$sql.= " AND entity in (0, ".$conf->entity.")";
    -				dol_syslog(get_class($this)."::delete_const", LOG_DEBUG);
    -				if (! $this->db->query($sql))
    -				{
    -					$this->error=$this->db->lasterror();
    -					$err++;
    -				}
    -			}
    -		}
    -
    -		return $err;
    -	}
    -
    -	/**
    -	 * Adds access rights
    -	 *
    -	 * @param   int $reinitadminperms   If 1, we also grant them to all admin users
    -	 * @param   int $force_entity       Force current entity
    -	 * @param   int	$notrigger			1=Does not execute triggers, 0= execute triggers
    -	 * @return  int                     Error count (0 if OK)
    -	 */
    -	function insert_permissions($reinitadminperms=0, $force_entity=null, $notrigger=0)
    -	{
    -		global $conf,$user;
    -
    -		$err=0;
    -		$entity=(! empty($force_entity) ? $force_entity : $conf->entity);
    -
    -		dol_syslog(get_class($this)."::insert_permissions", LOG_DEBUG);
    -
    -		// Test if module is activated
    -		$sql_del = "SELECT ".$this->db->decrypt('value')." as value";
    -		$sql_del.= " FROM ".MAIN_DB_PREFIX."const";
    -		$sql_del.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($this->const_name)."'";
    -		$sql_del.= " AND entity IN (0,".$entity.")";
    -
    -		$resql=$this->db->query($sql_del);
    -
    -		if ($resql)
    -		{
    -			$obj=$this->db->fetch_object($resql);
    -			if ($obj !== null && ! empty($obj->value) && ! empty($this->rights))
    -			{
    -				// If the module is active
    -				foreach ($this->rights as $key => $value)
    -				{
    -					$r_id       = $this->rights[$key][0];
    -					$r_desc     = $this->rights[$key][1];
    -					$r_type     = isset($this->rights[$key][2])?$this->rights[$key][2]:'';
    -					$r_def      = $this->rights[$key][3];
    -					$r_perms    = $this->rights[$key][4];
    -					$r_subperms = isset($this->rights[$key][5])?$this->rights[$key][5]:'';
    -					$r_modul    = empty($this->rights_class)?strtolower($this->name):$this->rights_class;
    -
    -					if (empty($r_type)) $r_type='w';
    -
    -					// Search if perm already present
    -					$sql = "SELECT count(*) as nb FROM ".MAIN_DB_PREFIX."rights_def";
    -					$sql.= " WHERE id = ".$r_id." AND entity = ".$entity;
    -
    -					$resqlselect=$this->db->query($sql);
    -					if ($resqlselect)
    -					{
    -						$objcount = $this->db->fetch_object($resqlselect);
    -						if ($objcount && $objcount->nb == 0)
    -						{
    -							if (dol_strlen($r_perms) )
    -							{
    -								if (dol_strlen($r_subperms) )
    -								{
    -									$sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def";
    -									$sql.= " (id, entity, libelle, module, type, bydefault, perms, subperms)";
    -									$sql.= " VALUES ";
    -									$sql.= "(".$r_id.",".$entity.",'".$this->db->escape($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."','".$r_subperms."')";
    -								}
    -								else
    -								{
    -									$sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def";
    -									$sql.= " (id, entity, libelle, module, type, bydefault, perms)";
    -									$sql.= " VALUES ";
    -									$sql.= "(".$r_id.",".$entity.",'".$this->db->escape($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."')";
    -								}
    -							}
    -							else
    -							{
    -								$sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def ";
    -								$sql .= " (id, entity, libelle, module, type, bydefault)";
    -								$sql .= " VALUES ";
    -								$sql .= "(".$r_id.",".$entity.",'".$this->db->escape($r_desc)."','".$r_modul."','".$r_type."',".$r_def.")";
    -							}
    -
    -							$resqlinsert=$this->db->query($sql,1);
    -
    -							if (! $resqlinsert)
    -							{
    -								if ($this->db->errno() != "DB_ERROR_RECORD_ALREADY_EXISTS")
    -								{
    -									$this->error=$this->db->lasterror();
    -									$err++;
    -									break;
    -								}
    -								else dol_syslog(get_class($this)."::insert_permissions record already exists", LOG_INFO);
    -
    -							}
    -
    -							$this->db->free($resqlinsert);
    -						}
    -
    -						$this->db->free($resqlselect);
    -					}
    -
    -					// If we want to init permissions on admin users
    -					if ($reinitadminperms)
    -					{
    -						if (! class_exists('User')) {
    -							require_once DOL_DOCUMENT_ROOT . '/user/class/user.class.php';
    -						}
    -						$sql="SELECT rowid FROM ".MAIN_DB_PREFIX."user WHERE admin = 1";
    -						dol_syslog(get_class($this)."::insert_permissions Search all admin users", LOG_DEBUG);
    -						$resqlseladmin=$this->db->query($sql,1);
    -						if ($resqlseladmin)
    -						{
    -							$num=$this->db->num_rows($resqlseladmin);
    -							$i=0;
    -							while ($i < $num)
    -							{
    -								$obj2=$this->db->fetch_object($resqlseladmin);
    -								dol_syslog(get_class($this)."::insert_permissions Add permission to user id=".$obj2->rowid);
    -
    -								$tmpuser=new User($this->db);
    -								$result = $tmpuser->fetch($obj2->rowid);
    -								if ($result > 0) {
    -									$tmpuser->addrights($r_id, '', '', 0, 1);
    -								}
    -								else
    -								{
    -									dol_syslog(get_class($this)."::insert_permissions Failed to add the permission to user because fetch return an error", LOG_ERR);
    -								}
    -								$i++;
    -							}
    -						}
    -						else
    -						{
    -							dol_print_error($this->db);
    -						}
    -					}
    -				}
    -
    -				if ($reinitadminperms && ! empty($user->admin))  // Reload permission for current user if defined
    -				{
    -					// We reload permissions
    -					$user->clearrights();
    -					$user->getrights();
    -				}
    -
    -			}
    -			$this->db->free($resql);
    -		}
    -		else
    -		{
    -			$this->error=$this->db->lasterror();
    -			$err++;
    -		}
    -
    -		return $err;
    -	}
    -
    -
    -	/**
    -	 * Removes access rights
    -	 *
    -	 * @return  int                     Error count (0 if OK)
    -	 */
    -	function delete_permissions()
    -	{
    -		global $conf;
    -
    -		$err=0;
    -
    -		$sql = "DELETE FROM ".MAIN_DB_PREFIX."rights_def";
    -		$sql.= " WHERE module = '".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."'";
    -		$sql.= " AND entity = ".$conf->entity;
    -		dol_syslog(get_class($this)."::delete_permissions", LOG_DEBUG);
    -		if (! $this->db->query($sql))
    -		{
    -			$this->error=$this->db->lasterror();
    -			$err++;
    -		}
    -
    -		return $err;
    -	}
    -
    -
    -	/**
    -	 * Adds menu entries
    -	 *
    -	 * @return  int     Error count (0 if OK)
    -	 */
    -	function insert_menus()
    -	{
    -		global $user;
    -
    -		if (! is_array($this->menu) || empty($this->menu)) return 0;
    -
    -		require_once DOL_DOCUMENT_ROOT . '/core/class/menubase.class.php';
    -
    -		dol_syslog(get_class($this)."::insert_menus", LOG_DEBUG);
    -
    -		$err=0;
    -
    -		$this->db->begin();
    -
    -		foreach ($this->menu as $key => $value)
    -		{
    -			$menu = new Menubase($this->db);
    -			$menu->menu_handler='all';
    -
    -			//$menu->module=strtolower($this->name);	TODO When right_class will be same than module name
    -			$menu->module=empty($this->rights_class)?strtolower($this->name):$this->rights_class;
    -
    -			if (! $this->menu[$key]['fk_menu'])
    -			{
    -				$menu->fk_menu=0;
    -			}
    -			else
    -			{
    -				$foundparent=0;
    -				$fk_parent=$this->menu[$key]['fk_menu'];
    -				if (preg_match('/^r=/',$fk_parent))	// old deprecated method
    -				{
    -					$fk_parent=str_replace('r=','',$fk_parent);
    -					if (isset($this->menu[$fk_parent]['rowid']))
    -					{
    -						$menu->fk_menu=$this->menu[$fk_parent]['rowid'];
    -						$foundparent=1;
    -					}
    -				}
    -				elseif (preg_match('/^fk_mainmenu=([a-zA-Z0-9_]+),fk_leftmenu=([a-zA-Z0-9_]+)$/',$fk_parent,$reg))
    -				{
    -					$menu->fk_menu=-1;
    -					$menu->fk_mainmenu=$reg[1];
    -					$menu->fk_leftmenu=$reg[2];
    -					$foundparent=1;
    -				}
    -				elseif (preg_match('/^fk_mainmenu=([a-zA-Z0-9_]+)$/',$fk_parent,$reg))
    -				{
    -					$menu->fk_menu=-1;
    -					$menu->fk_mainmenu=$reg[1];
    -					$menu->fk_leftmenu='';
    -					$foundparent=1;
    -				}
    -				if (! $foundparent)
    -				{
    -					$this->error="ErrorBadDefinitionOfMenuArrayInModuleDescriptor";
    -					dol_syslog(get_class($this)."::insert_menus ".$this->error." ".$this->menu[$key]['fk_menu'], LOG_ERR);
    -					$err++;
    -				}
    -			}
    -			$menu->type=$this->menu[$key]['type'];
    -			$menu->mainmenu=isset($this->menu[$key]['mainmenu'])?$this->menu[$key]['mainmenu']:(isset($menu->fk_mainmenu)?$menu->fk_mainmenu:'');
    -			$menu->leftmenu=isset($this->menu[$key]['leftmenu'])?$this->menu[$key]['leftmenu']:'';
    -			$menu->titre=$this->menu[$key]['titre'];
    -			$menu->url=$this->menu[$key]['url'];
    -			$menu->langs=$this->menu[$key]['langs'];
    -			$menu->position=$this->menu[$key]['position'];
    -			$menu->perms=$this->menu[$key]['perms'];
    -			$menu->target=isset($this->menu[$key]['target'])?$this->menu[$key]['target']:'';
    -			$menu->user=$this->menu[$key]['user'];
    -			$menu->enabled=isset($this->menu[$key]['enabled'])?$this->menu[$key]['enabled']:0;
    -			$menu->position=$this->menu[$key]['position'];
    -
    -			if (! $err)
    -			{
    -				$result=$menu->create($user);	// Save menu entry into table llx_menu
    -				if ($result > 0)
    -				{
    -					$this->menu[$key]['rowid']=$result;
    -				}
    -				else
    -				{
    -					$this->error=$menu->error;
    -					dol_syslog(get_class($this).'::insert_menus result='.$result." ".$this->error, LOG_ERR);
    -					$err++;
    -					break;
    -				}
    -			}
    -		}
    -
    -		if (! $err)
    -		{
    -			$this->db->commit();
    -		}
    -		else
    -		{
    -			dol_syslog(get_class($this)."::insert_menus ".$this->error, LOG_ERR);
    -			$this->db->rollback();
    -		}
    -
    -		return $err;
    -	}
    -
    -
    -	/**
    -	 * Removes menu entries
    -	 *
    -	 * @return  int Error count (0 if OK)
    -	 */
    -	function delete_menus()
    -	{
    -		global $conf;
    -
    -		$err=0;
    -
    -		//$module=strtolower($this->name);		TODO When right_class will be same than module name
    -		$module=empty($this->rights_class)?strtolower($this->name):$this->rights_class;
    -
    -		$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu";
    -		$sql.= " WHERE module = '".$this->db->escape($module)."'";
    -		$sql.= " AND entity = ".$conf->entity;
    -
    -		dol_syslog(get_class($this)."::delete_menus", LOG_DEBUG);
    -		$resql=$this->db->query($sql);
    -		if (! $resql)
    -		{
    -			$this->error=$this->db->lasterror();
    -			$err++;
    -		}
    -
    -		return $err;
    -	}
    -
    -	/**
    -	 * Creates directories
    -	 *
    -	 * @return  int Error count (0 if OK)
    -	 */
    -	function create_dirs()
    -	{
    -		global $langs, $conf;
    -
    -		$err=0;
    -
    -		if (isset($this->dirs) && is_array($this->dirs))
    -		{
    -			foreach ($this->dirs as $key => $value)
    -			{
    -				$addtodatabase=0;
    -
    -				if (! is_array($value)) $dir=$value;    // Default simple mode
    -				else {
    -					$constname = $this->const_name."_DIR_";
    -					$dir       = $this->dirs[$key][1];
    -					$addtodatabase = empty($this->dirs[$key][2])?'':$this->dirs[$key][2]; // Create constante in llx_const
    -					$subname   = empty($this->dirs[$key][3])?'':strtoupper($this->dirs[$key][3]); // Add submodule name (ex: $conf->module->submodule->dir_output)
    -					$forcename = empty($this->dirs[$key][4])?'':strtoupper($this->dirs[$key][4]); // Change the module name if different
    -
    -					if (! empty($forcename)) $constname = 'MAIN_MODULE_'.$forcename."_DIR_";
    -					if (! empty($subname))   $constname = $constname.$subname."_";
    -
    -					$name = $constname.strtoupper($this->dirs[$key][0]);
    -				}
    -
    -				// Define directory full path ($dir must start with "/")
    -				if (empty($conf->global->MAIN_MODULE_MULTICOMPANY) || $conf->entity == 1) $fulldir = DOL_DATA_ROOT.$dir;
    -				else $fulldir = DOL_DATA_ROOT."/".$conf->entity.$dir;
    -				// Create dir if it does not exists
    -				if (! empty($fulldir) && ! file_exists($fulldir))
    -				{
    -					if (dol_mkdir($fulldir, DOL_DATA_ROOT) < 0)
    -					{
    -						$this->error = $langs->trans("ErrorCanNotCreateDir",$fulldir);
    -						dol_syslog(get_class($this)."::_init ".$this->error, LOG_ERR);
    -						$err++;
    -					}
    -				}
    -
    -				// Define the constant in database if requested (not the default mode)
    -				if (! empty($addtodatabase))
    -				{
    -					$result = $this->insert_dirs($name, $dir);
    -					if ($result) $err++;
    -				}
    -			}
    -		}
    -
    -		return $err;
    -	}
    -
    -
    -	/**
    -	 * Adds directories definitions
    -	 *
    -	 * @param   string  $name   Name
    -	 * @param   string  $dir    Directory
    -	 *
    -	 * @return  int             Error count (0 if OK)
    -	 */
    -	function insert_dirs($name,$dir)
    -	{
    -		global $conf;
    -
    -		$err=0;
    -
    -		$sql = "SELECT count(*)";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."const";
    -		$sql.= " WHERE ".$this->db->decrypt('name')." = '".$name."'";
    -		$sql.= " AND entity = ".$conf->entity;
    -
    -		dol_syslog(get_class($this)."::insert_dirs", LOG_DEBUG);
    -		$result=$this->db->query($sql);
    -		if ($result)
    -		{
    -			$row = $this->db->fetch_row($result);
    -
    -			if ($row[0] == 0)
    -			{
    -				$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,value,note,visible,entity)";
    -				$sql.= " VALUES (".$this->db->encrypt($name,1).",'chaine',".$this->db->encrypt($dir,1).",'Directory for module ".$this->name."','0',".$conf->entity.")";
    -
    -				dol_syslog(get_class($this)."::insert_dirs", LOG_DEBUG);
    -				$this->db->query($sql);
    -			}
    -		}
    -		else
    -		{
    -			$this->error=$this->db->lasterror();
    -			$err++;
    -		}
    -
    -		return $err;
    -	}
    -
    -
    -	/**
    -	 * Removes directories
    -	 *
    -	 * @return  int Error count (0 if OK)
    -	 */
    -	function delete_dirs()
    -	{
    -		global $conf;
    -
    -		$err=0;
    -
    -		$sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    -		$sql.= " WHERE ".$this->db->decrypt('name')." LIKE '".$this->db->escape($this->const_name)."_DIR_%'";
    -		$sql.= " AND entity = ".$conf->entity;
    -
    -		dol_syslog(get_class($this)."::delete_dirs", LOG_DEBUG);
    -		if (! $this->db->query($sql))
    -		{
    -			$this->error=$this->db->lasterror();
    -			$err++;
    -		}
    -
    -		return $err;
    -	}
    -
    -	/**
    -	 * Adds generic parts
    -	 *
    -	 * @return  int Error count (0 if OK)
    -	 */
    -	function insert_module_parts()
    -	{
    -		global $conf;
    -
    -		$error=0;
    -
    -		if (is_array($this->module_parts) && ! empty($this->module_parts))
    -		{
    -			foreach($this->module_parts as $key => $value)
    -			{
    -				if (is_array($value) && count($value) == 0) continue;	// Discard empty arrays
    -
    -				$entity=$conf->entity; // Reset the current entity
    -				$newvalue = $value;
    -
    -				// Serialize array parameters
    -				if (is_array($value))
    -				{
    -					// Can defined other parameters
    -					// Example when $key='hooks', then $value is an array('data'=>array('hookcontext1','hookcontext2'), 'entity'=>X)
    -					if (isset($value['data']) && is_array($value['data']))
    -					{
    -						$newvalue = json_encode($value['data']);
    -						if (isset($value['entity'])) $entity = $value['entity'];
    -					}
    -					else if (isset($value['data']) && !is_array($value['data']))
    -					{
    -						$newvalue = $value['data'];
    -						if (isset($value['entity'])) $entity = $value['entity'];
    -					}
    -					else	// when hook is declared with syntax 'hook'=>array('hookcontext1','hookcontext2',...)
    -					{
    -						$newvalue = json_encode($value);
    -					}
    -				}
    -
    -				$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (";
    -				$sql.= "name";
    -				$sql.= ", type";
    -				$sql.= ", value";
    -				$sql.= ", note";
    -				$sql.= ", visible";
    -				$sql.= ", entity";
    -				$sql.= ")";
    -				$sql.= " VALUES (";
    -				$sql.= $this->db->encrypt($this->const_name."_".strtoupper($key), 1);
    -				$sql.= ", 'chaine'";
    -				$sql.= ", ".$this->db->encrypt($newvalue, 1);
    -				$sql.= ", null";
    -				$sql.= ", '0'";
    -				$sql.= ", ".$entity;
    -				$sql.= ")";
    -
    -				dol_syslog(get_class($this)."::insert_module_parts for key=".$this->const_name."_".strtoupper($key), LOG_DEBUG);
    -
    -				$resql=$this->db->query($sql,1);
    -				if (! $resql)
    -				{
    -					if ($this->db->lasterrno() != 'DB_ERROR_RECORD_ALREADY_EXISTS')
    -					{
    -						$error++;
    -						$this->error=$this->db->lasterror();
    -					}
    -					else
    -					{
    -						dol_syslog(get_class($this)."::insert_module_parts for ".$this->const_name."_".strtoupper($key)." Record already exists.", LOG_WARNING);
    -					}
    -				}
    -			}
    -		}
    -		return $error;
    -	}
    -
    -	/**
    -	 * Removes generic parts
    -	 *
    -	 * @return  int Error count (0 if OK)
    -	 */
    -	function delete_module_parts()
    -	{
    -		global $conf;
    -
    -		$err=0;
    -		$entity=$conf->entity;
    -
    -		if (is_array($this->module_parts) && ! empty($this->module_parts))
    -		{
    -			foreach($this->module_parts as $key => $value)
    -			{
    -				// If entity is defined
    -				if (is_array($value) && isset($value['entity'])) $entity = $value['entity'];
    -
    -				$sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    -				$sql.= " WHERE ".$this->db->decrypt('name')." LIKE '".$this->db->escape($this->const_name)."_".strtoupper($key)."'";
    -				$sql.= " AND entity = ".$entity;
    -
    -				dol_syslog(get_class($this)."::delete_const_".$key."", LOG_DEBUG);
    -				if (! $this->db->query($sql))
    -				{
    -					$this->error=$this->db->lasterror();
    -					$err++;
    -				}
    -			}
    -		}
    -		return $err;
    -	}
    -
    -	/**
    -	 * Function called when module is enabled.
    -	 * The init function adds tabs, constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
    -	 * It also creates data directories
    -	 *
    -	 * @param string $options   Options when enabling module ('', 'newboxdefonly', 'noboxes')
    -	 *                          'noboxes' = Do not insert boxes
    -	 *                          'newboxdefonly' = For boxes, insert def of boxes only and not boxes activation
    -	 * @return int				1 if OK, 0 if KO
    -	 */
    -	public function init($options = '')
    -	{
    -		return $this->_init(array(), $options);
    -	}
    -
    -	/**
    -	 * Function called when module is disabled.
    -	 * The remove function removes tabs, constants, boxes, permissions and menus from Dolibarr database.
    -	 * Data directories are not deleted
    -	 *
    -	 * @param      string	$options    Options when enabling module ('', 'noboxes')
    -	 * @return     int             		1 if OK, 0 if KO
    -	 */
    -	public function remove($options = '')
    -	{
    -		return $this->_remove(array(), $options);
    -	}
    +    /**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
    +
    +    /**
    +     * @var int Module unique ID
    +     * @see https://wiki.dolibarr.org/index.php/List_of_modules_id
    +     */
    +    public $numero;
    +
    +    /**
    +     * @var   string Publisher name
    +     * @since 4.0.0
    +     */
    +    public $editor_name;
    +
    +    /**
    +     * @var   string URL of module at publisher site
    +     * @since 4.0.0
    +     */
    +    public $editor_url;
    +
    +    /**
    +     * @var string Family
    +     * @see familyinfo
    +     *
    +     * Native values: 'crm', 'financial', 'hr', 'projects', 'products', 'ecm', 'technic', 'other'.
    +     * Use familyinfo to declare a custom value.
    +     */
    +    public $family;
    +
    +    /**
    +     * @var array Custom family informations
    +     * @see family
    +     *
    +     * e.g.:
    +     * array(
    +     *     'myownfamily' => array(
    +     *         'position' => '001',
    +     *         'label' => $langs->trans("MyOwnFamily")
    +     *     )
    +     * );
    +     */
    +    public $familyinfo;
    +
    +    /**
    +     * @var string    Module position on 2 digits
    +     */
    +    public $module_position='50';
    +
    +    /**
    +     * @var string Module name
    +     *
    +     * Only used if Module[ID]Name translation string is not found.
    +     *
    +     * You can use the following code to automatically derive it from your module's class name:
    +     * preg_replace('/^mod/i', '', get_class($this))
    +     */
    +    public $name;
    +
    +    /**
    +     * @var string[] Paths to create when module is activated
    +     *
    +     * e.g.: array('/mymodule/temp')
    +     */
    +    public $dirs = array();
    +
    +    /**
    +     * @var array Module boxes
    +     */
    +    public $boxes = array();
    +
    +    /**
    +     * @var array Module constants
    +     */
    +    public $const = array();
    +
    +    /**
    +     * @var array Module cron jobs entries
    +     */
    +    public $cronjobs = array();
    +
    +    /**
    +     * @var array Module access rights
    +     */
    +    public $rights;
    +
    +    /**
    +     * @var string Module access rights family
    +     */
    +    public $rights_class;
    +
    +    /**
    +     * @var array Module menu entries
    +     */
    +    public $menu = array();
    +
    +    /**
    +     * @var array Module parts
    +     *  array(
    +     *      // Set this to 1 if module has its own trigger directory (/mymodule/core/triggers)
    +     *      'triggers' => 0,
    +     *      // Set this to 1 if module has its own login method directory (/mymodule/core/login)
    +     *      'login' => 0,
    +     *      // Set this to 1 if module has its own substitution function file (/mymodule/core/substitutions)
    +     *      'substitutions' => 0,
    +     *      // Set this to 1 if module has its own menus handler directory (/mymodule/core/menus)
    +     *      'menus' => 0,
    +     *      // Set this to 1 if module has its own theme directory (/mymodule/theme)
    +     *      'theme' => 0,
    +     *      // Set this to 1 if module overwrite template dir (/mymodule/core/tpl)
    +     *      'tpl' => 0,
    +     *      // Set this to 1 if module has its own barcode directory (/mymodule/core/modules/barcode)
    +     *      'barcode' => 0,
    +     *      // Set this to 1 if module has its own models directory (/mymodule/core/modules/xxx)
    +     *      'models' => 0,
    +     *      // Set this to relative path of css file if module has its own css file
    +     *      'css' => '/mymodule/css/mymodule.css.php',
    +     *      // Set this to relative path of js file if module must load a js on all pages
    +     *      'js' => '/mymodule/js/mymodule.js',
    +     *      // Set here all hooks context managed by module
    +     *      'hooks' => array('hookcontext1','hookcontext2')
    +     *  )
    +     */
    +    public $module_parts = array();
    +
    +    /**
    +     * @var        string Module documents ?
    +     * @deprecated Seems unused anywhere
    +     */
    +    public $docs;
    +
    +    /**
    +     * @var        string ?
    +     * @deprecated Seems unused anywhere
    +     */
    +    public $dbversion = "-";
    +
    +    /**
    +     * @var string Error message
    +     */
    +    public $error;
    +
    +    /**
    +     * @var string Module version
    +     * @see http://semver.org
    +     *
    +     * The following keywords can also be used:
    +     * 'development'
    +     * 'experimental'
    +     * 'dolibarr': only for core modules that share its version
    +     * 'dolibarr_deprecated': only for deprecated core modules
    +     */
    +    public $version;
    +
    +    /**
    +     * @var string Module description (short text)
    +     *
    +     * Only used if Module[ID]Desc translation string is not found.
    +     */
    +    public $description;
    +
    +    /**
    +     * @var   string Module description (long text)
    +     * @since 4.0.0
    +     *
    +     * HTML content supported.
    +     */
    +    public $descriptionlong;
    +
    +
    +    // For exports
    +
    +    /**
    +     * @var string Module export code
    +     */
    +    public $export_code;
    +
    +    /**
    +     * @var string Module export label
    +     */
    +    public $export_label;
    +
    +    public $export_permission;
    +    public $export_fields_array;
    +    public $export_TypeFields_array;
    +    public $export_entities_array;
    +    public $export_special_array;           // special or computed field
    +    public $export_dependencies_array;
    +    public $export_sql_start;
    +    public $export_sql_end;
    +    public $export_sql_order;
    +
    +
    +    // For import
    +
    +    /**
    +     * @var string Module import code
    +     */
    +    public $import_code;
    +
    +    /**
    +     * @var string Module import label
    +     */
    +    public $import_label;
    +
    +
    +    /**
    +     * @var string Module constant name
    +     */
    +    public $const_name;
    +
    +    /**
    +     * @var bool Module can't be disabled
    +     */
    +    public $always_enabled;
    +
    +    /**
    +     * @var int Module is enabled globally (Multicompany support)
    +     */
    +    public $core_enabled;
    +
    +    /**
    +     * @var        string Relative path to module style sheet
    +     * @deprecated
    +     * @see        module_parts
    +     */
    +    public $style_sheet = '';
    +
    +    /**
    +     * @var        0|1|2|3 Where to display the module in setup page
    +     * @deprecated @since 4.0.0
    +     * @see        family
    +     * @see        familyinfo
    +     *
    +     * 0: common
    +     * 1: interface
    +     * 2: others
    +     * 3: very specific
    +     */
    +    public $special;
    +
    +    /**
    +     * @var string Name of image file used for this module
    +     *
    +     * If file is in theme/yourtheme/img directory under name object_pictoname.png use 'pictoname'
    +     * If file is in module/img directory under name object_pictoname.png use 'pictoname@module'
    +     */
    +    public $picto;
    +
    +    /**
    +     * @var string[] List of config pages
    +     *
    +     * Name of php pages stored into module/admin directory, used to setup module.
    +     * e.g.: "admin.php@module"
    +     */
    +    public $config_page_url;
    +
    +
    +    /**
    +     * @var string[] List of module class names that must be enabled if this module is enabled.
    +     *
    +     * e.g.: array('modAnotherModule', 'FR'=>'modYetAnotherModule')
    +     */
    +    public $depends;
    +
    +    /**
    +     * @var int[] List of module ids to disable if this one is disabled.
    +     */
    +    public $requiredby;
    +
    +    /**
    +     * @var string[] List of module class names as string this module is in conflict with.
    +     * @see depends
    +     */
    +    public $conflictwith;
    +
    +    /**
    +     * @var string[] Module language files
    +     */
    +    public $langfiles;
    +
    +    /**
    +     * @var array<string,string> Array of warnings to show when we activate the module
    +     *
    +     * array('always'='text') or array('FR'='text')
    +     */
    +    public $warnings_activation;
    +
    +    /**
    +     * @var array<string,string> Array of warnings to show when we activate an external module
    +     *
    +     * array('always'='text') or array('FR'='text')
    +     */
    +    public $warnings_activation_ext;
    +
    +
    +    /**
    +     * @var array() Minimum version of PHP required by module.
    +     * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +    public $phpmin;
    +
    +    /**
    +     * @var array Minimum version of Dolibarr required by module.
    +     * e.g.: Dolibarr ≥ 3.6 = array(3, 6)
    +     */
    +    public $need_dolibarr_version;
    +
    +    /**
    +     * @var bool Whether to hide the module.
    +     */
    +    public $hidden = false;
    +
    +
    +
    +
    +
    +    /**
    +     * Constructor. Define names, constants, directories, boxes, permissions
    +     *
    +     * @param DoliDB $db Database handler
    +     */
    +    public function __construct($db)
    +    {
    +        $this->db = $db;
    +    }
    +    // We should but can't set this as abstract because this will make dolibarr hang
    +    // after migration due to old module not implementing. We must wait PHP is able to make
    +    // a try catch on Fatal error to manage this correctly.
    +    // We need constructor into function unActivateModule into admin.lib.php
    +
    +
    +    /**
    +     * Enables a module.
    +     * Inserts all informations into database
    +     *
    +     * @param array  $array_sql SQL requests to be executed when enabling module
    +     * @param string $options   String with options when disabling module:
    +     *                          - 'noboxes' = Do not insert boxes -
    +     *                          'newboxdefonly' = For boxes, insert def of
    +     *                          boxes only and not boxes activation
    +     *
    +     * @return int                         1 if OK, 0 if KO
    +     */
    +    function _init($array_sql, $options='')
    +    {
    +        global $conf;
    +        $err=0;
    +
    +        $this->db->begin();
    +
    +        // Insert activation module constant
    +        if (! $err) { $err+=$this->_active();
    +        }
    +
    +        // Insert new pages for tabs (into llx_const)
    +        if (! $err) { $err+=$this->insert_tabs();
    +        }
    +
    +        // Insert activation of module's parts
    +        if (! $err) { $err+=$this->insert_module_parts();
    +        }
    +
    +        // Insert constant defined by modules (into llx_const)
    +        if (! $err && ! preg_match('/newboxdefonly/', $options)) { $err+=$this->insert_const();    // Test on newboxdefonly to avoid to erase value during upgrade
    +        }
    +
    +        // Insert boxes def into llx_boxes_def and boxes setup (into llx_boxes)
    +        if (! $err && ! preg_match('/noboxes/', $options)) { $err+=$this->insert_boxes($options);
    +        }
    +
    +        // Insert cron job entries (entry in llx_cronjobs)
    +        if (! $err) { $err+=$this->insert_cronjobs();
    +        }
    +
    +        // Insert permission definitions of module into llx_rights_def. If user is admin, grant this permission to user.
    +        if (! $err) { $err+=$this->insert_permissions(1, null, 1);
    +        }
    +
    +        // Insert specific menus entries into database
    +        if (! $err) { $err+=$this->insert_menus();
    +        }
    +
    +        // Create module's directories
    +        if (! $err) { $err+=$this->create_dirs();
    +        }
    +
    +        // Execute addons requests
    +        $num=count($array_sql);
    +        for ($i = 0; $i < $num; $i++)
    +        {
    +            if (! $err) {
    +                $val=$array_sql[$i];
    +                $sql=$val;
    +                $ignoreerror=0;
    +                if (is_array($val)) {
    +                    $sql=$val['sql'];
    +                    $ignoreerror=$val['ignoreerror'];
    +                }
    +                // Add current entity id
    +                $sql=str_replace('__ENTITY__', $conf->entity, $sql);
    +
    +                dol_syslog(get_class($this)."::_init ignoreerror=".$ignoreerror."", LOG_DEBUG);
    +                $result=$this->db->query($sql, $ignoreerror);
    +                if (! $result) {
    +                    if (! $ignoreerror) {
    +                         $this->error=$this->db->lasterror();
    +                         $err++;
    +                    }
    +                    else
    +                    {
    +                         dol_syslog(get_class($this)."::_init Warning ".$this->db->lasterror(), LOG_WARNING);
    +                    }
    +                }
    +            }
    +        }
    +
    +        // Return code
    +        if (! $err) {
    +            $this->db->commit();
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->db->rollback();
    +            return 0;
    +        }
    +    }
    +
    +    /**
    +     * Disable function. Deletes the module constants and boxes from the database.
    +     *
    +     * @param string[] $array_sql SQL requests to be executed when module is disabled
    +     * @param string   $options   Options when disabling module:
    +     *
    +     * @return int                     1 if OK, 0 if KO
    +     */
    +    function _remove($array_sql, $options='')
    +    {
    +        $err=0;
    +
    +        $this->db->begin();
    +
    +        // Remove activation module line (constant MAIN_MODULE_MYMODULE in llx_const)
    +        if (! $err) { $err+=$this->_unactive();
    +        }
    +
    +        // Remove activation of module's new tabs (MAIN_MODULE_MYMODULE_TABS_XXX in llx_const)
    +        if (! $err) { $err+=$this->delete_tabs();
    +        }
    +
    +        // Remove activation of module's parts (MAIN_MODULE_MYMODULE_XXX in llx_const)
    +        if (! $err) { $err+=$this->delete_module_parts();
    +        }
    +
    +        // Remove constants defined by modules
    +        if (! $err) { $err+=$this->delete_const();
    +        }
    +
    +        // Remove list of module's available boxes (entry in llx_boxes)
    +        if (! $err && ! preg_match('/(newboxdefonly|noboxes)/', $options)) { $err+=$this->delete_boxes();    // We don't have to delete if option ask to keep boxes safe or ask to add new box def only
    +        }
    +
    +        // Remove list of module's cron job entries (entry in llx_cronjobs)
    +        if (! $err) { $err+=$this->delete_cronjobs();
    +        }
    +
    +        // Remove module's permissions from list of available permissions (entries in llx_rights_def)
    +        if (! $err) { $err+=$this->delete_permissions();
    +        }
    +
    +        // Remove module's menus (entries in llx_menu)
    +        if (! $err) { $err+=$this->delete_menus();
    +        }
    +
    +        // Remove module's directories
    +        if (! $err) { $err+=$this->delete_dirs();
    +        }
    +
    +        // Run complementary sql requests
    +        $num=count($array_sql);
    +        for ($i = 0; $i < $num; $i++)
    +        {
    +            if (! $err) {
    +                dol_syslog(get_class($this)."::_remove", LOG_DEBUG);
    +                $result=$this->db->query($array_sql[$i]);
    +                if (! $result) {
    +                    $this->error=$this->db->error();
    +                    $err++;
    +                }
    +            }
    +        }
    +
    +        // Return code
    +        if (! $err) {
    +            $this->db->commit();
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->db->rollback();
    +            return 0;
    +        }
    +    }
    +
    +
    +    /**
    +     * Gives the translated module name if translation exists in admin.lang or into language files of module.
    +     * Otherwise return the module key name.
    +     *
    +     * @return string  Translated module name
    +     */
    +    function getName()
    +    {
    +        global $langs;
    +        $langs->load("admin");
    +
    +        if ($langs->transnoentitiesnoconv("Module".$this->numero."Name") != ("Module".$this->numero."Name")) {
    +            // If module name translation exists
    +            return $langs->transnoentitiesnoconv("Module".$this->numero."Name");
    +        }
    +        else
    +        {
    +            // If module name translation using it's unique id does not exist, we try to use its name to find translation
    +            if (is_array($this->langfiles)) {
    +                foreach($this->langfiles as $val)
    +                {
    +                    if ($val) { $langs->load($val);
    +                    }
    +                }
    +            }
    +
    +            if ($langs->trans("Module".$this->name."Name") != ("Module".$this->name."Name")) {
    +                // If module name translation exists
    +                return $langs->transnoentitiesnoconv("Module".$this->name."Name");
    +            }
    +
    +            // Last chance with simple label
    +            return $langs->transnoentitiesnoconv($this->name);
    +        }
    +    }
    +
    +
    +    /**
    +     * Gives the translated module description if translation exists in admin.lang or the default module description
    +     *
    +     * @return string  Translated module description
    +     */
    +    function getDesc()
    +    {
    +        global $langs;
    +        $langs->load("admin");
    +
    +        if ($langs->transnoentitiesnoconv("Module".$this->numero."Desc") != ("Module".$this->numero."Desc")) {
    +            // If module description translation exists
    +            return $langs->transnoentitiesnoconv("Module".$this->numero."Desc");
    +        }
    +        else
    +        {
    +            // If module description translation does not exist using its unique id, we can use its name to find translation
    +            if (is_array($this->langfiles)) {
    +                foreach($this->langfiles as $val)
    +                {
    +                    if ($val) { $langs->load($val);
    +                    }
    +                }
    +            }
    +
    +            if ($langs->transnoentitiesnoconv("Module".$this->name."Desc") != ("Module".$this->name."Desc")) {
    +                // If module name translation exists
    +                return $langs->trans("Module".$this->name."Desc");
    +            }
    +
    +            // Last chance with simple label
    +            return $langs->trans($this->description);
    +        }
    +    }
    +
    +    /**
    +     * Gives the long description of a module. First check README-la_LA.md then README.md
    +     * If no markdown files found, it returns translated value of the key ->descriptionlong.
    +     *
    +     * @return string     Long description of a module from README.md of from property.
    +     */
    +    function getDescLong()
    +    {
    +        global $langs;
    +        $langs->load("admin");
    +
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
    +
    +        $pathoffile = $this->getDescLongReadmeFound();
    +
    +        if ($pathoffile)     // Mostly for external modules
    +        {
    +            $content = file_get_contents($pathoffile);
    +
    +            if ((float) DOL_VERSION >= 6.0) {
    +                @include_once DOL_DOCUMENT_ROOT.'/core/lib/parsemd.lib.php';
    +
    +                $content = dolMd2Html(
    +                    $content, 'parsedown',
    +                    array(
    +                    'doc/'=>dol_buildpath(strtolower($this->name).'/doc/', 1),
    +                    'img/'=>dol_buildpath(strtolower($this->name).'/img/', 1),
    +                    'images/'=>dol_buildpath(strtolower($this->name).'/imgages/', 1),
    +                    )
    +                );
    +            }
    +            else
    +            {
    +                $content = nl2br($content);
    +            }
    +        }
    +        else                // Mostly for internal modules
    +        {
    +            if (! empty($this->descriptionlong)) {
    +                if (is_array($this->langfiles)) {
    +                    foreach($this->langfiles as $val)
    +                    {
    +                        if ($val) { $langs->load($val);
    +                        }
    +                    }
    +                }
    +
    +                $content = $langs->transnoentitiesnoconv($this->descriptionlong);
    +            }
    +        }
    +
    +        return $content;
    +    }
    +
    +    /**
    +     * Return path of file if a README file was found.
    +     *
    +     * @return string      Path of file if a README file was found.
    +     */
    +    function getDescLongReadmeFound()
    +    {
    +        global $langs;
    +
    +        $filefound= false;
    +
    +        // Define path to file README.md.
    +        // First check README-la_LA.md then README-la.md then README.md
    +        $pathoffile = dol_buildpath(strtolower($this->name).'/README-'.$langs->defaultlang.'.md', 0);
    +        if (dol_is_file($pathoffile)) {
    +            $filefound = true;
    +        }
    +        if (! $filefound) {
    +            $tmp=explode('_', $langs->defaultlang);
    +            $pathoffile = dol_buildpath(strtolower($this->name).'/README-'.$tmp[0].'.md', 0);
    +            if (dol_is_file($pathoffile)) {
    +                $filefound = true;
    +            }
    +        }
    +        if (! $filefound) {
    +            $pathoffile = dol_buildpath(strtolower($this->name).'/README.md', 0);
    +            if (dol_is_file($pathoffile)) {
    +                $filefound = true;
    +            }
    +        }
    +
    +        return ($filefound?$pathoffile:'');
    +    }
    +
    +
    +    /**
    +     * Gives the changelog. First check ChangeLog-la_LA.md then ChangeLog.md
    +     *
    +     * @return string  Content of ChangeLog
    +     */
    +    function getChangeLog()
    +    {
    +        global $langs;
    +        $langs->load("admin");
    +
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
    +
    +        $filefound= false;
    +
    +        // Define path to file README.md.
    +        // First check README-la_LA.md then README.md
    +        $pathoffile = dol_buildpath(strtolower($this->name).'/ChangeLog-'.$langs->defaultlang.'.md', 0);
    +        if (dol_is_file($pathoffile)) {
    +            $filefound = true;
    +        }
    +        if (! $filefound) {
    +            $pathoffile = dol_buildpath(strtolower($this->name).'/ChangeLog.md', 0);
    +            if (dol_is_file($pathoffile)) {
    +                $filefound = true;
    +            }
    +        }
    +
    +        if ($filefound)     // Mostly for external modules
    +        {
    +            $content = file_get_contents($pathoffile);
    +
    +            if ((float) DOL_VERSION >= 6.0) {
    +                @include_once DOL_DOCUMENT_ROOT.'/core/lib/parsemd.lib.php';
    +                $content = dolMd2Html($content, 'parsedown', array('doc/'=>dol_buildpath(strtolower($this->name).'/doc/', 1)));
    +            }
    +            else
    +            {
    +                $content = nl2br($content);
    +            }
    +        }
    +
    +        return $content;
    +    }
    +
    +    /**
    +     * Gives the publisher name
    +     *
    +     * @return string  Publisher name
    +     */
    +    function getPublisher()
    +    {
    +        return $this->editor_name;
    +    }
    +
    +    /**
    +     * Gives the publisher url
    +     *
    +     * @return string  Publisher url
    +     */
    +    function getPublisherUrl()
    +    {
    +        return $this->editor_url;
    +    }
    +
    +    /**
    +     * Gives module version (translated if param $translated is on)
    +     * For 'experimental' modules, gives 'experimental' translation
    +     * For 'dolibarr' modules, gives Dolibarr version
    +     *
    +     * @param  int $translated 1=Special version keys are translated, 0=Special version keys are not translated
    +     * @return string                  Module version
    +     */
    +    function getVersion($translated=1)
    +    {
    +        global $langs;
    +        $langs->load("admin");
    +
    +        $ret='';
    +
    +        $newversion=preg_replace('/_deprecated/', '', $this->version);
    +        if ($newversion == 'experimental') { $ret=($translated?$langs->transnoentitiesnoconv("VersionExperimental"):$newversion);
    +        } elseif ($newversion == 'development') { $ret=($translated?$langs->transnoentitiesnoconv("VersionDevelopment"):$newversion);
    +        } elseif ($newversion == 'dolibarr') { $ret=DOL_VERSION;
    +        } elseif ($newversion) { $ret=$newversion;
    +        } else { $ret=($translated?$langs->transnoentitiesnoconv("VersionUnknown"):'unknown');
    +        }
    +
    +        if (preg_match('/_deprecated/', $this->version)) { $ret.=($translated?' ('.$langs->transnoentitiesnoconv("Deprecated").')':$this->version);
    +        }
    +        return $ret;
    +    }
    +
    +
    +    /**
    +     * Tells if module is core or external
    +     *
    +     * @return string  'core', 'external' or 'unknown'
    +     */
    +    function isCoreOrExternalModule()
    +    {
    +        if ($this->version == 'dolibarr' || $this->version == 'dolibarr_deprecated') { return 'core';
    +        }
    +        if (! empty($this->version) && ! in_array($this->version, array('experimental','development'))) { return 'external';
    +        }
    +        if (! empty($this->editor_name) || ! empty($this->editor_url)) { return 'external';
    +        }
    +        if ($this->numero >= 100000) { return 'external';
    +        }
    +        return 'unknown';
    +    }
    +
    +
    +    /**
    +     * Gives module related language files list
    +     *
    +     * @return string[]    Language files list
    +     */
    +    function getLangFilesArray()
    +    {
    +        return $this->langfiles;
    +    }
    +
    +    /**
    +     * Gives translated label of an export dataset
    +     *
    +     * @param int $r Dataset index
    +     *
    +     * @return string       Translated databaset label
    +     */
    +    function getExportDatasetLabel($r)
    +    {
    +        global $langs;
    +
    +        $langstring="ExportDataset_".$this->export_code[$r];
    +        if ($langs->trans($langstring) == $langstring) {
    +            // Translation not found
    +            return $langs->trans($this->export_label[$r]);
    +        }
    +        else
    +        {
    +            // Translation found
    +            return $langs->trans($langstring);
    +        }
    +    }
    +
    +
    +    /**
    +     * Gives translated label of an import dataset
    +     *
    +     * @param int $r Dataset index
    +     *
    +     * @return string      Translated dataset label
    +     */
    +    function getImportDatasetLabel($r)
    +    {
    +        global $langs;
    +
    +        $langstring="ImportDataset_".$this->import_code[$r];
    +        //print "x".$langstring;
    +        if ($langs->trans($langstring) == $langstring) {
    +            // Translation not found
    +            return $langs->transnoentitiesnoconv($this->import_label[$r]);
    +        }
    +        else
    +        {
    +            // Translation found
    +            return $langs->transnoentitiesnoconv($langstring);
    +        }
    +    }
    +
    +
    +    /**
    +     * Gives the last date of activation
    +     *
    +     * @return timestamp       Date of last activation
    +     */
    +    function getLastActivationDate()
    +    {
    +        global $conf;
    +
    +        $sql = "SELECT tms FROM ".MAIN_DB_PREFIX."const";
    +        $sql.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($this->const_name)."'";
    +        $sql.= " AND entity IN (0, ".$conf->entity.")";
    +
    +        dol_syslog(get_class($this)."::getLastActiveDate", LOG_DEBUG);
    +        $resql=$this->db->query($sql);
    +        if (! $resql) { $err++;
    +        } else
    +        {
    +            $obj=$this->db->fetch_object($resql);
    +            if ($obj) { return $this->db->jdate($obj->tms);
    +            }
    +        }
    +
    +        return '';
    +    }
    +
    +
    +    /**
    +     * Gives the last author of activation
    +     *
    +     * @return array       Array array('authorid'=>Id of last activation user, 'lastactivationdate'=>Date of last activation)
    +     */
    +    function getLastActivationInfo()
    +    {
    +        global $conf;
    +
    +        $sql = "SELECT tms, note FROM ".MAIN_DB_PREFIX."const";
    +        $sql.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($this->const_name)."'";
    +        $sql.= " AND entity IN (0, ".$conf->entity.")";
    +
    +        dol_syslog(get_class($this)."::getLastActiveDate", LOG_DEBUG);
    +        $resql=$this->db->query($sql);
    +        if (! $resql) { $err++;
    +        } else
    +        {
    +            $obj=$this->db->fetch_object($resql);
    +            $tmp=array();
    +            if ($obj->note) {
    +                $tmp=json_decode($obj->note, true);
    +            }
    +            if ($obj) { return array('authorid'=>$tmp['authorid'], 'ip'=>$tmp['ip'], 'lastactivationdate'=>$this->db->jdate($obj->tms));
    +            }
    +        }
    +
    +        return array();
    +    }
    +
    +
    +    /**
    +     * Insert constants for module activation
    +     *
    +     * @return int Error count (0 if OK)
    +     */
    +    function _active()
    +    {
    +        global $conf, $user;
    +
    +        $err = 0;
    +
    +        // Common module
    +        $entity = ((! empty($this->always_enabled) || ! empty($this->core_enabled)) ? 0 : $conf->entity);
    +
    +        $sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    +        $sql.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($this->const_name)."'";
    +        $sql.= " AND entity IN (0, ".$entity.")";
    +
    +        dol_syslog(get_class($this)."::_active delete activation constant", LOG_DEBUG);
    +        $resql=$this->db->query($sql);
    +        if (! $resql) { $err++;
    +        }
    +
    +        $note=json_encode(array('authorid'=>(is_object($user)?$user->id:0), 'ip'=>(empty($_SERVER['REMOTE_ADDR'])?'':$_SERVER['REMOTE_ADDR'])));
    +
    +        $sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name, value, visible, entity, note) VALUES";
    +        $sql.= " (".$this->db->encrypt($this->const_name, 1);
    +        $sql.= ", ".$this->db->encrypt('1', 1);
    +        $sql.= ", 0, ".$entity;
    +        $sql.= ", '".$this->db->escape($note)."')";
    +
    +        dol_syslog(get_class($this)."::_active insert activation constant", LOG_DEBUG);
    +        $resql=$this->db->query($sql);
    +        if (! $resql) { $err++;
    +        }
    +
    +        return $err;
    +    }
    +
    +
    +    /**
    +     * Module deactivation
    +     *
    +     * @return int Error count (0 if OK)
    +     */
    +    function _unactive()
    +    {
    +        global $conf;
    +
    +        $err = 0;
    +
    +        // Common module
    +        $entity = ((! empty($this->always_enabled) || ! empty($this->core_enabled)) ? 0 : $conf->entity);
    +
    +        $sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    +        $sql.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($this->const_name)."'";
    +        $sql.= " AND entity IN (0, ".$entity.")";
    +
    +        dol_syslog(get_class($this)."::_unactive", LOG_DEBUG);
    +        $this->db->query($sql);
    +
    +        return $err;
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Create tables and keys required by module.
    +     * Files module.sql and module.key.sql with create table and create keys
    +     * commands must be stored in directory reldir='/module/sql/'
    +     * This function is called by this->init
    +     *
    +     * @param  string $reldir Relative directory where to scan files
    +     * @return int             <=0 if KO, >0 if OK
    +     */
    +    function _load_tables($reldir)
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $error=0;
    +        $dirfound=0;
    +
    +        if (empty($reldir)) { return 1;
    +        }
    +
    +        include_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php';
    +
    +        $ok = 1;
    +        foreach($conf->file->dol_document_root as $dirroot)
    +        {
    +            if ($ok) {
    +                $dir = $dirroot.$reldir;
    +                $ok = 0;
    +
    +                $handle=@opendir($dir);         // Dir may not exists
    +                if (is_resource($handle)) {
    +                    $dirfound++;
    +
    +                    // Run llx_mytable.sql files, then llx_mytable_*.sql
    +                    $files = array();
    +                    while (($file = readdir($handle))!==false)
    +                    {
    +                        $files[] = $file;
    +                    }
    +                    sort($files);
    +                    foreach ($files as $file)
    +                    {
    +                        if (preg_match('/\.sql$/i', $file) && ! preg_match('/\.key\.sql$/i', $file) && substr($file, 0, 4) == 'llx_' && substr($file, 0, 4) != 'data') {
    +                            $result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?1:0, '', 1);
    +                            if ($result <= 0) { $error++;
    +                            }
    +                        }
    +                    }
    +
    +                    rewinddir($handle);
    +
    +                    // Run llx_mytable.key.sql files (Must be done after llx_mytable.sql) then then llx_mytable_*.key.sql
    +                    $files = array();
    +                    while (($file = readdir($handle))!==false)
    +                    {
    +                        $files[] = $file;
    +                    }
    +                    sort($files);
    +                    foreach ($files as $file)
    +                    {
    +                        if (preg_match('/\.key\.sql$/i', $file) && substr($file, 0, 4) == 'llx_' && substr($file, 0, 4) != 'data') {
    +                            $result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?1:0, '', 1);
    +                            if ($result <= 0) { $error++;
    +                            }
    +                        }
    +                    }
    +
    +                    rewinddir($handle);
    +
    +                    // Run data_xxx.sql files (Must be done after llx_mytable.key.sql)
    +                    $files = array();
    +                    while (($file = readdir($handle))!==false)
    +                    {
    +                               $files[] = $file;
    +                    }
    +                    sort($files);
    +                    foreach ($files as $file)
    +                    {
    +                        if (preg_match('/\.sql$/i', $file) && ! preg_match('/\.key\.sql$/i', $file) && substr($file, 0, 4) == 'data') {
    +                            $result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?1:0, '', 1);
    +                            if ($result <= 0) { $error++;
    +                            }
    +                        }
    +                    }
    +
    +                    rewinddir($handle);
    +
    +                    // Run update_xxx.sql files
    +                    $files = array();
    +                    while (($file = readdir($handle))!==false)
    +                    {
    +                               $files[] = $file;
    +                    }
    +                    sort($files);
    +                    foreach ($files as $file)
    +                    {
    +                        if (preg_match('/\.sql$/i', $file) && ! preg_match('/\.key\.sql$/i', $file) && substr($file, 0, 6) == 'update') {
    +                            $result=run_sql($dir.$file, empty($conf->global->MAIN_DISPLAY_SQL_INSTALL_LOG)?1:0, '', 1);
    +                            if ($result <= 0) { $error++;
    +                            }
    +                        }
    +                    }
    +
    +                    closedir($handle);
    +                }
    +
    +                if ($error == 0) {
    +                    $ok = 1;
    +                }
    +            }
    +        }
    +
    +        if (! $dirfound) { dol_syslog("A module ask to load sql files into ".$reldir." but this directory was not found.", LOG_WARNING);
    +        }
    +        return $ok;
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Adds boxes
    +     *
    +     * @param string $option Options when disabling module ('newboxdefonly'=insert only boxes definition)
    +     *
    +     * @return int             Error count (0 if OK)
    +     */
    +    function insert_boxes($option='')
    +    {
    +        // phpcs:enable
    +        include_once DOL_DOCUMENT_ROOT . '/core/class/infobox.class.php';
    +
    +        global $conf;
    +
    +        $err=0;
    +
    +        if (is_array($this->boxes)) {
    +            dol_syslog(get_class($this)."::insert_boxes", LOG_DEBUG);
    +
    +            $pos_name = InfoBox::getListOfPagesForBoxes();
    +
    +            foreach ($this->boxes as $key => $value)
    +            {
    +                $file  = isset($this->boxes[$key]['file'])?$this->boxes[$key]['file']:'';
    +                $note  = isset($this->boxes[$key]['note'])?$this->boxes[$key]['note']:'';
    +                $enabledbydefaulton = isset($this->boxes[$key]['enabledbydefaulton'])?$this->boxes[$key]['enabledbydefaulton']:'Home';
    +
    +                if (empty($file)) { $file  = isset($this->boxes[$key][1])?$this->boxes[$key][1]:'';    // For backward compatibility
    +                }
    +                if (empty($note)) { $note  = isset($this->boxes[$key][2])?$this->boxes[$key][2]:'';    // For backward compatibility
    +                }
    +
    +                // Search if boxes def already present
    +                $sql = "SELECT count(*) as nb FROM ".MAIN_DB_PREFIX."boxes_def";
    +                $sql.= " WHERE file = '".$this->db->escape($file)."'";
    +                $sql.= " AND entity = ".$conf->entity;
    +                if ($note) { $sql.=" AND note ='".$this->db->escape($note)."'";
    +                }
    +
    +                $result=$this->db->query($sql);
    +                if ($result) {
    +                    $obj = $this->db->fetch_object($result);
    +                    if ($obj->nb == 0) {
    +                        $this->db->begin();
    +
    +                        if (! $err) {
    +                            $sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes_def (file, entity, note)";
    +                            $sql.= " VALUES ('".$this->db->escape($file)."', ";
    +                            $sql.= $conf->entity.", ";
    +                            $sql.= $note?"'".$this->db->escape($note)."'":"null";
    +                            $sql.= ")";
    +
    +                            dol_syslog(get_class($this)."::insert_boxes", LOG_DEBUG);
    +                            $resql=$this->db->query($sql);
    +                            if (! $resql) { $err++;
    +                            }
    +                        }
    +                        if (! $err && ! preg_match('/newboxdefonly/', $option)) {
    +                            $lastid=$this->db->last_insert_id(MAIN_DB_PREFIX."boxes_def", "rowid");
    +
    +                            foreach ($pos_name as $key2 => $val2)
    +                            {
    +                                    //print 'key2='.$key2.'-val2='.$val2."<br>\n";
    +                                if ($enabledbydefaulton && $val2 != $enabledbydefaulton) { continue;        // Not enabled by default onto this page.
    +                                }
    +
    +                                $sql = "INSERT INTO ".MAIN_DB_PREFIX."boxes (box_id,position,box_order,fk_user,entity)";
    +                                $sql.= " VALUES (".$lastid.", ".$key2.", '0', 0, ".$conf->entity.")";
    +
    +                                dol_syslog(get_class($this)."::insert_boxes onto page ".$key2."=".$val2."", LOG_DEBUG);
    +                                $resql=$this->db->query($sql);
    +                                if (! $resql) { $err++;
    +                                }
    +                            }
    +                        }
    +
    +                        if (! $err) {
    +                            $this->db->commit();
    +                        }
    +                        else
    +                        {
    +                                  $this->error=$this->db->lasterror();
    +                                  $this->db->rollback();
    +                        }
    +                    }
    +                    // else box already registered into database
    +                }
    +                else
    +                {
    +                    $this->error=$this->db->lasterror();
    +                    $err++;
    +                }
    +            }
    +        }
    +
    +        return $err;
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Removes boxes
    +     *
    +     * @return int Error count (0 if OK)
    +     */
    +    function delete_boxes()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $err=0;
    +
    +        if (is_array($this->boxes)) {
    +            foreach ($this->boxes as $key => $value)
    +            {
    +                //$titre = $this->boxes[$key][0];
    +                $file  = $this->boxes[$key]['file'];
    +                //$note  = $this->boxes[$key][2];
    +
    +                // TODO If the box is also included by another module and the other module is still on, we should not remove it.
    +                // For the moment, we manage this with hard coded exception
    +                //print "Remove box ".$file.'<br>';
    +                if ($file == 'box_graph_product_distribution.php') {
    +                    if (! empty($conf->produit->enabled) || ! empty($conf->service->enabled)) {
    +                        dol_syslog("We discard disabling of module ".$file." because another module still active require it.");
    +                        continue;
    +                    }
    +                }
    +
    +                if (empty($file)) { $file  = isset($this->boxes[$key][1])?$this->boxes[$key][1]:'';    // For backward compatibility
    +                }
    +
    +                if ($this->db->type == 'sqlite3') {
    +                    // sqlite doesn't support "USING" syntax.
    +                    // TODO: remove this dependency.
    +                    $sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes ";
    +                    $sql .= "WHERE ".MAIN_DB_PREFIX."boxes.box_id IN (";
    +                    $sql .= "SELECT ".MAIN_DB_PREFIX."boxes_def.rowid ";
    +                    $sql .= "FROM ".MAIN_DB_PREFIX."boxes_def ";
    +                    $sql .= "WHERE ".MAIN_DB_PREFIX."boxes_def.file = '".$this->db->escape($file)."') ";
    +                    $sql .= "AND ".MAIN_DB_PREFIX."boxes.entity = ".$conf->entity;
    +                } else {
    +                    $sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes";
    +                    $sql.= " USING ".MAIN_DB_PREFIX."boxes, ".MAIN_DB_PREFIX."boxes_def";
    +                    $sql.= " WHERE ".MAIN_DB_PREFIX."boxes.box_id = ".MAIN_DB_PREFIX."boxes_def.rowid";
    +                    $sql.= " AND ".MAIN_DB_PREFIX."boxes_def.file = '".$this->db->escape($file)."'";
    +                    $sql.= " AND ".MAIN_DB_PREFIX."boxes.entity = ".$conf->entity;
    +                }
    +
    +                dol_syslog(get_class($this)."::delete_boxes", LOG_DEBUG);
    +                $resql=$this->db->query($sql);
    +                if (! $resql) {
    +                    $this->error=$this->db->lasterror();
    +                    $err++;
    +                }
    +
    +                $sql = "DELETE FROM ".MAIN_DB_PREFIX."boxes_def";
    +                $sql.= " WHERE file = '".$this->db->escape($file)."'";
    +                $sql.= " AND entity = ".$conf->entity;
    +
    +                dol_syslog(get_class($this)."::delete_boxes", LOG_DEBUG);
    +                $resql=$this->db->query($sql);
    +                if (! $resql) {
    +                    $this->error=$this->db->lasterror();
    +                    $err++;
    +                }
    +            }
    +        }
    +
    +        return $err;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Adds cronjobs
    +     *
    +     * @return int             Error count (0 if OK)
    +     */
    +    function insert_cronjobs()
    +    {
    +        // phpcs:enable
    +        include_once DOL_DOCUMENT_ROOT . '/core/class/infobox.class.php';
    +
    +        global $conf;
    +
    +        $err=0;
    +
    +        if (is_array($this->cronjobs)) {
    +            dol_syslog(get_class($this)."::insert_cronjobs", LOG_DEBUG);
    +
    +            foreach ($this->cronjobs as $key => $value)
    +            {
    +                $entity  = isset($this->cronjobs[$key]['entity'])?$this->cronjobs[$key]['entity']:$conf->entity;
    +                $label  = isset($this->cronjobs[$key]['label'])?$this->cronjobs[$key]['label']:'';
    +                $jobtype  = isset($this->cronjobs[$key]['jobtype'])?$this->cronjobs[$key]['jobtype']:'';
    +                $class  = isset($this->cronjobs[$key]['class'])?$this->cronjobs[$key]['class']:'';
    +                $objectname  = isset($this->cronjobs[$key]['objectname'])?$this->cronjobs[$key]['objectname']:'';
    +                $method = isset($this->cronjobs[$key]['method'])?$this->cronjobs[$key]['method']:'';
    +                $command  = isset($this->cronjobs[$key]['command'])?$this->cronjobs[$key]['command']:'';
    +                $parameters  = isset($this->cronjobs[$key]['parameters'])?$this->cronjobs[$key]['parameters']:'';
    +                $comment = isset($this->cronjobs[$key]['comment'])?$this->cronjobs[$key]['comment']:'';
    +                $frequency = isset($this->cronjobs[$key]['frequency'])?$this->cronjobs[$key]['frequency']:'';
    +                $unitfrequency = isset($this->cronjobs[$key]['unitfrequency'])?$this->cronjobs[$key]['unitfrequency']:'';
    +                $priority = isset($this->cronjobs[$key]['priority'])?$this->cronjobs[$key]['priority']:'';
    +                $datestart = isset($this->cronjobs[$key]['datestart'])?$this->cronjobs[$key]['datestart']:'';
    +                $dateend = isset($this->cronjobs[$key]['dateend'])?$this->cronjobs[$key]['dateend']:'';
    +                $status = isset($this->cronjobs[$key]['status'])?$this->cronjobs[$key]['status']:'';
    +                $test = isset($this->cronjobs[$key]['test'])?$this->cronjobs[$key]['test']:'';                    // Line must be enabled or not (so visible or not)
    +
    +                // Search if cron entry already present
    +                $sql = "SELECT count(*) as nb FROM ".MAIN_DB_PREFIX."cronjob";
    +                $sql.= " WHERE module_name = '".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."'";
    +                if ($class) { $sql.= " AND classesname = '".$this->db->escape($class)."'";
    +                }
    +                if ($objectname) { $sql.= " AND objectname = '".$this->db->escape($objectname)."'";
    +                }
    +                if ($method) { $sql.= " AND methodename = '".$this->db->escape($method)."'";
    +                }
    +                if ($command) { $sql.= " AND command = '".$this->db->escape($command)."'";
    +                }
    +                $sql.= " AND entity = ".$entity;    // Must be exact entity
    +
    +                $now=dol_now();
    +
    +                $result=$this->db->query($sql);
    +                if ($result) {
    +                    $obj = $this->db->fetch_object($result);
    +                    if ($obj->nb == 0) {
    +                        $this->db->begin();
    +
    +                        if (! $err) {
    +                            $sql = "INSERT INTO ".MAIN_DB_PREFIX."cronjob (module_name, datec, datestart, dateend, label, jobtype, classesname, objectname, methodename, command, params, note,";
    +                            if (is_int($frequency)) { $sql.= ' frequency,'; }
    +                            if (is_int($unitfrequency)) { $sql.= ' unitfrequency,'; }
    +                            if (is_int($priority)) { $sql.= ' priority,'; }
    +                            if (is_int($status)) { $sql.= ' status,'; }
    +                            $sql.= " entity, test)";
    +                            $sql.= " VALUES (";
    +                            $sql.= "'".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."', ";
    +                            $sql.= "'".$this->db->idate($now)."', ";
    +                            $sql.= ($datestart ? "'".$this->db->idate($datestart)."'" : "'".$this->db->idate($now)."'").", ";
    +                            $sql.= ($dateend   ? "'".$this->db->idate($dateend)."'"   : "NULL").", ";
    +                            $sql.= "'".$this->db->escape($label)."', ";
    +                            $sql.= "'".$this->db->escape($jobtype)."', ";
    +                            $sql.= ($class?"'".$this->db->escape($class)."'":"null").",";
    +                            $sql.= ($objectname?"'".$this->db->escape($objectname)."'":"null").",";
    +                            $sql.= ($method?"'".$this->db->escape($method)."'":"null").",";
    +                            $sql.= ($command?"'".$this->db->escape($command)."'":"null").",";
    +                            $sql.= ($parameters?"'".$this->db->escape($parameters)."'":"null").",";
    +                            $sql.= ($comment?"'".$this->db->escape($comment)."'":"null").",";
    +                            if(is_int($frequency)) { $sql.= "'".$this->db->escape($frequency)."', ";
    +                            }
    +                            if(is_int($unitfrequency)) { $sql.= "'".$this->db->escape($unitfrequency)."', ";
    +                            }
    +                            if(is_int($priority)) {$sql.= "'".$this->db->escape($priority)."', ";
    +                            }
    +                            if(is_int($status)) { $sql.= "'".$this->db->escape($status)."', ";
    +                            }
    +                            $sql.= $entity.",";
    +                            $sql.= "'".$this->db->escape($test)."'";
    +                            $sql.= ")";
    +
    +                            $resql=$this->db->query($sql);
    +                            if (! $resql) { $err++;
    +                            }
    +                        }
    +
    +                        if (! $err) {
    +                            $this->db->commit();
    +                        }
    +                        else
    +                        {
    +                            $this->error=$this->db->lasterror();
    +                            $this->db->rollback();
    +                        }
    +                    }
    +                    // else box already registered into database
    +                }
    +                else
    +                {
    +                    $this->error=$this->db->lasterror();
    +                    $err++;
    +                }
    +            }
    +        }
    +
    +        return $err;
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Removes boxes
    +     *
    +     * @return int Error count (0 if OK)
    +     */
    +    function delete_cronjobs()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $err=0;
    +
    +        if (is_array($this->cronjobs)) {
    +            $sql = "DELETE FROM ".MAIN_DB_PREFIX."cronjob";
    +            $sql.= " WHERE module_name = '".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."'";
    +            $sql.= " AND entity = ".$conf->entity;
    +            $sql.= " AND test = '1'";        // We delete on lines that are not set with a complete test that is '$conf->module->enabled' so when module is disabled, the cron is also removed.
    +              // For crons declared with a '$conf->module->enabled', there is no need to delete the line, so we don't loose setup if we reenable module.
    +
    +            dol_syslog(get_class($this)."::delete_cronjobs", LOG_DEBUG);
    +            $resql=$this->db->query($sql);
    +            if (! $resql) {
    +                $this->error=$this->db->lasterror();
    +                $err++;
    +            }
    +        }
    +
    +        return $err;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Removes tabs
    +     *
    +     * @return int Error count (0 if OK)
    +     */
    +    function delete_tabs()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $err=0;
    +
    +        $sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    +        $sql.= " WHERE ".$this->db->decrypt('name')." like '".$this->db->escape($this->const_name)."_TABS_%'";
    +        $sql.= " AND entity = ".$conf->entity;
    +
    +        dol_syslog(get_class($this)."::delete_tabs", LOG_DEBUG);
    +        if (! $this->db->query($sql)) {
    +            $this->error=$this->db->lasterror();
    +            $err++;
    +        }
    +
    +        return $err;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Adds tabs
    +     *
    +     * @return int  Error count (0 if ok)
    +     */
    +    function insert_tabs()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $err=0;
    +
    +        if (! empty($this->tabs)) {
    +            dol_syslog(get_class($this)."::insert_tabs", LOG_DEBUG);
    +
    +            $i=0;
    +            foreach ($this->tabs as $key => $value)
    +            {
    +                if (is_array($value) && count($value) == 0) { continue;    // Discard empty arrays
    +                }
    +
    +                $entity=$conf->entity;
    +                $newvalue = $value;
    +
    +                if (is_array($value)) {
    +                    $newvalue = $value['data'];
    +                    if (isset($value['entity'])) { $entity = $value['entity'];
    +                    }
    +                }
    +
    +                if ($newvalue) {
    +                    $sql = "INSERT INTO ".MAIN_DB_PREFIX."const (";
    +                    $sql.= "name";
    +                    $sql.= ", type";
    +                    $sql.= ", value";
    +                    $sql.= ", note";
    +                    $sql.= ", visible";
    +                    $sql.= ", entity";
    +                    $sql.= ")";
    +                    $sql.= " VALUES (";
    +                    $sql.= $this->db->encrypt($this->const_name."_TABS_".$i, 1);
    +                    $sql.= ", 'chaine'";
    +                    $sql.= ", ".$this->db->encrypt($newvalue, 1);
    +                    $sql.= ", null";
    +                    $sql.= ", '0'";
    +                    $sql.= ", ".$entity;
    +                    $sql.= ")";
    +
    +                    $resql = $this->db->query($sql);
    +                    if (! $resql) {
    +                         dol_syslog($this->db->lasterror(), LOG_ERR);
    +                        if ($this->db->lasterrno() != 'DB_ERROR_RECORD_ALREADY_EXISTS') {
    +                            $this->error = $this->db->lasterror();
    +                            $this->errors[] = $this->db->lasterror();
    +                            $err++;
    +                            break;
    +                        }
    +                    }
    +                }
    +                $i++;
    +            }
    +        }
    +        return $err;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Adds constants
    +     *
    +     * @return int Error count (0 if OK)
    +     */
    +    function insert_const()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $err=0;
    +
    +        if (empty($this->const)) { return 0;
    +        }
    +
    +        dol_syslog(get_class($this)."::insert_const", LOG_DEBUG);
    +
    +        foreach ($this->const as $key => $value)
    +        {
    +            $name      = $this->const[$key][0];
    +            $type      = $this->const[$key][1];
    +            $val       = $this->const[$key][2];
    +            $note      = isset($this->const[$key][3])?$this->const[$key][3]:'';
    +            $visible   = isset($this->const[$key][4])?$this->const[$key][4]:0;
    +            $entity    = (! empty($this->const[$key][5]) && $this->const[$key][5]!='current')?0:$conf->entity;
    +
    +            // Clean
    +            if (empty($visible)) { $visible='0';
    +            }
    +            if (empty($val) && $val != '0') { $val='';
    +            }
    +
    +            $sql = "SELECT count(*)";
    +            $sql.= " FROM ".MAIN_DB_PREFIX."const";
    +            $sql.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($name)."'";
    +            $sql.= " AND entity = ".$entity;
    +
    +            $result=$this->db->query($sql);
    +            if ($result) {
    +                $row = $this->db->fetch_row($result);
    +
    +                if ($row[0] == 0)   // If not found
    +                {
    +                    $sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,value,note,visible,entity)";
    +                    $sql.= " VALUES (";
    +                    $sql.= $this->db->encrypt($name, 1);
    +                    $sql.= ",'".$type."'";
    +                    $sql.= ",".(($val != '')?$this->db->encrypt($val, 1):"''");
    +                    $sql.= ",".($note?"'".$this->db->escape($note)."'":"null");
    +                    $sql.= ",'".$visible."'";
    +                    $sql.= ",".$entity;
    +                    $sql.= ")";
    +
    +                    if (! $this->db->query($sql) ) {
    +                        $err++;
    +                    }
    +                }
    +                else
    +                {
    +                    dol_syslog(get_class($this)."::insert_const constant '".$name."' already exists", LOG_WARNING);
    +                }
    +            }
    +            else
    +            {
    +                $err++;
    +            }
    +        }
    +
    +        return $err;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Removes constants tagged 'deleteonunactive'
    +     *
    +     * @return int <0 if KO, 0 if OK
    +     */
    +    function delete_const()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $err=0;
    +
    +        if (empty($this->const)) { return 0;
    +        }
    +
    +        foreach ($this->const as $key => $value)
    +        {
    +            $name      = $this->const[$key][0];
    +            $deleteonunactive = (! empty($this->const[$key][6]))?1:0;
    +
    +            if ($deleteonunactive) {
    +                $sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    +                $sql.= " WHERE ".$this->db->decrypt('name')." = '".$name."'";
    +                $sql.= " AND entity in (0, ".$conf->entity.")";
    +                dol_syslog(get_class($this)."::delete_const", LOG_DEBUG);
    +                if (! $this->db->query($sql)) {
    +                    $this->error=$this->db->lasterror();
    +                    $err++;
    +                }
    +            }
    +        }
    +
    +        return $err;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Adds access rights
    +     *
    +     * @param  int $reinitadminperms If 1, we also grant them to all admin users
    +     * @param  int $force_entity     Force current entity
    +     * @param  int $notrigger        1=Does not execute triggers, 0= execute triggers
    +     * @return int                     Error count (0 if OK)
    +     */
    +    function insert_permissions($reinitadminperms=0, $force_entity=null, $notrigger=0)
    +    {
    +        // phpcs:enable
    +        global $conf,$user;
    +
    +        $err=0;
    +        $entity=(! empty($force_entity) ? $force_entity : $conf->entity);
    +
    +        dol_syslog(get_class($this)."::insert_permissions", LOG_DEBUG);
    +
    +        // Test if module is activated
    +        $sql_del = "SELECT ".$this->db->decrypt('value')." as value";
    +        $sql_del.= " FROM ".MAIN_DB_PREFIX."const";
    +        $sql_del.= " WHERE ".$this->db->decrypt('name')." = '".$this->db->escape($this->const_name)."'";
    +        $sql_del.= " AND entity IN (0,".$entity.")";
    +
    +        $resql=$this->db->query($sql_del);
    +
    +        if ($resql) {
    +            $obj=$this->db->fetch_object($resql);
    +            if ($obj !== null && ! empty($obj->value) && ! empty($this->rights)) {
    +                // If the module is active
    +                foreach ($this->rights as $key => $value)
    +                {
    +                    $r_id       = $this->rights[$key][0];
    +                    $r_desc     = $this->rights[$key][1];
    +                    $r_type     = isset($this->rights[$key][2])?$this->rights[$key][2]:'';
    +                    $r_def      = $this->rights[$key][3];
    +                    $r_perms    = $this->rights[$key][4];
    +                    $r_subperms = isset($this->rights[$key][5])?$this->rights[$key][5]:'';
    +                    $r_modul    = empty($this->rights_class)?strtolower($this->name):$this->rights_class;
    +
    +                    if (empty($r_type)) { $r_type='w';
    +                    }
    +
    +                    // Search if perm already present
    +                    $sql = "SELECT count(*) as nb FROM ".MAIN_DB_PREFIX."rights_def";
    +                    $sql.= " WHERE id = ".$r_id." AND entity = ".$entity;
    +
    +                    $resqlselect=$this->db->query($sql);
    +                    if ($resqlselect) {
    +                        $objcount = $this->db->fetch_object($resqlselect);
    +                        if ($objcount && $objcount->nb == 0) {
    +                            if (dol_strlen($r_perms) ) {
    +                                if (dol_strlen($r_subperms) ) {
    +                                    $sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def";
    +                                    $sql.= " (id, entity, libelle, module, type, bydefault, perms, subperms)";
    +                                    $sql.= " VALUES ";
    +                                    $sql.= "(".$r_id.",".$entity.",'".$this->db->escape($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."','".$r_subperms."')";
    +                                }
    +                                else
    +                                   {
    +                                    $sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def";
    +                                    $sql.= " (id, entity, libelle, module, type, bydefault, perms)";
    +                                    $sql.= " VALUES ";
    +                                    $sql.= "(".$r_id.",".$entity.",'".$this->db->escape($r_desc)."','".$r_modul."','".$r_type."',".$r_def.",'".$r_perms."')";
    +                                }
    +                            }
    +                            else
    +                            {
    +                                 $sql = "INSERT INTO ".MAIN_DB_PREFIX."rights_def ";
    +                                 $sql .= " (id, entity, libelle, module, type, bydefault)";
    +                                 $sql .= " VALUES ";
    +                                 $sql .= "(".$r_id.",".$entity.",'".$this->db->escape($r_desc)."','".$r_modul."','".$r_type."',".$r_def.")";
    +                            }
    +
    +                            $resqlinsert=$this->db->query($sql, 1);
    +
    +                            if (! $resqlinsert) {
    +                                if ($this->db->errno() != "DB_ERROR_RECORD_ALREADY_EXISTS") {
    +                                    $this->error=$this->db->lasterror();
    +                                    $err++;
    +                                    break;
    +                                }
    +                                else { dol_syslog(get_class($this)."::insert_permissions record already exists", LOG_INFO);
    +                                }
    +                            }
    +
    +                            $this->db->free($resqlinsert);
    +                        }
    +
    +                        $this->db->free($resqlselect);
    +                    }
    +
    +                    // If we want to init permissions on admin users
    +                    if ($reinitadminperms) {
    +                        if (! class_exists('User')) {
    +                            include_once DOL_DOCUMENT_ROOT . '/user/class/user.class.php';
    +                        }
    +                        $sql="SELECT rowid FROM ".MAIN_DB_PREFIX."user WHERE admin = 1";
    +                        dol_syslog(get_class($this)."::insert_permissions Search all admin users", LOG_DEBUG);
    +                        $resqlseladmin=$this->db->query($sql, 1);
    +                        if ($resqlseladmin) {
    +                            $num=$this->db->num_rows($resqlseladmin);
    +                            $i=0;
    +                            while ($i < $num)
    +                            {
    +                                  $obj2=$this->db->fetch_object($resqlseladmin);
    +                                  dol_syslog(get_class($this)."::insert_permissions Add permission to user id=".$obj2->rowid);
    +
    +                                  $tmpuser=new User($this->db);
    +                                  $result = $tmpuser->fetch($obj2->rowid);
    +                                if ($result > 0) {
    +                                    $tmpuser->addrights($r_id, '', '', 0, 1);
    +                                }
    +                                else
    +                                 {
    +                                    dol_syslog(get_class($this)."::insert_permissions Failed to add the permission to user because fetch return an error", LOG_ERR);
    +                                }
    +                                 $i++;
    +                            }
    +                        }
    +                        else
    +                        {
    +                            dol_print_error($this->db);
    +                        }
    +                    }
    +                }
    +
    +                if ($reinitadminperms && ! empty($user->admin))  // Reload permission for current user if defined
    +                {
    +                    // We reload permissions
    +                    $user->clearrights();
    +                    $user->getrights();
    +                }
    +            }
    +            $this->db->free($resql);
    +        }
    +        else
    +        {
    +            $this->error=$this->db->lasterror();
    +            $err++;
    +        }
    +
    +        return $err;
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Removes access rights
    +     *
    +     * @return int                     Error count (0 if OK)
    +     */
    +    function delete_permissions()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $err=0;
    +
    +        $sql = "DELETE FROM ".MAIN_DB_PREFIX."rights_def";
    +        $sql.= " WHERE module = '".$this->db->escape(empty($this->rights_class)?strtolower($this->name):$this->rights_class)."'";
    +        $sql.= " AND entity = ".$conf->entity;
    +        dol_syslog(get_class($this)."::delete_permissions", LOG_DEBUG);
    +        if (! $this->db->query($sql)) {
    +            $this->error=$this->db->lasterror();
    +            $err++;
    +        }
    +
    +        return $err;
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Adds menu entries
    +     *
    +     * @return int     Error count (0 if OK)
    +     */
    +    function insert_menus()
    +    {
    +        // phpcs:enable
    +        global $user;
    +
    +        if (! is_array($this->menu) || empty($this->menu)) { return 0;
    +        }
    +
    +        include_once DOL_DOCUMENT_ROOT . '/core/class/menubase.class.php';
    +
    +        dol_syslog(get_class($this)."::insert_menus", LOG_DEBUG);
    +
    +        $err=0;
    +
    +        $this->db->begin();
    +
    +        foreach ($this->menu as $key => $value)
    +        {
    +            $menu = new Menubase($this->db);
    +            $menu->menu_handler='all';
    +
    +            //$menu->module=strtolower($this->name);    TODO When right_class will be same than module name
    +            $menu->module=empty($this->rights_class)?strtolower($this->name):$this->rights_class;
    +
    +            if (! $this->menu[$key]['fk_menu']) {
    +                $menu->fk_menu=0;
    +            }
    +            else
    +            {
    +                $foundparent=0;
    +                $fk_parent=$this->menu[$key]['fk_menu'];
    +                if (preg_match('/^r=/', $fk_parent))    // old deprecated method
    +                {
    +                    $fk_parent=str_replace('r=', '', $fk_parent);
    +                    if (isset($this->menu[$fk_parent]['rowid'])) {
    +                        $menu->fk_menu=$this->menu[$fk_parent]['rowid'];
    +                        $foundparent=1;
    +                    }
    +                }
    +                elseif (preg_match('/^fk_mainmenu=([a-zA-Z0-9_]+),fk_leftmenu=([a-zA-Z0-9_]+)$/', $fk_parent, $reg)) {
    +                    $menu->fk_menu=-1;
    +                    $menu->fk_mainmenu=$reg[1];
    +                    $menu->fk_leftmenu=$reg[2];
    +                    $foundparent=1;
    +                }
    +                elseif (preg_match('/^fk_mainmenu=([a-zA-Z0-9_]+)$/', $fk_parent, $reg)) {
    +                    $menu->fk_menu=-1;
    +                    $menu->fk_mainmenu=$reg[1];
    +                    $menu->fk_leftmenu='';
    +                    $foundparent=1;
    +                }
    +                if (! $foundparent) {
    +                    $this->error="ErrorBadDefinitionOfMenuArrayInModuleDescriptor";
    +                    dol_syslog(get_class($this)."::insert_menus ".$this->error." ".$this->menu[$key]['fk_menu'], LOG_ERR);
    +                    $err++;
    +                }
    +            }
    +            $menu->type=$this->menu[$key]['type'];
    +            $menu->mainmenu=isset($this->menu[$key]['mainmenu'])?$this->menu[$key]['mainmenu']:(isset($menu->fk_mainmenu)?$menu->fk_mainmenu:'');
    +            $menu->leftmenu=isset($this->menu[$key]['leftmenu'])?$this->menu[$key]['leftmenu']:'';
    +            $menu->titre=$this->menu[$key]['titre'];
    +            $menu->url=$this->menu[$key]['url'];
    +            $menu->langs=$this->menu[$key]['langs'];
    +            $menu->position=$this->menu[$key]['position'];
    +            $menu->perms=$this->menu[$key]['perms'];
    +            $menu->target=isset($this->menu[$key]['target'])?$this->menu[$key]['target']:'';
    +            $menu->user=$this->menu[$key]['user'];
    +            $menu->enabled=isset($this->menu[$key]['enabled'])?$this->menu[$key]['enabled']:0;
    +            $menu->position=$this->menu[$key]['position'];
    +
    +            if (! $err) {
    +                $result=$menu->create($user);    // Save menu entry into table llx_menu
    +                if ($result > 0) {
    +                    $this->menu[$key]['rowid']=$result;
    +                }
    +                else
    +                {
    +                    $this->error=$menu->error;
    +                    dol_syslog(get_class($this).'::insert_menus result='.$result." ".$this->error, LOG_ERR);
    +                    $err++;
    +                    break;
    +                }
    +            }
    +        }
    +
    +        if (! $err) {
    +            $this->db->commit();
    +        }
    +        else
    +        {
    +            dol_syslog(get_class($this)."::insert_menus ".$this->error, LOG_ERR);
    +            $this->db->rollback();
    +        }
    +
    +        return $err;
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Removes menu entries
    +     *
    +     * @return int Error count (0 if OK)
    +     */
    +    function delete_menus()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $err=0;
    +
    +        //$module=strtolower($this->name);        TODO When right_class will be same than module name
    +        $module=empty($this->rights_class)?strtolower($this->name):$this->rights_class;
    +
    +        $sql = "DELETE FROM ".MAIN_DB_PREFIX."menu";
    +        $sql.= " WHERE module = '".$this->db->escape($module)."'";
    +        $sql.= " AND entity = ".$conf->entity;
    +
    +        dol_syslog(get_class($this)."::delete_menus", LOG_DEBUG);
    +        $resql=$this->db->query($sql);
    +        if (! $resql) {
    +            $this->error=$this->db->lasterror();
    +            $err++;
    +        }
    +
    +        return $err;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Creates directories
    +     *
    +     * @return int Error count (0 if OK)
    +     */
    +    function create_dirs()
    +    {
    +        // phpcs:enable
    +        global $langs, $conf;
    +
    +        $err=0;
    +
    +        if (isset($this->dirs) && is_array($this->dirs)) {
    +            foreach ($this->dirs as $key => $value)
    +            {
    +                $addtodatabase=0;
    +
    +                if (! is_array($value)) { $dir=$value;    // Default simple mode
    +                } else {
    +                    $constname = $this->const_name."_DIR_";
    +                    $dir       = $this->dirs[$key][1];
    +                    $addtodatabase = empty($this->dirs[$key][2])?'':$this->dirs[$key][2]; // Create constante in llx_const
    +                    $subname   = empty($this->dirs[$key][3])?'':strtoupper($this->dirs[$key][3]); // Add submodule name (ex: $conf->module->submodule->dir_output)
    +                    $forcename = empty($this->dirs[$key][4])?'':strtoupper($this->dirs[$key][4]); // Change the module name if different
    +
    +                    if (! empty($forcename)) { $constname = 'MAIN_MODULE_'.$forcename."_DIR_";
    +                    }
    +                    if (! empty($subname)) {   $constname = $constname.$subname."_";
    +                    }
    +
    +                    $name = $constname.strtoupper($this->dirs[$key][0]);
    +                }
    +
    +                // Define directory full path ($dir must start with "/")
    +                if (empty($conf->global->MAIN_MODULE_MULTICOMPANY) || $conf->entity == 1) { $fulldir = DOL_DATA_ROOT.$dir;
    +                } else { $fulldir = DOL_DATA_ROOT."/".$conf->entity.$dir;
    +                }
    +                // Create dir if it does not exists
    +                if (! empty($fulldir) && ! file_exists($fulldir)) {
    +                    if (dol_mkdir($fulldir, DOL_DATA_ROOT) < 0) {
    +                         $this->error = $langs->trans("ErrorCanNotCreateDir", $fulldir);
    +                         dol_syslog(get_class($this)."::_init ".$this->error, LOG_ERR);
    +                         $err++;
    +                    }
    +                }
    +
    +                // Define the constant in database if requested (not the default mode)
    +                if (! empty($addtodatabase)) {
    +                    $result = $this->insert_dirs($name, $dir);
    +                    if ($result) { $err++;
    +                    }
    +                }
    +            }
    +        }
    +
    +        return $err;
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Adds directories definitions
    +     *
    +     * @param string $name Name
    +     * @param string $dir  Directory
    +     *
    +     * @return int             Error count (0 if OK)
    +     */
    +    function insert_dirs($name,$dir)
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $err=0;
    +
    +        $sql = "SELECT count(*)";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."const";
    +        $sql.= " WHERE ".$this->db->decrypt('name')." = '".$name."'";
    +        $sql.= " AND entity = ".$conf->entity;
    +
    +        dol_syslog(get_class($this)."::insert_dirs", LOG_DEBUG);
    +        $result=$this->db->query($sql);
    +        if ($result) {
    +            $row = $this->db->fetch_row($result);
    +
    +            if ($row[0] == 0) {
    +                $sql = "INSERT INTO ".MAIN_DB_PREFIX."const (name,type,value,note,visible,entity)";
    +                $sql.= " VALUES (".$this->db->encrypt($name, 1).",'chaine',".$this->db->encrypt($dir, 1).",'Directory for module ".$this->name."','0',".$conf->entity.")";
    +
    +                dol_syslog(get_class($this)."::insert_dirs", LOG_DEBUG);
    +                $this->db->query($sql);
    +            }
    +        }
    +        else
    +        {
    +            $this->error=$this->db->lasterror();
    +            $err++;
    +        }
    +
    +        return $err;
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Removes directories
    +     *
    +     * @return int Error count (0 if OK)
    +     */
    +    function delete_dirs()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $err=0;
    +
    +        $sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    +        $sql.= " WHERE ".$this->db->decrypt('name')." LIKE '".$this->db->escape($this->const_name)."_DIR_%'";
    +        $sql.= " AND entity = ".$conf->entity;
    +
    +        dol_syslog(get_class($this)."::delete_dirs", LOG_DEBUG);
    +        if (! $this->db->query($sql)) {
    +            $this->error=$this->db->lasterror();
    +            $err++;
    +        }
    +
    +        return $err;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Adds generic parts
    +     *
    +     * @return int Error count (0 if OK)
    +     */
    +    function insert_module_parts()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $error=0;
    +
    +        if (is_array($this->module_parts) && ! empty($this->module_parts)) {
    +            foreach($this->module_parts as $key => $value)
    +            {
    +                if (is_array($value) && count($value) == 0) { continue;    // Discard empty arrays
    +                }
    +
    +                $entity=$conf->entity; // Reset the current entity
    +                $newvalue = $value;
    +
    +                // Serialize array parameters
    +                if (is_array($value)) {
    +                    // Can defined other parameters
    +                    // Example when $key='hooks', then $value is an array('data'=>array('hookcontext1','hookcontext2'), 'entity'=>X)
    +                    if (isset($value['data']) && is_array($value['data'])) {
    +                        $newvalue = json_encode($value['data']);
    +                        if (isset($value['entity'])) { $entity = $value['entity'];
    +                        }
    +                    }
    +                    else if (isset($value['data']) && !is_array($value['data'])) {
    +                        $newvalue = $value['data'];
    +                        if (isset($value['entity'])) { $entity = $value['entity'];
    +                        }
    +                    }
    +                    else    // when hook is declared with syntax 'hook'=>array('hookcontext1','hookcontext2',...)
    +                    {
    +                        $newvalue = json_encode($value);
    +                    }
    +                }
    +
    +                $sql = "INSERT INTO ".MAIN_DB_PREFIX."const (";
    +                $sql.= "name";
    +                $sql.= ", type";
    +                $sql.= ", value";
    +                $sql.= ", note";
    +                $sql.= ", visible";
    +                $sql.= ", entity";
    +                $sql.= ")";
    +                $sql.= " VALUES (";
    +                $sql.= $this->db->encrypt($this->const_name."_".strtoupper($key), 1);
    +                $sql.= ", 'chaine'";
    +                $sql.= ", ".$this->db->encrypt($newvalue, 1);
    +                $sql.= ", null";
    +                $sql.= ", '0'";
    +                $sql.= ", ".$entity;
    +                $sql.= ")";
    +
    +                dol_syslog(get_class($this)."::insert_module_parts for key=".$this->const_name."_".strtoupper($key), LOG_DEBUG);
    +
    +                $resql=$this->db->query($sql, 1);
    +                if (! $resql) {
    +                    if ($this->db->lasterrno() != 'DB_ERROR_RECORD_ALREADY_EXISTS') {
    +                         $error++;
    +                         $this->error=$this->db->lasterror();
    +                    }
    +                    else
    +                    {
    +                         dol_syslog(get_class($this)."::insert_module_parts for ".$this->const_name."_".strtoupper($key)." Record already exists.", LOG_WARNING);
    +                    }
    +                }
    +            }
    +        }
    +        return $error;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Removes generic parts
    +     *
    +     * @return int Error count (0 if OK)
    +     */
    +    function delete_module_parts()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $err=0;
    +        $entity=$conf->entity;
    +
    +        if (is_array($this->module_parts) && ! empty($this->module_parts)) {
    +            foreach($this->module_parts as $key => $value)
    +            {
    +                // If entity is defined
    +                if (is_array($value) && isset($value['entity'])) { $entity = $value['entity'];
    +                }
    +
    +                $sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
    +                $sql.= " WHERE ".$this->db->decrypt('name')." LIKE '".$this->db->escape($this->const_name)."_".strtoupper($key)."'";
    +                $sql.= " AND entity = ".$entity;
    +
    +                dol_syslog(get_class($this)."::delete_const_".$key."", LOG_DEBUG);
    +                if (! $this->db->query($sql)) {
    +                    $this->error=$this->db->lasterror();
    +                    $err++;
    +                }
    +            }
    +        }
    +        return $err;
    +    }
    +
    +    /**
    +     * Function called when module is enabled.
    +     * The init function adds tabs, constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
    +     * It also creates data directories
    +     *
    +     * @param  string $options Options when enabling module ('', 'newboxdefonly', 'noboxes')
    +     *                         'noboxes' = Do not insert boxes 'newboxdefonly' = For boxes,
    +     *                         insert def of boxes only and not boxes activation
    +     * @return int                1 if OK, 0 if KO
    +     */
    +    public function init($options = '')
    +    {
    +        return $this->_init(array(), $options);
    +    }
    +
    +    /**
    +     * Function called when module is disabled.
    +     * The remove function removes tabs, constants, boxes, permissions and menus from Dolibarr database.
    +     * Data directories are not deleted
    +     *
    +     * @param  string $options Options when enabling module ('', 'noboxes')
    +     * @return int                     1 if OK, 0 if KO
    +     */
    +    public function remove($options = '')
    +    {
    +        return $this->_remove(array(), $options);
    +    }
     }
    diff --git a/htdocs/core/modules/action/modules_action.php b/htdocs/core/modules/action/modules_action.php
    index 2971b6f59ee..323675f88f6 100644
    --- a/htdocs/core/modules/action/modules_action.php
    +++ b/htdocs/core/modules/action/modules_action.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2005	Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010	Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004     	Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -28,17 +28,22 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     abstract class ModeleAction extends CommonDocGenerator
     {
    -    var $error='';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return list of active generation modules
          *
    -	 * 	@param	DoliDB		$db					Database handler
    +     * 	@param	DoliDB		$db					Database handler
          *  @param	integer		$maxfilenamelength  Max length of value to show
          * 	@return	array							List of templates
          */
         static function liste_modeles($db,$maxfilenamelength=0)
         {
    +        // phpcs:enable
             global $conf;
     
             $type='action';
    @@ -50,6 +55,8 @@ abstract class ModeleAction extends CommonDocGenerator
             return $liste;
         }
     }
    +
    +// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     /**
      *  Create an product document on disk using template defined into PRODUCT_ADDON_PDF
      *
    @@ -64,6 +71,7 @@ abstract class ModeleAction extends CommonDocGenerator
      */
     function action_create($db, $object, $modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0)
     {
    +    // phpcs:enable
     	global $conf,$langs,$user;
     	$langs->load("action");
     
    diff --git a/htdocs/core/modules/action/rapport.pdf.php b/htdocs/core/modules/action/rapport.pdf.php
    index 504164cd431..44092df6ec9 100644
    --- a/htdocs/core/modules/action/rapport.pdf.php
    +++ b/htdocs/core/modules/action/rapport.pdf.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -35,19 +35,33 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
      */
     class CommActionRapport
     {
    -	var $db;
    -	var $description;
    -	var $date_edition;
    -	var $year;
    -	var $month;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -	var $title;
    -	var $subject;
    +	/**
    +	 * @var string description
    +	 */
    +	public $description;
     
    -	var $marge_gauche;
    -	var	$marge_droite;
    -	var	$marge_haute;
    -	var	$marge_basse;
    +	public $date_edition;
    +
    +	public $year;
    +
    +	public $month;
    +
    +	public $title;
    +
    +	public $subject;
    +
    +	public $marge_gauche;
    +
    +	public	$marge_droite;
    +
    +	public	$marge_haute;
    +
    +	public	$marge_basse;
     
     
     	/**
    @@ -59,9 +73,10 @@ class CommActionRapport
     	 */
     	function __construct($db, $month, $year)
     	{
    -		global $conf,$langs;
    -		$langs->load("commercial");
    -		$langs->load("projects");
    +		global $conf, $langs;
    +
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("commercial","projects"));
     
     		$this->db = $db;
     		$this->description = "";
    @@ -84,6 +99,7 @@ class CommActionRapport
             $this->subject=$langs->transnoentitiesnoconv("ActionsReport").' '.$this->year."-".$this->month;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *      Write the object to document file to disk
          *
    @@ -94,17 +110,15 @@ class CommActionRapport
     	 */
     	function write_file($socid = 0, $catid = 0, $outputlangs='')
     	{
    +        // phpcs:enable
     		global $user,$conf,$langs,$hookmanager;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("products");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products"));
     
             $dir = $conf->agenda->dir_temp."/";
     		$file = $dir . "actions-".$this->month."-".$this->year.".pdf";
    @@ -345,4 +359,3 @@ class CommActionRapport
     		return $y;
     	}
     }
    -
    diff --git a/htdocs/core/modules/bank/doc/pdf_ban.modules.php b/htdocs/core/modules/bank/doc/pdf_ban.modules.php
    index 73196385b8e..12aa47ce9d6 100644
    --- a/htdocs/core/modules/bank/doc/pdf_ban.modules.php
    +++ b/htdocs/core/modules/bank/doc/pdf_ban.modules.php
    @@ -35,9 +35,18 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     
     class pdf_ban extends ModeleBankAccountDoc
     {
    -	var $emetteur;	// Objet societe qui emet
    -	var $version = 'development';
    -	
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'development';
    +
     	/**
     	 *	Constructor
     	 *
    @@ -47,15 +56,13 @@ class pdf_ban extends ModeleBankAccountDoc
     	{
     		global $conf,$langs,$mysoc;
     
    -		$langs->load("main");
    -		$langs->load("bank");
    -		$langs->load("withdrawals");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("main","bank","withdrawals","companies"));
     
     		$this->db = $db;
     		$this->name = "ban";
     		$this->description = $langs->trans("DocumentModelBan").' (Volunteer wanted to finish)';
    -		
    +
     		// Dimension page pour format A4
     		$this->type = 'pdf';
     		$formatarray=pdf_getFormat();
    @@ -85,6 +92,7 @@ class pdf_ban extends ModeleBankAccountDoc
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Fonction generant le projet sur le disque
     	 *
    @@ -94,16 +102,15 @@ class pdf_ban extends ModeleBankAccountDoc
     	 */
     	function write_file($object,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf, $hookmanager, $langs, $user;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("projects");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "projects"));
     
     		if ($conf->bank->dir_output)
     		{
    @@ -121,7 +128,7 @@ class pdf_ban extends ModeleBankAccountDoc
     		        $dir = $conf->bank->dir_output . "/" . $objectref;
     		        $file = $dir . "/" . $objectref . ".pdf";
     		    }
    -		    
    +
     			if (! file_exists($dir))
     			{
     				if (dol_mkdir($dir) < 0)
    @@ -211,9 +218,9 @@ class pdf_ban extends ModeleBankAccountDoc
     
     				$pdf->SetXY($this->marge_gauche, $curY);
     				$pdf->MultiCell(200, 3, $outputlangs->trans("BAN").' : '.$object->account_number, 0, 'L');
    -				
    -				
    -				
    +
    +
    +
     				// Show square
     				if ($pagenb == 1)
     				{
    @@ -251,7 +258,7 @@ class pdf_ban extends ModeleBankAccountDoc
     				@chmod($file, octdec($conf->global->MAIN_UMASK));
     
     				$this->result = array('fullpath'=>$file);
    -				
    +
     				return 1;   // Pas d'erreur
     			}
     			else
    @@ -283,8 +290,6 @@ class pdf_ban extends ModeleBankAccountDoc
     		global $conf,$mysoc;
     
             $default_font_size = pdf_getPDFFontSize($outputlangs);
    -
    -
     	}
     
     	/**
    @@ -371,7 +376,6 @@ class pdf_ban extends ModeleBankAccountDoc
     	    	}
     	    }
             */
    -
     	}
     
     	/**
    @@ -389,6 +393,4 @@ class pdf_ban extends ModeleBankAccountDoc
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		//return pdf_pagefoot($pdf,$outputlangs,'BANK_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php b/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php
    index 5b865d5af0c..6fc6594b1e3 100644
    --- a/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php
    +++ b/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php
    @@ -35,9 +35,18 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     
     class pdf_sepamandate extends ModeleBankAccountDoc
     {
    -	var $emetteur;	// Objet societe qui emet
    -	var $version = 'dolibarr';
    -	
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
     	/**
     	 *	Constructor
     	 *
    @@ -45,8 +54,8 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    -		
    +		global $conf, $langs, $mysoc;
    +
     		// Translations
     		$langs->loadLangs(array("main", "bank", "withdrawals", "companies"));
     
    @@ -83,8 +92,9 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     	}
     
     
    -	/**
    -	 *	Fonction generant le projet sur le disque
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +	 *  Fonction generant le projet sur le disque
     	 *
     	 *	@param	    Project		$object   		    Object project a generer
     	 *	@param	    Translate	$outputlangs	    Lang output object
    @@ -97,15 +107,16 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     	 */
     	function write_file($object, $outputlangs, $srctemplatepath='', $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
     	{
    +        // phpcs:enable
     		global $conf, $hookmanager, $langs, $user, $mysoc;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
    -		
    -		// Translations
    +
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "dict", "withdrawals", "companies", "projects", "bills"));
    -		
    +
     		if (! empty($conf->bank->dir_output))
     		{
     			//$nblignes = count($object->lines);  // This is set later with array of tasks
    @@ -124,7 +135,7 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     		        else $dir = $conf->bank->dir_output . "/" . $objectref;
     		        $file = $dir . "/" . $langs->transnoentitiesnoconv("SepaMandateShort").' '.$objectref . "-".dol_sanitizeFileName($object->rum).".pdf";
     		    }
    -		    
    +
     			if (! file_exists($dir))
     			{
     				if (dol_mkdir($dir) < 0)
    @@ -213,55 +224,55 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     				$nexY = $tab_top + 7;
     
     				$posY = $curY;
    -				
    +
     				$pdf->SetFont('','', $default_font_size);
    -				
    +
     				$pdf->line($this->marge_gauche, $posY, $this->page_largeur - $this->marge_droite, $posY);
     				$posY+=2;
    -				
    +
     				$pdf->SetXY($this->marge_gauche, $posY);
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $outputlangs->transnoentitiesnoconv("RUMLong").' ('.$outputlangs->transnoentitiesnoconv("RUM").')'.' : '.$object->rum, 0, 'L');
    -				
    +
     				$posY=$pdf->GetY();
     				$posY+=2;
     				$pdf->SetXY($this->marge_gauche, $posY);
     				$ics='';
     				if (! empty($conf->global->PRELEVEMENT_ICS)) $ics=$conf->global->PRELEVEMENT_ICS;
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $outputlangs->transnoentitiesnoconv("CreditorIdentifier").' ('.$outputlangs->transnoentitiesnoconv("ICS").')'.' : '.$ics, 0, 'L');
    -				
    +
     				$posY=$pdf->GetY();
     				$posY+=1;
     				$pdf->SetXY($this->marge_gauche, $posY);
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $outputlangs->transnoentitiesnoconv("CreditorName").' : '.$mysoc->name, 0, 'L');
    -				
    +
     				$posY=$pdf->GetY();
     				$posY+=1;
     				$pdf->SetXY($this->marge_gauche, $posY);
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $outputlangs->transnoentitiesnoconv("Address").' : ', 0, 'L');
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $mysoc->getFullAddress(), 0, 'L');
    -				
    +
     				$posY=$pdf->GetY();
     				$posY+=3;
    -				
    +
     				$pdf->line($this->marge_gauche, $posY, $this->page_largeur - $this->marge_droite, $posY);
    -				
    +
     				$pdf->SetFont('','', $default_font_size - 1);
    -				
    +
     				$posY+=8;
     				$pdf->SetXY($this->marge_gauche, $posY);
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 8, $outputlangs->transnoentitiesnoconv("SEPALegalText", $mysoc->name, $mysoc->name), 0, 'L');
    -				
    +
     				// Your data form
     				$posY=$pdf->GetY();
     				$posY+=8;
     				$pdf->line($this->marge_gauche, $posY, $this->page_largeur - $this->marge_droite, $posY);
     				$posY+=2;
    -				
    +
     				$pdf->SetFont('','', $default_font_size);
    -				
    +
     				$pdf->SetXY($this->marge_gauche, $posY);
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $outputlangs->transnoentitiesnoconv("SEPAFillForm"), 0, 'C');
    -				
    +
     				$thirdparty=new Societe($this->db);
     				if ($object->socid > 0) $thirdparty->fetch($object->socid);
     
    @@ -276,7 +287,7 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $outputlangs->transnoentitiesnoconv("SEPAFormYourName").' * : ', 0, 'L');
     				$pdf->SetXY(80, $posY);
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $sepaname, 0, 'L');
    -				
    +
     			    $address = '______________________________________________';
     				if ($thirdparty->id > 0)
     				{
    @@ -294,7 +305,7 @@ class pdf_sepamandate extends ModeleBankAccountDoc
         				$pdf->SetXY(80, $posY);
         				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $address, 0, 'L');
     				}
    -				
    +
     				$ban = '__________________________________________________';
     				if (! empty($object->iban)) $ban = $object->iban;
     				$posY=$pdf->GetY();
    @@ -303,7 +314,7 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $outputlangs->transnoentitiesnoconv("SEPAFormYourBAN").' * : ', 0, 'L');
     				$pdf->SetXY(80, $posY);
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $ban, 0, 'L');
    -				
    +
     				$bic = '__________________________________________________';
     				if (! empty($object->bic)) $bic = $object->bic;
     				$posY=$pdf->GetY();
    @@ -312,8 +323,8 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $outputlangs->transnoentitiesnoconv("SEPAFormYourBIC").' * : ', 0, 'L');
     				$pdf->SetXY(80, $posY);
     				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $bic, 0, 'L');
    -				
    -				
    +
    +
     				$posY=$pdf->GetY();
     				$posY+=1;
     				$pdf->SetXY($this->marge_gauche, $posY);
    @@ -339,13 +350,13 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     				    $txt = '('.$langs->transnoentitiesnoconv("PleaseCheckOne").')';
         				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - $this->marge_droite, 3, $txt, 0, 'L');
     				}
    -				
    +
     				$posY=$pdf->GetY();
     				$posY+=3;
     				$pdf->line($this->marge_gauche, $posY, $this->page_largeur - $this->marge_droite, $posY);
     				$posY+=3;
    -				
    -				
    +
    +
     				// Show square
     				if ($pagenb == 1)
     				{
    @@ -363,10 +374,10 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     				var_dump($heightforfreetext);
     				var_dump($heightforfooter);
     				var_dump($bottomlasttab);*/
    -				
    +
     				// Affiche zone infos
     				$posy=$this->_tableau_info($pdf, $object, $bottomlasttab, $outputlangs);
    -				
    +
     				/*
     				 * Pied de page
     				 */
    @@ -392,7 +403,7 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     				@chmod($file, octdec($conf->global->MAIN_UMASK));
     
     				$this->result = array('fullpath'=>$file);
    -				
    +
     				return 1;   // Pas d'erreur
     			}
     			else
    @@ -424,10 +435,10 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     		global $conf,$mysoc;
     
             $default_font_size = pdf_getPDFFontSize($outputlangs);
    -
     	}
     
    -	
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Show miscellaneous information (payment mode, payment term, ...)
     	 *
    @@ -439,30 +450,32 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     	 */
     	function _tableau_info(&$pdf, $object, $posy, $outputlangs)
     	{
    -	    global $conf, $mysoc;
    -	
    +        // phpcs:enable
    +        global $conf, $mysoc;
    +
     	    $default_font_size = pdf_getPDFFontSize($outputlangs);
    -	
    +
     	    $diffsizetitle=(empty($conf->global->PDF_DIFFSIZE_TITLE)?1:$conf->global->PDF_DIFFSIZE_TITLE);
     
     	    $posy+=$this->_signature_area($pdf, $object, $posy, $outputlangs);
    -   
    +
     	    $pdf->SetXY($this->marge_gauche, $posy);
     	    $pdf->SetFont('','', $default_font_size);
     	    $pdf->MultiCell(100, 3, $outputlangs->transnoentitiesnoconv("PleaseReturnMandate", $mysoc->email).':', 0, 'L', 0);
     	    $posy=$pdf->GetY()+2;
    -	     
    +
     	    $pdf->SetXY($this->marge_gauche, $posy);
     	    $pdf->SetFont('','', $default_font_size - $diffsizetitle);
     	    $pdf->MultiCell(100, 6, $mysoc->name, 0, 'L', 0);
     		$pdf->MultiCell(100, 6, $outputlangs->convToOutputCharset($mysoc->getFullAddress()), 0, 'L', 0);
     		$posy=$pdf->GetY()+2;
    -		
    +
     	    return $posy;
     	}
    -	
    -	
    -	
    +
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show area for the customer to sign
     	 *
    @@ -474,19 +487,20 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     	 */
     	function _signature_area(&$pdf, $object, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     	    $default_font_size = pdf_getPDFFontSize($outputlangs);
     	    $tab_top = $posy + 4;
     	    $tab_hl = 4;
    -	
    +
     	    $posx = $this->marge_gauche;
     	    $pdf->SetXY($posx, $tab_top + 0);
    -	    
    +
     	    $pdf->SetFont('','', $default_font_size - 2);
    -	    
    +
     	    $pdf->MultiCell(100, 3, $outputlangs->transnoentitiesnoconv("DateOfSignature"), 0, 'L', 0);
     	    $pdf->MultiCell(100, 3, ' ');
     	    $pdf->MultiCell(100, 3, '______________________', 0, 'L', 0);
    -	    
    +
     	    $posx = 120;
     	    $largcol = ($this->page_largeur - $this->marge_droite - $posx);
     	    $useborder=0;
    @@ -495,14 +509,14 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     	    $pdf->SetFillColor(255,255,255);
     	    $pdf->SetXY($posx, $tab_top + 0);
     	    $pdf->MultiCell($largcol, $tab_hl, $outputlangs->transnoentitiesnoconv("Signature"), 0, 'L', 1);
    -	
    +
     	    $pdf->SetXY($posx, $tab_top + $tab_hl);
     	    $pdf->MultiCell($largcol, $tab_hl*3, '', 1, 'R');
    -	
    +
     	    return ($tab_hl*7);
     	}
    -	
    -	
    +
    +
     	/**
     	 *  Show top header of page.
     	 *
    @@ -593,7 +607,6 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     	    	}
     	    }
             */
    -
     	}
     
     	/**
    @@ -611,6 +624,4 @@ class pdf_sepamandate extends ModeleBankAccountDoc
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'PAYMENTORDER_FREE_TEXT',null,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/bank/modules_bank.php b/htdocs/core/modules/bank/modules_bank.php
    index b0a121d7dc5..fe43f9cee15 100644
    --- a/htdocs/core/modules/bank/modules_bank.php
    +++ b/htdocs/core/modules/bank/modules_bank.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2014	Regis Houssin	<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2014	Regis Houssin	<regis.houssin@inodbox.com>
      * Copyright (C) 2014       Marcos García   <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -31,27 +31,31 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     abstract class ModeleBankAccountDoc extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation modules
     	 *
          *  @param	DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of templates
    -	 */
    -	static function liste_modeles($db,$maxfilenamelength=0)
    +     */
    +	static function liste_modeles($db, $maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
    -		$type='bankaccount';
    -		$liste=array();
    +		$type = 'bankaccount';
    +		$list = array();
     
     		include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    -		$liste=getListOfModels($db,$type,$maxfilenamelength);
    +		$list = getListOfModels($db, $type, $maxfilenamelength);
     
    -		return $liste;
    +		return $list;
     	}
     }
    -
    diff --git a/htdocs/core/modules/barcode/doc/phpbarcode.modules.php b/htdocs/core/modules/barcode/doc/phpbarcode.modules.php
    index d04c6a70c04..6d9e492d666 100644
    --- a/htdocs/core/modules/barcode/doc/phpbarcode.modules.php
    +++ b/htdocs/core/modules/barcode/doc/phpbarcode.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005      Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -32,8 +32,16 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/barcode.lib.php';    // This is to inc
      */
     class modPhpbarcode extends ModeleBarCode
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error='';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
     	/**
    @@ -109,7 +117,7 @@ class modPhpbarcode extends ModeleBarCode
     	 *	@param  string	 	$encoding		  Mode of encoding
     	 *	@param  string	 	$readable		  Code can be read
     	 *	@param	integer		$scale			  Scale
    -	 *  @param  integer     $nooutputiferror  No output if error 
    +	 *  @param  integer     $nooutputiferror  No output if error
     	 *	@return	int							  <0 if KO, >0 if OK
          */
     	function buildBarCode($code,$encoding,$readable='Y',$scale=1,$nooutputiferror=0)
    @@ -150,7 +158,7 @@ class modPhpbarcode extends ModeleBarCode
     	 *	@param	string   	$encoding		  Mode of encoding
     	 *	@param  string	 	$readable		  Code can be read
     	 *	@param	integer		$scale			  Scale
    -	 *  @param  integer     $nooutputiferror  No output if error 
    +	 *  @param  integer     $nooutputiferror  No output if error
     	 *	@return	int							  <0 if KO, >0 if OK
     	 */
     	function writeBarCode($code,$encoding,$readable='Y',$scale=1,$nooutputiferror=0)
    @@ -167,6 +175,4 @@ class modPhpbarcode extends ModeleBarCode
     
     		return $result;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php b/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php
    index 5b9422b15e7..ed6a7635164 100644
    --- a/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php
    +++ b/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2009 Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005	   Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005	   Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2015	   Francis Appels		<francis.appels@yahoo.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -31,10 +31,19 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/barcode.lib.php';	   // This is to inc
      */
     class modTcpdfbarcode extends ModeleBarCode
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error='';
    -	var $is2d = false;
    -	
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	public $is2d = false;
    +
     	/**
     	 *	Return description of numbering model
     	 *
    @@ -55,8 +64,8 @@ class modTcpdfbarcode extends ModeleBarCode
     	function isEnabled()
     	{
     		return true;
    -	}	 
    -	
    +	}
    +
     	/**
     	 *	Test si les numeros deja en vigueur dans la base ne provoquent pas de
     	 *	de conflits qui empechera cette numerotation de fonctionner.
    @@ -66,10 +75,10 @@ class modTcpdfbarcode extends ModeleBarCode
     	function canBeActivated()
     	{
     		global $langs;
    -	
    +
     		return true;
     	}
    -	
    +
     	/**
     	 *	Return true if encoding is supported
     	 *
    @@ -83,7 +92,7 @@ class modTcpdfbarcode extends ModeleBarCode
     			return 0;
     		} else {
     			return 1;
    -		}		
    +		}
     	}
     
     	/**
    @@ -99,17 +108,17 @@ class modTcpdfbarcode extends ModeleBarCode
     	function buildBarCode($code,$encoding,$readable='Y',$scale=1,$nooutputiferror=0)
     	{
     		global $_GET;
    -		
    +
     		$tcpdfEncoding = $this->getTcpdfEncodingType($encoding);
     		if (empty($tcpdfEncoding)) return -1;
    -				
    +
     		$color = array(0,0,0);
     
     		$_GET["code"]=$code;
     		$_GET["type"]=$encoding;
     		$_GET["height"]=$height;
     		$_GET["readable"]=$readable;
    -		
    +
     		if ($code) {
     			// Load the tcpdf barcode class
     			if ($this->is2d) {
    @@ -122,15 +131,15 @@ class modTcpdfbarcode extends ModeleBarCode
     				$width = 1;
     				require_once TCPDF_PATH.'tcpdf_barcodes_1d.php';
     				$barcodeobj = new TCPDFBarcode($code, $tcpdfEncoding);
    -			}		
    -			
    +			}
    +
     			dol_syslog("buildBarCode::TCPDF.getBarcodePNG");
     			$barcodeobj->getBarcodePNG($width, $height, $color);
    -			
    +
     			return 1;
     		} else {
     			return -2;
    -		}		
    +		}
     	}
     
     	/**
    @@ -172,8 +181,8 @@ class modTcpdfbarcode extends ModeleBarCode
     				$width = 1;
     				require_once TCPDF_PATH.'tcpdf_barcodes_1d.php';
     				$barcodeobj = new TCPDFBarcode($code, $tcpdfEncoding);
    -			}		
    -			
    +			}
    +
     			dol_syslog("writeBarCode::TCPDF.getBarcodePngData");
     			if ($imageData = $barcodeobj->getBarcodePngData($width, $height, $color)) {
     				if (function_exists('imagecreate')) {
    @@ -186,16 +195,16 @@ class modTcpdfbarcode extends ModeleBarCode
     				}
     			} else {
     				return -4;
    -			}			
    +			}
     		} else {
     			return -2;
     		}
     	}
    -	
    +
     	/**
     	 *	get available output_modes for tcpdf class wth its translated description
     	 *
    -	 * @param	string $dolEncodingType dolibarr barcode encoding type	
    +	 * @param	string $dolEncodingType dolibarr barcode encoding type
     	 * @return	string tcpdf encoding type
     	 */
     	public function getTcpdfEncodingType($dolEncodingType)
    @@ -232,7 +241,7 @@ class modTcpdfbarcode extends ModeleBarCode
     						'PHARMA' => 'PHARMA',
     						'PHARMA2T' => 'PHARMA2T'
     		);
    -		
    +
     		$tcpdf2dEncodingTypes = array(
     						'DATAMATRIX' => 'DATAMATRIX',
     						'PDF417' => 'PDF417',
    @@ -240,9 +249,9 @@ class modTcpdfbarcode extends ModeleBarCode
     						'QRCODE,L' => 'QRCODE,L',
     						'QRCODE,M' => 'QRCODE,M',
     						'QRCODE,Q' => 'QRCODE,Q',
    -						'QRCODE,H' => 'QRCODE,H'						
    +						'QRCODE,H' => 'QRCODE,H'
     		);
    -		
    +
     		if (array_key_exists($dolEncodingType, $tcpdf1dEncodingTypes)) {
     			$this->is2d = false;
     			return $tcpdf1dEncodingTypes[$dolEncodingType];
    @@ -251,6 +260,6 @@ class modTcpdfbarcode extends ModeleBarCode
     			return $tcpdf2dEncodingTypes[$dolEncodingType];
     		} else {
     			return '';
    -		}		 
    +		}
     	}
     }
    diff --git a/htdocs/core/modules/barcode/mod_barcode_product_standard.php b/htdocs/core/modules/barcode/mod_barcode_product_standard.php
    index 3e233eb1843..97121eebcfd 100644
    --- a/htdocs/core/modules/barcode/mod_barcode_product_standard.php
    +++ b/htdocs/core/modules/barcode/mod_barcode_product_standard.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2006-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent	    <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -33,17 +33,29 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/barcode/modules_barcode.class.php'
      */
     class mod_barcode_product_standard extends ModeleNumRefBarCode
     {
    -	var $name='Standard';				// Model Name
    -	var $code_modifiable;				// Editable code
    -	var $code_modifiable_invalide;		// Modified code if it is invalid
    -	var $code_modifiable_null;			// Modified code if it is null
    -	var $code_null;						// Optional code
    -	var $version='dolibarr';    		// 'development', 'experimental', 'dolibarr'
    -	var $code_auto;                     // Automatic Numbering
    +	public $name='Standard';				// Model Name
     
    -	var $searchcode; // Search string
    -	var $numbitcounter; // Number of digits the counter
    -	var $prefixIsRequired; // The prefix field of third party must be filled when using {pre}
    +	public $code_modifiable;				// Editable code
    +
    +	public $code_modifiable_invalide;		// Modified code if it is invalid
    +
    +	public $code_modifiable_null;			// Modified code if it is null
    +
    +	public $code_null;						// Optional code
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';    		// 'development', 'experimental', 'dolibarr'
    +
    +	public $code_auto;                     // Automatic Numbering
    +
    +	public $searchcode; // Search string
    +
    +	public $numbitcounter; // Number of digits the counter
    +
    +	public $prefixIsRequired; // The prefix field of third party must be filled when using {pre}
     
     
     	/**
    @@ -223,16 +235,18 @@ class mod_barcode_product_standard extends ModeleNumRefBarCode
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 *		Return if a code is used (by other element)
    +	 *	Return if a code is used (by other element)
     	 *
    -	 *		@param	DoliDB		$db			Handler acces base
    -	 *		@param	string		$code		Code to check
    -	 *		@param	Product		$product	Objet product
    -	 *		@return	int						0 if available, <0 if KO
    +	 *	@param	DoliDB		$db			Handler acces base
    +	 *	@param	string		$code		Code to check
    +	 *	@param	Product		$product	Objet product
    +	 *	@return	int						0 if available, <0 if KO
     	 */
     	function verif_dispo($db, $code, $product)
     	{
    +        // phpcs:enable
     		$sql = "SELECT barcode FROM ".MAIN_DB_PREFIX."product";
     		$sql.= " WHERE barcode = '".$code."'";
     		if ($product->id > 0) $sql.= " AND rowid <> ".$product->id;
    @@ -253,9 +267,9 @@ class mod_barcode_product_standard extends ModeleNumRefBarCode
     		{
     			return -2;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return if a barcode value match syntax
     	 *
    @@ -265,6 +279,7 @@ class mod_barcode_product_standard extends ModeleNumRefBarCode
     	 */
     	function verif_syntax($codefortest, $typefortest)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$result = 0;
    @@ -300,6 +315,4 @@ class mod_barcode_product_standard extends ModeleNumRefBarCode
     
     		return $result;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/barcode/modules_barcode.class.php b/htdocs/core/modules/barcode/modules_barcode.class.php
    index 4720ffb1341..44d7eccbb07 100644
    --- a/htdocs/core/modules/barcode/modules_barcode.class.php
    +++ b/htdocs/core/modules/barcode/modules_barcode.class.php
    @@ -29,7 +29,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php';
      */
     abstract class ModeleBarCode
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
     	/**
    @@ -41,7 +44,6 @@ abstract class ModeleBarCode
     	{
     		return true;
     	}
    -
     }
     
     
    @@ -50,7 +52,10 @@ abstract class ModeleBarCode
      */
     abstract class ModeleNumRefBarCode
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
         /**     Return default description of numbering model
          *
    @@ -171,6 +176,5 @@ abstract class ModeleNumRefBarCode
     
             return $s;
         }
    -
     }
     
    diff --git a/htdocs/core/modules/cheque/doc/pdf_blochet.class.php b/htdocs/core/modules/cheque/doc/pdf_blochet.class.php
    index 52d8eff1994..32d35edb70a 100644
    --- a/htdocs/core/modules/cheque/doc/pdf_blochet.class.php
    +++ b/htdocs/core/modules/cheque/doc/pdf_blochet.class.php
    @@ -34,7 +34,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/cheque/modules_chequereceipts.php'
      */
     class BordereauChequeBlochet extends ModeleChequeReceipts
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
     	/**
     	 *	Constructor
    @@ -45,8 +49,8 @@ class BordereauChequeBlochet extends ModeleChequeReceipts
     	{
     		global $conf,$langs,$mysoc;
     
    -		$langs->load("main");
    -		$langs->load("bills");
    +		// Load traductions files requiredby by page
    +		$langs->loadLangs(array("main", "bills"));
     
     		$this->db = $db;
     		$this->name = "blochet";
    @@ -74,10 +78,11 @@ class BordereauChequeBlochet extends ModeleChequeReceipts
     		$this->tab_height = 200;	//$this->line_height * $this->line_per_page;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Fonction to generate document on disk
     	 *
    -	 *	@param	RemiseCheque	$object			Object RemiseCheque			
    +	 *	@param	RemiseCheque	$object			Object RemiseCheque
     	 *	@param	string			$_dir			Directory
     	 *	@param	string			$number			Number
     	 *	@param	Translate		$outputlangs	Lang output object
    @@ -85,6 +90,7 @@ class BordereauChequeBlochet extends ModeleChequeReceipts
     	 */
     	function write_file($object, $_dir, $number, $outputlangs)
     	{
    +        // phpcs:enable
     		global $user,$conf,$langs,$hookmanager;
     
             if (! is_object($outputlangs)) $outputlangs=$langs;
    @@ -92,11 +98,8 @@ class BordereauChequeBlochet extends ModeleChequeReceipts
             $sav_charset_output=$outputlangs->charset_output;
             if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("products");
    -        $outputlangs->load("compta");
    +        // Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "companies", "bills", "products", "compta"));
     
     		$dir = $_dir . "/".get_exdir($number,0,1,0,$object,'cheque').$number;
     
    @@ -195,12 +198,13 @@ class BordereauChequeBlochet extends ModeleChequeReceipts
     			@chmod($file, octdec($conf->global->MAIN_UMASK));
     
     		$this->result = array('fullpath'=>$file);
    -		
    +
             $outputlangs->charset_output=$sav_charset_output;
     	    return 1;   // Pas d'erreur
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Generate Header
     	 *
    @@ -212,11 +216,12 @@ class BordereauChequeBlochet extends ModeleChequeReceipts
     	 */
     	function Header(&$pdf, $page, $pages, $outputlangs)
     	{
    +        // phpcs:enable
     		global $langs;
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
    -		$outputlangs->load("compta");
    -		$outputlangs->load("banks");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("compta", "banks"));
     
     		$title = $outputlangs->transnoentities("CheckReceipt");
     		$pdf->SetFont('','B', $default_font_size);
    @@ -307,6 +312,7 @@ class BordereauChequeBlochet extends ModeleChequeReceipts
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Output array
     	 *
    @@ -318,6 +324,7 @@ class BordereauChequeBlochet extends ModeleChequeReceipts
     	 */
     	function Body(&$pdf, $pagenb, $pages, $outputlangs)
     	{
    +        // phpcs:enable
     		// x=10 - Num
     		// x=30 - Banque
     		// x=100 - Emetteur
    @@ -388,8 +395,7 @@ class BordereauChequeBlochet extends ModeleChequeReceipts
     		{
     		    $newfreetext=make_substitutions($conf->global->$paramfreetext,$substitutionarray);
     		}
    -		
    +
     		return pdf_pagefoot($pdf,$outputlangs,$newfreetext,$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
     }
    -
    diff --git a/htdocs/core/modules/cheque/mod_chequereceipt_mint.php b/htdocs/core/modules/cheque/mod_chequereceipt_mint.php
    index 680357ce9bb..ba617787cbe 100644
    --- a/htdocs/core/modules/cheque/mod_chequereceipt_mint.php
    +++ b/htdocs/core/modules/cheque/mod_chequereceipt_mint.php
    @@ -29,10 +29,20 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/cheque/modules_chequereceipts.php
      */
     class mod_chequereceipt_mint extends ModeleNumRefChequeReceipts
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $prefix='CHK';
    -	var $error='';
    -	var $name='Mint';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	public $prefix='CHK';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	public $name='Mint';
     
     
         /**
    @@ -135,6 +145,7 @@ class mod_chequereceipt_mint extends ModeleNumRefChequeReceipts
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return next free value
     	 *
    @@ -144,7 +155,7 @@ class mod_chequereceipt_mint extends ModeleNumRefChequeReceipts
     	 */
     	function chequereceipt_get_num($objsoc,$objforref)
     	{
    +        // phpcs:enable
     		return $this->getNextValue($objsoc,$objforref);
     	}
    -
     }
    diff --git a/htdocs/core/modules/cheque/mod_chequereceipt_thyme.php b/htdocs/core/modules/cheque/mod_chequereceipt_thyme.php
    index 69ee2ff2b73..6e211fb4ace 100644
    --- a/htdocs/core/modules/cheque/mod_chequereceipt_thyme.php
    +++ b/htdocs/core/modules/cheque/mod_chequereceipt_thyme.php
    @@ -30,9 +30,18 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/cheque/modules_chequereceipts.php
      */
     class mod_chequereceipt_thyme extends ModeleNumRefChequeReceipts
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $name = 'Thyme';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +	 * @var string Error message
    +	 */
    +	public $error = '';
    +
    +	public $name = 'Thyme';
     
     
         /**
    @@ -42,7 +51,7 @@ class mod_chequereceipt_thyme extends ModeleNumRefChequeReceipts
          */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
     		$langs->load("bills");
     
    @@ -124,6 +133,7 @@ class mod_chequereceipt_thyme extends ModeleNumRefChequeReceipts
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return next free value
     	 *
    @@ -133,8 +143,7 @@ class mod_chequereceipt_thyme extends ModeleNumRefChequeReceipts
          */
         function chequereceipt_get_num($objsoc,$objforref)
         {
    +        // phpcs:enable
             return $this->getNextValue($objsoc,$objforref);
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/cheque/modules_chequereceipts.php b/htdocs/core/modules/cheque/modules_chequereceipts.php
    index bbf20761f5f..5a7920ce4f1 100644
    --- a/htdocs/core/modules/cheque/modules_chequereceipts.php
    +++ b/htdocs/core/modules/cheque/modules_chequereceipts.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016      Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -36,7 +36,10 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';   // Requ
      */
     abstract class ModeleNumRefChequeReceipts
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 *	Return if a module can be used or not
    @@ -115,12 +118,16 @@ abstract class ModeleNumRefChequeReceipts
     
     /**
      *	\class      ModeleChequeReceipts
    - *	\brief      Classe mere des modeles de 
    + *	\brief      Classe mere des modeles de
      */
     abstract class ModeleChequeReceipts extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation modules
     	 *
    @@ -130,6 +137,7 @@ abstract class ModeleChequeReceipts extends CommonDocGenerator
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='chequereceipt';
    @@ -201,7 +209,6 @@ function chequereceipt_pdf_create($db, $id, $message, $modele, $outputlangs)
     			dol_print_error($db,"chequereceipt_pdf_create Error: ".$obj->error);
     			return -1;
     		}
    -
     	}
     	else
     	{
    @@ -209,4 +216,3 @@ function chequereceipt_pdf_create($db, $id, $message, $modele, $outputlangs)
     		return -1;
     	}
     }
    -
    diff --git a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php
    index 91c243f12d8..bd5c870e0ba 100644
    --- a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php
    +++ b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php
    @@ -3,21 +3,23 @@
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2014		Marcos García		<marcosgdf@gmail.com>
      * Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
    -*
    -* 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
    -* the Free Software Foundation; either version 3 of the License, or
    -* (at your option) any later version.
    -*
    -* This program is distributed in the hope that it will be useful,
    -* but WITHOUT ANY WARRANTY; without even the implied warranty of
    -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    -* GNU General Public License for more details.
    -*
    -* You should have received a copy of the GNU General Public License
    -* along with this program. If not, see <http://www.gnu.org/licenses/>.
    -* or see http://www.gnu.org/
    -*/
    + * Copyright (C) 2018       Philippe Grand      <philippe.grand@atoo-net.com>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
     
     /**
      *	\file       htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php
    @@ -38,10 +40,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
      */
     class doc_generic_order_odt extends ModelePDFCommandes
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +   * @var array Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +   */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -51,10 +66,10 @@ class doc_generic_order_odt extends ModelePDFCommandes
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT templates";
    @@ -98,8 +113,8 @@ class doc_generic_order_odt extends ModelePDFCommandes
     	{
     		global $conf,$langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("errors","companies"));
     
     		$form = new Form($this->db);
     
    @@ -177,6 +192,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -190,6 +206,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$hookmanager;
     
     		if (empty($srctemplatepath))
    @@ -211,10 +228,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills"));
     
     		if ($conf->commande->dir_output)
     		{
    @@ -338,6 +352,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
     				catch(Exception $e)
     				{
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_INFO);
     					return -1;
     				}
     				// After construction $odfHandler->contentXml contains content and
    @@ -353,6 +368,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
     				}
     				catch(OdfException $e)
     				{
    +                    dol_syslog($e->getMessage(), LOG_INFO);
     				}
     
     				// Define substitution array
    @@ -389,6 +405,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
     					}
     					catch(OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     				// Replace tags of lines
    @@ -421,9 +438,11 @@ class doc_generic_order_odt extends ModelePDFCommandes
     								}
     								catch(OdfException $e)
     								{
    +                                    dol_syslog($e->getMessage(), LOG_INFO);
     								}
     								catch(SegmentException $e)
     								{
    +                                    dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlines->merge();
    @@ -447,6 +466,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
     					}
     					catch(OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -460,15 +480,17 @@ class doc_generic_order_odt extends ModelePDFCommandes
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
     					}catch (Exception $e){
    -						$this->error=$e->getMessage();
    +                        $this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
     				else {
     					try {
     					$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    -						$this->error=$e->getMessage();
    +					} catch (Exception $e) {
    +                        $this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
    @@ -494,6 +516,4 @@ class doc_generic_order_odt extends ModelePDFCommandes
     
     		return -1;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
    index 6f8eea865c6..7009773e582 100644
    --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
    +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
    @@ -1,7 +1,7 @@
     <?php
    -/* Copyright (C) 2004-2014	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    - * Copyright (C) 2008		Raphael Bertrand	<raphael.bertrand@resultic.fr>
    +/* Copyright (C) 2004-2014  Laurent Destailleur <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012  Regis Houssin		<regis.houssin@inodbox.com>
    + * Copyright (C) 2008       Raphael Bertrand	<raphael.bertrand@resultic.fr>
      * Copyright (C) 2010-2013	Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2012      	Christophe Battarel <christophe.battarel@altairis.fr>
      * Copyright (C) 2012       Cedric Salvador     <csalvador@gpcsolutions.fr>
    @@ -27,7 +27,7 @@
     /**
      *	\file       htdocs/core/modules/commande/doc/pdf_einstein.modules.php
      *	\ingroup    commande
    - *	\brief      Fichier de la classe permettant de generer les commandes au modele Einstein
    + *	\brief      File of Class to generate PDF orders with template Einstein
      */
     
     require_once DOL_DOCUMENT_ROOT.'/core/modules/commande/modules_commande.php';
    @@ -38,7 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
     
     
     /**
    - *	Classe to generate PDF orders with template Einstein
    + *	Class to generate PDF orders with template Einstein
      */
     class pdf_einstein extends ModelePDFCommandes
     {
    @@ -69,9 +69,9 @@ class pdf_einstein extends ModelePDFCommandes
     
     	/**
          * @var array() Minimum version of PHP required by module.
    -	 * e.g.: PHP ≥ 5.3 = array(5, 3)
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
          */
    -	public $phpmin = array(5, 2);
    +	public $phpmin = array(5, 4);
     
     	/**
          * Dolibarr version of the loaded document
    @@ -79,15 +79,46 @@ class pdf_einstein extends ModelePDFCommandes
          */
     	public $version = 'dolibarr';
     
    +	/**
    +     * @var int page_largeur
    +     */
         public $page_largeur;
    +
    +    /**
    +     * @var int page_hauteur
    +     */
         public $page_hauteur;
    +
    +    /**
    +     * @var array format
    +     */
         public $format;
    +
    +    /**
    +     * @var int marge_gauche
    +     */
     	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
     	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
     	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
     	public $marge_basse;
     
    -    public $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +    public $emetteur;
     
     
     	/**
    @@ -118,13 +149,13 @@ class pdf_einstein extends ModelePDFCommandes
     		$this->marge_haute =isset($conf->global->MAIN_PDF_MARGIN_TOP)?$conf->global->MAIN_PDF_MARGIN_TOP:10;
     		$this->marge_basse =isset($conf->global->MAIN_PDF_MARGIN_BOTTOM)?$conf->global->MAIN_PDF_MARGIN_BOTTOM:10;
     
    -		$this->option_logo = 1;                    // Affiche logo
    -		$this->option_tva = 1;                     // Gere option tva FACTURE_TVAOPTION
    -		$this->option_modereg = 1;                 // Affiche mode reglement
    -		$this->option_condreg = 1;                 // Affiche conditions reglement
    -		$this->option_codeproduitservice = 1;      // Affiche code produit-service
    -		$this->option_multilang = 1;               // Dispo en plusieurs langues
    -		$this->option_escompte = 0;                // Affiche si il y a eu escompte
    +		$this->option_logo = 1;                    // Display logo
    +		$this->option_tva = 1;                     // Manage the vat option FACTURE_TVAOPTION
    +		$this->option_modereg = 1;                 // Display payment mode
    +		$this->option_condreg = 1;                 // Display payment terms
    +		$this->option_codeproduitservice = 1;      // Display product-service code
    +		$this->option_multilang = 1;               // Available in several languages
    +		$this->option_escompte = 0;                // Displays if there has been a discount
     		$this->option_credit_note = 0;             // Support credit notes
     		$this->option_freetext = 1;				   // Support add of a personalised text
     		$this->option_draft_watermark = 1;		   // Support add of a watermark on drafts
    @@ -172,7 +203,8 @@ class pdf_einstein extends ModelePDFCommandes
     		$this->atleastonediscount=0;
     	}
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *  Function to build pdf onto disk
          *
          *  @param		Object		$object				Object to generate
    @@ -185,13 +217,14 @@ class pdf_einstein extends ModelePDFCommandes
     	 */
     	function write_file($object, $outputlangs, $srctemplatepath='', $hidedetails=0, $hidedesc=0, $hideref=0)
     	{
    +        // phpcs:enable
     		global $user, $langs, $conf, $mysoc, $db, $hookmanager, $nblignes;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		// Translations
    +		// Load translation files required by the page
     		$outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "orders", "deliveries"));
     
     		$nblignes = count($object->lines);
    @@ -614,6 +647,7 @@ class pdf_einstein extends ModelePDFCommandes
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Show payments table
          *
    @@ -625,10 +659,11 @@ class pdf_einstein extends ModelePDFCommandes
     	 */
     	function _tableau_versements(&$pdf, $object, $posy, $outputlangs)
     	{
    -
    +        // phpcs:enable
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Show miscellaneous information (payment mode, payment term, ...)
     	 *
    @@ -640,6 +675,7 @@ class pdf_einstein extends ModelePDFCommandes
     	 */
     	function _tableau_info(&$pdf, $object, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
    @@ -815,6 +851,7 @@ class pdf_einstein extends ModelePDFCommandes
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show total to pay
     	 *
    @@ -827,6 +864,7 @@ class pdf_einstein extends ModelePDFCommandes
     	 */
     	function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     	    global $conf,$mysoc;
     
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
    @@ -930,7 +968,6 @@ class pdf_einstein extends ModelePDFCommandes
     
     								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
     								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    -
     							}
     						}
     					}
    @@ -1202,7 +1239,7 @@ class pdf_einstein extends ModelePDFCommandes
     	{
     		global $conf,$langs,$hookmanager;
     
    -		// Translations
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "bills", "propal", "orders", "companies"));
     
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
    @@ -1224,27 +1261,30 @@ class pdf_einstein extends ModelePDFCommandes
     		$pdf->SetXY($this->marge_gauche,$posy);
     
     		// Logo
    -		$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    -		if ($this->emetteur->logo)
    +		if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO))
     		{
    -			if (is_readable($logo))
    +			$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    +			if ($this->emetteur->logo)
     			{
    -			    $height=pdf_getHeightForLogo($logo);
    -			    $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height);	// width=0 (auto)
    +				if (is_readable($logo))
    +				{
    +				    $height=pdf_getHeightForLogo($logo);
    +				    $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height);	// width=0 (auto)
    +				}
    +				else
    +				{
    +					$pdf->SetTextColor(200,0,0);
    +					$pdf->SetFont('','B', $default_font_size -2);
    +					$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
    +					$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
    +				}
     			}
     			else
     			{
    -				$pdf->SetTextColor(200,0,0);
    -				$pdf->SetFont('','B', $default_font_size -2);
    -				$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
    -				$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
    +				$text=$this->emetteur->name;
    +				$pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
     			}
     		}
    -		else
    -		{
    -			$text=$this->emetteur->name;
    -			$pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
    -		}
     
     		$pdf->SetFont('','B', $default_font_size + 3);
     		$pdf->SetXY($posx,$posy);
    @@ -1412,5 +1452,4 @@ class pdf_einstein extends ModelePDFCommandes
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'ORDER_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    diff --git a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php
    new file mode 100644
    index 00000000000..07173f7db13
    --- /dev/null
    +++ b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php
    @@ -0,0 +1,1672 @@
    +<?php
    +/* Copyright (C) 2004-2014	Laurent Destailleur	<eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
    + * Copyright (C) 2008		Raphael Bertrand	<raphael.bertrand@resultic.fr>
    + * Copyright (C) 2010-2013	Juanjo Menent		<jmenent@2byte.es>
    + * Copyright (C) 2012      	Christophe Battarel <christophe.battarel@altairis.fr>
    + * Copyright (C) 2012       Cedric Salvador     <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2015       Marcos García       <marcosgdf@gmail.com>
    + * Copyright (C) 2017       Ferran Marcet       <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *	\file       htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php
    + *	\ingroup    commande
    + *	\brief      Fichier de la classe permettant de generer les commandes au modele Eratosthène
    + */
    +
    +require_once DOL_DOCUMENT_ROOT.'/core/modules/commande/modules_commande.php';
    +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
    +
    +
    +/**
    + *	Classe to generate PDF orders with template Eratosthene
    + */
    +class pdf_eratosthene extends ModelePDFCommandes
    +{
    +    /**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
    +
    +	/**
    +     * @var string model name
    +     */
    +    public $name;
    +
    +	/**
    +     * @var string model description (short text)
    +     */
    +    public $description;
    +
    +    /**
    +     * @var int 	Save the name of generated file as the main doc when generating a doc with this template
    +     */
    +    public $update_main_doc_field;
    +
    +	/**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +	/**
    +     * @var array Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.3 = array(5, 3)
    +     */
    +	public $phpmin = array(5, 2);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'development';
    +
    +    public $page_largeur;
    +    public $page_hauteur;
    +    public $format;
    +	public $marge_gauche;
    +	public $marge_droite;
    +	public $marge_haute;
    +	public $marge_basse;
    +
    +    public $emetteur;	// Objet societe qui emet
    +
    +
    +	/**
    +	 *	Constructor
    +	 *
    +	 *  @param		DoliDB		$db      Database handler
    +	 */
    +	public function __construct($db)
    +	{
    +		global $conf,$langs,$mysoc;
    +
    +		// Translations
    +		$langs->loadLangs(array("main", "bills", "products"));
    +
    +		$this->db = $db;
    +		$this->name = "eratosthene";
    +		$this->description = $langs->trans('PDFEratostheneDescription');
    +		$this->update_main_doc_field = 1;		// Save the name of generated file as the main doc when generating a doc with this template
    +
    +		// Dimension page
    +		$this->type = 'pdf';
    +		$formatarray=pdf_getFormat();
    +		$this->page_largeur = $formatarray['width'];
    +		$this->page_hauteur = $formatarray['height'];
    +		$this->format = array($this->page_largeur,$this->page_hauteur);
    +		$this->marge_gauche=isset($conf->global->MAIN_PDF_MARGIN_LEFT)?$conf->global->MAIN_PDF_MARGIN_LEFT:10;
    +		$this->marge_droite=isset($conf->global->MAIN_PDF_MARGIN_RIGHT)?$conf->global->MAIN_PDF_MARGIN_RIGHT:10;
    +		$this->marge_haute =isset($conf->global->MAIN_PDF_MARGIN_TOP)?$conf->global->MAIN_PDF_MARGIN_TOP:10;
    +		$this->marge_basse =isset($conf->global->MAIN_PDF_MARGIN_BOTTOM)?$conf->global->MAIN_PDF_MARGIN_BOTTOM:10;
    +
    +		$this->option_logo = 1;                    // Affiche logo
    +		$this->option_tva = 1;                     // Gere option tva FACTURE_TVAOPTION
    +		$this->option_modereg = 1;                 // Affiche mode reglement
    +		$this->option_condreg = 1;                 // Affiche conditions reglement
    +		$this->option_codeproduitservice = 1;      // Affiche code produit-service
    +		$this->option_multilang = 1;               // Dispo en plusieurs langues
    +		$this->option_escompte = 0;                // Affiche si il y a eu escompte
    +		$this->option_credit_note = 0;             // Support credit notes
    +		$this->option_freetext = 1;				   // Support add of a personalised text
    +		$this->option_draft_watermark = 1;		   // Support add of a watermark on drafts
    +
    +		$this->franchise=!$mysoc->tva_assuj;
    +
    +		// Get source company
    +		$this->emetteur=$mysoc;
    +		if (empty($this->emetteur->country_code)) $this->emetteur->country_code=substr($langs->defaultlang,-2);    // By default, if was not defined
    +
    +		// Define position of columns
    +		$this->posxdesc=$this->marge_gauche+1;
    +
    +
    +		$this->tva=array();
    +		$this->localtax1=array();
    +		$this->localtax2=array();
    +		$this->atleastoneratenotnull=0;
    +		$this->atleastonediscount=0;
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
    +    /**
    +     *  Function to build pdf onto disk
    +     *
    +     *  @param		Object		$object				Object to generate
    +     *  @param		Translate	$outputlangs		Lang output object
    +     *  @param		string		$srctemplatepath	Full path of source filename for generator using a template file
    +     *  @param		int			$hidedetails		Do not show line details
    +     *  @param		int			$hidedesc			Do not show desc
    +     *  @param		int			$hideref			Do not show ref
    +     *  @return     int             			    1=OK, 0=KO
    +	 */
    +	public function write_file($object, $outputlangs, $srctemplatepath='', $hidedetails=0, $hidedesc=0, $hideref=0)
    +	{
    +	    // phpcs:enable
    +		global $user, $langs, $conf, $mysoc, $db, $hookmanager, $nblignes;
    +
    +		if (! is_object($outputlangs)) $outputlangs=$langs;
    +		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
    +		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
    +
    +		// Translations
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "orders", "deliveries"));
    +
    +		$nblignes = count($object->lines);
    +
    +		if ($conf->commande->dir_output)
    +		{
    +            $object->fetch_thirdparty();
    +
    +            $deja_regle = 0;
    +
    +            // Definition of $dir and $file
    +			if ($object->specimen)
    +			{
    +				$dir = $conf->commande->dir_output;
    +				$file = $dir . "/SPECIMEN.pdf";
    +			}
    +			else
    +			{
    +				$objectref = dol_sanitizeFileName($object->ref);
    +				$dir = $conf->commande->dir_output . "/" . $objectref;
    +				$file = $dir . "/" . $objectref . ".pdf";
    +			}
    +
    +			if (! file_exists($dir))
    +			{
    +				if (dol_mkdir($dir) < 0)
    +				{
    +					$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
    +					return 0;
    +				}
    +			}
    +
    +			if (file_exists($dir))
    +			{
    +				// Add pdfgeneration hook
    +				if (! is_object($hookmanager))
    +				{
    +					include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
    +					$hookmanager=new HookManager($this->db);
    +				}
    +				$hookmanager->initHooks(array('pdfgeneration'));
    +				$parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
    +				global $action;
    +				$reshook=$hookmanager->executeHooks('beforePDFCreation',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +
    +				// Create pdf instance
    +				$pdf=pdf_getInstance($this->format);
    +				$default_font_size = pdf_getPDFFontSize($outputlangs);	// Must be after pdf_getInstance
    +				$pdf->SetAutoPageBreak(1,0);
    +
    +				$heightforinfotot = 40;	// Height reserved to output the info and total part
    +		        $heightforfreetext= (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT)?$conf->global->MAIN_PDF_FREETEXT_HEIGHT:5);	// Height reserved to output the free text on last page
    +		        $heightforfooter = $this->marge_basse + (empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS)?12:22);	// Height reserved to output the footer (value include bottom margin)
    +
    +                if (class_exists('TCPDF'))
    +                {
    +                    $pdf->setPrintHeader(false);
    +                    $pdf->setPrintFooter(false);
    +                }
    +                $pdf->SetFont(pdf_getPDFFont($outputlangs));
    +                // Set path to the background PDF File
    +                if (! empty($conf->global->MAIN_ADD_PDF_BACKGROUND))
    +                {
    +                    $pagecount = $pdf->setSourceFile($conf->mycompany->dir_output.'/'.$conf->global->MAIN_ADD_PDF_BACKGROUND);
    +                    $tplidx = $pdf->importPage(1);
    +                }
    +
    +				$pdf->Open();
    +				$pagenb=0;
    +				$pdf->SetDrawColor(128,128,128);
    +
    +				$pdf->SetTitle($outputlangs->convToOutputCharset($object->ref));
    +				$pdf->SetSubject($outputlangs->transnoentities("PdfOrderTitle"));
    +				$pdf->SetCreator("Dolibarr ".DOL_VERSION);
    +				$pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs)));
    +				$pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfOrderTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name));
    +				if (! empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false);
    +
    +				$pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite);   // Left, Top, Right
    +
    +				/// Does we have at least one line with discount $this->atleastonediscount
    +				foreach ($object->lines as $line) {
    +				    if ($line->remise_percent){
    +				        $this->atleastonediscount = true;
    +				        break;
    +				    }
    +				}
    +
    +				if (empty($this->atleastonediscount) && empty($conf->global->PRODUCT_USE_UNITS))
    +				{
    +					$this->posxpicture+=($this->postotalht - $this->posxdiscount);
    +					$this->posxtva+=($this->postotalht - $this->posxdiscount);
    +					$this->posxup+=($this->postotalht - $this->posxdiscount);
    +					$this->posxqty+=($this->postotalht - $this->posxdiscount);
    +					$this->posxdiscount+=($this->postotalht - $this->posxdiscount);
    +					//$this->postotalht;
    +				}
    +
    +				// New page
    +				$pdf->AddPage();
    +				if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +				$pagenb++;
    +				$top_shift = $this->_pagehead($pdf, $object, 1, $outputlangs);
    +				$pdf->SetFont('','', $default_font_size - 1);
    +				$pdf->MultiCell(0, 3, '');		// Set interline to 3
    +				$pdf->SetTextColor(0,0,0);
    +
    +
    +				$tab_top = 90+$top_shift;
    +				$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)?42+$top_shift:10);
    +
    +				// Incoterm
    +				if ($conf->incoterm->enabled)
    +				{
    +					$desc_incoterms = $object->getIncotermsForPDF();
    +					if ($desc_incoterms)
    +					{
    +						$tab_top -= 2;
    +
    +						$pdf->SetFont('','', $default_font_size - 1);
    +						$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top-1, dol_htmlentitiesbr($desc_incoterms), 0, 1);
    +						$nexY = $pdf->GetY();
    +						$height_incoterms=$nexY-$tab_top;
    +
    +						// Rect prend une longueur en 3eme param
    +						$pdf->SetDrawColor(192,192,192);
    +						$pdf->Rect($this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_incoterms+1);
    +
    +						$tab_top = $nexY+6;
    +					}
    +				}
    +
    +				// Affiche notes
    +				$notetoshow=empty($object->note_public)?'':$object->note_public;
    +				if (! empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE))
    +				{
    +					// Get first sale rep
    +					if (is_object($object->thirdparty))
    +					{
    +						$salereparray=$object->thirdparty->getSalesRepresentatives($user);
    +						$salerepobj=new User($this->db);
    +						$salerepobj->fetch($salereparray[0]['id']);
    +						if (! empty($salerepobj->signature)) $notetoshow=dol_concatdesc($notetoshow, $salerepobj->signature);
    +					}
    +				}
    +
    +				$pagenb = $pdf->getPage();
    +				if ($notetoshow)
    +				{
    +				    $tab_width = $this->page_largeur-$this->marge_gauche-$this->marge_droite;
    +				    $pageposbeforenote = $pagenb;
    +
    +				    $substitutionarray=pdf_getSubstitutionArray($outputlangs, null, $object);
    +				    complete_substitutions_array($substitutionarray, $outputlangs, $object);
    +				    $notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs);
    +
    +					$tab_top -= 2;
    +
    +				    $pdf->startTransaction();
    +
    +				    $pdf->SetFont('','', $default_font_size - 1);
    +				    $pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, dol_htmlentitiesbr($notetoshow), 0, 1);
    +				    // Description
    +				    $pageposafternote=$pdf->getPage();
    +				    $posyafter = $pdf->GetY();
    +
    +				    if($pageposafternote>$pageposbeforenote )
    +				    {
    +				        $pdf->rollbackTransaction(true);
    +
    +				        // prepar pages to receive notes
    +				        while ($pagenb < $pageposafternote) {
    +				            $pdf->AddPage();
    +				            $pagenb++;
    +				            if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +				            if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +				            // $this->_pagefoot($pdf,$object,$outputlangs,1);
    +				            $pdf->setTopMargin($tab_top_newpage);
    +				            // The only function to edit the bottom margin of current page to set it.
    +				            $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext);
    +				        }
    +
    +				        // back to start
    +				        $pdf->setPage($pageposbeforenote);
    +				        $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext);
    +				        $pdf->SetFont('','', $default_font_size - 1);
    +				        $pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, dol_htmlentitiesbr($notetoshow), 0, 1);
    +				        $pageposafternote=$pdf->getPage();
    +
    +				        $posyafter = $pdf->GetY();
    +
    +				        if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+20)))	// There is no space left for total+free text
    +				        {
    +				            $pdf->AddPage('','',true);
    +				            $pagenb++;
    +				            $pageposafternote++;
    +				            $pdf->setPage($pageposafternote);
    +				            $pdf->setTopMargin($tab_top_newpage);
    +				            // The only function to edit the bottom margin of current page to set it.
    +				            $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext);
    +				            //$posyafter = $tab_top_newpage;
    +				        }
    +
    +
    +				        // apply note frame to previus pages
    +				        $i = $pageposbeforenote;
    +				        while ($i < $pageposafternote) {
    +				            $pdf->setPage($i);
    +
    +
    +				            $pdf->SetDrawColor(128,128,128);
    +				            // Draw note frame
    +				            if($i>$pageposbeforenote){
    +				                $height_note = $this->page_hauteur - ($tab_top_newpage + $heightforfooter);
    +				                $pdf->Rect($this->marge_gauche, $tab_top_newpage-1, $tab_width, $height_note + 1);
    +				            }
    +				            else{
    +				                $height_note = $this->page_hauteur - ($tab_top + $heightforfooter);
    +				                $pdf->Rect($this->marge_gauche, $tab_top-1, $tab_width, $height_note + 1);
    +				            }
    +
    +				            // Add footer
    +				            $pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    +				            $this->_pagefoot($pdf,$object,$outputlangs,1);
    +
    +				            $i++;
    +				        }
    +
    +				        // apply note frame to last page
    +				        $pdf->setPage($pageposafternote);
    +				        if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +				        if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +				        $height_note=$posyafter-$tab_top_newpage;
    +				        $pdf->Rect($this->marge_gauche, $tab_top_newpage-1, $tab_width, $height_note+1);
    +				    }
    +				    else // No pagebreak
    +				    {
    +				        $pdf->commitTransaction();
    +				        $posyafter = $pdf->GetY();
    +				        $height_note=$posyafter-$tab_top;
    +				        $pdf->Rect($this->marge_gauche, $tab_top-1, $tab_width, $height_note+1);
    +
    +
    +				        if($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+20)) )
    +				        {
    +				            // not enough space, need to add page
    +				            $pdf->AddPage('','',true);
    +				            $pagenb++;
    +				            $pageposafternote++;
    +				            $pdf->setPage($pageposafternote);
    +				            if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +				            if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +
    +				            $posyafter = $tab_top_newpage;
    +				        }
    +				    }
    +
    +				    $tab_height = $tab_height - $height_note;
    +				    $tab_top = $posyafter +6;
    +				}
    +				else
    +				{
    +					$height_note=0;
    +				}
    +
    +				$iniY = $tab_top + 7;
    +				$curY = $tab_top + 7;
    +				$nexY = $tab_top + 7;
    +
    +				// Use new auto collum system
    +				$this->prepareArrayColumnField($object,$outputlangs,$hidedetails,$hidedesc,$hideref);
    +
    +				// Loop on each lines
    +				$pageposbeforeprintlines=$pdf->getPage();
    +				$pagenb = $pageposbeforeprintlines;
    +				for ($i = 0 ; $i < $nblignes ; $i++)
    +				{
    +					$curY = $nexY;
    +					$pdf->SetFont('','', $default_font_size - 1);   // Into loop to work with multipage
    +					$pdf->SetTextColor(0,0,0);
    +
    +					$pdf->setTopMargin($tab_top_newpage);
    +					$pdf->setPageOrientation('', 1, $heightforfooter+$heightforfreetext+$heightforinfotot);	// The only function to edit the bottom margin of current page to set it.
    +					$pageposbefore=$pdf->getPage();
    +
    +					// Description of product line
    +					$curX = $this->posxdesc-1;
    +
    +					$showpricebeforepagebreak=1;
    +
    +					if($this->getColumnStatus('desc'))
    +					{
    +    					$pdf->startTransaction();
    +    					pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->getColumnContentWidth('desc'),3,$this->getColumnContentXStart('desc'),$curY,$hideref,$hidedesc);
    +    					$pageposafter=$pdf->getPage();
    +    					if ($pageposafter > $pageposbefore)	// There is a pagebreak
    +    					{
    +    						$pdf->rollbackTransaction(true);
    +    						$pageposafter=$pageposbefore;
    +    						//print $pageposafter.'-'.$pageposbefore;exit;
    +    						$pdf->setPageOrientation('', 1, $heightforfooter);	// The only function to edit the bottom margin of current page to set it.
    +    						pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->getColumnContentWidth('desc'),3,$this->getColumnContentXStart('desc'),$curY,$hideref,$hidedesc);
    +    						$pageposafter=$pdf->getPage();
    +    						$posyafter=$pdf->GetY();
    +    						if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot)))	// There is no space left for total+free text
    +    						{
    +    							if ($i == ($nblignes-1))	// No more lines, and no space left to show total, so we create a new page
    +    							{
    +    								$pdf->AddPage('','',true);
    +    								if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +    								//if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +    								$pdf->setPage($pageposafter+1);
    +    							}
    +    						}
    +    						else
    +    						{
    +    							// We found a page break
    +    							$showpricebeforepagebreak=0;
    +    						}
    +    					}
    +    					else	// No pagebreak
    +    					{
    +    						$pdf->commitTransaction();
    +    					}
    +    					$posYAfterDescription=$pdf->GetY();
    +					}
    +
    +					$nexY = $pdf->GetY();
    +					$pageposafter=$pdf->getPage();
    +
    +					$pdf->setPage($pageposbefore);
    +					$pdf->setTopMargin($this->marge_haute);
    +					$pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    +
    +					// We suppose that a too long description is moved completely on next page
    +					if ($pageposafter > $pageposbefore && empty($showpricebeforepagebreak)) {
    +						$pdf->setPage($pageposafter); $curY = $tab_top_newpage;
    +					}
    +
    +					$pdf->SetFont('','',  $default_font_size - 1);   // On repositionne la police par defaut
    +
    +					// VAT Rate
    +					if ($this->getColumnStatus('vat'))
    +					{
    +					    $vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails);
    +					    $this->printStdColumnContent($pdf, $curY, 'vat', $vat_rate);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +					// Unit price before discount
    +					if ($this->getColumnStatus('subprice'))
    +					{
    +					    $up_excl_tax = pdf_getlineupexcltax($object, $i, $outputlangs, $hidedetails);
    +					    $this->printStdColumnContent($pdf, $curY, 'subprice', $up_excl_tax);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +					// Quantity
    +					// Enough for 6 chars
    +					if ($this->getColumnStatus('qty'))
    +					{
    +					    $qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails);
    +					    $this->printStdColumnContent($pdf, $curY, 'qty', $qty);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +
    +					// Unit
    +					if ($this->getColumnStatus('unit'))
    +					{
    +					    $unit = pdf_getlineunit($object, $i, $outputlangs, $hidedetails, $hookmanager);
    +					    $this->printStdColumnContent($pdf, $curY, 'unit', $unit);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +					// Discount on line
    +					if ($this->getColumnStatus('discount') && $object->lines[$i]->remise_percent)
    +					{
    +					    $remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails);
    +					    $this->printStdColumnContent($pdf, $curY, 'discount', $remise_percent);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +					// Total HT line
    +					if ($this->getColumnStatus('totalexcltax'))
    +					{
    +					    $total_excl_tax = pdf_getlinetotalexcltax($object, $i, $outputlangs, $hidedetails);
    +					    $this->printStdColumnContent($pdf, $curY, 'totalexcltax', $total_excl_tax);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +
    +					$parameters=array(
    +					    'object' => $object,
    +					    'i' => $i,
    +					    'pdf' =>& $pdf,
    +					    'curY' =>& $curY,
    +					    'nexY' =>& $nexY,
    +					    'outputlangs' => $outputlangs,
    +					    'hidedetails' => $hidedetails
    +					);
    +					$reshook=$hookmanager->executeHooks('printPDFline',$parameters,$this);    // Note that $object may have been modified by hook
    +
    +
    +					// Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva
    +					if ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) $tvaligne=$object->lines[$i]->multicurrency_total_tva;
    +					else $tvaligne=$object->lines[$i]->total_tva;
    +
    +					$localtax1ligne=$object->lines[$i]->total_localtax1;
    +					$localtax2ligne=$object->lines[$i]->total_localtax2;
    +					$localtax1_rate=$object->lines[$i]->localtax1_tx;
    +					$localtax2_rate=$object->lines[$i]->localtax2_tx;
    +					$localtax1_type=$object->lines[$i]->localtax1_type;
    +					$localtax2_type=$object->lines[$i]->localtax2_type;
    +
    +					if ($object->remise_percent) $tvaligne-=($tvaligne*$object->remise_percent)/100;
    +					if ($object->remise_percent) $localtax1ligne-=($localtax1ligne*$object->remise_percent)/100;
    +					if ($object->remise_percent) $localtax2ligne-=($localtax2ligne*$object->remise_percent)/100;
    +
    +					$vatrate=(string) $object->lines[$i]->tva_tx;
    +
    +					// Retrieve type from database for backward compatibility with old records
    +					if ((! isset($localtax1_type) || $localtax1_type=='' || ! isset($localtax2_type) || $localtax2_type=='') // if tax type not defined
    +					&& (! empty($localtax1_rate) || ! empty($localtax2_rate))) // and there is local tax
    +					{
    +						$localtaxtmp_array=getLocalTaxesFromRate($vatrate,0,$object->thirdparty,$mysoc);
    +						$localtax1_type = $localtaxtmp_array[0];
    +						$localtax2_type = $localtaxtmp_array[2];
    +					}
    +
    +				    // retrieve global local tax
    +					if ($localtax1_type && $localtax1ligne != 0)
    +						$this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne;
    +					if ($localtax2_type && $localtax2ligne != 0)
    +						$this->localtax2[$localtax2_type][$localtax2_rate]+=$localtax2ligne;
    +
    +					if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*';
    +					if (! isset($this->tva[$vatrate])) 				$this->tva[$vatrate]=0;
    +					$this->tva[$vatrate] += $tvaligne;
    +
    +					// Add line
    +					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
    +					{
    +						$pdf->setPage($pageposafter);
    +						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
    +						//$pdf->SetDrawColor(190,190,200);
    +						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
    +						$pdf->SetLineStyle(array('dash'=>0));
    +					}
    +
    +					$nexY+=2;    // Passe espace entre les lignes
    +
    +					// Detect if some page were added automatically and output _tableau for past pages
    +					while ($pagenb < $pageposafter)
    +					{
    +						$pdf->setPage($pagenb);
    +						if ($pagenb == $pageposbeforeprintlines)
    +						{
    +							$this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1, $object->multicurrency_code);
    +						}
    +						else
    +						{
    +							$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code);
    +						}
    +						$this->_pagefoot($pdf,$object,$outputlangs,1);
    +						$pagenb++;
    +						$pdf->setPage($pagenb);
    +						$pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    +						if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +					}
    +					if (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak)
    +					{
    +					    if ($pagenb == $pageposafter)
    +						{
    +							$this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1, $object->multicurrency_code);
    +						}
    +						else
    +						{
    +							$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code);
    +						}
    +						$this->_pagefoot($pdf,$object,$outputlangs,1);
    +						// New page
    +						$pdf->AddPage();
    +						if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +						$pagenb++;
    +						if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +					}
    +				}
    +
    +				// Show square
    +				if ($pagenb == $pageposbeforeprintlines)
    +					$this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 0, 0, $object->multicurrency_code);
    +				else
    +					$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0, $object->multicurrency_code);
    +				$bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1;
    +
    +				// Affiche zone infos
    +				$posy=$this->drawInfoTable($pdf, $object, $bottomlasttab, $outputlangs);
    +
    +				// Affiche zone totaux
    +				$posy=$this->drawTotalTable($pdf, $object, $deja_regle, $bottomlasttab, $outputlangs);
    +
    +				// Affiche zone versements
    +				/*
    +				if ($deja_regle)
    +				{
    +					$posy=$this->drawPaymentsTable($pdf, $object, $posy, $outputlangs);
    +				}
    +				*/
    +
    +				// Pied de page
    +				$this->_pagefoot($pdf, $object, $outputlangs);
    +				if (method_exists($pdf, 'AliasNbPages')) $pdf->AliasNbPages();
    +
    +				$pdf->Close();
    +
    +				$pdf->Output($file, 'F');
    +
    +				// Add pdfgeneration hook
    +				$hookmanager->initHooks(array('pdfgeneration'));
    +				$parameters=array('file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs);
    +				global $action;
    +				$reshook=$hookmanager->executeHooks('afterPDFCreation', $parameters, $this, $action);    // Note that $action and $object may have been modified by some hooks
    +
    +				if (! empty($conf->global->MAIN_UMASK))
    +					@chmod($file, octdec($conf->global->MAIN_UMASK));
    +
    +				$this->result = array('fullpath'=>$file);
    +
    +				return 1;   // Pas d'erreur
    +			}
    +			else
    +			{
    +				$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
    +				return 0;
    +			}
    +		}
    +		else
    +		{
    +			$this->error=$langs->transnoentities("ErrorConstantNotDefined","COMMANDE_OUTPUTDIR");
    +			return 0;
    +		}
    +	}
    +
    +	/**
    +	 *  Show payments table
    +   *
    +	 *  @param	TCPDF		$pdf     		Object PDF
    +	 *  @param  Object		$object			Object order
    +	 *	@param	int			$posy			Position y in PDF
    +	 *	@param	Translate	$outputlangs	Object langs for output
    +	 *	@return int							<0 if KO, >0 if OK
    +	 */
    +	private function drawPaymentsTable(&$pdf, $object, $posy, $outputlangs)
    +	{
    +	}
    +
    +	/**
    +	 *   Show miscellaneous information (payment mode, payment term, ...)
    +	 *
    +	 *   @param		TCPDF		$pdf     		Object PDF
    +	 *   @param		Object		$object			Object to show
    +	 *   @param		int			$posy			Y
    +	 *   @param		Translate	$outputlangs	Langs object
    +	 *   @return	void
    +	 */
    +	private function drawInfoTable(&$pdf, $object, $posy, $outputlangs)
    +	{
    +		global $conf;
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		$pdf->SetFont('','', $default_font_size - 1);
    +
    +        // If France, show VAT mention if not applicable
    +		if ($this->emetteur->country_code == 'FR' && $this->franchise == 1)
    +		{
    +			$pdf->SetFont('','B', $default_font_size - 2);
    +			$pdf->SetXY($this->marge_gauche, $posy);
    +			$pdf->MultiCell(100, 3, $outputlangs->transnoentities("VATIsNotUsedForInvoice"), 0, 'L', 0);
    +
    +			$posy=$pdf->GetY()+4;
    +		}
    +
    +		$posxval=52;
    +
    +		// Show payments conditions
    +		if ($object->cond_reglement_code || $object->cond_reglement)
    +		{
    +			$pdf->SetFont('','B', $default_font_size - 2);
    +			$pdf->SetXY($this->marge_gauche, $posy);
    +			$titre = $outputlangs->transnoentities("PaymentConditions").':';
    +			$pdf->MultiCell(43, 4, $titre, 0, 'L');
    +
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posxval, $posy);
    +			$lib_condition_paiement=$outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code)!=('PaymentCondition'.$object->cond_reglement_code)?$outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code):$outputlangs->convToOutputCharset($object->cond_reglement_doc);
    +			$lib_condition_paiement=str_replace('\n',"\n",$lib_condition_paiement);
    +			$pdf->MultiCell(67, 4, $lib_condition_paiement,0,'L');
    +
    +			$posy=$pdf->GetY()+3;
    +		}
    +
    +        // Check a payment mode is defined
    +        /* Not used with orders
    +		if (empty($object->mode_reglement_code)
    +        	&& ! $conf->global->FACTURE_CHQ_NUMBER
    +        	&& ! $conf->global->FACTURE_RIB_NUMBER)
    +		{
    +            $pdf->SetXY($this->marge_gauche, $posy);
    +            $pdf->SetTextColor(200,0,0);
    +            $pdf->SetFont('','B', $default_font_size - 2);
    +            $pdf->MultiCell(80, 3, $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"),0,'L',0);
    +            $pdf->SetTextColor(0,0,0);
    +
    +            $posy=$pdf->GetY()+1;
    +        }
    +		*/
    +		/* TODO
    +		else if (! empty($object->availability_code))
    +		{
    +            $pdf->SetXY($this->marge_gauche, $posy);
    +            $pdf->SetTextColor(200,0,0);
    +            $pdf->SetFont('','B', $default_font_size - 2);
    +            $pdf->MultiCell(80, 3, $outputlangs->transnoentities("AvailabilityPeriod").': '.,0,'L',0);
    +            $pdf->SetTextColor(0,0,0);
    +
    +            $posy=$pdf->GetY()+1;
    +		}*/
    +
    +	    // Show planed date of delivery
    +        if (! empty($object->date_livraison))
    +		{
    +            $outputlangs->load("sendings");
    +			$pdf->SetFont('','B', $default_font_size - 2);
    +			$pdf->SetXY($this->marge_gauche, $posy);
    +			$titre = $outputlangs->transnoentities("DateDeliveryPlanned").':';
    +			$pdf->MultiCell(80, 4, $titre, 0, 'L');
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posxval, $posy);
    +			$dlp=dol_print_date($object->date_livraison,"daytext",false,$outputlangs,true);
    +			$pdf->MultiCell(80, 4, $dlp, 0, 'L');
    +
    +            $posy=$pdf->GetY()+1;
    +		}
    +        elseif ($object->availability_code || $object->availability)    // Show availability conditions
    +		{
    +			$pdf->SetFont('','B', $default_font_size - 2);
    +			$pdf->SetXY($this->marge_gauche, $posy);
    +			$titre = $outputlangs->transnoentities("AvailabilityPeriod").':';
    +			$pdf->MultiCell(80, 4, $titre, 0, 'L');
    +			$pdf->SetTextColor(0,0,0);
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posxval, $posy);
    +			$lib_availability=$outputlangs->transnoentities("AvailabilityType".$object->availability_code)!=('AvailabilityType'.$object->availability_code)?$outputlangs->transnoentities("AvailabilityType".$object->availability_code):$outputlangs->convToOutputCharset(isset($object->availability)?$object->availability:'');
    +			$lib_availability=str_replace('\n',"\n",$lib_availability);
    +			$pdf->MultiCell(80, 4, $lib_availability, 0, 'L');
    +
    +			$posy=$pdf->GetY()+1;
    +		}
    +
    +      	// Show payment mode
    +        if ($object->mode_reglement_code
    +        	 && $object->mode_reglement_code != 'CHQ'
    +           	 && $object->mode_reglement_code != 'VIR')
    +           	 {
    +	            $pdf->SetFont('','B', $default_font_size - 2);
    +	            $pdf->SetXY($this->marge_gauche, $posy);
    +	            $titre = $outputlangs->transnoentities("PaymentMode").':';
    +	            $pdf->MultiCell(80, 5, $titre, 0, 'L');
    +
    +				$pdf->SetFont('','', $default_font_size - 2);
    +	            $pdf->SetXY($posxval, $posy);
    +	            $lib_mode_reg=$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code)!=('PaymentType'.$object->mode_reglement_code)?$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code):$outputlangs->convToOutputCharset($object->mode_reglement);
    +	            $pdf->MultiCell(80, 5, $lib_mode_reg,0,'L');
    +
    +	            $posy=$pdf->GetY()+2;
    +           	 }
    +
    +		// Show payment mode CHQ
    +        if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ')
    +        {
    +        	// Si mode reglement non force ou si force a CHQ
    +	        if (! empty($conf->global->FACTURE_CHQ_NUMBER))
    +	        {
    +	            if ($conf->global->FACTURE_CHQ_NUMBER > 0)
    +	            {
    +	                $account = new Account($this->db);
    +	                $account->fetch($conf->global->FACTURE_CHQ_NUMBER);
    +
    +	                $pdf->SetXY($this->marge_gauche, $posy);
    +	                $pdf->SetFont('','B', $default_font_size - 3);
    +	                $pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$account->proprio),0,'L',0);
    +		            $posy=$pdf->GetY()+1;
    +
    +		            if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS))
    +		            {
    +		                $pdf->SetXY($this->marge_gauche, $posy);
    +		                $pdf->SetFont('','', $default_font_size - 3);
    +		                $pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($account->owner_address), 0, 'L', 0);
    +			            $posy=$pdf->GetY()+2;
    +		            }
    +	            }
    +	            if ($conf->global->FACTURE_CHQ_NUMBER == -1)
    +	            {
    +	                $pdf->SetXY($this->marge_gauche, $posy);
    +	                $pdf->SetFont('','B', $default_font_size - 3);
    +	                $pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$this->emetteur->name),0,'L',0);
    +		            $posy=$pdf->GetY()+1;
    +
    +		            if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS))
    +		            {
    +			            $pdf->SetXY($this->marge_gauche, $posy);
    +		                $pdf->SetFont('','', $default_font_size - 3);
    +		                $pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($this->emetteur->getFullAddress()), 0, 'L', 0);
    +			            $posy=$pdf->GetY()+2;
    +		            }
    +	            }
    +	        }
    +		}
    +
    +        // If payment mode not forced or forced to VIR, show payment with BAN
    +        if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR')
    +        {
    +			if (! empty($object->fk_account) || ! empty($object->fk_bank) || ! empty($conf->global->FACTURE_RIB_NUMBER))
    +			{
    +				$bankid=(empty($object->fk_account)?$conf->global->FACTURE_RIB_NUMBER:$object->fk_account);
    +				if (! empty($object->fk_bank)) $bankid=$object->fk_bank;   // For backward compatibility when object->fk_account is forced with object->fk_bank
    +				$account = new Account($this->db);
    +				$account->fetch($bankid);
    +
    +				$curx=$this->marge_gauche;
    +				$cury=$posy;
    +
    +				$posy=pdf_bank($pdf,$outputlangs,$curx,$cury,$account,0,$default_font_size);
    +
    +				$posy+=2;
    +			}
    +        }
    +
    +		return $posy;
    +	}
    +
    +
    +	/**
    +	 *	Show total to pay
    +	 *
    +	 *	@param	TCPDF		$pdf           Object PDF
    +	 *	@param  Facture		$object         Object invoice
    +	 *	@param  int			$deja_regle     Montant deja regle
    +	 *	@param	int			$posy			Position depart
    +	 *	@param	Translate	$outputlangs	Objet langs
    +	 *	@return int							Position pour suite
    +	 */
    +	private function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs)
    +	{
    +	    global $conf,$mysoc;
    +
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		$tab2_top = $posy;
    +		$tab2_hl = 4;
    +		$pdf->SetFont('','', $default_font_size - 1);
    +
    +		// Tableau total
    +        $col1x = 120; $col2x = 170;
    +		if ($this->page_largeur < 210) // To work with US executive format
    +		{
    +			$col2x-=20;
    +		}
    +		$largcol2 = ($this->page_largeur - $this->marge_droite - $col2x);
    +
    +		$useborder=0;
    +		$index = 0;
    +
    +		// Total HT
    +		$pdf->SetFillColor(255,255,255);
    +		$pdf->SetXY($col1x, $tab2_top + 0);
    +		$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1);
    +
    +		$total_ht = ($conf->multicurrency->enabled && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
    +		$pdf->SetXY($col2x, $tab2_top + 0);
    +		$pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (! empty($object->remise)?$object->remise:0), 0, $outputlangs), 0, 'R', 1);
    +
    +		// Show VAT by rates and total
    +		$pdf->SetFillColor(248,248,248);
    +
    +		$total_ttc = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc;
    +
    +		$this->atleastoneratenotnull=0;
    +		if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))
    +		{
    +			$tvaisnull=((! empty($this->tva) && count($this->tva) == 1 && isset($this->tva['0.000']) && is_float($this->tva['0.000'])) ? true : false);
    +			if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_IFNULL) && $tvaisnull)
    +			{
    +				// Nothing to do
    +			}
    +			else
    +			{
    +				//Local tax 1 before VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on')
    +				//{
    +					foreach( $this->localtax1 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('1','3','5'))) continue;
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +							if ($tvakey!=0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT1",$mysoc->country_code).' ';
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					}
    +	      		//}
    +				//Local tax 2 before VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on')
    +				//{
    +					foreach( $this->localtax2 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('1','3','5'))) continue;
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +							if ($tvakey!=0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT2",$mysoc->country_code).' ';
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					}
    +				//}
    +				// VAT
    +				foreach($this->tva as $tvakey => $tvaval)
    +				{
    +					if ($tvakey != 0)    // On affiche pas taux 0
    +					{
    +						$this->atleastoneratenotnull++;
    +
    +						$index++;
    +						$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +						$tvacompl='';
    +						if (preg_match('/\*/',$tvakey))
    +						{
    +							$tvakey=str_replace('*','',$tvakey);
    +							$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +						}
    +						$totalvat =$outputlangs->transcountrynoentities("TotalVAT",$mysoc->country_code).' ';
    +						$totalvat.=vatrate($tvakey,1).$tvacompl;
    +						$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +						$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +						$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +					}
    +				}
    +
    +				//Local tax 1 after VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on')
    +				//{
    +					foreach( $this->localtax1 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('2','4','6'))) continue;
    +
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +							if ($tvakey != 0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT1",$mysoc->country_code).' ';
    +
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					}
    +	      		//}
    +				//Local tax 2 after VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on')
    +				//{
    +					foreach( $this->localtax2 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('2','4','6'))) continue;
    +
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +							if ($tvakey != 0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT2",$mysoc->country_code).' ';
    +
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					}
    +				//}
    +
    +				// Total TTC
    +				$index++;
    +				$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +				$pdf->SetTextColor(0,0,60);
    +				$pdf->SetFillColor(224,224,224);
    +				$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
    +
    +				$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +				$pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc, 0, $outputlangs), $useborder, 'R', 1);
    +			}
    +		}
    +
    +		$pdf->SetTextColor(0,0,0);
    +
    +        $creditnoteamount=0;
    +        $depositsamount=0;
    +		//$creditnoteamount=$object->getSumCreditNotesUsed();
    +		//$depositsamount=$object->getSumDepositsUsed();
    +		//print "x".$creditnoteamount."-".$depositsamount;exit;
    +		$resteapayer = price2num($total_ttc - $deja_regle - $creditnoteamount - $depositsamount, 'MT');
    +		if (! empty($object->paye)) $resteapayer=0;
    +
    +		if ($deja_regle > 0)
    +		{
    +			// Already paid + Deposits
    +			$index++;
    +
    +			$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("AlreadyPaid"), 0, 'L', 0);
    +			$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($largcol2, $tab2_hl, price($deja_regle, 0, $outputlangs), 0, 'R', 0);
    +
    +			$index++;
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->SetFillColor(224,224,224);
    +			$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("RemainderToPay"), $useborder, 'L', 1);
    +
    +			$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($largcol2, $tab2_hl, price($resteapayer, 0, $outputlangs), $useborder, 'R', 1);
    +
    +			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->SetTextColor(0,0,0);
    +		}
    +
    +		$index++;
    +		return ($tab2_top + ($tab2_hl * $index));
    +	}
    +
    +	/**
    +	 *   Show table for lines
    +	 *
    +	 *   @param		TCPDF		$pdf     		Object PDF
    +	 *   @param		string		$tab_top		Top position of table
    +	 *   @param		string		$tab_height		Height of table (rectangle)
    +	 *   @param		int			$nexY			Y (not used)
    +	 *   @param		Translate	$outputlangs	Langs object
    +	 *   @param		int			$hidetop		1=Hide top bar of array and title, 0=Hide nothing, -1=Hide only title
    +	 *   @param		int			$hidebottom		Hide bottom bar of array
    +	 *   @param		string		$currency		Currency code
    +	 *   @return	void
    +	 */
    +	private function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop=0, $hidebottom=0, $currency='')
    +	{
    +		global $conf;
    +
    +		// Force to disable hidetop and hidebottom
    +		$hidebottom=0;
    +		if ($hidetop) $hidetop=-1;
    +
    +		$currency = !empty($currency) ? $currency : $conf->currency;
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		// Amount in (at tab_top - 1)
    +		$pdf->SetTextColor(0,0,0);
    +		$pdf->SetFont('','', $default_font_size - 2);
    +
    +		if (empty($hidetop))
    +		{
    +			$titre = $outputlangs->transnoentities("AmountInCurrency",$outputlangs->transnoentitiesnoconv("Currency".$currency));
    +			$pdf->SetXY($this->page_largeur - $this->marge_droite - ($pdf->GetStringWidth($titre) + 3), $tab_top-4);
    +			$pdf->MultiCell(($pdf->GetStringWidth($titre) + 3), 2, $titre);
    +
    +			//$conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR='230,230,230';
    +			if (! empty($conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR)) $pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_droite-$this->marge_gauche, 5, 'F', null, explode(',',$conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR));
    +		}
    +
    +		$pdf->SetDrawColor(128,128,128);
    +		$pdf->SetFont('','', $default_font_size - 1);
    +
    +		// Output Rect
    +		$this->printRect($pdf,$this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height, $hidetop, $hidebottom);	// Rect prend une longueur en 3eme param et 4eme param
    +
    +
    +		foreach ($this->cols as $colKey => $colDef)
    +		{
    +		    if(!$this->getColumnStatus($colKey)) continue;
    +
    +		    // get title label
    +		    $colDef['title']['label'] = !empty($colDef['title']['label'])?$colDef['title']['label']:$outputlangs->transnoentities($colDef['title']['textkey']);
    +
    +		    // Add column separator
    +		    if(!empty($colDef['border-left'])){
    +		        $pdf->line($colDef['xStartPos'], $tab_top, $colDef['xStartPos'], $tab_top + $tab_height);
    +		    }
    +
    +		    if (empty($hidetop))
    +		    {
    +		      $pdf->SetXY($colDef['xStartPos'] + $colDef['title']['padding'][3], $tab_top + $colDef['title']['padding'][0] );
    +
    +		      $textWidth = $colDef['width'] - $colDef['title']['padding'][3] -$colDef['title']['padding'][1];
    +		      $pdf->MultiCell($textWidth,2,$colDef['title']['label'],'',$colDef['title']['align']);
    +		    }
    +		}
    +
    +		if (empty($hidetop)){
    +			$pdf->line($this->marge_gauche, $tab_top+5, $this->page_largeur-$this->marge_droite, $tab_top+5);	// line prend une position y en 2eme param et 4eme param
    +		}
    +	}
    +
    +	/**
    +	 *  Show top header of page.
    +	 *
    +	 *  @param	TCPDF		$pdf     		Object PDF
    +	 *  @param  Object		$object     	Object to show
    +	 *  @param  int	    	$showaddress    0=no, 1=yes
    +	 *  @param  Translate	$outputlangs	Object lang for output
    +	 *  @param	string		$titlekey		Translation key to show as title of document
    +	 *  @return	void
    +	 */
    +	private function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey="PdfOrderTitle")
    +	{
    +		global $conf,$langs,$hookmanager;
    +
    +		// Translations
    +		$outputlangs->loadLangs(array("main", "bills", "propal", "orders", "companies"));
    +
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
    +
    +		// Show Draft Watermark
    +		if($object->statut==0 && (! empty($conf->global->COMMANDE_DRAFT_WATERMARK)) )
    +		{
    +            pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->COMMANDE_DRAFT_WATERMARK);
    +		}
    +
    +		$pdf->SetTextColor(0,0,60);
    +		$pdf->SetFont('','B', $default_font_size + 3);
    +
    +		$posy=$this->marge_haute;
    +		$posx=$this->page_largeur-$this->marge_droite-100;
    +
    +		$pdf->SetXY($this->marge_gauche,$posy);
    +
    +		// Logo
    +		if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO))
    +		{
    +			$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    +			if ($this->emetteur->logo)
    +			{
    +				if (is_readable($logo))
    +				{
    +				    $height=pdf_getHeightForLogo($logo);
    +				    $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height);	// width=0 (auto)
    +				}
    +				else
    +				{
    +					$pdf->SetTextColor(200,0,0);
    +					$pdf->SetFont('','B', $default_font_size -2);
    +					$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
    +					$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
    +				}
    +			}
    +			else
    +			{
    +				$text=$this->emetteur->name;
    +				$pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
    +			}
    +		}
    +
    +		$pdf->SetFont('','B', $default_font_size + 3);
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$title=$outputlangs->transnoentities($titlekey);
    +		$pdf->MultiCell(100, 3, $title, '', 'R');
    +
    +		$pdf->SetFont('','B',$default_font_size);
    +
    +		$posy+=5;
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$pdf->MultiCell(100, 4, $outputlangs->transnoentities("Ref")." : " . $outputlangs->convToOutputCharset($object->ref), '', 'R');
    +
    +		$posy+=1;
    +		$pdf->SetFont('','', $default_font_size - 1);
    +
    +		if ($object->ref_client)
    +		{
    +			$posy+=5;
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefCustomer")." : " . $outputlangs->convToOutputCharset($object->ref_client), '', 'R');
    +		}
    +
    +		$posy+=4;
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$pdf->MultiCell(100, 3, $outputlangs->transnoentities("OrderDate")." : " . dol_print_date($object->date,"%d %b %Y",false,$outputlangs,true), '', 'R');
    +
    +		// Get contact
    +		if (!empty($conf->global->DOC_SHOW_FIRST_SALES_REP))
    +		{
    +		    $arrayidcontact=$object->getIdContact('internal','SALESREPFOLL');
    +		    if (count($arrayidcontact) > 0)
    +		    {
    +                $usertmp=new User($this->db);
    +		        $usertmp->fetch($arrayidcontact[0]);
    +                $posy+=4;
    +                $pdf->SetXY($posx,$posy);
    +		        $pdf->SetTextColor(0,0,60);
    +		        $pdf->MultiCell(100, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R');
    +		    }
    +		}
    +
    +		$posy+=2;
    +
    +		$top_shift = 0;
    +		// Show list of linked objects
    +		$current_y = $pdf->getY();
    +		$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size);
    +		if ($current_y < $pdf->getY())
    +		{
    +			$top_shift = $pdf->getY() - $current_y;
    +		}
    +
    +		if ($showaddress)
    +		{
    +			// Sender properties
    +			$carac_emetteur='';
    +		 	// Add internal contact of proposal if defined
    +			$arrayidcontact=$object->getIdContact('internal','SALESREPFOLL');
    +		 	if (count($arrayidcontact) > 0)
    +		 	{
    +		 		$object->fetch_user($arrayidcontact[0]);
    +		 		$labelbeforecontactname=($outputlangs->transnoentities("FromContactName")!='FromContactName'?$outputlangs->transnoentities("FromContactName"):$outputlangs->transnoentities("Name"));
    +		 		$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$labelbeforecontactname." ".$outputlangs->convToOutputCharset($object->user->getFullName($outputlangs))."\n";
    +		 	}
    +
    +		 	$carac_emetteur .= pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, '', 0, 'source', $object);
    +
    +			// Show sender
    +			$posy=42+$top_shift;
    +			$posx=$this->marge_gauche;
    +			if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->page_largeur-$this->marge_droite-80;
    +			$hautcadre=40;
    +
    +			// Show sender frame
    +			$pdf->SetTextColor(0,0,0);
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posx,$posy-5);
    +			$pdf->MultiCell(66,5, $outputlangs->transnoentities("BillFrom").":", 0, 'L');
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetFillColor(230,230,230);
    +			$pdf->MultiCell(82, $hautcadre, "", 0, 'R', 1);
    +			$pdf->SetTextColor(0,0,60);
    +
    +			// Show sender name
    +			$pdf->SetXY($posx+2,$posy+3);
    +			$pdf->SetFont('','B', $default_font_size);
    +			$pdf->MultiCell(80, 4, $outputlangs->convToOutputCharset($this->emetteur->name), 0, 'L');
    +			$posy=$pdf->getY();
    +
    +			// Show sender information
    +			$pdf->SetXY($posx+2,$posy);
    +			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->MultiCell(80, 4, $carac_emetteur, 0, 'L');
    +
    +
    +
    +			// If CUSTOMER contact defined on order, we use it
    +			$usecontact=false;
    +			$arrayidcontact=$object->getIdContact('external','CUSTOMER');
    +			if (count($arrayidcontact) > 0)
    +			{
    +				$usecontact=true;
    +				$result=$object->fetch_contact($arrayidcontact[0]);
    +			}
    +
    +			//Recipient name
    +			// On peut utiliser le nom de la societe du contact
    +			if ($usecontact && !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) {
    +				$thirdparty = $object->contact;
    +			} else {
    +				$thirdparty = $object->thirdparty;
    +			}
    +
    +			$carac_client_name= pdfBuildThirdpartyName($thirdparty, $outputlangs);
    +
    +			$carac_client=pdf_build_address($outputlangs,$this->emetteur,$object->thirdparty,($usecontact?$object->contact:''),$usecontact,'target', $object);
    +
    +			// Show recipient
    +			$widthrecbox=100;
    +			if ($this->page_largeur < 210) $widthrecbox=84;	// To work with US executive format
    +			$posy=42+$top_shift;
    +			$posx=$this->page_largeur-$this->marge_droite-$widthrecbox;
    +			if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->marge_gauche;
    +
    +			// Show recipient frame
    +			$pdf->SetTextColor(0,0,0);
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posx+2,$posy-5);
    +			$pdf->MultiCell($widthrecbox, 5, $outputlangs->transnoentities("BillTo").":",0,'L');
    +			$pdf->Rect($posx, $posy, $widthrecbox, $hautcadre);
    +
    +			// Show recipient name
    +			$pdf->SetXY($posx+2,$posy+3);
    +			$pdf->SetFont('','B', $default_font_size);
    +			$pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L');
    +
    +			$posy = $pdf->getY();
    +
    +			// Show recipient information
    +			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->SetXY($posx+2,$posy);
    +			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
    +		}
    +
    +		$pdf->SetTextColor(0,0,0);
    +		return $top_shift;
    +	}
    +
    +	/**
    +	 *   	Show footer of page. Need this->emetteur object
    +     *
    +	 *   	@param	TCPDF		$pdf     			PDF
    +	 * 		@param	Object		$object				Object to show
    +	 *      @param	Translate	$outputlangs		Object lang for output
    +	 *      @param	int			$hidefreetext		1=Hide free text
    +	 *      @return	int								Return height of bottom margin including footer text
    +	 */
    +	private function _pagefoot(&$pdf,$object,$outputlangs,$hidefreetext=0)
    +	{
    +		global $conf;
    +		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
    +		return pdf_pagefoot($pdf,$outputlangs,'ORDER_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
    +	}
    +
    +
    +
    +	/**
    +	 *   	Define Array Column Field
    +	 *
    +	 *   	@param	object			$object    		common object
    +	 *   	@param	Translate		$outputlangs    langs
    +	 *      @param	int				$hidedetails	Do not show line details
    +	 *      @param	int				$hidedesc		Do not show desc
    +	 *      @param	int				$hideref		Do not show ref
    +	 *      @return	null
    +	 */
    +    public function defineColumnField($object,$outputlangs,$hidedetails=0,$hidedesc=0,$hideref=0)
    +    {
    +	    global $conf, $hookmanager;
    +
    +	    // Default field style for content
    +	    $this->defaultContentsFieldsStyle = array(
    +	        'align' => 'R', // R,C,L
    +	        'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	    );
    +
    +	    // Default field style for content
    +	    $this->defaultTitlesFieldsStyle = array(
    +	        'align' => 'C', // R,C,L
    +	        'padding' => array(0.5,0,0.5,0), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	    );
    +
    +	    /*
    +	     * For exemple
    +	     $this->cols['theColKey'] = array(
    +	     'rank' => $rank, // int : use for ordering columns
    +	     'width' => 20, // the column width in mm
    +	     'title' => array(
    +	     'textkey' => 'yourLangKey', // if there is no label, yourLangKey will be translated to replace label
    +	     'label' => ' ', // the final label : used fore final generated text
    +	     'align' => 'L', // text alignement :  R,C,L
    +	     'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	     ),
    +	     'content' => array(
    +	     'align' => 'L', // text alignement :  R,C,L
    +	     'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	     ),
    +	     );
    +	     */
    +
    +	    $rank=0; // do not use negative rank
    +	    $this->cols['desc'] = array(
    +	        'rank' => $rank,
    +	        'width' => false, // only for desc
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'Designation', // use lang key is usefull in somme case with module
    +	            'align' => 'L',
    +	            // 'textkey' => 'yourLangKey', // if there is no label, yourLangKey will be translated to replace label
    +	            // 'label' => ' ', // the final label
    +	            'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	        ),
    +	        'content' => array(
    +	            'align' => 'L',
    +	        ),
    +	    );
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['photo'] = array(
    +	        'rank' => $rank,
    +	        'width' => (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH)?20:$conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH), // in mm
    +	        'status' => false,
    +	        'title' => array(
    +	            'textkey' => 'Photo',
    +	            'label' => ' '
    +	        ),
    +	        'content' => array(
    +	            'padding' => array(0,0,0,0), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	        ),
    +	        'border-left' => false, // remove left line separator
    +	    );
    +
    +	    if (! empty($conf->global->MAIN_GENERATE_ORDERS_WITH_PICTURE))
    +	    {
    +	        $this->cols['photo']['status'] = true;
    +	    }
    +
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['vat'] = array(
    +	        'rank' => $rank,
    +	        'status' => false,
    +	        'width' => 16, // in mm
    +	        'title' => array(
    +	            'textkey' => 'VAT'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +	    if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) && empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN))
    +	    {
    +	        $this->cols['vat']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['subprice'] = array(
    +	        'rank' => $rank,
    +	        'width' => 19, // in mm
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'PriceUHT'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['qty'] = array(
    +	        'rank' => $rank,
    +	        'width' => 16, // in mm
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'Qty'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['progress'] = array(
    +	        'rank' => $rank,
    +	        'width' => 19, // in mm
    +	        'status' => false,
    +	        'title' => array(
    +	            'textkey' => 'Progress'
    +	        ),
    +	        'border-left' => false, // add left line separator
    +	    );
    +
    +	    if($this->situationinvoice)
    +	    {
    +	        $this->cols['progress']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['unit'] = array(
    +	        'rank' => $rank,
    +	        'width' => 11, // in mm
    +	        'status' => false,
    +	        'title' => array(
    +	            'textkey' => 'Unit'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +	    if($conf->global->PRODUCT_USE_UNITS){
    +	        $this->cols['unit']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['discount'] = array(
    +	        'rank' => $rank,
    +	        'width' => 13, // in mm
    +	        'status' => false,
    +	        'title' => array(
    +	            'textkey' => 'ReductionShort'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +	    if ($this->atleastonediscount){
    +	        $this->cols['discount']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['totalexcltax'] = array(
    +	        'rank' => $rank,
    +	        'width' => 26, // in mm
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'TotalHT'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +
    +	    $parameters=array(
    +	        'object' => $object,
    +	        'outputlangs' => $outputlangs,
    +	        'hidedetails' => $hidedetails,
    +	        'hidedesc' => $hidedesc,
    +	        'hideref' => $hideref
    +	    );
    +
    +	    $reshook=$hookmanager->executeHooks('defineColumnField',$parameters,$this);    // Note that $object may have been modified by hook
    +	    if ($reshook < 0)
    +	    {
    +	        setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +	    }
    +	    elseif (empty($reshook))
    +	    {
    +	        $this->cols = array_replace($this->cols, $hookmanager->resArray); // array_replace is used to preserve keys
    +	    }
    +	    else
    +	    {
    +	        $this->cols = $hookmanager->resArray;
    +	    }
    +	}
    +}
    diff --git a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php
    index 918b338aa12..ebbe72f94c9 100644
    --- a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php
    +++ b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2014	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2008		Raphael Bertrand	<raphael.bertrand@resultic.fr>
      * Copyright (C) 2010-2013	Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2012      	Christophe Battarel <christophe.battarel@altairis.fr>
    @@ -73,6 +73,4 @@ class pdf_proforma extends pdf_einstein
     
     		parent::_pagehead($pdf, $object, $showaddress, $outputlangs, $titlekey);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/commande/mod_commande_marbre.php b/htdocs/core/modules/commande/mod_commande_marbre.php
    index 9941811006b..215d2380819 100644
    --- a/htdocs/core/modules/commande/mod_commande_marbre.php
    +++ b/htdocs/core/modules/commande/mod_commande_marbre.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -29,10 +29,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/commande/modules_commande.php';
      */
     class mod_commande_marbre extends ModeleNumRefCommandes
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $prefix='CO';
    -	var $error='';
    -	var $nom='Marbre';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	public $prefix='CO';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Marbre';
    +
    +	/**
    +	 * @var string name
    +	 */
    +	public $name='Marbre';
     
     
         /**
    @@ -128,13 +148,14 @@ class mod_commande_marbre extends ModeleNumRefCommandes
     		$yymm = strftime("%y%m",$date);
     
         	if ($max >= (pow(10, 4) - 1)) $num=$max+1;	// If counter > 9999, we do not format on 4 chars, we take number as it is
    -    	else $num = sprintf("%04s",$max+1);
    +    	else $num = sprintf("%04s", $max+1);
     
     		dol_syslog("mod_commande_marbre::getNextValue return ".$this->prefix.$yymm."-".$num);
     		return $this->prefix.$yymm."-".$num;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return next free value
     	 *
    @@ -144,7 +165,7 @@ class mod_commande_marbre extends ModeleNumRefCommandes
     	 */
     	function commande_get_num($objsoc,$objforref)
     	{
    +        // phpcs:enable
     		return $this->getNextValue($objsoc,$objforref);
     	}
    -
     }
    diff --git a/htdocs/core/modules/commande/mod_commande_saphir.php b/htdocs/core/modules/commande/mod_commande_saphir.php
    index 2c8ae2ef3e9..1b08c9c1105 100644
    --- a/htdocs/core/modules/commande/mod_commande_saphir.php
    +++ b/htdocs/core/modules/commande/mod_commande_saphir.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville        <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2007 Laurent Destailleur         <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin               <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin               <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -33,9 +33,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/commande/modules_commande.php';
      */
     class mod_commande_saphir extends ModeleNumRefCommandes
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Saphir';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +	 * @var string Error message
    +	 */
    +	public $error = '';
    +
    +	/**
    +	 * @var string nom
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Saphir';
    +
    +	/**
    +	 * @var string name
    +	 */
    +	public $name='Saphir';
     
     
         /**
    @@ -45,7 +64,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes
          */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
     		$langs->load("bills");
     
    @@ -132,17 +151,17 @@ class mod_commande_saphir extends ModeleNumRefCommandes
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return next free value
     	 *
     	 *  @param	Societe		$objsoc     Object third party
    -	 * 	@param	string		$objforref	Object for number to search
    +	 *  @param	string		$objforref	Object for number to search
     	 *  @return string      			Next free value
          */
         function commande_get_num($objsoc,$objforref)
         {
    +        // phpcs:enable
             return $this->getNextValue($objsoc,$objforref);
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/commande/modules_commande.php b/htdocs/core/modules/commande/modules_commande.php
    index aa6da728f56..d644de33a5d 100644
    --- a/htdocs/core/modules/commande/modules_commande.php
    +++ b/htdocs/core/modules/commande/modules_commande.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
      * Copyright (C) 2012      Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
    @@ -39,26 +39,27 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php';
      */
     abstract class ModelePDFCommandes extends CommonDocGenerator
     {
    -	var $error='';
     
    -	/**
    -	 *  Return list of active generation modules
    -	 *
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return list of active generation modules
    +     *
          *  @param	DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of templates
     	 */
    -	static function liste_modeles($db,$maxfilenamelength=0)
    +	static function liste_modeles($db, $maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
    -		$type='order';
    -		$liste=array();
    +		$type = 'order';
    +		$list = array();
     
     		include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    -		$liste=getListOfModels($db,$type,$maxfilenamelength);
    +		$list = getListOfModels($db, $type, $maxfilenamelength);
     
    -		return $liste;
    +		return $list;
     	}
     }
     
    @@ -71,7 +72,10 @@ abstract class ModelePDFCommandes extends CommonDocGenerator
     
     abstract class ModeleNumRefCommandes
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 *	Return if a module can be used or not
    @@ -146,4 +150,4 @@ abstract class ModeleNumRefCommandes
     		if ($this->version) return $this->version;
     		return $langs->trans("NotAvailable");
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php b/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php
    index 85c52ae877f..22dfc6388b4 100644
    --- a/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php
    +++ b/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php
    @@ -2,7 +2,8 @@
     /* Copyright (C) 2010-2012 	Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2018		Ferran Marcet		<fmarcet@2byte.es>
    -*
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
     * 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
     * the Free Software Foundation; either version 3 of the License, or
    @@ -37,10 +38,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
      */
     class doc_generic_contract_odt extends ModelePDFContract
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +   * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +   */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -50,10 +64,10 @@ class doc_generic_contract_odt extends ModelePDFContract
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT templates";
    @@ -97,8 +111,8 @@ class doc_generic_contract_odt extends ModelePDFContract
     	{
     		global $conf,$langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array('companies', 'errors'));
     
     		$form = new Form($this->db);
     
    @@ -167,6 +181,7 @@ class doc_generic_contract_odt extends ModelePDFContract
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -180,6 +195,7 @@ class doc_generic_contract_odt extends ModelePDFContract
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$hookmanager;
     
     		if (empty($srctemplatepath))
    @@ -201,10 +217,8 @@ class doc_generic_contract_odt extends ModelePDFContract
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills"));
     
     		if ($conf->contrat->dir_output)
     		{
    @@ -341,6 +355,7 @@ class doc_generic_contract_odt extends ModelePDFContract
     				catch(Exception $e)
     				{
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_INFO);
     					return -1;
     				}
     				// After construction $odfHandler->contentXml contains content and
    @@ -354,8 +369,9 @@ class doc_generic_contract_odt extends ModelePDFContract
     				try {
     					$odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8');
     				}
    -				catch(OdfException $e)
    +				catch (OdfException $e)
     				{
    +					dol_syslog($e->getMessage(), LOG_INFO);
     				}
     
     				foreach($tmparray as $key=>$value)
    @@ -371,8 +387,9 @@ class doc_generic_contract_odt extends ModelePDFContract
     							$odfHandler->setVars($key, $value, true, 'UTF-8');
     						}
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -406,9 +423,11 @@ class doc_generic_contract_odt extends ModelePDFContract
     								}
     								catch(OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     								catch(SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlines->merge();
    @@ -432,6 +451,7 @@ class doc_generic_contract_odt extends ModelePDFContract
     					}
     					catch(OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -443,7 +463,7 @@ class doc_generic_contract_odt extends ModelePDFContract
     				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
     						return -1;
     					}
    @@ -451,7 +471,7 @@ class doc_generic_contract_odt extends ModelePDFContract
     				else {
     					try {
     					$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
     						return -1;
     					}
    @@ -477,6 +497,4 @@ class doc_generic_contract_odt extends ModelePDFContract
     
     		return -1;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php
    index 93f1f02afb2..3375e5b7ccc 100644
    --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php
    +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php
    @@ -1,11 +1,12 @@
     <?php
     /* Copyright (C) 2003		Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010	Laurent Destailleur			<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin				<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin				<regis.houssin@inodbox.com>
      * Copyright (C) 2008		Raphael Bertrand (Resultic)	<raphael.bertrand@resultic.fr>
      * Copyright (C) 2011		Fabrice CHERRIER
      * Copyright (C) 2013-2018  Philippe Grand	            <philippe.grand@atoo-net.com>
      * Copyright (C) 2015       Marcos García               <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France             <frederic.france@netlogic.fr>
      *
      * 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
    @@ -39,21 +40,72 @@ require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
      */
     class pdf_strato extends ModelePDFContract
     {
    -	var $db;
    -	var $name;
    -	var $description;
    -	var $type;
    +	/**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
     
    -	var $phpmin = array(4,3,0); // Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +     * @var string model name
    +     */
    +    public $name;
     
    -	var $page_largeur;
    -	var $page_hauteur;
    -	var $format;
    -	var $marge_gauche;
    -	var	$marge_droite;
    -	var	$marge_haute;
    -	var	$marge_basse;
    +	/**
    +     * @var string model description (short text)
    +     */
    +    public $description;
    +
    +	/**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +	/**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +     * @var int page_largeur
    +     */
    +    public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
    +    public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
    +    public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
    +	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
    +	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
    +	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
    +	public $marge_basse;
     
     	/**
     	 * Issuer
    @@ -108,7 +160,8 @@ class pdf_strato extends ModelePDFContract
     		$this->posxdesc=$this->marge_gauche+1;
     	}
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *  Function to build pdf onto disk
          *
          *  @param		CommonObject	$object				Id of object to generate
    @@ -121,13 +174,14 @@ class pdf_strato extends ModelePDFContract
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$hookmanager,$mysoc;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
    -		
    -		// Translations
    +
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "dict", "companies", "contracts"));
     
     		if ($conf->contrat->dir_output)
    @@ -317,7 +371,7 @@ class pdf_strato extends ModelePDFContract
     							$pdf->writeHTMLCell(0, 0, $curX, $curY, dol_concatdesc($txtpredefinedservice, dol_concatdesc($txt, $desc)), 0, 1, 0);
     							$pageposafter=$pdf->getPage();
     							$posyafter=$pdf->GetY();
    -							
    +
     							if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot)))	// There is no space left for total+free text
     							{
     								if ($i == ($nblines-1))	// No more lines, and no space left to show total, so we create a new page
    @@ -341,7 +395,7 @@ class pdf_strato extends ModelePDFContract
     
     						$nexY = $pdf->GetY() + 2;
     						$pageposafter=$pdf->getPage();
    -						
    +
     						$pdf->setPage($pageposbefore);
     						$pdf->setTopMargin($this->marge_haute);
     						$pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    @@ -370,7 +424,7 @@ class pdf_strato extends ModelePDFContract
     							$pdf->setPage($pagenb);
     							$pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
     						}
    -						
    +
     						if (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak)
     						{
     							if ($pagenb == 1)
    @@ -394,16 +448,16 @@ class pdf_strato extends ModelePDFContract
     				if ($pagenb == 1)
     				{
     					$this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 0, 0);
    -					$this->_tab_signature($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforfooter, $outputlangs);
    +					$this->tabSignature($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforfooter, $outputlangs);
     					$bottomlasttab=$this->page_hauteur - $heightforfooter - $heightforfooter + 1;
     				}
     				else
     				{
     					$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 0, 0);
    -					$this->_tab_signature($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, $outputlangs);
    +					$this->tabSignature($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, $outputlangs);
     					$bottomlasttab=$this->page_hauteur - $heightforfooter - $heightforfooter + 1;
     				}
    -				
    +
     				$this->_pagefoot($pdf,$object,$outputlangs);
     				if (method_exists($pdf,'AliasNbPages')) $pdf->AliasNbPages();
     
    @@ -493,7 +547,16 @@ class pdf_strato extends ModelePDFContract
     		$this->printRect($pdf, $this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height+3);	// Rect prend une longueur en 3eme param et 4eme param
     	}
     
    -	function _tab_signature(&$pdf, $tab_top, $tab_height, $outputlangs) {
    +    /**
    +     * Show footer signature of page
    +     * @param   PDF         $pdf            Object PDF
    +     * @param   int         $tab_top        tab height position
    +     * @param   int         $tab_height     tab height
    +     * @param   Translate   $outputlangs    Object language for output
    +     * @return void
    +     */
    +	private function tabSignature(&$pdf, $tab_top, $tab_height, $outputlangs)
    +    {
     		$pdf->SetDrawColor(128,128,128);
     		$posmiddle = $this->marge_gauche + round(($this->page_largeur - $this->marge_gauche - $this->marge_droite)/2);
     		$posy = $tab_top + $tab_height + 3 + 3;
    @@ -523,10 +586,10 @@ class pdf_strato extends ModelePDFContract
     	function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
     	{
     		global $conf,$langs;
    -		
    +
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
    -		
    -		// Translations
    +
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "dict", "contract", "companies"));
     
     		pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
    @@ -705,6 +768,4 @@ class pdf_strato extends ModelePDFContract
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'CONTRACT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/contract/mod_contract_magre.php b/htdocs/core/modules/contract/mod_contract_magre.php
    index 54da8fc55c4..4769ec17f99 100644
    --- a/htdocs/core/modules/contract/mod_contract_magre.php
    +++ b/htdocs/core/modules/contract/mod_contract_magre.php
    @@ -29,10 +29,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/contract/modules_contract.php';
      */
     class mod_contract_magre extends ModelNumRefContracts
     {
    -	var $version='dolibarr';
    -	var $error = '';
    -	var $nom = 'Magre';
    -	var $code_auto=1;
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +	 * @var string Error message
    +	 */
    +	public $error = '';
    +
    +	/**
    +	 * @var string nom
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Magre';
    +
    +	/**
    +	 * @var string name
    +	 */
    +	public $name='Magre';
    +
    +	public $code_auto=1;
     
     	/**
     	 *	Return default description of numbering model
    @@ -117,8 +137,9 @@ class mod_contract_magre extends ModelNumRefContracts
     		return  $numFinal;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 *	Return next value
    +	 *  Return next value
     	 *
     	 *	@param	Societe		$objsoc     third party object
     	 *	@param	Object		$objforref	contract object
    @@ -126,8 +147,7 @@ class mod_contract_magre extends ModelNumRefContracts
     	 */
         function contract_get_num($objsoc,$objforref)
         {
    +        // phpcs:enable
             return $this->getNextValue($objsoc,$objforref);
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/contract/mod_contract_olive.php b/htdocs/core/modules/contract/mod_contract_olive.php
    index 6d22aebeb3d..993f4bf9bfb 100644
    --- a/htdocs/core/modules/contract/mod_contract_olive.php
    +++ b/htdocs/core/modules/contract/mod_contract_olive.php
    @@ -32,15 +32,33 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/contract/modules_contract.php';
      */
     class mod_contract_olive extends ModelNumRefContracts
     {
    +    /**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Olive';
     
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Olive';
     
    -	var $nom='Olive';					// Nom du modele
    -	var $code_modifiable = 1;				// Code modifiable
    -	var $code_modifiable_invalide = 1;		// Code modifiable si il est invalide
    -	var $code_modifiable_null = 1;			// Code modifiables si il est null
    -	var $code_null = 1;						// Code facultatif
    -	var $version='dolibarr';    		// 'development', 'experimental', 'dolibarr'
    -	var $code_auto = 0; 	                // Numerotation automatique
    +	public $code_modifiable = 1;				// Code modifiable
    +
    +	public $code_modifiable_invalide = 1;		// Code modifiable si il est invalide
    +
    +	public $code_modifiable_null = 1;			// Code modifiables si il est null
    +
    +	public $code_null = 1;						// Code facultatif
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';    		// 'development', 'experimental', 'dolibarr'
    +
    +	public $code_auto = 0; 	                // Numerotation automatique
     
     
     	/**
    diff --git a/htdocs/core/modules/contract/mod_contract_serpis.php b/htdocs/core/modules/contract/mod_contract_serpis.php
    index 5dcb8a72baa..e91775f669c 100644
    --- a/htdocs/core/modules/contract/mod_contract_serpis.php
    +++ b/htdocs/core/modules/contract/mod_contract_serpis.php
    @@ -28,11 +28,32 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/contract/modules_contract.php';
      */
     class mod_contract_serpis extends ModelNumRefContracts
     {
    -	var $version='dolibarr';
    -	var $prefix='CT';
    -	var $error='';
    -	var $nom='Serpis';
    -	var $code_auto=1;
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	public $prefix='CT';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Serpis';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Serpis';
    +
    +	public $code_auto=1;
     
     
     	/**
    @@ -132,16 +153,17 @@ class mod_contract_serpis extends ModelNumRefContracts
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return next value
     	 *
     	 *	@param	Societe		$objsoc     third party object
    -	 *	@param	Object		$objforref	contract object
    +	 *	@param	Object		$objforref  contract object
     	 *	@return string      			Value if OK, 0 if KO
     	 */
     	function contract_get_num($objsoc,$objforref)
     	{
    +        // phpcs:enable
     		return $this->getNextValue($objsoc,$objforref);
     	}
    -
     }
    diff --git a/htdocs/core/modules/contract/modules_contract.php b/htdocs/core/modules/contract/modules_contract.php
    index 47a882b7b56..59290de7d82 100644
    --- a/htdocs/core/modules/contract/modules_contract.php
    +++ b/htdocs/core/modules/contract/modules_contract.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
      * Copyright (C) 2011      Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2013      Philippe Grand	    <philippe.grand@atoo-net.com>
    @@ -37,9 +37,13 @@
      */
     abstract class ModelePDFContract extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of active generation modules
     	 *
    @@ -49,6 +53,7 @@ abstract class ModelePDFContract extends CommonDocGenerator
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='contract';
    @@ -67,7 +72,10 @@ abstract class ModelePDFContract extends CommonDocGenerator
      */
     class ModelNumRefContracts
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 *	Return if a module can be used or not
    diff --git a/htdocs/core/modules/dons/html_cerfafr.modules.php b/htdocs/core/modules/dons/html_cerfafr.modules.php
    index c9d2b4984ad..cac7329cf5b 100644
    --- a/htdocs/core/modules/dons/html_cerfafr.modules.php
    +++ b/htdocs/core/modules/dons/html_cerfafr.modules.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2006	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012       Marcos García           <marcosgdf@gmail.com>
      * Copyright (C) 2014-2015  Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2015  		Benoit Bruchard			<benoitb21@gmail.com>
    @@ -38,7 +38,7 @@ class html_cerfafr extends ModeleDon
     	/**
     	 *  Constructor
     	 *
    -	 *  @param      DoliDb		$db      Database handler
    +	 *  @param      DoliDb      $db      Database handler
     	 */
     	function __construct($db)
     	{
    @@ -64,6 +64,7 @@ class html_cerfafr extends ModeleDon
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Write the object to document file to disk
     	 *
    @@ -74,6 +75,7 @@ class html_cerfafr extends ModeleDon
     	 */
     	function write_file($don,$outputlangs,$currency='')
     	{
    +        // phpcs:enable
     		global $user,$conf,$langs,$mysoc;
     
     		$now=dol_now();
    @@ -81,12 +83,8 @@ class html_cerfafr extends ModeleDon
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("products");
    -		$outputlangs->load("donations");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "donations"));
     
     		$currency = !empty($currency) ? $currency : $conf->currency;
     
    @@ -167,7 +165,7 @@ class html_cerfafr extends ModeleDon
     				$form = str_replace('__DATE__',dol_print_date($don->date,'day',false,$outputlangs),$form);
     				//$form = str_replace('__IP__',$user->ip,$form); // TODO $user->ip not exist
     				$form = str_replace('__AMOUNT__', price($don->amount), $form);
    -				$form = str_replace('__AMOUNTLETTERS__',chiffre_en_lettre($don->amount),$form);
    +				$form = str_replace('__AMOUNTLETTERS__', $this->amountToLetters($don->amount),$form);
     				$form = str_replace('__CURRENCY__',$outputlangs->transnoentitiesnoconv("Currency".$currency),$form);
     				$form = str_replace('__CURRENCYCODE__',$conf->currency,$form);
     				$form = str_replace('__MAIN_INFO_SOCIETE_NOM__',$mysoc->name,$form);
    @@ -276,153 +274,163 @@ class html_cerfafr extends ModeleDon
     			return 0;
     		}
     	}
    -}
     
    -function chiffre_en_lettre($montant, $devise1='', $devise2='')
    -{
    -	if(empty($devise1)) $dev1='euros';
    -	else $dev1=$devise1;
    -	if(empty($devise2)) $dev2='centimes';
    -	else $dev2=$devise2;
    -	$valeur_entiere=intval($montant);
    -	$valeur_decimal=intval(round($montant-intval($montant), 2)*100);
    -	$dix_c=intval($valeur_decimal%100/10);
    -	$cent_c=intval($valeur_decimal%1000/100);
    -	$unite[1]=$valeur_entiere%10;
    -	$dix[1]=intval($valeur_entiere%100/10);
    -	$cent[1]=intval($valeur_entiere%1000/100);
    -	$unite[2]=intval($valeur_entiere%10000/1000);
    -	$dix[2]=intval($valeur_entiere%100000/10000);
    -	$cent[2]=intval($valeur_entiere%1000000/100000);
    -	$unite[3]=intval($valeur_entiere%10000000/1000000);
    -	$dix[3]=intval($valeur_entiere%100000000/10000000);
    -	$cent[3]=intval($valeur_entiere%1000000000/100000000);
    -	$chif=array('', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize', 'dix sept', 'dix huit', 'dix neuf');
    -		$secon_c='';
    -		$trio_c='';
    -	for($i=1; $i<=3; $i++){
    -		$prim[$i]='';
    -		$secon[$i]='';
    -		$trio[$i]='';
    -		if($dix[$i]==0){
    +	/**
    +	 * numbers to letters
    +	 *
    +	 * @param   mixed   $montant    amount
    +	 * @param   mixed   $devise1    devise 1 ex: euro
    +	 * @param   mixed   $devise2    devise 2 ex: centimes
    +	 * @return string               amount in letters
    +	 */
    +	private function amountToLetters($montant, $devise1='', $devise2='')
    +	{
    +		$unite = array();
    +		$dix = array();
    +		$cent = array();
    +		if(empty($devise1)) $dev1='euros';
    +		else $dev1=$devise1;
    +		if(empty($devise2)) $dev2='centimes';
    +		else $dev2=$devise2;
    +		$valeur_entiere=intval($montant);
    +		$valeur_decimal=intval(round($montant-intval($montant), 2)*100);
    +		$dix_c=intval($valeur_decimal%100/10);
    +		$cent_c=intval($valeur_decimal%1000/100);
    +		$unite[1]=$valeur_entiere%10;
    +		$dix[1]=intval($valeur_entiere%100/10);
    +		$cent[1]=intval($valeur_entiere%1000/100);
    +		$unite[2]=intval($valeur_entiere%10000/1000);
    +		$dix[2]=intval($valeur_entiere%100000/10000);
    +		$cent[2]=intval($valeur_entiere%1000000/100000);
    +		$unite[3]=intval($valeur_entiere%10000000/1000000);
    +		$dix[3]=intval($valeur_entiere%100000000/10000000);
    +		$cent[3]=intval($valeur_entiere%1000000000/100000000);
    +		$chif=array('', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize', 'dix sept', 'dix huit', 'dix neuf');
    +			$secon_c='';
    +			$trio_c='';
    +		for($i=1; $i<=3; $i++){
    +			$prim[$i]='';
     			$secon[$i]='';
    -			$prim[$i]=$chif[$unite[$i]];
    +			$trio[$i]='';
    +			if($dix[$i]==0){
    +				$secon[$i]='';
    +				$prim[$i]=$chif[$unite[$i]];
    +			}
    +			else if($dix[$i]==1){
    +				$secon[$i]='';
    +				$prim[$i]=$chif[($unite[$i]+10)];
    +			}
    +			else if($dix[$i]==2){
    +				if($unite[$i]==1){
    +				$secon[$i]='vingt et';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +				else {
    +				$secon[$i]='vingt';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +			}
    +			else if($dix[$i]==3){
    +				if($unite[$i]==1){
    +				$secon[$i]='trente et';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +				else {
    +				$secon[$i]='trente';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +			}
    +			else if($dix[$i]==4){
    +				if($unite[$i]==1){
    +				$secon[$i]='quarante et';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +				else {
    +				$secon[$i]='quarante';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +			}
    +			else if($dix[$i]==5){
    +				if($unite[$i]==1){
    +				$secon[$i]='cinquante et';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +				else {
    +				$secon[$i]='cinquante';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +			}
    +			else if($dix[$i]==6){
    +				if($unite[$i]==1){
    +				$secon[$i]='soixante et';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +				else {
    +				$secon[$i]='soixante';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +			}
    +			else if($dix[$i]==7){
    +				if($unite[$i]==1){
    +				$secon[$i]='soixante et';
    +				$prim[$i]=$chif[$unite[$i]+10];
    +				}
    +				else {
    +				$secon[$i]='soixante';
    +				$prim[$i]=$chif[$unite[$i]+10];
    +				}
    +			}
    +			else if($dix[$i]==8){
    +				if($unite[$i]==1){
    +				$secon[$i]='quatre-vingts et';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +				else {
    +				$secon[$i]='quatre-vingt';
    +				$prim[$i]=$chif[$unite[$i]];
    +				}
    +			}
    +			else if($dix[$i]==9){
    +				if($unite[$i]==1){
    +				$secon[$i]='quatre-vingts et';
    +				$prim[$i]=$chif[$unite[$i]+10];
    +				}
    +				else {
    +				$secon[$i]='quatre-vingts';
    +				$prim[$i]=$chif[$unite[$i]+10];
    +				}
    +			}
    +			if($cent[$i]==1) $trio[$i]='cent';
    +			else if($cent[$i]!=0 || $cent[$i]!='') $trio[$i]=$chif[$cent[$i]] .' cents';
     		}
    -		else if($dix[$i]==1){
    -			$secon[$i]='';
    -			$prim[$i]=$chif[($unite[$i]+10)];
    -		}
    -		else if($dix[$i]==2){
    -			if($unite[$i]==1){
    -			$secon[$i]='vingt et';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -			else {
    -			$secon[$i]='vingt';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -		}
    -		else if($dix[$i]==3){
    -			if($unite[$i]==1){
    -			$secon[$i]='trente et';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -			else {
    -			$secon[$i]='trente';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -		}
    -		else if($dix[$i]==4){
    -			if($unite[$i]==1){
    -			$secon[$i]='quarante et';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -			else {
    -			$secon[$i]='quarante';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -		}
    -		else if($dix[$i]==5){
    -			if($unite[$i]==1){
    -			$secon[$i]='cinquante et';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -			else {
    -			$secon[$i]='cinquante';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -		}
    -		else if($dix[$i]==6){
    -			if($unite[$i]==1){
    -			$secon[$i]='soixante et';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -			else {
    -			$secon[$i]='soixante';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -		}
    -		else if($dix[$i]==7){
    -			if($unite[$i]==1){
    -			$secon[$i]='soixante et';
    -			$prim[$i]=$chif[$unite[$i]+10];
    -			}
    -			else {
    -			$secon[$i]='soixante';
    -			$prim[$i]=$chif[$unite[$i]+10];
    -			}
    -		}
    -		else if($dix[$i]==8){
    -			if($unite[$i]==1){
    -			$secon[$i]='quatre-vingts et';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -			else {
    -			$secon[$i]='quatre-vingt';
    -			$prim[$i]=$chif[$unite[$i]];
    -			}
    -		}
    -		else if($dix[$i]==9){
    -			if($unite[$i]==1){
    -			$secon[$i]='quatre-vingts et';
    -			$prim[$i]=$chif[$unite[$i]+10];
    -			}
    -			else {
    -			$secon[$i]='quatre-vingts';
    -			$prim[$i]=$chif[$unite[$i]+10];
    -			}
    -		}
    -		if($cent[$i]==1) $trio[$i]='cent';
    -		else if($cent[$i]!=0 || $cent[$i]!='') $trio[$i]=$chif[$cent[$i]] .' cents';
    +
    +
    +		$chif2=array('', 'dix', 'vingt', 'trente', 'quarante', 'cinquante', 'soixante', 'soixante-dix', 'quatre-vingts', 'quatre-vingts dix');
    +		$secon_c=$chif2[$dix_c];
    +		if($cent_c==1) $trio_c='cent';
    +		else if($cent_c!=0 || $cent_c!='') $trio_c=$chif[$cent_c] .' cents';
    +
    +		if(($cent[3]==0 || $cent[3]=='') && ($dix[3]==0 || $dix[3]=='') && ($unite[3]==1))
    +			$somme = $trio[3]. '  ' .$secon[3]. ' ' . $prim[3]. ' million ';
    +		else if(($cent[3]!=0 && $cent[3]!='') || ($dix[3]!=0 && $dix[3]!='') || ($unite[3]!=0 && $unite[3]!=''))
    +			$somme = $trio[3]. ' ' .$secon[3]. ' ' . $prim[3]. ' millions ';
    +		else
    +			$somme = $trio[3]. ' ' .$secon[3]. ' ' . $prim[3];
    +
    +		if(($cent[2]==0 || $cent[2]=='') && ($dix[2]==0 || $dix[2]=='') && ($unite[2]==1))
    +			$somme = $somme.' mille ';
    +		else if(($cent[2]!=0 && $cent[2]!='') || ($dix[2]!=0 && $dix[2]!='') || ($unite[2]!=0 && $unite[2]!=''))
    +			$somme = $somme. $trio[2]. ' ' .$secon[2]. ' ' . $prim[2]. ' milles ';
    +		else
    +			$somme = $somme. $trio[2]. ' ' .$secon[2]. ' ' . $prim[2];
    +
    +		$somme = $somme. $trio[1]. ' ' .$secon[1]. ' ' . $prim[1];
    +
    +		$somme = $somme. ' '. $dev1 .' ' ;
    +
    +		if(($cent_c=='0' || $cent_c=='') && ($dix_c=='0' || $dix_c==''))
    +			return $somme. ' et z&eacute;ro '. $dev2;
    +		else
    +			return $somme. $trio_c. ' ' .$secon_c. ' ' . $dev2;
     	}
    -
    -
    -$chif2=array('', 'dix', 'vingt', 'trente', 'quarante', 'cinquante', 'soixante', 'soixante-dix', 'quatre-vingts', 'quatre-vingts dix');
    -	$secon_c=$chif2[$dix_c];
    -	if($cent_c==1) $trio_c='cent';
    -	else if($cent_c!=0 || $cent_c!='') $trio_c=$chif[$cent_c] .' cents';
    -
    -	if(($cent[3]==0 || $cent[3]=='') && ($dix[3]==0 || $dix[3]=='') && ($unite[3]==1))
    -		$somme = $trio[3]. '  ' .$secon[3]. ' ' . $prim[3]. ' million ';
    -	else if(($cent[3]!=0 && $cent[3]!='') || ($dix[3]!=0 && $dix[3]!='') || ($unite[3]!=0 && $unite[3]!=''))
    -		$somme = $trio[3]. ' ' .$secon[3]. ' ' . $prim[3]. ' millions ';
    -	else
    -		$somme = $trio[3]. ' ' .$secon[3]. ' ' . $prim[3];
    -
    -	if(($cent[2]==0 || $cent[2]=='') && ($dix[2]==0 || $dix[2]=='') && ($unite[2]==1))
    -		$somme = $somme.' mille ';
    -	else if(($cent[2]!=0 && $cent[2]!='') || ($dix[2]!=0 && $dix[2]!='') || ($unite[2]!=0 && $unite[2]!=''))
    -		$somme = $somme. $trio[2]. ' ' .$secon[2]. ' ' . $prim[2]. ' milles ';
    -	else
    -		$somme = $somme. $trio[2]. ' ' .$secon[2]. ' ' . $prim[2];
    -
    -	$somme = $somme. $trio[1]. ' ' .$secon[1]. ' ' . $prim[1];
    -
    -	$somme = $somme. ' '. $dev1 .' ' ;
    -
    -	if(($cent_c=='0' || $cent_c=='') && ($dix_c=='0' || $dix_c==''))
    -		return $somme. ' et z&eacute;ro '. $dev2;
    -	else
    -		return $somme. $trio_c. ' ' .$secon_c. ' ' . $dev2;
    -
     }
    diff --git a/htdocs/core/modules/dons/modules_don.php b/htdocs/core/modules/dons/modules_don.php
    index 4949cce94e1..aee52063227 100644
    --- a/htdocs/core/modules/dons/modules_don.php
    +++ b/htdocs/core/modules/dons/modules_don.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005      Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -34,17 +34,22 @@ require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php';
      */
     abstract class ModeleDon extends CommonDocGenerator
     {
    -    var $error='';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return list of active generation modules
          *
    -     *  @param	DoliDB	$db     			Database handler
    -     *  @param  integer	$maxfilenamelength  Max length of value to show
    +     *  @param	DoliDB  $db     			Database handler
    +     *  @param  integer $maxfilenamelength  Max length of value to show
          *  @return	array						List of templates
          */
         static function liste_modeles($db,$maxfilenamelength=0)
         {
    +        // phpcs:enable
             global $conf;
     
             $type='donation';
    @@ -63,7 +68,10 @@ abstract class ModeleDon extends CommonDocGenerator
      */
     abstract class ModeleNumRefDons
     {
    -    var $error='';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
         /**
          * 	Return if a module can be used or not
    @@ -138,4 +146,3 @@ abstract class ModeleNumRefDons
             return $langs->trans("NotAvailable");
         }
     }
    -
    diff --git a/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php b/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php
    index 73fc323c198..4d7cc056f12 100644
    --- a/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php
    +++ b/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php
    @@ -2,9 +2,10 @@
     /* Copyright (C) 2010-2012 	Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2014		Marcos García		<marcosgdf@gmail.com>
    -  * Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
    -
    -*
    + * Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
    + * Copyright (C) 2018       Philippe Grand      <philippe.grand@atoo-net.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
     * 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
     * the Free Software Foundation; either version 3 of the License, or
    @@ -39,10 +40,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
      */
     class doc_generic_shipment_odt extends ModelePdfExpedition
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +   * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +   */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -52,10 +66,10 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT templates";
    @@ -99,8 +113,8 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     	{
     		global $conf,$langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("errors","companies"));
     
     		$form = new Form($this->db);
     
    @@ -177,6 +191,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -190,6 +205,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$hookmanager;
     
     		if (empty($srctemplatepath))
    @@ -211,10 +227,8 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills"));
     
     		if ($conf->expedition->dir_output."/sending")
     		{
    @@ -336,6 +350,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     				catch(Exception $e)
     				{
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_INFO);
     					return -1;
     				}
     				// After construction $odfHandler->contentXml contains content and
    @@ -351,6 +366,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     				}
     				catch(OdfException $e)
     				{
    +					dol_syslog($e->getMessage(), LOG_INFO);
     				}
     
     				// Make substitutions into odt of user info
    @@ -370,8 +386,9 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     							$odfHandler->setVars($key, $value, true, 'UTF-8');
     						}
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     				// Make substitutions into odt of mysoc
    @@ -391,8 +408,9 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     							$odfHandler->setVars($key, $value, true, 'UTF-8');
     						}
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     				// Make substitutions into odt of thirdparty
    @@ -410,8 +428,9 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     							$odfHandler->setVars($key, $value, true, 'UTF-8');
     						}
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -432,6 +451,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     						}
     						catch(OdfException $e)
     						{
    +                            dol_syslog($e->getMessage(), LOG_INFO);
     						}
     					}
     				}
    @@ -457,6 +477,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     					}
     					catch(OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     				// Replace tags of lines
    @@ -489,9 +510,11 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     								}
     								catch(OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     								catch(SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlines->merge();
    @@ -499,7 +522,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     						$odfHandler->mergeSegment($listlines);
     					}
     				}
    -				catch(OdfException $e)
    +				catch (OdfException $e)
     				{
     					$this->error=$e->getMessage();
     					dol_syslog($this->error, LOG_WARNING);
    @@ -513,8 +536,9 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     					try {
     						$odfHandler->setVars($key, $value, true, 'UTF-8');
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -526,16 +550,18 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
     				else {
     					try {
     					$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
    @@ -560,6 +586,4 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
     
     		return -1;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
    index 0e2583f9e41..bfda0e8dfad 100644
    --- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
    +++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Florian Henry		<florian.henry@open-concept.pro>
      * Copyright (C) 2015      Marcos García       <marcosgdf@gmail.com>
      *
    @@ -33,11 +33,82 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
     
     
     /**
    - *	Classe permettant de generer les borderaux envoi au modele Merou
    + *	Class to build sending documents with model Merou
      */
     class pdf_merou extends ModelePdfExpedition
     {
    -	var $emetteur;	// Objet societe qui emet
    +    /**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
    +
    +	/**
    +     * @var string model name
    +     */
    +    public $name;
    +
    +	/**
    +     * @var string model description (short text)
    +     */
    +    public $description;
    +
    +	/**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +	/**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +     * @var int page_largeur
    +     */
    +    public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
    +    public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
    +    public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
    +	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
    +	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
    +	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
    +	public $marge_basse;
    +
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
     
     	/**
    @@ -65,12 +136,13 @@ class pdf_merou extends ModelePdfExpedition
     
     		$this->option_logo = 1;
     
    -		// Recupere emmetteur
    +		// Get source company
     		$this->emetteur=$mysoc;
     		if (! $this->emetteur->country_code) $this->emetteur->country_code=substr($langs->defaultlang,-2);    // By default if not defined
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build pdf onto disk
     	 *
    @@ -84,6 +156,7 @@ class pdf_merou extends ModelePdfExpedition
     	 */
     	function write_file(&$object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$conf,$langs,$mysoc,$hookmanager;
     
     		$object->fetch_thirdparty();
    @@ -91,10 +164,10 @@ class pdf_merou extends ModelePdfExpedition
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
    -		
    -		// Translations
    +
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "bills", "products", "dict", "companies", "propal", "deliveries", "sendings", "productbatch"));
    -		
    +
     		if ($conf->expedition->dir_output)
     		{
     			$object->fetch_thirdparty();
    @@ -261,7 +334,7 @@ class pdf_merou extends ModelePdfExpedition
     					$pdf->SetDrawColor(120,120,120);
     					$pdf->Rect(10+3, $curY, 3, 3);
     					$pdf->Rect(20+3, $curY, 3, 3);
    -					
    +
     					//Insertion de la reference du produit
     					$pdf->SetXY(30, $curY);
     					$pdf->SetFont('','B', $default_font_size - 3);
    @@ -354,7 +427,7 @@ class pdf_merou extends ModelePdfExpedition
                         @chmod($file, octdec($conf->global->MAIN_UMASK));
     
     				$this->result = array('fullpath'=>$file);
    -                
    +
     				return 1;
     			}
     			else
    @@ -386,7 +459,7 @@ class pdf_merou extends ModelePdfExpedition
     	{
     		global $langs;
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
    -		
    +
     		// Translations
     		$langs->loadLangs(array("main", "bills"));
     
    @@ -572,7 +645,7 @@ class pdf_merou extends ModelePdfExpedition
     
     		if (! empty($object->tracking_number))
     		{
    -			$object->GetUrlTrackingStatus($object->tracking_number);
    +			$object->getUrlTrackingStatus($object->tracking_number);
     			if (! empty($object->tracking_url))
     			{
     				if ($object->shipping_method_id > 0)
    diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
    index 00b57fa416a..84f73cde1c6 100644
    --- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
    +++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2012 Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2014-2015 Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2018      Frédéric France      <frederic.france@netlogic.fr>
      *
    @@ -32,11 +32,82 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
     
     
     /**
    - *	Classe permettant de generer les borderaux envoi au modele Rouget
    + *	Class to build sending documents with model Rouget
      */
     class pdf_rouget extends ModelePdfExpedition
     {
    -	var $emetteur;	// Objet societe qui emet
    +    /**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
    +
    +    /**
    +     * @var string model name
    +     */
    +    public $name;
    +
    +    /**
    +     * @var string model description (short text)
    +     */
    +    public $description;
    +
    +	/**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +	/**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +     * @var int page_largeur
    +     */
    +    public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
    +    public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
    +    public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
    +	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
    +	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
    +	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
    +	public $marge_basse;
    +
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
     
     	/**
    @@ -75,8 +146,7 @@ class pdf_rouget extends ModelePdfExpedition
     		$this->posxqtytoship=$this->page_largeur - $this->marge_droite - 28;
     		$this->posxpuht=$this->page_largeur - $this->marge_droite;
     
    -		if (!empty($conf->global->MAIN_PDF_SHIPPING_DISPLAY_AMOUNT_HT)) {	// Show also the prices
    -
    +		if (!empty($conf->global->SHIPPING_PDF_DISPLAY_AMOUNT_HT)) {	// Show also the prices
     			$this->posxweightvol=$this->page_largeur - $this->marge_droite - 118;
     			$this->posxqtyordered=$this->page_largeur - $this->marge_droite - 96;
     			$this->posxqtytoship=$this->page_largeur - $this->marge_droite - 68;
    @@ -102,6 +172,7 @@ class pdf_rouget extends ModelePdfExpedition
     		}
     	}
     
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build pdf onto disk
     	 *
    @@ -115,6 +186,7 @@ class pdf_rouget extends ModelePdfExpedition
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +		// phpcs:enable
     		global $user,$conf,$langs,$hookmanager;
     
     		$object->fetch_thirdparty();
    @@ -123,7 +195,7 @@ class pdf_rouget extends ModelePdfExpedition
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		// Translations
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "bills", "products", "dict", "companies", "propal", "deliveries", "sendings", "productbatch"));
     
     		$nblignes = count($object->lines);
    @@ -301,7 +373,7 @@ class pdf_rouget extends ModelePdfExpedition
     					// Tracking number
     					if (! empty($object->tracking_number))
     					{
    -						$object->GetUrlTrackingStatus($object->tracking_number);
    +						$object->getUrlTrackingStatus($object->tracking_number);
     						if (! empty($object->tracking_url))
     						{
     							if ($object->shipping_method_id > 0)
    @@ -461,8 +533,11 @@ class pdf_rouget extends ModelePdfExpedition
     					    $voltxt=round($object->lines[$i]->volume * $object->lines[$i]->qty_shipped, 5).' '.measuring_units_string($object->lines[$i]->volume_units?$object->lines[$i]->volume_units:0,"volume");
     					}
     
    -					$pdf->writeHTMLCell($this->posxqtyordered - $this->posxweightvol + 2, 3, $this->posxweightvol - 1, $curY, $weighttxt.(($weighttxt && $voltxt)?'<br>':'').$voltxt, 0, 0, false, true, 'C');
    -					//$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), 3, $weighttxt.(($weighttxt && $voltxt)?'<br>':'').$voltxt,'','C');
    +					if (empty($conf->global->SHIPPING_PDF_HIDE_WEIGHT_AND_VOLUME))
    +					{
    +						$pdf->writeHTMLCell($this->posxqtyordered - $this->posxweightvol + 2, 3, $this->posxweightvol - 1, $curY, $weighttxt.(($weighttxt && $voltxt)?'<br>':'').$voltxt, 0, 0, false, true, 'C');
    +						//$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), 3, $weighttxt.(($weighttxt && $voltxt)?'<br>':'').$voltxt,'','C');
    +					}
     
     					if (empty($conf->global->SHIPPING_PDF_HIDE_ORDERED))
     					{
    @@ -470,10 +545,13 @@ class pdf_rouget extends ModelePdfExpedition
     					   $pdf->MultiCell(($this->posxqtytoship - $this->posxqtyordered), 3, $object->lines[$i]->qty_asked,'','C');
     					}
     
    -					$pdf->SetXY($this->posxqtytoship, $curY);
    -					$pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 3, $object->lines[$i]->qty_shipped,'','C');
    +					if (empty($conf->global->SHIPPING_PDF_HIDE_QTYTOSHIP))
    +					{
    +						$pdf->SetXY($this->posxqtytoship, $curY);
    +						$pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 3, $object->lines[$i]->qty_shipped,'','C');
    +					}
     
    -					if(!empty($conf->global->MAIN_PDF_SHIPPING_DISPLAY_AMOUNT_HT))
    +					if(!empty($conf->global->SHIPPING_PDF_DISPLAY_AMOUNT_HT))
     					{
     						$pdf->SetXY($this->posxpuht, $curY);
     						$pdf->MultiCell(($this->posxtotalht - $this->posxpuht-1), 3, price($object->lines[$i]->subprice, 0, $outputlangs),'','R');
    @@ -581,6 +659,7 @@ class pdf_rouget extends ModelePdfExpedition
     		}
     	}
     
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show total to pay
     	 *
    @@ -593,6 +672,7 @@ class pdf_rouget extends ModelePdfExpedition
     	 */
     	function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs)
     	{
    +		// phpcs:enable
     		global $conf,$mysoc;
     
             $sign=1;
    @@ -646,35 +726,40 @@ class pdf_rouget extends ModelePdfExpedition
             	$pdf->MultiCell($this->posxqtytoship - $this->posxqtyordered, $tab2_hl, $totalOrdered, 0, 'C', 1);
             }
     
    -    	$pdf->SetXY($this->posxqtytoship, $tab2_top + $tab2_hl * $index);
    -    	$pdf->MultiCell($this->posxpuht - $this->posxqtytoship, $tab2_hl, $totalToShip, 0, 'C', 1);
    -
    -		if(!empty($conf->global->MAIN_PDF_SHIPPING_DISPLAY_AMOUNT_HT)) {
    +        if (empty($conf->global->SHIPPING_PDF_HIDE_QTYTOSHIP))
    +        {
    +        	$pdf->SetXY($this->posxqtytoship, $tab2_top + $tab2_hl * $index);
    +        	$pdf->MultiCell($this->posxpuht - $this->posxqtytoship, $tab2_hl, $totalToShip, 0, 'C', 1);
    +        }
     
    +		if (!empty($conf->global->SHIPPING_PDF_DISPLAY_AMOUNT_HT))
    +		{
     	    	$pdf->SetXY($this->posxpuht, $tab2_top + $tab2_hl * $index);
     	    	$pdf->MultiCell($this->posxtotalht - $this->posxpuht, $tab2_hl, '', 0, 'C', 1);
     
     	    	$pdf->SetXY($this->posxtotalht, $tab2_top + $tab2_hl * $index);
     	    	$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxtotalht, $tab2_hl, price($object->total_ht, 0, $outputlangs), 0, 'C', 1);
    -
     		}
     
    -		// Total Weight
    -		if ($totalWeighttoshow)
    +		if (empty($conf->global->SHIPPING_PDF_HIDE_WEIGHT_AND_VOLUME))
     		{
    -    		$pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * $index);
    -    		$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), $tab2_hl, $totalWeighttoshow, 0, 'C', 1);
    +			// Total Weight
    +			if ($totalWeighttoshow)
    +			{
    +	    		$pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * $index);
    +	    		$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), $tab2_hl, $totalWeighttoshow, 0, 'C', 1);
     
    -    		$index++;
    -		}
    -		if ($totalVolumetoshow)
    -		{
    -    		$pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * $index);
    -    		$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), $tab2_hl, $totalVolumetoshow, 0, 'C', 1);
    +	    		$index++;
    +			}
    +			if ($totalVolumetoshow)
    +			{
    +	    		$pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * $index);
    +	    		$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), $tab2_hl, $totalVolumetoshow, 0, 'C', 1);
     
    -		    $index++;
    +			    $index++;
    +			}
    +			if (! $totalWeighttoshow && ! $totalVolumetoshow) $index++;
     		}
    -		if (! $totalWeighttoshow && ! $totalVolumetoshow) $index++;
     
     		$pdf->SetTextColor(0,0,0);
     
    @@ -721,11 +806,14 @@ class pdf_rouget extends ModelePdfExpedition
     			$pdf->MultiCell($this->posxqtyordered - $this->posxdesc, 2, $outputlangs->transnoentities("Description"), '', 'L');
     		}
     
    -		$pdf->line($this->posxweightvol-1, $tab_top, $this->posxweightvol-1, $tab_top + $tab_height);
    -		if (empty($hidetop))
    +		if (empty($conf->global->SHIPPING_PDF_HIDE_WEIGHT_AND_VOLUME))
     		{
    -			$pdf->SetXY($this->posxweightvol-1, $tab_top+1);
    -			$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), 2, $outputlangs->transnoentities("WeightVolShort"),'','C');
    +			$pdf->line($this->posxweightvol-1, $tab_top, $this->posxweightvol-1, $tab_top + $tab_height);
    +			if (empty($hidetop))
    +			{
    +				$pdf->SetXY($this->posxweightvol-1, $tab_top+1);
    +				$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), 2, $outputlangs->transnoentities("WeightVolShort"),'','C');
    +			}
     		}
     
             if (empty($conf->global->SHIPPING_PDF_HIDE_ORDERED))
    @@ -738,14 +826,17 @@ class pdf_rouget extends ModelePdfExpedition
         		}
             }
     
    -		$pdf->line($this->posxqtytoship-1, $tab_top, $this->posxqtytoship-1, $tab_top + $tab_height);
    -		if (empty($hidetop))
    -		{
    -			$pdf->SetXY($this->posxqtytoship, $tab_top+1);
    -			$pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 2, $outputlangs->transnoentities("QtyToShip"),'','C');
    -		}
    +        if (empty($conf->global->SHIPPING_PDF_HIDE_QTYTOSHIP))
    +        {
    +			$pdf->line($this->posxqtytoship-1, $tab_top, $this->posxqtytoship-1, $tab_top + $tab_height);
    +			if (empty($hidetop))
    +			{
    +				$pdf->SetXY($this->posxqtytoship, $tab_top+1);
    +				$pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 2, $outputlangs->transnoentities("QtyToShip"),'','C');
    +			}
    +        }
     
    -		if(!empty($conf->global->MAIN_PDF_SHIPPING_DISPLAY_AMOUNT_HT)) {
    +		if (!empty($conf->global->SHIPPING_PDF_DISPLAY_AMOUNT_HT)) {
     
     			$pdf->line($this->posxpuht-1, $tab_top, $this->posxpuht-1, $tab_top + $tab_height);
     			if (empty($hidetop))
    @@ -760,9 +851,7 @@ class pdf_rouget extends ModelePdfExpedition
     				$pdf->SetXY($this->posxtotalht-1, $tab_top+1);
     				$pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxtotalht), 2, $outputlangs->transnoentities("TotalHT"),'','C');
     			}
    -
     		}
    -
     	}
     
     	/**
    @@ -1028,6 +1117,4 @@ class pdf_rouget extends ModelePdfExpedition
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'SHIPPING_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/expedition/mod_expedition_ribera.php b/htdocs/core/modules/expedition/mod_expedition_ribera.php
    index c002da1eee2..35a5eb2325b 100644
    --- a/htdocs/core/modules/expedition/mod_expedition_ribera.php
    +++ b/htdocs/core/modules/expedition/mod_expedition_ribera.php
    @@ -29,9 +29,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/expedition/modules_expedition.php
      */
     class mod_expedition_ribera extends ModelNumRefExpedition
     {
    -	var $version='dolibarr';
    -	var $error = '';
    -	var $nom = 'Ribera';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +	 * @var string Error message
    +	 */
    +	public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Ribera';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Ribera';
     
     	/**
     	 *	Return default description of numbering model
    @@ -40,7 +59,7 @@ class mod_expedition_ribera extends ModelNumRefExpedition
     	 */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
     		$langs->load("bills");
     
    @@ -121,6 +140,7 @@ class mod_expedition_ribera extends ModelNumRefExpedition
     		return  $numFinal;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return next free value
     	 *
    @@ -130,8 +150,7 @@ class mod_expedition_ribera extends ModelNumRefExpedition
     	 */
         function expedition_get_num($objsoc,$objforref)
         {
    +        // phpcs:enable
             return $this->getNextValue($objsoc,$objforref);
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/expedition/mod_expedition_safor.php b/htdocs/core/modules/expedition/mod_expedition_safor.php
    index 826ba6665c4..2ebf9335755 100644
    --- a/htdocs/core/modules/expedition/mod_expedition_safor.php
    +++ b/htdocs/core/modules/expedition/mod_expedition_safor.php
    @@ -28,10 +28,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/expedition/modules_expedition.php
      */
     class mod_expedition_safor extends ModelNumRefExpedition
     {
    -	var $version='dolibarr';
    -	var $prefix='SH';
    -	var $error='';
    -	var $nom='Safor';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	public $prefix='SH';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Safor';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Safor';
     
     
     	/**
    @@ -130,6 +150,7 @@ class mod_expedition_safor extends ModelNumRefExpedition
     		return $this->prefix.$yymm."-".$num;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return next free value
     	 *
    @@ -139,7 +160,7 @@ class mod_expedition_safor extends ModelNumRefExpedition
     	 */
     	function expedition_get_num($objsoc,$objforref)
     	{
    +        // phpcs:enable
     		return $this->getNextValue($objsoc,$objforref);
     	}
    -
     }
    diff --git a/htdocs/core/modules/expedition/modules_expedition.php b/htdocs/core/modules/expedition/modules_expedition.php
    index f46fa33c5f1..a22ae0d0f99 100644
    --- a/htdocs/core/modules/expedition/modules_expedition.php
    +++ b/htdocs/core/modules/expedition/modules_expedition.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
      * Copyright (C) 2011      Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2011-2013 Philippe Grand       <philippe.grand@atoo-net.com>
    @@ -36,9 +36,13 @@
      */
     abstract class ModelePdfExpedition extends CommonDocGenerator
     {
    -    var $error='';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation modules
     	 *
    @@ -48,6 +52,7 @@ abstract class ModelePdfExpedition extends CommonDocGenerator
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='shipping';
    @@ -66,7 +71,10 @@ abstract class ModelePdfExpedition extends CommonDocGenerator
      */
     abstract class ModelNumRefExpedition
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/** Return if a model can be used or not
     	 *
    diff --git a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php
    index 0137c8e4c06..9851e1781e2 100644
    --- a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php
    +++ b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php
    @@ -1,7 +1,9 @@
     <?php
    -/* Copyright (C) 2015 Laurent Destailleur    <eldy@users.sourceforge.net>
    - * Copyright (C) 2015 Alexandre Spangaro     <aspangaro.dolibarr@gmail.com>
    - * Copyright (C) 2016-2018 Philippe Grand	 <philippe.grand@atoo-net.com>
    +/* Copyright (C) 2015       Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2015       Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2016-2018  Philippe Grand          <philippe.grand@atoo-net.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + * Copyright (C) 2018       Francis Appels          <francis.appels@z-application.com>
      *
      * 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
    @@ -52,24 +54,64 @@ class pdf_standard extends ModeleExpenseReport
          * @var string model description (short text)
          */
         public $description;
    -    
    +
     	/**
          * @var string document type
          */
         public $type;
     
    -    var $phpmin = array(4,3,0); // Minimum version of PHP required by module
    -    var $version = 'dolibarr';
    +    /**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
     
    -    var $page_largeur;
    -    var $page_hauteur;
    -    var $format;
    -	var $marge_gauche;
    -	var	$marge_droite;
    -	var	$marge_haute;
    -	var	$marge_basse;
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
     
    -    var $emetteur;	// Objet societe qui emet
    +	/**
    +     * @var int page_largeur
    +     */
    +    public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
    +    public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
    +    public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
    +	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
    +	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
    +	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
    +	public $marge_basse;
    +
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
     
     	/**
    @@ -80,7 +122,7 @@ class pdf_standard extends ModeleExpenseReport
     	function __construct($db)
     	{
     		global $conf, $langs, $mysoc;
    -		
    +
     		// Translations
     		$langs->loadLangs(array("main", "trips", "projects"));
     
    @@ -110,7 +152,7 @@ class pdf_standard extends ModeleExpenseReport
     		$this->option_freetext = 1;				   // Support add of a personalised text
     		$this->option_draft_watermark = 1;		   // Support add of a watermark on drafts
     
    -		$this->franchise=!$mysoc->tva_assuj;
    +		$this->franchise = !$mysoc->tva_assuj;
     
     		// Get source company
     		$this->emetteur=$mysoc;
    @@ -119,19 +161,19 @@ class pdf_standard extends ModeleExpenseReport
     		// Define position of columns
     		$this->posxpiece=$this->marge_gauche+1;
     		$this->posxcomment=$this->marge_gauche+10;
    -		$this->posxdate=88;
    -		$this->posxtype=107;
    -		$this->posxprojet=120;
    -		$this->posxtva=138;
    -		$this->posxup=154;
    +		//$this->posxdate=88;
    +		//$this->posxtype=107;
    +		//$this->posxprojet=120;
    +		$this->posxtva=130;
    +		$this->posxup=145;
     		$this->posxqty=168;
     		$this->postotalttc=178;
    -        if (empty($conf->projet->enabled)) {
    -            $this->posxtva-=20;
    -            $this->posxup-=20;
    -            $this->posxqty-=20;
    -            $this->postotalttc-=20;
    -        }
    +        // if (empty($conf->projet->enabled)) {
    +        //     $this->posxtva-=20;
    +        //     $this->posxup-=20;
    +        //     $this->posxqty-=20;
    +        //     $this->postotalttc-=20;
    +        // }
     		if ($this->page_largeur < 210) // To work with US executive format
     		{
     			$this->posxdate-=20;
    @@ -150,7 +192,8 @@ class pdf_standard extends ModeleExpenseReport
     	}
     
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *  Function to build pdf onto disk
          *
          *  @param		Object		$object				Object to generate
    @@ -161,24 +204,23 @@ class pdf_standard extends ModeleExpenseReport
          *  @param		int			$hideref			Do not show ref
          *  @return     int             				1=OK, 0=KO
     	 */
    -	function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
    +	function write_file($object, $outputlangs, $srctemplatepath = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0)
     	{
    -		global $user,$langs,$conf,$mysoc,$db,$hookmanager;
    +        // phpcs:enable
    +		global $user, $langs, $conf, $mysoc, $db, $hookmanager;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
    -		
    -		// Translations
    -		$outputlangs->loadLangs(array("main", "trips", "projects", "dict"));
    +
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "trips", "projects", "dict", "bills", "banks"));
     
     		$nblignes = count($object->lines);
     
    -		if ($conf->expensereport->dir_output)
    -		{
    +		if ($conf->expensereport->dir_output) {
     			// Definition of $dir and $file
    -			if ($object->specimen)
    -			{
    +			if ($object->specimen) {
     				$dir = $conf->expensereport->dir_output;
     				$file = $dir . "/SPECIMEN.pdf";
     			}
    @@ -216,9 +258,10 @@ class pdf_standard extends ModeleExpenseReport
     				$default_font_size = pdf_getPDFFontSize($outputlangs);	// Must be after pdf_getInstance
     				$heightforinfotot = 40;	// Height reserved to output the info and total part
     		        $heightforfreetext= (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT)?$conf->global->MAIN_PDF_FREETEXT_HEIGHT:5);	// Height reserved to output the free text on last page
    -	            $heightforfooter = $this->marge_basse + 8;	// Height reserved to output the footer (value include bottom margin)
    +		        $heightforfooter = $this->marge_basse + 12;	// Height reserved to output the footer (value include bottom margin)
     	            if ($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS >0) $heightforfooter+= 6;
    -                $pdf->SetAutoPageBreak(1,0);
    +
    +	            $pdf->SetAutoPageBreak(1,0);
     
                     if (class_exists('TCPDF'))
                     {
    @@ -237,7 +280,7 @@ class pdf_standard extends ModeleExpenseReport
     				$pagenb=0;
     				$pdf->SetDrawColor(128,128,128);
     
    -				$pdf->SetTitle($outputlangs->convToOutputCharset($object->ref_number));
    +				$pdf->SetTitle($outputlangs->convToOutputCharset($object->ref));
     				$pdf->SetSubject($outputlangs->transnoentities("Trips"));
     				$pdf->SetCreator("Dolibarr ".DOL_VERSION);
     				$pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs)));
    @@ -303,82 +346,47 @@ class pdf_standard extends ModeleExpenseReport
     				$nexY = $tab_top + 7;
     
     				// Loop on each lines
    -				for ($i = 0 ; $i < $nblignes ; $i++)
    -				{
    -					$piece_comptable = $i +1;
    -
    +				for ($i = 0 ; $i < $nblignes ; $i++) {
     					$pdf->SetFont('','', $default_font_size - 2);   // Into loop to work with multipage
     					$pdf->SetTextColor(0,0,0);
     
     					$pdf->setTopMargin($tab_top_newpage);
     					$pdf->setPageOrientation('', 1, $heightforfooter+$heightforfreetext+$heightforinfotot);	// The only function to edit the bottom margin of current page to set it.
    -					$pageposbefore=$pdf->getPage();
    +					$pageposbefore = $pdf->getPage();
                         $curY = $nexY;
    -
    -					$pdf->SetFont('','', $default_font_size - 1);
    -
    -                    // Accountancy piece
    -                    $pdf->SetXY($this->posxpiece, $curY);
    -                    $pdf->writeHTMLCell($this->posxcomment-$this->posxpiece-0.8, 4, $this->posxpiece-1, $curY, $piece_comptable, 0, 1);
    -                    $curY = ($pdf->PageNo() > $pageposbefore) ? $pdf->GetY()-4 : $curY;
    -
    -                    // Comments
    -                    $pdf->SetXY($this->posxcomment, $curY );
    -                    $pdf->writeHTMLCell($this->posxdate-$this->posxcomment-0.8, 4, $this->posxcomment-1, $curY, $object->lines[$i]->comments, 0, 1);
    -                    $curY = ($pdf->PageNo() > $pageposbefore) ? $pdf->GetY()-4 : $curY;
    -
    -                    // Date
    -					$pdf->SetXY($this->posxdate -1, $curY);
    -					$pdf->MultiCell($this->posxtype-$this->posxdate-0.8, 4, dol_print_date($object->lines[$i]->date,"day",false,$outputlangs), 0, 'C');
    -
    -                    // Type
    -					$pdf->SetXY($this->posxtype -1, $curY);
    -					$nextColumnPosX = $this->posxup;
    -                    if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) {
    -                        $nextColumnPosX = $this->posxtva;
    -                    }
    -                    if (!empty($conf->projet->enabled)) {
    -                        $nextColumnPosX = $this->posxprojet;
    -                    }
    -
    -                    $expensereporttypecode = $object->lines[$i]->type_fees_code;
    -                    $expensereporttypecodetoshow = $outputlangs->transnoentities($expensereporttypecode);
    -                    if ($expensereporttypecodetoshow == $expensereporttypecode)
    -                    {
    -                    	$expensereporttypecodetoshow = preg_replace('/^(EX_|TF_)/', '', $expensereporttypecodetoshow);
    -                    }
    -                    $expensereporttypecodetoshow = dol_trunc($expensereporttypecodetoshow, 9);	// 10 is too much
    -
    -                    $pdf->MultiCell($nextColumnPosX-$this->posxtype-0.8, 4, $expensereporttypecodetoshow, 0, 'C');
    -
    -                    // Project
    -					if (! empty($conf->projet->enabled))
    +                    $pdf->startTransaction();
    +                    $this->printLine($pdf, $object, $i, $curY, $default_font_size, $outputlangs, $hidedetails);
    +                    $pageposafter=$pdf->getPage();
    +					if ($pageposafter > $pageposbefore) {
    +                        // There is a pagebreak
    +						$pdf->rollbackTransaction(true);
    +						$pageposafter = $pageposbefore;
    +						//print $pageposafter.'-'.$pageposbefore;exit;
    +						$pdf->setPageOrientation('', 1, $heightforfooter);	// The only function to edit the bottom margin of current page to set it.
    +						$this->printLine($pdf, $object, $i, $curY, $default_font_size, $outputlangs, $hidedetails);
    +						$pageposafter = $pdf->getPage();
    +						$posyafter = $pdf->GetY();
    +						//var_dump($posyafter); var_dump(($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))); exit;
    +						if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))) {
    +                            // There is no space left for total+free text
    +							if ($i == ($nblignes-1)) {
    +                                // No more lines, and no space left to show total, so we create a new page
    +								$pdf->AddPage('', '', true);
    +								if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +								if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +								$pdf->setPage($pageposafter+1);
    +							}
    +						}
    +						else
    +						{
    +							// We found a page break
    +							$showpricebeforepagebreak=0;
    +						}
    +					}
    +					else	// No pagebreak
     					{
    -                        $pdf->SetFont('','', $default_font_size - 1);
    -                        $pdf->SetXY($this->posxprojet, $curY);
    -                        $pdf->MultiCell($this->posxtva-$this->posxprojet-0.8, 4, $object->lines[$i]->projet_ref, 0, 'C');
    -                    }
    -
    -					// VAT Rate
    -					if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))
    -					{
    -						$vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails);
    -						$pdf->SetXY($this->posxtva, $curY);
    -						$pdf->MultiCell($this->posxup-$this->posxtva-0.8, 4,$vat_rate, 0, 'C');
    -                    }
    -
    -					// Unit price
    -					$pdf->SetXY($this->posxup, $curY);
    -					$pdf->MultiCell($this->posxqty-$this->posxup-0.8, 4,price($object->lines[$i]->value_unit), 0, 'R');
    -
    -                    // Quantity
    -					$pdf->SetXY($this->posxqty, $curY);
    -					$pdf->MultiCell($this->postotalttc-$this->posxqty-0.8, 4,$object->lines[$i]->qty, 0, 'R');
    -
    -                    // Total with all taxes
    -					$pdf->SetXY($this->postotalttc-1, $curY);
    -					$pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalttc, 4, price($object->lines[$i]->total_ttc), 0, 'R');
    -
    +						$pdf->commitTransaction();
    +					}
                         //nexY
                         $nexY = $pdf->GetY();
                         $pageposafter=$pdf->getPage();
    @@ -386,22 +394,23 @@ class pdf_standard extends ModeleExpenseReport
                         $pdf->setTopMargin($this->marge_haute);
                         $pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
     
    -                    $nblineFollowComment = 1;
    +                    //$nblineFollowComment = 1;
                         // Cherche nombre de lignes a venir pour savoir si place suffisante
    -					if ($i < ($nblignes - 1))	// If it's not last line
    -					{
    -					    //Fetch current description to know on which line the next one should be placed
    -						$follow_comment = $object->lines[$i]->comments;
    -						$follow_type = $object->lines[$i]->type_fees_code;
    +					// if ($i < ($nblignes - 1))	// If it's not last line
    +					// {
    +					//     //Fetch current description to know on which line the next one should be placed
    +					// 	$follow_comment = $object->lines[$i]->comments;
    +					// 	$follow_type = $object->lines[$i]->type_fees_code;
     
    -						//on compte le nombre de ligne afin de verifier la place disponible (largeur de ligne 52 caracteres)
    -						$nbLineCommentNeed = dol_nboflines_bis($follow_comment,52,$outputlangs->charset_output);
    -						$nbLineTypeNeed = dol_nboflines_bis($follow_type,4,$outputlangs->charset_output);
    +					// 	//on compte le nombre de ligne afin de verifier la place disponible (largeur de ligne 52 caracteres)
    +					// 	$nbLineCommentNeed = dol_nboflines_bis($follow_comment,52,$outputlangs->charset_output);
    +					// 	$nbLineTypeNeed = dol_nboflines_bis($follow_type,4,$outputlangs->charset_output);
     
    -                        $nblineFollowComment = max($nbLineCommentNeed, $nbLineTypeNeed);
    -					}
    +                    //     $nblineFollowComment = max($nbLineCommentNeed, $nbLineTypeNeed);
    +					// }
     
    -                    $nexY+=$nblineFollowComment*($pdf->getFontSize()*1.3);    // Passe espace entre les lignes
    +                    //$nexY+=$nblineFollowComment*($pdf->getFontSize()*1.3);    // Passe espace entre les lignes
    +                    $nexY += ($pdf->getFontSize()*1.3);    // Passe espace entre les lignes
     
     					// Detect if some page were added automatically and output _tableau for past pages
     					while ($pagenb < $pageposafter)
    @@ -438,7 +447,6 @@ class pdf_standard extends ModeleExpenseReport
     						$pagenb++;
     						if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
     					}
    -
     				}
     
     				// Show square
    @@ -457,34 +465,41 @@ class pdf_standard extends ModeleExpenseReport
     
                 	// Show total area box
     				$posy=$bottomlasttab+5;
    -				$pdf->SetXY(100, $posy);
    -				$pdf->MultiCell(60, 5, $outputlangs->transnoentities("TotalHT"), 1, 'L');
    -				$pdf->SetXY(160, $posy);
    -				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - 160, 5, price($object->total_ht), 1, 'R');
    +				$posy_start_of_totals = $posy;
    +				$pdf->SetXY(130, $posy);
    +				$pdf->MultiCell(70, 5, $outputlangs->transnoentities("TotalHT"), 1, 'L');
    +				$pdf->SetXY(180, $posy);
    +				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - 180, 5, price($object->total_ht), 1, 'R');
     				$pdf->SetFillColor(248,248,248);
     
     				if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))
     				{
     				    // TODO Show vat amout per tax level
     					$posy+=5;
    -					$pdf->SetXY(100, $posy);
    +					$pdf->SetXY(130, $posy);
     					$pdf->SetTextColor(0,0,60);
    -					$pdf->MultiCell(60, 5, $outputlangs->transnoentities("TotalVAT"), 1,'L');
    -					$pdf->SetXY(160, $posy);
    -					$pdf->MultiCell($this->page_largeur - $this->marge_gauche - 160, 5, price($object->total_tva),1, 'R');
    +					$pdf->MultiCell(70, 5, $outputlangs->transnoentities("TotalVAT"), 1,'L');
    +					$pdf->SetXY(180, $posy);
    +					$pdf->MultiCell($this->page_largeur - $this->marge_gauche - 180, 5, price($object->total_tva),1, 'R');
     				}
     
     				$posy+=5;
    -				$pdf->SetXY(100, $posy);
    +				$pdf->SetXY(130, $posy);
     				$pdf->SetFont('','B', 10);
     				$pdf->SetTextColor(0,0,60);
    -				$pdf->MultiCell(60, 5, $outputlangs->transnoentities("TotalTTC"), 1,'L');
    -				$pdf->SetXY(160, $posy);
    -				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - 160, 5, price($object->total_ttc),1, 'R');
    +				$pdf->MultiCell(70, 5, $outputlangs->transnoentities("TotalTTC"), 1,'L');
    +				$pdf->SetXY(180, $posy);
    +				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - 180, 5, price($object->total_ttc),1, 'R');
    +
    +				// show payments zone
    +				$sumPayments = $object->getSumPayments();
    +				if ($sumPayments > 0 && empty($conf->global->PDF_EXPENSEREPORT_NO_PAYMENT_DETAILS)) {
    +					$posy=$this->tablePayments($pdf, $object, $posy_start_of_totals, $outputlangs);
    +				}
     
     				// Pied de page
     				$this->_pagefoot($pdf,$object,$outputlangs);
    -				if (method_exists($pdf,'AliasNbPages')) $pdf->AliasNbPages();
    +				if (method_exists($pdf,'AliasNbPages')) $pdf->AliasNbPage();
     
     				$pdf->Close();
     
    @@ -516,7 +531,87 @@ class pdf_standard extends ModeleExpenseReport
     		}
     	}
     
    -	/**
    +    /**
    +     * @param   TCPDF       $pdf                Object PDF
    +     * @param   Object      $object             Object to show
    +     * @param   int         $linenumber         line number
    +     * @param   int         $curY               current y position
    +     * @param   int         $default_font_size  default siez of font
    +     * @param   Translate   $outputlangs        Object lang for output
    +     * @param	int			$hidedetails		Hide details (0=no, 1=yes, 2=just special lines)
    +     * @return  void
    +     */
    +    private function printLine(&$pdf, $object, $linenumber, $curY, $default_font_size, $outputlangs, $hidedetails=0)
    +	{
    +        global $conf;
    +        $pdf->SetFont('','', $default_font_size - 1);
    +
    +        // Accountancy piece
    +        $pdf->SetXY($this->posxpiece, $curY);
    +        $pdf->writeHTMLCell($this->posxcomment-$this->posxpiece-0.8, 4, $this->posxpiece-1, $curY, $linenumber + 1, 0, 1);
    +
    +        // Date
    +        //$pdf->SetXY($this->posxdate -1, $curY);
    +        //$pdf->MultiCell($this->posxtype-$this->posxdate-0.8, 4, dol_print_date($object->lines[$linenumber]->date,"day",false,$outputlangs), 0, 'C');
    +
    +        // Type
    +        $pdf->SetXY($this->posxtype -1, $curY);
    +        $nextColumnPosX = $this->posxup;
    +        if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) {
    +            $nextColumnPosX = $this->posxtva;
    +        }
    +        if (!empty($conf->projet->enabled)) {
    +            $nextColumnPosX = $this->posxprojet;
    +        }
    +
    +        $expensereporttypecode = $object->lines[$linenumber]->type_fees_code;
    +        $expensereporttypecodetoshow = $outputlangs->trans($expensereporttypecode);
    +        if ($expensereporttypecodetoshow == $expensereporttypecode) {
    +            $expensereporttypecodetoshow = preg_replace('/^(EX_|TF_)/', '', $expensereporttypecodetoshow);
    +        }
    +        //$expensereporttypecodetoshow = dol_trunc($expensereporttypecodetoshow, 9);
    +
    +        //$pdf->MultiCell($nextColumnPosX-$this->posxtype-0.8, 4, $expensereporttypecodetoshow, 0, 'C');
    +
    +        // Project
    +        //if (! empty($conf->projet->enabled))
    +        //{
    +        //    $pdf->SetFont('','', $default_font_size - 1);
    +        //    $pdf->SetXY($this->posxprojet, $curY);
    +        //    $pdf->MultiCell($this->posxtva-$this->posxprojet-0.8, 4, $object->lines[$linenumber]->projet_ref, 0, 'C');
    +        //}
    +
    +        // VAT Rate
    +        if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) {
    +            $vat_rate = pdf_getlinevatrate($object, $linenumber, $outputlangs, $hidedetails);
    +            $pdf->SetXY($this->posxtva, $curY);
    +            $pdf->MultiCell($this->posxup-$this->posxtva-0.8, 4,$vat_rate, 0, 'R');
    +        }
    +
    +        // Unit price
    +        $pdf->SetXY($this->posxup, $curY);
    +        $pdf->MultiCell($this->posxqty-$this->posxup-0.8, 4,price($object->lines[$linenumber]->value_unit), 0, 'R');
    +
    +        // Quantity
    +        $pdf->SetXY($this->posxqty, $curY);
    +        $pdf->MultiCell($this->postotalttc-$this->posxqty-0.8, 4,$object->lines[$linenumber]->qty, 0, 'R');
    +
    +        // Total with all taxes
    +        $pdf->SetXY($this->postotalttc-1, $curY);
    +        $pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalttc, 4, price($object->lines[$linenumber]->total_ttc), 0, 'R');
    +
    +        // Comments
    +        $pdf->SetXY($this->posxcomment, $curY );
    +        $comment = $outputlangs->trans("Date").':'. dol_print_date($object->lines[$linenumber]->date,"day",false,$outputlangs).' ';
    +        $comment .= $outputlangs->trans("Type").':'. $expensereporttypecodetoshow.'<br>';
    +        if (! empty($object->lines[$linenumber]->projet_ref)) {
    +            $comment .= $outputlangs->trans("Project").':'. $object->lines[$linenumber]->projet_ref.'<br>';
    +        }
    +        $comment .= $object->lines[$linenumber]->comments;
    +        $pdf->writeHTMLCell($this->posxtva-$this->posxcomment-0.8, 4, $this->posxcomment-1, $curY, $comment, 0, 1);
    +    }
    +
    +    /**
     	 *  Show top header of page.
     	 *
     	 *  @param	PDF			$pdf     		Object PDF
    @@ -527,9 +622,9 @@ class pdf_standard extends ModeleExpenseReport
     	 */
     	function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
     	{
    -		global $conf,$langs,$hookmanager;
    -		
    -		// Translations
    +		global $conf, $langs, $hookmanager;
    +
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "trips", "companies"));
     
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
    @@ -543,13 +638,12 @@ class pdf_standard extends ModeleExpenseReport
     		*/
     
     	    // Draft watermark
    -		if ($object->fk_statut == 0 && ! empty($conf->global->EXPENSEREPORT_DRAFT_WATERMARK))
    -		{
    +		if ($object->fk_statut == 0 && ! empty($conf->global->EXPENSEREPORT_DRAFT_WATERMARK)) {
      			pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->EXPENSEREPORT_DRAFT_WATERMARK);
     		}
     
    -		$pdf->SetTextColor(0,0,60);
    -		$pdf->SetFont('','B', $default_font_size + 3);
    +		$pdf->SetTextColor(0, 0, 60);
    +		$pdf->SetFont('', 'B', $default_font_size + 3);
     
     		$posy=$this->marge_haute;
     		$posx=$this->page_largeur-$this->marge_droite-100;
    @@ -557,16 +651,12 @@ class pdf_standard extends ModeleExpenseReport
     		$pdf->SetXY($this->marge_gauche,$posy);
     
     		// Logo
    -		$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    -		if ($this->emetteur->logo)
    -		{
    -			if (is_readable($logo))
    -			{
    +		$logo = $conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    +		if ($this->emetteur->logo) {
    +			if (is_readable($logo)) {
     			    $height=pdf_getHeightForLogo($logo);
     			    $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height);	// width=0 (auto)
    -			}
    -			else
    -			{
    +			} else {
     				$pdf->SetTextColor(200,0,0);
     				$pdf->SetFont('','B', $default_font_size -2);
     				$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
    @@ -611,8 +701,7 @@ class pdf_standard extends ModeleExpenseReport
        		$pdf->SetTextColor(111,81,124);
     		$pdf->MultiCell($this->page_largeur-$this->marge_droite-$posx, 3, $object->getLibStatut(0), '', 'R');
     
    -		if ($showaddress)
    -		{
    +		if ($showaddress) {
     			// Sender properties
     			$carac_emetteur = '';
     			$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($this->emetteur->address);
    @@ -634,14 +723,14 @@ class pdf_standard extends ModeleExpenseReport
     			if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=118;
     
     			// Show sender frame
    -			$pdf->SetTextColor(0,0,0);
    +			$pdf->SetTextColor(0, 0, 0);
     			$pdf->SetFont('','B', $default_font_size - 2);
     			$pdf->SetXY($posx,$posy-5);
     			$pdf->MultiCell(66,5, $outputlangs->transnoentities("TripSociete")." :",'','L');
     			$pdf->SetXY($posx,$posy);
     			$pdf->SetFillColor(224,224,224);
     			$pdf->MultiCell(82, $hautcadre, "", 0, 'R', 1);
    -			$pdf->SetTextColor(0,0,60);
    +			$pdf->SetTextColor(0, 0, 60);
     
     			// Show sender name
     			$pdf->SetXY($posx+2,$posy+3);
    @@ -650,7 +739,7 @@ class pdf_standard extends ModeleExpenseReport
     
     			// Show sender information
     			$pdf->SetXY($posx+2,$posy+8);
    -			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->SetFont('', '', $default_font_size - 1);
     			$pdf->MultiCell(80, 4, $carac_emetteur, 0, 'L');
     
     			// Show recipient
    @@ -658,15 +747,14 @@ class pdf_standard extends ModeleExpenseReport
     			$posx=100;
     
     			// Show recipient frame
    -			$pdf->SetTextColor(0,0,0);
    -			$pdf->SetFont('','B',8);
    +			$pdf->SetTextColor(0, 0, 0);
    +			$pdf->SetFont('', 'B', 8);
     			$pdf->SetXY($posx,$posy-5);
    -			$pdf->MultiCell(80,5, $outputlangs->transnoentities("TripNDF")." :", 0, 'L');
    +			$pdf->MultiCell(80, 5, $outputlangs->transnoentities("TripNDF")." :", 0, 'L');
     			$pdf->rect($posx, $posy, $this->page_largeur - $this->marge_gauche - $posx, $hautcadre);
     
     			// Informations for trip (dates and users workflow)
    -			if ($object->fk_user_author > 0)
    -			{
    +			if ($object->fk_user_author > 0) {
     				$userfee=new User($this->db);
     				$userfee->fetch($object->fk_user_author); $posy+=3;
     				$pdf->SetXY($posx+2,$posy);
    @@ -679,8 +767,7 @@ class pdf_standard extends ModeleExpenseReport
     
     			if ($object->fk_statut==99)
     			{
    -				if ($object->fk_user_refuse > 0)
    -				{
    +				if ($object->fk_user_refuse > 0) {
     					$userfee=new User($this->db);
     					$userfee->fetch($object->fk_user_refuse); $posy+=6;
     					$pdf->SetXY($posx+2,$posy);
    @@ -695,8 +782,7 @@ class pdf_standard extends ModeleExpenseReport
     			}
     			else if($object->fk_statut==4)
     			{
    -				if ($object->fk_user_cancel > 0)
    -				{
    +				if ($object->fk_user_cancel > 0) {
     					$userfee=new User($this->db);
     					$userfee->fetch($object->fk_user_cancel); $posy+=6;
     					$pdf->SetXY($posx+2,$posy);
    @@ -711,8 +797,7 @@ class pdf_standard extends ModeleExpenseReport
     			}
     			else
     			{
    -				if ($object->fk_user_approve > 0)
    -				{
    +				if ($object->fk_user_approve > 0) {
     					$userfee=new User($this->db);
     					$userfee->fetch($object->fk_user_approve); $posy+=6;
     					$pdf->SetXY($posx+2,$posy);
    @@ -723,10 +808,8 @@ class pdf_standard extends ModeleExpenseReport
     				}
     			}
     
    -			if($object->fk_statut==6)
    -			{
    -				if ($object->fk_user_paid > 0)
    -				{
    +			if($object->fk_statut==6) {
    +				if ($object->fk_user_paid > 0) {
     					$userfee=new User($this->db);
     					$userfee->fetch($object->fk_user_paid); $posy+=6;
     					$pdf->SetXY($posx+2,$posy);
    @@ -737,7 +820,6 @@ class pdf_standard extends ModeleExpenseReport
     				}
     			}
     		}
    -
        	}
     
     	/**
    @@ -766,8 +848,8 @@ class pdf_standard extends ModeleExpenseReport
     
     		// Amount in (at tab_top - 1)
     		$pdf->SetTextColor(0,0,0);
    -		$pdf->SetFont('','', $default_font_size - 2);
    -		$titre = $outputlangs->transnoentities("AmountInCurrency",$outputlangs->transnoentitiesnoconv("Currency".$currency));
    +		$pdf->SetFont('', '', $default_font_size - 2);
    +		$titre = $outputlangs->transnoentities("AmountInCurrency", $outputlangs->transnoentitiesnoconv("Currency".$currency));
     		$pdf->SetXY($this->page_largeur - $this->marge_droite - ($pdf->GetStringWidth($titre) + 4), $tab_top -4);
     		$pdf->MultiCell(($pdf->GetStringWidth($titre) + 3), 2, $titre);
     
    @@ -776,61 +858,55 @@ class pdf_standard extends ModeleExpenseReport
     		// Rect prend une longueur en 3eme param
     		$pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height);
     		// line prend une position y en 3eme param
    -		if (empty($hidetop))
    -		{
    +		if (empty($hidetop)) {
     			$pdf->line($this->marge_gauche, $tab_top+5, $this->page_largeur-$this->marge_droite, $tab_top+5);
     		}
     
     		$pdf->SetFont('','',8);
     
     		// Accountancy piece
    -		if (empty($hidetop))
    -		{
    +		if (empty($hidetop)) {
     			$pdf->SetXY($this->posxpiece-1, $tab_top+1);
    -			$pdf->MultiCell($this->posxcomment-$this->posxpiece-1,1,'','','R');
    +			$pdf->MultiCell($this->posxcomment-$this->posxpiece-1, 1, '', '', 'R');
     		}
     
     		// Comments
     		$pdf->line($this->posxcomment-1, $tab_top, $this->posxcomment-1, $tab_top + $tab_height);
    -		if (empty($hidetop))
    -		{
    +		if (empty($hidetop)) {
     			$pdf->SetXY($this->posxcomment-1, $tab_top+1);
    -			$pdf->MultiCell($this->posxdate-$this->posxcomment-1,1,$outputlangs->transnoentities("Description"),'','L');
    +			$pdf->MultiCell($this->posxdate-$this->posxcomment-1, 1, $outputlangs->transnoentities("Description"),'','L');
     		}
     
     		// Date
    -		$pdf->line($this->posxdate-1, $tab_top, $this->posxdate-1, $tab_top + $tab_height);
    -		if (empty($hidetop))
    -		{
    -			$pdf->SetXY($this->posxdate-1, $tab_top+1);
    -			$pdf->MultiCell($this->posxtype-$this->posxdate-1,2, $outputlangs->transnoentities("Date"),'','C');
    -		}
    +		//$pdf->line($this->posxdate-1, $tab_top, $this->posxdate-1, $tab_top + $tab_height);
    +		//if (empty($hidetop))
    +		//{
    +		//	$pdf->SetXY($this->posxdate-1, $tab_top+1);
    +		//	$pdf->MultiCell($this->posxtype-$this->posxdate-1,2, $outputlangs->transnoentities("Date"),'','C');
    +		//}
     
     		// Type
    -		$pdf->line($this->posxtype-1, $tab_top, $this->posxtype-1, $tab_top + $tab_height);
    -		if (empty($hidetop))
    -		{
    -			$pdf->SetXY($this->posxtype-1, $tab_top+1);
    -			$pdf->MultiCell($this->posxprojet-$this->posxtype - 1, 2, $outputlangs->transnoentities("Type"), '', 'C');
    -		}
    +		//$pdf->line($this->posxtype-1, $tab_top, $this->posxtype-1, $tab_top + $tab_height);
    +		//if (empty($hidetop))
    +		//{
    +		//	$pdf->SetXY($this->posxtype-1, $tab_top+1);
    +		//	$pdf->MultiCell($this->posxprojet-$this->posxtype - 1, 2, $outputlangs->transnoentities("Type"), '', 'C');
    +		//}
     
    -        if (!empty($conf->projet->enabled))
    -        {
    -            // Project
    -            $pdf->line($this->posxprojet - 1, $tab_top, $this->posxprojet - 1, $tab_top + $tab_height);
    -    		if (empty($hidetop))
    -    		{
    -                $pdf->SetXY($this->posxprojet - 1, $tab_top + 1);
    -                $pdf->MultiCell($this->posxtva - $this->posxprojet - 1, 2, $outputlangs->transnoentities("Project"), '', 'C');
    -    		}
    -        }
    +        //if (!empty($conf->projet->enabled))
    +        //{
    +        //    // Project
    +        //    $pdf->line($this->posxprojet - 1, $tab_top, $this->posxprojet - 1, $tab_top + $tab_height);
    +    	//	if (empty($hidetop)) {
    +        //        $pdf->SetXY($this->posxprojet - 1, $tab_top + 1);
    +        //        $pdf->MultiCell($this->posxtva - $this->posxprojet - 1, 2, $outputlangs->transnoentities("Project"), '', 'C');
    +    	//	}
    +        //}
     
     		// VAT
    -		if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))
    -		{
    +		if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) {
     			$pdf->line($this->posxtva-1, $tab_top, $this->posxtva-1, $tab_top + $tab_height);
    -			if (empty($hidetop))
    -			{
    +			if (empty($hidetop)) {
     				$pdf->SetXY($this->posxtva-1, $tab_top+1);
     				$pdf->MultiCell($this->posxup-$this->posxtva - 1, 2, $outputlangs->transnoentities("VAT"), '', 'C');
     			}
    @@ -838,24 +914,21 @@ class pdf_standard extends ModeleExpenseReport
     
             // Unit price
     		$pdf->line($this->posxup-1, $tab_top, $this->posxup-1, $tab_top + $tab_height);
    -		if (empty($hidetop))
    -		{
    +		if (empty($hidetop)) {
     			$pdf->SetXY($this->posxup-1, $tab_top+1);
     			$pdf->MultiCell($this->posxqty-$this->posxup-1,2, $outputlangs->transnoentities("PriceU"),'','C');
     		}
     
     		// Quantity
     		$pdf->line($this->posxqty-1, $tab_top, $this->posxqty-1, $tab_top + $tab_height);
    -		if (empty($hidetop))
    -		{
    +		if (empty($hidetop)) {
     			$pdf->SetXY($this->posxqty-1, $tab_top+1);
     			$pdf->MultiCell($this->postotalttc-$this->posxqty - 1,2, $outputlangs->transnoentities("Qty"),'','R');
     		}
     
     		// Total with all taxes
     		$pdf->line($this->postotalttc, $tab_top, $this->postotalttc, $tab_top + $tab_height);
    -		if (empty($hidetop))
    -		{
    +		if (empty($hidetop)) {
     			$pdf->SetXY($this->postotalttc-1, $tab_top+1);
     			$pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalttc, 2, $outputlangs->transnoentities("TotalTTC"),'','R');
     		}
    @@ -863,6 +936,118 @@ class pdf_standard extends ModeleExpenseReport
     		$pdf->SetTextColor(0,0,0);
     	}
     
    +	/**
    +	 *  Show payments table
    +	 *
    +	 *  @param	PDF			$pdf           Object PDF
    +	 *  @param  Object		$object         Object invoice
    +	 *  @param  int			$posy           Position y in PDF
    +	 *  @param  Translate	$outputlangs    Object langs for output
    +	 *  @return int             			<0 if KO, >0 if OK
    +	 */
    +	private function tablePayments(&$pdf, $object, $posy, $outputlangs)
    +	{
    +		global $conf;
    +
    +		$sign=1;
    +		$tab3_posx = $this->marge_gauche;
    +		$tab3_top = $posy;
    +		$tab3_width = 88;
    +		$tab3_height = 5;
    +
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		$title=$outputlangs->transnoentities("PaymentsAlreadyDone");
    +		$pdf->SetFont('','', $default_font_size - 2);
    +		$pdf->SetXY($tab3_posx, $tab3_top - 4);
    +		$pdf->SetTextColor(0,0,0);
    +		$pdf->MultiCell(60, 3, $title, 0, 'L', 0);
    +
    +		$pdf->line($tab3_posx, $tab3_top, $tab3_posx+$tab3_width+2, $tab3_top); // Top border line of table title
    +
    +		$pdf->SetXY($tab3_posx, $tab3_top+1);
    +		$pdf->MultiCell(20, 3, $outputlangs->transnoentities("Date"), 0, 'L', 0);
    +		$pdf->SetXY($tab3_posx+19, $tab3_top+1); // Old value 17
    +		$pdf->MultiCell(15, 3, $outputlangs->transnoentities("Amount"), 0, 'C', 0);
    +		$pdf->SetXY($tab3_posx+35, $tab3_top+1);
    +		$pdf->MultiCell(30, 3, $outputlangs->transnoentities("Type"), 0, 'L', 0);
    +		if (! empty($conf->banque->enabled)) {
    +			$pdf->SetXY($tab3_posx+65, $tab3_top+1);
    +			$pdf->MultiCell(25, 3, $outputlangs->transnoentities("BankAccount"), 0, 'L', 0);
    +		}
    +		$pdf->line($tab3_posx, $tab3_top+$tab3_height, $tab3_posx+$tab3_width+2, $tab3_top+$tab3_height); // Bottom border line of table title
    +
    +		$y=0;
    +
    +		// Loop on each payment
    +		// TODO create method on expensereport class to get payments
    +		// Payments already done (from payment on this expensereport)
    +		$sql = "SELECT p.rowid, p.num_payment, p.datep as dp, p.amount, p.fk_bank,";
    +		$sql.= "c.code as p_code, c.libelle as payment_type,";
    +		$sql.= "ba.rowid as baid, ba.ref as baref, ba.label, ba.number as banumber, ba.account_number, ba.fk_accountancy_journal";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."expensereport as e, ".MAIN_DB_PREFIX."payment_expensereport as p";
    +		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as c ON p.fk_typepayment = c.id";
    +		$sql.= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'bank as b ON p.fk_bank = b.rowid';
    +		$sql.= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'bank_account as ba ON b.fk_account = ba.rowid';
    +		$sql.= " WHERE e.rowid = '".$object->id."'";
    +		$sql.= " AND p.fk_expensereport = e.rowid";
    +		$sql.= ' AND e.entity IN ('.getEntity('expensereport').')';
    +		$sql.= " ORDER BY dp";
    +
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$num = $this->db->num_rows($resql);
    +			$i=0;
    +			while ($i < $num) {
    +				$y+=$tab3_height;
    +				$row = $this->db->fetch_object($resql);
    +
    +				$pdf->SetXY($tab3_posx, $tab3_top+$y+1);
    +				$pdf->MultiCell(20, 3, dol_print_date($this->db->jdate($row->dp),'day',false,$outputlangs,true), 0, 'L', 0);
    +				$pdf->SetXY($tab3_posx+17, $tab3_top+$y+1);
    +				$pdf->MultiCell(15, 3, price($sign * $row->amount, 0, $outputlangs), 0, 'R', 0);
    +				$pdf->SetXY($tab3_posx+35, $tab3_top+$y+1);
    +				$oper = $outputlangs->transnoentitiesnoconv("PaymentTypeShort" . $row->p_code);
    +
    +				$pdf->MultiCell(40, 3, $oper, 0, 'L', 0);
    +				if (! empty($conf->banque->enabled)) {
    +					$pdf->SetXY($tab3_posx+65, $tab3_top+$y+1);
    +					$pdf->MultiCell(30, 3, $row->baref, 0, 'L', 0);
    +				}
    +
    +				$pdf->line($tab3_posx, $tab3_top+$y+$tab3_height, $tab3_posx+$tab3_width+2, $tab3_top+$y+$tab3_height); // Bottom line border of table
    +				$totalpaid += $row->amount;
    +				$i++;
    +			}
    +			if ($num > 0 && $object->paid == 0)
    +			{
    +				$y+=$tab3_height;
    +				
    +				$pdf->SetXY($tab3_posx+17, $tab3_top+$y);
    +				$pdf->MultiCell(15, 3, price($totalpaid), 0, 'R', 0);
    +				$pdf->SetXY($tab3_posx+35, $tab3_top+$y);
    +				$pdf->MultiCell(30, 4, $outputlangs->trans("AlreadyPaid"), 0, 'L', 0);
    +				$y+=$tab3_height-2;
    +				$pdf->SetXY($tab3_posx+17, $tab3_top+$y);
    +				$pdf->MultiCell(15, 3, price($object->total_ttc), 0, 'R', 0);
    +				$pdf->SetXY($tab3_posx+35, $tab3_top+$y);
    +				$pdf->MultiCell(30, 4, $outputlangs->trans("AmountExpected"), 0, 'L', 0);
    +				$y+=$tab3_height-2;
    +				$remaintopay = $object->total_ttc - $totalpaid;
    +				$pdf->SetXY($tab3_posx+17, $tab3_top+$y);
    +				$pdf->MultiCell(15, 3, price($remaintopay), 0, 'R', 0);
    +				$pdf->SetXY($tab3_posx+35, $tab3_top+$y);
    +				$pdf->MultiCell(30, 4, $outputlangs->trans("RemainderToPay"), 0, 'L', 0);
    +			}
    +		}
    +		else
    +		{
    +			$this->error=$this->db->lasterror();
    +			return -1;
    +		}
    +	}
    +
     	/**
     	 *   	Show footer of page. Need this->emetteur object
          *
    @@ -875,9 +1060,7 @@ class pdf_standard extends ModeleExpenseReport
     	function _pagefoot(&$pdf,$object,$outputlangs,$hidefreetext=0)
     	{
     		global $conf;
    -		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
    -		return pdf_pagefoot($pdf,$outputlangs,'EXPENSEREPORT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
    +		$showdetails = $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
    +		return pdf_pagefoot($pdf, $outputlangs, 'EXPENSEREPORT_FREE_TEXT', $this->emetteur, $this->marge_basse, $this->marge_gauche, $this->page_hauteur, $object, $showdetails, $hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/expensereport/mod_expensereport_jade.php b/htdocs/core/modules/expensereport/mod_expensereport_jade.php
    index c6153d422eb..385a7558c4c 100644
    --- a/htdocs/core/modules/expensereport/mod_expensereport_jade.php
    +++ b/htdocs/core/modules/expensereport/mod_expensereport_jade.php
    @@ -28,10 +28,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/expensereport/modules_expenserepo
      */
     class mod_expensereport_jade extends ModeleNumRefExpenseReport
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $prefix='ER';
    -	var $error='';
    -	var $nom='Jade';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	public $prefix='ER';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Jade';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Jade';
     
     
         /**
    diff --git a/htdocs/core/modules/expensereport/mod_expensereport_sand.php b/htdocs/core/modules/expensereport/mod_expensereport_sand.php
    index 4222bf163d5..95cc3d39c95 100644
    --- a/htdocs/core/modules/expensereport/mod_expensereport_sand.php
    +++ b/htdocs/core/modules/expensereport/mod_expensereport_sand.php
    @@ -30,9 +30,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/expensereport/modules_expenserepo
      */
     class mod_expensereport_sand extends ModeleNumRefExpenseReport
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Sand';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +	 * @var string Error message
    +	 */
    +	public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Sand';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Sand';
     
     
         /**
    @@ -42,7 +61,7 @@ class mod_expensereport_sand extends ModeleNumRefExpenseReport
          */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
     		$langs->load("bills");
     
    diff --git a/htdocs/core/modules/expensereport/modules_expensereport.php b/htdocs/core/modules/expensereport/modules_expensereport.php
    index e97766b38f6..9ff7f671f9f 100644
    --- a/htdocs/core/modules/expensereport/modules_expensereport.php
    +++ b/htdocs/core/modules/expensereport/modules_expensereport.php
    @@ -23,18 +23,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     abstract class ModeleExpenseReport extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation modules
    -	 *
    +     *
          *  @param	DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of templates
    -	 */
    +     */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='expensereport';
    @@ -45,9 +50,9 @@ abstract class ModeleExpenseReport extends CommonDocGenerator
     
     		return $liste;
     	}
    -
     }
     
    +// phpcs:ignore PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     /**
      * expensereport_pdf_create
      *
    @@ -63,6 +68,7 @@ abstract class ModeleExpenseReport extends CommonDocGenerator
      */
     function expensereport_pdf_create(DoliDB $db, ExpenseReport $object, $message, $modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0)
     {
    +    // phpcs:enable
     	return $object->generateDocument($modele, $outputlangs, $hidedetails, $hidedesc, $hideref);
     }
     
    @@ -73,7 +79,10 @@ function expensereport_pdf_create(DoliDB $db, ExpenseReport $object, $message, $
     
     abstract class ModeleNumRefExpenseReport
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 *	Return if a module can be used or not
    @@ -134,7 +143,7 @@ abstract class ModeleNumRefExpenseReport
     	/**
     	 *	Renvoie version du module numerotation
     	 *
    -	 *	@return     string      Valeur
    +	 *  @return     string      Valeur
     	 */
     	function getVersion()
     	{
    diff --git a/htdocs/core/modules/export/export_csv.modules.php b/htdocs/core/modules/export/export_csv.modules.php
    index 8d35ff63225..1efe6161647 100644
    --- a/htdocs/core/modules/export/export_csv.modules.php
    +++ b/htdocs/core/modules/export/export_csv.modules.php
    @@ -30,17 +30,31 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/export/modules_export.php';
      */
     class ExportCsv extends ModeleExports
     {
    -	var $id;
    -	var $label;
    -	var $extension;
    -	var $version;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -	var $label_lib;
    -	var $version_lib;
    +	/**
    +     * @var string export files label
    +     */
    +    public $label;
     
    -	var $separator;
    +	public $extension;
     
    -	var $handle;    // Handle fichier
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	public $label_lib;
    +
    +	public $version_lib;
    +
    +	public $separator;
    +
    +	public $handle;    // Handle fichier
     
     
     	/**
    @@ -50,7 +64,7 @@ class ExportCsv extends ModeleExports
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs;
    +		global $conf, $langs;
     		$this->db = $db;
     
     		$this->separator=',';
    @@ -68,7 +82,6 @@ class ExportCsv extends ModeleExports
     		// If driver use an external library, put its name here
     		$this->label_lib='Dolibarr';
     		$this->version_lib=DOL_VERSION;
    -
     	}
     
     	/**
    @@ -142,6 +155,7 @@ class ExportCsv extends ModeleExports
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Open output file
     	 *
    @@ -151,6 +165,7 @@ class ExportCsv extends ModeleExports
     	 */
     	function open_file($file,$outputlangs)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		dol_syslog("ExportCsv::open_file file=".$file);
    @@ -169,6 +184,7 @@ class ExportCsv extends ModeleExports
     		return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output header into file
     	 *
    @@ -177,10 +193,12 @@ class ExportCsv extends ModeleExports
     	 */
     	function write_header($outputlangs)
     	{
    +        // phpcs:enable
     		return 0;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output title line into file
     	 *
    @@ -192,6 +210,7 @@ class ExportCsv extends ModeleExports
     	 */
     	function write_title($array_export_fields_label,$array_selected_sorted,$outputlangs,$array_types)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if (! empty($conf->global->EXPORT_CSV_FORCE_CHARSET))
    @@ -215,7 +234,8 @@ class ExportCsv extends ModeleExports
     	}
     
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *	Output record line into file
          *
          *  @param     	array		$array_selected_sorted      Array with list of field to export
    @@ -226,6 +246,7 @@ class ExportCsv extends ModeleExports
     	 */
     	function write_record($array_selected_sorted,$objp,$outputlangs,$array_types)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if (! empty($conf->global->EXPORT_CSV_FORCE_CHARSET))
    @@ -258,7 +279,7 @@ class ExportCsv extends ModeleExports
     				$array = $array['options'];
     				$newvalue = $array[$newvalue];
     			}
    -			
    +
     			fwrite($this->handle,$newvalue.$this->separator);
     			$this->col++;
     		}
    @@ -267,6 +288,7 @@ class ExportCsv extends ModeleExports
     		return 0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output footer into file
     	 *
    @@ -275,9 +297,11 @@ class ExportCsv extends ModeleExports
     	 */
     	function write_footer($outputlangs)
     	{
    +        // phpcs:enable
     		return 0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Close file handle
     	 *
    @@ -285,6 +309,7 @@ class ExportCsv extends ModeleExports
     	 */
     	function close_file()
     	{
    +        // phpcs:enable
     		fclose($this->handle);
     		return 0;
     	}
    @@ -303,14 +328,14 @@ class ExportCsv extends ModeleExports
     	{
     		global $conf;
     		$addquote=0;
    -		
    +
     
     		// Rule Dolibarr: No HTML
        		//print $charset.' '.$newvalue."\n";
        		//$newvalue=dol_string_nohtmltag($newvalue,0,$charset);
        		$newvalue=dol_htmlcleanlastbr($newvalue);
        		//print $charset.' '.$newvalue."\n";
    -		
    +
     		// Rule 1 CSV: No CR, LF in cells (except if USE_STRICT_CSV_RULES is on, we can keep record as it is but we must add quotes)
     		$oldvalue=$newvalue;
     		$newvalue=str_replace("\r",'',$newvalue);
    @@ -321,7 +346,7 @@ class ExportCsv extends ModeleExports
     			$newvalue=$oldvalue;
     			$addquote=1;
     		}
    -		
    +
     		// Rule 2 CSV: If value contains ", we must escape with ", and add "
     		if (preg_match('/"/',$newvalue))
     		{
    @@ -337,6 +362,4 @@ class ExportCsv extends ModeleExports
     
     		return ($addquote?'"':'').$newvalue.($addquote?'"':'');
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/export/export_excel.modules.php b/htdocs/core/modules/export/export_excel.modules.php
    index 00d06e8511a..5dc574a150f 100644
    --- a/htdocs/core/modules/export/export_excel.modules.php
    +++ b/htdocs/core/modules/export/export_excel.modules.php
    @@ -32,19 +32,37 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
      */
     class ExportExcel extends ModeleExports
     {
    -	var $id;
    -	var $label;
    -	var $extension;
    -	var $version;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -	var $label_lib;
    -	var $version_lib;
    +    /**
    +     * @var string Export Excel label
    +     */
    +    public $label;
     
    -	var $workbook;      // Handle fichier
    -	var $worksheet;     // Handle onglet
    -	var $row;
    -	var $col;
    -    var $file;          // To save filename
    +	public $extension;
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	public $label_lib;
    +
    +	public $version_lib;
    +
    +	public $workbook;      // Handle file
    +
    +	public $worksheet;     // Handle sheet
    +
    +	public $row;
    +
    +	public $col;
    +
    +    public $file;          // To save filename
     
     
     	/**
    @@ -65,7 +83,7 @@ class ExportExcel extends ModeleExports
     		$this->version='1.30';             // Driver version
     
     		$this->disabled = (in_array(constant('PHPEXCEL_PATH'),array('disabled','disabled/'))?1:0);	// A condition to disable module (used for native debian packages)
    -		
    +
     		if (empty($this->disabled))
     		{
         		// If driver use an external library, put its name here
    @@ -160,6 +178,7 @@ class ExportExcel extends ModeleExports
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Open output file
     	 *
    @@ -169,6 +188,7 @@ class ExportExcel extends ModeleExports
     	 */
     	function open_file($file,$outputlangs)
     	{
    +        // phpcs:enable
     		global $user,$conf,$langs;
     
     		if (! empty($conf->global->MAIN_USE_PHP_WRITEEXCEL))
    @@ -216,11 +236,11 @@ class ExportExcel extends ModeleExports
     		    }
     
                 $this->workbook = new PHPExcel();
    -            $this->workbook->getProperties()->setCreator($user->getFullName($outputlangs).' - Dolibarr '.DOL_VERSION);
    +            $this->workbook->getProperties()->setCreator($user->getFullName($outputlangs).' - '.DOL_APPLICATION_TITLE.' '.DOL_VERSION);
                 //$this->workbook->getProperties()->setLastModifiedBy('Dolibarr '.DOL_VERSION);
    -            $this->workbook->getProperties()->setTitle($outputlangs->trans("Export").' - '.$file);
    -            $this->workbook->getProperties()->setSubject($outputlangs->trans("Export").' - '.$file);
    -            $this->workbook->getProperties()->setDescription($outputlangs->trans("Export").' - '.$file);
    +            $this->workbook->getProperties()->setTitle(basename($file));
    +            $this->workbook->getProperties()->setSubject(basename($file));
    +            $this->workbook->getProperties()->setDescription(DOL_APPLICATION_TITLE.' '.DOL_VERSION);
     
                 $this->workbook->setActiveSheetIndex(0);
                 $this->workbook->getActiveSheet()->setTitle($outputlangs->trans("Sheet"));
    @@ -229,20 +249,23 @@ class ExportExcel extends ModeleExports
     		return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 *	Write header
    +	 *  Write header
     	 *
    -     *	@param      Translate	$outputlangs        Object lang to translate values
    +     *  @param      Translate	$outputlangs        Object lang to translate values
     	 * 	@return		int								<0 if KO, >0 if OK
     	 */
     	function write_header($outputlangs)
     	{
    +        // phpcs:enable
     		//$outputlangs->charset_output='ISO-8859-1';	// Because Excel 5 format is ISO
     
     		return 0;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *  Output title line into file
          *
    @@ -254,6 +277,7 @@ class ExportExcel extends ModeleExports
     	 */
     	function write_title($array_export_fields_label,$array_selected_sorted,$outputlangs,$array_types)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		// Create a format for the column headings
    @@ -298,6 +322,7 @@ class ExportExcel extends ModeleExports
     		return 0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *  Output record line into file
          *
    @@ -309,6 +334,7 @@ class ExportExcel extends ModeleExports
     	 */
     	function write_record($array_selected_sorted,$objp,$outputlangs,$array_types)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		// Create a format for the column headings
    @@ -329,14 +355,14 @@ class ExportExcel extends ModeleExports
     
     			$newvalue=$this->excel_clean($newvalue);
     			$typefield=isset($array_types[$code])?$array_types[$code]:'';
    -			
    +
     			if (preg_match('/^Select:/i', $typefield, $reg) && $typefield = substr($typefield, 7))
     			{
     				$array = unserialize($typefield);
     				$array = $array['options'];
     				$newvalue = $array[$newvalue];
     			}
    -			
    +
     			// Traduction newvalue
     			if (preg_match('/^\((.*)\)$/i',$newvalue,$reg))
     			{
    @@ -416,6 +442,7 @@ class ExportExcel extends ModeleExports
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *	Write footer
          *
    @@ -424,17 +451,20 @@ class ExportExcel extends ModeleExports
          */
     	function write_footer($outputlangs)
     	{
    +        // phpcs:enable
     		return 0;
     	}
     
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *	Close Excel file
          *
     	 * 	@return		int							<0 if KO, >0 if OK
          */
     	function close_file()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if (! empty($conf->global->MAIN_USE_PHP_WRITEEXCEL))
    @@ -453,7 +483,8 @@ class ExportExcel extends ModeleExports
     	}
     
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          * Clean a cell to respect rules of Excel file cells
          *
          * @param 	string	$newvalue	String to clean
    @@ -461,6 +492,7 @@ class ExportExcel extends ModeleExports
          */
         function excel_clean($newvalue)
         {
    +        // phpcs:enable
     		// Rule Dolibarr: No HTML
         	$newvalue=dol_string_nohtmltag($newvalue);
     
    @@ -490,4 +522,3 @@ class ExportExcel extends ModeleExports
         	return $letter;
         }
     }
    -
    diff --git a/htdocs/core/modules/export/export_excel2007.modules.php b/htdocs/core/modules/export/export_excel2007.modules.php
    index df9fd9d5705..fa12c7c50b5 100644
    --- a/htdocs/core/modules/export/export_excel2007.modules.php
    +++ b/htdocs/core/modules/export/export_excel2007.modules.php
    @@ -17,7 +17,7 @@
      */
     
     /**
    - *	\file       htdocs/core/modules/export/export_excel.modules.php
    + *	\file       htdocs/core/modules/export/export_excel2007.modules.php
      *	\ingroup    export
      *	\brief      File of class to generate export file with Excel format
      *	\author	    Laurent Destailleur
    @@ -33,19 +33,37 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
      */
     class ExportExcel2007 extends ExportExcel
     {
    -	var $id;
    -	var $label;
    -	var $extension;
    -	var $version;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -	var $label_lib;
    -	var $version_lib;
    +	/**
    +     * @var string label
    +     */
    +    public $label;
     
    -	var $workbook;      // Handle fichier
    -	var $worksheet;     // Handle onglet
    -	var $row;
    -	var $col;
    -    var $file;          // To save filename
    +	public $extension;
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	public $label_lib;
    +
    +	public $version_lib;
    +
    +	public $workbook;      // Handle fichier
    +
    +	public $worksheet;     // Handle onglet
    +
    +	public $row;
    +
    +	public $col;
    +
    +    public $file;          // To save filename
     
     	/**
     	 *	Constructor
    @@ -65,7 +83,7 @@ class ExportExcel2007 extends ExportExcel
     		$this->version='1.30';             // Driver version
     
     		$this->disabled = (in_array(constant('PHPEXCEL_PATH'),array('disabled','disabled/'))?1:0);	// A condition to disable module (used for native debian packages)
    -		
    +
     		if (empty($this->disabled))
     		{
         		// If driver use an external library, put its name here
    @@ -85,18 +103,20 @@ class ExportExcel2007 extends ExportExcel
                     $this->version_lib='1.8.0';		// No way to get info from library
         		}
     		}
    -		
    +
     		$this->row=0;
     	}
     
     
    -	/**
    -     *	Close Excel file
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Close Excel file
          *
    -	 * 	@return		int							<0 if KO, >0 if OK
    +	 *  @return		int							<0 if KO, >0 if OK
          */
     	function close_file()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if (! empty($conf->global->MAIN_USE_PHP_WRITEEXCEL))
    @@ -113,6 +133,4 @@ class ExportExcel2007 extends ExportExcel
         	}
     		return 1;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/export/export_excelnew.modules.php b/htdocs/core/modules/export/export_excelnew.modules.php
    new file mode 100644
    index 00000000000..dfb9e4381f7
    --- /dev/null
    +++ b/htdocs/core/modules/export/export_excelnew.modules.php
    @@ -0,0 +1,442 @@
    +<?php
    +/* Copyright (C) 2006-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2012      Marcos García        <marcosgdf@gmail.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *	\file       htdocs/core/modules/export/export_excelnew.modules.php
    + *	\ingroup    export
    + *	\brief      File of class to generate export file with Excel format
    + *	\author	    Laurent Destailleur
    + */
    +
    +require_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    +
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +/**
    + *	Class to build export files with Excel format
    + */
    +class ExportExcelnew extends ModeleExports
    +{
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +    /**
    +     * @var string Export Excel label
    +     */
    +    public $label;
    +
    +	public $extension;
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	public $label_lib;
    +
    +	public $version_lib;
    +
    +	public $workbook;      // Handle file
    +
    +	public $worksheet;     // Handle sheet
    +
    +	public $row;
    +
    +	public $col;
    +
    +    public $file;          // To save filename
    +
    +
    +	/**
    +	 *	Constructor
    +	 *
    +	 *	@param	    DoliDB	$db      Database handler
    +	 */
    +	function __construct($db)
    +	{
    +		global $conf, $langs;
    +		$this->db = $db;
    +
    +		$this->id='excel2007new';                  // Same value then xxx in file name export_xxx.modules.php
    +		$this->label='Excel 2007 by PHPSpreadSheet';             // Label of driver
    +		$this->desc = $langs->trans('Excel2007FormatDesc');
    +		$this->extension='xlsx';             // Extension for generated file by this driver
    +        $this->picto='mime/xls';					// Picto
    +		$this->version='1.30';             // Driver version
    +		$this->phpmin = array(5,6);		   // Minimum version of PHP required by module
    +
    +		$this->disabled = (in_array(constant('PHPEXCEL_PATH'),array('disabled','disabled/'))?1:0);	// A condition to disable module (used for native debian packages)
    +
    +		if (empty($this->disabled))
    +		{
    +                //require_once PHPEXCEL_PATH.'PHPExcel.php';
    +                //require_once PHPEXCEL_PATH.'PHPExcel/Style/Alignment.php';
    +    		    //$this->label_lib='PhpExcel';
    +    		    require_once PHPEXCELNEW_PATH.'Spreadsheet.php';
    +    		    $this->label_lib='PhpSpreadSheet';
    +                $this->version_lib='1.6.0';		// No way to get info from library
    +		}
    +
    +		$this->row=0;
    +	}
    +
    +	/**
    +	 * getDriverId
    +	 *
    +	 * @return string
    +	 */
    +	function getDriverId()
    +	{
    +		return $this->id;
    +	}
    +
    +	/**
    +	 * getDriverLabel
    +	 *
    +	 * @return 	string			Return driver label
    +	 */
    +	function getDriverLabel()
    +	{
    +		return $this->label;
    +	}
    +
    +	/**
    +	 * getDriverDesc
    +	 *
    +	 * @return string
    +	 */
    +	function getDriverDesc()
    +    {
    +        return $this->desc;
    +    }
    +
    +	/**
    +	 * getDriverExtension
    +	 *
    +	 * @return string
    +	 */
    +    function getDriverExtension()
    +	{
    +		return $this->extension;
    +	}
    +
    +	/**
    +	 * getDriverVersion
    +	 *
    +	 * @return string
    +	 */
    +	function getDriverVersion()
    +	{
    +		return $this->version;
    +	}
    +
    +	/**
    +	 * getLibLabel
    +	 *
    +	 * @return string
    +	 */
    +	function getLibLabel()
    +	{
    +		return $this->label_lib;
    +	}
    +
    +	/**
    +	 * getLibVersion
    +	 *
    +	 * @return string
    +	 */
    +	function getLibVersion()
    +	{
    +		return $this->version_lib;
    +	}
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Open output file
    +	 *
    +	 * 	@param		string		$file			File name to generate
    +	 *  @param		Translate	$outputlangs	Output language object
    +	 *	@return		int							<0 if KO, >=0 if OK
    +	 */
    +	function open_file($file,$outputlangs)
    +	{
    +        // phpcs:enable
    +		global $user,$conf,$langs;
    +
    +		if (! empty($conf->global->MAIN_USE_PHP_WRITEEXCEL))
    +		{
    +		    $outputlangs->charset_output='ISO-8859-1';	// Because Excel 5 format is ISO
    +		}
    +
    +		dol_syslog(get_class($this)."::open_file file=".$file);
    +        $this->file=$file;
    +
    +		$ret=1;
    +
    +    	$outputlangs->load("exports");
    +
    +        //require_once PHPEXCEL_PATH.'PHPExcel.php';
    +        //require_once PHPEXCEL_PATH.'PHPExcel/Style/Alignment.php';
    +	    require_once DOL_DOCUMENT_ROOT.'/includes/phpoffice/autoloader.php';
    +	    require_once DOL_DOCUMENT_ROOT.'/includes/Psr/autoloader.php';
    +	    require_once PHPEXCELNEW_PATH.'Spreadsheet.php';
    +
    +	    if ($this->id == 'excel2007new')
    +	    {
    +            if (! class_exists('ZipArchive'))	// For Excel2007, PHPExcel need ZipArchive
    +            {
    +            	$langs->load("errors");
    +            	$this->error=$langs->trans('ErrorPHPNeedModule','zip');
    +            	return -1;
    +            }
    +	    }
    +
    +        //$this->workbook = new PHPExcel();
    +        $this->workbook = new Spreadsheet();
    +        $this->workbook->getProperties()->setCreator($user->getFullName($outputlangs).' - '.DOL_APPLICATION_TITLE.' '.DOL_VERSION);
    +        //$this->workbook->getProperties()->setLastModifiedBy('Dolibarr '.DOL_VERSION);
    +        $this->workbook->getProperties()->setTitle(basename($file));
    +        $this->workbook->getProperties()->setSubject(basename($file));
    +        $this->workbook->getProperties()->setDescription(DOL_APPLICATION_TITLE.' '.DOL_VERSION);
    +
    +        $this->workbook->setActiveSheetIndex(0);
    +        $this->workbook->getActiveSheet()->setTitle($outputlangs->trans("Sheet"));
    +        $this->workbook->getActiveSheet()->getDefaultRowDimension()->setRowHeight(16);
    +
    +		return $ret;
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *  Write header
    +	 *
    +     *  @param      Translate	$outputlangs        Object lang to translate values
    +	 * 	@return		int								<0 if KO, >0 if OK
    +	 */
    +	function write_header($outputlangs)
    +	{
    +        // phpcs:enable
    +		//$outputlangs->charset_output='ISO-8859-1';	// Because Excel 5 format is ISO
    +
    +		return 0;
    +	}
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +     *  Output title line into file
    +     *
    +     *  @param      array		$array_export_fields_label   	Array with list of label of fields
    +     *  @param      array		$array_selected_sorted       	Array with list of field to export
    +     *  @param      Translate	$outputlangs    				Object lang to translate values
    +     *  @param		array		$array_types					Array with types of fields
    +	 * 	@return		int											<0 if KO, >0 if OK
    +	 */
    +	function write_title($array_export_fields_label,$array_selected_sorted,$outputlangs,$array_types)
    +	{
    +        // phpcs:enable
    +		global $conf;
    +
    +		// Create a format for the column headings
    +        $this->workbook->getActiveSheet()->getStyle('1')->getFont()->setBold(true);
    +        $this->workbook->getActiveSheet()->getStyle('1')->getAlignment()->setHorizontal(PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT);
    +
    +		$this->col=0;
    +		foreach($array_selected_sorted as $code => $value)
    +		{
    +            $alias=$array_export_fields_label[$code];
    +			//print "dd".$alias;
    +			if (empty($alias)) dol_print_error('','Bad value for field with code='.$code.'. Try to redefine export.');
    +    		if (! empty($conf->global->MAIN_USE_PHP_WRITEEXCEL))
    +    		{
    +    			$this->worksheet->write($this->row, $this->col, $outputlangs->transnoentities($alias), $formatheader);
    +    		}
    +    		else
    +    		{
    +                $this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row+1, $outputlangs->transnoentities($alias));
    +    		    if (! empty($array_types[$code]) && in_array($array_types[$code],array('Date','Numeric','TextAuto')))		// Set autowidth for some types
    +                {
    +                	$this->workbook->getActiveSheet()->getColumnDimension($this->column2Letter($this->col + 1))->setAutoSize(true);
    +                }
    +    		}
    +			$this->col++;
    +		}
    +		$this->row++;
    +		return 0;
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +     *  Output record line into file
    +     *
    +     *  @param      array		$array_selected_sorted      Array with list of field to export
    +     *  @param      resource	$objp                       A record from a fetch with all fields from select
    +     *  @param      Translate	$outputlangs                Object lang to translate values
    +     *  @param		array		$array_types				Array with types of fields
    +	 * 	@return		int										<0 if KO, >0 if OK
    +	 */
    +	function write_record($array_selected_sorted,$objp,$outputlangs,$array_types)
    +	{
    +        // phpcs:enable
    +		global $conf;
    +
    +		// Define first row
    +		$this->col=0;
    +
    +		foreach($array_selected_sorted as $code => $value)
    +		{
    +			if (strpos($code,' as ') == 0) $alias=str_replace(array('.','-','(',')'),'_',$code);
    +			else $alias=substr($code, strpos($code, ' as ') + 4);
    +            if (empty($alias)) dol_print_error('','Bad value for field with code='.$code.'. Try to redefine export.');
    +            $newvalue=$objp->$alias;
    +
    +			$newvalue=$this->excel_clean($newvalue);
    +			$typefield=isset($array_types[$code])?$array_types[$code]:'';
    +
    +			if (preg_match('/^Select:/i', $typefield, $reg) && $typefield = substr($typefield, 7))
    +			{
    +				$array = unserialize($typefield);
    +				$array = $array['options'];
    +				$newvalue = $array[$newvalue];
    +			}
    +
    +			// Traduction newvalue
    +			if (preg_match('/^\((.*)\)$/i',$newvalue,$reg))
    +			{
    +				$newvalue=$outputlangs->transnoentities($reg[1]);
    +			}
    +			else
    +			{
    +				$newvalue=$outputlangs->convToOutputCharset($newvalue);
    +			}
    +
    +			if (preg_match('/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$/i',$newvalue))
    +			{
    +        		    $newvalue=dol_stringtotime($newvalue);
    +        		    $this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row+1, \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($newvalue));
    +        		    $coord=$this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row+1)->getCoordinate();
    +        		    $this->workbook->getActiveSheet()->getStyle($coord)->getNumberFormat()->setFormatCode('yyyy-mm-dd');
    +			}
    +			elseif (preg_match('/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]$/i',$newvalue))
    +			{
    +        		    $newvalue=dol_stringtotime($newvalue);
    +        		    $this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row+1, \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($newvalue));
    +        		    $coord=$this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row+1)->getCoordinate();
    +        		    $this->workbook->getActiveSheet()->getStyle($coord)->getNumberFormat()->setFormatCode('yyyy-mm-dd h:mm:ss');
    +			}
    +			else
    +			{
    +    		    	if ($typefield == 'Text' || $typefield == 'TextAuto')
    +    		    	{
    +    		    		//$this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row+1)->setValueExplicit($newvalue, PHPExcel_Cell_DataType::TYPE_STRING);
    +						$this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row+1, (string) $newvalue);
    +    		    		$coord=$this->workbook->getActiveSheet()->getCellByColumnAndRow($this->col, $this->row+1)->getCoordinate();
    +    		    		$this->workbook->getActiveSheet()->getStyle($coord)->getNumberFormat()->setFormatCode('@');
    +    		    		$this->workbook->getActiveSheet()->getStyle($coord)->getAlignment()->setHorizontal(PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT);
    +    		    	}
    +    		    	else
    +    		    	{
    +    		    		$this->workbook->getActiveSheet()->SetCellValueByColumnAndRow($this->col, $this->row+1, $newvalue);
    +    		    	}
    +			}
    +			$this->col++;
    +		}
    +		$this->row++;
    +		return 0;
    +	}
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +     *	Write footer
    +     *
    +	 * 	@param		Translate	$outputlangs	Output language object
    +	 * 	@return		int							<0 if KO, >0 if OK
    +     */
    +	function write_footer($outputlangs)
    +	{
    +        // phpcs:enable
    +		return 0;
    +	}
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *	Close Excel file
    +     *
    +	 * 	@return		int							<0 if KO, >0 if OK
    +     */
    +	function close_file()
    +	{
    +        // phpcs:enable
    +		global $conf;
    +
    +            $objWriter = new Xlsx($this->workbook);
    +            $objWriter->save($this->file);
    +            $this->workbook->disconnectWorksheets();
    +            unset($this->workbook);
    +
    +		return 1;
    +	}
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Clean a cell to respect rules of Excel file cells
    +     *
    +     * @param 	string	$newvalue	String to clean
    +     * @return 	string				Value cleaned
    +     */
    +    function excel_clean($newvalue)
    +    {
    +        // phpcs:enable
    +		// Rule Dolibarr: No HTML
    +    	$newvalue=dol_string_nohtmltag($newvalue);
    +
    +    	return $newvalue;
    +    }
    +
    +
    +    /**
    +     * Convert a column to letter (1->A, 0->B, 27->AA, ...)
    +     *
    +     * @param 	int		$c		Column position
    +     * @return 	string			Letter
    +     */
    +    function column2Letter($c)
    +    {
    +
    +    	$c = intval($c);
    +    	if ($c <= 0) return '';
    +
    +    	while ($c != 0)
    +    	{
    +    		$p = ($c - 1) % 26;
    +    		$c = intval(($c - $p) / 26);
    +    		$letter = chr(65 + $p) . $letter;
    +    	}
    +
    +    	return $letter;
    +    }
    +}
    diff --git a/htdocs/core/modules/export/export_tsv.modules.php b/htdocs/core/modules/export/export_tsv.modules.php
    index 2945c5095b8..8afa9ded884 100644
    --- a/htdocs/core/modules/export/export_tsv.modules.php
    +++ b/htdocs/core/modules/export/export_tsv.modules.php
    @@ -31,17 +31,31 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/export/modules_export.php';
      */
     class ExportTsv extends ModeleExports
     {
    -    var $id;
    -    var $label;
    -    var $extension;
    -    var $version;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -    var $label_lib;
    -    var $version_lib;
    +    /**
    +     * @var string label
    +     */
    +    public $label;
     
    -    var $separator="\t";
    +    public $extension;
     
    -    var $handle;    // Handle fichier
    +    /**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +    public $label_lib;
    +
    +    public $version_lib;
    +
    +    public $separator="\t";
    +
    +    public $handle;    // Handle fichier
     
     
         /**
    @@ -137,20 +151,22 @@ class ExportTsv extends ModeleExports
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	*	Open output file
     	*
     	 *	@param		string		$file			Path of filename to generate
     	*	@param		Translate	$outputlangs	Output language object
     	*	@return		int							<0 if KO, >=0 if OK
    -	*/
    -	function open_file($file,$outputlangs)
    +    */
    +    function open_file($file,$outputlangs)
         {
    +        // phpcs:enable
             global $langs;
     
             dol_syslog("ExportTsv::open_file file=".$file);
     
    -		$ret=1;
    +        $ret=1;
     
             $outputlangs->load("exports");
     		$this->handle = fopen($file, "wt");
    @@ -164,6 +180,7 @@ class ExportTsv extends ModeleExports
     		return $ret;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output header into file
     	 *
    @@ -172,11 +189,13 @@ class ExportTsv extends ModeleExports
     	 */
         function write_header($outputlangs)
         {
    +        // phpcs:enable
             return 0;
         }
     
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *  Output title line into file
          *
          *  @param      array		$array_export_fields_label   	Array with list of label of fields
    @@ -187,6 +206,7 @@ class ExportTsv extends ModeleExports
     	 */
         function write_title($array_export_fields_label,$array_selected_sorted,$outputlangs,$array_types)
         {
    +        // phpcs:enable
             foreach($array_selected_sorted as $code => $value)
             {
                 $newvalue=$outputlangs->transnoentities($array_export_fields_label[$code]);		// newvalue is now $outputlangs->charset_output encoded
    @@ -199,6 +219,7 @@ class ExportTsv extends ModeleExports
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output record line into file
     	 *
    @@ -210,6 +231,7 @@ class ExportTsv extends ModeleExports
     	 */
         function write_record($array_selected_sorted,$objp,$outputlangs,$array_types)
         {
    +        // phpcs:enable
         	global $conf;
     
     		$this->col=0;
    @@ -226,14 +248,14 @@ class ExportTsv extends ModeleExports
     			if (preg_match('/^\((.*)\)$/i',$newvalue,$reg)) $newvalue=$outputlangs->transnoentities($reg[1]);
     
     			$newvalue=$this->tsv_clean($newvalue,$outputlangs->charset_output);
    -			
    +
     			if (preg_match('/^Select:/i', $typefield, $reg) && $typefield = substr($typefield, 7))
     			{
     				$array = unserialize($typefield);
     				$array = $array['options'];
     				$newvalue = $array[$newvalue];
     			}
    -			
    +
     			fwrite($this->handle,$newvalue.$this->separator);
                 $this->col++;
     		}
    @@ -241,6 +263,7 @@ class ExportTsv extends ModeleExports
             return 0;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output footer into file
     	 *
    @@ -249,9 +272,11 @@ class ExportTsv extends ModeleExports
     	 */
         function write_footer($outputlangs)
         {
    +        // phpcs:enable
     		return 0;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Close file handle
     	 *
    @@ -259,19 +284,22 @@ class ExportTsv extends ModeleExports
     	 */
         function close_file()
         {
    +        // phpcs:enable
             fclose($this->handle);
             return 0;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Clean a cell to respect rules of TSV file cells
          *
          * @param 	string	$newvalue	String to clean
    -	 * @param	string	$charset	Input AND Output character set
    +     * @param	string	$charset	Input AND Output character set
          * @return 	string				Value cleaned
          */
         function tsv_clean($newvalue, $charset)
         {
    +        // phpcs:enable
     		// Rule Dolibarr: No HTML
     		$newvalue=dol_string_nohtmltag($newvalue, 1, $charset);
     
    @@ -285,8 +313,6 @@ class ExportTsv extends ModeleExports
     			$newvalue=str_replace("\t"," ",$newvalue);
     		}
     
    -    	return $newvalue;
    +        return $newvalue;
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/export/modules_export.php b/htdocs/core/modules/export/modules_export.php
    index 5d7e0ecac84..15536747a28 100644
    --- a/htdocs/core/modules/export/modules_export.php
    +++ b/htdocs/core/modules/export/modules_export.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005      Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -30,15 +30,21 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     class ModeleExports extends CommonDocGenerator    // This class can't be abstract as there is instance propreties loaded by liste_modeles
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    -	var $driverlabel=array();
    -	var $driverversion=array();
    +	public $driverlabel=array();
     
    -	var $liblabel=array();
    -	var $libversion=array();
    +	public $driverversion=array();
    +
    +	public $liblabel=array();
    +
    +	public $libversion=array();
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Load into memory list of available export format
     	 *
    @@ -48,6 +54,7 @@ class ModeleExports extends CommonDocGenerator    // This class can't be abstrac
     	 */
     	function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		dol_syslog(get_class($this)."::liste_modeles");
     
     		$dir=DOL_DOCUMENT_ROOT."/core/modules/export/";
    @@ -159,7 +166,4 @@ class ModeleExports extends CommonDocGenerator    // This class can't be abstrac
     	{
     		return $this->libversion[$key];
     	}
    -
     }
    -
    -
    diff --git a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
    index 8bf2a87efe4..8e3caa1d3ec 100644
    --- a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
    +++ b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
    @@ -1,23 +1,24 @@
     <?php
     /* Copyright (C) 2010-2012	Laurent Destailleur	<ely@users.sourceforge.net>
    -* Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    -* Copyright (C) 2014		Marcos García		<marcosgdf@gmail.com>
    -* Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
    -*
    -* 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
    -* the Free Software Foundation; either version 3 of the License, or
    -* (at your option) any later version.
    -*
    -* This program is distributed in the hope that it will be useful,
    -* but WITHOUT ANY WARRANTY; without even the implied warranty of
    -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    -* GNU General Public License for more details.
    -*
    -* You should have received a copy of the GNU General Public License
    -* along with this program. If not, see <http://www.gnu.org/licenses/>.
    -* or see http://www.gnu.org/
    -*/
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
    + * Copyright (C) 2014		Marcos García		<marcosgdf@gmail.com>
    + * Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
    + * Copyright (C) 2018		Frédéric France		<frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
     
     /**
      *	\file       htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
    @@ -38,10 +39,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
      */
     class doc_generic_invoice_odt extends ModelePDFFactures
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +   * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +   */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -51,10 +65,10 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT/ODS templates";
    @@ -96,10 +110,10 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     	 */
     	function info($langs)
     	{
    -		global $conf,$langs;
    +		global $conf, $langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("errors","companies"));
     
     		$form = new Form($this->db);
     
    @@ -176,6 +190,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -189,6 +204,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$hookmanager;
     
     		if (empty($srctemplatepath))
    @@ -210,10 +226,8 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills"));
     
     		if ($conf->facture->dir_output)
     		{
    @@ -340,9 +354,10 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     						)
     					);
     				}
    -				catch(Exception $e)
    +				catch (Exception $e)
     				{
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_INFO);
     					return -1;
     				}
     				// After construction $odfHandler->contentXml contains content and
    @@ -356,8 +371,9 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     				try {
     					$odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8');
     				}
    -				catch(OdfException $e)
    +				catch (OdfException $e)
     				{
    +					dol_syslog($e->getMessage(), LOG_INFO);
     				}
     
     				// Define substitution array
    @@ -395,8 +411,9 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     							$odfHandler->setVars($key, $value, true, 'UTF-8');
     						}
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     				// Replace tags of lines
    @@ -429,9 +446,11 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     								}
     								catch(OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     								catch(SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlines->merge();
    @@ -455,6 +474,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     					}
     					catch(OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -468,14 +488,16 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     						$odfHandler->exportAsAttachedPDF($file);
     					}catch (Exception $e){
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
     				else {
     					try {
    -					$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    +						$odfHandler->saveToDisk($file);
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
    @@ -500,6 +522,4 @@ class doc_generic_invoice_odt extends ModelePDFFactures
     
     		return -1;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
    index 4c0724d393d..ab2ffb3bd2a 100644
    --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
    +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2014	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2008		Raphael Bertrand		<raphael.bertrand@resultic.fr>
      * Copyright (C) 2010-2014	Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2012		Christophe Battarel	<christophe.battarel@altairis.fr>
    @@ -70,9 +70,9 @@ class pdf_crabe extends ModelePDFFactures
     
     	/**
          * @var array() Minimum version of PHP required by module.
    -	 * e.g.: PHP ≥ 5.3 = array(5, 3)
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
          */
    -	public $phpmin = array(5, 2);
    +	public $phpmin = array(5, 4);
     
     	/**
          * Dolibarr version of the loaded document
    @@ -80,15 +80,46 @@ class pdf_crabe extends ModelePDFFactures
          */
     	public $version = 'dolibarr';
     
    +	/**
    +     * @var int page_largeur
    +     */
         public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
         public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
         public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
     	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
     	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
     	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
     	public $marge_basse;
     
    -	public $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
     	/**
     	 * @var bool Situation invoice type
    @@ -108,7 +139,7 @@ class pdf_crabe extends ModelePDFFactures
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
     		// Translations
     		$langs->loadLangs(array("main", "bills"));
    @@ -187,6 +218,7 @@ class pdf_crabe extends ModelePDFFactures
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *  Function to build pdf onto disk
          *
    @@ -200,13 +232,14 @@ class pdf_crabe extends ModelePDFFactures
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$db,$hookmanager,$nblignes;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		// Translations
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "bills", "products", "dict", "companies"));
     
     		$nblignes = count($object->lines);
    @@ -744,6 +777,7 @@ class pdf_crabe extends ModelePDFFactures
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Show payments table
     	 *
    @@ -755,6 +789,7 @@ class pdf_crabe extends ModelePDFFactures
     	 */
     	function _tableau_versements(&$pdf, $object, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
             $sign=1;
    @@ -881,10 +916,10 @@ class pdf_crabe extends ModelePDFFactures
     			$this->error=$this->db->lasterror();
     			return -1;
     		}
    -
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Show miscellaneous information (payment mode, payment term, ...)
     	 *
    @@ -896,6 +931,7 @@ class pdf_crabe extends ModelePDFFactures
     	 */
     	function _tableau_info(&$pdf, $object, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
    @@ -1042,6 +1078,7 @@ class pdf_crabe extends ModelePDFFactures
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show total to pay
     	 *
    @@ -1054,6 +1091,7 @@ class pdf_crabe extends ModelePDFFactures
     	 */
     	function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf,$mysoc;
     
             $sign=1;
    @@ -1165,7 +1203,6 @@ class pdf_crabe extends ModelePDFFactures
     
     								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
     								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    -
     							}
     						}
     					}
    @@ -1188,7 +1225,6 @@ class pdf_crabe extends ModelePDFFactures
     							$this->tva[$tvakey]=$tvaval * $coef_fix_tva;
     						}
     					}
    -
     				}
     
     				foreach($this->tva as $tvakey => $tvaval)
    @@ -1479,9 +1515,7 @@ class pdf_crabe extends ModelePDFFactures
     				{
     					$pdf->MultiCell($this->postotalht-$this->posxprogress,2, $outputlangs->transnoentities("Progress"),'','C');
     				}
    -
     			}
    -
     		}
     
     		if($conf->global->PRODUCT_USE_UNITS) {
    @@ -1537,7 +1571,7 @@ class pdf_crabe extends ModelePDFFactures
     	{
     		global $conf, $langs;
     
    -		// Translations
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "bills", "propal", "companies"));
     
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
    @@ -1561,27 +1595,30 @@ class pdf_crabe extends ModelePDFFactures
     		$pdf->SetXY($this->marge_gauche,$posy);
     
     		// Logo
    -		$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    -		if ($this->emetteur->logo)
    +		if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO))
     		{
    -			if (is_readable($logo))
    +			$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    +			if ($this->emetteur->logo)
     			{
    -			    $height=pdf_getHeightForLogo($logo);
    -				$pdf->Image($logo, $this->marge_gauche, $posy, 0, $height);	// width=0 (auto)
    +				if (is_readable($logo))
    +				{
    +				    $height=pdf_getHeightForLogo($logo);
    +					$pdf->Image($logo, $this->marge_gauche, $posy, 0, $height);	// width=0 (auto)
    +				}
    +				else
    +				{
    +					$pdf->SetTextColor(200,0,0);
    +					$pdf->SetFont('','B',$default_font_size - 2);
    +					$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
    +					$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
    +				}
     			}
     			else
     			{
    -				$pdf->SetTextColor(200,0,0);
    -				$pdf->SetFont('','B',$default_font_size - 2);
    -				$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
    -				$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
    +				$text=$this->emetteur->name;
    +				$pdf->MultiCell($w, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
     			}
     		}
    -		else
    -		{
    -			$text=$this->emetteur->name;
    -			$pdf->MultiCell($w, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
    -		}
     
     		$pdf->SetFont('','B', $default_font_size + 3);
     		$pdf->SetXY($posx,$posy);
    @@ -1811,5 +1848,4 @@ class pdf_crabe extends ModelePDFFactures
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'INVOICE_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    diff --git a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php
    new file mode 100644
    index 00000000000..7e28f11bb8a
    --- /dev/null
    +++ b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php
    @@ -0,0 +1,2022 @@
    +<?php
    +/* Copyright (C) 2004-2014	Laurent Destailleur	<eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
    + * Copyright (C) 2008		Raphael Bertrand		<raphael.bertrand@resultic.fr>
    + * Copyright (C) 2010-2014	Juanjo Menent		<jmenent@2byte.es>
    + * Copyright (C) 2012		Christophe Battarel	<christophe.battarel@altairis.fr>
    + * Copyright (C) 2012		Cédric Salvador		<csalvador@gpcsolutions.fr>
    + * Copyright (C) 2012-2014	Raphaël Doursenaud	<rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2015		Marcos García		<marcosgdf@gmail.com>
    + * Copyright (C) 2017		Ferran Marcet		<fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *	\file       htdocs/core/modules/facture/doc/pdf_sponge.modules.php
    + *	\ingroup    facture
    + *	\brief      File of class to generate customers invoices from sponge model
    + */
    +
    +require_once DOL_DOCUMENT_ROOT.'/core/modules/facture/modules_facture.php';
    +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
    +
    +
    +/**
    + *	Class to manage PDF invoice template sponge
    + */
    +class pdf_sponge extends ModelePDFFactures
    +{
    +     /**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
    +
    +	/**
    +     * @var string model name
    +     */
    +    public $name;
    +
    +	/**
    +     * @var string model description (short text)
    +     */
    +    public $description;
    +
    +    /**
    +     * @var int 	Save the name of generated file as the main doc when generating a doc with this template
    +     */
    +    public $update_main_doc_field;
    +
    +	/**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +	/**
    +     * @var array Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.3 = array(5, 3)
    +     */
    +	public $phpmin = array(5, 2);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'development';
    +
    +    public $page_largeur;
    +    public $page_hauteur;
    +    public $format;
    +	public $marge_gauche;
    +	public $marge_droite;
    +	public $marge_haute;
    +	public $marge_basse;
    +
    +	public $emetteur;	// Objet societe qui emet
    +
    +	/**
    +	 * @var bool Situation invoice type
    +	 */
    +	public $situationinvoice;
    +
    +	/**
    +	 * @var float X position for the situation progress column
    +	 */
    +	public $posxprogress;
    +
    +
    +	/**
    +	 *	Constructor
    +	 *
    +	 *  @param		DoliDB		$db      Database handler
    +	 */
    +	function __construct($db)
    +	{
    +		global $conf,$langs,$mysoc;
    +
    +		// Translations
    +		$langs->loadLangs(array("main", "bills"));
    +
    +		$this->db = $db;
    +		$this->name = "sponge";
    +		$this->description = $langs->trans('PDFSpongeDescription');
    +		$this->update_main_doc_field = 1;		// Save the name of generated file as the main doc when generating a doc with this template
    +
    +		// Dimensiont page
    +		$this->type = 'pdf';
    +		$formatarray=pdf_getFormat();
    +		$this->page_largeur = $formatarray['width'];
    +		$this->page_hauteur = $formatarray['height'];
    +		$this->format = array($this->page_largeur,$this->page_hauteur);
    +		$this->marge_gauche=isset($conf->global->MAIN_PDF_MARGIN_LEFT)?$conf->global->MAIN_PDF_MARGIN_LEFT:10;
    +		$this->marge_droite=isset($conf->global->MAIN_PDF_MARGIN_RIGHT)?$conf->global->MAIN_PDF_MARGIN_RIGHT:10;
    +		$this->marge_haute =isset($conf->global->MAIN_PDF_MARGIN_TOP)?$conf->global->MAIN_PDF_MARGIN_TOP:10;
    +		$this->marge_basse =isset($conf->global->MAIN_PDF_MARGIN_BOTTOM)?$conf->global->MAIN_PDF_MARGIN_BOTTOM:10;
    +
    +		$this->option_logo = 1;                    // Affiche logo
    +		$this->option_tva = 1;                     // Gere option tva FACTURE_TVAOPTION
    +		$this->option_modereg = 1;                 // Affiche mode reglement
    +		$this->option_condreg = 1;                 // Affiche conditions reglement
    +		$this->option_codeproduitservice = 1;      // Affiche code produit-service
    +		$this->option_multilang = 1;               // Dispo en plusieurs langues
    +		$this->option_escompte = 1;                // Affiche si il y a eu escompte
    +		$this->option_credit_note = 1;             // Support credit notes
    +		$this->option_freetext = 1;				   // Support add of a personalised text
    +		$this->option_draft_watermark = 1;		   // Support add of a watermark on drafts
    +
    +		$this->franchise=!$mysoc->tva_assuj;
    +
    +		// Get source company
    +		$this->emetteur=$mysoc;
    +		if (empty($this->emetteur->country_code)) $this->emetteur->country_code=substr($langs->defaultlang,-2);    // By default, if was not defined
    +
    +		// Define position of columns
    +		$this->posxdesc=$this->marge_gauche+1; // used for notes ans other stuff
    +
    +		//  Use new system for position of columns, view  $this->defineColumnField()
    +
    +		$this->tva=array();
    +		$this->localtax1=array();
    +		$this->localtax2=array();
    +		$this->atleastoneratenotnull=0;
    +		$this->atleastonediscount=0;
    +		$this->situationinvoice=false;
    +	}
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
    +    /**
    +     *  Function to build pdf onto disk
    +     *
    +     *  @param		Object		$object				Object to generate
    +     *  @param		Translate	$outputlangs		Lang output object
    +     *  @param		string		$srctemplatepath	Full path of source filename for generator using a template file
    +     *  @param		int			$hidedetails		Do not show line details
    +     *  @param		int			$hidedesc			Do not show desc
    +     *  @param		int			$hideref			Do not show ref
    +     *  @return     int         	    			1=OK, 0=KO
    +	 */
    +	public function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
    +	{
    +	    // phpcs:enable
    +	    global $user,$langs,$conf,$mysoc,$db,$hookmanager,$nblignes;
    +
    +	    if (! is_object($outputlangs)) $outputlangs=$langs;
    +	    // For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
    +	    if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
    +
    +	    // Translations
    +	    $outputlangs->loadLangs(array("main", "bills", "products", "dict", "companies"));
    +
    +	    $nblignes = count($object->lines);
    +
    +	    // Loop on each lines to detect if there is at least one image to show
    +	    $realpatharray=array();
    +	    $this->atleastonephoto = false;
    +	    if (! empty($conf->global->MAIN_GENERATE_INVOICES_WITH_PICTURE))
    +	    {
    +	        $objphoto = new Product($this->db);
    +
    +	        for ($i = 0 ; $i < $nblignes ; $i++)
    +	        {
    +	            if (empty($object->lines[$i]->fk_product)) continue;
    +
    +	            $objphoto->fetch($object->lines[$i]->fk_product);
    +	            //var_dump($objphoto->ref);exit;
    +	            if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO))
    +	            {
    +	                $pdir[0] = get_exdir($objphoto->id,2,0,0,$objphoto,'product') . $objphoto->id ."/photos/";
    +	                $pdir[1] = get_exdir(0,0,0,0,$objphoto,'product') . dol_sanitizeFileName($objphoto->ref).'/';
    +	            }
    +	            else
    +	            {
    +	                $pdir[0] = get_exdir(0,0,0,0,$objphoto,'product') . dol_sanitizeFileName($objphoto->ref).'/';				// default
    +	                $pdir[1] = get_exdir($objphoto->id,2,0,0,$objphoto,'product') . $objphoto->id ."/photos/";	// alternative
    +	            }
    +
    +	            $arephoto = false;
    +	            foreach ($pdir as $midir)
    +	            {
    +	                if (! $arephoto)
    +	                {
    +	                    $dir = $conf->product->dir_output.'/'.$midir;
    +
    +	                    foreach ($objphoto->liste_photos($dir,1) as $key => $obj)
    +	                    {
    +	                        if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES))		// If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo
    +	                        {
    +	                            if ($obj['photo_vignette'])
    +	                            {
    +	                                $filename= $obj['photo_vignette'];
    +	                            }
    +	                            else
    +	                            {
    +	                                $filename=$obj['photo'];
    +	                            }
    +	                        }
    +	                        else
    +	                        {
    +	                            $filename=$obj['photo'];
    +	                        }
    +
    +	                        $realpath = $dir.$filename;
    +	                        $arephoto = true;
    +	                        $this->atleastonephoto = true;
    +	                    }
    +	                }
    +	            }
    +
    +	            if ($realpath && $arephoto) $realpatharray[$i]=$realpath;
    +	        }
    +	    }
    +
    +	    //if (count($realpatharray) == 0) $this->posxpicture=$this->posxtva;
    +
    +	    if ($conf->facture->dir_output)
    +	    {
    +	        $object->fetch_thirdparty();
    +
    +	        $deja_regle = $object->getSommePaiement(($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? 1 : 0);
    +	        $amount_credit_notes_included = $object->getSumCreditNotesUsed(($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? 1 : 0);
    +	        $amount_deposits_included = $object->getSumDepositsUsed(($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? 1 : 0);
    +
    +	        // Definition of $dir and $file
    +	        if ($object->specimen)
    +	        {
    +	            $dir = $conf->facture->dir_output;
    +	            $file = $dir . "/SPECIMEN.pdf";
    +	        }
    +	        else
    +	        {
    +	            $objectref = dol_sanitizeFileName($object->ref);
    +	            $dir = $conf->facture->dir_output . "/" . $objectref;
    +	            $file = $dir . "/" . $objectref . ".pdf";
    +	        }
    +	        if (! file_exists($dir))
    +	        {
    +	            if (dol_mkdir($dir) < 0)
    +	            {
    +	                $this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
    +	                return 0;
    +	            }
    +	        }
    +
    +	        if (file_exists($dir))
    +	        {
    +	            // Add pdfgeneration hook
    +	            if (! is_object($hookmanager))
    +	            {
    +	                include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
    +	                $hookmanager=new HookManager($this->db);
    +	            }
    +	            $hookmanager->initHooks(array('pdfgeneration'));
    +	            $parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
    +	            global $action;
    +	            $reshook=$hookmanager->executeHooks('beforePDFCreation',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +
    +	            // Set nblignes with the new facture lines content after hook
    +	            $nblignes = count($object->lines);
    +	            $nbpayments = count($object->getListOfPayments());
    +
    +	            // Create pdf instance
    +	            $pdf=pdf_getInstance($this->format);
    +	            $default_font_size = pdf_getPDFFontSize($outputlangs);	// Must be after pdf_getInstance
    +	            $pdf->SetAutoPageBreak(1,0);
    +
    +	            $heightforinfotot = 50+(4*$nbpayments);	// Height reserved to output the info and total part and payment part
    +	            $heightforfreetext= (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT)?$conf->global->MAIN_PDF_FREETEXT_HEIGHT:5);	// Height reserved to output the free text on last page
    +	            $heightforfooter = $this->marge_basse + (empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS)?12:22);	// Height reserved to output the footer (value include bottom margin)
    +
    +	            if (class_exists('TCPDF'))
    +	            {
    +	                $pdf->setPrintHeader(false);
    +	                $pdf->setPrintFooter(false);
    +	            }
    +	            $pdf->SetFont(pdf_getPDFFont($outputlangs));
    +
    +	            // Set path to the background PDF File
    +                if (! empty($conf->global->MAIN_ADD_PDF_BACKGROUND))
    +	            {
    +	                $pagecount = $pdf->setSourceFile($conf->mycompany->dir_output.'/'.$conf->global->MAIN_ADD_PDF_BACKGROUND);
    +	                $tplidx = $pdf->importPage(1);
    +	            }
    +
    +	            $pdf->Open();
    +	            $pagenb=0;
    +	            $pdf->SetDrawColor(128,128,128);
    +
    +	            $pdf->SetTitle($outputlangs->convToOutputCharset($object->ref));
    +	            $pdf->SetSubject($outputlangs->transnoentities("PdfInvoiceTitle"));
    +	            $pdf->SetCreator("Dolibarr ".DOL_VERSION);
    +	            $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs)));
    +	            $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfInvoiceTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name));
    +	            if (! empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false);
    +
    +	            $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite);   // Left, Top, Right
    +
    +	            // Does we have at least one line with discount $this->atleastonediscount
    +	            foreach ($object->lines as $line) {
    +	               if ($line->remise_percent){
    +	                    $this->atleastonediscount = true;
    +	                    break;
    +	               }
    +	            }
    +
    +
    +	            // Situation invoice handling
    +	            if ($object->situation_cycle_ref)
    +	            {
    +	                $this->situationinvoice = true;
    +	            }
    +
    +	            // New page
    +	            $pdf->AddPage();
    +	            if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +	            $pagenb++;
    +
    +	            $top_shift = $this->_pagehead($pdf, $object, 1, $outputlangs);
    +	            $pdf->SetFont('','', $default_font_size - 1);
    +	            $pdf->MultiCell(0, 3, '');		// Set interline to 3
    +	            $pdf->SetTextColor(0,0,0);
    +
    +	            $tab_top = 90+$top_shift;
    +	            $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)?42+$top_shift:10);
    +	            $tab_height = 130-$top_shift;
    +	            $tab_height_newpage = 150;
    +	            if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $tab_height_newpage -= $top_shift;
    +
    +	            // Incoterm
    +	            $height_incoterms = 0;
    +	            if ($conf->incoterm->enabled)
    +	            {
    +	                $desc_incoterms = $object->getIncotermsForPDF();
    +	                if ($desc_incoterms)
    +	                {
    +						$tab_top -= 2;
    +
    +	                    $pdf->SetFont('','', $default_font_size - 1);
    +	                    $pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top-1, dol_htmlentitiesbr($desc_incoterms), 0, 1);
    +	                    $nexY = max($pdf->GetY(),$nexY);
    +	                    $height_incoterms=$nexY-$tab_top;
    +
    +	                    // Rect prend une longueur en 3eme param
    +	                    $pdf->SetDrawColor(192,192,192);
    +	                    $pdf->Rect($this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_incoterms+1);
    +
    +	                    $tab_top = $nexY+6;
    +	                    $height_incoterms += 4;
    +	                }
    +	            }
    +
    +	            // Affiche notes
    +	            $notetoshow=empty($object->note_public)?'':$object->note_public;
    +	            if (! empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE))
    +	            {
    +	                // Get first sale rep
    +	                if (is_object($object->thirdparty))
    +	                {
    +	                    $salereparray=$object->thirdparty->getSalesRepresentatives($user);
    +	                    $salerepobj=new User($this->db);
    +	                    $salerepobj->fetch($salereparray[0]['id']);
    +	                    if (! empty($salerepobj->signature)) $notetoshow=dol_concatdesc($notetoshow, $salerepobj->signature);
    +	                }
    +	            }
    +
    +	            $pagenb = $pdf->getPage();
    +	            if ($notetoshow)
    +	            {
    +					$tab_top -= 2;
    +
    +	                $tab_width = $this->page_largeur-$this->marge_gauche-$this->marge_droite;
    +	                $pageposbeforenote = $pagenb;
    +
    +	                $substitutionarray=pdf_getSubstitutionArray($outputlangs, null, $object);
    +	                complete_substitutions_array($substitutionarray, $outputlangs, $object);
    +	                $notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs);
    +
    +
    +	                $pdf->startTransaction();
    +
    +	                $pdf->SetFont('','', $default_font_size - 1);
    +	                $pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, dol_htmlentitiesbr($notetoshow), 0, 1);
    +	                // Description
    +	                $pageposafternote=$pdf->getPage();
    +	                $posyafter = $pdf->GetY();
    +
    +	                if($pageposafternote>$pageposbeforenote )
    +	                {
    +	                    $pdf->rollbackTransaction(true);
    +
    +	                    // prepar pages to receive notes
    +	                    while ($pagenb < $pageposafternote) {
    +	                        $pdf->AddPage();
    +	                        $pagenb++;
    +	                        if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +	                        if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +	                        // $this->_pagefoot($pdf,$object,$outputlangs,1);
    +	                        $pdf->setTopMargin($tab_top_newpage);
    +	                        // The only function to edit the bottom margin of current page to set it.
    +	                        $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext);
    +	                    }
    +
    +	                    // back to start
    +	                    $pdf->setPage($pageposbeforenote);
    +	                    $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext);
    +	                    $pdf->SetFont('','', $default_font_size - 1);
    +	                    $pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, dol_htmlentitiesbr($notetoshow), 0, 1);
    +	                    $pageposafternote=$pdf->getPage();
    +
    +	                    $posyafter = $pdf->GetY();
    +
    +	                    if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+20)))	// There is no space left for total+free text
    +	                    {
    +	                        $pdf->AddPage('','',true);
    +	                        $pagenb++;
    +	                        $pageposafternote++;
    +	                        $pdf->setPage($pageposafternote);
    +	                        $pdf->setTopMargin($tab_top_newpage);
    +	                        // The only function to edit the bottom margin of current page to set it.
    +	                        $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext);
    +	                        //$posyafter = $tab_top_newpage;
    +	                    }
    +
    +
    +	                    // apply note frame to previus pages
    +	                    $i = $pageposbeforenote;
    +	                    while ($i < $pageposafternote) {
    +	                        $pdf->setPage($i);
    +
    +
    +	                        $pdf->SetDrawColor(128,128,128);
    +	                        // Draw note frame
    +	                        if($i>$pageposbeforenote){
    +	                            $height_note = $this->page_hauteur - ($tab_top_newpage + $heightforfooter);
    +	                            $pdf->Rect($this->marge_gauche, $tab_top_newpage-1, $tab_width, $height_note + 1);
    +	                        }
    +	                        else{
    +	                            $height_note = $this->page_hauteur - ($tab_top + $heightforfooter);
    +	                            $pdf->Rect($this->marge_gauche, $tab_top-1, $tab_width, $height_note + 1);
    +	                        }
    +
    +	                        // Add footer
    +	                        $pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    +	                        $this->_pagefoot($pdf,$object,$outputlangs,1);
    +
    +	                        $i++;
    +	                    }
    +
    +	                    // apply note frame to last page
    +	                    $pdf->setPage($pageposafternote);
    +	                    if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +	                    if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +	                    $height_note=$posyafter-$tab_top_newpage;
    +	                    $pdf->Rect($this->marge_gauche, $tab_top_newpage-1, $tab_width, $height_note+1);
    +	                }
    +	                else // No pagebreak
    +	                {
    +	                    $pdf->commitTransaction();
    +	                    $posyafter = $pdf->GetY();
    +	                    $height_note=$posyafter-$tab_top;
    +	                    $pdf->Rect($this->marge_gauche, $tab_top-1, $tab_width, $height_note+1);
    +
    +
    +	                    if($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+20)) )
    +	                    {
    +	                        // not enough space, need to add page
    +	                        $pdf->AddPage('','',true);
    +	                        $pagenb++;
    +	                        $pageposafternote++;
    +	                        $pdf->setPage($pageposafternote);
    +	                        if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +	                        if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +
    +	                        $posyafter = $tab_top_newpage;
    +	                    }
    +	                }
    +
    +	                $tab_height = $tab_height - $height_note;
    +	                $tab_top = $posyafter +6;
    +	            }
    +	            else
    +	            {
    +	                $height_note=0;
    +	            }
    +
    +	            $iniY = $tab_top + 7;
    +	            $curY = $tab_top + 7;
    +	            $nexY = $tab_top + 7;
    +
    +	            // Use new auto collum system
    +	            $this->prepareArrayColumnField($object,$outputlangs,$hidedetails,$hidedesc,$hideref);
    +
    +	            // Loop on each lines
    +	            $pageposbeforeprintlines=$pdf->getPage();
    +	            $pagenb = $pageposbeforeprintlines;
    +	            for ($i = 0; $i < $nblignes; $i++)
    +	            {
    +
    +	                $curY = $nexY;
    +	                $pdf->SetFont('','', $default_font_size - 1);   // Into loop to work with multipage
    +	                $pdf->SetTextColor(0,0,0);
    +
    +	                // Define size of image if we need it
    +	                $imglinesize=array();
    +	                if (! empty($realpatharray[$i])) $imglinesize=pdf_getSizeForImage($realpatharray[$i]);
    +
    +	                $pdf->setTopMargin($tab_top_newpage);
    +	                $pdf->setPageOrientation('', 1, $heightforfooter+$heightforfreetext+$heightforinfotot);	// The only function to edit the bottom margin of current page to set it.
    +	                $pageposbefore=$pdf->getPage();
    +
    +	                $showpricebeforepagebreak=1;
    +	                $posYAfterImage=0;
    +	                $posYAfterDescription=0;
    +
    +	                if($this->getColumnStatus('photo'))
    +	                {
    +    	                // We start with Photo of product line
    +    	                if (isset($imglinesize['width']) && isset($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur-($heightforfooter+$heightforfreetext+$heightforinfotot)))	// If photo too high, we moved completely on new page
    +    	                {
    +    	                    $pdf->AddPage('','',true);
    +    	                    if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +    	                    $pdf->setPage($pageposbefore+1);
    +
    +    	                    $curY = $tab_top_newpage;
    +    	                    $showpricebeforepagebreak=0;
    +    	                }
    +
    +    	                if (!empty($this->cols['photo']) && isset($imglinesize['width']) && isset($imglinesize['height']))
    +    	                {
    +    	                    $pdf->Image($realpatharray[$i], $this->getColumnContentXStart('photo'), $curY, $imglinesize['width'], $imglinesize['height'], '', '', '', 2, 300);	// Use 300 dpi
    +    	                    // $pdf->Image does not increase value return by getY, so we save it manually
    +    	                    $posYAfterImage=$curY+$imglinesize['height'];
    +    	                }
    +	                }
    +
    +	                // Description of product line
    +	                if ($this->getColumnStatus('desc'))
    +	                {
    +    	                $pdf->startTransaction();
    +    	                pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->getColumnContentWidth('desc'),3,$this->getColumnContentXStart('desc'),$curY,$hideref,$hidedesc);
    +    	                $pageposafter=$pdf->getPage();
    +    	                if ($pageposafter > $pageposbefore)	// There is a pagebreak
    +    	                {
    +    	                    $pdf->rollbackTransaction(true);
    +    	                    $pageposafter=$pageposbefore;
    +    	                    //print $pageposafter.'-'.$pageposbefore;exit;
    +    	                    $pdf->setPageOrientation('', 1, $heightforfooter);	// The only function to edit the bottom margin of current page to set it.
    +    	                    pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->getColumnContentWidth('desc'),3,$this->getColumnContentXStart('desc'),$curY,$hideref,$hidedesc);
    +    	                    $pageposafter=$pdf->getPage();
    +    	                    $posyafter=$pdf->GetY();
    +    	                    //var_dump($posyafter); var_dump(($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))); exit;
    +    	                    if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot)))	// There is no space left for total+free text
    +    	                    {
    +    	                        if ($i == ($nblignes-1))	// No more lines, and no space left to show total, so we create a new page
    +    	                        {
    +    	                            $pdf->AddPage('','',true);
    +    	                            if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +    	                            $pdf->setPage($pageposafter+1);
    +    	                        }
    +    	                    }
    +    	                    else
    +    	                    {
    +    	                        // We found a page break
    +    	                        $showpricebeforepagebreak=0;
    +    	                    }
    +    	                }
    +    	                else	// No pagebreak
    +    	                {
    +    	                    $pdf->commitTransaction();
    +    	                }
    +    	                $posYAfterDescription=$pdf->GetY();
    +	                }
    +
    +	                $nexY = $pdf->GetY();
    +	                $pageposafter=$pdf->getPage();
    +	                $pdf->setPage($pageposbefore);
    +	                $pdf->setTopMargin($this->marge_haute);
    +	                $pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    +
    +	                // We suppose that a too long description or photo were moved completely on next page
    +	                if ($pageposafter > $pageposbefore && empty($showpricebeforepagebreak)) {
    +	                    $pdf->setPage($pageposafter); $curY = $tab_top_newpage;
    +	                }
    +
    +	                $pdf->SetFont('','', $default_font_size - 1);   // On repositionne la police par defaut
    +
    +	                // VAT Rate
    +	                if ($this->getColumnStatus('vat'))
    +	                {
    +	                    $vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails);
    +	                    $this->printStdColumnContent($pdf, $curY, 'vat', $vat_rate);
    +	                    $nexY = max($pdf->GetY(),$nexY);
    +	                }
    +
    +	                // Unit price before discount
    +	                if ($this->getColumnStatus('subprice'))
    +	                {
    +	                    $up_excl_tax = pdf_getlineupexcltax($object, $i, $outputlangs, $hidedetails);
    +	                    $this->printStdColumnContent($pdf, $curY, 'subprice', $up_excl_tax);
    +	                    $nexY = max($pdf->GetY(),$nexY);
    +	                }
    +
    +	                // Quantity
    +	                // Enough for 6 chars
    +	                if ($this->getColumnStatus('qty'))
    +	                {
    +	                    $qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails);
    +	                    $this->printStdColumnContent($pdf, $curY, 'qty', $qty);
    +	                    $nexY = max($pdf->GetY(),$nexY);
    +	                }
    +
    +	                // Situation progress
    +	                if ($this->getColumnStatus('progress'))
    +	                {
    +	                    $progress = pdf_getlineprogress($object, $i, $outputlangs, $hidedetails);
    +	                    $this->printStdColumnContent($pdf, $curY, 'progress', $progress);
    +	                    $nexY = max($pdf->GetY(),$nexY);
    +	                }
    +
    +	                // Unit
    +	                if ($this->getColumnStatus('unit'))
    +	                {
    +	                    $unit = pdf_getlineunit($object, $i, $outputlangs, $hidedetails, $hookmanager);
    +	                    $this->printStdColumnContent($pdf, $curY, 'unit', $unit);
    +	                    $nexY = max($pdf->GetY(),$nexY);
    +	                }
    +
    +	                // Discount on line
    +	                if ($this->getColumnStatus('discount') && $object->lines[$i]->remise_percent)
    +	                {
    +	                    $remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails);
    +	                    $this->printStdColumnContent($pdf, $curY, 'discount', $remise_percent);
    +	                    $nexY = max($pdf->GetY(),$nexY);
    +	                }
    +
    +	                // Total HT line
    +	                if ($this->getColumnStatus('totalexcltax'))
    +	                {
    +	                    $total_excl_tax = pdf_getlinetotalexcltax($object, $i, $outputlangs, $hidedetails);
    +	                    $this->printStdColumnContent($pdf, $curY, 'totalexcltax', $total_excl_tax);
    +	                    $nexY = max($pdf->GetY(),$nexY);
    +	                }
    +
    +
    +	                $parameters=array(
    +	                    'object' => $object,
    +	                    'i' => $i,
    +	                    'pdf' =>& $pdf,
    +	                    'curY' =>& $curY,
    +	                    'nexY' =>& $nexY,
    +	                    'outputlangs' => $outputlangs,
    +	                    'hidedetails' => $hidedetails
    +	                );
    +	                $reshook=$hookmanager->executeHooks('printPDFline',$parameters,$this);    // Note that $object may have been modified by hook
    +
    +
    +
    +	                $sign=1;
    +	                if (isset($object->type) && $object->type == 2 && ! empty($conf->global->INVOICE_POSITIVE_CREDIT_NOTE)) $sign=-1;
    +	                // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva
    +	                $prev_progress = $object->lines[$i]->get_prev_progress($object->id);
    +	                if ($prev_progress > 0 && !empty($object->lines[$i]->situation_percent)) // Compute progress from previous situation
    +	                {
    +	                    if ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) $tvaligne = $sign * $object->lines[$i]->multicurrency_total_tva * ($object->lines[$i]->situation_percent - $prev_progress) / $object->lines[$i]->situation_percent;
    +	                    else $tvaligne = $sign * $object->lines[$i]->total_tva * ($object->lines[$i]->situation_percent - $prev_progress) / $object->lines[$i]->situation_percent;
    +	                } else {
    +	                    if ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) $tvaligne= $sign * $object->lines[$i]->multicurrency_total_tva;
    +	                    else $tvaligne= $sign * $object->lines[$i]->total_tva;
    +	                }
    +
    +	                $localtax1ligne=$object->lines[$i]->total_localtax1;
    +	                $localtax2ligne=$object->lines[$i]->total_localtax2;
    +	                $localtax1_rate=$object->lines[$i]->localtax1_tx;
    +	                $localtax2_rate=$object->lines[$i]->localtax2_tx;
    +	                $localtax1_type=$object->lines[$i]->localtax1_type;
    +	                $localtax2_type=$object->lines[$i]->localtax2_type;
    +
    +	                if ($object->remise_percent) $tvaligne-=($tvaligne*$object->remise_percent)/100;
    +	                if ($object->remise_percent) $localtax1ligne-=($localtax1ligne*$object->remise_percent)/100;
    +	                if ($object->remise_percent) $localtax2ligne-=($localtax2ligne*$object->remise_percent)/100;
    +
    +	                $vatrate=(string) $object->lines[$i]->tva_tx;
    +
    +	                // Retrieve type from database for backward compatibility with old records
    +	                if ((! isset($localtax1_type) || $localtax1_type=='' || ! isset($localtax2_type) || $localtax2_type=='') // if tax type not defined
    +	                    && (! empty($localtax1_rate) || ! empty($localtax2_rate))) // and there is local tax
    +	                {
    +	                    $localtaxtmp_array=getLocalTaxesFromRate($vatrate,0, $object->thirdparty, $mysoc);
    +	                    $localtax1_type = $localtaxtmp_array[0];
    +	                    $localtax2_type = $localtaxtmp_array[2];
    +	                }
    +
    +	                // retrieve global local tax
    +	                if ($localtax1_type && $localtax1ligne != 0)
    +	                    $this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne;
    +	                    if ($localtax2_type && $localtax2ligne != 0)
    +	                        $this->localtax2[$localtax2_type][$localtax2_rate]+=$localtax2ligne;
    +
    +	                        if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*';
    +	                        if (! isset($this->tva[$vatrate])) 				$this->tva[$vatrate]=0;
    +	                        $this->tva[$vatrate] += $tvaligne;
    +
    +	                        $nexY = max($nexY,$posYAfterImage);
    +
    +	                        // Add line
    +	                        if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
    +	                        {
    +	                            $pdf->setPage($pageposafter);
    +	                            $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
    +	                            //$pdf->SetDrawColor(190,190,200);
    +	                            $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
    +	                            $pdf->SetLineStyle(array('dash'=>0));
    +	                        }
    +
    +	                        $nexY+=2;    // Passe espace entre les lignes
    +
    +	                        // Detect if some page were added automatically and output _tableau for past pages
    +	                        while ($pagenb < $pageposafter)
    +	                        {
    +	                            $pdf->setPage($pagenb);
    +	                            if ($pagenb == $pageposbeforeprintlines)
    +	                            {
    +	                                $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1, $object->multicurrency_code);
    +	                            }
    +	                            else
    +	                            {
    +	                                $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code);
    +	                            }
    +	                            $this->_pagefoot($pdf,$object,$outputlangs,1);
    +	                            $pagenb++;
    +	                            $pdf->setPage($pagenb);
    +	                            $pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    +	                            if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +	                        }
    +
    +	                        if (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak)
    +	                        {
    +	                            if ($pagenb == $pageposafter)
    +	                            {
    +	                                $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1, $object->multicurrency_code);
    +	                            }
    +	                            else
    +	                            {
    +	                                $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code);
    +	                            }
    +	                            $this->_pagefoot($pdf,$object,$outputlangs,1);
    +	                            // New page
    +	                            $pdf->AddPage();
    +	                            if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +	                            $pagenb++;
    +	                            if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +	                        }
    +	            }
    +
    +	            // Show square
    +	            if ($pagenb == $pageposbeforeprintlines)
    +	            {
    +	                $this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 0, 0, $object->multicurrency_code);
    +	                $bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1;
    +	            }
    +	            else
    +	            {
    +	                $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0, $object->multicurrency_code);
    +	                $bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1;
    +	            }
    +
    +	            // Affiche zone infos
    +	            $posy=$this->drawInfoTable($pdf, $object, $bottomlasttab, $outputlangs);
    +
    +	            // Affiche zone totaux
    +	            $posy=$this->drawTotalTable($pdf, $object, $deja_regle, $bottomlasttab, $outputlangs);
    +
    +	            // Affiche zone versements
    +	            if (($deja_regle || $amount_credit_notes_included || $amount_deposits_included) && empty($conf->global->INVOICE_NO_PAYMENT_DETAILS))
    +	            {
    +	                $posy=$this->drawPaymentsTable($pdf, $object, $posy, $outputlangs);
    +	            }
    +
    +	            // Pied de page
    +	            $this->_pagefoot($pdf,$object,$outputlangs);
    +	            if (method_exists($pdf,'AliasNbPages')) $pdf->AliasNbPages();
    +
    +	            $pdf->Close();
    +
    +	            $pdf->Output($file,'F');
    +
    +	            // Add pdfgeneration hook
    +	            $hookmanager->initHooks(array('pdfgeneration'));
    +	            $parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
    +	            global $action;
    +	            $reshook=$hookmanager->executeHooks('afterPDFCreation',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +
    +	            if (! empty($conf->global->MAIN_UMASK))
    +	                @chmod($file, octdec($conf->global->MAIN_UMASK));
    +
    +	                $this->result = array('fullpath'=>$file);
    +
    +	                return 1;   // No error
    +	        }
    +	        else
    +	        {
    +	            $this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
    +	            return 0;
    +	        }
    +	    }
    +	    else
    +	    {
    +	        $this->error=$langs->transnoentities("ErrorConstantNotDefined","FAC_OUTPUTDIR");
    +	        return 0;
    +	    }
    +	}
    +
    +
    +	/**
    +	 *  Show payments table
    +	 *
    +     *  @param	PDF			$pdf           Object PDF
    +     *  @param  Object		$object         Object invoice
    +     *  @param  int			$posy           Position y in PDF
    +     *  @param  Translate	$outputlangs    Object langs for output
    +     *  @return int             			<0 if KO, >0 if OK
    +	 */
    +	function drawPaymentsTable(&$pdf, $object, $posy, $outputlangs)
    +	{
    +		global $conf;
    +
    +        $sign=1;
    +        if ($object->type == 2 && ! empty($conf->global->INVOICE_POSITIVE_CREDIT_NOTE)) $sign=-1;
    +
    +        $tab3_posx = 120;
    +		$tab3_top = $posy + 8;
    +		$tab3_width = 80;
    +		$tab3_height = 4;
    +		if ($this->page_largeur < 210) // To work with US executive format
    +		{
    +			$tab3_posx -= 20;
    +		}
    +
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		$title=$outputlangs->transnoentities("PaymentsAlreadyDone");
    +		if ($object->type == 2) $title=$outputlangs->transnoentities("PaymentsBackAlreadyDone");
    +
    +		$pdf->SetFont('','', $default_font_size - 3);
    +		$pdf->SetXY($tab3_posx, $tab3_top - 4);
    +		$pdf->MultiCell(60, 3, $title, 0, 'L', 0);
    +
    +		$pdf->line($tab3_posx, $tab3_top, $tab3_posx+$tab3_width, $tab3_top);
    +
    +		$pdf->SetFont('','', $default_font_size - 4);
    +		$pdf->SetXY($tab3_posx, $tab3_top);
    +		$pdf->MultiCell(20, 3, $outputlangs->transnoentities("Payment"), 0, 'L', 0);
    +		$pdf->SetXY($tab3_posx+21, $tab3_top);
    +		$pdf->MultiCell(20, 3, $outputlangs->transnoentities("Amount"), 0, 'L', 0);
    +		$pdf->SetXY($tab3_posx+40, $tab3_top);
    +		$pdf->MultiCell(20, 3, $outputlangs->transnoentities("Type"), 0, 'L', 0);
    +		$pdf->SetXY($tab3_posx+58, $tab3_top);
    +		$pdf->MultiCell(20, 3, $outputlangs->transnoentities("Num"), 0, 'L', 0);
    +
    +		$pdf->line($tab3_posx, $tab3_top-1+$tab3_height, $tab3_posx+$tab3_width, $tab3_top-1+$tab3_height);
    +
    +		$y=0;
    +
    +		$pdf->SetFont('','', $default_font_size - 4);
    +
    +
    +		// Loop on each deposits and credit notes included
    +		$sql = "SELECT re.rowid, re.amount_ht, re.multicurrency_amount_ht, re.amount_tva, re.multicurrency_amount_tva,  re.amount_ttc, re.multicurrency_amount_ttc,";
    +		$sql.= " re.description, re.fk_facture_source,";
    +		$sql.= " f.type, f.datef";
    +		$sql.= " FROM ".MAIN_DB_PREFIX ."societe_remise_except as re, ".MAIN_DB_PREFIX ."facture as f";
    +		$sql.= " WHERE re.fk_facture_source = f.rowid AND re.fk_facture = ".$object->id;
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$num = $this->db->num_rows($resql);
    +			$i=0;
    +			$invoice=new Facture($this->db);
    +			while ($i < $num)
    +			{
    +				$y+=3;
    +				$obj = $this->db->fetch_object($resql);
    +
    +				if ($obj->type == 2) $text=$outputlangs->trans("CreditNote");
    +				elseif ($obj->type == 3) $text=$outputlangs->trans("Deposit");
    +				else $text=$outputlangs->trans("UnknownType");
    +
    +				$invoice->fetch($obj->fk_facture_source);
    +
    +				$pdf->SetXY($tab3_posx, $tab3_top+$y);
    +				$pdf->MultiCell(20, 3, dol_print_date($obj->datef,'day',false,$outputlangs,true), 0, 'L', 0);
    +				$pdf->SetXY($tab3_posx+21, $tab3_top+$y);
    +				$pdf->MultiCell(20, 3, price(($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? $obj->multicurrency_amount_ttc : $obj->amount_ttc, 0, $outputlangs), 0, 'L', 0);
    +				$pdf->SetXY($tab3_posx+40, $tab3_top+$y);
    +				$pdf->MultiCell(20, 3, $text, 0, 'L', 0);
    +				$pdf->SetXY($tab3_posx+58, $tab3_top+$y);
    +				$pdf->MultiCell(20, 3, $invoice->ref, 0, 'L', 0);
    +
    +				$pdf->line($tab3_posx, $tab3_top+$y+3, $tab3_posx+$tab3_width, $tab3_top+$y+3);
    +
    +				$i++;
    +			}
    +		}
    +		else
    +		{
    +			$this->error=$this->db->lasterror();
    +			return -1;
    +		}
    +
    +		// Loop on each payment
    +		// TODO Call getListOfPaymentsgetListOfPayments instead of hard coded sql
    +		$sql = "SELECT p.datep as date, p.fk_paiement, p.num_paiement as num, pf.amount as amount, pf.multicurrency_amount,";
    +		$sql.= " cp.code";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."paiement_facture as pf, ".MAIN_DB_PREFIX."paiement as p";
    +		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as cp ON p.fk_paiement = cp.id";
    +		$sql.= " WHERE pf.fk_paiement = p.rowid AND pf.fk_facture = ".$object->id;
    +		//$sql.= " WHERE pf.fk_paiement = p.rowid AND pf.fk_facture = 1";
    +		$sql.= " ORDER BY p.datep";
    +
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$num = $this->db->num_rows($resql);
    +			$i=0;
    +			while ($i < $num) {
    +				$y+=3;
    +				$row = $this->db->fetch_object($resql);
    +
    +				$pdf->SetXY($tab3_posx, $tab3_top+$y);
    +				$pdf->MultiCell(20, 3, dol_print_date($this->db->jdate($row->date),'day',false,$outputlangs,true), 0, 'L', 0);
    +				$pdf->SetXY($tab3_posx+21, $tab3_top+$y);
    +				$pdf->MultiCell(20, 3, price($sign * (($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? $row->multicurrency_amount : $row->amount), 0, $outputlangs), 0, 'L', 0);
    +				$pdf->SetXY($tab3_posx+40, $tab3_top+$y);
    +				$oper = $outputlangs->transnoentitiesnoconv("PaymentTypeShort" . $row->code);
    +
    +				$pdf->MultiCell(20, 3, $oper, 0, 'L', 0);
    +				$pdf->SetXY($tab3_posx+58, $tab3_top+$y);
    +				$pdf->MultiCell(30, 3, $row->num, 0, 'L', 0);
    +
    +				$pdf->line($tab3_posx, $tab3_top+$y+3, $tab3_posx+$tab3_width, $tab3_top+$y+3);
    +
    +				$i++;
    +			}
    +		}
    +		else
    +		{
    +			$this->error=$this->db->lasterror();
    +			return -1;
    +		}
    +	}
    +
    +
    +	/**
    +	 *   Show miscellaneous information (payment mode, payment term, ...)
    +	 *
    +	 *   @param		PDF			$pdf     		Object PDF
    +	 *   @param		Object		$object			Object to show
    +	 *   @param		int			$posy			Y
    +	 *   @param		Translate	$outputlangs	Langs object
    +	 *   @return	void
    +	 */
    +	private function drawInfoTable(&$pdf, $object, $posy, $outputlangs)
    +	{
    +		global $conf;
    +
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		$pdf->SetFont('','', $default_font_size - 1);
    +
    +		// If France, show VAT mention if not applicable
    +		if ($this->emetteur->country_code == 'FR' && $this->franchise == 1)
    +		{
    +			$pdf->SetFont('','B', $default_font_size - 2);
    +			$pdf->SetXY($this->marge_gauche, $posy);
    +			$pdf->MultiCell(100, 3, $outputlangs->transnoentities("VATIsNotUsedForInvoice"), 0, 'L', 0);
    +
    +			$posy=$pdf->GetY()+4;
    +		}
    +
    +		$posxval=52;
    +
    +		// Show payments conditions
    +		if ($object->type != 2 && ($object->cond_reglement_code || $object->cond_reglement))
    +		{
    +			$pdf->SetFont('','B', $default_font_size - 2);
    +			$pdf->SetXY($this->marge_gauche, $posy);
    +			$titre = $outputlangs->transnoentities("PaymentConditions").':';
    +			$pdf->MultiCell(43, 4, $titre, 0, 'L');
    +
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posxval, $posy);
    +			$lib_condition_paiement=$outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code)!=('PaymentCondition'.$object->cond_reglement_code)?$outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code):$outputlangs->convToOutputCharset($object->cond_reglement_doc);
    +			$lib_condition_paiement=str_replace('\n',"\n",$lib_condition_paiement);
    +			$pdf->MultiCell(67, 4, $lib_condition_paiement,0,'L');
    +
    +			$posy=$pdf->GetY()+3;
    +		}
    +
    +		if ($object->type != 2)
    +		{
    +			// Check a payment mode is defined
    +			if (empty($object->mode_reglement_code)
    +			&& empty($conf->global->FACTURE_CHQ_NUMBER)
    +			&& empty($conf->global->FACTURE_RIB_NUMBER))
    +			{
    +				$this->error = $outputlangs->transnoentities("ErrorNoPaiementModeConfigured");
    +			}
    +			// Avoid having any valid PDF with setup that is not complete
    +			elseif (($object->mode_reglement_code == 'CHQ' && empty($conf->global->FACTURE_CHQ_NUMBER) && empty($object->fk_account) && empty($object->fk_bank))
    +				|| ($object->mode_reglement_code == 'VIR' && empty($conf->global->FACTURE_RIB_NUMBER) && empty($object->fk_account) && empty($object->fk_bank)))
    +			{
    +				$outputlangs->load("errors");
    +
    +				$pdf->SetXY($this->marge_gauche, $posy);
    +				$pdf->SetTextColor(200,0,0);
    +				$pdf->SetFont('','B', $default_font_size - 2);
    +				$this->error = $outputlangs->transnoentities("ErrorPaymentModeDefinedToWithoutSetup",$object->mode_reglement_code);
    +				$pdf->MultiCell(80, 3, $this->error,0,'L',0);
    +				$pdf->SetTextColor(0,0,0);
    +
    +				$posy=$pdf->GetY()+1;
    +			}
    +
    +			// Show payment mode
    +			if ($object->mode_reglement_code
    +			&& $object->mode_reglement_code != 'CHQ'
    +			&& $object->mode_reglement_code != 'VIR')
    +			{
    +				$pdf->SetFont('','B', $default_font_size - 2);
    +				$pdf->SetXY($this->marge_gauche, $posy);
    +				$titre = $outputlangs->transnoentities("PaymentMode").':';
    +				$pdf->MultiCell(80, 5, $titre, 0, 'L');
    +
    +				$pdf->SetFont('','', $default_font_size - 2);
    +				$pdf->SetXY($posxval, $posy);
    +				$lib_mode_reg=$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code)!=('PaymentType'.$object->mode_reglement_code)?$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code):$outputlangs->convToOutputCharset($object->mode_reglement);
    +				$pdf->MultiCell(80, 5, $lib_mode_reg,0,'L');
    +
    +				$posy=$pdf->GetY()+2;
    +			}
    +
    +			// Show payment mode CHQ
    +			if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ')
    +			{
    +				// Si mode reglement non force ou si force a CHQ
    +				if (! empty($conf->global->FACTURE_CHQ_NUMBER))
    +				{
    +					$diffsizetitle=(empty($conf->global->PDF_DIFFSIZE_TITLE)?3:$conf->global->PDF_DIFFSIZE_TITLE);
    +
    +					if ($conf->global->FACTURE_CHQ_NUMBER > 0)
    +					{
    +						$account = new Account($this->db);
    +						$account->fetch($conf->global->FACTURE_CHQ_NUMBER);
    +
    +						$pdf->SetXY($this->marge_gauche, $posy);
    +						$pdf->SetFont('','B', $default_font_size - $diffsizetitle);
    +						$pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$account->proprio),0,'L',0);
    +						$posy=$pdf->GetY()+1;
    +
    +			            if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS))
    +			            {
    +							$pdf->SetXY($this->marge_gauche, $posy);
    +							$pdf->SetFont('','', $default_font_size - $diffsizetitle);
    +							$pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($account->owner_address), 0, 'L', 0);
    +							$posy=$pdf->GetY()+2;
    +			            }
    +					}
    +					if ($conf->global->FACTURE_CHQ_NUMBER == -1)
    +					{
    +						$pdf->SetXY($this->marge_gauche, $posy);
    +						$pdf->SetFont('','B', $default_font_size - $diffsizetitle);
    +						$pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$this->emetteur->name),0,'L',0);
    +						$posy=$pdf->GetY()+1;
    +
    +			            if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS))
    +			            {
    +							$pdf->SetXY($this->marge_gauche, $posy);
    +							$pdf->SetFont('','', $default_font_size - $diffsizetitle);
    +							$pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($this->emetteur->getFullAddress()), 0, 'L', 0);
    +							$posy=$pdf->GetY()+2;
    +			            }
    +					}
    +				}
    +			}
    +
    +			// If payment mode not forced or forced to VIR, show payment with BAN
    +			if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR')
    +			{
    +				if (! empty($object->fk_account) || ! empty($object->fk_bank) || ! empty($conf->global->FACTURE_RIB_NUMBER))
    +				{
    +					$bankid=(empty($object->fk_account)?$conf->global->FACTURE_RIB_NUMBER:$object->fk_account);
    +					if (! empty($object->fk_bank)) $bankid=$object->fk_bank;   // For backward compatibility when object->fk_account is forced with object->fk_bank
    +					$account = new Account($this->db);
    +					$account->fetch($bankid);
    +
    +					$curx=$this->marge_gauche;
    +					$cury=$posy;
    +
    +					$posy=pdf_bank($pdf,$outputlangs,$curx,$cury,$account,0,$default_font_size);
    +
    +					$posy+=2;
    +				}
    +			}
    +		}
    +
    +		return $posy;
    +	}
    +
    +
    +	/**
    +	 *	Show total to pay
    +	 *
    +	 *	@param	PDF			$pdf           Object PDF
    +	 *	@param  Facture		$object         Object invoice
    +	 *	@param  int			$deja_regle     Montant deja regle
    +	 *	@param	int			$posy			Position depart
    +	 *	@param	Translate	$outputlangs	Objet langs
    +	 *	@return int							Position pour suite
    +	 */
    +	private function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs)
    +	{
    +		global $conf,$mysoc;
    +
    +        $sign=1;
    +        if ($object->type == 2 && ! empty($conf->global->INVOICE_POSITIVE_CREDIT_NOTE)) $sign=-1;
    +
    +        $default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		$tab2_top = $posy;
    +		$tab2_hl = 4;
    +		$pdf->SetFont('','', $default_font_size - 1);
    +
    +		// Tableau total
    +		$col1x = 120; $col2x = 170;
    +		if ($this->page_largeur < 210) // To work with US executive format
    +		{
    +			$col2x-=20;
    +		}
    +		$largcol2 = ($this->page_largeur - $this->marge_droite - $col2x);
    +
    +		$useborder=0;
    +		$index = 0;
    +
    +		// Total HT
    +		$pdf->SetFillColor(255,255,255);
    +		$pdf->SetXY($col1x, $tab2_top + 0);
    +		$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1);
    +
    +		$total_ht = ($conf->multicurrency->enabled && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
    +		$pdf->SetXY($col2x, $tab2_top + 0);
    +		$pdf->MultiCell($largcol2, $tab2_hl, price($sign * ($total_ht + (! empty($object->remise)?$object->remise:0)), 0, $outputlangs), 0, 'R', 1);
    +
    +		// Show VAT by rates and total
    +		$pdf->SetFillColor(248,248,248);
    +
    +		$total_ttc = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc;
    +
    +		$this->atleastoneratenotnull=0;
    +		if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))
    +		{
    +			$tvaisnull=((! empty($this->tva) && count($this->tva) == 1 && isset($this->tva['0.000']) && is_float($this->tva['0.000'])) ? true : false);
    +			if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_IFNULL) && $tvaisnull)
    +			{
    +				// Nothing to do
    +			}
    +			else
    +			{
    +			    // FIXME amount of vat not supported with multicurrency
    +
    +				//Local tax 1 before VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on')
    +				//{
    +					foreach( $this->localtax1 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('1','3','5'))) continue;
    +
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +							if ($tvakey!=0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT1",$mysoc->country_code).' ';
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					}
    +	      		//}
    +				//Local tax 2 before VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on')
    +				//{
    +					foreach( $this->localtax2 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('1','3','5'))) continue;
    +
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +							if ($tvakey!=0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT2",$mysoc->country_code).' ';
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					}
    +
    +                //}
    +
    +				// VAT
    +				// Situations totals migth be wrong on huge amounts
    +				if ($object->situation_cycle_ref && $object->situation_counter > 1) {
    +
    +					$sum_pdf_tva = 0;
    +					foreach($this->tva as $tvakey => $tvaval){
    +						$sum_pdf_tva+=$tvaval; // sum VAT amounts to compare to object
    +					}
    +
    +					if($sum_pdf_tva!=$object->total_tva) { // apply coef to recover the VAT object amount (the good one)
    +						$coef_fix_tva = $object->total_tva / $sum_pdf_tva;
    +
    +						foreach($this->tva as $tvakey => $tvaval) {
    +							$this->tva[$tvakey]=$tvaval * $coef_fix_tva;
    +						}
    +					}
    +				}
    +
    +				foreach($this->tva as $tvakey => $tvaval)
    +				{
    +					if ($tvakey != 0)    // On affiche pas taux 0
    +					{
    +						$this->atleastoneratenotnull++;
    +
    +						$index++;
    +						$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +						$tvacompl='';
    +						if (preg_match('/\*/',$tvakey))
    +						{
    +							$tvakey=str_replace('*','',$tvakey);
    +							$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +						}
    +						$totalvat =$outputlangs->transcountrynoentities("TotalVAT",$mysoc->country_code).' ';
    +						$totalvat.=vatrate($tvakey,1).$tvacompl;
    +						$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +						$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +						$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +					}
    +				}
    +
    +				//Local tax 1 after VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on')
    +				//{
    +					foreach( $this->localtax1 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('2','4','6'))) continue;
    +
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +							if ($tvakey != 0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT1",$mysoc->country_code).' ';
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					}
    +	      		//}
    +				//Local tax 2 after VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on')
    +				//{
    +					foreach( $this->localtax2 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('2','4','6'))) continue;
    +
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +						    // retrieve global local tax
    +							if ($tvakey != 0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT2",$mysoc->country_code).' ';
    +
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					//}
    +				}
    +
    +				// Revenue stamp
    +				if (price2num($object->revenuestamp) != 0)
    +				{
    +					$index++;
    +					$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +					$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("RevenueStamp"), $useborder, 'L', 1);
    +
    +					$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +					$pdf->MultiCell($largcol2, $tab2_hl, price($sign * $object->revenuestamp), $useborder, 'R', 1);
    +				}
    +
    +				// Total TTC
    +				$index++;
    +				$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +				$pdf->SetTextColor(0,0,60);
    +				$pdf->SetFillColor(224,224,224);
    +				$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
    +
    +				$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +				$pdf->MultiCell($largcol2, $tab2_hl, price($sign * $total_ttc, 0, $outputlangs), $useborder, 'R', 1);
    +			}
    +		}
    +
    +		$pdf->SetTextColor(0,0,0);
    +
    +		$creditnoteamount=$object->getSumCreditNotesUsed(($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? 1 : 0);
    +		$depositsamount=$object->getSumDepositsUsed(($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? 1 : 0);
    +		//print "x".$creditnoteamount."-".$depositsamount;exit;
    +		$resteapayer = price2num($total_ttc - $deja_regle - $creditnoteamount - $depositsamount, 'MT');
    +		if ($object->paye) $resteapayer=0;
    +
    +		if (($deja_regle > 0 || $creditnoteamount > 0 || $depositsamount > 0) && empty($conf->global->INVOICE_NO_PAYMENT_DETAILS))
    +		{
    +			// Already paid + Deposits
    +			$index++;
    +			$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("Paid"), 0, 'L', 0);
    +			$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($largcol2, $tab2_hl, price($deja_regle + $depositsamount, 0, $outputlangs), 0, 'R', 0);
    +
    +			// Credit note
    +			if ($creditnoteamount)
    +			{
    +				$index++;
    +				$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +				$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("CreditNotes"), 0, 'L', 0);
    +				$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +				$pdf->MultiCell($largcol2, $tab2_hl, price($creditnoteamount, 0, $outputlangs), 0, 'R', 0);
    +			}
    +
    +			// Escompte
    +			if ($object->close_code == Facture::CLOSECODE_DISCOUNTVAT)
    +			{
    +				$index++;
    +				$pdf->SetFillColor(255,255,255);
    +
    +				$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +				$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("EscompteOfferedShort"), $useborder, 'L', 1);
    +				$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +				$pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ttc - $deja_regle - $creditnoteamount - $depositsamount, 0, $outputlangs), $useborder, 'R', 1);
    +
    +				$resteapayer=0;
    +			}
    +
    +			$index++;
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->SetFillColor(224,224,224);
    +			$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("RemainderToPay"), $useborder, 'L', 1);
    +			$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($largcol2, $tab2_hl, price($resteapayer, 0, $outputlangs), $useborder, 'R', 1);
    +
    +			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->SetTextColor(0,0,0);
    +		}
    +
    +		$index++;
    +		return ($tab2_top + ($tab2_hl * $index));
    +	}
    +
    +	/**
    +	 *   Show table for lines
    +	 *
    +	 *   @param		PDF			$pdf     		Object PDF
    +	 *   @param		string		$tab_top		Top position of table
    +	 *   @param		string		$tab_height		Height of table (rectangle)
    +	 *   @param		int			$nexY			Y (not used)
    +	 *   @param		Translate	$outputlangs	Langs object
    +	 *   @param		int			$hidetop		1=Hide top bar of array and title, 0=Hide nothing, -1=Hide only title
    +	 *   @param		int			$hidebottom		Hide bottom bar of array
    +	 *   @param		string		$currency		Currency code
    +	 *   @return	void
    +	 */
    +	function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop=0, $hidebottom=0, $currency='')
    +	{
    +		global $conf;
    +
    +		// Force to disable hidetop and hidebottom
    +		$hidebottom=0;
    +		if ($hidetop) $hidetop=-1;
    +
    +		$currency = !empty($currency) ? $currency : $conf->currency;
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		// Amount in (at tab_top - 1)
    +		$pdf->SetTextColor(0,0,0);
    +		$pdf->SetFont('','', $default_font_size - 2);
    +
    +		if (empty($hidetop))
    +		{
    +			$titre = $outputlangs->transnoentities("AmountInCurrency",$outputlangs->transnoentitiesnoconv("Currency".$currency));
    +			$pdf->SetXY($this->page_largeur - $this->marge_droite - ($pdf->GetStringWidth($titre) + 3), $tab_top-4);
    +			$pdf->MultiCell(($pdf->GetStringWidth($titre) + 3), 2, $titre);
    +
    +			//$conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR='230,230,230';
    +			if (! empty($conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR)) $pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_droite-$this->marge_gauche, 5, 'F', null, explode(',',$conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR));
    +		}
    +
    +		$pdf->SetDrawColor(128,128,128);
    +		$pdf->SetFont('','', $default_font_size - 1);
    +
    +		// Output Rect
    +		$this->printRect($pdf,$this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height, $hidetop, $hidebottom);	// Rect prend une longueur en 3eme param et 4eme param
    +
    +
    +		foreach ($this->cols as $colKey => $colDef)
    +		{
    +		    if(!$this->getColumnStatus($colKey)) continue;
    +
    +		    // get title label
    +		    $colDef['title']['label'] = !empty($colDef['title']['label'])?$colDef['title']['label']:$outputlangs->transnoentities($colDef['title']['textkey']);
    +
    +		    // Add column separator
    +		    if(!empty($colDef['border-left'])){
    +		        $pdf->line($colDef['xStartPos'], $tab_top, $colDef['xStartPos'], $tab_top + $tab_height);
    +		    }
    +
    +		    if (empty($hidetop))
    +		    {
    +		      $pdf->SetXY($colDef['xStartPos'] + $colDef['title']['padding'][3], $tab_top + $colDef['title']['padding'][0] );
    +
    +		      $textWidth = $colDef['width'] - $colDef['title']['padding'][3] -$colDef['title']['padding'][1];
    +		      $pdf->MultiCell($textWidth,2,$colDef['title']['label'],'',$colDef['title']['align']);
    +		    }
    +		}
    +
    +		if (empty($hidetop)){
    +			$pdf->line($this->marge_gauche, $tab_top+5, $this->page_largeur-$this->marge_droite, $tab_top+5);	// line prend une position y en 2eme param et 4eme param
    +		}
    +	}
    +
    +	/**
    +	 *  Show top header of page.
    +	 *
    +	 *  @param	PDF			$pdf     		Object PDF
    +	 *  @param  Object		$object     	Object to show
    +	 *  @param  int	    	$showaddress    0=no, 1=yes
    +	 *  @param  Translate	$outputlangs	Object lang for output
    +	 *  @return	void
    +	 */
    +	function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
    +	{
    +		global $conf, $langs;
    +
    +		// Translations
    +		$outputlangs->loadLangs(array("main", "bills", "propal", "companies"));
    +
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
    +
    +		// Show Draft Watermark
    +		if($object->statut==Facture::STATUS_DRAFT && (! empty($conf->global->FACTURE_DRAFT_WATERMARK)) )
    +        {
    +		      pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->FACTURE_DRAFT_WATERMARK);
    +        }
    +
    +		$pdf->SetTextColor(0,0,60);
    +		$pdf->SetFont('','B', $default_font_size + 3);
    +
    +		$w = 110;
    +
    +		$posy=$this->marge_haute;
    +        $posx=$this->page_largeur-$this->marge_droite-$w;
    +
    +		$pdf->SetXY($this->marge_gauche,$posy);
    +
    +		// Logo
    +		if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO))
    +		{
    +			$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    +			if ($this->emetteur->logo)
    +			{
    +				if (is_readable($logo))
    +				{
    +				    $height=pdf_getHeightForLogo($logo);
    +					$pdf->Image($logo, $this->marge_gauche, $posy, 0, $height);	// width=0 (auto)
    +				}
    +				else
    +				{
    +					$pdf->SetTextColor(200,0,0);
    +					$pdf->SetFont('','B',$default_font_size - 2);
    +					$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
    +					$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
    +				}
    +			}
    +			else
    +			{
    +				$text=$this->emetteur->name;
    +				$pdf->MultiCell($w, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
    +			}
    +		}
    +
    +		$pdf->SetFont('','B', $default_font_size + 3);
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$title=$outputlangs->transnoentities("PdfInvoiceTitle");
    +		if ($object->type == 1) $title=$outputlangs->transnoentities("InvoiceReplacement");
    +		if ($object->type == 2) $title=$outputlangs->transnoentities("InvoiceAvoir");
    +		if ($object->type == 3) $title=$outputlangs->transnoentities("InvoiceDeposit");
    +		if ($object->type == 4) $title=$outputlangs->transnoentities("InvoiceProForma");
    +		if ($this->situationinvoice) $title=$outputlangs->transnoentities("InvoiceSituation");
    +		$pdf->MultiCell($w, 3, $title, '', 'R');
    +
    +		$pdf->SetFont('','B',$default_font_size);
    +
    +		$posy+=5;
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$textref=$outputlangs->transnoentities("Ref")." : " . $outputlangs->convToOutputCharset($object->ref);
    +		if ($object->statut == Facture::STATUS_DRAFT)
    +		{
    +			$pdf->SetTextColor(128,0,0);
    +			$textref.=' - '.$outputlangs->transnoentities("NotValidated");
    +		}
    +		$pdf->MultiCell($w, 4, $textref, '', 'R');
    +
    +		$posy+=1;
    +		$pdf->SetFont('','', $default_font_size - 2);
    +
    +		if ($object->ref_client)
    +		{
    +			$posy+=4;
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->MultiCell($w, 3, $outputlangs->transnoentities("RefCustomer")." : " . $outputlangs->convToOutputCharset($object->ref_client), '', 'R');
    +		}
    +
    +		$objectidnext=$object->getIdReplacingInvoice('validated');
    +		if ($object->type == 0 && $objectidnext)
    +		{
    +			$objectreplacing=new Facture($this->db);
    +			$objectreplacing->fetch($objectidnext);
    +
    +			$posy+=3;
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ReplacementByInvoice").' : '.$outputlangs->convToOutputCharset($objectreplacing->ref), '', 'R');
    +		}
    +		if ($object->type == 1)
    +		{
    +			$objectreplaced=new Facture($this->db);
    +			$objectreplaced->fetch($object->fk_facture_source);
    +
    +			$posy+=4;
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ReplacementInvoice").' : '.$outputlangs->convToOutputCharset($objectreplaced->ref), '', 'R');
    +		}
    +		if ($object->type == 2 && !empty($object->fk_facture_source))
    +		{
    +			$objectreplaced=new Facture($this->db);
    +			$objectreplaced->fetch($object->fk_facture_source);
    +
    +			$posy+=3;
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->MultiCell($w, 3, $outputlangs->transnoentities("CorrectionInvoice").' : '.$outputlangs->convToOutputCharset($objectreplaced->ref), '', 'R');
    +		}
    +
    +		$posy+=4;
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$pdf->MultiCell($w, 3, $outputlangs->transnoentities("DateInvoice")." : " . dol_print_date($object->date,"day",false,$outputlangs), '', 'R');
    +
    +		if (! empty($conf->global->INVOICE_POINTOFTAX_DATE))
    +		{
    +			$posy+=4;
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->MultiCell($w, 3, $outputlangs->transnoentities("DatePointOfTax")." : " . dol_print_date($object->date_pointoftax,"day",false,$outputlangs), '', 'R');
    +		}
    +
    +		if ($object->type != 2)
    +		{
    +			$posy+=3;
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->MultiCell($w, 3, $outputlangs->transnoentities("DateDue")." : " . dol_print_date($object->date_lim_reglement,"day",false,$outputlangs,true), '', 'R');
    +		}
    +
    +		if ($object->thirdparty->code_client)
    +		{
    +			$posy+=3;
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->MultiCell($w, 3, $outputlangs->transnoentities("CustomerCode")." : " . $outputlangs->transnoentities($object->thirdparty->code_client), '', 'R');
    +		}
    +
    +		// Get contact
    +		if (!empty($conf->global->DOC_SHOW_FIRST_SALES_REP))
    +		{
    +		    $arrayidcontact=$object->getIdContact('internal','SALESREPFOLL');
    +		    if (count($arrayidcontact) > 0)
    +		    {
    +		        $usertmp=new User($this->db);
    +		        $usertmp->fetch($arrayidcontact[0]);
    +                $posy+=4;
    +                $pdf->SetXY($posx,$posy);
    +		        $pdf->SetTextColor(0,0,60);
    +		        $pdf->MultiCell($w, 3, $langs->transnoentities("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R');
    +		    }
    +		}
    +
    +		$posy+=1;
    +
    +		$top_shift = 0;
    +		// Show list of linked objects
    +		$current_y = $pdf->getY();
    +		$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, $w, 3, 'R', $default_font_size);
    +		if ($current_y < $pdf->getY())
    +		{
    +			$top_shift = $pdf->getY() - $current_y;
    +		}
    +
    +		if ($showaddress)
    +		{
    +			// Sender properties
    +			$carac_emetteur = pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, '', 0, 'source', $object);
    +
    +			// Show sender
    +			$posy=!empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 40 : 42;
    +			$posy+=$top_shift;
    +			$posx=$this->marge_gauche;
    +			if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->page_largeur-$this->marge_droite-80;
    +
    +			$hautcadre=!empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 38 : 40;
    +			$widthrecbox=!empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 92 : 82;
    +
    +
    +			// Show sender frame
    +			$pdf->SetTextColor(0,0,0);
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posx,$posy-5);
    +			$pdf->MultiCell(66,5, $outputlangs->transnoentities("BillFrom").":", 0, 'L');
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetFillColor(230,230,230);
    +			$pdf->MultiCell($widthrecbox, $hautcadre, "", 0, 'R', 1);
    +			$pdf->SetTextColor(0,0,60);
    +
    +			// Show sender name
    +			$pdf->SetXY($posx+2,$posy+3);
    +			$pdf->SetFont('','B', $default_font_size);
    +			$pdf->MultiCell($widthrecbox-2, 4, $outputlangs->convToOutputCharset($this->emetteur->name), 0, 'L');
    +			$posy=$pdf->getY();
    +
    +			// Show sender information
    +			$pdf->SetXY($posx+2,$posy);
    +			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->MultiCell($widthrecbox-2, 4, $carac_emetteur, 0, 'L');
    +
    +			// If BILLING contact defined on invoice, we use it
    +			$usecontact=false;
    +			$arrayidcontact=$object->getIdContact('external','BILLING');
    +			if (count($arrayidcontact) > 0)
    +			{
    +				$usecontact=true;
    +				$result=$object->fetch_contact($arrayidcontact[0]);
    +			}
    +
    +			//Recipient name
    +			// On peut utiliser le nom de la societe du contact
    +			if ($usecontact && !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) {
    +				$thirdparty = $object->contact;
    +			} else {
    +				$thirdparty = $object->thirdparty;
    +			}
    +
    +			$carac_client_name= pdfBuildThirdpartyName($thirdparty, $outputlangs);
    +
    +			$carac_client=pdf_build_address($outputlangs,$this->emetteur,$object->thirdparty,($usecontact?$object->contact:''),$usecontact,'target',$object);
    +
    +			// Show recipient
    +			$widthrecbox=!empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 92 : 100;
    +			if ($this->page_largeur < 210) $widthrecbox=84;	// To work with US executive format
    +			$posy=!empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 40 : 42;
    +			$posy+=$top_shift;
    +			$posx=$this->page_largeur-$this->marge_droite-$widthrecbox;
    +			if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->marge_gauche;
    +
    +			// Show recipient frame
    +			$pdf->SetTextColor(0,0,0);
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posx+2,$posy-5);
    +			$pdf->MultiCell($widthrecbox, 5, $outputlangs->transnoentities("BillTo").":",0,'L');
    +			$pdf->Rect($posx, $posy, $widthrecbox, $hautcadre);
    +
    +			// Show recipient name
    +			$pdf->SetXY($posx+2,$posy+3);
    +			$pdf->SetFont('','B', $default_font_size);
    +			$pdf->MultiCell($widthrecbox, 2, $carac_client_name, 0, 'L');
    +
    +			$posy = $pdf->getY();
    +
    +			// Show recipient information
    +			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->SetXY($posx+2,$posy);
    +			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
    +		}
    +
    +		$pdf->SetTextColor(0,0,0);
    +		return $top_shift;
    +	}
    +
    +	/**
    +	 *   	Show footer of page. Need this->emetteur object
    +     *
    +	 *   	@param	PDF			$pdf     			PDF
    +	 * 		@param	Object		$object				Object to show
    +	 *      @param	Translate	$outputlangs		Object lang for output
    +	 *      @param	int			$hidefreetext		1=Hide free text
    +	 *      @return	int								Return height of bottom margin including footer text
    +	 */
    +	function _pagefoot(&$pdf,$object,$outputlangs,$hidefreetext=0)
    +	{
    +		global $conf;
    +		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
    +		return pdf_pagefoot($pdf,$outputlangs,'INVOICE_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
    +	}
    +
    +	/**
    +	 *   	Define Array Column Field
    +	 *
    +	 *   	@param	object			$object    		common object
    +	 *   	@param	outputlangs		$outputlangs    langs
    +     *      @param	int			   $hidedetails		Do not show line details
    +     *      @param	int			   $hidedesc		Do not show desc
    +     *      @param	int			   $hideref			Do not show ref
    +	 *      @return	null
    +	 */
    +    function defineColumnField($object,$outputlangs,$hidedetails=0,$hidedesc=0,$hideref=0)
    +    {
    +	    global $conf, $hookmanager;
    +
    +	    // Default field style for content
    +	    $this->defaultContentsFieldsStyle = array(
    +	        'align' => 'R', // R,C,L
    +	        'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	    );
    +
    +	    // Default field style for content
    +	    $this->defaultTitlesFieldsStyle = array(
    +	        'align' => 'C', // R,C,L
    +	        'padding' => array(0.5,0,0.5,0), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	    );
    +
    +	    /*
    +	     * For exemple
    +	    $this->cols['theColKey'] = array(
    +	        'rank' => $rank, // int : use for ordering columns
    +	        'width' => 20, // the column width in mm
    +	        'title' => array(
    +	            'textkey' => 'yourLangKey', // if there is no label, yourLangKey will be translated to replace label
    +	            'label' => ' ', // the final label : used fore final generated text
    +	            'align' => 'L', // text alignement :  R,C,L
    +	            'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	        ),
    +	        'content' => array(
    +	            'align' => 'L', // text alignement :  R,C,L
    +	            'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	        ),
    +	    );
    +	    */
    +
    +	    $rank=0; // do not use negative rank
    +	    $this->cols['desc'] = array(
    +	        'rank' => $rank,
    +	        'width' => false, // only for desc
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'Designation', // use lang key is usefull in somme case with module
    +	            'align' => 'L',
    +	            // 'textkey' => 'yourLangKey', // if there is no label, yourLangKey will be translated to replace label
    +	            // 'label' => ' ', // the final label
    +	            'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	        ),
    +	        'content' => array(
    +	            'align' => 'L',
    +	        ),
    +	    );
    +
    +	    // PHOTO
    +        $rank = $rank + 10;
    +        $this->cols['photo'] = array(
    +            'rank' => $rank,
    +            'width' => (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH)?20:$conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH), // in mm
    +            'status' => false,
    +            'title' => array(
    +                'textkey' => 'Photo',
    +                'label' => ' '
    +            ),
    +            'content' => array(
    +                'padding' => array(0,0,0,0), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +            ),
    +            'border-left' => false, // remove left line separator
    +        );
    +
    +	    if (! empty($conf->global->MAIN_GENERATE_INVOICES_WITH_PICTURE) && !empty($this->atleastonephoto))
    +	    {
    +	        $this->cols['photo']['status'] = true;
    +	    }
    +
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['vat'] = array(
    +	        'rank' => $rank,
    +	        'status' => false,
    +	        'width' => 16, // in mm
    +	        'title' => array(
    +	            'textkey' => 'VAT'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +	    if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) && empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN))
    +	    {
    +	        $this->cols['vat']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['subprice'] = array(
    +	        'rank' => $rank,
    +	        'width' => 19, // in mm
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'PriceUHT'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['qty'] = array(
    +	        'rank' => $rank,
    +	        'width' => 16, // in mm
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'Qty'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['progress'] = array(
    +	        'rank' => $rank,
    +	        'width' => 19, // in mm
    +	        'status' => false,
    +	        'title' => array(
    +	            'textkey' => 'Progress'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +	    if($this->situationinvoice)
    +	    {
    +	        $this->cols['progress']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['unit'] = array(
    +	        'rank' => $rank,
    +	        'width' => 11, // in mm
    +	        'status' => false,
    +	        'title' => array(
    +	            'textkey' => 'Unit'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +	    if($conf->global->PRODUCT_USE_UNITS){
    +	        $this->cols['unit']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['discount'] = array(
    +	        'rank' => $rank,
    +	        'width' => 13, // in mm
    +	        'status' => false,
    +	        'title' => array(
    +	            'textkey' => 'ReductionShort'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +	    if ($this->atleastonediscount){
    +	        $this->cols['discount']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['totalexcltax'] = array(
    +	        'rank' => $rank,
    +	        'width' => 26, // in mm
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'TotalHT'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +
    +	    $parameters=array(
    +	        'object' => $object,
    +	        'outputlangs' => $outputlangs,
    +	        'hidedetails' => $hidedetails,
    +	        'hidedesc' => $hidedesc,
    +	        'hideref' => $hideref
    +	    );
    +
    +	    $reshook=$hookmanager->executeHooks('defineColumnField',$parameters,$this);    // Note that $object may have been modified by hook
    +	    if ($reshook < 0)
    +	    {
    +	        setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +	    }
    +	    elseif (empty($reshook))
    +	    {
    +	        $this->cols = array_replace($this->cols, $hookmanager->resArray); // array_replace is used to preserve keys
    +	    }
    +	    else
    +	    {
    +	        $this->cols = $hookmanager->resArray;
    +	    }
    +	}
    +}
    diff --git a/htdocs/core/modules/facture/mod_facture_mars.php b/htdocs/core/modules/facture/mod_facture_mars.php
    index 831dce5d3e4..7057fda20ee 100644
    --- a/htdocs/core/modules/facture/mod_facture_mars.php
    +++ b/htdocs/core/modules/facture/mod_facture_mars.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2018 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -30,12 +30,24 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/facture/modules_facture.php';
      */
     class mod_facture_mars extends ModeleNumRefFactures
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $prefixinvoice='FA';
    -	var $prefixreplacement='FR';
    -	var $prefixdeposit='AC';
    -	var $prefixcreditnote='AV';
    -	var $error='';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	public $prefixinvoice='FA';
    +
    +	public $prefixreplacement='FR';
    +
    +	public $prefixdeposit='AC';
    +
    +	public $prefixcreditnote='AV';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
     	/**
    @@ -87,9 +99,9 @@ class mod_facture_mars extends ModeleNumRefFactures
     		$fayymm=''; $max='';
     
     		$posindice=8;
    -		$sql = "SELECT MAX(CAST(SUBSTRING(facnumber FROM ".$posindice.") AS SIGNED) as max";	// This is standard SQL
    +		$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED) as max";	// This is standard SQL
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture";
    -		$sql.= " WHERE facnumber LIKE '".$db->escape($this->prefixinvoice)."____-%'";
    +		$sql.= " WHERE ref LIKE '".$db->escape($this->prefixinvoice)."____-%'";
     		$sql.= " AND entity = ".$conf->entity;
     
     		$resql=$db->query($sql);
    @@ -109,9 +121,9 @@ class mod_facture_mars extends ModeleNumRefFactures
     		$fayymm='';
     
     		$posindice=8;
    -		$sql = "SELECT MAX(SUBSTRING(facnumber FROM ".$posindice.")) as max";	// This is standard SQL
    +		$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max";	// This is standard SQL
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture";
    -		$sql.= " WHERE facnumber LIKE '".$db->escape($this->prefixcreditnote)."____-%'";
    +		$sql.= " WHERE ref LIKE '".$db->escape($this->prefixcreditnote)."____-%'";
     		$sql.= " AND entity = ".$conf->entity;
     
     		$resql=$db->query($sql);
    @@ -133,28 +145,27 @@ class mod_facture_mars extends ModeleNumRefFactures
     	 * Return next value not used or last value used
     	 *
     	 * @param	Societe		$objsoc		Object third party
    -	 * @param   Facture		$facture	Object invoice
    +	 * @param   Facture		$invoice	Object invoice
          * @param   string		$mode       'next' for next value or 'last' for last value
     	 * @return  string       			Value
     	 */
    -	function getNextValue($objsoc,$facture,$mode='next')
    +	function getNextValue($objsoc, $invoice, $mode='next')
     	{
     		global $db;
    -
     		$prefix=$this->prefixinvoice;
     
    -		if ($facture->type == 1) $prefix=$this->prefixreplacement;
    -		else if ($facture->type == 2) $prefix=$this->prefixcreditnote;
    -		else if ($facture->type == 3) $prefix=$this->prefixdeposit;
    +		if ($invoice->type == 1) $prefix=$this->prefixreplacement;
    +		else if ($invoice->type == 2) $prefix=$this->prefixcreditnote;
    +		else if ($invoice->type == 3) $prefix=$this->prefixdeposit;
     		else $prefix=$this->prefixinvoice;
     
     		// D'abord on recupere la valeur max
     		$posindice=8;
    -		$sql = "SELECT MAX(CAST(SUBSTRING(facnumber FROM ".$posindice.") AS SIGNED)) as max";	// This is standard SQL
    +		$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";	// This is standard SQL
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture";
    -		$sql.= " WHERE facnumber LIKE '".$prefix."____-%'";
    -		$sql.= " AND entity IN (".getEntity('invoicenumber').")";
    -
    +		$sql.= " WHERE ref LIKE '".$prefix."____-%'";
    +		$sql.= " AND entity IN (".getEntity('invoicenumber', 1, $invoice).")";
    +		
     		$resql=$db->query($sql);
     		dol_syslog(get_class($this)."::getNextValue", LOG_DEBUG);
     		if ($resql)
    @@ -174,11 +185,11 @@ class mod_facture_mars extends ModeleNumRefFactures
         		else $num = sprintf("%04s",$max);
     
                 $ref='';
    -            $sql = "SELECT facnumber as ref";
    +            $sql = "SELECT ref as ref";
                 $sql.= " FROM ".MAIN_DB_PREFIX."facture";
    -            $sql.= " WHERE facnumber LIKE '".$prefix."____-".$num."'";
    -            $sql.= " AND entity IN (".getEntity('invoicenumber').")";
    -
    +            $sql.= " WHERE ref LIKE '".$prefix."____-".$num."'";
    +            $sql.= " AND entity IN (".getEntity('invoicenumber', 1, $invoice).")";
    +			 
                 dol_syslog(get_class($this)."::getNextValue", LOG_DEBUG);
                 $resql=$db->query($sql);
                 if ($resql)
    @@ -192,7 +203,7 @@ class mod_facture_mars extends ModeleNumRefFactures
     		}
     		else if ($mode == 'next')
     		{
    -    		$date=$facture->date;	// This is invoice date (not creation date)
    +			$date=$invoice->date;	// This is invoice date (not creation date)
         		$yymm = strftime("%y%m",$date);
     
         		if ($max >= (pow(10, 4) - 1)) $num=$max+1;	// If counter > 9999, we do not format on 4 chars, we take number as it is
    @@ -216,6 +227,5 @@ class mod_facture_mars extends ModeleNumRefFactures
     	{
     		return $this->getNextValue($objsoc,$objforref,$mode);
     	}
    -
     }
     
    diff --git a/htdocs/core/modules/facture/mod_facture_mercure.php b/htdocs/core/modules/facture/mod_facture_mercure.php
    index e826b18f0e0..c454b200004 100644
    --- a/htdocs/core/modules/facture/mod_facture_mercure.php
    +++ b/htdocs/core/modules/facture/mod_facture_mercure.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
      * Copyright (C) 2013      Juanjo Menent		<jmenent@2byte.es>
      *
    @@ -33,8 +33,16 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/facture/modules_facture.php';
      */
     class mod_facture_mercure extends ModeleNumRefFactures
     {
    -    var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -    var $error = '';
    +    /**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +    /**
    +	 * @var string Error message
    +	 */
    +	public $error = '';
     
     
         /**
    @@ -44,7 +52,7 @@ class mod_facture_mercure extends ModeleNumRefFactures
          */
         function info()
         {
    -        global $conf,$langs;
    +        global $conf, $langs;
     
             $langs->load("bills");
     
    @@ -78,7 +86,7 @@ class mod_facture_mercure extends ModeleNumRefFactures
             $texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("InvoiceReplacement").'):</td>';
             $texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskreplacement" value="'.$conf->global->FACTURE_MERCURE_MASK_REPLACEMENT.'">',$tooltip,1,1).'</td>';
             $texte.= '</tr>';
    -        
    +
             // Parametrage du prefix des avoirs
             $texte.= '<tr><td>'.$langs->trans("Mask").' ('.$langs->trans("InvoiceAvoir").'):</td>';
             $texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskcredit" value="'.$conf->global->FACTURE_MERCURE_MASK_CREDIT.'">',$tooltip,1,1).'</td>';
    @@ -123,19 +131,19 @@ class mod_facture_mercure extends ModeleNumRefFactures
          * Return next value
          *
          * @param	Societe		$objsoc     Object third party
    -     * @param   Facture		$facture	Object invoice
    +     * @param   Facture		$invoice	Object invoice
          * @param   string		$mode       'next' for next value or 'last' for last value
          * @return  string      			Value if OK, 0 if KO
          */
    -    function getNextValue($objsoc,$facture,$mode='next')
    +    function getNextValue($objsoc, $invoice, $mode='next')
         {
    -        global $db,$conf;
    +    	global $db,$conf;
     
    -        require_once DOL_DOCUMENT_ROOT .'/core/lib/functions2.lib.php';
    +    	require_once DOL_DOCUMENT_ROOT .'/core/lib/functions2.lib.php';
     
             // Get Mask value
             $mask = '';
    -        if (is_object($facture) && $facture->type == 1) 
    +        if (is_object($invoice) && $invoice->type == 1)
             {
             	$mask=$conf->global->FACTURE_MERCURE_MASK_REPLACEMENT;
             	if (! $mask)
    @@ -143,8 +151,8 @@ class mod_facture_mercure extends ModeleNumRefFactures
             		$mask=$conf->global->FACTURE_MERCURE_MASK_INVOICE;
             	}
             }
    -        else if (is_object($facture) && $facture->type == 2) $mask=$conf->global->FACTURE_MERCURE_MASK_CREDIT;
    -		else if (is_object($facture) && $facture->type == 3) $mask=$conf->global->FACTURE_MERCURE_MASK_DEPOSIT;
    +        else if (is_object($invoice) && $invoice->type == 2) $mask=$conf->global->FACTURE_MERCURE_MASK_CREDIT;
    +        else if (is_object($invoice) && $invoice->type == 3) $mask=$conf->global->FACTURE_MERCURE_MASK_DEPOSIT;
             else $mask=$conf->global->FACTURE_MERCURE_MASK_INVOICE;
             if (! $mask)
             {
    @@ -152,14 +160,17 @@ class mod_facture_mercure extends ModeleNumRefFactures
                 return 0;
             }
     
    -        $where='';
    -        //if ($facture->type == 2) $where.= " AND type = 2";
    -        //else $where.=" AND type != 2";
    +    	$where='';
    +    	//if ($facture->type == 2) $where.= " AND type = 2";
    +    	//else $where.=" AND type != 2";
     
    -        $numFinal=get_next_value($db,$mask,'facture','facnumber',$where,$objsoc,$facture->date,$mode);
    -        if (! preg_match('/([0-9])+/',$numFinal)) $this->error = $numFinal;
    +    	// Get entities
    +    	$entity = getEntity('invoicenumber', 1, $invoice);
     
    -        return  $numFinal;
    +    	$numFinal=get_next_value($db,$mask,'facture','ref',$where,$objsoc,$invoice->date,$mode,false,null,$entity);
    +    	if (! preg_match('/([0-9])+/',$numFinal)) $this->error = $numFinal;
    +
    +    	return  $numFinal;
         }
     
     
    @@ -175,5 +186,4 @@ class mod_facture_mercure extends ModeleNumRefFactures
         {
             return $this->getNextValue($objsoc,$objforref,$mode);
         }
    -
     }
    diff --git a/htdocs/core/modules/facture/mod_facture_terre.php b/htdocs/core/modules/facture/mod_facture_terre.php
    index 174d8314784..454a1588f27 100644
    --- a/htdocs/core/modules/facture/mod_facture_terre.php
    +++ b/htdocs/core/modules/facture/mod_facture_terre.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -29,11 +29,22 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/facture/modules_facture.php';
      */
     class mod_facture_terre extends ModeleNumRefFactures
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $prefixinvoice='FA';
    -	var $prefixcreditnote='AV';
    -	var $prefixdeposit='AC';
    -	var $error='';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	public $prefixinvoice='FA';
    +
    +	public $prefixcreditnote='AV';
    +
    +	public $prefixdeposit='AC';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
     	/**
    @@ -85,9 +96,9 @@ class mod_facture_terre extends ModeleNumRefFactures
     		$fayymm=''; $max='';
     
     		$posindice=8;
    -		$sql = "SELECT MAX(CAST(SUBSTRING(facnumber FROM ".$posindice.") AS SIGNED)) as max";	// This is standard SQL
    +		$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";	// This is standard SQL
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture";
    -		$sql.= " WHERE facnumber LIKE '".$db->escape($this->prefixinvoice)."____-%'";
    +		$sql.= " WHERE ref LIKE '".$db->escape($this->prefixinvoice)."____-%'";
     		$sql.= " AND entity = ".$conf->entity;
     
     		$resql=$db->query($sql);
    @@ -107,9 +118,9 @@ class mod_facture_terre extends ModeleNumRefFactures
     		$fayymm='';
     
     		$posindice=8;
    -		$sql = "SELECT MAX(CAST(SUBSTRING(facnumber FROM ".$posindice.") AS SIGNED)) as max";	// This is standard SQL
    +		$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";	// This is standard SQL
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture";
    -		$sql.= " WHERE facnumber LIKE '".$db->escape($this->prefixcreditnote)."____-%'";
    +		$sql.= " WHERE ref LIKE '".$db->escape($this->prefixcreditnote)."____-%'";
     		$sql.= " AND entity = ".$conf->entity;
     
     		$resql=$db->query($sql);
    @@ -128,9 +139,9 @@ class mod_facture_terre extends ModeleNumRefFactures
     		$fayymm='';
     
     		$posindice=8;
    -		$sql = "SELECT MAX(CAST(SUBSTRING(facnumber FROM ".$posindice.") AS SIGNED)) as max";	// This is standard SQL
    +		$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";	// This is standard SQL
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture";
    -		$sql.= " WHERE facnumber LIKE '".$db->escape($this->prefixdeposit)."____-%'";
    +		$sql.= " WHERE ref LIKE '".$db->escape($this->prefixdeposit)."____-%'";
     		$sql.= " AND entity = ".$conf->entity;
     
     		$resql=$db->query($sql);
    @@ -152,25 +163,24 @@ class mod_facture_terre extends ModeleNumRefFactures
     	 * Return next value not used or last value used
     	 *
     	 * @param	Societe		$objsoc		Object third party
    -	 * @param   Facture		$facture	Object invoice
    +	 * @param   Facture		$invoice	Object invoice
          * @param   string		$mode       'next' for next value or 'last' for last value
     	 * @return  string       			Value
     	 */
    -	function getNextValue($objsoc,$facture,$mode='next')
    +	function getNextValue($objsoc, $invoice, $mode='next')
     	{
     		global $db;
     
    -		if ($facture->type == 2) $prefix=$this->prefixcreditnote;
    -		else if ($facture->type == 3) $prefix=$this->prefixdeposit;
    +		if ($invoice->type == 2) $prefix=$this->prefixcreditnote;
    +		else if ($invoice->type == 3) $prefix=$this->prefixdeposit;
     		else $prefix=$this->prefixinvoice;
    -
     		// D'abord on recupere la valeur max
     		$posindice=8;
    -		$sql = "SELECT MAX(CAST(SUBSTRING(facnumber FROM ".$posindice.") AS SIGNED)) as max";	// This is standard SQL
    +		$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";	// This is standard SQL
     		$sql.= " FROM ".MAIN_DB_PREFIX."facture";
    -		$sql.= " WHERE facnumber LIKE '".$prefix."____-%'";
    -		$sql.= " AND entity IN (".getEntity('invoicenumber').")";
    -
    +		$sql.= " WHERE ref LIKE '".$prefix."____-%'";
    +		$sql.= " AND entity IN (".getEntity('invoicenumber', 1, $invoice).")";
    +		
     		$resql=$db->query($sql);
     		dol_syslog(get_class($this)."::getNextValue", LOG_DEBUG);
     		if ($resql)
    @@ -190,11 +200,11 @@ class mod_facture_terre extends ModeleNumRefFactures
         		else $num = sprintf("%04s",$max);
     
                 $ref='';
    -            $sql = "SELECT facnumber as ref";
    +            $sql = "SELECT ref as ref";
                 $sql.= " FROM ".MAIN_DB_PREFIX."facture";
    -            $sql.= " WHERE facnumber LIKE '".$prefix."____-".$num."'";
    -            $sql.= " AND entity IN (".getEntity('invoicenumber').")";
    -
    +            $sql.= " WHERE ref LIKE '".$prefix."____-".$num."'";
    +            $sql.= " AND entity IN (".getEntity('invoicenumber', 1, $invoice).")";
    +		   
                 dol_syslog(get_class($this)."::getNextValue", LOG_DEBUG);
                 $resql=$db->query($sql);
                 if ($resql)
    @@ -208,7 +218,7 @@ class mod_facture_terre extends ModeleNumRefFactures
     		}
     		else if ($mode == 'next')
     		{
    -    		$date=$facture->date;	// This is invoice date (not creation date)
    +			$date=$invoice->date;	// This is invoice date (not creation date)
         		$yymm = strftime("%y%m",$date);
     
         		if ($max >= (pow(10, 4) - 1)) $num=$max+1;	// If counter > 9999, we do not format on 4 chars, we take number as it is
    @@ -232,6 +242,5 @@ class mod_facture_terre extends ModeleNumRefFactures
     	{
     		return $this->getNextValue($objsoc,$objforref,$mode);
     	}
    -
     }
     
    diff --git a/htdocs/core/modules/facture/modules_facture.php b/htdocs/core/modules/facture/modules_facture.php
    index b5d9a2397cc..fd9168150d6 100644
    --- a/htdocs/core/modules/facture/modules_facture.php
    +++ b/htdocs/core/modules/facture/modules_facture.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -37,8 +37,12 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';   // Requ
      */
     abstract class ModelePDFFactures extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation modules
     	 *
    @@ -48,6 +52,7 @@ abstract class ModelePDFFactures extends CommonDocGenerator
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='invoice';
    @@ -61,11 +66,14 @@ abstract class ModelePDFFactures extends CommonDocGenerator
     }
     
     /**
    - *	Classe mere des modeles de numerotation des references de facture
    + *  Classe mere des modeles de numerotation des references de facture
      */
     abstract class ModeleNumRefFactures
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 * Return if a module can be used or not
    diff --git a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php
    index 504eee306a9..22ec100a73e 100644
    --- a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php
    +++ b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003		Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010	Laurent Destailleur			<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin				<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin				<regis.houssin@inodbox.com>
      * Copyright (C) 2008		Raphael Bertrand (Resultic)	<raphael.bertrand@resultic.fr>
      * Copyright (C) 2011		Fabrice CHERRIER
      * Copyright (C) 2013		Cédric Salvador				<csalvador@gpcsolutions.fr>
    @@ -38,21 +38,78 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
      */
     class pdf_soleil extends ModelePDFFicheinter
     {
    -	var $db;
    -	var $name;
    -	var $description;
    -	var $type;
    +	 /**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
     
    -	var $phpmin = array(4,3,0); // Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +     * @var string model name
    +     */
    +    public $name;
     
    -	var $page_largeur;
    -	var $page_hauteur;
    -	var $format;
    -	var $marge_gauche;
    -	var	$marge_droite;
    -	var	$marge_haute;
    -	var	$marge_basse;
    +	/**
    +     * @var string model description (short text)
    +     */
    +    public $description;
    +
    +	/**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +    /**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +     * @var int page_largeur
    +     */
    +    public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
    +    public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
    +    public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
    +	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
    +	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
    +	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
    +	public $marge_basse;
    +
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
     	/**
     	 *	Constructor
    @@ -94,6 +151,7 @@ class pdf_soleil extends ModelePDFFicheinter
     		$this->posxdesc=$this->marge_gauche+1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Function to build pdf onto disk
     	 *
    @@ -107,13 +165,14 @@ class pdf_soleil extends ModelePDFFicheinter
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$db,$hookmanager;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
    -		
    -		// Translations
    +
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "interventions", "dict", "companies"));
     
     		if ($conf->ficheinter->dir_output)
    @@ -497,10 +556,8 @@ class pdf_soleil extends ModelePDFFicheinter
     		global $conf,$langs;
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("interventions");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "interventions"));
     
     		pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
     
    @@ -676,6 +733,4 @@ class pdf_soleil extends ModelePDFFicheinter
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'FICHINTER_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/fichinter/mod_arctic.php b/htdocs/core/modules/fichinter/mod_arctic.php
    index 278e20ae7de..86f25dc4078 100644
    --- a/htdocs/core/modules/fichinter/mod_arctic.php
    +++ b/htdocs/core/modules/fichinter/mod_arctic.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville         <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur          <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin                <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin                <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand (Resultic)  <raphael.bertrand@resultic.fr>
      * Copyright (C) 2013      Juanjo Menent				<jmenent@2byte.es>
      *
    @@ -32,9 +32,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/fichinter/modules_fichinter.php';
      */
     class mod_arctic extends ModeleNumRefFicheinter
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'arctic';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +	 * @var string Error message
    +	 */
    +	public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='arctic';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='arctic';
     
     
     	/**
    @@ -44,7 +63,7 @@ class mod_arctic extends ModeleNumRefFicheinter
          */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
     		$langs->load("bills");
     
    @@ -137,6 +156,5 @@ class mod_arctic extends ModeleNumRefFicheinter
         {
             return $this->getNextValue($objsoc,$objforref);
         }
    -
     }
     
    diff --git a/htdocs/core/modules/fichinter/mod_pacific.php b/htdocs/core/modules/fichinter/mod_pacific.php
    index 7e60a6aed4b..24f55192ff0 100644
    --- a/htdocs/core/modules/fichinter/mod_pacific.php
    +++ b/htdocs/core/modules/fichinter/mod_pacific.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013	   Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -30,10 +30,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/fichinter/modules_fichinter.php';
      */
     class mod_pacific extends ModeleNumRefFicheinter
     {
    -    var $version='dolibarr';        // 'development', 'experimental', 'dolibarr'
    -	var $prefix='FI';
    -	var $error='';
    -	var $nom = 'pacific';
    +    /**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';        // 'development', 'experimental', 'dolibarr'
    +
    +	public $prefix='FI';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='pacific';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='pacific';
     
     
     	/**
    @@ -142,6 +162,4 @@ class mod_pacific extends ModeleNumRefFicheinter
     	{
     		return $this->getNextValue($objsoc,$objforref);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/fichinter/modules_fichinter.php b/htdocs/core/modules/fichinter/modules_fichinter.php
    index 8bcb2990bdb..a0ab40ce7a0 100644
    --- a/htdocs/core/modules/fichinter/modules_fichinter.php
    +++ b/htdocs/core/modules/fichinter/modules_fichinter.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012 Philippe Grand	    <philippe.grand@atoo-net.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -34,9 +34,13 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     abstract class ModelePDFFicheinter extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of active generation modules
     	 *
    @@ -46,6 +50,7 @@ abstract class ModelePDFFicheinter extends CommonDocGenerator
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='ficheinter';
    @@ -64,7 +69,10 @@ abstract class ModelePDFFicheinter extends CommonDocGenerator
      */
     abstract class ModeleNumRefFicheinter
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 * 	Return if a module can be used or not
    @@ -141,6 +149,7 @@ abstract class ModeleNumRefFicheinter
     }
     
     
    +// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     /**
      *  Create an intervention document on disk using template defined into FICHEINTER_ADDON_PDF
      *
    @@ -155,6 +164,7 @@ abstract class ModeleNumRefFicheinter
      */
     function fichinter_create($db, $object, $modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0)
     {
    +    // phpcs:enable
     	global $conf,$langs,$user;
     	$langs->load("ficheinter");
     
    @@ -238,4 +248,3 @@ function fichinter_create($db, $object, $modele, $outputlangs, $hidedetails=0, $
     		return 0;
     	}
     }
    -
    diff --git a/htdocs/core/modules/holiday/index.html b/htdocs/core/modules/holiday/index.html
    new file mode 100644
    index 00000000000..8b137891791
    --- /dev/null
    +++ b/htdocs/core/modules/holiday/index.html
    @@ -0,0 +1 @@
    +
    diff --git a/htdocs/core/modules/holiday/mod_holiday_immaculate.php b/htdocs/core/modules/holiday/mod_holiday_immaculate.php
    new file mode 100644
    index 00000000000..338b553166e
    --- /dev/null
    +++ b/htdocs/core/modules/holiday/mod_holiday_immaculate.php
    @@ -0,0 +1,154 @@
    +<?php
    +/* Copyright (C) 2011      Juanjo Menent	    <jmenent@2byte.es>
    + * Copyright (C) 2018      Charlene Benke		<charlie@patas-monkey.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *  \file       htdocs/core/modules/holiday/mod_holiday_immaculate.php
    + *  \ingroup    contract
    + *  \brief      File of class to manage contract numbering rules Magre
    + */
    +
    +require_once DOL_DOCUMENT_ROOT .'/core/modules/holiday/modules_holiday.php';
    +
    +/**
    + *	Class to manage contract numbering rules Magre
    + */
    +class mod_holiday_immaculate extends ModelNumRefHolidays
    +{
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +	 * @var string Error message
    +	 */
    +	public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see $name
    +	 */
    +	public $nom='Immaculate';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Immaculate';
    +
    +	public $code_auto=1;
    +
    +	/**
    +	 *	Return default description of numbering model
    +	 *
    +	 *	@return     string      text description
    +	 */
    +	function info()
    +    {
    +    	global $conf, $langs;
    +
    +		$langs->load("bills");
    +
    +		$form = new Form($this->db);
    +
    +		$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
    +		$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
    +		$texte.= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +		$texte.= '<input type="hidden" name="action" value="updateMask">';
    +		$texte.= '<input type="hidden" name="maskconstcontract" value="HOLIDAY_IMMACULATE_MASK">';
    +		$texte.= '<table class="nobordernopadding" width="100%">';
    +
    +		$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Holiday"),$langs->transnoentities("Holiday"));
    +		$tooltip.=$langs->trans("GenericMaskCodes2");
    +		$tooltip.=$langs->trans("GenericMaskCodes3");
    +		$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Holiday"),$langs->transnoentities("Holiday"));
    +		$tooltip.=$langs->trans("GenericMaskCodes5");
    +
    +		$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
    +		$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskholiday" value="'.$conf->global->HOLIDAY_IMMACULATE_MASK.'">',$tooltip,1,1).'</td>';
    +		$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
    +		$texte.= '</tr>';
    +		$texte.= '</table>';
    +		$texte.= '</form>';
    +
    +		return $texte;
    +    }
    +
    +	/**
    +	 *	Return numbering example
    +	 *
    +	 *	@return     string      Example
    +	 */
    +    function getExample()
    +    {
    +     	global $conf,$langs,$user;
    +
    +    	$old_login=$user->login;
    +    	$user->login='UUUUUUU';
    +     	$numExample = $this->getNextValue($user, '');
    +		$user->login=$old_login;
    +
    +		if (! $numExample)
    +		{
    +			$numExample = $langs->trans('NotConfigured');
    +		}
    +		return $numExample;
    +    }
    +
    +	/**
    +	 *	Return next value
    +	 *
    +	 *	@param	Societe		$user     	user object
    +	 *	@param	Object		$holiday	holiday object
    +	 *	@return string      			Value if OK, 0 if KO
    +	 */
    +    function getNextValue($user, $holiday)
    +    {
    +		global $db,$conf;
    +
    +		require_once DOL_DOCUMENT_ROOT .'/core/lib/functions2.lib.php';
    +
    +		$mask=$conf->global->HOLIDAY_IMMACULATE_MASK;
    +
    +		if (! $mask)
    +		{
    +			$this->error='NotConfigured';
    +			return 0;
    +		}
    +
    +		$numFinal=get_next_value($db,$mask,'holiday','ref','', $user, $holiday->date_create);
    +
    +		return  $numFinal;
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *  Return next value
    +	 *
    +	 *  @param  User		$fuser     	User object
    +	 *  @param  Object		$objforref	Holiday object
    +	 *  @return string      			Value if OK, 0 if KO
    +	 */
    +    function holiday_get_num($fuser, $objforref)
    +    {
    +        // phpcs:enable
    +        return $this->getNextValue($fuser, $objforref);
    +    }
    +}
    diff --git a/htdocs/core/modules/holiday/mod_holiday_madonna.php b/htdocs/core/modules/holiday/mod_holiday_madonna.php
    new file mode 100644
    index 00000000000..f53e55be6fd
    --- /dev/null
    +++ b/htdocs/core/modules/holiday/mod_holiday_madonna.php
    @@ -0,0 +1,170 @@
    +<?php
    +/* Copyright (C) 2011      Juanjo Menent	    <jmenent@2byte.es>
    + * Copyright (C) 2018      Charlene Benke		<charlie@patas-monkey.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *  \file       htdocs/core/modules/holiday/mod_holiday_madonna.php
    + *  \ingroup    contract
    + *  \brief      File of class to manage contract numbering rules Serpis
    + */
    +require_once DOL_DOCUMENT_ROOT .'/core/modules/holiday/modules_holiday.php';
    +
    +/**
    + * 	Class to manage contract numbering rules madonna
    + */
    +class mod_holiday_madonna extends ModelNumRefHolidays
    +{
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	public $prefix='HL';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see $name
    +	 */
    +	public $nom='Madonna';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Madonna';
    +
    +	public $code_auto=1;
    +
    +
    +	/**
    +	 *	Return default description of numbering model
    +	 *
    +	 *	@return     string      text description
    +	 */
    +    function info()
    +    {
    +    	global $langs;
    +      	return $langs->trans("SimpleNumRefModelDesc",$this->prefix);
    +    }
    +
    +
    +	/**
    +	 *	Return numbering example
    +	 *
    +	 *	@return     string      Example
    +	 */
    +	function getExample()
    +	{
    +		return $this->prefix."0501-0001";
    +	}
    +
    +
    +	/**
    +	 *	Test if existing numbers make problems with numbering
    +	 *
    +	 *	@return     boolean     false if conflit, true if ok
    +	 */
    +	function canBeActivated()
    +	{
    +		global $conf,$langs,$db;
    +
    +		$coyymm=''; $max='';
    +
    +		$posindice=8;
    +		$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."holiday";
    +		$sql.= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
    +		$sql.= " AND entity = ".$conf->entity;
    +
    +		$resql=$db->query($sql);
    +		if ($resql)
    +		{
    +			$row = $db->fetch_row($resql);
    +			if ($row) { $coyymm = substr($row[0],0,6); $max=$row[0]; }
    +		}
    +		if ($coyymm && ! preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i',$coyymm))
    +		{
    +			$langs->load("errors");
    +			$this->error=$langs->trans('ErrorNumRefModel', $max);
    +			return false;
    +		}
    +
    +		return true;
    +	}
    +
    +	/**
    +	 *	Return next value
    +	 *
    +	 *	@param	Societe		$objsoc     third party object
    +	 *	@param	Object		$holiday	Holiday object
    +	 *	@return string      			Value if OK, 0 if KO
    +	 */
    +	function getNextValue($objsoc, $holiday)
    +	{
    +		global $db,$conf;
    +
    +		$posindice=8;
    +		$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."holiday";
    +		$sql.= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
    +		$sql.= " AND entity = ".$conf->entity;
    +
    +		$resql=$db->query($sql);
    +		if ($resql)
    +		{
    +			$obj = $db->fetch_object($resql);
    +			if ($obj) $max = intval($obj->max);
    +			else $max=0;
    +		}
    +		else
    +		{
    +			dol_syslog("mod_holiday_madonna::getNextValue", LOG_DEBUG);
    +			return -1;
    +		}
    +
    +		$date=$holiday->date_debut;
    +		$yymm = strftime("%y%m",$date);
    +
    +		if ($max >= (pow(10, 4) - 1)) $num=$max+1;	// If counter > 9999, we do not format on 4 chars, we take number as it is
    +		else $num = sprintf("%04s",$max+1);
    +
    +		dol_syslog("mod_holiday_madonna::getNextValue return ".$this->prefix.$yymm."-".$num);
    +		return $this->prefix.$yymm."-".$num;
    +	}
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Return next value
    +	 *
    +	 *	@param	User		$fuser     	User object
    +	 *	@param	Object		$objforref	Holiday object
    +	 *	@return string      			Value if OK, 0 if KO
    +	 */
    +	function holiday_get_num($fuser,$objforref)
    +	{
    +        // phpcs:enable
    +		return $this->getNextValue($fuser,$objforref);
    +	}
    +}
    diff --git a/htdocs/core/modules/holiday/modules_holiday.php b/htdocs/core/modules/holiday/modules_holiday.php
    new file mode 100644
    index 00000000000..7f1c48fec10
    --- /dev/null
    +++ b/htdocs/core/modules/holiday/modules_holiday.php
    @@ -0,0 +1,154 @@
    +<?php
    +/* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
    + * Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
    + * Copyright (C) 2011      Juanjo Menent	    <jmenent@2byte.es>
    + * Copyright (C) 2013      Philippe Grand	    <philippe.grand@atoo-net.com>
    + * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
    + * Copyright (C) 2018      Charlene Benke		<charlie@patas-monkey.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *  \file       htdocs/core/modules/holiday/modules_holiday.php
    + *  \ingroup    contract
    + *  \brief      File with parent class for generating holiday to PDF and File of class to manage contract numbering
    + */
    +
    + require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
    +
    +
    +/**
    + *	Parent class to manage holidays document templates
    + */
    +abstract class ModelePDFHoliday extends CommonDocGenerator
    +{
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +	 *	Return list of active generation modules
    +	 *
    +     *  @param  DoliDB  $db     			Database handler
    +     *  @param  integer	$maxfilenamelength  Max length of value to show
    +     *  @return	array						List of templates
    +     */
    +	static function liste_modeles($db, $maxfilenamelength=0)
    +	{
    +        // phpcs:enable
    +		global $conf;
    +
    +		$type = 'holiday';
    +		$list = array();
    +
    +		include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +		$list = getListOfModels($db, $type, $maxfilenamelength);
    +
    +		return $list;
    +	}
    +}
    +
    +
    +/**
    + * Parent class for all holidays numbering modules
    + */
    +class ModelNumRefHolidays
    +{
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 *	Return if a module can be used or not
    +	 *
    +	 * 	@return		boolean     true if module can be used
    +	 */
    +	function isEnabled()
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 *	Return default description of numbering model
    +	 *
    +	 *	@return     string      text description
    +	 */
    +	function info()
    +	{
    +		global $langs;
    +		$langs->load("holidays");
    +		return $langs->trans("NoDescription");
    +	}
    +
    +	/**
    +	 *	Return numbering example
    +	 *
    +	 *	@return     string      Example
    +	 */
    +	function getExample()
    +	{
    +		global $langs;
    +		$langs->load("holidays");
    +		return $langs->trans("NoExample");
    +	}
    +
    +	/**
    +	 *	Test if existing numbers make problems with numbering
    +	 *
    +	 *	@return		boolean		false if conflict, true if ok
    +	 */
    +	function canBeActivated()
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 *	Return next value
    +	 *
    +	 *	@param	Societe		$objsoc     third party object
    +	 *	@param	Object		$contract	contract object
    +	 *	@return	string					Value
    +	 */
    +	function getNextValue($objsoc, $contract)
    +	{
    +		global $langs;
    +		return $langs->trans("NotAvailable");
    +	}
    +
    +	/**
    +	 *	Return numbering version module
    +	 *
    +	 *	@return     string      Value
    +	 */
    +	function getVersion()
    +	{
    +		global $langs;
    +		$langs->load("admin");
    +
    +		if ($this->version == 'development') return $langs->trans("VersionDevelopment");
    +		if ($this->version == 'experimental') return $langs->trans("VersionExperimental");
    +		if ($this->version == 'dolibarr') return DOL_VERSION;
    +		if ($this->version) return $this->version;
    +		return $langs->trans("NotAvailable");
    +	}
    +}
    diff --git a/htdocs/core/modules/import/import_csv.modules.php b/htdocs/core/modules/import/import_csv.modules.php
    index a6473eaeb8e..6db495e9f04 100644
    --- a/htdocs/core/modules/import/import_csv.modules.php
    +++ b/htdocs/core/modules/import/import_csv.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2012      Christophe Battarel  <christophe.battarel@altairis.fr>
      * Copyright (C) 2012-2016 Juanjo Menent		<jmenent@2byte.es>
      *
    @@ -33,30 +33,58 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/import/modules_import.php';
      */
     class ImportCsv extends ModeleImports
     {
    -    var $db;
    -    var $datatoimport;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -	var $error='';
    -	var $errors=array();
    +    public $datatoimport;
     
    -    var $id;           // Id of driver
    -	var $label;        // Label of driver
    -	var $extension;    // Extension of files imported by driver
    -	var $version;      // Version of driver
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    -	var $label_lib;    // Label of external lib used by driver
    -	var $version_lib;  // Version of external lib used by driver
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
     
    -	var $separator;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -	var $file;      // Path of file
    -	var $handle;    // Handle fichier
    +	/**
    +     * @var string label
    +     */
    +    public $label;
     
    -	var $cacheconvert=array();      // Array to cache list of value found after a convertion
    -	var $cachefieldtable=array();   // Array to cache list of value found into fields@tables
    +	public $extension;    // Extension of files imported by driver
     
    -	var $nbinsert = 0; // # of insert done during the import
    -	var $nbupdate = 0; // # of update done during the import
    +	/**
    +     * Dolibarr version of driver
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	public $label_lib;    // Label of external lib used by driver
    +
    +	public $version_lib;  // Version of external lib used by driver
    +
    +	public $separator;
    +
    +	public $file;      // Path of file
    +
    +	public $handle;    // Handle fichier
    +
    +	public $cacheconvert=array();      // Array to cache list of value found after a convertion
    +
    +	public $cachefieldtable=array();   // Array to cache list of value found into fields@tables
    +
    +	public $nbinsert = 0; // # of insert done during the import
    +
    +	public $nbupdate = 0; // # of update done during the import
     
     
     	/**
    @@ -67,7 +95,7 @@ class ImportCsv extends ModeleImports
     	 */
     	function __construct($db,$datatoimport)
     	{
    -		global $conf,$langs;
    +		global $conf, $langs;
     		$this->db = $db;
     
     		$this->separator=(GETPOST('separator')?GETPOST('separator'):(empty($conf->global->IMPORT_CSV_SEPARATOR_TO_USE)?',':$conf->global->IMPORT_CSV_SEPARATOR_TO_USE));
    @@ -90,6 +118,7 @@ class ImportCsv extends ModeleImports
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output header of an example file for this format
     	 *
    @@ -98,9 +127,11 @@ class ImportCsv extends ModeleImports
     	 */
     	function write_header_example($outputlangs)
     	{
    +        // phpcs:enable
     		return '';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output title line of an example file for this format
     	 *
    @@ -110,10 +141,12 @@ class ImportCsv extends ModeleImports
     	 */
     	function write_title_example($outputlangs,$headerlinefields)
     	{
    +        // phpcs:enable
     		$s=join($this->separator,array_map('cleansep',$headerlinefields));
     		return $s."\n";
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output record of an example file for this format
     	 *
    @@ -123,10 +156,12 @@ class ImportCsv extends ModeleImports
     	 */
     	function write_record_example($outputlangs,$contentlinevalues)
     	{
    +        // phpcs:enable
     		$s=join($this->separator,array_map('cleansep',$contentlinevalues));
     		return $s."\n";
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output footer of an example file for this format
     	 *
    @@ -135,11 +170,13 @@ class ImportCsv extends ModeleImports
     	 */
     	function write_footer_example($outputlangs)
     	{
    +        // phpcs:enable
     		return '';
     	}
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Open input file
     	 *
    @@ -148,6 +185,7 @@ class ImportCsv extends ModeleImports
     	 */
     	function import_open_file($file)
     	{
    +        // phpcs:enable
     		global $langs;
     		$ret=1;
     
    @@ -171,6 +209,7 @@ class ImportCsv extends ModeleImports
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Return nb of records. File must be closed.
     	 *
    @@ -179,10 +218,12 @@ class ImportCsv extends ModeleImports
     	 */
     	function import_get_nb_of_lines($file)
     	{
    -	   return dol_count_nb_of_line($file);
    +        // phpcs:enable
    +       return dol_count_nb_of_line($file);
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Input header line from file
     	 *
    @@ -190,10 +231,12 @@ class ImportCsv extends ModeleImports
     	 */
     	function import_read_header()
     	{
    +        // phpcs:enable
     		return 0;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Return array of next record in input file.
     	 *
    @@ -201,6 +244,7 @@ class ImportCsv extends ModeleImports
     	 */
     	function import_read_record()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$arrayres=fgetcsv($this->handle,100000,$this->separator,$this->enclosure,$this->escape);
    @@ -249,6 +293,7 @@ class ImportCsv extends ModeleImports
     		return $newarrayres;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Close file handle
     	 *
    @@ -256,11 +301,13 @@ class ImportCsv extends ModeleImports
     	 */
     	function import_close_file()
     	{
    +        // phpcs:enable
     		fclose($this->handle);
     		return 0;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Insert a record into database
     	 *
    @@ -274,6 +321,7 @@ class ImportCsv extends ModeleImports
     	 */
     	function import_insert($arrayrecord,$array_match_file_to_database,$objimport,$maxfields,$importid,$updatekeys)
     	{
    +        // phpcs:enable
     		global $langs,$conf,$user;
             global $thirdparty_static;    	// Specific to thirdparty import
     		global $tablewithentity_cache;	// Cache to avoid to call  desc at each rows on tables
    @@ -418,7 +466,6 @@ class ImportCsv extends ModeleImports
                                                 }
                                             }
                                         }
    -
                                     }
                                     elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='zeroifnull')
                                     {
    @@ -548,9 +595,13 @@ class ImportCsv extends ModeleImports
     						$listfields[] = $fieldname;
     
     						// Note: arrayrecord (and 'type') is filled with ->import_read_record called by import.php page before calling import_insert
    -						if (empty($newval) && $arrayrecord[($key-1)]['type'] < 0)		 $listvalues[] = ($newval=='0'?$newval:"null");
    -						elseif (empty($newval) && $arrayrecord[($key-1)]['type'] == 0)	 $listvalues[] = "''";
    -						else															 $listvalues[] = "'".$this->db->escape($newval)."'";
    +						if (empty($newval) && $arrayrecord[($key-1)]['type'] < 0) {
    +                            $listvalues[] = ($newval=='0'?$newval:"null");
    +                        } elseif (empty($newval) && $arrayrecord[($key-1)]['type'] == 0) {
    +                            $listvalues[] = "''";
    +                        } else {
    +                            $listvalues[] = "'".$this->db->escape($newval)."'";
    +                        }
     					}
     					$i++;
     				}
    @@ -581,6 +632,7 @@ class ImportCsv extends ModeleImports
     				//print 'listfields='.$listfields.'<br>listvalues='.$listvalues.'<br>';
     
     				// If no error for this $alias/$tablename, we have a complete $listfields and $listvalues that are defined
    +				// so we can try to make the insert or update now.
     				if (! $errorforthistable)
     				{
     					//print "$alias/$tablename/$listfields/$listvalues<br>";
    @@ -592,7 +644,7 @@ class ImportCsv extends ModeleImports
     						if (!empty($updatekeys)) {
     							// We do SELECT to get the rowid, if we already have the rowid, it's to be used below for related tables (extrafields)
     
    -							if (empty($lastinsertid)) {
    +							if (empty($lastinsertid)) {	// No insert done yet for a parent table
     								$sqlSelect = 'SELECT rowid FROM '.$tablename;
     
     								$data = array_combine($listfields, $listvalues);
    @@ -628,10 +680,11 @@ class ImportCsv extends ModeleImports
     									$error++;
     								}
     							} else {
    -								// We have a last INSERT ID. Check if we have a row referencing this foreign key.
    -								// This is required when updating table with some extrafields. When inserting a record in parent table, we can make 
    -								// a direct insert into subtable extrafields, but when me wake an update, the insertid is defined and the child record 
    -								// may already exists. So we rescan the extrafield table to be know if record exists or not for the rowid.
    +								// We have a last INSERT ID (got by previous pass), so we check if we have a row referencing this foreign key.
    +								// This is required when updating table with some extrafields. When inserting a record in parent table, we can make
    +								// a direct insert into subtable extrafields, but when me wake an update, the insertid is defined and the child record
    +								// may already exists. So we rescan the extrafield table to know if record exists or not for the rowid.
    +								// Note: For extrafield tablename, we have in importfieldshidden_array an enty 'extra.fk_object'=>'lastrowid-tableparent' so $keyfield is 'fk_object'
     								$sqlSelect = 'SELECT rowid FROM '.$tablename;
     
     								if(empty($keyfield)) $keyfield = 'rowid';
    @@ -739,7 +792,6 @@ class ImportCsv extends ModeleImports
     
     		return 1;
     	}
    -
     }
     
     /**
    @@ -752,5 +804,3 @@ function cleansep($value)
     {
     	return str_replace(array(',',';'),'/',$value);
     };
    -
    -
    diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php
    index 7f222f523ca..d96dc18104f 100644
    --- a/htdocs/core/modules/import/import_xlsx.modules.php
    +++ b/htdocs/core/modules/import/import_xlsx.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2012      Christophe Battarel  <christophe.battarel@altairis.fr>
      * Copyright (C) 2012-2016 Juanjo Menent		<jmenent@2byte.es>
      *
    @@ -33,31 +33,60 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/import/modules_import.php';
      */
     class ImportXlsx extends ModeleImports
     {
    -    var $db;
    -    var $datatoimport;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -	var $error='';
    -	var $errors=array();
    +    public $datatoimport;
     
    -    var $id;           // Id of driver
    -	var $label;        // Label of driver
    -	var $extension;    // Extension of files imported by driver
    -	var $version;      // Version of driver
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    -	var $label_lib;    // Label of external lib used by driver
    -	var $version_lib;  // Version of external lib used by driver
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
     
    -	var $separator;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -    var $file;      // Path of file
    -	var $handle;    // Handle fichier
    +	/**
    +     * @var string label
    +     */
    +    public $label;
     
    -	var $cacheconvert=array();      // Array to cache list of value found after a convertion
    -	var $cachefieldtable=array();   // Array to cache list of value found into fields@tables
    +	public $extension;    // Extension of files imported by driver
     
    -	var $workbook; // temporary import file
    -	var $record; // current record
    -	var $headers;
    +	/**
    +     * Dolibarr version of driver
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	public $label_lib;    // Label of external lib used by driver
    +
    +	public $version_lib;  // Version of external lib used by driver
    +
    +	public $separator;
    +
    +    public $file;      // Path of file
    +
    +	public $handle;    // Handle fichier
    +
    +	public $cacheconvert=array();      // Array to cache list of value found after a convertion
    +
    +	public $cachefieldtable=array();   // Array to cache list of value found into fields@tables
    +
    +	public $workbook; // temporary import file
    +
    +	public $record; // current record
    +
    +	public $headers;
     
     
     	/**
    @@ -96,6 +125,7 @@ class ImportXlsx extends ModeleImports
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output header of an example file for this format
     	 *
    @@ -104,29 +134,31 @@ class ImportXlsx extends ModeleImports
     	 */
     	function write_header_example($outputlangs)
     	{
    -	  global $user,$conf,$langs;
    -	  // create a temporary object, the final output will be generated in footer
    -          if (!empty($conf->global->MAIN_USE_FILECACHE_EXPORT_EXCEL_DIR)) {
    +        // phpcs:enable
    +        global $user,$conf,$langs;
    +        // create a temporary object, the final output will be generated in footer
    +        if (!empty($conf->global->MAIN_USE_FILECACHE_EXPORT_EXCEL_DIR)) {
                 $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;
                 $cacheSettings = array (
    -              'dir' => $conf->global->MAIN_USE_FILECACHE_EXPORT_EXCEL_DIR
    -          );
    -          PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
    +                'dir' => $conf->global->MAIN_USE_FILECACHE_EXPORT_EXCEL_DIR
    +            );
    +            PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
             }
     
    -            $this->workbook = new PHPExcel();
    -            $this->workbook->getProperties()->setCreator($user->getFullName($outputlangs).' - Dolibarr '.DOL_VERSION);
    -            $this->workbook->getProperties()->setTitle($outputlangs->trans("Import").' - '.$file);
    -            $this->workbook->getProperties()->setSubject($outputlangs->trans("Import").' - '.$file);
    -            $this->workbook->getProperties()->setDescription($outputlangs->trans("Import").' - '.$file);
    +        $this->workbook = new PHPExcel();
    +        $this->workbook->getProperties()->setCreator($user->getFullName($outputlangs).' - Dolibarr '.DOL_VERSION);
    +        $this->workbook->getProperties()->setTitle($outputlangs->trans("Import").' - '.$file);
    +        $this->workbook->getProperties()->setSubject($outputlangs->trans("Import").' - '.$file);
    +        $this->workbook->getProperties()->setDescription($outputlangs->trans("Import").' - '.$file);
     
    -            $this->workbook->setActiveSheetIndex(0);
    -            $this->workbook->getActiveSheet()->setTitle($outputlangs->trans("Sheet"));
    -            $this->workbook->getActiveSheet()->getDefaultRowDimension()->setRowHeight(16);
    +        $this->workbook->setActiveSheetIndex(0);
    +        $this->workbook->getActiveSheet()->setTitle($outputlangs->trans("Sheet"));
    +        $this->workbook->getActiveSheet()->getDefaultRowDimension()->setRowHeight(16);
     
    -	    return '';
    -	}
    +        return '';
    +    }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output title line of an example file for this format
     	 *
    @@ -136,6 +168,7 @@ class ImportXlsx extends ModeleImports
     	 */
     	function write_title_example($outputlangs,$headerlinefields)
     	{
    +        // phpcs:enable
     		global $conf;
     		$this->workbook->getActiveSheet()->getStyle('1')->getFont()->setBold(true);
     		$this->workbook->getActiveSheet()->getStyle('1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
    @@ -151,6 +184,7 @@ class ImportXlsx extends ModeleImports
     		return ''; // final output will be generated in footer
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output record of an example file for this format
     	 *
    @@ -160,6 +194,7 @@ class ImportXlsx extends ModeleImports
     	 */
     	function write_record_example($outputlangs,$contentlinevalues)
     	{
    +        // phpcs:enable
     		$col = 0;
     		$row = 2;
     		foreach($contentlinevalues as $cell) {
    @@ -170,6 +205,7 @@ class ImportXlsx extends ModeleImports
     		return ''; // final output will be generated in footer
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Output footer of an example file for this format
     	 *
    @@ -178,7 +214,8 @@ class ImportXlsx extends ModeleImports
     	 */
     	function write_footer_example($outputlangs)
     	{
    -		// return te file content as a string
    +        // phpcs:enable
    +		// return the file content as a string
     		$tempfile = tempnam(sys_get_temp_dir(), 'dol');
     		$objWriter = new PHPExcel_Writer_Excel2007($this->workbook);
     		$objWriter->save($tempfile);
    @@ -192,6 +229,7 @@ class ImportXlsx extends ModeleImports
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Open input file
     	 *
    @@ -200,6 +238,7 @@ class ImportXlsx extends ModeleImports
     	 */
     	function import_open_file($file)
     	{
    +        // phpcs:enable
     		global $langs;
     		$ret=1;
     
    @@ -214,6 +253,7 @@ class ImportXlsx extends ModeleImports
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Return nb of records. File must be closed.
     	 *
    @@ -222,6 +262,7 @@ class ImportXlsx extends ModeleImports
     	 */
     	function import_get_nb_of_lines($file)
     	{
    +        // phpcs:enable
     		$reader = new PHPExcel_Reader_Excel2007();
     		$this->workbook = $reader->load($file);
     
    @@ -234,6 +275,7 @@ class ImportXlsx extends ModeleImports
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Input header line from file
     	 *
    @@ -241,6 +283,7 @@ class ImportXlsx extends ModeleImports
     	 */
     	function import_read_header()
     	{
    +        // phpcs:enable
     		// This is not called by the import code !!!
     		$this->headers = array();
     		$colcount = PHPExcel_Cell::columnIndexFromString($this->workbook->getActiveSheet()->getHighestDataColumn());
    @@ -251,6 +294,7 @@ class ImportXlsx extends ModeleImports
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Return array of next record in input file.
     	 *
    @@ -258,6 +302,7 @@ class ImportXlsx extends ModeleImports
     	 */
     	function import_read_record()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$rowcount = $this->workbook->getActiveSheet()->getHighestDataRow();
    @@ -274,6 +319,7 @@ class ImportXlsx extends ModeleImports
     		return $array;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Close file handle
     	 *
    @@ -281,11 +327,14 @@ class ImportXlsx extends ModeleImports
     	 */
     	function import_close_file()
     	{
    +        // phpcs:enable
     		$this->workbook->disconnectWorksheets();
     		unset($this->workbook);
     	}
     
     
    +    // What is this doing here ? it is common to all imports, is should be in the parent class
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Insert a record into database
     	 *
    @@ -297,9 +346,9 @@ class ImportXlsx extends ModeleImports
     	 * @param	array	$updatekeys						Array of keys to use to try to do an update first before insert. This field are defined into the module descriptor.
     	 * @return	int										<0 if KO, >0 if OK
     	 */
    -	// What is this doing here ? it is common to all imports, is should be in the parent class
     	function import_insert($arrayrecord,$array_match_file_to_database,$objimport,$maxfields,$importid,$updatekeys)
     	{
    +        // phpcs:enable
     		global $langs,$conf,$user;
             global $thirdparty_static;    	// Specific to thirdparty import
     		global $tablewithentity_cache;	// Cache to avoid to call  desc at each rows on tables
    @@ -444,7 +493,6 @@ class ImportXlsx extends ModeleImports
                                                 }
                                             }
                                         }
    -
                                     }
                                     elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='zeroifnull')
                                     {
    @@ -607,6 +655,7 @@ class ImportXlsx extends ModeleImports
     				//print 'listfields='.$listfields.'<br>listvalues='.$listvalues.'<br>';
     
     				// If no error for this $alias/$tablename, we have a complete $listfields and $listvalues that are defined
    +				// so we can try to make the insert or update now.
     				if (! $errorforthistable)
     				{
     					//print "$alias/$tablename/$listfields/$listvalues<br>";
    @@ -616,7 +665,8 @@ class ImportXlsx extends ModeleImports
     						$insertdone = false;
     						if (!empty($updatekeys)) {
     							// We do SELECT to get the rowid, if we already have the rowid, it's to be used below for related tables (extrafields)
    -							if (empty($lastinsertid)) {
    +
    +							if (empty($lastinsertid)) {	// No insert done yet for a parent table
     								$sqlSelect = 'SELECT rowid FROM '.$tablename;
     
     								$data = array_combine($listfields, $listvalues);
    @@ -653,9 +703,10 @@ class ImportXlsx extends ModeleImports
     								}
     							} else {
     								// We have a last INSERT ID. Check if we have a row referencing this foreign key.
    -								// This is required when updating table with some extrafields. When inserting a record in parent table, we can make 
    -								// a direct insert into subtable extrafields, but when me wake an update, the insertid is defined and the child record 
    -								// may already exists. So we rescan the extrafield table to be know if record exists or not for the rowid.
    +								// This is required when updating table with some extrafields. When inserting a record in parent table, we can make
    +								// a direct insert into subtable extrafields, but when me wake an update, the insertid is defined and the child record
    +								// may already exists. So we rescan the extrafield table to know if record exists or not for the rowid.
    +								// Note: For extrafield tablename, we have in importfieldshidden_array an enty 'extra.fk_object'=>'lastrowid-tableparent' so $keyfield is 'fk_object'
     								$sqlSelect = 'SELECT rowid FROM '.$tablename;
     
     								if(empty($keyfield)) $keyfield = 'rowid';
    @@ -763,5 +814,4 @@ class ImportXlsx extends ModeleImports
     
     		return 1;
     	}
    -
     }
    diff --git a/htdocs/core/modules/import/modules_import.php b/htdocs/core/modules/import/modules_import.php
    index 548bb128193..4c606b8bacf 100644
    --- a/htdocs/core/modules/import/modules_import.php
    +++ b/htdocs/core/modules/import/modules_import.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -30,25 +30,49 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php';
      */
     class ModeleImports
     {
    +    /**
    +     * @var DoliDB Database handler.
    +     */
         public $db;
    +
         public $datatoimport;
     
    -    public $error='';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +    /**
    +	 * @var int id of driver
    +	 */
    +	public $id;
    +
    +    /**
    +     * @var string label
    +     */
    +    public $label;
     
    -    public $id;           // Id of driver
    -	public $label;        // Label of driver
     	public $extension;    // Extension of files imported by driver
    -	public $version;      // Version of driver
    +
    +	/**
    +     * Dolibarr version of driver
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
     
     	public $label_lib;    // Label of external lib used by driver
    +
     	public $version_lib;  // Version of external lib used by driver
     
     	// Array of all drivers
     	public $driverlabel=array();
    +
     	public $driverdesc=array();
    +
     	public $driverversion=array();
     
     	public $liblabel=array();
    +
     	public $libversion=array();
     
     
    @@ -131,15 +155,17 @@ class ModeleImports
     	}
     
     
    -	/**
    -	 *  Charge en memoire et renvoie la liste des modeles actifs
    -	 *
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Charge en memoire et renvoie la liste des modeles actifs
    +     *
          *  @param	DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of templates
     	 */
     	function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		dol_syslog(get_class($this)."::liste_modeles");
     
     		$dir=DOL_DOCUMENT_ROOT."/core/modules/import/";
    @@ -246,6 +272,4 @@ class ModeleImports
     	{
     		return $this->libversion[$key];
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
    index 2586cdb52e5..971913cb58d 100644
    --- a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
    +++ b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2014 Laurent Destailleur   <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2014 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
      * Copyright (C) 2008      Chiptronik
      * Copyright (C) 2011-2018 Philippe Grand        <philippe.grand@atoo-net.com>
    @@ -35,27 +35,82 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
     
     
     /**
    - *	Classe permettant de generer les bons de livraison au modele Typho
    + *	Class to build Delivery Order documents with typhon model
      */
     class pdf_typhon extends ModelePDFDeliveryOrder
     {
    -    var $db;
    -    var $name;
    -    var $description;
    -    var $type;
    +	/**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
     
    -    var $phpmin = array(4,3,0); // Minimum version of PHP required by module
    -    var $version = 'dolibarr';
    +	/**
    +     * @var string model name
    +     */
    +    public $name;
     
    -    var $page_largeur;
    -    var $page_hauteur;
    -    var $format;
    -	var $marge_gauche;
    -	var	$marge_droite;
    -	var	$marge_haute;
    -	var	$marge_basse;
    +	/**
    +     * @var string model description (short text)
    +     */
    +    public $description;
     
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +    /**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +     * @var int page_largeur
    +     */
    +    public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
    +    public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
    +    public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
    +	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
    +	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
    +	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
    +	public $marge_basse;
    +
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
     	/**
     	 *	Constructor
    @@ -65,7 +120,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
     	function __construct($db)
     	{
     		global $conf,$langs,$mysoc;
    -		
    +
     		// Translations
     		$langs->loadLangs(array("main", "bills", "sendings", "companies"));
     
    @@ -119,7 +174,8 @@ class pdf_typhon extends ModelePDFDeliveryOrder
     	}
     
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *  Function to build pdf onto disk
          *
          *  @param		Object		$object				Object to generate
    @@ -129,16 +185,17 @@ class pdf_typhon extends ModelePDFDeliveryOrder
          *  @param		int			$hidedesc			Do not show desc
          *  @param		int			$hideref			Do not show ref
          *  @return     int             			1=OK, 0=KO
    -	 */
    +     */
     	function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$hookmanager;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
    -		
    -		// Translations
    +
    +		// Load translation files required by the page
     		$outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "sendings", "deliveries"));
     
     		if ($conf->expedition->dir_output)
    @@ -575,6 +632,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
     		return 0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Show miscellaneous information (payment mode, payment term, ...)
     	 *
    @@ -586,6 +644,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
     	 */
     	function _tableau_info(&$pdf, $object, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf,$mysoc;
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
    @@ -860,6 +919,4 @@ class pdf_typhon extends ModelePDFDeliveryOrder
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'DELIVERY_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/livraison/mod_livraison_jade.php b/htdocs/core/modules/livraison/mod_livraison_jade.php
    index 228b73aad8b..8df38cbc3a2 100644
    --- a/htdocs/core/modules/livraison/mod_livraison_jade.php
    +++ b/htdocs/core/modules/livraison/mod_livraison_jade.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -34,11 +34,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/livraison/modules_livraison.php';
     
     class mod_livraison_jade extends ModeleNumRefDeliveryOrder
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = "Jade";
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
     
    -    var $prefix='BL';
    +	/**
    +	 * @var string Error message
    +	 */
    +	public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Jade';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Jade';
    +
    +    public $prefix='BL';
     
     
     	/**
    @@ -142,16 +161,17 @@ class mod_livraison_jade extends ModeleNumRefDeliveryOrder
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return next free ref
     	 *
    -     *  @param	Societe		$objsoc      	Object thirdparty
    +     *  @param  Societe		$objsoc      	Object thirdparty
          *  @param  Object		$object			Object livraison
    -     *  @return string      				Texte descripif
    +     *  @return string      				Texte descriptif
          */
         function livraison_get_num($objsoc=0,$object='')
         {
    +        // phpcs:enable
             return $this->getNextValue($objsoc,$object);
         }
    -
     }
    diff --git a/htdocs/core/modules/livraison/mod_livraison_saphir.php b/htdocs/core/modules/livraison/mod_livraison_saphir.php
    index 1192656bf8d..76579f5e757 100644
    --- a/htdocs/core/modules/livraison/mod_livraison_saphir.php
    +++ b/htdocs/core/modules/livraison/mod_livraison_saphir.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -31,9 +31,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/livraison/modules_livraison.php';
      */
     class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Saphir';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +	 * @var string Error message
    +	 */
    +	public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Saphir';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Saphir';
     
     
         /**
    @@ -43,7 +62,7 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
          */
     	function info()
     	{
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
     		$langs->load("bills");
     
    @@ -139,17 +158,17 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
         }
     
     
    -	/**
    -	 *  Return next free ref
    -	 *
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return next free ref
    +     *
          *  @param	Societe		$objsoc      	Object thirdparty
          *  @param  Object		$object			Objet livraison
          *  @return string      				Texte descripif
          */
         function livraison_get_num($objsoc=0,$object='')
         {
    +        // phpcs:enable
             return $this->getNextValue($objsoc,$object);
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/livraison/modules_livraison.php b/htdocs/core/modules/livraison/modules_livraison.php
    index a433f42930d..6dad7003ec5 100644
    --- a/htdocs/core/modules/livraison/modules_livraison.php
    +++ b/htdocs/core/modules/livraison/modules_livraison.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2006-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012 Philippe Grand	    <philippe.grand@atoo-net.com>
      * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
      *
    @@ -36,8 +36,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     abstract class ModelePDFDeliveryOrder extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation modules
     	 *
    @@ -47,6 +51,7 @@ abstract class ModelePDFDeliveryOrder extends CommonDocGenerator
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='delivery';
    @@ -67,7 +72,10 @@ abstract class ModelePDFDeliveryOrder extends CommonDocGenerator
      */
     abstract class ModeleNumRefDeliveryOrder
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 * Return if a module can be used or not
    diff --git a/htdocs/core/modules/mailings/advthirdparties.modules.php b/htdocs/core/modules/mailings/advthirdparties.modules.php
    index 78aab1a5bd7..bfd7f4b0d45 100644
    --- a/htdocs/core/modules/mailings/advthirdparties.modules.php
    +++ b/htdocs/core/modules/mailings/advthirdparties.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2010 Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin       <regis.houssin@inodbox.com>
     *
     * This file is an example to follow to add your own email selector inside
     * the Dolibarr email tool.
    @@ -32,7 +32,11 @@ class mailing_advthirdparties extends MailingTargets
     
     	var $require_module=array("none");	// This module should not be displayed as Selector in mailling
     	var $picto='company';
    -	var $db;
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     
     	/**
    @@ -42,12 +46,11 @@ class mailing_advthirdparties extends MailingTargets
     	 */
     	function __construct($db)
     	{
    -		global $conf;
    -
     		$this->db=$db;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    This is the main function that returns the array of emails
     	 *
    @@ -59,6 +62,7 @@ class mailing_advthirdparties extends MailingTargets
     	 */
     	function add_to_target_spec($mailing_id,$socid,$type_of_target, $contactid)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		dol_syslog(get_class($this)."::add_to_target socid=".var_export($socid,true).' contactid='.var_export($contactid,true));
    @@ -273,7 +277,6 @@ class mailing_advthirdparties extends MailingTargets
     
     		$s.='</select>';
     		return $s;
    -
     	}
     
     
    @@ -296,5 +299,4 @@ class mailing_advthirdparties extends MailingTargets
     			return $contactstatic->getNomUrl(0, '', 0, '', -1, 1);
     		}
     	}
    -
     }
    diff --git a/htdocs/core/modules/mailings/contacts1.modules.php b/htdocs/core/modules/mailings/contacts1.modules.php
    index 90d81dca4a5..588d61faf5e 100644
    --- a/htdocs/core/modules/mailings/contacts1.modules.php
    +++ b/htdocs/core/modules/mailings/contacts1.modules.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -39,7 +39,10 @@ class mailing_contacts1 extends MailingTargets
     	var $require_admin=0;                               // Module mailing actif pour user admin ou non
     	var $picto='contact';
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     
     	/**
    @@ -113,10 +116,9 @@ class mailing_contacts1 extends MailingTargets
     	function formFilter()
     	{
     		global $langs;
    -		$langs->load("companies");
    -		$langs->load("commercial");
    -		$langs->load("suppliers");
    -		$langs->load("categories");
    +
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("commercial","companies","suppliers","categories"));
     
     		$s='';
     
    @@ -324,15 +326,16 @@ class mailing_contacts1 extends MailingTargets
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Ajoute destinataires dans table des cibles
     	 *
    -	 *  @param	int		$mailing_id    	Id of emailing
    -	 *  @param  array	$filtersarray   Optional filter data (deprecated)
    +	 *  @param  int		$mailing_id    	Id of emailing
     	 *  @return int           			<0 si erreur, nb ajout si ok
     	 */
    -	function add_to_target($mailing_id,$filtersarray=array())
    +	function add_to_target($mailing_id)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		$filter = GETPOST('filter','alpha');
    @@ -446,6 +449,4 @@ class mailing_contacts1 extends MailingTargets
     
     		return parent::add_to_target($mailing_id, $cibles);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/mailings/example.modules.php b/htdocs/core/modules/mailings/example.modules.php
    index 548510f81a0..cd0a0ee9d5a 100644
    --- a/htdocs/core/modules/mailings/example.modules.php
    +++ b/htdocs/core/modules/mailings/example.modules.php
    @@ -32,12 +32,16 @@ class mailing_example extends MailingTargets
         var $desc='Put here a description';
     	// CHANGE THIS: Set to 1 if selector is available for admin users only
         var $require_admin=0;
    -    // CHANGE THIS: Add a tooltip language key to add a tooltip help icon after the email target selector 
    +    // CHANGE THIS: Add a tooltip language key to add a tooltip help icon after the email target selector
         var $tooltip='MyTooltipLangKey';
    -    
    +
         var $require_module=array();
         var $picto='';
    -    var $db;
    +
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     
         // CHANGE THIS: Constructor name must be called mailing_xxx with xxx=name of your selector
    @@ -52,15 +56,16 @@ class mailing_example extends MailingTargets
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  This is the main function that returns the array of emails
          *
          *  @param	int		$mailing_id    	Id of mailing. No need to use it.
    -     *  @param  array	$filtersarray   If you used the formFilter function. Empty otherwise.
          *  @return int           			<0 if error, number of emails added if ok
          */
    -    function add_to_target($mailing_id,$filtersarray=array())
    +    function add_to_target($mailing_id)
         {
    +        // phpcs:enable
             $target = array();
     
     	    // CHANGE THIS
    @@ -107,7 +112,7 @@ class mailing_example extends MailingTargets
          */
         function getNbOfRecipients($sql='')
         {
    -	    // CHANGE THIS: Optionnal
    +        // CHANGE THIS: Optionnal
     
             // Example: return parent::getNbOfRecipients("SELECT count(*) as nb from dolibarr_table");
             // Example: return 500;
    @@ -122,7 +127,7 @@ class mailing_example extends MailingTargets
          */
         function formFilter()
         {
    -	    // CHANGE THIS: Optionnal
    +        // CHANGE THIS: Optionnal
     
             $s='';
             return $s;
    @@ -138,10 +143,8 @@ class mailing_example extends MailingTargets
          */
         function url($id)
         {
    -	    // CHANGE THIS: Optionnal
    +        // CHANGE THIS: Optionnal
     
             return '';
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/mailings/fraise.modules.php b/htdocs/core/modules/mailings/fraise.modules.php
    index f71b6b925f0..151d828aa61 100644
    --- a/htdocs/core/modules/mailings/fraise.modules.php
    +++ b/htdocs/core/modules/mailings/fraise.modules.php
    @@ -1,6 +1,7 @@
     <?php
    -/* Copyright (C) 2005      Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2005       Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2009  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -41,7 +42,10 @@ class mailing_fraise extends MailingTargets
         var $require_module=array('adherent');
         var $picto='user';
     
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
         /**
          *    Constructor
    @@ -50,7 +54,7 @@ class mailing_fraise extends MailingTargets
          */
         function __construct($db)
         {
    -        $this->db=$db;
    +        $this->db = $db;
         }
     
     
    @@ -106,9 +110,9 @@ class mailing_fraise extends MailingTargets
         function formFilter()
         {
             global $conf, $langs;
    -        $langs->load("members");
    -		$langs->load("categories");
    -		$langs->load("companies");
    +
    +        // Load translation files required by the page
    +        $langs->loadLangs(array("members","companies","categories"));
     
             $form=new Form($this->db);
     
    @@ -196,9 +200,9 @@ class mailing_fraise extends MailingTargets
     
             $s.='<br>';
             $s.=$langs->trans("DateEndSubscription").': &nbsp;';
    -        $s.=$langs->trans("After").' > '.$form->select_date(-1,'subscriptionafter',0,0,1,'fraise',1,0,1,0);
    +        $s.=$langs->trans("After").' > '.$form->selectDate(-1,'subscriptionafter',0,0,1,'fraise',1,0,0);
             $s.=' &nbsp; ';
    -        $s.=$langs->trans("Before").' < '.$form->select_date(-1,'subscriptionbefore',0,0,1,'fraise',1,0,1,0);
    +        $s.=$langs->trans("Before").' < '.$form->selectDate(-1,'subscriptionbefore',0,0,1,'fraise',1,0,0);
     
             return $s;
         }
    @@ -216,23 +220,20 @@ class mailing_fraise extends MailingTargets
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Ajoute destinataires dans table des cibles
          *
          *  @param    int        $mailing_id        Id of emailing
    -     *  @param  array    $filtersarray   Param to filter sql request. Deprecated. Should use $_POST instead.
          *  @return int                       < 0 si erreur, nb ajout si ok
          */
    -    function add_to_target($mailing_id,$filtersarray=array())
    +    function add_to_target($mailing_id)
         {
    -	    // Deprecation warning
    -	    if ($filtersarray) {
    -		    dol_syslog(__METHOD__ . ": filtersarray parameter is deprecated", LOG_WARNING);
    -	    }
    -
    +        // phpcs:enable
         	global $langs,$_POST;
    -		$langs->load("members");
    -        $langs->load("companies");
    +
    +    	// Load translation files required by the page
    +        $langs->loadLangs(array("members","companies"));
     
             $cibles = array();
             $now=dol_now();
    @@ -265,8 +266,8 @@ class mailing_fraise extends MailingTargets
             // Filter on type
             if ($_POST['filter_type']) $sql.= " AND ta.rowid='".$_POST['filter_type']."'";
             // Filter on category
    -		if ($_POST['filter_category']) $sql.= " AND c.rowid='".$_POST['filter_category']."'";
    -		$sql.= " ORDER BY a.email";
    +        if ($_POST['filter_category']) $sql.= " AND c.rowid='".$_POST['filter_category']."'";
    +        $sql.= " ORDER BY a.email";
             //print $sql;
     
             // Add targets into table
    @@ -316,5 +317,4 @@ class mailing_fraise extends MailingTargets
     
             return parent::add_to_target($mailing_id, $cibles);
         }
    -
     }
    diff --git a/htdocs/core/modules/mailings/modules_mailings.php b/htdocs/core/modules/mailings/modules_mailings.php
    index 1a97f3502b7..d3158ba9775 100644
    --- a/htdocs/core/modules/mailings/modules_mailings.php
    +++ b/htdocs/core/modules/mailings/modules_mailings.php
    @@ -29,12 +29,20 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php';
     /**
      *		Parent class of emailing target selectors modules
      */
    -class MailingTargets    // This can't be abstract as it is used for some method
    +class MailingTargets // This can't be abstract as it is used for some method
     {
    -    var $db;
    -    var $error;
    -    var $tooltip='';
    -    
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +    public $tooltip='';
    +
     
         /**
     	 *	Constructor
    @@ -54,7 +62,7 @@ class MailingTargets    // This can't be abstract as it is used for some method
         function getDesc()
         {
             global $langs, $form;
    -        
    +
             $langs->load("mails");
             $transstring="MailingModuleDesc".$this->name;
             $s='';
    @@ -109,6 +117,7 @@ class MailingTargets    // This can't be abstract as it is used for some method
             return '';
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Met a jour nombre de destinataires
          *
    @@ -117,6 +126,7 @@ class MailingTargets    // This can't be abstract as it is used for some method
          */
         function update_nb($mailing_id)
         {
    +        // phpcs:enable
             // Mise a jour nombre de destinataire dans table des mailings
             $sql = "SELECT COUNT(*) nb FROM ".MAIN_DB_PREFIX."mailing_cibles";
             $sql .= " WHERE fk_mailing = ".$mailing_id;
    @@ -141,6 +151,7 @@ class MailingTargets    // This can't be abstract as it is used for some method
             return $nb;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Ajoute destinataires dans table des cibles
          *
    @@ -150,11 +161,12 @@ class MailingTargets    // This can't be abstract as it is used for some method
          */
         function add_to_target($mailing_id, $cibles)
         {
    +        // phpcs:enable
         	global $conf;
     
         	$this->db->begin();
     
    -        // Insert emailing targest from array into database
    +        // Insert emailing targets from array into database
             $j = 0;
             $num = count($cibles);
             foreach ($cibles as $targetarray)
    @@ -199,6 +211,7 @@ class MailingTargets    // This can't be abstract as it is used for some method
     
             dol_syslog(get_class($this)."::".__METHOD__.": mailing ".$j." targets added");
     
    +        /*
             //Update the status to show thirdparty mail that don't want to be contacted anymore'
             $sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles";
             $sql .= " SET statut=3";
    @@ -207,8 +220,6 @@ class MailingTargets    // This can't be abstract as it is used for some method
             dol_syslog(get_class($this)."::".__METHOD__.": mailing update status to display thirdparty mail that do not want to be contacted");
             $result=$this->db->query($sql);
     
    -
    -
             //Update the status to show contact mail that don't want to be contacted anymore'
             $sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles";
             $sql .= " SET statut=3";
    @@ -216,22 +227,36 @@ class MailingTargets    // This can't be abstract as it is used for some method
             $sql .= " INNER JOIN ".MAIN_DB_PREFIX."societe s ON s.rowid=sc.fk_soc WHERE s.fk_stcomm=-1 OR no_email=1))";
             dol_syslog(get_class($this)."::".__METHOD__.": mailing update status to display contact mail that do not want to be contacted",LOG_DEBUG);
             $result=$this->db->query($sql);
    +		*/
     
    +        $sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles";
    +        $sql .= " SET statut=3";
    +        $sql .= " WHERE fk_mailing=".$mailing_id." AND email IN (SELECT mu.email FROM ".MAIN_DB_PREFIX."mailing_unsubscribe AS mu WHERE mu.entity IN ('".getEntity('mailing')."'))";
    +
    +        dol_syslog(get_class($this)."::".__METHOD__.":mailing update status to display emails that do not want to be contacted anymore", LOG_DEBUG);
    +        $result=$this->db->query($sql);
    +        if (! $result)
    +        {
    +        	dol_print_error($this->db);
    +        }
     
             $this->update_nb($mailing_id);
     
             $this->db->commit();
    +
             return $j;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Supprime tous les destinataires de la table des cibles
          *
    -     *	@param	int		$mailing_id        Id of emailing
    +     *	@param  int		$mailing_id        Id of emailing
          *	@return	void
          */
         function clear_target($mailing_id)
         {
    +        // phpcs:enable
             $sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing_cibles";
             $sql .= " WHERE fk_mailing = ".$mailing_id;
     
    @@ -242,6 +267,4 @@ class MailingTargets    // This can't be abstract as it is used for some method
     
             $this->update_nb($mailing_id);
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/mailings/pomme.modules.php b/htdocs/core/modules/mailings/pomme.modules.php
    index 5824f456365..91539359d6e 100644
    --- a/htdocs/core/modules/mailings/pomme.modules.php
    +++ b/htdocs/core/modules/mailings/pomme.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2011 Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin       <regis.houssin@inodbox.com>
      *
      * 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
    @@ -37,7 +37,10 @@ class mailing_pomme extends MailingTargets
     	var $require_admin=1;                           // Module mailing actif pour user admin ou non
     	var $picto='user';
     
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     
     	/**
    @@ -118,7 +121,7 @@ class mailing_pomme extends MailingTargets
     		$s.='<option value="1">'.$langs->trans("Enabled").'</option>';
     		$s.='<option value="0">'.$langs->trans("Disabled").'</option>';
     		$s.='</select>';
    -		
    +
     		$s.=' ';
     		$s.=$langs->trans("Employee").': ';
     		$s.='<select name="filteremployee" class="flat">';
    @@ -126,7 +129,7 @@ class mailing_pomme extends MailingTargets
     		$s.='<option value="1">'.$langs->trans("Yes").'</option>';
     		$s.='<option value="0">'.$langs->trans("No").'</option>';
     		$s.='</select>';
    -		
    +
     		return $s;
     	}
     
    @@ -143,20 +146,16 @@ class mailing_pomme extends MailingTargets
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Ajoute destinataires dans table des cibles
     	 *
     	 *  @param	int		$mailing_id    	Id of emailing
    -	 *  @param  array	$filtersarray   Requete sql de selection des destinataires
     	 *  @return int           			< 0 si erreur, nb ajout si ok
     	 */
    -	function add_to_target($mailing_id,$filtersarray=array())
    +	function add_to_target($mailing_id)
     	{
    -		// Deprecation warning
    -	    if ($filtersarray) {
    -		    dol_syslog(__METHOD__ . ": filtersarray parameter is deprecated", LOG_WARNING);
    -	    }
    -	    
    +        // phpcs:enable
     	    global $conf, $langs;
     		$langs->load("companies");
     
    @@ -169,10 +168,10 @@ class mailing_pomme extends MailingTargets
     		$sql.= " WHERE u.email <> ''"; // u.email IS NOT NULL est implicite dans ce test
     		$sql.= " AND u.entity IN (0,".$conf->entity.")";
     		$sql.= " AND u.email NOT IN (SELECT email FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE fk_mailing=".$mailing_id.")";
    -		if (isset($_POST["filter"]) && $_POST["filter"] == '1') $sql.= " AND u.statut=1"; 
    -		if (isset($_POST["filter"]) && $_POST["filter"] == '0') $sql.= " AND u.statut=0"; 
    -		if (isset($_POST["filteremployee"]) && $_POST["filteremployee"] == '1') $sql.= " AND u.employee=1"; 
    -		if (isset($_POST["filteremployee"]) && $_POST["filteremployee"] == '0') $sql.= " AND u.employee=0"; 
    +		if (isset($_POST["filter"]) && $_POST["filter"] == '1') $sql.= " AND u.statut=1";
    +		if (isset($_POST["filter"]) && $_POST["filter"] == '0') $sql.= " AND u.statut=0";
    +		if (isset($_POST["filteremployee"]) && $_POST["filteremployee"] == '1') $sql.= " AND u.employee=1";
    +		if (isset($_POST["filteremployee"]) && $_POST["filteremployee"] == '0') $sql.= " AND u.employee=0";
     		$sql.= " ORDER BY u.email";
     
     		// Stocke destinataires dans cibles
    @@ -220,6 +219,4 @@ class mailing_pomme extends MailingTargets
     
     		return parent::add_to_target($mailing_id, $cibles);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/mailings/thirdparties.modules.php b/htdocs/core/modules/mailings/thirdparties.modules.php
    index 57a69475000..5465b0af5c3 100644
    --- a/htdocs/core/modules/mailings/thirdparties.modules.php
    +++ b/htdocs/core/modules/mailings/thirdparties.modules.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2018-2018 Andre Schild        <a.schild@aarboard.ch>
      * Copyright (C) 2005-2010 Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin       <regis.houssin@inodbox.com>
      *
      * This file is an example to follow to add your own email selector inside
      * the Dolibarr email tool.
    @@ -31,7 +31,11 @@ class mailing_thirdparties extends MailingTargets
     
     	var $require_module=array("societe");	// This module allows to select by categories must be also enabled if category module is not activated
     	var $picto='company';
    -	var $db;
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     
     	/**
    @@ -48,15 +52,16 @@ class mailing_thirdparties extends MailingTargets
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    This is the main function that returns the array of emails
     	 *
     	 *    @param	int		$mailing_id    	Id of mailing. No need to use it.
    -	 *    @param	array	$filtersarray   If you used the formFilter function. Empty otherwise.
     	 *    @return   int 					<0 if error, number of emails added if ok
     	 */
    -	function add_to_target($mailing_id,$filtersarray=array())
    +	function add_to_target($mailing_id)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		$cibles = array();
    @@ -91,53 +96,53 @@ class mailing_thirdparties extends MailingTargets
     		    $sql.= " AND c.rowid='".$this->db->escape($_POST['filter'])."'";
     		}
     
    -                $addDescription= "";
    -                if (isset($_POST["filter_client"]) && $_POST["filter_client"] <> '-1')
    -                {
    -                    $sql.= " AND s.client=" . $_POST["filter_client"];
    -                    $addDescription= $langs->trans('ProspectCustomer')."=";
    -                    if ($_POST["filter_client"] == 0)
    -                    {
    -                        $addDescription.= $langs->trans('NorProspectNorCustomer');
    -                    }
    -                    else if ($_POST["filter_client"] == 1)
    -                    {
    -                        $addDescription.= $langs->trans('Customer');
    -                    }
    -                    else if ($_POST["filter_client"] == 2)
    -                    {
    -                        $addDescription.= $langs->trans('Prospect');
    -                    }
    -                    else if ($_POST["filter_client"] == 3)
    -                    {
    -                        $addDescription.= $langs->trans('ProspectCustomer');
    -                    }
    -                    else
    -                    {
    -                        $addDescription.= "Unknown status ".$_POST["filter_client"];
    -                    }
    -                }
    -                if (isset($_POST["filter_status"]))
    -                {
    -                    if (strlen($addDescription) > 0)
    -                    {
    -                        $addDescription.= ";";
    -                    }
    -                    $addDescription.= $langs->trans("Status")."=";
    -                    if ($_POST["filter_status"] == '1')
    -                    {
    -                        $sql.= " AND s.status=1";
    -                        $addDescription.= $langs->trans("Enabled");
    -                    }
    -                    else
    -                    {
    -                        $sql.= " AND s.status=0";
    -                        $addDescription.= $langs->trans("Disabled");
    -                    }
    -                }
    -		$sql.= " ORDER BY email";
    +        $addDescription= "";
    +        if (isset($_POST["filter_client"]) && $_POST["filter_client"] <> '-1')
    +        {
    +            $sql.= " AND s.client=" . $_POST["filter_client"];
    +            $addDescription= $langs->trans('ProspectCustomer')."=";
    +            if ($_POST["filter_client"] == 0)
    +            {
    +                $addDescription.= $langs->trans('NorProspectNorCustomer');
    +            }
    +            elseif ($_POST["filter_client"] == 1)
    +            {
    +                $addDescription.= $langs->trans('Customer');
    +            }
    +            elseif ($_POST["filter_client"] == 2)
    +            {
    +                $addDescription.= $langs->trans('Prospect');
    +            }
    +            elseif ($_POST["filter_client"] == 3)
    +            {
    +                $addDescription.= $langs->trans('ProspectCustomer');
    +            }
    +            else
    +            {
    +                $addDescription.= "Unknown status ".$_POST["filter_client"];
    +            }
    +        }
    +        if (isset($_POST["filter_status"]))
    +        {
    +            if (strlen($addDescription) > 0)
    +            {
    +                $addDescription.= ";";
    +            }
    +            $addDescription.= $langs->trans("Status")."=";
    +            if ($_POST["filter_status"] == '1')
    +            {
    +                $sql.= " AND s.status=1";
    +                $addDescription.= $langs->trans("Enabled");
    +            }
    +            else
    +            {
    +                $sql.= " AND s.status=0";
    +                $addDescription.= $langs->trans("Disabled");
    +            }
    +        }
    +        $sql.= " ORDER BY email";
     
    -		// Stock recipients emails into targets table
    +        // Stock recipients emails into targets table
     		$result=$this->db->query($sql);
     		if ($result)
     		{
    @@ -305,11 +310,10 @@ class mailing_thirdparties extends MailingTargets
                     $s.='<option value="0">'.$langs->trans("Disabled").'</option>';
     		$s.='</select>';
     		return $s;
    -
     	}
     
     
    -	/**
    +    /**
     	 *  Can include an URL link on each record provided by selector shown on target page.
     	 *
          *  @param	int		$id		ID
    @@ -319,6 +323,4 @@ class mailing_thirdparties extends MailingTargets
     	{
     		return '<a href="'.DOL_URL_ROOT.'/societe/card.php?socid='.$id.'">'.img_object('',"company").'</a>';
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php b/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php
    index 08473f3cb6d..fc57a364c9d 100644
    --- a/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php
    +++ b/htdocs/core/modules/mailings/thirdparties_services_expired.modules.php
    @@ -29,7 +29,12 @@ class mailing_thirdparties_services_expired extends MailingTargets
     
         var $require_module=array('contrat');
         var $picto='company';
    -    var $db;
    +
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
         var $arrayofproducts=array();
     
     
    @@ -64,7 +69,6 @@ class mailing_thirdparties_services_expired extends MailingTargets
                     $i++;
                     $this->arrayofproducts[$i]=$obj->ref;
                 }
    -
             }
             else
             {
    @@ -73,29 +77,31 @@ class mailing_thirdparties_services_expired extends MailingTargets
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  This is the main function that returns the array of emails
          *
          *  @param	int		$mailing_id    	Id of mailing. No need to use it.
    -     *  @param  array	$filtersarray   If you used the formFilter function. Empty otherwise.
          *  @return int           			<0 if error, number of emails added if ok
          */
    -    function add_to_target($mailing_id,$filtersarray=array())
    +    function add_to_target($mailing_id)
         {
    -        $target = array();
    -
    -        // ----- Your code start here -----
    +        // phpcs:enable
    +        $key=GETPOST('filter','int');
     
             $cibles = array();
             $j = 0;
     
             $product='';
    -        foreach($filtersarray as $key)
    +        if ($key == '0')
             {
    -            if ($key == '0') return "Error: You must choose a filter";
    -            $product=$this->arrayofproducts[$key];
    +        	$this->error = "Error: You must choose a filter";
    +        	$this->errors[] = $this->error;
    +        	return $this->error;
             }
     
    +        $product=$this->arrayofproducts[$key];
    +
             $now=dol_now();
     
             // La requete doit retourner: id, email, name
    @@ -236,6 +242,4 @@ class mailing_thirdparties_services_expired extends MailingTargets
         {
             return '<a href="'.DOL_URL_ROOT.'/societe/card.php?socid='.$id.'">'.img_object('',"company").'</a>';
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/mailings/xinputfile.modules.php b/htdocs/core/modules/mailings/xinputfile.modules.php
    index 152322c2899..a4caef12af8 100644
    --- a/htdocs/core/modules/mailings/xinputfile.modules.php
    +++ b/htdocs/core/modules/mailings/xinputfile.modules.php
    @@ -110,15 +110,16 @@ class mailing_xinputfile extends MailingTargets
     		return $s;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Ajoute destinataires dans table des cibles
     	 *
     	 *  @param	int		$mailing_id    	Id of emailing
    -	 *  @param	array	$filtersarray   Requete sql de selection des destinataires
     	 *  @return int           			< 0 si erreur, nb ajout si ok
     	 */
    -	function add_to_target($mailing_id,$filtersarray=array())
    +	function add_to_target($mailing_id)
     	{
    +        // phpcs:enable
     		global $conf,$langs,$_FILES;
     
     		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    @@ -220,6 +221,4 @@ class mailing_xinputfile extends MailingTargets
     
     		return parent::add_to_target($mailing_id, $cibles);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/mailings/xinputuser.modules.php b/htdocs/core/modules/mailings/xinputuser.modules.php
    index 794de3d9294..bcbf5d9a41b 100644
    --- a/htdocs/core/modules/mailings/xinputuser.modules.php
    +++ b/htdocs/core/modules/mailings/xinputuser.modules.php
    @@ -37,7 +37,7 @@ class mailing_xinputuser extends MailingTargets
     	var $require_admin=0;                    // Module mailing actif pour user admin ou non
     	var $picto='generic';
     	var $tooltip='UseFormatInputEmailToTarget';
    -	
    +
     
     	/**
     	 *	Constructor
    @@ -108,15 +108,16 @@ class mailing_xinputuser extends MailingTargets
     		return $s;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Ajoute destinataires dans table des cibles
     	 *
     	 *  @param	int		$mailing_id    	Id of emailing
    -	 *  @param	array	$filtersarray   Requete sql de selection des destinataires
     	 *  @return int           			< 0 si erreur, nb ajout si ok
     	 */
    -	function add_to_target($mailing_id,$filtersarray=array())
    +	function add_to_target($mailing_id)
     	{
    +        // phpcs:enable
     		global $conf,$langs,$_FILES;
     
     		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    @@ -153,12 +154,9 @@ class mailing_xinputuser extends MailingTargets
     		}
     		else
     		{
    -		   	$langs->load("errors");
    -		   	$this->error = $langs->trans("ErrorBadEmail",$email);
    +            $langs->load("errors");
    +            $this->error = $langs->trans("ErrorBadEmail",$email);
     			return -1;
     		}
    -
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/member/doc/pdf_standard.class.php b/htdocs/core/modules/member/doc/pdf_standard.class.php
    index 4d08be83a43..524d1446427 100644
    --- a/htdocs/core/modules/member/doc/pdf_standard.class.php
    +++ b/htdocs/core/modules/member/doc/pdf_standard.class.php
    @@ -42,10 +42,12 @@ class pdf_standard extends CommonStickerGenerator
     	 * @param	array		$param			Associative array containing label content and optional parameters
     	 * @return	void
     	 */
    -	function addSticker(&$pdf,$outputlangs,$param) {
    +    function addSticker(&$pdf,$outputlangs,$param)
    +    {
     		// use this method in future refactoring
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Output a sticker on page at position _COUNTX, _COUNTY (_COUNTX and _COUNTY start from 0)
     	 * - __LOGO__ is replace with company logo
    @@ -63,6 +65,7 @@ class pdf_standard extends CommonStickerGenerator
     	 */
     	function Add_PDF_card(&$pdf,$textleft,$header,$footer,$outputlangs,$textright='',$idmember=0,$photo='')
     	{
    +        // phpcs:enable
     		global $db,$mysoc,$conf,$langs;
     		global $forceimgscalewidth,$forceimgscaleheight;
     
    @@ -234,6 +237,7 @@ class pdf_standard extends CommonStickerGenerator
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build PDF on disk, then output on HTTP stream.
     	 *
    @@ -246,6 +250,7 @@ class pdf_standard extends CommonStickerGenerator
     	 */
     	function write_file($object, $outputlangs, $srctemplatepath, $mode='member', $nooutput=0)
     	{
    +        // phpcs:enable
     		global $user,$conf,$langs,$mysoc,$_Avery_Labels;
     
     		$this->code=$srctemplatepath;
    @@ -324,11 +329,8 @@ class pdf_standard extends CommonStickerGenerator
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("admin");
    -		$outputlangs->load("members");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "admin", "members"));
     
     		if (empty($mode) || $mode == 'member')
     		{
    @@ -443,5 +445,4 @@ class pdf_standard extends CommonStickerGenerator
     
     		return 1;
     	}
    -
     }
    diff --git a/htdocs/core/modules/member/modules_cards.php b/htdocs/core/modules/member/modules_cards.php
    index f7ef8b94590..4f498d92158 100644
    --- a/htdocs/core/modules/member/modules_cards.php
    +++ b/htdocs/core/modules/member/modules_cards.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2004	   Eric Seigne			<eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2009 Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -34,9 +34,13 @@ require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
      */
     class ModelePDFCards
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of active generation modules
     	 *
    @@ -46,6 +50,7 @@ class ModelePDFCards
     	 */
     	function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='member';
    @@ -59,6 +64,7 @@ class ModelePDFCards
     }
     
     
    +// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     /**
      *	Cree un fichier de cartes de visites en fonction du modele de ADHERENT_CARDS_ADDON_PDF
      *
    @@ -72,20 +78,21 @@ class ModelePDFCards
      */
     function members_card_pdf_create($db, $arrayofmembers, $modele, $outputlangs, $outputdir='', $template='standard')
     {
    +    // phpcs:enable
     	global $conf,$langs;
     	$langs->load("members");
     
     	$error=0;
    -	
    +
     	// Increase limit for PDF build
     	$err=error_reporting();
     	error_reporting(0);
     	@set_time_limit(120);
     	error_reporting($err);
    -	
    +
     	$code='';
     	$srctemplatepath='';
    -	
    +
     	// Positionne le modele sur le nom du modele a utiliser
     	if (! dol_strlen($modele))
     	{
    @@ -108,7 +115,7 @@ function members_card_pdf_create($db, $arrayofmembers, $modele, $outputlangs, $o
     		$srctemplatepath=$tmp[1];
     	}
     	else $srctemplatepath=$code;
    -	
    +
     	// Search template files
     	$file=''; $classname=''; $filefound=0;
     	$dirmodels=array('/');
    @@ -118,7 +125,7 @@ function members_card_pdf_create($db, $arrayofmembers, $modele, $outputlangs, $o
     		foreach(array('doc','pdf') as $prefix)
     		{
     			$file = $prefix."_".$template.".class.php";
    -			
    +
     			// On verifie l'emplacement du modele
     			$file=dol_buildpath($reldir."core/modules/member/doc/".$file,0);
     			if (file_exists($file))
    @@ -130,8 +137,8 @@ function members_card_pdf_create($db, $arrayofmembers, $modele, $outputlangs, $o
     		}
     		if ($filefound) break;
     	}
    -	
    -	
    +
    +
     	// Charge le modele
     	if ($filefound)
     	{
    @@ -160,7 +167,4 @@ function members_card_pdf_create($db, $arrayofmembers, $modele, $outputlangs, $o
     		dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$file));
     		return -1;
     	}
    -
    -
     }
    -
    diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php
    index ef152521969..c47e8d310f1 100644
    --- a/htdocs/core/modules/modAccounting.class.php
    +++ b/htdocs/core/modules/modAccounting.class.php
    @@ -45,7 +45,7 @@ class modAccounting extends DolibarrModules
     		$this->numero = 50400;
     
     		$this->family = "financial";
    -		$this->module_position = 610;
    +		$this->module_position = '61';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i', '', get_class($this));
     		$this->description = "Advanced accounting management";
    @@ -66,7 +66,7 @@ class modAccounting extends DolibarrModules
     		$this->depends = array("modFacture","modBanque","modTax"); // List of modules id that must be enabled if this module is enabled
     		$this->requiredby = array(); // List of modules id to disable if this one is disabled
     		$this->conflictwith = array("modComptabilite"); // List of modules are in conflict with this module
    -		$this->phpmin = array(5, 3); // Minimum version of PHP required by module
    +		$this->phpmin = array(5, 4); // Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(3, 9); // Minimum version of Dolibarr required by module
     		$this->langfiles = array("accountancy","compta");
     
    @@ -287,6 +287,5 @@ class modAccounting extends DolibarrModules
     			'aa.account_parent'=>array('rule'=>'zeroifnull'),
     		);
     		$this->import_examplevalues_array[$r]=array('aa.fk_pcg_version'=>"PCG99-ABREGE",'aa.account_number'=>"707",'aa.label'=>"Product sales",'aa.account_parent'=>"1407","aa.fk_accounting_category"=>"","aa.pcg_type"=>"PROD",'aa.pcg_subtype'=>'PRODUCT','aa.active'=>'1','aa.datec'=>"2017-04-28");
    -
     	}
     }
    diff --git a/htdocs/core/modules/modAdherent.class.php b/htdocs/core/modules/modAdherent.class.php
    index c425ce9bd5d..6b5cb22d69a 100644
    --- a/htdocs/core/modules/modAdherent.class.php
    +++ b/htdocs/core/modules/modAdherent.class.php
    @@ -1,11 +1,12 @@
     <?php
    -/* Copyright (C) 2003,2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2003      Jean-Louis Bergamo   <jlb@j1b.org>
    - * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
    - * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2013      Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2014-2015 Raphaël Doursenaud   <rdoursenaud@gpcsolutions.fr>
    +/* Copyright (C) 2003,2005  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2003       Jean-Louis Bergamo      <jlb@j1b.org>
    + * Copyright (C) 2004-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2004       Sebastien Di Cintio     <sdicintio@ressource-toi.org>
    + * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
    + * Copyright (C) 2013       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2014-2015  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2018       Alexandre Spangaro      <aspangaro@zendsi.com>
      *
      * 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
    @@ -49,7 +50,7 @@ class modAdherent extends DolibarrModules
             $this->numero = 310;
     
             $this->family = "hr";
    -        $this->module_position = 20;
    +        $this->module_position = '55';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
             $this->description = "Management of members of a foundation or association";
    @@ -62,17 +63,17 @@ class modAdherent extends DolibarrModules
             $this->dirs = array("/adherent/temp");
     
             // Config pages
    -        //-------------
             $this->config_page_url = array("adherent.php@adherents");
     
             // Dependencies
    -        //------------
    -        $this->depends = array();
    -        $this->requiredby = array('modMailmanSpip');
    +        $this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array('modMailmanSpip');	// List of module class names as string this module is in conflict with
             $this->langfiles = array("members","companies");
    +        $this->phpmin = array(5,4);		// Minimum version of PHP required by module
     
             // Constants
    -        //-----------
             $this->const = array();
             $r=0;
     
    @@ -268,7 +269,7 @@ class modAdherent extends DolibarrModules
             $this->export_label[$r]='MembersAndSubscriptions';
             $this->export_permission[$r]=array(array("adherent","export"));
             $this->export_fields_array[$r]=array(
    -			'a.rowid'=>'Id','a.civility'=>"UserTitle",'a.lastname'=>"Lastname",'a.firstname'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'Nature',
    +			'a.rowid'=>'Id','a.civility'=>"UserTitle",'a.lastname'=>"Lastname",'a.firstname'=>"Firstname",'a.login'=>"Login",'a.gender'=>"Gender",'a.morphy'=>'Nature',
     			'a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'d.nom'=>"State",'co.code'=>"CountryCode",'co.label'=>"Country",
     			'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status",
     			'a.photo'=>"Photo",'a.note_public'=>"NotePublic",'a.note_private'=>"NotePrivate",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation',
    @@ -276,13 +277,13 @@ class modAdherent extends DolibarrModules
     			'c.rowid'=>'SubscriptionId','c.dateadh'=>'DateSubscription','c.subscription'=>'Amount'
     		);
             $this->export_TypeFields_array[$r]=array(
    -			'a.civility'=>"Text",'a.lastname'=>"Text",'a.firstname'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",
    +			'a.civility'=>"Text",'a.lastname'=>"Text",'a.firstname'=>"Text",'a.login'=>"Text",'a.gender'=>'Text','a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",
     			'a.zip'=>"Text",'a.town'=>"Text",'d.nom'=>"Text",'co.code'=>'Text','co.label'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",
     			'a.email'=>"Text",'a.birth'=>"Date",'a.statut'=>"Status",'a.note_public'=>"Text",'a.note_private'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date',
     			'a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:adherent_type:libelle','ta.libelle'=>'Text','c.rowid'=>'Numeric','c.dateadh'=>'Date','c.subscription'=>'Numeric'
     		);
             $this->export_entities_array[$r]=array(
    -			'a.rowid'=>'member','a.civility'=>"member",'a.lastname'=>"member",'a.firstname'=>"member",'a.login'=>"member",'a.morphy'=>'member',
    +			'a.rowid'=>'member','a.civility'=>"member",'a.lastname'=>"member",'a.firstname'=>"member",'a.login'=>"member",'a.gender'=>'member','a.morphy'=>'member',
     			'a.societe'=>'member','a.address'=>"member",'a.zip'=>"member",'a.town'=>"member",'d.nom'=>"member",'co.code'=>"member",'co.label'=>"member",
     			'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.birth'=>"member",'a.statut'=>"member",
     			'a.photo'=>"member",'a.note_public'=>"member",'a.note_private'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member',
    @@ -316,7 +317,7 @@ class modAdherent extends DolibarrModules
             $this->import_tables_array[$r]=array('a'=>MAIN_DB_PREFIX.'adherent','extra'=>MAIN_DB_PREFIX.'adherent_extrafields');
             $this->import_tables_creator_array[$r]=array('a'=>'fk_user_author');    // Fields to store import user id
             $this->import_fields_array[$r]=array(
    -			'a.civility'=>"UserTitle",'a.lastname'=>"Lastname*",'a.firstname'=>"Firstname",'a.login'=>"Login*","a.pass"=>"Password",
    +			'a.civility'=>"UserTitle",'a.lastname'=>"Lastname*",'a.firstname'=>"Firstname",'a.gender'=>"Gender",'a.login'=>"Login*","a.pass"=>"Password",
     			"a.fk_adherent_type"=>"MemberType*",'a.morphy'=>'Nature*','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",
     			'a.state_id'=>'StateId','a.country'=>"CountryId",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",
     			'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status*",'a.photo'=>"Photo",'a.note_public'=>"NotePublic",'a.note_private'=>"NotePrivate",
    @@ -347,22 +348,24 @@ class modAdherent extends DolibarrModules
     		);
     
             // Cronjobs
    +        $arraydate=dol_getdate(dol_now());
    +        $datestart=dol_mktime(22, 0, 0, $arraydate['mon'], $arraydate['mday'], $arraydate['year']);
             $this->cronjobs = array(
     			0=>array(
     				'label'=>'SendReminderForExpiredSubscriptionTitle',
     				'jobtype'=>'method', 'class'=>'adherents/class/adherent.class.php',
     				'objectname'=>'Adherent',
     				'method'=>'sendReminderForExpiredSubscription',
    -				'parameters'=>'10',
    +				'parameters'=>'10;0',
     				'comment'=>'SendReminderForExpiredSubscription',
     				'frequency'=>1,
     				'unitfrequency'=> 3600 * 24,
     				'priority'=>50,
    -				'status'=>0,
    -				'test'=>true,
    +				'status'=>1,
    +				'test'=>'$conf->adherent->enabled',
    +				'datestart'=>$datestart
     			),
             );
    -
         }
     
     
    diff --git a/htdocs/core/modules/modAgenda.class.php b/htdocs/core/modules/modAgenda.class.php
    index 30a606bb7c9..2324bfad616 100644
    --- a/htdocs/core/modules/modAgenda.class.php
    +++ b/htdocs/core/modules/modAgenda.class.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2009-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Cedric Gross         <c.gross@kreiz-it.fr>
      * Copyright (C) 2015      Bahfir Abbes         <bafbes@gmail.com>
      * Copyright (C) 2017      Juanjo Menent        <jmenent@2byte.es>
    @@ -51,7 +51,7 @@ class modAgenda extends DolibarrModules
     		$this->numero = 2400;
     
     		$this->family = "projects";
    -		$this->module_position = 15;
    +		$this->module_position = '15';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Follow events or rendez-vous. Record manual events into Agendas or let application record automatic events for log tracking.";
    @@ -65,14 +65,15 @@ class modAgenda extends DolibarrModules
     		$this->dirs = array("/agenda/temp");
     
     		// Config pages
    -		//-------------
     		$this->config_page_url = array("agenda_other.php");
     
    -		// Dependancies
    -		//-------------
    -		$this->depends = array();
    -		$this->requiredby = array();
    +		// Dependencies
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
     		$this->langfiles = array("companies");
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     
     		// Module parts
             $this->module_parts = array();
    @@ -112,9 +113,9 @@ class modAgenda extends DolibarrModules
     
     		// Cronjobs
     		//------------
    +		$datestart=dol_now();
     		$this->cronjobs = array(
    -			0=>array('label'=>'SendEmailsReminders', 'jobtype'=>'method', 'class'=>'comm/action/class/actioncomm.class.php', 'objectname'=>'ActionComm', 'method'=>'sendEmailsReminder', 'parameters'=>'', 'comment'=>'SendEMailsReminder', 'frequency'=>10, 'unitfrequency'=>60, 'priority'=>10, 'status'=>1, 'test'=>'$conf->agenda->enabled'),
    -		    // 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24)
    +			0=>array('label'=>'SendEmailsReminders', 'jobtype'=>'method', 'class'=>'comm/action/class/actioncomm.class.php', 'objectname'=>'ActionComm', 'method'=>'sendEmailsReminder', 'parameters'=>'', 'comment'=>'SendEMailsReminder', 'frequency'=>10, 'unitfrequency'=>60, 'priority'=>10, 'status'=>1, 'test'=>'$conf->agenda->enabled', 'datestart'=>$datestart),
     		);
     
     		// Permissions
    @@ -209,7 +210,7 @@ class modAgenda extends DolibarrModules
     													'mainmenu'=>'agenda',
     													'url'=>'/comm/action/index.php',
     													'langs'=>'agenda',
    -													'position'=>15,
    +													'position'=>86,
     													'perms'=>'$user->rights->agenda->myactions->read',
     													'enabled'=>'$conf->agenda->enabled',
     													'target'=>'',
    @@ -243,7 +244,7 @@ class modAgenda extends DolibarrModules
     		// Calendar
     		$this->menu[$r]=array('fk_menu'=>'r=1',
     													'type'=>'left',
    -													'titre'=>'Agenda',
    +													'titre'=>'Calendar',
     													'mainmenu'=>'agenda',
     													'url'=>'/comm/action/index.php?action=default&amp;mainmenu=agenda&amp;leftmenu=agenda',
     													'langs'=>'agenda',
    @@ -418,7 +419,5 @@ class modAgenda extends DolibarrModules
     		if (empty($user->rights->societe->client->voir)) $this->export_sql_end[$r] .=' AND (sc.fk_user = '.(empty($user)?0:$user->id).' OR ac.fk_soc IS NULL)';
     		if (empty($user->rights->agenda->allactions->read)) $this->export_sql_end[$r] .=' AND acr.fk_element = '.(empty($user)?0:$user->id);
     		$this->export_sql_end[$r] .=' ORDER BY ac.datep';
    -
     	}
    -
     }
    diff --git a/htdocs/core/modules/modApi.class.php b/htdocs/core/modules/modApi.class.php
    index c8dc7ae84ba..45aedc11406 100644
    --- a/htdocs/core/modules/modApi.class.php
    +++ b/htdocs/core/modules/modApi.class.php
    @@ -82,7 +82,7 @@ class modApi extends DolibarrModules
     		$this->depends = array();		// List of modules id that must be enabled if this module is enabled
     		$this->requiredby = array();	// List of modules id to disable if this one is disabled
     		$this->conflictwith = array();	// List of modules id this module is in conflict with
    -		$this->phpmin = array(5,3);					// Minimum version of PHP required by module
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->langfiles = array("other");
     
     		// Constants
    @@ -194,7 +194,7 @@ class modApi extends DolibarrModules
     		// $this->export_fields_array[$r]=array(
     		//	's.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','s.fk_pays'=>'Country','s.phone'=>'Phone',
     		//	's.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode',
    -		//	's.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",
    +		//	's.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",
     		//	'f.datef'=>"DateInvoice",'f.total'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus',
     		//	'f.note'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.price'=>"LineUnitPrice",'fd.tva_tx'=>"LineVATRate",
     		//	'fd.qty'=>"LineQty",'fd.total_ht'=>"LineTotalHT",'fd.total_tva'=>"LineTotalTVA",'fd.total_ttc'=>"LineTotalTTC",'fd.date_start'=>"DateStart",
    @@ -203,7 +203,7 @@ class modApi extends DolibarrModules
     		// $this->export_entities_array[$r]=array(
     		//	's.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company','s.phone'=>'company',
     		//	's.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company',
    -		//	'f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",
    +		//	'f.rowid'=>"invoice",'f.ref'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",
     		//	'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",'fd.price'=>"invoice_line",
     		//	'fd.total_ht'=>"invoice_line",'fd.total_tva'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",
     		//	'fd.date_start'=>"invoice_line",'fd.date_end'=>"invoice_line",'fd.fk_product'=>'product','p.ref'=>'product'
    diff --git a/htdocs/core/modules/modAsset.class.php b/htdocs/core/modules/modAsset.class.php
    index 9b82a6015c4..dd61c75df2a 100644
    --- a/htdocs/core/modules/modAsset.class.php
    +++ b/htdocs/core/modules/modAsset.class.php
    @@ -27,15 +27,11 @@
     include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
     
     
    -// The class name should start with a lower case mod for Dolibarr to pick it up
    -// so we ignore the Squiz.Classes.ValidClassName.NotCamelCaps rule.
    -// @codingStandardsIgnoreStart
     /**
      *  Description and activation class for module FixedAssets
      */
     class modAsset extends DolibarrModules
     {
    -	// @codingStandardsIgnoreEnd
     	/**
     	 * Constructor. Define names, constants, directories, boxes, permissions
     	 *
    @@ -57,7 +53,7 @@ class modAsset extends DolibarrModules
     		// It is used to group modules by family in module setup page
     		$this->family = "financial";
     		// Module position in the family on 2 digits ('01', '10', '20', ...)
    -		$this->module_position = '90';
    +		$this->module_position = '70';
     		// Gives the possibility to the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this)
     		//$this->familyinfo = array('myownfamily' => array('position' => '01', 'label' => $langs->trans("MyOwnFamily")));
     
    @@ -96,7 +92,7 @@ class modAsset extends DolibarrModules
     		$this->requiredby = array();	// List of module ids to disable if this one is disabled
     		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
     		$this->langfiles = array("assets");
    -		$this->phpmin = array(5,3);					// Minimum version of PHP required by module
    +		$this->phpmin = array(5,4);					// Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(7,0);	// Minimum version of Dolibarr required by module
     		$this->warnings_activation = array();                     // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
     		$this->warnings_activation_ext = array();                 // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
    @@ -178,9 +174,9 @@ class modAsset extends DolibarrModules
     
     		// Cronjobs (List of cron jobs entries to add when module is enabled)
     		// unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week
    -		$this->cronjobs = array(
    -			0=>array('label'=>'MyJob label', 'jobtype'=>'method', 'class'=>'/asset/class/asset.class.php', 'objectname'=>'Asset', 'method'=>'doScheduledJob', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>true)
    -		);
    +		//$this->cronjobs = array(
    +		//	0=>array('label'=>'MyJob label', 'jobtype'=>'method', 'class'=>'/asset/class/asset.class.php', 'objectname'=>'Asset', 'method'=>'doScheduledJob', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>true)
    +		//);
     		// Example: $this->cronjobs=array(0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>true),
     		//                                1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>true)
     		// );
    @@ -335,5 +331,4 @@ class modAsset extends DolibarrModules
     
     		return $this->_init($sql,$options);
     	}
    -
     }
    diff --git a/htdocs/core/modules/modBanque.class.php b/htdocs/core/modules/modBanque.class.php
    index 602085b9f5a..89a84f564b8 100644
    --- a/htdocs/core/modules/modBanque.class.php
    +++ b/htdocs/core/modules/modBanque.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2008-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2011 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -49,7 +49,7 @@ class modBanque extends DolibarrModules
     		$this->numero = 85;
     
     		$this->family = "financial";
    -		$this->module_position = 510;
    +		$this->module_position = '51';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des comptes financiers de type Comptes bancaires ou postaux";
    @@ -86,49 +86,49 @@ class modBanque extends DolibarrModules
     
     		$r++;
     		$this->rights[$r][0] = 111; // id de la permission
    -		$this->rights[$r][1] = 'Lire les comptes bancaires'; // libelle de la permission
    +		$this->rights[$r][1] = 'Read bank account and transactions';
     		$this->rights[$r][2] = 'r';
     		$this->rights[$r][3] = 0;
     		$this->rights[$r][4] = 'lire';
     
     		$r++;
     		$this->rights[$r][0] = 112; // id de la permission
    -		$this->rights[$r][1] = 'Creer/modifier montant/supprimer ecriture bancaire'; // libelle de la permission
    +		$this->rights[$r][1] = 'Creer/modifier montant/supprimer ecriture bancaire';
     		$this->rights[$r][2] = 'w';
     		$this->rights[$r][3] = 0;
     		$this->rights[$r][4] = 'modifier';
     
     		$r++;
     		$this->rights[$r][0] = 113; // id de la permission
    -		$this->rights[$r][1] = 'Configurer les comptes bancaires (creer, gerer categories)'; // libelle de la permission
    +		$this->rights[$r][1] = 'Configurer les comptes bancaires (creer, gerer categories)';
     		$this->rights[$r][2] = 'a';
     		$this->rights[$r][3] = 0;
     		$this->rights[$r][4] = 'configurer';
     
     		$r++;
     		$this->rights[$r][0] = 114; // id de la permission
    -		$this->rights[$r][1] = 'Rapprocher les ecritures bancaires'; // libelle de la permission
    +		$this->rights[$r][1] = 'Rapprocher les ecritures bancaires';
     		$this->rights[$r][2] = 'w';
     		$this->rights[$r][3] = 0;
     		$this->rights[$r][4] = 'consolidate';
     
     		$r++;
     		$this->rights[$r][0] = 115; // id de la permission
    -		$this->rights[$r][1] = 'Exporter transactions et releves'; // libelle de la permission
    +		$this->rights[$r][1] = 'Exporter transactions et releves';
     		$this->rights[$r][2] = 'r';
     		$this->rights[$r][3] = 0;
     		$this->rights[$r][4] = 'export';
     
     		$r++;
     		$this->rights[$r][0] = 116; // id de la permission
    -		$this->rights[$r][1] = 'Virements entre comptes'; // libelle de la permission
    +		$this->rights[$r][1] = 'Virements entre comptes';
     		$this->rights[$r][2] = 'w';
     		$this->rights[$r][3] = 0;
     		$this->rights[$r][4] = 'transfer';
     
     		$r++;
     		$this->rights[$r][0] = 117; // id de la permission
    -		$this->rights[$r][1] = 'Gerer les envois de cheques'; // libelle de la permission
    +		$this->rights[$r][1] = 'Gerer les envois de cheques';
     		$this->rights[$r][2] = 'w';
     		$this->rights[$r][3] = 0;
     		$this->rights[$r][4] = 'cheque';
    @@ -178,13 +178,13 @@ class modBanque extends DolibarrModules
     		$this->export_label[$r]='Bordereaux remise Chq/Fact';
     		$this->export_permission[$r]=array(array("banque","export"));
     		$this->export_fields_array[$r]=array("bch.rowid"=>"DepositId","bch.ref"=>"Numero","bch.ref_ext"=>"RefExt",'ba.ref'=>'AccountRef','ba.label'=>'AccountLabel','b.datev'=>'DateValue','b.num_chq'=>'ChequeOrTransferNumber','b.amount'=>'Credit','b.num_releve'=>'AccountStatement','b.datec'=>"DateCreation",
    -			"bch.date_bordereau"=>"Date","bch.amount"=>"Total","bch.nbcheque"=>"NbCheque","bu.url_id"=>"IdThirdParty","s.nom"=>"ThirdParty","s.code_compta"=>"CustomerAccountancyCode","f.facnumber"=>"InvoiceRef"
    +			"bch.date_bordereau"=>"Date","bch.amount"=>"Total","bch.nbcheque"=>"NbCheque","bu.url_id"=>"IdThirdParty","s.nom"=>"ThirdParty","s.code_compta"=>"CustomerAccountancyCode","f.ref"=>"InvoiceRef"
     			);
     		$this->export_TypeFields_array[$r]=array('ba.ref'=>'Text','ba.label'=>'Text','b.datev'=>'Date','b.num_chq'=>'Text','b.amount'=>'Numeric','b.num_releve'=>'Text','b.datec'=>"Date",
    -			"bch.date_bordereau"=>"Date","bch.rowid"=>"Numeric","bch.ref"=>"Numeric","bch.ref_ext"=>"Text","bch.amount"=>"Numeric","bch.nbcheque"=>"Numeric","bu.url_id"=>"Text","s.nom"=>"Text","s.code_compta"=>"Text","f.facnumber"=>"Text"
    +			"bch.date_bordereau"=>"Date","bch.rowid"=>"Numeric","bch.ref"=>"Numeric","bch.ref_ext"=>"Text","bch.amount"=>"Numeric","bch.nbcheque"=>"Numeric","bu.url_id"=>"Text","s.nom"=>"Text","s.code_compta"=>"Text","f.ref"=>"Text"
     			);
     		$this->export_entities_array[$r]=array('ba.ref'=>'account','ba.label'=>'account','b.datev'=>'account','b.num_chq'=>'account','b.amount'=>'account','b.num_releve'=>'account','b.datec'=>"account",
    -			"bu.url_id"=>"company","s.nom"=>"company","s.code_compta"=>"company","s.code_compta_fournisseur"=>"company","f.facnumber"=>"invoice");
    +			"bu.url_id"=>"company","s.nom"=>"company","s.code_compta"=>"company","s.code_compta_fournisseur"=>"company","f.ref"=>"invoice");
     		$this->export_special_array[$r]=array('b.amount'=>'NULLIFNEG');
     
     		$this->export_sql_start[$r]='SELECT DISTINCT ';
    @@ -199,7 +199,6 @@ class modBanque extends DolibarrModules
     		$this->export_sql_end[$r] .=' AND p.fk_paiement = 7';
     		$this->export_sql_end[$r] .=' AND ba.entity IN ('.getEntity('bank_account').')';
     		$this->export_sql_order[$r] =' ORDER BY b.datev, b.num_releve';
    -
     	}
     
     
    diff --git a/htdocs/core/modules/modBarcode.class.php b/htdocs/core/modules/modBarcode.class.php
    index c25d444eb8a..9e66bc3f995 100644
    --- a/htdocs/core/modules/modBarcode.class.php
    +++ b/htdocs/core/modules/modBarcode.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/core/modules/modBlockedLog.class.php b/htdocs/core/modules/modBlockedLog.class.php
    index 07331bcbc3c..2c422cb4ad6 100644
    --- a/htdocs/core/modules/modBlockedLog.class.php
    +++ b/htdocs/core/modules/modBlockedLog.class.php
    @@ -47,11 +47,11 @@ class modBlockedLog extends DolibarrModules
     		// It is used to group modules in module setup page
             $this->family = "base";
             // Module position in the family on 2 digits ('01', '10', '20', ...)
    -        $this->module_position = '90';
    +        $this->module_position = '75';
             // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
             $this->name = preg_replace('/^mod/i','',get_class($this));
             $this->description = "Enable a log on some business events into a non reversible log. This module may be mandatory for some countries.";
    -		// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
    +        // Possible values for version are: 'development', 'experimental', 'dolibarr' or version
             $this->version = 'dolibarr';
             // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
             $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
    @@ -145,7 +145,8 @@ class modBlockedLog extends DolibarrModules
          *
          * @return	boolean		True if already used, otherwise False
          */
    -    function alreadyUsed() {
    +    function alreadyUsed()
    +    {
     
         	require_once DOL_DOCUMENT_ROOT.'/blockedlog/class/blockedlog.class.php';
         	$b=new BlockedLog($this->db);
    @@ -204,7 +205,8 @@ class modBlockedLog extends DolibarrModules
     	 * @param      string	$options    Options when enabling module ('', 'noboxes')
     	 * @return     int             		1 if OK, 0 if KO
     	 */
    -    function remove($options = '') {
    +    function remove($options = '')
    +    {
     
         	global $conf, $user;
     
    diff --git a/htdocs/core/modules/modBookmark.class.php b/htdocs/core/modules/modBookmark.class.php
    index 191e12bc2eb..db844393cd0 100644
    --- a/htdocs/core/modules/modBookmark.class.php
    +++ b/htdocs/core/modules/modBookmark.class.php
    @@ -101,6 +101,5 @@ class modBookmark extends DolibarrModules
     		// Menus
     		//-------
     		$this->menu = 1;        // This module add menu entries. They are coded into menu manager.
    -
     	}
     }
    diff --git a/htdocs/core/modules/modCashDesk.class.php b/htdocs/core/modules/modCashDesk.class.php
    index 4be7a937d1a..472abe53a42 100644
    --- a/htdocs/core/modules/modCashDesk.class.php
    +++ b/htdocs/core/modules/modCashDesk.class.php
    @@ -46,7 +46,7 @@ class modCashDesk extends DolibarrModules
     		$this->rights_class = 'cashdesk';
     
     		$this->family = "portal";
    -		$this->module_position = 10;
    +		$this->module_position = '55';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "CashDesk module";
    @@ -64,9 +64,10 @@ class modCashDesk extends DolibarrModules
     		$this->config_page_url = array("cashdesk.php@cashdesk");
     
     		// Dependencies
    +		$this->hidden = false;			            // A condition to hide module
     		$this->depends = array('always'=>"modBanque", 'always'=>"modFacture", 'always'=>"modProduct", 'FR'=>'modBlockedLog');	// List of modules id that must be enabled if this module is enabled
     		$this->requiredby = array();			    // List of modules id to disable if this one is disabled
    -		$this->phpmin = array(4,1);					// Minimum version of PHP required by module
    +		$this->phpmin = array(5,4);					// Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(2,4);	// Minimum version of Dolibarr required by module
     		$this->langfiles = array("cashdesk");
     		$this->warnings_activation = array('FR'=>'WarningNoteModulePOSForFrenchLaw');                     // Warning to show when we activate module. array('always'='text') or array('FR'='text')
    @@ -80,7 +81,6 @@ class modCashDesk extends DolibarrModules
     
     		// Permissions
     		$this->rights = array();
    -		$this->rights_class = 'cashdesk';
     		$r=0;
     
     		$r++;
    @@ -97,7 +97,7 @@ class modCashDesk extends DolibarrModules
     		// This is to declare the Top Menu entry:
     		$this->menu[$r]=array(	    'fk_menu'=>0,			// Put 0 if this is a top menu
     									'type'=>'top',			// This is a Top menu entry
    -									'titre'=>'CashDeskMenu',
    +									'titre'=>'PointOfSaleShort',
     									'mainmenu'=>'cashdesk',
     									'url'=>'/cashdesk/index.php?user=__LOGIN__',
     									'langs'=>'cashdesk',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
    diff --git a/htdocs/core/modules/modCategorie.class.php b/htdocs/core/modules/modCategorie.class.php
    index 50074779955..f0561757eae 100644
    --- a/htdocs/core/modules/modCategorie.class.php
    +++ b/htdocs/core/modules/modCategorie.class.php
    @@ -45,7 +45,7 @@ class modCategorie extends DolibarrModules
     		$this->numero = 1780;
     
     		$this->family = "technic";
    -		$this->module_position = 20;
    +		$this->module_position = '20';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des categories (produits, clients, fournisseurs...)";
    @@ -284,6 +284,7 @@ class modCategorie extends DolibarrModules
     			'p.email' => 'Email',
     			'p.note_private' => 'NotePrivate',
     			'p.note_public' => 'NotePublic',
    +            'p.statut' => 'Status',
     			's.nom'=>"Name",
     			's.client'=>"Customer",
     			's.fournisseur'=>"Supplier",
    @@ -301,6 +302,7 @@ class modCategorie extends DolibarrModules
     			'u.description' => "Text",
     			'p.lastname' => 'Text',
     			'p.firstname' => 'Text',
    +            'p.statut'=>"Numeric",
     			's.nom'=>"Text",
     			's.status'=>"Text",
     			's.address'=>"Text",
    @@ -333,6 +335,7 @@ class modCategorie extends DolibarrModules
     			'p.email' => 'contact',
     			'p.note_private' => 'contact',
     			'p.note_public' => 'contact',
    +            'p.statut' => 'contact',
     			's.nom'=>"company",
     			's.client'=>"company",
     			's.fournisseur'=>"company",
    diff --git a/htdocs/core/modules/modCollab.class.php b/htdocs/core/modules/modCollab.class.php
    index 5349b000ac3..90cffc85448 100644
    --- a/htdocs/core/modules/modCollab.class.php
    +++ b/htdocs/core/modules/modCollab.class.php
    @@ -46,7 +46,7 @@ class modCollab extends DolibarrModules
     		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
     		// It is used to group modules in module setup page
             $this->family = "portal";
    -        $this->module_position = 51;
    +        $this->module_position = '51';
             // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
             $this->name = preg_replace('/^mod/i','',get_class($this));
             $this->description = "Enable the public collaboration features, like shared pad, shared online sheets, etc...";
    diff --git a/htdocs/core/modules/modCommande.class.php b/htdocs/core/modules/modCommande.class.php
    index 5285e0734e2..5d1bdeada81 100644
    --- a/htdocs/core/modules/modCommande.class.php
    +++ b/htdocs/core/modules/modCommande.class.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
      * Copyright (C) 2004		Eric Seigne				<eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Juanjo Menent			<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -51,7 +51,7 @@ class modCommande extends DolibarrModules
     		$this->numero = 25;
     
     		$this->family = "crm";
    -		$this->module_position = 30;
    +		$this->module_position = '30';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des commandes clients";
    diff --git a/htdocs/core/modules/modComptabilite.class.php b/htdocs/core/modules/modComptabilite.class.php
    index 41349d214fc..2d0f81cf0cc 100644
    --- a/htdocs/core/modules/modComptabilite.class.php
    +++ b/htdocs/core/modules/modComptabilite.class.php
    @@ -48,7 +48,7 @@ class modComptabilite extends DolibarrModules
     		$this->numero = 10;
     
     		$this->family = "financial";
    -		$this->module_position = 600;
    +		$this->module_position = '60';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion sommaire de comptabilite";
    @@ -98,7 +98,6 @@ class modComptabilite extends DolibarrModules
     		// Menus
     		//-------
     		$this->menu = 1;        // This module add menu entries. They are coded into menu manager.
    -
     	}
     
     
    diff --git a/htdocs/core/modules/modContrat.class.php b/htdocs/core/modules/modContrat.class.php
    index ac722cd04ef..2ed01afee83 100644
    --- a/htdocs/core/modules/modContrat.class.php
    +++ b/htdocs/core/modules/modContrat.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent	    <jmenent@2byte.es>
      * 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
    @@ -47,6 +47,7 @@ class modContrat extends DolibarrModules
     		$this->numero = 54;
     
     		$this->family = "crm";
    +		$this->module_position = '35';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des contrats de services";
    diff --git a/htdocs/core/modules/modDataPolicy.class.php b/htdocs/core/modules/modDataPolicy.class.php
    new file mode 100644
    index 00000000000..5dfc0fb83dd
    --- /dev/null
    +++ b/htdocs/core/modules/modDataPolicy.class.php
    @@ -0,0 +1,263 @@
    +<?php
    +
    +/* Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2018      Nicolas ZABOURI      <info@inovea-conseil.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * 	\defgroup   datapolicy     Module datapolicy
    + *  \brief      datapolicy module descriptor.
    + *
    + *  \file       htdocs/datapolicy/core/modules/modDataPolicy.class.php
    + *  \ingroup    datapolicy
    + *  \brief      Description and activation file for module DATAPOLICY
    + */
    +include_once DOL_DOCUMENT_ROOT . '/core/modules/DolibarrModules.class.php';
    +
    +
    +
    +// The class name should start with a lower case mod for Dolibarr to pick it up
    +// so we ignore the Squiz.Classes.ValidClassName.NotCamelCaps rule.
    +// @codingStandardsIgnoreStart
    +/**
    + *  Description and activation class for module datapolicy
    + */
    +class modDataPolicy extends DolibarrModules {
    +
    +    // @codingStandardsIgnoreEnd
    +    /**
    +     * Constructor. Define names, constants, directories, boxes, permissions
    +     *
    +     * @param DoliDB $db Database handler
    +     */
    +    public function __construct($db)
    +    {
    +        global $langs, $conf;
    +
    +        $this->db = $db;
    +
    +        // Id for module (must be unique).
    +        // Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id).
    +        $this->numero = 4100;
    +        // Key text used to identify module (for permissions, menus, etc...)
    +        $this->rights_class = 'datapolicy';
    +
    +        // Family can be 'base' (core modules),'crm','financial','hr','projects','products','ecm','technic' (transverse modules),'interface' (link with external tools),'other','...'
    +        // It is used to group modules by family in module setup page
    +        $this->family = "technic";
    +        // Module position in the family on 2 digits ('01', '10', '20', ...)
    +        $this->module_position = '81';
    +        // Gives the possibility to the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this)
    +        //$this->familyinfo = array('myownfamily' => array('position' => '01', 'label' => $langs->trans("MyOwnFamily")));
    +        // Module label (no space allowed), used if translation string 'ModuledatapolicyName' not found (MyModue is name of module).
    +        $this->name = preg_replace('/^mod/i', '', get_class($this));
    +        // Module description, used if translation string 'ModuledatapolicyDesc' not found (MyModue is name of module).
    +        $this->description = "Module to manage Data policy (for compliance with GDPR in Europe or other Data policy rules)";
    +        // Used only if file README.md and README-LL.md not found.
    +        $this->descriptionlong = "";
    +
    +        // Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z'
    +        $this->version = 'development';
    +        // Key used in llx_const table to save module status enabled/disabled (where datapolicy is value of property name of module in uppercase)
    +        $this->const_name = 'MAIN_MODULE_' . strtoupper($this->name);
    +        // Name of image file used for this module.
    +        // If file is in theme/yourtheme/img directory under name object_pictovalue.png, use this->picto='pictovalue'
    +        // If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module'
    +        $this->picto = 'generic';
    +
    +        // Defined all module parts (triggers, login, substitutions, menus, css, etc...)
    +        // for default path (eg: /datapolicy/core/xxxxx) (0=disable, 1=enable)
    +        // for specific path of parts (eg: /datapolicy/core/modules/barcode)
    +        // for specific css file (eg: /datapolicy/css/datapolicy.css.php)
    +        $this->module_parts = array(
    +            'triggers' => 0, // Set this to 1 if module has its own trigger directory (core/triggers)
    +            'login' => 0, // Set this to 1 if module has its own login method file (core/login)
    +            'substitutions' => 0, // Set this to 1 if module has its own substitution function file (core/substitutions)
    +            'menus' => 0, // Set this to 1 if module has its own menus handler directory (core/menus)
    +            'theme' => 0, // Set this to 1 if module has its own theme directory (theme)
    +            'tpl' => 0, // Set this to 1 if module overwrite template dir (core/tpl)
    +            'barcode' => 0, // Set this to 1 if module has its own barcode directory (core/modules/barcode)
    +            'models' => 0, // Set this to 1 if module has its own models directory (core/modules/xxx)
    +            'hooks' => array('data' => array('membercard', 'contactcard', 'thirdpartycard'), 'entity' => $conf->entity)  // Set here all hooks context managed by module. To find available hook context, make a "grep -r '>initHooks(' *" on source code. You can also set hook context 'all'
    +        );
    +
    +        // Data directories to create when module is enabled.
    +        // Example: this->dirs = array("/datapolicy/temp","/datapolicy/subdir");
    +        $this->dirs = array("/datapolicy/temp");
    +
    +        // Config pages. Put here list of php page, stored into datapolicy/admin directory, to use to setup module.
    +        $this->config_page_url = array("setup.php@datapolicy");
    +
    +        // Dependencies
    +        $this->hidden = false;   // A condition to hide module
    +        $this->depends = array('always'=>'modCron');  // List of module class names as string that must be enabled if this module is enabled
    +        $this->requiredby = array(); // List of module ids to disable if this one is disabled
    +        $this->conflictwith = array(); // List of module class names as string this module is in conflict with
    +        $this->langfiles = array("datapolicy@datapolicy");
    +        $this->phpmin = array(5, 3);     // Minimum version of PHP required by module
    +        $this->need_dolibarr_version = array(4, 0); // Minimum version of Dolibarr required by module
    +        $this->warnings_activation = array();                     // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
    +        $this->warnings_activation_ext = array();                 // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
    +        //$this->automatic_activation = array('FR'=>'datapolicyWasAutomaticallyActivatedBecauseOfYourCountryChoice');
    +        //$this->always_enabled = true;								// If true, can't be disabled
    +        // Constants
    +        // List of particular constants to add when module is enabled (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive)
    +        // Example: $this->const=array(0=>array('datapolicy_MYNEWCONST1','chaine','myvalue','This is a constant to add',1),
    +        //                             1=>array('datapolicy_MYNEWCONST2','chaine','myvalue','This is another constant to add',0, 'current', 1)
    +        // );
    +        $this->const = array(
    +            array('DATAPOLICY_TIERS_CLIENT', 'chaine', '', $langs->trans('NUMBER_MONTH_BEFORE_DELETION'), 0),
    +            array('DATAPOLICY_TIERS_PROSPECT', 'chaine', '', $langs->trans('NUMBER_MONTH_BEFORE_DELETION'), 0),
    +            array('DATAPOLICY_TIERS_PROSPECT_CLIENT', 'chaine', '', $langs->trans('NUMBER_MONTH_BEFORE_DELETION'), 0),
    +            array('DATAPOLICY_TIERS_NIPROSPECT_NICLIENT', 'chaine', '', $langs->trans('NUMBER_MONTH_BEFORE_DELETION'), 0),
    +            array('DATAPOLICY_TIERS_FOURNISSEUR', 'chaine', '', $langs->trans('NUMBER_MONTH_BEFORE_DELETION'), 0),
    +            array('DATAPOLICY_CONTACT_CLIENT', 'chaine', '', $langs->trans('NUMBER_MONTH_BEFORE_DELETION'), 0),
    +            array('DATAPOLICY_CONTACT_PROSPECT', 'chaine', '', $langs->trans('NUMBER_MONTH_BEFORE_DELETION'), 0),
    +            array('DATAPOLICY_CONTACT_PROSPECT_CLIENT', 'chaine', '', $langs->trans('NUMBER_MONTH_BEFORE_DELETION'), 0),
    +            array('DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT', 'chaine', '', $langs->trans('NUMBER_MONTH_BEFORE_DELETION'), 0),
    +            array('DATAPOLICY_CONTACT_FOURNISSEUR', 'chaine', '', $langs->trans('NUMBER_MONTH_BEFORE_DELETION'), 0),
    +            array('DATAPOLICY_ADHERENT', 'chaine', '', $langs->trans('NUMBER_MONTH_BEFORE_DELETION'), 0),
    +        );
    +
    +        $country = explode(":", $conf->global->MAIN_INFO_SOCIETE_COUNTRY);
    +
    +        // Some keys to add into the overwriting translation tables
    +        /* $this->overwrite_translation = array(
    +          'en_US:ParentCompany'=>'Parent company or reseller',
    +          'fr_FR:ParentCompany'=>'Maison mère ou revendeur'
    +          ) */
    +
    +        if (!isset($conf->datapolicy) || !isset($conf->datapolicy->enabled)) {
    +            $conf->datapolicy = new stdClass();
    +            $conf->datapolicy->enabled = 0;
    +        }
    +
    +
    +        // Array to add new pages in new tabs
    +        $this->tabs = array();
    +        // Example:
    +        // $this->tabs[] = array('data'=>'objecttype:+tabname1:Title1:mylangfile@datapolicy:$user->rights->datapolicy->read:/datapolicy/mynewtab1.php?id=__ID__');  					// To add a new tab identified by code tabname1
    +        // $this->tabs[] = array('data'=>'objecttype:+tabname2:SUBSTITUTION_Title2:mylangfile@datapolicy:$user->rights->othermodule->read:/datapolicy/mynewtab2.php?id=__ID__',  	// To add another new tab identified by code tabname2. Label will be result of calling all substitution functions on 'Title2' key.
    +        // $this->tabs[] = array('data'=>'objecttype:-tabname:NU:conditiontoremove');                                                     										// To remove an existing tab identified by code tabname
    +        //
    +        // Where objecttype can be
    +        // 'categories_x'	  to add a tab in category view (replace 'x' by type of category (0=product, 1=supplier, 2=customer, 3=member)
    +        // 'contact'          to add a tab in contact view
    +        // 'contract'         to add a tab in contract view
    +        // 'group'            to add a tab in group view
    +        // 'intervention'     to add a tab in intervention view
    +        // 'invoice'          to add a tab in customer invoice view
    +        // 'invoice_supplier' to add a tab in supplier invoice view
    +        // 'member'           to add a tab in fundation member view
    +        // 'opensurveypoll'	  to add a tab in opensurvey poll view
    +        // 'order'            to add a tab in customer order view
    +        // 'order_supplier'   to add a tab in supplier order view
    +        // 'payment'		  to add a tab in payment view
    +        // 'payment_supplier' to add a tab in supplier payment view
    +        // 'product'          to add a tab in product view
    +        // 'propal'           to add a tab in propal view
    +        // 'project'          to add a tab in project view
    +        // 'stock'            to add a tab in stock view
    +        // 'thirdparty'       to add a tab in third party view
    +        // 'user'             to add a tab in user view
    +
    +
    +        // Dictionaries
    +        $this->dictionaries = array();
    +
    +
    +        // Boxes/Widgets
    +        // Add here list of php file(s) stored in datapolicy/core/boxes that contains class to show a widget.
    +        $this->boxes = array();
    +
    +
    +        // Cronjobs (List of cron jobs entries to add when module is enabled)
    +        // unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week
    +        $this->cronjobs = array(
    +            0 => array('label' => 'DATAPOLICY Cron', 'jobtype' => 'method', 'class' => '/datapolicy/class/datapolicyCron.class.php', 'objectname' => 'DataPolicyCron', 'method' => 'exec', 'parameters' => '', 'comment' => 'Clean data', 'frequency' => 1, 'unitfrequency' => 86400, 'status' => 1, 'test' => '$conf->datapolicy->enabled'),
    +            //1 => array('label' => 'DATAPOLICY Mailing', 'jobtype' => 'method', 'class' => '/datapolicy/class/datapolicyCron.class.php', 'objectname' => 'RgpdCron', 'method' => 'sendMailing', 'parameters' => '', 'comment' => 'Comment', 'frequency' => 1, 'unitfrequency' => 86400, 'status' => 0, 'test' => true)
    +        );
    +        // Example: $this->cronjobs=array(0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>true),
    +        //                                1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>true)
    +        // );
    +        // Permissions
    +        $this->rights = array();  // Permission array used by this module
    +        // Main menu entries
    +        $this->menu = array();   // List of menus to add
    +        $r = 0;
    +    }
    +
    +    /**
    +     * 	Function called when module is enabled.
    +     * 	The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
    +     * 	It also creates data directories
    +     *
    +     * 	@param      string	$options    Options when enabling module ('', 'noboxes')
    +     * 	@return     int             	1 if OK, 0 if KO
    +     */
    +    public function init($options = '')
    +    {
    +    	global $langs;
    +
    +    	$this->_load_tables('/datapolicy/sql/');
    +
    +        // Create extrafields
    +        include_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
    +        $extrafields = new ExtraFields($this->db);
    +
    +		/*
    +        // Extrafield contact
    +        $result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
    +        $result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
    +        $result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
    +        $result1 = $extrafields->addExtraField('datapolicy_date', $langs->trans("DATAPOLICY_date"), 'date', 104, 3, 'thirdparty', 0, 0, '', '', 1, '', '3', 0);
    +        $result1 = $extrafields->addExtraField('datapolicy_send', $langs->trans("DATAPOLICY_send"), 'date', 105, 3, 'thirdparty', 0, 0, '', '', 0, '', '0', 0);
    +
    +        // Extrafield Tiers
    +        $result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
    +        $result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
    +        $result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'contact', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
    +        $result1 = $extrafields->addExtraField('datapolicy_date', $langs->trans("DATAPOLICY_date"), 'date', 104, 3, 'contact', 0, 0, '', '', 1, '', '3', 0);
    +        $result1 = $extrafields->addExtraField('datapolicy_send', $langs->trans("DATAPOLICY_send"), 'date', 105, 3, 'contact', 0, 0, '', '', 0, '', '0', 0);
    +
    +        // Extrafield Adherent
    +        $result1 = $extrafields->addExtraField('datapolicy_consentement', $langs->trans("DATAPOLICY_consentement"), 'boolean', 101, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
    +        $result1 = $extrafields->addExtraField('datapolicy_opposition_traitement', $langs->trans("DATAPOLICY_opposition_traitement"), 'boolean', 102, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
    +        $result1 = $extrafields->addExtraField('datapolicy_opposition_prospection', $langs->trans("DATAPOLICY_opposition_prospection"), 'boolean', 103, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0, '', '', 'datapolicy@datapolicy', '$conf->datapolicy->enabled');
    +        $result1 = $extrafields->addExtraField('datapolicy_date', $langs->trans("DATAPOLICY_date"), 'date', 104, 3, 'adherent', 0, 0, '', '', 1, '', '3', 0);
    +        $result1 = $extrafields->addExtraField('datapolicy_send', $langs->trans("DATAPOLICY_send"), 'date', 105, 3, 'adherent', 0, 0, '', '', 0, '', '0', 0);
    +		*/
    +
    +        $sql = array();
    +
    +        return $this->_init($sql, $options);
    +    }
    +
    +    /**
    +     * 	Function called when module is disabled.
    +     * 	Remove from database constants, boxes and permissions from Dolibarr database.
    +     * 	Data directories are not deleted
    +     *
    +     * 	@param      string	$options    Options when enabling module ('', 'noboxes')
    +     * 	@return     int             	1 if OK, 0 if KO
    +     */
    +    public function remove($options = '')
    +    {
    +        $sql = array();
    +
    +        return $this->_remove($sql, $options);
    +    }
    +}
    diff --git a/htdocs/core/modules/modDav.class.php b/htdocs/core/modules/modDav.class.php
    index 77c3f8feef7..bf0f3b1b189 100644
    --- a/htdocs/core/modules/modDav.class.php
    +++ b/htdocs/core/modules/modDav.class.php
    @@ -26,15 +26,11 @@
     include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
     
     
    -// The class name should start with a lower case mod for Dolibarr to pick it up
    -// so we ignore the Squiz.Classes.ValidClassName.NotCamelCaps rule.
    -// @codingStandardsIgnoreStart
     /**
      *  Description and activation class for module dav
      */
     class modDav extends DolibarrModules
     {
    -	// @codingStandardsIgnoreEnd
     	/**
     	 * Constructor. Define names, constants, directories, boxes, permissions
     	 *
    @@ -48,7 +44,7 @@ class modDav extends DolibarrModules
     
     		// Id for module (must be unique).
     		// Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id).
    -		$this->numero = 50310;		// TODO Go on page https://wiki.dolibarr.org/index.php/List_of_modules_id to reserve id number for your module
    +		$this->numero = 50310;
     		// Key text used to identify module (for permissions, menus, etc...)
     		$this->rights_class = 'dav';
     
    @@ -56,7 +52,7 @@ class modDav extends DolibarrModules
     		// It is used to group modules by family in module setup page
     		$this->family = "interface";
     		// Module position in the family on 2 digits ('01', '10', '20', ...)
    -		$this->module_position = '90';
    +		$this->module_position = '75';
     		// Gives the possibility to the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this)
     		//$this->familyinfo = array('myownfamily' => array('position' => '01', 'label' => $langs->trans("MyOwnFamily")));
     
    @@ -68,7 +64,7 @@ class modDav extends DolibarrModules
     		$this->descriptionlong = "davDescription";
     
     		// Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z'
    -		$this->version = 'experimental';
    +		$this->version = 'dolibarr';
     		// Key used in llx_const table to save module status enabled/disabled (where DAV is value of property name of module in uppercase)
     		$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
     		// Name of image file used for this module.
    @@ -95,7 +91,7 @@ class modDav extends DolibarrModules
     		$this->requiredby = array();	// List of module ids to disable if this one is disabled
     		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
     		$this->langfiles = array("admin");
    -		$this->phpmin = array(5,4);					// Minimum version of PHP required by module
    +		$this->phpmin = array(5,6);					// Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(7,0);	// Minimum version of Dolibarr required by module
     		$this->warnings_activation = array();                     // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
     		$this->warnings_activation_ext = array();                 // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
    @@ -108,7 +104,7 @@ class modDav extends DolibarrModules
     		//                             1=>array('DAV_MYNEWCONST2','chaine','myvalue','This is another constant to add',0, 'current', 1)
     		// );
     		$this->const = array(
    -			1=>array('DAV_MYCONSTANT', 'chaine', 'avalue', 'This is a constant to add', 1, 'allentities', 1)
    +			//1=>array('DAV_MYCONSTANT', 'chaine', 'avalue', 'This is a constant to add', 1, 'allentities', 1)
     		);
     
     
    @@ -177,9 +173,9 @@ class modDav extends DolibarrModules
     
     		// Cronjobs (List of cron jobs entries to add when module is enabled)
     		// unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week
    -		$this->cronjobs = array(
    +		//$this->cronjobs = array(
     			//0=>array('label'=>'MyJob label', 'jobtype'=>'method', 'class'=>'/dav/class/myobject.class.php', 'objectname'=>'MyObject', 'method'=>'doScheduledJob', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>true)
    -		);
    +		//);
     		// Example: $this->cronjobs=array(0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>true),
     		//                                1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>true)
     		// );
    @@ -324,5 +320,4 @@ class modDav extends DolibarrModules
     
     		return $this->_remove($sql, $options);
     	}
    -
     }
    diff --git a/htdocs/core/modules/modDeplacement.class.php b/htdocs/core/modules/modDeplacement.class.php
    index 3baa7b74590..e5c7146729f 100644
    --- a/htdocs/core/modules/modDeplacement.class.php
    +++ b/htdocs/core/modules/modDeplacement.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -45,7 +45,7 @@ class modDeplacement extends DolibarrModules
     		$this->numero = 75 ;
     
     		$this->family = "hr";
    -		$this->module_position = 41;
    +		$this->module_position = '41';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des notes de frais et deplacements";		// Si traduction Module75Desc non trouvee
    @@ -139,7 +139,7 @@ class modDeplacement extends DolibarrModules
         		$childids = $user->getAllChildIds();
         		$childids[]=$user->id;
     
    -    		if (empty($user->rights->deplacement->readall) && empty($user->rights->deplacement->lire_tous)) $sql.=' AND d.fk_user IN ('.join(',',$childids).')';
    +    		if (empty($user->rights->deplacement->readall) && empty($user->rights->deplacement->lire_tous)) $this->export_sql_end[$r] .=' AND d.fk_user IN ('.join(',',$childids).')';
     		}
     	}
     
    diff --git a/htdocs/core/modules/modDocumentGeneration.class.php b/htdocs/core/modules/modDocumentGeneration.class.php
    index 211fb38feca..a2ea9dea7c8 100644
    --- a/htdocs/core/modules/modDocumentGeneration.class.php
    +++ b/htdocs/core/modules/modDocumentGeneration.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -45,7 +45,7 @@ class modDocumentGeneration extends DolibarrModules
     		$this->numero = 1520;
     
     		$this->family = "technic";
    -		$this->module_position = 80;
    +		$this->module_position = '80';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Direct mail document generation";
    diff --git a/htdocs/core/modules/modDon.class.php b/htdocs/core/modules/modDon.class.php
    index dacfad736bf..325f6533f51 100644
    --- a/htdocs/core/modules/modDon.class.php
    +++ b/htdocs/core/modules/modDon.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2005	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2015		Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -140,7 +140,6 @@ class modDon extends DolibarrModules
     		// Menus
     		//-------
     		$this->menu = 1;        // This module add menu entries. They are coded into menu manager.
    -
     	}
     
     
    diff --git a/htdocs/core/modules/modDynamicPrices.class.php b/htdocs/core/modules/modDynamicPrices.class.php
    index c7bc152ff64..a164bec953c 100644
    --- a/htdocs/core/modules/modDynamicPrices.class.php
    +++ b/htdocs/core/modules/modDynamicPrices.class.php
    @@ -82,6 +82,5 @@ class modDynamicPrices extends DolibarrModules
             $this->rights = array();
             $this->rights_class = 'dynamicprices';
             $r=0;
    -
         }
     }
    diff --git a/htdocs/core/modules/modECM.class.php b/htdocs/core/modules/modECM.class.php
    index 5b85ada7f70..593f702ac52 100644
    --- a/htdocs/core/modules/modECM.class.php
    +++ b/htdocs/core/modules/modECM.class.php
    @@ -48,7 +48,7 @@ class modECM extends DolibarrModules
     		// Family can be 'crm','financial','hr','projects','product','ecm','technic','other'
     		// It is used to sort modules in module setup page
     		$this->family = "ecm";
    -		$this->module_position = 10;
    +		$this->module_position = '10';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		// Module description used if translation string 'ModuleXXXDesc' not found (XXX is id value)
    @@ -129,7 +129,7 @@ class modECM extends DolibarrModules
     							  'mainmenu'=>'ecm',
     							  'url'=>'/ecm/index.php',
     							  'langs'=>'ecm',
    -							  'position'=>100,
    +							  'position'=>82,
     							  'perms'=>'$user->rights->ecm->read || $user->rights->ecm->upload || $user->rights->ecm->setup',
     							  'enabled'=>'$conf->ecm->enabled',
     							  'target'=>'',
    diff --git a/htdocs/core/modules/modEmailCollector.class.php b/htdocs/core/modules/modEmailCollector.class.php
    new file mode 100644
    index 00000000000..868e1760ded
    --- /dev/null
    +++ b/htdocs/core/modules/modEmailCollector.class.php
    @@ -0,0 +1,320 @@
    +<?php
    +/* Copyright (C) 2004-2018 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * 	\defgroup   dav     Module dav
    + *  \brief      dav module descriptor.
    + *
    + *  \file       htdocs/dav/core/modules/modDav.class.php
    + *  \ingroup    dav
    + *  \brief      Description and activation file for module dav
    + */
    +include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
    +
    +
    +/**
    + *  Description and activation class for module dav
    + */
    +class modEmailCollector extends DolibarrModules
    +{
    +	/**
    +	 * Constructor. Define names, constants, directories, boxes, permissions
    +	 *
    +	 * @param DoliDB $db Database handler
    +	 */
    +	public function __construct($db)
    +	{
    +        global $langs,$conf;
    +
    +        $this->db = $db;
    +
    +		// Id for module (must be unique).
    +		// Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id).
    +		$this->numero = 50320;
    +		// Key text used to identify module (for permissions, menus, etc...)
    +		$this->rights_class = 'emailcollector';
    +
    +		// Family can be 'base' (core modules),'crm','financial','hr','projects','products','ecm','technic' (transverse modules),'interface' (link with external tools),'other','...'
    +		// It is used to group modules by family in module setup page
    +		$this->family = "interface";
    +		// Module position in the family on 2 digits ('01', '10', '20', ...)
    +		$this->module_position = '12';
    +		// Gives the possibility to the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this)
    +		//$this->familyinfo = array('myownfamily' => array('position' => '01', 'label' => $langs->trans("MyOwnFamily")));
    +
    +		// Module label (no space allowed), used if translation string 'ModuledavName' not found (MyModue is name of module).
    +		$this->name = preg_replace('/^mod/i','',get_class($this));
    +		// Module description, used if translation string 'ModuledavDesc' not found (MyModue is name of module).
    +		$this->description = "EmailCollectorDescription";
    +		// Used only if file README.md and README-LL.md not found.
    +		$this->descriptionlong = "EmailCollectorDescription";
    +
    +		// Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z'
    +		$this->version = 'experimental';
    +		// Key used in llx_const table to save module status enabled/disabled (where DAV is value of property name of module in uppercase)
    +		$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
    +		// Name of image file used for this module.
    +		// If file is in theme/yourtheme/img directory under name object_pictovalue.png, use this->picto='pictovalue'
    +		// If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module'
    +		$this->picto='email';
    +
    +		// Defined all module parts (triggers, login, substitutions, menus, css, etc...)
    +		// for default path (eg: /dav/core/xxxxx) (0=disable, 1=enable)
    +		// for specific path of parts (eg: /dav/core/modules/barcode)
    +		// for specific css file (eg: /dav/css/dav.css.php)
    +		$this->module_parts = array();
    +
    +		// Data directories to create when module is enabled.
    +		// Example: this->dirs = array("/dav/temp","/dav/subdir");
    +		$this->dirs = array();
    +
    +		// Config pages. Put here list of php page, stored into dav/admin directory, to use to setup module.
    +		$this->config_page_url = array("emailcollector_list.php");
    +
    +		// Dependencies
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array('always'=>'modCron');		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->langfiles = array("admin");
    +		$this->phpmin = array(5,4);					// Minimum version of PHP required by module
    +		$this->need_dolibarr_version = array(7,0);	// Minimum version of Dolibarr required by module
    +		$this->warnings_activation = array();                     // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
    +		$this->warnings_activation_ext = array();                 // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
    +		//$this->automatic_activation = array('FR'=>'davWasAutomaticallyActivatedBecauseOfYourCountryChoice');
    +		//$this->always_enabled = true;								// If true, can't be disabled
    +
    +		// Constants
    +		// List of particular constants to add when module is enabled (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive)
    +		// Example: $this->const=array(0=>array('DAV_MYNEWCONST1','chaine','myvalue','This is a constant to add',1),
    +		//                             1=>array('DAV_MYNEWCONST2','chaine','myvalue','This is another constant to add',0, 'current', 1)
    +		// );
    +		$this->const = array(
    +			//1=>array('DAV_MYCONSTANT', 'chaine', 'avalue', 'This is a constant to add', 1, 'allentities', 1)
    +		);
    +
    +
    +		if (! isset($conf->dav) || ! isset($conf->dav->enabled))
    +		{
    +			$conf->dav=new stdClass();
    +			$conf->dav->enabled=0;
    +		}
    +
    +
    +		// Array to add new pages in new tabs
    +        $this->tabs = array();
    +		// Example:
    +		// $this->tabs[] = array('data'=>'objecttype:+tabname1:Title1:mylangfile@dav:$user->rights->dav->read:/dav/mynewtab1.php?id=__ID__');  					// To add a new tab identified by code tabname1
    +        // $this->tabs[] = array('data'=>'objecttype:+tabname2:SUBSTITUTION_Title2:mylangfile@dav:$user->rights->othermodule->read:/dav/mynewtab2.php?id=__ID__',  	// To add another new tab identified by code tabname2. Label will be result of calling all substitution functions on 'Title2' key.
    +        // $this->tabs[] = array('data'=>'objecttype:-tabname:NU:conditiontoremove');                                                     										// To remove an existing tab identified by code tabname
    +        //
    +        // Where objecttype can be
    +		// 'categories_x'	  to add a tab in category view (replace 'x' by type of category (0=product, 1=supplier, 2=customer, 3=member)
    +		// 'contact'          to add a tab in contact view
    +		// 'contract'         to add a tab in contract view
    +		// 'group'            to add a tab in group view
    +		// 'intervention'     to add a tab in intervention view
    +		// 'invoice'          to add a tab in customer invoice view
    +		// 'invoice_supplier' to add a tab in supplier invoice view
    +		// 'member'           to add a tab in fundation member view
    +		// 'opensurveypoll'	  to add a tab in opensurvey poll view
    +		// 'order'            to add a tab in customer order view
    +		// 'order_supplier'   to add a tab in supplier order view
    +		// 'payment'		  to add a tab in payment view
    +		// 'payment_supplier' to add a tab in supplier payment view
    +		// 'product'          to add a tab in product view
    +		// 'propal'           to add a tab in propal view
    +		// 'project'          to add a tab in project view
    +		// 'stock'            to add a tab in stock view
    +		// 'thirdparty'       to add a tab in third party view
    +		// 'user'             to add a tab in user view
    +
    +
    +        // Dictionaries
    +		$this->dictionaries=array();
    +        /* Example:
    +        $this->dictionaries=array(
    +            'langs'=>'mylangfile@dav',
    +            'tabname'=>array(MAIN_DB_PREFIX."table1",MAIN_DB_PREFIX."table2",MAIN_DB_PREFIX."table3"),		// List of tables we want to see into dictonnary editor
    +            'tablib'=>array("Table1","Table2","Table3"),													// Label of tables
    +            'tabsql'=>array('SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table1 as f','SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table2 as f','SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table3 as f'),	// Request to select fields
    +            'tabsqlsort'=>array("label ASC","label ASC","label ASC"),																					// Sort order
    +            'tabfield'=>array("code,label","code,label","code,label"),																					// List of fields (result of select to show dictionary)
    +            'tabfieldvalue'=>array("code,label","code,label","code,label"),																				// List of fields (list of fields to edit a record)
    +            'tabfieldinsert'=>array("code,label","code,label","code,label"),																			// List of fields (list of fields for insert)
    +            'tabrowid'=>array("rowid","rowid","rowid"),																									// Name of columns with primary key (try to always name it 'rowid')
    +            'tabcond'=>array($conf->dav->enabled,$conf->dav->enabled,$conf->dav->enabled)												// Condition to show each dictionary
    +        );
    +        */
    +
    +
    +        // Boxes/Widgets
    +		// Add here list of php file(s) stored in dav/core/boxes that contains class to show a widget.
    +        $this->boxes = array(
    +        	//0=>array('file'=>'davwidget1.php@dav','note'=>'Widget provided by dav','enabledbydefaulton'=>'Home'),
    +        	//1=>array('file'=>'davwidget2.php@dav','note'=>'Widget provided by dav'),
    +        	//2=>array('file'=>'davwidget3.php@dav','note'=>'Widget provided by dav')
    +        );
    +
    +
    +		// Cronjobs (List of cron jobs entries to add when module is enabled)
    +		// unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week
    +		$this->cronjobs = array(
    +			0=>array('label'=>'Email collector', 'priority'=>50, 'jobtype'=>'method', 'class'=>'/emailcollector/class/emailcollector.class.php', 'objectname'=>'EmailCollector', 'method'=>'doCollect', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>5, 'unitfrequency'=>60, 'status'=>1, 'test'=>'$conf->emailcollector->enabled')
    +		);
    +
    +
    +		// Permissions
    +		$this->rights = array();		// Permission array used by this module
    +
    +		/*
    +		$r=0;
    +		$this->rights[$r][0] = $this->numero + $r;	// Permission id (must not be already used)
    +		$this->rights[$r][1] = 'Read myobject of dav';	// Permission label
    +		$this->rights[$r][3] = 1; 					// Permission by default for new user (0/1)
    +		$this->rights[$r][4] = 'read';				// In php code, permission will be checked by test if ($user->rights->dav->level1->level2)
    +		$this->rights[$r][5] = '';				    // In php code, permission will be checked by test if ($user->rights->dav->level1->level2)
    +
    +		$r++;
    +		$this->rights[$r][0] = $this->numero + $r;	// Permission id (must not be already used)
    +		$this->rights[$r][1] = 'Create/Update myobject of dav';	// Permission label
    +		$this->rights[$r][3] = 1; 					// Permission by default for new user (0/1)
    +		$this->rights[$r][4] = 'write';				// In php code, permission will be checked by test if ($user->rights->dav->level1->level2)
    +		$this->rights[$r][5] = '';				    // In php code, permission will be checked by test if ($user->rights->dav->level1->level2)
    +
    +		$r++;
    +		$this->rights[$r][0] = $this->numero + $r;	// Permission id (must not be already used)
    +		$this->rights[$r][1] = 'Delete myobject of dav';	// Permission label
    +		$this->rights[$r][3] = 1; 					// Permission by default for new user (0/1)
    +		$this->rights[$r][4] = 'delete';				// In php code, permission will be checked by test if ($user->rights->dav->level1->level2)
    +		$this->rights[$r][5] = '';				    // In php code, permission will be checked by test if ($user->rights->dav->level1->level2)
    +		*/
    +
    +		// Main menu entries
    +		$this->menu = array();			// List of menus to add
    +		$r=0;
    +
    +		// Add here entries to declare new menus
    +
    +		/* BEGIN MODULEBUILDER TOPMENU */
    +		/*$this->menu[$r++]=array('fk_menu'=>'',			                // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
    +								'type'=>'top',			                // This is a Top menu entry
    +								'titre'=>'dav',
    +								'mainmenu'=>'dav',
    +								'leftmenu'=>'',
    +								'url'=>'/dav/davindex.php',
    +								'langs'=>'dav@dav',	        // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
    +								'position'=>1000+$r,
    +								'enabled'=>'$conf->dav->enabled',	// Define condition to show or hide menu entry. Use '$conf->dav->enabled' if entry must be visible if module is enabled.
    +								'perms'=>'1',			                // Use 'perms'=>'$user->rights->dav->level1->level2' if you want your menu with a permission rules
    +								'target'=>'',
    +								'user'=>2);				                // 0=Menu for internal users, 1=external users, 2=both
    +		*/
    +		/* END MODULEBUILDER TOPMENU */
    +
    +		/* BEGIN MODULEBUILDER LEFTMENU MYOBJECT
    +		$this->menu[$r++]=array(	'fk_menu'=>'fk_mainmenu=dav',	    // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
    +								'type'=>'left',			                // This is a Left menu entry
    +								'titre'=>'List MyObject',
    +								'mainmenu'=>'dav',
    +								'leftmenu'=>'dav_myobject_list',
    +								'url'=>'/dav/myobject_list.php',
    +								'langs'=>'dav@dav',	        // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
    +								'position'=>1000+$r,
    +								'enabled'=>'$conf->dav->enabled',  // Define condition to show or hide menu entry. Use '$conf->dav->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
    +								'perms'=>'1',			                // Use 'perms'=>'$user->rights->dav->level1->level2' if you want your menu with a permission rules
    +								'target'=>'',
    +								'user'=>2);				                // 0=Menu for internal users, 1=external users, 2=both
    +		$this->menu[$r++]=array(	'fk_menu'=>'fk_mainmenu=dav,fk_leftmenu=dav',	    // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
    +								'type'=>'left',			                // This is a Left menu entry
    +								'titre'=>'New MyObject',
    +								'mainmenu'=>'dav',
    +								'leftmenu'=>'dav_myobject_new',
    +								'url'=>'/dav/myobject_page.php?action=create',
    +								'langs'=>'dav@dav',	        // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
    +								'position'=>1000+$r,
    +								'enabled'=>'$conf->dav->enabled',  // Define condition to show or hide menu entry. Use '$conf->dav->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
    +								'perms'=>'1',			                // Use 'perms'=>'$user->rights->dav->level1->level2' if you want your menu with a permission rules
    +								'target'=>'',
    +								'user'=>2);				                // 0=Menu for internal users, 1=external users, 2=both
    +		END MODULEBUILDER LEFTMENU MYOBJECT */
    +
    +
    +		// Exports
    +		$r=1;
    +
    +		/* BEGIN MODULEBUILDER EXPORT MYOBJECT */
    +		/*
    +		$langs->load("dav@dav");
    +		$this->export_code[$r]=$this->rights_class.'_'.$r;
    +		$this->export_label[$r]='MyObjectLines';	// Translation key (used only if key ExportDataset_xxx_z not found)
    +		$this->export_icon[$r]='myobject@dav';
    +		$keyforclass = 'MyObject'; $keyforclassfile='/mymobule/class/myobject.class.php'; $keyforelement='myobject';
    +		include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php';
    +		$keyforselect='myobject'; $keyforaliasextra='extra'; $keyforelement='myobject';
    +		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
    +		//$this->export_dependencies_array[$r]=array('mysubobject'=>'ts.rowid', 't.myfield'=>array('t.myfield2','t.myfield3')); // To force to activate one or several fields if we select some fields that need same (like to select a unique key if we ask a field of a child to avoid the DISTINCT to discard them, or for computed field than need several other fields)
    +		$this->export_sql_start[$r]='SELECT DISTINCT ';
    +		$this->export_sql_end[$r]  =' FROM '.MAIN_DB_PREFIX.'myobject as t';
    +		$this->export_sql_end[$r] .=' WHERE 1 = 1';
    +		$this->export_sql_end[$r] .=' AND t.entity IN ('.getEntity('myobject').')';
    +		$r++; */
    +		/* END MODULEBUILDER EXPORT MYOBJECT */
    +	}
    +
    +	/**
    +	 *	Function called when module is enabled.
    +	 *	The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
    +	 *	It also creates data directories
    +	 *
    +     *	@param      string	$options    Options when enabling module ('', 'noboxes')
    +	 *	@return     int             	1 if OK, 0 if KO
    +	 */
    +	public function init($options='')
    +	{
    +		//$this->_load_tables('/dav/sql/');
    +
    +		// Create extrafields
    +		include_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
    +		$extrafields = new ExtraFields($this->db);
    +
    +		//$result1=$extrafields->addExtraField('myattr1', "New Attr 1 label", 'boolean', 1,  3, 'thirdparty',   0, 0, '', '', 1, '', 0, 0, '', '', 'dav@dav', '$conf->dav->enabled');
    +		//$result2=$extrafields->addExtraField('myattr2', "New Attr 2 label", 'varchar', 1, 10, 'project',      0, 0, '', '', 1, '', 0, 0, '', '', 'dav@dav', '$conf->dav->enabled');
    +		//$result3=$extrafields->addExtraField('myattr3', "New Attr 3 label", 'varchar', 1, 10, 'bank_account', 0, 0, '', '', 1, '', 0, 0, '', '', 'dav@dav', '$conf->dav->enabled');
    +		//$result4=$extrafields->addExtraField('myattr4', "New Attr 4 label", 'select',  1,  3, 'thirdparty',   0, 1, '', array('options'=>array('code1'=>'Val1','code2'=>'Val2','code3'=>'Val3')), 1 '', 0, 0, '', '', 'dav@dav', '$conf->dav->enabled');
    +		//$result5=$extrafields->addExtraField('myattr5', "New Attr 5 label", 'text',    1, 10, 'user',         0, 0, '', '', 1, '', 0, 0, '', '', 'dav@dav', '$conf->dav->enabled');
    +
    +		$sql = array();
    +
    +		return $this->_init($sql, $options);
    +	}
    +
    +	/**
    +	 *	Function called when module is disabled.
    +	 *	Remove from database constants, boxes and permissions from Dolibarr database.
    +	 *	Data directories are not deleted
    +	 *
    +	 *	@param      string	$options    Options when enabling module ('', 'noboxes')
    +	 *	@return     int             	1 if OK, 0 if KO
    +	 */
    +	public function remove($options = '')
    +	{
    +		$sql = array();
    +
    +		return $this->_remove($sql, $options);
    +	}
    +}
    diff --git a/htdocs/core/modules/modExpedition.class.php b/htdocs/core/modules/modExpedition.class.php
    index daf7ec4b3cc..06cb8272ce0 100644
    --- a/htdocs/core/modules/modExpedition.class.php
    +++ b/htdocs/core/modules/modExpedition.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2013	   Philippe Grand	    <philippe.grand@atoo-net.com>
      *
    @@ -49,7 +49,7 @@ class modExpedition extends DolibarrModules
     		$this->numero = 80;
     
     		$this->family = "crm";
    -		$this->module_position = 40;
    +		$this->module_position = '40';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des expeditions";
    diff --git a/htdocs/core/modules/modExpenseReport.class.php b/htdocs/core/modules/modExpenseReport.class.php
    index 2dd46c9b788..62daf54a395 100644
    --- a/htdocs/core/modules/modExpenseReport.class.php
    +++ b/htdocs/core/modules/modExpenseReport.class.php
    @@ -23,7 +23,7 @@
      *      \ingroup    expensereport
      *      \brief      Description and activation file for module ExpenseReport
      */
    -include_once(DOL_DOCUMENT_ROOT ."/core/modules/DolibarrModules.class.php");
    +include_once DOL_DOCUMENT_ROOT ."/core/modules/DolibarrModules.class.php";
     
     
     /**
    @@ -44,7 +44,7 @@ class modExpenseReport extends DolibarrModules
     		$this->numero = 770;
     
     		$this->family = "hr";
    -		$this->module_position = 40;
    +		$this->module_position = '40';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		// Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
    @@ -61,10 +61,11 @@ class modExpenseReport extends DolibarrModules
     		$this->config_page_url = array('expensereport.php');
     
     		// Dependencies
    -		$this->depends = array();		// List of modules id that must be enabled if this module is enabled
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
     		// $this->conflictwith = array("modDeplacement"); // Deactivate for access on old information
     		$this->requiredby = array();	// List of modules id to disable if this one is disabled
    -		$this->phpmin = array(4,3);					// Minimum version of PHP required by module
    +		$this->phpmin = array(5,4);					// Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(3,7);	// Minimum version of Dolibarr required by module
     		$this->langfiles = array("companies","trips");
     
    diff --git a/htdocs/core/modules/modExport.class.php b/htdocs/core/modules/modExport.class.php
    index b88438f5fe1..4847ae4da2e 100644
    --- a/htdocs/core/modules/modExport.class.php
    +++ b/htdocs/core/modules/modExport.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -44,7 +44,7 @@ class modExport extends DolibarrModules
     		$this->numero = 240;
     
     		$this->family = "technic";
    -		$this->module_position = 72;
    +		$this->module_position = '72';
             // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Outils d'exports de donnees Dolibarr (via un assistant)";
    @@ -94,6 +94,5 @@ class modExport extends DolibarrModules
     		// Menus
     		//-------
     		$this->menu = 1;        // This module add menu entries. They are coded into menu manager.
    -
     	}
     }
    diff --git a/htdocs/core/modules/modExternalRss.class.php b/htdocs/core/modules/modExternalRss.class.php
    index cf02888b9d2..8d1bf055673 100644
    --- a/htdocs/core/modules/modExternalRss.class.php
    +++ b/htdocs/core/modules/modExternalRss.class.php
    @@ -135,5 +135,4 @@ class modExternalRss extends DolibarrModules
     
     		return $this->_remove($sql,$options);
         }
    -
     }
    diff --git a/htdocs/core/modules/modExternalSite.class.php b/htdocs/core/modules/modExternalSite.class.php
    index 18bb0b000b2..088e93955ef 100644
    --- a/htdocs/core/modules/modExternalSite.class.php
    +++ b/htdocs/core/modules/modExternalSite.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -113,7 +113,6 @@ class modExternalSite extends DolibarrModules
     			'user'=>0
     		);
     		$r++;
    -
     	}
     }
     
    diff --git a/htdocs/core/modules/modFacture.class.php b/htdocs/core/modules/modFacture.class.php
    index dc7448fc8f2..0e818a973d6 100644
    --- a/htdocs/core/modules/modFacture.class.php
    +++ b/htdocs/core/modules/modFacture.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2018	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -48,7 +48,7 @@ class modFacture extends DolibarrModules
     		$this->numero = 30;
     
     		$this->family = "financial";
    -		$this->module_position = 10;
    +		$this->module_position = '10';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i', '', get_class($this));
     		$this->description = "Gestion des factures";
    @@ -114,13 +114,14 @@ class modFacture extends DolibarrModules
     				2=>array('file'=>'box_graph_invoices_permonth.php', 'enabledbydefaulton'=>'Home')
     		);
     
    -        // Cronjobs
    -        $this->cronjobs = array(
    -            0=>array('label'=>'RecurringInvoices', 'jobtype'=>'method', 'class'=>'compta/facture/class/facture-rec.class.php', 'objectname'=>'FactureRec', 'method'=>'createRecurringInvoices', 'parameters'=>'', 'comment'=>'Generate recurring invoices', 'frequency'=>1, 'unitfrequency'=>3600 * 24, 'priority'=>50, 'status'=>1, 'test'=>'$conf->facture->enabled'),
    -            // 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>3600, 'unitfrequency'=>3600)
    -        );
    +		// Cronjobs
    +		$arraydate=dol_getdate(dol_now());
    +		$datestart=dol_mktime(23, 0, 0, $arraydate['mon'], $arraydate['mday'], $arraydate['year']);
    +		$this->cronjobs = array(
    +			0=>array('label'=>'RecurringInvoices', 'jobtype'=>'method', 'class'=>'compta/facture/class/facture-rec.class.php', 'objectname'=>'FactureRec', 'method'=>'createRecurringInvoices', 'parameters'=>'', 'comment'=>'Generate recurring invoices', 'frequency'=>1, 'unitfrequency'=>3600 * 24, 'priority'=>50, 'status'=>1, 'test'=>'$conf->facture->enabled', 'datestart'=>$datestart),
    +		);
     
    -        // Permissions
    +		// Permissions
     		$this->rights = array();
     		$this->rights_class = 'facture';
     		$r = 0;
    @@ -212,9 +213,9 @@ class modFacture extends DolibarrModules
     			's.rowid'=>"IdCompany", 's.nom'=>'CompanyName', 's.code_client'=>'CustomerCode', 's.address'=>'Address', 's.zip'=>'Zip', 's.town'=>'Town', 'c.code'=>'CountryCode', 's.phone'=>'Phone',
     			's.siren'=>'ProfId1', 's.siret'=>'ProfId2', 's.ape'=>'ProfId3', 's.idprof4'=>'ProfId4', 's.code_compta'=>'CustomerAccountancyCode',
     			's.code_compta_fournisseur'=>'SupplierAccountancyCode', 's.tva_intra'=>'VATIntra',
    -			'f.rowid'=>"InvoiceId", 'f.facnumber'=>"InvoiceRef", 'f.ref_client'=>'RefCustomer',
    +			'f.rowid'=>"InvoiceId", 'f.ref'=>"InvoiceRef", 'f.ref_client'=>'RefCustomer',
     			'f.type'=>"Type", 'f.datec'=>"InvoiceDateCreation", 'f.datef'=>"DateInvoice", 'f.date_lim_reglement'=>"DateDue", 'f.total'=>"TotalHT",
    -			'f.total_ttc'=>"TotalTTC", 'f.tva'=>"TotalVAT", 'none.rest'=>'Rest', 'f.paye'=>"InvoicePaid", 'f.fk_statut'=>'InvoiceStatus',
    +			'f.total_ttc'=>"TotalTTC", 'f.tva'=>"TotalVAT", 'f.localtax1'=>'LocalTax1', 'f.localtax2'=>'LocalTax2', 'none.rest'=>'Rest', 'f.paye'=>"InvoicePaid", 'f.fk_statut'=>'InvoiceStatus',
     			'f.note_private'=>"NotePrivate", 'f.note_public'=>"NotePublic", 'f.fk_user_author'=>'CreatedById', 'uc.login'=>'CreatedByLogin',
     			'f.fk_user_valid'=>'ValidatedById', 'uv.login'=>'ValidatedByLogin', 'pj.ref'=>'ProjectRef', 'fd.rowid'=>'LineId', 'fd.description'=>"LineDescription",
     			'fd.subprice'=>"LineUnitPrice", 'fd.tva_tx'=>"LineVATRate", 'fd.qty'=>"LineQty", 'fd.total_ht'=>"LineTotalHT", 'fd.total_tva'=>"LineTotalVAT",
    @@ -233,8 +234,8 @@ class modFacture extends DolibarrModules
     		$this->export_TypeFields_array[$r] = array(
     			's.rowid'=>'Numeric', 's.nom'=>'Text', 's.code_client'=>'Text', 's.address'=>'Text', 's.zip'=>'Text', 's.town'=>'Text', 'c.code'=>'Text', 's.phone'=>'Text', 's.siren'=>'Text',
     			's.siret'=>'Text', 's.ape'=>'Text', 's.idprof4'=>'Text', 's.code_compta'=>'Text', 's.code_compta_fournisseur'=>'Text', 's.tva_intra'=>'Text',
    -			'f.rowid'=>'Numeric', 'f.facnumber'=>"Text", 'f.ref_client'=>'Text', 'f.type'=>"Numeric", 'f.datec'=>"Date", 'f.datef'=>"Date", 'f.date_lim_reglement'=>"Date",
    -			'f.total'=>"Numeric", 'f.total_ttc'=>"Numeric", 'f.tva'=>"Numeric", 'none.rest'=>"NumericCompute", 'f.paye'=>"Boolean", 'f.fk_statut'=>'Numeric',
    +			'f.rowid'=>'Numeric', 'f.ref'=>"Text", 'f.ref_client'=>'Text', 'f.type'=>"Numeric", 'f.datec'=>"Date", 'f.datef'=>"Date", 'f.date_lim_reglement'=>"Date",
    +			'f.total'=>"Numeric", 'f.total_ttc'=>"Numeric", 'f.tva'=>"Numeric", 'f.localtax1'=>'Numeric', 'f.localtax2'=>'Numeric', 'none.rest'=>"NumericCompute", 'f.paye'=>"Boolean", 'f.fk_statut'=>'Numeric',
     			'f.note_private'=>"Text", 'f.note_public'=>"Text", 'f.fk_user_author'=>'Numeric', 'uc.login'=>'Text', 'f.fk_user_valid'=>'Numeric', 'uv.login'=>'Text',
     			'pj.ref'=>'Text', 'fd.rowid'=>'Numeric', 'fd.label'=>'Text', 'fd.description'=>"Text", 'fd.subprice'=>"Numeric", 'fd.tva_tx'=>"Numeric",
     			'fd.qty'=>"Numeric", 'fd.total_ht'=>"Numeric", 'fd.total_tva'=>"Numeric", 'fd.total_ttc'=>"Numeric", 'fd.date_start'=>"Date", 'fd.date_end'=>"Date",
    @@ -272,7 +273,7 @@ class modFacture extends DolibarrModules
     		$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)';
     		$this->export_sql_end[$r] .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra3 on p.rowid = extra3.fk_object';
     		$this->export_sql_end[$r] .= ' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_facture';
    -		$this->export_sql_end[$r] .= ' AND f.entity IN ('.getEntity('facture').')';
    +		$this->export_sql_end[$r] .= ' AND f.entity IN ('.getEntity('invoice').')';
     		if (isset($user) && empty($user->rights->societe->client->voir)) $this->export_sql_end[$r] .= ' AND sc.fk_user = '.$user->id;
     		$r++;
     
    @@ -284,9 +285,9 @@ class modFacture extends DolibarrModules
     			's.rowid'=>"IdCompany", 's.nom'=>'CompanyName', 's.code_client'=>'CustomerCode', 's.address'=>'Address', 's.zip'=>'Zip', 's.town'=>'Town', 'c.code'=>'CountryCode', 's.phone'=>'Phone',
     			's.siren'=>'ProfId1', 's.siret'=>'ProfId2', 's.ape'=>'ProfId3', 's.idprof4'=>'ProfId4', 's.code_compta'=>'CustomerAccountancyCode',
     			's.code_compta_fournisseur'=>'SupplierAccountancyCode', 's.tva_intra'=>'VATIntra',
    -			'f.rowid'=>"InvoiceId", 'f.facnumber'=>"InvoiceRef",  'f.ref_client'=>'RefCustomer',
    +			'f.rowid'=>"InvoiceId", 'f.ref'=>"InvoiceRef",  'f.ref_client'=>'RefCustomer',
     			'f.type'=>"Type", 'f.datec'=>"InvoiceDateCreation", 'f.datef'=>"DateInvoice", 'f.date_lim_reglement'=>"DateDue", 'f.total'=>"TotalHT",
    -			'f.total_ttc'=>"TotalTTC", 'f.tva'=>"TotalVAT", 'none.rest'=>'Rest', 'f.paye'=>"InvoicePaid", 'f.fk_statut'=>'InvoiceStatus',
    +			'f.total_ttc'=>"TotalTTC", 'f.tva'=>"TotalVAT", 'f.localtax1'=>'LocalTax1', 'f.localtax2'=>'LocalTax2', 'none.rest'=>'Rest', 'f.paye'=>"InvoicePaid", 'f.fk_statut'=>'InvoiceStatus',
     			'f.note_private'=>"NotePrivate", 'f.note_public'=>"NotePublic", 'f.fk_user_author'=>'CreatedById', 'uc.login'=>'CreatedByLogin',
     			'f.fk_user_valid'=>'ValidatedById', 'uv.login'=>'ValidatedByLogin', 'pj.ref'=>'ProjectRef', 'p.rowid'=>'PaymentId', 'p.ref'=>'PaymentRef',
     			'p.amount'=>'AmountPayment', 'pf.amount'=>'AmountPaymentDistributedOnInvoice', 'p.datep'=>'DatePayment', 'p.num_paiement'=>'PaymentNumber',
    @@ -303,8 +304,8 @@ class modFacture extends DolibarrModules
     		$this->export_TypeFields_array[$r] = array(
     			's.rowid'=>'Numeric', 's.nom'=>'Text', 's.code_client'=>'Text', 's.address'=>'Text', 's.zip'=>'Text', 's.town'=>'Text', 'c.code'=>'Text', 's.phone'=>'Text', 's.siren'=>'Text',
     			's.siret'=>'Text', 's.ape'=>'Text', 's.idprof4'=>'Text', 's.code_compta'=>'Text', 's.code_compta_fournisseur'=>'Text', 's.tva_intra'=>'Text',
    -			'f.rowid'=>"Numeric", 'f.facnumber'=>"Text", 'f.ref_client'=>'Text', 'f.type'=>"Numeric", 'f.datec'=>"Date", 'f.datef'=>"Date", 'f.date_lim_reglement'=>"Date",
    -			'f.total'=>"Numeric", 'f.total_ttc'=>"Numeric", 'f.tva'=>"Numeric", 'none.rest'=>'NumericCompute', 'f.paye'=>"Boolean", 'f.fk_statut'=>'Status',
    +			'f.rowid'=>"Numeric", 'f.ref'=>"Text", 'f.ref_client'=>'Text', 'f.type'=>"Numeric", 'f.datec'=>"Date", 'f.datef'=>"Date", 'f.date_lim_reglement'=>"Date",
    +			'f.total'=>"Numeric", 'f.total_ttc'=>"Numeric", 'f.tva'=>"Numeric", 'f.localtax1'=>'Numeric', 'f.localtax2'=>'Numeric', 'none.rest'=>'NumericCompute', 'f.paye'=>"Boolean", 'f.fk_statut'=>'Status',
     			'f.note_private'=>"Text", 'f.note_public'=>"Text", 'f.fk_user_author'=>'Numeric', 'uc.login'=>'Text', 'f.fk_user_valid'=>'Numeric', 'uv.login'=>'Text',
     			'pj.ref'=>'Text', 'p.amount'=>'Numeric', 'pf.amount'=>'Numeric', 'p.rowid'=>'Numeric', 'p.ref'=>'Text', 'p.datep'=>'Date', 'p.num_paiement'=>'Numeric',
     			'p.fk_bank'=>'Numeric', 'p.note'=>'Text', 'pt.code'=>'Text', 'pt.libelle'=>'text', 'ba.ref'=>'Text'
    @@ -335,7 +336,7 @@ class modFacture extends DolibarrModules
     		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'bank as b ON b.rowid = p.fk_bank';
     		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'bank_account as ba ON ba.rowid = b.fk_account';
     		$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid';
    -		$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('facture').')';
    +		$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('invoice').')';
     		if (isset($user) && empty($user->rights->societe->client->voir)) $this->export_sql_end[$r] .=' AND sc.fk_user = '.$user->id;
     		$r++;
     	}
    diff --git a/htdocs/core/modules/modFckeditor.class.php b/htdocs/core/modules/modFckeditor.class.php
    index 812aa227ff6..6f297ce3dc6 100644
    --- a/htdocs/core/modules/modFckeditor.class.php
    +++ b/htdocs/core/modules/modFckeditor.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -45,7 +45,7 @@ class modFckeditor extends DolibarrModules
     		$this->numero = 2000;
     
     		$this->family = "technic";
    -		$this->module_position = 20;
    +		$this->module_position = '20';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Editeur WYSIWYG";
    diff --git a/htdocs/core/modules/modFicheinter.class.php b/htdocs/core/modules/modFicheinter.class.php
    index 7db2ac45e30..b1b18da2508 100644
    --- a/htdocs/core/modules/modFicheinter.class.php
    +++ b/htdocs/core/modules/modFicheinter.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -50,6 +50,7 @@ class modFicheinter extends DolibarrModules
             $this->numero = 70;
     
             $this->family = "crm";
    +        $this->module_position = '45';
             // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
             $this->name = preg_replace('/^mod/i','',get_class($this));
             $this->description = "Gestion des fiches d'intervention";
    @@ -196,7 +197,6 @@ class modFicheinter extends DolibarrModules
             $this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid';
             $this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('intervention').')';
             $r++;
    -
         }
     
     
    diff --git a/htdocs/core/modules/modFournisseur.class.php b/htdocs/core/modules/modFournisseur.class.php
    index 0dc4284df7c..16712d21ec2 100644
    --- a/htdocs/core/modules/modFournisseur.class.php
    +++ b/htdocs/core/modules/modFournisseur.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2013-2015 Philippe Grand	    <philippe.grand@atoo-net.com>
      *
    @@ -50,7 +50,7 @@ class modFournisseur extends DolibarrModules
     		// Family can be 'crm','financial','hr','projects','product','ecm','technic','other'
     		// It is used to group modules in module setup page
     		$this->family = "srm";
    -		$this->module_position = 10;
    +		$this->module_position = '10';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des fournisseurs";
    diff --git a/htdocs/core/modules/modGeoIPMaxmind.class.php b/htdocs/core/modules/modGeoIPMaxmind.class.php
    index 88bc8b7e8b9..81eddf86076 100644
    --- a/htdocs/core/modules/modGeoIPMaxmind.class.php
    +++ b/htdocs/core/modules/modGeoIPMaxmind.class.php
    @@ -65,9 +65,11 @@ class modGeoIPMaxmind extends DolibarrModules
     		$this->config_page_url = array("geoipmaxmind.php");
     
     		// Dependencies
    -		$this->depends = array();
    -		$this->requiredby = array();
    -		$this->phpmin = array(4,2,0);
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);
     		$this->phpmax = array();
     		$this->need_dolibarr_version = array(2,7,-1);	// Minimum version of Dolibarr required by module
     		$this->need_javascript_ajax = 1;
    diff --git a/htdocs/core/modules/modGravatar.class.php b/htdocs/core/modules/modGravatar.class.php
    index b6b9d4c9a59..7e1aec3efaa 100644
    --- a/htdocs/core/modules/modGravatar.class.php
    +++ b/htdocs/core/modules/modGravatar.class.php
    @@ -49,6 +49,8 @@ class modGravatar extends DolibarrModules
     		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
     		// It is used to group modules in module setup page
     		$this->family = "interface";
    +		// Module position in the family on 2 digits ('01', '10', '20', ...)
    +		$this->module_position = '75';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i', '', get_class($this));
     		// Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
    @@ -71,9 +73,11 @@ class modGravatar extends DolibarrModules
     		$this->config_page_url = array();
     
     		// Dependencies
    -		$this->depends = array(); // List of modules id that must be enabled if this module is enabled
    -		$this->requiredby = array(); // List of modules id to disable if this one is disabled
    -		$this->phpmin = array(4, 3); // Minimum version of PHP required by module
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5, 4); // Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(2, 7); // Minimum version of Dolibarr required by module
     		$this->langfiles = array();
     
    @@ -169,7 +173,7 @@ class modGravatar extends DolibarrModules
     		// $this->export_fields_array[$r]=array(
     		//	's.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','s.fk_pays'=>'Country','s.phone'=>'Phone',
     		//	's.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode',
    -		//	's.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",
    +		//	's.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",
     		//	'f.datef'=>"DateInvoice",'f.total'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus',
     		//	'f.note'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.price'=>"LineUnitPrice",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",
     		//	'fd.total_ht'=>"LineTotalHT",'fd.total_tva'=>"LineTotalTVA",'fd.total_ttc'=>"LineTotalTTC",'fd.date_start'=>"DateStart",'fd.date_end'=>"DateEnd",
    @@ -178,7 +182,7 @@ class modGravatar extends DolibarrModules
     		// $this->export_entities_array[$r]=array(
     		//	's.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company','s.phone'=>'company',
     		//	's.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company',
    -		//	'f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",
    +		//	'f.rowid'=>"invoice",'f.ref'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",
     		//	'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",'fd.price'=>"invoice_line",
     		//	'fd.total_ht'=>"invoice_line",'fd.total_tva'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",
     		//	'fd.date_start'=>"invoice_line",'fd.date_end'=>"invoice_line",'fd.fk_product'=>'product','p.ref'=>'product'
    diff --git a/htdocs/core/modules/modHRM.class.php b/htdocs/core/modules/modHRM.class.php
    index a209fdccf2e..5da8cf74e71 100644
    --- a/htdocs/core/modules/modHRM.class.php
    +++ b/htdocs/core/modules/modHRM.class.php
    @@ -20,7 +20,7 @@
      * \ingroup HRM
      * \brief   Description and activation file for module HRM
      */
    -include_once (DOL_DOCUMENT_ROOT . "/core/modules/DolibarrModules.class.php");
    +include_once DOL_DOCUMENT_ROOT . "/core/modules/DolibarrModules.class.php";
     
     /**
      * Class to describe and activate the HRM module
    @@ -66,27 +66,16 @@ class modHRM extends DolibarrModules
     		$this->config_page_url = array('admin_hrm.php@hrm');
     
     		// Dependencies
    -		$this->depends = array();
    -		$this->requiredby = array(/*"
    -			modSalaries,
    -			modExpenseReport,
    -			modHoliday
    -		"*/);
    -		$this->conflictwith = array();
    -		$this->phpmin = array (
    -			5,
    -			3
    -		); // Minimum version of PHP required by module
    -		$this->need_dolibarr_version = array (
    -			3,
    -			9
    -		); // Minimum version of Dolibarr required by module
    -		$this->langfiles = array (
    -			"hrm"
    -		);
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array(/*"modSalaries, modExpenseReport, modHoliday"*/);	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
    +		$this->need_dolibarr_version = array (3,9); // Minimum version of Dolibarr required by module
    +		$this->langfiles = array ("hrm");
     
    -		// Dictionnaries
    -		$this->dictionnaries=array();
    +		// Dictionaries
    +		$this->dictionaries=array();
     
     		// Constantes
     		$this->const = array ();
    @@ -131,7 +120,6 @@ class modHRM extends DolibarrModules
     		// Menus
     		//-------
     		$this->menu = 1;        // This module add menu entries. They are coded into menu manager.
    -
     	}
     
     	/**
    diff --git a/htdocs/core/modules/modHoliday.class.php b/htdocs/core/modules/modHoliday.class.php
    index 78a1c71fbcb..5b26a795dda 100644
    --- a/htdocs/core/modules/modHoliday.class.php
    +++ b/htdocs/core/modules/modHoliday.class.php
    @@ -1,9 +1,10 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Dimitri Mouillard 	<dmouillard@teclib.com>
      * Copyright (C) 2013      Juanjo Menent		<jmenent@2byte.es>
    + * Copyright (C) 2018      Charlene Benke		<charlie@patas-monkey.com>
      *
      * 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
    @@ -27,7 +28,7 @@
      *    \ingroup    holiday
      *    \brief      Description and activation file for module holiday
      */
    -include_once(DOL_DOCUMENT_ROOT ."/core/modules/DolibarrModules.class.php");
    +include_once DOL_DOCUMENT_ROOT ."/core/modules/DolibarrModules.class.php";
     
     
     /**
    @@ -53,7 +54,7 @@ class modHoliday extends DolibarrModules
     		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
     		// It is used to group modules in module setup page
     		$this->family = "hr";
    -		$this->module_position = 30;
    +		$this->module_position = '30';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		// Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
    @@ -69,16 +70,22 @@ class modHoliday extends DolibarrModules
     
     		// Data directories to create when module is enabled.
     		// Example: this->dirs = array("/mymodule/temp");
    -		$this->dirs = array();
    +		$this->dirs = array("/holiday/temp");
     		$r=0;
     
    +		// Config pages
    +		$this->config_page_url = array("holiday.php");
    +
    +
     		// Config pages. Put here list of php page names stored in admmin directory used to setup module.
     		// $this->config_page_url = array("holiday.php?leftmenu=setup@holiday");
     
     		// Dependencies
    -		$this->depends = array();		// List of modules id that must be enabled if this module is enabled
    -		$this->requiredby = array();	// List of modules id to disable if this one is disabled
    -		$this->phpmin = array(4,3);					// Minimum version of PHP required by module
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);					// Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(3,0);	// Minimum version of Dolibarr required by module
     		$this->langfiles = array("holiday");
     
    @@ -87,6 +94,28 @@ class modHoliday extends DolibarrModules
     		//                             1=>array('MYMODULE_MYNEWCONST2','chaine','myvalue','This is another constant to add',0) );
     		//                             2=>array('MAIN_MODULE_MYMODULE_NEEDSMARTY','chaine',1,'Constant to say module need smarty',0)
     		$this->const = array();			// List of particular constants to add when module is enabled (key, 'chaine', value, desc, visible, 0 or 'allentities')
    +		$r=0;
    +
    +		$this->const[$r][0] = "HOLIDAY_ADDON";
    +		$this->const[$r][1] = "chaine";
    +		$this->const[$r][2] = "mod_holiday_madonna";
    +		$this->const[$r][3] = 'Nom du gestionnaire de numerotation des congés';
    +		$this->const[$r][4] = 0;
    +		$r++;
    +
    +		$this->const[$r][0] = "HOLIDAY_ADDON_PDF";
    +		$this->const[$r][1] = "chaine";
    +		$this->const[$r][2] = "celebrate";
    +		$this->const[$r][3] = 'Name of PDF model of holiday';
    +		$this->const[$r][4] = 0;
    +		$r++;
    +
    +		$this->const[$r][0] = "HOLIDAY_ADDON_PDF_ODT_PATH";
    +		$this->const[$r][1] = "chaine";
    +		$this->const[$r][2] = "DOL_DATA_ROOT/doctemplates/holiday";
    +		$this->const[$r][3] = "";
    +		$this->const[$r][4] = 0;
    +		$r++;
     
     		// Array to add new pages in new tabs
     		//$this->tabs[] = array('data'=>'user:+paidholidays:CPTitreMenu:holiday:$user->rights->holiday->read:/holiday/list.php?mainmenu=hrm&id=__ID__');	// We avoid to get one tab for each module. RH data are already in RH tab.
    @@ -198,7 +227,7 @@ class modHoliday extends DolibarrModules
     		// $this->export_fields_array[$r]=array(
     		//	's.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','s.fk_pays'=>'Country','s.phone'=>'Phone',
     		//	's.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode',
    -		//	's.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",
    +		//	's.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",
     		//	'f.datef'=>"DateInvoice",'f.total'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus',
     		//	'f.note'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.price'=>"LineUnitPrice",'fd.tva_tx'=>"LineVATRate",
     		//	'fd.qty'=>"LineQty",'fd.total_ht'=>"LineTotalHT",'fd.total_tva'=>"LineTotalTVA",'fd.total_ttc'=>"LineTotalTTC",'fd.date_start'=>"DateStart",
    @@ -207,7 +236,7 @@ class modHoliday extends DolibarrModules
     		// $this->export_entities_array[$r]=array(
     		//	's.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company','s.phone'=>'company',
     		//	's.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company',
    -		//	'f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",
    +		//	'f.rowid'=>"invoice",'f.ref'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",
     		//	'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",'fd.price'=>"invoice_line",
     		//	'fd.total_ht'=>"invoice_line",'fd.total_tva'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",
     		//	'fd.date_start'=>"invoice_line",'fd.date_end'=>"invoice_line",'fd.fk_product'=>'product','p.ref'=>'product'
    @@ -215,7 +244,7 @@ class modHoliday extends DolibarrModules
     		// $this->export_alias_array[$r]=array(
     		//	's.rowid'=>"socid",'s.nom'=>'soc_name','s.address'=>'soc_adres','s.zip'=>'soc_zip','s.town'=>'soc_town','s.fk_pays'=>'soc_pays','s.phone'=>'soc_tel',
     		//	's.siren'=>'soc_siren','s.siret'=>'soc_siret','s.ape'=>'soc_ape','s.idprof4'=>'soc_idprof4','s.code_compta'=>'soc_customer_accountancy',
    -		//	's.code_compta_fournisseur'=>'soc_supplier_accountancy','f.rowid'=>"invoiceid",'f.facnumber'=>"ref",'f.datec'=>"datecreation",'f.datef'=>"dateinvoice",
    +		//	's.code_compta_fournisseur'=>'soc_supplier_accountancy','f.rowid'=>"invoiceid",'f.ref'=>"ref",'f.datec'=>"datecreation",'f.datef'=>"dateinvoice",
     		//	'f.total'=>"totalht",'f.total_ttc'=>"totalttc",'f.tva'=>"totalvat",'f.paye'=>"paid",'f.fk_statut'=>'status','f.note'=>"note",'fd.rowid'=>'lineid',
     		//	'fd.description'=>"linedescription",'fd.price'=>"lineprice",'fd.total_ht'=>"linetotalht",'fd.total_tva'=>"linetotaltva",'fd.total_ttc'=>"linetotalttc",
     		//	'fd.tva_tx'=>"linevatrate",'fd.qty'=>"lineqty",'fd.date_start'=>"linedatestart",'fd.date_end'=>"linedateend",'fd.fk_product'=>'productid',
    diff --git a/htdocs/core/modules/modImport.class.php b/htdocs/core/modules/modImport.class.php
    index 01d66644dc7..528b4531074 100644
    --- a/htdocs/core/modules/modImport.class.php
    +++ b/htdocs/core/modules/modImport.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -44,7 +44,7 @@ class modImport extends DolibarrModules
     		$this->numero = 250;
     
     		$this->family = "technic";
    -        $this->module_position = 70;
    +        $this->module_position = '70';
             // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Outils d'imports de donnees Dolibarr (via un assistant)";
    @@ -60,9 +60,11 @@ class modImport extends DolibarrModules
     		$this->config_page_url = array();
     
     		// Dependencies
    -		$this->depends = array();
    -		$this->requiredby = array();
    -		$this->phpmin = array(4,3,0);	// Need auto_detect_line_endings php option to solve MAC pbs.
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module - Need auto_detect_line_endings php option to solve MAC pbs.
     		$this->phpmax = array();
     		$this->need_dolibarr_version = array(2,7,-1);	// Minimum version of Dolibarr required by module
     		$this->need_javascript_ajax = 1;
    @@ -89,6 +91,5 @@ class modImport extends DolibarrModules
     		// Menus
     		//-------
     		$this->menu = 1;        // This module add menu entries. They are coded into menu manager.
    -
     	}
     }
    diff --git a/htdocs/core/modules/modIncoterm.class.php b/htdocs/core/modules/modIncoterm.class.php
    index 7d4d1251f31..be83d83311b 100644
    --- a/htdocs/core/modules/modIncoterm.class.php
    +++ b/htdocs/core/modules/modIncoterm.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -65,9 +65,11 @@ class modIncoterm extends DolibarrModules
     		$this->config_page_url = array();
     
     		// Dependencies
    -		$this->depends = array();		// List of modules id that must be enabled if this module is enabled
    -		$this->requiredby = array();	// List of modules id to disable if this one is disabled
    -		$this->phpmin = array(5,0);					// Minimum version of PHP required by module
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(3,0);	// Minimum version of Dolibarr required by module
     		$this->langfiles = array("incoterm");
     
    diff --git a/htdocs/core/modules/modLabel.class.php b/htdocs/core/modules/modLabel.class.php
    index 2d91fd121bb..6dd268fc360 100644
    --- a/htdocs/core/modules/modLabel.class.php
    +++ b/htdocs/core/modules/modLabel.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2007-2009 Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2007-2009 Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -44,7 +44,7 @@ class modLabel extends DolibarrModules
     		$this->numero = 60;
     
     		$this->family = "technic";
    -		$this->module_position = 80;
    +		$this->module_position = '75';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des etiquettes";
    @@ -56,9 +56,12 @@ class modLabel extends DolibarrModules
     		// Data directories to create when module is enabled
     		$this->dirs = array("/label/temp");
     
    -		// Dependancies
    -		$this->depends = array();
    -		$this->requiredby = array();
    +		// Dependencies
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     
     		// Config pages
     		// $this->config_page_url = array("label.php");
    @@ -87,7 +90,6 @@ class modLabel extends DolibarrModules
     		$this->rights[4][1] = 'Supprimer les etiquettes'; // libelle de la permission
     		$this->rights[4][3] = 0; // La permission est-elle une permission par defaut
     		$this->rights[4][4] = 'supprimer';
    -
     	}
     
     	/**
    diff --git a/htdocs/core/modules/modLdap.class.php b/htdocs/core/modules/modLdap.class.php
    index 0f183bd6c76..88fb7ba67a9 100644
    --- a/htdocs/core/modules/modLdap.class.php
    +++ b/htdocs/core/modules/modLdap.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -43,6 +43,8 @@ class modLdap extends DolibarrModules
     		$this->numero = 200;
     
     		$this->family = "interface";
    +		// Module position in the family on 2 digits ('01', '10', '20', ...)
    +		$this->module_position = '30';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Synchronisation Ldap";
    @@ -60,9 +62,12 @@ class modLdap extends DolibarrModules
     		// Config pages
     		$this->config_page_url = array("ldap.php");
     
    -		// Dependancies
    -		$this->depends = array();
    -		$this->requiredby = array();
    +		// Dependencies
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     
     		// Constants
     		$this->const = array(
    diff --git a/htdocs/core/modules/modLoan.class.php b/htdocs/core/modules/modLoan.class.php
    index 51779f6ffc5..662ded1da21 100644
    --- a/htdocs/core/modules/modLoan.class.php
    +++ b/htdocs/core/modules/modLoan.class.php
    @@ -63,9 +63,11 @@ class modLoan extends DolibarrModules
     		$this->config_page_url = array('loan.php');
     
     		// Dependencies
    -		$this->depends = array();
    -		$this->requiredby = array();
    -		$this->conflictwith = array();
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->langfiles = array("loan");
     
     		// Constants
    @@ -143,7 +145,6 @@ class modLoan extends DolibarrModules
     		// Exports
     		//--------
     		$r=0;
    -
     	}
     
     
    diff --git a/htdocs/core/modules/modMailing.class.php b/htdocs/core/modules/modMailing.class.php
    index 46b31a08696..1f600cb9f12 100644
    --- a/htdocs/core/modules/modMailing.class.php
    +++ b/htdocs/core/modules/modMailing.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -44,7 +44,12 @@ class modMailing extends DolibarrModules
     		$this->db = $db;
     		$this->numero = 22;
     
    -		$this->family = "technic";
    +		// Family can be 'base' (core modules),'crm','financial','hr','projects','products','ecm','technic' (transverse modules),'interface' (link with external tools),'other','...'
    +		// It is used to group modules by family in module setup page
    +		$this->family = "interface";
    +		// Module position in the family on 2 digits ('01', '10', '20', ...)
    +		$this->module_position = '11';
    +
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des EMailings";
    @@ -57,8 +62,11 @@ class modMailing extends DolibarrModules
     		$this->dirs = array("/mailing/temp");
     
     		// Dependencies
    -		$this->depends = array();
    -		$this->requiredby = array();
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->langfiles = array("mails");
     
     		// Config pages
    @@ -130,7 +138,6 @@ class modMailing extends DolibarrModules
     		// Menus
     		//-------
     		$this->menu = 1;        // This module add menu entries. They are coded into menu manager.
    -
     	}
     
     
    diff --git a/htdocs/core/modules/modMailmanSpip.class.php b/htdocs/core/modules/modMailmanSpip.class.php
    index 9a019db7fea..d82c8040c02 100644
    --- a/htdocs/core/modules/modMailmanSpip.class.php
    +++ b/htdocs/core/modules/modMailmanSpip.class.php
    @@ -43,7 +43,11 @@ class modMailmanSpip extends DolibarrModules
     		$this->db = $db;
     		$this->numero = 105;
     
    +		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
    +		// It is used to group modules in module setup page
     		$this->family = "interface";
    +		// Module position in the family on 2 digits ('01', '10', '20', ...)
    +		$this->module_position = '70';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Mailman or Spip interface for member module";
    @@ -58,8 +62,11 @@ class modMailmanSpip extends DolibarrModules
     		$this->dirs = array();
     
     		// Dependencies
    -		$this->depends = array('modAdherent');
    -		$this->requiredby = array();
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array('modAdherent');		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     
     		// Config pages
     		$this->config_page_url = array('mailman.php');
    @@ -80,6 +87,5 @@ class modMailmanSpip extends DolibarrModules
     		// Menus
     		//-------
     		$this->menu = 1;        // This module add menu entries. They are coded into menu manager.
    -
     	}
     }
    diff --git a/htdocs/core/modules/modMargin.class.php b/htdocs/core/modules/modMargin.class.php
    index 53fba120656..58de64c8aad 100644
    --- a/htdocs/core/modules/modMargin.class.php
    +++ b/htdocs/core/modules/modMargin.class.php
    @@ -48,7 +48,7 @@ class modMargin extends DolibarrModules
     		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
     		// It is used to group modules in module setup page
     		$this->family = "financial";
    -		$this->module_position = 550;
    +		$this->module_position = '55';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		// Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
    @@ -68,9 +68,11 @@ class modMargin extends DolibarrModules
     		$this->config_page_url = array("margin.php@margin");
     
     		// Dependencies
    -		$this->depends = array("modPropale", "modProduct");		// List of modules id that must be enabled if this module is enabled
    -		$this->requiredby = array();	// List of modules id to disable if this one is disabled
    -		$this->phpmin = array(5,1);					// Minimum version of PHP required by module
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array("modPropale", "modProduct");		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(3,2);	// Minimum version of Dolibarr required by module
     		$this->langfiles = array("margins");
     
    diff --git a/htdocs/core/modules/modModuleBuilder.class.php b/htdocs/core/modules/modModuleBuilder.class.php
    index b6ba08a84a5..7f4132d7e44 100644
    --- a/htdocs/core/modules/modModuleBuilder.class.php
    +++ b/htdocs/core/modules/modModuleBuilder.class.php
    @@ -1,5 +1,6 @@
     <?php
     /* Copyright (C) 2017   Laurent Destailleur  <eldy@users.sourcefore.net>
    + * Copyright (C) 2018   Nicolas ZABOURI   <info@inovea-conseil.com>
      *
      * 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
    @@ -48,7 +49,7 @@ class modModuleBuilder extends DolibarrModules
             $this->name = preg_replace('/^mod/i','',get_class($this));
             $this->description = "A RAD (Rapid Application Development) tool to help developers to build their own module.";
     		// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
    -        $this->version = 'experimental';
    +        $this->version = 'dolibarr';
             // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
             $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
             // Name of image file used for this module.
    @@ -59,9 +60,9 @@ class modModuleBuilder extends DolibarrModules
     
             // Config pages
             //-------------
    -        $this->config_page_url = array();
    +        $this->config_page_url = array('setup.php@modulebuilder');
     
    -        // Dependancies
    +        // Dependencies
             //-------------
     	    $this->hidden = false;	// A condition to disable module
     	    $this->depends = array();		// List of modules id that must be enabled if this module is enabled
    @@ -97,6 +98,5 @@ class modModuleBuilder extends DolibarrModules
                 'enabled'=>'$conf->modulebuilder->enabled && preg_match(\'/^(admintools|all)/\',$leftmenu) && ($user->admin || $conf->global->MODULEBUILDER_FOREVERYONE)',
                 'target'=>'_modulebuilder',
                 'user'=>0);
    -
         }
     }
    diff --git a/htdocs/core/modules/modMultiCurrency.class.php b/htdocs/core/modules/modMultiCurrency.class.php
    index 2d443c2e7bb..a12ddea6cb0 100644
    --- a/htdocs/core/modules/modMultiCurrency.class.php
    +++ b/htdocs/core/modules/modMultiCurrency.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2016 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2016 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016      Pierre-Henry Favre  <phf@atm-consulting.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -54,7 +54,7 @@ class modMultiCurrency extends DolibarrModules
     		// It is used to group modules in module setup page
     		$this->family = "technic";
     		// Module position in the family
    -		$this->module_position = 40;
    +		$this->module_position = '40';
     
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i', '', get_class($this));
    @@ -88,7 +88,7 @@ class modMultiCurrency extends DolibarrModules
     		$this->depends = array(); // List of modules id that must be enabled if this module is enabled
     		$this->requiredby = array(); // List of modules id to disable if this one is disabled
     		$this->conflictwith = array(); // List of modules id this module is in conflict with
    -		$this->phpmin = array(5, 0); // Minimum version of PHP required by module
    +		$this->phpmin = array(5, 4); // Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(3, 0); // Minimum version of Dolibarr required by module
     		$this->langfiles = array("multicurrency");
     
    @@ -221,7 +221,7 @@ class modMultiCurrency extends DolibarrModules
     		// $this->export_fields_array[$r]=array(
     		//	's.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','s.fk_pays'=>'Country','s.phone'=>'Phone',
     		//	's.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode',
    -		//	's.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",
    +		//	's.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",
     		//	'f.datef'=>"DateInvoice",'f.total'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus',
     		//	'f.note'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.price'=>"LineUnitPrice",'fd.tva_tx'=>"LineVATRate",
     		//	'fd.qty'=>"LineQty",'fd.total_ht'=>"LineTotalHT",'fd.total_tva'=>"LineTotalTVA",'fd.total_ttc'=>"LineTotalTTC",'fd.date_start'=>"DateStart",
    @@ -231,7 +231,7 @@ class modMultiCurrency extends DolibarrModules
     		//	't.date'=>'Date', 't.qte'=>'Numeric', 't.poids'=>'Numeric', 't.fad'=>'Numeric', 't.paq'=>'Numeric', 't.stockage'=>'Numeric', 't.fadparliv'=>'Numeric',
     		//	't.livau100'=>'Numeric', 't.forfait'=>'Numeric', 's.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text',
     		//	's.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text',
    -		//	'f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",
    +		//	'f.ref'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",
     		//	'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'fd.description'=>"Text",'fd.subprice'=>"Numeric",
     		//	'fd.tva_tx'=>"Numeric",'fd.qty'=>"Numeric",'fd.total_ht'=>"Numeric",'fd.total_tva'=>"Numeric",'fd.total_ttc'=>"Numeric",'fd.date_start'=>"Date",
     		//	'fd.date_end'=>"Date",'fd.special_code'=>'Numeric','fd.product_type'=>"Numeric",'fd.fk_product'=>'List:product:label','p.ref'=>'Text','p.label'=>'Text',
    @@ -240,7 +240,7 @@ class modMultiCurrency extends DolibarrModules
     		// $this->export_entities_array[$r]=array(
     		//	's.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company','s.phone'=>'company',
     		//	's.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company',
    -		//	'f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",
    +		//	'f.rowid'=>"invoice",'f.ref'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",
     		//	'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",
     		//	'fd.price'=>"invoice_line",'fd.total_ht'=>"invoice_line",'fd.total_tva'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva_tx'=>"invoice_line",
     		//	'fd.qty'=>"invoice_line",'fd.date_start'=>"invoice_line",'fd.date_end'=>"invoice_line",'fd.fk_product'=>'product','p.ref'=>'product'
    diff --git a/htdocs/core/modules/modNotification.class.php b/htdocs/core/modules/modNotification.class.php
    index cc016d294b5..21d5f81eb98 100644
    --- a/htdocs/core/modules/modNotification.class.php
    +++ b/htdocs/core/modules/modNotification.class.php
    @@ -41,7 +41,11 @@ class modNotification extends DolibarrModules
     		$this->db = $db;
     		$this->numero = 600;
     
    +		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
    +		// It is used to group modules in module setup page
     		$this->family = "interface";
    +		// Module position in the family on 2 digits ('01', '10', '20', ...)
    +		$this->module_position = '01';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "EMail notifications (push) on business Dolibarr events";
    @@ -55,8 +59,11 @@ class modNotification extends DolibarrModules
     		$this->dirs = array();
     
     		// Dependencies
    -		$this->depends = array();
    -		$this->requiredby = array();
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->langfiles = array("mails");
     
     		// Config pages
    diff --git a/htdocs/core/modules/modOauth.class.php b/htdocs/core/modules/modOauth.class.php
    index 3177e41e787..086dac64bed 100644
    --- a/htdocs/core/modules/modOauth.class.php
    +++ b/htdocs/core/modules/modOauth.class.php
    @@ -40,19 +40,19 @@ class modOauth extends DolibarrModules
          *
          *  @param      DoliDB      $db      Database handler
          */
    -    function  __construct($db)
    +    function __construct($db)
         {
             $this->db = $db ;
             $this->numero = 66000;
             // Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
             // It is used to group modules in module setup page
             $this->family = "interface";
    -        $this->module_position = 510;
    +        $this->module_position = '31';
             // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
             $this->name = preg_replace('/^mod/i','',get_class($this));
             // Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
             $this->description = "Enable OAuth authentication";
    -		// Possible values for version are: 'development', 'experimental', 'dolibarr' or 'dolibarr_deprecated' or version
    +        // Possible values for version are: 'development', 'experimental', 'dolibarr' or 'dolibarr_deprecated' or version
             $this->version = 'dolibarr';
             $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
             // Name of image file used for this module.
    @@ -67,9 +67,11 @@ class modOauth extends DolibarrModules
             $this->config_page_url = array("oauth.php");
     
             // Dependencies
    -        $this->depends = array();
    -        $this->requiredby = array();
    -        $this->phpmin = array(5,1);                     // Minimum version of PHP required by module
    +        $this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module                    // Minimum version of PHP required by module
             $this->need_dolibarr_version = array(3,7,-2);   // Minimum version of Dolibarr required by module
             $this->conflictwith = array();
             $this->langfiles = array("oauth");
    @@ -117,8 +119,6 @@ class modOauth extends DolibarrModules
             //                        'user'=>0);                     // 0=Menu for internal users, 1=external users, 2=both
     
             //$r++;
    -
    -
         }
     
     
    diff --git a/htdocs/core/modules/modOpenSurvey.class.php b/htdocs/core/modules/modOpenSurvey.class.php
    index fcee9f585aa..be0b67950d7 100644
    --- a/htdocs/core/modules/modOpenSurvey.class.php
    +++ b/htdocs/core/modules/modOpenSurvey.class.php
    @@ -23,7 +23,7 @@
      *      \ingroup    opensurvey
      *      \brief      Description and activation file for module OpenSurvey
      */
    -include_once(DOL_DOCUMENT_ROOT ."/core/modules/DolibarrModules.class.php");
    +include_once DOL_DOCUMENT_ROOT ."/core/modules/DolibarrModules.class.php";
     
     
     /**
    @@ -52,7 +52,7 @@ class modOpenSurvey extends DolibarrModules
     		// Family can be 'crm','financial','hr','projects','product','technic','other'
     		// It is used to group modules in module setup page
     		$this->family = "portal";
    -		$this->module_position = 40;
    +		$this->module_position = '40';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		// Module description used if translation string 'ModuleXXXDesc' not found (XXX is value MyModule)
    @@ -72,9 +72,11 @@ class modOpenSurvey extends DolibarrModules
     		//$this->dirs[1] = DOL_DATA_ROOT.'/mymodule/temp;
     
     		// Dependencies
    -		$this->depends = array();		// List of modules id that must be enabled if this module is enabled
    -		$this->requiredby = array();	// List of modules id to disable if this one is disabled
    -		$this->phpmin = array(4,1);					// Minimum version of PHP required by module
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(3,4,0);	// Minimum version of Dolibarr required by module
     
     		// Constants
    diff --git a/htdocs/core/modules/modPaybox.class.php b/htdocs/core/modules/modPaybox.class.php
    index 727e6723ce2..5b1d96332da 100644
    --- a/htdocs/core/modules/modPaybox.class.php
    +++ b/htdocs/core/modules/modPaybox.class.php
    @@ -69,9 +69,11 @@ class modPayBox extends DolibarrModules
             $this->config_page_url = array("paybox.php@paybox");
     
             // Dependencies
    -        $this->depends = array();		// List of modules id that must be enabled if this module is enabled
    -        $this->requiredby = array();	// List of modules id to disable if this one is disabled
    -        $this->phpmin = array(4,1);					// Minimum version of PHP required by module
    +        $this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
             $this->need_dolibarr_version = array(2,6);	// Minimum version of Dolibarr required by module
             $this->langfiles = array("paybox");
     
    @@ -166,7 +168,7 @@ class modPayBox extends DolibarrModules
             //     's.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town',
             //     's.fk_pays'=>'Country','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3',
             //     's.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode',
    -        //     'f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total'=>"TotalHT",
    +        //     'f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total'=>"TotalHT",
             //     'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note'=>"InvoiceNote",'fd.rowid'=>'LineId',
             //     'fd.description'=>"LineDescription",'fd.price'=>"LineUnitPrice",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",'fd.total_ht'=>"LineTotalHT",
             //     'fd.total_tva'=>"LineTotalTVA",'fd.total_ttc'=>"LineTotalTTC",'fd.date_start'=>"DateStart",'fd.date_end'=>"DateEnd",'fd.fk_product'=>'ProductId','p.ref'=>'ProductRef',
    @@ -174,7 +176,7 @@ class modPayBox extends DolibarrModules
             // $this->export_entities_array[$r]=array(
             //     's.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company',
             //     's.fk_pays'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company',
    -        //     's.code_compta'=>'company','s.code_compta_fournisseur'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",
    +        //     's.code_compta'=>'company','s.code_compta_fournisseur'=>'company','f.rowid'=>"invoice",'f.ref'=>"invoice",'f.datec'=>"invoice",
             //     'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice',
             //     'f.note'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",'fd.price'=>"invoice_line",'fd.total_ht'=>"invoice_line",
             //     'fd.total_tva'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",'fd.date_start'=>"invoice_line",
    diff --git a/htdocs/core/modules/modPaypal.class.php b/htdocs/core/modules/modPaypal.class.php
    index e713685691c..01f90842ec5 100644
    --- a/htdocs/core/modules/modPaypal.class.php
    +++ b/htdocs/core/modules/modPaypal.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2011      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2011      Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -70,9 +70,11 @@ class modPaypal extends DolibarrModules
             $this->config_page_url = array("paypal.php@paypal");
     
             // Dependencies
    -        $this->depends = array();						// List of modules id that must be enabled if this module is enabled
    -        $this->requiredby = array('modPaypalPlus');		// List of modules id to disable if this one is disabled
    -        $this->phpmin = array(5,2);						// Minimum version of PHP required by module
    +        $this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array('modPaypalPlus');	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
             $this->need_dolibarr_version = array(3,0);		// Minimum version of Dolibarr required by module
             $this->langfiles = array("paypal");
     
    @@ -105,21 +107,21 @@ class modPaypal extends DolibarrModules
             // Main menu entries
             $this->menus = array();			// List of menus to add
             $r=0;
    -        $this->menu[$r]=array(
    -        'fk_menu'=>'fk_mainmenu=billing,fk_leftmenu=customers_bills_payment',		    // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
    -        'mainmenu'=>'billing',
    -        'leftmenu'=>'customers_bills_payment_paypal',
    -        'type'=>'left',			                // This is a Left menu entry
    -        'titre'=>'PaypalImportPayment',
    -        'url'=>'/paypal/importpayments.php',
    -        'langs'=>'paypal',	        // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
    -        'position'=>501,
    -        'enabled'=>'$conf->paypal->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 2',  // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
    -        'perms'=>'$user->rights->banque->consolidate',	// Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
    -        'target'=>'',
    -        'user'=>2
    +        /*$this->menu[$r]=array(
    +	        'fk_menu'=>'fk_mainmenu=billing,fk_leftmenu=customers_bills_payment',		    // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
    +	        'mainmenu'=>'billing',
    +	        'leftmenu'=>'customers_bills_payment_paypal',
    +	        'type'=>'left',			                // This is a Left menu entry
    +	        'titre'=>'PaypalImportPayment',
    +	        'url'=>'/paypal/importpayments.php',
    +	        'langs'=>'paypal',	        // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
    +	        'position'=>501,
    +	        'enabled'=>'$conf->paypal->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 2',  // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
    +	        'perms'=>'$user->rights->banque->consolidate',	// Use 'perms'=>'$user->rights->mymodule->level1->level2' if you want your menu with a permission rules
    +	        'target'=>'',
    +	        'user'=>2
             );				                // 0=Menu for internal users, 1=external users, 2=both
    -        $r++;
    +        $r++;*/
     
             // Add here entries to declare new menus
             // Example to declare the Top Menu entry:
    @@ -172,7 +174,7 @@ class modPaypal extends DolibarrModules
             // $this->export_fields_array[$r]=array(
             //    's.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','s.fk_pays'=>'Country','s.phone'=>'Phone',
             //    's.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode',
    -        //    's.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",
    +        //    's.code_compta_fournisseur'=>'SupplierAccountancyCode','f.rowid'=>"InvoiceId",'f.ref'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",
             //    'f.datef'=>"DateInvoice",'f.total'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus',
             //    'f.note'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.price'=>"LineUnitPrice",'fd.tva_tx'=>"LineVATRate",
             //    'fd.qty'=>"LineQty",'fd.total_ht'=>"LineTotalHT",'fd.total_tva'=>"LineTotalTVA",'fd.total_ttc'=>"LineTotalTTC",'fd.date_start'=>"DateStart",
    @@ -181,7 +183,7 @@ class modPaypal extends DolibarrModules
             // $this->export_entities_array[$r]=array(
             //    's.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company','s.phone'=>'company',
             //    's.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company',
    -        //    'f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",
    +        //    'f.rowid'=>"invoice",'f.ref'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",
             //    'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",
             //    'fd.price'=>"invoice_line",'fd.total_ht'=>"invoice_line",'fd.total_tva'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva_tx'=>"invoice_line",
             //    'fd.qty'=>"invoice_line",'fd.date_start'=>"invoice_line",'fd.date_end'=>"invoice_line",'fd.fk_product'=>'product','p.ref'=>'product'
    diff --git a/htdocs/core/modules/modPrelevement.class.php b/htdocs/core/modules/modPrelevement.class.php
    index 4d91c937d99..2753c7e76ab 100644
    --- a/htdocs/core/modules/modPrelevement.class.php
    +++ b/htdocs/core/modules/modPrelevement.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2011 Juanjo Menent 		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -48,7 +48,7 @@ class modPrelevement extends DolibarrModules
     		$this->numero = 57;
     
     		$this->family = "financial";
    -		$this->module_position = 520;
    +		$this->module_position = '52';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des Prelevements";
    @@ -63,9 +63,12 @@ class modPrelevement extends DolibarrModules
     		// Data directories to create when module is enabled
     		$this->dirs = array("/prelevement/temp","/prelevement/receipts");
     
    -		// Dependancies
    -		$this->depends = array("modFacture","modBanque");
    -		$this->requiredby = array();
    +		// Dependencies
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array("modFacture","modBanque");		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     
     		// Config pages
     		$this->config_page_url = array("prelevement.php");
    @@ -132,7 +135,6 @@ class modPrelevement extends DolibarrModules
     		// Menus
     		//-------
     		$this->menu = 1;        // This module add menu entries. They are coded into menu manager.
    -
     	}
     
     
    diff --git a/htdocs/core/modules/modPrinting.class.php b/htdocs/core/modules/modPrinting.class.php
    index 1aa36bdacce..7e16b26d8ab 100644
    --- a/htdocs/core/modules/modPrinting.class.php
    +++ b/htdocs/core/modules/modPrinting.class.php
    @@ -40,17 +40,17 @@ class modPrinting extends DolibarrModules
          *
          *  @param      DoliDB      $db      Database handler
          */
    -    function  __construct($db)
    +    function __construct($db)
         {
             $this->db = $db ;
             $this->numero = 64000;
             // Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
             // It is used to group modules in module setup page
             $this->family = "interface";
    -        $this->module_position = 520;
    +        $this->module_position = '52';
             // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
             $this->name = preg_replace('/^mod/i','',get_class($this));
    -		// Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
    +        // Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
             $this->description = "Enable Direct Printing System.";
             $this->version = 'dolibarr';    // 'development' or 'experimental' or 'dolibarr' or version
             $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
    @@ -66,9 +66,11 @@ class modPrinting extends DolibarrModules
             $this->config_page_url = array("printing.php@printing");
     
             // Dependencies
    -        $this->depends = array();
    -        $this->requiredby = array();
    -        $this->phpmin = array(5,1);                     // Minimum version of PHP required by module
    +        $this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
             $this->need_dolibarr_version = array(3,7,-2);   // Minimum version of Dolibarr required by module
             $this->conflictwith = array();
             $this->langfiles = array("printing");
    @@ -115,7 +117,5 @@ class modPrinting extends DolibarrModules
                                     'user'=>0);                     // 0=Menu for internal users, 1=external users, 2=both
     
             $r++;
    -
    -
         }
     }
    diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php
    index bff202ba6e6..e00df796409 100644
    --- a/htdocs/core/modules/modProduct.class.php
    +++ b/htdocs/core/modules/modProduct.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012-2013 Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2014      Christophe Battarel	<contact@altairis.fr>
      * Copyright (C) 2014      Cedric Gross			<c.gross@kreiz-it.fr>
    @@ -50,7 +50,7 @@ class modProduct extends DolibarrModules
     		$this->numero = 50;
     
     		$this->family = "products";
    -		$this->module_position = 20;
    +		$this->module_position = '20';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Product management";
    @@ -65,8 +65,11 @@ class modProduct extends DolibarrModules
     		$this->dirs = array("/product/temp");
     
     		// Dependencies
    -		$this->depends = array();
    -		$this->requiredby = array("modStock","modBarcode","modProductBatch");
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array("modStock","modBarcode","modProductBatch");	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     
     		// Config pages
     		$this->config_page_url = array("product.php@product");
    @@ -130,11 +133,18 @@ class modProduct extends DolibarrModules
     		$this->rights[$r][4] = 'export';
             $r++;
     
    +		$this->rights[$r][0] = 39;
    +		$this->rights[$r][1] = 'Ignore minimum price';
    +		$this->rights[$r][2] = 'r';
    +		$this->rights[$r][3] = 0;
    +		$this->rights[$r][4] = 'ignore_price_min_advance';
    +        $r++;
    +
             // Menus
             //-------
     
    -        $this->menu = 1;        // This module add menu entries. They are coded into menu manager.
    -		/* We can't enable this here because it must be enabled in both product and service module and this create duplicate insert
    +        $this->menu = 1;        // This module adds menu entries. They are coded into menu manager.
    +		/* We can't enable this here because it must be enabled in both product and service module and this creates duplicate inserts
     		$r=0;
     		$this->menu[$r]=array(	'fk_menu'=>'fk_mainmenu=home,fk_leftmenu=admintools',		    // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
     								'type'=>'left',			                // This is a Left menu entry
    @@ -285,20 +295,49 @@ class modProduct extends DolibarrModules
     		//--------
     		$r=0;
     
    +		// Import list of products
    +
     		$r++;
     		$this->import_code[$r]=$this->rights_class.'_'.$r;
     		$this->import_label[$r]="Products";	// Translation key
     		$this->import_icon[$r]=$this->picto;
    -		$this->import_entities_array[$r]=array();		// We define here only fields that use another icon that the one defined into import_icon
    +		$this->import_entities_array[$r]=array();		// We define here only fields that use a different icon from the one defined in import_icon
     		$this->import_tables_array[$r]=array('p'=>MAIN_DB_PREFIX.'product','extra'=>MAIN_DB_PREFIX.'product_extrafields');
     		$this->import_tables_creator_array[$r]=array('p'=>'fk_user_author');	// Fields to store import user id
    -		$this->import_fields_array[$r]=array(
    -			'p.ref'=>"Ref*",'p.label'=>"Label*",'p.description'=>"Description",'p.url'=>"PublicUrl",'p.accountancy_code_sell'=>"ProductAccountancySellCode",
    -			'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume",
    -			'p.weight'=>"Weight",'p.duration'=>"Duration",'p.customcode'=>'CustomCode','p.price'=>"SellingPriceHT",'p.price_ttc'=>"SellingPriceTTC",
    -			'p.tva_tx'=>'VATRate', 'p.tosell'=>"OnSell*",'p.tobuy'=>"OnBuy*",'p.fk_product_type'=>"Type*",'p.finished'=>'Nature','p.datec'=>'DateCreation'
    +		$this->import_fields_array[$r]=array(//field order as per structure of table llx_product
    +	        'p.ref' => "Ref*",
    +            'p.datec' => 'DateCreation',
    +            'p.label' => "Label*",
    +            'p.description' => "Description",
    +            'p.note_public' => "PublicNote",//public note
    +            'p.note' => "PrivateNote",//private note
    +            'p.customcode' => 'CustomCode',
    +            'p.price' => "SellingPriceHT",//without tax
    +            'p.price_ttc' => "SellingPriceTTC",//with tax
    +            'p.price_base_type' => "PriceBaseType",//price base: with-tax (TTC) or without (HT) tax. Displays accordingly in Product card
    +            'p.tva_tx' => 'VATRate',
    +            'p.tosell' => "OnSell*",
    +            'p.tobuy' => "OnBuy*",
    +            'p.fk_product_type' => "Type*",
    +            'p.duration' => "Duration",///duration of service
    +            'p.url' => "PublicUrl",
    +            'p.accountancy_code_sell' => "ProductAccountancySellCode",
    +            'p.accountancy_code_buy' => "ProductAccountancyBuyCode",
    +            'p.weight' => "Weight",
    +            'p.length' => "Length",
    +            'p.width' => "Width",
    +            'p.height' => "Height",
    +            'p.surface' => "Surface",
    +            'p.volume' => "Volume",
    +            'p.finished' => 'Nature'
     		);
    -		if (! empty($conf->stock->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.seuil_stock_alerte'=>'StockLimit','p.desiredstock'=>'DesiredStock','p.pmp'=>'PMPValue'));
    +        if (!empty($conf->stock->enabled)) {//if Stock module enabled
    +            $this->import_fields_array[$r] = array_merge($this->import_fields_array[$r], array(
    +                'p.seuil_stock_alerte' => 'StockLimit',//lower limit for warning
    +                'p.pmp' => 'PMPValue',//weighted average price
    +                'p.desiredstock' => 'DesiredStock'//desired stock for replenishment feature
    +            ));
    +        }
     		if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.cost_price'=>'CostPrice'));
     		if (is_object($mysoc) && $mysoc->useNPR()) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.recuperableonly'=>'NPR'));
     		if (is_object($mysoc) && $mysoc->useLocalTax(1)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.localtax1_tx'=>'LT1', 'p.localtax1_type'=>'LT1Type'));
    @@ -321,14 +360,64 @@ class modProduct extends DolibarrModules
     		}
     		// End add extra fields
     		$this->import_fieldshidden_array[$r]=array('extra.fk_object'=>'lastrowid-'.MAIN_DB_PREFIX.'product');    // aliastable.field => ('user->id' or 'lastrowid-'.tableparent)
    -		$this->import_regex_array[$r]=array('p.ref'=>'[^ ]','p.tosell'=>'^[0|1]$','p.tobuy'=>'^[0|1]$','p.fk_product_type'=>'^[0|1]$','p.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$','p.recuperableonly'=>'^[0|1]$');
    -		$import_sample=array('p.ref'=>"PREF123456",'p.label'=>"My product",'p.description'=>"This is a description example for record",'p.note'=>"Some note",'p.price'=>"100",'p.price_ttc'=>"110",'p.tva_tx'=>'10','p.tosell'=>"0 or 1",'p.tobuy'=>"0 or 1",'p.fk_product_type'=>"0 for product/1 for service",'p.finished'=>'','p.duration'=>"1y",'p.datec'=>'2008-12-31','p.recuperableonly'=>'0 or 1');
    +		$this->import_regex_array[$r]=array(
    +            'p.ref' => '[^ ]',
    +            'p.price_base_type' => '\AHT\z|\ATTC\z',
    +            'p.tosell' => '^[0|1]$',
    +            'p.tobuy' => '^[0|1]$',
    +            'p.fk_product_type' => '^[0|1]$',
    +            'p.datec' => '^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$',
    +            'p.recuperableonly' => '^[0|1]$',
    +            'p.finished' => '^[0|1]$'
    +        );
    +		
    +        $import_sample = array(//field order as per structure of table llx_product
    +            'p.ref' => "PREF123456",
    +            'p.datec' => 'formatted as '.dol_print_date(dol_now(),'%Y-%m-%d'),
    +            'p.label' => "Product name in default language",
    +            'p.description' => "Product description in default language",
    +            'p.note_public' => "a public note (free text)",
    +            'p.note' => "a private note (free text)",
    +            'p.customcode' => 'customs code',
    +            'p.price' => "price ex-vat eg. 100",
    +            'p.price_ttc' => "price inc-vat eg. 110",
    +            'p.price_base_type' => "HT (show/use price excl. tax) / TTC (show/use price incl. tax)",
    +            'p.tva_tx' => 'tax rate eg: 10. Must match numerically one of the tax rates defined for your country',
    +            'p.tosell' => "0 (not for sale to customer, eg. raw material) / 1 (for sale)",
    +            'p.tobuy' => "0 (not for purchase from supplier, eg. virtual product) / 1 (for purchase)",
    +            'p.fk_product_type' => "0 (product) / 1 (service)",
    +            'p.duration' => "eg. 365d/12m/1y",
    +            'p.url' => 'link to product (no https)',
    +            'p.accountancy_code_sell' => "",
    +            'p.accountancy_code_buy' => "",
    +            'p.weight' => "",
    +            'p.length' => "",
    +            'p.width' => "",
    +            'p.height' => "",
    +            'p.surface' => "",
    +            'p.volume' => "",
    +            'p.finished' => '0 (raw material) / 1 (finished goods)'
    +        );
    +        //clauses copied from import_fields_array
    +        if (!empty($conf->stock->enabled)) $import_sample = array_merge($import_sample, array(
    +                'p.seuil_stock_alerte' => 'quantity for low-stock warning (empty for no warning)',
    +                'p.pmp' => '0 (default)',
    +                'p.desiredstock' => 'target quantity to maintain in stock (for replenishment feature)'
    +            ));
    +        if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $import_sample=array_merge($import_sample,array('p.cost_price'=>'user-editable, used for margin calculations only'));
    +        if (is_object($mysoc) && $mysoc->useNPR()) $import_sample=array_merge($import_sample,array('p.recuperableonly'=>'0 / 1 (French VAT NPR yes/no'));
    +        if (is_object($mysoc) && $mysoc->useLocalTax(1)) $import_sample=array_merge($import_sample,array('p.localtax1_tx'=>'', 'p.localtax1_type'=>''));
    +        if (is_object($mysoc) && $mysoc->useLocalTax(2)) $import_sample=array_merge($import_sample,array('p.localtax2_tx'=>'', 'p.localtax2_type'=>''));
    +        if (! empty($conf->barcode->enabled)) $import_sample=array_merge($import_sample,array('p.barcode'=>''));
    +        if (! empty($conf->global->PRODUCT_USE_UNITS)) $import_sample=array_merge($import_sample,array('p.fk_unit'=>'use a unit of measure from the dictionary. 1/2/3 etc....matches field "rowid" in table "'.MAIN_DB_PREFIX.'c_units"'));
    +
     		$this->import_examplevalues_array[$r]=array_merge($import_sample,$import_extrafield_sample);
    -		$this->import_updatekeys_array[$r]=array('p.ref'=>'Ref','p.barcode'=>'BarCode');
    +        $this->import_updatekeys_array[$r] = array('p.ref'=>'Ref');
    +        if (! empty($conf->barcode->enabled)) $this->import_updatekeys_array[$r]=array_merge($this->import_updatekeys_array[$r],array('p.barcode'=>'BarCode'));//only show/allow barcode as update key if Barcode module enabled
     
     		if (! empty($conf->fournisseur->enabled))
     		{
    -			// Import suppliers prices (note: this code is duplicated into module service)
    +			// Import suppliers prices (note: this code is duplicated in module Service)
     			$r++;
     			$this->import_code[$r]=$this->rights_class.'_supplierprices';
     			$this->import_label[$r]="SuppliersPricesOfProductsOrServices";	// Translation key
    @@ -336,9 +425,15 @@ class modProduct extends DolibarrModules
     			$this->import_entities_array[$r]=array();		// We define here only fields that use another icon that the one defined into import_icon
     			$this->import_tables_array[$r]=array('sp'=>MAIN_DB_PREFIX.'product_fournisseur_price');
     			$this->import_tables_creator_array[$r]=array('sp'=>'fk_user');
    -			$this->import_fields_array[$r]=array(
    -					'sp.fk_product'=>"ProductOrService*",
    -					'sp.fk_soc'=>"Supplier*", 'sp.ref_fourn'=>'SupplierRef', 'sp.quantity'=>"QtyMin*", 'sp.tva_tx'=>'VATRate', 'sp.default_vat_code'=>'VATCode'
    +			$this->import_fields_array[$r]=array(//field order as per structure of table llx_product_fournisseur_price, without optional fields
    +			    'sp.fk_product'=>"ProductOrService*",
    +                'sp.fk_soc' => "Supplier*",
    +                'sp.ref_fourn' => 'SupplierRef',
    +                'sp.quantity' => "QtyMin*",
    +                'sp.tva_tx' => 'VATRate',
    +                'sp.default_vat_code' => 'VATCode',
    +                'sp.delivery_time_days' => 'DeliveryDelay',
    +                'sp.supplier_reputation' => 'SupplierReputation'
     			);
     			if (is_object($mysoc) && $mysoc->useNPR())       $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('sp.recuperableonly'=>'VATNPR'));
     			if (is_object($mysoc) && $mysoc->useLocalTax(1)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('sp.localtax1_tx'=>'LT1', 'sp.localtax1_type'=>'LT1Type'));
    @@ -348,22 +443,60 @@ class modProduct extends DolibarrModules
     					'sp.unitprice'=>'UnitPriceHT*',	// TODO Make this field not required and calculate it from price and qty
     					'sp.remise_percent'=>'DiscountQtyMin'
     			));
    +
    +            if ($conf->multicurrency->enabled)
    +            {
    +                $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array(
    +                    'sp.fk_multicurrency'=>'CurrencyCodeId',//ideally this should be automatically obtained from the CurrencyCode on the next line
    +                    'sp.multicurrency_code'=>'CurrencyCode',
    +                    'sp.multicurrency_tx'=>'CurrencyRate',
    +                    'sp.multicurrency_unitprice'=>'CurrencyUnitPrice',
    +                    'sp.multicurrency_price'=>'CurrencyPrice',
    +                ));
    +            }
    +
     			$this->import_convertvalue_array[$r]=array(
     					'sp.fk_soc'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty'),
     					'sp.fk_product'=>array('rule'=>'fetchidfromref','classfile'=>'/product/class/product.class.php','class'=>'Product','method'=>'fetch','element'=>'Product')
     			);
    -			$this->import_examplevalues_array[$r]=array('sp.fk_product'=>"PREF123456",
    -					'sp.fk_soc'=>"My Supplier",'sp.ref_fourn'=>"SupplierRef", 'sp.quantity'=>"1", 'sp.tva_tx'=>'21',
    -					'sp.price'=>"50",
    -					'sp.unitprice'=>'50',
    -					'sp.remise_percent'=>'0'
    +
    +			$this->import_examplevalues_array[$r]=array(
    +                'sp.fk_product' => "My Ref. eg: PREF123456",
    +                'sp.fk_soc' => "My Supplier",
    +                'sp.ref_fourn' => "eg: XYZ-F123456",
    +                'sp.quantity' => "eg: 5",
    +                'sp.tva_tx' => 'one of the defined rates eg. 21',
    +                'sp.default_vat_code' => '',
    +                'sp.delivery_time_days' => 'eg. 5',
    +                'sp.supplier_reputation' => 'FAVORITE / NOTTHGOOD / DONOTORDER'
     			);
    +            if (is_object($mysoc) && $mysoc->useNPR()) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r],array('sp.recuperableonly'=>''));
    +            if (is_object($mysoc) && $mysoc->useLocalTax(1)) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r],array('sp.localtax1_tx'=>'LT1', 'sp.localtax1_type'=>'LT1Type'));
    +            if (is_object($mysoc) && $mysoc->useLocalTax(2)) $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r],array('sp.localtax2_tx'=>'LT2', 'sp.localtax2_type'=>'LT2Type'));
    +            $this->import_examplevalues_array[$r] = array_merge($this->import_examplevalues_array[$r], array(
    +                'sp.price' => "eg. 50.00",
    +                'sp.unitprice' => 'eg. 10',
    +                // TODO Make this field not required and calculate it from price and qty
    +                'sp.remise_percent' => 'eg: 20'
    +            ));
    +            if ($conf->multicurrency->enabled)
    +            {
    +                $this->import_examplevalues_array[$r]=array_merge($this->import_examplevalues_array[$r],array(
    +                    'sp.fk_multicurrency'=>'eg: 2, rowid for code of multicurrency currency',
    +                    'sp.multicurrency_code'=>'eg: GBP',
    +                    'sp.multicurrency_tx'=>'currency rate eg: 1.12345',
    +                    'sp.multicurrency_unitprice'=>'cost per unit in supplier currency',
    +                    // TODO Make this field not required and calculate it from price and qty
    +                    'sp.multicurrency_price'=>'cost for min quantity in supplier currency'
    +                ));
    +            }
    +
     			$this->import_updatekeys_array[$r]=array('sp.fk_product'=>'ProductOrService','sp.ref_fourn'=>'SupplierRef','sp.fk_soc'=>'Supplier');
     		}
     
     		if (! empty($conf->global->PRODUIT_MULTIPRICES))
     		{
    -			// Import product multiprice
    +			// Import products multiprices
     			$r++;
     			$this->import_code[$r]=$this->rights_class.'_multiprice';
     			$this->import_label[$r]="ProductsOrServiceMultiPrice";	// Translation key
    @@ -390,6 +523,7 @@ class modProduct extends DolibarrModules
     
     		if (! empty($conf->global->MAIN_MULTILANGS))
     		{
    +		    // Import translations of product names and descriptions
     		    $r++;
     		    $this->import_code[$r]=$this->rights_class.'_languages';
     		    $this->import_label[$r]="ProductsOrServicesTranslations";
    diff --git a/htdocs/core/modules/modProductBatch.class.php b/htdocs/core/modules/modProductBatch.class.php
    index 91e8ddbae3c..55a800bd366 100644
    --- a/htdocs/core/modules/modProductBatch.class.php
    +++ b/htdocs/core/modules/modProductBatch.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013-2014 Cedric GROSS         <c.gross@kreiz-it.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -46,7 +46,7 @@ class modProductBatch extends DolibarrModules
     		$this->numero = 39000;
     
     		$this->family = "products";
    -		$this->module_position = 45;
    +		$this->module_position = '45';
     
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Batch number, eat-by and sell-by date management module";
    @@ -68,9 +68,11 @@ class modProductBatch extends DolibarrModules
     		$this->config_page_url = array("product_lot_extrafields.php@product");
     
     		// Dependencies
    -		$this->depends = array("modProduct","modStock","modExpedition","modFournisseur");		// List of modules id that must be enabled if this module is enabled. modExpedition is required to manage batch exit (by manual stock decrease on shipment), modSupplier to manage batch entry (after supplier order).
    -		$this->requiredby = array();	// List of modules id to disable if this one is disabled
    -		$this->phpmin = array(5,0);					// Minimum version of PHP required by module
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array("modProduct","modStock","modExpedition","modFournisseur");		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(3,0);	// Minimum version of Dolibarr required by module
     		$this->langfiles = array("productbatch");
     
    @@ -102,7 +104,6 @@ class modProductBatch extends DolibarrModules
     
     		// Exports
     		$r=0;
    -
     	}
     
     	/**
    diff --git a/htdocs/core/modules/modProjet.class.php b/htdocs/core/modules/modProjet.class.php
    index 8757909d1d5..fc18d1c7ec6 100644
    --- a/htdocs/core/modules/modProjet.class.php
    +++ b/htdocs/core/modules/modProjet.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013	   Florian Henry        <florian.henry@open-concept.pro>
      * Copyright (C) 2014	   Charles-Fr BENKE	<charles.fr@benke.fr>
      *
    @@ -36,7 +36,6 @@ include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
      */
     class modProjet extends DolibarrModules
     {
    -
     	/**
     	 *   Constructor. Define names, constants, directories, boxes, permissions
     	 *
    @@ -50,7 +49,7 @@ class modProjet extends DolibarrModules
     		$this->numero = 400;
     
     		$this->family = "projects";
    -		$this->module_position = 10;
    +		$this->module_position = '10';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des projets";
    @@ -64,10 +63,12 @@ class modProjet extends DolibarrModules
     		// Data directories to create when module is enabled
     		$this->dirs = array("/projet/temp");
     
    -		// Dependancies
    -		$this->depends = array();
    -		$this->requiredby = array();
    -		$this->conflictwith = array();
    +		// Dependencies
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->langfiles = array('projects');
     
     		// Constants
    @@ -359,7 +360,7 @@ class modProjet extends DolibarrModules
     		$sql[] ="INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('beluga','project',".$conf->entity.")";
     		$sql[] ="DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = 'baleine' AND type = 'project' AND entity = ".$conf->entity;
     		$sql[] ="INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('baleine','project',".$conf->entity.")";
    -		
    +
     
     		return $this->_init($sql,$options);
     	}
    diff --git a/htdocs/core/modules/modPropale.class.php b/htdocs/core/modules/modPropale.class.php
    index 70374134154..cb2119e0146 100644
    --- a/htdocs/core/modules/modPropale.class.php
    +++ b/htdocs/core/modules/modPropale.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2010	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Juanjo Menent			<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -49,7 +49,7 @@ class modPropale extends DolibarrModules
     		$this->numero = 20;
     
     		$this->family = "crm";
    -		$this->module_position = 20;
    +		$this->module_position = '20';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des propositions commerciales";
    @@ -63,9 +63,12 @@ class modPropale extends DolibarrModules
     		// Data directories to create when module is enabled
     		$this->dirs = array("/propale/temp");
     
    -		// Dependancies
    -		$this->depends = array("modSociete");
    -		$this->requiredby = array();
    +		// Dependencies
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array("modSociete");		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->config_page_url = array("propal.php");
     		$this->langfiles = array("propal","bills","companies","deliveries","products");
     
    @@ -230,8 +233,13 @@ class modPropale extends DolibarrModules
     		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
     		$keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra3';
     		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
    +		$keyforselect='societe'; $keyforelement='societe'; $keyforaliasextra='extra4';
    +		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
    +
     		$this->export_sql_start[$r]='SELECT DISTINCT ';
     		$this->export_sql_end[$r]  =' FROM '.MAIN_DB_PREFIX.'societe as s ';
    +		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'societe_extrafields as extra4 ON s.rowid = extra4.fk_object';
    +
     		if(!$user->rights->societe->client->voir) $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'societe_commerciaux as sc ON sc.fk_soc = s.rowid';
     		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as co ON s.fk_pays = co.rowid,';
     		$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'propal as c';
    @@ -288,6 +296,5 @@ class modPropale extends DolibarrModules
     		);
     
     		return $this->_init($sql,$options);
    -
     	}
     }
    diff --git a/htdocs/core/modules/modReceiptPrinter.class.php b/htdocs/core/modules/modReceiptPrinter.class.php
    index 19df7ca0726..0cb05499843 100644
    --- a/htdocs/core/modules/modReceiptPrinter.class.php
    +++ b/htdocs/core/modules/modReceiptPrinter.class.php
    @@ -40,14 +40,14 @@ class modReceiptPrinter extends DolibarrModules
          *
          *  @param      DoliDB      $db      Database handler
          */
    -    function  __construct($db)
    +    function __construct($db)
         {
             $this->db = $db ;
             $this->numero = 67000;
             // Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
             // It is used to group modules in module setup page
             $this->family = "interface";
    -        $this->module_position = 530;
    +        $this->module_position = '53';
             // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
             $this->name = preg_replace('/^mod/i','',get_class($this));
             // Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
    @@ -67,9 +67,11 @@ class modReceiptPrinter extends DolibarrModules
             $this->config_page_url = array("receiptprinter.php");
     
             // Dependencies
    -        $this->depends = array();
    -        $this->requiredby = array();
    -        $this->phpmin = array(5,1);                     // Minimum version of PHP required by module
    +        $this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
             $this->need_dolibarr_version = array(3,9,-2);   // Minimum version of Dolibarr required by module
             $this->conflictwith = array();
             $this->langfiles = array("receiptprinter");
    @@ -117,8 +119,6 @@ class modReceiptPrinter extends DolibarrModules
             //                        'user'=>0);                     // 0=Menu for internal users, 1=external users, 2=both
     
             $r++;
    -
    -
         }
     
     
    @@ -141,5 +141,4 @@ class modReceiptPrinter extends DolibarrModules
                 );
             return $this->_init($sql,$options);
         }
    -
     }
    diff --git a/htdocs/core/modules/modReception.class.php b/htdocs/core/modules/modReception.class.php
    new file mode 100644
    index 00000000000..da1154d94ee
    --- /dev/null
    +++ b/htdocs/core/modules/modReception.class.php
    @@ -0,0 +1,280 @@
    +<?php
    +/* Copyright (C) 2018	   Quentin Vial-Gouteyron    <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *	\defgroup   reception     Module reception
    + *	\brief      Module pour gerer les réceptions de produits
    + *	\file       htdocs/core/modules/modReception.class.php
    + *	\ingroup    reception
    + *	\brief      Fichier de description et activation du module Reception
    + */
    +
    +include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
    +
    +
    +/**
    + *	Class to describe and enable module Reception
    + */
    +class modReception extends DolibarrModules
    +{
    +	/**
    +	 *   Constructor. Define names, constants, directories, boxes, permissions
    +	 *
    +	 *   @param      DoliDB		$db      Database handler
    +	 */
    +	function __construct($db)
    +	{
    +		global $conf, $user;
    +
    +		$this->db = $db;
    +		$this->numero = 104160;
    +
    +		$this->family = "srm";
    +		$this->module_position = 40;
    +		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
    +		$this->name = preg_replace('/^mod/i','',get_class($this));
    +		$this->description = "Gestion des réceptions fournisseurs";
    +
    +		// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
    +		$this->version = 'experimental';
    +
    +		$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
    +		$this->picto = "sending";
    +
    +		// Data directories to create when module is enabled
    +		$this->dirs = array("/reception/receipt",
    +		                    "/reception/receipt/temp",
    +		                    "/doctemplates/reception"
    +		                    );
    +
    +		// Config pages
    +		$this->config_page_url = array("reception_setup.php");
    +
    +		// Dependencies
    +		$this->depends = array("modFournisseur");
    +		$this->requiredby = array();
    +		$this->conflictwith = array();
    +		$this->langfiles = array('receptions');
    +
    +		// Constants
    +		$this->const = array();
    +		$r=0;
    +
    +		$this->const[$r][0] = "RECEPTION_ADDON_PDF";
    +		$this->const[$r][1] = "chaine";
    +		$this->const[$r][2] = "squille";
    +		$this->const[$r][3] = 'Nom du gestionnaire de generation des bons receptions en PDF';
    +		$this->const[$r][4] = 0;
    +		$r++;
    +
    +		$this->const[$r][0] = "RECEPTION_ADDON_NUMBER";
    +		$this->const[$r][1] = "chaine";
    +		$this->const[$r][2] = "mod_reception_beryl";
    +		$this->const[$r][3] = 'Name for numbering manager for receptions';
    +		$this->const[$r][4] = 0;
    +		$r++;
    +
    +		$this->const[$r][0] = "RECEPTION_ADDON_PDF_ODT_PATH";
    +		$this->const[$r][1] = "chaine";
    +		$this->const[$r][2] = "DOL_DATA_ROOT/doctemplates/receptions";
    +		$this->const[$r][3] = "";
    +		$this->const[$r][4] = 0;
    +		$r++;
    +
    +		$this->const[$r][0] = "MAIN_SUBMODULE_RECEPTION";
    +		$this->const[$r][1] = "chaine";
    +		$this->const[$r][2] = "1";
    +		$this->const[$r][3] = "Enable receptions";
    +		$this->const[$r][4] = 0;
    +		$r++;
    +
    +		// Boxes
    +		$this->boxes = array();
    +
    +		// Permissions
    +		$this->rights = array();
    +		$this->rights_class = 'reception';
    +		$r=0;
    +
    +		$r++;
    +		$this->rights[$r][0] = $this->numero.$r;
    +		$this->rights[$r][1] = 'Lire les receptions';
    +		$this->rights[$r][2] = 'r';
    +		$this->rights[$r][3] = 0;
    +		$this->rights[$r][4] = 'lire';
    +
    +		$r++;
    +		$this->rights[$r][0] = $this->numero.$r;
    +		$this->rights[$r][1] = 'Creer modifier les receptions';
    +		$this->rights[$r][2] = 'w';
    +		$this->rights[$r][3] = 0;
    +		$this->rights[$r][4] = 'creer';
    +
    +		$r++;
    +		$this->rights[$r][0] = $this->numero.$r;
    +		$this->rights[$r][1] = 'Valider les receptions';
    +		$this->rights[$r][2] = 'd';
    +		$this->rights[$r][3] = 0;
    +		$this->rights[$r][4] = 'reception_advance';
    +		$this->rights[$r][5] = 'validate';
    +
    +		$r++;
    +		$this->rights[$r][0] = $this->numero.$r; // id de la permission
    +		$this->rights[$r][1] = 'Envoyer les receptions aux clients'; // libelle de la permission
    +		$this->rights[$r][2] = 'd'; // type de la permission (deprecie a ce jour)
    +		$this->rights[$r][3] = 0; // La permission est-elle une permission par defaut
    +		$this->rights[$r][4] = 'reception_advance';
    +        $this->rights[$r][5] = 'send';
    +
    +		$r++;
    +		$this->rights[$r][0] = $this->numero.$r;
    +		$this->rights[$r][1] = 'Exporter les receptions';
    +		$this->rights[$r][2] = 'r';
    +		$this->rights[$r][3] = 0;
    +		$this->rights[$r][4] = 'reception';
    +		$this->rights[$r][5] = 'export';
    +
    +		$r++;
    +		$this->rights[$r][0] = $this->numero.$r;
    +		$this->rights[$r][1] = 'Supprimer les receptions';
    +		$this->rights[$r][2] = 'd';
    +		$this->rights[$r][3] = 0;
    +		$this->rights[$r][4] = 'supprimer';
    +
    +
    +		// Menus
    +		//-------
    +		$this->menu = 1;        // This module add menu entries. They are coded into menu manager.
    +
    +
    +		// Exports
    +		//--------
    +		$r=0;
    +
    +		include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
    +		$shipment=new CommandeFournisseur($this->db);
    +		$contact_arrays=$shipment->liste_type_contact('external','',0,0,'');
    +		if (is_array($contact_arrays) && count($contact_arrays)>0){
    +			$idcontacts=join(',',array_keys($shipment->liste_type_contact('external','',0,0,'')));
    +		} else {
    +			$idcontacts=0;
    +		}
    +
    +
    +		$r++;
    +		$this->export_code[$r]=$this->rights_class.'_'.$r;
    +		$this->export_label[$r]='Receptions';	// Translation key (used only if key ExportDataset_xxx_z not found)
    +		$this->export_permission[$r]=array(array("reception","reception","export"));
    +		$this->export_fields_array[$r]=array(
    +			's.rowid'=>"IdCompany",'s.nom'=>'ThirdParty','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town',
    +			'd.nom'=>'State','co.label'=>'Country','co.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6',
    +			'c.rowid'=>"Id",'c.ref'=>"Ref",'c.ref_supplier'=>"RefSupplier",'c.fk_soc'=>"IdCompany",'c.date_creation'=>"DateCreation",'c.date_delivery'=>"DateDeliveryPlanned",'c.tracking_number'=>"TrackingNumber",'c.height'=>"Height",'c.width'=>"Width",'c.size'=>"Depth",'c.size_units'=>'SizeUnits','c.weight'=>"Weight",'c.weight_units'=>"WeightUnits",'c.fk_statut'=>'Status','c.note_public'=>"NotePublic",'ed.rowid'=>'LineId',
    +			'ed.comment'=>'Description','ed.qty'=>"Qty",
    +			'p.rowid'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel','p.weight'=>'ProductWeight','p.weight_units'=>'WeightUnits','p.volume'=>'ProductVolume','p.volume_units'=>'VolumeUnits'
    +		);
    +		if ($idcontacts && ! empty($conf->global->RECEPTION_ADD_CONTACTS_IN_EXPORT)) $this->export_fields_array[$r]+=array('sp.rowid'=>'IdContact','sp.lastname'=>'Lastname','sp.firstname'=>'Firstname','sp.note_public'=>'NotePublic');
    +		//$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.date_creation'=>"Date",'c.date_commande'=>"Date",'c.amount_ht'=>"Numeric",'c.remise_percent'=>"Numeric",'c.total_ht'=>"Numeric",'c.total_ttc'=>"Numeric",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','ed.qty'=>"Text");
    +		$this->export_TypeFields_array[$r]=array(
    +			's.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text',
    +			'co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text',
    +			'c.ref'=>"Text",'c.ref_supplier'=>"Text",'c.date_creation'=>"Date",'c.date_delivery'=>"Date",'c.tracking_number'=>"Numeric",'c.height'=>"Numeric",'c.width'=>"Numeric",'c.weight'=>"Numeric",'c.fk_statut'=>'Status','c.note_public'=>"Text",
    +			'ed.qty'=>"Numeric",'d.nom'=>'Text'
    +		);
    +		$this->export_entities_array[$r]=array(
    +			's.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company',
    +			'd.nom'=>'company','co.label'=>'company','co.code'=>'company','s.fk_pays'=>'company','s.phone'=>'company','s.siren'=>'company','s.ape'=>'company','s.siret'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company',
    +			'c.rowid'=>"reception",'c.ref'=>"reception",'c.ref_supplier'=>"reception",'c.fk_soc'=>"reception",'c.date_creation'=>"reception",'c.date_delivery'=>"reception",'c.tracking_number'=>'reception','c.height'=>"reception",'c.width'=>"reception",'c.size'=>'reception','c.size_units'=>'reception','c.weight'=>"reception",'c.weight_units'=>'reception','c.fk_statut'=>"reception",'c.note_public'=>"reception",'ed.rowid'=>'reception_line','ed.comment'=>'reception_line','ed.qty'=>"reception_line",
    +			'p.rowid'=>'product','p.ref'=>'product','p.label'=>'product','p.weight'=>'product','p.weight_units'=>'product','p.volume'=>'product','p.volume_units'=>'product'
    +		);
    +		if ($idcontacts && ! empty($conf->global->RECEPTION_ADD_CONTACTS_IN_EXPORT)) $this->export_entities_array[$r]+=array('sp.rowid'=>'contact','sp.lastname'=>'contact','sp.firstname'=>'contact','sp.note_public'=>'contact');
    +		$this->export_dependencies_array[$r]=array('reception_line'=>'ed.rowid','product'=>'ed.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
    +		if ($idcontacts && ! empty($conf->global->RECEPTION_ADD_CONTACTS_IN_EXPORT))
    +		{
    +		    $keyforselect='socpeople'; $keyforelement='contact'; $keyforaliasextra='extra3';
    +		    include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
    +		}
    +		$keyforselect='reception'; $keyforelement='reception'; $keyforaliasextra='extra';
    +		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
    +		$keyforselect='commande_fournisseur_dispatch'; $keyforelement='reception_line'; $keyforaliasextra='extra2';
    +		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
    +
    +		$this->export_sql_start[$r]='SELECT DISTINCT ';
    +		$this->export_sql_end[$r]  =' FROM '.MAIN_DB_PREFIX.'reception as c';
    +		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'reception_extrafields as extra ON c.rowid = extra.fk_object,';
    +		$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'societe as s';
    +		if(!$user->rights->societe->client->voir) $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'societe_commerciaux as sc ON sc.fk_soc = s.rowid';
    +		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON s.fk_departement = d.rowid';
    +		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as co ON s.fk_pays = co.rowid,';
    +		$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'commande_fournisseur_dispatch as ed';
    +		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'commande_fournisseur_dispatch_extrafields as extra2 ON ed.rowid = extra2.fk_object';
    +		$this->export_sql_end[$r] .=' , '.MAIN_DB_PREFIX.'commande_fournisseurdet as cd';
    +		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on cd.fk_product = p.rowid';
    +		if ($idcontacts && ! empty($conf->global->RECEPTION_ADD_CONTACTS_IN_EXPORT))
    +		{
    +		  $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'element_contact as ee ON ee.element_id = cd.fk_commande AND ee.fk_c_type_contact IN ('.$idcontacts.')';
    +		  $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'socpeople as sp ON sp.rowid = ee.fk_socpeople';
    +		  $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'socpeople_extrafields as extra3 ON sp.rowid = extra3.fk_object';
    +		}
    +		$this->export_sql_end[$r] .=' WHERE c.fk_soc = s.rowid AND c.rowid = ed.fk_reception AND ed.fk_commandefourndet = cd.rowid';
    +		$this->export_sql_end[$r] .=' AND c.entity IN ('.getEntity('reception').')';
    +		if(!$user->rights->societe->client->voir) $this->export_sql_end[$r] .=' AND sc.fk_user = '.$user->id;
    +	}
    +
    +
    +	/**
    +	 *		Function called when module is enabled.
    +	 *		The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
    +	 *		It also creates data directories
    +	 *
    +     *      @param      string	$options    Options when enabling module ('', 'noboxes')
    +	 *      @return     int             	1 if OK, 0 if KO
    +	 */
    +	function init($options='')
    +	{
    +		global $conf,$langs;
    +
    +		// Permissions
    +		$this->remove($options);
    +
    +		//ODT template
    +		$src=DOL_DOCUMENT_ROOT.'/install/doctemplates/reception/template_reception.odt';
    +		$dirodt=DOL_DATA_ROOT.'/doctemplates/reception';
    +		$dest=$dirodt.'/template_reception.odt';
    +
    +		if (file_exists($src) && ! file_exists($dest))
    +		{
    +			require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +			dol_mkdir($dirodt);
    +			$result=dol_copy($src,$dest,0,0);
    +			if ($result < 0)
    +			{
    +				$langs->load("errors");
    +				$this->error=$langs->trans('ErrorFailToCopyFile',$src,$dest);
    +				return 0;
    +			}
    +		}
    +
    +		$sql = array();
    +
    +		$sql = array(
    +			 "DELETE FROM ".MAIN_DB_PREFIX."document_model WHERE nom = '".$this->db->escape($this->const[0][2])."' AND type = 'reception' AND entity = ".$conf->entity,
    +			 "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->db->escape($this->const[0][2])."','reception',".$conf->entity.")",
    +		);
    +
    +		return $this->_init($sql,$options);
    +	}
    +}
    diff --git a/htdocs/core/modules/modResource.class.php b/htdocs/core/modules/modResource.class.php
    index d3bf99a54be..5925998a2b2 100644
    --- a/htdocs/core/modules/modResource.class.php
    +++ b/htdocs/core/modules/modResource.class.php
    @@ -55,7 +55,7 @@ class modResource extends DolibarrModules
     		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
     		// It is used to group modules in module setup page
     		$this->family = "projects";
    -		$this->module_position = 20;
    +		$this->module_position = '20';
     		// Module label (no space allowed)
     		// used if translation string 'ModuleXXXName' not found
     		// (where XXX is value of numeric property 'numero' of module)
    @@ -95,7 +95,7 @@ class modResource extends DolibarrModules
     		// List of modules id to disable if this one is disabled
     		$this->requiredby = array('modPlace');
     		// Minimum version of PHP required by module
    -		$this->phpmin = array(5, 3);
    +		$this->phpmin = array(5, 4);
     
     		$this->langfiles = array("resource"); // langfiles@resource
     		// Constants
    @@ -285,7 +285,6 @@ class modResource extends DolibarrModules
     		$this->import_regex_array[$r]=array('s.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]( [0-9][0-9]:[0-9][0-9]:[0-9][0-9])?$');
     		$this->import_examplevalues_array[$r]=array('r.ref'=>"REF1",'r.fk_code_type_resource'=>"Code from dictionary resource type",'r.datec'=>"2017-01-01 or 2017-01-01 12:30:00");
     		$this->import_updatekeys_array[$r]=array('r.rf'=>'ResourceFormLabel_ref');
    -
     	}
     
     	/**
    diff --git a/htdocs/core/modules/modSalaries.class.php b/htdocs/core/modules/modSalaries.class.php
    index 52c417c0848..056b2c19785 100644
    --- a/htdocs/core/modules/modSalaries.class.php
    +++ b/htdocs/core/modules/modSalaries.class.php
    @@ -3,9 +3,9 @@
      * Copyright (C) 2004-2014	Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014		Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2014		Alexandre Spangaro	 <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2014		Alexandre Spangaro	 <aspangaro@zendsi.com>
      *
      * 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
    @@ -23,11 +23,11 @@
      */
     
     /**
    - * 		\defgroup   salaries		Module salaries
    - * 		\brief      Module to include salaries management
    - *      \file       htdocs/core/modules/modSalaries.class.php
    - *      \ingroup    salaries
    - *      \brief      File to activate module salaries
    + *  \defgroup   salaries		Module salaries
    + *  \brief      Module to include salaries management
    + *  \file       htdocs/core/modules/modSalaries.class.php
    + *  \ingroup    salaries
    + *  \brief      File to activate module salaries
      */
     include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
     
    @@ -72,9 +72,11 @@ class modSalaries extends DolibarrModules
     		$this->config_page_url = array();
     
     		// Dependencies
    -		$this->depends = array();
    -		$this->requiredby = array();
    -		$this->conflictwith = array();
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->langfiles = array("salaries","bills");
     
     		// Constants
    @@ -161,7 +163,7 @@ class modSalaries extends DolibarrModules
     	 *		The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
     	 *		It also creates data directories
     	 *
    -     *      @param      string	$options    Options when enabling module ('', 'noboxes')
    +	 *      @param      string	$options    Options when enabling module ('', 'noboxes')
     	 *      @return     int             	1 if OK, 0 if KO
     	 */
     	function init($options='')
    diff --git a/htdocs/core/modules/modService.class.php b/htdocs/core/modules/modService.class.php
    index bc3ca57a352..6e5f5562a77 100644
    --- a/htdocs/core/modules/modService.class.php
    +++ b/htdocs/core/modules/modService.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -48,7 +48,7 @@ class modService extends DolibarrModules
     		$this->numero = 53;
     
     		$this->family = "products";
    -		$this->module_position = 30;
    +		$this->module_position = '30';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Service management";
    @@ -62,9 +62,12 @@ class modService extends DolibarrModules
     		// Data directories to create when module is enabled
     		$this->dirs = array("/product/temp");
     
    -		// Dependancies
    -		$this->depends = array();
    -		$this->requiredby = array();
    +		// Dependencies
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     
     		// Config pages
     		$this->config_page_url = array("product.php@product");
    diff --git a/htdocs/core/modules/modSkype.class.php b/htdocs/core/modules/modSocialNetworks.class.php
    similarity index 62%
    rename from htdocs/core/modules/modSkype.class.php
    rename to htdocs/core/modules/modSocialNetworks.class.php
    index d84520318a3..137547bfb15 100644
    --- a/htdocs/core/modules/modSkype.class.php
    +++ b/htdocs/core/modules/modSocialNetworks.class.php
    @@ -1,5 +1,6 @@
     <?php
     /* Copyright (C) 2013   Alexandre Spangaro  <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2014   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
    @@ -16,18 +17,18 @@
      */
     
     /**
    - * 	\defgroup   Skype   Module skype
    - *  \brief      Add a skype button.
    - *  \file       htdocs/core/modules/modSkype.class.php
    - *  \ingroup    Skype
    - *  \brief      Description and activation file for module skype
    + * 	\defgroup   SocialNetworks   Module SocialNetworks
    + *  \brief      Add a SocialNetworks button.
    + *  \file       htdocs/core/modules/modSocialNetworks.class.php
    + *  \ingroup    socialnetworks
    + *  \brief      Description and activation file for module SocialNetworks
      */
     include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
     
     /**
    - *	Class to describe a Cron module
    + *	Class to describe a SocialNetworks module
      */
    -class modSkype extends DolibarrModules
    +class modSocialNetworks extends DolibarrModules
     {
     
         /**
    @@ -40,50 +41,47 @@ class modSkype extends DolibarrModules
         	global $langs,$conf;
     
             $this->db = $db;
    -        $this->numero = 3100;
    +        $this->numero = 3400;
     
     		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
     		// It is used to group modules in module setup page
             $this->family = "interface";
    +        // Module position in the family on 2 digits ('01', '10', '20', ...)
    +        $this->module_position = '20';
             // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
             $this->name = preg_replace('/^mod/i','',get_class($this));
    -        $this->description = "Enable Skype links into contacts";
    +        $this->description = "Enable Social Networks fields into third parties and addresses (skype, twitter, facebook, ...)";
     		// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
             $this->version = 'dolibarr';
             // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
             $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
             // Name of image file used for this module.
    -        $this->picto='skype';
    +        $this->picto='generic';
     
             // Data directories to create when module is enabled
             $this->dirs = array();
     
             // Config pages
    -        //-------------
    -        $this->config_page_url = array();
    +        $this->config_page_url = array("socialnetworks.php");
     
    -        // Dependancies
    -        //-------------
    -	    $this->hidden = ! empty($conf->global->MODULE_SKYPE_DISABLED);	// A condition to disable module
    -	    $this->depends = array('modSociete');		// List of modules id that must be enabled if this module is enabled
    -        $this->requiredby = array();	// List of modules id to disable if this one is disabled
    -	    $this->conflictwith = array();	// List of modules id this module is in conflict with
    +        // Dependencies
    +        $this->hidden = ! empty($conf->global->MODULE_SOCIALNETWORKS_DISABLED);	// A condition to hide module
    +		$this->depends = array('modSociete');	// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
             $this->langfiles = array();
     
             // Constants
    -        //-----------
     
     
             // New pages on tabs
    -        // -----------------
             $this->tabs = array();
     
             // Boxes
    -        //------
             $this->boxes = array();
     
             // Main menu entries
    -        //------------------
             $this->menu = array();
         }
     }
    diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php
    index 34f4dca8510..3623e857270 100644
    --- a/htdocs/core/modules/modSociete.class.php
    +++ b/htdocs/core/modules/modSociete.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012-2014 Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -49,7 +49,7 @@ class modSociete extends DolibarrModules
     		$this->numero = 1;
     
     		$this->family = "crm";
    -		$this->module_position = 10;
    +		$this->module_position = '10';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des sociétés et contacts";
    @@ -66,8 +66,11 @@ class modSociete extends DolibarrModules
     		$this->dirs = array("/societe/temp");
     
     		// Dependencies
    -		$this->depends = array();
    -		$this->requiredby = array("modExpedition","modFacture","modFournisseur","modFicheinter","modPropale","modContrat","modCommande");
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array("modExpedition","modFacture","modFournisseur","modFicheinter","modPropale","modContrat","modCommande");	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->langfiles = array("companies",'bills');
     
     		// Constants
    @@ -258,11 +261,11 @@ class modSociete extends DolibarrModules
     		$this->export_icon[$r]='company';
     		$this->export_permission[$r]=array(array("societe","export"));
     		$this->export_fields_array[$r]=array(
    -			's.rowid'=>"Id",'s.nom'=>"Name",'s.name_alias'=>"AliasNames",'s.status'=>"Status",'s.client'=>"Customer",'s.fournisseur'=>"Supplier",'s.datec'=>"DateCreation",'s.tms'=>"DateLastModification",
    +			's.rowid'=>"Id",'s.nom'=>"Name",'s.name_alias'=>"AliasNameShort",'s.status'=>"Status",'s.client'=>"Customer",'s.fournisseur'=>"Supplier",'s.datec'=>"DateCreation",'s.tms'=>"DateLastModification",
     			's.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode",'s.code_compta'=>"AccountancyCode",'s.code_compta_fournisseur'=>"SupplierAccountancyCode",
     			's.address'=>"Address",'s.zip'=>"Zip",'s.town'=>"Town",'d.nom'=>'State','c.label'=>"Country",'c.code'=>"CountryCode",'s.phone'=>"Phone",'s.fax'=>"Fax",
     			's.url'=>"Url",'s.email'=>"Email",'s.default_lang'=>"DefaultLang",'s.siren'=>"ProfId1",'s.siret'=>"ProfId2",'s.ape'=>"ProfId3",'s.idprof4'=>"ProfId4",
    -			's.idprof5'=>"ProfId5",'s.idprof6'=>"ProfId6",'s.tva_intra'=>"VATIntraShort",'s.capital'=>"Capital",'s.note_private'=>"NotePrivate",'s.note_public'=>"NotePublic",'s.canvas'=>"Canvas",
    +			's.idprof5'=>"ProfId5",'s.idprof6'=>"ProfId6",'s.tva_intra'=>"VATIntraShort",'s.capital'=>"Capital",'s.note_private'=>"NotePrivate",'s.note_public'=>"NotePublic",
     			't.libelle'=>"ThirdPartyType",'ce.code'=>"Staff","cfj.libelle"=>"JuridicalStatus",'s.fk_prospectlevel'=>'ProspectLevel',
     			'st.code'=>'ProspectStatus','payterm.libelle'=>'PaymentConditions','paymode.libelle'=>'PaymentMode'
     		);
    @@ -277,7 +280,7 @@ class modSociete extends DolibarrModules
     		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
     		$this->export_fields_array[$r]+=array('u.login'=>'SaleRepresentativeLogin','u.firstname'=>'SaleRepresentativeFirstname', 'u.lastname'=>'SaleRepresentativeLastname');
     		//$this->export_TypeFields_array[$r]=array(
    -		//	's.rowid'=>"List:societe:nom", 's.nom'=>"Text", 's.name_alias'=>"Text", 's.status'=>"Text",'s.client'=>"Boolean",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date",
    +		//	's.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Text",'s.client'=>"Boolean",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date",
     		//	's.code_client'=>"Text",'s.code_fournisseur'=>"Text",'s.address'=>"Text",'s.zip'=>"Text",'s.town'=>"Text",'c.label'=>"List:c_country:label:label",
     		//	'c.code'=>"Text",'s.phone'=>"Text",'s.fax'=>"Text",'s.url'=>"Text",'s.email'=>"Text",'s.default_lang'=>"Text",'s.siret'=>"Text",'s.siren'=>"Text",
     		//	's.ape'=>"Text",'s.idprof4'=>"Text",'s.idprof5'=>"Text",'s.idprof6'=>"Text",'s.tva_intra'=>"Text",'s.capital'=>"Numeric",'s.note'=>"Text",
    @@ -285,11 +288,11 @@ class modSociete extends DolibarrModules
     		//	's.fk_stcomm'=>'List:c_stcomm:libelle:code','d.nom'=>'List:c_departements:nom:rowid'
     		//);
     		$this->export_TypeFields_array[$r]=array(
    -			's.rowid'=>"Numeric", 's.nom'=>"Text", 's.name_alias'=>"Text", 's.status'=>"Numeric",'s.client'=>"Numeric",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date",
    +			's.rowid'=>"Numeric", 's.nom'=>"Text",'s.name_alias'=>"Text",'s.status'=>"Numeric",'s.client'=>"Numeric",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date",
     			's.code_client'=>"Text",'s.code_fournisseur'=>"Text",'s.code_compta'=>"Text",'s.code_compta_fournisseur'=>"Text",'s.address'=>"Text",'s.zip'=>"Text",
     			's.town'=>"Text",'c.label'=>"List:c_country:label:label",'c.code'=>"Text",'s.phone'=>"Text",'s.fax'=>"Text",'s.url'=>"Text",'s.email'=>"Text",
     			's.default_lang'=>"Text",'s.siret'=>"Text",'s.siren'=>"Text",'s.ape'=>"Text",'s.idprof4'=>"Text",'s.idprof5'=>"Text",'s.idprof6'=>"Text",
    -			's.tva_intra'=>"Text",'s.capital'=>"Numeric",'s.note_private'=>"Text",'s.note_public'=>"Text",'s.canvas'=>"Text",'t.libelle'=>"Text",
    +			's.tva_intra'=>"Text",'s.capital'=>"Numeric",'s.note_private'=>"Text",'s.note_public'=>"Text",'t.libelle'=>"Text",
     			'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code',
     			'st.code'=>'List:c_stcomm:libelle:code','d.nom'=>'Text','u.login'=>'Text','u.firstname'=>'Text','u.lastname'=>'Text','payterm.libelle'=>'Text',
     			'paymode.libelle'=>'Text','s.entity'=>'Numeric'
    @@ -371,122 +374,333 @@ class modSociete extends DolibarrModules
     		}
     
     
    -		// Imports
    -		//--------
    -		$r=0;
    +        // Imports
    +        //--------
    +        $r = 0;
     
    -		// Import list of third parties and attributes
    -		$r++;
    -		$this->import_code[$r]=$this->rights_class.'_'.$r;
    -		$this->import_label[$r]='ImportDataset_company_1';
    -		$this->import_icon[$r]='company';
    -		$this->import_entities_array[$r]=array();		// We define here only fields that use another icon that the one defined into import_icon
    -		$this->import_tables_array[$r]=array('s'=>MAIN_DB_PREFIX.'societe','extra'=>MAIN_DB_PREFIX.'societe_extrafields');	// List of tables to insert into (insert done in same order)
    -		$this->import_fields_array[$r]=array(
    -			's.nom'=>"Name*", 's.name_alias'=>"Alias", 's.status'=>"Status",'s.client'=>"Customer*",'s.fournisseur'=>"Supplier*",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode",
    -			's.code_compta'=>"CustomerAccountancyCode",'s.code_compta_fournisseur'=>"SupplierAccountancyCode",'s.address'=>"Address",'s.zip'=>"Zip",'s.town'=>"Town",
    -			's.fk_departement'=>"StateId",'s.fk_pays'=>"CountryCode",'s.phone'=>"Phone",'s.fax'=>"Fax",'s.url'=>"Url",'s.email'=>"Email",'s.siren'=>"ProfId1",
    -			's.siret'=>"ProfId2",'s.ape'=>"ProfId3",'s.idprof4'=>"ProfId4",'s.idprof5'=>"ProfId5",'s.idprof6'=>"ProfId6",'s.tva_intra'=>"VATIntraShort",
    -			's.capital'=>"Capital",'s.note_private'=>"NotePrivate",'s.note_public'=>"NotePublic",'s.canvas'=>"Canvas",'s.fk_typent'=>"ThirdPartyType",'s.fk_effectif'=>"Staff",
    -			"s.fk_forme_juridique"=>"JuridicalStatus",'s.fk_prospectlevel'=>'ProspectLevel','s.fk_stcomm'=>'ProspectStatus','s.default_lang'=>'DefaultLanguage',
    -			's.barcode'=>'BarCode','s.datec'=>"DateCreation"
    -		);
    -		// Add extra fields
    -		$sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'societe' AND entity IN (0,".$conf->entity.")";
    -		$resql=$this->db->query($sql);
    -		if ($resql)    // This can fail when class is used on old database (during migration for example)
    -		{
    -		    while ($obj=$this->db->fetch_object($resql))
    -		    {
    -		        $fieldname='extra.'.$obj->name;
    -		        $fieldlabel=ucfirst($obj->label);
    -		        $this->import_fields_array[$r][$fieldname]=$fieldlabel.($obj->fieldrequired?'*':'');
    -		    }
    -		}
    -		// End add extra fields
    -		$this->import_fieldshidden_array[$r]=array('s.fk_user_creat'=>'user->id','extra.fk_object'=>'lastrowid-'.MAIN_DB_PREFIX.'societe');    // aliastable.field => ('user->id' or 'lastrowid-'.tableparent)
    -		$this->import_convertvalue_array[$r]=array(
    -			's.fk_typent'=>array('rule'=>'fetchidfromcodeorlabel','classfile'=>'/core/class/ctypent.class.php','class'=>'Ctypent','method'=>'fetch','dict'=>'DictionaryCompanyType'),
    -			's.fk_departement'=>array('rule'=>'fetchidfromcodeid','classfile'=>'/core/class/cstate.class.php','class'=>'Cstate','method'=>'fetch','dict'=>'DictionaryState'),
    -		    's.fk_pays'=>array('rule'=>'fetchidfromcodeid','classfile'=>'/core/class/ccountry.class.php','class'=>'Ccountry','method'=>'fetch','dict'=>'DictionaryCountry'),
    -			's.fk_stcomm'=>array('rule'=>'zeroifnull'),
    -		    's.code_client'=>array('rule'=>'getcustomercodeifauto'),
    -		    's.code_fournisseur'=>array('rule'=>'getsuppliercodeifauto'),
    -		    's.code_compta'=>array('rule'=>'getcustomeraccountancycodeifauto'),
    -		    's.code_compta_fournisseur'=>array('rule'=>'getsupplieraccountancycodeifauto'),
    -		    's.capital'=>array('rule'=>'numeric')
    -		);
    -		//$this->import_convertvalue_array[$r]=array('s.fk_soc'=>array('rule'=>'lastrowid',table='t');
    -		$this->import_regex_array[$r]=array('s.status'=>'^[0|1]','s.client'=>'^[0|1|2|3]','s.fournisseur'=>'^[0|1]','s.fk_typent'=>'id@'.MAIN_DB_PREFIX.'c_typent','s.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]( [0-9][0-9]:[0-9][0-9]:[0-9][0-9])?$');
    -		$this->import_examplevalues_array[$r]=array(
    -			's.nom'=>"MyBigCompany", 's.name_alias'=>"MyBigAlias", 's.status'=>"0 (closed) or 1 (active)",'s.client'=>'0 (no customer no prospect)/1 (customer)/2 (prospect)/3 (customer and prospect)',
    -			's.fournisseur'=>'0 or 1','s.datec'=>dol_print_date(dol_now(),'%Y-%m-%d'),'s.code_client'=>'CU01-0001 or empty or "auto"','s.code_fournisseur'=>'SU01-0001 or empty or "auto"',
    -			's.address'=>"61 jump street",'s.zip'=>"123456",'s.town'=>"Big town",'s.fk_pays'=>'US, FR, DE...','s.phone'=>"0101010101",'s.fax'=>"0101010102",
    -			's.url'=>"http://mycompany.com",'s.email'=>"test@mycompany.com",'s.siret'=>"",'s.siren'=>"",'s.ape'=>"",'s.idprof4'=>"",'s.idprof5'=>"",'s.idprof6'=>"",
    -			's.tva_intra'=>"FR0123456789",'s.capital'=>"10000",'s.note_private'=>"This is an example of private note for record",'s.note_public'=>"This is an example of public note for record",
    -			's.fk_typent'=>"2",'s.fk_effectif'=>"3","s.fk_forme_juridique"=>"1",'s.fk_prospectlevel'=>'PL_MEDIUM','s.fk_stcomm'=>'0','s.default_lang'=>'en_US','s.barcode'=>'123456789',
    -			's.datec'=>"2015-01-01 or 2015-01-01 12:30:00"
    -		);
    -		$this->import_updatekeys_array[$r]=array('s.nom'=>'Name','s.code_client'=>'CustomerCode','s.code_fournisseur'=>'SupplierCode','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode');
    +        // Import list of third parties and attributes
     
    -		// Import list of contact and attributes
    -		$r++;
    -		$this->import_code[$r]=$this->rights_class.'_'.$r;
    -		$this->import_label[$r]='ImportDataset_company_2';
    -		$this->import_icon[$r]='contact';
    -		$this->import_entities_array[$r]=array('s.fk_soc'=>'company');	// We define here only fields that use another icon that the one defined into import_icon
    -		$this->import_tables_array[$r]=array('s'=>MAIN_DB_PREFIX.'socpeople','extra'=>MAIN_DB_PREFIX.'socpeople_extrafields');	// List of tables to insert into (insert done in same order)
    -		$this->import_fields_array[$r]=array(
    -			's.fk_soc'=>'ThirdPartyName','s.civility'=>'UserTitle','s.lastname'=>"Lastname*",'s.firstname'=>"Firstname",'s.address'=>"Address",'s.zip'=>"Zip",
    -			's.town'=>"Town",'s.fk_departement'=>"StateId",'s.fk_pays'=>"CountryCode",'s.birthday'=>"BirthdayDate",'s.poste'=>"Role",'s.phone'=>"Phone",'s.phone_perso'=>"PhonePerso",
    -			's.phone_mobile'=>"PhoneMobile",'s.fax'=>"Fax",'s.email'=>"Email",'s.note_private'=>"Note",'s.note_public'=>"Note",'s.datec'=>"DateCreation"
    -		);
    -		// Add extra fields
    -		$sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'socpeople' AND entity IN (0,".$conf->entity.")";
    -		$resql=$this->db->query($sql);
    -		if ($resql)    // This can fail when class is used on old database (during migration for example)
    -		{
    -		    while ($obj=$this->db->fetch_object($resql))
    -		    {
    -		        $fieldname='extra.'.$obj->name;
    -		        $fieldlabel=ucfirst($obj->label);
    -		        $this->import_fields_array[$r][$fieldname]=$fieldlabel.($obj->fieldrequired?'*':'');
    -		    }
    -		}
    -		// End add extra fields
    -		$this->import_fieldshidden_array[$r]=array('s.fk_user_creat'=>'user->id','extra.fk_object'=>'lastrowid-'.MAIN_DB_PREFIX.'socpeople');    // aliastable.field => ('user->id' or 'lastrowid-'.tableparent)
    -		$this->import_convertvalue_array[$r]=array(
    -			's.fk_soc'=>array('rule'=>'fetchidfromref','file'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty'),
    -			's.fk_departement'=>array('rule'=>'fetchidfromcodeid','classfile'=>'/core/class/cstate.class.php','class'=>'Cstate','method'=>'fetch','dict'=>'DictionaryState'),
    -			's.fk_pays'=>array('rule'=>'fetchidfromcodeid','classfile'=>'/core/class/ccountry.class.php','class'=>'Ccountry','method'=>'fetch','dict'=>'DictionaryCountry'),
    -		);
    -		//$this->import_convertvalue_array[$r]=array('s.fk_soc'=>array('rule'=>'lastrowid',table='t');
    -		$this->import_regex_array[$r]=array('s.birthday'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$','s.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]( [0-9][0-9]:[0-9][0-9]:[0-9][0-9])?$');
    -		$this->import_examplevalues_array[$r]=array(
    -			's.fk_soc'=>'MyBigCompany','s.civility'=>"MR",'s.lastname'=>"Smith",'s.firstname'=>'John','s.address'=>'61 jump street','s.zip'=>'75000',
    -			's.town'=>'Bigtown','s.fk_pays'=>'US, FR, DE...','s.datec'=>'1972-10-10','s.poste'=>"Director",'s.phone'=>"5551122",'s.phone_perso'=>"5551133",
    -			's.phone_mobile'=>"5551144",'s.fax'=>"5551155",'s.email'=>"johnsmith@email.com",'s.note_private'=>"My private note",'s.note_public'=>"My public note"
    -		);
    +        $r++;
    +        $this->import_code[$r] = $this->rights_class . '_' . $r;
    +        $this->import_label[$r] = 'ImportDataset_company_1';
    +        $this->import_icon[$r] = 'company';
    +        $this->import_entities_array[$r] = array();        // We define here only fields that use a different icon from the one defined in import_icon
    +        $this->import_tables_array[$r] = array(
    +            's' => MAIN_DB_PREFIX . 'societe',
    +            'extra' => MAIN_DB_PREFIX . 'societe_extrafields'
    +        );    // List of tables to insert into (insert done in same order)
    +        $this->import_fields_array[$r] = array(//field order as per structure of table llx_societe
    +            's.nom' => "Name*",
    +            's.name_alias' => "AliasNameShort",
    +            's.status' => "Status",
    +            's.code_client' => "CustomerCode",
    +            's.code_fournisseur' => "SupplierCode",
    +            's.code_compta' => "CustomerAccountancyCode",
    +            's.code_compta_fournisseur' => "SupplierAccountancyCode",
    +            's.address' => "Address",
    +            's.zip' => "Zip",
    +            's.town' => "Town",
    +            's.fk_departement' => "StateId",
    +            's.fk_pays' => "CountryCode",
    +            's.phone' => "Phone",
    +            's.fax' => "Fax",
    +            's.url' => "Url",
    +            's.email' => "Email",
    +            's.skype' => "Skype",
    +            's.fk_effectif' => "Staff",
    +            's.fk_typent' => "ThirdPartyType",
    +            "s.fk_forme_juridique" => "JuridicalStatus",
    +            's.siren' => "ProfId1",
    +            's.siret' => "ProfId2",
    +            's.ape' => "ProfId3",
    +            's.idprof4' => "ProfId4",
    +            's.idprof5' => "ProfId5",
    +            's.idprof6' => "ProfId6",
    +            's.tva_intra' => "VATIntraShort",
    +            's.capital' => "Capital",
    +            's.fk_stcomm' => 'ProspectStatus',
    +            's.note_private' => "NotePrivate",
    +            's.note_public' => "NotePublic",
    +            's.client' => "Customer*",
    +            's.fournisseur' => "Supplier*",
    +            's.fk_prospectlevel' => 'ProspectLevel',
    +            's.mode_reglement' => 'PaymentTypeCustomer',
    +            's.cond_reglement' => "PaymentTermsCustomer",
    +            's.mode_reglement_supplier' => 'PaymentTypeSupplier',
    +            's.cond_reglement_supplier' => "PaymentTermsSupplier",
    +            's.tva_assuj' => 'VATIsUsed',
    +            's.barcode' => 'BarCode',
    +            's.default_lang' => 'DefaultLanguage',
    +            's.canvas' => "Canvas",
    +            's.datec' => "DateCreation",
    +            's.fk_multicurrency' => 'MulticurrencyUsed',
    +            's.multicurrency_code' => 'MulticurrencyCurrency'
    +        );
    +        // Add extra fields
    +        $sql = "SELECT name, label, fieldrequired FROM " . MAIN_DB_PREFIX . "extrafields WHERE elementtype = 'societe' AND entity = " . $conf->entity;
    +        $resql = $this->db->query($sql);
    +        if ($resql)    // This can fail when class is used on old database (during migration for example)
    +        {
    +            while ($obj = $this->db->fetch_object($resql)) {
    +                $fieldname = 'extra.' . $obj->name;
    +                $fieldlabel = ucfirst($obj->label);
    +                $this->import_fields_array[$r][$fieldname] = $fieldlabel . ($obj->fieldrequired ? '*' : '');
    +            }
    +        }
    +        // End add extra fields
    +        $this->import_fieldshidden_array[$r] = array(
    +            's.fk_user_creat' => 'user->id',
    +            'extra.fk_object' => 'lastrowid-' . MAIN_DB_PREFIX . 'societe'
    +        );    // aliastable.field => ('user->id' or 'lastrowid-'.tableparent)
    +        $this->import_convertvalue_array[$r] = array(//field order as per structure of table llx_societe
    +            's.code_client' => array('rule' => 'getcustomercodeifauto'),
    +            's.code_fournisseur' => array('rule' => 'getsuppliercodeifauto'),
    +            's.code_compta' => array('rule' => 'getcustomeraccountancycodeifauto'),
    +            's.code_compta_fournisseur' => array('rule' => 'getsupplieraccountancycodeifauto'),
    +            's.fk_departement' => array(
    +                'rule' => 'fetchidfromcodeid',
    +                'classfile' => '/core/class/cstate.class.php',
    +                'class' => 'Cstate',
    +                'method' => 'fetch',
    +                'dict' => 'DictionaryState'
    +            ),
    +            's.fk_pays' => array(
    +                'rule' => 'fetchidfromcodeid',
    +                'classfile' => '/core/class/ccountry.class.php',
    +                'class' => 'Ccountry',
    +                'method' => 'fetch',
    +                'dict' => 'DictionaryCountry'
    +            ),
    +            's.fk_typent' => array(
    +                'rule' => 'fetchidfromcodeorlabel',
    +                'classfile' => '/core/class/ctypent.class.php',
    +                'class' => 'Ctypent',
    +                'method' => 'fetch',
    +                'dict' => 'DictionaryCompanyType'
    +            ),
    +            's.capital' => array('rule' => 'numeric'),
    +            's.fk_stcomm' => array('rule' => 'zeroifnull'),
    +        );
    +        //$this->import_convertvalue_array[$r]=array('s.fk_soc'=>array('rule'=>'lastrowid',table='t');
    +        $this->import_regex_array[$r] = array(//field order as per structure of table llx_societe
    +            's.status' => '^[0|1]',
    +            's.fk_typent' => 'id@' . MAIN_DB_PREFIX . 'c_typent',
    +            's.client' => '^[0|1|2|3]',
    +            's.fournisseur' => '^[0|1]',
    +            's.mode_reglement' => 'id@' . MAIN_DB_PREFIX . 'c_paiement',
    +            's.cond_reglement' => 'rowid@' . MAIN_DB_PREFIX . 'c_payment_term',
    +            's.mode_reglement_supplier' => 'id@' . MAIN_DB_PREFIX . 'c_paiement',
    +            's.cond_reglement_supplier' => 'rowid@' . MAIN_DB_PREFIX . 'c_payment_term',
    +            's.tva_assuj' => '^[0|1]',
    +            's.fk_multicurrency' => '^[0|1]',
    +            's.datec' => '^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]( [0-9][0-9]:[0-9][0-9]:[0-9][0-9])?$',
    +            's.multicurrency_code' => 'code_iso@' . MAIN_DB_PREFIX . 'c_currencies'
    +        );
     
    -		// Import Bank Accounts
    -		$r++;
    -		$this->import_code[$r]=$this->rights_class.'_'.$r;
    -		$this->import_label[$r]="ImportDataset_company_3";	// Translation key
    -		$this->import_icon[$r]='company';
    -		$this->import_entities_array[$r]=array();		// We define here only fields that use another icon that the one defined into import_icon
    -		$this->import_tables_array[$r]=array('sr'=>MAIN_DB_PREFIX.'societe_rib');
    -		$this->import_fields_array[$r]=array('sr.fk_soc'=>"ThirdPartyName*",'sr.bank'=>"Bank",
    -				'sr.code_banque'=>"BankCode",'sr.code_guichet'=>"DeskCode",'sr.number'=>"BankAccountNumber*",
    -				'sr.cle_rib'=>"BankAccountNumberKey",'sr.bic'=>"BIC",'sr.iban_prefix'=>"IBAN", 'sr.domiciliation'=>"BankAccountDomiciliation",'sr.proprio' => "BankAccountOwner", 'sr.owner_address' => "BankAccountOwnerAddress", 'sr.default_rib' => 'Default'
    -		);
    +        $this->import_examplevalues_array[$r] = array(//field order as per structure of table llx_societe
    +            's.nom' => "TPBigCompany",
    +            's.name_alias' => "Alias for TPBigCompany",
    +            's.status' => "0 (closed) / 1 (active)",
    +            's.code_client' => 'eg. CU01-0001 / empty / "auto"',
    +            's.code_fournisseur' => 'eg. SU01-0001 / empty / "auto"',
    +            's.code_compta' => "Code or empty to be auto-created",
    +            's.code_compta_fournisseur' => "Code or empty to be auto-created",
    +            's.address' => "61 Jump Street",
    +            's.zip' => "123456",
    +            's.town' => "Bigtown",
    +            's.fk_departement' => 'matches field "code_departement" in table "' . MAIN_DB_PREFIX . 'c_departements"',
    +            's.fk_pays' => 'US/FR/DE etc. matches field "code" in table "' . MAIN_DB_PREFIX . 'c_country"',
    +            's.phone' => "eg: +34123456789",
    +            's.fax' => "eg. +34987654321",
    +            's.url' => "e.g. https://www.mybigcompany.com",
    +            's.email' => "e.g. test@mybigcompany.com",
    +            's.skype' => "Skype name",
    +            's.fk_effectif' => "1/2/3/5: represents one of the five ranges of employees",
    +            's.fk_typent' => 'matches field "id" (1-9 etc.) OR "code" (TE_SMALL etc.) in table "' . MAIN_DB_PREFIX . 'c_typent"',
    +            's.fk_forme_juridique' => '1/2/3 etc...matches field "code" in table "' . MAIN_DB_PREFIX . 'c_forme_juridique"',
    +            's.siret' => "",
    +            's.siren' => "",
    +            's.ape' => "",
    +            's.idprof4' => "",
    +            's.idprof5' => "",
    +            's.idprof6' => "",
    +            's.tva_intra' => 'VAT number e.g."FR0123456789"',
    +            's.capital' => "10000",
    +            's.fk_stcomm' => '-1/0/1/2 etc... matches field "id" in table "' . MAIN_DB_PREFIX . 'c_stcomm"',
    +            's.note_private' => "Example of a PRIVATE note.",
    +            's.note_public' => "Example of a PUBLIC note.",
    +            's.client' => '0 (no customer no prospect) / 1 (customer) / 2 (prospect)/ 3 (customer and prospect)',
    +            's.fournisseur' => '0 (not supplier) / 1 (supplier)',
    +            's.fk_prospectlevel' => 'eg. "PL_MEDIUM" matches field "code" in table "' . MAIN_DB_PREFIX . 'c_prospectlevel"',
    +            's.mode_reglement' => '1/2/3...matches field "id" in table "' . MAIN_DB_PREFIX . 'c_paiement"',
    +            's.cond_reglement' => '1/2/3...matches field "rowid" in table "' . MAIN_DB_PREFIX . 'c_payment_term"',
    +            's.mode_reglement_supplier' => '1/2/3...matches field "id" in table "' . MAIN_DB_PREFIX . 'c_paiement"',
    +            's.cond_reglement_supplier' => '1/2/3...matches field "rowid" in table "' . MAIN_DB_PREFIX . 'c_payment_term"',
    +            's.tva_assuj' => '0 (VAT not used) / 1 (VAT used)',
    +            's.barcode' => '123456789',
    +            's.default_lang' => 'en_US / es_ES etc...matches a language directory in htdocs/langs/',
    +            's.canvas' => "empty / a custom canvas form layout url e.g. mycanvas@mymodule",
    +            's.datec' => 'formatted as ' . dol_print_date(dol_now(), '%Y-%m-%d'),
    +            's.fk_multicurrency' => '0 (use system default currency) / 1 (use local currency)',
    +            's.multicurrency_code' => 'GBP/USD etc... matches field "code_iso" in table "' . MAIN_DB_PREFIX . 'c_currencies"'
    +        );
    +        $this->import_updatekeys_array[$r] = array(
    +            's.nom' => 'Name',
    +            's.code_client' => 'CustomerCode',
    +            's.code_fournisseur' => 'SupplierCode',
    +            's.code_compta' => 'CustomerAccountancyCode',
    +            's.code_compta_fournisseur' => 'SupplierAccountancyCode'
    +        );
     
    -		$this->import_convertvalue_array[$r]=array(
    -				'sr.fk_soc'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty')
    -		);
    -		$this->import_examplevalues_array[$r]=array('sr.fk_soc'=>"MyBigCompany",'sr.bank'=>"ING",
    -				'sr.code_banque'=>"0000", 'sr.code_guichet'=>"1111",'sr.number'=>"3333333333",
    -				'sr.cle_rib'=>"22",'sr.bic'=>"USHINGMMXXX",'sr.iban_prefix'=>"US00 0000 1111 22 3333 3333",'sr.domiciliation'=>"PARIS",'sr.proprio' => "Name of owner", 'sr.owner_address' => "15 paris street 75000 Paris", 'sr.default_rib' => '1 or 0'
    -		);
    +        // Import list of contacts/additional addresses and attributes
    +        $r++;
    +        $this->import_code[$r] = $this->rights_class . '_' . $r;
    +        $this->import_label[$r] = 'ImportDataset_company_2';
    +        $this->import_icon[$r] = 'contact';
    +        $this->import_entities_array[$r] = array('s.fk_soc' => 'company');    // We define here only fields that use a different icon than the one defined in import_icon
    +        $this->import_tables_array[$r] = array(
    +            's' => MAIN_DB_PREFIX . 'socpeople',
    +            'extra' => MAIN_DB_PREFIX . 'socpeople_extrafields'
    +        );    // List of tables to insert into (insert done in same order)
    +        $this->import_fields_array[$r] = array(//field order as per structure of table llx_socpeople
    +            's.datec' => "DateCreation",
    +            's.fk_soc' => 'ThirdPartyName',
    +            's.civility' => 'UserTitle',
    +            's.lastname' => "Lastname*",
    +            's.firstname' => "Firstname",
    +            's.address' => "Address",
    +            's.zip' => "Zip",
    +            's.town' => "Town",
    +            's.fk_departement' => "StateId",
    +            's.fk_pays' => "CountryCode",
    +            's.birthday' => "BirthdayDate",
    +            's.poste' => "Role",
    +            's.phone' => "Phone",
    +            's.phone_perso' => "PhonePerso",
    +            's.phone_mobile' => "PhoneMobile",
    +            's.fax' => "Fax",
    +            's.email' => "Email",
    +            's.skype' => "Skype",
    +            's.note_private' => "NotePrivate",
    +            's.note_public' => "NotePublic"
    +        );
    +        // Add extra fields
    +        $sql = "SELECT name, label, fieldrequired FROM " . MAIN_DB_PREFIX . "extrafields WHERE elementtype = 'socpeople' AND entity = " . $conf->entity;
    +        $resql = $this->db->query($sql);
    +        if ($resql)    // This can fail when class is used on an old database (during a migration for example)
    +        {
    +            while ($obj = $this->db->fetch_object($resql)) {
    +                $fieldname = 'extra.' . $obj->name;
    +                $fieldlabel = ucfirst($obj->label);
    +                $this->import_fields_array[$r][$fieldname] = $fieldlabel . ($obj->fieldrequired ? '*' : '');
    +            }
    +        }
    +        // End add extra fields
    +        $this->import_fieldshidden_array[$r] = array(
    +            's.fk_user_creat' => 'user->id',
    +            'extra.fk_object' => 'lastrowid-' . MAIN_DB_PREFIX . 'socpeople'
    +        );    // aliastable.field => ('user->id' or 'lastrowid-'.tableparent)
    +        $this->import_convertvalue_array[$r] = array(
    +            's.fk_soc' => array(
    +                'rule' => 'fetchidfromref',
    +                'file' => '/societe/class/societe.class.php',
    +                'class' => 'Societe',
    +                'method' => 'fetch',
    +                'element' => 'ThirdParty'
    +            ),
    +            's.fk_departement' => array(
    +                'rule' => 'fetchidfromcodeid',
    +                'classfile' => '/core/class/cstate.class.php',
    +                'class' => 'Cstate',
    +                'method' => 'fetch',
    +                'dict' => 'DictionaryState'
    +            ),
    +            's.fk_pays' => array(
    +                'rule' => 'fetchidfromcodeid',
    +                'classfile' => '/core/class/ccountry.class.php',
    +                'class' => 'Ccountry',
    +                'method' => 'fetch',
    +                'dict' => 'DictionaryCountry'
    +            ),
    +        );
    +        //$this->import_convertvalue_array[$r]=array('s.fk_soc'=>array('rule'=>'lastrowid',table='t');
    +        $this->import_regex_array[$r] = array(
    +            's.birthday' => '^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$',
    +            's.datec' => '^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]( [0-9][0-9]:[0-9][0-9]:[0-9][0-9])?$'
    +        );
    +        $this->import_examplevalues_array[$r] = array(//field order as per structure of table llx_socpeople
    +            's.datec' => 'formatted as ' . dol_print_date(dol_now(), '%Y-%m-%d'),
    +            's.fk_soc' => 'Third Party name eg. TPBigCompany',
    +            's.civility' => 'honorific eg: MR...matches field "code" in table "' . MAIN_DB_PREFIX . 'c_civility"',
    +            's.lastname' => "lastname or label",
    +            's.firstname' => 'John',
    +            's.address' => '61 Jump street',
    +            's.zip' => '75000',
    +            's.town' => 'Bigtown',
    +            's.fk_departement' => 'matches field "code_departement" in table "' . MAIN_DB_PREFIX . 'c_departements"',
    +            's.fk_pays' => 'US/FR/DE etc. matches field "code" in table "' . MAIN_DB_PREFIX . 'c_country"',
    +            's.birthday' => 'formatted as ' . dol_print_date(dol_now(), '%Y-%m-%d'),
    +            's.poste' => "Director",
    +            's.phone' => "5551122",
    +            's.phone_perso' => "5551133",
    +            's.phone_mobile' => "5551144",
    +            's.fax' => "5551155",
    +            's.email' => "johnsmith@email.com",
    +            's.skype' => "skype username",
    +            's.note_private' => "My private note",
    +            's.note_public' => "My public note"
    +        );
    +
    +        // Import Bank Accounts
    +        $r++;
    +        $this->import_code[$r] = $this->rights_class . '_' . $r;
    +        $this->import_label[$r] = "ImportDataset_company_3";    // Translation key
    +        $this->import_icon[$r] = 'company';
    +        $this->import_entities_array[$r] = array();        // We define here only fields that use a different icon to the one defined in import_icon
    +        $this->import_tables_array[$r] = array('sr' => MAIN_DB_PREFIX . 'societe_rib');
    +        $this->import_fields_array[$r] = array(//field order as per structure of table llx_societe_rib
    +            'sr.label' => "Label*",
    +            'sr.fk_soc' => "ThirdPartyName*",
    +            'sr.datec' => "DateCreation*",
    +            'sr.bank' => "Bank",
    +            'sr.code_banque' => "BankCode",
    +            'sr.code_guichet' => "DeskCode",
    +            'sr.number' => "BankAccountNumber*",
    +            'sr.cle_rib' => "BankAccountNumberKey",
    +            'sr.bic' => "BIC",
    +            'sr.iban_prefix' => "IBAN",
    +            'sr.domiciliation' => "BankAccountDomiciliation",
    +            'sr.proprio' => "BankAccountOwner",
    +            'sr.owner_address' => "BankAccountOwnerAddress",
    +            'sr.default_rib' => 'Default'
    +        );
    +
    +        $this->import_convertvalue_array[$r] = array(
    +            'sr.fk_soc' => array(
    +                'rule' => 'fetchidfromref',
    +                'classfile' => '/societe/class/societe.class.php',
    +                'class' => 'Societe',
    +                'method' => 'fetch',
    +                'element' => 'ThirdParty'
    +            )
    +        );
    +        $this->import_examplevalues_array[$r] = array(//field order as per structure of table llx_societe_rib
    +            'sr.label' => 'eg. "account1"',
    +            'sr.fk_soc' => 'eg. "TPBigCompany"',
    +            'sr.datec' => 'date used for creating direct debit UMR formatted as ' . dol_print_date(dol_now(),
    +                    '%Y-%m-%d'),
    +            'sr.bank' => 'bank name eg: "ING-Direct"',
    +            'sr.code_banque' => 'account sort code (GB)/Routing number (US) eg. "8456"',
    +            'sr.code_guichet' => "bank code for office/branch",
    +            'sr.number' => 'account number eg. "3333333333"',
    +            'sr.cle_rib' => 'account checksum/control digits (if used) eg. "22"',
    +            'sr.bic' => 'bank identifier eg. "USHINGMMXXX"',
    +            'sr.iban_prefix' => 'complete account IBAN eg. "GB78CPBK08925068637123"',
    +            'sr.domiciliation' => 'bank branch address eg. "PARIS"',
    +            'sr.proprio' => 'name on the bank account',
    +            'sr.owner_address' => 'address of account holder',
    +            'sr.default_rib' => '1 (default account) / 0 (not default)'
    +        );
     
     		// Import Company Sales representatives
     		$r++;
    diff --git a/htdocs/core/modules/modStock.class.php b/htdocs/core/modules/modStock.class.php
    index ff767dd3658..4cdc5aabf83 100644
    --- a/htdocs/core/modules/modStock.class.php
    +++ b/htdocs/core/modules/modStock.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012	   Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -48,7 +48,7 @@ class modStock extends DolibarrModules
     		$this->numero = 52;
     
     		$this->family = "products";
    -		$this->module_position = 40;
    +		$this->module_position = '40';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des stocks";
    @@ -65,16 +65,19 @@ class modStock extends DolibarrModules
     		$this->config_page_url = array("stock.php");
     
     		// Dependencies
    -		$this->depends = array("modProduct");
    -		$this->requiredby = array("modProductBatch");
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array("modProduct");		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array("modProductBatch");	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->langfiles = array("stocks");
     
     		// Constants
     		$this->const = array();
     		$r=0;
    -		
    +
     		$this->const[$r] = array('STOCK_ALLOW_NEGATIVE_TRANSFER','chaine','1','',1);
    -		
    +
     		$r++;
     		$this->const[$r][0] = "STOCK_ADDON_PDF";
     		$this->const[$r][1] = "chaine";
    @@ -170,7 +173,6 @@ class modStock extends DolibarrModules
     		$this->rights[9][3] = 0; 					// Permission by default for new user (0/1)
     		$this->rights[9][4] = 'inventory_advance';			// In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
     		$this->rights[9][5] = 'changePMP';			// In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
    -
     		}
     
     		// Main menu entries
    @@ -270,7 +272,7 @@ class modStock extends DolibarrModules
     			'e.rowid'=>'IdWarehouse','e.ref'=>'LocationSummary','e.description'=>'DescWareHouse','e.lieu'=>'LieuWareHouse','e.address'=>'Address','e.zip'=>'Zip',
     			'e.town'=>'Town','p.rowid'=>"ProductId",'p.ref'=>"Ref",'p.fk_product_type'=>"Type",'p.label'=>"Label",'p.description'=>"Description",'p.note'=>"Note",
     			'p.price'=>"Price",'p.tva_tx'=>'VAT','p.tosell'=>"OnSell",'p.tobuy'=>'OnBuy','p.duration'=>"Duration",'p.datec'=>'DateCreation',
    -			'p.tms'=>'DateModification','sm.rowid'=>'MovementId','sm.value'=>'Qty','sm.datem'=>'DateMovement','sm.label'=>'LabelMovement',
    +			'p.tms'=>'DateModification','sm.rowid'=>'MovementId','sm.value'=>'Qty','sm.datem'=>'DateMovement','sm.label'=>'MovementLabel',
     			'sm.inventorycode'=>'InventoryCode'
     		);
     		$this->export_TypeFields_array[$r]=array(
    @@ -345,10 +347,9 @@ class modStock extends DolibarrModules
     		$this->import_run_sql_after_array[$r]=array(    // Because we may change data that are denormalized, we must update dernormalized data after.
     		    'UPDATE llx_product p SET p.stock= (SELECT SUM(ps.reel) FROM llx_product_stock ps WHERE ps.fk_product = p.rowid);'
     		);
    -
     	}
    -	
    -	
    +
    +
     	/**
     	 *		Function called when module is enabled.
     	 *		The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
    diff --git a/htdocs/core/modules/modStripe.class.php b/htdocs/core/modules/modStripe.class.php
    index ac11e53e733..9a1584da477 100644
    --- a/htdocs/core/modules/modStripe.class.php
    +++ b/htdocs/core/modules/modStripe.class.php
    @@ -65,10 +65,11 @@ class modStripe extends DolibarrModules
             // Data directories to create when module is enabled.
             $this->dirs = array();
     
    -        // Config pages. Put here list of php page names stored in admmin directory used to setup module.
    +        // Config pages. Put here list of php page names stored in admin directory used to setup module.
             $this->config_page_url = array("stripe.php@stripe");
     
             // Dependencies
    +        $this->hidden = false;			// A condition to hide module
             $this->depends = array();		// List of modules id that must be enabled if this module is enabled
             $this->requiredby = array();	// List of modules id to disable if this one is disabled
             $this->phpmin = array(5,4);					// Minimum version of PHP required by module
    @@ -91,7 +92,7 @@ class modStripe extends DolibarrModules
     
             // Main menu entries
             $r=0;
    -        $this->menu[$r]=array(
    +       /* $this->menu[$r]=array(
             	'fk_menu'=>'fk_mainmenu=billing,fk_leftmenu=customers_bills_payment',		    // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
     	        'mainmenu'=>'billing',
             	'leftmenu'=>'customers_bills_payment_stripe',
    @@ -105,7 +106,7 @@ class modStripe extends DolibarrModules
     	        'target'=>'',
     	        'user'=>2
             );				                // 0=Menu for internal users, 1=external users, 2=both
    -        $r++;
    +        $r++;*/
     
             $this->menu[$r] = array(
             	'fk_menu'=>'fk_mainmenu=bank',
    @@ -130,7 +131,7 @@ class modStripe extends DolibarrModules
     			'url' => '/stripe/charge.php',
     			'langs' => 'stripe',
     			'position' => 102,
    -			'enabled' => '$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 2',
    +			'enabled' => '$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',
     			'perms' => '$user->rights->banque->lire',
     			'target' => '',
     			'user' => 0
    @@ -144,7 +145,7 @@ class modStripe extends DolibarrModules
     			'url' => '/stripe/transaction.php',
     			'langs' => 'stripe',
     			'position' => 102,
    -			'enabled' => '$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 2',
    +			'enabled' => '$conf->stripe->enabled && $conf->banque->enabled && $conf->global->MAIN_FEATURES_LEVEL >= 1',
     			'perms' => '$user->rights->banque->lire',
     			'target' => '',
     			'user' => 0
    diff --git a/htdocs/core/modules/modSupplierProposal.class.php b/htdocs/core/modules/modSupplierProposal.class.php
    index b1881f11c71..570680b163b 100644
    --- a/htdocs/core/modules/modSupplierProposal.class.php
    +++ b/htdocs/core/modules/modSupplierProposal.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2015	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Juanjo Menent			<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -32,7 +32,7 @@ include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
     
     
     /**
    - *	Class to describe and enable module AskPriceSupllier
    + *	Class to describe and enable module SupplierProposal
      */
     class modSupplierProposal extends DolibarrModules
     {
    @@ -57,13 +57,19 @@ class modSupplierProposal extends DolibarrModules
     
     		$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
     		$this->picto='supplier_proposal';
    -
    +        
    +		// Data directories to create when module is enabled.
     		$this->dirs = array();
    +		
    +		 // Config pages. Put here list of php page names stored in admin directory used to setup module.
    +        $this->config_page_url = array("supplier_proposal.php");
     
    -		// Dependancies
    -		$this->depends = array('modFournisseur');
    -		$this->requiredby = array();
    -		$this->config_page_url = array("supplier_proposal.php");
    +		// Dependencies
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array('modFournisseur');		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->langfiles = array("supplier_proposal");
     
     		// Constants
    @@ -251,5 +257,4 @@ class modSupplierProposal extends DolibarrModules
     
     	    return $this->_remove($sql, $options);
     	}
    -
     }
    \ No newline at end of file
    diff --git a/htdocs/core/modules/modSyslog.class.php b/htdocs/core/modules/modSyslog.class.php
    index b9db018a1c3..0a7e69ec2fe 100644
    --- a/htdocs/core/modules/modSyslog.class.php
    +++ b/htdocs/core/modules/modSyslog.class.php
    @@ -67,8 +67,11 @@ class modSyslog extends DolibarrModules
     		$this->config_page_url = array("syslog.php");
     
     		// Dependencies
    -		$this->depends = array();
    -		$this->requiredby = array();
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     
     		// Constants
     		$this->const = array();
    @@ -82,20 +85,20 @@ class modSyslog extends DolibarrModules
     
     		// Cronjobs
     		$this->cronjobs = array(
    -		    0=>array(
    -		    	'label'=>'CompressSyslogs',
    -		    	'jobtype'=>'method',
    -		    	'class'=>'core/class/utils.class.php',
    -		    	'objectname'=>'Utils',
    -		    	'method'=>'compressSyslogs',
    -		    	'parameters'=>'',
    -		    	'comment'=>'Compress and archive log files. Warning: batch must be run with same account than your web server to avoid to get log files with different owner than required by web server. Another solution is to set web server Operating System group as the group of directory documents and set GROUP permission "rws" on this directory so log files will always have the group and permissions of the web server Operating System group',
    -		    	'frequency'=>1,
    -		    	'unitfrequency'=> 3600 * 24,
    -		    	'priority'=>50,
    -		    	'status'=>0,
    -		    	'test'=>true
    -		    )
    +			0 => array(
    +				'label' => 'CompressSyslogs',
    +				'jobtype' => 'method',
    +				'class' => 'core/class/utils.class.php',
    +				'objectname' => 'Utils',
    +				'method' => 'compressSyslogs',
    +				'parameters' => '',
    +				'comment' => 'Compress and archive log files. Warning: batch must be run with same account than your web server to avoid to get log files with different owner than required by web server. Another solution is to set web server Operating System group as the group of directory documents and set GROUP permission "rws" on this directory so log files will always have the group and permissions of the web server Operating System group',
    +				'frequency' => 1,
    +				'unitfrequency' => 3600 * 24,
    +				'priority' => 50,
    +				'status' => 0,
    +				'test' => true
    +			)
     		);
     	}
     }
    diff --git a/htdocs/core/modules/modTakePos.class.php b/htdocs/core/modules/modTakePos.class.php
    new file mode 100644
    index 00000000000..c47a66c3de2
    --- /dev/null
    +++ b/htdocs/core/modules/modTakePos.class.php
    @@ -0,0 +1,314 @@
    +<?php
    +/* Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2018 SuperAdmin
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * 	\defgroup   takepos     Module TakePos
    + *  \brief      TakePos module descriptor.
    + *
    + *  \file       htdocs/takepos/core/modules/modTakePos.class.php
    + *  \ingroup    takepos
    + *  \brief      Description and activation file for module TakePos
    + */
    +include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
    +
    +
    +/**
    + *  Class to describe and enable module TakePos
    + */
    +class modTakePos extends DolibarrModules
    +{
    +	/**
    +	 * Constructor. Define names, constants, directories, boxes, permissions
    +	 *
    +	 * @param DoliDB $db Database handler
    +	 */
    +	public function __construct($db)
    +	{
    +        global $langs,$conf;
    +
    +        $this->db = $db;
    +
    +		// Id for module (must be unique).
    +		// Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id).
    +		$this->numero = 50150;
    +		// Key text used to identify module (for permissions, menus, etc...)
    +		$this->rights_class = 'takepos';
    +
    +		// Family can be 'crm','financial','hr','projects','products','ecm','technic','interface','other'
    +		// It is used to group modules by family in module setup page
    +		$this->family = "portal";
    +		// Module position in the family on 2 digits ('01', '10', '20', ...)
    +		$this->module_position = '60';
    +		// Gives the possibility to the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this)
    +		//$this->familyinfo = array('myownfamily' => array('position' => '01', 'label' => $langs->trans("MyOwnFamily")));
    +
    +		// Module label (no space allowed), used if translation string 'ModuleTakePosName' not found (MyModue is name of module).
    +		$this->name = preg_replace('/^mod/i','',get_class($this));
    +		// Module description, used if translation string 'ModuleTakePosDesc' not found (MyModue is name of module).
    +		$this->description = "Point of sales module (Touch Screen POS)";
    +		// Used only if file README.md and README-LL.md not found.
    +		$this->descriptionlong = "Point Of Sales (compliant with touch screen)";
    +
    +		// Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z'
    +		$this->version = 'experimental';
    +		// Key used in llx_const table to save module status enabled/disabled (where TAKEPOS is value of property name of module in uppercase)
    +		$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
    +		// Name of image file used for this module.
    +		// If file is in theme/yourtheme/img directory under name object_pictovalue.png, use this->picto='pictovalue'
    +		// If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module'
    +		$this->picto='list';
    +
    +		// Defined all module parts (triggers, login, substitutions, menus, css, etc...)
    +		// for default path (eg: /takepos/core/xxxxx) (0=disable, 1=enable)
    +		// for specific path of parts (eg: /takepos/core/modules/barcode)
    +		// for specific css file (eg: /takepos/css/takepos.css.php)
    +		$this->module_parts = array(
    +		                        	'triggers' => 0,                                 	// Set this to 1 if module has its own trigger directory (core/triggers)
    +									'login' => 0,                                    	// Set this to 1 if module has its own login method file (core/login)
    +									'substitutions' => 1,                            	// Set this to 1 if module has its own substitution function file (core/substitutions)
    +									'menus' => 0,                                    	// Set this to 1 if module has its own menus handler directory (core/menus)
    +									'theme' => 0,                                    	// Set this to 1 if module has its own theme directory (theme)
    +		                        	'tpl' => 0,                                      	// Set this to 1 if module overwrite template dir (core/tpl)
    +									'barcode' => 0,                                  	// Set this to 1 if module has its own barcode directory (core/modules/barcode)
    +									'models' => 0,                                   	// Set this to 1 if module has its own models directory (core/modules/xxx)
    +									'hooks' => array('data'=>array('invoicecard'), 'entity'=>'0') 	// Set here all hooks context managed by module. To find available hook context, make a "grep -r '>initHooks(' *" on source code. You can also set hook context 'all'
    +		                        );
    +
    +		// Data directories to create when module is enabled.
    +		// Example: this->dirs = array("/takepos/temp","/takepos/subdir");
    +		$this->dirs = array();
    +
    +		// Config pages. Put here list of php page, stored into takepos/admin directory, to use to setup module.
    +		$this->config_page_url = array("setup.php@takepos");
    +
    +		// Dependencies
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array('always1'=>"modBanque", 'always2'=>"modFacture", 'always3'=>"modProduct", 'always4'=>'modCategorie', 'FR1'=>'modBlockedLog');			// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->langfiles = array("cashdesk");
    +		$this->phpmin = array(5,4);					// Minimum version of PHP required by module
    +		$this->need_dolibarr_version = array(4,0);	// Minimum version of Dolibarr required by module
    +		$this->warnings_activation = array('FR'=>'WarningNoteModulePOSForFrenchLaw');                     // Warning to show when we activate module. array('always'='text') or array('FR'='text')
    +		$this->warnings_activation_ext = array();                 // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
    +		//$this->automatic_activation = array('FR'=>'TakePosWasAutomaticallyActivatedBecauseOfYourCountryChoice');
    +		//$this->always_enabled = true;								// If true, can't be disabled
    +
    +		// Constants
    +		// List of particular constants to add when module is enabled (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive)
    +		// Example: $this->const=array(0=>array('TAKEPOS_MYNEWCONST1','chaine','myvalue','This is a constant to add',1),
    +		//                             1=>array('TAKEPOS_MYNEWCONST2','chaine','myvalue','This is another constant to add',0, 'current', 1)
    +		// );
    +		$this->const = array(
    +			//1=>array('TAKEPOS_MYCONSTANT', 'chaine', 'avalue', 'This is a constant to add', 1, 'allentities', 1)
    +		);
    +
    +
    +		if (! isset($conf->takepos) || ! isset($conf->takepos->enabled))
    +		{
    +			$conf->takepos=new stdClass();
    +			$conf->takepos->enabled=0;
    +		}
    +
    +
    +		// Array to add new pages in new tabs
    +        $this->tabs = array();
    +		// Example:
    +		// $this->tabs[] = array('data'=>'objecttype:+tabname1:Title1:mylangfile@takepos:$user->rights->takepos->read:/takepos/mynewtab1.php?id=__ID__');  					// To add a new tab identified by code tabname1
    +        // $this->tabs[] = array('data'=>'objecttype:+tabname2:SUBSTITUTION_Title2:mylangfile@takepos:$user->rights->othermodule->read:/takepos/mynewtab2.php?id=__ID__',  	// To add another new tab identified by code tabname2. Label will be result of calling all substitution functions on 'Title2' key.
    +        // $this->tabs[] = array('data'=>'objecttype:-tabname:NU:conditiontoremove');                                                     										// To remove an existing tab identified by code tabname
    +        //
    +        // Where objecttype can be
    +		// 'categories_x'	  to add a tab in category view (replace 'x' by type of category (0=product, 1=supplier, 2=customer, 3=member)
    +		// 'contact'          to add a tab in contact view
    +		// 'contract'         to add a tab in contract view
    +		// 'group'            to add a tab in group view
    +		// 'intervention'     to add a tab in intervention view
    +		// 'invoice'          to add a tab in customer invoice view
    +		// 'invoice_supplier' to add a tab in supplier invoice view
    +		// 'member'           to add a tab in fundation member view
    +		// 'opensurveypoll'	  to add a tab in opensurvey poll view
    +		// 'order'            to add a tab in customer order view
    +		// 'order_supplier'   to add a tab in supplier order view
    +		// 'payment'		  to add a tab in payment view
    +		// 'payment_supplier' to add a tab in supplier payment view
    +		// 'product'          to add a tab in product view
    +		// 'propal'           to add a tab in propal view
    +		// 'project'          to add a tab in project view
    +		// 'stock'            to add a tab in stock view
    +		// 'thirdparty'       to add a tab in third party view
    +		// 'user'             to add a tab in user view
    +
    +
    +        // Dictionaries
    +		$this->dictionaries=array();
    +        /* Example:
    +        $this->dictionaries=array(
    +            'langs'=>'mylangfile@takepos',
    +            'tabname'=>array(MAIN_DB_PREFIX."table1",MAIN_DB_PREFIX."table2",MAIN_DB_PREFIX."table3"),		// List of tables we want to see into dictonnary editor
    +            'tablib'=>array("Table1","Table2","Table3"),													// Label of tables
    +            'tabsql'=>array('SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table1 as f','SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table2 as f','SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table3 as f'),	// Request to select fields
    +            'tabsqlsort'=>array("label ASC","label ASC","label ASC"),																					// Sort order
    +            'tabfield'=>array("code,label","code,label","code,label"),																					// List of fields (result of select to show dictionary)
    +            'tabfieldvalue'=>array("code,label","code,label","code,label"),																				// List of fields (list of fields to edit a record)
    +            'tabfieldinsert'=>array("code,label","code,label","code,label"),																			// List of fields (list of fields for insert)
    +            'tabrowid'=>array("rowid","rowid","rowid"),																									// Name of columns with primary key (try to always name it 'rowid')
    +            'tabcond'=>array($conf->takepos->enabled,$conf->takepos->enabled,$conf->takepos->enabled)												// Condition to show each dictionary
    +        );
    +        */
    +
    +
    +        // Boxes/Widgets
    +		// Add here list of php file(s) stored in takepos/core/boxes that contains class to show a widget.
    +        $this->boxes = array(
    +        	//0=>array('file'=>'takeposwidget1.php@takepos','note'=>'Widget provided by TakePos','enabledbydefaulton'=>'Home'),
    +        	//1=>array('file'=>'takeposwidget2.php@takepos','note'=>'Widget provided by TakePos'),
    +        	//2=>array('file'=>'takeposwidget3.php@takepos','note'=>'Widget provided by TakePos')
    +        );
    +
    +
    +		// Cronjobs (List of cron jobs entries to add when module is enabled)
    +		// unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week
    +		$this->cronjobs = array(
    +			//0=>array('label'=>'MyJob label', 'jobtype'=>'method', 'class'=>'/takepos/class/myobject.class.php', 'objectname'=>'MyObject', 'method'=>'doScheduledJob', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>true)
    +		);
    +		// Example: $this->cronjobs=array(0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>true),
    +		//                                1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>true)
    +		// );
    +
    +
    +		// Permissions
    +		$this->rights = array();		// Permission array used by this module
    +
    +		$r=0;
    +
    +		$r++;
    +		$this->rights[$r][0] = 50151;
    +		$this->rights[$r][1] = 'Use point of sale';
    +		$this->rights[$r][2] = 'a';
    +		$this->rights[$r][3] = 0;
    +		$this->rights[$r][4] = 'use';
    +
    +
    +		// Main menu entries
    +		$this->menu = array();			// List of menus to add
    +		$r=0;
    +
    +		// Add here entries to declare new menus
    +
    +		/* BEGIN MODULEBUILDER TOPMENU */
    +		$this->menu[$r++]=array('fk_menu'=>'',			                // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
    +								'type'=>'top',			                // This is a Top menu entry
    +								'titre'=>'PointOfSaleShort',
    +								'mainmenu'=>'takepos',
    +								'leftmenu'=>'',
    +								'url'=>'/takepos/takepos.php',
    +								'langs'=>'cashdesk',	        // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
    +								'position'=>1000+$r,
    +								'enabled'=>'$conf->takepos->enabled',	// Define condition to show or hide menu entry. Use '$conf->takepos->enabled' if entry must be visible if module is enabled.
    +								'perms'=>'1',			                // Use 'perms'=>'$user->rights->takepos->level1->level2' if you want your menu with a permission rules
    +								'target'=>'takepos',
    +								'user'=>2);				                // 0=Menu for internal users, 1=external users, 2=both
    +
    +		/* END MODULEBUILDER TOPMENU */
    +
    +		/* BEGIN MODULEBUILDER LEFTMENU MYOBJECT
    +		$this->menu[$r++]=array(	'fk_menu'=>'fk_mainmenu=takepos',	    // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
    +								'type'=>'left',			                // This is a Left menu entry
    +								'titre'=>'List MyObject',
    +								'mainmenu'=>'takepos',
    +								'leftmenu'=>'takepos_myobject_list',
    +								'url'=>'/takepos/myobject_list.php',
    +								'langs'=>'cashdesk',	        // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
    +								'position'=>1000+$r,
    +								'enabled'=>'$conf->takepos->enabled',  // Define condition to show or hide menu entry. Use '$conf->takepos->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
    +								'perms'=>'1',			                // Use 'perms'=>'$user->rights->takepos->level1->level2' if you want your menu with a permission rules
    +								'target'=>'',
    +								'user'=>2);				                // 0=Menu for internal users, 1=external users, 2=both
    +		$this->menu[$r++]=array(	'fk_menu'=>'fk_mainmenu=takepos,fk_leftmenu=takepos',	    // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
    +								'type'=>'left',			                // This is a Left menu entry
    +								'titre'=>'New MyObject',
    +								'mainmenu'=>'takepos',
    +								'leftmenu'=>'takepos_myobject_new',
    +								'url'=>'/takepos/myobject_page.php?action=create',
    +								'langs'=>'cashdesk',	        // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
    +								'position'=>1000+$r,
    +								'enabled'=>'$conf->takepos->enabled',  // Define condition to show or hide menu entry. Use '$conf->takepos->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
    +								'perms'=>'1',			                // Use 'perms'=>'$user->rights->takepos->level1->level2' if you want your menu with a permission rules
    +								'target'=>'',
    +								'user'=>2);				                // 0=Menu for internal users, 1=external users, 2=both
    +		END MODULEBUILDER LEFTMENU MYOBJECT */
    +
    +
    +		// Exports
    +		$r=1;
    +
    +		/* BEGIN MODULEBUILDER EXPORT MYOBJECT */
    +		/*
    +		$langs->load("cashdesk");
    +		$this->export_code[$r]=$this->rights_class.'_'.$r;
    +		$this->export_label[$r]='MyObjectLines';	// Translation key (used only if key ExportDataset_xxx_z not found)
    +		$this->export_icon[$r]='myobject@takepos';
    +		$keyforclass = 'MyObject'; $keyforclassfile='/mymobule/class/myobject.class.php'; $keyforelement='myobject';
    +		include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php';
    +		$keyforselect='myobject'; $keyforaliasextra='extra'; $keyforelement='myobject';
    +		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
    +		//$this->export_dependencies_array[$r]=array('mysubobject'=>'ts.rowid', 't.myfield'=>array('t.myfield2','t.myfield3')); // To force to activate one or several fields if we select some fields that need same (like to select a unique key if we ask a field of a child to avoid the DISTINCT to discard them, or for computed field than need several other fields)
    +		$this->export_sql_start[$r]='SELECT DISTINCT ';
    +		$this->export_sql_end[$r]  =' FROM '.MAIN_DB_PREFIX.'myobject as t';
    +		$this->export_sql_end[$r] .=' WHERE 1 = 1';
    +		$this->export_sql_end[$r] .=' AND t.entity IN ('.getEntity('myobject').')';
    +		$r++; */
    +		/* END MODULEBUILDER EXPORT MYOBJECT */
    +	}
    +
    +	/**
    +	 *	Function called when module is enabled.
    +	 *	The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
    +	 *	It also creates data directories
    +	 *
    +     *	@param      string	$options    Options when enabling module ('', 'noboxes')
    +	 *	@return     int             	1 if OK, 0 if KO
    +	 */
    +	public function init($options='')
    +	{
    +		$this->_load_tables('/takepos/sql/');
    +
    +		$sql = array();
    +
    +		// Remove permissions and default values
    +		$this->remove($options);
    +
    +		return $this->_init($sql, $options);
    +	}
    +
    +	/**
    +	 *	Function called when module is disabled.
    +	 *	Remove from database constants, boxes and permissions from Dolibarr database.
    +	 *	Data directories are not deleted
    +	 *
    +	 *	@param      string	$options    Options when enabling module ('', 'noboxes')
    +	 *	@return     int             	1 if OK, 0 if KO
    +	 */
    +	public function remove($options = '')
    +	{
    +		$sql = array();
    +
    +		return $this->_remove($sql, $options);
    +	}
    +}
    diff --git a/htdocs/core/modules/modTax.class.php b/htdocs/core/modules/modTax.class.php
    index f3fa7d4e9db..ee04d79ebcb 100644
    --- a/htdocs/core/modules/modTax.class.php
    +++ b/htdocs/core/modules/modTax.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2012	Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2012	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -67,9 +67,11 @@ class modTax extends DolibarrModules
     		$this->config_page_url = array("taxes.php");
     
     		// Dependencies
    -		$this->depends = array();
    -		$this->requiredby = array();
    -		$this->conflictwith = array();
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->langfiles = array("compta","bills");
     
     		// Constants
    @@ -117,13 +119,10 @@ class modTax extends DolibarrModules
     
     
     		// Menus
    -		//-------
    -
     		$this->menu = 1;        // This module add menu entries. They are coded into menu manager.
     
     
     		// Exports
    -		//--------
     		$r=0;
     
     		$r++;
    @@ -175,7 +174,6 @@ class modTax extends DolibarrModules
     		$this->import_examplevalues_array[$r]=array('t.label'=>"VAT Payment 1st quarter 2016",'t.fk_typepayment'=>"CHQ (must be id or code found into dictionary)",
     		    't.datep'=>"2016-04-02", 't.datev'=>"2016-03-31", 't.amount'=>1000, 't.num_payment'=>'123456'
     		);
    -
     	}
     
     
    diff --git a/htdocs/core/modules/modTicket.class.php b/htdocs/core/modules/modTicket.class.php
    index 01c10a631ca..08f1050df32 100644
    --- a/htdocs/core/modules/modTicket.class.php
    +++ b/htdocs/core/modules/modTicket.class.php
    @@ -32,7 +32,6 @@ require_once DOL_DOCUMENT_ROOT . "/core/modules/DolibarrModules.class.php";
      */
     class modTicket extends DolibarrModules
     {
    -
         /**
          *     Constructor. Define names, constants, directories, boxes, permissions
          *
    @@ -55,7 +54,7 @@ class modTicket extends DolibarrModules
             // It is used to group modules in module setup page
             $this->family = "crm";
             // Module position in the family
    -        $this->module_position = 500;
    +        $this->module_position = '60';
             // Module label (no space allowed)
             // used if translation string 'ModuleXXXName' not found
             // (where XXX is value of numeric property 'numero' of module)
    @@ -95,12 +94,11 @@ class modTicket extends DolibarrModules
             $this->config_page_url = array("ticket.php");
     
             // Dependencies
    -        // List of modules id that must be enabled if this module is enabled
    -        $this->depends = array();
    -        // List of modules id to disable if this one is disabled
    -        $this->requiredby = array();
    -        // Minimum version of PHP required by module
    -        $this->phpmin = array(5, 3);
    +        $this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
             $this->langfiles = array("ticket");
             // Constants
             // List of particular constants to add when module is enabled
    @@ -115,7 +113,7 @@ class modTicket extends DolibarrModules
                 'project:+ticket:Tickets:@ticket:$user->rights->ticket->read:/ticket/list.php?projectid=__ID__',
             );
     
    -        // Dictionnaries
    +        // Dictionaries
             if (! isset($conf->ticket->enabled)) {
                 $conf->ticket=new stdClass();
                 $conf->ticket->enabled=0;
    @@ -195,7 +193,7 @@ class modTicket extends DolibarrModules
                 'leftmenu' => '1', // Use 1 if you also want to add left menu entries using this descriptor.
                 'url' => '/ticket/index.php',
                 'langs' => 'ticket', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
    -            'position' => 100,
    +            'position' => 88,
                 'enabled' => '$conf->ticket->enabled', // Define condition to show or hide menu entry. Use '$conf->ticket->enabled' if entry must be visible if module is enabled.
                 'perms' => '$user->rights->ticket->read', // Use 'perms'=>'$user->rights->ticket->level1->level2' if you want your menu with a permission rules
                 'target' => '',
    @@ -306,5 +304,4 @@ class modTicket extends DolibarrModules
     
             return $this->_init($sql, $options);
         }
    -
     }
    diff --git a/htdocs/core/modules/modUser.class.php b/htdocs/core/modules/modUser.class.php
    index 355089a09e1..40b7ff901b9 100644
    --- a/htdocs/core/modules/modUser.class.php
    +++ b/htdocs/core/modules/modUser.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -46,7 +46,7 @@ class modUser extends DolibarrModules
     		$this->numero = 0;
     
     		$this->family = "hr";		// Family for module (or "base" if core module)
    -		$this->module_position = 10;
    +		$this->module_position = '10';
     		// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
     		$this->name = preg_replace('/^mod/i','',get_class($this));
     		$this->description = "Gestion des utilisateurs (requis)";
    @@ -63,9 +63,12 @@ class modUser extends DolibarrModules
     		// Config pages
     		$this->config_page_url = array("user.php");
     
    -		// Dependancies
    -		$this->depends = array();
    -		$this->requiredby = array();
    +		// Dependencies
    +		$this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->langfiles = array("main","users","companies","members",'salaries');
     		$this->always_enabled = true;	// Can't be disabled
     
    @@ -205,13 +208,10 @@ class modUser extends DolibarrModules
     
     
             // Menus
    -        //-------
    -
             $this->menu = 1;        // This module add menu entries. They are coded into menu manager.
     
     
     		// Exports
    -		//--------
     		$r=0;
     
     		$r++;
    @@ -244,7 +244,6 @@ class modUser extends DolibarrModules
     		$this->export_sql_end[$r] .=' WHERE u.entity IN ('.getEntity('user').')';
     
     		// Imports
    -		//--------
     		$r=0;
     
     		// Import list of users attributes
    @@ -292,7 +291,6 @@ class modUser extends DolibarrModules
     			'u.email'=>"test@mycompany.com",'u.salary'=>"10000",'u.note'=>"This is an example of note for record",'u.datec'=>"2015-01-01 or 2015-01-01 12:30:00"
     		);
     		$this->import_updatekeys_array[$r]=array('u.lastname'=>'Lastname','u.firstname'=>'Firstname','u.login'=>'Login');
    -
     	}
     
     
    diff --git a/htdocs/core/modules/modVariants.class.php b/htdocs/core/modules/modVariants.class.php
    index c56f5c0e49a..1bf6c599102 100644
    --- a/htdocs/core/modules/modVariants.class.php
    +++ b/htdocs/core/modules/modVariants.class.php
    @@ -2,7 +2,7 @@
     
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016      Marcos García        <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -22,9 +22,8 @@
     /**
      * 	\defgroup   produit     Module product variants
      *  \brief      Module to manage product combinations based on product attributes
    - *  \file       htdocs/core/modules/modAttributes.class.php
    + *  \file       htdocs/core/modules/modVariants.class.php
      *  \ingroup    produit
    - *  \brief      File to describe module to manage catalog of predefined products
      */
     include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
     
    @@ -79,12 +78,10 @@ class modVariants extends DolibarrModules
     
     		// Dependencies
     		$this->hidden = false;			// A condition to hide module
    -		$this->depends = array(
    -			'modProduct'
    -		);		// List of modules id that must be enabled if this module is enabled
    -		$this->requiredby = array();	// List of modules id to disable if this one is disabled
    -		$this->conflictwith = array();	// List of modules id this module is in conflict with
    -		$this->phpmin = array(5,0);					// Minimum version of PHP required by module
    +		$this->depends = array('modProduct');	// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
     		$this->need_dolibarr_version = array(3,0);	// Minimum version of Dolibarr required by module
     		$this->langfiles = array("products");
     
    @@ -112,4 +109,3 @@ class modVariants extends DolibarrModules
     		$this->rights = array();		// Permission array used by this module
     	}
     }
    -
    diff --git a/htdocs/core/modules/modWebServices.class.php b/htdocs/core/modules/modWebServices.class.php
    index 8963f81813f..a3e9510563f 100644
    --- a/htdocs/core/modules/modWebServices.class.php
    +++ b/htdocs/core/modules/modWebServices.class.php
    @@ -55,30 +55,26 @@ class modWebServices extends DolibarrModules
             $this->dirs = array();
     
             // Config pages
    -        //-------------
             $this->config_page_url = array("index.php@webservices");
     
    -        // Dependancies
    -        //-------------
    -        $this->depends = array();
    -        $this->requiredby = array();
    -        //$this->phpmax = array(7,1);					// Maximum version of PHP required by module
    +        // Dependencies
    +        $this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
             $this->langfiles = array("other");
     
             // Constants
    -        //-----------
             $this->const = array();
     
             // New pages on tabs
    -        // -----------------
             $this->tabs = array();
     
             // Boxes
    -        //------
             $this->boxes = array();
     
             // Permissions
    -        //------------
             $this->rights = array();
             $this->rights_class = 'webservices';
             $r=0;
    diff --git a/htdocs/core/modules/modWebServicesClient.class.php b/htdocs/core/modules/modWebServicesClient.class.php
    index 9b6535143b3..35c4da5b037 100644
    --- a/htdocs/core/modules/modWebServicesClient.class.php
    +++ b/htdocs/core/modules/modWebServicesClient.class.php
    @@ -55,29 +55,26 @@ class modWebServicesClient extends DolibarrModules
             $this->dirs = array();
     
             // Config pages
    -        //-------------
             //$this->config_page_url = array();
     
    -        // Dependancies
    -        //-------------
    -        $this->depends = array();
    -        $this->requiredby = array();
    +        // Dependencies
    +        $this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
             $this->langfiles = array("other");
     
             // Constants
    -        //-----------
             $this->const = array();
     
             // New pages on tabs
    -        // -----------------
             $this->tabs = array();
     
             // Boxes
    -        //------
             $this->boxes = array();
     
             // Permissions
    -        //------------
             $this->rights = array();
             $this->rights_class = 'syncsupplierwebservices';
             $r=0;
    diff --git a/htdocs/core/modules/modWebsite.class.php b/htdocs/core/modules/modWebsite.class.php
    index fb6e91283db..01490278566 100644
    --- a/htdocs/core/modules/modWebsite.class.php
    +++ b/htdocs/core/modules/modWebsite.class.php
    @@ -46,12 +46,12 @@ class modWebsite extends DolibarrModules
     		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
     		// It is used to group modules in module setup page
             $this->family = "portal";
    -        $this->module_position = 50;
    +        $this->module_position = '50';
             // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
             $this->name = preg_replace('/^mod/i','',get_class($this));
             $this->description = "Enable to build and serve public web sites with CMS features";
     		// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
    -        $this->version = 'experimental';
    +        $this->version = 'dolibarr';
             // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
             $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
             // Name of image file used for this module.
    @@ -61,27 +61,23 @@ class modWebsite extends DolibarrModules
     		$this->dirs = array("/website/temp");
     
             // Config pages
    -        //-------------
             $this->config_page_url = array('website.php');
     
    -        // Dependancies
    -        //-------------
    +        // Dependencies
     		$this->hidden = ! empty($conf->global->MODULE_WEBSITE_DISABLED);	// A condition to disable module
     		$this->depends = array('modFckeditor');		// List of modules id that must be enabled if this module is enabled
             $this->requiredby = array();	// List of modules id to disable if this one is disabled
     		$this->conflictwith = array();	// List of modules id this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
             $this->langfiles = array("website");
     
             // Constants
    -        //-----------
            	$this->const = array();
     
             // New pages on tabs
    -        // -----------------
            	//$this->tabs[] = array();  					// To add a new tab identified by code tabname1
     
             // Boxes
    -        //------
             $this->boxes = array();
     
     		// Permissions
    @@ -111,7 +107,7 @@ class modWebsite extends DolibarrModules
             $r=0;
             $this->menu[$r]=array(	'fk_menu'=>'0',		    // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
     						        'type'=>'top',			                // This is a Left menu entry
    -						        'titre'=>'Websites',
    +						        'titre'=>'WebSites',
                                     'mainmenu'=>'website',
     						        'url'=>'/website/index.php',
     						        'langs'=>'website',	        // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
    @@ -139,4 +135,46 @@ class modWebsite extends DolibarrModules
             $this->export_sql_end[$r] .=' AND p.entity IN ('.getEntity('website').')';
             $r++;
         }
    +
    +
    +    /**
    +     *		Function called when module is enabled.
    +     *		The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
    +     *		It also creates data directories
    +     *
    +     *      @param      string	$options    Options when enabling module ('', 'noboxes')
    +     *      @return     int             	1 if OK, 0 if KO
    +     */
    +    function init($options='')
    +    {
    +    	global $conf,$langs;
    +
    +    	// Remove permissions and default values
    +    	$this->remove($options);
    +
    +    	// Copy flags and octicons directoru
    +    	$dirarray=array('common/flags', 'common/octicons');
    +    	foreach($dirarray as $dir)
    +    	{
    +	    	$src=DOL_DOCUMENT_ROOT.'/theme/'.$dir;
    +	    	$dest=DOL_DATA_ROOT.'/medias/image/'.$dir;
    +
    +	    	if (is_dir($src))
    +	    	{
    +	    		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +	    		dol_mkdir($dest);
    +	    		$result=dolCopyDir($src,$dest,0,0);
    +	    		if ($result < 0)
    +	    		{
    +	    			$langs->load("errors");
    +	    			$this->error=$langs->trans('ErrorFailToCopyDir',$src,$dest);
    +	    			return 0;
    +	    		}
    +	    	}
    +    	}
    +
    +    	$sql = array();
    +
    +    	return $this->_init($sql, $options);
    +    }
     }
    diff --git a/htdocs/core/modules/modWorkflow.class.php b/htdocs/core/modules/modWorkflow.class.php
    index e721513073a..771d718af70 100644
    --- a/htdocs/core/modules/modWorkflow.class.php
    +++ b/htdocs/core/modules/modWorkflow.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012	Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012	Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010		Laurent Destailleur  <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -68,9 +68,11 @@ class modWorkflow extends DolibarrModules
             $this->config_page_url = array('workflow.php');
     
             // Dependencies
    -        $this->depends = array();       // List of modules id that must be enabled if this module is enabled
    -        $this->requiredby = array();    // List of modules id to disable if this one is disabled
    -        $this->phpmin = array(5,2);                 // Minimum version of PHP required by module
    +       $this->hidden = false;			// A condition to hide module
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    +		$this->requiredby = array();	// List of module ids to disable if this one is disabled
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->phpmin = array(5,4);		// Minimum version of PHP required by module
             $this->need_dolibarr_version = array(2,8);  // Minimum version of Dolibarr required by module
             $this->langfiles = array("@workflow");
     
    diff --git a/htdocs/core/modules/payment/mod_payment_ant.php b/htdocs/core/modules/payment/mod_payment_ant.php
    index a09ad2355e4..b7d88464355 100644
    --- a/htdocs/core/modules/payment/mod_payment_ant.php
    +++ b/htdocs/core/modules/payment/mod_payment_ant.php
    @@ -30,9 +30,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/payment/modules_payment.php';
      */
     class mod_payment_ant extends ModeleNumRefPayments
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Ant';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +	 * @var string Error message
    +	 */
    +	public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Ant';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Ant';
     
     
         /**
    @@ -42,7 +61,7 @@ class mod_payment_ant extends ModeleNumRefPayments
          */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
     		$langs->load("bills");
     
    @@ -124,6 +143,7 @@ class mod_payment_ant extends ModeleNumRefPayments
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return next free value
     	 *
    @@ -133,8 +153,7 @@ class mod_payment_ant extends ModeleNumRefPayments
          */
         function commande_get_num($objsoc,$objforref)
         {
    +        // phpcs:enable
             return $this->getNextValue($objsoc,$objforref);
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/payment/mod_payment_cicada.php b/htdocs/core/modules/payment/mod_payment_cicada.php
    index 8fc05b6cdd8..5869032cc5b 100644
    --- a/htdocs/core/modules/payment/mod_payment_cicada.php
    +++ b/htdocs/core/modules/payment/mod_payment_cicada.php
    @@ -29,10 +29,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/payment/modules_payment.php';
      */
     class mod_payment_cicada extends ModeleNumRefPayments
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $prefix='PAY';
    -	var $error='';
    -	var $nom='Cicada';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	public $prefix='PAY';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Cicada';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Cicada';
     
     
         /**
    @@ -135,16 +155,17 @@ class mod_payment_cicada extends ModeleNumRefPayments
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return next free value
     	 *
     	 *  @param	Societe		$objsoc     Object third party
    -	 * 	@param	string		$objforref	Object for number to search
    +	 *  @param	string		$objforref	Object for number to search
     	 *  @return string      			Next free value
     	 */
     	function payment_get_num($objsoc,$objforref)
     	{
    +        // phpcs:enable
     		return $this->getNextValue($objsoc,$objforref);
     	}
    -
     }
    diff --git a/htdocs/core/modules/payment/modules_payment.php b/htdocs/core/modules/payment/modules_payment.php
    index c9023a9fc65..d9cf9b1260f 100644
    --- a/htdocs/core/modules/payment/modules_payment.php
    +++ b/htdocs/core/modules/payment/modules_payment.php
    @@ -23,7 +23,10 @@
     
     abstract class ModeleNumRefPayments
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 *	Return if a module can be used or not
    diff --git a/htdocs/core/modules/printing/modules_printing.php b/htdocs/core/modules/printing/modules_printing.php
    index 4a6560b47fa..afd46919598 100644
    --- a/htdocs/core/modules/printing/modules_printing.php
    +++ b/htdocs/core/modules/printing/modules_printing.php
    @@ -1,6 +1,6 @@
     <?php
     /*
    - * Copyright (C) 2014-2015 Frederic France      <frederic.france@free.fr>
    + * Copyright (C) 2014-2018 Frederic France      <frederic.france@netlogic.fr>
      *
      * 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
    @@ -31,8 +31,15 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
      */
     class PrintingDriver
     {
    -    var $db;
    -    var $error;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
         /**
    @@ -81,6 +88,4 @@ class PrintingDriver
             if ($langs->trans($transstring) != $transstring) return $langs->trans($transstring);
             else return $this->desc;
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/printing/printgcp.modules.php b/htdocs/core/modules/printing/printgcp.modules.php
    index 7cda95174c2..089fb95ba69 100644
    --- a/htdocs/core/modules/printing/printgcp.modules.php
    +++ b/htdocs/core/modules/printing/printgcp.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /*
    - * Copyright (C) 2014-2015  Frederic France      <frederic.france@free.fr>
    + * Copyright (C) 2014-2018  Frederic France      <frederic.france@netlogic.fr>
      *
      * 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
    @@ -35,16 +35,28 @@ use OAuth\OAuth2\Service\Google;
      */
     class printing_printgcp extends PrintingDriver
     {
    -    var $name = 'printgcp';
    -    var $desc = 'PrintGCPDesc';
    -    var $picto = 'printer';
    -    var $active = 'PRINTING_PRINTGCP';
    -    var $conf = array();
    -    var $google_id = '';
    -    var $google_secret = '';
    -    var $error;
    -    var $errors = array();
    -    var $db;
    +    public $name = 'printgcp';
    +    public $desc = 'PrintGCPDesc';
    +    public $picto = 'printer';
    +    public $active = 'PRINTING_PRINTGCP';
    +    public $conf = array();
    +    public $google_id = '';
    +    public $google_secret = '';
    +
    +    /**
    +     * @var string Error code (or message)
    +     */
    +    public $error = '';
    +
    +    /**
    +     * @var string[] Error codes (or messages)
    +     */
    +    public $errors = array();
    +
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
         private $OAUTH_SERVICENAME_GOOGLE = 'Google';
     
    @@ -63,8 +75,8 @@ class printing_printgcp extends PrintingDriver
             global $conf, $langs, $dolibarr_main_url_root;
     
             // Define $urlwithroot
    -        $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
    -        $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT;		// This is to use external domain name found into config file
    +        $urlwithouturlroot = preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
    +        $urlwithroot = $urlwithouturlroot.DOL_URL_ROOT;		// This is to use external domain name found into config file
             //$urlwithroot=DOL_MAIN_URL_ROOT;					// This is to use same domain name than current
     
             $this->db = $db;
    @@ -73,7 +85,7 @@ class printing_printgcp extends PrintingDriver
                 $this->conf[] = array(
                     'varname'=>'PRINTGCP_INFO',
                     'info'=>$langs->transnoentitiesnoconv("WarningModuleNotActive", "OAuth"),
    -                'type'=>'info'
    +                'type'=>'info',
                 );
             } else {
     
    @@ -132,7 +144,7 @@ class printing_printgcp extends PrintingDriver
     
                         $refreshtoken = $token->getRefreshToken();
     
    -                    $endoflife=$token->getEndOfLife();
    +                    $endoflife = $token->getEndOfLife();
     
                         if ($endoflife == $token::EOL_NEVER_EXPIRES)
                         {
    @@ -171,9 +183,9 @@ class printing_printgcp extends PrintingDriver
          *
          *  @return  int                     0 if OK, >0 if KO
          */
    -    function listAvailablePrinters()
    +    public function listAvailablePrinters()
         {
    -        global $bc, $conf, $langs;
    +        global $conf, $langs;
             $error = 0;
             $langs->load('printing');
     
    @@ -187,7 +199,7 @@ class printing_printgcp extends PrintingDriver
             $html.= '<td>'.$langs->trans('GCP_Type').'</td>';
             $html.= '<td align="center">'.$langs->trans("Select").'</td>';
             $html.= '</tr>'."\n";
    -        $list = $this->getlist_available_printers();
    +        $list = $this->getlistAvailablePrinters();
             //$html.= '<td><pre>'.print_r($list,true).'</pre></td>';
             foreach ($list['available'] as $printer_det)
             {
    @@ -220,7 +232,7 @@ class printing_printgcp extends PrintingDriver
          *
          *  @return array      list of printers
          */
    -    function getlist_available_printers()
    +    public function getlistAvailablePrinters()
         {
             // Token storage
             $storage = new DoliStorage($this->db, $this->conf);
    @@ -287,15 +299,17 @@ class printing_printgcp extends PrintingDriver
          * @param   string      $subdir     subdir for file
          * @return  int                     0 if OK, >0 if KO
          */
    -    function print_file($file, $module, $subdir='')
    +    public function printFile($file, $module, $subdir='')
         {
             require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
             global $conf, $user;
             $error = 0;
     
    -        $fileprint=$conf->{$module}->dir_output;
    -        if ($subdir!='') $fileprint.='/'.$subdir;
    +        $fileprint = $conf->{$module}->dir_output;
    +        if ($subdir!='') {
    +            $fileprint.='/'.$subdir;
    +        }
             $fileprint.='/'.$file;
             $mimetype = dol_mimetype($fileprint);
             // select printer uri for module order, propal,...
    @@ -326,7 +340,9 @@ class printing_printgcp extends PrintingDriver
     
             $ret = $this->sendPrintToPrinter($printer_id, $file, $fileprint, $mimetype);
             $this->error = 'PRINTGCP: '.$ret['errormessage'];
    -        if ($ret['status']!=1) $error++;
    +        if ($ret['status']!=1) {
    +            $error++;
    +        }
             return $error;
         }
     
    @@ -354,12 +370,13 @@ class printing_printgcp extends PrintingDriver
             $contents = fread($handle, filesize($filepath));
             fclose($handle);
             // Prepare post fields for sending print
    -        $post_fields = array('printerid' => $printerid,
    -                             'title' => $printjobtitle,
    -                             'contentTransferEncoding' => 'base64',
    -                             'content' => base64_encode($contents), // encode file content as base64
    -                             'contentType' => $contenttype
    -                            );
    +        $post_fields = array(
    +            'printerid' => $printerid,
    +            'title' => $printjobtitle,
    +            'contentTransferEncoding' => 'base64',
    +            'content' => base64_encode($contents), // encode file content as base64
    +            'contentType' => $contenttype,
    +        );
             // Dolibarr Token storage
             $storage = new DoliStorage($this->db, $this->conf);
             // Setup the credentials for the requests
    @@ -394,7 +411,7 @@ class printing_printgcp extends PrintingDriver
             // Send a request with api
             $response = json_decode($apiService->request(self::PRINT_URL, 'POST', $post_fields), true);
             //print '<tr><td><pre>'.print_r($response, true).'</pre></td></tr>';
    -        return array('status' =>$response['success'],'errorcode' =>$response['errorCode'],'errormessage'=>$response['message']);
    +        return array('status' => $response['success'], 'errorcode' => $response['errorCode'], 'errormessage' => $response['message']);
         }
     
     
    @@ -403,9 +420,9 @@ class printing_printgcp extends PrintingDriver
          *
          *  @return  int                     0 if OK, >0 if KO
          */
    -    function list_jobs()
    +    public function listJobs()
         {
    -        global $conf, $db, $langs, $bc;
    +        global $conf, $langs;
     
             $error = 0;
             $html = '';
    @@ -471,13 +488,11 @@ class printing_printgcp extends PrintingDriver
     
             $jobs = $responsedata['jobs'];
             //$html .= '<pre>'.print_r($jobs['0'],true).'</pre>';
    -        if (is_array($jobs))
    -        {
    -            foreach ($jobs as $value)
    -            {
    +        if (is_array($jobs)) {
    +            foreach ($jobs as $value) {
                     $html .= '<tr class="oddeven">';
                     $html .= '<td>'.$value['id'].'</td>';
    -                $dates=dol_print_date((int) substr($value['createTime'], 0, 10), 'dayhour');
    +                $dates = dol_print_date((int) substr($value['createTime'], 0, 10), 'dayhour');
                     $html .= '<td>'.$dates.'</td>';
                     $html .= '<td>'.$value['ownerId'].'</td>';
                     $html .= '<td>'.$value['printerName'].'</td>';
    @@ -500,5 +515,4 @@ class printing_printgcp extends PrintingDriver
     
             return $error;
         }
    -
     }
    diff --git a/htdocs/core/modules/printing/printipp.modules.php b/htdocs/core/modules/printing/printipp.modules.php
    index 94d14426b55..ab65f8fba3d 100644
    --- a/htdocs/core/modules/printing/printipp.modules.php
    +++ b/htdocs/core/modules/printing/printipp.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /*
    - * Copyright (C) 2014-2015  Frederic France      <frederic.france@free.fr>
    + * Copyright (C) 2014-2018  Frederic France      <frederic.france@netlogic.fr>
      *
      * 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
    @@ -19,7 +19,7 @@
     
     /**
      *      \file       htdocs/core/modules/printing/printipp.modules.php
    - *      \ingroup    mailing
    + *      \ingroup    printing
      *      \brief      File to provide printing with PrintIPP
      */
     
    @@ -30,19 +30,31 @@ include_once DOL_DOCUMENT_ROOT.'/core/modules/printing/modules_printing.php';
      */
     class printing_printipp extends PrintingDriver
     {
    -    var $name='printipp';
    -    var $desc='PrintIPPDesc';
    -    var $picto='printer';
    -    var $active='PRINTING_PRINTIPP';
    -    var $conf=array();
    -    var $host;
    -    var $port;
    -    var $userid;    /* user login */
    -    var $user;
    -    var $password;
    -    var $error;
    -    var $errors = array();
    -    var $db;
    +    public $name = 'printipp';
    +    public $desc = 'PrintIPPDesc';
    +    public $picto = 'printer';
    +    public $active = 'PRINTING_PRINTIPP';
    +    public $conf = array();
    +    public $host;
    +    public $port;
    +    public $userid;    /* user login */
    +    public $user;
    +    public $password;
    +
    +    /**
    +     * @var string Error code (or message)
    +     */
    +    public $error='';
    +
    +    /**
    +     * @var string[] Error codes (or messages)
    +     */
    +    public $errors = array();
    +
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     
         /**
    @@ -75,7 +87,7 @@ class printing_printipp extends PrintingDriver
          *
          * @return  int                     0 if OK, >0 if KO
          */
    -    function print_file($file, $module, $subdir='')
    +    public function printFile($file, $module, $subdir='')
         {
             global $conf, $user;
             $error = 0;
    @@ -93,8 +105,7 @@ class printing_printipp extends PrintingDriver
             // select printer uri for module order, propal,...
             $sql = "SELECT rowid,printer_id,copy FROM ".MAIN_DB_PREFIX."printing WHERE module = '".$module."' AND driver = 'printipp' AND userid = ".$user->id;
             $result = $this->db->query($sql);
    -        if ($result)
    -        {
    +        if ($result) {
                 $obj = $this->db->fetch_object($result);
                 if ($obj)
                 {
    @@ -105,18 +116,19 @@ class printing_printipp extends PrintingDriver
                 {
                     if (! empty($conf->global->PRINTIPP_URI_DEFAULT))
                     {
    -					dol_syslog("Will use default printer conf->global->PRINTIPP_URI_DEFAULT = ".$conf->global->PRINTIPP_URI_DEFAULT);
    +                    dol_syslog("Will use default printer conf->global->PRINTIPP_URI_DEFAULT = ".$conf->global->PRINTIPP_URI_DEFAULT);
                         $ipp->setPrinterURI($conf->global->PRINTIPP_URI_DEFAULT);
                     }
                     else
    -				{
    +                {
                         $this->errors[] = 'NoDefaultPrinterDefined';
                         $error++;
                         return $error;
                     }
                 }
    +        } else {
    +            dol_print_error($this->db);
             }
    -        else dol_print_error($this->db);
     
             // Set number of copy
             $ipp->setCopies($obj->copy);
    @@ -142,7 +154,7 @@ class printing_printipp extends PrintingDriver
          */
         function listAvailablePrinters()
         {
    -        global $bc, $conf, $langs;
    +        global $conf, $langs;
             $error = 0;
     
             $html = '<tr class="liste_titre">';
    @@ -158,11 +170,9 @@ class printing_printipp extends PrintingDriver
             $html.= '<td>'.$langs->trans('IPP_Supported').'</td>';
             $html.= '<td align="center">'.$langs->trans("Select").'</td>';
             $html.= "</tr>\n";
    -        $list = $this->getlist_available_printers();
    -        foreach ($list as $value)
    -        {
    -
    -            $printer_det = $this->get_printer_detail($value);
    +        $list = $this->getlistAvailablePrinters();
    +        foreach ($list as $value) {
    +            $printer_det = $this->getPrinterDetail($value);
                 $html.= '<tr class="oddeven">';
                 $html.= '<td>'.$value.'</td>';
                 //$html.= '<td><pre>'.print_r($printer_det,true).'</pre></td>';
    @@ -177,15 +187,12 @@ class printing_printipp extends PrintingDriver
                 $html.= '<td>'.$langs->trans('MEDIA_IPP_'.$printer_det->media_type_supported->_value1).'</td>';
                 // Defaut
                 $html.= '<td align="center">';
    -            if ($conf->global->PRINTIPP_URI_DEFAULT == $value)
    -            {
    +            if ($conf->global->PRINTIPP_URI_DEFAULT == $value) {
                     $html.= img_picto($langs->trans("Default"),'on');
    +            } else {
    +                $html.= '<a href="'.$_SERVER["PHP_SELF"].'?action=setvalue&amp;mode=test&amp;varname=PRINTIPP_URI_DEFAULT&amp;driver=printipp&amp;value='.urlencode($value).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').'</a>';
                 }
    -            else
    -			{
    -            	$html.= '<a href="'.$_SERVER["PHP_SELF"].'?action=setvalue&amp;mode=test&amp;varname=PRINTIPP_URI_DEFAULT&amp;driver=printipp&amp;value='.urlencode($value).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').'</a>';
    -          	}
    -			$html.= '</td>';
    +            $html.= '</td>';
                 $html.= '</tr>'."\n";
             }
             $this->resprint = $html;
    @@ -197,16 +204,18 @@ class printing_printipp extends PrintingDriver
          *
          *  @return array                list of printers
          */
    -    function getlist_available_printers()
    +    public function getlistAvailablePrinters()
         {
    -        global $conf,$db;
    +        global $conf, $db;
             include_once DOL_DOCUMENT_ROOT.'/includes/printipp/CupsPrintIPP.php';
             $ipp = new CupsPrintIPP();
             $ipp->setLog(DOL_DATA_ROOT.'/dolibarr_printipp.log','file',3); // logging very verbose
             $ipp->setHost($this->host);
             $ipp->setPort($this->port);
             $ipp->setUserName($this->userid);
    -        if (! empty($this->user)) $ipp->setAuthentication($this->user,$this->password);
    +        if (! empty($this->user)) {
    +            $ipp->setAuthentication($this->user, $this->password);
    +        }
             $ipp->getPrinters();
             return $ipp->available_printers;
         }
    @@ -217,7 +226,7 @@ class printing_printipp extends PrintingDriver
          *  @param  string  $uri    URI
          *  @return array           List of attributes
          */
    -    function get_printer_detail($uri)
    +    private function getPrinterDetail($uri)
         {
             global $conf,$db;
     
    @@ -227,7 +236,9 @@ class printing_printipp extends PrintingDriver
             $ipp->setHost($this->host);
             $ipp->setPort($this->port);
             $ipp->setUserName($this->userid);
    -        if (! empty($this->user)) $ipp->setAuthentication($this->user,$this->password);
    +        if (! empty($this->user)) {
    +            $ipp->setAuthentication($this->user, $this->password);
    +        }
             $ipp->setPrinterURI($uri);
             $ipp->getPrinterAttributes();
             return $ipp->printer_attributes;
    @@ -240,9 +251,9 @@ class printing_printipp extends PrintingDriver
          *
          *  @return  int                     0 if OK, >0 if KO
          */
    -    function list_jobs($module)
    +    public function listJobs($module)
         {
    -        global $conf, $db, $bc;
    +        global $conf;
             $error = 0;
             $html = '';
             include_once DOL_DOCUMENT_ROOT.'/includes/printipp/CupsPrintIPP.php';
    @@ -251,19 +262,17 @@ class printing_printipp extends PrintingDriver
             $ipp->setHost($this->host);
             $ipp->setPort($this->port);
             $ipp->setUserName($this->userid);
    -        if (! empty($this->user)) $ipp->setAuthentication($this->user,$this->password);
    +        if (! empty($this->user)) {
    +            $ipp->setAuthentication($this->user,$this->password);
    +        }
             // select printer uri for module order, propal,...
             $sql = 'SELECT rowid,printer_uri,printer_name FROM '.MAIN_DB_PREFIX.'printer_ipp WHERE module="'.$module.'"';
             $result = $this->db->query($sql);
    -        if ($result)
    -        {
    +        if ($result) {
                 $obj = $this->db->fetch_object($result);
    -            if ($obj)
    -            {
    +            if ($obj) {
                     $ipp->setPrinterURI($obj->printer_uri);
    -            }
    -            else
    -            {
    +            } else {
                     // All printers
                     $ipp->setPrinterURI("ipp://localhost:631/printers/");
                 }
    @@ -287,8 +296,7 @@ class printing_printipp extends PrintingDriver
             $jobs = $ipp->jobs_attributes;
     
             //$html .= '<pre>'.print_r($jobs,true).'</pre>';
    -        foreach ($jobs as $value )
    -        {
    +        foreach ($jobs as $value ) {
                 $html .= '<tr class="oddeven">';
                 $html .= '<td>'.$value->job_id->_value0.'</td>';
                 $html .= '<td>'.$value->job_originating_user_name->_value0.'</td>';
    @@ -302,5 +310,4 @@ class printing_printipp extends PrintingDriver
             $this->resprint = $html;
             return $error;
         }
    -
     }
    diff --git a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php
    index 78898735f0c..0047dda7669 100644
    --- a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php
    +++ b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php
    @@ -1,10 +1,10 @@
     <?php
    -/* Copyright (C) 2003 Steve Dillon
    - * Copyright (C) 2003 Laurent Passebecq
    - * Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2002-2003 Jean-Louis Bergamo	<jlb@j1b.org>
    - * Copyright (C) 2006-2013 Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2015 Francis Appels  <francis.appels@yahoo.com>
    +/* Copyright (C) 2003       Steve Dillon
    + * Copyright (C) 2003       Laurent Passebecq
    + * Copyright (C) 2001-2003  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2002-2003  Jean-Louis Bergamo      <jlb@j1b.org>
    + * Copyright (C) 2006-2013  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2015       Francis Appels          <francis.appels@yahoo.com>
      *
      * 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
    @@ -21,15 +21,15 @@
      */
     
     /**
    - *	\file		htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php
    - *	\ingroup	core
    - *	\brief		Fichier de la classe permettant d'editer au format PDF des etiquettes au format Avery ou personnalise
    + *  \file       htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php
    + *  \ingroup    core
    + *  \brief      Fichier de la classe permettant d'editer au format PDF des etiquettes au format Avery ou personnalise
      */
     
     require_once DOL_DOCUMENT_ROOT.'/core/class/commonstickergenerator.class.php';
     
     /**
    - *	Class to generate stick sheet with format Avery or other personalised
    + *  Class to generate stick sheet with format Avery or other personalised
      */
     class pdf_standardlabel extends CommonStickerGenerator
     {
    @@ -41,10 +41,12 @@ class pdf_standardlabel extends CommonStickerGenerator
     	 * @param	array		$param			Associative array containing label content and optional parameters
     	 * @return	void
     	 */
    -	function addSticker(&$pdf,$outputlangs,$param) {
    +    function addSticker(&$pdf,$outputlangs,$param)
    +    {
     		// use this method in future refactoring
     	}
    -	
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Output a sticker on page at position _COUNTX, _COUNTY (_COUNTX and _COUNTY start from 0)
     	 * - %LOGO% is replace with company logo
    @@ -61,6 +63,7 @@ class pdf_standardlabel extends CommonStickerGenerator
     	 */
     	function Add_PDF_label(&$pdf,$textleft,$header,$footer,$outputlangs,$textright='',$photo='')
     	{
    +        // phpcs:enable
     		global $mysoc, $conf, $langs;
     		global $forceimgscalewidth, $forceimgscaleheight;
     
    @@ -224,6 +227,7 @@ class pdf_standardlabel extends CommonStickerGenerator
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build PDF on disk, then output on HTTP strem.
     	 *
    @@ -236,6 +240,7 @@ class pdf_standardlabel extends CommonStickerGenerator
     	 */
     	function write_file($arrayofrecords,$outputlangs,$srctemplatepath,$outputdir='',$filename='tmp_address_sheet.pdf')
     	{
    +        // phpcs:enable
     		global $user,$conf,$langs,$mysoc,$_Avery_Labels;
     
     		$this->code=$srctemplatepath;
    @@ -255,10 +260,8 @@ class pdf_standardlabel extends CommonStickerGenerator
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("admin");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "admin"));
     
     		$title=$outputlangs->transnoentities('Labels');
     		$keywords=$title." ".$outputlangs->convToOutputCharset($mysoc->name);
    diff --git a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php
    index faa62d45431..de1aa1b5d5e 100644
    --- a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php
    +++ b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php
    @@ -50,7 +50,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     					'fontsize' => 8,
     					'stretchtext' => 4
     	);
    -	
    +
     	// set style for 2d barcode
     	private $_style2d = array(
     					'border' => false,
    @@ -61,24 +61,25 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     					'module_width' => 1, // width of a single module in points
     					'module_height' => 1 // height of a single module in points
     	);
    -	
    +
     	private $_align2d = 'N';
    -	
    +
     	private $_xres = 0.4;
    -	
    +
     	/**
     	 * write barcode to pdf
    -	 * 
    +	 *
     	 * @param PDF	  $pdf		  PDF reference
     	 * @param string  $code		   code to print
     	 * @param string  $encoding	   type of barcode
     	 * @param boolean $is2d		   true if 2d barcode
    -	 * @param int	  $x		   x position in user units 
    +	 * @param int	  $x		   x position in user units
     	 * @param int	  $y		   y position in user units
     	 * @param int	  $w		   width in user units
     	 * @param int	  $h		   height in user units
    -	 */	   
    -	private function writeBarcode(&$pdf, $code, $encoding, $is2d, $x, $y, $w, $h) 
    +	 * @return void
    +	 */
    +	private function writeBarcode(&$pdf, $code, $encoding, $is2d, $x, $y, $w, $h)
     	{
     		if ($is2d) {
     			$pdf->write2DBarcode($code, $encoding, $x, $y, $w, $h, $this->_style2d, $this->_align2d);
    @@ -86,7 +87,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     			$pdf->write1DBarcode($code, $encoding, $x, $y, $w, $h, $this->_xres, $this->_style1d);
     		}
     	}
    -	
    +
     	/**
     	 * Output a sticker on page at position _COUNTX, _COUNTY (_COUNTX and _COUNTY start from 0)
     	 *
    @@ -95,10 +96,10 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     	 * @param	array		$param			Associative array containing label content and optional parameters
     	 * @return	void
     	 */
    -	function addSticker(&$pdf,$outputlangs,$param) 
    +	function addSticker(&$pdf,$outputlangs,$param)
     	{
     		global $mysoc,$conf;
    -		
    +
     		$textleft = $param['textleft'];
     		$header = $param['textheader'];
     		$footer = $param['textfooter'];
    @@ -106,8 +107,8 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     		$code = $param['code'];
     		$encoding = $param['encoding'];
     		$is2d = $param['is2d'];
    -		
    -		
    +
    +
     
     		// We are in a new page, then we must add a page
     		if (($this->_COUNTX ==0) && ($this->_COUNTY==0) and (!$this->_First==1)) {
    @@ -132,7 +133,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     			}
     		}
     
    -		$xleft = 2; 
    +		$xleft = 2;
     		$ytop = 2;
     
     		// Top
    @@ -154,7 +155,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     		$heighttouse = $maxheighttouse;
     		$logoHeight = $heighttouse;
     		$logoWidth = $heighttouse;
    -		
    +
     		//var_dump($this->_Width.'x'.$this->_Height.' with border and scale '.$imgscale.' => max '.$maxwidthtouse.'x'.$maxheighttouse.' => We use '.$widthtouse.'x'.$heighttouse);exit;
     
     		// Center
    @@ -162,7 +163,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     		{
     			// Output left area
     			if ($textleft == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+$xleft, $_PosY+$ytop, 0, $logoHeight);
    -			else if ($code && !empty($encoding)) 
    +			else if ($code && !empty($encoding))
     			{
     				$this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+$xleft, $_PosY+$ytop, $widthtouse, $heighttouse);
     			}
    @@ -177,7 +178,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     			if (($textleft == '%LOGO%' || $textleft == '%PHOTO%' || $textleft == '%BARCODE%') && !strstr($textright, '%') )	 // left part logo/barcode right part text
     			{
     				if ($textleft == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+$xleft, $_PosY+$ytop, $widthtouse/2, 0);
    -				else if ($code && !empty($encoding)) 
    +				else if ($code && !empty($encoding))
     				{
     					$this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+$xleft, $_PosY+$ytop, $widthtouse/2, $heighttouse);
     				}
    @@ -187,7 +188,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     			else if (($textright == '%LOGO%' || $textright == '%PHOTO%' || $textright == '%BARCODE%') && !strstr($textleft, '%')) // right part logo/barcode left part text
     			{
     				if ($textright == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+($widthtouse/2), $_PosY+$ytop, $widthtouse/2, 0);
    -				else if ($code && !empty($encoding)) 
    +				else if ($code && !empty($encoding))
     				{
     					$this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+($widthtouse/2), $_PosY+$ytop, $widthtouse/2, $heighttouse);
     				}
    @@ -203,7 +204,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     				} else {
     					$pdf->SetXY($_PosX+$xleft+$logoWidth+1, $_PosY+$ytop);
     					$pdf->MultiCell($widthtouse-$logoWidth1-1, $this->_Line_Height, $outputlangs->convToOutputCharset($textright),0,'R');
    -				}				
    +				}
     			}
     			else if ($textright == '%LOGO%')  // right part logo left part text/barcode
     			{
    @@ -214,7 +215,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     				} else {
     					$pdf->SetXY($_PosX+$xleft, $_PosY+$ytop);
     					$pdf->MultiCell($widthtouse-$logoWidth-1, $this->_Line_Height, $outputlangs->convToOutputCharset($textleft),0,'L');
    -				}				
    +				}
     			}
     			else	// text on halft left and text on half right
     			{
    @@ -228,7 +229,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     		{
     			// Output right area
     			if ($textright == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+$this->_Width-$widthtouse-$xleft, $_PosY+$ytop, 0, $logoHeight);
    -			else if ($code && !empty($encoding)) 
    +			else if ($code && !empty($encoding))
     			{
     				$this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+$this->_Width-$widthtouse-$xleft, $_PosY+$ytop, $widthtouse, $heighttouse);
     			}
    @@ -265,6 +266,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build PDF on disk, then output on HTTP strem.
     	 *
    @@ -277,6 +279,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     	 */
     	function write_file($arrayofrecords,$outputlangs,$srctemplatepath,$outputdir='',$filename='tmp_address_sheet.pdf')
     	{
    +        // phpcs:enable
     		global $user,$conf,$langs,$mysoc,$_Avery_Labels;
     
     		$this->code=$srctemplatepath;
    @@ -296,10 +299,8 @@ class pdf_tcpdflabel extends CommonStickerGenerator
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("admin");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "admin"));
     
     		$title=$outputlangs->transnoentities('Labels');
     		$keywords=$title." ".$outputlangs->convToOutputCharset($mysoc->name);
    diff --git a/htdocs/core/modules/printsheet/modules_labels.php b/htdocs/core/modules/printsheet/modules_labels.php
    index bac32ec45d2..7a34d5e7e64 100644
    --- a/htdocs/core/modules/printsheet/modules_labels.php
    +++ b/htdocs/core/modules/printsheet/modules_labels.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -30,22 +30,27 @@ require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     
     
     /**
    - *	Parent class of document generator for address sheet.
    + *  Parent class of document generator for address sheet.
      */
     class ModelePDFLabels
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation modules
     	 *
    -     *  @param	DoliDB	$db     			Database handler
    +     *  @param  DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of templates
     	 */
     	function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='members_labels';
    @@ -59,6 +64,7 @@ class ModelePDFLabels
     }
     
     
    +// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     /**
      *  Create a document onto disk according to template module.
      *
    @@ -73,6 +79,7 @@ class ModelePDFLabels
      */
     function doc_label_pdf_create($db, $arrayofrecords, $modele, $outputlangs, $outputdir='', $template='standardlabel', $filename='tmp_address_sheet.pdf')
     {
    +    // phpcs:enable
     	global $conf,$langs;
     	$langs->load("members");
     
    @@ -111,7 +118,7 @@ function doc_label_pdf_create($db, $arrayofrecords, $modele, $outputlangs, $outp
     	else $srctemplatepath=$code;
     
     	dol_syslog("modele=".$modele." outputdir=".$outputdir." template=".$template." code=".$code." srctemplatepath=".$srctemplatepath." filename=".$filename, LOG_DEBUG);
    -	
    +
     	// Search template files
     	$file=''; $classname=''; $filefound=0;
     	$dirmodels=array('/');
    @@ -161,7 +168,4 @@ function doc_label_pdf_create($db, $arrayofrecords, $modele, $outputlangs, $outp
     		dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$file));
     		return -1;
     	}
    -
    -
     }
    -
    diff --git a/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php b/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php
    index 07d8222bea7..dd2527338a4 100644
    --- a/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php
    +++ b/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php
    @@ -1,7 +1,8 @@
     <?php
     /* Copyright (C) 2010-2012 	Laurent Destailleur <eldy@products.sourceforge.net>
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
    -*
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
     * 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
     * the Free Software Foundation; either version 3 of the License, or
    @@ -36,10 +37,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
      */
     class doc_generic_product_odt extends ModelePDFProduct
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +   * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +   */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -49,10 +63,10 @@ class doc_generic_product_odt extends ModelePDFProduct
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT templates";
    @@ -94,10 +108,10 @@ class doc_generic_product_odt extends ModelePDFProduct
     	 */
     	function info($langs)
     	{
    -		global $conf,$langs;
    +		global $conf, $langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("errors","companies"));
     
     		$form = new Form($this->db);
     
    @@ -191,6 +205,7 @@ class doc_generic_product_odt extends ModelePDFProduct
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -204,6 +219,7 @@ class doc_generic_product_odt extends ModelePDFProduct
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $product,$langs,$conf,$mysoc,$hookmanager,$user;
     
     		if (empty($srctemplatepath))
    @@ -225,10 +241,9 @@ class doc_generic_product_odt extends ModelePDFProduct
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills"));
    +
     		if ($conf->produit->dir_output)
     		{
     			// If $object is id instead of object
    @@ -344,16 +359,17 @@ class doc_generic_product_odt extends ModelePDFProduct
     					$odfHandler = new odf(
     						$srctemplatepath,
     						array(
    -						'PATH_TO_TMP'	  => $conf->produit->dir_temp,
    -						'ZIP_PROXY'		  => 'PclZipProxy',	// PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
    -						'DELIMITER_LEFT'  => '{',
    -						'DELIMITER_RIGHT' => '}'
    +							'PATH_TO_TMP'	  => $conf->produit->dir_temp,
    +							'ZIP_PROXY'		  => 'PclZipProxy',	// PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
    +							'DELIMITER_LEFT'  => '{',
    +							'DELIMITER_RIGHT' => '}'
     						)
     					);
     				}
    -				catch(Exception $e)
    +				catch (Exception $e)
     				{
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_INFO);
     					return -1;
     				}
     				// After construction $odfHandler->contentXml contains content and
    @@ -368,8 +384,9 @@ class doc_generic_product_odt extends ModelePDFProduct
     				try {
     					$odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8');
     				}
    -				catch(OdfException $e)
    +				catch (OdfException $e)
     				{
    +					dol_syslog($e->getMessage(), LOG_INFO);
     				}
     
     				// Define substitution array
    @@ -404,8 +421,9 @@ class doc_generic_product_odt extends ModelePDFProduct
     							$odfHandler->setVars($key, $value, true, 'UTF-8');
     						}
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     				// Replace tags of lines
    @@ -426,11 +444,13 @@ class doc_generic_product_odt extends ModelePDFProduct
     								{
     									$listlines->setVars($key, $val, true, 'UTF-8');
     								}
    -								catch(OdfException $e)
    +								catch (OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
    -								catch(SegmentException $e)
    +								catch (SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlines->merge();
    @@ -438,7 +458,7 @@ class doc_generic_product_odt extends ModelePDFProduct
     					}
     					$odfHandler->mergeSegment($listlines);
     				}
    -				catch(OdfException $e)
    +				catch (OdfException $e)
     				{
     					$this->error=$e->getMessage();
     					dol_syslog($this->error, LOG_WARNING);
    @@ -454,6 +474,7 @@ class doc_generic_product_odt extends ModelePDFProduct
     					}
     					catch(OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -465,16 +486,18 @@ class doc_generic_product_odt extends ModelePDFProduct
     				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
     				else {
     					try {
    -					$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    +						$odfHandler->saveToDisk($file);
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
    @@ -499,6 +522,4 @@ class doc_generic_product_odt extends ModelePDFProduct
     
     		return -1;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/product/doc/pdf_standard.modules.php b/htdocs/core/modules/product/doc/pdf_standard.modules.php
    index 90613d561ea..e9af5b9aa6e 100644
    --- a/htdocs/core/modules/product/doc/pdf_standard.modules.php
    +++ b/htdocs/core/modules/product/doc/pdf_standard.modules.php
    @@ -58,9 +58,9 @@ class pdf_standard extends ModelePDFProduct
     
     	/**
          * @var array() Minimum version of PHP required by module.
    -	 * e.g.: PHP ≥ 5.3 = array(5, 3)
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
          */
    -	public $phpmin = array(5, 2);
    +	public $phpmin = array(5, 4);
     
     	/**
          * Dolibarr version of the loaded document
    @@ -68,15 +68,46 @@ class pdf_standard extends ModelePDFProduct
          */
     	public $version = 'dolibarr';
     
    +    /**
    +     * @var int page_largeur
    +     */
         public $page_largeur;
    +
    +    /**
    +     * @var int page_hauteur
    +     */
         public $page_hauteur;
    +
    +    /**
    +     * @var array format
    +     */
         public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
     	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
     	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
     	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
     	public $marge_basse;
     
    -    public $emetteur;	// Objet societe qui emet
    +    /**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
     
     	/**
    @@ -88,8 +119,8 @@ class pdf_standard extends ModelePDFProduct
     	{
     		global $conf,$langs,$mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load traductions files requiredby by page
    +		$langs->loadLangs(array("main", "companies"));
     
     		$this->db = $db;
     		$this->name = "standard";
    @@ -117,6 +148,7 @@ class pdf_standard extends ModelePDFProduct
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -130,19 +162,15 @@ class pdf_standard extends ModelePDFProduct
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$db,$hookmanager;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("products");
    -		$outputlangs->load("orders");
    -		$outputlangs->load("deliveries");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "orders", "deliveries"));
     
     		$nblignes = count($object->lines);
     
    @@ -689,11 +717,9 @@ class pdf_standard extends ModelePDFProduct
     	{
     	    global $conf,$langs,$hookmanager;
     
    -	    $outputlangs->load("main");
    -	    $outputlangs->load("bills");
    -	    $outputlangs->load("propal");
    -	    $outputlangs->load("companies");
    -	    $outputlangs->load("orders");
    +	    // Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "propal", "companies", "bills", "orders"));
    +
     	    $default_font_size = pdf_getPDFFontSize($outputlangs);
     
     	    if ($object->type == 1) $titlekey='ServiceSheet';
    @@ -842,6 +868,4 @@ class pdf_standard extends ModelePDFProduct
     	    $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     	    return pdf_pagefoot($pdf,$outputlangs,'PRODUCT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/product/mod_codeproduct_elephant.php b/htdocs/core/modules/product/mod_codeproduct_elephant.php
    index 32941ca1ec9..1b455743cb2 100644
    --- a/htdocs/core/modules/product/mod_codeproduct_elephant.php
    +++ b/htdocs/core/modules/product/mod_codeproduct_elephant.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2006-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent	    <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -34,18 +34,39 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/product/modules_product.class.php'
      */
     class mod_codeproduct_elephant extends ModeleProductCode
     {
    -	var $nom='Elephant';				// Nom du modele
    -	var $name='Elephant';				// Nom du modele
    -	var $code_modifiable;				// Code modifiable
    -	var $code_modifiable_invalide;		// Code modifiable si il est invalide
    -	var $code_modifiable_null;			// Code modifiables si il est null
    -	var $code_null;						// Code facultatif
    -	var $version='dolibarr';    		// 'development', 'experimental', 'dolibarr'
    -	var $code_auto;                     // Numerotation automatique
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Elephant';
     
    -	var $searchcode; // String de recherche
    -	var $numbitcounter; // Nombre de chiffres du compteur
    -	var $prefixIsRequired; // Le champ prefix du tiers doit etre renseigne quand on utilise {pre}
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Elephant';
    +
    +	public $code_modifiable;				// Code modifiable
    +
    +	public $code_modifiable_invalide;		// Code modifiable si il est invalide
    +
    +	public $code_modifiable_null;			// Code modifiables si il est null
    +
    +	public $code_null;						// Code facultatif
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';    		// 'development', 'experimental', 'dolibarr'
    +
    +	public $code_auto;                     // Numerotation automatique
    +
    +	public $searchcode; // String de recherche
    +
    +	public $numbitcounter; // Nombre de chiffres du compteur
    +
    +	public $prefixIsRequired; // Le champ prefix du tiers doit etre renseigne quand on utilise {pre}
     
     
     	/**
    @@ -198,6 +219,7 @@ class mod_codeproduct_elephant extends ModeleProductCode
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Check if mask/numbering use prefix
     	 *
    @@ -205,6 +227,7 @@ class mod_codeproduct_elephant extends ModeleProductCode
     	 */
     	function verif_prefixIsUsed()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$mask = $conf->global->PRODUCT_ELEPHANT_MASK_PRODUCT;
    @@ -273,6 +296,7 @@ class mod_codeproduct_elephant extends ModeleProductCode
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *		Renvoi si un code est pris ou non (par autre tiers)
     	 *
    @@ -283,6 +307,7 @@ class mod_codeproduct_elephant extends ModeleProductCode
     	 */
     	function verif_dispo($db, $code, $product)
     	{
    +        // phpcs:enable
     		$sql = "SELECT ref FROM ".MAIN_DB_PREFIX."product";
     		$sql.= " WHERE ref = '".$code."'";
     		if ($product->id > 0) $sql.= " AND rowid <> ".$product->id;
    @@ -303,8 +328,5 @@ class mod_codeproduct_elephant extends ModeleProductCode
     		{
     			return -2;
     		}
    -
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/product/mod_codeproduct_leopard.php b/htdocs/core/modules/product/mod_codeproduct_leopard.php
    index 3b850e1ba91..815e383d900 100644
    --- a/htdocs/core/modules/product/mod_codeproduct_leopard.php
    +++ b/htdocs/core/modules/product/mod_codeproduct_leopard.php
    @@ -39,14 +39,33 @@ class mod_codeproduct_leopard extends ModeleProductCode
     	 * Le fonctionnement de celui-ci doit donc rester le plus ouvert possible
     	 */
     
    -	var $nom='Leopard';					// Nom du modele
    -	var $name='Leopard';					// Nom du modele
    -	var $code_modifiable;				// Code modifiable
    -	var $code_modifiable_invalide;		// Code modifiable si il est invalide
    -	var $code_modifiable_null;			// Code modifiables si il est null
    -	var $code_null;						// Code facultatif
    -	var $version='dolibarr';    		// 'development', 'experimental', 'dolibarr'
    -	var $code_auto; 	                // Numerotation automatique
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Leopard';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Leopard';
    +
    +	public $code_modifiable;				// Code modifiable
    +
    +	public $code_modifiable_invalide;		// Code modifiable si il est invalide
    +
    +	public $code_modifiable_null;			// Code modifiables si il est null
    +
    +	public $code_null;						// Code facultatif
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';    		// 'development', 'experimental', 'dolibarr'
    +
    +	public $code_auto; 	                // Numerotation automatique
     
     
     	/**
    diff --git a/htdocs/core/modules/product/modules_product.class.php b/htdocs/core/modules/product/modules_product.class.php
    index 83fc444f258..10470d4d9f0 100644
    --- a/htdocs/core/modules/product/modules_product.class.php
    +++ b/htdocs/core/modules/product/modules_product.class.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -33,18 +33,23 @@
      */
     abstract class ModelePDFProduct extends CommonDocGenerator
     {
    -	var $error='';
    -
    -
     	/**
    -	 *	Return list of active generation modules
    -	 *
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return list of active generation modules
    +     *
          *  @param	DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of templates
    -	 */
    +     */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='product';
    @@ -58,7 +63,10 @@ abstract class ModelePDFProduct extends CommonDocGenerator
     
     abstract class ModeleProductCode
     {
    -    var $error='';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
         /**     Renvoi la description par defaut du modele de numerotation
          *
    @@ -133,6 +141,7 @@ abstract class ModeleProductCode
             return $langs->trans("NotAvailable");
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Renvoi la liste des modeles de numérotation
          *
    @@ -142,6 +151,7 @@ abstract class ModeleProductCode
          */
         static function liste_modeles($db,$maxfilenamelength=0)
         {
    +        // phpcs:enable
             $liste=array();
             $sql ="";
     
    @@ -194,7 +204,7 @@ abstract class ModeleProductCode
                 if (! empty($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED) && ! empty($this->code_null)) $s.='</strike> '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
                 $s.='<br>';
             }
    -        if ($type == 1)
    +        elseif ($type == 1)
             {
                 $s.=$langs->trans("RequiredIfService").': ';
                 if (! empty($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED) && ! empty($this->code_null)) $s.='<strike>';
    @@ -202,7 +212,7 @@ abstract class ModeleProductCode
                 if (! empty($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED) && ! empty($this->code_null)) $s.='</strike> '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
                 $s.='<br>';
             }
    -        if ($type == -1)
    +        elseif ($type == -1)
             {
                 $s.=$langs->trans("Required").': ';
                 if (! empty($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED) && ! empty($this->code_null)) $s.='<strike>';
    @@ -231,15 +241,15 @@ abstract class ModeleProductCode
             return $s;
         }
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
     	 *   Check if mask/numbering use prefix
     	 *
     	 *   @return	int		0=no, 1=yes
     	 */
         function verif_prefixIsUsed()
         {
    +        // phpcs:enable
             return 0;
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/product_batch/modules_product_batch.class.php b/htdocs/core/modules/product_batch/modules_product_batch.class.php
    index 94818d17531..0a2076e4ed0 100644
    --- a/htdocs/core/modules/product_batch/modules_product_batch.class.php
    +++ b/htdocs/core/modules/product_batch/modules_product_batch.class.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -21,10 +21,10 @@
     
     
     /**
    - *	    \class      ModeleProductCode
    - *		\brief  	Parent class for product code generators
    + *      \class      ModeleProductCode
    + *      \brief      Parent class for product code generators
      */
    - 
    +
     /**
      *  \file       htdocs/core/modules/contract/modules_contract.php
      *  \ingroup    contract
    @@ -32,32 +32,36 @@
      */
     
      require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
    - 
    +
     /**
      *	Parent class to manage intervention document templates
      */
     abstract class ModelePDFProductBatch extends CommonDocGenerator
     {
    -	var $error='';
    -
    -
     	/**
    -	 *	Return list of active generation modules
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +	 *  Return list of active generation modules
     	 *
    -     *  @param	DoliDB	$db     			Database handler
    +     *  @param  DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of templates
    -	 */
    -	static function liste_modeles($db,$maxfilenamelength=0)
    +     */
    +    static function liste_modeles($db, $maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='product_batch';
    -		$liste=array();
    +		$list = array();
     
     		include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    -		$liste=getListOfModels($db,$type,$maxfilenamelength);
    -		return $liste;
    +		$list = getListOfModels($db, $type, $maxfilenamelength);
    +		return $list;
     	}
     }
    -
    diff --git a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php
    index 69a7a84f79f..6292008c54d 100644
    --- a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php
    +++ b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php
    @@ -3,6 +3,7 @@
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2013		Florian Henry		<florian.henry@ope-concept.pro>
      * Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -53,10 +54,23 @@ if (! empty($conf->agenda->enabled))      require_once DOL_DOCUMENT_ROOT.'/comm/
      */
     class doc_generic_project_odt extends ModelePDFProjects
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -66,7 +80,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
     		// Load traductions files requiredby by page
     		$langs->loadLangs(array("companies", "main"));
    @@ -103,6 +117,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Define array with couple substitution key => substitution value
     	 *
    @@ -113,6 +128,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     	 */
     	function get_substitutionarray_object($object,$outputlangs,$array_key='object')
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$resarray=array(
    @@ -140,6 +156,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     		return $resarray;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -147,26 +164,27 @@ class doc_generic_project_odt extends ModelePDFProjects
     	 *	@param  Translate		$outputlangs        Lang object to use for output
     	 *  @return	array								Return a substitution array
     	 */
    -	function get_substitutionarray_tasks($task,$outputlangs)
    +	function get_substitutionarray_tasks(Task $task,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$resarray = array(
    -		'task_ref'=>$task->ref,
    -		'task_fk_project'=>$task->fk_project,
    -		'task_projectref'=>$task->projectref,
    -		'task_projectlabel'=>$task->projectlabel,
    -		'task_label'=>$task->label,
    -		'task_description'=>$task->description,
    -		'task_fk_parent'=>$task->fk_parent,
    -		'task_duration'=>$task->duration,
    -		'task_duration_hour'=>convertSecondToTime($task->duration,'all'),
    -		'task_progress'=>$task->progress,
    -		'task_public'=>$task->public,
    -		'task_date_start'=>dol_print_date($task->date_start,'day'),
    -		'task_date_end'=>dol_print_date($task->date_end,'day'),
    -		'task_note_private'=>$task->note_private,
    -		'task_note_public'=>$task->note_public
    +			'task_ref'=>$task->ref,
    +			'task_fk_project'=>$task->fk_project,
    +			'task_projectref'=>$task->projectref,
    +			'task_projectlabel'=>$task->projectlabel,
    +			'task_label'=>$task->label,
    +			'task_description'=>$task->description,
    +			'task_fk_parent'=>$task->fk_parent,
    +			'task_duration'=>$task->duration,
    +			'task_duration_hour'=>convertSecondToTime($task->duration,'all'),
    +			'task_progress'=>$task->progress,
    +			'task_public'=>$task->public,
    +			'task_date_start'=>dol_print_date($task->date_start,'day'),
    +			'task_date_end'=>dol_print_date($task->date_end,'day'),
    +			'task_note_private'=>$task->note_private,
    +			'task_note_public'=>$task->note_public
     		);
     
     		require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
    @@ -177,9 +195,9 @@ class doc_generic_project_odt extends ModelePDFProjects
     		$resarray = $this->fill_substitutionarray_with_extrafields($task,$resarray,$extrafields,'task',$outputlangs);
     
     		return $resarray;
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -189,6 +207,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     	 */
     	function get_substitutionarray_project_contacts($contact,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     		$pc='projcontacts_'; // prefix to avoid typos
     
    @@ -214,7 +233,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     			$ret[$pc.'phone_mobile'] = $ct->phone_mobile;
     
     			// fetch external user extrafields
    -			require_once(DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php');
    +			require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     			$extrafields=new ExtraFields($this->db);
     			$extralabels=$extrafields->fetch_name_optionals_label($ct->table_element, true);
     			$extrafields_num = $ct->fetch_optionals();
    @@ -236,6 +255,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     		return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -245,6 +265,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     	 */
     	function get_substitutionarray_project_file($file,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		return array(
    @@ -254,6 +275,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     		);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -263,6 +285,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     	 */
     	function get_substitutionarray_project_reference($refdetail,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		return array(
    @@ -276,6 +299,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     		);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -285,6 +309,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     	 */
     	function get_substitutionarray_tasksressource($taskressource,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     		//dol_syslog(get_class($this).'::get_substitutionarray_tasksressource taskressource='.var_export($taskressource,true),LOG_DEBUG);
     		return array(
    @@ -298,6 +323,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     		);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -307,6 +333,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     	 */
     	function get_substitutionarray_taskstime($tasktime,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		return array(
    @@ -325,6 +352,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     		);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -334,6 +362,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     	 */
     	function get_substitutionarray_task_file($file,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		return array(
    @@ -354,8 +383,8 @@ class doc_generic_project_odt extends ModelePDFProjects
     	{
     		global $conf,$langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("companies","errors"));
     
     		$form = new Form($this->db);
     
    @@ -433,6 +462,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -443,6 +473,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$hookmanager;
     
     		if (empty($srctemplatepath))
    @@ -566,10 +597,9 @@ class doc_generic_project_odt extends ModelePDFProjects
     						'DELIMITER_RIGHT' => '}'
     						)
     					);
    -				}
    -				catch(Exception $e)
    -				{
    +				} catch (Exception $e) {
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_INFO);
     					return -1;
     				}
     				// After construction $odfHandler->contentXml contains content and
    @@ -611,8 +641,9 @@ class doc_generic_project_odt extends ModelePDFProjects
     							$odfHandler->setVars($key, $value, true, 'UTF-8');
     						}
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -642,9 +673,11 @@ class doc_generic_project_odt extends ModelePDFProjects
     							}
     							catch(OdfException $e)
     							{
    +								dol_syslog($e->getMessage(), LOG_INFO);
     							}
     							catch(SegmentException $e)
     							{
    +								dol_syslog($e->getMessage(), LOG_INFO);
     							}
     						}
     
    @@ -691,9 +724,11 @@ class doc_generic_project_odt extends ModelePDFProjects
     									}
     									catch(OdfException $e)
     									{
    +										dol_syslog($e->getMessage(), LOG_INFO);
     									}
     									catch(SegmentException $e)
     									{
    +										dol_syslog($e->getMessage(), LOG_INFO);
     									}
     								}
     								$listlinestaskres->merge();
    @@ -715,6 +750,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     							$num = $this->db->num_rows($resql);
     							$i = 0;
     							$tasks = array();
    +							$row=array();
     							$listlinestasktime = $listlines->__get('taskstimes');
     							if (empty($num)) {
     								$row['rowid']='';
    @@ -738,9 +774,11 @@ class doc_generic_project_odt extends ModelePDFProjects
     									}
     									catch(OdfException $e)
     									{
    +										dol_syslog($e->getMessage(), LOG_INFO);
     									}
     									catch(SegmentException $e)
     									{
    +										dol_syslog($e->getMessage(), LOG_INFO);
     									}
     								}
     								$listlinestasktime->merge();
    @@ -759,7 +797,7 @@ class doc_generic_project_odt extends ModelePDFProjects
     								if (!empty($row['thm'])) {
     									$row['amountht']=($row['task_duration'] / 3600) * $row['thm'];
     									$defaultvat = get_default_tva($mysoc, $mysoc);
    -									$row['amountttc']=price2num($row['amountht'] * (1 + ($defaultvat / 100)),'MT');;
    +									$row['amountttc']=price2num($row['amountht'] * (1 + ($defaultvat / 100)),'MT');
     								} else {
     									$row['amountht']=0;
     									$row['amountttc']=0;
    @@ -776,9 +814,11 @@ class doc_generic_project_odt extends ModelePDFProjects
     									}
     									catch(OdfException $e)
     									{
    +										dol_syslog($e->getMessage(), LOG_INFO);
     									}
     									catch(SegmentException $e)
     									{
    +										dol_syslog($e->getMessage(), LOG_INFO);
     									}
     								}
     								$listlinestasktime->merge();
    @@ -805,11 +845,13 @@ class doc_generic_project_odt extends ModelePDFProjects
     								{
     									$listtasksfiles->setVars($key, $val, true, 'UTF-8');
     								}
    -								catch(OdfException $e)
    +								catch (OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
    -								catch(SegmentException $e)
    +								catch (SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listtasksfiles->merge();
    @@ -851,9 +893,11 @@ class doc_generic_project_odt extends ModelePDFProjects
     							}
     							catch(OdfException $e)
     							{
    +								dol_syslog($e->getMessage(), LOG_INFO);
     							}
     							catch(SegmentException $e)
     							{
    +								dol_syslog($e->getMessage(), LOG_INFO);
     							}
     						}
     						$listlines->merge();
    @@ -908,9 +952,11 @@ class doc_generic_project_odt extends ModelePDFProjects
     								}
     								catch(OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     								catch(SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlines->merge();
    @@ -928,113 +974,113 @@ class doc_generic_project_odt extends ModelePDFProjects
     				//List of referent
     
     				$listofreferent = array(
    -						'propal' => array(
    -								'title' => "ListProposalsAssociatedProject",
    -								'class' => 'Propal',
    -								'table' => 'propal',
    -								'test' => $conf->propal->enabled && $user->rights->propale->lire
    -						),
    -						'order' => array(
    -								'title' => "ListOrdersAssociatedProject",
    -								'class' => 'Commande',
    -								'table' => 'commande',
    -								'test' => $conf->commande->enabled && $user->rights->commande->lire
    -						),
    -						'invoice' => array(
    -								'title' => "ListInvoicesAssociatedProject",
    -								'class' => 'Facture',
    -								'table' => 'facture',
    -								'test' => $conf->facture->enabled && $user->rights->facture->lire
    -						),
    -						'invoice_predefined' => array(
    -								'title' => "ListPredefinedInvoicesAssociatedProject",
    -								'class' => 'FactureRec',
    -								'table' => 'facture_rec',
    -								'test' => $conf->facture->enabled && $user->rights->facture->lire
    -						),
    -						'proposal_supplier' => array(
    -								'title' => "ListSupplierProposalsAssociatedProject",
    -								'class' => 'SupplierProposal',
    -								'table' => 'supplier_proposal',
    -								'test' => $conf->supplier_proposal->enabled && $user->rights->supplier_proposal->lire
    -						),
    -						'order_supplier' => array(
    -								'title' => "ListSupplierOrdersAssociatedProject",
    -								'table' => 'commande_fournisseur',
    -								'class' => 'CommandeFournisseur',
    -								'test' => $conf->fournisseur->enabled && $user->rights->fournisseur->commande->lire
    -						),
    -						'invoice_supplier' => array(
    -								'title' => "ListSupplierInvoicesAssociatedProject",
    -								'table' => 'facture_fourn',
    -								'class' => 'FactureFournisseur',
    -								'test' => $conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire
    -						),
    -						'contract' => array(
    -								'title' => "ListContractAssociatedProject",
    -								'class' => 'Contrat',
    -								'table' => 'contrat',
    -								'test' => $conf->contrat->enabled && $user->rights->contrat->lire
    -						),
    -						'intervention' => array(
    -								'title' => "ListFichinterAssociatedProject",
    -								'class' => 'Fichinter',
    -								'table' => 'fichinter',
    -								'disableamount' => 1,
    -								'test' => $conf->ficheinter->enabled && $user->rights->ficheinter->lire
    -						),
    -						'shipping' => array(
    -								'title' => "ListShippingAssociatedProject",
    -								'class' => 'Expedition',
    -								'table' => 'expedition',
    -								'disableamount' => 1,
    -								'test' => $conf->expedition->enabled && $user->rights->expedition->lire
    -						),
    -						'trip' => array(
    -								'title' => "ListTripAssociatedProject",
    -								'class' => 'Deplacement',
    -								'table' => 'deplacement',
    -								'disableamount' => 1,
    -								'test' => $conf->deplacement->enabled && $user->rights->deplacement->lire
    -						),
    -						'expensereport' => array(
    -								'title' => "ListExpenseReportsAssociatedProject",
    -								'class' => 'ExpenseReportLine',
    -								'table' => 'expensereport_det',
    -								'test' => $conf->expensereport->enabled && $user->rights->expensereport->lire
    -						),
    -						'donation' => array(
    -								'title' => "ListDonationsAssociatedProject",
    -								'class' => 'Don',
    -								'table' => 'don',
    -								'test' => $conf->don->enabled && $user->rights->don->lire
    -						),
    -						'loan' => array(
    -								'title' => "ListLoanAssociatedProject",
    -								'class' => 'Loan',
    -								'table' => 'loan',
    -								'test' => $conf->loan->enabled && $user->rights->loan->read
    -						),
    -						'chargesociales' => array(
    -								'title' => "ListSocialContributionAssociatedProject",
    -								'class' => 'ChargeSociales',
    -								'table' => 'chargesociales',
    -								'urlnew' => DOL_URL_ROOT . '/compta/sociales/card.php?action=create&projectid=' . $id,
    -								'test' => $conf->tax->enabled && $user->rights->tax->charges->lire
    -						),
    -						'stock_mouvement' => array(
    -								'title' => "ListMouvementStockProject",
    -								'class' => 'MouvementStock',
    -								'table' => 'stock_mouvement',
    -								'test' => ($conf->stock->enabled && $user->rights->stock->mouvement->lire && ! empty($conf->global->STOCK_MOVEMENT_INTO_PROJECT_OVERVIEW))
    -						),
    -						'agenda' => array(
    -								'title' => "ListActionsAssociatedProject",
    -								'class' => 'ActionComm',
    -								'table' => 'actioncomm',
    -								'disableamount' => 1,
    -								'test' => $conf->agenda->enabled && $user->rights->agenda->allactions->lire
    -						)
    +					'propal' => array(
    +						'title' => "ListProposalsAssociatedProject",
    +						'class' => 'Propal',
    +						'table' => 'propal',
    +						'test' => $conf->propal->enabled && $user->rights->propale->lire
    +					),
    +					'order' => array(
    +						'title' => "ListOrdersAssociatedProject",
    +						'class' => 'Commande',
    +						'table' => 'commande',
    +						'test' => $conf->commande->enabled && $user->rights->commande->lire
    +					),
    +					'invoice' => array(
    +						'title' => "ListInvoicesAssociatedProject",
    +						'class' => 'Facture',
    +						'table' => 'facture',
    +						'test' => $conf->facture->enabled && $user->rights->facture->lire
    +					),
    +					'invoice_predefined' => array(
    +						'title' => "ListPredefinedInvoicesAssociatedProject",
    +						'class' => 'FactureRec',
    +						'table' => 'facture_rec',
    +						'test' => $conf->facture->enabled && $user->rights->facture->lire
    +					),
    +					'proposal_supplier' => array(
    +						'title' => "ListSupplierProposalsAssociatedProject",
    +						'class' => 'SupplierProposal',
    +						'table' => 'supplier_proposal',
    +						'test' => $conf->supplier_proposal->enabled && $user->rights->supplier_proposal->lire
    +					),
    +					'order_supplier' => array(
    +						'title' => "ListSupplierOrdersAssociatedProject",
    +						'table' => 'commande_fournisseur',
    +						'class' => 'CommandeFournisseur',
    +						'test' => $conf->fournisseur->enabled && $user->rights->fournisseur->commande->lire
    +					),
    +					'invoice_supplier' => array(
    +						'title' => "ListSupplierInvoicesAssociatedProject",
    +						'table' => 'facture_fourn',
    +						'class' => 'FactureFournisseur',
    +						'test' => $conf->fournisseur->enabled && $user->rights->fournisseur->facture->lire
    +					),
    +					'contract' => array(
    +						'title' => "ListContractAssociatedProject",
    +						'class' => 'Contrat',
    +						'table' => 'contrat',
    +						'test' => $conf->contrat->enabled && $user->rights->contrat->lire
    +					),
    +					'intervention' => array(
    +						'title' => "ListFichinterAssociatedProject",
    +						'class' => 'Fichinter',
    +						'table' => 'fichinter',
    +						'disableamount' => 1,
    +						'test' => $conf->ficheinter->enabled && $user->rights->ficheinter->lire
    +					),
    +					'shipping' => array(
    +						'title' => "ListShippingAssociatedProject",
    +						'class' => 'Expedition',
    +						'table' => 'expedition',
    +						'disableamount' => 1,
    +						'test' => $conf->expedition->enabled && $user->rights->expedition->lire
    +					),
    +					'trip' => array(
    +						'title' => "ListTripAssociatedProject",
    +						'class' => 'Deplacement',
    +						'table' => 'deplacement',
    +						'disableamount' => 1,
    +						'test' => $conf->deplacement->enabled && $user->rights->deplacement->lire
    +					),
    +					'expensereport' => array(
    +						'title' => "ListExpenseReportsAssociatedProject",
    +						'class' => 'ExpenseReportLine',
    +						'table' => 'expensereport_det',
    +						'test' => $conf->expensereport->enabled && $user->rights->expensereport->lire
    +					),
    +					'donation' => array(
    +						'title' => "ListDonationsAssociatedProject",
    +						'class' => 'Don',
    +						'table' => 'don',
    +						'test' => $conf->don->enabled && $user->rights->don->lire
    +					),
    +					'loan' => array(
    +						'title' => "ListLoanAssociatedProject",
    +						'class' => 'Loan',
    +						'table' => 'loan',
    +						'test' => $conf->loan->enabled && $user->rights->loan->read
    +					),
    +					'chargesociales' => array(
    +						'title' => "ListSocialContributionAssociatedProject",
    +						'class' => 'ChargeSociales',
    +						'table' => 'chargesociales',
    +						'urlnew' => DOL_URL_ROOT . '/compta/sociales/card.php?action=create&projectid=' . $object->id,
    +						'test' => $conf->tax->enabled && $user->rights->tax->charges->lire
    +					),
    +					'stock_mouvement' => array(
    +						'title' => "ListMouvementStockProject",
    +						'class' => 'MouvementStock',
    +						'table' => 'stock_mouvement',
    +						'test' => ($conf->stock->enabled && $user->rights->stock->mouvement->lire && ! empty($conf->global->STOCK_MOVEMENT_INTO_PROJECT_OVERVIEW))
    +					),
    +					'agenda' => array(
    +						'title' => "ListActionsAssociatedProject",
    +						'class' => 'ActionComm',
    +						'table' => 'actioncomm',
    +						'disableamount' => 1,
    +						'test' => $conf->agenda->enabled && $user->rights->agenda->allactions->lire
    +					),
     				);
     
     				//Insert reference
    @@ -1086,11 +1132,11 @@ class doc_generic_project_odt extends ModelePDFProjects
     										if (!empty($element->total_ht)) {
     											$ref_array['amountht']=$element->total_ht;
     											$ref_array['amountttc']=$element->total_ttc;
    -										}else {
    +										} else {
     											$ref_array['amountht']=0;
     											$ref_array['amountttc']=0;
     										}
    -									}else {
    +									} else {
     										$ref_array['amountht']='';
     										$ref_array['amountttc']='';
     									}
    @@ -1107,21 +1153,20 @@ class doc_generic_project_odt extends ModelePDFProjects
     										}
     										catch(OdfException $e)
     										{
    +											dol_syslog($e->getMessage(), LOG_INFO);
     										}
     										catch(SegmentException $e)
     										{
    +											dol_syslog($e->getMessage(), LOG_INFO);
     										}
     									}
     									$listlines->merge();
     								}
    -
     							}
     						}
     						$odfHandler->mergeSegment($listlines);
     					}
    -				}
    -				catch(OdfException $e)
    -				{
    +				} catch(OdfException $e) {
     					$this->error=$e->getMessage();
     					dol_syslog($this->error, LOG_WARNING);
     					return -1;
    @@ -1133,9 +1178,8 @@ class doc_generic_project_odt extends ModelePDFProjects
     				{
     					try {
     						$odfHandler->setVars($key, $value, true, 'UTF-8');
    -					}
    -					catch(OdfException $e)
    -					{
    +					} catch (OdfException $e) {
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -1148,16 +1192,16 @@ class doc_generic_project_odt extends ModelePDFProjects
     				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
     						return -1;
     					}
    -				}
    -				else {
    +				} else {
     					try {
    -					$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    +						$odfHandler->saveToDisk($file);
    +					} catch (Exception $e){
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
    @@ -1182,5 +1226,4 @@ class doc_generic_project_odt extends ModelePDFProjects
     
     		return -1;
     	}
    -
     }
    diff --git a/htdocs/core/modules/project/doc/pdf_baleine.modules.php b/htdocs/core/modules/project/doc/pdf_baleine.modules.php
    index 174fd7ebed2..f0161b30715 100644
    --- a/htdocs/core/modules/project/doc/pdf_baleine.modules.php
    +++ b/htdocs/core/modules/project/doc/pdf_baleine.modules.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@inodbox.com>
      * Copyright (C) 2018      Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -38,7 +38,78 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     
     class pdf_baleine extends ModelePDFProjects
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
    +
    +	/**
    +     * @var string model name
    +     */
    +    public $name;
    +
    +	/**
    +     * @var string model description (short text)
    +     */
    +    public $description;
    +
    +	/**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +    /**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +     * @var int page_largeur
    +     */
    +    public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
    +    public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
    +    public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
    +	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
    +	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
    +	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
    +	public $marge_basse;
    +
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
     	/**
     	 *	Constructor
    @@ -48,7 +119,7 @@ class pdf_baleine extends ModelePDFProjects
     	function __construct($db)
     	{
     		global $conf,$langs,$mysoc;
    -		
    +
     		// Translations
     		$langs->loadLangs(array("main", "projects", "companies"));
     
    @@ -94,8 +165,9 @@ class pdf_baleine extends ModelePDFProjects
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 *	Fonction generant le projet sur le disque
    +	 *  Fonction generant le projet sur le disque
     	 *
     	 *	@param	Project		$object   		Object project a generer
     	 *	@param	Translate	$outputlangs	Lang output object
    @@ -103,16 +175,15 @@ class pdf_baleine extends ModelePDFProjects
     	 */
     	function write_file($object,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf, $hookmanager, $langs, $user;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("projects");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "projects"));
     
     		if ($conf->projet->dir_output)
     		{
    @@ -603,5 +674,4 @@ class pdf_baleine extends ModelePDFProjects
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'PROJECT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    diff --git a/htdocs/core/modules/project/doc/pdf_beluga.modules.php b/htdocs/core/modules/project/doc/pdf_beluga.modules.php
    index d7cae4726c5..bc8da2b114c 100644
    --- a/htdocs/core/modules/project/doc/pdf_beluga.modules.php
    +++ b/htdocs/core/modules/project/doc/pdf_beluga.modules.php
    @@ -1,7 +1,7 @@
     <?php
    -/* Copyright (C) 2010-2012	Regis Houssin  <regis.houssin@capnetworks.com>
    - * Copyright (C) 2015		Charlie Benke  <charlie@patas-monkey.com>
    - * Copyright (C) 2018      Laurent Destailleur <eldy@users.sourceforge.net>
    +/* Copyright (C) 2010-2012	Regis Houssin   <regis.houssin@inodbox.com>
    + * Copyright (C) 2015-2018	Charlene Benke  <charlie@patas-monkey.com>
    + * Copyright (C) 2018      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
    @@ -54,7 +54,11 @@ if (! empty($conf->agenda->enabled))        require_once DOL_DOCUMENT_ROOT.'/com
     
     class pdf_beluga extends ModelePDFProjects
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
     	/**
     	 *	Constructor
    @@ -64,7 +68,7 @@ class pdf_beluga extends ModelePDFProjects
     	function __construct($db)
     	{
     		global $conf,$langs,$mysoc;
    -		
    +
     		// Translations
     		$langs->loadLangs(array("main", "projects", "companies"));
     
    @@ -110,6 +114,7 @@ class pdf_beluga extends ModelePDFProjects
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Fonction generant le projet sur le disque
     	 *
    @@ -119,6 +124,7 @@ class pdf_beluga extends ModelePDFProjects
     	 */
     	function write_file($object,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf, $hookmanager, $langs, $user;
     
             $formproject=new FormProjets($this->db);
    @@ -127,10 +133,8 @@ class pdf_beluga extends ModelePDFProjects
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("projects");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "projects"));
     
     		if ($conf->projet->dir_output)
     		{
    @@ -188,10 +192,11 @@ class pdf_beluga extends ModelePDFProjects
     
     				// Complete object by loading several other informations
     				$task = new Task($this->db);
    -				$tasksarray = $task->getTasksArray(0,0,$object->id);
    +				$tasksarray = array();
    +				$tasksarray = $task->getTasksArray(0, 0, $object->id);
     
    -				if (! $object->id > 0)  // Special case when used with object = specimen, we may return all lines
    -				{
    +				// Special case when used with object = specimen, we may return all lines
    +				if (! $object->id > 0) {
     					$tasksarray=array_slice($tasksarray, 0, min(5, count($tasksarray)));
     				}
     
    @@ -797,5 +802,4 @@ class pdf_beluga extends ModelePDFProjects
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'PROJECT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    diff --git a/htdocs/core/modules/project/doc/pdf_timespent.modules.php b/htdocs/core/modules/project/doc/pdf_timespent.modules.php
    index c7f23df52e3..a299a9758c7 100644
    --- a/htdocs/core/modules/project/doc/pdf_timespent.modules.php
    +++ b/htdocs/core/modules/project/doc/pdf_timespent.modules.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@inodbox.com>
     
      * 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
    @@ -37,7 +37,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     
     class pdf_timespent extends ModelePDFProjects
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
     	/**
     	 *	Constructor
    @@ -47,7 +51,7 @@ class pdf_timespent extends ModelePDFProjects
     	function __construct($db)
     	{
     		global $conf,$langs,$mysoc;
    -		
    +
     		// Translations
     		$langs->loadLangs(array("main", "projects", "companies"));
     
    @@ -93,6 +97,7 @@ class pdf_timespent extends ModelePDFProjects
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Fonction generant le projet sur le disque
     	 *
    @@ -102,16 +107,15 @@ class pdf_timespent extends ModelePDFProjects
     	 */
     	function write_file($object,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf, $hookmanager, $langs, $user;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("projects");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "projects"));
     
     		if ($conf->projet->dir_output)
     		{
    @@ -584,7 +588,6 @@ class pdf_timespent extends ModelePDFProjects
     	    	}
     	    }
             */
    -
     	}
     
     	/**
    @@ -602,6 +605,4 @@ class pdf_timespent extends ModelePDFProjects
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'PROJECT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/project/mod_project_simple.php b/htdocs/core/modules/project/mod_project_simple.php
    index 05256a3e61f..e5f5c268f06 100644
    --- a/htdocs/core/modules/project/mod_project_simple.php
    +++ b/htdocs/core/modules/project/mod_project_simple.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2010		Laurent Destailleur	<eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -31,11 +31,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/project/modules_project.php';
      */
     class mod_project_simple extends ModeleNumRefProjects
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $prefix='PJ';
    -    var $error='';
    -	var $nom = "Simple";
    -	var $name = "Simple";
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	public $prefix='PJ';
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Simple';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Simple';
     
     
         /**
    @@ -103,7 +122,7 @@ class mod_project_simple extends ModeleNumRefProjects
     	*  @param   Project	$project	Object project
     	*  @return	string				Value if OK, 0 if KO
     	*/
    -    function getNextValue($objsoc,$project)
    +    function getNextValue($objsoc, $project)
         {
     		global $db,$conf;
     
    @@ -140,16 +159,17 @@ class mod_project_simple extends ModeleNumRefProjects
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -     * 	Return next reference not yet used as a reference
    +     *  Return next reference not yet used as a reference
          *
          *  @param	Societe	$objsoc     Object third party
          *  @param  Project	$project	Object project
          *  @return string      		Next not used reference
          */
    -    function project_get_num($objsoc=0,$project='')
    +    function project_get_num($objsoc=0, $project='')
         {
    -        return $this->getNextValue($objsoc,$project);
    +        // phpcs:enable
    +        return $this->getNextValue($objsoc, $project);
         }
     }
    -
    diff --git a/htdocs/core/modules/project/mod_project_universal.php b/htdocs/core/modules/project/mod_project_universal.php
    index e76ed349b46..e052dbcc7bd 100644
    --- a/htdocs/core/modules/project/mod_project_universal.php
    +++ b/htdocs/core/modules/project/mod_project_universal.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -30,10 +30,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/project/modules_project.php';
      */
     class mod_project_universal extends ModeleNumRefProjects
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Universal';
    -	var $name = 'Universal';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +     * @var string Error code (or message)
    +     */
    +    public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Universal';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Universal';
     
     
         /**
    @@ -43,10 +61,10 @@ class mod_project_universal extends ModeleNumRefProjects
          */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
    -		$langs->load("projects");
    -		$langs->load("admin");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("projects","admin"));
     
     		$form = new Form($this->db);
     
    @@ -105,7 +123,7 @@ class mod_project_universal extends ModeleNumRefProjects
     	*  @param   Project		$project	Object project
     	*  @return  string					Value if OK, 0 if KO
     	*/
    -    function getNextValue($objsoc,$project)
    +    function getNextValue($objsoc, $project)
         {
     		global $db,$conf;
     
    @@ -121,12 +139,13 @@ class mod_project_universal extends ModeleNumRefProjects
     		}
     
     		$date=empty($project->date_c)?dol_now():$project->date_c;
    -		$numFinal=get_next_value($db,$mask,'projet','ref','',$objsoc->code_client,$date);
    +		$numFinal=get_next_value($db, $mask, 'projet', 'ref', '', (is_object($objsoc) ? $objsoc->code_client : ''), $date);
     
     		return  $numFinal;
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return next reference not yet used as a reference
          *
    @@ -134,9 +153,9 @@ class mod_project_universal extends ModeleNumRefProjects
          *  @param  Project		$project	Object project
          *  @return string      			Next not used reference
          */
    -    function project_get_num($objsoc=0,$project='')
    +    function project_get_num($objsoc=0, $project='')
         {
    -        return $this->getNextValue($objsoc,$project);
    +        // phpcs:enable
    +        return $this->getNextValue($objsoc, $project);
         }
     }
    -
    diff --git a/htdocs/core/modules/project/modules_project.php b/htdocs/core/modules/project/modules_project.php
    index 5f7ef3d5756..af9877d59cb 100644
    --- a/htdocs/core/modules/project/modules_project.php
    +++ b/htdocs/core/modules/project/modules_project.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2014	Regis Houssin	<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2014	Regis Houssin	<regis.houssin@inodbox.com>
      * Copyright (C) 2014       Marcos García   <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -31,18 +31,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     abstract class ModelePDFProjects extends CommonDocGenerator
     {
    -	var $error='';
    -
    -
     	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
     	 *  Return list of active generation modules
     	 *
    -     *  @param	DoliDB	$db     			Database handler
    +     *  @param  DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of templates
    -	 */
    +     */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='project';
    @@ -62,7 +67,10 @@ abstract class ModelePDFProjects extends CommonDocGenerator
      */
     abstract class ModeleNumRefProjects
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 *  Return if a module can be used or not
    diff --git a/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php b/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php
    index 5f7ff754a65..c8c588d1f4f 100644
    --- a/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php
    +++ b/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php
    @@ -3,6 +3,7 @@
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2013		Florian Henry		<florian.henry@ope-concept.pro>
      * Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -54,10 +55,23 @@ if (! empty($conf->agenda->enabled))      require_once DOL_DOCUMENT_ROOT.'/comm/
      */
     class doc_generic_task_odt extends ModelePDFTask
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +   * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +   */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -67,10 +81,10 @@ class doc_generic_task_odt extends ModelePDFTask
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT templates";
    @@ -104,6 +118,7 @@ class doc_generic_task_odt extends ModelePDFTask
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Define array with couple substitution key => substitution value
     	 *
    @@ -114,6 +129,7 @@ class doc_generic_task_odt extends ModelePDFTask
     	 */
     	function get_substitutionarray_object($object,$outputlangs,$array_key='object')
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$resarray=array(
    @@ -147,6 +163,7 @@ class doc_generic_task_odt extends ModelePDFTask
     		return $resarray;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -156,6 +173,7 @@ class doc_generic_task_odt extends ModelePDFTask
     	 */
     	function get_substitutionarray_tasks($task,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		return array(
    @@ -176,6 +194,7 @@ class doc_generic_task_odt extends ModelePDFTask
     		);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -185,6 +204,7 @@ class doc_generic_task_odt extends ModelePDFTask
     	 */
     	function get_substitutionarray_project_contacts($contact,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		return array(
    @@ -199,6 +219,7 @@ class doc_generic_task_odt extends ModelePDFTask
     		);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -208,6 +229,7 @@ class doc_generic_task_odt extends ModelePDFTask
     	 */
     	function get_substitutionarray_project_file($file,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		return array(
    @@ -217,6 +239,7 @@ class doc_generic_task_odt extends ModelePDFTask
     		);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -226,6 +249,7 @@ class doc_generic_task_odt extends ModelePDFTask
     	 */
     	function get_substitutionarray_project_reference($refdetail,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		return array(
    @@ -239,6 +263,7 @@ class doc_generic_task_odt extends ModelePDFTask
     		);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -248,6 +273,7 @@ class doc_generic_task_odt extends ModelePDFTask
     	 */
     	function get_substitutionarray_tasksressource($taskressource,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     		//dol_syslog(get_class($this).'::get_substitutionarray_tasksressource taskressource='.var_export($taskressource,true),LOG_DEBUG);
     		return array(
    @@ -261,6 +287,7 @@ class doc_generic_task_odt extends ModelePDFTask
     		);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -270,6 +297,7 @@ class doc_generic_task_odt extends ModelePDFTask
     	 */
     	function get_substitutionarray_taskstime($tasktime,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		return array(
    @@ -284,6 +312,7 @@ class doc_generic_task_odt extends ModelePDFTask
     		);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define array with couple substitution key => substitution value
     	 *
    @@ -293,6 +322,7 @@ class doc_generic_task_odt extends ModelePDFTask
     	 */
     	function get_substitutionarray_task_file($file,$outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		return array(
    @@ -313,8 +343,8 @@ class doc_generic_task_odt extends ModelePDFTask
     	{
     		global $conf,$langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("errors","companies"));
     
     		$form = new Form($this->db);
     
    @@ -392,6 +422,7 @@ class doc_generic_task_odt extends ModelePDFTask
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -402,6 +433,7 @@ class doc_generic_task_odt extends ModelePDFTask
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$hookmanager;
     
     		if (empty($srctemplatepath))
    @@ -414,10 +446,8 @@ class doc_generic_task_odt extends ModelePDFTask
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("projects");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "projects"));
     
     		if ($conf->projet->dir_output)
     		{
    @@ -531,9 +561,8 @@ class doc_generic_task_odt extends ModelePDFTask
     						{
     							$odfHandler->setVars($key, $value, true, 'UTF-8');
     						}
    -					}
    -					catch(OdfException $e)
    -					{
    +					} catch (OdfException $e) {
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -548,15 +577,12 @@ class doc_generic_task_odt extends ModelePDFTask
     					complete_substitutions_array($tmparray, $outputlangs, $object);
     					foreach($tmparray as $key => $val)
     					{
    -						try
    -						{
    +						try {
     							$odfHandler->setVars($key, $val, true, 'UTF-8');
    -						}
    -						catch(OdfException $e)
    -						{
    -						}
    -						catch(SegmentException $e)
    -						{
    +						} catch (OdfException $e) {
    +							dol_syslog($e->getMessage(), LOG_INFO);
    +						} catch(SegmentException $e) {
    +							dol_syslog($e->getMessage(), LOG_INFO);
     						}
     					}
     
    @@ -594,15 +620,13 @@ class doc_generic_task_odt extends ModelePDFTask
     
     							foreach($tmparray as $key => $val)
     							{
    -								try
    -								{
    +								try {
     									$listlinestaskres->setVars($key, $val, true, 'UTF-8');
    +								} catch (OdfException $e) {
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
    -								catch(OdfException $e)
    -								{
    -								}
    -								catch(SegmentException $e)
    -								{
    +								catch (SegmentException $e) {
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlinestaskres->merge();
    @@ -648,9 +672,11 @@ class doc_generic_task_odt extends ModelePDFTask
     								}
     								catch(OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     								catch(SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlinestasktime->merge();
    @@ -681,9 +707,11 @@ class doc_generic_task_odt extends ModelePDFTask
     							}
     							catch(OdfException $e)
     							{
    +								dol_syslog($e->getMessage(), LOG_INFO);
     							}
     							catch(SegmentException $e)
     							{
    +								dol_syslog($e->getMessage(), LOG_INFO);
     							}
     						}
     						$listtasksfiles->merge();
    @@ -691,7 +719,6 @@ class doc_generic_task_odt extends ModelePDFTask
     					//$listlines->merge();
     
     					$odfHandler->mergeSegment($listtasksfiles);
    -
     				}
     				catch(OdfException $e)
     				{
    @@ -724,9 +751,11 @@ class doc_generic_task_odt extends ModelePDFTask
     							}
     							catch(OdfException $e)
     							{
    +								dol_syslog($e->getMessage(), LOG_INFO);
     							}
     							catch(SegmentException $e)
     							{
    +								dol_syslog($e->getMessage(), LOG_INFO);
     							}
     						}
     						$listlines->merge();
    @@ -782,9 +811,11 @@ class doc_generic_task_odt extends ModelePDFTask
     								}
     								catch(OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     								catch(SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlines->merge();
    @@ -809,16 +840,18 @@ class doc_generic_task_odt extends ModelePDFTask
     				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
     				else {
     					try {
     						$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
    @@ -843,5 +876,4 @@ class doc_generic_task_odt extends ModelePDFTask
     
     		return -1;
     	}
    -
     }
    diff --git a/htdocs/core/modules/project/task/mod_task_simple.php b/htdocs/core/modules/project/task/mod_task_simple.php
    index 1a0aa3e3445..4450c57347d 100644
    --- a/htdocs/core/modules/project/task/mod_task_simple.php
    +++ b/htdocs/core/modules/project/task/mod_task_simple.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2010		Laurent Destailleur	<eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -31,11 +31,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/project/task/modules_task.php';
      */
     class mod_task_simple extends ModeleNumRefTask
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $prefix='TK';
    -    var $error='';
    -	var $nom = "Simple";
    -	var $name = "Simple";
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	public $prefix='TK';
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Simple';
    +
    +	/**
    +	 * @var string name
    +	 */
    +	public $name='Simple';
     
     
         /**
    @@ -140,16 +159,16 @@ class mod_task_simple extends ModeleNumRefTask
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -     * 	Return next reference not yet used as a reference
    +     *  Return next reference not yet used as a reference
          *
    -     *  @param	Societe	$objsoc     Object third party
    -     *  @param  Task	$object		Object task
    -     *  @return string      		Next not used reference
    +     *  @param  Societe	$objsoc     Object third party
    +     *  @param  Task	$object     Object task
    +     *  @return string              Next not used reference
          */
         function task_get_num($objsoc=0,$object='')
         {
             return $this->getNextValue($objsoc,$object);
         }
     }
    -
    diff --git a/htdocs/core/modules/project/task/mod_task_universal.php b/htdocs/core/modules/project/task/mod_task_universal.php
    index d89acb22b06..3272d180c50 100644
    --- a/htdocs/core/modules/project/task/mod_task_universal.php
    +++ b/htdocs/core/modules/project/task/mod_task_universal.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -30,10 +30,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/project/task/modules_task.php';
      */
     class mod_task_universal extends ModeleNumRefTask
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Universal';
    -	var $name = 'Universal';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +     * @var string Error code (or message)
    +     */
    +    public $error = '';
    +
    +	/**
    +	 * @var string
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Universal';
    +
    +	/**
    +	 * @var string name
    +	 */
    +	public $name='Universal';
     
     
         /**
    @@ -45,8 +63,8 @@ class mod_task_universal extends ModeleNumRefTask
         {
         	global $conf,$langs;
     
    -		$langs->load("projects");
    -		$langs->load("admin");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("projects","admin"));
     
     		$form = new Form($this->db);
     
    @@ -127,6 +145,7 @@ class mod_task_universal extends ModeleNumRefTask
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return next reference not yet used as a reference
          *
    @@ -136,7 +155,7 @@ class mod_task_universal extends ModeleNumRefTask
          */
         function project_get_num($objsoc=0,$object='')
         {
    -        return $this->getNextValue($objsoc,$object);
    +        // phpcs:enable
    +        return $this->getNextValue($objsoc, $object);
         }
     }
    -
    diff --git a/htdocs/core/modules/project/task/modules_task.php b/htdocs/core/modules/project/task/modules_task.php
    index 7d14ae12a3e..ef7a9be4e98 100644
    --- a/htdocs/core/modules/project/task/modules_task.php
    +++ b/htdocs/core/modules/project/task/modules_task.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin  <regis.houssin@inodbox.com>
      * Copyright (C) 2010 Florian Henry  <florian.henry<àopen-concept.pro>
      * Copyright (C) 2014 Marcos García  <marcosgdf@gmail.com>
      *
    @@ -32,18 +32,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     abstract class ModelePDFTask extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation modules
     	 *
          *  @param	DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of templates
    -	 */
    -	static function liste_modeles($db,$maxfilenamelength=0)
    +     */
    +    static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='project_task';
    @@ -63,7 +68,10 @@ abstract class ModelePDFTask extends CommonDocGenerator
      */
     abstract class ModeleNumRefTask
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 *  Return if a module can be used or not
    diff --git a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
    index 9686bdf6ec7..18f6d9b6102 100644
    --- a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
    +++ b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
    @@ -2,7 +2,8 @@
     /* Copyright (C) 2010-2012 	Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
    -*
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
     * 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
     * the Free Software Foundation; either version 3 of the License, or
    @@ -37,10 +38,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
      */
     class doc_generic_proposal_odt extends ModelePDFPropales
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +   * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +   */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -50,10 +64,10 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT templates";
    @@ -97,8 +111,8 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     	{
     		global $conf,$langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("errors","companies"));
     
     		$form = new Form($this->db);
     
    @@ -207,6 +221,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -220,6 +235,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$hookmanager;
     
     		if (empty($srctemplatepath))
    @@ -241,10 +257,8 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills"));
     
     		if ($conf->propal->multidir_output[$conf->entity])
     		{
    @@ -368,6 +382,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     				catch(Exception $e)
     				{
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_INFO);
     					return -1;
     				}
     				// After construction $odfHandler->contentXml contains content and
    @@ -382,8 +397,9 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     				try {
     					$odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8');
     				}
    -				catch(OdfException $e)
    +				catch (OdfException $e)
     				{
    +					dol_syslog($e->getMessage(), LOG_INFO);
     				}
     
     				// Define substitution array
    @@ -420,6 +436,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     					}
     					catch(OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     				// Replace tags of lines
    @@ -452,9 +469,11 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     								}
     								catch(OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     								catch(SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlines->merge();
    @@ -476,8 +495,9 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     					try {
     						$odfHandler->setVars($key, $value, true, 'UTF-8');
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -489,16 +509,18 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
     				else {
     					try {
     					$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
    @@ -523,6 +545,4 @@ class doc_generic_proposal_odt extends ModelePDFPropales
     
     		return -1;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
    index c2670ea90e9..3d7b5b44c34 100644
    --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php
    +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
    @@ -1,9 +1,9 @@
     <?php
     /* Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand     <raphael.bertrand@resultic.fr>
    - * Copyright (C) 2010-2015 Juanjo Menent	    <jmenent@2byte.es>
    - * Copyright (C) 2012      Christophe Battarel   <christophe.battarel@altairis.fr>
    + * Copyright (C) 2010-2015 Juanjo Menent        <jmenent@2byte.es>
    + * Copyright (C) 2012      Christophe Battarel  <christophe.battarel@altairis.fr>
      * Copyright (C) 2012      Cedric Salvador      <csalvador@gpcsolutions.fr>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2017-2018 Ferran Marcet        <fmarcet@2byte.es>
    @@ -41,24 +41,83 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
      */
     class pdf_azur extends ModelePDFPropales
     {
    -	var $db;
    -	var $name;
    -	var $description;
    -	var $update_main_doc_field;	// Save the name of generated file as the main doc when generating a doc with this template
    -	var $type;
    +	/**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
     
    -	var $phpmin = array(4,3,0); // Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +     * @var string model name
    +     */
    +    public $name;
     
    -	var $page_largeur;
    -	var $page_hauteur;
    -	var $format;
    -	var $marge_gauche;
    -	var	$marge_droite;
    -	var	$marge_haute;
    -	var	$marge_basse;
    +	/**
    +     * @var string model description (short text)
    +     */
    +    public $description;
     
    -	var $emetteur;	// Objet societe qui emet
    +    /**
    +     * @var string Save the name of generated file as the main doc when generating a doc with this template
    +     */
    +	public $update_main_doc_field;
    +
    +	/**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +    /**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +     * @var int page_largeur
    +     */
    +    public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
    +    public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
    +    public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
    +	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
    +	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
    +	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
    +	public $marge_basse;
    +
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
     
     	/**
    @@ -143,6 +202,7 @@ class pdf_azur extends ModelePDFPropales
     		$this->atleastonediscount=0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *  Function to build pdf onto disk
          *
    @@ -156,18 +216,15 @@ class pdf_azur extends ModelePDFPropales
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$db,$hookmanager,$nblignes;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("propal");
    -		$outputlangs->load("products");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills", "propal", "products"));
     
     		$nblignes = count($object->lines);
     
    @@ -775,6 +832,7 @@ class pdf_azur extends ModelePDFPropales
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Show payments table
     	 *
    @@ -786,10 +844,11 @@ class pdf_azur extends ModelePDFPropales
     	 */
     	function _tableau_versements(&$pdf, $object, $posy, $outputlangs)
     	{
    -
    +        // phpcs:enable
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Show miscellaneous information (payment mode, payment term, ...)
     	 *
    @@ -801,6 +860,7 @@ class pdf_azur extends ModelePDFPropales
     	 */
     	function _tableau_info(&$pdf, $object, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
    @@ -969,6 +1029,7 @@ class pdf_azur extends ModelePDFPropales
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show total to pay
     	 *
    @@ -981,6 +1042,7 @@ class pdf_azur extends ModelePDFPropales
     	 */
     	function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf,$mysoc;
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
    @@ -1085,7 +1147,6 @@ class pdf_azur extends ModelePDFPropales
     
     								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
     								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    -
     							}
     						}
     					}
    @@ -1380,10 +1441,8 @@ class pdf_azur extends ModelePDFPropales
     	{
     		global $conf,$langs;
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("propal");
    -		$outputlangs->load("companies");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "propal", "companies", "bills"));
     
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
    @@ -1404,27 +1463,30 @@ class pdf_azur extends ModelePDFPropales
     		$pdf->SetXY($this->marge_gauche,$posy);
     
     		// Logo
    -		$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    -		if ($this->emetteur->logo)
    +		if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO))
     		{
    -			if (is_readable($logo))
    +			$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    +			if ($this->emetteur->logo)
     			{
    -			    $height=pdf_getHeightForLogo($logo);
    -			    $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height);	// width=0 (auto)
    +				if (is_readable($logo))
    +				{
    +				    $height=pdf_getHeightForLogo($logo);
    +				    $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height);	// width=0 (auto)
    +				}
    +				else
    +				{
    +					$pdf->SetTextColor(200,0,0);
    +					$pdf->SetFont('','B',$default_font_size - 2);
    +					$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
    +					$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
    +				}
     			}
     			else
     			{
    -				$pdf->SetTextColor(200,0,0);
    -				$pdf->SetFont('','B',$default_font_size - 2);
    -				$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
    -				$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
    +				$text=$this->emetteur->name;
    +				$pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
     			}
     		}
    -		else
    -		{
    -			$text=$this->emetteur->name;
    -			$pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
    -		}
     
     		$pdf->SetFont('','B',$default_font_size + 3);
     		$pdf->SetXY($posx,$posy);
    @@ -1605,6 +1667,7 @@ class pdf_azur extends ModelePDFPropales
     		return pdf_pagefoot($pdf,$outputlangs,'PROPOSAL_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show area for the customer to sign
     	 *
    @@ -1616,6 +1679,7 @@ class pdf_azur extends ModelePDFPropales
     	 */
     	function _signature_area(&$pdf, $object, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     		$tab_top = $posy + 4;
    diff --git a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php
    new file mode 100644
    index 00000000000..a99f75d99ed
    --- /dev/null
    +++ b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php
    @@ -0,0 +1,1888 @@
    +<?php
    +/* Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
    + * Copyright (C) 2008      Raphael Bertrand     <raphael.bertrand@resultic.fr>
    + * Copyright (C) 2010-2015 Juanjo Menent	    <jmenent@2byte.es>
    + * Copyright (C) 2012      Christophe Battarel   <christophe.battarel@altairis.fr>
    + * Copyright (C) 2012      Cedric Salvador      <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    + * Copyright (C) 2017      Ferran Marcet        <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *	\file       htdocs/core/modules/propale/doc/pdf_cyan.modules.php
    + *	\ingroup    propale
    + *	\brief      Fichier de la classe permettant de generer les propales au modele Cyan
    + */
    +require_once DOL_DOCUMENT_ROOT.'/core/modules/propale/modules_propale.php';
    +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
    +
    +
    +/**
    + *	Class to generate PDF proposal Cyan
    + */
    +class pdf_cyan extends ModelePDFPropales
    +{
    +	public $db;
    +	public $name;
    +	public $description;
    +	public $update_main_doc_field;	// Save the name of generated file as the main doc when generating a doc with this template
    +	public $type;
    +
    +	public $phpmin = array(4,3,0); // Minimum version of PHP required by module
    +	public $version = 'development';
    +
    +	public $page_largeur;
    +	public $page_hauteur;
    +	public $format;
    +	public $marge_gauche;
    +	public	$marge_droite;
    +	public	$marge_haute;
    +	public	$marge_basse;
    +
    +	public $emetteur;	// Objet societe qui emet
    +
    +
    +	/**
    +	 *	Constructor
    +	 *
    +	 *  @param		DoliDB		$db      Database handler
    +	 */
    +	public function __construct($db)
    +	{
    +		global $conf,$langs,$mysoc;
    +
    +		// Translations
    +		$langs->loadLangs(array("main", "bills"));
    +
    +		$this->db = $db;
    +		$this->name = "cyan";
    +		$this->description = $langs->trans('DocModelCyanDescription');
    +		$this->update_main_doc_field = 1;		// Save the name of generated file as the main doc when generating a doc with this template
    +
    +		// Dimension page
    +		$this->type = 'pdf';
    +		$formatarray=pdf_getFormat();
    +		$this->page_largeur = $formatarray['width'];
    +		$this->page_hauteur = $formatarray['height'];
    +		$this->format = array($this->page_largeur,$this->page_hauteur);
    +		$this->marge_gauche=isset($conf->global->MAIN_PDF_MARGIN_LEFT)?$conf->global->MAIN_PDF_MARGIN_LEFT:10;
    +		$this->marge_droite=isset($conf->global->MAIN_PDF_MARGIN_RIGHT)?$conf->global->MAIN_PDF_MARGIN_RIGHT:10;
    +		$this->marge_haute =isset($conf->global->MAIN_PDF_MARGIN_TOP)?$conf->global->MAIN_PDF_MARGIN_TOP:10;
    +		$this->marge_basse =isset($conf->global->MAIN_PDF_MARGIN_BOTTOM)?$conf->global->MAIN_PDF_MARGIN_BOTTOM:10;
    +
    +		$this->option_logo = 1;                    // Affiche logo
    +		$this->option_tva = 1;                     // Gere option tva FACTURE_TVAOPTION
    +		$this->option_modereg = 1;                 // Affiche mode reglement
    +		$this->option_condreg = 1;                 // Affiche conditions reglement
    +		$this->option_codeproduitservice = 1;      // Affiche code produit-service
    +		$this->option_multilang = 1;               // Dispo en plusieurs langues
    +		$this->option_escompte = 0;                // Affiche si il y a eu escompte
    +		$this->option_credit_note = 0;             // Support credit notes
    +		$this->option_freetext = 1;				   // Support add of a personalised text
    +		$this->option_draft_watermark = 1;		   //Support add of a watermark on drafts
    +
    +		$this->franchise=!$mysoc->tva_assuj;
    +
    +		// Get source company
    +		$this->emetteur=$mysoc;
    +		if (empty($this->emetteur->country_code)) $this->emetteur->country_code=substr($langs->defaultlang,-2);    // By default, if was not defined
    +
    +		// Define position of columns
    +		$this->posxdesc=$this->marge_gauche+1;
    +
    +
    +
    +		$this->tva=array();
    +		$this->localtax1=array();
    +		$this->localtax2=array();
    +		$this->atleastoneratenotnull=0;
    +		$this->atleastonediscount=0;
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
    +	/**
    +     *  Function to build pdf onto disk
    +     *
    +     *  @param		Object		$object				Object to generate
    +     *  @param		Translate	$outputlangs		Lang output object
    +     *  @param		string		$srctemplatepath	Full path of source filename for generator using a template file
    +     *  @param		int			$hidedetails		Do not show line details
    +     *  @param		int			$hidedesc			Do not show desc
    +     *  @param		int			$hideref			Do not show ref
    +     *  @return     int             				1=OK, 0=KO
    +	 */
    +	public function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
    +	{
    +	  // phpcs:enable
    +		global $user,$langs,$conf,$mysoc,$db,$hookmanager,$nblignes;
    +
    +		if (! is_object($outputlangs)) $outputlangs=$langs;
    +		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
    +		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
    +
    +		$outputlangs->load("main");
    +		$outputlangs->load("dict");
    +		$outputlangs->load("companies");
    +		$outputlangs->load("bills");
    +		$outputlangs->load("propal");
    +		$outputlangs->load("products");
    +
    +		$nblignes = count($object->lines);
    +
    +		// Loop on each lines to detect if there is at least one image to show
    +		$realpatharray=array();
    +		$this->atleastonephoto = false;
    +		if (! empty($conf->global->MAIN_GENERATE_PROPOSALS_WITH_PICTURE))
    +		{
    +			$objphoto = new Product($this->db);
    +
    +			for ($i = 0 ; $i < $nblignes ; $i++)
    +			{
    +				if (empty($object->lines[$i]->fk_product)) continue;
    +
    +				$objphoto->fetch($object->lines[$i]->fk_product);
    +                //var_dump($objphoto->ref);exit;
    +				if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO))
    +				{
    +					$pdir[0] = get_exdir($objphoto->id,2,0,0,$objphoto,'product') . $objphoto->id ."/photos/";
    +					$pdir[1] = get_exdir(0,0,0,0,$objphoto,'product') . dol_sanitizeFileName($objphoto->ref).'/';
    +				}
    +				else
    +				{
    +					$pdir[0] = get_exdir(0,0,0,0,$objphoto,'product') . dol_sanitizeFileName($objphoto->ref).'/';				// default
    +					$pdir[1] = get_exdir($objphoto->id,2,0,0,$objphoto,'product') . $objphoto->id ."/photos/";	// alternative
    +				}
    +
    +				$arephoto = false;
    +				foreach ($pdir as $midir)
    +				{
    +					if (! $arephoto)
    +					{
    +						$dir = $conf->product->dir_output.'/'.$midir;
    +
    +						foreach ($objphoto->liste_photos($dir,1) as $key => $obj)
    +						{
    +							if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES))		// If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo
    +							{
    +								if ($obj['photo_vignette'])
    +								{
    +									$filename= $obj['photo_vignette'];
    +								}
    +								else
    +								{
    +									$filename=$obj['photo'];
    +								}
    +							}
    +							else
    +							{
    +								$filename=$obj['photo'];
    +							}
    +
    +							$realpath = $dir.$filename;
    +							$arephoto = true;
    +							$this->atleastonephoto = true;
    +						}
    +					}
    +				}
    +
    +				if ($realpath && $arephoto) $realpatharray[$i]=$realpath;
    +			}
    +		}
    +
    +		if (count($realpatharray) == 0) $this->posxpicture=$this->posxtva;
    +
    +		if ($conf->propal->multidir_output[$conf->entity])
    +		{
    +			$object->fetch_thirdparty();
    +
    +			$deja_regle = 0;
    +
    +			// Definition of $dir and $file
    +			if ($object->specimen)
    +			{
    +				$dir = $conf->propal->multidir_output[$conf->entity];
    +				$file = $dir . "/SPECIMEN.pdf";
    +			}
    +			else
    +			{
    +				$objectref = dol_sanitizeFileName($object->ref);
    +				$dir = $conf->propal->multidir_output[$object->entity] . "/" . $objectref;
    +				$file = $dir . "/" . $objectref . ".pdf";
    +			}
    +
    +			if (! file_exists($dir))
    +			{
    +				if (dol_mkdir($dir) < 0)
    +				{
    +					$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
    +					return 0;
    +				}
    +			}
    +
    +			if (file_exists($dir))
    +			{
    +				// Add pdfgeneration hook
    +				if (! is_object($hookmanager))
    +				{
    +					include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
    +					$hookmanager=new HookManager($this->db);
    +				}
    +				$hookmanager->initHooks(array('pdfgeneration'));
    +				$parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
    +				global $action;
    +				$reshook=$hookmanager->executeHooks('beforePDFCreation',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +
    +				// Create pdf instance
    +                $pdf=pdf_getInstance($this->format);
    +                $default_font_size = pdf_getPDFFontSize($outputlangs);	// Must be after pdf_getInstance
    +	            $pdf->SetAutoPageBreak(1,0);
    +
    +                if (class_exists('TCPDF'))
    +                {
    +                    $pdf->setPrintHeader(false);
    +                    $pdf->setPrintFooter(false);
    +                }
    +                $pdf->SetFont(pdf_getPDFFont($outputlangs));
    +                // Set path to the background PDF File
    +                if (! empty($conf->global->MAIN_ADD_PDF_BACKGROUND))
    +                {
    +                    $pagecount = $pdf->setSourceFile($conf->mycompany->dir_output.'/'.$conf->global->MAIN_ADD_PDF_BACKGROUND);
    +                    $tplidx = $pdf->importPage(1);
    +                }
    +
    +				$pdf->Open();
    +				$pagenb=0;
    +				$pdf->SetDrawColor(128,128,128);
    +
    +				$pdf->SetTitle($outputlangs->convToOutputCharset($object->ref));
    +				$pdf->SetSubject($outputlangs->transnoentities("PdfCommercialProposalTitle"));
    +				$pdf->SetCreator("Dolibarr ".DOL_VERSION);
    +				$pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs)));
    +				$pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfCommercialProposalTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name));
    +				if (! empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false);
    +
    +				$pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite);   // Left, Top, Right
    +
    +				// Does we have at least one line with discount $this->atleastonediscount
    +				foreach ($object->lines as $line) {
    +				    if ($line->remise_percent){
    +				        $this->atleastonediscount = true;
    +				        break;
    +				    }
    +				}
    +
    +
    +
    +				// New page
    +				$pdf->AddPage();
    +				if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +				$pagenb++;
    +
    +                $heightforinfotot = 40;	// Height reserved to output the info and total part
    +                $heightforsignature = empty($conf->global->PROPAL_DISABLE_SIGNATURE)?(pdfGetHeightForHtmlContent($pdf, $outputlangs->transnoentities("ProposalCustomerSignature"))+10):0;
    +                $heightforfreetext= (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT)?$conf->global->MAIN_PDF_FREETEXT_HEIGHT:5);	// Height reserved to output the free text on last page
    +                $heightforfooter = $this->marge_basse + (empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS)?12:22);	// Height reserved to output the footer (value include bottom margin)
    +                //print $heightforinfotot + $heightforsignature + $heightforfreetext + $heightforfooter;exit;
    +
    +				$top_shift = $this->_pagehead($pdf, $object, 1, $outputlangs);
    +				$pdf->SetFont('','', $default_font_size - 1);
    +				$pdf->MultiCell(0, 3, '');		// Set interline to 3
    +				$pdf->SetTextColor(0,0,0);
    +
    +
    +	            $tab_top = 90+$top_shift;
    +				$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)?42+$top_shift:10);
    +
    +
    +				// Incoterm
    +				$height_incoterms = 0;
    +				if ($conf->incoterm->enabled)
    +				{
    +					$desc_incoterms = $object->getIncotermsForPDF();
    +					if ($desc_incoterms)
    +					{
    +						$tab_top -= 2;
    +
    +						$pdf->SetFont('','', $default_font_size - 1);
    +						$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top-1, dol_htmlentitiesbr($desc_incoterms), 0, 1);
    +						$nexY = $pdf->GetY();
    +						$height_incoterms=$nexY-$tab_top;
    +
    +						// Rect prend une longueur en 3eme param
    +						$pdf->SetDrawColor(192,192,192);
    +						$pdf->Rect($this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_incoterms+1);
    +
    +						$tab_top = $nexY+6;
    +					}
    +				}
    +
    +				// Affiche notes
    +				$notetoshow=empty($object->note_public)?'':$object->note_public;
    +				if (! empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE))
    +				{
    +					// Get first sale rep
    +					if (is_object($object->thirdparty))
    +					{
    +						$salereparray=$object->thirdparty->getSalesRepresentatives($user);
    +						$salerepobj=new User($this->db);
    +						$salerepobj->fetch($salereparray[0]['id']);
    +						if (! empty($salerepobj->signature)) $notetoshow=dol_concatdesc($notetoshow, $salerepobj->signature);
    +					}
    +				}
    +				if (! empty($conf->global->MAIN_ADD_CREATOR_IN_NOTE) && $object->user_author_id > 0)
    +				{
    +				    $tmpuser=new User($this->db);
    +				    $tmpuser->fetch($object->user_author_id);
    +				    $notetoshow.='Affaire suivi par '.$tmpuser->getFullName($langs);
    +				    if ($tmpuser->email) $notetoshow.=',  Mail: '.$tmpuser->email;
    +				    if ($tmpuser->office_phone) $notetoshow.=', Tel: '.$tmpuser->office_phone;
    +				}
    +
    +				$pagenb = $pdf->getPage();
    +				if ($notetoshow)
    +				{
    +					$tab_top -= 2;
    +
    +				    $tab_width = $this->page_largeur-$this->marge_gauche-$this->marge_droite;
    +				    $pageposbeforenote = $pagenb;
    +
    +					$substitutionarray=pdf_getSubstitutionArray($outputlangs, null, $object);
    +					complete_substitutions_array($substitutionarray, $outputlangs, $object);
    +					$notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs);
    +
    +
    +					$pdf->startTransaction();
    +
    +					$pdf->SetFont('','', $default_font_size - 1);
    +					$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, dol_htmlentitiesbr($notetoshow), 0, 1);
    +					// Description
    +					$pageposafternote=$pdf->getPage();
    +					$posyafter = $pdf->GetY();
    +
    +					if($pageposafternote>$pageposbeforenote )
    +					{
    +					    $pdf->rollbackTransaction(true);
    +
    +					    // prepar pages to receive notes
    +					    while ($pagenb < $pageposafternote) {
    +					        $pdf->AddPage();
    +					        $pagenb++;
    +					        if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +					        if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +					        // $this->_pagefoot($pdf,$object,$outputlangs,1);
    +					        $pdf->setTopMargin($tab_top_newpage);
    +					        // The only function to edit the bottom margin of current page to set it.
    +					        $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext);
    +					    }
    +
    +					    // back to start
    +					    $pdf->setPage($pageposbeforenote);
    +					    $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext);
    +					    $pdf->SetFont('','', $default_font_size - 1);
    +					    $pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top, dol_htmlentitiesbr($notetoshow), 0, 1);
    +					    $pageposafternote=$pdf->getPage();
    +
    +					    $posyafter = $pdf->GetY();
    +
    +					    if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+20)))	// There is no space left for total+free text
    +					    {
    +					        $pdf->AddPage('','',true);
    +					        $pagenb++;
    +					        $pageposafternote++;
    +					        $pdf->setPage($pageposafternote);
    +					        $pdf->setTopMargin($tab_top_newpage);
    +					        // The only function to edit the bottom margin of current page to set it.
    +					        $pdf->setPageOrientation('', 1, $heightforfooter + $heightforfreetext);
    +					        //$posyafter = $tab_top_newpage;
    +					    }
    +
    +
    +					    // apply note frame to previus pages
    +					    $i = $pageposbeforenote;
    +					    while ($i < $pageposafternote) {
    +					        $pdf->setPage($i);
    +
    +
    +					        $pdf->SetDrawColor(128,128,128);
    +					        // Draw note frame
    +					        if($i>$pageposbeforenote){
    +					            $height_note = $this->page_hauteur - ($tab_top_newpage + $heightforfooter);
    +					            $pdf->Rect($this->marge_gauche, $tab_top_newpage-1, $tab_width, $height_note + 1);
    +					        }
    +					        else{
    +					            $height_note = $this->page_hauteur - ($tab_top + $heightforfooter);
    +					            $pdf->Rect($this->marge_gauche, $tab_top-1, $tab_width, $height_note + 1);
    +					        }
    +
    +					        // Add footer
    +					        $pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    +					        $this->_pagefoot($pdf,$object,$outputlangs,1);
    +
    +					        $i++;
    +					    }
    +
    +					    // apply note frame to last page
    +					    $pdf->setPage($pageposafternote);
    +					    if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +					    if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +					    $height_note=$posyafter-$tab_top_newpage;
    +					    $pdf->Rect($this->marge_gauche, $tab_top_newpage-1, $tab_width, $height_note+1);
    +					}
    +					else // No pagebreak
    +					{
    +					    $pdf->commitTransaction();
    +					    $posyafter = $pdf->GetY();
    +					    $height_note=$posyafter-$tab_top;
    +					    $pdf->Rect($this->marge_gauche, $tab_top-1, $tab_width, $height_note+1);
    +
    +
    +					    if($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+20)) )
    +					    {
    +					        // not enough space, need to add page
    +					        $pdf->AddPage('','',true);
    +					        $pagenb++;
    +					        $pageposafternote++;
    +					        $pdf->setPage($pageposafternote);
    +					        if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +					        if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +
    +					        $posyafter = $tab_top_newpage;
    +					    }
    +					}
    +
    +					$tab_height = $tab_height - $height_note;
    +					$tab_top = $posyafter +6;
    +				}
    +				else
    +				{
    +					$height_note=0;
    +				}
    +
    +				$iniY = $tab_top + 7;
    +				$curY = $tab_top + 7;
    +				$nexY = $tab_top + 7;
    +
    +				// Use new auto collum system
    +				$this->prepareArrayColumnField($object,$outputlangs,$hidedetails,$hidedesc,$hideref);
    +
    +				// Loop on each lines
    +				$pageposbeforeprintlines=$pdf->getPage();
    +				$pagenb = $pageposbeforeprintlines;
    +				for ($i = 0; $i < $nblignes; $i++)
    +				{
    +					$curY = $nexY;
    +					$pdf->SetFont('','', $default_font_size - 1);   // Into loop to work with multipage
    +					$pdf->SetTextColor(0,0,0);
    +
    +					// Define size of image if we need it
    +					$imglinesize=array();
    +					if (! empty($realpatharray[$i])) $imglinesize=pdf_getSizeForImage($realpatharray[$i]);
    +
    +					$pdf->setTopMargin($tab_top_newpage);
    +					$pdf->setPageOrientation('', 1, $heightforfooter+$heightforfreetext+$heightforsignature+$heightforinfotot);	// The only function to edit the bottom margin of current page to set it.
    +					$pageposbefore=$pdf->getPage();
    +
    +					$showpricebeforepagebreak=1;
    +					$posYAfterImage=0;
    +					$posYAfterDescription=0;
    +
    +					if($this->getColumnStatus('photo'))
    +					{
    +    					// We start with Photo of product line
    +    					if (isset($imglinesize['width']) && isset($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur-($heightforfooter+$heightforfreetext+$heightforsignature+$heightforinfotot)))	// If photo too high, we moved completely on new page
    +    					{
    +    						$pdf->AddPage('','',true);
    +    						if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +    						//if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +    						$pdf->setPage($pageposbefore+1);
    +
    +    						$curY = $tab_top_newpage;
    +    						$showpricebeforepagebreak=0;
    +    					}
    +
    +
    +    					if (!empty($this->cols['photo']) && isset($imglinesize['width']) && isset($imglinesize['height']))
    +    					{
    +    						$pdf->Image($realpatharray[$i], $this->getColumnContentXStart('photo'), $curY, $imglinesize['width'], $imglinesize['height'], '', '', '', 2, 300);	// Use 300 dpi
    +    						// $pdf->Image does not increase value return by getY, so we save it manually
    +    						$posYAfterImage=$curY+$imglinesize['height'];
    +    					}
    +					}
    +
    +					// Description of product line
    +					if($this->getColumnStatus('desc'))
    +					{
    +    					$pdf->startTransaction();
    +    					pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->getColumnContentWidth('desc'),3,$this->getColumnContentXStart('desc'),$curY,$hideref,$hidedesc);
    +    					$pageposafter=$pdf->getPage();
    +    					if ($pageposafter > $pageposbefore)	// There is a pagebreak
    +    					{
    +    						$pdf->rollbackTransaction(true);
    +    						$pageposafter=$pageposbefore;
    +    						//print $pageposafter.'-'.$pageposbefore;exit;
    +    						$pdf->setPageOrientation('', 1, $heightforfooter);	// The only function to edit the bottom margin of current page to set it.
    +    						pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->getColumnContentWidth('desc'),3,$this->getColumnContentXStart('desc'),$curY,$hideref,$hidedesc);
    +
    +    						$pageposafter=$pdf->getPage();
    +    						$posyafter=$pdf->GetY();
    +    						//var_dump($posyafter); var_dump(($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))); exit;
    +    						if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforsignature+$heightforinfotot)))	// There is no space left for total+free text
    +    						{
    +    							if ($i == ($nblignes-1))	// No more lines, and no space left to show total, so we create a new page
    +    							{
    +    								$pdf->AddPage('','',true);
    +    								if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +    								//if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +    								$pdf->setPage($pageposafter+1);
    +    							}
    +    						}
    +    						else
    +    						{
    +    							// We found a page break
    +    							$showpricebeforepagebreak=0;
    +    						}
    +    					}
    +    					else	// No pagebreak
    +    					{
    +    						$pdf->commitTransaction();
    +    					}
    +    					$posYAfterDescription=$pdf->GetY();
    +					}
    +
    +					$nexY = $pdf->GetY();
    +					$pageposafter=$pdf->getPage();
    +
    +					$pdf->setPage($pageposbefore);
    +					$pdf->setTopMargin($this->marge_haute);
    +					$pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    +
    +					// We suppose that a too long description or photo were moved completely on next page
    +					if ($pageposafter > $pageposbefore && empty($showpricebeforepagebreak)) {
    +						$pdf->setPage($pageposafter); $curY = $tab_top_newpage;
    +					}
    +
    +					$pdf->SetFont('','', $default_font_size - 1);   // On repositionne la police par defaut
    +
    +					// VAT Rate
    +					if ($this->getColumnStatus('vat'))
    +					{
    +					    $vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails);
    +					    $this->printStdColumnContent($pdf, $curY, 'vat', $vat_rate);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +					// Unit price before discount
    +					if ($this->getColumnStatus('subprice'))
    +					{
    +					    $up_excl_tax = pdf_getlineupexcltax($object, $i, $outputlangs, $hidedetails);
    +					    $this->printStdColumnContent($pdf, $curY, 'subprice', $up_excl_tax);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +					// Quantity
    +					// Enough for 6 chars
    +					if ($this->getColumnStatus('qty'))
    +					{
    +					    $qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails);
    +					    $this->printStdColumnContent($pdf, $curY, 'qty', $qty);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +
    +					// Unit
    +					if ($this->getColumnStatus('unit'))
    +					{
    +					    $unit = pdf_getlineunit($object, $i, $outputlangs, $hidedetails, $hookmanager);
    +					    $this->printStdColumnContent($pdf, $curY, 'unit', $unit);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +					// Discount on line
    +					if ($this->getColumnStatus('discount') && $object->lines[$i]->remise_percent)
    +					{
    +					    $remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails);
    +					    $this->printStdColumnContent($pdf, $curY, 'discount', $remise_percent);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +					// Total HT line
    +					if ($this->getColumnStatus('totalexcltax'))
    +					{
    +					    $total_excl_tax = pdf_getlinetotalexcltax($object, $i, $outputlangs, $hidedetails);
    +					    $this->printStdColumnContent($pdf, $curY, 'totalexcltax', $total_excl_tax);
    +					    $nexY = max($pdf->GetY(),$nexY);
    +					}
    +
    +
    +					$parameters=array(
    +					    'object' => $object,
    +					    'i' => $i,
    +					    'pdf' =>& $pdf,
    +					    'curY' =>& $curY,
    +					    'nexY' =>& $nexY,
    +					    'outputlangs' => $outputlangs,
    +					    'hidedetails' => $hidedetails
    +					);
    +					$reshook=$hookmanager->executeHooks('printPDFline',$parameters,$this);    // Note that $object may have been modified by hook
    +
    +
    +
    +					// Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva
    +					if ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) $tvaligne=$object->lines[$i]->multicurrency_total_tva;
    +					else $tvaligne=$object->lines[$i]->total_tva;
    +
    +					$localtax1ligne=$object->lines[$i]->total_localtax1;
    +					$localtax2ligne=$object->lines[$i]->total_localtax2;
    +					$localtax1_rate=$object->lines[$i]->localtax1_tx;
    +					$localtax2_rate=$object->lines[$i]->localtax2_tx;
    +					$localtax1_type=$object->lines[$i]->localtax1_type;
    +					$localtax2_type=$object->lines[$i]->localtax2_type;
    +
    +					if ($object->remise_percent) $tvaligne-=($tvaligne*$object->remise_percent)/100;
    +					if ($object->remise_percent) $localtax1ligne-=($localtax1ligne*$object->remise_percent)/100;
    +					if ($object->remise_percent) $localtax2ligne-=($localtax2ligne*$object->remise_percent)/100;
    +
    +					$vatrate=(string) $object->lines[$i]->tva_tx;
    +
    +					// Retrieve type from database for backward compatibility with old records
    +					if ((! isset($localtax1_type) || $localtax1_type=='' || ! isset($localtax2_type) || $localtax2_type=='') // if tax type not defined
    +					&& (! empty($localtax1_rate) || ! empty($localtax2_rate))) // and there is local tax
    +					{
    +						$localtaxtmp_array=getLocalTaxesFromRate($vatrate,0,$object->thirdparty,$mysoc);
    +						$localtax1_type = $localtaxtmp_array[0];
    +						$localtax2_type = $localtaxtmp_array[2];
    +					}
    +
    +				    // retrieve global local tax
    +					if ($localtax1_type && $localtax1ligne != 0)
    +						$this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne;
    +					if ($localtax2_type && $localtax2ligne != 0)
    +						$this->localtax2[$localtax2_type][$localtax2_rate]+=$localtax2ligne;
    +
    +					if (($object->lines[$i]->info_bits & 0x01) == 0x01) $vatrate.='*';
    +					if (! isset($this->tva[$vatrate]))				$this->tva[$vatrate]=0;
    +					$this->tva[$vatrate] += $tvaligne;
    +
    +					if ($posYAfterImage > $posYAfterDescription) $nexY=$posYAfterImage;
    +
    +					// Add line
    +					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
    +					{
    +						$pdf->setPage($pageposafter);
    +						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
    +						//$pdf->SetDrawColor(190,190,200);
    +						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
    +						$pdf->SetLineStyle(array('dash'=>0));
    +					}
    +
    +					$nexY+=2;    // Passe espace entre les lignes
    +
    +					// Detect if some page were added automatically and output _tableau for past pages
    +					while ($pagenb < $pageposafter)
    +					{
    +						$pdf->setPage($pagenb);
    +						if ($pagenb == $pageposbeforeprintlines)
    +						{
    +							$this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1, $object->multicurrency_code);
    +						}
    +						else
    +						{
    +							$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code);
    +						}
    +						$this->_pagefoot($pdf,$object,$outputlangs,1);
    +						$pagenb++;
    +						$pdf->setPage($pagenb);
    +						$pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    +						if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +					}
    +					if (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak)
    +					{
    +					    if ($pagenb == $pageposafter)
    +						{
    +							$this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1, $object->multicurrency_code);
    +						}
    +						else
    +						{
    +							$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1, $object->multicurrency_code);
    +						}
    +						$this->_pagefoot($pdf,$object,$outputlangs,1);
    +						// New page
    +						$pdf->AddPage();
    +						if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +						$pagenb++;
    +						if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +					}
    +				}
    +
    +				// Show square
    +				if ($pagenb == $pageposbeforeprintlines)
    +				{
    +					$this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforsignature - $heightforfooter, 0, $outputlangs, 0, 0, $object->multicurrency_code);
    +					$bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforsignature - $heightforfooter + 1;
    +				}
    +				else
    +				{
    +					$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforsignature - $heightforfooter, 0, $outputlangs, 1, 0, $object->multicurrency_code);
    +					$bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforsignature - $heightforfooter + 1;
    +				}
    +
    +				// Affiche zone infos
    +				$posy=$this->drawInfoTable($pdf, $object, $bottomlasttab, $outputlangs);
    +
    +				// Affiche zone totaux
    +				$posy=$this->drawTotalTable($pdf, $object, 0, $bottomlasttab, $outputlangs);
    +
    +				// Affiche zone versements
    +				/*
    +				if ($deja_regle || $amount_credit_notes_included || $amount_deposits_included)
    +				{
    +					$posy=$this->drawPaymentsTable($pdf, $object, $posy, $outputlangs);
    +				}
    +				*/
    +
    +				// Customer signature area
    +				if (empty($conf->global->PROPAL_DISABLE_SIGNATURE))
    +				{
    +				    $posy=$this->drawSignatureArea($pdf, $object, $posy, $outputlangs);
    +				}
    +
    +				// Pied de page
    +				$this->_pagefoot($pdf,$object,$outputlangs);
    +				if (method_exists($pdf,'AliasNbPages')) $pdf->AliasNbPages();
    +
    +				//If propal merge product PDF is active
    +				if (!empty($conf->global->PRODUIT_PDF_MERGE_PROPAL))
    +				{
    +					require_once DOL_DOCUMENT_ROOT.'/product/class/propalmergepdfproduct.class.php';
    +
    +					$already_merged = array ();
    +					foreach ( $object->lines as $line ) {
    +						if (! empty($line->fk_product) && ! (in_array($line->fk_product, $already_merged))) {
    +							// Find the desire PDF
    +							$filetomerge = new Propalmergepdfproduct($this->db);
    +
    +							if ($conf->global->MAIN_MULTILANGS) {
    +								$filetomerge->fetch_by_product($line->fk_product, $outputlangs->defaultlang);
    +							} else {
    +								$filetomerge->fetch_by_product($line->fk_product);
    +							}
    +
    +							$already_merged[] = $line->fk_product;
    +
    +							$product = new Product($this->db);
    +							$product->fetch($line->fk_product);
    +
    +							if ($product->entity!=$conf->entity) {
    +								$entity_product_file=$product->entity;
    +							} else {
    +								$entity_product_file=$conf->entity;
    +							}
    +
    +							// If PDF is selected and file is not empty
    +							if (count($filetomerge->lines) > 0) {
    +								foreach ( $filetomerge->lines as $linefile ) {
    +									if (! empty($linefile->id) && ! empty($linefile->file_name)) {
    +
    +
    +										if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO))
    +										{
    +											if (! empty($conf->product->enabled)) {
    +												$filetomerge_dir = $conf->product->multidir_output[$entity_product_file] . '/' . get_exdir($product->id,2,0,0,$product,'product') . $product->id ."/photos";
    +											} elseif (! empty($conf->service->enabled)) {
    +												$filetomerge_dir = $conf->service->multidir_output[$entity_product_file] . '/' . get_exdir($product->id,2,0,0,$product,'product') . $product->id ."/photos";
    +											}
    +										}
    +										else
    +										{
    +											if (! empty($conf->product->enabled)) {
    +												$filetomerge_dir = $conf->product->multidir_output[$entity_product_file] . '/' . get_exdir(0,0,0,0,$product,'product') . dol_sanitizeFileName($product->ref);
    +											} elseif (! empty($conf->service->enabled)) {
    +												$filetomerge_dir = $conf->service->multidir_output[$entity_product_file] . '/' . get_exdir(0,0,0,0,$product,'product') . dol_sanitizeFileName($product->ref);
    +											}
    +										}
    +
    +										dol_syslog(get_class($this) . ':: upload_dir=' . $filetomerge_dir, LOG_DEBUG);
    +
    +										$infile = $filetomerge_dir . '/' . $linefile->file_name;
    +										if (file_exists($infile) && is_readable($infile)) {
    +											$pagecount = $pdf->setSourceFile($infile);
    +											for($i = 1; $i <= $pagecount; $i ++) {
    +												$tplIdx = $pdf->importPage($i);
    +												if ($tplIdx!==false) {
    +													$s = $pdf->getTemplatesize($tplIdx);
    +													$pdf->AddPage($s['h'] > $s['w'] ? 'P' : 'L');
    +													$pdf->useTemplate($tplIdx);
    +												} else {
    +													setEventMessages(null, array($infile.' cannot be added, probably protected PDF'),'warnings');
    +												}
    +											}
    +										}
    +									}
    +								}
    +							}
    +						}
    +					}
    +				}
    +
    +				$pdf->Close();
    +
    +				$pdf->Output($file,'F');
    +
    +				//Add pdfgeneration hook
    +				$hookmanager->initHooks(array('pdfgeneration'));
    +				$parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
    +				global $action;
    +				$reshook=$hookmanager->executeHooks('afterPDFCreation',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +
    +				if (! empty($conf->global->MAIN_UMASK))
    +				@chmod($file, octdec($conf->global->MAIN_UMASK));
    +
    +				$this->result = array('fullpath'=>$file);
    +
    +				return 1;   // Pas d'erreur
    +			}
    +			else
    +			{
    +				$this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
    +				return 0;
    +			}
    +		}
    +		else
    +		{
    +			$this->error=$langs->trans("ErrorConstantNotDefined","PROP_OUTPUTDIR");
    +			return 0;
    +		}
    +	}
    +
    +	/**
    +	 *  Show payments table
    +	 *
    +     *  @param	TCPDF		$pdf           Object PDF
    +     *  @param  Object		$object         Object proposal
    +     *  @param  int			$posy           Position y in PDF
    +     *  @param  Translate	$outputlangs    Object langs for output
    +     *  @return int             			<0 if KO, >0 if OK
    +	 */
    +	private function drawPaymentsTable(&$pdf, $object, $posy, $outputlangs)
    +	{
    +	}
    +
    +	/**
    +	 *   Show miscellaneous information (payment mode, payment term, ...)
    +	 *
    +	 *   @param		TCPDF		$pdf     		Object PDF
    +	 *   @param		Object		$object			Object to show
    +	 *   @param		int			$posy			Y
    +	 *   @param		Translate	$outputlangs	Langs object
    +	 *   @return	void
    +	 */
    +	function drawInfoTable(&$pdf, $object, $posy, $outputlangs)
    +	{
    +		global $conf;
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		$pdf->SetFont('','', $default_font_size - 1);
    +
    +		// If France, show VAT mention if not applicable
    +		if ($this->emetteur->country_code == 'FR' && $this->franchise == 1)
    +		{
    +			$pdf->SetFont('','B', $default_font_size - 2);
    +			$pdf->SetXY($this->marge_gauche, $posy);
    +			$pdf->MultiCell(100, 3, $outputlangs->transnoentities("VATIsNotUsedForInvoice"), 0, 'L', 0);
    +
    +			$posy=$pdf->GetY()+4;
    +		}
    +
    +		$posxval=52;
    +
    +        // Show shipping date
    +        if (! empty($object->date_livraison))
    +		{
    +            $outputlangs->load("sendings");
    +			$pdf->SetFont('','B', $default_font_size - 2);
    +			$pdf->SetXY($this->marge_gauche, $posy);
    +			$titre = $outputlangs->transnoentities("DateDeliveryPlanned").':';
    +			$pdf->MultiCell(80, 4, $titre, 0, 'L');
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posxval, $posy);
    +			$dlp=dol_print_date($object->date_livraison,"daytext",false,$outputlangs,true);
    +			$pdf->MultiCell(80, 4, $dlp, 0, 'L');
    +
    +            $posy=$pdf->GetY()+1;
    +		}
    +        elseif ($object->availability_code || $object->availability)    // Show availability conditions
    +		{
    +			$pdf->SetFont('','B', $default_font_size - 2);
    +			$pdf->SetXY($this->marge_gauche, $posy);
    +			$titre = $outputlangs->transnoentities("AvailabilityPeriod").':';
    +			$pdf->MultiCell(80, 4, $titre, 0, 'L');
    +			$pdf->SetTextColor(0,0,0);
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posxval, $posy);
    +			$lib_availability=$outputlangs->transnoentities("AvailabilityType".$object->availability_code)!=('AvailabilityType'.$object->availability_code)?$outputlangs->transnoentities("AvailabilityType".$object->availability_code):$outputlangs->convToOutputCharset($object->availability);
    +			$lib_availability=str_replace('\n',"\n",$lib_availability);
    +			$pdf->MultiCell(80, 4, $lib_availability, 0, 'L');
    +
    +			$posy=$pdf->GetY()+1;
    +		}
    +
    +		// Show payments conditions
    +		if (empty($conf->global->PROPALE_PDF_HIDE_PAYMENTTERMCOND) && ($object->cond_reglement_code || $object->cond_reglement))
    +		{
    +			$pdf->SetFont('','B', $default_font_size - 2);
    +			$pdf->SetXY($this->marge_gauche, $posy);
    +			$titre = $outputlangs->transnoentities("PaymentConditions").':';
    +			$pdf->MultiCell(43, 4, $titre, 0, 'L');
    +
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posxval, $posy);
    +			$lib_condition_paiement=$outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code)!=('PaymentCondition'.$object->cond_reglement_code)?$outputlangs->transnoentities("PaymentCondition".$object->cond_reglement_code):$outputlangs->convToOutputCharset($object->cond_reglement_doc);
    +			$lib_condition_paiement=str_replace('\n',"\n",$lib_condition_paiement);
    +			$pdf->MultiCell(67, 4, $lib_condition_paiement,0,'L');
    +
    +			$posy=$pdf->GetY()+3;
    +		}
    +
    +		if (empty($conf->global->PROPALE_PDF_HIDE_PAYMENTTERMMODE))
    +		{
    +			// Check a payment mode is defined
    +			/* Not required on a proposal
    +			if (empty($object->mode_reglement_code)
    +			&& ! $conf->global->FACTURE_CHQ_NUMBER
    +			&& ! $conf->global->FACTURE_RIB_NUMBER)
    +			{
    +				$pdf->SetXY($this->marge_gauche, $posy);
    +				$pdf->SetTextColor(200,0,0);
    +				$pdf->SetFont('','B', $default_font_size - 2);
    +				$pdf->MultiCell(90, 3, $outputlangs->transnoentities("ErrorNoPaiementModeConfigured"),0,'L',0);
    +				$pdf->SetTextColor(0,0,0);
    +
    +				$posy=$pdf->GetY()+1;
    +			}
    +			*/
    +
    +			// Show payment mode
    +			if ($object->mode_reglement_code
    +			&& $object->mode_reglement_code != 'CHQ'
    +			&& $object->mode_reglement_code != 'VIR')
    +			{
    +				$pdf->SetFont('','B', $default_font_size - 2);
    +				$pdf->SetXY($this->marge_gauche, $posy);
    +				$titre = $outputlangs->transnoentities("PaymentMode").':';
    +				$pdf->MultiCell(80, 5, $titre, 0, 'L');
    +				$pdf->SetFont('','', $default_font_size - 2);
    +				$pdf->SetXY($posxval, $posy);
    +				$lib_mode_reg=$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code)!=('PaymentType'.$object->mode_reglement_code)?$outputlangs->transnoentities("PaymentType".$object->mode_reglement_code):$outputlangs->convToOutputCharset($object->mode_reglement);
    +				$pdf->MultiCell(80, 5, $lib_mode_reg,0,'L');
    +
    +				$posy=$pdf->GetY()+2;
    +			}
    +
    +			// Show payment mode CHQ
    +			if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'CHQ')
    +			{
    +				// Si mode reglement non force ou si force a CHQ
    +				if (! empty($conf->global->FACTURE_CHQ_NUMBER))
    +				{
    +					$diffsizetitle=(empty($conf->global->PDF_DIFFSIZE_TITLE)?3:$conf->global->PDF_DIFFSIZE_TITLE);
    +
    +					if ($conf->global->FACTURE_CHQ_NUMBER > 0)
    +					{
    +						$account = new Account($this->db);
    +						$account->fetch($conf->global->FACTURE_CHQ_NUMBER);
    +
    +						$pdf->SetXY($this->marge_gauche, $posy);
    +						$pdf->SetFont('','B', $default_font_size - $diffsizetitle);
    +						$pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$account->proprio),0,'L',0);
    +						$posy=$pdf->GetY()+1;
    +
    +			            if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS))
    +			            {
    +							$pdf->SetXY($this->marge_gauche, $posy);
    +							$pdf->SetFont('','', $default_font_size - $diffsizetitle);
    +							$pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($account->owner_address), 0, 'L', 0);
    +							$posy=$pdf->GetY()+2;
    +			            }
    +					}
    +					if ($conf->global->FACTURE_CHQ_NUMBER == -1)
    +					{
    +						$pdf->SetXY($this->marge_gauche, $posy);
    +						$pdf->SetFont('','B', $default_font_size - $diffsizetitle);
    +						$pdf->MultiCell(100, 3, $outputlangs->transnoentities('PaymentByChequeOrderedTo',$this->emetteur->name),0,'L',0);
    +						$posy=$pdf->GetY()+1;
    +
    +			            if (empty($conf->global->MAIN_PDF_HIDE_CHQ_ADDRESS))
    +			            {
    +							$pdf->SetXY($this->marge_gauche, $posy);
    +							$pdf->SetFont('','', $default_font_size - $diffsizetitle);
    +							$pdf->MultiCell(100, 3, $outputlangs->convToOutputCharset($this->emetteur->getFullAddress()), 0, 'L', 0);
    +							$posy=$pdf->GetY()+2;
    +			            }
    +					}
    +				}
    +			}
    +
    +			// If payment mode not forced or forced to VIR, show payment with BAN
    +			if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR')
    +			{
    +				if (! empty($object->fk_account) || ! empty($object->fk_bank) || ! empty($conf->global->FACTURE_RIB_NUMBER))
    +				{
    +					$bankid=(empty($object->fk_account)?$conf->global->FACTURE_RIB_NUMBER:$object->fk_account);
    +					if (! empty($object->fk_bank)) $bankid=$object->fk_bank;   // For backward compatibility when object->fk_account is forced with object->fk_bank
    +					$account = new Account($this->db);
    +					$account->fetch($bankid);
    +
    +					$curx=$this->marge_gauche;
    +					$cury=$posy;
    +
    +					$posy=pdf_bank($pdf,$outputlangs,$curx,$cury,$account,0,$default_font_size);
    +
    +					$posy+=2;
    +				}
    +			}
    +		}
    +
    +		return $posy;
    +	}
    +
    +
    +	/**
    +	 *	Show total to pay
    +	 *
    +	 *	@param	PDF			$pdf            Object PDF
    +	 *	@param  Facture		$object         Object invoice
    +	 *	@param  int			$deja_regle     Montant deja regle
    +	 *	@param	int			$posy			Position depart
    +	 *	@param	Translate	$outputlangs	Objet langs
    +	 *	@return int							Position pour suite
    +	 */
    +	private function drawTotalTable(&$pdf, $object, $deja_regle, $posy, $outputlangs)
    +	{
    +		global $conf,$mysoc;
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		$tab2_top = $posy;
    +		$tab2_hl = 4;
    +		$pdf->SetFont('','', $default_font_size - 1);
    +
    +		// Tableau total
    +		$col1x = 120; $col2x = 170;
    +		if ($this->page_largeur < 210) // To work with US executive format
    +		{
    +			$col2x-=20;
    +		}
    +		$largcol2 = ($this->page_largeur - $this->marge_droite - $col2x);
    +
    +		$useborder=0;
    +		$index = 0;
    +
    +		// Total HT
    +		$pdf->SetFillColor(255,255,255);
    +		$pdf->SetXY($col1x, $tab2_top + 0);
    +		$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1);
    +
    +		$total_ht = ($conf->multicurrency->enabled && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht);
    +		$pdf->SetXY($col2x, $tab2_top + 0);
    +		$pdf->MultiCell($largcol2, $tab2_hl, price($total_ht + (! empty($object->remise)?$object->remise:0), 0, $outputlangs), 0, 'R', 1);
    +
    +		// Show VAT by rates and total
    +		$pdf->SetFillColor(248,248,248);
    +
    +		$total_ttc = ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) ? $object->multicurrency_total_ttc : $object->total_ttc;
    +
    +		$this->atleastoneratenotnull=0;
    +		if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))
    +		{
    +			$tvaisnull=((! empty($this->tva) && count($this->tva) == 1 && isset($this->tva['0.000']) && is_float($this->tva['0.000'])) ? true : false);
    +			if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_IFNULL) && $tvaisnull)
    +			{
    +				// Nothing to do
    +			}
    +			else
    +			{
    +				//Local tax 1 before VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on')
    +				//{
    +					foreach( $this->localtax1 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('1','3','5'))) continue;
    +
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +							if ($tvakey!=0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT1",$mysoc->country_code).' ';
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					}
    +	      		//}
    +				//Local tax 2 before VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on')
    +				//{
    +					foreach( $this->localtax2 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('1','3','5'))) continue;
    +
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +							if ($tvakey!=0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT2", $mysoc->country_code).' ';
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					}
    +				//}
    +				// VAT
    +				foreach($this->tva as $tvakey => $tvaval)
    +				{
    +					if ($tvakey != 0)    // On affiche pas taux 0
    +					{
    +						$this->atleastoneratenotnull++;
    +
    +						$index++;
    +						$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +						$tvacompl='';
    +						if (preg_match('/\*/',$tvakey))
    +						{
    +							$tvakey=str_replace('*','',$tvakey);
    +							$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +						}
    +						$totalvat =$outputlangs->transcountrynoentities("TotalVAT",$mysoc->country_code).' ';
    +						$totalvat.=vatrate($tvakey,1).$tvacompl;
    +						$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +						$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +						$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +					}
    +				}
    +
    +				//Local tax 1 after VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on')
    +				//{
    +					foreach( $this->localtax1 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('2','4','6'))) continue;
    +
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +							if ($tvakey != 0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT1",$mysoc->country_code).' ';
    +
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					}
    +	      		//}
    +				//Local tax 2 after VAT
    +				//if (! empty($conf->global->FACTURE_LOCAL_TAX2_OPTION) && $conf->global->FACTURE_LOCAL_TAX2_OPTION=='localtax2on')
    +				//{
    +					foreach( $this->localtax2 as $localtax_type => $localtax_rate )
    +					{
    +						if (in_array((string) $localtax_type, array('2','4','6'))) continue;
    +
    +						foreach( $localtax_rate as $tvakey => $tvaval )
    +						{
    +						    // retrieve global local tax
    +							if ($tvakey != 0)    // On affiche pas taux 0
    +							{
    +								//$this->atleastoneratenotnull++;
    +
    +								$index++;
    +								$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +
    +								$tvacompl='';
    +								if (preg_match('/\*/',$tvakey))
    +								{
    +									$tvakey=str_replace('*','',$tvakey);
    +									$tvacompl = " (".$outputlangs->transnoentities("NonPercuRecuperable").")";
    +								}
    +								$totalvat = $outputlangs->transcountrynoentities("TotalLT2",$mysoc->country_code).' ';
    +
    +								$totalvat.=vatrate(abs($tvakey),1).$tvacompl;
    +								$pdf->MultiCell($col2x-$col1x, $tab2_hl, $totalvat, 0, 'L', 1);
    +
    +								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    +							}
    +						}
    +					}
    +				//}
    +
    +				// Total TTC
    +				$index++;
    +				$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +				$pdf->SetTextColor(0,0,60);
    +				$pdf->SetFillColor(224,224,224);
    +				$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalTTC"), $useborder, 'L', 1);
    +
    +				$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +				$pdf->MultiCell($largcol2, $tab2_hl, price($total_ttc, 0, $outputlangs), $useborder, 'R', 1);
    +			}
    +		}
    +
    +		$pdf->SetTextColor(0,0,0);
    +
    +		/*
    +		$resteapayer = $object->total_ttc - $deja_regle;
    +		if (! empty($object->paye)) $resteapayer=0;
    +		*/
    +
    +		if ($deja_regle > 0)
    +		{
    +			$index++;
    +
    +			$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("AlreadyPaid"), 0, 'L', 0);
    +
    +			$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($largcol2, $tab2_hl, price($deja_regle, 0, $outputlangs), 0, 'R', 0);
    +
    +			/*
    +			if ($object->close_code == 'discount_vat')
    +			{
    +				$index++;
    +				$pdf->SetFillColor(255,255,255);
    +
    +				$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +				$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("EscompteOfferedShort"), $useborder, 'L', 1);
    +
    +				$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +				$pdf->MultiCell($largcol2, $tab2_hl, price($object->total_ttc - $deja_regle, 0, $outputlangs), $useborder, 'R', 1);
    +
    +				$resteapayer=0;
    +			}
    +			*/
    +
    +			$index++;
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->SetFillColor(224,224,224);
    +			$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("RemainderToPay"), $useborder, 'L', 1);
    +
    +			$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
    +			$pdf->MultiCell($largcol2, $tab2_hl, price($resteapayer, 0, $outputlangs), $useborder, 'R', 1);
    +
    +			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->SetTextColor(0,0,0);
    +		}
    +
    +		$index++;
    +		return ($tab2_top + ($tab2_hl * $index));
    +	}
    +
    +	/**
    +	 *   Show table for lines
    +	 *
    +	 *   @param		PDF			$pdf     		Object PDF
    +	 *   @param		string		$tab_top		Top position of table
    +	 *   @param		string		$tab_height		Height of table (rectangle)
    +	 *   @param		int			$nexY			Y (not used)
    +	 *   @param		Translate	$outputlangs	Langs object
    +	 *   @param		int			$hidetop		1=Hide top bar of array and title, 0=Hide nothing, -1=Hide only title
    +	 *   @param		int			$hidebottom		Hide bottom bar of array
    +	 *   @param		string		$currency		Currency code
    +	 *   @return	void
    +	 */
    +	function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop=0, $hidebottom=0, $currency='')
    +	{
    +		global $conf;
    +
    +		// Force to disable hidetop and hidebottom
    +		$hidebottom=0;
    +		if ($hidetop) $hidetop=-1;
    +
    +		$currency = !empty($currency) ? $currency : $conf->currency;
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		// Amount in (at tab_top - 1)
    +		$pdf->SetTextColor(0,0,0);
    +		$pdf->SetFont('','', $default_font_size - 2);
    +
    +		if (empty($hidetop))
    +		{
    +			$titre = $outputlangs->transnoentities("AmountInCurrency",$outputlangs->transnoentitiesnoconv("Currency".$currency));
    +			$pdf->SetXY($this->page_largeur - $this->marge_droite - ($pdf->GetStringWidth($titre) + 3), $tab_top-4);
    +			$pdf->MultiCell(($pdf->GetStringWidth($titre) + 3), 2, $titre);
    +
    +			//$conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR='230,230,230';
    +			if (! empty($conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR)) $pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_droite-$this->marge_gauche, 5, 'F', null, explode(',',$conf->global->MAIN_PDF_TITLE_BACKGROUND_COLOR));
    +		}
    +
    +		$pdf->SetDrawColor(128,128,128);
    +		$pdf->SetFont('','', $default_font_size - 1);
    +
    +		// Output Rect
    +		$this->printRect($pdf,$this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height, $hidetop, $hidebottom);	// Rect prend une longueur en 3eme param et 4eme param
    +
    +
    +		foreach ($this->cols as $colKey => $colDef)
    +		{
    +		    if(!$this->getColumnStatus($colKey)) continue;
    +
    +		    // get title label
    +		    $colDef['title']['label'] = !empty($colDef['title']['label'])?$colDef['title']['label']:$outputlangs->transnoentities($colDef['title']['textkey']);
    +
    +		    // Add column separator
    +		    if(!empty($colDef['border-left'])){
    +		        $pdf->line($colDef['xStartPos'], $tab_top, $colDef['xStartPos'], $tab_top + $tab_height);
    +		    }
    +
    +		    if (empty($hidetop))
    +		    {
    +		      $pdf->SetXY($colDef['xStartPos'] + $colDef['title']['padding'][3], $tab_top + $colDef['title']['padding'][0] );
    +
    +		      $textWidth = $colDef['width'] - $colDef['title']['padding'][3] -$colDef['title']['padding'][1];
    +		      $pdf->MultiCell($textWidth,2,$colDef['title']['label'],'',$colDef['title']['align']);
    +		    }
    +		}
    +
    +		if (empty($hidetop)){
    +			$pdf->line($this->marge_gauche, $tab_top+5, $this->page_largeur-$this->marge_droite, $tab_top+5);	// line prend une position y en 2eme param et 4eme param
    +		}
    +	}
    +
    +	/**
    +	 *  Show top header of page.
    +	 *
    +	 *  @param	PDF			$pdf     		Object PDF
    +	 *  @param  Object		$object     	Object to show
    +	 *  @param  int	    	$showaddress    0=no, 1=yes
    +	 *  @param  Translate	$outputlangs	Object lang for output
    +	 *  @return	void
    +	 */
    +	function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
    +	{
    +		global $conf,$langs;
    +
    +		$outputlangs->load("main");
    +		$outputlangs->load("bills");
    +		$outputlangs->load("propal");
    +		$outputlangs->load("companies");
    +
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
    +
    +		//  Show Draft Watermark
    +		if($object->statut==0 && (! empty($conf->global->PROPALE_DRAFT_WATERMARK)) )
    +		{
    +            pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->PROPALE_DRAFT_WATERMARK);
    +		}
    +
    +		$pdf->SetTextColor(0,0,60);
    +		$pdf->SetFont('','B', $default_font_size + 3);
    +
    +		$posy=$this->marge_haute;
    +		$posx=$this->page_largeur-$this->marge_droite-100;
    +
    +		$pdf->SetXY($this->marge_gauche,$posy);
    +
    +		// Logo
    +		if (empty($conf->global->PDF_DISABLE_MYCOMPANY_LOGO))
    +		{
    +			$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    +			if ($this->emetteur->logo)
    +			{
    +				if (is_readable($logo))
    +				{
    +				    $height=pdf_getHeightForLogo($logo);
    +				    $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height);	// width=0 (auto)
    +				}
    +				else
    +				{
    +					$pdf->SetTextColor(200,0,0);
    +					$pdf->SetFont('','B',$default_font_size - 2);
    +					$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
    +					$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
    +				}
    +			}
    +			else
    +			{
    +				$text=$this->emetteur->name;
    +				$pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
    +			}
    +		}
    +
    +		$pdf->SetFont('','B',$default_font_size + 3);
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$title=$outputlangs->transnoentities("PdfCommercialProposalTitle");
    +		$pdf->MultiCell(100, 4, $title, '', 'R');
    +
    +		$pdf->SetFont('','B',$default_font_size);
    +
    +		$posy+=5;
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$pdf->MultiCell(100, 4, $outputlangs->transnoentities("Ref")." : " . $outputlangs->convToOutputCharset($object->ref), '', 'R');
    +
    +		$posy+=1;
    +		$pdf->SetFont('','', $default_font_size - 2);
    +
    +		if ($object->ref_client)
    +		{
    +			$posy+=4;
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefCustomer")." : " . $outputlangs->convToOutputCharset($object->ref_client), '', 'R');
    +		}
    +
    +		$posy+=4;
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$pdf->MultiCell(100, 3, $outputlangs->transnoentities("Date")." : " . dol_print_date($object->date,"day",false,$outputlangs,true), '', 'R');
    +
    +		$posy+=4;
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$pdf->MultiCell(100, 3, $outputlangs->transnoentities("DateEndPropal")." : " . dol_print_date($object->fin_validite,"day",false,$outputlangs,true), '', 'R');
    +
    +		if ($object->thirdparty->code_client)
    +		{
    +			$posy+=4;
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->MultiCell(100, 3, $outputlangs->transnoentities("CustomerCode")." : " . $outputlangs->transnoentities($object->thirdparty->code_client), '', 'R');
    +		}
    +
    +		// Get contact
    +		if (!empty($conf->global->DOC_SHOW_FIRST_SALES_REP))
    +		{
    +		    $arrayidcontact=$object->getIdContact('internal','SALESREPFOLL');
    +		    if (count($arrayidcontact) > 0)
    +		    {
    +		        $usertmp=new User($this->db);
    +		        $usertmp->fetch($arrayidcontact[0]);
    +                $posy+=4;
    +                $pdf->SetXY($posx,$posy);
    +		        $pdf->SetTextColor(0,0,60);
    +		        $pdf->MultiCell(100, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R');
    +		    }
    +		}
    +
    +		$posy+=2;
    +
    +		$top_shift = 0;
    +		// Show list of linked objects
    +		$current_y = $pdf->getY();
    +		$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size);
    +		if ($current_y < $pdf->getY())
    +		{
    +			$top_shift = $pdf->getY() - $current_y;
    +		}
    +
    +		if ($showaddress)
    +		{
    +			// Sender properties
    +			$carac_emetteur='';
    +		 	// Add internal contact of proposal if defined
    +			$arrayidcontact=$object->getIdContact('internal','SALESREPFOLL');
    +		 	if (count($arrayidcontact) > 0)
    +		 	{
    +		 		$object->fetch_user($arrayidcontact[0]);
    +		 		$labelbeforecontactname=($outputlangs->transnoentities("FromContactName")!='FromContactName'?$outputlangs->transnoentities("FromContactName"):$outputlangs->transnoentities("Name"));
    +		 		$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$labelbeforecontactname." ".$outputlangs->convToOutputCharset($object->user->getFullName($outputlangs))."\n";
    +		 	}
    +
    +		 	$carac_emetteur .= pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty, '', 0, 'source', $object);
    +
    +			// Show sender
    +			$posy=42+$top_shift;
    +		 	$posx=$this->marge_gauche;
    +			if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->page_largeur-$this->marge_droite-80;
    +			$hautcadre=40;
    +
    +			// Show sender frame
    +			$pdf->SetTextColor(0,0,0);
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posx,$posy-5);
    +			$pdf->MultiCell(66,5, $outputlangs->transnoentities("BillFrom").":", 0, 'L');
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetFillColor(230,230,230);
    +			$pdf->MultiCell(82, $hautcadre, "", 0, 'R', 1);
    +			$pdf->SetTextColor(0,0,60);
    +
    +			// Show sender name
    +			$pdf->SetXY($posx+2,$posy+3);
    +			$pdf->SetFont('','B', $default_font_size);
    +			$pdf->MultiCell(80, 4, $outputlangs->convToOutputCharset($this->emetteur->name), 0, 'L');
    +			$posy=$pdf->getY();
    +
    +			// Show sender information
    +			$pdf->SetXY($posx+2,$posy);
    +			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->MultiCell(80, 4, $carac_emetteur, 0, 'L');
    +
    +
    +			// If CUSTOMER contact defined, we use it
    +			$usecontact=false;
    +			$arrayidcontact=$object->getIdContact('external','CUSTOMER');
    +			if (count($arrayidcontact) > 0)
    +			{
    +				$usecontact=true;
    +				$result=$object->fetch_contact($arrayidcontact[0]);
    +			}
    +
    +			//Recipient name
    +			// On peut utiliser le nom de la societe du contact
    +			if ($usecontact && !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) {
    +				$thirdparty = $object->contact;
    +			} else {
    +				$thirdparty = $object->thirdparty;
    +			}
    +
    +			$carac_client_name= pdfBuildThirdpartyName($thirdparty, $outputlangs);
    +
    +			$carac_client=pdf_build_address($outputlangs,$this->emetteur,$object->thirdparty,($usecontact?$object->contact:''),$usecontact,'target',$object);
    +
    +			// Show recipient
    +			$widthrecbox=100;
    +			if ($this->page_largeur < 210) $widthrecbox=84;	// To work with US executive format
    +			$posy=42+$top_shift;
    +			$posx=$this->page_largeur-$this->marge_droite-$widthrecbox;
    +			if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->marge_gauche;
    +
    +			// Show recipient frame
    +			$pdf->SetTextColor(0,0,0);
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posx+2,$posy-5);
    +			$pdf->MultiCell($widthrecbox, 5, $outputlangs->transnoentities("BillTo").":", 0, 'L');
    +			$pdf->Rect($posx, $posy, $widthrecbox, $hautcadre);
    +
    +			// Show recipient name
    +			$pdf->SetXY($posx+2,$posy+3);
    +			$pdf->SetFont('','B', $default_font_size);
    +			$pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L');
    +
    +			$posy = $pdf->getY();
    +
    +			// Show recipient information
    +			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->SetXY($posx+2,$posy);
    +			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
    +		}
    +
    +		$pdf->SetTextColor(0,0,0);
    +		return $top_shift;
    +	}
    +
    +	/**
    +	 *   	Show footer of page. Need this->emetteur object
    +     *
    +	 *   	@param	PDF			$pdf     			PDF
    +	 * 		@param	Object		$object				Object to show
    +	 *      @param	Translate	$outputlangs		Object lang for output
    +	 *      @param	int			$hidefreetext		1=Hide free text
    +	 *      @return	int								Return height of bottom margin including footer text
    +	 */
    +	function _pagefoot(&$pdf,$object,$outputlangs,$hidefreetext=0)
    +	{
    +		global $conf;
    +		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
    +		return pdf_pagefoot($pdf,$outputlangs,'PROPOSAL_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
    +	}
    +
    +	/**
    +	 *	Show area for the customer to sign
    +	 *
    +	 *	@param	PDF			$pdf            Object PDF
    +	 *	@param  Facture		$object         Object invoice
    +	 *	@param	int			$posy			Position depart
    +	 *	@param	Translate	$outputlangs	Objet langs
    +	 *	@return int							Position pour suite
    +	 */
    +	private function drawSignatureArea(&$pdf, $object, $posy, $outputlangs)
    +	{
    +		global $conf;
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +		$tab_top = $posy + 4;
    +		$tab_hl = 4;
    +
    +		$posx = 120;
    +		$largcol = ($this->page_largeur - $this->marge_droite - $posx);
    +		$useborder=0;
    +		$index = 0;
    +		// Total HT
    +		$pdf->SetFillColor(255,255,255);
    +		$pdf->SetXY($posx, $tab_top + 0);
    +		$pdf->SetFont('','', $default_font_size - 2);
    +		$pdf->MultiCell($largcol, $tab_hl, $outputlangs->transnoentities("ProposalCustomerSignature"), 0, 'L', 1);
    +
    +		$pdf->SetXY($posx, $tab_top + $tab_hl);
    +		$pdf->MultiCell($largcol, $tab_hl*3, '', 1, 'R');
    +		if (! empty($conf->global->MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING)) {
    +			$pdf->addEmptySignatureAppearance($posx, $tab_top + $tab_hl, $largcol, $tab_hl*3);
    +		}
    +
    +		return ($tab_hl*7);
    +	}
    +
    +
    +	/**
    +	 *   	Define Array Column Field
    +	 *
    +	 *   	@param	object			$object			common object
    +	 *   	@param	Translate		$outputlangs	langs
    +	 *      @param	int				$hidedetails	Do not show line details
    +	 *      @param	int				$hidedesc		Do not show desc
    +	 *      @param	int				$hideref		Do not show ref
    +	 *      @return	null
    +	 */
    +    function defineColumnField($object,$outputlangs,$hidedetails=0,$hidedesc=0,$hideref=0)
    +    {
    +	    global $conf, $hookmanager;
    +
    +	    // Default field style for content
    +	    $this->defaultContentsFieldsStyle = array(
    +	        'align' => 'R', // R,C,L
    +	        'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	    );
    +
    +	    // Default field style for content
    +	    $this->defaultTitlesFieldsStyle = array(
    +	        'align' => 'C', // R,C,L
    +	        'padding' => array(0.5,0,0.5,0), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	    );
    +
    +	    /*
    +	     * For exemple
    +	     $this->cols['theColKey'] = array(
    +	     'rank' => $rank, // int : use for ordering columns
    +	     'width' => 20, // the column width in mm
    +	     'title' => array(
    +	     'textkey' => 'yourLangKey', // if there is no label, yourLangKey will be translated to replace label
    +	     'label' => ' ', // the final label : used fore final generated text
    +	     'align' => 'L', // text alignement :  R,C,L
    +	     'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	     ),
    +	     'content' => array(
    +	     'align' => 'L', // text alignement :  R,C,L
    +	     'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	     ),
    +	     );
    +	     */
    +
    +	    $rank=0; // do not use negative rank
    +	    $this->cols['desc'] = array(
    +	        'rank' => $rank,
    +	        'width' => false, // only for desc
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'Designation', // use lang key is usefull in somme case with module
    +	            'align' => 'L',
    +	            // 'textkey' => 'yourLangKey', // if there is no label, yourLangKey will be translated to replace label
    +	            // 'label' => ' ', // the final label
    +	            'padding' => array(0.5,0.5,0.5,0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	        ),
    +	        'content' => array(
    +	            'align' => 'L',
    +	        ),
    +	    );
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['photo'] = array(
    +	        'rank' => $rank,
    +	        'width' => (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH)?20:$conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH), // in mm
    +	        'status' => false,
    +	        'title' => array(
    +	            'textkey' => 'Photo',
    +	            'label' => ' '
    +	        ),
    +	        'content' => array(
    +	            'padding' => array(0,0,0,0), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
    +	        ),
    +	        'border-left' => false, // remove left line separator
    +	    );
    +
    +	    if (! empty($conf->global->MAIN_GENERATE_PROPOSALS_WITH_PICTURE) && !empty($this->atleastonephoto))
    +	    {
    +	        $this->cols['photo']['status'] = true;
    +	    }
    +
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['vat'] = array(
    +	        'rank' => $rank,
    +	        'status' => false,
    +	        'width' => 16, // in mm
    +	        'title' => array(
    +	            'textkey' => 'VAT'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +	    if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) && empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN))
    +	    {
    +	        $this->cols['vat']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['subprice'] = array(
    +	        'rank' => $rank,
    +	        'width' => 19, // in mm
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'PriceUHT'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['qty'] = array(
    +	        'rank' => $rank,
    +	        'width' => 16, // in mm
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'Qty'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['progress'] = array(
    +	        'rank' => $rank,
    +	        'width' => 19, // in mm
    +	        'status' => false,
    +	        'title' => array(
    +	            'textkey' => 'Progress'
    +	        ),
    +	        'border-left' => false, // add left line separator
    +	    );
    +
    +	    if($this->situationinvoice)
    +	    {
    +	        $this->cols['progress']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['unit'] = array(
    +	        'rank' => $rank,
    +	        'width' => 11, // in mm
    +	        'status' => false,
    +	        'title' => array(
    +	            'textkey' => 'Unit'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +	    if($conf->global->PRODUCT_USE_UNITS){
    +	        $this->cols['unit']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['discount'] = array(
    +	        'rank' => $rank,
    +	        'width' => 13, // in mm
    +	        'status' => false,
    +	        'title' => array(
    +	            'textkey' => 'ReductionShort'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +	    if ($this->atleastonediscount){
    +	        $this->cols['discount']['status'] = true;
    +	    }
    +
    +	    $rank = $rank + 10;
    +	    $this->cols['totalexcltax'] = array(
    +	        'rank' => $rank,
    +	        'width' => 26, // in mm
    +	        'status' => true,
    +	        'title' => array(
    +	            'textkey' => 'TotalHT'
    +	        ),
    +	        'border-left' => true, // add left line separator
    +	    );
    +
    +
    +	    $parameters=array(
    +	        'object' => $object,
    +	        'outputlangs' => $outputlangs,
    +	        'hidedetails' => $hidedetails,
    +	        'hidedesc' => $hidedesc,
    +	        'hideref' => $hideref
    +	    );
    +
    +	    $reshook=$hookmanager->executeHooks('defineColumnField',$parameters,$this);    // Note that $object may have been modified by hook
    +	    if ($reshook < 0)
    +	    {
    +	        setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +	    }
    +	    elseif (empty($reshook))
    +	    {
    +	        $this->cols = array_replace($this->cols, $hookmanager->resArray); // array_replace is used to preserve keys
    +	    }
    +	    else
    +	    {
    +	        $this->cols = $hookmanager->resArray;
    +	    }
    +	}
    +}
    diff --git a/htdocs/core/modules/propale/mod_propale_marbre.php b/htdocs/core/modules/propale/mod_propale_marbre.php
    index 0e1700da500..cb1638aec82 100644
    --- a/htdocs/core/modules/propale/mod_propale_marbre.php
    +++ b/htdocs/core/modules/propale/mod_propale_marbre.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -31,10 +31,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/propale/modules_propale.php';
      */
     class mod_propale_marbre extends ModeleNumRefPropales
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $prefix='PR';
    -	var $error='';
    -	var $nom = "Marbre";
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	public $prefix='PR';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Marbre';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Marbre';
     
     
         /**
    @@ -108,15 +128,12 @@ class mod_propale_marbre extends ModeleNumRefPropales
     	{
     		global $db,$conf;
     
    -		// Use object entity ID
    -		$entity = ((isset($propal->entity) && is_numeric($propal->entity)) ? $propal->entity : $conf->entity);
    -
     		// D'abord on recupere la valeur max
     		$posindice=8;
     		$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";	// This is standard SQL
     		$sql.= " FROM ".MAIN_DB_PREFIX."propal";
     		$sql.= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
    -		$sql.= " AND entity = ".$entity;
    +		$sql.= " AND entity IN (".getEntity('proposalnumber', 1, $propal).")";
     
     		$resql=$db->query($sql);
     		if ($resql)
    @@ -152,5 +169,4 @@ class mod_propale_marbre extends ModeleNumRefPropales
     	{
     		return $this->getNextValue($objsoc,$objforref);
     	}
    -
     }
    diff --git a/htdocs/core/modules/propale/mod_propale_saphir.php b/htdocs/core/modules/propale/mod_propale_saphir.php
    index 54d894c20b5..87fcc7c2920 100644
    --- a/htdocs/core/modules/propale/mod_propale_saphir.php
    +++ b/htdocs/core/modules/propale/mod_propale_saphir.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville        <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur         <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2007 Regis Houssin               <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin               <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -33,9 +33,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/propale/modules_propale.php';
      */
     class mod_propale_saphir extends ModeleNumRefPropales
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Saphir';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +     * @var string Error code (or message)
    +     */
    +    public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Saphir';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Saphir';
     
     
         /**
    @@ -45,7 +64,7 @@ class mod_propale_saphir extends ModeleNumRefPropales
          */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
     		$langs->load("bills");
     
    @@ -115,14 +134,8 @@ class mod_propale_saphir extends ModeleNumRefPropales
     
     		require_once DOL_DOCUMENT_ROOT .'/core/lib/functions2.lib.php';
     
    -		$constant = 'PROPALE_SAPHIR_MASK_'.$propal->entity;
    -
     		// On defini critere recherche compteur
    -		if (! empty($conf->global->$constant)) {
    -			$mask = $conf->global->$constant; // for multicompany proposal sharing
    -		} else {
    -			$mask = $conf->global->PROPALE_SAPHIR_MASK;
    -		}
    +		$mask = $conf->global->PROPALE_SAPHIR_MASK;
     
     		if (! $mask)
     		{
    @@ -130,8 +143,8 @@ class mod_propale_saphir extends ModeleNumRefPropales
     			return 0;
     		}
     
    -		// Use object entity ID
    -		$entity = ((isset($propal->entity) && is_numeric($propal->entity)) ? $propal->entity : $conf->entity);
    +		// Get entities
    +		$entity = getEntity('proposalnumber', 1, $propal);
     
     		$date = $propal->date;
     
    @@ -139,5 +152,4 @@ class mod_propale_saphir extends ModeleNumRefPropales
     
     		return  $numFinal;
     	}
    -
     }
    diff --git a/htdocs/core/modules/propale/modules_propale.php b/htdocs/core/modules/propale/modules_propale.php
    index c2d52923e4f..595534c40f4 100644
    --- a/htdocs/core/modules/propale/modules_propale.php
    +++ b/htdocs/core/modules/propale/modules_propale.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
      *
    @@ -36,9 +36,13 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';   // Requ
      */
     abstract class ModelePDFPropales extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation modules
     	 *
    @@ -48,6 +52,7 @@ abstract class ModelePDFPropales extends CommonDocGenerator
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='propal';
    @@ -66,7 +71,10 @@ abstract class ModelePDFPropales extends CommonDocGenerator
      */
     abstract class ModeleNumRefPropales
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 * Return if a module can be used or not
    diff --git a/htdocs/core/modules/rapport/pdf_paiement.class.php b/htdocs/core/modules/rapport/pdf_paiement.class.php
    index a645b105610..4b4046f963e 100644
    --- a/htdocs/core/modules/rapport/pdf_paiement.class.php
    +++ b/htdocs/core/modules/rapport/pdf_paiement.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2006-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2015		Charles-Fr BENKE  	 <charles.fr@benke.fr>
    + * Copyright (C) 2015-2018 Charlene BENKE  	<charlie@patas-monkey.com>
      *
      * 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
    @@ -40,9 +40,9 @@ class pdf_paiement
     	function __construct($db)
     	{
     		global $langs,$conf;
    -		$langs->load("bills");
    -		$langs->load("compta");
    -		$langs->load("main");
    +
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("bills","compta","main"));
     
     		$this->db = $db;
     		$this->description = $langs->transnoentities("ListOfCustomerPayments");
    @@ -80,10 +80,10 @@ class pdf_paiement
     		}
     		// which type of document will be generated: clients (client) or providers (fourn) invoices
     		$this->doc_type = "client";
    -
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Fonction generant la rapport sur le disque
     	 *
    @@ -95,6 +95,7 @@ class pdf_paiement
     	 */
     	function write_file($_dir, $month, $year, $outputlangs)
     	{
    +        // phpcs:enable
     		include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     
     		global $conf, $hookmanager, $langs, $user;
    @@ -179,7 +180,7 @@ class pdf_paiement
     		// number of bill
     		switch ($this->doc_type) {
     			case "client":
    -				$sql = "SELECT p.datep as dp, f.facnumber";
    +				$sql = "SELECT p.datep as dp, f.ref";
     				//$sql .= ", c.libelle as paiement_type, p.num_paiement";
     				$sql.= ", c.code as paiement_code, p.num_paiement";
     				$sql.= ", p.amount as paiement_amount, f.total_ttc as facture_amount";
    @@ -200,7 +201,7 @@ class pdf_paiement
     				$sql.= " WHERE f.fk_soc = s.rowid AND pf.fk_facture = f.rowid AND pf.fk_paiement = p.rowid";
     				if (! empty($conf->banque->enabled))
     					$sql.= " AND p.fk_bank = b.rowid AND b.fk_account = ba.rowid ";
    -				$sql.= " AND f.entity = ".$conf->entity;
    +				$sql.= " AND f.entity IN (".getEntity('invoice').")";
     				$sql.= " AND p.datep BETWEEN '".$this->db->idate(dol_get_first_day($year,$month))."' AND '".$this->db->idate(dol_get_last_day($year,$month))."'";
     				if (! $user->rights->societe->client->voir && ! $socid)
     				{
    @@ -210,7 +211,7 @@ class pdf_paiement
     				$sql.= " ORDER BY p.datep ASC, pf.fk_paiement ASC";
     				break;
     			case "fourn":
    -				$sql = "SELECT p.datep as dp, f.ref as facnumber";
    +				$sql = "SELECT p.datep as dp, f.ref as ref";
     				//$sql .= ", c.libelle as paiement_type, p.num_paiement";
     				$sql.= ", c.code as paiement_code, p.num_paiement";
     				$sql.= ", p.amount as paiement_amount, f.total_ttc as facture_amount";
    @@ -253,7 +254,7 @@ class pdf_paiement
     			{
     				$objp = $this->db->fetch_object($result);
     
    -				$lines[$i][0] = $objp->facnumber;
    +				$lines[$i][0] = $objp->ref;
     				$lines[$i][1] = dol_print_date($this->db->jdate($objp->dp),"day",false,$outputlangs,true);
     				$lines[$i][2] = $langs->transnoentities("PaymentTypeShort".$objp->paiement_code);
     				$lines[$i][3] = $objp->num_paiement;
    @@ -345,7 +346,7 @@ class pdf_paiement
     	 */
     	function _pagehead(&$pdf, $page, $showaddress, $outputlangs)
     	{
    -		global $langs;
    +		global $langs, $conf;
     
     		// Do not add the BACKGROUND as this is a report
     		//pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
    @@ -406,6 +407,7 @@ class pdf_paiement
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Output body
     	 *
    @@ -417,6 +419,7 @@ class pdf_paiement
     	 */
     	function Body(&$pdf, $page, $lines, $outputlangs)
     	{
    +        // phpcs:enable
     		global $langs;
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
    @@ -495,4 +498,3 @@ class pdf_paiement
     		$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxpaymentamount, $this->line_height, $langs->transnoentities('Total')." : ".price($total), 0, 'R', 0);
     	}
     }
    -
    diff --git a/htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php b/htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php
    new file mode 100644
    index 00000000000..7f6fd99bd67
    --- /dev/null
    +++ b/htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php
    @@ -0,0 +1,522 @@
    +<?php
    +/* Copyright (C) 2018	   Quentin Vial-Gouteyron    <quentin.vial-gouteyron@atm-consulting.fr>
    +*
    +* 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
    +* the Free Software Foundation; either version 3 of the License, or
    +* (at your option) any later version.
    +*
    +* This program is distributed in the hope that it will be useful,
    +* but WITHOUT ANY WARRANTY; without even the implied warranty of
    +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +* GNU General Public License for more details.
    +*
    +* You should have received a copy of the GNU General Public License
    +* along with this program. If not, see <http://www.gnu.org/licenses/>.
    +* or see http://www.gnu.org/
    +*/
    +
    +/**
    + *	\file       htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php
    + *	\ingroup    reception
    + *	\brief      File of class to build ODT documents for reception
    + */
    +
    +require_once DOL_DOCUMENT_ROOT.'/core/modules/reception/modules_reception.php';
    +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
    +
    +
    +/**
    + *	Class to build documents using ODF templates generator
    + */
    +class doc_generic_reception_odt extends ModelePdfReception
    +{
    +	var $emetteur;	// Objet societe qui emet
    +
    +	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    +	var $version = 'dolibarr';
    +
    +
    +	/**
    +	 *	Constructor
    +	 *
    +	 *  @param		DoliDB		$db      Database handler
    +	 */
    +	function __construct($db)
    +	{
    +		global $conf,$langs,$mysoc;
    +
    +		$langs->load("main");
    +		$langs->load("companies");
    +
    +		$this->db = $db;
    +		$this->name = "ODT templates";
    +		$this->description = $langs->trans("DocumentModelOdt");
    +		$this->scandir = 'RECEPTION_ADDON_PDF_ODT_PATH';	// Name of constant that is used to save list of directories to scan
    +
    +		// Dimension page pour format A4
    +		$this->type = 'odt';
    +		$this->page_largeur = 0;
    +		$this->page_hauteur = 0;
    +		$this->format = array($this->page_largeur,$this->page_hauteur);
    +		$this->marge_gauche=0;
    +		$this->marge_droite=0;
    +		$this->marge_haute=0;
    +		$this->marge_basse=0;
    +
    +		$this->option_logo = 1;                    // Affiche logo
    +		$this->option_tva = 0;                     // Gere option tva RECEPTION_TVAOPTION
    +		$this->option_modereg = 0;                 // Affiche mode reglement
    +		$this->option_condreg = 0;                 // Affiche conditions reglement
    +		$this->option_codeproduitservice = 0;      // Affiche code produit-service
    +		$this->option_multilang = 1;               // Dispo en plusieurs langues
    +		$this->option_escompte = 0;                // Affiche si il y a eu escompte
    +		$this->option_credit_note = 0;             // Support credit notes
    +		$this->option_freetext = 1;				   // Support add of a personalised text
    +		$this->option_draft_watermark = 0;		   // Support add of a watermark on drafts
    +
    +		// Recupere emetteur
    +		$this->emetteur=$mysoc;
    +		if (! $this->emetteur->country_code) $this->emetteur->country_code=substr($langs->defaultlang,-2);    // By default if not defined
    +	}
    +
    +
    +	/**
    +	 *	Return description of a module
    +	 *
    +	 *	@param	Translate	$langs      Lang object to use for output
    +	 *	@return string       			Description
    +	 */
    +	function info($langs)
    +	{
    +		global $conf,$langs;
    +
    +		$langs->load("companies");
    +		$langs->load("errors");
    +
    +		$form = new Form($this->db);
    +
    +		$texte = $this->description.".<br>\n";
    +		$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
    +		$texte.= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +		$texte.= '<input type="hidden" name="action" value="setModuleOptions">';
    +		$texte.= '<input type="hidden" name="param1" value="RECEPTION_ADDON_PDF_ODT_PATH">';
    +		$texte.= '<table class="nobordernopadding" width="100%">';
    +
    +		// List of directories area
    +		$texte.= '<tr><td>';
    +		$texttitle=$langs->trans("ListOfDirectories");
    +		$listofdir=explode(',',preg_replace('/[\r\n]+/',',',trim($conf->global->RECEPTION_ADDON_PDF_ODT_PATH)));
    +		$listoffiles=array();
    +		foreach($listofdir as $key=>$tmpdir)
    +		{
    +			$tmpdir=trim($tmpdir);
    +			$tmpdir=preg_replace('/DOL_DATA_ROOT/',DOL_DATA_ROOT,$tmpdir);
    +			if (! $tmpdir) {
    +				unset($listofdir[$key]); continue;
    +			}
    +			if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0);
    +			else
    +			{
    +				$tmpfiles=dol_dir_list($tmpdir,'files',0,'\.(ods|odt)');
    +				if (count($tmpfiles)) $listoffiles=array_merge($listoffiles,$tmpfiles);
    +			}
    +		}
    +		$texthelp=$langs->trans("ListOfDirectoriesForModelGenODT");
    +		// Add list of substitution keys
    +		$texthelp.='<br>'.$langs->trans("FollowingSubstitutionKeysCanBeUsed").'<br>';
    +		$texthelp.=$langs->transnoentitiesnoconv("FullListOnOnlineDocumentation");    // This contains an url, we don't modify it
    +
    +		$texte.= $form->textwithpicto($texttitle,$texthelp,1,'help','',1);
    +		$texte.= '<div><div style="display: inline-block; min-width: 100px; vertical-align: middle;">';
    +		$texte.= '<textarea class="flat" cols="60" name="value1">';
    +		$texte.=$conf->global->RECEPTION_ADDON_PDF_ODT_PATH;
    +		$texte.= '</textarea>';
    +		$texte.= '</div><div style="display: inline-block; vertical-align: middle;">';
    +		$texte.= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
    +		$texte.= '<br></div></div>';
    +
    +		// Scan directories
    +		$nbofiles=count($listoffiles);
    +		if (! empty($conf->global->RECEPTION_ADDON_PDF_ODT_PATH))
    +		{
    +			$texte.=$langs->trans("NumberOfModelFilesFound").': <b>';
    +			//$texte.=$nbofiles?'<a id="a_'.get_class($this).'" href="#">':'';
    +			$texte.=count($listoffiles);
    +			//$texte.=$nbofiles?'</a>':'';
    +			$texte.='</b>';
    +		}
    +		if ($nbofiles)
    +		{
    +   			$texte.='<div id="div_'.get_class($this).'" class="hidden">';
    +   			foreach($listoffiles as $file)
    +   			{
    +                $texte.=$file['name'].'<br>';
    +   			}
    +   			$texte.='<div id="div_'.get_class($this).'">';
    +		}
    +
    +		$texte.= '</td>';
    +
    +		$texte.= '<td valign="top" rowspan="2" class="hideonsmartphone">';
    +		$texte.= $langs->trans("ExampleOfDirectoriesForModelGen");
    +		$texte.= '</td>';
    +		$texte.= '</tr>';
    +
    +		$texte.= '</table>';
    +		$texte.= '</form>';
    +
    +		return $texte;
    +	}
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Function to build a document on disk using the generic odt module.
    +	 *
    +	 *	@param		Reception	$object				Object source to build document
    +	 *	@param		Translate	$outputlangs		Lang output object
    +	 * 	@param		string		$srctemplatepath	Full path of source filename for generator using a template file
    +	 *  @param		int			$hidedetails		Do not show line details
    +	 *  @param		int			$hidedesc			Do not show desc
    +	 *  @param		int			$hideref			Do not show ref
    +	 *	@return		int         					1 if OK, <=0 if KO
    +	 */
    +	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
    +	{
    +		// phpcs:enable
    +		global $user,$langs,$conf,$mysoc,$hookmanager;
    +
    +		if (empty($srctemplatepath))
    +		{
    +			dol_syslog("doc_generic_odt::write_file parameter srctemplatepath empty", LOG_WARNING);
    +			return -1;
    +		}
    +
    +		// Add odtgeneration hook
    +		if (! is_object($hookmanager))
    +		{
    +			include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
    +			$hookmanager=new HookManager($this->db);
    +		}
    +		$hookmanager->initHooks(array('odtgeneration'));
    +		global $action;
    +
    +		if (! is_object($outputlangs)) $outputlangs=$langs;
    +		$sav_charset_output=$outputlangs->charset_output;
    +		$outputlangs->charset_output='UTF-8';
    +
    +		$outputlangs->load("main");
    +		$outputlangs->load("dict");
    +		$outputlangs->load("companies");
    +		$outputlangs->load("bills");
    +
    +		if ($conf->reception->dir_output."/reception")
    +		{
    +			// If $object is id instead of object
    +			if (! is_object($object))
    +			{
    +				$id = $object;
    +				$object = new Reception($this->db);
    +				$result=$object->fetch($id);
    +				if ($result < 0)
    +				{
    +					dol_print_error($this->db,$object->error);
    +					return -1;
    +				}
    +			}
    +
    +			$dir = $conf->reception->dir_output."/reception";
    +			$objectref = dol_sanitizeFileName($object->ref);
    +			if (! preg_match('/specimen/i',$objectref)) $dir.= "/" . $objectref;
    +			$file = $dir . "/" . $objectref . ".odt";
    +
    +			if (! file_exists($dir))
    +			{
    +				if (dol_mkdir($dir) < 0)
    +				{
    +					$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
    +					return -1;
    +				}
    +			}
    +
    +			if (file_exists($dir))
    +			{
    +				//print "srctemplatepath=".$srctemplatepath;	// Src filename
    +				$newfile=basename($srctemplatepath);
    +				$newfiletmp=preg_replace('/\.od(t|s)/i','',$newfile);
    +				$newfiletmp=preg_replace('/template_/i','',$newfiletmp);
    +				$newfiletmp=preg_replace('/modele_/i','',$newfiletmp);
    +				$newfiletmp=$objectref.'_'.$newfiletmp;
    +				//$file=$dir.'/'.$newfiletmp.'.'.dol_print_date(dol_now(),'%Y%m%d%H%M%S').'.odt';
    +				// Get extension (ods or odt)
    +				$newfileformat=substr($newfile, strrpos($newfile, '.')+1);
    +				if ( ! empty($conf->global->MAIN_DOC_USE_TIMING))
    +				{
    +				    $format=$conf->global->MAIN_DOC_USE_TIMING;
    +				    if ($format == '1') $format='%Y%m%d%H%M%S';
    +					$filename=$newfiletmp.'-'.dol_print_date(dol_now(),$format).'.'.$newfileformat;
    +				}
    +				else
    +				{
    +					$filename=$newfiletmp.'.'.$newfileformat;
    +				}
    +				$file=$dir.'/'.$filename;
    +				//print "newdir=".$dir;
    +				//print "newfile=".$newfile;
    +				//print "file=".$file;
    +				//print "conf->societe->dir_temp=".$conf->societe->dir_temp;
    +
    +				dol_mkdir($conf->reception->dir_temp);
    +
    +
    +				// If BILLING contact defined on invoice, we use it
    +				$usecontact=false;
    +				$arrayidcontact=$object->getIdContact('external','BILLING');
    +				if (count($arrayidcontact) > 0)
    +				{
    +					$usecontact=true;
    +					$result=$object->fetch_contact($arrayidcontact[0]);
    +				}
    +
    +				// Recipient name
    +				if (! empty($usecontact))
    +				{
    +					// On peut utiliser le nom de la societe du contact
    +					if (! empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) $socobject = $object->contact;
    +					else $socobject = $object->thirdparty;
    +				}
    +				else
    +				{
    +					$socobject=$object->thirdparty;
    +				}
    +
    +				// Make substitution
    +				$substitutionarray=array(
    +				'__FROM_NAME__' => $this->emetteur->name,
    +				'__FROM_EMAIL__' => $this->emetteur->email,
    +				'__TOTAL_TTC__' => $object->total_ttc,
    +				'__TOTAL_HT__' => $object->total_ht,
    +				'__TOTAL_VAT__' => $object->total_vat
    +				);
    +				complete_substitutions_array($substitutionarray, $langs, $object);
    +				// Call the ODTSubstitution hook
    +				$parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs,'substitutionarray'=>&$substitutionarray);
    +				$reshook=$hookmanager->executeHooks('ODTSubstitution',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +
    +				// Line of free text
    +				$newfreetext='';
    +				$paramfreetext='RECEPTION_FREE_TEXT';
    +				if (! empty($conf->global->$paramfreetext))
    +				{
    +					$newfreetext=make_substitutions($conf->global->$paramfreetext,$substitutionarray);
    +				}
    +
    +				// Open and load template
    +				require_once ODTPHP_PATH.'odf.php';
    +				try {
    +					$odfHandler = new odf(
    +						$srctemplatepath,
    +						array(
    +						'PATH_TO_TMP'	  => $conf->reception->dir_temp,
    +						'ZIP_PROXY'		  => 'PclZipProxy',	// PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
    +						'DELIMITER_LEFT'  => '{',
    +						'DELIMITER_RIGHT' => '}'
    +						)
    +					);
    +				}
    +				catch(Exception $e)
    +				{
    +					$this->error=$e->getMessage();
    +					return -1;
    +				}
    +				// After construction $odfHandler->contentXml contains content and
    +				// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
    +				// [!-- BEGIN lines --]*[!-- END lines --]
    +				//print html_entity_decode($odfHandler->__toString());
    +				//print exit;
    +
    +
    +				// Make substitutions into odt of freetext
    +				try {
    +					$odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8');
    +				}
    +				catch(OdfException $e)
    +				{
    +				}
    +
    +				// Make substitutions into odt of user info
    +				$tmparray=$this->get_substitutionarray_user($user,$outputlangs);
    +				//var_dump($tmparray); exit;
    +				foreach($tmparray as $key=>$value)
    +				{
    +					try {
    +						if (preg_match('/logo$/',$key)) // Image
    +						{
    +							//var_dump($value);exit;
    +							if (file_exists($value)) $odfHandler->setImage($key, $value);
    +							else $odfHandler->setVars($key, 'ErrorFileNotFound', true, 'UTF-8');
    +						}
    +						else    // Text
    +						{
    +							$odfHandler->setVars($key, $value, true, 'UTF-8');
    +						}
    +					}
    +					catch(OdfException $e)
    +					{
    +					}
    +				}
    +				// Make substitutions into odt of mysoc
    +				$tmparray=$this->get_substitutionarray_mysoc($mysoc,$outputlangs);
    +				//var_dump($tmparray); exit;
    +				foreach($tmparray as $key=>$value)
    +				{
    +					try {
    +						if (preg_match('/logo$/',$key))	// Image
    +						{
    +							//var_dump($value);exit;
    +							if (file_exists($value)) $odfHandler->setImage($key, $value);
    +							else $odfHandler->setVars($key, 'ErrorFileNotFound', true, 'UTF-8');
    +						}
    +						else	// Text
    +						{
    +							$odfHandler->setVars($key, $value, true, 'UTF-8');
    +						}
    +					}
    +					catch(OdfException $e)
    +					{
    +					}
    +				}
    +				// Make substitutions into odt of thirdparty
    +				$tmparray=$this->get_substitutionarray_thirdparty($socobject,$outputlangs);
    +				foreach($tmparray as $key=>$value)
    +				{
    +					try {
    +						if (preg_match('/logo$/',$key))	// Image
    +						{
    +							if (file_exists($value)) $odfHandler->setImage($key, $value);
    +							else $odfHandler->setVars($key, 'ErrorFileNotFound', true, 'UTF-8');
    +						}
    +						else	// Text
    +						{
    +							$odfHandler->setVars($key, $value, true, 'UTF-8');
    +						}
    +					}
    +					catch(OdfException $e)
    +					{
    +					}
    +				}
    +				// Replace tags of object + external modules
    +				$tmparray=$this->get_substitutionarray_reception($object,$outputlangs);
    +				complete_substitutions_array($tmparray, $outputlangs, $object);
    +				// Call the ODTSubstitution hook
    +				$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs,'substitutionarray'=>&$tmparray);
    +				$reshook=$hookmanager->executeHooks('ODTSubstitution',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +				foreach($tmparray as $key=>$value)
    +				{
    +					try {
    +						if (preg_match('/logo$/',$key)) // Image
    +						{
    +							if (file_exists($value)) $odfHandler->setImage($key, $value);
    +							else $odfHandler->setVars($key, 'ErrorFileNotFound', true, 'UTF-8');
    +						}
    +						else    // Text
    +						{
    +							$odfHandler->setVars($key, $value, true, 'UTF-8');
    +						}
    +					}
    +					catch(OdfException $e)
    +					{
    +					}
    +				}
    +				// Replace tags of lines
    +				try
    +				{
    +					$listlines = $odfHandler->setSegment('lines');
    +					foreach ($object->lines as $line)
    +					{
    +						$tmparray=$this->get_substitutionarray_reception_lines($line,$outputlangs);
    +						complete_substitutions_array($tmparray, $outputlangs, $object, $line, "completesubstitutionarray_lines");
    +						// Call the ODTSubstitutionLine hook
    +						$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs,'substitutionarray'=>&$tmparray,'line'=>$line);
    +						$reshook=$hookmanager->executeHooks('ODTSubstitutionLine',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +						foreach($tmparray as $key => $val)
    +						{
    +							try
    +							{
    +								$listlines->setVars($key, $val, true, 'UTF-8');
    +							}
    +							catch(OdfException $e)
    +							{
    +							}
    +							catch(SegmentException $e)
    +							{
    +							}
    +						}
    +						$listlines->merge();
    +					}
    +					$odfHandler->mergeSegment($listlines);
    +				}
    +				catch(OdfException $e)
    +				{
    +					$this->error=$e->getMessage();
    +					dol_syslog($this->error, LOG_WARNING);
    +					return -1;
    +				}
    +
    +				// Replace labels translated
    +				$tmparray=$outputlangs->get_translations_for_substitutions();
    +				foreach($tmparray as $key=>$value)
    +				{
    +					try {
    +						$odfHandler->setVars($key, $value, true, 'UTF-8');
    +					}
    +					catch(OdfException $e)
    +					{
    +					}
    +				}
    +
    +				// Call the beforeODTSave hook
    +				$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs,'substitutionarray'=>&$tmparray);
    +				$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +
    +				// Write new file
    +				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
    +					try {
    +						$odfHandler->exportAsAttachedPDF($file);
    +					}catch (Exception $e){
    +						$this->error=$e->getMessage();
    +						return -1;
    +					}
    +				}
    +				else {
    +					try {
    +					$odfHandler->saveToDisk($file);
    +					}catch (Exception $e){
    +						$this->error=$e->getMessage();
    +						return -1;
    +					}
    +				}
    +				$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs,'substitutionarray'=>&$tmparray);
    +				$reshook=$hookmanager->executeHooks('afterODTCreation',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +
    +				if (! empty($conf->global->MAIN_UMASK))
    +					@chmod($file, octdec($conf->global->MAIN_UMASK));
    +
    +				$odfHandler=null;	// Destroy object
    +
    +				return 1;   // Success
    +			}
    +			else
    +			{
    +				$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
    +				return -1;
    +			}
    +		}
    +
    +		return -1;
    +	}
    +}
    \ No newline at end of file
    diff --git a/htdocs/install/doctemplates/shipment/index.html b/htdocs/core/modules/reception/doc/index.html
    similarity index 100%
    rename from htdocs/install/doctemplates/shipment/index.html
    rename to htdocs/core/modules/reception/doc/index.html
    diff --git a/htdocs/core/modules/reception/doc/pdf_squille.modules.php b/htdocs/core/modules/reception/doc/pdf_squille.modules.php
    new file mode 100644
    index 00000000000..592171ed6f0
    --- /dev/null
    +++ b/htdocs/core/modules/reception/doc/pdf_squille.modules.php
    @@ -0,0 +1,1041 @@
    +<?php
    +/* Copyright (C) 2018	   Quentin Vial-Gouteyron    <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *	\file       htdocs/core/modules/reception/doc/pdf_squille.modules.php
    + *	\ingroup    reception
    + *	\brief      Fichier de la classe permettant de generer les bordereaux envoi au modele Squille
    + */
    +
    +require_once DOL_DOCUMENT_ROOT.'/core/modules/reception/modules_reception.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
    +
    +
    +/**
    + *	Classe permettant de generer les borderaux envoi au modele Squille
    + */
    +class pdf_squille extends ModelePdfReception
    +{
    +	var $emetteur;	// Objet societe qui emet
    +
    +
    +	/**
    +	 *	Constructor
    +	 *
    +	 *	@param	DoliDB	$db		Database handler
    +	 */
    +	function __construct($db=0)
    +	{
    +		global $conf,$langs,$mysoc;
    +
    +		$this->db = $db;
    +		$this->name = "squille";
    +		$this->description = $langs->trans("DocumentModelStandardPDF");
    +
    +		$this->type = 'pdf';
    +		$formatarray=pdf_getFormat();
    +		$this->page_largeur = $formatarray['width'];
    +		$this->page_hauteur = $formatarray['height'];
    +		$this->format = array($this->page_largeur,$this->page_hauteur);
    +		$this->marge_gauche=isset($conf->global->MAIN_PDF_MARGIN_LEFT)?$conf->global->MAIN_PDF_MARGIN_LEFT:10;
    +		$this->marge_droite=isset($conf->global->MAIN_PDF_MARGIN_RIGHT)?$conf->global->MAIN_PDF_MARGIN_RIGHT:10;
    +		$this->marge_haute =isset($conf->global->MAIN_PDF_MARGIN_TOP)?$conf->global->MAIN_PDF_MARGIN_TOP:10;
    +		$this->marge_basse =isset($conf->global->MAIN_PDF_MARGIN_BOTTOM)?$conf->global->MAIN_PDF_MARGIN_BOTTOM:10;
    +
    +		$this->option_logo = 1;
    +
    +		// Get source company
    +		$this->emetteur=$mysoc;
    +		if (! $this->emetteur->country_code) $this->emetteur->country_code=substr($langs->defaultlang,-2);    // By default if not defined
    +
    +		// Define position of columns
    +		$this->posxdesc=$this->marge_gauche+1;
    +		$this->posxweightvol=$this->page_largeur - $this->marge_droite - 78;
    +		$this->posxqtyordered=$this->page_largeur - $this->marge_droite - 56;
    +		$this->posxqtytoship=$this->page_largeur - $this->marge_droite - 28;
    +		$this->posxpuht=$this->page_largeur - $this->marge_droite;
    +
    +		if (!empty($conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT)) {
    +
    +			$this->posxweightvol=$this->page_largeur - $this->marge_droite - 118;
    +			$this->posxqtyordered=$this->page_largeur - $this->marge_droite - 96;
    +			$this->posxqtytoship=$this->page_largeur - $this->marge_droite - 68;
    +			$this->posxpuht=$this->page_largeur - $this->marge_droite - 40;
    +			$this->posxtotalht=$this->page_largeur - $this->marge_droite - 20;
    +		}
    +
    +		$this->posxpicture=$this->posxweightvol - (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH)?20:$conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH);	// width of images
    +
    +		if ($this->page_largeur < 210) // To work with US executive format
    +		{
    +		    $this->posxweightvol-=20;
    +		    $this->posxpicture-=20;
    +		    $this->posxqtyordered-=20;
    +		    $this->posxqtytoship-=20;
    +		}
    +
    +		if (! empty($conf->global->RECEPTION_PDF_HIDE_ORDERED))
    +		{
    +		    $this->posxweightvol += ($this->posxqtytoship - $this->posxqtyordered);
    +		    $this->posxpicture += ($this->posxqtytoship - $this->posxqtyordered);
    +		    $this->posxqtyordered = $this->posxqtytoship;
    +		}
    +	}
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Function to build pdf onto disk
    +	 *
    +	 *	@param		Object		$object			Object reception to generate (or id if old method)
    +	 *	@param		Translate	$outputlangs		Lang output object
    +     *  @param		string		$srctemplatepath	Full path of source filename for generator using a template file
    +     *  @param		int			$hidedetails		Do not show line details
    +     *  @param		int			$hidedesc			Do not show desc
    +     *  @param		int			$hideref			Do not show ref
    +     *  @return     int         	    			1=OK, 0=KO
    +	 */
    +	function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
    +	{
    +		// phpcs:enable
    +		global $user,$conf,$langs,$hookmanager;
    +
    +		$object->fetch_thirdparty();
    +
    +		if (! is_object($outputlangs)) $outputlangs=$langs;
    +		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
    +		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
    +
    +		$outputlangs->load("main");
    +		$outputlangs->load("dict");
    +		$outputlangs->load("companies");
    +		$outputlangs->load("bills");
    +		$outputlangs->load("products");
    +		$outputlangs->load("propal");
    +		$outputlangs->load("deliveries");
    +        $outputlangs->load("receptions");
    +		$outputlangs->load("productbatch");
    +
    +		$nblignes = count($object->lines);
    +
    +        // Loop on each lines to detect if there is at least one image to show
    +        $realpatharray=array();
    +        if (! empty($conf->global->MAIN_GENERATE_SHIPMENT_WITH_PICTURE))
    +        {
    +            $objphoto = new Product($this->db);
    +
    +            for ($i = 0 ; $i < $nblignes ; $i++)
    +            {
    +                if (empty($object->lines[$i]->fk_product)) continue;
    +
    +				$objphoto = new Product($this->db);
    +				$objphoto->fetch($object->lines[$i]->fk_product);
    +
    +				$pdir = get_exdir($object->lines[$i]->fk_product,2,0,0,$objphoto,'product') . $object->lines[$i]->fk_product ."/photos/";
    +				$dir = $conf->product->dir_output.'/'.$pdir;
    +
    +				$realpath='';
    +
    +                foreach ($objphoto->liste_photos($dir,1) as $key => $obj)
    +                        {
    +                            if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES))		// If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo
    +                            {
    +                                if ($obj['photo_vignette'])
    +                                {
    +                                    $filename= $obj['photo_vignette'];
    +                                }
    +                                else
    +                                {
    +                                    $filename=$obj['photo'];
    +                                }
    +                            }
    +                            else
    +                            {
    +                                $filename=$obj['photo'];
    +                            }
    +
    +                            $realpath = $dir.$filename;
    +                            break;
    +                }
    +
    +                if ($realpath) $realpatharray[$i]=$realpath;
    +            }
    +        }
    +
    +        if (count($realpatharray) == 0) $this->posxpicture=$this->posxweightvol;
    +
    +		if ($conf->reception->dir_output)
    +		{
    +			// Definition de $dir et $file
    +			if ($object->specimen)
    +			{
    +				$dir = $conf->reception->dir_output;
    +				$file = $dir . "/SPECIMEN.pdf";
    +			}
    +			else
    +			{
    +				$rcpref = dol_sanitizeFileName($object->ref);
    +				$dir = $conf->reception->dir_output."/" . $rcpref;
    +				$file = $dir . "/" . $rcpref . ".pdf";
    +			}
    +
    +			if (! file_exists($dir))
    +			{
    +				if (dol_mkdir($dir) < 0)
    +				{
    +					$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
    +					return 0;
    +				}
    +			}
    +
    +			if (file_exists($dir))
    +			{
    +				// Add pdfgeneration hook
    +				if (! is_object($hookmanager))
    +				{
    +					include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
    +					$hookmanager=new HookManager($this->db);
    +				}
    +				$hookmanager->initHooks(array('pdfgeneration'));
    +				$parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
    +				global $action;
    +				$reshook=$hookmanager->executeHooks('beforePDFCreation',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +
    +				// Set nblignes with the new facture lines content after hook
    +				$nblignes = count($object->lines);
    +
    +				$pdf=pdf_getInstance($this->format);
    +				$default_font_size = pdf_getPDFFontSize($outputlangs);
    +				$heightforinfotot = 8;	// Height reserved to output the info and total part
    +		        $heightforfreetext= (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT)?$conf->global->MAIN_PDF_FREETEXT_HEIGHT:5);	// Height reserved to output the free text on last page
    +	            $heightforfooter = $this->marge_basse + 8;	// Height reserved to output the footer (value include bottom margin)
    +                $pdf->SetAutoPageBreak(1,0);
    +
    +                if (class_exists('TCPDF'))
    +                {
    +                    $pdf->setPrintHeader(false);
    +                    $pdf->setPrintFooter(false);
    +                }
    +                $pdf->SetFont(pdf_getPDFFont($outputlangs));
    +                // Set path to the background PDF File
    +                if (empty($conf->global->MAIN_DISABLE_FPDI) && ! empty($conf->global->MAIN_ADD_PDF_BACKGROUND))
    +                {
    +                    $pagecount = $pdf->setSourceFile($conf->mycompany->dir_output.'/'.$conf->global->MAIN_ADD_PDF_BACKGROUND);
    +                    $tplidx = $pdf->importPage(1);
    +                }
    +
    +				$pdf->Open();
    +				$pagenb=0;
    +				$pdf->SetDrawColor(128,128,128);
    +
    +				if (method_exists($pdf,'AliasNbPages')) $pdf->AliasNbPages();
    +
    +				$pdf->SetTitle($outputlangs->convToOutputCharset($object->ref));
    +				$pdf->SetSubject($outputlangs->transnoentities("Reception"));
    +				$pdf->SetCreator("Dolibarr ".DOL_VERSION);
    +				$pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs)));
    +				$pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Reception"));
    +				if (! empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false);
    +
    +				$pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite);   // Left, Top, Right
    +
    +				// New page
    +				$pdf->AddPage();
    +				if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +				$pagenb++;
    +				$this->_pagehead($pdf, $object, 1, $outputlangs);
    +				$pdf->SetFont('','', $default_font_size - 1);
    +				$pdf->MultiCell(0, 3, '');		// Set interline to 3
    +				$pdf->SetTextColor(0,0,0);
    +
    +				$tab_top = 90;
    +				$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)?42:10);
    +				$tab_height = 130;
    +				$tab_height_newpage = 150;
    +
    +				// Incoterm
    +				$height_incoterms = 0;
    +				if ($conf->incoterm->enabled)
    +				{
    +					$desc_incoterms = $object->getIncotermsForPDF();
    +					if ($desc_incoterms)
    +					{
    +						$tab_top = 88;
    +
    +						$pdf->SetFont('','', $default_font_size - 1);
    +						$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top-1, dol_htmlentitiesbr($desc_incoterms), 0, 1);
    +						$nexY = $pdf->GetY();
    +						$height_incoterms=$nexY-$tab_top;
    +
    +						// Rect prend une longueur en 3eme param
    +						$pdf->SetDrawColor(192,192,192);
    +						$pdf->Rect($this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_incoterms+1);
    +
    +						$tab_top = $nexY+6;
    +						$height_incoterms += 4;
    +					}
    +				}
    +
    +				if (! empty($object->note_public) || ! empty($object->tracking_number))
    +				{
    +					$tab_top = 88 + $height_incoterms;
    +					$tab_top_alt = $tab_top;
    +
    +					$pdf->SetFont('','B', $default_font_size - 2);
    +					$pdf->writeHTMLCell(60, 4, $this->posxdesc-1, $tab_top-1, $outputlangs->transnoentities("TrackingNumber")." : " . $object->tracking_number, 0, 1, false, true, 'L');
    +
    +					$tab_top_alt = $pdf->GetY();
    +					//$tab_top_alt += 1;
    +
    +					// Tracking number
    +					if (! empty($object->tracking_number))
    +					{
    +						$object->getUrlTrackingStatus($object->tracking_number);
    +						if (! empty($object->tracking_url))
    +						{
    +							if ($object->reception_method_id > 0)
    +							{
    +								// Get code using getLabelFromKey
    +								$code=$outputlangs->getLabelFromKey($this->db,$object->shipment_method_id,'c_shipment_mode','rowid','code');
    +								$label='';
    +								if ($object->tracking_url != $object->tracking_number) $label.=$outputlangs->trans("LinkToTrackYourPackage")."<br>";
    +								$label.=$outputlangs->trans("ReceptionMethod").": ".$outputlangs->trans("ReceptionMethod".strtoupper($code));
    +								//var_dump($object->tracking_url != $object->tracking_number);exit;
    +								if ($object->tracking_url != $object->tracking_number)
    +								{
    +									$label.=" : ";
    +									$label.=$object->tracking_url;
    +								}
    +								$pdf->SetFont('','B', $default_font_size - 2);
    +								$pdf->writeHTMLCell(60, 4, $this->posxdesc-1, $tab_top_alt, $label, 0, 1, false, true, 'L');
    +
    +								$tab_top_alt = $pdf->GetY();
    +							}
    +						}
    +					}
    +
    +					// Notes
    +					if (! empty($object->note_public))
    +					{
    +						$pdf->SetFont('','', $default_font_size - 1);   // Dans boucle pour gerer multi-page
    +						$pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top_alt, dol_htmlentitiesbr($object->note_public), 0, 1);
    +					}
    +
    +					$nexY = $pdf->GetY();
    +					$height_note=$nexY-$tab_top;
    +
    +					// Rect prend une longueur en 3eme param
    +					$pdf->SetDrawColor(192,192,192);
    +					$pdf->Rect($this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_note+1);
    +
    +					$tab_height = $tab_height - $height_note;
    +					$tab_top = $nexY+6;
    +				}
    +				else
    +				{
    +					$height_note=0;
    +				}
    +
    +				$iniY = $tab_top + 7;
    +				$curY = $tab_top + 7;
    +				$nexY = $tab_top + 7;
    +				$fk_commandefourndet=0;
    +				$totalOrdered=0;
    +				// Loop on each lines
    +				for ($i = 0; $i < $nblignes; $i++)
    +				{
    +					$curY = $nexY;
    +					$pdf->SetFont('','', $default_font_size - 1);   // Into loop to work with multipage
    +					$pdf->SetTextColor(0,0,0);
    +
    +					// Define size of image if we need it
    +					$imglinesize=array();
    +					if (! empty($realpatharray[$i])) $imglinesize=pdf_getSizeForImage($realpatharray[$i]);
    +
    +					$pdf->setTopMargin($tab_top_newpage);
    +					$pdf->setPageOrientation('', 1, $heightforfooter+$heightforfreetext+$heightforinfotot);	// The only function to edit the bottom margin of current page to set it.
    +					$pageposbefore=$pdf->getPage();
    +
    +					$showpricebeforepagebreak=1;
    +					$posYAfterImage=0;
    +					$posYAfterDescription=0;
    +
    +					// We start with Photo of product line
    +					if (isset($imglinesize['width']) && isset($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur-($heightforfooter+$heightforfreetext+$heightforinfotot)))	// If photo too high, we moved completely on new page
    +					{
    +						$pdf->AddPage('','',true);
    +						if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +						if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +						$pdf->setPage($pageposbefore+1);
    +
    +						$curY = $tab_top_newpage;
    +						$showpricebeforepagebreak=0;
    +					}
    +
    +					if (isset($imglinesize['width']) && isset($imglinesize['height']))
    +					{
    +						$curX = $this->posxpicture-1;
    +						$pdf->Image($realpatharray[$i], $curX + (($this->posxweightvol-$this->posxpicture-$imglinesize['width'])/2), $curY, $imglinesize['width'], $imglinesize['height'], '', '', '', 2, 300);	// Use 300 dpi
    +						// $pdf->Image does not increase value return by getY, so we save it manually
    +						$posYAfterImage=$curY+$imglinesize['height'];
    +					}
    +
    +					// Description of product line
    +					$curX = $this->posxdesc-1;
    +
    +					$pdf->startTransaction();
    +					pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxpicture-$curX,3,$curX,$curY,$hideref,$hidedesc);
    +
    +					$pageposafter=$pdf->getPage();
    +					if ($pageposafter > $pageposbefore)	// There is a pagebreak
    +					{
    +						$pdf->rollbackTransaction(true);
    +						$pageposafter=$pageposbefore;
    +						//print $pageposafter.'-'.$pageposbefore;exit;
    +						$pdf->setPageOrientation('', 1, $heightforfooter);	// The only function to edit the bottom margin of current page to set it.
    +
    +						pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxpicture-$curX,3,$curX,$curY,$hideref,$hidedesc);
    +
    +						$pageposafter=$pdf->getPage();
    +						$posyafter=$pdf->GetY();
    +						//var_dump($posyafter); var_dump(($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))); exit;
    +						if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot)))	// There is no space left for total+free text
    +						{
    +							if ($i == ($nblignes-1))	// No more lines, and no space left to show total, so we create a new page
    +							{
    +								$pdf->AddPage('','',true);
    +								if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +								if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
    +								$pdf->setPage($pageposafter+1);
    +							}
    +						}
    +						else
    +						{
    +							// We found a page break
    +							$showpricebeforepagebreak=0;
    +						}
    +					}
    +					else	// No pagebreak
    +					{
    +						$pdf->commitTransaction();
    +					}
    +					$posYAfterDescription=$pdf->GetY();
    +
    +					$nexY = $pdf->GetY();
    +					$pageposafter=$pdf->getPage();
    +
    +					$pdf->setPage($pageposbefore);
    +					$pdf->setTopMargin($this->marge_haute);
    +					$pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    +
    +					// We suppose that a too long description or photo were moved completely on next page
    +					if ($pageposafter > $pageposbefore && empty($showpricebeforepagebreak)) {
    +						$pdf->setPage($pageposafter); $curY = $tab_top_newpage;
    +					}
    +
    +					// We suppose that a too long description is moved completely on next page
    +					if ($pageposafter > $pageposbefore) {
    +						$pdf->setPage($pageposafter); $curY = $tab_top_newpage;
    +					}
    +
    +					$pdf->SetFont('','', $default_font_size - 1);   // On repositionne la police par defaut
    +
    +					$pdf->SetXY($this->posxweightvol, $curY);
    +					$weighttxt='';
    +					if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->product->weight)
    +					{
    +					    $weighttxt=round($object->lines[$i]->product->weight * $object->lines[$i]->qty, 5).' '.measuring_units_string($object->lines[$i]->product->weight_units,"weight");
    +					}
    +					$voltxt='';
    +					if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->product->volume)
    +					{
    +					    $voltxt=round($object->lines[$i]->product->volume * $object->lines[$i]->qty, 5).' '.measuring_units_string($object->lines[$i]->product->volume_units?$object->lines[$i]->product->volume_units:0,"volume");
    +					}
    +
    +					$pdf->writeHTMLCell($this->posxqtyordered - $this->posxweightvol + 2, 3, $this->posxweightvol - 1, $curY, $weighttxt.(($weighttxt && $voltxt)?'<br>':'').$voltxt, 0, 0, false, true, 'C');
    +					//$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), 3, $weighttxt.(($weighttxt && $voltxt)?'<br>':'').$voltxt,'','C');
    +
    +					if (empty($conf->global->RECEPTION_PDF_HIDE_ORDERED))
    +					{
    +					   $pdf->SetXY($this->posxqtyordered, $curY);
    +					   if($object->lines[$i]->fk_commandefourndet!=$fk_commandefourndet){
    +						   $pdf->MultiCell(($this->posxqtytoship - $this->posxqtyordered), 3, $object->lines[$i]->qty_asked,'','C');
    +						   $totalOrdered+=$object->lines[$i]->qty_asked;
    +					   }
    +					   $fk_commandefourndet = $object->lines[$i]->fk_commandefourndet;
    +					}
    +
    +					$pdf->SetXY($this->posxqtytoship, $curY);
    +					$pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 3, $object->lines[$i]->qty,'','C');
    +
    +					if(!empty($conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT))
    +					{
    +						$pdf->SetXY($this->posxpuht, $curY);
    +						$pdf->MultiCell(($this->posxtotalht - $this->posxpuht-1), 3, price($object->lines[$i]->subprice, 0, $outputlangs),'','R');
    +
    +						$pdf->SetXY($this->posxtotalht, $curY);
    +						$pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxtotalht), 3, price($object->lines[$i]->total_ht, 0, $outputlangs),'','R');
    +					}
    +
    +					$nexY+=3;
    +					if ($weighttxt && $voltxt) $nexY+=2;
    +
    +					// Add line
    +					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
    +					{
    +						$pdf->setPage($pageposafter);
    +						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
    +						//$pdf->SetDrawColor(190,190,200);
    +						$pdf->line($this->marge_gauche, $nexY-1, $this->page_largeur - $this->marge_droite, $nexY-1);
    +						$pdf->SetLineStyle(array('dash'=>0));
    +					}
    +
    +					// Detect if some page were added automatically and output _tableau for past pages
    +					while ($pagenb < $pageposafter)
    +					{
    +						$pdf->setPage($pagenb);
    +						if ($pagenb == 1)
    +						{
    +							$this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1);
    +						}
    +						else
    +						{
    +							$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1);
    +						}
    +						$this->_pagefoot($pdf,$object,$outputlangs,1);
    +						$pagenb++;
    +						$pdf->setPage($pagenb);
    +						$pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
    +					}
    +					if (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak)
    +					{
    +						if ($pagenb == 1)
    +						{
    +							$this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforfooter, 0, $outputlangs, 0, 1);
    +						}
    +						else
    +						{
    +							$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforfooter, 0, $outputlangs, 1, 1);
    +						}
    +						$this->_pagefoot($pdf,$object,$outputlangs,1);
    +						// New page
    +						$pdf->AddPage();
    +						if (! empty($tplidx)) $pdf->useTemplate($tplidx);
    +						$pagenb++;
    +					}
    +				}
    +
    +				// Show square
    +				if ($pagenb == 1)
    +				{
    +					$this->_tableau($pdf, $tab_top, $this->page_hauteur - $tab_top - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 0, 0);
    +					$bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1;
    +				}
    +				else
    +				{
    +					$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0);
    +					$bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1;
    +				}
    +
    +				// Affiche zone totaux
    +				$posy=$this->_tableau_tot($pdf, $object, 0, $bottomlasttab, $outputlangs, $totalOrdered);
    +
    +				// Pied de page
    +				$this->_pagefoot($pdf,$object,$outputlangs);
    +				if (method_exists($pdf,'AliasNbPages')) $pdf->AliasNbPages();
    +
    +				$pdf->Close();
    +
    +				$pdf->Output($file,'F');
    +
    +				// Add pdfgeneration hook
    +				$hookmanager->initHooks(array('pdfgeneration'));
    +				$parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
    +				global $action;
    +				$reshook=$hookmanager->executeHooks('afterPDFCreation',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +
    +				if (! empty($conf->global->MAIN_UMASK))
    +				@chmod($file, octdec($conf->global->MAIN_UMASK));
    +
    +				return 1;	// No error
    +			}
    +			else
    +			{
    +				$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
    +				return 0;
    +			}
    +		}
    +		else
    +		{
    +			$this->error=$langs->transnoentities("ErrorConstantNotDefined","EXP_OUTPUTDIR");
    +			return 0;
    +		}
    +	}
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Show total to pay
    +	 *
    +	 *	@param	PDF			$pdf            Object PDF
    +	 *	@param  Facture		$object         Object invoice
    +	 *	@param  int			$deja_regle     Montant deja regle
    +	 *	@param	int			$posy			Position depart
    +	 *	@param	Translate	$outputlangs	Objet langs
    +	 *  @param	int			$totalOrdered	Total ordered
    +	 *	@return int							Position pour suite
    +	 */
    +	function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs, $totalOrdered)
    +	{
    +		// phpcs:enable
    +		global $conf,$mysoc;
    +
    +        $sign=1;
    +
    +        $default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		$tab2_top = $posy;
    +		$tab2_hl = 4;
    +		$pdf->SetFont('','B', $default_font_size - 1);
    +
    +		// Tableau total
    +		$col1x = $this->posxweightvol-50; $col2x = $this->posxweightvol;
    +		/*if ($this->page_largeur < 210) // To work with US executive format
    +		{
    +			$col2x-=20;
    +		}*/
    +		if (empty($conf->global->RECEPTION_PDF_HIDE_ORDERED)) $largcol2 = ($this->posxqtyordered - $this->posxweightvol);
    +		else $largcol2 = ($this->posxqtytoship - $this->posxweightvol);
    +
    +		$useborder=0;
    +		$index = 0;
    +
    +		$totalWeighttoshow='';
    +		$totalVolumetoshow='';
    +
    +		// Load dim data
    +		$tmparray=$object->getTotalWeightVolume();
    +		$totalWeight=$tmparray['weight'];
    +		$totalVolume=$tmparray['volume'];
    +		$totalToShip=$tmparray['toship'];
    +
    +
    +		// Set trueVolume and volume_units not currently stored into database
    +		if ($object->trueWidth && $object->trueHeight && $object->trueDepth)
    +		{
    +		    $object->trueVolume= ($object->trueWidth * $object->trueHeight * $object->trueDepth);
    +		    $object->volume_units=$object->size_units * 3;
    +		}
    +
    +		if ($totalWeight!='') $totalWeighttoshow=showDimensionInBestUnit($totalWeight, 0, "weight", $outputlangs);
    +		if ($totalVolume!='') $totalVolumetoshow=showDimensionInBestUnit($totalVolume, 0, "volume", $outputlangs);
    +		if ($object->trueWeight) $totalWeighttoshow=showDimensionInBestUnit($object->trueWeight, $object->weight_units, "weight", $outputlangs);
    +		if ($object->trueVolume) $totalVolumetoshow=showDimensionInBestUnit($object->trueVolume, $object->volume_units, "volume", $outputlangs);
    +
    +    	$pdf->SetFillColor(255,255,255);
    +    	$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
    +    	$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("Total"), 0, 'L', 1);
    +
    +        if (empty($conf->global->RECEPTION_PDF_HIDE_ORDERED))
    +        {
    +            $pdf->SetXY($this->posxqtyordered, $tab2_top + $tab2_hl * $index);
    +        	$pdf->MultiCell($this->posxqtytoship - $this->posxqtyordered, $tab2_hl, $totalOrdered, 0, 'C', 1);
    +        }
    +
    +    	$pdf->SetXY($this->posxqtytoship, $tab2_top + $tab2_hl * $index);
    +    	$pdf->MultiCell($this->posxpuht - $this->posxqtytoship, $tab2_hl, $totalToShip, 0, 'C', 1);
    +
    +		if(!empty($conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT)) {
    +
    +	    	$pdf->SetXY($this->posxpuht, $tab2_top + $tab2_hl * $index);
    +	    	$pdf->MultiCell($this->posxtotalht - $this->posxpuht, $tab2_hl, '', 0, 'C', 1);
    +
    +	    	$pdf->SetXY($this->posxtotalht, $tab2_top + $tab2_hl * $index);
    +	    	$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxtotalht, $tab2_hl, price($object->total_ht, 0, $outputlangs), 0, 'C', 1);
    +		}
    +
    +		// Total Weight
    +		if ($totalWeighttoshow)
    +		{
    +    		$pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * $index);
    +    		$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), $tab2_hl, $totalWeighttoshow, 0, 'C', 1);
    +
    +    		$index++;
    +		}
    +		if ($totalVolumetoshow)
    +		{
    +    		$pdf->SetXY($this->posxweightvol, $tab2_top + $tab2_hl * $index);
    +    		$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), $tab2_hl, $totalVolumetoshow, 0, 'C', 1);
    +
    +		    $index++;
    +		}
    +		if (! $totalWeighttoshow && ! $totalVolumetoshow) $index++;
    +
    +		$pdf->SetTextColor(0,0,0);
    +
    +		return ($tab2_top + ($tab2_hl * $index));
    +	}
    +
    +	/**
    +	 *   Show table for lines
    +	 *
    +	 *   @param		PDF			$pdf     		Object PDF
    +	 *   @param		string		$tab_top		Top position of table
    +	 *   @param		string		$tab_height		Height of table (rectangle)
    +	 *   @param		int			$nexY			Y
    +	 *   @param		Translate	$outputlangs	Langs object
    +	 *   @param		int			$hidetop		Hide top bar of array
    +	 *   @param		int			$hidebottom		Hide bottom bar of array
    +	 *   @return	void
    +	 */
    +	function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs, $hidetop=0, $hidebottom=0)
    +	{
    +		global $conf;
    +
    +		// Force to disable hidetop and hidebottom
    +		$hidebottom=0;
    +		if ($hidetop) $hidetop=-1;
    +
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		// Amount in (at tab_top - 1)
    +		$pdf->SetTextColor(0,0,0);
    +		$pdf->SetFont('','',$default_font_size - 2);
    +
    +		// Output Rect
    +		$this->printRect($pdf,$this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height, $hidetop, $hidebottom);	// Rect prend une longueur en 3eme param et 4eme param
    +
    +		$pdf->SetDrawColor(128,128,128);
    +		$pdf->SetFont('','', $default_font_size - 1);
    +
    +		if (empty($hidetop))
    +		{
    +			$pdf->line($this->marge_gauche, $tab_top+5, $this->page_largeur-$this->marge_droite, $tab_top+5);
    +
    +			$pdf->SetXY($this->posxdesc-1, $tab_top+1);
    +			$pdf->MultiCell($this->posxqtyordered - $this->posxdesc, 2, $outputlangs->transnoentities("Description"), '', 'L');
    +		}
    +
    +		$pdf->line($this->posxweightvol-1, $tab_top, $this->posxweightvol-1, $tab_top + $tab_height);
    +		if (empty($hidetop))
    +		{
    +			$pdf->SetXY($this->posxweightvol-1, $tab_top+1);
    +			$pdf->MultiCell(($this->posxqtyordered - $this->posxweightvol), 2, $outputlangs->transnoentities("WeightVolShort"),'','C');
    +		}
    +
    +        if (empty($conf->global->RECEPTION_PDF_HIDE_ORDERED))
    +        {
    +            $pdf->line($this->posxqtyordered-1, $tab_top, $this->posxqtyordered-1, $tab_top + $tab_height);
    +    		if (empty($hidetop))
    +    		{
    +    			$pdf->SetXY($this->posxqtyordered-1, $tab_top+1);
    +    			$pdf->MultiCell(($this->posxqtytoship - $this->posxqtyordered), 2, $outputlangs->transnoentities("QtyOrdered"),'','C');
    +    		}
    +        }
    +
    +		$pdf->line($this->posxqtytoship-1, $tab_top, $this->posxqtytoship-1, $tab_top + $tab_height);
    +		if (empty($hidetop))
    +		{
    +			$pdf->SetXY($this->posxqtytoship, $tab_top+1);
    +			$pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 2, $outputlangs->transnoentities("QtyToReceive"),'','C');
    +		}
    +
    +		if(!empty($conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT)) {
    +
    +			$pdf->line($this->posxpuht-1, $tab_top, $this->posxpuht-1, $tab_top + $tab_height);
    +			if (empty($hidetop))
    +			{
    +				$pdf->SetXY($this->posxpuht-1, $tab_top+1);
    +				$pdf->MultiCell(($this->posxtotalht - $this->posxpuht), 2, $outputlangs->transnoentities("PriceUHT"),'','C');
    +			}
    +
    +			$pdf->line($this->posxtotalht-1, $tab_top, $this->posxtotalht-1, $tab_top + $tab_height);
    +			if (empty($hidetop))
    +			{
    +				$pdf->SetXY($this->posxtotalht-1, $tab_top+1);
    +				$pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxtotalht), 2, $outputlangs->transnoentities("TotalHT"),'','C');
    +			}
    +		}
    +	}
    +
    +	/**
    +	 *  Show top header of page.
    +	 *
    +	 *  @param	PDF			$pdf     		Object PDF
    +	 *  @param  Object		$object     	Object to show
    +	 *  @param  int	    	$showaddress    0=no, 1=yes
    +	 *  @param  Translate	$outputlangs	Object lang for output
    +	 *  @return	void
    +	 */
    +	function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
    +	{
    +		global $conf,$langs,$mysoc;
    +
    +		$langs->load("orders");
    +
    +		$default_font_size = pdf_getPDFFontSize($outputlangs);
    +
    +		pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
    +
    +		// Show Draft Watermark
    +		if($object->statut==0 && (! empty($conf->global->RECEPTION_DRAFT_WATERMARK)) )
    +		{
    +            		pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->RECEPTION_DRAFT_WATERMARK);
    +		}
    +
    +		//Prepare la suite
    +		$pdf->SetTextColor(0,0,60);
    +		$pdf->SetFont('','B', $default_font_size + 3);
    +
    +		$w = 110;
    +
    +		$posy=$this->marge_haute;
    +		$posx=$this->page_largeur-$this->marge_droite-$w;
    +
    +		$pdf->SetXY($this->marge_gauche,$posy);
    +
    +		// Logo
    +		$logo=$conf->mycompany->dir_output.'/logos/'.$this->emetteur->logo;
    +		if ($this->emetteur->logo)
    +		{
    +			if (is_readable($logo))
    +			{
    +			    $height=pdf_getHeightForLogo($logo);
    +			    $pdf->Image($logo, $this->marge_gauche, $posy, 0, $height);	// width=0 (auto)
    +			}
    +			else
    +			{
    +				$pdf->SetTextColor(200,0,0);
    +				$pdf->SetFont('','B', $default_font_size - 2);
    +				$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
    +				$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
    +			}
    +		}
    +		else
    +		{
    +			$text=$this->emetteur->name;
    +			$pdf->MultiCell($w, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
    +		}
    +
    +		// Show barcode
    +		if (! empty($conf->barcode->enabled))
    +		{
    +			$posx=105;
    +		}
    +		else
    +		{
    +			$posx=$this->marge_gauche+3;
    +		}
    +		//$pdf->Rect($this->marge_gauche, $this->marge_haute, $this->page_largeur-$this->marge_gauche-$this->marge_droite, 30);
    +		if (! empty($conf->barcode->enabled))
    +		{
    +			// TODO Build code bar with function writeBarCode of barcode module for reception ref $object->ref
    +			//$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3);
    +			//$pdf->Image($logo,10, 5, 0, 24);
    +		}
    +
    +		$pdf->SetDrawColor(128,128,128);
    +		if (! empty($conf->barcode->enabled))
    +		{
    +			// TODO Build code bar with function writeBarCode of barcode module for reception ref $object->ref
    +			//$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3);
    +			//$pdf->Image($logo,10, 5, 0, 24);
    +		}
    +
    +
    +		$posx=$this->page_largeur - $w - $this->marge_droite;
    +		$posy=$this->marge_haute;
    +
    +		$pdf->SetFont('','B', $default_font_size + 2);
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$title=$outputlangs->transnoentities("ReceptionSheet");
    +		$pdf->MultiCell($w, 4, $title, '', 'R');
    +
    +		$pdf->SetFont('','', $default_font_size + 1);
    +
    +		$posy+=5;
    +
    +		$pdf->SetXY($posx,$posy);
    +		$pdf->SetTextColor(0,0,60);
    +		$pdf->MultiCell($w, 4, $outputlangs->transnoentities("RefReception") ." : ".$object->ref, '', 'R');
    +
    +		// Date planned delivery
    +		if (! empty($object->date_delivery))
    +		{
    +    			$posy+=4;
    +    			$pdf->SetXY($posx,$posy);
    +    			$pdf->SetTextColor(0,0,60);
    +    			$pdf->MultiCell($w, 4, $outputlangs->transnoentities("DateDeliveryPlanned")." : ".dol_print_date($object->date_delivery,"day",false,$outputlangs,true), '', 'R');
    +		}
    +
    +		if (! empty($object->thirdparty->code_fournisseur))
    +		{
    +			$posy+=4;
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->MultiCell($w, 3, $outputlangs->transnoentities("SupplierCode")." : " . $outputlangs->transnoentities($object->thirdparty->code_fournisseur), '', 'R');
    +		}
    +
    +
    +		$pdf->SetFont('','', $default_font_size + 3);
    +		$Yoff=25;
    +
    +		// Add list of linked orders
    +		$origin 	= $object->origin;
    +		$origin_id 	= $object->origin_id;
    +
    +	    // TODO move to external function
    +		if (! empty($conf->fournisseur->enabled))     // commonly $origin='commande'
    +		{
    +			$outputlangs->load('orders');
    +
    +			$classname = 'CommandeFournisseur';
    +			$linkedobject = new $classname($this->db);
    +			$result=$linkedobject->fetch($origin_id);
    +			if ($result >= 0)
    +			{
    +			    //$linkedobject->fetchObjectLinked()   Get all linked object to the $linkedobject (commonly order) into $linkedobject->linkedObjects
    +
    +				$pdf->SetFont('','', $default_font_size - 2);
    +				$text=$linkedobject->ref;
    +				if ($linkedobject->ref_client) $text.=' ('.$linkedobject->ref_client.')';
    +				$Yoff = $Yoff+8;
    +				$pdf->SetXY($this->page_largeur - $this->marge_droite - $w,$Yoff);
    +				$pdf->MultiCell($w, 2, $outputlangs->transnoentities("RefOrder") ." : ".$outputlangs->transnoentities($text), 0, 'R');
    +				$Yoff = $Yoff+3;
    +				$pdf->SetXY($this->page_largeur - $this->marge_droite - $w,$Yoff);
    +				$pdf->MultiCell($w, 2, $outputlangs->transnoentities("OrderDate")." : ".dol_print_date($linkedobject->date,"day",false,$outputlangs,true), 0, 'R');
    +			}
    +		}
    +
    +		if ($showaddress)
    +		{
    +			// Sender properties
    +			$carac_emetteur='';
    +		 	// Add internal contact of origin element if defined
    +			$arrayidcontact=array();
    +			if (! empty($origin) && is_object($object->$origin)) $arrayidcontact=$object->$origin->getIdContact('internal','SALESREPFOLL');
    +			if(empty($arrayidcontact)) $arrayidcontact=$object->$origin->getIdContact('internal','SHIPPING');
    +		 	if (count($arrayidcontact) > 0)
    +		 	{
    +		 		$object->fetch_user(reset($arrayidcontact));
    +		 		$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->transnoentities("Name").": ".$outputlangs->convToOutputCharset($object->user->getFullName($outputlangs))."\n";
    +		 	}
    +
    +		 	$carac_emetteur .= pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty);
    +
    +			// Show sender
    +			$posy=!empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 40 : 42;
    +			$posx=$this->marge_gauche;
    +			if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->page_largeur-$this->marge_droite-80;
    +
    +			$hautcadre=!empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 38 : 40;
    +			$widthrecbox=!empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 92 : 82;
    +
    +			// Show sender frame
    +			$pdf->SetTextColor(0,0,0);
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posx,$posy-5);
    +			$pdf->MultiCell(66,5, $outputlangs->transnoentities("Sender").":", 0, 'L');
    +			$pdf->SetXY($posx,$posy);
    +			$pdf->SetFillColor(230,230,230);
    +			$pdf->MultiCell($widthrecbox, $hautcadre, "", 0, 'R', 1);
    +			$pdf->SetTextColor(0,0,60);
    +			$pdf->SetFillColor(255,255,255);
    +
    +			// If RECEPTION contact defined, we use it
    +			$usecontact=false;
    +			$arrayidcontact=$object->$origin->getIdContact('external','SHIPPING');
    +
    +			if (count($arrayidcontact) > 0)
    +			{
    +				$usecontact=true;
    +				$result=$object->fetch_contact($arrayidcontact[0]);
    +			}
    +
    +			//Recipient name
    +			// On peut utiliser le nom de la societe du contact
    +			if ($usecontact && !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) {
    +				$thirdparty = $object->contact;
    +			} else {
    +				$thirdparty = $object->thirdparty;
    +			}
    +
    +			$carac_client_name= pdfBuildThirdpartyName($thirdparty, $outputlangs);
    +
    +			$carac_client=pdf_build_address($outputlangs,$this->emetteur,$object->thirdparty,(!empty($object->contact)?$object->contact:null),$usecontact,'targetwithdetails',$object);
    +
    +				// Show recipient name
    +			$pdf->SetXY($posx+2,$posy+3);
    +			$pdf->SetFont('','B', $default_font_size);
    +			$pdf->MultiCell($widthrecbox-2, 4, $carac_client_name, 0, 'L');
    +
    +			$posy = $pdf->getY();
    +
    +			// Show recipient information
    +			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->SetXY($posx+2,$posy);
    +			$pdf->MultiCell($widthrecbox-2, 4, $carac_client, 0, 'L');
    +
    +			// Show recipient
    +			$widthrecbox=!empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 92 : 100;
    +			if ($this->page_largeur < 210) $widthrecbox=84;	// To work with US executive format
    +			$posy=!empty($conf->global->MAIN_PDF_USE_ISO_LOCATION) ? 40 : 42;
    +			$posx=$this->page_largeur - $this->marge_droite - $widthrecbox;
    +			if (! empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $posx=$this->marge_gauche;
    +
    +			// Show recipient frame
    +			$pdf->SetTextColor(0,0,0);
    +			$pdf->SetFont('','', $default_font_size - 2);
    +			$pdf->SetXY($posx+2,$posy-5);
    +			$pdf->MultiCell($widthrecbox, 5, $outputlangs->transnoentities("Recipient").":", 0, 'L');
    +			$pdf->Rect($posx, $posy, $widthrecbox, $hautcadre);
    +
    +
    +
    +			// Show sender name
    +			$pdf->SetXY($posx+2,$posy+3);
    +			$pdf->SetFont('','B',$default_font_size);
    +			$pdf->MultiCell($widthrecbox, 2, $outputlangs->convToOutputCharset($this->emetteur->name), 0, 'L');
    +			$posy=$pdf->getY();
    +
    +			// Show sender information
    +			$pdf->SetXY($posx+2,$posy);
    +			$pdf->SetFont('','', $default_font_size - 1);
    +			$pdf->MultiCell($widthrecbox, 4, $carac_emetteur, 0, 'L');
    +		}
    +
    +		$pdf->SetTextColor(0,0,0);
    +	}
    +
    +	/**
    +	 *   	Show footer of page. Need this->emetteur object
    +     *
    +	 *   	@param	PDF		$pdf     			PDF
    +	 * 		@param	Object		$object				Object to show
    +	 *      @param	Translate	$outputlangs		Object lang for output
    +	 *      @param	int			$hidefreetext		1=Hide free text
    +	 *      @return	int								Return height of bottom margin including footer text
    +	 */
    +	function _pagefoot(&$pdf,$object,$outputlangs,$hidefreetext=0)
    +	{
    +		global $conf;
    +		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
    +		return pdf_pagefoot($pdf,$outputlangs,'RECEPTION_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
    +	}
    +}
    diff --git a/htdocs/install/doctemplates/supplier_proposal/index.html b/htdocs/core/modules/reception/index.html
    similarity index 100%
    rename from htdocs/install/doctemplates/supplier_proposal/index.html
    rename to htdocs/core/modules/reception/index.html
    diff --git a/htdocs/core/modules/reception/mod_reception_beryl.php b/htdocs/core/modules/reception/mod_reception_beryl.php
    new file mode 100644
    index 00000000000..f4cdadea9d2
    --- /dev/null
    +++ b/htdocs/core/modules/reception/mod_reception_beryl.php
    @@ -0,0 +1,146 @@
    +<?php
    +/* Copyright (C) 2018	   Quentin Vial-Gouteyron    <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *  \file       htdocs/core/modules/reception/mod_reception_beryl.php
    + *  \ingroup    reception
    + *  \brief      File of class to manage shipments numbering rules Beryl
    + */
    +require_once DOL_DOCUMENT_ROOT .'/core/modules/reception/modules_reception.php';
    +
    +/**
    + *	Class to manage reception numbering rules Beryl
    + */
    +class mod_reception_beryl extends ModelNumRefReception
    +{
    +	var $version='dolibarr';
    +	var $prefix='RCP';
    +	var $error='';
    +	var $nom='Beryl';
    +
    +
    +	/**
    +	 *	Return default description of numbering model
    +	 *
    +	 *	@return     string      text description
    +	 */
    +    function info()
    +    {
    +    	global $langs;
    +      	return $langs->trans("SimpleNumRefModelDesc",$this->prefix);
    +    }
    +
    +
    +	/**
    +	 *	Return numbering example
    +	 *
    +	 *	@return     string      Example
    +	 */
    +	function getExample()
    +	{
    +		return $this->prefix."0501-0001";
    +	}
    +
    +
    +	/**
    +	 *	Test if existing numbers make problems with numbering
    +	 *
    +	 *	@return     boolean     false if conflit, true if ok
    +	 */
    +	function canBeActivated()
    +	{
    +		global $conf,$langs,$db;
    +
    +		$coyymm=''; $max='';
    +
    +		$posindice=8;
    +		$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."reception";
    +		$sql.= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
    +		$sql.= " AND entity = ".$conf->entity;
    +
    +		$resql=$db->query($sql);
    +		if ($resql)
    +		{
    +			$row = $db->fetch_row($resql);
    +			if ($row) { $coyymm = substr($row[0],0,6); $max=$row[0]; }
    +		}
    +		if ($coyymm && ! preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i',$coyymm))
    +		{
    +			$langs->load("errors");
    +			$this->error=$langs->trans('ErrorNumRefModel', $max);
    +			return false;
    +		}
    +
    +		return true;
    +	}
    +
    +	/**
    +	 *	Return next value
    +	 *
    +	 *	@param	Societe		$objsoc     Third party object
    +	 *	@param	Object		$shipment	Shipment object
    +	 *	@return string      			Value if OK, 0 if KO
    +	 */
    +	function getNextValue($objsoc,$shipment)
    +	{
    +		global $db,$conf;
    +
    +		$posindice=9;
    +		$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."reception";
    +		$sql.= " WHERE ref like '".$db->escape($this->prefix)."____-%'";
    +		$sql.= " AND entity = ".$conf->entity;
    +
    +		$resql=$db->query($sql);
    +		if ($resql)
    +		{
    +			$obj = $db->fetch_object($resql);
    +			if ($obj) $max = intval($obj->max);
    +			else $max=0;
    +		}
    +		else
    +		{
    +			dol_syslog("mod_reception_beryl::getNextValue", LOG_DEBUG);
    +			return -1;
    +		}
    +
    +		$date=time();
    +		$yymm = strftime("%y%m",$date);
    +
    +		if ($max >= (pow(10, 4) - 1)) $num=$max+1;	// If counter > 9999, we do not format on 4 chars, we take number as it is
    +		else $num = sprintf("%04s",$max+1);
    +
    +		dol_syslog("mod_reception_beryl::getNextValue return ".$this->prefix.$yymm."-".$num);
    +		return $this->prefix.$yymm."-".$num;
    +	}
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *  Return next free value
    +	 *
    +	 *	@param	Societe		$objsoc     Third party object
    +	 *	@param	Object		$objforref	Shipment object
    +	 *	@return string      			Next free value
    +	 */
    +	function reception_get_num($objsoc,$objforref)
    +	{
    +		// phpcs:enable
    +		return $this->getNextValue($objsoc,$objforref);
    +	}
    +}
    \ No newline at end of file
    diff --git a/htdocs/core/modules/reception/mod_reception_moonstone.php b/htdocs/core/modules/reception/mod_reception_moonstone.php
    new file mode 100644
    index 00000000000..bea6887d99e
    --- /dev/null
    +++ b/htdocs/core/modules/reception/mod_reception_moonstone.php
    @@ -0,0 +1,137 @@
    +<?php
    +/* Copyright (C) 2018	   Quentin Vial-Gouteyron    <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *  \file       htdocs/core/modules/reception/mod_reception_moonstone.php
    + *  \ingroup    reception
    + *  \brief      File of class to manage reception numbering rules Moonstone
    + */
    +
    +require_once DOL_DOCUMENT_ROOT .'/core/modules/reception/modules_reception.php';
    +
    +/**
    + *	Class to manage reception numbering rules Moonstone
    + */
    +class mod_reception_moonstone extends ModelNumRefReception
    +{
    +	var $version='dolibarr';
    +	var $error = '';
    +	var $nom = 'Moonstone';
    +
    +	/**
    +	 *	Return default description of numbering model
    +	 *
    +	 *	@return     string      text description
    +	 */
    +	function info()
    +    {
    +    	global $conf,$langs;
    +
    +		$langs->load("bills");
    +
    +		$form = new Form($this->db);
    +
    +		$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
    +		$texte.= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
    +		$texte.= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +		$texte.= '<input type="hidden" name="action" value="updateMask">';
    +		$texte.= '<input type="hidden" name="maskconstreception" value="RECEPTION_MOONSTONE_MASK">';
    +		$texte.= '<table class="nobordernopadding" width="100%">';
    +
    +		$tooltip=$langs->trans("GenericMaskCodes",$langs->transnoentities("Reception"),$langs->transnoentities("Reception"));
    +		$tooltip.=$langs->trans("GenericMaskCodes2");
    +		$tooltip.=$langs->trans("GenericMaskCodes3");
    +		$tooltip.=$langs->trans("GenericMaskCodes4a",$langs->transnoentities("Reception"),$langs->transnoentities("Reception"));
    +		$tooltip.=$langs->trans("GenericMaskCodes5");
    +
    +		$texte.= '<tr><td>'.$langs->trans("Mask").':</td>';
    +		$texte.= '<td align="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskreception" value="'.$conf->global->RECEPTION_MOONSTONE_MASK.'">',$tooltip,1,1).'</td>';
    +		$texte.= '<td align="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
    +		$texte.= '</tr>';
    +		$texte.= '</table>';
    +		$texte.= '</form>';
    +
    +		return $texte;
    +    }
    +
    +	/**
    +	 *	Return numbering example
    +	 *
    +	 *	@return     string      Example
    +	 */
    +    function getExample()
    +    {
    +     	global $conf,$langs,$mysoc;
    +
    +    	$old_code_client=$mysoc->code_client;
    +    	$old_code_type=$mysoc->typent_code;
    +    	$mysoc->code_client='CCCCCCCCCC';
    +    	$mysoc->typent_code='TTTTTTTTTT';
    +     	$numExample = $this->getNextValue($mysoc,'');
    +		$mysoc->code_client=$old_code_client;
    +		$mysoc->typent_code=$old_code_type;
    +
    +		if (! $numExample)
    +		{
    +			$numExample = $langs->trans('NotConfigured');
    +		}
    +		return $numExample;
    +    }
    +
    +	/**
    +	 *	Return next value
    +	 *
    +	 *	@param	Societe		$objsoc     Third party object
    +	 *	@param	Object		$reception	Reception object
    +	 *	@return string      			Value if OK, 0 if KO
    +	 */
    +    function getNextValue($objsoc,$reception)
    +    {
    +		global $db,$conf;
    +
    +		require_once DOL_DOCUMENT_ROOT .'/core/lib/functions2.lib.php';
    +
    +		$mask=$conf->global->RECEPTION_MOONSTONE_MASK;
    +
    +		if (! $mask)
    +		{
    +			$this->error='NotConfigured';
    +			return 0;
    +		}
    +
    +		$date = $reception->date_reception;
    +
    +		$numFinal=get_next_value($db,$mask,'reception','ref','',$objsoc,$date);
    +
    +		return  $numFinal;
    +	}
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *  Return next free value
    +	 *
    +	 *	@param	Societe		$objsoc     Third party object
    +	 *	@param	Object		$objforref	Reception object
    +	 *	@return string      			Next free value
    +	 */
    +	function reception_get_num($objsoc,$objforref)
    +	{
    +		// phpcs:enable
    +		return $this->getNextValue($objsoc,$objforref);
    +	}
    +}
    \ No newline at end of file
    diff --git a/htdocs/core/modules/reception/modules_reception.php b/htdocs/core/modules/reception/modules_reception.php
    new file mode 100644
    index 00000000000..57965e1b462
    --- /dev/null
    +++ b/htdocs/core/modules/reception/modules_reception.php
    @@ -0,0 +1,138 @@
    +<?php
    +/* Copyright (C) 2018	   Quentin Vial-Gouteyron    <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *  \file       htdocs/core/modules/reception/modules_reception.php
    + *  \ingroup    reception
    + *  \brief      File that contains parent class for sending receipts models
    + *              and parent class for sending receipts numbering models
    + */
    + require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
    +
    +/**
    + *	Parent class of sending receipts models
    + */
    +abstract class ModelePdfReception extends CommonDocGenerator
    +{
    +    var $error='';
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +	 *  Return list of active generation modules
    +	 *
    +     *  @param	DoliDB	$db     			Database handler
    +     *  @param  integer	$maxfilenamelength  Max length of value to show
    +     *  @return	array						List of templates
    +	 */
    +	static function liste_modeles($db,$maxfilenamelength=0)
    +	{
    +		// phpcs:enable
    +		global $conf;
    +
    +		$type='reception';
    +		$liste=array();
    +
    +		include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +		$liste=getListOfModels($db,$type,$maxfilenamelength);
    +
    +		return $liste;
    +	}
    +}
    +
    +
    +/**
    + *  Parent Class of numbering models of sending receipts references
    + */
    +abstract class ModelNumRefReception
    +{
    +	var $error='';
    +
    +	/** Return if a model can be used or not
    +	 *
    +	 *  @return		boolean     true if model can be used
    +	 */
    +	function isEnabled()
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 *	Return default description of numbering model
    +	 *
    +	 *	@return     string      text description
    +	 */
    +	function info()
    +	{
    +		global $langs;
    +		$langs->load("reception");
    +		return $langs->trans("NoDescription");
    +	}
    +
    +	/**
    +	 *	Returns numbering example
    +	 *
    +	 *	@return     string      Example
    +	 */
    +	function getExample()
    +	{
    +		global $langs;
    +		$langs->load("reception");
    +		return $langs->trans("NoExample");
    +	}
    +
    +	/**
    +	 *	Test if existing numbers make problems with numbering
    +	 *
    +	 *	@return     boolean     false if conflit, true if ok
    +	 */
    +	function canBeActivated()
    +	{
    +		return true;
    +	}
    +
    +	/**
    +	 *	Returns next value assigned
    +	 *
    +	 *	@param	Societe		$objsoc     Third party object
    +	 *	@param	Object		$shipment	Shipment object
    +	 *	@return	string					Value
    +	 */
    +	function getNextValue($objsoc, $shipment)
    +	{
    +		global $langs;
    +		return $langs->trans("NotAvailable");
    +	}
    +
    +	/**
    +	 *	Returns version of the numbering model
    +	 *
    +	 *	@return     string      Value
    +	 */
    +	function getVersion()
    +	{
    +		global $langs;
    +		$langs->load("admin");
    +
    +		if ($this->version == 'development') return $langs->trans("VersionDevelopment");
    +		if ($this->version == 'experimental') return $langs->trans("VersionExperimental");
    +		if ($this->version == 'dolibarr') return DOL_VERSION;
    +		if ($this->version) return $this->version;
    +		return $langs->trans("NotAvailable");
    +	}
    +}
    diff --git a/htdocs/core/modules/security/generate/modGeneratePassNone.class.php b/htdocs/core/modules/security/generate/modGeneratePassNone.class.php
    index 79cbd1ff629..d0e8c617217 100644
    --- a/htdocs/core/modules/security/generate/modGeneratePassNone.class.php
    +++ b/htdocs/core/modules/security/generate/modGeneratePassNone.class.php
    @@ -31,13 +31,21 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/security/generate/modules_genpass
      */
     class modGeneratePassNone extends ModeleGenPassword
     {
    -	var $id;
    -	var $length;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -	var $db;
    -	var $conf;
    -	var $lang;
    -	var $user;
    +	public $length;
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	public $conf;
    +	public $lang;
    +	public $user;
     
     
     	/**
    @@ -100,6 +108,5 @@ class modGeneratePassNone extends ModeleGenPassword
     	{
     		return 1;
     	}
    -
     }
     
    diff --git a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php
    index 96041bcac2c..c4db7a40e7b 100644
    --- a/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php
    +++ b/htdocs/core/modules/security/generate/modGeneratePassPerso.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2006-2011	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2014		Teddy Andreotti		<125155@supinfo.com>
    - * Copyright (C) 2017		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2017		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -33,26 +33,34 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/security/generate/modules_genpass
      */
     class modGeneratePassPerso extends ModeleGenPassword
     {
    -	var $id;
    -	var $length;
    -	var $length2; // didn't overright display
    -	var $NbMaj;
    -	var $NbNum;
    -	var $NbSpe;
    -	var $NbRepeat;
    -	var $WithoutAmbi;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -	var $db;
    -	var $conf;
    -	var $lang;
    -	var $user;
    +	public $length;
    +	public $length2; // didn't overright display
    +	public $NbMaj;
    +	public $NbNum;
    +	public $NbSpe;
    +	public $NbRepeat;
    +	public $WithoutAmbi;
     
    -	var $Maj;
    -	var $Min;
    -	var $Nb;
    -	var $Spe;
    -	var $Ambi;
    -	var $All;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	public $conf;
    +	public $lang;
    +	public $user;
    +
    +	public $Maj;
    +	public $Min;
    +	public $Nb;
    +	public $Spe;
    +	public $Ambi;
    +	public $All;
     
     	/**
     	 *	Constructor
    @@ -72,7 +80,7 @@ class modGeneratePassPerso extends ModeleGenPassword
     		$this->langs=$langs;
     		$this->user=$user;
     
    -		if(empty($conf->global->USER_PASSWORD_PATTERN)){
    +		if (empty($conf->global->USER_PASSWORD_PATTERN)) {
     			// default value (8carac, 1maj, 1digit, 1spe,  3 repeat, no ambi at auto generation.
     			dolibarr_set_const($db, "USER_PASSWORD_PATTERN", '8;1;1;1;3;1','chaine',0,'',$conf->entity);
     		}
    @@ -105,7 +113,6 @@ class modGeneratePassPerso extends ModeleGenPassword
     		//$this->All = str_shuffle($this->Maj. $this->Min. $this->Nb. $this->Spe);
     		//$this->All = $this->Maj. $this->Min. $this->Nb. $this->Spe;
     		//$this->All =  $this->Spe;
    -
     	}
     
     	/**
    @@ -201,7 +208,8 @@ class modGeneratePassPerso extends ModeleGenPassword
     	 *		@param		string	$password	Password to check
     	 *      @return     int					0 if KO, >0 if OK
     	 */
    -	function consecutiveInterationSameCharacter($password){
    +    function consecutiveInterationSameCharacter($password)
    +    {
     		$last = "";
     		$count = 0;
     		$char = str_split($password);
    @@ -220,4 +228,3 @@ class modGeneratePassPerso extends ModeleGenPassword
     		return 1;
     	}
     }
    -
    diff --git a/htdocs/core/modules/security/generate/modGeneratePassStandard.class.php b/htdocs/core/modules/security/generate/modGeneratePassStandard.class.php
    index acb44256537..0ecf7d7ef38 100644
    --- a/htdocs/core/modules/security/generate/modGeneratePassStandard.class.php
    +++ b/htdocs/core/modules/security/generate/modGeneratePassStandard.class.php
    @@ -31,13 +31,21 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/security/generate/modules_genpass
      */
     class modGeneratePassStandard extends ModeleGenPassword
     {
    -	var $id;
    -	var $length;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -	var $db;
    -	var $conf;
    -	var $lang;
    -	var $user;
    +	public $length;
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	public $conf;
    +	public $lang;
    +	public $user;
     
     
     	/**
    @@ -109,7 +117,6 @@ class modGeneratePassStandard extends ModeleGenPassword
     				$password .= $char;
     				$i++;
     			}
    -
     		}
     
     		// done!
    diff --git a/htdocs/core/modules/security/generate/modules_genpassword.php b/htdocs/core/modules/security/generate/modules_genpassword.php
    index 3129a341926..e1f73b134be 100644
    --- a/htdocs/core/modules/security/generate/modules_genpassword.php
    +++ b/htdocs/core/modules/security/generate/modules_genpassword.php
    @@ -30,7 +30,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php';
      */
     abstract class ModeleGenPassword
     {
    -    var $error='';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
         /**
          * 		Return if a module can be used or not
    @@ -86,6 +89,5 @@ abstract class ModeleGenPassword
         {
             return 1;
         }
    -
     }
     
    diff --git a/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php b/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php
    index 6aa4267d827..3650af12b24 100644
    --- a/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php
    +++ b/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php
    @@ -1,6 +1,8 @@
     <?php
     /* Copyright (C) 2010-2011 Laurent Destailleur <ely@users.sourceforge.net>
      * Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
      * 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
      * the Free Software Foundation; either version 3 of the License, or
    @@ -34,9 +36,17 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
      */
     class doc_generic_odt extends ModeleThirdPartyDoc
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    +	/**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
     
     
     	/**
    @@ -46,10 +56,10 @@ class doc_generic_odt extends ModeleThirdPartyDoc
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT templates";
    @@ -83,7 +93,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc
     	function info($langs)
     	{
     		global $conf,$langs;
    -        
    +
     		// Load traductions files requiredby by page
     		$langs->loadLangs(array("companies", "errors"));
     
    @@ -164,6 +174,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -177,6 +188,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$hookmanager;
     
     		if (empty($srctemplatepath))
    @@ -197,7 +209,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
    -        
    +
     		// Load translation files required by the page
     		$outputlangs->loadLangs(array("main", "dict", "companies", "projects"));
     
    @@ -266,6 +278,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc
     				catch(Exception $e)
     				{
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_INFO);
     					return -1;
     				}
     				//print $odfHandler->__toString()."\n";
    @@ -313,9 +326,11 @@ class doc_generic_odt extends ModeleThirdPartyDoc
                     				}
                     				catch(OdfException $e)
                     				{
    +									dol_syslog($e->getMessage(), LOG_INFO);
                     				}
                     				catch(SegmentException $e)
                     				{
    +									dol_syslog($e->getMessage(), LOG_INFO);
                     				}
                     			}
                     			$listlines->merge();
    @@ -357,9 +372,10 @@ class doc_generic_odt extends ModeleThirdPartyDoc
     							$odfHandler->setVars($key, $value, true, 'UTF-8');
     						}
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
     						// setVars failed, probably because key not found
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -370,8 +386,9 @@ class doc_generic_odt extends ModeleThirdPartyDoc
     					try {
     						$odfHandler->setVars($key, $value, true, 'UTF-8');
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -383,8 +400,9 @@ class doc_generic_odt extends ModeleThirdPartyDoc
     				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
    @@ -403,6 +421,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc
     					   $odfHandler->saveToDisk($file);
     					}catch (Exception $e){
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
    @@ -428,6 +447,4 @@ class doc_generic_odt extends ModeleThirdPartyDoc
     		$this->error='UnknownError';
     		return -1;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/societe/mod_codeclient_elephant.php b/htdocs/core/modules/societe/mod_codeclient_elephant.php
    index 993bb2ed2b3..e0d6a186879 100644
    --- a/htdocs/core/modules/societe/mod_codeclient_elephant.php
    +++ b/htdocs/core/modules/societe/mod_codeclient_elephant.php
    @@ -1,9 +1,9 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2006-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2007-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent	    <jmenent@2byte.es>
    - * Copyright (C) 2013 	   Philippe Grand      	<philippe.grand@atoo-net.com>
    + * Copyright (C) 2013-2018 Philippe Grand      	<philippe.grand@atoo-net.com>
      *
      * 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
    @@ -34,18 +34,39 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/societe/modules_societe.class.php'
      */
     class mod_codeclient_elephant extends ModeleThirdPartyCode
     {
    -	var $nom='Elephant';				// Nom du modele
    -	var $name='Elephant';				// Nom du modele
    -	var $code_modifiable;				// Code modifiable
    -	var $code_modifiable_invalide;		// Code modifiable si il est invalide
    -	var $code_modifiable_null;			// Code modifiables si il est null
    -	var $code_null;						// Code facultatif
    -	var $version='dolibarr';    		// 'development', 'experimental', 'dolibarr'
    -	var $code_auto;                     // Numerotation automatique
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Elephant';
     
    -	var $searchcode; // String de recherche
    -	var $numbitcounter; // Nombre de chiffres du compteur
    -	var $prefixIsRequired; // Le champ prefix du tiers doit etre renseigne quand on utilise {pre}
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Elephant';
    +
    +	public $code_modifiable;				// Code modifiable
    +
    +	public $code_modifiable_invalide;		// Code modifiable si il est invalide
    +
    +	public $code_modifiable_null;			// Code modifiables si il est null
    +
    +	public $code_null;						// Code facultatif
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';    		// 'development', 'experimental', 'dolibarr'
    +
    +	public $code_auto;                     // Numerotation automatique
    +
    +	public $searchcode; // String de recherche
    +
    +	public $numbitcounter; // Nombre de chiffres du compteur
    +
    +	public $prefixIsRequired; // Le champ prefix du tiers doit etre renseigne quand on utilise {pre}
     
     
     	/**
    @@ -216,6 +237,7 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Check if mask/numbering use prefix
     	 *
    @@ -223,6 +245,7 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
     	 */
     	function verif_prefixIsUsed()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$mask = $conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER;
    @@ -291,6 +314,7 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *		Renvoi si un code est pris ou non (par autre tiers)
     	 *
    @@ -302,6 +326,7 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
     	 */
     	function verif_dispo($db, $code, $soc, $type=0)
     	{
    +        // phpcs:enable
     		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe";
     		if ($type == 1) $sql.= " WHERE code_fournisseur = '".$code."'";
     		else $sql.= " WHERE code_client = '".$code."'";
    @@ -323,8 +348,5 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
     		{
     			return -2;
     		}
    -
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/societe/mod_codeclient_leopard.php b/htdocs/core/modules/societe/mod_codeclient_leopard.php
    index 94c9c04d2e2..9bdd27d5bee 100644
    --- a/htdocs/core/modules/societe/mod_codeclient_leopard.php
    +++ b/htdocs/core/modules/societe/mod_codeclient_leopard.php
    @@ -38,14 +38,33 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode
     	 * Le fonctionnement de celui-ci doit donc rester le plus ouvert possible
     	 */
     
    -	var $nom='Leopard';					// Nom du modele
    -	var $name='Leopard';				// Nom du modele
    -	var $code_modifiable;				// Code modifiable
    -	var $code_modifiable_invalide;		// Code modifiable si il est invalide
    -	var $code_modifiable_null;			// Code modifiables si il est null
    -	var $code_null;						// Code facultatif
    -	var $version='dolibarr';    		// 'development', 'experimental', 'dolibarr'
    -	var $code_auto; 	                // Numerotation automatique
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Leopard';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Leopard';
    +
    +	public $code_modifiable;				// Code modifiable
    +
    +	public $code_modifiable_invalide;		// Code modifiable si il est invalide
    +
    +	public $code_modifiable_null;			// Code modifiables si il est null
    +
    +	public $code_null;						// Code facultatif
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';    		// 'development', 'experimental', 'dolibarr'
    +
    +	public $code_auto; 	                // Numerotation automatique
     
     
     	/**
    diff --git a/htdocs/core/modules/societe/mod_codeclient_monkey.php b/htdocs/core/modules/societe/mod_codeclient_monkey.php
    index f4d9e5b4b33..77bb7c54a64 100644
    --- a/htdocs/core/modules/societe/mod_codeclient_monkey.php
    +++ b/htdocs/core/modules/societe/mod_codeclient_monkey.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2007	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -32,18 +32,39 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/societe/modules_societe.class.php'
      */
     class mod_codeclient_monkey extends ModeleThirdPartyCode
     {
    -	var $nom='Monkey';					// Nom du modele
    -	var $name='Monkey';					// Nom du modele
    -	var $code_modifiable;				// Code modifiable
    -	var $code_modifiable_invalide;		// Code modifiable si il est invalide
    -	var $code_modifiable_null;			// Code modifiables si il est null
    -	var $code_null;						// Code facultatif
    -	var $version='dolibarr';	    	// 'development', 'experimental', 'dolibarr'
    -	var $code_auto;                     // Numerotation automatique
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Monkey';
     
    -	var $prefixcustomer='CU';
    -	var $prefixsupplier='SU';
    -	var $prefixIsRequired; // Le champ prefix du tiers doit etre renseigne quand on utilise {pre}
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Monkey';
    +
    +	public $code_modifiable;				// Code modifiable
    +
    +	public $code_modifiable_invalide;		// Code modifiable si il est invalide
    +
    +	public $code_modifiable_null;			// Code modifiables si il est null
    +
    +	public $code_null;						// Code facultatif
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';	    	// 'development', 'experimental', 'dolibarr'
    +
    +	public $code_auto;                     // Numerotation automatique
    +
    +	public $prefixcustomer='CU';
    +
    +	public $prefixsupplier='SU';
    +
    +	public $prefixIsRequired; // Le champ prefix du tiers doit etre renseigne quand on utilise {pre}
     
     
     	/**
    @@ -84,7 +105,7 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
     	 */
     	function getExample($langs,$objsoc=0,$type=-1)
     	{
    -		return $this->prefixcustomer.'0901-0001<br>'.$this->prefixsupplier.'0901-0001';
    +		return $this->prefixcustomer.'0901-00001<br>'.$this->prefixsupplier.'0901-00001';
     	}
     
     
    @@ -99,26 +120,19 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
     	{
     		global $db, $conf, $mc;
     
    -		$return='000001';
    -
    -		$field='';$where='';
    -		if ($type == 0)
    -		{
    +		$field='';
    +        $prefix = '';
    +		if ($type == 0) {
     			$field = 'code_client';
    -			//$where = ' AND client in (1,2)';
    -		}
    -		else if ($type == 1)
    -		{
    +            $prefix = $this->prefixcustomer;
    +		} elseif ($type == 1) {
     			$field = 'code_fournisseur';
    -			//$where = ' AND fournisseur = 1';
    -		}
    -		else return -1;
    +            $prefix = $this->prefixsupplier;
    +		} else {
    +            return -1;
    +        }
     
    -
    -		if ($type == 0) $prefix=$this->prefixcustomer;
    -		if ($type == 1) $prefix=$this->prefixsupplier;
    -
    -		// D'abord on recupere la valeur max (reponse immediate car champ indexe)
    +        // D'abord on recupere la valeur max (reponse immediate car champ indexe)
     		$posindice=8;
             $sql = "SELECT MAX(CAST(SUBSTRING(".$field." FROM ".$posindice.") AS SIGNED)) as max";   // This is standard SQL
     		$sql.= " FROM ".MAIN_DB_PREFIX."societe";
    @@ -142,8 +156,8 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
     		$date	= dol_now();
     		$yymm	= strftime("%y%m",$date);
     
    -		if ($max >= (pow(10, 4) - 1)) $num=$max+1;	// If counter > 9999, we do not format on 4 chars, we take number as it is
    -		else $num = sprintf("%04s",$max+1);
    +		if ($max >= (pow(10, 5) - 1)) $num=$max+1;	// If counter > 99999, we do not format on 5 chars, we take number as it is
    +		else $num = sprintf("%05s",$max+1);
     
     		dol_syslog(get_class($this)."::getNextValue return ".$prefix.$yymm."-".$num);
     		return $prefix.$yymm."-".$num;
    @@ -210,6 +224,7 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *		Renvoi si un code est pris ou non (par autre tiers)
     	 *
    @@ -221,6 +236,7 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
     	 */
     	function verif_dispo($db, $code, $soc, $type=0)
     	{
    +        // phpcs:enable
     		global $conf, $mc;
     
     		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe";
    @@ -249,6 +265,7 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Renvoi si un code respecte la syntaxe
     	 *
    @@ -257,6 +274,7 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
     	 */
     	function verif_syntax($code)
     	{
    +        // phpcs:enable
     		$res = 0;
     
     		if (dol_strlen($code) < 11)
    @@ -269,6 +287,4 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
     		}
     		return $res;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/societe/mod_codecompta_aquarium.php b/htdocs/core/modules/societe/mod_codecompta_aquarium.php
    index c237be0f91c..853c2ee4a0e 100644
    --- a/htdocs/core/modules/societe/mod_codecompta_aquarium.php
    +++ b/htdocs/core/modules/societe/mod_codecompta_aquarium.php
    @@ -31,12 +31,27 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/societe/modules_societe.class.php'
      */
     class mod_codecompta_aquarium extends ModeleAccountancyCode
     {
    -	var $nom='Aquarium';
    -	var $name='Aquarium';
    -	var $version='dolibarr';        // 'development', 'experimental', 'dolibarr'
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Aquarium';
     
    -	var	$prefixcustomeraccountancycode;
    -	var	$prefixsupplieraccountancycode;
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Aquarium';
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';        // 'development', 'experimental', 'dolibarr'
    +
    +	public	$prefixcustomeraccountancycode;
    +
    +	public	$prefixsupplieraccountancycode;
     
     
     	/**
    @@ -107,6 +122,7 @@ class mod_codecompta_aquarium extends ModeleAccountancyCode
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Set accountancy account code for a third party into this->code
     	 *
    @@ -117,6 +133,7 @@ class mod_codecompta_aquarium extends ModeleAccountancyCode
     	 */
     	function get_code($db, $societe, $type='')
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$i = 0;
    @@ -147,7 +164,7 @@ class mod_codecompta_aquarium extends ModeleAccountancyCode
     		if (! isset($conf->global->COMPANY_AQUARIUM_REMOVE_SPECIAL) || ! empty($conf->global->COMPANY_AQUARIUM_REMOVE_SPECIAL)) $codetouse=preg_replace('/([^a-z0-9])/i','',$codetouse);
     		// Remove special alpha if COMPANY_AQUARIUM_REMOVE_ALPHA is set to 1
     		if (! empty($conf->global->COMPANY_AQUARIUM_REMOVE_ALPHA))   $codetouse=preg_replace('/([a-z])/i','',$codetouse);
    -		// Apply a regex replacement pattern if COMPANY_AQUARIUM_REMOVE_ALPHA is set to 1
    +		// Apply a regex replacement pattern on code if COMPANY_AQUARIUM_CLEAN_REGEX is set. Value must be a regex with parenthesis. The part into parenthesis is kept, the rest removed.
     		if (! empty($conf->global->COMPANY_AQUARIUM_CLEAN_REGEX))	// Example: $conf->global->COMPANY_AQUARIUM_CLEAN_REGEX='^..(..)..';
     		{
     			$codetouse=preg_replace('/'.$conf->global->COMPANY_AQUARIUM_CLEAN_REGEX.'/','\1\2\3',$codetouse);
    @@ -212,4 +229,3 @@ class mod_codecompta_aquarium extends ModeleAccountancyCode
     		}
     	}
     }
    -
    diff --git a/htdocs/core/modules/societe/mod_codecompta_panicum.php b/htdocs/core/modules/societe/mod_codecompta_panicum.php
    index 15099eb0538..c1e83b75db4 100644
    --- a/htdocs/core/modules/societe/mod_codecompta_panicum.php
    +++ b/htdocs/core/modules/societe/mod_codecompta_panicum.php
    @@ -30,9 +30,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/societe/modules_societe.class.php'
      */
     class mod_codecompta_panicum extends ModeleAccountancyCode
     {
    -	var $nom='Panicum';
    -	var $name='Panicum';
    -	var $version='dolibarr';        // 'development', 'experimental', 'dolibarr'
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Panicum';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Panicum';
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';        // 'development', 'experimental', 'dolibarr'
     
     
     	/**
    @@ -67,6 +81,7 @@ class mod_codecompta_panicum extends ModeleAccountancyCode
     		return '';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Set accountancy account code for a third party into this->code
     	 *
    @@ -77,6 +92,7 @@ class mod_codecompta_panicum extends ModeleAccountancyCode
     	 */
     	function get_code($db, $societe, $type='')
     	{
    +        // phpcs:enable
     		$this->code='';
     
     		if (is_object($societe)) {
    @@ -87,4 +103,3 @@ class mod_codecompta_panicum extends ModeleAccountancyCode
     		return 0; // return ok
     	}
     }
    -
    diff --git a/htdocs/core/modules/societe/modules_societe.class.php b/htdocs/core/modules/societe/modules_societe.class.php
    index 0ed5eace2e2..a38acbc002a 100644
    --- a/htdocs/core/modules/societe/modules_societe.class.php
    +++ b/htdocs/core/modules/societe/modules_societe.class.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -33,28 +33,32 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     abstract class ModeleThirdPartyDoc extends CommonDocGenerator
     {
    -    var $error='';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return list of active generation modules
          *
    -	 * 	@param	DoliDB		$db					Database handler
    +     * 	@param	DoliDB		$db					Database handler
          *  @param	integer		$maxfilenamelength  Max length of value to show
          * 	@return	array							List of templates
          */
         static function liste_modeles($db,$maxfilenamelength=0)
         {
    +        // phpcs:enable
             global $conf;
     
             $type='company';
             $liste=array();
     
             include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    -        $liste=getListOfModels($db,$type,$maxfilenamelength);
    +        $liste = getListOfModels($db,$type,$maxfilenamelength);
     
             return $liste;
         }
    -
     }
     
     /**
    @@ -63,7 +67,10 @@ abstract class ModeleThirdPartyDoc extends CommonDocGenerator
      */
     abstract class ModeleThirdPartyCode
     {
    -    var $error='';
    +    /**
    +     * @var string Error code (or message)
    +	 */
    +	public $error='';
     
         /**     Renvoi la description par defaut du modele de numerotation
          *
    @@ -138,8 +145,9 @@ abstract class ModeleThirdPartyCode
             return $langs->trans("NotAvailable");
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -     *  Renvoi la liste des modeles de numéroation
    +     *  Renvoie la liste des modeles de numérotation
          *
          *  @param	DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
    @@ -147,6 +155,7 @@ abstract class ModeleThirdPartyCode
          */
         static function liste_modeles($db,$maxfilenamelength=0)
         {
    +        // phpcs:enable
             $liste=array();
             $sql ="";
     
    @@ -170,12 +179,12 @@ abstract class ModeleThirdPartyCode
         }
     
         /**
    -     *      Return description of module parameters
    +     *  Return description of module parameters
          *
    -     *      @param	Translate	$langs      Output language
    -     *		@param	Societe		$soc		Third party object
    -     *		@param	int			$type		-1=Nothing, 0=Customer, 1=Supplier
    -     *		@return	string					HTML translated description
    +     *  @param	Translate	$langs      Output language
    +     *  @param	Societe		$soc		Third party object
    +     *  @param	int			$type		-1=Nothing, 0=Customer, 1=Supplier
    +     *  @return	string					HTML translated description
          */
         function getToolTip($langs,$soc,$type)
         {
    @@ -236,16 +245,17 @@ abstract class ModeleThirdPartyCode
             return $s;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Check if mask/numbering use prefix
     	 *
    -	 *   @return	int		0=no, 1=yes
    -	 */
    +	 *   @return    int	    0=no, 1=yes
    +     */
         function verif_prefixIsUsed()
         {
    +        // phpcs:enable
             return 0;
         }
    -
     }
     
     
    @@ -255,7 +265,10 @@ abstract class ModeleThirdPartyCode
      */
     abstract class ModeleAccountancyCode
     {
    -    var $error='';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
         /**		Return description of module
    @@ -345,6 +358,7 @@ abstract class ModeleAccountancyCode
             return $s;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Set accountancy account code for a third party into this->code
          *
    @@ -355,7 +369,8 @@ abstract class ModeleAccountancyCode
          */
         function get_code($db, $societe, $type='')
         {
    -	    global $langs;
    +        // phpcs:enable
    +        global $langs;
     
             return $langs->trans("NotAvailable");
         }
    @@ -363,6 +378,7 @@ abstract class ModeleAccountancyCode
     
     
     
    +// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     /**
      *  Create a document onto disk according to template module.
      *
    @@ -380,6 +396,7 @@ abstract class ModeleAccountancyCode
      */
     function thirdparty_doc_create(DoliDB $db, Societe $object, $message, $modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0)
     {
    +    // phpcs:enable
     	dol_syslog(__METHOD__ . " is deprecated", LOG_WARNING);
     
     	return $object->generateDocument($modele, $outputlangs, $hidedetails, $hidedesc, $hideref);
    diff --git a/htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php b/htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php
    index 4b4a902cb96..c9c4350e050 100644
    --- a/htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php
    +++ b/htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php
    @@ -1,6 +1,7 @@
     <?php
     /* Copyright (C) 2010-2012 	Laurent Destailleur <eldy@stocks.sourceforge.net>
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
     *
     * 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
    @@ -36,10 +37,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
      */
     class doc_generic_stock_odt extends ModelePDFStock
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +   * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +   */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -49,10 +63,10 @@ class doc_generic_stock_odt extends ModelePDFStock
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT templates";
    @@ -94,10 +108,10 @@ class doc_generic_stock_odt extends ModelePDFStock
     	 */
     	function info($langs)
     	{
    -		global $conf,$langs;
    +		global $conf, $langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("errors","companies"));
     
     		$form = new Form($this->db);
     
    @@ -191,6 +205,7 @@ class doc_generic_stock_odt extends ModelePDFStock
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -204,6 +219,7 @@ class doc_generic_stock_odt extends ModelePDFStock
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $stock,$langs,$conf,$mysoc,$hookmanager,$user;
     
     		if (empty($srctemplatepath))
    @@ -225,10 +241,9 @@ class doc_generic_stock_odt extends ModelePDFStock
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills"));
    +
     		if ($conf->produit->dir_output)
     		{
     			// If $object is id instead of object
    @@ -354,6 +369,7 @@ class doc_generic_stock_odt extends ModelePDFStock
     				catch(Exception $e)
     				{
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_INFO);
     					return -1;
     				}
     				// After construction $odfHandler->contentXml contains content and
    @@ -368,8 +384,9 @@ class doc_generic_stock_odt extends ModelePDFStock
     				try {
     					$odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8');
     				}
    -				catch(OdfException $e)
    +				catch (OdfException $e)
     				{
    +					dol_syslog($e->getMessage(), LOG_INFO);
     				}
     
     				// Define substitution array
    @@ -404,8 +421,9 @@ class doc_generic_stock_odt extends ModelePDFStock
     							$odfHandler->setVars($key, $value, true, 'UTF-8');
     						}
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     				// Replace tags of lines
    @@ -428,9 +446,11 @@ class doc_generic_stock_odt extends ModelePDFStock
     								}
     								catch(OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     								catch(SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlines->merge();
    @@ -454,6 +474,7 @@ class doc_generic_stock_odt extends ModelePDFStock
     					}
     					catch(OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -465,16 +486,18 @@ class doc_generic_stock_odt extends ModelePDFStock
     				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
     				else {
     					try {
     					$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
    @@ -499,6 +522,4 @@ class doc_generic_stock_odt extends ModelePDFStock
     
     		return -1;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/stock/doc/pdf_standard.modules.php b/htdocs/core/modules/stock/doc/pdf_standard.modules.php
    index 5825bd693f5..ce01124211a 100644
    --- a/htdocs/core/modules/stock/doc/pdf_standard.modules.php
    +++ b/htdocs/core/modules/stock/doc/pdf_standard.modules.php
    @@ -58,9 +58,9 @@ class pdf_standard extends ModelePDFStock
     
     	/**
          * @var array() Minimum version of PHP required by module.
    -	 * e.g.: PHP ≥ 5.3 = array(5, 3)
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
          */
    -	public $phpmin = array(5, 2);
    +	public $phpmin = array(5, 4);
     
     	/**
          * Dolibarr version of the loaded document
    @@ -68,15 +68,46 @@ class pdf_standard extends ModelePDFStock
          */
     	public $version = 'dolibarr';
     
    +    /**
    +     * @var int page_largeur
    +     */
         public $page_largeur;
    +
    +    /**
    +     * @var int page_hauteur
    +     */
         public $page_hauteur;
    +
    +    /**
    +     * @var array format
    +     */
         public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
     	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
     	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
     	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
     	public $marge_basse;
     
    -    public $emetteur;	// Objet societe qui emet
    +    /**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
     
     	/**
    @@ -88,8 +119,8 @@ class pdf_standard extends ModelePDFStock
     	{
     		global $conf,$langs,$mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load traductions files requiredby by page
    +		$langs->loadLangs(array("main", "companies"));
     
     		$this->db = $db;
     		$this->name = "standard";
    @@ -114,12 +145,12 @@ class pdf_standard extends ModelePDFStock
     		// Recupere emetteur
     		$this->emetteur=$mysoc;
     		if (! $this->emetteur->country_code) $this->emetteur->country_code=substr($langs->defaultlang,-2);    // By default if not defined
    -		
    +
     		// Define position of columns
     		$this->wref = 15;
     		$this->posxdesc=$this->marge_gauche+1;
     		$this->posxlabel=$this->posxdesc+$this->wref;
    -		$this->posxtva=80;		
    +		$this->posxtva=80;
     		$this->posxqty=95;
     		$this->posxup=115;
     		$this->posxunit=135;
    @@ -146,6 +177,7 @@ class pdf_standard extends ModelePDFStock
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -159,19 +191,15 @@ class pdf_standard extends ModelePDFStock
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$db,$hookmanager;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("stocks");
    -		$outputlangs->load("orders");
    -		$outputlangs->load("deliveries");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills", "stocks", "orders", "deliveries"));
     
     		$nblignes = count($object->lines);
     
    @@ -193,7 +221,7 @@ class pdf_standard extends ModelePDFStock
     			$stockFournisseur = new ProductFournisseur($this->db);
     			$supplierprices = $stockFournisseur->list_product_fournisseur_price($object->id);
     			$object->supplierprices = $supplierprices;
    -			
    +
     			$productstatic=new Product($db);
     
     			if (! file_exists($dir))
    @@ -273,8 +301,8 @@ class pdf_standard extends ModelePDFStock
     				/* Affichage de la liste des produits de l'entrepot                           */
     				/*                                                                            */
     				/* ************************************************************************** */
    -				
    -				$nexY+=5;				
    +
    +				$nexY+=5;
     				$nexY = $pdf->GetY();
     				$nexY+=10;
     
    @@ -316,7 +344,7 @@ class pdf_standard extends ModelePDFStock
     								if ($objtp->label != '') $objp->produit = $objtp->label;
     							}
     						}
    -						
    +
     						$curY = $nexY;
     						$pdf->SetFont('','', $default_font_size - 1);   // Into loop to work with multipage
     						$pdf->SetTextColor(0,0,0);
    @@ -324,7 +352,7 @@ class pdf_standard extends ModelePDFStock
     						$pdf->setTopMargin($tab_top_newpage);
     						$pdf->setPageOrientation('', 1, $heightforfooter+$heightforfreetext+$heightforinfotot);	// The only function to edit the bottom margin of current page to set it.
     						$pageposbefore=$pdf->getPage();
    -						
    +
     						// Description of product line
     						$curX = $this->posxdesc-1;
     
    @@ -377,13 +405,13 @@ class pdf_standard extends ModelePDFStock
     						}
     
     						$pdf->SetFont('','',  $default_font_size - 1);   // On repositionne la police par defaut
    -						
    +
     						$productstatic->id=$objp->rowid;
     						$productstatic->ref = $objp->ref;
     						$productstatic->label = $objp->produit;
     						$productstatic->type=$objp->type;
     						$productstatic->entity=$objp->entity;
    -						$productstatic->status_batch=$objp->tobatch;	
    +						$productstatic->status_batch=$objp->tobatch;
     
     						// Ref.
     						$pdf->SetXY($this->posxdesc, $curY);
    @@ -396,12 +424,12 @@ class pdf_standard extends ModelePDFStock
     						// Quantity
     						$valtoshow=price2num($objp->value, 'MS');
     						$towrite = (empty($valtoshow)?'0':$valtoshow);
    -						
    +
     						$pdf->SetXY($this->posxqty, $curY);
    -						$pdf->MultiCell($this->posxup-$this->posxqty-0.8, 3, $towrite, 0, 'R');				
    -						
    +						$pdf->MultiCell($this->posxup-$this->posxqty-0.8, 3, $towrite, 0, 'R');
    +
     						$totalunit+=$objp->value;
    -							
    +
     						$pdf->SetXY($this->posxup, $curY);
     						$pdf->MultiCell($this->posxunit-$this->posxup-0.8, 3, price(price2num($objp->ppmp,'MU'), 0, $outputlangs), 0, 'R');
     
    @@ -434,7 +462,7 @@ class pdf_standard extends ModelePDFStock
     						}
     
     						$nexY+=2;    // Passe espace entre les lignes
    -						
    +
     						// Detect if some page were added automatically and output _tableau for past pages
     						while ($pagenb < $pageposafter)
     						{
    @@ -471,20 +499,20 @@ class pdf_standard extends ModelePDFStock
     							if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
     						}
     					}
    -					
    +
     					$db->free($resql);
    -					
    +
     					/**
     					 * footer table
     					 */
     					$nexY = $pdf->GetY();
     					$nexY+=2;
    -					$curY = $nexY;					
    -					
    -					$pdf->SetLineStyle(array('dash'=>'0','color'=>array(220,26,26)));					
    +					$curY = $nexY;
    +
    +					$pdf->SetLineStyle(array('dash'=>'0','color'=>array(220,26,26)));
     					$pdf->line($this->marge_gauche, $curY-1, $this->page_largeur-$this->marge_droite, $curY-1);
     					$pdf->SetLineStyle(array('dash'=>0));
    -					
    +
     					$pdf->SetFont('','B',$default_font_size-1);
     					$pdf->SetTextColor(0,0,120);
     
    @@ -492,7 +520,7 @@ class pdf_standard extends ModelePDFStock
     					$pdf->SetXY($this->posxdesc, $curY);
     					$pdf->MultiCell($this->wref, 3, $langs->trans("Total"), 0, 'L');
     
    -					// Quantity				
    +					// Quantity
     					$valtoshow=price2num($totalunit, 'MS');
     					$towrite = empty($valtoshow)?'0':$valtoshow;
     
    @@ -741,8 +769,8 @@ class pdf_standard extends ModelePDFStock
     					}
     				}
     				*/
    -				$tab_top = $tab_top_newpage+21;               
    -				
    +				$tab_top = $tab_top_newpage+21;
    +
     				// Show square
     				if ($pagenb == 1)
     				{
    @@ -754,7 +782,7 @@ class pdf_standard extends ModelePDFStock
     					$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0, $object->multicurrency_code);
     					$bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1;
     				}
    -				
    +
     				$bottomlasttab=$this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1;
     
     				// Affiche zone infos
    @@ -841,21 +869,21 @@ class pdf_standard extends ModelePDFStock
     
     	    // Output Rect
     	    //$this->printRect($pdf,$this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height, $hidetop, $hidebottom);	// Rect prend une longueur en 3eme param et 4eme param
    -		
    +
     		$pdf->SetLineStyle(array('dash'=>'0','color'=>array(220,26,26)));
    -		$pdf->SetDrawColor(220,26,26);	
    +		$pdf->SetDrawColor(220,26,26);
     		$pdf->line($this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_droite, $tab_top);
     		$pdf->SetLineStyle(array('dash'=>0));
     		$pdf->SetDrawColor(128,128,128);
     		$pdf->SetTextColor(0,0,120);
    -		
    +
     	    if (empty($hidetop))
     	    {
     	        //$pdf->line($this->marge_gauche, $tab_top+5, $this->page_largeur-$this->marge_droite, $tab_top+5);	// line prend une position y en 2eme param et 4eme param
     	        $pdf->SetXY($this->posxdesc-1, $tab_top+1);
     	        $pdf->MultiCell($this->wref,3, $outputlangs->transnoentities("Ref"),'','L');
     	    }
    -	        
    +
     		//$pdf->line($this->posxlabel-1, $tab_top, $this->posxlabel-1, $tab_top + $tab_height);
     		if (empty($hidetop))
     		{
    @@ -865,7 +893,7 @@ class pdf_standard extends ModelePDFStock
     
     	    //$pdf->line($this->posxqty-1, $tab_top, $this->posxqty-1, $tab_top + $tab_height);
     	    if (empty($hidetop))
    -	    {	
    +	    {
     	        $pdf->SetXY($this->posxqty-1, $tab_top+1);
     	        $pdf->MultiCell($this->posxup-$this->posxqty-1,2, $outputlangs->transnoentities("Units"),'','C');
     	    }
    @@ -878,7 +906,7 @@ class pdf_standard extends ModelePDFStock
     	    }
     
     		//$pdf->line($this->posxunit - 1, $tab_top, $this->posxunit - 1, $tab_top + $tab_height);
    -		if (empty($hidetop)) 
    +		if (empty($hidetop))
     		{
     			$pdf->SetXY($this->posxunit - 1, $tab_top + 1);
     			$pdf->MultiCell($this->posxdiscount - $this->posxunit - 1, 2, $outputlangs->transnoentities("EstimatedStockValueShort"), '',
    @@ -892,18 +920,17 @@ class pdf_standard extends ModelePDFStock
     			$pdf->MultiCell($this->postotalht-$this->posxdiscount+1,2, $outputlangs->transnoentities("SellPriceMin"),'','C');
     	    }
     
    -	    //$pdf->line($this->postotalht, $tab_top, $this->postotalht, $tab_top + $tab_height);	   
    +	    //$pdf->line($this->postotalht, $tab_top, $this->postotalht, $tab_top + $tab_height);
     	    if (empty($hidetop))
     	    {
     	        $pdf->SetXY($this->postotalht-1, $tab_top+1);
     	        $pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalht,2, $outputlangs->transnoentities("EstimatedStockValueSellShort"),'','C');
     	    }
    -		
    -		$pdf->SetDrawColor(220,26,26);	
    +
    +		$pdf->SetDrawColor(220,26,26);
     		$pdf->SetLineStyle(array('dash'=>'0','color'=>array(220,26,26)));
    -		$pdf->line($this->marge_gauche, $tab_top+11, $this->page_largeur-$this->marge_droite, $tab_top+11);	 
    +		$pdf->line($this->marge_gauche, $tab_top+11, $this->page_largeur-$this->marge_droite, $tab_top+11);
     		$pdf->SetLineStyle(array('dash'=>0));
    -		
     	}
     
     	/**
    @@ -920,12 +947,9 @@ class pdf_standard extends ModelePDFStock
     	{
     	    global $conf,$langs,$db,$hookmanager;
     
    -	    $outputlangs->load("main");
    -	    $outputlangs->load("bills");
    -	    $outputlangs->load("propal");
    -	    $outputlangs->load("companies");
    -	    $outputlangs->load("orders");
    -	    $outputlangs->load("stocks");
    +	    // Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "propal", "companies", "bills", "orders", "stocks"));
    +
     	    $default_font_size = pdf_getPDFFontSize($outputlangs);
     
     	    if ($object->type == 1) $titlekey='ServiceSheet';
    @@ -969,7 +993,7 @@ class pdf_standard extends ModelePDFStock
     	        $text=$this->emetteur->name;
     	        $pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
     	    }
    -		
    +
     	    $pdf->SetFont('','B', $default_font_size + 3);
     	    $pdf->SetXY($posx,$posy);
     	    $pdf->SetTextColor(0,0,60);
    @@ -989,22 +1013,22 @@ class pdf_standard extends ModelePDFStock
     		$pdf->SetXY($posx,$posy);
     	    $pdf->SetTextColor(0,0,60);
     	    $pdf->MultiCell(100, 3, $outputlangs->transnoentities("LocationSummary").' :', '', 'R');
    -		
    +
     		$posy+=4;
     		$pdf->SetXY($posx-50,$posy);
     		$pdf->MultiCell(150, 3, $object->lieu, '', 'R');
    -		
    -		
    +
    +
     		// Parent entrepot
     		$posy+=4;
     		$pdf->SetXY($posx,$posy);
     		$pdf->SetTextColor(0,0,60);
     		$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ParentWarehouse").' :', '', 'R');
    -		
    +
     		$posy+=4;
     		$pdf->SetXY($posx-50,$posy);
     		$e = new Entrepot($db);
    -		if(!empty($object->fk_parent) && $e->fetch($object->fk_parent) > 0) 
    +		if(!empty($object->fk_parent) && $e->fetch($object->fk_parent) > 0)
     		{
     			$pdf->MultiCell(150, 3, $e->libelle, '', 'R');
     		}
    @@ -1012,14 +1036,14 @@ class pdf_standard extends ModelePDFStock
     		{
     			$pdf->MultiCell(150, 3, $outputlangs->transnoentities("None"), '', 'R');
     		}
    -		
    +
     		// Description
     		$nexY = $pdf->GetY();
     		$nexY+=5;
     		$pdf->SetXY($posx,$posy);
     		$pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, '<b>'.$outputlangs->transnoentities("Description").' : </b>'.nl2br($object->description), 0, 1);
     		$nexY = $pdf->GetY();
    -		
    +
     		$calcproductsunique=$object->nb_different_products();
     		$calcproducts=$object->nb_products();
     
    @@ -1031,12 +1055,12 @@ class pdf_standard extends ModelePDFStock
     		$valtoshow=price2num($calcproducts['nb'], 'MS');
     		$pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, '<b>'.$outputlangs->transnoentities("NumberOfProducts").' : </b>'.(empty($valtoshow)?'0':$valtoshow), 0, 1);
     		$nexY = $pdf->GetY();
    -		
    +
     		// Value
     		$pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, '<b>'.$outputlangs->transnoentities("EstimatedStockValueShort").' : </b>'. price((empty($calcproducts['value'])?'0':price2num($calcproducts['value'],'MT')), 0, $langs, 0, -1, -1, $conf->currency), 0, 1);
     		$nexY = $pdf->GetY();
    -		
    -		
    +
    +
     		// Last movement
     		$sql = "SELECT max(m.datem) as datem";
     		$sql .= " FROM ".MAIN_DB_PREFIX."stock_mouvement as m";
    @@ -1064,7 +1088,7 @@ class pdf_standard extends ModelePDFStock
     		$pdf->writeHTMLCell(190, 2, $this->marge_gauche, $nexY, '<b>'.$outputlangs->transnoentities("LastMovement").' : </b>'.$toWrite, 0, 1);
     		$nexY = $pdf->GetY();
     
    -		
    +
     	    /*if ($object->ref_client)
     	    {
     	        $posy+=5;
    @@ -1153,6 +1177,4 @@ class pdf_standard extends ModelePDFStock
     	    $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     	    return pdf_pagefoot($pdf,$outputlangs,'PRODUCT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php
    index f8844a275e5..3ea7e184e35 100644
    --- a/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php
    +++ b/htdocs/core/modules/stock/doc/pdf_stdmovement.modules.php
    @@ -59,9 +59,9 @@ class pdf_stdmovement extends ModelePDFMovement
     
     	/**
          * @var array() Minimum version of PHP required by module.
    -	 * e.g.: PHP ≥ 5.3 = array(5, 3)
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
          */
    -	public $phpmin = array(5, 2);
    +	public $phpmin = array(5, 4);
     
     	/**
          * Dolibarr version of the loaded document
    @@ -69,15 +69,46 @@ class pdf_stdmovement extends ModelePDFMovement
          */
     	public $version = 'dolibarr';
     
    +    /**
    +     * @var int page_largeur
    +     */
         public $page_largeur;
    +
    +    /**
    +     * @var int page_hauteur
    +     */
         public $page_hauteur;
    +
    +    /**
    +     * @var array format
    +     */
         public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
     	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
     	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
     	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
     	public $marge_basse;
     
    -    public $emetteur;	// Objet societe qui emet
    +    /**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
     
     	/**
    @@ -89,8 +120,8 @@ class pdf_stdmovement extends ModelePDFMovement
     	{
     		global $conf,$langs,$mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load traductions files requiredby by page
    +		$langs->loadLangs(array("main", "companies"));
     
     		$this->db = $db;
     		$this->name = "stdmouvement";
    @@ -119,7 +150,7 @@ class pdf_stdmovement extends ModelePDFMovement
     		// Define position of columns
     		$this->wref = 15;
     		$this->posxidref = $this->marge_gauche;
    -		$this->posxdatemouv = $this->marge_gauche+8;;
    +		$this->posxdatemouv = $this->marge_gauche+8;
     		$this->posxdesc=37;
     		$this->posxlabel=50;
     		$this->posxtva=80;
    @@ -149,6 +180,7 @@ class pdf_stdmovement extends ModelePDFMovement
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -162,19 +194,15 @@ class pdf_stdmovement extends ModelePDFMovement
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$db,$hookmanager;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("stocks");
    -		$outputlangs->load("orders");
    -		$outputlangs->load("deliveries");
    +		// Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills", "stocks", "orders", "deliveries"));
     
     	/**
     	 * TODO: get from object
    @@ -219,7 +247,7 @@ class pdf_stdmovement extends ModelePDFMovement
     
     		// fetch optionals attributes and labels
     		$extralabels = $extrafields->fetch_name_optionals_label('movement');
    -		$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +		$search_array_options=$extrafields->getOptionalsFromPost('movement','','search_');
     
     		$productlot=new ProductLot($db);
     		$productstatic=new Product($db);
    @@ -685,7 +713,6 @@ class pdf_stdmovement extends ModelePDFMovement
     					// Total Qty
     					$pdf->SetXY($this->postotalht, $curY);
     					$pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalht, 3, $totalunit, 0, 'R', 0);
    -
     				}
     				else
     				{
    @@ -905,7 +932,6 @@ class pdf_stdmovement extends ModelePDFMovement
     		$pdf->SetLineStyle(array('dash'=>'0','color'=>array(220,26,26)));
     		$pdf->line($this->marge_gauche, $tab_top+11, $this->page_largeur-$this->marge_droite, $tab_top+11);
     		$pdf->SetLineStyle(array('dash'=>0));
    -
     	}
     
     	/**
    @@ -922,12 +948,9 @@ class pdf_stdmovement extends ModelePDFMovement
     	{
     	    global $conf,$langs,$db,$hookmanager;
     
    -	    $outputlangs->load("main");
    -	    $outputlangs->load("bills");
    -	    $outputlangs->load("propal");
    -	    $outputlangs->load("companies");
    -	    $outputlangs->load("orders");
    -	    $outputlangs->load("stocks");
    +	    // Load traductions files requiredby by page
    +		$outputlangs->loadLangs(array("main", "propal", "companies", "bills", "orders", "stocks"));
    +
     	    $default_font_size = pdf_getPDFFontSize($outputlangs);
     
     	    if ($object->type == 1) $titlekey='ServiceSheet';
    @@ -1155,6 +1178,4 @@ class pdf_stdmovement extends ModelePDFMovement
     	    $showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     	    return pdf_pagefoot($pdf,$outputlangs,'PRODUCT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/stock/modules_movement.php b/htdocs/core/modules/stock/modules_movement.php
    index 806f500dab7..33672e415ea 100644
    --- a/htdocs/core/modules/stock/modules_movement.php
    +++ b/htdocs/core/modules/stock/modules_movement.php
    @@ -30,9 +30,13 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     abstract class ModelePDFMovement extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of active generation modules
     	 *
    @@ -42,6 +46,7 @@ abstract class ModelePDFMovement extends CommonDocGenerator
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='mouvement';
    @@ -50,4 +55,4 @@ abstract class ModelePDFMovement extends CommonDocGenerator
     		$liste=getListOfModels($db,$type,$maxfilenamelength);
     		return $liste;
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/core/modules/stock/modules_stock.php b/htdocs/core/modules/stock/modules_stock.php
    index a0740b50f54..a74df6198ce 100644
    --- a/htdocs/core/modules/stock/modules_stock.php
    +++ b/htdocs/core/modules/stock/modules_stock.php
    @@ -23,18 +23,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     abstract class ModelePDFStock extends CommonDocGenerator
     {
    -    var $error='';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return list of active generation modules
          *
    -	 * 	@param	DoliDB		$db					Database handler
    +     * 	@param	DoliDB		$db					Database handler
          *  @param	integer		$maxfilenamelength  Max length of value to show
          * 	@return	array							List of templates
          */
         static function liste_modeles($db,$maxfilenamelength=0)
         {
    +        // phpcs:enable
             global $conf;
     
             $type='stock';
    diff --git a/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_cactus.php b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_cactus.php
    index 2eaa85261d0..908b3c8ba41 100644
    --- a/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_cactus.php
    +++ b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_cactus.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2013      Philippe Grand       <philippe.grand@atoo-net.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
    + * Copyright (C) 2013-2018 Philippe Grand       <philippe.grand@atoo-net.com>
      * Copyright (C) 2016      Alexandre Spangaro   <aspangaro@zendsi.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -33,12 +33,34 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_invoice/modules_facturef
      */
     class mod_facture_fournisseur_cactus extends ModeleNumRefSuppliersInvoices
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Cactus';
    -	var $prefixinvoice='SI';
    -	var $prefixcreditnote='SA';
    -	var $prefixdeposit='SD';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +     * @var string Error code (or message)
    +     */
    +    public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Cactus';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Cactus';
    +
    +	public $prefixinvoice='SI';
    +
    +	public $prefixcreditnote='SA';
    +
    +	public $prefixdeposit='SD';
     
     
         /**
    diff --git a/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php
    index 7c595fe4e9d..a3cb291263a 100644
    --- a/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php
    +++ b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php
    @@ -1,8 +1,8 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2013      Philippe Grand       <philippe.grand@atoo-net.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
    + * Copyright (C) 2013-2018 Philippe Grand       <philippe.grand@atoo-net.com>
      * Copyright (C) 2013      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2016      Alexandre Spangaro   <aspangaro@zendsi.com>
      *
    @@ -36,9 +36,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_invoice/modules_facturef
     */
     class mod_facture_fournisseur_tulip extends ModeleNumRefSuppliersInvoices
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Tulip';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +     * @var string Error code (or message)
    +     */
    +    public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Tulip';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Tulip';
     
     
         /**
    @@ -48,10 +67,10 @@ class mod_facture_fournisseur_tulip extends ModeleNumRefSuppliersInvoices
          */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
    -		$langs->load("bills");
    -		$langs->load("admin");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("bills","admin"));
     
     		$form = new Form($this->db);
     
    diff --git a/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php b/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php
    index 7762d8ce6a5..d1b28ebd0bd 100644
    --- a/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php
    +++ b/htdocs/core/modules/supplier_invoice/modules_facturefournisseur.php
    @@ -1,8 +1,8 @@
     <?php
    -/* Copyright (C) 2010	Juanjo Menent	<jmenent@2byte.es>
    - * Copyright (C) 2012	Regis Houssin	<regis.houssin@capnetworks.com>
    - * Copyright (C) 2013-2016   Philippe Grand  <philippe.grand@atoo-net.com>
    - * Copyright (C) 2014   Marcos García   <marcosgdf@gmail.com>
    +/* Copyright (C) 2010       Juanjo Menent       <jmenent@2byte.es>
    + * Copyright (C) 2012       Regis Houssin       <regis.houssin@inodbox.com>
    + * Copyright (C) 2013-2016  Philippe Grand      <philippe.grand@atoo-net.com>
    + * Copyright (C) 2014       Marcos García       <marcosgdf@gmail.com>
      *
      * 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
    @@ -34,9 +34,13 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';	// requir
      */
     abstract class ModelePDFSuppliersInvoices extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation models
     	 *
    @@ -44,19 +48,19 @@ abstract class ModelePDFSuppliersInvoices extends CommonDocGenerator
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of numbers
     	 */
    -	static function liste_modeles($db,$maxfilenamelength=0)
    +	static function liste_modeles($db, $maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
    -		$type='invoice_supplier';
    -		$liste=array();
    +		$type = 'invoice_supplier';
    +		$list = array();
     
     		include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    -		$liste=getListOfModels($db,$type,$maxfilenamelength);
    +		$list = getListOfModels($db, $type, $maxfilenamelength);
     
    -		return $liste;
    +		return $list;
     	}
    -
     }
     
     /**
    @@ -64,7 +68,10 @@ abstract class ModelePDFSuppliersInvoices extends CommonDocGenerator
      */
     abstract class ModeleNumRefSuppliersInvoices
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**  Return if a model can be used or not
     	 *
    diff --git a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php
    index e393245eb25..f44240daa83 100644
    --- a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php
    +++ b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php
    @@ -37,23 +37,79 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
      */
     class pdf_canelle extends ModelePDFSuppliersInvoices
     {
    -    var $db;
    -    var $name;
    -    var $description;
    -    var $type;
    +    /**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
     
    -    var $phpmin = array(4,3,0); // Minimum version of PHP required by module
    -    var $version = 'dolibarr';
    +	/**
    +     * @var string model name
    +     */
    +    public $name;
     
    -    var $page_largeur;
    -    var $page_hauteur;
    -    var $format;
    -	var $marge_gauche;
    -	var	$marge_droite;
    -	var	$marge_haute;
    -	var	$marge_basse;
    +	/**
    +     * @var string model description (short text)
    +     */
    +    public $description;
    +
    +    /**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +    /**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +     * @var int page_largeur
    +     */
    +    public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
    +    public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
    +    public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
    +	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
    +	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
    +	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
    +	public $marge_basse;
    +
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
    -	var $emetteur;	// Objet societe qui emet
     
     
     	/**
    @@ -63,9 +119,9 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		// Translations
    +		// Load translation files required by the page
     		$langs->loadLangs(array("main", "bills"));
     
     		$this->db = $db;
    @@ -127,6 +183,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *  Function to build pdf onto disk
          *
    @@ -137,9 +194,10 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
          *  @param		int					$hidedesc			Do not show desc
          *  @param		int					$hideref			Do not show ref
          *  @return		int										1=OK, 0=KO
    -	 */
    +     */
     	function write_file($object, $outputlangs='', $srctemplatepath='', $hidedetails=0, $hidedesc=0, $hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$hookmanager,$nblignes;
     
     		// Get source company
    @@ -152,11 +210,8 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("products");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products"));
     
     		if ($conf->fournisseur->facture->dir_output)
     		{
    @@ -188,7 +243,6 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
     					$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
     					return 0;
     				}
    -
     			}
     
     			if (file_exists($dir))
    @@ -551,6 +605,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show total to pay
     	 *
    @@ -563,6 +618,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
     	 */
     	function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf,$mysoc;
     
             $default_font_size = pdf_getPDFFontSize($outputlangs);
    @@ -869,9 +925,9 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
     			$pdf->SetXY($this->postotalht-1, $tab_top+1);
     			$pdf->MultiCell(30,2, $outputlangs->transnoentities("TotalHTShort"),'','C');
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Show payments table
     	 *
    @@ -883,6 +939,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
     	 */
     	function _tableau_versements(&$pdf, $object, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$sign=1;
    @@ -961,7 +1018,6 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
     			$this->error=$this->db->lasterror();
     			return -1;
     		}
    -
     	}
     
     	/**
    @@ -975,12 +1031,11 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
     	 */
     	function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
     	{
    -		global $langs,$conf,$mysoc;
    +		global $langs, $conf, $mysoc;
    +
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "orders", "companies", "bills"));
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("orders");
    -		$outputlangs->load("companies");
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
     		// Do not add the BACKGROUND as this is for suppliers
    @@ -1193,5 +1248,4 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'SUPPLIER_INVOICE_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    diff --git a/htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php b/htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php
    index a39e7d004be..4b599a1f769 100644
    --- a/htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php
    +++ b/htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -31,10 +31,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_order/modules_commandefo
      */
     class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Muguet';
    -	var $prefix='CF';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +     * @var string Error code (or message)
    +     */
    +    public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Muguet';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Muguet';
    +
    +	public $prefix='CF';
     
     
     	/**
    @@ -143,6 +163,7 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Renvoie la reference de commande suivante non utilisee
          *
    @@ -152,7 +173,7 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
          */
         function commande_get_num($objsoc=0,$object='')
         {
    +        // phpcs:enable
             return $this->getNextValue($objsoc,$object);
         }
     }
    -
    diff --git a/htdocs/core/modules/supplier_order/mod_commande_fournisseur_orchidee.php b/htdocs/core/modules/supplier_order/mod_commande_fournisseur_orchidee.php
    index 37b8adab22e..3c8af4cd5a0 100644
    --- a/htdocs/core/modules/supplier_order/mod_commande_fournisseur_orchidee.php
    +++ b/htdocs/core/modules/supplier_order/mod_commande_fournisseur_orchidee.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -32,9 +32,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_order/modules_commandefo
      */
     class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Orchidee';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +     * @var string Error code (or message)
    +     */
    +    public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Orchidee';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Orchidee';
     
     
         /**
    @@ -44,10 +63,10 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
          */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
    -		$langs->load("bills");
    -		$langs->load("admin");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("bills","admin"));
     
     		$form = new Form($this->db);
     
    @@ -127,6 +146,7 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Renvoie la reference de commande suivante non utilisee
          *
    @@ -136,7 +156,7 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
          */
         function commande_get_num($objsoc=0,$object='')
         {
    +        // phpcs:enable
             return $this->getNextValue($objsoc,$object);
         }
     }
    -
    diff --git a/htdocs/core/modules/supplier_order/modules_commandefournisseur.php b/htdocs/core/modules/supplier_order/modules_commandefournisseur.php
    index 4bd262d67fb..7a6c7d4972d 100644
    --- a/htdocs/core/modules/supplier_order/modules_commandefournisseur.php
    +++ b/htdocs/core/modules/supplier_order/modules_commandefournisseur.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2005 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
      * Copyright (C) 2011-2016 Philippe Grand       <philippe.grand@atoo-net.com>
      * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
    @@ -37,9 +37,13 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';	// requir
      */
     abstract class ModelePDFSuppliersOrders extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation models
     	 *
    @@ -49,6 +53,7 @@ abstract class ModelePDFSuppliersOrders extends CommonDocGenerator
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +		// phpcs:enable
     		global $conf;
     
     		$type='order_supplier';
    @@ -59,7 +64,6 @@ abstract class ModelePDFSuppliersOrders extends CommonDocGenerator
     
     		return $liste;
     	}
    -
     }
     
     
    @@ -69,7 +73,10 @@ abstract class ModelePDFSuppliersOrders extends CommonDocGenerator
      */
     abstract class ModeleNumRefSuppliersOrders
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**  Return if a model can be used or not
     	 *
    diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php
    index 32501ff3ed2..06cf28daaed 100644
    --- a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php
    +++ b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2014 Laurent Destailleur   <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
      * Copyright (C) 2010-2014 Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    @@ -41,23 +41,78 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
      */
     class pdf_muscadet extends ModelePDFSuppliersOrders
     {
    -    var $db;
    -    var $name;
    -    var $description;
    -    var $type;
    +    /**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
     
    -    var $phpmin = array(4,3,0); // Minimum version of PHP required by module
    -    var $version = 'dolibarr';
    +	/**
    +     * @var string model name
    +     */
    +    public $name;
     
    -    var $page_largeur;
    -    var $page_hauteur;
    -    var $format;
    -	var $marge_gauche;
    -	var	$marge_droite;
    -	var	$marge_haute;
    -	var	$marge_basse;
    +	/**
    +     * @var string model description (short text)
    +     */
    +    public $description;
     
    -	var $emetteur;	// Objet societe qui emet
    +    /**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +    /**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +     * @var int page_largeur
    +     */
    +    public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
    +    public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
    +    public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
    +	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
    +	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
    +	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
    +	public $marge_basse;
    +
    +	/**
    +	 * Issuer
    +	 * @var Company object that emits
    +	 */
    +	public $emetteur;
     
     
     	/**
    @@ -67,9 +122,9 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		// Translations
    +		// Load translation files required by the page
     		$langs->loadLangs(array("main", "bills"));
     
     		$this->db = $db;
    @@ -142,6 +197,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Function to build pdf onto disk
          *
    @@ -155,18 +211,15 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
          */
     	function write_file($object,$outputlangs='',$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$hookmanager,$mysoc,$nblignes;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("products");
    -		$outputlangs->load("orders");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "orders", "companies", "bills", "dict", "products"));
     
     		$nblignes = count($object->lines);
     
    @@ -238,7 +291,6 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
     					$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
     					return 0;
     				}
    -
     			}
     
     			if (file_exists($dir))
    @@ -651,6 +703,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Show payments table
     	 *
    @@ -662,10 +715,11 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
     	 */
     	function _tableau_versements(&$pdf, $object, $posy, $outputlangs)
     	{
    -
    +        // phpcs:enable
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Show miscellaneous information (payment mode, payment term, ...)
     	 *
    @@ -677,6 +731,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
     	 */
     	function _tableau_info(&$pdf, $object, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     	    global $conf;
     	    $default_font_size = pdf_getPDFFontSize($outputlangs);
     
    @@ -729,10 +784,11 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
     		return $posy;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 *	Show total to pay
    +	 *  Show total to pay
     	 *
    -	 *	@param	PDF			$pdf           Object PDF
    +	 *  @param	PDF			$pdf           Object PDF
     	 *	@param  Facture		$object         Object invoice
     	 *	@param  int			$deja_regle     Montant deja regle
     	 *	@param	int			$posy			Position depart
    @@ -741,6 +797,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
     	 */
     	function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf,$mysoc;
     
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
    @@ -1066,13 +1123,10 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
     	 */
     	function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
     	{
    -		global $langs,$conf,$mysoc;
    +		global $langs, $conf, $mysoc;
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("orders");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("sendings");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "orders", "companies", "bills", "sendings"));
     
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
    @@ -1318,5 +1372,4 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'SUPPLIER_ORDER_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    diff --git a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php
    index 83a4dda94b3..5eeedb9dcfc 100644
    --- a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php
    +++ b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php
    @@ -38,23 +38,78 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functionsnumtoword.lib.php';
      */
     class pdf_standard extends ModelePDFSuppliersPayments
     {
    -    var $db;
    -    var $name;
    -    var $description;
    -    var $type;
    +    /**
    +     * @var DoliDb Database handler
    +     */
    +    public $db;
     
    -    var $phpmin = array(4,3,0); // Minimum version of PHP required by module
    -    var $version = 'dolibarr';
    +	/**
    +     * @var string model name
    +     */
    +    public $name;
     
    -    var $page_largeur;
    -    var $page_hauteur;
    -    var $format;
    -	var $marge_gauche;
    -	var	$marge_droite;
    -	var	$marge_haute;
    -	var	$marge_basse;
    +	/**
    +     * @var string model description (short text)
    +     */
    +    public $description;
     
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +     * @var string document type
    +     */
    +    public $type;
    +
    +    /**
    +     * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +     */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';
    +
    +	/**
    +     * @var int page_largeur
    +     */
    +    public $page_largeur;
    +
    +	/**
    +     * @var int page_hauteur
    +     */
    +    public $page_hauteur;
    +
    +	/**
    +     * @var array format
    +     */
    +    public $format;
    +
    +	/**
    +     * @var int marge_gauche
    +     */
    +	public $marge_gauche;
    +
    +	/**
    +     * @var int marge_droite
    +     */
    +	public $marge_droite;
    +
    +	/**
    +     * @var int marge_haute
    +     */
    +	public $marge_haute;
    +
    +	/**
    +     * @var int marge_basse
    +     */
    +	public $marge_basse;
    +
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
     
     	/**
    @@ -64,9 +119,9 @@ class pdf_standard extends ModelePDFSuppliersPayments
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    -		
    -		// Translations
    +		global $conf, $langs, $mysoc;
    +
    +		// Load translation files required by the page
     		$langs->loadLangs(array("main", "bills"));
     
     		$this->db = $db;
    @@ -121,7 +176,8 @@ class pdf_standard extends ModelePDFSuppliersPayments
     	}
     
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *  Function to build pdf onto disk
          *
          *  @param		PaiementFourn		$object				Id of object to generate
    @@ -131,21 +187,19 @@ class pdf_standard extends ModelePDFSuppliersPayments
          *  @param		int					$hidedesc			Do not show desc
          *  @param		int					$hideref			Do not show ref
          *  @return		int										1=OK, 0=KO
    -	 */
    +     */
     	function write_file($object, $outputlangs='', $srctemplatepath='', $hidedetails=0, $hidedesc=0, $hideref=0)
     	{
    -		global $user,$langs,$conf,$mysoc,$hookmanager;
    +        // phpcs:enable
    +		global $user, $langs, $conf, $mysoc, $hookmanager;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("products");
    -		$outputlangs->load("suppliers");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "suppliers", "companies", "bills", "dict", "products"));
    +
     		$object->factures = array();
     
     		if ($conf->fournisseur->payment->dir_output)
    @@ -458,6 +512,7 @@ class pdf_standard extends ModelePDFSuppliersPayments
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show total to pay
     	 *
    @@ -469,6 +524,7 @@ class pdf_standard extends ModelePDFSuppliersPayments
     	 */
     	function _tableau_cheque(&$pdf, $object, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf,$mysoc;
     
             $default_font_size = pdf_getPDFFontSize($outputlangs);
    @@ -513,7 +569,6 @@ class pdf_standard extends ModelePDFSuppliersPayments
     		// Date
     		$pdf->SetXY($this->page_largeur - $this->marge_droite - 30, $posy);
     		$pdf->MultiCell(150, 4, date("d").' '.$outputlangs->transnoentitiesnoconv(date("F")).' '.date("Y"), 0, 'L', 1);
    -
     	}
     
     
    @@ -559,7 +614,6 @@ class pdf_standard extends ModelePDFSuppliersPayments
     
     		// Output Rect
     		//$this->printRect($pdf,$this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $tab_height, $hidetop, $hidebottom);	// Rect prend une longueur en 3eme param et 4eme param
    -
     	}
     
     
    @@ -574,12 +628,11 @@ class pdf_standard extends ModelePDFSuppliersPayments
     	 */
     	function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
     	{
    -		global $langs,$conf,$mysoc;
    +		global $langs, $conf, $mysoc;
    +
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "orders", "companies", "bills"));
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("bills");
    -		$outputlangs->load("orders");
    -		$outputlangs->load("companies");
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
     		// Do not add the BACKGROUND as this is for suppliers
    @@ -758,6 +811,4 @@ class pdf_standard extends ModelePDFSuppliersPayments
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'SUPPLIER_INVOICE_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php b/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php
    index 97c7b077b22..216bc4bde90 100644
    --- a/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php
    +++ b/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php
    @@ -30,9 +30,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_payment/modules_supplier
      */
     class mod_supplier_payment_brodator extends ModeleNumRefSupplierPayments
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Brodator';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +     * @var string Error code (or message)
    +     */
    +    public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Brodator';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Brodator';
     
     
         /**
    @@ -42,7 +61,7 @@ class mod_supplier_payment_brodator extends ModeleNumRefSupplierPayments
          */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
     		$langs->load("bills");
     
    @@ -124,6 +143,7 @@ class mod_supplier_payment_brodator extends ModeleNumRefSupplierPayments
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return next free value
     	 *
    @@ -133,8 +153,7 @@ class mod_supplier_payment_brodator extends ModeleNumRefSupplierPayments
          */
         function commande_get_num($objsoc,$objforref)
         {
    +        // phpcs:enable
             return $this->getNextValue($objsoc,$objforref);
         }
    -
     }
    -
    diff --git a/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php b/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php
    index 9b0012ec089..0d64991065a 100644
    --- a/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php
    +++ b/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php
    @@ -29,10 +29,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_payment/modules_supplier
      */
     class mod_supplier_payment_bronan extends ModeleNumRefSupplierPayments
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $prefix='SPAY';
    -	var $error='';
    -	var $nom='Bronan';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	public $prefix='SPAY';
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Bronan';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Bronan';
     
     
         /**
    @@ -135,6 +155,7 @@ class mod_supplier_payment_bronan extends ModeleNumRefSupplierPayments
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return next free value
     	 *
    @@ -144,7 +165,7 @@ class mod_supplier_payment_bronan extends ModeleNumRefSupplierPayments
     	 */
     	function payment_get_num($objsoc,$objforref)
     	{
    +        // phpcs:enable
     		return $this->getNextValue($objsoc,$objforref);
     	}
    -
     }
    diff --git a/htdocs/core/modules/supplier_payment/modules_supplier_payment.php b/htdocs/core/modules/supplier_payment/modules_supplier_payment.php
    index 56c5bd94ae0..8eb706dc0ce 100644
    --- a/htdocs/core/modules/supplier_payment/modules_supplier_payment.php
    +++ b/htdocs/core/modules/supplier_payment/modules_supplier_payment.php
    @@ -22,18 +22,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
      */
     abstract class ModelePDFSuppliersPayments extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of active generation models
     	 *
          *  @param	DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of numbers
    -	 */
    +     */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='supplier_payment';
    @@ -44,7 +49,6 @@ abstract class ModelePDFSuppliersPayments extends CommonDocGenerator
     
     		return $liste;
     	}
    -
     }
     
     /**
    @@ -54,7 +58,10 @@ abstract class ModelePDFSuppliersPayments extends CommonDocGenerator
     
     abstract class ModeleNumRefSupplierPayments
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 *	Return if a module can be used or not
    diff --git a/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php b/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php
    index a8497416501..05bfe535ac7 100644
    --- a/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php
    +++ b/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php
    @@ -2,6 +2,7 @@
     /* Copyright (C) 2010-2012 	Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
     *
     * 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
    @@ -37,10 +38,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
      */
     class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +   * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +   */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +   * Dolibarr version of the loaded document
    +   * @public string
    +   */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -50,10 +64,10 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT templates";
    @@ -95,10 +109,10 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     	 */
     	function info($langs)
     	{
    -		global $conf,$langs;
    +		global $conf, $langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array('companies', 'errors'));
     
     		$form = new Form($this->db);
     
    @@ -207,6 +221,7 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -220,7 +235,8 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    -		global $user,$langs,$conf,$mysoc,$hookmanager;
    +        // phpcs:enable
    +		global $user, $langs, $conf, $mysoc, $hookmanager;
     
     		if (empty($srctemplatepath))
     		{
    @@ -241,10 +257,8 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "companies", "bills", "dict"));
     
     		if ($conf->supplier_proposal->dir_output)
     		{
    @@ -354,16 +368,17 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     					$odfHandler = new odf(
     						$srctemplatepath,
     						array(
    -						'PATH_TO_TMP'	  => $conf->supplier_proposal->dir_temp,
    -						'ZIP_PROXY'		  => 'PclZipProxy',	// PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
    -						'DELIMITER_LEFT'  => '{',
    -						'DELIMITER_RIGHT' => '}'
    +							'PATH_TO_TMP'	  => $conf->supplier_proposal->dir_temp,
    +							'ZIP_PROXY'		  => 'PclZipProxy',	// PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
    +							'DELIMITER_LEFT'  => '{',
    +							'DELIMITER_RIGHT' => '}'
     						)
     					);
     				}
    -				catch(Exception $e)
    +				catch (Exception $e)
     				{
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_INFO);
     					return -1;
     				}
     				// After construction $odfHandler->contentXml contains content and
    @@ -377,8 +392,9 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     				try {
     					$odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8');
     				}
    -				catch(OdfException $e)
    +				catch (OdfException $e)
     				{
    +					dol_syslog($e->getMessage(), LOG_INFO);
     				}
     
     				// Define substitution array
    @@ -411,6 +427,7 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     					}
     					catch(OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     				// Replace tags of lines
    @@ -443,9 +460,11 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     								}
     								catch(OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     								catch(SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_INFO);
     								}
     							}
     							$listlines->merge();
    @@ -469,6 +488,7 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     					}
     					catch(OdfException $e)
     					{
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     					}
     				}
     
    @@ -480,16 +500,18 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
     				else {
     					try {
    -					$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    +						$odfHandler->saveToDisk($file);
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +                        dol_syslog($e->getMessage(), LOG_INFO);
     						return -1;
     					}
     				}
    @@ -514,6 +536,4 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal
     
     		return -1;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php
    index 9eda77a7d72..b9f9aa39dcf 100644
    --- a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php
    +++ b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand     <raphael.bertrand@resultic.fr>
      * Copyright (C) 2010-2014 Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2012      Christophe Battarel   <christophe.battarel@altairis.fr>
    @@ -42,17 +42,17 @@ class pdf_aurore extends ModelePDFSupplierProposal
          * @var DoliDb Database handler
          */
         public $db;
    -	
    +
     	/**
          * @var string model name
          */
         public $name;
    -	
    +
     	/**
          * @var string model description (short text)
          */
         public $description;
    -	
    +
     	/**
          * @var string document type
          */
    @@ -60,10 +60,10 @@ class pdf_aurore extends ModelePDFSupplierProposal
     
     	/**
          * @var array() Minimum version of PHP required by module.
    -	 * e.g.: PHP ≥ 5.3 = array(5, 3)
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
          */
    -	public $phpmin = array(5, 2); 
    -	
    +	public $phpmin = array(5, 4);
    +
     	/**
          * Dolibarr version of the loaded document
          * @public string
    @@ -74,32 +74,32 @@ class pdf_aurore extends ModelePDFSupplierProposal
          * @var int page_largeur
          */
         public $page_largeur;
    -	
    +
     	/**
          * @var int page_hauteur
          */
         public $page_hauteur;
    -	
    +
     	/**
          * @var array format
          */
         public $format;
    -	
    +
     	/**
          * @var int marge_gauche
          */
     	public $marge_gauche;
    -	
    +
     	/**
          * @var int marge_droite
          */
     	public $marge_droite;
    -	
    +
     	/**
          * @var int marge_haute
          */
     	public $marge_haute;
    -	
    +
     	/**
          * @var int marge_basse
          */
    @@ -120,7 +120,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
     	public function __construct($db)
     	{
     		global $conf, $langs, $mysoc;
    -		
    +
     		// Translations
     		$langs->loadLangs(array("main", "bills"));
     
    @@ -160,7 +160,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
     		$this->posxdesc=$this->marge_gauche+1;
     		$this->posxdiscount=162;
     		$this->postotalht=174;
    -		
    +
     		if ($conf->global->PRODUCT_USE_UNITS)
     		{
     		    $this->posxtva=101;
    @@ -172,7 +172,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
     		    $this->posxup=126;
     		    $this->posxqty=145;
     		}
    -		
    +
     		if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) || ! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN)) $this->posxup=$this->posxtva;
     		$this->posxpicture=$this->posxtva - (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH)?20:$conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH);	// width of images
     		if ($this->page_largeur < 210) // To work with US executive format
    @@ -193,7 +193,8 @@ class pdf_aurore extends ModelePDFSupplierProposal
     		$this->atleastonediscount=0;
     	}
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *  Function to build pdf onto disk
          *
          *  @param		Object		$object				Object to generate
    @@ -206,13 +207,14 @@ class pdf_aurore extends ModelePDFSupplierProposal
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath='',$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    +        // phpcs:enable
     		global $user,$langs,$conf,$mysoc,$db,$hookmanager,$nblignes;
     
     		if (! is_object($outputlangs)) $outputlangs=$langs;
     		// For backward compatibility with FPDF, force output charset to ISO, because FPDF expect text to be encoded in ISO
     		if (! empty($conf->global->MAIN_USE_FPDF)) $outputlangs->charset_output='ISO-8859-1';
    -		
    -		// Translations
    +
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "dict", "companies", "bills", "products", "supplier_proposal"));
     
     		$nblignes = count($object->lines);
    @@ -376,7 +378,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
     				{
     					$tab_top -= 2;
     
    -          $substitutionarray=pdf_getSubstitutionArray($outputlangs, null, $object);
    +                    $substitutionarray=pdf_getSubstitutionArray($outputlangs, null, $object);
     					complete_substitutions_array($substitutionarray, $outputlangs, $object);
     					$notetoshow = make_substitutions($notetoshow, $substitutionarray, $outputlangs);
     
    @@ -525,7 +527,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
     					{
     					    $pdf->MultiCell($this->posxdiscount-$this->posxqty-0.8, 3, $qty, 0, 'R');
     					}
    -					
    +
     					// Unit
     					if($conf->global->PRODUCT_USE_UNITS)
     					{
    @@ -697,6 +699,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Show payments table
     	 *
    @@ -708,10 +711,11 @@ class pdf_aurore extends ModelePDFSupplierProposal
     	 */
     	function _tableau_versements(&$pdf, $object, $posy, $outputlangs)
     	{
    -
    +        // phpcs:enable
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Show miscellaneous information (payment mode, payment term, ...)
     	 *
    @@ -723,6 +727,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
     	 */
     	function _tableau_info(&$pdf, $object, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf;
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
    @@ -878,6 +883,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Show total to pay
     	 *
    @@ -890,6 +896,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
     	 */
     	function _tableau_tot(&$pdf, $object, $deja_regle, $posy, $outputlangs)
     	{
    +        // phpcs:enable
     		global $conf,$mysoc;
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
     
    @@ -991,7 +998,6 @@ class pdf_aurore extends ModelePDFSupplierProposal
     
     								$pdf->SetXY($col2x, $tab2_top + $tab2_hl * $index);
     								$pdf->MultiCell($largcol2, $tab2_hl, price($tvaval, 0, $outputlangs), 0, 'R', 1);
    -
     							}
     						}
     					}
    @@ -1233,7 +1239,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
     		        $pdf->MultiCell($this->posxdiscount-$this->posxqty-1,2, $outputlangs->transnoentities("Qty"),'','C');
     		    }
     		}
    -		
    +
     		if($conf->global->PRODUCT_USE_UNITS) {
     		    $pdf->line($this->posxunit - 1, $tab_top, $this->posxunit - 1, $tab_top + $tab_height);
     		    if (empty($hidetop)) {
    @@ -1274,9 +1280,9 @@ class pdf_aurore extends ModelePDFSupplierProposal
     	 */
     	function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
     	{
    -		global $conf,$langs;
    -		
    -		// Translations
    +		global $conf, $langs;
    +
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array("main", "bills", "supplier_proposal", "companies"));
     
     		$default_font_size = pdf_getPDFFontSize($outputlangs);
    @@ -1495,6 +1501,4 @@ class pdf_aurore extends ModelePDFSupplierProposal
     		$showdetails=$conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS;
     		return pdf_pagefoot($pdf,$outputlangs,'SUPPLIER_PROPOSAL_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,$showdetails,$hidefreetext);
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php b/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php
    index fa8cf6c6460..847eb49958d 100644
    --- a/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php
    +++ b/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -31,10 +31,30 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_proposal/modules_supplie
      */
     class mod_supplier_proposal_marbre extends ModeleNumRefSupplierProposal
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $prefix='RQ';               // RQ = Request for quotation
    -	var $error='';
    -	var $nom = "Marbre";
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	public $prefix='RQ';               // RQ = Request for quotation
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Marbre';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Marbre';
     
     
         /**
    @@ -149,5 +169,4 @@ class mod_supplier_proposal_marbre extends ModeleNumRefSupplierProposal
     	{
     		return $this->getNextValue($objsoc,$objforref);
     	}
    -
     }
    diff --git a/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_saphir.php b/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_saphir.php
    index 8781628917f..fdbd9f1f90d 100644
    --- a/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_saphir.php
    +++ b/htdocs/core/modules/supplier_proposal/mod_supplier_proposal_saphir.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville        <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur         <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2007 Regis Houssin               <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin               <regis.houssin@inodbox.com>
      * Copyright (C) 2008      Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -33,9 +33,28 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_proposal/modules_supplie
      */
     class mod_supplier_proposal_saphir extends ModeleNumRefSupplierProposal
     {
    -	var $version='dolibarr';		// 'development', 'experimental', 'dolibarr'
    -	var $error = '';
    -	var $nom = 'Saphir';
    +	/**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr';		// 'development', 'experimental', 'dolibarr'
    +
    +	/**
    +     * @var string Error code (or message)
    +     */
    +    public $error = '';
    +
    +	/**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Saphir';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Saphir';
     
     
         /**
    @@ -45,7 +64,7 @@ class mod_supplier_proposal_saphir extends ModeleNumRefSupplierProposal
          */
     	function info()
         {
    -    	global $conf,$langs;
    +    	global $conf, $langs;
     
     		$langs->load("bills");
     
    @@ -127,5 +146,4 @@ class mod_supplier_proposal_saphir extends ModeleNumRefSupplierProposal
     
     		return  $numFinal;
     	}
    -
     }
    diff --git a/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php b/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php
    index b324a1b03a8..b96dc2c4e12 100644
    --- a/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php
    +++ b/htdocs/core/modules/supplier_proposal/modules_supplier_proposal.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
      *
    @@ -36,18 +36,23 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';   // Requ
      */
     abstract class ModelePDFSupplierProposal extends CommonDocGenerator
     {
    -	var $error='';
    -
    -
     	/**
    -	 *  Return list of active generation modules
    -	 *
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return list of active generation modules
    +     *
          *  @param	DoliDB	$db     			Database handler
          *  @param  integer	$maxfilenamelength  Max length of value to show
          *  @return	array						List of templates
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='supplier_proposal';
    @@ -66,7 +71,10 @@ abstract class ModelePDFSupplierProposal extends CommonDocGenerator
      */
     abstract class ModeleNumRefSupplierProposal
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	/**
     	 * Return if a module can be used or not
    diff --git a/htdocs/core/modules/syslog/mod_syslog_chromephp.php b/htdocs/core/modules/syslog/mod_syslog_chromephp.php
    index a9b9ccd5836..2617cdb269d 100644
    --- a/htdocs/core/modules/syslog/mod_syslog_chromephp.php
    +++ b/htdocs/core/modules/syslog/mod_syslog_chromephp.php
    @@ -66,8 +66,8 @@ class mod_syslog_chromephp extends LogHandler implements LogHandlerInterface
     			}
     			set_include_path($conf->global->SYSLOG_CHROMEPHP_INCLUDEPATH);
     
    -		    $res = @include_once('ChromePhp.php');
    -		    if (! $res) $res=@include_once('ChromePhp.class.php');
    +		    $res = @include_once 'ChromePhp.php';
    +		    if (! $res) $res=@include_once 'ChromePhp.class.php';
     
     		    restore_include_path();
     
    @@ -121,13 +121,14 @@ class mod_syslog_chromephp extends LogHandler implements LogHandlerInterface
     
     		if (! file_exists($conf->global->SYSLOG_CHROMEPHP_INCLUDEPATH.'/ChromePhp.php') && ! file_exists($conf->global->SYSLOG_CHROMEPHP_INCLUDEPATH.'/ChromePhp.class.php'))
     		{
    +			$conf->global->MAIN_SYSLOG_DISABLE_CHROMEPHP = 1; // avoid infinite loop
     			if (is_object($langs))   // $langs may not be defined yet.
     			{
    -			    $errors[] = $langs->trans("ErrorFailedToOpenFile", 'ChromePhp.class.php or ChromePhp.php');
    +				$errors[] = $langs->trans("ErrorFailedToOpenFile", 'ChromePhp.class.php or ChromePhp.php');
     			}
     			else
     			{
    -		        $errors[] = "ErrorFailedToOpenFile ChromePhp.class.php or ChromePhp.php";
    +				$errors[] = "ErrorFailedToOpenFile ChromePhp.class.php or ChromePhp.php";
     			}
     		}
     
    @@ -151,12 +152,12 @@ class mod_syslog_chromephp extends LogHandler implements LogHandlerInterface
     
     		try
     		{
    -			// Warning ChromePHP must be into PHP include path. It is not possible to use into require_once() a constant from
    +			// Warning ChromePHP must be into PHP include path. It is not possible to use into require_once a constant from
     			// database or config file because we must be able to log data before database or config file read.
     			$oldinclude=get_include_path();
     			set_include_path($conf->global->SYSLOG_CHROMEPHP_INCLUDEPATH);
    -		    $res = @include_once('ChromePhp.php');
    -		    if (! $res) $res=@include_once('ChromePhp.class.php');
    +		    $res = @include_once 'ChromePhp.php';
    +		    if (! $res) $res=@include_once 'ChromePhp.class.php';
     			set_include_path($oldinclude);
     			
     			ob_start();	// To be sure headers are not flushed until all page is completely processed
    diff --git a/htdocs/core/modules/syslog/mod_syslog_firephp.php b/htdocs/core/modules/syslog/mod_syslog_firephp.php
    index 69bc98230af..abc341f9a30 100644
    --- a/htdocs/core/modules/syslog/mod_syslog_firephp.php
    +++ b/htdocs/core/modules/syslog/mod_syslog_firephp.php
    @@ -122,7 +122,15 @@ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface
     
     		if (!file_exists($conf->global->SYSLOG_FIREPHP_INCLUDEPATH . self::$firephp_class_path))
     		{
    -			$errors[] = $langs->trans("ErrorFailedToOpenFile", self::$firephp_class_path);
    +			$conf->global->MAIN_SYSLOG_DISABLE_FIREPHP = 1; // avoid infinite loop
    +			if (is_object($langs))   // $langs may not be defined yet.
    +			{
    +				$errors[] = $langs->trans("ErrorFailedToOpenFile", self::$firephp_class_path);
    +			}
    +			else
    +			{
    +				$errors[] = "ErrorFailedToOpenFile " . self::$firephp_class_path;
    +			}
     		}
     
     		return $errors;
    @@ -145,7 +153,7 @@ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface
     
     		try
     		{
    -			// Warning FirePHPCore must be into PHP include path. It is not possible to use into require_once() a constant from
    +			// Warning FirePHPCore must be into PHP include path. It is not possible to use into require_once a constant from
     			// database or config file because we must be able to log data before database or config file read.
     			$oldinclude=get_include_path();
     			set_include_path($conf->global->SYSLOG_FIREPHP_INCLUDEPATH);
    diff --git a/htdocs/core/modules/ticket/mod_ticket_simple.php b/htdocs/core/modules/ticket/mod_ticket_simple.php
    index b70b9babd05..d121748c285 100644
    --- a/htdocs/core/modules/ticket/mod_ticket_simple.php
    +++ b/htdocs/core/modules/ticket/mod_ticket_simple.php
    @@ -1,6 +1,6 @@
     <?php
    -/* Copyright (C) 2010-2012    Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2010        Laurent Destailleur    <eldy@users.sourceforge.net>
    +/* Copyright (C) 2010-2012   Regis Houssin        <regis.houssin@inodbox.com>
    + * Copyright (C) 2010        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
    @@ -30,11 +30,30 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/ticket/modules_ticket.php';
      */
     class mod_ticket_simple extends ModeleNumRefTicket
     {
    -    public $version = 'dolibarr'; // 'development', 'experimental', 'dolibarr'
    +    /**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
    +	public $version = 'dolibarr'; // 'development', 'experimental', 'dolibarr'
    +
         public $prefix = 'TS';
    +
    +    /**
    +     * @var string Error code (or message)
    +     */
         public $error = '';
    -    public $nom = "Simple";
    -    public $name = "Simple";
    +
    +    /**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Simple';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Simple';
     
         /**
          *  Return description of numbering module
    @@ -140,5 +159,4 @@ class mod_ticket_simple extends ModeleNumRefTicket
             dol_syslog("mod_ticket_simple::getNextValue return " . $this->prefix . $yymm . "-" . $num);
             return $this->prefix . $yymm . "-" . $num;
         }
    -
     }
    diff --git a/htdocs/core/modules/ticket/mod_ticket_universal.php b/htdocs/core/modules/ticket/mod_ticket_universal.php
    index 2d521f18a5b..e9e89cf4b45 100644
    --- a/htdocs/core/modules/ticket/mod_ticket_universal.php
    +++ b/htdocs/core/modules/ticket/mod_ticket_universal.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -29,10 +29,28 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/ticket/modules_ticket.php';
      */
     class mod_ticket_universal extends ModeleNumRefTicket
     {
    +    /**
    +     * Dolibarr version of the loaded document
    +     * @public string
    +     */
         public $version = 'dolibarr'; // 'development', 'experimental', 'dolibarr'
    +
    +    /**
    +     * @var string Error code (or message)
    +     */
         public $error = '';
    -    public $nom = 'Universal';
    -    public $name = 'Universal';
    +
    +    /**
    +	 * @var string Nom du modele
    +	 * @deprecated
    +	 * @see name
    +	 */
    +	public $nom='Universal';
    +
    +	/**
    +	 * @var string model name
    +	 */
    +	public $name='Universal';
     
         /**
          *  Renvoi la description du modele de numerotation
    @@ -43,8 +61,8 @@ class mod_ticket_universal extends ModeleNumRefTicket
         {
             global $conf, $langs;
     
    -        $langs->load("ticket");
    -        $langs->load("admin");
    +        // Load translation files required by the page
    +        $langs->loadLangs(array("ticket","admin"));
     
             $form = new Form($this->db);
     
    @@ -121,5 +139,4 @@ class mod_ticket_universal extends ModeleNumRefTicket
     
             return $numFinal;
         }
    -
     }
    diff --git a/htdocs/core/modules/ticket/modules_ticket.php b/htdocs/core/modules/ticket/modules_ticket.php
    index d6f8b06d0e8..b66eb30422f 100644
    --- a/htdocs/core/modules/ticket/modules_ticket.php
    +++ b/htdocs/core/modules/ticket/modules_ticket.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2014    Regis Houssin    <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2014    Regis Houssin    <regis.houssin@inodbox.com>
      * Copyright (C) 2014       Marcos García   <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -29,6 +29,9 @@
      */
     abstract class ModeleNumRefTicket
     {
    +    /**
    +     * @var string Error code (or message)
    +     */
         public $error = '';
     
         /**
    diff --git a/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php b/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php
    index dabe1bd99a3..28eaf77d30b 100644
    --- a/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php
    +++ b/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php
    @@ -1,6 +1,7 @@
     <?php
     /* Copyright (C) 2010-2012 	Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
     *
     * 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
    @@ -35,10 +36,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
      */
     class doc_generic_user_odt extends ModelePDFUser
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +   * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +   */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +   * Dolibarr version of the loaded document
    +   * @public string
    +   */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -48,10 +62,10 @@ class doc_generic_user_odt extends ModelePDFUser
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +    $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT templates";
    @@ -93,10 +107,10 @@ class doc_generic_user_odt extends ModelePDFUser
     	 */
     	function info($langs)
     	{
    -		global $conf,$langs;
    +		global $conf, $langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array('companies', 'errors'));
     
     		$form = new Form($this->db);
     
    @@ -190,6 +204,7 @@ class doc_generic_user_odt extends ModelePDFUser
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -203,7 +218,8 @@ class doc_generic_user_odt extends ModelePDFUser
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    -		global $user,$langs,$conf,$mysoc,$hookmanager;
    +        // phpcs:enable
    +		global $user, $langs, $conf, $mysoc, $hookmanager;
     
     		if (empty($srctemplatepath))
     		{
    @@ -224,10 +240,8 @@ class doc_generic_user_odt extends ModelePDFUser
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "companies", "bills", "dict"));
     
     		if ($conf->user->dir_output)
     		{
    @@ -320,16 +334,17 @@ class doc_generic_user_odt extends ModelePDFUser
     					$odfHandler = new odf(
     						$srctemplatepath,
     						array(
    -						'PATH_TO_TMP'	  => $conf->user->dir_temp,
    -						'ZIP_PROXY'		  => 'PclZipProxy',	// PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
    -						'DELIMITER_LEFT'  => '{',
    -						'DELIMITER_RIGHT' => '}'
    +							'PATH_TO_TMP'	  => $conf->user->dir_temp,
    +							'ZIP_PROXY'		  => 'PclZipProxy',	// PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
    +							'DELIMITER_LEFT'  => '{',
    +							'DELIMITER_RIGHT' => '}'
     						)
     					);
     				}
     				catch(Exception $e)
     				{
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_WARNING);
     					return -1;
     				}
     
    @@ -363,6 +378,7 @@ class doc_generic_user_odt extends ModelePDFUser
     					}
     					catch(OdfException $e)
     					{
    +						dol_syslog($e->getMessage(), LOG_WARNING);
     					}
     				}
     
    @@ -373,8 +389,9 @@ class doc_generic_user_odt extends ModelePDFUser
     					try {
     						$odfHandler->setVars($key, $value, true, 'UTF-8');
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +						dol_syslog($e->getMessage(), LOG_WARNING);
     					}
     				}
     
    @@ -386,16 +403,18 @@ class doc_generic_user_odt extends ModelePDFUser
     				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +						dol_syslog($e->getMessage(), LOG_WARNING);
     						return -1;
     					}
     				}
     				else {
     					try {
    -					$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    +						$odfHandler->saveToDisk($file);
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +						dol_syslog($e->getMessage(), LOG_WARNING);
     						return -1;
     					}
     				}
    @@ -421,8 +440,19 @@ class doc_generic_user_odt extends ModelePDFUser
     		return -1;
     	}
     
    -	function get_substitutionarray_object($object,$outputlangs,$array_key='object') {
    -		$array_other=array();
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * get substitution array for object
    +     *
    +     * @param User          $object         user
    +     * @param Translate     $outputlangs    translation object
    +     * @param string        $array_key      key for array
    +     * @return array                        array of substitutions
    +     */
    +    function get_substitutionarray_object($object,$outputlangs,$array_key='object')
    +    {
    +        // phpcs:enable
    +		$array_other = array();
     		foreach($object as $key => $value) {
     			if (!is_array($value) && !is_object($value)) {
     				$array_other[$array_key.'_'.$key] = $value;
    @@ -430,6 +460,4 @@ class doc_generic_user_odt extends ModelePDFUser
     		}
     		return $array_other;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/user/modules_user.class.php b/htdocs/core/modules/user/modules_user.class.php
    index 3e94ece9372..3dc46707543 100644
    --- a/htdocs/core/modules/user/modules_user.class.php
    +++ b/htdocs/core/modules/user/modules_user.class.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -24,7 +24,7 @@
      *	    \class      ModeleProductCode
      *		\brief  	Parent class for product code generators
      */
    - 
    +
     /**
      *  \file       htdocs/core/modules/contract/modules_contract.php
      *  \ingroup    contract
    @@ -32,15 +32,19 @@
      */
     
      require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
    - 
    +
     /**
      *	Parent class to manage intervention document templates
      */
     abstract class ModelePDFUser extends CommonDocGenerator
     {
    -	var $error='';
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return list of active generation modules
     	 *
    @@ -50,6 +54,7 @@ abstract class ModelePDFUser extends CommonDocGenerator
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$type='user';
    @@ -59,4 +64,4 @@ abstract class ModelePDFUser extends CommonDocGenerator
     		$liste=getListOfModels($db,$type,$maxfilenamelength);
     		return $liste;
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php b/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php
    index 8f21bfc9ece..a00bec92c96 100644
    --- a/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php
    +++ b/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php
    @@ -1,6 +1,7 @@
     <?php
     /* Copyright (C) 2010-2012 	Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
     *
     * 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
    @@ -37,10 +38,23 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
      */
     class doc_generic_usergroup_odt extends ModelePDFUserGroup
     {
    -	var $emetteur;	// Objet societe qui emet
    +	/**
    +	 * Issuer
    +	 * @var Societe
    +	 */
    +	public $emetteur;
     
    -	var $phpmin = array(5,2,0);	// Minimum version of PHP required by module
    -	var $version = 'dolibarr';
    +	/**
    +   * @var array() Minimum version of PHP required by module.
    +	 * e.g.: PHP ≥ 5.4 = array(5, 4)
    +   */
    +	public $phpmin = array(5, 4);
    +
    +	/**
    +   * Dolibarr version of the loaded document
    +   * @public string
    +   */
    +	public $version = 'dolibarr';
     
     
     	/**
    @@ -50,10 +64,10 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     	 */
     	function __construct($db)
     	{
    -		global $conf,$langs,$mysoc;
    +		global $conf, $langs, $mysoc;
     
    -		$langs->load("main");
    -		$langs->load("companies");
    +		// Load translation files required by the page
    +    $langs->loadLangs(array("main","companies"));
     
     		$this->db = $db;
     		$this->name = "ODT templates";
    @@ -97,8 +111,8 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     	{
     		global $conf,$langs;
     
    -		$langs->load("companies");
    -		$langs->load("errors");
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("errors","companies"));
     
     		$form = new Form($this->db);
     
    @@ -192,6 +206,7 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     		return $texte;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Function to build a document on disk using the generic odt module.
     	 *
    @@ -205,7 +220,8 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     	 */
     	function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
    -		global $user,$langs,$conf,$mysoc,$hookmanager;
    +        // phpcs:enable
    +		global $user, $langs, $conf, $mysoc, $hookmanager;
     
     		if (empty($srctemplatepath))
     		{
    @@ -226,10 +242,8 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     		$sav_charset_output=$outputlangs->charset_output;
     		$outputlangs->charset_output='UTF-8';
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("dict");
    -		$outputlangs->load("companies");
    -		$outputlangs->load("bills");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "companies", "bills", "dict"));
     
     		if ($conf->user->dir_output)
     		{
    @@ -342,16 +356,15 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     					$odfHandler = new odf(
     						$srctemplatepath,
     						array(
    -						'PATH_TO_TMP'	  => $conf->user->dir_temp,
    -						'ZIP_PROXY'		  => 'PclZipProxy',	// PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
    -						'DELIMITER_LEFT'  => '{',
    -						'DELIMITER_RIGHT' => '}'
    +							'PATH_TO_TMP'	  => $conf->user->dir_temp,
    +							'ZIP_PROXY'		  => 'PclZipProxy',	// PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
    +							'DELIMITER_LEFT'  => '{',
    +							'DELIMITER_RIGHT' => '}'
     						)
     					);
    -				}
    -				catch(Exception $e)
    -				{
    +				} catch (Exception $e) {
     					$this->error=$e->getMessage();
    +					dol_syslog($e->getMessage(), LOG_WARNING);
     					return -1;
     				}
     				// After construction $odfHandler->contentXml contains content and
    @@ -365,8 +378,9 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     				try {
     					$odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8');
     				}
    -				catch(OdfException $e)
    +				catch (OdfException $e)
     				{
    +					dol_syslog($e->getMessage(), LOG_WARNING);
     				}
     
     				// Make substitutions into odt
    @@ -400,8 +414,9 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     							$odfHandler->setVars($key, $value, true, 'UTF-8');
     						}
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +						dol_syslog($e->getMessage(), LOG_WARNING);
     					}
     				}
     				// Replace tags of lines
    @@ -411,7 +426,7 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     					try {
     						$listlines = $odfHandler->setSegment('lines');
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
     						// We may arrive here if tags for lines not present into template
     						$foundtagforlines = 0;
    @@ -432,15 +447,17 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     							{
     								try
     								{
    -									if(!is_array($val)) {
    +									if (!is_array($val)) {
     										$listlines->setVars($key, $val, true, 'UTF-8');
     									}
     								}
    -								catch(OdfException $e)
    +								catch (OdfException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_WARNING);
     								}
    -								catch(SegmentException $e)
    +								catch (SegmentException $e)
     								{
    +									dol_syslog($e->getMessage(), LOG_WARNING);
     								}
     							}
     							$listlines->merge();
    @@ -457,39 +474,42 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     
     				// Replace labels translated
     				$tmparray=$outputlangs->get_translations_for_substitutions();
    -				foreach($tmparray as $key=>$value)
    +				foreach($tmparray as $key => $value)
     				{
     					try {
     						$odfHandler->setVars($key, $value, true, 'UTF-8');
     					}
    -					catch(OdfException $e)
    +					catch (OdfException $e)
     					{
    +						dol_syslog($e->getMessage(), LOG_WARNING);
     					}
     				}
     
     				// Call the beforeODTSave hook
    -				$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
    -				$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +				$parameters=array('odfHandler'=>&$odfHandler, 'file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs);
    +				$reshook=$hookmanager->executeHooks('beforeODTSave', $parameters, $this, $action);    // Note that $action and $object may have been modified by some hooks
     
     				// Write new file
     				if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
     					try {
     						$odfHandler->exportAsAttachedPDF($file);
    -					}catch (Exception $e){
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +						dol_syslog($e->getMessage(), LOG_WARNING);
     						return -1;
     					}
     				}
     				else {
     					try {
    -					$odfHandler->saveToDisk($file);
    -					}catch (Exception $e){
    +						$odfHandler->saveToDisk($file);
    +					} catch (Exception $e) {
     						$this->error=$e->getMessage();
    +						dol_syslog($e->getMessage(), LOG_WARNING);
     						return -1;
     					}
     				}
     
    -				$reshook=$hookmanager->executeHooks('afterODTCreation',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +				$reshook=$hookmanager->executeHooks('afterODTCreation', $parameters, $this, $action);    // Note that $action and $object may have been modified by some hooks
     
     				if (! empty($conf->global->MAIN_UMASK))
     					@chmod($file, octdec($conf->global->MAIN_UMASK));
    @@ -509,6 +529,4 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup
     
     		return -1;
     	}
    -
     }
    -
    diff --git a/htdocs/core/modules/usergroup/modules_usergroup.class.php b/htdocs/core/modules/usergroup/modules_usergroup.class.php
    index 26edb08d57c..fc9648ab6e9 100644
    --- a/htdocs/core/modules/usergroup/modules_usergroup.class.php
    +++ b/htdocs/core/modules/usergroup/modules_usergroup.class.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -24,7 +24,7 @@
      *	    \class      ModeleProductCode
      *		\brief  	Parent class for product code generators
      */
    - 
    +
     /**
      *  \file       htdocs/core/modules/contract/modules_contract.php
      *  \ingroup    contract
    @@ -32,16 +32,20 @@
      */
     
      require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
    - 
    +
     /**
      *	Parent class to manage intervention document templates
      */
     abstract class ModelePDFUserGroup extends CommonDocGenerator
     {
    -	var $error='';
    -
    -
     	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
     	 *	Return list of active generation modules
     	 *
          *  @param	DoliDB	$db     			Database handler
    @@ -50,13 +54,14 @@ abstract class ModelePDFUserGroup extends CommonDocGenerator
     	 */
     	static function liste_modeles($db,$maxfilenamelength=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
    -		$type='group';
    -		$liste=array();
    +		$type = 'group';
    +		$list = array();
     
     		include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    -		$liste=getListOfModels($db,$type,$maxfilenamelength);
    -		return $liste;
    +		$list = getListOfModels($db, $type, $maxfilenamelength);
    +		return $list;
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/core/photos_resize.php b/htdocs/core/photos_resize.php
    index 3f266e700cc..c8e6d984539 100644
    --- a/htdocs/core/photos_resize.php
    +++ b/htdocs/core/photos_resize.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2010-2015	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2009		Meos
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2016		Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -28,8 +28,8 @@ require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
     
    -$langs->load("products");
    -$langs->load("other");
    +// Load translation files required by the page
    +$langs->loadLangs(array("products","other"));
     
     $id=GETPOST('id','int');
     $action=GETPOST('action','alpha');
    @@ -83,6 +83,12 @@ elseif ($modulepart == 'societe')
     	if (! $user->rights->societe->lire) accessforbidden();
     	$accessallowed=1;
     }
    +elseif ($modulepart == 'tax')
    +{
    +	$result=restrictedArea($user, 'tax', $id, 'chargesociales','charges');
    +	if (! $user->rights->tax->charges->lire) accessforbidden();
    +	$accessallowed=1;
    +}
     elseif ($modulepart == 'ticket')
     {
     	$result=restrictedArea($user,'ticket',$id,'ticket');
    @@ -177,6 +183,17 @@ elseif ($modulepart == 'expensereport')
             $dir=$conf->expensereport->dir_output;	// By default
         }
     }
    +elseif ($modulepart == 'tax')
    +{
    +	require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php';
    +	$object = new ChargeSociales($db);
    +	if ($id > 0)
    +	{
    +		$result = $object->fetch($id);
    +		if ($result <= 0) dol_print_error($db,'Failed to load object');
    +		$dir=$conf->tax->dir_output;	// By default
    +	}
    +}
     elseif ($modulepart == 'ticket')
     {
     	require_once DOL_DOCUMENT_ROOT.'/ticket/class/ticket.class.php';
    @@ -200,7 +217,8 @@ if (empty($backtourl))
         else if (in_array($modulepart, array('member')))        $backtourl=DOL_URL_ROOT."/adherents/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
         else if (in_array($modulepart, array('project')))       $backtourl=DOL_URL_ROOT."/projet/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
         else if (in_array($modulepart, array('societe')))       $backtourl=DOL_URL_ROOT."/societe/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
    -    else if (in_array($modulepart, array('ticket')))     $backtourl=DOL_URL_ROOT."/ticket/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
    +    else if (in_array($modulepart, array('tax')))           $backtourl=DOL_URL_ROOT."/compta/sociales/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
    +    else if (in_array($modulepart, array('ticket')))        $backtourl=DOL_URL_ROOT."/ticket/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
         else if (in_array($modulepart, array('user')))          $backtourl=DOL_URL_ROOT."/user/document.php?id=".$id.'&file='.urldecode($_POST["file"]);
     }
     
    @@ -226,6 +244,7 @@ if ($cancel)
     if ($action == 'confirm_resize' && (isset($_POST["file"]) != "") && (isset($_POST["sizex"]) != "") && (isset($_POST["sizey"]) != ""))
     {
     	$fullpath=$dir."/".$original_file;
    +
     	$result=dol_imageResizeOrCrop($fullpath,0,$_POST['sizex'],$_POST['sizey']);
     
     	if ($result == $fullpath)
    @@ -294,6 +313,8 @@ if ($action == 'confirm_resize' && (isset($_POST["file"]) != "") && (isset($_POS
     if ($action == 'confirm_crop')
     {
     	$fullpath=$dir."/".$original_file;
    +
    +	//var_dump($_POST['w'].'x'.$_POST['h'].'-'.$_POST['x'].'x'.$_POST['y']);exit;
     	$result=dol_imageResizeOrCrop($fullpath,1,$_POST['w'],$_POST['h'],$_POST['x'],$_POST['y']);
     
     	if ($result == $fullpath)
    @@ -419,9 +440,9 @@ if (! empty($conf->use_javascript_ajax))
     	// If image is too large, we use another scale.
     	if (! empty($_SESSION['dol_screenwidth']) && ($widthforcrop > round($_SESSION['dol_screenwidth']/2)))
     	{
    -		$widthforcrop=round($_SESSION['dol_screenwidth']/2);
    +		$ratioforcrop=2;
    +		$widthforcrop=round($_SESSION['dol_screenwidth'] / $ratioforcrop);
     		$refsizeforcrop='screenwidth';
    -		$ratioforcrop=1;
     	}
     
     	print '<!-- Form to crop -->'."\n";
    @@ -448,7 +469,7 @@ if (! empty($conf->use_javascript_ajax))
     	      <input type="hidden" id="action" name="action" value="confirm_crop" />
     	      <input type="hidden" id="product" name="product" value="'.dol_escape_htmltag($id).'" />
     	      <input type="hidden" id="refsizeforcrop" name="refsizeforcrop" value="'.$refsizeforcrop.'" />
    -	      <input type="hidden" id="ratioforcrop" name="ratioforcrop" value="'.$ratioforcrop.'" />
    +	      <input type="hidden" id="ratioforcrop" name="ratioforcrop" value="'.$ratioforcrop.'" /><!-- field used by core/lib/lib_photoresize.js -->
               <input type="hidden" name="modulepart" value="'.dol_escape_htmltag($modulepart).'" />
     	      <input type="hidden" name="id" value="'.dol_escape_htmltag($id).'" />
     	      <br>
    diff --git a/htdocs/core/search_page.php b/htdocs/core/search_page.php
    index acf2f788802..c3ed5a4aacc 100644
    --- a/htdocs/core/search_page.php
    +++ b/htdocs/core/search_page.php
    @@ -81,6 +81,7 @@ else
     	$showtitlebefore = GETPOST('showtitlebefore','int');
     	include DOL_DOCUMENT_ROOT.'/core/ajax/selectsearchbox.php';
     
    +	$i=0;
         $accesskeyalreadyassigned=array();
         foreach($arrayresult as $key => $val)
         {
    @@ -94,7 +95,9 @@ else
                 $accesskey=$val['label'][0];
                 $accesskeyalreadyassigned[$accesskey]=$accesskey;
             }
    -        $searchform.=printSearchForm($urlaction, $urlaction, $val['label'], 'minwidth200', $keysearch, $accesskey, $key, img_picto('',$val['img'],'', 0, 1), $showtitlebefore);
    +        $searchform.=printSearchForm($urlaction, $urlaction, $val['label'], 'minwidth200', $keysearch, $accesskey, $key, img_picto('',$val['img'],'', 0, 1), $showtitlebefore, ($i>0?0:1));
    +
    +        $i++;
         }
     }
     
    diff --git a/htdocs/core/tools.php b/htdocs/core/tools.php
    index 25e2eb3f903..524dee2d787 100644
    --- a/htdocs/core/tools.php
    +++ b/htdocs/core/tools.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -24,8 +24,8 @@
     
     require '../main.inc.php';
     
    -$langs->load("companies");
    -$langs->load("other");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","other"));
     
     // Security check
     $socid=0;
    diff --git a/htdocs/core/tpl/admin_extrafields_add.tpl.php b/htdocs/core/tpl/admin_extrafields_add.tpl.php
    index 6a59722e4d8..3c852bb7b26 100644
    --- a/htdocs/core/tpl/admin_extrafields_add.tpl.php
    +++ b/htdocs/core/tpl/admin_extrafields_add.tpl.php
    @@ -1,7 +1,8 @@
     <?php
     /* Copyright (C) 2010-2017	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2016		Charlie Benke		<charlie@patas-monkey.com>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -52,6 +53,7 @@ $langs->load("modulebuilder");
         		var required = jQuery("#required");
         		var alwayseditable = jQuery("#alwayseditable");
         		var list = jQuery("#list");
    +            var totalizable = jQuery("#totalizable");
         		<?php
         		if ((GETPOST('type','alpha') != "select") && (GETPOST('type','alpha') != "sellist"))
         		{
    @@ -144,7 +146,7 @@ $langs->load("modulebuilder");
     
     <table summary="listofattributes" class="border centpercent">
     <!-- Label -->
    -<tr><td class="titlefield fieldrequired"><?php echo $langs->trans("Label"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo GETPOST('label','alpha'); ?>"></td></tr>
    +<tr><td class="titlefield fieldrequired"><?php echo $langs->trans("LabelOrTranslationKey"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo GETPOST('label','alpha'); ?>"></td></tr>
     <!-- Code -->
     <tr><td class="fieldrequired"><?php echo $langs->trans("AttributeCode"); ?></td><td class="valeur"><input type="text" name="attrname" id="attrname"  size="10" value="<?php echo GETPOST('attrname','alpha'); ?>"> (<?php echo $langs->trans("AlphaNumOnlyLowerCharsAndNoSpace"); ?>)</td></tr>
     <!-- Type -->
    @@ -186,12 +188,17 @@ $langs->load("modulebuilder");
     <tr class="extra_required"><td><?php echo $langs->trans("Required"); ?></td><td class="valeur"><input id="required" type="checkbox" name="required"<?php echo (GETPOST('required','alpha')?' checked':''); ?>></td></tr>
     <!-- Always editable -->
     <tr class="extra_alwayseditable"><td><?php echo $langs->trans("AlwaysEditable"); ?></td><td class="valeur"><input id="alwayseditable" type="checkbox" name="alwayseditable"<?php echo ((GETPOST('alwayseditable','alpha') || ! GETPOST('button','alpha'))?' checked':''); ?>></td></tr>
    -<?php if ($conf->multicompany->enabled) { ?>
    -    <tr><td><?php echo $langs->trans("AllEntities"); ?></td><td class="valeur"><input id="entitycurrentorall" type="checkbox" name="entitycurrentorall"<?php echo (GETPOST('entitycurrentorall','alpha') ? '':' checked'); ?>></td></tr>
    -<?php } ?>
     <!-- Visibility -->
     <tr><td class="extra_list"><?php echo $form->textwithpicto($langs->trans("Visibility"), $langs->trans("VisibleDesc")); ?>
     </td><td class="valeur"><input id="list" class="minwidth100" type="text" name="list" value="<?php echo GETPOST('list','int')!='' ? GETPOST('list','int') : '1'; ?>"></td></tr>
    +<!-- Totalizable -->
    +<tr class="extra_totalizable"><td><?php echo $langs->trans("Totalizable"); ?></td><td class="valeur"><input id="totalizable" type="checkbox" name="totalizable"<?php echo ((GETPOST('totalizable','alpha') || GETPOST('button','alpha'))?' checked':''); ?>></td></tr>
    +<!-- Help tooltip -->
    +<tr class="help"><td><?php echo $form->textwithpicto($langs->trans("HelpOnTooltip"), $langs->trans("HelpOnTooltipDesc")); ?></td><td class="valeur"><input id="help" class="quatrevingtpercent" type="text" name="help" value="<?php echo dol_escape_htmltag($help); ?>"></td></tr>
    +<?php if ($conf->multicompany->enabled) { ?>
    +	<!-- Multicompany entity -->
    +    <tr><td><?php echo $langs->trans("AllEntities"); ?></td><td class="valeur"><input id="entitycurrentorall" type="checkbox" name="entitycurrentorall"<?php echo (GETPOST('entitycurrentorall','alpha') ? '':' checked'); ?>></td></tr>
    +<?php } ?>
     </table>
     
     <?php dol_fiche_end(); ?>
    diff --git a/htdocs/core/tpl/admin_extrafields_edit.tpl.php b/htdocs/core/tpl/admin_extrafields_edit.tpl.php
    index 3c3cc1858c5..7a533b496a4 100644
    --- a/htdocs/core/tpl/admin_extrafields_edit.tpl.php
    +++ b/htdocs/core/tpl/admin_extrafields_edit.tpl.php
    @@ -1,6 +1,7 @@
     <?php
     /* Copyright (C) 2010-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -51,6 +52,7 @@ $langs->load("modulebuilder");
         		var required = jQuery("#required");
         		var alwayseditable = jQuery("#alwayseditable");
         		var list = jQuery("#list");
    +            var totalizable = jQuery("#totalizable");
         		<?php
         		if((GETPOST('type','alpha') != "select") &&  (GETPOST('type','alpha') != "sellist"))
         		{
    @@ -156,6 +158,8 @@ $param=$extrafields->attributes[$elementtype]['param'][$attrname];
     $perms=$extrafields->attributes[$elementtype]['perms'][$attrname];
     $langfile=$extrafields->attributes[$elementtype]['langfile'][$attrname];
     $list=$extrafields->attributes[$elementtype]['list'][$attrname];
    +$totalizable = $extrafields->attributes[$elementtype]['totalizable'][$attrname];
    +$help=$extrafields->attributes[$elementtype]['help'][$attrname];
     $entitycurrentorall=$extrafields->attributes[$elementtype]['entityid'][$attrname];
     
     if((($type == 'select') || ($type == 'checkbox') || ($type == 'radio')) && is_array($param))
    @@ -176,7 +180,7 @@ elseif (($type== 'sellist') || ($type == 'chkbxlst') || ($type == 'link') || ($t
     }
     ?>
     <!-- Label -->
    -<tr><td class="titlefield fieldrequired"><?php echo $langs->trans("Label"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo $label; ?>"></td></tr>
    +<tr><td class="titlefield fieldrequired"><?php echo $langs->trans("LabelOrTranslationKey"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo $label; ?>"></td></tr>
     <!-- Code -->
     <tr><td class="fieldrequired"><?php echo $langs->trans("AttributeCode"); ?></td><td class="valeur"><?php echo $attrname; ?></td></tr>
     <!-- Type -->
    @@ -248,12 +252,16 @@ else
     <tr class="extra_required"><td><?php echo $langs->trans("Required"); ?></td><td class="valeur"><input id="required" type="checkbox" name="required"<?php echo ($required?' checked':''); ?>></td></tr>
     <!-- Always editable -->
     <tr class="extra_alwayseditable"><td><?php echo $langs->trans("AlwaysEditable"); ?></td><td class="valeur"><input id="alwayseditable" type="checkbox" name="alwayseditable"<?php echo ($alwayseditable?' checked':''); ?>></td></tr>
    +<tr><td class="extra_list"><?php echo $form->textwithpicto($langs->trans("Visibility"), $langs->trans("VisibleDesc")); ?>
    +</td><td class="valeur"><input id="list" class="minwidth100" type="text" name="list" value="<?php echo ($list!=''?$list:'1'); ?>"></td></tr>
    +<tr class="extra_totalizable"><td><?php echo $form->textwithpicto($langs->trans("Totalizable"), $langs->trans("TotalizableDesc")); ?></td><td class="valeur"><input id="totalizable" type="checkbox" name="totalizable"<?php echo ($totalizable?' checked':''); ?>></td></tr>
    +<!-- Help tooltip -->
    +<tr class="help"><td><?php echo $form->textwithpicto($langs->trans("HelpOnTooltip"), $langs->trans("HelpOnTooltipDesc")); ?></td><td class="valeur"><input id="help" class="quatrevingtpercent" type="text" name="help" value="<?php echo dol_escape_htmltag($help); ?>"></td></tr>
     <?php if ($conf->multicompany->enabled) { ?>
    +	<!-- Multicompany entity -->
         <tr><td><?php echo $langs->trans("AllEntities"); ?></td><td class="valeur"><input id="entitycurrentorall" type="checkbox" name="entitycurrentorall"<?php echo (empty($entitycurrentorall) ?' checked':''); ?>></td></tr>
     <?php } ?>
     <!-- Visibility -->
    -<tr><td class="extra_list"><?php echo $form->textwithpicto($langs->trans("Visibility"), $langs->trans("VisibleDesc")); ?>
    -</td><td class="valeur"><input id="list" class="minwidth100" type="text" name="list" value="<?php echo ($list!=''?$list:'1'); ?>"></td></tr>
     </table>
     
     <?php dol_fiche_end(); ?>
    diff --git a/htdocs/core/tpl/admin_extrafields_view.tpl.php b/htdocs/core/tpl/admin_extrafields_view.tpl.php
    index 1b0a5303bec..79f5a0bad5c 100644
    --- a/htdocs/core/tpl/admin_extrafields_view.tpl.php
    +++ b/htdocs/core/tpl/admin_extrafields_view.tpl.php
    @@ -1,6 +1,7 @@
     <?php
     /* Copyright (C) 2010-2018	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012-2017	Regis Houssin		<regis.houssin@inodbox.com>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -48,19 +49,22 @@ print '<div class="div-table-responsive">';
     print '<table summary="listofattributes" class="noborder" width="100%">';
     
     print '<tr class="liste_titre">';
    -print '<td align="left">'.$langs->trans("Position");
    -print '<span class="nowrap"><img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/1downarrow.png" alt="" title="A-Z" class="imgdown"></span>';
    +print '<td class="left">'.$langs->trans("Position");
    +print '<span class="nowrap">';
    +print img_picto('A-Z', '1downarrow.png');
    +print '</span>';
     print '</td>';
    -print '<td>'.$langs->trans("Label").'</td>';
    +print '<td>'.$langs->trans("LabelOrTranslationKey").'</td>';
     print '<td>'.$langs->trans("TranslationString").'</td>';
     print '<td>'.$langs->trans("AttributeCode").'</td>';
     print '<td>'.$langs->trans("Type").'</td>';
     print '<td align="right">'.$langs->trans("Size").'</td>';
    -print '<td align="center">'.$langs->trans("Unique").'</td>';
     print '<td>'.$langs->trans("ComputedFormula").'</td>';
    +print '<td align="center">'.$langs->trans("Unique").'</td>';
     print '<td align="center">'.$langs->trans("Required").'</td>';
     print '<td align="center">'.$langs->trans("AlwaysEditable").'</td>';
     print '<td align="center">'.$form->textwithpicto($langs->trans("Visible"), $langs->trans("VisibleDesc")).'</td>';
    +print '<td align="center">'.$form->textwithpicto($langs->trans("Totalizable"), $langs->trans("TotalizableDesc")).'</td>';
     if ($conf->multicompany->enabled)  {
     	print '<td align="center">'.$langs->trans("Entities").'</td>';
     }
    @@ -83,11 +87,12 @@ if (is_array($extrafields->attributes[$elementtype]['type']) && count($extrafiel
     		print "<td>".$key."</td>\n";
     		print "<td>".$type2label[$extrafields->attributes[$elementtype]['type'][$key]]."</td>\n";
     		print '<td align="right">'.$extrafields->attributes[$elementtype]['size'][$key]."</td>\n";
    -		print '<td align="center">'.yn($extrafields->attributes[$elementtype]['unique'][$key])."</td>\n";
     		print '<td>'.dol_trunc($extrafields->attributes[$elementtype]['computed'][$key], 20)."</td>\n";
    +		print '<td align="center">'.yn($extrafields->attributes[$elementtype]['unique'][$key])."</td>\n";
     		print '<td align="center">'.yn($extrafields->attributes[$elementtype]['required'][$key])."</td>\n";
     		print '<td align="center">'.yn($extrafields->attributes[$elementtype]['alwayseditable'][$key])."</td>\n";
     		print '<td align="center">'.$extrafields->attributes[$elementtype]['list'][$key]."</td>\n";
    +		print '<td align="center">'.yn($extrafields->attributes[$elementtype]['totalizable'][$key])."</td>\n";
     		if (! empty($conf->multicompany->enabled))  {
     			print '<td align="center">'.($extrafields->attributes[$elementtype]['entityid'][$key]==0?$langs->trans("All"):$extrafields->attributes[$elementtype]['entitylabel'][$key]).'</td>';
     		}
    diff --git a/htdocs/core/tpl/advtarget.tpl.php b/htdocs/core/tpl/advtarget.tpl.php
    index a25abbdde6a..af8c99c3fc7 100644
    --- a/htdocs/core/tpl/advtarget.tpl.php
    +++ b/htdocs/core/tpl/advtarget.tpl.php
    @@ -1,9 +1,18 @@
     <?php
    -
    -/* 
    - * To change this license header, choose License Headers in Project Properties.
    - * To change this template file, choose Tools | Templates
    - * and open the template in the editor.
    +/*
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
      */
     
     print '<script type="text/javascript" language="javascript">
    @@ -36,9 +45,9 @@ print '<script type="text/javascript" language="javascript">
     		});
     	});
     </script>';
    -		
    -		
    -		print_fiche_titre($langs->trans("AdvTgtTitle"));
    +
    +
    +		print load_fiche_titre($langs->trans("AdvTgtTitle"));
     
     		print '<div class="tabBar">' . "\n";
     		print '<form name="find_customer" id="find_customer" action="' . $_SERVER['PHP_SELF'] . '?id=' . $id . '"  method="POST">' . "\n";
    @@ -272,9 +281,9 @@ print '<script type="text/javascript" language="javascript">
     
     						print '<table class="nobordernopadding"><tr>';
     						print '<td>' . $langs->trans("AdvTgtStartDt") . '</td><td>';
    -						print $form->select_date('', 'options_' . $key . '_st_dt');
    +						print $form->selectDate('', 'options_' . $key . '_st_dt');
     						print '</td><td>' . $langs->trans("AdvTgtEndDt") . '</td><td>';
    -						print $form->select_date('', 'options_' . $key . '_end_dt');
    +						print $form->selectDate('', 'options_' . $key . '_end_dt');
     						print '</td></tr></table>';
     
     						print '</td><td>' . "\n";
    @@ -397,9 +406,9 @@ print '<script type="text/javascript" language="javascript">
     		print '</td><td>' . "\n";
     		print '<table class="nobordernopadding"><tr>';
     		print '<td>' . $langs->trans("AdvTgtStartDt") . '</td><td>';
    -		print $form->select_date($array_query['contact_create_st_dt'], 'contact_create_st_dt', 0, 0, 1, 'find_customer', 1, 1);
    +		print $form->selectDate($array_query['contact_create_st_dt'], 'contact_create_st_dt', 0, 0, 1, 'find_customer', 1, 1);
     		print '</td><td>' . $langs->trans("AdvTgtEndDt") . '</td><td>';
    -		print $form->select_date($array_query['contact_create_end_dt'], 'contact_create_end_dt', 0, 0, 1, 'find_customer', 1, 1);
    +		print $form->selectDate($array_query['contact_create_end_dt'], 'contact_create_end_dt', 0, 0, 1, 'find_customer', 1, 1);
     		print '</td></tr></table>';
     		print '</td><td>' . "\n";
     		print '</td></tr>' . "\n";
    @@ -412,9 +421,9 @@ print '<script type="text/javascript" language="javascript">
     		print '</td><td>' . "\n";
     		print '<table class="nobordernopadding"><tr>';
     		print '<td>' . $langs->trans("AdvTgtStartDt") . '</td><td>';
    -		print $form->select_date($array_query['contact_update_st_dt'], 'contact_update_st_dt', 0, 0, 1, 'find_customer', 1, 1);
    +		print $form->selectDate($array_query['contact_update_st_dt'], 'contact_update_st_dt', 0, 0, 1, 'find_customer', 1, 1);
     		print '</td><td>' . $langs->trans("AdvTgtEndDt") . '</td><td>';
    -		print $form->select_date($array_query['contact_update_end_dt'], 'contact_update_end_dt', 0, 0, 1, 'find_customer', 1, 1);
    +		print $form->selectDate($array_query['contact_update_end_dt'], 'contact_update_end_dt', 0, 0, 1, 'find_customer', 1, 1);
     		print '</td></tr></table>';
     		print '</td><td>' . "\n";
     		print '</td></tr>' . "\n";
    @@ -461,9 +470,9 @@ print '<script type="text/javascript" language="javascript">
     
     					print '<table class="nobordernopadding"><tr>';
     					print '<td>' . $langs->trans("AdvTgtStartDt") . '</td><td>';
    -					print $form->select_date('', 'options_' . $key . '_st_dt' . '_cnct');
    +					print $form->selectDate('', 'options_' . $key . '_st_dt' . '_cnct');
     					print '</td><td>' . $langs->trans("AdvTgtEndDt") . '</td><td>';
    -					print $form->select_date('', 'options_' . $key . '_end_dt' . '_cnct');
    +					print $form->selectDate('', 'options_' . $key . '_end_dt' . '_cnct');
     					print '</td></tr></table>';
     
     					print '</td><td>' . "\n";
    @@ -511,7 +520,7 @@ print '<script type="text/javascript" language="javascript">
     
     		print '<form action="' . $_SERVER['PHP_SELF'] . '?action=clear&id=' . $object->id . '" method="POST">';
     		print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    -		print_titre($langs->trans("ToClearAllRecipientsClickHere"));
    +		print load_fiche_titre($langs->trans("ToClearAllRecipientsClickHere"));
     		print '<table class="noborder" width="100%">';
     		print '<tr class="liste_titre">';
     		print '<td class="liste_titre" align="right"><input type="submit" class="button" value="' . $langs->trans("TargetsReset") . '"></td>';
    diff --git a/htdocs/core/tpl/ajax/fileupload_main.tpl.php b/htdocs/core/tpl/ajax/fileupload_main.tpl.php
    index 93f0826e160..c68abf1ca0a 100644
    --- a/htdocs/core/tpl/ajax/fileupload_main.tpl.php
    +++ b/htdocs/core/tpl/ajax/fileupload_main.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011-2013 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011-2013 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/tpl/ajax/fileupload_view.tpl.php b/htdocs/core/tpl/ajax/fileupload_view.tpl.php
    index 482a3aef8e4..12ef47abc18 100644
    --- a/htdocs/core/tpl/ajax/fileupload_view.tpl.php
    +++ b/htdocs/core/tpl/ajax/fileupload_view.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011-2012 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011-2012 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/tpl/ajax/objectlinked_lineimport.tpl.php b/htdocs/core/tpl/ajax/objectlinked_lineimport.tpl.php
    index ae80389bd3a..ad0ec9421ad 100644
    --- a/htdocs/core/tpl/ajax/objectlinked_lineimport.tpl.php
    +++ b/htdocs/core/tpl/ajax/objectlinked_lineimport.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2011-2013 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2011-2013 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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 +22,12 @@ if (empty($conf) || ! is_object($conf))
     	exit;
     }
     
    +$objectUrl = $object->getNomUrl(0,'',0,1);
    +if($object->element == 'propal')
    +{
    +    $objectUrl = DOL_URL_ROOT.'/comm/propal/card.php?id='.$object->id;
    +}
    +
     ?>
     
     <!-- START TEMPLATE IMPORT OBJECT LINKED LINES -->
    @@ -47,7 +53,7 @@ $(document).ready(function(){
     	        });
     
     	        
    -	        var $dialog = $('<form id="' + formId + '" action="<?php print $object->getNomUrl(0,'',0,1); ?>"  method="post" ></form>')
    +	        var $dialog = $('<form id="' + formId + '" action="<?php print $objectUrl ; ?>"  method="post" ></form>')
     	        .load( page + " #tablelines", function() {
     
     	        	$("#" + formId + " #tablelines").prop("id", "ajaxloaded_tablelines"); // change id attribute
    diff --git a/htdocs/core/tpl/ajaxrow.tpl.php b/htdocs/core/tpl/ajaxrow.tpl.php
    index 4ae64ea82ed..167d51ade75 100644
    --- a/htdocs/core/tpl/ajaxrow.tpl.php
    +++ b/htdocs/core/tpl/ajaxrow.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012 Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2016 Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -16,8 +16,13 @@
      * along with this program. If not, see <http://www.gnu.org/licenses/>.
      *
      * Javascript code to activate drag and drop on lines
    - * You can use this if you want to be abale to drag and drop rows of a table.
    - * You must add id="tablelines" on table level tag and have ($nboflines or count($object->lines) or count($taskarray) > 0)
    + * You can use this if you want to be able to drag and drop rows of a table.
    + * You must add id="tablelines" on table level tag
    + * and $object and $object->id is defined
    + * and $object->fk_element or $fk_element is defined
    + * and have ($nboflines or count($object->lines) or count($taskarray) > 0)
    + * and have $table_element_line = 'tablename' or $object->table_element_line with line to move
    + *
      */
     
     // Protection to avoid direct call of template
    @@ -32,7 +37,7 @@ if (empty($object) || ! is_object($object))
     <!-- BEGIN PHP TEMPLATE AJAXROW.TPL.PHP - Script to enable drag and drop on lines of a table -->
     <?php
     $id=$object->id;
    -$fk_element=$object->fk_element;
    +$fk_element=empty($object->fk_element)?$fk_element:$object->fk_element;
     $table_element_line=(empty($table_element_line)?$object->table_element_line:$table_element_line);
     $nboflines=(isset($object->lines)?count($object->lines):(isset($tasksarray)?count($tasksarray):(empty($nboflines)?0:$nboflines)));
     $forcereloadpage=empty($conf->global->MAIN_FORCE_RELOAD_PAGE)?0:1;
    diff --git a/htdocs/core/tpl/bloc_showhide.tpl.php b/htdocs/core/tpl/bloc_showhide.tpl.php
    index 3f9c1eb0a1d..8a45ab3fc37 100644
    --- a/htdocs/core/tpl/bloc_showhide.tpl.php
    +++ b/htdocs/core/tpl/bloc_showhide.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012       Regis Houssin           <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012       Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2013       Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
    diff --git a/htdocs/core/tpl/card_presend.tpl.php b/htdocs/core/tpl/card_presend.tpl.php
    index b6f11828ffe..db3514d7778 100644
    --- a/htdocs/core/tpl/card_presend.tpl.php
    +++ b/htdocs/core/tpl/card_presend.tpl.php
    @@ -74,6 +74,7 @@ if ($action == 'presend')
     	{
     		$outputlangs = new Translate('', $conf);
     		$outputlangs->setDefaultLang($newlang);
    +		// Load traductions files requiredby by page
     		$outputlangs->loadLangs(array('commercial','bills','orders','contracts','members','propal','products','supplier_proposal','interventions'));
     	}
     
    @@ -139,6 +140,10 @@ if ($action == 'presend')
     			$liste[$key] = $value;
     		}
     	}
    +	elseif ($object->element == 'contact')
    +	{
    +		$liste['contact'] = $object->getFullName($langs)." <".$object->email.">";
    +	}
     	elseif ($object->element == 'user' || $object->element == 'member')
     	{
     		$liste['thirdparty'] = $object->getFullName($langs)." <".$object->email.">";
    @@ -168,7 +173,6 @@ if ($action == 'presend')
     			$formmail->withtouser = $listeuser;
     			$formmail->withtoccuser = $listeuser;
     		}
    -
     	}
     
     	$formmail->withto = GETPOST('sendto') ? GETPOST('sendto') : $liste;
    diff --git a/htdocs/core/tpl/commonfields_add.tpl.php b/htdocs/core/tpl/commonfields_add.tpl.php
    index 4c81e50c65c..23a60d7f675 100644
    --- a/htdocs/core/tpl/commonfields_add.tpl.php
    +++ b/htdocs/core/tpl/commonfields_add.tpl.php
    @@ -19,6 +19,7 @@
      * $action
      * $conf
      * $langs
    + * $form
      */
     
     // Protection to avoid direct call of template
    @@ -39,7 +40,7 @@ foreach($object->fields as $key => $val)
     	// Discard if extrafield is a hidden field on form
     	if (abs($val['visible']) != 1) continue;
     
    -	if (array_key_exists('enabled', $val) && isset($val['enabled']) && ! $val['enabled']) continue;	// We don't want this field
    +	if (array_key_exists('enabled', $val) && isset($val['enabled']) && ! verifCond($val['enabled'])) continue;	// We don't want this field
     
     	print '<tr id="field_'.$key.'">';
     	print '<td';
    @@ -49,6 +50,9 @@ foreach($object->fields as $key => $val)
     	print '"';
     	print '>';
     	print $langs->trans($val['label']);
    +    if(!empty($val['help'])){
    +        print $form->textwithpicto('',$langs->trans($val['help']));
    +    }
     	print '</td>';
     	print '<td>';
     	if (in_array($val['type'], array('int', 'integer'))) $value = GETPOST($key, 'int');
    @@ -60,4 +64,4 @@ foreach($object->fields as $key => $val)
     }
     
     ?>
    -<!-- END PHP TEMPLATE commonfields_add.tpl.php -->
    \ No newline at end of file
    +<!-- END PHP TEMPLATE commonfields_add.tpl.php -->
    diff --git a/htdocs/core/tpl/commonfields_edit.tpl.php b/htdocs/core/tpl/commonfields_edit.tpl.php
    index 427e9f6b894..ce41cff24d0 100644
    --- a/htdocs/core/tpl/commonfields_edit.tpl.php
    +++ b/htdocs/core/tpl/commonfields_edit.tpl.php
    @@ -40,7 +40,7 @@ foreach($object->fields as $key => $val)
     	// Discard if extrafield is a hidden field on form
     	if (abs($val['visible']) != 1) continue;
     
    -	if (array_key_exists('enabled', $val) && isset($val['enabled']) && ! $val['enabled']) continue;	// We don't want this field
    +	if (array_key_exists('enabled', $val) && isset($val['enabled']) && ! verifCond($val['enabled'])) continue;	// We don't want this field
     
     	print '<tr><td';
     	print ' class="titlefieldcreate';
    diff --git a/htdocs/core/tpl/commonfields_view.tpl.php b/htdocs/core/tpl/commonfields_view.tpl.php
    index 73f63360715..b6b2e572e49 100644
    --- a/htdocs/core/tpl/commonfields_view.tpl.php
    +++ b/htdocs/core/tpl/commonfields_view.tpl.php
    @@ -42,7 +42,7 @@ foreach($object->fields as $key => $val)
     	// Discard if extrafield is a hidden field on form
     	if (abs($val['visible']) != 1) continue;
     
    -	if (array_key_exists('enabled', $val) && isset($val['enabled']) && ! $val['enabled']) continue;	// We don't want this field
    +	if (array_key_exists('enabled', $val) && isset($val['enabled']) && ! verifCond($val['enabled'])) continue;	// We don't want this field
     	if (in_array($key, array('ref','status'))) continue;	// Ref and status are already in dol_banner
     
     	$value=$object->$key;
    diff --git a/htdocs/core/tpl/contacts.tpl.php b/htdocs/core/tpl/contacts.tpl.php
    index 99ae9a699a1..c172575a011 100644
    --- a/htdocs/core/tpl/contacts.tpl.php
    +++ b/htdocs/core/tpl/contacts.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012      Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2015-2016 Charlie BENKE 	<charlie@patas-monkey.com>
      *
    @@ -42,6 +42,7 @@ elseif ($module == 'invoice_supplier')	{ $permission=$user->rights->fournisseur-
     elseif ($module == 'project')		{ $permission=$user->rights->projet->creer; }
     elseif ($module == 'action')		{ $permission=$user->rights->agenda->myactions->create; }
     elseif ($module == 'shipping')		{ $permission=$user->rights->expedition->creer; }
    +elseif ($module == 'reception')		{ $permission=$user->rights->reception->creer; }
     elseif ($module == 'project_task')	{ $permission=$user->rights->projet->creer; }
     elseif (! isset($permission) && isset($user->rights->$module->creer))
     {
    @@ -94,7 +95,7 @@ if ($permission) {
     		<div class="tagtd maxwidthonsmartphone">
     		<?php
     		$tmpobject=$object;
    -		if ($object->element == 'shipping' && is_object($objectsrc)) $tmpobject=$objectsrc;
    +		if (($object->element == 'shipping' || $object->element == 'reception') && is_object($objectsrc)) $tmpobject=$objectsrc;
     		echo $formcompany->selectTypeContact($tmpobject, '', 'type','internal');
     		?></div>
     		<div class="tagtd">&nbsp;</div>
    @@ -133,7 +134,7 @@ if ($permission) {
     		<div class="tagtd maxwidthonsmartphone noborderbottom">
     			<?php
     			$tmpobject=$object;
    -			if ($object->element == 'shipping' && is_object($objectsrc)) $tmpobject=$objectsrc;
    +			if (($object->element == 'shipping'|| $object->element == 'reception') && is_object($objectsrc)) $tmpobject=$objectsrc;
     			$formcompany->selectTypeContact($tmpobject, '', 'type','external', 'position', 0, 'minwidth100imp'); ?>
     		</div>
     		<div class="tagtd noborderbottom">&nbsp;</div>
    @@ -157,20 +158,23 @@ if ($permission) {
     	</form>
     
     	<?php
    +	$var = false;
    +
     	$arrayofsource=array('internal','external');	// Show both link to user and thirdparties contacts
     	foreach($arrayofsource as $source) {
     
     		$tmpobject=$object;
    -		if ($object->element == 'shipping' && is_object($objectsrc)) $tmpobject=$objectsrc;
    +		if (($object->element == 'shipping'|| $object->element == 'reception') && is_object($objectsrc)) $tmpobject=$objectsrc;
     
     		$tab = $tmpobject->liste_contact(-1,$source);
     		$num=count($tab);
     
     		$i = 0;
     		while ($i < $num) {
    +		    $var = ! $var;
     	?>
     
    -	<form class="tagtr oddeven">
    +	<form class="tagtr oddeven <?php echo ($var?'impair':'pair') ?>">
     		<div class="tagtd" align="left">
     			<?php if ($tab[$i]['source']=='internal') echo $langs->trans("User"); ?>
     			<?php if ($tab[$i]['source']=='external') echo $langs->trans("ThirdPartyContact"); ?>
    @@ -199,12 +203,12 @@ if ($permission) {
     			if ($tab[$i]['source']=='internal')
     			{
     				$userstatic->fetch($tab[$i]['id']);
    -				echo $userstatic->getNomUrl(-1);
    +				echo $userstatic->getNomUrl(-1, '', 0, 0, 0, 0, '', 'valignmiddle');
     			}
     			if ($tab[$i]['source']=='external')
     			{
     				$contactstatic->fetch($tab[$i]['id']);
    -				echo $contactstatic->getNomUrl(1);
    +				echo $contactstatic->getNomUrl(1, '', 0, 0, 0, 0, '', 'valignmiddle');
     			}
     			?>
     		</div>
    diff --git a/htdocs/core/tpl/document_actions_post_headers.tpl.php b/htdocs/core/tpl/document_actions_post_headers.tpl.php
    index aa7caaa1e87..429fe8ac682 100644
    --- a/htdocs/core/tpl/document_actions_post_headers.tpl.php
    +++ b/htdocs/core/tpl/document_actions_post_headers.tpl.php
    @@ -52,7 +52,7 @@ if (in_array($modulepart, array('product', 'produit', 'societe', 'user', 'ticket
     if ($action == 'delete')
     {
     	$langs->load("companies");	// Need for string DeleteFile+ConfirmDeleteFiles
    -	$ret = $form->form_confirm(
    +	print $form->formconfirm(
     			$_SERVER["PHP_SELF"] . '?id=' . $object->id . '&urlfile=' . urlencode(GETPOST("urlfile")) . '&linkid=' . GETPOST('linkid', 'int') . (empty($param)?'':$param),
     			$langs->trans('DeleteFile'),
     			$langs->trans('ConfirmDeleteFile'),
    @@ -61,7 +61,6 @@ if ($action == 'delete')
     			0,
     			1
     	);
    -	if ($ret == 'html') print '<br>';
     }
     
     $formfile=new FormFile($db);
    diff --git a/htdocs/core/tpl/error.tpl.php b/htdocs/core/tpl/error.tpl.php
    index 8fb1641a364..6e120851b98 100644
    --- a/htdocs/core/tpl/error.tpl.php
    +++ b/htdocs/core/tpl/error.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/tpl/extrafields_list_print_fields.tpl.php b/htdocs/core/tpl/extrafields_list_print_fields.tpl.php
    index d7b5f67adaf..6b6d22cf822 100644
    --- a/htdocs/core/tpl/extrafields_list_print_fields.tpl.php
    +++ b/htdocs/core/tpl/extrafields_list_print_fields.tpl.php
    @@ -40,6 +40,14 @@ if (! empty($extrafieldsobjectkey))	// $extrafieldsobject is the $object->table_
     				print $extrafields->showOutputField($key, $value, '', $extrafieldsobjectkey);
     				print '</td>';
     				if (! $i) $totalarray['nbfield']++;
    +
    +                if ($extrafields->attributes[$extrafieldsobjectkey]['totalizable'][$key]) {
    +                    if (! $i) {
    +                        // we keep position for the first line
    +                        $totalarray['totalizable'][$key]['pos'] = $totalarray['nbfield'];
    +                    }
    +                    $totalarray['totalizable'][$key]['total'] += $obj->$tmpkey;
    +                }
     				if (! empty($val['isameasure']))
     				{
     					if (! $i) $totalarray['pos'][$totalarray['nbfield']]='ef.'.$tmpkey;
    diff --git a/htdocs/core/tpl/extrafields_list_search_param.tpl.php b/htdocs/core/tpl/extrafields_list_search_param.tpl.php
    index 6cda8721dcd..dfc9e59d0f8 100644
    --- a/htdocs/core/tpl/extrafields_list_search_param.tpl.php
    +++ b/htdocs/core/tpl/extrafields_list_search_param.tpl.php
    @@ -8,9 +8,12 @@ if (empty($conf) || ! is_object($conf))
     }
     
     // Loop to complete $param for extrafields
    +if (! empty($search_array_options))	// $extrafieldsobject is the $object->table_element like 'societe', 'socpeople', ...
    +{
     foreach ($search_array_options as $key => $val)
     {
     	$crit=$val;
     	$tmpkey=preg_replace('/search_options_/','',$key);
     	if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val);
    -}
    \ No newline at end of file
    +}
    +}
    diff --git a/htdocs/core/tpl/extrafields_list_search_sql.tpl.php b/htdocs/core/tpl/extrafields_list_search_sql.tpl.php
    index 8492160c185..f3c5a10e95b 100644
    --- a/htdocs/core/tpl/extrafields_list_search_sql.tpl.php
    +++ b/htdocs/core/tpl/extrafields_list_search_sql.tpl.php
    @@ -10,13 +10,14 @@ if (empty($conf) || ! is_object($conf))
     if (empty($extrafieldsobjectkey) && is_object($object)) $extrafieldsobjectkey=$object->table_element;
     
     // Loop to complete the sql search criterias from extrafields
    -if (! empty($extrafieldsobjectkey))	// $extrafieldsobject is the $object->table_element like 'societe', 'socpeople', ...
    +if (! empty($extrafieldsobjectkey) && ! empty($search_array_options) && is_array($search_array_options))	// $extrafieldsobject is the $object->table_element like 'societe', 'socpeople', ...
     {
     	foreach ($search_array_options as $key => $val)
     	{
     		$crit=$val;
     		$tmpkey=preg_replace('/search_options_/','',$key);
     		$typ=$extrafields->attributes[$extrafieldsobjectkey]['type'][$tmpkey];
    +
     		if ($crit != '' && in_array($typ, array('date', 'datetime', 'timestamp')))
     		{
     			$sql .= " AND ef.".$tmpkey." = '".$db->idate($crit)."'";
    @@ -31,4 +32,4 @@ if (! empty($extrafieldsobjectkey))	// $extrafieldsobject is the $object->table_
     			$sql .= natural_search('ef.'.$tmpkey, $crit, $mode_search);
     		}
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/core/tpl/extrafields_view.tpl.php b/htdocs/core/tpl/extrafields_view.tpl.php
    index 7253474c36b..c5c2125750e 100644
    --- a/htdocs/core/tpl/extrafields_view.tpl.php
    +++ b/htdocs/core/tpl/extrafields_view.tpl.php
    @@ -24,34 +24,36 @@
      * $parameters
      * $cols
      */
    -
     // Protection to avoid direct call of template
     if (empty($object) || ! is_object($object))
     {
     	print "Error, template page can't be called as URL";
     	exit;
     }
    +
     if (! is_object($form)) $form=new Form($db);
     
    +
     ?>
     <!-- BEGIN PHP TEMPLATE extrafields_view.tpl.php -->
     <?php
    -
     if (! is_array($parameters)) $parameters = array();
     if (! empty($cols)) $parameters['colspan'] = ' colspan="'.$cols.'"';
     if (! empty($cols)) $parameters['cols'] = $cols;
     if (! empty($object->fk_soc)) $parameters['socid'] = $object->fk_soc;
    -
     $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action);
     print $hookmanager->resPrint;
     if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
     
    +
     //var_dump($extrafields->attributes[$object->table_element]);
     if (empty($reshook) && is_array($extrafields->attributes[$object->table_element]['label']))
    +
     {
     	foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $label)
     	{
     		// Discard if extrafield is a hidden field on form
    +
     		$enabled = 1;
     		if ($enabled && isset($extrafields->attributes[$object->table_element]['enabled'][$key]))
     		{
    @@ -74,7 +76,6 @@ if (empty($reshook) && is_array($extrafields->attributes[$object->table_element]
     
     		// Load language if required
     		if (! empty($extrafields->attributes[$object->table_element]['langfile'][$key])) $langs->load($extrafields->attributes[$object->table_element]['langfile'][$key]);
    -
     		if ($action == 'edit_extras')
     		{
     			$value = (isset($_POST["options_" . $key]) ? $_POST["options_" . $key] : $object->array_options["options_" . $key]);
    @@ -96,27 +97,25 @@ if (empty($reshook) && is_array($extrafields->attributes[$object->table_element]
     			print '<td';
     			print ' class="';
     			//var_dump($action);exit;
    +
     			if ((! empty($action) && ($action == 'create' || $action == 'edit')) && ! empty($extrafields->attributes[$object->table_element]['required'][$key])) print ' fieldrequired';
     			print '">';
    -			if (! empty($extrafields->attributes[$object->table_element]['help'][$key])) print $form->textwithpicto($langs->trans($label), $extrafields->attributes[$object->table_element]['help'][$key]);
    +			if (! empty($extrafields->attributes[$object->table_element]['help'][$key])) print $form->textwithpicto($langs->trans($label), $langs->trans($extrafields->attributes[$object->table_element]['help'][$key]));
     			else print $langs->trans($label);
     			print '</td>';
     
     			//TODO Improve element and rights detection
     			//var_dump($user->rights);
     			$permok=false;
    -
     			$keyforperm=$object->element;
     			if ($object->element == 'fichinter') $keyforperm='ficheinter';
     			if (isset($user->rights->$keyforperm)) $permok=$user->rights->$keyforperm->creer||$user->rights->$keyforperm->create||$user->rights->$keyforperm->write;
    -
     			if ($object->element=='order_supplier')   $permok=$user->rights->fournisseur->commande->creer;
     			if ($object->element=='invoice_supplier') $permok=$user->rights->fournisseur->facture->creer;
     			if ($object->element=='shipping')         $permok=$user->rights->expedition->creer;
     			if ($object->element=='delivery')         $permok=$user->rights->expedition->livraison->creer;
     			if ($object->element=='productlot')       $permok=$user->rights->stock->creer;
     			if ($object->element=='facturerec') 	  $permok=$user->rights->facture->creer;
    -
     			if (($object->statut == 0 || ! empty($extrafields->attributes[$object->table_element]['alwayseditable'][$key]))
     				&& $permok && ($action != 'edit_extras' || GETPOST('attribute') != $key)
     			    && empty($extrafields->attributes[$object->table_element]['computed'][$key]))
    @@ -129,7 +128,8 @@ if (empty($reshook) && is_array($extrafields->attributes[$object->table_element]
     			print '</td>';
     
     			$html_id = !empty($object->id) ? $object->element.'_extras_'.$key.'_'.$object->id : '';
    -			print '<td id="'.$html_id.'" class="'.$object->element.'_extras_'.$key.'"'.($cols?' colspan="'.$cols.'"':'').'>';
    +
    +			print '<td id="'.$html_id.'" class="'.$object->element.'_extras_'.$key.' wordbreak"'.($cols?' colspan="'.$cols.'"':'').'>';
     
     			// Convert date into timestamp format
     			if (in_array($extrafields->attributes[$object->table_element]['type'][$key], array('date','datetime')))
    @@ -143,21 +143,19 @@ if (empty($reshook) && is_array($extrafields->attributes[$object->table_element]
     				//print 'x'.$object->array_options['options_' . $key].'-'.$datenotinstring.' - '.dol_print_date($datenotinstring, 'dayhour');
     				$value = isset($_POST["options_" . $key]) ? dol_mktime($_POST["options_" . $key . "hour"], $_POST["options_" . $key . "min"], 0, $_POST["options_" . $key . "month"], $_POST["options_" . $key . "day"], $_POST["options_" . $key . "year"]) : $datenotinstring;
     			}
    -
     			//TODO Improve element and rights detection
     			if ($action == 'edit_extras' && $permok && GETPOST('attribute','none') == $key)
     			{
     			    $fieldid='id';
     			    if ($object->table_element == 'societe') $fieldid='socid';
    -
     			    print '<form enctype="multipart/form-data" action="' . $_SERVER["PHP_SELF"] . '" method="post" name="formextra">';
     				print '<input type="hidden" name="action" value="update_extras">';
     				print '<input type="hidden" name="attribute" value="' . $key . '">';
     				print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
     				print '<input type="hidden" name="'.$fieldid.'" value="' . $object->id . '">';
    -
     				print $extrafields->showInputField($key, $value, '', '', '', 0, $object->id);
     
    +
     				print '<input type="submit" class="button" value="' . dol_escape_htmltag($langs->trans('Modify')) . '">';
     
     				print '</form>';
    @@ -167,6 +165,7 @@ if (empty($reshook) && is_array($extrafields->attributes[$object->table_element]
     				//print $key.'-'.$value.'-'.$object->table_element;
     				print $extrafields->showOutputField($key, $value, '', $object->table_element);
     			}
    +
     			print '</td>';
     			print '</tr>' . "\n";
     		}
    @@ -203,11 +202,10 @@ if (empty($reshook) && is_array($extrafields->attributes[$object->table_element]
     								});
     					    	});
     						}
    -
     						setListDependencies();
     				    });
     				</script>'."\n";
     	}
     }
     ?>
    -<!-- END PHP TEMPLATE extrafields_view.tpl.php -->
    \ No newline at end of file
    +<!-- END PHP TEMPLATE extrafields_view.tpl.php -->
    diff --git a/htdocs/core/tpl/filemanager.tpl.php b/htdocs/core/tpl/filemanager.tpl.php
    index b60941f4eeb..787d3721f35 100644
    --- a/htdocs/core/tpl/filemanager.tpl.php
    +++ b/htdocs/core/tpl/filemanager.tpl.php
    @@ -28,7 +28,7 @@ if (empty($conf) || ! is_object($conf))
     ?>
     
     <!-- BEGIN PHP TEMPLATE core/tpl/filemanager.tpl.php -->
    -<!-- Doc of fileTree plugin at http://www.abeautifulsite.net/blog/2008/03/jquery-file-tree/ -->
    +<!-- Doc of fileTree plugin at https://www.abeautifulsite.net/jquery-file-tree -->
     
     <?php
     
    @@ -38,15 +38,18 @@ if (empty($module)) $module='ecm';
     
     $permtoadd = 0;
     $permtoupload = 0;
    +$showroot = 0;
     if ($module == 'ecm')
     {
     	$permtoadd = $user->rights->ecm->setup;
     	$permtoupload = $user->rights->ecm->upload;
    +	$showroot = 0;
     }
     if ($module == 'medias')
     {
     	$permtoadd = ($user->rights->mailing->creer || $user->rights->website->write);
     	$permtoupload = ($user->rights->mailing->creer || $user->rights->website->write);
    +	$showroot = 1;
     }
     
     
    @@ -69,29 +72,25 @@ if (($action == 'delete' || $action == 'file_manager_delete') && empty($conf->us
     print '<div class="inline-block toolbarbutton centpercent">';
     
     // Toolbar
    -//if (preg_match('/\/ecm/', $_SERVER['PHP_SELF'])) {
    -//if ($module == 'ecm') {
    -
    -	if ($permtoadd)
    -	{
    -	    print '<a href="'.DOL_URL_ROOT.'/ecm/dir_add_card.php?action=create&module='.urlencode($module).($website?'&website='.$website:'').($pageid?'&pageid='.$pageid:'').'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?file_manager=1&website='.$website.'&pageid='.$pageid).'" class="inline-block valignmiddle toolbarbutton" title="'.dol_escape_htmltag($langs->trans('ECMAddSection')).'">';
    -	    print '<img class="toolbarbutton" border="0" src="'.DOL_URL_ROOT.'/theme/common/folder-new.png">';
    -	    print '</a>';
    -	}
    -	else
    -	{
    -	    print '<a href="#" class="inline-block valignmiddle toolbarbutton" title="'.$langs->trans("NotAllowed").'">';
    -	    print '<img class="toolbarbutton" border="0" src="'.DOL_URL_ROOT.'/theme/common/folder-new.png">';
    -	    print '</a>';
    -	}
    -	if ($module == 'ecm')
    -	{
    -		$tmpurl=((! empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABLE_JS))?'#':($_SERVER["PHP_SELF"].'?action=refreshmanual'.($module?'&amp;module='.$module:'').($section?'&amp;section='.$section:'')));
    -		print '<a href="'.$tmpurl.'" class="inline-block valignmiddle toolbarbutton" title="'.dol_escape_htmltag($langs->trans('ReSyncListOfDir')).'">';
    -		print '<img id="refreshbutton" class="toolbarbutton" border="0" src="'.DOL_URL_ROOT.'/theme/common/view-refresh.png">';
    -		print '</a>';
    -	}
    -//}
    +if ($permtoadd)
    +{
    +	print '<a href="'.DOL_URL_ROOT.'/ecm/dir_add_card.php?action=create&module='.urlencode($module).($websitekey?'&website='.$websitekey:'').($pageid?'&pageid='.$pageid:'').'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?file_manager=1&website='.$websitekey.'&pageid='.$pageid).'" class="inline-block valignmiddle toolbarbutton" title="'.dol_escape_htmltag($langs->trans('ECMAddSection')).'">';
    +    print '<img class="toolbarbutton" border="0" src="'.DOL_URL_ROOT.'/theme/common/folder-new.png">';
    +    print '</a>';
    +}
    +else
    +{
    +    print '<a href="#" class="inline-block valignmiddle toolbarbutton" title="'.$langs->trans("NotAllowed").'">';
    +    print '<img class="toolbarbutton" border="0" src="'.DOL_URL_ROOT.'/theme/common/folder-new.png">';
    +    print '</a>';
    +}
    +if ($module == 'ecm')
    +{
    +	$tmpurl=((! empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABLE_JS))?'#':($_SERVER["PHP_SELF"].'?action=refreshmanual'.($module?'&amp;module='.$module:'').($section?'&amp;section='.$section:'')));
    +	print '<a href="'.$tmpurl.'" class="inline-block valignmiddle toolbarbutton" title="'.dol_escape_htmltag($langs->trans('ReSyncListOfDir')).'">';
    +	print '<img id="refreshbutton" class="toolbarbutton" border="0" src="'.DOL_URL_ROOT.'/theme/common/view-refresh.png">';
    +	print '</a>';
    +}
     
     // Start "Add new file" area
     $nameforformuserfile = 'formuserfileecm';
    @@ -112,7 +111,7 @@ if ((! empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABL
     		<?php
     	}
     
    -	$sectiondir=GETPOST('file','alpha');
    +	$sectiondir=GETPOST('file','alpha')?GETPOST('file','alpha'):GETPOST('section_dir','alpha');
     	print '<!-- Start form to attach new file in filemanager.tpl.php sectionid='.$section.' sectiondir='.$sectiondir.' -->'."\n";
     	include_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
         $formfile=new FormFile($db);
    @@ -144,11 +143,13 @@ if ($action == 'delete_section')
     
     if (empty($action) || $action == 'editfile' || $action == 'file_manager' || preg_match('/refresh/i',$action) || $action == 'delete')
     {
    +	$langs->load("ecm");
    +
     	print '<table width="100%" class="liste noborderbottom">'."\n";
     
     	print '<!-- Title for manual directories -->'."\n";
     	print '<tr class="liste_titre">'."\n";
    -    print '<th class="liste_titre" align="left" colspan="6">';
    +    print '<th class="liste_titre" align="left">';
         print '&nbsp;'.$langs->trans("ECMSections");
     	print '</th></tr>';
     
    @@ -159,18 +160,26 @@ if (empty($action) || $action == 'editfile' || $action == 'file_manager' || preg
     
         if (! empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABLE_JS))
         {
    -        print '<tr><td colspan="6">';
    +    	// Show the link to "Root"
    +    	if ($showroot)
    +    	{
    +    		print '<tr><td><div style="padding-left: 5px; padding-right: 5px;"><a href="'.$_SERVER["PHP_SELF"].'?file_manager=1&pageid='.$pageid.'">'.$langs->trans("Root").'</a></div></td></tr>';
    +    	}
     
    -    	// Show filemanager tree (will be filled by call of ajax enablefiletreeajax.tpl.php that execute ajaxdirtree.php)
    +
    +
    +    	print '<tr><td>';
    +
    +    	// Show filemanager tree (will be filled by a call of ajax /ecm/tpl/enablefiletreeajax.tpl.php, later, that executes ajaxdirtree.php)
     	    print '<div id="filetree" class="ecmfiletree"></div>';
     
     	    if ($action == 'deletefile') print $form->formconfirm('eeeee', $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile', '', '', 'deletefile');
     
     	    print '</td></tr>';
         }
    -    else
    +    else	// Show filtree when ajax is disabled (rare)
         {
    -        print '<tr><td colspan="6" style="padding-left: 20px">';
    +        print '<tr><td style="padding-left: 20px">';
     
             $_POST['modulepart'] = $module;
             $_POST['openeddir'] = GETPOST('openeddir');
    @@ -179,6 +188,9 @@ if (empty($action) || $action == 'editfile' || $action == 'file_manager' || preg
             // Show filemanager tree (will be filled by direct include of ajaxdirtree.php in mode noajax, this will return all dir - all levels - to show)
             print '<div id="filetree" class="ecmfiletree">';
     
    +        // Variables that may be defined:
    +        // $_GET['modulepart'], $_GET['openeddir'], $_GET['sortfield'], $_GET['sortorder']
    +        // $_POST['dir']
             $mode='noajax';
             if (empty($url)) $url=DOL_URL_ROOT.'/ecm/index.php';
             include DOL_DOCUMENT_ROOT.'/core/ajax/ajaxdirtree.php';
    @@ -204,7 +216,7 @@ if (empty($action) || $action == 'editfile' || $action == 'file_manager' || preg
     
     $mode='noajax';
     if (empty($url)) $url=DOL_URL_ROOT.'/ecm/index.php';
    -include DOL_DOCUMENT_ROOT.'/core/ajax/ajaxdirpreview.php';
    +include DOL_DOCUMENT_ROOT.'/core/ajax/ajaxdirpreview.php';	// Show content of a directory on right side
     
     
     // End right panel
    @@ -217,7 +229,15 @@ include DOL_DOCUMENT_ROOT.'/core/ajax/ajaxdirpreview.php';
     <?php
     
     
    -if (! empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABLE_JS)) {
    +if (! empty($conf->use_javascript_ajax) && empty($conf->global->MAIN_ECM_DISABLE_JS)) // Show filtree when ajax is enabled
    +{
    +	//var_dump($modulepart);
    +	// Variables that may be defined:
    +	// $_GET['modulepart'], $_GET['openeddir'], $_GET['sortfield'], $_GET['sortorder']
    +	// $_POST['dir']
    +	// $_POST['section_dir'], $_POST['section_id'], $_POST['token'], $_POST['max_file_size'], $_POST['sendit']
    +	if (GETPOST('section_dir','alpha')) { $preopened=GETPOST('section_dir','alpha'); }
    +
     	include DOL_DOCUMENT_ROOT.'/ecm/tpl/enablefiletreeajax.tpl.php';
     }
     
    diff --git a/htdocs/core/tpl/footer.tpl.php b/htdocs/core/tpl/footer.tpl.php
    index 8fb1641a364..6e120851b98 100644
    --- a/htdocs/core/tpl/footer.tpl.php
    +++ b/htdocs/core/tpl/footer.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/tpl/header.tpl.php b/htdocs/core/tpl/header.tpl.php
    index 1b97d4fd763..63f64441f4c 100644
    --- a/htdocs/core/tpl/header.tpl.php
    +++ b/htdocs/core/tpl/header.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/core/tpl/login.tpl.php b/htdocs/core/tpl/login.tpl.php
    index 0f22527ff01..96510b85617 100644
    --- a/htdocs/core/tpl/login.tpl.php
    +++ b/htdocs/core/tpl/login.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2009-2015 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2009-2015 Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2013 Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -19,6 +19,7 @@
     // Need global variable $title to be defined by caller (like dol_loginfunction)
     // Caller can also set 	$morelogincontent = array(['options']=>array('js'=>..., 'table'=>...);
     
    +
     // Protection to avoid direct call of template
     if (empty($conf) || ! is_object($conf))
     {
    @@ -27,6 +28,8 @@ if (empty($conf) || ! is_object($conf))
     }
     
     
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +
     header('Cache-Control: Public, must-revalidate');
     header("Content-type: text/html; charset=".$conf->file->character_set_client);
     
    @@ -55,10 +58,22 @@ if (! preg_match('/'.constant('DOL_APPLICATION_TITLE').'/', $title)) $disablenof
     
     print top_htmlhead('', $titleofloginpage, 0, 0, $arrayofjs, array(), 0, $disablenofollow);
     
    +
    +$colorbackhmenu1='60,70,100';      // topmenu
    +if (! isset($conf->global->THEME_ELDY_TOPMENU_BACK1)) $conf->global->THEME_ELDY_TOPMENU_BACK1=$colorbackhmenu1;
    +$colorbackhmenu1     =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TOPMENU_BACK1)?$colorbackhmenu1:$conf->global->THEME_ELDY_TOPMENU_BACK1):(empty($user->conf->THEME_ELDY_TOPMENU_BACK1)?$colorbackhmenu1:$user->conf->THEME_ELDY_TOPMENU_BACK1);
    +$colorbackhmenu1=join(',',colorStringToArray($colorbackhmenu1));    // Normalize value to 'x,y,z'
    +
     ?>
     <!-- BEGIN PHP TEMPLATE LOGIN.TPL.PHP -->
     
    -<body class="body bodylogin"<?php print empty($conf->global->MAIN_LOGIN_BACKGROUND)?'':' style="background-size: cover; background-position: center center; background-attachment: fixed; background-repeat: no-repeat; background-image: url(\''.DOL_URL_ROOT.'/viewimage.php?cache=1&noalt=1&modulepart=mycompany&file='.urlencode($conf->global->MAIN_LOGIN_BACKGROUND).'\')"'; ?>>
    +<?php if (!empty($conf->global->ADD_UNSPLASH_LOGIN_BACKGROUND)) {
    +	// For example $conf->global->ADD_UNSPLASH_LOGIN_BACKGROUND = 'https://source.unsplash.com/random'
    +	?>
    +	<body class="body bodylogin" style="background-image: url('<?php echo $conf->global->ADD_UNSPLASH_LOGIN_BACKGROUND; ?>'); background-repeat: no-repeat; background-position: center center; background-attachment: fixed; background-size: cover; background-color: #ffffff;">
    +	<?php } else { ?>
    +	<body class="body bodylogin"<?php print empty($conf->global->MAIN_LOGIN_BACKGROUND)?'':' style="background-size: cover; background-position: center center; background-attachment: fixed; background-repeat: no-repeat; background-image: url(\''.DOL_URL_ROOT.'/viewimage.php?cache=1&noalt=1&modulepart=mycompany&file=logos/'.urlencode($conf->global->MAIN_LOGIN_BACKGROUND).'\')"'; ?>>
    +<?php } ?>
     
     <?php if (empty($conf->dol_use_jmobile)) { ?>
     <script type="text/javascript">
    @@ -69,7 +84,7 @@ $(document).ready(function () {
     </script>
     <?php } ?>
     
    -<div class="login_center center">
    +<div class="login_center center"<?php print empty($conf->global->MAIN_LOGIN_BACKGROUND)?' style="background-size: cover; background-position: center center; background-attachment: fixed; background-repeat: no-repeat; background-image: linear-gradient(rgb('.$colorbackhmenu1.',0.3), rgb(240,240,240));"':'' ?>>
     <div class="login_vertical_align">
     
     <form id="login" name="login" method="post" action="<?php echo $php_self; ?>">
    @@ -114,26 +129,29 @@ if ($disablenofollow) echo '</a>';
     
     <div id="login_right">
     
    -<table class="left centpercent" title="<?php echo $langs->trans("EnterLoginDetail"); ?>">
    +<div class="tagtable left centpercent" title="<?php echo $langs->trans("EnterLoginDetail"); ?>">
    +
     <!-- Login -->
    -<tr>
    -<td class="nowrap center valignmiddle">
    +<div class="trinputlogin">
    +<div class="tagtd nowraponall center valignmiddle tdinputlogin">
     <?php if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { ?><label for="username" class="hidden"><?php echo $langs->trans("Login"); ?></label><?php } ?>
     <!-- <span class="span-icon-user">-->
     <span class="fa fa-user">
    -<input type="text" id="username" placeholder="<?php echo $langs->trans("Login"); ?>" name="username" class="flat input-icon-user minwidth150" value="<?php echo dol_escape_htmltag($login); ?>" tabindex="1" autofocus="autofocus" />
     </span>
    -</td>
    -</tr>
    +<input type="text" id="username" placeholder="<?php echo $langs->trans("Login"); ?>" name="username" class="flat input-icon-user minwidth150" value="<?php echo dol_escape_htmltag($login); ?>" tabindex="1" autofocus="autofocus" />
    +</div>
    +</div>
    +
     <!-- Password -->
    -<tr>
    -<td class="nowrap center valignmiddle">
    +<div class="trinputlogin">
    +<div class="tagtd nowraponall center valignmiddle tdinputlogin">
     <?php if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { ?><label for="password" class="hidden"><?php echo $langs->trans("Password"); ?></label><?php } ?>
     <!--<span class="span-icon-password">-->
     <span class="fa fa-key">
    -<input id="password" placeholder="<?php echo $langs->trans("Password"); ?>" name="password" class="flat input-icon-password minwidth150" type="password" value="<?php echo dol_escape_htmltag($password); ?>" tabindex="2" autocomplete="<?php echo empty($conf->global->MAIN_LOGIN_ENABLE_PASSWORD_AUTOCOMPLETE)?'off':'on'; ?>" />
     </span>
    -</td></tr>
    +<input id="password" placeholder="<?php echo $langs->trans("Password"); ?>" name="password" class="flat input-icon-password minwidth150" type="password" value="<?php echo dol_escape_htmltag($password); ?>" tabindex="2" autocomplete="<?php echo empty($conf->global->MAIN_LOGIN_ENABLE_PASSWORD_AUTOCOMPLETE)?'off':'on'; ?>" />
    +</div></div>
    +
     <?php
     if (! empty($morelogincontent)) {
     	if (is_array($morelogincontent)) {
    @@ -159,10 +177,11 @@ if ($captcha) {
     	// TODO: provide accessible captcha variants
     ?>
     	<!-- Captcha -->
    -	<tr>
    -	<td class="nowrap none center">
    +	<div class="trinputlogin">
    +	<div class="tagtd nowraponall none center valignmiddle tdinputlogin">
     
    -	<table class="login_table_securitycode centpercent"><tr>
    +	<table class="login_table_securitycode centpercent">
    +	<tr class="valignmiddle">
     	<td>
     	<span class="span-icon-security">
     	<input id="securitycode" placeholder="<?php echo $langs->trans("SecurityCode"); ?>" class="flat input-icon-security width100" type="text" maxlength="5" name="code" tabindex="3" />
    @@ -170,15 +189,17 @@ if ($captcha) {
     	</td>
     	<td><img src="<?php echo DOL_URL_ROOT ?>/core/antispamimage.php" border="0" width="80" height="32" id="img_securitycode" /></td>
     	<td><a href="<?php echo $php_self; ?>" tabindex="4" data-role="button"><?php echo $captcha_refresh; ?></a></td>
    -	</tr></table>
    +	</tr>
    +	</table>
     
    -	</td></tr>
    +	</div></div>
     <?php } ?>
    -</table>
     
    -</div> <!-- end div login-right -->
    +</div>
     
    -</div> <!-- end div login-line1 -->
    +</div> <!-- end div login_right -->
    +
    +</div> <!-- end div login_line1 -->
     
     
     <div id="login_line2" style="clear: both">
    @@ -196,11 +217,12 @@ if ($forgetpasslink || $helpcenterlink)
     	if ($dol_use_jmobile)    $moreparam.=(strpos($moreparam,'?')===false?'?':'&').'dol_use_jmobile='.$dol_use_jmobile;
     
     	echo '<br>';
    -	echo '<div class="center" style="margin-top: 8px;">';
    +	echo '<div class="center" style="margin-top: 15px;">';
     	if ($forgetpasslink) {
    -		echo '<a class="alogin" href="'.DOL_URL_ROOT.'/user/passwordforgotten.php'.$moreparam.'">(';
    +		$url=DOL_URL_ROOT.'/user/passwordforgotten.php'.$moreparam;
    +		if (! empty($conf->global->MAIN_PASSWORD_FORGOTLINK)) $url=$conf->global->MAIN_PASSWORD_FORGOTLINK;
    +		echo '<a class="alogin" href="'.dol_escape_htmltag($url).'">';
     		echo $langs->trans('PasswordForgotten');
    -		if (! $helpcenterlink) echo ')';
     		echo '</a>';
     	}
     
    @@ -210,9 +232,8 @@ if ($forgetpasslink || $helpcenterlink)
     		$url=DOL_URL_ROOT.'/support/index.php'.$moreparam;
     		if (! empty($conf->global->MAIN_HELPCENTER_LINKTOUSE)) $url=$conf->global->MAIN_HELPCENTER_LINKTOUSE;
     		echo '<a class="alogin" href="'.dol_escape_htmltag($url).'" target="_blank">';
    -		if (! $forgetpasslink) echo '(';
     		echo $langs->trans('NeedHelpCenter');
    -		echo ')</a>';
    +		echo '</a>';
     	}
     	echo '</div>';
     }
    diff --git a/htdocs/core/tpl/massactions_pre.tpl.php b/htdocs/core/tpl/massactions_pre.tpl.php
    index a66e9ba270e..9c586f82e9e 100644
    --- a/htdocs/core/tpl/massactions_pre.tpl.php
    +++ b/htdocs/core/tpl/massactions_pre.tpl.php
    @@ -44,7 +44,7 @@ if ($massaction == 'presend')
     	$listofselectedid = array();
     	$listofselectedthirdparties = array();
     	$listofselectedref = array();
    -	
    +
     	if (! GETPOST('cancel', 'alpha'))
     	{
     		foreach ($arrayofselected as $toselectid)
    @@ -111,7 +111,7 @@ if ($massaction == 'presend')
     	} else {
     		$formmail->withtoreadonly = 1;
     	}
    -	
    +
     	$formmail->withoptiononeemailperrecipient = (count($listofselectedref) == 1 || empty($liste))? 0 : ((GETPOST('oneemailperrecipient')=='on')?1:-1);
     	$formmail->withto = empty($liste)?(GETPOST('sendto','alpha')?GETPOST('sendto','alpha'):array()):$liste;
     	$formmail->withtofree = empty($liste)?1:0;
    @@ -131,6 +131,7 @@ if ($massaction == 'presend')
     
     	// Make substitution in email content
     	$substitutionarray = getCommonSubstitutionArray($langs, 0, null, $object);
    +
     	$substitutionarray['__EMAIL__'] = $sendto;
     	$substitutionarray['__CHECK_READ__'] = (is_object($object) && is_object($object->thirdparty)) ? '<img src="' . DOL_MAIN_URL_ROOT . '/public/emailing/mailing-read.php?tag=' . $object->thirdparty->tag . '&securitykey=' . urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY) . '" width="1" height="1" style="width:1px;height:1px" border="0"/>' : '';
     	$substitutionarray['__PERSONALIZED__'] = '';	// deprecated
    diff --git a/htdocs/core/tpl/notes.tpl.php b/htdocs/core/tpl/notes.tpl.php
    index 39132dd1af7..64774210162 100644
    --- a/htdocs/core/tpl/notes.tpl.php
    +++ b/htdocs/core/tpl/notes.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012      Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012      Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Florian Henry	   <florian.henry@open-concept.pro>
      * Copyright (C) 2014-2017 Laurent Destailleur <eldy@destailleur.fr>
      *
    @@ -18,8 +18,7 @@
      */
     
     // Protection to avoid direct call of template
    -if (empty($object) || ! is_object($object))
    -{
    +if (empty($object) || ! is_object($object)) {
     	print "Error, template page can't be called as URL";
     	exit;
     }
    diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
    index 61818d4deb9..4f04861f844 100644
    --- a/htdocs/core/tpl/objectline_create.tpl.php
    +++ b/htdocs/core/tpl/objectline_create.tpl.php
    @@ -1,11 +1,13 @@
     <?php
    -/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2010-2014	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2012-2013	Christophe Battarel	<christophe.battarel@altairis.fr>
      * Copyright (C) 2012       Cédric Salvador     <csalvador@gpcsolutions.fr>
      * Copyright (C) 2014		Florian Henry		<florian.henry@open-concept.pro>
      * Copyright (C) 2014       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2015-2016	Marcos García		<marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + * Copyright (C) 2018		Ferran Marcet		<fmarcet@2byte.es>
      *
      * 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
    @@ -107,7 +109,7 @@ if ($nolinesbefore) {
     	if ($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier')	// We must have same test in printObjectLines
     	{
     	?>
    -		<td class="linecolrefsupplier" align="right"><span id="title_fourn_ref"><?php echo $langs->trans('SupplierRef'); ?></span></td>
    +		<td class="linecolrefsupplier"><span id="title_fourn_ref"><?php echo $langs->trans('SupplierRef'); ?></span></td>
     	<?php } ?>
     	<td class="linecolvat" align="right"><span id="title_vat"><?php echo $langs->trans('VAT'); ?></span></td>
     	<td class="linecoluht" align="right"><span id="title_up_ht"><?php echo $langs->trans('PriceUHT'); ?></span></td>
    @@ -159,6 +161,7 @@ if ($nolinesbefore) {
     ?>
     <tr class="pair nodrag nodrop nohoverpair<?php echo ($nolinesbefore || $object->element=='contrat')?'':' liste_titre_create'; ?>">
     <?php
    +// Adds a line numbering column
     if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER)) {
     	$coldisplay=2;
     	?>
    @@ -182,7 +185,7 @@ else {
     		if ($object->element == 'contrat')
     		{
     			if (empty($conf->product->enabled) && empty($conf->service->enabled) && empty($conf->global->CONTRACT_SUPPORT_PRODUCTS)) $forceall=-1;	// With contract, by default, no choice at all, except if CONTRACT_SUPPORT_PRODUCTS is set
    -			else $forceall=0;
    +			else if (empty($conf->global->CONTRACT_SUPPORT_PRODUCTS)) $forceall=3;
     		}
     
     		// Free line
    @@ -227,7 +230,7 @@ else {
     		if (empty($senderissupplier))
     		{
     			if (! empty($conf->product->enabled) && empty($conf->service->enabled)) echo $langs->trans('PredefinedProductsToSell');
    -			else if (empty($conf->product->enabled) && ! empty($conf->service->enabled)) echo $langs->trans('PredefinedServicesToSell');
    +			else if ((empty($conf->product->enabled) && ! empty($conf->service->enabled)) || ($object->element == 'contrat' && empty($conf->global->CONTRACT_SUPPORT_PRODUCTS))) echo $langs->trans('PredefinedServicesToSell');
     			else echo $langs->trans('PredefinedProductsAndServicesToSell');
     		}
     		else
    @@ -272,7 +275,7 @@ else {
     		        $alsoproductwithnosupplierprice=1;
     		    }
     
    -			$form->select_produits_fournisseurs($object->socid, GETPOST('idprodfournprice'), 'idprodfournprice', '', '', $ajaxoptions, 1, $alsoproductwithnosupplierprice);
    +		    $form->select_produits_fournisseurs($object->socid, GETPOST('idprodfournprice'), 'idprodfournprice', '', '', $ajaxoptions, 1, $alsoproductwithnosupplierprice, 'maxwidth300');
     		}
     		echo '<input type="hidden" name="pbq" id="pbq" value="">';
     		echo '</span>';
    @@ -481,16 +484,16 @@ if ((! empty($conf->service->enabled) || ($object->element == 'contrat')) && $da
     	if (! empty($object->element) && $object->element == 'contrat')
     	{
     		print $langs->trans("DateStartPlanned").' ';
    -		$form->select_date($date_start,"date_start",$usehm,$usehm,1,"addproduct");
    +		print $form->selectDate($date_start,"date_start",$usehm,$usehm,1,"addproduct");
     		print ' &nbsp; '.$langs->trans("DateEndPlanned").' ';
    -		$form->select_date($date_end,"date_end",$usehm,$usehm,1,"addproduct");
    +		print $form->selectDate($date_end,"date_end",$usehm,$usehm,1,"addproduct");
     	}
     	else
     	{
     		echo $langs->trans('ServiceLimitedDuration').' '.$langs->trans('From').' ';
    -		echo $form->select_date($date_start,'date_start',empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,1,"addproduct",1,0,1);
    +		print $form->selectDate($date_start, 'date_start', empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1, empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1, 1, "addproduct", 1, 0);
     		echo ' '.$langs->trans('to').' ';
    -		echo $form->select_date($date_end,'date_end',empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,1,"addproduct",1,0,1);
    +		print $form->selectDate($date_end, 'date_end', empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1, empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1, 1, "addproduct", 1, 0);
     	};
     	print '<script type="text/javascript">';
     	if (!$date_start) {
    diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php
    index d3dc9807c5a..c26298d65e5 100644
    --- a/htdocs/core/tpl/objectline_edit.tpl.php
    +++ b/htdocs/core/tpl/objectline_edit.tpl.php
    @@ -1,10 +1,11 @@
     <?php
    -/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2010-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2012		Christophe Battarel	<christophe.battarel@altairis.fr>
      * Copyright (C) 2012       Cédric Salvador     <csalvador@gpcsolutions.fr>
      * Copyright (C) 2012-2014  Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2013		Florian Henry		<florian.henry@open-concept.pro>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -177,7 +178,7 @@ $coldisplay=-1; // We remove first td
     	<?php
     	if($conf->global->PRODUCT_USE_UNITS)
     	{
    -		print '<td align="left">';
    +		print '<td class="left">';
     		print $form->selectUnits($line->fk_unit, "units");
     		print '</td>';
     	}
    @@ -258,9 +259,9 @@ if (!empty($extrafieldsline))
     	<td colspan="<?php echo 7+$colspan ?>"><?php echo $langs->trans('ServiceLimitedDuration').' '.$langs->trans('From').' '; ?>
     	<?php
     	$hourmin=(isset($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE:'');
    -	echo $form->select_date($line->date_start,'date_start',$hourmin,$hourmin,$line->date_start?0:1,"updateligne",1,0,1);
    -	echo ' '.$langs->trans('to').' ';
    -	echo $form->select_date($line->date_end,'date_end',$hourmin,$hourmin,$line->date_end?0:1,"updateligne",1,0,1);
    +	print $form->selectDate($line->date_start, 'date_start', $hourmin, $hourmin, $line->date_start?0:1, "updateline", 1, 0);
    +	print ' '.$langs->trans('to').' ';
    +	print $form->selectDate($line->date_end, 'date_end', $hourmin, $hourmin, $line->date_end?0:1, "updateline", 1, 0);
     	print '<script type="text/javascript">';
     	if (!$line->date_start) {
     		if (isset($conf->global->MAIN_DEFAULT_DATE_START_HOUR)) {
    diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php
    index 313a4ee4def..aeaa4cf9959 100644
    --- a/htdocs/core/tpl/objectline_view.tpl.php
    +++ b/htdocs/core/tpl/objectline_view.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2013	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2013	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2010-2011	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2012-2013	Christophe Battarel	<christophe.battarel@altairis.fr>
      * Copyright (C) 2012       Cédric Salvador     <csalvador@gpcsolutions.fr>
    @@ -66,7 +66,7 @@ $domData .= ' data-product_type="'.$line->product_type.'"';
     ?>
     <?php $coldisplay=0; ?>
     <!-- BEGIN PHP TEMPLATE objectline_view.tpl.php -->
    -<tr <?php echo 'id="row-'.$line->id.'" '.$bcdd[$var]; echo $domData; ?> >
    +<tr  id="row-<?php echo $line->id?>" class="drag drop oddeven" <?php echo $domData; ?> >
     	<?php if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER)) { ?>
     	<td class="linecolnum" align="center"><?php $coldisplay++; ?><?php echo ($i+1); ?></td>
     	<?php } ?>
    @@ -292,7 +292,7 @@ $domData .= ' data-product_type="'.$line->product_type.'"';
     	</td>
     
     	<?php
    -	if ($num > 1 && empty($conf->browser->phone) && ($this->situation_counter == 1 || !$this->situation_cycle_ref) && empty($disablemove)) { ?>
    +	if ($num > 1 && $conf->browser->layout != 'phone' && ($this->situation_counter == 1 || !$this->situation_cycle_ref) && empty($disablemove)) { ?>
     	<td align="center" class="linecolmove tdlineupdown"><?php $coldisplay++; ?>
     		<?php if ($i > 0) { ?>
     		<a class="lineupdown" href="<?php echo $_SERVER["PHP_SELF"].'?id='.$this->id.'&amp;action=up&amp;rowid='.$line->id; ?>">
    @@ -306,7 +306,7 @@ $domData .= ' data-product_type="'.$line->product_type.'"';
     		<?php } ?>
     	</td>
         <?php } else { ?>
    -    <td align="center"<?php echo ((empty($conf->browser->phone) && empty($disablemove)) ?' class="linecolmove tdlineupdown"':' class="linecolmove"'); ?>><?php $coldisplay++; ?></td>
    +    <td align="center"<?php echo (($conf->browser->layout != 'phone' && empty($disablemove)) ?' class="linecolmove tdlineupdown"':' class="linecolmove"'); ?>><?php $coldisplay++; ?></td>
     	<?php } ?>
     <?php } else { ?>
     	<td colspan="3"><?php $coldisplay=$coldisplay+3; ?></td>
    @@ -321,7 +321,7 @@ $domData .= ' data-product_type="'.$line->product_type.'"';
     //Line extrafield
     if (!empty($extrafieldsline))
     {
    -	print $line->showOptionals($extrafieldsline, 'view', array('style'=>$bcdd[$var],'colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1);
    +	print $line->showOptionals($extrafieldsline, 'view', array('style'=>'class="drag drop oddeven"','colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1);
     }
     ?>
     
    diff --git a/htdocs/core/tpl/onlinepaymentlinks.tpl.php b/htdocs/core/tpl/onlinepaymentlinks.tpl.php
    index a425055135f..37639a5f8e6 100644
    --- a/htdocs/core/tpl/onlinepaymentlinks.tpl.php
    +++ b/htdocs/core/tpl/onlinepaymentlinks.tpl.php
    @@ -118,6 +118,28 @@ if (! empty($conf->adherent->enabled))
     	}
     	print '<br>';
     }
    +if (! empty($conf->don->enabled))
    +{
    +	print img_picto('','object_globe.png').' '.$langs->trans("ToOfferALinkForOnlinePaymentOnDonation",$servicename).':<br>';
    +	print '<strong>'.getOnlinePaymentUrl(1,'donation')."</strong><br>\n";
    +	if (! empty($conf->global->PAYMENT_SECURITY_TOKEN) && ! empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE))
    +	{
    +	    $langs->load("members");
    +	    print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
    +	    print $langs->trans("EnterRefToBuildUrl",$langs->transnoentitiesnoconv("Don")).': ';
    +        print '<input type="text class="flat" id="generate_donation_ref" name="generate_donation_ref" value="'.GETPOST('generate_donation_ref','alpha').'" size="10">';
    +        print '<input type="submit" class="none reposition button" value="'.$langs->trans("GetSecuredUrl").'">';
    +        if (GETPOST('generate_donation_ref'))
    +        {
    +            print '<br> -> <strong>';
    +            $url=getOnlinePaymentUrl(0,'donation',GETPOST('generate_donation_ref','alpha'));
    +            print $url;
    +            print "</strong><br>\n";
    +        }
    +        print '</form>';
    +	}
    +	print '<br>';
    +}
     
     if (! empty($conf->use_javascript_ajax))
     {
    @@ -140,3 +162,4 @@ print info_admin($langs->trans("YouCanAddTagOnUrl"));
     
     print '<!-- END PHP TEMPLATE ONLINEPAYMENTLINKS -->';
     
    +
    diff --git a/htdocs/core/tpl/originproductline.tpl.php b/htdocs/core/tpl/originproductline.tpl.php
    index defcdb4fd72..ed16cec17f1 100644
    --- a/htdocs/core/tpl/originproductline.tpl.php
    +++ b/htdocs/core/tpl/originproductline.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012	Regis Houssin	<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012	Regis Houssin	<regis.houssin@inodbox.com>
     /* Copyright (C) 2017		Charlie Benke	<charlie@patas-monkey.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -37,7 +37,7 @@ if (!empty($conf->multicurrency->enabled))
     
     print '<td align="right">'.$this->tpl['qty'].'</td>';
     if($conf->global->PRODUCT_USE_UNITS)
    -	print '<td align="left">'.$langs->trans($this->tpl['unit']).'</td>';
    +	print '<td class="left">'.$langs->trans($this->tpl['unit']).'</td>';
     
     print '<td align="right">'.$this->tpl['remise_percent'].'</td>';
     print '</tr>'."\n";
    diff --git a/htdocs/core/tpl/passwordforgotten.tpl.php b/htdocs/core/tpl/passwordforgotten.tpl.php
    index 2f36d32535f..4d5e1ad948b 100644
    --- a/htdocs/core/tpl/passwordforgotten.tpl.php
    +++ b/htdocs/core/tpl/passwordforgotten.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2009-2010 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2009-2010 Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2013 Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,6 +24,8 @@ if (empty($conf) || ! is_object($conf))
     }
     
     
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +
     header('Cache-Control: Public, must-revalidate');
     header("Content-type: text/html; charset=".$conf->file->character_set_client);
     
    @@ -42,10 +44,17 @@ $php_self.= dol_escape_htmltag($_SERVER["QUERY_STRING"])?'?'.dol_escape_htmltag(
     $titleofpage=$langs->trans('SendNewPassword');
     
     print top_htmlhead('', $titleofpage);
    +
    +
    +$colorbackhmenu1='60,70,100';      // topmenu
    +if (! isset($conf->global->THEME_ELDY_TOPMENU_BACK1)) $conf->global->THEME_ELDY_TOPMENU_BACK1=$colorbackhmenu1;
    +$colorbackhmenu1     =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TOPMENU_BACK1)?$colorbackhmenu1:$conf->global->THEME_ELDY_TOPMENU_BACK1)   :(empty($user->conf->THEME_ELDY_TOPMENU_BACK1)?$colorbackhmenu1:$user->conf->THEME_ELDY_TOPMENU_BACK1);
    +$colorbackhmenu1=join(',',colorStringToArray($colorbackhmenu1));    // Normalize value to 'x,y,z'
    +
     ?>
     <!-- BEGIN PHP TEMPLATE PASSWORDFORGOTTEN.TPL.PHP -->
     
    -<body class="body bodylogin"<?php print empty($conf->global->MAIN_LOGIN_BACKGROUND)?'':' style="background-size: cover; background-position: center center; background-attachment: fixed; background-repeat: no-repeat; background-image: url(\''.DOL_URL_ROOT.'/viewimage.php?cache=1&noalt=1&modulepart=mycompany&file='.urlencode($conf->global->MAIN_LOGIN_BACKGROUND).'\')"'; ?>>
    +<body class="body bodylogin"<?php print empty($conf->global->MAIN_LOGIN_BACKGROUND)?'':' style="background-size: cover; background-position: center center; background-attachment: fixed; background-repeat: no-repeat; background-image: url(\''.DOL_URL_ROOT.'/viewimage.php?cache=1&noalt=1&modulepart=mycompany&file='.urlencode('logos/'.$conf->global->MAIN_LOGIN_BACKGROUND).'\')"'; ?>>
     
     <?php if (empty($conf->dol_use_jmobile)) { ?>
     <script type="text/javascript">
    @@ -57,7 +66,7 @@ $(document).ready(function () {
     <?php } ?>
     
     
    -<div class="login_center center">
    +<div class="login_center center"<?php print empty($conf->global->MAIN_LOGIN_BACKGROUND)?' style="background-size: cover; background-position: center center; background-attachment: fixed; background-repeat: no-repeat; background-image: linear-gradient(rgb('.$colorbackhmenu1.',0.3), rgb(240,240,240));"':'' ?>>
     <div class="login_vertical_align">
     
     <form id="login" name="login" method="POST" action="<?php echo $php_self; ?>">
    @@ -88,17 +97,17 @@ if ($disablenofollow) echo '</a>';
     
     <div id="login_right">
     
    -<table summary="Login pass" class="centpercent">
    +<div class="tagtable centpercent" title="Login pass" >
     
     <!-- Login -->
    -<tr>
    -<td valign="bottom" class="nowrap center">
    +<div class="trinputlogin">
    +<div class="tagtd nowraponall center valignmiddle tdinputlogin">
     <!-- <span class="span-icon-user">-->
     <span class="fa fa-user">
    -<input type="text" placeholder="<?php echo $langs->trans("Login"); ?>" <?php echo $disabled; ?> id="username" name="username" class="flat input-icon-user minwidth150" value="<?php echo dol_escape_htmltag($username); ?>" tabindex="1" />
     </span>
    -</td>
    -</tr>
    +<input type="text" placeholder="<?php echo $langs->trans("Login"); ?>" <?php echo $disabled; ?> id="username" name="username" class="flat input-icon-user minwidth150" value="<?php echo dol_escape_htmltag($username); ?>" tabindex="1" />
    +</div>
    +</div>
     
     <?php
     if (! empty($morelogincontent)) {
    @@ -125,10 +134,11 @@ if (! empty($morelogincontent)) {
     		else $php_self.='?time='.dol_print_date(dol_now(),'dayhourlog');
     	?>
     	<!-- Captcha -->
    -	<tr>
    -	<td class="tdtop nowrap none center">
    +	<div class="trinputlogin">
    +	<div class="tdinputlogin nowraponall none center valignmiddle tdinputlogin">
     
    -	<table class="login_table_securitycode centpercent"><tr class="valignmiddle">
    +	<table class="login_table_securitycode centpercent">
    +	<tr class="valignmiddle">
     	<td>
     	<!-- <span class="span-icon-security"> -->
     	<span class="nofa">
    @@ -139,12 +149,12 @@ if (! empty($morelogincontent)) {
     	<td><a href="<?php echo $php_self; ?>" tabindex="4"><?php echo $captcha_refresh; ?></a></td>
     	</tr></table>
     
    -	</td></tr>
    +	</div></div>
     <?php } ?>
     
    -</table>
    +</div>
     
    -</div> <!-- end div login right -->
    +</div> <!-- end div login_right -->
     
     </div> <!-- end div login_line1 -->
     
    @@ -155,7 +165,7 @@ if (! empty($morelogincontent)) {
     <br><input type="submit" <?php echo $disabled; ?> class="button" name="button_password" value="<?php echo $langs->trans('SendNewPassword'); ?>" tabindex="4" />
     
     <br>
    -<div align="center" style="margin-top: 8px;">
    +<div align="center" style="margin-top: 15px;">
     	<?php
     	$moreparam='';
     	if (! empty($conf->dol_hide_topmenu))   $moreparam.=(strpos($moreparam,'?')===false?'?':'&').'dol_hide_topmenu='.$conf->dol_hide_topmenu;
    @@ -163,7 +173,7 @@ if (! empty($morelogincontent)) {
     	if (! empty($conf->dol_no_mouse_hover)) $moreparam.=(strpos($moreparam,'?')===false?'?':'&').'dol_no_mouse_hover='.$conf->dol_no_mouse_hover;
     	if (! empty($conf->dol_use_jmobile))    $moreparam.=(strpos($moreparam,'?')===false?'?':'&').'dol_use_jmobile='.$conf->dol_use_jmobile;
     
    -	print '<a class="alogin" href="'.$dol_url_root.'/index.php'.$moreparam.'">('.$langs->trans('BackToLoginPage').')</a>';
    +	print '<a class="alogin" href="'.$dol_url_root.'/index.php'.$moreparam.'">'.$langs->trans('BackToLoginPage').'</a>';
     	?>
     </div>
     
    @@ -174,7 +184,7 @@ if (! empty($morelogincontent)) {
     </form>
     
     
    -<div class="center login_main_home paddingtopbottom<?php echo empty($conf->global->MAIN_LOGIN_BACKGROUND)?'':' backgroundsemitransparent'; ?>" style="max-width: 70%">
    +<div class="center login_main_home divpasswordmessagedesc paddingtopbottom<?php echo empty($conf->global->MAIN_LOGIN_BACKGROUND)?'':' backgroundsemitransparent'; ?>" style="max-width: 70%">
     <?php if ($mode == 'dolibarr' || ! $disabled) { ?>
     	<span class="passwordmessagedesc">
     	<?php echo $langs->trans('SendNewPasswordDesc'); ?>
    diff --git a/htdocs/core/tpl/resource_add.tpl.php b/htdocs/core/tpl/resource_add.tpl.php
    index af1d25aaee1..f9daffe33ed 100644
    --- a/htdocs/core/tpl/resource_add.tpl.php
    +++ b/htdocs/core/tpl/resource_add.tpl.php
    @@ -9,7 +9,7 @@ if (empty($conf) || ! is_object($conf))
     }
     
     
    -require_once(DOL_DOCUMENT_ROOT.'/resource/class/html.formresource.class.php');
    +require_once DOL_DOCUMENT_ROOT.'/resource/class/html.formresource.class.php';
     
     $form = new Form($db);
     $formresources = new FormResource($db);
    @@ -28,7 +28,7 @@ $out .= '<input type="hidden" name="resource_type" value="'.(empty($resource_typ
     $out .= '<div class="tagtd">'.$langs->trans("SelectResource").'</div>';
     $out .= '<div class="tagtd">';
     $events=array();
    -$out .= $formresources->select_resource_list('','fk_resource','',1,1,0,$events,'',2);
    +$out .= $formresources->select_resource_list('','fk_resource','',1,1,0,$events,'',2,null);
     $out .= '</div>';
     
     $out .= '<div class="tagtd"><label>'.$langs->trans('Busy').'</label> '.$form->selectyesno('busy',(isset($_POST['busy'])?$_POST['busy']:1),1).'</div>';
    diff --git a/htdocs/core/tpl/resource_view.tpl.php b/htdocs/core/tpl/resource_view.tpl.php
    index aff342191cb..59491c01b6f 100644
    --- a/htdocs/core/tpl/resource_view.tpl.php
    +++ b/htdocs/core/tpl/resource_view.tpl.php
    @@ -98,7 +98,6 @@ if( (array) $linked_resources && count($linked_resources) > 0)
     			print '</form>';
     		}
     	}
    -
     }
     else {
     	print '<form class="tagtr oddeven">';
    diff --git a/htdocs/core/triggers/dolibarrtriggers.class.php b/htdocs/core/triggers/dolibarrtriggers.class.php
    index 61a89b083f8..a66eb12c78e 100644
    --- a/htdocs/core/triggers/dolibarrtriggers.class.php
    +++ b/htdocs/core/triggers/dolibarrtriggers.class.php
    @@ -80,11 +80,12 @@ abstract class DolibarrTriggers
     	 *
     	 * @param DoliDB $db Database handler
     	 */
    -	public function __construct(DoliDB $db) {
    +    public function __construct(DoliDB $db)
    +    {
     
     		$this->db = $db;
     
    -		if (empty($this->name)) 
    +		if (empty($this->name))
     		{
     			$this->name = preg_replace('/^Interface/i', '', get_class($this));
     		}
    @@ -145,5 +146,4 @@ abstract class DolibarrTriggers
     	 * @return int         				<0 if KO, 0 if no triggered ran, >0 if OK
     	 */
     	abstract function runTrigger($action, $object, User $user, Translate $langs, Conf $conf);
    -
     }
    diff --git a/htdocs/core/triggers/interface_20_all_Logevents.class.php b/htdocs/core/triggers/interface_20_all_Logevents.class.php
    index c2f15bd336d..b2100b806fb 100644
    --- a/htdocs/core/triggers/interface_20_all_Logevents.class.php
    +++ b/htdocs/core/triggers/interface_20_all_Logevents.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2009	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2017	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2014		Marcos García		<marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -31,9 +31,19 @@ require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php';
      */
     class InterfaceLogevents extends DolibarrTriggers
     {
    +	/**
    +	 * @var string Image of the trigger
    +	 */
     	public $picto = 'technic';
    +
     	public $family = 'core';
    +
     	public $description = "Triggers of this module allows to add security event records inside Dolibarr.";
    +
    +	/**
    +	 * Version of the trigger
    +	 * @var string
    +	 */
     	public $version = self::VERSION_DOLIBARR;
     
     	/**
    @@ -202,5 +212,4 @@ class InterfaceLogevents extends DolibarrTriggers
                 return -1;
             }
         }
    -
     }
    diff --git a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
    index 94aaaeaa542..e203b9aad1e 100644
    --- a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
    +++ b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010      Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010      Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2017 Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2014      Marcos García       <marcosgdf@gmail.com>
      *
    @@ -32,9 +32,18 @@ require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php';
     
     class InterfaceWorkflowManager extends DolibarrTriggers
     {
    +	/**
    +	 * @var string Image of the trigger
    +	 */
     	public $picto = 'technic';
    +
     	public $family = 'core';
     	public $description = "Triggers of this module allows to manage workflows";
    +
    +	/**
    +	 * Version of the trigger
    +	 * @var string
    +	 */
     	public $version = self::VERSION_DOLIBARR;
     
     	/**
    @@ -306,8 +315,34 @@ class InterfaceWorkflowManager extends DolibarrTriggers
             		}
             	}
             }
    +		 // classify billed reception
    +        if ($action == 'BILL_SUPPLIER_VALIDATE')
    +        {
    +        	dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id, LOG_DEBUG);
    +
    +        	if (! empty($conf->reception->enabled) && ! empty($conf->global->WORKFLOW_BILL_ON_RECEPTION))
    +        	{
    +        		$object->fetchObjectLinked('','reception',$object->id,$object->element);
    +        		if (! empty($object->linkedObjects))
    +        		{
    +        		    $totalonlinkedelements=0;
    +        		    foreach($object->linkedObjects['reception'] as $element)
    +        		    {
    +        		        if ($element->statut == Reception::STATUS_VALIDATED) $totalonlinkedelements += $element->total_ht;
    +        		    }
    +        		    dol_syslog("Amount of linked proposals = ".$totalonlinkedelements.", of invoice = ".$object->total_ht.", egality is ".($totalonlinkedelements == $object->total_ht), LOG_DEBUG);
    +        		    if ($totalonlinkedelements == $object->total_ht)
    +        		    {
    +        		        foreach($object->linkedObjects['reception'] as $element)
    +        		        {
    +        		            $ret=$element->set_billed();
    +        		        }
    +        		    }
    +        		}
    +        		return $ret;
    +        	}
    +		}
     
             return 0;
         }
    -
     }
    diff --git a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php
    index 481df585f3a..01337d9cfbe 100644
    --- a/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php
    +++ b/htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2017	Laurent Destailleur 	<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2017	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2014	Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2013		Cedric GROSS			<c.gross@kreiz-it.fr>
      * Copyright (C) 2014		Marcos García		<marcosgdf@gmail.com>
    @@ -36,7 +36,16 @@ class InterfaceActionsAuto extends DolibarrTriggers
     {
     	public $family = 'agenda';
     	public $description = "Triggers of this module add actions in agenda according to setup made in agenda setup.";
    +
    +	/**
    +	 * Version of the trigger
    +	 * @var string
    +	 */
     	public $version = self::VERSION_DOLIBARR;
    +
    +	/**
    +	 * @var string Image of the trigger
    +	 */
     	public $picto = 'action';
     
     	/**
    @@ -78,9 +87,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		// Actions
     		if ($action == 'COMPANY_CREATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("companies");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","companies"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("NewCompanyToDolibarr",$object->name);
                 $object->actionmsg=$langs->transnoentities("NewCompanyToDolibarr",$object->name);
    @@ -91,9 +99,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
             elseif ($action == 'COMPANY_SENTBYMAIL')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","orders"));
     
                 if (empty($object->actionmsg2)) dol_syslog('Trigger called with property actionmsg2 on object not defined', LOG_ERR);
     
    @@ -102,9 +109,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
             elseif ($action == 'CONTRACT_VALIDATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("contracts");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","contracts"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ContractValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
                 $object->actionmsg=$langs->transnoentities("ContractValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
    @@ -113,9 +119,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'CONTRACT_SENTBYMAIL')
     		{
    -			$langs->load("agenda");
    -			$langs->load("other");
    -			$langs->load("contract");
    +			// Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","contracts"));
     
     			if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ContractSentByEMail",$object->ref);
     			if (empty($object->actionmsg))
    @@ -128,9 +133,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'PROPAL_VALIDATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("propal");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","propal"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("PropalValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
                 $object->actionmsg=$langs->transnoentities("PropalValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
    @@ -139,9 +143,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
             elseif ($action == 'PROPAL_SENTBYMAIL')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("propal");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","propal"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ProposalSentByEMail",$object->ref);
                 if (empty($object->actionmsg))
    @@ -154,9 +157,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'PROPAL_CLOSE_SIGNED')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("propal");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","propal"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("PropalClosedSignedInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("PropalClosedSignedInDolibarr",$object->ref);
    @@ -165,9 +167,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'PROPAL_CLASSIFY_BILLED')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("propal");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","propal"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("PropalClassifiedBilledInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("PropalClassifiedBilledInDolibarr",$object->ref);
    @@ -176,9 +177,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'PROPAL_CLOSE_REFUSED')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("propal");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","propal"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("PropalClosedRefusedInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("PropalClosedRefusedInDolibarr",$object->ref);
    @@ -187,8 +187,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_VALIDATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("OrderValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
                 $object->actionmsg=$langs->transnoentities("OrderValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
    @@ -197,9 +197,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_CLOSE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("OrderDeliveredInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("OrderDeliveredInDolibarr",$object->ref);
    @@ -208,9 +207,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_CLASSIFY_BILLED')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("OrderBilledInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("OrderBilledInDolibarr",$object->ref);
    @@ -219,9 +217,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_CANCEL')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("OrderCanceledInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("OrderCanceledInDolibarr",$object->ref);
    @@ -230,9 +227,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_SENTBYMAIL')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("OrderSentByEMail",$object->ref);
                 if (empty($object->actionmsg))
    @@ -245,9 +241,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'BILL_VALIDATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InvoiceValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
                 $object->actionmsg=$langs->transnoentities("InvoiceValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
    @@ -256,9 +251,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'BILL_UNVALIDATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    +           // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InvoiceBackToDraftInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("InvoiceBackToDraftInDolibarr",$object->ref);
    @@ -267,9 +261,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
             elseif ($action == 'BILL_SENTBYMAIL')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InvoiceSentByEMail",$object->ref);
                 if (empty($object->actionmsg))
    @@ -282,9 +275,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'BILL_PAYED')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills"));
     
                 // Values for this action can't be defined by caller.
                 $object->actionmsg2=$langs->transnoentities("InvoicePaidInDolibarr",$object->ref);
    @@ -294,9 +286,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'BILL_CANCEL')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InvoiceCanceledInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("InvoiceCanceledInDolibarr",$object->ref);
    @@ -305,9 +296,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'FICHINTER_CREATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("interventions");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","interventions"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InterventionCreatedInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("InterventionCreatedInDolibarr",$object->ref);
    @@ -318,9 +308,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'FICHINTER_VALIDATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("interventions");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","interventions"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InterventionValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
                 $object->actionmsg=$langs->transnoentities("InterventionValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
    @@ -331,9 +320,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'FICHINTER_MODIFY')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("interventions");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","interventions"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InterventionModifiedInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("InterventionModifiedInDolibarr",$object->ref);
    @@ -344,9 +332,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'FICHINTER_SENTBYMAIL')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("interventions");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","interventions"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InterventionSentByEMail",$object->ref);
                 if (empty($object->actionmsg))
    @@ -359,9 +346,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
             elseif ($action == 'FICHINTER_CLASSIFY_BILLED')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("interventions");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","interventions"));
     
                	if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InterventionClassifiedBilledInDolibarr",$object->ref);
                	$object->actionmsg=$langs->transnoentities("InterventionClassifiedBilledInDolibarr",$object->ref);
    @@ -370,9 +356,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
     	    elseif ($action == 'FICHINTER_CLASSIFY_UNBILLED')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("interventions");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","interventions"));
     
                	if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InterventionClassifiedUnbilledInDolibarr",$object->ref);
                	$object->actionmsg=$langs->transnoentities("InterventionClassifiedUnbilledInDolibarr",$object->ref);
    @@ -381,9 +366,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
             elseif ($action == 'FICHINTER_DELETE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("interventions");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","interventions"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InterventionDeletedInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("InterventionDeletedInDolibarr",$object->ref);
    @@ -394,9 +378,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
             elseif ($action == 'SHIPPING_VALIDATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("sendings");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","sendings"));
     
             	if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ShippingValidated",($object->newref?$object->newref:$object->ref));
             	if (empty($object->actionmsg))
    @@ -409,9 +392,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
     		elseif ($action == 'SHIPPING_SENTBYMAIL')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("sendings");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","sendings"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ShippingSentByEMail",$object->ref);
                 if (empty($object->actionmsg))
    @@ -419,14 +401,42 @@ class InterfaceActionsAuto extends DolibarrTriggers
                     $object->actionmsg=$langs->transnoentities("ShippingSentByEMail",$object->ref);
                 }
     
    +            // Parameters $object->sendtoid defined by caller
    +            //$object->sendtoid=0;
    +		} elseif ($action == 'RECEPTION_VALIDATE')
    +        {
    +            $langs->load("agenda");
    +            $langs->load("other");
    +        	$langs->load("receptions");
    +
    +        	if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ReceptionValidated",($object->newref?$object->newref:$object->ref));
    +        	if (empty($object->actionmsg))
    +        	{
    +        		$object->actionmsg=$langs->transnoentities("ReceptionValidated",($object->newref?$object->newref:$object->ref));
    +        	}
    +
    +        	// Parameters $object->sendtoid defined by caller
    +        	//$object->sendtoid=0;
    +        }
    +		elseif ($action == 'RECEPTION_SENTBYMAIL')
    +        {
    +            $langs->load("agenda");
    +            $langs->load("other");
    +            $langs->load("receptions");
    +
    +            if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ReceptionSentByEMail",$object->ref);
    +            if (empty($object->actionmsg))
    +            {
    +                $object->actionmsg=$langs->transnoentities("ReceptionSentByEMail",$object->ref);
    +            }
    +
                 // Parameters $object->sendtoid defined by caller
                 //$object->sendtoid=0;
     		}
     		elseif ($action == 'PROPOSAL_SUPPLIER_VALIDATE')
     		{
    -			$langs->load("agenda");
    -			$langs->load("other");
    -			$langs->load("propal");
    +			// Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","propal"));
     
     			if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("PropalValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
     			$object->actionmsg=$langs->transnoentities("PropalValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
    @@ -435,9 +445,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'PROPOSAL_SUPPLIER_SENTBYMAIL')
     		{
    -			$langs->load("agenda");
    -			$langs->load("other");
    -			$langs->load("propal");
    +			// Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","propal"));
     
     			if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ProposalSentByEMail",$object->ref);
     			if (empty($object->actionmsg))
    @@ -450,9 +459,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'PROPOSAL_SUPPLIER_CLOSE_SIGNED')
     		{
    -			$langs->load("agenda");
    -			$langs->load("other");
    -			$langs->load("propal");
    +			// Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","propal"));
     
     			if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("PropalClosedSignedInDolibarr",$object->ref);
     			$object->actionmsg=$langs->transnoentities("PropalClosedSignedInDolibarr",$object->ref);
    @@ -461,9 +469,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'PROPOSAL_SUPPLIER_CLOSE_REFUSED')
     		{
    -			$langs->load("agenda");
    -			$langs->load("other");
    -			$langs->load("propal");
    +			// Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","propal"));
     
     			if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("PropalClosedRefusedInDolibarr",$object->ref);
     			$object->actionmsg=$langs->transnoentities("PropalClosedRefusedInDolibarr",$object->ref);
    @@ -472,9 +479,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_SUPPLIER_CREATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("OrderCreatedInDolibarr",($object->newref?$object->newref:$object->ref));
                 $object->actionmsg=$langs->transnoentities("OrderCreatedInDolibarr",($object->newref?$object->newref:$object->ref));
    @@ -483,9 +489,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_SUPPLIER_VALIDATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("OrderValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
                 $object->actionmsg=$langs->transnoentities("OrderValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
    @@ -494,9 +499,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_SUPPLIER_APPROVE')
     		{
    -            $langs->load("agenda");
    -		    $langs->load("other");
    -			$langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","orders"));
     
     			if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("OrderApprovedInDolibarr",$object->ref);
     			$object->actionmsg=$langs->transnoentities("OrderApprovedInDolibarr",$object->ref);
    @@ -505,9 +509,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_SUPPLIER_REFUSE')
     		{
    -            $langs->load("agenda");
    -		    $langs->load("other");
    -			$langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","orders"));
     
     			if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("OrderRefusedInDolibarr",$object->ref);
     			$object->actionmsg=$langs->transnoentities("OrderRefusedInDolibarr",$object->ref);
    @@ -516,9 +519,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_SUPPLIER_SUBMIT')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("SupplierOrderSubmitedInDolibarr",($object->newref?$object->newref:$object->ref));
                 $object->actionmsg=$langs->transnoentities("SupplierOrderSubmitedInDolibarr",($object->newref?$object->newref:$object->ref));
    @@ -527,9 +529,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_SUPPLIER_RECEIVE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("SupplierOrderReceivedInDolibarr",($object->newref?$object->newref:$object->ref));
                 $object->actionmsg=$langs->transnoentities("SupplierOrderReceivedInDolibarr",($object->newref?$object->newref:$object->ref));
    @@ -538,10 +539,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'ORDER_SUPPLIER_SENTBYMAIL')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    -            $langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("SupplierOrderSentByEMail",$object->ref);
                 if (empty($object->actionmsg))
    @@ -554,10 +553,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
     		elseif ($action == 'ORDER_SUPPLIER_CLASSIFY_BILLED')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    -            $langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("SupplierOrderClassifiedBilled",$object->ref);
                 if (empty($object->actionmsg))
    @@ -569,9 +566,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
     		elseif ($action == 'BILL_SUPPLIER_VALIDATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InvoiceValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
                 $object->actionmsg=$langs->transnoentities("InvoiceValidatedInDolibarr",($object->newref?$object->newref:$object->ref));
    @@ -580,9 +576,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'BILL_SUPPLIER_UNVALIDATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InvoiceBackToDraftInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("InvoiceBackToDraftInDolibarr",$object->ref);
    @@ -591,10 +586,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
             elseif ($action == 'BILL_SUPPLIER_SENTBYMAIL')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    -            $langs->load("orders");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills","orders"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("SupplierInvoiceSentByEMail",$object->ref);
                 if (empty($object->actionmsg))
    @@ -607,9 +600,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
     		elseif ($action == 'BILL_SUPPLIER_PAYED')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InvoicePaidInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("InvoicePaidInDolibarr",$object->ref);
    @@ -618,9 +610,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
     		elseif ($action == 'BILL_SUPPLIER_CANCELED')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("bills");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","bills"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("InvoiceCanceledInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("InvoiceCanceledInDolibarr",$object->ref);
    @@ -631,9 +622,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             // Members
             elseif ($action == 'MEMBER_VALIDATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("members");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","members"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("MemberValidatedInDolibarr",$object->getFullName($langs));
                 $object->actionmsg=$langs->transnoentities("MemberValidatedInDolibarr",$object->getFullName($langs));
    @@ -644,9 +634,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
     		elseif ($action == 'MEMBER_MODIFY')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("members");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","members"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("MemberModifiedInDolibarr",$object->getFullName($langs));
                 $object->actionmsg=$langs->transnoentities("MemberModifiedInDolibarr",$object->getFullName($langs));
    @@ -657,9 +646,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		}
             elseif ($action == 'MEMBER_SUBSCRIPTION_CREATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("members");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","members"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("MemberSubscriptionAddedInDolibarr",$object->ref,$object->getFullName($langs));
                 $object->actionmsg=$langs->transnoentities("MemberSubscriptionAddedInDolibarr",$object->ref,$object->getFullName($langs));
    @@ -673,9 +661,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
             elseif ($action == 'MEMBER_SUBSCRIPTION_MODIFY')
             {
    -        	$langs->load("agenda");
    -        	$langs->load("other");
    -        	$langs->load("members");
    +        	// Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","members"));
     
             	if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("MemberSubscriptionModifiedInDolibarr",$object->ref,$object->getFullName($langs));
             	$object->actionmsg=$langs->transnoentities("MemberSubscriptionModifiedInDolibarr",$object->ref,$object->getFullName($langs));
    @@ -689,9 +676,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
             elseif ($action == 'MEMBER_SUBSCRIPTION_DELETE')
             {
    -        	$langs->load("agenda");
    -        	$langs->load("other");
    -        	$langs->load("members");
    +        	// Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","members"));
     
             	if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("MemberSubscriptionDeletedInDolibarr",$object->ref,$object->getFullName($langs));
             	$object->actionmsg=$langs->transnoentities("MemberSubscriptionDeletedInDolibarr",$object->ref,$object->getFullName($langs));
    @@ -705,9 +691,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
             elseif ($action == 'MEMBER_RESILIATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("members");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","members"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("MemberResiliatedInDolibarr",$object->getFullName($langs));
                 $object->actionmsg=$langs->transnoentities("MemberResiliatedInDolibarr",$object->getFullName($langs));
    @@ -718,9 +703,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
             elseif ($action == 'MEMBER_DELETE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("members");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","members"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("MemberDeletedInDolibarr",$object->getFullName($langs));
                 $object->actionmsg=$langs->transnoentities("MemberDeletedInDolibarr",$object->getFullName($langs));
    @@ -733,9 +717,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
             // Projects
             elseif ($action == 'PROJECT_CREATE')
             {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -        	$langs->load("projects");
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","projects"));
     
             	if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ProjectCreatedInDolibarr",$object->ref);
             	$object->actionmsg=$langs->transnoentities("ProjectCreatedInDolibarr",$object->ref);
    @@ -743,10 +726,10 @@ class InterfaceActionsAuto extends DolibarrTriggers
     
             	$object->sendtoid=0;
             }
    -        elseif($action == 'PROJECT_VALIDATE') {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("projects");
    +        elseif($action == 'PROJECT_VALIDATE')
    +        {
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","projects"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ProjectValidatedInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("ProjectValidatedInDolibarr",$object->ref);
    @@ -754,10 +737,10 @@ class InterfaceActionsAuto extends DolibarrTriggers
     
                 $object->sendtoid=0;
             }
    -        elseif($action == 'PROJECT_MODIFY') {
    -            $langs->load("agenda");
    -            $langs->load("other");
    -            $langs->load("projects");
    +        elseif($action == 'PROJECT_MODIFY')
    +        {
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","projects"));
     
                 if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("ProjectModifiedInDolibarr",$object->ref);
                 $object->actionmsg=$langs->transnoentities("ProjectModifiedInDolibarr",$object->ref);
    @@ -767,10 +750,10 @@ class InterfaceActionsAuto extends DolibarrTriggers
             }
     
     		// Project tasks
    -		elseif($action == 'TASK_CREATE') {
    -            $langs->load("agenda");
    -		    $langs->load("other");
    -			$langs->load("projects");
    +		elseif($action == 'TASK_CREATE')
    +		{
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","projects"));
     
     			if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("TaskCreatedInDolibarr",$object->ref);
     			$object->actionmsg=$langs->transnoentities("TaskCreatedInDolibarr",$object->ref);
    @@ -779,10 +762,10 @@ class InterfaceActionsAuto extends DolibarrTriggers
     			$object->sendtoid=0;
     		}
     
    -		elseif($action == 'TASK_MODIFY') {
    -            $langs->load("agenda");
    -		    $langs->load("other");
    -			$langs->load("projects");
    +		elseif($action == 'TASK_MODIFY')
    +		{
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","projects"));
     
     			if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("TaskModifiedInDolibarr",$object->ref);
     			$object->actionmsg=$langs->transnoentities("TaskModifieddInDolibarr",$object->ref);
    @@ -791,10 +774,10 @@ class InterfaceActionsAuto extends DolibarrTriggers
     			$object->sendtoid=0;
     		}
     
    -		elseif($action == 'TASK_DELETE') {
    -            $langs->load("agenda");
    -		    $langs->load("other");
    -			$langs->load("projects");
    +		elseif($action == 'TASK_DELETE')
    +		{
    +            // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other","projects"));
     
     			if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities("TaskDeletedInDolibarr",$object->ref);
     			$object->actionmsg=$langs->transnoentities("TaskDeletedInDolibarr",$object->ref);
    @@ -803,10 +786,11 @@ class InterfaceActionsAuto extends DolibarrTriggers
     			$object->sendtoid=0;
     		}
     		// TODO Merge all previous cases into this generic one
    -		else {
    +		else	// $action = TICKET_CREATE, TICKET_MODIFY, TICKET_DELETE, ...
    +		{
     		    // Note: We are here only if $conf->global->MAIN_AGENDA_ACTIONAUTO_action is on (tested at begining of this function)
    -		    $langs->load("agenda");
    -		    $langs->load("other");
    +		    // Load translation files required by the page
    +            $langs->loadLangs(array("agenda","other"));
     
     		    if (empty($object->actionmsg2)) $object->actionmsg2=$langs->transnoentities($action."InDolibarr",$object->ref);
     		    if (empty($object->actionmsg))  $object->actionmsg=$langs->transnoentities($action."InDolibarr",$object->ref);
    @@ -814,7 +798,7 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		    $object->sendtoid=0;
     		}
     
    -		$object->actionmsg.="\n".$langs->transnoentities("Author").': '.$user->login;
    +		$object->actionmsg = $langs->transnoentities("Author").': '.$user->login."\n".$object->actionmsg;
     
     		dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
     
    @@ -844,7 +828,8 @@ class InterfaceActionsAuto extends DolibarrTriggers
                 if ($object->sendtoid > 0) $contactforaction->fetch($object->sendtoid);
             }
             // Set societeforaction.
    -        if ($object->socid > 0)    $societeforaction->fetch($object->socid);
    +        if ($object->socid > 0)			$societeforaction->fetch($object->socid);
    +        elseif ($object->fk_soc > 0)	$societeforaction->fetch($object->fk_soc);
     
             $projectid = isset($object->fk_project)?$object->fk_project:0;
             if ($object->element == 'project') $projectid = $object->id;
    @@ -856,6 +841,7 @@ class InterfaceActionsAuto extends DolibarrTriggers
             	$elementid = $object->fk_adherent;
             	$elementtype = 'member';
             }
    +        //var_dump($societeforaction);var_dump($contactforaction);exit;
     
     		// Insertion action
     		require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
    @@ -863,7 +849,7 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		$actioncomm->type_code   = $object->actiontypecode;		// Type of event ('AC_OTH', 'AC_OTH_AUTO', 'AC_XXX'...)
     		$actioncomm->code        = 'AC_'.$action;
     		$actioncomm->label       = $object->actionmsg2;
    -		$actioncomm->note        = $object->actionmsg;          // TODO Replace with $actioncomm->email_msgid ? $object->email_content : $object->actionmsg
    +		$actioncomm->note        = $object->actionmsg;          // TODO Replace with ($actioncomm->email_msgid ? $object->email_content : $object->actionmsg)
     		$actioncomm->fk_project  = $projectid;
     		$actioncomm->datep       = $now;
     		$actioncomm->datef       = $now;
    @@ -876,19 +862,27 @@ class InterfaceActionsAuto extends DolibarrTriggers
     		$actioncomm->contactid   = $contactforaction->id;
     		$actioncomm->authorid    = $user->id;   // User saving action
     		$actioncomm->userownerid = $user->id;	// Owner of action
    -        // Fields when action is en email (content should be added into note)
    -		$actioncomm->email_msgid = $object->email_msgid;
    -		$actioncomm->email_from  = $object->email_from;
    -		$actioncomm->email_sender= $object->email_sender;
    -		$actioncomm->email_to    = $object->email_to;
    -		$actioncomm->email_tocc  = $object->email_tocc;
    -		$actioncomm->email_tobcc = $object->email_tobcc;
    +        // Fields defined when action is an email (content should be into object->actionmsg to be added into note, subject into object->actionms2 to be added into label)
    +		$actioncomm->email_msgid   = $object->email_msgid;
    +		$actioncomm->email_from    = $object->email_from;
    +		$actioncomm->email_sender  = $object->email_sender;
    +		$actioncomm->email_to      = $object->email_to;
    +		$actioncomm->email_tocc    = $object->email_tocc;
    +		$actioncomm->email_tobcc   = $object->email_tobcc;
     		$actioncomm->email_subject = $object->email_subject;
    -		$actioncomm->errors_to   = $object->errors_to;
    +		$actioncomm->errors_to     = $object->errors_to;
     
    -		$actioncomm->fk_element  = $elementid;
    -		$actioncomm->elementtype = $elementtype;
    +		// Object linked (if link is for thirdparty, contact, project it is a recording error. We should not have links in link table
    +		// for such objects because there is already a dedicated field into table llx_actioncomm.
    +		if (! in_array($elementtype, array('societe','contact','project')))
    +		{
    +			$actioncomm->fk_element  = $elementid;
    +			$actioncomm->elementtype = $elementtype;
    +		}
     
    +		if (property_exists($object,'attachedfiles') && is_array($object->attachedfiles) && count($object->attachedfiles)>0) {
    +			$actioncomm->attachedfiles=$object->attachedfiles;
    +		}
     		if (property_exists($object,'sendtouserid') && is_array($object->sendtouserid) && count($object->sendtouserid)>0) {
     			$actioncomm->userassigned=$object->sendtouserid;
     		}
    @@ -927,5 +921,4 @@ class InterfaceActionsAuto extends DolibarrTriggers
                 return -1;
     		}
         }
    -
     }
    diff --git a/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php b/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php
    index 2750834bac6..b3eee673198 100644
    --- a/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php
    +++ b/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php
    @@ -32,7 +32,16 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers
     {
     	public $family = 'system';
     	public $description = "Triggers of this module add action for BlockedLog module.";
    +
    +	/**
    +	 * Version of the trigger
    +	 * @var string
    +	 */
     	public $version = self::VERSION_DOLIBARR;
    +
    +	/**
    +	 * @var string Image of the trigger
    +	 */
     	public $picto = 'technic';
     
     	/**
    @@ -47,10 +56,10 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers
     	 */
     	public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
     	{
    -        if (empty($conf->blockedlog->enabled)) return 0;     // Module not active, we do nothing
    +		if (empty($conf->blockedlog->enabled)) return 0;     // Module not active, we do nothing
     
     		// Test if event/record is qualified
    -		$listofqualifiedelement = array('facture', 'don', 'payment', 'payment_donation', 'subscription','payment_various');
    +		$listofqualifiedelement = array('facture', 'don', 'payment', 'payment_donation', 'subscription', 'payment_various', 'cashcontrol');
     		if (! in_array($object->element, $listofqualifiedelement)) return 1;
     
     		dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
    @@ -71,6 +80,7 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers
     			|| $action==='BILL_SUPPLIER_VALIDATE' || $action==='BILL_SUPPLIER_DELETE' || $action === 'BILL_SUPPLIER_SENTBYMAIL'
     			|| $action==='MEMBER_SUBSCRIPTION_CREATE' || $action==='MEMBER_SUBSCRIPTION_MODIFY' || $action==='MEMBER_SUBSCRIPTION_DELETE'
     			|| $action==='DON_VALIDATE' || $action==='DON_MODIFY' || $action==='DON_DELETE'
    +			|| $action==='CASHCONTROL_VALIDATE'
     			|| (in_array($object->element, array('facture','suplier_invoice')) && $action === 'DOC_DOWNLOAD') || (in_array($object->element, array('facture','suplier_invoice')) && $action === 'DOC_PREVIEW')
     		)
     		{
    @@ -79,6 +89,10 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers
     			if (in_array($action, array(
     				'MEMBER_SUBSCRIPTION_CREATE','MEMBER_SUBSCRIPTION_MODIFY','MEMBER_SUBSCRIPTION_DELETE',
     				'DON_VALIDATE','DON_MODIFY','DON_DELETE'))) $amounts = (double) $object->amount;
    +			elseif ($action == 'CASHCONTROL_VALIDATE')
    +			{
    +				$amounts = (double) $object->cash + (double) $object->cheque + (double) $object->card;
    +			}
     			else $amounts = (double) $object->total_ttc;
     		}
     		/*if ($action === 'BILL_PAYED' || $action==='BILL_UNPAYED'
    @@ -94,7 +108,7 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers
     			$amounts = 0;
     			if(!empty($object->amounts)) {
     				foreach($object->amounts as $amount) {
    -					$amounts+= price2num($amount);
    +					$amounts += price2num($amount);
     				}
     			}
     		}
    @@ -133,5 +147,4 @@ class InterfaceActionsBlockedLog extends DolibarrTriggers
     			return 1;
     		}
         }
    -
     }
    diff --git a/htdocs/core/triggers/interface_50_modLdap_Ldapsynchro.class.php b/htdocs/core/triggers/interface_50_modLdap_Ldapsynchro.class.php
    index ac431ac0342..e5a0992d466 100644
    --- a/htdocs/core/triggers/interface_50_modLdap_Ldapsynchro.class.php
    +++ b/htdocs/core/triggers/interface_50_modLdap_Ldapsynchro.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2014		Marcos García		<marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -33,7 +33,16 @@ class InterfaceLdapsynchro extends DolibarrTriggers
     {
     	public $family = 'ldap';
     	public $description = "Triggers of this module allows to synchronize Dolibarr toward a LDAP database.";
    +
    +	/**
    +	 * Version of the trigger
    +	 * @var string
    +	 */
     	public $version = self::VERSION_DOLIBARR;
    +
    +	/**
    +	 * @var string Image of the trigger
    +	 */
     	public $picto = 'technic';
     
     	/**
    @@ -804,5 +813,4 @@ class InterfaceLdapsynchro extends DolibarrTriggers
     
     		return $result;
     	}
    -
     }
    diff --git a/htdocs/core/triggers/interface_50_modMailmanspip_Mailmanspipsynchro.class.php b/htdocs/core/triggers/interface_50_modMailmanspip_Mailmanspipsynchro.class.php
    index c5f704fdcb1..0197e6bf280 100644
    --- a/htdocs/core/triggers/interface_50_modMailmanspip_Mailmanspipsynchro.class.php
    +++ b/htdocs/core/triggers/interface_50_modMailmanspip_Mailmanspipsynchro.class.php
    @@ -31,7 +31,16 @@ class InterfaceMailmanSpipsynchro extends DolibarrTriggers
     {
     	public $family = 'mailmanspip';
     	public $description = "Triggers of this module allows to synchronize Mailman an Spip.";
    +
    +	/**
    +	 * Version of the trigger
    +	 * @var string
    +	 */
     	public $version = self::VERSION_DOLIBARR;
    +
    +	/**
    +	 * @var string Image of the trigger
    +	 */
     	public $picto = 'technic';
     
     	/**
    @@ -148,5 +157,4 @@ class InterfaceMailmanSpipsynchro extends DolibarrTriggers
     
     		return 0;
         }
    -
     }
    diff --git a/htdocs/core/triggers/interface_50_modNotification_Notification.class.php b/htdocs/core/triggers/interface_50_modNotification_Notification.class.php
    index 8698b08a5c3..41dada263b4 100644
    --- a/htdocs/core/triggers/interface_50_modNotification_Notification.class.php
    +++ b/htdocs/core/triggers/interface_50_modNotification_Notification.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2011      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2011      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013-2014 Marcos García        <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -32,10 +32,20 @@ class InterfaceNotification extends DolibarrTriggers
     {
     	public $family = 'notification';
     	public $description = "Triggers of this module send email notifications according to Notification module setup.";
    +
    +	/**
    +	 * Version of the trigger
    +	 * @var string
    +	 */
     	public $version = self::VERSION_DOLIBARR;
    +
    +	/**
    +	 * @var string Image of the trigger
    +	 */
     	public $picto = 'email';
     
    -	var $listofmanagedevents=array(
    +	// @TODO Defined also into notify.class.php)
    +	public $listofmanagedevents=array(
     		'BILL_VALIDATE',
     		'BILL_PAYED',
     		'ORDER_VALIDATE',
    @@ -46,8 +56,12 @@ class InterfaceNotification extends DolibarrTriggers
     		'ORDER_SUPPLIER_VALIDATE',
     		'ORDER_SUPPLIER_APPROVE',
     		'ORDER_SUPPLIER_REFUSE',
    -		'SHIPPING_VALIDATE'
    -   	);
    +		'SHIPPING_VALIDATE',
    +		'EXPENSE_REPORT_VALIDATE',
    +		'EXPENSE_REPORT_APPROVE',
    +		'HOLIDAY_VALIDATE',
    +		'HOLIDAY_APPROVE'
    +	);
     
     	/**
     	 * Function called when a Dolibarrr business event is done.
    @@ -103,7 +117,7 @@ class InterfaceNotification extends DolibarrTriggers
     
     				$qualified=0;
     				// Check is this event is supported by notification module
    -				if (in_array($obj->code,$this->listofmanagedevents)) $qualified=1;
    +				if (in_array($obj->code, $this->listofmanagedevents)) $qualified=1;
     				// Check if module for this event is active
     				if ($qualified)
     				{
    @@ -116,7 +130,7 @@ class InterfaceNotification extends DolibarrTriggers
     					elseif ($element == 'withdraw' && empty($conf->prelevement->enabled)) $qualified=0;
     					elseif ($element == 'shipping' && empty($conf->expedition->enabled)) $qualified=0;
     					elseif ($element == 'member' && empty($conf->adherent->enabled)) $qualified=0;
    -					elseif (! in_array($element,array('order_supplier','invoice_supplier','withdraw','shipping','member')) && empty($conf->$element->enabled)) $qualified=0;
    +					elseif (! in_array($element,array('order_supplier','invoice_supplier','withdraw','shipping','member','expensereport')) && empty($conf->$element->enabled)) $qualified=0;
     				}
     
     				if ($qualified)
    @@ -131,5 +145,4 @@ class InterfaceNotification extends DolibarrTriggers
     
     		return $ret;
     	}
    -
     }
    diff --git a/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php b/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php
    index 56bbd897f3d..f8f5595887d 100644
    --- a/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php
    +++ b/htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php
    @@ -30,6 +30,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php';
      */
     class InterfaceTicketEmail extends DolibarrTriggers
     {
    +    /**
    +     * @var DoliDB Database handler.
    +     */
         public $db;
     
         /**
    @@ -153,7 +156,7 @@ class InterfaceTicketEmail extends DolibarrTriggers
     	                        include_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php';
     		                    $mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, '', '', 0, -1);
     		                    if ($mailfile->error) {
    -	                            setEventMessage($mailfile->error, 'errors');
    +	                            setEventMessages($mailfile->error, $mailfile->errors, 'errors');
     		                    } else {
     		                        $result = $mailfile->sendfile();
     		                    }
    diff --git a/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php b/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php
    index 3f724e5b096..8282a09a43d 100644
    --- a/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php
    +++ b/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php
    @@ -17,7 +17,7 @@
      */
     
     /**
    - *  \file       htdocs/core/triggers/interface_50_modStripe_Stripe.class.php
    + *  \file       htdocs/core/triggers/interface_80_modStripe_Stripe.class.php
      *  \ingroup    core
      *  \brief      Fichier
      *  \remarks    Son propre fichier d'actions peut etre cree par recopie de celui-ci:
    @@ -35,6 +35,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php';
      */
     class InterfaceStripe
     {
    +    /**
    +     * @var DoliDB Database handler.
    +     */
         public $db;
     
         /**
    @@ -111,13 +114,12 @@ class InterfaceStripe
     	 */
     	public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
     	{
    -		// Put here code you want to execute when a Dolibarr business events occurs.
    +		// Put here code you want to execute when a Dolibarr business event occurs.
     		// Data and type of action are stored into $object and $action
     		global $langs, $db, $conf;
    -		$langs->load("members");
    -		$langs->load("users");
    -		$langs->load("mails");
    -		$langs->load('other');
    +
    +		// Load translation files required by the page
    +        $langs->loadLangs(array("members","other","users","mails"));
     
     		require_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php';
     		$stripe = new Stripe($db);
    @@ -145,19 +147,33 @@ class InterfaceStripe
     				if ($customer)
     				{
     					$namecleaned = $object->name ? $object->name : null;
    -					$vatcleaned = $object->tva_intra ? $object->tva_intra : null;	// We force data to "null" if empty as expected by Stripe
    +					$vatcleaned = $object->tva_intra ? $object->tva_intra : null;
    +
    +					$taxinfo = array('type'=>'vat');
    +					if ($vatcleaned)
    +					{
    +						$taxinfo["tax_id"] = $vatcleaned;
    +					}
    +					// We force data to "null" if not defined as expected by Stripe
    +					if (empty($vatcleaned)) $taxinfo=null;
     
     					// Detect if we change a Stripe info (email, description, vat id)
     					$changerequested = 0;
     					if (! empty($object->email) && $object->email != $customer->email) $changerequested++;
     					if ($namecleaned != $customer->description) $changerequested++;
    -					if ($vatcleaned != $customer->business_vat_id) $changerequested++;
    +					if (! isset($customer->tax_info['tax_id']) && ! is_null($vatcleaned)) $changerequested++;
    +					elseif (isset($customer->tax_info['tax_id']) && is_null($vatcleaned)) $changerequested++;
    +					elseif (isset($customer->tax_info['tax_id']) && ! is_null($vatcleaned))
    +					{
    +						if ($vatcleaned != $customer->tax_info['tax_id']) $changerequested++;
    +					}
     
     					if ($changerequested)
     					{
     						if (! empty($object->email)) $customer->email = $object->email;
     						$customer->description = $namecleaned;
    -						$customer->business_vat_id = $vatcleaned;
    +						if (empty($taxinfo)) $customer->tax_info = array('type'=>'vat', 'tax_id'=>null);
    +						else $customer->tax_info = $taxinfo;
     
     						$customer->save();
     					}
    @@ -184,7 +200,6 @@ class InterfaceStripe
     		if ($action == 'COMPANYPAYMENTMODE_MODIFY' && $object->type == 'card') {
     
     			// For creation of credit card, we do not create in Stripe automatically
    -
     		}
     		if ($action == 'COMPANYPAYMENTMODE_MODIFY' && $object->type == 'card') {
     			dol_syslog("Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id);
    diff --git a/htdocs/core/website.inc.php b/htdocs/core/website.inc.php
    index 46b1f955177..1338104de0b 100644
    --- a/htdocs/core/website.inc.php
    +++ b/htdocs/core/website.inc.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2017-2018 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
    @@ -18,11 +18,76 @@
     
     /**
      *	\file			htdocs/core/website.inc.php
    - *  \brief			Common file loaded used by all website pages (after master.inc.php)
    - *  			    The global variable $website must be defined.
    + *  \brief			Common file loaded by all website pages (after master.inc.php). It set the new object $weblangs, using parameter 'l'.
    + *  				This file is included in top of all container pages.
    + *  			    The global variable $websitekey must be defined.
      */
     
    -
    +// Load website class
     include_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php';
    -$website=new Website($db);
    -$website->fetch(0,$websitekey);
    +// Define $website
    +if (! is_object($website))
    +{
    +	$website=new Website($db);
    +	$website->fetch(0,$websitekey);
    +}
    +// Define $weblangs
    +if (! is_object($weblangs))
    +{
    +	$weblangs = dol_clone($langs);	// TODO Use an object lang from a language set into $website object instead of backoffice
    +}
    +// Define $websitepage if we have $websitepagefile defined
    +if (! $pageid && ! empty($websitepagefile))
    +{
    +	$pageid = str_replace(array('.tpl.php', 'page'), array('', ''), basename($websitepagefile));
    +}
    +if ($pageid > 0)
    +{
    +	include_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php';
    +	$websitepage=new WebsitePage($db);
    +	$websitepage->fetch($pageid);
    +}
    +
    +// A lang was forced, so we change weblangs init
    +if (GETPOST('l','aZ09')) $weblangs->setDefaultLang(GETPOST('l','aZ09'));
    +// A lang was forced, so we check to find if we must make a redirect on translation page
    +if ($_SERVER['PHP_SELF'] != DOL_URL_ROOT.'/website/index.php')	// If we browsing page using Dolibarr server or a Native web server
    +{
    +	//print_r(get_defined_constants(true));exit;
    +	if (GETPOST('l','aZ09'))
    +	{
    +		$sql ="SELECT wp.rowid, wp.lang, wp.pageurl, wp.fk_page";
    +		$sql.=" FROM ".MAIN_DB_PREFIX."website_page as wp";
    +		$sql.=" WHERE wp.fk_website = ".$website->id;
    +		$sql.=" AND (wp.fk_page = ".$pageid." OR wp.rowid  = ".$pageid;
    +		if (is_object($websitepage) && $websitepage->fk_page > 0) $sql.=" OR wp.fk_page = ".$websitepage->fk_page." OR wp.rowid = ".$websitepage->fk_page;
    +		$sql.=")";
    +		$sql.= " AND wp.lang = '".$db->escape(GETPOST('l','aZ09'))."'";
    +
    +		$resql = $db->query($sql);
    +		if ($resql)
    +		{
    +			$obj = $db->fetch_object($resql);
    +			if ($obj)
    +			{
    +				$newpageid = $obj->rowid;
    +				if ($newpageid != $pageid) 		// To avoid to make a redirect on same page (infinite loop)
    +				{
    +					if (defined('USEDOLIBARRSERVER')) {
    +						header("Location: ".DOL_URL_ROOT.'/public/website/index.php?website='.$websitekey.'&pageid='.$newpageid.'&l='.GETPOST('l','aZ09'));
    +						exit;
    +					}
    +					else
    +					{
    +						$newpageref = $obj->pageurl;
    +						header("Location: ".$newpageref.'.php?l='.GETPOST('l','aZ09'));
    +						exit;
    +					}
    +				}
    +			}
    +		}
    +	}
    +}
    +
    +// Load websitepage class
    +include_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php';
    diff --git a/htdocs/cron/admin/cron.php b/htdocs/cron/admin/cron.php
    index 729772bcf7e..9140973a566 100644
    --- a/htdocs/cron/admin/cron.php
    +++ b/htdocs/cron/admin/cron.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2013	Laurent Destailleur		<eldy@users.sourceforge.org>
      * Copyright (C) 2011		Juanjo Menent			<jmenent@2byte.es>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -25,7 +25,7 @@
      */
     
     // Dolibarr environment
    -$res = @include("../../main.inc.php"); // From htdocs directory
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/cron.lib.php';
     
    diff --git a/htdocs/cron/card.php b/htdocs/cron/card.php
    index bdbab5e30b0..56a02ed5b14 100644
    --- a/htdocs/cron/card.php
    +++ b/htdocs/cron/card.php
    @@ -1,7 +1,8 @@
     <?php
    -/* Copyright (C) 2012      Nicolas Villa aka Boyquotes http://informetic.fr
    - * Copyright (C) 2013      Florian Henry <florian.henry@open-concpt.pro>
    - * Copyright (C) 2013-2016 Laurent Destailleur <eldy@users.sourceforge.net>
    +/* Copyright (C) 2012       Nicolas Villa aka Boyquotes http://informetic.fr
    + * Copyright (C) 2013       Florian Henry           <florian.henry@open-concpt.pro>
    + * Copyright (C) 2013-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -226,6 +227,7 @@ if ($action=='activate')
     if ($action=='inactive')
     {
     	$object->status=0;
    +	$object->processing=0;
     
     	// Add cron task
     	$result = $object->update($user);
    @@ -469,11 +471,11 @@ if (($action=="create") || ($action=="edit"))
     	print $langs->trans('CronDtStart')."</td><td>";
     	if(!empty($object->datestart))
     	{
    -	    $form->select_date($object->datestart,'datestart',1,1,'',"cronform");
    +        print $form->selectDate($object->datestart, 'datestart', 1, 1, '', "cronform");
     	}
     	else
     	{
    -	    $form->select_date('','datestart',1,1,'',"cronform");
    +        print $form->selectDate('', 'datestart', 1, 1, '', "cronform");
     	}
     	print "</td>";
     	print "<td>";
    @@ -483,10 +485,10 @@ if (($action=="create") || ($action=="edit"))
     	print "<tr><td>";
     	print $langs->trans('CronDtEnd')."</td><td>";
     	if(!empty($object->dateend)){
    -	    $form->select_date($object->dateend,'dateend',1,1,'',"cronform");
    +        print $form->selectDate($object->dateend, 'dateend', 1, 1, '', "cronform");
     	}
     	else{
    -	    $form->select_date(-1,'dateend',1,1,1,"cronform");
    +        print $form->selectDate(-1, 'dateend', 1, 1, 1, "cronform");
     	}
     	print "</td>";
     	print "<td>";
    @@ -523,11 +525,11 @@ if (($action=="create") || ($action=="edit"))
     	print "</td><td>";
     	if(!empty($object->datenextrun))
     	{
    -	    $form->select_date($object->datenextrun,'datenextrun',1,1,'',"cronform");
    +        print $form->selectDate($object->datenextrun, 'datenextrun', 1, 1, '', "cronform");
     	}
     	else
     	{
    -	    $form->select_date(-1,'datenextrun',1,1,'',"cronform");
    +        print $form->selectDate(-1, 'datenextrun', 1, 1, '', "cronform");
     	}
     	print "</td>";
         print "<td>";
    @@ -545,7 +547,6 @@ if (($action=="create") || ($action=="edit"))
     	print "</div>";
     
     	print "</form>\n";
    -
     }
     else
     {
    @@ -728,25 +729,25 @@ else
     
     	print "\n\n<div class=\"tabsAction\">\n";
     	if (! $user->rights->cron->create) {
    -		print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("Edit").'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("Edit").'</a>';
     	} else {
     		print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=edit&id='.$object->id.'">'.$langs->trans("Edit").'</a>';
     	}
     
     	if ((empty($user->rights->cron->execute)))
     	{
    -		print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("CronExecute").'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("CronExecute").'</a>';
     	}
     	else if (empty($object->status))
     	{
    -		print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("JobDisabled")).'">'.$langs->trans("CronExecute").'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("JobDisabled")).'">'.$langs->trans("CronExecute").'</a>';
     	}
     	else {
     		print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=execute&id='.$object->id.(empty($conf->global->CRON_KEY)?'':'&securitykey='.$conf->global->CRON_KEY).'">'.$langs->trans("CronExecute").'</a>';
     	}
     
     	if (! $user->rights->cron->create) {
    -	    print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("CronStatusActiveBtn").'/'.$langs->trans("CronStatusInactiveBtn").'</a>';
    +	    print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("CronStatusActiveBtn").'/'.$langs->trans("CronStatusInactiveBtn").'</a>';
     	} else {
     	    if (empty($object->status)) {
     	        print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=activate&id='.$object->id.'">'.$langs->trans("CronStatusActiveBtn").'</a>';
    diff --git a/htdocs/cron/class/cronjob.class.php b/htdocs/cron/class/cronjob.class.php
    index e3235789d66..f619befab0d 100644
    --- a/htdocs/cron/class/cronjob.class.php
    +++ b/htdocs/cron/class/cronjob.class.php
    @@ -22,23 +22,43 @@
      */
     
     // Put here all includes required by your class file
    -require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php");
    +require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php";
     
     
     /**
    - *	Crob Job class
    + *	Cron Job class
      */
     class Cronjob extends CommonObject
     {
    -	public $element='cronjob';			//!< Id that identify managed objects
    -	public $table_element='cronjob';		//!< Name of table without prefix where object is stored
    -    public $picto = 'cron';
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='cronjob';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='cronjob';
    +
    +    /**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto = 'cron';
    +
    +    /**
    +	 * @var int Entity
    +	 */
    +	public $entity;
     
    -    public $entity;
         public $jobtype;
     	public $tms='';
     	public $datec='';
    -	public $label;
    +
    +	/**
    +     * @var string Cron Job label
    +     */
    +    public $label;
    +
     	public $command;
     	public $classesname;
     	public $objectname;
    @@ -56,10 +76,24 @@ class Cronjob extends CommonObject
     	public $lastoutput;
     	public $unitfrequency;
     	public $frequency;
    +
    +	/**
    +	 * @var int Status
    +	 */
     	public $status;
    +
     	public $processing;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_author;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_mod;
    +
     	public $nbrun;
     	public $libname;
     	public $test;					// A test condition to know if job is visible/qualified
    @@ -77,7 +111,6 @@ class Cronjob extends CommonObject
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    @@ -230,8 +263,8 @@ class Cronjob extends CommonObject
             {
                 $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."cronjob");
     
    -			if (! $notrigger)
    -			{
    +			//if (! $notrigger)
    +			//{
     	            // Uncomment this and change MYOBJECT to your own tag if you
     	            // want this action calls a trigger.
     
    @@ -241,7 +274,7 @@ class Cronjob extends CommonObject
     	            //$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
     	            //if ($result < 0) { $error++; $this->errors=$interface->errors; }
     	            //// End call triggers
    -			}
    +			//}
             }
     
             // Commit or rollback
    @@ -360,6 +393,7 @@ class Cronjob extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Load object in memory from the database
          *
    @@ -374,7 +408,8 @@ class Cronjob extends CommonObject
          */
         function fetch_all($sortorder='DESC', $sortfield='t.rowid', $limit=0, $offset=0, $status=1, $filter='', $processing=-1)
         {
    -    	global $langs;
    +        // phpcs:enable
    +        global $langs;
     
         	$this->lines=array();
     
    @@ -414,7 +449,7 @@ class Cronjob extends CommonObject
         	$sql.= " WHERE 1 = 1";
         	if ($processing >= 0) $sql.= " AND t.processing = ".(empty($processing)?'0':'1');
         	if ($status >= 0 && $status < 2) $sql.= " AND t.status = ".(empty($status)?'0':'1');
    -    	if ($status == 2) $sql.= " AND t.status = 2";
    +    	elseif ($status == 2) $sql.= " AND t.status = 2";
         	//Manage filter
         	if (is_array($filter) && count($filter)>0) {
         		foreach($filter as $key => $value)
    @@ -617,10 +652,8 @@ class Cronjob extends CommonObject
             $resql = $this->db->query($sql);
         	if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
     
    -		if (! $error)
    -		{
    -			if (! $notrigger)
    -			{
    +		//if (! $error && ! $notrigger)
    +		//{
     	            // Uncomment this and change MYOBJECT to your own tag if you
     	            // want this action calls a trigger.
     
    @@ -630,8 +663,7 @@ class Cronjob extends CommonObject
     	            //$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
     	            //if ($result < 0) { $error++; $this->errors=$interface->errors; }
     	            //// End call triggers
    -	    	}
    -		}
    +		//}
     
             // Commit or rollback
     		if ($error)
    @@ -725,8 +757,6 @@ class Cronjob extends CommonObject
     
     		$object=new Cronjob($this->db);
     
    -		$object->context['createfromclone'] = 'createfromclone';
    -
     		$this->db->begin();
     
     		// Load source object
    @@ -738,6 +768,7 @@ class Cronjob extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result=$object->create($user);
     
     		// Other options
    @@ -747,13 +778,12 @@ class Cronjob extends CommonObject
     			$error++;
     		}
     
    -		if (! $error)
    -		{
    +		//if (! $error)
    +		//{
     
    +		//}
     
    -		}
    -
    -		unset($this->context['createfromclone']);
    +		unset($object->context['createfromclone']);
     
     		// End
     		if (! $error)
    @@ -911,6 +941,7 @@ class Cronjob extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Run a job.
     	 * Once job is finished, status and nb of run is updated.
    @@ -921,6 +952,7 @@ class Cronjob extends CommonObject
     	 */
     	function run_jobs($userlogin)
     	{
    +        // phpcs:enable
     		global $langs, $conf;
     
     		$now=dol_now();
    @@ -1034,8 +1066,9 @@ class Cronjob extends CommonObject
     			// Load langs
     			if (! $error)
     			{
    -				$result=$langs->load($this->module_name.'@'.$this->module_name);
    -				if ($result < 0)
    +				$result=$langs->load($this->module_name);
    +				$result=$langs->load($this->module_name.'@'.$this->module_name);	// If this->module_name was an existing language file, this will make nothing
    +				if ($result < 0)	// If technical error
     				{
     					dol_syslog(get_class($this)."::run_jobs Cannot load module lang file - ".$langs->error, LOG_ERR);
     					$this->error = $langs->error;
    @@ -1104,14 +1137,17 @@ class Cronjob extends CommonObject
     				$conf->entity = $savcurrententity;
     				return -1;
     			}
    +
     			// Load langs
    -			$result=$langs->load($this->module_name . '@' . $this->module_name);
    -			if ($result<0)
    +			$result=$langs->load($this->module_name);
    +			$result=$langs->load($this->module_name.'@'.$this->module_name);	// If this->module_name was an existing language file, this will make nothing
    +			if ($result < 0)	// If technical error
     			{
     				dol_syslog(get_class($this) . "::run_jobs Cannot load module langs" . $langs->error, LOG_ERR);
     				$conf->entity = $savcurrententity;
     				return -1;
     			}
    +
     			dol_syslog(get_class($this) . "::run_jobs " . $this->libname . "::" . $this->methodename."(" . $this->params . ");", LOG_DEBUG);
     			$params_arr = explode(", ", $this->params);
     			if (!is_array($params_arr))
    @@ -1181,6 +1217,7 @@ class Cronjob extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Reprogram a job
     	 *
    @@ -1190,6 +1227,7 @@ class Cronjob extends CommonObject
     	 */
     	function reprogram_jobs($userlogin, $now)
     	{
    +        // phpcs:enable
     		dol_syslog(get_class($this)."::reprogram_jobs userlogin:$userlogin", LOG_DEBUG);
     
     		require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
    @@ -1265,51 +1303,56 @@ class Cronjob extends CommonObject
     	 */
     	function getLibStatut($mode=0)
     	{
    -	    return $this->LibStatut($this->status,$mode);
    +	    return $this->LibStatut($this->status, $mode, $this->processing);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
     	 *  @param	int		$status        	Id statut
     	 *  @param  int		$mode          	0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
    +	 *	@param	int		$processing		0=Not running, 1=Running
     	 *  @return string 			       	Label of status
     	 */
    -	function LibStatut($status,$mode=0)
    +	function LibStatut($status, $mode=0, $processing=0)
     	{
    -	    global $langs;
    +        // phpcs:enable
    +        global $langs;
     	    $langs->load('users');
     
    +	    $moretext = '';
    +	    if ($processing) $moretext=' ('.$langs->trans("Running").')';
    +
     	    if ($mode == 0)
     	    {
    -	        $prefix='';
    -	        if ($status == 1) return $langs->trans('Enabled');
    -	        if ($status == 0) return $langs->trans('Disabled');
    +	    	if ($status == 1) return $langs->trans('Enabled').$moretext;
    +	    	elseif ($status == 0) return $langs->trans('Disabled').$moretext;
     	    }
    -	    if ($mode == 1)
    +	    elseif ($mode == 1)
     	    {
    -	        if ($status == 1) return $langs->trans('Enabled');
    -	        if ($status == 0) return $langs->trans('Disabled');
    +	    	if ($status == 1) return $langs->trans('Enabled').$moretext;
    +	    	elseif ($status == 0) return $langs->trans('Disabled').$moretext;
     	    }
    -	    if ($mode == 2)
    +	    elseif ($mode == 2)
     	    {
    -	        if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4','class="pictostatus"').' '.$langs->trans('Enabled');
    -	        if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"').' '.$langs->trans('Disabled');
    +	    	if ($status == 1) return img_picto($langs->trans('Enabled'),'statut'.($processing?'1':'4'),'class="pictostatus"').' '.$langs->trans('Enabled').$moretext;
    +	    	elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"').' '.$langs->trans('Disabled').$moretext;
     	    }
    -	    if ($mode == 3)
    +	    elseif ($mode == 3)
     	    {
    -	        if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4','class="pictostatus"');
    -	        if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"');
    +	    	if ($status == 1) return img_picto($langs->trans('Enabled').$moretext,'statut'.($processing?'1':'4'),'class="pictostatus"');
    +	    	elseif ($status == 0) return img_picto($langs->trans('Disabled').$moretext,'statut5','class="pictostatus"');
     	    }
    -	    if ($mode == 4)
    +	    elseif ($mode == 4)
     	    {
    -	        if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4','class="pictostatus"').' '.$langs->trans('Enabled');
    -	        if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"').' '.$langs->trans('Disabled');
    +	    	if ($status == 1) return img_picto($langs->trans('Enabled').$moretext,'statut'.($processing?'1':'4'),'class="pictostatus"').' '.$langs->trans('Enabled').$moretext;
    +	    	elseif ($status == 0) return img_picto($langs->trans('Disabled').$moretext,'statut5','class="pictostatus"').' '.$langs->trans('Disabled').$moretext;
     	    }
    -	    if ($mode == 5)
    +	    elseif ($mode == 5)
     	    {
    -	        if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4','class="pictostatus"');
    -	        if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"');
    +	    	if ($status == 1) return $langs->trans('Enabled').$moretext.' '.img_picto($langs->trans('Enabled').$moretext,'statut'.($processing?'1':'4'),'class="pictostatus"');
    +	    	elseif ($status == 0) return $langs->trans('Disabled').$moretext.' '.img_picto($langs->trans('Disabled').$moretext,'statut5','class="pictostatus"');
     	    }
     	}
     }
    @@ -1321,12 +1364,24 @@ class Cronjob extends CommonObject
     class Cronjobline
     {
     
    +	/**
    +	 * @var int ID
    +	 */
     	public $id;
    +
    +	/**
    +	 * @var string Ref
    +	 */
     	public $ref;
     
     	public $tms='';
     	public $datec='';
    -	public $label;
    +
    +	/**
    +     * @var string Cron Job Line label
    +     */
    +    public $label;
    +
     	public $jobtype;
     	public $command;
     	public $classesname;
    @@ -1344,9 +1399,22 @@ class Cronjobline
     	public $lastoutput;
     	public $unitfrequency;
     	public $frequency;
    +
    +	/**
    +	 * @var int Status
    +	 */
     	public $status;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_author;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_mod;
    +
     	public $note;
     	public $nbrun;
     	public $libname;
    diff --git a/htdocs/cron/list.php b/htdocs/cron/list.php
    index 1f810132223..5017a0af24d 100644
    --- a/htdocs/cron/list.php
    +++ b/htdocs/cron/list.php
    @@ -62,15 +62,16 @@ $securitykey = GETPOST('securitykey','alpha');
     
     $diroutputmassaction=$conf->cronjob->dir_output . '/temp/massgeneration/'.$user->id;
     
    +$object = new Cronjob($db);
    +
     // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
     $hookmanager->initHooks(array('cronjoblist'));
     $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('cronjob');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
    -$object = new Cronjob($db);
     
     
     /*
    @@ -191,7 +192,7 @@ if (empty($reshook))
     				$result = 0;
     				if ($massaction == 'disable') $result = $tmpcron->setStatut(Cronjob::STATUS_DISABLED);
     				elseif ($massaction == 'enable') $result = $tmpcron->setStatut(Cronjob::STATUS_ENABLED);
    -				else dol_print_error($db, 'Bad value for massaction');
    +				//else dol_print_error($db, 'Bad value for massaction');
     				if ($result < 0) setEventMessages($tmpcron->error, $tmpcron->errors, 'errors');
     			}
     			else
    @@ -229,6 +230,7 @@ $sql.= " t.params,";
     $sql.= " t.md5params,";
     $sql.= " t.module_name,";
     $sql.= " t.priority,";
    +$sql.= " t.processing,";
     $sql.= " t.datelastrun,";
     $sql.= " t.datenextrun,";
     $sql.= " t.dateend,";
    @@ -387,6 +389,7 @@ print '<td class="liste_titre">&nbsp;</td>';
     print '<td class="liste_titre">&nbsp;</td>';
     print '<td class="liste_titre">&nbsp;</td>';
     print '<td class="liste_titre">&nbsp;</td>';
    +print '<td class="liste_titre">&nbsp;</td>';
     print '<td class="liste_titre" align="center">';
     print $form->selectarray('search_status', array('0'=>$langs->trans("Disabled"), '1'=>$langs->trans("Enabled"), '-2'=>$langs->trans("EnabledAndDisabled"), '2'=>$langs->trans("Archived")), $search_status, 1);
     print '</td><td class="liste_titre" align="right">';
    @@ -406,6 +409,7 @@ print_liste_field_titre("CronDtEnd",$_SERVER["PHP_SELF"],"t.dateend","",$param,'
     print_liste_field_titre("CronMaxRun",$_SERVER["PHP_SELF"],"t.maxrun","",$param,'align="right"',$sortfield,$sortorder);
     print_liste_field_titre("CronNbRun",$_SERVER["PHP_SELF"],"t.nbrun","",$param,'align="right"',$sortfield,$sortorder);
     print_liste_field_titre("CronDtLastLaunch",$_SERVER["PHP_SELF"],"t.datelastrun","",$param,'align="center"',$sortfield,$sortorder);
    +print_liste_field_titre("Duration",$_SERVER["PHP_SELF"],"","",$param,'align="center"',$sortfield,$sortorder);
     print_liste_field_titre("CronLastResult",$_SERVER["PHP_SELF"],"t.lastresult","",$param,'align="center"',$sortfield,$sortorder);
     print_liste_field_titre("CronLastOutput",$_SERVER["PHP_SELF"],"t.lastoutput","",$param,'',$sortfield,$sortorder);
     print_liste_field_titre("CronDtNextLaunch",$_SERVER["PHP_SELF"],"t.datenextrun","",$param,'align="center"',$sortfield,$sortorder);
    @@ -417,10 +421,9 @@ print "</tr>\n";
     if ($num > 0)
     {
     	// Loop on each job
    -	$style='pair';
     	$now = dol_now();
     	$i=0;
    -	$totalarray=array();
    +
     	while ($i < min($num,$limit))
     	{
     		$obj = $db->fetch_object($result);
    @@ -433,6 +436,10 @@ if ($num > 0)
     		$object->label = $obj->label;
     		$object->status = $obj->status;
     		$object->priority = $obj->priority;
    +		$object->processing = $obj->processing;
    +
    +		$datelastrun = $db->jdate($obj->datelastrun);
    +		$datelastresult = $db->jdate($obj->datelastresult);
     
     		print '<tr class="oddeven">';
     
    @@ -504,10 +511,20 @@ if ($num > 0)
     		if (!empty($obj->nbrun)) {print $obj->nbrun;} else {print '0';}
     		print '</td>';
     
    +		// Date start last run
     		print '<td class="center">';
    -		if(!empty($obj->datelastrun)) {print dol_print_date($db->jdate($obj->datelastrun),'dayhour');}
    +		if (!empty($datelastrun)) {print dol_print_date($datelastrun,'dayhoursec');}
     		print '</td>';
     
    +		// Duration
    +		print '<td class="center">';
    +		if (!empty($datelastresult) && ($datelastresult >= $datelastrun)) {
    +		    print convertSecondToTime(max($datelastresult - $datelastrun, 1), 'allhourminsec');
    +		    //print '<br>'.($datelastresult - $datelastrun).' '.$langs->trans("seconds");
    +		}
    +		print '</td>';
    +
    +		// Return code of last run
     		print '<td class="center">';
     		if ($obj->lastresult != '') {
     			if (empty($obj->lastresult)) print $obj->lastresult;
    @@ -515,6 +532,7 @@ if ($num > 0)
     		}
     		print '</td>';
     
    +		// Output of last run
     		print '<td>';
     		if(!empty($obj->lastoutput)) {print dol_trunc(nl2br($obj->lastoutput),50);}
     		print '</td>';
    diff --git a/htdocs/datapolicy/README.md b/htdocs/datapolicy/README.md
    new file mode 100644
    index 00000000000..e2bde95a6d8
    --- /dev/null
    +++ b/htdocs/datapolicy/README.md
    @@ -0,0 +1,5 @@
    +DataPolicy
    +==========
    +
    +This module provides features to be compliant with data privacy rules of your country.
    +A schedlued job is installed to automatically clean old record in your database. You defined what to delete and when in the setup of module.
    \ No newline at end of file
    diff --git a/htdocs/datapolicy/admin/setup.php b/htdocs/datapolicy/admin/setup.php
    new file mode 100644
    index 00000000000..8e92e1e6231
    --- /dev/null
    +++ b/htdocs/datapolicy/admin/setup.php
    @@ -0,0 +1,201 @@
    +<?php
    +/* Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2018      Nicolas ZABOURI      <info@inovea-conseil.com>
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    datapolicy/admin/setup.php
    + * \ingroup datapolicy
    + * \brief   datapolicy setup page.
    + */
    +
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT . "/core/lib/admin.lib.php";
    +require_once '../lib/datapolicy.lib.php';
    +//require_once "../class/myclass.class.php";
    +
    +// Translations
    +$langs->load('admin');
    +$langs->load('companies');
    +$langs->load('members');
    +$langs->load('datapolicy@datapolicy');
    +
    +// Access control
    +if (! $user->admin) accessforbidden();
    +
    +// Parameters
    +$action = GETPOST('action', 'alpha');
    +$backtopage = GETPOST('backtopage', 'alpha');
    +
    +$arrayofparameters=array(
    +    'DATAPOLICY_TIERS_CLIENT'=>array('css'=>'minwidth200'),
    +    'DATAPOLICY_TIERS_PROSPECT'=>array('css'=>'minwidth200'),
    +    'DATAPOLICY_TIERS_PROSPECT_CLIENT'=>array('css'=>'minwidth200'),
    +    'DATAPOLICY_TIERS_NIPROSPECT_NICLIENT'=>array('css'=>'minwidth200'),
    +    'DATAPOLICY_TIERS_FOURNISSEUR'=>array('css'=>'minwidth200'),
    +    'DATAPOLICY_CONTACT_CLIENT'=>array('css'=>'minwidth200'),
    +    'DATAPOLICY_CONTACT_PROSPECT'=>array('css'=>'minwidth200'),
    +    'DATAPOLICY_CONTACT_PROSPECT_CLIENT'=>array('css'=>'minwidth200'),
    +    'DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT'=>array('css'=>'minwidth200'),
    +    'DATAPOLICY_CONTACT_FOURNISSEUR'=>array('css'=>'minwidth200'),
    +    'DATAPOLICY_ADHERENT'=>array('css'=>'minwidth200'),
    +);
    +
    +
    +/*
    + * Actions
    + */
    +
    +include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
    +
    +if (DOL_VERSION < '7' && $action == 'update') {
    +    foreach ($arrayofparameters as $k => $v) {
    +        $res = dolibarr_set_const($db,$k,GETPOST($k),'chaine',0,'',$conf->entity);
    +        if (! $res > 0) $error++;
    +    }
    +    if (! $error)
    +    {
    +        $db->commit();
    +        if (empty($nomessageinsetmoduleoptions)) setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    +    }
    +    else
    +    {
    +        $db->rollback();
    +        if (empty($nomessageinsetmoduleoptions)) setEventMessages($langs->trans("SetupNotSaved"), null, 'errors');
    +    }
    +}
    +
    +
    +$arrayofparameters=array(
    +    'ThirdParty' => array(
    +        'DATAPOLICY_TIERS_CLIENT'=>array('css'=>'minwidth200'),
    +        'DATAPOLICY_TIERS_PROSPECT'=>array('css'=>'minwidth200'),
    +        'DATAPOLICY_TIERS_PROSPECT_CLIENT'=>array('css'=>'minwidth200'),
    +        'DATAPOLICY_TIERS_NIPROSPECT_NICLIENT'=>array('css'=>'minwidth200'),
    +        'DATAPOLICY_TIERS_FOURNISSEUR'=>array('css'=>'minwidth200'),
    +    ),
    +    'Contact' => array(
    +        'DATAPOLICY_CONTACT_CLIENT'=>array('css'=>'minwidth200'),
    +        'DATAPOLICY_CONTACT_PROSPECT'=>array('css'=>'minwidth200'),
    +        'DATAPOLICY_CONTACT_PROSPECT_CLIENT'=>array('css'=>'minwidth200'),
    +        'DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT'=>array('css'=>'minwidth200'),
    +        'DATAPOLICY_CONTACT_FOURNISSEUR'=>array('css'=>'minwidth200'),
    +    ),
    +    'Member' => array(
    +        'DATAPOLICY_ADHERENT'=>array('css'=>'minwidth200'),
    +    )
    +);
    +
    +$valTab = array(
    +    '' => $langs->trans('Never'),
    +    '6' => $langs->trans('NB_MONTHS', 6),
    +    '12' => $langs->trans('ONE_YEAR'),
    +    '24' => $langs->trans('NB_YEARS', 2),
    +    '36' => $langs->trans('NB_YEARS', 3),
    +    '48' => $langs->trans('NB_YEARS', 4),
    +    '60' => $langs->trans('NB_YEARS', 5),
    +    '120' => $langs->trans('NB_YEARS', 10),
    +	'180' => $langs->trans('NB_YEARS', 15),
    +	'240' => $langs->trans('NB_YEARS', 20),
    +);
    +
    +
    +/*
    + * View
    + */
    +
    +$page_name = "datapolicySetup";
    +llxHeader('', $langs->trans($page_name));
    +
    +// Subheader
    +$linkback = '<a href="'.($backtopage?$backtopage:DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1').'">'.$langs->trans("BackToModuleList").'</a>';
    +
    +print load_fiche_titre($langs->trans($page_name), $linkback, 'object_datapolicy@datapolicy');
    +
    +// Configuration header
    +$head = datapolicyAdminPrepareHead();
    +dol_fiche_head($head, 'settings', '', -1, "datapolicy@datapolicy");
    +
    +// Setup page goes here
    +echo '<span class="opacitymedium">'.$langs->trans("datapolicySetupPage").'</span><br><br>';
    +
    +
    +if ($action == 'edit')
    +{
    +	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    +	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +	print '<input type="hidden" name="action" value="update">';
    +
    +	print '<table class="noborder" width="100%">';
    +	print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
    +
    +	foreach($arrayofparameters as $title => $tab)
    +	{
    +        print '<tr class="liste_titre"><td class="titlefield" colspan="2">'.$langs->trans($title).'</td></tr>';
    +        foreach($tab as $key => $val)
    +        {
    +            print '<tr class="oddeven"><td>';
    +            print $form->textwithpicto($langs->trans($key),$langs->trans($key.'Tooltip'));
    +            print '</td><td>';
    +            print '<select name="'.$key.'"  class="flat '.(empty($val['css'])?'minwidth200':$val['css']).'">';
    +            foreach ($valTab as $key1 => $val1) {
    +                print '<option value="'.$key1.'" ' . ($conf->global->$key == $key1 ? 'selected="selected"' : '') . '>';
    +                print $val1;
    +                print '</option>';
    +            }
    +            print '</select>';
    +            print '</td></tr>';
    +        }
    +	}
    +
    +	print '</table>';
    +
    +	print '<br><div class="center">';
    +	print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
    +	print '</div>';
    +
    +	print '</form>';
    +	print '<br>';
    +}
    +else
    +{
    +	print '<table class="noborder" width="100%">';
    +	print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
    +
    +    foreach($arrayofparameters as $title => $tab)
    +    {
    +        print '<tr class="liste_titre"><td class="titlefield" colspan="2">'.$langs->trans($title).'</td></tr>';
    +        foreach($tab as $key => $val)
    +        {
    +            print '<tr class="oddeven"><td>';
    +            print $form->textwithpicto($langs->trans($key),$langs->trans('DATAPOLICY_Tooltip_SETUP'));
    +            print '</td><td>' . ($conf->global->$key == '' ? $langs->trans('None') : $valTab[$conf->global->$key]) . '</td></tr>';
    +        }
    +    }
    +
    +	print '</table>';
    +
    +	print '<div class="tabsAction">';
    +	print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a>';
    +	print '</div>';
    +}
    +
    +
    +// Page end
    +dol_fiche_end();
    +
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/datapolicy/admin/setupmail.php b/htdocs/datapolicy/admin/setupmail.php
    new file mode 100644
    index 00000000000..f50fa08d31c
    --- /dev/null
    +++ b/htdocs/datapolicy/admin/setupmail.php
    @@ -0,0 +1,164 @@
    +<?php
    +
    +/* Copyright (C) 2004-2017  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Nicolas ZABOURI         <info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT . "/core/lib/admin.lib.php";
    +require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formadmin.class.php';
    +require_once '../lib/datapolicy.lib.php';
    +
    +// Translations
    +$langs->loadLangs(array('admin', 'companies', 'members', 'datapolicy'));
    +
    +
    +// Parameters
    +$action = GETPOST('action', 'alpha');
    +$backtopage = GETPOST('backtopage', 'alpha');
    +$formadmin = new FormAdmin($db);
    +
    +if (GETPOST('l')) {
    +    $l = GETPOST('l');
    +} else {
    +    $l = $langs->defaultlang;
    +}
    +// Access control
    +if (!$user->admin)
    +    accessforbidden();
    +
    +/*
    + * Actions
    + */
    +
    +include DOL_DOCUMENT_ROOT . '/core/actions_setmoduleoptions.inc.php';
    +
    +if ($action == 'setvalue' && $user->admin) {
    +    $db->begin();
    +    $sub = "DATAPOLICIESSUBJECT_" . $l;
    +    $result = dolibarr_set_const($db, $sub, GETPOST($sub), 'chaine', 0, '', $conf->entity);
    +    $cont = "DATAPOLICIESCONTENT_" . $l;
    +    $result = dolibarr_set_const($db, $cont, GETPOST($cont), 'chaine', 0, '', $conf->entity);
    +    $cont = "TXTLINKDATAPOLICIESACCEPT_" . $l;
    +    $result = dolibarr_set_const($db, $cont, GETPOST($cont), 'chaine', 0, '', $conf->entity);
    +    $cont = "TXTLINKDATAPOLICIESREFUSE_" . $l;
    +    $result = dolibarr_set_const($db, $cont, GETPOST($cont), 'chaine', 0, '', $conf->entity);
    +    $sub = "DATAPOLICIESACCEPT_" . $l;
    +    $result = dolibarr_set_const($db, $sub, GETPOST($sub), 'chaine', 0, '', $conf->entity);
    +    $sub = "DATAPOLICIESREFUSE_" . $l;
    +    $result = dolibarr_set_const($db, $sub, GETPOST($sub), 'chaine', 0, '', $conf->entity);
    +    if (!$result > 0)
    +        $error++;
    +    if (!$error) {
    +        $db->commit();
    +        setEventMessage($langs->trans("SetupSaved"));
    +    } else {
    +        $db->rollback();
    +        dol_print_error($db);
    +    }
    +}
    +
    +
    +/*
    + * View
    + */
    +
    +$page_name = "datapolicySetup";
    +llxHeader('', $langs->trans($page_name));
    +
    +// Subheader
    +$linkback = '<a href="' . ($backtopage ? $backtopage : DOL_URL_ROOT . '/admin/modules.php?restore_lastsearch_values=1') . '">' . $langs->trans("BackToModuleList") . '</a>';
    +
    +print load_fiche_titre($langs->trans($page_name), $linkback, 'object_datapolicy@datapolicy');
    +
    +// Configuration header
    +$head = datapolicyAdminPrepareHead();
    +dol_fiche_head($head, 'settings', '', -1, "datapolicy@datapolicy");
    +
    +
    +print "<script type='text/javascript'>
    +        $(document).ready(function(){
    +         $('#default_lang').change(function(){
    +         lang=$('#default_lang').val();
    +                    window.location.replace('" . $_SERVER['PHP_SELF'] . "?l='+lang);
    +                    });
    +        });
    +</script>";
    +
    +print '<form method="post" action="' . $_SERVER["PHP_SELF"] . '?l=' . $l . '">';
    +print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    +print '<input type="hidden" name="action" value="setvalue">';
    +print '<table>';
    +if ($conf->global->MAIN_MULTILANGS) {
    +    print '<tr><td>' . $form->editfieldkey('DefaultLang', 'default_lang', '', null, 0) . '</td><td colspan="3" class="maxwidthonsmartphone">' . "\n";
    +    print $formadmin->select_language((GETPOST('l') ? GETPOST('l') : $langs->defaultlang), 'default_lang', 0, 0, 1, 0, 0, 'maxwidth200onsmartphone');
    +    print '</tr>';
    +}
    +$subject = 'DATAPOLICIESSUBJECT_' . $l;
    +$linka = 'TXTLINKDATAPOLICIESACCEPT_' . $l;
    +$linkr = 'TXTLINKDATAPOLICIESREFUSE_' . $l;
    +$content = 'DATAPOLICIESCONTENT_' . $l;
    +$acc = 'DATAPOLICIESACCEPT_' . $l;
    +$ref = 'DATAPOLICIESREFUSE_' . $l;
    +print '<tr class"oddeven"><td class="fieldrequired">';
    +print $langs->trans('DATAPOLICIESSUBJECTMAIL') . '</td><td>';
    +print '<input type="text" size="100" name="' . $subject . '" value="' . $conf->global->$subject . '" />';
    +print '</td><tr>';
    +print '<tr class"oddeven"><td class="fieldrequired">';
    +print $langs->trans('DATAPOLICIESCONTENTMAIL').'</td><td>';
    +print $langs->trans('DATAPOLICIESSUBSITUTION');echo'__LINKACCEPT__,__LINKREFUSED__,__FIRSTNAME__,__NAME__,__CIVILITY__';
    +$doleditor = new DolEditor($content, $conf->global->$content, '', 250, 'Full', '', false, true, 1, 200, 70);
    +$doleditor->Create();
    +print '</td><tr>';
    +print '<tr class"oddeven"><td class="fieldrequired">';
    +print $langs->trans('TXTLINKDATAPOLICIESACCEPT') . '</td><td>';
    +print '<input type="text" size="200" name="' . $linka . '" value="' . $conf->global->$linka . '" />';
    +print '</td><tr>';
    +print '<tr class"oddeven"><td class="fieldrequired">';
    +print $langs->trans('TXTLINKDATAPOLICIESREFUSE') . '</td><td>';
    +print '<input type="text" size="200" name="' . $linkr . '" value="' . $conf->global->$linkr . '" />';
    +print '</td><tr>';
    +print '<tr class"oddeven"><td class="fieldrequired">';
    +
    +print $langs->trans('DATAPOLICIESACCEPT').'</td><td>';
    +
    +$doleditor = new DolEditor($acc, $conf->global->$acc, '', 250, 'Full', '', false, true, 1, 200, 70);
    +$doleditor->Create();
    +print '</td><tr>';
    +print '<tr class"oddeven"><td class="fieldrequired">';
    +print $langs->trans('DATAPOLICIESREFUSE').'</td><td>';
    +
    +print $langs->trans('');
    +$doleditor = new DolEditor($ref, $conf->global->$ref, '', 250, 'Full', '', false, true, 1, 200, 70);
    +$doleditor->Create();
    +print '</td><tr>';
    +print '</table>';
    +
    +print '<br><center><input type="submit" class="button" value="' . $langs->trans("Modify") . '"></center>';
    +
    +print '</form>';
    +
    +dol_fiche_end();
    +
    +print '<br><br>';
    +
    +print $langs->trans('SendAgreementText');
    +print '<a class="button" href="'.dol_buildpath('/datapolicy/mailing.php').'">'.$langs->trans('SendAgreement').'</a>';
    +
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/datapolicy/class/actions_datapolicy.class.php b/htdocs/datapolicy/class/actions_datapolicy.class.php
    new file mode 100644
    index 00000000000..21fcb4a5a44
    --- /dev/null
    +++ b/htdocs/datapolicy/class/actions_datapolicy.class.php
    @@ -0,0 +1,482 @@
    +<?php
    +/* Copyright (C) 2018       Nicolas ZABOURI         <info@inovea-conseom.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    datapolicy/class/actions_datapolicy.class.php
    + * \ingroup datapolicy
    + * \brief   Example hook overload.
    + */
    +
    +/**
    + * Class ActionsDatapolicy
    + */
    +class ActionsDatapolicy
    +{
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +     * @var string Error
    +     */
    +    public $error = '';
    +
    +    /**
    +     * @var array Errors
    +     */
    +    public $errors = array();
    +
    +    /**
    +     * @var array Hook results. Propagated to $hookmanager->resArray for later reuse
    +     */
    +    public $results = array();
    +
    +    /**
    +     * @var string String displayed by executeHook() immediately after return
    +     */
    +    public $resprints;
    +
    +    /**
    +     * Constructor
    +     *
    +     *  @param  DoliDB      $db      Database handler
    +     */
    +    public function __construct($db)
    +    {
    +        $this->db = $db;
    +    }
    +
    +    /**
    +     * Execute action
    +     *
    +     * @param   array           $parameters		Array of parameters
    +     * @param   CommonObject    $object         The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...)
    +     * @param   string          $action      	'add', 'update', 'view'
    +     * @return  int         					<0 if KO,
    +     *                           				=0 if OK but we want to process standard actions too,
    +     *                            				>0 if OK and we want to replace standard actions.
    +     */
    +    function getNomUrl($parameters, &$object, &$action)
    +    {
    +        global $db, $langs, $conf, $user;
    +        $this->resprints = '';
    +        return 0;
    +    }
    +
    +    /**
    +     * Overloading the doActions function : replacing the parent's function with the one below
    +     *
    +     * @param   array           $parameters     Hook metadatas (context, etc...)
    +     * @param   CommonObject    $object         The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...)
    +     * @param   string          $action         Current action (if set). Generally create or edit or null
    +     * @param   HookManager     $hookmanager    Hook manager propagated to allow calling another hook
    +     * @return  int                             < 0 on error, 0 on success, 1 to replace standard code
    +     */
    +    public function doActions($parameters, &$object, &$action, $hookmanager)
    +    {
    +        global $conf, $user, $langs;
    +        $langs->load('datapolicy@datapolicy');
    +        $error = 0; // Error counter
    +
    +        if (GETPOST('socid') && $parameters['currentcontext'] == 'thirdpartycard') {
    +            $object->fetch(GETPOST('socid'));
    +        }
    +
    +        // FIXME Removed hard coded id, use codes
    +        if ($parameters['currentcontext'] == 'thirdpartycard' && $action == 'anonymiser' && (in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $object->typent_id == 8)) {
    +            // on verifie si l'objet est utilisé
    +            if ($object->isObjectUsed(GETPOST('socid'))) {
    +                $object->name = $langs->trans('ANONYME');
    +                $object->name_bis = '';
    +                $object->name_alias = '';
    +                $object->address = '';
    +                $object->town = '';
    +                $object->zip = '';
    +                $object->phone = '';
    +                $object->email = '';
    +                $object->url = '';
    +                $object->fax = '';
    +                $object->state = '';
    +                $object->country = '';
    +                $object->state_id = '';
    +                $object->skype = '';
    +                $object->country_id = '';
    +                $object->note_private = $object->note_private . '<br/>' . $langs->trans('ANONYMISER_AT', dol_print_date(time()));
    +
    +                if ($object->update($object->id, $user, 0)) {
    +
    +                    // On supprime les contacts associé
    +                    $sql = "DELETE FROM " . MAIN_DB_PREFIX . "socpeople WHERE fk_soc = " . $object->id;
    +                    $this->db->query($sql);
    +
    +                    setEventMessages($langs->trans('ANONYMISER_SUCCESS'), array());
    +                    header('Location:' . $_SERVER["PHP_SELF"] . "?socid=" . $object->id);
    +                }
    +            }
    +        } elseif ($parameters['currentcontext'] == 'thirdpartycard' && $action == 'datapolicy_portabilite') {
    +            header('Content-Type: application/csv');
    +            header('Content-Disposition: attachment; filename=datapolicy_portabilite.csv');
    +            header('Pragma: no-cache');
    +            $object->fetch(GETPOST('socid'));
    +            echo 'Name;Fistname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;' . PHP_EOL;
    +            echo $object->name . ';';
    +            echo ';';
    +            echo ';';
    +            echo ';';
    +            echo ';';
    +            echo $object->address . ';';
    +            echo $object->zip . ';';
    +            echo $object->town . ';';
    +            echo $object->state . ';';
    +            echo $object->country . ';';
    +            echo $object->email . ';';
    +            echo $object->phone . ';';
    +            echo ';';
    +            echo ';';
    +            echo $object->skype . ';';
    +            echo ';';
    +            exit;
    +        } elseif ($parameters['currentcontext'] == 'membercard' && $action == 'datapolicy_portabilite') {
    +            header('Content-Type: application/csv');
    +            header('Content-Disposition: attachment; filename=datapolicy_portabilite.csv');
    +            header('Pragma: no-cache');
    +            $soc = $object->fetch_thirdparty();
    +
    +            echo 'Name;Fistname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;' . PHP_EOL;
    +            echo $object->lastname . ';';
    +            echo $object->firstname . ';';
    +            echo $object->getCivilityLabel() . ';';
    +            echo ($soc != -1 ? $object->thirdparty->name : '') . ';';
    +            echo ';';
    +            echo $object->address . ';';
    +            echo $object->zip . ';';
    +            echo $object->town . ';';
    +            echo $object->state . ';';
    +            echo $object->country . ';';
    +            echo $object->email . ';';
    +            echo $object->phone . ';';
    +            echo $object->phone_perso . ';';
    +            echo $object->phone_mobile . ';';
    +            echo $object->skype . ';';
    +            echo dol_print_date($object->birth) . ';';
    +            exit;
    +        } elseif ($parameters['currentcontext'] == 'contactcard' && $action == 'datapolicy_portabilite') {
    +            $object->fetch(GETPOST('id'));
    +            header('Content-Type: application/csv');
    +            header('Content-Disposition: attachment; filename=datapolicy_portabilite.csv');
    +            header('Pragma: no-cache');
    +            $soc = $object->fetch_thirdparty();
    +            echo 'Name;Fistname;Civility;Thirdparty;Function;Address;ZipCode;City;Department;Country;Email;Pro Phone;Perso Phone;Mobile Phone;Instant Mail;Birthday;' . PHP_EOL;
    +            echo $object->lastname . ';';
    +            echo $object->firstname . ';';
    +            echo $object->getCivilityLabel() . ';';
    +            echo ($soc != -1 ? $object->thirdparty->name : '') . ';';
    +            echo $object->poste . ';';
    +            echo $object->address . ';';
    +            echo $object->zip . ';';
    +            echo $object->town . ';';
    +            echo $object->state . ';';
    +            echo $object->country . ';';
    +            echo $object->email . ';';
    +            echo $object->phone_pro . ';';
    +            echo $object->phone_perso . ';';
    +            echo $object->phone_mobile . ';';
    +            echo $object->jabberid . ';';
    +            echo dol_print_date($object->birth) . ';';
    +            exit;
    +        } elseif ($parameters['currentcontext'] == 'contactcard' && $action == 'send_datapolicy') {
    +            $object->fetch(GETPOST('id'));
    +
    +            require_once  DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
    +            require_once  DOL_DOCUMENT_ROOT . '/datapolicy/class/datapolicy.class.php';
    +            DataPolicy::sendMailDataPolicyContact($object);
    +        }
    +         elseif ($parameters['currentcontext'] == 'membercard' && $action == 'send_datapolicy') {
    +             $object->fetch(GETPOST('id'));
    +            require_once  DOL_DOCUMENT_ROOT . '/adherents/class/adherent.class.php';
    +            require_once  DOL_DOCUMENT_ROOT . '/datapolicy/class/datapolicy.class.php';
    +            DataPolicy::sendMailDataPolicyAdherent($object);
    +        } elseif ($parameters['currentcontext'] == 'thirdpartycard' && $action == 'send_datapolicy') {
    +            $object->fetch(GETPOST('socid'));
    +            require_once  DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
    +            require_once  DOL_DOCUMENT_ROOT . '/datapolicy/class/datapolicy.class.php';
    +            DataPolicy::sendMailDataPolicyCompany($object);
    +        }
    +
    +
    +        if (!$error) {
    +            $this->results = array('myreturn' => 999);
    +            $this->resprints = 'A text to show';
    +            return 0; // or return 1 to replace standard code
    +        } else {
    +            $this->errors[] = 'Error message';
    +            return -1;
    +        }
    +    }
    +
    +    /**
    +     * Overloading the doActions function : replacing the parent's function with the one below
    +     *
    +     * @param   array           $parameters     Hook metadatas (context, etc...)
    +     * @param   CommonObject    $object         The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...)
    +     * @param   string          $action         Current action (if set). Generally create or edit or null
    +     * @param   HookManager     $hookmanager    Hook manager propagated to allow calling another hook
    +     * @return  int                             < 0 on error, 0 on success, 1 to replace standard code
    +     */
    +    public function doMassActions($parameters, &$object, &$action, $hookmanager)
    +    {
    +        global $conf, $user, $langs;
    +
    +        $error = 0; // Error counter
    +
    +        /* print_r($parameters); print_r($object); echo "action: " . $action; */
    +        //if (in_array($parameters['currentcontext'], array('somecontext1', 'somecontext2'))) {
    +        //    // do something only for the context 'somecontext1' or 'somecontext2'
    +        //    foreach ($parameters['toselect'] as $objectid) {
    +        //        // Do action on each object id
    +        //    }
    +        //}
    +
    +        if (!$error) {
    +            $this->results = array('myreturn' => 999);
    +            $this->resprints = 'A text to show';
    +            return 0; // or return 1 to replace standard code
    +        } else {
    +            $this->errors[] = 'Error message';
    +            return -1;
    +        }
    +    }
    +
    +    /**
    +     * Overloading the addMoreMassActions function : replacing the parent's function with the one below
    +     *
    +     * @param   array           $parameters		Hook metadatas (context, etc...)
    +     * @param   CommonObject    $object         The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...)
    +     * @param   string          $action         Current action (if set). Generally create or edit or null
    +     * @param   HookManager     $hookmanager    Hook manager propagated to allow calling another hook
    +     * @return  int                             < 0 on error, 0 on success, 1 to replace standard code
    +     */
    +    public function addMoreMassActions($parameters, &$object, &$action, $hookmanager)
    +    {
    +        global $conf, $user, $langs;
    +
    +        $error = 0; // Error counter
    +
    +        /* print_r($parameters); print_r($object); echo "action: " . $action; */
    +        if (in_array($parameters['currentcontext'], array('somecontext1', 'somecontext2'))) {  // do something only for the context 'somecontext1' or 'somecontext2'
    +            $this->resprints = '<option value="0"' . ($disabled ? ' disabled="disabled"' : '') . '>' . $langs->trans("datapolicyMassAction") . '</option>';
    +        }
    +
    +        if (!$error) {
    +            return 0; // or return 1 to replace standard code
    +        } else {
    +            $this->errors[] = 'Error message';
    +            return -1;
    +        }
    +    }
    +
    +    /**
    +     * Execute action
    +     *
    +     * @param   array	$parameters		Array of parameters
    +     * @param   Object	$object		   	Object output on PDF
    +     * @param   string	$action     	'add', 'update', 'view'
    +     * @return  int 		        	<0 if KO,
    +     *                          		=0 if OK but we want to process standard actions too,
    +     *  	                            >0 if OK and we want to replace standard actions.
    +     */
    +    function beforePDFCreation($parameters, &$object, &$action)
    +    {
    +        global $conf, $user, $langs;
    +        global $hookmanager;
    +
    +        $outputlangs = $langs;
    +
    +        $ret = 0;
    +        $deltemp = array();
    +        dol_syslog(get_class($this) . '::executeHooks action=' . $action);
    +
    +        /* print_r($parameters); print_r($object); echo "action: " . $action; */
    +        if (in_array($parameters['currentcontext'], array('somecontext1', 'somecontext2'))) {  // do something only for the context 'somecontext1' or 'somecontext2'
    +
    +        }
    +
    +        return $ret;
    +    }
    +
    +    /**
    +     * Execute action
    +     *
    +     * @param	array	$parameters		Array of parameters
    +     * @param   Object	$pdfhandler   	PDF builder handler
    +     * @param   string	$action     	'add', 'update', 'view'
    +     * @return  int 		        	<0 if KO,
    +     *                          		=0 if OK but we want to process standard actions too,
    +     *  	                            >0 if OK and we want to replace standard actions.
    +     */
    +    function afterPDFCreation($parameters, &$pdfhandler, &$action)
    +    {
    +        global $conf, $user, $langs;
    +        global $hookmanager;
    +
    +        $outputlangs = $langs;
    +
    +        $ret = 0;
    +        $deltemp = array();
    +        dol_syslog(get_class($this) . '::executeHooks action=' . $action);
    +
    +        /* print_r($parameters); print_r($object); echo "action: " . $action; */
    +        if (in_array($parameters['currentcontext'], array('somecontext1', 'somecontext2'))) {  // do something only for the context 'somecontext1' or 'somecontext2'
    +
    +        }
    +
    +        return $ret;
    +    }
    +
    +    /**
    +     * addMoreActionsButtons
    +     *
    +     * @param array 		$parameters		array of parameters
    +     * @param Object	 	$object			Object
    +     * @param string		$action			Actions
    +     * @param HookManager	$hookmanager	Hook manager
    +     * @return void
    +     */
    +    function addMoreActionsButtons($parameters, &$object, &$action, $hookmanager)
    +    {
    +        global $conf, $user, $langs;
    +        $langs->load('datapolicy@datapolicy');
    +
    +        if (! empty($conf->global->DATAPOLICIES_ENABLE_EMAILS))
    +        {
    +	        $dialog = '<div id="dialogdatapolicy" style="display:none;" title="' . $langs->trans('DATAPOLICIES_PORTABILITE_TITLE') . '">';
    +	        $dialog .= '<div class="confirmmessage">' . img_help('', '') . ' ' . $langs->trans('DATAPOLICIES_PORTABILITE_CONFIRMATION') . '</div>';
    +	        $dialog .= "</div>";
    +	        $dialog .= '<script>
    +	                  $( function() {
    +	                    $("#rpgpdbtn").on("click", function(){
    +	                        var href = $(this).attr("href");
    +	                        $( "#dialogdatapolicy" ).dialog({
    +	                          modal: true,
    +	                          buttons: {
    +	                            "OK": function() {
    +	                              window.open(href);
    +	                              $( this ).dialog( "close" );
    +	                            },
    +	                            "' . $langs->trans('Cancel') . '": function() {
    +	                              $( this ).dialog( "close" );
    +	                            }
    +	                          }
    +	                        });
    +
    +
    +	                    return false;
    +	                    });
    +	                  } );
    +	                  </script>';
    +	        echo $dialog;
    +	        if ($parameters['currentcontext'] == 'thirdpartycard' && in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $object->typent_id == 8) {
    +	            echo '<div class="inline-block divButAction"><a target="_blank" id="rpgpdbtn" class="butAction" href="' . $_SERVER["PHP_SELF"] . "?socid=" . $object->id . '&action=datapolicy_portabilite" title="' . $langs->trans('DATAPOLICIES_PORTABILITE_TITLE') . '">' . $langs->trans("DATAPOLICIES_PORTABILITE") . '</a></div>';
    +	        } elseif ($parameters['currentcontext'] == 'membercard') {
    +	            echo '<div class="inline-block divButAction"><a target="_blank" id="rpgpdbtn" class="butAction" href="' . $_SERVER["PHP_SELF"] . "?rowid=" . $object->id . '&action=datapolicy_portabilite" title="' . $langs->trans('DATAPOLICIES_PORTABILITE_TITLE') . '">' . $langs->trans("DATAPOLICIES_PORTABILITE") . '</a></div>';
    +	        } elseif ($parameters['currentcontext'] == 'contactcard') {
    +	            echo '<div class="inline-block divButAction"><a target="_blank" id="rpgpdbtn" class="butAction" href="' . $_SERVER["PHP_SELF"] . "?id=" . $object->id . '&action=datapolicy_portabilite" title="' . $langs->trans('DATAPOLICIES_PORTABILITE_TITLE') . '">' . $langs->trans("DATAPOLICIES_PORTABILITE") . '</a></div>';
    +	        }
    +	        if (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'thirdpartycard' && in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $object->typent_id == 8) {
    +	            echo '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . "?socid=" . $object->id . '&action=send_datapolicy" title="' . $langs->trans('DATAPOLICIES_SEND') . '">' . $langs->trans("DATAPOLICIES_SEND") . '</a></div>';
    +	        } elseif (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'membercard') {
    +	            echo '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . "?rowid=" . $object->id . '&action=send_datapolicy" title="' . $langs->trans('DATAPOLICIES_SEND') . '">' . $langs->trans("DATAPOLICIES_SEND") . '</a></div>';
    +	        } elseif (!empty($object->mail) && empty($object->array_options['options_datapolicy_send']) && $parameters['currentcontext'] == 'contactcard') {
    +	            echo '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . "?id=" . $object->id . '&action=send_datapolicy" title="' . $langs->trans('DATAPOLICIES_SEND') . '">' . $langs->trans("DATAPOLICIES_SEND") . '</a></div>';
    +	        }
    +        }
    +    }
    +
    +    /**
    +     * printCommonFooter
    +     *
    +     * @param array 		$parameters		array of parameters
    +     * @param Object	 	$object			Object
    +     * @param string		$action			Actions
    +     * @param HookManager	$hookmanager	Hook manager
    +     * @return void
    +     */
    +    function printCommonFooter($parameters, &$object, &$action, $hookmanager)
    +    {
    +        global $conf, $user, $langs;
    +
    +        $jsscript = '';
    +        if ($parameters['currentcontext'] == 'thirdpartycard') {
    +            if (GETPOST('action') == 'create' || GETPOST('action') == 'edit' || GETPOST('action') == '') {
    +                $jsscript .= '<script>';
    +                $jsscript .= "var elementToHide = 'tr.societe_extras_datapolicy_consentement, tr.societe_extras_datapolicy_opposition_traitement, tr.societe_extras_datapolicy_opposition_prospection';" . PHP_EOL;
    +                $jsscript .= "var forme_juridique = [" . PHP_EOL;
    +                $jsscript .= "11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005" . PHP_EOL;
    +                $jsscript .= "];" . PHP_EOL;
    +                $jsscript .= "function hideRgPD() {" . PHP_EOL;
    +                $jsscript .= " if ($('#typent_id').val() == 8 || forme_juridique.indexOf(parseInt($('#forme_juridique_code').val())) > -1) {" . PHP_EOL;
    +                $jsscript .= " console.log(elementToHide);" . PHP_EOL;
    +                $jsscript .= " $('tr.societe_extras_datapolicy_consentement, tr.societe_extras_datapolicy_opposition_traitement, tr.societe_extras_datapolicy_opposition_prospection').show(); } else { $('tr.societe_extras_datapolicy_consentement, tr.societe_extras_datapolicy_opposition_traitement, tr.societe_extras_datapolicy_opposition_prospection').hide(); }}" . PHP_EOL;
    +                $jsscript .= "hideRgPD();" . PHP_EOL;
    +                $jsscript .= "$('#forme_juridique_code, #typent_id').change(function(){ hideRgPD(); });" . PHP_EOL;
    +                $jsscript .= '</script>';
    +            } elseif (GETPOST('action') == 'confirm_delete' && GETPOST('confirm') == 'yes' && GETPOST('socid') > 0) {
    +
    +                // La suppression n'a pas été possible
    +                require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
    +                $societe = new Societe($this->db);
    +                $societe->fetch(GETPOST('socid'));
    +                // On vérifie si il est utilisé
    +                if ((in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) || $societe->typent_id == 8) && $societe->isObjectUsed(GETPOST('socid'))) {
    +
    +                    require_once DOL_DOCUMENT_ROOT . '/core/class/html.form.class.php';
    +                    $form = new Form($this->db);
    +                    echo $form->formconfirm($_SERVER["PHP_SELF"] . "?socid=" . GETPOST('socid'), substr($langs->trans("DATAPOLICIES_POPUP_ANONYME_TITLE"), 0, strlen($langs->trans("DATAPOLICIES_POPUP_ANONYME_TITLE")) - 2), $langs->trans("DATAPOLICIES_POPUP_ANONYME_TEXTE"), 'anonymiser', '', '', 1);
    +                }
    +            }
    +
    +            if (GETPOST('socid')) {
    +                require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
    +                $societe = new Societe($this->db);
    +                $societe->fetch(GETPOST('socid'));
    +
    +                if (!in_array($object->forme_juridique_code, array(11, 12, 13, 15, 17, 18, 19, 35, 60, 200, 311, 312, 316, 401, 600, 700, 1005)) && $societe->typent_id != 8) {
    +
    +                    require_once DOL_DOCUMENT_ROOT . '/core/class/html.form.class.php';
    +                    $jsscript .= '<script>';
    +                    $jsscript .= "var elementToHide = 'td.societe_extras_datapolicy_opposition_traitement, td.societe_extras_datapolicy_opposition_prospection, td.societe_extras_datapolicy_consentement';" . PHP_EOL;
    +                    $jsscript .= "$(elementToHide).parent('tr').hide();" . PHP_EOL;
    +                    $jsscript .= '</script>';
    +                }
    +            }
    +        } elseif ($parameters['currentcontext'] == 'contactcard') {
    +            if (GETPOST('action') == 'create' || GETPOST('action') == 'edit') {
    +                $jsscript .= '<script>';
    +                $jsscript .= "$('#options_datapolicy_opposition_traitement, #options_datapolicy_opposition_prospection, input[name=\"options_datapolicy_opposition_traitement\"], input[name=\"options_datapolicy_opposition_prospection\"]').change(function(){
    +                    if($('#options_datapolicy_opposition_traitement').prop('checked') == true || $('input[name=options_datapolicy_opposition_traitement]').prop('checked') || $('#options_datapolicy_opposition_prospection').prop('checked') || $('input[name=options_datapolicy_opposition_prospection]').prop('checked')) {
    +                        $('#no_email').val(1);
    +                    }
    +                });";
    +                $jsscript .= '</script>';
    +            }
    +        }
    +
    +        echo $jsscript;
    +    }
    +}
    diff --git a/htdocs/datapolicy/class/datapolicy.class.php b/htdocs/datapolicy/class/datapolicy.class.php
    new file mode 100644
    index 00000000000..35b618cbaca
    --- /dev/null
    +++ b/htdocs/datapolicy/class/datapolicy.class.php
    @@ -0,0 +1,356 @@
    +<?php
    +/* Copyright (C) 2018 Nicolas ZABOURI <info@inovea-conseil.com>
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    datapolicy/class/datapolicy.class.php
    + * \ingroup datapolicy
    + * \brief   Class to manage feature of Data Policy module.
    + */
    +include_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
    +include_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
    +include_once DOL_DOCUMENT_ROOT . '/adherents/class/adherent.class.php';
    +
    +
    +/**
    + * Class DataPolicy
    + */
    +Class DataPolicy
    +{
    +	/**
    +	 * getAllContactNotInformed
    +	 *
    +	 * @return number
    +	 */
    +    function getAllContactNotInformed()
    +    {
    +        global $langs, $conf, $db, $user;
    +
    +        $langs->load("companies");
    +
    +        $sql = "SELECT c.rowid";
    +        $sql .= " FROM " . MAIN_DB_PREFIX . "socpeople as c";
    +        $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "societe as s ON c.fk_soc = s.rowid";
    +        $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "socpeople_extrafields as spe ON spe.fk_object = c.rowid";
    +        $sql .= " WHERE (c.statut=1 AND c.no_email=0 AND (spe.datapolicy_consentement=0 OR spe.datapolicy_consentement IS NULL) AND (spe.datapolicy_opposition_traitement=0 OR spe.datapolicy_opposition_traitement IS NULL) AND (spe.datapolicy_opposition_prospection=0 OR spe.datapolicy_opposition_prospection IS NULL))";
    +        $sql .= " AND spe.datapolicy_send IS NULL";
    +        $sql .= " AND c.entity=" . $conf->entity;
    +        $resql = $this->db->query($sql);
    +        if ($resql) {
    +            $num = $this->db->num_rows($resql);
    +            $i = 0;
    +            while ($i < $num) {
    +                $obj = $this->db->fetch_object($resql);
    +                $contact = new Contact($db);
    +                $contact->fetch($obj->rowid);
    +
    +                DataPolicy::sendMailDataPolicyContact($contact);
    +                $i++;
    +            }
    +        } else {
    +            $this->error = $this->db->error();
    +            return -1;
    +        }
    +    }
    +
    +    /**
    +     * getAllCompaniesNotInformed
    +     *
    +     * @return number
    +     */
    +    function getAllCompaniesNotInformed()
    +    {
    +        global $langs, $conf, $db, $user;
    +
    +        $langs->load("companies");
    +
    +        $sql = "SELECT s.rowid";
    +        $sql .= " FROM " . MAIN_DB_PREFIX . "societe as s";
    +        $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "societe_extrafields as se ON se.fk_object = s.rowid";
    +        $sql .= " WHERE s.statut=0 AND (se.datapolicy_consentement=0 OR se.datapolicy_consentement IS NULL) AND (se.datapolicy_opposition_traitement=0 OR se.datapolicy_opposition_traitement IS NULL) AND (se.datapolicy_opposition_prospection=0 OR se.datapolicy_opposition_prospection IS NULL)";
    +        $sql .= " AND se.datapolicy_send IS NULL";
    +        $sql .= " AND s.entity=" . $conf->entity;
    +        $resql = $this->db->query($sql);
    +        if ($resql) {
    +            $num = $this->db->num_rows($resql);
    +            $i = 0;
    +            while ($i < $num) {
    +                $obj = $this->db->fetch_object($resql);
    +                $societe = new Societe($db);
    +                $societe->fetch($obj->rowid);
    +
    +                DataPolicy::sendMailDataPolicyCompany($societe);
    +                $i++;
    +            }
    +        } else {
    +            $this->error = $this->db->error();
    +            return -1;
    +        }
    +    }
    +
    +    /**
    +     * getAllAdherentsNotInformed
    +     *
    +     * @return number
    +     */
    +    function getAllAdherentsNotInformed()
    +    {
    +        global $langs, $conf, $db, $user;
    +
    +        $langs->load("adherent");
    +
    +        $sql = "SELECT a.rowid";
    +        $sql .= " FROM " . MAIN_DB_PREFIX . "adherent as a";
    +        $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "adherent_extrafields as ae ON ae.fk_object = a.rowid";
    +        $sql .= " WHERE a.statut=0 AND (ae.datapolicy_consentement=0 OR ae.datapolicy_consentement IS NULL) AND (ae.datapolicy_opposition_traitement=0 OR ae.datapolicy_opposition_traitement IS NULL) AND (ae.datapolicy_opposition_prospection=0 OR ae.datapolicy_opposition_prospection IS NULL)";
    +        $sql .= " AND ae.datapolicy_send IS NULL";
    +        $sql .= " AND a.entity=" . $conf->entity;
    +        $resql = $this->db->query($sql);
    +        if ($resql) {
    +            $num = $this->db->num_rows($resql);
    +            $i = 0;
    +            while ($i < $num) {
    +                $obj = $this->db->fetch_object($resql);
    +                $adherent = new Adherent($db);
    +                $adherent->fetch($obj->rowid);
    +
    +                DataPolicy::sendMailDataPolicyAdherent($adherent);
    +                $i++;
    +            }
    +        } else {
    +            $this->error = $this->db->error();
    +            return -1;
    +        }
    +    }
    +
    +    /**
    +     * sendMailDataPolicyContact
    +     *
    +     * @param 	mixed		$contact		Contact
    +     * @return	void
    +     */
    +    function sendMailDataPolicyContact($contact)
    +    {
    +     	global $langs, $conf, $db, $user;
    +
    +     	$error = 0;
    +
    +     	$from = $user->getFullName($langs) . ' <' . $user->email . '>';
    +
    +     	$sendto = $contact->email;
    +     	$code= md5($contact->email);
    +     	if (!empty($contact->default_lang)) {
    +     		$l = $contact->default_lang;
    +     	} else {
    +     		$l = $langs->defaultlang;
    +     	}
    +     	$s = "DATAPOLICIESSUBJECT_" . $l;
    +     	$ma = "DATAPOLICIESCONTENT_" . $l;
    +     	$la = 'TXTLINKDATAPOLICIESACCEPT_' . $l;
    +     	$lr = 'TXTLINKDATAPOLICIESREFUSE_' . $l;
    +
    +     	$subject = $conf->global->$s;
    +     	$message = $conf->global->$ma;
    +     	$linka = $conf->global->$la;
    +     	$linkr = $conf->global->$lr;
    +     	$sendtocc = $sendtobcc = '';
    +     	$filepath = $mimetype = $filename = array();
    +     	$deliveryreceipt = 0;
    +
    +     	$substitutionarray = array(
    +     	'__LINKACCEPT__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=1&c='.$contact->id.'&l='.$l.'&key='.$code,3).'" target="_blank">'.$linka.'</a>',
    +     	'__LINKREFUSED__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=2&c='.$contact->id.'&l='.$l.'&key='.$code,3).'" target="_blank">'.$linkr.'</a>',
    +     	'__FIRSTNAME__' => $contact->firstname,
    +     	'__NAME__' => $contact->lastname,
    +     	'__CIVILITY__' => $contact->civility,
    +     	);
    +     	$subject = make_substitutions($subject, $substitutionarray);
    +     	$message = make_substitutions($message, $substitutionarray);
    +
    +     	$actiontypecode = 'AC_EMAIL';
    +     	$actionmsg = $langs->transnoentities('MailSentBy') . ' ' . $from . ' ' . $langs->transnoentities('To') . ' ' . $sendto;
    +     	if ($message) {
    +     		if ($sendtocc)
    +     			$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
    +     			$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
    +     			$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
    +     			$actionmsg = dol_concatdesc($actionmsg, $message);
    +     	}
    +
    +
    +     	// Send mail
    +     	require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php';
    +     	$mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, $sendtobcc, $deliveryreceipt, -1);
    +
    +     	if ($mailfile->error) {
    +     		$resultmasssend .= '<div class="error">' . $mailfile->error . '</div>';
    +     	} else {
    +     		$result4 = $mailfile->sendfile();
    +     		if (!$error) {
    +
    +     			$resultmasssend .= $langs->trans("MailSent") . ': ' . $sendto . "<br>";
    +     			$contact->array_options['options_datapolicy_send'] = date('Y-m-d', time());
    +     			$contact->update($contact->id);
    +     		} else {
    +     			dol_print_error($db);
    +     		}
    +     	}
    +     	setEventMessage($resultmasssend);
    +    }
    +
    +    /**
    +     * sendMailDataPolicyCompany
    +     *
    +     * @param Societe	$societe	Object societe
    +     * @return	void
    +     */
    +    function sendMailDataPolicyCompany($societe)
    +    {
    +     	global $langs, $conf, $db, $user;
    +
    +     	$error = 0;
    +
    +     	$from = $user->getFullName($langs) . ' <' . $user->email . '>';
    +
    +     	$sendto = $societe->email;
    +
    +     	$code= md5($societe->email);
    +     	if (!empty($societe->default_lang)) {
    +     		$l = $societe->default_lang;
    +     	} else {
    +     		$l = $langs->defaultlang;
    +     	}
    +     	$s = "DATAPOLICIESSUBJECT_" . $l;
    +     	$ma = "DATAPOLICIESCONTENT_" . $l;
    +     	$la = 'TXTLINKDATAPOLICIESACCEPT_' . $l;
    +     	$lr = 'TXTLINKDATAPOLICIESREFUSE_' . $l;
    +
    +     	$subject = $conf->global->$s;
    +     	$message = $conf->global->$ma;
    +     	$linka = $conf->global->$la;
    +     	$linkr = $conf->global->$lr;
    +     	$sendtocc = $sendtobcc = '';
    +     	$filepath = $mimetype = $filename = array();
    +     	$deliveryreceipt = 0;
    +
    +     	$substitutionarray = array(
    +            '__LINKACCEPT__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=1&s='.$societe->id.'&l='.$l.'&key='.$code,3).'" target="_blank">'.$linka.'</a>',
    +            '__LINKREFUSED__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=2&s='.$societe->id.'&l='.$l.'&key='.$code,3).'" target="_blank">'.$linkr.'</a>',
    +     	);
    +     	$subject = make_substitutions($subject, $substitutionarray);
    +     	$message = make_substitutions($message, $substitutionarray);
    +
    +     	$actiontypecode = 'AC_EMAIL';
    +     	$actionmsg = $langs->transnoentities('MailSentBy') . ' ' . $from . ' ' . $langs->transnoentities('To') . ' ' . $sendto;
    +     	if ($message) {
    +     		if ($sendtocc) {
    +                 $actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
    +             }
    +            $actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
    +            $actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
    +            $actionmsg .= dol_concatdesc($actionmsg, $message);
    +        }
    +
    +     	// Send mail
    +     	require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php';
    +     	$mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, $sendtobcc, $deliveryreceipt, -1);
    +     	if ($mailfile->error) {
    +     		$resultmasssend .= '<div class="error">' . $mailfile->error . '</div>';
    +     	} else {
    +     		$result4 = $mailfile->sendfile();
    +
    +     		if (!$error) {
    +     			$resultmasssend .= $langs->trans("MailSent") . ': ' . $sendto . "<br>";
    +     			$societe->array_options['options_datapolicy_send'] = date('Y-m-d', time());
    +     			$societe->update($societe->id);
    +     		} else {
    +     			dol_print_error($db);
    +     		}
    +     	}
    +     	setEventMessage($resultmasssend);
    +    }
    +
    +    /**
    +     * sendMailDataPolicyAdherent
    +     *
    +     * @param Adherent	$adherent		Member
    +     * @return void
    +     */
    +    function sendMailDataPolicyAdherent($adherent)
    +    {
    +    	global $langs, $conf, $db, $user;
    +
    +    	$error = 0;
    +
    +    	$from = $user->getFullName($langs) . ' <' . $user->email . '>';
    +
    +    	$sendto = $adherent->email;
    +
    +    	$code= md5($adherent->email);
    +    	if (!empty($adherent->default_lang)) {
    +    		$l = $adherent->default_lang;
    +    	} else {
    +    		$l = $langs->defaultlang;
    +    	}
    +    	$la = 'TXTLINKDATAPOLICIESACCEPT_' . $l;
    +    	$lr = 'TXTLINKDATAPOLICIESREFUSE_' . $l;
    +
    +    	$subject = $conf->global->$s;
    +    	$message = $conf->global->$ma;
    +    	$linka = $conf->global->$la;
    +    	$linkr = $conf->global->$lr;
    +    	$sendtocc = $sendtobcc = '';
    +    	$filepath = $mimetype = $filename = array();
    +    	$deliveryreceipt = 0;
    +
    +    	$substitutionarray = array(
    +            '__LINKACCEPT__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=1&a='.$adherent->id.'&l='.$l.'&key='.$code,3).'" target="_blank">'.$linka.'</a>',
    +            '__LINKREFUSED__' => '<a href="'.dol_buildpath('/datapolicy/public/index.php?action=2&a='.$adherent->id.'&l='.$l.'&key='.$code,3).'" target="_blank">'.$linkr.'</a>',
    +    	);
    +    	$subject = make_substitutions($subject, $substitutionarray);
    +    	$message = make_substitutions($message, $substitutionarray);
    +
    +    	$actiontypecode = 'AC_EMAIL';
    +    	$actionmsg = $langs->transnoentities('MailSentBy') . ' ' . $from . ' ' . $langs->transnoentities('To') . ' ' . $sendto;
    +    	if ($message) {
    +    		if ($sendtocc) {
    +                $actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
    +            }
    +            $actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
    +            $actionmsg .= dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
    +            $actionmsg .= dol_concatdesc($actionmsg, $message);
    +    	}
    +
    +
    +    	// Send mail
    +    	require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php';
    +    	$mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, $sendtobcc, $deliveryreceipt, -1);
    +    	if ($mailfile->error) {
    +    		$resultmasssend .= '<div class="error">' . $mailfile->error . '</div>';
    +    	} else {
    +    		$result4 = $mailfile->sendfile();
    +
    +    		if (!$error) {
    +    			$resultmasssend .= $langs->trans("MailSent") . ': ' . $sendto . "<br>";
    +    			$adherent->array_options['options_datapolicy_send'] = date('Y-m-d', time());
    +    			$adherent->update($user);
    +    		} else {
    +    			dol_print_error($db);
    +    		}
    +    	}
    +    	setEventMessage($resultmasssend);
    +    }
    +}
    diff --git a/htdocs/datapolicy/class/datapolicycron.class.php b/htdocs/datapolicy/class/datapolicycron.class.php
    new file mode 100644
    index 00000000000..ab4b55b35dc
    --- /dev/null
    +++ b/htdocs/datapolicy/class/datapolicycron.class.php
    @@ -0,0 +1,521 @@
    +<?php
    +/* Copyright (C) 2018 Nicolas ZABOURI   <info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    datapolicy/class/datapolicycron.class.php
    + * \ingroup datapolicy
    + * \brief   Example hook overload.
    + */
    +
    +/**
    + * Class DataPolicyCron
    + */
    +class DataPolicyCron
    +{
    +	/**
    +	 * Function exec
    +	 *
    +	 * @return boolean
    +	 */
    +    public function exec()
    +    {
    +        global $conf, $db, $langs, $user;
    +
    +        $langs->load('datapolicy@datapolicy');
    +
    +        // FIXME Removed hardcoded values of id
    +        $arrayofparameters=array(
    +            'DATAPOLICIES_TIERS_CLIENT' => array(
    +                'sql' => "
    +                    SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
    +                    WHERE (s.fk_forme_juridique IN (11, 12, 13, 15, 17, 18, 19, 35, 60, 312, 316, 401, 600, 700, 1005) OR s.fk_typent = 8)
    +                    AND s.entity = %d
    +                    AND s.client = 1
    +                    AND s.fournisseur = 0
    +                    AND s.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                    AND s.rowid NOT IN (
    +                        SELECT DISTINCT a.fk_soc
    +                        FROM ".MAIN_DB_PREFIX."actioncomm as a
    +                        WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                        AND a.fk_soc IS NOT NULL
    +                    )
    +                ",
    +                "class" => "Societe",
    +                "file" => DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php',
    +                'fields_anonym' => array(
    +                    'name' => $langs->trans('ANONYME'),
    +                    'name_bis' => '',
    +                    'name_alias' => '',
    +                    'address' => '',
    +                    'town' => '',
    +                    'zip' => '',
    +                    'phone' => '',
    +                    'email' => '',
    +                    'url' => '',
    +                    'fax' => '',
    +                    'state' => '',
    +                    'country' => '',
    +                    'state_id' => '',
    +                    'skype' => '',
    +                    'country_id' => '',
    +                )
    +            ),
    +            'DATAPOLICIES_TIERS_PROSPECT' => array(
    +                'sql' => "
    +                    SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
    +                    WHERE (s.fk_forme_juridique IN (11, 12, 13, 15, 17, 18, 19, 35, 60, 312, 316, 401, 600, 700, 1005) OR s.fk_typent = 8)
    +                    AND s.entity = %d
    +                    AND s.client = 2
    +                    AND s.fournisseur = 0
    +                    AND s.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                    AND s.rowid NOT IN (
    +                        SELECT DISTINCT a.fk_soc
    +                        FROM ".MAIN_DB_PREFIX."actioncomm as a
    +                        WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                        AND a.fk_soc IS NOT NULL
    +                    )
    +                ",
    +                "class" => "Societe",
    +                "file" => DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php',
    +                'fields_anonym' => array(
    +                    'name' => $langs->trans('ANONYME'),
    +                    'name_bis' => '',
    +                    'name_alias' => '',
    +                    'address' => '',
    +                    'town' => '',
    +                    'zip' => '',
    +                    'phone' => '',
    +                    'email' => '',
    +                    'url' => '',
    +                    'fax' => '',
    +                    'state' => '',
    +                    'country' => '',
    +                    'state_id' => '',
    +                    'skype' => '',
    +                    'country_id' => '',
    +                )
    +            ),
    +            'DATAPOLICIES_TIERS_PROSPECT_CLIENT' => array(
    +                'sql' => "
    +                    SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
    +                    WHERE (s.fk_forme_juridique  IN (11, 12, 13, 15, 17, 18, 19, 35, 60, 312, 316, 401, 600, 700, 1005) OR s.fk_typent = 8)
    +                    AND s.entity = %d
    +                    AND s.client = 3
    +                    AND s.fournisseur = 0
    +                    AND s.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                    AND s.rowid NOT IN (
    +                        SELECT DISTINCT a.fk_soc
    +                        FROM ".MAIN_DB_PREFIX."actioncomm as a
    +                        WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                        AND a.fk_soc IS NOT NULL
    +                    )
    +                ",
    +                "class" => "Societe",
    +                "file" => DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php',
    +                'fields_anonym' => array(
    +                    'name' => $langs->trans('ANONYME'),
    +                    'name_bis' => '',
    +                    'name_alias' => '',
    +                    'address' => '',
    +                    'town' => '',
    +                    'zip' => '',
    +                    'phone' => '',
    +                    'email' => '',
    +                    'url' => '',
    +                    'fax' => '',
    +                    'state' => '',
    +                    'country' => '',
    +                    'state_id' => '',
    +                    'skype' => '',
    +                    'country_id' => '',
    +                )
    +            ),
    +            'DATAPOLICIES_TIERS_NIPROSPECT_NICLIENT' => array(
    +                'sql' => "
    +                    SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
    +                    WHERE (s.fk_forme_juridique  IN (11, 12, 13, 15, 17, 18, 19, 35, 60, 312, 316, 401, 600, 700, 1005) OR s.fk_typent = 8)
    +                    AND s.entity = %d
    +                    AND s.client = 0
    +                    AND s.fournisseur = 0
    +                    AND s.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                    AND s.rowid NOT IN (
    +                        SELECT DISTINCT a.fk_soc
    +                        FROM ".MAIN_DB_PREFIX."actioncomm as a
    +                        WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                        AND a.fk_soc IS NOT NULL
    +                    )
    +                ",
    +                "class" => "Societe",
    +                "file" => DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php',
    +                'fields_anonym' => array(
    +                    'name' => $langs->trans('ANONYME'),
    +                    'name_bis' => '',
    +                    'name_alias' => '',
    +                    'address' => '',
    +                    'town' => '',
    +                    'zip' => '',
    +                    'phone' => '',
    +                    'email' => '',
    +                    'url' => '',
    +                    'fax' => '',
    +                    'state' => '',
    +                    'country' => '',
    +                    'state_id' => '',
    +                    'skype' => '',
    +                    'country_id' => '',
    +                )
    +            ),
    +            'DATAPOLICIES_TIERS_FOURNISSEUR' => array(
    +                'sql' => "
    +                    SELECT s.rowid FROM ".MAIN_DB_PREFIX."societe as s
    +                    WHERE (s.fk_forme_juridique  IN (11, 12, 13, 15, 17, 18, 19, 35, 60, 312, 316, 401, 600, 700, 1005) OR s.fk_typent = 8)
    +                    AND s.entity = %d
    +                    AND s.fournisseur = 1
    +                    AND s.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                    AND s.rowid NOT IN (
    +                        SELECT DISTINCT a.fk_soc
    +                        FROM ".MAIN_DB_PREFIX."actioncomm as a
    +                        WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                        AND a.fk_contact IS NOT NULL
    +                    )
    +                ",
    +                "class" => "Societe",
    +                "file" => DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php',
    +                'fields_anonym' => array(
    +                    'name' => $langs->trans('ANONYME'),
    +                    'name_bis' => '',
    +                    'name_alias' => '',
    +                    'address' => '',
    +                    'town' => '',
    +                    'zip' => '',
    +                    'phone' => '',
    +                    'email' => '',
    +                    'url' => '',
    +                    'fax' => '',
    +                    'state' => '',
    +                    'country' => '',
    +                    'state_id' => '',
    +                    'skype' => '',
    +                    'country_id' => '',
    +                )
    +            ),
    +            'DATAPOLICIES_CONTACT_CLIENT' => array(
    +                'sql' => "
    +                    SELECT c.rowid FROM ".MAIN_DB_PREFIX."socpeople as c
    +                    INNER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = c.fk_soc
    +                    WHERE c.entity = %d
    +                    AND c.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                    AND s.client = 1
    +                    AND s.fournisseur = 0
    +                    AND c.rowid NOT IN (
    +                        SELECT DISTINCT a.fk_contact
    +                        FROM ".MAIN_DB_PREFIX."actioncomm as a
    +                        WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                        AND a.fk_contact IS NOT NULL
    +                    )
    +                ",
    +                "class" => "Contact",
    +                "file" => DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php',
    +                'fields_anonym' => array(
    +                    'lastname' => $langs->trans('ANONYME'),
    +                    'firstname' => '',
    +                    'civility_id' => '',
    +                    'poste' => '',
    +                    'address' => '',
    +                    'town' => '',
    +                    'zip' => '',
    +                    'phone_pro' => '',
    +                    'phone_perso' => '',
    +                    'phone_mobile' => '',
    +                    'email' => '',
    +                    'url' => '',
    +                    'fax' => '',
    +                    'state' => '',
    +                    'country' => '',
    +                    'state_id' => '',
    +                    'skype' => '',
    +                    'jabberid' => '',
    +                    'country_id' => '',
    +                )
    +            ),
    +            'DATAPOLICIES_CONTACT_PROSPECT' => array(
    +                'sql' => "
    +                    SELECT c.rowid FROM ".MAIN_DB_PREFIX."socpeople as c
    +                    INNER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = c.fk_soc
    +                    WHERE c.entity = %d
    +                    AND c.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                    AND s.client = 2
    +                    AND s.fournisseur = 0
    +                    AND c.rowid NOT IN (
    +                        SELECT DISTINCT a.fk_contact
    +                        FROM ".MAIN_DB_PREFIX."actioncomm as a
    +                        WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                        AND a.fk_contact IS NOT NULL
    +                    )
    +                ",
    +                "class" => "Contact",
    +                "file" => DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php',
    +                'fields_anonym' => array(
    +                    'lastname' => $langs->trans('ANONYME'),
    +                    'firstname' => '',
    +                    'civility_id' => '',
    +                    'poste' => '',
    +                    'address' => '',
    +                    'town' => '',
    +                    'zip' => '',
    +                    'phone_pro' => '',
    +                    'phone_perso' => '',
    +                    'phone_mobile' => '',
    +                    'email' => '',
    +                    'url' => '',
    +                    'fax' => '',
    +                    'state' => '',
    +                    'country' => '',
    +                    'state_id' => '',
    +                    'skype' => '',
    +                    'jabberid' => '',
    +                    'country_id' => '',
    +                )
    +            ),
    +            'DATAPOLICIES_CONTACT_PROSPECT_CLIENT' => array(
    +                'sql' => "
    +                    SELECT c.rowid FROM ".MAIN_DB_PREFIX."socpeople as c
    +                    INNER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = c.fk_soc
    +                    WHERE c.entity = %d
    +                    AND c.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                    AND s.client = 3
    +                    AND s.fournisseur = 0
    +                    AND c.rowid NOT IN (
    +                        SELECT DISTINCT a.fk_contact
    +                        FROM ".MAIN_DB_PREFIX."actioncomm as a
    +                        WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                        AND a.fk_contact IS NOT NULL
    +                    )
    +                ",
    +                "class" => "Contact",
    +                "file" => DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php',
    +                'fields_anonym' => array(
    +                    'lastname' => $langs->trans('ANONYME'),
    +                    'firstname' => '',
    +                    'civility_id' => '',
    +                    'poste' => '',
    +                    'address' => '',
    +                    'town' => '',
    +                    'zip' => '',
    +                    'phone_pro' => '',
    +                    'phone_perso' => '',
    +                    'phone_mobile' => '',
    +                    'email' => '',
    +                    'url' => '',
    +                    'fax' => '',
    +                    'state' => '',
    +                    'country' => '',
    +                    'state_id' => '',
    +                    'skype' => '',
    +                    'jabberid' => '',
    +                    'country_id' => '',
    +                )
    +            ),
    +            'DATAPOLICIES_CONTACT_NIPROSPECT_NICLIENT' => array(
    +                'sql' => "
    +                    SELECT c.rowid FROM ".MAIN_DB_PREFIX."socpeople as c
    +                    INNER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = c.fk_soc
    +                    WHERE c.entity = %d
    +                    AND c.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                    AND s.client = 0
    +                    AND s.fournisseur = 0
    +                    AND c.rowid NOT IN (
    +                        SELECT DISTINCT a.fk_contact
    +                        FROM ".MAIN_DB_PREFIX."actioncomm as a
    +                        WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                        AND a.fk_contact IS NOT NULL
    +                    )
    +                ",
    +                "class" => "Contact",
    +                "file" => DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php',
    +                'fields_anonym' => array(
    +                    'lastname' => $langs->trans('ANONYME'),
    +                    'firstname' => '',
    +                    'civility_id' => '',
    +                    'poste' => '',
    +                    'address' => '',
    +                    'town' => '',
    +                    'zip' => '',
    +                    'phone_pro' => '',
    +                    'phone_perso' => '',
    +                    'phone_mobile' => '',
    +                    'email' => '',
    +                    'url' => '',
    +                    'fax' => '',
    +                    'state' => '',
    +                    'country' => '',
    +                    'state_id' => '',
    +                    'skype' => '',
    +                    'jabberid' => '',
    +                    'country_id' => '',
    +                )
    +            ),
    +            'DATAPOLICIES_CONTACT_FOURNISSEUR' => array(
    +                'sql' => "
    +                    SELECT c.rowid FROM ".MAIN_DB_PREFIX."socpeople as c
    +                    INNER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = c.fk_soc
    +                    WHERE c.entity = %d
    +                    AND c.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                    AND s.fournisseur = 1
    +                    AND c.rowid NOT IN (
    +                        SELECT DISTINCT a.fk_contact
    +                        FROM ".MAIN_DB_PREFIX."actioncomm as a
    +                        WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                        AND a.fk_contact IS NOT NULL
    +                    )
    +                ",
    +                "class" => "Contact",
    +                "file" => DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php',
    +                'fields_anonym' => array(
    +                    'lastname' => $langs->trans('ANONYME'),
    +                    'firstname' => '',
    +                    'civility_id' => '',
    +                    'poste' => '',
    +                    'address' => '',
    +                    'town' => '',
    +                    'zip' => '',
    +                    'phone_pro' => '',
    +                    'phone_perso' => '',
    +                    'phone_mobile' => '',
    +                    'email' => '',
    +                    'url' => '',
    +                    'fax' => '',
    +                    'state' => '',
    +                    'country' => '',
    +                    'state_id' => '',
    +                    'skype' => '',
    +                    'jabberid' => '',
    +                    'country_id' => '',
    +                )
    +            ),
    +            'DATAPOLICIES_ADHERENT' => array(
    +                'sql' => "
    +                    SELECT a.rowid FROM ".MAIN_DB_PREFIX."adherent as a
    +                    WHERE a.entity = %d
    +                    AND a.tms < DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                    AND a.rowid NOT IN (
    +                        SELECT DISTINCT a.fk_element
    +                        FROM ".MAIN_DB_PREFIX."actioncomm as a
    +                        WHERE a.tms > DATE_SUB(NOW(), INTERVAL %d MONTH)
    +                        AND a.elementtype LIKE 'member'
    +                        AND a.fk_element IS NOT NULL
    +                    )
    +                ",
    +                "class" => "Adherent",
    +                "file" => DOL_DOCUMENT_ROOT . '/adherents/class/adherent.class.php',
    +                'fields_anonym' => array(
    +                    'lastname' => $langs->trans('ANONYME'),
    +                    'firstname' => $langs->trans('ANONYME'),
    +                    'civility_id' => '',
    +                    'societe' => '',
    +                    'address' => '',
    +                    'town' => '',
    +                    'zip' => '',
    +                    'phone' => '',
    +                    'phone_perso' => '',
    +                    'phone_mobile' => '',
    +                    'email' => '',
    +                    'url' => '',
    +                    'fax' => '',
    +                    'state' => '',
    +                    'country' => '',
    +                    'state_id' => '',
    +                    'skype' => '',
    +                    'country_id' => '',
    +                )
    +            ),
    +        );
    +
    +        foreach ($arrayofparameters as $key => $params) {
    +            if ($conf->global->$key != '' && is_numeric($conf->global->$key) && (int) $conf->global->$key > 0) {
    +
    +                $sql = sprintf($params['sql'], (int) $conf->entity, (int) $conf->global->$key, (int) $conf->global->$key);
    +
    +                $resql = $db->query($sql);
    +
    +                if ($resql && $db->num_rows($resql) > 0) {
    +
    +                    $num = $db->num_rows($resql);
    +                    $i = 0;
    +
    +                    require_once $params['file'];
    +                    $object = new $params['class']($db);
    +
    +                    while ($i < $num)
    +                    {
    +                        $obj = $db->fetch_object($resql);
    +
    +                        $object->fetch($obj->rowid);
    +                        $object->id = $obj->rowid;
    +
    +                        if ($object->isObjectUsed($obj->rowid) > 0) {
    +                            foreach ($params['fields_anonym'] as $fields => $val) {
    +                                $object->$fields = $val;
    +                            }
    +                            $object->update($obj->rowid, $user);
    +                            if ($params['class'] == 'Societe') {
    +                                // On supprime les contacts associé
    +                                $sql = "DELETE FROM ".MAIN_DB_PREFIX."socpeople WHERE fk_soc = " . $obj->rowid;
    +                                $db->query($sql);
    +                            }
    +                        } else {
    +                            if (DOL_VERSION < 8) {
    +                                $ret = $object->delete($obj->rowid, $user);
    +                            } else {
    +                                if ($object->element == 'adherent') {
    +                                    $ret = $object->delete($obj->rowid);
    +                                } else {
    +                                    $ret = $object->delete();
    +                                }
    +                            }
    +                        }
    +
    +                        $i++;
    +                    }
    +                }
    +            }
    +        }
    +        return true;
    +    }
    +
    +
    +    /**
    +     * sendMailing
    +     *
    +     * @return boolean
    +     */
    +    public function sendMailing()
    +    {
    +        global $conf, $db, $langs, $user;
    +
    +        $langs->load('datapolicy@datapolicy');
    +
    +        require_once DOL_DOCUMENT_ROOT . '/datapolicy/class/datapolicy.class.php';
    +
    +        $contacts = new DataPolicy($db);
    +        $contacts->getAllContactNotInformed();
    +        $contacts->getAllCompaniesNotInformed();
    +        $contacts->getAllAdherentsNotInformed();
    +        return true;
    +    }
    +}
    \ No newline at end of file
    diff --git a/htdocs/datapolicy/img/datapolicy.png b/htdocs/datapolicy/img/datapolicy.png
    new file mode 100644
    index 00000000000..2681ccc1d3a
    Binary files /dev/null and b/htdocs/datapolicy/img/datapolicy.png differ
    diff --git a/htdocs/datapolicy/img/gfdl.png b/htdocs/datapolicy/img/gfdl.png
    new file mode 100644
    index 00000000000..f2bacfd179a
    Binary files /dev/null and b/htdocs/datapolicy/img/gfdl.png differ
    diff --git a/htdocs/datapolicy/img/gplv3.png b/htdocs/datapolicy/img/gplv3.png
    new file mode 100644
    index 00000000000..ba78d4c4941
    Binary files /dev/null and b/htdocs/datapolicy/img/gplv3.png differ
    diff --git a/htdocs/datapolicy/img/object_datapolicy.png b/htdocs/datapolicy/img/object_datapolicy.png
    new file mode 100644
    index 00000000000..5d65c309cca
    Binary files /dev/null and b/htdocs/datapolicy/img/object_datapolicy.png differ
    diff --git a/htdocs/datapolicy/img/object_inoveaconseil.png b/htdocs/datapolicy/img/object_inoveaconseil.png
    new file mode 100644
    index 00000000000..292a9c75ef2
    Binary files /dev/null and b/htdocs/datapolicy/img/object_inoveaconseil.png differ
    diff --git a/htdocs/datapolicy/langs/en_US/datapolicy.lang b/htdocs/datapolicy/langs/en_US/datapolicy.lang
    new file mode 100644
    index 00000000000..ddcd2180cb0
    --- /dev/null
    +++ b/htdocs/datapolicy/langs/en_US/datapolicy.lang
    @@ -0,0 +1,92 @@
    +# Copyright (C) 2018 Nicolas ZABOURI    <info@inovea-conseil.com>
    +#
    +# 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
    +# the Free Software Foundation, either version 3 of the License, or
    +# (at your option) any later version.
    +#
    +# This program is distributed in the hope that it will be useful,
    +# but WITHOUT ANY WARRANTY; without even the implied warranty of
    +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +# GNU General Public License for more details.
    +#
    +# You should have received a copy of the GNU General Public License
    +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
    +
    +# Module label 'ModuledatapolicyName'
    +Module4100Name = Data Privacy Policy
    +# Module description 'ModuledatapolicyDesc'
    +Module4100Desc = Module to manage Data Privacy (Conformity with the GDPR)
    +
    +#
    +# Page d'administration
    +#
    +datapolicySetup = Module Data Privacy Policy Setup
    +Deletion = Deletion of data
    +datapolicySetupPage = Depending of laws of your countries (Example <a href="http://www.privacy-regulation.eu/en/5.htm" target="_blank">Article 5</a> of the GDPR), personal data must be kept for a period not exceeding that necessary for the purposes for which they were collected, except for archival purposes.<br>The deletion will be done automatically after a certain duration without event (the duration which you will have indicated below).
    +NB_MONTHS = %s months
    +ONE_YEAR = 1 year
    +NB_YEARS = %s years
    +DATAPOLICY_TIERS_CLIENT = Customer
    +DATAPOLICY_TIERS_PROSPECT = Prospect
    +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Customer
    +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nor prospect/Nor customer
    +DATAPOLICY_TIERS_FOURNISSEUR = Supplier
    +DATAPOLICY_CONTACT_CLIENT = Customer
    +DATAPOLICY_CONTACT_PROSPECT = Prospect
    +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Customer
    +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nor prospect/Nor customer
    +DATAPOLICY_CONTACT_FOURNISSEUR = Supplier
    +DATAPOLICY_ADHERENT = Member
    +DATAPOLICY_Tooltip_SETUP = Type of contact - Indicate your choices for each type.
    +DATAPOLICYMail=Emails Setup
    +DATAPOLICYSUBJECTMAIL=Subject of email
    +DATAPOLICYCONTENTMAIL=Content of the email
    +DATAPOLICYSUBSITUTION=You can use the following variables in your email (LINKACCEPT allows to create a link recording the agreement of the person, LINKREFUSED makes it possible to record the refusal of the person):
    +DATAPOLICYACCEPT=Message after agreement
    +DATAPOLICYREFUSE=Message after desagreement
    +SendAgreementText=You can send a GDPR email to all your relevant contacts (who have not yet received an email and for which you have not registered anything about their GDPR agreement). To do this, use the following button.
    +SendAgreement=Send emails
    +AllAgreementSend = All emails have been sent
    +TXTLINKDATAPOLICYACCEPT= Text for the link "agreement" 
    +TXTLINKDATAPOLICYREFUSE= Text for the link "desagreement" 
    +
    +
    +#
    +# Extrafield
    +#
    +DATAPOLICY_BLOCKCHECKBOX = GDPR : Processing of personal data
    +DATAPOLICY_consentement = Consent obtained for the processing of personal data 
    +DATAPOLICY_opposition_traitement = Opposes the processing of his personal data
    +DATAPOLICY_opposition_prospection = Opposes the processing of his personal data for the purposes of prospecting
    +
    +#
    +# Popup
    +#
    +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymize a thirdparty
    +DATAPOLICY_POPUP_ANONYME_TEXTE = You can not delete this contact from Dolibarr because there are related items. In accordance with the GDPR, you will make all this data anonymous to respect your obligations. Would you like to continue ?
    +
    +#
    +# Bouton portabilité
    +# 
    +DATAPOLICY_PORTABILITE = Portability GDPR
    +DATAPOLICY_PORTABILITE_TITLE = Export of personal data
    +DATAPOLICY_PORTABILITE_CONFIRMATION = You want to export the personal data of this contact. Are you sure ?
    +
    +#
    +# Note ajoutés lors d'une anonymisation
    +#
    +ANONYMISER_AT = Anonymised the %s
    +
    +#V2
    +DATAPOLICYReturn=GDPR Validation
    +DATAPOLICY_date = Date of agreement/desagreement GDPR
    +DATAPOLICY_send = Date sending agreement email
    +DATAPOLICYReturn = GDPR Return
    +DATAPOLICY_SEND = Send GDPR email
    +MailSent = Email has been sent
    +
    +#ERROR
    +ErrorSubjectIsRequired= Error : The subject of email is required. Indicate it in the module setup
    +=Due to a technical problem, we were unable to register your choice. We apologize for that. Contact us to send us your choice.
    +NUMBER_MONTH_BEFORE_DELETION = Number of month before deletion
    diff --git a/htdocs/datapolicy/langs/fr_FR/datapolicy.lang b/htdocs/datapolicy/langs/fr_FR/datapolicy.lang
    new file mode 100644
    index 00000000000..7ee710aae2e
    --- /dev/null
    +++ b/htdocs/datapolicy/langs/fr_FR/datapolicy.lang
    @@ -0,0 +1,97 @@
    +# Copyright (C) 2018  INOVEA CONSEil info@inovea-conseil.com
    +#
    +# 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
    +# the Free Software Foundation, either version 3 of the License, or
    +# (at your option) any later version.
    +#
    +# This program is distributed in the hope that it will be useful,
    +# but WITHOUT ANY WARRANTY; without even the implied warranty of
    +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +# GNU General Public License for more details.
    +#
    +# You should have received a copy of the GNU General Public License
    +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
    +
    +#
    +# Générique
    +#
    +
    +# Module label 'ModuledatapolicyName'
    +Module4100Name = Protection des Données
    +# Module description 'ModuledatapolicyDesc'
    +Module4100Desc = Module de gestion de la protection des données (RGPD)
    +
    +#
    +# Page d'administration
    +#
    +datapolicySetup = Configuration du module Protection des données
    +Settings_DATAPOLICY = Paramétrage du module Protection des données
    +datapolicySetupPage = Selon la loi de votre pays (Exemple <a href="http://www.privacy-regulation.eu/fr/5.htm" target="_blank">l’article 5</a> du RGPD), les données à caractère personnel doivent être conservées pendant une durée n’excédant pas celle nécessaire au regard des finalités pour lesquelles elles ont été traitées, à l’exception de fins archivistiques. La suppression se fera automatiquement après une certaine durée sans évènement (la durée que vous aurez indiquée ci-dessous).
    +NB_MONTHS = %s mois
    +ONE_YEAR = 1 an
    +NB_YEARS = %s ans
    +DATAPOLICY_TIERS_CLIENT = Client
    +DATAPOLICY_TIERS_PROSPECT = Prospect
    +DATAPOLICY_TIERS_PROSPECT_CLIENT = Prospect/Client
    +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Ni prospect / Ni client
    +DATAPOLICY_TIERS_FOURNISSEUR = Fournisseur
    +DATAPOLICY_CONTACT_CLIENT = Client
    +DATAPOLICY_CONTACT_PROSPECT = Prospect
    +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Prospect/Client
    +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Ni prospect / Ni client
    +DATAPOLICY_CONTACT_FOURNISSEUR = Fournisseur
    +DATAPOLICY_ADHERENT = Adhérent
    +DATAPOLICY_Tooltip_SETUP = Type du contact - Indiquez vos choix pour chaque type.
    +DATAPOLICYMail=Paramétrage des emails
    +DATAPOLICYSUBJECTMAIL=Objet du mail
    +DATAPOLICYCONTENTMAIL=Contenu du mail
    +DATAPOLICYSUBSITUTION=Vous pouvez utiliser les variables suivantes dans votre email (LINKACCEPT permet de créer un lien enregistrant l'acceptation de la personne, LINKREFUSED permet d'enregistrer le refus de la personne) :
    +DATAPOLICYACCEPT=Message suite acceptation
    +DATAPOLICYREFUSE=Message suite opposition
    +SendAgreementText=Vous pouvez envoyer un email DATAPOLICY à tous vos contacts concernés (qui n'ont pas encore reçus de mail et pour lesquels vous n'avez rien enregistré concernant leur accord/désaccord DATAPOLICY). Pour cela, utilisez le bouton suivant.
    +SendAgreement=Envoyer les emails
    +AllAgreementSend = Tous les e-mails de consentement ont été envoyés
    +TXTLINKDATAPOLICYACCEPT= Texte du lien d'acceptation
    +TXTLINKDATAPOLICYREFUSE= Texte du lien d'opposition
    +
    +
    +
    +#
    +# Extrafield
    +#
    +DATAPOLICY_BLOCKCHECKBOX = DATAPOLICY : Traitement des données à caractère personnel
    +DATAPOLICY_consentement = Consentement recueilli pour le traitement des données à caractère personnel le concernant
    +DATAPOLICY_opposition_traitement = S’oppose au traitement de ses données à caractère personnel
    +DATAPOLICY_opposition_prospection = S’oppose au traitement de ses données à caractère personnel à des fins de prospection
    +
    +#
    +# Popup
    +#
    +DATAPOLICY_POPUP_ANONYME_TITLE = Anonymiser un tiers
    +DATAPOLICY_POPUP_ANONYME_TEXTE = Vous ne pouvez pas supprimer ce contact de Dolibarr car des éléments y sont liés. Conformément au DATAPOLICY, vous allez rendre toutes ces données anonymes afin de respecter vos obligations. Souhaitez-vous continuer ?
    +
    +#
    +# Bouton portabilité
    +# 
    +DATAPOLICY_PORTABILITE = Portabilité DATAPOLICY
    +DATAPOLICY_PORTABILITE_TITLE = Export des données à caractère personnel
    +DATAPOLICY_PORTABILITE_CONFIRMATION = Vous souhaitez exporter les données à caractère personnel de ce contact. Etes-vous sûr ?
    +
    +#
    +# Note ajoutés lors d'une anonymisation
    +#
    +ANONYMISER_AT = Anonymisé le %s
    +
    +#V2
    +DATAPOLICYReturn=Validation DATAPOLICY
    +DATAPOLICY_date=Date d'accord/opposition au traitement
    +DATAPOLICY_send=Date envoi consentement
    +DATAPOLICYReturn=Retour DATAPOLICY
    +DATAPOLICY_SEND=Envoyer l'email de consentement
    +MailSent=L'email a bien été envoyé
    +
    +#ERROR
    +ErrorSubjectIsRequired=Erreur : vous n'avez pas indiqué l'objet de l'email dans la configuration
    +=Suite à un problème technique, nous n'avons pas pu enregistrer votre choix. Nous nous en excusons. Contactez-nous pour nous transmettre votre choix.
    +NUMBER_MONTH_BEFORE_DELETION = Nombre de mois avant suppression des données
    diff --git a/htdocs/datapolicy/langs/it_IT/datapolicy.lang b/htdocs/datapolicy/langs/it_IT/datapolicy.lang
    new file mode 100644
    index 00000000000..d8858b56c5b
    --- /dev/null
    +++ b/htdocs/datapolicy/langs/it_IT/datapolicy.lang
    @@ -0,0 +1,78 @@
    +# Copyright (C) 2018 INOVEA CONSEIl info@inovea-conseil.com - Thanks to Claudio Aschieri
    +#
    +# # Module label 'ModuledatapolicyName'
    +Module4100Name = Data Policy
    +# Module description 'ModuledatapolicyDesc'
    +Module4100Desc = Conformità con GDPR
    +
    +#
    +# Page d'administration
    +#
    +datapolicySetup = Module Setup
    +Settings_DATAPOLICY = Configurazione modulo GDPR 
    +datapolicySetupPage = In accordo con <a href="http://www.privacy-regulation.eu/it/5.htm" target="_blank">l'art 5 del GDPR </a> i dati personali devono essere conservati per un periodo di tempo che .... ed eliminati se non sono più utili agli scopi per cui sono stati processati.
    +NB_MONTHS = %s mesi
    +ONE_YEAR = 1 anno
    +NB_YEARS = %s anni
    +DATAPOLICY_TIERS_CLIENT = Cliente
    +DATAPOLICY_TIERS_PROSPECT = Fornitore
    +DATAPOLICY_TIERS_PROSPECT_CLIENT = Potenziale Cliente / Cliente
    +DATAPOLICY_TIERS_NIPROSPECT_NICLIENT = Nè potenziale cliente / Nè cliente
    +DATAPOLICY_TIERS_FOURNISSEUR = Fornitore
    +DATAPOLICY_CONTACT_CLIENT = Cliente
    +DATAPOLICY_CONTACT_PROSPECT = Potenziale cliente
    +DATAPOLICY_CONTACT_PROSPECT_CLIENT = Potenziale Cliente / Cliente
    +DATAPOLICY_CONTACT_NIPROSPECT_NICLIENT = Nè potenziale cliente / Nè cliente
    +DATAPOLICY_CONTACT_FOURNISSEUR = Fornitore
    +DATAPOLICY_ADHERENT = Membri
    +DATAPOLICY_Tooltip_SETUP = Tipo di contatto - Indica la scelta per ogni tipologia
    +DATAPOLICYMail=Configurazione Email
    +DATAPOLICYSUBJECTMAIL=Subject dell'e-mail
    +DATAPOLICYCONTENTMAIL=Contenuto dell'e-mail
    +DATAPOLICYSUBSITUTION=Puoi utilizzare le seguenti variabili nella tua email (LINKACCEPT consente di creare un link per registrare l'accettazione della persona, LINKREFUSED consente di registrare il rifiuto della persona):
    +DATAPOLICYACCEPT= Messaggio dopo il consenso
    +DATAPOLICYREFUSE=Messaggio dopo il rifiuto
    +SendAgreementText=Puoi inviare un'email GDPR a tutti i tuoi contatti rilevanti (che non hanno ancora ricevuto un'e-mail e per i quali non hai registrato nulla sul loro accordo GDPR). Per fare ciò, utilizzare il seguente pulsante.
    +SendAgreement=Invia emails
    +AllAgreementSend = Tutte le email sono state inviate
    +TXTLINKDATAPOLICYACCEPT= Testo per il link "Consenso" 
    +TXTLINKDATAPOLICYREFUSE= Testo per il link "Consenso negato" 
    +
    +#
    +# Extrafield
    +#
    +DATAPOLICY_BLOCKCHECKBOX = GDPR : Trattamento dei dati personali
    +DATAPOLICY_consentement = Consenso ottenuto al Trattamento dei dati personali
    +DATAPOLICY_opposition_traitement = Consenso negato al trattamento dei dati personali
    +DATAPOLICY_opposition_prospection = Consenso negato al trattamento dei dati personali a fini commerciali
    +
    +#
    +# Popup
    +#
    +DATAPOLICY_POPUP_ANONYME_TITLE = Anonimizza un soggetto terzo
    +DATAPOLICY_POPUP_ANONYME_TEXTE = Impossibile eliminare questo contatto da Dolibarr perchè vi sono elementi collegati. In conformità con il GDPR, renderai tutti questi dati anonimi per rispettare i tuoi obblighi. Vuoi continuare?
    +
    +
    +#
    +# Bouton portabilité
    +# 
    +DATAPOLICY_PORTABILITE = Portabilità GDPR
    +DATAPOLICY_PORTABILITE_TITLE = Esporta i dati personali
    +DATAPOLICY_PORTABILITE_CONFIRMATION = Vuoi davvero esportare i dati personali di questo contatto?
    +
    +#
    +# Note ajoutée lors d'une anonymisation
    +#
    +ANONYMISER_AT = Anonimizzato il %s
    +
    +#V2
    +DATAPOLICYReturn=GDPR Validazione
    +DATAPOLICY_date = Data di accordo / disaccordo GDPR
    +DATAPOLICY_send = Data di invio del consenso (e-mail)
    +DATAPOLICYReturn = GDPR ritorno
    +DATAPOLICY_SEND = Inviare GDPR e-mail
    +MailSent=L'email è stata inviata
    +
    +#ERROR
    +ErrorSubjectIsRequired= Errore: L'oggetto della mail è obbligatorio. Inserisci l'oggetto nella configurazione del modulo.
    +=A causa di un problema tecnico, non siamo stati in grado di registrare la tua scelta. Ci scusiamo per questo. Contattaci per inviarci la tua scelta.
    diff --git a/htdocs/datapolicy/lib/datapolicy.lib.php b/htdocs/datapolicy/lib/datapolicy.lib.php
    new file mode 100644
    index 00000000000..41c92299989
    --- /dev/null
    +++ b/htdocs/datapolicy/lib/datapolicy.lib.php
    @@ -0,0 +1,54 @@
    +<?php
    +/* Copyright (C) 2018 Nicolas ZABOURI   <info@inovea-conseil.com>
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    datapolicy/lib/datapolicy.lib.php
    + * \ingroup datapolicy
    + * \brief   Library files with common functions for datapolicy
    + */
    +
    +/**
    + * Prepare admin pages header
    + *
    + * @return array
    + */
    +function datapolicyAdminPrepareHead()
    +{
    +	global $langs, $conf;
    +
    +	$langs->load("datapolicy@datapolicy");
    +
    +	$h = 0;
    +	$head = array();
    +
    +	$head[$h][0] = dol_buildpath("/datapolicy/admin/setup.php", 1);
    +	$head[$h][1] = $langs->trans("Deletion");
    +	$head[$h][2] = 'settings';
    +	$h++;
    +
    +	if (! empty($conf->global->DATAPOLICIES_ENABLE_EMAILS))
    +	{
    +		$head[$h][0] = dol_buildpath("/datapolicy/admin/setupmail.php", 1);
    +		$head[$h][1] = $langs->trans("DATAPOLICIESMail");
    +		$head[$h][2] = 'settings';
    +		$h++;
    +	}
    +
    +	complete_head_from_modules($conf, $langs, $object, $head, $h, 'datapolicy');
    +
    +	return $head;
    +}
    diff --git a/htdocs/datapolicy/mailing.php b/htdocs/datapolicy/mailing.php
    new file mode 100644
    index 00000000000..e3f38b269be
    --- /dev/null
    +++ b/htdocs/datapolicy/mailing.php
    @@ -0,0 +1,41 @@
    +<?php
    +/* Copyright (C) 2018      Nicolas ZABOURI      <info@inovea-conseil.com>
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    datapolicy/mailing.php
    + * \ingroup datapolicy
    + * \brief   datapolicy mailing page.
    + */
    +
    +require '../../main.inc.php';
    +dol_include_once('/contact/class/contact.class.php');
    +dol_include_once('/datapolicy/class/datapolicy.class.php');
    +
    +$idcontact = GETPOST('idc');
    +
    +if(!empty($idcontact)){
    +    $contact = new Contact($db);
    +    $contact->fetch($idcontact);
    +    DataPolicy::sendMailDataPolicyContact($contact);
    +}else{
    +
    +    $contacts = new DataPolicy($db);
    +    $contacts->getAllContactNotInformed();
    +    $contacts->getAllCompaniesNotInformed();
    +    $contacts->getAllAdherentsNotInformed();
    +    echo $langs->trans('AllAgreementSend');
    +}
    diff --git a/htdocs/datapolicy/modulebuilder.txt b/htdocs/datapolicy/modulebuilder.txt
    new file mode 100644
    index 00000000000..24ea0d6eac5
    --- /dev/null
    +++ b/htdocs/datapolicy/modulebuilder.txt
    @@ -0,0 +1,3 @@
    +# DO NOT DELETE THIS FILE MANUALLY
    +# File to flag module built using official module template.
    +# When this file is present into a module directory, you can edit it with the module builder tool. Use ModuleBuilder if you want to delete module. 
    \ No newline at end of file
    diff --git a/htdocs/datapolicy/public/index.php b/htdocs/datapolicy/public/index.php
    new file mode 100644
    index 00000000000..58f7968f05d
    --- /dev/null
    +++ b/htdocs/datapolicy/public/index.php
    @@ -0,0 +1,144 @@
    +<?php
    +
    +/* Copyright (C) 2018      Nicolas ZABOURI      <info@inovea-conseil.com>
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    datapolicy/admin/setup.php
    + * \ingroup datapolicy
    + * \brief   datapolicy setup page.
    + */
    +
    +if (!defined('NOLOGIN'))
    +    define("NOLOGIN", 1);   // This means this output page does not require to be logged.
    +if (!defined('NOCSRFCHECK'))
    +    define('NOCSRFCHECK', '1');  // Do not check anti CSRF attack test
    +if (!defined('NOREQUIREMENU'))
    +    define('NOREQUIREMENU', '1');
    +
    +require '../../main.inc.php';
    +dol_include_once('/contact/class/contact.class.php');
    +dol_include_once('/societe/class/societe.class.php');
    +dol_include_once('/adherents/class/adherent.class.php');
    +dol_include_once('/user/class/user.class.php');
    +dol_include_once('/datapolicy/class/datapolicy.class.php');
    +
    +$idc = GETPOST('c', 'int');
    +$ids = GETPOST('s', 'int');
    +$ida = GETPOST('a', 'int');
    +$action = GETPOST('action', 'alpha');
    +$lang = GETPOST('l', 'alpha');
    +$code = GETPOST('key', 'alpha');
    +
    +$acc = "DATAPOLICIESACCEPT_" . $lang;
    +$ref = "DATAPOLICIESREFUSE_" . $lang;
    +$langs->load('datapolicy@datapolicy',0,0,$lang);
    +
    +if (empty($action) || (empty($idc) && empty($ids) && empty($ida))) {
    +    return 0;
    +} elseif (!empty($idc)) {
    +    $contact = new Contact($db);
    +    $contact->fetch($idc);
    +    $check = md5($contact->email);
    +    if ($check != $code) {
    +        $return = $langs->trans('ErrorEmailDATAPOLICIES');
    +    } elseif ($action == 1) {
    +        $contact->array_options['options_datapolicy_consentement'] = 1;
    +        $contact->array_options['options_datapolicy_opposition_traitement'] = 0;
    +        $contact->array_options['options_datapolicy_opposition_prospection'] = 0;
    +        $contact->array_options['options_datapolicy_date'] = date('Y-m-d', time());
    +
    +        $return = $conf->global->$acc;
    +    } elseif ($action == 2) {
    +        $contact->no_email = 1;
    +        $contact->array_options['options_datapolicy_consentement'] = 0;
    +        $contact->array_options['options_datapolicy_opposition_traitement'] = 1;
    +        $contact->array_options['options_datapolicy_opposition_prospection'] = 1;
    +        $contact->array_options['options_datapolicy_date'] = date('Y-m-d', time());
    +
    +        $return = $conf->global->$ref;
    +    }
    +    $contact->update($idc);
    +} elseif (!empty($ids)) {
    +    $societe = new Societe($db);
    +    $societe->fetch($ids);
    +    $check = md5($societe->email);
    +    if ($check != $code) {
    +        $return = $langs->trans('ErrorEmailDATAPOLICIES');
    +    } elseif ($action == 1) {
    +        $societe->array_options['options_datapolicy_consentement'] = 1;
    +        $societe->array_options['options_datapolicy_opposition_traitement'] = 0;
    +        $societe->array_options['options_datapolicy_opposition_prospection'] = 0;
    +        $societe->array_options['options_datapolicy_date'] = date('Y-m-d', time());
    +        $return = $conf->global->$acc;
    +    } elseif ($action == 2) {
    +        $societe->array_options['options_datapolicy_consentement'] = 0;
    +        $societe->array_options['options_datapolicy_opposition_traitement'] = 1;
    +        $societe->array_options['options_datapolicy_opposition_prospection'] = 1;
    +        $societe->array_options['options_datapolicy_date'] = date('Y-m-d', time());
    +
    +        $return = $conf->global->$ref;
    +    }
    +    $societe->update($ids);
    +} elseif (!empty($ida)) {
    +    $adherent = new Adherent($db);
    +    $adherent->fetch($ida);
    +    $check = md5($adherent->email);
    +    if ($check != $code) {
    +        $return = $langs->trans('ErrorEmailDATAPOLICIES');
    +    } elseif ($action == 1) {
    +        $adherent->array_options['options_datapolicy_consentement'] = 1;
    +        $adherent->array_options['options_datapolicy_opposition_traitement'] = 0;
    +        $adherent->array_options['options_datapolicy_opposition_prospection'] = 0;
    +        //$adherent->array_options['options_datapolicy_date'] = date('Y-m-d', time());
    +        $return = $conf->global->$acc;
    +    } elseif ($action == 2) {
    +        $adherent->array_options['options_datapolicy_consentement'] = 0;
    +        $adherent->array_options['options_datapolicy_opposition_traitement'] = 1;
    +        $adherent->array_options['options_datapolicy_opposition_prospection'] = 1;
    +        //$adherent->array_options['options_datapolicy_date'] = date('Y-m-d', time());
    +
    +        $return = $conf->global->$ref;
    +    }
    +    $newuser = new User($db);
    +    $adherent->update($newuser);
    +}
    +
    +header("Content-type: text/html; charset=" . $conf->file->character_set_client);
    +
    +print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">';
    +print "\n";
    +print "<html>\n";
    +print "<head>\n";
    +print '<meta name="robots" content="noindex,nofollow">' . "\n";
    +print '<meta name="keywords" content="dolibarr">' . "\n";
    +print '<meta name="description" content="Dolibarr DATAPOLICIES">' . "\n";
    +print "<title>" . $langs->trans("DATAPOLICIESReturn") . "</title>\n";
    +print '<link rel="stylesheet" type="text/css" href="' . DOL_URL_ROOT . $conf->css . '?lang=' . $lang . '">' . "\n";
    +print '<style type="text/css">';
    +print '.CTableRow1      { margin: 1px; padding: 3px; font: 12px verdana,arial; background: #e6E6eE; color: #000000; -moz-border-radius-topleft:6px; -moz-border-radius-topright:6px; -moz-border-radius-bottomleft:6px; -moz-border-radius-bottomright:6px;}';
    +print '.CTableRow2      { margin: 1px; padding: 3px; font: 12px verdana,arial; background: #FFFFFF; color: #000000; -moz-border-radius-topleft:6px; -moz-border-radius-topright:6px; -moz-border-radius-bottomleft:6px; -moz-border-radius-bottomright:6px;}';
    +print '</style>';
    +
    +print "</head>\n";
    +print '<body style="margin: 10% 40%">' . "\n";
    +print '<table class="CTableRow1" ><tr><td style="text_align:center;">';
    +print $return . "<br>\n";
    +print '</td></tr></table>';
    +print "</body>\n";
    +print "</html>\n";
    +
    +$db->close();
    diff --git a/htdocs/dav/dav.class.php b/htdocs/dav/dav.class.php
    index 9e5121112d0..b8c38773538 100644
    --- a/htdocs/dav/dav.class.php
    +++ b/htdocs/dav/dav.class.php
    @@ -34,11 +34,18 @@ class CdavLib
     
     	private $langs;
     
    +    /**
    +     * Constructor
    +     *
    +     * @param   User        $user   user
    +     * @param   DoliDB      $db     Database handler
    +     * @param   Translate   $langs  translation
    +     */
     	function __construct($user, $db, $langs)
     	{
    -		$this->user 	= $user;
    -		$this->db 		= $db;
    -		$this->langs 	= $langs;
    +		$this->user = $user;
    +		$this->db = $db;
    +		$this->langs = $langs;
     	}
     
     	/**
    @@ -106,7 +113,6 @@ class CdavLib
     		}
     
     		return $sql;
    -
     	}
     
     	/**
    @@ -295,5 +301,4 @@ class CdavLib
     		}
     		return $calevents;
     	}
    -
     }
    diff --git a/htdocs/dav/fileserver.php b/htdocs/dav/fileserver.php
    index a1d145306f5..ee3e1deb799 100644
    --- a/htdocs/dav/fileserver.php
    +++ b/htdocs/dav/fileserver.php
    @@ -1,5 +1,6 @@
     <?php
     /* Copyright (C) 2018	Destailleur Laurent	<eldy@users.sourceforge.net>
    + * Copyright (C) 2019	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -28,7 +29,7 @@ if (! defined('NOREQUIREAJAX'))  define('NOREQUIREAJAX','1');
     if (! defined('NOLOGIN'))  		 define("NOLOGIN",1);		// This means this output page does not require to be logged.
     if (! defined('NOCSRFCHECK'))  	 define("NOCSRFCHECK",1);	// We accept to go on this page from external web site.
     
    -require ("../main.inc.php");
    +require "../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
     require_once DOL_DOCUMENT_ROOT.'/dav/dav.class.php';
    @@ -37,7 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/includes/sabre/autoload.php';
     
     
     $user = new User($db);
    -if(isset($_SERVER['PHP_AUTH_USER']) && $_SERVER['PHP_AUTH_USER']!='')
    +if (isset($_SERVER['PHP_AUTH_USER']) && $_SERVER['PHP_AUTH_USER']!='')
     {
     	$user->fetch('',$_SERVER['PHP_AUTH_USER']);
     	$user->getrights();
    @@ -47,19 +48,21 @@ if(isset($_SERVER['PHP_AUTH_USER']) && $_SERVER['PHP_AUTH_USER']!='')
     $langs->loadLangs(array("main","other"));
     
     
    -if(empty($conf->dav->enabled))
    +if (empty($conf->dav->enabled))
     	accessforbidden();
     
     
    +$entity = (GETPOST('entity','int') ? GETPOST('entity','int') : (!empty($conf->entity) ? $conf->entity : 1));
    +
     // settings
    -$publicDir = $conf->dav->dir_output.'/public';
    -$privateDir = $conf->dav->dir_output.'/private';
    -$tmpDir = $conf->dav->dir_temp;
    +$publicDir = $conf->dav->multidir_output[$entity].'/public';
    +$privateDir = $conf->dav->multidir_output[$entity].'/private';
    +$ecmDir = $conf->ecm->multidir_output[$entity];
    +$tmpDir = $conf->dav->multidir_temp[$entity];
     //var_dump($tmpDir);exit;
     
     // Authentication callback function
    -$authBackend = new \Sabre\DAV\Auth\Backend\BasicCallBack(function ($username, $password)
    -{
    +$authBackend = new \Sabre\DAV\Auth\Backend\BasicCallBack(function ($username, $password) {
     	global $user;
     	global $conf;
     	global $dolibarr_main_authentication;
    @@ -101,14 +104,14 @@ $nodes = array();
     // Public dir
     if (!empty($conf->global->DAV_ALLOW_PUBLIC_DIR))
     {
    -	$nodes[] = new \Sabre\DAV\FS\Directory($dolibarr_main_data_root. '/dav/public');
    +	$nodes[] = new \Sabre\DAV\FS\Directory($publicDir);
     }
     // Private dir
    -$nodes[] = new \Sabre\DAV\FS\Directory($dolibarr_main_data_root. '/dav/private');
    +$nodes[] = new \Sabre\DAV\FS\Directory($privateDir);
     // ECM dir
     if (! empty($conf->ecm->enabled) && ! empty($conf->global->DAV_ALLOW_ECM_DIR))
     {
    -	$nodes[] = new \Sabre\DAV\FS\Directory($dolibarr_main_data_root. '/ecm');
    +	$nodes[] = new \Sabre\DAV\FS\Directory($ecmDir);
     }
     
     
    diff --git a/htdocs/document.php b/htdocs/document.php
    index 725d079a9f6..ff6c6f6e635 100644
    --- a/htdocs/document.php
    +++ b/htdocs/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Simon Tosser         <simon@kornog-computing.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010	   Pierre Morin         <pierre.morin@auguria.net>
      * Copyright (C) 2010	   Juanjo Menent        <jmenent@2byte.es>
      *
    @@ -37,15 +37,8 @@ if (! defined('NOREQUIREMENU'))		define('NOREQUIREMENU','1');
     if (! defined('NOREQUIREHTML'))		define('NOREQUIREHTML','1');
     if (! defined('NOREQUIREAJAX'))		define('NOREQUIREAJAX','1');
     
    -// For bittorent link, we don't need to load/check we are into a login session
    -if (isset($_GET["modulepart"]) && $_GET["modulepart"] == 'bittorrent')
    -{
    -	if (! defined("NOLOGIN"))		define("NOLOGIN",1);
    -	if (! defined("NOCSRFCHECK"))	define("NOCSRFCHECK",1);	// We accept to go on this page from external web site.
    -	if (! defined("NOIPCHECK"))		define("NOIPCHECK",1);		// Do not check IP defined into conf $dolibarr_main_restrict_ip
    -}
     // For direct external download link, we don't need to load/check we are into a login session
    -if (isset($_GET["hashp"]))
    +if (isset($_GET["hashp"]) && ! defined("NOLOGIN"))
     {
     	if (! defined("NOLOGIN"))		define("NOLOGIN",1);
     	if (! defined("NOCSRFCHECK"))	define("NOCSRFCHECK",1);	// We accept to go on this page from external web site.
    @@ -64,13 +57,17 @@ if ((isset($_GET["modulepart"]) && $_GET["modulepart"] == 'medias'))
      *
      * @return	void
      */
    -function llxHeader() { }
    +function llxHeader()
    +{
    +}
     /**
      * Footer empty
      *
      * @return	void
      */
    -function llxFooter() { }
    +function llxFooter()
    +{
    +}
     
     require 'main.inc.php';	// Load $user and permissions
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    @@ -110,12 +107,6 @@ if (in_array($modulepart, array('facture_paiement','unpaid')))
      * View
      */
     
    -// Define attachment (attachment=true to force choice popup 'open'/'save as')
    -$attachment = true;
    -if (preg_match('/\.(html|htm)$/i',$original_file)) $attachment = false;
    -if (isset($_GET["attachment"])) $attachment = GETPOST("attachment",'alpha')?true:false;
    -if (! empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS)) $attachment=false;
    -
     // If we have a hash public (hashp), we guess the original_file.
     if (! empty($hashp))
     {
    @@ -125,8 +116,14 @@ if (! empty($hashp))
     	if ($result > 0)
     	{
     		$tmp = explode('/', $ecmfile->filepath, 2);		// $ecmfile->filepath is relative to document directory
    -		$moduleparttocheck = $tmp[0];
    -		if ($modulepart)	// Not required for link using public hashp
    +		// filepath can be 'users/X' or 'X/propale/PR11111'
    +		if (is_numeric($tmp[0])) // If first tmp is numeric, it is subdir of company for multicompany, we take next part.
    +		{
    +			$tmp = explode('/', $tmp[1], 2);
    +		}
    +		$moduleparttocheck = $tmp[0];	// moduleparttocheck is first part of path
    +
    +		if ($modulepart)	// Not required, so often not defined, for link using public hashp parameter.
     		{
     			if ($moduleparttocheck == $modulepart)
     			{
    @@ -152,6 +149,12 @@ if (! empty($hashp))
     	}
     }
     
    +// Define attachment (attachment=true to force choice popup 'open'/'save as')
    +$attachment = true;
    +if (preg_match('/\.(html|htm)$/i',$original_file)) $attachment = false;
    +if (isset($_GET["attachment"])) $attachment = GETPOST("attachment",'alpha')?true:false;
    +if (! empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS)) $attachment=false;
    +
     // Define mime type
     $type = 'application/octet-stream';
     if (GETPOST('type','alpha')) $type=GETPOST('type','alpha');
    diff --git a/htdocs/don/admin/donation.php b/htdocs/don/admin/donation.php
    index 600a98b8f4f..69736fdaca9 100644
    --- a/htdocs/don/admin/donation.php
    +++ b/htdocs/don/admin/donation.php
    @@ -4,6 +4,7 @@
      * Copyright (C) 2013-2017  Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2015-2017  Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2015       Benoit Bruchard			<benoitb21@gmail.com>
    + * Copyright (C) 2019       Thibault FOUCART			<support@ptibogxiv.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
    @@ -36,8 +37,6 @@ $langs->loadLangs(array('admin', 'donations', 'accountancy', 'other'));
     
     if (!$user->admin) accessforbidden();
     
    -$typeconst=array('yesno','texte','chaine');
    -
     $action = GETPOST('action','alpha');
     $value = GETPOST('value');
     $label = GETPOST('label','alpha');
    @@ -155,42 +154,35 @@ if ($action == 'set_DONATION_MESSAGE')
         }
     }
     
    -// Activate an article
    -else if ($action == 'setart200') {
    -	$setart200 = GETPOST('value', 'int');
    -	$res = dolibarr_set_const($db, "DONATION_ART200", $setart200, 'yesno', 0, '', $conf->entity);
    -	if (! $res > 0)
    -		$error ++;
    -
    -	if (! $error) {
    -		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    -	} else {
    -		setEventMessages($langs->trans("Error"), null, 'mesgs');
    -	}
    +/*
    + * Action
    + */
    +if (preg_match('/set_([a-z0-9_\-]+)/i',$action,$reg))
    +{
    +    $code=$reg[1];
    +    if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0)
    +    {
    +        header("Location: ".$_SERVER["PHP_SELF"]);
    +        exit;
    +    }
    +    else
    +    {
    +        dol_print_error($db);
    +    }
     }
    -else if ($action == 'setart238') {
    -	$setart238 = GETPOST('value', 'int');
    -	$res = dolibarr_set_const($db, "DONATION_ART238", $setart238, 'yesno', 0, '', $conf->entity);
    -	if (! $res > 0)
    -		$error ++;
     
    -	if (! $error) {
    -		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    -	} else {
    -		setEventMessages($langs->trans("Error"), null, 'mesgs');
    -	}
    -}
    -else if ($action == 'setart885') {
    -	$setart885 = GETPOST('value', 'int');
    -	$res = dolibarr_set_const($db, "DONATION_ART885", $setart885, 'yesno', 0, '', $conf->entity);
    -	if (! $res > 0)
    -		$error ++;
    -
    -	if (! $error) {
    -		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    -	} else {
    -		setEventMessages($langs->trans("Error"), null, 'mesgs');
    -	}
    +if (preg_match('/del_([a-z0-9_\-]+)/i',$action,$reg))
    +{
    +    $code=$reg[1];
    +    if (dolibarr_del_const($db, $code, $conf->entity) > 0)
    +    {
    +        header("Location: ".$_SERVER["PHP_SELF"]);
    +        exit;
    +    }
    +    else
    +    {
    +        dol_print_error($db);
    +    }
     }
     
     /*
    @@ -357,11 +349,24 @@ print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'" />';
     print '<input type="hidden" name="action" value="set_DONATION_ACCOUNTINGACCOUNT" />';
     
     print '<tr class="oddeven">';
    +print '<td colspan="2">';
    +print $form->textwithpicto($langs->trans("DonationUserThirdparties"), $langs->trans("DonationUserThirdpartiesDesc"));
    +print '</td>';
    +print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +    print ajax_constantonoff('DONATION_USE_THIRDPARTIES');
    +} else {
    +    $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +    print $form->selectarray("DONATION_USE_THIRDPARTIES", $arrval, $conf->global->DONATION_USE_THIRDPARTIES);
    +}
    +print "</td>\n";
    +print "</tr>\n";
     
    +print '<tr class="oddeven">';
     print '<td>';
     $label = $langs->trans("AccountAccounting");
     print '<label for="DONATION_ACCOUNTINGACCOUNT">' . $label . '</label></td>';
    -print '<td>';
    +print '<td align="center">';
     if (! empty($conf->accounting->enabled))
     {
     	print $formaccounting->select_account($conf->global->DONATION_ACCOUNTINGACCOUNT, 'DONATION_ACCOUNTINGACCOUNT', 1, '', 1, 1);
    @@ -370,7 +375,7 @@ else
     {
     	print '<input type="text" size="10" id="DONATION_ACCOUNTINGACCOUNT" name="DONATION_ACCOUNTINGACCOUNT" value="' . $conf->global->DONATION_ACCOUNTINGACCOUNT . '">';
     }
    -print '</td><td align="right">';
    +print '</td><td align="center">';
     print '<input type="submit" class="button" value="'.$langs->trans("Modify").'" />';
     print "</td></tr>\n";
     print '</form>';
    @@ -382,7 +387,7 @@ print '<input type="hidden" name="action" value="set_DONATION_MESSAGE" />';
     print '<tr class="oddeven"><td colspan="2">';
     print $langs->trans("FreeTextOnDonations").' '.img_info($langs->trans("AddCRIfTooLong")).'<br>';
     print '<textarea name="DONATION_MESSAGE" class="flat" cols="80">'.$conf->global->DONATION_MESSAGE.'</textarea>';
    -print '</td><td align="right">';
    +print '</td><td align="center">';
     print '<input type="submit" class="button" value="'.$langs->trans("Modify").'" />';
     print "</td></tr>\n";
     
    @@ -399,47 +404,42 @@ if (preg_match('/fr/i',$conf->global->MAIN_INFO_SOCIETE_COUNTRY))
     
     	print '<table class="noborder" width="100%">';
     	print '<tr class="liste_titre">';
    -	print '<td colspan="3">' . $langs->trans('Parameters') . '</td>';
    +	print '<td>'.$langs->trans("Parameters").'</td>'."\n";
    +	print '<td align="center">'.$langs->trans("Status").'</td>'."\n";
     	print "</tr>\n";
     
     	print '<tr class="oddeven">';
     	print '<td width="80%">' . $langs->trans("DONATION_ART200") . '</td>';
    -	if (! empty($conf->global->DONATION_ART200)) {
    -		print '<td align="center" colspan="2"><a href="' . $_SERVER['PHP_SELF'] . '?action=setart200&value=0">';
    -		print img_picto($langs->trans("Activated"), 'switch_on');
    -		print '</a></td>';
    -	} else {
    -		print '<td align="center" colspan="2"><a href="' . $_SERVER['PHP_SELF'] . '?action=setart200&value=1">';
    -		print img_picto($langs->trans("Disabled"), 'switch_off');
    -		print '</a></td>';
    -	}
    -	print '</tr>';
    +	print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +  print ajax_constantonoff('DONATION_ART200');
    +} else {
    +  $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +  print $form->selectarray("DONATION_ART200", $arrval, $conf->global->DONATION_ART200);
    +}
    +	print '</td></tr>';
     
     	print '<tr class="oddeven">';
     	print '<td width="80%">' . $langs->trans("DONATION_ART238") . '</td>';
    -	if (! empty($conf->global->DONATION_ART238)) {
    -		print '<td align="center" colspan="2"><a href="' . $_SERVER['PHP_SELF'] . '?action=setart238&value=0">';
    -		print img_picto($langs->trans("Activated"), 'switch_on');
    -		print '</a></td>';
    -	} else {
    -		print '<td align="center" colspan="2"><a href="' . $_SERVER['PHP_SELF'] . '?action=setart238&value=1">';
    -		print img_picto($langs->trans("Disabled"), 'switch_off');
    -		print '</a></td>';
    -	}
    -	print '</tr>';
    +	print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +  print ajax_constantonoff('DONATION_ART238');
    +} else {
    +  $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +  print $form->selectarray("DONATION_ART238", $arrval, $conf->global->DONATION_ART238);
    +}
    +	print '</td></tr>';
     
     	print '<tr class="oddeven">';
     	print '<td width="80%">' . $langs->trans("DONATION_ART885") . '</td>';
    -	if (! empty($conf->global->DONATION_ART885)) {
    -		print '<td align="center" colspan="2"><a href="' . $_SERVER['PHP_SELF'] . '?action=setart885&value=0">';
    -		print img_picto($langs->trans("Activated"), 'switch_on');
    -		print '</a></td>';
    -	} else {
    -		print '<td align="center" colspan="2"><a href="' . $_SERVER['PHP_SELF'] . '?action=setart885&value=1">';
    -		print img_picto($langs->trans("Disabled"), 'switch_off');
    -		print '</a></td>';
    -	}
    -	print '</tr>';
    +	print '<td align="center">';
    +if ($conf->use_javascript_ajax) {
    +  print ajax_constantonoff('DONATION_ART885');
    +} else {
    +  $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
    +  print $form->selectarray("DONATION_ART885", $arrval, $conf->global->DONATION_ART885);
    +}
    +	print '</td></tr>';
     	print "</table>\n";
     }
     
    diff --git a/htdocs/don/card.php b/htdocs/don/card.php
    index 5a9e439a9c7..6a63074166c 100644
    --- a/htdocs/don/card.php
    +++ b/htdocs/don/card.php
    @@ -1,9 +1,11 @@
     <?php
    -/* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    - * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
    - * Copyright (C) 2015-2016  Alexandre Spangaro	  	<aspangaro.dolibarr@gmail.com>
    +/* Copyright (C) 2001-2002  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2017  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2013       Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2015-2016  Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2018       Thibault FOUCART        <support@ptibogxiv.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -26,23 +28,23 @@
      */
     
     require '../main.inc.php';
    -require_once DOL_DOCUMENT_ROOT.'/core/modules/dons/modules_don.php';
    -require_once DOL_DOCUMENT_ROOT.'/core/lib/donation.lib.php';
    -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
    -require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php';
    -require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
    -require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
    -if (! empty($conf->projet->enabled))
    -{
    -	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
    -	require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/modules/dons/modules_don.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/lib/donation.lib.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formcompany.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/don/class/don.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/compta/paiement/class/paiement.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formmargin.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php';
    +if (! empty($conf->projet->enabled)) {
    +    require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
    +    require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     }
     require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
     
    -$langs->load("companies");
    -$langs->load("donations");
    -$langs->load("bills");
    +$langs->loadLangs(array("bills", "companies", "donations"));
     
     $id=GETPOST('rowid')?GETPOST('rowid','int'):GETPOST('id','int');
     $action=GETPOST('action','alpha');
    @@ -326,38 +328,91 @@ if ($action == 'create')
     	print '<table class="border" width="100%">';
     	print '<tbody>';
     
    -    // Date
    +	// Ref
    +	print '<tr><td class="titlefieldcreate fieldrequired">' . $langs->trans('Ref') . '</td><td colspan="2">' . $langs->trans('Draft') . '</td></tr>';
    +
    +	// Company
    +	if (! empty($conf->societe->enabled) && ! empty($conf->global->DONATION_USE_THIRDPARTIES))
    +	{
    +		// Thirdparty
    +		print '<td>' . $langs->trans('Customer') . '</td>';
    +		if ($soc->id > 0 && ! GETPOST('fac_rec','alpha'))
    +		{
    +			print '<td colspan="2">';
    +			print $soc->getNomUrl(1);
    +			print '<input type="hidden" name="socid" value="' . $soc->id . '">';
    +			// Outstanding Bill
    +			$outstandingBills = $soc->get_OutstandingBill();
    +			print ' (' . $langs->trans('CurrentOutstandingBill') . ': ';
    +			print price($outstandingBills, '', $langs, 0, 0, -1, $conf->currency);
    +			if ($soc->outstanding_limit != '')
    +			{
    +				if ($outstandingBills > $soc->outstanding_limit) print img_warning($langs->trans("OutstandingBillReached"));
    +				print ' / ' . price($soc->outstanding_limit, '', $langs, 0, 0, -1, $conf->currency);
    +			}
    +			print ')';
    +			print '</td>';
    +		}
    +		else
    +		{
    +			print '<td colspan="2">';
    +			print $form->select_company($soc->id, 'socid', '(s.client = 1 OR s.client = 3) AND status=1', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300');
    +			// Option to reload page to retrieve customer informations. Note, this clear other input
    +			if (!empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE))
    +			{
    +				print '<script type="text/javascript">
    +				$(document).ready(function() {
    +					$("#socid").change(function() {
    +						var socid = $(this).val();
    +				        var fac_rec = $(\'#fac_rec\').val();
    +						// reload page
    +						window.location.href = "'.$_SERVER["PHP_SELF"].'?action=create&socid="+socid+"&fac_rec="+fac_rec;
    +					});
    +				});
    +				</script>';
    +			}
    +			print ' <a href="'.DOL_URL_ROOT.'/societe/card.php?action=create&client=3&fournisseur=0&backtopage='.urlencode($_SERVER["PHP_SELF"].'?action=create').'">'.$langs->trans("AddThirdParty").'</a>';
    +			print '</td>';
    +		}
    +		print '</tr>' . "\n";
    +	}
    +
    +	// Date
     	print '<tr><td class="fieldrequired titlefieldcreate">'.$langs->trans("Date").'</td><td>';
    -	$form->select_date($donation_date?$donation_date:-1,'','','','',"add",1,1);
    +	print $form->selectDate($donation_date?$donation_date:-1, '', '', '', '', "add", 1, 1);
     	print '</td>';
     
    -    // Amount
    -    print "<tr>".'<td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input type="text" name="amount" value="'.dol_escape_htmltag(GETPOST("amount")).'" size="10"> '.$langs->trans("Currency".$conf->currency).'</td></tr>';
    +	// Amount
    +	print "<tr>".'<td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input type="text" name="amount" value="'.dol_escape_htmltag(GETPOST("amount")).'" size="10"> '.$langs->trans("Currency".$conf->currency).'</td></tr>';
     
    +	// Public donation
     	print '<tr><td class="fieldrequired">'.$langs->trans("PublicDonation")."</td><td>";
     	print $form->selectyesno("public",isset($_POST["public"])?$_POST["public"]:1,1);
     	print "</td></tr>\n";
     
    -	print "<tr>".'<td>'.$langs->trans("Company").'</td><td><input type="text" name="societe" value="'.dol_escape_htmltag(GETPOST("societe")).'" class="maxwidth200"></td></tr>';
    -	print "<tr>".'<td>'.$langs->trans("Lastname").'</td><td><input type="text" name="lastname" value="'.dol_escape_htmltag(GETPOST("lastname")).'" class="maxwidth200"></td></tr>';
    -	print "<tr>".'<td>'.$langs->trans("Firstname").'</td><td><input type="text" name="firstname" value="'.dol_escape_htmltag(GETPOST("firstname")).'" class="maxwidth200"></td></tr>';
    -	print "<tr>".'<td>'.$langs->trans("Address").'</td><td>';
    -	print '<textarea name="address" wrap="soft" class="quatrevingtpercent" rows="3">'.dol_escape_htmltag(GETPOST("address")).'</textarea></td></tr>';
    +	if (empty($conf->societe->enabled) || empty($conf->global->DONATION_USE_THIRDPARTIES))
    +	{
    +		print "<tr>".'<td>'.$langs->trans("Company").'</td><td><input type="text" name="societe" value="'.dol_escape_htmltag(GETPOST("societe")).'" class="maxwidth200"></td></tr>';
    +		print "<tr>".'<td>'.$langs->trans("Lastname").'</td><td><input type="text" name="lastname" value="'.dol_escape_htmltag(GETPOST("lastname")).'" class="maxwidth200"></td></tr>';
    +		print "<tr>".'<td>'.$langs->trans("Firstname").'</td><td><input type="text" name="firstname" value="'.dol_escape_htmltag(GETPOST("firstname")).'" class="maxwidth200"></td></tr>';
    +		print "<tr>".'<td>'.$langs->trans("Address").'</td><td>';
    +		print '<textarea name="address" wrap="soft" class="quatrevingtpercent" rows="3">'.dol_escape_htmltag(GETPOST("address")).'</textarea></td></tr>';
     
    -    // Zip / Town
    -    print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td>';
    -	print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$object->zip),'zipcode',array('town','selectcountry_id','state_id'),6);
    -    print ' ';
    -    print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$object->town),'town',array('zipcode','selectcountry_id','state_id'));
    -    print '</tr>';
    +		// Zip / Town
    +		print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td>';
    +		print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$object->zip),'zipcode',array('town','selectcountry_id','state_id'),6);
    +		print ' ';
    +		print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$object->town),'town',array('zipcode','selectcountry_id','state_id'));
    +		print '</tr>';
     
    -	// Country
    -    print '<tr><td><label for="selectcountry_id">'.$langs->trans('Country').'</label></td><td class="maxwidthonsmartphone">';
    -    print $form->select_country(GETPOST('country_id')!=''?GETPOST('country_id'):$object->country_id);
    -    if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
    -    print '</td></tr>';
    +		// Country
    +		print '<tr><td><label for="selectcountry_id">'.$langs->trans('Country').'</label></td><td class="maxwidthonsmartphone">';
    +		print $form->select_country(GETPOST('country_id')!=''?GETPOST('country_id'):$object->country_id);
    +		if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
    +		print '</td></tr>';
     
    -	print "<tr>".'<td>'.$langs->trans("EMail").'</td><td><input type="text" name="email" value="'.dol_escape_htmltag(GETPOST("email")).'" class="maxwidth200"></td></tr>';
    +		print "<tr>".'<td>'.$langs->trans("EMail").'</td><td><input type="text" name="email" value="'.dol_escape_htmltag(GETPOST("email")).'" class="maxwidth200"></td></tr>';
    +	}
     
     	// Payment mode
     	print "<tr><td>".$langs->trans("PaymentMode")."</td><td>\n";
    @@ -455,7 +510,7 @@ if (! empty($id) && $action == 'edit')
     
     	// Date
     	print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Date").'</td><td>';
    -	$form->select_date($object->date,'','','','',"update");
    +	print $form->selectDate($object->date,'','','','',"update");
     	print '</td>';
     
     	// Amount
    @@ -614,7 +669,7 @@ if (! empty($id) && $action != 'edit')
         print '<div class="fichehalfleft">';
         print '<div class="underbanner clearboth"></div>';
     
    -    print '<table class="border" width="100%">';
    +    print '<table class="border tableforfield" width="100%">';
     
     	// Date
     	print '<tr><td class="titlefield">'.$langs->trans("Date").'</td><td colspan="2">';
    @@ -740,7 +795,7 @@ if (! empty($id) && $action != 'edit')
     	{
     		if ($remaintopay == 0)
     		{
    -			print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseRemainderToPayIsZero") . '">' . $langs->trans('DoPayment') . '</span></div>';
    +			print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseRemainderToPayIsZero") . '">' . $langs->trans('DoPayment') . '</span></div>';
     		}
     		else
     		{
    @@ -763,12 +818,12 @@ if (! empty($id) && $action != 'edit')
     		}
     		else
     		{
    -			print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">'.$langs->trans("Delete")."</a></div>";
    +			print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("Delete")."</a></div>";
     		}
     	}
     	else
     	{
    -		print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">'.$langs->trans("Delete")."</a></div>";
    +		print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("Delete")."</a></div>";
     	}
     
     	print "</div>";
    @@ -791,6 +846,16 @@ if (! empty($id) && $action != 'edit')
     	$linktoelem = $form->showLinkToObjectBlock($object, null, array('don'));
     	$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
     
    +		// Show online payment link
    +		$useonlinepayment = (! empty($conf->paypal->enabled) || ! empty($conf->stripe->enabled) || ! empty($conf->paybox->enabled));
    +
    +		if ($useonlinepayment) //$object->statut != Facture::STATUS_DRAFT &&
    +		{
    +			print '<br><!-- Link to pay -->'."\n";
    +			require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
    +			print showOnlinePaymentUrl('donation', $object->ref).'<br>';
    +		}
    +
     	print '</div><div class="fichehalfright"><div class="ficheaddleft">';
     
     	print '</div></div></div>';
    diff --git a/htdocs/don/class/api_donations.class.php b/htdocs/don/class/api_donations.class.php
    new file mode 100644
    index 00000000000..8d13dd2d68b
    --- /dev/null
    +++ b/htdocs/don/class/api_donations.class.php
    @@ -0,0 +1,383 @@
    +<?php
    +/* Copyright (C) 2015   Jean-François Ferry     <jfefe@aternatik.fr>
    + * Copyright (C) 2016	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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    + use Luracast\Restler\RestException;
    +
    + require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php';
    +
    +/**
    + * API class for donations
    + *
    + * @access protected
    + * @class  DolibarrApiAccess {@requires user,external}
    + */
    +class Donations extends DolibarrApi
    +{
    +
    +    /**
    +     * @var array   $FIELDS     Mandatory fields, checked when create and update object
    +     */
    +    static $FIELDS = array(
    +        'socid'
    +    );
    +
    +    /**
    +     * @var Don $don {@type Don}
    +     */
    +    public $don;
    +
    +    /**
    +     * Constructor
    +     */
    +    function __construct()
    +    {
    +		global $db, $conf;
    +		$this->db = $db;
    +    $this->don = new Don($this->db);
    +    }
    +
    +    /**
    +     * Get properties of an donation object
    +     *
    +     * Return an array with donation informations
    +     *
    +     * @param       int         $id         ID of order
    +     * @return 	array|mixed data without useless information
    +	 *
    +     * @throws 	RestException
    +     */
    +    function get($id)
    +    {
    +		if(! DolibarrApiAccess::$user->rights->don->lire) {
    +			throw new RestException(401);
    +		}
    +
    +        $result = $this->don->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Donation not found');
    +        }
    +
    +		if( ! DolibarrApi::_checkAccessToResource('commande',$this->don->id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +		}
    +
    +		// Add external contacts ids
    +		//$this->commande->contacts_ids = $this->don->liste_contact(-1,'external',1);
    +		//$this->commande->fetchObjectLinked();
    +		return $this->_cleanObjectDatas($this->don);
    +	}
    +
    +
    +
    +    /**
    +     * List donations
    +     *
    +     * Get a list of orders
    +     *
    +     * @param string	       $sortfield	        Sort field
    +     * @param string	       $sortorder	        Sort order
    +     * @param int		       $limit		        Limit for list
    +     * @param int		       $page		        Page number
    +     * @param string   	       $thirdparty_ids	    Thirdparty ids to filter orders of. {@example '1' or '1,2,3'} {@pattern /^[0-9,]*$/i}
    +     * @param string           $sqlfilters          Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')"
    +     * @return  array                               Array of order objects
    +     *
    +     * @throws RestException
    +     */
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '')
    +    {
    +        global $db, $conf;
    +
    +        $obj_ret = array();
    +
    +        // case of external user, $thirdparty_ids param is ignored and replaced by user's socid
    +        $socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids;
    +
    +        // If the internal user must only see his customers, force searching by him
    +        $search_sale = 0;
    +        if (! DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) $search_sale = DolibarrApiAccess::$user->id;
    +
    +        $sql = "SELECT t.rowid";
    +        if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects)
    +        $sql.= " FROM ".MAIN_DB_PREFIX."don as t";
    +
    +        if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale
    +
    +        $sql.= ' WHERE t.entity IN ('.getEntity('don').')';
    +        if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql.= " AND t.fk_soc = sc.fk_soc";
    +        if ($socids) $sql.= " AND t.fk_soc IN (".$socids.")";
    +        if ($search_sale > 0) $sql.= " AND t.rowid = sc.fk_soc";		// Join for the needed table to filter by sale
    +        // Insert sale filter
    +        if ($search_sale > 0)
    +        {
    +            $sql .= " AND sc.fk_user = ".$search_sale;
    +        }
    +        // Add sql filters
    +        if ($sqlfilters)
    +        {
    +            if (! DolibarrApi::_checkFilters($sqlfilters))
    +            {
    +                throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
    +            }
    +	        $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
    +            $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
    +        }
    +
    +        $sql.= $db->order($sortfield, $sortorder);
    +        if ($limit)	{
    +            if ($page < 0)
    +            {
    +                $page = 0;
    +            }
    +            $offset = $limit * $page;
    +
    +            $sql.= $db->plimit($limit + 1, $offset);
    +        }
    +
    +        dol_syslog("API Rest request");
    +        $result = $db->query($sql);
    +
    +        if ($result)
    +        {
    +            $num = $db->num_rows($result);
    +            $min = min($num, ($limit <= 0 ? $num : $limit));
    +            $i=0;
    +            while ($i < $min)
    +            {
    +                $obj = $db->fetch_object($result);
    +                $commande_static = new Commande($db);
    +                if($commande_static->fetch($obj->rowid)) {
    +                    // Add external contacts ids
    +                    $commande_static->contacts_ids = $commande_static->liste_contact(-1,'external',1);
    +                    $obj_ret[] = $this->_cleanObjectDatas($commande_static);
    +                }
    +                $i++;
    +            }
    +        }
    +        else {
    +            throw new RestException(503, 'Error when retrieve commande list : '.$db->lasterror());
    +        }
    +        if( ! count($obj_ret)) {
    +            throw new RestException(404, 'No order found');
    +        }
    +		return $obj_ret;
    +    }
    +
    +    /**
    +     * Create donation object
    +     *
    +     * @param   array   $request_data   Request data
    +     * @return  int     ID of order
    +     */
    +    function post($request_data = null)
    +    {
    +        if(! DolibarrApiAccess::$user->rights->commande->creer) {
    +			throw new RestException(401, "Insuffisant rights");
    +		}
    +        // Check mandatory fields
    +        $result = $this->_validate($request_data);
    +
    +        foreach($request_data as $field => $value) {
    +            $this->commande->$field = $value;
    +        }
    +        /*if (isset($request_data["lines"])) {
    +          $lines = array();
    +          foreach ($request_data["lines"] as $line) {
    +            array_push($lines, (object) $line);
    +          }
    +          $this->commande->lines = $lines;
    +        }*/
    +
    +        if ($this->commande->create(DolibarrApiAccess::$user) < 0) {
    +            throw new RestException(500, "Error creating order", array_merge(array($this->commande->error), $this->commande->errors));
    +        }
    +
    +        return $this->commande->id;
    +    }
    +
    +    /**
    +     * Update order general fields (won't touch lines of order)
    +     *
    +     * @param int   $id             Id of order to update
    +     * @param array $request_data   Datas
    +     *
    +     * @return int
    +     */
    +    function put($id, $request_data = null)
    +    {
    +        if (! DolibarrApiAccess::$user->rights->commande->creer) {
    +			throw new RestException(401);
    +		}
    +
    +        $result = $this->commande->fetch($id);
    +        if (! $result) {
    +            throw new RestException(404, 'Order not found');
    +        }
    +
    +		if (! DolibarrApi::_checkAccessToResource('commande',$this->commande->id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +		}
    +        foreach($request_data as $field => $value) {
    +            if ($field == 'id') continue;
    +            $this->commande->$field = $value;
    +        }
    +
    +		// Update availability
    +		if (!empty($this->commande->availability_id)) {
    +		    if ($this->commande->availability($this->commande->availability_id) < 0)
    +			throw new RestException(400, 'Error while updating availability');
    +		}
    +
    +        if ($this->commande->update(DolibarrApiAccess::$user) > 0)
    +        {
    +            return $this->get($id);
    +        }
    +        else
    +        {
    +        	throw new RestException(500, $this->commande->error);
    +        }
    +    }
    +
    +    /**
    +     * Delete donation
    +     *
    +     * @param   int     $id         Order ID
    +     * @return  array
    +     */
    +    function delete($id)
    +    {
    +        if(! DolibarrApiAccess::$user->rights->don->supprimer) {
    +			throw new RestException(401);
    +		}
    +        $result = $this->don->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Donation not found');
    +        }
    +
    +		if( ! DolibarrApi::_checkAccessToResource('don',$this->don->id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +		}
    +
    +        if( ! $this->don->delete(DolibarrApiAccess::$user)) {
    +            throw new RestException(500, 'Error when delete donation : '.$this->don->error);
    +        }
    +
    +        return array(
    +            'success' => array(
    +                'code' => 200,
    +                'message' => 'Donation deleted'
    +            )
    +        );
    +    }
    +
    +    /**
    +     * Validate an donation
    +     *
    +	 * If you get a bad value for param notrigger check, provide this in body
    +     * {
    +     *   "idwarehouse": 0,
    +     *   "notrigger": 0
    +     * }
    +     *
    +     * @param   int $id             Order ID
    +     * @param   int $idwarehouse    Warehouse ID
    +     * @param   int $notrigger      1=Does not execute triggers, 0= execute triggers
    +     *
    +     * @url POST    {id}/validate
    +     *
    +	 * @throws 304
    +     * @throws 401
    +     * @throws 404
    +     * @throws 500
    +     *
    +     * @return  array
    +     */
    +    function validate($id, $idwarehouse=0, $notrigger=0)
    +    {
    +        if(! DolibarrApiAccess::$user->rights->commande->creer) {
    +			throw new RestException(401);
    +		}
    +        $result = $this->commande->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Donation not found');
    +        }
    +
    +		if( ! DolibarrApi::_checkAccessToResource('don',$this->don->id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +		}
    +
    +		$result = $this->commande->valid(DolibarrApiAccess::$user, $idwarehouse, $notrigger);
    +		if ($result == 0) {
    +		    throw new RestException(304, 'Error nothing done. May be object is already validated');
    +		}
    +		if ($result < 0) {
    +		    throw new RestException(500, 'Error when validating Order: '.$this->commande->error);
    +		}
    +        $result = $this->commande->fetch($id);
    +        if( ! $result ) {
    +            throw new RestException(404, 'Order not found');
    +        }
    +
    +        if( ! DolibarrApi::_checkAccessToResource('commande',$this->commande->id)) {
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
    +
    +        $this->commande->fetchObjectLinked();
    +
    +        return $this->_cleanObjectDatas($this->commande);
    +    }
    +
    +    /**
    +     * Clean sensible object datas
    +     *
    +     * @param   object  $object    Object to clean
    +     * @return    array    Array of cleaned object properties
    +     */
    +    function _cleanObjectDatas($object)
    +    {
    +
    +        $object = parent::_cleanObjectDatas($object);
    +
    +        unset($object->note);
    +        unset($object->address);
    +        unset($object->barcode_type);
    +        unset($object->barcode_type_code);
    +        unset($object->barcode_type_label);
    +        unset($object->barcode_type_coder);
    +
    +        return $object;
    +    }
    +
    +    /**
    +     * Validate fields before create or update object
    +     *
    +     * @param   array           $data   Array with data to verify
    +     * @return  array
    +     * @throws  RestException
    +     */
    +    function _validate($data)
    +    {
    +        $commande = array();
    +        foreach (Orders::$FIELDS as $field) {
    +            if (!isset($data[$field]))
    +                throw new RestException(400, $field ." field missing");
    +            $commande[$field] = $data[$field];
    +        }
    +        return $commande;
    +    }
    +}
    diff --git a/htdocs/don/class/don.class.php b/htdocs/don/class/don.class.php
    index 63bfbb315ba..c3941059e64 100644
    --- a/htdocs/don/class/don.class.php
    +++ b/htdocs/don/class/don.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014      Florian Henry        <florian.henry@open-concept.pro>
      * Copyright (C) 2015-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
      * Copyright (C) 2016      Juanjo Menent        <jmenent@2byte.es>
    @@ -34,34 +34,62 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class Don extends CommonObject
     {
    -    public $element='don'; 					// Id that identify managed objects
    -    public $table_element='don';			// Name of table without prefix where object is stored
    -	public $fk_element = 'fk_donation';
    -	public $ismultientitymanaged = 1;  	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    -    var $picto = 'generic';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='don';
     
    -    var $date;
    -    var $amount;
    -    var $societe;
    -    var $address;
    -    var $zip;
    -    var $town;
    -    var $email;
    -    var $public;
    -    var $fk_project;
    -    var $fk_typepayment;
    -	var $num_payment;
    -	var $date_valid;
    -	var $modepaymentid = 0;
    -
    -	var $labelstatut;
    -	var $labelstatutshort;
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='don';
     
     	/**
    -	 * @deprecated
    -	 * @see note_private, note_public
    +	 * @var int Field with ID of parent key if this field has a parent
     	 */
    -	var $commentaire;
    +	public $fk_element = 'fk_donation';
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 1;
    +
    +    /**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto = 'generic';
    +
    +    public $date;
    +    public $amount;
    +    public $societe;
    +
    +    /**
    +	 * @var string Address
    +	 */
    +	public $address;
    +
    +    public $zip;
    +    public $town;
    +    public $email;
    +    public $public;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_project;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_typepayment;
    +
    +	public $num_payment;
    +	public $date_valid;
    +	public $modepaymentid = 0;
    +
    +	public $labelstatut;
    +	public $labelstatutshort;
     
     
         /**
    @@ -71,9 +99,7 @@ class Don extends CommonObject
          */
         function __construct($db)
         {
    -        global $langs;
    -
    -        $this->db = $db;
    +         $this->db = $db;
         }
     
     
    @@ -88,6 +114,7 @@ class Don extends CommonObject
             return $this->LibStatut($this->statut,$mode);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Renvoi le libelle d'un statut donne
          *
    @@ -97,7 +124,8 @@ class Don extends CommonObject
          */
         function LibStatut($statut,$mode=0)
         {
    -    	if (empty($this->labelstatut) || empty($this->labelstatushort))
    +        // phpcs:enable
    +    	if (empty($this->labelstatut) || empty($this->labelstatutshort))
         	{
     	    	global $langs;
     	    	$langs->load("donations");
    @@ -115,44 +143,44 @@ class Don extends CommonObject
             {
                 return $this->labelstatut[$statut];
             }
    -        if ($mode == 1)
    +        elseif ($mode == 1)
             {
                 return $this->labelstatutshort[$statut];
             }
    -        if ($mode == 2)
    +        elseif ($mode == 2)
             {
                 if ($statut == -1) return img_picto($this->labelstatut[$statut],'statut5').' '.$this->labelstatutshort[$statut];
    -            if ($statut == 0)  return img_picto($this->labelstatut[$statut],'statut0').' '.$this->labelstatutshort[$statut];
    -            if ($statut == 1)  return img_picto($this->labelstatut[$statut],'statut1').' '.$this->labelstatutshort[$statut];
    -            if ($statut == 2)  return img_picto($this->labelstatut[$statut],'statut6').' '.$this->labelstatutshort[$statut];
    +            elseif ($statut == 0)  return img_picto($this->labelstatut[$statut],'statut0').' '.$this->labelstatutshort[$statut];
    +            elseif ($statut == 1)  return img_picto($this->labelstatut[$statut],'statut1').' '.$this->labelstatutshort[$statut];
    +            elseif ($statut == 2)  return img_picto($this->labelstatut[$statut],'statut6').' '.$this->labelstatutshort[$statut];
             }
    -        if ($mode == 3)
    +        elseif ($mode == 3)
             {
                 if ($statut == -1) return img_picto($this->labelstatut[$statut],'statut5');
    -            if ($statut == 0)  return img_picto($this->labelstatut[$statut],'statut0');
    -            if ($statut == 1)  return img_picto($this->labelstatut[$statut],'statut1');
    -            if ($statut == 2)  return img_picto($this->labelstatut[$statut],'statut6');
    +            elseif ($statut == 0)  return img_picto($this->labelstatut[$statut],'statut0');
    +            elseif ($statut == 1)  return img_picto($this->labelstatut[$statut],'statut1');
    +            elseif ($statut == 2)  return img_picto($this->labelstatut[$statut],'statut6');
             }
    -        if ($mode == 4)
    +        elseif ($mode == 4)
             {
                 if ($statut == -1) return img_picto($this->labelstatut[$statut],'statut5').' '.$this->labelstatut[$statut];
    -            if ($statut == 0)  return img_picto($this->labelstatut[$statut],'statut0').' '.$this->labelstatut[$statut];
    -            if ($statut == 1)  return img_picto($this->labelstatut[$statut],'statut1').' '.$this->labelstatut[$statut];
    -            if ($statut == 2)  return img_picto($this->labelstatut[$statut],'statut6').' '.$this->labelstatut[$statut];
    +            elseif ($statut == 0)  return img_picto($this->labelstatut[$statut],'statut0').' '.$this->labelstatut[$statut];
    +            elseif ($statut == 1)  return img_picto($this->labelstatut[$statut],'statut1').' '.$this->labelstatut[$statut];
    +            elseif ($statut == 2)  return img_picto($this->labelstatut[$statut],'statut6').' '.$this->labelstatut[$statut];
             }
    -            if ($mode == 5)
    +        elseif ($mode == 5)
             {
                 if ($statut == -1) return $this->labelstatutshort[$statut].' '.img_picto($this->labelstatut[$statut],'statut5');
    -            if ($statut == 0)  return $this->labelstatutshort[$statut].' '.img_picto($this->labelstatut[$statut],'statut0');
    -            if ($statut == 1)  return $this->labelstatutshort[$statut].' '.img_picto($this->labelstatut[$statut],'statut1');
    -            if ($statut == 2)  return $this->labelstatutshort[$statut].' '.img_picto($this->labelstatut[$statut],'statut6');
    +            elseif ($statut == 0)  return $this->labelstatutshort[$statut].' '.img_picto($this->labelstatut[$statut],'statut0');
    +            elseif ($statut == 1)  return $this->labelstatutshort[$statut].' '.img_picto($this->labelstatut[$statut],'statut1');
    +            elseif ($statut == 2)  return $this->labelstatutshort[$statut].' '.img_picto($this->labelstatut[$statut],'statut6');
             }
    -        if ($mode == 6)
    +        elseif ($mode == 6)
             {
                 if ($statut == -1) return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut5');
    -            if ($statut == 0)  return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut0');
    -            if ($statut == 1)  return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut1');
    -            if ($statut == 2)  return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut6');
    +            elseif ($statut == 0)  return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut0');
    +            elseif ($statut == 1)  return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut1');
    +            elseif ($statut == 2)  return $this->labelstatut[$statut].' '.img_picto($this->labelstatut[$statut],'statut6');
             }
         }
     
    @@ -366,8 +394,8 @@ class Don extends CommonObject
             $sql.= ", '".$this->db->escape($this->address)."'";
             $sql.= ", '".$this->db->escape($this->zip)."'";
             $sql.= ", '".$this->db->escape($this->town)."'";
    -		$sql.= ", ".$this->country_id;
    -        $sql.= ", ".$this->public;
    +        $sql.= ", ".($this->country_id > 0 ? $this->country_id : '0');
    +        $sql.= ", ".((int) $this->public);
             $sql.= ", ".($this->fk_project > 0?$this->fk_project:"null");
            	$sql.= ", ".(!empty($this->note_private)?("'".$this->db->escape($this->note_private)."'"):"NULL");
     		$sql.= ", ".(!empty($this->note_public)?("'".$this->db->escape($this->note_public)."'"):"NULL");
    @@ -379,7 +407,6 @@ class Don extends CommonObject
             $sql.= ", '".$this->db->escape($this->phone_mobile)."'";
             $sql.= ")";
     
    -        dol_syslog(get_class($this)."::create", LOG_DEBUG);
             $resql = $this->db->query($sql);
             if ($resql)
             {
    @@ -415,8 +442,8 @@ class Don extends CommonObject
     
     		if (!$error && !empty($conf->global->MAIN_DISABLEDRAFTSTATUS))
             {
    -            $res = $this->setValid($user);
    -            if ($res < 0) $error++;
    +            //$res = $this->setValid($user);
    +            //if ($res < 0) $error++;
             }
     
             if (!$error)
    @@ -670,7 +697,6 @@ class Don extends CommonObject
                     $this->note_private	  = $obj->note_private;
                     $this->note_public	  = $obj->note_public;
                     $this->modelpdf       = $obj->model_pdf;
    -                $this->commentaire    = $obj->note;	// deprecated
     
                     // Retreive all extrafield
                     // fetch optionals attributes and labels
    @@ -697,6 +723,7 @@ class Don extends CommonObject
     		return $this->valid_promesse($this->id, $user->id, $notrigger);
     	}
     
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *    Validate a promise of donation
          *
    @@ -707,6 +734,7 @@ class Don extends CommonObject
          */
     	function valid_promesse($id, $userid, $notrigger=0)
     	{
    +		// phpcs:enable
     		global $langs, $user;
     
     		$error=0;
    @@ -747,6 +775,7 @@ class Don extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Classify the donation as paid, the donation was received
          *
    @@ -756,6 +785,7 @@ class Don extends CommonObject
          */
         function set_paid($id, $modepayment=0)
         {
    +        // phpcs:enable
             $sql = "UPDATE ".MAIN_DB_PREFIX."don SET fk_statut = 2";
             if ($modepayment)
             {
    @@ -782,6 +812,7 @@ class Don extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Set donation to status cancelled
          *
    @@ -790,6 +821,7 @@ class Don extends CommonObject
          */
         function set_cancel($id)
         {
    +        // phpcs:enable
             $sql = "UPDATE ".MAIN_DB_PREFIX."don SET fk_statut = -1 WHERE rowid = ".$id;
     
             $resql=$this->db->query($sql);
    @@ -811,6 +843,7 @@ class Don extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Sum of donations
          *
    @@ -819,6 +852,7 @@ class Don extends CommonObject
          */
         function sum_donations($param)
         {
    +        // phpcs:enable
             global $conf;
     
             $result=0;
    @@ -838,13 +872,15 @@ class Don extends CommonObject
             return $result;
         }
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *	Charge indicateurs this->nb pour le tableau de bord
          *
          *	@return     int         <0 if KO, >0 if OK
          */
         function load_state_board()
         {
    +        // phpcs:enable
             global $conf;
     
             $this->nb=array();
    @@ -1049,5 +1085,4 @@ class Don extends CommonObject
     			return 0;
     		}
     	}
    -
     }
    diff --git a/htdocs/don/class/donstats.class.php b/htdocs/don/class/donstats.class.php
    index dfe74b7f691..e5e34f6ad1b 100644
    --- a/htdocs/don/class/donstats.class.php
    +++ b/htdocs/don/class/donstats.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (c) 2005-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -34,6 +34,9 @@ include_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
      */
     class DonationStats extends Stats
     {
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element;
     
     	var $socid;
    @@ -131,4 +134,4 @@ class DonationStats extends Stats
     
     		return $this->_getAllByYear($sql);
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/don/class/paymentdonation.class.php b/htdocs/don/class/paymentdonation.class.php
    index 8d31c292155..662b165ddf4 100644
    --- a/htdocs/don/class/paymentdonation.class.php
    +++ b/htdocs/don/class/paymentdonation.class.php
    @@ -29,13 +29,31 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class PaymentDonation extends CommonObject
     {
    -	public $element='payment_donation';			//!< Id that identify managed objects
    -	public $table_element='payment_donation';	//!< Name of table without prefix where object is stored
    -    public $picto = 'payment';
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='payment_donation';
     
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='payment_donation';
    +
    +    /**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto = 'payment';
    +
    +	/**
    +	 * @var int ID
    +	 */
     	public $rowid;
     
    +	/**
    +     * @var int ID
    +     */
     	public $fk_donation;
    +
     	public $datec='';
     	public $tms='';
     	public $datep='';
    @@ -43,8 +61,20 @@ class PaymentDonation extends CommonObject
         public $amounts=array();   // Array of amounts
     	public $typepayment;
     	public $num_payment;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_bank;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_modif;
     
     	/**
    @@ -68,7 +98,7 @@ class PaymentDonation extends CommonObject
          *  Use this->amounts to have list of lines for the payment
          *
     	 *  @param      User		$user			User making payment
    -	 *	@param      bool 		$notrigger 		false=launch triggers after, true=disable triggers
    +	 *  @param      bool 		$notrigger 		false=launch triggers after, true=disable triggers
     	 *  @return     int     					<0 if KO, id of payment if OK
     	 */
     	function create($user, $notrigger=false)
    @@ -389,8 +419,6 @@ class PaymentDonation extends CommonObject
     
     		$object=new PaymentDonation($this->db);
     
    -		$object->context['createfromclone'] = 'createfromclone';
    -
     		$this->db->begin();
     
     		// Load source object
    @@ -402,6 +430,7 @@ class PaymentDonation extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result=$object->create($user);
     
     		// Other options
    @@ -414,11 +443,9 @@ class PaymentDonation extends CommonObject
     		if (! $error)
     		{
     
    -
    -
     		}
     
    -		unset($this->context['createfromclone']);
    +		unset($object->context['createfromclone']);
     
     		// End
     		if (! $error)
    @@ -445,6 +472,7 @@ class PaymentDonation extends CommonObject
     	    return '';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -454,7 +482,8 @@ class PaymentDonation extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    -	    global $langs;
    +        // phpcs:enable
    +        global $langs;
     
     	    return '';
     	}
    @@ -482,8 +511,6 @@ class PaymentDonation extends CommonObject
     		$this->fk_bank='';
     		$this->fk_user_creat='';
     		$this->fk_user_modif='';
    -
    -
     	}
     
     
    @@ -570,6 +597,7 @@ class PaymentDonation extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update link between the donation payment and the generated line in llx_bank
     	 *
    @@ -578,6 +606,7 @@ class PaymentDonation extends CommonObject
     	 */
     	function update_fk_bank($id_bank)
     	{
    +        // phpcs:enable
     		$sql = "UPDATE ".MAIN_DB_PREFIX."payment_donation SET fk_bank = ".$id_bank." WHERE rowid = ".$this->id;
     
     		dol_syslog(get_class($this)."::update_fk_bank", LOG_DEBUG);
    diff --git a/htdocs/don/document.php b/htdocs/don/document.php
    index 020272d5bae..cdcb5648501 100644
    --- a/htdocs/don/document.php
    +++ b/htdocs/don/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
      * Copyright (C) 2011-2012 Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    @@ -40,9 +40,8 @@ if (! empty($conf->projet->enabled))
         require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     }
     
    -$langs->load("other");
    -$langs->load("donations");
    -$langs->load("companies");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","other","donations"));
     
     $id = GETPOST('id','int');
     $ref = GETPOST('ref', 'alpha');
    @@ -107,7 +106,7 @@ if ($object->id)
     	dol_fiche_head($head, 'documents',  $langs->trans("Donation"), -1, 'generic');
     
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -185,7 +184,6 @@ if ($object->id)
         $permtoedit = $user->rights->don->creer;
         $param = '&id=' . $object->id;
         include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
    -
     }
     else
     {
    diff --git a/htdocs/don/index.php b/htdocs/don/index.php
    index d9bee39723c..ba68a1a215c 100644
    --- a/htdocs/don/index.php
    +++ b/htdocs/don/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/don/list.php b/htdocs/don/list.php
    index 1e7d93302d8..47408fe4bb5 100644
    --- a/htdocs/don/list.php
    +++ b/htdocs/don/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Cédric Salvador			<csalvador@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -28,8 +28,8 @@ require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php';
     if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     
    -$langs->load("companies");
    -$langs->load("donations");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","donations"));
     
     $sortfield = GETPOST("sortfield",'alpha');
     $sortorder = GETPOST("sortorder",'alpha');
    diff --git a/htdocs/don/note.php b/htdocs/don/note.php
    index d78aa2c7ea5..60bf2c1939f 100644
    --- a/htdocs/don/note.php
    +++ b/htdocs/don/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Florian Henry        <florian.henry@open-concept.pro>
      * Copyright (C) 2016      Alexandre Spangaro   <aspangaro@zendsi.com>
      *
    @@ -35,9 +35,8 @@ if (! empty($conf->projet->enabled))
         require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     }
     
    -$langs->load("companies");
    -$langs->load("bills");
    -$langs->load("donations");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","bills","donations"));
     
     $id=(GETPOST('id','int')?GETPOST('id','int'):GETPOST('facid','int'));  // For backward compatibility
     $ref=GETPOST('ref','alpha');
    diff --git a/htdocs/don/payment/card.php b/htdocs/don/payment/card.php
    index e4a7ef5c5d4..bf9c2768815 100644
    --- a/htdocs/don/payment/card.php
    +++ b/htdocs/don/payment/card.php
    @@ -28,9 +28,8 @@ require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/modules/facture/modules_facture.php';
     if (! empty($conf->banque->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
    -$langs->load('bills');
    -$langs->load('banks');
    -$langs->load('companies');
    +// Load translation files required by the page
    +$langs->loadLangs(array("bills","banks","companies"));
     
     // Security check
     $id=GETPOST('rowid')?GETPOST('rowid','int'):GETPOST('id','int');
    @@ -134,7 +133,6 @@ dol_fiche_head($head, $hselected, $langs->trans("DonationPayment"), -1, 'payment
     if ($action == 'delete')
     {
     	print $form->formconfirm('card.php?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete','',0,2);
    -
     }
     
     /*
    @@ -144,7 +142,6 @@ if ($action == 'valide')
     {
     	$facid = GETPOST('facid','int');
     	print $form->formconfirm('card.php?id='.$object->id.'&amp;facid='.$facid, $langs->trans("ValidatePayment"), $langs->trans("ConfirmValidatePayment"), 'confirm_valide','',0,2);
    -
     }
     
     
    @@ -294,7 +291,7 @@ if ($_GET['action'] == '')
     		}
     		else
     		{
    -			print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("CantRemovePaymentWithOneInvoicePaid")).'">'.$langs->trans('Delete').'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("CantRemovePaymentWithOneInvoicePaid")).'">'.$langs->trans('Delete').'</a>';
     		}
     	}
     }
    diff --git a/htdocs/don/payment/payment.php b/htdocs/don/payment/payment.php
    index d1cfaa6f0ad..e016bb80a8e 100644
    --- a/htdocs/don/payment/payment.php
    +++ b/htdocs/don/payment/payment.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2015       Alexandre Spangaro	  	<aspangaro.dolibarr@gmail.com>
    +/* Copyright (C) 2015       Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -174,7 +175,7 @@ if (GETPOST('action','aZ09') == 'create')
     	print '<input type="hidden" name="rowid" value="'.$chid.'">';
     	print '<input type="hidden" name="chid" value="'.$chid.'">';
     	print '<input type="hidden" name="action" value="add_payment">';
    -	
    +
         dol_fiche_head();
     
     	print '<table cellspacing="0" class="border" width="100%" cellpadding="2">';
    @@ -205,7 +206,7 @@ if (GETPOST('action','aZ09') == 'create')
     	print '<tr><td class="fieldrequired">'.$langs->trans("Date").'</td><td colspan="2">';
     	$datepaid = dol_mktime(12, 0, 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]);
     	$datepayment=empty($conf->global->MAIN_AUTOFILL_DATE)?(empty($_POST["remonth"])?-1:$datepaid):0;
    -	$form->select_date($datepayment,'','','','',"add_payment",1,1);
    +	print $form->selectDate($datepayment, '', '', '', '', "add_payment", 1, 1);
     	print "</td>";
     	print '</tr>';
     
    diff --git a/htdocs/don/stats/index.php b/htdocs/don/stats/index.php
    index cb574da939a..56657694f80 100644
    --- a/htdocs/don/stats/index.php
    +++ b/htdocs/don/stats/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -47,9 +47,8 @@ $year = GETPOST('year')>0?GETPOST('year'):$nowyear;
     $startyear=$year-1;
     $endyear=$year;
     
    -$langs->load("sendings");
    -$langs->load("other");
    -$langs->load("companies");
    +// Load translation files required by the page
    +$langs->loadLangs(array("companies","other","sendings"));
     
     
     /*
    @@ -238,17 +237,17 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     	print '<table class="border" width="100%">';
     	print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
     	// Company
    -	print '<tr><td align="left">'.$langs->trans("ThirdParty").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("ThirdParty").'</td><td class="left">';
     	if ($mode == 'customer') $filter='s.client in (1,2,3)';
     	if ($mode == 'supplier') $filter='s.fournisseur = 1';
     	print $form->select_company($socid,'socid',$filter,1,0,0,array(),0,'','style="width: 95%"');
     	print '</td></tr>';
     	// User
    -	print '<tr><td align="left">'.$langs->trans("CreatedBy").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("CreatedBy").'</td><td class="left">';
     	print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
     	print '</td></tr>';
     	// Year
    -	print '<tr><td align="left">'.$langs->trans("Year").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("Year").'</td><td class="left">';
     	if (! in_array($year,$arrayyears)) $arrayyears[$year]=$year;
     	if (! in_array($nowyear,$arrayyears)) $arrayyears[$nowyear]=$nowyear;
     	arsort($arrayyears);
    @@ -260,6 +259,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     	print '<br><br>';
     //}
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="border" width="100%">';
     print '<tr height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
    @@ -294,6 +294,7 @@ foreach ($data as $val)
     }
     
     print '</table>';
    +print '</div>';
     
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
    diff --git a/htdocs/don/tpl/linkedobjectblock.tpl.php b/htdocs/don/tpl/linkedobjectblock.tpl.php
    index d7ad6587845..f2d3178fc79 100644
    --- a/htdocs/don/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/don/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2013		Juanjo Menent <jmenent@2byte.es>
      * Copyright (C) 2014       Marcos García <marcosgdf@gmail.com>
      * Copyright (C) 2017       Charlene Benke <cf.benke@patas-monkey.com>
    @@ -36,7 +36,7 @@ $total=0; $ilink=0;
     foreach($linkedObjectBlock as $key => $objectlink)
     {
         $ilink++;
    -    
    +
         $trclass='oddeven';
         if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass.=' liste_sub_total';
     ?>
    @@ -66,7 +66,7 @@ if (count($linkedObjectBlock) > 1)
         	<td align="right"></td>
         	<td align="right"></td>
         </tr>
    -    <?php  
    +    <?php
     }
     ?>
     
    diff --git a/htdocs/ecm/ajax/ecmdatabase.php b/htdocs/ecm/ajax/ecmdatabase.php
    index 666c6df9217..9c4b9ffa952 100644
    --- a/htdocs/ecm/ajax/ecmdatabase.php
    +++ b/htdocs/ecm/ajax/ecmdatabase.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012	Regis Houssin	<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012	Regis Houssin	<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/ecm/class/ecmdirectory.class.php b/htdocs/ecm/class/ecmdirectory.class.php
    index a3669f909e9..3d1ecac9088 100644
    --- a/htdocs/ecm/class/ecmdirectory.class.php
    +++ b/htdocs/ecm/class/ecmdirectory.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -27,32 +27,77 @@
      */
     class EcmDirectory // extends CommonObject
     {
    -	public $element='ecm_directories';			//!< Id that identify managed objects
    -	//public $table_element='ecm_directories';	//!< Name of table without prefix where object is stored
    -	var $picto = 'dir';
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='ecm_directories';
     
    -	var $id;
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	//public $table_element='ecm_directories';
     
    -	var $label;
    -	var $fk_parent;
    -	var $description;
    -	var $cachenbofdoc=-1;	// By default cache initialized with value 'not calculated'
    -	var $date_c;
    -	var $date_m;
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto = 'dir';
    +
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +	/**
    +     * @var string ECM directories label
    +     */
    +    public $label;
    +
    +    /**
    +     * @var int ID
    +     */
    +	public $fk_parent;
    +
    +	/**
    +	 * @var string description
    +	 */
    +	public $description;
    +
    +	public $cachenbofdoc=-1;	// By default cache initialized with value 'not calculated'
    +	public $date_c;
    +	public $date_m;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_m;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_c;
    +
    +	/**
    +	 * @var string Ref
    +	 */
     	public $ref;
     
    -	var $cats=array();
    -	var $motherof=array();
    +	public $cats=array();
    +	public $motherof=array();
     
    -	var $forbiddenchars = array('<','>',':','/','\\','?','*','|','"');
    -	var $forbiddencharsdir = array('<','>',':','?','*','|','"');
    +	public $forbiddenchars = array('<','>',':','/','\\','?','*','|','"');
    +	public $forbiddencharsdir = array('<','>',':','?','*','|','"');
     
     	public $full_arbo_loaded;
     
    +	/**
    +	 * @var string Error code (or message)
    +	 */
     	public $error;
    -	public $errors;
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
     
     
     	/**
    @@ -490,6 +535,7 @@ class EcmDirectory // extends CommonObject
     		return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Load this->motherof that is array(id_son=>id_parent, ...)
     	 *
    @@ -497,6 +543,7 @@ class EcmDirectory // extends CommonObject
     	 */
     	function load_motherof()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$this->motherof=array();
    @@ -537,6 +584,7 @@ class EcmDirectory // extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return the status
     	 *
    @@ -546,11 +594,13 @@ class EcmDirectory // extends CommonObject
     	 */
     	static function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		return '';
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Reconstruit l'arborescence des categories sous la forme d'un tableau à partir de la base de donnée
     	 *	Renvoi un tableau de tableau('id','id_mere',...) trie selon arbre et avec:
    @@ -572,6 +622,7 @@ class EcmDirectory // extends CommonObject
     	 */
     	function get_full_arbo($force=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if (empty($force) && ! empty($this->full_arbo_loaded))
    @@ -629,7 +680,6 @@ class EcmDirectory // extends CommonObject
     					}
     				}
     				$i++;
    -
     			}
     		}
     		else
    @@ -651,6 +701,7 @@ class EcmDirectory // extends CommonObject
     		return $this->cats;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define properties fullpath, fullrelativename, fulllabel of a directory of array this->cats and all its childs.
     	 *  Separator between directories is always '/', whatever is OS.
    @@ -661,6 +712,7 @@ class EcmDirectory // extends CommonObject
     	 */
     	function build_path_from_id_categ($id_categ,$protection=0)
     	{
    +        // phpcs:enable
     		// Define fullpath
     		if (! empty($this->cats[$id_categ]['id_mere']))
     		{
    @@ -735,6 +787,7 @@ class EcmDirectory // extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          * Call trigger based on this instance
          *
    @@ -748,6 +801,7 @@ class EcmDirectory // extends CommonObject
          */
         function call_trigger($trigger_name, $user)
         {
    +        // phpcs:enable
             global $langs,$conf;
     
             include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    @@ -764,8 +818,5 @@ class EcmDirectory // extends CommonObject
                 }
             }
             return $result;
    -
         }
    -
    -
     }
    diff --git a/htdocs/ecm/class/ecmfiles.class.php b/htdocs/ecm/class/ecmfiles.class.php
    index df76bac3e9b..efc5af1310c 100644
    --- a/htdocs/ecm/class/ecmfiles.class.php
    +++ b/htdocs/ecm/class/ecmfiles.class.php
    @@ -40,22 +40,44 @@ class EcmFiles extends CommonObject
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'ecmfiles';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'ecm_files';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'generic';
     
     	/**
    +	 * @var string Ref hash of file path
     	 */
    -	public $ref;					// hash of file path
    -	public $label;					// hash of file content (md5_file(dol_osencode($destfull))
    +	public $ref;
    +
    +	/**
    +	 * hash of file content (md5_file(dol_osencode($destfull))
    +     * @var string Ecm Files label
    +     */
    +    public $label;
    +
     	public $share;					// hash for file sharing, empty by default (example: getRandomPassword(true))
    +
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
    +
     	public $filename;
     	public $filepath;
     	public $fullpath_orig;
    +
    +	/**
    +	 * @var string description
    +	 */
     	public $description;
    +
     	public $keywords;
     	public $cover;
     	public $position;
    @@ -63,15 +85,21 @@ class EcmFiles extends CommonObject
     	public $extraparams;
     	public $date_c = '';
     	public $date_m = '';
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_c;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_m;
    +
     	public $acl;
     	public $src_object_type;
     	public $src_object_id;
     
    -	/**
    -	 */
    -
     
     	/**
     	 * Constructor
    @@ -152,8 +180,15 @@ class EcmFiles extends CommonObject
     		if (empty($this->date_m)) $this->date_m = dol_now();
     
     		// If ref not defined
    -		$ref = dol_hash($this->filepath.'/'.$this->filename, 3);
    -		if (! empty($this->ref)) $ref=$this->ref;
    +		$ref = '';
    +		if (! empty($this->ref))
    +		{
    +			$ref=$this->ref;
    +		}
    +		else {
    +			include_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php';
    +			$ref = dol_hash($this->filepath.'/'.$this->filename, 3);
    +		}
     
     		$maxposition=0;
     		if (empty($this->position))   // Get max used
    @@ -342,7 +377,7 @@ class EcmFiles extends CommonObject
     		else {
     			$sql .= ' AND t.rowid = '.$this->db->escape($id);					// rowid already unique
     		}
    -		
    +
     		$this->db->plimit(1);	// When we search on src or on hash of content (hashforfile) to solve hash conflict when several files has same content, we take first one only
     		$this->db->order('t.rowid', 'ASC');
     
    @@ -697,6 +732,7 @@ class EcmFiles extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result = $object->create($user);
     
     		// Other options
    @@ -706,6 +742,8 @@ class EcmFiles extends CommonObject
     			dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR);
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (!$error) {
     			$this->db->commit();
    @@ -782,6 +820,7 @@ class EcmFiles extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return the status
     	 *
    @@ -791,6 +830,7 @@ class EcmFiles extends CommonObject
     	 */
     	static function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		return '';
     	}
    @@ -832,12 +872,25 @@ class EcmFiles extends CommonObject
     
     class EcmfilesLine
     {
    -	public $label;
    +	/**
    +     * @var string ECM files line label
    +     */
    +    public $label;
    +
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
    +
     	public $filename;
     	public $filepath;
     	public $fullpath_orig;
    +
    +	/**
    +	 * @var string description
    +	 */
     	public $description;
    +
     	public $keywords;
     	public $cover;
     	public $position;
    @@ -845,8 +898,17 @@ class EcmfilesLine
     	public $extraparams;
     	public $date_c = '';
     	public $date_m = '';
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_c;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_m;
    +
     	public $acl;
     	public $src_object_type;
     	public $src_object_id;
    diff --git a/htdocs/ecm/class/htmlecm.form.class.php b/htdocs/ecm/class/htmlecm.form.class.php
    index 3139c5f9986..b6000cad923 100644
    --- a/htdocs/ecm/class/htmlecm.form.class.php
    +++ b/htdocs/ecm/class/htmlecm.form.class.php
    @@ -27,8 +27,15 @@ require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php';
      */
     class FormEcm
     {
    -	var $db;
    -	var $error;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +	
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
     	/**
    diff --git a/htdocs/ecm/dir_add_card.php b/htdocs/ecm/dir_add_card.php
    index 5dab56b29a0..c8e8d79046b 100644
    --- a/htdocs/ecm/dir_add_card.php
    +++ b/htdocs/ecm/dir_add_card.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2017	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2015-2016	Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -290,7 +290,6 @@ if (empty($action) || $action == 'delete_section')
     	if ($action == 'delete_section')
     	{
     		print $form->formconfirm($_SERVER["PHP_SELF"].'?section='.$section, $langs->trans('DeleteSection'), $langs->trans('ConfirmDeleteSection',$ecmdir->label), 'confirm_deletesection');
    -
     	}
     
     	// Construit fiche  rubrique
    @@ -304,7 +303,7 @@ if (empty($action) || $action == 'delete_section')
     	}
     	else
     	{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans('Delete').'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans('Delete').'</a>';
     	}
     	print '</div>';
     }
    diff --git a/htdocs/ecm/dir_card.php b/htdocs/ecm/dir_card.php
    index 982fa045d32..ac744cc42e1 100644
    --- a/htdocs/ecm/dir_card.php
    +++ b/htdocs/ecm/dir_card.php
    @@ -271,7 +271,6 @@ if ($action == 'update' && ! GETPOST('cancel','alpha'))
         		$upload_dir = $conf->medias->multidir_output[$conf->entity].'/'.$relativepath;
         		$section = $relativepath;
         	}
    -
         }
     }
     
    @@ -479,7 +478,7 @@ if ($action != 'edit' && $action != 'delete')
     	}
     	else
     	{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans('ECMAddSection').'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans('ECMAddSection').'</a>';
     	}
     
     	//if (count($filearrayall) == 0)
    @@ -496,9 +495,9 @@ if ($action != 'edit' && $action != 'delete')
     	else
     	{
     		if (count($filearray) > 0)
    -			print '<a class="butActionRefused" href="#" title="'.$langs->trans("CannotRemoveDirectoryContainsFiles").'">'.$langs->trans('Delete').'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("CannotRemoveDirectoryContainsFiles").'">'.$langs->trans('Delete').'</a>';
     		else
    -			print '<a class="butActionRefused" href="#" title="'.$langs->trans("CannotRemoveDirectoryContainsFilesOrDirs").'">'.$langs->trans('Delete').'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("CannotRemoveDirectoryContainsFilesOrDirs").'">'.$langs->trans('Delete').'</a>';
     	}*/
     	print '</div>';
     }
    diff --git a/htdocs/ecm/file_card.php b/htdocs/ecm/file_card.php
    index b1b45141f4f..2415e8a1a9b 100644
    --- a/htdocs/ecm/file_card.php
    +++ b/htdocs/ecm/file_card.php
    @@ -390,7 +390,6 @@ if ($action == 'edit')
     if ($action == 'delete_file')
     {
         print $form->formconfirm($_SERVER["PHP_SELF"].'?section='.urlencode($section), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile',$urlfile), 'confirm_deletefile', '', 1, 1);
    -
     }
     
     if ($action != 'edit')
    @@ -411,7 +410,7 @@ if ($action != 'edit')
     	}
     	else
     	{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans('Delete').'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans('Delete').'</a>';
     	}
     */
     	print '</div>';
    diff --git a/htdocs/ecm/index.php b/htdocs/ecm/index.php
    index ae11ebbd479..86eec8aa09a 100644
    --- a/htdocs/ecm/index.php
    +++ b/htdocs/ecm/index.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -77,6 +77,10 @@ $error=0;
      *	Actions
      */
     
    +// TODO Replace sendit and confirm_deletefile with
    +//$backtopage=$_SERVER["PHP_SELF"].'?file_manager=1&website='.$websitekey.'&pageid='.$pageid;	// used after a confirm_deletefile into actions_linkedfiles.inc.php
    +//include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
    +
     // Upload file (code similar but different than actions_linkedfiles.inc.php)
     if (GETPOST("sendit",'none') && ! empty($conf->global->MAIN_UPLOAD_DOC))
     {
    @@ -105,7 +109,8 @@ if (GETPOST("sendit",'none') && ! empty($conf->global->MAIN_UPLOAD_DOC))
     
     	if (! $error)
     	{
    -	    $res = dol_add_file_process($upload_dir, 0, 1, 'userfile', '', '', '', 0);
    +		$generatethumbs = 0;
    +		$res = dol_add_file_process($upload_dir, 0, 1, 'userfile', '', null, '', $generatethumbs);
     	    if ($res > 0)
     	    {
     	       $result=$ecmdir->changeNbOfFiles('+');
    @@ -113,6 +118,33 @@ if (GETPOST("sendit",'none') && ! empty($conf->global->MAIN_UPLOAD_DOC))
     	}
     }
     
    +// Remove file (code similar but different than actions_linkedfiles.inc.php)
    +if ($action == 'confirm_deletefile')
    +{
    +	if (GETPOST('confirm') == 'yes')
    +	{
    +		// GETPOST('urlfile','alpha') is full relative URL from ecm root dir. Contains path of all sections.
    +		//var_dump(GETPOST('urlfile'));exit;
    +
    +		$upload_dir = $conf->ecm->dir_output.($relativepath?'/'.$relativepath:'');
    +		$file = $upload_dir . "/" . GETPOST('urlfile','alpha');
    +
    +		$ret=dol_delete_file($file);	// This include also the delete from file index in database.
    +		if ($ret)
    +		{
    +			setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile','alpha')), null, 'mesgs');
    +			$result=$ecmdir->changeNbOfFiles('-');
    +		}
    +		else
    +		{
    +			setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile','alpha')), null, 'errors');
    +		}
    +
    +		clearstatcache();
    +	}
    +	$action='file_manager';
    +}
    +
     // Add directory
     if ($action == 'add' && $user->rights->ecm->setup)
     {
    @@ -135,33 +167,6 @@ if ($action == 'add' && $user->rights->ecm->setup)
     	clearstatcache();
     }
     
    -// Remove file (code similar but different than actions_linkedfiles.inc.php)
    -if ($action == 'confirm_deletefile')
    -{
    -    if (GETPOST('confirm') == 'yes')
    -    {
    -    	// GETPOST('urlfile','alpha') is full relative URL from ecm root dir. Contains path of all sections.
    -		//var_dump(GETPOST('urlfile'));exit;
    -
    -    	$upload_dir = $conf->ecm->dir_output.($relativepath?'/'.$relativepath:'');
    -    	$file = $upload_dir . "/" . GETPOST('urlfile','alpha');	// Do not use urldecode here ($_GET and $_POST are already decoded by PHP).
    -
    -    	$ret=dol_delete_file($file);	// This include also the delete from file index in database.
    -    	if ($ret)
    -    	{
    -    		setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile','alpha')), null, 'mesgs');
    -    		$result=$ecmdir->changeNbOfFiles('-');
    -    	}
    -    	else
    -    	{
    -    		setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile','alpha')), null, 'errors');
    -    	}
    -
    -    	clearstatcache();
    -    }
    -   	$action='file_manager';
    -}
    -
     // Remove directory
     if ($action == 'confirm_deletesection' && GETPOST('confirm') == 'yes')
     {
    diff --git a/htdocs/ecm/index_auto.php b/htdocs/ecm/index_auto.php
    index a148e8b6178..a3390475f44 100644
    --- a/htdocs/ecm/index_auto.php
    +++ b/htdocs/ecm/index_auto.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016      Alexandre Spangaro   <aspangaro@zendsi.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -344,7 +344,6 @@ dol_fiche_head($head, 'index_auto', $langs->trans("ECMArea").' - '.$langs->trans
     if ($action == 'delete' && empty($conf->use_javascript_ajax))
     {
     	print $form->formconfirm($_SERVER["PHP_SELF"].'?section='.$section.'&urlfile='.urlencode($_GET["urlfile"]), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile','','',1);
    -
     }
     
     // Start container of all panels
    diff --git a/htdocs/ecm/search.php b/htdocs/ecm/search.php
    index bbf4fbbec1c..1b9a6bcb8d7 100644
    --- a/htdocs/ecm/search.php
    +++ b/htdocs/ecm/search.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/ecm/tpl/enablefiletreeajax.tpl.php b/htdocs/ecm/tpl/enablefiletreeajax.tpl.php
    index 0a51e8cc73d..9d72ddd4383 100644
    --- a/htdocs/ecm/tpl/enablefiletreeajax.tpl.php
    +++ b/htdocs/ecm/tpl/enablefiletreeajax.tpl.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2012	Regis Houssin	<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012	Regis Houssin			<regis.houssin@inodbox.com>
    + * Copyright (C) 2018	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
    @@ -27,7 +28,7 @@ if (empty($conf) || ! is_object($conf))
     ?>
     
     <!-- BEGIN PHP TEMPLATE ecm/tpl/enablefiletreeajax.tpl.php -->
    -<!-- Doc of fileTree plugin at http://www.abeautifulsite.net/blog/2008/03/jquery-file-tree/ -->
    +<!-- Doc of fileTree plugin at https://www.abeautifulsite.net/jquery-file-tree -->
     
     <script type="text/javascript">
     
    @@ -35,7 +36,9 @@ if (empty($conf) || ! is_object($conf))
     if (empty($module)) $module='ecm';
     $paramwithoutsection=preg_replace('/&?section=(\d+)/', '', $param);
     
    -$openeddir='/';
    +$openeddir='/';		// The root directory shown
    +// $preopened		// The dir to have preopened
    +
     ?>
     
     $(document).ready(function() {
    @@ -43,7 +46,8 @@ $(document).ready(function() {
     	$('#filetree').fileTree({
     		root: '<?php print dol_escape_js($openeddir); ?>',
     		// Ajax called if we click to expand a dir (not a file). Parameter 'dir' is provided as a POST parameter by fileTree code to this following URL.
    -		script: '<?php echo DOL_URL_ROOT.'/core/ajax/ajaxdirtree.php?modulepart='.$module.'&openeddir='.urlencode($openeddir).(empty($paramwithoutsection)?'':$paramwithoutsection); ?>',
    +		// We must use token=$_SESSION['token'] and not token=$_SESSION['newtoken'] here because ajaxdirtree has NOTOKENRENEWAL define so there is no rollup of token so we must compare with the one valid on main page
    +		script: '<?php echo DOL_URL_ROOT.'/core/ajax/ajaxdirtree.php?token='.urlencode($_SESSION['token']).'&modulepart='.urlencode($module).(empty($preopened)?'':'&preopened='.urlencode($preopened)).'&openeddir='.urlencode($openeddir).(empty($paramwithoutsection)?'':$paramwithoutsection); ?>',
     		folderEvent: 'click',	// 'dblclick'
     		multiFolder: false  },
     		// Called if we click on a file (not a dir)
    @@ -87,7 +91,7 @@ function loadandshowpreview(filedirname,section)
     {
     	//alert('filedirname='+filedirname);
     	//console.log(filedirname);
    -	//console.log(section);
    +	//console.log('loadandshowpreview for section='+section);
     
     	$('#ecmfileview').empty();
     
    diff --git a/htdocs/emailcollector/README.md b/htdocs/emailcollector/README.md
    new file mode 100644
    index 00000000000..4c307183f19
    --- /dev/null
    +++ b/htdocs/emailcollector/README.md
    @@ -0,0 +1,6 @@
    +EMailCollector
    +==============
    +
    +This module provides a sheduled job that scan regularly one or several IMAP email boxes, with filtering rules, to automatically record data in your application, like
    +* recording the email in the history of events (event is automatically linked to its related objects if possible, for example when a customer reply to an email sent from the application, the answer is automatically linked to the good objects)
    +* and/or creating a lead
    diff --git a/htdocs/emailcollector/class/emailcollector.class.php b/htdocs/emailcollector/class/emailcollector.class.php
    new file mode 100644
    index 00000000000..e00adfad724
    --- /dev/null
    +++ b/htdocs/emailcollector/class/emailcollector.class.php
    @@ -0,0 +1,1547 @@
    +<?php
    +/* Copyright (C) 2017  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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file        emailcollector/class/emailcollector.class.php
    + * \ingroup     emailcollector
    + * \brief       This file is a CRUD class file for EmailCollector (Create/Read/Update/Delete)
    + */
    +
    +// Put here all includes required by your class file
    +require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php';
    +
    +
    +/**
    + * Class for EmailCollector
    + */
    +class EmailCollector extends CommonObject
    +{
    +    /**
    +     * @var string ID to identify managed object
    +     */
    +    public $element = 'emailcollector';
    +    /**
    +     * @var string Name of table without prefix where object is stored
    +     */
    +    public $table_element = 'emailcollector_emailcollector';
    +    /**
    +     * @var int  Does emailcollector support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +     */
    +    public $ismultientitymanaged = 1;
    +    /**
    +     * @var int  Does emailcollector support extrafields ? 0=No, 1=Yes
    +     */
    +    public $isextrafieldmanaged = 0;
    +    /**
    +     * @var string String with name of icon for emailcollector. Must be the part after the 'object_' into object_emailcollector.png
    +     */
    +    public $picto = 'generic';
    +
    +    /**
    +     * @var int    Field with ID of parent key if this field has a parent
    +     */
    +    public $fk_element = 'fk_emailcollector';
    +
    +    /**
    +     * @var array  Array of child tables (child tables to delete before deleting a record)
    +     */
    +    protected $childtables=array('emailcollector_emailcollectorfilter', 'emailcollector_emailcollectoraction');
    +
    +
    +    /**
    +     *  'type' if the field format.
    +     *  'label' the translation key.
    +     *  'enabled' is a condition when the field must be managed.
    +     *  'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only. Using a negative value means field is not shown by default on list but can be selected for viewing)
    +     *  'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0).
    +     *  'default' is a default value for creation (can still be replaced by the global setup of default values)
    +     *  'index' if we want an index in database.
    +     *  'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...).
    +     *  'position' is the sort order of field.
    +     *  'searchall' is 1 if we want to search in this field when making a search from the quick search button.
    +     *  'isameasure' must be set to 1 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8).
    +     *  'css' is the CSS style to use on field. For example: 'maxwidth200'
    +     *  'help' is a string visible as a tooltip on field
    +     *  'comment' is not used. You can store here any text of your choice. It is not used by application.
    +     *  'showoncombobox' if value of the field must be visible into the label of the combobox that list record
    +     *  'arraykeyval' to set list of value if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel")
    +     */
    +
    +    // BEGIN MODULEBUILDER PROPERTIES
    +    /**
    +     * @var array  Array with all fields and their property. Do not use it as a static var. It may be modified by constructor.
    +     */
    +    public $fields=array(
    +        'rowid'         => array('type'=>'integer', 'label'=>'TechnicalID','visible'=>2, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1),
    +        'entity'        =>array('type'=>'integer',      'label'=>'Entity',           'enabled'=>1, 'visible'=>0,  'default'=>1, 'notnull'=>1,  'index'=>1, 'position'=>20),
    +        'ref'           =>array('type'=>'varchar(128)', 'label'=>'Ref',              'enabled'=>1, 'visible'=>1,  'notnull'=>1,  'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'help'=>'Example: MyCollector1'),
    +        'label'         => array('type'=>'varchar(255)', 'label'=>'Label', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'notnull'=>-1, 'searchall'=>1, 'help'=>'Example: My Email collector'),
    +        'description'   => array('type'=>'text', 'label'=>'Description', 'visible'=>-1, 'enabled'=>1, 'position'=>60, 'notnull'=>-1),
    +        'host'          => array('type'=>'varchar(255)', 'label'=>'EMailHost', 'visible'=>1, 'enabled'=>1, 'position'=>100, 'notnull'=>1, 'searchall'=>1, 'comment'=>"IMAP server", 'help'=>'Example: imap.gmail.com'),
    +        'login'         => array('type'=>'varchar(128)', 'label'=>'Login', 'visible'=>1, 'enabled'=>1, 'position'=>101, 'notnull'=>-1, 'index'=>1, 'comment'=>"IMAP login", 'help'=>'Example: myaccount@gmail.com'),
    +        'password'      => array('type'=>'password', 'label'=>'Password', 'visible'=>-1, 'enabled'=>1, 'position'=>102, 'notnull'=>-1, 'comment'=>"IMAP password"),
    +        'source_directory' => array('type'=>'varchar(255)', 'label'=>'MailboxSourceDirectory', 'visible'=>-1, 'enabled'=>1, 'position'=>103, 'notnull'=>1, 'default' => 'Inbox', 'help'=>'Example: INBOX'),
    +        //'filter'		=> array('type'=>'text', 'label'=>'Filter', 'visible'=>1, 'enabled'=>1, 'position'=>105),
    +        //'actiontodo'	=> array('type'=>'varchar(255)', 'label'=>'ActionToDo', 'visible'=>1, 'enabled'=>1, 'position'=>106),
    +        'target_directory' => array('type'=>'varchar(255)', 'label'=>'MailboxTargetDirectory', 'visible'=>1, 'enabled'=>1, 'position'=>110, 'notnull'=>0, 'comment'=>"Where to store messages once processed"),
    +        'datelastresult' => array('type'=>'datetime', 'label'=>'DateLastResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>121, 'notnull'=>-1,),
    +        'codelastresult' => array('type'=>'varchar(16)', 'label'=>'CodeLastResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>122, 'notnull'=>-1,),
    +        'lastresult'    => array('type'=>'varchar(255)', 'label'=>'LastResult', 'visible'=>1, 'enabled'=>'$action != "create" && $action != "edit"', 'position'=>123, 'notnull'=>-1,),
    +        'note_public'   => array('type'=>'html', 'label'=>'NotePublic', 'visible'=>0, 'enabled'=>1, 'position'=>61, 'notnull'=>-1,),
    +        'note_private'  => array('type'=>'html', 'label'=>'NotePrivate', 'visible'=>0, 'enabled'=>1, 'position'=>62, 'notnull'=>-1,),
    +        'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'visible'=>-2, 'enabled'=>1, 'position'=>500, 'notnull'=>1,),
    +        'tms'           => array('type'=>'timestamp', 'label'=>'DateModification', 'visible'=>-2, 'enabled'=>1, 'position'=>501, 'notnull'=>1,),
    +        //'date_validation'    =>array('type'=>'datetime',     'label'=>'DateCreation',     'enabled'=>1, 'visible'=>-2, 'position'=>502),
    +    'fk_user_creat' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'visible'=>-2, 'enabled'=>1, 'position'=>510, 'notnull'=>1,),
    +    'fk_user_modif' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'visible'=>-2, 'enabled'=>1, 'position'=>511, 'notnull'=>-1,),
    +    //'fk_user_valid' =>array('type'=>'integer',      'label'=>'UserValidation',        'enabled'=>1, 'visible'=>-1, 'position'=>512),
    +    'import_key'    => array('type'=>'varchar(14)', 'label'=>'ImportId', 'visible'=>-2, 'enabled'=>1, 'position'=>1000, 'notnull'=>-1,),
    +    'status'        => array('type'=>'integer', 'label'=>'Status', 'visible'=>1, 'enabled'=>1, 'position'=>1000, 'notnull'=>1, 'index'=>1, 'arrayofkeyval'=>array('0'=>'Inactive', '1'=>'Active'))
    +    );
    +
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $rowid;
    +
    +    /**
    +     * @var string Ref
    +     */
    +    public $ref;
    +
    +    /**
    +     * @var int Entity
    +     */
    +    public $entity;
    +
    +    /**
    +     * @var string label
    +     */
    +    public $label;
    +
    +
    +    /**
    +     * @var int Status
    +     */
    +    public $status;
    +
    +    public $date_creation;
    +    public $tms;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_user_creat;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_user_modif;
    +
    +    public $import_key;
    +
    +
    +    public $host;
    +    public $login;
    +    public $password;
    +    public $source_directory;
    +    public $target_directory;
    +    public $datelastresult;
    +    public $lastresult;
    +    // END MODULEBUILDER PROPERTIES
    +
    +    public $filters;
    +    public $actions;
    +
    +
    +    /**
    +     * Constructor
    +     *
    +     * @param DoliDb $db Database handler
    +     */
    +    public function __construct(DoliDB $db)
    +    {
    +        global $conf, $langs, $user;
    +
    +        $this->db = $db;
    +
    +        if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) $this->fields['rowid']['visible']=0;
    +        if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) $this->fields['entity']['enabled']=0;
    +
    +        // Unset fields that are disabled
    +        foreach($this->fields as $key => $val)
    +        {
    +            if (isset($val['enabled']) && empty($val['enabled']))
    +            {
    +                unset($this->fields[$key]);
    +            }
    +        }
    +
    +        // Translate some data of arrayofkeyval
    +        foreach($this->fields as $key => $val)
    +        {
    +            if (is_array($this->fields['status']['arrayofkeyval']))
    +            {
    +                foreach($this->fields['status']['arrayofkeyval'] as $key2 => $val2)
    +                {
    +                    $this->fields['status']['arrayofkeyval'][$key2]=$langs->trans($val2);
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Create object into database
    +     *
    +     * @param  User $user      User that creates
    +     * @param  bool $notrigger false=launch triggers after, true=disable triggers
    +     * @return int             <0 if KO, Id of created object if OK
    +     */
    +    public function create(User $user, $notrigger = false)
    +    {
    +        return $this->createCommon($user, $notrigger);
    +    }
    +
    +    /**
    +     * Clone and object into another one
    +     *
    +     * @param  	User 	$user      	User that creates
    +     * @param  	int 	$fromid     Id of object to clone
    +     * @return 	mixed 				New object created, <0 if KO
    +     */
    +    public function createFromClone(User $user, $fromid)
    +    {
    +        global $langs, $hookmanager, $extrafields;
    +        $error = 0;
    +
    +        dol_syslog(__METHOD__, LOG_DEBUG);
    +
    +        $object = new self($this->db);
    +
    +        $this->db->begin();
    +
    +        // Load source object
    +        $object->fetchCommon($fromid);
    +        // Reset some properties
    +        unset($object->id);
    +        unset($object->fk_user_creat);
    +        unset($object->import_key);
    +
    +        // Clear fields
    +        $object->ref = "copy_of_".$object->ref;
    +        $object->title = $langs->trans("CopyOf")." ".$object->title;
    +        // ...
    +        // Clear extrafields that are unique
    +        if (is_array($object->array_options) && count($object->array_options) > 0)
    +        {
    +            $extrafields->fetch_name_optionals_label($this->element);
    +            foreach($object->array_options as $key => $option)
    +            {
    +                $shortkey = preg_replace('/options_/', '', $key);
    +                if (! empty($extrafields->attributes[$this->element]['unique'][$shortkey]))
    +                {
    +                    //var_dump($key); var_dump($clonedObj->array_options[$key]); exit;
    +                    unset($object->array_options[$key]);
    +                }
    +            }
    +        }
    +
    +        // Create clone
    +        $object->context['createfromclone'] = 'createfromclone';
    +        $result = $object->createCommon($user);
    +        if ($result < 0) {
    +            $error++;
    +            $this->error = $object->error;
    +            $this->errors = $object->errors;
    +        }
    +
    +        unset($object->context['createfromclone']);
    +
    +        // End
    +        if (!$error) {
    +            $this->db->commit();
    +            return $object;
    +        } else {
    +            $this->db->rollback();
    +            return -1;
    +        }
    +    }
    +
    +    /**
    +     * Load object in memory from the database
    +     *
    +     * @param int    $id   Id object
    +     * @param string $ref  Ref
    +     * @return int         <0 if KO, 0 if not found, >0 if OK
    +     */
    +    public function fetch($id, $ref = null)
    +    {
    +        $result = $this->fetchCommon($id, $ref);
    +        //if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines();
    +        return $result;
    +    }
    +
    +    /**
    +     * Load object lines in memory from the database
    +     *
    +     * @return int         <0 if KO, 0 if not found, >0 if OK
    +     */
    +    /*public function fetchLines()
    +     {
    +     $this->lines=array();
    +
    +     // Load lines with object EmailCollectorLine
    +
    +     return count($this->lines)?1:0;
    +     }*/
    +
    +    /**
    +     * Fetch all account and load objects into an array
    +     *
    +     * @param   User    $user           User
    +     * @param   int     $activeOnly     filter if active
    +     * @param   string  $sortfield      field for sorting
    +     * @param   string  $sortorder      sorting order
    +     * @param   int     $limit          sort limit
    +     * @param   int     $page           page to start on
    +     * @return  array   Array with key => EmailCollector object
    +     */
    +    public function fetchAll(User $user, $activeOnly = 0, $sortfield = 's.rowid', $sortorder = 'ASC', $limit = 100, $page = 0)
    +    {
    +        global $langs;
    +
    +        $obj_ret = array();
    +
    +        $socid = $user->societe_id ? $user->societe_id : '';
    +
    +        $sql = "SELECT s.rowid";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."emailcollector_emailcollector as s";
    +        $sql.= ' WHERE s.entity IN ('.getEntity('emailcollector').')';
    +        if ($activeOnly) {
    +            $sql.= " AND s.status = 1";
    +        }
    +        $sql.= $this->db->order($sortfield, $sortorder);
    +        if ($limit) {
    +            if ($page < 0) {
    +                $page = 0;
    +            }
    +            $offset = $limit * $page;
    +
    +            $sql.= $this->db->plimit($limit + 1, $offset);
    +        }
    +
    +        $result = $this->db->query($sql);
    +        if ($result) {
    +            $num = $this->db->num_rows($result);
    +            while ($i < $num)
    +            {
    +                $obj = $this->db->fetch_object($result);
    +                $emailcollector_static = new EmailCollector($this->db);
    +                if ($emailcollector_static->fetch($obj->rowid)) {
    +                    $obj_ret[] = $emailcollector_static;
    +                }
    +                $i++;
    +            }
    +        } else {
    +            $this->errors[] = 'EmailCollector::fetchAll Error when retrieve emailcollector list';
    +            dol_syslog('EmailCollector::fetchAll Error when retrieve emailcollector list', LOG_ERR);
    +            $ret = -1;
    +        }
    +        if (! count($obj_ret)) {
    +            dol_syslog('EmailCollector::fetchAll No emailcollector found', LOG_DEBUG);
    +        }
    +
    +        return $obj_ret;
    +    }
    +
    +    /**
    +     * Update object into database
    +     *
    +     * @param  User $user      User that modifies
    +     * @param  bool $notrigger false=launch triggers after, true=disable triggers
    +     * @return int             <0 if KO, >0 if OK
    +     */
    +    public function update(User $user, $notrigger = false)
    +    {
    +        return $this->updateCommon($user, $notrigger);
    +    }
    +
    +    /**
    +     * Delete object in database
    +     *
    +     * @param User $user       User that deletes
    +     * @param bool $notrigger  false=launch triggers after, true=disable triggers
    +     * @return int             <0 if KO, >0 if OK
    +     */
    +    public function delete(User $user, $notrigger = false)
    +    {
    +        return $this->deleteCommon($user, $notrigger, 1);
    +    }
    +
    +    /**
    +     *  Return a link to the object card (with optionaly the picto)
    +     *
    +     *	@param	int		$withpicto					Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto)
    +     *	@param	string	$option						On what the link point to ('nolink', ...)
    +     *  @param	int  	$notooltip					1=Disable tooltip
    +     *  @param  string  $morecss            		Add more css on link
    +     *  @param  int     $save_lastsearch_value    	-1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    +     *	@return	string								String with URL
    +     */
    +    function getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1)
    +    {
    +        global $db, $conf, $langs, $hookmanager;
    +        global $dolibarr_main_authentication, $dolibarr_main_demo;
    +        global $menumanager;
    +
    +        if (! empty($conf->dol_no_mouse_hover)) $notooltip=1;   // Force disable tooltips
    +
    +        $result = '';
    +        $companylink = '';
    +
    +        $label = '<u>' . $langs->trans("EmailCollector") . '</u>';
    +        $label.= '<br>';
    +        $label.= '<b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
    +
    +        $url = dol_buildpath('/admin/emailcollector_card.php', 1).'?id='.$this->id;
    +
    +        if ($option != 'nolink')
    +        {
    +            // Add param to save lastsearch_values or not
    +            $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    +            if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) {
    +                $add_save_lastsearch_values=1;
    +            }
    +            if ($add_save_lastsearch_values) {
    +                $url.='&save_lastsearch_values=1';
    +            }
    +        }
    +
    +        $linkclose='';
    +        if (empty($notooltip))
    +        {
    +            if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
    +            {
    +                $label=$langs->trans("ShowEmailCollector");
    +                $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    +            }
    +            $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"';
    +            $linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"';
    +
    +            /*
    +             $hookmanager->initHooks(array('myobjectdao'));
    +             $parameters=array('id'=>$this->id);
    +             $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +             if ($reshook > 0) $linkclose = $hookmanager->resPrint;
    +             */
    +        }
    +        else $linkclose = ($morecss?' class="'.$morecss.'"':'');
    +
    +        $linkstart = '<a href="'.$url.'"';
    +        $linkstart.=$linkclose.'>';
    +        $linkend='</a>';
    +
    +        $result .= $linkstart;
    +        if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
    +        if ($withpicto != 2) $result.= $this->ref;
    +        $result .= $linkend;
    +        //if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
    +
    +        global $action,$hookmanager;
    +        $hookmanager->initHooks(array('emailcollectordao'));
    +        $parameters=array('id'=>$this->id, 'getnomurl'=>$result);
    +        $reshook=$hookmanager->executeHooks('getNomUrl',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +        if ($reshook > 0) $result = $hookmanager->resPrint;
    +        else $result .= $hookmanager->resPrint;
    +
    +        return $result;
    +    }
    +
    +    /**
    +     *  Return label of the status
    +     *
    +     *  @param  int		$mode          0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
    +     *  @return	string 			       Label of status
    +     */
    +    public function getLibStatut($mode=0)
    +    {
    +        return $this->LibStatut($this->status, $mode);
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
    +    /**
    +     *  Return the status
    +     *
    +     *  @param	int		$status        Id status
    +     *  @param  int		$mode          0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
    +     *  @return string 			       Label of status
    +     */
    +    public function LibStatut($status, $mode=0)
    +    {
    +        // phpcs:enable
    +        if (empty($this->labelstatus))
    +        {
    +            global $langs;
    +            //$langs->load("mymodule");
    +            $this->labelstatus[1] = $langs->trans('Enabled');
    +            $this->labelstatus[0] = $langs->trans('Disabled');
    +        }
    +
    +        if ($mode == 0)
    +        {
    +            return $this->labelstatus[$status];
    +        }
    +        elseif ($mode == 1)
    +        {
    +            return $this->labelstatus[$status];
    +        }
    +        elseif ($mode == 2)
    +        {
    +            if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +            elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +        }
    +        elseif ($mode == 3)
    +        {
    +            if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +            elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
    +        }
    +        elseif ($mode == 4)
    +        {
    +            if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +            elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +        }
    +        elseif ($mode == 5)
    +        {
    +            if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +            elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
    +        }
    +        elseif ($mode == 6)
    +        {
    +            if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +            elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
    +        }
    +    }
    +
    +    /**
    +     *	Charge les informations d'ordre info dans l'objet commande
    +     *
    +     *	@param  int		$id       Id of order
    +     *	@return	void
    +     */
    +    public function info($id)
    +    {
    +        $sql = 'SELECT rowid, date_creation as datec, tms as datem,';
    +        $sql.= ' fk_user_creat, fk_user_modif';
    +        $sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t';
    +        $sql.= ' WHERE t.rowid = '.$id;
    +        $result=$this->db->query($sql);
    +        if ($result)
    +        {
    +            if ($this->db->num_rows($result))
    +            {
    +                $obj = $this->db->fetch_object($result);
    +                $this->id = $obj->rowid;
    +                if ($obj->fk_user_author)
    +                {
    +                    $cuser = new User($this->db);
    +                    $cuser->fetch($obj->fk_user_author);
    +                    $this->user_creation   = $cuser;
    +                }
    +
    +                if ($obj->fk_user_valid)
    +                {
    +                    $vuser = new User($this->db);
    +                    $vuser->fetch($obj->fk_user_valid);
    +                    $this->user_validation = $vuser;
    +                }
    +
    +                if ($obj->fk_user_cloture)
    +                {
    +                    $cluser = new User($this->db);
    +                    $cluser->fetch($obj->fk_user_cloture);
    +                    $this->user_cloture   = $cluser;
    +                }
    +
    +                $this->date_creation     = $this->db->jdate($obj->datec);
    +                $this->date_modification = $this->db->jdate($obj->datem);
    +                $this->date_validation   = $this->db->jdate($obj->datev);
    +            }
    +
    +            $this->db->free($result);
    +        }
    +        else
    +        {
    +            dol_print_error($this->db);
    +        }
    +    }
    +
    +    /**
    +     * Initialise object with example values
    +     * Id must be 0 if object instance is a specimen
    +     *
    +     * @return void
    +     */
    +    public function initAsSpecimen()
    +    {
    +        $this->initAsSpecimenCommon();
    +    }
    +
    +    /**
    +     * Fetch filters
    +     *
    +     * @return 	int		<0 if KO, >0 if OK
    +     */
    +    public function fetchFilters()
    +    {
    +        $this->filters = array();
    +
    +        $sql = 'SELECT rowid, type, rulevalue, status';
    +        $sql.= ' FROM '.MAIN_DB_PREFIX.'emailcollector_emailcollectorfilter';
    +        $sql.= ' WHERE fk_emailcollector = '.$this->id;
    +        //$sql.= ' ORDER BY position';
    +
    +        $resql = $this->db->query($sql);
    +        if ($resql)
    +        {
    +            $num=$this->db->num_rows($resql);
    +            $i = 0;
    +            while($i < $num)
    +            {
    +                $obj=$this->db->fetch_object($resql);
    +                $this->filters[$obj->rowid]=array('id'=>$obj->rowid, 'type'=>$obj->type, 'rulevalue'=>$obj->rulevalue, 'status'=>$obj->status);
    +                $i++;
    +            }
    +            $this->db->free($resql);
    +        }
    +        else dol_print_error($this->db);
    +
    +        return 1;
    +    }
    +
    +    /**
    +     * Fetch actions
    +     *
    +     * @return 	int		<0 if KO, >0 if OK
    +     */
    +    public function fetchActions()
    +    {
    +        $this->actions = array();
    +
    +        $sql = 'SELECT rowid, type, actionparam, status';
    +        $sql.= ' FROM '.MAIN_DB_PREFIX.'emailcollector_emailcollectoraction';
    +        $sql.= ' WHERE fk_emailcollector = '.$this->id;
    +        $sql.= ' ORDER BY position';
    +
    +        $resql = $this->db->query($sql);
    +        if ($resql)
    +        {
    +            $num=$this->db->num_rows($resql);
    +            $i = 0;
    +            while($i < $num)
    +            {
    +                $obj=$this->db->fetch_object($resql);
    +                $this->actions[$obj->rowid]=array('id'=>$obj->rowid, 'type'=>$obj->type, 'actionparam'=>$obj->actionparam, 'status'=>$obj->status);
    +                $i++;
    +            }
    +            $this->db->free($resql);
    +        }
    +        else dol_print_error($this->db);
    +    }
    +
    +
    +    /**
    +     * Return the connectstring to use with IMAP connection function
    +     *
    +     * @return string
    +     */
    +    function getConnectStringIMAP()
    +    {
    +        // Connect to IMAP
    +        $flags ='/service=imap';		// IMAP
    +        $flags.='/ssl';					// '/tls'
    +        $flags.='/novalidate-cert';
    +        //$flags.='/readonly';
    +        //$flags.='/debug';
    +
    +        $connectstringserver = '{'.$this->host.':993'.$flags.'}';
    +
    +        return $connectstringserver;
    +    }
    +
    +    /**
    +     * Action executed by scheduler
    +     * CAN BE A CRON TASK. In such a case, paramerts come from the schedule job setup field 'Parameters'
    +     *
    +     * @return	int			0 if OK, <>0 if KO (this function is used also by cron so only 0 is OK)
    +     */
    +    public function doCollect()
    +    {
    +        global $user;
    +
    +        $nberror = 0;
    +
    +        $arrayofcollectors = $this->fetchAll($user, 1);
    +
    +        // Loop on each collector
    +        foreach($arrayofcollectors as $emailcollector)
    +        {
    +            $result = $emailcollector->doCollectOneCollector();
    +            dol_syslog("doCollect result = ".$result." for emailcollector->id = ".$emailcollector->id);
    +
    +            $this->error.='EmailCollector ID '.$emailcollector->id.':'.$emailcollector->error.'<br>';
    +            if (! empty($emailcollector->errors)) $this->error.=join('<br>', $emailcollector->errors);
    +            $this->output.='EmailCollector ID '.$emailcollector->id.': '.$emailcollector->lastresult.'<br>';
    +        }
    +
    +        return $nberror;
    +    }
    +
    +    /**
    +     * overwitePropertiesOfObject
    +     *
    +     * @return	int		0=OK, Nb of error if error
    +     */
    +
    +    /**
    +     * overwitePropertiesOfObject
    +     *
    +     * @param	object	$object			Current object
    +     * @param	string	$actionparam	Action parameters
    +     * @param	string	$messagetext	Body
    +     * @param	string	$subject		Subject
    +     * @return	int						0=OK, Nb of error if error
    +     */
    +    private function overwritePropertiesOfObject(&$object, $actionparam, $messagetext, $subject)
    +    {
    +        $errorforthisaction = 0;
    +
    +        // Overwrite values with values extracted from source email
    +        // $this->actionparam = 'opportunity_status=123;abc=REGEX:BODY:....'
    +        $arrayvaluetouse = dolExplodeIntoArray($actionparam, ';', '=');
    +        foreach($arrayvaluetouse as $propertytooverwrite => $valueforproperty)
    +        {
    +            $tmpclass=''; $tmpproperty='';
    +            $tmparray=explode('.', $propertytooverwrite);
    +            if (count($tmparray) == 2)
    +            {
    +                $tmpclass=$tmparray[0];
    +                $tmpproperty=$tmparray[1];
    +            }
    +            else
    +            {
    +                $tmpproperty=$tmparray[0];
    +            }
    +            if ($tmpclass && ($tmpclass != $object->element)) continue;	// Property is for another type of object
    +
    +            if (property_exists($object, $tmpproperty))
    +            {
    +                $sourcestring='';
    +                $sourcefield='';
    +                $regexstring='';
    +                //$transformationstring='';
    +                $regforregex=array();
    +                if (preg_match('/^REGEX:([a-zA-Z0-9]+):(.*):([^:])$/', $valueforproperty, $regforregex))
    +                {
    +                    $sourcefield=$regforregex[1];
    +                    $regexstring=$regforregex[2];
    +                    //$transofrmationstring=$regforregex[3];
    +                }
    +                elseif (preg_match('/^REGEX:([a-zA-Z0-9]+):(.*)$/', $valueforproperty, $regforregex))
    +                {
    +                    $sourcefield=$regforregex[1];
    +                    $regexstring=$regforregex[2];
    +                }
    +
    +                if (! empty($sourcefield) && ! empty($regexstring))
    +                {
    +                    if (strtolower($sourcefield) == 'body') $sourcestring=$messagetext;
    +                    elseif (strtolower($sourcefield) == 'subject') $sourcestring=$subject;
    +
    +                    $regforval=array();
    +                    if (preg_match('/'.preg_quote($regexstring, '/').'/', $sourcestring, $regforval))
    +                    {
    +                        // Overwrite param $tmpproperty
    +                        $object->$tmpproperty = $regforval[1];
    +                    }
    +                    else
    +                    {
    +                        // Nothing can be done for this param
    +                    }
    +                }
    +                elseif (preg_match('/^VALUE:(.*)$/', $valueforproperty, $reg))
    +                {
    +                    $object->$tmpproperty = $reg[1];
    +                }
    +                else
    +                {
    +                    $errorforthisaction++;
    +                    $this->error = 'Bad syntax for description of action parameters: '.$actionparam;
    +                    $this->errors[] = $this->error;
    +                }
    +            }
    +        }
    +
    +        return $errorforthisaction;
    +    }
    +
    +    /**
    +     * Execute collect for current collector loaded previously with fetch.
    +     *
    +     * @return	int			<0 if KO, >0 if OK
    +     */
    +    public function doCollectOneCollector()
    +    {
    +        global $conf, $langs, $user;
    +
    +        //$conf->global->SYSLOG_FILE = 'DOL_DATA_ROOT/dolibarr_mydedicatedlofile.log';
    +
    +        require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
    +
    +        dol_syslog("EmailCollector::doCollectOneCollector start", LOG_DEBUG);
    +
    +        $langs->loadLangs(array("project", "companies", "mails", "errors"));
    +
    +        $error = 0;
    +        $this->output = '';
    +        $this->error='';
    +
    +        $now = dol_now();
    +
    +        if (empty($this->host))
    +        {
    +            $this->error=$langs->trans('ErrorFieldRequired', 'EMailHost');
    +            return -1;
    +        }
    +        if (empty($this->login))
    +        {
    +            $this->error=$langs->trans('ErrorFieldRequired', 'Login');
    +            return -1;
    +        }
    +        if (empty($this->source_directory))
    +        {
    +            $this->error=$langs->trans('ErrorFieldRequired', 'MailboxSourceDirectory');
    +            return -1;
    +        }
    +        if (! function_exists('imap_open'))
    +        {
    +            $this->error='IMAP function not enabled on your PHP';
    +            return -2;
    +        }
    +
    +        $this->fetchFilters();
    +        $this->fetchActions();
    +
    +        $sourcedir = $this->source_directory;
    +        $targetdir = ($this->target_directory ? $this->target_directory : '');			// Can be '[Gmail]/Trash' or 'mytag'
    +
    +        $connectstringserver = $this->getConnectStringIMAP();
    +        $connectstringsource = $connectstringserver.imap_utf7_encode($sourcedir);
    +        $connectstringtarget = $connectstringserver.imap_utf7_encode($targetdir);
    +
    +        $connection = imap_open($connectstringsource, $this->login, $this->password);
    +        if (! $connection)
    +        {
    +            $this->error = 'Failed to open IMAP connection '.$connectstringsource;
    +            return -3;
    +        }
    +
    +        //$search='ALL';
    +        $search='UNDELETED';
    +        $searchfilterdoltrackid=0;
    +        $searchfilternodoltrackid=0;
    +        foreach($this->filters as $rule)
    +        {
    +            if (empty($rule['status'])) continue;
    +
    +            if ($rule['type'] == 'to')      $search.=($search?' ':'').'TO "'.str_replace('"', '', $rule['rulevalue']).'"';
    +            if ($rule['type'] == 'bcc')     $search.=($search?' ':'').'BCC';
    +            if ($rule['type'] == 'cc')      $search.=($search?' ':'').'CC';
    +            if ($rule['type'] == 'from')    $search.=($search?' ':'').'FROM "'.str_replace('"', '', $rule['rulevalue']).'"';
    +            if ($rule['type'] == 'subject') $search.=($search?' ':'').'SUBJECT "'.str_replace('"', '', $rule['rulevalue']).'"';
    +            if ($rule['type'] == 'body')    $search.=($search?' ':'').'BODY "'.str_replace('"', '', $rule['rulevalue']).'"';
    +            if ($rule['type'] == 'seen')    $search.=($search?' ':'').'SEEN';
    +            if ($rule['type'] == 'unseen')  $search.=($search?' ':'').'UNSEEN';
    +            if ($rule['type'] == 'withtrackingid')    $searchfilterdoltrackid++;
    +            if ($rule['type'] == 'withouttrackingid') $searchfilternodoltrackid++;
    +        }
    +
    +        if (empty($targetdir))	// Use last date as filter if there is no targetdir defined.
    +        {
    +            $fromdate=0;
    +            if ($this->datelastresult && $this->codelastresult == 'OK') $fromdate = $this->datelastresult;
    +            if ($fromdate > 0) $search.=($search?' ':'').'SINCE '.dol_print_date($fromdate - 1,'dayhourrfc');
    +        }
    +        dol_syslog("IMAP search string = ".$search);
    +        //var_dump($search);
    +
    +        $nbemailprocessed=0;
    +        $nbemailok=0;
    +        $nbactiondone=0;
    +
    +        // Scan IMAP inbox
    +        $arrayofemail= imap_search($connection, $search);
    +        //var_dump($arrayofemail);exit;
    +
    +        // Loop on each email found
    +        if (! empty($arrayofemail) && count($arrayofemail) > 0)
    +        {
    +            foreach($arrayofemail as $imapemail)
    +            {
    +                if ($nbemailprocessed > 100) break;			// Do not process more than 100 email per launch
    +
    +                $header = imap_fetchheader($connection, $imapemail, 0);
    +                $matches=array();
    +                preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)\r\n/m', $header, $matches);
    +                $headers = array_combine($matches[1], $matches[2]);
    +                //var_dump($headers);
    +
    +                // $conf->global->MAIL_PREFIX_FOR_EMAIL_ID must be defined
    +                $host=dol_getprefix('email');
    +
    +                // If there is a filter on trackid
    +                //var_dump($host);exit;
    +                if ($searchfilterdoltrackid > 0)
    +                {
    +                    //if (empty($headers['X-Dolibarr-TRACKID'])) continue;
    +                    if (empty($headers['References']) || ! preg_match('/@'.preg_quote($host,'/').'/', $headers['References']))
    +                    {
    +                        $nbemailprocessed++;
    +                        continue;
    +                    }
    +                }
    +                if ($searchfilternodoltrackid > 0)
    +                {
    +                    if (! empty($headers['References']) && preg_match('/@'.preg_quote($host,'/').'/', $headers['References']))
    +                    {
    +                        $nbemailprocessed++;
    +                        continue;
    +                    }
    +                    //if (! empty($headers['X-Dolibarr-TRACKID']) continue;
    +                }
    +
    +                $thirdpartystatic=new Societe($this->db);
    +                $contactstatic=new Contact($this->db);
    +                $projectstatic=new Project($this->db);
    +
    +                $nbactiondoneforemail = 0;
    +                $errorforemail = 0;
    +                $errorforactions = 0;
    +                $thirdpartyfoundby = '';
    +                $contactfoundby = '';
    +                $projectfoundby = '';
    +
    +                $this->db->begin();
    +
    +                //$message = imap_body($connection, $imapemail, 0);
    +                $overview = imap_fetch_overview($connection, $imapemail, 0);
    +                $structure = imap_fetchstructure($connection, $imapemail, 0);
    +
    +                $partplain = $parthtml = -1;
    +                // Loop to get part html and plain
    +                /*
    +                 0 multipart/mixed
    +                 1 multipart/alternative
    +                 1.1 text/plain
    +                 1.2 text/html
    +                 2 message/rfc822
    +                 2 multipart/mixed
    +                 2.1 multipart/alternative
    +                 2.1.1 text/plain
    +                 2.1.2 text/html
    +                 2.2 message/rfc822
    +                 2.2 multipart/alternative
    +                 2.2.1 text/plain
    +                 2.2.2 text/html
    +                 */
    +                /**
    +                 * create_part_array
    +                 *
    +                 * @param 	Object $structure	Structure
    +                 * @param 	string $prefix		prefix
    +                 * @return 	array				Array with number and object
    +                 */
    +                function createPartArray($structure, $prefix="")
    +                {
    +                    //print_r($structure);
    +                    if (count($structure->parts) > 0) {    // There some sub parts
    +                        foreach ($structure->parts as $count => $part) {
    +                            add_part_to_array($part, $prefix.($count+1), $part_array);
    +                        }
    +                    }else{    // Email does not have a seperate mime attachment for text
    +                        $part_array[] = array('part_number' => $prefix.'1', 'part_object' => $obj);
    +                    }
    +                    return $part_array;
    +                }
    +
    +                /**
    +                 * Sub function for createPartArray(). Only called by createPartArray() and itself.
    +                 *
    +                 * @param 	Object		$obj			Structure
    +                 * @param 	string		$partno			Part no
    +                 * @param 	array		$part_array		array
    +                 * @return	void
    +                 */
    +                function addPartToArray($obj, $partno, &$part_array)
    +                {
    +                    $part_array[] = array('part_number' => $partno, 'part_object' => $obj);
    +                    if ($obj->type == 2) { // Check to see if the part is an attached email message, as in the RFC-822 type
    +                        //print_r($obj);
    +                        if (array_key_exists('parts',$obj)) {    // Check to see if the email has parts
    +                            foreach ($obj->parts as $count => $part) {
    +                                // Iterate here again to compensate for the broken way that imap_fetchbody() handles attachments
    +                                if (count($part->parts) > 0) {
    +                                    foreach ($part->parts as $count2 => $part2) {
    +                                        addPartToArray($part2, $partno.".".($count2+1), $part_array);
    +                                    }
    +                                }else{    // Attached email does not have a seperate mime attachment for text
    +                                    $part_array[] = array('part_number' => $partno.'.'.($count+1), 'part_object' => $obj);
    +                                }
    +                            }
    +                        }else{    // Not sure if this is possible
    +                            $part_array[] = array('part_number' => $partno.'.1', 'part_object' => $obj);
    +                        }
    +                    }else{    // If there are more sub-parts, expand them out.
    +                        if (array_key_exists('parts',$obj)) {
    +                            foreach ($obj->parts as $count => $p) {
    +                                addPartToArray($p, $partno.".".($count+1), $part_array);
    +                            }
    +                        }
    +                    }
    +                }
    +
    +                $result = createPartArray($structure, '');
    +                //var_dump($result);exit;
    +                foreach($result as $part)
    +                {
    +                    if ($part['part_object']->subtype == 'HTML')  $parthtml=$part['part_number'];
    +                    if ($part['part_object']->subtype == 'PLAIN') $partplain=$part['part_number'];
    +                }
    +
    +                /* OLD CODE to get parthtml and partplain
    +                 if (count($structure->parts) > 0) {    // There some sub parts
    +                 foreach($structure->parts as $key => $part)
    +                 {
    +                 if ($part->subtype == 'HTML') $parthtml=($key+1);									// For example: $parthtml = 1 or 2
    +                 if ($part->subtype == 'PLAIN') $partplain=($key+1);
    +                 if ($part->subtype == 'ALTERNATIVE')
    +                 {
    +                 if (count($part->parts) > 0)
    +                 {
    +                 foreach($part->parts as $key2 => $part2)
    +                 {
    +                 if ($part2->subtype == 'HTML') $parthtml=($key+1).'.'.($key2+1);		// For example: $parthtml = 1.1 or 1.2
    +                 if ($part2->subtype == 'PLAIN') $partplain=($key+1).'.'.($key2+1);
    +                 }
    +                 }
    +                 else
    +                 {
    +                 $partplain=($key+1).'.1';
    +                 }
    +                 }
    +                 }
    +                 }
    +                 else
    +                 {
    +                 $partplain=1;
    +                 }*/
    +
    +                //var_dump($structure);
    +                //var_dump($parthtml);var_dump($partplain);
    +
    +                $messagetext = imap_fetchbody($connection, $imapemail, ($parthtml != '-1' ? $parthtml : ($partplain != '-1' ? $partplain : 0)), FT_PEEK);
    +
    +                //var_dump($overview);
    +                //var_dump($header);
    +                //var_dump($message);
    +                //var_dump($structure->parts[0]->parts);
    +                //var_dump($messagetext);exit;
    +                $fromstring=$overview[0]->from;
    +                $sender=$overview[0]->sender;
    +                $to=$overview[0]->to;
    +                $sendtocc=$overview[0]->cc;
    +                $sendtobcc=$overview[0]->bcc;
    +                $date=$overview[0]->udate;
    +                $msgid=str_replace(array('<','>'), '', $overview[0]->message_id);
    +                $subject=$overview[0]->subject;
    +                //var_dump($msgid);exit;
    +
    +                $reg=array();
    +                if (preg_match('/^(.*)<(.*)>$/', $fromstring, $reg))
    +                {
    +                    $from=$reg[2];
    +                    $fromtext=$reg[1];
    +                }
    +                else
    +                {
    +                    $from = $fromstring;
    +                    $fromtext='';
    +                }
    +                $fk_element_id = 0; $fk_element_type = '';
    +
    +                $contactid = 0; $thirdpartyid = 0; $projectid = 0;
    +
    +                // Analyze TrackId in field References
    +                // For example: References: <1542377954.SMTPs-dolibarr-thi649@8f6014fde11ec6cdec9a822234fc557e>
    +                $trackid = '';
    +                $reg=array();
    +                if (! empty($headers['References']) && preg_match('/dolibarr-([a-z]+)([0-9]+)@'.preg_quote($host,'/').'/', $headers['References'], $reg))
    +                {
    +                    $trackid = $reg[1].$reg[2];
    +
    +                    $objectid = 0;
    +                    $objectemail = null;
    +                    if ($reg[0] == 'inv')
    +                    {
    +                        $objectid = $reg[1];
    +                        $objectemail = new Facture($this->db);
    +                    }
    +                    if ($reg[0] == 'proj')
    +                    {
    +                        $objectid = $reg[1];
    +                        $objectemail = new Project($this->db);
    +                    }
    +                    if ($reg[0] == 'con')
    +                    {
    +                        $objectid = $reg[1];
    +                        $objectemail = new Contact($this->db);
    +                    }
    +                    if ($reg[0] == 'thi')
    +                    {
    +                        $objectid = $reg[1];
    +                        $objectemail = new Societe($this->db);
    +                    }
    +                    if ($reg[0] == 'use')
    +                    {
    +                        $objectid = $reg[1];
    +                        $objectemail = new User($this->db);
    +                    }
    +
    +                    if (is_object($objectemail))
    +                    {
    +                        $result = $objectemail->fetch($objectid);
    +                        if ($result > 0)
    +                        {
    +                            $fk_element_id = $objectemail->id;
    +                            $fk_element_type = $objectemail->element;
    +                            // Fix fk_element_type
    +                            if ($fk_element_type == 'facture') $fk_element_type = 'invoice';
    +
    +                            $thirdpartyid = $objectemail->fk_soc;
    +                            $contactid = $objectemail->fk_socpeople;
    +                            $projectid = isset($objectemail->fk_project)?$objectemail->fk_project:$objectemail->fk_projet;
    +                        }
    +                    }
    +
    +                    // Project
    +                    if ($projectid > 0)
    +                    {
    +                        $result = $projectstatic->fetch($projectid);
    +                        if ($result <= 0) $projectstatic->id = 0;
    +                        else
    +                        {
    +                            $projectid = $projectstatic->id;
    +                            $projectfoundby = 'trackid ('.$trackid.')';
    +                            if (empty($contactid)) $contactid = $projectstatic->fk_contact;
    +                            if (empty($thirdpartyid)) $thirdpartyid = $projectstatic->fk_soc;
    +                        }
    +                    }
    +                    // Contact
    +                    if ($contactid > 0)
    +                    {
    +                        $result = $contactstatic->fetch($contactid);
    +                        if ($result <= 0) $contactstatic->id = 0;
    +                        else
    +                        {
    +                            $contactid = $contactstatic->id;
    +                            $contactfoundby = 'trackid ('.$trackid.')';
    +                            if (empty($thirdpartyid)) $thirdpartyid = $contactstatic->fk_soc;
    +                        }
    +                    }
    +                    // Thirdparty
    +                    if ($thirdpartyid > 0)
    +                    {
    +                        $result = $thirdpartystatic->fetch($thirdpartyid);
    +                        if ($result <= 0) $thirdpartystatic->id = 0;
    +                        else
    +                        {
    +                            $thirdpartyid = $thirdpartystatic->id;
    +                            $thirdpartyfoundby = 'trackid ('.$trackid.')';
    +                        }
    +                    }
    +                }
    +
    +                if (empty($contactid))		// Try to find contact using email
    +                {
    +                    $result = $contactstatic->fetch(0, null, '', $from);
    +                    if ($result > 0)
    +                    {
    +                        $contactid = $contactstatic->id;
    +                        $contactfoundby = 'email of contact ('.$from.')';
    +                        if ($contactstatic->fk_soc > 0)
    +                        {
    +                            $result = $thirdpartystatic->fetch($contactstatic->fk_soc);
    +                            if ($result > 0)
    +                            {
    +                                $thirdpartyid = $thirdpartystatic->id;
    +                                $thirdpartyfoundby = 'email of contact ('.$from.')';
    +                            }
    +                        }
    +                    }
    +                }
    +
    +                if (empty($thirdpartyid))		// Try to find thirdparty using email
    +                {
    +                    $result = $thirdpartystatic->fetch(0, '', '', '', '', '', '', '', '', '', $from);
    +                    if ($result > 0) $thirdpartyfoundby = 'email ('.$from.')';
    +                }
    +
    +
    +
    +                // Do operations
    +                foreach($this->actions as $operation)
    +                {
    +                    if ($errorforactions) break;
    +                    if (empty($operation['status'])) continue;
    +
    +                    // Make Operation
    +                    dol_syslog("Execute action ".$operation['type']." actionparam=".$operation['actionparam'].' thirdpartystatic->id='.$thirdpartystatic->id.' contactstatic->id='.$contactstatic->id.' projectstatic->id='.$projectstatic->id);
    +
    +                    // Search and create thirdparty
    +                    if ($operation['type'] == 'loadthirdparty' || $operation['type'] == 'loadandcreatethirdparty')
    +                    {
    +                        if (empty($operation['actionparam']))
    +                        {
    +                            $errorforactions++;
    +                            $this->error = "Action loadthirdparty or loadandcreatethirdparty has empty parameter. Must be 'VALUE:xxx' or 'REGEX:(body|subject):regex' to define how to extract data";
    +                            $this->errors[] = $this->error;
    +                        }
    +                        else
    +                        {
    +                            $actionparam = $operation['actionparam'];
    +                            $nametouseforthirdparty='';
    +
    +                            // $this->actionparam = 'VALUE:aaa' or 'REGEX:BODY:....'
    +                            $arrayvaluetouse = dolExplodeIntoArray($actionparam, ';', '=');
    +                            foreach($arrayvaluetouse as $propertytooverwrite => $valueforproperty)
    +                            {
    +                                $sourcestring='';
    +                                $sourcefield='';
    +                                $regexstring='';
    +                                $regforregex=array();
    +
    +                                if (preg_match('/^REGEX:([a-zA-Z0-9]+):(.*)$/', $valueforproperty, $regforregex))
    +                                {
    +                                    $sourcefield=$regforregex[1];
    +                                    $regexstring=$regforregex[2];
    +                                }
    +
    +                                if (! empty($sourcefield) && ! empty($regexstring))
    +                                {
    +                                    if (strtolower($sourcefield) == 'body') $sourcestring=$messagetext;
    +                                    elseif (strtolower($sourcefield) == 'subject') $sourcestring=$subject;
    +
    +                                    $regforval=array();
    +                                    if (preg_match('/'.$regexstring.'/', $sourcestring, $regforval))	// Do not use preg_quote here, string is already a regex syntax, for example string is 'Name:\s([^\s]*)'
    +                                    {
    +                                        // Overwrite param $tmpproperty
    +                                        $nametouseforthirdparty = $regforval[1];
    +                                    }
    +                                    else
    +                                    {
    +                                        // Nothing can be done for this param
    +                                    }
    +                                    //var_dump($sourcestring); var_dump($regexstring);var_dump($nametouseforthirdparty);exit;
    +                                }
    +                                elseif (preg_match('/^VALUE:(.*)$/', $valueforproperty, $reg))
    +                                {
    +                                    $nametouseforthirdparty = $reg[1];
    +                                }
    +                                else
    +                                {
    +                                    $errorforactions++;
    +                                    $this->error = 'Bad syntax for description of action parameters: '.$actionparam;
    +                                    $this->errors[] = $this->error;
    +                                    break;
    +                                }
    +                            }
    +
    +                            if (! $errorforactions && $nametouseforthirdparty)
    +                            {
    +                                $result = $thirdpartystatic->fetch(0, $nametouseforthirdparty);
    +                                if ($result < 0)
    +                                {
    +                                    $errorforactions++;
    +                                    $this->error = 'Error when getting thirdparty with name '.$nametouseforthirdparty.' (may be 2 record exists with same name ?)';
    +                                    $this->errors[] = $this->error;
    +                                    break;
    +                                }
    +                                elseif ($result == 0)
    +                                {
    +                                    if ($operation['type'] == 'loadandcreatethirdparty')
    +                                    {
    +                                        dol_syslog("Third party with name ".$nametouseforthirdparty." was not found. We try to create it.");
    +
    +                                        // Create thirdparty
    +                                        $thirdpartystatic->name = $nametouseforthirdparty;
    +                                        if ($fromtext != $nametouseforthirdparty) $thirdpartystatic->name_alias = $fromtext;
    +                                        $thirdpartystatic->email = $from;
    +
    +                                        // Overwrite values with values extracted from source email
    +                                        $errorforthisaction = $this->overwritePropertiesOfObject($thirdpartystatic, $operation['actionparam'], $messagetext, $subject);
    +
    +                                        if ($errorforthisaction)
    +                                        {
    +                                            $errorforactions++;
    +                                        }
    +                                        else
    +                                        {
    +                                            $result = $thirdpartystatic->create($user);
    +                                            if ($result <= 0)
    +                                            {
    +                                                $errorforactions++;
    +                                                $this->error = $thirdpartystatic->error;
    +                                                $this->errors = $thirdpartystatic->errors;
    +                                            }
    +                                        }
    +                                    }
    +                                    else
    +                                    {
    +                                        dol_syslog("Third party with name ".$nametouseforthirdparty." was not found");
    +                                    }
    +                                }
    +                            }
    +                        }
    +                    }
    +                    // Create event
    +                    elseif ($operation['type'] == 'recordevent')
    +                    {
    +                        $actioncode = 'EMAIL_IN';
    +
    +                        // Insert record of emails sent
    +                        $actioncomm = new ActionComm($this->db);
    +
    +                        $actioncomm->type_code   = 'AC_OTH_AUTO';		// Type of event ('AC_OTH', 'AC_OTH_AUTO', 'AC_XXX'...)
    +                        $actioncomm->code        = 'AC_'.$actioncode;
    +                        $actioncomm->label       = $langs->trans("ActionAC_EMAIL_IN").' - '.$langs->trans("MailFrom").' '.$from;
    +                        $actioncomm->note        = $messagetext;
    +                        $actioncomm->fk_project  = $projectstatic->id;
    +                        $actioncomm->datep       = $date;
    +                        $actioncomm->datef       = $date;
    +                        $actioncomm->percentage  = -1;   // Not applicable
    +                        $actioncomm->socid       = $thirdpartystatic->id;
    +                        $actioncomm->contactid   = $contactstatic->id;
    +                        $actioncomm->authorid    = $user->id;   // User saving action
    +                        $actioncomm->userownerid = $user->id;	// Owner of action
    +                        // Fields when action is an email (content should be added into note)
    +                        $actioncomm->email_msgid = $msgid;
    +                        $actioncomm->email_from  = $fromstring;
    +                        $actioncomm->email_sender= $sender;
    +                        $actioncomm->email_to    = $to;
    +                        $actioncomm->email_tocc  = $sendtocc;
    +                        $actioncomm->email_tobcc = $sendtobcc;
    +                        $actioncomm->email_subject = $subject;
    +                        $actioncomm->errors_to   = '';
    +
    +                        if (! in_array($fk_element_type, array('societe','contact','project','user')))
    +                        {
    +                            $actioncomm->fk_element  = $fk_element_id;
    +                            $actioncomm->elementtype = $fk_element_type;
    +                        }
    +
    +                        //$actioncomm->extraparams = $extraparams;
    +
    +                        // Overwrite values with values extracted from source email
    +                        $errorforthisaction = $this->overwritePropertiesOfObject($actioncommn, $operation['actionparam'], $messagetext, $subject);
    +
    +                        if ($errorforthisaction)
    +                        {
    +                            $errorforactions++;
    +                        }
    +                        else
    +                        {
    +                            $result = $actioncomm->create($user);
    +                            if ($result <= 0)
    +                            {
    +                                $errorforactions++;
    +                                $this->errors = $actioncomm->errors;
    +                            }
    +                        }
    +                    }
    +                    // Create event
    +                    elseif ($operation['type'] == 'project')
    +                    {
    +                        $note_private = $langs->trans("ProjectCreatedByEmailCollector", $msgid);
    +                        $projecttocreate = new Project($this->db);
    +                        if ($thirdpartystatic->id > 0)
    +                        {
    +                            $projecttocreate->socid = $thirdpartystatic->id;
    +                            if ($thirdpartyfoundby) $note_private .= ' - Third party found from '.$thirdpartyfoundby;
    +                        }
    +                        if ($contactstatic->id > 0)
    +                        {
    +                            $projecttocreate->contact_id = $contactstatic->id;
    +                            if ($contactfoundby) $note_private .= ' - Contact/address found from '.$contactfoundby;
    +                        }
    +
    +                        $id_opp_status = dol_getIdFromCode($this->db, 'PROSP', 'c_lead_status', 'code', 'rowid');
    +                        $percent_opp_status = dol_getIdFromCode($this->db, 'PROSP', 'c_lead_status', 'code', 'percent');
    +
    +                        $projecttocreate->title = $subject;
    +                        $projecttocreate->date_start = $now;
    +                        $projecttocreate->date_end = '';
    +                        $projecttocreate->opp_status = $id_opp_status;
    +                        $projecttocreate->opp_percent = $percent_opp_status;
    +                        $projecttocreate->description = dol_concatdesc(dol_concatdesc($note_private, dolGetFirstLineOfText(dol_string_nohtmltag($messagetext, 2), 3)), '...'.$langs->transnoentities("SeePrivateNote").'...');
    +                        $projecttocreate->note_private = dol_concatdesc($note_private, dol_string_nohtmltag($messagetext, 2));
    +                        $projecttocreate->entity = $conf->entity;
    +
    +                        // Get next project Ref
    +                        $defaultref='';
    +                        $modele = empty($conf->global->PROJECT_ADDON)?'mod_project_simple':$conf->global->PROJECT_ADDON;
    +
    +                        // Search template files
    +                        $file=''; $classname=''; $filefound=0; $reldir='';
    +                        $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
    +                        foreach($dirmodels as $reldir)
    +                        {
    +                            $file=dol_buildpath($reldir."core/modules/project/".$modele.'.php',0);
    +                            if (file_exists($file))
    +                            {
    +                                $filefound=1;
    +                                $classname = $modele;
    +                                break;
    +                            }
    +                        }
    +
    +                        if ($filefound)
    +                        {
    +                            $result=dol_include_once($reldir."core/modules/project/".$modele.'.php');
    +                            $modProject = new $classname;
    +
    +                            $defaultref = $modProject->getNextValue(($thirdpartystatic->id > 0 ? $thirdpartystatic : null), $projecttocreate);
    +                        }
    +
    +                        $projecttocreate->ref = $defaultref;
    +
    +                        // Overwrite values with values extracted from source email
    +                        $errorforthisaction = $this->overwritePropertiesOfObject($projecttocreate, $operation['actionparam'], $messagetext, $subject);
    +
    +                        if ($errorforthisaction)
    +                        {
    +                            $errorforactions++;
    +                        }
    +                        else
    +                        {
    +                            if (is_numeric($projecttocreate->ref) && $projecttocreate->ref <= 0)
    +                            {
    +                                $errorforactions++;
    +                                $this->error = 'Failed to create project: Can\'t get a valid value for project Ref';
    +                            }
    +                            else
    +                            {
    +                                // Create project
    +                                $result = $projecttocreate->create($user);
    +                                if ($result <= 0)
    +                                {
    +                                    $errorforactions++;
    +                                    $this->error = 'Failed to create project: '.$langs->trans($projecttocreate->error);
    +                                    $this->errors = $projecttocreate->errors;
    +                                }
    +                            }
    +                        }
    +                    }
    +
    +                    if (! $errorforactions)
    +                    {
    +                        $nbactiondoneforemail++;
    +                    }
    +                }
    +
    +                // Error for email or not ?
    +                if (! $errorforactions)
    +                {
    +                    if ($targetdir)
    +                    {
    +                        dol_syslog("EmailCollector::doCollectOneCollector move message ".$imapemail." to ".$connectstringtarget, LOG_DEBUG);
    +                        $res = imap_mail_move($connection, $imapemail, $targetdir, 0);
    +                        if ($res == false) {
    +                            $errorforemail++;
    +                            $this->error = imap_last_error();
    +                            $this->errors[] = $this->error;
    +                            dol_syslog(imap_last_error());
    +                        }
    +                    }
    +                    else
    +                    {
    +                        dol_syslog("EmailCollector::doCollectOneCollector message ".$imapemail." to ".$connectstringtarget." was set to read", LOG_DEBUG);
    +                    }
    +                }
    +                else
    +                {
    +                    $errorforemail++;
    +                }
    +
    +                if (! $errorforemail)
    +                {
    +                    $nbactiondone += $nbactiondoneforemail;
    +                    $nbemailok++;
    +
    +                    $this->db->commit();
    +                }
    +                else
    +                {
    +                    $error++;
    +
    +                    $this->db->rollback();
    +                }
    +
    +                $nbemailprocessed++;
    +
    +                unset($objectemail);
    +                unset($projectstatic);
    +                unset($thirdpartystatic);
    +                unset($contactstatic);
    +            }
    +
    +            $output=$langs->trans('XEmailsDoneYActionsDone', $nbemailprocessed, $nbemailok, $nbactiondone);
    +        }
    +        else
    +        {
    +            $output=$langs->trans('NoNewEmailToProcess');
    +        }
    +
    +        imap_expunge($connection);	// To validate any move
    +
    +        imap_close($connection);
    +
    +        $this->datelastresult = $now;
    +        $this->lastresult = $output;
    +
    +        if (! empty($this->errors)) $this->lastresult.= " - ".join(" - ", $this->errors);
    +        $this->codelastresult = ($error ? 'KO' : 'OK');
    +        $this->update($user);
    +
    +        dol_syslog("EmailCollector::doCollectOneCollector end", LOG_DEBUG);
    +
    +        return $error?-1:1;
    +    }
    +}
    diff --git a/htdocs/emailcollector/class/emailcollectoraction.class.php b/htdocs/emailcollector/class/emailcollectoraction.class.php
    new file mode 100644
    index 00000000000..ccf811f7607
    --- /dev/null
    +++ b/htdocs/emailcollector/class/emailcollectoraction.class.php
    @@ -0,0 +1,517 @@
    +<?php
    +/* Copyright (C) 2017  Laurent Destailleur <eldy@users.sourceforge.net>
    + * Copyright (C) ---Put here your own copyright and developer email---
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file        class/emailcollectoraction.class.php
    + * \ingroup     emailcollector
    + * \brief       This file is a CRUD class file for EmailCollectorAction (Create/Read/Update/Delete)
    + */
    +
    +// Put here all includes required by your class file
    +require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
    +//require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
    +//require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php';
    +
    +/**
    + * Class for EmailCollectorAction
    + */
    +class EmailCollectorAction extends CommonObject
    +{
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element = 'emailcollectoraction';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element = 'emailcollector_emailcollectoraction';
    +
    +	/**
    +	 * @var int  Does emailcollectoraction support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 */
    +	public $ismultientitymanaged = 0;
    +
    +	/**
    +	 * @var int  Does emailcollectoraction support extrafields ? 0=No, 1=Yes
    +	 */
    +	public $isextrafieldmanaged = 0;
    +
    +	/**
    +	 * @var string String with name of icon for emailcollectoraction. Must be the part after the 'object_' into object_emailcollectoraction.png
    +	 */
    +	public $picto = 'emailcollectoraction@emailcollector';
    +
    +
    +	/**
    +	 *  'type' if the field format.
    +	 *  'label' the translation key.
    +	 *  'enabled' is a condition when the field must be managed.
    +	 *  'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only. Using a negative value means field is not shown by default on list but can be selected for viewing)
    +	 *  'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0).
    +	 *  'default' is a default value for creation (can still be replaced by the global setup of default values)
    +	 *  'index' if we want an index in database.
    +	 *  'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...).
    +	 *  'position' is the sort order of field.
    +	 *  'searchall' is 1 if we want to search in this field when making a search from the quick search button.
    +	 *  'isameasure' must be set to 1 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8).
    +	 *  'css' is the CSS style to use on field. For example: 'maxwidth200'
    +	 *  'help' is a string visible as a tooltip on field
    +	 *  'comment' is not used. You can store here any text of your choice. It is not used by application.
    +	 *  'showoncombobox' if value of the field must be visible into the label of the combobox that list record
    +	 *  'arraykeyval' to set list of value if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel")
    +	 */
    +
    +	// BEGIN MODULEBUILDER PROPERTIES
    +	/**
    +	 * @var array  Array with all fields and their property. Do not use it as a static var. It may be modified by constructor.
    +	 */
    +	public $fields=array(
    +		'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>"Id",),
    +		'fk_emailcollector' => array('type'=>'integer', 'label'=>'Id of emailcollector', 'foreignkey'=>'emailcollector.rowid'),
    +		'type' => array('type'=>'varchar(128)', 'label'=>'Type', 'enabled'=>1, 'visible'=>1, 'position'=>10, 'notnull'=>1, 'index'=>1),
    +		'actionparam' => array('type'=>'varchar(255)', 'label'=>'ParamForAction', 'enabled'=>1, 'visible'=>1, 'position'=>40, 'notnull'=>-1),
    +		'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>500, 'notnull'=>1,),
    +		'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'position'=>501, 'notnull'=>1,),
    +		'fk_user_creat' => array('type'=>'integer', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'position'=>510, 'notnull'=>1, 'foreignkey'=>'llx_user.rowid',),
    +		'fk_user_modif' => array('type'=>'integer', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'position'=>511, 'notnull'=>-1,),
    +		'position' => array('type'=>'integer', 'label'=>'Position', 'enabled'=>1, 'visible'=>1, 'position'=>600, 'default'=>'0',),
    +		'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>1000, 'notnull'=>-1,),
    +		'status' => array('type'=>'integer', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'position'=>1000, 'notnull'=>1, 'default'=>1, 'arrayofkeyval'=>array('0'=>'Disabled', '1'=>'Enabled')),
    +	);
    +	public $rowid;
    +	public $fk_emailcollector;
    +	public $type;
    +	public $actionparam;
    +	public $date_creation;
    +	public $tms;
    +	public $fk_user_creat;
    +	public $fk_user_modif;
    +	public $position;
    +	public $import_key;
    +	public $status;
    +	// END MODULEBUILDER PROPERTIES
    +
    +
    +
    +	// If this object has a subtable with lines
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
    +	//public $table_element_line = 'emailcollectoractiondet';
    +
    +	/**
    +	 * @var int    Field with ID of parent key if this field has a parent
    +	 */
    +	//public $fk_element = 'fk_emailcollectoraction';
    +
    +	/**
    +	 * @var int    Name of subtable class that manage subtable lines
    +	 */
    +	//public $class_element_line = 'EmailcollectorActionline';
    +
    +	/**
    +	 * @var array  Array of child tables (child tables to delete before deleting a record)
    +	 */
    +	//protected $childtables=array('emailcollectoractiondet');
    +
    +	/**
    +	 * @var EmailcollectorActionLine[]     Array of subtable lines
    +	 */
    +	//public $lines = array();
    +
    +
    +
    +	/**
    +	 * Constructor
    +	 *
    +	 * @param DoliDb $db Database handler
    +	 */
    +	public function __construct(DoliDB $db)
    +	{
    +		global $conf, $langs, $user;
    +
    +		$this->db = $db;
    +
    +		if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) $this->fields['rowid']['visible']=0;
    +		if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) $this->fields['entity']['enabled']=0;
    +
    +		// Unset fields that are disabled
    +		foreach($this->fields as $key => $val)
    +		{
    +			if (isset($val['enabled']) && empty($val['enabled']))
    +			{
    +				unset($this->fields[$key]);
    +			}
    +		}
    +
    +		// Translate some data of arrayofkeyval
    +		foreach($this->fields as $key => $val)
    +		{
    +			if (is_array($this->fields['status']['arrayofkeyval']))
    +			{
    +				foreach($this->fields['status']['arrayofkeyval'] as $key2 => $val2)
    +				{
    +					$this->fields['status']['arrayofkeyval'][$key2]=$langs->trans($val2);
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Create object into database
    +	 *
    +	 * @param  User $user      User that creates
    +	 * @param  bool $notrigger false=launch triggers after, true=disable triggers
    +	 * @return int             <0 if KO, Id of created object if OK
    +	 */
    +	public function create(User $user, $notrigger = false)
    +	{
    +		global $langs;
    +		if (empty($this->type))
    +		{
    +			$langs->load("errors");
    +			$this->errors[]=$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type"));
    +			return -1;
    +		}
    +
    +		return $this->createCommon($user, $notrigger);
    +	}
    +
    +	/**
    +	 * Clone and object into another one
    +	 *
    +	 * @param  	User 	$user      	User that creates
    +	 * @param  	int 	$fromid     Id of object to clone
    +	 * @return 	mixed 				New object created, <0 if KO
    +	 */
    +	public function createFromClone(User $user, $fromid)
    +	{
    +		global $langs, $hookmanager, $extrafields;
    +	    $error = 0;
    +
    +	    dol_syslog(__METHOD__, LOG_DEBUG);
    +
    +	    $object = new self($this->db);
    +
    +	    $this->db->begin();
    +
    +	    // Load source object
    +	    $object->fetchCommon($fromid);
    +	    // Reset some properties
    +	    unset($object->id);
    +	    unset($object->fk_user_creat);
    +	    unset($object->import_key);
    +
    +	    // Clear fields
    +	    $object->ref = "copy_of_".$object->ref;
    +	    $object->title = $langs->trans("CopyOf")." ".$object->title;
    +	    // ...
    +	    // Clear extrafields that are unique
    +	    if (is_array($object->array_options) && count($object->array_options) > 0)
    +	    {
    +	    	$extrafields->fetch_name_optionals_label($this->element);
    +	    	foreach($object->array_options as $key => $option)
    +	    	{
    +	    		$shortkey = preg_replace('/options_/', '', $key);
    +	    		if (! empty($extrafields->attributes[$this->element]['unique'][$shortkey]))
    +	    		{
    +	    			//var_dump($key); var_dump($clonedObj->array_options[$key]); exit;
    +	    			unset($object->array_options[$key]);
    +	    		}
    +	    	}
    +	    }
    +
    +	    // Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
    +	    $result = $object->createCommon($user);
    +	    if ($result < 0) {
    +	        $error++;
    +	        $this->error = $object->error;
    +	        $this->errors = $object->errors;
    +	    }
    +
    +	    unset($object->context['createfromclone']);
    +
    +	    // End
    +	    if (!$error) {
    +	        $this->db->commit();
    +	        return $object;
    +	    } else {
    +	        $this->db->rollback();
    +	        return -1;
    +	    }
    +	}
    +
    +	/**
    +	 * Load object in memory from the database
    +	 *
    +	 * @param int    $id   Id object
    +	 * @param string $ref  Ref
    +	 * @return int         <0 if KO, 0 if not found, >0 if OK
    +	 */
    +	public function fetch($id, $ref = null)
    +	{
    +		$result = $this->fetchCommon($id, $ref);
    +		if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines();
    +		return $result;
    +	}
    +
    +	/**
    +	 * Load object lines in memory from the database
    +	 *
    +	 * @return int         <0 if KO, 0 if not found, >0 if OK
    +	 */
    +	/*public function fetchLines()
    +	{
    +		$this->lines=array();
    +
    +		// Load lines with object EmailcollectorActionLine
    +
    +		return count($this->lines)?1:0;
    +	}*/
    +
    +	/**
    +	 * Update object into database
    +	 *
    +	 * @param  User $user      User that modifies
    +	 * @param  bool $notrigger false=launch triggers after, true=disable triggers
    +	 * @return int             <0 if KO, >0 if OK
    +	 */
    +	public function update(User $user, $notrigger = false)
    +	{
    +		return $this->updateCommon($user, $notrigger);
    +	}
    +
    +	/**
    +	 * Delete object in database
    +	 *
    +	 * @param User $user       User that deletes
    +	 * @param bool $notrigger  false=launch triggers after, true=disable triggers
    +	 * @return int             <0 if KO, >0 if OK
    +	 */
    +	public function delete(User $user, $notrigger = false)
    +	{
    +		return $this->deleteCommon($user, $notrigger);
    +	}
    +
    +	/**
    +	 *  Return a link to the object card (with optionaly the picto)
    +	 *
    +	 *	@param	int		$withpicto					Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto)
    +	 *	@param	string	$option						On what the link point to ('nolink', ...)
    +     *  @param	int  	$notooltip					1=Disable tooltip
    +     *  @param  string  $morecss            		Add more css on link
    +     *  @param  int     $save_lastsearch_value    	-1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    +	 *	@return	string								String with URL
    +	 */
    +	function getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1)
    +	{
    +		global $db, $conf, $langs, $hookmanager;
    +        global $dolibarr_main_authentication, $dolibarr_main_demo;
    +        global $menumanager;
    +
    +        if (! empty($conf->dol_no_mouse_hover)) $notooltip=1;   // Force disable tooltips
    +
    +        $result = '';
    +        $companylink = '';
    +
    +        $label = '<u>' . $langs->trans("EmailcollectorAction") . '</u>';
    +        $label.= '<br>';
    +        $label.= '<b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
    +
    +        $url = dol_buildpath('/emailcollector/emailcollectoraction_card.php',1).'?id='.$this->id;
    +
    +        if ($option != 'nolink')
    +        {
    +	        // Add param to save lastsearch_values or not
    +	        $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    +	        if ($save_lastsearch_value == -1 && preg_match('/list\.php/',$_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1;
    +	        if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
    +        }
    +
    +        $linkclose='';
    +        if (empty($notooltip))
    +        {
    +            if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
    +            {
    +                $label=$langs->trans("ShowEmailcollectorAction");
    +                $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    +            }
    +            $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"';
    +            $linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"';
    +
    +            /*
    +             $hookmanager->initHooks(array('emailcollectoractiondao'));
    +             $parameters=array('id'=>$this->id);
    +             $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +             if ($reshook > 0) $linkclose = $hookmanager->resPrint;
    +             */
    +        }
    +        else $linkclose = ($morecss?' class="'.$morecss.'"':'');
    +
    +		$linkstart = '<a href="'.$url.'"';
    +		$linkstart.=$linkclose.'>';
    +		$linkend='</a>';
    +
    +		$result .= $linkstart;
    +		if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
    +		if ($withpicto != 2) $result.= $this->ref;
    +		$result .= $linkend;
    +		//if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
    +
    +		global $action,$hookmanager;
    +		$hookmanager->initHooks(array('emailcollectoractiondao'));
    +		$parameters=array('id'=>$this->id, 'getnomurl'=>$result);
    +		$reshook=$hookmanager->executeHooks('getNomUrl',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +		if ($reshook > 0) $result = $hookmanager->resPrint;
    +		else $result .= $hookmanager->resPrint;
    +
    +		return $result;
    +	}
    +
    +	/**
    +	 *  Return label of the status
    +	 *
    +	 *  @param  int		$mode          0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
    +	 *  @return	string 			       Label of status
    +	 */
    +	public function getLibStatut($mode=0)
    +	{
    +		return $this->LibStatut($this->status, $mode);
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
    +	/**
    +	 *  Return the status
    +	 *
    +	 *  @param	int		$status        Id status
    +	 *  @param  int		$mode          0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
    +	 *  @return string 			       Label of status
    +	 */
    +	public function LibStatut($status, $mode=0)
    +	{
    +		// phpcs:enable
    +		if (empty($this->labelstatus))
    +		{
    +			global $langs;
    +			//$langs->load("emailcollector");
    +			$this->labelstatus[1] = $langs->trans('Enabled');
    +			$this->labelstatus[0] = $langs->trans('Disabled');
    +		}
    +
    +		if ($mode == 0)
    +		{
    +			return $this->labelstatus[$status];
    +		}
    +		elseif ($mode == 1)
    +		{
    +			return $this->labelstatus[$status];
    +		}
    +		elseif ($mode == 2)
    +		{
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +		}
    +		elseif ($mode == 3)
    +		{
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
    +		}
    +		elseif ($mode == 4)
    +		{
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +		}
    +		elseif ($mode == 5)
    +		{
    +			if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
    +		}
    +		elseif ($mode == 6)
    +		{
    +			if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
    +		}
    +	}
    +
    +	/**
    +	 *	Charge les informations d'ordre info dans l'objet commande
    +	 *
    +	 *	@param  int		$id       Id of order
    +	 *	@return	void
    +	 */
    +	public function info($id)
    +	{
    +		$sql = 'SELECT rowid, date_creation as datec, tms as datem,';
    +		$sql.= ' fk_user_creat, fk_user_modif';
    +		$sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t';
    +		$sql.= ' WHERE t.rowid = '.$id;
    +		$result=$this->db->query($sql);
    +		if ($result)
    +		{
    +			if ($this->db->num_rows($result))
    +			{
    +				$obj = $this->db->fetch_object($result);
    +				$this->id = $obj->rowid;
    +				if ($obj->fk_user_author)
    +				{
    +					$cuser = new User($this->db);
    +					$cuser->fetch($obj->fk_user_author);
    +					$this->user_creation   = $cuser;
    +				}
    +
    +				if ($obj->fk_user_valid)
    +				{
    +					$vuser = new User($this->db);
    +					$vuser->fetch($obj->fk_user_valid);
    +					$this->user_validation = $vuser;
    +				}
    +
    +				if ($obj->fk_user_cloture)
    +				{
    +					$cluser = new User($this->db);
    +					$cluser->fetch($obj->fk_user_cloture);
    +					$this->user_cloture   = $cluser;
    +				}
    +
    +				$this->date_creation     = $this->db->jdate($obj->datec);
    +				$this->date_modification = $this->db->jdate($obj->datem);
    +				$this->date_validation   = $this->db->jdate($obj->datev);
    +			}
    +
    +			$this->db->free($result);
    +		}
    +		else
    +		{
    +			dol_print_error($this->db);
    +		}
    +	}
    +
    +	/**
    +	 * Initialise object with example values
    +	 * Id must be 0 if object instance is a specimen
    +	 *
    +	 * @return void
    +	 */
    +	public function initAsSpecimen()
    +	{
    +		$this->initAsSpecimenCommon();
    +	}
    +}
    diff --git a/htdocs/emailcollector/class/emailcollectorfilter.class.php b/htdocs/emailcollector/class/emailcollectorfilter.class.php
    new file mode 100644
    index 00000000000..cafde3a820c
    --- /dev/null
    +++ b/htdocs/emailcollector/class/emailcollectorfilter.class.php
    @@ -0,0 +1,493 @@
    +<?php
    +/* Copyright (C) 2017  Laurent Destailleur <eldy@users.sourceforge.net>
    + * Copyright (C) ---Put here your own copyright and developer email---
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file        emailcollector/class/emailcollectorfilter.class.php
    + * \ingroup     emailcollector
    + * \brief       This file is a CRUD class file for EmailCollectorFilter (Create/Read/Update/Delete)
    + */
    +
    +// Put here all includes required by your class file
    +require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
    +//require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php';
    +//require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php';
    +
    +/**
    + * Class for EmailCollectorFilter
    + */
    +class EmailCollectorFilter extends CommonObject
    +{
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element = 'emailcollectorfilter';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element = 'emailcollector_emailcollectorfilter';
    +
    +	/**
    +	 * @var int  Does emailcollectorfilter support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 */
    +	public $ismultientitymanaged = 0;
    +
    +	/**
    +	 * @var int  Does emailcollectorfilter support extrafields ? 0=No, 1=Yes
    +	 */
    +	public $isextrafieldmanaged = 0;
    +
    +	/**
    +	 * @var string String with name of icon for emailcollectorfilter. Must be the part after the 'object_' into object_emailcollectorfilter.png
    +	 */
    +	public $picto = 'emailcollectorfilter@emailcollector';
    +
    +
    +	/**
    +	 *  'type' if the field format.
    +	 *  'label' the translation key.
    +	 *  'enabled' is a condition when the field must be managed.
    +	 *  'visible' says if field is visible in list (Examples: 0=Not visible, 1=Visible on list and create/update/view forms, 2=Visible on list only. Using a negative value means field is not shown by default on list but can be selected for viewing)
    +	 *  'notnull' is set to 1 if not null in database. Set to -1 if we must set data to null if empty ('' or 0).
    +	 *  'default' is a default value for creation (can still be replaced by the global setup of default values)
    +	 *  'index' if we want an index in database.
    +	 *  'foreignkey'=>'tablename.field' if the field is a foreign key (it is recommanded to name the field fk_...).
    +	 *  'position' is the sort order of field.
    +	 *  'searchall' is 1 if we want to search in this field when making a search from the quick search button.
    +	 *  'isameasure' must be set to 1 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8).
    +	 *  'css' is the CSS style to use on field. For example: 'maxwidth200'
    +	 *  'help' is a string visible as a tooltip on field
    +	 *  'comment' is not used. You can store here any text of your choice. It is not used by application.
    +	 *  'showoncombobox' if value of the field must be visible into the label of the combobox that list record
    +	 *  'arraykeyval' to set list of value if type is a list of predefined values. For example: array("0"=>"Draft","1"=>"Active","-1"=>"Cancel")
    +	 */
    +
    +	// BEGIN MODULEBUILDER PROPERTIES
    +	/**
    +	 * @var array  Array with all fields and their property. Do not use it as a static var. It may be modified by constructor.
    +	 */
    +	public $fields=array(
    +		'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>"Id",),
    +		'fk_emailcollector' => array('type'=>'integer', 'label'=>'Id of emailcollector', 'foreignkey'=>'emailcollector.rowid'),
    +		'type' => array('type'=>'varchar(128)', 'label'=>'Type', 'enabled'=>1, 'visible'=>1, 'position'=>10, 'notnull'=>1,),
    +		'rulevalue' => array('type'=>'varchar(255)', 'label'=>'ValueOfRule', 'enabled'=>1, 'visible'=>1, 'position'=>30, 'notnull'=>-1, 'help'=>"Value of Rule",),
    +		'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'position'=>500, 'notnull'=>1,),
    +		'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'position'=>501, 'notnull'=>1,),
    +		'fk_user_creat' => array('type'=>'integer', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'position'=>510, 'notnull'=>1, 'foreignkey'=>'llx_user.rowid',),
    +		'fk_user_modif' => array('type'=>'integer', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'position'=>511, 'notnull'=>-1,),
    +		'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>1000, 'notnull'=>-1,),
    +		'status' => array('type'=>'integer', 'label'=>'Status', 'enabled'=>1, 'visible'=>1, 'position'=>1000, 'notnull'=>1, 'default'=>1, 'arrayofkeyval'=>array('0'=>'Disabled', '1'=>'Enabled')),
    +	);
    +	public $rowid;
    +	public $fk_emailcollector;
    +	public $type;
    +	public $rulevalue;
    +	public $date_creation;
    +	public $tms;
    +	public $fk_user_creat;
    +	public $fk_user_modif;
    +	public $import_key;
    +	public $status;
    +	// END MODULEBUILDER PROPERTIES
    +
    +
    +
    +	/**
    +	 * Constructor
    +	 *
    +	 * @param DoliDb $db Database handler
    +	 */
    +	public function __construct(DoliDB $db)
    +	{
    +		global $conf, $langs, $user;
    +
    +		$this->db = $db;
    +
    +		if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) $this->fields['rowid']['visible']=0;
    +		if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) $this->fields['entity']['enabled']=0;
    +
    +		// Unset fields that are disabled
    +		foreach($this->fields as $key => $val)
    +		{
    +			if (isset($val['enabled']) && empty($val['enabled']))
    +			{
    +				unset($this->fields[$key]);
    +			}
    +		}
    +
    +		// Translate some data of arrayofkeyval
    +		foreach($this->fields as $key => $val)
    +		{
    +			if (is_array($this->fields['status']['arrayofkeyval']))
    +			{
    +				foreach($this->fields['status']['arrayofkeyval'] as $key2 => $val2)
    +				{
    +					$this->fields['status']['arrayofkeyval'][$key2]=$langs->trans($val2);
    +				}
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Create object into database
    +	 *
    +	 * @param  User $user      User that creates
    +	 * @param  bool $notrigger false=launch triggers after, true=disable triggers
    +	 * @return int             <0 if KO, Id of created object if OK
    +	 */
    +	public function create(User $user, $notrigger = false)
    +	{
    +		global $langs;
    +		if (empty($this->type))
    +		{
    +			$langs->load("errors");
    +			$this->errors[]=$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type"));
    +			return -1;
    +		}
    +		if (! in_array($this->type, array('seen','unseen','withtrackingid','withouttrackingid')) && empty($this->rulevalue))
    +		{
    +			$langs->load("errors");
    +			$this->errors[]=$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("StringToFilter"));
    +			return -1;
    +		}
    +
    +		return $this->createCommon($user, $notrigger);
    +	}
    +
    +	/**
    +	 * Clone and object into another one
    +	 *
    +	 * @param  	User 	$user      	User that creates
    +	 * @param  	int 	$fromid     Id of object to clone
    +	 * @return 	mixed 				New object created, <0 if KO
    +	 */
    +	public function createFromClone(User $user, $fromid)
    +	{
    +		global $langs, $hookmanager, $extrafields;
    +	    $error = 0;
    +
    +	    dol_syslog(__METHOD__, LOG_DEBUG);
    +
    +	    $object = new self($this->db);
    +
    +	    $this->db->begin();
    +
    +	    // Load source object
    +	    $object->fetchCommon($fromid);
    +	    // Reset some properties
    +	    unset($object->id);
    +	    unset($object->fk_user_creat);
    +	    unset($object->import_key);
    +
    +	    // Clear fields
    +	    $object->ref = "copy_of_".$object->ref;
    +	    $object->title = $langs->trans("CopyOf")." ".$object->title;
    +	    // ...
    +	    // Clear extrafields that are unique
    +	    if (is_array($object->array_options) && count($object->array_options) > 0)
    +	    {
    +	    	$extrafields->fetch_name_optionals_label($this->element);
    +	    	foreach($object->array_options as $key => $option)
    +	    	{
    +	    		$shortkey = preg_replace('/options_/', '', $key);
    +	    		if (! empty($extrafields->attributes[$this->element]['unique'][$shortkey]))
    +	    		{
    +	    			//var_dump($key); var_dump($clonedObj->array_options[$key]); exit;
    +	    			unset($object->array_options[$key]);
    +	    		}
    +	    	}
    +	    }
    +
    +	    // Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
    +	    $result = $object->createCommon($user);
    +	    if ($result < 0) {
    +	        $error++;
    +	        $this->error = $object->error;
    +	        $this->errors = $object->errors;
    +	    }
    +
    +	    unset($object->context['createfromclone']);
    +
    +	    // End
    +	    if (!$error) {
    +	        $this->db->commit();
    +	        return $object;
    +	    } else {
    +	        $this->db->rollback();
    +	        return -1;
    +	    }
    +	}
    +
    +	/**
    +	 * Load object in memory from the database
    +	 *
    +	 * @param int    $id   Id object
    +	 * @param string $ref  Ref
    +	 * @return int         <0 if KO, 0 if not found, >0 if OK
    +	 */
    +	public function fetch($id, $ref = null)
    +	{
    +		$result = $this->fetchCommon($id, $ref);
    +		if ($result > 0 && ! empty($this->table_element_line)) $this->fetchLines();
    +		return $result;
    +	}
    +
    +	/**
    +	 * Load object lines in memory from the database
    +	 *
    +	 * @return int         <0 if KO, 0 if not found, >0 if OK
    +	 */
    +	/*public function fetchLines()
    +	{
    +		$this->lines=array();
    +
    +		// Load lines with object EmailcollectorFilterLine
    +
    +		return count($this->lines)?1:0;
    +	}*/
    +
    +	/**
    +	 * Update object into database
    +	 *
    +	 * @param  User $user      User that modifies
    +	 * @param  bool $notrigger false=launch triggers after, true=disable triggers
    +	 * @return int             <0 if KO, >0 if OK
    +	 */
    +	public function update(User $user, $notrigger = false)
    +	{
    +		return $this->updateCommon($user, $notrigger);
    +	}
    +
    +	/**
    +	 * Delete object in database
    +	 *
    +	 * @param User $user       User that deletes
    +	 * @param bool $notrigger  false=launch triggers after, true=disable triggers
    +	 * @return int             <0 if KO, >0 if OK
    +	 */
    +	public function delete(User $user, $notrigger = false)
    +	{
    +		return $this->deleteCommon($user, $notrigger);
    +	}
    +
    +	/**
    +	 *  Return a link to the object card (with optionaly the picto)
    +	 *
    +	 *	@param	int		$withpicto					Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto)
    +	 *	@param	string	$option						On what the link point to ('nolink', ...)
    +     *  @param	int  	$notooltip					1=Disable tooltip
    +     *  @param  string  $morecss            		Add more css on link
    +     *  @param  int     $save_lastsearch_value    	-1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    +	 *	@return	string								String with URL
    +	 */
    +	function getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1)
    +	{
    +		global $db, $conf, $langs, $hookmanager;
    +        global $dolibarr_main_authentication, $dolibarr_main_demo;
    +        global $menumanager;
    +
    +        if (! empty($conf->dol_no_mouse_hover)) $notooltip=1;   // Force disable tooltips
    +
    +        $result = '';
    +        $companylink = '';
    +
    +        $label = '<u>' . $langs->trans("EmailcollectorFilter") . '</u>';
    +        $label.= '<br>';
    +        $label.= '<b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
    +
    +        $url = dol_buildpath('/emailcollector/emailcollectorfilter_card.php',1).'?id='.$this->id;
    +
    +        if ($option != 'nolink')
    +        {
    +	        // Add param to save lastsearch_values or not
    +	        $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    +	        if ($save_lastsearch_value == -1 && preg_match('/list\.php/',$_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1;
    +	        if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
    +        }
    +
    +        $linkclose='';
    +        if (empty($notooltip))
    +        {
    +            if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
    +            {
    +                $label=$langs->trans("ShowEmailcollectorFilter");
    +                $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    +            }
    +            $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"';
    +            $linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"';
    +
    +            /*
    +             $hookmanager->initHooks(array('emailcollectorfilterdao'));
    +             $parameters=array('id'=>$this->id);
    +             $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +             if ($reshook > 0) $linkclose = $hookmanager->resPrint;
    +             */
    +        }
    +        else $linkclose = ($morecss?' class="'.$morecss.'"':'');
    +
    +		$linkstart = '<a href="'.$url.'"';
    +		$linkstart.=$linkclose.'>';
    +		$linkend='</a>';
    +
    +		$result .= $linkstart;
    +		if ($withpicto) $result.=img_object(($notooltip?'':$label), ($this->picto?$this->picto:'generic'), ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1);
    +		if ($withpicto != 2) $result.= $this->ref;
    +		$result .= $linkend;
    +		//if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
    +
    +		global $action,$hookmanager;
    +		$hookmanager->initHooks(array('emailcollectorfilterdao'));
    +		$parameters=array('id'=>$this->id, 'getnomurl'=>$result);
    +		$reshook=$hookmanager->executeHooks('getNomUrl',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +		if ($reshook > 0) $result = $hookmanager->resPrint;
    +		else $result .= $hookmanager->resPrint;
    +
    +		return $result;
    +	}
    +
    +	/**
    +	 *  Return label of the status
    +	 *
    +	 *  @param  int		$mode          0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
    +	 *  @return	string 			       Label of status
    +	 */
    +	public function getLibStatut($mode=0)
    +	{
    +		return $this->LibStatut($this->status, $mode);
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
    +	/**
    +	 *  Return the status
    +	 *
    +	 *  @param	int		$status        Id status
    +	 *  @param  int		$mode          0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
    +	 *  @return string 			       Label of status
    +	 */
    +	public function LibStatut($status, $mode=0)
    +	{
    +		// phpcs:enable
    +		if (empty($this->labelstatus))
    +		{
    +			global $langs;
    +			//$langs->load("emailcollector");
    +			$this->labelstatus[1] = $langs->trans('Enabled');
    +			$this->labelstatus[0] = $langs->trans('Disabled');
    +		}
    +
    +		if ($mode == 0)
    +		{
    +			return $this->labelstatus[$status];
    +		}
    +		elseif ($mode == 1)
    +		{
    +			return $this->labelstatus[$status];
    +		}
    +		elseif ($mode == 2)
    +		{
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +		}
    +		elseif ($mode == 3)
    +		{
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
    +		}
    +		elseif ($mode == 4)
    +		{
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +		}
    +		elseif ($mode == 5)
    +		{
    +			if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
    +		}
    +		elseif ($mode == 6)
    +		{
    +			if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
    +		}
    +	}
    +
    +	/**
    +	 *	Charge les informations d'ordre info dans l'objet commande
    +	 *
    +	 *	@param  int		$id       Id of order
    +	 *	@return	void
    +	 */
    +	public function info($id)
    +	{
    +		$sql = 'SELECT rowid, date_creation as datec, tms as datem,';
    +		$sql.= ' fk_user_creat, fk_user_modif';
    +		$sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' as t';
    +		$sql.= ' WHERE t.rowid = '.$id;
    +		$result=$this->db->query($sql);
    +		if ($result)
    +		{
    +			if ($this->db->num_rows($result))
    +			{
    +				$obj = $this->db->fetch_object($result);
    +				$this->id = $obj->rowid;
    +				if ($obj->fk_user_author)
    +				{
    +					$cuser = new User($this->db);
    +					$cuser->fetch($obj->fk_user_author);
    +					$this->user_creation   = $cuser;
    +				}
    +
    +				if ($obj->fk_user_valid)
    +				{
    +					$vuser = new User($this->db);
    +					$vuser->fetch($obj->fk_user_valid);
    +					$this->user_validation = $vuser;
    +				}
    +
    +				if ($obj->fk_user_cloture)
    +				{
    +					$cluser = new User($this->db);
    +					$cluser->fetch($obj->fk_user_cloture);
    +					$this->user_cloture   = $cluser;
    +				}
    +
    +				$this->date_creation     = $this->db->jdate($obj->datec);
    +				$this->date_modification = $this->db->jdate($obj->datem);
    +				$this->date_validation   = $this->db->jdate($obj->datev);
    +			}
    +
    +			$this->db->free($result);
    +		}
    +		else
    +		{
    +			dol_print_error($this->db);
    +		}
    +	}
    +
    +	/**
    +	 * Initialise object with example values
    +	 * Id must be 0 if object instance is a specimen
    +	 *
    +	 * @return void
    +	 */
    +	public function initAsSpecimen()
    +	{
    +		$this->initAsSpecimenCommon();
    +	}
    +}
    +
    diff --git a/htdocs/emailcollector/index.html b/htdocs/emailcollector/index.html
    new file mode 100644
    index 00000000000..8b137891791
    --- /dev/null
    +++ b/htdocs/emailcollector/index.html
    @@ -0,0 +1 @@
    +
    diff --git a/htdocs/emailcollector/lib/emailcollector.lib.php b/htdocs/emailcollector/lib/emailcollector.lib.php
    new file mode 100644
    index 00000000000..e7cc3bcb3a0
    --- /dev/null
    +++ b/htdocs/emailcollector/lib/emailcollector.lib.php
    @@ -0,0 +1,85 @@
    +<?php
    +/* Copyright (C) ---Put here your own copyright and developer email---
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    	emailcollector/lib/emailcollector.lib.php
    + * \ingroup 	emailcollector
    + * \brief   	Library files with common functions for EmailCollector
    + */
    +
    +
    +/**
    + * Prepare array of tabs for EmailCollector
    + *
    + * @param	EmailCollector	$object		EmailCollector
    + * @return 	array					Array of tabs
    + */
    +function emailcollectorPrepareHead($object)
    +{
    +	global $db, $langs, $conf;
    +
    +	$langs->load("emailcollector@emailcollector");
    +
    +	$h = 0;
    +	$head = array();
    +
    +	$head[$h][0] = dol_buildpath("/admin/emailcollector_card.php", 1).'?id='.$object->id;
    +	$head[$h][1] = $langs->trans("Card");
    +	$head[$h][2] = 'card';
    +	$h++;
    +
    +	/*if (isset($object->fields['note_public']) || isset($object->fields['note_private']))
    +	{
    +		$nbNote = 0;
    +		if (!empty($object->note_private)) $nbNote++;
    +		if (!empty($object->note_public)) $nbNote++;
    +		$head[$h][0] = dol_buildpath('/emailcollector/emailcollector_note.php', 1).'?id='.$object->id;
    +		$head[$h][1] = $langs->trans('Notes');
    +		if ($nbNote > 0) $head[$h][1].= ' <span class="badge">'.$nbNote.'</span>';
    +		$head[$h][2] = 'note';
    +		$h++;
    +	}*/
    +
    +	/*require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +	require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php';
    +	$upload_dir = $conf->emailcollector->dir_output . "/emailcollector/" . dol_sanitizeFileName($object->ref);
    +	$nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview.*\.png)$'));
    +	$nbLinks=Link::count($db, $object->element, $object->id);
    +	$head[$h][0] = dol_buildpath("/emailcollector/emailcollector_document.php", 1).'?id='.$object->id;
    +	$head[$h][1] = $langs->trans('Documents');
    +	if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ' <span class="badge">'.($nbFiles+$nbLinks).'</span>';
    +	$head[$h][2] = 'document';
    +	$h++;
    +
    +	$head[$h][0] = dol_buildpath("/emailcollector/emailcollector_agenda.php", 1).'?id='.$object->id;
    +	$head[$h][1] = $langs->trans("Events");
    +	$head[$h][2] = 'agenda';
    +	$h++;
    +	*/
    +
    +	// Show more tabs from modules
    +	// Entries must be declared in modules descriptor with line
    +	//$this->tabs = array(
    +	//	'entity:+tabname:Title:@emailcollector:/emailcollector/mypage.php?id=__ID__'
    +	//); // to add new tab
    +	//$this->tabs = array(
    +	//	'entity:-tabname:Title:@emailcollector:/emailcollector/mypage.php?id=__ID__'
    +	//); // to remove a tab
    +	complete_head_from_modules($conf, $langs, $object, $head, $h, 'emailcollector');
    +
    +	return $head;
    +}
    diff --git a/htdocs/emailcollector/modulebuilder.txt b/htdocs/emailcollector/modulebuilder.txt
    new file mode 100644
    index 00000000000..24ea0d6eac5
    --- /dev/null
    +++ b/htdocs/emailcollector/modulebuilder.txt
    @@ -0,0 +1,3 @@
    +# DO NOT DELETE THIS FILE MANUALLY
    +# File to flag module built using official module template.
    +# When this file is present into a module directory, you can edit it with the module builder tool. Use ModuleBuilder if you want to delete module. 
    \ No newline at end of file
    diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php
    index 0f45ca61804..e99f04415b3 100644
    --- a/htdocs/expedition/card.php
    +++ b/htdocs/expedition/card.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2008	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2016	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2005		Simon TOSSER			<simon@kornog-computing.com>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2017	Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
      * Copyright (C) 2013       Marcos García           <marcosgdf@gmail.com>
    @@ -11,6 +11,7 @@
      * Copyright (C) 2015		Claudio Aschieri		<c.aschieri@19.coop>
      * Copyright (C) 2016-2018	Ferran Marcet			<fmarcet@2byte.es>
      * Copyright (C) 2016		Yasser Carreón			<yacasia@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -276,7 +277,7 @@ if (empty($reshook))
     			            // We try to set an amount
         			        // Case we dont use the list of available qty for each warehouse/lot
         			        // GUI does not allow this yet
    -    			        setEventMessage('StockIsRequiredToChooseWhichLotToUse', 'errors');
    +    			        setEventMessages($langs->trans("StockIsRequiredToChooseWhichLotToUse"), null, 'errors');
     			        }
     			    }
     			}
    @@ -315,7 +316,6 @@ if (empty($reshook))
     					unset($_POST["options_" . $key]);
     				}
     			}
    -
     	    }
     
     	    //var_dump($batch_line[2]);
    @@ -858,7 +858,6 @@ if (empty($reshook))
     	$mode='emailfromshipment';
     	$trackid='shi'.$object->id;
     	include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
    -
     }
     
     
    @@ -974,7 +973,7 @@ if ($action == 'create')
                 print '<td colspan="3">';
                 //print dol_print_date($object->date_livraison,"day");	// date_livraison come from order and will be stored into date_delivery planed.
                 $date_delivery = ($date_delivery?$date_delivery:$object->date_livraison); // $date_delivery comes from GETPOST
    -            print $form->select_date($date_delivery?$date_delivery:-1,'date_delivery',1,1,1);
    +            print $form->selectDate($date_delivery?$date_delivery:-1, 'date_delivery', 1, 1, 1);
                 print "</td>\n";
                 print '</tr>';
     
    @@ -1123,11 +1122,11 @@ if ($action == 'create')
                     {
     					if (empty($conf->productbatch->enabled))
     					{
    -                    	print '<td align="left">'.$langs->trans("Warehouse").' ('.$langs->trans("Stock").')</td>';
    +                    	print '<td class="left">'.$langs->trans("Warehouse").' ('.$langs->trans("Stock").')</td>';
     					}
     					else
     					{
    -						print '<td align="left">'.$langs->trans("Warehouse").' / '.$langs->trans("Batch").' ('.$langs->trans("Stock").')</td>';
    +						print '<td class="left">'.$langs->trans("Warehouse").' / '.$langs->trans("Batch").' ('.$langs->trans("Stock").')</td>';
     					}
                     }
                     print "</tr>\n";
    @@ -1249,7 +1248,7 @@ if ($action == 'create')
     						// Stock
     						if (! empty($conf->stock->enabled))
     						{
    -							print '<td align="left">';
    +							print '<td class="left">';
     							if ($line->product_type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))   // Type of product need stock change ?
     							{
     								// Show warehouse combo list
    @@ -1335,7 +1334,7 @@ if ($action == 'create')
     								print '</td>';
     
     								print '<!-- Show details of lot -->';
    -								print '<td align="left">';
    +								print '<td class="left">';
     
     								print $staticwarehouse->getNomUrl(0).' / ';
     
    @@ -1365,7 +1364,7 @@ if ($action == 'create')
     							print '<input name="qtyl'.$indiceAsked.'_'.$subj.'" id="qtyl'.$indiceAsked.'_'.$subj.'" type="text" size="4" value="0" disabled="disabled"> ';
     							print '</td>';
     
    -							print '<td align="left">';
    +							print '<td class="left">';
     							print img_warning().' '.$langs->trans("NoProductToShipFoundIntoStock", $staticwarehouse->libelle);
     							print '</td></tr>';
     						}
    @@ -1413,14 +1412,13 @@ if ($action == 'create')
     								// Stock
     								if (! empty($conf->stock->enabled))
     								{
    -									print '<td align="left">';
    +									print '<td class="left">';
     									if ($line->product_type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
     									{
     										print $tmpwarehouseObject->getNomUrl(0).' ';
     
     										print '<!-- Show details of stock -->';
     										print '('.$stock.')';
    -
     									}
     									else
     									{
    @@ -1497,7 +1495,7 @@ if ($action == 'create')
     									print '<input name="qtyl'.$indiceAsked.'_'.$subj.'" id="qtyl'.$indiceAsked.'_'.$subj.'" type="text" size="4" value="'.$deliverableQty.'">';
     									print '</td>';
     
    -									print '<td align="left">';
    +									print '<td class="left">';
     
     									print $tmpwarehouseObject->getNomUrl(0).' / ';
     
    @@ -1521,7 +1519,6 @@ if ($action == 'create')
     								}
     							}
     						}
    -
     					}
     					if ($subj == 0) // Line not shown yet, we show it
     					{
    @@ -1542,7 +1539,7 @@ if ($action == 'create')
     						}
     						print '</td>';
     
    -						print '<td align="left">';
    +						print '<td class="left">';
     						if ($line->product_type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
     						{
     							$warehouse_selected_id = GETPOST('entrepot_id','int');
    @@ -1668,21 +1665,18 @@ else if ($id || $ref)
     			}
     
     			$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('ValidateSending'),$text,'confirm_valid','',0,1);
    -
     		}
     		// Confirm cancelation
     		if ($action == 'annuler')
     		{
     			$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('CancelSending'),$langs->trans("ConfirmCancelSending",$object->ref),'confirm_cancel','',0,1);
    -
     		}
     
    -		if (! $formconfirm) {
    -		    $parameters = array();
    -		    $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    -		    if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    -		    elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    -		}
    +		// Call Hook formConfirm
    +		$parameters = array();
    +		$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +		if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +		elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
     
     		// Print form confirm
     		print $formconfirm;
    @@ -1799,7 +1793,7 @@ else if ($id || $ref)
     			print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
     			print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     			print '<input type="hidden" name="action" value="setdate_livraison">';
    -			print $form->select_date($object->date_delivery?$object->date_delivery:-1,'liv_',1,1,'',"setdate_livraison",1,0,1);
    +			print $form->selectDate($object->date_delivery?$object->date_delivery:-1, 'liv_', 1, 1, '', "setdate_livraison", 1, 0);
     			print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
     			print '</form>';
     		}
    @@ -1826,7 +1820,6 @@ else if ($id || $ref)
     			print ' <input class="button" name="modify" value="'.$langs->trans("Modify").'" type="submit">';
     			print ' <input class="button" name="cancel" value="'.$langs->trans("Cancel").'" type="submit">';
     			print '</form>';
    -
     		}
     		else
     		{
    @@ -1864,7 +1857,6 @@ else if ($id || $ref)
     			print ' <input class="button" name="modify" value="'.$langs->trans("Modify").'" type="submit">';
     			print ' <input class="button" name="cancel" value="'.$langs->trans("Cancel").'" type="submit">';
     			print '</form>';
    -
     		}
     		else
     		{
    @@ -2011,7 +2003,7 @@ else if ($id || $ref)
             print '<div class="div-table-responsive-no-min">';
     		print '<table class="noborder" width="100%">';
     		print '<tr class="liste_titre">';
    -		// #
    +		// Adds a line numbering column
     		if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER))
     		{
     			print '<td width="5" align="center">&nbsp;</td>';
    @@ -2060,12 +2052,12 @@ else if ($id || $ref)
     			}
     			if (! empty($conf->stock->enabled))
     			{
    -				print '<td align="left">'.$langs->trans("WarehouseSource").'</td>';
    +				print '<td class="left">'.$langs->trans("WarehouseSource").'</td>';
     			}
     
     			if (! empty($conf->productbatch->enabled))
     			{
    -				print '<td align="left">'.$langs->trans("Batch").'</td>';
    +				print '<td class="left">'.$langs->trans("Batch").'</td>';
     			}
     		}
     		print '<td align="center">'.$langs->trans("CalculatedWeight").'</td>';
    @@ -2143,7 +2135,7 @@ else if ($id || $ref)
     		    print '<!-- origin line id = '.$lines[$i]->origin_line_id.' -->'; // id of order line
     			print '<tr class="oddeven">';
     
    -			// #
    +			// Adds a line numbering column
     			if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER))
     			{
     				print '<td align="center">'.($i+1).'</td>';
    @@ -2321,7 +2313,7 @@ else if ($id || $ref)
     				// Warehouse source
     				if (! empty($conf->stock->enabled))
     				{
    -					print '<td align="left">';
    +					print '<td class="left">';
     					if ($lines[$i]->entrepot_id > 0)
     					{
     						$entrepot = new Entrepot($db);
    @@ -2471,7 +2463,7 @@ else if ($id || $ref)
     				}
     				else
     				{
    -					print '<a class="butActionRefused" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans("Validate").'</a>';
    +					print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans("Validate").'</a>';
     				}
     			}
     
    @@ -2496,7 +2488,7 @@ else if ($id || $ref)
     				{
     					print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=presend&mode=init#formmailbeforetitle">'.$langs->trans('SendMail').'</a>';
     				}
    -				else print '<a class="butActionRefused" href="#">'.$langs->trans('SendMail').'</a>';
    +				else print '<a class="butActionRefused classfortooltip" href="#">'.$langs->trans('SendMail').'</a>';
     			}
     
     			// Create bill
    @@ -2536,7 +2528,6 @@ else if ($id || $ref)
     			{
     				print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delete">'.$langs->trans("Delete").'</a>';
     			}
    -
     		}
     
     		print '</div>';
    @@ -2596,7 +2587,6 @@ else if ($id || $ref)
     	include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expedition/class/api_shipments.class.php b/htdocs/expedition/class/api_shipments.class.php
    index 844a6c95305..834c0bf2bda 100644
    --- a/htdocs/expedition/class/api_shipments.class.php
    +++ b/htdocs/expedition/class/api_shipments.class.php
    @@ -35,7 +35,7 @@ class Shipments extends DolibarrApi
         static $FIELDS = array(
             'socid',
         	'origin_id',
    -    	'origin_type'
    +    	'origin_type',
         );
     
         /**
    @@ -99,7 +99,8 @@ class Shipments extends DolibarrApi
          *
     	 * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -192,13 +193,13 @@ class Shipments extends DolibarrApi
             foreach($request_data as $field => $value) {
                 $this->shipment->$field = $value;
             }
    -        /*if (isset($request_data["lines"])) {
    +        if (isset($request_data["lines"])) {
               $lines = array();
               foreach ($request_data["lines"] as $line) {
                 array_push($lines, (object) $line);
               }
               $this->shipment->lines = $lines;
    -        }*/
    +        }
     
             if ($this->shipment->create(DolibarrApiAccess::$user) < 0) {
                 throw new RestException(500, "Error creating shipment", array_merge(array($this->shipment->error), $this->shipment->errors));
    @@ -217,7 +218,8 @@ class Shipments extends DolibarrApi
          * @return int
          */
         /*
    -    function getLines($id) {
    +    function getLines($id)
    +    {
           if(! DolibarrApiAccess::$user->rights->expedition->lire) {
     		  	throw new RestException(401);
     		  }
    @@ -250,7 +252,8 @@ class Shipments extends DolibarrApi
          * @return int
          */
         /*
    -    function postLine($id, $request_data = null) {
    +    function postLine($id, $request_data = null)
    +    {
           if(! DolibarrApiAccess::$user->rights->expedition->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -312,7 +315,8 @@ class Shipments extends DolibarrApi
          * @return object
          */
         /*
    -    function putLine($id, $lineid, $request_data = null) {
    +    function putLine($id, $lineid, $request_data = null)
    +    {
           if(! DolibarrApiAccess::$user->rights->expedition->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -372,7 +376,8 @@ class Shipments extends DolibarrApi
          * @throws 401
          * @throws 404
          */
    -    function deleteLine($id, $lineid) {
    +    function deleteLine($id, $lineid)
    +    {
         	if(! DolibarrApiAccess::$user->rights->expedition->creer) {
         		throw new RestException(401);
         	}
    @@ -407,7 +412,8 @@ class Shipments extends DolibarrApi
          *
          * @return int
          */
    -    function put($id, $request_data = null) {
    +    function put($id, $request_data = null)
    +    {
           if (! DolibarrApiAccess::$user->rights->expedition->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -466,7 +472,6 @@ class Shipments extends DolibarrApi
                     'message' => 'Shipment deleted'
                 )
             );
    -
         }
     
         /**
    @@ -537,7 +542,8 @@ class Shipments extends DolibarrApi
          * @throws 404
          * @throws 405
          */
    -/*    function setinvoiced($id) {
    +/*    function setinvoiced($id)
    +    {
     
             if(! DolibarrApiAccess::$user->rights->expedition->creer) {
                     throw new RestException(401);
    @@ -573,7 +579,8 @@ class Shipments extends DolibarrApi
          * @throws 405
          */
         /*
    -    function createShipmentFromOrder($orderid) {
    +    function createShipmentFromOrder($orderid)
    +    {
     
             require_once DOL_DOCUMENT_ROOT . '/commande/class/commande.class.php';
     
    @@ -608,7 +615,8 @@ class Shipments extends DolibarrApi
          * @param   object  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    @@ -653,7 +661,6 @@ class Shipments extends DolibarrApi
                 if (!isset($data[$field]))
                     throw new RestException(400, "$field field missing");
                 $shipment[$field] = $data[$field];
    -
             }
             return $shipment;
         }
    diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php
    index 5848c1b9d9d..48e84cf1cc4 100644
    --- a/htdocs/expedition/class/expedition.class.php
    +++ b/htdocs/expedition/class/expedition.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2003-2008	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2007		Franky Van Liedekerke	<franky.van.liedekerke@telenet.be>
      * Copyright (C) 2006-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2011-2017	Juanjo Menent			<jmenent@2byte.es>
    @@ -10,7 +10,8 @@
      * Copyright (C) 2014-2017  Francis Appels          <francis.appels@yahoo.com>
      * Copyright (C) 2015       Claudio Aschieri        <c.aschieri@19.coop>
      * Copyright (C) 2016		Ferran Marcet			<fmarcet@2byte.es>
    - * Copyright (C) 2018      Nicolas ZABOURI			<info@inovea-conseil.com>
    + * Copyright (C) 2018       Nicolas ZABOURI			<info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -44,60 +45,123 @@ if (! empty($conf->productbatch->enabled)) require_once DOL_DOCUMENT_ROOT.'/expe
      */
     class Expedition extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element="shipping";
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element="fk_expedition";
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element="expedition";
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
     	public $table_element_line="expeditiondet";
    -	public $ismultientitymanaged = 1;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 1;
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'sending';
     
    -	var $socid;
    -	var $ref_customer;
    -	var $ref_int;
    -	var $brouillon;
    -	var $entrepot_id;
    -	var $lines=array();
    -	var $tracking_number;
    -	var $tracking_url;
    -	var $billed;
    -	var $model_pdf;
    +	public $socid;
     
    -	var $trueWeight;
    -	var $weight_units;
    -	var $trueWidth;
    -	var $width_units;
    -	var $trueHeight;
    -	var $height_units;
    -	var $trueDepth;
    -	var $depth_units;
    +	/**
    +	 * @var string Customer ref
    +	 */
    +	public $ref_customer;
    +
    +	/**
    +	 * @var string internal ref
    +	 */
    +	public $ref_int;
    +
    +	public $brouillon;
    +
    +	/**
    +	 * @var int warehouse id
    +	 */
    +	public $entrepot_id;
    +	public $lines=array();
    +
    +	/**
    +	 * @var string Tracking number
    +	 */
    +	public $tracking_number;
    +
    +	/**
    +	 * @var string Tracking url
    +	 */
    +	public $tracking_url;
    +	public $billed;
    +
    +	/**
    +	 * @var string name of pdf model
    +	 */
    +	public $model_pdf;
    +
    +	public $trueWeight;
    +	public $weight_units;
    +	public $trueWidth;
    +	public $width_units;
    +	public $trueHeight;
    +	public $height_units;
    +	public $trueDepth;
    +	public $depth_units;
     	// A denormalized value
    -	var $trueSize;
    +	public $trueSize;
    +
    +	public $date_delivery;		// Date delivery planed
     
    -	var $date_delivery;		// Date delivery planed
     	/**
     	 * @deprecated
     	 * @see date_shipping
     	 */
    -	var $date;
    +	public $date;
    +
     	/**
     	 * @deprecated
     	 * @see date_shipping
     	 */
    -	var $date_expedition;
    +	public $date_expedition;
    +
     	/**
     	 * Effective delivery date
     	 * @var int
     	 */
     	public $date_shipping;
    -	var $date_creation;
    -	var $date_valid;
     
    -	var $meths;
    -	var $listmeths;			// List of carriers
    +	public $date_creation;
    +	public $date_valid;
     
    +	public $meths;
    +	public $listmeths;			// List of carriers
     
    +    /**
    +	 * Draft status
    +	 */
     	const STATUS_DRAFT = 0;
    +
    +	/**
    +	 * Validated status
    +	 */
     	const STATUS_VALIDATED = 1;
    +
    +	/**
    +	 * Closed status
    +	 */
     	const STATUS_CLOSED = 2;
     
     
    @@ -344,7 +408,6 @@ class Expedition extends CommonObject
     						$this->db->rollback();
     						return -1*$error;
     					}
    -
     				}
     				else
     				{
    @@ -371,6 +434,7 @@ class Expedition extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Create a expedition line
     	 *
    @@ -382,6 +446,7 @@ class Expedition extends CommonObject
     	 */
     	function create_line($entrepot_id, $origin_line_id, $qty,$array_options=0)
     	{
    +        //phpcs:enable
     		$expeditionline = new ExpeditionLigne($this->db);
     		$expeditionline->fk_expedition = $this->id;
     		$expeditionline->entrepot_id = $entrepot_id;
    @@ -397,6 +462,7 @@ class Expedition extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Create the detail (eat-by date) of the expedition line
     	 *
    @@ -406,6 +472,7 @@ class Expedition extends CommonObject
     	 */
     	function create_line_batch($line_ext,$array_options=0)
     	{
    +        // phpcs:enable
     		$error = 0;
     		$stockLocationQty = array(); // associated array with batch qty in stock location
     
    @@ -467,10 +534,12 @@ class Expedition extends CommonObject
     		$sql.= ", e.note_private, e.note_public";
     		$sql.= ', e.fk_incoterms, e.location_incoterms';
     		$sql.= ', i.libelle as libelle_incoterms';
    +		$sql.= ', s.libelle as shipping_method';
     		$sql.= ", el.fk_source as origin_id, el.sourcetype as origin";
     		$sql.= " FROM ".MAIN_DB_PREFIX."expedition as e";
     		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON el.fk_target = e.rowid AND el.targettype = '".$this->db->escape($this->element)."'";
     		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON e.fk_incoterms = i.rowid';
    +		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_shipment_mode as s ON e.fk_shipping_method = s.rowid';
     		$sql.= " WHERE e.entity IN (".getEntity('expedition').")";
     		if ($id)   	  $sql.= " AND e.rowid=".$id;
     		if ($ref)     $sql.= " AND e.ref='".$this->db->escape($ref)."'";
    @@ -488,9 +557,9 @@ class Expedition extends CommonObject
     				$this->id                   = $obj->rowid;
     				$this->ref                  = $obj->ref;
     				$this->socid                = $obj->socid;
    -				$this->ref_customer			= $obj->ref_customer;
    -				$this->ref_ext				= $obj->ref_ext;
    -				$this->ref_int				= $obj->ref_int;
    +				$this->ref_customer	    = $obj->ref_customer;
    +				$this->ref_ext		    = $obj->ref_ext;
    +				$this->ref_int		    = $obj->ref_int;
     				$this->statut               = $obj->fk_statut;
     				$this->user_author_id       = $obj->fk_user_author;
     				$this->date_creation        = $this->db->jdate($obj->date_creation);
    @@ -500,12 +569,13 @@ class Expedition extends CommonObject
     				$this->date_delivery        = $this->db->jdate($obj->date_delivery);	// Date planed
     				$this->fk_delivery_address  = $obj->fk_address;
     				$this->modelpdf             = $obj->model_pdf;
    -				$this->shipping_method_id	= $obj->fk_shipping_method;
    +				$this->shipping_method_id   = $obj->fk_shipping_method;
    +				$this->shipping_method	    = $obj->shipping_method;
     				$this->tracking_number      = $obj->tracking_number;
     				$this->origin               = ($obj->origin?$obj->origin:'commande'); // For compatibility
     				$this->origin_id            = $obj->origin_id;
     				$this->billed               = $obj->billed;
    -				$this->fk_project			= $obj->fk_projet;
    +				$this->fk_project	    = $obj->fk_projet;
     
     				$this->trueWeight           = $obj->weight;
     				$this->weight_units         = $obj->weight_units;
    @@ -521,20 +591,20 @@ class Expedition extends CommonObject
     				$this->note_private         = $obj->note_private;
     
     				// A denormalized value
    -				$this->trueSize           	= $obj->size."x".$obj->width."x".$obj->height;
    +				$this->trueSize             = $obj->size."x".$obj->width."x".$obj->height;
     				$this->size_units           = $obj->size_units;
     
     				//Incoterms
    -				$this->fk_incoterms = $obj->fk_incoterms;
    -				$this->location_incoterms = $obj->location_incoterms;
    -				$this->libelle_incoterms = $obj->libelle_incoterms;
    +				$this->fk_incoterms         = $obj->fk_incoterms;
    +				$this->location_incoterms   = $obj->location_incoterms;
    +				$this->libelle_incoterms    = $obj->libelle_incoterms;
     
     				$this->db->free($result);
     
     				if ($this->statut == 0) $this->brouillon = 1;
     
     				// Tracking url
    -				$this->GetUrlTrackingStatus($obj->tracking_number);
    +				$this->getUrlTrackingStatus($obj->tracking_number);
     
     				/*
     				 * Thirparty
    @@ -714,7 +784,6 @@ class Expedition extends CommonObject
     				$this->error=$this->db->error();
     				return -2;
     			}
    -
     		}
     
     		// Change status of order to "shipment in process"
    @@ -793,6 +862,7 @@ class Expedition extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Create a delivery receipt from a shipment
     	 *
    @@ -801,6 +871,7 @@ class Expedition extends CommonObject
     	 */
     	function create_delivery($user)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if ($conf->livraison_bon->enabled)
    @@ -900,6 +971,7 @@ class Expedition extends CommonObject
     		$this->lines[$num] = $line;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Add a shipment line with batch record
     	 *
    @@ -909,6 +981,7 @@ class Expedition extends CommonObject
     	 */
     	function addline_batch($dbatch,$array_options=0)
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$num = count($this->lines);
    @@ -1113,7 +1186,7 @@ class Expedition extends CommonObject
     		// Stock control
     		if (! $error && $conf->stock->enabled && $conf->global->STOCK_CALCULATE_ON_SHIPMENT && $this->statut > 0)
     		{
    -			require_once(DOL_DOCUMENT_ROOT."/product/stock/class/mouvementstock.class.php");
    +			require_once DOL_DOCUMENT_ROOT."/product/stock/class/mouvementstock.class.php";
     
     			$langs->load("agenda");
     
    @@ -1285,9 +1358,9 @@ class Expedition extends CommonObject
     			$this->db->rollback();
     			return -1;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Load lines
     	 *
    @@ -1295,6 +1368,7 @@ class Expedition extends CommonObject
     	 */
     	function fetch_lines()
     	{
    +        // phpcs:enable
     		global $conf, $mysoc;
     		// TODO: recuperer les champs du document associe a part
     
    @@ -1574,6 +1648,7 @@ class Expedition extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return label of a status
     	 *
    @@ -1583,37 +1658,38 @@ class Expedition extends CommonObject
     	 */
     	function LibStatut($statut,$mode)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode==0)
     		{
     			if ($statut==0) return $langs->trans($this->statuts[$statut]);
    -			if ($statut==1) return $langs->trans($this->statuts[$statut]);
    -			if ($statut==2) return $langs->trans($this->statuts[$statut]);
    +			elseif ($statut==1) return $langs->trans($this->statuts[$statut]);
    +			elseif ($statut==2) return $langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode==1)
    +		elseif ($mode==1)
     		{
     			if ($statut==0) return $langs->trans($this->statutshorts[$statut]);
    -			if ($statut==1) return $langs->trans($this->statutshorts[$statut]);
    -			if ($statut==2) return $langs->trans($this->statutshorts[$statut]);
    +			elseif ($statut==1) return $langs->trans($this->statutshorts[$statut]);
    +			elseif ($statut==2) return $langs->trans($this->statutshorts[$statut]);
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut0');
    -			if ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut4');
    -			if ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut6');
    +			elseif ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut4');
    +			elseif ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut6');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]);
    -			if ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut4').' '.$langs->trans($this->statuts[$statut]);
    -			if ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
    +			elseif ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut4').' '.$langs->trans($this->statuts[$statut]);
    +			elseif ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut==0) return $langs->trans($this->statutshorts[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]),'statut0');
    -			if ($statut==1) return $langs->trans($this->statutshorts[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]),'statut4');
    -			if ($statut==2) return $langs->trans($this->statutshorts[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]),'statut6');
    +			elseif ($statut==1) return $langs->trans($this->statutshorts[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]),'statut4');
    +			elseif ($statut==2) return $langs->trans($this->statutshorts[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]),'statut6');
     		}
     	}
     
    @@ -1694,9 +1770,9 @@ class Expedition extends CommonObject
     			$this->lines[]=$line;
     			$xnbp++;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set the planned delivery date
     	 *
    @@ -1706,6 +1782,7 @@ class Expedition extends CommonObject
     	 */
     	function set_date_livraison($user, $date_livraison)
     	{
    +        // phpcs:enable
     		if ($user->rights->expedition->creer)
     		{
     			$sql = "UPDATE ".MAIN_DB_PREFIX."expedition";
    @@ -1731,6 +1808,7 @@ class Expedition extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Fetch deliveries method and return an array. Load array this->meths(rowid=>label).
     	 *
    @@ -1738,6 +1816,7 @@ class Expedition extends CommonObject
     	 */
     	function fetch_delivery_methods()
     	{
    +        // phpcs:enable
     		global $langs;
     		$this->meths = array();
     
    @@ -1757,6 +1836,7 @@ class Expedition extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Fetch all deliveries method and return an array. Load array this->listmeths.
     	 *
    @@ -1765,6 +1845,7 @@ class Expedition extends CommonObject
     	 */
     	function list_delivery_methods($id='')
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$this->listmeths = array();
    @@ -1791,6 +1872,7 @@ class Expedition extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update/create delivery method.
     	 *
    @@ -1800,6 +1882,7 @@ class Expedition extends CommonObject
     	 */
     	function update_delivery_method($id='')
     	{
    +        // phpcs:enable
     		if ($id=='')
     		{
     			$sql = "INSERT INTO ".MAIN_DB_PREFIX."c_shipment_mode (code, libelle, description, tracking)";
    @@ -1819,6 +1902,7 @@ class Expedition extends CommonObject
     		if ($resql < 0) dol_print_error($this->db,'');
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Activate delivery method.
     	 *
    @@ -1828,13 +1912,14 @@ class Expedition extends CommonObject
     	 */
     	function activ_delivery_method($id)
     	{
    +        // phpcs:enable
     		$sql = 'UPDATE '.MAIN_DB_PREFIX.'c_shipment_mode SET active=1';
     		$sql.= ' WHERE rowid='.$id;
     
     		$resql = $this->db->query($sql);
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  DesActivate delivery method.
     	 *
    @@ -1844,11 +1929,11 @@ class Expedition extends CommonObject
     	 */
     	function disable_delivery_method($id)
     	{
    +        // phpcs:enable
     		$sql = 'UPDATE '.MAIN_DB_PREFIX.'c_shipment_mode SET active=0';
     		$sql.= ' WHERE rowid='.$id;
     
     		$resql = $this->db->query($sql);
    -
     	}
     
     
    @@ -1858,7 +1943,7 @@ class Expedition extends CommonObject
     	 * @param	string	$value		Value
     	 * @return	void
     	 */
    -	function GetUrlTrackingStatus($value='')
    +	function getUrlTrackingStatus($value='')
     	{
     		if (! empty($this->shipping_method_id))
     		{
    @@ -2037,6 +2122,7 @@ class Expedition extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Classify the shipping as invoiced (used when WORKFLOW_BILL_ON_SHIPMENT is on)
     	 *
    @@ -2044,6 +2130,7 @@ class Expedition extends CommonObject
     	 */
     	function set_billed()
     	{
    +        // phpcs:enable
     		global $user;
     		$error=0;
     
    @@ -2063,7 +2150,6 @@ class Expedition extends CommonObject
     			if ($result < 0) {
     				$error++;
     			}
    -
     		} else {
     			$error++;
     			$this->errors[]=$this->db->lasterror;
    @@ -2190,7 +2276,6 @@ class Expedition extends CommonObject
     					$error++;
     				}
        			}
    -
     		} else {
     			$error++;
     			$this->errors[]=$this->db->lasterror();
    @@ -2216,7 +2301,7 @@ class Expedition extends CommonObject
     	 *  @param      int			$hidedetails    Hide details of lines
     	 *  @param      int			$hidedesc       Hide description
     	 *  @param      int			$hideref        Hide ref
    -         *  @param   null|array  $moreparams     Array to provide more information
    +     *  @param      null|array  $moreparams     Array to provide more information
     	 *  @return     int         				0 if KO, 1 if OK
     	 */
     	public function generateDocument($modele, $outputlangs,$hidedetails=0, $hidedesc=0, $hideref=0,$moreparams=null)
    @@ -2267,64 +2352,151 @@ class Expedition extends CommonObject
      */
     class ExpeditionLigne extends CommonObjectLine
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='expeditiondet';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='expeditiondet';
     
    -	public $fk_origin_line;
    -
    -	/**
    -	 * Id of shipment
    -	 * @var int
    -	 */
    -	public $fk_expedition;
    -
    -	var $db;
    -
    -	// From llx_expeditiondet
    -	var $qty;
    -	var $qty_shipped;
    -	var $fk_product;
    -	var $detail_batch;
    -	/**
    -	 * Id of warehouse
    -	 * @var int
    -	 */
    -	public $entrepot_id;
    -
    -
    -	// From llx_commandedet or llx_propaldet
    -	var $qty_asked;
    -	public $product_ref;
    -	public $product_label;
    -	public $product_desc;
    -
    -
    -	// Invoicing
    -	var $remise_percent;
    -	var $total_ht;			// Total net of tax
    -	var $total_ttc;			// Total with tax
    -	var $total_tva;			// Total VAT
    -	var $total_localtax1;   // Total Local tax 1
    -	var $total_localtax2;   // Total Local tax 2
    -
    -
    -
    -	// Deprecated
     	/**
     	 * @deprecated
     	 * @see fk_origin_line
     	 */
    -	var $origin_line_id;
    +	public $origin_line_id;
    +
     	/**
    -	 * @deprecated
    -	 * @see product_ref
    +     * @var int ID
    +     */
    +	public $fk_origin_line;
    +
    +	/**
    +	 * @var int Id of shipment
     	 */
    -	var $ref;
    +	public $fk_expedition;
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +     * @var float qty asked From llx_expeditiondet
    +     */
    +    public $qty;
    +
    +    /**
    +     * @var float qty shipped
    +     */
    +    public $qty_shipped;
    +
    +    /**
    +     * @var int Id of product
    +     */
    +    public $fk_product;
    +    public $detail_batch;
    +
    +    /**
    +     * @var int Id of warehouse
    +     */
    +	public $entrepot_id;
    +
    +
    +    /**
    +     * @var float qty asked From llx_commandedet or llx_propaldet
    +     */
    +	public $qty_asked;
    +
    +    /**
    +     * @deprecated
    +     * @see product_ref
    +     */
    +    public $ref;
    +
    +	/**
    +	 * @var string product ref
    +	 */
    +	public $product_ref;
    +
     	/**
     	 * @deprecated
     	 * @see product_label
     	 */
    -	var $libelle;
    +	public $libelle;
    +
    +    /**
    +     * @var string product label
    +     */
    +	public $product_label;
    +
    +    /**
    +     * @var string product description
    +     * @deprecated
    +     * @see product_desc
    +     */
    +    public $desc;
    +
    +    /**
    +     * @var string product description
    +     */
    +	public $product_desc;
    +
    +    /**
    +     * @var float weight
    +     */
    +    public $weight;
    +    public $weight_units;
    +
    +    /**
    +     * @var float weight
    +     */
    +    public $length;
    +    public $length_units;
    +
    +    /**
    +     * @var float weight
    +     */
    +    public $surface;
    +    public $surface_units;
    +
    +    /**
    +     * @var float weight
    +     */
    +    public $volume;
    +    public $volume_units;
    +
    +	// Invoicing
    +	public $remise_percent;
    +    public $tva_tx;
    +
    +    /**
    +     * @var float total without tax
    +     */
    +    public $total_ht;
    +
    +    /**
    +     * @var float total with tax
    +     */
    +    public $total_ttc;
    +
    +    /**
    +     * @var float total vat
    +     */
    +    public $total_tva;
    +
    +    /**
    +     * @var float total localtax 1
    +     */
    +    public $total_localtax1;
    +
    +    /**
    +     * @var float total localtax 2
    +     */
    +    public $total_localtax2;
    +
     
         /**
          *	Constructor
    @@ -2375,7 +2547,7 @@ class ExpeditionLigne extends CommonObjectLine
     	 *
     	 *	@param      User	$user			User that modify
     	 *	@param      int		$notrigger		1 = disable triggers
    -	 *	@return		int						<0 if KO, line id >0 if OK
    +	 *	@return     int						<0 if KO, line id >0 if OK
     	 */
     	function insert($user=null, $notrigger=0)
     	{
    @@ -2728,4 +2900,3 @@ class ExpeditionLigne extends CommonObjectLine
     		}
     	}
     }
    -
    diff --git a/htdocs/expedition/class/expeditionbatch.class.php b/htdocs/expedition/class/expeditionbatch.class.php
    index 520f760aee0..850e4c0dda3 100644
    --- a/htdocs/expedition/class/expeditionbatch.class.php
    +++ b/htdocs/expedition/class/expeditionbatch.class.php
    @@ -28,7 +28,11 @@
      */
     class ExpeditionLineBatch extends CommonObject
     {
    -	var $element='expeditionlignebatch';			//!< Id that identify managed objects
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='expeditionlignebatch';
    +
     	private static $_table_element='expeditiondet_batch';		//!< Name of table without prefix where object is stored
     
     	var $sellby;
    @@ -48,7 +52,6 @@ class ExpeditionLineBatch extends CommonObject
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     	/**
    @@ -234,5 +237,4 @@ class ExpeditionLineBatch extends CommonObject
     			return -1;
     		}
     	}
    -
     }
    diff --git a/htdocs/expedition/class/expeditionstats.class.php b/htdocs/expedition/class/expeditionstats.class.php
    index 5303d6d8b7b..26f7bda7a2a 100644
    --- a/htdocs/expedition/class/expeditionstats.class.php
    +++ b/htdocs/expedition/class/expeditionstats.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (c) 2005-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -34,6 +34,9 @@ include_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
      */
     class ExpeditionStats extends Stats
     {
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element;
     
     	var $socid;
    diff --git a/htdocs/expedition/contact.php b/htdocs/expedition/contact.php
    index 3f557059600..f9ea697e50d 100644
    --- a/htdocs/expedition/contact.php
    +++ b/htdocs/expedition/contact.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Patrick Rouillon     <patrick@rouillon.net>
      * Copyright (C) 2005-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -265,9 +265,8 @@ if ($id > 0 || ! empty($ref))
     	    $res=@include dol_buildpath($reldir.'/contacts.tpl.php');
     	    if ($res) break;
     	}
    -
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expedition/document.php b/htdocs/expedition/document.php
    index 4f9616df5ed..21f357b667e 100644
    --- a/htdocs/expedition/document.php
    +++ b/htdocs/expedition/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
    @@ -96,7 +96,7 @@ if ($id > 0 || ! empty($ref)){
     		dol_fiche_head($head, 'documents', $langs->trans("Shipment"), -1, 'sending');
     	
     
    -		// Construit liste des fichiers
    +		// Build file list
     		$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     		$totalsize=0;
     		foreach($filearray as $key => $file){
    @@ -185,7 +185,6 @@ else{
     	exit;
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expedition/index.php b/htdocs/expedition/index.php
    index 042d107b58e..b34b149026c 100644
    --- a/htdocs/expedition/index.php
    +++ b/htdocs/expedition/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -291,6 +291,6 @@ else dol_print_error($db);
     
     print '</div></div></div>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php
    index 95f6dbd616b..b3fbc35bf26 100644
    --- a/htdocs/expedition/list.php
    +++ b/htdocs/expedition/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016-2018 Ferran Marcet        <fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -77,7 +77,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('expedition');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -162,7 +162,6 @@ if (empty($reshook))
     		setEventMessages($langs->trans('TooManyRecordForMassAction',$maxformassaction), null, 'errors');
     		$error++;
     	}
    -
     }
     
     
    @@ -634,5 +633,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/expedition/note.php b/htdocs/expedition/note.php
    index fafaf10fe1f..01aa08f34af 100644
    --- a/htdocs/expedition/note.php
    +++ b/htdocs/expedition/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012  Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013 	   Florian Henry        <florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -152,7 +152,6 @@ if ($id > 0 || ! empty($ref))
     	dol_fiche_end();
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expedition/shipment.php b/htdocs/expedition/shipment.php
    index cb058e44598..48bfd1f4ce2 100644
    --- a/htdocs/expedition/shipment.php
    +++ b/htdocs/expedition/shipment.php
    @@ -1,8 +1,10 @@
     <?php
     /* Copyright (C) 2003-2006	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012-2015	Juanjo Menent			<jmenent@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + * Copyright (C) 2018       Philippe Grand          <philippe.grand@atoo-net.com>
      *
      * 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
    @@ -213,7 +215,6 @@ if (empty($reshook))
         }
     
         include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
    -
     }
     
     /*
    @@ -255,15 +256,13 @@ if ($id > 0 || ! empty($ref))
     		if ($action == 'cloture')
     		{
     			$formconfirm = $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id,$langs->trans("CloseShipment"),$langs->trans("ConfirmCloseShipment"),"confirm_cloture");
    -
     		}
     
    -		if (! $formconfirm) {
    -		    $parameters = array();
    -		    $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    -		    if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    -		    elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    -		}
    +		// Call Hook formConfirm
    +		$parameters = array();
    +		$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +		if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +		elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
     
     		// Print form confirm
     		print $formconfirm;
    @@ -371,7 +370,7 @@ if ($id > 0 || ! empty($ref))
     			print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
     			print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     			print '<input type="hidden" name="action" value="setdatedelivery">';
    -			$form->select_date($object->date_livraison>0?$object->date_livraison:-1,'liv_','','','',"setdatedelivery");
    +			print $form->selectDate($object->date_livraison>0?$object->date_livraison:-1, 'liv_', '', '', '', "setdatedelivery");
     			print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
     			print '</form>';
     		}
    @@ -552,17 +551,17 @@ if ($id > 0 || ! empty($ref))
     		if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency))
     		{
     		    // Multicurrency Amount HT
    -		    print '<tr><td class="titlefieldmiddle">' . fieldLabel('MulticurrencyAmountHT','multicurrency_total_ht') . '</td>';
    +		    print '<tr><td class="titlefieldmiddle">' . $form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0) . '</td>';
     		    print '<td class="nowrap">' . price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		    print '</tr>';
     
     		    // Multicurrency Amount VAT
    -		    print '<tr><td>' . fieldLabel('MulticurrencyAmountVAT','multicurrency_total_tva') . '</td>';
    +		    print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0) . '</td>';
     		    print '<td class="nowrap">' . price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		    print '</tr>';
     
     		    // Multicurrency Amount TTC
    -		    print '<tr><td>' . fieldLabel('MulticurrencyAmountTTC','multicurrency_total_ttc') . '</td>';
    +		    print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0) . '</td>';
     		    print '<td class="nowrap">' . price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		    print '</tr>';
     		}
    @@ -846,7 +845,7 @@ if ($id > 0 || ! empty($ref))
     				}
     				else
     				{
    -					print '<a class="butActionRefused" href="#">'.$langs->trans("CreateShipment").'</a>';
    +					print '<a class="butActionRefused classfortooltip" href="#">'.$langs->trans("CreateShipment").'</a>';
     				}
     			}
     			print "</div>";
    @@ -907,12 +906,11 @@ if ($id > 0 || ! empty($ref))
     				print '</div>';
     
     				$somethingshown=1;
    -
     			}
     			else
     			{
     				print '<div class="tabsAction">';
    -				print '<a class="butActionRefused" href="#">'.$langs->trans("CreateShipment").'</a>';
    +				print '<a class="butActionRefused classfortooltip" href="#">'.$langs->trans("CreateShipment").'</a>';
     				print '</div>';
     			}
     		}
    @@ -921,12 +919,11 @@ if ($id > 0 || ! empty($ref))
     	}
     	else
     	{
    -		/* Commande non trouvee */
    -		print "Commande inexistante";
    +		/* Order not found */
    +		setEventMessages($langs->trans("NonExistentOrder"), null, 'errors');
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expedition/stats/index.php b/htdocs/expedition/stats/index.php
    index 651be627b78..95f93904c5f 100644
    --- a/htdocs/expedition/stats/index.php
    +++ b/htdocs/expedition/stats/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -213,7 +213,7 @@ if (! count($arrayyears)) $arrayyears[$nowyear]=$nowyear;
     
     $h=0;
     $head = array();
    -$head[$h][0] = DOL_URL_ROOT . '/commande/stats/index.php?mode='.$mode;
    +$head[$h][0] = DOL_URL_ROOT . '/expedition/stats/index.php?mode='.$mode;
     $head[$h][1] = $langs->trans("ByMonthYear");
     $head[$h][2] = 'byyear';
     $h++;
    @@ -237,17 +237,17 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     	print '<table class="noborder" width="100%">';
     	print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
     	// Company
    -	print '<tr><td align="left">'.$langs->trans("ThirdParty").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("ThirdParty").'</td><td class="left">';
     	if ($mode == 'customer') $filter='s.client in (1,2,3)';
     	if ($mode == 'supplier') $filter='s.fournisseur = 1';
     	print $form->select_company($socid,'socid',$filter,1,0,0,array(),0,'','style="width: 95%"');
     	print '</td></tr>';
     	// User
    -	print '<tr><td align="left">'.$langs->trans("CreatedBy").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("CreatedBy").'</td><td class="left">';
     	print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
     	print '</td></tr>';
     	// Year
    -	print '<tr><td align="left">'.$langs->trans("Year").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("Year").'</td><td class="left">';
     	if (! in_array($year,$arrayyears)) $arrayyears[$year]=$year;
     	if (! in_array($nowyear,$arrayyears)) $arrayyears[$nowyear]=$nowyear;
     	arsort($arrayyears);
    @@ -259,6 +259,8 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     	print '<br><br>';
     //}
     
    +
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre" height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
    @@ -298,6 +300,7 @@ foreach ($data as $val)
     }
     
     print '</table>';
    +print '</div>';
     
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
    @@ -358,6 +361,6 @@ print '</table>';
     print '<br>';
     print '<i>'.$langs->trans("StatsOnShipmentsOnlyValidated").'</i>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expedition/stats/month.php b/htdocs/expedition/stats/month.php
    index b7d217217c2..f716e06a5b2 100644
    --- a/htdocs/expedition/stats/month.php
    +++ b/htdocs/expedition/stats/month.php
    @@ -27,6 +27,8 @@ require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
     require_once DOL_DOCUMENT_ROOT.'/expedition/class/expeditionstats.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
     
    +$year = GETPOST('year', 'int');
    +
     
     /*
      * View
    @@ -39,10 +41,10 @@ $HEIGHT=DolGraph::getDefaultGraphSizeForStats('height');
     
     $mesg = '';
     
    -print load_fiche_titre($langs->trans("StatisticsOfSendings").' '.$_GET["year"], $mesg);
    +print load_fiche_titre($langs->trans("StatisticsOfSendings").' '.$year, $mesg);
     
     $stats = new ExpeditionStats($db);
    -$data = $stats->getNbExpeditionByMonth($_GET["year"]);
    +$data = $stats->getNbExpeditionByMonth($year);
     
     dol_mkdir($conf->expedition->dir_temp);
     
    @@ -71,6 +73,6 @@ print $px->show();
     print '</td></tr>';
     print '</table>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expedition/tpl/linkedobjectblock.tpl.php b/htdocs/expedition/tpl/linkedobjectblock.tpl.php
    index 72abfe2c4d9..ce2b9cf8009 100644
    --- a/htdocs/expedition/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/expedition/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/expensereport/ajax/ajaxprojet.php b/htdocs/expensereport/ajax/ajaxprojet.php
    index bc704f7a4f3..ebb7b2d47ec 100644
    --- a/htdocs/expensereport/ajax/ajaxprojet.php
    +++ b/htdocs/expensereport/ajax/ajaxprojet.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2010      Cyrille de Lambert   <info@auguria.net>
      *
    diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php
    index e623a76c87c..4646c8779ca 100644
    --- a/htdocs/expensereport/card.php
    +++ b/htdocs/expensereport/card.php
    @@ -1,10 +1,10 @@
     <?php
    -/* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2015-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
    - * Copyright (C) 2017      Ferran Marcet        <fmarcet@2byte.es>
    - * Copyright (C) 2018		Frédéric France		<frederic.france@netlogic.fr>
    +/* Copyright (C) 2003       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2017  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2009  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2015-2017  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2017       Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -356,7 +356,10 @@ if (empty($reshook))
         			$filename=array(); $filedir=array(); $mimetype=array();
     
         			// SUBJECT
    -    			$subject = $langs->transnoentities("ExpenseReportWaitingForApproval");
    +    			$societeName = $conf->global->MAIN_INFO_SOCIETE_NOM;
    +    			if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $societeName = $conf->global->MAIN_APPLICATION_TITLE;
    +
    +    			$subject = $societeName." - ".$langs->transnoentities("ExpenseReportWaitingForApproval");
     
         			// CONTENT
         			$link = $urlwithroot.'/expensereport/card.php?id='.$object->id;
    @@ -375,7 +378,7 @@ if (empty($reshook))
         			*/
     
         			// PREPARE SEND
    -    			$mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message,$filedir,$mimetype,$filename);
    +    			$mailfile = new CMailFile($subject, $emailTo, $emailFrom, $message, $filedir, $mimetype, $filename, '', '', 0, -1);
     
         			if ($mailfile)
         			{
    @@ -472,7 +475,10 @@ if (empty($reshook))
         			$filename=array(); $filedir=array(); $mimetype=array();
     
        			    // SUBJECT
    -    			$subject = $langs->transnoentities("ExpenseReportWaitingForReApproval");
    +    			$societeName = $conf->global->MAIN_INFO_SOCIETE_NOM;
    +    			if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $societeName = $conf->global->MAIN_APPLICATION_TITLE;
    +
    +    			$subject = $societeName." - ".$langs->transnoentities("ExpenseReportWaitingForReApproval");
     
         			// CONTENT
         			$link = $urlwithroot.'/expensereport/card.php?id='.$object->id;
    @@ -496,7 +502,7 @@ if (empty($reshook))
     
     
         			// PREPARE SEND
    -    			$mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message,$filedir,$mimetype,$filename);
    +    			$mailfile = new CMailFile($subject, $emailTo, $emailFrom, $message, $filedir, $mimetype, $filename, '', '', 0, -1);
     
         			if ($mailfile)
         			{
    @@ -594,7 +600,10 @@ if (empty($reshook))
         			$filename=array(); $filedir=array(); $mimetype=array();
     
        			    // SUBJECT
    -       			$subject = $langs->transnoentities("ExpenseReportApproved");
    +    			$societeName = $conf->global->MAIN_INFO_SOCIETE_NOM;
    +    			if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $societeName = $conf->global->MAIN_APPLICATION_TITLE;
    +
    +    			$subject = $societeName." - ".$langs->transnoentities("ExpenseReportApproved");
     
            			// CONTENT
            			$link = $urlwithroot.'/expensereport/card.php?id='.$object->id;
    @@ -615,7 +624,7 @@ if (empty($reshook))
         			}
         			*/
     
    -        		$mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message,$filedir,$mimetype,$filename);
    +        		$mailfile = new CMailFile($subject, $emailTo, $emailFrom, $message, $filedir, $mimetype, $filename, '', '', 0, -1);
     
            			if ($mailfile)
            			{
    @@ -713,7 +722,10 @@ if (empty($reshook))
         			$filename=array(); $filedir=array(); $mimetype=array();
     
         		    // SUBJECT
    -       			$subject = $langs->transnoentities("ExpenseReportRefused");
    +    			$societeName = $conf->global->MAIN_INFO_SOCIETE_NOM;
    +    			if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $societeName = $conf->global->MAIN_APPLICATION_TITLE;
    +
    +    			$subject = $societeName." - ".$langs->transnoentities("ExpenseReportRefused");
     
            			// CONTENT
            			$link = $urlwithroot.'/expensereport/card.php?id='.$object->id;
    @@ -735,7 +747,7 @@ if (empty($reshook))
         			*/
     
             		// PREPARE SEND
    -        		$mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message,$filedir,$mimetype,$filename);
    +        		$mailfile = new CMailFile($subject, $emailTo, $emailFrom, $message, $filedir, $mimetype, $filename, '', '', 0, -1);
     
             		if ($mailfile)
             		{
    @@ -788,126 +800,136 @@ if (empty($reshook))
         }
     
         //var_dump($user->id == $object->fk_user_validator);exit;
    -    if ($action == "confirm_cancel" && GETPOST('confirm', 'alpha')=="yes" && GETPOST('detail_cancel', 'alpha') && $id > 0 && $user->rights->expensereport->creer)
    +    if ($action == "confirm_cancel" && GETPOST('confirm', 'alpha')=="yes" && $id > 0 && $user->rights->expensereport->creer)
         {
    -    	$object = new ExpenseReport($db);
    -    	$object->fetch($id);
    -
    -    	if ($user->id == $object->fk_user_valid || $user->id == $object->fk_user_author)
    +    	if (! GETPOST('detail_cancel', 'alpha'))
         	{
    -    		$result = $object->set_cancel($user, GETPOST('detail_cancel', 'alpha'));
    -
    -    		if ($result > 0)
    -    		{
    -    			// Define output language
    -    			if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
    -    			{
    -    				$outputlangs = $langs;
    -    				$newlang = '';
    -    				if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09');
    -    				if ($conf->global->MAIN_MULTILANGS && empty($newlang))	$newlang = $object->thirdparty->default_lang;
    -    				if (! empty($newlang)) {
    -    					$outputlangs = new Translate("", $conf);
    -    					$outputlangs->setDefaultLang($newlang);
    -    				}
    -    				$model=$object->modelpdf;
    -    				$ret = $object->fetch($id); // Reload to get new records
    -
    -    				$object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
    -    			}
    -    		}
    -
    -    		if ($result > 0)
    -    		{
    -    			// Send mail
    -
    -    			// TO
    -    			$destinataire = new User($db);
    -    			$destinataire->fetch($object->fk_user_author);
    -    			$emailTo = $destinataire->email;
    -
    -    			// FROM
    -    			$expediteur = new User($db);
    -    			$expediteur->fetch($object->fk_user_cancel);
    -    			$emailFrom = $expediteur->email;
    -
    -    			if ($emailFrom && $emailTo)
    -    			{
    -    			    $filename=array(); $filedir=array(); $mimetype=array();
    -
    -    			    // SUBJECT
    -    				$subject = $langs->transnoentities("ExpenseReportCanceled");
    -
    -    				// CONTENT
    -    				$link = $urlwithroot.'/expensereport/card.php?id='.$object->id;
    -    				$message = $langs->transnoentities("ExpenseReportCanceledMessage", $object->ref, $destinataire->getFullName($langs), $expediteur->getFullName($langs), $_POST['detail_cancel'], $link);
    -
    -    				// Rebuilt pdf
    -    				/*
    -    				$object->setDocModel($user,"");
    -    				$resultPDF = expensereport_pdf_create($db,$object,'',"",$langs);
    -
    -    				if($resultPDF
    -    				{
    -    					// ATTACHMENT
    -    					$filename=array(); $filedir=array(); $mimetype=array();
    -    					array_push($filename,dol_sanitizeFileName($object->ref).".pdf");
    -    					array_push($filedir, $conf->expensereport->dir_output."/".dol_sanitizeFileName($object->ref)."/".dol_sanitizeFileName($object->ref).".pdf");
    -    					array_push($mimetype,"application/pdf");
    -    				}
    -    				*/
    -
    -        			// PREPARE SEND
    -        			$mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message,$filedir,$mimetype,$filename);
    -
    -        			if ($mailfile)
    -        			{
    -        				// SEND
    -        				$result=$mailfile->sendfile();
    -        				if ($result)
    -        				{
    -        					$mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($emailFrom,2),$mailfile->getValidAddress($emailTo,2));
    -        					setEventMessages($mesg, null, 'mesgs');
    -        					header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
    -        					exit;
    -        				}
    -        				else
    -        				{
    -        					$langs->load("other");
    -        					if ($mailfile->error)
    -        					{
    -        						$mesg='';
    -        						$mesg.=$langs->trans('ErrorFailedToSendMail', $emailFrom, $emailTo);
    -        						$mesg.='<br>'.$mailfile->error;
    -        						setEventMessages($mesg, null, 'errors');
    -        					}
    -        					else
    -        					{
    -        						setEventMessages('No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS', null, 'warnings');
    -        					}
    -        				}
    -        			}
    -        			else
    -        			{
    -        				setEventMessages($mailfile->error,$mailfile->errors,'errors');
    -        				$action='';
    -        			}
    -    			}
    -    			else
    -    			{
    -    			    setEventMessages($langs->trans("NoEmailSentBadSenderOrRecipientEmail"), null, 'warnings');
    -    			    $action='';
    -    			}
    -    		}
    -    		else
    -    		{
    -    			setEventMessages($langs->trans("FailedToSetToCancel"), null, 'warnings');
    -    			$action='';
    -    		}
    +    		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Comment")), null, 'errors');
         	}
         	else
         	{
    -    		setEventMessages($object->error, $object->errors, 'errors');
    +	    	$object = new ExpenseReport($db);
    +	    	$object->fetch($id);
    +
    +	    	if ($user->id == $object->fk_user_valid || $user->id == $object->fk_user_author)
    +	    	{
    +	    		$result = $object->set_cancel($user, GETPOST('detail_cancel', 'alpha'));
    +
    +	    		if ($result > 0)
    +	    		{
    +	    			// Define output language
    +	    			if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
    +	    			{
    +	    				$outputlangs = $langs;
    +	    				$newlang = '';
    +	    				if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09');
    +	    				if ($conf->global->MAIN_MULTILANGS && empty($newlang))	$newlang = $object->thirdparty->default_lang;
    +	    				if (! empty($newlang)) {
    +	    					$outputlangs = new Translate("", $conf);
    +	    					$outputlangs->setDefaultLang($newlang);
    +	    				}
    +	    				$model=$object->modelpdf;
    +	    				$ret = $object->fetch($id); // Reload to get new records
    +
    +	    				$object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
    +	    			}
    +	    		}
    +
    +	    		if ($result > 0)
    +	    		{
    +	    			// Send mail
    +
    +	    			// TO
    +	    			$destinataire = new User($db);
    +	    			$destinataire->fetch($object->fk_user_author);
    +	    			$emailTo = $destinataire->email;
    +
    +	    			// FROM
    +	    			$expediteur = new User($db);
    +	    			$expediteur->fetch($object->fk_user_cancel);
    +	    			$emailFrom = $expediteur->email;
    +
    +	    			if ($emailFrom && $emailTo)
    +	    			{
    +	    			    $filename=array(); $filedir=array(); $mimetype=array();
    +
    +	    			    // SUBJECT
    +	    			    $societeName = $conf->global->MAIN_INFO_SOCIETE_NOM;
    +	    			    if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $societeName = $conf->global->MAIN_APPLICATION_TITLE;
    +
    +	    			    $subject = $societeName." - ".$langs->transnoentities("ExpenseReportCanceled");
    +
    +	    				// CONTENT
    +	    				$link = $urlwithroot.'/expensereport/card.php?id='.$object->id;
    +	    				$message = $langs->transnoentities("ExpenseReportCanceledMessage", $object->ref, $destinataire->getFullName($langs), $expediteur->getFullName($langs), GETPOST('detail_cancel','alpha'), $link);
    +
    +	    				// Rebuilt pdf
    +	    				/*
    +	    				$object->setDocModel($user,"");
    +	    				$resultPDF = expensereport_pdf_create($db,$object,'',"",$langs);
    +
    +	    				if($resultPDF
    +	    				{
    +	    					// ATTACHMENT
    +	    					$filename=array(); $filedir=array(); $mimetype=array();
    +	    					array_push($filename,dol_sanitizeFileName($object->ref).".pdf");
    +	    					array_push($filedir, $conf->expensereport->dir_output."/".dol_sanitizeFileName($object->ref)."/".dol_sanitizeFileName($object->ref).".pdf");
    +	    					array_push($mimetype,"application/pdf");
    +	    				}
    +	    				*/
    +
    +	        			// PREPARE SEND
    +	        			$mailfile = new CMailFile($subject, $emailTo, $emailFrom, $message, $filedir, $mimetype, $filename, '', '', 0, -1);
    +
    +	        			if ($mailfile)
    +	        			{
    +	        				// SEND
    +	        				$result=$mailfile->sendfile();
    +	        				if ($result)
    +	        				{
    +	        					$mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($emailFrom,2),$mailfile->getValidAddress($emailTo,2));
    +	        					setEventMessages($mesg, null, 'mesgs');
    +	        					header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
    +	        					exit;
    +	        				}
    +	        				else
    +	        				{
    +	        					$langs->load("other");
    +	        					if ($mailfile->error)
    +	        					{
    +	        						$mesg='';
    +	        						$mesg.=$langs->trans('ErrorFailedToSendMail', $emailFrom, $emailTo);
    +	        						$mesg.='<br>'.$mailfile->error;
    +	        						setEventMessages($mesg, null, 'errors');
    +	        					}
    +	        					else
    +	        					{
    +	        						setEventMessages('No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS', null, 'warnings');
    +	        					}
    +	        				}
    +	        			}
    +	        			else
    +	        			{
    +	        				setEventMessages($mailfile->error,$mailfile->errors,'errors');
    +	        				$action='';
    +	        			}
    +	    			}
    +	    			else
    +	    			{
    +	    			    setEventMessages($langs->trans("NoEmailSentBadSenderOrRecipientEmail"), null, 'warnings');
    +	    			    $action='';
    +	    			}
    +	    		}
    +	    		else
    +	    		{
    +	    			setEventMessages($langs->trans("FailedToSetToCancel"), null, 'warnings');
    +	    			$action='';
    +	    		}
    +	    	}
    +	    	else
    +	    	{
    +	    		setEventMessages($object->error, $object->errors, 'errors');
    +	    	}
         	}
         }
     
    @@ -1001,25 +1023,21 @@ if (empty($reshook))
         			$filename=array(); $filedir=array(); $mimetype=array();
     
         		    // SUBJECT
    -    			$subject = $langs->transnoentities("ExpenseReportPaid");
    +    			$societeName = $conf->global->MAIN_INFO_SOCIETE_NOM;
    +    			if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $societeName = $conf->global->MAIN_APPLICATION_TITLE;
    +
    +    			$subject = $societeName." - ".$langs->transnoentities("ExpenseReportPaid");
     
         			// CONTENT
         			$link = $urlwithroot.'/expensereport/card.php?id='.$object->id;
         			$message = $langs->transnoentities("ExpenseReportPaidMessage", $object->ref, $destinataire->getFullName($langs), $expediteur->getFullName($langs), $link);
     
    -        		// CONTENT
    -        		$message = "Bonjour {$destinataire->firstname},\n\n";
    -        		$message.= "Votre note de frais \"{$object->ref}\" vient d'être payée.\n";
    -        		$message.= "- Payeur : {$expediteur->firstname} {$expediteur->lastname}\n";
    -        		$message.= "- Lien : {$dolibarr_main_url_root}/expensereport/card.php?id={$object->id}\n\n";
    -        		$message.= "Bien cordialement,\n' SI";
    -
             		// Generate pdf before attachment
             		$object->setDocModel($user,"");
             		$resultPDF = expensereport_pdf_create($db,$object,'',"",$langs);
     
             		// PREPARE SEND
    -        		$mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message,$filedir,$mimetype,$filename);
    +        		$mailfile = new CMailFile($subject, $emailTo, $emailFrom, $message, $filedir, $mimetype, $filename, '', '', 0, -1);
     
             		if ($mailfile)
             		{
    @@ -1160,7 +1178,6 @@ if (empty($reshook))
     				unset($fk_projet);
     
     				unset($date);
    -
     			} else {
     				setEventMessages($object->error, $object->errors, 'errors');
     			}
    @@ -1212,7 +1229,7 @@ if (empty($reshook))
         	}
         }
     
    -    if ($action == "updateligne" && $user->rights->expensereport->creer)
    +    if ($action == "updateline" && $user->rights->expensereport->creer)
         {
         	$object = new ExpenseReport($db);
         	$object->fetch($id);
    @@ -1336,7 +1353,7 @@ if ($action == 'create')
     	print '<tr>';
     	print '<td class="titlefieldcreate fieldrequired">'.$langs->trans("DateStart").'</td>';
     	print '<td>';
    -	$form->select_date($date_start?$date_start:-1,'date_debut',0,0,0,'',1,1);
    +	print $form->selectDate($date_start?$date_start:-1, 'date_debut', 0, 0, 0, '', 1, 1);
     	print '</td>';
     	print '</tr>';
     
    @@ -1344,7 +1361,7 @@ if ($action == 'create')
     	print '<tr>';
     	print '<td class="fieldrequired">'.$langs->trans("DateEnd").'</td>';
     	print '<td>';
    -	$form->select_date($date_end?$date_end:-1,'date_fin',0,0,0,'',1,1);
    +	print $form->selectDate($date_end?$date_end:-1, 'date_fin', 0, 0, 0, '', 1, 1);
     	print '</td>';
     	print '</tr>';
     
    @@ -1373,7 +1390,7 @@ if ($action == 'create')
         	$defaultselectuser=$user->fk_user;	// Will work only if supervisor has permission to approve so is inside include_users
         	if (! empty($conf->global->EXPENSEREPORT_DEFAULT_VALIDATOR)) $defaultselectuser=$conf->global->EXPENSEREPORT_DEFAULT_VALIDATOR;   // Can force default approver
         	if (GETPOST('fk_user_validator', 'int') > 0) $defaultselectuser=GETPOST('fk_user_validator', 'int');
    -    	$s=$form->select_dolusers($defaultselectuser, "fk_user_validator", 1, "", 0, $include_users);
    +    	$s=$form->select_dolusers($defaultselectuser, "fk_user_validator", 1, "", ((empty($defaultselectuser) || empty($conf->global->EXPENSEREPORT_DEFAULT_VALIDATOR_UNCHANGEABLE))?0:1), $include_users);
         	print $form->textwithpicto($s, $langs->trans("AnyOtherInThisListCanValidate"));
     	}
     	print '</td>';
    @@ -1451,8 +1468,9 @@ else
     					print $langs->trans('NotUserRightToView');
     					print '</div>';
     
    -					llxFooter();
    -					$db->close();
    +					// End of page
    +                    llxFooter();
    +                    $db->close();
     
     					exit;
     				}
    @@ -1500,13 +1518,13 @@ else
     				print '<tr>';
     				print '<td>'.$langs->trans("DateStart").'</td>';
     				print '<td>';
    -				$form->select_date($object->date_debut,'date_debut');
    +				print $form->selectDate($object->date_debut, 'date_debut');
     				print '</td>';
     				print '</tr>';
     				print '<tr>';
     				print '<td>'.$langs->trans("DateEnd").'</td>';
     				print '<td>';
    -				$form->select_date($object->date_fin,'date_fin');
    +				print $form->selectDate($object->date_fin, 'date_fin');
     				print '</td>';
     				print '</tr>';
     
    @@ -1551,7 +1569,6 @@ else
     					$userfee->fetch($user->id);
     					print $userfee->getNomUrl(-1);
     					print '</td></tr>';
    -
     				}
     
     				// Other attributes
    @@ -1588,49 +1605,49 @@ else
     
     				if ($action == 'save')
     				{
    -					$formconfirm=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("SaveTrip"),$langs->trans("ConfirmSaveTrip"),"confirm_validate","","",1);
    +					$formconfirm=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("SaveTrip"),$langs->trans("ConfirmSaveTrip"),"confirm_validate","","",1);
     				}
     
     				if ($action == 'save_from_refuse')
     				{
    -					$formconfirm=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("SaveTrip"),$langs->trans("ConfirmSaveTrip"),"confirm_save_from_refuse","","",1);
    +					$formconfirm=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("SaveTrip"),$langs->trans("ConfirmSaveTrip"),"confirm_save_from_refuse","","",1);
     				}
     
     				if ($action == 'delete')
     				{
    -					$formconfirm=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("DeleteTrip"),$langs->trans("ConfirmDeleteTrip"),"confirm_delete","","",1);
    +					$formconfirm=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("DeleteTrip"),$langs->trans("ConfirmDeleteTrip"),"confirm_delete","","",1);
     				}
     
     				if ($action == 'validate')
     				{
    -					$formconfirm=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("ValideTrip"),$langs->trans("ConfirmValideTrip"),"confirm_approve","","",1);
    +					$formconfirm=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("ValideTrip"),$langs->trans("ConfirmValideTrip"),"confirm_approve","","",1);
     				}
     
     				if ($action == 'paid')
     				{
    -					$formconfirm=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("PaidTrip"),$langs->trans("ConfirmPaidTrip"),"confirm_paid","","",1);
    +					$formconfirm=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("PaidTrip"),$langs->trans("ConfirmPaidTrip"),"confirm_paid","","",1);
     				}
     
     				if ($action == 'cancel')
     				{
    -					$array_input = array('text'=>$langs->trans("ConfirmCancelTrip"), array('type'=>"text",'label'=>$langs->trans("Comment"),'name'=>"detail_cancel",'size'=>"50",'value'=>""));
    -					$formconfirm=$form->form_confirm($_SEVER["PHP_SELF"]."?id=".$id,$langs->trans("Cancel"),"","confirm_cancel",$array_input,"",1);
    +					$array_input = array('text'=>$langs->trans("ConfirmCancelTrip"), array('type'=>"text",'label'=>'<strong>'.$langs->trans("Comment").'</strong>','name'=>"detail_cancel",'size'=>"50",'value'=>""));
    +					$formconfirm=$form->formconfirm($_SEVER["PHP_SELF"]."?id=".$id,$langs->trans("Cancel"),"","confirm_cancel",$array_input,"",1);
     				}
     
     				if ($action == 'brouillonner')
     				{
    -				    $formconfirm=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("BrouillonnerTrip"),$langs->trans("ConfirmBrouillonnerTrip"),"confirm_brouillonner","","",1);
    +				    $formconfirm=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("BrouillonnerTrip"),$langs->trans("ConfirmBrouillonnerTrip"),"confirm_brouillonner","","",1);
     				}
     
     				if ($action == 'refuse')		// Deny
     				{
     					$array_input = array('text'=>$langs->trans("ConfirmRefuseTrip"), array('type'=>"text",'label'=>$langs->trans("Comment"),'name'=>"detail_refuse",'size'=>"50",'value'=>""));
    -					$formconfirm=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("Deny"),'',"confirm_refuse",$array_input,"yes",1);
    +					$formconfirm=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("Deny"),'',"confirm_refuse",$array_input,"yes",1);
     				}
     
     				if ($action == 'delete_line')
     				{
    -					$formconfirm=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id."&rowid=".GETPOST('rowid','int'),$langs->trans("DeleteLine"),$langs->trans("ConfirmDeleteLine"),"confirm_delete_line",'','yes',1);
    +					$formconfirm=$form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id."&rowid=".GETPOST('rowid','int'),$langs->trans("DeleteLine"),$langs->trans("ConfirmDeleteLine"),"confirm_delete_line",'','yes',1);
     				}
     
     				// Print form confirm
    @@ -1908,7 +1925,7 @@ else
     						print $paymentexpensereportstatic->getNomUrl(1);
     						print '</td>';
     				        print '<td>'.dol_print_date($db->jdate($objp->dp),'day')."</td>\n";
    -				        $labeltype=$langs->trans("PaymentType".$objp->p_code)!=("PaymentType".$objp->p_code)?$langs->trans("PaymentType".$objp->p_code):$objp->fk_typepayment;
    +				        $labeltype=$langs->trans("PaymentType".$objp->p_code)!=("PaymentType".$objp->p_code)?$langs->trans("PaymentType".$objp->p_code):$objp->payment_type;
     				        print "<td>".$labeltype.' '.$objp->num_payment."</td>\n";
     						if (! empty($conf->banque->enabled))
     						{
    @@ -1936,17 +1953,28 @@ else
     				        $totalpaid += $objp->amount;
     				        $i++;
     				    }
    +				    $totalpaid = price2num($totalpaid);		// Round $totalpaid to fix floating problem after addition into loop
     
    -				    if ($object->paid == 0)
    +				    $remaintopay = price2num($object->total_ttc - $totalpaid);
    +				    $resteapayeraffiche = $remaintopay;
    +
    +				    $cssforamountpaymentcomplete = 'amountpaymentcomplete';
    +
    +				    if ($object->status == ExpenseReport::STATUS_REFUSED)
     				    {
    -				        print '<tr><td colspan="' . $nbcols . '" align="right">'.$langs->trans("AlreadyPaid").':</td><td align="right">'.price($totalpaid).'</td><td></td></tr>';
    -				        print '<tr><td colspan="' . $nbcols . '" align="right">'.$langs->trans("AmountExpected").':</td><td align="right">'.price($object->total_ttc).'</td><td></td></tr>';
    -
    -				        $remaintopay = $object->total_ttc - $totalpaid;
    -
    -				        print '<tr><td colspan="' . $nbcols . '" align="right">'.$langs->trans("RemainderToPay").':</td>';
    -				        print '<td align="right"'.($remaintopay?' class="amountremaintopay"':'').'>'.price($remaintopay).'</td><td></td></tr>';
    +				    	$cssforamountpaymentcomplete = 'amountpaymentneutral';
    +				    	$resteapayeraffiche = 0;
     				    }
    +			    	elseif ($object->paid == 0)
    +			    	{
    +			    		$cssforamountpaymentcomplete = 'amountpaymentneutral';
    +			    	}
    +			        print '<tr><td colspan="' . $nbcols . '" align="right">'.$langs->trans("AlreadyPaid").':</td><td align="right">'.price($totalpaid).'</td><td></td></tr>';
    +			        print '<tr><td colspan="' . $nbcols . '" align="right">'.$langs->trans("AmountExpected").':</td><td align="right">'.price($object->total_ttc).'</td><td></td></tr>';
    +
    +			        print '<tr><td colspan="' . $nbcols . '" align="right">'.$langs->trans("RemainderToPay").':</td>';
    +			        print '<td align="right"'.($resteapayeraffiche?' class="amountremaintopay"':(' class="'.$cssforamountpaymentcomplete.'"')).'>'.price($resteapayeraffiche).'</td><td></td></tr>';
    +
     				    $db->free($resql);
     				}
     				else
    @@ -1963,7 +1991,7 @@ else
     
     				print '<div style="clear: both;"></div>';
     
    -				$actiontouse='updateligne';
    +				$actiontouse='updateline';
     				if (($object->fk_statut==0 || $object->fk_statut==99) && $action != 'editline') $actiontouse='addline';
     
     				print '<form name="expensereport" action="'.$_SERVER["PHP_SELF"].'" method="post">';
    @@ -2078,7 +2106,7 @@ else
     
     								// Select date
     								print '<td class="center">';
    -								$form->select_date($line->date,'date');
    +								print $form->selectDate($line->date,'date');
     								print '</td>';
     
     								// Select project
    @@ -2161,7 +2189,7 @@ else
     
     					// Select date
     					print '<td align="center">';
    -					$form->select_date($date?$date:-1,'date');
    +					print $form->selectDate($date?$date:-1, 'date');
     					print '</td>';
     
     					// Select project
    @@ -2224,17 +2252,13 @@ else
     				print '</form>';
     
     				dol_fiche_end();
    -
     			} // end edit or not edit
    -
     		}	// end of if result
     		else
     		{
     			dol_print_error($db);
     		}
    -
     	} //fin si id > 0
    -
     }
     
     /*
    @@ -2253,7 +2277,7 @@ if ($action != 'create' && $action != 'edit')
     		//if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->expensereport->expensereport_advance->send)) {
     			print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle">' . $langs->trans('SendMail') . '</a></div>';
     		//} else
    -		//	print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendMail') . '</a></div>';
    +		//	print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">' . $langs->trans('SendMail') . '</a></div>';
     	}
     
     
    @@ -2351,7 +2375,7 @@ if ($action != 'create' && $action != 'edit')
     		// Pay
     		if ($remaintopay == 0)
     		{
    -			print '<div class="inline-block divButAction"><span class="butActionRefused" title="' . $langs->trans("DisabledBecauseRemainderToPayIsZero") . '">' . $langs->trans('DoPayment') . '</span></div>';
    +			print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseRemainderToPayIsZero") . '">' . $langs->trans('DoPayment') . '</span></div>';
     		}
     		else
     		{
    @@ -2448,7 +2472,6 @@ if ($action != 'presend')
     	$somethingshown = $formactions->showactions($object, 'expensereport', null);
     
     	print '</div></div></div>';
    -
     }
     
     // Presend form
    diff --git a/htdocs/expensereport/class/api_expensereports.class.php b/htdocs/expensereport/class/api_expensereports.class.php
    index 726aa158413..e6475665fb8 100644
    --- a/htdocs/expensereport/class/api_expensereports.class.php
    +++ b/htdocs/expensereport/class/api_expensereports.class.php
    @@ -94,7 +94,8 @@ class ExpenseReports extends DolibarrApi
          * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')"
          * @return  array               Array of Expense Report objects
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $user_ids = 0, $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $user_ids = 0, $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -195,7 +196,8 @@ class ExpenseReports extends DolibarrApi
          * @return int
          */
     /*
    -    function getLines($id) {
    +    function getLines($id)
    +    {
           if(! DolibarrApiAccess::$user->rights->expensereport->lire) {
     		  	throw new RestException(401);
     		  }
    @@ -228,7 +230,8 @@ class ExpenseReports extends DolibarrApi
          * @return int
          */
     /*
    -    function postLine($id, $request_data = null) {
    +    function postLine($id, $request_data = null)
    +    {
           if(! DolibarrApiAccess::$user->rights->expensereport->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -290,7 +293,8 @@ class ExpenseReports extends DolibarrApi
          * @return object
          */
         /*
    -    function putLine($id, $lineid, $request_data = null) {
    +    function putLine($id, $lineid, $request_data = null)
    +    {
           if(! DolibarrApiAccess::$user->rights->expensereport->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -348,7 +352,8 @@ class ExpenseReports extends DolibarrApi
          * @return int
          */
         /*
    -    function deleteLine($id, $lineid) {
    +    function deleteLine($id, $lineid)
    +    {
           if(! DolibarrApiAccess::$user->rights->expensereport->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -380,7 +385,8 @@ class ExpenseReports extends DolibarrApi
          *
          * @return int
          */
    -    function put($id, $request_data = null) {
    +    function put($id, $request_data = null)
    +    {
           if(! DolibarrApiAccess::$user->rights->expensereport->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -439,7 +445,6 @@ class ExpenseReports extends DolibarrApi
                     'message' => 'Expense Report deleted'
                 )
             );
    -
         }
     
         /**
    @@ -490,7 +495,8 @@ class ExpenseReports extends DolibarrApi
          * @param   object  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
         	$object = parent::_cleanObjectDatas($object);
     
    @@ -516,7 +522,6 @@ class ExpenseReports extends DolibarrApi
                 if (!isset($data[$field]))
                     throw new RestException(400, "$field field missing");
                 $expensereport[$field] = $data[$field];
    -
             }
             return $expensereport;
         }
    diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php
    index 3f5029c4ef6..3b93cd0c0ff 100644
    --- a/htdocs/expensereport/class/expensereport.class.php
    +++ b/htdocs/expensereport/class/expensereport.class.php
    @@ -3,6 +3,7 @@
      * Copyright (C) 2015 		Laurent Destailleur 	<eldy@users.sourceforge.net>
      * Copyright (C) 2015 		Alexandre Spangaro  	<aspangaro@zendsi.com>
      * Copyright (C) 2018       Nicolas ZABOURI         <info@inovea-conseil.com>
    + * Copyright (c) 2018       Frédéric France         <frederic.france@netlogic.fr>
      * Copyright (C) 2016-2018 	Ferran Marcet       	<fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -33,8 +34,16 @@ require_once DOL_DOCUMENT_ROOT .'/expensereport/class/expensereport_rule.class.p
      */
     class ExpenseReport extends CommonObject
     {
    -    var $element='expensereport';
    -    var $table_element='expensereport';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='expensereport';
    +
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='expensereport';
    +
         var $table_element_line = 'expensereport_det';
         var $fk_element = 'fk_expensereport';
         var $picto = 'trip';
    @@ -96,8 +105,8 @@ class ExpenseReport extends CommonObject
             END ACTIONS
         */
     
    -   /**
    -	 * Draft
    +    /**
    +	 * Draft status
     	 */
     	const STATUS_DRAFT = 0;
     
    @@ -140,8 +149,6 @@ class ExpenseReport extends CommonObject
             $this->statuts_short = array(0 => 'Draft', 2 => 'Validated', 4 => 'Canceled', 5 => 'Approved', 6 => 'Paid', 99 => 'Refused');
             $this->statuts = array(0 => 'Draft', 2 => 'ValidatedWaitingApproval', 4 => 'Canceled', 5 => 'Approved', 6 => 'Paid', 99 => 'Refused');
             $this->statuts_logo = array(0 => 'statut0', 2 => 'statut1', 4 => 'statut5', 5 => 'statut3', 6 => 'statut6', 99 => 'statut5');
    -
    -        return 1;
         }
     
         /**
    @@ -308,8 +315,6 @@ class ExpenseReport extends CommonObject
     
             if (empty($fk_user_author)) $fk_user_author = $user->id;
     
    -        $this->context['createfromclone'] = 'createfromclone';
    -
             $this->db->begin();
     
             // get extrafields so they will be clone
    @@ -332,6 +337,7 @@ class ExpenseReport extends CommonObject
             $this->date_validation    = '';
     
             // Create clone
    +        $this->context['createfromclone'] = 'createfromclone';
             $result=$this->create($user);
             if ($result < 0) $error++;
     
    @@ -539,6 +545,7 @@ class ExpenseReport extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Classify the expense report as paid
          *
    @@ -549,6 +556,7 @@ class ExpenseReport extends CommonObject
          */
         function set_paid($id, $fuser, $notrigger = 0)
         {
    +        // phpcs:enable
     		$error = 0;
     		$this->db->begin();
     
    @@ -610,6 +618,7 @@ class ExpenseReport extends CommonObject
             return $this->LibStatut($this->status,$mode);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Returns the label of a statut
          *
    @@ -619,27 +628,28 @@ class ExpenseReport extends CommonObject
          */
         function LibStatut($status,$mode=0)
         {
    +        // phpcs:enable
             global $langs;
     
             if ($mode == 0)
                 return $langs->transnoentities($this->statuts[$status]);
     
    -        if ($mode == 1)
    +        elseif ($mode == 1)
                 return $langs->transnoentities($this->statuts_short[$status]);
     
    -        if ($mode == 2)
    +        elseif ($mode == 2)
                 return img_picto($langs->transnoentities($this->statuts_short[$status]), $this->statuts_logo[$status]).' '.$langs->transnoentities($this->statuts_short[$status]);
     
    -        if ($mode == 3)
    +        elseif ($mode == 3)
                 return img_picto($langs->transnoentities($this->statuts_short[$status]), $this->statuts_logo[$status]);
     
    -        if ($mode == 4)
    +        elseif ($mode == 4)
                 return img_picto($langs->transnoentities($this->statuts_short[$status]),$this->statuts_logo[$status]).' '.$langs->transnoentities($this->statuts[$status]);
     
    -        if ($mode == 5)
    +        elseif ($mode == 5)
                 return '<span class="hideonsmartphone">'.$langs->transnoentities($this->statuts_short[$status]).' </span>'.img_picto($langs->transnoentities($this->statuts_short[$status]),$this->statuts_logo[$status]);
     
    -        if ($mode == 6)
    +        elseif ($mode == 6)
                 return $langs->transnoentities($this->statuts[$status]).' '.img_picto($langs->transnoentities($this->statuts_short[$status]),$this->statuts_logo[$status]);
         }
     
    @@ -709,7 +719,6 @@ class ExpenseReport extends CommonObject
                         $auser->fetch($obj->fk_user_approve);
                         $this->user_approve   = $auser;
                     }
    -
                 }
                 $this->db->free($resql);
             }
    @@ -784,6 +793,7 @@ class ExpenseReport extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * fetch_line_by_project
          *
    @@ -793,6 +803,7 @@ class ExpenseReport extends CommonObject
          */
         function fetch_line_by_project($projectid,$user='')
         {
    +        // phpcs:enable
             global $conf,$db,$langs;
     
             $langs->load('trips');
    @@ -879,7 +890,6 @@ class ExpenseReport extends CommonObject
                     print '<td align="right" width="100">'.$langs->trans("TotalTTC").' : '.price($total_TTC).'</td>';
                     print '<td>&nbsp;</td>';
                     print '</tr>';
    -
                 }
                 else
                 {
    @@ -887,7 +897,6 @@ class ExpenseReport extends CommonObject
                     return -1;
                 }
             }
    -
         }
     
         /**
    @@ -941,6 +950,7 @@ class ExpenseReport extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * fetch_lines
          *
    @@ -948,6 +958,7 @@ class ExpenseReport extends CommonObject
          */
         function fetch_lines()
         {
    +        // phpcs:enable
             $this->lines=array();
     
             $sql = ' SELECT de.rowid, de.comments, de.qty, de.value_unit, de.date, de.rang,';
    @@ -1184,6 +1195,7 @@ class ExpenseReport extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * set_save_from_refuse
          *
    @@ -1192,6 +1204,7 @@ class ExpenseReport extends CommonObject
          */
         function set_save_from_refuse($fuser)
         {
    +        // phpcs:enable
             global $conf,$langs;
     
             // Sélection de la date de début de la NDF
    @@ -1297,6 +1310,7 @@ class ExpenseReport extends CommonObject
          * @param User      $fuser      User
          * @param Details   $details    Details
     	 * @param int       $notrigger  Disable triggers
    +     * @return int
          */
         function setDeny($fuser,$details,$notrigger=0)
         {
    @@ -1355,6 +1369,7 @@ class ExpenseReport extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * set_unpaid
          *
    @@ -1364,6 +1379,7 @@ class ExpenseReport extends CommonObject
          */
         function set_unpaid($fuser, $notrigger = 0)
         {
    +        // phpcs:enable
     		$error = 0;
     
             if ($this->fk_c_deplacement_statuts != 5)
    @@ -1414,6 +1430,7 @@ class ExpenseReport extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * set_cancel
          *
    @@ -1424,6 +1441,7 @@ class ExpenseReport extends CommonObject
          */
         function set_cancel($fuser,$detail, $notrigger=0)
         {
    +        // phpcs:enable
     		$error = 0;
             $this->date_cancel = $this->db->idate(gmmktime());
             if ($this->fk_statut != 4)
    @@ -1494,7 +1512,7 @@ class ExpenseReport extends CommonObject
     			$classname = $conf->global->EXPENSEREPORT_ADDON;
     
     			// Include file with class
    -			$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
    +			$dirmodels=array_merge(array('/'), (array) $conf->modules_parts['models']);
     			foreach ($dirmodels as $reldir)
     			{
                     $dir = dol_buildpath($reldir."core/modules/expensereport/");
    @@ -1503,9 +1521,8 @@ class ExpenseReport extends CommonObject
                     $mybool|=@include_once $dir.$file;
                 }
     
    -            if (! $mybool)
    -            {
    -                dol_print_error('',"Failed to include file ".$file);
    +            if ($mybool === false) {
    +                dol_print_error('', "Failed to include file ".$file);
                     return '';
                 }
     
    @@ -1598,6 +1615,7 @@ class ExpenseReport extends CommonObject
             return $result;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Update total of an expense report when you add a line.
          *
    @@ -1607,6 +1625,7 @@ class ExpenseReport extends CommonObject
          */
         function update_totaux_add($ligne_total_ht,$ligne_total_tva)
         {
    +        // phpcs:enable
             $this->total_ht = $this->total_ht + $ligne_total_ht;
             $this->total_tva = $this->total_tva + $ligne_total_tva;
             $this->total_ttc = $this->total_ht + $this->total_tva;
    @@ -1626,6 +1645,7 @@ class ExpenseReport extends CommonObject
             endif;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Update total of an expense report when you delete a line.
          *
    @@ -1635,6 +1655,7 @@ class ExpenseReport extends CommonObject
          */
         function update_totaux_del($ligne_total_ht,$ligne_total_tva)
         {
    +        // phpcs:enable
             $this->total_ht = $this->total_ht - $ligne_total_ht;
             $this->total_tva = $this->total_tva - $ligne_total_tva;
             $this->total_ttc = $this->total_ht + $this->total_tva;
    @@ -1753,8 +1774,6 @@ class ExpenseReport extends CommonObject
     			$this->error = 'ErrorExpenseNotDraft';
                 return -3;
             }
    -
    -
     	}
     
     	/**
    @@ -2049,6 +2068,7 @@ class ExpenseReport extends CommonObject
             return 1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * periode_existe
          *
    @@ -2059,6 +2079,7 @@ class ExpenseReport extends CommonObject
          */
         function periode_existe($fuser, $date_debut, $date_fin)
         {
    +        // phpcs:enable
             $sql = "SELECT rowid, date_debut, date_fin";
             $sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element;
             $sql.= " WHERE fk_user_author = '{$fuser->id}'";
    @@ -2105,6 +2126,7 @@ class ExpenseReport extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Return list of people with permission to validate expense reports.
          * Search for permission "approve expense report"
    @@ -2113,6 +2135,7 @@ class ExpenseReport extends CommonObject
          */
         function fetch_users_approver_expensereport()
         {
    +        // phpcs:enable
             $users_validator=array();
     
             $sql = "SELECT DISTINCT ur.fk_user";
    @@ -2211,13 +2234,15 @@ class ExpenseReport extends CommonObject
             return $ret;
         }
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *      Charge indicateurs this->nb pour le tableau de bord
          *
          *      @return     int         <0 if KO, >0 if OK
          */
         function load_state_board()
         {
    +        // phpcs:enable
             global $conf;
     
             $this->nb=array();
    @@ -2245,6 +2270,7 @@ class ExpenseReport extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *      Load indicators for dashboard (this->nbtodo and this->nbtodolate)
          *
    @@ -2254,6 +2280,7 @@ class ExpenseReport extends CommonObject
          */
         function load_board($user, $option='topay')
         {
    +        // phpcs:enable
             global $conf, $langs;
     
             if ($user->societe_id) return -1;   // protection pour eviter appel par utilisateur externe
    @@ -2375,6 +2402,34 @@ class ExpenseReport extends CommonObject
         	return 0;
         }
     
    +	/**
    +	 * 	Return amount of payments already done
    +	 *
    +	 *  @return		int						Amount of payment already done, <0 if KO
    +	 */
    +	public function getSumPayments()
    +	{
    +		$table='payment_expensereport';
    +		$field='fk_expensereport';
    +
    +		$sql = 'SELECT sum(amount) as amount';
    +		$sql.= ' FROM '.MAIN_DB_PREFIX.$table;
    +		$sql.= ' WHERE '.$field.' = '.$this->id;
    +
    +		dol_syslog(get_class($this)."::getSumPayments", LOG_DEBUG);
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$obj = $this->db->fetch_object($resql);
    +			$this->db->free($resql);
    +			return $obj->amount;
    +		}
    +		else
    +		{
    +			$this->error=$this->db->lasterror();
    +			return -1;
    +		}
    +	}
     }
     
     
    @@ -2383,25 +2438,51 @@ class ExpenseReport extends CommonObject
      */
     class ExpenseReportLine
     {
    -    var $db;
    -    var $error;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -    var $rowid;
    -    var $comments;
    -    var $qty;
    -    var $value_unit;
    -    var $date;
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    -    var $fk_c_type_fees;
    -    var $fk_c_exp_tax_cat;
    -    var $fk_projet;
    -    var $fk_expensereport;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $rowid;
     
    -    var $type_fees_code;
    -    var $type_fees_libelle;
    +    public $comments;
    +    public $qty;
    +    public $value_unit;
    +    public $date;
     
    -    var $projet_ref;
    -    var $projet_title;
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_c_type_fees;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_c_exp_tax_cat;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_projet;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_expensereport;
    +
    +    public $type_fees_code;
    +    public $type_fees_libelle;
    +
    +    public $projet_ref;
    +    public $projet_title;
     
         var $vatrate;
         var $total_ht;
    @@ -2677,6 +2758,7 @@ class ExpenseReportLine
     }
     
     
    +// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     /**
      *    Retourne la liste deroulante des differents etats d'une note de frais.
      *    Les valeurs de la liste sont les id de la table c_expensereport_statuts
    @@ -2689,6 +2771,7 @@ class ExpenseReportLine
      */
     function select_expensereport_statut($selected='',$htmlname='fk_statut',$useempty=1, $useshortlabel=0)
     {
    +    // phpcs:enable
         global $db, $langs;
     
         $tmpep=new ExpenseReport($db);
    @@ -2713,6 +2796,7 @@ function select_expensereport_statut($selected='',$htmlname='fk_statut',$useempt
         print '</select>';
     }
     
    +// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     /**
      *  Return list of types of notes with select value = id
      *
    @@ -2724,6 +2808,7 @@ function select_expensereport_statut($selected='',$htmlname='fk_statut',$useempt
      */
     function select_type_fees_id($selected='',$htmlname='type',$showempty=0, $active=1)
     {
    +    // phpcs:enable
         global $db,$langs,$user;
         $langs->load("trips");
     
    diff --git a/htdocs/expensereport/class/expensereport_ik.class.php b/htdocs/expensereport/class/expensereport_ik.class.php
    index a93d4e9062c..9eaa8970a5b 100644
    --- a/htdocs/expensereport/class/expensereport_ik.class.php
    +++ b/htdocs/expensereport/class/expensereport_ik.class.php
    @@ -29,8 +29,19 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/coreobject.class.php';
      */
     class ExpenseReportIk extends CoreObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='expenseik';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='expensereport_ik';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element='fk_expense_ik';
     
     	/**
    @@ -120,8 +131,15 @@ class ExpenseReportIk extends CoreObject
     		return $categories;
     	}
     
    -	public static function getRangeByUser(User $userauthor, $fk_c_exp_tax_cat)
    -	{
    +    /**
    +     * Return an array of ranges for a user
    +     *
    +     * @param User  $userauthor         user author id
    +     * @param int   $fk_c_exp_tax_cat   category
    +     * @return boolean|array
    +     */
    +    public static function getRangeByUser(User $userauthor, $fk_c_exp_tax_cat)
    +    {
     		$default_range = (int) $userauthor->default_range; // if not defined, then 0
     		$ranges = self::getRangesByCategory($fk_c_exp_tax_cat);
     
    diff --git a/htdocs/expensereport/class/expensereport_rule.class.php b/htdocs/expensereport/class/expensereport_rule.class.php
    index 11bc480bf4f..6d2a99d2101 100644
    --- a/htdocs/expensereport/class/expensereport_rule.class.php
    +++ b/htdocs/expensereport/class/expensereport_rule.class.php
    @@ -29,8 +29,19 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/coreobject.class.php';
      */
     class ExpenseReportRule extends CoreObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='expenserule';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='expensereport_rules';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element='fk_expense_rule';
     
     	/**
    diff --git a/htdocs/expensereport/class/expensereportstats.class.php b/htdocs/expensereport/class/expensereportstats.class.php
    index 07396663f42..7901e813edc 100644
    --- a/htdocs/expensereport/class/expensereportstats.class.php
    +++ b/htdocs/expensereport/class/expensereportstats.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (c) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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,15 +22,18 @@
      *       \ingroup    expensereport
      *       \brief      Fichier de la classe de gestion des stats des expensereport et notes de frais
      */
    -include_once DOL_DOCUMENT_ROOT . '/core/class/stats.class.php';
    -include_once DOL_DOCUMENT_ROOT . '/expensereport/class/expensereport.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/class/stats.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/expensereport/class/expensereport.class.php';
     
     /**
      *  Classe permettant la gestion des stats des expensereports et notes de frais
      */
     class ExpenseReportStats extends Stats
     {
    -    public $table_element;
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element;
     
         var $socid;
         var $userid;
    diff --git a/htdocs/expensereport/class/paymentexpensereport.class.php b/htdocs/expensereport/class/paymentexpensereport.class.php
    index 0634ca16b7a..3055984e6c7 100644
    --- a/htdocs/expensereport/class/paymentexpensereport.class.php
    +++ b/htdocs/expensereport/class/paymentexpensereport.class.php
    @@ -30,26 +30,62 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class PaymentExpenseReport extends CommonObject
     {
    -	public $element='payment_expensereport';			//!< Id that identify managed objects
    -	public $table_element='payment_expensereport';	//!< Name of table without prefix where object is stored
    -    public $picto = 'payment';
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='payment_expensereport';
     
    -	var $rowid;
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='payment_expensereport';
     
    -	var $fk_expensereport;
    -	var $datec='';
    -	var $tms='';
    -	var $datep='';
    -    var $amount;            // Total amount of payment
    -    var $amounts=array();   // Array of amounts
    -	var $fk_typepayment;
    -	var $num_payment;
    -	var $fk_bank;
    -	var $fk_user_creat;
    -	var $fk_user_modif;
    -        //Unknow field
    -        var $chid;
    -        var $total;
    +    /**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
    +	public $picto = 'payment';
    +
    +	/**
    +	 * @var int ID
    +	 */
    +	public $rowid;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_expensereport;
    +
    +	public $datec='';
    +	public $tms='';
    +	public $datep='';
    +    public $amount;            // Total amount of payment
    +    public $amounts=array();   // Array of amounts
    +
    +    /**
    +     * @var int ID
    +     */
    +	public $fk_typepayment;
    +
    +	public $num_payment;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_bank;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_modif;
    +
    +    //Unknow field
    +    public $chid;
    +    public $total;
     
     	/**
     	 *	Constructor
    @@ -129,7 +165,6 @@ class PaymentExpenseReport extends CommonObject
     			{
     				$error++;
     			}
    -
     		}
     
     		if ($totalamount != 0 && ! $error)
    @@ -240,7 +275,6 @@ class PaymentExpenseReport extends CommonObject
     		if (isset($this->fk_user_modif))	$this->fk_user_modif=trim($this->fk_user_modif);
     
     
    -
     		// Check parameters
     		// Put here code to add control on parameters values
     
    @@ -387,8 +421,6 @@ class PaymentExpenseReport extends CommonObject
     
     		$object=new PaymentExpenseReport($this->db);
     
    -		$object->context['createfromclone'] = 'createfromclone';
    -
     		$this->db->begin();
     
     		// Load source object
    @@ -400,6 +432,7 @@ class PaymentExpenseReport extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result=$object->create($user);
     
     		// Other options
    @@ -412,11 +445,9 @@ class PaymentExpenseReport extends CommonObject
     		if (! $error)
     		{
     
    -
    -
     		}
     
    -		unset($this->context['createfromclone']);
    +		unset($object->context['createfromclone']);
     
     		// End
     		if (! $error)
    @@ -443,15 +474,17 @@ class PaymentExpenseReport extends CommonObject
     	    return '';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    -	 *  @param	int		$statut        	Id statut
    +	 *  @param  int		$statut        	Id statut
     	 *  @param  int		$mode          	0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
     	 *  @return string 			       	Libelle du statut
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     	    global $langs;
     
     	    return '';
    @@ -480,8 +513,6 @@ class PaymentExpenseReport extends CommonObject
     		$this->fk_bank='';
     		$this->fk_user_creat='';
     		$this->fk_user_modif='';
    -
    -
     	}
     
     
    @@ -505,7 +536,7 @@ class PaymentExpenseReport extends CommonObject
     
             if (! empty($conf->banque->enabled))
             {
    -            require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
    +            include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
                 $acc = new Account($this->db);
                 $acc->fetch($accountid);
    @@ -598,6 +629,7 @@ class PaymentExpenseReport extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update link between the expense report payment and the generated line in llx_bank
     	 *
    @@ -606,6 +638,7 @@ class PaymentExpenseReport extends CommonObject
     	 */
     	function update_fk_bank($id_bank)
     	{
    +        // phpcs:enable
     		$sql = "UPDATE ".MAIN_DB_PREFIX."payment_expensereport SET fk_bank = ".$id_bank." WHERE rowid = ".$this->id;
     
     		dol_syslog(get_class($this)."::update_fk_bank", LOG_DEBUG);
    diff --git a/htdocs/expensereport/document.php b/htdocs/expensereport/document.php
    index f0d61d0f80d..c788583d316 100644
    --- a/htdocs/expensereport/document.php
    +++ b/htdocs/expensereport/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
      * Copyright (C) 2011-2012 Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    @@ -103,7 +103,7 @@ if ($object->id)
     	dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
     
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -132,13 +132,12 @@ if ($object->id)
         $permtoedit = $user->rights->expensereport->creer;
         $param = '&id=' . $object->id;
         include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
    -
     }
     else
     {
     	print $langs->trans("ErrorUnknown");
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expensereport/export_csv.php b/htdocs/expensereport/export_csv.php
    index 4bc461b4d13..3a104ca77b4 100644
    --- a/htdocs/expensereport/export_csv.php
    +++ b/htdocs/expensereport/export_csv.php
    @@ -1,5 +1,6 @@
     <?php
     /* Copyright (C) 2004-2011	Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -59,7 +60,6 @@ if($num < 1) {
        $insert.= ")";
     
        $req = $db->query($insert);
    -
     }
     
     
    @@ -114,7 +114,7 @@ if (isset($_POST['action']))
     {
     	if($_POST['action'] == 'export')
     	{
    -		$select_date = $_POST['annee'].'-'.$_POST['mois'];
    +		$dateselected = $_POST['annee'].'-'.$_POST['mois'];
     
     		//var_dump($conf->expensereport->dir_output.'/export/');
     		if (!file_exists($conf->expensereport->dir_output.'/export/'))
    @@ -122,7 +122,7 @@ if (isset($_POST['action']))
     			dol_mkdir($conf->expensereport->dir_output.'/export/');
     		}
     
    -		$dir = $conf->expensereport->dir_output.'/export/expensereport-'.$select_date.'.csv';
    +		$dir = $conf->expensereport->dir_output.'/export/expensereport-'.$dateselected.'.csv';
     		$outputlangs = $langs;
     		$outputlangs->charset_output = 'UTF-8';
     
    @@ -175,7 +175,6 @@ if (isset($_POST['action']))
     						$ligne.= "--->, {$objet2->rowid}, {$objet2->libelle}, {$objet2->comments}, {$objet2->total_ht}, {$objet2->total_tva}, {$objet2->total_ttc}\n";
     					}
     				}
    -
     			}
     
     			$ligne = $outputlangs->convToOutputCharset($ligne);
    @@ -183,18 +182,16 @@ if (isset($_POST['action']))
     			fwrite($open,$ligne);
     			fclose($open);
     
    -			print '<a href="'.DOL_URL_ROOT.'/document.php?modulepart=expensereport&file=export%2Fexpensereport-'.$select_date.'.csv" target="_blank">Télécharger le fichier expensereport-'.$select_date.'.csv</a>';
    -
    +			print '<a href="'.DOL_URL_ROOT.'/document.php?modulepart=expensereport&file=export%2Fexpensereport-'.$dateselected.'.csv" target="_blank">Télécharger le fichier expensereport-'.$dateselected.'.csv</a>';
     		} else {
     
     			print '<b>'.$langs->trans('NoTripsToExportCSV').'</b>';
    -
     		}
     	}
     }
     
     print '</div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expensereport/index.php b/htdocs/expensereport/index.php
    index 0d988e4850d..4748bd2c2a4 100644
    --- a/htdocs/expensereport/index.php
    +++ b/htdocs/expensereport/index.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003		Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015	Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004		Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2011	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011	Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015       Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -219,7 +219,6 @@ if ($result)
     
                 $i++;
             }
    -
         }
         else
         {
    @@ -231,6 +230,6 @@ else dol_print_error($db);
     
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expensereport/info.php b/htdocs/expensereport/info.php
    index 6babfcd647c..67f70f3a984 100644
    --- a/htdocs/expensereport/info.php
    +++ b/htdocs/expensereport/info.php
    @@ -79,6 +79,6 @@ if ($id > 0 || ! empty($ref))
         dol_fiche_end();
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php
    index e576889d363..7e94a10418a 100644
    --- a/htdocs/expensereport/list.php
    +++ b/htdocs/expensereport/list.php
    @@ -2,9 +2,10 @@
     /* Copyright (C) 2003     	Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017	Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004     	Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2009	Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009	Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015       Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
    - * Copyright (C) 2018       Ferran Marcet		 <fmarcet@2byte.es>
    + * Copyright (C) 2018       Ferran Marcet	     <fmarcet@2byte.es>
    + * Copyright (C) 2018       Charlene Benke       <charlie@patas-monkey.com>
      *
      * 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
    @@ -26,7 +27,7 @@
      *		\brief      list of expense reports
      */
     
    -require "../main.inc.php";
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
    @@ -76,6 +77,8 @@ $search_amount_ttc = GETPOST('search_amount_ttc','alpha');
     $search_status = (GETPOST('search_status','intcomma')!=''?GETPOST('search_status','intcomma'):GETPOST('statut','intcomma'));
     $month_start  = GETPOST("month_start","int");
     $year_start   = GETPOST("year_start","int");
    +$day_start    = GETPOST("day_start","int");
    +$day_end      = GETPOST("day_end","int");
     $month_end    = GETPOST("month_end","int");
     $year_end     = GETPOST("year_end","int");
     $optioncss    = GETPOST('optioncss','alpha');
    @@ -90,7 +93,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('expensereport');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     
     // List of fields to search into when doing a "search in all"
    @@ -158,8 +161,10 @@ if (empty($reshook))
     	    $search_status="";
     	    $month_start="";
     	    $year_start="";
    +		$day ="";
     	    $month_end="";
     	    $year_end="";
    +	    $day_end = "";
     	    $toselect='';
     	    $search_array_options=array();
     	}
    @@ -271,34 +276,10 @@ if (!empty($sall)) $sql.= natural_search(array_keys($fieldstosearchall), $sall);
     // Ref
     if (!empty($search_ref)) $sql.= natural_search('d.ref', $search_ref);
     // Date Start
    -if ($month_start > 0)
    -{
    -    if ($year_start > 0 && empty($day))
    -    $sql.= " AND d.date_debut BETWEEN '".$db->idate(dol_get_first_day($year_start,$month_start,false))."' AND '".$db->idate(dol_get_last_day($year_start,$month_start,false))."'";
    -    else if ($year_start > 0 && ! empty($day))
    -    $sql.= " AND d.date_debut BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month_start, $day, $year_start))."' AND '".$db->idate(dol_mktime(23, 59, 59, $month_start, $day, $year_start))."'";
    -    else
    -    $sql.= " AND date_format(d.date_debut, '%m') = '".$month_start."'";
    -}
    -else if ($year_start > 0)
    -{
    -	$sql.= " AND d.date_debut BETWEEN '".$db->idate(dol_get_first_day($year_start,1,false))."' AND '".$db->idate(dol_get_last_day($year_start,12,false))."'";
    -}
    -// Date Start
    -if ($month_end > 0)
    -{
    -    if ($year_end > 0 && empty($day))
    -    $sql.= " AND d.date_fin BETWEEN '".$db->idate(dol_get_first_day($year_end,$month_end,false))."' AND '".$db->idate(dol_get_last_day($year_end,$month_end,false))."'";
    -    else if ($year_end > 0 && ! empty($day))
    -    $sql.= " AND d.date_fin BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month_end, $day, $year_end))."' AND '".$db->idate(dol_mktime(23, 59, 59, $month_end, $day, $year_end))."'";
    -    else
    -    $sql.= " AND date_format(d.date_fin, '%m') = '".$month_end."'";
    -}
    -else if ($year_end > 0)
    -{
    -	$sql.= " AND d.date_fin BETWEEN '".$db->idate(dol_get_first_day($year_end,1,false))."' AND '".$db->idate(dol_get_last_day($year_end,12,false))."'";
    -}
    -// Amount
    +$sql.= dolSqlDateFilter("d.date_debut",	$day_start, $month_start, $year_start);
    +// Date End
    +$sql.= dolSqlDateFilter("d.date_fin", $day_end, $month_end, $year_end);
    +
     if ($search_amount_ht != '') $sql.= natural_search('d.total_ht', $search_amount_ht, 1);
     if ($search_amount_ttc != '') $sql.= natural_search('d.total_ttc', $search_amount_ttc, 1);
     // User
    @@ -359,6 +340,7 @@ if ($resql)
     
     	// List of mass actions available
     	$arrayofmassactions =  array(
    +		'generate_doc'=>$langs->trans("Generate"),
     	    'presend'=>$langs->trans("SendByMail"),
     	    'builddoc'=>$langs->trans("PDFMerge"),
     	);
    @@ -538,6 +520,9 @@ if ($resql)
     	if (! empty($arrayfields['d.date_debut']['checked']))
     	{
         	print '<td class="liste_titre" align="center">';
    +	if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY))
    +		print '<input class="flat width25" type="text" maxlength="2" name="day_start" value="'.dol_escape_htmltag($day_start).'">';
    +
         	print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="month_start" value="'.$month_start.'">';
         	$formother->select_year($year_start,'year_start',1, $min_year, $max_year);
         	print '</td>';
    @@ -546,7 +531,9 @@ if ($resql)
     	if (! empty($arrayfields['d.date_fin']['checked']))
     	{
         	print '<td class="liste_titre" align="center">';
    -    	print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="month_end" value="'.$month_end.'">';
    +	if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY))
    +		print '<input class="flat width25" type="text" maxlength="2" name="day_end" value="'.dol_escape_htmltag($day_end).'">';
    +	print '<input class="flat valignmiddle" type="text" size="1" maxlength="2" name="month_end" value="'.$month_end.'">';
         	$formother->select_year($year_end,'year_end',1, $min_year, $max_year);
         	print '</td>';
         }
    @@ -695,7 +682,7 @@ if ($resql)
     			}
     			// User
     			if (! empty($arrayfields['user']['checked'])) {
    -			    print '<td align="left">';
    +			    print '<td class="left">';
         			$usertmp->id=$obj->id_user;
         			$usertmp->lastname=$obj->lastname;
         			$usertmp->firstname=$obj->firstname;
    @@ -818,8 +805,8 @@ if ($resql)
     	        $i++;
     	        if ($i == 1)
     	        {
    -	            if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
    -	            else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +	            if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +	            else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     	        }
     	        elseif ($totalarray['totalhtfield'] == $i) print '<td align="right">'.price($totalarray['totalht']).'</td>';
     	        elseif ($totalarray['totalvatfield'] == $i) print '<td align="right">'.price($totalarray['totalvat']).'</td>';
    @@ -861,7 +848,6 @@ else
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expensereport/note.php b/htdocs/expensereport/note.php
    index 7eb48443901..3beb7f49da5 100644
    --- a/htdocs/expensereport/note.php
    +++ b/htdocs/expensereport/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Florian Henry		  	<florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -56,7 +56,7 @@ $permissionnote=$user->rights->expensereport->creer;	// Used by the include of a
      * Actions
      */
     
    -include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php';	// Must be include, not includ_once
    +include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php';	// Must be include, not include_once
     
     
     /*
    @@ -97,6 +97,6 @@ if ($id > 0 || ! empty($ref))
     	dol_fiche_end();
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/expensereport/payment/card.php b/htdocs/expensereport/payment/card.php
    index 29ac7e38862..7e1a1bf0d61 100644
    --- a/htdocs/expensereport/payment/card.php
    +++ b/htdocs/expensereport/payment/card.php
    @@ -129,7 +129,6 @@ dol_fiche_head($head, 'payment', $langs->trans("ExpenseReportPayment"), -1, 'pay
     if ($action == 'delete')
     {
     	print $form->formconfirm('card.php?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete','',0,2);
    -
     }
     
     /*
    @@ -139,7 +138,6 @@ if ($action == 'valide')
     {
     	$facid = $_GET['facid'];
     	print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;facid='.$facid, $langs->trans("ValidatePayment"), $langs->trans("ConfirmValidatePayment"), 'confirm_valide','',0,2);
    -
     }
     
     $linkback = '';
    @@ -306,13 +304,13 @@ if ($action == '')
     		}
     		else
     		{
    -			print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($title_button).'">'.$langs->trans('Delete').'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($title_button).'">'.$langs->trans('Delete').'</a>';
     		}
     	}
     }
     
     print '</div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expensereport/payment/info.php b/htdocs/expensereport/payment/info.php
    index 97098ef2340..6c7f8dd99c6 100644
    --- a/htdocs/expensereport/payment/info.php
    +++ b/htdocs/expensereport/payment/info.php
    @@ -77,5 +77,6 @@ print '</div>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/expensereport/payment/payment.php b/htdocs/expensereport/payment/payment.php
    index 23959c06e67..a4346ce34bc 100644
    --- a/htdocs/expensereport/payment/payment.php
    +++ b/htdocs/expensereport/payment/payment.php
    @@ -1,6 +1,7 @@
     <?php
    -/* Copyright (C) 2015       Alexandre Spangaro	 <aspangaro.dolibarr@gmail.com>
    - * Copyright (C) 2015       Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2015       Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2015       Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -149,7 +150,6 @@ if ($action == 'add_payment')
                             $error++;
                         }
                     }
    -
                 }
     
         	    if (! $error)
    @@ -187,6 +187,20 @@ if ($action == 'create' || empty($action))
     
     	$total = $expensereport->total_ttc;
     
    +	// autofill remainder amount
    +	if (! empty($conf->use_javascript_ajax))
    +		{
    +			print "\n".'<script type="text/javascript" language="javascript">';
    +			//Add js for AutoFill
    +			print ' $(document).ready(function () {';
    +			print ' 	$(".AutoFillAmount").on(\'click touchstart\', function(){
    +                            var amount = $(this).data("value");
    +							document.getElementById($(this).data(\'rowid\')).value = amount ;
    +						});';
    +			print '	});'."\n";
    +			print '	</script>'."\n";
    +		}
    +
     	print load_fiche_titre($langs->trans("DoPayment"));
     
     	print '<form name="add_payment" action="'.$_SERVER['PHP_SELF'].'" method="post">';
    @@ -235,7 +249,7 @@ if ($action == 'create' || empty($action))
         print '<tr><td class="titlefield fieldrequired">'.$langs->trans("Date").'</td><td colspan="2">';
     	$datepaid = dol_mktime(12, 0, 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]);
     	$datepayment=empty($conf->global->MAIN_AUTOFILL_DATE)?(empty($_POST["remonth"])?-1:$datepaid):0;
    -	$form->select_date($datepayment,'','','','',"add_payment",1,1);
    +	print $form->selectDate($datepayment, '', '', '', '', "add_payment", 1, 1);
     	print "</td>";
     	print '</tr>';
     
    @@ -298,7 +312,12 @@ if ($action == 'create' || empty($action))
     		if ($sumpaid < $objp->total_ttc)
     		{
     			$namef = "amount_".$objp->id;
    -			print '<input type="text" size="8" name="'.$namef.'">';
    +			$nameRemain = "remain_".$objp->id; // autofill remainder amount
    +			if (!empty($conf->use_javascript_ajax)) // autofill remainder amount
    +					print img_picto("Auto fill",'rightarrow', "class='AutoFillAmount' data-rowid='".$namef."' data-value='".($objp->total_ttc - $sumpaid)."'"); // autofill remainder amount
    +			$remaintopay=$objp->total_ttc - $sumpaid; // autofill remainder amount
    +			print '<input type=hidden class="sum_remain" name="'.$nameRemain.'" value="'.$remaintopay.'">'; // autofill remainder amount
    +			print '<input type="text" size="8" name="'.$namef.'" id="'.$namef.'">';
     		}
     		else
     		{
    @@ -336,5 +355,6 @@ if ($action == 'create' || empty($action))
     	print "</form>\n";
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/expensereport/stats/index.php b/htdocs/expensereport/stats/index.php
    index b4f0327cd39..08af170f5e7 100644
    --- a/htdocs/expensereport/stats/index.php
    +++ b/htdocs/expensereport/stats/index.php
    @@ -2,6 +2,7 @@
     /* Copyright (C) 2003-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (c) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2012      Marcos García        <marcosgdf@gmail.com>
    + * Copyright (C) 2018      Frédéric France      <frederic.france@netlogic.fr>
      *
      * 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
    @@ -231,7 +232,7 @@ if (empty($user->rights->expensereport->readall) && empty($user->rights->expense
     print $form->select_dolusers($userid, 'userid', 1, '', 0, $include, '', 0, 0, 0, '', 0, '', 'maxwidth300');
     print '</td></tr>';
     // Status
    -print '<tr><td align="left">'.$langs->trans("Status").'</td><td align="left">';
    +print '<tr><td class="left">'.$langs->trans("Status").'</td><td class="left">';
     $liststatus=$tmpexpensereport->statuts;
     print $form->selectarray('object_status', $liststatus, GETPOST('object_status'), -4, 0, 0, '', 1);
     print '</td></tr>';
    @@ -246,6 +247,7 @@ print '</table>';
     print '</form>';
     print '<br><br>';
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre" height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
    @@ -281,7 +283,7 @@ foreach ($data as $val)
     }
     
     print '</table>';
    -
    +print '</div>';
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
     
    @@ -305,7 +307,6 @@ print '<div style="clear:both"></div>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/expensereport/tpl/linkedobjectblock.tpl.php b/htdocs/expensereport/tpl/linkedobjectblock.tpl.php
    index 2d040834a12..aa529b17da2 100644
    --- a/htdocs/expensereport/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/expensereport/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011	Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2013		Juanjo Menent <jmenent@2byte.es>
      * Copyright (C) 2014       Marcos García <marcosgdf@gmail.com>
      *
    diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php
    index 050318944d6..7d908161071 100644
    --- a/htdocs/exports/class/export.class.php
    +++ b/htdocs/exports/class/export.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2011  Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012  Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2012       Charles-Fr BENKE    <charles.fr@benke.fr>
      * Copyright (C) 2016       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
      *
    @@ -30,7 +30,10 @@
      */
     class Export
     {
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	var $array_export_code=array();             // Tableau de "idmodule_numlot"
     	var $array_export_module=array();           // Tableau de "nom de modules"
    @@ -67,6 +70,7 @@ class Export
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Load an exportable dataset
     	 *
    @@ -76,6 +80,7 @@ class Export
     	 */
     	function load_arrays($user,$filter='')
     	{
    +        // phpcs:enable
     		global $langs,$conf,$mysoc;
     
     		dol_syslog(get_class($this)."::load_arrays user=".$user->id." filter=".$filter);
    @@ -204,6 +209,7 @@ class Export
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Build the sql export request.
     	 *      Arrays this->array_export_xxx are already loaded for required datatoexport
    @@ -215,6 +221,7 @@ class Export
     	 */
     	function build_sql($indice, $array_selected, $array_filterValue)
     	{
    +        // phpcs:enable
     		// Build the sql request
     		$sql=$this->array_export_sql_start[$indice];
     		$i=0;
    @@ -266,6 +273,7 @@ class Export
     		return $sql;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Build the conditionnal string from filter the query
     	 *
    @@ -276,6 +284,7 @@ class Export
     	 */
     	function build_filterQuery($TypeField, $NameField, $ValueField)
     	{
    +        // phpcs:enable
     		//print $TypeField." ".$NameField." ".$ValueField;
     		$InfoFieldList = explode(":", $TypeField);
     		// build the input field on depend of the type of file
    @@ -359,6 +368,7 @@ class Export
     		return $Condition;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Build an input field used to filter the query
     	 *
    @@ -369,6 +379,7 @@ class Export
     	 */
     	function build_filterField($TypeField, $NameField, $ValueField)
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$szFilterField='';
    @@ -507,6 +518,7 @@ class Export
     		return $szMsg;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Build export file.
     	 *      File is built into directory $conf->export->dir_temp.'/'.$user->id
    @@ -522,6 +534,7 @@ class Export
     	 */
     	function build_file($user, $model, $datatoexport, $array_selected, $array_filterValue, $sqlquery = '')
      	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$indice=0;
    @@ -817,6 +830,7 @@ class Export
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Output list all export models
     	 *  TODO Move this into a class htmlxxx.class.php
    @@ -825,6 +839,7 @@ class Export
     	 */
     	function list_export_model()
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		$sql = "SELECT em.rowid, em.field, em.label, em.type, em.filter";
    @@ -871,6 +886,4 @@ class Export
     			dol_print_error($this->db);
     		}
     	}
    -
     }
    -
    diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php
    index 13d28189e95..52ad0486597 100644
    --- a/htdocs/exports/export.php
    +++ b/htdocs/exports/export.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2018	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Marcos García		<marcosgdf@gmail.com>
      * Copyright (C) 2012		Charles-Fr BENKE	<charles.fr@benke.fr>
      * Copyright (C) 2015       Juanjo Menent       <jmenent@2byte.es>
    @@ -67,6 +67,8 @@ $entitytoicon = array(
     	'category'     => 'category',
     	'shipment'     => 'sending',
         'shipment_line'=> 'sending',
    +    'reception'=> 'sending',
    +    'reception_line'=> 'sending',
     	'expensereport'=> 'trip',
         'expensereport_line'=> 'trip',
     	'holiday'      => 'holiday',
    @@ -208,7 +210,6 @@ if ($action=='selectfield')     // Selection of field at step 2
     
     	    setEventMessages($warnings, null, 'warnings');
         }
    -
     }
     if ($action=='unselectfield')
     {
    @@ -624,11 +625,11 @@ if ($step == 2 && $datatoexport)
             }
        		if (! empty($objexport->array_export_examplevalues[0][$code]))
     		{
    -		    $htmltext.=$langs->trans("SourceExample").': <b>'.$objexport->array_export_examplevalues[0][$code].'</b><br>';
    +		    $htmltext.='<b>'.$langs->trans("SourceExample").':</b> '.$objexport->array_export_examplevalues[0][$code].'<br>';
     		}
         	if (! empty($objexport->array_export_TypeFields[0][$code]))
     		{
    -		    $htmltext.=$langs->trans("Type").': <b>'.$objexport->array_export_TypeFields[0][$code].'</b><br>';
    +		    $htmltext.='<b>'.$langs->trans("Type").':</b> '.$objexport->array_export_TypeFields[0][$code].'<br>';
     		}
     
     		if (isset($array_selected[$code]) && $array_selected[$code])
    @@ -679,11 +680,10 @@ if ($step == 2 && $datatoexport)
     	}
     	else
     	{
    -		print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("SelectAtLeastOneField")).'">'.$langs->trans("NextStep").'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("SelectAtLeastOneField")).'">'.$langs->trans("NextStep").'</a>';
     	}
     
         print '</div>';
    -
     }
     
     if ($step == 3 && $datatoexport)
    @@ -858,7 +858,6 @@ if ($step == 3 && $datatoexport)
     	// il n'est pas obligatoire de filtrer les champs
     	print '<a class="butAction" href="javascript:FilterField.submit();">'.$langs->trans("NextStep").'</a>';
     	print '</div>';
    -
     }
     
     if ($step == 4 && $datatoexport)
    @@ -1162,7 +1161,6 @@ if ($step == 5 && $datatoexport)
         if ($action == 'remove_file')
         {
         	print $form->formconfirm($_SERVER["PHP_SELF"].'?step=5&datatoexport='.$datatoexport.'&file='.urlencode(GETPOST("file")), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile', '', 0, 1);
    -
         }
     
         print '<div class="fichecenter">';
    @@ -1221,15 +1219,13 @@ if ($step == 5 && $datatoexport)
     
         print '<br>';
     
    -    print $langs->trans("NowClickToGenerateToBuildExportFile").'<br>';
    -
         // List of available export formats
    -    print '<table class="noborder" width="100%">';
    -    print '<tr class="liste_titre">';
    -    print '<td class="titlefield">'.$langs->trans("AvailableFormats").'</td>';
    -    print '<td>'.$langs->trans("LibraryUsed").'</td>';
    -    print '<td align="right">'.$langs->trans("LibraryVersion").'</td>';
    -    print '</tr>'."\n";
    +    $htmltabloflibs = '<table class="noborder" width="100%">';
    +    $htmltabloflibs.= '<tr class="liste_titre">';
    +    $htmltabloflibs.= '<td class="titlefield">'.$langs->trans("AvailableFormats").'</td>';
    +    $htmltabloflibs.= '<td>'.$langs->trans("LibraryUsed").'</td>';
    +    $htmltabloflibs.= '<td align="right">'.$langs->trans("LibraryVersion").'</td>';
    +    $htmltabloflibs.= '</tr>'."\n";
     
         $liste=$objmodelexport->liste_modeles($db);
         $listeall=$liste;
    @@ -1241,16 +1237,20 @@ if ($step == 5 && $datatoexport)
         		unset($liste[$key]);
         	}
     
    -        print '<tr class="oddeven">';
    -        print '<td width="16">'.img_picto_common($key,$objmodelexport->getPictoForKey($key)).' ';
    +    	$htmltabloflibs.= '<tr class="oddeven">';
    +    	$htmltabloflibs.= '<td width="16">'.img_picto_common($key,$objmodelexport->getPictoForKey($key)).' ';
     	    $text=$objmodelexport->getDriverDescForKey($key);
     	    $label=$listeall[$key];
    -	    print $form->textwithpicto($label,$text).'</td>';
    -        print '<td>'.$objmodelexport->getLibLabelForKey($key).'</td>';
    -        print '<td align="right">'.$objmodelexport->getLibVersionForKey($key).'</td>';
    -        print '</tr>'."\n";
    +	    $htmltabloflibs.= $form->textwithpicto($label,$text).'</td>';
    +	    $htmltabloflibs.= '<td>'.$objmodelexport->getLibLabelForKey($key).'</td>';
    +	    $htmltabloflibs.= '<td align="right">'.$objmodelexport->getLibVersionForKey($key).'</td>';
    +	    $htmltabloflibs.= '</tr>'."\n";
         }
    -    print '</table>';
    +    $htmltabloflibs.= '</table>';
    +
    +    print '<span class="opacitymedium">'.$form->textwithpicto($langs->trans("NowClickToGenerateToBuildExportFile"), $htmltabloflibs, 1, 'help', '', 0, 2, 'helphonformat').'</span>';
    +    //print $htmltabloflibs;
    +    print '<br>';
     
         print '</div>';
     
    @@ -1272,7 +1272,7 @@ if ($step == 5 && $datatoexport)
     
         // Affiche liste des documents
         // NB: La fonction show_documents rescanne les modules qd genallowed=1, sinon prend $liste
    -    print $formfile->showdocuments('export','',$upload_dir,$_SERVER["PHP_SELF"].'?step=5&datatoexport='.$datatoexport,$liste,1,(! empty($_POST['model'])?$_POST['model']:'csv'),1,1);
    +    print $formfile->showdocuments('export','',$upload_dir,$_SERVER["PHP_SELF"].'?step=5&datatoexport='.$datatoexport,$liste,1,(! empty($_POST['model'])?$_POST['model']:'csv'),1,1,0,0,0,'',$langs->trans('Files'), '', '', '');
     
         print '</div><div class="fichehalfright"><div class="ficheaddleft">';
     
    diff --git a/htdocs/exports/index.php b/htdocs/exports/index.php
    index bccf25f1be8..81027882b6b 100644
    --- a/htdocs/exports/index.php
    +++ b/htdocs/exports/index.php
    @@ -145,7 +145,6 @@ print '</table>';
     
     //print '</div></div></div>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/externalsite/frames.php b/htdocs/externalsite/frames.php
    index 611e84fe9c3..c7f92142381 100644
    --- a/htdocs/externalsite/frames.php
    +++ b/htdocs/externalsite/frames.php
    @@ -21,8 +21,9 @@
      *     \ingroup    	externalsite
      *     \brief      	Page that build two frames: One for menu, the other for the target page to show
      *					Usage:
    - *					  mydomain.com/externalsite/frames.php to show URL set into setup
    - *					  mydomain.com/externalsite/frames.php?keyforcontent to show content defined into conf->global->$keyforcontent
    + *					  /externalsite/frames.php to show URL set into setup
    + *					  /externalsite/frames.php?keyforcontent=EXTERNAL_SITE_CONTENT_abc to show html text defined into $conf->global->EXTERNAL_SITE_CONTENT_abc
    + *					  /externalsite/frames.php?keyforcontent=EXTERNAL_SITE_URL_abc to show URL defined into $conf->global->EXTERNAL_SITE_URL_abc
      */
     
     require '../main.inc.php';
    @@ -56,19 +57,58 @@ if (! empty($keyforcontent))
     
     	print '<div class="framecontent" style="height: '.($_SESSION['dol_screenheight']-90).'px">';
     
    -	if (! preg_match('/EXTERNAL_SITE_CONTENT_/', $keyforcontent))
    +	if (! preg_match('/EXTERNAL_SITE_CONTENT_/', $keyforcontent)
    +		 && ! preg_match('/EXTERNAL_SITE_URL_/', $keyforcontent))
     	{
     		$langs->load("errors");
    -		print $langs->trans("Variablekeyforcontentmustbenamed", 'EXTERNAL_SITE_CONTENT_');
    +		print $langs->trans("ErrorBadSyntaxForParamKeyForContent", 'EXTERNAL_SITE_CONTENT_', 'EXTERNAL_SITE_URL_');
     	}
     	else if (empty($conf->global->$keyforcontent))
     	{
     		$langs->load("errors");
    -		print $langs->trans("ErrorNoContentDefinedIntoVar", $keyforcontent);
    +		print $langs->trans("ErrorVariableKeyForContentMustBeSet", 'EXTERNAL_SITE_CONTENT_'.$keyforcontent, 'EXTERNAL_SITE_URL_'.$keyforcontent);
     	}
     	else
     	{
    -		print $conf->global->$keyforcontent;
    +		if (preg_match('/EXTERNAL_SITE_CONTENT_/', $keyforcontent))
    +		{
    +			print $conf->global->$keyforcontent;
    +		}
    +		elseif (preg_match('/EXTERNAL_SITE_URL_/', $keyforcontent))
    +		{
    +			/*print "
    +			<html>
    +			<head>
    +			<title>Dolibarr frame for external web site</title>
    +			</head>
    +
    +			<frameset ".(empty($conf->global->MAIN_MENU_INVERT)?"rows":"cols")."=\"".$heightforframes.",*\" border=0 framespacing=0 frameborder=0>
    +			    <frame name=\"barre\" src=\"frametop.php?mainmenu=".$mainmenu."&leftmenu=".$leftmenu."&idmenu=".$idmenu.($theme?'&theme='.$theme:'').($codelang?'&lang='.$codelang:'')."&nobackground=1\" noresize scrolling=\"NO\" noborder>
    +			  ";
    +					print '<frame name="main" src="';
    +					print $conf->global->$keyforcontent;
    +					print '">';
    +					print "
    +			    <noframes>
    +			    <body>
    +
    +			    </body>
    +			    </noframes>
    +			</frameset>
    +
    +			<noframes>
    +			<body>
    +				<br><div class=\"center\">
    +				Sorry, your browser is too old or not correctly configured to view this area.<br>
    +				Your browser must support frames.<br>
    +				</div>
    +			</body>
    +			</noframes>
    +
    +			</html>
    +			";*/
    +			print '<iframe src="'.$conf->global->$keyforcontent.'"></iframe>';
    +		}
     	}
     
     	print '<div>';
    diff --git a/htdocs/externalsite/frametop.php b/htdocs/externalsite/frametop.php
    index 5abc4e840a3..ee746d745cc 100644
    --- a/htdocs/externalsite/frametop.php
    +++ b/htdocs/externalsite/frametop.php
    @@ -22,7 +22,7 @@
      *		\brief      Top frame to show external web application
      */
     
    -require ("../main.inc.php");
    +require "../main.inc.php";
     
     // Load translation files required by the page
     $langs->load("externalsite");
    diff --git a/htdocs/fichinter/admin/fichinter_extrafields.php b/htdocs/fichinter/admin/fichinter_extrafields.php
    index 40fd63d7639..b74010c5882 100644
    --- a/htdocs/fichinter/admin/fichinter_extrafields.php
    +++ b/htdocs/fichinter/admin/fichinter_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -80,7 +80,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -93,8 +93,8 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    -    print load_fiche_titre($langs->trans('NewAttribute'));
    +	print '<br><div id="newattrib"></div>';
    +	print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
     }
    diff --git a/htdocs/fichinter/admin/fichinterdet_extrafields.php b/htdocs/fichinter/admin/fichinterdet_extrafields.php
    index eab70d5d585..4dceaf9c354 100644
    --- a/htdocs/fichinter/admin/fichinterdet_extrafields.php
    +++ b/htdocs/fichinter/admin/fichinterdet_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -81,7 +81,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -94,8 +94,8 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    -    print load_fiche_titre($langs->trans('NewAttribute'));
    +	print '<br><div id="newattrib"></div>';
    +	print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
     }
    diff --git a/htdocs/fichinter/card-rec.php b/htdocs/fichinter/card-rec.php
    new file mode 100644
    index 00000000000..e896c9682e4
    --- /dev/null
    +++ b/htdocs/fichinter/card-rec.php
    @@ -0,0 +1,958 @@
    +<?php
    +/* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012 Regis Houssin		<regis.houssin@inodbox.com>
    + * Copyright (C) 2013	   Florian Henry		<florian.henry@open-concept.pro>
    + * Copyright (C) 2013	   Juanjo Menent		<jmenent@2byte.es>
    + * Copyright (C) 2015	   Jean-François Ferry	<jfefe@aternatik.fr>
    + * Copyright (C) 2012	   Cedric Salvador		<csalvador@gpcsolutions.fr>
    + * Copyright (C) 2015	   Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2016-2018 Charlie Benke		<charlie@patas-monkey.com>
    + * Copyright (C) 2018      Frédéric France      <frederic.france@netlogic.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *	\file	   fichinter/card-rec.php
    + *	\ingroup	fichinter
    + *	\brief	  Page to show predefined fichinter
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinterrec.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/fichinter.lib.php';
    +
    +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    +if (! empty($conf->projet->enabled)) {
    +	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
    +	require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php';
    +}
    +if (! empty($conf->contrat->enabled)) {
    +	require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
    +	require_once DOL_DOCUMENT_ROOT . '/core/class/html.formcontract.class.php';
    +}
    +
    +// Load translation files required by the page
    +$langs->loadLangs(array("interventions","admin","compta","bills"));
    +
    +// Security check
    +$id=(GETPOST('fichinterid', 'int')?GETPOST('fichinterid', 'int'):GETPOST('id', 'int'));
    +$action=GETPOST('action', 'alpha');
    +if ($user->societe_id) $socid=$user->societe_id;
    +$objecttype = 'fichinter_rec';
    +if ($action == "create" || $action == "add") $objecttype = '';
    +$result = restrictedArea($user, 'ficheinter', $id, $objecttype);
    +
    +if ($page == -1)
    +	$page = 0 ;
    +
    +$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit;
    +$offset = $limit * $page ;
    +
    +if ($sortorder == "")
    +	$sortorder="DESC";
    +
    +if ($sortfield == "")
    +	$sortfield="f.datec";
    +
    +$object = new FichinterRec($db);
    +
    +
    +$arrayfields=array(
    +	'f.titre'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
    +	's.nom'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1),
    +	'f.fk_contrat'=>array('label'=>$langs->trans("Contract"), 'checked'=>1),
    +	'f.duree'=>array('label'=>$langs->trans("Duration"), 'checked'=>1),
    +	'f.total_ttc'=>array('label'=>$langs->trans("AmountTTC"), 'checked'=>1),
    +	'f.frequency'=>array('label'=>$langs->trans("RecurringInvoiceTemplate"), 'checked'=>1),
    +	'f.nb_gen_done'=>array('label'=>$langs->trans("NbOfGenerationDone"), 'checked'=>1),
    +	'f.date_last_gen'=>array('label'=>$langs->trans("DateLastGeneration"), 'checked'=>1),
    +	'f.date_when'=>array('label'=>$langs->trans("NextDateToExecution"), 'checked'=>1),
    +	'f.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
    +	'f.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
    +);
    +
    +
    +/*
    + * Actions
    + */
    +
    +
    +// Create predefined intervention
    +if ($action == 'add') {
    +	if (! GETPOST('titre')) {
    +		setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->trans("Title")), null, 'errors');
    +		$action = "create";
    +		$error++;
    +	}
    +
    +	if (! GETPOST('socid')) {
    +		setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->trans("Customer")), null, 'errors');
    +		$action = "create";
    +		$error++;
    +	}
    +
    +	// gestion des fréquences et des échéances
    +	$frequency=GETPOST('frequency', 'int');
    +	$reyear=GETPOST('reyear');
    +	$remonth=GETPOST('remonth');
    +	$reday=GETPOST('reday');
    +	$rehour=GETPOST('rehour');
    +	$remin=GETPOST('remin');
    +	$nb_gen_max = (GETPOST('nb_gen_max', 'int')?GETPOST('nb_gen_max', 'int'):0);
    +	if (GETPOST('frequency')) {
    +		if (empty($reyear) || empty($remonth) || empty($reday)) {
    +			setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->trans("Date")), null, 'errors');
    +			$action = "create";
    +			$error++;
    +		}
    +		if ($nb_gen_max === '') {
    +			setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->trans("MaxPeriodNumber")), null, 'errors');
    +			$action = "create";
    +			$error++;
    +		}
    +	}
    +
    +	if (! $error) {
    +		$object->id_origin		= $id;
    +		$object->titre			= GETPOST('titre', 'alpha');
    +		$object->description	= GETPOST('description', 'alpha');
    +		$object->socid			= GETPOST('socid', 'alpha');
    +		$object->fk_project		= GETPOST('projectid', 'int');
    +		$object->fk_contract	= GETPOST('contractid', 'int');
    +
    +		$object->frequency = $frequency;
    +		$object->unit_frequency = GETPOST('unit_frequency', 'alpha');
    +		$object->nb_gen_max = $nb_gen_max;
    +		$object->auto_validate = GETPOST('auto_validate', 'int');
    +
    +		$date_next_execution = dol_mktime($rehour, $remin, 0, $remonth, $reday, $reyear);
    +		$object->date_when = $date_next_execution;
    +
    +		if ($object->create($user) > 0) {
    +			$id = $object->id;
    +			$action = '';
    +		} else {
    +			setEventMessages($object->error, $object->errors, 'errors');
    +			$action = "create";
    +		}
    +	}
    +} elseif ($action == 'createfrommodel') {
    +	$newinter = new Fichinter($db);
    +
    +	// on récupère les enregistrements
    +	$object->fetch($id);
    +
    +
    +	// on transfert les données de l'un vers l'autre
    +	if ($object->socid > 0) {
    +		$newinter->socid=$object->socid;
    +		$newinter->fk_projet=$object->fk_projet;
    +		$newinter->fk_contrat=$object->fk_contrat;
    +	} else
    +		$newinter->socid=GETPOST("socid");
    +
    +	$newinter->entity=$object->entity;
    +	$newinter->duree=$object->duree;
    +
    +	$newinter->description=$object->description;
    +	$newinter->note_private=$object->note_private;
    +	$newinter->note_public=$object->note_public;
    +
    +	// on créer un nouvelle intervention
    +	$extrafields = new ExtraFields($db);
    +	$extralabels = $extrafields->fetch_name_optionals_label($newinter->table_element);
    +	$array_options = $extrafields->getOptionalsFromPost($newinter->table_element);
    +	$newinter->array_options = $array_options;
    +
    +	$newfichinterid = $newinter->create($user);
    +
    +	if ($newfichinterid > 0) {
    +		// on ajoute les lignes de détail ensuite
    +		foreach ($object->lines as $ficheinterligne)
    +			$newinter->addline($user, $newfichinterid, $ficheinterligne->desc, "", $ficheinterligne->duree, '');
    +
    +		// on update le nombre d'inter crée à partir du modèle
    +		$object->updateNbGenDone();
    +		//on redirige vers la fiche d'intervention nouvellement crée
    +		header('Location: '.DOL_URL_ROOT.'/fichinter/card.php?id='.$newfichinterid);
    +		exit;
    +	} else {
    +		setEventMessages($newinter->error, $newinter->errors, 'errors');
    +		$action='';
    +	}
    +} elseif ($action == 'delete' && $user->rights->ficheinter->supprimer) {
    +		// delete modele
    +	$object->fetch($id);
    +	$object->delete();
    +	$id = 0 ;
    +	header('Location: '.$_SERVER["PHP_SELF"]);
    +	exit;
    +} elseif ($action == 'setfrequency' && $user->rights->ficheinter->creer) {
    +	// Set frequency and unit frequency
    +	$object->fetch($id);
    +	$object->setFrequencyAndUnit(GETPOST('frequency', 'int'), GETPOST('unit_frequency', 'alpha'));
    +} elseif ($action == 'setdate_when' && $user->rights->ficheinter->creer) {
    +	// Set next date of execution
    +	$object->fetch($id);
    +	$date = dol_mktime(
    +					GETPOST('date_whenhour'), GETPOST('date_whenmin'), 0,
    +					GETPOST('date_whenmonth'), GETPOST('date_whenday'), GETPOST('date_whenyear')
    +	);
    +	if (!empty($date)) $object->setNextDate($date);
    +} elseif ($action == 'setnb_gen_max' && $user->rights->ficheinter->creer) {
    +// Set max period
    +	$object->fetch($id);
    +	$object->setMaxPeriod(GETPOST('nb_gen_max', 'int'));
    +}
    +
    +
    +/*
    + *	View
    + */
    +
    +llxHeader('', $langs->trans("RepeatableInterventional"), 'ch-fichinter.html#s-fac-fichinter-rec');
    +
    +$form = new Form($db);
    +$companystatic = new Societe($db);
    +if (! empty($conf->contrat->enabled))
    +	$contratstatic = new Contrat($db);
    +if (! empty($conf->projet->enabled))
    +	$projectstatic = new Project($db);
    +
    +$now = dol_now();
    +$tmparray=dol_getdate($now);
    +$today = dol_mktime(
    +				23, 59, 59,
    +				$tmparray['mon'], $tmparray['mday'], $tmparray['year']
    +);   // Today is last second of current day
    +
    +
    +
    +/*
    + * Create mode
    + */
    +if ($action == 'create') {
    +	print load_fiche_titre($langs->trans("CreateRepeatableIntervention"), '', 'title_commercial.png');
    +
    +	$object = new Fichinter($db);   // Source invoice
    +	//$object = new Managementfichinter($db);   // Source invoice
    +
    +	if ($object->fetch($id, $ref) > 0) {
    +		print '<form action="fiche-rec.php" method="post">';
    +		print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +		print '<input type="hidden" name="action" value="add">';
    +		print '<input type="hidden" name="fichinterid" value="'.$object->id.'">';
    +
    +		dol_fiche_head();
    +
    +		$rowspan=4;
    +		if (! empty($conf->projet->enabled) && $object->fk_project > 0) $rowspan++;
    +		if (! empty($conf->contrat->enabled) && $object->fk_contrat > 0) $rowspan++;
    +
    +		print '<table class="border" width="100%">';
    +
    +		$object->fetch_thirdparty();
    +
    +		// Third party
    +		print '<tr><td>'.$langs->trans("Customer").'</td><td>';
    +		print $form->select_company($object->thirdparty->id, 'socid', '', 0, 1);
    +
    +//		.$object->thirdparty->getNomUrl(1,'customer').
    +		print '</td><td>';
    +		print $langs->trans("Comment");
    +		print '</td></tr>';
    +
    +		// Title
    +		print '<tr><td class="fieldrequired">'.$langs->trans("Title").'</td><td>';
    +		print '<input class="flat" type="text" name="titre" size="24" value="'.$_POST["titre"].'">';
    +		print '</td>';
    +
    +		// Note
    +		print '<td rowspan="'.$rowspan.'" valign="top">';
    +		print '<textarea class="flat" name="description" wrap="soft" cols="60" rows="'.ROWS_4.'">';
    +		print $object->description.'</textarea>';
    +		print '</td></tr>';
    +
    +		// Author
    +		print "<tr><td>".$langs->trans("Author")."</td><td>".$user->getFullName($langs)."</td></tr>";
    +
    +		if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) {
    +			// Duration
    +			print '<tr><td>'.$langs->trans("TotalDuration").'</td>';
    +			print '<td colspan="3">'.convertSecondToTime(
    +							$object->duration, 'all',
    +							$conf->global->MAIN_DURATION_OF_WORKDAY
    +			).'</td>';
    +			print '</tr>';
    +		}
    +
    +		// Project
    +		if (! empty($conf->projet->enabled)) {
    +			$formproject = new FormProjets($db);
    +			print "<tr><td>".$langs->trans("Project")."</td><td>";
    +			$projectid = GETPOST('projectid')?GETPOST('projectid'):$object->fk_project;
    +
    +			$numprojet = $formproject->select_projects(
    +							$object->thirdparty->id, $projectid, 'projectid',
    +							0, 0, 1, 0, 0, 0, 0, '', 0, 0, ''
    +			);
    +			print ' &nbsp; <a href="'.DOL_URL_ROOT.'/projet/card.php?socid='.$object->thirdparty->id;
    +			print '&action=create&status=1&backtopage='.urlencode($_SERVER["PHP_SELF"]).'?action=create';
    +			print '&socid='.$object->thirdparty->id.(!empty($id)?'&id='.$id:'').'">';
    +			print $langs->trans("AddProject").'</a>';
    +			print "</td></tr>";
    +		}
    +
    +		// Contrat
    +		if (! empty($conf->contrat->enabled)) {
    +			$formcontract = new FormContract($db);
    +			print "<tr><td>".$langs->trans("Contract")."</td><td>";
    +			$contractid = GETPOST('contractid')?GETPOST('contractid'):$object->fk_contract;
    +			$numcontract = $formcontract->select_contract($object->thirdparty->id, $contractid, 'contracttid');
    +			print "</td></tr>";
    +		}
    +		print "</table>";
    +
    +		print '<br><br>';
    +
    +		/// frequency & duration
    +		// Autogeneration
    +		$title = $langs->trans("Recurrence");
    +		print load_fiche_titre($title, '', 'calendar');
    +
    +		print '<table class="border" width="100%">';
    +
    +		// Frequency
    +		print '<tr><td class="titlefieldcreate">';
    +		print $form->textwithpicto($langs->trans("Frequency"), $langs->transnoentitiesnoconv('toolTipFrequency'));
    +		print "</td><td>";
    +		print "<input type='text' name='frequency' value='".GETPOST('frequency', 'int')."' size='4' />&nbsp;";
    +		print $form->selectarray(
    +						'unit_frequency',
    +						array('d'=>$langs->trans('Day'), 'm'=>$langs->trans('Month'), 'y'=>$langs->trans('Year')),
    +						(GETPOST('unit_frequency')?GETPOST('unit_frequency'):'m')
    +		);
    +		print "</td></tr>";
    +
    +		// First date of execution for cron
    +		print "<tr><td>".$langs->trans('NextDateToExecution')."</td><td>";
    +		if ($date_next_execution != "")
    +			$date_next_execution = (GETPOST('remonth') ? dol_mktime(
    +							12, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear')
    +			) : -1);
    +		print $form->selectDate($date_next_execution, '', 1, 1, '', "add", 1, 1);
    +		print "</td></tr>";
    +
    +		// Number max of generation
    +		print "<tr><td>".$langs->trans("MaxPeriodNumber")."</td><td>";
    +		print '<input type="text" name="nb_gen_max" value="'.GETPOST('nb_gen_max').'" size="5" />';
    +		print "</td></tr>";
    +
    +		print "</table>";
    +
    +		print '<br>';
    +
    +		$title = $langs->trans("ProductsAndServices");
    +		if (empty($conf->service->enabled))
    +			$title = $langs->trans("Products");
    +		else if (empty($conf->product->enabled))
    +			$title = $langs->trans("Services");
    +
    +		print load_fiche_titre($title, '', '');
    +
    +		/*
    +		 * Invoice lines
    +		 */
    +		print '<table class="notopnoleftnoright" width="100%">';
    +		print '<tr><td colspan="3">';
    +
    +		$sql = 'SELECT l.*';
    +		$sql.= " FROM ".MAIN_DB_PREFIX."fichinterdet as l";
    +		$sql.= " WHERE l.fk_fichinter= ".$object->id;
    +		$sql.= " AND l.fk_product is null ";
    +		$sql.= " ORDER BY l.rang";
    +
    +		$result = $db->query($sql);
    +		if ($result) {
    +			$num = $db->num_rows($result);
    +			$i = 0; $total = 0;
    +
    +			echo '<table class="noborder" width="100%">';
    +			if ($num) {
    +				print '<tr class="liste_titre">';
    +				print '<td>'.$langs->trans("Description").'</td>';
    +				print '<td align="center">'.$langs->trans("Duration").'</td>';
    +				print "</tr>\n";
    +			}
    +			while ($i < $num) {
    +				$objp = $db->fetch_object($result);
    +				print '<tr class="oddeven">';
    +
    +				// Show product and description
    +
    +				print '<td>';
    +				print '<a name="'.$objp->rowid.'"></a>'; // ancre pour retourner sur la ligne
    +
    +				$text = img_object($langs->trans('Service'), 'service');
    +
    +				print $text.' '.nl2br($objp->description);
    +
    +				// Qty
    +				print '<td align="center">'.convertSecondToTime($objp->duree).'</td>';
    +				print "</tr>";
    +
    +				$i++;
    +			}
    +			$db->free($result);
    +		} else
    +			print $db->error();
    +		print "</table>";
    +
    +		print '</td></tr>';
    +
    +		print "</table>\n";
    +
    +		dol_fiche_end();
    +
    +		print '<div align="center"><input type="submit" class="button" value="'.$langs->trans("Create").'">';
    +		print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
    +		print '<input type="button" class="button" value="'.$langs->trans("Cancel").'" onClick="javascript:history.go(-1)">';
    +		print '</div>';
    +		print "</form>\n";
    +	}
    +	else
    +		dol_print_error('', "Error, no invoice ".$object->id);
    +} elseif ($action == 'selsocforcreatefrommodel') {
    +	print load_fiche_titre($langs->trans("CreateRepeatableIntervention"), '', 'title_commercial.png');
    +	dol_fiche_head('');
    +
    +	print '<form name="fichinter" action="'.$_SERVER['PHP_SELF'].'" method="POST">';
    +	print '<table class="border" width="100%">';
    +	print '<tr><td class="fieldrequired">'.$langs->trans("ThirdParty").'</td><td>';
    +	print $form->select_company('', 'socid', '', 1, 1);
    +	print '</td></tr>';
    +	print '</table>';
    +
    +	dol_fiche_end();
    +
    +	print '<div class="center">';
    +	print '<input type="hidden" name="action" value="createfrommodel">';
    +	print '<input type="hidden" name="id" value="'.$id.'">';
    +	print '<input type="submit" class="button" value="'.$langs->trans("CreateDraftIntervention").'">';
    +	print '</div>';
    +
    +	print '</form>';
    +} else {
    +	/*
    +	 * View mode
    +	 *
    +	 */
    +	if ($id > 0) {
    +		if ($object->fetch($id) > 0) {
    +			$object->fetch_thirdparty();
    +
    +			$author = new User($db);
    +			$author->fetch($object->user_author);
    +
    +			$head = fichinter_rec_prepare_head($object);
    +
    +			dol_fiche_head($head, 'card', $langs->trans("PredefinedInterventional"), 0, 'intervention');
    +
    +			// Intervention card
    +			$linkback = '<a href="card-rec.php">'.$langs->trans("BackToList").'</a>';
    +
    +			$morehtmlref='<div class="refidno">';
    +			// Thirdparty
    +
    +			$morehtmlref.=$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
    +			// Project
    +			if (! empty($conf->projet->enabled)) {
    +				$formproject = new FormProjets($db);
    +				$langs->load("projects");
    +				$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
    +				if ($user->rights->ficheinter->creer) {
    +					if ($action != 'classify') {
    +						$morehtmlref.='<a href="'.$_SERVER['PHP_SELF'].'?action=classify&amp;id='.$object->id.'">';
    +						$morehtmlref.=img_edit($langs->transnoentitiesnoconv('SetProject')).'</a> : ';
    +					}
    +					if ($action == 'classify') {
    +
    +						$morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
    +						$morehtmlref.='<input type="hidden" name="action" value="classin">';
    +						$morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +						$morehtmlref.=$formproject->select_projects(
    +										$object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1
    +						);
    +						$morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    +						$morehtmlref.='</form>';
    +					} else {
    +						$morehtmlref.=$form->form_project(
    +										$_SERVER['PHP_SELF'].'?id='.$object->id,
    +										$object->socid, $object->fk_project,
    +										'none', 0, 0, 0, 1
    +						);
    +					}
    +				} else {
    +					if (! empty($object->fk_project)) {
    +						$proj = new Project($db);
    +						$proj->fetch($object->fk_project);
    +						$morehtmlref.='<a href="'.DOL_URL_ROOT.'/projet/card.php?id='.$object->fk_project.'"';
    +						$morehtmlref.='title="'.$langs->trans('ShowProject').'">';
    +						$morehtmlref.=$proj->ref;
    +						$morehtmlref.='</a>';
    +					} else {
    +						$morehtmlref.='';
    +					}
    +				}
    +			}
    +			$morehtmlref.='</div>';
    +
    +			dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
    +
    +			print '<div class="fichecenter">';
    +			print '<div class="fichehalfleft">';
    +			print '<div class="underbanner clearboth"></div>';
    +
    +			print '<table class="border" width="100%">';
    +
    +			print "<tr><td>".$langs->trans("Author").'</td><td colspan="3">'.$author->getFullName($langs)."</td></tr>";
    +
    +			if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) {
    +				// Duration
    +				print '<tr><td class="titlefield">'.$langs->trans("TotalDuration").'</td>';
    +				print '<td colspan="3">';
    +				print convertSecondToTime($object->duration, 'all', $conf->global->MAIN_DURATION_OF_WORKDAY);
    +				print '</td></tr>';
    +			}
    +
    +			print '<tr><td>'.$langs->trans("Description").'</td><td colspan="3">'.nl2br($object->description)."</td></tr>";
    +
    +			// Contract
    +			if (! empty($conf->contrat->enabled)) {
    +				$langs->load('contracts');
    +				print '<tr>';
    +				print '<td>';
    +
    +				print '<table class="nobordernopadding" width="100%"><tr><td>';
    +				print $langs->trans('Contract');
    +				print '</td>';
    +				if ($action != 'contrat') {
    +					print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=contrat&amp;id='.$object->id.'">';
    +					print img_edit($langs->trans('SetContract'), 1);
    +					print '</a></td>';
    +				}
    +				print '</tr></table>';
    +				print '</td><td>';
    +				if ($action == 'contrat') {
    +					$formcontract= new Formcontract($db);
    +					$formcontract->formSelectContract(
    +									$_SERVER["PHP_SELF"].'?id='.$object->id, $object->socid,
    +									$object->fk_contrat, 'contratid', 0, 1
    +					);
    +				} else {
    +					if ($object->fk_contrat) {
    +						$contratstatic = new Contrat($db);
    +						$contratstatic->fetch($object->fk_contrat);
    +						print $contratstatic->getNomUrl(0, '', 1);
    +					} else
    +						print "&nbsp;";
    +				}
    +				print '</td>';
    +				print '</tr>';
    +			}
    +			print "</table>";
    +			print '</div>';
    +
    +			print '<div class="fichehalfright">';
    +			print '<div class="ficheaddleft">';
    +			print '<div class="underbanner clearboth"></div>';
    +
    +			print '<table class="border centpercent">';
    +
    +			$title = $langs->trans("Recurrence");
    +			print load_fiche_titre($title, '', 'calendar');
    +
    +			print '<table class="border" width="100%">';
    +
    +			// if "frequency" is empty or = 0, the reccurence is disabled
    +			print '<tr><td style="width: 50%">';
    +			print '<table class="nobordernopadding" width="100%"><tr><td>';
    +			print $langs->trans('Frequency');
    +			print '</td>';
    +			if ($action != 'editfrequency' && $user->rights->ficheinter->creer) {
    +				print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editfrequency&amp;id='.$id.'">';
    +				print img_edit($langs->trans('Edit'), 1) . '</a></td>';
    +			}
    +			print '</tr></table>';
    +			print '</td><td>';
    +			if ($action == 'editfrequency') {
    +				print '<form method="post" action="'.$_SERVER["PHP_SELF"] . '?id=' . $object->id.'">';
    +				print '<input type="hidden" name="action" value="setfrequency">';
    +				print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +				print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
    +				print '<tr><td>';
    +				print "<input type='text' name='frequency' value='".$object->frequency."' size='5' />&nbsp;";
    +				print $form->selectarray(
    +								'unit_frequency',
    +								array('d'=>$langs->trans('Day'), 'm'=>$langs->trans('Month'), 'y'=>$langs->trans('Year')),
    +								($object->unit_frequency?$object->unit_frequency:'m')
    +				);
    +				print '</td>';
    +				print '<td class="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
    +				print '</tr></table></form>';
    +			} else {
    +				if ($object->frequency > 0)
    +					print $langs->trans('FrequencyPer_'.$object->unit_frequency, $object->frequency);
    +				else
    +					print $langs->trans("NotARecurringInterventionalTemplate");
    +			}
    +			print '</td></tr>';
    +
    +			// Date when
    +			print '<tr><td>';
    +			if ( $user->rights->ficheinter->creer && ($action == 'date_when' || $object->frequency > 0)) {
    +				print $form->editfieldkey(
    +								$langs->trans("NextDateToExecution"), 'date_when', $object->date_when,
    +								$object, $user->rights->facture->creer, 'day'
    +				);
    +			} else {
    +				print $langs->trans("NextDateToExecution");
    +			}
    +			print '</td><td>';
    +			if ($action == 'date_when' || $object->frequency > 0) {
    +				print $form->editfieldval(
    +								$langs->trans("NextDateToExecution"), 'date_when', $object->date_when,
    +								$object, $user->rights->facture->creer, 'day'
    +				);
    +			}
    +			print '</td>';
    +			print '</tr>';
    +
    +			// Max period / Rest period
    +			print '<tr><td>';
    +			if ($user->rights->ficheinter->creer && ($action == 'nb_gen_max' || $object->frequency > 0)) {
    +				print $form->editfieldkey(
    +								$langs->trans("MaxPeriodNumber"), 'nb_gen_max', $object->nb_gen_max,
    +								$object, $user->rights->facture->creer
    +				);
    +			} else
    +				print $langs->trans("MaxPeriodNumber");
    +
    +			print '</td><td>';
    +			if ($action == 'nb_gen_max' || $object->frequency > 0) {
    +				print $form->editfieldval(
    +							$langs->trans("MaxPeriodNumber"), 'nb_gen_max', $object->nb_gen_max?$object->nb_gen_max:'',
    +							$object, $user->rights->facture->creer
    +				);
    +			}
    +			else
    +				print '';
    +
    +			print '</td>';
    +			print '</tr>';
    +
    +			print '</table>';
    +
    +			// Frequencry/Recurring section
    +			if ($object->frequency > 0) {
    +				print '<br>';
    +				if (empty($conf->cron->enabled)) {
    +					$txtinfoadmin=$langs->trans(
    +									"EnableAndSetupModuleCron",
    +									$langs->transnoentitiesnoconv("Module2300Name")
    +					);
    +					print info_admin($txtinfoadmin);
    +				}
    +				print '<div class="underbanner clearboth"></div>';
    +				print '<table class="border centpercent">';
    +
    +				// Nb of generation already done
    +				print '<tr><td style="width: 50%">'.$langs->trans("NbOfGenerationDone").'</td>';
    +				print '<td>';
    +				print $object->nb_gen_done?$object->nb_gen_done:'0';
    +				print '</td>';
    +				print '</tr>';
    +
    +				// Date last
    +				print '<tr><td>';
    +				print $langs->trans("DateLastGeneration");
    +				print '</td><td>';
    +				print dol_print_date($object->date_last_gen, 'dayhour');
    +				print '</td>';
    +				print '</tr>';
    +				print '</table>';
    +				print '<br>';
    +			}
    +
    +			print '</div>';
    +			print '</div>';
    +			print '</div>';
    +
    +			print '<div class="clearboth"></div><br>';
    +
    +			/*
    +			 * Lines
    +			 */
    +
    +			$title = $langs->trans("ProductsAndServices");
    +			if (empty($conf->service->enabled))
    +				$title = $langs->trans("Products");
    +			else if (empty($conf->product->enabled))
    +				$title = $langs->trans("Services");
    +
    +			print load_fiche_titre($title);
    +
    +			print '<table class="noborder" width="100%">';
    +			print '<tr class="liste_titre">';
    +			print '<td>'.$langs->trans("Description").'</td>';
    +			print '<td align="center">'.$langs->trans("Duration").'</td>';
    +			print '</tr>';
    +
    +			$num = count($object->lines);
    +			$i = 0;
    +			while ($i < $num) {
    +
    +				// Show product and description
    +				if (isset($object->lines[$i]->product_type))
    +					$type=$object->lines[$i]->product_type;
    +				else
    +					$object->lines[$i]->fk_product_type;
    +				// Try to enhance type detection using date_start and date_end for free lines when type
    +				// was not saved.
    +				if (! empty($objp->date_start)) $type=1;
    +				if (! empty($objp->date_end)) $type=1;
    +
    +				// Show line
    +				print '<tr class="oddeven">';
    +				print '<td>';
    +				$text = img_object($langs->trans('Service'), 'service');
    +				print $text.' '.nl2br($object->lines[$i]->desc);
    +				print '</td>';
    +
    +				print '<td align="center">'.convertSecondToTime($object->lines[$i]->duree).'</td>';
    +				print "</tr>\n";
    +				$i++;
    +			}
    +			print '</table>';
    +
    +			/**
    +			 * Barre d'actions
    +			 */
    +			print '<div class="tabsAction">';
    +
    +			if ($user->rights->ficheinter->creer) {
    +				print '<div class="inline-block divButAction">';
    +				print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=createfrommodel';
    +				print '&socid='.$object->thirdparty->id.'&id='.$object->id.'">';
    +				print $langs->trans("CreateFichInter").'</a></div>';
    +			}
    +
    +			if ($user->rights->ficheinter->supprimer) {
    +				print '<div class="inline-block divButAction">';
    +				print '<a class="butActionDelete" href="'.$_SERVER['PHP_SELF'].'?action=delete&id='.$object->id.'">';
    +				print $langs->trans('Delete').'</a></div>';
    +			}
    +			print '</div>';
    +		} else
    +			print $langs->trans("ErrorRecordNotFound");
    +	} else {
    +		/*
    +		 *  List mode
    +		 */
    +		$sql = "SELECT f.rowid as fich_rec, s.nom as name, s.rowid as socid, f.rowid as facid, f.titre, ";
    +		$sql.= " f.duree, f.fk_contrat, f.fk_projet, f.frequency, f.nb_gen_done, f.nb_gen_max,";
    +		$sql.= " f.date_last_gen, f.date_when, f.datec";
    +
    +		$sql.= " FROM ".MAIN_DB_PREFIX."fichinter_rec as f";
    +		$sql.= " , ".MAIN_DB_PREFIX."societe as s ";
    +		if (! $user->rights->societe->client->voir && ! $socid) {
    +			$sql .= " , ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +		}
    +		$sql.= " WHERE f.fk_soc = s.rowid";
    +		$sql.= " AND f.entity = ".$conf->entity;
    +		if ($socid)	$sql .= " AND s.rowid = ".$socid;
    +		if (! $user->rights->societe->client->voir && ! $socid) {
    +			$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
    +		}
    +		if ($search_ref) $sql .= natural_search('f.titre', $search_ref);
    +		if ($search_societe) $sql .= natural_search('s.nom', $search_societe);
    +		if ($search_frequency == '1') $sql.= ' AND f.frequency > 0';
    +		if ($search_frequency == '0') $sql.= ' AND (f.frequency IS NULL or f.frequency = 0)';
    +
    +
    +		//$sql .= " ORDER BY $sortfield $sortorder, rowid DESC ";
    +		//	$sql .= $db->plimit($limit + 1, $offset);
    +
    +		$resql = $db->query($sql);
    +		if ($resql) {
    +			$num = $db->num_rows($resql);
    +			print_barre_liste(
    +							$langs->trans("RepeatableInterventional"), $page,
    +							$_SERVER['PHP_SELF'], "&socid=$socid", $sortfield, $sortorder,
    +							'', $num, '', 'title_commercial.png'
    +			);
    +
    +			print $langs->trans("ToCreateAPredefinedInterventional").'<br><br>';
    +
    +			$i = 0;
    +			print '<table class="noborder" width="100%">';
    +			print '<tr class="liste_titre">';
    +			print_liste_field_titre(
    +							$langs->trans("Ref"), $_SERVER['PHP_SELF'], "f.titre", "", "",
    +							'width="200px" align="left"', $sortfiled, $sortorder
    +			);
    +
    +			print_liste_field_titre(
    +							$langs->trans("Company"), $_SERVER['PHP_SELF'], "s.nom", "", "",
    +							'width="200px" align="left"', $sortfiled, $sortorder
    +			);
    +			if (! empty($conf->contrat->enabled))
    +				print_liste_field_titre(
    +								$langs->trans("Contract"), $_SERVER['PHP_SELF'],
    +								"f.fk_contrat", "", "",
    +								'width="100px" align="left"', $sortfiled, $sortorder
    +				);
    +
    +			if (! empty($conf->projet->enabled))
    +				print_liste_field_titre(
    +								$langs->trans("Project"), $_SERVER['PHP_SELF'],
    +								"f.fk_project", "", "",
    +								'width="100px" align="left"', $sortfiled, $sortorder
    +				);
    +			print_liste_field_titre(
    +							$langs->trans("Duration"), $_SERVER['PHP_SELF'],
    +							'f.duree', '', '',
    +							'width="50px" align="right"', $sortfiled, $sortorder
    +			);
    +			// Recurring or not
    +			print_liste_field_titre(
    +							$langs->trans("Frequency"), $_SERVER['PHP_SELF'],
    +							"f.frequency", "", "",
    +							'width="100px" align="center"', $sortfiled, $sortorder
    +			);
    +			print_liste_field_titre(
    +							$langs->trans("NbOfGenerationDone"), $_SERVER['PHP_SELF'],
    +							"f.nb_gen_done", "", "",
    +							'width="100px" align="center"', $sortfiled, $sortorder
    +			);
    +
    +			print_liste_field_titre(
    +							$langs->trans("DateLastGeneration"), $_SERVER['PHP_SELF'],
    +							"f.date_last_gen", "", "",
    +							'width="100px" align="center"', $sortfiled, $sortorder
    +			);
    +			print_liste_field_titre(
    +							$langs->trans("NextDateToIntervention"), $_SERVER['PHP_SELF'],
    +							"f.date_when", "", "",
    +							'width="100px" align="center"', $sortfiled, $sortorder
    +			);
    +			print '<th width="100px"></th>';
    +			print "</tr>\n";
    +
    +
    +			// les filtres à faire ensuite
    +
    +			if ($num > 0) {
    +				while ($i < min($num, $limit)) {
    +					$objp = $db->fetch_object($resql);
    +
    +					print '<tr class="oddeven">';
    +					print '<td><a href="'.$_SERVER['PHP_SELF'].'?id='.$objp->fich_rec.'">';
    +					print img_object($langs->trans("ShowIntervention"), "intervention").' '.$objp->titre;
    +					print "</a></td>\n";
    +					if ($objp->socid) {
    +						$companystatic->id=$objp->socid;
    +						$companystatic->name=$objp->name;
    +						print '<td>'.$companystatic->getNomUrl(1, 'customer').'</td>';
    +					} else
    +						print '<td>'.$langs->trans("None").'</td>';
    +
    +					if (! empty($conf->contrat->enabled)) {
    +						print '<td>';
    +						if ($objp->fk_contrat >0) {
    +							$contratstatic->fetch($objp->fk_contrat);
    +							print $contratstatic->getNomUrl(1);
    +						}
    +						print '</td>';
    +					}
    +					if (! empty($conf->projet->enabled)) {
    +						print '<td>';
    +						if ($objp->fk_project > 0) {
    +							$projectstatic->fetch($objp->fk_projet);
    +							print $projectstatic->getNomUrl(1);
    +						}
    +						print '</td>';
    +					}
    +
    +					print '<td align=right>'.convertSecondToTime($objp->duree).'</td>';
    +
    +					print '<td align="center">'.yn($objp->frequency?1:0).'</td>';
    +
    +					print '<td align="center">';
    +					if ($objp->frequency) {
    +						print $objp->nb_gen_done.($objp->nb_gen_max>0?' / '. $objp->nb_gen_max:'') ;
    +						print '</td>';
    +
    +						print '<td align="center">';
    +						print dol_print_date($db->jdate($objp->date_last_gen), 'day') ;
    +						print '</td>';
    +
    +						print '<td align="center">';
    +						print dol_print_date($db->jdate($objp->date_when), 'day');
    +						print '</td>';
    +					} else {
    +						print '<span class="opacitymedium">'.$langs->trans('NA').'</span>';
    +						print '</td>';
    +						print '<td align="center">';
    +						print '<span class="opacitymedium">'.$langs->trans('NA').'</span>';
    +						print '</td>';
    +						print '<td align="center">';
    +						print '<span class="opacitymedium">'.$langs->trans('NA').'</span>';
    +						print '</td>';
    +					}
    +
    +					if ($user->rights->ficheinter->creer) {
    +						// Action column
    +						print '<td align="center">';
    +						if ($user->rights->ficheinter->creer) {
    +							if (empty($objp->frequency) || $db->jdate($objp->date_when) <= $today) {
    +								print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?action=createfrommodel';
    +								print '&socid='.$objp->socid.'&id='.$objp->fich_rec.'">';
    +								print $langs->trans("CreateFichInter").'</a>';
    +							} else
    +								print $langs->trans("DateIsNotEnough");
    +						} else
    +							print "&nbsp;";
    +
    +						print "</td>";
    +
    +						print "</tr>\n";
    +						$i++;
    +					}
    +				}
    +			} else
    +				print '<tr class="oddeven"><td colspan="6">'.$langs->trans("NoneF").'</td></tr>';
    +
    +			print "</table>";
    +			$db->free($resql);
    +		} else
    +			dol_print_error($db);
    +	}
    +}
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php
    index 15b75495c38..a8ddb343a94 100644
    --- a/htdocs/fichinter/card.php
    +++ b/htdocs/fichinter/card.php
    @@ -1,12 +1,13 @@
     <?php
     /* Copyright (C) 2002-2007	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2015	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2018	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2017  Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2013       Florian Henry           <florian.henry@open-concept.pro>
      * Copyright (C) 2014-2018  Ferran Marcet           <fmarcet@2byte.es>
    - * Copyright (C) 2014-2015 	Charlie Benke           <charlies@patas-monkey.com>
    + * Copyright (C) 2014-2018  Charlene Benke          <charlies@patas-monkey.com>
      * Copyright (C) 2015-2016  Abbes Bahfir            <bafbes@gmail.com>
    + * Copyright (C) 2018 		Philippe Grand       	<philippe.grand@atoo-net.com>
      *
      * 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
    @@ -258,7 +259,7 @@ if (empty($reshook))
     				// Extrafields
     				$extrafields = new ExtraFields($db);
     				$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
    -				$array_options = $extrafields->getOptionalsFromPost($extralabels);
    +				$array_options = $extrafields->getOptionalsFromPost($object->table_element);
     
     		        $object->array_options = $array_options;
     
    @@ -378,10 +379,8 @@ if (empty($reshook))
     									$error++;
     									break;
     								}
    -
     							}
     						}
    -
     		            }
     		            else
     		            {
    @@ -408,7 +407,7 @@ if (empty($reshook))
     		    	{
     		    		// Extrafields
     		    		$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
    -		    		$array_options = $extrafields->getOptionalsFromPost($extralabels);
    +		    		$array_options = $extrafields->getOptionalsFromPost($object->table_element);
     
     		    		$object->array_options = $array_options;
     
    @@ -1099,7 +1098,6 @@ if ($action == 'create')
     
     		print '</form>';
     	}
    -
     }
     else if ($id > 0 || ! empty($ref))
     {
    @@ -1239,7 +1237,7 @@ else if ($id > 0 || ! empty($ref))
         print '<div class="fichehalfleft">';
         print '<div class="underbanner clearboth"></div>';
     
    -    print '<table class="border" width="100%">';
    +    print '<table class="border tableforfield" width="100%">';
     
     	if (! empty($conf->global->FICHINTER_USE_PLANNED_AND_DONE_DATES))
     	{
    @@ -1273,10 +1271,10 @@ else if ($id > 0 || ! empty($ref))
     	print '</td>';
     	print '</tr>';
     
    -	// Contrat
    +	// Contract
     	if ($conf->contrat->enabled)
     	{
    -		$langs->load('contrat');
    +		$langs->load('contracts');
     		print '<tr>';
     		print '<td>';
     
    @@ -1325,7 +1323,7 @@ else if ($id > 0 || ! empty($ref))
         print '<div class="ficheaddleft">';
         print '<div class="underbanner clearboth"></div>';
     
    -    print '<table class="border centpercent">';
    +    print '<table class="border tableforfield centpercent">';
     
         if (empty($conf->global->FICHINTER_DISABLE_DETAILS))
         {
    @@ -1471,8 +1469,6 @@ else if ($id > 0 || ! empty($ref))
     					$line->fetch_optionals();
     
     					print $line->showOptionals($extrafieldsline, 'view', array('style'=>$bc[$var], 'colspan'=>5));
    -
    -
     				}
     
     				// Line in update mode
    @@ -1490,8 +1486,11 @@ else if ($id > 0 || ! empty($ref))
     
     					// Date d'intervention
     					print '<td align="center" class="nowrap">';
    -                                        if (!empty($conf->global->FICHINTER_DATE_WITHOUT_HOUR)) $form->select_date($db->jdate($objp->date_intervention),'di',0,0,0,"date_intervention");
    -                                        else $form->select_date($db->jdate($objp->date_intervention),'di',1,1,0,"date_intervention");
    +                    if (!empty($conf->global->FICHINTER_DATE_WITHOUT_HOUR)) {
    +                        print $form->selectDate($db->jdate($objp->date_intervention),'di',0,0,0,"date_intervention");
    +                    } else {
    +                        print $form->selectDate($db->jdate($objp->date_intervention),'di',1,1,0,"date_intervention");
    +                    }
     					print '</td>';
     
                         // Duration
    @@ -1516,8 +1515,6 @@ else if ($id > 0 || ! empty($ref))
     					$line->fetch_optionals();
     
     					print $line->showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var], 'colspan'=>5));
    -
    -
     				}
     
     				$i++;
    @@ -1556,18 +1553,25 @@ else if ($id > 0 || ! empty($ref))
                     print '<td align="center" class="nowrap">';
     				$now=dol_now();
     				$timearray=dol_getdate($now);
    -				if (! GETPOST('diday','int')) $timewithnohour=dol_mktime(0,0,0,$timearray['mon'],$timearray['mday'],$timearray['year']);
    -				else $timewithnohour=dol_mktime(GETPOST('dihour','int'),GETPOST('dimin','int'), 0,GETPOST('dimonth','int'),GETPOST('diday','int'),GETPOST('diyear','int'));
    -                                if (!empty($conf->global->FICHINTER_DATE_WITHOUT_HOUR)) $form->select_date($timewithnohour,'di',0,0,0,"addinter");
    -                                else $form->select_date($timewithnohour,'di',1,1,0,"addinter");
    +				if (! GETPOST('diday','int')) {
    +                    $timewithnohour=dol_mktime(0,0,0,$timearray['mon'],$timearray['mday'],$timearray['year']);
    +                } else {
    +                    $timewithnohour=dol_mktime(GETPOST('dihour','int'),GETPOST('dimin','int'), 0,GETPOST('dimonth','int'),GETPOST('diday','int'),GETPOST('diyear','int'));
    +                }
    +                if (!empty($conf->global->FICHINTER_DATE_WITHOUT_HOUR)) {
    +                    print $form->selectDate($timewithnohour,'di',0,0,0,"addinter");
    +                } else {
    +                    print $form->selectDate($timewithnohour,'di',1,1,0,"addinter");
    +                }
     				print '</td>';
     
                     // Duration
                     print '<td align="right">';
                     if (empty($conf->global->FICHINTER_WITHOUT_DURATION)) {
                         $selectmode = 'select';
    -                    if (!empty($conf->global->INTERVENTION_ADDLINE_FREEDUREATION))
    +                    if (!empty($conf->global->INTERVENTION_ADDLINE_FREEDUREATION)) {
                             $selectmode = 'text';
    +                    }
                         $form->select_duration('duration', (!GETPOST('durationhour', 'int') && !GETPOST('durationmin', 'int')) ? 3600 : (60 * 60 * GETPOST('durationhour', 'int') + 60 * GETPOST('durationmin', 'int')), 0, $selectmode);
                     }
                     print '</td>';
    @@ -1640,7 +1644,16 @@ else if ($id > 0 || ! empty($ref))
     					{
     						print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=presend&mode=init#formmailbeforetitle">'.$langs->trans('SendMail').'</a></div>';
     					}
    -					else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">'.$langs->trans('SendMail').'</a></div>';
    +					else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans('SendMail').'</a></div>';
    +				}
    +
    +		    	// create intervention model
    +				if ($object->statut == Fichinter::STATUS_DRAFT && $user->rights->ficheinter->creer && (count($object->lines) > 0)) {
    +					print '<div class="inline-block divButAction">';
    +					// This feature is not yet implemented
    +					//print '<a class="butAction" href="'.DOL_URL_ROOT.'/fichinter/card-rec.php?id='.$object->id.'&action=create">'.$langs->trans("ChangeIntoRepeatableIntervention").'</a>';
    +					print '<a class="butAction" title="'.$langs->trans("ChangeIntoRepeatableIntervention").'" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'">'.$langs->trans("not yet implemented").'</a>';
    +					print '</div>';
     				}
     
     				// Proposal
    @@ -1650,7 +1663,7 @@ else if ($id > 0 || ! empty($ref))
     					if ($object->statut < Fichinter::STATUS_BILLED)
     					{
     						if ($user->rights->propal->creer) print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/comm/propal/card.php?action=create&amp;origin='.$object->element.'&amp;originid='.$object->id.'&amp;socid='.$object->socid.'">'.$langs->trans("AddProp").'</a></div>';
    -						else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("AddProp").'</a></div>';
    +						else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("AddProp").'</a></div>';
     					}
     				}
     
    @@ -1661,7 +1674,7 @@ else if ($id > 0 || ! empty($ref))
     					if ($object->statut < Fichinter::STATUS_BILLED)
     					{
     						if ($user->rights->facture->creer) print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/compta/facture/card.php?action=create&amp;origin='.$object->element.'&amp;originid='.$object->id.'&amp;socid='.$object->socid.'">'.$langs->trans("AddBill").'</a></div>';
    -						else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("AddBill").'</a></div>';
    +						else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("AddBill").'</a></div>';
     					}
     
     					if (! empty($conf->global->FICHINTER_CLASSIFY_BILLED))    // Option deprecated. In a future, billed must be managed with a dedicated field to 0 or 1
    @@ -1694,7 +1707,6 @@ else if ($id > 0 || ! empty($ref))
     					print '<div class="inline-block divButAction"><a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delete"';
     					print '>'.$langs->trans('Delete').'</a></div>';
     				}
    -
     			}
     		}
     	}
    diff --git a/htdocs/fichinter/class/api_interventions.class.php b/htdocs/fichinter/class/api_interventions.class.php
    index 8b21b534856..3f3315b6028 100644
    --- a/htdocs/fichinter/class/api_interventions.class.php
    +++ b/htdocs/fichinter/class/api_interventions.class.php
    @@ -35,7 +35,7 @@ class Interventions extends DolibarrApi
         static $FIELDS = array(
           'socid',
           'fk_project',
    -      'description'
    +      'description',
         );
     
         /**
    @@ -44,7 +44,7 @@ class Interventions extends DolibarrApi
         static $FIELDSLINE = array(
           'description',
           'date',
    -      'duree'
    +      'duree',
         );
     
         /**
    @@ -106,7 +106,8 @@ class Interventions extends DolibarrApi
          *
          * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -217,7 +218,8 @@ class Interventions extends DolibarrApi
          * @return int
          */
         /* TODO
    -    function getLines($id) {
    +    function getLines($id)
    +    {
         	if(! DolibarrApiAccess::$user->rights->ficheinter->lire) {
         		throw new RestException(401);
         	}
    @@ -315,7 +317,6 @@ class Interventions extends DolibarrApi
     		    	'message' => 'Intervention deleted'
     	    	)
         	);
    -
         }
     
         /**
    @@ -424,7 +425,8 @@ class Interventions extends DolibarrApi
          * @param   object  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
         	$object = parent::_cleanObjectDatas($object);
     
    @@ -453,6 +455,4 @@ class Interventions extends DolibarrApi
             }
             return $fichinter;
         }
    -
    -
     }
    diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php
    index 789a351c776..e20d8e1da1a 100644
    --- a/htdocs/fichinter/class/fichinter.class.php
    +++ b/htdocs/fichinter/class/fichinter.class.php
    @@ -1,11 +1,12 @@
     <?php
     /* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2013 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2015      Charlie Benke        <charlie@patas-monkey.com>
      * Copyright (C) 2018      Nicolas ZABOURI	<info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -35,10 +36,29 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobjectline.class.php';
      */
     class Fichinter extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='fichinter';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='fichinter';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element='fk_fichinter';
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
     	public $table_element_line='fichinterdet';
    +
    +	/**
    +	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
    +	 */
     	public $picto = 'intervention';
     
     	/**
    @@ -46,36 +66,52 @@ class Fichinter extends CommonObject
     	 */
     	protected $table_ref_field = 'ref';
     
    -	var $socid;		// Id client
    +	public $socid;		// Id client
     
    -	var $author;
    -	var $datec;
    -	var $datev;
    -	var $dateo;
    -	var $datee;
    -	var $datet;
    -	var $datem;
    -	var $duration;
    -	var $statut = 0;		// 0=draft, 1=validated, 2=invoiced, 3=Terminate
    -	var $description;
    -	var $fk_contrat = 0;
    -	var $fk_project = 0;
    -	var $extraparams=array();
    +	public $author;
    +	public $datec;
    +	public $datev;
    +	public $dateo;
    +	public $datee;
    +	public $datet;
    +	public $datem;
    +	public $duration;
    +	public $statut = 0;		// 0=draft, 1=validated, 2=invoiced, 3=Terminate
     
    -	var $lines = array();
    +	/**
    +	 * @var string description
    +	 */
    +	public $description;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_contrat = 0;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_project = 0;
    +
    +	public $extraparams=array();
    +
    +	public $lines = array();
     
     	/**
     	 * Draft status
     	 */
     	const STATUS_DRAFT = 0;
    +
     	/**
     	 * Validated status
     	 */
     	const STATUS_VALIDATED = 1;
    +
     	/**
     	 * Billed
     	 */
     	const STATUS_BILLED = 2;
    +
     	/**
     	 * Closed
     	 */
    @@ -93,6 +129,7 @@ class Fichinter extends CommonObject
     		$this->products = array();
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Load indicators into this->nb for board
     	 *
    @@ -100,6 +137,7 @@ class Fichinter extends CommonObject
     	 */
     	function load_state_board()
     	{
    +        // phpcs:enable
     		global $user;
     
     		$this->nb=array();
    @@ -266,7 +304,6 @@ class Fichinter extends CommonObject
     			$this->db->rollback();
     			return -1;
     		}
    -
     	}
     
     	/**
    @@ -278,7 +315,6 @@ class Fichinter extends CommonObject
     	 */
     	function update($user, $notrigger=0)
     	{
    -		global $conf;
     	 	if (! is_numeric($this->duration)) {
     	 		$this->duration = 0;
     	 	}
    @@ -622,6 +658,7 @@ class Fichinter extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Returns the label of a statut
     	 *
    @@ -631,6 +668,7 @@ class Fichinter extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     		// Init/load array of translation of status
     		if (empty($this->statuts) || empty($this->statuts_short))
     		{
    @@ -653,17 +691,17 @@ class Fichinter extends CommonObject
     
     		if ($mode == 0)
     			return $this->statuts[$statut];
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     			return $this->statuts_short[$statut];
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     			return img_picto($this->statuts_short[$statut], $this->statuts_logo[$statut]).' '.$this->statuts_short[$statut];
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     			return img_picto($this->statuts_short[$statut], $this->statuts_logo[$statut]);
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     			return img_picto($this->statuts_short[$statut], $this->statuts_logo[$statut]).' '.$this->statuts[$statut];
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     			return '<span class="hideonsmartphone">'.$this->statuts_short[$statut].' </span>'.img_picto($this->statuts[$statut],$this->statuts_logo[$statut]);
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     			return '<span class="hideonsmartphone">'.$this->statuts[$statut].' </span>'.img_picto($this->statuts[$statut],$this->statuts_logo[$statut]);
     
     		return '';
    @@ -767,15 +805,14 @@ class Fichinter extends CommonObject
     				$mybool|=@include_once $dir.$file;
     			}
     
    -			if (! $mybool)
    -			{
    -				dol_print_error('',"Failed to include file ".$file);
    +			if ($mybool === false) {
    +				dol_print_error('', "Failed to include file ".$file);
     				return '';
     			}
     
     			$obj = new $classname();
     			$numref = "";
    -			$numref = $obj->getNextValue($soc,$this);
    +			$numref = $obj->getNextValue($soc, $this);
     
     			if ( $numref != "")
     			{
    @@ -844,7 +881,6 @@ class Fichinter extends CommonObject
     					$muser->fetch($obj->fk_user_modification);
     					$this->user_modification   = $muser;
     				}
    -
     			}
     			$this->db->free($resql);
     		}
    @@ -937,7 +973,8 @@ class Fichinter extends CommonObject
     
     					if (! dol_delete_file($file,0,0,0,$this)) // For triggers
     					{
    -						$this->error=$langs->trans("ErrorCanNotDeleteFile",$file);
    +						$langs->load("errors");
    +						$this->error=$langs->trans("ErrorFailToDeleteFile",$file);
     						return 0;
     					}
     				}
    @@ -945,7 +982,8 @@ class Fichinter extends CommonObject
     				{
     					if (! dol_delete_dir_recursive($dir))
     					{
    -						$this->error=$langs->trans("ErrorCanNotDeleteDir",$dir);
    +						$langs->load("errors");
    +						$this->error=$langs->trans("ErrorFailToDeleteDir",$dir);
     						return 0;
     					}
     				}
    @@ -964,6 +1002,7 @@ class Fichinter extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Defines a delivery date of intervention
     	 *
    @@ -973,6 +1012,7 @@ class Fichinter extends CommonObject
     	 */
     	function set_date_delivery($user, $date_delivery)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if ($user->rights->ficheinter->creer)
    @@ -996,6 +1036,7 @@ class Fichinter extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Define the label of the intervention
     	 *
    @@ -1005,6 +1046,7 @@ class Fichinter extends CommonObject
     	 */
     	function set_description($user, $description)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if ($user->rights->ficheinter->creer)
    @@ -1029,6 +1071,7 @@ class Fichinter extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Link intervention to a contract
     	 *
    @@ -1038,6 +1081,7 @@ class Fichinter extends CommonObject
     	 */
     	function set_contrat($user, $contractid)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if ($user->rights->ficheinter->creer)
    @@ -1074,8 +1118,6 @@ class Fichinter extends CommonObject
     
     		$error=0;
     
    -		$this->context['createfromclone'] = 'createfromclone';
    -
     		$this->db->begin();
     
     		// get extrafields so they will be clone
    @@ -1114,6 +1156,7 @@ class Fichinter extends CommonObject
     		$this->ref_client         = '';
     
     		// Create clone
    +		$this->context['createfromclone'] = 'createfromclone';
     		$result=$this->create($user);
     		if ($result < 0) $error++;
     
    @@ -1237,6 +1280,7 @@ class Fichinter extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Load array lines ->lines
     	 *
    @@ -1244,6 +1288,7 @@ class Fichinter extends CommonObject
     	 */
     	function fetch_lines()
     	{
    +        // phpcs:enable
     		$this->lines = array();
     
     		$sql = 'SELECT rowid, description, duree, date, rang';
    @@ -1309,24 +1354,46 @@ class Fichinter extends CommonObject
      */
     class FichinterLigne extends CommonObjectLine
     {
    -	var $db;
    -	var $error;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	// From llx_fichinterdet
    -	var $fk_fichinter;
    -	var $desc;          	// Description ligne
    -	var $datei;           // Date intervention
    -	var $duration;        // Duree de l'intervention
    -	var $rang = 0;
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_fichinter;
     
    +	public $desc;          	// Description ligne
    +	public $datei;           // Date intervention
    +	public $duration;        // Duree de l'intervention
    +	public $rang = 0;
    +
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='fichinterdet';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='fichinterdet';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element='fk_fichinter';
     
     	/**
    -	 *	Constructor
    +	 *  Constructor
     	 *
    -	 *	@param	DoliDB	$db		Database handler
    +	 *  @param  DoliDB  $db     Database handler
     	 */
     	function __construct($db)
     	{
    @@ -1533,6 +1600,7 @@ class FichinterLigne extends CommonObjectLine
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Update total duration into llx_fichinter
     	 *
    @@ -1540,6 +1608,7 @@ class FichinterLigne extends CommonObjectLine
     	 */
     	function update_total()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$this->db->begin();
    @@ -1639,6 +1708,4 @@ class FichinterLigne extends CommonObjectLine
     			return -2;
     		}
     	}
    -
     }
    -
    diff --git a/htdocs/fichinter/class/fichinterstats.class.php b/htdocs/fichinter/class/fichinterstats.class.php
    index b435398fec2..0475a2116eb 100644
    --- a/htdocs/fichinter/class/fichinterstats.class.php
    +++ b/htdocs/fichinter/class/fichinterstats.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (c) 2005-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Marcos García        <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -33,6 +33,9 @@ include_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
      */
     class FichinterStats extends Stats
     {
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element;
     
     	var $socid;
    @@ -207,6 +210,5 @@ class FichinterStats extends Stats
     
     		return $this->_getAllByProduct($sql);
     	}
    -
     }
     
    diff --git a/htdocs/fichinter/contact.php b/htdocs/fichinter/contact.php
    index d3b2ea6f78e..54ad6733e69 100644
    --- a/htdocs/fichinter/contact.php
    +++ b/htdocs/fichinter/contact.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2012      Juanjo Menent        <jmenent@2byte.es>
      *
    @@ -185,7 +185,6 @@ if ($id > 0 || ! empty($ref))
     	    $res=@include dol_buildpath($reldir.'/contacts.tpl.php');
     	    if ($res) break;
     	}
    -
     }
     
     
    diff --git a/htdocs/fichinter/document.php b/htdocs/fichinter/document.php
    index 6e84f457eb1..966c3b3f7db 100644
    --- a/htdocs/fichinter/document.php
    +++ b/htdocs/fichinter/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
      * Copyright (C) 2011-2012 Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    @@ -94,7 +94,7 @@ if ($object->id)
     	dol_fiche_head($head, 'documents',  $langs->trans("InterventionCard"), -1, 'intervention');
     
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -168,7 +168,6 @@ if ($object->id)
         $permtoedit = $user->rights->ficheinter->creer;
         $param = '&id=' . $object->id;
         include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
    -
     }
     else
     {
    diff --git a/htdocs/fichinter/index.php b/htdocs/fichinter/index.php
    index 6b8ce71bfb5..b1798d77e66 100644
    --- a/htdocs/fichinter/index.php
    +++ b/htdocs/fichinter/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015	   Charlie Benke		<charlie@patas-monkey.com>
     
      *
    @@ -148,7 +148,6 @@ if ($resql)
         {
             if (! $conf->use_javascript_ajax)
             {
    -
                 print '<tr class="oddeven">';
                 print '<td>'.$fichinterstatic->LibStatut($status,$bool,0).'</td>';
                 print '<td align="right"><a href="list.php?viewstatut='.$status.'">'.(isset($vals[$status.$bool])?$vals[$status.$bool]:0).' ';
    diff --git a/htdocs/fichinter/info.php b/htdocs/fichinter/info.php
    index fe3d14191d6..93494c122d5 100644
    --- a/htdocs/fichinter/info.php
    +++ b/htdocs/fichinter/info.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2005-2009  Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2005-2009  Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2009-2016  Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2011       Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
    diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php
    index 96a1199255c..14622e39397 100644
    --- a/htdocs/fichinter/list.php
    +++ b/htdocs/fichinter/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002-2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012	Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2013		Cédric Salvador			<csalvador@gpcsolutions.fr>
      * Copyright (C) 2015       Jean-François Ferry		<jfefe@aternatik.fr>
    @@ -87,7 +87,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('fichinter');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -269,6 +269,7 @@ if ($resql)
     
     	// List of mass actions available
     	$arrayofmassactions =  array(
    +		'generate_doc'=>$langs->trans("Generate"),
     		//'presend'=>$langs->trans("SendByMail"),
     		'builddoc'=>$langs->trans("PDFMerge"),
     	);
    @@ -556,8 +557,8 @@ if ($resql)
     			$i++;
     			if ($i == 1)
     			{
    -				if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
    -				else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +				if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +				else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     			}
     			elseif ($totalarray['totaldurationfield'] == $i) print '<td align="right">'.convertSecondToTime($totalarray['totalduration'], 'allhourmin').'</td>';
     			else print '<td></td>';
    diff --git a/htdocs/fichinter/note.php b/htdocs/fichinter/note.php
    index cece45fdab5..c40792bc8b8 100644
    --- a/htdocs/fichinter/note.php
    +++ b/htdocs/fichinter/note.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2005-2012	Regis Houssin	<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2005-2012	Regis Houssin	<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012	Juanjo Menent	<jmenent@2byte.es>
      * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
    diff --git a/htdocs/fichinter/stats/index.php b/htdocs/fichinter/stats/index.php
    index 56a12997de3..cbc7c3424bc 100644
    --- a/htdocs/fichinter/stats/index.php
    +++ b/htdocs/fichinter/stats/index.php
    @@ -49,6 +49,7 @@ $endyear=$year;
     
     $object_status=GETPOST('object_status');
     
    +// Load translation files required by the page
     $langs->loadLangs(array('interventions', 'companies', 'other', 'suppliers'));
     
     
    @@ -232,22 +233,22 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     	print '<table class="noborder" width="100%">';
     	print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
     	// Company
    -	print '<tr><td align="left">'.$langs->trans("ThirdParty").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("ThirdParty").'</td><td class="left">';
         $filter = 's.client in (1,2,3)';
     	print $form->select_company($socid, 'socid', $filter, 1, 0, 0, array(), 0, '', 'style="width: 95%"');
     	print '</td></tr>';
     	// User
    -	print '<tr><td align="left">'.$langs->trans("CreatedBy").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("CreatedBy").'</td><td class="left">';
     	print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
     	// Status
    -	print '<tr><td align="left">'.$langs->trans("Status").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("Status").'</td><td class="left">';
     	$tmp = $objectstatic->LibStatut(0);		// To load $this->statuts_short
     	$liststatus=$objectstatic->statuts_short;
     	if (empty($conf->global->FICHINTER_CLASSIFY_BILLED)) unset($liststatus[2]);   // Option deprecated. In a future, billed must be managed with a dedicated field to 0 or 1
     	print $form->selectarray('object_status', $liststatus, $object_status, 1, 0, 0, '', 1);
     	print '</td></tr>';
     	// Year
    -	print '<tr><td align="left">'.$langs->trans("Year").'</td><td align="left">';
    +	print '<tr><td class="left">'.$langs->trans("Year").'</td><td class="left">';
     	if (! in_array($year,$arrayyears)) $arrayyears[$year]=$year;
     	if (! in_array($nowyear,$arrayyears)) $arrayyears[$nowyear]=$nowyear;
     	arsort($arrayyears);
    @@ -259,6 +260,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
     	print '<br><br>';
     //}
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre" height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
    @@ -305,6 +307,7 @@ foreach ($data as $val)
     }
     
     print '</table>';
    +print '</div>';
     
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
    diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php
    index 36e3ba38b58..4edfa3d0623 100644
    --- a/htdocs/filefunc.inc.php
    +++ b/htdocs/filefunc.inc.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2005 	   Simon Tosser         <simon@kornog-computing.com>
      * Copyright (C) 2006 	   Andre Cianfarani     <andre.cianfarani@acdeveloppement.net>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
    @@ -31,7 +31,7 @@
      */
     
     if (! defined('DOL_APPLICATION_TITLE')) define('DOL_APPLICATION_TITLE','Dolibarr');
    -if (! defined('DOL_VERSION')) define('DOL_VERSION','8.0.4');		// a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c
    +if (! defined('DOL_VERSION')) define('DOL_VERSION','10.0.0-alpha');		// a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c
     
     if (! defined('EURO')) define('EURO',chr(128));
     
    @@ -130,8 +130,8 @@ $dolibarr_main_url_root_alt=(empty($dolibarr_main_url_root_alt)?'':trim($dolibar
     $dolibarr_main_document_root=trim($dolibarr_main_document_root);
     $dolibarr_main_document_root_alt=(empty($dolibarr_main_document_root_alt)?'':trim($dolibarr_main_document_root_alt));
     
    -if (empty($dolibarr_main_db_port)) $dolibarr_main_db_port=0;		// Pour compatibilite avec anciennes configs, si non defini, on prend 'mysql'
    -if (empty($dolibarr_main_db_type)) $dolibarr_main_db_type='mysqli';	// Pour compatibilite avec anciennes configs, si non defini, on prend 'mysql'
    +if (empty($dolibarr_main_db_port)) $dolibarr_main_db_port=3306;		// For compatibility with old configs, if not defined, we take 'mysql' type
    +if (empty($dolibarr_main_db_type)) $dolibarr_main_db_type='mysqli';	// For compatibility with old configs, if not defined, we take 'mysql' type
     
     // Mysql driver support has been removed in favor of mysqli
     if ($dolibarr_main_db_type == 'mysql') $dolibarr_main_db_type = 'mysqli';
    @@ -251,6 +251,7 @@ if (! defined('FPDI_PATH'))            { define('FPDI_PATH',            (empty($
     if (! defined('TCPDI_PATH'))           { define('TCPDI_PATH',           (empty($dolibarr_lib_TCPDI_PATH))?DOL_DOCUMENT_ROOT.'/includes/tcpdi/':$dolibarr_lib_TCPDI_PATH.'/'); }
     if (! defined('NUSOAP_PATH'))          { define('NUSOAP_PATH',          (!isset($dolibarr_lib_NUSOAP_PATH))?DOL_DOCUMENT_ROOT.'/includes/nusoap/lib/':(empty($dolibarr_lib_NUSOAP_PATH)?'':$dolibarr_lib_NUSOAP_PATH.'/')); }
     if (! defined('PHPEXCEL_PATH'))        { define('PHPEXCEL_PATH',        (!isset($dolibarr_lib_PHPEXCEL_PATH))?DOL_DOCUMENT_ROOT.'/includes/phpoffice/phpexcel/Classes/':(empty($dolibarr_lib_PHPEXCEL_PATH)?'':$dolibarr_lib_PHPEXCEL_PATH.'/')); }
    +if (! defined('PHPEXCELNEW_PATH'))     { define('PHPEXCELNEW_PATH',     (!isset($dolibarr_lib_PHPEXCELNEW_PATH))?DOL_DOCUMENT_ROOT.'/includes/phpoffice/PhpSpreadsheet/':(empty($dolibarr_lib_PHPEXCELNEW_PATH)?'':$dolibarr_lib_PHPEXCELNEW_PATH.'/')); }
     if (! defined('GEOIP_PATH'))           { define('GEOIP_PATH',           (!isset($dolibarr_lib_GEOIP_PATH))?DOL_DOCUMENT_ROOT.'/includes/geoip/':(empty($dolibarr_lib_GEOIP_PATH)?'':$dolibarr_lib_GEOIP_PATH.'/')); }
     if (! defined('ODTPHP_PATH'))          { define('ODTPHP_PATH',          (!isset($dolibarr_lib_ODTPHP_PATH))?DOL_DOCUMENT_ROOT.'/includes/odtphp/':(empty($dolibarr_lib_ODTPHP_PATH)?'':$dolibarr_lib_ODTPHP_PATH.'/')); }
     if (! defined('ODTPHP_PATHTOPCLZIP'))  { define('ODTPHP_PATHTOPCLZIP',  (!isset($dolibarr_lib_ODTPHP_PATHTOPCLZIP))?DOL_DOCUMENT_ROOT.'/includes/odtphp/zip/pclzip/':(empty($dolibarr_lib_ODTPHP_PATHTOPCLZIP)?'':$dolibarr_lib_ODTPHP_PATHTOPCLZIP.'/')); }
    diff --git a/htdocs/fourn/ajax/getSupplierPrices.php b/htdocs/fourn/ajax/getSupplierPrices.php
    index eeb2c1113f6..ae407d5544d 100644
    --- a/htdocs/fourn/ajax/getSupplierPrices.php
    +++ b/htdocs/fourn/ajax/getSupplierPrices.php
    @@ -34,8 +34,8 @@ $idprod=GETPOST('idprod','int');
     
     $prices = array();
     
    -$langs->load('stocks');
    -$langs->load('margins');
    +// Load translation files required by the page
    +$langs->loadLangs(array("stocks","margins"));
     
     
     /*
    diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php
    index b295355bdc9..4e1147cb1ae 100644
    --- a/htdocs/fourn/card.php
    +++ b/htdocs/fourn/card.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Eric Seigne          <erics@rycks.com>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2015 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2014      Jean Heimburger      <jean@tiaris.info>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    @@ -256,7 +256,7 @@ if ($object->id > 0)
     	print '</td><td>';
     	if ($action == 'editmode')
     	{
    -		$form->form_modes_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id,$object->mode_reglement_supplier_id,'mode_reglement_supplier_id');
    +		$form->form_modes_reglement($_SERVER['PHP_SELF'].'?socid='.$object->id,$object->mode_reglement_supplier_id,'mode_reglement_supplier_id', 'DBIT', 1, 1);
     	}
     	else
     	{
    @@ -374,7 +374,7 @@ if ($object->id > 0)
     	    $link=DOL_URL_ROOT.'/supplier_proposal/list.php?socid='.$object->id;
     	    $icon='bill';
     	    if ($link) $boxstat.='<a href="'.$link.'" class="boxstatsindicator thumbstat nobold nounderline">';
    -	    $boxstat.='<div class="boxstats">';
    +	    $boxstat.='<div class="boxstats" title="'.dol_escape_htmltag($text).'">';
     	    $boxstat.='<span class="boxstatstext">'.img_object("",$icon).' '.$text.'</span><br>';
     	    $boxstat.='<span class="boxstatsindicator">'.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).'</span>';
     	    $boxstat.='</div>';
    @@ -392,7 +392,7 @@ if ($object->id > 0)
     	    $link=DOL_URL_ROOT.'/fourn/commande/list.php?socid='.$object->id;
     	    $icon='bill';
     	    if ($link) $boxstat.='<a href="'.$link.'" class="boxstatsindicator thumbstat nobold nounderline">';
    -	    $boxstat.='<div class="boxstats">';
    +	    $boxstat.='<div class="boxstats" title="'.dol_escape_htmltag($text).'">';
     	    $boxstat.='<span class="boxstatstext">'.img_object("",$icon).' '.$text.'</span><br>';
     	    $boxstat.='<span class="boxstatsindicator">'.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).'</span>';
     	    $boxstat.='</div>';
    @@ -410,7 +410,7 @@ if ($object->id > 0)
     	    $link=DOL_URL_ROOT.'/fourn/facture/list.php?socid='.$object->id;
     	    $icon='bill';
     	    if ($link) $boxstat.='<a href="'.$link.'" class="boxstatsindicator thumbstat nobold nounderline">';
    -	    $boxstat.='<div class="boxstats">';
    +	    $boxstat.='<div class="boxstats" title="'.dol_escape_htmltag($text).'">';
     	    $boxstat.='<span class="boxstatstext">'.img_object("",$icon).' '.$text.'</span><br>';
     	    $boxstat.='<span class="boxstatsindicator">'.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).'</span>';
     	    $boxstat.='</div>';
    @@ -421,7 +421,7 @@ if ($object->id > 0)
     	    $link=DOL_URL_ROOT.'/fourn/recap-fourn.php?socid='.$object->id;
     	    $icon='bill';
     	    if ($link) $boxstat.='<a href="'.$link.'" class="boxstatsindicator thumbstat nobold nounderline">';
    -	    $boxstat.='<div class="boxstats">';
    +	    $boxstat.='<div class="boxstats" title="'.dol_escape_htmltag($text).'">';
     	    $boxstat.='<span class="boxstatstext">'.img_object("",$icon).' '.$text.'</span><br>';
     	    $boxstat.='<span class="boxstatsindicator'.($outstandingOpened>0?' amountremaintopay':'').'">'.price($outstandingOpened, 1, $langs, 1, -1, -1, $conf->currency).$warn.'</span>';
     	    $boxstat.='</div>';
    @@ -780,7 +780,7 @@ if ($object->id > 0)
     	{
     	    if ($object->status != 1)
             {
    -            print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("ThirdPartyIsClosed").'</a></div>';
    +            print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("ThirdPartyIsClosed").'</a></div>';
             }
     
     		if ($conf->supplier_proposal->enabled && $user->rights->supplier_proposal->creer)
    @@ -792,7 +792,7 @@ if ($object->id > 0)
     	      }
     	      else
     	      {
    -	        print '<a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("AddSupplierProposal").'</a>';
    +	        print '<a class="butActionRefused classfortooltip" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("AddSupplierProposal").'</a>';
     	      }
     		}
     
    @@ -805,7 +805,7 @@ if ($object->id > 0)
     	      }
     	      else
     	      {
    -	        print '<a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("AddOrder").'</a>';
    +	        print '<a class="butActionRefused classfortooltip" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("AddOrder").'</a>';
     	      }
     		}
     
    @@ -818,7 +818,7 @@ if ($object->id > 0)
     	      }
     	      else
     	      {
    -	        print '<a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("AddBill").'</a>';
    +	        print '<a class="butActionRefused classfortooltip" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("AddBill").'</a>';
     	      }
     		}
     
    @@ -832,10 +832,10 @@ if ($object->id > 0)
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
     				}
     			}
    -			else print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.dol_escape_js($langs->trans("NoOrdersToInvoice")).'" href="#">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
    +			else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" title="'.dol_escape_js($langs->trans("NoOrdersToInvoice")).'" href="#">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
     		}
     
         	// Add action
    @@ -884,6 +884,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/class/api_supplier_invoices.class.php b/htdocs/fourn/class/api_supplier_invoices.class.php
    index 68bb902b8fb..3b3ac43c496 100644
    --- a/htdocs/fourn/class/api_supplier_invoices.class.php
    +++ b/htdocs/fourn/class/api_supplier_invoices.class.php
    @@ -33,7 +33,7 @@ class SupplierInvoices extends DolibarrApi
          * @var array   $FIELDS     Mandatory fields, checked when create and update object
          */
         static $FIELDS = array(
    -        'socid'
    +        'socid',
         );
     
         /**
    @@ -96,7 +96,8 @@ class SupplierInvoices extends DolibarrApi
          *
     	 * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids='', $status='', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids='', $status='', $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -152,8 +153,7 @@ class SupplierInvoices extends DolibarrApi
             }
     
             $result = $db->query($sql);
    -        if ($result)
    -        {
    +        if ($result) {
                 $i = 0;
                 $num = $db->num_rows($result);
                 $min = min($num, ($limit <= 0 ? $num : $limit));
    @@ -170,10 +170,10 @@ class SupplierInvoices extends DolibarrApi
             else {
                 throw new RestException(503, 'Error when retrieve supplier invoice list : '.$db->lasterror());
             }
    -        if( ! count($obj_ret)) {
    +        if ( ! count($obj_ret)) {
                 throw new RestException(404, 'No supplier invoice found');
             }
    -		return $obj_ret;
    +        return $obj_ret;
         }
     
         /**
    @@ -332,7 +332,8 @@ class SupplierInvoices extends DolibarrApi
          * @param   Object  $object    Object to clean
          * @return  array              Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    diff --git a/htdocs/fourn/class/api_supplier_orders.class.php b/htdocs/fourn/class/api_supplier_orders.class.php
    index d9596bf3958..ac5c825856c 100644
    --- a/htdocs/fourn/class/api_supplier_orders.class.php
    +++ b/htdocs/fourn/class/api_supplier_orders.class.php
    @@ -46,8 +46,8 @@ class SupplierOrders extends DolibarrApi
          */
         function __construct()
         {
    -		global $db, $conf;
    -		$this->db = $db;
    +        global $db, $conf;
    +        $this->db = $db;
             $this->order = new CommandeFournisseur($this->db);
         }
     
    @@ -68,11 +68,11 @@ class SupplierOrders extends DolibarrApi
     		}
     
             $result = $this->order->fetch($id);
    -        if( ! $result ) {
    +        if ( ! $result ) {
                 throw new RestException(404, 'Supplier order not found');
             }
     
    -		if( ! DolibarrApi::_checkAccessToResource('fournisseur',$this->order->id,'','commande')) {
    +		if ( ! DolibarrApi::_checkAccessToResource('fournisseur',$this->order->id,'','commande')) {
     			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
     		}
     
    @@ -96,7 +96,8 @@ class SupplierOrders extends DolibarrApi
          *
     	 * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids='', $status='', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids='', $status='', $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -336,7 +337,8 @@ class SupplierOrders extends DolibarrApi
          * @param   Object  $object    Object to clean
          * @return  array              Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    diff --git a/htdocs/fourn/class/fournisseur.class.php b/htdocs/fourn/class/fournisseur.class.php
    index ba486e066cc..0636a356111 100644
    --- a/htdocs/fourn/class/fournisseur.class.php
    +++ b/htdocs/fourn/class/fournisseur.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2006      Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011	   Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -102,6 +102,7 @@ class Fournisseur extends Societe
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Load statistics indicators
     	 *
    @@ -109,6 +110,7 @@ class Fournisseur extends Societe
     	 */
     	function load_state_board()
     	{
    +        // phpcs:enable
     		global $conf, $user;
     
     		$this->nb=array();
    @@ -141,9 +143,9 @@ class Fournisseur extends Societe
     			$this->error=$this->db->error();
     			return -1;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Create a supplier category
     	 *
    @@ -153,6 +155,7 @@ class Fournisseur extends Societe
     	 */
     	function CreateCategory($user, $name)
     	{
    +        // phpcs:enable
     		$sql = "INSERT INTO ".MAIN_DB_PREFIX."categorie (label,visible,type)";
     		$sql.= " VALUES ";
     		$sql.= " ('".$this->db->escape($name)."',1,1)";
    @@ -172,6 +175,7 @@ class Fournisseur extends Societe
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Return the suppliers list
     	 *
    @@ -179,6 +183,7 @@ class Fournisseur extends Societe
     	 */
     	function ListArray()
     	{
    +        // phpcs:enable
     		global $conf;
     		global $user;
     
    @@ -207,6 +212,4 @@ class Fournisseur extends Societe
     		}
     		return $arr;
     	}
    -
     }
    -
    diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php
    index d6b1b719263..d92159c3234 100644
    --- a/htdocs/fourn/class/fournisseur.commande.class.php
    +++ b/htdocs/fourn/class/fournisseur.commande.class.php
    @@ -1,14 +1,15 @@
     <?php
     /* Copyright (C) 2003-2006	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2007		Franky Van Liedekerke	<franky.van.liedekerke@telenet.be>
      * Copyright (C) 2010-2014	Juanjo Menent			<jmenent@2byte.es>
    - * Copyright (C) 2010-2016	Philippe Grand			<philippe.grand@atoo-net.com>
    + * Copyright (C) 2010-2018	Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2012-2015  Marcos García           <marcosgdf@gmail.com>
      * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
      * Copyright (C) 2013       Cédric Salvador         <csalvador@gpcsolutions.fr>
      * Copyright (C) 2018       Nicolas ZABOURI			<info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      * Copyright (C) 2018       Ferran Marcet         	<fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -41,16 +42,34 @@ require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php';
      */
     class CommandeFournisseur extends CommonOrder
     {
    -    public $element='order_supplier';
    -    public $table_element='commande_fournisseur';
    -    public $table_element_line = 'commande_fournisseurdet';
    -    public $fk_element = 'fk_commande';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='order_supplier';
    +
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='commande_fournisseur';
    +
    +    /**
    +	 * @var int    Name of subtable line
    +	 */
    +	public $table_element_line = 'commande_fournisseurdet';
    +
    +    /**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
    +	public $fk_element = 'fk_commande';
    +
         public $picto='order';
    +
         /**
          * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
          * @var int
          */
         public $ismultientitymanaged = 1;
    +
         /**
          * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
          * @var integer
    @@ -62,13 +81,17 @@ class CommandeFournisseur extends CommonOrder
          */
         protected $table_ref_field = 'ref';
     
    -    public $id;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
     
     	/**
     	 * Supplier order reference
     	 * @var string
     	 */
         public $ref;
    +
         public $ref_supplier;
         public $brouillon;
         public $statut;			// 0=Draft -> 1=Validated -> 2=Approved -> 3=Ordered/Process runing -> 4=Received partially -> 5=Received totally -> (reopen) 4=Received partially
    @@ -90,24 +113,37 @@ class CommandeFournisseur extends CommonOrder
          * Delivery date
          */
         public $date_livraison;
    +
         public $total_ht;
         public $total_tva;
         public $total_localtax1;   // Total Local tax 1
         public $total_localtax2;   // Total Local tax 2
         public $total_ttc;
         public $source;
    +
     	/**
     	 * @deprecated
     	 * @see note_private, note_public
     	 */
         public $note;
    +
     	public $note_private;
         public $note_public;
         public $model_pdf;
    +
    +    /**
    +     * @var int ID
    +     */
         public $fk_project;
    +
         public $cond_reglement_id;
         public $cond_reglement_code;
    +
    +    /**
    +     * @var int ID
    +     */
         public $fk_account;
    +
         public $mode_reglement_id;
         public $mode_reglement_code;
         public $user_author_id;
    @@ -126,13 +162,18 @@ class CommandeFournisseur extends CommonOrder
     	 * @var CommandeFournisseurLigne[]
     	 */
     	public $lines = array();
    +
     	//Add for supplier_proposal
         public $origin;
         public $origin_id;
         public $linked_objects=array();
     
     	// Multicurrency
    +	/**
    +     * @var int ID
    +     */
         public $fk_multicurrency;
    +
         public $multicurrency_code;
         public $multicurrency_tx;
         public $multicurrency_total_ht;
    @@ -143,34 +184,42 @@ class CommandeFournisseur extends CommonOrder
     	 * Draft status
     	 */
     	const STATUS_DRAFT = 0;
    +
     	/**
     	 * Validated status
     	 */
     	const STATUS_VALIDATED = 1;
    +
     	/**
     	 * Accepted
     	 */
     	const STATUS_ACCEPTED = 2;
    +
     	/**
     	 * Order sent, shipment on process
     	 */
     	const STATUS_ORDERSENT = 3;
    +
     	/**
     	 * Received partially
     	 */
     	const STATUS_RECEIVED_PARTIALLY = 4;
    +
     	/**
     	 * Received completely
     	 */
     	const STATUS_RECEIVED_COMPLETELY = 5;
    +
     	/**
     	 * Order canceled
     	 */
     	const STATUS_CANCELED = 6;
    +
     	/**
     	 * Order canceled/never received
     	 */
     	const STATUS_CANCELED_AFTER_ORDER = 7;
    +
     	/**
     	 * Refused
     	 */
    @@ -199,7 +248,7 @@ class CommandeFournisseur extends CommonOrder
          * 	@param	string	$ref		Ref of object
          *	@return int 		        >0 if OK, <0 if KO, 0 if not found
          */
    -    public function fetch($id,$ref='')
    +    public function fetch($id, $ref='')
         {
             global $conf;
     
    @@ -326,6 +375,7 @@ class CommandeFournisseur extends CommonOrder
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Load array lines
          *
    @@ -334,6 +384,7 @@ class CommandeFournisseur extends CommonOrder
          */
         function fetch_lines($only_product=0)
         {
    +        // phpcs:enable
         	//$result=$this->fetch_lines();
         	$this->lines=array();
     
    @@ -565,6 +616,7 @@ class CommandeFournisseur extends CommonOrder
             return $this->LibStatut($this->statut,$mode,$this->billed);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return label of a status
          *
    @@ -575,6 +627,7 @@ class CommandeFournisseur extends CommonOrder
          */
         function LibStatut($statut,$mode=0,$billed=0)
         {
    +        // phpcs:enable
         	global $conf, $langs;
     
         	if (empty($this->statuts) || empty($this->statutshort))
    @@ -613,46 +666,46 @@ class CommandeFournisseur extends CommonOrder
             {
                 return $langs->trans($this->statuts[$statut]);
             }
    -        if ($mode == 1)
    +        elseif ($mode == 1)
             {
             	return $langs->trans($this->statutshort[$statut]);
             }
    -        if ($mode == 2)
    +        elseif ($mode == 2)
             {
                 return $langs->trans($this->statuts[$statut]);
             }
    -        if ($mode == 3)
    +        elseif ($mode == 3)
             {
                 if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut0');
    -            if ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut1');
    -            if ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut3');
    -            if ($statut==3) return img_picto($langs->trans($this->statuts[$statut]),'statut3');
    -            if ($statut==4) return img_picto($langs->trans($this->statuts[$statut]),'statut3');
    -            if ($statut==5) return img_picto($langs->trans($this->statuts[$statut]),'statut6');
    -            if ($statut==6 || $statut==7) return img_picto($langs->trans($this->statuts[$statut]),'statut5');
    -            if ($statut==9) return img_picto($langs->trans($this->statuts[$statut]),'statut5');
    +            elseif ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut1');
    +            elseif ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut3');
    +            elseif ($statut==3) return img_picto($langs->trans($this->statuts[$statut]),'statut3');
    +            elseif ($statut==4) return img_picto($langs->trans($this->statuts[$statut]),'statut3');
    +            elseif ($statut==5) return img_picto($langs->trans($this->statuts[$statut]),'statut6');
    +            elseif ($statut==6 || $statut==7) return img_picto($langs->trans($this->statuts[$statut]),'statut5');
    +            elseif ($statut==9) return img_picto($langs->trans($this->statuts[$statut]),'statut5');
             }
    -        if ($mode == 4)
    +        elseif ($mode == 4)
             {
                 if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    -            if ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut1').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    -            if ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    -            if ($statut==3) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    -            if ($statut==4) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    -            if ($statut==5) return img_picto($langs->trans($this->statuts[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    -            if ($statut==6 || $statut==7) return img_picto($langs->trans($this->statuts[$statut]),'statut5').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    -            if ($statut==9) return img_picto($langs->trans($this->statuts[$statut]),'statut5').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    +            elseif ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut1').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    +            elseif ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    +            elseif ($statut==3) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    +            elseif ($statut==4) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    +            elseif ($statut==5) return img_picto($langs->trans($this->statuts[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    +            elseif ($statut==6 || $statut==7) return img_picto($langs->trans($this->statuts[$statut]),'statut5').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
    +            elseif ($statut==9) return img_picto($langs->trans($this->statuts[$statut]),'statut5').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
             }
    -        if ($mode == 5)
    +        elseif ($mode == 5)
             {
             	if ($statut==0) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut0');
    -        	if ($statut==1) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut1');
    -        	if ($statut==2) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut3');
    -        	if ($statut==3) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut3');
    -        	if ($statut==4) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut3');
    -        	if ($statut==5) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut6');
    -        	if ($statut==6 || $statut==7) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut5');
    -        	if ($statut==9) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut5');
    +        	elseif ($statut==1) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut1');
    +        	elseif ($statut==2) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut3');
    +        	elseif ($statut==3) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut3');
    +        	elseif ($statut==4) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut3');
    +        	elseif ($statut==5) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut6');
    +        	elseif ($statut==6 || $statut==7) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut5');
    +        	elseif ($statut==9) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut5');
             }
         }
     
    @@ -749,8 +802,7 @@ class CommandeFournisseur extends CommonOrder
                     $mybool|=@include_once $dir.$file;
                 }
     
    -            if (! $mybool)
    -            {
    +            if ($mybool === false) {
                     dol_print_error('',"Failed to include file ".$file);
                     return '';
                 }
    @@ -1027,6 +1079,7 @@ class CommandeFournisseur extends CommonOrder
             return $result ;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Cancel an approved order.
          *	The cancellation is done after approval
    @@ -1037,6 +1090,7 @@ class CommandeFournisseur extends CommonOrder
          */
         function Cancel($user, $idwarehouse=-1)
         {
    +        // phpcs:enable
             global $langs,$conf;
     
     		$error=0;
    @@ -1087,7 +1141,6 @@ class CommandeFournisseur extends CommonOrder
             }
         }
     
    -
         /**
          * 	Submit a supplier order to supplier
          *
    @@ -1364,8 +1417,6 @@ class CommandeFournisseur extends CommonOrder
     
             $error=0;
     
    -		$this->context['createfromclone'] = 'createfromclone';
    -
     		$this->db->begin();
     
     		// Load source object
    @@ -1386,6 +1437,7 @@ class CommandeFournisseur extends CommonOrder
             $this->date_approve2      = '';
     
             // Create clone
    +        $this->context['createfromclone'] = 'createfromclone';
             $result=$this->create($user);
             if ($result < 0) $error++;
     
    @@ -1954,13 +2006,15 @@ class CommandeFournisseur extends CommonOrder
     		}
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Get list of order methods
          *
    -     *	@return 0 if Ok, <0 if Ko
    +     *	@return int 0 if OK, <0 if KO
          */
         function get_methodes_commande()
         {
    +        // phpcs:enable
             $sql = "SELECT rowid, libelle";
             $sql.= " FROM ".MAIN_DB_PREFIX."c_input_method";
             $sql.= " WHERE active = 1";
    @@ -1988,7 +2042,7 @@ class CommandeFournisseur extends CommonOrder
         }
     
         /**
    -	 * Return array of dispathed lines waiting to be approved for this order
    +	 * Return array of dispatched lines waiting to be approved for this order
          *
          * @since 8.0 Return dispatched quantity (qty).
     	 *
    @@ -2039,6 +2093,7 @@ class CommandeFournisseur extends CommonOrder
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Set a delivery in database for this supplier order
          *
    @@ -2050,6 +2105,7 @@ class CommandeFournisseur extends CommonOrder
          */
         function Livraison($user, $date, $type, $comment)
         {
    +        // phpcs:enable
         	global $conf, $langs;
     
             $result = 0;
    @@ -2084,7 +2140,6 @@ class CommandeFournisseur extends CommonOrder
     		    			$this->errors[]='ErrorCantSetReceptionToTotalDoneWithReceptionToApprove';
     		    			dol_syslog('ErrorCantSetReceptionToTotalDoneWithReceptionToApprove', LOG_DEBUG);
     		    		}
    -
     		    	}
     	    		if (! $error && ! empty($conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS_NEED_APPROVE) && ($type == 'tot'))	// Accept to move to reception done, only if status of all line are ok (refuse denied)
     	    		{
    @@ -2155,7 +2210,8 @@ class CommandeFournisseur extends CommonOrder
             return $result ;
         }
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *	Set the planned delivery date
          *
          *	@param      User			$user        		Objet user making change
    @@ -2165,6 +2221,7 @@ class CommandeFournisseur extends CommonOrder
          */
         function set_date_livraison($user, $date_livraison, $notrigger=0)
         {
    +        // phpcs:enable
             if ($user->rights->fournisseur->commande->creer)
             {
             	$error=0;
    @@ -2219,6 +2276,7 @@ class CommandeFournisseur extends CommonOrder
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
          *	Set the id projet
          *
    @@ -2229,6 +2287,7 @@ class CommandeFournisseur extends CommonOrder
          */
         function set_id_projet($user, $id_projet, $notrigger=0)
         {
    +        // phpcs:enable
             if ($user->rights->fournisseur->commande->creer)
             {
             	$error=0;
    @@ -2304,6 +2363,8 @@ class CommandeFournisseur extends CommonOrder
             for ($i = 0; $i < $num; $i++)
             {
                 $prod = new Product($this->db);
    +            $libelle = '';
    +            $ref = '';
                 if ($prod->fetch($comclient->lines[$i]->fk_product) > 0)
                 {
                     $libelle  = $prod->libelle;
    @@ -2678,6 +2739,7 @@ class CommandeFournisseur extends CommonOrder
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Charge indicateurs this->nb de tableau de bord
          *
    @@ -2685,6 +2747,7 @@ class CommandeFournisseur extends CommonOrder
          */
         function load_state_board()
         {
    +        // phpcs:enable
             global $conf, $user;
     
             $this->nb=array();
    @@ -2719,6 +2782,7 @@ class CommandeFournisseur extends CommonOrder
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Load indicators for dashboard (this->nbtodo and this->nbtodolate)
          *
    @@ -2727,6 +2791,7 @@ class CommandeFournisseur extends CommonOrder
          */
         function load_board($user)
         {
    +        // phpcs:enable
             global $conf, $langs;
     
             $clause = " WHERE";
    @@ -2821,7 +2886,7 @@ class CommandeFournisseur extends CommonOrder
     	 *  @param      int			$hidedetails    Hide details of lines
     	 *  @param      int			$hidedesc       Hide description
     	 *  @param      int			$hideref        Hide ref
    -         *  @param   null|array  $moreparams     Array to provide more information
    +     *  @param      null|array  $moreparams     Array to provide more information
     	 *  @return     int          				0 if KO, 1 if OK
     	 */
     	public function generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
    @@ -3032,7 +3097,6 @@ class CommandeFournisseur extends CommonOrder
     							{
     								$close++;
     							}
    -
     						}
     					}
     
    @@ -3056,8 +3120,6 @@ class CommandeFournisseur extends CommonOrder
     							}
     							return 4;
     						}
    -
    -
     					}
     					else
     					{//all the products are not received
    @@ -3067,7 +3129,6 @@ class CommandeFournisseur extends CommonOrder
     						}
     						return 4;
     					}
    -
     				}
         				else
         				{
    @@ -3084,6 +3145,54 @@ class CommandeFournisseur extends CommonOrder
         	}
         	return 0;
         }
    +	
    +    /**
    +     *	Load array this->receptions of lines of shipments with nb of products sent for each order line
    +     *  Note: For a dedicated shipment, the fetch_lines can be used to load the qty_asked and qty_shipped. This function is use to return qty_shipped cumulated for the order
    +     *
    +     *	@param      int		$filtre_statut      Filter on shipment status
    +     * 	@return     int                			<0 if KO, Nb of lines found if OK
    +     */
    +    function loadReceptions($filtre_statut=-1)
    +    {
    +        $this->receptions = array();
    +
    +        $sql = 'SELECT cd.rowid, cd.fk_product,';
    +        $sql.= ' sum(cfd.qty) as qty';
    +        $sql.= ' FROM '.MAIN_DB_PREFIX.'commande_fournisseur_dispatch as cfd,';
    +        if ($filtre_statut >= 0) $sql.= ' '.MAIN_DB_PREFIX.'reception as e,';
    +        $sql.= ' '.MAIN_DB_PREFIX.'commande_fournisseurdet as cd';
    +        $sql.= ' WHERE';
    +        if ($filtre_statut >= 0) $sql.= ' cfd.fk_reception = e.rowid AND';
    +        $sql.= ' cfd.fk_commandefourndet = cd.rowid';
    +        $sql.= ' AND cd.fk_commande =' .$this->id;
    +        if ($this->fk_product > 0) $sql.= ' AND cd.fk_product = '.$this->fk_product;
    +        if ($filtre_statut >= 0) $sql.=' AND e.fk_statut >= '.$filtre_statut;
    +        $sql.= ' GROUP BY cd.rowid, cd.fk_product';
    +        
    +
    +        dol_syslog(get_class($this)."::loadReceptions", LOG_DEBUG);
    +        $result = $this->db->query($sql);
    +        if ($result)
    +        {
    +            $num = $this->db->num_rows($result);
    +            $i = 0;
    +            while ($i < $num)
    +            {
    +                $obj = $this->db->fetch_object($result);
    +                empty($this->receptions[$obj->rowid])?$this->receptions[$obj->rowid] = $obj->qty:$this->receptions[$obj->rowid] += $obj->qty;
    +                $i++;
    +            }
    +            $this->db->free();
    +			
    +            return $num;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->lasterror();
    +            return -1;
    +        }
    +    }
     }
     
     
    @@ -3093,7 +3202,14 @@ class CommandeFournisseur extends CommonOrder
      */
     class CommandeFournisseurLigne extends CommonOrderLine
     {
    -    public $element='commande_fournisseurdet';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='commande_fournisseurdet';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='commande_fournisseurdet';
     
         public $oldline;
    @@ -3105,9 +3221,21 @@ class CommandeFournisseurLigne extends CommonOrderLine
         public $fk_commande;
     
         // From llx_commande_fournisseurdet
    +    /**
    +     * @var int ID
    +     */
         public $fk_parent_line;
    +
    +    /**
    +     * @var int ID
    +     */
         public $fk_facture;
    +
    +    /**
    +     * @var string supplier order line label
    +     */
         public $label;
    +
         public $rang = 0;
         public $special_code = 0;
     
    @@ -3484,4 +3612,3 @@ class CommandeFournisseurLigne extends CommonOrderLine
             }
         }
     }
    -
    diff --git a/htdocs/fourn/class/fournisseur.commande.dispatch.class.php b/htdocs/fourn/class/fournisseur.commande.dispatch.class.php
    index a72e225b535..ee4602d7093 100644
    --- a/htdocs/fourn/class/fournisseur.commande.dispatch.class.php
    +++ b/htdocs/fourn/class/fournisseur.commande.dispatch.class.php
    @@ -24,9 +24,10 @@
      */
     
     // Put here all includes required by your class file
    -require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php");
    -//require_once(DOL_DOCUMENT_ROOT."/societe/class/societe.class.php");
    -//require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php");
    +require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php";
    +require_once DOL_DOCUMENT_ROOT."/reception/class/reception.class.php";
    +//require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php";
    +//require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php";
     
     
     /**
    @@ -34,24 +35,72 @@ require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php");
      */
     class CommandeFournisseurDispatch extends CommonObject
     {
    -	public $db;							//!< To store db handler
    -	public $error;							//!< To return error code (or message)
    -	public $errors=array();				//!< To return several error codes (or messages)
    -	public $element='commandefournisseurdispatch';			//!< Id that identify managed objects
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error;
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='commandefournisseurdispatch';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='commande_fournisseur_dispatch';		//!< Name of table without prefix where object is stored
     	public $lines=array();
     
    -    public $id;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    +	/**
    +     * @var int ID
    +     */
     	public $fk_commande;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_product;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_commandefourndet;
    +
     	public $qty;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_entrepot;
    +
    +	/**
    +	 * @var int User ID
    +	 */
     	public $fk_user;
    +
     	public $datec='';
     	public $comment;
    +
    +	/**
    +	 * @var int Status
    +	 */
     	public $status;
    +
     	public $tms='';
     	public $batch;
     	public $eatby='';
    @@ -76,8 +125,6 @@ class CommandeFournisseurDispatch extends CommonObject
             $this->statutshort[0] = 'Received';
             $this->statutshort[1] = 'Verified';
             $this->statutshort[2] = 'Denied';
    -
    -        return 1;
         }
     
     
    @@ -90,7 +137,7 @@ class CommandeFournisseurDispatch extends CommonObject
          */
         function create($user, $notrigger=0)
         {
    -    	global $conf, $langs;
    +    	global $conf, $langs, $hookmanager;
     		$error=0;
     
     		// Clean parameters
    @@ -104,6 +151,8 @@ class CommandeFournisseurDispatch extends CommonObject
     		if (isset($this->comment)) $this->comment=trim($this->comment);
     		if (isset($this->status)) $this->status=trim($this->status);
     		if (isset($this->batch)) $this->batch=trim($this->batch);
    +		if(empty($this->datec)) $this->datec = dol_now();
    +
     
     		// Check parameters
     		// Put here code to add control on parameters values
    @@ -121,7 +170,10 @@ class CommandeFournisseurDispatch extends CommonObject
     		$sql.= "status,";
     		$sql.= "batch,";
     		$sql.= "eatby,";
    -		$sql.= "sellby";
    +		$sql.= "sellby,";
    +		$sql.= "fk_reception";
    +
    +
             $sql.= ") VALUES (";
     		$sql.= " ".(! isset($this->fk_commande)?'NULL':"'".$this->db->escape($this->fk_commande)."'").",";
     		$sql.= " ".(! isset($this->fk_product)?'NULL':"'".$this->db->escape($this->fk_product)."'").",";
    @@ -134,7 +186,8 @@ class CommandeFournisseurDispatch extends CommonObject
     		$sql.= " ".(! isset($this->status)?'NULL':"'".$this->db->escape($this->status)."'").",";
     		$sql.= " ".(! isset($this->batch)?'NULL':"'".$this->db->escape($this->batch)."'").",";
     		$sql.= " ".(! isset($this->eatby) || dol_strlen($this->eatby)==0?'NULL':"'".$this->db->idate($this->eatby)."'").",";
    -		$sql.= " ".(! isset($this->sellby) || dol_strlen($this->sellby)==0?'NULL':"'".$this->db->idate($this->sellby)."'")."";
    +		$sql.= " ".(! isset($this->sellby) || dol_strlen($this->sellby)==0?'NULL':"'".$this->db->idate($this->sellby)."'").",";
    +		$sql.= " ".(! isset($this->fk_reception)?'NULL':"'".$this->db->escape($this->fk_reception)."'")."";
     		$sql.= ")";
     
     		$this->db->begin();
    @@ -159,6 +212,24 @@ class CommandeFournisseurDispatch extends CommonObject
     			}
             }
     
    +		// Actions on extra fields (by external module or standard code)
    +		// TODO le hook fait double emploi avec le trigger !!
    +		$hookmanager->initHooks(array('commandefournisseurdispatchdao'));
    +		$parameters=array('id'=>$this->id);
    +		$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +		if (empty($reshook))
    +		{
    +			if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
    +			{
    +				$result=$this->insertExtraFields();
    +
    +				if ($result < 0)
    +				{
    +					$error++;
    +				}
    +			}
    +        }
    +
             // Commit or rollback
             if ($error)
     		{
    @@ -203,7 +274,8 @@ class CommandeFournisseurDispatch extends CommonObject
     		$sql.= " t.tms,";
     		$sql.= " t.batch,";
     		$sql.= " t.eatby,";
    -		$sql.= " t.sellby";
    +		$sql.= " t.sellby,";
    +		$sql.= " t.fk_reception";
     
     
             $sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element." as t";
    @@ -233,8 +305,6 @@ class CommandeFournisseurDispatch extends CommonObject
     				$this->batch = $obj->batch;
     				$this->eatby = $this->db->jdate($obj->eatby);
     				$this->sellby = $this->db->jdate($obj->sellby);
    -
    -
                 }
                 $this->db->free($resql);
     
    @@ -305,14 +375,21 @@ class CommandeFournisseurDispatch extends CommonObject
     
     		if (! $error)
     		{
    +			if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
    +			{
    +				if(empty($this->id) && !empty($this->rowid))$this->id=$this->rowid;
    +				$result=$this->insertExtraFields();
    +				if ($result < 0)
    +				{
    +					$error++;
    +				}
    +			}
    +
     			if (! $notrigger)
     			{
     	            // Uncomment this and change MYOBJECT to your own tag if you
    -	            // want this action calls a trigger.
    -
    -	            //// Call triggers
    -	            //$result=$this->call_trigger('MYOBJECT_MODIFY',$user);
    -	            //if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
    +	            $result=$this->call_trigger('LINERECEPTION_UPDATE',$user);
    +	            if ($result < 0) $error++;
     	            //// End call triggers
     			 }
     		}
    @@ -419,6 +496,7 @@ class CommandeFournisseurDispatch extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result=$object->create($user);
     
     		// Other options
    @@ -431,9 +509,10 @@ class CommandeFournisseurDispatch extends CommonObject
     		if (! $error)
     		{
     
    -
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (! $error)
     		{
    @@ -460,6 +539,7 @@ class CommandeFournisseurDispatch extends CommonObject
             return $this->LibStatut($this->status,$mode);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return label of a status
          *
    @@ -469,6 +549,7 @@ class CommandeFournisseurDispatch extends CommonObject
          */
         function LibStatut($statut,$mode=0)
         {
    +        // phpcs:enable
             global $langs;
             $langs->load('orders');
     
    @@ -476,27 +557,27 @@ class CommandeFournisseurDispatch extends CommonObject
             {
                 return $langs->trans($this->statuts[$statut]);
             }
    -        if ($mode == 1)
    +        elseif ($mode == 1)
             {
                 return $langs->trans($this->statutshort[$statut]);
             }
    -        if ($mode == 2)
    +        elseif ($mode == 2)
             {
                 return $langs->trans($this->statuts[$statut]);
             }
    -        if ($mode == 3)
    +        elseif ($mode == 3)
             {
                 if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut0');
                 if ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut4');
                 if ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut8');
             }
    -        if ($mode == 4)
    +        elseif ($mode == 4)
             {
                 if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]);
                 if ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut4').' '.$langs->trans($this->statuts[$statut]);
                 if ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut8').' '.$langs->trans($this->statuts[$statut]);
             }
    -        if ($mode == 5)
    +        elseif ($mode == 5)
             {
                 if ($statut==0) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut0');
                 if ($statut==1) return '<span class="hideonsmartphone">'.$langs->trans($this->statutshort[$statut]).' </span>'.img_picto($langs->trans($this->statuts[$statut]),'statut4');
    @@ -528,8 +609,6 @@ class CommandeFournisseurDispatch extends CommonObject
     		$this->batch='';
     		$this->eatby='';
     		$this->sellby='';
    -
    -
     	}
     
     	/**
    @@ -627,5 +706,4 @@ class CommandeFournisseurDispatch extends CommonObject
     			return - 1;
     		}
     	}
    -
     }
    diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php
    index 086f154184d..1dab0e9f82e 100644
    --- a/htdocs/fourn/class/fournisseur.facture.class.php
    +++ b/htdocs/fourn/class/fournisseur.facture.class.php
    @@ -3,15 +3,16 @@
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Christophe Combelles	<ccomb@free.fr>
      * Copyright (C) 2005		Marc Barilley			<marc@ocebo.com>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2010-2017	Juanjo Menent			<jmenent@2byte.es>
    - * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
    + * Copyright (C) 2013-2018	Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2014-2016	Marcos García			<marcosgdf@gmail.com>
      * Copyright (C) 2015		Bahfir Abbes			<bafbes@gmail.com>
      * Copyright (C) 2015		Ferran Marcet			<fmarcet@2byte.es>
      * Copyright (C) 2016		Alexandre Spangaro		<aspangaro@zendsi.com>
    - * Copyright (C) 2018           Nicolas ZABOURI			<info@inovea-conseil.com>
    + * Copyright (C) 2018       Nicolas ZABOURI			<info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -41,16 +42,34 @@ require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php';
      */
     class FactureFournisseur extends CommonInvoice
     {
    -    public $element='invoice_supplier';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='invoice_supplier';
    +
    +    /**
    +     * @var string Name of table without prefix where object is stored
    +     */
         public $table_element='facture_fourn';
    -    public $table_element_line='facture_fourn_det';
    -    public $fk_element='fk_facture_fourn';
    +
    +    /**
    +	 * @var int    Name of subtable line
    +	 */
    +	public $table_element_line='facture_fourn_det';
    +
    +    /**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
    +	public $fk_element='fk_facture_fourn';
    +
         public $picto='bill';
    +
         /**
          * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
          * @var int
          */
         public $ismultientitymanaged = 1;
    +
         /**
          * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
          * @var integer
    @@ -62,8 +81,16 @@ class FactureFournisseur extends CommonInvoice
          */
         protected $table_ref_field = 'ref';
     
    -    public $rowid;
    -    public $ref;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $rowid;
    +
    +    /**
    +	 * @var string Ref
    +	 */
    +	public $ref;
    +
         public $product_ref;
         public $ref_supplier;
         public $socid;
    @@ -100,17 +127,24 @@ class FactureFournisseur extends CommonInvoice
         public $total_localtax1=0;
         public $total_localtax2=0;
         public $total_ttc=0;
    -    /**
    +
    +	/**
     	 * @deprecated
     	 * @see note_private, note_public
     	 */
         public $note;
    +
         public $note_private;
         public $note_public;
         public $propalid;
         public $cond_reglement_id;
         public $cond_reglement_code;
    +
    +    /**
    +     * @var int ID
    +     */
         public $fk_account;
    +
         public $mode_reglement_id;
         public $mode_reglement_code;
     
    @@ -119,26 +153,37 @@ class FactureFournisseur extends CommonInvoice
     	 * @var SupplierInvoiceLine[]
     	 */
         public $lines = array();
    +
     	/**
     	 * @deprecated
     	 */
         public $fournisseur;
     
    -	//Incorterms
    +	/**
    +     * @var int ID Incorterms
    +     */
         public $fk_incoterms;
    +
         public $location_incoterms;
         public $libelle_incoterms;  //Used into tooltip
     
         public $extraparams=array();
     
     	// Multicurrency
    +	/**
    +     * @var int ID
    +     */
         public $fk_multicurrency;
    +
         public $multicurrency_code;
         public $multicurrency_tx;
         public $multicurrency_total_ht;
         public $multicurrency_total_tva;
         public $multicurrency_total_ttc;
         //! id of source invoice if replacement invoice or credit note
    +    /**
    +     * @var int ID
    +     */
         public $fk_facture_source;
     
         /**
    @@ -643,7 +688,6 @@ class FactureFournisseur extends CommonInvoice
                         $this->error=$this->db->lasterror();
                         return -3;
                     }
    -
                 }
                 else
                 {
    @@ -663,13 +707,15 @@ class FactureFournisseur extends CommonInvoice
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Load this->lines
          *
    -     *	@return     int         1 si ok, < 0 si erreur
    +     *  @return     int         1 si ok, < 0 si erreur
          */
         function fetch_lines()
         {
    +        // phpcs:enable
         	$this->lines = array();
     
             $sql = 'SELECT f.rowid, f.ref as ref_supplier, f.description, f.date_start, f.date_end, f.pu_ht, f.pu_ttc, f.qty, f.remise_percent, f.vat_src_code, f.tva_tx';
    @@ -888,6 +934,7 @@ class FactureFournisseur extends CommonInvoice
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Add a discount line into an invoice (as an invoice line) using an existing absolute discount (Consume the discount)
          *
    @@ -896,6 +943,7 @@ class FactureFournisseur extends CommonInvoice
          */
         function insert_discount($idremise)
         {
    +        // phpcs:enable
         	global $langs;
     
         	include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
    @@ -1139,8 +1187,9 @@ class FactureFournisseur extends CommonInvoice
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -     *	Tag invoice as a payed invoice
    +     *  Tag invoice as a payed invoice
          *
          *	@param  User	$user       Object user
     	 *	@param  string	$close_code	Code renseigne si on classe a payee completement alors que paiement incomplet. Not implementd yet.
    @@ -1149,6 +1198,7 @@ class FactureFournisseur extends CommonInvoice
          */
         function set_paid($user, $close_code='', $close_note='')
         {
    +        // phpcs:enable
             global $conf,$langs;
             $error=0;
     
    @@ -1187,6 +1237,7 @@ class FactureFournisseur extends CommonInvoice
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Tag la facture comme non payee completement + appel trigger BILL_UNPAYED
          *	Fonction utilisee quand un paiement prelevement est refuse,
    @@ -1197,6 +1248,7 @@ class FactureFournisseur extends CommonInvoice
          */
         function set_unpaid($user)
         {
    +        // phpcs:enable
             global $conf,$langs;
             $error=0;
     
    @@ -1398,6 +1450,7 @@ class FactureFournisseur extends CommonInvoice
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Set draft status
          *
    @@ -1407,6 +1460,7 @@ class FactureFournisseur extends CommonInvoice
          */
         function set_draft($user, $idwarehouse=-1)
         {
    +        // phpcs:enable
             global $conf,$langs;
     
             $error=0;
    @@ -1975,15 +2029,18 @@ class FactureFournisseur extends CommonInvoice
             }
         }
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
     	 *	Renvoi liste des factures remplacables
     	 *	Statut validee ou abandonnee pour raison autre + non payee + aucun paiement + pas deja remplacee
     	 *
    -	 *	@param		int		$socid		Id societe
    -	 *	@return    	array				Tableau des factures ('id'=>id, 'ref'=>ref, 'status'=>status, 'paymentornot'=>0/1)
    -	 */
    +	 *	@param      int		$socid		Id societe
    +	 *	@return    	array|int			Tableau des factures ('id'=>id, 'ref'=>ref, 'status'=>status, 'paymentornot'=>0/1)
    +     *                                  <0 if error
    +     */
     	function list_replacable_supplier_invoices($socid=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$return = array();
    @@ -2007,9 +2064,11 @@ class FactureFournisseur extends CommonInvoice
     		{
     			while ($obj=$this->db->fetch_object($resql))
     			{
    -				$return[$obj->rowid]=array(	'id' => $obj->rowid,
    -				'ref' => $obj->ref,
    -				'status' => $obj->fk_statut);
    +				$return[$obj->rowid]=array(
    +                    'id' => $obj->rowid,
    +				    'ref' => $obj->ref,
    +				    'status' => $obj->fk_statut
    +                );
     			}
     			//print_r($return);
     			return $return;
    @@ -2021,16 +2080,19 @@ class FactureFournisseur extends CommonInvoice
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Renvoi liste des factures qualifiables pour correction par avoir
     	 *	Les factures qui respectent les regles suivantes sont retournees:
     	 *	(validee + paiement en cours) ou classee (payee completement ou payee partiellement) + pas deja remplacee + pas deja avoir
     	 *
     	 *	@param		int		$socid		Id societe
    -	 *	@return    	array				Tableau des factures ($id => array('ref'=>,'paymentornot'=>,'status'=>,'paye'=>)
    +	 *	@return    	array|int			Tableau des factures ($id => array('ref'=>,'paymentornot'=>,'status'=>,'paye'=>)
    +     *                                  <0 if error
     	 */
     	function list_qualified_avoir_supplier_invoices($socid=0)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$return = array();
    @@ -2071,6 +2133,7 @@ class FactureFournisseur extends CommonInvoice
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Load indicators for dashboard (this->nbtodo and this->nbtodolate)
          *
    @@ -2079,6 +2142,7 @@ class FactureFournisseur extends CommonInvoice
          */
         function load_board($user)
         {
    +        // phpcs:enable
             global $conf, $langs;
     
             $sql = 'SELECT ff.rowid, ff.date_lim_reglement as datefin, ff.fk_statut';
    @@ -2241,9 +2305,8 @@ class FactureFournisseur extends CommonInvoice
                 $mybool|=@include_once $dir.$file;
             }
     
    -        if (! $mybool)
    -        {
    -        	dol_print_error('',"Failed to include file ".$file);
    +        if ($mybool === false) {
    +        	dol_print_error('', "Failed to include file ".$file);
             	return '';
             }
     
    @@ -2367,13 +2430,15 @@ class FactureFournisseur extends CommonInvoice
             $this->total_ttc      = $xnbp*119.6;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Load indicators for dashboard (this->nbtodo and this->nbtodolate)
     	 *
     	 *      @return         int     <0 if KO, >0 if OK
    -	 */
    +     */
     	function load_state_board()
     	{
    +        // phpcs:enable
     		global $conf, $user;
     
     		$this->nb=array();
    @@ -2424,8 +2489,6 @@ class FactureFournisseur extends CommonInvoice
     
             $object=new FactureFournisseur($this->db);
     
    -		$object->context['createfromclone'] = 'createfromclone';
    -
     		$this->db->begin();
     
             // Load source object
    @@ -2456,6 +2519,7 @@ class FactureFournisseur extends CommonInvoice
             }
     
             // Create clone
    +        $object->context['createfromclone'] = 'createfromclone';
             $result=$object->create($user);
     
             // Other options
    @@ -2468,8 +2532,6 @@ class FactureFournisseur extends CommonInvoice
             if (! $error)
             {
     
    -
    -
             }
     
             unset($object->context['createfromclone']);
    @@ -2583,7 +2645,14 @@ class FactureFournisseur extends CommonInvoice
      */
     class SupplierInvoiceLine extends CommonObjectLine
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='facture_fourn_det';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='facture_fourn_det';
     
     	public $oldline;
    @@ -2593,6 +2662,7 @@ class SupplierInvoiceLine extends CommonObjectLine
     	 * @see product_ref
     	 */
     	public $ref;
    +
     	/**
     	 * Internal ref
     	 * @var string
    @@ -2611,6 +2681,7 @@ class SupplierInvoiceLine extends CommonObjectLine
     	 * @see label
     	 */
     	public $libelle;
    +
     	/**
     	 * Product description
     	 * @var string
    @@ -2624,6 +2695,7 @@ class SupplierInvoiceLine extends CommonObjectLine
     	 * @see subprice
     	 */
     	public $pu_ht;
    +
     	public $subprice;
     
     	/**
    @@ -2639,6 +2711,7 @@ class SupplierInvoiceLine extends CommonObjectLine
     	 * @see total_tva
     	 */
     	public $tva;
    +
     	public $total_tva;
     
     	/**
    @@ -2684,18 +2757,32 @@ class SupplierInvoiceLine extends CommonObjectLine
     	public $total_ttc;
     	public $total_localtax1;
     	public $total_localtax2;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_product;
    +
     	public $product_type;
     	public $product_label;
     	public $info_bits;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_parent_line;
    +
     	public $special_code;
     	public $rang;
     	public $localtax1_type;
     	public $localtax2_type;
     
     	// Multicurrency
    +	/**
    +     * @var int ID
    +     */
     	public $fk_multicurrency;
    +
     	public $multicurrency_code;
     	public $multicurrency_subprice;
     	public $multicurrency_total_ht;
    @@ -2780,10 +2867,10 @@ class SupplierInvoiceLine extends CommonObjectLine
     		$this->rang       		= $obj->rang;
     		$this->fk_unit           = $obj->fk_unit;
     
    -		$this->multicurrency_subprice	= $obj->multicurrency_subprice;
    -		$this->multicurrency_total_ht	= $obj->multicurrency_total_ht;
    -		$this->multicurrency_total_tva	= $obj->multicurrency_total_tva;
    -		$this->multicurrency_total_ttc	= $obj->multicurrency_total_ttc;
    +		$this->multicurrency_subprice = $obj->multicurrency_subprice;
    +		$this->multicurrency_total_ht = $obj->multicurrency_total_ht;
    +		$this->multicurrency_total_tva = $obj->multicurrency_total_tva;
    +		$this->multicurrency_total_ttc = $obj->multicurrency_total_ttc;
     
     		$this->fetch_optionals();
     
    @@ -2812,6 +2899,8 @@ class SupplierInvoiceLine extends CommonObjectLine
     			}
     		}
     
    +		$this->deleteObjectLinked();
    +
     		if (!$error) {
     			// Supprime ligne
     			$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'facture_fourn_det ';
    @@ -3085,7 +3174,6 @@ class SupplierInvoiceLine extends CommonObjectLine
     
                 $this->db->commit();
                 return $this->id;
    -
             }
             else
             {
    @@ -3094,13 +3182,16 @@ class SupplierInvoiceLine extends CommonObjectLine
                 return -2;
             }
         }
    -            /**
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          *  Mise a jour de l'objet ligne de commande en base
          *
          *  @return		int		<0 si ko, >0 si ok
          */
         function update_total()
         {
    +        // phpcs:enable
             $this->db->begin();
     
             // Mise a jour ligne en base
    diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php
    index 5c50597195a..056070d580d 100644
    --- a/htdocs/fourn/class/fournisseur.product.class.php
    +++ b/htdocs/fourn/class/fournisseur.product.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2011	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2014	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2014	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2012		Christophe Battarel	<christophe.battarel@altairis.fr>
      * Copyright (C) 2015		Marcos García           <marcosgdf@gmail.com>
    @@ -37,49 +37,70 @@ require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.
      */
     class ProductFournisseur extends Product
     {
    -    var $db;
    -    var $error;
    -
    -    var $product_fourn_price_id;  // id of ligne product-supplier
    -
    -    var $id;                      // product id
    -	/**
    -	 * @deprecated
    -	 * @see ref_supplier
    -	 */
    -    var $fourn_ref;
    -    var $delivery_time_days;
    -    var $ref_supplier;			  // ref supplier (can be set by get_buyprice)
    -    var $vatrate_supplier;		  // default vat rate for this supplier/qty/product (can be set by get_buyprice)
    -
    -    var $fourn_id;                //supplier id
    -    var $fourn_qty;               // quantity for price (can be set by get_buyprice)
    -    var $fourn_pu;			       // unit price for quantity (can be set by get_buyprice)
    -
    -    var $fourn_price;             // price for quantity
    -    var $fourn_remise_percent;    // discount for quantity (percent)
    -    var $fourn_remise;            // discount for quantity (amount)
    -    var $product_fourn_id;        // supplier id
    -    var $fk_availability;         // availability delay - visible/used if option FOURN_PRODUCT_AVAILABILITY is on (duplicate information compared to delivery delay)
    -    var $fourn_unitprice;
    -    var $fourn_tva_tx;
    -    var $fourn_tva_npr;
    -
    -    var $fk_supplier_price_expression;
    -    var $supplier_reputation;     // reputation of supplier
    -    var $reputations=array();     // list of available supplier reputations
    -
    -    // Multicurreny
    -    var $fourn_multicurrency_id;
    -    var $fourn_multicurrency_code;
    -    var $fourn_multicurrency_tx;
    -    var $fourn_multicurrency_price;
    -    var $fourn_multicurrency_unitprice;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
         /**
    -	 *	Constructor
    -	 *
    -	 *  @param		DoliDB		$db      Database handler
    +     * @var string Error code (or message)
    +     */
    +    public $error='';
    +
    +    public $product_fourn_price_id;  // id of ligne product-supplier
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $id;
    +
    +    /**
    +     * @deprecated
    +     * @see ref_supplier
    +     */
    +    public $fourn_ref;
    +    public $delivery_time_days;
    +    public $ref_supplier;			  // ref supplier (can be set by get_buyprice)
    +    public $desc_supplier;
    +    public $vatrate_supplier;		  // default vat rate for this supplier/qty/product (can be set by get_buyprice)
    +
    +    public $fourn_id;                //supplier id
    +    public $fourn_qty;               // quantity for price (can be set by get_buyprice)
    +    public $fourn_pu;			       // unit price for quantity (can be set by get_buyprice)
    +
    +    public $fourn_price;             // price for quantity
    +    public $fourn_remise_percent;    // discount for quantity (percent)
    +    public $fourn_remise;            // discount for quantity (amount)
    +    public $product_fourn_id;        // supplier id
    +
    +    /**
    +     * @var int ID availability delay - visible/used if option FOURN_PRODUCT_AVAILABILITY is on (duplicate information compared to delivery delay)
    +     */
    +    public $fk_availability;
    +
    +    public $fourn_unitprice;
    +    public $fourn_tva_tx;
    +    public $fourn_tva_npr;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_supplier_price_expression;
    +
    +    public $supplier_reputation;     // reputation of supplier
    +    public $reputations=array();     // list of available supplier reputations
    +
    +    // Multicurreny
    +    public $fourn_multicurrency_id;
    +    public $fourn_multicurrency_code;
    +    public $fourn_multicurrency_tx;
    +    public $fourn_multicurrency_price;
    +    public $fourn_multicurrency_unitprice;
    +
    +    /**
    +     *	Constructor
    +     *
    +     *  @param		DoliDB		$db      Database handler
          */
         function __construct($db)
         {
    @@ -92,6 +113,7 @@ class ProductFournisseur extends Product
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Remove all prices for this couple supplier-product
          *
    @@ -100,6 +122,7 @@ class ProductFournisseur extends Product
          */
         function remove_fournisseur($id_fourn)
         {
    +        // phpcs:enable
             $ok=1;
     
             $this->db->begin();
    @@ -128,6 +151,7 @@ class ProductFournisseur extends Product
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Remove a price for a couple supplier-product
          *
    @@ -136,6 +160,7 @@ class ProductFournisseur extends Product
          */
         function remove_product_fournisseur_price($rowid)
         {
    +        // phpcs:enable
             global $conf, $user;
     
             $error=0;
    @@ -162,17 +187,17 @@ class ProductFournisseur extends Product
                 }
             }
     
    -        if (empty($error)){
    +        if (empty($error)) {
                 $this->db->commit();
                 return 1;
    -        }else{
    +        } else {
                 $this->db->rollback();
                 return -1;
             }
    -
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Modify the purchase price for a supplier
          *
    @@ -196,10 +221,12 @@ class ProductFournisseur extends Product
          *    @param  	string		$multicurrency_price_base_type	HT or TTC in currency
          *    @param  	float		$multicurrency_tx	            Rate currency
          *    @param  	string		$multicurrency_code	            Currency code
    +     *    @param  	string		$desc_fourn     	            Custom description for product_fourn_price
          *    @return	int								<0 if KO, >=0 if OK
          */
    -    function update_buyprice($qty, $buyprice, $user, $price_base_type, $fourn, $availability, $ref_fourn, $tva_tx, $charges=0, $remise_percent=0, $remise=0, $newnpr=0, $delivery_time_days=0, $supplier_reputation='', $localtaxes_array=array(), $newdefaultvatcode='', $multicurrency_buyprice=0, $multicurrency_price_base_type='HT',$multicurrency_tx=1,$multicurrency_code='')
    +    function update_buyprice($qty, $buyprice, $user, $price_base_type, $fourn, $availability, $ref_fourn, $tva_tx, $charges=0, $remise_percent=0, $remise=0, $newnpr=0, $delivery_time_days=0, $supplier_reputation='', $localtaxes_array=array(), $newdefaultvatcode='', $multicurrency_buyprice=0, $multicurrency_price_base_type='HT',$multicurrency_tx=1,$multicurrency_code='', $desc_fourn='')
         {
    +        // phpcs:enable
             global $conf, $langs;
             //global $mysoc;
     
    @@ -270,6 +297,7 @@ class ProductFournisseur extends Product
     	  		$sql = "UPDATE ".MAIN_DB_PREFIX."product_fournisseur_price";
     			$sql.= " SET fk_user = " . $user->id." ,";
                 $sql.= " ref_fourn = '" . $this->db->escape($ref_fourn) . "',";
    +            $sql.= " desc_fourn = '" . $this->db->escape($desc_fourn) . "',";
     			$sql.= " price = ".price2num($buyprice).",";
     			$sql.= " quantity = ".$qty.",";
     			$sql.= " remise_percent = ".$remise_percent.",";
    @@ -336,7 +364,7 @@ class ProductFournisseur extends Product
                     // Add price for this quantity to supplier
                     $sql = "INSERT INTO " . MAIN_DB_PREFIX . "product_fournisseur_price(";
                     $sql.= " multicurrency_price, multicurrency_unitprice, multicurrency_tx, fk_multicurrency, multicurrency_code,";
    -                $sql .= "datec, fk_product, fk_soc, ref_fourn, fk_user, price, quantity, remise_percent, remise, unitprice, tva_tx, charges, fk_availability, default_vat_code, info_bits, entity, delivery_time_days, supplier_reputation)";
    +                $sql .= "datec, fk_product, fk_soc, ref_fourn, desc_fourn, fk_user, price, quantity, remise_percent, remise, unitprice, tva_tx, charges, fk_availability, default_vat_code, info_bits, entity, delivery_time_days, supplier_reputation)";
                     $sql .= " values(";
                     $sql.= (isset($multicurrency_buyprice)?"'".$this->db->escape(price2num($multicurrency_buyprice))."'":'null').",";
                     $sql.= (isset($multicurrency_unitBuyPrice)?"'".$this->db->escape(price2num($multicurrency_unitBuyPrice))."'":'null').",";
    @@ -347,6 +375,7 @@ class ProductFournisseur extends Product
                     $sql .= " " . $this->id . ",";
                     $sql .= " " . $fourn->id . ",";
                     $sql .= " '" . $this->db->escape($ref_fourn) . "',";
    +                $sql .= " '" . $this->db->escape($desc_fourn) . "',";
                     $sql .= " " . $user->id . ",";
                     $sql .= " " . $buyprice . ",";
                     $sql .= " " . $qty . ",";
    @@ -424,6 +453,7 @@ class ProductFournisseur extends Product
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Loads the price information of a provider
          *
    @@ -433,10 +463,11 @@ class ProductFournisseur extends Product
          */
         function fetch_product_fournisseur_price($rowid, $ignore_expression = 0)
         {
    +        // phpcs:enable
             global $conf;
     
             $sql = "SELECT pfp.rowid, pfp.price, pfp.quantity, pfp.unitprice, pfp.remise_percent, pfp.remise, pfp.tva_tx, pfp.default_vat_code, pfp.info_bits as fourn_tva_npr, pfp.fk_availability,";
    -        $sql.= " pfp.fk_soc, pfp.ref_fourn, pfp.fk_product, pfp.charges, pfp.fk_supplier_price_expression, pfp.delivery_time_days,";
    +        $sql.= " pfp.fk_soc, pfp.ref_fourn, pfp.desc_fourn, pfp.fk_product, pfp.charges, pfp.fk_supplier_price_expression, pfp.delivery_time_days,";
             $sql.= " pfp.supplier_reputation";
             $sql.= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code";
             $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
    @@ -456,6 +487,7 @@ class ProductFournisseur extends Product
                 	$this->fourn_id					= $obj->fk_soc;
                 	$this->fourn_ref				= $obj->ref_fourn; // deprecated
     	            $this->ref_supplier             = $obj->ref_fourn;
    +	            $this->desc_supplier            = $obj->desc_fourn;
                 	$this->fourn_price				= $obj->price;
                 	$this->fourn_charges            = $obj->charges;	// deprecated
                 	$this->fourn_qty                = $obj->quantity;
    @@ -510,6 +542,7 @@ class ProductFournisseur extends Product
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    List all supplier prices of a product
          *
    @@ -522,14 +555,14 @@ class ProductFournisseur extends Product
          */
         function list_product_fournisseur_price($prodid, $sortfield='', $sortorder='', $limit=0, $offset=0)
         {
    +        // phpcs:enable
             global $conf;
     
             $sql = "SELECT s.nom as supplier_name, s.rowid as fourn_id,";
    -        $sql.= " pfp.rowid as product_fourn_pri_id, pfp.ref_fourn, pfp.fk_product as product_fourn_id, pfp.fk_supplier_price_expression,";
    -        $sql.= " pfp.price, pfp.quantity, pfp.unitprice, pfp.remise_percent, pfp.remise, pfp.tva_tx, pfp.fk_availability, pfp.charges, pfp.info_bits, pfp.delivery_time_days, pfp.supplier_reputation";
    -        $sql.= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code";
    -        $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
    -        $sql.= ", ".MAIN_DB_PREFIX."societe as s";
    +        $sql.= " pfp.rowid as product_fourn_pri_id, pfp.ref_fourn, pfp.desc_fourn, pfp.fk_product as product_fourn_id, pfp.fk_supplier_price_expression,";
    +        $sql.= " pfp.price, pfp.quantity, pfp.unitprice, pfp.remise_percent, pfp.remise, pfp.tva_tx, pfp.fk_availability, pfp.charges, pfp.info_bits, pfp.delivery_time_days, pfp.supplier_reputation,";
    +        $sql.= " pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code, pfp.datec, pfp.tms";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp, ".MAIN_DB_PREFIX."societe as s";
             $sql.= " WHERE pfp.entity IN (".getEntity('productsupplierprice').")";
             $sql.= " AND pfp.fk_soc = s.rowid";
             $sql.= " AND s.status=1"; // only enabled company selected
    @@ -553,6 +586,7 @@ class ProductFournisseur extends Product
                     $prodfourn->product_fourn_id		= $record["product_fourn_id"];
                     $prodfourn->fourn_ref				= $record["ref_fourn"];
                     $prodfourn->ref_supplier			= $record["ref_fourn"];
    +                $prodfourn->desc_supplier           = $record["desc_fourn"];
                     $prodfourn->fourn_price				= $record["price"];
                     $prodfourn->fourn_qty				= $record["quantity"];
     				$prodfourn->fourn_remise_percent	= $record["remise_percent"];
    @@ -568,6 +602,8 @@ class ProductFournisseur extends Product
                     $prodfourn->fourn_tva_npr					= $record["info_bits"];
                     $prodfourn->fk_supplier_price_expression    = $record["fk_supplier_price_expression"];
     				$prodfourn->supplier_reputation    = $record["supplier_reputation"];
    +				$prodfourn->date_creation          = $this->db->jdate($record['datec']);
    +				$prodfourn->date_modification      = $this->db->jdate($record['tms']);
     
                     $prodfourn->fourn_multicurrency_price       = $record["multicurrency_price"];
                     $prodfourn->fourn_multicurrency_unitprice   = $record["multicurrency_unitprice"];
    @@ -609,6 +645,7 @@ class ProductFournisseur extends Product
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Load properties for minimum price
          *
    @@ -619,6 +656,7 @@ class ProductFournisseur extends Product
          */
         function find_min_price_product_fournisseur($prodid, $qty=0, $socid=0)
         {
    +        // phpcs:enable
             global $conf;
     
             if (empty($prodid))
    @@ -796,6 +834,7 @@ class ProductFournisseur extends Product
             return $thirdparty->getNomUrl($withpicto,$option,$maxlen,$notooltip);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Display price of product
          *
    @@ -803,12 +842,13 @@ class ProductFournisseur extends Product
          *  @param  int     $showsuptitle     Show "Supplier" into output string
          *  @param  int     $maxlen           Max length of name
          *  @param  integer $notooltip        1=Disable tooltip
    -     *  @param  array   $productFournList  list of ProductFournisseur objects
    +     *  @param  array   $productFournList list of ProductFournisseur objects
          *                                    to display in table format.
          *  @return string                    String with supplier price
          */
         function display_price_product_fournisseur($showunitprice=1,$showsuptitle=1,$maxlen=0,$notooltip=0, $productFournList=array())
         {
    +        // phpcs:enable
             global $langs;
     
             $out = '';
    @@ -848,6 +888,4 @@ class ProductFournisseur extends Product
     
     		return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
     	}
    -
     }
    -
    diff --git a/htdocs/fourn/class/paiementfourn.class.php b/htdocs/fourn/class/paiementfourn.class.php
    index 68d9bcb07b7..ee92374149b 100644
    --- a/htdocs/fourn/class/paiementfourn.class.php
    +++ b/htdocs/fourn/class/paiementfourn.class.php
    @@ -2,10 +2,11 @@
     /* Copyright (C) 2002-2004 Rodolphe Quiedeville   <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2007 Laurent Destailleur    <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo  <marc@ocebo.com>
    - * Copyright (C) 2005-2009 Regis Houssin          <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin          <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2011 Juanjo Menent          <jmenent@2byte.es>
      * Copyright (C) 2014      Marcos García          <marcosgdf@gmail.com>
      * Copyright (C) 2018      Nicolas ZABOURI	  <info@inovea-conseil.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.francenetlogic.fr>
      *
      * 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
    @@ -35,8 +36,16 @@ require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php';
      */
     class PaiementFourn extends Paiement
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='payment_supplier';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='paiementfourn';
    +
     	public $picto = 'payment';
     
     	var $statut;        //Status of payment. 0 = unvalidated; 1 = validated
    @@ -105,6 +114,7 @@ class PaiementFourn extends Paiement
     				$this->date           = $this->db->jdate($obj->dp);
     				$this->datepaye       = $this->db->jdate($obj->dp);
     				$this->numero         = $obj->num_paiement;
    +				$this->num_paiement   = $obj->num_paiement;
     				$this->bank_account   = $obj->fk_account;
     				$this->bank_line      = $obj->fk_bank;
     				$this->montant        = $obj->amount;
    @@ -254,7 +264,6 @@ class PaiementFourn extends Paiement
     							$this->error=$this->db->lasterror();
     							$error++;
     						}
    -
     					}
     					else
     					{
    @@ -497,6 +506,7 @@ class PaiementFourn extends Paiement
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Renvoi le libelle d'un statut donne
     	 *
    @@ -506,6 +516,7 @@ class PaiementFourn extends Paiement
     	 */
     	function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$langs->load('compta');
    @@ -562,13 +573,17 @@ class PaiementFourn extends Paiement
     		global $langs;
     
     		$result='';
    +
     		$text=$this->ref;   // Sometimes ref contains label
     		if (preg_match('/^\((.*)\)$/i',$text,$reg)) {
     			// Label generique car entre parentheses. On l'affiche en le traduisant
     			if ($reg[1]=='paiement') $reg[1]='Payment';
     			$text=$langs->trans($reg[1]);
     		}
    -		$label = $langs->trans("ShowPayment").': '.$text;
    +
    +		$label = '<u>'.$langs->trans("ShowPayment").'</u><br>';
    +		$label.= '<strong>'.$langs->trans("Ref").':</strong> '.$text;
    +		$label.= '<br><strong>'.$langs->trans("Date").':</strong> '.dol_print_date($this->datepaye ? $this->datepaye : $this->date, 'dayhour');
     
     		$linkstart = '<a href="'.DOL_URL_ROOT.'/fourn/paiement/card.php?id='.$this->id.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
     		$linkend = '</a>';
    @@ -646,14 +661,12 @@ class PaiementFourn extends Paiement
     			}
     
     			// For compatibility
    -			if (! $mybool)
    -			{
    +			if ($mybool === false) {
     				$file = $conf->global->SUPPLIER_PAYMENT_ADDON.".php";
     				$classname = "mod_supplier_payment_".$conf->global->SUPPLIER_PAYMENT_ADDON;
     				$classname = preg_replace('/\-.*$/','',$classname);
     				// Include file with class
    -				foreach ($conf->file->dol_document_root as $dirroot)
    -				{
    +				foreach ($conf->file->dol_document_root as $dirroot) {
     					$dir = $dirroot."/core/modules/supplier_payment/";
     
     					// Load file with numbering class (if found)
    @@ -663,8 +676,7 @@ class PaiementFourn extends Paiement
     				}
     			}
     
    -			if (! $mybool)
    -			{
    +			if ($mybool === false) {
     				dol_print_error('',"Failed to include file ".$file);
     				return '';
     			}
    @@ -762,14 +774,16 @@ class PaiementFourn extends Paiement
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 *    	Load the third party of object, from id into this->thirdparty
    +	 *  Load the third party of object, from id into this->thirdparty
     	 *
    -	 *		@param		int		$force_thirdparty_id	Force thirdparty id
    -	 *		@return		int								<0 if KO, >0 if OK
    +	 *	@param		int		$force_thirdparty_id	Force thirdparty id
    +	 *	@return		int								<0 if KO, >0 if OK
     	 */
     	function fetch_thirdparty($force_thirdparty_id=0)
     	{
    +        // phpcs:enable
     		require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.facture.class.php';
     
     		if (empty($force_thirdparty_id))
    @@ -787,5 +801,4 @@ class PaiementFourn extends Paiement
     
     		return parent::fetch_thirdparty($force_thirdparty_id);
     	}
    -
     }
    diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php
    index 9009364d4b1..9a6e1d9ebf3 100644
    --- a/htdocs/fourn/commande/card.php
    +++ b/htdocs/fourn/commande/card.php
    @@ -2,12 +2,13 @@
     /* Copyright (C) 2004-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Eric	Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2016 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2016 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2015 Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2011-2015 Philippe Grand       <philippe.grand@atoo-net.com>
    + * Copyright (C) 2011-2018 Philippe Grand       <philippe.grand@atoo-net.com>
      * Copyright (C) 2012-2016 Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2013      Florian Henry        <florian.henry@open-concept.pro>
      * Copyright (C) 2014      Ion Agorria          <ion@agorria.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -220,7 +221,6 @@ if (empty($reshook))
     				//$newstatus=3;  // Submited
     				// TODO If there is at least one reception, we can set to Received->Received partially
     				$newstatus=4;  // Received partially
    -
     			}
     			else if ($object->statut == 6) $newstatus=2;	// Canceled->Approved
     			else if ($object->statut == 7) $newstatus=3;	// Canceled->Process running
    @@ -351,7 +351,7 @@ if (empty($reshook))
     				if ($res = $prodcomb->fetchByProductCombination2ValuePairs($idprod, $combinations)) {
     					$idprod = $res->fk_product_child;
     				} else {
    -					setEventMessage($langs->trans('ErrorProductCombinationNotFound'), 'errors');
    +					setEventMessages($langs->trans('ErrorProductCombinationNotFound'), null, 'errors');
     					$error ++;
     				}
     			}
    @@ -399,8 +399,12 @@ if (empty($reshook))
     			{
     				$label = $productsupplier->label;
     
    -				$desc = $productsupplier->description;
    -				if (trim($product_desc) != trim($desc)) $desc = dol_concatdesc($desc, $product_desc);
    +				// if we use supplier description of the products
    +				if(!empty($productsupplier->desc_supplier) && !empty($conf->global->PRODUIT_FOURN_TEXTS)) {
    +				    $desc = $productsupplier->desc_supplier;
    +				} else $desc = $productsupplier->description;
    +
    +				if (trim($product_desc) != trim($desc)) $desc = dol_concatdesc($desc, $product_desc, '', !empty($conf->global->CHANGE_ORDER_CONCAT_DESCRIPTION));
     
     				$type = $productsupplier->type;
     				$price_base_type = ($productsupplier->fourn_price_base_type?$productsupplier->fourn_price_base_type:'HT');
    @@ -695,7 +699,6 @@ if (empty($reshook))
     			dol_print_error($db,$object->error);
     			exit;
     			}
    -
     	}
     
     	// Remove a product line
    @@ -1438,7 +1441,6 @@ if ($action=='create')
     
     		// Object source contacts list
     		$srccontactslist = $objectsrc->liste_contact(- 1, 'external', 1);
    -
     	}
     	else
     	{
    @@ -1538,7 +1540,7 @@ if ($action=='create')
     	print '<td>';
     	$usehourmin=0;
     	if (! empty($conf->global->SUPPLIER_ORDER_USE_HOUR_FOR_DELIVERY_DATE)) $usehourmin=1;
    -	$form->select_date($datelivraison?$datelivraison:-1,'liv_',$usehourmin,$usehourmin,'',"set");
    +	print $form->selectDate($datelivraison?$datelivraison:-1, 'liv_', $usehourmin, $usehourmin, '', "set");
     	print '</td></tr>';
     
     	// Bank Account
    @@ -1577,7 +1579,7 @@ if ($action=='create')
     	if (! empty($conf->multicurrency->enabled))
     	{
     		print '<tr>';
    -		print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
    +		print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>';
     		print '<td colspan="3" class="maxwidthonsmartphone">';
     		print $form->selectMultiCurrency($currency_code, 'multicurrency_code');
     		print '</td></tr>';
    @@ -1695,7 +1697,6 @@ elseif (! empty($object->id))
     	if ($action	== 'delete')
     	{
     		$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteOrder'), $langs->trans('ConfirmDeleteOrder'), 'confirm_delete', '', 0, 2);
    -
     	}
     
     	// Clone confirmation
    @@ -1707,7 +1708,6 @@ elseif (! empty($object->id))
     		);
     		// Paiement incomplet. On demande si motif = escompte ou autre
     		$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id,$langs->trans('CloneOrder'),$langs->trans('ConfirmCloneOrder',$object->ref),'confirm_clone',$formquestion,'yes',1);
    -
     	}
     
     	// Confirmation de la validation
    @@ -1786,14 +1786,12 @@ elseif (! empty($object->id))
     	if ($action	== 'refuse')
     	{
     		$formconfirm = $form->formconfirm($_SERVER['PHP_SELF']."?id=$object->id",$langs->trans("DenyingThisOrder"),$langs->trans("ConfirmDenyingThisOrder",$object->ref),"confirm_refuse", '', 0, 1);
    -
     	}
     
     	// Confirmation de l'annulation
     	if ($action	== 'cancel')
     	{
     		$formconfirm = $form->formconfirm($_SERVER['PHP_SELF']."?id=$object->id",$langs->trans("Cancel"),$langs->trans("ConfirmCancelThisOrder",$object->ref),"confirm_cancel", '', 0, 1);
    -
     	}
     
     	// Confirmation de l'envoi de la commande
    @@ -1801,7 +1799,6 @@ elseif (! empty($object->id))
     	{
     		$date_com = dol_mktime(GETPOST('rehour'),GETPOST('remin'),GETPOST('resec'),GETPOST("remonth"),GETPOST("reday"),GETPOST("reyear"));
     		$formconfirm = $form->formconfirm($_SERVER['PHP_SELF']."?id=".$object->id."&datecommande=".$date_com."&methode=".$_POST["methodecommande"]."&comment=".urlencode($_POST["comment"]), $langs->trans("MakeOrder"),$langs->trans("ConfirmMakeOrder",dol_print_date($date_com,'day')),"confirm_commande",'',0,2);
    -
     	}
     
     	// Confirmation to delete line
    @@ -1875,7 +1872,7 @@ elseif (! empty($object->id))
     	print '<div class="fichehalfleft">';
     	print '<div class="underbanner clearboth"></div>';
     
    -	print '<table class="border" width="100%">';
    +	print '<table class="border tableforfield" width="100%">';
     
     	// Date
     	if ($object->methode_commande_id > 0)
    @@ -1952,7 +1949,7 @@ elseif (! empty($object->id))
     	print '</td><td>';
     	if ($action == 'editmode')
     	{
    -		$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->mode_reglement_id,'mode_reglement_id');
    +		$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id,$object->mode_reglement_id,'mode_reglement_id','DBIT', 1, 1);
     	}
     	else
     	{
    @@ -1967,7 +1964,7 @@ elseif (! empty($object->id))
     		print '<tr>';
     		print '<td>';
     		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print fieldLabel('Currency','multicurrency_code');
    +		print $form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0);
     		print '</td>';
     		if ($action != 'editmulticurrencycode' && ! empty($object->brouillon))
     			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencycode&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
    @@ -1984,7 +1981,7 @@ elseif (! empty($object->id))
     		print '<tr>';
     		print '<td>';
     		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print fieldLabel('CurrencyRate','multicurrency_tx');
    +		print $form->editfieldkey('CurrencyRate', 'multicurrency_tx', '', $object, 0);
     		print '</td>';
     		if ($action != 'editmulticurrencyrate' && ! empty($object->brouillon) && $object->multicurrency_code && $object->multicurrency_code != $conf->currency)
     			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencyrate&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
    @@ -2041,7 +2038,7 @@ elseif (! empty($object->id))
     		print '<input type="hidden" name="action" value="setdate_livraison">';
     		$usehourmin=0;
     		if (! empty($conf->global->SUPPLIER_ORDER_USE_HOUR_FOR_DELIVERY_DATE)) $usehourmin=1;
    -		$form->select_date($object->date_livraison?$object->date_livraison:-1,'liv_',$usehourmin,$usehourmin,'',"setdate_livraison");
    +		print $form->selectDate($object->date_livraison?$object->date_livraison:-1, 'liv_', $usehourmin, $usehourmin, '', "setdate_livraison");
     		print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
     		print '</form>';
     	}
    @@ -2095,22 +2092,22 @@ elseif (! empty($object->id))
     	print '<div class="ficheaddleft">';
     	print '<div class="underbanner clearboth"></div>';
     
    -	print '<table class="border centpercent">';
    +	print '<table class="border tableforfield centpercent">';
     
     	if (!empty($conf->multicurrency->enabled))
     	{
     		// Multicurrency Amount HT
    -		print '<tr><td class="titlefieldmiddle">' . fieldLabel('MulticurrencyAmountHT','multicurrency_total_ht') . '</td>';
    +		print '<tr><td class="titlefieldmiddle">' . $form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0) . '</td>';
     		print '<td class="nowrap">' . price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     
     		// Multicurrency Amount VAT
    -		print '<tr><td>' . fieldLabel('MulticurrencyAmountVAT','multicurrency_total_tva') . '</td>';
    +		print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0) . '</td>';
     		print '<td class="nowrap">' . price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     
     		// Multicurrency Amount TTC
    -		print '<tr><td>' . fieldLabel('MulticurrencyAmountTTC','multicurrency_total_ttc') . '</td>';
    +		print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0) . '</td>';
     		print '<td class="nowrap">' . price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     	}
    @@ -2278,7 +2275,7 @@ elseif (! empty($object->id))
     					{
     						if (! empty($conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED) && $conf->global->MAIN_FEATURES_LEVEL > 0 && $object->total_ht >= $conf->global->SUPPLIER_ORDER_3_STEPS_TO_BE_APPROVED && ! empty($object->user_approve_id))
     						{
    -							print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("FirstApprovalAlreadyDone")).'">'.$langs->trans("ApproveOrder").'</a>';
    +							print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("FirstApprovalAlreadyDone")).'">'.$langs->trans("ApproveOrder").'</a>';
     						}
     						else
     						{
    @@ -2287,7 +2284,7 @@ elseif (! empty($object->id))
     					}
     					else
     					{
    -						print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans("ApproveOrder").'</a>';
    +						print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans("ApproveOrder").'</a>';
     					}
     				}
     
    @@ -2300,7 +2297,7 @@ elseif (! empty($object->id))
     						{
     							if (! empty($object->user_approve_id2))
     							{
    -								print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("SecondApprovalAlreadyDone")).'">'.$langs->trans("Approve2Order").'</a>';
    +								print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("SecondApprovalAlreadyDone")).'">'.$langs->trans("Approve2Order").'</a>';
     							}
     							else
     							{
    @@ -2309,7 +2306,7 @@ elseif (! empty($object->id))
     						}
     						else
     						{
    -							print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans("Approve2Order").'</a>';
    +							print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans("Approve2Order").'</a>';
     						}
     					}
     				}
    @@ -2323,7 +2320,7 @@ elseif (! empty($object->id))
     					}
     					else
     					{
    -						print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans("RefuseOrder").'</a>';
    +						print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans("RefuseOrder").'</a>';
     					}
     				}
     
    @@ -2367,13 +2364,14 @@ elseif (! empty($object->id))
     				}
     
     				// Ship
    -				if (! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER))
    +
    +				if (! empty($conf->stock->enabled) && (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)))
     				{
     					if (in_array($object->statut, array(3,4,5))) {
     						if ($conf->fournisseur->enabled && $user->rights->fournisseur->commande->receptionner) {
     							print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/fourn/commande/dispatch.php?id=' . $object->id . '">' . $langs->trans('ReceiveProducts') . '</a></div>';
     						} else {
    -							print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('ReceiveProducts') . '</a></div>';
    +							print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('ReceiveProducts') . '</a></div>';
     						}
     					}
     				}
    @@ -2386,7 +2384,7 @@ elseif (! empty($object->id))
     					}
     					else
     					{
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">'.$langs->trans("MakeOrder").'</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("MakeOrder").'</a></div>';
     					}
     				}
     
    @@ -2444,7 +2442,6 @@ elseif (! empty($object->id))
     				{
     					print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delete">'.$langs->trans("Delete").'</a>';
     				}
    -
     			}
     
     			print "</div>";
    @@ -2465,7 +2462,7 @@ elseif (! empty($object->id))
     			print '<tr><td>'.$langs->trans("OrderDate").'</td><td>';
     			$date_com = dol_mktime(GETPOST('rehour','int'), GETPOST('remin','int'), GETPOST('resec','int'), GETPOST('remonth','int'), GETPOST('reday','int'), GETPOST('reyear','int'));
     			if (empty($date_com)) $date_com=dol_now();
    -			print $form->select_date($date_com,'',1,1,'',"commande",1,1,1);
    +			print $form->selectDate($date_com, '', 1, 1, '', "commande", 1, 1);
     			print '</td></tr>';
     
     			print '<tr><td>'.$langs->trans("OrderMode").'</td><td>';
    @@ -2521,7 +2518,7 @@ elseif (! empty($object->id))
     				//print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Receive").'</td></tr>';
     				print '<tr><td>'.$langs->trans("DeliveryDate").'</td><td>';
     				$datepreselected = dol_now();
    -				print $form->select_date($datepreselected,'',1,1,'',"commande",1,1,1);
    +				print $form->selectDate($datepreselected, '', 1, 1, '', "commande", 1, 1);
     				print "</td></tr>\n";
     
     				print "<tr><td class=\"fieldrequired\">".$langs->trans("Delivery")."</td><td>\n";
    @@ -2719,7 +2716,6 @@ elseif (! empty($object->id))
     							}
     						}
     					}
    -
     				}
     				elseif ($user_status_code == "PERMISSION_DENIED")
     				{
    @@ -2777,5 +2773,4 @@ elseif (! empty($object->id))
     
     // End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/commande/contact.php b/htdocs/fourn/commande/contact.php
    index 262d73a6082..08e30d04b7f 100644
    --- a/htdocs/fourn/commande/contact.php
    +++ b/htdocs/fourn/commande/contact.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Patrick Rouillon     <patrick@rouillon.net>
      * Copyright (C) 2005-2009 Destailleur Laurent  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -33,10 +33,8 @@ if (! empty($conf->projet->enabled)) {
     	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     }
     
    -$langs->load("facture");
    -$langs->load("orders");
    -$langs->load("sendings");
    -$langs->load("companies");
    +// Load translation files required by the page
    +$langs->loadLangs(array("facture","orders","sendings","companies"));
     
     $id		= GETPOST('id', 'int');
     $ref	= GETPOST('ref', 'alpha');
    @@ -194,7 +192,6 @@ if ($id > 0 || ! empty($ref))
     
     		// Contacts lines
     		include DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php';
    -
     	}
     	else
     	{
    @@ -203,6 +200,6 @@ if ($id > 0 || ! empty($ref))
     	}
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php
    index 761cce030f7..931942debb7 100644
    --- a/htdocs/fourn/commande/dispatch.php
    +++ b/htdocs/fourn/commande/dispatch.php
    @@ -2,11 +2,12 @@
     /* Copyright (C) 2004-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2014      Cedric Gross         <c.gross@kreiz-it.fr>
    - * Copyright (C) 2016      Florian Henry         <florian.henry@atm-consulting.fr>
    + * Copyright (C) 2016      Florian Henry        <florian.henry@atm-consulting.fr>
      * Copyright (C) 2017      Ferran Marcet        <fmarcet@2byte.es>
    + * Copyright (C) 2018      Frédéric France      <frederic.france@netlogic.fr>
      *
      * 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
    @@ -39,13 +40,9 @@ require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php';
     if (! empty($conf->projet->enabled))
     	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     
    -$langs->load('orders');
    -$langs->load('sendings');
    -$langs->load('companies');
    -$langs->load('bills');
    -$langs->load('deliveries');
    -$langs->load('products');
    -$langs->load('stocks');
    +// Load translation files required by the page
    +$langs->loadLangs(array("bills", "orders", "sendings", "companies", "deliveries", "products", "stocks","receptions"));
    +
     if (! empty($conf->productbatch->enabled))
     	$langs->load('productbatch');
     
    @@ -462,9 +459,12 @@ if ($id > 0 || ! empty($ref)) {
     		$entrepot = new Entrepot($db);
     		$listwarehouses = $entrepot->list_array(1);
     
    -		print '<form method="POST" action="dispatch.php?id=' . $object->id . '">';
    +		if(empty($conf->reception->enabled))print '<form method="POST" action="dispatch.php?id=' . $object->id . '">';
    +        else print  '<form method="post" action="'.dol_buildpath('/reception/card.php',1).'?originid='.$object->id.'&origin=supplierorder">';
    +		
     		print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    -		print '<input type="hidden" name="action" value="dispatch">';
    +		if(empty($conf->reception->enabled))print '<input type="hidden" name="action" value="dispatch">';
    +		else print '<input type="hidden" name="action" value="create">';
     
     		print '<div class="div-table-responsive-no-min">';
     		print '<table class="noborder" width="100%">';
    @@ -492,7 +492,7 @@ if ($id > 0 || ! empty($ref)) {
     			$db->free($resql);
     		}
     
    -		$sql = "SELECT l.rowid, l.fk_product, l.subprice, l.remise_percent, SUM(l.qty) as qty,";
    +		$sql = "SELECT l.rowid, l.fk_product, l.subprice, l.remise_percent, l.ref AS sref, SUM(l.qty) as qty,";
     		$sql .= " p.ref, p.label, p.tobatch, p.fk_default_warehouse";
     		$sql .= " FROM " . MAIN_DB_PREFIX . "commande_fournisseurdet as l";
     		$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON l.fk_product=p.rowid";
    @@ -511,7 +511,7 @@ if ($id > 0 || ! empty($ref)) {
     				print '<tr class="liste_titre">';
     
     				print '<td>' . $langs->trans("Description") . '</td>';
    -				if (!empty($conf->productbatch->enabled))
    +				if (! empty($conf->productbatch->enabled))
     				{
     					print '<td class="dispatch_batch_number_title">'.$langs->trans("batch_number").'</td>';
     					print '<td class="dispatch_dluo_title">'.$langs->trans("EatByDate").'</td>';
    @@ -521,8 +521,9 @@ if ($id > 0 || ! empty($ref)) {
     				{
     					print '<td></td>';
     					print '<td></td>';
    -					print '<td></td>';					
    +					print '<td></td>';
     				}
    +				print '<td align="right">' . $langs->trans("SupplierRef") . '</td>';
     				print '<td align="right">' . $langs->trans("QtyOrdered") . '</td>';
     				print '<td align="right">' . $langs->trans("QtyDispatchedShort") . '</td>';
     				print '<td align="right">' . $langs->trans("QtyToDispatchShort") . '</td>';
    @@ -535,7 +536,6 @@ if ($id > 0 || ! empty($ref)) {
     			$nbproduct = 0;			// Nb of predefined product lines to dispatch (already done or not) if SUPPLIER_ORDER_DISABLE_STOCK_DISPATCH_WHEN_TOTAL_REACHED is off (default)
     									// or nb of line that remain to dispatch if SUPPLIER_ORDER_DISABLE_STOCK_DISPATCH_WHEN_TOTAL_REACHED is on.
     
    -			$var = false;
     			while ( $i < $num ) {
     				$objp = $db->fetch_object($resql);
     
    @@ -594,6 +594,9 @@ if ($id > 0 || ! empty($ref)) {
     						if (! empty($objp->remise_percent) && empty($conf->global->STOCK_EXCLUDE_DISCOUNT_FOR_PMP))
     							$up_ht_disc = price2num($up_ht_disc * (100 - $objp->remise_percent) / 100, 'MU');
     
    +						// Supplier ref
    +						print '<td align="right">'.$objp->sref.'</td>';
    +
     						// Qty ordered
     						print '<td align="right">' . $objp->qty . '</td>';
     
    @@ -632,15 +635,15 @@ if ($id > 0 || ! empty($ref)) {
     							print '</td>';
     							print '<td class="nowraponall">';
     							$dlcdatesuffix = dol_mktime(0, 0, 0, GETPOST('dlc' . $suffix . 'month'), GETPOST('dlc' . $suffix . 'day'), GETPOST('dlc' . $suffix . 'year'));
    -							$form->select_date($dlcdatesuffix, 'dlc' . $suffix, '', '', 1, "");
    +							print $form->selectDate($dlcdatesuffix, 'dlc' . $suffix, '', '', 1, '');
     							print '</td>';
     							print '<td class="nowraponall">';
     							$dluodatesuffix = dol_mktime(0, 0, 0, GETPOST('dluo' . $suffix . 'month'), GETPOST('dluo' . $suffix . 'day'), GETPOST('dluo' . $suffix . 'year'));
    -							$form->select_date($dluodatesuffix, 'dluo' . $suffix, '', '', 1, "");
    +							print $form->selectDate($dluodatesuffix, 'dluo' . $suffix, '', '', 1, '');
     							print '</td>';
    -							print '<td colspan="2">&nbsp</td>'; // Qty ordered + qty already dispatached
    +							print '<td colspan="3">&nbsp</td>'; // Supplier ref + Qty ordered + qty already dispatched
     						} else {
    -							
    +
     							$type = 'dispatch';
     							print '<td align="right">';
     							print '</td>';     // Qty to dispatch
    @@ -651,7 +654,7 @@ if ($id > 0 || ! empty($ref)) {
     							print '</tr>';
     
     							print '<tr class="oddeven" name="' . $type . $suffix . '">';
    -							print '<td colspan="6">';
    +							print '<td colspan="7">';
     							print '<input name="fk_commandefourndet' . $suffix . '" type="hidden" value="' . $objp->rowid . '">';
     							print '<input name="product' . $suffix . '" type="hidden" value="' . $objp->fk_product . '">';
     
    @@ -673,7 +676,7 @@ if ($id > 0 || ! empty($ref)) {
     						print '<input id="qty' . $suffix . '" name="qty' . $suffix . '" type="text" class="width50 right" value="' . (GETPOST('qty' . $suffix) != '' ? GETPOST('qty' . $suffix) : $remaintodispatch) . '">';
     						print '</td>';
     
    -                        print '<td>';
    +						print '<td>';
     						if (! empty($conf->productbatch->enabled) && $objp->tobatch == 1) {
     						    $type = 'batch';
     						    //print img_picto($langs->trans('AddDispatchBatchLine'), 'split.png', 'class="splitbutton" onClick="addDispatchLine(' . $i . ',\'' . $type . '\')"');
    @@ -723,6 +726,7 @@ if ($id > 0 || ! empty($ref)) {
     			// modified by hook
     			if (empty($reshook))
     			{
    +				if(empty($conf->reception->enabled)){
     				print $langs->trans("Comment").' : ';
     				print '<input type="text" class="minwidth400" maxlength="128" name="comment" value="';
     				print $_POST["comment"] ? GETPOST("comment") : $langs->trans("DispatchSupplierOrder", $object->ref);
    @@ -730,8 +734,10 @@ if ($id > 0 || ! empty($ref)) {
     				print '" class="flat"><br>';
     
     				print '<input type="checkbox" checked="checked" name="closeopenorder"> '.$checkboxlabel;
    +			}
    +			empty($conf->reception->enabled)?$dispatchBt=$langs->trans("DispatchVerb"):$dispatchBt=$langs->trans("Receive");
     
    -				print '<br><input type="submit" class="button" value="'.$langs->trans("DispatchVerb").'"';
    +			print '<br><input type="submit" class="button" value="' . $dispatchBt. '"';
     				if (count($listwarehouses) <= 0)
     					print ' disabled';
     				print '>';
    @@ -757,9 +763,11 @@ if ($id > 0 || ! empty($ref)) {
     	$sql = "SELECT p.ref, p.label,";
     	$sql .= " e.rowid as warehouse_id, e.ref as entrepot,";
     	$sql .= " cfd.rowid as dispatchlineid, cfd.fk_product, cfd.qty, cfd.eatby, cfd.sellby, cfd.batch, cfd.comment, cfd.status, cfd.datec";
    +	if($conf->reception->enabled)$sql.=" ,cfd.fk_reception, r.date_delivery";
     	$sql .= " FROM " . MAIN_DB_PREFIX . "product as p,";
     	$sql .= " " . MAIN_DB_PREFIX . "commande_fournisseur_dispatch as cfd";
     	$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "entrepot as e ON cfd.fk_entrepot = e.rowid";
    +	if($conf->reception->enabled)$sql.=" LEFT JOIN " . MAIN_DB_PREFIX . "reception as r ON cfd.fk_reception = r.rowid";
     	$sql .= " WHERE cfd.fk_commande = " . $object->id;
     	$sql .= " AND cfd.fk_product = p.rowid";
     	$sql .= " ORDER BY cfd.rowid ASC";
    @@ -778,7 +786,11 @@ if ($id > 0 || ! empty($ref)) {
     			print '<table id="dispatch_received_products" class="noborder" width="100%">';
     
     			print '<tr class="liste_titre">';
    +			if($conf->reception->enabled)print '<td>' . $langs->trans("Reception") . '</td>';
    +			
     			print '<td>' . $langs->trans("Product") . '</td>';
    +			print '<td>' . $langs->trans("DateCreation") . '</td>';
    +			print '<td>' . $langs->trans("DateDeliveryPlanned") . '</td>';
     			if (! empty($conf->productbatch->enabled)) {
     				print '<td class="dispatch_batch_number_title">' . $langs->trans("batch_number") . '</td>';
     				print '<td class="dispatch_dluo_title">' . $langs->trans("EatByDate") . '</td>';
    @@ -788,21 +800,34 @@ if ($id > 0 || ! empty($ref)) {
     			print '<td></td>';
     			print '<td>' . $langs->trans("Warehouse") . '</td>';
     			print '<td>' . $langs->trans("Comment") . '</td>';
    -			if (! empty($conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS))
    +			if (! empty($conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS) || !empty($conf->reception->enabled))
     				print '<td align="center" colspan="2">' . $langs->trans("Status") . '</td>';
    -			print '<td>' . $langs->trans("Date") . '</td>';
    -			print "</tr>\n";
     
    -			$var = false;
    +			print "</tr>\n";
     
     			while ( $i < $num ) {
     				$objp = $db->fetch_object($resql);
     
     				print "<tr " . $bc[$var] . ">";
    +				
    +				if(!empty($conf->reception->enabled) ){
    +					print '<td>';
    +					if (!empty($objp->fk_reception)){
    +						
    +						$reception = new Reception($db);
    +						$reception->fetch($objp->fk_reception);
    +						print $reception->getNomUrl(1);
    +					}
    +				
    +					print "</td>";
    +				}
    +				
     				print '<td>';
     				print '<a href="' . DOL_URL_ROOT . '/product/fournisseurs.php?id=' . $objp->fk_product . '">' . img_object($langs->trans("ShowProduct"), 'product') . ' ' . $objp->ref . '</a>';
     				print ' - ' . $objp->label;
     				print "</td>\n";
    +				print '<td>'.dol_print_date($db->jdate($objp->datec),'day').'</td>';
    +				print '<td>'.dol_print_date($db->jdate($objp->date_delivery),'day').'</td>';
     
     				if (! empty($conf->productbatch->enabled)) {
     					print '<td class="dispatch_batch_number">' . $objp->batch . '</td>';
    @@ -822,10 +847,10 @@ if ($id > 0 || ! empty($ref)) {
     				print '</td>';
     
     				// Comment
    -				print '<td class="tdoverflowmax300">' . $objp->comment . '</td>';
    +				print '<td class="tdoverflowmax300" style="white-space: pre;">' . $objp->comment . '</td>';
     
     				// Status
    -				if (! empty($conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS)) {
    +				if (! empty($conf->global->SUPPLIER_ORDER_USE_DISPATCH_STATUS) && empty($reception->rowid)) {
     					print '<td align="right">';
     					$supplierorderdispatch->status = (empty($objp->status) ? 0 : $objp->status);
     					// print $supplierorderdispatch->status;
    @@ -861,14 +886,21 @@ if ($id > 0 || ! empty($ref)) {
     						}
     					}
     					print '</td>';
    +				}else if(!empty($conf->reception->enabled)){
    +					print '<td align="right">';
    +					if(!empty($reception->id)){
    +						print $reception->getLibStatut(5);
    +					}
     				}
    -				// date
    -				print '<td>' . dol_print_date($objp->datec, "dayhour") . '</td>';
    +					print '</td>';
    +					print '<td align="center">';
    +					print '</td>';
    +				
    +
     
     				print "</tr>\n";
     
     				$i ++;
    -				$var = ! $var;
     			}
     			$db->free($resql);
     
    @@ -880,6 +912,6 @@ if ($id > 0 || ! empty($ref)) {
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/commande/document.php b/htdocs/fourn/commande/document.php
    index 59358279e31..2c460d1bedc 100644
    --- a/htdocs/fourn/commande/document.php
    +++ b/htdocs/fourn/commande/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Marcos García         <marcosgdf@gmail.com>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
    @@ -38,14 +38,8 @@ if (! empty($conf->projet->enabled)) {
     	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     }
     
    -$langs->load('orders');
    -$langs->load('other');
    -$langs->load('sendings');
    -$langs->load('companies');
    -$langs->load('bills');
    -$langs->load('deliveries');
    -$langs->load('products');
    -$langs->load('stocks');
    +// Load translation files required by the page
    +$langs->loadLangs(array("bills", "orders", "sendings", "companies", "deliveries", "products", "stocks","other"));
     
     $id = GETPOST('id','int');
     $ref = GETPOST('ref', 'alpha');
    @@ -107,7 +101,7 @@ if ($object->id > 0)
     	dol_fiche_head($head, 'documents', $langs->trans('SupplierOrder'), -1, 'order');
     
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -181,7 +175,6 @@ if ($object->id > 0)
     	$permtoedit = $user->rights->fournisseur->commande->creer;
     	$param = '&id=' . $object->id;
     	include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
    -
     }
     else
     {
    @@ -189,6 +182,6 @@ else
     	exit;
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/fourn/commande/index.php b/htdocs/fourn/commande/index.php
    index 4eead48abf4..1bdc9a07b48 100644
    --- a/htdocs/fourn/commande/index.php
    +++ b/htdocs/fourn/commande/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2006	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Vinicius Nogueira		<viniciusvgn@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -34,8 +34,8 @@ $orderid = GETPOST('orderid');
     if ($user->societe_id) $socid=$user->societe_id;
     $result = restrictedArea($user, 'fournisseur', $orderid, '', 'commande');
     
    -$langs->load("suppliers");
    -$langs->load("orders");
    +// Load translation files required by the page
    +$langs->loadLangs(array("suppliers", "orders"));
     
     
     /*
    @@ -432,6 +432,6 @@ print "</table><br>";
     
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/commande/info.php b/htdocs/fourn/commande/info.php
    index 016e9007fb9..feab3fcb1bc 100644
    --- a/htdocs/fourn/commande/info.php
    +++ b/htdocs/fourn/commande/info.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -33,10 +33,8 @@ if (! empty($conf->projet->enabled)) {
     	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     }
     
    -$langs->load("orders");
    -$langs->load("suppliers");
    -$langs->load("companies");
    -$langs->load('stocks');
    +// Load translation files required by the page
    +$langs->loadLangs(array("suppliers", "orders", "companies", "stocks"));
     
     $id=GETPOST('id','int');
     $ref=GETPOST('ref','alpha');
    @@ -189,7 +187,7 @@ if (! empty($conf->agenda->enabled))
         }
         else
         {
    -        print '<a class="butActionRefused" href="#">'.$langs->trans("AddAction").'</a>';
    +        print '<a class="butActionRefused classfortooltip" href="#">'.$langs->trans("AddAction").'</a>';
         }
     }
     
    @@ -221,7 +219,6 @@ if (!empty($object->id))
         show_actions_done($conf,$langs,$db,$object,null,0,$actioncode, '', $filters);
     }
     
    -
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php
    index f018b9574d1..4aa18b6d40e 100644
    --- a/htdocs/fourn/commande/list.php
    +++ b/htdocs/fourn/commande/list.php
    @@ -1,11 +1,13 @@
     <?php
     /* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Cédric Salvador      <csalvador@gpcsolutions.fr>
      * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2014      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2016      Ferran Marcet        <fmarcet@2byte.es>
    + * Copyright (C) 2018      Frédéric France      <frederic.france@netlogic.fr>
    + * Copyright (C) 2018      Charlene Benke       <charlie@patas-monkey.com>
      *
      * 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
    @@ -24,7 +26,7 @@
     /**
      *   \file       htdocs/fourn/commande/list.php
      *   \ingroup    fournisseur
    - *   \brief      List of vendor orders
    + *   \brief      List of purchase orders
      */
     
     require '../../main.inc.php';
    @@ -55,7 +57,8 @@ $search_deliveryyear=GETPOST("search_deliveryyear","int");
     $search_deliverymonth=GETPOST("search_deliverymonth","int");
     $search_deliveryday=GETPOST("search_deliveryday","int");
     
    -$sall=GETPOST('search_all', 'alphanohtml');
    +$sall=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml'));
    +
     $search_product_category=GETPOST('search_product_category','int');
     $search_ref=GETPOST('search_ref');
     $search_refsupp=GETPOST('search_refsupp');
    @@ -112,7 +115,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('commande_fournisseur');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -262,7 +265,6 @@ if (empty($reshook))
     				$res = $object->create($user);
     
     				if($res > 0) $nb_bills_created++;
    -
     			}
     
     			if ($object->id > 0)
    @@ -427,7 +429,7 @@ if (empty($reshook))
     		if (! $error)
     		{
     			$db->commit();
    -			setEventMessage($langs->trans('BillCreated', $nb_bills_created));
    +			setEventMessages($langs->trans('BillCreated', $nb_bills_created), null, 'mesgs');
     		}
     		else
     		{
    @@ -473,7 +475,7 @@ if ($search_billed > 0) $title.=' - '.$langs->trans("Billed");
     
     //$help_url="EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes";
     $help_url='';
    -llxHeader('',$title,$help_url);
    +// llxHeader('',$title,$help_url);
     
     $sql = 'SELECT';
     if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
    @@ -518,42 +520,13 @@ if ($search_company) $sql .= natural_search('s.nom', $search_company);
     if ($search_request_author) $sql.=natural_search(array('u.lastname','u.firstname','u.login'), $search_request_author) ;
     if ($search_billed != '' && $search_billed >= 0) $sql .= " AND cf.billed = ".$db->escape($search_billed);
     if ($search_product_category > 0) $sql.= " AND cp.fk_categorie = ".$search_product_category;
    -
     //Required triple check because statut=0 means draft filter
     if (GETPOST('statut', 'intcomma') !== '')
    -{
     	$sql .= " AND cf.fk_statut IN (".$db->escape($db->escape(GETPOST('statut', 'intcomma'))).")";
    -}
     if ($search_status != '' && $search_status >= 0)
    -{
     	$sql.=" AND cf.fk_statut IN (".$db->escape($search_status).")";
    -}
    -if ($search_ordermonth > 0)
    -{
    -	if ($search_orderyear > 0 && empty($search_orderday))
    -		$sql.= " AND cf.date_commande BETWEEN '".$db->idate(dol_get_first_day($search_orderyear,$search_ordermonth,false))."' AND '".$db->idate(dol_get_last_day($search_orderyear,$search_ordermonth,false))."'";
    -	else if ($search_orderyear > 0 && ! empty($search_orderday))
    -		$sql.= " AND cf.date_commande BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $search_ordermonth, $search_orderday, $search_orderyear))."' AND '".$db->idate(dol_mktime(23, 59, 59, $search_ordermonth, $search_orderday, $search_orderyear))."'";
    -	else
    -		$sql.= " AND date_format(cf.date_commande, '%m') = '".$db->escape($search_ordermonth)."'";
    -}
    -else if ($search_orderyear > 0)
    -{
    -	$sql.= " AND cf.date_commande BETWEEN '".$db->idate(dol_get_first_day($search_orderyear,1,false))."' AND '".$db->idate(dol_get_last_day($search_orderyear,12,false))."'";
    -}
    -if ($search_deliverymonth > 0)
    -{
    -	if ($search_deliveryyear > 0 && empty($search_deliveryday))
    -		$sql.= " AND cf.date_livraison BETWEEN '".$db->idate(dol_get_first_day($search_deliveryyear,$search_deliverymonth,false))."' AND '".$db->idate(dol_get_last_day($search_deliveryyear,$search_deliverymonth,false))."'";
    -	else if ($search_deliveryyear > 0 && ! empty($search_deliveryday))
    -		$sql.= " AND cf.date_livraison BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $search_eliverymonth, $search_deliveryday, $search_deliveryyear))."' AND '".$db->idate(dol_mktime(23, 59, 59, $search_deliverymonth, $search_deliveryday, $search_deliveryyear))."'";
    -	else
    -		$sql.= " AND date_format(cf.date_livraison, '%m') = '".$db->escape($search_deliverymonth)."'";
    -}
    -else if ($search_deliveryyear > 0)
    -{
    -	$sql.= " AND cf.date_livraison BETWEEN '".$db->idate(dol_get_first_day($search_deliveryyear,1,false))."' AND '".$db->idate(dol_get_last_day($search_deliveryyear,12,false))."'";
    -}
    +$sql.= dolSqlDateFilter("cf.date_commande",	$search_orderday, $search_ordermonth, $search_orderyear);
    +$sql.= dolSqlDateFilter("cf.date_livraison", $search_deliveryday, $search_deliverymonth, $search_deliveryyear);
     if ($search_town)  $sql.= natural_search('s.town', $search_town);
     if ($search_zip)   $sql.= natural_search("s.zip",$search_zip);
     if ($search_state) $sql.= natural_search("state.nom",$search_state);
    @@ -607,6 +580,16 @@ if ($resql)
     
     	$arrayofselected=is_array($toselect)?$toselect:array();
     
    +	if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall)
    +	{
    +		$obj = $db->fetch_object($resql);
    +		$id = $obj->rowid;
    +		header("Location: ".DOL_URL_ROOT.'/fourn/commande/card.php?id='.$id);
    +		exit;
    +	}
    +
    +	llxHeader('',$title,$help_url);
    +
     	$param='';
     	if ($socid > 0)             $param.='&socid='.$socid;
     	if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    @@ -636,6 +619,7 @@ if ($resql)
     
     	// List of mass actions available
     	$arrayofmassactions =  array(
    +		'generate_doc'=>$langs->trans("Generate"),
     		'presend'=>$langs->trans("SendByMail"),
     		'builddoc'=>$langs->trans("PDFMerge"),
     	);
    @@ -682,7 +666,7 @@ if ($resql)
     		print $langs->trans('DateInvoice');
     		print '</td>';
     		print '<td>';
    -		print $form->select_date('', '', '', '', '', '', 1, 1);
    +		print $form->selectDate('', '', '', '', '', '', 1, 1);
     		print '</td>';
     		print '</tr>';
     		print '<tr>';
    @@ -1128,7 +1112,7 @@ if ($resql)
     		// Status
     		if (! empty($arrayfields['cf.fk_statut']['checked']))
     		{
    -			print '<td align="right" class="nowrap">'.$objectstatic->LibStatut($obj->fk_statut, 5, $obj->billed, 1).'</td>';
    +			print '<td align="right" class="nowrap">'.$objectstatic->LibStatut($obj->fk_statut, 5, $obj->billed).'</td>';
     			if (! $i) $totalarray['nbfield']++;
     		}
     		// Billed
    @@ -1163,8 +1147,8 @@ if ($resql)
     			$i++;
     			if ($i == 1)
     			{
    -				if ($num < $limit) print '<td align="left">'.$langs->trans("Total").'</td>';
    -				else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +				if ($num < $limit) print '<td class="left">'.$langs->trans("Total").'</td>';
    +				else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     			}
     			elseif ($totalarray['totalhtfield'] == $i) print '<td align="right">'.price($totalarray['totalht']).'</td>';
     			elseif ($totalarray['totalvatfield'] == $i) print '<td align="right">'.price($totalarray['totalvat']).'</td>';
    @@ -1198,6 +1182,6 @@ else
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/fourn/commande/note.php b/htdocs/fourn/commande/note.php
    index 44edbdc8f00..071f87553f2 100644
    --- a/htdocs/fourn/commande/note.php
    +++ b/htdocs/fourn/commande/note.php
    @@ -1,9 +1,9 @@
     <?php
     /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Marcos García        <marcosgdf@gmail.com>
    - * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
    + * Copyright (C) 2017      Ferran Marcet       	<fmarcet@2byte.es>
      *
      * 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
    @@ -32,10 +32,8 @@ if (! empty($conf->projet->enabled)) {
     	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     }
     
    -$langs->load("orders");
    -$langs->load("suppliers");
    -$langs->load("companies");
    -$langs->load('stocks');
    +// Load translation files required by the page
    +$langs->loadLangs(array("suppliers", "orders", "companies", "stocks"));
     
     $id = GETPOST('facid','int')?GETPOST('facid','int'):GETPOST('id','int');
     $ref = GETPOST('ref');
    @@ -155,7 +153,6 @@ if ($id > 0 || ! empty($ref))
         }
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/commande/orderstoinvoice.php b/htdocs/fourn/commande/orderstoinvoice.php
    index 4c229518eba..09381e40488 100644
    --- a/htdocs/fourn/commande/orderstoinvoice.php
    +++ b/htdocs/fourn/commande/orderstoinvoice.php
    @@ -1,13 +1,14 @@
     <?php
    -/* Copyright (C) 2001-2005 Rodolphe Quiedeville   	<rodolphe@quiedeville.org>
    +/* Copyright (C) 2001-2005 Rodolphe Quiedeville     <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2013 Laurent Destailleur   	<eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo  	<marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin          	<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin          	<regis.houssin@inodbox.com>
      * Copyright (C) 2012	   Andreu Bisquerra Gaya  	<jove@bisquerra.com>
      * Copyright (C) 2012	   David Rodriguez Martinez <davidrm146@gmail.com>
      * Copyright (C) 2012-2017 Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2014	   Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2015      Marcos García            <marcosgdf@gmail.com>
    + * Copyright (C) 2018      Frédéric France          <frederic.france@netlogic.fr>
      *
      * 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
    @@ -40,9 +41,8 @@ if (! empty($conf->projet->enabled)) {
     	require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php';
     }
     
    -$langs->load('orders');
    -$langs->load('deliveries');
    -$langs->load('companies');
    +// Load translation files required by the page
    +$langs->loadLangs(array("orders", "companies", "deliveries"));
     
     if (! $user->rights->fournisseur->facture->creer)
     	accessforbidden();
    @@ -104,9 +104,9 @@ if (($action == 'create' || $action == 'add') && ! $error) {
     	if (! empty($conf->projet->enabled))
     		require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     
    -	$langs->load('bills');
    -	$langs->load('products');
    -	$langs->load('main');
    +	// Load translation files required by the page
    +    $langs->loadLangs(array("bills", "main", "products"));
    +
     	if (isset($_GET['orders_to_invoice'])) {
     		$orders_id = GETPOST('orders_to_invoice','',1);
     		$n = count($orders_id);
    @@ -261,7 +261,6 @@ if (($action == 'create' || $action == 'add') && ! $error) {
     						$error++;
     						break;
     					}
    -
     				}
     			}
     
    @@ -270,7 +269,6 @@ if (($action == 'create' || $action == 'add') && ! $error) {
     				header('Location: ' . DOL_URL_ROOT . '/fourn/facture/card.php?facid=' . $id);
     				exit();
     			}
    -
     		} else {
     			$db->rollback();
     			$action = 'create';
    @@ -309,7 +307,7 @@ if ($action == 'create' && !$error) {
     	print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
     	print '<input type="hidden" name="action" value="add">';
     	print '<input type="hidden" name="socid" value="' . $soc->id . '">' . "\n";
    -	print '<input name="facnumber" type="hidden" value="provisoire">';
    +	print '<input name="ref" type="hidden" value="provisoire">';
     	print '<input name="ref_client" type="hidden" value="' . $ref_client . '">';
     	print '<input name="ref_int" type="hidden" value="' . $ref_int . '">';
     	print '<input type="hidden" name="origin" value="' . GETPOST('origin') . '">';
    @@ -332,7 +330,7 @@ if ($action == 'create' && !$error) {
     
     	// Date invoice
     	print '<tr><td class="fieldrequired">' . $langs->trans('Date') . '</td><td colspan="2">';
    -	$html->select_date('', '', '', '', '', "add", 1, 1);
    +	print $html->selectDate('', '', '', '', '', "add", 1, 1);
     	print '</td></tr>';
     	// Payment term
     	print '<tr><td class="nowrap">' . $langs->trans('PaymentConditionsShort') . '</td><td colspan="2">';
    @@ -486,8 +484,8 @@ if (($action != 'create' && $action != 'add') && !$error) {
     		$num = $db->num_rows($resql);
     		print load_fiche_titre($title);
     		$i = 0;
    -		$period = $html->select_date($date_start, 'date_start', 0, 0, 1, '', 1, 0, 1) . ' - ' . $html->select_date($date_end, 'date_end', 0, 0, 1, '', 1, 0, 1);
    -		$periodely = $html->select_date($date_starty, 'date_start_dely', 0, 0, 1, '', 1, 0, 1) . ' - ' . $html->select_date($date_endy, 'date_end_dely', 0, 0, 1, '', 1, 0, 1);
    +		$period = $html->selectDate($date_start, 'date_start', 0, 0, 1, '', 1, 0) . ' - ' . $html->selectDate($date_end, 'date_end', 0, 0, 1, '', 1, 0);
    +		$periodely = $html->selectDate($date_starty, 'date_start_dely', 0, 0, 1, '', 1, 0) . ' - ' . $html->selectDate($date_endy, 'date_end_dely', 0, 0, 1, '', 1, 0);
     
     		if (! empty($socid)) {
     			// Company
    @@ -617,5 +615,6 @@ if (($action != 'create' && $action != 'add') && !$error) {
     
     dol_htmloutput_mesg($mesg, $mesgs);
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php b/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php
    index 4ce44845bf6..7ffc60815e6 100644
    --- a/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2014      Marcos García <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/fourn/contact.php b/htdocs/fourn/contact.php
    index a334442e9ab..105ab78806c 100644
    --- a/htdocs/fourn/contact.php
    +++ b/htdocs/fourn/contact.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2006 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2006 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -123,14 +123,12 @@ if ($result)
         }
         print "</table>";
         $db->free($result);
    -
     }
     else
     {
         dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php
    index bbec3ea6ed6..7129821ab56 100644
    --- a/htdocs/fourn/facture/card.php
    +++ b/htdocs/fourn/facture/card.php
    @@ -3,12 +3,13 @@
      * Copyright (C) 2004-2016	Laurent Destailleur 	<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Christophe Combelles	<ccomb@free.fr>
      * Copyright (C) 2005		Marc Barilley			<marc@ocebo.fr>
    - * Copyright (C) 2005-2013	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2010-2014	Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2013-2015	Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2014-2016  Marcos García			<marcosgdf@gmail.com>
      * Copyright (C) 2016-2017	Alexandre Spangaro		<aspangaro@zendsi.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -40,8 +41,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/discount.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    -if (!empty($conf->produit->enabled))
    +if (!empty($conf->produit->enabled)) {
     	require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
    +}
     if (!empty($conf->projet->enabled)) {
     	require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
    @@ -94,7 +96,7 @@ if ($id > 0 || ! empty($ref))
     $socid='';
     if (! empty($user->societe_id)) $socid=$user->societe_id;
     $isdraft = (($object->statut == FactureFournisseur::STATUS_DRAFT) ? 1 : 0);
    -$result = restrictedArea($user, 'fournisseur', $id, 'facture_fourn', 'facture', 'fk_soc', 'rowid', null, $isdraft);
    +$result = restrictedArea($user, 'fournisseur', $id, 'facture_fourn', 'facture', 'fk_soc', 'rowid', $isdraft);
     
     $permissionnote=$user->rights->fournisseur->facture->creer;	// Used by the include of actions_setnotes.inc.php
     $permissiondellink=$user->rights->fournisseur->facture->creer;	// Used by the include of actions_dellink.inc.php
    @@ -515,7 +517,7 @@ if (empty($reshook))
     				$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as c ON p.fk_paiement = c.id AND c.entity IN (' . getEntity('c_paiement') . ')';
     				$sql.= ' WHERE pf.fk_facturefourn = '.$object->id;
     				$sql.= ' AND pf.fk_paiementfourn = p.rowid';
    -				$sql.= ' AND p.entity IN (' . getEntity('facture').')';
    +				$sql.= ' AND p.entity IN (' . getEntity('invoice').')';
     
     				$resql = $db->query($sql);
     				if (! $resql) dol_print_error($db);
    @@ -532,7 +534,6 @@ if (empty($reshook))
     				{
     					$error++;
     				}
    -
     			}
     			if ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE || $object->type == FactureFournisseur::TYPE_DEPOSIT)
     			{
    @@ -550,7 +551,6 @@ if (empty($reshook))
     						break;
     					}
     				}
    -
     			}
     
     			if (empty($error))
    @@ -764,7 +764,6 @@ if (empty($reshook))
     
     						$object->update_price(1);
     					}
    -
     				}
     
     				if(GETPOST('invoiceAvoirWithPaymentRestAmount', 'int')==1 && $id>0)
    @@ -864,6 +863,27 @@ if (empty($reshook))
     					$object->origin    = GETPOST('origin');
     					$object->origin_id = GETPOST('originid');
     
    +
    +					require_once DOL_DOCUMENT_ROOT.'/'.$element.'/class/'.$subelement.'.class.php';
    +					$classname = ucfirst($subelement);
    +					if ($classname == 'Fournisseur.commande') $classname='CommandeFournisseur';
    +					$objectsrc = new $classname($db);
    +					$objectsrc->fetch($originid);
    +					$objectsrc->fetch_thirdparty();
    +
    +					if ($object->origin == 'reception')
    +					{
    +						$objectsrc->fetchObjectLinked();
    +
    +						if (count($objectsrc->linkedObjectsIds['order_supplier']) > 0)
    +						{
    +							foreach ($objectsrc->linkedObjectsIds['order_supplier'] as $key => $value)
    +							{
    +								$object->linked_objects['order_supplier'] = $value;
    +							}
    +						}
    +					}
    +
     					$id = $object->create($user);
     
     					// Add lines
    @@ -906,7 +926,7 @@ if (empty($reshook))
     
     								// FIXME Missing special_code  into addline and updateline methods
     								$object->special_code = $lines[$i]->special_code;
    -								
    +
     								// FIXME Missing $lines[$i]->ref_supplier and $lines[$i]->label into addline and updateline methods. They are filled when coming from order for example.
     								$result = $object->addline(
     									$desc,
    @@ -927,7 +947,9 @@ if (empty($reshook))
     									0,
     									$lines[$i]->array_options,
     									$lines[$i]->fk_unit,
    -									$lines[$i]->id
    +									$lines[$i]->id,
    +									0,
    +									$lines[$i]->ref_supplier
     								);
     
     								if ($result < 0)
    @@ -1108,6 +1130,7 @@ if (empty($reshook))
     		$product_desc=(GETPOST('dp_desc')?GETPOST('dp_desc'):'');
     		$date_start=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start' . $predef . 'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year'));
     		$date_end=dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end' . $predef . 'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year'));
    +
     		$prod_entry_mode = GETPOST('prod_entry_mode');
     		if ($prod_entry_mode == 'free')
     		{
    @@ -1172,7 +1195,7 @@ if (empty($reshook))
     				if ($res = $prodcomb->fetchByProductCombination2ValuePairs($idprod, $combinations)) {
     					$idprod = $res->fk_product_child;
     				} else {
    -					setEventMessage($langs->trans('ErrorProductCombinationNotFound'), 'errors');
    +					setEventMessages($langs->trans('ErrorProductCombinationNotFound'), null, 'errors');
     					$error ++;
     				}
     			}
    @@ -1218,8 +1241,12 @@ if (empty($reshook))
     			{
     				$label = $productsupplier->label;
     
    -				$desc = $productsupplier->description;
    -				if (trim($product_desc) != trim($desc)) $desc = dol_concatdesc($desc, $product_desc);
    +				// if we use supplier description of the products
    +				if(!empty($productsupplier->desc_supplier) && !empty($conf->global->PRODUIT_FOURN_TEXTS)) {
    +				    $desc = $productsupplier->desc_supplier;
    +				} else $desc = $productsupplier->description;
    +
    +				if (trim($product_desc) != trim($desc)) $desc = dol_concatdesc($desc, $product_desc, '', !empty($conf->global->CHANGE_ORDER_CONCAT_DESCRIPTION));
     
     				$type = $productsupplier->type;
     				$price_base_type = ($productsupplier->fourn_price_base_type?$productsupplier->fourn_price_base_type:'HT');
    @@ -1626,8 +1653,7 @@ if ($action == 'create')
     			$projectid = $originid;
     			$element = 'projet';
     		}
    -		else if (in_array($element,array('order_supplier')))
    -		{
    +
     			// For compatibility
     			if ($element == 'order')    {
     				$element = $subelement = 'commande';
    @@ -1674,8 +1700,6 @@ if ($action == 'create')
     			// Replicate extrafields
     			$objectsrc->fetch_optionals($originid);
     			$object->array_options = $objectsrc->array_options;
    -
    -		}
     	}
     	else
     	{
    @@ -1736,7 +1760,7 @@ if ($action == 'create')
     	print '</td></tr>';
     
     	// Ref supplier
    -	print '<tr><td class="fieldrequired">'.$langs->trans('RefSupplier').'</td><td><input name="ref_supplier" value="'.(isset($_POST['ref_supplier'])?$_POST['ref_supplier']:'').'" type="text"></td>';
    +    print '<tr><td class="fieldrequired">'.$langs->trans('RefSupplier').'</td><td><input name="ref_supplier" value="'.(isset($_POST['ref_supplier'])?$_POST['ref_supplier']:$objectsrc->ref_supplier).'" type="text"></td>';
     	print '</tr>';
     
     	// Type invoice
    @@ -1961,12 +1985,12 @@ if ($action == 'create')
     
     	// Date invoice
     	print '<tr><td class="fieldrequired">'.$langs->trans('DateInvoice').'</td><td>';
    -	$form->select_date($dateinvoice,'','','','',"add",1,1);
    +	print $form->selectDate($dateinvoice, '', '', '', '', "add", 1, 1);
     	print '</td></tr>';
     
     	// Due date
     	print '<tr><td>'.$langs->trans('DateMaxPayment').'</td><td>';
    -	$form->select_date($datedue,'ech','','','',"add",1,1);
    +	print $form->selectDate($datedue, 'ech', '', '', '', "add", 1, 1);
     	print '</td></tr>';
     
     	// Payment term
    @@ -1988,7 +2012,7 @@ if ($action == 'create')
     	if (! empty($conf->multicurrency->enabled))
     	{
     		print '<tr>';
    -		print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
    +		print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>';
     		print '<td class="maxwidthonsmartphone">';
     		print $form->selectMultiCurrency($currency_code, 'multicurrency_code');
     		print '</td></tr>';
    @@ -2019,6 +2043,7 @@ if ($action == 'create')
     	print '<tr><td>'.$langs->trans('NotePublic').'</td>';
     	print '<td>';
     	$note_public = $object->getDefaultCreateValueFor('note_public');
    +	if(empty($note_public))$note_public = $objectsrc->note_public;
     	$doleditor = new DolEditor('note_public', $note_public, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, '90%');
     	print $doleditor->Create(1);
     	print '</td>';
    @@ -2029,6 +2054,8 @@ if ($action == 'create')
     	print '<tr><td>'.$langs->trans('NotePrivate').'</td>';
     	print '<td>';
     	$note_private = $object->getDefaultCreateValueFor('note_private');
    +	if(empty($note_private))$note_private = $objectsrc->note_private;
    +
     	$doleditor = new DolEditor('note_private', $note_private, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, '90%');
     	print $doleditor->Create(1);
     	print '</td>';
    @@ -2262,7 +2289,6 @@ else
                 }
     
     			$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ValidateBill'), $text, 'confirm_valid', $formquestion, 1, 1);
    -
             }
     
             // Confirmation edit (back to draft)
    @@ -2298,27 +2324,23 @@ else
                     );
                 }
                 $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('UnvalidateBill'), $langs->trans('ConfirmUnvalidateBill', $object->ref), 'confirm_edit', $formquestion, 1, 1);
    -
     		}
     
     		// Confirmation set paid
     		if ($action == 'paid')
     		{
     			$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ClassifyPaid'), $langs->trans('ConfirmClassifyPaidBill', $object->ref), 'confirm_paid', '', 0, 1);
    -
     		}
     
     		// Confirmation de la suppression de la facture fournisseur
     		if ($action == 'delete')
     		{
     			$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('DeleteBill'), $langs->trans('ConfirmDeleteBill'), 'confirm_delete', '', 0, 1);
    -
     		}
     		if ($action == 'deletepaiement')
     		{
     			$payment_id = GETPOST('paiement_id');
     			$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&paiement_id='.$payment_id, $langs->trans('DeletePayment'), $langs->trans('ConfirmDeletePayment'), 'confirm_delete_paiement', '', 0, 1);
    -
     		}
     
     	   	// Confirmation to delete line
    @@ -2391,7 +2413,7 @@ else
         	print '<div class="fichehalfleft">';
         	print '<div class="underbanner clearboth"></div>';
     
    -    	print '<table class="border" width="100%">';
    +    	print '<table class="border tableforfield" width="100%">';
     
             // Type
             print '<tr><td class="titlefield">'.$langs->trans('Type').'</td><td>';
    @@ -2507,11 +2529,11 @@ else
     		print '</td><td colspan="2">';
     		if ($action == 'editmode')
     		{
    -			$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', 'DBIT');
    +			$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'mode_reglement_id', 'DBIT', 1, 1);
     		}
     		else
     		{
    -			$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'none', 'DBIT');
    +			$form->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$object->id, $object->mode_reglement_id, 'none');
     		}
     		print '</td></tr>';
     
    @@ -2522,7 +2544,7 @@ else
     			print '<tr>';
     			print '<td>';
     			print '<table class="nobordernopadding" width="100%"><tr><td>';
    -			print fieldLabel('Currency','multicurrency_code');
    +			print $form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0);
     			print '</td>';
     			if ($action != 'editmulticurrencycode' && ! empty($object->brouillon))
     				print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencycode&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
    @@ -2539,7 +2561,7 @@ else
     			print '<tr>';
     			print '<td>';
     			print '<table class="nobordernopadding" width="100%"><tr><td>';
    -			print fieldLabel('CurrencyRate','multicurrency_tx');
    +			print $form->editfieldkey('CurrencyRate', 'multicurrency_tx', '', $object, 0);
     			print '</td>';
     			if ($action != 'editmulticurrencyrate' && ! empty($object->brouillon) && $object->multicurrency_code && $object->multicurrency_code != $conf->currency)
     				print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencyrate&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
    @@ -2612,22 +2634,22 @@ else
     		print '<div class="ficheaddleft">';
     		print '<div class="underbanner clearboth"></div>';
     
    -		print '<table class="border centpercent">';
    +		print '<table class="border tableforfield centpercent">';
     
     		if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency))
     		{
     			// Multicurrency Amount HT
    -			print '<tr><td class="titlefieldmiddle">' . fieldLabel('MulticurrencyAmountHT','multicurrency_total_ht') . '</td>';
    +			print '<tr><td class="titlefieldmiddle">' . $form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0) . '</td>';
     			print '<td class="nowrap">' . price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     			print '</tr>';
     
     			// Multicurrency Amount VAT
    -			print '<tr><td>' . fieldLabel('MulticurrencyAmountVAT','multicurrency_total_tva') . '</td>';
    +			print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0) . '</td>';
     			print '<td>' . price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     			print '</tr>';
     
     			// Multicurrency Amount TTC
    -			print '<tr><td height="10">' . fieldLabel('MulticurrencyAmountTTC','multicurrency_total_ttc') . '</td>';
    +			print '<tr><td height="10">' . $form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0) . '</td>';
     			print '<td>' . price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     			print '</tr>';
     		}
    @@ -2720,7 +2742,7 @@ else
     
     					$paymentstatic->id=$objp->rowid;
     					$paymentstatic->datepaye=$db->jdate($objp->dp);
    -					$paymentstatic->ref=($objp->ref ? $objp->ref : $objp->rowid);;
    +					$paymentstatic->ref=($objp->ref ? $objp->ref : $objp->rowid);
     					$paymentstatic->num_paiement=$objp->num_paiement;
     					$paymentstatic->payment_code=$objp->payment_code;
     
    @@ -3024,9 +3046,9 @@ else
     					else
     					{
     						if ($user->rights->fournisseur->facture->creer) {
    -							print '<div class="inline-block divButAction"><span class="butActionRefused" title="'.$langs->trans("DisabledBecauseReplacedInvoice").'">'.$langs->trans('ReOpen').'</span></div>';
    +							print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="'.$langs->trans("DisabledBecauseReplacedInvoice").'">'.$langs->trans('ReOpen').'</span></div>';
     						} elseif (empty($conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED)) {
    -							print '<div class="inline-block divButAction"><span class="butActionRefused">'.$langs->trans('ReOpen').'</span></div>';
    +							print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip">'.$langs->trans('ReOpen').'</span></div>';
     						}
     					}
     				}
    @@ -3038,7 +3060,7 @@ else
     					{
     						print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&action=presend&mode=init#formmailbeforetitle">'.$langs->trans('SendMail').'</a></div>';
     					}
    -					else print '<div class="inline-block divButAction"><span class="butActionRefused">'.$langs->trans('SendMail').'</a></div>';
    +					else print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip">'.$langs->trans('SendMail').'</a></div>';
     				}
     
     	            // Make payments
    @@ -3063,7 +3085,7 @@ else
     					{
     						if ($resteapayer == 0)
     						{
    -							print '<div class="inline-block divButAction"><span class="butActionRefused" title="'.$langs->trans("DisabledBecauseRemainderToPayIsZero").'">'.$langs->trans('DoPaymentBack').'</span></div>';
    +							print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="'.$langs->trans("DisabledBecauseRemainderToPayIsZero").'">'.$langs->trans('DoPaymentBack').'</span></div>';
     						}
     						else
     						{
    @@ -3100,7 +3122,7 @@ else
     	                    }
     	                    else
     	                    {
    -	                        print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'"';
    +	                        print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'"';
     	                        print '>'.$langs->trans('Validate').'</a></div>';
     	                    }
     	                }
    @@ -3133,20 +3155,20 @@ else
     	            {
     	            	//var_dump($isErasable);
     	            	if ($isErasable == -4) {
    -	            		print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecausePayments") . '">' . $langs->trans('Delete') . '</a></div>';
    +	            		print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecausePayments") . '">' . $langs->trans('Delete') . '</a></div>';
     	            	}
     	            	elseif ($isErasable == -3) {	// Should never happen with supplier invoice
    -	            		print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseNotLastSituationInvoice") . '">' . $langs->trans('Delete') . '</a></div>';
    +	            		print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseNotLastSituationInvoice") . '">' . $langs->trans('Delete') . '</a></div>';
     	            	}
     	            	elseif ($isErasable == -2) {	// Should never happen with supplier invoice
    -	            		print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseNotLastInvoice") . '">' . $langs->trans('Delete') . '</a></div>';
    +	            		print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseNotLastInvoice") . '">' . $langs->trans('Delete') . '</a></div>';
     	            	}
     	            	elseif ($isErasable == -1) {
    -	            		print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseDispatchedInBookkeeping") . '">' . $langs->trans('Delete') . '</a></div>';
    +	            		print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseDispatchedInBookkeeping") . '">' . $langs->trans('Delete') . '</a></div>';
     	            	}
     	            	elseif ($isErasable <= 0)	// Any other cases
     	            	{
    -	            		print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans("DisabledBecauseNotErasable") . '">' . $langs->trans('Delete') . '</a></div>';
    +	            		print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans("DisabledBecauseNotErasable") . '">' . $langs->trans('Delete') . '</a></div>';
     	            	}
                         else
                         {
    @@ -3207,7 +3229,6 @@ else
     	}
     }
     
    -
     // End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/fourn/facture/contact.php b/htdocs/fourn/facture/contact.php
    index 6b54e28987f..ffd3cb00d7b 100644
    --- a/htdocs/fourn/facture/contact.php
    +++ b/htdocs/fourn/facture/contact.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005		Patrick Rouillon	<patrick@rouillon.net>
      * Copyright (C) 2005-2015	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -34,9 +34,7 @@ if (! empty($conf->projet->enabled)) {
     	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     }
     
    -$langs->load("bills");
    -$langs->load('other');
    -$langs->load("companies");
    +$langs->loadLangs(array("bills", "other", "companies"));
     
     $id		= (GETPOST('id','int') ? GETPOST('id','int') : GETPOST('facid','int'));
     $ref	= GETPOST('ref','alpha');
    @@ -152,7 +150,8 @@ if ($id > 0 || ! empty($ref))
         	$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
         	// Thirdparty
         	$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
    -		// Project
    +    	if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) $morehtmlref.=' (<a href="'.DOL_URL_ROOT.'/fourn/facture/list.php?socid='.$object->thirdparty->id.'&search_company='.urlencode($object->thirdparty->name).'">'.$langs->trans("OtherBills").'</a>)';
    +    	// Project
     		if (! empty($conf->projet->enabled))
     		{
     			$langs->load("projects");
    @@ -268,7 +267,6 @@ if ($id > 0 || ! empty($ref))
     
     		// Contacts lines
     		include DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php';
    -
     	}
     	else
     	{
    @@ -276,6 +274,6 @@ if ($id > 0 || ! empty($ref))
     	}
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/fourn/facture/document.php b/htdocs/fourn/facture/document.php
    index 1f0c9f86739..c13be230789 100644
    --- a/htdocs/fourn/facture/document.php
    +++ b/htdocs/fourn/facture/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2004	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2005		Marc Barilley / Ocebo	<marc@ocebo.com>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Cédric Salvador			<csalvador@gpcsolutions.fr>
      * Copyright (C) 2016		Alexandre Spangaro		<aspangaro@zendsi.com>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
    @@ -24,7 +24,7 @@
     /**
      *       \file       htdocs/fourn/facture/document.php
      *       \ingroup    facture, fournisseur
    - *       \brief      Page de gestion des documents attaches a une facture fournisseur
    + *       \brief      Page to manage documents joined to vendor invoices
      */
     
     require '../../main.inc.php';
    @@ -38,9 +38,7 @@ if (! empty($conf->projet->enabled)) {
     	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     }
     
    -$langs->load('bills');
    -$langs->load('other');
    -$langs->load("companies");
    +$langs->loadLangs(array('bills', 'other', 'companies'));
     
     $id = GETPOST('facid','int')?GETPOST('facid','int'):GETPOST('id','int');
     $action=GETPOST('action','alpha');
    @@ -103,6 +101,7 @@ if ($object->id > 0)
         $morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
         // Thirdparty
         $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
    +    if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) $morehtmlref.=' (<a href="'.DOL_URL_ROOT.'/fourn/facture/list.php?socid='.$object->thirdparty->id.'&search_company='.urlencode($object->thirdparty->name).'">'.$langs->trans("OtherBills").'</a>)';
         // Project
         if (! empty($conf->projet->enabled))
         {
    @@ -145,7 +144,7 @@ if ($object->id > 0)
         print '<div class="fichecenter">';
         print '<div class="underbanner clearboth"></div>';
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -159,7 +158,6 @@ if ($object->id > 0)
     	if ($action == 'delete')
     	{
     		print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&urlfile='.urlencode($_GET["urlfile"]), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile', '', 0, 1);
    -
     	}
     
     	print '<table class="border" width="100%">';
    @@ -260,6 +258,6 @@ else
         print $langs->trans('ErrorUnknown');
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/fourn/facture/impayees.php b/htdocs/fourn/facture/impayees.php
    index c1c4be9fb76..4884a75daff 100644
    --- a/htdocs/fourn/facture/impayees.php
    +++ b/htdocs/fourn/facture/impayees.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2002-2005	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004		Eric Seigne				<eric.seigne@ryxeo.com>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Vinicius Nogueira       <viniciusvgn@gmail.com>
      * Copyright (C) 2012		Juanjo Menent			<jmenent@2byte.es>
      *
    @@ -33,9 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
     
     if (! $user->rights->fournisseur->facture->lire) accessforbidden();
     
    -$langs->load("companies");
    -$langs->load("bills");
    -
    +$langs->loadLangs(array("companies", "bills"));
     
     $socid=GETPOST('socid','int');
     $option = GETPOST('option');
    @@ -296,7 +294,6 @@ if ($user->rights->fournisseur->facture->lire)
     	{
     		dol_print_error($db);
     	}
    -
     }
     
     // End of page
    diff --git a/htdocs/fourn/facture/info.php b/htdocs/fourn/facture/info.php
    index 1297c44037b..dfca394c7cb 100644
    --- a/htdocs/fourn/facture/info.php
    +++ b/htdocs/fourn/facture/info.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2006 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016      Alexandre Spangaro   <aspangaro@zendsi.com>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
    @@ -34,8 +34,7 @@ if (! empty($conf->projet->enabled)) {
     	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     }
     
    -$langs->load('companies');
    -$langs->load('bills');
    +$langs->loadLangs(array("companies", "bills"));
     
     $id = GETPOST("facid",'int')?GETPOST("facid",'int'):GETPOST("id",'int');
     $ref = GETPOST("ref",'alpha');
    @@ -75,7 +74,8 @@ $morehtmlref='<div class="refidno">';
     $morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', 0, 1);
     $morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
     // Thirdparty
    -// $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
    +$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
    +if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) $morehtmlref.=' (<a href="'.DOL_URL_ROOT.'/fourn/facture/list.php?socid='.$object->thirdparty->id.'&search_company='.urlencode($object->thirdparty->name).'">'.$langs->trans("OtherBills").'</a>)';
     // Project
     if (! empty($conf->projet->enabled))
     {
    @@ -126,6 +126,6 @@ print '</td></tr></table>';
     
     print '</div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php
    index 98a6956a809..4fab329142c 100644
    --- a/htdocs/fourn/facture/list.php
    +++ b/htdocs/fourn/facture/list.php
    @@ -1,8 +1,8 @@
     <?php
     /* Copyright (C) 2002-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2013-2018 Philippe Grand       <philippe.grand@atoo-net.com>
    + * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@inodbox.com>
    + * Copyright (C) 2013-2019 Philippe Grand       <philippe.grand@atoo-net.com>
      * Copyright (C) 2013	   Florian Henry        <florian.henry@open-concept.pro>
      * Copyright (C) 2013      Cédric Salvador      <csalvador@gpcsolutions.fr>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    @@ -10,6 +10,8 @@
      * Copyright (C) 2015 	   Abbes Bahfir         <bafbes@gmail.com>
      * Copyright (C) 2015-2016 Ferran Marcet        <fmarcet@2byte.es>
      * Copyright (C) 2017      Josep Lluís Amador   <joseplluis@lliuretic.cat>
    + * Copyright (C) 2018      Charlene Benke       <charlie@patas-monkey.com>
    + * Copyright (C) 2018      Frédéric France      <frederic.france@netlogic.fr>
      *
      * 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
    @@ -129,7 +131,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('facture_fourn');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -255,7 +257,7 @@ $facturestatic=new FactureFournisseur($db);
     $formcompany=new FormCompany($db);
     $thirdparty=new Societe($db);
     
    -llxHeader('',$langs->trans("SuppliersInvoices"),'EN:Suppliers_Invoices|FR:FactureFournisseur|ES:Facturas_de_proveedores');
    +// llxHeader('',$langs->trans("SuppliersInvoices"),'EN:Suppliers_Invoices|FR:FactureFournisseur|ES:Facturas_de_proveedores');
     
     $sql = "SELECT";
     if ($search_all || $search_product_category > 0) $sql = 'SELECT DISTINCT';
    @@ -328,32 +330,8 @@ if ($search_montant_localtax2 != '') $sql.= natural_search('f.localtax2', $searc
     if ($search_montant_ttc != '') $sql.= natural_search('f.total_ttc', $search_montant_ttc, 1);
     if ($search_status != '' && $search_status >= 0) $sql.= " AND f.fk_statut = ".$db->escape($search_status);
     if ($search_paymentmode > 0) $sql .= " AND f.fk_mode_reglement = ".$search_paymentmode."";
    -if ($month > 0)
    -{
    -	if ($year > 0 && empty($day))
    -	$sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($year,$month,false))."' AND '".$db->idate(dol_get_last_day($year,$month,false))."'";
    -	else if ($year > 0 && ! empty($day))
    -		$sql.= " AND f.datef BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month, $day, $year))."' AND '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year))."'";
    -	else
    -	$sql.= " AND date_format(f.datef, '%m') = '".$month."'";
    -}
    -else if ($year > 0)
    -{
    -	$sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
    -}
    -if ($month_lim > 0)
    -{
    -	if ($year_lim > 0 && empty($day_lim))
    -		$sql.= " AND f.date_lim_reglement BETWEEN '".$db->idate(dol_get_first_day($year_lim,$month_lim,false))."' AND '".$db->idate(dol_get_last_day($year_lim,$month_lim,false))."'";
    -	else if ($year_lim > 0 && ! empty($day_lim))
    -		$sql.= " AND f.date_lim_reglement BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month_lim, $day_lim, $year_lim))."' AND '".$db->idate(dol_mktime(23, 59, 59, $month_lim, $day_lim, $year_lim))."'";
    -	else
    -		$sql.= " AND date_format(f.date_lim_reglement, '%m') = '".$db->escape($month_lim)."'";
    -}
    -else if ($year_lim > 0)
    -{
    -	$sql.= " AND f.date_lim_reglement BETWEEN '".$db->idate(dol_get_first_day($year_lim,1,false))."' AND '".$db->idate(dol_get_last_day($year_lim,12,false))."'";
    -}
    +$sql.= dolSqlDateFilter( "f.datef", $day, $month, $year);
    +$sql.= dolSqlDateFilter( "f.date_lim_reglement", $day_lim, $month_lim, $year_lim);
     if ($option == 'late') $sql.=" AND f.date_lim_reglement < '".$db->idate(dol_now() - $conf->facture->fournisseur->warning_delay)."'";
     if ($search_label) $sql .= natural_search('f.libelle', $search_label);
     if ($search_status != '' && $search_status >= 0)
    @@ -426,6 +404,17 @@ if ($resql)
     
     	$arrayofselected=is_array($toselect)?$toselect:array();
     
    +	if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall)
    +	{
    +		$obj = $db->fetch_object($resql);
    +		$id = $obj->facid;
    +
    +		header("Location: ".DOL_URL_ROOT.'/fourn/facture/card.php?facid='.$id);
    +		exit;
    +	}
    +
    +	llxHeader('',$langs->trans("SuppliersInvoices"),'EN:Suppliers_Invoices|FR:FactureFournisseur|ES:Facturas_de_proveedores');
    +
     	if ($socid)
     	{
     		$soc = new Societe($db);
    @@ -465,6 +454,7 @@ if ($resql)
     	// List of mass actions available
     	$arrayofmassactions =  array(
     		'validate'=>$langs->trans("Validate"),
    +		'generate_doc'=>$langs->trans("Generate"),
     		//'presend'=>$langs->trans("SendByMail"),
     		//'builddoc'=>$langs->trans("PDFMerge"),
     	);
    @@ -512,7 +502,7 @@ if ($resql)
     		print $langs->trans('DateInvoice');
     		print '</td>';
     		print '<td>';
    -		print $form->select_date('', '', '', '', '', '', 1, 1);
    +		print $form->selectDate('', '', '', '', '', '', 1, 1);
     		print '</td>';
     		print '</tr>';
     		print '<tr>';
    @@ -819,7 +809,6 @@ if ($resql)
     	if ($num > 0)
     	{
     		$i=0;
    -
     		$totalarray=array();
     		while ($i < min($num,$limit))
     		{
    @@ -1119,8 +1108,8 @@ if ($resql)
     			   $i++;
     			   if ($i == 1)
     			   {
    -					if ($num < $limit && empty($offset)) print '<td align="left">'.$langs->trans("Total").'</td>';
    -					else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +					if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
    +					else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     			   }
     			   elseif ($totalarray['totalhtfield'] == $i)  print '<td align="right">'.price($totalarray['totalht']).'</td>';
     			   elseif ($totalarray['totalvatfield'] == $i) print '<td align="right">'.price($totalarray['totalvat']).'</td>';
    @@ -1132,7 +1121,6 @@ if ($resql)
     			   else print '<td></td>';
     			}
     			print '</tr>';
    -
     		}
     	}
     
    @@ -1167,7 +1155,6 @@ else
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/facture/note.php b/htdocs/fourn/facture/note.php
    index 11d59d1170c..08dbc522600 100644
    --- a/htdocs/fourn/facture/note.php
    +++ b/htdocs/fourn/facture/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
    @@ -33,8 +33,7 @@ if (! empty($conf->projet->enabled)) {
     	require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php';
     }
     
    -$langs->load('bills');
    -$langs->load("companies");
    +$langs->loadLangs(array("bills", "companies"));
     
     $id = (GETPOST('id','int') ? GETPOST('id','int') : GETPOST('facid','int'));
     $ref = GETPOST('ref','alpha');
    @@ -95,6 +94,7 @@ if ($object->id > 0)
         $morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, 0, 'string', '', null, null, '', 1);
         // Thirdparty
         $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
    +    if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) $morehtmlref.=' (<a href="'.DOL_URL_ROOT.'/fourn/facture/list.php?socid='.$object->thirdparty->id.'&search_company='.urlencode($object->thirdparty->name).'">'.$langs->trans("OtherBills").'</a>)';
         // Project
         if (! empty($conf->projet->enabled))
         {
    @@ -214,7 +214,6 @@ if ($object->id > 0)
     	dol_fiche_end();
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php
    index 74593cb8675..4a1b004fed7 100644
    --- a/htdocs/fourn/facture/paiement.php
    +++ b/htdocs/fourn/facture/paiement.php
    @@ -4,11 +4,12 @@
      * Copyright (C) 2004-2016	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Christophe Combelles	<ccomb@free.fr>
      * Copyright (C) 2005		Marc Barilley / Ocebo	<marc@ocebo.com>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2014		Teddy Andreotti			<125155@supinfo.com>
      * Copyright (C) 2015       Marcos García           <marcosgdf@gmail.com>
      * Copyright (C) 2015       Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2017       Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -37,10 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     
    -$langs->load('companies');
    -$langs->load('bills');
    -$langs->load('banks');
    -$langs->load('compta');
    +$langs->loadLangs(array('companies', 'bills', 'banks', 'compta'));
     
     // Security check
     $action		= GETPOST('action','alpha');
    @@ -91,7 +89,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('paymentsupplier');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost('paymentsupplier','','search_');
     
     $arrayfields=array();
     
    @@ -443,7 +441,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
                 print $supplierstatic->getNomUrl(1,'supplier');
                 print '</td></tr>';
                 print '<tr><td class="fieldrequired">'.$langs->trans('Date').'</td><td>';
    -            $form->select_date($dateinvoice,'','','','',"addpaiement",1,1,0,0,'','',$object->date);
    +            print $form->selectDate($dateinvoice, '', '', '', 0, "addpaiement", 1, 1, 0, '', '', $object->date);
                 print '</td></tr>';
                 print '<tr><td class="fieldrequired">'.$langs->trans('PaymentMode').'</td><td>';
                 $form->select_types_paiements(empty($_POST['paiementid'])?$obj->fk_mode_reglement:$_POST['paiementid'],'paiementid');
    @@ -475,14 +473,14 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
     	             * Autres factures impayees
     	             */
     	            $sql = 'SELECT f.rowid as facid, f.ref, f.ref_supplier, f.total_ht, f.total_ttc, f.multicurrency_total_ttc, f.datef as df,';
    -	            $sql.= ' SUM(pf.amount) as am, SUM(pf.multicurrency_amount) as multicurrency_am';
    +	            $sql.= ' SUM(pf.amount) as am, SUM(pf.multicurrency_amount) as multicurrency_am, f.date_lim_reglement as dlr';
     	            $sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as f';
     	            $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON pf.fk_facturefourn = f.rowid';
     	            $sql.= " WHERE f.entity = ".$conf->entity;
     	            $sql.= ' AND f.fk_soc = '.$object->socid;
     	            $sql.= ' AND f.paye = 0';
     	            $sql.= ' AND f.fk_statut = 1';  // Statut=0 => non validee, Statut=2 => annulee
    -	            $sql.= ' GROUP BY f.rowid, f.ref, f.ref_supplier, f.total_ht, f.total_ttc, f.multicurrency_total_ttc, f.datef';
    +	            $sql.= ' GROUP BY f.rowid, f.ref, f.ref_supplier, f.total_ht, f.total_ttc, f.multicurrency_total_ttc, f.datef, f.date_lim_reglement';
     	            $resql = $db->query($sql);
     	            if ($resql)
     	            {
    @@ -513,6 +511,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
     	                    print '<td>'.$langs->trans('Invoice').'</td>';
     	                    print '<td>'.$langs->trans('RefSupplier').'</td>';
     	                    print '<td align="center">'.$langs->trans('Date').'</td>';
    +	                    print '<td align="center">'.$langs->trans('DateMaxPayment').'</td>';
     	                    if (!empty($conf->multicurrency->enabled)) print '<td>'.$langs->trans('Currency').'</td>';
     						if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$langs->trans('MulticurrencyAmountTTC').'</td>';
     						if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$langs->trans('MulticurrencyAlreadyPaid').'</td>';
    @@ -572,6 +571,24 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
     	                            print '<td align="center"><b>!!!</b></td>';
     	                        }
     
    +	                        // Date Max Payment
    +	                        if ($objp->dlr > 0 )
    +	                        {
    +	                            print '<td align="center">';
    +	                            print dol_print_date($db->jdate($objp->dlr), 'day');
    +
    +	                            if ($invoice->hasDelay())
    +	                            {
    +	                                print img_warning($langs->trans('Late'));
    +	                            }
    +
    +	                            print '</td>';
    +	                        }
    +	                        else
    +	                        {
    +	                            print '<td align="center"><b>--</b></td>';
    +	                        }
    +
     	                        // Multicurrency
     	                        if (!empty($conf->multicurrency->enabled))
     	                        {
    @@ -663,7 +680,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
     	                    {
     	                        // Print total
     	                        print '<tr class="liste_total">';
    -	                        print '<td colspan="3" align="left">'.$langs->trans('TotalTTC').':</td>';
    +	                        print '<td colspan="4" align="left">'.$langs->trans('TotalTTC').':</td>';
     							if (!empty($conf->multicurrency->enabled)) print '<td>&nbsp;</td>';
     							if (!empty($conf->multicurrency->enabled)) print '<td>&nbsp;</td>';
     							if (!empty($conf->multicurrency->enabled)) print '<td>&nbsp;</td>';
    @@ -800,8 +817,8 @@ if (empty($action))
             $i = 0;
     
             $param='';
    -        if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    -        if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    +        if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
    +        if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
             if ($day)                   $param.=($day?"&day=".urlencode($day):"");
             if ($month)                 $param.=($month?"&month=".urlencode($month):"");
             if ($year)                  $param.=($year?"&year=".urlencode($year):"");
    @@ -809,7 +826,7 @@ if (empty($action))
             if ($search_company)        $param.=($search_company?"&search_company=".urlencode($search_company):"");
             if ($search_amount != '')   $param.=($search_amount?"&search_amount=".urlencode($search_amount):"");
             if ($search_payment_num)    $param.=($search_payment_num?"&search_payment_num=".urlencode($search_payment_num):"");
    -    	if ($optioncss != '')       $param.='&optioncss='.$optioncss;
    +    	if ($optioncss != '')       $param.='&optioncss='.urlencode($optioncss);
         	// Add $param from extra fields
         	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
     
    @@ -898,7 +915,9 @@ if (empty($action))
                 print '<td class="nowrap"><a href="'.DOL_URL_ROOT.'/fourn/paiement/card.php?id='.$objp->pid.'">'.img_object($langs->trans('ShowPayment'),'payment').' '.$objp->pid.'</a></td>';
     
                 // Date
    -            print '<td class="nowrap" align="center">'.dol_print_date($db->jdate($objp->dp),'day')."</td>\n";
    +            $dateformatforpayment = 'day';
    +            if (! empty($conf->global->INVOICE_USE_HOURS_FOR_PAYMENT)) $dateformatforpayment='dayhour';
    +            print '<td class="nowrap" align="center">'.dol_print_date($db->jdate($objp->dp), $dateformatforpayment)."</td>\n";
     
                 // Thirdparty
                 print '<td>';
    @@ -941,5 +960,6 @@ if (empty($action))
         }
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/fourn/facture/rapport.php b/htdocs/fourn/facture/rapport.php
    index c20b26b1263..fb76247f5d7 100644
    --- a/htdocs/fourn/facture/rapport.php
    +++ b/htdocs/fourn/facture/rapport.php
    @@ -146,6 +146,7 @@ if ($year)
             print '<td align="right">'.$langs->trans("Size").'</td>';
             print '<td align="right">'.$langs->trans("Date").'</td>';
             print '</tr>';
    +
             if (is_resource($handle))
             {
                 while (($file = readdir($handle))!==false)
    @@ -165,6 +166,6 @@ if ($year)
         }
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php b/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
    index 8ba0884fa6a..324e6b8dccf 100644
    --- a/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2014      Marcos García <marcosgdf@gmail.com>
      * Copyright (C) 2015      Charlie Benke <charlie@patas-monkey.com>
      * Copyright (C) 2016      Laurent Destailleur <eldy@users.sourceforge.net>
    diff --git a/htdocs/fourn/index.php b/htdocs/fourn/index.php
    index 033bcc63a2a..d60519dda04 100644
    --- a/htdocs/fourn/index.php
    +++ b/htdocs/fourn/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -28,9 +28,7 @@ require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
     require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
     require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
     
    -$langs->load("suppliers");
    -$langs->load("orders");
    -$langs->load("companies");
    +$langs->loadLangs(array("suppliers", "orders", "companies"));
     
     // Security check
     $socid = GETPOST("socid", 'int');
    @@ -205,7 +203,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture-
     				$i++;
     			}
     
    -			print '<tr class="liste_total"><td align="left">'.$langs->trans("Total").'</td>';
    +			print '<tr class="liste_total"><td class="left">'.$langs->trans("Total").'</td>';
     			print '<td colspan="2" align="right">'.price($tot_ttc).'</td>';
     			print '</tr>';
     
    @@ -260,7 +258,7 @@ if ($resql)
     		print '<tr class="oddeven">';
     		print '<td><a href="card.php?socid='.$obj->socid.'">'.img_object($langs->trans("ShowSupplier"),"company").'</a>';
     		print "&nbsp;<a href=\"card.php?socid=".$obj->socid."\">".$obj->name."</a></td>\n";
    -		print '<td align="left">'.$obj->code_fournisseur.'&nbsp;</td>';
    +		print '<td class="left">'.$obj->code_fournisseur.'&nbsp;</td>';
     		print '<td align="right">'.dol_print_date($db->jdate($obj->tms),'day').'</td>';
     		print "</tr>\n";
     	}
    @@ -313,6 +311,6 @@ if (count($companystatic->SupplierCategories))
     //print "</td></tr></table>\n";
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/js/lib_dispatch.js b/htdocs/fourn/js/lib_dispatch.js
    index c2c570643f8..d183aeb4e48 100644
    --- a/htdocs/fourn/js/lib_dispatch.js
    +++ b/htdocs/fourn/js/lib_dispatch.js
    @@ -23,23 +23,23 @@
     /**
      * addDispatchLine
      * Adds new table row for dispatching to multiple stock locations
    - * 
    + *
      * @param	index	int		index of product line. 0 = first product line
      * @param	type	string	type of dispatch (batch = batch dispatch, dispatch = non batch dispatch)
      * @param	mode	string	'qtymissing' will create new line with qty missing, 'lessone' will keep 1 in old line and the rest in new one
      */
    -function addDispatchLine(index, type, mode) 
    +function addDispatchLine(index, type, mode)
     {
     	mode = mode || 'qtymissing'
    -	
    +
     	console.log("fourn/js/lib_dispatch.js Split line type="+type+" index="+index+" mode="+mode);
     	var $row = $("tr[name='"+type+'_0_'+index+"']").clone(true), 		// clone first batch line to jQuery object
     		nbrTrs = $("tr[name^='"+type+"_'][name$='_"+index+"']").length, // position of line for batch
     		qtyOrdered = parseFloat($("#qty_ordered_0_"+index).val()), 		// Qty ordered is same for all rows
     		qty = parseFloat($("#qty_"+(nbrTrs - 1)+"_"+index).val()),
     		qtyDispatched;
    -			
    -	if (mode === 'lessone') 
    +
    +	if (mode === 'lessone')
     	{
     		qtyDispatched = parseFloat($("#qty_dispatched_0_"+index).val()) + 1;
     	}
    @@ -47,7 +47,7 @@ function addDispatchLine(index, type, mode)
     	{
     		qtyDispatched = parseFloat($("#qty_dispatched_0_"+index).val()) + qty;
     	}
    -	
    +
     	if (qtyDispatched < qtyOrdered)
     	{
     		//replace tr suffix nbr
    @@ -62,19 +62,19 @@ function addDispatchLine(index, type, mode)
     		$row.attr('name',type+'_'+nbrTrs+'_'+index);
     		//insert new row before last row
     		$("tr[name^='"+type+"_'][name$='_"+index+"']:last").after($row);
    -		
    +
     		//remove cloned select2 with duplicate id.
     		$("#s2id_entrepot_"+nbrTrs+'_'+index).detach();			// old way to find duplicated select2 component
     		$(".csswarehouse_"+nbrTrs+"_"+index+":first-child").parent("span.selection").parent(".select2").detach();
    -		
    +
     		/*  Suffix of lines are:  _ trs.length _ index  */
     		$("#qty_"+nbrTrs+"_"+index).focus();
     		$("#qty_dispatched_0_"+index).val(qtyDispatched);
    -		
    +
     		//hide all buttons then show only the last one
     		$("tr[name^='"+type+"_'][name$='_"+index+"'] .splitbutton").hide();
     		$("tr[name^='"+type+"_'][name$='_"+index+"']:last .splitbutton").show();
    -		
    +
     		if (mode === 'lessone')
     		{
     			qty = 1; // keep 1 in old line
    @@ -94,11 +94,11 @@ function addDispatchLine(index, type, mode)
     
     /**
      * onChangeDispatchLineQty
    - * 
    - * Change event handler for dispatch qty input field, 
    + *
    + * Change event handler for dispatch qty input field,
      * recalculate qty dispatched when qty input has changed.
      * If qty is more then qty ordered reset input qty to max qty to dispatch.
    - * 
    + *
      * element requires arbitrary data qty (value before change), type (type of dispatch) and index (index of product line)
      */
     
    @@ -124,4 +124,4 @@ function onChangeDispatchLineQty() {
     		}
     		$(this).data('qty', $(this).val());
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/fourn/paiement/card.php b/htdocs/fourn/paiement/card.php
    index daa452d0c29..533ab088ffe 100644
    --- a/htdocs/fourn/paiement/card.php
    +++ b/htdocs/fourn/paiement/card.php
    @@ -32,10 +32,7 @@ require DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.class.php';
     require DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
     require DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
     
    -$langs->load('bills');
    -$langs->load('banks');
    -$langs->load('companies');
    -$langs->load("suppliers");
    +$langs->loadLangs(array('bills', 'banks', 'companies', 'suppliers'));
     
     $id			= GETPOST('id','int');
     $action		= GETPOST('action','alpha');
    @@ -127,7 +124,7 @@ if ($action == 'setnum_paiement' && ! empty($_POST['num_paiement']))
     if ($action == 'setdatep' && ! empty($_POST['datepday']))
     {
     	$object->fetch($id);
    -	$datepaye = dol_mktime(12, 0, 0, $_POST['datepmonth'], $_POST['datepday'], $_POST['datepyear']);
    +	$datepaye = dol_mktime(GETPOST('datephour','int'), GETPOST('datepmin','int'), GETPOST('datepsec','int'), GETPOST('datepmonth','int'), GETPOST('datepday','int'), GETPOST('datepyear','int'));
     	$res = $object->update_date($datepaye);
     	if ($res === 0)
     	{
    @@ -169,7 +166,6 @@ if ($result > 0)
     	if ($action == 'delete')
     	{
     		print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete');
    -
     	}
     
     	/*
    @@ -178,7 +174,6 @@ if ($result > 0)
     	if ($action == 'valide')
     	{
     		print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans("ValidatePayment"), $langs->trans("ConfirmValidatePayment"), 'confirm_valide');
    -
     	}
     
     	$linkback = '<a href="' . DOL_URL_ROOT . '/fourn/facture/paiement.php' . (! empty($socid) ? '?socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>';
    @@ -198,17 +193,21 @@ if ($result > 0)
     
     	// Date payment
     	print '<tr><td class="titlefield" colspan="2">'.$form->editfieldkey("Date",'datep',$object->date,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer).'</td><td colspan="3">';
    -	print $form->editfieldval("Date",'datep',$object->date,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer,'datepicker','',null,$langs->trans('PaymentDateUpdateSucceeded'));
    +	print $form->editfieldval("Date",'datep',$object->date,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer,'datehourpicker','',null,$langs->trans('PaymentDateUpdateSucceeded'));
     	print '</td></tr>';
     
     	// Payment mode
     	$labeltype=$langs->trans("PaymentType".$object->type_code)!=("PaymentType".$object->type_code)?$langs->trans("PaymentType".$object->type_code):$object->type_libelle;
    -	print '<tr><td colspan="2">'.$langs->trans('PaymentMode').'</td><td colspan="3">'.$labeltype.'</td></tr>';
    +	print '<tr><td colspan="2">'.$langs->trans('PaymentMode').'</td><td colspan="3">'.$labeltype;
    +	print $object->num_paiement?' - '.$object->num_paiement:'';
    +	print '</td></tr>';
     
     	// Payment numero
    -	print '<tr><td colspan="2">'.$form->editfieldkey("Numero",'num_paiement',$object->numero,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer).'</td><td colspan="3">';
    -	print $form->editfieldval("Numero",'num_paiement',$object->numero,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer,'string','',null,$langs->trans('PaymentNumberUpdateSucceeded'));
    +	/* TODO Add field num_payment into payment table and save it
    +	print '<tr><td colspan="2">'.$form->editfieldkey("Numero",'num_paiement',$object->num_paiement,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer).'</td><td colspan="3">';
    +	print $form->editfieldval("Numero",'num_paiement',$object->num_paiement,$object,$object->statut == 0 && $user->rights->fournisseur->facture->creer,'string','',null,$langs->trans('PaymentNumberUpdateSucceeded'));
     	print '</td></tr>';
    +    */
     
     	// Amount
     	print '<tr><td colspan="2">'.$langs->trans('Amount').'</td><td colspan="3">'.price($object->montant,'',$langs,0,0,-1,$conf->currency).'</td></tr>';
    @@ -218,11 +217,6 @@ if ($result > 0)
     		print '<tr><td colspan="2">'.$langs->trans('Status').'</td><td colspan="3">'.$object->getLibStatut(4).'</td></tr>';
     	}
     
    -	// Note
    -	print '<tr><td colspan="2">'.$form->editfieldkey("Note",'note',$object->note,$object,$user->rights->fournisseur->facture->creer).'</td><td colspan="3">';
    -	print $form->editfieldval("Note",'note',$object->note,$object,$user->rights->fournisseur->facture->creer,'textarea');
    -	print '</td></tr>';
    -
     	$allow_delete = 1 ;
     	// Bank account
     	if (! empty($conf->banque->enabled))
    @@ -237,13 +231,6 @@ if ($result > 0)
     				$title_button = dol_escape_htmltag($langs->transnoentitiesnoconv("CantRemoveConciliatedPayment"));
     			}
     
    -			print '<tr>';
    -			print '<td colspan="2">'.$langs->trans('BankTransactionLine').'</td>';
    -			print '<td colspan="3">';
    -			print $bankline->getNomUrl(1,0,'showconciliated');
    -			print '</td>';
    -			print '</tr>';
    -
     			print '<tr>';
     			print '<td colspan="2">'.$langs->trans('BankAccount').'</td>';
     			print '<td colspan="3">';
    @@ -252,9 +239,21 @@ if ($result > 0)
     			print $accountstatic->getNomUrl(1);
     			print '</td>';
     			print '</tr>';
    +
    +			print '<tr>';
    +			print '<td colspan="2">'.$langs->trans('BankTransactionLine').'</td>';
    +			print '<td colspan="3">';
    +			print $bankline->getNomUrl(1,0,'showconciliated');
    +			print '</td>';
    +			print '</tr>';
     		}
     	}
     
    +	// Note
    +	print '<tr><td colspan="2">'.$form->editfieldkey("Note",'note',$object->note,$object,$user->rights->fournisseur->facture->creer).'</td><td colspan="3">';
    +	print $form->editfieldval("Note",'note',$object->note,$object,$user->rights->fournisseur->facture->creer,'textarea');
    +	print '</td></tr>';
    +
     	print '</table>';
     
     	print '</div>';
    @@ -281,9 +280,9 @@ if ($result > 0)
     		print '<td>'.$langs->trans('Ref').'</td>';
     		print '<td>'.$langs->trans('RefSupplier').'</td>';
     		print '<td>'.$langs->trans('Company').'</td>';
    -		print '<td align="right">'.$langs->trans('ExpectedToPay').'</td>';
    -		print '<td align="center">'.$langs->trans('Status').'</td>';
    -		print '<td align="right">'.$langs->trans('PayedByThisPayment').'</td>';
    +		print '<td class="right">'.$langs->trans('ExpectedToPay').'</td>';
    +		print '<td class="right">'.$langs->trans('PayedByThisPayment').'</td>';
    +		print '<td class="right">'.$langs->trans('Status').'</td>';
     		print "</tr>\n";
     
     		if ($num > 0)
    @@ -307,12 +306,13 @@ if ($result > 0)
     				// Third party
     				print '<td><a href="'.DOL_URL_ROOT.'/fourn/card.php?socid='.$objp->socid.'">'.img_object($langs->trans('ShowCompany'),'company').' '.$objp->name.'</a></td>';
     				// Expected to pay
    -				print '<td align="right">'.price($objp->total_ttc).'</td>';
    -				// Status
    -				print '<td align="center">'.$facturestatic->LibStatut($objp->paye,$objp->fk_statut,2,1).'</td>';
    +				print '<td class="right">'.price($objp->total_ttc).'</td>';
     				// Payed
    -				print '<td align="right">'.price($objp->amount).'</td>';
    +				print '<td class="right">'.price($objp->amount).'</td>';
    +				// Status
    +				print '<td class="right">'.$facturestatic->LibStatut($objp->paye, $objp->fk_statut, 6, 1).'</td>';
     				print "</tr>\n";
    +
     				if ($objp->paye == 1)
     				{
     					$allow_delete = 0;
    @@ -348,7 +348,6 @@ if ($result > 0)
     		   	|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->fournisseur->supplier_invoice_advance->validate)))
     			{
     				print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;action=valide">'.$langs->trans('Valid').'</a>';
    -
     			}
     		}
     	}
    @@ -362,7 +361,7 @@ if ($result > 0)
     			}
     			else
     			{
    -				print '<a class="butActionRefused" href="#" title="'.$title_button.'">'.$langs->trans('Delete').'</a>';
    +				print '<a class="butActionRefused classfortooltip" href="#" title="'.$title_button.'">'.$langs->trans('Delete').'</a>';
     			}
     		}
     	}
    @@ -407,6 +406,6 @@ else
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/paiement/info.php b/htdocs/fourn/paiement/info.php
    index eafc4f2decc..1c670c1396a 100644
    --- a/htdocs/fourn/paiement/info.php
    +++ b/htdocs/fourn/paiement/info.php
    @@ -28,9 +28,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
     
    -$langs->load("bills");
    -$langs->load("suppliers");
    -$langs->load("companies");
    +$langs->loadLangs(array("bills", "suppliers", "companies"));
     
     $id			= GETPOST('id','int');
     
    @@ -57,6 +55,6 @@ print '<table width="100%"><tr><td>';
     dol_print_object_info($object);
     print '</td></tr></table>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/fourn/product/list.php b/htdocs/fourn/product/list.php
    index 47bc949a758..7a623e2cba2 100644
    --- a/htdocs/fourn/product/list.php
    +++ b/htdocs/fourn/product/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010	   Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2012      Christophe Battarel   <christophe.battarel@altairis.fr>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    @@ -117,6 +117,7 @@ if ($fourn_id)
     
     
     $arrayofmassactions =  array(
    +	'generate_doc'=>$langs->trans("Generate"),
         'presend'=>$langs->trans("SendByMail"),
         'builddoc'=>$langs->trans("PDFMerge"),
     );
    @@ -308,5 +309,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/fourn/recap-fourn.php b/htdocs/fourn/recap-fourn.php
    index e680c18074e..a7bf791228e 100644
    --- a/htdocs/fourn/recap-fourn.php
    +++ b/htdocs/fourn/recap-fourn.php
    @@ -1,6 +1,7 @@
     <?php
     /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2019 Pierre Ardoin <mapiolca@me.com>
      *
      * 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
    @@ -76,6 +77,7 @@ if ($socid > 0)
             $sql.= " u.login, u.rowid as userid";
             $sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture_fourn as f,".MAIN_DB_PREFIX."user as u";
             $sql.= " WHERE f.fk_soc = s.rowid AND s.rowid = ".$societe->id;
    +	$sql.= " AND f.entity IN (".getEntity("facture_fourn").")"; // Reconaissance de l'entité attribuée à cette facture pour Multicompany
             $sql.= " AND f.fk_user_valid = u.rowid";
             $sql.= " ORDER BY f.datef DESC";
     
    @@ -191,5 +193,6 @@ else
         dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/ftp/admin/ftpclient.php b/htdocs/ftp/admin/ftpclient.php
    index ee7acc9070d..07f2847eda2 100644
    --- a/htdocs/ftp/admin/ftpclient.php
    +++ b/htdocs/ftp/admin/ftpclient.php
    @@ -25,8 +25,7 @@
     require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     
    -$langs->load("admin");
    -$langs->load("ftp");
    +$langs->loadLangs(array("admin", "ftp"));
     
     // Security check
     if (!$user->admin) accessforbidden();
    @@ -309,6 +308,6 @@ else
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/ftp/index.php b/htdocs/ftp/index.php
    index 943d4fa94e1..fd2e5e80772 100644
    --- a/htdocs/ftp/index.php
    +++ b/htdocs/ftp/index.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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,7 +22,7 @@
      *	\brief      Main page for FTP section area
      */
     
    -require('../main.inc.php');
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php';
    @@ -235,7 +235,6 @@ if ($_POST["const"] && $_POST["delete"] && $_POST["delete"] == $langs->trans("De
     				$action='';
     			}
     		}
    -
     	}
     	else
     	{
    @@ -339,7 +338,6 @@ if ($action == 'download')
     		{
     			setEventMessages($langs->transnoentitiesnoconv('FailedToGetFile',$remotefile), null, 'errors');
     		}
    -
     	}
     	else
     	{
    @@ -378,7 +376,7 @@ jQuery(document).ready(function() {
     		$(".checkboxfordelete").prop('checked', false);
     		jQuery("#delconst").hide();
     	});
    -	
    +
     });
     
     </script>
    @@ -408,7 +406,6 @@ else
     		if ($action == 'delete')
     		{
     			print $form->formconfirm($_SERVER["PHP_SELF"].'?numero_ftp='.$numero_ftp.'&section='.urlencode($_REQUEST["section"]).'&file='.urlencode($_GET["file"]), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile','','',1);
    -			
     		}
     
     		// Confirmation de la suppression d'une ligne categorie
    @@ -486,7 +483,7 @@ else
     			$newsection=$section;
     		    $newsectioniso=utf8_decode($section);
     			//$newsection='/home';
    -			
    +
     			// List content of directory ($newsection = '/', '/home', ...)
     			if (! empty($conf->global->FTP_CONNECT_WITH_SFTP))
     			{
    @@ -551,7 +548,7 @@ else
     					$is_directory=ftp_isdir($conn_id, $newremotefileiso);
     				}
     
    -				
    +
     				print '<tr class="oddeven" height="18">';
     				// Name
     				print '<td>';
    @@ -610,19 +607,18 @@ else
     				$i++;
     				$nbofentries++;
     			}
    -
     		}
     
     		print "</table>";
     
    -		
    +
     		if (! $ok)
     		{
     		      print $mesg.'<br>'."\n";
     		      setEventMessages($mesg, null, 'errors');
     		}
    -		
    -		
    +
    +
     		// Actions
     		/*
     		if ($user->rights->ftp->write && ! empty($section))
    @@ -654,7 +650,7 @@ else
     				break;
     			}
     			$i++;
    -		}		
    +		}
     	    if (! $foundsetup)
     	    {
                 print $langs->trans("SetupOfFTPClientModuleNotComplete");
    @@ -669,11 +665,11 @@ else
     print '<br>';
     
     // Close FTP connection
    -if ($conn_id) 
    +if ($conn_id)
     {
         if (! empty($conf->global->FTP_CONNECT_WITH_SFTP))
         {
    -        
    +
         }
         else if (! empty($conf->global->FTP_CONNECT_WITH_SSL))
         {
    @@ -684,10 +680,9 @@ if ($conn_id)
             ftp_close($conn_id);
         }
     }
    -    
     
    +// End of page
     llxFooter();
    -
     $db->close();
     
     
    @@ -709,7 +704,7 @@ function dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $sect
     
     	$ok=1;
         $conn_id=null;
    -    
    +
     	if (! is_numeric($ftp_port))
     	{
     		$mesg=$langs->transnoentitiesnoconv("FailedToConnectToFTPServer",$ftp_server,$ftp_port);
    @@ -719,17 +714,17 @@ function dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $sect
     	if ($ok)
     	{
     		$connecttimeout=(empty($conf->global->FTP_CONNECT_TIMEOUT)?40:$conf->global->FTP_CONNECT_TIMEOUT);
    -		if (! empty($conf->global->FTP_CONNECT_WITH_SFTP)) 
    +		if (! empty($conf->global->FTP_CONNECT_WITH_SFTP))
     		{
     		    dol_syslog('Try to connect with ssh2_ftp');
     		    $tmp_conn_id = ssh2_connect($ftp_server, $ftp_port);
     		}
    -		else if (! empty($conf->global->FTP_CONNECT_WITH_SSL)) 
    +		else if (! empty($conf->global->FTP_CONNECT_WITH_SSL))
     		{
     		    dol_syslog('Try to connect with ftp_ssl_connect');
     		    $conn_id = ftp_ssl_connect($ftp_server, $ftp_port, $connecttimeout);
     		}
    -		else 
    +		else
     		{
     		    dol_syslog('Try to connect with ftp_connect');
     		    $conn_id = ftp_connect($ftp_server, $ftp_port, $connecttimeout);
    @@ -744,7 +739,7 @@ function dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $sect
         				{
         					// Turn on passive mode transfers (must be after a successful login
         					//if ($ftp_passive) ftp_pasv($conn_id, true);
    -    
    +
         					// Change the dir
         					$newsectioniso=utf8_decode($section);
         					//ftp_chdir($conn_id, $newsectioniso);
    @@ -756,25 +751,25 @@ function dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $sect
             				    $error++;
     		                }
         				}
    -    				else 
    +    				else
         				{
         					$mesg=$langs->transnoentitiesnoconv("FailedToConnectToFTPServerWithCredentials");
     	   				    $ok=0;
         				    $error++;
         				}
    -				}   
    +				}
     				else
     				{
     				    if (ftp_login($conn_id, $ftp_user, $ftp_password))
         				{
         					// Turn on passive mode transfers (must be after a successful login
         					if ($ftp_passive) ftp_pasv($conn_id, true);
    -    
    +
         					// Change the dir
         					$newsectioniso=utf8_decode($section);
         					ftp_chdir($conn_id, $newsectioniso);
         				}
    -    				else 
    +    				else
         				{
         					$mesg=$langs->transnoentitiesnoconv("FailedToConnectToFTPServerWithCredentials");
     	   				    $ok=0;
    @@ -809,7 +804,6 @@ function ftp_isdir($connect_id,$dir)
     	{
     		ftp_cdup($connect_id);
     		return 1;
    -
     	}
     	else
     	{
    diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php
    index 2ac212527b3..0f22e07245b 100644
    --- a/htdocs/holiday/card.php
    +++ b/htdocs/holiday/card.php
    @@ -1,10 +1,11 @@
     <?php
     /* Copyright (C) 2011		Dimitri Mouillard	<dmouillard@teclib.com>
      * Copyright (C) 2012-2016	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012-2016	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012-2016	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2017		Alexandre Spangaro	<aspangaro@zendsi.com>
    - * Copyright (C) 2014-2017	Ferran Marcet		<fmarcet@2byte.es>
    + * Copyright (C) 2014-2017  Ferran Marcet		<fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -26,7 +27,7 @@
      *		\brief      Form and file creation of paid holiday.
      */
     
    -require('../main.inc.php');
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
     require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    @@ -40,6 +41,7 @@ require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php';
     // Get parameters
     $action=GETPOST('action', 'alpha');
     $id=GETPOST('id', 'int');
    +$ref=GETPOST('ref', 'alpha');
     $fuserid = (GETPOST('fuserid','int')?GETPOST('fuserid','int'):$user->id);
     
     // Protection if external user
    @@ -213,7 +215,7 @@ if ($action == 'update')
         $object->fetch($id);
     
     	// If under validation
    -    if ($object->statut == 1)
    +    if ($object->statut == Holiday::STATUS_DRAFT)
         {
             // If this is the requestor or has read/write rights
             if ($cancreate)
    @@ -297,7 +299,7 @@ if ($action == 'confirm_delete' && GETPOST('confirm') == 'yes' && $user->rights-
     	$object->fetch($id);
     
         // If this is a rough draft, approved, canceled or refused
    -	if ($object->statut == 1 || $object->statut == 4 || $object->statut == 5)
    +	if ($object->statut == Holiday::STATUS_DRAFT || $object->statut == Holiday::STATUS_CANCELED || $object->statut == Holiday::STATUS_REFUSED)
     	{
     		// Si l'utilisateur à le droit de lire cette demande, il peut la supprimer
     		if ($candelete)
    @@ -324,18 +326,20 @@ if ($action == 'confirm_delete' && GETPOST('confirm') == 'yes' && $user->rights-
     	}
     }
     
    -// Si envoi de la demande
    +// Action validate (+ send email for approval)
     if ($action == 'confirm_send')
     {
         $object = new Holiday($db);
         $object->fetch($id);
     
         // Si brouillon et créateur
    -    if($object->statut == 1 && $cancreate)
    +    if($object->statut == Holiday::STATUS_DRAFT && $cancreate)
         {
    -        $object->statut = 2;
    +    	$object->oldcopy = dol_clone($object);
     
    -        $verif = $object->update($user);
    +    	$object->statut = Holiday::STATUS_VALIDATED;
    +
    +        $verif = $object->validate($user);
     
             // Si pas d'erreur SQL on redirige vers la fiche de la demande
             if ($verif > 0)
    @@ -434,13 +438,15 @@ if ($action == 'confirm_valid')
         $object->fetch($id);
     
         // Si statut en attente de validation et valideur = utilisateur
    -    if ($object->statut == 2 && $user->id == $object->fk_validator)
    +    if ($object->statut == Holiday::STATUS_VALIDATED && $user->id == $object->fk_validator)
         {
    +    	$object->oldcopy = dol_clone($object);
    +
             $object->date_valid = dol_now();
             $object->fk_user_valid = $user->id;
    -        $object->statut = 3;
    +        $object->statut = Holiday::STATUS_APPROVED;
     
    -        $verif = $object->update($user);
    +        $verif = $object->approve($user);
     
             // Si pas d'erreur SQL on redirige vers la fiche de la demande
             if ($verif > 0)
    @@ -529,11 +535,11 @@ if ($action == 'confirm_refuse' && GETPOST('confirm','alpha') == 'yes')
             $object->fetch($id);
     
             // Si statut en attente de validation et valideur = utilisateur
    -        if ($object->statut == 2 && $user->id == $object->fk_validator)
    +        if ($object->statut == Holiday::STATUS_VALIDATED && $user->id == $object->fk_validator)
             {
                 $object->date_refuse = dol_print_date('dayhour', dol_now());
                 $object->fk_user_refuse = $user->id;
    -            $object->statut = 5;
    +            $object->statut = Holiday::STATUS_REFUSED;
                 $object->detail_refuse = GETPOST('detail_refuse','alphanohtml');
     
                 $verif = $object->update($user);
    @@ -614,7 +620,7 @@ if ($action == 'confirm_draft' && GETPOST('confirm') == 'yes')
         $object->fetch($id);
     
         $oldstatus = $object->statut;
    -    $object->statut = 1;
    +    $object->statut = Holiday::STATUS_DRAFT;
     
         $result = $object->update($user);
         if ($result < 0)
    @@ -645,18 +651,18 @@ if ($action == 'confirm_cancel' && GETPOST('confirm') == 'yes')
         $object->fetch($id);
     
         // Si statut en attente de validation et valideur = valideur ou utilisateur, ou droits de faire pour les autres
    -    if (($object->statut == 2 || $object->statut == 3) && ($user->id == $object->fk_validator || in_array($object->fk_user, $childids) || ! empty($user->rights->holiday->write_all)))
    +    if (($object->statut == Holiday::STATUS_VALIDATED || $object->statut == Holiday::STATUS_APPROVED) && ($user->id == $object->fk_validator || in_array($object->fk_user, $childids) || ! empty($user->rights->holiday->write_all)))
         {
         	$db->begin();
     
         	$oldstatus = $object->statut;
             $object->date_cancel = dol_now();
             $object->fk_user_cancel = $user->id;
    -        $object->statut = 4;
    +        $object->statut = Holiday::STATUS_CANCELED;
     
             $result = $object->update($user);
     
    -        if ($result >= 0 && $oldstatus == 3)	// holiday was already validated, status 3, so we must increase back sold
    +        if ($result >= 0 && $oldstatus == Holiday::STATUS_APPROVED)	// holiday was already validated, status 3, so we must increase back sold
             {
             	// Calculcate number of days consummed
             	$nbopenedday=num_open_day($object->date_debut_gmt,$object->date_fin_gmt,0,1,$object->halfday);
    @@ -740,7 +746,6 @@ if ($action == 'confirm_cancel' && GETPOST('confirm') == 'yes')
                 }
             }
         }
    -
     }
     
     
    @@ -756,7 +761,7 @@ $listhalfday=array('morning'=>$langs->trans("Morning"),"afternoon"=>$langs->tran
     
     llxHeader('', $langs->trans('CPTitreMenu'));
     
    -if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create')
    +if ((empty($id) && empty($ref)) || $action == 'add' || $action == 'request' || $action == 'create')
     {
         // Si l'utilisateur n'a pas le droit de faire une demande
         if (($fuserid == $user->id && empty($user->rights->holiday->write)) || ($fuserid != $user->id && empty($user->rights->holiday->write_all)))
    @@ -909,10 +914,10 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
             print '<td>';
             // Si la demande ne vient pas de l'agenda
             if (! GETPOST('date_debut_')) {
    -            $form->select_date(-1, 'date_debut_', 0, 0, 0, '', 1, 1);
    +            print $form->selectDate(-1, 'date_debut_', 0, 0, 0, '', 1, 1);
             } else {
                 $tmpdate = dol_mktime(0, 0, 0, GETPOST('date_debut_month','int'), GETPOST('date_debut_day','int'), GETPOST('date_debut_year','int'));
    -            $form->select_date($tmpdate, 'date_debut_', 0, 0, 0, '', 1, 1);
    +            print $form->selectDate($tmpdate, 'date_debut_', 0, 0, 0, '', 1, 1);
             }
             print ' &nbsp; &nbsp; ';
             print $form->selectarray('starthalfday', $listhalfday, (GETPOST('starthalfday','alpha')?GETPOST('starthalfday','alpha'):'morning'));
    @@ -928,10 +933,10 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
             print '<td>';
             // Si la demande ne vient pas de l'agenda
             if (! GETPOST('date_fin_')) {
    -            $form->select_date(-1,'date_fin_', 0, 0, 0, '', 1, 1);
    +            print $form->selectDate(-1, 'date_fin_', 0, 0, 0, '', 1, 1);
             } else {
                 $tmpdate = dol_mktime(0, 0, 0, GETPOST('date_fin_month','int'), GETPOST('date_fin_day','int'), GETPOST('date_fin_year','int'));
    -            $form->select_date($tmpdate,'date_fin_', 0, 0, 0, '', 1, 1);
    +            print $form->selectDate($tmpdate, 'date_fin_', 0, 0, 0, '', 1, 1);
             }
             print ' &nbsp; &nbsp; ';
             print $form->selectarray('endhalfday', $listhalfday, (GETPOST('endhalfday','alpha')?GETPOST('endhalfday','alpha'):'afternoon'));
    @@ -993,9 +998,9 @@ else
         else
         {
             // Affichage de la fiche d'une demande de congés payés
    -        if ($id > 0)
    +        if (($id > 0) || $ref)
             {
    -            $object->fetch($id);
    +        	$result = $object->fetch($id, $ref);
     
                 $valideur = new User($db);
                 $valideur->fetch($object->fk_validator);
    @@ -1059,7 +1064,7 @@ else
     
                     $linkback='<a href="'.DOL_URL_ROOT.'/holiday/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
     
    -                dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref');
    +                dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref');
     
     
                     print '<div class="fichecenter">';
    @@ -1104,9 +1109,9 @@ else
                         print '<tr>';
                         print '<td class="nowrap">'.$langs->trans('DateDebCP').' ('.$langs->trans("FirstDayOfHoliday").')</td>';
                         print '<td>';
    -                    $form->select_date($object->date_debut,'date_debut_');
    -			        print ' &nbsp; &nbsp; ';
    -        			print $form->selectarray('starthalfday', $listhalfday, (GETPOST('starthalfday')?GETPOST('starthalfday'):$starthalfday));
    +                    print $form->selectDate($object->date_debut, 'date_debut_');
    +                    print ' &nbsp; &nbsp; ';
    +                    print $form->selectarray('starthalfday', $listhalfday, (GETPOST('starthalfday')?GETPOST('starthalfday'):$starthalfday));
                         print '</td>';
                         print '</tr>';
                     }
    @@ -1126,9 +1131,9 @@ else
                         print '<tr>';
                         print '<td class="nowrap">'.$langs->trans('DateFinCP').' ('.$langs->trans("LastDayOfHoliday").')</td>';
                         print '<td>';
    -                    $form->select_date($object->date_fin,'date_fin_');
    -			        print ' &nbsp; &nbsp; ';
    -        			print $form->selectarray('endhalfday', $listhalfday, (GETPOST('endhalfday')?GETPOST('endhalfday'):$endhalfday));
    +                    print $form->selectDate($object->date_fin, 'date_fin_');
    +                    print ' &nbsp; &nbsp; ';
    +                    print $form->selectarray('endhalfday', $listhalfday, (GETPOST('endhalfday')?GETPOST('endhalfday'):$endhalfday));
                         print '</td>';
                         print '</tr>';
                     }
    @@ -1255,7 +1260,7 @@ else
                     }
     
                     // Si envoi en validation
    -                if ($action == 'sendToValidate' && $object->statut == 1)
    +                if ($action == 'sendToValidate' && $object->statut == Holiday::STATUS_DRAFT)
                     {
                     	print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id,$langs->trans("TitleToValidCP"),$langs->trans("ConfirmToValidCP"),"confirm_send", '', 1, 1);
                     }
    @@ -1286,10 +1291,10 @@ else
                     }
     
     
    -                if ($action == 'edit' && $object->statut == 1)
    +                if ($action == 'edit' && $object->statut == Holiday::STATUS_DRAFT)
                     {
                         print '<div align="center">';
    -                    if ($cancreate && $object->statut == 1)
    +                    if ($cancreate && $object->statut == Holiday::STATUS_DRAFT)
                         {
                             print '<input type="submit" value="'.$langs->trans("Save").'" class="button">';
                         }
    @@ -1321,14 +1326,14 @@ else
                             }
                             else
                             {
    -                            print '<a href="#" class="butActionRefused" title="'.$langs->trans("NotTheAssignedApprover").'">'.$langs->trans("Approve").'</a>';
    -                            print '<a href="#" class="butActionRefused" title="'.$langs->trans("NotTheAssignedApprover").'">'.$langs->trans("ActionRefuseCP").'</a>';
    +                            print '<a href="#" class="butActionRefused classfortooltip" title="'.$langs->trans("NotTheAssignedApprover").'">'.$langs->trans("Approve").'</a>';
    +                            print '<a href="#" class="butActionRefused classfortooltip" title="'.$langs->trans("NotTheAssignedApprover").'">'.$langs->trans("ActionRefuseCP").'</a>';
                             }
                         }
                         if (($user->id == $object->fk_validator || in_array($object->fk_user, $childids) || ! empty($user->rights->holiday->write_all)) && ($object->statut == 2 || $object->statut == 3))	// Status validated or approved
                         {
                         	if (($object->date_debut > dol_now()) || $user->admin) print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=cancel" class="butAction">'.$langs->trans("ActionCancelCP").'</a>';
    -                    	else print '<a href="#" class="butActionRefused" title="'.$langs->trans("HolidayStarted").'">'.$langs->trans("ActionCancelCP").'</a>';
    +                    	else print '<a href="#" class="butActionRefused classfortooltip" title="'.$langs->trans("HolidayStarted").'">'.$langs->trans("ActionCancelCP").'</a>';
                         }
                         if ($cancreate && $object->statut == Holiday::STATUS_CANCELED)
                         {
    @@ -1341,23 +1346,19 @@ else
     
                         print '</div>';
                     }
    -
                 } else {
                     print '<div class="tabBar">';
                     print $langs->trans('ErrorUserViewCP');
                     print '<br><br><input type="button" value="'.$langs->trans("ReturnCP").'" class="button" onclick="history.go(-1)" />';
                     print '</div>';
                 }
    -
             } else {
                 print '<div class="tabBar">';
                 print $langs->trans('ErrorIDFicheCP');
                 print '<br><br><input type="button" value="'.$langs->trans("ReturnCP").'" class="button" onclick="history.go(-1)" />';
                 print '</div>';
             }
    -
         }
    -
     }
     
     // End of page
    diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php
    index 03b2491ab59..f5761876795 100644
    --- a/htdocs/holiday/class/holiday.class.php
    +++ b/htdocs/holiday/class/holiday.class.php
    @@ -1,9 +1,10 @@
     <?php
     /* Copyright (C) 2011		Dimitri Mouillard	<dmouillard@teclib.com>
      * Copyright (C) 2012-2014	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012-2016	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012-2016	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Florian Henry		<florian.henry@open-concept.pro>
      * Copyright (C) 2016       Juanjo Menent       <jmenent@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -32,44 +33,94 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class Holiday extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='holiday';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='holiday';
    -	public $ismultientitymanaged = 0;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    -	var $fk_element = 'fk_holiday';
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 0;
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
    +	public $fk_element = 'fk_holiday';
    +
     	public $picto = 'holiday';
     
     	/**
     	 * @deprecated
    -	 * @see id
    +	 * @see $id
     	 */
    -	var $rowid;
    +	public $rowid;
     
    -	var $fk_user;
    -	var $date_create='';
    -	var $description;
    -	var $date_debut='';			// Date start in PHP server TZ
    -	var $date_fin='';			// Date end in PHP server TZ
    -	var $date_debut_gmt='';		// Date start in GMT
    -	var $date_fin_gmt='';		// Date end in GMT
    -	var $halfday='';			// 0:Full days, 2:Start afternoon end morning, -1:Start afternoon end afternoon, 1:Start morning end morning
    -	var $statut='';				// 1=draft, 2=validated, 3=approved
    -	var $fk_validator;
    -	var $date_valid='';
    -	var $fk_user_valid;
    -	var $date_refuse='';
    -	var $fk_user_refuse;
    -	var $date_cancel='';
    -	var $fk_user_cancel;
    -	var $detail_refuse='';
    -	var $fk_type;
    +	/**
    +	 * @var int User ID
    +	 */
    +	public $fk_user;
     
    -	var $holiday = array();
    -	var $events = array();
    -	var $logs = array();
    +	public $date_create='';
     
    -	var $optName = '';
    -	var $optValue = '';
    -	var $optRowid = '';
    +	/**
    +	 * @var string description
    +	 */
    +	public $description;
    +
    +	public $date_debut='';			// Date start in PHP server TZ
    +	public $date_fin='';			// Date end in PHP server TZ
    +	public $date_debut_gmt='';		// Date start in GMT
    +	public $date_fin_gmt='';		// Date end in GMT
    +	public $halfday='';				// 0:Full days, 2:Start afternoon end morning, -1:Start afternoon end afternoon, 1:Start morning end morning
    +	public $statut='';				// 1=draft, 2=validated, 3=approved
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_validator;
    +
    +	public $date_valid='';
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_valid;
    +
    +	public $date_refuse='';
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_refuse;
    +
    +	public $date_cancel='';
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_cancel;
    +
    +	public $detail_refuse='';
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_type;
    +
    +	public $holiday = array();
    +	public $events = array();
    +	public $logs = array();
    +
    +	public $optName = '';
    +	public $optValue = '';
    +	public $optRowid = '';
     
     	/**
     	 * Draft status
    @@ -104,6 +155,67 @@ class Holiday extends CommonObject
     	}
     
     
    +	/**
    +	 *  Returns the reference to the following non used Order depending on the active numbering module
    +	 *  defined into HOLIDAY_ADDON
    +	 *
    +	 *	@param	Societe		$objsoc     third party object
    +	 *  @return string      			Holiday free reference
    +	 */
    +	function getNextNumRef($objsoc)
    +	{
    +		global $langs, $conf;
    +		$langs->load("order");
    +
    +		if (empty($conf->global->HOLIDAY_ADDON))
    +		{
    +			$conf->global->HOLIDAY_ADDON = 'mod_holiday_madonna';
    +		}
    +
    +		if (! empty($conf->global->HOLIDAY_ADDON))
    +		{
    +			$mybool=false;
    +
    +			$file = $conf->global->HOLIDAY_ADDON.".php";
    +			$classname = $conf->global->HOLIDAY_ADDON;
    +
    +			// Include file with class
    +			$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
    +			foreach ($dirmodels as $reldir)
    +			{
    +				$dir = dol_buildpath($reldir."core/modules/holiday/");
    +
    +				// Load file with numbering class (if found)
    +				$mybool|=@include_once $dir.$file;
    +			}
    +
    +			if ($mybool === false)
    +			{
    +				dol_print_error('',"Failed to include file ".$file);
    +				return '';
    +			}
    +
    +			$obj = new $classname();
    +			$numref = $obj->getNextValue($objsoc,$this);
    +
    +			if ($numref != "")
    +			{
    +				return $numref;
    +			}
    +			else
    +			{
    +				$this->error=$obj->error;
    +				//dol_print_error($this->db,get_class($this)."::getNextNumRef ".$obj->error);
    +				return "";
    +			}
    +		}
    +		else
    +		{
    +			print $langs->trans("Error")." ".$langs->trans("Error_HOLIDAY_ADDON_NotDefined");
    +			return "";
    +		}
    +	}
    +
     	/**
     	 * Update balance of vacations and check table of users for holidays is complete. If not complete.
     	 *
    @@ -221,14 +333,16 @@ class Holiday extends CommonObject
     	 *	Load object in memory from database
     	 *
     	 *  @param	int		$id         Id object
    +	 *  @param	string	$ref        Ref object
     	 *  @return int         		<0 if KO, >0 if OK
     	 */
    -	function fetch($id)
    +	function fetch($id, $ref='')
     	{
     		global $langs;
     
     		$sql = "SELECT";
     		$sql.= " cp.rowid,";
    +		$sql.= " cp.ref,";
     		$sql.= " cp.fk_user,";
     		$sql.= " cp.date_create,";
     		$sql.= " cp.description,";
    @@ -250,7 +364,8 @@ class Holiday extends CommonObject
     		$sql.= " cp.fk_type,";
     		$sql.= " cp.entity";
     		$sql.= " FROM ".MAIN_DB_PREFIX."holiday as cp";
    -		$sql.= " WHERE cp.rowid = ".$id;
    +		if ($id > 0) $sql.= " WHERE cp.rowid = ".$id;
    +		else $sql.=" WHERE cp.ref = '".$this->db->escape($ref)."'";
     
     		dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
     		$resql=$this->db->query($sql);
    @@ -262,7 +377,7 @@ class Holiday extends CommonObject
     
     				$this->id    = $obj->rowid;
     				$this->rowid = $obj->rowid;	// deprecated
    -				$this->ref   = $obj->rowid;
    +				$this->ref   = ($obj->ref?$obj->ref:$obj->rowid);
     				$this->fk_user = $obj->fk_user;
     				$this->date_create = $this->db->jdate($obj->date_create);
     				$this->description = $obj->description;
    @@ -311,6 +426,7 @@ class Holiday extends CommonObject
     
     		$sql = "SELECT";
     		$sql.= " cp.rowid,";
    +		$sql.= " cp.ref,";
     
     		$sql.= " cp.fk_user,";
     		$sql.= " cp.fk_type,";
    @@ -346,12 +462,12 @@ class Holiday extends CommonObject
     		$sql.= " AND cp.fk_user = uu.rowid AND cp.fk_validator = ua.rowid"; // Hack pour la recherche sur le tableau
     		$sql.= " AND cp.fk_user IN (".$user_id.")";
     
    -		// Filtre de séléction
    +		// Selection filter
     		if(!empty($filter)) {
     			$sql.= $filter;
     		}
     
    -		// Ordre d'affichage du résultat
    +		// Order of display of the result
     		if(!empty($order)) {
     			$sql.= $order;
     		}
    @@ -359,25 +475,26 @@ class Holiday extends CommonObject
     		dol_syslog(get_class($this)."::fetchByUser", LOG_DEBUG);
     		$resql=$this->db->query($sql);
     
    -		// Si pas d'erreur SQL
    +		// If no SQL error
     		if ($resql) {
     
     			$i = 0;
     			$tab_result = $this->holiday;
     			$num = $this->db->num_rows($resql);
     
    -			// Si pas d'enregistrement
    +			// If no registration
     			if(!$num) {
     				return 2;
     			}
     
    -			// Liste les enregistrements et les ajoutent au tableau
    +			// List the records and add them to the table
     			while($i < $num) {
     
     				$obj = $this->db->fetch_object($resql);
     
     				$tab_result[$i]['rowid'] = $obj->rowid;
    -				$tab_result[$i]['ref'] = $obj->rowid;
    +				$tab_result[$i]['ref'] = ($obj->ref?$obj->ref:$obj->rowid);
    +
     				$tab_result[$i]['fk_user'] = $obj->fk_user;
     				$tab_result[$i]['fk_type'] = $obj->fk_type;
     				$tab_result[$i]['date_create'] = $this->db->jdate($obj->date_create);
    @@ -412,13 +529,13 @@ class Holiday extends CommonObject
     				$i++;
     			}
     
    -			// Retourne 1 avec le tableau rempli
    +			// Returns 1 with the filled array
     			$this->holiday = $tab_result;
     			return 1;
     		}
     		else
     		{
    -			// Erreur SQL
    +			// SQL Error
     			$this->error="Error ".$this->db->lasterror();
     			return -1;
     		}
    @@ -437,6 +554,7 @@ class Holiday extends CommonObject
     
     		$sql = "SELECT";
     		$sql.= " cp.rowid,";
    +		$sql.= " cp.ref,";
     
     		$sql.= " cp.fk_user,";
     		$sql.= " cp.fk_type,";
    @@ -471,12 +589,12 @@ class Holiday extends CommonObject
     		$sql.= " WHERE cp.entity IN (".getEntity('holiday').")";
     		$sql.= " AND cp.fk_user = uu.rowid AND cp.fk_validator = ua.rowid "; // Hack pour la recherche sur le tableau
     
    -		// Filtrage de séléction
    +		// Selection filtering
     		if(!empty($filter)) {
     			$sql.= $filter;
     		}
     
    -		// Ordre d'affichage
    +		// order of display
     		if(!empty($order)) {
     			$sql.= $order;
     		}
    @@ -484,25 +602,25 @@ class Holiday extends CommonObject
     		dol_syslog(get_class($this)."::fetchAll", LOG_DEBUG);
     		$resql=$this->db->query($sql);
     
    -		// Si pas d'erreur SQL
    +		// If no SQL error
     		if ($resql) {
     
     			$i = 0;
     			$tab_result = $this->holiday;
     			$num = $this->db->num_rows($resql);
     
    -			// Si pas d'enregistrement
    +			// If no registration
     			if(!$num) {
     				return 2;
     			}
     
    -			// On liste les résultats et on les ajoutent dans le tableau
    +			// List the records and add them to the table
     			while($i < $num) {
     
     				$obj = $this->db->fetch_object($resql);
     
     				$tab_result[$i]['rowid'] = $obj->rowid;
    -				$tab_result[$i]['ref'] = $obj->rowid;
    +				$tab_result[$i]['ref'] = ($obj->ref?$obj->ref:$obj->rowid);
     				$tab_result[$i]['fk_user'] = $obj->fk_user;
     				$tab_result[$i]['fk_type'] = $obj->fk_type;
     				$tab_result[$i]['date_create'] = $this->db->jdate($obj->date_create);
    @@ -536,18 +654,203 @@ class Holiday extends CommonObject
     
     				$i++;
     			}
    -			// Retourne 1 et ajoute le tableau à la variable
    +			// Returns 1 and adds the array to the variable
     			$this->holiday = $tab_result;
     			return 1;
     		}
     		else
     		{
    -			// Erreur SQL
    +			// SQL Error
     			$this->error="Error ".$this->db->lasterror();
     			return -1;
     		}
     	}
     
    +
    +	/**
    +	 *	Validate leave request
    +	 *
    +	 *  @param	User	$user        	User that validate
    +	 *  @param  int		$notrigger	    0=launch triggers after, 1=disable triggers
    +	 *  @return int         			<0 if KO, >0 if OK
    +	 */
    +	function validate($user=null, $notrigger=0)
    +	{
    +		global $conf, $langs;
    +		$error=0;
    +
    +		// Define new ref
    +		if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref) || $this->ref == $this->id))
    +		{
    +			$num = $this->getNextNumRef(null);
    +		}
    +		else
    +		{
    +			$num = $this->ref;
    +		}
    +		$this->newref = $num;
    +
    +		// Update status
    +		$sql = "UPDATE ".MAIN_DB_PREFIX."holiday SET";
    +		if(!empty($this->statut) && is_numeric($this->statut)) {
    +			$sql.= " statut = ".$this->statut.",";
    +		} else {
    +			$error++;
    +		}
    +		$sql.= " ref = '".$num."'";
    +		$sql.= " WHERE rowid= ".$this->id;
    +
    +		$this->db->begin();
    +
    +		dol_syslog(get_class($this)."::validate", LOG_DEBUG);
    +		$resql = $this->db->query($sql);
    +		if (! $resql) {
    +			$error++; $this->errors[]="Error ".$this->db->lasterror();
    +		}
    +
    +		if (! $error)
    +		{
    +			if (! $notrigger)
    +			{
    +				// Call trigger
    +				$result=$this->call_trigger('HOLIDAY_VALIDATE',$user);
    +				if ($result < 0) { $error++; }
    +				// End call triggers
    +			}
    +		}
    +
    +		// Commit or rollback
    +		if ($error)
    +		{
    +			foreach($this->errors as $errmsg)
    +			{
    +				dol_syslog(get_class($this)."::validate ".$errmsg, LOG_ERR);
    +				$this->error.=($this->error?', '.$errmsg:$errmsg);
    +			}
    +			$this->db->rollback();
    +			return -1*$error;
    +		}
    +		else
    +		{
    +			$this->db->commit();
    +			return 1;
    +		}
    +	}
    +
    +
    +	/**
    +	 *	Approve leave request
    +	 *
    +	 *  @param	User	$user        	User that approve
    +	 *  @param  int		$notrigger	    0=launch triggers after, 1=disable triggers
    +	 *  @return int         			<0 if KO, >0 if OK
    +	 */
    +	function approve($user=null, $notrigger=0)
    +	{
    +		global $conf, $langs;
    +		$error=0;
    +
    +		// Update request
    +		$sql = "UPDATE ".MAIN_DB_PREFIX."holiday SET";
    +
    +		$sql.= " description= '".$this->db->escape($this->description)."',";
    +
    +		if(!empty($this->date_debut)) {
    +			$sql.= " date_debut = '".$this->db->idate($this->date_debut)."',";
    +		} else {
    +			$error++;
    +		}
    +		if(!empty($this->date_fin)) {
    +			$sql.= " date_fin = '".$this->db->idate($this->date_fin)."',";
    +		} else {
    +			$error++;
    +		}
    +		$sql.= " halfday = ".$this->halfday.",";
    +		if(!empty($this->statut) && is_numeric($this->statut)) {
    +			$sql.= " statut = ".$this->statut.",";
    +		} else {
    +			$error++;
    +		}
    +		if(!empty($this->fk_validator)) {
    +			$sql.= " fk_validator = '".$this->db->escape($this->fk_validator)."',";
    +		} else {
    +			$error++;
    +		}
    +		if(!empty($this->date_valid)) {
    +			$sql.= " date_valid = '".$this->db->idate($this->date_valid)."',";
    +		} else {
    +			$sql.= " date_valid = NULL,";
    +		}
    +		if(!empty($this->fk_user_valid)) {
    +			$sql.= " fk_user_valid = '".$this->db->escape($this->fk_user_valid)."',";
    +		} else {
    +			$sql.= " fk_user_valid = NULL,";
    +		}
    +		if(!empty($this->date_refuse)) {
    +			$sql.= " date_refuse = '".$this->db->idate($this->date_refuse)."',";
    +		} else {
    +			$sql.= " date_refuse = NULL,";
    +		}
    +		if(!empty($this->fk_user_refuse)) {
    +			$sql.= " fk_user_refuse = '".$this->db->escape($this->fk_user_refuse)."',";
    +		} else {
    +			$sql.= " fk_user_refuse = NULL,";
    +		}
    +		if(!empty($this->date_cancel)) {
    +			$sql.= " date_cancel = '".$this->db->idate($this->date_cancel)."',";
    +		} else {
    +			$sql.= " date_cancel = NULL,";
    +		}
    +		if(!empty($this->fk_user_cancel)) {
    +			$sql.= " fk_user_cancel = '".$this->db->escape($this->fk_user_cancel)."',";
    +		} else {
    +			$sql.= " fk_user_cancel = NULL,";
    +		}
    +		if(!empty($this->detail_refuse)) {
    +			$sql.= " detail_refuse = '".$this->db->escape($this->detail_refuse)."'";
    +		} else {
    +			$sql.= " detail_refuse = NULL";
    +		}
    +
    +		$sql.= " WHERE rowid= ".$this->id;
    +
    +		$this->db->begin();
    +
    +		dol_syslog(get_class($this)."::approve", LOG_DEBUG);
    +		$resql = $this->db->query($sql);
    +		if (! $resql) {
    +			$error++; $this->errors[]="Error ".$this->db->lasterror();
    +		}
    +
    +		if (! $error)
    +		{
    +			if (! $notrigger)
    +			{
    +				// Call trigger
    +				$result=$this->call_trigger('HOLIDAY_APPROVE',$user);
    +				if ($result < 0) { $error++; }
    +				// End call triggers
    +			}
    +		}
    +
    +		// Commit or rollback
    +		if ($error)
    +		{
    +			foreach($this->errors as $errmsg)
    +			{
    +				dol_syslog(get_class($this)."::approve ".$errmsg, LOG_ERR);
    +				$this->error.=($this->error?', '.$errmsg:$errmsg);
    +			}
    +			$this->db->rollback();
    +			return -1*$error;
    +		}
    +		else
    +		{
    +			$this->db->commit();
    +			return 1;
    +		}
    +	}
    +
     	/**
     	 *	Update database
     	 *
    @@ -913,6 +1216,7 @@ class Holiday extends CommonObject
     		return $this->LibStatut($this->statut, $mode, $this->date_debut);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Returns the label of a statut
     	 *
    @@ -923,58 +1227,59 @@ class Holiday extends CommonObject
     	 */
     	function LibStatut($statut, $mode=0, $startdate='')
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
     		{
     			if ($statut == 1) return $langs->trans('DraftCP');
    -			if ($statut == 2) return $langs->trans('ToReviewCP');
    -			if ($statut == 3) return $langs->trans('ApprovedCP');
    -			if ($statut == 4) return $langs->trans('CancelCP');
    -			if ($statut == 5) return $langs->trans('RefuseCP');
    +			elseif ($statut == 2) return $langs->trans('ToReviewCP');
    +			elseif ($statut == 3) return $langs->trans('ApprovedCP');
    +			elseif ($statut == 4) return $langs->trans('CancelCP');
    +			elseif ($statut == 5) return $langs->trans('RefuseCP');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			$pictoapproved='statut6';
     			if (! empty($startdate) && $startdate > dol_now()) $pictoapproved='statut4';
     			if ($statut == 1) return img_picto($langs->trans('DraftCP'),'statut0').' '.$langs->trans('DraftCP');				// Draft
    -			if ($statut == 2) return img_picto($langs->trans('ToReviewCP'),'statut1').' '.$langs->trans('ToReviewCP');		// Waiting approval
    -			if ($statut == 3) return img_picto($langs->trans('ApprovedCP'),$pictoapproved).' '.$langs->trans('ApprovedCP');
    -			if ($statut == 4) return img_picto($langs->trans('CancelCP'),'statut5').' '.$langs->trans('CancelCP');
    -			if ($statut == 5) return img_picto($langs->trans('RefuseCP'),'statut5').' '.$langs->trans('RefuseCP');
    +			elseif ($statut == 2) return img_picto($langs->trans('ToReviewCP'),'statut1').' '.$langs->trans('ToReviewCP');		// Waiting approval
    +			elseif ($statut == 3) return img_picto($langs->trans('ApprovedCP'),$pictoapproved).' '.$langs->trans('ApprovedCP');
    +			elseif ($statut == 4) return img_picto($langs->trans('CancelCP'),'statut5').' '.$langs->trans('CancelCP');
    +			elseif ($statut == 5) return img_picto($langs->trans('RefuseCP'),'statut5').' '.$langs->trans('RefuseCP');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			$pictoapproved='statut6';
     			if (! empty($startdate) && $startdate > dol_now()) $pictoapproved='statut4';
     			if ($statut == 1) return img_picto($langs->trans('DraftCP'),'statut0');
    -			if ($statut == 2) return img_picto($langs->trans('ToReviewCP'),'statut1');
    -			if ($statut == 3) return img_picto($langs->trans('ApprovedCP'),$pictoapproved);
    -			if ($statut == 4) return img_picto($langs->trans('CancelCP'),'statut5');
    -			if ($statut == 5) return img_picto($langs->trans('RefuseCP'),'statut5');
    +			elseif ($statut == 2) return img_picto($langs->trans('ToReviewCP'),'statut1');
    +			elseif ($statut == 3) return img_picto($langs->trans('ApprovedCP'),$pictoapproved);
    +			elseif ($statut == 4) return img_picto($langs->trans('CancelCP'),'statut5');
    +			elseif ($statut == 5) return img_picto($langs->trans('RefuseCP'),'statut5');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			$pictoapproved='statut6';
     			if (! empty($startdate) && $startdate > dol_now()) $pictoapproved='statut4';
     			if ($statut == 1) return $langs->trans('DraftCP').' '.img_picto($langs->trans('DraftCP'),'statut0');				// Draft
    -			if ($statut == 2) return $langs->trans('ToReviewCP').' '.img_picto($langs->trans('ToReviewCP'),'statut1');		// Waiting approval
    -			if ($statut == 3) return $langs->trans('ApprovedCP').' '.img_picto($langs->trans('ApprovedCP'),$pictoapproved);
    -			if ($statut == 4) return $langs->trans('CancelCP').' '.img_picto($langs->trans('CancelCP'),'statut5');
    -			if ($statut == 5) return $langs->trans('RefuseCP').' '.img_picto($langs->trans('RefuseCP'),'statut5');
    +			elseif ($statut == 2) return $langs->trans('ToReviewCP').' '.img_picto($langs->trans('ToReviewCP'),'statut1');		// Waiting approval
    +			elseif ($statut == 3) return $langs->trans('ApprovedCP').' '.img_picto($langs->trans('ApprovedCP'),$pictoapproved);
    +			elseif ($statut == 4) return $langs->trans('CancelCP').' '.img_picto($langs->trans('CancelCP'),'statut5');
    +			elseif ($statut == 5) return $langs->trans('RefuseCP').' '.img_picto($langs->trans('RefuseCP'),'statut5');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			$pictoapproved='statut6';
     			if (! empty($startdate) && $startdate > dol_now()) $pictoapproved='statut4';
     			if ($statut == 1) return $langs->trans('DraftCP').' '.img_picto($langs->trans('DraftCP'),'statut0');				// Draft
    -			if ($statut == 2) return $langs->trans('ToReviewCP').' '.img_picto($langs->trans('ToReviewCP'),'statut1');		// Waiting approval
    -			if ($statut == 3) return $langs->trans('ApprovedCP').' '.img_picto($langs->trans('ApprovedCP'),$pictoapproved);
    -			if ($statut == 4) return $langs->trans('CancelCP').' '.img_picto($langs->trans('CancelCP'),'statut5');
    -			if ($statut == 5) return $langs->trans('RefuseCP').' '.img_picto($langs->trans('RefuseCP'),'statut5');
    +			elseif ($statut == 2) return $langs->trans('ToReviewCP').' '.img_picto($langs->trans('ToReviewCP'),'statut1');		// Waiting approval
    +			elseif ($statut == 3) return $langs->trans('ApprovedCP').' '.img_picto($langs->trans('ApprovedCP'),$pictoapproved);
    +			elseif ($statut == 4) return $langs->trans('CancelCP').' '.img_picto($langs->trans('CancelCP'),'statut5');
    +			elseif ($statut == 5) return $langs->trans('RefuseCP').' '.img_picto($langs->trans('RefuseCP'),'statut5');
     		}
     
    -		return $statut;
    +		else return $statut;
     	}
     
     
    @@ -985,7 +1290,8 @@ class Holiday extends CommonObject
     	 *   @param		string	$htmlname		Name of HTML select field
     	 *   @return    string					Show select of status
     	 */
    -	function selectStatutCP($selected='', $htmlname='select_statut') {
    +    function selectStatutCP($selected='', $htmlname='select_statut')
    +    {
     
     		global $langs;
     
    @@ -1009,7 +1315,6 @@ class Holiday extends CommonObject
     
     		$statut.= '</select>'."\n";
     		print $statut;
    -
     	}
     
     	/**
    @@ -1019,7 +1324,8 @@ class Holiday extends CommonObject
     	 *  @param	string	$value      vrai si mise à jour OK sinon faux
     	 *  @return boolean				ok or ko
     	 */
    -	function updateConfCP($name,$value) {
    +    function updateConfCP($name,$value)
    +    {
     
     		$sql = "UPDATE ".MAIN_DB_PREFIX."holiday_config SET";
     		$sql.= " value = '".$value."'";
    @@ -1238,7 +1544,6 @@ class Holiday extends CommonObject
     				return -1;
     			}
     		}
    -
     	}
     
     	/**
    @@ -1247,7 +1552,8 @@ class Holiday extends CommonObject
     	 *  @param	string	$name       name du paramètre de configuration
     	 *  @return string      		retourne checked si > 0
     	 */
    -	function getCheckOption($name) {
    +    function getCheckOption($name)
    +    {
     
     		$sql = "SELECT value";
     		$sql.= " FROM ".MAIN_DB_PREFIX."holiday_config";
    @@ -1308,13 +1614,13 @@ class Holiday extends CommonObject
     	 *  @param	int		$user_id        ID de l'utilisateur à supprimer
     	 *  @return boolean      			Vrai si pas d'erreur, faut si Erreur
     	 */
    -	function deleteCPuser($user_id) {
    +    function deleteCPuser($user_id)
    +    {
     
     		$sql = "DELETE FROM ".MAIN_DB_PREFIX."holiday_users";
     		$sql.= " WHERE fk_user = '".$user_id."'";
     
     		$this->db->query($sql);
    -
     	}
     
     
    @@ -1415,7 +1721,6 @@ class Holiday extends CommonObject
     					$this->error="Error ".$this->db->lasterror();
     					return -1;
     				}
    -
     			}
     			else
     			{
    @@ -1457,7 +1762,6 @@ class Holiday extends CommonObject
     					return -1;
     				}
     			}
    -
     		}
     		else
     		{ // Si faux donc return array
    @@ -1570,6 +1874,7 @@ class Holiday extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return list of people with permission to validate leave requests.
     	 * Search for permission "approve leave requests"
    @@ -1578,6 +1883,7 @@ class Holiday extends CommonObject
     	 */
     	function fetch_users_approver_holiday()
     	{
    +        // phpcs:enable
     		$users_validator=array();
     
     		$sql = "SELECT DISTINCT ur.fk_user";
    @@ -1632,7 +1938,8 @@ class Holiday extends CommonObject
     	 *
     	 *  @return     int      retourne le nombre d'utilisateur
     	 */
    -	function countActiveUsersWithoutCP() {
    +    function countActiveUsersWithoutCP()
    +    {
     
     		$sql = "SELECT count(u.rowid) as compteur";
     		$sql.= " FROM ".MAIN_DB_PREFIX."user as u LEFT OUTER JOIN ".MAIN_DB_PREFIX."holiday_users hu ON (hu.fk_user=u.rowid)";
    @@ -1864,9 +2171,10 @@ class Holiday extends CommonObject
     		$this->description='SPECIMEN description';
     		$this->date_debut=dol_now();
     		$this->date_fin=dol_now()+(24*3600);
    +		$this->date_valid=dol_now();
     		$this->fk_validator=1;
     		$this->halfday=0;
     		$this->fk_type=1;
    +		$this->statut=Holiday::STATUS_VALIDATED;
     	}
    -
     }
    diff --git a/htdocs/holiday/common.inc.php b/htdocs/holiday/common.inc.php
    index 1f8f797eab2..96111cf6df0 100644
    --- a/htdocs/holiday/common.inc.php
    +++ b/htdocs/holiday/common.inc.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2011	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2011	Dimitri Mouillard	<dmouillard@teclib.com>
    - * Copyright (C) 2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php
    index 55724549360..5f283d1d1d2 100644
    --- a/htdocs/holiday/define_holiday.php
    +++ b/htdocs/holiday/define_holiday.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2007-2016	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2011		Dimitri Mouillard	<dmouillard@teclib.com>
      * Copyright (C) 2013		Marcos García		<marcosgdf@gmail.com>
    - * Copyright (C) 2016		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2016		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -26,7 +26,7 @@
      *		\brief      File that defines the balance of paid holiday of users.
      */
     
    -require('../main.inc.php');
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
     require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php';
     
    @@ -374,6 +374,6 @@ else
     
     print '</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/holiday/document.php b/htdocs/holiday/document.php
    index 9d5618f3a2a..94015d6664b 100644
    --- a/htdocs/holiday/document.php
    +++ b/htdocs/holiday/document.php
    @@ -1,11 +1,12 @@
     <?php
    -/* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2010 Laurent Destailleur   <eldy@users.sourceforge.net>
    - * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@capnetworks.com>
    - * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
    - * Copyright (C) 2011-2012 Juanjo Menent         <jmenent@2byte.es>
    - * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    +/* Copyright (C) 2003-2007  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2010  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005       Marc Barilley / Ocebo   <marc@ocebo.com>
    + * Copyright (C) 2005-2009  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2005       Simon TOSSER            <simon@kornog-computing.com>
    + * Copyright (C) 2011-2012  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2013       Cédric Salvador         <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -99,7 +100,7 @@ if ($object->id)
     	dol_fiche_head($head, 'documents', $langs->trans("CPTitreMenu"), -1,'holiday');
     
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -110,7 +111,7 @@ if ($object->id)
     
     	$linkback='<a href="'.DOL_URL_ROOT.'/holiday/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
     
    -	dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref');
    +	dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref');
     
     
     	print '<div class="fichecenter">';
    @@ -152,7 +153,7 @@ if ($object->id)
             print '<tr>';
             print '<td>'.$langs->trans('DateDebCP').' ('.$langs->trans("FirstDayOfHoliday").')</td>';
             print '<td>';
    -        $form->select_date($object->date_debut,'date_debut_');
    +        print $form->selectDate($object->date_debut, 'date_debut_');
             print ' &nbsp; &nbsp; ';
     		print $form->selectarray('starthalfday', $listhalfday, (GETPOST('starthalfday')?GETPOST('starthalfday'):$starthalfday));
             print '</td>';
    @@ -174,9 +175,9 @@ if ($object->id)
             print '<tr>';
             print '<td>'.$langs->trans('DateFinCP').' ('.$langs->trans("LastDayOfHoliday").')</td>';
             print '<td>';
    -        $form->select_date($object->date_fin,'date_fin_');
    +        print $form->selectDate($object->date_fin, 'date_fin_');
             print ' &nbsp; &nbsp; ';
    -		print $form->selectarray('endhalfday', $listhalfday, (GETPOST('endhalfday')?GETPOST('endhalfday'):$endhalfday));
    +        print $form->selectarray('endhalfday', $listhalfday, (GETPOST('endhalfday')?GETPOST('endhalfday'):$endhalfday));
             print '</td>';
             print '</tr>';
         }
    @@ -295,7 +296,6 @@ else
     	print $langs->trans("ErrorUnknown");
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php
    index 5df3fdb314b..1cb76abf4ec 100644
    --- a/htdocs/holiday/list.php
    +++ b/htdocs/holiday/list.php
    @@ -1,7 +1,8 @@
     <?php
     /* Copyright (C) 2011	   Dimitri Mouillard	<dmouillard@teclib.com>
      * Copyright (C) 2013-2018 Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012-2016 Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012-2016 Regis Houssin	<regis.houssin@inodbox.com>
    + * Copyright (C) 2018      Charlene Benke	<charlie@patas-monkey.com>
      *
      * 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
    @@ -23,7 +24,7 @@
      *		\brief      List of holiday
      */
     
    -require('../main.inc.php');
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    @@ -78,7 +79,7 @@ $diroutputmassaction=$conf->holiday->dir_output . '/temp/massgeneration/'.$user-
     $hookmanager->initHooks(array('holidaylist'));     // Note that conf->hooks_modules contains array
     // Fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('holiday');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // Default sort order (if not yet defined by previous GETPOST)
     if (! $sortfield) $sortfield="cp.rowid";
    @@ -188,67 +189,24 @@ if(!empty($search_ref))
     {
         $filter.= " AND cp.rowid = ".(int) $db->escape($search_ref);
     }
    -
     // Start date
    -if($search_year_start > 0) {
    -    if($search_month_start > 0) {
    -    	$filter .= " AND (cp.date_debut BETWEEN '".$db->idate(dol_get_first_day($search_year_start,$search_month_start,1))."' AND '".$db->idate(dol_get_last_day($search_year_start,$search_month_start,1))."')";
    -    	//$filter.= " AND date_format(cp.date_debut, '%Y-%m') = '$search_year_start-$search_month_start'";
    -    } else {
    -    	$filter .= " AND (cp.date_debut BETWEEN '".$db->idate(dol_get_first_day($search_year_start,1,1))."' AND '".$db->idate(dol_get_last_day($search_year_start,12,1))."')";
    -    	//$filter.= " AND date_format(cp.date_debut, '%Y') = '$search_year_start'";
    -    }
    -} else {
    -    if($search_month_start > 0) {
    -        $filter.= " AND date_format(cp.date_debut, '%m') = '".$db->escape($search_month_start)."'";
    -    }
    -}
    -
    +$filter.= dolSqlDateFilter("cp.date_debut", $search_day_start, $search_month_start, $search_year_start);
     // End date
    -if($search_year_end > 0) {
    -    if($search_month_end > 0) {
    -    	$filter .= " AND (cp.date_fin BETWEEN '".$db->idate(dol_get_first_day($search_year_end,$search_month_end,1))."' AND '".$db->idate(dol_get_last_day($search_year_end,$search_month_end,1))."')";
    -    	//$filter.= " AND date_format(cp.date_fin, '%Y-%m') = '$search_year_end-$search_month_end'";
    -    } else {
    -    	$filter .= " AND (cp.date_fin BETWEEN '".$db->idate(dol_get_first_day($search_year_end,1,1))."' AND '".$db->idate(dol_get_last_day($search_year_end,12,1))."')";
    -    	//$filter.= " AND date_format(cp.date_fin, '%Y') = '$search_year_end'";
    -    }
    -} else {
    -    if($search_month_end > 0) {
    -        $filter.= " AND date_format(cp.date_fin, '%m') = '".$db->escape($search_month_end)."'";
    -    }
    -}
    -
    +$filter.= dolSqlDateFilter("cp.date_fin", $search_day_end, $search_month_end, $search_year_end);
     // Create date
    -if($search_year_create > 0) {
    -    if($search_month_create > 0) {
    -    	$filter .= " AND (cp.date_create BETWEEN '".$db->idate(dol_get_first_day($search_year_create,$search_month_create,1))."' AND '".$db->idate(dol_get_last_day($search_year_create,$search_month_create,1))."')";
    -    	//$filter.= " AND date_format(cp.date_create, '%Y-%m') = '$search_year_create-$search_month_create'";
    -    } else {
    -    	$filter .= " AND (cp.date_create BETWEEN '".$db->idate(dol_get_first_day($search_year_create,1,1))."' AND '".$db->idate(dol_get_last_day($search_year_create,12,1))."')";
    -    	//$filter.= " AND date_format(cp.date_create, '%Y') = '$search_year_create'";
    -    }
    -} else {
    -    if($search_month_create > 0) {
    -        $filter.= " AND date_format(cp.date_create, '%m') = '".$db->escape($search_month_create)."'";
    -    }
    -}
    -
    +$filter.= dolSqlDateFilter("cp.date_create", $search_day_create, $search_month_create, $search_year_create);
     // Employee
     if(!empty($search_employee) && $search_employee != -1) {
         $filter.= " AND cp.fk_user = '".$db->escape($search_employee)."'\n";
     }
    -
     // Validator
     if(!empty($search_valideur) && $search_valideur != -1) {
         $filter.= " AND cp.fk_validator = '".$db->escape($search_valideur)."'\n";
     }
    -
     // Type
     if (!empty($search_type) && $search_type != -1) {
     	$filter.= ' AND cp.fk_type IN ('.$db->escape($search_type).')';
     }
    -
     // Status
     if(!empty($search_statut) && $search_statut != -1) {
         $filter.= " AND cp.statut = '".$db->escape($search_statut)."'\n";
    @@ -512,7 +470,7 @@ print '</td>';
     print "</tr>\n";
     
     print '<tr class="liste_titre">';
    -print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"cp.rowid","",$param,'',$sortfield,$sortorder);
    +print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"cp.ref","",$param,'',$sortfield,$sortorder);
     print_liste_field_titre("DateCreateCP",$_SERVER["PHP_SELF"],"cp.date_create","",$param,'align="center"',$sortfield,$sortorder);
     print_liste_field_titre("Employee",$_SERVER["PHP_SELF"],"cp.fk_user","",$param,'',$sortfield,$sortorder);
     print_liste_field_titre("ValidatorCP",$_SERVER["PHP_SELF"],"cp.fk_validator","",$param,'',$sortfield,$sortorder);
    @@ -546,7 +504,7 @@ elseif (! empty($holiday->holiday) && !empty($mysoc->country_id))
     	{
     		// Leave request
     		$holidaystatic->id=$infos_CP['rowid'];
    -		$holidaystatic->ref=$infos_CP['rowid'];
    +		$holidaystatic->ref=($infos_CP['ref']?$infos_CP['ref']:$infos_CP['rowid']);
     
     		// User
     		$userstatic->id=$infos_CP['fk_user'];
    @@ -605,7 +563,6 @@ elseif (! empty($holiday->holiday) && !empty($mysoc->country_id))
     		print '</td>';
     
     		print '</tr>'."\n";
    -
     	}
     }
     
    @@ -630,8 +587,8 @@ print '</form>';
     	print '</div>';
     }*/
     
    +// End of page
     llxFooter();
    -
     $db->close();
     
     
    diff --git a/htdocs/holiday/month_report.php b/htdocs/holiday/month_report.php
    index a19a193bc73..f30d5e85d7d 100644
    --- a/htdocs/holiday/month_report.php
    +++ b/htdocs/holiday/month_report.php
    @@ -23,7 +23,7 @@
      *      \brief      Monthly report of leave requests.
      */
     
    -require('../main.inc.php');
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/holiday/class/holiday.class.php';
     require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    @@ -54,7 +54,7 @@ $listhalfday=array('morning'=>$langs->trans("Morning"),"afternoon"=>$langs->tran
     
     llxHeader('', $langs->trans('CPTitreMenu'));
     
    -print_fiche_titre($langs->trans('MenuReportMonth'));
    +print load_fiche_titre($langs->trans('MenuReportMonth'));
     
     $html = new Form($db);
     $formother = new FormOther($db);
    @@ -190,11 +190,10 @@ else
              print '<td class="maxwidth300">' . dol_escape_htmltag(dolGetFirstLineOfText($obj->description)) . '</td>';
           print '</tr>';
        }
    -
     }
     print '</table>';
     print '</div>';
     
    -// Fin de page
    -$db->close();
    +// End of page
     llxFooter();
    +$db->close();
    diff --git a/htdocs/holiday/view_log.php b/htdocs/holiday/view_log.php
    index 198b9a8854c..124d26baf92 100644
    --- a/htdocs/holiday/view_log.php
    +++ b/htdocs/holiday/view_log.php
    @@ -23,7 +23,7 @@
      *  \ingroup    holiday
      */
     
    -require('../main.inc.php');
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
     require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    @@ -124,7 +124,6 @@ foreach($cp->logs as $logs_CP)
        	print '<td style="text-align: right;">'.price2num($logs_CP['prev_solde'],5).' '.$langs->trans('days').'</td>';
        	print '<td style="text-align: right;">'.price2num($logs_CP['new_solde'],5).' '.$langs->trans('days').'</td>';
        	print '</tr>'."\n";
    -
     }
     
     if ($log_holiday == '2')
    @@ -138,6 +137,6 @@ print '</tbody>'."\n";
     print '</table>'."\n";
     print '</div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/hrm/admin/admin_establishment.php b/htdocs/hrm/admin/admin_establishment.php
    index 996ddd58ed3..98221ce6594 100644
    --- a/htdocs/hrm/admin/admin_establishment.php
    +++ b/htdocs/hrm/admin/admin_establishment.php
    @@ -20,7 +20,7 @@
      * \ingroup HRM
      * \brief 	HRM Establishment module setup page
      */
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/hrm.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/hrm/class/establishment.class.php';
     
    @@ -113,9 +113,9 @@ if ($result)
     
     			print '<tr class="oddeven">';
     			print '<td>'.$establishmentstatic->getNomUrl(1).'</td>';
    -            print '<td align="left">'.$obj->address.'</td>';
    -			print '<td align="left">'.$obj->zip.'</td>';
    -			print '<td align="left">'.$obj->town.'</td>';
    +            print '<td class="left">'.$obj->address.'</td>';
    +			print '<td class="left">'.$obj->zip.'</td>';
    +			print '<td class="left">'.$obj->town.'</td>';
     
                 print '<td align="right">';
     			print $establishmentstatic->getLibStatut(5);
    @@ -124,7 +124,6 @@ if ($result)
     
                 $i++;
             }
    -
         }
         else
         {
    @@ -145,5 +144,6 @@ print '<div class="tabsAction">';
     print '<a class="butAction" href="../establishment/card.php?action=create">'.$langs->trans("NewEstablishment").'</a>';
     print '</div>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/hrm/admin/admin_hrm.php b/htdocs/hrm/admin/admin_hrm.php
    index a7a8b8a9352..c61480347bb 100644
    --- a/htdocs/hrm/admin/admin_hrm.php
    +++ b/htdocs/hrm/admin/admin_hrm.php
    @@ -20,7 +20,7 @@
      * \ingroup HRM
      * \brief 	HRM module setup page
      */
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/hrm.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     
    @@ -108,5 +108,6 @@ print '<div class="center"><input type="submit" class="button" value="' . $langs
     
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/hrm/class/establishment.class.php b/htdocs/hrm/class/establishment.class.php
    index 8a99788d040..4153972d27c 100644
    --- a/htdocs/hrm/class/establishment.class.php
    +++ b/htdocs/hrm/class/establishment.class.php
    @@ -1,5 +1,6 @@
     <?php
     /* Copyright (C) 2015		Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -28,22 +29,67 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class Establishment extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='establishment';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='establishment';
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
     	public $table_element_line = '';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element = 'fk_establishment';
    -	public $ismultientitymanaged = 1;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 1;
    +
         public $picto='building';
    -    
    -    public $id;
    -    public $ref;
    +
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +    /**
    +	 * @var string Ref
    +	 */
    +	public $ref;
    +
    +	/**
    +	 * @var int ID
    +	 */
     	public $rowid;
     
     	public $name;
    +
    +	/**
    +	 * @var string Address
    +	 */
     	public $address;
    +
     	public $zip;
     	public $town;
    -	public $status;		// 0=open, 1=closed
    +
    +	/**
    +	 * @var int Status 0=open, 1=closed
    +	 */
    +	public $status;
    +
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
     
     	public $country_id;
    @@ -62,8 +108,6 @@ class Establishment extends CommonObject
     
     		$this->statuts_short = array(0 => 'Closed', 1 => 'Opened');
             $this->statuts = array(0 => 'Closed', 1 => 'Opened');
    -
    -		return 1;
     	}
     
     	/**
    @@ -208,7 +252,7 @@ class Establishment extends CommonObject
     
                 $this->country_id   = $obj->country_id;
                 $this->country_code = $obj->country_code;
    -            $this->country      = $obj->country;			
    +            $this->country      = $obj->country;
     
     			return 1;
     		}
    @@ -257,6 +301,7 @@ class Establishment extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Give a label from a status
     	 *
    @@ -266,35 +311,36 @@ class Establishment extends CommonObject
     	 */
     	function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
     		{
     			return $langs->trans($this->statuts[$status]);
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			return $langs->trans($this->statuts_short[$status]);
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status==0) return img_picto($langs->trans($this->statuts_short[$status]),'statut5').' '.$langs->trans($this->statuts_short[$status]);
    -			if ($status==1) return img_picto($langs->trans($this->statuts_short[$status]),'statut4').' '.$langs->trans($this->statuts_short[$status]);
    +			elseif ($status==1) return img_picto($langs->trans($this->statuts_short[$status]),'statut4').' '.$langs->trans($this->statuts_short[$status]);
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status==0 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]),'statut5');
    -			if ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]),'statut4');
    +			elseif ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]),'statut4');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status==0 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]),'statut5').' '.$langs->trans($this->statuts[$status]);
    -			if ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]),'statut4').' '.$langs->trans($this->statuts[$status]);
    +			elseif ($status==1 && ! empty($this->statuts_short[$status])) return img_picto($langs->trans($this->statuts_short[$status]),'statut4').' '.$langs->trans($this->statuts[$status]);
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status==0 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]),'statut5');
    -			if ($status==1 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]),'statut4');
    +			elseif ($status==1 && ! empty($this->statuts_short[$status])) return $langs->trans($this->statuts_short[$status]).' '.img_picto($langs->trans($this->statuts_short[$status]),'statut4');
     		}
     	}
     
    @@ -320,7 +366,7 @@ class Establishment extends CommonObject
     				$obj = $this->db->fetch_object($result);
     				$this->id = $obj->rowid;
     
    -				$this->date_creation     = $this->db->jdate($obj->datec);
    +				$this->date_creation = $this->db->jdate($obj->datec);
     				if ($obj->fk_user_author)
     				{
     					$cuser = new User($this->db);
    @@ -386,7 +432,7 @@ class Establishment extends CommonObject
     
             return '';
         }
    -    
    +
         /**
          * Initialise object with example values
          * Id must be 0 if object instance is a specimen
    @@ -397,5 +443,5 @@ class Establishment extends CommonObject
         {
             $this->id = 0;
             $this->ref = 'DEAAA';
    -    }    
    +    }
     }
    diff --git a/htdocs/hrm/establishment/card.php b/htdocs/hrm/establishment/card.php
    index db316098003..77126100068 100644
    --- a/htdocs/hrm/establishment/card.php
    +++ b/htdocs/hrm/establishment/card.php
    @@ -19,7 +19,7 @@
      *  \file       	htdocs/hrm/establishment/card.php
      *  \brief      	Page to show an establishment
      */
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/hrm.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/hrm/class/establishment.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    @@ -185,11 +185,14 @@ if ($action == 'create')
         print '<table class="border" width="100%">';
     
     	// Name
    -    print '<tr><td>'. fieldLabel('Name','name',1).'</td><td><input name="name" id="name" size="32" value="' . GETPOST("name", "alpha") . '"></td></tr>';
    +	print '<tr>';
    +	print '<td>'. $form->editfieldkey('Name', 'name', '', $object, 0, 'string', '', 1).'</td>';
    +	print '<td><input name="name" id="name" size="32" value="' . GETPOST("name", "alpha") . '"></td>';
    +	print '</tr>';
     
     	// Address
     	print '<tr>';
    -	print '<td>'.fieldLabel('Address','address',0).'</td>';
    +	print '<td>'.$form->editfieldkey('Address', 'address', '', $object, 0).'</td>';
     	print '<td>';
     	print '<input name="address" id="address" class="qutrevingtpercent" value="' . GETPOST('address','alpha') . '">';
     	print '</td>';
    @@ -197,18 +200,23 @@ if ($action == 'create')
     
     	// Zipcode
     	print '<tr>';
    -	print '<td>'.fieldLabel('Zip','zipcode',0).'</td>';
    +	print '<td>'.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).'</td>';
     	print '<td>';
    -	print $formcompany->select_ziptown(GETPOST('zipcode', 'alpha'), 'zipcode', array (
    +	print $formcompany->select_ziptown(
    +		GETPOST('zipcode', 'alpha'),
    +		'zipcode',
    +		array (
     			'town',
     			'selectcountry_id'
    -	), 6);
    +		),
    +		6
    +	);
     	print '</td>';
     	print '</tr>';
     
     	// Town
     	print '<tr>';
    -	print '<td>'.fieldLabel('Town','town',0).'</td>';
    +	print '<td>'.$form->editfieldkey('Town', 'town', '', $object, 0).'</td>';
     	print '<td>';
     	print $formcompany->select_ziptown(GETPOST('town', 'alpha'), 'town', array (
     			'zipcode',
    @@ -219,7 +227,7 @@ if ($action == 'create')
     
     	// Country
     	print '<tr>';
    -	print '<td>'.fieldLabel('Country','selectcountry_id',0).'</td>';
    +	print '<td>'.$form->editfieldkey('Country', 'selectcountry_id', '', $object, 0).'</td>';
     	print '<td class="maxwidthonsmartphone">';
     	print $form->select_country(GETPOST('country_id','int')>0?GETPOST('country_id','int'):$mysoc->country_id,'country_id');
     		if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
    @@ -228,7 +236,7 @@ if ($action == 'create')
     
     	// Status
         print '<tr>';
    -    print '<td>'.fieldLabel('Status','status',1).'</td>';
    +    print '<td>'.$form->editfieldkey('Status', 'status', '', $object, 0, 'string', '', 1).'</td>';
     	print '<td>';
     	print $form->selectarray('status',$status2label,GETPOST('status','alpha'));
         print '</td></tr>';
    @@ -272,30 +280,30 @@ if (($id || $ref) && $action == 'edit')
                 print '</td></tr>';
     
                 // Name
    -            print '<tr><td>'.fieldLabel('Name','name',1).'</td><td>';
    +            print '<tr><td>'.$form->editfieldkey('Name', 'name', '', $object, 0, 'string', '', 1).'</td><td>';
                 print '<input name="name" id="name" class="flat" size="32" value="'.$object->name.'">';
                 print '</td></tr>';
     
     			// Address
    -			print '<tr><td>'.fieldLabel('Address','address',0).'</td>';
    +			print '<tr><td>'.$form->editfieldkey('Address', 'address', '', $object, 0).'</td>';
     			print '<td>';
     			print '<input name="address" id="address" size="32" value="' . $object->address . '">';
     			print '</td></tr>';
     
     			// Zipcode / Town
    -			print '<tr><td>'.fieldLabel('Zip','zipcode',0).'</td><td>';
    +			print '<tr><td>'.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).'</td><td>';
     			print $formcompany->select_ziptown($object->zip, 'zipcode', array (
     					'town',
     					'selectcountry_id'
     			), 6) . '</tr>';
    -			print '<tr><td>'.fieldLabel('Town','town',0).'</td><td>';
    +			print '<tr><td>'.$form->editfieldkey('Town', 'town', '', $object, 0).'</td><td>';
     			print $formcompany->select_ziptown($object->town, 'town', array (
     					'zipcode',
     					'selectcountry_id'
     			)) . '</td></tr>';
     
     			// Country
    -			print '<tr><td>'.fieldLabel('Country','selectcountry_id',0).'</td>';
    +			print '<tr><td>'.$form->editfieldkey('Country', 'selectcountry_id', '', $object, 0).'</td>';
     			print '<td class="maxwidthonsmartphone">';
     			print $form->select_country($object->fk_country,'country_id');
     				if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
    @@ -303,7 +311,7 @@ if (($id || $ref) && $action == 'edit')
     			print '</tr>';
     
     			// Status
    -			print '<tr><td>'.fieldLabel('Status','status',1).'</td><td>';
    +			print '<tr><td>'.$form->editfieldkey('Status', 'status', '', $object, 0, 'string', '', 1).'</td><td>';
     			print $form->selectarray('status',$status2label,$object->status);
     			print '</td></tr>';
     
    @@ -334,7 +342,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
         if ($action == 'delete')
         {
             print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("DeleteEstablishment"),$langs->trans("ConfirmDeleteEstablishment"),"confirm_delete");
    -
         }
     
     
    @@ -408,5 +415,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
         print '</div>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/hrm/establishment/info.php b/htdocs/hrm/establishment/info.php
    index 76eb236d1a1..35e4f483e3d 100644
    --- a/htdocs/hrm/establishment/info.php
    +++ b/htdocs/hrm/establishment/info.php
    @@ -20,7 +20,7 @@
      *  \brief      	Page to show info of an establishment
      */
     
    -require('../../main.inc.php');
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/hrm.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/hrm/class/establishment.class.php';
    @@ -53,5 +53,6 @@ if ($id)
         print '</div>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/hrm/index.php b/htdocs/hrm/index.php
    index e2b6acaec4f..5344e3765d7 100644
    --- a/htdocs/hrm/index.php
    +++ b/htdocs/hrm/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2011		Dimitri Mouillard	<dmouillard@teclib.com>
      * Copyright (C) 2013-2015	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012-2014	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012-2014	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2015-2016	Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *		\brief      Home page for HRM area.
      */
     
    -require('../main.inc.php');
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    @@ -236,7 +236,6 @@ if (! empty($conf->holiday->enabled) && $user->rights->holiday->read)
     
                     $i++;
                 }
    -
             }
             else
             {
    @@ -309,7 +308,6 @@ if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire)
     
     				$i++;
     			}
    -
     		}
     		else
     		{
    @@ -382,7 +380,6 @@ if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire
     
     				$i++;
     			}
    -
     		}
     		else
     		{
    @@ -397,8 +394,6 @@ if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire
     
     print '</div></div></div>';
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/imports/class/import.class.php b/htdocs/imports/class/import.class.php
    index f8754193515..a0d33d4c28a 100644
    --- a/htdocs/imports/class/import.class.php
    +++ b/htdocs/imports/class/import.class.php
    @@ -43,8 +43,15 @@ class Import
     	var $array_import_convertvalue;
     	var $array_import_run_sql_after;
     
    -	var $error;
    -	var $errors;
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
     
     
     	/**
    @@ -58,6 +65,7 @@ class Import
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Load description int this->array_import_module, this->array_import_fields, ... of an importable dataset
     	 *
    @@ -67,6 +75,7 @@ class Import
     	 */
     	function load_arrays($user,$filter='')
     	{
    +        // phpcs:enable
     		global $langs,$conf;
     
     		dol_syslog(get_class($this)."::load_arrays user=".$user->id." filter=".$filter);
    @@ -176,6 +185,7 @@ class Import
     
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Build an import example file.
     	 *  Arrays this->array_export_xxx are already loaded for required datatoexport
    @@ -188,6 +198,7 @@ class Import
     	 */
     	function build_example_file($model, $headerlinefields, $contentlinevalues,$datatoimport)
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$indice=0;
    @@ -349,5 +360,4 @@ class Import
     			return 1;
     		}
     	}
    -
     }
    diff --git a/htdocs/imports/emptyexample.php b/htdocs/imports/emptyexample.php
    index ffb270a6306..f11ad902de6 100644
    --- a/htdocs/imports/emptyexample.php
    +++ b/htdocs/imports/emptyexample.php
    @@ -22,9 +22,15 @@
      */
     
     // This file is a wrapper, so empty header
    -function llxHeader() { print '<html><title>Build an import example file</title><body>'; }
    +function llxHeader()
    +{
    +    print '<html><title>Build an import example file</title><body>';
    +}
     // This file is a wrapper, so empty footer
    -function llxFooter() { print '</body></html>'; }
    +function llxFooter()
    +{
    +    print '</body></html>';
    +}
     
     require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    @@ -86,4 +92,3 @@ foreach($fieldstarget as $code=>$label)
     //var_dump($contentlinevalues);
     
     print $objimport->build_example_file($format,$headerlinefields,$contentlinevalues,$datatoimport);
    -
    diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php
    index c57a4207782..04fc651685f 100644
    --- a/htdocs/imports/import.php
    +++ b/htdocs/imports/import.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012      Christophe Battarel	<christophe.battarel@altairis.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -358,7 +358,7 @@ if ($step == 1 || ! $datatoimport)
     		{
     			//var_dump($objimport->array_import_code[$key]);
     			$val=!$val;
    -			print '<tr '.$bc[$val].'><td nospan="nospan">';
    +			print '<tr '.$bc[$val].'><td>';
     			$titleofmodule=$objimport->array_import_module[$key]->getName();
     			// Special cas for import common to module/services
     			if (in_array($objimport->array_import_code[$key], array('produit_supplierprices','produit_multiprice','produit_languages'))) $titleofmodule=$langs->trans("ProductOrService");
    @@ -367,7 +367,7 @@ if ($step == 1 || ! $datatoimport)
     			//print $value;
     			print img_object($objimport->array_import_module[$key]->getName(),$objimport->array_import_icon[$key]).' ';
     			print $objimport->array_import_label[$key];
    -			print '</td><td align="right">';
    +            print '</td><td style="text-align: right">';
     			if ($objimport->array_import_perms[$key])
     			{
     				print '<a href="'.DOL_URL_ROOT.'/imports/import.php?step=2&datatoimport='.$objimport->array_import_code[$key].$param.'">'.img_picto($langs->trans("NewImport"),'filenew').'</a>';
    @@ -453,9 +453,9 @@ if ($step == 2 && $datatoimport)
     		print '<td width="16">'.img_picto_common($key,$objmodelimport->getPictoForKey($key)).'</td>';
         	$text=$objmodelimport->getDriverDescForKey($key);
         	print '<td>'.$form->textwithpicto($objmodelimport->getDriverLabelForKey($key),$text).'</td>';
    -		print '<td align="center"><a href="'.DOL_URL_ROOT.'/imports/emptyexample.php?format='.$key.$param.'" target="_blank">'.$langs->trans("DownloadEmptyExample").'</a></td>';
    +		print '<td style="text-align:center"><a href="'.DOL_URL_ROOT.'/imports/emptyexample.php?format='.$key.$param.'" target="_blank">'.$langs->trans("DownloadEmptyExample").'</a></td>';
     		// Action button
    -		print '<td align="right">';
    +		print '<td style="text-align:right">';
     		print '<a href="'.DOL_URL_ROOT.'/imports/import.php?step=3&format='.$key.$param.'">'.img_picto($langs->trans("SelectFormat"),'filenew').'</a>';
     		print '</td>';
     		print '</tr>';
    @@ -488,7 +488,6 @@ if ($step == 3 && $datatoimport)
     	if ($action == 'delete')
     	{
     		print $form->formconfirm($_SERVER["PHP_SELF"].'?urlfile='.urlencode(GETPOST('urlfile')).'&step=3'.$param, $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile', '', 0, 1);
    -
     	}
     
     	print '<div class="underbanner clearboth"></div>';
    @@ -529,7 +528,7 @@ if ($step == 3 && $datatoimport)
     	print '<td>';
         $text=$objmodelimport->getDriverDescForKey($format);
         print $form->textwithpicto($objmodelimport->getDriverLabelForKey($format),$text);
    -    print '</td><td align="right" class="nowrap"><a href="'.DOL_URL_ROOT.'/imports/emptyexample.php?format='.$format.$param.'" target="_blank">'.$langs->trans("DownloadEmptyExample").'</a>';
    +    print '</td><td style="text-align:right" class="nowrap"><a href="'.DOL_URL_ROOT.'/imports/emptyexample.php?format='.$format.$param.'" target="_blank">'.$langs->trans("DownloadEmptyExample").'</a>';
     
     	print '</td></tr>';
     
    @@ -618,14 +617,14 @@ if ($step == 3 && $datatoimport)
         		print '</a>';
     			print '</td>';
     			// Affiche taille fichier
    -			print '<td align="right">'.dol_print_size(dol_filesize($dir.'/'.$file)).'</td>';
    +			print '<td style="text-align:right">'.dol_print_size(dol_filesize($dir.'/'.$file)).'</td>';
     			// Affiche date fichier
    -			print '<td align="right">'.dol_print_date(dol_filemtime($dir.'/'.$file),'dayhour').'</td>';
    +			print '<td style="text-align:right">'.dol_print_date(dol_filemtime($dir.'/'.$file),'dayhour').'</td>';
     			// Del button
    -			print '<td align="right"><a href="'.$_SERVER['PHP_SELF'].'?action=delete&step=3'.$param.'&urlfile='.urlencode($relativepath);
    +			print '<td style="text-align:right"><a href="'.$_SERVER['PHP_SELF'].'?action=delete&step=3'.$param.'&urlfile='.urlencode($relativepath);
     			print '">'.img_delete().'</a></td>';
     			// Action button
    -			print '<td align="right">';
    +			print '<td style="text-align:right">';
     			print '<a href="'.$_SERVER['PHP_SELF'].'?step=4'.$param.'&filetoimport='.urlencode($relativepath).'">'.img_picto($langs->trans("NewImport"),'filenew').'</a>';
     			print '</td>';
     			print '</tr>';
    @@ -662,7 +661,6 @@ if ($step == 4 && $datatoimport)
                 header("Location: ".$_SERVER["PHP_SELF"].'?step=3'.$param.'&filetoimport='.urlencode($relativepath));
                 exit;
             }
    -
         }
     
     	if (GETPOST('update')) {
    @@ -902,16 +900,15 @@ if ($step == 4 && $datatoimport)
     
     	print '</td><td width="50%">';
     
    -	// List of targets fields
    -	$height=24;
    +	// List of target fields
    +	$height='24px';//needs px for css height attribute below
     	$i = 0;
     	$mandatoryfieldshavesource=true;
    -	$var=true;
    +
     	print '<table width="100%" class="nobordernopadding">';
     	foreach($fieldstarget as $code=>$label)
     	{
    -		$var = !$var;
    -		print '<tr '.$bc[$var].' height="'.$height.'">';
    +		print '<tr class="oddeven" style="height:'.$height.'">';
     
     		$i++;
     		$entity=(! empty($objimport->array_import_entities[0][$code])?$objimport->array_import_entities[0][$code]:$objimport->array_import_icon[0]);
    @@ -937,7 +934,7 @@ if ($step == 4 && $datatoimport)
     		print $text;
     		print '</td>';
     		// Info field
    -		print '<td style="font-weight: normal" align="right">';
    +		print '<td style="font-weight:normal; text-align:right">';
     		$filecolumn=$array_match_database_to_file[$code];
     		// Source field info
     		$htmltext ='<b><u>'.$langs->trans("FieldSource").'</u></b><br>';
    @@ -1094,7 +1091,7 @@ if ($step == 4 && $datatoimport)
     		}
     		else
     		{
    -			print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("SomeMandatoryFieldHaveNoSource")).'">'.$langs->trans("NextStep").'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("SomeMandatoryFieldHaveNoSource")).'">'.$langs->trans("NextStep").'</a>';
     		}
     	}
     
    @@ -1128,7 +1125,7 @@ if ($step == 4 && $datatoimport)
     		print '</tr>';
     
     		print '<tr class="oddeven">';
    -		print '<td><input name="import_name" size="48" value=""></td><td align="right">';
    +		print '<td><input name="import_name" size="48" value=""></td><td style="text-align:right">';
     		print '<input type="submit" class="button" value="'.$langs->trans("SaveImportProfile").'">';
     		print '</td></tr>';
     
    @@ -1148,7 +1145,7 @@ if ($step == 4 && $datatoimport)
     				$obj = $db->fetch_object($resql);
     				print '<tr class="oddeven"><td>';
     				print $obj->label;
    -				print '</td><td align="right">';
    +				print '</td><td style="text-align:right">';
     				print '<a href="'.$_SERVER["PHP_SELF"].'?step='.$step.$param.'&action=deleteprof&id='.$obj->rowid.'&filetoimport='.urlencode($filetoimport).'">';
     				print img_delete();
     				print '</a>';
    @@ -1163,7 +1160,6 @@ if ($step == 4 && $datatoimport)
     		print '</table>';
     		print '</form>';
     	}
    -
     }
     
     
    @@ -1279,14 +1275,14 @@ if ($step == 5 && $datatoimport)
         print '</a>';
         print '</td></tr>';
     
    -	// Nb of fields
    +	// Total lines in source file
     	print '<tr><td>';
     	print $langs->trans("NbOfSourceLines");
     	print '</td><td>';
     	print $nboflines;
     	print '</td></tr>';
     
    -	// Lines nb to import
    +	// Range of lines to import
     	print '<tr><td>';
     	print $langs->trans("ImportFromToLine");
     	print '</td><td>';
    @@ -1314,7 +1310,7 @@ if ($step == 5 && $datatoimport)
         if ($action == 'launchsimu') print ' &nbsp; <a href="'.$_SERVER["PHP_SELF"].'?step=5'.$param.'">'.$langs->trans("Modify").'</a>';
     	print '</td></tr>';
     
    -	// Keys for update
    +	// Keys for data UPDATE (not INSERT of new data)
     	print '<tr><td>';
     	print $langs->trans("KeysToUseForUpdates");
     	print '</td><td>';
    @@ -1332,8 +1328,8 @@ if ($step == 5 && $datatoimport)
     		}
     		print ' &nbsp; <a href="'.$_SERVER["PHP_SELF"].'?step=5'.$param.'">'.$langs->trans("Modify").'</a>';
     	} else {
    -		if (count($objimport->array_import_updatekeys[0]))
    -		{
    +   		if ($objimport->array_import_updatekeys[0] && count($objimport->array_import_updatekeys[0]))
    +        {//TODO dropdown UL is created inside nested SPANS
     			print $form->multiselectarray('updatekeys', $objimport->array_import_updatekeys[0], $updatekeys, 0, 0, '', 1, '80%');
     			print $form->textwithpicto("", $langs->trans("SelectPrimaryColumnsForUpdateAttempt"));
     		}
    @@ -1440,7 +1436,7 @@ if ($step == 5 && $datatoimport)
             }
             else
             {
    -            print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("RunSimulateImportFile").'</a>';
    +            print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("RunSimulateImportFile").'</a>';
             }
             print '</div>';
         }
    @@ -1479,7 +1475,7 @@ if ($step == 5 && $datatoimport)
                     $arrayrecord=$obj->import_read_record();
                     if ($arrayrecord === false)
                     {
    -					$arrayofwarnings[$sourcelinenb][0]=array('lib'=>'File has '.$nboflines.' lines. However we reach end of file after record '.$sourcelinenb.'. This may occurs when some records are split onto several lines.','type'=>'EOF_RECORD_ON_SEVERAL_LINES');
    +					$arrayofwarnings[$sourcelinenb][0]=array('lib'=>'File has '.$nboflines.' lines. However we reach end of file after record '.$sourcelinenb.'. This may occurs when some records are split onto several lines. Ensure the complete string is delimited correctly when there is a separator character in the text string.','type'=>'EOF_RECORD_ON_SEVERAL_LINES');
                     	$endoffile++;
                     	continue;
                     }
    @@ -1524,11 +1520,11 @@ if ($step == 5 && $datatoimport)
     
             // Show OK
             if (! count($arrayoferrors) && ! count($arrayofwarnings)) {
    -        	print '<center>'.img_picto($langs->trans("OK"),'tick').' <b>'.$langs->trans("NoError").'</b></center><br><br>';
    +        	print '<div class="center">'.img_picto($langs->trans("OK"),'tick').' <b>'.$langs->trans("NoError").'</b></div><br><br>';
     			print $langs->trans("NbInsert", $obj->nbinsert).'<br>';
     			print $langs->trans("NbUpdate", $obj->nbupdate).'<br><br>';
     		}
    -        else print '<b>'.$langs->trans("NbOfLinesOK",$nbok).'</b><br><br>';
    +        else print $langs->trans("NbOfLinesOK",$nbok).'<br><br>';
     
             // Show Errors
             //var_dump($arrayoferrors);
    @@ -1600,17 +1596,16 @@ if ($step == 5 && $datatoimport)
                 {
                     //print '<input type="submit" class="butAction" value="'.dol_escape_htmltag($langs->trans("RunSimulateImportFile")).'">';
     
    -                print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("CorrectErrorBeforeRunningImport")).'">'.$langs->trans("RunImportFile").'</a>';
    +                print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("CorrectErrorBeforeRunningImport")).'">'.$langs->trans("RunImportFile").'</a>';
                 }
             }
             else
             {
    -            print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("RunSimulateImportFile").'</a>';
    +            print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("RunSimulateImportFile").'</a>';
     
    -            print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("RunImportFile").'</a>';
    +            print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")).'">'.$langs->trans("RunImportFile").'</a>';
             }
             print '</div>';
    -
         }
     
         print '</form>';
    @@ -1915,9 +1910,8 @@ if ($step == 6 && $datatoimport)
     
     print '<br>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
     
     
    @@ -1935,15 +1929,22 @@ function show_elem($fieldssource,$pos,$key,$var,$nostyle='')
     {
     	global $langs,$bc;
     
    -	$height='24';
    +	$height='24px';
     
    +    if ($key == 'none') {//stop multiple duplicate ids with no number
    +        print "\n\n<!-- Box_no-key start-->\n";
    +        print '<div class="box boximport" style="padding:0;">' . "\n";
    +        print '<table summary="boxtable_no-key" width="100%" class="nobordernopadding">' . "\n";
    +    } else {
     	print "\n\n<!-- Box ".$pos." start -->\n";
    -	print '<div class="box boximport" style="padding: 0px 0px 0px 0px;" id="boxto_'.$pos.'">'."\n";
    +        print '<div class="box boximport" style="padding: 0;" id="boxto_' . $pos . '">' . "\n";
     
     	print '<table summary="boxtable'.$pos.'" width="100%" class="nobordernopadding">'."\n";
    +    }
    +
     	if ($pos && $pos > count($fieldssource))	// No fields
     	{
    -		print '<tr '.($nostyle?'':$bc[$var]).' height="'.$height.'">';
    +		print '<tr'.($nostyle?'':' '.$bc[$var]).' style="height:'.$height.'">';
     		print '<td class="nocellnopadding" width="16" style="font-weight: normal">';
     		print img_picto(($pos>0?$langs->trans("MoveField",$pos):''),'grip_title','class="boxhandle" style="cursor:move;"');
     		print '</td>';
    @@ -1954,7 +1955,7 @@ function show_elem($fieldssource,$pos,$key,$var,$nostyle='')
     	}
     	elseif ($key == 'none')	// Empty line
     	{
    -		print '<tr '.($nostyle?'':$bc[$var]).' height="'.$height.'">';
    +		print '<tr'.($nostyle?'':' '.$bc[$var]).' style="height:'.$height.'">';
     		print '<td class="nocellnopadding" width="16" style="font-weight: normal">';
     		print '&nbsp;';
     		print '</td>';
    @@ -1965,7 +1966,7 @@ function show_elem($fieldssource,$pos,$key,$var,$nostyle='')
     	}
     	else	// Print field of source file
     	{
    -		print '<tr '.($nostyle?'':$bc[$var]).' height="'.$height.'">';
    +		print '<tr'.($nostyle?'':' '.$bc[$var]).' style="height:'.$height.'">';
     		print '<td class="nocellnopadding" width="16" style="font-weight: normal">';
     		// The image must have the class 'boxhandle' beause it's value used in DOM draggable objects to define the area used to catch the full object
     		print img_picto($langs->trans("MoveField",$pos),'grip_title','class="boxhandle" style="cursor:move;"');
    diff --git a/htdocs/imports/index.php b/htdocs/imports/index.php
    index cd67a90e4dd..2c1905d9db4 100644
    --- a/htdocs/imports/index.php
    +++ b/htdocs/imports/index.php
    @@ -96,7 +96,7 @@ if (count($import->array_import_code))
     	//}
     	//else
     	//{
    -	//	print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("NewImport").'</a>';
    +	//	print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("NewImport").'</a>';
     	//}
     }
     print '</div>';
    @@ -134,7 +134,6 @@ print '</table>';
     
     //print '</div></div></div>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/includes/Psr/autoloader.php b/htdocs/includes/Psr/autoloader.php
    new file mode 100644
    index 00000000000..1270188ebfd
    --- /dev/null
    +++ b/htdocs/includes/Psr/autoloader.php
    @@ -0,0 +1,10 @@
    +<?php
    +spl_autoload_register(function ($class_name) {
    +	$preg_match = preg_match('/^Psr\\\SimpleCache/', $class_name);
    +
    +	if (1 === $preg_match) {
    +	    $class_name = preg_replace('/\\\/', '/', $class_name);
    +	    $class_name = preg_replace('/^Psr\\/SimpleCache\\//', '', $class_name);
    +	    require_once(__DIR__ . '/simple-cache/src/' . $class_name . '.php');
    +	}
    +});
    \ No newline at end of file
    diff --git a/htdocs/includes/Psr/simple-cache/.editorconfig b/htdocs/includes/Psr/simple-cache/.editorconfig
    new file mode 100644
    index 00000000000..48542cbb418
    --- /dev/null
    +++ b/htdocs/includes/Psr/simple-cache/.editorconfig
    @@ -0,0 +1,12 @@
    +; This file is for unifying the coding style for different editors and IDEs.
    +; More information at http://editorconfig.org
    +
    +root = true
    +
    +[*]
    +charset = utf-8
    +indent_size = 4
    +indent_style = space
    +end_of_line = lf
    +insert_final_newline = true
    +trim_trailing_whitespace = true
    diff --git a/htdocs/includes/Psr/simple-cache/LICENSE.md b/htdocs/includes/Psr/simple-cache/LICENSE.md
    new file mode 100644
    index 00000000000..e49a7c85a10
    --- /dev/null
    +++ b/htdocs/includes/Psr/simple-cache/LICENSE.md
    @@ -0,0 +1,21 @@
    +# The MIT License (MIT)
    +
    +Copyright (c) 2016 PHP Framework Interoperability Group
    +
    +> Permission is hereby granted, free of charge, to any person obtaining a copy
    +> of this software and associated documentation files (the "Software"), to deal
    +> in the Software without restriction, including without limitation the rights
    +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +> copies of the Software, and to permit persons to whom the Software is
    +> furnished to do so, subject to the following conditions:
    +>
    +> The above copyright notice and this permission notice shall be included in
    +> all copies or substantial portions of the Software.
    +>
    +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +> THE SOFTWARE.
    diff --git a/htdocs/includes/Psr/simple-cache/README.md b/htdocs/includes/Psr/simple-cache/README.md
    new file mode 100644
    index 00000000000..43641d175cc
    --- /dev/null
    +++ b/htdocs/includes/Psr/simple-cache/README.md
    @@ -0,0 +1,8 @@
    +PHP FIG Simple Cache PSR
    +========================
    +
    +This repository holds all interfaces related to PSR-16.
    +
    +Note that this is not a cache implementation of its own. It is merely an interface that describes a cache implementation. See [the specification](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-16-simple-cache.md) for more details.
    +
    +You can find implementations of the specification by looking for packages providing the [psr/simple-cache-implementation](https://packagist.org/providers/psr/simple-cache-implementation) virtual package.
    diff --git a/htdocs/includes/Psr/simple-cache/composer.json b/htdocs/includes/Psr/simple-cache/composer.json
    new file mode 100644
    index 00000000000..2978fa559a7
    --- /dev/null
    +++ b/htdocs/includes/Psr/simple-cache/composer.json
    @@ -0,0 +1,25 @@
    +{
    +    "name": "psr/simple-cache",
    +    "description": "Common interfaces for simple caching",
    +    "keywords": ["psr", "psr-16", "cache", "simple-cache", "caching"],
    +    "license": "MIT",
    +    "authors": [
    +        {
    +            "name": "PHP-FIG",
    +            "homepage": "http://www.php-fig.org/"
    +        }
    +    ],
    +    "require": {
    +        "php": ">=5.3.0"
    +    },
    +    "autoload": {
    +        "psr-4": {
    +            "Psr\\SimpleCache\\": "src/"
    +        }
    +    },
    +    "extra": {
    +        "branch-alias": {
    +            "dev-master": "1.0.x-dev"
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/Psr/simple-cache/src/CacheException.php b/htdocs/includes/Psr/simple-cache/src/CacheException.php
    new file mode 100644
    index 00000000000..eba53815c0c
    --- /dev/null
    +++ b/htdocs/includes/Psr/simple-cache/src/CacheException.php
    @@ -0,0 +1,10 @@
    +<?php
    +
    +namespace Psr\SimpleCache;
    +
    +/**
    + * Interface used for all types of exceptions thrown by the implementing library.
    + */
    +interface CacheException
    +{
    +}
    diff --git a/htdocs/includes/Psr/simple-cache/src/CacheInterface.php b/htdocs/includes/Psr/simple-cache/src/CacheInterface.php
    new file mode 100644
    index 00000000000..99e8d957488
    --- /dev/null
    +++ b/htdocs/includes/Psr/simple-cache/src/CacheInterface.php
    @@ -0,0 +1,114 @@
    +<?php
    +
    +namespace Psr\SimpleCache;
    +
    +interface CacheInterface
    +{
    +    /**
    +     * Fetches a value from the cache.
    +     *
    +     * @param string $key     The unique key of this item in the cache.
    +     * @param mixed  $default Default value to return if the key does not exist.
    +     *
    +     * @return mixed The value of the item from the cache, or $default in case of cache miss.
    +     *
    +     * @throws \Psr\SimpleCache\InvalidArgumentException
    +     *   MUST be thrown if the $key string is not a legal value.
    +     */
    +    public function get($key, $default = null);
    +
    +    /**
    +     * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time.
    +     *
    +     * @param string                 $key   The key of the item to store.
    +     * @param mixed                  $value The value of the item to store, must be serializable.
    +     * @param null|int|\DateInterval $ttl   Optional. The TTL value of this item. If no value is sent and
    +     *                                      the driver supports TTL then the library may set a default value
    +     *                                      for it or let the driver take care of that.
    +     *
    +     * @return bool True on success and false on failure.
    +     *
    +     * @throws \Psr\SimpleCache\InvalidArgumentException
    +     *   MUST be thrown if the $key string is not a legal value.
    +     */
    +    public function set($key, $value, $ttl = null);
    +
    +    /**
    +     * Delete an item from the cache by its unique key.
    +     *
    +     * @param string $key The unique cache key of the item to delete.
    +     *
    +     * @return bool True if the item was successfully removed. False if there was an error.
    +     *
    +     * @throws \Psr\SimpleCache\InvalidArgumentException
    +     *   MUST be thrown if the $key string is not a legal value.
    +     */
    +    public function delete($key);
    +
    +    /**
    +     * Wipes clean the entire cache's keys.
    +     *
    +     * @return bool True on success and false on failure.
    +     */
    +    public function clear();
    +
    +    /**
    +     * Obtains multiple cache items by their unique keys.
    +     *
    +     * @param iterable $keys    A list of keys that can obtained in a single operation.
    +     * @param mixed    $default Default value to return for keys that do not exist.
    +     *
    +     * @return iterable A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value.
    +     *
    +     * @throws \Psr\SimpleCache\InvalidArgumentException
    +     *   MUST be thrown if $keys is neither an array nor a Traversable,
    +     *   or if any of the $keys are not a legal value.
    +     */
    +    public function getMultiple($keys, $default = null);
    +
    +    /**
    +     * Persists a set of key => value pairs in the cache, with an optional TTL.
    +     *
    +     * @param iterable               $values A list of key => value pairs for a multiple-set operation.
    +     * @param null|int|\DateInterval $ttl    Optional. The TTL value of this item. If no value is sent and
    +     *                                       the driver supports TTL then the library may set a default value
    +     *                                       for it or let the driver take care of that.
    +     *
    +     * @return bool True on success and false on failure.
    +     *
    +     * @throws \Psr\SimpleCache\InvalidArgumentException
    +     *   MUST be thrown if $values is neither an array nor a Traversable,
    +     *   or if any of the $values are not a legal value.
    +     */
    +    public function setMultiple($values, $ttl = null);
    +
    +    /**
    +     * Deletes multiple cache items in a single operation.
    +     *
    +     * @param iterable $keys A list of string-based keys to be deleted.
    +     *
    +     * @return bool True if the items were successfully removed. False if there was an error.
    +     *
    +     * @throws \Psr\SimpleCache\InvalidArgumentException
    +     *   MUST be thrown if $keys is neither an array nor a Traversable,
    +     *   or if any of the $keys are not a legal value.
    +     */
    +    public function deleteMultiple($keys);
    +
    +    /**
    +     * Determines whether an item is present in the cache.
    +     *
    +     * NOTE: It is recommended that has() is only to be used for cache warming type purposes
    +     * and not to be used within your live applications operations for get/set, as this method
    +     * is subject to a race condition where your has() will return true and immediately after,
    +     * another script can remove it making the state of your app out of date.
    +     *
    +     * @param string $key The cache item key.
    +     *
    +     * @return bool
    +     *
    +     * @throws \Psr\SimpleCache\InvalidArgumentException
    +     *   MUST be thrown if the $key string is not a legal value.
    +     */
    +    public function has($key);
    +}
    diff --git a/htdocs/includes/Psr/simple-cache/src/InvalidArgumentException.php b/htdocs/includes/Psr/simple-cache/src/InvalidArgumentException.php
    new file mode 100644
    index 00000000000..6a9524a20c0
    --- /dev/null
    +++ b/htdocs/includes/Psr/simple-cache/src/InvalidArgumentException.php
    @@ -0,0 +1,13 @@
    +<?php
    +
    +namespace Psr\SimpleCache;
    +
    +/**
    + * Exception interface for invalid cache arguments.
    + *
    + * When an invalid argument is passed it must throw an exception which implements
    + * this interface
    + */
    +interface InvalidArgumentException extends CacheException
    +{
    +}
    diff --git a/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt b/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt
    deleted file mode 100755
    index 1076f8b4b2b..00000000000
    --- a/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt
    +++ /dev/null
    @@ -1,20 +0,0 @@
    -Copyright (c) 2009 Michael Aufreiter, http://www.quasipartikel.at
    -
    -Permission is hereby granted, free of charge, to any person obtaining
    -a copy of this software and associated documentation files (the
    -"Software"), to deal in the Software without restriction, including
    -without limitation the rights to use, copy, modify, merge, publish,
    -distribute, sublicense, and/or sell copies of the Software, and to
    -permit persons to whom the Software is furnished to do so, subject to
    -the following conditions:
    -
    -The above copyright notice and this permission notice shall be
    -included in all copies or substantial portions of the Software.
    -
    -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
    -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
    -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    \ No newline at end of file
    diff --git a/htdocs/includes/jquery/plugins/multiselect/css/ui.multiselect.css b/htdocs/includes/jquery/plugins/multiselect/css/ui.multiselect.css
    deleted file mode 100755
    index 2072baa57c4..00000000000
    --- a/htdocs/includes/jquery/plugins/multiselect/css/ui.multiselect.css
    +++ /dev/null
    @@ -1,144 +0,0 @@
    -/* Multiselect
    -----------------------------------*/
    -.multiselect {
    -	width: 600px;
    -	height: 150px;
    -}
    -
    -.ui-multiselect {
    -	border: solid 1px;
    -	font-size: 0.8em;
    -}
    -
    -.ui-multiselect ul {
    -	-moz-user-select: none;
    -}
    -
    -.ui-multiselect li {
    -	margin: 0;
    -	padding: 0;
    -	cursor: default;
    -	line-height: 20px;
    -	height: 20px;
    -	font-size: 11px;
    -	list-style: none;
    -}
    -
    -.ui-multiselect li a {
    -	color: #999;
    -	text-decoration: none;
    -	padding: 0;
    -	display: block;
    -	float: left;
    -	cursor: pointer;
    -}
    -
    -.ui-multiselect li.ui-draggable-dragging {
    -	padding-left: 10px;
    -}
    -
    -.ui-multiselect div.selected {
    -	position: relative;
    -	padding: 0;
    -	margin: 0;
    -	border: 0;
    -	float: left;
    -}
    -
    -.ui-multiselect ul.selected {
    -	position: relative;
    -	padding: 0;
    -	overflow: auto;
    -	overflow-x: hidden;
    -	background: #fff;
    -	margin: 0;
    -	list-style: none;
    -	border: 0;
    -	position: relative;
    -	width: 100%;
    -}
    -
    -.ui-multiselect ul.selected li {
    -	
    -}
    -
    -.ui-multiselect div.available {
    -	position: relative;
    -	padding: 0;
    -	margin: 0;
    -	border: 0;
    -	float: left;
    -	border-left: 1px solid;
    -}
    -
    -.ui-multiselect ul.available {
    -	position: relative;
    -	padding: 0;
    -	overflow: auto;
    -	overflow-x: hidden;
    -	background: #fff;
    -	margin: 0;
    -	list-style: none;
    -	border: 0;
    -	width: 100%;
    -}
    -
    -.ui-multiselect ul.available li {
    -	padding-left: 10px;
    -}
    -
    -.ui-multiselect .ui-state-default {
    -	border: none;
    -	margin-bottom: 1px;
    -	position: relative;
    -	padding-left: 20px;
    -}
    -
    -.ui-multiselect .ui-state-hover {
    -	border: none;
    -}
    -
    -.ui-multiselect .ui-widget-header {
    -	border: none;
    -	font-size: 11px;
    -	margin-bottom: 1px;
    -}
    -
    -.ui-multiselect .add-all {
    -	float: right;
    -	padding: 7px;
    -}
    -
    -.ui-multiselect .remove-all {
    -	float: right;
    -	padding: 7px;
    -}
    -
    -.ui-multiselect .search {
    -	float: left;
    -	padding: 4px;
    -}
    -
    -.ui-multiselect .count {
    -	float: left;
    -	padding: 7px;
    -}
    -
    -.ui-multiselect li span.ui-icon-arrowthick-2-n-s {
    -	position: absolute;
    -	left: 2px;
    -}
    -
    -.ui-multiselect li a.action {
    -	position: absolute;
    -	right: 2px;
    -	top: 2px;
    -}
    -
    -.ui-multiselect input.search {
    -	height: 14px;
    -	padding: 1px;
    -	opacity: 0.5;
    -	margin: 4px;
    -	width: 100px;
    -}
    \ No newline at end of file
    diff --git a/htdocs/includes/jquery/plugins/multiselect/jquery.multi-select.js b/htdocs/includes/jquery/plugins/multiselect/jquery.multi-select.js
    new file mode 100644
    index 00000000000..ee62d1f588d
    --- /dev/null
    +++ b/htdocs/includes/jquery/plugins/multiselect/jquery.multi-select.js
    @@ -0,0 +1,360 @@
    +// jquery.multi-select.js
    +// by mySociety
    +// https://github.com/mysociety/jquery-multi-select
    +
    +;(function($) {
    +
    +  "use strict";
    +
    +  var pluginName = "multiSelect",
    +    defaults = {
    +      'containerHTML': '<div class="multi-select-container">',
    +      'menuHTML': '<div class="multi-select-menu">',
    +      'buttonHTML': '<span class="multi-select-button">',
    +      'menuItemsHTML': '<div class="multi-select-menuitems">',
    +      'menuItemHTML': '<label class="multi-select-menuitem">',
    +      'presetsHTML': '<div class="multi-select-presets">',
    +      'activeClass': 'multi-select-container--open',
    +      'noneText': '-- Select --',
    +      'allText': undefined,
    +      'presets': undefined,
    +      'positionedMenuClass': 'multi-select-container--positioned',
    +      'positionMenuWithin': undefined,
    +      'viewportBottomGutter': 20,
    +      'menuMinHeight': 200
    +    };
    +
    +  /**
    +   * @constructor
    +   */
    +  function MultiSelect(element, options) {
    +    this.element = element;
    +    this.$element = $(element);
    +    this.settings = $.extend( {}, defaults, options );
    +    this._defaults = defaults;
    +    this._name = pluginName;
    +    this.init();
    +  }
    +
    +  function arraysAreEqual(array1, array2) {
    +    if ( array1.length != array2.length ){
    +      return false;
    +    }
    +
    +    array1.sort();
    +    array2.sort();
    +
    +    for ( var i = 0; i < array1.length; i++ ){
    +      if ( array1[i] !== array2[i] ){
    +        return false;
    +      }
    +    }
    +
    +    return true;
    +  }
    +
    +  $.extend(MultiSelect.prototype, {
    +
    +    init: function() {
    +      this.checkSuitableInput();
    +      this.findLabels();
    +      this.constructContainer();
    +      this.constructButton();
    +      this.constructMenu();
    +
    +      this.setUpBodyClickListener();
    +      this.setUpLabelsClickListener();
    +
    +      this.$element.hide();
    +    },
    +
    +    checkSuitableInput: function(text) {
    +      if ( this.$element.is('select[multiple]') === false ) {
    +        throw new Error('$.multiSelect only works on <select multiple> elements');
    +      }
    +    },
    +
    +    findLabels: function() {
    +      this.$labels = $('label[for="' + this.$element.attr('id') + '"]');
    +    },
    +
    +    constructContainer: function() {
    +      this.$container = $(this.settings['containerHTML']);
    +      this.$element.data('multi-select-container', this.$container);
    +      this.$container.insertAfter(this.$element);
    +    },
    +
    +    constructButton: function() {
    +      var _this = this;
    +      this.$button = $(this.settings['buttonHTML']);
    +      this.$button.attr({
    +        'role': 'button',
    +        'aria-haspopup': 'true',
    +        'tabindex': 0,
    +        'aria-label': this.$labels.eq(0).text()
    +      })
    +      .on('keydown.multiselect', function(e) {
    +        var key = e.which;
    +        var returnKey = 13;
    +        var spaceKey = 32;
    +        if ((key === returnKey) || (key === spaceKey)) {
    +          _this.$button.click();
    +        }
    +      }).on('click.multiselect', function(e) {
    +        _this.menuToggle();
    +      })
    +      .appendTo(this.$container);
    +
    +      this.$element.on('change.multiselect', function() {
    +        _this.updateButtonContents();
    +      });
    +
    +      this.updateButtonContents();
    +    },
    +
    +    updateButtonContents: function() {
    +      var _this = this;
    +      var options = [];
    +      var selected = [];
    +
    +      this.$element.children('option').each(function() {
    +        var text = /** @type string */ ($(this).text());
    +        options.push(text);
    +        if ($(this).is(':selected')) {
    +          selected.push( $.trim(text) );
    +        }
    +      });
    +
    +      this.$button.empty();
    +
    +      if (selected.length == 0) {
    +        this.$button.text( this.settings['noneText'] );
    +      } else if ( (selected.length === options.length) && this.settings['allText']) {
    +        this.$button.text( this.settings['allText'] );
    +      } else {
    +        this.$button.text( selected.join(', ') );
    +      }
    +    },
    +
    +    constructMenu: function() {
    +      var _this = this;
    +
    +      this.$menu = $(this.settings['menuHTML']);
    +      this.$menu.attr({
    +        'role': 'menu'
    +      }).on('keyup.multiselect', function(e){
    +        var key = e.which;
    +        var escapeKey = 27;
    +        if (key === escapeKey) {
    +          _this.menuHide();
    +        }
    +      })
    +      .appendTo(this.$container);
    +
    +      this.constructMenuItems();
    +
    +      if ( this.settings['presets'] ) {
    +        this.constructPresets();
    +      }
    +    },
    +
    +    constructMenuItems: function() {
    +      var _this = this;
    +
    +      this.$menuItems = $(this.settings['menuItemsHTML']);
    +      this.$menu.append(this.$menuItems);
    +
    +      this.$element.on('change.multiselect', function(e, internal) {
    +        // Don't need to update the menu items if this
    +        // change event was fired by our tickbox handler.
    +        if(internal !== true){
    +          _this.updateMenuItems();
    +        }
    +      });
    +
    +      this.updateMenuItems();
    +    },
    +
    +    updateMenuItems: function() {
    +      var _this = this;
    +      this.$menuItems.empty();
    +
    +      this.$element.children('option').each(function(option_index, option) {
    +        var $item = _this.constructMenuItem($(option), option_index);
    +        _this.$menuItems.append($item);
    +      });
    +    },
    +
    +    constructPresets: function() {
    +      var _this = this;
    +      this.$presets = $(this.settings['presetsHTML']);
    +      this.$menu.prepend(this.$presets);
    +
    +      $.each(this.settings['presets'], function(i, preset){
    +        var unique_id = _this.$element.attr('name') + '_preset_' + i;
    +        var $item = $(_this.settings['menuItemHTML'])
    +          .attr({
    +            'for': unique_id,
    +            'role': 'menuitem'
    +          })
    +          .text(' ' + preset.name)
    +          .appendTo(_this.$presets);
    +
    +        var $input = $('<input>')
    +          .attr({
    +            'type': 'radio',
    +            'name': _this.$element.attr('name') + '_presets',
    +            'id': unique_id
    +          })
    +          .prependTo($item);
    +
    +        $input.on('change.multiselect', function(){
    +          _this.$element.val(preset.options);
    +          _this.$element.trigger('change');
    +        });
    +      });
    +
    +      this.$element.on('change.multiselect', function() {
    +        _this.updatePresets();
    +      });
    +
    +      this.updatePresets();
    +    },
    +
    +    updatePresets: function() {
    +      var _this = this;
    +
    +      $.each(this.settings['presets'], function(i, preset){
    +        var unique_id = _this.$element.attr('name') + '_preset_' + i;
    +        var $input = _this.$presets.find('#' + unique_id);
    +
    +        if ( arraysAreEqual(preset.options || [], _this.$element.val() || []) ){
    +          $input.prop('checked', true);
    +        } else {
    +          $input.prop('checked', false);
    +        }
    +      });
    +    },
    +
    +    constructMenuItem: function($option, option_index) {
    +      var unique_id = this.$element.attr('name') + '_' + option_index;
    +      var $item = $(this.settings['menuItemHTML'])
    +        .attr({
    +          'for': unique_id,
    +          'role': 'menuitem'
    +        })
    +        .text(' ' + $option.text());
    +
    +      var $input = $('<input>')
    +        .attr({
    +          'type': 'checkbox',
    +          'id': unique_id,
    +          'value': $option.val()
    +        })
    +        .prependTo($item);
    +
    +      if ( $option.is(':disabled') ) {
    +        $input.attr('disabled', 'disabled');
    +      }
    +      if ( $option.is(':selected') ) {
    +        $input.prop('checked', 'checked');
    +      }
    +
    +      $input.on('change.multiselect', function() {
    +        if ($(this).prop('checked')) {
    +          $option.prop('selected', true);
    +        } else {
    +          $option.prop('selected', false);
    +        }
    +
    +        // .prop() on its own doesn't generate a change event.
    +        // Other plugins might want to do stuff onChange.
    +        $option.trigger('change', [true]);
    +      });
    +
    +      return $item;
    +    },
    +
    +    setUpBodyClickListener: function() {
    +      var _this = this;
    +
    +      // Hide the $menu when you click outside of it.
    +      $('html').on('click.multiselect', function(){
    +        _this.menuHide();
    +      });
    +
    +      // Stop click events from inside the $button or $menu from
    +      // bubbling up to the body and closing the menu!
    +      this.$container.on('click.multiselect', function(e){
    +        e.stopPropagation();
    +      });
    +    },
    +
    +    setUpLabelsClickListener: function() {
    +      var _this = this;
    +      this.$labels.on('click.multiselect', function(e) {
    +        e.preventDefault();
    +        e.stopPropagation();
    +        _this.menuToggle();
    +      });
    +    },
    +
    +    menuShow: function() {
    +      $('html').trigger('click.multiselect'); // Close any other open menus
    +      this.$container.addClass(this.settings['activeClass']);
    +
    +      if ( this.settings['positionMenuWithin'] && this.settings['positionMenuWithin'] instanceof $ ) {
    +        var menuLeftEdge = this.$menu.offset().left + this.$menu.outerWidth();
    +        var withinLeftEdge = this.settings['positionMenuWithin'].offset().left +
    +          this.settings['positionMenuWithin'].outerWidth();
    +
    +        if ( menuLeftEdge > withinLeftEdge ) {
    +          this.$menu.css( 'width', (withinLeftEdge - this.$menu.offset().left) );
    +          this.$container.addClass(this.settings['positionedMenuClass']);
    +        }
    +      }
    +
    +      var menuBottom = this.$menu.offset().top + this.$menu.outerHeight();
    +      var viewportBottom = $(window).scrollTop() + $(window).height();
    +      if ( menuBottom > viewportBottom - this.settings['viewportBottomGutter'] ) {
    +        this.$menu.css({
    +          'maxHeight': Math.max(
    +            viewportBottom - this.settings['viewportBottomGutter'] - this.$menu.offset().top,
    +            this.settings['menuMinHeight']
    +          ),
    +          'overflow': 'scroll'
    +        });
    +      } else {
    +        this.$menu.css({
    +          'maxHeight': '',
    +          'overflow': ''
    +        });
    +      }
    +    },
    +
    +    menuHide: function() {
    +      this.$container.removeClass(this.settings['activeClass']);
    +      this.$container.removeClass(this.settings['positionedMenuClass']);
    +      this.$menu.css('width', 'auto');
    +    },
    +
    +    menuToggle: function() {
    +      if ( this.$container.hasClass(this.settings['activeClass']) ) {
    +        this.menuHide();
    +      } else {
    +        this.menuShow();
    +      }
    +    }
    +
    +  });
    +
    +  $.fn[ pluginName ] = function(options) {
    +    return this.each(function() {
    +      if ( !$.data(this, "plugin_" + pluginName) ) {
    +        $.data(this, "plugin_" + pluginName,
    +          new MultiSelect(this, options) );
    +      }
    +    });
    +  };
    +
    +})(jQuery);
    diff --git a/htdocs/includes/jquery/plugins/multiselect/jquery.multi-select.min.js b/htdocs/includes/jquery/plugins/multiselect/jquery.multi-select.min.js
    new file mode 100644
    index 00000000000..015aee2264b
    --- /dev/null
    +++ b/htdocs/includes/jquery/plugins/multiselect/jquery.multi-select.min.js
    @@ -0,0 +1,9 @@
    +(function(c){function f(b,a){this.b=c(b);this.a=c.extend({},g,a);this.H()}var g={containerHTML:'<div class="multi-select-container">',menuHTML:'<div class="multi-select-menu">',buttonHTML:'<span class="multi-select-button">',menuItemsHTML:'<div class="multi-select-menuitems">',menuItemHTML:'<label class="multi-select-menuitem">',presetsHTML:'<div class="multi-select-presets">',activeClass:"multi-select-container--open",noneText:"-- Select --",allText:void 0,presets:void 0,positionedMenuClass:"multi-select-container--positioned",
    +positionMenuWithin:void 0,viewportBottomGutter:20,menuMinHeight:200};c.extend(f.prototype,{H:function(){this.v();this.G();this.A();this.w();this.B();this.J();this.K();this.b.hide()},v:function(){if(!1===this.b.is("select[multiple]"))throw Error("$.multiSelect only works on <select multiple> elements");},G:function(){this.l=c('label[for="'+this.b.attr("id")+'"]')},A:function(){this.f=c(this.a.containerHTML);this.b.data("multi-select-container",this.f);this.f.insertAfter(this.b)},w:function(){var b=
    +this;this.g=c(this.a.buttonHTML);this.g.attr({role:"button","aria-haspopup":"true",tabindex:0,"aria-label":this.l.eq(0).text()}).on("keydown.multiselect",function(a){a=a.which;13!==a&&32!==a||b.g.click()}).on("click.multiselect",function(){b.m()}).appendTo(this.f);this.b.on("change.multiselect",function(){b.o()});this.o()},o:function(){var b=[],a=[];this.b.children("option").each(function(){var d=c(this).text();b.push(d);c(this).is(":selected")&&a.push(c.trim(d))});this.g.empty();0==a.length?this.g.text(this.a.noneText):
    +a.length===b.length&&this.a.allText?this.g.text(this.a.allText):this.g.text(a.join(", "))},B:function(){var b=this;this.c=c(this.a.menuHTML);this.c.attr({role:"menu"}).on("keyup.multiselect",function(a){27===a.which&&b.j()}).appendTo(this.f);this.D();this.a.presets&&this.F()},D:function(){var b=this;this.h=c(this.a.menuItemsHTML);this.c.append(this.h);this.b.on("change.multiselect",function(a,c){!0!==c&&b.s()});this.s()},s:function(){var b=this;this.h.empty();this.b.children("option").each(function(a,
    +d){a=b.C(c(d),a);b.h.append(a)})},F:function(){var b=this;this.i=c(this.a.presetsHTML);this.c.prepend(this.i);c.each(this.a.presets,function(a,d){a=b.b.attr("name")+"_preset_"+a;var h=c(b.a.menuItemHTML).attr({"for":a,role:"menuitem"}).text(" "+d.name).appendTo(b.i);c("<input>").attr({type:"radio",name:b.b.attr("name")+"_presets",id:a}).prependTo(h).on("change.multiselect",function(){b.b.val(d.options);b.b.trigger("change")})});this.b.on("change.multiselect",function(){b.u()});this.u()},u:function(){var b=
    +this;c.each(this.a.presets,function(a,c){a=b.b.attr("name")+"_preset_"+a;a=b.i.find("#"+a);a:{c=c.options||[];var d=b.b.val()||[];if(c.length!=d.length)c=!1;else{c.sort();d.sort();for(var e=0;e<c.length;e++)if(c[e]!==d[e]){c=!1;break a}c=!0}}c?a.prop("checked",!0):a.prop("checked",!1)})},C:function(b,a){var d=this.b.attr("name")+"_"+a;a=c(this.a.menuItemHTML).attr({"for":d,role:"menuitem"}).text(" "+b.text());d=c("<input>").attr({type:"checkbox",id:d,value:b.val()}).prependTo(a);b.is(":disabled")&&
    +d.attr("disabled","disabled");b.is(":selected")&&d.prop("checked","checked");d.on("change.multiselect",function(){c(this).prop("checked")?b.prop("selected",!0):b.prop("selected",!1);b.trigger("change",[!0])});return a},J:function(){var b=this;c("html").on("click.multiselect",function(){b.j()});this.f.on("click.multiselect",function(a){a.stopPropagation()})},K:function(){var b=this;this.l.on("click.multiselect",function(a){a.preventDefault();a.stopPropagation();b.m()})},I:function(){c("html").trigger("click.multiselect");
    +this.f.addClass(this.a.activeClass);if(this.a.positionMenuWithin&&this.a.positionMenuWithin instanceof c){var b=this.c.offset().left+this.c.outerWidth(),a=this.a.positionMenuWithin.offset().left+this.a.positionMenuWithin.outerWidth();b>a&&(this.c.css("width",a-this.c.offset().left),this.f.addClass(this.a.positionedMenuClass))}b=this.c.offset().top+this.c.outerHeight();a=c(window).scrollTop()+c(window).height();b>a-this.a.viewportBottomGutter?this.c.css({maxHeight:Math.max(a-this.a.viewportBottomGutter-
    +this.c.offset().top,this.a.menuMinHeight),overflow:"scroll"}):this.c.css({maxHeight:"",overflow:""})},j:function(){this.f.removeClass(this.a.activeClass);this.f.removeClass(this.a.positionedMenuClass);this.c.css("width","auto")},m:function(){this.f.hasClass(this.a.activeClass)?this.j():this.I()}});c.fn.multiSelect=function(b){return this.each(function(){c.data(this,"plugin_multiSelect")||c.data(this,"plugin_multiSelect",new f(this,b))})}})(jQuery);
    diff --git a/htdocs/includes/jquery/plugins/multiselect/js/ui.multiselect.js b/htdocs/includes/jquery/plugins/multiselect/js/ui.multiselect.js
    deleted file mode 100755
    index 1234fa7a957..00000000000
    --- a/htdocs/includes/jquery/plugins/multiselect/js/ui.multiselect.js
    +++ /dev/null
    @@ -1,336 +0,0 @@
    -/*
    - * jQuery UI Multiselect
    - *
    - * Authors:
    - *  Michael Aufreiter (quasipartikel.at)
    - *  Yanick Rochon (yanick.rochon[at]gmail[dot]com)
    - * 
    - * Dual licensed under the MIT (MIT-LICENSE.txt)
    - * and GPL (GPL-LICENSE.txt) licenses.
    - * 
    - * http://www.quasipartikel.at/multiselect/
    - *
    - * 
    - * Depends:
    - *	ui.core.js
    - *	ui.sortable.js
    - *
    - * Optional:
    - * localization (http://plugins.jquery.com/project/localisation)
    - * scrollTo (http://plugins.jquery.com/project/ScrollTo)
    - * 
    - * Todo:
    - *  Make batch actions faster
    - *  Implement dynamic insertion through remote calls
    - */
    -
    -
    -(function($) {
    -
    -$.widget("ui.multiselect", {
    -  options: {
    -		sortable: true,
    -		searchable: true,
    -		doubleClickable: true,
    -		animated: 'fast',
    -		show: 'slideDown',
    -		hide: 'slideUp',
    -		dividerLocation: 0.6,
    -		nodeComparator: function(node1,node2) {
    -			var text1 = node1.text(),
    -			    text2 = node2.text();
    -			return text1 == text2 ? 0 : (text1 < text2 ? -1 : 1);
    -		}
    -	},
    -	_create: function() {
    -		this.element.hide();
    -		this.id = this.element.attr("id");
    -		this.container = $('<div class="ui-multiselect ui-helper-clearfix ui-widget"></div>').insertAfter(this.element);
    -		this.count = 0; // number of currently selected options
    -		this.selectedContainer = $('<div class="selected"></div>').appendTo(this.container);
    -		this.availableContainer = $('<div class="available"></div>').appendTo(this.container);
    -		this.selectedActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><span class="count">0 '+$.ui.multiselect.locale.itemsCount+'</span><a href="#" class="remove-all">'+$.ui.multiselect.locale.removeAll+'</a></div>').appendTo(this.selectedContainer);
    -		this.availableActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><input type="text" class="search empty ui-widget-content ui-corner-all"/><a href="#" class="add-all">'+$.ui.multiselect.locale.addAll+'</a></div>').appendTo(this.availableContainer);
    -		this.selectedList = $('<ul class="selected connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer);
    -		this.availableList = $('<ul class="available connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer);
    -		
    -		var that = this;
    -
    -		// set dimensions
    -		this.container.width(this.element.width()+1);
    -		this.selectedContainer.width(Math.floor(this.element.width()*this.options.dividerLocation));
    -		this.availableContainer.width(Math.floor(this.element.width()*(1-this.options.dividerLocation)));
    -
    -		// fix list height to match <option> depending on their individual header's heights
    -		this.selectedList.height(Math.max(this.element.height()-this.selectedActions.height(),1));
    -		this.availableList.height(Math.max(this.element.height()-this.availableActions.height(),1));
    -		
    -		if ( !this.options.animated ) {
    -			this.options.show = 'show';
    -			this.options.hide = 'hide';
    -		}
    -		
    -		// init lists
    -		this._populateLists(this.element.find('option'));
    -		
    -		// make selection sortable
    -		if (this.options.sortable) {
    -			this.selectedList.sortable({
    -				placeholder: 'ui-state-highlight',
    -				axis: 'y',
    -				update: function(event, ui) {
    -					// apply the new sort order to the original selectbox
    -					that.selectedList.find('li').each(function() {
    -						if ($(this).data('optionLink'))
    -							$(this).data('optionLink').remove().appendTo(that.element);
    -					});
    -				},
    -				receive: function(event, ui) {
    -					ui.item.data('optionLink').attr('selected', true);
    -					// increment count
    -					that.count += 1;
    -					that._updateCount();
    -					// workaround, because there's no way to reference 
    -					// the new element, see http://dev.jqueryui.com/ticket/4303
    -					that.selectedList.children('.ui-draggable').each(function() {
    -						$(this).removeClass('ui-draggable');
    -						$(this).data('optionLink', ui.item.data('optionLink'));
    -						$(this).data('idx', ui.item.data('idx'));
    -						that._applyItemState($(this), true);
    -					});
    -			
    -					// workaround according to http://dev.jqueryui.com/ticket/4088
    -					setTimeout(function() { ui.item.remove(); }, 1);
    -				}
    -			});
    -		}
    -		
    -		// set up livesearch
    -		if (this.options.searchable) {
    -			this._registerSearchEvents(this.availableContainer.find('input.search'));
    -		} else {
    -			$('.search').hide();
    -		}
    -		
    -		// batch actions
    -		this.container.find(".remove-all").click(function() {
    -			that._populateLists(that.element.find('option').removeAttr('selected'));
    -			return false;
    -		});
    -		
    -		this.container.find(".add-all").click(function() {
    -			var options = that.element.find('option').not(":selected");
    -			if (that.availableList.children('li:hidden').length > 1) {
    -				that.availableList.children('li').each(function(i) {
    -					if ($(this).is(":visible")) $(options[i-1]).attr('selected', 'selected'); 
    -				});
    -			} else {
    -				options.attr('selected', 'selected');
    -			}
    -			that._populateLists(that.element.find('option'));
    -			return false;
    -		});
    -	},
    -	destroy: function() {
    -		this.element.show();
    -		this.container.remove();
    -
    -		$.Widget.prototype.destroy.apply(this, arguments);
    -	},
    -	_populateLists: function(options) {
    -		this.selectedList.children('.ui-element').remove();
    -		this.availableList.children('.ui-element').remove();
    -		this.count = 0;
    -
    -		var that = this;
    -		var items = $(options.map(function(i) {
    -	      var item = that._getOptionNode(this).appendTo(this.selected ? that.selectedList : that.availableList).show();
    -
    -			if (this.selected) that.count += 1;
    -			that._applyItemState(item, this.selected);
    -			item.data('idx', i);
    -			return item[0];
    -    }));
    -		
    -		// update count
    -		this._updateCount();
    -		that._filter.apply(this.availableContainer.find('input.search'), [that.availableList]);
    -  },
    -	_updateCount: function() {
    -		this.selectedContainer.find('span.count').text(this.count+" "+$.ui.multiselect.locale.itemsCount);
    -	},
    -	_getOptionNode: function(option) {
    -		option = $(option);
    -		var node = $('<li class="ui-state-default ui-element" title="'+option.text()+'"><span class="ui-icon"/>'+option.text()+'<a href="#" class="action"><span class="ui-corner-all ui-icon"/></a></li>').hide();
    -		node.data('optionLink', option);
    -		return node;
    -	},
    -	// clones an item with associated data
    -	// didn't find a smarter away around this
    -	_cloneWithData: function(clonee) {
    -		var clone = clonee.clone(false,false);
    -		clone.data('optionLink', clonee.data('optionLink'));
    -		clone.data('idx', clonee.data('idx'));
    -		return clone;
    -	},
    -	_setSelected: function(item, selected) {
    -		item.data('optionLink').attr('selected', selected);
    -
    -		if (selected) {
    -			var selectedItem = this._cloneWithData(item);
    -			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
    -			selectedItem.appendTo(this.selectedList).hide()[this.options.show](this.options.animated);
    -			
    -			this._applyItemState(selectedItem, true);
    -			return selectedItem;
    -		} else {
    -			
    -			// look for successor based on initial option index
    -			var items = this.availableList.find('li'), comparator = this.options.nodeComparator;
    -			var succ = null, i = item.data('idx'), direction = comparator(item, $(items[i]));
    -
    -			// TODO: test needed for dynamic list populating
    -			if ( direction ) {
    -				while (i>=0 && i<items.length) {
    -					direction > 0 ? i++ : i--;
    -					if ( direction != comparator(item, $(items[i])) ) {
    -						// going up, go back one item down, otherwise leave as is
    -						succ = items[direction > 0 ? i : i+1];
    -						break;
    -					}
    -				}
    -			} else {
    -				succ = items[i];
    -			}
    -			
    -			var availableItem = this._cloneWithData(item);
    -			succ ? availableItem.insertBefore($(succ)) : availableItem.appendTo(this.availableList);
    -			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
    -			availableItem.hide()[this.options.show](this.options.animated);
    -			
    -			this._applyItemState(availableItem, false);
    -			return availableItem;
    -		}
    -	},
    -	_applyItemState: function(item, selected) {
    -		if (selected) {
    -			if (this.options.sortable)
    -				item.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon');
    -			else
    -				item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
    -			item.find('a.action span').addClass('ui-icon-minus').removeClass('ui-icon-plus');
    -			this._registerRemoveEvents(item.find('a.action'));
    -			
    -		} else {
    -			item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
    -			item.find('a.action span').addClass('ui-icon-plus').removeClass('ui-icon-minus');
    -			this._registerAddEvents(item.find('a.action'));
    -		}
    -		
    -		this._registerDoubleClickEvents(item);
    -		this._registerHoverEvents(item);
    -	},
    -	// taken from John Resig's liveUpdate script
    -	_filter: function(list) {
    -		var input = $(this);
    -		var rows = list.children('li'),
    -			cache = rows.map(function(){
    -				
    -				return $(this).text().toLowerCase();
    -			});
    -		
    -		var term = $.trim(input.val().toLowerCase()), scores = [];
    -		
    -		if (!term) {
    -			rows.show();
    -		} else {
    -			rows.hide();
    -
    -			cache.each(function(i) {
    -				if (this.indexOf(term)>-1) { scores.push(i); }
    -			});
    -
    -			$.each(scores, function() {
    -				$(rows[this]).show();
    -			});
    -		}
    -	},
    -	_registerDoubleClickEvents: function(elements) {
    -		if (!this.options.doubleClickable) return;
    -		elements.dblclick(function() {
    -			elements.find('a.action').click();
    -		});
    -	},
    -	_registerHoverEvents: function(elements) {
    -		elements.removeClass('ui-state-hover');
    -		elements.mouseover(function() {
    -			$(this).addClass('ui-state-hover');
    -		});
    -		elements.mouseout(function() {
    -			$(this).removeClass('ui-state-hover');
    -		});
    -	},
    -	_registerAddEvents: function(elements) {
    -		var that = this;
    -		elements.click(function() {
    -			var item = that._setSelected($(this).parent(), true);
    -			that.count += 1;
    -			that._updateCount();
    -			return false;
    -		});
    -		
    -		// make draggable
    -		if (this.options.sortable) {
    -  		elements.each(function() {
    -  			$(this).parent().draggable({
    -  	      connectToSortable: that.selectedList,
    -  				helper: function() {
    -  					var selectedItem = that._cloneWithData($(this)).width($(this).width() - 50);
    -  					selectedItem.width($(this).width());
    -  					return selectedItem;
    -  				},
    -  				appendTo: that.container,
    -  				containment: that.container,
    -  				revert: 'invalid'
    -  	    });
    -  		});		  
    -		}
    -	},
    -	_registerRemoveEvents: function(elements) {
    -		var that = this;
    -		elements.click(function() {
    -			that._setSelected($(this).parent(), false);
    -			that.count -= 1;
    -			that._updateCount();
    -			return false;
    -		});
    - 	},
    -	_registerSearchEvents: function(input) {
    -		var that = this;
    -
    -		input.focus(function() {
    -			$(this).addClass('ui-state-active');
    -		})
    -		.blur(function() {
    -			$(this).removeClass('ui-state-active');
    -		})
    -		.keypress(function(e) {
    -			if (e.keyCode == 13)
    -				return false;
    -		})
    -		.keyup(function() {
    -			that._filter.apply(this, [that.availableList]);
    -		});
    -	}
    -});
    -		
    -$.extend($.ui.multiselect, {
    -	locale: {
    -		addAll:'Add all',
    -		removeAll:'Remove all',
    -		itemsCount:'items selected'
    -	}
    -});
    -
    -
    -})(jQuery);
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Calculation.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Calculation.php
    new file mode 100644
    index 00000000000..4f9ef639883
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Calculation.php
    @@ -0,0 +1,4473 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Engine\CyclicReferenceStack;
    +use PhpOffice\PhpSpreadsheet\Calculation\Engine\Logger;
    +use PhpOffice\PhpSpreadsheet\Calculation\Token\Stack;
    +use PhpOffice\PhpSpreadsheet\Cell\Cell;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\NamedRange;
    +use PhpOffice\PhpSpreadsheet\Shared;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +class Calculation
    +{
    +    /** Constants                */
    +    /** Regular Expressions        */
    +    //    Numeric operand
    +    const CALCULATION_REGEXP_NUMBER = '[-+]?\d*\.?\d+(e[-+]?\d+)?';
    +    //    String operand
    +    const CALCULATION_REGEXP_STRING = '"(?:[^"]|"")*"';
    +    //    Opening bracket
    +    const CALCULATION_REGEXP_OPENBRACE = '\(';
    +    //    Function (allow for the old @ symbol that could be used to prefix a function, but we'll ignore it)
    +    const CALCULATION_REGEXP_FUNCTION = '@?(?:_xlfn\.)?([A-Z][A-Z0-9\.]*)[\s]*\(';
    +    //    Cell reference (cell or range of cells, with or without a sheet reference)
    +    const CALCULATION_REGEXP_CELLREF = '((([^\s,!&%^\/\*\+<>=-]*)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?([a-z]{1,3})\$?(\d{1,7})';
    +    //    Named Range of cells
    +    const CALCULATION_REGEXP_NAMEDRANGE = '((([^\s,!&%^\/\*\+<>=-]*)|(\'[^\']*\')|(\"[^\"]*\"))!)?([_A-Z][_A-Z0-9\.]*)';
    +    //    Error
    +    const CALCULATION_REGEXP_ERROR = '\#[A-Z][A-Z0_\/]*[!\?]?';
    +
    +    /** constants */
    +    const RETURN_ARRAY_AS_ERROR = 'error';
    +    const RETURN_ARRAY_AS_VALUE = 'value';
    +    const RETURN_ARRAY_AS_ARRAY = 'array';
    +
    +    private static $returnArrayAsType = self::RETURN_ARRAY_AS_VALUE;
    +
    +    /**
    +     * Instance of this class.
    +     *
    +     * @var Calculation
    +     */
    +    private static $instance;
    +
    +    /**
    +     * Instance of the spreadsheet this Calculation Engine is using.
    +     *
    +     * @var Spreadsheet
    +     */
    +    private $spreadsheet;
    +
    +    /**
    +     * Calculation cache.
    +     *
    +     * @var array
    +     */
    +    private $calculationCache = [];
    +
    +    /**
    +     * Calculation cache enabled.
    +     *
    +     * @var bool
    +     */
    +    private $calculationCacheEnabled = true;
    +
    +    /**
    +     * List of operators that can be used within formulae
    +     * The true/false value indicates whether it is a binary operator or a unary operator.
    +     *
    +     * @var array
    +     */
    +    private static $operators = [
    +        '+' => true, '-' => true, '*' => true, '/' => true,
    +        '^' => true, '&' => true, '%' => false, '~' => false,
    +        '>' => true, '<' => true, '=' => true, '>=' => true,
    +        '<=' => true, '<>' => true, '|' => true, ':' => true,
    +    ];
    +
    +    /**
    +     * List of binary operators (those that expect two operands).
    +     *
    +     * @var array
    +     */
    +    private static $binaryOperators = [
    +        '+' => true, '-' => true, '*' => true, '/' => true,
    +        '^' => true, '&' => true, '>' => true, '<' => true,
    +        '=' => true, '>=' => true, '<=' => true, '<>' => true,
    +        '|' => true, ':' => true,
    +    ];
    +
    +    /**
    +     * The debug log generated by the calculation engine.
    +     *
    +     * @var Logger
    +     */
    +    private $debugLog;
    +
    +    /**
    +     * Flag to determine how formula errors should be handled
    +     *        If true, then a user error will be triggered
    +     *        If false, then an exception will be thrown.
    +     *
    +     * @var bool
    +     */
    +    public $suppressFormulaErrors = false;
    +
    +    /**
    +     * Error message for any error that was raised/thrown by the calculation engine.
    +     *
    +     * @var string
    +     */
    +    public $formulaError;
    +
    +    /**
    +     * An array of the nested cell references accessed by the calculation engine, used for the debug log.
    +     *
    +     * @var array of string
    +     */
    +    private $cyclicReferenceStack;
    +
    +    private $cellStack = [];
    +
    +    /**
    +     * Current iteration counter for cyclic formulae
    +     * If the value is 0 (or less) then cyclic formulae will throw an exception,
    +     * otherwise they will iterate to the limit defined here before returning a result.
    +     *
    +     * @var int
    +     */
    +    private $cyclicFormulaCounter = 1;
    +
    +    private $cyclicFormulaCell = '';
    +
    +    /**
    +     * Number of iterations for cyclic formulae.
    +     *
    +     * @var int
    +     */
    +    public $cyclicFormulaCount = 1;
    +
    +    /**
    +     * Epsilon Precision used for comparisons in calculations.
    +     *
    +     * @var float
    +     */
    +    private $delta = 0.1e-12;
    +
    +    /**
    +     * The current locale setting.
    +     *
    +     * @var string
    +     */
    +    private static $localeLanguage = 'en_us'; //    US English    (default locale)
    +
    +    /**
    +     * List of available locale settings
    +     * Note that this is read for the locale subdirectory only when requested.
    +     *
    +     * @var string[]
    +     */
    +    private static $validLocaleLanguages = [
    +        'en', //    English        (default language)
    +    ];
    +
    +    /**
    +     * Locale-specific argument separator for function arguments.
    +     *
    +     * @var string
    +     */
    +    private static $localeArgumentSeparator = ',';
    +
    +    private static $localeFunctions = [];
    +
    +    /**
    +     * Locale-specific translations for Excel constants (True, False and Null).
    +     *
    +     * @var string[]
    +     */
    +    public static $localeBoolean = [
    +        'TRUE' => 'TRUE',
    +        'FALSE' => 'FALSE',
    +        'NULL' => 'NULL',
    +    ];
    +
    +    /**
    +     * Excel constant string translations to their PHP equivalents
    +     * Constant conversion from text name/value to actual (datatyped) value.
    +     *
    +     * @var string[]
    +     */
    +    private static $excelConstants = [
    +        'TRUE' => true,
    +        'FALSE' => false,
    +        'NULL' => null,
    +    ];
    +
    +    // PhpSpreadsheet functions
    +    private static $phpSpreadsheetFunctions = [
    +        'ABS' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'abs',
    +            'argumentCount' => '1',
    +        ],
    +        'ACCRINT' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'ACCRINT'],
    +            'argumentCount' => '4-7',
    +        ],
    +        'ACCRINTM' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'ACCRINTM'],
    +            'argumentCount' => '3-5',
    +        ],
    +        'ACOS' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'acos',
    +            'argumentCount' => '1',
    +        ],
    +        'ACOSH' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'acosh',
    +            'argumentCount' => '1',
    +        ],
    +        'ACOT' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'ACOT'],
    +            'argumentCount' => '1',
    +        ],
    +        'ACOTH' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'ACOTH'],
    +            'argumentCount' => '1',
    +        ],
    +        'ADDRESS' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'cellAddress'],
    +            'argumentCount' => '2-5',
    +        ],
    +        'AMORDEGRC' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'AMORDEGRC'],
    +            'argumentCount' => '6,7',
    +        ],
    +        'AMORLINC' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'AMORLINC'],
    +            'argumentCount' => '6,7',
    +        ],
    +        'AND' => [
    +            'category' => Category::CATEGORY_LOGICAL,
    +            'functionCall' => [Logical::class, 'logicalAnd'],
    +            'argumentCount' => '1+',
    +        ],
    +        'AREAS' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '1',
    +        ],
    +        'ASC' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '1',
    +        ],
    +        'ASIN' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'asin',
    +            'argumentCount' => '1',
    +        ],
    +        'ASINH' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'asinh',
    +            'argumentCount' => '1',
    +        ],
    +        'ATAN' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'atan',
    +            'argumentCount' => '1',
    +        ],
    +        'ATAN2' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'ATAN2'],
    +            'argumentCount' => '2',
    +        ],
    +        'ATANH' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'atanh',
    +            'argumentCount' => '1',
    +        ],
    +        'AVEDEV' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'AVEDEV'],
    +            'argumentCount' => '1+',
    +        ],
    +        'AVERAGE' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'AVERAGE'],
    +            'argumentCount' => '1+',
    +        ],
    +        'AVERAGEA' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'AVERAGEA'],
    +            'argumentCount' => '1+',
    +        ],
    +        'AVERAGEIF' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'AVERAGEIF'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'AVERAGEIFS' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '3+',
    +        ],
    +        'BAHTTEXT' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '1',
    +        ],
    +        'BESSELI' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BESSELI'],
    +            'argumentCount' => '2',
    +        ],
    +        'BESSELJ' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BESSELJ'],
    +            'argumentCount' => '2',
    +        ],
    +        'BESSELK' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BESSELK'],
    +            'argumentCount' => '2',
    +        ],
    +        'BESSELY' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BESSELY'],
    +            'argumentCount' => '2',
    +        ],
    +        'BETADIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'BETADIST'],
    +            'argumentCount' => '3-5',
    +        ],
    +        'BETAINV' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'BETAINV'],
    +            'argumentCount' => '3-5',
    +        ],
    +        'BIN2DEC' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BINTODEC'],
    +            'argumentCount' => '1',
    +        ],
    +        'BIN2HEX' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BINTOHEX'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'BIN2OCT' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BINTOOCT'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'BINOMDIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'BINOMDIST'],
    +            'argumentCount' => '4',
    +        ],
    +        'BITAND' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BITAND'],
    +            'argumentCount' => '2',
    +        ],
    +        'BITOR' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BITOR'],
    +            'argumentCount' => '2',
    +        ],
    +        'BITXOR' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BITOR'],
    +            'argumentCount' => '2',
    +        ],
    +        'BITLSHIFT' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BITLSHIFT'],
    +            'argumentCount' => '2',
    +        ],
    +        'BITRSHIFT' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'BITRSHIFT'],
    +            'argumentCount' => '2',
    +        ],
    +        'CEILING' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'CEILING'],
    +            'argumentCount' => '2',
    +        ],
    +        'CELL' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'CHAR' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'CHARACTER'],
    +            'argumentCount' => '1',
    +        ],
    +        'CHIDIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'CHIDIST'],
    +            'argumentCount' => '2',
    +        ],
    +        'CHIINV' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'CHIINV'],
    +            'argumentCount' => '2',
    +        ],
    +        'CHITEST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '2',
    +        ],
    +        'CHOOSE' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'CHOOSE'],
    +            'argumentCount' => '2+',
    +        ],
    +        'CLEAN' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'TRIMNONPRINTABLE'],
    +            'argumentCount' => '1',
    +        ],
    +        'CODE' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'ASCIICODE'],
    +            'argumentCount' => '1',
    +        ],
    +        'COLUMN' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'COLUMN'],
    +            'argumentCount' => '-1',
    +            'passByReference' => [true],
    +        ],
    +        'COLUMNS' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'COLUMNS'],
    +            'argumentCount' => '1',
    +        ],
    +        'COMBIN' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'COMBIN'],
    +            'argumentCount' => '2',
    +        ],
    +        'COMPLEX' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'COMPLEX'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'CONCAT' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'CONCATENATE'],
    +            'argumentCount' => '1+',
    +        ],
    +        'CONCATENATE' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'CONCATENATE'],
    +            'argumentCount' => '1+',
    +        ],
    +        'CONFIDENCE' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'CONFIDENCE'],
    +            'argumentCount' => '3',
    +        ],
    +        'CONVERT' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'CONVERTUOM'],
    +            'argumentCount' => '3',
    +        ],
    +        'CORREL' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'CORREL'],
    +            'argumentCount' => '2',
    +        ],
    +        'COS' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'cos',
    +            'argumentCount' => '1',
    +        ],
    +        'COSH' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'cosh',
    +            'argumentCount' => '1',
    +        ],
    +        'COT' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'COT'],
    +            'argumentCount' => '1',
    +        ],
    +        'COTH' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'COTH'],
    +            'argumentCount' => '1',
    +        ],
    +        'COUNT' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'COUNT'],
    +            'argumentCount' => '1+',
    +        ],
    +        'COUNTA' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'COUNTA'],
    +            'argumentCount' => '1+',
    +        ],
    +        'COUNTBLANK' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'COUNTBLANK'],
    +            'argumentCount' => '1',
    +        ],
    +        'COUNTIF' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'COUNTIF'],
    +            'argumentCount' => '2',
    +        ],
    +        'COUNTIFS' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '2+',
    +        ],
    +        'COUPDAYBS' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'COUPDAYBS'],
    +            'argumentCount' => '3,4',
    +        ],
    +        'COUPDAYS' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'COUPDAYS'],
    +            'argumentCount' => '3,4',
    +        ],
    +        'COUPDAYSNC' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'COUPDAYSNC'],
    +            'argumentCount' => '3,4',
    +        ],
    +        'COUPNCD' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'COUPNCD'],
    +            'argumentCount' => '3,4',
    +        ],
    +        'COUPNUM' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'COUPNUM'],
    +            'argumentCount' => '3,4',
    +        ],
    +        'COUPPCD' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'COUPPCD'],
    +            'argumentCount' => '3,4',
    +        ],
    +        'COVAR' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'COVAR'],
    +            'argumentCount' => '2',
    +        ],
    +        'CRITBINOM' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'CRITBINOM'],
    +            'argumentCount' => '3',
    +        ],
    +        'CSC' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'CSC'],
    +            'argumentCount' => '1',
    +        ],
    +        'CSCH' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'CSCH'],
    +            'argumentCount' => '1',
    +        ],
    +        'CUBEKPIMEMBER' => [
    +            'category' => Category::CATEGORY_CUBE,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '?',
    +        ],
    +        'CUBEMEMBER' => [
    +            'category' => Category::CATEGORY_CUBE,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '?',
    +        ],
    +        'CUBEMEMBERPROPERTY' => [
    +            'category' => Category::CATEGORY_CUBE,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '?',
    +        ],
    +        'CUBERANKEDMEMBER' => [
    +            'category' => Category::CATEGORY_CUBE,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '?',
    +        ],
    +        'CUBESET' => [
    +            'category' => Category::CATEGORY_CUBE,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '?',
    +        ],
    +        'CUBESETCOUNT' => [
    +            'category' => Category::CATEGORY_CUBE,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '?',
    +        ],
    +        'CUBEVALUE' => [
    +            'category' => Category::CATEGORY_CUBE,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '?',
    +        ],
    +        'CUMIPMT' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'CUMIPMT'],
    +            'argumentCount' => '6',
    +        ],
    +        'CUMPRINC' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'CUMPRINC'],
    +            'argumentCount' => '6',
    +        ],
    +        'DATE' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'DATE'],
    +            'argumentCount' => '3',
    +        ],
    +        'DATEDIF' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'DATEDIF'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'DATEVALUE' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'DATEVALUE'],
    +            'argumentCount' => '1',
    +        ],
    +        'DAVERAGE' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DAVERAGE'],
    +            'argumentCount' => '3',
    +        ],
    +        'DAY' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'DAYOFMONTH'],
    +            'argumentCount' => '1',
    +        ],
    +        'DAYS' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'DAYS'],
    +            'argumentCount' => '2',
    +        ],
    +        'DAYS360' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'DAYS360'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'DB' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'DB'],
    +            'argumentCount' => '4,5',
    +        ],
    +        'DCOUNT' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DCOUNT'],
    +            'argumentCount' => '3',
    +        ],
    +        'DCOUNTA' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DCOUNTA'],
    +            'argumentCount' => '3',
    +        ],
    +        'DDB' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'DDB'],
    +            'argumentCount' => '4,5',
    +        ],
    +        'DEC2BIN' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'DECTOBIN'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'DEC2HEX' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'DECTOHEX'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'DEC2OCT' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'DECTOOCT'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'DEGREES' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'rad2deg',
    +            'argumentCount' => '1',
    +        ],
    +        'DELTA' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'DELTA'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'DEVSQ' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'DEVSQ'],
    +            'argumentCount' => '1+',
    +        ],
    +        'DGET' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DGET'],
    +            'argumentCount' => '3',
    +        ],
    +        'DISC' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'DISC'],
    +            'argumentCount' => '4,5',
    +        ],
    +        'DMAX' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DMAX'],
    +            'argumentCount' => '3',
    +        ],
    +        'DMIN' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DMIN'],
    +            'argumentCount' => '3',
    +        ],
    +        'DOLLAR' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'DOLLAR'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'DOLLARDE' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'DOLLARDE'],
    +            'argumentCount' => '2',
    +        ],
    +        'DOLLARFR' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'DOLLARFR'],
    +            'argumentCount' => '2',
    +        ],
    +        'DPRODUCT' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DPRODUCT'],
    +            'argumentCount' => '3',
    +        ],
    +        'DSTDEV' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DSTDEV'],
    +            'argumentCount' => '3',
    +        ],
    +        'DSTDEVP' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DSTDEVP'],
    +            'argumentCount' => '3',
    +        ],
    +        'DSUM' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DSUM'],
    +            'argumentCount' => '3',
    +        ],
    +        'DURATION' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '5,6',
    +        ],
    +        'DVAR' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DVAR'],
    +            'argumentCount' => '3',
    +        ],
    +        'DVARP' => [
    +            'category' => Category::CATEGORY_DATABASE,
    +            'functionCall' => [Database::class, 'DVARP'],
    +            'argumentCount' => '3',
    +        ],
    +        'EDATE' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'EDATE'],
    +            'argumentCount' => '2',
    +        ],
    +        'EFFECT' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'EFFECT'],
    +            'argumentCount' => '2',
    +        ],
    +        'EOMONTH' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'EOMONTH'],
    +            'argumentCount' => '2',
    +        ],
    +        'ERF' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'ERF'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'ERF.PRECISE' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'ERFPRECISE'],
    +            'argumentCount' => '1',
    +        ],
    +        'ERFC' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'ERFC'],
    +            'argumentCount' => '1',
    +        ],
    +        'ERFC.PRECISE' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'ERFC'],
    +            'argumentCount' => '1',
    +        ],
    +        'ERROR.TYPE' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'errorType'],
    +            'argumentCount' => '1',
    +        ],
    +        'EVEN' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'EVEN'],
    +            'argumentCount' => '1',
    +        ],
    +        'EXACT' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'EXACT'],
    +            'argumentCount' => '2',
    +        ],
    +        'EXP' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'exp',
    +            'argumentCount' => '1',
    +        ],
    +        'EXPONDIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'EXPONDIST'],
    +            'argumentCount' => '3',
    +        ],
    +        'FACT' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'FACT'],
    +            'argumentCount' => '1',
    +        ],
    +        'FACTDOUBLE' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'FACTDOUBLE'],
    +            'argumentCount' => '1',
    +        ],
    +        'FALSE' => [
    +            'category' => Category::CATEGORY_LOGICAL,
    +            'functionCall' => [Logical::class, 'FALSE'],
    +            'argumentCount' => '0',
    +        ],
    +        'FDIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '3',
    +        ],
    +        'FIND' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'SEARCHSENSITIVE'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'FINDB' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'SEARCHSENSITIVE'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'FINV' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '3',
    +        ],
    +        'FISHER' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'FISHER'],
    +            'argumentCount' => '1',
    +        ],
    +        'FISHERINV' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'FISHERINV'],
    +            'argumentCount' => '1',
    +        ],
    +        'FIXED' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'FIXEDFORMAT'],
    +            'argumentCount' => '1-3',
    +        ],
    +        'FLOOR' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'FLOOR'],
    +            'argumentCount' => '2',
    +        ],
    +        'FORECAST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'FORECAST'],
    +            'argumentCount' => '3',
    +        ],
    +        'FORMULATEXT' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'FORMULATEXT'],
    +            'argumentCount' => '1',
    +            'passCellReference' => true,
    +            'passByReference' => [true],
    +        ],
    +        'FREQUENCY' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '2',
    +        ],
    +        'FTEST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '2',
    +        ],
    +        'FV' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'FV'],
    +            'argumentCount' => '3-5',
    +        ],
    +        'FVSCHEDULE' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'FVSCHEDULE'],
    +            'argumentCount' => '2',
    +        ],
    +        'GAMMADIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'GAMMADIST'],
    +            'argumentCount' => '4',
    +        ],
    +        'GAMMAINV' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'GAMMAINV'],
    +            'argumentCount' => '3',
    +        ],
    +        'GAMMALN' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'GAMMALN'],
    +            'argumentCount' => '1',
    +        ],
    +        'GCD' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'GCD'],
    +            'argumentCount' => '1+',
    +        ],
    +        'GEOMEAN' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'GEOMEAN'],
    +            'argumentCount' => '1+',
    +        ],
    +        'GESTEP' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'GESTEP'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'GETPIVOTDATA' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '2+',
    +        ],
    +        'GROWTH' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'GROWTH'],
    +            'argumentCount' => '1-4',
    +        ],
    +        'HARMEAN' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'HARMEAN'],
    +            'argumentCount' => '1+',
    +        ],
    +        'HEX2BIN' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'HEXTOBIN'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'HEX2DEC' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'HEXTODEC'],
    +            'argumentCount' => '1',
    +        ],
    +        'HEX2OCT' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'HEXTOOCT'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'HLOOKUP' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'HLOOKUP'],
    +            'argumentCount' => '3,4',
    +        ],
    +        'HOUR' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'HOUROFDAY'],
    +            'argumentCount' => '1',
    +        ],
    +        'HYPERLINK' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'HYPERLINK'],
    +            'argumentCount' => '1,2',
    +            'passCellReference' => true,
    +        ],
    +        'HYPGEOMDIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'HYPGEOMDIST'],
    +            'argumentCount' => '4',
    +        ],
    +        'IF' => [
    +            'category' => Category::CATEGORY_LOGICAL,
    +            'functionCall' => [Logical::class, 'statementIf'],
    +            'argumentCount' => '1-3',
    +        ],
    +        'IFERROR' => [
    +            'category' => Category::CATEGORY_LOGICAL,
    +            'functionCall' => [Logical::class, 'IFERROR'],
    +            'argumentCount' => '2',
    +        ],
    +        'IMABS' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMABS'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMAGINARY' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMAGINARY'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMARGUMENT' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMARGUMENT'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMCONJUGATE' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMCONJUGATE'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMCOS' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMCOS'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMCOSH' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMCOSH'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMCOT' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMCOT'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMCSC' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMCSC'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMCSCH' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMCSCH'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMDIV' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMDIV'],
    +            'argumentCount' => '2',
    +        ],
    +        'IMEXP' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMEXP'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMLN' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMLN'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMLOG10' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMLOG10'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMLOG2' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMLOG2'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMPOWER' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMPOWER'],
    +            'argumentCount' => '2',
    +        ],
    +        'IMPRODUCT' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMPRODUCT'],
    +            'argumentCount' => '1+',
    +        ],
    +        'IMREAL' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMREAL'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMSEC' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMSEC'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMSECH' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMSECH'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMSIN' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMSIN'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMSINH' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMSINH'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMSQRT' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMSQRT'],
    +            'argumentCount' => '1',
    +        ],
    +        'IMSUB' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMSUB'],
    +            'argumentCount' => '2',
    +        ],
    +        'IMSUM' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMSUM'],
    +            'argumentCount' => '1+',
    +        ],
    +        'IMTAN' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'IMTAN'],
    +            'argumentCount' => '1',
    +        ],
    +        'INDEX' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'INDEX'],
    +            'argumentCount' => '1-4',
    +        ],
    +        'INDIRECT' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'INDIRECT'],
    +            'argumentCount' => '1,2',
    +            'passCellReference' => true,
    +        ],
    +        'INFO' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '1',
    +        ],
    +        'INT' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'INT'],
    +            'argumentCount' => '1',
    +        ],
    +        'INTERCEPT' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'INTERCEPT'],
    +            'argumentCount' => '2',
    +        ],
    +        'INTRATE' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'INTRATE'],
    +            'argumentCount' => '4,5',
    +        ],
    +        'IPMT' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'IPMT'],
    +            'argumentCount' => '4-6',
    +        ],
    +        'IRR' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'IRR'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'ISBLANK' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'isBlank'],
    +            'argumentCount' => '1',
    +        ],
    +        'ISERR' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'isErr'],
    +            'argumentCount' => '1',
    +        ],
    +        'ISERROR' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'isError'],
    +            'argumentCount' => '1',
    +        ],
    +        'ISEVEN' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'isEven'],
    +            'argumentCount' => '1',
    +        ],
    +        'ISFORMULA' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'isFormula'],
    +            'argumentCount' => '1',
    +            'passCellReference' => true,
    +            'passByReference' => [true],
    +        ],
    +        'ISLOGICAL' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'isLogical'],
    +            'argumentCount' => '1',
    +        ],
    +        'ISNA' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'isNa'],
    +            'argumentCount' => '1',
    +        ],
    +        'ISNONTEXT' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'isNonText'],
    +            'argumentCount' => '1',
    +        ],
    +        'ISNUMBER' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'isNumber'],
    +            'argumentCount' => '1',
    +        ],
    +        'ISODD' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'isOdd'],
    +            'argumentCount' => '1',
    +        ],
    +        'ISOWEEKNUM' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'ISOWEEKNUM'],
    +            'argumentCount' => '1',
    +        ],
    +        'ISPMT' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'ISPMT'],
    +            'argumentCount' => '4',
    +        ],
    +        'ISREF' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '1',
    +        ],
    +        'ISTEXT' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'isText'],
    +            'argumentCount' => '1',
    +        ],
    +        'JIS' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '1',
    +        ],
    +        'KURT' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'KURT'],
    +            'argumentCount' => '1+',
    +        ],
    +        'LARGE' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'LARGE'],
    +            'argumentCount' => '2',
    +        ],
    +        'LCM' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'LCM'],
    +            'argumentCount' => '1+',
    +        ],
    +        'LEFT' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'LEFT'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'LEFTB' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'LEFT'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'LEN' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'STRINGLENGTH'],
    +            'argumentCount' => '1',
    +        ],
    +        'LENB' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'STRINGLENGTH'],
    +            'argumentCount' => '1',
    +        ],
    +        'LINEST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'LINEST'],
    +            'argumentCount' => '1-4',
    +        ],
    +        'LN' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'log',
    +            'argumentCount' => '1',
    +        ],
    +        'LOG' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'logBase'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'LOG10' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'log10',
    +            'argumentCount' => '1',
    +        ],
    +        'LOGEST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'LOGEST'],
    +            'argumentCount' => '1-4',
    +        ],
    +        'LOGINV' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'LOGINV'],
    +            'argumentCount' => '3',
    +        ],
    +        'LOGNORMDIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'LOGNORMDIST'],
    +            'argumentCount' => '3',
    +        ],
    +        'LOOKUP' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'LOOKUP'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'LOWER' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'LOWERCASE'],
    +            'argumentCount' => '1',
    +        ],
    +        'MATCH' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'MATCH'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'MAX' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'MAX'],
    +            'argumentCount' => '1+',
    +        ],
    +        'MAXA' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'MAXA'],
    +            'argumentCount' => '1+',
    +        ],
    +        'MAXIF' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'MAXIF'],
    +            'argumentCount' => '2+',
    +        ],
    +        'MDETERM' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'MDETERM'],
    +            'argumentCount' => '1',
    +        ],
    +        'MDURATION' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '5,6',
    +        ],
    +        'MEDIAN' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'MEDIAN'],
    +            'argumentCount' => '1+',
    +        ],
    +        'MEDIANIF' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '2+',
    +        ],
    +        'MID' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'MID'],
    +            'argumentCount' => '3',
    +        ],
    +        'MIDB' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'MID'],
    +            'argumentCount' => '3',
    +        ],
    +        'MIN' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'MIN'],
    +            'argumentCount' => '1+',
    +        ],
    +        'MINA' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'MINA'],
    +            'argumentCount' => '1+',
    +        ],
    +        'MINIF' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'MINIF'],
    +            'argumentCount' => '2+',
    +        ],
    +        'MINUTE' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'MINUTE'],
    +            'argumentCount' => '1',
    +        ],
    +        'MINVERSE' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'MINVERSE'],
    +            'argumentCount' => '1',
    +        ],
    +        'MIRR' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'MIRR'],
    +            'argumentCount' => '3',
    +        ],
    +        'MMULT' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'MMULT'],
    +            'argumentCount' => '2',
    +        ],
    +        'MOD' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'MOD'],
    +            'argumentCount' => '2',
    +        ],
    +        'MODE' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'MODE'],
    +            'argumentCount' => '1+',
    +        ],
    +        'MODE.SNGL' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'MODE'],
    +            'argumentCount' => '1+',
    +        ],
    +        'MONTH' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'MONTHOFYEAR'],
    +            'argumentCount' => '1',
    +        ],
    +        'MROUND' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'MROUND'],
    +            'argumentCount' => '2',
    +        ],
    +        'MULTINOMIAL' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'MULTINOMIAL'],
    +            'argumentCount' => '1+',
    +        ],
    +        'N' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'n'],
    +            'argumentCount' => '1',
    +        ],
    +        'NA' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'NA'],
    +            'argumentCount' => '0',
    +        ],
    +        'NEGBINOMDIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'NEGBINOMDIST'],
    +            'argumentCount' => '3',
    +        ],
    +        'NETWORKDAYS' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'NETWORKDAYS'],
    +            'argumentCount' => '2+',
    +        ],
    +        'NOMINAL' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'NOMINAL'],
    +            'argumentCount' => '2',
    +        ],
    +        'NORMDIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'NORMDIST'],
    +            'argumentCount' => '4',
    +        ],
    +        'NORMINV' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'NORMINV'],
    +            'argumentCount' => '3',
    +        ],
    +        'NORMSDIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'NORMSDIST'],
    +            'argumentCount' => '1',
    +        ],
    +        'NORMSINV' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'NORMSINV'],
    +            'argumentCount' => '1',
    +        ],
    +        'NOT' => [
    +            'category' => Category::CATEGORY_LOGICAL,
    +            'functionCall' => [Logical::class, 'NOT'],
    +            'argumentCount' => '1',
    +        ],
    +        'NOW' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'DATETIMENOW'],
    +            'argumentCount' => '0',
    +        ],
    +        'NPER' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'NPER'],
    +            'argumentCount' => '3-5',
    +        ],
    +        'NPV' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'NPV'],
    +            'argumentCount' => '2+',
    +        ],
    +        'NUMBERVALUE' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'NUMBERVALUE'],
    +            'argumentCount' => '1+',
    +        ],
    +        'OCT2BIN' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'OCTTOBIN'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'OCT2DEC' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'OCTTODEC'],
    +            'argumentCount' => '1',
    +        ],
    +        'OCT2HEX' => [
    +            'category' => Category::CATEGORY_ENGINEERING,
    +            'functionCall' => [Engineering::class, 'OCTTOHEX'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'ODD' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'ODD'],
    +            'argumentCount' => '1',
    +        ],
    +        'ODDFPRICE' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '8,9',
    +        ],
    +        'ODDFYIELD' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '8,9',
    +        ],
    +        'ODDLPRICE' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '7,8',
    +        ],
    +        'ODDLYIELD' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '7,8',
    +        ],
    +        'OFFSET' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'OFFSET'],
    +            'argumentCount' => '3-5',
    +            'passCellReference' => true,
    +            'passByReference' => [true],
    +        ],
    +        'OR' => [
    +            'category' => Category::CATEGORY_LOGICAL,
    +            'functionCall' => [Logical::class, 'logicalOr'],
    +            'argumentCount' => '1+',
    +        ],
    +        'PDURATION' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'PDURATION'],
    +            'argumentCount' => '3',
    +        ],
    +        'PEARSON' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'CORREL'],
    +            'argumentCount' => '2',
    +        ],
    +        'PERCENTILE' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'PERCENTILE'],
    +            'argumentCount' => '2',
    +        ],
    +        'PERCENTRANK' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'PERCENTRANK'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'PERMUT' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'PERMUT'],
    +            'argumentCount' => '2',
    +        ],
    +        'PHONETIC' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '1',
    +        ],
    +        'PI' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'pi',
    +            'argumentCount' => '0',
    +        ],
    +        'PMT' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'PMT'],
    +            'argumentCount' => '3-5',
    +        ],
    +        'POISSON' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'POISSON'],
    +            'argumentCount' => '3',
    +        ],
    +        'POWER' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'POWER'],
    +            'argumentCount' => '2',
    +        ],
    +        'PPMT' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'PPMT'],
    +            'argumentCount' => '4-6',
    +        ],
    +        'PRICE' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'PRICE'],
    +            'argumentCount' => '6,7',
    +        ],
    +        'PRICEDISC' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'PRICEDISC'],
    +            'argumentCount' => '4,5',
    +        ],
    +        'PRICEMAT' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'PRICEMAT'],
    +            'argumentCount' => '5,6',
    +        ],
    +        'PROB' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '3,4',
    +        ],
    +        'PRODUCT' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'PRODUCT'],
    +            'argumentCount' => '1+',
    +        ],
    +        'PROPER' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'PROPERCASE'],
    +            'argumentCount' => '1',
    +        ],
    +        'PV' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'PV'],
    +            'argumentCount' => '3-5',
    +        ],
    +        'QUARTILE' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'QUARTILE'],
    +            'argumentCount' => '2',
    +        ],
    +        'QUOTIENT' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'QUOTIENT'],
    +            'argumentCount' => '2',
    +        ],
    +        'RADIANS' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'deg2rad',
    +            'argumentCount' => '1',
    +        ],
    +        'RAND' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'RAND'],
    +            'argumentCount' => '0',
    +        ],
    +        'RANDBETWEEN' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'RAND'],
    +            'argumentCount' => '2',
    +        ],
    +        'RANK' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'RANK'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'RATE' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'RATE'],
    +            'argumentCount' => '3-6',
    +        ],
    +        'RECEIVED' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'RECEIVED'],
    +            'argumentCount' => '4-5',
    +        ],
    +        'REPLACE' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'REPLACE'],
    +            'argumentCount' => '4',
    +        ],
    +        'REPLACEB' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'REPLACE'],
    +            'argumentCount' => '4',
    +        ],
    +        'REPT' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => 'str_repeat',
    +            'argumentCount' => '2',
    +        ],
    +        'RIGHT' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'RIGHT'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'RIGHTB' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'RIGHT'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'ROMAN' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'ROMAN'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'ROUND' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'round',
    +            'argumentCount' => '2',
    +        ],
    +        'ROUNDDOWN' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'ROUNDDOWN'],
    +            'argumentCount' => '2',
    +        ],
    +        'ROUNDUP' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'ROUNDUP'],
    +            'argumentCount' => '2',
    +        ],
    +        'ROW' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'ROW'],
    +            'argumentCount' => '-1',
    +            'passByReference' => [true],
    +        ],
    +        'ROWS' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'ROWS'],
    +            'argumentCount' => '1',
    +        ],
    +        'RRI' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'RRI'],
    +            'argumentCount' => '3',
    +        ],
    +        'RSQ' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'RSQ'],
    +            'argumentCount' => '2',
    +        ],
    +        'RTD' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '1+',
    +        ],
    +        'SEARCH' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'SEARCHINSENSITIVE'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'SEARCHB' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'SEARCHINSENSITIVE'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'SEC' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SEC'],
    +            'argumentCount' => '1',
    +        ],
    +        'SECH' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SECH'],
    +            'argumentCount' => '1',
    +        ],
    +        'SECOND' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'SECOND'],
    +            'argumentCount' => '1',
    +        ],
    +        'SERIESSUM' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SERIESSUM'],
    +            'argumentCount' => '4',
    +        ],
    +        'SIGN' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SIGN'],
    +            'argumentCount' => '1',
    +        ],
    +        'SIN' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'sin',
    +            'argumentCount' => '1',
    +        ],
    +        'SINH' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'sinh',
    +            'argumentCount' => '1',
    +        ],
    +        'SKEW' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'SKEW'],
    +            'argumentCount' => '1+',
    +        ],
    +        'SLN' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'SLN'],
    +            'argumentCount' => '3',
    +        ],
    +        'SLOPE' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'SLOPE'],
    +            'argumentCount' => '2',
    +        ],
    +        'SMALL' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'SMALL'],
    +            'argumentCount' => '2',
    +        ],
    +        'SQRT' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'sqrt',
    +            'argumentCount' => '1',
    +        ],
    +        'SQRTPI' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SQRTPI'],
    +            'argumentCount' => '1',
    +        ],
    +        'STANDARDIZE' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'STANDARDIZE'],
    +            'argumentCount' => '3',
    +        ],
    +        'STDEV' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'STDEV'],
    +            'argumentCount' => '1+',
    +        ],
    +        'STDEV.S' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'STDEV'],
    +            'argumentCount' => '1+',
    +        ],
    +        'STDEV.P' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'STDEVP'],
    +            'argumentCount' => '1+',
    +        ],
    +        'STDEVA' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'STDEVA'],
    +            'argumentCount' => '1+',
    +        ],
    +        'STDEVP' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'STDEVP'],
    +            'argumentCount' => '1+',
    +        ],
    +        'STDEVPA' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'STDEVPA'],
    +            'argumentCount' => '1+',
    +        ],
    +        'STEYX' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'STEYX'],
    +            'argumentCount' => '2',
    +        ],
    +        'SUBSTITUTE' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'SUBSTITUTE'],
    +            'argumentCount' => '3,4',
    +        ],
    +        'SUBTOTAL' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SUBTOTAL'],
    +            'argumentCount' => '2+',
    +            'passCellReference' => true,
    +        ],
    +        'SUM' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SUM'],
    +            'argumentCount' => '1+',
    +        ],
    +        'SUMIF' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SUMIF'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'SUMIFS' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SUMIFS'],
    +            'argumentCount' => '3+',
    +        ],
    +        'SUMPRODUCT' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SUMPRODUCT'],
    +            'argumentCount' => '1+',
    +        ],
    +        'SUMSQ' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SUMSQ'],
    +            'argumentCount' => '1+',
    +        ],
    +        'SUMX2MY2' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SUMX2MY2'],
    +            'argumentCount' => '2',
    +        ],
    +        'SUMX2PY2' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SUMX2PY2'],
    +            'argumentCount' => '2',
    +        ],
    +        'SUMXMY2' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'SUMXMY2'],
    +            'argumentCount' => '2',
    +        ],
    +        'SYD' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'SYD'],
    +            'argumentCount' => '4',
    +        ],
    +        'T' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'RETURNSTRING'],
    +            'argumentCount' => '1',
    +        ],
    +        'TAN' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'tan',
    +            'argumentCount' => '1',
    +        ],
    +        'TANH' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => 'tanh',
    +            'argumentCount' => '1',
    +        ],
    +        'TBILLEQ' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'TBILLEQ'],
    +            'argumentCount' => '3',
    +        ],
    +        'TBILLPRICE' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'TBILLPRICE'],
    +            'argumentCount' => '3',
    +        ],
    +        'TBILLYIELD' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'TBILLYIELD'],
    +            'argumentCount' => '3',
    +        ],
    +        'TDIST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'TDIST'],
    +            'argumentCount' => '3',
    +        ],
    +        'TEXT' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'TEXTFORMAT'],
    +            'argumentCount' => '2',
    +        ],
    +        'TEXTJOIN' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'TEXTJOIN'],
    +            'argumentCount' => '3+',
    +        ],
    +        'TIME' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'TIME'],
    +            'argumentCount' => '3',
    +        ],
    +        'TIMEVALUE' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'TIMEVALUE'],
    +            'argumentCount' => '1',
    +        ],
    +        'TINV' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'TINV'],
    +            'argumentCount' => '2',
    +        ],
    +        'TODAY' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'DATENOW'],
    +            'argumentCount' => '0',
    +        ],
    +        'TRANSPOSE' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'TRANSPOSE'],
    +            'argumentCount' => '1',
    +        ],
    +        'TREND' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'TREND'],
    +            'argumentCount' => '1-4',
    +        ],
    +        'TRIM' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'TRIMSPACES'],
    +            'argumentCount' => '1',
    +        ],
    +        'TRIMMEAN' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'TRIMMEAN'],
    +            'argumentCount' => '2',
    +        ],
    +        'TRUE' => [
    +            'category' => Category::CATEGORY_LOGICAL,
    +            'functionCall' => [Logical::class, 'TRUE'],
    +            'argumentCount' => '0',
    +        ],
    +        'TRUNC' => [
    +            'category' => Category::CATEGORY_MATH_AND_TRIG,
    +            'functionCall' => [MathTrig::class, 'TRUNC'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'TTEST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '4',
    +        ],
    +        'TYPE' => [
    +            'category' => Category::CATEGORY_INFORMATION,
    +            'functionCall' => [Functions::class, 'TYPE'],
    +            'argumentCount' => '1',
    +        ],
    +        'UNICHAR' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'CHARACTER'],
    +            'argumentCount' => '1',
    +        ],
    +        'UNICODE' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'ASCIICODE'],
    +            'argumentCount' => '1',
    +        ],
    +        'UPPER' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'UPPERCASE'],
    +            'argumentCount' => '1',
    +        ],
    +        'USDOLLAR' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '2',
    +        ],
    +        'VALUE' => [
    +            'category' => Category::CATEGORY_TEXT_AND_DATA,
    +            'functionCall' => [TextData::class, 'VALUE'],
    +            'argumentCount' => '1',
    +        ],
    +        'VAR' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'VARFunc'],
    +            'argumentCount' => '1+',
    +        ],
    +        'VAR.P' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'VARP'],
    +            'argumentCount' => '1+',
    +        ],
    +        'VAR.S' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'VARFunc'],
    +            'argumentCount' => '1+',
    +        ],
    +        'VARA' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'VARA'],
    +            'argumentCount' => '1+',
    +        ],
    +        'VARP' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'VARP'],
    +            'argumentCount' => '1+',
    +        ],
    +        'VARPA' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'VARPA'],
    +            'argumentCount' => '1+',
    +        ],
    +        'VDB' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '5-7',
    +        ],
    +        'VLOOKUP' => [
    +            'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
    +            'functionCall' => [LookupRef::class, 'VLOOKUP'],
    +            'argumentCount' => '3,4',
    +        ],
    +        'WEEKDAY' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'WEEKDAY'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'WEEKNUM' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'WEEKNUM'],
    +            'argumentCount' => '1,2',
    +        ],
    +        'WEIBULL' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'WEIBULL'],
    +            'argumentCount' => '4',
    +        ],
    +        'WORKDAY' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'WORKDAY'],
    +            'argumentCount' => '2+',
    +        ],
    +        'XIRR' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'XIRR'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'XNPV' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'XNPV'],
    +            'argumentCount' => '3',
    +        ],
    +        'XOR' => [
    +            'category' => Category::CATEGORY_LOGICAL,
    +            'functionCall' => [Logical::class, 'logicalXor'],
    +            'argumentCount' => '1+',
    +        ],
    +        'YEAR' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'YEAR'],
    +            'argumentCount' => '1',
    +        ],
    +        'YEARFRAC' => [
    +            'category' => Category::CATEGORY_DATE_AND_TIME,
    +            'functionCall' => [DateTime::class, 'YEARFRAC'],
    +            'argumentCount' => '2,3',
    +        ],
    +        'YIELD' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Functions::class, 'DUMMY'],
    +            'argumentCount' => '6,7',
    +        ],
    +        'YIELDDISC' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'YIELDDISC'],
    +            'argumentCount' => '4,5',
    +        ],
    +        'YIELDMAT' => [
    +            'category' => Category::CATEGORY_FINANCIAL,
    +            'functionCall' => [Financial::class, 'YIELDMAT'],
    +            'argumentCount' => '5,6',
    +        ],
    +        'ZTEST' => [
    +            'category' => Category::CATEGORY_STATISTICAL,
    +            'functionCall' => [Statistical::class, 'ZTEST'],
    +            'argumentCount' => '2-3',
    +        ],
    +    ];
    +
    +    //    Internal functions used for special control purposes
    +    private static $controlFunctions = [
    +        'MKMATRIX' => [
    +            'argumentCount' => '*',
    +            'functionCall' => 'self::mkMatrix',
    +        ],
    +    ];
    +
    +    public function __construct(Spreadsheet $spreadsheet = null)
    +    {
    +        $this->delta = 1 * pow(10, 0 - ini_get('precision'));
    +
    +        $this->spreadsheet = $spreadsheet;
    +        $this->cyclicReferenceStack = new CyclicReferenceStack();
    +        $this->debugLog = new Logger($this->cyclicReferenceStack);
    +    }
    +
    +    private static function loadLocales()
    +    {
    +        $localeFileDirectory = __DIR__ . '/locale/';
    +        foreach (glob($localeFileDirectory . '/*', GLOB_ONLYDIR) as $filename) {
    +            $filename = substr($filename, strlen($localeFileDirectory) + 1);
    +            if ($filename != 'en') {
    +                self::$validLocaleLanguages[] = $filename;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Get an instance of this class.
    +     *
    +     * @param Spreadsheet $spreadsheet Injected spreadsheet for working with a PhpSpreadsheet Spreadsheet object,
    +     *                                    or NULL to create a standalone claculation engine
    +     *
    +     * @return Calculation
    +     */
    +    public static function getInstance(Spreadsheet $spreadsheet = null)
    +    {
    +        if ($spreadsheet !== null) {
    +            $instance = $spreadsheet->getCalculationEngine();
    +            if (isset($instance)) {
    +                return $instance;
    +            }
    +        }
    +
    +        if (!isset(self::$instance) || (self::$instance === null)) {
    +            self::$instance = new self();
    +        }
    +
    +        return self::$instance;
    +    }
    +
    +    /**
    +     * Flush the calculation cache for any existing instance of this class
    +     *        but only if a Calculation instance exists.
    +     */
    +    public function flushInstance()
    +    {
    +        $this->clearCalculationCache();
    +    }
    +
    +    /**
    +     * Get the Logger for this calculation engine instance.
    +     *
    +     * @return Logger
    +     */
    +    public function getDebugLog()
    +    {
    +        return $this->debugLog;
    +    }
    +
    +    /**
    +     * __clone implementation. Cloning should not be allowed in a Singleton!
    +     *
    +     * @throws Exception
    +     */
    +    final public function __clone()
    +    {
    +        throw new Exception('Cloning the calculation engine is not allowed!');
    +    }
    +
    +    /**
    +     * Return the locale-specific translation of TRUE.
    +     *
    +     * @return string locale-specific translation of TRUE
    +     */
    +    public static function getTRUE()
    +    {
    +        return self::$localeBoolean['TRUE'];
    +    }
    +
    +    /**
    +     * Return the locale-specific translation of FALSE.
    +     *
    +     * @return string locale-specific translation of FALSE
    +     */
    +    public static function getFALSE()
    +    {
    +        return self::$localeBoolean['FALSE'];
    +    }
    +
    +    /**
    +     * Set the Array Return Type (Array or Value of first element in the array).
    +     *
    +     * @param string $returnType Array return type
    +     *
    +     * @return bool Success or failure
    +     */
    +    public static function setArrayReturnType($returnType)
    +    {
    +        if (($returnType == self::RETURN_ARRAY_AS_VALUE) ||
    +            ($returnType == self::RETURN_ARRAY_AS_ERROR) ||
    +            ($returnType == self::RETURN_ARRAY_AS_ARRAY)) {
    +            self::$returnArrayAsType = $returnType;
    +
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Return the Array Return Type (Array or Value of first element in the array).
    +     *
    +     * @return string $returnType Array return type
    +     */
    +    public static function getArrayReturnType()
    +    {
    +        return self::$returnArrayAsType;
    +    }
    +
    +    /**
    +     * Is calculation caching enabled?
    +     *
    +     * @return bool
    +     */
    +    public function getCalculationCacheEnabled()
    +    {
    +        return $this->calculationCacheEnabled;
    +    }
    +
    +    /**
    +     * Enable/disable calculation cache.
    +     *
    +     * @param bool $pValue
    +     */
    +    public function setCalculationCacheEnabled($pValue)
    +    {
    +        $this->calculationCacheEnabled = $pValue;
    +        $this->clearCalculationCache();
    +    }
    +
    +    /**
    +     * Enable calculation cache.
    +     */
    +    public function enableCalculationCache()
    +    {
    +        $this->setCalculationCacheEnabled(true);
    +    }
    +
    +    /**
    +     * Disable calculation cache.
    +     */
    +    public function disableCalculationCache()
    +    {
    +        $this->setCalculationCacheEnabled(false);
    +    }
    +
    +    /**
    +     * Clear calculation cache.
    +     */
    +    public function clearCalculationCache()
    +    {
    +        $this->calculationCache = [];
    +    }
    +
    +    /**
    +     * Clear calculation cache for a specified worksheet.
    +     *
    +     * @param string $worksheetName
    +     */
    +    public function clearCalculationCacheForWorksheet($worksheetName)
    +    {
    +        if (isset($this->calculationCache[$worksheetName])) {
    +            unset($this->calculationCache[$worksheetName]);
    +        }
    +    }
    +
    +    /**
    +     * Rename calculation cache for a specified worksheet.
    +     *
    +     * @param string $fromWorksheetName
    +     * @param string $toWorksheetName
    +     */
    +    public function renameCalculationCacheForWorksheet($fromWorksheetName, $toWorksheetName)
    +    {
    +        if (isset($this->calculationCache[$fromWorksheetName])) {
    +            $this->calculationCache[$toWorksheetName] = &$this->calculationCache[$fromWorksheetName];
    +            unset($this->calculationCache[$fromWorksheetName]);
    +        }
    +    }
    +
    +    /**
    +     * Get the currently defined locale code.
    +     *
    +     * @return string
    +     */
    +    public function getLocale()
    +    {
    +        return self::$localeLanguage;
    +    }
    +
    +    /**
    +     * Set the locale code.
    +     *
    +     * @param string $locale The locale to use for formula translation, eg: 'en_us'
    +     *
    +     * @return bool
    +     */
    +    public function setLocale($locale)
    +    {
    +        //    Identify our locale and language
    +        $language = $locale = strtolower($locale);
    +        if (strpos($locale, '_') !== false) {
    +            list($language) = explode('_', $locale);
    +        }
    +
    +        if (count(self::$validLocaleLanguages) == 1) {
    +            self::loadLocales();
    +        }
    +        //    Test whether we have any language data for this language (any locale)
    +        if (in_array($language, self::$validLocaleLanguages)) {
    +            //    initialise language/locale settings
    +            self::$localeFunctions = [];
    +            self::$localeArgumentSeparator = ',';
    +            self::$localeBoolean = ['TRUE' => 'TRUE', 'FALSE' => 'FALSE', 'NULL' => 'NULL'];
    +            //    Default is English, if user isn't requesting english, then read the necessary data from the locale files
    +            if ($locale != 'en_us') {
    +                //    Search for a file with a list of function names for locale
    +                $functionNamesFile = __DIR__ . '/locale/' . str_replace('_', DIRECTORY_SEPARATOR, $locale) . DIRECTORY_SEPARATOR . 'functions';
    +                if (!file_exists($functionNamesFile)) {
    +                    //    If there isn't a locale specific function file, look for a language specific function file
    +                    $functionNamesFile = __DIR__ . '/locale/' . $language . DIRECTORY_SEPARATOR . 'functions';
    +                    if (!file_exists($functionNamesFile)) {
    +                        return false;
    +                    }
    +                }
    +                //    Retrieve the list of locale or language specific function names
    +                $localeFunctions = file($functionNamesFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    +                foreach ($localeFunctions as $localeFunction) {
    +                    list($localeFunction) = explode('##', $localeFunction); //    Strip out comments
    +                    if (strpos($localeFunction, '=') !== false) {
    +                        list($fName, $lfName) = explode('=', $localeFunction);
    +                        $fName = trim($fName);
    +                        $lfName = trim($lfName);
    +                        if ((isset(self::$phpSpreadsheetFunctions[$fName])) && ($lfName != '') && ($fName != $lfName)) {
    +                            self::$localeFunctions[$fName] = $lfName;
    +                        }
    +                    }
    +                }
    +                //    Default the TRUE and FALSE constants to the locale names of the TRUE() and FALSE() functions
    +                if (isset(self::$localeFunctions['TRUE'])) {
    +                    self::$localeBoolean['TRUE'] = self::$localeFunctions['TRUE'];
    +                }
    +                if (isset(self::$localeFunctions['FALSE'])) {
    +                    self::$localeBoolean['FALSE'] = self::$localeFunctions['FALSE'];
    +                }
    +
    +                $configFile = __DIR__ . '/locale/' . str_replace('_', DIRECTORY_SEPARATOR, $locale) . DIRECTORY_SEPARATOR . 'config';
    +                if (!file_exists($configFile)) {
    +                    $configFile = __DIR__ . '/locale/' . $language . DIRECTORY_SEPARATOR . 'config';
    +                }
    +                if (file_exists($configFile)) {
    +                    $localeSettings = file($configFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    +                    foreach ($localeSettings as $localeSetting) {
    +                        list($localeSetting) = explode('##', $localeSetting); //    Strip out comments
    +                        if (strpos($localeSetting, '=') !== false) {
    +                            list($settingName, $settingValue) = explode('=', $localeSetting);
    +                            $settingName = strtoupper(trim($settingName));
    +                            switch ($settingName) {
    +                                case 'ARGUMENTSEPARATOR':
    +                                    self::$localeArgumentSeparator = trim($settingValue);
    +
    +                                    break;
    +                            }
    +                        }
    +                    }
    +                }
    +            }
    +
    +            self::$functionReplaceFromExcel = self::$functionReplaceToExcel =
    +            self::$functionReplaceFromLocale = self::$functionReplaceToLocale = null;
    +            self::$localeLanguage = $locale;
    +
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * @param string $fromSeparator
    +     * @param string $toSeparator
    +     * @param string $formula
    +     * @param bool $inBraces
    +     *
    +     * @return string
    +     */
    +    public static function translateSeparator($fromSeparator, $toSeparator, $formula, &$inBraces)
    +    {
    +        $strlen = mb_strlen($formula);
    +        for ($i = 0; $i < $strlen; ++$i) {
    +            $chr = mb_substr($formula, $i, 1);
    +            switch ($chr) {
    +                case '{':
    +                    $inBraces = true;
    +
    +                    break;
    +                case '}':
    +                    $inBraces = false;
    +
    +                    break;
    +                case $fromSeparator:
    +                    if (!$inBraces) {
    +                        $formula = mb_substr($formula, 0, $i) . $toSeparator . mb_substr($formula, $i + 1);
    +                    }
    +            }
    +        }
    +
    +        return $formula;
    +    }
    +
    +    /**
    +     * @param string[] $from
    +     * @param string[] $to
    +     * @param string $formula
    +     * @param string $fromSeparator
    +     * @param string $toSeparator
    +     *
    +     * @return string
    +     */
    +    private static function translateFormula(array $from, array $to, $formula, $fromSeparator, $toSeparator)
    +    {
    +        //    Convert any Excel function names to the required language
    +        if (self::$localeLanguage !== 'en_us') {
    +            $inBraces = false;
    +            //    If there is the possibility of braces within a quoted string, then we don't treat those as matrix indicators
    +            if (strpos($formula, '"') !== false) {
    +                //    So instead we skip replacing in any quoted strings by only replacing in every other array element after we've exploded
    +                //        the formula
    +                $temp = explode('"', $formula);
    +                $i = false;
    +                foreach ($temp as &$value) {
    +                    //    Only count/replace in alternating array entries
    +                    if ($i = !$i) {
    +                        $value = preg_replace($from, $to, $value);
    +                        $value = self::translateSeparator($fromSeparator, $toSeparator, $value, $inBraces);
    +                    }
    +                }
    +                unset($value);
    +                //    Then rebuild the formula string
    +                $formula = implode('"', $temp);
    +            } else {
    +                //    If there's no quoted strings, then we do a simple count/replace
    +                $formula = preg_replace($from, $to, $formula);
    +                $formula = self::translateSeparator($fromSeparator, $toSeparator, $formula, $inBraces);
    +            }
    +        }
    +
    +        return $formula;
    +    }
    +
    +    private static $functionReplaceFromExcel = null;
    +
    +    private static $functionReplaceToLocale = null;
    +
    +    public function _translateFormulaToLocale($formula)
    +    {
    +        if (self::$functionReplaceFromExcel === null) {
    +            self::$functionReplaceFromExcel = [];
    +            foreach (array_keys(self::$localeFunctions) as $excelFunctionName) {
    +                self::$functionReplaceFromExcel[] = '/(@?[^\w\.])' . preg_quote($excelFunctionName, '/') . '([\s]*\()/Ui';
    +            }
    +            foreach (array_keys(self::$localeBoolean) as $excelBoolean) {
    +                self::$functionReplaceFromExcel[] = '/(@?[^\w\.])' . preg_quote($excelBoolean, '/') . '([^\w\.])/Ui';
    +            }
    +        }
    +
    +        if (self::$functionReplaceToLocale === null) {
    +            self::$functionReplaceToLocale = [];
    +            foreach (self::$localeFunctions as $localeFunctionName) {
    +                self::$functionReplaceToLocale[] = '$1' . trim($localeFunctionName) . '$2';
    +            }
    +            foreach (self::$localeBoolean as $localeBoolean) {
    +                self::$functionReplaceToLocale[] = '$1' . trim($localeBoolean) . '$2';
    +            }
    +        }
    +
    +        return self::translateFormula(self::$functionReplaceFromExcel, self::$functionReplaceToLocale, $formula, ',', self::$localeArgumentSeparator);
    +    }
    +
    +    private static $functionReplaceFromLocale = null;
    +
    +    private static $functionReplaceToExcel = null;
    +
    +    public function _translateFormulaToEnglish($formula)
    +    {
    +        if (self::$functionReplaceFromLocale === null) {
    +            self::$functionReplaceFromLocale = [];
    +            foreach (self::$localeFunctions as $localeFunctionName) {
    +                self::$functionReplaceFromLocale[] = '/(@?[^\w\.])' . preg_quote($localeFunctionName, '/') . '([\s]*\()/Ui';
    +            }
    +            foreach (self::$localeBoolean as $excelBoolean) {
    +                self::$functionReplaceFromLocale[] = '/(@?[^\w\.])' . preg_quote($excelBoolean, '/') . '([^\w\.])/Ui';
    +            }
    +        }
    +
    +        if (self::$functionReplaceToExcel === null) {
    +            self::$functionReplaceToExcel = [];
    +            foreach (array_keys(self::$localeFunctions) as $excelFunctionName) {
    +                self::$functionReplaceToExcel[] = '$1' . trim($excelFunctionName) . '$2';
    +            }
    +            foreach (array_keys(self::$localeBoolean) as $excelBoolean) {
    +                self::$functionReplaceToExcel[] = '$1' . trim($excelBoolean) . '$2';
    +            }
    +        }
    +
    +        return self::translateFormula(self::$functionReplaceFromLocale, self::$functionReplaceToExcel, $formula, self::$localeArgumentSeparator, ',');
    +    }
    +
    +    public static function localeFunc($function)
    +    {
    +        if (self::$localeLanguage !== 'en_us') {
    +            $functionName = trim($function, '(');
    +            if (isset(self::$localeFunctions[$functionName])) {
    +                $brace = ($functionName != $function);
    +                $function = self::$localeFunctions[$functionName];
    +                if ($brace) {
    +                    $function .= '(';
    +                }
    +            }
    +        }
    +
    +        return $function;
    +    }
    +
    +    /**
    +     * Wrap string values in quotes.
    +     *
    +     * @param mixed $value
    +     *
    +     * @return mixed
    +     */
    +    public static function wrapResult($value)
    +    {
    +        if (is_string($value)) {
    +            //    Error values cannot be "wrapped"
    +            if (preg_match('/^' . self::CALCULATION_REGEXP_ERROR . '$/i', $value, $match)) {
    +                //    Return Excel errors "as is"
    +                return $value;
    +            }
    +            //    Return strings wrapped in quotes
    +            return '"' . $value . '"';
    +        //    Convert numeric errors to NaN error
    +        } elseif ((is_float($value)) && ((is_nan($value)) || (is_infinite($value)))) {
    +            return Functions::NAN();
    +        }
    +
    +        return $value;
    +    }
    +
    +    /**
    +     * Remove quotes used as a wrapper to identify string values.
    +     *
    +     * @param mixed $value
    +     *
    +     * @return mixed
    +     */
    +    public static function unwrapResult($value)
    +    {
    +        if (is_string($value)) {
    +            if ((isset($value[0])) && ($value[0] == '"') && (substr($value, -1) == '"')) {
    +                return substr($value, 1, -1);
    +            }
    +            //    Convert numeric errors to NAN error
    +        } elseif ((is_float($value)) && ((is_nan($value)) || (is_infinite($value)))) {
    +            return Functions::NAN();
    +        }
    +
    +        return $value;
    +    }
    +
    +    /**
    +     * Calculate cell value (using formula from a cell ID)
    +     * Retained for backward compatibility.
    +     *
    +     * @param Cell $pCell Cell to calculate
    +     *
    +     * @throws Exception
    +     *
    +     * @return mixed
    +     */
    +    public function calculate(Cell $pCell = null)
    +    {
    +        try {
    +            return $this->calculateCellValue($pCell);
    +        } catch (\Exception $e) {
    +            throw new Exception($e->getMessage());
    +        }
    +    }
    +
    +    /**
    +     * Calculate the value of a cell formula.
    +     *
    +     * @param Cell $pCell Cell to calculate
    +     * @param bool $resetLog Flag indicating whether the debug log should be reset or not
    +     *
    +     * @throws Exception
    +     *
    +     * @return mixed
    +     */
    +    public function calculateCellValue(Cell $pCell = null, $resetLog = true)
    +    {
    +        if ($pCell === null) {
    +            return null;
    +        }
    +
    +        $returnArrayAsType = self::$returnArrayAsType;
    +        if ($resetLog) {
    +            //    Initialise the logging settings if requested
    +            $this->formulaError = null;
    +            $this->debugLog->clearLog();
    +            $this->cyclicReferenceStack->clear();
    +            $this->cyclicFormulaCounter = 1;
    +
    +            self::$returnArrayAsType = self::RETURN_ARRAY_AS_ARRAY;
    +        }
    +
    +        //    Execute the calculation for the cell formula
    +        $this->cellStack[] = [
    +            'sheet' => $pCell->getWorksheet()->getTitle(),
    +            'cell' => $pCell->getCoordinate(),
    +        ];
    +
    +        try {
    +            $result = self::unwrapResult($this->_calculateFormulaValue($pCell->getValue(), $pCell->getCoordinate(), $pCell));
    +            $cellAddress = array_pop($this->cellStack);
    +            $this->spreadsheet->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']);
    +        } catch (\Exception $e) {
    +            $cellAddress = array_pop($this->cellStack);
    +            $this->spreadsheet->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']);
    +
    +            throw new Exception($e->getMessage());
    +        }
    +
    +        if ((is_array($result)) && (self::$returnArrayAsType != self::RETURN_ARRAY_AS_ARRAY)) {
    +            self::$returnArrayAsType = $returnArrayAsType;
    +            $testResult = Functions::flattenArray($result);
    +            if (self::$returnArrayAsType == self::RETURN_ARRAY_AS_ERROR) {
    +                return Functions::VALUE();
    +            }
    +            //    If there's only a single cell in the array, then we allow it
    +            if (count($testResult) != 1) {
    +                //    If keys are numeric, then it's a matrix result rather than a cell range result, so we permit it
    +                $r = array_keys($result);
    +                $r = array_shift($r);
    +                if (!is_numeric($r)) {
    +                    return Functions::VALUE();
    +                }
    +                if (is_array($result[$r])) {
    +                    $c = array_keys($result[$r]);
    +                    $c = array_shift($c);
    +                    if (!is_numeric($c)) {
    +                        return Functions::VALUE();
    +                    }
    +                }
    +            }
    +            $result = array_shift($testResult);
    +        }
    +        self::$returnArrayAsType = $returnArrayAsType;
    +
    +        if ($result === null) {
    +            return 0;
    +        } elseif ((is_float($result)) && ((is_nan($result)) || (is_infinite($result)))) {
    +            return Functions::NAN();
    +        }
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * Validate and parse a formula string.
    +     *
    +     * @param string $formula Formula to parse
    +     *
    +     * @return array|bool
    +     */
    +    public function parseFormula($formula)
    +    {
    +        //    Basic validation that this is indeed a formula
    +        //    We return an empty array if not
    +        $formula = trim($formula);
    +        if ((!isset($formula[0])) || ($formula[0] != '=')) {
    +            return [];
    +        }
    +        $formula = ltrim(substr($formula, 1));
    +        if (!isset($formula[0])) {
    +            return [];
    +        }
    +
    +        //    Parse the formula and return the token stack
    +        return $this->_parseFormula($formula);
    +    }
    +
    +    /**
    +     * Calculate the value of a formula.
    +     *
    +     * @param string $formula Formula to parse
    +     * @param string $cellID Address of the cell to calculate
    +     * @param Cell $pCell Cell to calculate
    +     *
    +     * @throws Exception
    +     *
    +     * @return mixed
    +     */
    +    public function calculateFormula($formula, $cellID = null, Cell $pCell = null)
    +    {
    +        //    Initialise the logging settings
    +        $this->formulaError = null;
    +        $this->debugLog->clearLog();
    +        $this->cyclicReferenceStack->clear();
    +
    +        if ($this->spreadsheet !== null && $cellID === null && $pCell === null) {
    +            $cellID = 'A1';
    +            $pCell = $this->spreadsheet->getActiveSheet()->getCell($cellID);
    +        } else {
    +            //    Disable calculation cacheing because it only applies to cell calculations, not straight formulae
    +            //    But don't actually flush any cache
    +            $resetCache = $this->getCalculationCacheEnabled();
    +            $this->calculationCacheEnabled = false;
    +        }
    +
    +        //    Execute the calculation
    +        try {
    +            $result = self::unwrapResult($this->_calculateFormulaValue($formula, $cellID, $pCell));
    +        } catch (\Exception $e) {
    +            throw new Exception($e->getMessage());
    +        }
    +
    +        if ($this->spreadsheet === null) {
    +            //    Reset calculation cacheing to its previous state
    +            $this->calculationCacheEnabled = $resetCache;
    +        }
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * @param string $cellReference
    +     * @param mixed $cellValue
    +     *
    +     * @return bool
    +     */
    +    public function getValueFromCache($cellReference, &$cellValue)
    +    {
    +        // Is calculation cacheing enabled?
    +        // Is the value present in calculation cache?
    +        $this->debugLog->writeDebugLog('Testing cache value for cell ', $cellReference);
    +        if (($this->calculationCacheEnabled) && (isset($this->calculationCache[$cellReference]))) {
    +            $this->debugLog->writeDebugLog('Retrieving value for cell ', $cellReference, ' from cache');
    +            // Return the cached result
    +            $cellValue = $this->calculationCache[$cellReference];
    +
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * @param string $cellReference
    +     * @param mixed $cellValue
    +     */
    +    public function saveValueToCache($cellReference, $cellValue)
    +    {
    +        if ($this->calculationCacheEnabled) {
    +            $this->calculationCache[$cellReference] = $cellValue;
    +        }
    +    }
    +
    +    /**
    +     * Parse a cell formula and calculate its value.
    +     *
    +     * @param string $formula The formula to parse and calculate
    +     * @param string $cellID The ID (e.g. A3) of the cell that we are calculating
    +     * @param Cell $pCell Cell to calculate
    +     *
    +     * @throws Exception
    +     *
    +     * @return mixed
    +     */
    +    public function _calculateFormulaValue($formula, $cellID = null, Cell $pCell = null)
    +    {
    +        $cellValue = null;
    +
    +        //    Basic validation that this is indeed a formula
    +        //    We simply return the cell value if not
    +        $formula = trim($formula);
    +        if ($formula[0] != '=') {
    +            return self::wrapResult($formula);
    +        }
    +        $formula = ltrim(substr($formula, 1));
    +        if (!isset($formula[0])) {
    +            return self::wrapResult($formula);
    +        }
    +
    +        $pCellParent = ($pCell !== null) ? $pCell->getWorksheet() : null;
    +        $wsTitle = ($pCellParent !== null) ? $pCellParent->getTitle() : "\x00Wrk";
    +        $wsCellReference = $wsTitle . '!' . $cellID;
    +
    +        if (($cellID !== null) && ($this->getValueFromCache($wsCellReference, $cellValue))) {
    +            return $cellValue;
    +        }
    +
    +        if (($wsTitle[0] !== "\x00") && ($this->cyclicReferenceStack->onStack($wsCellReference))) {
    +            if ($this->cyclicFormulaCount <= 0) {
    +                $this->cyclicFormulaCell = '';
    +
    +                return $this->raiseFormulaError('Cyclic Reference in Formula');
    +            } elseif ($this->cyclicFormulaCell === $wsCellReference) {
    +                ++$this->cyclicFormulaCounter;
    +                if ($this->cyclicFormulaCounter >= $this->cyclicFormulaCount) {
    +                    $this->cyclicFormulaCell = '';
    +
    +                    return $cellValue;
    +                }
    +            } elseif ($this->cyclicFormulaCell == '') {
    +                if ($this->cyclicFormulaCounter >= $this->cyclicFormulaCount) {
    +                    return $cellValue;
    +                }
    +                $this->cyclicFormulaCell = $wsCellReference;
    +            }
    +        }
    +
    +        //    Parse the formula onto the token stack and calculate the value
    +        $this->cyclicReferenceStack->push($wsCellReference);
    +        $cellValue = $this->processTokenStack($this->_parseFormula($formula, $pCell), $cellID, $pCell);
    +        $this->cyclicReferenceStack->pop();
    +
    +        // Save to calculation cache
    +        if ($cellID !== null) {
    +            $this->saveValueToCache($wsCellReference, $cellValue);
    +        }
    +
    +        //    Return the calculated value
    +        return $cellValue;
    +    }
    +
    +    /**
    +     * Ensure that paired matrix operands are both matrices and of the same size.
    +     *
    +     * @param mixed &$operand1 First matrix operand
    +     * @param mixed &$operand2 Second matrix operand
    +     * @param int $resize Flag indicating whether the matrices should be resized to match
    +     *                                        and (if so), whether the smaller dimension should grow or the
    +     *                                        larger should shrink.
    +     *                                            0 = no resize
    +     *                                            1 = shrink to fit
    +     *                                            2 = extend to fit
    +     *
    +     * @return array
    +     */
    +    private static function checkMatrixOperands(&$operand1, &$operand2, $resize = 1)
    +    {
    +        //    Examine each of the two operands, and turn them into an array if they aren't one already
    +        //    Note that this function should only be called if one or both of the operand is already an array
    +        if (!is_array($operand1)) {
    +            list($matrixRows, $matrixColumns) = self::getMatrixDimensions($operand2);
    +            $operand1 = array_fill(0, $matrixRows, array_fill(0, $matrixColumns, $operand1));
    +            $resize = 0;
    +        } elseif (!is_array($operand2)) {
    +            list($matrixRows, $matrixColumns) = self::getMatrixDimensions($operand1);
    +            $operand2 = array_fill(0, $matrixRows, array_fill(0, $matrixColumns, $operand2));
    +            $resize = 0;
    +        }
    +
    +        list($matrix1Rows, $matrix1Columns) = self::getMatrixDimensions($operand1);
    +        list($matrix2Rows, $matrix2Columns) = self::getMatrixDimensions($operand2);
    +        if (($matrix1Rows == $matrix2Columns) && ($matrix2Rows == $matrix1Columns)) {
    +            $resize = 1;
    +        }
    +
    +        if ($resize == 2) {
    +            //    Given two matrices of (potentially) unequal size, convert the smaller in each dimension to match the larger
    +            self::resizeMatricesExtend($operand1, $operand2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns);
    +        } elseif ($resize == 1) {
    +            //    Given two matrices of (potentially) unequal size, convert the larger in each dimension to match the smaller
    +            self::resizeMatricesShrink($operand1, $operand2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns);
    +        }
    +
    +        return [$matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns];
    +    }
    +
    +    /**
    +     * Read the dimensions of a matrix, and re-index it with straight numeric keys starting from row 0, column 0.
    +     *
    +     * @param array &$matrix matrix operand
    +     *
    +     * @return int[] An array comprising the number of rows, and number of columns
    +     */
    +    public static function getMatrixDimensions(array &$matrix)
    +    {
    +        $matrixRows = count($matrix);
    +        $matrixColumns = 0;
    +        foreach ($matrix as $rowKey => $rowValue) {
    +            if (!is_array($rowValue)) {
    +                $matrix[$rowKey] = [$rowValue];
    +                $matrixColumns = max(1, $matrixColumns);
    +            } else {
    +                $matrix[$rowKey] = array_values($rowValue);
    +                $matrixColumns = max(count($rowValue), $matrixColumns);
    +            }
    +        }
    +        $matrix = array_values($matrix);
    +
    +        return [$matrixRows, $matrixColumns];
    +    }
    +
    +    /**
    +     * Ensure that paired matrix operands are both matrices of the same size.
    +     *
    +     * @param mixed &$matrix1 First matrix operand
    +     * @param mixed &$matrix2 Second matrix operand
    +     * @param int $matrix1Rows Row size of first matrix operand
    +     * @param int $matrix1Columns Column size of first matrix operand
    +     * @param int $matrix2Rows Row size of second matrix operand
    +     * @param int $matrix2Columns Column size of second matrix operand
    +     */
    +    private static function resizeMatricesShrink(&$matrix1, &$matrix2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns)
    +    {
    +        if (($matrix2Columns < $matrix1Columns) || ($matrix2Rows < $matrix1Rows)) {
    +            if ($matrix2Rows < $matrix1Rows) {
    +                for ($i = $matrix2Rows; $i < $matrix1Rows; ++$i) {
    +                    unset($matrix1[$i]);
    +                }
    +            }
    +            if ($matrix2Columns < $matrix1Columns) {
    +                for ($i = 0; $i < $matrix1Rows; ++$i) {
    +                    for ($j = $matrix2Columns; $j < $matrix1Columns; ++$j) {
    +                        unset($matrix1[$i][$j]);
    +                    }
    +                }
    +            }
    +        }
    +
    +        if (($matrix1Columns < $matrix2Columns) || ($matrix1Rows < $matrix2Rows)) {
    +            if ($matrix1Rows < $matrix2Rows) {
    +                for ($i = $matrix1Rows; $i < $matrix2Rows; ++$i) {
    +                    unset($matrix2[$i]);
    +                }
    +            }
    +            if ($matrix1Columns < $matrix2Columns) {
    +                for ($i = 0; $i < $matrix2Rows; ++$i) {
    +                    for ($j = $matrix1Columns; $j < $matrix2Columns; ++$j) {
    +                        unset($matrix2[$i][$j]);
    +                    }
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Ensure that paired matrix operands are both matrices of the same size.
    +     *
    +     * @param mixed &$matrix1 First matrix operand
    +     * @param mixed &$matrix2 Second matrix operand
    +     * @param int $matrix1Rows Row size of first matrix operand
    +     * @param int $matrix1Columns Column size of first matrix operand
    +     * @param int $matrix2Rows Row size of second matrix operand
    +     * @param int $matrix2Columns Column size of second matrix operand
    +     */
    +    private static function resizeMatricesExtend(&$matrix1, &$matrix2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns)
    +    {
    +        if (($matrix2Columns < $matrix1Columns) || ($matrix2Rows < $matrix1Rows)) {
    +            if ($matrix2Columns < $matrix1Columns) {
    +                for ($i = 0; $i < $matrix2Rows; ++$i) {
    +                    $x = $matrix2[$i][$matrix2Columns - 1];
    +                    for ($j = $matrix2Columns; $j < $matrix1Columns; ++$j) {
    +                        $matrix2[$i][$j] = $x;
    +                    }
    +                }
    +            }
    +            if ($matrix2Rows < $matrix1Rows) {
    +                $x = $matrix2[$matrix2Rows - 1];
    +                for ($i = 0; $i < $matrix1Rows; ++$i) {
    +                    $matrix2[$i] = $x;
    +                }
    +            }
    +        }
    +
    +        if (($matrix1Columns < $matrix2Columns) || ($matrix1Rows < $matrix2Rows)) {
    +            if ($matrix1Columns < $matrix2Columns) {
    +                for ($i = 0; $i < $matrix1Rows; ++$i) {
    +                    $x = $matrix1[$i][$matrix1Columns - 1];
    +                    for ($j = $matrix1Columns; $j < $matrix2Columns; ++$j) {
    +                        $matrix1[$i][$j] = $x;
    +                    }
    +                }
    +            }
    +            if ($matrix1Rows < $matrix2Rows) {
    +                $x = $matrix1[$matrix1Rows - 1];
    +                for ($i = 0; $i < $matrix2Rows; ++$i) {
    +                    $matrix1[$i] = $x;
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Format details of an operand for display in the log (based on operand type).
    +     *
    +     * @param mixed $value First matrix operand
    +     *
    +     * @return mixed
    +     */
    +    private function showValue($value)
    +    {
    +        if ($this->debugLog->getWriteDebugLog()) {
    +            $testArray = Functions::flattenArray($value);
    +            if (count($testArray) == 1) {
    +                $value = array_pop($testArray);
    +            }
    +
    +            if (is_array($value)) {
    +                $returnMatrix = [];
    +                $pad = $rpad = ', ';
    +                foreach ($value as $row) {
    +                    if (is_array($row)) {
    +                        $returnMatrix[] = implode($pad, array_map([$this, 'showValue'], $row));
    +                        $rpad = '; ';
    +                    } else {
    +                        $returnMatrix[] = $this->showValue($row);
    +                    }
    +                }
    +
    +                return '{ ' . implode($rpad, $returnMatrix) . ' }';
    +            } elseif (is_string($value) && (trim($value, '"') == $value)) {
    +                return '"' . $value . '"';
    +            } elseif (is_bool($value)) {
    +                return ($value) ? self::$localeBoolean['TRUE'] : self::$localeBoolean['FALSE'];
    +            }
    +        }
    +
    +        return Functions::flattenSingleValue($value);
    +    }
    +
    +    /**
    +     * Format type and details of an operand for display in the log (based on operand type).
    +     *
    +     * @param mixed $value First matrix operand
    +     *
    +     * @return null|string
    +     */
    +    private function showTypeDetails($value)
    +    {
    +        if ($this->debugLog->getWriteDebugLog()) {
    +            $testArray = Functions::flattenArray($value);
    +            if (count($testArray) == 1) {
    +                $value = array_pop($testArray);
    +            }
    +
    +            if ($value === null) {
    +                return 'a NULL value';
    +            } elseif (is_float($value)) {
    +                $typeString = 'a floating point number';
    +            } elseif (is_int($value)) {
    +                $typeString = 'an integer number';
    +            } elseif (is_bool($value)) {
    +                $typeString = 'a boolean';
    +            } elseif (is_array($value)) {
    +                $typeString = 'a matrix';
    +            } else {
    +                if ($value == '') {
    +                    return 'an empty string';
    +                } elseif ($value[0] == '#') {
    +                    return 'a ' . $value . ' error';
    +                }
    +                $typeString = 'a string';
    +            }
    +
    +            return $typeString . ' with a value of ' . $this->showValue($value);
    +        }
    +    }
    +
    +    /**
    +     * @param string $formula
    +     *
    +     * @return string
    +     */
    +    private function convertMatrixReferences($formula)
    +    {
    +        static $matrixReplaceFrom = ['{', ';', '}'];
    +        static $matrixReplaceTo = ['MKMATRIX(MKMATRIX(', '),MKMATRIX(', '))'];
    +
    +        //    Convert any Excel matrix references to the MKMATRIX() function
    +        if (strpos($formula, '{') !== false) {
    +            //    If there is the possibility of braces within a quoted string, then we don't treat those as matrix indicators
    +            if (strpos($formula, '"') !== false) {
    +                //    So instead we skip replacing in any quoted strings by only replacing in every other array element after we've exploded
    +                //        the formula
    +                $temp = explode('"', $formula);
    +                //    Open and Closed counts used for trapping mismatched braces in the formula
    +                $openCount = $closeCount = 0;
    +                $i = false;
    +                foreach ($temp as &$value) {
    +                    //    Only count/replace in alternating array entries
    +                    if ($i = !$i) {
    +                        $openCount += substr_count($value, '{');
    +                        $closeCount += substr_count($value, '}');
    +                        $value = str_replace($matrixReplaceFrom, $matrixReplaceTo, $value);
    +                    }
    +                }
    +                unset($value);
    +                //    Then rebuild the formula string
    +                $formula = implode('"', $temp);
    +            } else {
    +                //    If there's no quoted strings, then we do a simple count/replace
    +                $openCount = substr_count($formula, '{');
    +                $closeCount = substr_count($formula, '}');
    +                $formula = str_replace($matrixReplaceFrom, $matrixReplaceTo, $formula);
    +            }
    +            //    Trap for mismatched braces and trigger an appropriate error
    +            if ($openCount < $closeCount) {
    +                if ($openCount > 0) {
    +                    return $this->raiseFormulaError("Formula Error: Mismatched matrix braces '}'");
    +                }
    +
    +                return $this->raiseFormulaError("Formula Error: Unexpected '}' encountered");
    +            } elseif ($openCount > $closeCount) {
    +                if ($closeCount > 0) {
    +                    return $this->raiseFormulaError("Formula Error: Mismatched matrix braces '{'");
    +                }
    +
    +                return $this->raiseFormulaError("Formula Error: Unexpected '{' encountered");
    +            }
    +        }
    +
    +        return $formula;
    +    }
    +
    +    private static function mkMatrix(...$args)
    +    {
    +        return $args;
    +    }
    +
    +    //    Binary Operators
    +    //    These operators always work on two values
    +    //    Array key is the operator, the value indicates whether this is a left or right associative operator
    +    private static $operatorAssociativity = [
    +        '^' => 0, //    Exponentiation
    +        '*' => 0, '/' => 0, //    Multiplication and Division
    +        '+' => 0, '-' => 0, //    Addition and Subtraction
    +        '&' => 0, //    Concatenation
    +        '|' => 0, ':' => 0, //    Intersect and Range
    +        '>' => 0, '<' => 0, '=' => 0, '>=' => 0, '<=' => 0, '<>' => 0, //    Comparison
    +    ];
    +
    +    //    Comparison (Boolean) Operators
    +    //    These operators work on two values, but always return a boolean result
    +    private static $comparisonOperators = ['>' => true, '<' => true, '=' => true, '>=' => true, '<=' => true, '<>' => true];
    +
    +    //    Operator Precedence
    +    //    This list includes all valid operators, whether binary (including boolean) or unary (such as %)
    +    //    Array key is the operator, the value is its precedence
    +    private static $operatorPrecedence = [
    +        ':' => 8, //    Range
    +        '|' => 7, //    Intersect
    +        '~' => 6, //    Negation
    +        '%' => 5, //    Percentage
    +        '^' => 4, //    Exponentiation
    +        '*' => 3, '/' => 3, //    Multiplication and Division
    +        '+' => 2, '-' => 2, //    Addition and Subtraction
    +        '&' => 1, //    Concatenation
    +        '>' => 0, '<' => 0, '=' => 0, '>=' => 0, '<=' => 0, '<>' => 0, //    Comparison
    +    ];
    +
    +    // Convert infix to postfix notation
    +
    +    /**
    +     * @param string $formula
    +     * @param null|\PhpOffice\PhpSpreadsheet\Cell\Cell $pCell
    +     *
    +     * @return bool
    +     */
    +    private function _parseFormula($formula, Cell $pCell = null)
    +    {
    +        if (($formula = $this->convertMatrixReferences(trim($formula))) === false) {
    +            return false;
    +        }
    +
    +        //    If we're using cell caching, then $pCell may well be flushed back to the cache (which detaches the parent worksheet),
    +        //        so we store the parent worksheet so that we can re-attach it when necessary
    +        $pCellParent = ($pCell !== null) ? $pCell->getWorksheet() : null;
    +
    +        $regexpMatchString = '/^(' . self::CALCULATION_REGEXP_FUNCTION .
    +                                '|' . self::CALCULATION_REGEXP_CELLREF .
    +                                '|' . self::CALCULATION_REGEXP_NUMBER .
    +                                '|' . self::CALCULATION_REGEXP_STRING .
    +                                '|' . self::CALCULATION_REGEXP_OPENBRACE .
    +                                '|' . self::CALCULATION_REGEXP_NAMEDRANGE .
    +                                '|' . self::CALCULATION_REGEXP_ERROR .
    +                                ')/si';
    +
    +        //    Start with initialisation
    +        $index = 0;
    +        $stack = new Stack();
    +        $output = [];
    +        $expectingOperator = false; //    We use this test in syntax-checking the expression to determine when a
    +                                                    //        - is a negation or + is a positive operator rather than an operation
    +        $expectingOperand = false; //    We use this test in syntax-checking the expression to determine whether an operand
    +                                                    //        should be null in a function call
    +        //    The guts of the lexical parser
    +        //    Loop through the formula extracting each operator and operand in turn
    +        while (true) {
    +            $opCharacter = $formula[$index]; //    Get the first character of the value at the current index position
    +            if ((isset(self::$comparisonOperators[$opCharacter])) && (strlen($formula) > $index) && (isset(self::$comparisonOperators[$formula[$index + 1]]))) {
    +                $opCharacter .= $formula[++$index];
    +            }
    +
    +            //    Find out if we're currently at the beginning of a number, variable, cell reference, function, parenthesis or operand
    +            $isOperandOrFunction = preg_match($regexpMatchString, substr($formula, $index), $match);
    +
    +            if ($opCharacter == '-' && !$expectingOperator) {                //    Is it a negation instead of a minus?
    +                $stack->push('Unary Operator', '~'); //    Put a negation on the stack
    +                ++$index; //        and drop the negation symbol
    +            } elseif ($opCharacter == '%' && $expectingOperator) {
    +                $stack->push('Unary Operator', '%'); //    Put a percentage on the stack
    +                ++$index;
    +            } elseif ($opCharacter == '+' && !$expectingOperator) {            //    Positive (unary plus rather than binary operator plus) can be discarded?
    +                ++$index; //    Drop the redundant plus symbol
    +            } elseif ((($opCharacter == '~') || ($opCharacter == '|')) && (!$isOperandOrFunction)) {    //    We have to explicitly deny a tilde or pipe, because they are legal
    +                return $this->raiseFormulaError("Formula Error: Illegal character '~'"); //        on the stack but not in the input expression
    +            } elseif ((isset(self::$operators[$opCharacter]) or $isOperandOrFunction) && $expectingOperator) {    //    Are we putting an operator on the stack?
    +                while ($stack->count() > 0 &&
    +                    ($o2 = $stack->last()) &&
    +                    isset(self::$operators[$o2['value']]) &&
    +                    @(self::$operatorAssociativity[$opCharacter] ? self::$operatorPrecedence[$opCharacter] < self::$operatorPrecedence[$o2['value']] : self::$operatorPrecedence[$opCharacter] <= self::$operatorPrecedence[$o2['value']])) {
    +                    $output[] = $stack->pop(); //    Swap operands and higher precedence operators from the stack to the output
    +                }
    +                $stack->push('Binary Operator', $opCharacter); //    Finally put our current operator onto the stack
    +                ++$index;
    +                $expectingOperator = false;
    +            } elseif ($opCharacter == ')' && $expectingOperator) {            //    Are we expecting to close a parenthesis?
    +                $expectingOperand = false;
    +                while (($o2 = $stack->pop()) && $o2['value'] != '(') {        //    Pop off the stack back to the last (
    +                    if ($o2 === null) {
    +                        return $this->raiseFormulaError('Formula Error: Unexpected closing brace ")"');
    +                    }
    +                    $output[] = $o2;
    +                }
    +                $d = $stack->last(2);
    +                if (preg_match('/^' . self::CALCULATION_REGEXP_FUNCTION . '$/i', $d['value'], $matches)) {    //    Did this parenthesis just close a function?
    +                    $functionName = $matches[1]; //    Get the function name
    +                    $d = $stack->pop();
    +                    $argumentCount = $d['value']; //    See how many arguments there were (argument count is the next value stored on the stack)
    +                    $output[] = $d; //    Dump the argument count on the output
    +                    $output[] = $stack->pop(); //    Pop the function and push onto the output
    +                    if (isset(self::$controlFunctions[$functionName])) {
    +                        $expectedArgumentCount = self::$controlFunctions[$functionName]['argumentCount'];
    +                        $functionCall = self::$controlFunctions[$functionName]['functionCall'];
    +                    } elseif (isset(self::$phpSpreadsheetFunctions[$functionName])) {
    +                        $expectedArgumentCount = self::$phpSpreadsheetFunctions[$functionName]['argumentCount'];
    +                        $functionCall = self::$phpSpreadsheetFunctions[$functionName]['functionCall'];
    +                    } else {    // did we somehow push a non-function on the stack? this should never happen
    +                        return $this->raiseFormulaError('Formula Error: Internal error, non-function on stack');
    +                    }
    +                    //    Check the argument count
    +                    $argumentCountError = false;
    +                    if (is_numeric($expectedArgumentCount)) {
    +                        if ($expectedArgumentCount < 0) {
    +                            if ($argumentCount > abs($expectedArgumentCount)) {
    +                                $argumentCountError = true;
    +                                $expectedArgumentCountString = 'no more than ' . abs($expectedArgumentCount);
    +                            }
    +                        } else {
    +                            if ($argumentCount != $expectedArgumentCount) {
    +                                $argumentCountError = true;
    +                                $expectedArgumentCountString = $expectedArgumentCount;
    +                            }
    +                        }
    +                    } elseif ($expectedArgumentCount != '*') {
    +                        $isOperandOrFunction = preg_match('/(\d*)([-+,])(\d*)/', $expectedArgumentCount, $argMatch);
    +                        switch ($argMatch[2]) {
    +                            case '+':
    +                                if ($argumentCount < $argMatch[1]) {
    +                                    $argumentCountError = true;
    +                                    $expectedArgumentCountString = $argMatch[1] . ' or more ';
    +                                }
    +
    +                                break;
    +                            case '-':
    +                                if (($argumentCount < $argMatch[1]) || ($argumentCount > $argMatch[3])) {
    +                                    $argumentCountError = true;
    +                                    $expectedArgumentCountString = 'between ' . $argMatch[1] . ' and ' . $argMatch[3];
    +                                }
    +
    +                                break;
    +                            case ',':
    +                                if (($argumentCount != $argMatch[1]) && ($argumentCount != $argMatch[3])) {
    +                                    $argumentCountError = true;
    +                                    $expectedArgumentCountString = 'either ' . $argMatch[1] . ' or ' . $argMatch[3];
    +                                }
    +
    +                                break;
    +                        }
    +                    }
    +                    if ($argumentCountError) {
    +                        return $this->raiseFormulaError("Formula Error: Wrong number of arguments for $functionName() function: $argumentCount given, " . $expectedArgumentCountString . ' expected');
    +                    }
    +                }
    +                ++$index;
    +            } elseif ($opCharacter == ',') {            //    Is this the separator for function arguments?
    +                while (($o2 = $stack->pop()) && $o2['value'] != '(') {        //    Pop off the stack back to the last (
    +                    if ($o2 === null) {
    +                        return $this->raiseFormulaError('Formula Error: Unexpected ,');
    +                    }
    +                    $output[] = $o2; // pop the argument expression stuff and push onto the output
    +                }
    +                //    If we've a comma when we're expecting an operand, then what we actually have is a null operand;
    +                //        so push a null onto the stack
    +                if (($expectingOperand) || (!$expectingOperator)) {
    +                    $output[] = ['type' => 'NULL Value', 'value' => self::$excelConstants['NULL'], 'reference' => null];
    +                }
    +                // make sure there was a function
    +                $d = $stack->last(2);
    +                if (!preg_match('/^' . self::CALCULATION_REGEXP_FUNCTION . '$/i', $d['value'], $matches)) {
    +                    return $this->raiseFormulaError('Formula Error: Unexpected ,');
    +                }
    +                $d = $stack->pop();
    +                $stack->push($d['type'], ++$d['value'], $d['reference']); // increment the argument count
    +                $stack->push('Brace', '('); // put the ( back on, we'll need to pop back to it again
    +                $expectingOperator = false;
    +                $expectingOperand = true;
    +                ++$index;
    +            } elseif ($opCharacter == '(' && !$expectingOperator) {
    +                $stack->push('Brace', '(');
    +                ++$index;
    +            } elseif ($isOperandOrFunction && !$expectingOperator) {    // do we now have a function/variable/number?
    +                $expectingOperator = true;
    +                $expectingOperand = false;
    +                $val = $match[1];
    +                $length = strlen($val);
    +
    +                if (preg_match('/^' . self::CALCULATION_REGEXP_FUNCTION . '$/i', $val, $matches)) {
    +                    $val = preg_replace('/\s/u', '', $val);
    +                    if (isset(self::$phpSpreadsheetFunctions[strtoupper($matches[1])]) || isset(self::$controlFunctions[strtoupper($matches[1])])) {    // it's a function
    +                        $stack->push('Function', strtoupper($val));
    +                        $ax = preg_match('/^\s*(\s*\))/ui', substr($formula, $index + $length), $amatch);
    +                        if ($ax) {
    +                            $stack->push('Operand Count for Function ' . strtoupper($val) . ')', 0);
    +                            $expectingOperator = true;
    +                        } else {
    +                            $stack->push('Operand Count for Function ' . strtoupper($val) . ')', 1);
    +                            $expectingOperator = false;
    +                        }
    +                        $stack->push('Brace', '(');
    +                    } else {    // it's a var w/ implicit multiplication
    +                        $output[] = ['type' => 'Value', 'value' => $matches[1], 'reference' => null];
    +                    }
    +                } elseif (preg_match('/^' . self::CALCULATION_REGEXP_CELLREF . '$/i', $val, $matches)) {
    +                    //    Watch for this case-change when modifying to allow cell references in different worksheets...
    +                    //    Should only be applied to the actual cell column, not the worksheet name
    +
    +                    //    If the last entry on the stack was a : operator, then we have a cell range reference
    +                    $testPrevOp = $stack->last(1);
    +                    if ($testPrevOp['value'] == ':') {
    +                        //    If we have a worksheet reference, then we're playing with a 3D reference
    +                        if ($matches[2] == '') {
    +                            //    Otherwise, we 'inherit' the worksheet reference from the start cell reference
    +                            //    The start of the cell range reference should be the last entry in $output
    +                            $startCellRef = $output[count($output) - 1]['value'];
    +                            preg_match('/^' . self::CALCULATION_REGEXP_CELLREF . '$/i', $startCellRef, $startMatches);
    +                            if ($startMatches[2] > '') {
    +                                $val = $startMatches[2] . '!' . $val;
    +                            }
    +                        } else {
    +                            return $this->raiseFormulaError('3D Range references are not yet supported');
    +                        }
    +                    }
    +
    +                    $output[] = ['type' => 'Cell Reference', 'value' => $val, 'reference' => $val];
    +                } else {    // it's a variable, constant, string, number or boolean
    +                    //    If the last entry on the stack was a : operator, then we may have a row or column range reference
    +                    $testPrevOp = $stack->last(1);
    +                    if ($testPrevOp['value'] == ':') {
    +                        $startRowColRef = $output[count($output) - 1]['value'];
    +                        list($rangeWS1, $startRowColRef) = Worksheet::extractSheetTitle($startRowColRef, true);
    +                        if ($rangeWS1 != '') {
    +                            $rangeWS1 .= '!';
    +                        }
    +                        list($rangeWS2, $val) = Worksheet::extractSheetTitle($val, true);
    +                        if ($rangeWS2 != '') {
    +                            $rangeWS2 .= '!';
    +                        } else {
    +                            $rangeWS2 = $rangeWS1;
    +                        }
    +                        if ((is_int($startRowColRef)) && (ctype_digit($val)) &&
    +                            ($startRowColRef <= 1048576) && ($val <= 1048576)) {
    +                            //    Row range
    +                            $endRowColRef = ($pCellParent !== null) ? $pCellParent->getHighestColumn() : 'XFD'; //    Max 16,384 columns for Excel2007
    +                            $output[count($output) - 1]['value'] = $rangeWS1 . 'A' . $startRowColRef;
    +                            $val = $rangeWS2 . $endRowColRef . $val;
    +                        } elseif ((ctype_alpha($startRowColRef)) && (ctype_alpha($val)) &&
    +                            (strlen($startRowColRef) <= 3) && (strlen($val) <= 3)) {
    +                            //    Column range
    +                            $endRowColRef = ($pCellParent !== null) ? $pCellParent->getHighestRow() : 1048576; //    Max 1,048,576 rows for Excel2007
    +                            $output[count($output) - 1]['value'] = $rangeWS1 . strtoupper($startRowColRef) . '1';
    +                            $val = $rangeWS2 . $val . $endRowColRef;
    +                        }
    +                    }
    +
    +                    $localeConstant = false;
    +                    if ($opCharacter == '"') {
    +                        //    UnEscape any quotes within the string
    +                        $val = self::wrapResult(str_replace('""', '"', self::unwrapResult($val)));
    +                    } elseif (is_numeric($val)) {
    +                        if ((strpos($val, '.') !== false) || (stripos($val, 'e') !== false) || ($val > PHP_INT_MAX) || ($val < -PHP_INT_MAX)) {
    +                            $val = (float) $val;
    +                        } else {
    +                            $val = (int) $val;
    +                        }
    +                    } elseif (isset(self::$excelConstants[trim(strtoupper($val))])) {
    +                        $excelConstant = trim(strtoupper($val));
    +                        $val = self::$excelConstants[$excelConstant];
    +                    } elseif (($localeConstant = array_search(trim(strtoupper($val)), self::$localeBoolean)) !== false) {
    +                        $val = self::$excelConstants[$localeConstant];
    +                    }
    +                    $details = ['type' => 'Value', 'value' => $val, 'reference' => null];
    +                    if ($localeConstant) {
    +                        $details['localeValue'] = $localeConstant;
    +                    }
    +                    $output[] = $details;
    +                }
    +                $index += $length;
    +            } elseif ($opCharacter == '$') {    // absolute row or column range
    +                ++$index;
    +            } elseif ($opCharacter == ')') {    // miscellaneous error checking
    +                if ($expectingOperand) {
    +                    $output[] = ['type' => 'NULL Value', 'value' => self::$excelConstants['NULL'], 'reference' => null];
    +                    $expectingOperand = false;
    +                    $expectingOperator = true;
    +                } else {
    +                    return $this->raiseFormulaError("Formula Error: Unexpected ')'");
    +                }
    +            } elseif (isset(self::$operators[$opCharacter]) && !$expectingOperator) {
    +                return $this->raiseFormulaError("Formula Error: Unexpected operator '$opCharacter'");
    +            } else {    // I don't even want to know what you did to get here
    +                return $this->raiseFormulaError('Formula Error: An unexpected error occured');
    +            }
    +            //    Test for end of formula string
    +            if ($index == strlen($formula)) {
    +                //    Did we end with an operator?.
    +                //    Only valid for the % unary operator
    +                if ((isset(self::$operators[$opCharacter])) && ($opCharacter != '%')) {
    +                    return $this->raiseFormulaError("Formula Error: Operator '$opCharacter' has no operands");
    +                }
    +
    +                break;
    +            }
    +            //    Ignore white space
    +            while (($formula[$index] == "\n") || ($formula[$index] == "\r")) {
    +                ++$index;
    +            }
    +            if ($formula[$index] == ' ') {
    +                while ($formula[$index] == ' ') {
    +                    ++$index;
    +                }
    +                //    If we're expecting an operator, but only have a space between the previous and next operands (and both are
    +                //        Cell References) then we have an INTERSECTION operator
    +                if (($expectingOperator) && (preg_match('/^' . self::CALCULATION_REGEXP_CELLREF . '.*/Ui', substr($formula, $index), $match)) &&
    +                    ($output[count($output) - 1]['type'] == 'Cell Reference')) {
    +                    while ($stack->count() > 0 &&
    +                        ($o2 = $stack->last()) &&
    +                        isset(self::$operators[$o2['value']]) &&
    +                        @(self::$operatorAssociativity[$opCharacter] ? self::$operatorPrecedence[$opCharacter] < self::$operatorPrecedence[$o2['value']] : self::$operatorPrecedence[$opCharacter] <= self::$operatorPrecedence[$o2['value']])) {
    +                        $output[] = $stack->pop(); //    Swap operands and higher precedence operators from the stack to the output
    +                    }
    +                    $stack->push('Binary Operator', '|'); //    Put an Intersect Operator on the stack
    +                    $expectingOperator = false;
    +                }
    +            }
    +        }
    +
    +        while (($op = $stack->pop()) !== null) {    // pop everything off the stack and push onto output
    +            if ((is_array($op) && $op['value'] == '(') || ($op === '(')) {
    +                return $this->raiseFormulaError("Formula Error: Expecting ')'"); // if there are any opening braces on the stack, then braces were unbalanced
    +            }
    +            $output[] = $op;
    +        }
    +
    +        return $output;
    +    }
    +
    +    private static function dataTestReference(&$operandData)
    +    {
    +        $operand = $operandData['value'];
    +        if (($operandData['reference'] === null) && (is_array($operand))) {
    +            $rKeys = array_keys($operand);
    +            $rowKey = array_shift($rKeys);
    +            $cKeys = array_keys(array_keys($operand[$rowKey]));
    +            $colKey = array_shift($cKeys);
    +            if (ctype_upper($colKey)) {
    +                $operandData['reference'] = $colKey . $rowKey;
    +            }
    +        }
    +
    +        return $operand;
    +    }
    +
    +    // evaluate postfix notation
    +
    +    /**
    +     * @param mixed $tokens
    +     * @param null|string $cellID
    +     * @param null|Cell $pCell
    +     *
    +     * @return bool
    +     */
    +    private function processTokenStack($tokens, $cellID = null, Cell $pCell = null)
    +    {
    +        if ($tokens == false) {
    +            return false;
    +        }
    +
    +        //    If we're using cell caching, then $pCell may well be flushed back to the cache (which detaches the parent cell collection),
    +        //        so we store the parent cell collection so that we can re-attach it when necessary
    +        $pCellWorksheet = ($pCell !== null) ? $pCell->getWorksheet() : null;
    +        $pCellParent = ($pCell !== null) ? $pCell->getParent() : null;
    +        $stack = new Stack();
    +
    +        //    Loop through each token in turn
    +        foreach ($tokens as $tokenData) {
    +            $token = $tokenData['value'];
    +            // if the token is a binary operator, pop the top two values off the stack, do the operation, and push the result back on the stack
    +            if (isset(self::$binaryOperators[$token])) {
    +                //    We must have two operands, error if we don't
    +                if (($operand2Data = $stack->pop()) === null) {
    +                    return $this->raiseFormulaError('Internal error - Operand value missing from stack');
    +                }
    +                if (($operand1Data = $stack->pop()) === null) {
    +                    return $this->raiseFormulaError('Internal error - Operand value missing from stack');
    +                }
    +
    +                $operand1 = self::dataTestReference($operand1Data);
    +                $operand2 = self::dataTestReference($operand2Data);
    +
    +                //    Log what we're doing
    +                if ($token == ':') {
    +                    $this->debugLog->writeDebugLog('Evaluating Range ', $this->showValue($operand1Data['reference']), ' ', $token, ' ', $this->showValue($operand2Data['reference']));
    +                } else {
    +                    $this->debugLog->writeDebugLog('Evaluating ', $this->showValue($operand1), ' ', $token, ' ', $this->showValue($operand2));
    +                }
    +
    +                //    Process the operation in the appropriate manner
    +                switch ($token) {
    +                    //    Comparison (Boolean) Operators
    +                    case '>':            //    Greater than
    +                    case '<':            //    Less than
    +                    case '>=':            //    Greater than or Equal to
    +                    case '<=':            //    Less than or Equal to
    +                    case '=':            //    Equality
    +                    case '<>':            //    Inequality
    +                        $this->executeBinaryComparisonOperation($cellID, $operand1, $operand2, $token, $stack);
    +
    +                        break;
    +                    //    Binary Operators
    +                    case ':':            //    Range
    +                        if (strpos($operand1Data['reference'], '!') !== false) {
    +                            list($sheet1, $operand1Data['reference']) = Worksheet::extractSheetTitle($operand1Data['reference'], true);
    +                        } else {
    +                            $sheet1 = ($pCellParent !== null) ? $pCellWorksheet->getTitle() : '';
    +                        }
    +
    +                        list($sheet2, $operand2Data['reference']) = Worksheet::extractSheetTitle($operand2Data['reference'], true);
    +                        if (empty($sheet2)) {
    +                            $sheet2 = $sheet1;
    +                        }
    +
    +                        if ($sheet1 == $sheet2) {
    +                            if ($operand1Data['reference'] === null) {
    +                                if ((trim($operand1Data['value']) != '') && (is_numeric($operand1Data['value']))) {
    +                                    $operand1Data['reference'] = $pCell->getColumn() . $operand1Data['value'];
    +                                } elseif (trim($operand1Data['reference']) == '') {
    +                                    $operand1Data['reference'] = $pCell->getCoordinate();
    +                                } else {
    +                                    $operand1Data['reference'] = $operand1Data['value'] . $pCell->getRow();
    +                                }
    +                            }
    +                            if ($operand2Data['reference'] === null) {
    +                                if ((trim($operand2Data['value']) != '') && (is_numeric($operand2Data['value']))) {
    +                                    $operand2Data['reference'] = $pCell->getColumn() . $operand2Data['value'];
    +                                } elseif (trim($operand2Data['reference']) == '') {
    +                                    $operand2Data['reference'] = $pCell->getCoordinate();
    +                                } else {
    +                                    $operand2Data['reference'] = $operand2Data['value'] . $pCell->getRow();
    +                                }
    +                            }
    +
    +                            $oData = array_merge(explode(':', $operand1Data['reference']), explode(':', $operand2Data['reference']));
    +                            $oCol = $oRow = [];
    +                            foreach ($oData as $oDatum) {
    +                                $oCR = Coordinate::coordinateFromString($oDatum);
    +                                $oCol[] = Coordinate::columnIndexFromString($oCR[0]) - 1;
    +                                $oRow[] = $oCR[1];
    +                            }
    +                            $cellRef = Coordinate::stringFromColumnIndex(min($oCol) + 1) . min($oRow) . ':' . Coordinate::stringFromColumnIndex(max($oCol) + 1) . max($oRow);
    +                            if ($pCellParent !== null) {
    +                                $cellValue = $this->extractCellRange($cellRef, $this->spreadsheet->getSheetByName($sheet1), false);
    +                            } else {
    +                                return $this->raiseFormulaError('Unable to access Cell Reference');
    +                            }
    +                            $stack->push('Cell Reference', $cellValue, $cellRef);
    +                        } else {
    +                            $stack->push('Error', Functions::REF(), null);
    +                        }
    +
    +                        break;
    +                    case '+':            //    Addition
    +                        $this->executeNumericBinaryOperation($operand1, $operand2, $token, 'plusEquals', $stack);
    +
    +                        break;
    +                    case '-':            //    Subtraction
    +                        $this->executeNumericBinaryOperation($operand1, $operand2, $token, 'minusEquals', $stack);
    +
    +                        break;
    +                    case '*':            //    Multiplication
    +                        $this->executeNumericBinaryOperation($operand1, $operand2, $token, 'arrayTimesEquals', $stack);
    +
    +                        break;
    +                    case '/':            //    Division
    +                        $this->executeNumericBinaryOperation($operand1, $operand2, $token, 'arrayRightDivide', $stack);
    +
    +                        break;
    +                    case '^':            //    Exponential
    +                        $this->executeNumericBinaryOperation($operand1, $operand2, $token, 'power', $stack);
    +
    +                        break;
    +                    case '&':            //    Concatenation
    +                        //    If either of the operands is a matrix, we need to treat them both as matrices
    +                        //        (converting the other operand to a matrix if need be); then perform the required
    +                        //        matrix operation
    +                        if (is_bool($operand1)) {
    +                            $operand1 = ($operand1) ? self::$localeBoolean['TRUE'] : self::$localeBoolean['FALSE'];
    +                        }
    +                        if (is_bool($operand2)) {
    +                            $operand2 = ($operand2) ? self::$localeBoolean['TRUE'] : self::$localeBoolean['FALSE'];
    +                        }
    +                        if ((is_array($operand1)) || (is_array($operand2))) {
    +                            //    Ensure that both operands are arrays/matrices
    +                            self::checkMatrixOperands($operand1, $operand2, 2);
    +
    +                            try {
    +                                //    Convert operand 1 from a PHP array to a matrix
    +                                $matrix = new Shared\JAMA\Matrix($operand1);
    +                                //    Perform the required operation against the operand 1 matrix, passing in operand 2
    +                                $matrixResult = $matrix->concat($operand2);
    +                                $result = $matrixResult->getArray();
    +                            } catch (\Exception $ex) {
    +                                $this->debugLog->writeDebugLog('JAMA Matrix Exception: ', $ex->getMessage());
    +                                $result = '#VALUE!';
    +                            }
    +                        } else {
    +                            $result = '"' . str_replace('""', '"', self::unwrapResult($operand1) . self::unwrapResult($operand2)) . '"';
    +                        }
    +                        $this->debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($result));
    +                        $stack->push('Value', $result);
    +
    +                        break;
    +                    case '|':            //    Intersect
    +                        $rowIntersect = array_intersect_key($operand1, $operand2);
    +                        $cellIntersect = $oCol = $oRow = [];
    +                        foreach (array_keys($rowIntersect) as $row) {
    +                            $oRow[] = $row;
    +                            foreach ($rowIntersect[$row] as $col => $data) {
    +                                $oCol[] = Coordinate::columnIndexFromString($col) - 1;
    +                                $cellIntersect[$row] = array_intersect_key($operand1[$row], $operand2[$row]);
    +                            }
    +                        }
    +                        $cellRef = Coordinate::stringFromColumnIndex(min($oCol) + 1) . min($oRow) . ':' . Coordinate::stringFromColumnIndex(max($oCol) + 1) . max($oRow);
    +                        $this->debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($cellIntersect));
    +                        $stack->push('Value', $cellIntersect, $cellRef);
    +
    +                        break;
    +                }
    +
    +                // if the token is a unary operator, pop one value off the stack, do the operation, and push it back on
    +            } elseif (($token === '~') || ($token === '%')) {
    +                if (($arg = $stack->pop()) === null) {
    +                    return $this->raiseFormulaError('Internal error - Operand value missing from stack');
    +                }
    +                $arg = $arg['value'];
    +                if ($token === '~') {
    +                    $this->debugLog->writeDebugLog('Evaluating Negation of ', $this->showValue($arg));
    +                    $multiplier = -1;
    +                } else {
    +                    $this->debugLog->writeDebugLog('Evaluating Percentile of ', $this->showValue($arg));
    +                    $multiplier = 0.01;
    +                }
    +                if (is_array($arg)) {
    +                    self::checkMatrixOperands($arg, $multiplier, 2);
    +
    +                    try {
    +                        $matrix1 = new Shared\JAMA\Matrix($arg);
    +                        $matrixResult = $matrix1->arrayTimesEquals($multiplier);
    +                        $result = $matrixResult->getArray();
    +                    } catch (\Exception $ex) {
    +                        $this->debugLog->writeDebugLog('JAMA Matrix Exception: ', $ex->getMessage());
    +                        $result = '#VALUE!';
    +                    }
    +                    $this->debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($result));
    +                    $stack->push('Value', $result);
    +                } else {
    +                    $this->executeNumericBinaryOperation($multiplier, $arg, '*', 'arrayTimesEquals', $stack);
    +                }
    +            } elseif (preg_match('/^' . self::CALCULATION_REGEXP_CELLREF . '$/i', $token, $matches)) {
    +                $cellRef = null;
    +                if (isset($matches[8])) {
    +                    if ($pCell === null) {
    +                        //                        We can't access the range, so return a REF error
    +                        $cellValue = Functions::REF();
    +                    } else {
    +                        $cellRef = $matches[6] . $matches[7] . ':' . $matches[9] . $matches[10];
    +                        if ($matches[2] > '') {
    +                            $matches[2] = trim($matches[2], "\"'");
    +                            if ((strpos($matches[2], '[') !== false) || (strpos($matches[2], ']') !== false)) {
    +                                //    It's a Reference to an external spreadsheet (not currently supported)
    +                                return $this->raiseFormulaError('Unable to access External Workbook');
    +                            }
    +                            $matches[2] = trim($matches[2], "\"'");
    +                            $this->debugLog->writeDebugLog('Evaluating Cell Range ', $cellRef, ' in worksheet ', $matches[2]);
    +                            if ($pCellParent !== null) {
    +                                $cellValue = $this->extractCellRange($cellRef, $this->spreadsheet->getSheetByName($matches[2]), false);
    +                            } else {
    +                                return $this->raiseFormulaError('Unable to access Cell Reference');
    +                            }
    +                            $this->debugLog->writeDebugLog('Evaluation Result for cells ', $cellRef, ' in worksheet ', $matches[2], ' is ', $this->showTypeDetails($cellValue));
    +                        } else {
    +                            $this->debugLog->writeDebugLog('Evaluating Cell Range ', $cellRef, ' in current worksheet');
    +                            if ($pCellParent !== null) {
    +                                $cellValue = $this->extractCellRange($cellRef, $pCellWorksheet, false);
    +                            } else {
    +                                return $this->raiseFormulaError('Unable to access Cell Reference');
    +                            }
    +                            $this->debugLog->writeDebugLog('Evaluation Result for cells ', $cellRef, ' is ', $this->showTypeDetails($cellValue));
    +                        }
    +                    }
    +                } else {
    +                    if ($pCell === null) {
    +                        //                        We can't access the cell, so return a REF error
    +                        $cellValue = Functions::REF();
    +                    } else {
    +                        $cellRef = $matches[6] . $matches[7];
    +                        if ($matches[2] > '') {
    +                            $matches[2] = trim($matches[2], "\"'");
    +                            if ((strpos($matches[2], '[') !== false) || (strpos($matches[2], ']') !== false)) {
    +                                //    It's a Reference to an external spreadsheet (not currently supported)
    +                                return $this->raiseFormulaError('Unable to access External Workbook');
    +                            }
    +                            $this->debugLog->writeDebugLog('Evaluating Cell ', $cellRef, ' in worksheet ', $matches[2]);
    +                            if ($pCellParent !== null) {
    +                                $cellSheet = $this->spreadsheet->getSheetByName($matches[2]);
    +                                if ($cellSheet && $cellSheet->cellExists($cellRef)) {
    +                                    $cellValue = $this->extractCellRange($cellRef, $this->spreadsheet->getSheetByName($matches[2]), false);
    +                                    $pCell->attach($pCellParent);
    +                                } else {
    +                                    $cellValue = null;
    +                                }
    +                            } else {
    +                                return $this->raiseFormulaError('Unable to access Cell Reference');
    +                            }
    +                            $this->debugLog->writeDebugLog('Evaluation Result for cell ', $cellRef, ' in worksheet ', $matches[2], ' is ', $this->showTypeDetails($cellValue));
    +                        } else {
    +                            $this->debugLog->writeDebugLog('Evaluating Cell ', $cellRef, ' in current worksheet');
    +                            if ($pCellParent->has($cellRef)) {
    +                                $cellValue = $this->extractCellRange($cellRef, $pCellWorksheet, false);
    +                                $pCell->attach($pCellParent);
    +                            } else {
    +                                $cellValue = null;
    +                            }
    +                            $this->debugLog->writeDebugLog('Evaluation Result for cell ', $cellRef, ' is ', $this->showTypeDetails($cellValue));
    +                        }
    +                    }
    +                }
    +                $stack->push('Value', $cellValue, $cellRef);
    +
    +            // if the token is a function, pop arguments off the stack, hand them to the function, and push the result back on
    +            } elseif (preg_match('/^' . self::CALCULATION_REGEXP_FUNCTION . '$/i', $token, $matches)) {
    +                $functionName = $matches[1];
    +                $argCount = $stack->pop();
    +                $argCount = $argCount['value'];
    +                if ($functionName != 'MKMATRIX') {
    +                    $this->debugLog->writeDebugLog('Evaluating Function ', self::localeFunc($functionName), '() with ', (($argCount == 0) ? 'no' : $argCount), ' argument', (($argCount == 1) ? '' : 's'));
    +                }
    +                if ((isset(self::$phpSpreadsheetFunctions[$functionName])) || (isset(self::$controlFunctions[$functionName]))) {    // function
    +                    if (isset(self::$phpSpreadsheetFunctions[$functionName])) {
    +                        $functionCall = self::$phpSpreadsheetFunctions[$functionName]['functionCall'];
    +                        $passByReference = isset(self::$phpSpreadsheetFunctions[$functionName]['passByReference']);
    +                        $passCellReference = isset(self::$phpSpreadsheetFunctions[$functionName]['passCellReference']);
    +                    } elseif (isset(self::$controlFunctions[$functionName])) {
    +                        $functionCall = self::$controlFunctions[$functionName]['functionCall'];
    +                        $passByReference = isset(self::$controlFunctions[$functionName]['passByReference']);
    +                        $passCellReference = isset(self::$controlFunctions[$functionName]['passCellReference']);
    +                    }
    +                    // get the arguments for this function
    +                    $args = $argArrayVals = [];
    +                    for ($i = 0; $i < $argCount; ++$i) {
    +                        $arg = $stack->pop();
    +                        $a = $argCount - $i - 1;
    +                        if (($passByReference) &&
    +                            (isset(self::$phpSpreadsheetFunctions[$functionName]['passByReference'][$a])) &&
    +                            (self::$phpSpreadsheetFunctions[$functionName]['passByReference'][$a])) {
    +                            if ($arg['reference'] === null) {
    +                                $args[] = $cellID;
    +                                if ($functionName != 'MKMATRIX') {
    +                                    $argArrayVals[] = $this->showValue($cellID);
    +                                }
    +                            } else {
    +                                $args[] = $arg['reference'];
    +                                if ($functionName != 'MKMATRIX') {
    +                                    $argArrayVals[] = $this->showValue($arg['reference']);
    +                                }
    +                            }
    +                        } else {
    +                            $args[] = self::unwrapResult($arg['value']);
    +                            if ($functionName != 'MKMATRIX') {
    +                                $argArrayVals[] = $this->showValue($arg['value']);
    +                            }
    +                        }
    +                    }
    +                    //    Reverse the order of the arguments
    +                    krsort($args);
    +
    +                    if (($passByReference) && ($argCount == 0)) {
    +                        $args[] = $cellID;
    +                        $argArrayVals[] = $this->showValue($cellID);
    +                    }
    +
    +                    if ($functionName != 'MKMATRIX') {
    +                        if ($this->debugLog->getWriteDebugLog()) {
    +                            krsort($argArrayVals);
    +                            $this->debugLog->writeDebugLog('Evaluating ', self::localeFunc($functionName), '( ', implode(self::$localeArgumentSeparator . ' ', Functions::flattenArray($argArrayVals)), ' )');
    +                        }
    +                    }
    +
    +                    //    Process the argument with the appropriate function call
    +                    $args = $this->addCellReference($args, $passCellReference, $functionCall, $pCell);
    +
    +                    if (!is_array($functionCall)) {
    +                        foreach ($args as &$arg) {
    +                            $arg = Functions::flattenSingleValue($arg);
    +                        }
    +                        unset($arg);
    +                    }
    +                    $result = call_user_func_array($functionCall, $args);
    +
    +                    if ($functionName != 'MKMATRIX') {
    +                        $this->debugLog->writeDebugLog('Evaluation Result for ', self::localeFunc($functionName), '() function call is ', $this->showTypeDetails($result));
    +                    }
    +                    $stack->push('Value', self::wrapResult($result));
    +                }
    +            } else {
    +                // if the token is a number, boolean, string or an Excel error, push it onto the stack
    +                if (isset(self::$excelConstants[strtoupper($token)])) {
    +                    $excelConstant = strtoupper($token);
    +                    $stack->push('Constant Value', self::$excelConstants[$excelConstant]);
    +                    $this->debugLog->writeDebugLog('Evaluating Constant ', $excelConstant, ' as ', $this->showTypeDetails(self::$excelConstants[$excelConstant]));
    +                } elseif ((is_numeric($token)) || ($token === null) || (is_bool($token)) || ($token == '') || ($token[0] == '"') || ($token[0] == '#')) {
    +                    $stack->push('Value', $token);
    +                // if the token is a named range, push the named range name onto the stack
    +                } elseif (preg_match('/^' . self::CALCULATION_REGEXP_NAMEDRANGE . '$/i', $token, $matches)) {
    +                    $namedRange = $matches[6];
    +                    $this->debugLog->writeDebugLog('Evaluating Named Range ', $namedRange);
    +
    +                    $cellValue = $this->extractNamedRange($namedRange, ((null !== $pCell) ? $pCellWorksheet : null), false);
    +                    $pCell->attach($pCellParent);
    +                    $this->debugLog->writeDebugLog('Evaluation Result for named range ', $namedRange, ' is ', $this->showTypeDetails($cellValue));
    +                    $stack->push('Named Range', $cellValue, $namedRange);
    +                } else {
    +                    return $this->raiseFormulaError("undefined variable '$token'");
    +                }
    +            }
    +        }
    +        // when we're out of tokens, the stack should have a single element, the final result
    +        if ($stack->count() != 1) {
    +            return $this->raiseFormulaError('internal error');
    +        }
    +        $output = $stack->pop();
    +        $output = $output['value'];
    +
    +        return $output;
    +    }
    +
    +    private function validateBinaryOperand(&$operand, &$stack)
    +    {
    +        if (is_array($operand)) {
    +            if ((count($operand, COUNT_RECURSIVE) - count($operand)) == 1) {
    +                do {
    +                    $operand = array_pop($operand);
    +                } while (is_array($operand));
    +            }
    +        }
    +        //    Numbers, matrices and booleans can pass straight through, as they're already valid
    +        if (is_string($operand)) {
    +            //    We only need special validations for the operand if it is a string
    +            //    Start by stripping off the quotation marks we use to identify true excel string values internally
    +            if ($operand > '' && $operand[0] == '"') {
    +                $operand = self::unwrapResult($operand);
    +            }
    +            //    If the string is a numeric value, we treat it as a numeric, so no further testing
    +            if (!is_numeric($operand)) {
    +                //    If not a numeric, test to see if the value is an Excel error, and so can't be used in normal binary operations
    +                if ($operand > '' && $operand[0] == '#') {
    +                    $stack->push('Value', $operand);
    +                    $this->debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($operand));
    +
    +                    return false;
    +                } elseif (!Shared\StringHelper::convertToNumberIfFraction($operand)) {
    +                    //    If not a numeric or a fraction, then it's a text string, and so can't be used in mathematical binary operations
    +                    $stack->push('Value', '#VALUE!');
    +                    $this->debugLog->writeDebugLog('Evaluation Result is a ', $this->showTypeDetails('#VALUE!'));
    +
    +                    return false;
    +                }
    +            }
    +        }
    +
    +        //    return a true if the value of the operand is one that we can use in normal binary operations
    +        return true;
    +    }
    +
    +    /**
    +     * @param null|string $cellID
    +     * @param mixed $operand1
    +     * @param mixed $operand2
    +     * @param string $operation
    +     * @param Stack $stack
    +     * @param bool $recursingArrays
    +     *
    +     * @return bool
    +     */
    +    private function executeBinaryComparisonOperation($cellID, $operand1, $operand2, $operation, Stack &$stack, $recursingArrays = false)
    +    {
    +        //    If we're dealing with matrix operations, we want a matrix result
    +        if ((is_array($operand1)) || (is_array($operand2))) {
    +            $result = [];
    +            if ((is_array($operand1)) && (!is_array($operand2))) {
    +                foreach ($operand1 as $x => $operandData) {
    +                    $this->debugLog->writeDebugLog('Evaluating Comparison ', $this->showValue($operandData), ' ', $operation, ' ', $this->showValue($operand2));
    +                    $this->executeBinaryComparisonOperation($cellID, $operandData, $operand2, $operation, $stack);
    +                    $r = $stack->pop();
    +                    $result[$x] = $r['value'];
    +                }
    +            } elseif ((!is_array($operand1)) && (is_array($operand2))) {
    +                foreach ($operand2 as $x => $operandData) {
    +                    $this->debugLog->writeDebugLog('Evaluating Comparison ', $this->showValue($operand1), ' ', $operation, ' ', $this->showValue($operandData));
    +                    $this->executeBinaryComparisonOperation($cellID, $operand1, $operandData, $operation, $stack);
    +                    $r = $stack->pop();
    +                    $result[$x] = $r['value'];
    +                }
    +            } else {
    +                if (!$recursingArrays) {
    +                    self::checkMatrixOperands($operand1, $operand2, 2);
    +                }
    +                foreach ($operand1 as $x => $operandData) {
    +                    $this->debugLog->writeDebugLog('Evaluating Comparison ', $this->showValue($operandData), ' ', $operation, ' ', $this->showValue($operand2[$x]));
    +                    $this->executeBinaryComparisonOperation($cellID, $operandData, $operand2[$x], $operation, $stack, true);
    +                    $r = $stack->pop();
    +                    $result[$x] = $r['value'];
    +                }
    +            }
    +            //    Log the result details
    +            $this->debugLog->writeDebugLog('Comparison Evaluation Result is ', $this->showTypeDetails($result));
    +            //    And push the result onto the stack
    +            $stack->push('Array', $result);
    +
    +            return true;
    +        }
    +
    +        //    Simple validate the two operands if they are string values
    +        if (is_string($operand1) && $operand1 > '' && $operand1[0] == '"') {
    +            $operand1 = self::unwrapResult($operand1);
    +        }
    +        if (is_string($operand2) && $operand2 > '' && $operand2[0] == '"') {
    +            $operand2 = self::unwrapResult($operand2);
    +        }
    +
    +        // Use case insensitive comparaison if not OpenOffice mode
    +        if (Functions::getCompatibilityMode() != Functions::COMPATIBILITY_OPENOFFICE) {
    +            if (is_string($operand1)) {
    +                $operand1 = strtoupper($operand1);
    +            }
    +            if (is_string($operand2)) {
    +                $operand2 = strtoupper($operand2);
    +            }
    +        }
    +
    +        $useLowercaseFirstComparison = is_string($operand1) && is_string($operand2) && Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE;
    +
    +        //    execute the necessary operation
    +        switch ($operation) {
    +            //    Greater than
    +            case '>':
    +                if ($useLowercaseFirstComparison) {
    +                    $result = $this->strcmpLowercaseFirst($operand1, $operand2) > 0;
    +                } else {
    +                    $result = ($operand1 > $operand2);
    +                }
    +
    +                break;
    +            //    Less than
    +            case '<':
    +                if ($useLowercaseFirstComparison) {
    +                    $result = $this->strcmpLowercaseFirst($operand1, $operand2) < 0;
    +                } else {
    +                    $result = ($operand1 < $operand2);
    +                }
    +
    +                break;
    +            //    Equality
    +            case '=':
    +                if (is_numeric($operand1) && is_numeric($operand2)) {
    +                    $result = (abs($operand1 - $operand2) < $this->delta);
    +                } else {
    +                    $result = strcmp($operand1, $operand2) == 0;
    +                }
    +
    +                break;
    +            //    Greater than or equal
    +            case '>=':
    +                if (is_numeric($operand1) && is_numeric($operand2)) {
    +                    $result = ((abs($operand1 - $operand2) < $this->delta) || ($operand1 > $operand2));
    +                } elseif ($useLowercaseFirstComparison) {
    +                    $result = $this->strcmpLowercaseFirst($operand1, $operand2) >= 0;
    +                } else {
    +                    $result = strcmp($operand1, $operand2) >= 0;
    +                }
    +
    +                break;
    +            //    Less than or equal
    +            case '<=':
    +                if (is_numeric($operand1) && is_numeric($operand2)) {
    +                    $result = ((abs($operand1 - $operand2) < $this->delta) || ($operand1 < $operand2));
    +                } elseif ($useLowercaseFirstComparison) {
    +                    $result = $this->strcmpLowercaseFirst($operand1, $operand2) <= 0;
    +                } else {
    +                    $result = strcmp($operand1, $operand2) <= 0;
    +                }
    +
    +                break;
    +            //    Inequality
    +            case '<>':
    +                if (is_numeric($operand1) && is_numeric($operand2)) {
    +                    $result = (abs($operand1 - $operand2) > 1E-14);
    +                } else {
    +                    $result = strcmp($operand1, $operand2) != 0;
    +                }
    +
    +                break;
    +        }
    +
    +        //    Log the result details
    +        $this->debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($result));
    +        //    And push the result onto the stack
    +        $stack->push('Value', $result);
    +
    +        return true;
    +    }
    +
    +    /**
    +     * Compare two strings in the same way as strcmp() except that lowercase come before uppercase letters.
    +     *
    +     * @param string $str1 First string value for the comparison
    +     * @param string $str2 Second string value for the comparison
    +     *
    +     * @return int
    +     */
    +    private function strcmpLowercaseFirst($str1, $str2)
    +    {
    +        $inversedStr1 = Shared\StringHelper::strCaseReverse($str1);
    +        $inversedStr2 = Shared\StringHelper::strCaseReverse($str2);
    +
    +        return strcmp($inversedStr1, $inversedStr2);
    +    }
    +
    +    /**
    +     * @param mixed $operand1
    +     * @param mixed $operand2
    +     * @param mixed $operation
    +     * @param string $matrixFunction
    +     * @param mixed $stack
    +     *
    +     * @return bool
    +     */
    +    private function executeNumericBinaryOperation($operand1, $operand2, $operation, $matrixFunction, &$stack)
    +    {
    +        //    Validate the two operands
    +        if (!$this->validateBinaryOperand($operand1, $stack)) {
    +            return false;
    +        }
    +        if (!$this->validateBinaryOperand($operand2, $stack)) {
    +            return false;
    +        }
    +
    +        //    If either of the operands is a matrix, we need to treat them both as matrices
    +        //        (converting the other operand to a matrix if need be); then perform the required
    +        //        matrix operation
    +        if ((is_array($operand1)) || (is_array($operand2))) {
    +            //    Ensure that both operands are arrays/matrices of the same size
    +            self::checkMatrixOperands($operand1, $operand2, 2);
    +
    +            try {
    +                //    Convert operand 1 from a PHP array to a matrix
    +                $matrix = new Shared\JAMA\Matrix($operand1);
    +                //    Perform the required operation against the operand 1 matrix, passing in operand 2
    +                $matrixResult = $matrix->$matrixFunction($operand2);
    +                $result = $matrixResult->getArray();
    +            } catch (\Exception $ex) {
    +                $this->debugLog->writeDebugLog('JAMA Matrix Exception: ', $ex->getMessage());
    +                $result = '#VALUE!';
    +            }
    +        } else {
    +            if ((Functions::getCompatibilityMode() != Functions::COMPATIBILITY_OPENOFFICE) &&
    +                ((is_string($operand1) && !is_numeric($operand1) && strlen($operand1) > 0) ||
    +                 (is_string($operand2) && !is_numeric($operand2) && strlen($operand2) > 0))) {
    +                $result = Functions::VALUE();
    +            } else {
    +                //    If we're dealing with non-matrix operations, execute the necessary operation
    +                switch ($operation) {
    +                    //    Addition
    +                    case '+':
    +                        $result = $operand1 + $operand2;
    +
    +                        break;
    +                    //    Subtraction
    +                    case '-':
    +                        $result = $operand1 - $operand2;
    +
    +                        break;
    +                    //    Multiplication
    +                    case '*':
    +                        $result = $operand1 * $operand2;
    +
    +                        break;
    +                    //    Division
    +                    case '/':
    +                        if ($operand2 == 0) {
    +                            //    Trap for Divide by Zero error
    +                            $stack->push('Value', '#DIV/0!');
    +                            $this->debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails('#DIV/0!'));
    +
    +                            return false;
    +                        }
    +                            $result = $operand1 / $operand2;
    +
    +                        break;
    +                    //    Power
    +                    case '^':
    +                        $result = pow($operand1, $operand2);
    +
    +                        break;
    +                }
    +            }
    +        }
    +
    +        //    Log the result details
    +        $this->debugLog->writeDebugLog('Evaluation Result is ', $this->showTypeDetails($result));
    +        //    And push the result onto the stack
    +        $stack->push('Value', $result);
    +
    +        return true;
    +    }
    +
    +    // trigger an error, but nicely, if need be
    +    protected function raiseFormulaError($errorMessage)
    +    {
    +        $this->formulaError = $errorMessage;
    +        $this->cyclicReferenceStack->clear();
    +        if (!$this->suppressFormulaErrors) {
    +            throw new Exception($errorMessage);
    +        }
    +        trigger_error($errorMessage, E_USER_ERROR);
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Extract range values.
    +     *
    +     * @param string &$pRange String based range representation
    +     * @param Worksheet $pSheet Worksheet
    +     * @param bool $resetLog Flag indicating whether calculation log should be reset or not
    +     *
    +     * @return mixed Array of values in range if range contains more than one element. Otherwise, a single value is returned.
    +     */
    +    public function extractCellRange(&$pRange = 'A1', Worksheet $pSheet = null, $resetLog = true)
    +    {
    +        // Return value
    +        $returnValue = [];
    +
    +        if ($pSheet !== null) {
    +            $pSheetName = $pSheet->getTitle();
    +            if (strpos($pRange, '!') !== false) {
    +                list($pSheetName, $pRange) = Worksheet::extractSheetTitle($pRange, true);
    +                $pSheet = $this->spreadsheet->getSheetByName($pSheetName);
    +            }
    +
    +            // Extract range
    +            $aReferences = Coordinate::extractAllCellReferencesInRange($pRange);
    +            $pRange = $pSheetName . '!' . $pRange;
    +            if (!isset($aReferences[1])) {
    +                $currentCol = '';
    +                $currentRow = 0;
    +                //    Single cell in range
    +                sscanf($aReferences[0], '%[A-Z]%d', $currentCol, $currentRow);
    +                if ($pSheet->cellExists($aReferences[0])) {
    +                    $returnValue[$currentRow][$currentCol] = $pSheet->getCell($aReferences[0])->getCalculatedValue($resetLog);
    +                } else {
    +                    $returnValue[$currentRow][$currentCol] = null;
    +                }
    +            } else {
    +                // Extract cell data for all cells in the range
    +                foreach ($aReferences as $reference) {
    +                    $currentCol = '';
    +                    $currentRow = 0;
    +                    // Extract range
    +                    sscanf($reference, '%[A-Z]%d', $currentCol, $currentRow);
    +                    if ($pSheet->cellExists($reference)) {
    +                        $returnValue[$currentRow][$currentCol] = $pSheet->getCell($reference)->getCalculatedValue($resetLog);
    +                    } else {
    +                        $returnValue[$currentRow][$currentCol] = null;
    +                    }
    +                }
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * Extract range values.
    +     *
    +     * @param string &$pRange String based range representation
    +     * @param Worksheet $pSheet Worksheet
    +     * @param bool $resetLog Flag indicating whether calculation log should be reset or not
    +     *
    +     * @return mixed Array of values in range if range contains more than one element. Otherwise, a single value is returned.
    +     */
    +    public function extractNamedRange(&$pRange = 'A1', Worksheet $pSheet = null, $resetLog = true)
    +    {
    +        // Return value
    +        $returnValue = [];
    +
    +        if ($pSheet !== null) {
    +            $pSheetName = $pSheet->getTitle();
    +            if (strpos($pRange, '!') !== false) {
    +                list($pSheetName, $pRange) = Worksheet::extractSheetTitle($pRange, true);
    +                $pSheet = $this->spreadsheet->getSheetByName($pSheetName);
    +            }
    +
    +            // Named range?
    +            $namedRange = NamedRange::resolveRange($pRange, $pSheet);
    +            if ($namedRange !== null) {
    +                $pSheet = $namedRange->getWorksheet();
    +                $pRange = $namedRange->getRange();
    +                $splitRange = Coordinate::splitRange($pRange);
    +                //    Convert row and column references
    +                if (ctype_alpha($splitRange[0][0])) {
    +                    $pRange = $splitRange[0][0] . '1:' . $splitRange[0][1] . $namedRange->getWorksheet()->getHighestRow();
    +                } elseif (ctype_digit($splitRange[0][0])) {
    +                    $pRange = 'A' . $splitRange[0][0] . ':' . $namedRange->getWorksheet()->getHighestColumn() . $splitRange[0][1];
    +                }
    +            } else {
    +                return Functions::REF();
    +            }
    +
    +            // Extract range
    +            $aReferences = Coordinate::extractAllCellReferencesInRange($pRange);
    +            if (!isset($aReferences[1])) {
    +                //    Single cell (or single column or row) in range
    +                list($currentCol, $currentRow) = Coordinate::coordinateFromString($aReferences[0]);
    +                if ($pSheet->cellExists($aReferences[0])) {
    +                    $returnValue[$currentRow][$currentCol] = $pSheet->getCell($aReferences[0])->getCalculatedValue($resetLog);
    +                } else {
    +                    $returnValue[$currentRow][$currentCol] = null;
    +                }
    +            } else {
    +                // Extract cell data for all cells in the range
    +                foreach ($aReferences as $reference) {
    +                    // Extract range
    +                    list($currentCol, $currentRow) = Coordinate::coordinateFromString($reference);
    +                    if ($pSheet->cellExists($reference)) {
    +                        $returnValue[$currentRow][$currentCol] = $pSheet->getCell($reference)->getCalculatedValue($resetLog);
    +                    } else {
    +                        $returnValue[$currentRow][$currentCol] = null;
    +                    }
    +                }
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * Is a specific function implemented?
    +     *
    +     * @param string $pFunction Function Name
    +     *
    +     * @return bool
    +     */
    +    public function isImplemented($pFunction)
    +    {
    +        $pFunction = strtoupper($pFunction);
    +        $notImplemented = !isset(self::$phpSpreadsheetFunctions[$pFunction]) || (is_array(self::$phpSpreadsheetFunctions[$pFunction]['functionCall']) && self::$phpSpreadsheetFunctions[$pFunction]['functionCall'][1] === 'DUMMY');
    +
    +        return !$notImplemented;
    +    }
    +
    +    /**
    +     * Get a list of all implemented functions as an array of function objects.
    +     *
    +     * @return array of Category
    +     */
    +    public function getFunctions()
    +    {
    +        return self::$phpSpreadsheetFunctions;
    +    }
    +
    +    /**
    +     * Get a list of implemented Excel function names.
    +     *
    +     * @return array
    +     */
    +    public function getImplementedFunctionNames()
    +    {
    +        $returnValue = [];
    +        foreach (self::$phpSpreadsheetFunctions as $functionName => $function) {
    +            if ($this->isImplemented($functionName)) {
    +                $returnValue[] = $functionName;
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * Add cell reference if needed while making sure that it is the last argument.
    +     *
    +     * @param array $args
    +     * @param bool $passCellReference
    +     * @param array|string $functionCall
    +     * @param null|Cell $pCell
    +     *
    +     * @return array
    +     */
    +    private function addCellReference(array $args, $passCellReference, $functionCall, Cell $pCell = null)
    +    {
    +        if ($passCellReference) {
    +            if (is_array($functionCall)) {
    +                $className = $functionCall[0];
    +                $methodName = $functionCall[1];
    +
    +                $reflectionMethod = new \ReflectionMethod($className, $methodName);
    +                $argumentCount = count($reflectionMethod->getParameters());
    +                while (count($args) < $argumentCount - 1) {
    +                    $args[] = null;
    +                }
    +            }
    +
    +            $args[] = $pCell;
    +        }
    +
    +        return $args;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Category.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Category.php
    new file mode 100644
    index 00000000000..7574cb4766a
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Category.php
    @@ -0,0 +1,19 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +abstract class Category
    +{
    +    // Function categories
    +    const CATEGORY_CUBE = 'Cube';
    +    const CATEGORY_DATABASE = 'Database';
    +    const CATEGORY_DATE_AND_TIME = 'Date and Time';
    +    const CATEGORY_ENGINEERING = 'Engineering';
    +    const CATEGORY_FINANCIAL = 'Financial';
    +    const CATEGORY_INFORMATION = 'Information';
    +    const CATEGORY_LOGICAL = 'Logical';
    +    const CATEGORY_LOOKUP_AND_REFERENCE = 'Lookup and Reference';
    +    const CATEGORY_MATH_AND_TRIG = 'Math and Trig';
    +    const CATEGORY_STATISTICAL = 'Statistical';
    +    const CATEGORY_TEXT_AND_DATA = 'Text and Data';
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Database.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Database.php
    new file mode 100644
    index 00000000000..f6d9d8bb4bf
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Database.php
    @@ -0,0 +1,632 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +class Database
    +{
    +    /**
    +     * fieldExtract.
    +     *
    +     * Extracts the column ID to use for the data field.
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param mixed $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     *
    +     * @return null|string
    +     */
    +    private static function fieldExtract($database, $field)
    +    {
    +        $field = strtoupper(Functions::flattenSingleValue($field));
    +        $fieldNames = array_map('strtoupper', array_shift($database));
    +
    +        if (is_numeric($field)) {
    +            $keys = array_keys($fieldNames);
    +
    +            return $keys[$field - 1];
    +        }
    +        $key = array_search($field, $fieldNames);
    +
    +        return ($key) ? $key : null;
    +    }
    +
    +    /**
    +     * filter.
    +     *
    +     * Parses the selection criteria, extracts the database rows that match those criteria, and
    +     * returns that subset of rows.
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return array of mixed
    +     */
    +    private static function filter($database, $criteria)
    +    {
    +        $fieldNames = array_shift($database);
    +        $criteriaNames = array_shift($criteria);
    +
    +        //    Convert the criteria into a set of AND/OR conditions with [:placeholders]
    +        $testConditions = $testValues = [];
    +        $testConditionsCount = 0;
    +        foreach ($criteriaNames as $key => $criteriaName) {
    +            $testCondition = [];
    +            $testConditionCount = 0;
    +            foreach ($criteria as $row => $criterion) {
    +                if ($criterion[$key] > '') {
    +                    $testCondition[] = '[:' . $criteriaName . ']' . Functions::ifCondition($criterion[$key]);
    +                    ++$testConditionCount;
    +                }
    +            }
    +            if ($testConditionCount > 1) {
    +                $testConditions[] = 'OR(' . implode(',', $testCondition) . ')';
    +                ++$testConditionsCount;
    +            } elseif ($testConditionCount == 1) {
    +                $testConditions[] = $testCondition[0];
    +                ++$testConditionsCount;
    +            }
    +        }
    +
    +        if ($testConditionsCount > 1) {
    +            $testConditionSet = 'AND(' . implode(',', $testConditions) . ')';
    +        } elseif ($testConditionsCount == 1) {
    +            $testConditionSet = $testConditions[0];
    +        }
    +
    +        //    Loop through each row of the database
    +        foreach ($database as $dataRow => $dataValues) {
    +            //    Substitute actual values from the database row for our [:placeholders]
    +            $testConditionList = $testConditionSet;
    +            foreach ($criteriaNames as $key => $criteriaName) {
    +                $k = array_search($criteriaName, $fieldNames);
    +                if (isset($dataValues[$k])) {
    +                    $dataValue = $dataValues[$k];
    +                    $dataValue = (is_string($dataValue)) ? Calculation::wrapResult(strtoupper($dataValue)) : $dataValue;
    +                    $testConditionList = str_replace('[:' . $criteriaName . ']', $dataValue, $testConditionList);
    +                }
    +            }
    +            //    evaluate the criteria against the row data
    +            $result = Calculation::getInstance()->_calculateFormulaValue('=' . $testConditionList);
    +            //    If the row failed to meet the criteria, remove it from the database
    +            if (!$result) {
    +                unset($database[$dataRow]);
    +            }
    +        }
    +
    +        return $database;
    +    }
    +
    +    private static function getFilteredColumn($database, $field, $criteria)
    +    {
    +        //    reduce the database to a set of rows that match all the criteria
    +        $database = self::filter($database, $criteria);
    +        //    extract an array of values for the requested column
    +        $colData = [];
    +        foreach ($database as $row) {
    +            $colData[] = $row[$field];
    +        }
    +
    +        return $colData;
    +    }
    +
    +    /**
    +     * DAVERAGE.
    +     *
    +     * Averages the values in a column of a list or database that match conditions you specify.
    +     *
    +     * Excel Function:
    +     *        DAVERAGE(database,field,criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return float
    +     */
    +    public static function DAVERAGE($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        // Return
    +        return Statistical::AVERAGE(
    +            self::getFilteredColumn($database, $field, $criteria)
    +        );
    +    }
    +
    +    /**
    +     * DCOUNT.
    +     *
    +     * Counts the cells that contain numbers in a column of a list or database that match conditions
    +     * that you specify.
    +     *
    +     * Excel Function:
    +     *        DCOUNT(database,[field],criteria)
    +     *
    +     * Excel Function:
    +     *        DAVERAGE(database,field,criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return int
    +     *
    +     * @TODO    The field argument is optional. If field is omitted, DCOUNT counts all records in the
    +     *            database that match the criteria.
    +     */
    +    public static function DCOUNT($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        // Return
    +        return Statistical::COUNT(
    +            self::getFilteredColumn($database, $field, $criteria)
    +        );
    +    }
    +
    +    /**
    +     * DCOUNTA.
    +     *
    +     * Counts the nonblank cells in a column of a list or database that match conditions that you specify.
    +     *
    +     * Excel Function:
    +     *        DCOUNTA(database,[field],criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return int
    +     *
    +     * @TODO    The field argument is optional. If field is omitted, DCOUNTA counts all records in the
    +     *            database that match the criteria.
    +     */
    +    public static function DCOUNTA($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        //    reduce the database to a set of rows that match all the criteria
    +        $database = self::filter($database, $criteria);
    +        //    extract an array of values for the requested column
    +        $colData = [];
    +        foreach ($database as $row) {
    +            $colData[] = $row[$field];
    +        }
    +
    +        // Return
    +        return Statistical::COUNTA(
    +            self::getFilteredColumn($database, $field, $criteria)
    +        );
    +    }
    +
    +    /**
    +     * DGET.
    +     *
    +     * Extracts a single value from a column of a list or database that matches conditions that you
    +     * specify.
    +     *
    +     * Excel Function:
    +     *        DGET(database,field,criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return mixed
    +     */
    +    public static function DGET($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        // Return
    +        $colData = self::getFilteredColumn($database, $field, $criteria);
    +        if (count($colData) > 1) {
    +            return Functions::NAN();
    +        }
    +
    +        return $colData[0];
    +    }
    +
    +    /**
    +     * DMAX.
    +     *
    +     * Returns the largest number in a column of a list or database that matches conditions you that
    +     * specify.
    +     *
    +     * Excel Function:
    +     *        DMAX(database,field,criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return float
    +     */
    +    public static function DMAX($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        // Return
    +        return Statistical::MAX(
    +            self::getFilteredColumn($database, $field, $criteria)
    +        );
    +    }
    +
    +    /**
    +     * DMIN.
    +     *
    +     * Returns the smallest number in a column of a list or database that matches conditions you that
    +     * specify.
    +     *
    +     * Excel Function:
    +     *        DMIN(database,field,criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return float
    +     */
    +    public static function DMIN($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        // Return
    +        return Statistical::MIN(
    +            self::getFilteredColumn($database, $field, $criteria)
    +        );
    +    }
    +
    +    /**
    +     * DPRODUCT.
    +     *
    +     * Multiplies the values in a column of a list or database that match conditions that you specify.
    +     *
    +     * Excel Function:
    +     *        DPRODUCT(database,field,criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return float
    +     */
    +    public static function DPRODUCT($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        // Return
    +        return MathTrig::PRODUCT(
    +            self::getFilteredColumn($database, $field, $criteria)
    +        );
    +    }
    +
    +    /**
    +     * DSTDEV.
    +     *
    +     * Estimates the standard deviation of a population based on a sample by using the numbers in a
    +     * column of a list or database that match conditions that you specify.
    +     *
    +     * Excel Function:
    +     *        DSTDEV(database,field,criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return float
    +     */
    +    public static function DSTDEV($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        // Return
    +        return Statistical::STDEV(
    +            self::getFilteredColumn($database, $field, $criteria)
    +        );
    +    }
    +
    +    /**
    +     * DSTDEVP.
    +     *
    +     * Calculates the standard deviation of a population based on the entire population by using the
    +     * numbers in a column of a list or database that match conditions that you specify.
    +     *
    +     * Excel Function:
    +     *        DSTDEVP(database,field,criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return float
    +     */
    +    public static function DSTDEVP($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        // Return
    +        return Statistical::STDEVP(
    +            self::getFilteredColumn($database, $field, $criteria)
    +        );
    +    }
    +
    +    /**
    +     * DSUM.
    +     *
    +     * Adds the numbers in a column of a list or database that match conditions that you specify.
    +     *
    +     * Excel Function:
    +     *        DSUM(database,field,criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return float
    +     */
    +    public static function DSUM($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        // Return
    +        return MathTrig::SUM(
    +            self::getFilteredColumn($database, $field, $criteria)
    +        );
    +    }
    +
    +    /**
    +     * DVAR.
    +     *
    +     * Estimates the variance of a population based on a sample by using the numbers in a column
    +     * of a list or database that match conditions that you specify.
    +     *
    +     * Excel Function:
    +     *        DVAR(database,field,criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return float
    +     */
    +    public static function DVAR($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        // Return
    +        return Statistical::VARFunc(
    +            self::getFilteredColumn($database, $field, $criteria)
    +        );
    +    }
    +
    +    /**
    +     * DVARP.
    +     *
    +     * Calculates the variance of a population based on the entire population by using the numbers
    +     * in a column of a list or database that match conditions that you specify.
    +     *
    +     * Excel Function:
    +     *        DVARP(database,field,criteria)
    +     *
    +     * @category Database Functions
    +     *
    +     * @param mixed[] $database The range of cells that makes up the list or database.
    +     *                                        A database is a list of related data in which rows of related
    +     *                                        information are records, and columns of data are fields. The
    +     *                                        first row of the list contains labels for each column.
    +     * @param int|string $field Indicates which column is used in the function. Enter the
    +     *                                        column label enclosed between double quotation marks, such as
    +     *                                        "Age" or "Yield," or a number (without quotation marks) that
    +     *                                        represents the position of the column within the list: 1 for
    +     *                                        the first column, 2 for the second column, and so on.
    +     * @param mixed[] $criteria The range of cells that contains the conditions you specify.
    +     *                                        You can use any range for the criteria argument, as long as it
    +     *                                        includes at least one column label and at least one cell below
    +     *                                        the column label in which you specify a condition for the
    +     *                                        column.
    +     *
    +     * @return float
    +     */
    +    public static function DVARP($database, $field, $criteria)
    +    {
    +        $field = self::fieldExtract($database, $field);
    +        if ($field === null) {
    +            return null;
    +        }
    +
    +        // Return
    +        return Statistical::VARP(
    +            self::getFilteredColumn($database, $field, $criteria)
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/DateTime.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/DateTime.php
    new file mode 100644
    index 00000000000..3c39db2af7f
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/DateTime.php
    @@ -0,0 +1,1649 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +
    +class DateTime
    +{
    +    /**
    +     * Identify if a year is a leap year or not.
    +     *
    +     * @param int|string $year The year to test
    +     *
    +     * @return bool TRUE if the year is a leap year, otherwise FALSE
    +     */
    +    public static function isLeapYear($year)
    +    {
    +        return (($year % 4) == 0) && (($year % 100) != 0) || (($year % 400) == 0);
    +    }
    +
    +    /**
    +     * Return the number of days between two dates based on a 360 day calendar.
    +     *
    +     * @param int $startDay Day of month of the start date
    +     * @param int $startMonth Month of the start date
    +     * @param int $startYear Year of the start date
    +     * @param int $endDay Day of month of the start date
    +     * @param int $endMonth Month of the start date
    +     * @param int $endYear Year of the start date
    +     * @param bool $methodUS Whether to use the US method or the European method of calculation
    +     *
    +     * @return int Number of days between the start date and the end date
    +     */
    +    private static function dateDiff360($startDay, $startMonth, $startYear, $endDay, $endMonth, $endYear, $methodUS)
    +    {
    +        if ($startDay == 31) {
    +            --$startDay;
    +        } elseif ($methodUS && ($startMonth == 2 && ($startDay == 29 || ($startDay == 28 && !self::isLeapYear($startYear))))) {
    +            $startDay = 30;
    +        }
    +        if ($endDay == 31) {
    +            if ($methodUS && $startDay != 30) {
    +                $endDay = 1;
    +                if ($endMonth == 12) {
    +                    ++$endYear;
    +                    $endMonth = 1;
    +                } else {
    +                    ++$endMonth;
    +                }
    +            } else {
    +                $endDay = 30;
    +            }
    +        }
    +
    +        return $endDay + $endMonth * 30 + $endYear * 360 - $startDay - $startMonth * 30 - $startYear * 360;
    +    }
    +
    +    /**
    +     * getDateValue.
    +     *
    +     * @param string $dateValue
    +     *
    +     * @return mixed Excel date/time serial value, or string if error
    +     */
    +    public static function getDateValue($dateValue)
    +    {
    +        if (!is_numeric($dateValue)) {
    +            if ((is_string($dateValue)) &&
    +                (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC)) {
    +                return Functions::VALUE();
    +            }
    +            if ((is_object($dateValue)) && ($dateValue instanceof \DateTimeInterface)) {
    +                $dateValue = Date::PHPToExcel($dateValue);
    +            } else {
    +                $saveReturnDateType = Functions::getReturnDateType();
    +                Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
    +                $dateValue = self::DATEVALUE($dateValue);
    +                Functions::setReturnDateType($saveReturnDateType);
    +            }
    +        }
    +
    +        return $dateValue;
    +    }
    +
    +    /**
    +     * getTimeValue.
    +     *
    +     * @param string $timeValue
    +     *
    +     * @return mixed Excel date/time serial value, or string if error
    +     */
    +    private static function getTimeValue($timeValue)
    +    {
    +        $saveReturnDateType = Functions::getReturnDateType();
    +        Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
    +        $timeValue = self::TIMEVALUE($timeValue);
    +        Functions::setReturnDateType($saveReturnDateType);
    +
    +        return $timeValue;
    +    }
    +
    +    private static function adjustDateByMonths($dateValue = 0, $adjustmentMonths = 0)
    +    {
    +        // Execute function
    +        $PHPDateObject = Date::excelToDateTimeObject($dateValue);
    +        $oMonth = (int) $PHPDateObject->format('m');
    +        $oYear = (int) $PHPDateObject->format('Y');
    +
    +        $adjustmentMonthsString = (string) $adjustmentMonths;
    +        if ($adjustmentMonths > 0) {
    +            $adjustmentMonthsString = '+' . $adjustmentMonths;
    +        }
    +        if ($adjustmentMonths != 0) {
    +            $PHPDateObject->modify($adjustmentMonthsString . ' months');
    +        }
    +        $nMonth = (int) $PHPDateObject->format('m');
    +        $nYear = (int) $PHPDateObject->format('Y');
    +
    +        $monthDiff = ($nMonth - $oMonth) + (($nYear - $oYear) * 12);
    +        if ($monthDiff != $adjustmentMonths) {
    +            $adjustDays = (int) $PHPDateObject->format('d');
    +            $adjustDaysString = '-' . $adjustDays . ' days';
    +            $PHPDateObject->modify($adjustDaysString);
    +        }
    +
    +        return $PHPDateObject;
    +    }
    +
    +    /**
    +     * DATETIMENOW.
    +     *
    +     * Returns the current date and time.
    +     * The NOW function is useful when you need to display the current date and time on a worksheet or
    +     * calculate a value based on the current date and time, and have that value updated each time you
    +     * open the worksheet.
    +     *
    +     * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date
    +     * and time format of your regional settings. PhpSpreadsheet does not change cell formatting in this way.
    +     *
    +     * Excel Function:
    +     *        NOW()
    +     *
    +     * @category Date/Time Functions
    +     *
    +     * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object,
    +     *                        depending on the value of the ReturnDateType flag
    +     */
    +    public static function DATETIMENOW()
    +    {
    +        $saveTimeZone = date_default_timezone_get();
    +        date_default_timezone_set('UTC');
    +        $retValue = false;
    +        switch (Functions::getReturnDateType()) {
    +            case Functions::RETURNDATE_EXCEL:
    +                $retValue = (float) Date::PHPToExcel(time());
    +
    +                break;
    +            case Functions::RETURNDATE_PHP_NUMERIC:
    +                $retValue = (int) time();
    +
    +                break;
    +            case Functions::RETURNDATE_PHP_OBJECT:
    +                $retValue = new \DateTime();
    +
    +                break;
    +        }
    +        date_default_timezone_set($saveTimeZone);
    +
    +        return $retValue;
    +    }
    +
    +    /**
    +     * DATENOW.
    +     *
    +     * Returns the current date.
    +     * The NOW function is useful when you need to display the current date and time on a worksheet or
    +     * calculate a value based on the current date and time, and have that value updated each time you
    +     * open the worksheet.
    +     *
    +     * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date
    +     * and time format of your regional settings. PhpSpreadsheet does not change cell formatting in this way.
    +     *
    +     * Excel Function:
    +     *        TODAY()
    +     *
    +     * @category Date/Time Functions
    +     *
    +     * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object,
    +     *                        depending on the value of the ReturnDateType flag
    +     */
    +    public static function DATENOW()
    +    {
    +        $saveTimeZone = date_default_timezone_get();
    +        date_default_timezone_set('UTC');
    +        $retValue = false;
    +        $excelDateTime = floor(Date::PHPToExcel(time()));
    +        switch (Functions::getReturnDateType()) {
    +            case Functions::RETURNDATE_EXCEL:
    +                $retValue = (float) $excelDateTime;
    +
    +                break;
    +            case Functions::RETURNDATE_PHP_NUMERIC:
    +                $retValue = (int) Date::excelToTimestamp($excelDateTime);
    +
    +                break;
    +            case Functions::RETURNDATE_PHP_OBJECT:
    +                $retValue = Date::excelToDateTimeObject($excelDateTime);
    +
    +                break;
    +        }
    +        date_default_timezone_set($saveTimeZone);
    +
    +        return $retValue;
    +    }
    +
    +    /**
    +     * DATE.
    +     *
    +     * The DATE function returns a value that represents a particular date.
    +     *
    +     * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date
    +     * format of your regional settings. PhpSpreadsheet does not change cell formatting in this way.
    +     *
    +     * Excel Function:
    +     *        DATE(year,month,day)
    +     *
    +     * PhpSpreadsheet is a lot more forgiving than MS Excel when passing non numeric values to this function.
    +     * A Month name or abbreviation (English only at this point) such as 'January' or 'Jan' will still be accepted,
    +     *     as will a day value with a suffix (e.g. '21st' rather than simply 21); again only English language.
    +     *
    +     * @category Date/Time Functions
    +     *
    +     * @param int $year The value of the year argument can include one to four digits.
    +     *                                Excel interprets the year argument according to the configured
    +     *                                date system: 1900 or 1904.
    +     *                                If year is between 0 (zero) and 1899 (inclusive), Excel adds that
    +     *                                value to 1900 to calculate the year. For example, DATE(108,1,2)
    +     *                                returns January 2, 2008 (1900+108).
    +     *                                If year is between 1900 and 9999 (inclusive), Excel uses that
    +     *                                value as the year. For example, DATE(2008,1,2) returns January 2,
    +     *                                2008.
    +     *                                If year is less than 0 or is 10000 or greater, Excel returns the
    +     *                                #NUM! error value.
    +     * @param int $month A positive or negative integer representing the month of the year
    +     *                                from 1 to 12 (January to December).
    +     *                                If month is greater than 12, month adds that number of months to
    +     *                                the first month in the year specified. For example, DATE(2008,14,2)
    +     *                                returns the serial number representing February 2, 2009.
    +     *                                If month is less than 1, month subtracts the magnitude of that
    +     *                                number of months, plus 1, from the first month in the year
    +     *                                specified. For example, DATE(2008,-3,2) returns the serial number
    +     *                                representing September 2, 2007.
    +     * @param int $day A positive or negative integer representing the day of the month
    +     *                                from 1 to 31.
    +     *                                If day is greater than the number of days in the month specified,
    +     *                                day adds that number of days to the first day in the month. For
    +     *                                example, DATE(2008,1,35) returns the serial number representing
    +     *                                February 4, 2008.
    +     *                                If day is less than 1, day subtracts the magnitude that number of
    +     *                                days, plus one, from the first day of the month specified. For
    +     *                                example, DATE(2008,1,-15) returns the serial number representing
    +     *                                December 16, 2007.
    +     *
    +     * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object,
    +     *                        depending on the value of the ReturnDateType flag
    +     */
    +    public static function DATE($year = 0, $month = 1, $day = 1)
    +    {
    +        $year = Functions::flattenSingleValue($year);
    +        $month = Functions::flattenSingleValue($month);
    +        $day = Functions::flattenSingleValue($day);
    +
    +        if (($month !== null) && (!is_numeric($month))) {
    +            $month = Date::monthStringToNumber($month);
    +        }
    +
    +        if (($day !== null) && (!is_numeric($day))) {
    +            $day = Date::dayStringToNumber($day);
    +        }
    +
    +        $year = ($year !== null) ? StringHelper::testStringAsNumeric($year) : 0;
    +        $month = ($month !== null) ? StringHelper::testStringAsNumeric($month) : 0;
    +        $day = ($day !== null) ? StringHelper::testStringAsNumeric($day) : 0;
    +        if ((!is_numeric($year)) ||
    +            (!is_numeric($month)) ||
    +            (!is_numeric($day))) {
    +            return Functions::VALUE();
    +        }
    +        $year = (int) $year;
    +        $month = (int) $month;
    +        $day = (int) $day;
    +
    +        $baseYear = Date::getExcelCalendar();
    +        // Validate parameters
    +        if ($year < ($baseYear - 1900)) {
    +            return Functions::NAN();
    +        }
    +        if ((($baseYear - 1900) != 0) && ($year < $baseYear) && ($year >= 1900)) {
    +            return Functions::NAN();
    +        }
    +
    +        if (($year < $baseYear) && ($year >= ($baseYear - 1900))) {
    +            $year += 1900;
    +        }
    +
    +        if ($month < 1) {
    +            //    Handle year/month adjustment if month < 1
    +            --$month;
    +            $year += ceil($month / 12) - 1;
    +            $month = 13 - abs($month % 12);
    +        } elseif ($month > 12) {
    +            //    Handle year/month adjustment if month > 12
    +            $year += floor($month / 12);
    +            $month = ($month % 12);
    +        }
    +
    +        // Re-validate the year parameter after adjustments
    +        if (($year < $baseYear) || ($year >= 10000)) {
    +            return Functions::NAN();
    +        }
    +
    +        // Execute function
    +        $excelDateValue = Date::formattedPHPToExcel($year, $month, $day);
    +        switch (Functions::getReturnDateType()) {
    +            case Functions::RETURNDATE_EXCEL:
    +                return (float) $excelDateValue;
    +            case Functions::RETURNDATE_PHP_NUMERIC:
    +                return (int) Date::excelToTimestamp($excelDateValue);
    +            case Functions::RETURNDATE_PHP_OBJECT:
    +                return Date::excelToDateTimeObject($excelDateValue);
    +        }
    +    }
    +
    +    /**
    +     * TIME.
    +     *
    +     * The TIME function returns a value that represents a particular time.
    +     *
    +     * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the time
    +     * format of your regional settings. PhpSpreadsheet does not change cell formatting in this way.
    +     *
    +     * Excel Function:
    +     *        TIME(hour,minute,second)
    +     *
    +     * @category Date/Time Functions
    +     *
    +     * @param int $hour A number from 0 (zero) to 32767 representing the hour.
    +     *                                    Any value greater than 23 will be divided by 24 and the remainder
    +     *                                    will be treated as the hour value. For example, TIME(27,0,0) =
    +     *                                    TIME(3,0,0) = .125 or 3:00 AM.
    +     * @param int $minute A number from 0 to 32767 representing the minute.
    +     *                                    Any value greater than 59 will be converted to hours and minutes.
    +     *                                    For example, TIME(0,750,0) = TIME(12,30,0) = .520833 or 12:30 PM.
    +     * @param int $second A number from 0 to 32767 representing the second.
    +     *                                    Any value greater than 59 will be converted to hours, minutes,
    +     *                                    and seconds. For example, TIME(0,0,2000) = TIME(0,33,22) = .023148
    +     *                                    or 12:33:20 AM
    +     *
    +     * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object,
    +     *                        depending on the value of the ReturnDateType flag
    +     */
    +    public static function TIME($hour = 0, $minute = 0, $second = 0)
    +    {
    +        $hour = Functions::flattenSingleValue($hour);
    +        $minute = Functions::flattenSingleValue($minute);
    +        $second = Functions::flattenSingleValue($second);
    +
    +        if ($hour == '') {
    +            $hour = 0;
    +        }
    +        if ($minute == '') {
    +            $minute = 0;
    +        }
    +        if ($second == '') {
    +            $second = 0;
    +        }
    +
    +        if ((!is_numeric($hour)) || (!is_numeric($minute)) || (!is_numeric($second))) {
    +            return Functions::VALUE();
    +        }
    +        $hour = (int) $hour;
    +        $minute = (int) $minute;
    +        $second = (int) $second;
    +
    +        if ($second < 0) {
    +            $minute += floor($second / 60);
    +            $second = 60 - abs($second % 60);
    +            if ($second == 60) {
    +                $second = 0;
    +            }
    +        } elseif ($second >= 60) {
    +            $minute += floor($second / 60);
    +            $second = $second % 60;
    +        }
    +        if ($minute < 0) {
    +            $hour += floor($minute / 60);
    +            $minute = 60 - abs($minute % 60);
    +            if ($minute == 60) {
    +                $minute = 0;
    +            }
    +        } elseif ($minute >= 60) {
    +            $hour += floor($minute / 60);
    +            $minute = $minute % 60;
    +        }
    +
    +        if ($hour > 23) {
    +            $hour = $hour % 24;
    +        } elseif ($hour < 0) {
    +            return Functions::NAN();
    +        }
    +
    +        // Execute function
    +        switch (Functions::getReturnDateType()) {
    +            case Functions::RETURNDATE_EXCEL:
    +                $date = 0;
    +                $calendar = Date::getExcelCalendar();
    +                if ($calendar != Date::CALENDAR_WINDOWS_1900) {
    +                    $date = 1;
    +                }
    +
    +                return (float) Date::formattedPHPToExcel($calendar, 1, $date, $hour, $minute, $second);
    +            case Functions::RETURNDATE_PHP_NUMERIC:
    +                return (int) Date::excelToTimestamp(Date::formattedPHPToExcel(1970, 1, 1, $hour, $minute, $second)); // -2147468400; //    -2147472000 + 3600
    +            case Functions::RETURNDATE_PHP_OBJECT:
    +                $dayAdjust = 0;
    +                if ($hour < 0) {
    +                    $dayAdjust = floor($hour / 24);
    +                    $hour = 24 - abs($hour % 24);
    +                    if ($hour == 24) {
    +                        $hour = 0;
    +                    }
    +                } elseif ($hour >= 24) {
    +                    $dayAdjust = floor($hour / 24);
    +                    $hour = $hour % 24;
    +                }
    +                $phpDateObject = new \DateTime('1900-01-01 ' . $hour . ':' . $minute . ':' . $second);
    +                if ($dayAdjust != 0) {
    +                    $phpDateObject->modify($dayAdjust . ' days');
    +                }
    +
    +                return $phpDateObject;
    +        }
    +    }
    +
    +    /**
    +     * DATEVALUE.
    +     *
    +     * Returns a value that represents a particular date.
    +     * Use DATEVALUE to convert a date represented by a text string to an Excel or PHP date/time stamp
    +     * value.
    +     *
    +     * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the date
    +     * format of your regional settings. PhpSpreadsheet does not change cell formatting in this way.
    +     *
    +     * Excel Function:
    +     *        DATEVALUE(dateValue)
    +     *
    +     * @category Date/Time Functions
    +     *
    +     * @param string $dateValue Text that represents a date in a Microsoft Excel date format.
    +     *                                    For example, "1/30/2008" or "30-Jan-2008" are text strings within
    +     *                                    quotation marks that represent dates. Using the default date
    +     *                                    system in Excel for Windows, date_text must represent a date from
    +     *                                    January 1, 1900, to December 31, 9999. Using the default date
    +     *                                    system in Excel for the Macintosh, date_text must represent a date
    +     *                                    from January 1, 1904, to December 31, 9999. DATEVALUE returns the
    +     *                                    #VALUE! error value if date_text is out of this range.
    +     *
    +     * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object,
    +     *                        depending on the value of the ReturnDateType flag
    +     */
    +    public static function DATEVALUE($dateValue = 1)
    +    {
    +        $dateValueOrig = $dateValue;
    +        $dateValue = trim(Functions::flattenSingleValue($dateValue), '"');
    +        //    Strip any ordinals because they're allowed in Excel (English only)
    +        $dateValue = preg_replace('/(\d)(st|nd|rd|th)([ -\/])/Ui', '$1$3', $dateValue);
    +        //    Convert separators (/ . or space) to hyphens (should also handle dot used for ordinals in some countries, e.g. Denmark, Germany)
    +        $dateValue = str_replace(['/', '.', '-', '  '], ' ', $dateValue);
    +
    +        $yearFound = false;
    +        $t1 = explode(' ', $dateValue);
    +        foreach ($t1 as &$t) {
    +            if ((is_numeric($t)) && ($t > 31)) {
    +                if ($yearFound) {
    +                    return Functions::VALUE();
    +                }
    +                if ($t < 100) {
    +                    $t += 1900;
    +                }
    +                $yearFound = true;
    +            }
    +        }
    +        if ((count($t1) == 1) && (strpos($t, ':') != false)) {
    +            //    We've been fed a time value without any date
    +            return 0.0;
    +        } elseif (count($t1) == 2) {
    +            //    We only have two parts of the date: either day/month or month/year
    +            if ($yearFound) {
    +                array_unshift($t1, 1);
    +            } else {
    +                if ($t1[1] > 29) {
    +                    $t1[1] += 1900;
    +                    array_unshift($t1, 1);
    +                } else {
    +                    $t1[] = date('Y');
    +                }
    +            }
    +        }
    +        unset($t);
    +        $dateValue = implode(' ', $t1);
    +
    +        $PHPDateArray = date_parse($dateValue);
    +        if (($PHPDateArray === false) || ($PHPDateArray['error_count'] > 0)) {
    +            $testVal1 = strtok($dateValue, '- ');
    +            if ($testVal1 !== false) {
    +                $testVal2 = strtok('- ');
    +                if ($testVal2 !== false) {
    +                    $testVal3 = strtok('- ');
    +                    if ($testVal3 === false) {
    +                        $testVal3 = strftime('%Y');
    +                    }
    +                } else {
    +                    return Functions::VALUE();
    +                }
    +            } else {
    +                return Functions::VALUE();
    +            }
    +            if ($testVal1 < 31 && $testVal2 < 12 && $testVal3 < 12 && strlen($testVal3) == 2) {
    +                $testVal3 += 2000;
    +            }
    +            $PHPDateArray = date_parse($testVal1 . '-' . $testVal2 . '-' . $testVal3);
    +            if (($PHPDateArray === false) || ($PHPDateArray['error_count'] > 0)) {
    +                $PHPDateArray = date_parse($testVal2 . '-' . $testVal1 . '-' . $testVal3);
    +                if (($PHPDateArray === false) || ($PHPDateArray['error_count'] > 0)) {
    +                    return Functions::VALUE();
    +                }
    +            }
    +        }
    +
    +        if (($PHPDateArray !== false) && ($PHPDateArray['error_count'] == 0)) {
    +            // Execute function
    +            if ($PHPDateArray['year'] == '') {
    +                $PHPDateArray['year'] = strftime('%Y');
    +            }
    +            if ($PHPDateArray['year'] < 1900) {
    +                return Functions::VALUE();
    +            }
    +            if ($PHPDateArray['month'] == '') {
    +                $PHPDateArray['month'] = strftime('%m');
    +            }
    +            if ($PHPDateArray['day'] == '') {
    +                $PHPDateArray['day'] = strftime('%d');
    +            }
    +            if (!checkdate($PHPDateArray['month'], $PHPDateArray['day'], $PHPDateArray['year'])) {
    +                return Functions::VALUE();
    +            }
    +            $excelDateValue = floor(
    +                Date::formattedPHPToExcel(
    +                    $PHPDateArray['year'],
    +                    $PHPDateArray['month'],
    +                    $PHPDateArray['day'],
    +                    $PHPDateArray['hour'],
    +                    $PHPDateArray['minute'],
    +                    $PHPDateArray['second']
    +                )
    +            );
    +            switch (Functions::getReturnDateType()) {
    +                case Functions::RETURNDATE_EXCEL:
    +                    return (float) $excelDateValue;
    +                case Functions::RETURNDATE_PHP_NUMERIC:
    +                    return (int) Date::excelToTimestamp($excelDateValue);
    +                case Functions::RETURNDATE_PHP_OBJECT:
    +                    return new \DateTime($PHPDateArray['year'] . '-' . $PHPDateArray['month'] . '-' . $PHPDateArray['day'] . ' 00:00:00');
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * TIMEVALUE.
    +     *
    +     * Returns a value that represents a particular time.
    +     * Use TIMEVALUE to convert a time represented by a text string to an Excel or PHP date/time stamp
    +     * value.
    +     *
    +     * NOTE: When used in a Cell Formula, MS Excel changes the cell format so that it matches the time
    +     * format of your regional settings. PhpSpreadsheet does not change cell formatting in this way.
    +     *
    +     * Excel Function:
    +     *        TIMEVALUE(timeValue)
    +     *
    +     * @category Date/Time Functions
    +     *
    +     * @param string $timeValue A text string that represents a time in any one of the Microsoft
    +     *                                    Excel time formats; for example, "6:45 PM" and "18:45" text strings
    +     *                                    within quotation marks that represent time.
    +     *                                    Date information in time_text is ignored.
    +     *
    +     * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object,
    +     *                        depending on the value of the ReturnDateType flag
    +     */
    +    public static function TIMEVALUE($timeValue)
    +    {
    +        $timeValue = trim(Functions::flattenSingleValue($timeValue), '"');
    +        $timeValue = str_replace(['/', '.'], '-', $timeValue);
    +
    +        $arraySplit = preg_split('/[\/:\-\s]/', $timeValue);
    +        if ((count($arraySplit) == 2 || count($arraySplit) == 3) && $arraySplit[0] > 24) {
    +            $arraySplit[0] = ($arraySplit[0] % 24);
    +            $timeValue = implode(':', $arraySplit);
    +        }
    +
    +        $PHPDateArray = date_parse($timeValue);
    +        if (($PHPDateArray !== false) && ($PHPDateArray['error_count'] == 0)) {
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                $excelDateValue = Date::formattedPHPToExcel(
    +                    $PHPDateArray['year'],
    +                    $PHPDateArray['month'],
    +                    $PHPDateArray['day'],
    +                    $PHPDateArray['hour'],
    +                    $PHPDateArray['minute'],
    +                    $PHPDateArray['second']
    +                );
    +            } else {
    +                $excelDateValue = Date::formattedPHPToExcel(1900, 1, 1, $PHPDateArray['hour'], $PHPDateArray['minute'], $PHPDateArray['second']) - 1;
    +            }
    +
    +            switch (Functions::getReturnDateType()) {
    +                case Functions::RETURNDATE_EXCEL:
    +                    return (float) $excelDateValue;
    +                case Functions::RETURNDATE_PHP_NUMERIC:
    +                    return (int) $phpDateValue = Date::excelToTimestamp($excelDateValue + 25569) - 3600;
    +                case Functions::RETURNDATE_PHP_OBJECT:
    +                    return new \DateTime('1900-01-01 ' . $PHPDateArray['hour'] . ':' . $PHPDateArray['minute'] . ':' . $PHPDateArray['second']);
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * DATEDIF.
    +     *
    +     * @param mixed $startDate Excel date serial value, PHP date/time stamp, PHP DateTime object
    +     *                                    or a standard date string
    +     * @param mixed $endDate Excel date serial value, PHP date/time stamp, PHP DateTime object
    +     *                                    or a standard date string
    +     * @param string $unit
    +     *
    +     * @return int|string Interval between the dates
    +     */
    +    public static function DATEDIF($startDate = 0, $endDate = 0, $unit = 'D')
    +    {
    +        $startDate = Functions::flattenSingleValue($startDate);
    +        $endDate = Functions::flattenSingleValue($endDate);
    +        $unit = strtoupper(Functions::flattenSingleValue($unit));
    +
    +        if (is_string($startDate = self::getDateValue($startDate))) {
    +            return Functions::VALUE();
    +        }
    +        if (is_string($endDate = self::getDateValue($endDate))) {
    +            return Functions::VALUE();
    +        }
    +
    +        // Validate parameters
    +        if ($startDate > $endDate) {
    +            return Functions::NAN();
    +        }
    +
    +        // Execute function
    +        $difference = $endDate - $startDate;
    +
    +        $PHPStartDateObject = Date::excelToDateTimeObject($startDate);
    +        $startDays = $PHPStartDateObject->format('j');
    +        $startMonths = $PHPStartDateObject->format('n');
    +        $startYears = $PHPStartDateObject->format('Y');
    +
    +        $PHPEndDateObject = Date::excelToDateTimeObject($endDate);
    +        $endDays = $PHPEndDateObject->format('j');
    +        $endMonths = $PHPEndDateObject->format('n');
    +        $endYears = $PHPEndDateObject->format('Y');
    +
    +        $retVal = Functions::NAN();
    +        switch ($unit) {
    +            case 'D':
    +                $retVal = (int) $difference;
    +
    +                break;
    +            case 'M':
    +                $retVal = (int) ($endMonths - $startMonths) + ((int) ($endYears - $startYears) * 12);
    +                //    We're only interested in full months
    +                if ($endDays < $startDays) {
    +                    --$retVal;
    +                }
    +
    +                break;
    +            case 'Y':
    +                $retVal = (int) ($endYears - $startYears);
    +                //    We're only interested in full months
    +                if ($endMonths < $startMonths) {
    +                    --$retVal;
    +                } elseif (($endMonths == $startMonths) && ($endDays < $startDays)) {
    +                    // Remove start month
    +                    --$retVal;
    +                    // Remove end month
    +                    --$retVal;
    +                }
    +
    +                break;
    +            case 'MD':
    +                if ($endDays < $startDays) {
    +                    $retVal = $endDays;
    +                    $PHPEndDateObject->modify('-' . $endDays . ' days');
    +                    $adjustDays = $PHPEndDateObject->format('j');
    +                    $retVal += ($adjustDays - $startDays);
    +                } else {
    +                    $retVal = $endDays - $startDays;
    +                }
    +
    +                break;
    +            case 'YM':
    +                $retVal = (int) ($endMonths - $startMonths);
    +                if ($retVal < 0) {
    +                    $retVal += 12;
    +                }
    +                //    We're only interested in full months
    +                if ($endDays < $startDays) {
    +                    --$retVal;
    +                }
    +
    +                break;
    +            case 'YD':
    +                $retVal = (int) $difference;
    +                if ($endYears > $startYears) {
    +                    $isLeapStartYear = $PHPStartDateObject->format('L');
    +                    $wasLeapEndYear = $PHPEndDateObject->format('L');
    +
    +                    // Adjust end year to be as close as possible as start year
    +                    while ($PHPEndDateObject >= $PHPStartDateObject) {
    +                        $PHPEndDateObject->modify('-1 year');
    +                        $endYears = $PHPEndDateObject->format('Y');
    +                    }
    +                    $PHPEndDateObject->modify('+1 year');
    +
    +                    // Get the result
    +                    $retVal = $PHPEndDateObject->diff($PHPStartDateObject)->days;
    +
    +                    // Adjust for leap years cases
    +                    $isLeapEndYear = $PHPEndDateObject->format('L');
    +                    $limit = new \DateTime($PHPEndDateObject->format('Y-02-29'));
    +                    if (!$isLeapStartYear && !$wasLeapEndYear && $isLeapEndYear && $PHPEndDateObject >= $limit) {
    +                        --$retVal;
    +                    }
    +                }
    +
    +                break;
    +            default:
    +                $retVal = Functions::VALUE();
    +        }
    +
    +        return $retVal;
    +    }
    +
    +    /**
    +     * DAYS.
    +     *
    +     * Returns the number of days between two dates
    +     *
    +     * Excel Function:
    +     *        DAYS(endDate, startDate)
    +     *
    +     * @category Date/Time Functions
    +     *
    +     * @param \DateTimeImmutable|float|int|string $endDate Excel date serial value (float),
    +     * PHP date timestamp (integer), PHP DateTime object, or a standard date string
    +     * @param \DateTimeImmutable|float|int|string $startDate Excel date serial value (float),
    +     * PHP date timestamp (integer), PHP DateTime object, or a standard date string
    +     *
    +     * @return int|string Number of days between start date and end date or an error
    +     */
    +    public static function DAYS($endDate = 0, $startDate = 0)
    +    {
    +        $startDate = Functions::flattenSingleValue($startDate);
    +        $endDate = Functions::flattenSingleValue($endDate);
    +
    +        $startDate = self::getDateValue($startDate);
    +        if (is_string($startDate)) {
    +            return Functions::VALUE();
    +        }
    +
    +        $endDate = self::getDateValue($endDate);
    +        if (is_string($endDate)) {
    +            return Functions::VALUE();
    +        }
    +
    +        // Execute function
    +        $PHPStartDateObject = Date::excelToDateTimeObject($startDate);
    +        $PHPEndDateObject = Date::excelToDateTimeObject($endDate);
    +
    +        $diff = $PHPStartDateObject->diff($PHPEndDateObject);
    +        $days = $diff->days;
    +
    +        if ($diff->invert) {
    +            $days = -$days;
    +        }
    +
    +        return $days;
    +    }
    +
    +    /**
    +     * DAYS360.
    +     *
    +     * Returns the number of days between two dates based on a 360-day year (twelve 30-day months),
    +     * which is used in some accounting calculations. Use this function to help compute payments if
    +     * your accounting system is based on twelve 30-day months.
    +     *
    +     * Excel Function:
    +     *        DAYS360(startDate,endDate[,method])
    +     *
    +     * @category Date/Time Functions
    +     *
    +     * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer),
    +     *                                        PHP DateTime object, or a standard date string
    +     * @param mixed $endDate Excel date serial value (float), PHP date timestamp (integer),
    +     *                                        PHP DateTime object, or a standard date string
    +     * @param bool $method US or European Method
    +     *                                        FALSE or omitted: U.S. (NASD) method. If the starting date is
    +     *                                        the last day of a month, it becomes equal to the 30th of the
    +     *                                        same month. If the ending date is the last day of a month and
    +     *                                        the starting date is earlier than the 30th of a month, the
    +     *                                        ending date becomes equal to the 1st of the next month;
    +     *                                        otherwise the ending date becomes equal to the 30th of the
    +     *                                        same month.
    +     *                                        TRUE: European method. Starting dates and ending dates that
    +     *                                        occur on the 31st of a month become equal to the 30th of the
    +     *                                        same month.
    +     *
    +     * @return int|string Number of days between start date and end date
    +     */
    +    public static function DAYS360($startDate = 0, $endDate = 0, $method = false)
    +    {
    +        $startDate = Functions::flattenSingleValue($startDate);
    +        $endDate = Functions::flattenSingleValue($endDate);
    +
    +        if (is_string($startDate = self::getDateValue($startDate))) {
    +            return Functions::VALUE();
    +        }
    +        if (is_string($endDate = self::getDateValue($endDate))) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (!is_bool($method)) {
    +            return Functions::VALUE();
    +        }
    +
    +        // Execute function
    +        $PHPStartDateObject = Date::excelToDateTimeObject($startDate);
    +        $startDay = $PHPStartDateObject->format('j');
    +        $startMonth = $PHPStartDateObject->format('n');
    +        $startYear = $PHPStartDateObject->format('Y');
    +
    +        $PHPEndDateObject = Date::excelToDateTimeObject($endDate);
    +        $endDay = $PHPEndDateObject->format('j');
    +        $endMonth = $PHPEndDateObject->format('n');
    +        $endYear = $PHPEndDateObject->format('Y');
    +
    +        return self::dateDiff360($startDay, $startMonth, $startYear, $endDay, $endMonth, $endYear, !$method);
    +    }
    +
    +    /**
    +     * YEARFRAC.
    +     *
    +     * Calculates the fraction of the year represented by the number of whole days between two dates
    +     * (the start_date and the end_date).
    +     * Use the YEARFRAC worksheet function to identify the proportion of a whole year's benefits or
    +     * obligations to assign to a specific term.
    +     *
    +     * Excel Function:
    +     *        YEARFRAC(startDate,endDate[,method])
    +     *
    +     * @category Date/Time Functions
    +     *
    +     * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer),
    +     *                                    PHP DateTime object, or a standard date string
    +     * @param mixed $endDate Excel date serial value (float), PHP date timestamp (integer),
    +     *                                    PHP DateTime object, or a standard date string
    +     * @param int $method Method used for the calculation
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float fraction of the year
    +     */
    +    public static function YEARFRAC($startDate = 0, $endDate = 0, $method = 0)
    +    {
    +        $startDate = Functions::flattenSingleValue($startDate);
    +        $endDate = Functions::flattenSingleValue($endDate);
    +        $method = Functions::flattenSingleValue($method);
    +
    +        if (is_string($startDate = self::getDateValue($startDate))) {
    +            return Functions::VALUE();
    +        }
    +        if (is_string($endDate = self::getDateValue($endDate))) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (((is_numeric($method)) && (!is_string($method))) || ($method == '')) {
    +            switch ($method) {
    +                case 0:
    +                    return self::DAYS360($startDate, $endDate) / 360;
    +                case 1:
    +                    $days = self::DATEDIF($startDate, $endDate);
    +                    $startYear = self::YEAR($startDate);
    +                    $endYear = self::YEAR($endDate);
    +                    $years = $endYear - $startYear + 1;
    +                    $leapDays = 0;
    +                    if ($years == 1) {
    +                        if (self::isLeapYear($endYear)) {
    +                            $startMonth = self::MONTHOFYEAR($startDate);
    +                            $endMonth = self::MONTHOFYEAR($endDate);
    +                            $endDay = self::DAYOFMONTH($endDate);
    +                            if (($startMonth < 3) ||
    +                                (($endMonth * 100 + $endDay) >= (2 * 100 + 29))) {
    +                                $leapDays += 1;
    +                            }
    +                        }
    +                    } else {
    +                        for ($year = $startYear; $year <= $endYear; ++$year) {
    +                            if ($year == $startYear) {
    +                                $startMonth = self::MONTHOFYEAR($startDate);
    +                                $startDay = self::DAYOFMONTH($startDate);
    +                                if ($startMonth < 3) {
    +                                    $leapDays += (self::isLeapYear($year)) ? 1 : 0;
    +                                }
    +                            } elseif ($year == $endYear) {
    +                                $endMonth = self::MONTHOFYEAR($endDate);
    +                                $endDay = self::DAYOFMONTH($endDate);
    +                                if (($endMonth * 100 + $endDay) >= (2 * 100 + 29)) {
    +                                    $leapDays += (self::isLeapYear($year)) ? 1 : 0;
    +                                }
    +                            } else {
    +                                $leapDays += (self::isLeapYear($year)) ? 1 : 0;
    +                            }
    +                        }
    +                        if ($years == 2) {
    +                            if (($leapDays == 0) && (self::isLeapYear($startYear)) && ($days > 365)) {
    +                                $leapDays = 1;
    +                            } elseif ($days < 366) {
    +                                $years = 1;
    +                            }
    +                        }
    +                        $leapDays /= $years;
    +                    }
    +
    +                    return $days / (365 + $leapDays);
    +                case 2:
    +                    return self::DATEDIF($startDate, $endDate) / 360;
    +                case 3:
    +                    return self::DATEDIF($startDate, $endDate) / 365;
    +                case 4:
    +                    return self::DAYS360($startDate, $endDate, true) / 360;
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * NETWORKDAYS.
    +     *
    +     * Returns the number of whole working days between start_date and end_date. Working days
    +     * exclude weekends and any dates identified in holidays.
    +     * Use NETWORKDAYS to calculate employee benefits that accrue based on the number of days
    +     * worked during a specific term.
    +     *
    +     * Excel Function:
    +     *        NETWORKDAYS(startDate,endDate[,holidays[,holiday[,...]]])
    +     *
    +     * @category Date/Time Functions
    +     *
    +     * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer),
    +     *                                            PHP DateTime object, or a standard date string
    +     * @param mixed $endDate Excel date serial value (float), PHP date timestamp (integer),
    +     *                                            PHP DateTime object, or a standard date string
    +     *
    +     * @return int|string Interval between the dates
    +     */
    +    public static function NETWORKDAYS($startDate, $endDate, ...$dateArgs)
    +    {
    +        //    Retrieve the mandatory start and end date that are referenced in the function definition
    +        $startDate = Functions::flattenSingleValue($startDate);
    +        $endDate = Functions::flattenSingleValue($endDate);
    +        //    Get the optional days
    +        $dateArgs = Functions::flattenArray($dateArgs);
    +
    +        //    Validate the start and end dates
    +        if (is_string($startDate = $sDate = self::getDateValue($startDate))) {
    +            return Functions::VALUE();
    +        }
    +        $startDate = (float) floor($startDate);
    +        if (is_string($endDate = $eDate = self::getDateValue($endDate))) {
    +            return Functions::VALUE();
    +        }
    +        $endDate = (float) floor($endDate);
    +
    +        if ($sDate > $eDate) {
    +            $startDate = $eDate;
    +            $endDate = $sDate;
    +        }
    +
    +        // Execute function
    +        $startDoW = 6 - self::WEEKDAY($startDate, 2);
    +        if ($startDoW < 0) {
    +            $startDoW = 0;
    +        }
    +        $endDoW = self::WEEKDAY($endDate, 2);
    +        if ($endDoW >= 6) {
    +            $endDoW = 0;
    +        }
    +
    +        $wholeWeekDays = floor(($endDate - $startDate) / 7) * 5;
    +        $partWeekDays = $endDoW + $startDoW;
    +        if ($partWeekDays > 5) {
    +            $partWeekDays -= 5;
    +        }
    +
    +        //    Test any extra holiday parameters
    +        $holidayCountedArray = [];
    +        foreach ($dateArgs as $holidayDate) {
    +            if (is_string($holidayDate = self::getDateValue($holidayDate))) {
    +                return Functions::VALUE();
    +            }
    +            if (($holidayDate >= $startDate) && ($holidayDate <= $endDate)) {
    +                if ((self::WEEKDAY($holidayDate, 2) < 6) && (!in_array($holidayDate, $holidayCountedArray))) {
    +                    --$partWeekDays;
    +                    $holidayCountedArray[] = $holidayDate;
    +                }
    +            }
    +        }
    +
    +        if ($sDate > $eDate) {
    +            return 0 - ($wholeWeekDays + $partWeekDays);
    +        }
    +
    +        return $wholeWeekDays + $partWeekDays;
    +    }
    +
    +    /**
    +     * WORKDAY.
    +     *
    +     * Returns the date that is the indicated number of working days before or after a date (the
    +     * starting date). Working days exclude weekends and any dates identified as holidays.
    +     * Use WORKDAY to exclude weekends or holidays when you calculate invoice due dates, expected
    +     * delivery times, or the number of days of work performed.
    +     *
    +     * Excel Function:
    +     *        WORKDAY(startDate,endDays[,holidays[,holiday[,...]]])
    +     *
    +     * @category Date/Time Functions
    +     *
    +     * @param mixed $startDate Excel date serial value (float), PHP date timestamp (integer),
    +     *                                        PHP DateTime object, or a standard date string
    +     * @param int $endDays The number of nonweekend and nonholiday days before or after
    +     *                                        startDate. A positive value for days yields a future date; a
    +     *                                        negative value yields a past date.
    +     *
    +     * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object,
    +     *                        depending on the value of the ReturnDateType flag
    +     */
    +    public static function WORKDAY($startDate, $endDays, ...$dateArgs)
    +    {
    +        //    Retrieve the mandatory start date and days that are referenced in the function definition
    +        $startDate = Functions::flattenSingleValue($startDate);
    +        $endDays = Functions::flattenSingleValue($endDays);
    +        //    Get the optional days
    +        $dateArgs = Functions::flattenArray($dateArgs);
    +
    +        if ((is_string($startDate = self::getDateValue($startDate))) || (!is_numeric($endDays))) {
    +            return Functions::VALUE();
    +        }
    +        $startDate = (float) floor($startDate);
    +        $endDays = (int) floor($endDays);
    +        //    If endDays is 0, we always return startDate
    +        if ($endDays == 0) {
    +            return $startDate;
    +        }
    +
    +        $decrementing = $endDays < 0;
    +
    +        //    Adjust the start date if it falls over a weekend
    +
    +        $startDoW = self::WEEKDAY($startDate, 3);
    +        if (self::WEEKDAY($startDate, 3) >= 5) {
    +            $startDate += ($decrementing) ? -$startDoW + 4 : 7 - $startDoW;
    +            ($decrementing) ? $endDays++ : $endDays--;
    +        }
    +
    +        //    Add endDays
    +        $endDate = (float) $startDate + ((int) ($endDays / 5) * 7) + ($endDays % 5);
    +
    +        //    Adjust the calculated end date if it falls over a weekend
    +        $endDoW = self::WEEKDAY($endDate, 3);
    +        if ($endDoW >= 5) {
    +            $endDate += ($decrementing) ? -$endDoW + 4 : 7 - $endDoW;
    +        }
    +
    +        //    Test any extra holiday parameters
    +        if (!empty($dateArgs)) {
    +            $holidayCountedArray = $holidayDates = [];
    +            foreach ($dateArgs as $holidayDate) {
    +                if (($holidayDate !== null) && (trim($holidayDate) > '')) {
    +                    if (is_string($holidayDate = self::getDateValue($holidayDate))) {
    +                        return Functions::VALUE();
    +                    }
    +                    if (self::WEEKDAY($holidayDate, 3) < 5) {
    +                        $holidayDates[] = $holidayDate;
    +                    }
    +                }
    +            }
    +            if ($decrementing) {
    +                rsort($holidayDates, SORT_NUMERIC);
    +            } else {
    +                sort($holidayDates, SORT_NUMERIC);
    +            }
    +            foreach ($holidayDates as $holidayDate) {
    +                if ($decrementing) {
    +                    if (($holidayDate <= $startDate) && ($holidayDate >= $endDate)) {
    +                        if (!in_array($holidayDate, $holidayCountedArray)) {
    +                            --$endDate;
    +                            $holidayCountedArray[] = $holidayDate;
    +                        }
    +                    }
    +                } else {
    +                    if (($holidayDate >= $startDate) && ($holidayDate <= $endDate)) {
    +                        if (!in_array($holidayDate, $holidayCountedArray)) {
    +                            ++$endDate;
    +                            $holidayCountedArray[] = $holidayDate;
    +                        }
    +                    }
    +                }
    +                //    Adjust the calculated end date if it falls over a weekend
    +                $endDoW = self::WEEKDAY($endDate, 3);
    +                if ($endDoW >= 5) {
    +                    $endDate += ($decrementing) ? -$endDoW + 4 : 7 - $endDoW;
    +                }
    +            }
    +        }
    +
    +        switch (Functions::getReturnDateType()) {
    +            case Functions::RETURNDATE_EXCEL:
    +                return (float) $endDate;
    +            case Functions::RETURNDATE_PHP_NUMERIC:
    +                return (int) Date::excelToTimestamp($endDate);
    +            case Functions::RETURNDATE_PHP_OBJECT:
    +                return Date::excelToDateTimeObject($endDate);
    +        }
    +    }
    +
    +    /**
    +     * DAYOFMONTH.
    +     *
    +     * Returns the day of the month, for a specified date. The day is given as an integer
    +     * ranging from 1 to 31.
    +     *
    +     * Excel Function:
    +     *        DAY(dateValue)
    +     *
    +     * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer),
    +     *                                    PHP DateTime object, or a standard date string
    +     *
    +     * @return int|string Day of the month
    +     */
    +    public static function DAYOFMONTH($dateValue = 1)
    +    {
    +        $dateValue = Functions::flattenSingleValue($dateValue);
    +
    +        if ($dateValue === null) {
    +            $dateValue = 1;
    +        } elseif (is_string($dateValue = self::getDateValue($dateValue))) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_EXCEL) {
    +            if ($dateValue < 0.0) {
    +                return Functions::NAN();
    +            } elseif ($dateValue < 1.0) {
    +                return 0;
    +            }
    +        }
    +
    +        // Execute function
    +        $PHPDateObject = Date::excelToDateTimeObject($dateValue);
    +
    +        return (int) $PHPDateObject->format('j');
    +    }
    +
    +    /**
    +     * WEEKDAY.
    +     *
    +     * Returns the day of the week for a specified date. The day is given as an integer
    +     * ranging from 0 to 7 (dependent on the requested style).
    +     *
    +     * Excel Function:
    +     *        WEEKDAY(dateValue[,style])
    +     *
    +     * @param int $dateValue Excel date serial value (float), PHP date timestamp (integer),
    +     *                                    PHP DateTime object, or a standard date string
    +     * @param int $style A number that determines the type of return value
    +     *                                        1 or omitted    Numbers 1 (Sunday) through 7 (Saturday).
    +     *                                        2                Numbers 1 (Monday) through 7 (Sunday).
    +     *                                        3                Numbers 0 (Monday) through 6 (Sunday).
    +     *
    +     * @return int|string Day of the week value
    +     */
    +    public static function WEEKDAY($dateValue = 1, $style = 1)
    +    {
    +        $dateValue = Functions::flattenSingleValue($dateValue);
    +        $style = Functions::flattenSingleValue($style);
    +
    +        if (!is_numeric($style)) {
    +            return Functions::VALUE();
    +        } elseif (($style < 1) || ($style > 3)) {
    +            return Functions::NAN();
    +        }
    +        $style = floor($style);
    +
    +        if ($dateValue === null) {
    +            $dateValue = 1;
    +        } elseif (is_string($dateValue = self::getDateValue($dateValue))) {
    +            return Functions::VALUE();
    +        } elseif ($dateValue < 0.0) {
    +            return Functions::NAN();
    +        }
    +
    +        // Execute function
    +        $PHPDateObject = Date::excelToDateTimeObject($dateValue);
    +        $DoW = $PHPDateObject->format('w');
    +
    +        $firstDay = 1;
    +        switch ($style) {
    +            case 1:
    +                ++$DoW;
    +
    +                break;
    +            case 2:
    +                if ($DoW == 0) {
    +                    $DoW = 7;
    +                }
    +
    +                break;
    +            case 3:
    +                if ($DoW == 0) {
    +                    $DoW = 7;
    +                }
    +                $firstDay = 0;
    +                --$DoW;
    +
    +                break;
    +        }
    +        if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_EXCEL) {
    +            //    Test for Excel's 1900 leap year, and introduce the error as required
    +            if (($PHPDateObject->format('Y') == 1900) && ($PHPDateObject->format('n') <= 2)) {
    +                --$DoW;
    +                if ($DoW < $firstDay) {
    +                    $DoW += 7;
    +                }
    +            }
    +        }
    +
    +        return (int) $DoW;
    +    }
    +
    +    /**
    +     * WEEKNUM.
    +     *
    +     * Returns the week of the year for a specified date.
    +     * The WEEKNUM function considers the week containing January 1 to be the first week of the year.
    +     * However, there is a European standard that defines the first week as the one with the majority
    +     * of days (four or more) falling in the new year. This means that for years in which there are
    +     * three days or less in the first week of January, the WEEKNUM function returns week numbers
    +     * that are incorrect according to the European standard.
    +     *
    +     * Excel Function:
    +     *        WEEKNUM(dateValue[,style])
    +     *
    +     * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer),
    +     *                                    PHP DateTime object, or a standard date string
    +     * @param int $method Week begins on Sunday or Monday
    +     *                                        1 or omitted    Week begins on Sunday.
    +     *                                        2                Week begins on Monday.
    +     *
    +     * @return int|string Week Number
    +     */
    +    public static function WEEKNUM($dateValue = 1, $method = 1)
    +    {
    +        $dateValue = Functions::flattenSingleValue($dateValue);
    +        $method = Functions::flattenSingleValue($method);
    +
    +        if (!is_numeric($method)) {
    +            return Functions::VALUE();
    +        } elseif (($method < 1) || ($method > 2)) {
    +            return Functions::NAN();
    +        }
    +        $method = floor($method);
    +
    +        if ($dateValue === null) {
    +            $dateValue = 1;
    +        } elseif (is_string($dateValue = self::getDateValue($dateValue))) {
    +            return Functions::VALUE();
    +        } elseif ($dateValue < 0.0) {
    +            return Functions::NAN();
    +        }
    +
    +        // Execute function
    +        $PHPDateObject = Date::excelToDateTimeObject($dateValue);
    +        $dayOfYear = $PHPDateObject->format('z');
    +        $PHPDateObject->modify('-' . $dayOfYear . ' days');
    +        $firstDayOfFirstWeek = $PHPDateObject->format('w');
    +        $daysInFirstWeek = (6 - $firstDayOfFirstWeek + $method) % 7;
    +        $interval = $dayOfYear - $daysInFirstWeek;
    +        $weekOfYear = floor($interval / 7) + 1;
    +
    +        if ($daysInFirstWeek) {
    +            ++$weekOfYear;
    +        }
    +
    +        return (int) $weekOfYear;
    +    }
    +
    +    /**
    +     * ISOWEEKNUM.
    +     *
    +     * Returns the ISO 8601 week number of the year for a specified date.
    +     *
    +     * Excel Function:
    +     *        ISOWEEKNUM(dateValue)
    +     *
    +     * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer),
    +     *                                    PHP DateTime object, or a standard date string
    +     *
    +     * @return int|string Week Number
    +     */
    +    public static function ISOWEEKNUM($dateValue = 1)
    +    {
    +        $dateValue = Functions::flattenSingleValue($dateValue);
    +
    +        if ($dateValue === null) {
    +            $dateValue = 1;
    +        } elseif (is_string($dateValue = self::getDateValue($dateValue))) {
    +            return Functions::VALUE();
    +        } elseif ($dateValue < 0.0) {
    +            return Functions::NAN();
    +        }
    +
    +        // Execute function
    +        $PHPDateObject = Date::excelToDateTimeObject($dateValue);
    +
    +        return (int) $PHPDateObject->format('W');
    +    }
    +
    +    /**
    +     * MONTHOFYEAR.
    +     *
    +     * Returns the month of a date represented by a serial number.
    +     * The month is given as an integer, ranging from 1 (January) to 12 (December).
    +     *
    +     * Excel Function:
    +     *        MONTH(dateValue)
    +     *
    +     * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer),
    +     *                                    PHP DateTime object, or a standard date string
    +     *
    +     * @return int|string Month of the year
    +     */
    +    public static function MONTHOFYEAR($dateValue = 1)
    +    {
    +        $dateValue = Functions::flattenSingleValue($dateValue);
    +
    +        if (empty($dateValue)) {
    +            $dateValue = 1;
    +        }
    +        if (is_string($dateValue = self::getDateValue($dateValue))) {
    +            return Functions::VALUE();
    +        } elseif ($dateValue < 0.0) {
    +            return Functions::NAN();
    +        }
    +
    +        // Execute function
    +        $PHPDateObject = Date::excelToDateTimeObject($dateValue);
    +
    +        return (int) $PHPDateObject->format('n');
    +    }
    +
    +    /**
    +     * YEAR.
    +     *
    +     * Returns the year corresponding to a date.
    +     * The year is returned as an integer in the range 1900-9999.
    +     *
    +     * Excel Function:
    +     *        YEAR(dateValue)
    +     *
    +     * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer),
    +     *                                    PHP DateTime object, or a standard date string
    +     *
    +     * @return int|string Year
    +     */
    +    public static function YEAR($dateValue = 1)
    +    {
    +        $dateValue = Functions::flattenSingleValue($dateValue);
    +
    +        if ($dateValue === null) {
    +            $dateValue = 1;
    +        } elseif (is_string($dateValue = self::getDateValue($dateValue))) {
    +            return Functions::VALUE();
    +        } elseif ($dateValue < 0.0) {
    +            return Functions::NAN();
    +        }
    +
    +        // Execute function
    +        $PHPDateObject = Date::excelToDateTimeObject($dateValue);
    +
    +        return (int) $PHPDateObject->format('Y');
    +    }
    +
    +    /**
    +     * HOUROFDAY.
    +     *
    +     * Returns the hour of a time value.
    +     * The hour is given as an integer, ranging from 0 (12:00 A.M.) to 23 (11:00 P.M.).
    +     *
    +     * Excel Function:
    +     *        HOUR(timeValue)
    +     *
    +     * @param mixed $timeValue Excel date serial value (float), PHP date timestamp (integer),
    +     *                                    PHP DateTime object, or a standard time string
    +     *
    +     * @return int|string Hour
    +     */
    +    public static function HOUROFDAY($timeValue = 0)
    +    {
    +        $timeValue = Functions::flattenSingleValue($timeValue);
    +
    +        if (!is_numeric($timeValue)) {
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
    +                $testVal = strtok($timeValue, '/-: ');
    +                if (strlen($testVal) < strlen($timeValue)) {
    +                    return Functions::VALUE();
    +                }
    +            }
    +            $timeValue = self::getTimeValue($timeValue);
    +            if (is_string($timeValue)) {
    +                return Functions::VALUE();
    +            }
    +        }
    +        // Execute function
    +        if ($timeValue >= 1) {
    +            $timeValue = fmod($timeValue, 1);
    +        } elseif ($timeValue < 0.0) {
    +            return Functions::NAN();
    +        }
    +        $timeValue = Date::excelToTimestamp($timeValue);
    +
    +        return (int) gmdate('G', $timeValue);
    +    }
    +
    +    /**
    +     * MINUTE.
    +     *
    +     * Returns the minutes of a time value.
    +     * The minute is given as an integer, ranging from 0 to 59.
    +     *
    +     * Excel Function:
    +     *        MINUTE(timeValue)
    +     *
    +     * @param mixed $timeValue Excel date serial value (float), PHP date timestamp (integer),
    +     *                                    PHP DateTime object, or a standard time string
    +     *
    +     * @return int|string Minute
    +     */
    +    public static function MINUTE($timeValue = 0)
    +    {
    +        $timeValue = $timeTester = Functions::flattenSingleValue($timeValue);
    +
    +        if (!is_numeric($timeValue)) {
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
    +                $testVal = strtok($timeValue, '/-: ');
    +                if (strlen($testVal) < strlen($timeValue)) {
    +                    return Functions::VALUE();
    +                }
    +            }
    +            $timeValue = self::getTimeValue($timeValue);
    +            if (is_string($timeValue)) {
    +                return Functions::VALUE();
    +            }
    +        }
    +        // Execute function
    +        if ($timeValue >= 1) {
    +            $timeValue = fmod($timeValue, 1);
    +        } elseif ($timeValue < 0.0) {
    +            return Functions::NAN();
    +        }
    +        $timeValue = Date::excelToTimestamp($timeValue);
    +
    +        return (int) gmdate('i', $timeValue);
    +    }
    +
    +    /**
    +     * SECOND.
    +     *
    +     * Returns the seconds of a time value.
    +     * The second is given as an integer in the range 0 (zero) to 59.
    +     *
    +     * Excel Function:
    +     *        SECOND(timeValue)
    +     *
    +     * @param mixed $timeValue Excel date serial value (float), PHP date timestamp (integer),
    +     *                                    PHP DateTime object, or a standard time string
    +     *
    +     * @return int|string Second
    +     */
    +    public static function SECOND($timeValue = 0)
    +    {
    +        $timeValue = Functions::flattenSingleValue($timeValue);
    +
    +        if (!is_numeric($timeValue)) {
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
    +                $testVal = strtok($timeValue, '/-: ');
    +                if (strlen($testVal) < strlen($timeValue)) {
    +                    return Functions::VALUE();
    +                }
    +            }
    +            $timeValue = self::getTimeValue($timeValue);
    +            if (is_string($timeValue)) {
    +                return Functions::VALUE();
    +            }
    +        }
    +        // Execute function
    +        if ($timeValue >= 1) {
    +            $timeValue = fmod($timeValue, 1);
    +        } elseif ($timeValue < 0.0) {
    +            return Functions::NAN();
    +        }
    +        $timeValue = Date::excelToTimestamp($timeValue);
    +
    +        return (int) gmdate('s', $timeValue);
    +    }
    +
    +    /**
    +     * EDATE.
    +     *
    +     * Returns the serial number that represents the date that is the indicated number of months
    +     * before or after a specified date (the start_date).
    +     * Use EDATE to calculate maturity dates or due dates that fall on the same day of the month
    +     * as the date of issue.
    +     *
    +     * Excel Function:
    +     *        EDATE(dateValue,adjustmentMonths)
    +     *
    +     * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer),
    +     *                                        PHP DateTime object, or a standard date string
    +     * @param int $adjustmentMonths The number of months before or after start_date.
    +     *                                        A positive value for months yields a future date;
    +     *                                        a negative value yields a past date.
    +     *
    +     * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object,
    +     *                        depending on the value of the ReturnDateType flag
    +     */
    +    public static function EDATE($dateValue = 1, $adjustmentMonths = 0)
    +    {
    +        $dateValue = Functions::flattenSingleValue($dateValue);
    +        $adjustmentMonths = Functions::flattenSingleValue($adjustmentMonths);
    +
    +        if (!is_numeric($adjustmentMonths)) {
    +            return Functions::VALUE();
    +        }
    +        $adjustmentMonths = floor($adjustmentMonths);
    +
    +        if (is_string($dateValue = self::getDateValue($dateValue))) {
    +            return Functions::VALUE();
    +        }
    +
    +        // Execute function
    +        $PHPDateObject = self::adjustDateByMonths($dateValue, $adjustmentMonths);
    +
    +        switch (Functions::getReturnDateType()) {
    +            case Functions::RETURNDATE_EXCEL:
    +                return (float) Date::PHPToExcel($PHPDateObject);
    +            case Functions::RETURNDATE_PHP_NUMERIC:
    +                return (int) Date::excelToTimestamp(Date::PHPToExcel($PHPDateObject));
    +            case Functions::RETURNDATE_PHP_OBJECT:
    +                return $PHPDateObject;
    +        }
    +    }
    +
    +    /**
    +     * EOMONTH.
    +     *
    +     * Returns the date value for the last day of the month that is the indicated number of months
    +     * before or after start_date.
    +     * Use EOMONTH to calculate maturity dates or due dates that fall on the last day of the month.
    +     *
    +     * Excel Function:
    +     *        EOMONTH(dateValue,adjustmentMonths)
    +     *
    +     * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer),
    +     *                                        PHP DateTime object, or a standard date string
    +     * @param int $adjustmentMonths The number of months before or after start_date.
    +     *                                        A positive value for months yields a future date;
    +     *                                        a negative value yields a past date.
    +     *
    +     * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object,
    +     *                        depending on the value of the ReturnDateType flag
    +     */
    +    public static function EOMONTH($dateValue = 1, $adjustmentMonths = 0)
    +    {
    +        $dateValue = Functions::flattenSingleValue($dateValue);
    +        $adjustmentMonths = Functions::flattenSingleValue($adjustmentMonths);
    +
    +        if (!is_numeric($adjustmentMonths)) {
    +            return Functions::VALUE();
    +        }
    +        $adjustmentMonths = floor($adjustmentMonths);
    +
    +        if (is_string($dateValue = self::getDateValue($dateValue))) {
    +            return Functions::VALUE();
    +        }
    +
    +        // Execute function
    +        $PHPDateObject = self::adjustDateByMonths($dateValue, $adjustmentMonths + 1);
    +        $adjustDays = (int) $PHPDateObject->format('d');
    +        $adjustDaysString = '-' . $adjustDays . ' days';
    +        $PHPDateObject->modify($adjustDaysString);
    +
    +        switch (Functions::getReturnDateType()) {
    +            case Functions::RETURNDATE_EXCEL:
    +                return (float) Date::PHPToExcel($PHPDateObject);
    +            case Functions::RETURNDATE_PHP_NUMERIC:
    +                return (int) Date::excelToTimestamp(Date::PHPToExcel($PHPDateObject));
    +            case Functions::RETURNDATE_PHP_OBJECT:
    +                return $PHPDateObject;
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Engine/CyclicReferenceStack.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Engine/CyclicReferenceStack.php
    new file mode 100644
    index 00000000000..5a54d83ac03
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Engine/CyclicReferenceStack.php
    @@ -0,0 +1,73 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation\Engine;
    +
    +class CyclicReferenceStack
    +{
    +    /**
    +     * The call stack for calculated cells.
    +     *
    +     * @var mixed[]
    +     */
    +    private $stack = [];
    +
    +    /**
    +     * Return the number of entries on the stack.
    +     *
    +     * @return int
    +     */
    +    public function count()
    +    {
    +        return count($this->stack);
    +    }
    +
    +    /**
    +     * Push a new entry onto the stack.
    +     *
    +     * @param mixed $value
    +     */
    +    public function push($value)
    +    {
    +        $this->stack[$value] = $value;
    +    }
    +
    +    /**
    +     * Pop the last entry from the stack.
    +     *
    +     * @return mixed
    +     */
    +    public function pop()
    +    {
    +        return array_pop($this->stack);
    +    }
    +
    +    /**
    +     * Test to see if a specified entry exists on the stack.
    +     *
    +     * @param mixed $value The value to test
    +     *
    +     * @return bool
    +     */
    +    public function onStack($value)
    +    {
    +        return isset($this->stack[$value]);
    +    }
    +
    +    /**
    +     * Clear the stack.
    +     */
    +    public function clear()
    +    {
    +        $this->stack = [];
    +    }
    +
    +    /**
    +     * Return an array of all entries on the stack.
    +     *
    +     * @return mixed[]
    +     */
    +    public function showStack()
    +    {
    +        return $this->stack;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Engine/Logger.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Engine/Logger.php
    new file mode 100644
    index 00000000000..6793dade78e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Engine/Logger.php
    @@ -0,0 +1,128 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation\Engine;
    +
    +class Logger
    +{
    +    /**
    +     * Flag to determine whether a debug log should be generated by the calculation engine
    +     *        If true, then a debug log will be generated
    +     *        If false, then a debug log will not be generated.
    +     *
    +     * @var bool
    +     */
    +    private $writeDebugLog = false;
    +
    +    /**
    +     * Flag to determine whether a debug log should be echoed by the calculation engine
    +     *        If true, then a debug log will be echoed
    +     *        If false, then a debug log will not be echoed
    +     * A debug log can only be echoed if it is generated.
    +     *
    +     * @var bool
    +     */
    +    private $echoDebugLog = false;
    +
    +    /**
    +     * The debug log generated by the calculation engine.
    +     *
    +     * @var string[]
    +     */
    +    private $debugLog = [];
    +
    +    /**
    +     * The calculation engine cell reference stack.
    +     *
    +     * @var CyclicReferenceStack
    +     */
    +    private $cellStack;
    +
    +    /**
    +     * Instantiate a Calculation engine logger.
    +     *
    +     * @param CyclicReferenceStack $stack
    +     */
    +    public function __construct(CyclicReferenceStack $stack)
    +    {
    +        $this->cellStack = $stack;
    +    }
    +
    +    /**
    +     * Enable/Disable Calculation engine logging.
    +     *
    +     * @param bool $pValue
    +     */
    +    public function setWriteDebugLog($pValue)
    +    {
    +        $this->writeDebugLog = $pValue;
    +    }
    +
    +    /**
    +     * Return whether calculation engine logging is enabled or disabled.
    +     *
    +     * @return bool
    +     */
    +    public function getWriteDebugLog()
    +    {
    +        return $this->writeDebugLog;
    +    }
    +
    +    /**
    +     * Enable/Disable echoing of debug log information.
    +     *
    +     * @param bool $pValue
    +     */
    +    public function setEchoDebugLog($pValue)
    +    {
    +        $this->echoDebugLog = $pValue;
    +    }
    +
    +    /**
    +     * Return whether echoing of debug log information is enabled or disabled.
    +     *
    +     * @return bool
    +     */
    +    public function getEchoDebugLog()
    +    {
    +        return $this->echoDebugLog;
    +    }
    +
    +    /**
    +     * Write an entry to the calculation engine debug log.
    +     */
    +    public function writeDebugLog(...$args)
    +    {
    +        //    Only write the debug log if logging is enabled
    +        if ($this->writeDebugLog) {
    +            $message = implode($args);
    +            $cellReference = implode(' -> ', $this->cellStack->showStack());
    +            if ($this->echoDebugLog) {
    +                echo $cellReference,
    +                    ($this->cellStack->count() > 0 ? ' => ' : ''),
    +                    $message,
    +                    PHP_EOL;
    +            }
    +            $this->debugLog[] = $cellReference .
    +                ($this->cellStack->count() > 0 ? ' => ' : '') .
    +                $message;
    +        }
    +    }
    +
    +    /**
    +     * Clear the calculation engine debug log.
    +     */
    +    public function clearLog()
    +    {
    +        $this->debugLog = [];
    +    }
    +
    +    /**
    +     * Return the calculation engine debug log.
    +     *
    +     * @return string[]
    +     */
    +    public function getLog()
    +    {
    +        return $this->debugLog;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Engineering.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Engineering.php
    new file mode 100644
    index 00000000000..3f1b48bd74c
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Engineering.php
    @@ -0,0 +1,2807 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +use Complex\Complex;
    +use Complex\Exception as ComplexException;
    +
    +class Engineering
    +{
    +    /**
    +     * EULER.
    +     */
    +    const EULER = 2.71828182845904523536;
    +
    +    /**
    +     * Details of the Units of measure that can be used in CONVERTUOM().
    +     *
    +     * @var mixed[]
    +     */
    +    private static $conversionUnits = [
    +        'g' => ['Group' => 'Mass', 'Unit Name' => 'Gram', 'AllowPrefix' => true],
    +        'sg' => ['Group' => 'Mass', 'Unit Name' => 'Slug', 'AllowPrefix' => false],
    +        'lbm' => ['Group' => 'Mass', 'Unit Name' => 'Pound mass (avoirdupois)', 'AllowPrefix' => false],
    +        'u' => ['Group' => 'Mass', 'Unit Name' => 'U (atomic mass unit)', 'AllowPrefix' => true],
    +        'ozm' => ['Group' => 'Mass', 'Unit Name' => 'Ounce mass (avoirdupois)', 'AllowPrefix' => false],
    +        'm' => ['Group' => 'Distance', 'Unit Name' => 'Meter', 'AllowPrefix' => true],
    +        'mi' => ['Group' => 'Distance', 'Unit Name' => 'Statute mile', 'AllowPrefix' => false],
    +        'Nmi' => ['Group' => 'Distance', 'Unit Name' => 'Nautical mile', 'AllowPrefix' => false],
    +        'in' => ['Group' => 'Distance', 'Unit Name' => 'Inch', 'AllowPrefix' => false],
    +        'ft' => ['Group' => 'Distance', 'Unit Name' => 'Foot', 'AllowPrefix' => false],
    +        'yd' => ['Group' => 'Distance', 'Unit Name' => 'Yard', 'AllowPrefix' => false],
    +        'ang' => ['Group' => 'Distance', 'Unit Name' => 'Angstrom', 'AllowPrefix' => true],
    +        'Pica' => ['Group' => 'Distance', 'Unit Name' => 'Pica (1/72 in)', 'AllowPrefix' => false],
    +        'yr' => ['Group' => 'Time', 'Unit Name' => 'Year', 'AllowPrefix' => false],
    +        'day' => ['Group' => 'Time', 'Unit Name' => 'Day', 'AllowPrefix' => false],
    +        'hr' => ['Group' => 'Time', 'Unit Name' => 'Hour', 'AllowPrefix' => false],
    +        'mn' => ['Group' => 'Time', 'Unit Name' => 'Minute', 'AllowPrefix' => false],
    +        'sec' => ['Group' => 'Time', 'Unit Name' => 'Second', 'AllowPrefix' => true],
    +        'Pa' => ['Group' => 'Pressure', 'Unit Name' => 'Pascal', 'AllowPrefix' => true],
    +        'p' => ['Group' => 'Pressure', 'Unit Name' => 'Pascal', 'AllowPrefix' => true],
    +        'atm' => ['Group' => 'Pressure', 'Unit Name' => 'Atmosphere', 'AllowPrefix' => true],
    +        'at' => ['Group' => 'Pressure', 'Unit Name' => 'Atmosphere', 'AllowPrefix' => true],
    +        'mmHg' => ['Group' => 'Pressure', 'Unit Name' => 'mm of Mercury', 'AllowPrefix' => true],
    +        'N' => ['Group' => 'Force', 'Unit Name' => 'Newton', 'AllowPrefix' => true],
    +        'dyn' => ['Group' => 'Force', 'Unit Name' => 'Dyne', 'AllowPrefix' => true],
    +        'dy' => ['Group' => 'Force', 'Unit Name' => 'Dyne', 'AllowPrefix' => true],
    +        'lbf' => ['Group' => 'Force', 'Unit Name' => 'Pound force', 'AllowPrefix' => false],
    +        'J' => ['Group' => 'Energy', 'Unit Name' => 'Joule', 'AllowPrefix' => true],
    +        'e' => ['Group' => 'Energy', 'Unit Name' => 'Erg', 'AllowPrefix' => true],
    +        'c' => ['Group' => 'Energy', 'Unit Name' => 'Thermodynamic calorie', 'AllowPrefix' => true],
    +        'cal' => ['Group' => 'Energy', 'Unit Name' => 'IT calorie', 'AllowPrefix' => true],
    +        'eV' => ['Group' => 'Energy', 'Unit Name' => 'Electron volt', 'AllowPrefix' => true],
    +        'ev' => ['Group' => 'Energy', 'Unit Name' => 'Electron volt', 'AllowPrefix' => true],
    +        'HPh' => ['Group' => 'Energy', 'Unit Name' => 'Horsepower-hour', 'AllowPrefix' => false],
    +        'hh' => ['Group' => 'Energy', 'Unit Name' => 'Horsepower-hour', 'AllowPrefix' => false],
    +        'Wh' => ['Group' => 'Energy', 'Unit Name' => 'Watt-hour', 'AllowPrefix' => true],
    +        'wh' => ['Group' => 'Energy', 'Unit Name' => 'Watt-hour', 'AllowPrefix' => true],
    +        'flb' => ['Group' => 'Energy', 'Unit Name' => 'Foot-pound', 'AllowPrefix' => false],
    +        'BTU' => ['Group' => 'Energy', 'Unit Name' => 'BTU', 'AllowPrefix' => false],
    +        'btu' => ['Group' => 'Energy', 'Unit Name' => 'BTU', 'AllowPrefix' => false],
    +        'HP' => ['Group' => 'Power', 'Unit Name' => 'Horsepower', 'AllowPrefix' => false],
    +        'h' => ['Group' => 'Power', 'Unit Name' => 'Horsepower', 'AllowPrefix' => false],
    +        'W' => ['Group' => 'Power', 'Unit Name' => 'Watt', 'AllowPrefix' => true],
    +        'w' => ['Group' => 'Power', 'Unit Name' => 'Watt', 'AllowPrefix' => true],
    +        'T' => ['Group' => 'Magnetism', 'Unit Name' => 'Tesla', 'AllowPrefix' => true],
    +        'ga' => ['Group' => 'Magnetism', 'Unit Name' => 'Gauss', 'AllowPrefix' => true],
    +        'C' => ['Group' => 'Temperature', 'Unit Name' => 'Celsius', 'AllowPrefix' => false],
    +        'cel' => ['Group' => 'Temperature', 'Unit Name' => 'Celsius', 'AllowPrefix' => false],
    +        'F' => ['Group' => 'Temperature', 'Unit Name' => 'Fahrenheit', 'AllowPrefix' => false],
    +        'fah' => ['Group' => 'Temperature', 'Unit Name' => 'Fahrenheit', 'AllowPrefix' => false],
    +        'K' => ['Group' => 'Temperature', 'Unit Name' => 'Kelvin', 'AllowPrefix' => false],
    +        'kel' => ['Group' => 'Temperature', 'Unit Name' => 'Kelvin', 'AllowPrefix' => false],
    +        'tsp' => ['Group' => 'Liquid', 'Unit Name' => 'Teaspoon', 'AllowPrefix' => false],
    +        'tbs' => ['Group' => 'Liquid', 'Unit Name' => 'Tablespoon', 'AllowPrefix' => false],
    +        'oz' => ['Group' => 'Liquid', 'Unit Name' => 'Fluid Ounce', 'AllowPrefix' => false],
    +        'cup' => ['Group' => 'Liquid', 'Unit Name' => 'Cup', 'AllowPrefix' => false],
    +        'pt' => ['Group' => 'Liquid', 'Unit Name' => 'U.S. Pint', 'AllowPrefix' => false],
    +        'us_pt' => ['Group' => 'Liquid', 'Unit Name' => 'U.S. Pint', 'AllowPrefix' => false],
    +        'uk_pt' => ['Group' => 'Liquid', 'Unit Name' => 'U.K. Pint', 'AllowPrefix' => false],
    +        'qt' => ['Group' => 'Liquid', 'Unit Name' => 'Quart', 'AllowPrefix' => false],
    +        'gal' => ['Group' => 'Liquid', 'Unit Name' => 'Gallon', 'AllowPrefix' => false],
    +        'l' => ['Group' => 'Liquid', 'Unit Name' => 'Litre', 'AllowPrefix' => true],
    +        'lt' => ['Group' => 'Liquid', 'Unit Name' => 'Litre', 'AllowPrefix' => true],
    +    ];
    +
    +    /**
    +     * Details of the Multiplier prefixes that can be used with Units of Measure in CONVERTUOM().
    +     *
    +     * @var mixed[]
    +     */
    +    private static $conversionMultipliers = [
    +        'Y' => ['multiplier' => 1E24, 'name' => 'yotta'],
    +        'Z' => ['multiplier' => 1E21, 'name' => 'zetta'],
    +        'E' => ['multiplier' => 1E18, 'name' => 'exa'],
    +        'P' => ['multiplier' => 1E15, 'name' => 'peta'],
    +        'T' => ['multiplier' => 1E12, 'name' => 'tera'],
    +        'G' => ['multiplier' => 1E9, 'name' => 'giga'],
    +        'M' => ['multiplier' => 1E6, 'name' => 'mega'],
    +        'k' => ['multiplier' => 1E3, 'name' => 'kilo'],
    +        'h' => ['multiplier' => 1E2, 'name' => 'hecto'],
    +        'e' => ['multiplier' => 1E1, 'name' => 'deka'],
    +        'd' => ['multiplier' => 1E-1, 'name' => 'deci'],
    +        'c' => ['multiplier' => 1E-2, 'name' => 'centi'],
    +        'm' => ['multiplier' => 1E-3, 'name' => 'milli'],
    +        'u' => ['multiplier' => 1E-6, 'name' => 'micro'],
    +        'n' => ['multiplier' => 1E-9, 'name' => 'nano'],
    +        'p' => ['multiplier' => 1E-12, 'name' => 'pico'],
    +        'f' => ['multiplier' => 1E-15, 'name' => 'femto'],
    +        'a' => ['multiplier' => 1E-18, 'name' => 'atto'],
    +        'z' => ['multiplier' => 1E-21, 'name' => 'zepto'],
    +        'y' => ['multiplier' => 1E-24, 'name' => 'yocto'],
    +    ];
    +
    +    /**
    +     * Details of the Units of measure conversion factors, organised by group.
    +     *
    +     * @var mixed[]
    +     */
    +    private static $unitConversions = [
    +        'Mass' => [
    +            'g' => [
    +                'g' => 1.0,
    +                'sg' => 6.85220500053478E-05,
    +                'lbm' => 2.20462291469134E-03,
    +                'u' => 6.02217000000000E+23,
    +                'ozm' => 3.52739718003627E-02,
    +            ],
    +            'sg' => [
    +                'g' => 1.45938424189287E+04,
    +                'sg' => 1.0,
    +                'lbm' => 3.21739194101647E+01,
    +                'u' => 8.78866000000000E+27,
    +                'ozm' => 5.14782785944229E+02,
    +            ],
    +            'lbm' => [
    +                'g' => 4.5359230974881148E+02,
    +                'sg' => 3.10810749306493E-02,
    +                'lbm' => 1.0,
    +                'u' => 2.73161000000000E+26,
    +                'ozm' => 1.60000023429410E+01,
    +            ],
    +            'u' => [
    +                'g' => 1.66053100460465E-24,
    +                'sg' => 1.13782988532950E-28,
    +                'lbm' => 3.66084470330684E-27,
    +                'u' => 1.0,
    +                'ozm' => 5.85735238300524E-26,
    +            ],
    +            'ozm' => [
    +                'g' => 2.83495152079732E+01,
    +                'sg' => 1.94256689870811E-03,
    +                'lbm' => 6.24999908478882E-02,
    +                'u' => 1.70725600000000E+25,
    +                'ozm' => 1.0,
    +            ],
    +        ],
    +        'Distance' => [
    +            'm' => [
    +                'm' => 1.0,
    +                'mi' => 6.21371192237334E-04,
    +                'Nmi' => 5.39956803455724E-04,
    +                'in' => 3.93700787401575E+01,
    +                'ft' => 3.28083989501312E+00,
    +                'yd' => 1.09361329797891E+00,
    +                'ang' => 1.00000000000000E+10,
    +                'Pica' => 2.83464566929116E+03,
    +            ],
    +            'mi' => [
    +                'm' => 1.60934400000000E+03,
    +                'mi' => 1.0,
    +                'Nmi' => 8.68976241900648E-01,
    +                'in' => 6.33600000000000E+04,
    +                'ft' => 5.28000000000000E+03,
    +                'yd' => 1.76000000000000E+03,
    +                'ang' => 1.60934400000000E+13,
    +                'Pica' => 4.56191999999971E+06,
    +            ],
    +            'Nmi' => [
    +                'm' => 1.85200000000000E+03,
    +                'mi' => 1.15077944802354E+00,
    +                'Nmi' => 1.0,
    +                'in' => 7.29133858267717E+04,
    +                'ft' => 6.07611548556430E+03,
    +                'yd' => 2.02537182785694E+03,
    +                'ang' => 1.85200000000000E+13,
    +                'Pica' => 5.24976377952723E+06,
    +            ],
    +            'in' => [
    +                'm' => 2.54000000000000E-02,
    +                'mi' => 1.57828282828283E-05,
    +                'Nmi' => 1.37149028077754E-05,
    +                'in' => 1.0,
    +                'ft' => 8.33333333333333E-02,
    +                'yd' => 2.77777777686643E-02,
    +                'ang' => 2.54000000000000E+08,
    +                'Pica' => 7.19999999999955E+01,
    +            ],
    +            'ft' => [
    +                'm' => 3.04800000000000E-01,
    +                'mi' => 1.89393939393939E-04,
    +                'Nmi' => 1.64578833693305E-04,
    +                'in' => 1.20000000000000E+01,
    +                'ft' => 1.0,
    +                'yd' => 3.33333333223972E-01,
    +                'ang' => 3.04800000000000E+09,
    +                'Pica' => 8.63999999999946E+02,
    +            ],
    +            'yd' => [
    +                'm' => 9.14400000300000E-01,
    +                'mi' => 5.68181818368230E-04,
    +                'Nmi' => 4.93736501241901E-04,
    +                'in' => 3.60000000118110E+01,
    +                'ft' => 3.00000000000000E+00,
    +                'yd' => 1.0,
    +                'ang' => 9.14400000300000E+09,
    +                'Pica' => 2.59200000085023E+03,
    +            ],
    +            'ang' => [
    +                'm' => 1.00000000000000E-10,
    +                'mi' => 6.21371192237334E-14,
    +                'Nmi' => 5.39956803455724E-14,
    +                'in' => 3.93700787401575E-09,
    +                'ft' => 3.28083989501312E-10,
    +                'yd' => 1.09361329797891E-10,
    +                'ang' => 1.0,
    +                'Pica' => 2.83464566929116E-07,
    +            ],
    +            'Pica' => [
    +                'm' => 3.52777777777800E-04,
    +                'mi' => 2.19205948372629E-07,
    +                'Nmi' => 1.90484761219114E-07,
    +                'in' => 1.38888888888898E-02,
    +                'ft' => 1.15740740740748E-03,
    +                'yd' => 3.85802469009251E-04,
    +                'ang' => 3.52777777777800E+06,
    +                'Pica' => 1.0,
    +            ],
    +        ],
    +        'Time' => [
    +            'yr' => [
    +                'yr' => 1.0,
    +                'day' => 365.25,
    +                'hr' => 8766.0,
    +                'mn' => 525960.0,
    +                'sec' => 31557600.0,
    +            ],
    +            'day' => [
    +                'yr' => 2.73785078713210E-03,
    +                'day' => 1.0,
    +                'hr' => 24.0,
    +                'mn' => 1440.0,
    +                'sec' => 86400.0,
    +            ],
    +            'hr' => [
    +                'yr' => 1.14077116130504E-04,
    +                'day' => 4.16666666666667E-02,
    +                'hr' => 1.0,
    +                'mn' => 60.0,
    +                'sec' => 3600.0,
    +            ],
    +            'mn' => [
    +                'yr' => 1.90128526884174E-06,
    +                'day' => 6.94444444444444E-04,
    +                'hr' => 1.66666666666667E-02,
    +                'mn' => 1.0,
    +                'sec' => 60.0,
    +            ],
    +            'sec' => [
    +                'yr' => 3.16880878140289E-08,
    +                'day' => 1.15740740740741E-05,
    +                'hr' => 2.77777777777778E-04,
    +                'mn' => 1.66666666666667E-02,
    +                'sec' => 1.0,
    +            ],
    +        ],
    +        'Pressure' => [
    +            'Pa' => [
    +                'Pa' => 1.0,
    +                'p' => 1.0,
    +                'atm' => 9.86923299998193E-06,
    +                'at' => 9.86923299998193E-06,
    +                'mmHg' => 7.50061707998627E-03,
    +            ],
    +            'p' => [
    +                'Pa' => 1.0,
    +                'p' => 1.0,
    +                'atm' => 9.86923299998193E-06,
    +                'at' => 9.86923299998193E-06,
    +                'mmHg' => 7.50061707998627E-03,
    +            ],
    +            'atm' => [
    +                'Pa' => 1.01324996583000E+05,
    +                'p' => 1.01324996583000E+05,
    +                'atm' => 1.0,
    +                'at' => 1.0,
    +                'mmHg' => 760.0,
    +            ],
    +            'at' => [
    +                'Pa' => 1.01324996583000E+05,
    +                'p' => 1.01324996583000E+05,
    +                'atm' => 1.0,
    +                'at' => 1.0,
    +                'mmHg' => 760.0,
    +            ],
    +            'mmHg' => [
    +                'Pa' => 1.33322363925000E+02,
    +                'p' => 1.33322363925000E+02,
    +                'atm' => 1.31578947368421E-03,
    +                'at' => 1.31578947368421E-03,
    +                'mmHg' => 1.0,
    +            ],
    +        ],
    +        'Force' => [
    +            'N' => [
    +                'N' => 1.0,
    +                'dyn' => 1.0E+5,
    +                'dy' => 1.0E+5,
    +                'lbf' => 2.24808923655339E-01,
    +            ],
    +            'dyn' => [
    +                'N' => 1.0E-5,
    +                'dyn' => 1.0,
    +                'dy' => 1.0,
    +                'lbf' => 2.24808923655339E-06,
    +            ],
    +            'dy' => [
    +                'N' => 1.0E-5,
    +                'dyn' => 1.0,
    +                'dy' => 1.0,
    +                'lbf' => 2.24808923655339E-06,
    +            ],
    +            'lbf' => [
    +                'N' => 4.448222,
    +                'dyn' => 4.448222E+5,
    +                'dy' => 4.448222E+5,
    +                'lbf' => 1.0,
    +            ],
    +        ],
    +        'Energy' => [
    +            'J' => [
    +                'J' => 1.0,
    +                'e' => 9.99999519343231E+06,
    +                'c' => 2.39006249473467E-01,
    +                'cal' => 2.38846190642017E-01,
    +                'eV' => 6.24145700000000E+18,
    +                'ev' => 6.24145700000000E+18,
    +                'HPh' => 3.72506430801000E-07,
    +                'hh' => 3.72506430801000E-07,
    +                'Wh' => 2.77777916238711E-04,
    +                'wh' => 2.77777916238711E-04,
    +                'flb' => 2.37304222192651E+01,
    +                'BTU' => 9.47815067349015E-04,
    +                'btu' => 9.47815067349015E-04,
    +            ],
    +            'e' => [
    +                'J' => 1.00000048065700E-07,
    +                'e' => 1.0,
    +                'c' => 2.39006364353494E-08,
    +                'cal' => 2.38846305445111E-08,
    +                'eV' => 6.24146000000000E+11,
    +                'ev' => 6.24146000000000E+11,
    +                'HPh' => 3.72506609848824E-14,
    +                'hh' => 3.72506609848824E-14,
    +                'Wh' => 2.77778049754611E-11,
    +                'wh' => 2.77778049754611E-11,
    +                'flb' => 2.37304336254586E-06,
    +                'BTU' => 9.47815522922962E-11,
    +                'btu' => 9.47815522922962E-11,
    +            ],
    +            'c' => [
    +                'J' => 4.18399101363672E+00,
    +                'e' => 4.18398900257312E+07,
    +                'c' => 1.0,
    +                'cal' => 9.99330315287563E-01,
    +                'eV' => 2.61142000000000E+19,
    +                'ev' => 2.61142000000000E+19,
    +                'HPh' => 1.55856355899327E-06,
    +                'hh' => 1.55856355899327E-06,
    +                'Wh' => 1.16222030532950E-03,
    +                'wh' => 1.16222030532950E-03,
    +                'flb' => 9.92878733152102E+01,
    +                'BTU' => 3.96564972437776E-03,
    +                'btu' => 3.96564972437776E-03,
    +            ],
    +            'cal' => [
    +                'J' => 4.18679484613929E+00,
    +                'e' => 4.18679283372801E+07,
    +                'c' => 1.00067013349059E+00,
    +                'cal' => 1.0,
    +                'eV' => 2.61317000000000E+19,
    +                'ev' => 2.61317000000000E+19,
    +                'HPh' => 1.55960800463137E-06,
    +                'hh' => 1.55960800463137E-06,
    +                'Wh' => 1.16299914807955E-03,
    +                'wh' => 1.16299914807955E-03,
    +                'flb' => 9.93544094443283E+01,
    +                'BTU' => 3.96830723907002E-03,
    +                'btu' => 3.96830723907002E-03,
    +            ],
    +            'eV' => [
    +                'J' => 1.60219000146921E-19,
    +                'e' => 1.60218923136574E-12,
    +                'c' => 3.82933423195043E-20,
    +                'cal' => 3.82676978535648E-20,
    +                'eV' => 1.0,
    +                'ev' => 1.0,
    +                'HPh' => 5.96826078912344E-26,
    +                'hh' => 5.96826078912344E-26,
    +                'Wh' => 4.45053000026614E-23,
    +                'wh' => 4.45053000026614E-23,
    +                'flb' => 3.80206452103492E-18,
    +                'BTU' => 1.51857982414846E-22,
    +                'btu' => 1.51857982414846E-22,
    +            ],
    +            'ev' => [
    +                'J' => 1.60219000146921E-19,
    +                'e' => 1.60218923136574E-12,
    +                'c' => 3.82933423195043E-20,
    +                'cal' => 3.82676978535648E-20,
    +                'eV' => 1.0,
    +                'ev' => 1.0,
    +                'HPh' => 5.96826078912344E-26,
    +                'hh' => 5.96826078912344E-26,
    +                'Wh' => 4.45053000026614E-23,
    +                'wh' => 4.45053000026614E-23,
    +                'flb' => 3.80206452103492E-18,
    +                'BTU' => 1.51857982414846E-22,
    +                'btu' => 1.51857982414846E-22,
    +            ],
    +            'HPh' => [
    +                'J' => 2.68451741316170E+06,
    +                'e' => 2.68451612283024E+13,
    +                'c' => 6.41616438565991E+05,
    +                'cal' => 6.41186757845835E+05,
    +                'eV' => 1.67553000000000E+25,
    +                'ev' => 1.67553000000000E+25,
    +                'HPh' => 1.0,
    +                'hh' => 1.0,
    +                'Wh' => 7.45699653134593E+02,
    +                'wh' => 7.45699653134593E+02,
    +                'flb' => 6.37047316692964E+07,
    +                'BTU' => 2.54442605275546E+03,
    +                'btu' => 2.54442605275546E+03,
    +            ],
    +            'hh' => [
    +                'J' => 2.68451741316170E+06,
    +                'e' => 2.68451612283024E+13,
    +                'c' => 6.41616438565991E+05,
    +                'cal' => 6.41186757845835E+05,
    +                'eV' => 1.67553000000000E+25,
    +                'ev' => 1.67553000000000E+25,
    +                'HPh' => 1.0,
    +                'hh' => 1.0,
    +                'Wh' => 7.45699653134593E+02,
    +                'wh' => 7.45699653134593E+02,
    +                'flb' => 6.37047316692964E+07,
    +                'BTU' => 2.54442605275546E+03,
    +                'btu' => 2.54442605275546E+03,
    +            ],
    +            'Wh' => [
    +                'J' => 3.59999820554720E+03,
    +                'e' => 3.59999647518369E+10,
    +                'c' => 8.60422069219046E+02,
    +                'cal' => 8.59845857713046E+02,
    +                'eV' => 2.24692340000000E+22,
    +                'ev' => 2.24692340000000E+22,
    +                'HPh' => 1.34102248243839E-03,
    +                'hh' => 1.34102248243839E-03,
    +                'Wh' => 1.0,
    +                'wh' => 1.0,
    +                'flb' => 8.54294774062316E+04,
    +                'BTU' => 3.41213254164705E+00,
    +                'btu' => 3.41213254164705E+00,
    +            ],
    +            'wh' => [
    +                'J' => 3.59999820554720E+03,
    +                'e' => 3.59999647518369E+10,
    +                'c' => 8.60422069219046E+02,
    +                'cal' => 8.59845857713046E+02,
    +                'eV' => 2.24692340000000E+22,
    +                'ev' => 2.24692340000000E+22,
    +                'HPh' => 1.34102248243839E-03,
    +                'hh' => 1.34102248243839E-03,
    +                'Wh' => 1.0,
    +                'wh' => 1.0,
    +                'flb' => 8.54294774062316E+04,
    +                'BTU' => 3.41213254164705E+00,
    +                'btu' => 3.41213254164705E+00,
    +            ],
    +            'flb' => [
    +                'J' => 4.21400003236424E-02,
    +                'e' => 4.21399800687660E+05,
    +                'c' => 1.00717234301644E-02,
    +                'cal' => 1.00649785509554E-02,
    +                'eV' => 2.63015000000000E+17,
    +                'ev' => 2.63015000000000E+17,
    +                'HPh' => 1.56974211145130E-08,
    +                'hh' => 1.56974211145130E-08,
    +                'Wh' => 1.17055614802000E-05,
    +                'wh' => 1.17055614802000E-05,
    +                'flb' => 1.0,
    +                'BTU' => 3.99409272448406E-05,
    +                'btu' => 3.99409272448406E-05,
    +            ],
    +            'BTU' => [
    +                'J' => 1.05505813786749E+03,
    +                'e' => 1.05505763074665E+10,
    +                'c' => 2.52165488508168E+02,
    +                'cal' => 2.51996617135510E+02,
    +                'eV' => 6.58510000000000E+21,
    +                'ev' => 6.58510000000000E+21,
    +                'HPh' => 3.93015941224568E-04,
    +                'hh' => 3.93015941224568E-04,
    +                'Wh' => 2.93071851047526E-01,
    +                'wh' => 2.93071851047526E-01,
    +                'flb' => 2.50369750774671E+04,
    +                'BTU' => 1.0,
    +                'btu' => 1.0,
    +            ],
    +            'btu' => [
    +                'J' => 1.05505813786749E+03,
    +                'e' => 1.05505763074665E+10,
    +                'c' => 2.52165488508168E+02,
    +                'cal' => 2.51996617135510E+02,
    +                'eV' => 6.58510000000000E+21,
    +                'ev' => 6.58510000000000E+21,
    +                'HPh' => 3.93015941224568E-04,
    +                'hh' => 3.93015941224568E-04,
    +                'Wh' => 2.93071851047526E-01,
    +                'wh' => 2.93071851047526E-01,
    +                'flb' => 2.50369750774671E+04,
    +                'BTU' => 1.0,
    +                'btu' => 1.0,
    +            ],
    +        ],
    +        'Power' => [
    +            'HP' => [
    +                'HP' => 1.0,
    +                'h' => 1.0,
    +                'W' => 7.45701000000000E+02,
    +                'w' => 7.45701000000000E+02,
    +            ],
    +            'h' => [
    +                'HP' => 1.0,
    +                'h' => 1.0,
    +                'W' => 7.45701000000000E+02,
    +                'w' => 7.45701000000000E+02,
    +            ],
    +            'W' => [
    +                'HP' => 1.34102006031908E-03,
    +                'h' => 1.34102006031908E-03,
    +                'W' => 1.0,
    +                'w' => 1.0,
    +            ],
    +            'w' => [
    +                'HP' => 1.34102006031908E-03,
    +                'h' => 1.34102006031908E-03,
    +                'W' => 1.0,
    +                'w' => 1.0,
    +            ],
    +        ],
    +        'Magnetism' => [
    +            'T' => [
    +                'T' => 1.0,
    +                'ga' => 10000.0,
    +            ],
    +            'ga' => [
    +                'T' => 0.0001,
    +                'ga' => 1.0,
    +            ],
    +        ],
    +        'Liquid' => [
    +            'tsp' => [
    +                'tsp' => 1.0,
    +                'tbs' => 3.33333333333333E-01,
    +                'oz' => 1.66666666666667E-01,
    +                'cup' => 2.08333333333333E-02,
    +                'pt' => 1.04166666666667E-02,
    +                'us_pt' => 1.04166666666667E-02,
    +                'uk_pt' => 8.67558516821960E-03,
    +                'qt' => 5.20833333333333E-03,
    +                'gal' => 1.30208333333333E-03,
    +                'l' => 4.92999408400710E-03,
    +                'lt' => 4.92999408400710E-03,
    +            ],
    +            'tbs' => [
    +                'tsp' => 3.00000000000000E+00,
    +                'tbs' => 1.0,
    +                'oz' => 5.00000000000000E-01,
    +                'cup' => 6.25000000000000E-02,
    +                'pt' => 3.12500000000000E-02,
    +                'us_pt' => 3.12500000000000E-02,
    +                'uk_pt' => 2.60267555046588E-02,
    +                'qt' => 1.56250000000000E-02,
    +                'gal' => 3.90625000000000E-03,
    +                'l' => 1.47899822520213E-02,
    +                'lt' => 1.47899822520213E-02,
    +            ],
    +            'oz' => [
    +                'tsp' => 6.00000000000000E+00,
    +                'tbs' => 2.00000000000000E+00,
    +                'oz' => 1.0,
    +                'cup' => 1.25000000000000E-01,
    +                'pt' => 6.25000000000000E-02,
    +                'us_pt' => 6.25000000000000E-02,
    +                'uk_pt' => 5.20535110093176E-02,
    +                'qt' => 3.12500000000000E-02,
    +                'gal' => 7.81250000000000E-03,
    +                'l' => 2.95799645040426E-02,
    +                'lt' => 2.95799645040426E-02,
    +            ],
    +            'cup' => [
    +                'tsp' => 4.80000000000000E+01,
    +                'tbs' => 1.60000000000000E+01,
    +                'oz' => 8.00000000000000E+00,
    +                'cup' => 1.0,
    +                'pt' => 5.00000000000000E-01,
    +                'us_pt' => 5.00000000000000E-01,
    +                'uk_pt' => 4.16428088074541E-01,
    +                'qt' => 2.50000000000000E-01,
    +                'gal' => 6.25000000000000E-02,
    +                'l' => 2.36639716032341E-01,
    +                'lt' => 2.36639716032341E-01,
    +            ],
    +            'pt' => [
    +                'tsp' => 9.60000000000000E+01,
    +                'tbs' => 3.20000000000000E+01,
    +                'oz' => 1.60000000000000E+01,
    +                'cup' => 2.00000000000000E+00,
    +                'pt' => 1.0,
    +                'us_pt' => 1.0,
    +                'uk_pt' => 8.32856176149081E-01,
    +                'qt' => 5.00000000000000E-01,
    +                'gal' => 1.25000000000000E-01,
    +                'l' => 4.73279432064682E-01,
    +                'lt' => 4.73279432064682E-01,
    +            ],
    +            'us_pt' => [
    +                'tsp' => 9.60000000000000E+01,
    +                'tbs' => 3.20000000000000E+01,
    +                'oz' => 1.60000000000000E+01,
    +                'cup' => 2.00000000000000E+00,
    +                'pt' => 1.0,
    +                'us_pt' => 1.0,
    +                'uk_pt' => 8.32856176149081E-01,
    +                'qt' => 5.00000000000000E-01,
    +                'gal' => 1.25000000000000E-01,
    +                'l' => 4.73279432064682E-01,
    +                'lt' => 4.73279432064682E-01,
    +            ],
    +            'uk_pt' => [
    +                'tsp' => 1.15266000000000E+02,
    +                'tbs' => 3.84220000000000E+01,
    +                'oz' => 1.92110000000000E+01,
    +                'cup' => 2.40137500000000E+00,
    +                'pt' => 1.20068750000000E+00,
    +                'us_pt' => 1.20068750000000E+00,
    +                'uk_pt' => 1.0,
    +                'qt' => 6.00343750000000E-01,
    +                'gal' => 1.50085937500000E-01,
    +                'l' => 5.68260698087162E-01,
    +                'lt' => 5.68260698087162E-01,
    +            ],
    +            'qt' => [
    +                'tsp' => 1.92000000000000E+02,
    +                'tbs' => 6.40000000000000E+01,
    +                'oz' => 3.20000000000000E+01,
    +                'cup' => 4.00000000000000E+00,
    +                'pt' => 2.00000000000000E+00,
    +                'us_pt' => 2.00000000000000E+00,
    +                'uk_pt' => 1.66571235229816E+00,
    +                'qt' => 1.0,
    +                'gal' => 2.50000000000000E-01,
    +                'l' => 9.46558864129363E-01,
    +                'lt' => 9.46558864129363E-01,
    +            ],
    +            'gal' => [
    +                'tsp' => 7.68000000000000E+02,
    +                'tbs' => 2.56000000000000E+02,
    +                'oz' => 1.28000000000000E+02,
    +                'cup' => 1.60000000000000E+01,
    +                'pt' => 8.00000000000000E+00,
    +                'us_pt' => 8.00000000000000E+00,
    +                'uk_pt' => 6.66284940919265E+00,
    +                'qt' => 4.00000000000000E+00,
    +                'gal' => 1.0,
    +                'l' => 3.78623545651745E+00,
    +                'lt' => 3.78623545651745E+00,
    +            ],
    +            'l' => [
    +                'tsp' => 2.02840000000000E+02,
    +                'tbs' => 6.76133333333333E+01,
    +                'oz' => 3.38066666666667E+01,
    +                'cup' => 4.22583333333333E+00,
    +                'pt' => 2.11291666666667E+00,
    +                'us_pt' => 2.11291666666667E+00,
    +                'uk_pt' => 1.75975569552166E+00,
    +                'qt' => 1.05645833333333E+00,
    +                'gal' => 2.64114583333333E-01,
    +                'l' => 1.0,
    +                'lt' => 1.0,
    +            ],
    +            'lt' => [
    +                'tsp' => 2.02840000000000E+02,
    +                'tbs' => 6.76133333333333E+01,
    +                'oz' => 3.38066666666667E+01,
    +                'cup' => 4.22583333333333E+00,
    +                'pt' => 2.11291666666667E+00,
    +                'us_pt' => 2.11291666666667E+00,
    +                'uk_pt' => 1.75975569552166E+00,
    +                'qt' => 1.05645833333333E+00,
    +                'gal' => 2.64114583333333E-01,
    +                'l' => 1.0,
    +                'lt' => 1.0,
    +            ],
    +        ],
    +    ];
    +
    +    /**
    +     * parseComplex.
    +     *
    +     * Parses a complex number into its real and imaginary parts, and an I or J suffix
    +     *
    +     * @deprecated 2.0.0 No longer used by internal code. Please use the Complex\Complex class instead
    +     *
    +     * @param string $complexNumber The complex number
    +     *
    +     * @return mixed[] Indexed on "real", "imaginary" and "suffix"
    +     */
    +    public static function parseComplex($complexNumber)
    +    {
    +        $complex = new Complex($complexNumber);
    +
    +        return [
    +            'real' => $complex->getReal(),
    +            'imaginary' => $complex->getImaginary(),
    +            'suffix' => $complex->getSuffix(),
    +        ];
    +    }
    +
    +    /**
    +     * Formats a number base string value with leading zeroes.
    +     *
    +     * @param string $xVal The "number" to pad
    +     * @param int $places The length that we want to pad this value
    +     *
    +     * @return string The padded "number"
    +     */
    +    private static function nbrConversionFormat($xVal, $places)
    +    {
    +        if ($places !== null) {
    +            if (is_numeric($places)) {
    +                $places = (int) $places;
    +            } else {
    +                return Functions::VALUE();
    +            }
    +            if ($places < 0) {
    +                return Functions::NAN();
    +            }
    +            if (strlen($xVal) <= $places) {
    +                return substr(str_pad($xVal, $places, '0', STR_PAD_LEFT), -10);
    +            }
    +
    +            return Functions::NAN();
    +        }
    +
    +        return substr($xVal, -10);
    +    }
    +
    +    /**
    +     * BESSELI.
    +     *
    +     *    Returns the modified Bessel function In(x), which is equivalent to the Bessel function evaluated
    +     *        for purely imaginary arguments
    +     *
    +     *    Excel Function:
    +     *        BESSELI(x,ord)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param float $x The value at which to evaluate the function.
    +     *                                If x is nonnumeric, BESSELI returns the #VALUE! error value.
    +     * @param int $ord The order of the Bessel function.
    +     *                                If ord is not an integer, it is truncated.
    +     *                                If $ord is nonnumeric, BESSELI returns the #VALUE! error value.
    +     *                                If $ord < 0, BESSELI returns the #NUM! error value.
    +     *
    +     * @return float
    +     */
    +    public static function BESSELI($x, $ord)
    +    {
    +        $x = ($x === null) ? 0.0 : Functions::flattenSingleValue($x);
    +        $ord = ($ord === null) ? 0.0 : Functions::flattenSingleValue($ord);
    +
    +        if ((is_numeric($x)) && (is_numeric($ord))) {
    +            $ord = floor($ord);
    +            if ($ord < 0) {
    +                return Functions::NAN();
    +            }
    +
    +            if (abs($x) <= 30) {
    +                $fResult = $fTerm = pow($x / 2, $ord) / MathTrig::FACT($ord);
    +                $ordK = 1;
    +                $fSqrX = ($x * $x) / 4;
    +                do {
    +                    $fTerm *= $fSqrX;
    +                    $fTerm /= ($ordK * ($ordK + $ord));
    +                    $fResult += $fTerm;
    +                } while ((abs($fTerm) > 1e-12) && (++$ordK < 100));
    +            } else {
    +                $f_2_PI = 2 * M_PI;
    +
    +                $fXAbs = abs($x);
    +                $fResult = exp($fXAbs) / sqrt($f_2_PI * $fXAbs);
    +                if (($ord & 1) && ($x < 0)) {
    +                    $fResult = -$fResult;
    +                }
    +            }
    +
    +            return (is_nan($fResult)) ? Functions::NAN() : $fResult;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * BESSELJ.
    +     *
    +     *    Returns the Bessel function
    +     *
    +     *    Excel Function:
    +     *        BESSELJ(x,ord)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param float $x The value at which to evaluate the function.
    +     *                                If x is nonnumeric, BESSELJ returns the #VALUE! error value.
    +     * @param int $ord The order of the Bessel function. If n is not an integer, it is truncated.
    +     *                                If $ord is nonnumeric, BESSELJ returns the #VALUE! error value.
    +     *                                If $ord < 0, BESSELJ returns the #NUM! error value.
    +     *
    +     * @return float
    +     */
    +    public static function BESSELJ($x, $ord)
    +    {
    +        $x = ($x === null) ? 0.0 : Functions::flattenSingleValue($x);
    +        $ord = ($ord === null) ? 0.0 : Functions::flattenSingleValue($ord);
    +
    +        if ((is_numeric($x)) && (is_numeric($ord))) {
    +            $ord = floor($ord);
    +            if ($ord < 0) {
    +                return Functions::NAN();
    +            }
    +
    +            $fResult = 0;
    +            if (abs($x) <= 30) {
    +                $fResult = $fTerm = pow($x / 2, $ord) / MathTrig::FACT($ord);
    +                $ordK = 1;
    +                $fSqrX = ($x * $x) / -4;
    +                do {
    +                    $fTerm *= $fSqrX;
    +                    $fTerm /= ($ordK * ($ordK + $ord));
    +                    $fResult += $fTerm;
    +                } while ((abs($fTerm) > 1e-12) && (++$ordK < 100));
    +            } else {
    +                $f_PI_DIV_2 = M_PI / 2;
    +                $f_PI_DIV_4 = M_PI / 4;
    +
    +                $fXAbs = abs($x);
    +                $fResult = sqrt(Functions::M_2DIVPI / $fXAbs) * cos($fXAbs - $ord * $f_PI_DIV_2 - $f_PI_DIV_4);
    +                if (($ord & 1) && ($x < 0)) {
    +                    $fResult = -$fResult;
    +                }
    +            }
    +
    +            return (is_nan($fResult)) ? Functions::NAN() : $fResult;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    private static function besselK0($fNum)
    +    {
    +        if ($fNum <= 2) {
    +            $fNum2 = $fNum * 0.5;
    +            $y = ($fNum2 * $fNum2);
    +            $fRet = -log($fNum2) * self::BESSELI($fNum, 0) +
    +                (-0.57721566 + $y * (0.42278420 + $y * (0.23069756 + $y * (0.3488590e-1 + $y * (0.262698e-2 + $y *
    +                                    (0.10750e-3 + $y * 0.74e-5))))));
    +        } else {
    +            $y = 2 / $fNum;
    +            $fRet = exp(-$fNum) / sqrt($fNum) *
    +                (1.25331414 + $y * (-0.7832358e-1 + $y * (0.2189568e-1 + $y * (-0.1062446e-1 + $y *
    +                                (0.587872e-2 + $y * (-0.251540e-2 + $y * 0.53208e-3))))));
    +        }
    +
    +        return $fRet;
    +    }
    +
    +    private static function besselK1($fNum)
    +    {
    +        if ($fNum <= 2) {
    +            $fNum2 = $fNum * 0.5;
    +            $y = ($fNum2 * $fNum2);
    +            $fRet = log($fNum2) * self::BESSELI($fNum, 1) +
    +                (1 + $y * (0.15443144 + $y * (-0.67278579 + $y * (-0.18156897 + $y * (-0.1919402e-1 + $y *
    +                                    (-0.110404e-2 + $y * (-0.4686e-4))))))) / $fNum;
    +        } else {
    +            $y = 2 / $fNum;
    +            $fRet = exp(-$fNum) / sqrt($fNum) *
    +                (1.25331414 + $y * (0.23498619 + $y * (-0.3655620e-1 + $y * (0.1504268e-1 + $y * (-0.780353e-2 + $y *
    +                                    (0.325614e-2 + $y * (-0.68245e-3)))))));
    +        }
    +
    +        return $fRet;
    +    }
    +
    +    /**
    +     * BESSELK.
    +     *
    +     *    Returns the modified Bessel function Kn(x), which is equivalent to the Bessel functions evaluated
    +     *        for purely imaginary arguments.
    +     *
    +     *    Excel Function:
    +     *        BESSELK(x,ord)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param float $x The value at which to evaluate the function.
    +     *                                If x is nonnumeric, BESSELK returns the #VALUE! error value.
    +     * @param int $ord The order of the Bessel function. If n is not an integer, it is truncated.
    +     *                                If $ord is nonnumeric, BESSELK returns the #VALUE! error value.
    +     *                                If $ord < 0, BESSELK returns the #NUM! error value.
    +     *
    +     * @return float
    +     */
    +    public static function BESSELK($x, $ord)
    +    {
    +        $x = ($x === null) ? 0.0 : Functions::flattenSingleValue($x);
    +        $ord = ($ord === null) ? 0.0 : Functions::flattenSingleValue($ord);
    +
    +        if ((is_numeric($x)) && (is_numeric($ord))) {
    +            if (($ord < 0) || ($x == 0.0)) {
    +                return Functions::NAN();
    +            }
    +
    +            switch (floor($ord)) {
    +                case 0:
    +                    $fBk = self::besselK0($x);
    +
    +                    break;
    +                case 1:
    +                    $fBk = self::besselK1($x);
    +
    +                    break;
    +                default:
    +                    $fTox = 2 / $x;
    +                    $fBkm = self::besselK0($x);
    +                    $fBk = self::besselK1($x);
    +                    for ($n = 1; $n < $ord; ++$n) {
    +                        $fBkp = $fBkm + $n * $fTox * $fBk;
    +                        $fBkm = $fBk;
    +                        $fBk = $fBkp;
    +                    }
    +            }
    +
    +            return (is_nan($fBk)) ? Functions::NAN() : $fBk;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    private static function besselY0($fNum)
    +    {
    +        if ($fNum < 8.0) {
    +            $y = ($fNum * $fNum);
    +            $f1 = -2957821389.0 + $y * (7062834065.0 + $y * (-512359803.6 + $y * (10879881.29 + $y * (-86327.92757 + $y * 228.4622733))));
    +            $f2 = 40076544269.0 + $y * (745249964.8 + $y * (7189466.438 + $y * (47447.26470 + $y * (226.1030244 + $y))));
    +            $fRet = $f1 / $f2 + 0.636619772 * self::BESSELJ($fNum, 0) * log($fNum);
    +        } else {
    +            $z = 8.0 / $fNum;
    +            $y = ($z * $z);
    +            $xx = $fNum - 0.785398164;
    +            $f1 = 1 + $y * (-0.1098628627e-2 + $y * (0.2734510407e-4 + $y * (-0.2073370639e-5 + $y * 0.2093887211e-6)));
    +            $f2 = -0.1562499995e-1 + $y * (0.1430488765e-3 + $y * (-0.6911147651e-5 + $y * (0.7621095161e-6 + $y * (-0.934945152e-7))));
    +            $fRet = sqrt(0.636619772 / $fNum) * (sin($xx) * $f1 + $z * cos($xx) * $f2);
    +        }
    +
    +        return $fRet;
    +    }
    +
    +    private static function besselY1($fNum)
    +    {
    +        if ($fNum < 8.0) {
    +            $y = ($fNum * $fNum);
    +            $f1 = $fNum * (-0.4900604943e13 + $y * (0.1275274390e13 + $y * (-0.5153438139e11 + $y * (0.7349264551e9 + $y *
    +                                (-0.4237922726e7 + $y * 0.8511937935e4)))));
    +            $f2 = 0.2499580570e14 + $y * (0.4244419664e12 + $y * (0.3733650367e10 + $y * (0.2245904002e8 + $y *
    +                            (0.1020426050e6 + $y * (0.3549632885e3 + $y)))));
    +            $fRet = $f1 / $f2 + 0.636619772 * (self::BESSELJ($fNum, 1) * log($fNum) - 1 / $fNum);
    +        } else {
    +            $fRet = sqrt(0.636619772 / $fNum) * sin($fNum - 2.356194491);
    +        }
    +
    +        return $fRet;
    +    }
    +
    +    /**
    +     * BESSELY.
    +     *
    +     * Returns the Bessel function, which is also called the Weber function or the Neumann function.
    +     *
    +     *    Excel Function:
    +     *        BESSELY(x,ord)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param float $x The value at which to evaluate the function.
    +     *                                If x is nonnumeric, BESSELK returns the #VALUE! error value.
    +     * @param int $ord The order of the Bessel function. If n is not an integer, it is truncated.
    +     *                                If $ord is nonnumeric, BESSELK returns the #VALUE! error value.
    +     *                                If $ord < 0, BESSELK returns the #NUM! error value.
    +     *
    +     * @return float
    +     */
    +    public static function BESSELY($x, $ord)
    +    {
    +        $x = ($x === null) ? 0.0 : Functions::flattenSingleValue($x);
    +        $ord = ($ord === null) ? 0.0 : Functions::flattenSingleValue($ord);
    +
    +        if ((is_numeric($x)) && (is_numeric($ord))) {
    +            if (($ord < 0) || ($x == 0.0)) {
    +                return Functions::NAN();
    +            }
    +
    +            switch (floor($ord)) {
    +                case 0:
    +                    $fBy = self::besselY0($x);
    +
    +                    break;
    +                case 1:
    +                    $fBy = self::besselY1($x);
    +
    +                    break;
    +                default:
    +                    $fTox = 2 / $x;
    +                    $fBym = self::besselY0($x);
    +                    $fBy = self::besselY1($x);
    +                    for ($n = 1; $n < $ord; ++$n) {
    +                        $fByp = $n * $fTox * $fBy - $fBym;
    +                        $fBym = $fBy;
    +                        $fBy = $fByp;
    +                    }
    +            }
    +
    +            return (is_nan($fBy)) ? Functions::NAN() : $fBy;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * BINTODEC.
    +     *
    +     * Return a binary value as decimal.
    +     *
    +     * Excel Function:
    +     *        BIN2DEC(x)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x The binary number (as a string) that you want to convert. The number
    +     *                                cannot contain more than 10 characters (10 bits). The most significant
    +     *                                bit of number is the sign bit. The remaining 9 bits are magnitude bits.
    +     *                                Negative numbers are represented using two's-complement notation.
    +     *                                If number is not a valid binary number, or if number contains more than
    +     *                                10 characters (10 bits), BIN2DEC returns the #NUM! error value.
    +     *
    +     * @return string
    +     */
    +    public static function BINTODEC($x)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +
    +        if (is_bool($x)) {
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                $x = (int) $x;
    +            } else {
    +                return Functions::VALUE();
    +            }
    +        }
    +        if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
    +            $x = floor($x);
    +        }
    +        $x = (string) $x;
    +        if (strlen($x) > preg_match_all('/[01]/', $x, $out)) {
    +            return Functions::NAN();
    +        }
    +        if (strlen($x) > 10) {
    +            return Functions::NAN();
    +        } elseif (strlen($x) == 10) {
    +            //    Two's Complement
    +            $x = substr($x, -9);
    +
    +            return '-' . (512 - bindec($x));
    +        }
    +
    +        return bindec($x);
    +    }
    +
    +    /**
    +     * BINTOHEX.
    +     *
    +     * Return a binary value as hex.
    +     *
    +     * Excel Function:
    +     *        BIN2HEX(x[,places])
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x The binary number (as a string) that you want to convert. The number
    +     *                                cannot contain more than 10 characters (10 bits). The most significant
    +     *                                bit of number is the sign bit. The remaining 9 bits are magnitude bits.
    +     *                                Negative numbers are represented using two's-complement notation.
    +     *                                If number is not a valid binary number, or if number contains more than
    +     *                                10 characters (10 bits), BIN2HEX returns the #NUM! error value.
    +     * @param int $places The number of characters to use. If places is omitted, BIN2HEX uses the
    +     *                                minimum number of characters necessary. Places is useful for padding the
    +     *                                return value with leading 0s (zeros).
    +     *                                If places is not an integer, it is truncated.
    +     *                                If places is nonnumeric, BIN2HEX returns the #VALUE! error value.
    +     *                                If places is negative, BIN2HEX returns the #NUM! error value.
    +     *
    +     * @return string
    +     */
    +    public static function BINTOHEX($x, $places = null)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +        $places = Functions::flattenSingleValue($places);
    +
    +        // Argument X
    +        if (is_bool($x)) {
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                $x = (int) $x;
    +            } else {
    +                return Functions::VALUE();
    +            }
    +        }
    +        if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
    +            $x = floor($x);
    +        }
    +        $x = (string) $x;
    +        if (strlen($x) > preg_match_all('/[01]/', $x, $out)) {
    +            return Functions::NAN();
    +        }
    +        if (strlen($x) > 10) {
    +            return Functions::NAN();
    +        } elseif (strlen($x) == 10) {
    +            //    Two's Complement
    +            return str_repeat('F', 8) . substr(strtoupper(dechex(bindec(substr($x, -9)))), -2);
    +        }
    +        $hexVal = (string) strtoupper(dechex(bindec($x)));
    +
    +        return self::nbrConversionFormat($hexVal, $places);
    +    }
    +
    +    /**
    +     * BINTOOCT.
    +     *
    +     * Return a binary value as octal.
    +     *
    +     * Excel Function:
    +     *        BIN2OCT(x[,places])
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x The binary number (as a string) that you want to convert. The number
    +     *                                cannot contain more than 10 characters (10 bits). The most significant
    +     *                                bit of number is the sign bit. The remaining 9 bits are magnitude bits.
    +     *                                Negative numbers are represented using two's-complement notation.
    +     *                                If number is not a valid binary number, or if number contains more than
    +     *                                10 characters (10 bits), BIN2OCT returns the #NUM! error value.
    +     * @param int $places The number of characters to use. If places is omitted, BIN2OCT uses the
    +     *                                minimum number of characters necessary. Places is useful for padding the
    +     *                                return value with leading 0s (zeros).
    +     *                                If places is not an integer, it is truncated.
    +     *                                If places is nonnumeric, BIN2OCT returns the #VALUE! error value.
    +     *                                If places is negative, BIN2OCT returns the #NUM! error value.
    +     *
    +     * @return string
    +     */
    +    public static function BINTOOCT($x, $places = null)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +        $places = Functions::flattenSingleValue($places);
    +
    +        if (is_bool($x)) {
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                $x = (int) $x;
    +            } else {
    +                return Functions::VALUE();
    +            }
    +        }
    +        if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
    +            $x = floor($x);
    +        }
    +        $x = (string) $x;
    +        if (strlen($x) > preg_match_all('/[01]/', $x, $out)) {
    +            return Functions::NAN();
    +        }
    +        if (strlen($x) > 10) {
    +            return Functions::NAN();
    +        } elseif (strlen($x) == 10) {
    +            //    Two's Complement
    +            return str_repeat('7', 7) . substr(strtoupper(decoct(bindec(substr($x, -9)))), -3);
    +        }
    +        $octVal = (string) decoct(bindec($x));
    +
    +        return self::nbrConversionFormat($octVal, $places);
    +    }
    +
    +    /**
    +     * DECTOBIN.
    +     *
    +     * Return a decimal value as binary.
    +     *
    +     * Excel Function:
    +     *        DEC2BIN(x[,places])
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x The decimal integer you want to convert. If number is negative,
    +     *                                valid place values are ignored and DEC2BIN returns a 10-character
    +     *                                (10-bit) binary number in which the most significant bit is the sign
    +     *                                bit. The remaining 9 bits are magnitude bits. Negative numbers are
    +     *                                represented using two's-complement notation.
    +     *                                If number < -512 or if number > 511, DEC2BIN returns the #NUM! error
    +     *                                value.
    +     *                                If number is nonnumeric, DEC2BIN returns the #VALUE! error value.
    +     *                                If DEC2BIN requires more than places characters, it returns the #NUM!
    +     *                                error value.
    +     * @param int $places The number of characters to use. If places is omitted, DEC2BIN uses
    +     *                                the minimum number of characters necessary. Places is useful for
    +     *                                padding the return value with leading 0s (zeros).
    +     *                                If places is not an integer, it is truncated.
    +     *                                If places is nonnumeric, DEC2BIN returns the #VALUE! error value.
    +     *                                If places is zero or negative, DEC2BIN returns the #NUM! error value.
    +     *
    +     * @return string
    +     */
    +    public static function DECTOBIN($x, $places = null)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +        $places = Functions::flattenSingleValue($places);
    +
    +        if (is_bool($x)) {
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                $x = (int) $x;
    +            } else {
    +                return Functions::VALUE();
    +            }
    +        }
    +        $x = (string) $x;
    +        if (strlen($x) > preg_match_all('/[-0123456789.]/', $x, $out)) {
    +            return Functions::VALUE();
    +        }
    +
    +        $x = (string) floor($x);
    +        if ($x < -512 || $x > 511) {
    +            return Functions::NAN();
    +        }
    +
    +        $r = decbin($x);
    +        // Two's Complement
    +        $r = substr($r, -10);
    +        if (strlen($r) >= 11) {
    +            return Functions::NAN();
    +        }
    +
    +        return self::nbrConversionFormat($r, $places);
    +    }
    +
    +    /**
    +     * DECTOHEX.
    +     *
    +     * Return a decimal value as hex.
    +     *
    +     * Excel Function:
    +     *        DEC2HEX(x[,places])
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x The decimal integer you want to convert. If number is negative,
    +     *                                places is ignored and DEC2HEX returns a 10-character (40-bit)
    +     *                                hexadecimal number in which the most significant bit is the sign
    +     *                                bit. The remaining 39 bits are magnitude bits. Negative numbers
    +     *                                are represented using two's-complement notation.
    +     *                                If number < -549,755,813,888 or if number > 549,755,813,887,
    +     *                                DEC2HEX returns the #NUM! error value.
    +     *                                If number is nonnumeric, DEC2HEX returns the #VALUE! error value.
    +     *                                If DEC2HEX requires more than places characters, it returns the
    +     *                                #NUM! error value.
    +     * @param int $places The number of characters to use. If places is omitted, DEC2HEX uses
    +     *                                the minimum number of characters necessary. Places is useful for
    +     *                                padding the return value with leading 0s (zeros).
    +     *                                If places is not an integer, it is truncated.
    +     *                                If places is nonnumeric, DEC2HEX returns the #VALUE! error value.
    +     *                                If places is zero or negative, DEC2HEX returns the #NUM! error value.
    +     *
    +     * @return string
    +     */
    +    public static function DECTOHEX($x, $places = null)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +        $places = Functions::flattenSingleValue($places);
    +
    +        if (is_bool($x)) {
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                $x = (int) $x;
    +            } else {
    +                return Functions::VALUE();
    +            }
    +        }
    +        $x = (string) $x;
    +        if (strlen($x) > preg_match_all('/[-0123456789.]/', $x, $out)) {
    +            return Functions::VALUE();
    +        }
    +        $x = (string) floor($x);
    +        $r = strtoupper(dechex($x));
    +        if (strlen($r) == 8) {
    +            //    Two's Complement
    +            $r = 'FF' . $r;
    +        }
    +
    +        return self::nbrConversionFormat($r, $places);
    +    }
    +
    +    /**
    +     * DECTOOCT.
    +     *
    +     * Return an decimal value as octal.
    +     *
    +     * Excel Function:
    +     *        DEC2OCT(x[,places])
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x The decimal integer you want to convert. If number is negative,
    +     *                                places is ignored and DEC2OCT returns a 10-character (30-bit)
    +     *                                octal number in which the most significant bit is the sign bit.
    +     *                                The remaining 29 bits are magnitude bits. Negative numbers are
    +     *                                represented using two's-complement notation.
    +     *                                If number < -536,870,912 or if number > 536,870,911, DEC2OCT
    +     *                                returns the #NUM! error value.
    +     *                                If number is nonnumeric, DEC2OCT returns the #VALUE! error value.
    +     *                                If DEC2OCT requires more than places characters, it returns the
    +     *                                #NUM! error value.
    +     * @param int $places The number of characters to use. If places is omitted, DEC2OCT uses
    +     *                                the minimum number of characters necessary. Places is useful for
    +     *                                padding the return value with leading 0s (zeros).
    +     *                                If places is not an integer, it is truncated.
    +     *                                If places is nonnumeric, DEC2OCT returns the #VALUE! error value.
    +     *                                If places is zero or negative, DEC2OCT returns the #NUM! error value.
    +     *
    +     * @return string
    +     */
    +    public static function DECTOOCT($x, $places = null)
    +    {
    +        $xorig = $x;
    +        $x = Functions::flattenSingleValue($x);
    +        $places = Functions::flattenSingleValue($places);
    +
    +        if (is_bool($x)) {
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                $x = (int) $x;
    +            } else {
    +                return Functions::VALUE();
    +            }
    +        }
    +        $x = (string) $x;
    +        if (strlen($x) > preg_match_all('/[-0123456789.]/', $x, $out)) {
    +            return Functions::VALUE();
    +        }
    +        $x = (string) floor($x);
    +        $r = decoct($x);
    +        if (strlen($r) == 11) {
    +            //    Two's Complement
    +            $r = substr($r, -10);
    +        }
    +
    +        return self::nbrConversionFormat($r, $places);
    +    }
    +
    +    /**
    +     * HEXTOBIN.
    +     *
    +     * Return a hex value as binary.
    +     *
    +     * Excel Function:
    +     *        HEX2BIN(x[,places])
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x the hexadecimal number you want to convert.
    +     *                  Number cannot contain more than 10 characters.
    +     *                  The most significant bit of number is the sign bit (40th bit from the right).
    +     *                  The remaining 9 bits are magnitude bits.
    +     *                  Negative numbers are represented using two's-complement notation.
    +     *                  If number is negative, HEX2BIN ignores places and returns a 10-character binary number.
    +     *                  If number is negative, it cannot be less than FFFFFFFE00,
    +     *                      and if number is positive, it cannot be greater than 1FF.
    +     *                  If number is not a valid hexadecimal number, HEX2BIN returns the #NUM! error value.
    +     *                  If HEX2BIN requires more than places characters, it returns the #NUM! error value.
    +     * @param int $places The number of characters to use. If places is omitted,
    +     *                                    HEX2BIN uses the minimum number of characters necessary. Places
    +     *                                    is useful for padding the return value with leading 0s (zeros).
    +     *                                    If places is not an integer, it is truncated.
    +     *                                    If places is nonnumeric, HEX2BIN returns the #VALUE! error value.
    +     *                                    If places is negative, HEX2BIN returns the #NUM! error value.
    +     *
    +     * @return string
    +     */
    +    public static function HEXTOBIN($x, $places = null)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +        $places = Functions::flattenSingleValue($places);
    +
    +        if (is_bool($x)) {
    +            return Functions::VALUE();
    +        }
    +        $x = (string) $x;
    +        if (strlen($x) > preg_match_all('/[0123456789ABCDEF]/', strtoupper($x), $out)) {
    +            return Functions::NAN();
    +        }
    +
    +        return self::DECTOBIN(self::HEXTODEC($x), $places);
    +    }
    +
    +    /**
    +     * HEXTODEC.
    +     *
    +     * Return a hex value as decimal.
    +     *
    +     * Excel Function:
    +     *        HEX2DEC(x)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x The hexadecimal number you want to convert. This number cannot
    +     *                                contain more than 10 characters (40 bits). The most significant
    +     *                                bit of number is the sign bit. The remaining 39 bits are magnitude
    +     *                                bits. Negative numbers are represented using two's-complement
    +     *                                notation.
    +     *                                If number is not a valid hexadecimal number, HEX2DEC returns the
    +     *                                #NUM! error value.
    +     *
    +     * @return string
    +     */
    +    public static function HEXTODEC($x)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +
    +        if (is_bool($x)) {
    +            return Functions::VALUE();
    +        }
    +        $x = (string) $x;
    +        if (strlen($x) > preg_match_all('/[0123456789ABCDEF]/', strtoupper($x), $out)) {
    +            return Functions::NAN();
    +        }
    +
    +        if (strlen($x) > 10) {
    +            return Functions::NAN();
    +        }
    +
    +        $binX = '';
    +        foreach (str_split($x) as $char) {
    +            $binX .= str_pad(base_convert($char, 16, 2), 4, '0', STR_PAD_LEFT);
    +        }
    +        if (strlen($binX) == 40 && $binX[0] == '1') {
    +            for ($i = 0; $i < 40; ++$i) {
    +                $binX[$i] = ($binX[$i] == '1' ? '0' : '1');
    +            }
    +
    +            return (bindec($binX) + 1) * -1;
    +        }
    +
    +        return bindec($binX);
    +    }
    +
    +    /**
    +     * HEXTOOCT.
    +     *
    +     * Return a hex value as octal.
    +     *
    +     * Excel Function:
    +     *        HEX2OCT(x[,places])
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x The hexadecimal number you want to convert. Number cannot
    +     *                                    contain more than 10 characters. The most significant bit of
    +     *                                    number is the sign bit. The remaining 39 bits are magnitude
    +     *                                    bits. Negative numbers are represented using two's-complement
    +     *                                    notation.
    +     *                                    If number is negative, HEX2OCT ignores places and returns a
    +     *                                    10-character octal number.
    +     *                                    If number is negative, it cannot be less than FFE0000000, and
    +     *                                    if number is positive, it cannot be greater than 1FFFFFFF.
    +     *                                    If number is not a valid hexadecimal number, HEX2OCT returns
    +     *                                    the #NUM! error value.
    +     *                                    If HEX2OCT requires more than places characters, it returns
    +     *                                    the #NUM! error value.
    +     * @param int $places The number of characters to use. If places is omitted, HEX2OCT
    +     *                                    uses the minimum number of characters necessary. Places is
    +     *                                    useful for padding the return value with leading 0s (zeros).
    +     *                                    If places is not an integer, it is truncated.
    +     *                                    If places is nonnumeric, HEX2OCT returns the #VALUE! error
    +     *                                    value.
    +     *                                    If places is negative, HEX2OCT returns the #NUM! error value.
    +     *
    +     * @return string
    +     */
    +    public static function HEXTOOCT($x, $places = null)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +        $places = Functions::flattenSingleValue($places);
    +
    +        if (is_bool($x)) {
    +            return Functions::VALUE();
    +        }
    +        $x = (string) $x;
    +        if (strlen($x) > preg_match_all('/[0123456789ABCDEF]/', strtoupper($x), $out)) {
    +            return Functions::NAN();
    +        }
    +
    +        $decimal = self::HEXTODEC($x);
    +        if ($decimal < -536870912 || $decimal > 536870911) {
    +            return Functions::NAN();
    +        }
    +
    +        return self::DECTOOCT($decimal, $places);
    +    }
    +
    +    /**
    +     * OCTTOBIN.
    +     *
    +     * Return an octal value as binary.
    +     *
    +     * Excel Function:
    +     *        OCT2BIN(x[,places])
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x The octal number you want to convert. Number may not
    +     *                                    contain more than 10 characters. The most significant
    +     *                                    bit of number is the sign bit. The remaining 29 bits
    +     *                                    are magnitude bits. Negative numbers are represented
    +     *                                    using two's-complement notation.
    +     *                                    If number is negative, OCT2BIN ignores places and returns
    +     *                                    a 10-character binary number.
    +     *                                    If number is negative, it cannot be less than 7777777000,
    +     *                                    and if number is positive, it cannot be greater than 777.
    +     *                                    If number is not a valid octal number, OCT2BIN returns
    +     *                                    the #NUM! error value.
    +     *                                    If OCT2BIN requires more than places characters, it
    +     *                                    returns the #NUM! error value.
    +     * @param int $places The number of characters to use. If places is omitted,
    +     *                                    OCT2BIN uses the minimum number of characters necessary.
    +     *                                    Places is useful for padding the return value with
    +     *                                    leading 0s (zeros).
    +     *                                    If places is not an integer, it is truncated.
    +     *                                    If places is nonnumeric, OCT2BIN returns the #VALUE!
    +     *                                    error value.
    +     *                                    If places is negative, OCT2BIN returns the #NUM! error
    +     *                                    value.
    +     *
    +     * @return string
    +     */
    +    public static function OCTTOBIN($x, $places = null)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +        $places = Functions::flattenSingleValue($places);
    +
    +        if (is_bool($x)) {
    +            return Functions::VALUE();
    +        }
    +        $x = (string) $x;
    +        if (preg_match_all('/[01234567]/', $x, $out) != strlen($x)) {
    +            return Functions::NAN();
    +        }
    +
    +        return self::DECTOBIN(self::OCTTODEC($x), $places);
    +    }
    +
    +    /**
    +     * OCTTODEC.
    +     *
    +     * Return an octal value as decimal.
    +     *
    +     * Excel Function:
    +     *        OCT2DEC(x)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x The octal number you want to convert. Number may not contain
    +     *                                more than 10 octal characters (30 bits). The most significant
    +     *                                bit of number is the sign bit. The remaining 29 bits are
    +     *                                magnitude bits. Negative numbers are represented using
    +     *                                two's-complement notation.
    +     *                                If number is not a valid octal number, OCT2DEC returns the
    +     *                                #NUM! error value.
    +     *
    +     * @return string
    +     */
    +    public static function OCTTODEC($x)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +
    +        if (is_bool($x)) {
    +            return Functions::VALUE();
    +        }
    +        $x = (string) $x;
    +        if (preg_match_all('/[01234567]/', $x, $out) != strlen($x)) {
    +            return Functions::NAN();
    +        }
    +        $binX = '';
    +        foreach (str_split($x) as $char) {
    +            $binX .= str_pad(decbin((int) $char), 3, '0', STR_PAD_LEFT);
    +        }
    +        if (strlen($binX) == 30 && $binX[0] == '1') {
    +            for ($i = 0; $i < 30; ++$i) {
    +                $binX[$i] = ($binX[$i] == '1' ? '0' : '1');
    +            }
    +
    +            return (bindec($binX) + 1) * -1;
    +        }
    +
    +        return bindec($binX);
    +    }
    +
    +    /**
    +     * OCTTOHEX.
    +     *
    +     * Return an octal value as hex.
    +     *
    +     * Excel Function:
    +     *        OCT2HEX(x[,places])
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $x The octal number you want to convert. Number may not contain
    +     *                                    more than 10 octal characters (30 bits). The most significant
    +     *                                    bit of number is the sign bit. The remaining 29 bits are
    +     *                                    magnitude bits. Negative numbers are represented using
    +     *                                    two's-complement notation.
    +     *                                    If number is negative, OCT2HEX ignores places and returns a
    +     *                                    10-character hexadecimal number.
    +     *                                    If number is not a valid octal number, OCT2HEX returns the
    +     *                                    #NUM! error value.
    +     *                                    If OCT2HEX requires more than places characters, it returns
    +     *                                    the #NUM! error value.
    +     * @param int $places The number of characters to use. If places is omitted, OCT2HEX
    +     *                                    uses the minimum number of characters necessary. Places is useful
    +     *                                    for padding the return value with leading 0s (zeros).
    +     *                                    If places is not an integer, it is truncated.
    +     *                                    If places is nonnumeric, OCT2HEX returns the #VALUE! error value.
    +     *                                    If places is negative, OCT2HEX returns the #NUM! error value.
    +     *
    +     * @return string
    +     */
    +    public static function OCTTOHEX($x, $places = null)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +        $places = Functions::flattenSingleValue($places);
    +
    +        if (is_bool($x)) {
    +            return Functions::VALUE();
    +        }
    +        $x = (string) $x;
    +        if (preg_match_all('/[01234567]/', $x, $out) != strlen($x)) {
    +            return Functions::NAN();
    +        }
    +        $hexVal = strtoupper(dechex(self::OCTTODEC($x)));
    +
    +        return self::nbrConversionFormat($hexVal, $places);
    +    }
    +
    +    /**
    +     * COMPLEX.
    +     *
    +     * Converts real and imaginary coefficients into a complex number of the form x +/- yi or x +/- yj.
    +     *
    +     * Excel Function:
    +     *        COMPLEX(realNumber,imaginary[,suffix])
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param float $realNumber the real coefficient of the complex number
    +     * @param float $imaginary the imaginary coefficient of the complex number
    +     * @param string $suffix The suffix for the imaginary component of the complex number.
    +     *                                        If omitted, the suffix is assumed to be "i".
    +     *
    +     * @return string
    +     */
    +    public static function COMPLEX($realNumber = 0.0, $imaginary = 0.0, $suffix = 'i')
    +    {
    +        $realNumber = ($realNumber === null) ? 0.0 : Functions::flattenSingleValue($realNumber);
    +        $imaginary = ($imaginary === null) ? 0.0 : Functions::flattenSingleValue($imaginary);
    +        $suffix = ($suffix === null) ? 'i' : Functions::flattenSingleValue($suffix);
    +
    +        if (((is_numeric($realNumber)) && (is_numeric($imaginary))) &&
    +            (($suffix == 'i') || ($suffix == 'j') || ($suffix == ''))
    +        ) {
    +            $complex = new Complex($realNumber, $imaginary, $suffix);
    +
    +            return (string) $complex;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * IMAGINARY.
    +     *
    +     * Returns the imaginary coefficient of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMAGINARY(complexNumber)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $complexNumber the complex number for which you want the imaginary
    +     *                                         coefficient
    +     *
    +     * @return float
    +     */
    +    public static function IMAGINARY($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (new Complex($complexNumber))->getImaginary();
    +    }
    +
    +    /**
    +     * IMREAL.
    +     *
    +     * Returns the real coefficient of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMREAL(complexNumber)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param string $complexNumber the complex number for which you want the real coefficient
    +     *
    +     * @return float
    +     */
    +    public static function IMREAL($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (new Complex($complexNumber))->getReal();
    +    }
    +
    +    /**
    +     * IMABS.
    +     *
    +     * Returns the absolute value (modulus) of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMABS(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the absolute value
    +     *
    +     * @return float
    +     */
    +    public static function IMABS($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (new Complex($complexNumber))->abs();
    +    }
    +
    +    /**
    +     * IMARGUMENT.
    +     *
    +     * Returns the argument theta of a complex number, i.e. the angle in radians from the real
    +     * axis to the representation of the number in polar coordinates.
    +     *
    +     * Excel Function:
    +     *        IMARGUMENT(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the argument theta
    +     *
    +     * @return float|string
    +     */
    +    public static function IMARGUMENT($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        $complex = new Complex($complexNumber);
    +        if ($complex->getReal() == 0.0 && $complex->getImaginary() == 0.0) {
    +            return Functions::DIV0();
    +        }
    +
    +        return $complex->argument();
    +    }
    +
    +    /**
    +     * IMCONJUGATE.
    +     *
    +     * Returns the complex conjugate of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMCONJUGATE(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the conjugate
    +     *
    +     * @return string
    +     */
    +    public static function IMCONJUGATE($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->conjugate();
    +    }
    +
    +    /**
    +     * IMCOS.
    +     *
    +     * Returns the cosine of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMCOS(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the cosine
    +     *
    +     * @return float|string
    +     */
    +    public static function IMCOS($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->cos();
    +    }
    +
    +    /**
    +     * IMCOSH.
    +     *
    +     * Returns the hyperbolic cosine of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMCOSH(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the hyperbolic cosine
    +     *
    +     * @return float|string
    +     */
    +    public static function IMCOSH($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->cosh();
    +    }
    +
    +    /**
    +     * IMCOT.
    +     *
    +     * Returns the cotangent of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMCOT(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the cotangent
    +     *
    +     * @return float|string
    +     */
    +    public static function IMCOT($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->cot();
    +    }
    +
    +    /**
    +     * IMCSC.
    +     *
    +     * Returns the cosecant of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMCSC(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the cosecant
    +     *
    +     * @return float|string
    +     */
    +    public static function IMCSC($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->csc();
    +    }
    +
    +    /**
    +     * IMCSCH.
    +     *
    +     * Returns the hyperbolic cosecant of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMCSCH(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the hyperbolic cosecant
    +     *
    +     * @return float|string
    +     */
    +    public static function IMCSCH($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->csch();
    +    }
    +
    +    /**
    +     * IMSIN.
    +     *
    +     * Returns the sine of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMSIN(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the sine
    +     *
    +     * @return float|string
    +     */
    +    public static function IMSIN($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->sin();
    +    }
    +
    +    /**
    +     * IMSINH.
    +     *
    +     * Returns the hyperbolic sine of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMSINH(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the hyperbolic sine
    +     *
    +     * @return float|string
    +     */
    +    public static function IMSINH($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->sinh();
    +    }
    +
    +    /**
    +     * IMSEC.
    +     *
    +     * Returns the secant of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMSEC(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the secant
    +     *
    +     * @return float|string
    +     */
    +    public static function IMSEC($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->sec();
    +    }
    +
    +    /**
    +     * IMSECH.
    +     *
    +     * Returns the hyperbolic secant of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMSECH(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the hyperbolic secant
    +     *
    +     * @return float|string
    +     */
    +    public static function IMSECH($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->sech();
    +    }
    +
    +    /**
    +     * IMTAN.
    +     *
    +     * Returns the tangent of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMTAN(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the tangent
    +     *
    +     * @return float|string
    +     */
    +    public static function IMTAN($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->tan();
    +    }
    +
    +    /**
    +     * IMSQRT.
    +     *
    +     * Returns the square root of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMSQRT(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the square root
    +     *
    +     * @return string
    +     */
    +    public static function IMSQRT($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        $theta = self::IMARGUMENT($complexNumber);
    +        if ($theta === Functions::DIV0()) {
    +            return '0';
    +        }
    +
    +        return (string) (new Complex($complexNumber))->sqrt();
    +    }
    +
    +    /**
    +     * IMLN.
    +     *
    +     * Returns the natural logarithm of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMLN(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the natural logarithm
    +     *
    +     * @return string
    +     */
    +    public static function IMLN($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        $complex = new Complex($complexNumber);
    +        if ($complex->getReal() == 0.0 && $complex->getImaginary() == 0.0) {
    +            return Functions::NAN();
    +        }
    +
    +        return (string) (new Complex($complexNumber))->ln();
    +    }
    +
    +    /**
    +     * IMLOG10.
    +     *
    +     * Returns the common logarithm (base 10) of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMLOG10(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the common logarithm
    +     *
    +     * @return string
    +     */
    +    public static function IMLOG10($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        $complex = new Complex($complexNumber);
    +        if ($complex->getReal() == 0.0 && $complex->getImaginary() == 0.0) {
    +            return Functions::NAN();
    +        }
    +
    +        return (string) (new Complex($complexNumber))->log10();
    +    }
    +
    +    /**
    +     * IMLOG2.
    +     *
    +     * Returns the base-2 logarithm of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMLOG2(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the base-2 logarithm
    +     *
    +     * @return string
    +     */
    +    public static function IMLOG2($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        $complex = new Complex($complexNumber);
    +        if ($complex->getReal() == 0.0 && $complex->getImaginary() == 0.0) {
    +            return Functions::NAN();
    +        }
    +
    +        return (string) (new Complex($complexNumber))->log2();
    +    }
    +
    +    /**
    +     * IMEXP.
    +     *
    +     * Returns the exponential of a complex number in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMEXP(complexNumber)
    +     *
    +     * @param string $complexNumber the complex number for which you want the exponential
    +     *
    +     * @return string
    +     */
    +    public static function IMEXP($complexNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +
    +        return (string) (new Complex($complexNumber))->exp();
    +    }
    +
    +    /**
    +     * IMPOWER.
    +     *
    +     * Returns a complex number in x + yi or x + yj text format raised to a power.
    +     *
    +     * Excel Function:
    +     *        IMPOWER(complexNumber,realNumber)
    +     *
    +     * @param string $complexNumber the complex number you want to raise to a power
    +     * @param float $realNumber the power to which you want to raise the complex number
    +     *
    +     * @return string
    +     */
    +    public static function IMPOWER($complexNumber, $realNumber)
    +    {
    +        $complexNumber = Functions::flattenSingleValue($complexNumber);
    +        $realNumber = Functions::flattenSingleValue($realNumber);
    +
    +        if (!is_numeric($realNumber)) {
    +            return Functions::VALUE();
    +        }
    +
    +        return (string) (new Complex($complexNumber))->pow($realNumber);
    +    }
    +
    +    /**
    +     * IMDIV.
    +     *
    +     * Returns the quotient of two complex numbers in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMDIV(complexDividend,complexDivisor)
    +     *
    +     * @param string $complexDividend the complex numerator or dividend
    +     * @param string $complexDivisor the complex denominator or divisor
    +     *
    +     * @return string
    +     */
    +    public static function IMDIV($complexDividend, $complexDivisor)
    +    {
    +        $complexDividend = Functions::flattenSingleValue($complexDividend);
    +        $complexDivisor = Functions::flattenSingleValue($complexDivisor);
    +
    +        try {
    +            return (string) (new Complex($complexDividend))->divideby(new Complex($complexDivisor));
    +        } catch (ComplexException $e) {
    +            return Functions::NAN();
    +        }
    +    }
    +
    +    /**
    +     * IMSUB.
    +     *
    +     * Returns the difference of two complex numbers in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMSUB(complexNumber1,complexNumber2)
    +     *
    +     * @param string $complexNumber1 the complex number from which to subtract complexNumber2
    +     * @param string $complexNumber2 the complex number to subtract from complexNumber1
    +     *
    +     * @return string
    +     */
    +    public static function IMSUB($complexNumber1, $complexNumber2)
    +    {
    +        $complexNumber1 = Functions::flattenSingleValue($complexNumber1);
    +        $complexNumber2 = Functions::flattenSingleValue($complexNumber2);
    +
    +        try {
    +            return (string) (new Complex($complexNumber1))->subtract(new Complex($complexNumber2));
    +        } catch (ComplexException $e) {
    +            return Functions::NAN();
    +        }
    +    }
    +
    +    /**
    +     * IMSUM.
    +     *
    +     * Returns the sum of two or more complex numbers in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMSUM(complexNumber[,complexNumber[,...]])
    +     *
    +     * @param string ...$complexNumbers Series of complex numbers to add
    +     *
    +     * @return string
    +     */
    +    public static function IMSUM(...$complexNumbers)
    +    {
    +        // Return value
    +        $returnValue = new Complex(0.0);
    +        $aArgs = Functions::flattenArray($complexNumbers);
    +
    +        try {
    +            // Loop through the arguments
    +            foreach ($aArgs as $complex) {
    +                $returnValue = $returnValue->add(new Complex($complex));
    +            }
    +        } catch (ComplexException $e) {
    +            return Functions::NAN();
    +        }
    +
    +        return (string) $returnValue;
    +    }
    +
    +    /**
    +     * IMPRODUCT.
    +     *
    +     * Returns the product of two or more complex numbers in x + yi or x + yj text format.
    +     *
    +     * Excel Function:
    +     *        IMPRODUCT(complexNumber[,complexNumber[,...]])
    +     *
    +     * @param string ...$complexNumbers Series of complex numbers to multiply
    +     *
    +     * @return string
    +     */
    +    public static function IMPRODUCT(...$complexNumbers)
    +    {
    +        // Return value
    +        $returnValue = new Complex(1.0);
    +        $aArgs = Functions::flattenArray($complexNumbers);
    +
    +        try {
    +            // Loop through the arguments
    +            foreach ($aArgs as $complex) {
    +                $returnValue = $returnValue->multiply(new Complex($complex));
    +            }
    +        } catch (ComplexException $e) {
    +            return Functions::NAN();
    +        }
    +
    +        return (string) $returnValue;
    +    }
    +
    +    /**
    +     * DELTA.
    +     *
    +     * Tests whether two values are equal. Returns 1 if number1 = number2; returns 0 otherwise.
    +     *    Use this function to filter a set of values. For example, by summing several DELTA
    +     *    functions you calculate the count of equal pairs. This function is also known as the
    +     * Kronecker Delta function.
    +     *
    +     *    Excel Function:
    +     *        DELTA(a[,b])
    +     *
    +     * @param float $a the first number
    +     * @param float $b The second number. If omitted, b is assumed to be zero.
    +     *
    +     * @return int
    +     */
    +    public static function DELTA($a, $b = 0)
    +    {
    +        $a = Functions::flattenSingleValue($a);
    +        $b = Functions::flattenSingleValue($b);
    +
    +        return (int) ($a == $b);
    +    }
    +
    +    /**
    +     * GESTEP.
    +     *
    +     *    Excel Function:
    +     *        GESTEP(number[,step])
    +     *
    +     *    Returns 1 if number >= step; returns 0 (zero) otherwise
    +     *    Use this function to filter a set of values. For example, by summing several GESTEP
    +     * functions you calculate the count of values that exceed a threshold.
    +     *
    +     * @param float $number the value to test against step
    +     * @param float $step The threshold value.
    +     *                                    If you omit a value for step, GESTEP uses zero.
    +     *
    +     * @return int
    +     */
    +    public static function GESTEP($number, $step = 0)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +        $step = Functions::flattenSingleValue($step);
    +
    +        return (int) ($number >= $step);
    +    }
    +
    +    //
    +    //    Private method to calculate the erf value
    +    //
    +    private static $twoSqrtPi = 1.128379167095512574;
    +
    +    public static function erfVal($x)
    +    {
    +        if (abs($x) > 2.2) {
    +            return 1 - self::erfcVal($x);
    +        }
    +        $sum = $term = $x;
    +        $xsqr = ($x * $x);
    +        $j = 1;
    +        do {
    +            $term *= $xsqr / $j;
    +            $sum -= $term / (2 * $j + 1);
    +            ++$j;
    +            $term *= $xsqr / $j;
    +            $sum += $term / (2 * $j + 1);
    +            ++$j;
    +            if ($sum == 0.0) {
    +                break;
    +            }
    +        } while (abs($term / $sum) > Functions::PRECISION);
    +
    +        return self::$twoSqrtPi * $sum;
    +    }
    +
    +    /**
    +     * Validate arguments passed to the bitwise functions.
    +     *
    +     * @param mixed $value
    +     *
    +     * @throws Exception
    +     *
    +     * @return int
    +     */
    +    private static function validateBitwiseArgument($value)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +
    +        if (is_int($value)) {
    +            return $value;
    +        } elseif (is_numeric($value)) {
    +            if ($value == (int) ($value)) {
    +                $value = (int) ($value);
    +                if (($value > pow(2, 48) - 1) || ($value < 0)) {
    +                    throw new Exception(Functions::NAN());
    +                }
    +
    +                return $value;
    +            }
    +
    +            throw new Exception(Functions::NAN());
    +        }
    +
    +        throw new Exception(Functions::VALUE());
    +    }
    +
    +    /**
    +     * BITAND.
    +     *
    +     * Returns the bitwise AND of two integer values.
    +     *
    +     * Excel Function:
    +     *        BITAND(number1, number2)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param int $number1
    +     * @param int $number2
    +     *
    +     * @return int|string
    +     */
    +    public static function BITAND($number1, $number2)
    +    {
    +        try {
    +            $number1 = self::validateBitwiseArgument($number1);
    +            $number2 = self::validateBitwiseArgument($number2);
    +        } catch (Exception $e) {
    +            return $e->getMessage();
    +        }
    +
    +        return $number1 & $number2;
    +    }
    +
    +    /**
    +     * BITOR.
    +     *
    +     * Returns the bitwise OR of two integer values.
    +     *
    +     * Excel Function:
    +     *        BITOR(number1, number2)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param int $number1
    +     * @param int $number2
    +     *
    +     * @return int|string
    +     */
    +    public static function BITOR($number1, $number2)
    +    {
    +        try {
    +            $number1 = self::validateBitwiseArgument($number1);
    +            $number2 = self::validateBitwiseArgument($number2);
    +        } catch (Exception $e) {
    +            return $e->getMessage();
    +        }
    +
    +        return $number1 | $number2;
    +    }
    +
    +    /**
    +     * BITXOR.
    +     *
    +     * Returns the bitwise XOR of two integer values.
    +     *
    +     * Excel Function:
    +     *        BITXOR(number1, number2)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param int $number1
    +     * @param int $number2
    +     *
    +     * @return int|string
    +     */
    +    public static function BITXOR($number1, $number2)
    +    {
    +        try {
    +            $number1 = self::validateBitwiseArgument($number1);
    +            $number2 = self::validateBitwiseArgument($number2);
    +        } catch (Exception $e) {
    +            return $e->getMessage();
    +        }
    +
    +        return $number1 ^ $number2;
    +    }
    +
    +    /**
    +     * BITLSHIFT.
    +     *
    +     * Returns the number value shifted left by shift_amount bits.
    +     *
    +     * Excel Function:
    +     *        BITLSHIFT(number, shift_amount)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param int $number
    +     * @param int $shiftAmount
    +     *
    +     * @return int|string
    +     */
    +    public static function BITLSHIFT($number, $shiftAmount)
    +    {
    +        try {
    +            $number = self::validateBitwiseArgument($number);
    +        } catch (Exception $e) {
    +            return $e->getMessage();
    +        }
    +
    +        $shiftAmount = Functions::flattenSingleValue($shiftAmount);
    +
    +        $result = $number << $shiftAmount;
    +        if ($result > pow(2, 48) - 1) {
    +            return Functions::NAN();
    +        }
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * BITRSHIFT.
    +     *
    +     * Returns the number value shifted right by shift_amount bits.
    +     *
    +     * Excel Function:
    +     *        BITRSHIFT(number, shift_amount)
    +     *
    +     * @category Engineering Functions
    +     *
    +     * @param int $number
    +     * @param int $shiftAmount
    +     *
    +     * @return int|string
    +     */
    +    public static function BITRSHIFT($number, $shiftAmount)
    +    {
    +        try {
    +            $number = self::validateBitwiseArgument($number);
    +        } catch (Exception $e) {
    +            return $e->getMessage();
    +        }
    +
    +        $shiftAmount = Functions::flattenSingleValue($shiftAmount);
    +
    +        return $number >> $shiftAmount;
    +    }
    +
    +    /**
    +     * ERF.
    +     *
    +     * Returns the error function integrated between the lower and upper bound arguments.
    +     *
    +     *    Note: In Excel 2007 or earlier, if you input a negative value for the upper or lower bound arguments,
    +     *            the function would return a #NUM! error. However, in Excel 2010, the function algorithm was
    +     *            improved, so that it can now calculate the function for both positive and negative ranges.
    +     *            PhpSpreadsheet follows Excel 2010 behaviour, and accepts negative arguments.
    +     *
    +     *    Excel Function:
    +     *        ERF(lower[,upper])
    +     *
    +     * @param float $lower lower bound for integrating ERF
    +     * @param float $upper upper bound for integrating ERF.
    +     *                                If omitted, ERF integrates between zero and lower_limit
    +     *
    +     * @return float|string
    +     */
    +    public static function ERF($lower, $upper = null)
    +    {
    +        $lower = Functions::flattenSingleValue($lower);
    +        $upper = Functions::flattenSingleValue($upper);
    +
    +        if (is_numeric($lower)) {
    +            if ($upper === null) {
    +                return self::erfVal($lower);
    +            }
    +            if (is_numeric($upper)) {
    +                return self::erfVal($upper) - self::erfVal($lower);
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * ERFPRECISE.
    +     *
    +     * Returns the error function integrated between the lower and upper bound arguments.
    +     *
    +     *    Excel Function:
    +     *        ERF.PRECISE(limit)
    +     *
    +     * @param float $limit bound for integrating ERF
    +     *
    +     * @return float|string
    +     */
    +    public static function ERFPRECISE($limit)
    +    {
    +        $limit = Functions::flattenSingleValue($limit);
    +
    +        return self::ERF($limit);
    +    }
    +
    +    //
    +    //    Private method to calculate the erfc value
    +    //
    +    private static $oneSqrtPi = 0.564189583547756287;
    +
    +    private static function erfcVal($x)
    +    {
    +        if (abs($x) < 2.2) {
    +            return 1 - self::erfVal($x);
    +        }
    +        if ($x < 0) {
    +            return 2 - self::ERFC(-$x);
    +        }
    +        $a = $n = 1;
    +        $b = $c = $x;
    +        $d = ($x * $x) + 0.5;
    +        $q1 = $q2 = $b / $d;
    +        $t = 0;
    +        do {
    +            $t = $a * $n + $b * $x;
    +            $a = $b;
    +            $b = $t;
    +            $t = $c * $n + $d * $x;
    +            $c = $d;
    +            $d = $t;
    +            $n += 0.5;
    +            $q1 = $q2;
    +            $q2 = $b / $d;
    +        } while ((abs($q1 - $q2) / $q2) > Functions::PRECISION);
    +
    +        return self::$oneSqrtPi * exp(-$x * $x) * $q2;
    +    }
    +
    +    /**
    +     * ERFC.
    +     *
    +     *    Returns the complementary ERF function integrated between x and infinity
    +     *
    +     *    Note: In Excel 2007 or earlier, if you input a negative value for the lower bound argument,
    +     *        the function would return a #NUM! error. However, in Excel 2010, the function algorithm was
    +     *        improved, so that it can now calculate the function for both positive and negative x values.
    +     *            PhpSpreadsheet follows Excel 2010 behaviour, and accepts nagative arguments.
    +     *
    +     *    Excel Function:
    +     *        ERFC(x)
    +     *
    +     * @param float $x The lower bound for integrating ERFC
    +     *
    +     * @return float|string
    +     */
    +    public static function ERFC($x)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +
    +        if (is_numeric($x)) {
    +            return self::erfcVal($x);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     *    getConversionGroups
    +     * Returns a list of the different conversion groups for UOM conversions.
    +     *
    +     * @return array
    +     */
    +    public static function getConversionGroups()
    +    {
    +        $conversionGroups = [];
    +        foreach (self::$conversionUnits as $conversionUnit) {
    +            $conversionGroups[] = $conversionUnit['Group'];
    +        }
    +
    +        return array_merge(array_unique($conversionGroups));
    +    }
    +
    +    /**
    +     *    getConversionGroupUnits
    +     * Returns an array of units of measure, for a specified conversion group, or for all groups.
    +     *
    +     * @param string $group The group whose units of measure you want to retrieve
    +     *
    +     * @return array
    +     */
    +    public static function getConversionGroupUnits($group = null)
    +    {
    +        $conversionGroups = [];
    +        foreach (self::$conversionUnits as $conversionUnit => $conversionGroup) {
    +            if (($group === null) || ($conversionGroup['Group'] == $group)) {
    +                $conversionGroups[$conversionGroup['Group']][] = $conversionUnit;
    +            }
    +        }
    +
    +        return $conversionGroups;
    +    }
    +
    +    /**
    +     * getConversionGroupUnitDetails.
    +     *
    +     * @param string $group The group whose units of measure you want to retrieve
    +     *
    +     * @return array
    +     */
    +    public static function getConversionGroupUnitDetails($group = null)
    +    {
    +        $conversionGroups = [];
    +        foreach (self::$conversionUnits as $conversionUnit => $conversionGroup) {
    +            if (($group === null) || ($conversionGroup['Group'] == $group)) {
    +                $conversionGroups[$conversionGroup['Group']][] = [
    +                    'unit' => $conversionUnit,
    +                    'description' => $conversionGroup['Unit Name'],
    +                ];
    +            }
    +        }
    +
    +        return $conversionGroups;
    +    }
    +
    +    /**
    +     *    getConversionMultipliers
    +     * Returns an array of the Multiplier prefixes that can be used with Units of Measure in CONVERTUOM().
    +     *
    +     * @return array of mixed
    +     */
    +    public static function getConversionMultipliers()
    +    {
    +        return self::$conversionMultipliers;
    +    }
    +
    +    /**
    +     * CONVERTUOM.
    +     *
    +     * Converts a number from one measurement system to another.
    +     *    For example, CONVERT can translate a table of distances in miles to a table of distances
    +     * in kilometers.
    +     *
    +     *    Excel Function:
    +     *        CONVERT(value,fromUOM,toUOM)
    +     *
    +     * @param float $value the value in fromUOM to convert
    +     * @param string $fromUOM the units for value
    +     * @param string $toUOM the units for the result
    +     *
    +     * @return float
    +     */
    +    public static function CONVERTUOM($value, $fromUOM, $toUOM)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $fromUOM = Functions::flattenSingleValue($fromUOM);
    +        $toUOM = Functions::flattenSingleValue($toUOM);
    +
    +        if (!is_numeric($value)) {
    +            return Functions::VALUE();
    +        }
    +        $fromMultiplier = 1.0;
    +        if (isset(self::$conversionUnits[$fromUOM])) {
    +            $unitGroup1 = self::$conversionUnits[$fromUOM]['Group'];
    +        } else {
    +            $fromMultiplier = substr($fromUOM, 0, 1);
    +            $fromUOM = substr($fromUOM, 1);
    +            if (isset(self::$conversionMultipliers[$fromMultiplier])) {
    +                $fromMultiplier = self::$conversionMultipliers[$fromMultiplier]['multiplier'];
    +            } else {
    +                return Functions::NA();
    +            }
    +            if ((isset(self::$conversionUnits[$fromUOM])) && (self::$conversionUnits[$fromUOM]['AllowPrefix'])) {
    +                $unitGroup1 = self::$conversionUnits[$fromUOM]['Group'];
    +            } else {
    +                return Functions::NA();
    +            }
    +        }
    +        $value *= $fromMultiplier;
    +
    +        $toMultiplier = 1.0;
    +        if (isset(self::$conversionUnits[$toUOM])) {
    +            $unitGroup2 = self::$conversionUnits[$toUOM]['Group'];
    +        } else {
    +            $toMultiplier = substr($toUOM, 0, 1);
    +            $toUOM = substr($toUOM, 1);
    +            if (isset(self::$conversionMultipliers[$toMultiplier])) {
    +                $toMultiplier = self::$conversionMultipliers[$toMultiplier]['multiplier'];
    +            } else {
    +                return Functions::NA();
    +            }
    +            if ((isset(self::$conversionUnits[$toUOM])) && (self::$conversionUnits[$toUOM]['AllowPrefix'])) {
    +                $unitGroup2 = self::$conversionUnits[$toUOM]['Group'];
    +            } else {
    +                return Functions::NA();
    +            }
    +        }
    +        if ($unitGroup1 != $unitGroup2) {
    +            return Functions::NA();
    +        }
    +
    +        if (($fromUOM == $toUOM) && ($fromMultiplier == $toMultiplier)) {
    +            //    We've already factored $fromMultiplier into the value, so we need
    +            //        to reverse it again
    +            return $value / $fromMultiplier;
    +        } elseif ($unitGroup1 == 'Temperature') {
    +            if (($fromUOM == 'F') || ($fromUOM == 'fah')) {
    +                if (($toUOM == 'F') || ($toUOM == 'fah')) {
    +                    return $value;
    +                }
    +                $value = (($value - 32) / 1.8);
    +                if (($toUOM == 'K') || ($toUOM == 'kel')) {
    +                    $value += 273.15;
    +                }
    +
    +                return $value;
    +            } elseif ((($fromUOM == 'K') || ($fromUOM == 'kel')) &&
    +                (($toUOM == 'K') || ($toUOM == 'kel'))
    +            ) {
    +                return $value;
    +            } elseif ((($fromUOM == 'C') || ($fromUOM == 'cel')) &&
    +                (($toUOM == 'C') || ($toUOM == 'cel'))
    +            ) {
    +                return $value;
    +            }
    +            if (($toUOM == 'F') || ($toUOM == 'fah')) {
    +                if (($fromUOM == 'K') || ($fromUOM == 'kel')) {
    +                    $value -= 273.15;
    +                }
    +
    +                return ($value * 1.8) + 32;
    +            }
    +            if (($toUOM == 'C') || ($toUOM == 'cel')) {
    +                return $value - 273.15;
    +            }
    +
    +            return $value + 273.15;
    +        }
    +
    +        return ($value * self::$unitConversions[$unitGroup1][$fromUOM][$toUOM]) / $toMultiplier;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Exception.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Exception.php
    new file mode 100644
    index 00000000000..fccf0af70fd
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Exception.php
    @@ -0,0 +1,26 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Exception extends PhpSpreadsheetException
    +{
    +    /**
    +     * Error handler callback.
    +     *
    +     * @param mixed $code
    +     * @param mixed $string
    +     * @param mixed $file
    +     * @param mixed $line
    +     * @param mixed $context
    +     */
    +    public static function errorHandlerCallback($code, $string, $file, $line, $context)
    +    {
    +        $e = new self($string, $code);
    +        $e->line = $line;
    +        $e->file = $file;
    +
    +        throw $e;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/ExceptionHandler.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/ExceptionHandler.php
    new file mode 100644
    index 00000000000..41e51d4aea6
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/ExceptionHandler.php
    @@ -0,0 +1,22 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +class ExceptionHandler
    +{
    +    /**
    +     * Register errorhandler.
    +     */
    +    public function __construct()
    +    {
    +        set_error_handler([Exception::class, 'errorHandlerCallback'], E_ALL);
    +    }
    +
    +    /**
    +     * Unregister errorhandler.
    +     */
    +    public function __destruct()
    +    {
    +        restore_error_handler();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Financial.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Financial.php
    new file mode 100644
    index 00000000000..3cb6d40a52e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Financial.php
    @@ -0,0 +1,2409 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +
    +class Financial
    +{
    +    const FINANCIAL_MAX_ITERATIONS = 32;
    +
    +    const FINANCIAL_PRECISION = 1.0e-08;
    +
    +    /**
    +     * isLastDayOfMonth.
    +     *
    +     * Returns a boolean TRUE/FALSE indicating if this date is the last date of the month
    +     *
    +     * @param \DateTime $testDate The date for testing
    +     *
    +     * @return bool
    +     */
    +    private static function isLastDayOfMonth(\DateTime $testDate)
    +    {
    +        return $testDate->format('d') == $testDate->format('t');
    +    }
    +
    +    private static function couponFirstPeriodDate($settlement, $maturity, $frequency, $next)
    +    {
    +        $months = 12 / $frequency;
    +
    +        $result = Date::excelToDateTimeObject($maturity);
    +        $eom = self::isLastDayOfMonth($result);
    +
    +        while ($settlement < Date::PHPToExcel($result)) {
    +            $result->modify('-' . $months . ' months');
    +        }
    +        if ($next) {
    +            $result->modify('+' . $months . ' months');
    +        }
    +
    +        if ($eom) {
    +            $result->modify('-1 day');
    +        }
    +
    +        return Date::PHPToExcel($result);
    +    }
    +
    +    private static function isValidFrequency($frequency)
    +    {
    +        if (($frequency == 1) || ($frequency == 2) || ($frequency == 4)) {
    +            return true;
    +        }
    +        if ((Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) &&
    +            (($frequency == 6) || ($frequency == 12))) {
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * daysPerYear.
    +     *
    +     * Returns the number of days in a specified year, as defined by the "basis" value
    +     *
    +     * @param int|string $year The year against which we're testing
    +     * @param int|string $basis The type of day count:
    +     *                                    0 or omitted US (NASD)    360
    +     *                                    1                        Actual (365 or 366 in a leap year)
    +     *                                    2                        360
    +     *                                    3                        365
    +     *                                    4                        European 360
    +     *
    +     * @return int
    +     */
    +    private static function daysPerYear($year, $basis = 0)
    +    {
    +        switch ($basis) {
    +            case 0:
    +            case 2:
    +            case 4:
    +                $daysPerYear = 360;
    +
    +                break;
    +            case 3:
    +                $daysPerYear = 365;
    +
    +                break;
    +            case 1:
    +                $daysPerYear = (DateTime::isLeapYear($year)) ? 366 : 365;
    +
    +                break;
    +            default:
    +                return Functions::NAN();
    +        }
    +
    +        return $daysPerYear;
    +    }
    +
    +    private static function interestAndPrincipal($rate = 0, $per = 0, $nper = 0, $pv = 0, $fv = 0, $type = 0)
    +    {
    +        $pmt = self::PMT($rate, $nper, $pv, $fv, $type);
    +        $capital = $pv;
    +        for ($i = 1; $i <= $per; ++$i) {
    +            $interest = ($type && $i == 1) ? 0 : -$capital * $rate;
    +            $principal = $pmt - $interest;
    +            $capital += $principal;
    +        }
    +
    +        return [$interest, $principal];
    +    }
    +
    +    /**
    +     * ACCRINT.
    +     *
    +     * Returns the accrued interest for a security that pays periodic interest.
    +     *
    +     * Excel Function:
    +     *        ACCRINT(issue,firstinterest,settlement,rate,par,frequency[,basis])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param mixed $issue the security's issue date
    +     * @param mixed $firstinterest the security's first interest date
    +     * @param mixed $settlement The security's settlement date.
    +     *                                    The security settlement date is the date after the issue date
    +     *                                    when the security is traded to the buyer.
    +     * @param float $rate the security's annual coupon rate
    +     * @param float $par The security's par value.
    +     *                                    If you omit par, ACCRINT uses $1,000.
    +     * @param int $frequency the number of coupon payments per year.
    +     *                                    Valid frequency values are:
    +     *                                        1    Annual
    +     *                                        2    Semi-Annual
    +     *                                        4    Quarterly
    +     *                                    If working in Gnumeric Mode, the following frequency options are
    +     *                                    also available
    +     *                                        6    Bimonthly
    +     *                                        12    Monthly
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float|string
    +     */
    +    public static function ACCRINT($issue, $firstinterest, $settlement, $rate, $par = 1000, $frequency = 1, $basis = 0)
    +    {
    +        $issue = Functions::flattenSingleValue($issue);
    +        $firstinterest = Functions::flattenSingleValue($firstinterest);
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $rate = Functions::flattenSingleValue($rate);
    +        $par = ($par === null) ? 1000 : Functions::flattenSingleValue($par);
    +        $frequency = ($frequency === null) ? 1 : Functions::flattenSingleValue($frequency);
    +        $basis = ($basis === null) ? 0 : Functions::flattenSingleValue($basis);
    +
    +        //    Validate
    +        if ((is_numeric($rate)) && (is_numeric($par))) {
    +            $rate = (float) $rate;
    +            $par = (float) $par;
    +            if (($rate <= 0) || ($par <= 0)) {
    +                return Functions::NAN();
    +            }
    +            $daysBetweenIssueAndSettlement = DateTime::YEARFRAC($issue, $settlement, $basis);
    +            if (!is_numeric($daysBetweenIssueAndSettlement)) {
    +                //    return date error
    +                return $daysBetweenIssueAndSettlement;
    +            }
    +
    +            return $par * $rate * $daysBetweenIssueAndSettlement;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * ACCRINTM.
    +     *
    +     * Returns the accrued interest for a security that pays interest at maturity.
    +     *
    +     * Excel Function:
    +     *        ACCRINTM(issue,settlement,rate[,par[,basis]])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param mixed $issue The security's issue date
    +     * @param mixed $settlement The security's settlement (or maturity) date
    +     * @param float $rate The security's annual coupon rate
    +     * @param float $par The security's par value.
    +     *                                    If you omit par, ACCRINT uses $1,000.
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float|string
    +     */
    +    public static function ACCRINTM($issue, $settlement, $rate, $par = 1000, $basis = 0)
    +    {
    +        $issue = Functions::flattenSingleValue($issue);
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $rate = Functions::flattenSingleValue($rate);
    +        $par = ($par === null) ? 1000 : Functions::flattenSingleValue($par);
    +        $basis = ($basis === null) ? 0 : Functions::flattenSingleValue($basis);
    +
    +        //    Validate
    +        if ((is_numeric($rate)) && (is_numeric($par))) {
    +            $rate = (float) $rate;
    +            $par = (float) $par;
    +            if (($rate <= 0) || ($par <= 0)) {
    +                return Functions::NAN();
    +            }
    +            $daysBetweenIssueAndSettlement = DateTime::YEARFRAC($issue, $settlement, $basis);
    +            if (!is_numeric($daysBetweenIssueAndSettlement)) {
    +                //    return date error
    +                return $daysBetweenIssueAndSettlement;
    +            }
    +
    +            return $par * $rate * $daysBetweenIssueAndSettlement;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * AMORDEGRC.
    +     *
    +     * Returns the depreciation for each accounting period.
    +     * This function is provided for the French accounting system. If an asset is purchased in
    +     * the middle of the accounting period, the prorated depreciation is taken into account.
    +     * The function is similar to AMORLINC, except that a depreciation coefficient is applied in
    +     * the calculation depending on the life of the assets.
    +     * This function will return the depreciation until the last period of the life of the assets
    +     * or until the cumulated value of depreciation is greater than the cost of the assets minus
    +     * the salvage value.
    +     *
    +     * Excel Function:
    +     *        AMORDEGRC(cost,purchased,firstPeriod,salvage,period,rate[,basis])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param float $cost The cost of the asset
    +     * @param mixed $purchased Date of the purchase of the asset
    +     * @param mixed $firstPeriod Date of the end of the first period
    +     * @param mixed $salvage The salvage value at the end of the life of the asset
    +     * @param float $period The period
    +     * @param float $rate Rate of depreciation
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float
    +     */
    +    public static function AMORDEGRC($cost, $purchased, $firstPeriod, $salvage, $period, $rate, $basis = 0)
    +    {
    +        $cost = Functions::flattenSingleValue($cost);
    +        $purchased = Functions::flattenSingleValue($purchased);
    +        $firstPeriod = Functions::flattenSingleValue($firstPeriod);
    +        $salvage = Functions::flattenSingleValue($salvage);
    +        $period = floor(Functions::flattenSingleValue($period));
    +        $rate = Functions::flattenSingleValue($rate);
    +        $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis);
    +
    +        //    The depreciation coefficients are:
    +        //    Life of assets (1/rate)        Depreciation coefficient
    +        //    Less than 3 years            1
    +        //    Between 3 and 4 years        1.5
    +        //    Between 5 and 6 years        2
    +        //    More than 6 years            2.5
    +        $fUsePer = 1.0 / $rate;
    +        if ($fUsePer < 3.0) {
    +            $amortiseCoeff = 1.0;
    +        } elseif ($fUsePer < 5.0) {
    +            $amortiseCoeff = 1.5;
    +        } elseif ($fUsePer <= 6.0) {
    +            $amortiseCoeff = 2.0;
    +        } else {
    +            $amortiseCoeff = 2.5;
    +        }
    +
    +        $rate *= $amortiseCoeff;
    +        $fNRate = round(DateTime::YEARFRAC($purchased, $firstPeriod, $basis) * $rate * $cost, 0);
    +        $cost -= $fNRate;
    +        $fRest = $cost - $salvage;
    +
    +        for ($n = 0; $n < $period; ++$n) {
    +            $fNRate = round($rate * $cost, 0);
    +            $fRest -= $fNRate;
    +
    +            if ($fRest < 0.0) {
    +                switch ($period - $n) {
    +                    case 0:
    +                    case 1:
    +                        return round($cost * 0.5, 0);
    +                    default:
    +                        return 0.0;
    +                }
    +            }
    +            $cost -= $fNRate;
    +        }
    +
    +        return $fNRate;
    +    }
    +
    +    /**
    +     * AMORLINC.
    +     *
    +     * Returns the depreciation for each accounting period.
    +     * This function is provided for the French accounting system. If an asset is purchased in
    +     * the middle of the accounting period, the prorated depreciation is taken into account.
    +     *
    +     * Excel Function:
    +     *        AMORLINC(cost,purchased,firstPeriod,salvage,period,rate[,basis])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param float $cost The cost of the asset
    +     * @param mixed $purchased Date of the purchase of the asset
    +     * @param mixed $firstPeriod Date of the end of the first period
    +     * @param mixed $salvage The salvage value at the end of the life of the asset
    +     * @param float $period The period
    +     * @param float $rate Rate of depreciation
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float
    +     */
    +    public static function AMORLINC($cost, $purchased, $firstPeriod, $salvage, $period, $rate, $basis = 0)
    +    {
    +        $cost = Functions::flattenSingleValue($cost);
    +        $purchased = Functions::flattenSingleValue($purchased);
    +        $firstPeriod = Functions::flattenSingleValue($firstPeriod);
    +        $salvage = Functions::flattenSingleValue($salvage);
    +        $period = Functions::flattenSingleValue($period);
    +        $rate = Functions::flattenSingleValue($rate);
    +        $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis);
    +
    +        $fOneRate = $cost * $rate;
    +        $fCostDelta = $cost - $salvage;
    +        //    Note, quirky variation for leap years on the YEARFRAC for this function
    +        $purchasedYear = DateTime::YEAR($purchased);
    +        $yearFrac = DateTime::YEARFRAC($purchased, $firstPeriod, $basis);
    +
    +        if (($basis == 1) && ($yearFrac < 1) && (DateTime::isLeapYear($purchasedYear))) {
    +            $yearFrac *= 365 / 366;
    +        }
    +
    +        $f0Rate = $yearFrac * $rate * $cost;
    +        $nNumOfFullPeriods = (int) (($cost - $salvage - $f0Rate) / $fOneRate);
    +
    +        if ($period == 0) {
    +            return $f0Rate;
    +        } elseif ($period <= $nNumOfFullPeriods) {
    +            return $fOneRate;
    +        } elseif ($period == ($nNumOfFullPeriods + 1)) {
    +            return $fCostDelta - $fOneRate * $nNumOfFullPeriods - $f0Rate;
    +        }
    +
    +        return 0.0;
    +    }
    +
    +    /**
    +     * COUPDAYBS.
    +     *
    +     * Returns the number of days from the beginning of the coupon period to the settlement date.
    +     *
    +     * Excel Function:
    +     *        COUPDAYBS(settlement,maturity,frequency[,basis])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                The security settlement date is the date after the issue
    +     *                                date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                The maturity date is the date when the security expires.
    +     * @param int $frequency the number of coupon payments per year.
    +     *                                    Valid frequency values are:
    +     *                                        1    Annual
    +     *                                        2    Semi-Annual
    +     *                                        4    Quarterly
    +     *                                    If working in Gnumeric Mode, the following frequency options are
    +     *                                    also available
    +     *                                        6    Bimonthly
    +     *                                        12    Monthly
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float|string
    +     */
    +    public static function COUPDAYBS($settlement, $maturity, $frequency, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $frequency = (int) Functions::flattenSingleValue($frequency);
    +        $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis);
    +
    +        if (is_string($settlement = DateTime::getDateValue($settlement))) {
    +            return Functions::VALUE();
    +        }
    +        if (is_string($maturity = DateTime::getDateValue($maturity))) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (($settlement > $maturity) ||
    +            (!self::isValidFrequency($frequency)) ||
    +            (($basis < 0) || ($basis > 4))) {
    +            return Functions::NAN();
    +        }
    +
    +        $daysPerYear = self::daysPerYear(DateTime::YEAR($settlement), $basis);
    +        $prev = self::couponFirstPeriodDate($settlement, $maturity, $frequency, false);
    +
    +        return DateTime::YEARFRAC($prev, $settlement, $basis) * $daysPerYear;
    +    }
    +
    +    /**
    +     * COUPDAYS.
    +     *
    +     * Returns the number of days in the coupon period that contains the settlement date.
    +     *
    +     * Excel Function:
    +     *        COUPDAYS(settlement,maturity,frequency[,basis])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                The security settlement date is the date after the issue
    +     *                                date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                The maturity date is the date when the security expires.
    +     * @param mixed $frequency the number of coupon payments per year.
    +     *                                    Valid frequency values are:
    +     *                                        1    Annual
    +     *                                        2    Semi-Annual
    +     *                                        4    Quarterly
    +     *                                    If working in Gnumeric Mode, the following frequency options are
    +     *                                    also available
    +     *                                        6    Bimonthly
    +     *                                        12    Monthly
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float|string
    +     */
    +    public static function COUPDAYS($settlement, $maturity, $frequency, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $frequency = (int) Functions::flattenSingleValue($frequency);
    +        $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis);
    +
    +        if (is_string($settlement = DateTime::getDateValue($settlement))) {
    +            return Functions::VALUE();
    +        }
    +        if (is_string($maturity = DateTime::getDateValue($maturity))) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (($settlement > $maturity) ||
    +            (!self::isValidFrequency($frequency)) ||
    +            (($basis < 0) || ($basis > 4))) {
    +            return Functions::NAN();
    +        }
    +
    +        switch ($basis) {
    +            case 3:
    +                // Actual/365
    +                return 365 / $frequency;
    +            case 1:
    +                // Actual/actual
    +                if ($frequency == 1) {
    +                    $daysPerYear = self::daysPerYear(DateTime::YEAR($settlement), $basis);
    +
    +                    return $daysPerYear / $frequency;
    +                }
    +                $prev = self::couponFirstPeriodDate($settlement, $maturity, $frequency, false);
    +                $next = self::couponFirstPeriodDate($settlement, $maturity, $frequency, true);
    +
    +                return $next - $prev;
    +            default:
    +                // US (NASD) 30/360, Actual/360 or European 30/360
    +                return 360 / $frequency;
    +        }
    +    }
    +
    +    /**
    +     * COUPDAYSNC.
    +     *
    +     * Returns the number of days from the settlement date to the next coupon date.
    +     *
    +     * Excel Function:
    +     *        COUPDAYSNC(settlement,maturity,frequency[,basis])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                The security settlement date is the date after the issue
    +     *                                date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                The maturity date is the date when the security expires.
    +     * @param mixed $frequency the number of coupon payments per year.
    +     *                                    Valid frequency values are:
    +     *                                        1    Annual
    +     *                                        2    Semi-Annual
    +     *                                        4    Quarterly
    +     *                                    If working in Gnumeric Mode, the following frequency options are
    +     *                                    also available
    +     *                                        6    Bimonthly
    +     *                                        12    Monthly
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float|string
    +     */
    +    public static function COUPDAYSNC($settlement, $maturity, $frequency, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $frequency = (int) Functions::flattenSingleValue($frequency);
    +        $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis);
    +
    +        if (is_string($settlement = DateTime::getDateValue($settlement))) {
    +            return Functions::VALUE();
    +        }
    +        if (is_string($maturity = DateTime::getDateValue($maturity))) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (($settlement > $maturity) ||
    +            (!self::isValidFrequency($frequency)) ||
    +            (($basis < 0) || ($basis > 4))) {
    +            return Functions::NAN();
    +        }
    +
    +        $daysPerYear = self::daysPerYear(DateTime::YEAR($settlement), $basis);
    +        $next = self::couponFirstPeriodDate($settlement, $maturity, $frequency, true);
    +
    +        return DateTime::YEARFRAC($settlement, $next, $basis) * $daysPerYear;
    +    }
    +
    +    /**
    +     * COUPNCD.
    +     *
    +     * Returns the next coupon date after the settlement date.
    +     *
    +     * Excel Function:
    +     *        COUPNCD(settlement,maturity,frequency[,basis])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                The security settlement date is the date after the issue
    +     *                                date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                The maturity date is the date when the security expires.
    +     * @param mixed $frequency the number of coupon payments per year.
    +     *                                    Valid frequency values are:
    +     *                                        1    Annual
    +     *                                        2    Semi-Annual
    +     *                                        4    Quarterly
    +     *                                    If working in Gnumeric Mode, the following frequency options are
    +     *                                    also available
    +     *                                        6    Bimonthly
    +     *                                        12    Monthly
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object,
    +     *                        depending on the value of the ReturnDateType flag
    +     */
    +    public static function COUPNCD($settlement, $maturity, $frequency, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $frequency = (int) Functions::flattenSingleValue($frequency);
    +        $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis);
    +
    +        if (is_string($settlement = DateTime::getDateValue($settlement))) {
    +            return Functions::VALUE();
    +        }
    +        if (is_string($maturity = DateTime::getDateValue($maturity))) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (($settlement > $maturity) ||
    +            (!self::isValidFrequency($frequency)) ||
    +            (($basis < 0) || ($basis > 4))) {
    +            return Functions::NAN();
    +        }
    +
    +        return self::couponFirstPeriodDate($settlement, $maturity, $frequency, true);
    +    }
    +
    +    /**
    +     * COUPNUM.
    +     *
    +     * Returns the number of coupons payable between the settlement date and maturity date,
    +     * rounded up to the nearest whole coupon.
    +     *
    +     * Excel Function:
    +     *        COUPNUM(settlement,maturity,frequency[,basis])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                The security settlement date is the date after the issue
    +     *                                date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                The maturity date is the date when the security expires.
    +     * @param mixed $frequency the number of coupon payments per year.
    +     *                                    Valid frequency values are:
    +     *                                        1    Annual
    +     *                                        2    Semi-Annual
    +     *                                        4    Quarterly
    +     *                                    If working in Gnumeric Mode, the following frequency options are
    +     *                                    also available
    +     *                                        6    Bimonthly
    +     *                                        12    Monthly
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return int|string
    +     */
    +    public static function COUPNUM($settlement, $maturity, $frequency, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $frequency = (int) Functions::flattenSingleValue($frequency);
    +        $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis);
    +
    +        if (is_string($settlement = DateTime::getDateValue($settlement))) {
    +            return Functions::VALUE();
    +        }
    +        if (is_string($maturity = DateTime::getDateValue($maturity))) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (($settlement > $maturity) ||
    +            (!self::isValidFrequency($frequency)) ||
    +            (($basis < 0) || ($basis > 4))) {
    +            return Functions::NAN();
    +        }
    +
    +        $settlement = self::couponFirstPeriodDate($settlement, $maturity, $frequency, true);
    +        $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis) * 365;
    +
    +        switch ($frequency) {
    +            case 1: // annual payments
    +                return ceil($daysBetweenSettlementAndMaturity / 360);
    +            case 2: // half-yearly
    +                return ceil($daysBetweenSettlementAndMaturity / 180);
    +            case 4: // quarterly
    +                return ceil($daysBetweenSettlementAndMaturity / 90);
    +            case 6: // bimonthly
    +                return ceil($daysBetweenSettlementAndMaturity / 60);
    +            case 12: // monthly
    +                return ceil($daysBetweenSettlementAndMaturity / 30);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * COUPPCD.
    +     *
    +     * Returns the previous coupon date before the settlement date.
    +     *
    +     * Excel Function:
    +     *        COUPPCD(settlement,maturity,frequency[,basis])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                The security settlement date is the date after the issue
    +     *                                date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                The maturity date is the date when the security expires.
    +     * @param mixed $frequency the number of coupon payments per year.
    +     *                                    Valid frequency values are:
    +     *                                        1    Annual
    +     *                                        2    Semi-Annual
    +     *                                        4    Quarterly
    +     *                                    If working in Gnumeric Mode, the following frequency options are
    +     *                                    also available
    +     *                                        6    Bimonthly
    +     *                                        12    Monthly
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object,
    +     *                        depending on the value of the ReturnDateType flag
    +     */
    +    public static function COUPPCD($settlement, $maturity, $frequency, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $frequency = (int) Functions::flattenSingleValue($frequency);
    +        $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis);
    +
    +        if (is_string($settlement = DateTime::getDateValue($settlement))) {
    +            return Functions::VALUE();
    +        }
    +        if (is_string($maturity = DateTime::getDateValue($maturity))) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (($settlement > $maturity) ||
    +            (!self::isValidFrequency($frequency)) ||
    +            (($basis < 0) || ($basis > 4))) {
    +            return Functions::NAN();
    +        }
    +
    +        return self::couponFirstPeriodDate($settlement, $maturity, $frequency, false);
    +    }
    +
    +    /**
    +     * CUMIPMT.
    +     *
    +     * Returns the cumulative interest paid on a loan between the start and end periods.
    +     *
    +     * Excel Function:
    +     *        CUMIPMT(rate,nper,pv,start,end[,type])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param float $rate The Interest rate
    +     * @param int $nper The total number of payment periods
    +     * @param float $pv Present Value
    +     * @param int $start The first period in the calculation.
    +     *                            Payment periods are numbered beginning with 1.
    +     * @param int $end the last period in the calculation
    +     * @param int $type A number 0 or 1 and indicates when payments are due:
    +     *                                0 or omitted    At the end of the period.
    +     *                                1                At the beginning of the period.
    +     *
    +     * @return float|string
    +     */
    +    public static function CUMIPMT($rate, $nper, $pv, $start, $end, $type = 0)
    +    {
    +        $rate = Functions::flattenSingleValue($rate);
    +        $nper = (int) Functions::flattenSingleValue($nper);
    +        $pv = Functions::flattenSingleValue($pv);
    +        $start = (int) Functions::flattenSingleValue($start);
    +        $end = (int) Functions::flattenSingleValue($end);
    +        $type = (int) Functions::flattenSingleValue($type);
    +
    +        // Validate parameters
    +        if ($type != 0 && $type != 1) {
    +            return Functions::NAN();
    +        }
    +        if ($start < 1 || $start > $end) {
    +            return Functions::VALUE();
    +        }
    +
    +        // Calculate
    +        $interest = 0;
    +        for ($per = $start; $per <= $end; ++$per) {
    +            $interest += self::IPMT($rate, $per, $nper, $pv, 0, $type);
    +        }
    +
    +        return $interest;
    +    }
    +
    +    /**
    +     * CUMPRINC.
    +     *
    +     * Returns the cumulative principal paid on a loan between the start and end periods.
    +     *
    +     * Excel Function:
    +     *        CUMPRINC(rate,nper,pv,start,end[,type])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param float $rate The Interest rate
    +     * @param int $nper The total number of payment periods
    +     * @param float $pv Present Value
    +     * @param int $start The first period in the calculation.
    +     *                            Payment periods are numbered beginning with 1.
    +     * @param int $end the last period in the calculation
    +     * @param int $type A number 0 or 1 and indicates when payments are due:
    +     *                                0 or omitted    At the end of the period.
    +     *                                1                At the beginning of the period.
    +     *
    +     * @return float|string
    +     */
    +    public static function CUMPRINC($rate, $nper, $pv, $start, $end, $type = 0)
    +    {
    +        $rate = Functions::flattenSingleValue($rate);
    +        $nper = (int) Functions::flattenSingleValue($nper);
    +        $pv = Functions::flattenSingleValue($pv);
    +        $start = (int) Functions::flattenSingleValue($start);
    +        $end = (int) Functions::flattenSingleValue($end);
    +        $type = (int) Functions::flattenSingleValue($type);
    +
    +        // Validate parameters
    +        if ($type != 0 && $type != 1) {
    +            return Functions::NAN();
    +        }
    +        if ($start < 1 || $start > $end) {
    +            return Functions::VALUE();
    +        }
    +
    +        // Calculate
    +        $principal = 0;
    +        for ($per = $start; $per <= $end; ++$per) {
    +            $principal += self::PPMT($rate, $per, $nper, $pv, 0, $type);
    +        }
    +
    +        return $principal;
    +    }
    +
    +    /**
    +     * DB.
    +     *
    +     * Returns the depreciation of an asset for a specified period using the
    +     * fixed-declining balance method.
    +     * This form of depreciation is used if you want to get a higher depreciation value
    +     * at the beginning of the depreciation (as opposed to linear depreciation). The
    +     * depreciation value is reduced with every depreciation period by the depreciation
    +     * already deducted from the initial cost.
    +     *
    +     * Excel Function:
    +     *        DB(cost,salvage,life,period[,month])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param float $cost Initial cost of the asset
    +     * @param float $salvage Value at the end of the depreciation.
    +     *                                (Sometimes called the salvage value of the asset)
    +     * @param int $life Number of periods over which the asset is depreciated.
    +     *                                (Sometimes called the useful life of the asset)
    +     * @param int $period The period for which you want to calculate the
    +     *                                depreciation. Period must use the same units as life.
    +     * @param int $month Number of months in the first year. If month is omitted,
    +     *                                it defaults to 12.
    +     *
    +     * @return float|string
    +     */
    +    public static function DB($cost, $salvage, $life, $period, $month = 12)
    +    {
    +        $cost = Functions::flattenSingleValue($cost);
    +        $salvage = Functions::flattenSingleValue($salvage);
    +        $life = Functions::flattenSingleValue($life);
    +        $period = Functions::flattenSingleValue($period);
    +        $month = Functions::flattenSingleValue($month);
    +
    +        //    Validate
    +        if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life)) && (is_numeric($period)) && (is_numeric($month))) {
    +            $cost = (float) $cost;
    +            $salvage = (float) $salvage;
    +            $life = (int) $life;
    +            $period = (int) $period;
    +            $month = (int) $month;
    +            if ($cost == 0) {
    +                return 0.0;
    +            } elseif (($cost < 0) || (($salvage / $cost) < 0) || ($life <= 0) || ($period < 1) || ($month < 1)) {
    +                return Functions::NAN();
    +            }
    +            //    Set Fixed Depreciation Rate
    +            $fixedDepreciationRate = 1 - pow(($salvage / $cost), (1 / $life));
    +            $fixedDepreciationRate = round($fixedDepreciationRate, 3);
    +
    +            //    Loop through each period calculating the depreciation
    +            $previousDepreciation = 0;
    +            for ($per = 1; $per <= $period; ++$per) {
    +                if ($per == 1) {
    +                    $depreciation = $cost * $fixedDepreciationRate * $month / 12;
    +                } elseif ($per == ($life + 1)) {
    +                    $depreciation = ($cost - $previousDepreciation) * $fixedDepreciationRate * (12 - $month) / 12;
    +                } else {
    +                    $depreciation = ($cost - $previousDepreciation) * $fixedDepreciationRate;
    +                }
    +                $previousDepreciation += $depreciation;
    +            }
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
    +                $depreciation = round($depreciation, 2);
    +            }
    +
    +            return $depreciation;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * DDB.
    +     *
    +     * Returns the depreciation of an asset for a specified period using the
    +     * double-declining balance method or some other method you specify.
    +     *
    +     * Excel Function:
    +     *        DDB(cost,salvage,life,period[,factor])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param float $cost Initial cost of the asset
    +     * @param float $salvage Value at the end of the depreciation.
    +     *                                (Sometimes called the salvage value of the asset)
    +     * @param int $life Number of periods over which the asset is depreciated.
    +     *                                (Sometimes called the useful life of the asset)
    +     * @param int $period The period for which you want to calculate the
    +     *                                depreciation. Period must use the same units as life.
    +     * @param float $factor The rate at which the balance declines.
    +     *                                If factor is omitted, it is assumed to be 2 (the
    +     *                                double-declining balance method).
    +     *
    +     * @return float|string
    +     */
    +    public static function DDB($cost, $salvage, $life, $period, $factor = 2.0)
    +    {
    +        $cost = Functions::flattenSingleValue($cost);
    +        $salvage = Functions::flattenSingleValue($salvage);
    +        $life = Functions::flattenSingleValue($life);
    +        $period = Functions::flattenSingleValue($period);
    +        $factor = Functions::flattenSingleValue($factor);
    +
    +        //    Validate
    +        if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life)) && (is_numeric($period)) && (is_numeric($factor))) {
    +            $cost = (float) $cost;
    +            $salvage = (float) $salvage;
    +            $life = (int) $life;
    +            $period = (int) $period;
    +            $factor = (float) $factor;
    +            if (($cost <= 0) || (($salvage / $cost) < 0) || ($life <= 0) || ($period < 1) || ($factor <= 0.0) || ($period > $life)) {
    +                return Functions::NAN();
    +            }
    +            //    Set Fixed Depreciation Rate
    +            $fixedDepreciationRate = 1 - pow(($salvage / $cost), (1 / $life));
    +            $fixedDepreciationRate = round($fixedDepreciationRate, 3);
    +
    +            //    Loop through each period calculating the depreciation
    +            $previousDepreciation = 0;
    +            for ($per = 1; $per <= $period; ++$per) {
    +                $depreciation = min(($cost - $previousDepreciation) * ($factor / $life), ($cost - $salvage - $previousDepreciation));
    +                $previousDepreciation += $depreciation;
    +            }
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
    +                $depreciation = round($depreciation, 2);
    +            }
    +
    +            return $depreciation;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * DISC.
    +     *
    +     * Returns the discount rate for a security.
    +     *
    +     * Excel Function:
    +     *        DISC(settlement,maturity,price,redemption[,basis])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                The security settlement date is the date after the issue
    +     *                                date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                The maturity date is the date when the security expires.
    +     * @param int $price The security's price per $100 face value
    +     * @param int $redemption The security's redemption value per $100 face value
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float|string
    +     */
    +    public static function DISC($settlement, $maturity, $price, $redemption, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $price = Functions::flattenSingleValue($price);
    +        $redemption = Functions::flattenSingleValue($redemption);
    +        $basis = Functions::flattenSingleValue($basis);
    +
    +        //    Validate
    +        if ((is_numeric($price)) && (is_numeric($redemption)) && (is_numeric($basis))) {
    +            $price = (float) $price;
    +            $redemption = (float) $redemption;
    +            $basis = (int) $basis;
    +            if (($price <= 0) || ($redemption <= 0)) {
    +                return Functions::NAN();
    +            }
    +            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis);
    +            if (!is_numeric($daysBetweenSettlementAndMaturity)) {
    +                //    return date error
    +                return $daysBetweenSettlementAndMaturity;
    +            }
    +
    +            return (1 - $price / $redemption) / $daysBetweenSettlementAndMaturity;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * DOLLARDE.
    +     *
    +     * Converts a dollar price expressed as an integer part and a fraction
    +     *        part into a dollar price expressed as a decimal number.
    +     * Fractional dollar numbers are sometimes used for security prices.
    +     *
    +     * Excel Function:
    +     *        DOLLARDE(fractional_dollar,fraction)
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param float $fractional_dollar Fractional Dollar
    +     * @param int $fraction Fraction
    +     *
    +     * @return float|string
    +     */
    +    public static function DOLLARDE($fractional_dollar = null, $fraction = 0)
    +    {
    +        $fractional_dollar = Functions::flattenSingleValue($fractional_dollar);
    +        $fraction = (int) Functions::flattenSingleValue($fraction);
    +
    +        // Validate parameters
    +        if ($fractional_dollar === null || $fraction < 0) {
    +            return Functions::NAN();
    +        }
    +        if ($fraction == 0) {
    +            return Functions::DIV0();
    +        }
    +
    +        $dollars = floor($fractional_dollar);
    +        $cents = fmod($fractional_dollar, 1);
    +        $cents /= $fraction;
    +        $cents *= pow(10, ceil(log10($fraction)));
    +
    +        return $dollars + $cents;
    +    }
    +
    +    /**
    +     * DOLLARFR.
    +     *
    +     * Converts a dollar price expressed as a decimal number into a dollar price
    +     *        expressed as a fraction.
    +     * Fractional dollar numbers are sometimes used for security prices.
    +     *
    +     * Excel Function:
    +     *        DOLLARFR(decimal_dollar,fraction)
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param float $decimal_dollar Decimal Dollar
    +     * @param int $fraction Fraction
    +     *
    +     * @return float|string
    +     */
    +    public static function DOLLARFR($decimal_dollar = null, $fraction = 0)
    +    {
    +        $decimal_dollar = Functions::flattenSingleValue($decimal_dollar);
    +        $fraction = (int) Functions::flattenSingleValue($fraction);
    +
    +        // Validate parameters
    +        if ($decimal_dollar === null || $fraction < 0) {
    +            return Functions::NAN();
    +        }
    +        if ($fraction == 0) {
    +            return Functions::DIV0();
    +        }
    +
    +        $dollars = floor($decimal_dollar);
    +        $cents = fmod($decimal_dollar, 1);
    +        $cents *= $fraction;
    +        $cents *= pow(10, -ceil(log10($fraction)));
    +
    +        return $dollars + $cents;
    +    }
    +
    +    /**
    +     * EFFECT.
    +     *
    +     * Returns the effective interest rate given the nominal rate and the number of
    +     *        compounding payments per year.
    +     *
    +     * Excel Function:
    +     *        EFFECT(nominal_rate,npery)
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param float $nominal_rate Nominal interest rate
    +     * @param int $npery Number of compounding payments per year
    +     *
    +     * @return float|string
    +     */
    +    public static function EFFECT($nominal_rate = 0, $npery = 0)
    +    {
    +        $nominal_rate = Functions::flattenSingleValue($nominal_rate);
    +        $npery = (int) Functions::flattenSingleValue($npery);
    +
    +        // Validate parameters
    +        if ($nominal_rate <= 0 || $npery < 1) {
    +            return Functions::NAN();
    +        }
    +
    +        return pow((1 + $nominal_rate / $npery), $npery) - 1;
    +    }
    +
    +    /**
    +     * FV.
    +     *
    +     * Returns the Future Value of a cash flow with constant payments and interest rate (annuities).
    +     *
    +     * Excel Function:
    +     *        FV(rate,nper,pmt[,pv[,type]])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param float $rate The interest rate per period
    +     * @param int $nper Total number of payment periods in an annuity
    +     * @param float $pmt The payment made each period: it cannot change over the
    +     *                            life of the annuity. Typically, pmt contains principal
    +     *                            and interest but no other fees or taxes.
    +     * @param float $pv present Value, or the lump-sum amount that a series of
    +     *                            future payments is worth right now
    +     * @param int $type A number 0 or 1 and indicates when payments are due:
    +     *                                0 or omitted    At the end of the period.
    +     *                                1                At the beginning of the period.
    +     *
    +     * @return float|string
    +     */
    +    public static function FV($rate = 0, $nper = 0, $pmt = 0, $pv = 0, $type = 0)
    +    {
    +        $rate = Functions::flattenSingleValue($rate);
    +        $nper = Functions::flattenSingleValue($nper);
    +        $pmt = Functions::flattenSingleValue($pmt);
    +        $pv = Functions::flattenSingleValue($pv);
    +        $type = Functions::flattenSingleValue($type);
    +
    +        // Validate parameters
    +        if ($type != 0 && $type != 1) {
    +            return Functions::NAN();
    +        }
    +
    +        // Calculate
    +        if ($rate !== null && $rate != 0) {
    +            return -$pv * pow(1 + $rate, $nper) - $pmt * (1 + $rate * $type) * (pow(1 + $rate, $nper) - 1) / $rate;
    +        }
    +
    +        return -$pv - $pmt * $nper;
    +    }
    +
    +    /**
    +     * FVSCHEDULE.
    +     *
    +     * Returns the future value of an initial principal after applying a series of compound interest rates.
    +     * Use FVSCHEDULE to calculate the future value of an investment with a variable or adjustable rate.
    +     *
    +     * Excel Function:
    +     *        FVSCHEDULE(principal,schedule)
    +     *
    +     * @param float $principal the present value
    +     * @param float[] $schedule an array of interest rates to apply
    +     *
    +     * @return float
    +     */
    +    public static function FVSCHEDULE($principal, $schedule)
    +    {
    +        $principal = Functions::flattenSingleValue($principal);
    +        $schedule = Functions::flattenArray($schedule);
    +
    +        foreach ($schedule as $rate) {
    +            $principal *= 1 + $rate;
    +        }
    +
    +        return $principal;
    +    }
    +
    +    /**
    +     * INTRATE.
    +     *
    +     * Returns the interest rate for a fully invested security.
    +     *
    +     * Excel Function:
    +     *        INTRATE(settlement,maturity,investment,redemption[,basis])
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                The security settlement date is the date after the issue date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                The maturity date is the date when the security expires.
    +     * @param int $investment the amount invested in the security
    +     * @param int $redemption the amount to be received at maturity
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float|string
    +     */
    +    public static function INTRATE($settlement, $maturity, $investment, $redemption, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $investment = Functions::flattenSingleValue($investment);
    +        $redemption = Functions::flattenSingleValue($redemption);
    +        $basis = Functions::flattenSingleValue($basis);
    +
    +        //    Validate
    +        if ((is_numeric($investment)) && (is_numeric($redemption)) && (is_numeric($basis))) {
    +            $investment = (float) $investment;
    +            $redemption = (float) $redemption;
    +            $basis = (int) $basis;
    +            if (($investment <= 0) || ($redemption <= 0)) {
    +                return Functions::NAN();
    +            }
    +            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis);
    +            if (!is_numeric($daysBetweenSettlementAndMaturity)) {
    +                //    return date error
    +                return $daysBetweenSettlementAndMaturity;
    +            }
    +
    +            return (($redemption / $investment) - 1) / ($daysBetweenSettlementAndMaturity);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * IPMT.
    +     *
    +     * Returns the interest payment for a given period for an investment based on periodic, constant payments and a constant interest rate.
    +     *
    +     * Excel Function:
    +     *        IPMT(rate,per,nper,pv[,fv][,type])
    +     *
    +     * @param float $rate Interest rate per period
    +     * @param int $per Period for which we want to find the interest
    +     * @param int $nper Number of periods
    +     * @param float $pv Present Value
    +     * @param float $fv Future Value
    +     * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period
    +     *
    +     * @return float|string
    +     */
    +    public static function IPMT($rate, $per, $nper, $pv, $fv = 0, $type = 0)
    +    {
    +        $rate = Functions::flattenSingleValue($rate);
    +        $per = (int) Functions::flattenSingleValue($per);
    +        $nper = (int) Functions::flattenSingleValue($nper);
    +        $pv = Functions::flattenSingleValue($pv);
    +        $fv = Functions::flattenSingleValue($fv);
    +        $type = (int) Functions::flattenSingleValue($type);
    +
    +        // Validate parameters
    +        if ($type != 0 && $type != 1) {
    +            return Functions::NAN();
    +        }
    +        if ($per <= 0 || $per > $nper) {
    +            return Functions::VALUE();
    +        }
    +
    +        // Calculate
    +        $interestAndPrincipal = self::interestAndPrincipal($rate, $per, $nper, $pv, $fv, $type);
    +
    +        return $interestAndPrincipal[0];
    +    }
    +
    +    /**
    +     * IRR.
    +     *
    +     * Returns the internal rate of return for a series of cash flows represented by the numbers in values.
    +     * These cash flows do not have to be even, as they would be for an annuity. However, the cash flows must occur
    +     * at regular intervals, such as monthly or annually. The internal rate of return is the interest rate received
    +     * for an investment consisting of payments (negative values) and income (positive values) that occur at regular
    +     * periods.
    +     *
    +     * Excel Function:
    +     *        IRR(values[,guess])
    +     *
    +     * @param float[] $values An array or a reference to cells that contain numbers for which you want
    +     *                                    to calculate the internal rate of return.
    +     *                                Values must contain at least one positive value and one negative value to
    +     *                                    calculate the internal rate of return.
    +     * @param float $guess A number that you guess is close to the result of IRR
    +     *
    +     * @return float|string
    +     */
    +    public static function IRR($values, $guess = 0.1)
    +    {
    +        if (!is_array($values)) {
    +            return Functions::VALUE();
    +        }
    +        $values = Functions::flattenArray($values);
    +        $guess = Functions::flattenSingleValue($guess);
    +
    +        // create an initial range, with a root somewhere between 0 and guess
    +        $x1 = 0.0;
    +        $x2 = $guess;
    +        $f1 = self::NPV($x1, $values);
    +        $f2 = self::NPV($x2, $values);
    +        for ($i = 0; $i < self::FINANCIAL_MAX_ITERATIONS; ++$i) {
    +            if (($f1 * $f2) < 0.0) {
    +                break;
    +            }
    +            if (abs($f1) < abs($f2)) {
    +                $f1 = self::NPV($x1 += 1.6 * ($x1 - $x2), $values);
    +            } else {
    +                $f2 = self::NPV($x2 += 1.6 * ($x2 - $x1), $values);
    +            }
    +        }
    +        if (($f1 * $f2) > 0.0) {
    +            return Functions::VALUE();
    +        }
    +
    +        $f = self::NPV($x1, $values);
    +        if ($f < 0.0) {
    +            $rtb = $x1;
    +            $dx = $x2 - $x1;
    +        } else {
    +            $rtb = $x2;
    +            $dx = $x1 - $x2;
    +        }
    +
    +        for ($i = 0; $i < self::FINANCIAL_MAX_ITERATIONS; ++$i) {
    +            $dx *= 0.5;
    +            $x_mid = $rtb + $dx;
    +            $f_mid = self::NPV($x_mid, $values);
    +            if ($f_mid <= 0.0) {
    +                $rtb = $x_mid;
    +            }
    +            if ((abs($f_mid) < self::FINANCIAL_PRECISION) || (abs($dx) < self::FINANCIAL_PRECISION)) {
    +                return $x_mid;
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * ISPMT.
    +     *
    +     * Returns the interest payment for an investment based on an interest rate and a constant payment schedule.
    +     *
    +     * Excel Function:
    +     *     =ISPMT(interest_rate, period, number_payments, PV)
    +     *
    +     * interest_rate is the interest rate for the investment
    +     *
    +     * period is the period to calculate the interest rate.  It must be betweeen 1 and number_payments.
    +     *
    +     * number_payments is the number of payments for the annuity
    +     *
    +     * PV is the loan amount or present value of the payments
    +     */
    +    public static function ISPMT(...$args)
    +    {
    +        // Return value
    +        $returnValue = 0;
    +
    +        // Get the parameters
    +        $aArgs = Functions::flattenArray($args);
    +        $interestRate = array_shift($aArgs);
    +        $period = array_shift($aArgs);
    +        $numberPeriods = array_shift($aArgs);
    +        $principleRemaining = array_shift($aArgs);
    +
    +        // Calculate
    +        $principlePayment = ($principleRemaining * 1.0) / ($numberPeriods * 1.0);
    +        for ($i = 0; $i <= $period; ++$i) {
    +            $returnValue = $interestRate * $principleRemaining * -1;
    +            $principleRemaining -= $principlePayment;
    +            // principle needs to be 0 after the last payment, don't let floating point screw it up
    +            if ($i == $numberPeriods) {
    +                $returnValue = 0;
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * MIRR.
    +     *
    +     * Returns the modified internal rate of return for a series of periodic cash flows. MIRR considers both
    +     *        the cost of the investment and the interest received on reinvestment of cash.
    +     *
    +     * Excel Function:
    +     *        MIRR(values,finance_rate, reinvestment_rate)
    +     *
    +     * @param float[] $values An array or a reference to cells that contain a series of payments and
    +     *                                            income occurring at regular intervals.
    +     *                                        Payments are negative value, income is positive values.
    +     * @param float $finance_rate The interest rate you pay on the money used in the cash flows
    +     * @param float $reinvestment_rate The interest rate you receive on the cash flows as you reinvest them
    +     *
    +     * @return float|string
    +     */
    +    public static function MIRR($values, $finance_rate, $reinvestment_rate)
    +    {
    +        if (!is_array($values)) {
    +            return Functions::VALUE();
    +        }
    +        $values = Functions::flattenArray($values);
    +        $finance_rate = Functions::flattenSingleValue($finance_rate);
    +        $reinvestment_rate = Functions::flattenSingleValue($reinvestment_rate);
    +        $n = count($values);
    +
    +        $rr = 1.0 + $reinvestment_rate;
    +        $fr = 1.0 + $finance_rate;
    +
    +        $npv_pos = $npv_neg = 0.0;
    +        foreach ($values as $i => $v) {
    +            if ($v >= 0) {
    +                $npv_pos += $v / pow($rr, $i);
    +            } else {
    +                $npv_neg += $v / pow($fr, $i);
    +            }
    +        }
    +
    +        if (($npv_neg == 0) || ($npv_pos == 0) || ($reinvestment_rate <= -1)) {
    +            return Functions::VALUE();
    +        }
    +
    +        $mirr = pow((-$npv_pos * pow($rr, $n))
    +                / ($npv_neg * ($rr)), (1.0 / ($n - 1))) - 1.0;
    +
    +        return is_finite($mirr) ? $mirr : Functions::VALUE();
    +    }
    +
    +    /**
    +     * NOMINAL.
    +     *
    +     * Returns the nominal interest rate given the effective rate and the number of compounding payments per year.
    +     *
    +     * @param float $effect_rate Effective interest rate
    +     * @param int $npery Number of compounding payments per year
    +     *
    +     * @return float|string
    +     */
    +    public static function NOMINAL($effect_rate = 0, $npery = 0)
    +    {
    +        $effect_rate = Functions::flattenSingleValue($effect_rate);
    +        $npery = (int) Functions::flattenSingleValue($npery);
    +
    +        // Validate parameters
    +        if ($effect_rate <= 0 || $npery < 1) {
    +            return Functions::NAN();
    +        }
    +
    +        // Calculate
    +        return $npery * (pow($effect_rate + 1, 1 / $npery) - 1);
    +    }
    +
    +    /**
    +     * NPER.
    +     *
    +     * Returns the number of periods for a cash flow with constant periodic payments (annuities), and interest rate.
    +     *
    +     * @param float $rate Interest rate per period
    +     * @param int $pmt Periodic payment (annuity)
    +     * @param float $pv Present Value
    +     * @param float $fv Future Value
    +     * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period
    +     *
    +     * @return float|string
    +     */
    +    public static function NPER($rate = 0, $pmt = 0, $pv = 0, $fv = 0, $type = 0)
    +    {
    +        $rate = Functions::flattenSingleValue($rate);
    +        $pmt = Functions::flattenSingleValue($pmt);
    +        $pv = Functions::flattenSingleValue($pv);
    +        $fv = Functions::flattenSingleValue($fv);
    +        $type = Functions::flattenSingleValue($type);
    +
    +        // Validate parameters
    +        if ($type != 0 && $type != 1) {
    +            return Functions::NAN();
    +        }
    +
    +        // Calculate
    +        if ($rate !== null && $rate != 0) {
    +            if ($pmt == 0 && $pv == 0) {
    +                return Functions::NAN();
    +            }
    +
    +            return log(($pmt * (1 + $rate * $type) / $rate - $fv) / ($pv + $pmt * (1 + $rate * $type) / $rate)) / log(1 + $rate);
    +        }
    +        if ($pmt == 0) {
    +            return Functions::NAN();
    +        }
    +
    +        return (-$pv - $fv) / $pmt;
    +    }
    +
    +    /**
    +     * NPV.
    +     *
    +     * Returns the Net Present Value of a cash flow series given a discount rate.
    +     *
    +     * @return float
    +     */
    +    public static function NPV(...$args)
    +    {
    +        // Return value
    +        $returnValue = 0;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +
    +        // Calculate
    +        $rate = array_shift($aArgs);
    +        $countArgs = count($aArgs);
    +        for ($i = 1; $i <= $countArgs; ++$i) {
    +            // Is it a numeric value?
    +            if (is_numeric($aArgs[$i - 1])) {
    +                $returnValue += $aArgs[$i - 1] / pow(1 + $rate, $i);
    +            }
    +        }
    +
    +        // Return
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * PDURATION.
    +     *
    +     * Calculates the number of periods required for an investment to reach a specified value.
    +     *
    +     * @param float $rate Interest rate per period
    +     * @param float $pv Present Value
    +     * @param float $fv Future Value
    +     *
    +     * @return float|string
    +     */
    +    public static function PDURATION($rate = 0, $pv = 0, $fv = 0)
    +    {
    +        $rate = Functions::flattenSingleValue($rate);
    +        $pv = Functions::flattenSingleValue($pv);
    +        $fv = Functions::flattenSingleValue($fv);
    +
    +        // Validate parameters
    +        if (!is_numeric($rate) || !is_numeric($pv) || !is_numeric($fv)) {
    +            return Functions::VALUE();
    +        } elseif ($rate <= 0.0 || $pv <= 0.0 || $fv <= 0.0) {
    +            return Functions::NAN();
    +        }
    +
    +        return (log($fv) - log($pv)) / log(1 + $rate);
    +    }
    +
    +    /**
    +     * PMT.
    +     *
    +     * Returns the constant payment (annuity) for a cash flow with a constant interest rate.
    +     *
    +     * @param float $rate Interest rate per period
    +     * @param int $nper Number of periods
    +     * @param float $pv Present Value
    +     * @param float $fv Future Value
    +     * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period
    +     *
    +     * @return float
    +     */
    +    public static function PMT($rate = 0, $nper = 0, $pv = 0, $fv = 0, $type = 0)
    +    {
    +        $rate = Functions::flattenSingleValue($rate);
    +        $nper = Functions::flattenSingleValue($nper);
    +        $pv = Functions::flattenSingleValue($pv);
    +        $fv = Functions::flattenSingleValue($fv);
    +        $type = Functions::flattenSingleValue($type);
    +
    +        // Validate parameters
    +        if ($type != 0 && $type != 1) {
    +            return Functions::NAN();
    +        }
    +
    +        // Calculate
    +        if ($rate !== null && $rate != 0) {
    +            return (-$fv - $pv * pow(1 + $rate, $nper)) / (1 + $rate * $type) / ((pow(1 + $rate, $nper) - 1) / $rate);
    +        }
    +
    +        return (-$pv - $fv) / $nper;
    +    }
    +
    +    /**
    +     * PPMT.
    +     *
    +     * Returns the interest payment for a given period for an investment based on periodic, constant payments and a constant interest rate.
    +     *
    +     * @param float $rate Interest rate per period
    +     * @param int $per Period for which we want to find the interest
    +     * @param int $nper Number of periods
    +     * @param float $pv Present Value
    +     * @param float $fv Future Value
    +     * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period
    +     *
    +     * @return float
    +     */
    +    public static function PPMT($rate, $per, $nper, $pv, $fv = 0, $type = 0)
    +    {
    +        $rate = Functions::flattenSingleValue($rate);
    +        $per = (int) Functions::flattenSingleValue($per);
    +        $nper = (int) Functions::flattenSingleValue($nper);
    +        $pv = Functions::flattenSingleValue($pv);
    +        $fv = Functions::flattenSingleValue($fv);
    +        $type = (int) Functions::flattenSingleValue($type);
    +
    +        // Validate parameters
    +        if ($type != 0 && $type != 1) {
    +            return Functions::NAN();
    +        }
    +        if ($per <= 0 || $per > $nper) {
    +            return Functions::VALUE();
    +        }
    +
    +        // Calculate
    +        $interestAndPrincipal = self::interestAndPrincipal($rate, $per, $nper, $pv, $fv, $type);
    +
    +        return $interestAndPrincipal[1];
    +    }
    +
    +    public static function PRICE($settlement, $maturity, $rate, $yield, $redemption, $frequency, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $rate = (float) Functions::flattenSingleValue($rate);
    +        $yield = (float) Functions::flattenSingleValue($yield);
    +        $redemption = (float) Functions::flattenSingleValue($redemption);
    +        $frequency = (int) Functions::flattenSingleValue($frequency);
    +        $basis = ($basis === null) ? 0 : (int) Functions::flattenSingleValue($basis);
    +
    +        if (is_string($settlement = DateTime::getDateValue($settlement))) {
    +            return Functions::VALUE();
    +        }
    +        if (is_string($maturity = DateTime::getDateValue($maturity))) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (($settlement > $maturity) ||
    +            (!self::isValidFrequency($frequency)) ||
    +            (($basis < 0) || ($basis > 4))) {
    +            return Functions::NAN();
    +        }
    +
    +        $dsc = self::COUPDAYSNC($settlement, $maturity, $frequency, $basis);
    +        $e = self::COUPDAYS($settlement, $maturity, $frequency, $basis);
    +        $n = self::COUPNUM($settlement, $maturity, $frequency, $basis);
    +        $a = self::COUPDAYBS($settlement, $maturity, $frequency, $basis);
    +
    +        $baseYF = 1.0 + ($yield / $frequency);
    +        $rfp = 100 * ($rate / $frequency);
    +        $de = $dsc / $e;
    +
    +        $result = $redemption / pow($baseYF, (--$n + $de));
    +        for ($k = 0; $k <= $n; ++$k) {
    +            $result += $rfp / (pow($baseYF, ($k + $de)));
    +        }
    +        $result -= $rfp * ($a / $e);
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * PRICEDISC.
    +     *
    +     * Returns the price per $100 face value of a discounted security.
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                The security settlement date is the date after the issue date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                The maturity date is the date when the security expires.
    +     * @param int $discount The security's discount rate
    +     * @param int $redemption The security's redemption value per $100 face value
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float
    +     */
    +    public static function PRICEDISC($settlement, $maturity, $discount, $redemption, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $discount = (float) Functions::flattenSingleValue($discount);
    +        $redemption = (float) Functions::flattenSingleValue($redemption);
    +        $basis = (int) Functions::flattenSingleValue($basis);
    +
    +        //    Validate
    +        if ((is_numeric($discount)) && (is_numeric($redemption)) && (is_numeric($basis))) {
    +            if (($discount <= 0) || ($redemption <= 0)) {
    +                return Functions::NAN();
    +            }
    +            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis);
    +            if (!is_numeric($daysBetweenSettlementAndMaturity)) {
    +                //    return date error
    +                return $daysBetweenSettlementAndMaturity;
    +            }
    +
    +            return $redemption * (1 - $discount * $daysBetweenSettlementAndMaturity);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * PRICEMAT.
    +     *
    +     * Returns the price per $100 face value of a security that pays interest at maturity.
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                The security's settlement date is the date after the issue date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                The maturity date is the date when the security expires.
    +     * @param mixed $issue The security's issue date
    +     * @param int $rate The security's interest rate at date of issue
    +     * @param int $yield The security's annual yield
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float
    +     */
    +    public static function PRICEMAT($settlement, $maturity, $issue, $rate, $yield, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $issue = Functions::flattenSingleValue($issue);
    +        $rate = Functions::flattenSingleValue($rate);
    +        $yield = Functions::flattenSingleValue($yield);
    +        $basis = (int) Functions::flattenSingleValue($basis);
    +
    +        //    Validate
    +        if (is_numeric($rate) && is_numeric($yield)) {
    +            if (($rate <= 0) || ($yield <= 0)) {
    +                return Functions::NAN();
    +            }
    +            $daysPerYear = self::daysPerYear(DateTime::YEAR($settlement), $basis);
    +            if (!is_numeric($daysPerYear)) {
    +                return $daysPerYear;
    +            }
    +            $daysBetweenIssueAndSettlement = DateTime::YEARFRAC($issue, $settlement, $basis);
    +            if (!is_numeric($daysBetweenIssueAndSettlement)) {
    +                //    return date error
    +                return $daysBetweenIssueAndSettlement;
    +            }
    +            $daysBetweenIssueAndSettlement *= $daysPerYear;
    +            $daysBetweenIssueAndMaturity = DateTime::YEARFRAC($issue, $maturity, $basis);
    +            if (!is_numeric($daysBetweenIssueAndMaturity)) {
    +                //    return date error
    +                return $daysBetweenIssueAndMaturity;
    +            }
    +            $daysBetweenIssueAndMaturity *= $daysPerYear;
    +            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis);
    +            if (!is_numeric($daysBetweenSettlementAndMaturity)) {
    +                //    return date error
    +                return $daysBetweenSettlementAndMaturity;
    +            }
    +            $daysBetweenSettlementAndMaturity *= $daysPerYear;
    +
    +            return (100 + (($daysBetweenIssueAndMaturity / $daysPerYear) * $rate * 100)) /
    +                   (1 + (($daysBetweenSettlementAndMaturity / $daysPerYear) * $yield)) -
    +                   (($daysBetweenIssueAndSettlement / $daysPerYear) * $rate * 100);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * PV.
    +     *
    +     * Returns the Present Value of a cash flow with constant payments and interest rate (annuities).
    +     *
    +     * @param float $rate Interest rate per period
    +     * @param int $nper Number of periods
    +     * @param float $pmt Periodic payment (annuity)
    +     * @param float $fv Future Value
    +     * @param int $type Payment type: 0 = at the end of each period, 1 = at the beginning of each period
    +     *
    +     * @return float
    +     */
    +    public static function PV($rate = 0, $nper = 0, $pmt = 0, $fv = 0, $type = 0)
    +    {
    +        $rate = Functions::flattenSingleValue($rate);
    +        $nper = Functions::flattenSingleValue($nper);
    +        $pmt = Functions::flattenSingleValue($pmt);
    +        $fv = Functions::flattenSingleValue($fv);
    +        $type = Functions::flattenSingleValue($type);
    +
    +        // Validate parameters
    +        if ($type != 0 && $type != 1) {
    +            return Functions::NAN();
    +        }
    +
    +        // Calculate
    +        if ($rate !== null && $rate != 0) {
    +            return (-$pmt * (1 + $rate * $type) * ((pow(1 + $rate, $nper) - 1) / $rate) - $fv) / pow(1 + $rate, $nper);
    +        }
    +
    +        return -$fv - $pmt * $nper;
    +    }
    +
    +    /**
    +     * RATE.
    +     *
    +     * Returns the interest rate per period of an annuity.
    +     * RATE is calculated by iteration and can have zero or more solutions.
    +     * If the successive results of RATE do not converge to within 0.0000001 after 20 iterations,
    +     * RATE returns the #NUM! error value.
    +     *
    +     * Excel Function:
    +     *        RATE(nper,pmt,pv[,fv[,type[,guess]]])
    +     *
    +     * @category Financial Functions
    +     *
    +     * @param float $nper The total number of payment periods in an annuity
    +     * @param float $pmt The payment made each period and cannot change over the life
    +     *                                    of the annuity.
    +     *                                Typically, pmt includes principal and interest but no other
    +     *                                    fees or taxes.
    +     * @param float $pv The present value - the total amount that a series of future
    +     *                                    payments is worth now
    +     * @param float $fv The future value, or a cash balance you want to attain after
    +     *                                    the last payment is made. If fv is omitted, it is assumed
    +     *                                    to be 0 (the future value of a loan, for example, is 0).
    +     * @param int $type A number 0 or 1 and indicates when payments are due:
    +     *                                        0 or omitted    At the end of the period.
    +     *                                        1                At the beginning of the period.
    +     * @param float $guess Your guess for what the rate will be.
    +     *                                    If you omit guess, it is assumed to be 10 percent.
    +     *
    +     * @return float
    +     */
    +    public static function RATE($nper, $pmt, $pv, $fv = 0.0, $type = 0, $guess = 0.1)
    +    {
    +        $nper = (int) Functions::flattenSingleValue($nper);
    +        $pmt = Functions::flattenSingleValue($pmt);
    +        $pv = Functions::flattenSingleValue($pv);
    +        $fv = ($fv === null) ? 0.0 : Functions::flattenSingleValue($fv);
    +        $type = ($type === null) ? 0 : (int) Functions::flattenSingleValue($type);
    +        $guess = ($guess === null) ? 0.1 : Functions::flattenSingleValue($guess);
    +
    +        $rate = $guess;
    +        if (abs($rate) < self::FINANCIAL_PRECISION) {
    +            $y = $pv * (1 + $nper * $rate) + $pmt * (1 + $rate * $type) * $nper + $fv;
    +        } else {
    +            $f = exp($nper * log(1 + $rate));
    +            $y = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv;
    +        }
    +        $y0 = $pv + $pmt * $nper + $fv;
    +        $y1 = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv;
    +
    +        // find root by secant method
    +        $i = $x0 = 0.0;
    +        $x1 = $rate;
    +        while ((abs($y0 - $y1) > self::FINANCIAL_PRECISION) && ($i < self::FINANCIAL_MAX_ITERATIONS)) {
    +            $rate = ($y1 * $x0 - $y0 * $x1) / ($y1 - $y0);
    +            $x0 = $x1;
    +            $x1 = $rate;
    +            if (($nper * abs($pmt)) > ($pv - $fv)) {
    +                $x1 = abs($x1);
    +            }
    +            if (abs($rate) < self::FINANCIAL_PRECISION) {
    +                $y = $pv * (1 + $nper * $rate) + $pmt * (1 + $rate * $type) * $nper + $fv;
    +            } else {
    +                $f = exp($nper * log(1 + $rate));
    +                $y = $pv * $f + $pmt * (1 / $rate + $type) * ($f - 1) + $fv;
    +            }
    +
    +            $y0 = $y1;
    +            $y1 = $y;
    +            ++$i;
    +        }
    +
    +        return $rate;
    +    }
    +
    +    /**
    +     * RECEIVED.
    +     *
    +     * Returns the price per $100 face value of a discounted security.
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                The security settlement date is the date after the issue date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                The maturity date is the date when the security expires.
    +     * @param int $investment The amount invested in the security
    +     * @param int $discount The security's discount rate
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float
    +     */
    +    public static function RECEIVED($settlement, $maturity, $investment, $discount, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $investment = (float) Functions::flattenSingleValue($investment);
    +        $discount = (float) Functions::flattenSingleValue($discount);
    +        $basis = (int) Functions::flattenSingleValue($basis);
    +
    +        //    Validate
    +        if ((is_numeric($investment)) && (is_numeric($discount)) && (is_numeric($basis))) {
    +            if (($investment <= 0) || ($discount <= 0)) {
    +                return Functions::NAN();
    +            }
    +            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis);
    +            if (!is_numeric($daysBetweenSettlementAndMaturity)) {
    +                //    return date error
    +                return $daysBetweenSettlementAndMaturity;
    +            }
    +
    +            return $investment / (1 - ($discount * $daysBetweenSettlementAndMaturity));
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * RRI.
    +     *
    +     * Calculates the interest rate required for an investment to grow to a specified future value .
    +     *
    +     * @param float $nper The number of periods over which the investment is made
    +     * @param float $pv Present Value
    +     * @param float $fv Future Value
    +     *
    +     * @return float|string
    +     */
    +    public static function RRI($nper = 0, $pv = 0, $fv = 0)
    +    {
    +        $nper = Functions::flattenSingleValue($nper);
    +        $pv = Functions::flattenSingleValue($pv);
    +        $fv = Functions::flattenSingleValue($fv);
    +
    +        // Validate parameters
    +        if (!is_numeric($nper) || !is_numeric($pv) || !is_numeric($fv)) {
    +            return Functions::VALUE();
    +        } elseif ($nper <= 0.0 || $pv <= 0.0 || $fv < 0.0) {
    +            return Functions::NAN();
    +        }
    +
    +        return pow($fv / $pv, 1 / $nper) - 1;
    +    }
    +
    +    /**
    +     * SLN.
    +     *
    +     * Returns the straight-line depreciation of an asset for one period
    +     *
    +     * @param mixed $cost Initial cost of the asset
    +     * @param mixed $salvage Value at the end of the depreciation
    +     * @param mixed $life Number of periods over which the asset is depreciated
    +     *
    +     * @return float|string
    +     */
    +    public static function SLN($cost, $salvage, $life)
    +    {
    +        $cost = Functions::flattenSingleValue($cost);
    +        $salvage = Functions::flattenSingleValue($salvage);
    +        $life = Functions::flattenSingleValue($life);
    +
    +        // Calculate
    +        if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life))) {
    +            if ($life < 0) {
    +                return Functions::NAN();
    +            }
    +
    +            return ($cost - $salvage) / $life;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * SYD.
    +     *
    +     * Returns the sum-of-years' digits depreciation of an asset for a specified period.
    +     *
    +     * @param mixed $cost Initial cost of the asset
    +     * @param mixed $salvage Value at the end of the depreciation
    +     * @param mixed $life Number of periods over which the asset is depreciated
    +     * @param mixed $period Period
    +     *
    +     * @return float|string
    +     */
    +    public static function SYD($cost, $salvage, $life, $period)
    +    {
    +        $cost = Functions::flattenSingleValue($cost);
    +        $salvage = Functions::flattenSingleValue($salvage);
    +        $life = Functions::flattenSingleValue($life);
    +        $period = Functions::flattenSingleValue($period);
    +
    +        // Calculate
    +        if ((is_numeric($cost)) && (is_numeric($salvage)) && (is_numeric($life)) && (is_numeric($period))) {
    +            if (($life < 1) || ($period > $life)) {
    +                return Functions::NAN();
    +            }
    +
    +            return (($cost - $salvage) * ($life - $period + 1) * 2) / ($life * ($life + 1));
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * TBILLEQ.
    +     *
    +     * Returns the bond-equivalent yield for a Treasury bill.
    +     *
    +     * @param mixed $settlement The Treasury bill's settlement date.
    +     *                                The Treasury bill's settlement date is the date after the issue date when the Treasury bill is traded to the buyer.
    +     * @param mixed $maturity The Treasury bill's maturity date.
    +     *                                The maturity date is the date when the Treasury bill expires.
    +     * @param int $discount The Treasury bill's discount rate
    +     *
    +     * @return float
    +     */
    +    public static function TBILLEQ($settlement, $maturity, $discount)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $discount = Functions::flattenSingleValue($discount);
    +
    +        //    Use TBILLPRICE for validation
    +        $testValue = self::TBILLPRICE($settlement, $maturity, $discount);
    +        if (is_string($testValue)) {
    +            return $testValue;
    +        }
    +
    +        if (is_string($maturity = DateTime::getDateValue($maturity))) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +            ++$maturity;
    +            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity) * 360;
    +        } else {
    +            $daysBetweenSettlementAndMaturity = (DateTime::getDateValue($maturity) - DateTime::getDateValue($settlement));
    +        }
    +
    +        return (365 * $discount) / (360 - $discount * $daysBetweenSettlementAndMaturity);
    +    }
    +
    +    /**
    +     * TBILLPRICE.
    +     *
    +     * Returns the yield for a Treasury bill.
    +     *
    +     * @param mixed $settlement The Treasury bill's settlement date.
    +     *                                The Treasury bill's settlement date is the date after the issue date when the Treasury bill is traded to the buyer.
    +     * @param mixed $maturity The Treasury bill's maturity date.
    +     *                                The maturity date is the date when the Treasury bill expires.
    +     * @param int $discount The Treasury bill's discount rate
    +     *
    +     * @return float
    +     */
    +    public static function TBILLPRICE($settlement, $maturity, $discount)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $discount = Functions::flattenSingleValue($discount);
    +
    +        if (is_string($maturity = DateTime::getDateValue($maturity))) {
    +            return Functions::VALUE();
    +        }
    +
    +        //    Validate
    +        if (is_numeric($discount)) {
    +            if ($discount <= 0) {
    +                return Functions::NAN();
    +            }
    +
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                ++$maturity;
    +                $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity) * 360;
    +                if (!is_numeric($daysBetweenSettlementAndMaturity)) {
    +                    //    return date error
    +                    return $daysBetweenSettlementAndMaturity;
    +                }
    +            } else {
    +                $daysBetweenSettlementAndMaturity = (DateTime::getDateValue($maturity) - DateTime::getDateValue($settlement));
    +            }
    +
    +            if ($daysBetweenSettlementAndMaturity > 360) {
    +                return Functions::NAN();
    +            }
    +
    +            $price = 100 * (1 - (($discount * $daysBetweenSettlementAndMaturity) / 360));
    +            if ($price <= 0) {
    +                return Functions::NAN();
    +            }
    +
    +            return $price;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * TBILLYIELD.
    +     *
    +     * Returns the yield for a Treasury bill.
    +     *
    +     * @param mixed $settlement The Treasury bill's settlement date.
    +     *                                The Treasury bill's settlement date is the date after the issue date when the Treasury bill is traded to the buyer.
    +     * @param mixed $maturity The Treasury bill's maturity date.
    +     *                                The maturity date is the date when the Treasury bill expires.
    +     * @param int $price The Treasury bill's price per $100 face value
    +     *
    +     * @return float
    +     */
    +    public static function TBILLYIELD($settlement, $maturity, $price)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $price = Functions::flattenSingleValue($price);
    +
    +        //    Validate
    +        if (is_numeric($price)) {
    +            if ($price <= 0) {
    +                return Functions::NAN();
    +            }
    +
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                ++$maturity;
    +                $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity) * 360;
    +                if (!is_numeric($daysBetweenSettlementAndMaturity)) {
    +                    //    return date error
    +                    return $daysBetweenSettlementAndMaturity;
    +                }
    +            } else {
    +                $daysBetweenSettlementAndMaturity = (DateTime::getDateValue($maturity) - DateTime::getDateValue($settlement));
    +            }
    +
    +            if ($daysBetweenSettlementAndMaturity > 360) {
    +                return Functions::NAN();
    +            }
    +
    +            return ((100 - $price) / $price) * (360 / $daysBetweenSettlementAndMaturity);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    public static function XIRR($values, $dates, $guess = 0.1)
    +    {
    +        if ((!is_array($values)) && (!is_array($dates))) {
    +            return Functions::VALUE();
    +        }
    +        $values = Functions::flattenArray($values);
    +        $dates = Functions::flattenArray($dates);
    +        $guess = Functions::flattenSingleValue($guess);
    +        if (count($values) != count($dates)) {
    +            return Functions::NAN();
    +        }
    +
    +        // create an initial range, with a root somewhere between 0 and guess
    +        $x1 = 0.0;
    +        $x2 = $guess;
    +        $f1 = self::XNPV($x1, $values, $dates);
    +        $f2 = self::XNPV($x2, $values, $dates);
    +        for ($i = 0; $i < self::FINANCIAL_MAX_ITERATIONS; ++$i) {
    +            if (($f1 * $f2) < 0.0) {
    +                break;
    +            } elseif (abs($f1) < abs($f2)) {
    +                $f1 = self::XNPV($x1 += 1.6 * ($x1 - $x2), $values, $dates);
    +            } else {
    +                $f2 = self::XNPV($x2 += 1.6 * ($x2 - $x1), $values, $dates);
    +            }
    +        }
    +        if (($f1 * $f2) > 0.0) {
    +            return Functions::VALUE();
    +        }
    +
    +        $f = self::XNPV($x1, $values, $dates);
    +        if ($f < 0.0) {
    +            $rtb = $x1;
    +            $dx = $x2 - $x1;
    +        } else {
    +            $rtb = $x2;
    +            $dx = $x1 - $x2;
    +        }
    +
    +        for ($i = 0; $i < self::FINANCIAL_MAX_ITERATIONS; ++$i) {
    +            $dx *= 0.5;
    +            $x_mid = $rtb + $dx;
    +            $f_mid = self::XNPV($x_mid, $values, $dates);
    +            if ($f_mid <= 0.0) {
    +                $rtb = $x_mid;
    +            }
    +            if ((abs($f_mid) < self::FINANCIAL_PRECISION) || (abs($dx) < self::FINANCIAL_PRECISION)) {
    +                return $x_mid;
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * XNPV.
    +     *
    +     * Returns the net present value for a schedule of cash flows that is not necessarily periodic.
    +     * To calculate the net present value for a series of cash flows that is periodic, use the NPV function.
    +     *
    +     * Excel Function:
    +     *        =XNPV(rate,values,dates)
    +     *
    +     * @param float $rate the discount rate to apply to the cash flows
    +     * @param array of float    $values     A series of cash flows that corresponds to a schedule of payments in dates.
    +     *                                         The first payment is optional and corresponds to a cost or payment that occurs at the beginning of the investment.
    +     *                                         If the first value is a cost or payment, it must be a negative value. All succeeding payments are discounted based on a 365-day year.
    +     *                                         The series of values must contain at least one positive value and one negative value.
    +     * @param array of mixed    $dates      A schedule of payment dates that corresponds to the cash flow payments.
    +     *                                         The first payment date indicates the beginning of the schedule of payments.
    +     *                                         All other dates must be later than this date, but they may occur in any order.
    +     *
    +     * @return float
    +     */
    +    public static function XNPV($rate, $values, $dates)
    +    {
    +        $rate = Functions::flattenSingleValue($rate);
    +        if (!is_numeric($rate)) {
    +            return Functions::VALUE();
    +        }
    +        if ((!is_array($values)) || (!is_array($dates))) {
    +            return Functions::VALUE();
    +        }
    +        $values = Functions::flattenArray($values);
    +        $dates = Functions::flattenArray($dates);
    +        $valCount = count($values);
    +        if ($valCount != count($dates)) {
    +            return Functions::NAN();
    +        }
    +        if ((min($values) > 0) || (max($values) < 0)) {
    +            return Functions::VALUE();
    +        }
    +
    +        $xnpv = 0.0;
    +        for ($i = 0; $i < $valCount; ++$i) {
    +            if (!is_numeric($values[$i])) {
    +                return Functions::VALUE();
    +            }
    +            $xnpv += $values[$i] / pow(1 + $rate, DateTime::DATEDIF($dates[0], $dates[$i], 'd') / 365);
    +        }
    +
    +        return (is_finite($xnpv)) ? $xnpv : Functions::VALUE();
    +    }
    +
    +    /**
    +     * YIELDDISC.
    +     *
    +     * Returns the annual yield of a security that pays interest at maturity.
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                    The security's settlement date is the date after the issue date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                    The maturity date is the date when the security expires.
    +     * @param int $price The security's price per $100 face value
    +     * @param int $redemption The security's redemption value per $100 face value
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float
    +     */
    +    public static function YIELDDISC($settlement, $maturity, $price, $redemption, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $price = Functions::flattenSingleValue($price);
    +        $redemption = Functions::flattenSingleValue($redemption);
    +        $basis = (int) Functions::flattenSingleValue($basis);
    +
    +        //    Validate
    +        if (is_numeric($price) && is_numeric($redemption)) {
    +            if (($price <= 0) || ($redemption <= 0)) {
    +                return Functions::NAN();
    +            }
    +            $daysPerYear = self::daysPerYear(DateTime::YEAR($settlement), $basis);
    +            if (!is_numeric($daysPerYear)) {
    +                return $daysPerYear;
    +            }
    +            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis);
    +            if (!is_numeric($daysBetweenSettlementAndMaturity)) {
    +                //    return date error
    +                return $daysBetweenSettlementAndMaturity;
    +            }
    +            $daysBetweenSettlementAndMaturity *= $daysPerYear;
    +
    +            return (($redemption - $price) / $price) * ($daysPerYear / $daysBetweenSettlementAndMaturity);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * YIELDMAT.
    +     *
    +     * Returns the annual yield of a security that pays interest at maturity.
    +     *
    +     * @param mixed $settlement The security's settlement date.
    +     *                                   The security's settlement date is the date after the issue date when the security is traded to the buyer.
    +     * @param mixed $maturity The security's maturity date.
    +     *                                   The maturity date is the date when the security expires.
    +     * @param mixed $issue The security's issue date
    +     * @param int $rate The security's interest rate at date of issue
    +     * @param int $price The security's price per $100 face value
    +     * @param int $basis The type of day count to use.
    +     *                                        0 or omitted    US (NASD) 30/360
    +     *                                        1                Actual/actual
    +     *                                        2                Actual/360
    +     *                                        3                Actual/365
    +     *                                        4                European 30/360
    +     *
    +     * @return float
    +     */
    +    public static function YIELDMAT($settlement, $maturity, $issue, $rate, $price, $basis = 0)
    +    {
    +        $settlement = Functions::flattenSingleValue($settlement);
    +        $maturity = Functions::flattenSingleValue($maturity);
    +        $issue = Functions::flattenSingleValue($issue);
    +        $rate = Functions::flattenSingleValue($rate);
    +        $price = Functions::flattenSingleValue($price);
    +        $basis = (int) Functions::flattenSingleValue($basis);
    +
    +        //    Validate
    +        if (is_numeric($rate) && is_numeric($price)) {
    +            if (($rate <= 0) || ($price <= 0)) {
    +                return Functions::NAN();
    +            }
    +            $daysPerYear = self::daysPerYear(DateTime::YEAR($settlement), $basis);
    +            if (!is_numeric($daysPerYear)) {
    +                return $daysPerYear;
    +            }
    +            $daysBetweenIssueAndSettlement = DateTime::YEARFRAC($issue, $settlement, $basis);
    +            if (!is_numeric($daysBetweenIssueAndSettlement)) {
    +                //    return date error
    +                return $daysBetweenIssueAndSettlement;
    +            }
    +            $daysBetweenIssueAndSettlement *= $daysPerYear;
    +            $daysBetweenIssueAndMaturity = DateTime::YEARFRAC($issue, $maturity, $basis);
    +            if (!is_numeric($daysBetweenIssueAndMaturity)) {
    +                //    return date error
    +                return $daysBetweenIssueAndMaturity;
    +            }
    +            $daysBetweenIssueAndMaturity *= $daysPerYear;
    +            $daysBetweenSettlementAndMaturity = DateTime::YEARFRAC($settlement, $maturity, $basis);
    +            if (!is_numeric($daysBetweenSettlementAndMaturity)) {
    +                //    return date error
    +                return $daysBetweenSettlementAndMaturity;
    +            }
    +            $daysBetweenSettlementAndMaturity *= $daysPerYear;
    +
    +            return ((1 + (($daysBetweenIssueAndMaturity / $daysPerYear) * $rate) - (($price / 100) + (($daysBetweenIssueAndSettlement / $daysPerYear) * $rate))) /
    +                   (($price / 100) + (($daysBetweenIssueAndSettlement / $daysPerYear) * $rate))) *
    +                   ($daysPerYear / $daysBetweenSettlementAndMaturity);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/FormulaParser.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/FormulaParser.php
    new file mode 100644
    index 00000000000..9b3c66e9e86
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/FormulaParser.php
    @@ -0,0 +1,623 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +/**
    + * PARTLY BASED ON:
    + * Copyright (c) 2007 E. W. Bachtal, Inc.
    + *
    + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
    + * and associated documentation files (the "Software"), to deal in the Software without restriction,
    + * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
    + * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
    + * subject to the following conditions:
    + *
    + * The above copyright notice and this permission notice shall be included in all copies or substantial
    + * portions of the Software.
    + *
    + * The software is provided "as is", without warranty of any kind, express or implied, including but not
    + * limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In
    + * no event shall the authors or copyright holders be liable for any claim, damages or other liability,
    + * whether in an action of contract, tort or otherwise, arising from, out of or in connection with the
    + * software or the use or other dealings in the software.
    + *
    + * https://ewbi.blogs.com/develops/2007/03/excel_formula_p.html
    + * https://ewbi.blogs.com/develops/2004/12/excel_formula_p.html
    + */
    +class FormulaParser
    +{
    +    // Character constants
    +    const QUOTE_DOUBLE = '"';
    +    const QUOTE_SINGLE = '\'';
    +    const BRACKET_CLOSE = ']';
    +    const BRACKET_OPEN = '[';
    +    const BRACE_OPEN = '{';
    +    const BRACE_CLOSE = '}';
    +    const PAREN_OPEN = '(';
    +    const PAREN_CLOSE = ')';
    +    const SEMICOLON = ';';
    +    const WHITESPACE = ' ';
    +    const COMMA = ',';
    +    const ERROR_START = '#';
    +
    +    const OPERATORS_SN = '+-';
    +    const OPERATORS_INFIX = '+-*/^&=><';
    +    const OPERATORS_POSTFIX = '%';
    +
    +    /**
    +     * Formula.
    +     *
    +     * @var string
    +     */
    +    private $formula;
    +
    +    /**
    +     * Tokens.
    +     *
    +     * @var FormulaToken[]
    +     */
    +    private $tokens = [];
    +
    +    /**
    +     * Create a new FormulaParser.
    +     *
    +     * @param string $pFormula Formula to parse
    +     *
    +     * @throws Exception
    +     */
    +    public function __construct($pFormula = '')
    +    {
    +        // Check parameters
    +        if ($pFormula === null) {
    +            throw new Exception('Invalid parameter passed: formula');
    +        }
    +
    +        // Initialise values
    +        $this->formula = trim($pFormula);
    +        // Parse!
    +        $this->parseToTokens();
    +    }
    +
    +    /**
    +     * Get Formula.
    +     *
    +     * @return string
    +     */
    +    public function getFormula()
    +    {
    +        return $this->formula;
    +    }
    +
    +    /**
    +     * Get Token.
    +     *
    +     * @param int $pId Token id
    +     *
    +     * @throws Exception
    +     *
    +     * @return string
    +     */
    +    public function getToken($pId = 0)
    +    {
    +        if (isset($this->tokens[$pId])) {
    +            return $this->tokens[$pId];
    +        }
    +
    +        throw new Exception("Token with id $pId does not exist.");
    +    }
    +
    +    /**
    +     * Get Token count.
    +     *
    +     * @return int
    +     */
    +    public function getTokenCount()
    +    {
    +        return count($this->tokens);
    +    }
    +
    +    /**
    +     * Get Tokens.
    +     *
    +     * @return FormulaToken[]
    +     */
    +    public function getTokens()
    +    {
    +        return $this->tokens;
    +    }
    +
    +    /**
    +     * Parse to tokens.
    +     */
    +    private function parseToTokens()
    +    {
    +        // No attempt is made to verify formulas; assumes formulas are derived from Excel, where
    +        // they can only exist if valid; stack overflows/underflows sunk as nulls without exceptions.
    +
    +        // Check if the formula has a valid starting =
    +        $formulaLength = strlen($this->formula);
    +        if ($formulaLength < 2 || $this->formula[0] != '=') {
    +            return;
    +        }
    +
    +        // Helper variables
    +        $tokens1 = $tokens2 = $stack = [];
    +        $inString = $inPath = $inRange = $inError = false;
    +        $token = $previousToken = $nextToken = null;
    +
    +        $index = 1;
    +        $value = '';
    +
    +        $ERRORS = ['#NULL!', '#DIV/0!', '#VALUE!', '#REF!', '#NAME?', '#NUM!', '#N/A'];
    +        $COMPARATORS_MULTI = ['>=', '<=', '<>'];
    +
    +        while ($index < $formulaLength) {
    +            // state-dependent character evaluation (order is important)
    +
    +            // double-quoted strings
    +            // embeds are doubled
    +            // end marks token
    +            if ($inString) {
    +                if ($this->formula[$index] == self::QUOTE_DOUBLE) {
    +                    if ((($index + 2) <= $formulaLength) && ($this->formula[$index + 1] == self::QUOTE_DOUBLE)) {
    +                        $value .= self::QUOTE_DOUBLE;
    +                        ++$index;
    +                    } else {
    +                        $inString = false;
    +                        $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERAND, FormulaToken::TOKEN_SUBTYPE_TEXT);
    +                        $value = '';
    +                    }
    +                } else {
    +                    $value .= $this->formula[$index];
    +                }
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            // single-quoted strings (links)
    +            // embeds are double
    +            // end does not mark a token
    +            if ($inPath) {
    +                if ($this->formula[$index] == self::QUOTE_SINGLE) {
    +                    if ((($index + 2) <= $formulaLength) && ($this->formula[$index + 1] == self::QUOTE_SINGLE)) {
    +                        $value .= self::QUOTE_SINGLE;
    +                        ++$index;
    +                    } else {
    +                        $inPath = false;
    +                    }
    +                } else {
    +                    $value .= $this->formula[$index];
    +                }
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            // bracked strings (R1C1 range index or linked workbook name)
    +            // no embeds (changed to "()" by Excel)
    +            // end does not mark a token
    +            if ($inRange) {
    +                if ($this->formula[$index] == self::BRACKET_CLOSE) {
    +                    $inRange = false;
    +                }
    +                $value .= $this->formula[$index];
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            // error values
    +            // end marks a token, determined from absolute list of values
    +            if ($inError) {
    +                $value .= $this->formula[$index];
    +                ++$index;
    +                if (in_array($value, $ERRORS)) {
    +                    $inError = false;
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERAND, FormulaToken::TOKEN_SUBTYPE_ERROR);
    +                    $value = '';
    +                }
    +
    +                continue;
    +            }
    +
    +            // scientific notation check
    +            if (strpos(self::OPERATORS_SN, $this->formula[$index]) !== false) {
    +                if (strlen($value) > 1) {
    +                    if (preg_match('/^[1-9]{1}(\\.\\d+)?E{1}$/', $this->formula[$index]) != 0) {
    +                        $value .= $this->formula[$index];
    +                        ++$index;
    +
    +                        continue;
    +                    }
    +                }
    +            }
    +
    +            // independent character evaluation (order not important)
    +
    +            // establish state-dependent character evaluations
    +            if ($this->formula[$index] == self::QUOTE_DOUBLE) {
    +                if (strlen($value) > 0) {
    +                    // unexpected
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_UNKNOWN);
    +                    $value = '';
    +                }
    +                $inString = true;
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            if ($this->formula[$index] == self::QUOTE_SINGLE) {
    +                if (strlen($value) > 0) {
    +                    // unexpected
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_UNKNOWN);
    +                    $value = '';
    +                }
    +                $inPath = true;
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            if ($this->formula[$index] == self::BRACKET_OPEN) {
    +                $inRange = true;
    +                $value .= self::BRACKET_OPEN;
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            if ($this->formula[$index] == self::ERROR_START) {
    +                if (strlen($value) > 0) {
    +                    // unexpected
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_UNKNOWN);
    +                    $value = '';
    +                }
    +                $inError = true;
    +                $value .= self::ERROR_START;
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            // mark start and end of arrays and array rows
    +            if ($this->formula[$index] == self::BRACE_OPEN) {
    +                if (strlen($value) > 0) {
    +                    // unexpected
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_UNKNOWN);
    +                    $value = '';
    +                }
    +
    +                $tmp = new FormulaToken('ARRAY', FormulaToken::TOKEN_TYPE_FUNCTION, FormulaToken::TOKEN_SUBTYPE_START);
    +                $tokens1[] = $tmp;
    +                $stack[] = clone $tmp;
    +
    +                $tmp = new FormulaToken('ARRAYROW', FormulaToken::TOKEN_TYPE_FUNCTION, FormulaToken::TOKEN_SUBTYPE_START);
    +                $tokens1[] = $tmp;
    +                $stack[] = clone $tmp;
    +
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            if ($this->formula[$index] == self::SEMICOLON) {
    +                if (strlen($value) > 0) {
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERAND);
    +                    $value = '';
    +                }
    +
    +                $tmp = array_pop($stack);
    +                $tmp->setValue('');
    +                $tmp->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_STOP);
    +                $tokens1[] = $tmp;
    +
    +                $tmp = new FormulaToken(',', FormulaToken::TOKEN_TYPE_ARGUMENT);
    +                $tokens1[] = $tmp;
    +
    +                $tmp = new FormulaToken('ARRAYROW', FormulaToken::TOKEN_TYPE_FUNCTION, FormulaToken::TOKEN_SUBTYPE_START);
    +                $tokens1[] = $tmp;
    +                $stack[] = clone $tmp;
    +
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            if ($this->formula[$index] == self::BRACE_CLOSE) {
    +                if (strlen($value) > 0) {
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERAND);
    +                    $value = '';
    +                }
    +
    +                $tmp = array_pop($stack);
    +                $tmp->setValue('');
    +                $tmp->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_STOP);
    +                $tokens1[] = $tmp;
    +
    +                $tmp = array_pop($stack);
    +                $tmp->setValue('');
    +                $tmp->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_STOP);
    +                $tokens1[] = $tmp;
    +
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            // trim white-space
    +            if ($this->formula[$index] == self::WHITESPACE) {
    +                if (strlen($value) > 0) {
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERAND);
    +                    $value = '';
    +                }
    +                $tokens1[] = new FormulaToken('', FormulaToken::TOKEN_TYPE_WHITESPACE);
    +                ++$index;
    +                while (($this->formula[$index] == self::WHITESPACE) && ($index < $formulaLength)) {
    +                    ++$index;
    +                }
    +
    +                continue;
    +            }
    +
    +            // multi-character comparators
    +            if (($index + 2) <= $formulaLength) {
    +                if (in_array(substr($this->formula, $index, 2), $COMPARATORS_MULTI)) {
    +                    if (strlen($value) > 0) {
    +                        $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERAND);
    +                        $value = '';
    +                    }
    +                    $tokens1[] = new FormulaToken(substr($this->formula, $index, 2), FormulaToken::TOKEN_TYPE_OPERATORINFIX, FormulaToken::TOKEN_SUBTYPE_LOGICAL);
    +                    $index += 2;
    +
    +                    continue;
    +                }
    +            }
    +
    +            // standard infix operators
    +            if (strpos(self::OPERATORS_INFIX, $this->formula[$index]) !== false) {
    +                if (strlen($value) > 0) {
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERAND);
    +                    $value = '';
    +                }
    +                $tokens1[] = new FormulaToken($this->formula[$index], FormulaToken::TOKEN_TYPE_OPERATORINFIX);
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            // standard postfix operators (only one)
    +            if (strpos(self::OPERATORS_POSTFIX, $this->formula[$index]) !== false) {
    +                if (strlen($value) > 0) {
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERAND);
    +                    $value = '';
    +                }
    +                $tokens1[] = new FormulaToken($this->formula[$index], FormulaToken::TOKEN_TYPE_OPERATORPOSTFIX);
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            // start subexpression or function
    +            if ($this->formula[$index] == self::PAREN_OPEN) {
    +                if (strlen($value) > 0) {
    +                    $tmp = new FormulaToken($value, FormulaToken::TOKEN_TYPE_FUNCTION, FormulaToken::TOKEN_SUBTYPE_START);
    +                    $tokens1[] = $tmp;
    +                    $stack[] = clone $tmp;
    +                    $value = '';
    +                } else {
    +                    $tmp = new FormulaToken('', FormulaToken::TOKEN_TYPE_SUBEXPRESSION, FormulaToken::TOKEN_SUBTYPE_START);
    +                    $tokens1[] = $tmp;
    +                    $stack[] = clone $tmp;
    +                }
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            // function, subexpression, or array parameters, or operand unions
    +            if ($this->formula[$index] == self::COMMA) {
    +                if (strlen($value) > 0) {
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERAND);
    +                    $value = '';
    +                }
    +
    +                $tmp = array_pop($stack);
    +                $tmp->setValue('');
    +                $tmp->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_STOP);
    +                $stack[] = $tmp;
    +
    +                if ($tmp->getTokenType() == FormulaToken::TOKEN_TYPE_FUNCTION) {
    +                    $tokens1[] = new FormulaToken(',', FormulaToken::TOKEN_TYPE_OPERATORINFIX, FormulaToken::TOKEN_SUBTYPE_UNION);
    +                } else {
    +                    $tokens1[] = new FormulaToken(',', FormulaToken::TOKEN_TYPE_ARGUMENT);
    +                }
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            // stop subexpression
    +            if ($this->formula[$index] == self::PAREN_CLOSE) {
    +                if (strlen($value) > 0) {
    +                    $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERAND);
    +                    $value = '';
    +                }
    +
    +                $tmp = array_pop($stack);
    +                $tmp->setValue('');
    +                $tmp->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_STOP);
    +                $tokens1[] = $tmp;
    +
    +                ++$index;
    +
    +                continue;
    +            }
    +
    +            // token accumulation
    +            $value .= $this->formula[$index];
    +            ++$index;
    +        }
    +
    +        // dump remaining accumulation
    +        if (strlen($value) > 0) {
    +            $tokens1[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERAND);
    +        }
    +
    +        // move tokenList to new set, excluding unnecessary white-space tokens and converting necessary ones to intersections
    +        $tokenCount = count($tokens1);
    +        for ($i = 0; $i < $tokenCount; ++$i) {
    +            $token = $tokens1[$i];
    +            if (isset($tokens1[$i - 1])) {
    +                $previousToken = $tokens1[$i - 1];
    +            } else {
    +                $previousToken = null;
    +            }
    +            if (isset($tokens1[$i + 1])) {
    +                $nextToken = $tokens1[$i + 1];
    +            } else {
    +                $nextToken = null;
    +            }
    +
    +            if ($token === null) {
    +                continue;
    +            }
    +
    +            if ($token->getTokenType() != FormulaToken::TOKEN_TYPE_WHITESPACE) {
    +                $tokens2[] = $token;
    +
    +                continue;
    +            }
    +
    +            if ($previousToken === null) {
    +                continue;
    +            }
    +
    +            if (!(
    +                (($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_FUNCTION) && ($previousToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_STOP)) ||
    +                (($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && ($previousToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_STOP)) ||
    +                ($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_OPERAND)
    +            )) {
    +                continue;
    +            }
    +
    +            if ($nextToken === null) {
    +                continue;
    +            }
    +
    +            if (!(
    +                (($nextToken->getTokenType() == FormulaToken::TOKEN_TYPE_FUNCTION) && ($nextToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_START)) ||
    +                (($nextToken->getTokenType() == FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && ($nextToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_START)) ||
    +                ($nextToken->getTokenType() == FormulaToken::TOKEN_TYPE_OPERAND)
    +            )) {
    +                continue;
    +            }
    +
    +            $tokens2[] = new FormulaToken($value, FormulaToken::TOKEN_TYPE_OPERATORINFIX, FormulaToken::TOKEN_SUBTYPE_INTERSECTION);
    +        }
    +
    +        // move tokens to final list, switching infix "-" operators to prefix when appropriate, switching infix "+" operators
    +        // to noop when appropriate, identifying operand and infix-operator subtypes, and pulling "@" from function names
    +        $this->tokens = [];
    +
    +        $tokenCount = count($tokens2);
    +        for ($i = 0; $i < $tokenCount; ++$i) {
    +            $token = $tokens2[$i];
    +            if (isset($tokens2[$i - 1])) {
    +                $previousToken = $tokens2[$i - 1];
    +            } else {
    +                $previousToken = null;
    +            }
    +            if (isset($tokens2[$i + 1])) {
    +                $nextToken = $tokens2[$i + 1];
    +            } else {
    +                $nextToken = null;
    +            }
    +
    +            if ($token === null) {
    +                continue;
    +            }
    +
    +            if ($token->getTokenType() == FormulaToken::TOKEN_TYPE_OPERATORINFIX && $token->getValue() == '-') {
    +                if ($i == 0) {
    +                    $token->setTokenType(FormulaToken::TOKEN_TYPE_OPERATORPREFIX);
    +                } elseif ((($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_FUNCTION) &&
    +                        ($previousToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_STOP)) ||
    +                    (($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_SUBEXPRESSION) &&
    +                        ($previousToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_STOP)) ||
    +                    ($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_OPERATORPOSTFIX) ||
    +                    ($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_OPERAND)) {
    +                    $token->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_MATH);
    +                } else {
    +                    $token->setTokenType(FormulaToken::TOKEN_TYPE_OPERATORPREFIX);
    +                }
    +
    +                $this->tokens[] = $token;
    +
    +                continue;
    +            }
    +
    +            if ($token->getTokenType() == FormulaToken::TOKEN_TYPE_OPERATORINFIX && $token->getValue() == '+') {
    +                if ($i == 0) {
    +                    continue;
    +                } elseif ((($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_FUNCTION) &&
    +                        ($previousToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_STOP)) ||
    +                    (($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_SUBEXPRESSION) &&
    +                        ($previousToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_STOP)) ||
    +                    ($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_OPERATORPOSTFIX) ||
    +                    ($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_OPERAND)) {
    +                    $token->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_MATH);
    +                } else {
    +                    continue;
    +                }
    +
    +                $this->tokens[] = $token;
    +
    +                continue;
    +            }
    +
    +            if ($token->getTokenType() == FormulaToken::TOKEN_TYPE_OPERATORINFIX &&
    +                $token->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_NOTHING) {
    +                if (strpos('<>=', substr($token->getValue(), 0, 1)) !== false) {
    +                    $token->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_LOGICAL);
    +                } elseif ($token->getValue() == '&') {
    +                    $token->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_CONCATENATION);
    +                } else {
    +                    $token->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_MATH);
    +                }
    +
    +                $this->tokens[] = $token;
    +
    +                continue;
    +            }
    +
    +            if ($token->getTokenType() == FormulaToken::TOKEN_TYPE_OPERAND &&
    +                $token->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_NOTHING) {
    +                if (!is_numeric($token->getValue())) {
    +                    if (strtoupper($token->getValue()) == 'TRUE' || strtoupper($token->getValue()) == 'FALSE') {
    +                        $token->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_LOGICAL);
    +                    } else {
    +                        $token->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_RANGE);
    +                    }
    +                } else {
    +                    $token->setTokenSubType(FormulaToken::TOKEN_SUBTYPE_NUMBER);
    +                }
    +
    +                $this->tokens[] = $token;
    +
    +                continue;
    +            }
    +
    +            if ($token->getTokenType() == FormulaToken::TOKEN_TYPE_FUNCTION) {
    +                if (strlen($token->getValue()) > 0) {
    +                    if (substr($token->getValue(), 0, 1) == '@') {
    +                        $token->setValue(substr($token->getValue(), 1));
    +                    }
    +                }
    +            }
    +
    +            $this->tokens[] = $token;
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/FormulaToken.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/FormulaToken.php
    new file mode 100644
    index 00000000000..66618d4a0c0
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/FormulaToken.php
    @@ -0,0 +1,150 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +/**
    + * PARTLY BASED ON:
    + * Copyright (c) 2007 E. W. Bachtal, Inc.
    + *
    + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
    + * and associated documentation files (the "Software"), to deal in the Software without restriction,
    + * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
    + * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
    + * subject to the following conditions:
    + *
    + * The above copyright notice and this permission notice shall be included in all copies or substantial
    + * portions of the Software.
    + *
    + * The software is provided "as is", without warranty of any kind, express or implied, including but not
    + * limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In
    + * no event shall the authors or copyright holders be liable for any claim, damages or other liability,
    + * whether in an action of contract, tort or otherwise, arising from, out of or in connection with the
    + * software or the use or other dealings in the software.
    + *
    + * https://ewbi.blogs.com/develops/2007/03/excel_formula_p.html
    + * https://ewbi.blogs.com/develops/2004/12/excel_formula_p.html
    + */
    +class FormulaToken
    +{
    +    // Token types
    +    const TOKEN_TYPE_NOOP = 'Noop';
    +    const TOKEN_TYPE_OPERAND = 'Operand';
    +    const TOKEN_TYPE_FUNCTION = 'Function';
    +    const TOKEN_TYPE_SUBEXPRESSION = 'Subexpression';
    +    const TOKEN_TYPE_ARGUMENT = 'Argument';
    +    const TOKEN_TYPE_OPERATORPREFIX = 'OperatorPrefix';
    +    const TOKEN_TYPE_OPERATORINFIX = 'OperatorInfix';
    +    const TOKEN_TYPE_OPERATORPOSTFIX = 'OperatorPostfix';
    +    const TOKEN_TYPE_WHITESPACE = 'Whitespace';
    +    const TOKEN_TYPE_UNKNOWN = 'Unknown';
    +
    +    // Token subtypes
    +    const TOKEN_SUBTYPE_NOTHING = 'Nothing';
    +    const TOKEN_SUBTYPE_START = 'Start';
    +    const TOKEN_SUBTYPE_STOP = 'Stop';
    +    const TOKEN_SUBTYPE_TEXT = 'Text';
    +    const TOKEN_SUBTYPE_NUMBER = 'Number';
    +    const TOKEN_SUBTYPE_LOGICAL = 'Logical';
    +    const TOKEN_SUBTYPE_ERROR = 'Error';
    +    const TOKEN_SUBTYPE_RANGE = 'Range';
    +    const TOKEN_SUBTYPE_MATH = 'Math';
    +    const TOKEN_SUBTYPE_CONCATENATION = 'Concatenation';
    +    const TOKEN_SUBTYPE_INTERSECTION = 'Intersection';
    +    const TOKEN_SUBTYPE_UNION = 'Union';
    +
    +    /**
    +     * Value.
    +     *
    +     * @var string
    +     */
    +    private $value;
    +
    +    /**
    +     * Token Type (represented by TOKEN_TYPE_*).
    +     *
    +     * @var string
    +     */
    +    private $tokenType;
    +
    +    /**
    +     * Token SubType (represented by TOKEN_SUBTYPE_*).
    +     *
    +     * @var string
    +     */
    +    private $tokenSubType;
    +
    +    /**
    +     * Create a new FormulaToken.
    +     *
    +     * @param string $pValue
    +     * @param string $pTokenType Token type (represented by TOKEN_TYPE_*)
    +     * @param string $pTokenSubType Token Subtype (represented by TOKEN_SUBTYPE_*)
    +     */
    +    public function __construct($pValue, $pTokenType = self::TOKEN_TYPE_UNKNOWN, $pTokenSubType = self::TOKEN_SUBTYPE_NOTHING)
    +    {
    +        // Initialise values
    +        $this->value = $pValue;
    +        $this->tokenType = $pTokenType;
    +        $this->tokenSubType = $pTokenSubType;
    +    }
    +
    +    /**
    +     * Get Value.
    +     *
    +     * @return string
    +     */
    +    public function getValue()
    +    {
    +        return $this->value;
    +    }
    +
    +    /**
    +     * Set Value.
    +     *
    +     * @param string $value
    +     */
    +    public function setValue($value)
    +    {
    +        $this->value = $value;
    +    }
    +
    +    /**
    +     * Get Token Type (represented by TOKEN_TYPE_*).
    +     *
    +     * @return string
    +     */
    +    public function getTokenType()
    +    {
    +        return $this->tokenType;
    +    }
    +
    +    /**
    +     * Set Token Type (represented by TOKEN_TYPE_*).
    +     *
    +     * @param string $value
    +     */
    +    public function setTokenType($value)
    +    {
    +        $this->tokenType = $value;
    +    }
    +
    +    /**
    +     * Get Token SubType (represented by TOKEN_SUBTYPE_*).
    +     *
    +     * @return string
    +     */
    +    public function getTokenSubType()
    +    {
    +        return $this->tokenSubType;
    +    }
    +
    +    /**
    +     * Set Token SubType (represented by TOKEN_SUBTYPE_*).
    +     *
    +     * @param string $value
    +     */
    +    public function setTokenSubType($value)
    +    {
    +        $this->tokenSubType = $value;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Functions.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Functions.php
    new file mode 100644
    index 00000000000..0a607c702ab
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Functions.php
    @@ -0,0 +1,673 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Cell;
    +
    +class Functions
    +{
    +    const PRECISION = 8.88E-016;
    +
    +    /**
    +     * 2 / PI.
    +     */
    +    const M_2DIVPI = 0.63661977236758134307553505349006;
    +
    +    /** constants */
    +    const COMPATIBILITY_EXCEL = 'Excel';
    +    const COMPATIBILITY_GNUMERIC = 'Gnumeric';
    +    const COMPATIBILITY_OPENOFFICE = 'OpenOfficeCalc';
    +    const RETURNDATE_PHP_NUMERIC = 'P';
    +    const RETURNDATE_PHP_OBJECT = 'O';
    +    const RETURNDATE_EXCEL = 'E';
    +
    +    /**
    +     * Compatibility mode to use for error checking and responses.
    +     *
    +     * @var string
    +     */
    +    protected static $compatibilityMode = self::COMPATIBILITY_EXCEL;
    +
    +    /**
    +     * Data Type to use when returning date values.
    +     *
    +     * @var string
    +     */
    +    protected static $returnDateType = self::RETURNDATE_EXCEL;
    +
    +    /**
    +     * List of error codes.
    +     *
    +     * @var array
    +     */
    +    protected static $errorCodes = [
    +        'null' => '#NULL!',
    +        'divisionbyzero' => '#DIV/0!',
    +        'value' => '#VALUE!',
    +        'reference' => '#REF!',
    +        'name' => '#NAME?',
    +        'num' => '#NUM!',
    +        'na' => '#N/A',
    +        'gettingdata' => '#GETTING_DATA',
    +    ];
    +
    +    /**
    +     * Set the Compatibility Mode.
    +     *
    +     * @category Function Configuration
    +     *
    +     * @param string $compatibilityMode Compatibility Mode
    +     *                                                Permitted values are:
    +     *                                                    Functions::COMPATIBILITY_EXCEL            'Excel'
    +     *                                                    Functions::COMPATIBILITY_GNUMERIC        'Gnumeric'
    +     *                                                    Functions::COMPATIBILITY_OPENOFFICE    'OpenOfficeCalc'
    +     *
    +     * @return bool (Success or Failure)
    +     */
    +    public static function setCompatibilityMode($compatibilityMode)
    +    {
    +        if (($compatibilityMode == self::COMPATIBILITY_EXCEL) ||
    +            ($compatibilityMode == self::COMPATIBILITY_GNUMERIC) ||
    +            ($compatibilityMode == self::COMPATIBILITY_OPENOFFICE)
    +        ) {
    +            self::$compatibilityMode = $compatibilityMode;
    +
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Return the current Compatibility Mode.
    +     *
    +     * @category Function Configuration
    +     *
    +     * @return string Compatibility Mode
    +     *                            Possible Return values are:
    +     *                                Functions::COMPATIBILITY_EXCEL            'Excel'
    +     *                                Functions::COMPATIBILITY_GNUMERIC        'Gnumeric'
    +     *                                Functions::COMPATIBILITY_OPENOFFICE    'OpenOfficeCalc'
    +     */
    +    public static function getCompatibilityMode()
    +    {
    +        return self::$compatibilityMode;
    +    }
    +
    +    /**
    +     * Set the Return Date Format used by functions that return a date/time (Excel, PHP Serialized Numeric or PHP Object).
    +     *
    +     * @category Function Configuration
    +     *
    +     * @param string $returnDateType Return Date Format
    +     *                                                Permitted values are:
    +     *                                                    Functions::RETURNDATE_PHP_NUMERIC        'P'
    +     *                                                    Functions::RETURNDATE_PHP_OBJECT        'O'
    +     *                                                    Functions::RETURNDATE_EXCEL            'E'
    +     *
    +     * @return bool Success or failure
    +     */
    +    public static function setReturnDateType($returnDateType)
    +    {
    +        if (($returnDateType == self::RETURNDATE_PHP_NUMERIC) ||
    +            ($returnDateType == self::RETURNDATE_PHP_OBJECT) ||
    +            ($returnDateType == self::RETURNDATE_EXCEL)
    +        ) {
    +            self::$returnDateType = $returnDateType;
    +
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Return the current Return Date Format for functions that return a date/time (Excel, PHP Serialized Numeric or PHP Object).
    +     *
    +     * @category Function Configuration
    +     *
    +     * @return string Return Date Format
    +     *                            Possible Return values are:
    +     *                                Functions::RETURNDATE_PHP_NUMERIC        'P'
    +     *                                Functions::RETURNDATE_PHP_OBJECT        'O'
    +     *                                Functions::RETURNDATE_EXCEL            'E'
    +     */
    +    public static function getReturnDateType()
    +    {
    +        return self::$returnDateType;
    +    }
    +
    +    /**
    +     * DUMMY.
    +     *
    +     * @category Error Returns
    +     *
    +     * @return string #Not Yet Implemented
    +     */
    +    public static function DUMMY()
    +    {
    +        return '#Not Yet Implemented';
    +    }
    +
    +    /**
    +     * DIV0.
    +     *
    +     * @category Error Returns
    +     *
    +     * @return string #Not Yet Implemented
    +     */
    +    public static function DIV0()
    +    {
    +        return self::$errorCodes['divisionbyzero'];
    +    }
    +
    +    /**
    +     * NA.
    +     *
    +     * Excel Function:
    +     *        =NA()
    +     *
    +     * Returns the error value #N/A
    +     *        #N/A is the error value that means "no value is available."
    +     *
    +     * @category Logical Functions
    +     *
    +     * @return string #N/A!
    +     */
    +    public static function NA()
    +    {
    +        return self::$errorCodes['na'];
    +    }
    +
    +    /**
    +     * NaN.
    +     *
    +     * Returns the error value #NUM!
    +     *
    +     * @category Error Returns
    +     *
    +     * @return string #NUM!
    +     */
    +    public static function NAN()
    +    {
    +        return self::$errorCodes['num'];
    +    }
    +
    +    /**
    +     * NAME.
    +     *
    +     * Returns the error value #NAME?
    +     *
    +     * @category Error Returns
    +     *
    +     * @return string #NAME?
    +     */
    +    public static function NAME()
    +    {
    +        return self::$errorCodes['name'];
    +    }
    +
    +    /**
    +     * REF.
    +     *
    +     * Returns the error value #REF!
    +     *
    +     * @category Error Returns
    +     *
    +     * @return string #REF!
    +     */
    +    public static function REF()
    +    {
    +        return self::$errorCodes['reference'];
    +    }
    +
    +    /**
    +     * NULL.
    +     *
    +     * Returns the error value #NULL!
    +     *
    +     * @category Error Returns
    +     *
    +     * @return string #NULL!
    +     */
    +    public static function null()
    +    {
    +        return self::$errorCodes['null'];
    +    }
    +
    +    /**
    +     * VALUE.
    +     *
    +     * Returns the error value #VALUE!
    +     *
    +     * @category Error Returns
    +     *
    +     * @return string #VALUE!
    +     */
    +    public static function VALUE()
    +    {
    +        return self::$errorCodes['value'];
    +    }
    +
    +    public static function isMatrixValue($idx)
    +    {
    +        return (substr_count($idx, '.') <= 1) || (preg_match('/\.[A-Z]/', $idx) > 0);
    +    }
    +
    +    public static function isValue($idx)
    +    {
    +        return substr_count($idx, '.') == 0;
    +    }
    +
    +    public static function isCellValue($idx)
    +    {
    +        return substr_count($idx, '.') > 1;
    +    }
    +
    +    public static function ifCondition($condition)
    +    {
    +        $condition = self::flattenSingleValue($condition);
    +        if (!isset($condition[0]) && !is_numeric($condition)) {
    +            $condition = '=""';
    +        }
    +        if (!in_array($condition[0], ['>', '<', '='])) {
    +            if (!is_numeric($condition)) {
    +                $condition = Calculation::wrapResult(strtoupper($condition));
    +            }
    +
    +            return '=' . $condition;
    +        }
    +        preg_match('/(=|<[>=]?|>=?)(.*)/', $condition, $matches);
    +        list(, $operator, $operand) = $matches;
    +
    +        if (!is_numeric($operand)) {
    +            $operand = str_replace('"', '""', $operand);
    +            $operand = Calculation::wrapResult(strtoupper($operand));
    +        }
    +
    +        return $operator . $operand;
    +    }
    +
    +    /**
    +     * ERROR_TYPE.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool
    +     */
    +    public static function errorType($value = '')
    +    {
    +        $value = self::flattenSingleValue($value);
    +
    +        $i = 1;
    +        foreach (self::$errorCodes as $errorCode) {
    +            if ($value === $errorCode) {
    +                return $i;
    +            }
    +            ++$i;
    +        }
    +
    +        return self::NA();
    +    }
    +
    +    /**
    +     * IS_BLANK.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool
    +     */
    +    public static function isBlank($value = null)
    +    {
    +        if ($value !== null) {
    +            $value = self::flattenSingleValue($value);
    +        }
    +
    +        return $value === null;
    +    }
    +
    +    /**
    +     * IS_ERR.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool
    +     */
    +    public static function isErr($value = '')
    +    {
    +        $value = self::flattenSingleValue($value);
    +
    +        return self::isError($value) && (!self::isNa(($value)));
    +    }
    +
    +    /**
    +     * IS_ERROR.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool
    +     */
    +    public static function isError($value = '')
    +    {
    +        $value = self::flattenSingleValue($value);
    +
    +        if (!is_string($value)) {
    +            return false;
    +        }
    +
    +        return in_array($value, self::$errorCodes);
    +    }
    +
    +    /**
    +     * IS_NA.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool
    +     */
    +    public static function isNa($value = '')
    +    {
    +        $value = self::flattenSingleValue($value);
    +
    +        return $value === self::NA();
    +    }
    +
    +    /**
    +     * IS_EVEN.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool|string
    +     */
    +    public static function isEven($value = null)
    +    {
    +        $value = self::flattenSingleValue($value);
    +
    +        if ($value === null) {
    +            return self::NAME();
    +        } elseif ((is_bool($value)) || ((is_string($value)) && (!is_numeric($value)))) {
    +            return self::VALUE();
    +        }
    +
    +        return $value % 2 == 0;
    +    }
    +
    +    /**
    +     * IS_ODD.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool|string
    +     */
    +    public static function isOdd($value = null)
    +    {
    +        $value = self::flattenSingleValue($value);
    +
    +        if ($value === null) {
    +            return self::NAME();
    +        } elseif ((is_bool($value)) || ((is_string($value)) && (!is_numeric($value)))) {
    +            return self::VALUE();
    +        }
    +
    +        return abs($value) % 2 == 1;
    +    }
    +
    +    /**
    +     * IS_NUMBER.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool
    +     */
    +    public static function isNumber($value = null)
    +    {
    +        $value = self::flattenSingleValue($value);
    +
    +        if (is_string($value)) {
    +            return false;
    +        }
    +
    +        return is_numeric($value);
    +    }
    +
    +    /**
    +     * IS_LOGICAL.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool
    +     */
    +    public static function isLogical($value = null)
    +    {
    +        $value = self::flattenSingleValue($value);
    +
    +        return is_bool($value);
    +    }
    +
    +    /**
    +     * IS_TEXT.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool
    +     */
    +    public static function isText($value = null)
    +    {
    +        $value = self::flattenSingleValue($value);
    +
    +        return is_string($value) && !self::isError($value);
    +    }
    +
    +    /**
    +     * IS_NONTEXT.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool
    +     */
    +    public static function isNonText($value = null)
    +    {
    +        return !self::isText($value);
    +    }
    +
    +    /**
    +     * N.
    +     *
    +     * Returns a value converted to a number
    +     *
    +     * @param null|mixed $value The value you want converted
    +     *
    +     * @return number N converts values listed in the following table
    +     *        If value is or refers to N returns
    +     *        A number            That number
    +     *        A date                The serial number of that date
    +     *        TRUE                1
    +     *        FALSE                0
    +     *        An error value        The error value
    +     *        Anything else        0
    +     */
    +    public static function n($value = null)
    +    {
    +        while (is_array($value)) {
    +            $value = array_shift($value);
    +        }
    +
    +        switch (gettype($value)) {
    +            case 'double':
    +            case 'float':
    +            case 'integer':
    +                return $value;
    +            case 'boolean':
    +                return (int) $value;
    +            case 'string':
    +                //    Errors
    +                if ((strlen($value) > 0) && ($value[0] == '#')) {
    +                    return $value;
    +                }
    +
    +                break;
    +        }
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * TYPE.
    +     *
    +     * Returns a number that identifies the type of a value
    +     *
    +     * @param null|mixed $value The value you want tested
    +     *
    +     * @return number N converts values listed in the following table
    +     *        If value is or refers to N returns
    +     *        A number            1
    +     *        Text                2
    +     *        Logical Value        4
    +     *        An error value        16
    +     *        Array or Matrix        64
    +     */
    +    public static function TYPE($value = null)
    +    {
    +        $value = self::flattenArrayIndexed($value);
    +        if (is_array($value) && (count($value) > 1)) {
    +            end($value);
    +            $a = key($value);
    +            //    Range of cells is an error
    +            if (self::isCellValue($a)) {
    +                return 16;
    +            //    Test for Matrix
    +            } elseif (self::isMatrixValue($a)) {
    +                return 64;
    +            }
    +        } elseif (empty($value)) {
    +            //    Empty Cell
    +            return 1;
    +        }
    +        $value = self::flattenSingleValue($value);
    +
    +        if (($value === null) || (is_float($value)) || (is_int($value))) {
    +            return 1;
    +        } elseif (is_bool($value)) {
    +            return 4;
    +        } elseif (is_array($value)) {
    +            return 64;
    +        } elseif (is_string($value)) {
    +            //    Errors
    +            if ((strlen($value) > 0) && ($value[0] == '#')) {
    +                return 16;
    +            }
    +
    +            return 2;
    +        }
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Convert a multi-dimensional array to a simple 1-dimensional array.
    +     *
    +     * @param array $array Array to be flattened
    +     *
    +     * @return array Flattened array
    +     */
    +    public static function flattenArray($array)
    +    {
    +        if (!is_array($array)) {
    +            return (array) $array;
    +        }
    +
    +        $arrayValues = [];
    +        foreach ($array as $value) {
    +            if (is_array($value)) {
    +                foreach ($value as $val) {
    +                    if (is_array($val)) {
    +                        foreach ($val as $v) {
    +                            $arrayValues[] = $v;
    +                        }
    +                    } else {
    +                        $arrayValues[] = $val;
    +                    }
    +                }
    +            } else {
    +                $arrayValues[] = $value;
    +            }
    +        }
    +
    +        return $arrayValues;
    +    }
    +
    +    /**
    +     * Convert a multi-dimensional array to a simple 1-dimensional array, but retain an element of indexing.
    +     *
    +     * @param array $array Array to be flattened
    +     *
    +     * @return array Flattened array
    +     */
    +    public static function flattenArrayIndexed($array)
    +    {
    +        if (!is_array($array)) {
    +            return (array) $array;
    +        }
    +
    +        $arrayValues = [];
    +        foreach ($array as $k1 => $value) {
    +            if (is_array($value)) {
    +                foreach ($value as $k2 => $val) {
    +                    if (is_array($val)) {
    +                        foreach ($val as $k3 => $v) {
    +                            $arrayValues[$k1 . '.' . $k2 . '.' . $k3] = $v;
    +                        }
    +                    } else {
    +                        $arrayValues[$k1 . '.' . $k2] = $val;
    +                    }
    +                }
    +            } else {
    +                $arrayValues[$k1] = $value;
    +            }
    +        }
    +
    +        return $arrayValues;
    +    }
    +
    +    /**
    +     * Convert an array to a single scalar value by extracting the first element.
    +     *
    +     * @param mixed $value Array or scalar value
    +     *
    +     * @return mixed
    +     */
    +    public static function flattenSingleValue($value = '')
    +    {
    +        while (is_array($value)) {
    +            $value = array_pop($value);
    +        }
    +
    +        return $value;
    +    }
    +
    +    /**
    +     * ISFORMULA.
    +     *
    +     * @param mixed $cellReference The cell to check
    +     * @param Cell $pCell The current cell (containing this formula)
    +     *
    +     * @return bool|string
    +     */
    +    public static function isFormula($cellReference = '', Cell $pCell = null)
    +    {
    +        if ($pCell === null) {
    +            return self::REF();
    +        }
    +
    +        preg_match('/^' . Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $cellReference, $matches);
    +
    +        $cellReference = $matches[6] . $matches[7];
    +        $worksheetName = trim($matches[3], "'");
    +
    +        $worksheet = (!empty($worksheetName))
    +            ? $pCell->getWorksheet()->getParent()->getSheetByName($worksheetName)
    +            : $pCell->getWorksheet();
    +
    +        return $worksheet->getCell($cellReference)->isFormula();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Logical.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Logical.php
    new file mode 100644
    index 00000000000..c36e3fca74f
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Logical.php
    @@ -0,0 +1,296 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +class Logical
    +{
    +    /**
    +     * TRUE.
    +     *
    +     * Returns the boolean TRUE.
    +     *
    +     * Excel Function:
    +     *        =TRUE()
    +     *
    +     * @category Logical Functions
    +     *
    +     * @return bool True
    +     */
    +    public static function true()
    +    {
    +        return true;
    +    }
    +
    +    /**
    +     * FALSE.
    +     *
    +     * Returns the boolean FALSE.
    +     *
    +     * Excel Function:
    +     *        =FALSE()
    +     *
    +     * @category Logical Functions
    +     *
    +     * @return bool False
    +     */
    +    public static function false()
    +    {
    +        return false;
    +    }
    +
    +    private static function countTrueValues(array $args)
    +    {
    +        $returnValue = 0;
    +
    +        foreach ($args as $arg) {
    +            // Is it a boolean value?
    +            if (is_bool($arg)) {
    +                $returnValue += $arg;
    +            } elseif ((is_numeric($arg)) && (!is_string($arg))) {
    +                $returnValue += ((int) $arg != 0);
    +            } elseif (is_string($arg)) {
    +                $arg = strtoupper($arg);
    +                if (($arg == 'TRUE') || ($arg == Calculation::getTRUE())) {
    +                    $arg = true;
    +                } elseif (($arg == 'FALSE') || ($arg == Calculation::getFALSE())) {
    +                    $arg = false;
    +                } else {
    +                    return Functions::VALUE();
    +                }
    +                $returnValue += ($arg != 0);
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * LOGICAL_AND.
    +     *
    +     * Returns boolean TRUE if all its arguments are TRUE; returns FALSE if one or more argument is FALSE.
    +     *
    +     * Excel Function:
    +     *        =AND(logical1[,logical2[, ...]])
    +     *
    +     *        The arguments must evaluate to logical values such as TRUE or FALSE, or the arguments must be arrays
    +     *            or references that contain logical values.
    +     *
    +     *        Boolean arguments are treated as True or False as appropriate
    +     *        Integer or floating point arguments are treated as True, except for 0 or 0.0 which are False
    +     *        If any argument value is a string, or a Null, the function returns a #VALUE! error, unless the string holds
    +     *            the value TRUE or FALSE, in which case it is evaluated as the corresponding boolean value
    +     *
    +     * @category Logical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return bool|string the logical AND of the arguments
    +     */
    +    public static function logicalAnd(...$args)
    +    {
    +        $args = Functions::flattenArray($args);
    +
    +        if (count($args) == 0) {
    +            return Functions::VALUE();
    +        }
    +
    +        $args = array_filter($args, function ($value) {
    +            return $value !== null || (is_string($value) && trim($value) == '');
    +        });
    +        $argCount = count($args);
    +
    +        $returnValue = self::countTrueValues($args);
    +        if (is_string($returnValue)) {
    +            return $returnValue;
    +        }
    +
    +        return ($returnValue > 0) && ($returnValue == $argCount);
    +    }
    +
    +    /**
    +     * LOGICAL_OR.
    +     *
    +     * Returns boolean TRUE if any argument is TRUE; returns FALSE if all arguments are FALSE.
    +     *
    +     * Excel Function:
    +     *        =OR(logical1[,logical2[, ...]])
    +     *
    +     *        The arguments must evaluate to logical values such as TRUE or FALSE, or the arguments must be arrays
    +     *            or references that contain logical values.
    +     *
    +     *        Boolean arguments are treated as True or False as appropriate
    +     *        Integer or floating point arguments are treated as True, except for 0 or 0.0 which are False
    +     *        If any argument value is a string, or a Null, the function returns a #VALUE! error, unless the string holds
    +     *            the value TRUE or FALSE, in which case it is evaluated as the corresponding boolean value
    +     *
    +     * @category Logical Functions
    +     *
    +     * @param mixed $args Data values
    +     *
    +     * @return bool|string the logical OR of the arguments
    +     */
    +    public static function logicalOr(...$args)
    +    {
    +        $args = Functions::flattenArray($args);
    +
    +        if (count($args) == 0) {
    +            return Functions::VALUE();
    +        }
    +
    +        $args = array_filter($args, function ($value) {
    +            return $value !== null || (is_string($value) && trim($value) == '');
    +        });
    +
    +        $returnValue = self::countTrueValues($args);
    +        if (is_string($returnValue)) {
    +            return $returnValue;
    +        }
    +
    +        return $returnValue > 0;
    +    }
    +
    +    /**
    +     * LOGICAL_XOR.
    +     *
    +     * Returns the Exclusive Or logical operation for one or more supplied conditions.
    +     * i.e. the Xor function returns TRUE if an odd number of the supplied conditions evaluate to TRUE, and FALSE otherwise.
    +     *
    +     * Excel Function:
    +     *        =XOR(logical1[,logical2[, ...]])
    +     *
    +     *        The arguments must evaluate to logical values such as TRUE or FALSE, or the arguments must be arrays
    +     *            or references that contain logical values.
    +     *
    +     *        Boolean arguments are treated as True or False as appropriate
    +     *        Integer or floating point arguments are treated as True, except for 0 or 0.0 which are False
    +     *        If any argument value is a string, or a Null, the function returns a #VALUE! error, unless the string holds
    +     *            the value TRUE or FALSE, in which case it is evaluated as the corresponding boolean value
    +     *
    +     * @category Logical Functions
    +     *
    +     * @param mixed $args Data values
    +     *
    +     * @return bool|string the logical XOR of the arguments
    +     */
    +    public static function logicalXor(...$args)
    +    {
    +        $args = Functions::flattenArray($args);
    +
    +        if (count($args) == 0) {
    +            return Functions::VALUE();
    +        }
    +
    +        $args = array_filter($args, function ($value) {
    +            return $value !== null || (is_string($value) && trim($value) == '');
    +        });
    +
    +        $returnValue = self::countTrueValues($args);
    +        if (is_string($returnValue)) {
    +            return $returnValue;
    +        }
    +
    +        return $returnValue % 2 == 1;
    +    }
    +
    +    /**
    +     * NOT.
    +     *
    +     * Returns the boolean inverse of the argument.
    +     *
    +     * Excel Function:
    +     *        =NOT(logical)
    +     *
    +     *        The argument must evaluate to a logical value such as TRUE or FALSE
    +     *
    +     *        Boolean arguments are treated as True or False as appropriate
    +     *        Integer or floating point arguments are treated as True, except for 0 or 0.0 which are False
    +     *        If any argument value is a string, or a Null, the function returns a #VALUE! error, unless the string holds
    +     *            the value TRUE or FALSE, in which case it is evaluated as the corresponding boolean value
    +     *
    +     * @category Logical Functions
    +     *
    +     * @param mixed $logical A value or expression that can be evaluated to TRUE or FALSE
    +     *
    +     * @return bool|string the boolean inverse of the argument
    +     */
    +    public static function NOT($logical = false)
    +    {
    +        $logical = Functions::flattenSingleValue($logical);
    +
    +        if (is_string($logical)) {
    +            $logical = strtoupper($logical);
    +            if (($logical == 'TRUE') || ($logical == Calculation::getTRUE())) {
    +                return false;
    +            } elseif (($logical == 'FALSE') || ($logical == Calculation::getFALSE())) {
    +                return true;
    +            }
    +
    +            return Functions::VALUE();
    +        }
    +
    +        return !$logical;
    +    }
    +
    +    /**
    +     * STATEMENT_IF.
    +     *
    +     * Returns one value if a condition you specify evaluates to TRUE and another value if it evaluates to FALSE.
    +     *
    +     * Excel Function:
    +     *        =IF(condition[,returnIfTrue[,returnIfFalse]])
    +     *
    +     *        Condition is any value or expression that can be evaluated to TRUE or FALSE.
    +     *            For example, A10=100 is a logical expression; if the value in cell A10 is equal to 100,
    +     *            the expression evaluates to TRUE. Otherwise, the expression evaluates to FALSE.
    +     *            This argument can use any comparison calculation operator.
    +     *        ReturnIfTrue is the value that is returned if condition evaluates to TRUE.
    +     *            For example, if this argument is the text string "Within budget" and the condition argument evaluates to TRUE,
    +     *            then the IF function returns the text "Within budget"
    +     *            If condition is TRUE and ReturnIfTrue is blank, this argument returns 0 (zero). To display the word TRUE, use
    +     *            the logical value TRUE for this argument.
    +     *            ReturnIfTrue can be another formula.
    +     *        ReturnIfFalse is the value that is returned if condition evaluates to FALSE.
    +     *            For example, if this argument is the text string "Over budget" and the condition argument evaluates to FALSE,
    +     *            then the IF function returns the text "Over budget".
    +     *            If condition is FALSE and ReturnIfFalse is omitted, then the logical value FALSE is returned.
    +     *            If condition is FALSE and ReturnIfFalse is blank, then the value 0 (zero) is returned.
    +     *            ReturnIfFalse can be another formula.
    +     *
    +     * @category Logical Functions
    +     *
    +     * @param mixed $condition Condition to evaluate
    +     * @param mixed $returnIfTrue Value to return when condition is true
    +     * @param mixed $returnIfFalse Optional value to return when condition is false
    +     *
    +     * @return mixed The value of returnIfTrue or returnIfFalse determined by condition
    +     */
    +    public static function statementIf($condition = true, $returnIfTrue = 0, $returnIfFalse = false)
    +    {
    +        $condition = ($condition === null) ? true : (bool) Functions::flattenSingleValue($condition);
    +        $returnIfTrue = ($returnIfTrue === null) ? 0 : Functions::flattenSingleValue($returnIfTrue);
    +        $returnIfFalse = ($returnIfFalse === null) ? false : Functions::flattenSingleValue($returnIfFalse);
    +
    +        return ($condition) ? $returnIfTrue : $returnIfFalse;
    +    }
    +
    +    /**
    +     * IFERROR.
    +     *
    +     * Excel Function:
    +     *        =IFERROR(testValue,errorpart)
    +     *
    +     * @category Logical Functions
    +     *
    +     * @param mixed $testValue Value to check, is also the value returned when no error
    +     * @param mixed $errorpart Value to return when testValue is an error condition
    +     *
    +     * @return mixed The value of errorpart or testValue determined by error condition
    +     */
    +    public static function IFERROR($testValue = '', $errorpart = '')
    +    {
    +        $testValue = ($testValue === null) ? '' : Functions::flattenSingleValue($testValue);
    +        $errorpart = ($errorpart === null) ? '' : Functions::flattenSingleValue($errorpart);
    +
    +        return self::statementIf(Functions::isError($testValue), $errorpart, $testValue);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/LookupRef.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/LookupRef.php
    new file mode 100644
    index 00000000000..2a3c5582108
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/LookupRef.php
    @@ -0,0 +1,914 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Cell;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +class LookupRef
    +{
    +    /**
    +     * CELL_ADDRESS.
    +     *
    +     * Creates a cell address as text, given specified row and column numbers.
    +     *
    +     * Excel Function:
    +     *        =ADDRESS(row, column, [relativity], [referenceStyle], [sheetText])
    +     *
    +     * @param mixed $row Row number to use in the cell reference
    +     * @param mixed $column Column number to use in the cell reference
    +     * @param int $relativity Flag indicating the type of reference to return
    +     *                                1 or omitted    Absolute
    +     *                                2                Absolute row; relative column
    +     *                                3                Relative row; absolute column
    +     *                                4                Relative
    +     * @param bool $referenceStyle A logical value that specifies the A1 or R1C1 reference style.
    +     *                                TRUE or omitted        CELL_ADDRESS returns an A1-style reference
    +     *                                FALSE                CELL_ADDRESS returns an R1C1-style reference
    +     * @param string $sheetText Optional Name of worksheet to use
    +     *
    +     * @return string
    +     */
    +    public static function cellAddress($row, $column, $relativity = 1, $referenceStyle = true, $sheetText = '')
    +    {
    +        $row = Functions::flattenSingleValue($row);
    +        $column = Functions::flattenSingleValue($column);
    +        $relativity = Functions::flattenSingleValue($relativity);
    +        $sheetText = Functions::flattenSingleValue($sheetText);
    +
    +        if (($row < 1) || ($column < 1)) {
    +            return Functions::VALUE();
    +        }
    +
    +        if ($sheetText > '') {
    +            if (strpos($sheetText, ' ') !== false) {
    +                $sheetText = "'" . $sheetText . "'";
    +            }
    +            $sheetText .= '!';
    +        }
    +        if ((!is_bool($referenceStyle)) || $referenceStyle) {
    +            $rowRelative = $columnRelative = '$';
    +            $column = Coordinate::stringFromColumnIndex($column);
    +            if (($relativity == 2) || ($relativity == 4)) {
    +                $columnRelative = '';
    +            }
    +            if (($relativity == 3) || ($relativity == 4)) {
    +                $rowRelative = '';
    +            }
    +
    +            return $sheetText . $columnRelative . $column . $rowRelative . $row;
    +        }
    +        if (($relativity == 2) || ($relativity == 4)) {
    +            $column = '[' . $column . ']';
    +        }
    +        if (($relativity == 3) || ($relativity == 4)) {
    +            $row = '[' . $row . ']';
    +        }
    +
    +        return $sheetText . 'R' . $row . 'C' . $column;
    +    }
    +
    +    /**
    +     * COLUMN.
    +     *
    +     * Returns the column number of the given cell reference
    +     * If the cell reference is a range of cells, COLUMN returns the column numbers of each column in the reference as a horizontal array.
    +     * If cell reference is omitted, and the function is being called through the calculation engine, then it is assumed to be the
    +     *        reference of the cell in which the COLUMN function appears; otherwise this function returns 0.
    +     *
    +     * Excel Function:
    +     *        =COLUMN([cellAddress])
    +     *
    +     * @param null|array|string $cellAddress A reference to a range of cells for which you want the column numbers
    +     *
    +     * @return int|int[]
    +     */
    +    public static function COLUMN($cellAddress = null)
    +    {
    +        if ($cellAddress === null || trim($cellAddress) === '') {
    +            return 0;
    +        }
    +
    +        if (is_array($cellAddress)) {
    +            foreach ($cellAddress as $columnKey => $value) {
    +                $columnKey = preg_replace('/[^a-z]/i', '', $columnKey);
    +
    +                return (int) Coordinate::columnIndexFromString($columnKey);
    +            }
    +        } else {
    +            list($sheet, $cellAddress) = Worksheet::extractSheetTitle($cellAddress, true);
    +            if (strpos($cellAddress, ':') !== false) {
    +                list($startAddress, $endAddress) = explode(':', $cellAddress);
    +                $startAddress = preg_replace('/[^a-z]/i', '', $startAddress);
    +                $endAddress = preg_replace('/[^a-z]/i', '', $endAddress);
    +                $returnValue = [];
    +                do {
    +                    $returnValue[] = (int) Coordinate::columnIndexFromString($startAddress);
    +                } while ($startAddress++ != $endAddress);
    +
    +                return $returnValue;
    +            }
    +            $cellAddress = preg_replace('/[^a-z]/i', '', $cellAddress);
    +
    +            return (int) Coordinate::columnIndexFromString($cellAddress);
    +        }
    +    }
    +
    +    /**
    +     * COLUMNS.
    +     *
    +     * Returns the number of columns in an array or reference.
    +     *
    +     * Excel Function:
    +     *        =COLUMNS(cellAddress)
    +     *
    +     * @param null|array|string $cellAddress An array or array formula, or a reference to a range of cells for which you want the number of columns
    +     *
    +     * @return int The number of columns in cellAddress
    +     */
    +    public static function COLUMNS($cellAddress = null)
    +    {
    +        if ($cellAddress === null || $cellAddress === '') {
    +            return 1;
    +        } elseif (!is_array($cellAddress)) {
    +            return Functions::VALUE();
    +        }
    +
    +        reset($cellAddress);
    +        $isMatrix = (is_numeric(key($cellAddress)));
    +        list($columns, $rows) = Calculation::getMatrixDimensions($cellAddress);
    +
    +        if ($isMatrix) {
    +            return $rows;
    +        }
    +
    +        return $columns;
    +    }
    +
    +    /**
    +     * ROW.
    +     *
    +     * Returns the row number of the given cell reference
    +     * If the cell reference is a range of cells, ROW returns the row numbers of each row in the reference as a vertical array.
    +     * If cell reference is omitted, and the function is being called through the calculation engine, then it is assumed to be the
    +     *        reference of the cell in which the ROW function appears; otherwise this function returns 0.
    +     *
    +     * Excel Function:
    +     *        =ROW([cellAddress])
    +     *
    +     * @param null|array|string $cellAddress A reference to a range of cells for which you want the row numbers
    +     *
    +     * @return int or array of integer
    +     */
    +    public static function ROW($cellAddress = null)
    +    {
    +        if ($cellAddress === null || trim($cellAddress) === '') {
    +            return 0;
    +        }
    +
    +        if (is_array($cellAddress)) {
    +            foreach ($cellAddress as $columnKey => $rowValue) {
    +                foreach ($rowValue as $rowKey => $cellValue) {
    +                    return (int) preg_replace('/\D/', '', $rowKey);
    +                }
    +            }
    +        } else {
    +            list($sheet, $cellAddress) = Worksheet::extractSheetTitle($cellAddress, true);
    +            if (strpos($cellAddress, ':') !== false) {
    +                list($startAddress, $endAddress) = explode(':', $cellAddress);
    +                $startAddress = preg_replace('/\D/', '', $startAddress);
    +                $endAddress = preg_replace('/\D/', '', $endAddress);
    +                $returnValue = [];
    +                do {
    +                    $returnValue[][] = (int) $startAddress;
    +                } while ($startAddress++ != $endAddress);
    +
    +                return $returnValue;
    +            }
    +            list($cellAddress) = explode(':', $cellAddress);
    +
    +            return (int) preg_replace('/\D/', '', $cellAddress);
    +        }
    +    }
    +
    +    /**
    +     * ROWS.
    +     *
    +     * Returns the number of rows in an array or reference.
    +     *
    +     * Excel Function:
    +     *        =ROWS(cellAddress)
    +     *
    +     * @param null|array|string $cellAddress An array or array formula, or a reference to a range of cells for which you want the number of rows
    +     *
    +     * @return int The number of rows in cellAddress
    +     */
    +    public static function ROWS($cellAddress = null)
    +    {
    +        if ($cellAddress === null || $cellAddress === '') {
    +            return 1;
    +        } elseif (!is_array($cellAddress)) {
    +            return Functions::VALUE();
    +        }
    +
    +        reset($cellAddress);
    +        $isMatrix = (is_numeric(key($cellAddress)));
    +        list($columns, $rows) = Calculation::getMatrixDimensions($cellAddress);
    +
    +        if ($isMatrix) {
    +            return $columns;
    +        }
    +
    +        return $rows;
    +    }
    +
    +    /**
    +     * HYPERLINK.
    +     *
    +     * Excel Function:
    +     *        =HYPERLINK(linkURL,displayName)
    +     *
    +     * @category Logical Functions
    +     *
    +     * @param string $linkURL Value to check, is also the value returned when no error
    +     * @param string $displayName Value to return when testValue is an error condition
    +     * @param Cell $pCell The cell to set the hyperlink in
    +     *
    +     * @return mixed The value of $displayName (or $linkURL if $displayName was blank)
    +     */
    +    public static function HYPERLINK($linkURL = '', $displayName = null, Cell $pCell = null)
    +    {
    +        $linkURL = ($linkURL === null) ? '' : Functions::flattenSingleValue($linkURL);
    +        $displayName = ($displayName === null) ? '' : Functions::flattenSingleValue($displayName);
    +
    +        if ((!is_object($pCell)) || (trim($linkURL) == '')) {
    +            return Functions::REF();
    +        }
    +
    +        if ((is_object($displayName)) || trim($displayName) == '') {
    +            $displayName = $linkURL;
    +        }
    +
    +        $pCell->getHyperlink()->setUrl($linkURL);
    +        $pCell->getHyperlink()->setTooltip($displayName);
    +
    +        return $displayName;
    +    }
    +
    +    /**
    +     * INDIRECT.
    +     *
    +     * Returns the reference specified by a text string.
    +     * References are immediately evaluated to display their contents.
    +     *
    +     * Excel Function:
    +     *        =INDIRECT(cellAddress)
    +     *
    +     * NOTE - INDIRECT() does not yet support the optional a1 parameter introduced in Excel 2010
    +     *
    +     * @param null|array|string $cellAddress $cellAddress The cell address of the current cell (containing this formula)
    +     * @param Cell $pCell The current cell (containing this formula)
    +     *
    +     * @return mixed The cells referenced by cellAddress
    +     *
    +     * @todo    Support for the optional a1 parameter introduced in Excel 2010
    +     */
    +    public static function INDIRECT($cellAddress = null, Cell $pCell = null)
    +    {
    +        $cellAddress = Functions::flattenSingleValue($cellAddress);
    +        if ($cellAddress === null || $cellAddress === '') {
    +            return Functions::REF();
    +        }
    +
    +        $cellAddress1 = $cellAddress;
    +        $cellAddress2 = null;
    +        if (strpos($cellAddress, ':') !== false) {
    +            list($cellAddress1, $cellAddress2) = explode(':', $cellAddress);
    +        }
    +
    +        if ((!preg_match('/^' . Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $cellAddress1, $matches)) ||
    +            (($cellAddress2 !== null) && (!preg_match('/^' . Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $cellAddress2, $matches)))) {
    +            if (!preg_match('/^' . Calculation::CALCULATION_REGEXP_NAMEDRANGE . '$/i', $cellAddress1, $matches)) {
    +                return Functions::REF();
    +            }
    +
    +            if (strpos($cellAddress, '!') !== false) {
    +                list($sheetName, $cellAddress) = Worksheet::extractSheetTitle($cellAddress, true);
    +                $sheetName = trim($sheetName, "'");
    +                $pSheet = $pCell->getWorksheet()->getParent()->getSheetByName($sheetName);
    +            } else {
    +                $pSheet = $pCell->getWorksheet();
    +            }
    +
    +            return Calculation::getInstance()->extractNamedRange($cellAddress, $pSheet, false);
    +        }
    +
    +        if (strpos($cellAddress, '!') !== false) {
    +            list($sheetName, $cellAddress) = Worksheet::extractSheetTitle($cellAddress, true);
    +            $sheetName = trim($sheetName, "'");
    +            $pSheet = $pCell->getWorksheet()->getParent()->getSheetByName($sheetName);
    +        } else {
    +            $pSheet = $pCell->getWorksheet();
    +        }
    +
    +        return Calculation::getInstance()->extractCellRange($cellAddress, $pSheet, false);
    +    }
    +
    +    /**
    +     * OFFSET.
    +     *
    +     * Returns a reference to a range that is a specified number of rows and columns from a cell or range of cells.
    +     * The reference that is returned can be a single cell or a range of cells. You can specify the number of rows and
    +     * the number of columns to be returned.
    +     *
    +     * Excel Function:
    +     *        =OFFSET(cellAddress, rows, cols, [height], [width])
    +     *
    +     * @param null|string $cellAddress The reference from which you want to base the offset. Reference must refer to a cell or
    +     *                                range of adjacent cells; otherwise, OFFSET returns the #VALUE! error value.
    +     * @param mixed $rows The number of rows, up or down, that you want the upper-left cell to refer to.
    +     *                                Using 5 as the rows argument specifies that the upper-left cell in the reference is
    +     *                                five rows below reference. Rows can be positive (which means below the starting reference)
    +     *                                or negative (which means above the starting reference).
    +     * @param mixed $columns The number of columns, to the left or right, that you want the upper-left cell of the result
    +     *                                to refer to. Using 5 as the cols argument specifies that the upper-left cell in the
    +     *                                reference is five columns to the right of reference. Cols can be positive (which means
    +     *                                to the right of the starting reference) or negative (which means to the left of the
    +     *                                starting reference).
    +     * @param mixed $height The height, in number of rows, that you want the returned reference to be. Height must be a positive number.
    +     * @param mixed $width The width, in number of columns, that you want the returned reference to be. Width must be a positive number.
    +     * @param null|Cell $pCell
    +     *
    +     * @return string A reference to a cell or range of cells
    +     */
    +    public static function OFFSET($cellAddress = null, $rows = 0, $columns = 0, $height = null, $width = null, Cell $pCell = null)
    +    {
    +        $rows = Functions::flattenSingleValue($rows);
    +        $columns = Functions::flattenSingleValue($columns);
    +        $height = Functions::flattenSingleValue($height);
    +        $width = Functions::flattenSingleValue($width);
    +        if ($cellAddress === null) {
    +            return 0;
    +        }
    +
    +        if (!is_object($pCell)) {
    +            return Functions::REF();
    +        }
    +
    +        $sheetName = null;
    +        if (strpos($cellAddress, '!')) {
    +            list($sheetName, $cellAddress) = Worksheet::extractSheetTitle($cellAddress, true);
    +            $sheetName = trim($sheetName, "'");
    +        }
    +        if (strpos($cellAddress, ':')) {
    +            list($startCell, $endCell) = explode(':', $cellAddress);
    +        } else {
    +            $startCell = $endCell = $cellAddress;
    +        }
    +        list($startCellColumn, $startCellRow) = Coordinate::coordinateFromString($startCell);
    +        list($endCellColumn, $endCellRow) = Coordinate::coordinateFromString($endCell);
    +
    +        $startCellRow += $rows;
    +        $startCellColumn = Coordinate::columnIndexFromString($startCellColumn) - 1;
    +        $startCellColumn += $columns;
    +
    +        if (($startCellRow <= 0) || ($startCellColumn < 0)) {
    +            return Functions::REF();
    +        }
    +        $endCellColumn = Coordinate::columnIndexFromString($endCellColumn) - 1;
    +        if (($width != null) && (!is_object($width))) {
    +            $endCellColumn = $startCellColumn + $width - 1;
    +        } else {
    +            $endCellColumn += $columns;
    +        }
    +        $startCellColumn = Coordinate::stringFromColumnIndex($startCellColumn + 1);
    +
    +        if (($height != null) && (!is_object($height))) {
    +            $endCellRow = $startCellRow + $height - 1;
    +        } else {
    +            $endCellRow += $rows;
    +        }
    +
    +        if (($endCellRow <= 0) || ($endCellColumn < 0)) {
    +            return Functions::REF();
    +        }
    +        $endCellColumn = Coordinate::stringFromColumnIndex($endCellColumn + 1);
    +
    +        $cellAddress = $startCellColumn . $startCellRow;
    +        if (($startCellColumn != $endCellColumn) || ($startCellRow != $endCellRow)) {
    +            $cellAddress .= ':' . $endCellColumn . $endCellRow;
    +        }
    +
    +        if ($sheetName !== null) {
    +            $pSheet = $pCell->getWorksheet()->getParent()->getSheetByName($sheetName);
    +        } else {
    +            $pSheet = $pCell->getWorksheet();
    +        }
    +
    +        return Calculation::getInstance()->extractCellRange($cellAddress, $pSheet, false);
    +    }
    +
    +    /**
    +     * CHOOSE.
    +     *
    +     * Uses lookup_value to return a value from the list of value arguments.
    +     * Use CHOOSE to select one of up to 254 values based on the lookup_value.
    +     *
    +     * Excel Function:
    +     *        =CHOOSE(index_num, value1, [value2], ...)
    +     *
    +     * @param mixed $index_num Specifies which value argument is selected.
    +     *                            Index_num must be a number between 1 and 254, or a formula or reference to a cell containing a number
    +     *                                between 1 and 254.
    +     * @param mixed $value1 ... Value1 is required, subsequent values are optional.
    +     *                            Between 1 to 254 value arguments from which CHOOSE selects a value or an action to perform based on
    +     *                                index_num. The arguments can be numbers, cell references, defined names, formulas, functions, or
    +     *                                text.
    +     *
    +     * @return mixed The selected value
    +     */
    +    public static function CHOOSE(...$chooseArgs)
    +    {
    +        $chosenEntry = Functions::flattenArray(array_shift($chooseArgs));
    +        $entryCount = count($chooseArgs) - 1;
    +
    +        if (is_array($chosenEntry)) {
    +            $chosenEntry = array_shift($chosenEntry);
    +        }
    +        if ((is_numeric($chosenEntry)) && (!is_bool($chosenEntry))) {
    +            --$chosenEntry;
    +        } else {
    +            return Functions::VALUE();
    +        }
    +        $chosenEntry = floor($chosenEntry);
    +        if (($chosenEntry < 0) || ($chosenEntry > $entryCount)) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (is_array($chooseArgs[$chosenEntry])) {
    +            return Functions::flattenArray($chooseArgs[$chosenEntry]);
    +        }
    +
    +        return $chooseArgs[$chosenEntry];
    +    }
    +
    +    /**
    +     * MATCH.
    +     *
    +     * The MATCH function searches for a specified item in a range of cells
    +     *
    +     * Excel Function:
    +     *        =MATCH(lookup_value, lookup_array, [match_type])
    +     *
    +     * @param mixed $lookupValue The value that you want to match in lookup_array
    +     * @param mixed $lookupArray The range of cells being searched
    +     * @param mixed $matchType The number -1, 0, or 1. -1 means above, 0 means exact match, 1 means below. If match_type is 1 or -1, the list has to be ordered.
    +     *
    +     * @return int The relative position of the found item
    +     */
    +    public static function MATCH($lookupValue, $lookupArray, $matchType = 1)
    +    {
    +        $lookupArray = Functions::flattenArray($lookupArray);
    +        $lookupValue = Functions::flattenSingleValue($lookupValue);
    +        $matchType = ($matchType === null) ? 1 : (int) Functions::flattenSingleValue($matchType);
    +
    +        // MATCH is not case sensitive
    +        $lookupValue = strtolower($lookupValue);
    +
    +        // Lookup_value type has to be number, text, or logical values
    +        if ((!is_numeric($lookupValue)) && (!is_string($lookupValue)) && (!is_bool($lookupValue))) {
    +            return Functions::NA();
    +        }
    +
    +        // Match_type is 0, 1 or -1
    +        if (($matchType !== 0) && ($matchType !== -1) && ($matchType !== 1)) {
    +            return Functions::NA();
    +        }
    +
    +        // Lookup_array should not be empty
    +        $lookupArraySize = count($lookupArray);
    +        if ($lookupArraySize <= 0) {
    +            return Functions::NA();
    +        }
    +
    +        // Lookup_array should contain only number, text, or logical values, or empty (null) cells
    +        foreach ($lookupArray as $i => $lookupArrayValue) {
    +            //    check the type of the value
    +            if ((!is_numeric($lookupArrayValue)) && (!is_string($lookupArrayValue)) &&
    +                (!is_bool($lookupArrayValue)) && ($lookupArrayValue !== null)
    +            ) {
    +                return Functions::NA();
    +            }
    +            // Convert strings to lowercase for case-insensitive testing
    +            if (is_string($lookupArrayValue)) {
    +                $lookupArray[$i] = strtolower($lookupArrayValue);
    +            }
    +            if (($lookupArrayValue === null) && (($matchType == 1) || ($matchType == -1))) {
    +                $lookupArray = array_slice($lookupArray, 0, $i - 1);
    +            }
    +        }
    +
    +        if ($matchType == 1) {
    +            // If match_type is 1 the list has to be processed from last to first
    +
    +            $lookupArray = array_reverse($lookupArray);
    +            $keySet = array_reverse(array_keys($lookupArray));
    +        }
    +
    +        // **
    +        // find the match
    +        // **
    +
    +        if ($matchType == 0 || $matchType == 1) {
    +            foreach ($lookupArray as $i => $lookupArrayValue) {
    +                if (($matchType == 0) && ($lookupArrayValue == $lookupValue)) {
    +                    //    exact match
    +                    return ++$i;
    +                } elseif (($matchType == 1) && ($lookupArrayValue <= $lookupValue)) {
    +                    $i = array_search($i, $keySet);
    +
    +                    // The current value is the (first) match
    +                    return $i + 1;
    +                }
    +            }
    +        } else {
    +            // matchType = -1
    +
    +            // "Special" case: since the array it's supposed to be ordered in descending order, the
    +            // Excel algorithm gives up immediately if the first element is smaller than the searched value
    +            if ($lookupArray[0] < $lookupValue) {
    +                return Functions::NA();
    +            }
    +
    +            $maxValueKey = null;
    +
    +            // The basic algorithm is:
    +            // Iterate and keep the highest match until the next element is smaller than the searched value.
    +            // Return immediately if perfect match is found
    +            foreach ($lookupArray as $i => $lookupArrayValue) {
    +                if ($lookupArrayValue == $lookupValue) {
    +                    // Another "special" case. If a perfect match is found,
    +                    // the algorithm gives up immediately
    +                    return $i + 1;
    +                } elseif ($lookupArrayValue >= $lookupValue) {
    +                    $maxValueKey = $i + 1;
    +                }
    +            }
    +
    +            if ($maxValueKey !== null) {
    +                return $maxValueKey;
    +            }
    +        }
    +
    +        // Unsuccessful in finding a match, return #N/A error value
    +        return Functions::NA();
    +    }
    +
    +    /**
    +     * INDEX.
    +     *
    +     * Uses an index to choose a value from a reference or array
    +     *
    +     * Excel Function:
    +     *        =INDEX(range_array, row_num, [column_num])
    +     *
    +     * @param mixed $arrayValues A range of cells or an array constant
    +     * @param mixed $rowNum The row in array from which to return a value. If row_num is omitted, column_num is required.
    +     * @param mixed $columnNum The column in array from which to return a value. If column_num is omitted, row_num is required.
    +     *
    +     * @return mixed the value of a specified cell or array of cells
    +     */
    +    public static function INDEX($arrayValues, $rowNum = 0, $columnNum = 0)
    +    {
    +        $rowNum = Functions::flattenSingleValue($rowNum);
    +        $columnNum = Functions::flattenSingleValue($columnNum);
    +
    +        if (($rowNum < 0) || ($columnNum < 0)) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (!is_array($arrayValues) || ($rowNum > count($arrayValues))) {
    +            return Functions::REF();
    +        }
    +
    +        $rowKeys = array_keys($arrayValues);
    +        $columnKeys = @array_keys($arrayValues[$rowKeys[0]]);
    +
    +        if ($columnNum > count($columnKeys)) {
    +            return Functions::VALUE();
    +        } elseif ($columnNum == 0) {
    +            if ($rowNum == 0) {
    +                return $arrayValues;
    +            }
    +            $rowNum = $rowKeys[--$rowNum];
    +            $returnArray = [];
    +            foreach ($arrayValues as $arrayColumn) {
    +                if (is_array($arrayColumn)) {
    +                    if (isset($arrayColumn[$rowNum])) {
    +                        $returnArray[] = $arrayColumn[$rowNum];
    +                    } else {
    +                        return [$rowNum => $arrayValues[$rowNum]];
    +                    }
    +                } else {
    +                    return $arrayValues[$rowNum];
    +                }
    +            }
    +
    +            return $returnArray;
    +        }
    +        $columnNum = $columnKeys[--$columnNum];
    +        if ($rowNum > count($rowKeys)) {
    +            return Functions::VALUE();
    +        } elseif ($rowNum == 0) {
    +            return $arrayValues[$columnNum];
    +        }
    +        $rowNum = $rowKeys[--$rowNum];
    +
    +        return $arrayValues[$rowNum][$columnNum];
    +    }
    +
    +    /**
    +     * TRANSPOSE.
    +     *
    +     * @param array $matrixData A matrix of values
    +     *
    +     * @return array
    +     *
    +     * Unlike the Excel TRANSPOSE function, which will only work on a single row or column, this function will transpose a full matrix
    +     */
    +    public static function TRANSPOSE($matrixData)
    +    {
    +        $returnMatrix = [];
    +        if (!is_array($matrixData)) {
    +            $matrixData = [[$matrixData]];
    +        }
    +
    +        $column = 0;
    +        foreach ($matrixData as $matrixRow) {
    +            $row = 0;
    +            foreach ($matrixRow as $matrixCell) {
    +                $returnMatrix[$row][$column] = $matrixCell;
    +                ++$row;
    +            }
    +            ++$column;
    +        }
    +
    +        return $returnMatrix;
    +    }
    +
    +    private static function vlookupSort($a, $b)
    +    {
    +        reset($a);
    +        $firstColumn = key($a);
    +        if (($aLower = strtolower($a[$firstColumn])) == ($bLower = strtolower($b[$firstColumn]))) {
    +            return 0;
    +        }
    +
    +        return ($aLower < $bLower) ? -1 : 1;
    +    }
    +
    +    /**
    +     * VLOOKUP
    +     * The VLOOKUP function searches for value in the left-most column of lookup_array and returns the value in the same row based on the index_number.
    +     *
    +     * @param mixed $lookup_value The value that you want to match in lookup_array
    +     * @param mixed $lookup_array The range of cells being searched
    +     * @param mixed $index_number The column number in table_array from which the matching value must be returned. The first column is 1.
    +     * @param mixed $not_exact_match determines if you are looking for an exact match based on lookup_value
    +     *
    +     * @return mixed The value of the found cell
    +     */
    +    public static function VLOOKUP($lookup_value, $lookup_array, $index_number, $not_exact_match = true)
    +    {
    +        $lookup_value = Functions::flattenSingleValue($lookup_value);
    +        $index_number = Functions::flattenSingleValue($index_number);
    +        $not_exact_match = Functions::flattenSingleValue($not_exact_match);
    +
    +        // index_number must be greater than or equal to 1
    +        if ($index_number < 1) {
    +            return Functions::VALUE();
    +        }
    +
    +        // index_number must be less than or equal to the number of columns in lookup_array
    +        if ((!is_array($lookup_array)) || (empty($lookup_array))) {
    +            return Functions::REF();
    +        }
    +        $f = array_keys($lookup_array);
    +        $firstRow = array_pop($f);
    +        if ((!is_array($lookup_array[$firstRow])) || ($index_number > count($lookup_array[$firstRow]))) {
    +            return Functions::REF();
    +        }
    +        $columnKeys = array_keys($lookup_array[$firstRow]);
    +        $returnColumn = $columnKeys[--$index_number];
    +        $firstColumn = array_shift($columnKeys);
    +
    +        if (!$not_exact_match) {
    +            uasort($lookup_array, ['self', 'vlookupSort']);
    +        }
    +
    +        $rowNumber = $rowValue = false;
    +        foreach ($lookup_array as $rowKey => $rowData) {
    +            // break if we have passed possible keys
    +            if ((is_numeric($lookup_value) && is_numeric($rowData[$firstColumn]) && ($rowData[$firstColumn] > $lookup_value)) ||
    +                (!is_numeric($lookup_value) && !is_numeric($rowData[$firstColumn]) && (strtolower($rowData[$firstColumn]) > strtolower($lookup_value)))) {
    +                break;
    +            }
    +            // remember the last key, but only if datatypes match
    +            if ((is_numeric($lookup_value) && is_numeric($rowData[$firstColumn])) ||
    +                (!is_numeric($lookup_value) && !is_numeric($rowData[$firstColumn]))) {
    +                if ($not_exact_match) {
    +                    $rowNumber = $rowKey;
    +                    $rowValue = $rowData[$firstColumn];
    +
    +                    continue;
    +                } elseif ((strtolower($rowData[$firstColumn]) == strtolower($lookup_value))
    +                    // Spreadsheets software returns first exact match,
    +                    // we have sorted and we might have broken key orders
    +                    // we want the first one (by its initial index)
    +                    && (($rowNumber == false) || ($rowKey < $rowNumber))
    +                ) {
    +                    $rowNumber = $rowKey;
    +                    $rowValue = $rowData[$firstColumn];
    +                }
    +            }
    +        }
    +
    +        if ($rowNumber !== false) {
    +            // return the appropriate value
    +            return $lookup_array[$rowNumber][$returnColumn];
    +        }
    +
    +        return Functions::NA();
    +    }
    +
    +    /**
    +     * HLOOKUP
    +     * The HLOOKUP function searches for value in the top-most row of lookup_array and returns the value in the same column based on the index_number.
    +     *
    +     * @param mixed $lookup_value The value that you want to match in lookup_array
    +     * @param mixed $lookup_array The range of cells being searched
    +     * @param mixed $index_number The row number in table_array from which the matching value must be returned. The first row is 1.
    +     * @param mixed $not_exact_match determines if you are looking for an exact match based on lookup_value
    +     *
    +     * @return mixed The value of the found cell
    +     */
    +    public static function HLOOKUP($lookup_value, $lookup_array, $index_number, $not_exact_match = true)
    +    {
    +        $lookup_value = Functions::flattenSingleValue($lookup_value);
    +        $index_number = Functions::flattenSingleValue($index_number);
    +        $not_exact_match = Functions::flattenSingleValue($not_exact_match);
    +
    +        // index_number must be greater than or equal to 1
    +        if ($index_number < 1) {
    +            return Functions::VALUE();
    +        }
    +
    +        // index_number must be less than or equal to the number of columns in lookup_array
    +        if ((!is_array($lookup_array)) || (empty($lookup_array))) {
    +            return Functions::REF();
    +        }
    +        $f = array_keys($lookup_array);
    +        $firstRow = array_pop($f);
    +        if ((!is_array($lookup_array[$firstRow])) || ($index_number > count($lookup_array))) {
    +            return Functions::REF();
    +        }
    +
    +        $firstkey = $f[0] - 1;
    +        $returnColumn = $firstkey + $index_number;
    +        $firstColumn = array_shift($f);
    +        $rowNumber = null;
    +        foreach ($lookup_array[$firstColumn] as $rowKey => $rowData) {
    +            // break if we have passed possible keys
    +            $bothNumeric = is_numeric($lookup_value) && is_numeric($rowData);
    +            $bothNotNumeric = !is_numeric($lookup_value) && !is_numeric($rowData);
    +            if (($bothNumeric && $rowData > $lookup_value) ||
    +                ($bothNotNumeric && strtolower($rowData) > strtolower($lookup_value))) {
    +                break;
    +            }
    +
    +            // Remember the last key, but only if datatypes match (as in VLOOKUP)
    +            if ($bothNumeric || $bothNotNumeric) {
    +                if ($not_exact_match) {
    +                    $rowNumber = $rowKey;
    +
    +                    continue;
    +                } elseif (strtolower($rowData) === strtolower($lookup_value)
    +                    && ($rowNumber === null || $rowKey < $rowNumber)
    +                ) {
    +                    $rowNumber = $rowKey;
    +                }
    +            }
    +        }
    +
    +        if ($rowNumber !== null) {
    +            //  otherwise return the appropriate value
    +            return $lookup_array[$returnColumn][$rowNumber];
    +        }
    +
    +        return Functions::NA();
    +    }
    +
    +    /**
    +     * LOOKUP
    +     * The LOOKUP function searches for value either from a one-row or one-column range or from an array.
    +     *
    +     * @param mixed $lookup_value The value that you want to match in lookup_array
    +     * @param mixed $lookup_vector The range of cells being searched
    +     * @param null|mixed $result_vector The column from which the matching value must be returned
    +     *
    +     * @return mixed The value of the found cell
    +     */
    +    public static function LOOKUP($lookup_value, $lookup_vector, $result_vector = null)
    +    {
    +        $lookup_value = Functions::flattenSingleValue($lookup_value);
    +
    +        if (!is_array($lookup_vector)) {
    +            return Functions::NA();
    +        }
    +        $hasResultVector = isset($result_vector);
    +        $lookupRows = count($lookup_vector);
    +        $l = array_keys($lookup_vector);
    +        $l = array_shift($l);
    +        $lookupColumns = count($lookup_vector[$l]);
    +        // we correctly orient our results
    +        if (($lookupRows === 1 && $lookupColumns > 1) || (!$hasResultVector && $lookupRows === 2 && $lookupColumns !== 2)) {
    +            $lookup_vector = self::TRANSPOSE($lookup_vector);
    +            $lookupRows = count($lookup_vector);
    +            $l = array_keys($lookup_vector);
    +            $lookupColumns = count($lookup_vector[array_shift($l)]);
    +        }
    +
    +        if ($result_vector === null) {
    +            $result_vector = $lookup_vector;
    +        }
    +        $resultRows = count($result_vector);
    +        $l = array_keys($result_vector);
    +        $l = array_shift($l);
    +        $resultColumns = count($result_vector[$l]);
    +        // we correctly orient our results
    +        if ($resultRows === 1 && $resultColumns > 1) {
    +            $result_vector = self::TRANSPOSE($result_vector);
    +            $resultRows = count($result_vector);
    +            $r = array_keys($result_vector);
    +            $resultColumns = count($result_vector[array_shift($r)]);
    +        }
    +
    +        if ($lookupRows === 2 && !$hasResultVector) {
    +            $result_vector = array_pop($lookup_vector);
    +            $lookup_vector = array_shift($lookup_vector);
    +        }
    +
    +        if ($lookupColumns !== 2) {
    +            foreach ($lookup_vector as &$value) {
    +                if (is_array($value)) {
    +                    $k = array_keys($value);
    +                    $key1 = $key2 = array_shift($k);
    +                    ++$key2;
    +                    $dataValue1 = $value[$key1];
    +                } else {
    +                    $key1 = 0;
    +                    $key2 = 1;
    +                    $dataValue1 = $value;
    +                }
    +                $dataValue2 = array_shift($result_vector);
    +                if (is_array($dataValue2)) {
    +                    $dataValue2 = array_shift($dataValue2);
    +                }
    +                $value = [$key1 => $dataValue1, $key2 => $dataValue2];
    +            }
    +            unset($value);
    +        }
    +
    +        return self::VLOOKUP($lookup_value, $lookup_vector, 2);
    +    }
    +
    +    /**
    +     * FORMULATEXT.
    +     *
    +     * @param mixed $cellReference The cell to check
    +     * @param Cell $pCell The current cell (containing this formula)
    +     *
    +     * @return string
    +     */
    +    public static function FORMULATEXT($cellReference = '', Cell $pCell = null)
    +    {
    +        if ($pCell === null) {
    +            return Functions::REF();
    +        }
    +
    +        preg_match('/^' . Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $cellReference, $matches);
    +
    +        $cellReference = $matches[6] . $matches[7];
    +        $worksheetName = trim($matches[3], "'");
    +        $worksheet = (!empty($worksheetName))
    +            ? $pCell->getWorksheet()->getParent()->getSheetByName($worksheetName)
    +            : $pCell->getWorksheet();
    +
    +        if (!$worksheet->getCell($cellReference)->isFormula()) {
    +            return Functions::NA();
    +        }
    +
    +        return $worksheet->getCell($cellReference)->getValue();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/MathTrig.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/MathTrig.php
    new file mode 100644
    index 00000000000..9170196bae5
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/MathTrig.php
    @@ -0,0 +1,1649 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +use Matrix\Exception as MatrixException;
    +use Matrix\Matrix;
    +
    +class MathTrig
    +{
    +    //
    +    //    Private method to return an array of the factors of the input value
    +    //
    +    private static function factors($value)
    +    {
    +        $startVal = floor(sqrt($value));
    +
    +        $factorArray = [];
    +        for ($i = $startVal; $i > 1; --$i) {
    +            if (($value % $i) == 0) {
    +                $factorArray = array_merge($factorArray, self::factors($value / $i));
    +                $factorArray = array_merge($factorArray, self::factors($i));
    +                if ($i <= sqrt($value)) {
    +                    break;
    +                }
    +            }
    +        }
    +        if (!empty($factorArray)) {
    +            rsort($factorArray);
    +
    +            return $factorArray;
    +        }
    +
    +        return [(int) $value];
    +    }
    +
    +    private static function romanCut($num, $n)
    +    {
    +        return ($num - ($num % $n)) / $n;
    +    }
    +
    +    /**
    +     * ATAN2.
    +     *
    +     * This function calculates the arc tangent of the two variables x and y. It is similar to
    +     *        calculating the arc tangent of y ÷ x, except that the signs of both arguments are used
    +     *        to determine the quadrant of the result.
    +     * The arctangent is the angle from the x-axis to a line containing the origin (0, 0) and a
    +     *        point with coordinates (xCoordinate, yCoordinate). The angle is given in radians between
    +     *        -pi and pi, excluding -pi.
    +     *
    +     * Note that the Excel ATAN2() function accepts its arguments in the reverse order to the standard
    +     *        PHP atan2() function, so we need to reverse them here before calling the PHP atan() function.
    +     *
    +     * Excel Function:
    +     *        ATAN2(xCoordinate,yCoordinate)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param float $xCoordinate the x-coordinate of the point
    +     * @param float $yCoordinate the y-coordinate of the point
    +     *
    +     * @return float the inverse tangent of the specified x- and y-coordinates
    +     */
    +    public static function ATAN2($xCoordinate = null, $yCoordinate = null)
    +    {
    +        $xCoordinate = Functions::flattenSingleValue($xCoordinate);
    +        $yCoordinate = Functions::flattenSingleValue($yCoordinate);
    +
    +        $xCoordinate = ($xCoordinate !== null) ? $xCoordinate : 0.0;
    +        $yCoordinate = ($yCoordinate !== null) ? $yCoordinate : 0.0;
    +
    +        if (((is_numeric($xCoordinate)) || (is_bool($xCoordinate))) &&
    +            ((is_numeric($yCoordinate))) || (is_bool($yCoordinate))) {
    +            $xCoordinate = (float) $xCoordinate;
    +            $yCoordinate = (float) $yCoordinate;
    +
    +            if (($xCoordinate == 0) && ($yCoordinate == 0)) {
    +                return Functions::DIV0();
    +            }
    +
    +            return atan2($yCoordinate, $xCoordinate);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * CEILING.
    +     *
    +     * Returns number rounded up, away from zero, to the nearest multiple of significance.
    +     *        For example, if you want to avoid using pennies in your prices and your product is
    +     *        priced at $4.42, use the formula =CEILING(4.42,0.05) to round prices up to the
    +     *        nearest nickel.
    +     *
    +     * Excel Function:
    +     *        CEILING(number[,significance])
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param float $number the number you want to round
    +     * @param float $significance the multiple to which you want to round
    +     *
    +     * @return float Rounded Number
    +     */
    +    public static function CEILING($number, $significance = null)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +        $significance = Functions::flattenSingleValue($significance);
    +
    +        if (($significance === null) &&
    +            (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC)) {
    +            $significance = $number / abs($number);
    +        }
    +
    +        if ((is_numeric($number)) && (is_numeric($significance))) {
    +            if (($number == 0.0) || ($significance == 0.0)) {
    +                return 0.0;
    +            } elseif (self::SIGN($number) == self::SIGN($significance)) {
    +                return ceil($number / $significance) * $significance;
    +            }
    +
    +            return Functions::NAN();
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * COMBIN.
    +     *
    +     * Returns the number of combinations for a given number of items. Use COMBIN to
    +     *        determine the total possible number of groups for a given number of items.
    +     *
    +     * Excel Function:
    +     *        COMBIN(numObjs,numInSet)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param int $numObjs Number of different objects
    +     * @param int $numInSet Number of objects in each combination
    +     *
    +     * @return int Number of combinations
    +     */
    +    public static function COMBIN($numObjs, $numInSet)
    +    {
    +        $numObjs = Functions::flattenSingleValue($numObjs);
    +        $numInSet = Functions::flattenSingleValue($numInSet);
    +
    +        if ((is_numeric($numObjs)) && (is_numeric($numInSet))) {
    +            if ($numObjs < $numInSet) {
    +                return Functions::NAN();
    +            } elseif ($numInSet < 0) {
    +                return Functions::NAN();
    +            }
    +
    +            return round(self::FACT($numObjs) / self::FACT($numObjs - $numInSet)) / self::FACT($numInSet);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * EVEN.
    +     *
    +     * Returns number rounded up to the nearest even integer.
    +     * You can use this function for processing items that come in twos. For example,
    +     *        a packing crate accepts rows of one or two items. The crate is full when
    +     *        the number of items, rounded up to the nearest two, matches the crate's
    +     *        capacity.
    +     *
    +     * Excel Function:
    +     *        EVEN(number)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param float $number Number to round
    +     *
    +     * @return int Rounded Number
    +     */
    +    public static function EVEN($number)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +
    +        if ($number === null) {
    +            return 0;
    +        } elseif (is_bool($number)) {
    +            $number = (int) $number;
    +        }
    +
    +        if (is_numeric($number)) {
    +            $significance = 2 * self::SIGN($number);
    +
    +            return (int) self::CEILING($number, $significance);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * FACT.
    +     *
    +     * Returns the factorial of a number.
    +     * The factorial of a number is equal to 1*2*3*...* number.
    +     *
    +     * Excel Function:
    +     *        FACT(factVal)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param float $factVal Factorial Value
    +     *
    +     * @return int Factorial
    +     */
    +    public static function FACT($factVal)
    +    {
    +        $factVal = Functions::flattenSingleValue($factVal);
    +
    +        if (is_numeric($factVal)) {
    +            if ($factVal < 0) {
    +                return Functions::NAN();
    +            }
    +            $factLoop = floor($factVal);
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
    +                if ($factVal > $factLoop) {
    +                    return Functions::NAN();
    +                }
    +            }
    +
    +            $factorial = 1;
    +            while ($factLoop > 1) {
    +                $factorial *= $factLoop--;
    +            }
    +
    +            return $factorial;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * FACTDOUBLE.
    +     *
    +     * Returns the double factorial of a number.
    +     *
    +     * Excel Function:
    +     *        FACTDOUBLE(factVal)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param float $factVal Factorial Value
    +     *
    +     * @return int Double Factorial
    +     */
    +    public static function FACTDOUBLE($factVal)
    +    {
    +        $factLoop = Functions::flattenSingleValue($factVal);
    +
    +        if (is_numeric($factLoop)) {
    +            $factLoop = floor($factLoop);
    +            if ($factVal < 0) {
    +                return Functions::NAN();
    +            }
    +            $factorial = 1;
    +            while ($factLoop > 1) {
    +                $factorial *= $factLoop--;
    +                --$factLoop;
    +            }
    +
    +            return $factorial;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * FLOOR.
    +     *
    +     * Rounds number down, toward zero, to the nearest multiple of significance.
    +     *
    +     * Excel Function:
    +     *        FLOOR(number[,significance])
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param float $number Number to round
    +     * @param float $significance Significance
    +     *
    +     * @return float Rounded Number
    +     */
    +    public static function FLOOR($number, $significance = null)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +        $significance = Functions::flattenSingleValue($significance);
    +
    +        if (($significance === null) &&
    +            (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC)) {
    +            $significance = $number / abs($number);
    +        }
    +
    +        if ((is_numeric($number)) && (is_numeric($significance))) {
    +            if ($significance == 0.0) {
    +                return Functions::DIV0();
    +            } elseif ($number == 0.0) {
    +                return 0.0;
    +            } elseif (self::SIGN($number) == self::SIGN($significance)) {
    +                return floor($number / $significance) * $significance;
    +            }
    +
    +            return Functions::NAN();
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    private static function evaluateGCD($a, $b)
    +    {
    +        return $b ? self::evaluateGCD($b, $a % $b) : $a;
    +    }
    +
    +    /**
    +     * GCD.
    +     *
    +     * Returns the greatest common divisor of a series of numbers.
    +     * The greatest common divisor is the largest integer that divides both
    +     *        number1 and number2 without a remainder.
    +     *
    +     * Excel Function:
    +     *        GCD(number1[,number2[, ...]])
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return int Greatest Common Divisor
    +     */
    +    public static function GCD(...$args)
    +    {
    +        $args = Functions::flattenArray($args);
    +        // Loop through arguments
    +        foreach (Functions::flattenArray($args) as $value) {
    +            if (!is_numeric($value)) {
    +                return Functions::VALUE();
    +            } elseif ($value < 0) {
    +                return Functions::NAN();
    +            }
    +        }
    +
    +        $gcd = (int) array_pop($args);
    +        do {
    +            $gcd = self::evaluateGCD($gcd, (int) array_pop($args));
    +        } while (!empty($args));
    +
    +        return $gcd;
    +    }
    +
    +    /**
    +     * INT.
    +     *
    +     * Casts a floating point value to an integer
    +     *
    +     * Excel Function:
    +     *        INT(number)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param float $number Number to cast to an integer
    +     *
    +     * @return int Integer value
    +     */
    +    public static function INT($number)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +
    +        if ($number === null) {
    +            return 0;
    +        } elseif (is_bool($number)) {
    +            return (int) $number;
    +        }
    +        if (is_numeric($number)) {
    +            return (int) floor($number);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * LCM.
    +     *
    +     * Returns the lowest common multiplier of a series of numbers
    +     * The least common multiple is the smallest positive integer that is a multiple
    +     * of all integer arguments number1, number2, and so on. Use LCM to add fractions
    +     * with different denominators.
    +     *
    +     * Excel Function:
    +     *        LCM(number1[,number2[, ...]])
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return int Lowest Common Multiplier
    +     */
    +    public static function LCM(...$args)
    +    {
    +        $returnValue = 1;
    +        $allPoweredFactors = [];
    +        // Loop through arguments
    +        foreach (Functions::flattenArray($args) as $value) {
    +            if (!is_numeric($value)) {
    +                return Functions::VALUE();
    +            }
    +            if ($value == 0) {
    +                return 0;
    +            } elseif ($value < 0) {
    +                return Functions::NAN();
    +            }
    +            $myFactors = self::factors(floor($value));
    +            $myCountedFactors = array_count_values($myFactors);
    +            $myPoweredFactors = [];
    +            foreach ($myCountedFactors as $myCountedFactor => $myCountedPower) {
    +                $myPoweredFactors[$myCountedFactor] = pow($myCountedFactor, $myCountedPower);
    +            }
    +            foreach ($myPoweredFactors as $myPoweredValue => $myPoweredFactor) {
    +                if (isset($allPoweredFactors[$myPoweredValue])) {
    +                    if ($allPoweredFactors[$myPoweredValue] < $myPoweredFactor) {
    +                        $allPoweredFactors[$myPoweredValue] = $myPoweredFactor;
    +                    }
    +                } else {
    +                    $allPoweredFactors[$myPoweredValue] = $myPoweredFactor;
    +                }
    +            }
    +        }
    +        foreach ($allPoweredFactors as $allPoweredFactor) {
    +            $returnValue *= (int) $allPoweredFactor;
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * LOG_BASE.
    +     *
    +     * Returns the logarithm of a number to a specified base. The default base is 10.
    +     *
    +     * Excel Function:
    +     *        LOG(number[,base])
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param float $number The positive real number for which you want the logarithm
    +     * @param float $base The base of the logarithm. If base is omitted, it is assumed to be 10.
    +     *
    +     * @return float
    +     */
    +    public static function logBase($number = null, $base = 10)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +        $base = ($base === null) ? 10 : (float) Functions::flattenSingleValue($base);
    +
    +        if ((!is_numeric($base)) || (!is_numeric($number))) {
    +            return Functions::VALUE();
    +        }
    +        if (($base <= 0) || ($number <= 0)) {
    +            return Functions::NAN();
    +        }
    +
    +        return log($number, $base);
    +    }
    +
    +    /**
    +     * MDETERM.
    +     *
    +     * Returns the matrix determinant of an array.
    +     *
    +     * Excel Function:
    +     *        MDETERM(array)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param array $matrixValues A matrix of values
    +     *
    +     * @return float
    +     */
    +    public static function MDETERM($matrixValues)
    +    {
    +        $matrixData = [];
    +        if (!is_array($matrixValues)) {
    +            $matrixValues = [[$matrixValues]];
    +        }
    +
    +        $row = $maxColumn = 0;
    +        foreach ($matrixValues as $matrixRow) {
    +            if (!is_array($matrixRow)) {
    +                $matrixRow = [$matrixRow];
    +            }
    +            $column = 0;
    +            foreach ($matrixRow as $matrixCell) {
    +                if ((is_string($matrixCell)) || ($matrixCell === null)) {
    +                    return Functions::VALUE();
    +                }
    +                $matrixData[$row][$column] = $matrixCell;
    +                ++$column;
    +            }
    +            if ($column > $maxColumn) {
    +                $maxColumn = $column;
    +            }
    +            ++$row;
    +        }
    +
    +        $matrix = new Matrix($matrixData);
    +        if (!$matrix->isSquare()) {
    +            return Functions::VALUE();
    +        }
    +
    +        try {
    +            return $matrix->determinant();
    +        } catch (MatrixException $ex) {
    +            return Functions::VALUE();
    +        }
    +    }
    +
    +    /**
    +     * MINVERSE.
    +     *
    +     * Returns the inverse matrix for the matrix stored in an array.
    +     *
    +     * Excel Function:
    +     *        MINVERSE(array)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param array $matrixValues A matrix of values
    +     *
    +     * @return array
    +     */
    +    public static function MINVERSE($matrixValues)
    +    {
    +        $matrixData = [];
    +        if (!is_array($matrixValues)) {
    +            $matrixValues = [[$matrixValues]];
    +        }
    +
    +        $row = $maxColumn = 0;
    +        foreach ($matrixValues as $matrixRow) {
    +            if (!is_array($matrixRow)) {
    +                $matrixRow = [$matrixRow];
    +            }
    +            $column = 0;
    +            foreach ($matrixRow as $matrixCell) {
    +                if ((is_string($matrixCell)) || ($matrixCell === null)) {
    +                    return Functions::VALUE();
    +                }
    +                $matrixData[$row][$column] = $matrixCell;
    +                ++$column;
    +            }
    +            if ($column > $maxColumn) {
    +                $maxColumn = $column;
    +            }
    +            ++$row;
    +        }
    +
    +        $matrix = new Matrix($matrixData);
    +        if (!$matrix->isSquare()) {
    +            return Functions::VALUE();
    +        }
    +
    +        if ($matrix->determinant() == 0.0) {
    +            return Functions::NAN();
    +        }
    +
    +        try {
    +            return $matrix->inverse()->toArray();
    +        } catch (MatrixException $ex) {
    +            return Functions::VALUE();
    +        }
    +    }
    +
    +    /**
    +     * MMULT.
    +     *
    +     * @param array $matrixData1 A matrix of values
    +     * @param array $matrixData2 A matrix of values
    +     *
    +     * @return array
    +     */
    +    public static function MMULT($matrixData1, $matrixData2)
    +    {
    +        $matrixAData = $matrixBData = [];
    +        if (!is_array($matrixData1)) {
    +            $matrixData1 = [[$matrixData1]];
    +        }
    +        if (!is_array($matrixData2)) {
    +            $matrixData2 = [[$matrixData2]];
    +        }
    +
    +        try {
    +            $rowA = 0;
    +            foreach ($matrixData1 as $matrixRow) {
    +                if (!is_array($matrixRow)) {
    +                    $matrixRow = [$matrixRow];
    +                }
    +                $columnA = 0;
    +                foreach ($matrixRow as $matrixCell) {
    +                    if ((!is_numeric($matrixCell)) || ($matrixCell === null)) {
    +                        return Functions::VALUE();
    +                    }
    +                    $matrixAData[$rowA][$columnA] = $matrixCell;
    +                    ++$columnA;
    +                }
    +                ++$rowA;
    +            }
    +            $matrixA = new Matrix($matrixAData);
    +            $rowB = 0;
    +            foreach ($matrixData2 as $matrixRow) {
    +                if (!is_array($matrixRow)) {
    +                    $matrixRow = [$matrixRow];
    +                }
    +                $columnB = 0;
    +                foreach ($matrixRow as $matrixCell) {
    +                    if ((!is_numeric($matrixCell)) || ($matrixCell === null)) {
    +                        return Functions::VALUE();
    +                    }
    +                    $matrixBData[$rowB][$columnB] = $matrixCell;
    +                    ++$columnB;
    +                }
    +                ++$rowB;
    +            }
    +            $matrixB = new Matrix($matrixBData);
    +
    +            if ($columnA != $rowB) {
    +                return Functions::VALUE();
    +            }
    +
    +            return $matrixA->multiply($matrixB)->toArray();
    +        } catch (MatrixException $ex) {
    +            return Functions::VALUE();
    +        }
    +    }
    +
    +    /**
    +     * MOD.
    +     *
    +     * @param int $a Dividend
    +     * @param int $b Divisor
    +     *
    +     * @return int Remainder
    +     */
    +    public static function MOD($a = 1, $b = 1)
    +    {
    +        $a = (float) Functions::flattenSingleValue($a);
    +        $b = (float) Functions::flattenSingleValue($b);
    +
    +        if ($b == 0.0) {
    +            return Functions::DIV0();
    +        } elseif (($a < 0.0) && ($b > 0.0)) {
    +            return $b - fmod(abs($a), $b);
    +        } elseif (($a > 0.0) && ($b < 0.0)) {
    +            return $b + fmod($a, abs($b));
    +        }
    +
    +        return fmod($a, $b);
    +    }
    +
    +    /**
    +     * MROUND.
    +     *
    +     * Rounds a number to the nearest multiple of a specified value
    +     *
    +     * @param float $number Number to round
    +     * @param int $multiple Multiple to which you want to round $number
    +     *
    +     * @return float Rounded Number
    +     */
    +    public static function MROUND($number, $multiple)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +        $multiple = Functions::flattenSingleValue($multiple);
    +
    +        if ((is_numeric($number)) && (is_numeric($multiple))) {
    +            if ($multiple == 0) {
    +                return 0;
    +            }
    +            if ((self::SIGN($number)) == (self::SIGN($multiple))) {
    +                $multiplier = 1 / $multiple;
    +
    +                return round($number * $multiplier) / $multiplier;
    +            }
    +
    +            return Functions::NAN();
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * MULTINOMIAL.
    +     *
    +     * Returns the ratio of the factorial of a sum of values to the product of factorials.
    +     *
    +     * @param array of mixed Data Series
    +     *
    +     * @return float
    +     */
    +    public static function MULTINOMIAL(...$args)
    +    {
    +        $summer = 0;
    +        $divisor = 1;
    +        // Loop through arguments
    +        foreach (Functions::flattenArray($args) as $arg) {
    +            // Is it a numeric value?
    +            if (is_numeric($arg)) {
    +                if ($arg < 1) {
    +                    return Functions::NAN();
    +                }
    +                $summer += floor($arg);
    +                $divisor *= self::FACT($arg);
    +            } else {
    +                return Functions::VALUE();
    +            }
    +        }
    +
    +        // Return
    +        if ($summer > 0) {
    +            $summer = self::FACT($summer);
    +
    +            return $summer / $divisor;
    +        }
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * ODD.
    +     *
    +     * Returns number rounded up to the nearest odd integer.
    +     *
    +     * @param float $number Number to round
    +     *
    +     * @return int Rounded Number
    +     */
    +    public static function ODD($number)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +
    +        if ($number === null) {
    +            return 1;
    +        } elseif (is_bool($number)) {
    +            return 1;
    +        } elseif (is_numeric($number)) {
    +            $significance = self::SIGN($number);
    +            if ($significance == 0) {
    +                return 1;
    +            }
    +
    +            $result = self::CEILING($number, $significance);
    +            if ($result == self::EVEN($result)) {
    +                $result += $significance;
    +            }
    +
    +            return (int) $result;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * POWER.
    +     *
    +     * Computes x raised to the power y.
    +     *
    +     * @param float $x
    +     * @param float $y
    +     *
    +     * @return float
    +     */
    +    public static function POWER($x = 0, $y = 2)
    +    {
    +        $x = Functions::flattenSingleValue($x);
    +        $y = Functions::flattenSingleValue($y);
    +
    +        // Validate parameters
    +        if ($x == 0.0 && $y == 0.0) {
    +            return Functions::NAN();
    +        } elseif ($x == 0.0 && $y < 0.0) {
    +            return Functions::DIV0();
    +        }
    +
    +        // Return
    +        $result = pow($x, $y);
    +
    +        return (!is_nan($result) && !is_infinite($result)) ? $result : Functions::NAN();
    +    }
    +
    +    /**
    +     * PRODUCT.
    +     *
    +     * PRODUCT returns the product of all the values and cells referenced in the argument list.
    +     *
    +     * Excel Function:
    +     *        PRODUCT(value1[,value2[, ...]])
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function PRODUCT(...$args)
    +    {
    +        // Return value
    +        $returnValue = null;
    +
    +        // Loop through arguments
    +        foreach (Functions::flattenArray($args) as $arg) {
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                if ($returnValue === null) {
    +                    $returnValue = $arg;
    +                } else {
    +                    $returnValue *= $arg;
    +                }
    +            }
    +        }
    +
    +        // Return
    +        if ($returnValue === null) {
    +            return 0;
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * QUOTIENT.
    +     *
    +     * QUOTIENT function returns the integer portion of a division. Numerator is the divided number
    +     *        and denominator is the divisor.
    +     *
    +     * Excel Function:
    +     *        QUOTIENT(value1[,value2[, ...]])
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function QUOTIENT(...$args)
    +    {
    +        // Return value
    +        $returnValue = null;
    +
    +        // Loop through arguments
    +        foreach (Functions::flattenArray($args) as $arg) {
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                if ($returnValue === null) {
    +                    $returnValue = ($arg == 0) ? 0 : $arg;
    +                } else {
    +                    if (($returnValue == 0) || ($arg == 0)) {
    +                        $returnValue = 0;
    +                    } else {
    +                        $returnValue /= $arg;
    +                    }
    +                }
    +            }
    +        }
    +
    +        // Return
    +        return (int) $returnValue;
    +    }
    +
    +    /**
    +     * RAND.
    +     *
    +     * @param int $min Minimal value
    +     * @param int $max Maximal value
    +     *
    +     * @return int Random number
    +     */
    +    public static function RAND($min = 0, $max = 0)
    +    {
    +        $min = Functions::flattenSingleValue($min);
    +        $max = Functions::flattenSingleValue($max);
    +
    +        if ($min == 0 && $max == 0) {
    +            return (mt_rand(0, 10000000)) / 10000000;
    +        }
    +
    +        return mt_rand($min, $max);
    +    }
    +
    +    public static function ROMAN($aValue, $style = 0)
    +    {
    +        $aValue = Functions::flattenSingleValue($aValue);
    +        $style = ($style === null) ? 0 : (int) Functions::flattenSingleValue($style);
    +        if ((!is_numeric($aValue)) || ($aValue < 0) || ($aValue >= 4000)) {
    +            return Functions::VALUE();
    +        }
    +        $aValue = (int) $aValue;
    +        if ($aValue == 0) {
    +            return '';
    +        }
    +
    +        $mill = ['', 'M', 'MM', 'MMM', 'MMMM', 'MMMMM'];
    +        $cent = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'];
    +        $tens = ['', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'];
    +        $ones = ['', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];
    +
    +        $roman = '';
    +        while ($aValue > 5999) {
    +            $roman .= 'M';
    +            $aValue -= 1000;
    +        }
    +        $m = self::romanCut($aValue, 1000);
    +        $aValue %= 1000;
    +        $c = self::romanCut($aValue, 100);
    +        $aValue %= 100;
    +        $t = self::romanCut($aValue, 10);
    +        $aValue %= 10;
    +
    +        return $roman . $mill[$m] . $cent[$c] . $tens[$t] . $ones[$aValue];
    +    }
    +
    +    /**
    +     * ROUNDUP.
    +     *
    +     * Rounds a number up to a specified number of decimal places
    +     *
    +     * @param float $number Number to round
    +     * @param int $digits Number of digits to which you want to round $number
    +     *
    +     * @return float Rounded Number
    +     */
    +    public static function ROUNDUP($number, $digits)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +        $digits = Functions::flattenSingleValue($digits);
    +
    +        if ((is_numeric($number)) && (is_numeric($digits))) {
    +            $significance = pow(10, (int) $digits);
    +            if ($number < 0.0) {
    +                return floor($number * $significance) / $significance;
    +            }
    +
    +            return ceil($number * $significance) / $significance;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * ROUNDDOWN.
    +     *
    +     * Rounds a number down to a specified number of decimal places
    +     *
    +     * @param float $number Number to round
    +     * @param int $digits Number of digits to which you want to round $number
    +     *
    +     * @return float Rounded Number
    +     */
    +    public static function ROUNDDOWN($number, $digits)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +        $digits = Functions::flattenSingleValue($digits);
    +
    +        if ((is_numeric($number)) && (is_numeric($digits))) {
    +            $significance = pow(10, (int) $digits);
    +            if ($number < 0.0) {
    +                return ceil($number * $significance) / $significance;
    +            }
    +
    +            return floor($number * $significance) / $significance;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * SERIESSUM.
    +     *
    +     * Returns the sum of a power series
    +     *
    +     * @param float $x Input value to the power series
    +     * @param float $n Initial power to which you want to raise $x
    +     * @param float $m Step by which to increase $n for each term in the series
    +     * @param array of mixed Data Series
    +     *
    +     * @return float
    +     */
    +    public static function SERIESSUM(...$args)
    +    {
    +        $returnValue = 0;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +
    +        $x = array_shift($aArgs);
    +        $n = array_shift($aArgs);
    +        $m = array_shift($aArgs);
    +
    +        if ((is_numeric($x)) && (is_numeric($n)) && (is_numeric($m))) {
    +            // Calculate
    +            $i = 0;
    +            foreach ($aArgs as $arg) {
    +                // Is it a numeric value?
    +                if ((is_numeric($arg)) && (!is_string($arg))) {
    +                    $returnValue += $arg * pow($x, $n + ($m * $i++));
    +                } else {
    +                    return Functions::VALUE();
    +                }
    +            }
    +
    +            return $returnValue;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * SIGN.
    +     *
    +     * Determines the sign of a number. Returns 1 if the number is positive, zero (0)
    +     *        if the number is 0, and -1 if the number is negative.
    +     *
    +     * @param float $number Number to round
    +     *
    +     * @return int sign value
    +     */
    +    public static function SIGN($number)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +
    +        if (is_bool($number)) {
    +            return (int) $number;
    +        }
    +        if (is_numeric($number)) {
    +            if ($number == 0.0) {
    +                return 0;
    +            }
    +
    +            return $number / abs($number);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * SQRTPI.
    +     *
    +     * Returns the square root of (number * pi).
    +     *
    +     * @param float $number Number
    +     *
    +     * @return float Square Root of Number * Pi
    +     */
    +    public static function SQRTPI($number)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +
    +        if (is_numeric($number)) {
    +            if ($number < 0) {
    +                return Functions::NAN();
    +            }
    +
    +            return sqrt($number * M_PI);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    protected static function filterHiddenArgs($cellReference, $args)
    +    {
    +        return array_filter(
    +            $args,
    +            function ($index) use ($cellReference) {
    +                list(, $row, $column) = explode('.', $index);
    +
    +                return $cellReference->getWorksheet()->getRowDimension($row)->getVisible() &&
    +                    $cellReference->getWorksheet()->getColumnDimension($column)->getVisible();
    +            },
    +            ARRAY_FILTER_USE_KEY
    +        );
    +    }
    +
    +    protected static function filterFormulaArgs($cellReference, $args)
    +    {
    +        return array_filter(
    +            $args,
    +            function ($index) use ($cellReference) {
    +                list(, $row, $column) = explode('.', $index);
    +                if ($cellReference->getWorksheet()->cellExists($column . $row)) {
    +                    //take this cell out if it contains the SUBTOTAL or AGGREGATE functions in a formula
    +                    $isFormula = $cellReference->getWorksheet()->getCell($column . $row)->isFormula();
    +                    $cellFormula = !preg_match('/^=.*\b(SUBTOTAL|AGGREGATE)\s*\(/i', $cellReference->getWorksheet()->getCell($column . $row)->getValue());
    +
    +                    return !$isFormula || $cellFormula;
    +                }
    +
    +                return true;
    +            },
    +            ARRAY_FILTER_USE_KEY
    +        );
    +    }
    +
    +    /**
    +     * SUBTOTAL.
    +     *
    +     * Returns a subtotal in a list or database.
    +     *
    +     * @param int the number 1 to 11 that specifies which function to
    +     *                    use in calculating subtotals within a range
    +     *                    list
    +     *            Numbers 101 to 111 shadow the functions of 1 to 11
    +     *                    but ignore any values in the range that are
    +     *                    in hidden rows or columns
    +     * @param array of mixed Data Series
    +     *
    +     * @return float
    +     */
    +    public static function SUBTOTAL(...$args)
    +    {
    +        $cellReference = array_pop($args);
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +        $subtotal = array_shift($aArgs);
    +
    +        // Calculate
    +        if ((is_numeric($subtotal)) && (!is_string($subtotal))) {
    +            if ($subtotal > 100) {
    +                $aArgs = self::filterHiddenArgs($cellReference, $aArgs);
    +                $subtotal -= 100;
    +            }
    +
    +            $aArgs = self::filterFormulaArgs($cellReference, $aArgs);
    +            switch ($subtotal) {
    +                case 1:
    +                    return Statistical::AVERAGE($aArgs);
    +                case 2:
    +                    return Statistical::COUNT($aArgs);
    +                case 3:
    +                    return Statistical::COUNTA($aArgs);
    +                case 4:
    +                    return Statistical::MAX($aArgs);
    +                case 5:
    +                    return Statistical::MIN($aArgs);
    +                case 6:
    +                    return self::PRODUCT($aArgs);
    +                case 7:
    +                    return Statistical::STDEV($aArgs);
    +                case 8:
    +                    return Statistical::STDEVP($aArgs);
    +                case 9:
    +                    return self::SUM($aArgs);
    +                case 10:
    +                    return Statistical::VARFunc($aArgs);
    +                case 11:
    +                    return Statistical::VARP($aArgs);
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * SUM.
    +     *
    +     * SUM computes the sum of all the values and cells referenced in the argument list.
    +     *
    +     * Excel Function:
    +     *        SUM(value1[,value2[, ...]])
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function SUM(...$args)
    +    {
    +        $returnValue = 0;
    +
    +        // Loop through the arguments
    +        foreach (Functions::flattenArray($args) as $arg) {
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                $returnValue += $arg;
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * SUMIF.
    +     *
    +     * Counts the number of cells that contain numbers within the list of arguments
    +     *
    +     * Excel Function:
    +     *        SUMIF(value1[,value2[, ...]],condition)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed $aArgs Data values
    +     * @param string $condition the criteria that defines which cells will be summed
    +     * @param mixed $sumArgs
    +     *
    +     * @return float
    +     */
    +    public static function SUMIF($aArgs, $condition, $sumArgs = [])
    +    {
    +        $returnValue = 0;
    +
    +        $aArgs = Functions::flattenArray($aArgs);
    +        $sumArgs = Functions::flattenArray($sumArgs);
    +        if (empty($sumArgs)) {
    +            $sumArgs = $aArgs;
    +        }
    +        $condition = Functions::ifCondition($condition);
    +        // Loop through arguments
    +        foreach ($aArgs as $key => $arg) {
    +            if (!is_numeric($arg)) {
    +                $arg = str_replace('"', '""', $arg);
    +                $arg = Calculation::wrapResult(strtoupper($arg));
    +            }
    +
    +            $testCondition = '=' . $arg . $condition;
    +
    +            if (is_numeric($sumArgs[$key]) &&
    +                Calculation::getInstance()->_calculateFormulaValue($testCondition)) {
    +                // Is it a value within our criteria and only numeric can be added to the result
    +                $returnValue += $sumArgs[$key];
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * SUMIFS.
    +     *
    +     *    Counts the number of cells that contain numbers within the list of arguments
    +     *
    +     *    Excel Function:
    +     *        SUMIFS(value1[,value2[, ...]],condition)
    +     *
    +     *    @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed $args Data values
    +     * @param string $condition the criteria that defines which cells will be summed
    +     *
    +     * @return float
    +     */
    +    public static function SUMIFS(...$args)
    +    {
    +        $arrayList = $args;
    +
    +        // Return value
    +        $returnValue = 0;
    +
    +        $sumArgs = Functions::flattenArray(array_shift($arrayList));
    +        $aArgsArray = [];
    +        $conditions = [];
    +
    +        while (count($arrayList) > 0) {
    +            $aArgsArray[] = Functions::flattenArray(array_shift($arrayList));
    +            $conditions[] = Functions::ifCondition(array_shift($arrayList));
    +        }
    +
    +        // Loop through each sum and see if arguments and conditions are true
    +        foreach ($sumArgs as $index => $value) {
    +            $valid = true;
    +
    +            foreach ($conditions as $cidx => $condition) {
    +                $arg = $aArgsArray[$cidx][$index];
    +
    +                // Loop through arguments
    +                if (!is_numeric($arg)) {
    +                    $arg = Calculation::wrapResult(strtoupper($arg));
    +                }
    +                $testCondition = '=' . $arg . $condition;
    +                if (!Calculation::getInstance()->_calculateFormulaValue($testCondition)) {
    +                    // Is not a value within our criteria
    +                    $valid = false;
    +
    +                    break; // if false found, don't need to check other conditions
    +                }
    +            }
    +
    +            if ($valid) {
    +                $returnValue += $value;
    +            }
    +        }
    +
    +        // Return
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * SUMPRODUCT.
    +     *
    +     * Excel Function:
    +     *        SUMPRODUCT(value1[,value2[, ...]])
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function SUMPRODUCT(...$args)
    +    {
    +        $arrayList = $args;
    +
    +        $wrkArray = Functions::flattenArray(array_shift($arrayList));
    +        $wrkCellCount = count($wrkArray);
    +
    +        for ($i = 0; $i < $wrkCellCount; ++$i) {
    +            if ((!is_numeric($wrkArray[$i])) || (is_string($wrkArray[$i]))) {
    +                $wrkArray[$i] = 0;
    +            }
    +        }
    +
    +        foreach ($arrayList as $matrixData) {
    +            $array2 = Functions::flattenArray($matrixData);
    +            $count = count($array2);
    +            if ($wrkCellCount != $count) {
    +                return Functions::VALUE();
    +            }
    +
    +            foreach ($array2 as $i => $val) {
    +                if ((!is_numeric($val)) || (is_string($val))) {
    +                    $val = 0;
    +                }
    +                $wrkArray[$i] *= $val;
    +            }
    +        }
    +
    +        return array_sum($wrkArray);
    +    }
    +
    +    /**
    +     * SUMSQ.
    +     *
    +     * SUMSQ returns the sum of the squares of the arguments
    +     *
    +     * Excel Function:
    +     *        SUMSQ(value1[,value2[, ...]])
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function SUMSQ(...$args)
    +    {
    +        $returnValue = 0;
    +
    +        // Loop through arguments
    +        foreach (Functions::flattenArray($args) as $arg) {
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                $returnValue += ($arg * $arg);
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * SUMX2MY2.
    +     *
    +     * @param mixed[] $matrixData1 Matrix #1
    +     * @param mixed[] $matrixData2 Matrix #2
    +     *
    +     * @return float
    +     */
    +    public static function SUMX2MY2($matrixData1, $matrixData2)
    +    {
    +        $array1 = Functions::flattenArray($matrixData1);
    +        $array2 = Functions::flattenArray($matrixData2);
    +        $count = min(count($array1), count($array2));
    +
    +        $result = 0;
    +        for ($i = 0; $i < $count; ++$i) {
    +            if (((is_numeric($array1[$i])) && (!is_string($array1[$i]))) &&
    +                ((is_numeric($array2[$i])) && (!is_string($array2[$i])))) {
    +                $result += ($array1[$i] * $array1[$i]) - ($array2[$i] * $array2[$i]);
    +            }
    +        }
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * SUMX2PY2.
    +     *
    +     * @param mixed[] $matrixData1 Matrix #1
    +     * @param mixed[] $matrixData2 Matrix #2
    +     *
    +     * @return float
    +     */
    +    public static function SUMX2PY2($matrixData1, $matrixData2)
    +    {
    +        $array1 = Functions::flattenArray($matrixData1);
    +        $array2 = Functions::flattenArray($matrixData2);
    +        $count = min(count($array1), count($array2));
    +
    +        $result = 0;
    +        for ($i = 0; $i < $count; ++$i) {
    +            if (((is_numeric($array1[$i])) && (!is_string($array1[$i]))) &&
    +                ((is_numeric($array2[$i])) && (!is_string($array2[$i])))) {
    +                $result += ($array1[$i] * $array1[$i]) + ($array2[$i] * $array2[$i]);
    +            }
    +        }
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * SUMXMY2.
    +     *
    +     * @param mixed[] $matrixData1 Matrix #1
    +     * @param mixed[] $matrixData2 Matrix #2
    +     *
    +     * @return float
    +     */
    +    public static function SUMXMY2($matrixData1, $matrixData2)
    +    {
    +        $array1 = Functions::flattenArray($matrixData1);
    +        $array2 = Functions::flattenArray($matrixData2);
    +        $count = min(count($array1), count($array2));
    +
    +        $result = 0;
    +        for ($i = 0; $i < $count; ++$i) {
    +            if (((is_numeric($array1[$i])) && (!is_string($array1[$i]))) &&
    +                ((is_numeric($array2[$i])) && (!is_string($array2[$i])))) {
    +                $result += ($array1[$i] - $array2[$i]) * ($array1[$i] - $array2[$i]);
    +            }
    +        }
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * TRUNC.
    +     *
    +     * Truncates value to the number of fractional digits by number_digits.
    +     *
    +     * @param float $value
    +     * @param int $digits
    +     *
    +     * @return float Truncated value
    +     */
    +    public static function TRUNC($value = 0, $digits = 0)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $digits = Functions::flattenSingleValue($digits);
    +
    +        // Validate parameters
    +        if ((!is_numeric($value)) || (!is_numeric($digits))) {
    +            return Functions::VALUE();
    +        }
    +        $digits = floor($digits);
    +
    +        // Truncate
    +        $adjust = pow(10, $digits);
    +
    +        if (($digits > 0) && (rtrim((int) ((abs($value) - abs((int) $value)) * $adjust), '0') < $adjust / 10)) {
    +            return $value;
    +        }
    +
    +        return ((int) ($value * $adjust)) / $adjust;
    +    }
    +
    +    /**
    +     * SEC.
    +     *
    +     * Returns the secant of an angle.
    +     *
    +     * @param float $angle Number
    +     *
    +     * @return float|string The secant of the angle
    +     */
    +    public static function SEC($angle)
    +    {
    +        $angle = Functions::flattenSingleValue($angle);
    +
    +        if (!is_numeric($angle)) {
    +            return Functions::VALUE();
    +        }
    +
    +        $result = cos($angle);
    +
    +        return ($result == 0.0) ? Functions::DIV0() : 1 / $result;
    +    }
    +
    +    /**
    +     * SECH.
    +     *
    +     * Returns the hyperbolic secant of an angle.
    +     *
    +     * @param float $angle Number
    +     *
    +     * @return float|string The hyperbolic secant of the angle
    +     */
    +    public static function SECH($angle)
    +    {
    +        $angle = Functions::flattenSingleValue($angle);
    +
    +        if (!is_numeric($angle)) {
    +            return Functions::VALUE();
    +        }
    +
    +        $result = cosh($angle);
    +
    +        return ($result == 0.0) ? Functions::DIV0() : 1 / $result;
    +    }
    +
    +    /**
    +     * CSC.
    +     *
    +     * Returns the cosecant of an angle.
    +     *
    +     * @param float $angle Number
    +     *
    +     * @return float|string The cosecant of the angle
    +     */
    +    public static function CSC($angle)
    +    {
    +        $angle = Functions::flattenSingleValue($angle);
    +
    +        if (!is_numeric($angle)) {
    +            return Functions::VALUE();
    +        }
    +
    +        $result = sin($angle);
    +
    +        return ($result == 0.0) ? Functions::DIV0() : 1 / $result;
    +    }
    +
    +    /**
    +     * CSCH.
    +     *
    +     * Returns the hyperbolic cosecant of an angle.
    +     *
    +     * @param float $angle Number
    +     *
    +     * @return float|string The hyperbolic cosecant of the angle
    +     */
    +    public static function CSCH($angle)
    +    {
    +        $angle = Functions::flattenSingleValue($angle);
    +
    +        if (!is_numeric($angle)) {
    +            return Functions::VALUE();
    +        }
    +
    +        $result = sinh($angle);
    +
    +        return ($result == 0.0) ? Functions::DIV0() : 1 / $result;
    +    }
    +
    +    /**
    +     * COT.
    +     *
    +     * Returns the cotangent of an angle.
    +     *
    +     * @param float $angle Number
    +     *
    +     * @return float|string The cotangent of the angle
    +     */
    +    public static function COT($angle)
    +    {
    +        $angle = Functions::flattenSingleValue($angle);
    +
    +        if (!is_numeric($angle)) {
    +            return Functions::VALUE();
    +        }
    +
    +        $result = tan($angle);
    +
    +        return ($result == 0.0) ? Functions::DIV0() : 1 / $result;
    +    }
    +
    +    /**
    +     * COTH.
    +     *
    +     * Returns the hyperbolic cotangent of an angle.
    +     *
    +     * @param float $angle Number
    +     *
    +     * @return float|string The hyperbolic cotangent of the angle
    +     */
    +    public static function COTH($angle)
    +    {
    +        $angle = Functions::flattenSingleValue($angle);
    +
    +        if (!is_numeric($angle)) {
    +            return Functions::VALUE();
    +        }
    +
    +        $result = tanh($angle);
    +
    +        return ($result == 0.0) ? Functions::DIV0() : 1 / $result;
    +    }
    +
    +    /**
    +     * ACOT.
    +     *
    +     * Returns the arccotangent of a number.
    +     *
    +     * @param float $number Number
    +     *
    +     * @return float|string The arccotangent of the number
    +     */
    +    public static function ACOT($number)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +
    +        if (!is_numeric($number)) {
    +            return Functions::VALUE();
    +        }
    +
    +        return (M_PI / 2) - atan($number);
    +    }
    +
    +    /**
    +     * ACOTH.
    +     *
    +     * Returns the hyperbolic arccotangent of a number.
    +     *
    +     * @param float $number Number
    +     *
    +     * @return float|string The hyperbolic arccotangent of the number
    +     */
    +    public static function ACOTH($number)
    +    {
    +        $number = Functions::flattenSingleValue($number);
    +
    +        if (!is_numeric($number)) {
    +            return Functions::VALUE();
    +        }
    +
    +        $result = log(($number + 1) / ($number - 1)) / 2;
    +
    +        return is_nan($result) ? Functions::NAN() : $result;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Statistical.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Statistical.php
    new file mode 100644
    index 00000000000..395b46ae7ca
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Statistical.php
    @@ -0,0 +1,3621 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\Trend\Trend;
    +
    +class Statistical
    +{
    +    const LOG_GAMMA_X_MAX_VALUE = 2.55e305;
    +    const XMININ = 2.23e-308;
    +    const EPS = 2.22e-16;
    +    const MAX_VALUE = 1.2e308;
    +    const MAX_ITERATIONS = 256;
    +    const SQRT2PI = 2.5066282746310005024157652848110452530069867406099;
    +
    +    private static function checkTrendArrays(&$array1, &$array2)
    +    {
    +        if (!is_array($array1)) {
    +            $array1 = [$array1];
    +        }
    +        if (!is_array($array2)) {
    +            $array2 = [$array2];
    +        }
    +
    +        $array1 = Functions::flattenArray($array1);
    +        $array2 = Functions::flattenArray($array2);
    +        foreach ($array1 as $key => $value) {
    +            if ((is_bool($value)) || (is_string($value)) || ($value === null)) {
    +                unset($array1[$key], $array2[$key]);
    +            }
    +        }
    +        foreach ($array2 as $key => $value) {
    +            if ((is_bool($value)) || (is_string($value)) || ($value === null)) {
    +                unset($array1[$key], $array2[$key]);
    +            }
    +        }
    +        $array1 = array_merge($array1);
    +        $array2 = array_merge($array2);
    +
    +        return true;
    +    }
    +
    +    /**
    +     * Incomplete beta function.
    +     *
    +     * @author Jaco van Kooten
    +     * @author Paul Meagher
    +     *
    +     * The computation is based on formulas from Numerical Recipes, Chapter 6.4 (W.H. Press et al, 1992).
    +     *
    +     * @param mixed $x require 0<=x<=1
    +     * @param mixed $p require p>0
    +     * @param mixed $q require q>0
    +     *
    +     * @return float 0 if x<0, p<=0, q<=0 or p+q>2.55E305 and 1 if x>1 to avoid errors and over/underflow
    +     */
    +    private static function incompleteBeta($x, $p, $q)
    +    {
    +        if ($x <= 0.0) {
    +            return 0.0;
    +        } elseif ($x >= 1.0) {
    +            return 1.0;
    +        } elseif (($p <= 0.0) || ($q <= 0.0) || (($p + $q) > self::LOG_GAMMA_X_MAX_VALUE)) {
    +            return 0.0;
    +        }
    +        $beta_gam = exp((0 - self::logBeta($p, $q)) + $p * log($x) + $q * log(1.0 - $x));
    +        if ($x < ($p + 1.0) / ($p + $q + 2.0)) {
    +            return $beta_gam * self::betaFraction($x, $p, $q) / $p;
    +        }
    +
    +        return 1.0 - ($beta_gam * self::betaFraction(1 - $x, $q, $p) / $q);
    +    }
    +
    +    // Function cache for logBeta function
    +    private static $logBetaCacheP = 0.0;
    +
    +    private static $logBetaCacheQ = 0.0;
    +
    +    private static $logBetaCacheResult = 0.0;
    +
    +    /**
    +     * The natural logarithm of the beta function.
    +     *
    +     * @param mixed $p require p>0
    +     * @param mixed $q require q>0
    +     *
    +     * @return float 0 if p<=0, q<=0 or p+q>2.55E305 to avoid errors and over/underflow
    +     *
    +     * @author Jaco van Kooten
    +     */
    +    private static function logBeta($p, $q)
    +    {
    +        if ($p != self::$logBetaCacheP || $q != self::$logBetaCacheQ) {
    +            self::$logBetaCacheP = $p;
    +            self::$logBetaCacheQ = $q;
    +            if (($p <= 0.0) || ($q <= 0.0) || (($p + $q) > self::LOG_GAMMA_X_MAX_VALUE)) {
    +                self::$logBetaCacheResult = 0.0;
    +            } else {
    +                self::$logBetaCacheResult = self::logGamma($p) + self::logGamma($q) - self::logGamma($p + $q);
    +            }
    +        }
    +
    +        return self::$logBetaCacheResult;
    +    }
    +
    +    /**
    +     * Evaluates of continued fraction part of incomplete beta function.
    +     * Based on an idea from Numerical Recipes (W.H. Press et al, 1992).
    +     *
    +     * @author Jaco van Kooten
    +     *
    +     * @param mixed $x
    +     * @param mixed $p
    +     * @param mixed $q
    +     *
    +     * @return float
    +     */
    +    private static function betaFraction($x, $p, $q)
    +    {
    +        $c = 1.0;
    +        $sum_pq = $p + $q;
    +        $p_plus = $p + 1.0;
    +        $p_minus = $p - 1.0;
    +        $h = 1.0 - $sum_pq * $x / $p_plus;
    +        if (abs($h) < self::XMININ) {
    +            $h = self::XMININ;
    +        }
    +        $h = 1.0 / $h;
    +        $frac = $h;
    +        $m = 1;
    +        $delta = 0.0;
    +        while ($m <= self::MAX_ITERATIONS && abs($delta - 1.0) > Functions::PRECISION) {
    +            $m2 = 2 * $m;
    +            // even index for d
    +            $d = $m * ($q - $m) * $x / (($p_minus + $m2) * ($p + $m2));
    +            $h = 1.0 + $d * $h;
    +            if (abs($h) < self::XMININ) {
    +                $h = self::XMININ;
    +            }
    +            $h = 1.0 / $h;
    +            $c = 1.0 + $d / $c;
    +            if (abs($c) < self::XMININ) {
    +                $c = self::XMININ;
    +            }
    +            $frac *= $h * $c;
    +            // odd index for d
    +            $d = -($p + $m) * ($sum_pq + $m) * $x / (($p + $m2) * ($p_plus + $m2));
    +            $h = 1.0 + $d * $h;
    +            if (abs($h) < self::XMININ) {
    +                $h = self::XMININ;
    +            }
    +            $h = 1.0 / $h;
    +            $c = 1.0 + $d / $c;
    +            if (abs($c) < self::XMININ) {
    +                $c = self::XMININ;
    +            }
    +            $delta = $h * $c;
    +            $frac *= $delta;
    +            ++$m;
    +        }
    +
    +        return $frac;
    +    }
    +
    +    /**
    +     * logGamma function.
    +     *
    +     * @version 1.1
    +     *
    +     * @author Jaco van Kooten
    +     *
    +     * Original author was Jaco van Kooten. Ported to PHP by Paul Meagher.
    +     *
    +     * The natural logarithm of the gamma function. <br />
    +     * Based on public domain NETLIB (Fortran) code by W. J. Cody and L. Stoltz <br />
    +     * Applied Mathematics Division <br />
    +     * Argonne National Laboratory <br />
    +     * Argonne, IL 60439 <br />
    +     * <p>
    +     * References:
    +     * <ol>
    +     * <li>W. J. Cody and K. E. Hillstrom, 'Chebyshev Approximations for the Natural
    +     *     Logarithm of the Gamma Function,' Math. Comp. 21, 1967, pp. 198-203.</li>
    +     * <li>K. E. Hillstrom, ANL/AMD Program ANLC366S, DGAMMA/DLGAMA, May, 1969.</li>
    +     * <li>Hart, Et. Al., Computer Approximations, Wiley and sons, New York, 1968.</li>
    +     * </ol>
    +     * </p>
    +     * <p>
    +     * From the original documentation:
    +     * </p>
    +     * <p>
    +     * This routine calculates the LOG(GAMMA) function for a positive real argument X.
    +     * Computation is based on an algorithm outlined in references 1 and 2.
    +     * The program uses rational functions that theoretically approximate LOG(GAMMA)
    +     * to at least 18 significant decimal digits. The approximation for X > 12 is from
    +     * reference 3, while approximations for X < 12.0 are similar to those in reference
    +     * 1, but are unpublished. The accuracy achieved depends on the arithmetic system,
    +     * the compiler, the intrinsic functions, and proper selection of the
    +     * machine-dependent constants.
    +     * </p>
    +     * <p>
    +     * Error returns: <br />
    +     * The program returns the value XINF for X .LE. 0.0 or when overflow would occur.
    +     * The computation is believed to be free of underflow and overflow.
    +     * </p>
    +     *
    +     * @return float MAX_VALUE for x < 0.0 or when overflow would occur, i.e. x > 2.55E305
    +     */
    +
    +    // Function cache for logGamma
    +    private static $logGammaCacheResult = 0.0;
    +
    +    private static $logGammaCacheX = 0.0;
    +
    +    private static function logGamma($x)
    +    {
    +        // Log Gamma related constants
    +        static $lg_d1 = -0.5772156649015328605195174;
    +        static $lg_d2 = 0.4227843350984671393993777;
    +        static $lg_d4 = 1.791759469228055000094023;
    +
    +        static $lg_p1 = [
    +            4.945235359296727046734888,
    +            201.8112620856775083915565,
    +            2290.838373831346393026739,
    +            11319.67205903380828685045,
    +            28557.24635671635335736389,
    +            38484.96228443793359990269,
    +            26377.48787624195437963534,
    +            7225.813979700288197698961,
    +        ];
    +        static $lg_p2 = [
    +            4.974607845568932035012064,
    +            542.4138599891070494101986,
    +            15506.93864978364947665077,
    +            184793.2904445632425417223,
    +            1088204.76946882876749847,
    +            3338152.967987029735917223,
    +            5106661.678927352456275255,
    +            3074109.054850539556250927,
    +        ];
    +        static $lg_p4 = [
    +            14745.02166059939948905062,
    +            2426813.369486704502836312,
    +            121475557.4045093227939592,
    +            2663432449.630976949898078,
    +            29403789566.34553899906876,
    +            170266573776.5398868392998,
    +            492612579337.743088758812,
    +            560625185622.3951465078242,
    +        ];
    +        static $lg_q1 = [
    +            67.48212550303777196073036,
    +            1113.332393857199323513008,
    +            7738.757056935398733233834,
    +            27639.87074403340708898585,
    +            54993.10206226157329794414,
    +            61611.22180066002127833352,
    +            36351.27591501940507276287,
    +            8785.536302431013170870835,
    +        ];
    +        static $lg_q2 = [
    +            183.0328399370592604055942,
    +            7765.049321445005871323047,
    +            133190.3827966074194402448,
    +            1136705.821321969608938755,
    +            5267964.117437946917577538,
    +            13467014.54311101692290052,
    +            17827365.30353274213975932,
    +            9533095.591844353613395747,
    +        ];
    +        static $lg_q4 = [
    +            2690.530175870899333379843,
    +            639388.5654300092398984238,
    +            41355999.30241388052042842,
    +            1120872109.61614794137657,
    +            14886137286.78813811542398,
    +            101680358627.2438228077304,
    +            341747634550.7377132798597,
    +            446315818741.9713286462081,
    +        ];
    +        static $lg_c = [
    +            -0.001910444077728,
    +            8.4171387781295e-4,
    +            -5.952379913043012e-4,
    +            7.93650793500350248e-4,
    +            -0.002777777777777681622553,
    +            0.08333333333333333331554247,
    +            0.0057083835261,
    +        ];
    +
    +        // Rough estimate of the fourth root of logGamma_xBig
    +        static $lg_frtbig = 2.25e76;
    +        static $pnt68 = 0.6796875;
    +
    +        if ($x == self::$logGammaCacheX) {
    +            return self::$logGammaCacheResult;
    +        }
    +        $y = $x;
    +        if ($y > 0.0 && $y <= self::LOG_GAMMA_X_MAX_VALUE) {
    +            if ($y <= self::EPS) {
    +                $res = -log($y);
    +            } elseif ($y <= 1.5) {
    +                // ---------------------
    +                //    EPS .LT. X .LE. 1.5
    +                // ---------------------
    +                if ($y < $pnt68) {
    +                    $corr = -log($y);
    +                    $xm1 = $y;
    +                } else {
    +                    $corr = 0.0;
    +                    $xm1 = $y - 1.0;
    +                }
    +                if ($y <= 0.5 || $y >= $pnt68) {
    +                    $xden = 1.0;
    +                    $xnum = 0.0;
    +                    for ($i = 0; $i < 8; ++$i) {
    +                        $xnum = $xnum * $xm1 + $lg_p1[$i];
    +                        $xden = $xden * $xm1 + $lg_q1[$i];
    +                    }
    +                    $res = $corr + $xm1 * ($lg_d1 + $xm1 * ($xnum / $xden));
    +                } else {
    +                    $xm2 = $y - 1.0;
    +                    $xden = 1.0;
    +                    $xnum = 0.0;
    +                    for ($i = 0; $i < 8; ++$i) {
    +                        $xnum = $xnum * $xm2 + $lg_p2[$i];
    +                        $xden = $xden * $xm2 + $lg_q2[$i];
    +                    }
    +                    $res = $corr + $xm2 * ($lg_d2 + $xm2 * ($xnum / $xden));
    +                }
    +            } elseif ($y <= 4.0) {
    +                // ---------------------
    +                //    1.5 .LT. X .LE. 4.0
    +                // ---------------------
    +                $xm2 = $y - 2.0;
    +                $xden = 1.0;
    +                $xnum = 0.0;
    +                for ($i = 0; $i < 8; ++$i) {
    +                    $xnum = $xnum * $xm2 + $lg_p2[$i];
    +                    $xden = $xden * $xm2 + $lg_q2[$i];
    +                }
    +                $res = $xm2 * ($lg_d2 + $xm2 * ($xnum / $xden));
    +            } elseif ($y <= 12.0) {
    +                // ----------------------
    +                //    4.0 .LT. X .LE. 12.0
    +                // ----------------------
    +                $xm4 = $y - 4.0;
    +                $xden = -1.0;
    +                $xnum = 0.0;
    +                for ($i = 0; $i < 8; ++$i) {
    +                    $xnum = $xnum * $xm4 + $lg_p4[$i];
    +                    $xden = $xden * $xm4 + $lg_q4[$i];
    +                }
    +                $res = $lg_d4 + $xm4 * ($xnum / $xden);
    +            } else {
    +                // ---------------------------------
    +                //    Evaluate for argument .GE. 12.0
    +                // ---------------------------------
    +                $res = 0.0;
    +                if ($y <= $lg_frtbig) {
    +                    $res = $lg_c[6];
    +                    $ysq = $y * $y;
    +                    for ($i = 0; $i < 6; ++$i) {
    +                        $res = $res / $ysq + $lg_c[$i];
    +                    }
    +                    $res /= $y;
    +                    $corr = log($y);
    +                    $res = $res + log(self::SQRT2PI) - 0.5 * $corr;
    +                    $res += $y * ($corr - 1.0);
    +                }
    +            }
    +        } else {
    +            // --------------------------
    +            //    Return for bad arguments
    +            // --------------------------
    +            $res = self::MAX_VALUE;
    +        }
    +        // ------------------------------
    +        //    Final adjustments and return
    +        // ------------------------------
    +        self::$logGammaCacheX = $x;
    +        self::$logGammaCacheResult = $res;
    +
    +        return $res;
    +    }
    +
    +    //
    +    //    Private implementation of the incomplete Gamma function
    +    //
    +    private static function incompleteGamma($a, $x)
    +    {
    +        static $max = 32;
    +        $summer = 0;
    +        for ($n = 0; $n <= $max; ++$n) {
    +            $divisor = $a;
    +            for ($i = 1; $i <= $n; ++$i) {
    +                $divisor *= ($a + $i);
    +            }
    +            $summer += (pow($x, $n) / $divisor);
    +        }
    +
    +        return pow($x, $a) * exp(0 - $x) * $summer;
    +    }
    +
    +    //
    +    //    Private implementation of the Gamma function
    +    //
    +    private static function gamma($data)
    +    {
    +        if ($data == 0.0) {
    +            return 0;
    +        }
    +
    +        static $p0 = 1.000000000190015;
    +        static $p = [
    +            1 => 76.18009172947146,
    +            2 => -86.50532032941677,
    +            3 => 24.01409824083091,
    +            4 => -1.231739572450155,
    +            5 => 1.208650973866179e-3,
    +            6 => -5.395239384953e-6,
    +        ];
    +
    +        $y = $x = $data;
    +        $tmp = $x + 5.5;
    +        $tmp -= ($x + 0.5) * log($tmp);
    +
    +        $summer = $p0;
    +        for ($j = 1; $j <= 6; ++$j) {
    +            $summer += ($p[$j] / ++$y);
    +        }
    +
    +        return exp(0 - $tmp + log(self::SQRT2PI * $summer / $x));
    +    }
    +
    +    /*
    +     *                                inverse_ncdf.php
    +     *                            -------------------
    +     *    begin                : Friday, January 16, 2004
    +     *    copyright            : (C) 2004 Michael Nickerson
    +     *    email                : nickersonm@yahoo.com
    +     *
    +     */
    +    private static function inverseNcdf($p)
    +    {
    +        //    Inverse ncdf approximation by Peter J. Acklam, implementation adapted to
    +        //    PHP by Michael Nickerson, using Dr. Thomas Ziegler's C implementation as
    +        //    a guide. http://home.online.no/~pjacklam/notes/invnorm/index.html
    +        //    I have not checked the accuracy of this implementation. Be aware that PHP
    +        //    will truncate the coeficcients to 14 digits.
    +
    +        //    You have permission to use and distribute this function freely for
    +        //    whatever purpose you want, but please show common courtesy and give credit
    +        //    where credit is due.
    +
    +        //    Input paramater is $p - probability - where 0 < p < 1.
    +
    +        //    Coefficients in rational approximations
    +        static $a = [
    +            1 => -3.969683028665376e+01,
    +            2 => 2.209460984245205e+02,
    +            3 => -2.759285104469687e+02,
    +            4 => 1.383577518672690e+02,
    +            5 => -3.066479806614716e+01,
    +            6 => 2.506628277459239e+00,
    +        ];
    +
    +        static $b = [
    +            1 => -5.447609879822406e+01,
    +            2 => 1.615858368580409e+02,
    +            3 => -1.556989798598866e+02,
    +            4 => 6.680131188771972e+01,
    +            5 => -1.328068155288572e+01,
    +        ];
    +
    +        static $c = [
    +            1 => -7.784894002430293e-03,
    +            2 => -3.223964580411365e-01,
    +            3 => -2.400758277161838e+00,
    +            4 => -2.549732539343734e+00,
    +            5 => 4.374664141464968e+00,
    +            6 => 2.938163982698783e+00,
    +        ];
    +
    +        static $d = [
    +            1 => 7.784695709041462e-03,
    +            2 => 3.224671290700398e-01,
    +            3 => 2.445134137142996e+00,
    +            4 => 3.754408661907416e+00,
    +        ];
    +
    +        //    Define lower and upper region break-points.
    +        $p_low = 0.02425; //Use lower region approx. below this
    +        $p_high = 1 - $p_low; //Use upper region approx. above this
    +
    +        if (0 < $p && $p < $p_low) {
    +            //    Rational approximation for lower region.
    +            $q = sqrt(-2 * log($p));
    +
    +            return ((((($c[1] * $q + $c[2]) * $q + $c[3]) * $q + $c[4]) * $q + $c[5]) * $q + $c[6]) /
    +                    (((($d[1] * $q + $d[2]) * $q + $d[3]) * $q + $d[4]) * $q + 1);
    +        } elseif ($p_low <= $p && $p <= $p_high) {
    +            //    Rational approximation for central region.
    +            $q = $p - 0.5;
    +            $r = $q * $q;
    +
    +            return ((((($a[1] * $r + $a[2]) * $r + $a[3]) * $r + $a[4]) * $r + $a[5]) * $r + $a[6]) * $q /
    +                   ((((($b[1] * $r + $b[2]) * $r + $b[3]) * $r + $b[4]) * $r + $b[5]) * $r + 1);
    +        } elseif ($p_high < $p && $p < 1) {
    +            //    Rational approximation for upper region.
    +            $q = sqrt(-2 * log(1 - $p));
    +
    +            return -((((($c[1] * $q + $c[2]) * $q + $c[3]) * $q + $c[4]) * $q + $c[5]) * $q + $c[6]) /
    +                     (((($d[1] * $q + $d[2]) * $q + $d[3]) * $q + $d[4]) * $q + 1);
    +        }
    +        //    If 0 < p < 1, return a null value
    +        return Functions::NULL();
    +    }
    +
    +    /**
    +     * AVEDEV.
    +     *
    +     * Returns the average of the absolute deviations of data points from their mean.
    +     * AVEDEV is a measure of the variability in a data set.
    +     *
    +     * Excel Function:
    +     *        AVEDEV(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function AVEDEV(...$args)
    +    {
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +
    +        // Return value
    +        $returnValue = null;
    +
    +        $aMean = self::AVERAGE($aArgs);
    +        if ($aMean != Functions::DIV0()) {
    +            $aCount = 0;
    +            foreach ($aArgs as $k => $arg) {
    +                if ((is_bool($arg)) &&
    +                    ((!Functions::isCellValue($k)) || (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE))) {
    +                    $arg = (int) $arg;
    +                }
    +                // Is it a numeric value?
    +                if ((is_numeric($arg)) && (!is_string($arg))) {
    +                    if ($returnValue === null) {
    +                        $returnValue = abs($arg - $aMean);
    +                    } else {
    +                        $returnValue += abs($arg - $aMean);
    +                    }
    +                    ++$aCount;
    +                }
    +            }
    +
    +            // Return
    +            if ($aCount == 0) {
    +                return Functions::DIV0();
    +            }
    +
    +            return $returnValue / $aCount;
    +        }
    +
    +        return Functions::NAN();
    +    }
    +
    +    /**
    +     * AVERAGE.
    +     *
    +     * Returns the average (arithmetic mean) of the arguments
    +     *
    +     * Excel Function:
    +     *        AVERAGE(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function AVERAGE(...$args)
    +    {
    +        $returnValue = $aCount = 0;
    +
    +        // Loop through arguments
    +        foreach (Functions::flattenArrayIndexed($args) as $k => $arg) {
    +            if ((is_bool($arg)) &&
    +                ((!Functions::isCellValue($k)) || (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE))) {
    +                $arg = (int) $arg;
    +            }
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                if ($returnValue === null) {
    +                    $returnValue = $arg;
    +                } else {
    +                    $returnValue += $arg;
    +                }
    +                ++$aCount;
    +            }
    +        }
    +
    +        // Return
    +        if ($aCount > 0) {
    +            return $returnValue / $aCount;
    +        }
    +
    +        return Functions::DIV0();
    +    }
    +
    +    /**
    +     * AVERAGEA.
    +     *
    +     * Returns the average of its arguments, including numbers, text, and logical values
    +     *
    +     * Excel Function:
    +     *        AVERAGEA(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function AVERAGEA(...$args)
    +    {
    +        $returnValue = null;
    +
    +        $aCount = 0;
    +        // Loop through arguments
    +        foreach (Functions::flattenArrayIndexed($args) as $k => $arg) {
    +            if ((is_bool($arg)) &&
    +                (!Functions::isMatrixValue($k))) {
    +            } else {
    +                if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) {
    +                    if (is_bool($arg)) {
    +                        $arg = (int) $arg;
    +                    } elseif (is_string($arg)) {
    +                        $arg = 0;
    +                    }
    +                    if ($returnValue === null) {
    +                        $returnValue = $arg;
    +                    } else {
    +                        $returnValue += $arg;
    +                    }
    +                    ++$aCount;
    +                }
    +            }
    +        }
    +
    +        if ($aCount > 0) {
    +            return $returnValue / $aCount;
    +        }
    +
    +        return Functions::DIV0();
    +    }
    +
    +    /**
    +     * AVERAGEIF.
    +     *
    +     * Returns the average value from a range of cells that contain numbers within the list of arguments
    +     *
    +     * Excel Function:
    +     *        AVERAGEIF(value1[,value2[, ...]],condition)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed $aArgs Data values
    +     * @param string $condition the criteria that defines which cells will be checked
    +     * @param mixed[] $averageArgs Data values
    +     *
    +     * @return float
    +     */
    +    public static function AVERAGEIF($aArgs, $condition, $averageArgs = [])
    +    {
    +        $returnValue = 0;
    +
    +        $aArgs = Functions::flattenArray($aArgs);
    +        $averageArgs = Functions::flattenArray($averageArgs);
    +        if (empty($averageArgs)) {
    +            $averageArgs = $aArgs;
    +        }
    +        $condition = Functions::ifCondition($condition);
    +        // Loop through arguments
    +        $aCount = 0;
    +        foreach ($aArgs as $key => $arg) {
    +            if (!is_numeric($arg)) {
    +                $arg = Calculation::wrapResult(strtoupper($arg));
    +            }
    +            $testCondition = '=' . $arg . $condition;
    +            if (Calculation::getInstance()->_calculateFormulaValue($testCondition)) {
    +                if (($returnValue === null) || ($arg > $returnValue)) {
    +                    $returnValue += $arg;
    +                    ++$aCount;
    +                }
    +            }
    +        }
    +
    +        if ($aCount > 0) {
    +            return $returnValue / $aCount;
    +        }
    +
    +        return Functions::DIV0();
    +    }
    +
    +    /**
    +     * BETADIST.
    +     *
    +     * Returns the beta distribution.
    +     *
    +     * @param float $value Value at which you want to evaluate the distribution
    +     * @param float $alpha Parameter to the distribution
    +     * @param float $beta Parameter to the distribution
    +     * @param mixed $rMin
    +     * @param mixed $rMax
    +     *
    +     * @return float
    +     */
    +    public static function BETADIST($value, $alpha, $beta, $rMin = 0, $rMax = 1)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $alpha = Functions::flattenSingleValue($alpha);
    +        $beta = Functions::flattenSingleValue($beta);
    +        $rMin = Functions::flattenSingleValue($rMin);
    +        $rMax = Functions::flattenSingleValue($rMax);
    +
    +        if ((is_numeric($value)) && (is_numeric($alpha)) && (is_numeric($beta)) && (is_numeric($rMin)) && (is_numeric($rMax))) {
    +            if (($value < $rMin) || ($value > $rMax) || ($alpha <= 0) || ($beta <= 0) || ($rMin == $rMax)) {
    +                return Functions::NAN();
    +            }
    +            if ($rMin > $rMax) {
    +                $tmp = $rMin;
    +                $rMin = $rMax;
    +                $rMax = $tmp;
    +            }
    +            $value -= $rMin;
    +            $value /= ($rMax - $rMin);
    +
    +            return self::incompleteBeta($value, $alpha, $beta);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * BETAINV.
    +     *
    +     * Returns the inverse of the beta distribution.
    +     *
    +     * @param float $probability Probability at which you want to evaluate the distribution
    +     * @param float $alpha Parameter to the distribution
    +     * @param float $beta Parameter to the distribution
    +     * @param float $rMin Minimum value
    +     * @param float $rMax Maximum value
    +     *
    +     * @return float
    +     */
    +    public static function BETAINV($probability, $alpha, $beta, $rMin = 0, $rMax = 1)
    +    {
    +        $probability = Functions::flattenSingleValue($probability);
    +        $alpha = Functions::flattenSingleValue($alpha);
    +        $beta = Functions::flattenSingleValue($beta);
    +        $rMin = Functions::flattenSingleValue($rMin);
    +        $rMax = Functions::flattenSingleValue($rMax);
    +
    +        if ((is_numeric($probability)) && (is_numeric($alpha)) && (is_numeric($beta)) && (is_numeric($rMin)) && (is_numeric($rMax))) {
    +            if (($alpha <= 0) || ($beta <= 0) || ($rMin == $rMax) || ($probability <= 0) || ($probability > 1)) {
    +                return Functions::NAN();
    +            }
    +            if ($rMin > $rMax) {
    +                $tmp = $rMin;
    +                $rMin = $rMax;
    +                $rMax = $tmp;
    +            }
    +            $a = 0;
    +            $b = 2;
    +
    +            $i = 0;
    +            while ((($b - $a) > Functions::PRECISION) && ($i++ < self::MAX_ITERATIONS)) {
    +                $guess = ($a + $b) / 2;
    +                $result = self::BETADIST($guess, $alpha, $beta);
    +                if (($result == $probability) || ($result == 0)) {
    +                    $b = $a;
    +                } elseif ($result > $probability) {
    +                    $b = $guess;
    +                } else {
    +                    $a = $guess;
    +                }
    +            }
    +            if ($i == self::MAX_ITERATIONS) {
    +                return Functions::NA();
    +            }
    +
    +            return round($rMin + $guess * ($rMax - $rMin), 12);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * BINOMDIST.
    +     *
    +     * Returns the individual term binomial distribution probability. Use BINOMDIST in problems with
    +     *        a fixed number of tests or trials, when the outcomes of any trial are only success or failure,
    +     *        when trials are independent, and when the probability of success is constant throughout the
    +     *        experiment. For example, BINOMDIST can calculate the probability that two of the next three
    +     *        babies born are male.
    +     *
    +     * @param float $value Number of successes in trials
    +     * @param float $trials Number of trials
    +     * @param float $probability Probability of success on each trial
    +     * @param bool $cumulative
    +     *
    +     * @return float
    +     *
    +     * @todo    Cumulative distribution function
    +     */
    +    public static function BINOMDIST($value, $trials, $probability, $cumulative)
    +    {
    +        $value = floor(Functions::flattenSingleValue($value));
    +        $trials = floor(Functions::flattenSingleValue($trials));
    +        $probability = Functions::flattenSingleValue($probability);
    +
    +        if ((is_numeric($value)) && (is_numeric($trials)) && (is_numeric($probability))) {
    +            if (($value < 0) || ($value > $trials)) {
    +                return Functions::NAN();
    +            }
    +            if (($probability < 0) || ($probability > 1)) {
    +                return Functions::NAN();
    +            }
    +            if ((is_numeric($cumulative)) || (is_bool($cumulative))) {
    +                if ($cumulative) {
    +                    $summer = 0;
    +                    for ($i = 0; $i <= $value; ++$i) {
    +                        $summer += MathTrig::COMBIN($trials, $i) * pow($probability, $i) * pow(1 - $probability, $trials - $i);
    +                    }
    +
    +                    return $summer;
    +                }
    +
    +                return MathTrig::COMBIN($trials, $value) * pow($probability, $value) * pow(1 - $probability, $trials - $value);
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * CHIDIST.
    +     *
    +     * Returns the one-tailed probability of the chi-squared distribution.
    +     *
    +     * @param float $value Value for the function
    +     * @param float $degrees degrees of freedom
    +     *
    +     * @return float
    +     */
    +    public static function CHIDIST($value, $degrees)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $degrees = floor(Functions::flattenSingleValue($degrees));
    +
    +        if ((is_numeric($value)) && (is_numeric($degrees))) {
    +            if ($degrees < 1) {
    +                return Functions::NAN();
    +            }
    +            if ($value < 0) {
    +                if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
    +                    return 1;
    +                }
    +
    +                return Functions::NAN();
    +            }
    +
    +            return 1 - (self::incompleteGamma($degrees / 2, $value / 2) / self::gamma($degrees / 2));
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * CHIINV.
    +     *
    +     * Returns the one-tailed probability of the chi-squared distribution.
    +     *
    +     * @param float $probability Probability for the function
    +     * @param float $degrees degrees of freedom
    +     *
    +     * @return float
    +     */
    +    public static function CHIINV($probability, $degrees)
    +    {
    +        $probability = Functions::flattenSingleValue($probability);
    +        $degrees = floor(Functions::flattenSingleValue($degrees));
    +
    +        if ((is_numeric($probability)) && (is_numeric($degrees))) {
    +            $xLo = 100;
    +            $xHi = 0;
    +
    +            $x = $xNew = 1;
    +            $dx = 1;
    +            $i = 0;
    +
    +            while ((abs($dx) > Functions::PRECISION) && ($i++ < self::MAX_ITERATIONS)) {
    +                // Apply Newton-Raphson step
    +                $result = self::CHIDIST($x, $degrees);
    +                $error = $result - $probability;
    +                if ($error == 0.0) {
    +                    $dx = 0;
    +                } elseif ($error < 0.0) {
    +                    $xLo = $x;
    +                } else {
    +                    $xHi = $x;
    +                }
    +                // Avoid division by zero
    +                if ($result != 0.0) {
    +                    $dx = $error / $result;
    +                    $xNew = $x - $dx;
    +                }
    +                // If the NR fails to converge (which for example may be the
    +                // case if the initial guess is too rough) we apply a bisection
    +                // step to determine a more narrow interval around the root.
    +                if (($xNew < $xLo) || ($xNew > $xHi) || ($result == 0.0)) {
    +                    $xNew = ($xLo + $xHi) / 2;
    +                    $dx = $xNew - $x;
    +                }
    +                $x = $xNew;
    +            }
    +            if ($i == self::MAX_ITERATIONS) {
    +                return Functions::NA();
    +            }
    +
    +            return round($x, 12);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * CONFIDENCE.
    +     *
    +     * Returns the confidence interval for a population mean
    +     *
    +     * @param float $alpha
    +     * @param float $stdDev Standard Deviation
    +     * @param float $size
    +     *
    +     * @return float
    +     */
    +    public static function CONFIDENCE($alpha, $stdDev, $size)
    +    {
    +        $alpha = Functions::flattenSingleValue($alpha);
    +        $stdDev = Functions::flattenSingleValue($stdDev);
    +        $size = floor(Functions::flattenSingleValue($size));
    +
    +        if ((is_numeric($alpha)) && (is_numeric($stdDev)) && (is_numeric($size))) {
    +            if (($alpha <= 0) || ($alpha >= 1)) {
    +                return Functions::NAN();
    +            }
    +            if (($stdDev <= 0) || ($size < 1)) {
    +                return Functions::NAN();
    +            }
    +
    +            return self::NORMSINV(1 - $alpha / 2) * $stdDev / sqrt($size);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * CORREL.
    +     *
    +     * Returns covariance, the average of the products of deviations for each data point pair.
    +     *
    +     * @param mixed $yValues array of mixed Data Series Y
    +     * @param null|mixed $xValues array of mixed Data Series X
    +     *
    +     * @return float
    +     */
    +    public static function CORREL($yValues, $xValues = null)
    +    {
    +        if (($xValues === null) || (!is_array($yValues)) || (!is_array($xValues))) {
    +            return Functions::VALUE();
    +        }
    +        if (!self::checkTrendArrays($yValues, $xValues)) {
    +            return Functions::VALUE();
    +        }
    +        $yValueCount = count($yValues);
    +        $xValueCount = count($xValues);
    +
    +        if (($yValueCount == 0) || ($yValueCount != $xValueCount)) {
    +            return Functions::NA();
    +        } elseif ($yValueCount == 1) {
    +            return Functions::DIV0();
    +        }
    +
    +        $bestFitLinear = Trend::calculate(Trend::TREND_LINEAR, $yValues, $xValues);
    +
    +        return $bestFitLinear->getCorrelation();
    +    }
    +
    +    /**
    +     * COUNT.
    +     *
    +     * Counts the number of cells that contain numbers within the list of arguments
    +     *
    +     * Excel Function:
    +     *        COUNT(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return int
    +     */
    +    public static function COUNT(...$args)
    +    {
    +        $returnValue = 0;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +        foreach ($aArgs as $k => $arg) {
    +            if ((is_bool($arg)) &&
    +                ((!Functions::isCellValue($k)) || (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE))) {
    +                $arg = (int) $arg;
    +            }
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                ++$returnValue;
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * COUNTA.
    +     *
    +     * Counts the number of cells that are not empty within the list of arguments
    +     *
    +     * Excel Function:
    +     *        COUNTA(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return int
    +     */
    +    public static function COUNTA(...$args)
    +    {
    +        $returnValue = 0;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        foreach ($aArgs as $arg) {
    +            // Is it a numeric, boolean or string value?
    +            if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) {
    +                ++$returnValue;
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * COUNTBLANK.
    +     *
    +     * Counts the number of empty cells within the list of arguments
    +     *
    +     * Excel Function:
    +     *        COUNTBLANK(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return int
    +     */
    +    public static function COUNTBLANK(...$args)
    +    {
    +        $returnValue = 0;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        foreach ($aArgs as $arg) {
    +            // Is it a blank cell?
    +            if (($arg === null) || ((is_string($arg)) && ($arg == ''))) {
    +                ++$returnValue;
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * COUNTIF.
    +     *
    +     * Counts the number of cells that contain numbers within the list of arguments
    +     *
    +     * Excel Function:
    +     *        COUNTIF(value1[,value2[, ...]],condition)
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed $aArgs Data values
    +     * @param string $condition the criteria that defines which cells will be counted
    +     *
    +     * @return int
    +     */
    +    public static function COUNTIF($aArgs, $condition)
    +    {
    +        $returnValue = 0;
    +
    +        $aArgs = Functions::flattenArray($aArgs);
    +        $condition = Functions::ifCondition($condition);
    +        // Loop through arguments
    +        foreach ($aArgs as $arg) {
    +            if (!is_numeric($arg)) {
    +                $arg = Calculation::wrapResult(strtoupper($arg));
    +            }
    +            $testCondition = '=' . $arg . $condition;
    +            if (Calculation::getInstance()->_calculateFormulaValue($testCondition)) {
    +                // Is it a value within our criteria
    +                ++$returnValue;
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * COVAR.
    +     *
    +     * Returns covariance, the average of the products of deviations for each data point pair.
    +     *
    +     * @param mixed $yValues array of mixed Data Series Y
    +     * @param mixed $xValues array of mixed Data Series X
    +     *
    +     * @return float
    +     */
    +    public static function COVAR($yValues, $xValues)
    +    {
    +        if (!self::checkTrendArrays($yValues, $xValues)) {
    +            return Functions::VALUE();
    +        }
    +        $yValueCount = count($yValues);
    +        $xValueCount = count($xValues);
    +
    +        if (($yValueCount == 0) || ($yValueCount != $xValueCount)) {
    +            return Functions::NA();
    +        } elseif ($yValueCount == 1) {
    +            return Functions::DIV0();
    +        }
    +
    +        $bestFitLinear = Trend::calculate(Trend::TREND_LINEAR, $yValues, $xValues);
    +
    +        return $bestFitLinear->getCovariance();
    +    }
    +
    +    /**
    +     * CRITBINOM.
    +     *
    +     * Returns the smallest value for which the cumulative binomial distribution is greater
    +     *        than or equal to a criterion value
    +     *
    +     * See https://support.microsoft.com/en-us/help/828117/ for details of the algorithm used
    +     *
    +     * @param float $trials number of Bernoulli trials
    +     * @param float $probability probability of a success on each trial
    +     * @param float $alpha criterion value
    +     *
    +     * @return int
    +     *
    +     * @todo    Warning. This implementation differs from the algorithm detailed on the MS
    +     *            web site in that $CumPGuessMinus1 = $CumPGuess - 1 rather than $CumPGuess - $PGuess
    +     *            This eliminates a potential endless loop error, but may have an adverse affect on the
    +     *            accuracy of the function (although all my tests have so far returned correct results).
    +     */
    +    public static function CRITBINOM($trials, $probability, $alpha)
    +    {
    +        $trials = floor(Functions::flattenSingleValue($trials));
    +        $probability = Functions::flattenSingleValue($probability);
    +        $alpha = Functions::flattenSingleValue($alpha);
    +
    +        if ((is_numeric($trials)) && (is_numeric($probability)) && (is_numeric($alpha))) {
    +            if ($trials < 0) {
    +                return Functions::NAN();
    +            } elseif (($probability < 0) || ($probability > 1)) {
    +                return Functions::NAN();
    +            } elseif (($alpha < 0) || ($alpha > 1)) {
    +                return Functions::NAN();
    +            } elseif ($alpha <= 0.5) {
    +                $t = sqrt(log(1 / ($alpha * $alpha)));
    +                $trialsApprox = 0 - ($t + (2.515517 + 0.802853 * $t + 0.010328 * $t * $t) / (1 + 1.432788 * $t + 0.189269 * $t * $t + 0.001308 * $t * $t * $t));
    +            } else {
    +                $t = sqrt(log(1 / pow(1 - $alpha, 2)));
    +                $trialsApprox = $t - (2.515517 + 0.802853 * $t + 0.010328 * $t * $t) / (1 + 1.432788 * $t + 0.189269 * $t * $t + 0.001308 * $t * $t * $t);
    +            }
    +            $Guess = floor($trials * $probability + $trialsApprox * sqrt($trials * $probability * (1 - $probability)));
    +            if ($Guess < 0) {
    +                $Guess = 0;
    +            } elseif ($Guess > $trials) {
    +                $Guess = $trials;
    +            }
    +
    +            $TotalUnscaledProbability = $UnscaledPGuess = $UnscaledCumPGuess = 0.0;
    +            $EssentiallyZero = 10e-12;
    +
    +            $m = floor($trials * $probability);
    +            ++$TotalUnscaledProbability;
    +            if ($m == $Guess) {
    +                ++$UnscaledPGuess;
    +            }
    +            if ($m <= $Guess) {
    +                ++$UnscaledCumPGuess;
    +            }
    +
    +            $PreviousValue = 1;
    +            $Done = false;
    +            $k = $m + 1;
    +            while ((!$Done) && ($k <= $trials)) {
    +                $CurrentValue = $PreviousValue * ($trials - $k + 1) * $probability / ($k * (1 - $probability));
    +                $TotalUnscaledProbability += $CurrentValue;
    +                if ($k == $Guess) {
    +                    $UnscaledPGuess += $CurrentValue;
    +                }
    +                if ($k <= $Guess) {
    +                    $UnscaledCumPGuess += $CurrentValue;
    +                }
    +                if ($CurrentValue <= $EssentiallyZero) {
    +                    $Done = true;
    +                }
    +                $PreviousValue = $CurrentValue;
    +                ++$k;
    +            }
    +
    +            $PreviousValue = 1;
    +            $Done = false;
    +            $k = $m - 1;
    +            while ((!$Done) && ($k >= 0)) {
    +                $CurrentValue = $PreviousValue * $k + 1 * (1 - $probability) / (($trials - $k) * $probability);
    +                $TotalUnscaledProbability += $CurrentValue;
    +                if ($k == $Guess) {
    +                    $UnscaledPGuess += $CurrentValue;
    +                }
    +                if ($k <= $Guess) {
    +                    $UnscaledCumPGuess += $CurrentValue;
    +                }
    +                if ($CurrentValue <= $EssentiallyZero) {
    +                    $Done = true;
    +                }
    +                $PreviousValue = $CurrentValue;
    +                --$k;
    +            }
    +
    +            $PGuess = $UnscaledPGuess / $TotalUnscaledProbability;
    +            $CumPGuess = $UnscaledCumPGuess / $TotalUnscaledProbability;
    +
    +            $CumPGuessMinus1 = $CumPGuess - 1;
    +
    +            while (true) {
    +                if (($CumPGuessMinus1 < $alpha) && ($CumPGuess >= $alpha)) {
    +                    return $Guess;
    +                } elseif (($CumPGuessMinus1 < $alpha) && ($CumPGuess < $alpha)) {
    +                    $PGuessPlus1 = $PGuess * ($trials - $Guess) * $probability / $Guess / (1 - $probability);
    +                    $CumPGuessMinus1 = $CumPGuess;
    +                    $CumPGuess = $CumPGuess + $PGuessPlus1;
    +                    $PGuess = $PGuessPlus1;
    +                    ++$Guess;
    +                } elseif (($CumPGuessMinus1 >= $alpha) && ($CumPGuess >= $alpha)) {
    +                    $PGuessMinus1 = $PGuess * $Guess * (1 - $probability) / ($trials - $Guess + 1) / $probability;
    +                    $CumPGuess = $CumPGuessMinus1;
    +                    $CumPGuessMinus1 = $CumPGuessMinus1 - $PGuess;
    +                    $PGuess = $PGuessMinus1;
    +                    --$Guess;
    +                }
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * DEVSQ.
    +     *
    +     * Returns the sum of squares of deviations of data points from their sample mean.
    +     *
    +     * Excel Function:
    +     *        DEVSQ(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function DEVSQ(...$args)
    +    {
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +
    +        // Return value
    +        $returnValue = null;
    +
    +        $aMean = self::AVERAGE($aArgs);
    +        if ($aMean != Functions::DIV0()) {
    +            $aCount = -1;
    +            foreach ($aArgs as $k => $arg) {
    +                // Is it a numeric value?
    +                if ((is_bool($arg)) &&
    +                    ((!Functions::isCellValue($k)) ||
    +                    (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE))) {
    +                    $arg = (int) $arg;
    +                }
    +                if ((is_numeric($arg)) && (!is_string($arg))) {
    +                    if ($returnValue === null) {
    +                        $returnValue = pow(($arg - $aMean), 2);
    +                    } else {
    +                        $returnValue += pow(($arg - $aMean), 2);
    +                    }
    +                    ++$aCount;
    +                }
    +            }
    +
    +            // Return
    +            if ($returnValue === null) {
    +                return Functions::NAN();
    +            }
    +
    +            return $returnValue;
    +        }
    +
    +        return self::NA();
    +    }
    +
    +    /**
    +     * EXPONDIST.
    +     *
    +     *    Returns the exponential distribution. Use EXPONDIST to model the time between events,
    +     *        such as how long an automated bank teller takes to deliver cash. For example, you can
    +     *        use EXPONDIST to determine the probability that the process takes at most 1 minute.
    +     *
    +     * @param float $value Value of the function
    +     * @param float $lambda The parameter value
    +     * @param bool $cumulative
    +     *
    +     * @return float
    +     */
    +    public static function EXPONDIST($value, $lambda, $cumulative)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $lambda = Functions::flattenSingleValue($lambda);
    +        $cumulative = Functions::flattenSingleValue($cumulative);
    +
    +        if ((is_numeric($value)) && (is_numeric($lambda))) {
    +            if (($value < 0) || ($lambda < 0)) {
    +                return Functions::NAN();
    +            }
    +            if ((is_numeric($cumulative)) || (is_bool($cumulative))) {
    +                if ($cumulative) {
    +                    return 1 - exp(0 - $value * $lambda);
    +                }
    +
    +                return $lambda * exp(0 - $value * $lambda);
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * FISHER.
    +     *
    +     * Returns the Fisher transformation at x. This transformation produces a function that
    +     *        is normally distributed rather than skewed. Use this function to perform hypothesis
    +     *        testing on the correlation coefficient.
    +     *
    +     * @param float $value
    +     *
    +     * @return float
    +     */
    +    public static function FISHER($value)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +
    +        if (is_numeric($value)) {
    +            if (($value <= -1) || ($value >= 1)) {
    +                return Functions::NAN();
    +            }
    +
    +            return 0.5 * log((1 + $value) / (1 - $value));
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * FISHERINV.
    +     *
    +     * Returns the inverse of the Fisher transformation. Use this transformation when
    +     *        analyzing correlations between ranges or arrays of data. If y = FISHER(x), then
    +     *        FISHERINV(y) = x.
    +     *
    +     * @param float $value
    +     *
    +     * @return float
    +     */
    +    public static function FISHERINV($value)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +
    +        if (is_numeric($value)) {
    +            return (exp(2 * $value) - 1) / (exp(2 * $value) + 1);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * FORECAST.
    +     *
    +     * Calculates, or predicts, a future value by using existing values. The predicted value is a y-value for a given x-value.
    +     *
    +     * @param float $xValue Value of X for which we want to find Y
    +     * @param mixed $yValues array of mixed Data Series Y
    +     * @param mixed $xValues of mixed Data Series X
    +     *
    +     * @return float
    +     */
    +    public static function FORECAST($xValue, $yValues, $xValues)
    +    {
    +        $xValue = Functions::flattenSingleValue($xValue);
    +        if (!is_numeric($xValue)) {
    +            return Functions::VALUE();
    +        } elseif (!self::checkTrendArrays($yValues, $xValues)) {
    +            return Functions::VALUE();
    +        }
    +        $yValueCount = count($yValues);
    +        $xValueCount = count($xValues);
    +
    +        if (($yValueCount == 0) || ($yValueCount != $xValueCount)) {
    +            return Functions::NA();
    +        } elseif ($yValueCount == 1) {
    +            return Functions::DIV0();
    +        }
    +
    +        $bestFitLinear = Trend::calculate(Trend::TREND_LINEAR, $yValues, $xValues);
    +
    +        return $bestFitLinear->getValueOfYForX($xValue);
    +    }
    +
    +    /**
    +     * GAMMADIST.
    +     *
    +     * Returns the gamma distribution.
    +     *
    +     * @param float $value Value at which you want to evaluate the distribution
    +     * @param float $a Parameter to the distribution
    +     * @param float $b Parameter to the distribution
    +     * @param bool $cumulative
    +     *
    +     * @return float
    +     */
    +    public static function GAMMADIST($value, $a, $b, $cumulative)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $a = Functions::flattenSingleValue($a);
    +        $b = Functions::flattenSingleValue($b);
    +
    +        if ((is_numeric($value)) && (is_numeric($a)) && (is_numeric($b))) {
    +            if (($value < 0) || ($a <= 0) || ($b <= 0)) {
    +                return Functions::NAN();
    +            }
    +            if ((is_numeric($cumulative)) || (is_bool($cumulative))) {
    +                if ($cumulative) {
    +                    return self::incompleteGamma($a, $value / $b) / self::gamma($a);
    +                }
    +
    +                return (1 / (pow($b, $a) * self::gamma($a))) * pow($value, $a - 1) * exp(0 - ($value / $b));
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * GAMMAINV.
    +     *
    +     * Returns the inverse of the beta distribution.
    +     *
    +     * @param float $probability Probability at which you want to evaluate the distribution
    +     * @param float $alpha Parameter to the distribution
    +     * @param float $beta Parameter to the distribution
    +     *
    +     * @return float
    +     */
    +    public static function GAMMAINV($probability, $alpha, $beta)
    +    {
    +        $probability = Functions::flattenSingleValue($probability);
    +        $alpha = Functions::flattenSingleValue($alpha);
    +        $beta = Functions::flattenSingleValue($beta);
    +
    +        if ((is_numeric($probability)) && (is_numeric($alpha)) && (is_numeric($beta))) {
    +            if (($alpha <= 0) || ($beta <= 0) || ($probability < 0) || ($probability > 1)) {
    +                return Functions::NAN();
    +            }
    +
    +            $xLo = 0;
    +            $xHi = $alpha * $beta * 5;
    +
    +            $x = $xNew = 1;
    +            $error = $pdf = 0;
    +            $dx = 1024;
    +            $i = 0;
    +
    +            while ((abs($dx) > Functions::PRECISION) && ($i++ < self::MAX_ITERATIONS)) {
    +                // Apply Newton-Raphson step
    +                $error = self::GAMMADIST($x, $alpha, $beta, true) - $probability;
    +                if ($error < 0.0) {
    +                    $xLo = $x;
    +                } else {
    +                    $xHi = $x;
    +                }
    +                $pdf = self::GAMMADIST($x, $alpha, $beta, false);
    +                // Avoid division by zero
    +                if ($pdf != 0.0) {
    +                    $dx = $error / $pdf;
    +                    $xNew = $x - $dx;
    +                }
    +                // If the NR fails to converge (which for example may be the
    +                // case if the initial guess is too rough) we apply a bisection
    +                // step to determine a more narrow interval around the root.
    +                if (($xNew < $xLo) || ($xNew > $xHi) || ($pdf == 0.0)) {
    +                    $xNew = ($xLo + $xHi) / 2;
    +                    $dx = $xNew - $x;
    +                }
    +                $x = $xNew;
    +            }
    +            if ($i == self::MAX_ITERATIONS) {
    +                return Functions::NA();
    +            }
    +
    +            return $x;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * GAMMALN.
    +     *
    +     * Returns the natural logarithm of the gamma function.
    +     *
    +     * @param float $value
    +     *
    +     * @return float
    +     */
    +    public static function GAMMALN($value)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +
    +        if (is_numeric($value)) {
    +            if ($value <= 0) {
    +                return Functions::NAN();
    +            }
    +
    +            return log(self::gamma($value));
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * GEOMEAN.
    +     *
    +     * Returns the geometric mean of an array or range of positive data. For example, you
    +     *        can use GEOMEAN to calculate average growth rate given compound interest with
    +     *        variable rates.
    +     *
    +     * Excel Function:
    +     *        GEOMEAN(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function GEOMEAN(...$args)
    +    {
    +        $aArgs = Functions::flattenArray($args);
    +
    +        $aMean = MathTrig::PRODUCT($aArgs);
    +        if (is_numeric($aMean) && ($aMean > 0)) {
    +            $aCount = self::COUNT($aArgs);
    +            if (self::MIN($aArgs) > 0) {
    +                return pow($aMean, (1 / $aCount));
    +            }
    +        }
    +
    +        return Functions::NAN();
    +    }
    +
    +    /**
    +     * GROWTH.
    +     *
    +     * Returns values along a predicted emponential Trend
    +     *
    +     * @param mixed[] $yValues Data Series Y
    +     * @param mixed[] $xValues Data Series X
    +     * @param mixed[] $newValues Values of X for which we want to find Y
    +     * @param bool $const a logical value specifying whether to force the intersect to equal 0
    +     *
    +     * @return array of float
    +     */
    +    public static function GROWTH($yValues, $xValues = [], $newValues = [], $const = true)
    +    {
    +        $yValues = Functions::flattenArray($yValues);
    +        $xValues = Functions::flattenArray($xValues);
    +        $newValues = Functions::flattenArray($newValues);
    +        $const = ($const === null) ? true : (bool) Functions::flattenSingleValue($const);
    +
    +        $bestFitExponential = Trend::calculate(Trend::TREND_EXPONENTIAL, $yValues, $xValues, $const);
    +        if (empty($newValues)) {
    +            $newValues = $bestFitExponential->getXValues();
    +        }
    +
    +        $returnArray = [];
    +        foreach ($newValues as $xValue) {
    +            $returnArray[0][] = $bestFitExponential->getValueOfYForX($xValue);
    +        }
    +
    +        return $returnArray;
    +    }
    +
    +    /**
    +     * HARMEAN.
    +     *
    +     * Returns the harmonic mean of a data set. The harmonic mean is the reciprocal of the
    +     *        arithmetic mean of reciprocals.
    +     *
    +     * Excel Function:
    +     *        HARMEAN(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function HARMEAN(...$args)
    +    {
    +        // Return value
    +        $returnValue = Functions::NA();
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        if (self::MIN($aArgs) < 0) {
    +            return Functions::NAN();
    +        }
    +        $aCount = 0;
    +        foreach ($aArgs as $arg) {
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                if ($arg <= 0) {
    +                    return Functions::NAN();
    +                }
    +                if ($returnValue === null) {
    +                    $returnValue = (1 / $arg);
    +                } else {
    +                    $returnValue += (1 / $arg);
    +                }
    +                ++$aCount;
    +            }
    +        }
    +
    +        // Return
    +        if ($aCount > 0) {
    +            return 1 / ($returnValue / $aCount);
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * HYPGEOMDIST.
    +     *
    +     * Returns the hypergeometric distribution. HYPGEOMDIST returns the probability of a given number of
    +     * sample successes, given the sample size, population successes, and population size.
    +     *
    +     * @param float $sampleSuccesses Number of successes in the sample
    +     * @param float $sampleNumber Size of the sample
    +     * @param float $populationSuccesses Number of successes in the population
    +     * @param float $populationNumber Population size
    +     *
    +     * @return float
    +     */
    +    public static function HYPGEOMDIST($sampleSuccesses, $sampleNumber, $populationSuccesses, $populationNumber)
    +    {
    +        $sampleSuccesses = floor(Functions::flattenSingleValue($sampleSuccesses));
    +        $sampleNumber = floor(Functions::flattenSingleValue($sampleNumber));
    +        $populationSuccesses = floor(Functions::flattenSingleValue($populationSuccesses));
    +        $populationNumber = floor(Functions::flattenSingleValue($populationNumber));
    +
    +        if ((is_numeric($sampleSuccesses)) && (is_numeric($sampleNumber)) && (is_numeric($populationSuccesses)) && (is_numeric($populationNumber))) {
    +            if (($sampleSuccesses < 0) || ($sampleSuccesses > $sampleNumber) || ($sampleSuccesses > $populationSuccesses)) {
    +                return Functions::NAN();
    +            }
    +            if (($sampleNumber <= 0) || ($sampleNumber > $populationNumber)) {
    +                return Functions::NAN();
    +            }
    +            if (($populationSuccesses <= 0) || ($populationSuccesses > $populationNumber)) {
    +                return Functions::NAN();
    +            }
    +
    +            return MathTrig::COMBIN($populationSuccesses, $sampleSuccesses) *
    +                   MathTrig::COMBIN($populationNumber - $populationSuccesses, $sampleNumber - $sampleSuccesses) /
    +                   MathTrig::COMBIN($populationNumber, $sampleNumber);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * INTERCEPT.
    +     *
    +     * Calculates the point at which a line will intersect the y-axis by using existing x-values and y-values.
    +     *
    +     * @param mixed[] $yValues Data Series Y
    +     * @param mixed[] $xValues Data Series X
    +     *
    +     * @return float
    +     */
    +    public static function INTERCEPT($yValues, $xValues)
    +    {
    +        if (!self::checkTrendArrays($yValues, $xValues)) {
    +            return Functions::VALUE();
    +        }
    +        $yValueCount = count($yValues);
    +        $xValueCount = count($xValues);
    +
    +        if (($yValueCount == 0) || ($yValueCount != $xValueCount)) {
    +            return Functions::NA();
    +        } elseif ($yValueCount == 1) {
    +            return Functions::DIV0();
    +        }
    +
    +        $bestFitLinear = Trend::calculate(Trend::TREND_LINEAR, $yValues, $xValues);
    +
    +        return $bestFitLinear->getIntersect();
    +    }
    +
    +    /**
    +     * KURT.
    +     *
    +     * Returns the kurtosis of a data set. Kurtosis characterizes the relative peakedness
    +     * or flatness of a distribution compared with the normal distribution. Positive
    +     * kurtosis indicates a relatively peaked distribution. Negative kurtosis indicates a
    +     * relatively flat distribution.
    +     *
    +     * @param array ...$args Data Series
    +     *
    +     * @return float
    +     */
    +    public static function KURT(...$args)
    +    {
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +        $mean = self::AVERAGE($aArgs);
    +        $stdDev = self::STDEV($aArgs);
    +
    +        if ($stdDev > 0) {
    +            $count = $summer = 0;
    +            // Loop through arguments
    +            foreach ($aArgs as $k => $arg) {
    +                if ((is_bool($arg)) &&
    +                    (!Functions::isMatrixValue($k))) {
    +                } else {
    +                    // Is it a numeric value?
    +                    if ((is_numeric($arg)) && (!is_string($arg))) {
    +                        $summer += pow((($arg - $mean) / $stdDev), 4);
    +                        ++$count;
    +                    }
    +                }
    +            }
    +
    +            // Return
    +            if ($count > 3) {
    +                return $summer * ($count * ($count + 1) / (($count - 1) * ($count - 2) * ($count - 3))) - (3 * pow($count - 1, 2) / (($count - 2) * ($count - 3)));
    +            }
    +        }
    +
    +        return Functions::DIV0();
    +    }
    +
    +    /**
    +     * LARGE.
    +     *
    +     * Returns the nth largest value in a data set. You can use this function to
    +     *        select a value based on its relative standing.
    +     *
    +     * Excel Function:
    +     *        LARGE(value1[,value2[, ...]],entry)
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed $args Data values
    +     * @param int $entry Position (ordered from the largest) in the array or range of data to return
    +     *
    +     * @return float
    +     */
    +    public static function LARGE(...$args)
    +    {
    +        $aArgs = Functions::flattenArray($args);
    +
    +        // Calculate
    +        $entry = floor(array_pop($aArgs));
    +
    +        if ((is_numeric($entry)) && (!is_string($entry))) {
    +            $mArgs = [];
    +            foreach ($aArgs as $arg) {
    +                // Is it a numeric value?
    +                if ((is_numeric($arg)) && (!is_string($arg))) {
    +                    $mArgs[] = $arg;
    +                }
    +            }
    +            $count = self::COUNT($mArgs);
    +            $entry = floor(--$entry);
    +            if (($entry < 0) || ($entry >= $count) || ($count == 0)) {
    +                return Functions::NAN();
    +            }
    +            rsort($mArgs);
    +
    +            return $mArgs[$entry];
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * LINEST.
    +     *
    +     * Calculates the statistics for a line by using the "least squares" method to calculate a straight line that best fits your data,
    +     *        and then returns an array that describes the line.
    +     *
    +     * @param mixed[] $yValues Data Series Y
    +     * @param null|mixed[] $xValues Data Series X
    +     * @param bool $const a logical value specifying whether to force the intersect to equal 0
    +     * @param bool $stats a logical value specifying whether to return additional regression statistics
    +     *
    +     * @return array
    +     */
    +    public static function LINEST($yValues, $xValues = null, $const = true, $stats = false)
    +    {
    +        $const = ($const === null) ? true : (bool) Functions::flattenSingleValue($const);
    +        $stats = ($stats === null) ? false : (bool) Functions::flattenSingleValue($stats);
    +        if ($xValues === null) {
    +            $xValues = range(1, count(Functions::flattenArray($yValues)));
    +        }
    +
    +        if (!self::checkTrendArrays($yValues, $xValues)) {
    +            return Functions::VALUE();
    +        }
    +        $yValueCount = count($yValues);
    +        $xValueCount = count($xValues);
    +
    +        if (($yValueCount == 0) || ($yValueCount != $xValueCount)) {
    +            return Functions::NA();
    +        } elseif ($yValueCount == 1) {
    +            return 0;
    +        }
    +
    +        $bestFitLinear = Trend::calculate(Trend::TREND_LINEAR, $yValues, $xValues, $const);
    +        if ($stats) {
    +            return [
    +                [
    +                    $bestFitLinear->getSlope(),
    +                    $bestFitLinear->getSlopeSE(),
    +                    $bestFitLinear->getGoodnessOfFit(),
    +                    $bestFitLinear->getF(),
    +                    $bestFitLinear->getSSRegression(),
    +                ],
    +                [
    +                    $bestFitLinear->getIntersect(),
    +                    $bestFitLinear->getIntersectSE(),
    +                    $bestFitLinear->getStdevOfResiduals(),
    +                    $bestFitLinear->getDFResiduals(),
    +                    $bestFitLinear->getSSResiduals(),
    +                ],
    +            ];
    +        }
    +
    +        return [
    +                $bestFitLinear->getSlope(),
    +                $bestFitLinear->getIntersect(),
    +            ];
    +    }
    +
    +    /**
    +     * LOGEST.
    +     *
    +     * Calculates an exponential curve that best fits the X and Y data series,
    +     *        and then returns an array that describes the line.
    +     *
    +     * @param mixed[] $yValues Data Series Y
    +     * @param null|mixed[] $xValues Data Series X
    +     * @param bool $const a logical value specifying whether to force the intersect to equal 0
    +     * @param bool $stats a logical value specifying whether to return additional regression statistics
    +     *
    +     * @return array
    +     */
    +    public static function LOGEST($yValues, $xValues = null, $const = true, $stats = false)
    +    {
    +        $const = ($const === null) ? true : (bool) Functions::flattenSingleValue($const);
    +        $stats = ($stats === null) ? false : (bool) Functions::flattenSingleValue($stats);
    +        if ($xValues === null) {
    +            $xValues = range(1, count(Functions::flattenArray($yValues)));
    +        }
    +
    +        if (!self::checkTrendArrays($yValues, $xValues)) {
    +            return Functions::VALUE();
    +        }
    +        $yValueCount = count($yValues);
    +        $xValueCount = count($xValues);
    +
    +        foreach ($yValues as $value) {
    +            if ($value <= 0.0) {
    +                return Functions::NAN();
    +            }
    +        }
    +
    +        if (($yValueCount == 0) || ($yValueCount != $xValueCount)) {
    +            return Functions::NA();
    +        } elseif ($yValueCount == 1) {
    +            return 1;
    +        }
    +
    +        $bestFitExponential = Trend::calculate(Trend::TREND_EXPONENTIAL, $yValues, $xValues, $const);
    +        if ($stats) {
    +            return [
    +                [
    +                    $bestFitExponential->getSlope(),
    +                    $bestFitExponential->getSlopeSE(),
    +                    $bestFitExponential->getGoodnessOfFit(),
    +                    $bestFitExponential->getF(),
    +                    $bestFitExponential->getSSRegression(),
    +                ],
    +                [
    +                    $bestFitExponential->getIntersect(),
    +                    $bestFitExponential->getIntersectSE(),
    +                    $bestFitExponential->getStdevOfResiduals(),
    +                    $bestFitExponential->getDFResiduals(),
    +                    $bestFitExponential->getSSResiduals(),
    +                ],
    +            ];
    +        }
    +
    +        return [
    +                $bestFitExponential->getSlope(),
    +                $bestFitExponential->getIntersect(),
    +            ];
    +    }
    +
    +    /**
    +     * LOGINV.
    +     *
    +     * Returns the inverse of the normal cumulative distribution
    +     *
    +     * @param float $probability
    +     * @param float $mean
    +     * @param float $stdDev
    +     *
    +     * @return float
    +     *
    +     * @todo    Try implementing P J Acklam's refinement algorithm for greater
    +     *            accuracy if I can get my head round the mathematics
    +     *            (as described at) http://home.online.no/~pjacklam/notes/invnorm/
    +     */
    +    public static function LOGINV($probability, $mean, $stdDev)
    +    {
    +        $probability = Functions::flattenSingleValue($probability);
    +        $mean = Functions::flattenSingleValue($mean);
    +        $stdDev = Functions::flattenSingleValue($stdDev);
    +
    +        if ((is_numeric($probability)) && (is_numeric($mean)) && (is_numeric($stdDev))) {
    +            if (($probability < 0) || ($probability > 1) || ($stdDev <= 0)) {
    +                return Functions::NAN();
    +            }
    +
    +            return exp($mean + $stdDev * self::NORMSINV($probability));
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * LOGNORMDIST.
    +     *
    +     * Returns the cumulative lognormal distribution of x, where ln(x) is normally distributed
    +     * with parameters mean and standard_dev.
    +     *
    +     * @param float $value
    +     * @param float $mean
    +     * @param float $stdDev
    +     *
    +     * @return float
    +     */
    +    public static function LOGNORMDIST($value, $mean, $stdDev)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $mean = Functions::flattenSingleValue($mean);
    +        $stdDev = Functions::flattenSingleValue($stdDev);
    +
    +        if ((is_numeric($value)) && (is_numeric($mean)) && (is_numeric($stdDev))) {
    +            if (($value <= 0) || ($stdDev <= 0)) {
    +                return Functions::NAN();
    +            }
    +
    +            return self::NORMSDIST((log($value) - $mean) / $stdDev);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * MAX.
    +     *
    +     * MAX returns the value of the element of the values passed that has the highest value,
    +     *        with negative numbers considered smaller than positive numbers.
    +     *
    +     * Excel Function:
    +     *        MAX(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function MAX(...$args)
    +    {
    +        $returnValue = null;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        foreach ($aArgs as $arg) {
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                if (($returnValue === null) || ($arg > $returnValue)) {
    +                    $returnValue = $arg;
    +                }
    +            }
    +        }
    +
    +        if ($returnValue === null) {
    +            return 0;
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * MAXA.
    +     *
    +     * Returns the greatest value in a list of arguments, including numbers, text, and logical values
    +     *
    +     * Excel Function:
    +     *        MAXA(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function MAXA(...$args)
    +    {
    +        $returnValue = null;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        foreach ($aArgs as $arg) {
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) {
    +                if (is_bool($arg)) {
    +                    $arg = (int) $arg;
    +                } elseif (is_string($arg)) {
    +                    $arg = 0;
    +                }
    +                if (($returnValue === null) || ($arg > $returnValue)) {
    +                    $returnValue = $arg;
    +                }
    +            }
    +        }
    +
    +        if ($returnValue === null) {
    +            return 0;
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * MAXIF.
    +     *
    +     * Counts the maximum value within a range of cells that contain numbers within the list of arguments
    +     *
    +     * Excel Function:
    +     *        MAXIF(value1[,value2[, ...]],condition)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed $aArgs Data values
    +     * @param string $condition the criteria that defines which cells will be checked
    +     * @param mixed $sumArgs
    +     *
    +     * @return float
    +     */
    +    public static function MAXIF($aArgs, $condition, $sumArgs = [])
    +    {
    +        $returnValue = null;
    +
    +        $aArgs = Functions::flattenArray($aArgs);
    +        $sumArgs = Functions::flattenArray($sumArgs);
    +        if (empty($sumArgs)) {
    +            $sumArgs = $aArgs;
    +        }
    +        $condition = Functions::ifCondition($condition);
    +        // Loop through arguments
    +        foreach ($aArgs as $key => $arg) {
    +            if (!is_numeric($arg)) {
    +                $arg = Calculation::wrapResult(strtoupper($arg));
    +            }
    +            $testCondition = '=' . $arg . $condition;
    +            if (Calculation::getInstance()->_calculateFormulaValue($testCondition)) {
    +                if (($returnValue === null) || ($arg > $returnValue)) {
    +                    $returnValue = $arg;
    +                }
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * MEDIAN.
    +     *
    +     * Returns the median of the given numbers. The median is the number in the middle of a set of numbers.
    +     *
    +     * Excel Function:
    +     *        MEDIAN(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function MEDIAN(...$args)
    +    {
    +        $returnValue = Functions::NAN();
    +
    +        $mArgs = [];
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        foreach ($aArgs as $arg) {
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                $mArgs[] = $arg;
    +            }
    +        }
    +
    +        $mValueCount = count($mArgs);
    +        if ($mValueCount > 0) {
    +            sort($mArgs, SORT_NUMERIC);
    +            $mValueCount = $mValueCount / 2;
    +            if ($mValueCount == floor($mValueCount)) {
    +                $returnValue = ($mArgs[$mValueCount--] + $mArgs[$mValueCount]) / 2;
    +            } else {
    +                $mValueCount = floor($mValueCount);
    +                $returnValue = $mArgs[$mValueCount];
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * MIN.
    +     *
    +     * MIN returns the value of the element of the values passed that has the smallest value,
    +     *        with negative numbers considered smaller than positive numbers.
    +     *
    +     * Excel Function:
    +     *        MIN(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function MIN(...$args)
    +    {
    +        $returnValue = null;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        foreach ($aArgs as $arg) {
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                if (($returnValue === null) || ($arg < $returnValue)) {
    +                    $returnValue = $arg;
    +                }
    +            }
    +        }
    +
    +        if ($returnValue === null) {
    +            return 0;
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * MINA.
    +     *
    +     * Returns the smallest value in a list of arguments, including numbers, text, and logical values
    +     *
    +     * Excel Function:
    +     *        MINA(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function MINA(...$args)
    +    {
    +        $returnValue = null;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        foreach ($aArgs as $arg) {
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) && ($arg != '')))) {
    +                if (is_bool($arg)) {
    +                    $arg = (int) $arg;
    +                } elseif (is_string($arg)) {
    +                    $arg = 0;
    +                }
    +                if (($returnValue === null) || ($arg < $returnValue)) {
    +                    $returnValue = $arg;
    +                }
    +            }
    +        }
    +
    +        if ($returnValue === null) {
    +            return 0;
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * MINIF.
    +     *
    +     * Returns the minimum value within a range of cells that contain numbers within the list of arguments
    +     *
    +     * Excel Function:
    +     *        MINIF(value1[,value2[, ...]],condition)
    +     *
    +     * @category Mathematical and Trigonometric Functions
    +     *
    +     * @param mixed $aArgs Data values
    +     * @param string $condition the criteria that defines which cells will be checked
    +     * @param mixed $sumArgs
    +     *
    +     * @return float
    +     */
    +    public static function MINIF($aArgs, $condition, $sumArgs = [])
    +    {
    +        $returnValue = null;
    +
    +        $aArgs = Functions::flattenArray($aArgs);
    +        $sumArgs = Functions::flattenArray($sumArgs);
    +        if (empty($sumArgs)) {
    +            $sumArgs = $aArgs;
    +        }
    +        $condition = Functions::ifCondition($condition);
    +        // Loop through arguments
    +        foreach ($aArgs as $key => $arg) {
    +            if (!is_numeric($arg)) {
    +                $arg = Calculation::wrapResult(strtoupper($arg));
    +            }
    +            $testCondition = '=' . $arg . $condition;
    +            if (Calculation::getInstance()->_calculateFormulaValue($testCondition)) {
    +                if (($returnValue === null) || ($arg < $returnValue)) {
    +                    $returnValue = $arg;
    +                }
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    //
    +    //    Special variant of array_count_values that isn't limited to strings and integers,
    +    //        but can work with floating point numbers as values
    +    //
    +    private static function modeCalc($data)
    +    {
    +        $frequencyArray = [];
    +        foreach ($data as $datum) {
    +            $found = false;
    +            foreach ($frequencyArray as $key => $value) {
    +                if ((string) $value['value'] == (string) $datum) {
    +                    ++$frequencyArray[$key]['frequency'];
    +                    $found = true;
    +
    +                    break;
    +                }
    +            }
    +            if (!$found) {
    +                $frequencyArray[] = [
    +                    'value' => $datum,
    +                    'frequency' => 1,
    +                ];
    +            }
    +        }
    +
    +        foreach ($frequencyArray as $key => $value) {
    +            $frequencyList[$key] = $value['frequency'];
    +            $valueList[$key] = $value['value'];
    +        }
    +        array_multisort($frequencyList, SORT_DESC, $valueList, SORT_ASC, SORT_NUMERIC, $frequencyArray);
    +
    +        if ($frequencyArray[0]['frequency'] == 1) {
    +            return Functions::NA();
    +        }
    +
    +        return $frequencyArray[0]['value'];
    +    }
    +
    +    /**
    +     * MODE.
    +     *
    +     * Returns the most frequently occurring, or repetitive, value in an array or range of data
    +     *
    +     * Excel Function:
    +     *        MODE(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function MODE(...$args)
    +    {
    +        $returnValue = Functions::NA();
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +
    +        $mArgs = [];
    +        foreach ($aArgs as $arg) {
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                $mArgs[] = $arg;
    +            }
    +        }
    +
    +        if (!empty($mArgs)) {
    +            return self::modeCalc($mArgs);
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * NEGBINOMDIST.
    +     *
    +     * Returns the negative binomial distribution. NEGBINOMDIST returns the probability that
    +     *        there will be number_f failures before the number_s-th success, when the constant
    +     *        probability of a success is probability_s. This function is similar to the binomial
    +     *        distribution, except that the number of successes is fixed, and the number of trials is
    +     *        variable. Like the binomial, trials are assumed to be independent.
    +     *
    +     * @param float $failures Number of Failures
    +     * @param float $successes Threshold number of Successes
    +     * @param float $probability Probability of success on each trial
    +     *
    +     * @return float
    +     */
    +    public static function NEGBINOMDIST($failures, $successes, $probability)
    +    {
    +        $failures = floor(Functions::flattenSingleValue($failures));
    +        $successes = floor(Functions::flattenSingleValue($successes));
    +        $probability = Functions::flattenSingleValue($probability);
    +
    +        if ((is_numeric($failures)) && (is_numeric($successes)) && (is_numeric($probability))) {
    +            if (($failures < 0) || ($successes < 1)) {
    +                return Functions::NAN();
    +            } elseif (($probability < 0) || ($probability > 1)) {
    +                return Functions::NAN();
    +            }
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_GNUMERIC) {
    +                if (($failures + $successes - 1) <= 0) {
    +                    return Functions::NAN();
    +                }
    +            }
    +
    +            return (MathTrig::COMBIN($failures + $successes - 1, $successes - 1)) * (pow($probability, $successes)) * (pow(1 - $probability, $failures));
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * NORMDIST.
    +     *
    +     * Returns the normal distribution for the specified mean and standard deviation. This
    +     * function has a very wide range of applications in statistics, including hypothesis
    +     * testing.
    +     *
    +     * @param float $value
    +     * @param float $mean Mean Value
    +     * @param float $stdDev Standard Deviation
    +     * @param bool $cumulative
    +     *
    +     * @return float
    +     */
    +    public static function NORMDIST($value, $mean, $stdDev, $cumulative)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $mean = Functions::flattenSingleValue($mean);
    +        $stdDev = Functions::flattenSingleValue($stdDev);
    +
    +        if ((is_numeric($value)) && (is_numeric($mean)) && (is_numeric($stdDev))) {
    +            if ($stdDev < 0) {
    +                return Functions::NAN();
    +            }
    +            if ((is_numeric($cumulative)) || (is_bool($cumulative))) {
    +                if ($cumulative) {
    +                    return 0.5 * (1 + Engineering::erfVal(($value - $mean) / ($stdDev * sqrt(2))));
    +                }
    +
    +                return (1 / (self::SQRT2PI * $stdDev)) * exp(0 - (pow($value - $mean, 2) / (2 * ($stdDev * $stdDev))));
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * NORMINV.
    +     *
    +     * Returns the inverse of the normal cumulative distribution for the specified mean and standard deviation.
    +     *
    +     * @param float $probability
    +     * @param float $mean Mean Value
    +     * @param float $stdDev Standard Deviation
    +     *
    +     * @return float
    +     */
    +    public static function NORMINV($probability, $mean, $stdDev)
    +    {
    +        $probability = Functions::flattenSingleValue($probability);
    +        $mean = Functions::flattenSingleValue($mean);
    +        $stdDev = Functions::flattenSingleValue($stdDev);
    +
    +        if ((is_numeric($probability)) && (is_numeric($mean)) && (is_numeric($stdDev))) {
    +            if (($probability < 0) || ($probability > 1)) {
    +                return Functions::NAN();
    +            }
    +            if ($stdDev < 0) {
    +                return Functions::NAN();
    +            }
    +
    +            return (self::inverseNcdf($probability) * $stdDev) + $mean;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * NORMSDIST.
    +     *
    +     * Returns the standard normal cumulative distribution function. The distribution has
    +     * a mean of 0 (zero) and a standard deviation of one. Use this function in place of a
    +     * table of standard normal curve areas.
    +     *
    +     * @param float $value
    +     *
    +     * @return float
    +     */
    +    public static function NORMSDIST($value)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +
    +        return self::NORMDIST($value, 0, 1, true);
    +    }
    +
    +    /**
    +     * NORMSINV.
    +     *
    +     * Returns the inverse of the standard normal cumulative distribution
    +     *
    +     * @param float $value
    +     *
    +     * @return float
    +     */
    +    public static function NORMSINV($value)
    +    {
    +        return self::NORMINV($value, 0, 1);
    +    }
    +
    +    /**
    +     * PERCENTILE.
    +     *
    +     * Returns the nth percentile of values in a range..
    +     *
    +     * Excel Function:
    +     *        PERCENTILE(value1[,value2[, ...]],entry)
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed $args Data values
    +     * @param float $entry Percentile value in the range 0..1, inclusive.
    +     *
    +     * @return float
    +     */
    +    public static function PERCENTILE(...$args)
    +    {
    +        $aArgs = Functions::flattenArray($args);
    +
    +        // Calculate
    +        $entry = array_pop($aArgs);
    +
    +        if ((is_numeric($entry)) && (!is_string($entry))) {
    +            if (($entry < 0) || ($entry > 1)) {
    +                return Functions::NAN();
    +            }
    +            $mArgs = [];
    +            foreach ($aArgs as $arg) {
    +                // Is it a numeric value?
    +                if ((is_numeric($arg)) && (!is_string($arg))) {
    +                    $mArgs[] = $arg;
    +                }
    +            }
    +            $mValueCount = count($mArgs);
    +            if ($mValueCount > 0) {
    +                sort($mArgs);
    +                $count = self::COUNT($mArgs);
    +                $index = $entry * ($count - 1);
    +                $iBase = floor($index);
    +                if ($index == $iBase) {
    +                    return $mArgs[$index];
    +                }
    +                $iNext = $iBase + 1;
    +                $iProportion = $index - $iBase;
    +
    +                return $mArgs[$iBase] + (($mArgs[$iNext] - $mArgs[$iBase]) * $iProportion);
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * PERCENTRANK.
    +     *
    +     * Returns the rank of a value in a data set as a percentage of the data set.
    +     *
    +     * @param float[] $valueSet An array of, or a reference to, a list of numbers
    +     * @param int $value the number whose rank you want to find
    +     * @param int $significance the number of significant digits for the returned percentage value
    +     *
    +     * @return float
    +     */
    +    public static function PERCENTRANK($valueSet, $value, $significance = 3)
    +    {
    +        $valueSet = Functions::flattenArray($valueSet);
    +        $value = Functions::flattenSingleValue($value);
    +        $significance = ($significance === null) ? 3 : (int) Functions::flattenSingleValue($significance);
    +
    +        foreach ($valueSet as $key => $valueEntry) {
    +            if (!is_numeric($valueEntry)) {
    +                unset($valueSet[$key]);
    +            }
    +        }
    +        sort($valueSet, SORT_NUMERIC);
    +        $valueCount = count($valueSet);
    +        if ($valueCount == 0) {
    +            return Functions::NAN();
    +        }
    +
    +        $valueAdjustor = $valueCount - 1;
    +        if (($value < $valueSet[0]) || ($value > $valueSet[$valueAdjustor])) {
    +            return Functions::NA();
    +        }
    +
    +        $pos = array_search($value, $valueSet);
    +        if ($pos === false) {
    +            $pos = 0;
    +            $testValue = $valueSet[0];
    +            while ($testValue < $value) {
    +                $testValue = $valueSet[++$pos];
    +            }
    +            --$pos;
    +            $pos += (($value - $valueSet[$pos]) / ($testValue - $valueSet[$pos]));
    +        }
    +
    +        return round($pos / $valueAdjustor, $significance);
    +    }
    +
    +    /**
    +     * PERMUT.
    +     *
    +     * Returns the number of permutations for a given number of objects that can be
    +     *        selected from number objects. A permutation is any set or subset of objects or
    +     *        events where internal order is significant. Permutations are different from
    +     *        combinations, for which the internal order is not significant. Use this function
    +     *        for lottery-style probability calculations.
    +     *
    +     * @param int $numObjs Number of different objects
    +     * @param int $numInSet Number of objects in each permutation
    +     *
    +     * @return int Number of permutations
    +     */
    +    public static function PERMUT($numObjs, $numInSet)
    +    {
    +        $numObjs = Functions::flattenSingleValue($numObjs);
    +        $numInSet = Functions::flattenSingleValue($numInSet);
    +
    +        if ((is_numeric($numObjs)) && (is_numeric($numInSet))) {
    +            $numInSet = floor($numInSet);
    +            if ($numObjs < $numInSet) {
    +                return Functions::NAN();
    +            }
    +
    +            return round(MathTrig::FACT($numObjs) / MathTrig::FACT($numObjs - $numInSet));
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * POISSON.
    +     *
    +     * Returns the Poisson distribution. A common application of the Poisson distribution
    +     * is predicting the number of events over a specific time, such as the number of
    +     * cars arriving at a toll plaza in 1 minute.
    +     *
    +     * @param float $value
    +     * @param float $mean Mean Value
    +     * @param bool $cumulative
    +     *
    +     * @return float
    +     */
    +    public static function POISSON($value, $mean, $cumulative)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $mean = Functions::flattenSingleValue($mean);
    +
    +        if ((is_numeric($value)) && (is_numeric($mean))) {
    +            if (($value < 0) || ($mean <= 0)) {
    +                return Functions::NAN();
    +            }
    +            if ((is_numeric($cumulative)) || (is_bool($cumulative))) {
    +                if ($cumulative) {
    +                    $summer = 0;
    +                    $floor = floor($value);
    +                    for ($i = 0; $i <= $floor; ++$i) {
    +                        $summer += pow($mean, $i) / MathTrig::FACT($i);
    +                    }
    +
    +                    return exp(0 - $mean) * $summer;
    +                }
    +
    +                return (exp(0 - $mean) * pow($mean, $value)) / MathTrig::FACT($value);
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * QUARTILE.
    +     *
    +     * Returns the quartile of a data set.
    +     *
    +     * Excel Function:
    +     *        QUARTILE(value1[,value2[, ...]],entry)
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed $args Data values
    +     * @param int $entry Quartile value in the range 1..3, inclusive.
    +     *
    +     * @return float
    +     */
    +    public static function QUARTILE(...$args)
    +    {
    +        $aArgs = Functions::flattenArray($args);
    +
    +        // Calculate
    +        $entry = floor(array_pop($aArgs));
    +
    +        if ((is_numeric($entry)) && (!is_string($entry))) {
    +            $entry /= 4;
    +            if (($entry < 0) || ($entry > 1)) {
    +                return Functions::NAN();
    +            }
    +
    +            return self::PERCENTILE($aArgs, $entry);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * RANK.
    +     *
    +     * Returns the rank of a number in a list of numbers.
    +     *
    +     * @param int $value the number whose rank you want to find
    +     * @param float[] $valueSet An array of, or a reference to, a list of numbers
    +     * @param int $order Order to sort the values in the value set
    +     *
    +     * @return float
    +     */
    +    public static function RANK($value, $valueSet, $order = 0)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $valueSet = Functions::flattenArray($valueSet);
    +        $order = ($order === null) ? 0 : (int) Functions::flattenSingleValue($order);
    +
    +        foreach ($valueSet as $key => $valueEntry) {
    +            if (!is_numeric($valueEntry)) {
    +                unset($valueSet[$key]);
    +            }
    +        }
    +
    +        if ($order == 0) {
    +            rsort($valueSet, SORT_NUMERIC);
    +        } else {
    +            sort($valueSet, SORT_NUMERIC);
    +        }
    +        $pos = array_search($value, $valueSet);
    +        if ($pos === false) {
    +            return Functions::NA();
    +        }
    +
    +        return ++$pos;
    +    }
    +
    +    /**
    +     * RSQ.
    +     *
    +     * Returns the square of the Pearson product moment correlation coefficient through data points in known_y's and known_x's.
    +     *
    +     * @param mixed[] $yValues Data Series Y
    +     * @param mixed[] $xValues Data Series X
    +     *
    +     * @return float
    +     */
    +    public static function RSQ($yValues, $xValues)
    +    {
    +        if (!self::checkTrendArrays($yValues, $xValues)) {
    +            return Functions::VALUE();
    +        }
    +        $yValueCount = count($yValues);
    +        $xValueCount = count($xValues);
    +
    +        if (($yValueCount == 0) || ($yValueCount != $xValueCount)) {
    +            return Functions::NA();
    +        } elseif ($yValueCount == 1) {
    +            return Functions::DIV0();
    +        }
    +
    +        $bestFitLinear = Trend::calculate(Trend::TREND_LINEAR, $yValues, $xValues);
    +
    +        return $bestFitLinear->getGoodnessOfFit();
    +    }
    +
    +    /**
    +     * SKEW.
    +     *
    +     * Returns the skewness of a distribution. Skewness characterizes the degree of asymmetry
    +     * of a distribution around its mean. Positive skewness indicates a distribution with an
    +     * asymmetric tail extending toward more positive values. Negative skewness indicates a
    +     * distribution with an asymmetric tail extending toward more negative values.
    +     *
    +     * @param array ...$args Data Series
    +     *
    +     * @return float
    +     */
    +    public static function SKEW(...$args)
    +    {
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +        $mean = self::AVERAGE($aArgs);
    +        $stdDev = self::STDEV($aArgs);
    +
    +        $count = $summer = 0;
    +        // Loop through arguments
    +        foreach ($aArgs as $k => $arg) {
    +            if ((is_bool($arg)) &&
    +                (!Functions::isMatrixValue($k))) {
    +            } else {
    +                // Is it a numeric value?
    +                if ((is_numeric($arg)) && (!is_string($arg))) {
    +                    $summer += pow((($arg - $mean) / $stdDev), 3);
    +                    ++$count;
    +                }
    +            }
    +        }
    +
    +        if ($count > 2) {
    +            return $summer * ($count / (($count - 1) * ($count - 2)));
    +        }
    +
    +        return Functions::DIV0();
    +    }
    +
    +    /**
    +     * SLOPE.
    +     *
    +     * Returns the slope of the linear regression line through data points in known_y's and known_x's.
    +     *
    +     * @param mixed[] $yValues Data Series Y
    +     * @param mixed[] $xValues Data Series X
    +     *
    +     * @return float
    +     */
    +    public static function SLOPE($yValues, $xValues)
    +    {
    +        if (!self::checkTrendArrays($yValues, $xValues)) {
    +            return Functions::VALUE();
    +        }
    +        $yValueCount = count($yValues);
    +        $xValueCount = count($xValues);
    +
    +        if (($yValueCount == 0) || ($yValueCount != $xValueCount)) {
    +            return Functions::NA();
    +        } elseif ($yValueCount == 1) {
    +            return Functions::DIV0();
    +        }
    +
    +        $bestFitLinear = Trend::calculate(Trend::TREND_LINEAR, $yValues, $xValues);
    +
    +        return $bestFitLinear->getSlope();
    +    }
    +
    +    /**
    +     * SMALL.
    +     *
    +     * Returns the nth smallest value in a data set. You can use this function to
    +     *        select a value based on its relative standing.
    +     *
    +     * Excel Function:
    +     *        SMALL(value1[,value2[, ...]],entry)
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed $args Data values
    +     * @param int $entry Position (ordered from the smallest) in the array or range of data to return
    +     *
    +     * @return float
    +     */
    +    public static function SMALL(...$args)
    +    {
    +        $aArgs = Functions::flattenArray($args);
    +
    +        // Calculate
    +        $entry = array_pop($aArgs);
    +
    +        if ((is_numeric($entry)) && (!is_string($entry))) {
    +            $mArgs = [];
    +            foreach ($aArgs as $arg) {
    +                // Is it a numeric value?
    +                if ((is_numeric($arg)) && (!is_string($arg))) {
    +                    $mArgs[] = $arg;
    +                }
    +            }
    +            $count = self::COUNT($mArgs);
    +            $entry = floor(--$entry);
    +            if (($entry < 0) || ($entry >= $count) || ($count == 0)) {
    +                return Functions::NAN();
    +            }
    +            sort($mArgs);
    +
    +            return $mArgs[$entry];
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * STANDARDIZE.
    +     *
    +     * Returns a normalized value from a distribution characterized by mean and standard_dev.
    +     *
    +     * @param float $value Value to normalize
    +     * @param float $mean Mean Value
    +     * @param float $stdDev Standard Deviation
    +     *
    +     * @return float Standardized value
    +     */
    +    public static function STANDARDIZE($value, $mean, $stdDev)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $mean = Functions::flattenSingleValue($mean);
    +        $stdDev = Functions::flattenSingleValue($stdDev);
    +
    +        if ((is_numeric($value)) && (is_numeric($mean)) && (is_numeric($stdDev))) {
    +            if ($stdDev <= 0) {
    +                return Functions::NAN();
    +            }
    +
    +            return ($value - $mean) / $stdDev;
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * STDEV.
    +     *
    +     * Estimates standard deviation based on a sample. The standard deviation is a measure of how
    +     *        widely values are dispersed from the average value (the mean).
    +     *
    +     * Excel Function:
    +     *        STDEV(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function STDEV(...$args)
    +    {
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +
    +        // Return value
    +        $returnValue = null;
    +
    +        $aMean = self::AVERAGE($aArgs);
    +        if ($aMean !== null) {
    +            $aCount = -1;
    +            foreach ($aArgs as $k => $arg) {
    +                if ((is_bool($arg)) &&
    +                    ((!Functions::isCellValue($k)) || (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE))) {
    +                    $arg = (int) $arg;
    +                }
    +                // Is it a numeric value?
    +                if ((is_numeric($arg)) && (!is_string($arg))) {
    +                    if ($returnValue === null) {
    +                        $returnValue = pow(($arg - $aMean), 2);
    +                    } else {
    +                        $returnValue += pow(($arg - $aMean), 2);
    +                    }
    +                    ++$aCount;
    +                }
    +            }
    +
    +            // Return
    +            if (($aCount > 0) && ($returnValue >= 0)) {
    +                return sqrt($returnValue / $aCount);
    +            }
    +        }
    +
    +        return Functions::DIV0();
    +    }
    +
    +    /**
    +     * STDEVA.
    +     *
    +     * Estimates standard deviation based on a sample, including numbers, text, and logical values
    +     *
    +     * Excel Function:
    +     *        STDEVA(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function STDEVA(...$args)
    +    {
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +
    +        $returnValue = null;
    +
    +        $aMean = self::AVERAGEA($aArgs);
    +        if ($aMean !== null) {
    +            $aCount = -1;
    +            foreach ($aArgs as $k => $arg) {
    +                if ((is_bool($arg)) &&
    +                    (!Functions::isMatrixValue($k))) {
    +                } else {
    +                    // Is it a numeric value?
    +                    if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
    +                        if (is_bool($arg)) {
    +                            $arg = (int) $arg;
    +                        } elseif (is_string($arg)) {
    +                            $arg = 0;
    +                        }
    +                        if ($returnValue === null) {
    +                            $returnValue = pow(($arg - $aMean), 2);
    +                        } else {
    +                            $returnValue += pow(($arg - $aMean), 2);
    +                        }
    +                        ++$aCount;
    +                    }
    +                }
    +            }
    +
    +            if (($aCount > 0) && ($returnValue >= 0)) {
    +                return sqrt($returnValue / $aCount);
    +            }
    +        }
    +
    +        return Functions::DIV0();
    +    }
    +
    +    /**
    +     * STDEVP.
    +     *
    +     * Calculates standard deviation based on the entire population
    +     *
    +     * Excel Function:
    +     *        STDEVP(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function STDEVP(...$args)
    +    {
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +
    +        $returnValue = null;
    +
    +        $aMean = self::AVERAGE($aArgs);
    +        if ($aMean !== null) {
    +            $aCount = 0;
    +            foreach ($aArgs as $k => $arg) {
    +                if ((is_bool($arg)) &&
    +                    ((!Functions::isCellValue($k)) || (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE))) {
    +                    $arg = (int) $arg;
    +                }
    +                // Is it a numeric value?
    +                if ((is_numeric($arg)) && (!is_string($arg))) {
    +                    if ($returnValue === null) {
    +                        $returnValue = pow(($arg - $aMean), 2);
    +                    } else {
    +                        $returnValue += pow(($arg - $aMean), 2);
    +                    }
    +                    ++$aCount;
    +                }
    +            }
    +
    +            if (($aCount > 0) && ($returnValue >= 0)) {
    +                return sqrt($returnValue / $aCount);
    +            }
    +        }
    +
    +        return Functions::DIV0();
    +    }
    +
    +    /**
    +     * STDEVPA.
    +     *
    +     * Calculates standard deviation based on the entire population, including numbers, text, and logical values
    +     *
    +     * Excel Function:
    +     *        STDEVPA(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function STDEVPA(...$args)
    +    {
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +
    +        $returnValue = null;
    +
    +        $aMean = self::AVERAGEA($aArgs);
    +        if ($aMean !== null) {
    +            $aCount = 0;
    +            foreach ($aArgs as $k => $arg) {
    +                if ((is_bool($arg)) &&
    +                    (!Functions::isMatrixValue($k))) {
    +                } else {
    +                    // Is it a numeric value?
    +                    if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
    +                        if (is_bool($arg)) {
    +                            $arg = (int) $arg;
    +                        } elseif (is_string($arg)) {
    +                            $arg = 0;
    +                        }
    +                        if ($returnValue === null) {
    +                            $returnValue = pow(($arg - $aMean), 2);
    +                        } else {
    +                            $returnValue += pow(($arg - $aMean), 2);
    +                        }
    +                        ++$aCount;
    +                    }
    +                }
    +            }
    +
    +            if (($aCount > 0) && ($returnValue >= 0)) {
    +                return sqrt($returnValue / $aCount);
    +            }
    +        }
    +
    +        return Functions::DIV0();
    +    }
    +
    +    /**
    +     * STEYX.
    +     *
    +     * Returns the standard error of the predicted y-value for each x in the regression.
    +     *
    +     * @param mixed[] $yValues Data Series Y
    +     * @param mixed[] $xValues Data Series X
    +     *
    +     * @return float
    +     */
    +    public static function STEYX($yValues, $xValues)
    +    {
    +        if (!self::checkTrendArrays($yValues, $xValues)) {
    +            return Functions::VALUE();
    +        }
    +        $yValueCount = count($yValues);
    +        $xValueCount = count($xValues);
    +
    +        if (($yValueCount == 0) || ($yValueCount != $xValueCount)) {
    +            return Functions::NA();
    +        } elseif ($yValueCount == 1) {
    +            return Functions::DIV0();
    +        }
    +
    +        $bestFitLinear = Trend::calculate(Trend::TREND_LINEAR, $yValues, $xValues);
    +
    +        return $bestFitLinear->getStdevOfResiduals();
    +    }
    +
    +    /**
    +     * TDIST.
    +     *
    +     * Returns the probability of Student's T distribution.
    +     *
    +     * @param float $value Value for the function
    +     * @param float $degrees degrees of freedom
    +     * @param float $tails number of tails (1 or 2)
    +     *
    +     * @return float
    +     */
    +    public static function TDIST($value, $degrees, $tails)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $degrees = floor(Functions::flattenSingleValue($degrees));
    +        $tails = floor(Functions::flattenSingleValue($tails));
    +
    +        if ((is_numeric($value)) && (is_numeric($degrees)) && (is_numeric($tails))) {
    +            if (($value < 0) || ($degrees < 1) || ($tails < 1) || ($tails > 2)) {
    +                return Functions::NAN();
    +            }
    +            //    tdist, which finds the probability that corresponds to a given value
    +            //    of t with k degrees of freedom. This algorithm is translated from a
    +            //    pascal function on p81 of "Statistical Computing in Pascal" by D
    +            //    Cooke, A H Craven & G M Clark (1985: Edward Arnold (Pubs.) Ltd:
    +            //    London). The above Pascal algorithm is itself a translation of the
    +            //    fortran algoritm "AS 3" by B E Cooper of the Atlas Computer
    +            //    Laboratory as reported in (among other places) "Applied Statistics
    +            //    Algorithms", editied by P Griffiths and I D Hill (1985; Ellis
    +            //    Horwood Ltd.; W. Sussex, England).
    +            $tterm = $degrees;
    +            $ttheta = atan2($value, sqrt($tterm));
    +            $tc = cos($ttheta);
    +            $ts = sin($ttheta);
    +            $tsum = 0;
    +
    +            if (($degrees % 2) == 1) {
    +                $ti = 3;
    +                $tterm = $tc;
    +            } else {
    +                $ti = 2;
    +                $tterm = 1;
    +            }
    +
    +            $tsum = $tterm;
    +            while ($ti < $degrees) {
    +                $tterm *= $tc * $tc * ($ti - 1) / $ti;
    +                $tsum += $tterm;
    +                $ti += 2;
    +            }
    +            $tsum *= $ts;
    +            if (($degrees % 2) == 1) {
    +                $tsum = Functions::M_2DIVPI * ($tsum + $ttheta);
    +            }
    +            $tValue = 0.5 * (1 + $tsum);
    +            if ($tails == 1) {
    +                return 1 - abs($tValue);
    +            }
    +
    +            return 1 - abs((1 - $tValue) - $tValue);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * TINV.
    +     *
    +     * Returns the one-tailed probability of the chi-squared distribution.
    +     *
    +     * @param float $probability Probability for the function
    +     * @param float $degrees degrees of freedom
    +     *
    +     * @return float
    +     */
    +    public static function TINV($probability, $degrees)
    +    {
    +        $probability = Functions::flattenSingleValue($probability);
    +        $degrees = floor(Functions::flattenSingleValue($degrees));
    +
    +        if ((is_numeric($probability)) && (is_numeric($degrees))) {
    +            $xLo = 100;
    +            $xHi = 0;
    +
    +            $x = $xNew = 1;
    +            $dx = 1;
    +            $i = 0;
    +
    +            while ((abs($dx) > Functions::PRECISION) && ($i++ < self::MAX_ITERATIONS)) {
    +                // Apply Newton-Raphson step
    +                $result = self::TDIST($x, $degrees, 2);
    +                $error = $result - $probability;
    +                if ($error == 0.0) {
    +                    $dx = 0;
    +                } elseif ($error < 0.0) {
    +                    $xLo = $x;
    +                } else {
    +                    $xHi = $x;
    +                }
    +                // Avoid division by zero
    +                if ($result != 0.0) {
    +                    $dx = $error / $result;
    +                    $xNew = $x - $dx;
    +                }
    +                // If the NR fails to converge (which for example may be the
    +                // case if the initial guess is too rough) we apply a bisection
    +                // step to determine a more narrow interval around the root.
    +                if (($xNew < $xLo) || ($xNew > $xHi) || ($result == 0.0)) {
    +                    $xNew = ($xLo + $xHi) / 2;
    +                    $dx = $xNew - $x;
    +                }
    +                $x = $xNew;
    +            }
    +            if ($i == self::MAX_ITERATIONS) {
    +                return Functions::NA();
    +            }
    +
    +            return round($x, 12);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * TREND.
    +     *
    +     * Returns values along a linear Trend
    +     *
    +     * @param mixed[] $yValues Data Series Y
    +     * @param mixed[] $xValues Data Series X
    +     * @param mixed[] $newValues Values of X for which we want to find Y
    +     * @param bool $const a logical value specifying whether to force the intersect to equal 0
    +     *
    +     * @return array of float
    +     */
    +    public static function TREND($yValues, $xValues = [], $newValues = [], $const = true)
    +    {
    +        $yValues = Functions::flattenArray($yValues);
    +        $xValues = Functions::flattenArray($xValues);
    +        $newValues = Functions::flattenArray($newValues);
    +        $const = ($const === null) ? true : (bool) Functions::flattenSingleValue($const);
    +
    +        $bestFitLinear = Trend::calculate(Trend::TREND_LINEAR, $yValues, $xValues, $const);
    +        if (empty($newValues)) {
    +            $newValues = $bestFitLinear->getXValues();
    +        }
    +
    +        $returnArray = [];
    +        foreach ($newValues as $xValue) {
    +            $returnArray[0][] = $bestFitLinear->getValueOfYForX($xValue);
    +        }
    +
    +        return $returnArray;
    +    }
    +
    +    /**
    +     * TRIMMEAN.
    +     *
    +     * Returns the mean of the interior of a data set. TRIMMEAN calculates the mean
    +     *        taken by excluding a percentage of data points from the top and bottom tails
    +     *        of a data set.
    +     *
    +     * Excel Function:
    +     *        TRIMEAN(value1[,value2[, ...]], $discard)
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed $args Data values
    +     * @param float $discard Percentage to discard
    +     *
    +     * @return float
    +     */
    +    public static function TRIMMEAN(...$args)
    +    {
    +        $aArgs = Functions::flattenArray($args);
    +
    +        // Calculate
    +        $percent = array_pop($aArgs);
    +
    +        if ((is_numeric($percent)) && (!is_string($percent))) {
    +            if (($percent < 0) || ($percent > 1)) {
    +                return Functions::NAN();
    +            }
    +            $mArgs = [];
    +            foreach ($aArgs as $arg) {
    +                // Is it a numeric value?
    +                if ((is_numeric($arg)) && (!is_string($arg))) {
    +                    $mArgs[] = $arg;
    +                }
    +            }
    +            $discard = floor(self::COUNT($mArgs) * $percent / 2);
    +            sort($mArgs);
    +            for ($i = 0; $i < $discard; ++$i) {
    +                array_pop($mArgs);
    +                array_shift($mArgs);
    +            }
    +
    +            return self::AVERAGE($mArgs);
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * VARFunc.
    +     *
    +     * Estimates variance based on a sample.
    +     *
    +     * Excel Function:
    +     *        VAR(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function VARFunc(...$args)
    +    {
    +        $returnValue = Functions::DIV0();
    +
    +        $summerA = $summerB = 0;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        $aCount = 0;
    +        foreach ($aArgs as $arg) {
    +            if (is_bool($arg)) {
    +                $arg = (int) $arg;
    +            }
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                $summerA += ($arg * $arg);
    +                $summerB += $arg;
    +                ++$aCount;
    +            }
    +        }
    +
    +        if ($aCount > 1) {
    +            $summerA *= $aCount;
    +            $summerB *= $summerB;
    +            $returnValue = ($summerA - $summerB) / ($aCount * ($aCount - 1));
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * VARA.
    +     *
    +     * Estimates variance based on a sample, including numbers, text, and logical values
    +     *
    +     * Excel Function:
    +     *        VARA(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function VARA(...$args)
    +    {
    +        $returnValue = Functions::DIV0();
    +
    +        $summerA = $summerB = 0;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +        $aCount = 0;
    +        foreach ($aArgs as $k => $arg) {
    +            if ((is_string($arg)) &&
    +                (Functions::isValue($k))) {
    +                return Functions::VALUE();
    +            } elseif ((is_string($arg)) &&
    +                (!Functions::isMatrixValue($k))) {
    +            } else {
    +                // Is it a numeric value?
    +                if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
    +                    if (is_bool($arg)) {
    +                        $arg = (int) $arg;
    +                    } elseif (is_string($arg)) {
    +                        $arg = 0;
    +                    }
    +                    $summerA += ($arg * $arg);
    +                    $summerB += $arg;
    +                    ++$aCount;
    +                }
    +            }
    +        }
    +
    +        if ($aCount > 1) {
    +            $summerA *= $aCount;
    +            $summerB *= $summerB;
    +            $returnValue = ($summerA - $summerB) / ($aCount * ($aCount - 1));
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * VARP.
    +     *
    +     * Calculates variance based on the entire population
    +     *
    +     * Excel Function:
    +     *        VARP(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function VARP(...$args)
    +    {
    +        // Return value
    +        $returnValue = Functions::DIV0();
    +
    +        $summerA = $summerB = 0;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        $aCount = 0;
    +        foreach ($aArgs as $arg) {
    +            if (is_bool($arg)) {
    +                $arg = (int) $arg;
    +            }
    +            // Is it a numeric value?
    +            if ((is_numeric($arg)) && (!is_string($arg))) {
    +                $summerA += ($arg * $arg);
    +                $summerB += $arg;
    +                ++$aCount;
    +            }
    +        }
    +
    +        if ($aCount > 0) {
    +            $summerA *= $aCount;
    +            $summerB *= $summerB;
    +            $returnValue = ($summerA - $summerB) / ($aCount * $aCount);
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * VARPA.
    +     *
    +     * Calculates variance based on the entire population, including numbers, text, and logical values
    +     *
    +     * Excel Function:
    +     *        VARPA(value1[,value2[, ...]])
    +     *
    +     * @category Statistical Functions
    +     *
    +     * @param mixed ...$args Data values
    +     *
    +     * @return float
    +     */
    +    public static function VARPA(...$args)
    +    {
    +        $returnValue = Functions::DIV0();
    +
    +        $summerA = $summerB = 0;
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArrayIndexed($args);
    +        $aCount = 0;
    +        foreach ($aArgs as $k => $arg) {
    +            if ((is_string($arg)) &&
    +                (Functions::isValue($k))) {
    +                return Functions::VALUE();
    +            } elseif ((is_string($arg)) &&
    +                (!Functions::isMatrixValue($k))) {
    +            } else {
    +                // Is it a numeric value?
    +                if ((is_numeric($arg)) || (is_bool($arg)) || ((is_string($arg) & ($arg != '')))) {
    +                    if (is_bool($arg)) {
    +                        $arg = (int) $arg;
    +                    } elseif (is_string($arg)) {
    +                        $arg = 0;
    +                    }
    +                    $summerA += ($arg * $arg);
    +                    $summerB += $arg;
    +                    ++$aCount;
    +                }
    +            }
    +        }
    +
    +        if ($aCount > 0) {
    +            $summerA *= $aCount;
    +            $summerB *= $summerB;
    +            $returnValue = ($summerA - $summerB) / ($aCount * $aCount);
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * WEIBULL.
    +     *
    +     * Returns the Weibull distribution. Use this distribution in reliability
    +     * analysis, such as calculating a device's mean time to failure.
    +     *
    +     * @param float $value
    +     * @param float $alpha Alpha Parameter
    +     * @param float $beta Beta Parameter
    +     * @param bool $cumulative
    +     *
    +     * @return float
    +     */
    +    public static function WEIBULL($value, $alpha, $beta, $cumulative)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $alpha = Functions::flattenSingleValue($alpha);
    +        $beta = Functions::flattenSingleValue($beta);
    +
    +        if ((is_numeric($value)) && (is_numeric($alpha)) && (is_numeric($beta))) {
    +            if (($value < 0) || ($alpha <= 0) || ($beta <= 0)) {
    +                return Functions::NAN();
    +            }
    +            if ((is_numeric($cumulative)) || (is_bool($cumulative))) {
    +                if ($cumulative) {
    +                    return 1 - exp(0 - pow($value / $beta, $alpha));
    +                }
    +
    +                return ($alpha / pow($beta, $alpha)) * pow($value, $alpha - 1) * exp(0 - pow($value / $beta, $alpha));
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * ZTEST.
    +     *
    +     * Returns the Weibull distribution. Use this distribution in reliability
    +     * analysis, such as calculating a device's mean time to failure.
    +     *
    +     * @param float $dataSet
    +     * @param float $m0 Alpha Parameter
    +     * @param float $sigma Beta Parameter
    +     *
    +     * @return float
    +     */
    +    public static function ZTEST($dataSet, $m0, $sigma = null)
    +    {
    +        $dataSet = Functions::flattenArrayIndexed($dataSet);
    +        $m0 = Functions::flattenSingleValue($m0);
    +        $sigma = Functions::flattenSingleValue($sigma);
    +
    +        if ($sigma === null) {
    +            $sigma = self::STDEV($dataSet);
    +        }
    +        $n = count($dataSet);
    +
    +        return 1 - self::NORMSDIST((self::AVERAGE($dataSet) - $m0) / ($sigma / sqrt($n)));
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/TextData.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/TextData.php
    new file mode 100644
    index 00000000000..e30b2ff7e89
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/TextData.php
    @@ -0,0 +1,672 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
    +
    +class TextData
    +{
    +    private static $invalidChars;
    +
    +    private static function unicodeToOrd($character)
    +    {
    +        return unpack('V', iconv('UTF-8', 'UCS-4LE', $character))[1];
    +    }
    +
    +    /**
    +     * CHARACTER.
    +     *
    +     * @param string $character Value
    +     *
    +     * @return string
    +     */
    +    public static function CHARACTER($character)
    +    {
    +        $character = Functions::flattenSingleValue($character);
    +
    +        if ((!is_numeric($character)) || ($character < 0)) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (function_exists('iconv')) {
    +            return iconv('UCS-4LE', 'UTF-8', pack('V', $character));
    +        }
    +
    +        return mb_convert_encoding('&#' . (int) $character . ';', 'UTF-8', 'HTML-ENTITIES');
    +    }
    +
    +    /**
    +     * TRIMNONPRINTABLE.
    +     *
    +     * @param mixed $stringValue Value to check
    +     *
    +     * @return string
    +     */
    +    public static function TRIMNONPRINTABLE($stringValue = '')
    +    {
    +        $stringValue = Functions::flattenSingleValue($stringValue);
    +
    +        if (is_bool($stringValue)) {
    +            return ($stringValue) ? Calculation::getTRUE() : Calculation::getFALSE();
    +        }
    +
    +        if (self::$invalidChars == null) {
    +            self::$invalidChars = range(chr(0), chr(31));
    +        }
    +
    +        if (is_string($stringValue) || is_numeric($stringValue)) {
    +            return str_replace(self::$invalidChars, '', trim($stringValue, "\x00..\x1F"));
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * TRIMSPACES.
    +     *
    +     * @param mixed $stringValue Value to check
    +     *
    +     * @return string
    +     */
    +    public static function TRIMSPACES($stringValue = '')
    +    {
    +        $stringValue = Functions::flattenSingleValue($stringValue);
    +        if (is_bool($stringValue)) {
    +            return ($stringValue) ? Calculation::getTRUE() : Calculation::getFALSE();
    +        }
    +
    +        if (is_string($stringValue) || is_numeric($stringValue)) {
    +            return trim(preg_replace('/ +/', ' ', trim($stringValue, ' ')), ' ');
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * ASCIICODE.
    +     *
    +     * @param string $characters Value
    +     *
    +     * @return int
    +     */
    +    public static function ASCIICODE($characters)
    +    {
    +        if (($characters === null) || ($characters === '')) {
    +            return Functions::VALUE();
    +        }
    +        $characters = Functions::flattenSingleValue($characters);
    +        if (is_bool($characters)) {
    +            if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                $characters = (int) $characters;
    +            } else {
    +                $characters = ($characters) ? Calculation::getTRUE() : Calculation::getFALSE();
    +            }
    +        }
    +
    +        $character = $characters;
    +        if (mb_strlen($characters, 'UTF-8') > 1) {
    +            $character = mb_substr($characters, 0, 1, 'UTF-8');
    +        }
    +
    +        return self::unicodeToOrd($character);
    +    }
    +
    +    /**
    +     * CONCATENATE.
    +     *
    +     * @return string
    +     */
    +    public static function CONCATENATE(...$args)
    +    {
    +        $returnValue = '';
    +
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        foreach ($aArgs as $arg) {
    +            if (is_bool($arg)) {
    +                if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                    $arg = (int) $arg;
    +                } else {
    +                    $arg = ($arg) ? Calculation::getTRUE() : Calculation::getFALSE();
    +                }
    +            }
    +            $returnValue .= $arg;
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * DOLLAR.
    +     *
    +     * This function converts a number to text using currency format, with the decimals rounded to the specified place.
    +     * The format used is $#,##0.00_);($#,##0.00)..
    +     *
    +     * @param float $value The value to format
    +     * @param int $decimals The number of digits to display to the right of the decimal point.
    +     *                                    If decimals is negative, number is rounded to the left of the decimal point.
    +     *                                    If you omit decimals, it is assumed to be 2
    +     *
    +     * @return string
    +     */
    +    public static function DOLLAR($value = 0, $decimals = 2)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $decimals = $decimals === null ? 0 : Functions::flattenSingleValue($decimals);
    +
    +        // Validate parameters
    +        if (!is_numeric($value) || !is_numeric($decimals)) {
    +            return Functions::NAN();
    +        }
    +        $decimals = floor($decimals);
    +
    +        $mask = '$#,##0';
    +        if ($decimals > 0) {
    +            $mask .= '.' . str_repeat('0', $decimals);
    +        } else {
    +            $round = pow(10, abs($decimals));
    +            if ($value < 0) {
    +                $round = 0 - $round;
    +            }
    +            $value = MathTrig::MROUND($value, $round);
    +        }
    +
    +        return NumberFormat::toFormattedString($value, $mask);
    +    }
    +
    +    /**
    +     * SEARCHSENSITIVE.
    +     *
    +     * @param string $needle The string to look for
    +     * @param string $haystack The string in which to look
    +     * @param int $offset Offset within $haystack
    +     *
    +     * @return string
    +     */
    +    public static function SEARCHSENSITIVE($needle, $haystack, $offset = 1)
    +    {
    +        $needle = Functions::flattenSingleValue($needle);
    +        $haystack = Functions::flattenSingleValue($haystack);
    +        $offset = Functions::flattenSingleValue($offset);
    +
    +        if (!is_bool($needle)) {
    +            if (is_bool($haystack)) {
    +                $haystack = ($haystack) ? Calculation::getTRUE() : Calculation::getFALSE();
    +            }
    +
    +            if (($offset > 0) && (StringHelper::countCharacters($haystack) > $offset)) {
    +                if (StringHelper::countCharacters($needle) == 0) {
    +                    return $offset;
    +                }
    +
    +                $pos = mb_strpos($haystack, $needle, --$offset, 'UTF-8');
    +                if ($pos !== false) {
    +                    return ++$pos;
    +                }
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * SEARCHINSENSITIVE.
    +     *
    +     * @param string $needle The string to look for
    +     * @param string $haystack The string in which to look
    +     * @param int $offset Offset within $haystack
    +     *
    +     * @return string
    +     */
    +    public static function SEARCHINSENSITIVE($needle, $haystack, $offset = 1)
    +    {
    +        $needle = Functions::flattenSingleValue($needle);
    +        $haystack = Functions::flattenSingleValue($haystack);
    +        $offset = Functions::flattenSingleValue($offset);
    +
    +        if (!is_bool($needle)) {
    +            if (is_bool($haystack)) {
    +                $haystack = ($haystack) ? Calculation::getTRUE() : Calculation::getFALSE();
    +            }
    +
    +            if (($offset > 0) && (StringHelper::countCharacters($haystack) > $offset)) {
    +                if (StringHelper::countCharacters($needle) == 0) {
    +                    return $offset;
    +                }
    +
    +                $pos = mb_stripos($haystack, $needle, --$offset, 'UTF-8');
    +                if ($pos !== false) {
    +                    return ++$pos;
    +                }
    +            }
    +        }
    +
    +        return Functions::VALUE();
    +    }
    +
    +    /**
    +     * FIXEDFORMAT.
    +     *
    +     * @param mixed $value Value to check
    +     * @param int $decimals
    +     * @param bool $no_commas
    +     *
    +     * @return string
    +     */
    +    public static function FIXEDFORMAT($value, $decimals = 2, $no_commas = false)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $decimals = Functions::flattenSingleValue($decimals);
    +        $no_commas = Functions::flattenSingleValue($no_commas);
    +
    +        // Validate parameters
    +        if (!is_numeric($value) || !is_numeric($decimals)) {
    +            return Functions::NAN();
    +        }
    +        $decimals = floor($decimals);
    +
    +        $valueResult = round($value, $decimals);
    +        if ($decimals < 0) {
    +            $decimals = 0;
    +        }
    +        if (!$no_commas) {
    +            $valueResult = number_format($valueResult, $decimals);
    +        }
    +
    +        return (string) $valueResult;
    +    }
    +
    +    /**
    +     * LEFT.
    +     *
    +     * @param string $value Value
    +     * @param int $chars Number of characters
    +     *
    +     * @return string
    +     */
    +    public static function LEFT($value = '', $chars = 1)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $chars = Functions::flattenSingleValue($chars);
    +
    +        if ($chars < 0) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (is_bool($value)) {
    +            $value = ($value) ? Calculation::getTRUE() : Calculation::getFALSE();
    +        }
    +
    +        return mb_substr($value, 0, $chars, 'UTF-8');
    +    }
    +
    +    /**
    +     * MID.
    +     *
    +     * @param string $value Value
    +     * @param int $start Start character
    +     * @param int $chars Number of characters
    +     *
    +     * @return string
    +     */
    +    public static function MID($value = '', $start = 1, $chars = null)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $start = Functions::flattenSingleValue($start);
    +        $chars = Functions::flattenSingleValue($chars);
    +
    +        if (($start < 1) || ($chars < 0)) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (is_bool($value)) {
    +            $value = ($value) ? Calculation::getTRUE() : Calculation::getFALSE();
    +        }
    +
    +        if (empty($chars)) {
    +            return '';
    +        }
    +
    +        return mb_substr($value, --$start, $chars, 'UTF-8');
    +    }
    +
    +    /**
    +     * RIGHT.
    +     *
    +     * @param string $value Value
    +     * @param int $chars Number of characters
    +     *
    +     * @return string
    +     */
    +    public static function RIGHT($value = '', $chars = 1)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $chars = Functions::flattenSingleValue($chars);
    +
    +        if ($chars < 0) {
    +            return Functions::VALUE();
    +        }
    +
    +        if (is_bool($value)) {
    +            $value = ($value) ? Calculation::getTRUE() : Calculation::getFALSE();
    +        }
    +
    +        return mb_substr($value, mb_strlen($value, 'UTF-8') - $chars, $chars, 'UTF-8');
    +    }
    +
    +    /**
    +     * STRINGLENGTH.
    +     *
    +     * @param string $value Value
    +     *
    +     * @return int
    +     */
    +    public static function STRINGLENGTH($value = '')
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +
    +        if (is_bool($value)) {
    +            $value = ($value) ? Calculation::getTRUE() : Calculation::getFALSE();
    +        }
    +
    +        return mb_strlen($value, 'UTF-8');
    +    }
    +
    +    /**
    +     * LOWERCASE.
    +     *
    +     * Converts a string value to upper case.
    +     *
    +     * @param string $mixedCaseString
    +     *
    +     * @return string
    +     */
    +    public static function LOWERCASE($mixedCaseString)
    +    {
    +        $mixedCaseString = Functions::flattenSingleValue($mixedCaseString);
    +
    +        if (is_bool($mixedCaseString)) {
    +            $mixedCaseString = ($mixedCaseString) ? Calculation::getTRUE() : Calculation::getFALSE();
    +        }
    +
    +        return StringHelper::strToLower($mixedCaseString);
    +    }
    +
    +    /**
    +     * UPPERCASE.
    +     *
    +     * Converts a string value to upper case.
    +     *
    +     * @param string $mixedCaseString
    +     *
    +     * @return string
    +     */
    +    public static function UPPERCASE($mixedCaseString)
    +    {
    +        $mixedCaseString = Functions::flattenSingleValue($mixedCaseString);
    +
    +        if (is_bool($mixedCaseString)) {
    +            $mixedCaseString = ($mixedCaseString) ? Calculation::getTRUE() : Calculation::getFALSE();
    +        }
    +
    +        return StringHelper::strToUpper($mixedCaseString);
    +    }
    +
    +    /**
    +     * PROPERCASE.
    +     *
    +     * Converts a string value to upper case.
    +     *
    +     * @param string $mixedCaseString
    +     *
    +     * @return string
    +     */
    +    public static function PROPERCASE($mixedCaseString)
    +    {
    +        $mixedCaseString = Functions::flattenSingleValue($mixedCaseString);
    +
    +        if (is_bool($mixedCaseString)) {
    +            $mixedCaseString = ($mixedCaseString) ? Calculation::getTRUE() : Calculation::getFALSE();
    +        }
    +
    +        return StringHelper::strToTitle($mixedCaseString);
    +    }
    +
    +    /**
    +     * REPLACE.
    +     *
    +     * @param string $oldText String to modify
    +     * @param int $start Start character
    +     * @param int $chars Number of characters
    +     * @param string $newText String to replace in defined position
    +     *
    +     * @return string
    +     */
    +    public static function REPLACE($oldText, $start, $chars, $newText)
    +    {
    +        $oldText = Functions::flattenSingleValue($oldText);
    +        $start = Functions::flattenSingleValue($start);
    +        $chars = Functions::flattenSingleValue($chars);
    +        $newText = Functions::flattenSingleValue($newText);
    +
    +        $left = self::LEFT($oldText, $start - 1);
    +        $right = self::RIGHT($oldText, self::STRINGLENGTH($oldText) - ($start + $chars) + 1);
    +
    +        return $left . $newText . $right;
    +    }
    +
    +    /**
    +     * SUBSTITUTE.
    +     *
    +     * @param string $text Value
    +     * @param string $fromText From Value
    +     * @param string $toText To Value
    +     * @param int $instance Instance Number
    +     *
    +     * @return string
    +     */
    +    public static function SUBSTITUTE($text = '', $fromText = '', $toText = '', $instance = 0)
    +    {
    +        $text = Functions::flattenSingleValue($text);
    +        $fromText = Functions::flattenSingleValue($fromText);
    +        $toText = Functions::flattenSingleValue($toText);
    +        $instance = floor(Functions::flattenSingleValue($instance));
    +
    +        if ($instance == 0) {
    +            return str_replace($fromText, $toText, $text);
    +        }
    +
    +        $pos = -1;
    +        while ($instance > 0) {
    +            $pos = mb_strpos($text, $fromText, $pos + 1, 'UTF-8');
    +            if ($pos === false) {
    +                break;
    +            }
    +            --$instance;
    +        }
    +
    +        if ($pos !== false) {
    +            return self::REPLACE($text, ++$pos, mb_strlen($fromText, 'UTF-8'), $toText);
    +        }
    +
    +        return $text;
    +    }
    +
    +    /**
    +     * RETURNSTRING.
    +     *
    +     * @param mixed $testValue Value to check
    +     *
    +     * @return null|string
    +     */
    +    public static function RETURNSTRING($testValue = '')
    +    {
    +        $testValue = Functions::flattenSingleValue($testValue);
    +
    +        if (is_string($testValue)) {
    +            return $testValue;
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * TEXTFORMAT.
    +     *
    +     * @param mixed $value Value to check
    +     * @param string $format Format mask to use
    +     *
    +     * @return string
    +     */
    +    public static function TEXTFORMAT($value, $format)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $format = Functions::flattenSingleValue($format);
    +
    +        if ((is_string($value)) && (!is_numeric($value)) && Date::isDateTimeFormatCode($format)) {
    +            $value = DateTime::DATEVALUE($value);
    +        }
    +
    +        return (string) NumberFormat::toFormattedString($value, $format);
    +    }
    +
    +    /**
    +     * VALUE.
    +     *
    +     * @param mixed $value Value to check
    +     *
    +     * @return bool
    +     */
    +    public static function VALUE($value = '')
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +
    +        if (!is_numeric($value)) {
    +            $numberValue = str_replace(
    +                StringHelper::getThousandsSeparator(),
    +                '',
    +                trim($value, " \t\n\r\0\x0B" . StringHelper::getCurrencyCode())
    +            );
    +            if (is_numeric($numberValue)) {
    +                return (float) $numberValue;
    +            }
    +
    +            $dateSetting = Functions::getReturnDateType();
    +            Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
    +
    +            if (strpos($value, ':') !== false) {
    +                $timeValue = DateTime::TIMEVALUE($value);
    +                if ($timeValue !== Functions::VALUE()) {
    +                    Functions::setReturnDateType($dateSetting);
    +
    +                    return $timeValue;
    +                }
    +            }
    +            $dateValue = DateTime::DATEVALUE($value);
    +            if ($dateValue !== Functions::VALUE()) {
    +                Functions::setReturnDateType($dateSetting);
    +
    +                return $dateValue;
    +            }
    +            Functions::setReturnDateType($dateSetting);
    +
    +            return Functions::VALUE();
    +        }
    +
    +        return (float) $value;
    +    }
    +
    +    /**
    +     * NUMBERVALUE.
    +     *
    +     * @param mixed $value Value to check
    +     * @param string $decimalSeparator decimal separator, defaults to locale defined value
    +     * @param string $groupSeparator group/thosands separator, defaults to locale defined value
    +     *
    +     * @return float|string
    +     */
    +    public static function NUMBERVALUE($value = '', $decimalSeparator = null, $groupSeparator = null)
    +    {
    +        $value = Functions::flattenSingleValue($value);
    +        $decimalSeparator = Functions::flattenSingleValue($decimalSeparator);
    +        $groupSeparator = Functions::flattenSingleValue($groupSeparator);
    +
    +        if (!is_numeric($value)) {
    +            $decimalSeparator = empty($decimalSeparator) ? StringHelper::getDecimalSeparator() : $decimalSeparator;
    +            $groupSeparator = empty($groupSeparator) ? StringHelper::getThousandsSeparator() : $groupSeparator;
    +
    +            $decimalPositions = preg_match_all('/' . preg_quote($decimalSeparator) . '/', $value, $matches, PREG_OFFSET_CAPTURE);
    +            if ($decimalPositions > 1) {
    +                return Functions::VALUE();
    +            }
    +            $decimalOffset = array_pop($matches[0])[1];
    +            if (strpos($value, $groupSeparator, $decimalOffset) !== false) {
    +                return Functions::VALUE();
    +            }
    +
    +            $value = str_replace([$groupSeparator, $decimalSeparator], ['', '.'], $value);
    +
    +            // Handle the special case of trailing % signs
    +            $percentageString = rtrim($value, '%');
    +            if (!is_numeric($percentageString)) {
    +                return Functions::VALUE();
    +            }
    +
    +            $percentageAdjustment = strlen($value) - strlen($percentageString);
    +            if ($percentageAdjustment) {
    +                $value = (float) $percentageString;
    +                $value /= pow(10, $percentageAdjustment * 2);
    +            }
    +        }
    +
    +        return (float) $value;
    +    }
    +
    +    /**
    +     * Compares two text strings and returns TRUE if they are exactly the same, FALSE otherwise.
    +     * EXACT is case-sensitive but ignores formatting differences.
    +     * Use EXACT to test text being entered into a document.
    +     *
    +     * @param $value1
    +     * @param $value2
    +     *
    +     * @return bool
    +     */
    +    public static function EXACT($value1, $value2)
    +    {
    +        $value1 = Functions::flattenSingleValue($value1);
    +        $value2 = Functions::flattenSingleValue($value2);
    +
    +        return (string) $value2 === (string) $value1;
    +    }
    +
    +    /**
    +     * TEXTJOIN.
    +     *
    +     * @param mixed $delimiter
    +     * @param mixed $ignoreEmpty
    +     * @param mixed $args
    +     *
    +     * @return string
    +     */
    +    public static function TEXTJOIN($delimiter, $ignoreEmpty, ...$args)
    +    {
    +        // Loop through arguments
    +        $aArgs = Functions::flattenArray($args);
    +        foreach ($aArgs as $key => &$arg) {
    +            if ($ignoreEmpty && trim($arg) == '') {
    +                unset($aArgs[$key]);
    +            } elseif (is_bool($arg)) {
    +                if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
    +                    $arg = (int) $arg;
    +                } else {
    +                    $arg = ($arg) ? Calculation::getTRUE() : Calculation::getFALSE();
    +                }
    +            }
    +        }
    +
    +        return implode($delimiter, $aArgs);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Token/Stack.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Token/Stack.php
    new file mode 100644
    index 00000000000..b8dccf95c2f
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/Token/Stack.php
    @@ -0,0 +1,93 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Calculation\Token;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +
    +class Stack
    +{
    +    /**
    +     * The parser stack for formulae.
    +     *
    +     * @var mixed[]
    +     */
    +    private $stack = [];
    +
    +    /**
    +     * Count of entries in the parser stack.
    +     *
    +     * @var int
    +     */
    +    private $count = 0;
    +
    +    /**
    +     * Return the number of entries on the stack.
    +     *
    +     * @return int
    +     */
    +    public function count()
    +    {
    +        return $this->count;
    +    }
    +
    +    /**
    +     * Push a new entry onto the stack.
    +     *
    +     * @param mixed $type
    +     * @param mixed $value
    +     * @param mixed $reference
    +     */
    +    public function push($type, $value, $reference = null)
    +    {
    +        $this->stack[$this->count++] = [
    +            'type' => $type,
    +            'value' => $value,
    +            'reference' => $reference,
    +        ];
    +        if ($type == 'Function') {
    +            $localeFunction = Calculation::localeFunc($value);
    +            if ($localeFunction != $value) {
    +                $this->stack[($this->count - 1)]['localeValue'] = $localeFunction;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Pop the last entry from the stack.
    +     *
    +     * @return mixed
    +     */
    +    public function pop()
    +    {
    +        if ($this->count > 0) {
    +            return $this->stack[--$this->count];
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Return an entry from the stack without removing it.
    +     *
    +     * @param int $n number indicating how far back in the stack we want to look
    +     *
    +     * @return mixed
    +     */
    +    public function last($n = 1)
    +    {
    +        if ($this->count - $n < 0) {
    +            return null;
    +        }
    +
    +        return $this->stack[$this->count - $n];
    +    }
    +
    +    /**
    +     * Clear the stack.
    +     */
    +    public function clear()
    +    {
    +        $this->stack = [];
    +        $this->count = 0;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/functionlist.txt b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/functionlist.txt
    new file mode 100644
    index 00000000000..ee87c17f63c
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/functionlist.txt
    @@ -0,0 +1,385 @@
    +ABS
    +ACCRINT
    +ACCRINTM
    +ACOS
    +ACOSH
    +ACOT
    +ACOTH
    +ADDRESS
    +AMORDEGRC
    +AMORLINC
    +AND
    +AREAS
    +ASC
    +ASIN
    +ASINH
    +ATAN
    +ATAN2
    +ATANH
    +AVEDEV
    +AVERAGE
    +AVERAGEA
    +AVERAGEIF
    +AVERAGEIFS
    +BAHTTEXT
    +BESSELI
    +BESSELJ
    +BESSELK
    +BESSELY
    +BETADIST
    +BETAINV
    +BIN2DEC
    +BIN2HEX
    +BIN2OCT
    +BINOMDIST
    +BITAND
    +BITLSHIFT
    +BITOR
    +BITRSHIFT
    +BITXOR
    +CEILING
    +CELL
    +CHAR
    +CHIDIST
    +CHIINV
    +CHITEST
    +CHOOSE
    +CLEAN
    +CODE
    +COLUMN
    +COLUMNS
    +COMBIN
    +COMPLEX
    +CONCAT
    +CONCATENATE
    +CONFIDENCE
    +CONVERT
    +CORREL
    +COS
    +COSH
    +COT
    +COTH
    +COUNT
    +COUNTA
    +COUNTBLANK
    +COUNTIF
    +COUNTIFS
    +COUPDAYBS
    +COUPDAYBS
    +COUPDAYSNC
    +COUPNCD
    +COUPNUM
    +COUPPCD
    +COVAR
    +CRITBINOM
    +CSC
    +CSCH
    +CUBEKPIMEMBER
    +CUBEMEMBER
    +CUBEMEMBERPROPERTY
    +CUBERANKEDMEMBER
    +CUBESET
    +CUBESETCOUNT
    +CUBEVALUE
    +CUMIPMT
    +CUMPRINC
    +DATE
    +DATEDIF
    +DATEVALUE
    +DAVERAGE
    +DAY
    +DAYS
    +DAYS360
    +DB
    +DCOUNT
    +DCOUNTA
    +DDB
    +DEC2BIN
    +DEC2HEX
    +DEC2OCT
    +DEGREES
    +DELTA
    +DEVSQ
    +DGET
    +DISC
    +DMAX
    +DMIN
    +DOLLAR
    +DOLLARDE
    +DOLLARFR
    +DPRODUCT
    +DSTDEV
    +DSTDEVP
    +DSUM
    +DURATION
    +DVAR
    +DVARP
    +EDATE
    +EFFECT
    +EOMONTH
    +ERF
    +ERF.PRECISE
    +ERFC
    +ERFC.PRECISE
    +ERROR.TYPE
    +EVEN
    +EXACT
    +EXP
    +EXPONDIST
    +FACT
    +FACTDOUBLE
    +FALSE
    +FDIST
    +FIND
    +FINDB
    +FINV
    +FISHER
    +FISHERINV
    +FIXED
    +FLOOR
    +FORECAST
    +FREQUENCY
    +FTEST
    +FV
    +FVSCHEDULE
    +GAMAMDIST
    +GAMMAINV
    +GAMMALN
    +GCD
    +GEOMEAN
    +GESTEP
    +GETPIVOTDATA
    +GROWTH
    +HARMEAN
    +HEX2BIN
    +HEX2OCT
    +HLOOKUP
    +HOUR
    +HYPERLINK
    +HYPGEOMDIST
    +IF
    +IFERROR
    +IMABS
    +IMAGINARY
    +IMARGUMENT
    +IMCONJUGATE
    +IMCOS
    +IMCOSH
    +IMCOT
    +IMCSC
    +IMCSCH
    +IMEXP
    +IMLN
    +IMLOG10
    +IMLOG2
    +IMPOWER
    +IMPRODUCT
    +IMREAL
    +IMSEC
    +IMSECH
    +IMSIN
    +IMSINH
    +IMSQRT
    +IMSUB
    +IMSUM
    +IMTAN
    +INDEX
    +INDIRECT
    +INFO
    +INT
    +INTERCEPT
    +INTRATE
    +IPMT
    +IRR
    +ISBLANK
    +ISERR
    +ISERROR
    +ISEVEN
    +ISLOGICAL
    +ISNA
    +ISNONTEXT
    +ISNUMBER
    +ISODD
    +ISOWEEKNUM
    +ISPMT
    +ISREF
    +ISTEXT
    +JIS
    +KURT
    +LARGE
    +LCM
    +LEFT
    +LEFTB
    +LEN
    +LENB
    +LINEST
    +LN
    +LOG
    +LOG10
    +LOGEST
    +LOGINV
    +LOGNORMDIST
    +LOOKUP
    +LOWER
    +MATCH
    +MAX
    +MAXA
    +MDETERM
    +MDURATION
    +MEDIAN
    +MID
    +MIDB
    +MIN
    +MINA
    +MINUTE
    +MINVERSE
    +MIRR
    +MMULT
    +MOD
    +MODE
    +MONTH
    +MROUND
    +MULTINOMIAL
    +N
    +NA
    +NEGBINOMDIST
    +NETWORKDAYS
    +NOMINAL
    +NORMDIST
    +NORMINV
    +NORMSDIST
    +NORMSINV
    +NOT
    +NOW
    +NPER
    +NPV
    +NUMBERVALUE
    +OCT2BIN
    +OCT2DEC
    +OCT2HEX
    +ODD
    +ODDFPRICE
    +ODDFYIELD
    +ODDLPRICE
    +ODDLYIELD
    +OFFSET
    +OR
    +PDURATION
    +PEARSON
    +PERCENTILE
    +PERCENTRANK
    +PERMUT
    +PHONETIC
    +PI
    +PMT
    +POISSON
    +POWER
    +PPMT
    +PRICE
    +PRICEDISC
    +PRICEMAT
    +PROB
    +PRODUCT
    +PROPER
    +PV
    +QUARTILE
    +QUOTIENT
    +RADIANS
    +RAND
    +RANDBETWEEN
    +RANK
    +RATE
    +RECEIVED
    +REPLACE
    +REPLACEB
    +REPT
    +RIGHT
    +RIGHTB
    +ROMAN
    +ROUND
    +ROUNDDOWN
    +ROUNDUP
    +ROW
    +ROWS
    +RRI
    +RSQ
    +RTD
    +SEARCH
    +SEARCHB
    +SEC
    +SECH
    +SECOND
    +SERIESSUM
    +SIGN
    +SIN
    +SINH
    +SKEW
    +SLN
    +SLOPE
    +SMALL
    +SQRT
    +SQRTPI
    +STANDARDIZE
    +STDEV
    +STDEV.A
    +STDEV.P
    +STDEVA
    +STDEVP
    +STDEVPA
    +STEYX
    +SUBSTITUTE
    +SUBTOTAL
    +SUM
    +SUMIF
    +SUMIFS
    +SUMPRODUCT
    +SUMSQ
    +SUMX2MY2
    +SUMX2PY2
    +SUMXMY2
    +SYD
    +T
    +TAN
    +TANH
    +TBILLEQ
    +TBILLPRICE
    +TBILLYIELD
    +TDIST
    +TEXT
    +TEXTJOIN
    +TIME
    +TIMEVALUE
    +TINV
    +TODAY
    +TRANSPOSE
    +TREND
    +TRIM
    +TRIMMEAN
    +TRUE
    +TRUNC
    +TTEST
    +TYPE
    +UNICHAR
    +UNIORD
    +UPPER
    +USDOLLAR
    +VALUE
    +VAR
    +VARA
    +VARP
    +VARPA
    +VDB
    +VLOOKUP
    +WEEKDAY
    +WEEKNUM
    +WEIBULL
    +WORKDAY
    +XIRR
    +XNPV
    +XOR
    +YEAR
    +YEARFRAC
    +YIELD
    +YIELDDISC
    +YIELDMAT
    +ZTEST
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/bg/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/bg/config
    new file mode 100644
    index 00000000000..86f94d36218
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/bg/config
    @@ -0,0 +1,27 @@
    +##
    +## PhpSpreadsheet
    +##
    +##
    +##
    +
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= лв
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #ПРАЗНО!
    +DIV0	= #ДЕЛ/0!
    +VALUE	= #СТОЙНОСТ!
    +REF	= #РЕФ!
    +NAME	= #ИМЕ?
    +NUM	= #ЧИСЛО!
    +NA	= #Н/Д
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/bg/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/bg/functions
    new file mode 100644
    index 00000000000..4bc1574ee27
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/bg/functions
    @@ -0,0 +1,417 @@
    +##
    +## PhpSpreadsheet
    +##
    +##
    +## Data in this file derived from information provided by web-junior (http://www.web-junior.net/)
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions				Функции надстроек и автоматизации
    +##
    +GETPIVOTDATA		= ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ	##	Возвращает данные, хранящиеся в отчете сводной таблицы.
    +
    +
    +##
    +##	Cube functions						Функции Куб
    +##
    +CUBEKPIMEMBER		= КУБЭЛЕМЕНТКИП				##	Возвращает свойство ключевого индикатора производительности «(КИП)» и отображает имя «КИП» в ячейке. «КИП» представляет собой количественную величину, такую как ежемесячная валовая прибыль или ежеквартальная текучесть кадров, используемой для контроля эффективности работы организации.
    +CUBEMEMBER		= КУБЭЛЕМЕНТ				##	Возвращает элемент или кортеж из куба. Используется для проверки существования элемента или кортежа в кубе.
    +CUBEMEMBERPROPERTY	= КУБСВОЙСТВОЭЛЕМЕНТА			##	Возвращает значение свойства элемента из куба. Используется для проверки существования имени элемента в кубе и возвращает указанное свойство для этого элемента.
    +CUBERANKEDMEMBER	= КУБПОРЭЛЕМЕНТ				##	Возвращает n-ый или ранжированный элемент в множество. Используется для возвращения одного или нескольких элементов в множество, например, лучшего продавца или 10 лучших студентов.
    +CUBESET			= КУБМНОЖ				##	Определяет вычислительное множество элементов или кортежей, отправляя на сервер выражение, которое создает множество, а затем возвращает его в Microsoft Office Excel.
    +CUBESETCOUNT		= КУБЧИСЛОЭЛМНОЖ			##	Возвращает число элементов множества.
    +CUBEVALUE		= КУБЗНАЧЕНИЕ				##	Возвращает обобщенное значение из куба.
    +
    +
    +##
    +##	Database functions					Функции для работы с базами данных
    +##
    +DAVERAGE		= ДСРЗНАЧ				##	Возвращает среднее значение выбранных записей базы данных.
    +DCOUNT			= БСЧЁТ					##	Подсчитывает количество числовых ячеек в базе данных.
    +DCOUNTA			= БСЧЁТА				##	Подсчитывает количество непустых ячеек в базе данных.
    +DGET			= БИЗВЛЕЧЬ				##	Извлекает из базы данных одну запись, удовлетворяющую заданному условию.
    +DMAX			= ДМАКС					##	Возвращает максимальное значение среди выделенных записей базы данных.
    +DMIN			= ДМИН					##	Возвращает минимальное значение среди выделенных записей базы данных.
    +DPRODUCT		= БДПРОИЗВЕД				##	Перемножает значения определенного поля в записях базы данных, удовлетворяющих условию.
    +DSTDEV			= ДСТАНДОТКЛ				##	Оценивает стандартное отклонение по выборке для выделенных записей базы данных.
    +DSTDEVP			= ДСТАНДОТКЛП				##	Вычисляет стандартное отклонение по генеральной совокупности для выделенных записей базы данных
    +DSUM			= БДСУММ				##	Суммирует числа в поле для записей базы данных, удовлетворяющих условию.
    +DVAR			= БДДИСП				##	Оценивает дисперсию по выборке из выделенных записей базы данных
    +DVARP			= БДДИСПП				##	Вычисляет дисперсию по генеральной совокупности для выделенных записей базы данных
    +
    +
    +##
    +##	Date and time functions					Функции даты и времени
    +##
    +DATE			= ДАТА					##	Возвращает заданную дату в числовом формате.
    +DATEVALUE		= ДАТАЗНАЧ				##	Преобразует дату из текстового формата в числовой формат.
    +DAY			= ДЕНЬ					##	Преобразует дату в числовом формате в день месяца.
    +DAYS360			= ДНЕЙ360				##	Вычисляет количество дней между двумя датами на основе 360-дневного года.
    +EDATE			= ДАТАМЕС				##	Возвращает дату в числовом формате, отстоящую на заданное число месяцев вперед или назад от начальной даты.
    +EOMONTH			= КОНМЕСЯЦА				##	Возвращает дату в числовом формате для последнего дня месяца, отстоящего вперед или назад на заданное число месяцев.
    +HOUR			= ЧАС					##	Преобразует дату в числовом формате в часы.
    +MINUTE			= МИНУТЫ				##	Преобразует дату в числовом формате в минуты.
    +MONTH			= МЕСЯЦ					##	Преобразует дату в числовом формате в месяцы.
    +NETWORKDAYS		= ЧИСТРАБДНИ				##	Возвращает количество рабочих дней между двумя датами.
    +NOW			= ТДАТА					##	Возвращает текущую дату и время в числовом формате.
    +SECOND			= СЕКУНДЫ				##	Преобразует дату в числовом формате в секунды.
    +TIME			= ВРЕМЯ					##	Возвращает заданное время в числовом формате.
    +TIMEVALUE		= ВРЕМЗНАЧ				##	Преобразует время из текстового формата в числовой формат.
    +TODAY			= СЕГОДНЯ				##	Возвращает текущую дату в числовом формате.
    +WEEKDAY			= ДЕНЬНЕД				##	Преобразует дату в числовом формате в день недели.
    +WEEKNUM			= НОМНЕДЕЛИ				##	Преобразует числовое представление в число, которое указывает, на какую неделю года приходится указанная дата.
    +WORKDAY			= РАБДЕНЬ				##	Возвращает дату в числовом формате, отстоящую вперед или назад на заданное количество рабочих дней.
    +YEAR			= ГОД					##	Преобразует дату в числовом формате в год.
    +YEARFRAC		= ДОЛЯГОДА				##	Возвращает долю года, которую составляет количество дней между начальной и конечной датами.
    +
    +
    +##
    +##	Engineering functions					Инженерные функции
    +##
    +BESSELI			= БЕССЕЛЬ.I	 			##	Возвращает модифицированную функцию Бесселя In(x).
    +BESSELJ			= БЕССЕЛЬ.J				##	Возвращает функцию Бесселя Jn(x).
    +BESSELK			= БЕССЕЛЬ.K				##	Возвращает модифицированную функцию Бесселя Kn(x).
    +BESSELY			= БЕССЕЛЬ.Y				##	Возвращает функцию Бесселя Yn(x).
    +BIN2DEC			= ДВ.В.ДЕС				##	Преобразует двоичное число в десятичное.
    +BIN2HEX			= ДВ.В.ШЕСТН				##	Преобразует двоичное число в шестнадцатеричное.
    +BIN2OCT			= ДВ.В.ВОСЬМ				##	Преобразует двоичное число в восьмеричное.
    +COMPLEX			= КОМПЛЕКСН				##	Преобразует коэффициенты при вещественной и мнимой частях комплексного числа в комплексное число.
    +CONVERT			= ПРЕОБР				##	Преобразует число из одной системы единиц измерения в другую.
    +DEC2BIN			= ДЕС.В.ДВ				##	Преобразует десятичное число в двоичное.
    +DEC2HEX			= ДЕС.В.ШЕСТН				##	Преобразует десятичное число в шестнадцатеричное.
    +DEC2OCT			= ДЕС.В.ВОСЬМ				##	Преобразует десятичное число в восьмеричное.
    +DELTA			= ДЕЛЬТА				##	Проверяет равенство двух значений.
    +ERF			= ФОШ					##	Возвращает функцию ошибки.
    +ERFC			= ДФОШ					##	Возвращает дополнительную функцию ошибки.
    +GESTEP			= ПОРОГ					##	Проверяет, не превышает ли данное число порогового значения.
    +HEX2BIN			= ШЕСТН.В.ДВ				##	Преобразует шестнадцатеричное число в двоичное.
    +HEX2DEC			= ШЕСТН.В.ДЕС				##	Преобразует шестнадцатеричное число в десятичное.
    +HEX2OCT			= ШЕСТН.В.ВОСЬМ				##	Преобразует шестнадцатеричное число в восьмеричное.
    +IMABS			= МНИМ.ABS				##	Возвращает абсолютную величину (модуль) комплексного числа.
    +IMAGINARY		= МНИМ.ЧАСТЬ				##	Возвращает коэффициент при мнимой части комплексного числа.
    +IMARGUMENT		= МНИМ.АРГУМЕНТ				##	Возвращает значение аргумента комплексного числа (тета) — угол, выраженный в радианах.
    +IMCONJUGATE		= МНИМ.СОПРЯЖ				##	Возвращает комплексно-сопряженное комплексное число.
    +IMCOS			= МНИМ.COS				##	Возвращает косинус комплексного числа.
    +IMDIV			= МНИМ.ДЕЛ				##	Возвращает частное от деления двух комплексных чисел.
    +IMEXP			= МНИМ.EXP				##	Возвращает экспоненту комплексного числа.
    +IMLN			= МНИМ.LN				##	Возвращает натуральный логарифм комплексного числа.
    +IMLOG10			= МНИМ.LOG10				##	Возвращает обычный (десятичный) логарифм комплексного числа.
    +IMLOG2			= МНИМ.LOG2				##	Возвращает двоичный логарифм комплексного числа.
    +IMPOWER			= МНИМ.СТЕПЕНЬ				##	Возвращает комплексное число, возведенное в целую степень.
    +IMPRODUCT		= МНИМ.ПРОИЗВЕД				##	Возвращает произведение от 2 до 29 комплексных чисел.
    +IMREAL			= МНИМ.ВЕЩ				##	Возвращает коэффициент при вещественной части комплексного числа.
    +IMSIN			= МНИМ.SIN				##	Возвращает синус комплексного числа.
    +IMSQRT			= МНИМ.КОРЕНЬ				##	Возвращает значение квадратного корня из комплексного числа.
    +IMSUB			= МНИМ.РАЗН				##	Возвращает разность двух комплексных чисел.
    +IMSUM			= МНИМ.СУММ				##	Возвращает сумму комплексных чисел.
    +OCT2BIN			= ВОСЬМ.В.ДВ				##	Преобразует восьмеричное число в двоичное.
    +OCT2DEC			= ВОСЬМ.В.ДЕС				##	Преобразует восьмеричное число в десятичное.
    +OCT2HEX			= ВОСЬМ.В.ШЕСТН				##	Преобразует восьмеричное число в шестнадцатеричное.
    +
    +
    +##
    +##	Financial functions					Финансовые функции
    +##
    +ACCRINT			= НАКОПДОХОД				##	Возвращает накопленный процент по ценным бумагам с периодической выплатой процентов.
    +ACCRINTM		= НАКОПДОХОДПОГАШ			##	Возвращает накопленный процент по ценным бумагам, проценты по которым выплачиваются в срок погашения.
    +AMORDEGRC		= АМОРУМ				##	Возвращает величину амортизации для каждого периода, используя коэффициент амортизации.
    +AMORLINC		= АМОРУВ				##	Возвращает величину амортизации для каждого периода.
    +COUPDAYBS		= ДНЕЙКУПОНДО				##	Возвращает количество дней от начала действия купона до даты соглашения.
    +COUPDAYS		= ДНЕЙКУПОН				##	Возвращает число дней в периоде купона, содержащем дату соглашения.
    +COUPDAYSNC		= ДНЕЙКУПОНПОСЛЕ			##	Возвращает число дней от даты соглашения до срока следующего купона.
    +COUPNCD			= ДАТАКУПОНПОСЛЕ			##	Возвращает следующую дату купона после даты соглашения.
    +COUPNUM			= ЧИСЛКУПОН				##	Возвращает количество купонов, которые могут быть оплачены между датой соглашения и сроком вступления в силу.
    +COUPPCD			= ДАТАКУПОНДО				##	Возвращает предыдущую дату купона перед датой соглашения.
    +CUMIPMT			= ОБЩПЛАТ				##	Возвращает общую выплату, произведенную между двумя периодическими выплатами.
    +CUMPRINC		= ОБЩДОХОД				##	Возвращает общую выплату по займу между двумя периодами.
    +DB			= ФУО					##	Возвращает величину амортизации актива для заданного периода, рассчитанную методом фиксированного уменьшения остатка.
    +DDB			= ДДОБ					##	Возвращает величину амортизации актива за данный период, используя метод двойного уменьшения остатка или иной явно указанный метод.
    +DISC			= СКИДКА				##	Возвращает норму скидки для ценных бумаг.
    +DOLLARDE		= РУБЛЬ.ДЕС				##	Преобразует цену в рублях, выраженную в виде дроби, в цену в рублях, выраженную десятичным числом.
    +DOLLARFR		= РУБЛЬ.ДРОБЬ				##	Преобразует цену в рублях, выраженную десятичным числом, в цену в рублях, выраженную в виде дроби.
    +DURATION		= ДЛИТ					##	Возвращает ежегодную продолжительность действия ценных бумаг с периодическими выплатами по процентам.
    +EFFECT			= ЭФФЕКТ				##	Возвращает действующие ежегодные процентные ставки.
    +FV			= БС					##	Возвращает будущую стоимость инвестиции.
    +FVSCHEDULE		= БЗРАСПИС				##	Возвращает будущую стоимость первоначальной основной суммы после начисления ряда сложных процентов.
    +INTRATE			= ИНОРМА				##	Возвращает процентную ставку для полностью инвестированных ценных бумаг.
    +IPMT			= ПРПЛТ					##	Возвращает величину выплаты прибыли на вложения за данный период.
    +IRR			= ВСД					##	Возвращает внутреннюю ставку доходности для ряда потоков денежных средств.
    +ISPMT			= ПРОЦПЛАТ				##	Вычисляет выплаты за указанный период инвестиции.
    +MDURATION		= МДЛИТ					##	Возвращает модифицированную длительность Маколея для ценных бумаг с предполагаемой номинальной стоимостью 100 рублей.
    +MIRR			= МВСД					##	Возвращает внутреннюю ставку доходности, при которой положительные и отрицательные денежные потоки имеют разные значения ставки.
    +NOMINAL			= НОМИНАЛ				##	Возвращает номинальную годовую процентную ставку.
    +NPER			= КПЕР					##	Возвращает общее количество периодов выплаты для данного вклада.
    +NPV			= ЧПС					##	Возвращает чистую приведенную стоимость инвестиции, основанной на серии периодических денежных потоков и ставке дисконтирования.
    +ODDFPRICE		= ЦЕНАПЕРВНЕРЕГ				##	Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг с нерегулярным первым периодом.
    +ODDFYIELD		= ДОХОДПЕРВНЕРЕГ			##	Возвращает доход по ценным бумагам с нерегулярным первым периодом.
    +ODDLPRICE		= ЦЕНАПОСЛНЕРЕГ				##	Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг с нерегулярным последним периодом.
    +ODDLYIELD		= ДОХОДПОСЛНЕРЕГ			##	Возвращает доход по ценным бумагам с нерегулярным последним периодом.
    +PMT			= ПЛТ					##	Возвращает величину выплаты за один период аннуитета.
    +PPMT			= ОСПЛТ					##	Возвращает величину выплат в погашение основной суммы по инвестиции за заданный период.
    +PRICE			= ЦЕНА					##	Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг, по которым производится периодическая выплата процентов.
    +PRICEDISC		= ЦЕНАСКИДКА				##	Возвращает цену за 100 рублей номинальной стоимости ценных бумаг, на которые сделана скидка.
    +PRICEMAT		= ЦЕНАПОГАШ				##	Возвращает цену за 100 рублей номинальной стоимости ценных бумаг, проценты по которым выплачиваются в срок погашения.
    +PV			= ПС					##	Возвращает приведенную (к текущему моменту) стоимость инвестиции.
    +RATE			= СТАВКА				##	Возвращает процентную ставку по аннуитету за один период.
    +RECEIVED		= ПОЛУЧЕНО				##	Возвращает сумму, полученную к сроку погашения полностью обеспеченных ценных бумаг.
    +SLN			= АПЛ					##	Возвращает величину линейной амортизации актива за один период.
    +SYD			= АСЧ					##	Возвращает величину амортизации актива за данный период, рассчитанную методом суммы годовых чисел.
    +TBILLEQ			= РАВНОКЧЕК				##	Возвращает эквивалентный облигации доход по казначейскому чеку.
    +TBILLPRICE		= ЦЕНАКЧЕК				##	Возвращает цену за 100 рублей нарицательной стоимости для казначейского чека.
    +TBILLYIELD		= ДОХОДКЧЕК				##	Возвращает доход по казначейскому чеку.
    +VDB			= ПУО					##	Возвращает величину амортизации актива для указанного или частичного периода при использовании метода сокращающегося баланса.
    +XIRR			= ЧИСТВНДОХ				##	Возвращает внутреннюю ставку доходности для графика денежных потоков, которые не обязательно носят периодический характер.
    +XNPV			= ЧИСТНЗ				##	Возвращает чистую приведенную стоимость для денежных потоков, которые не обязательно являются периодическими.
    +YIELD			= ДОХОД					##	Возвращает доход от ценных бумаг, по которым производятся периодические выплаты процентов.
    +YIELDDISC		= ДОХОДСКИДКА				##	Возвращает годовой доход по ценным бумагам, на которые сделана скидка (пример — казначейские чеки).
    +YIELDMAT		= ДОХОДПОГАШ				##	Возвращает годовой доход от ценных бумаг, проценты по которым выплачиваются в срок погашения.
    +
    +
    +##
    +##	Information functions					Информационные функции
    +##
    +CELL			= ЯЧЕЙКА				##	Возвращает информацию о формате, расположении или содержимом ячейки.
    +ERROR.TYPE		= ТИП.ОШИБКИ				##	Возвращает числовой код, соответствующий типу ошибки.
    +INFO			= ИНФОРМ				##	Возвращает информацию о текущей операционной среде.
    +ISBLANK			= ЕПУСТО				##	Возвращает значение ИСТИНА, если аргумент является ссылкой на пустую ячейку.
    +ISERR			= ЕОШ					##	Возвращает значение ИСТИНА, если аргумент ссылается на любое значение ошибки, кроме #Н/Д.
    +ISERROR			= ЕОШИБКА				##	Возвращает значение ИСТИНА, если аргумент ссылается на любое значение ошибки.
    +ISEVEN			= ЕЧЁТН					##	Возвращает значение ИСТИНА, если значение аргумента является четным числом.
    +ISLOGICAL		= ЕЛОГИЧ				##	Возвращает значение ИСТИНА, если аргумент ссылается на логическое значение.
    +ISNA			= ЕНД					##	Возвращает значение ИСТИНА, если аргумент ссылается на значение ошибки #Н/Д.
    +ISNONTEXT		= ЕНЕТЕКСТ				##	Возвращает значение ИСТИНА, если значение аргумента не является текстом.
    +ISNUMBER		= ЕЧИСЛО				##	Возвращает значение ИСТИНА, если аргумент ссылается на число.
    +ISODD			= ЕНЕЧЁТ				##	Возвращает значение ИСТИНА, если значение аргумента является нечетным числом.
    +ISREF			= ЕССЫЛКА				##	Возвращает значение ИСТИНА, если значение аргумента является ссылкой.
    +ISTEXT			= ЕТЕКСТ				##	Возвращает значение ИСТИНА, если значение аргумента является текстом.
    +N			= Ч					##	Возвращает значение, преобразованное в число.
    +NA			= НД					##	Возвращает значение ошибки #Н/Д.
    +TYPE			= ТИП					##	Возвращает число, обозначающее тип данных значения.
    +
    +
    +##
    +##	Logical functions					Логические функции
    +##
    +AND			= И					##	Renvoie VRAI si tous ses arguments sont VRAI.
    +FALSE			= ЛОЖЬ					##	Возвращает логическое значение ЛОЖЬ.
    +IF			= ЕСЛИ					##	Выполняет проверку условия.
    +IFERROR			= ЕСЛИОШИБКА				##	Возвращает введённое значение, если вычисление по формуле вызывает ошибку; в противном случае функция возвращает результат вычисления.
    +NOT			= НЕ					##	Меняет логическое значение своего аргумента на противоположное.
    +OR			= ИЛИ					##	Возвращает значение ИСТИНА, если хотя бы один аргумент имеет значение ИСТИНА.
    +TRUE			= ИСТИНА				##	Возвращает логическое значение ИСТИНА.
    +
    +
    +##
    +##	Lookup and reference functions				Функции ссылки и поиска
    +##
    +ADDRESS			= АДРЕС					##	Возвращает ссылку на отдельную ячейку листа в виде текста.
    +AREAS			= ОБЛАСТИ				##	Возвращает количество областей в ссылке.
    +CHOOSE			= ВЫБОР					##	Выбирает значение из списка значений по индексу.
    +COLUMN			= СТОЛБЕЦ				##	Возвращает номер столбца, на который указывает ссылка.
    +COLUMNS			= ЧИСЛСТОЛБ				##	Возвращает количество столбцов в ссылке.
    +HLOOKUP			= ГПР					##	Ищет в первой строке массива и возвращает значение отмеченной ячейки
    +HYPERLINK		= ГИПЕРССЫЛКА				##	Создает ссылку, открывающую документ, который находится на сервере сети, в интрасети или в Интернете.
    +INDEX			= ИНДЕКС				##	Использует индекс для выбора значения из ссылки или массива.
    +INDIRECT		= ДВССЫЛ				##	Возвращает ссылку, заданную текстовым значением.
    +LOOKUP			= ПРОСМОТР				##	Ищет значения в векторе или массиве.
    +MATCH			= ПОИСКПОЗ				##	Ищет значения в ссылке или массиве.
    +OFFSET			= СМЕЩ					##	Возвращает смещение ссылки относительно заданной ссылки.
    +ROW			= СТРОКА				##	Возвращает номер строки, определяемой ссылкой.
    +ROWS			= ЧСТРОК				##	Возвращает количество строк в ссылке.
    +RTD			= ДРВ					##	Извлекает данные реального времени из программ, поддерживающих автоматизацию COM (Программирование объектов. Стандартное средство для работы с объектами некоторого приложения из другого приложения или средства разработки. Программирование объектов (ранее называемое программированием OLE) является функцией модели COM (Component Object Model, модель компонентных объектов).).
    +TRANSPOSE		= ТРАНСП				##	Возвращает транспонированный массив.
    +VLOOKUP			= ВПР					##	Ищет значение в первом столбце массива и возвращает значение из ячейки в найденной строке и указанном столбце.
    +
    +
    +##
    +##	Math and trigonometry functions				Математические и тригонометрические функции
    +##
    +ABS			= ABS					##	Возвращает модуль (абсолютную величину) числа.
    +ACOS			= ACOS					##	Возвращает арккосинус числа.
    +ACOSH			= ACOSH					##	Возвращает гиперболический арккосинус числа.
    +ASIN			= ASIN					##	Возвращает арксинус числа.
    +ASINH			= ASINH					##	Возвращает гиперболический арксинус числа.
    +ATAN			= ATAN					##	Возвращает арктангенс числа.
    +ATAN2			= ATAN2					##	Возвращает арктангенс для заданных координат x и y.
    +ATANH			= ATANH					##	Возвращает гиперболический арктангенс числа.
    +CEILING			= ОКРВВЕРХ				##	Округляет число до ближайшего целого или до ближайшего кратного указанному значению.
    +COMBIN			= ЧИСЛКОМБ				##	Возвращает количество комбинаций для заданного числа объектов.
    +COS			= COS					##	Возвращает косинус числа.
    +COSH			= COSH					##	Возвращает гиперболический косинус числа.
    +DEGREES			= ГРАДУСЫ				##	Преобразует радианы в градусы.
    +EVEN			= ЧЁТН					##	Округляет число до ближайшего четного целого.
    +EXP			= EXP					##	Возвращает число e, возведенное в указанную степень.
    +FACT			= ФАКТР					##	Возвращает факториал числа.
    +FACTDOUBLE		= ДВФАКТР				##	Возвращает двойной факториал числа.
    +FLOOR			= ОКРВНИЗ				##	Округляет число до ближайшего меньшего по модулю значения.
    +GCD			= НОД					##	Возвращает наибольший общий делитель.
    +INT			= ЦЕЛОЕ					##	Округляет число до ближайшего меньшего целого.
    +LCM			= НОК					##	Возвращает наименьшее общее кратное.
    +LN			= LN					##	Возвращает натуральный логарифм числа.
    +LOG			= LOG					##	Возвращает логарифм числа по заданному основанию.
    +LOG10			= LOG10					##	Возвращает десятичный логарифм числа.
    +MDETERM			= МОПРЕД				##	Возвращает определитель матрицы массива.
    +MINVERSE		= МОБР					##	Возвращает обратную матрицу массива.
    +MMULT			= МУМНОЖ				##	Возвращает произведение матриц двух массивов.
    +MOD			= ОСТАТ					##	Возвращает остаток от деления.
    +MROUND			= ОКРУГЛТ				##	Возвращает число, округленное с требуемой точностью.
    +MULTINOMIAL		= МУЛЬТИНОМ				##	Возвращает мультиномиальный коэффициент множества чисел.
    +ODD			= НЕЧЁТ					##	Округляет число до ближайшего нечетного целого.
    +PI			= ПИ					##	Возвращает число пи.
    +POWER			= СТЕПЕНЬ				##	Возвращает результат возведения числа в степень.
    +PRODUCT			= ПРОИЗВЕД				##	Возвращает произведение аргументов.
    +QUOTIENT		= ЧАСТНОЕ				##	Возвращает целую часть частного при делении.
    +RADIANS			= РАДИАНЫ				##	Преобразует градусы в радианы.
    +RAND			= СЛЧИС					##	Возвращает случайное число в интервале от 0 до 1.
    +RANDBETWEEN		= СЛУЧМЕЖДУ				##	Возвращает случайное число в интервале между двумя заданными числами.
    +ROMAN			= РИМСКОЕ				##	Преобразует арабские цифры в римские в виде текста.
    +ROUND			= ОКРУГЛ				##	Округляет число до указанного количества десятичных разрядов.
    +ROUNDDOWN		= ОКРУГЛВНИЗ				##	Округляет число до ближайшего меньшего по модулю значения.
    +ROUNDUP			= ОКРУГЛВВЕРХ				##	Округляет число до ближайшего большего по модулю значения.
    +SERIESSUM		= РЯД.СУММ				##	Возвращает сумму степенного ряда, вычисленную по формуле.
    +SIGN			= ЗНАК					##	Возвращает знак числа.
    +SIN			= SIN					##	Возвращает синус заданного угла.
    +SINH			= SINH					##	Возвращает гиперболический синус числа.
    +SQRT			= КОРЕНЬ				##	Возвращает положительное значение квадратного корня.
    +SQRTPI			= КОРЕНЬПИ				##	Возвращает квадратный корень из значения выражения (число * ПИ).
    +SUBTOTAL		= ПРОМЕЖУТОЧНЫЕ.ИТОГИ			##	Возвращает промежуточный итог в списке или базе данных.
    +SUM			= СУММ					##	Суммирует аргументы.
    +SUMIF			= СУММЕСЛИ				##	Суммирует ячейки, удовлетворяющие заданному условию.
    +SUMIFS			= СУММЕСЛИМН				##	Суммирует диапазон ячеек, удовлетворяющих нескольким условиям.
    +SUMPRODUCT		= СУММПРОИЗВ				##	Возвращает сумму произведений соответствующих элементов массивов.
    +SUMSQ			= СУММКВ				##	Возвращает сумму квадратов аргументов.
    +SUMX2MY2		= СУММРАЗНКВ				##	Возвращает сумму разностей квадратов соответствующих значений в двух массивах.
    +SUMX2PY2		= СУММСУММКВ				##	Возвращает сумму сумм квадратов соответствующих элементов двух массивов.
    +SUMXMY2			= СУММКВРАЗН				##	Возвращает сумму квадратов разностей соответствующих значений в двух массивах.
    +TAN			= TAN					##	Возвращает тангенс числа.
    +TANH			= TANH					##	Возвращает гиперболический тангенс числа.
    +TRUNC			= ОТБР					##	Отбрасывает дробную часть числа.
    +
    +
    +##
    +##	Statistical functions					Статистические функции
    +##
    +AVEDEV			= СРОТКЛ				##	Возвращает среднее арифметическое абсолютных значений отклонений точек данных от среднего.
    +AVERAGE			= СРЗНАЧ				##	Возвращает среднее арифметическое аргументов.
    +AVERAGEA		= СРЗНАЧА				##	Возвращает среднее арифметическое аргументов, включая числа, текст и логические значения.
    +AVERAGEIF		= СРЗНАЧЕСЛИ 				##	Возвращает среднее значение (среднее арифметическое) всех ячеек в диапазоне, которые удовлетворяют данному условию.
    +AVERAGEIFS		= СРЗНАЧЕСЛИМН 				##	Возвращает среднее значение (среднее арифметическое) всех ячеек, которые удовлетворяют нескольким условиям.
    +BETADIST		= БЕТАРАСП				##	Возвращает интегральную функцию бета-распределения.
    +BETAINV			= БЕТАОБР				##	Возвращает обратную интегральную функцию указанного бета-распределения.
    +BINOMDIST		= БИНОМРАСП				##	Возвращает отдельное значение биномиального распределения.
    +CHIDIST			= ХИ2РАСП				##	Возвращает одностороннюю вероятность распределения хи-квадрат.
    +CHIINV			= ХИ2ОБР				##	Возвращает обратное значение односторонней вероятности распределения хи-квадрат.
    +CHITEST			= ХИ2ТЕСТ				##	Возвращает тест на независимость.
    +CONFIDENCE		= ДОВЕРИТ				##	Возвращает доверительный интервал для среднего значения по генеральной совокупности.
    +CORREL			= КОРРЕЛ				##	Возвращает коэффициент корреляции между двумя множествами данных.
    +COUNT			= СЧЁТ					##	Подсчитывает количество чисел в списке аргументов.
    +COUNTA			= СЧЁТЗ					##	Подсчитывает количество значений в списке аргументов.
    +COUNTBLANK		= СЧИТАТЬПУСТОТЫ			##	Подсчитывает количество пустых ячеек в диапазоне
    +COUNTIF			= СЧЁТЕСЛИ 				##	Подсчитывает количество ячеек в диапазоне, удовлетворяющих заданному условию
    +COUNTIFS		= СЧЁТЕСЛИМН				##	Подсчитывает количество ячеек внутри диапазона, удовлетворяющих нескольким условиям.
    +COVAR			= КОВАР					##	Возвращает ковариацию, среднее произведений парных отклонений
    +CRITBINOM		= КРИТБИНОМ				##	Возвращает наименьшее значение, для которого интегральное биномиальное распределение меньше или равно заданному критерию.
    +DEVSQ			= КВАДРОТКЛ				##	Возвращает сумму квадратов отклонений.
    +EXPONDIST		= ЭКСПРАСП				##	Возвращает экспоненциальное распределение.
    +FDIST			= FРАСП					##	Возвращает F-распределение вероятности.
    +FINV			= FРАСПОБР				##	Возвращает обратное значение для F-распределения вероятности.
    +FISHER			= ФИШЕР					##	Возвращает преобразование Фишера.
    +FISHERINV		= ФИШЕРОБР				##	Возвращает обратное преобразование Фишера.
    +FORECAST		= ПРЕДСКАЗ				##	Возвращает значение линейного тренда.
    +FREQUENCY		= ЧАСТОТА				##	Возвращает распределение частот в виде вертикального массива.
    +FTEST			= ФТЕСТ					##	Возвращает результат F-теста.
    +GAMMADIST		= ГАММАРАСП				##	Возвращает гамма-распределение.
    +GAMMAINV		= ГАММАОБР				##	Возвращает обратное гамма-распределение.
    +GAMMALN			= ГАММАНЛОГ				##	Возвращает натуральный логарифм гамма функции, Γ(x).
    +GEOMEAN			= СРГЕОМ				##	Возвращает среднее геометрическое.
    +GROWTH			= РОСТ					##	Возвращает значения в соответствии с экспоненциальным трендом.
    +HARMEAN			= СРГАРМ				##	Возвращает среднее гармоническое.
    +HYPGEOMDIST		= ГИПЕРГЕОМЕТ				##	Возвращает гипергеометрическое распределение.
    +INTERCEPT		= ОТРЕЗОК				##	Возвращает отрезок, отсекаемый на оси линией линейной регрессии.
    +KURT			= ЭКСЦЕСС				##	Возвращает эксцесс множества данных.
    +LARGE			= НАИБОЛЬШИЙ				##	Возвращает k-ое наибольшее значение в множестве данных.
    +LINEST			= ЛИНЕЙН				##	Возвращает параметры линейного тренда.
    +LOGEST			= ЛГРФПРИБЛ				##	Возвращает параметры экспоненциального тренда.
    +LOGINV			= ЛОГНОРМОБР				##	Возвращает обратное логарифмическое нормальное распределение.
    +LOGNORMDIST		= ЛОГНОРМРАСП				##	Возвращает интегральное логарифмическое нормальное распределение.
    +MAX			= МАКС					##	Возвращает наибольшее значение в списке аргументов.
    +MAXA			= МАКСА					##	Возвращает наибольшее значение в списке аргументов, включая числа, текст и логические значения.
    +MEDIAN			= МЕДИАНА				##	Возвращает медиану заданных чисел.
    +MIN			= МИН					##	Возвращает наименьшее значение в списке аргументов.
    +MINA			= МИНА					##	Возвращает наименьшее значение в списке аргументов, включая числа, текст и логические значения.
    +MODE			= МОДА					##	Возвращает значение моды множества данных.
    +NEGBINOMDIST		= ОТРБИНОМРАСП				##	Возвращает отрицательное биномиальное распределение.
    +NORMDIST		= НОРМРАСП				##	Возвращает нормальную функцию распределения.
    +NORMINV			= НОРМОБР				##	Возвращает обратное нормальное распределение.
    +NORMSDIST		= НОРМСТРАСП				##	Возвращает стандартное нормальное интегральное распределение.
    +NORMSINV		= НОРМСТОБР				##	Возвращает обратное значение стандартного нормального распределения.
    +PEARSON			= ПИРСОН				##	Возвращает коэффициент корреляции Пирсона.
    +PERCENTILE		= ПЕРСЕНТИЛЬ				##	Возвращает k-ую персентиль для значений диапазона.
    +PERCENTRANK		= ПРОЦЕНТРАНГ				##	Возвращает процентную норму значения в множестве данных.
    +PERMUT			= ПЕРЕСТ				##	Возвращает количество перестановок для заданного числа объектов.
    +POISSON			= ПУАССОН				##	Возвращает распределение Пуассона.
    +PROB			= ВЕРОЯТНОСТЬ				##	Возвращает вероятность того, что значение из диапазона находится внутри заданных пределов.
    +QUARTILE		= КВАРТИЛЬ				##	Возвращает квартиль множества данных.
    +RANK			= РАНГ					##	Возвращает ранг числа в списке чисел.
    +RSQ			= КВПИРСОН				##	Возвращает квадрат коэффициента корреляции Пирсона.
    +SKEW			= СКОС					##	Возвращает асимметрию распределения.
    +SLOPE			= НАКЛОН				##	Возвращает наклон линии линейной регрессии.
    +SMALL			= НАИМЕНЬШИЙ				##	Возвращает k-ое наименьшее значение в множестве данных.
    +STANDARDIZE		= НОРМАЛИЗАЦИЯ				##	Возвращает нормализованное значение.
    +STDEV			= СТАНДОТКЛОН				##	Оценивает стандартное отклонение по выборке.
    +STDEVA			= СТАНДОТКЛОНА				##	Оценивает стандартное отклонение по выборке, включая числа, текст и логические значения.
    +STDEVP			= СТАНДОТКЛОНП				##	Вычисляет стандартное отклонение по генеральной совокупности.
    +STDEVPA			= СТАНДОТКЛОНПА				##	Вычисляет стандартное отклонение по генеральной совокупности, включая числа, текст и логические значения.
    +STEYX			= СТОШYX				##	Возвращает стандартную ошибку предсказанных значений y для каждого значения x в регрессии.
    +TDIST			= СТЬЮДРАСП				##	Возвращает t-распределение Стьюдента.
    +TINV			= СТЬЮДРАСПОБР				##	Возвращает обратное t-распределение Стьюдента.
    +TREND			= ТЕНДЕНЦИЯ				##	Возвращает значения в соответствии с линейным трендом.
    +TRIMMEAN		= УРЕЗСРЕДНЕЕ				##	Возвращает среднее внутренности множества данных.
    +TTEST			= ТТЕСТ					##	Возвращает вероятность, соответствующую критерию Стьюдента.
    +VAR			= ДИСП					##	Оценивает дисперсию по выборке.
    +VARA			= ДИСПА					##	Оценивает дисперсию по выборке, включая числа, текст и логические значения.
    +VARP			= ДИСПР					##	Вычисляет дисперсию для генеральной совокупности.
    +VARPA			= ДИСПРА				##	Вычисляет дисперсию для генеральной совокупности, включая числа, текст и логические значения.
    +WEIBULL			= ВЕЙБУЛЛ				##	Возвращает распределение Вейбулла.
    +ZTEST			= ZТЕСТ					##	Возвращает двустороннее P-значение z-теста.
    +
    +
    +##
    +##	Text functions						Текстовые функции
    +##
    +ASC			= ASC					##	Для языков с двухбайтовыми наборами знаков (например, катакана) преобразует полноширинные (двухбайтовые) знаки в полуширинные (однобайтовые).
    +BAHTTEXT		= БАТТЕКСТ				##	Преобразует число в текст, используя денежный формат ß (БАТ).
    +CHAR			= СИМВОЛ				##	Возвращает знак с заданным кодом.
    +CLEAN			= ПЕЧСИМВ				##	Удаляет все непечатаемые знаки из текста.
    +CODE			= КОДСИМВ				##	Возвращает числовой код первого знака в текстовой строке.
    +CONCATENATE		= СЦЕПИТЬ				##	Объединяет несколько текстовых элементов в один.
    +DOLLAR			= РУБЛЬ					##	Преобразует число в текст, используя денежный формат.
    +EXACT			= СОВПАД				##	Проверяет идентичность двух текстовых значений.
    +FIND			= НАЙТИ					##	Ищет вхождения одного текстового значения в другом (с учетом регистра).
    +FINDB			= НАЙТИБ				##	Ищет вхождения одного текстового значения в другом (с учетом регистра).
    +FIXED			= ФИКСИРОВАННЫЙ				##	Форматирует число и преобразует его в текст с заданным числом десятичных знаков.
    +JIS			= JIS					##	Для языков с двухбайтовыми наборами знаков (например, катакана) преобразует полуширинные (однобайтовые) знаки в текстовой строке в полноширинные (двухбайтовые).
    +LEFT			= ЛЕВСИМВ				##	Возвращает крайние слева знаки текстового значения.
    +LEFTB			= ЛЕВБ					##	Возвращает крайние слева знаки текстового значения.
    +LEN			= ДЛСТР					##	Возвращает количество знаков в текстовой строке.
    +LENB			= ДЛИНБ					##	Возвращает количество знаков в текстовой строке.
    +LOWER			= СТРОЧН				##	Преобразует все буквы текста в строчные.
    +MID			= ПСТР					##	Возвращает заданное число знаков из строки текста, начиная с указанной позиции.
    +MIDB			= ПСТРБ					##	Возвращает заданное число знаков из строки текста, начиная с указанной позиции.
    +PHONETIC		= PHONETIC				##	Извлекает фонетические (фуригана) знаки из текстовой строки.
    +PROPER			= ПРОПНАЧ				##	Преобразует первую букву в каждом слове текста в прописную.
    +REPLACE			= ЗАМЕНИТЬ				##	Заменяет знаки в тексте.
    +REPLACEB		= ЗАМЕНИТЬБ				##	Заменяет знаки в тексте.
    +REPT			= ПОВТОР				##	Повторяет текст заданное число раз.
    +RIGHT			= ПРАВСИМВ				##	Возвращает крайние справа знаки текстовой строки.
    +RIGHTB			= ПРАВБ					##	Возвращает крайние справа знаки текстовой строки.
    +SEARCH			= ПОИСК					##	Ищет вхождения одного текстового значения в другом (без учета регистра).
    +SEARCHB			= ПОИСКБ				##	Ищет вхождения одного текстового значения в другом (без учета регистра).
    +SUBSTITUTE		= ПОДСТАВИТЬ				##	Заменяет в текстовой строке старый текст новым.
    +T			= Т					##	Преобразует аргументы в текст.
    +TEXT			= ТЕКСТ					##	Форматирует число и преобразует его в текст.
    +TRIM			= СЖПРОБЕЛЫ				##	Удаляет из текста пробелы.
    +UPPER			= ПРОПИСН				##	Преобразует все буквы текста в прописные.
    +VALUE			= ЗНАЧЕН				##	Преобразует текстовый аргумент в число.
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/cs/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/cs/config
    new file mode 100644
    index 00000000000..df513734c3f
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/cs/config
    @@ -0,0 +1,23 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= Kč
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +##
    +NULL	= #NULL!
    +DIV0	= #DIV/0!
    +VALUE	= #HODNOTA!
    +REF	= #REF!
    +NAME	= #NÁZEV?
    +NUM	= #NUM!
    +NA	= #N/A
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/cs/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/cs/functions
    new file mode 100644
    index 00000000000..733d406f14f
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/cs/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions		Funkce doplňků a automatizace
    +##
    +GETPIVOTDATA		= ZÍSKATKONTDATA	##	Vrátí data uložená v kontingenční tabulce. Pomocí funkce ZÍSKATKONTDATA můžete načíst souhrnná data z kontingenční tabulky, pokud jsou tato data v kontingenční sestavě zobrazena.
    +
    +
    +##
    +##	Cube functions				Funkce pro práci s krychlemi
    +##
    +CUBEKPIMEMBER		= CUBEKPIMEMBER		##	Vrátí název, vlastnost a velikost klíčového ukazatele výkonu (KUV) a zobrazí v buňce název a vlastnost. Klíčový ukazatel výkonu je kvantifikovatelná veličina, například hrubý měsíční zisk nebo čtvrtletní obrat na zaměstnance, která se používá pro sledování výkonnosti organizace.
    +CUBEMEMBER		= CUBEMEMBER		##	Vrátí člen nebo n-tici v hierarchii krychle. Slouží k ověření, zda v krychli existuje člen nebo n-tice.
    +CUBEMEMBERPROPERTY	= CUBEMEMBERPROPERTY	##	Vrátí hodnotu vlastnosti člena v krychli. Slouží k ověření, zda v krychli existuje člen s daným názvem, a k vrácení konkrétní vlastnosti tohoto člena.
    +CUBERANKEDMEMBER	= CUBERANKEDMEMBER	##	Vrátí n-tý nebo pořadový člen sady. Použijte ji pro vrácení jednoho nebo více prvků sady, například obchodníka s nejvyšším obratem nebo deseti nejlepších studentů.
    +CUBESET			= CUBESET		##	Definuje vypočtenou sadu členů nebo n-tic odesláním výrazu sady do krychle na serveru, který vytvoří sadu a potom ji vrátí do aplikace Microsoft Office Excel.
    +CUBESETCOUNT		= CUBESETCOUNT		##	Vrátí počet položek v množině
    +CUBEVALUE		= CUBEVALUE		##	Vrátí úhrnnou hodnotu z krychle.
    +
    +
    +##
    +##	Database functions			Funkce databáze
    +##
    +DAVERAGE		= DPRŮMĚR		##	Vrátí průměr vybraných položek databáze.
    +DCOUNT			= DPOČET		##	Spočítá buňky databáze obsahující čísla.
    +DCOUNTA			= DPOČET2		##	Spočítá buňky databáze, které nejsou prázdné.
    +DGET			= DZÍSKAT		##	Extrahuje z databáze jeden záznam splňující zadaná kritéria.
    +DMAX			= DMAX			##	Vrátí maximální hodnotu z vybraných položek databáze.
    +DMIN			= DMIN			##	Vrátí minimální hodnotu z vybraných položek databáze.
    +DPRODUCT		= DSOUČIN		##	Vynásobí hodnoty určitého pole záznamů v databázi, které splňují daná kritéria.
    +DSTDEV			= DSMODCH.VÝBĚR		##	Odhadne směrodatnou odchylku výběru vybraných položek databáze.
    +DSTDEVP			= DSMODCH		##	Vypočte směrodatnou odchylku základního souboru vybraných položek databáze.
    +DSUM			= DSUMA			##	Sečte čísla ve sloupcovém poli záznamů databáze, která splňují daná kritéria.
    +DVAR			= DVAR.VÝBĚR		##	Odhadne rozptyl výběru vybraných položek databáze.
    +DVARP			= DVAR			##	Vypočte rozptyl základního souboru vybraných položek databáze.
    +
    +
    +##
    +##	Date and time functions			Funkce data a času
    +##
    +DATE			= DATUM			##	Vrátí pořadové číslo určitého data.
    +DATEVALUE		= DATUMHODN		##	Převede datum ve formě textu na pořadové číslo.
    +DAY			= DEN			##	Převede pořadové číslo na den v měsíci.
    +DAYS360			= ROK360		##	Vrátí počet dní mezi dvěma daty na základě roku s 360 dny.
    +EDATE			= EDATE			##	Vrátí pořadové číslo data, které označuje určený počet měsíců před nebo po počátečním datu.
    +EOMONTH			= EOMONTH		##	Vrátí pořadové číslo posledního dne měsíce před nebo po zadaném počtu měsíců.
    +HOUR			= HODINA		##	Převede pořadové číslo na hodinu.
    +MINUTE			= MINUTA		##	Převede pořadové číslo na minutu.
    +MONTH			= MĚSÍC			##	Převede pořadové číslo na měsíc.
    +NETWORKDAYS		= NETWORKDAYS		##	Vrátí počet celých pracovních dní mezi dvěma daty.
    +NOW			= NYNÍ			##	Vrátí pořadové číslo aktuálního data a času.
    +SECOND			= SEKUNDA		##	Převede pořadové číslo na sekundu.
    +TIME			= ČAS			##	Vrátí pořadové číslo určitého času.
    +TIMEVALUE		= ČASHODN		##	Převede čas ve formě textu na pořadové číslo.
    +TODAY			= DNES			##	Vrátí pořadové číslo dnešního data.
    +WEEKDAY			= DENTÝDNE		##	Převede pořadové číslo na den v týdnu.
    +WEEKNUM			= WEEKNUM		##	Převede pořadové číslo na číslo představující číselnou pozici týdne v roce.
    +WORKDAY			= WORKDAY		##	Vrátí pořadové číslo data před nebo po zadaném počtu pracovních dní.
    +YEAR			= ROK			##	Převede pořadové číslo na rok.
    +YEARFRAC		= YEARFRAC		##	Vrátí část roku vyjádřenou zlomkem a představující počet celých dní mezi počátečním a koncovým datem.
    +
    +
    +##
    +##	Engineering functions			Inženýrské funkce (Technické funkce)
    +##
    +BESSELI			= BESSELI		##	Vrátí modifikovanou Besselovu funkci In(x).
    +BESSELJ			= BESSELJ		##	Vrátí modifikovanou Besselovu funkci Jn(x).
    +BESSELK			= BESSELK		##	Vrátí modifikovanou Besselovu funkci Kn(x).
    +BESSELY			= BESSELY		##	Vrátí Besselovu funkci Yn(x).
    +BIN2DEC			= BIN2DEC		##	Převede binární číslo na desítkové.
    +BIN2HEX			= BIN2HEX		##	Převede binární číslo na šestnáctkové.
    +BIN2OCT			= BIN2OCT		##	Převede binární číslo na osmičkové.
    +COMPLEX			= COMPLEX		##	Převede reálnou a imaginární část na komplexní číslo.
    +CONVERT			= CONVERT		##	Převede číslo do jiného jednotkového měrného systému.
    +DEC2BIN			= DEC2BIN		##	Převede desítkového čísla na dvojkové
    +DEC2HEX			= DEC2HEX		##	Převede desítkové číslo na šestnáctkové.
    +DEC2OCT			= DEC2OCT		##	Převede desítkové číslo na osmičkové.
    +DELTA			= DELTA			##	Testuje rovnost dvou hodnot.
    +ERF			= ERF			##	Vrátí chybovou funkci.
    +ERFC			= ERFC			##	Vrátí doplňkovou chybovou funkci.
    +GESTEP			= GESTEP		##	Testuje, zda je číslo větší než mezní hodnota.
    +HEX2BIN			= HEX2BIN		##	Převede šestnáctkové číslo na binární.
    +HEX2DEC			= HEX2DEC		##	Převede šestnáctkové číslo na desítkové.
    +HEX2OCT			= HEX2OCT		##	Převede šestnáctkové číslo na osmičkové.
    +IMABS			= IMABS			##	Vrátí absolutní hodnotu (modul) komplexního čísla.
    +IMAGINARY		= IMAGINARY		##	Vrátí imaginární část komplexního čísla.
    +IMARGUMENT		= IMARGUMENT		##	Vrátí argument théta, úhel vyjádřený v radiánech.
    +IMCONJUGATE		= IMCONJUGATE		##	Vrátí komplexně sdružené číslo ke komplexnímu číslu.
    +IMCOS			= IMCOS			##	Vrátí kosinus komplexního čísla.
    +IMDIV			= IMDIV			##	Vrátí podíl dvou komplexních čísel.
    +IMEXP			= IMEXP			##	Vrátí exponenciální tvar komplexního čísla.
    +IMLN			= IMLN			##	Vrátí přirozený logaritmus komplexního čísla.
    +IMLOG10			= IMLOG10		##	Vrátí dekadický logaritmus komplexního čísla.
    +IMLOG2			= IMLOG2		##	Vrátí logaritmus komplexního čísla při základu 2.
    +IMPOWER			= IMPOWER		##	Vrátí komplexní číslo umocněné na celé číslo.
    +IMPRODUCT		= IMPRODUCT		##	Vrátí součin komplexních čísel.
    +IMREAL			= IMREAL		##	Vrátí reálnou část komplexního čísla.
    +IMSIN			= IMSIN			##	Vrátí sinus komplexního čísla.
    +IMSQRT			= IMSQRT		##	Vrátí druhou odmocninu komplexního čísla.
    +IMSUB			= IMSUB			##	Vrátí rozdíl mezi dvěma komplexními čísly.
    +IMSUM			= IMSUM			##	Vrátí součet dvou komplexních čísel.
    +OCT2BIN			= OCT2BIN		##	Převede osmičkové číslo na binární.
    +OCT2DEC			= OCT2DEC		##	Převede osmičkové číslo na desítkové.
    +OCT2HEX			= OCT2HEX		##	Převede osmičkové číslo na šestnáctkové.
    +
    +
    +##
    +##	Financial functions			Finanční funkce
    +##
    +ACCRINT			= ACCRINT		##	Vrátí nahromaděný úrok z cenného papíru, ze kterého je úrok placen v pravidelných termínech.
    +ACCRINTM		= ACCRINTM		##	Vrátí nahromaděný úrok z cenného papíru, ze kterého je úrok placen k datu splatnosti.
    +AMORDEGRC		= AMORDEGRC		##	Vrátí lineární amortizaci v každém účetním období pomocí koeficientu amortizace.
    +AMORLINC		= AMORLINC		##	Vrátí lineární amortizaci v každém účetním období.
    +COUPDAYBS		= COUPDAYBS		##	Vrátí počet dnů od začátku období placení kupónů do data splatnosti.
    +COUPDAYS		= COUPDAYS		##	Vrátí počet dnů v období placení kupónů, které obsahuje den zúčtování.
    +COUPDAYSNC		= COUPDAYSNC		##	Vrátí počet dnů od data zúčtování do následujícího data placení kupónu.
    +COUPNCD			= COUPNCD		##	Vrátí následující datum placení kupónu po datu zúčtování.
    +COUPNUM			= COUPNUM		##	Vrátí počet kupónů splatných mezi datem zúčtování a datem splatnosti.
    +COUPPCD			= COUPPCD		##	Vrátí předchozí datum placení kupónu před datem zúčtování.
    +CUMIPMT			= CUMIPMT		##	Vrátí kumulativní úrok splacený mezi dvěma obdobími.
    +CUMPRINC		= CUMPRINC		##	Vrátí kumulativní jistinu splacenou mezi dvěma obdobími půjčky.
    +DB			= ODPIS.ZRYCH		##	Vrátí odpis aktiva za určité období pomocí degresivní metody odpisu s pevným zůstatkem.
    +DDB			= ODPIS.ZRYCH2		##	Vrátí odpis aktiva za určité období pomocí dvojité degresivní metody odpisu nebo jiné metody, kterou zadáte.
    +DISC			= DISC			##	Vrátí diskontní sazbu cenného papíru.
    +DOLLARDE		= DOLLARDE		##	Převede částku v korunách vyjádřenou zlomkem na částku v korunách vyjádřenou desetinným číslem.
    +DOLLARFR		= DOLLARFR		##	Převede částku v korunách vyjádřenou desetinným číslem na částku v korunách vyjádřenou zlomkem.
    +DURATION		= DURATION		##	Vrátí roční dobu cenného papíru s pravidelnými úrokovými sazbami.
    +EFFECT			= EFFECT		##	Vrátí efektivní roční úrokovou sazbu.
    +FV			= BUDHODNOTA		##	Vrátí budoucí hodnotu investice.
    +FVSCHEDULE		= FVSCHEDULE		##	Vrátí budoucí hodnotu počáteční jistiny po použití série sazeb složitého úroku.
    +INTRATE			= INTRATE		##	Vrátí úrokovou sazbu plně investovaného cenného papíru.
    +IPMT			= PLATBA.ÚROK		##	Vrátí výšku úroku investice za dané období.
    +IRR			= MÍRA.VÝNOSNOSTI	##	Vrátí vnitřní výnosové procento série peněžních toků.
    +ISPMT			= ISPMT			##	Vypočte výši úroku z investice zaplaceného během určitého období.
    +MDURATION		= MDURATION		##	Vrátí Macauleyho modifikovanou dobu cenného papíru o nominální hodnotě 100 Kč.
    +MIRR			= MOD.MÍRA.VÝNOSNOSTI	##	Vrátí vnitřní sazbu výnosu, přičemž kladné a záporné hodnoty peněžních prostředků jsou financovány podle různých sazeb.
    +NOMINAL			= NOMINAL		##	Vrátí nominální roční úrokovou sazbu.
    +NPER			= POČET.OBDOBÍ		##	Vrátí počet období pro investici.
    +NPV			= ČISTÁ.SOUČHODNOTA	##	Vrátí čistou současnou hodnotu investice vypočítanou na základě série pravidelných peněžních toků a diskontní sazby.
    +ODDFPRICE		= ODDFPRICE		##	Vrátí cenu cenného papíru o nominální hodnotě 100 Kč s odlišným prvním obdobím.
    +ODDFYIELD		= ODDFYIELD		##	Vrátí výnos cenného papíru s odlišným prvním obdobím.
    +ODDLPRICE		= ODDLPRICE		##	Vrátí cenu cenného papíru o nominální hodnotě 100 Kč s odlišným posledním obdobím.
    +ODDLYIELD		= ODDLYIELD		##	Vrátí výnos cenného papíru s odlišným posledním obdobím.
    +PMT			= PLATBA		##	Vrátí hodnotu pravidelné splátky anuity.
    +PPMT			= PLATBA.ZÁKLAD		##	Vrátí hodnotu splátky jistiny pro zadanou investici za dané období.
    +PRICE			= PRICE			##	Vrátí cenu cenného papíru o nominální hodnotě 100 Kč, ze kterého je úrok placen v pravidelných termínech.
    +PRICEDISC		= PRICEDISC		##	Vrátí cenu diskontního cenného papíru o nominální hodnotě 100 Kč.
    +PRICEMAT		= PRICEMAT		##	Vrátí cenu cenného papíru o nominální hodnotě 100 Kč, ze kterého je úrok placen k datu splatnosti.
    +PV			= SOUČHODNOTA		##	Vrátí současnou hodnotu investice.
    +RATE			= ÚROKOVÁ.MÍRA		##	Vrátí úrokovou sazbu vztaženou na období anuity.
    +RECEIVED		= RECEIVED		##	Vrátí částku obdrženou k datu splatnosti plně investovaného cenného papíru.
    +SLN			= ODPIS.LIN		##	Vrátí přímé odpisy aktiva pro jedno období.
    +SYD			= ODPIS.NELIN		##	Vrátí směrné číslo ročních odpisů aktiva pro zadané období.
    +TBILLEQ			= TBILLEQ		##	Vrátí výnos směnky státní pokladny ekvivalentní výnosu obligace.
    +TBILLPRICE		= TBILLPRICE		##	Vrátí cenu směnky státní pokladny o nominální hodnotě 100 Kč.
    +TBILLYIELD		= TBILLYIELD		##	Vrátí výnos směnky státní pokladny.
    +VDB			= ODPIS.ZA.INT		##	Vrátí odpis aktiva pro určité období nebo část období pomocí degresivní metody odpisu.
    +XIRR			= XIRR			##	Vrátí vnitřní výnosnost pro harmonogram peněžních toků, který nemusí být nutně periodický.
    +XNPV			= XNPV			##	Vrátí čistou současnou hodnotu pro harmonogram peněžních toků, který nemusí být nutně periodický.
    +YIELD			= YIELD			##	Vrátí výnos cenného papíru, ze kterého je úrok placen v pravidelných termínech.
    +YIELDDISC		= YIELDDISC		##	Vrátí roční výnos diskontního cenného papíru, například směnky státní pokladny.
    +YIELDMAT		= YIELDMAT		##	Vrátí roční výnos cenného papíru, ze kterého je úrok placen k datu splatnosti.
    +
    +
    +##
    +##	Information functions			Informační funkce
    +##
    +CELL			= POLÍČKO		##	Vrátí informace o formátování, umístění nebo obsahu buňky.
    +ERROR.TYPE		= CHYBA.TYP		##	Vrátí číslo odpovídající typu chyby.
    +INFO			= O.PROSTŘEDÍ		##	Vrátí informace o aktuálním pracovním prostředí.
    +ISBLANK			= JE.PRÁZDNÉ		##	Vrátí hodnotu PRAVDA, pokud se argument hodnota odkazuje na prázdnou buňku.
    +ISERR			= JE.CHYBA		##	Vrátí hodnotu PRAVDA, pokud je argument hodnota libovolná chybová hodnota (kromě #N/A).
    +ISERROR			= JE.CHYBHODN		##	Vrátí hodnotu PRAVDA, pokud je argument hodnota libovolná chybová hodnota.
    +ISEVEN			= ISEVEN		##	Vrátí hodnotu PRAVDA, pokud je číslo sudé.
    +ISLOGICAL		= JE.LOGHODN		##	Vrátí hodnotu PRAVDA, pokud je argument hodnota logická hodnota.
    +ISNA			= JE.NEDEF		##	Vrátí hodnotu PRAVDA, pokud je argument hodnota chybová hodnota #N/A.
    +ISNONTEXT		= JE.NETEXT		##	Vrátí hodnotu PRAVDA, pokud argument hodnota není text.
    +ISNUMBER		= JE.ČÍSLO		##	Vrátí hodnotu PRAVDA, pokud je argument hodnota číslo.
    +ISODD			= ISODD			##	Vrátí hodnotu PRAVDA, pokud je číslo liché.
    +ISREF			= JE.ODKAZ		##	Vrátí hodnotu PRAVDA, pokud je argument hodnota odkaz.
    +ISTEXT			= JE.TEXT		##	Vrátí hodnotu PRAVDA, pokud je argument hodnota text.
    +N			= N			##	Vrátí hodnotu převedenou na číslo.
    +NA			= NEDEF			##	Vrátí chybovou hodnotu #N/A.
    +TYPE			= TYP			##	Vrátí číslo označující datový typ hodnoty.
    +
    +
    +##
    +##	Logical functions			Logické funkce
    +##
    +AND			= A			##	Vrátí hodnotu PRAVDA, mají-li všechny argumenty hodnotu PRAVDA.
    +FALSE			= NEPRAVDA		##	Vrátí logickou hodnotu NEPRAVDA.
    +IF			= KDYŽ			##	Určí, který logický test má proběhnout.
    +IFERROR			= IFERROR		##	Pokud je vzorec vyhodnocen jako chyba, vrátí zadanou hodnotu. V opačném případě vrátí výsledek vzorce.
    +NOT			= NE			##	Provede logickou negaci argumentu funkce.
    +OR			= NEBO			##	Vrátí hodnotu PRAVDA, je-li alespoň jeden argument roven hodnotě PRAVDA.
    +TRUE			= PRAVDA		##	Vrátí logickou hodnotu PRAVDA.
    +
    +
    +##
    +##	Lookup and reference functions		Vyhledávací funkce
    +##
    +ADDRESS			= ODKAZ			##	Vrátí textový odkaz na jednu buňku listu.
    +AREAS			= POČET.BLOKŮ		##	Vrátí počet oblastí v odkazu.
    +CHOOSE			= ZVOLIT		##	Zvolí hodnotu ze seznamu hodnot.
    +COLUMN			= SLOUPEC		##	Vrátí číslo sloupce odkazu.
    +COLUMNS			= SLOUPCE		##	Vrátí počet sloupců v odkazu.
    +HLOOKUP			= VVYHLEDAT		##	Prohledá horní řádek matice a vrátí hodnotu určené buňky.
    +HYPERLINK		= HYPERTEXTOVÝ.ODKAZ	##	Vytvoří zástupce nebo odkaz, který otevře dokument uložený na síťovém serveru, v síti intranet nebo Internet.
    +INDEX			= INDEX			##	Pomocí rejstříku zvolí hodnotu z odkazu nebo matice.
    +INDIRECT		= NEPŘÍMÝ.ODKAZ		##	Vrátí odkaz určený textovou hodnotou.
    +LOOKUP			= VYHLEDAT		##	Vyhledá hodnoty ve vektoru nebo matici.
    +MATCH			= POZVYHLEDAT		##	Vyhledá hodnoty v odkazu nebo matici.
    +OFFSET			= POSUN			##	Vrátí posun odkazu od zadaného odkazu.
    +ROW			= ŘÁDEK			##	Vrátí číslo řádku odkazu.
    +ROWS			= ŘÁDKY			##	Vrátí počet řádků v odkazu.
    +RTD			= RTD			##	Načte data reálného času z programu, který podporuje automatizaci modelu COM (Automatizace: Způsob práce s objekty určité aplikace z jiné aplikace nebo nástroje pro vývoj. Automatizace (dříve nazývaná automatizace OLE) je počítačovým standardem a je funkcí modelu COM (Component Object Model).).
    +TRANSPOSE		= TRANSPOZICE		##	Vrátí transponovanou matici.
    +VLOOKUP			= SVYHLEDAT		##	Prohledá první sloupec matice, přesune kurzor v řádku a vrátí hodnotu buňky.
    +
    +
    +##
    +##	Math and trigonometry functions		Matematické a trigonometrické funkce
    +##
    +ABS			= ABS			##	Vrátí absolutní hodnotu čísla.
    +ACOS			= ARCCOS		##	Vrátí arkuskosinus čísla.
    +ACOSH			= ARCCOSH		##	Vrátí hyperbolický arkuskosinus čísla.
    +ASIN			= ARCSIN		##	Vrátí arkussinus čísla.
    +ASINH			= ARCSINH		##	Vrátí hyperbolický arkussinus čísla.
    +ATAN			= ARCTG			##	Vrátí arkustangens čísla.
    +ATAN2			= ARCTG2		##	Vrátí arkustangens x-ové a y-ové souřadnice.
    +ATANH			= ARCTGH		##	Vrátí hyperbolický arkustangens čísla.
    +CEILING			= ZAOKR.NAHORU		##	Zaokrouhlí číslo na nejbližší celé číslo nebo na nejbližší násobek zadané hodnoty.
    +COMBIN			= KOMBINACE		##	Vrátí počet kombinací pro daný počet položek.
    +COS			= COS			##	Vrátí kosinus čísla.
    +COSH			= COSH			##	Vrátí hyperbolický kosinus čísla.
    +DEGREES			= DEGREES		##	Převede radiány na stupně.
    +EVEN			= ZAOKROUHLIT.NA.SUDÉ	##	Zaokrouhlí číslo nahoru na nejbližší celé sudé číslo.
    +EXP			= EXP			##	Vrátí základ přirozeného logaritmu e umocněný na zadané číslo.
    +FACT			= FAKTORIÁL		##	Vrátí faktoriál čísla.
    +FACTDOUBLE		= FACTDOUBLE		##	Vrátí dvojitý faktoriál čísla.
    +FLOOR			= ZAOKR.DOLŮ		##	Zaokrouhlí číslo dolů, směrem k nule.
    +GCD			= GCD			##	Vrátí největší společný dělitel.
    +INT			= CELÁ.ČÁST		##	Zaokrouhlí číslo dolů na nejbližší celé číslo.
    +LCM			= LCM			##	Vrátí nejmenší společný násobek.
    +LN			= LN			##	Vrátí přirozený logaritmus čísla.
    +LOG			= LOGZ			##	Vrátí logaritmus čísla při zadaném základu.
    +LOG10			= LOG			##	Vrátí dekadický logaritmus čísla.
    +MDETERM			= DETERMINANT		##	Vrátí determinant matice.
    +MINVERSE		= INVERZE		##	Vrátí inverzní matici.
    +MMULT			= SOUČIN.MATIC		##	Vrátí součin dvou matic.
    +MOD			= MOD			##	Vrátí zbytek po dělení.
    +MROUND			= MROUND		##	Vrátí číslo zaokrouhlené na požadovaný násobek.
    +MULTINOMIAL		= MULTINOMIAL		##	Vrátí mnohočlen z množiny čísel.
    +ODD			= ZAOKROUHLIT.NA.LICHÉ	##	Zaokrouhlí číslo nahoru na nejbližší celé liché číslo.
    +PI			= PI			##	Vrátí hodnotu čísla pí.
    +POWER			= POWER			##	Umocní číslo na zadanou mocninu.
    +PRODUCT			= SOUČIN		##	Vynásobí argumenty funkce.
    +QUOTIENT		= QUOTIENT		##	Vrátí celou část dělení.
    +RADIANS			= RADIANS		##	Převede stupně na radiány.
    +RAND			= NÁHČÍSLO		##	Vrátí náhodné číslo mezi 0 a 1.
    +RANDBETWEEN		= RANDBETWEEN		##	Vrátí náhodné číslo mezi zadanými čísly.
    +ROMAN			= ROMAN			##	Převede arabskou číslici na římskou ve formátu textu.
    +ROUND			= ZAOKROUHLIT		##	Zaokrouhlí číslo na zadaný počet číslic.
    +ROUNDDOWN		= ROUNDDOWN		##	Zaokrouhlí číslo dolů, směrem k nule.
    +ROUNDUP			= ROUNDUP		##	Zaokrouhlí číslo nahoru, směrem od nuly.
    +SERIESSUM		= SERIESSUM		##	Vrátí součet mocninné řady určené podle vzorce.
    +SIGN			= SIGN			##	Vrátí znaménko čísla.
    +SIN			= SIN			##	Vrátí sinus daného úhlu.
    +SINH			= SINH			##	Vrátí hyperbolický sinus čísla.
    +SQRT			= ODMOCNINA		##	Vrátí kladnou druhou odmocninu.
    +SQRTPI			= SQRTPI		##	Vrátí druhou odmocninu výrazu (číslo * pí).
    +SUBTOTAL		= SUBTOTAL		##	Vrátí souhrn v seznamu nebo databázi.
    +SUM			= SUMA			##	Sečte argumenty funkce.
    +SUMIF			= SUMIF			##	Sečte buňky vybrané podle zadaných kritérií.
    +SUMIFS			= SUMIFS		##	Sečte buňky určené více zadanými podmínkami.
    +SUMPRODUCT		= SOUČIN.SKALÁRNÍ	##	Vrátí součet součinů odpovídajících prvků matic.
    +SUMSQ			= SUMA.ČTVERCŮ		##	Vrátí součet čtverců argumentů.
    +SUMX2MY2		= SUMX2MY2		##	Vrátí součet rozdílu čtverců odpovídajících hodnot ve dvou maticích.
    +SUMX2PY2		= SUMX2PY2		##	Vrátí součet součtu čtverců odpovídajících hodnot ve dvou maticích.
    +SUMXMY2			= SUMXMY2		##	Vrátí součet čtverců rozdílů odpovídajících hodnot ve dvou maticích.
    +TAN			= TGTG			##	Vrátí tangens čísla.
    +TANH			= TGH			##	Vrátí hyperbolický tangens čísla.
    +TRUNC			= USEKNOUT		##	Zkrátí číslo na celé číslo.
    +
    +
    +##
    +##	Statistical functions			Statistické funkce
    +##
    +AVEDEV			= PRŮMODCHYLKA		##	Vrátí průměrnou hodnotu absolutních odchylek datových bodů od jejich střední hodnoty.
    +AVERAGE			= PRŮMĚR		##	Vrátí průměrnou hodnotu argumentů.
    +AVERAGEA		= AVERAGEA		##	Vrátí průměrnou hodnotu argumentů včetně čísel, textu a logických hodnot.
    +AVERAGEIF		= AVERAGEIF		##	Vrátí průměrnou hodnotu (aritmetický průměr) všech buněk v oblasti, které vyhovují příslušné podmínce.
    +AVERAGEIFS		= AVERAGEIFS		##	Vrátí průměrnou hodnotu (aritmetický průměr) všech buněk vyhovujících několika podmínkám.
    +BETADIST		= BETADIST		##	Vrátí hodnotu součtového rozdělení beta.
    +BETAINV			= BETAINV		##	Vrátí inverzní hodnotu součtového rozdělení pro zadané rozdělení beta.
    +BINOMDIST		= BINOMDIST		##	Vrátí hodnotu binomického rozdělení pravděpodobnosti jednotlivých veličin.
    +CHIDIST			= CHIDIST		##	Vrátí jednostrannou pravděpodobnost rozdělení chí-kvadrát.
    +CHIINV			= CHIINV		##	Vrátí hodnotu funkce inverzní k distribuční funkci jednostranné pravděpodobnosti rozdělení chí-kvadrát.
    +CHITEST			= CHITEST		##	Vrátí test nezávislosti.
    +CONFIDENCE		= CONFIDENCE		##	Vrátí interval spolehlivosti pro střední hodnotu základního souboru.
    +CORREL			= CORREL		##	Vrátí korelační koeficient mezi dvěma množinami dat.
    +COUNT			= POČET			##	Vrátí počet čísel v seznamu argumentů.
    +COUNTA			= POČET2		##	Vrátí počet hodnot v seznamu argumentů.
    +COUNTBLANK		= COUNTBLANK		##	Spočítá počet prázdných buněk v oblasti.
    +COUNTIF			= COUNTIF		##	Spočítá buňky v oblasti, které odpovídají zadaným kritériím.
    +COUNTIFS		= COUNTIFS		##	Spočítá buňky v oblasti, které odpovídají více kritériím.
    +COVAR			= COVAR			##	Vrátí hodnotu kovariance, průměrnou hodnotu součinů párových odchylek
    +CRITBINOM		= CRITBINOM		##	Vrátí nejmenší hodnotu, pro kterou má součtové binomické rozdělení hodnotu větší nebo rovnu hodnotě kritéria.
    +DEVSQ			= DEVSQ			##	Vrátí součet čtverců odchylek.
    +EXPONDIST		= EXPONDIST		##	Vrátí hodnotu exponenciálního rozdělení.
    +FDIST			= FDIST			##	Vrátí hodnotu rozdělení pravděpodobnosti F.
    +FINV			= FINV			##	Vrátí hodnotu inverzní funkce k distribuční funkci rozdělení F.
    +FISHER			= FISHER		##	Vrátí hodnotu Fisherovy transformace.
    +FISHERINV		= FISHERINV		##	Vrátí hodnotu inverzní funkce k Fisherově transformaci.
    +FORECAST		= FORECAST		##	Vrátí hodnotu lineárního trendu.
    +FREQUENCY		= ČETNOSTI		##	Vrátí četnost rozdělení jako svislou matici.
    +FTEST			= FTEST			##	Vrátí výsledek F-testu.
    +GAMMADIST		= GAMMADIST		##	Vrátí hodnotu rozdělení gama.
    +GAMMAINV		= GAMMAINV		##	Vrátí hodnotu inverzní funkce k distribuční funkci součtového rozdělení gama.
    +GAMMALN			= GAMMALN		##	Vrátí přirozený logaritmus funkce gama, Γ(x).
    +GEOMEAN			= GEOMEAN		##	Vrátí geometrický průměr.
    +GROWTH			= LOGLINTREND		##	Vrátí hodnoty exponenciálního trendu.
    +HARMEAN			= HARMEAN		##	Vrátí harmonický průměr.
    +HYPGEOMDIST		= HYPGEOMDIST		##	Vrátí hodnotu hypergeometrického rozdělení.
    +INTERCEPT		= INTERCEPT		##	Vrátí úsek lineární regresní čáry.
    +KURT			= KURT			##	Vrátí hodnotu excesu množiny dat.
    +LARGE			= LARGE			##	Vrátí k-tou největší hodnotu množiny dat.
    +LINEST			= LINREGRESE		##	Vrátí parametry lineárního trendu.
    +LOGEST			= LOGLINREGRESE		##	Vrátí parametry exponenciálního trendu.
    +LOGINV			= LOGINV		##	Vrátí inverzní funkci k distribuční funkci logaritmicko-normálního rozdělení.
    +LOGNORMDIST		= LOGNORMDIST		##	Vrátí hodnotu součtového logaritmicko-normálního rozdělení.
    +MAX			= MAX			##	Vrátí maximální hodnotu seznamu argumentů.
    +MAXA			= MAXA			##	Vrátí maximální hodnotu seznamu argumentů včetně čísel, textu a logických hodnot.
    +MEDIAN			= MEDIAN		##	Vrátí střední hodnotu zadaných čísel.
    +MIN			= MIN			##	Vrátí minimální hodnotu seznamu argumentů.
    +MINA			= MINA			##	Vrátí nejmenší hodnotu v seznamu argumentů včetně čísel, textu a logických hodnot.
    +MODE			= MODE			##	Vrátí hodnotu, která se v množině dat vyskytuje nejčastěji.
    +NEGBINOMDIST		= NEGBINOMDIST		##	Vrátí hodnotu negativního binomického rozdělení.
    +NORMDIST		= NORMDIST		##	Vrátí hodnotu normálního součtového rozdělení.
    +NORMINV			= NORMINV		##	Vrátí inverzní funkci k funkci normálního součtového rozdělení.
    +NORMSDIST		= NORMSDIST		##	Vrátí hodnotu standardního normálního součtového rozdělení.
    +NORMSINV		= NORMSINV		##	Vrátí inverzní funkci k funkci standardního normálního součtového rozdělení.
    +PEARSON			= PEARSON		##	Vrátí Pearsonův výsledný momentový korelační koeficient.
    +PERCENTILE		= PERCENTIL		##	Vrátí hodnotu k-tého percentilu hodnot v oblasti.
    +PERCENTRANK		= PERCENTRANK		##	Vrátí pořadí hodnoty v množině dat vyjádřené procentuální částí množiny dat.
    +PERMUT			= PERMUTACE		##	Vrátí počet permutací pro zadaný počet objektů.
    +POISSON			= POISSON		##	Vrátí hodnotu distribuční funkce Poissonova rozdělení.
    +PROB			= PROB			##	Vrátí pravděpodobnost výskytu hodnot v oblasti mezi dvěma mezními hodnotami.
    +QUARTILE		= QUARTIL		##	Vrátí hodnotu kvartilu množiny dat.
    +RANK			= RANK			##	Vrátí pořadí čísla v seznamu čísel.
    +RSQ			= RKQ			##	Vrátí druhou mocninu Pearsonova výsledného momentového korelačního koeficientu.
    +SKEW			= SKEW			##	Vrátí zešikmení rozdělení.
    +SLOPE			= SLOPE			##	Vrátí směrnici lineární regresní čáry.
    +SMALL			= SMALL			##	Vrátí k-tou nejmenší hodnotu množiny dat.
    +STANDARDIZE		= STANDARDIZE		##	Vrátí normalizovanou hodnotu.
    +STDEV			= SMODCH.VÝBĚR		##	Vypočte směrodatnou odchylku výběru.
    +STDEVA			= STDEVA		##	Vypočte směrodatnou odchylku výběru včetně čísel, textu a logických hodnot.
    +STDEVP			= SMODCH		##	Vypočte směrodatnou odchylku základního souboru.
    +STDEVPA			= STDEVPA		##	Vypočte směrodatnou odchylku základního souboru včetně čísel, textu a logických hodnot.
    +STEYX			= STEYX			##	Vrátí standardní chybu předpovězené hodnoty y pro každou hodnotu x v regresi.
    +TDIST			= TDIST			##	Vrátí hodnotu Studentova t-rozdělení.
    +TINV			= TINV			##	Vrátí inverzní funkci k distribuční funkci Studentova t-rozdělení.
    +TREND			= LINTREND		##	Vrátí hodnoty lineárního trendu.
    +TRIMMEAN		= TRIMMEAN		##	Vrátí střední hodnotu vnitřní části množiny dat.
    +TTEST			= TTEST			##	Vrátí pravděpodobnost spojenou se Studentovým t-testem.
    +VAR			= VAR.VÝBĚR		##	Vypočte rozptyl výběru.
    +VARA			= VARA			##	Vypočte rozptyl výběru včetně čísel, textu a logických hodnot.
    +VARP			= VAR			##	Vypočte rozptyl základního souboru.
    +VARPA			= VARPA			##	Vypočte rozptyl základního souboru včetně čísel, textu a logických hodnot.
    +WEIBULL			= WEIBULL		##	Vrátí hodnotu Weibullova rozdělení.
    +ZTEST			= ZTEST			##	Vrátí jednostrannou P-hodnotu z-testu.
    +
    +
    +##
    +##	Text functions				Textové funkce
    +##
    +ASC			= ASC			##	Změní znaky s plnou šířkou (dvoubajtové)v řetězci znaků na znaky s poloviční šířkou (jednobajtové).
    +BAHTTEXT		= BAHTTEXT		##	Převede číslo na text ve formátu, měny ß (baht).
    +CHAR			= ZNAK			##	Vrátí znak určený číslem kódu.
    +CLEAN			= VYČISTIT		##	Odebere z textu všechny netisknutelné znaky.
    +CODE			= KÓD			##	Vrátí číselný kód prvního znaku zadaného textového řetězce.
    +CONCATENATE		= CONCATENATE		##	Spojí několik textových položek do jedné.
    +DOLLAR			= KČ			##	Převede číslo na text ve formátu měny Kč (česká koruna).
    +EXACT			= STEJNÉ		##	Zkontroluje, zda jsou dvě textové hodnoty shodné.
    +FIND			= NAJÍT			##	Nalezne textovou hodnotu uvnitř jiné (rozlišuje malá a velká písmena).
    +FINDB			= FINDB			##	Nalezne textovou hodnotu uvnitř jiné (rozlišuje malá a velká písmena).
    +FIXED			= ZAOKROUHLIT.NA.TEXT	##	Zformátuje číslo jako text s pevným počtem desetinných míst.
    +JIS			= JIS			##	Změní znaky s poloviční šířkou (jednobajtové) v řetězci znaků na znaky s plnou šířkou (dvoubajtové).
    +LEFT			= ZLEVA			##	Vrátí první znaky textové hodnoty umístěné nejvíce vlevo.
    +LEFTB			= LEFTB			##	Vrátí první znaky textové hodnoty umístěné nejvíce vlevo.
    +LEN			= DÉLKA			##	Vrátí počet znaků textového řetězce.
    +LENB			= LENB			##	Vrátí počet znaků textového řetězce.
    +LOWER			= MALÁ			##	Převede text na malá písmena.
    +MID			= ČÁST			##	Vrátí určitý počet znaků textového řetězce počínaje zadaným místem.
    +MIDB			= MIDB			##	Vrátí určitý počet znaků textového řetězce počínaje zadaným místem.
    +PHONETIC		= ZVUKOVÉ		##	Extrahuje fonetické znaky (furigana) z textového řetězce.
    +PROPER			= VELKÁ2		##	Převede první písmeno každého slova textové hodnoty na velké.
    +REPLACE			= NAHRADIT		##	Nahradí znaky uvnitř textu.
    +REPLACEB		= NAHRADITB		##	Nahradí znaky uvnitř textu.
    +REPT			= OPAKOVAT		##	Zopakuje text podle zadaného počtu opakování.
    +RIGHT			= ZPRAVA		##	Vrátí první znaky textové hodnoty umístěné nejvíce vpravo.
    +RIGHTB			= RIGHTB		##	Vrátí první znaky textové hodnoty umístěné nejvíce vpravo.
    +SEARCH			= HLEDAT		##	Nalezne textovou hodnotu uvnitř jiné (malá a velká písmena nejsou rozlišována).
    +SEARCHB			= SEARCHB		##	Nalezne textovou hodnotu uvnitř jiné (malá a velká písmena nejsou rozlišována).
    +SUBSTITUTE		= DOSADIT		##	V textovém řetězci nahradí starý text novým.
    +T			= T			##	Převede argumenty na text.
    +TEXT			= HODNOTA.NA.TEXT	##	Zformátuje číslo a převede ho na text.
    +TRIM			= PROČISTIT		##	Odstraní z textu mezery.
    +UPPER			= VELKÁ			##	Převede text na velká písmena.
    +VALUE			= HODNOTA		##	Převede textový argument na číslo.
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/da/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/da/config
    new file mode 100644
    index 00000000000..a7aa8fee9d9
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/da/config
    @@ -0,0 +1,25 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= kr
    +
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #NUL!
    +DIV0	= #DIVISION/0!
    +VALUE	= #VÆRDI!
    +REF	= #REFERENCE!
    +NAME	= #NAVN?
    +NUM	= #NUM!
    +NA	= #I/T
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/da/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/da/functions
    new file mode 100644
    index 00000000000..d02aa2ec9be
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/da/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions			Tilføjelsesprogram- og automatiseringsfunktioner
    +##
    +GETPIVOTDATA		= HENTPIVOTDATA			##	Returnerer data, der er lagret i en pivottabelrapport
    +
    +
    +##
    +##	Cube functions					Kubefunktioner
    +##
    +CUBEKPIMEMBER		= KUBE.KPI.MEDLEM		##	Returnerer navn, egenskab og mål for en KPI-indikator og viser navnet og egenskaben i cellen. En KPI-indikator er en målbar størrelse, f.eks. bruttooverskud pr. måned eller personaleudskiftning pr. kvartal, der bruges til at overvåge en organisations præstationer.
    +CUBEMEMBER		= KUBE.MEDLEM			##	Returnerer et medlem eller en tupel fra kubehierarkiet. Bruges til at validere, om et medlem eller en tupel findes i kuben.
    +CUBEMEMBERPROPERTY	= KUBEMEDLEM.EGENSKAB		##	Returnerer værdien af en egenskab for et medlem i kuben. Bruges til at validere, om et medlemsnavn findes i kuben, og returnere den angivne egenskab for medlemmet.
    +CUBERANKEDMEMBER	= KUBEMEDLEM.RANG		##	Returnerer det n'te eller rangordnede medlem i et sæt. Bruges til at returnere et eller flere elementer i et sæt, f.eks. topsælgere eller de 10 bedste elever.
    +CUBESET			= KUBESÆT			##	Definerer et beregnet sæt medlemmer eller tupler ved at sende et sætudtryk til kuben på serveren, som opretter sættet og returnerer det til Microsoft Office Excel.
    +CUBESETCOUNT		= KUBESÆT.TÆL			##	Returnerer antallet af elementer i et sæt.
    +CUBEVALUE		= KUBEVÆRDI			##	Returnerer en sammenlagt (aggregeret) værdi fra en kube.
    +
    +
    +##
    +##	Database functions				Databasefunktioner
    +##
    +DAVERAGE		= DMIDDEL			##	Returnerer gennemsnittet af markerede databaseposter
    +DCOUNT			= DTÆL				##	Tæller de celler, der indeholder tal, i en database
    +DCOUNTA			= DTÆLV				##	Tæller udfyldte celler i en database
    +DGET			= DHENT				##	Uddrager en enkelt post, der opfylder de angivne kriterier, fra en database
    +DMAX			= DMAKS				##	Returnerer den største værdi blandt markerede databaseposter
    +DMIN			= DMIN				##	Returnerer den mindste værdi blandt markerede databaseposter
    +DPRODUCT		= DPRODUKT			##	Ganger værdierne i et bestemt felt med poster, der opfylder kriterierne i en database
    +DSTDEV			= DSTDAFV			##	Beregner et skøn over standardafvigelsen baseret på en stikprøve af markerede databaseposter
    +DSTDEVP			= DSTDAFVP			##	Beregner standardafvigelsen baseret på hele populationen af markerede databaseposter
    +DSUM			= DSUM				##	Sammenlægger de tal i feltkolonnen i databasen, der opfylder kriterierne
    +DVAR			= DVARIANS			##	Beregner varians baseret på en stikprøve af markerede databaseposter
    +DVARP			= DVARIANSP			##	Beregner varians baseret på hele populationen af markerede databaseposter
    +
    +
    +##
    +##	Date and time functions				Dato- og klokkeslætsfunktioner
    +##
    +DATE			= DATO				##	Returnerer serienummeret for en bestemt dato
    +DATEVALUE		= DATOVÆRDI			##	Konverterer en dato i form af tekst til et serienummer
    +DAY			= DAG				##	Konverterer et serienummer til en dag i måneden
    +DAYS360			= DAGE360			##	Beregner antallet af dage mellem to datoer på grundlag af et år med 360 dage
    +EDATE			= EDATO				##	Returnerer serienummeret for den dato, der ligger det angivne antal måneder før eller efter startdatoen
    +EOMONTH			= SLUT.PÅ.MÅNED			##	Returnerer serienummeret på den sidste dag i måneden før eller efter et angivet antal måneder
    +HOUR			= TIME				##	Konverterer et serienummer til en time
    +MINUTE			= MINUT				##	Konverterer et serienummer til et minut
    +MONTH			= MÅNED				##	Konverterer et serienummer til en måned
    +NETWORKDAYS		= ANTAL.ARBEJDSDAGE		##	Returnerer antallet af hele arbejdsdage mellem to datoer
    +NOW			= NU				##	Returnerer serienummeret for den aktuelle dato eller det aktuelle klokkeslæt
    +SECOND			= SEKUND			##	Konverterer et serienummer til et sekund
    +TIME			= KLOKKESLÆT			##	Returnerer serienummeret for et bestemt klokkeslæt
    +TIMEVALUE		= TIDSVÆRDI			##	Konverterer et klokkeslæt i form af tekst til et serienummer
    +TODAY			= IDAG				##	Returnerer serienummeret for dags dato
    +WEEKDAY			= UGEDAG			##	Konverterer et serienummer til en ugedag
    +WEEKNUM			= UGE.NR			##	Konverterer et serienummer til et tal, der angiver ugenummeret i året
    +WORKDAY			= ARBEJDSDAG			##	Returnerer serienummeret for dagen før eller efter det angivne antal arbejdsdage
    +YEAR			= ÅR				##	Konverterer et serienummer til et år
    +YEARFRAC		= ÅR.BRØK			##	Returnerer årsbrøken, der repræsenterer antallet af hele dage mellem startdato og slutdato
    +
    +
    +##
    +##	Engineering functions				Tekniske funktioner
    +##
    +BESSELI			= BESSELI			##	Returnerer den modificerede Bessel-funktion In(x)
    +BESSELJ			= BESSELJ			##	Returnerer Bessel-funktionen Jn(x)
    +BESSELK			= BESSELK			##	Returnerer den modificerede Bessel-funktion Kn(x)
    +BESSELY			= BESSELY			##	Returnerer Bessel-funktionen Yn(x)
    +BIN2DEC			= BIN.TIL.DEC			##	Konverterer et binært tal til et decimaltal
    +BIN2HEX			= BIN.TIL.HEX			##	Konverterer et binært tal til et heksadecimalt tal
    +BIN2OCT			= BIN.TIL.OKT			##	Konverterer et binært tal til et oktaltal.
    +COMPLEX			= KOMPLEKS			##	Konverterer reelle og imaginære koefficienter til et komplekst tal
    +CONVERT			= KONVERTER			##	Konverterer et tal fra én måleenhed til en anden
    +DEC2BIN			= DEC.TIL.BIN			##	Konverterer et decimaltal til et binært tal
    +DEC2HEX			= DEC.TIL.HEX			##	Konverterer et decimaltal til et heksadecimalt tal
    +DEC2OCT			= DEC.TIL.OKT			##	Konverterer et decimaltal til et oktaltal
    +DELTA			= DELTA				##	Tester, om to værdier er ens
    +ERF			= FEJLFUNK			##	Returner fejlfunktionen
    +ERFC			= FEJLFUNK.KOMP			##	Returnerer den komplementære fejlfunktion
    +GESTEP			= GETRIN			##	Tester, om et tal er større end en grænseværdi
    +HEX2BIN			= HEX.TIL.BIN			##	Konverterer et heksadecimalt tal til et binært tal
    +HEX2DEC			= HEX.TIL.DEC			##	Konverterer et decimaltal til et heksadecimalt tal
    +HEX2OCT			= HEX.TIL.OKT			##	Konverterer et heksadecimalt tal til et oktaltal
    +IMABS			= IMAGABS			##	Returnerer den absolutte værdi (modulus) for et komplekst tal
    +IMAGINARY		= IMAGINÆR			##	Returnerer den imaginære koefficient for et komplekst tal
    +IMARGUMENT		= IMAGARGUMENT			##	Returnerer argumentet theta, en vinkel udtrykt i radianer
    +IMCONJUGATE		= IMAGKONJUGERE			##	Returnerer den komplekse konjugation af et komplekst tal
    +IMCOS			= IMAGCOS			##	Returnerer et komplekst tals cosinus
    +IMDIV			= IMAGDIV			##	Returnerer kvotienten for to komplekse tal
    +IMEXP			= IMAGEKSP			##	Returnerer et komplekst tals eksponentialfunktion
    +IMLN			= IMAGLN			##	Returnerer et komplekst tals naturlige logaritme
    +IMLOG10			= IMAGLOG10			##	Returnerer et komplekst tals sædvanlige logaritme (titalslogaritme)
    +IMLOG2			= IMAGLOG2			##	Returnerer et komplekst tals sædvanlige logaritme (totalslogaritme)
    +IMPOWER			= IMAGPOTENS			##	Returnerer et komplekst tal opløftet i en heltalspotens
    +IMPRODUCT		= IMAGPRODUKT			##	Returnerer produktet af komplekse tal
    +IMREAL			= IMAGREELT			##	Returnerer den reelle koefficient for et komplekst tal
    +IMSIN			= IMAGSIN			##	Returnerer et komplekst tals sinus
    +IMSQRT			= IMAGKVROD			##	Returnerer et komplekst tals kvadratrod
    +IMSUB			= IMAGSUB			##	Returnerer forskellen mellem to komplekse tal
    +IMSUM			= IMAGSUM			##	Returnerer summen af komplekse tal
    +OCT2BIN			= OKT.TIL.BIN			##	Konverterer et oktaltal til et binært tal
    +OCT2DEC			= OKT.TIL.DEC			##	Konverterer et oktaltal til et decimaltal
    +OCT2HEX			= OKT.TIL.HEX			##	Konverterer et oktaltal til et heksadecimalt tal
    +
    +
    +##
    +##	Financial functions				Finansielle funktioner
    +##
    +ACCRINT			= PÅLØBRENTE			##	Returnerer den påløbne rente for et værdipapir med periodiske renteudbetalinger
    +ACCRINTM		= PÅLØBRENTE.UDLØB		##	Returnerer den påløbne rente for et værdipapir, hvor renteudbetalingen finder sted ved papirets udløb
    +AMORDEGRC		= AMORDEGRC			##	Returnerer afskrivningsbeløbet for hver regnskabsperiode ved hjælp af en afskrivningskoefficient
    +AMORLINC		= AMORLINC			##	Returnerer afskrivningsbeløbet for hver regnskabsperiode
    +COUPDAYBS		= KUPONDAGE.SA			##	Returnerer antallet af dage fra starten af kuponperioden til afregningsdatoen
    +COUPDAYS		= KUPONDAGE.A			##	Returnerer antallet af dage fra begyndelsen af kuponperioden til afregningsdatoen
    +COUPDAYSNC		= KUPONDAGE.ANK			##	Returnerer antallet af dage i den kuponperiode, der indeholder afregningsdatoen
    +COUPNCD			= KUPONDAG.NÆSTE		##	Returnerer den næste kupondato efter afregningsdatoen
    +COUPNUM			= KUPONBETALINGER		##	Returnerer antallet af kuponudbetalinger mellem afregnings- og udløbsdatoen
    +COUPPCD			= KUPONDAG.FORRIGE		##	Returnerer den forrige kupondato før afregningsdatoen
    +CUMIPMT			= AKKUM.RENTE			##	Returnerer den akkumulerede rente, der betales på et lån mellem to perioder
    +CUMPRINC		= AKKUM.HOVEDSTOL		##	Returnerer den akkumulerede nedbringelse af hovedstol mellem to perioder
    +DB			= DB				##	Returnerer afskrivningen på et aktiv i en angivet periode ved anvendelse af saldometoden
    +DDB			= DSA				##	Returnerer afskrivningsbeløbet for et aktiv over en bestemt periode ved anvendelse af dobbeltsaldometoden eller en anden afskrivningsmetode, som du angiver
    +DISC			= DISKONTO			##	Returnerer et værdipapirs diskonto
    +DOLLARDE		= KR.DECIMAL			##	Konverterer en kronepris udtrykt som brøk til en kronepris udtrykt som decimaltal
    +DOLLARFR		= KR.BRØK			##	Konverterer en kronepris udtrykt som decimaltal til en kronepris udtrykt som brøk
    +DURATION		= VARIGHED			##	Returnerer den årlige løbetid for et værdipapir med periodiske renteudbetalinger
    +EFFECT			= EFFEKTIV.RENTE		##	Returnerer den årlige effektive rente
    +FV			= FV				##	Returnerer fremtidsværdien af en investering
    +FVSCHEDULE		= FVTABEL			##	Returnerer den fremtidige værdi af en hovedstol, når der er tilskrevet rente og rentes rente efter forskellige rentesatser
    +INTRATE			= RENTEFOD			##	Returnerer renten på et fuldt ud investeret værdipapir
    +IPMT			= R.YDELSE			##	Returnerer renten fra en investering for en given periode
    +IRR			= IA				##	Returnerer den interne rente for en række pengestrømme
    +ISPMT			= ISPMT				##	Beregner den betalte rente i løbet af en bestemt investeringsperiode
    +MDURATION		= MVARIGHED			##	Returnerer Macauleys modificerede løbetid for et værdipapir med en formodet pari på kr. 100
    +MIRR			= MIA				##	Returnerer den interne forrentning, hvor positive og negative pengestrømme finansieres til forskellig rente
    +NOMINAL			= NOMINEL			##	Returnerer den årlige nominelle rente
    +NPER			= NPER				##	Returnerer antallet af perioder for en investering
    +NPV			= NUTIDSVÆRDI			##	Returnerer nettonutidsværdien for en investering baseret på en række periodiske pengestrømme og en diskonteringssats
    +ODDFPRICE		= ULIGE.KURS.PÅLYDENDE		##	Returnerer kursen pr. kr. 100 nominel værdi for et værdipapir med en ulige (kort eller lang) første periode
    +ODDFYIELD		= ULIGE.FØRSTE.AFKAST		##	Returnerer afkastet for et værdipapir med ulige første periode
    +ODDLPRICE		= ULIGE.SIDSTE.KURS		##	Returnerer kursen pr. kr. 100 nominel værdi for et værdipapir med ulige sidste periode
    +ODDLYIELD		= ULIGE.SIDSTE.AFKAST		##	Returnerer afkastet for et værdipapir med ulige sidste periode
    +PMT			= YDELSE			##	Returnerer renten fra en investering for en given periode
    +PPMT			= H.YDELSE			##	Returnerer ydelsen på hovedstolen for en investering i en given periode
    +PRICE			= KURS				##	Returnerer kursen pr. kr 100 nominel værdi for et værdipapir med periodiske renteudbetalinger
    +PRICEDISC		= KURS.DISKONTO			##	Returnerer kursen pr. kr 100 nominel værdi for et diskonteret værdipapir
    +PRICEMAT		= KURS.UDLØB			##	Returnerer kursen pr. kr 100 nominel værdi for et værdipapir, hvor renten udbetales ved papirets udløb
    +PV			= NV				##	Returnerer den nuværende værdi af en investering
    +RATE			= RENTE				##	Returnerer renten i hver periode for en annuitet
    +RECEIVED		= MODTAGET.VED.UDLØB		##	Returnerer det beløb, der modtages ved udløbet af et fuldt ud investeret værdipapir
    +SLN			= LA				##	Returnerer den lineære afskrivning for et aktiv i en enkelt periode
    +SYD			= ÅRSAFSKRIVNING		##	Returnerer den årlige afskrivning på et aktiv i en bestemt periode
    +TBILLEQ			= STATSOBLIGATION		##	Returnerer det obligationsækvivalente afkast for en statsobligation
    +TBILLPRICE		= STATSOBLIGATION.KURS		##	Returnerer kursen pr. kr 100 nominel værdi for en statsobligation
    +TBILLYIELD		= STATSOBLIGATION.AFKAST	##	Returnerer en afkastet på en statsobligation
    +VDB			= VSA				##	Returnerer afskrivningen på et aktiv i en angivet periode, herunder delperioder, ved brug af dobbeltsaldometoden
    +XIRR			= INTERN.RENTE			##	Returnerer den interne rente for en plan over pengestrømme, der ikke behøver at være periodiske
    +XNPV			= NETTO.NUTIDSVÆRDI		##	Returnerer nutidsværdien for en plan over pengestrømme, der ikke behøver at være periodiske
    +YIELD			= AFKAST			##	Returnerer afkastet for et værdipapir med periodiske renteudbetalinger
    +YIELDDISC		= AFKAST.DISKONTO		##	Returnerer det årlige afkast for et diskonteret værdipapir, f.eks. en statsobligation
    +YIELDMAT		= AFKAST.UDLØBSDATO		##	Returnerer det årlige afkast for et værdipapir, hvor renten udbetales ved papirets udløb
    +
    +
    +##
    +##	Information functions				Informationsfunktioner
    +##
    +CELL			= CELLE				##	Returnerer oplysninger om formatering, placering eller indhold af en celle
    +ERROR.TYPE		= FEJLTYPE			##	Returnerer et tal, der svarer til en fejltype
    +INFO			= INFO				##	Returnerer oplysninger om det aktuelle operativmiljø
    +ISBLANK			= ER.TOM			##	Returnerer SAND, hvis værdien er tom
    +ISERR			= ER.FJL			##	Returnerer SAND, hvis værdien er en fejlværdi undtagen #I/T
    +ISERROR			= ER.FEJL			##	Returnerer SAND, hvis værdien er en fejlværdi
    +ISEVEN			= ER.LIGE			##	Returnerer SAND, hvis tallet er lige
    +ISLOGICAL		= ER.LOGISK			##	Returnerer SAND, hvis værdien er en logisk værdi
    +ISNA			= ER.IKKE.TILGÆNGELIG		##	Returnerer SAND, hvis værdien er fejlværdien #I/T
    +ISNONTEXT		= ER.IKKE.TEKST			##	Returnerer SAND, hvis værdien ikke er tekst
    +ISNUMBER		= ER.TAL			##	Returnerer SAND, hvis værdien er et tal
    +ISODD			= ER.ULIGE			##	Returnerer SAND, hvis tallet er ulige
    +ISREF			= ER.REFERENCE			##	Returnerer SAND, hvis værdien er en reference
    +ISTEXT			= ER.TEKST			##	Returnerer SAND, hvis værdien er tekst
    +N			= TAL				##	Returnerer en værdi konverteret til et tal
    +NA			= IKKE.TILGÆNGELIG		##	Returnerer fejlværdien #I/T
    +TYPE			= VÆRDITYPE			##	Returnerer et tal, der angiver datatypen for en værdi
    +
    +
    +##
    +##	Logical functions				Logiske funktioner
    +##
    +AND			= OG				##	Returnerer SAND, hvis alle argumenterne er sande
    +FALSE			= FALSK				##	Returnerer den logiske værdi FALSK
    +IF			= HVIS				##	Angiver en logisk test, der skal udføres
    +IFERROR			= HVIS.FEJL			##	Returnerer en værdi, du angiver, hvis en formel evauleres som en fejl. Returnerer i modsat fald resultatet af formlen
    +NOT			= IKKE				##	Vender argumentets logik om
    +OR			= ELLER				##	Returneret værdien SAND, hvis mindst ét argument er sandt
    +TRUE			= SAND				##	Returnerer den logiske værdi SAND
    +
    +
    +##
    +##	Lookup and reference functions			Opslags- og referencefunktioner
    +##
    +ADDRESS			= ADRESSE			##	Returnerer en reference som tekst til en enkelt celle i et regneark
    +AREAS			= OMRÅDER			##	Returnerer antallet af områder i en reference
    +CHOOSE			= VÆLG				##	Vælger en værdi på en liste med værdier
    +COLUMN			= KOLONNE			##	Returnerer kolonnenummeret i en reference
    +COLUMNS			= KOLONNER			##	Returnerer antallet af kolonner i en reference
    +HLOOKUP			= VOPSLAG			##	Søger i den øverste række af en matrix og returnerer værdien af den angivne celle
    +HYPERLINK		= HYPERLINK			##	Opretter en genvej kaldet et hyperlink, der åbner et dokument, som er lagret på en netværksserver, på et intranet eller på internettet
    +INDEX			= INDEKS			##	Anvender et indeks til at vælge en værdi fra en reference eller en matrix
    +INDIRECT		= INDIREKTE			##	Returnerer en reference, der er angivet af en tekstværdi
    +LOOKUP			= SLÅ.OP			##	Søger værdier i en vektor eller en matrix
    +MATCH			= SAMMENLIGN			##	Søger værdier i en reference eller en matrix
    +OFFSET			= FORSKYDNING			##	Returnerer en reference forskudt i forhold til en given reference
    +ROW			= RÆKKE				##	Returnerer rækkenummeret for en reference
    +ROWS			= RÆKKER			##	Returnerer antallet af rækker i en reference
    +RTD			= RTD				##	Henter realtidsdata fra et program, der understøtter COM-automatisering (Automation: En metode til at arbejde med objekter fra et andet program eller udviklingsværktøj. Automation, som tidligere blev kaldt OLE Automation, er en industristandard og en funktion i COM (Component Object Model).)
    +TRANSPOSE		= TRANSPONER			##	Returnerer en transponeret matrix
    +VLOOKUP			= LOPSLAG			##	Søger i øverste række af en matrix og flytter på tværs af rækken for at returnere en celleværdi
    +
    +
    +##
    +##	Math and trigonometry functions			Matematiske og trigonometriske funktioner
    +##
    +ABS			= ABS				##	Returnerer den absolutte værdi af et tal
    +ACOS			= ARCCOS			##	Returnerer et tals arcus cosinus
    +ACOSH			= ARCCOSH			##	Returnerer den inverse hyperbolske cosinus af tal
    +ASIN			= ARCSIN			##	Returnerer et tals arcus sinus
    +ASINH			= ARCSINH			##	Returnerer den inverse hyperbolske sinus for tal
    +ATAN			= ARCTAN			##	Returnerer et tals arcus tangens
    +ATAN2			= ARCTAN2			##	Returnerer de angivne x- og y-koordinaters arcus tangens
    +ATANH			= ARCTANH			##	Returnerer et tals inverse hyperbolske tangens
    +CEILING			= AFRUND.LOFT			##	Afrunder et tal til nærmeste heltal eller til nærmeste multiplum af betydning
    +COMBIN			= KOMBIN			##	Returnerer antallet af kombinationer for et givet antal objekter
    +COS			= COS				##	Returnerer et tals cosinus
    +COSH			= COSH				##	Returnerer den inverse hyperbolske cosinus af et tal
    +DEGREES			= GRADER			##	Konverterer radianer til grader
    +EVEN			= LIGE				##	Runder et tal op til nærmeste lige heltal
    +EXP			= EKSP				##	Returnerer e opløftet til en potens af et angivet tal
    +FACT			= FAKULTET			##	Returnerer et tals fakultet
    +FACTDOUBLE		= DOBBELT.FAKULTET		##	Returnerer et tals dobbelte fakultet
    +FLOOR			= AFRUND.GULV			##	Runder et tal ned mod nul
    +GCD			= STØRSTE.FÆLLES.DIVISOR	##	Returnerer den største fælles divisor
    +INT			= HELTAL			##	Nedrunder et tal til det nærmeste heltal
    +LCM			= MINDSTE.FÆLLES.MULTIPLUM	##	Returnerer det mindste fælles multiplum
    +LN			= LN				##	Returnerer et tals naturlige logaritme
    +LOG			= LOG				##	Returnerer logaritmen for et tal på grundlag af et angivet grundtal
    +LOG10			= LOG10				##	Returnerer titalslogaritmen af et tal
    +MDETERM			= MDETERM			##	Returnerer determinanten for en matrix
    +MINVERSE		= MINVERT			##	Returnerer den inverse matrix for en matrix
    +MMULT			= MPRODUKT			##	Returnerer matrixproduktet af to matrixer
    +MOD			= REST				##	Returnerer restværdien fra division
    +MROUND			= MAFRUND			##	Returnerer et tal afrundet til det ønskede multiplum
    +MULTINOMIAL		= MULTINOMIAL			##	Returnerer et multinomialt talsæt
    +ODD			= ULIGE				##	Runder et tal op til nærmeste ulige heltal
    +PI			= PI				##	Returnerer værdien af pi
    +POWER			= POTENS			##	Returnerer resultatet af et tal opløftet til en potens
    +PRODUCT			= PRODUKT			##	Multiplicerer argumenterne
    +QUOTIENT		= KVOTIENT			##	Returnerer heltalsdelen ved division
    +RADIANS			= RADIANER			##	Konverterer grader til radianer
    +RAND			= SLUMP				##	Returnerer et tilfældigt tal mellem 0 og 1
    +RANDBETWEEN		= SLUMP.MELLEM			##	Returnerer et tilfældigt tal mellem de tal, der angives
    +ROMAN			= ROMERTAL			##	Konverterer et arabertal til romertal som tekst
    +ROUND			= AFRUND			##	Afrunder et tal til et angivet antal decimaler
    +ROUNDDOWN		= RUND.NED			##	Runder et tal ned mod nul
    +ROUNDUP			= RUND.OP			##	Runder et tal op, væk fra 0 (nul)
    +SERIESSUM		= SERIESUM			##	Returnerer summen af en potensserie baseret på en formel
    +SIGN			= FORTEGN			##	Returnerer et tals fortegn
    +SIN			= SIN				##	Returnerer en given vinkels sinusværdi
    +SINH			= SINH				##	Returnerer den hyperbolske sinus af et tal
    +SQRT			= KVROD				##	Returnerer en positiv kvadratrod
    +SQRTPI			= KVRODPI			##	Returnerer kvadratroden af (tal * pi;)
    +SUBTOTAL		= SUBTOTAL			##	Returnerer en subtotal på en liste eller i en database
    +SUM			= SUM				##	Lægger argumenterne sammen
    +SUMIF			= SUM.HVIS			##	Lægger de celler sammen, der er specificeret af et givet kriterium.
    +SUMIFS			= SUM.HVISER			##	Lægger de celler i et område sammen, der opfylder flere kriterier.
    +SUMPRODUCT		= SUMPRODUKT			##	Returnerer summen af produkter af ens matrixkomponenter
    +SUMSQ			= SUMKV				##	Returnerer summen af argumenternes kvadrater
    +SUMX2MY2		= SUMX2MY2			##	Returnerer summen af differensen mellem kvadrater af ens værdier i to matrixer
    +SUMX2PY2		= SUMX2PY2			##	Returnerer summen af summen af kvadrater af tilsvarende værdier i to matrixer
    +SUMXMY2			= SUMXMY2			##	Returnerer summen af kvadrater af differenser mellem ens værdier i to matrixer
    +TAN			= TAN				##	Returnerer et tals tangens
    +TANH			= TANH				##	Returnerer et tals hyperbolske tangens
    +TRUNC			= AFKORT			##	Afkorter et tal til et heltal
    +
    +
    +##
    +##	Statistical functions				Statistiske funktioner
    +##
    +AVEDEV			= MAD				##	Returnerer den gennemsnitlige numeriske afvigelse fra stikprøvens middelværdi
    +AVERAGE			= MIDDEL			##	Returnerer middelværdien af argumenterne
    +AVERAGEA		= MIDDELV			##	Returnerer middelværdien af argumenterne og medtager tal, tekst og logiske værdier
    +AVERAGEIF		= MIDDEL.HVIS			##	Returnerer gennemsnittet (den aritmetiske middelværdi) af alle de celler, der opfylder et givet kriterium, i et område
    +AVERAGEIFS		= MIDDEL.HVISER			##	Returnerer gennemsnittet (den aritmetiske middelværdi) af alle de celler, der opfylder flere kriterier.
    +BETADIST		= BETAFORDELING			##	Returnerer den kumulative betafordelingsfunktion
    +BETAINV			= BETAINV			##	Returnerer den inverse kumulative fordelingsfunktion for en angivet betafordeling
    +BINOMDIST		= BINOMIALFORDELING		##	Returnerer punktsandsynligheden for binomialfordelingen
    +CHIDIST			= CHIFORDELING			##	Returnerer fraktilsandsynligheden for en chi2-fordeling
    +CHIINV			= CHIINV			##	Returnerer den inverse fraktilsandsynlighed for en chi2-fordeling
    +CHITEST			= CHITEST			##	Foretager en test for uafhængighed
    +CONFIDENCE		= KONFIDENSINTERVAL		##	Returnerer et konfidensinterval for en population
    +CORREL			= KORRELATION			##	Returnerer korrelationskoefficienten mellem to datasæt
    +COUNT			= TÆL				##	Tæller antallet af tal på en liste med argumenter
    +COUNTA			= TÆLV				##	Tæller antallet af værdier på en liste med argumenter
    +COUNTBLANK		= ANTAL.BLANKE			##	Tæller antallet af tomme celler i et område
    +COUNTIF			= TÆLHVIS			##	Tæller antallet af celler, som opfylder de givne kriterier, i et område
    +COUNTIFS		= TÆL.HVISER			##	Tæller antallet af de celler, som opfylder flere kriterier, i et område
    +COVAR			= KOVARIANS			##	Beregner kovariansen mellem to stokastiske variabler
    +CRITBINOM		= KRITBINOM			##	Returnerer den mindste værdi for x, for hvilken det gælder, at fordelingsfunktionen er mindre end eller lig med kriterieværdien.
    +DEVSQ			= SAK				##	Returnerer summen af de kvadrerede afvigelser fra middelværdien
    +EXPONDIST		= EKSPFORDELING			##	Returnerer eksponentialfordelingen
    +FDIST			= FFORDELING			##	Returnerer fraktilsandsynligheden for F-fordelingen
    +FINV			= FINV				##	Returnerer den inverse fraktilsandsynlighed for F-fordelingen
    +FISHER			= FISHER			##	Returnerer Fisher-transformationen
    +FISHERINV		= FISHERINV			##	Returnerer den inverse Fisher-transformation
    +FORECAST		= PROGNOSE			##	Returnerer en prognoseværdi baseret på lineær tendens
    +FREQUENCY		= FREKVENS			##	Returnerer en frekvensfordeling i en søjlevektor
    +FTEST			= FTEST				##	Returnerer resultatet af en F-test til sammenligning af varians
    +GAMMADIST		= GAMMAFORDELING		##	Returnerer fordelingsfunktionen for gammafordelingen
    +GAMMAINV		= GAMMAINV			##	Returnerer den inverse fordelingsfunktion for gammafordelingen
    +GAMMALN			= GAMMALN			##	Returnerer den naturlige logaritme til gammafordelingen, G(x)
    +GEOMEAN			= GEOMIDDELVÆRDI		##	Returnerer det geometriske gennemsnit
    +GROWTH			= FORØGELSE			##	Returnerer værdier langs en eksponentiel tendens
    +HARMEAN			= HARMIDDELVÆRDI		##	Returnerer det harmoniske gennemsnit
    +HYPGEOMDIST		= HYPGEOFORDELING		##	Returnerer punktsandsynligheden i en hypergeometrisk fordeling
    +INTERCEPT		= SKÆRING			##	Returnerer afskæringsværdien på y-aksen i en lineær regression
    +KURT			= TOPSTEJL			##	Returnerer kurtosisværdien for en stokastisk variabel
    +LARGE			= STOR				##	Returnerer den k'te største værdi i et datasæt
    +LINEST			= LINREGR			##	Returnerer parameterestimaterne for en lineær tendens
    +LOGEST			= LOGREGR			##	Returnerer parameterestimaterne for en eksponentiel tendens
    +LOGINV			= LOGINV			##	Returnerer den inverse fordelingsfunktion for lognormalfordelingen
    +LOGNORMDIST		= LOGNORMFORDELING		##	Returnerer fordelingsfunktionen for lognormalfordelingen
    +MAX			= MAKS				##	Returnerer den maksimale værdi på en liste med argumenter.
    +MAXA			= MAKSV				##	Returnerer den maksimale værdi på en liste med argumenter og medtager tal, tekst og logiske værdier
    +MEDIAN			= MEDIAN			##	Returnerer medianen for de angivne tal
    +MIN			= MIN				##	Returnerer den mindste værdi på en liste med argumenter.
    +MINA			= MINV				##	Returnerer den mindste værdi på en liste med argumenter og medtager tal, tekst og logiske værdier
    +MODE			= HYPPIGST			##	Returnerer den hyppigste værdi i et datasæt
    +NEGBINOMDIST		= NEGBINOMFORDELING		##	Returnerer den negative binomialfordeling
    +NORMDIST		= NORMFORDELING			##	Returnerer fordelingsfunktionen for normalfordelingen
    +NORMINV			= NORMINV			##	Returnerer den inverse fordelingsfunktion for normalfordelingen
    +NORMSDIST		= STANDARDNORMFORDELING		##	Returnerer fordelingsfunktionen for standardnormalfordelingen
    +NORMSINV		= STANDARDNORMINV		##	Returnerer den inverse fordelingsfunktion for standardnormalfordelingen
    +PEARSON			= PEARSON			##	Returnerer Pearsons korrelationskoefficient
    +PERCENTILE		= FRAKTIL			##	Returnerer den k'te fraktil for datasættet
    +PERCENTRANK		= PROCENTPLADS			##	Returnerer den procentuelle rang for en given værdi i et datasæt
    +PERMUT			= PERMUT			##	Returnerer antallet af permutationer for et givet sæt objekter
    +POISSON			= POISSON			##	Returnerer fordelingsfunktionen for en Poisson-fordeling
    +PROB			= SANDSYNLIGHED			##	Returnerer intervalsandsynligheden
    +QUARTILE		= KVARTIL			##	Returnerer kvartilen i et givet datasæt
    +RANK			= PLADS				##	Returnerer rangen for et tal på en liste med tal
    +RSQ			= FORKLARINGSGRAD		##	Returnerer R2-værdien fra en simpel lineær regression
    +SKEW			= SKÆVHED			##	Returnerer skævheden for en stokastisk variabel
    +SLOPE			= HÆLDNING			##	Returnerer estimatet på hældningen fra en simpel lineær regression
    +SMALL			= MINDSTE			##	Returnerer den k'te mindste værdi i datasættet
    +STANDARDIZE		= STANDARDISER			##	Returnerer en standardiseret værdi
    +STDEV			= STDAFV			##	Estimerer standardafvigelsen på basis af en stikprøve
    +STDEVA			= STDAFVV			##	Beregner standardafvigelsen på basis af en prøve og medtager tal, tekst og logiske værdier
    +STDEVP			= STDAFVP			##	Beregner standardafvigelsen på basis af en hel population
    +STDEVPA			= STDAFVPV			##	Beregner standardafvigelsen på basis af en hel population og medtager tal, tekst og logiske værdier
    +STEYX			= STFYX				##	Returnerer standardafvigelsen for de estimerede y-værdier i den simple lineære regression
    +TDIST			= TFORDELING			##	Returnerer fordelingsfunktionen for Student's t-fordeling
    +TINV			= TINV				##	Returnerer den inverse fordelingsfunktion for Student's t-fordeling
    +TREND			= TENDENS			##	Returnerer værdi under antagelse af en lineær tendens
    +TRIMMEAN		= TRIMMIDDELVÆRDI		##	Returnerer den trimmede middelværdi for datasættet
    +TTEST			= TTEST				##	Returnerer den sandsynlighed, der er forbundet med Student's t-test
    +VAR			= VARIANS			##	Beregner variansen på basis af en prøve
    +VARA			= VARIANSV			##	Beregner variansen på basis af en prøve og medtager tal, tekst og logiske værdier
    +VARP			= VARIANSP			##	Beregner variansen på basis af hele populationen
    +VARPA			= VARIANSPV			##	Beregner variansen på basis af hele populationen og medtager tal, tekst og logiske værdier
    +WEIBULL			= WEIBULL			##	Returnerer fordelingsfunktionen for Weibull-fordelingen
    +ZTEST			= ZTEST				##	Returnerer sandsynlighedsværdien ved en en-sidet z-test
    +
    +
    +##
    +##	Text functions					Tekstfunktioner
    +##
    +ASC			= ASC				##	Ændrer engelske tegn i fuld bredde (dobbelt-byte) eller katakana i en tegnstreng til tegn i halv bredde (enkelt-byte)
    +BAHTTEXT		= BAHTTEKST			##	Konverterer et tal til tekst ved hjælp af valutaformatet ß (baht)
    +CHAR			= TEGN				##	Returnerer det tegn, der svarer til kodenummeret
    +CLEAN			= RENS				##	Fjerner alle tegn, der ikke kan udskrives, fra tekst
    +CODE			= KODE				##	Returnerer en numerisk kode for det første tegn i en tekststreng
    +CONCATENATE		= SAMMENKÆDNING			##	Sammenkæder adskillige tekstelementer til ét tekstelement
    +DOLLAR			= KR				##	Konverterer et tal til tekst ved hjælp af valutaformatet kr. (kroner)
    +EXACT			= EKSAKT			##	Kontrollerer, om to tekstværdier er identiske
    +FIND			= FIND				##	Søger efter en tekstværdi i en anden tekstværdi (der skelnes mellem store og små bogstaver)
    +FINDB			= FINDB				##	Søger efter en tekstværdi i en anden tekstværdi (der skelnes mellem store og små bogstaver)
    +FIXED			= FAST				##	Formaterer et tal som tekst med et fast antal decimaler
    +JIS			= JIS				##	Ændrer engelske tegn i halv bredde (enkelt-byte) eller katakana i en tegnstreng til tegn i fuld bredde (dobbelt-byte)
    +LEFT			= VENSTRE			##	Returnerer tegnet længst til venstre i en tekstværdi
    +LEFTB			= VENSTREB			##	Returnerer tegnet længst til venstre i en tekstværdi
    +LEN			= LÆNGDE			##	Returnerer antallet af tegn i en tekststreng
    +LENB			= LÆNGDEB			##	Returnerer antallet af tegn i en tekststreng
    +LOWER			= SMÅ.BOGSTAVER			##	Konverterer tekst til små bogstaver
    +MID			= MIDT				##	Returnerer et bestemt antal tegn fra en tekststreng fra og med den angivne startposition
    +MIDB			= MIDTB				##	Returnerer et bestemt antal tegn fra en tekststreng fra og med den angivne startposition
    +PHONETIC		= FONETISK			##	Uddrager de fonetiske (furigana) tegn fra en tekststreng
    +PROPER			= STORT.FORBOGSTAV		##	Konverterer første bogstav i hvert ord i teksten til stort bogstav
    +REPLACE			= ERSTAT			##	Erstatter tegn i tekst
    +REPLACEB		= ERSTATB			##	Erstatter tegn i tekst
    +REPT			= GENTAG			##	Gentager tekst et givet antal gange
    +RIGHT			= HØJRE				##	Returnerer tegnet længste til højre i en tekstværdi
    +RIGHTB			= HØJREB			##	Returnerer tegnet længste til højre i en tekstværdi
    +SEARCH			= SØG				##	Søger efter en tekstværdi i en anden tekstværdi (der skelnes ikke mellem store og små bogstaver)
    +SEARCHB			= SØGB				##	Søger efter en tekstværdi i en anden tekstværdi (der skelnes ikke mellem store og små bogstaver)
    +SUBSTITUTE		= UDSKIFT			##	Udskifter gammel tekst med ny tekst i en tekststreng
    +T			= T				##	Konverterer argumenterne til tekst
    +TEXT			= TEKST				##	Formaterer et tal og konverterer det til tekst
    +TRIM			= FJERN.OVERFLØDIGE.BLANKE	##	Fjerner mellemrum fra tekst
    +UPPER			= STORE.BOGSTAVER		##	Konverterer tekst til store bogstaver
    +VALUE			= VÆRDI				##	Konverterer et tekstargument til et tal
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/de/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/de/config
    new file mode 100644
    index 00000000000..9751c4b6b41
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/de/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= €
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #NULL!
    +DIV0	= #DIV/0!
    +VALUE	= #WERT!
    +REF	= #BEZUG!
    +NAME	= #NAME?
    +NUM	= #ZAHL!
    +NA	= #NV
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/de/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/de/functions
    new file mode 100644
    index 00000000000..01df42f6412
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/de/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions			Add-In- und Automatisierungsfunktionen
    +##
    +GETPIVOTDATA	= PIVOTDATENZUORDNEN			##	In einem PivotTable-Bericht gespeicherte Daten werden zurückgegeben.
    +
    +
    +##
    +##	Cube functions					Cubefunktionen
    +##
    +CUBEKPIMEMBER		= CUBEKPIELEMENT		##	Gibt Name, Eigenschaft und Measure eines Key Performance Indicators (KPI) zurück und zeigt den Namen und die Eigenschaft in der Zelle an. Ein KPI ist ein quantifizierbares Maß, wie z. B. der monatliche Bruttogewinn oder die vierteljährliche Mitarbeiterfluktuation, mit dessen Hilfe das Leistungsverhalten eines Unternehmens überwacht werden kann.
    +CUBEMEMBER		= CUBEELEMENT			##	Gibt ein Element oder ein Tuple in einer Cubehierarchie zurück. Wird verwendet, um zu überprüfen, ob das Element oder Tuple im Cube vorhanden ist.
    +CUBEMEMBERPROPERTY	= CUBEELEMENTEIGENSCHAFT	##	Gibt den Wert einer Elementeigenschaft im Cube zurück. Wird verwendet, um zu überprüfen, ob ein Elementname im Cube vorhanden ist, und um die für dieses Element angegebene Eigenschaft zurückzugeben.
    +CUBERANKEDMEMBER	= CUBERANGELEMENT		##	Gibt das n-te oder n-rangige Element in einer Menge zurück. Wird verwendet, um mindestens ein Element in einer Menge zurückzugeben, wie z. B. bester Vertriebsmitarbeiter oder 10 beste Kursteilnehmer.
    +CUBESET			= CUBEMENGE			##	Definiert eine berechnete Menge Elemente oder Tuples durch Senden eines Mengenausdrucks an den Cube auf dem Server, der die Menge erstellt und an Microsoft Office Excel zurückgibt.
    +CUBESETCOUNT		= CUBEMENGENANZAHL		##	Gibt die Anzahl der Elemente in einer Menge zurück.
    +CUBEVALUE		= CUBEWERT			##	Gibt einen Aggregatwert aus einem Cube zurück.
    +
    +
    +##
    +##	Database functions				Datenbankfunktionen
    +##
    +DAVERAGE		= DBMITTELWERT			##	Gibt den Mittelwert der ausgewählten Datenbankeinträge zurück
    +DCOUNT			= DBANZAHL			##	Zählt die Zellen mit Zahlen in einer Datenbank
    +DCOUNTA			= DBANZAHL2			##	Zählt nicht leere Zellen in einer Datenbank
    +DGET			= DBAUSZUG			##	Extrahiert aus einer Datenbank einen einzelnen Datensatz, der den angegebenen Kriterien entspricht
    +DMAX			= DBMAX				##	Gibt den größten Wert aus ausgewählten Datenbankeinträgen zurück
    +DMIN			= DBMIN				##	Gibt den kleinsten Wert aus ausgewählten Datenbankeinträgen zurück
    +DPRODUCT		= DBPRODUKT			##	Multipliziert die Werte in einem bestimmten Feld mit Datensätzen, die den Kriterien in einer Datenbank entsprechen
    +DSTDEV			= DBSTDABW			##	Schätzt die Standardabweichung auf der Grundlage einer Stichprobe aus ausgewählten Datenbankeinträgen
    +DSTDEVP			= DBSTDABWN			##	Berechnet die Standardabweichung auf der Grundlage der Grundgesamtheit ausgewählter Datenbankeinträge
    +DSUM			= DBSUMME			##	Addiert die Zahlen in der Feldspalte mit Datensätzen in der Datenbank, die den Kriterien entsprechen
    +DVAR			= DBVARIANZ			##	Schätzt die Varianz auf der Grundlage ausgewählter Datenbankeinträge
    +DVARP			= DBVARIANZEN			##	Berechnet die Varianz auf der Grundlage der Grundgesamtheit ausgewählter Datenbankeinträge
    +
    +
    +##
    +##	Date and time functions				Datums- und Zeitfunktionen
    +##
    +DATE			= DATUM				##	Gibt die fortlaufende Zahl eines bestimmten Datums zurück
    +DATEVALUE		= DATWERT			##	Wandelt ein Datum in Form von Text in eine fortlaufende Zahl um
    +DAY			= TAG				##	Wandelt eine fortlaufende Zahl in den Tag des Monats um
    +DAYS360			= TAGE360			##	Berechnet die Anzahl der Tage zwischen zwei Datumsangaben ausgehend von einem Jahr, das 360 Tage hat
    +EDATE			= EDATUM			##	Gibt die fortlaufende Zahl des Datums zurück, bei dem es sich um die angegebene Anzahl von Monaten vor oder nach dem Anfangstermin handelt
    +EOMONTH			= MONATSENDE			##	Gibt die fortlaufende Zahl des letzten Tags des Monats vor oder nach einer festgelegten Anzahl von Monaten zurück
    +HOUR			= STUNDE			##	Wandelt eine fortlaufende Zahl in eine Stunde um
    +MINUTE			= MINUTE			##	Wandelt eine fortlaufende Zahl in eine Minute um
    +MONTH			= MONAT				##	Wandelt eine fortlaufende Zahl in einen Monat um
    +NETWORKDAYS		= NETTOARBEITSTAGE		##	Gibt die Anzahl von ganzen Arbeitstagen zwischen zwei Datumswerten zurück
    +NOW			= JETZT				##	Gibt die fortlaufende Zahl des aktuellen Datums und der aktuellen Uhrzeit zurück
    +SECOND			= SEKUNDE			##	Wandelt eine fortlaufende Zahl in eine Sekunde um
    +TIME			= ZEIT				##	Gibt die fortlaufende Zahl einer bestimmten Uhrzeit zurück
    +TIMEVALUE		= ZEITWERT			##	Wandelt eine Uhrzeit in Form von Text in eine fortlaufende Zahl um
    +TODAY			= HEUTE				##	Gibt die fortlaufende Zahl des heutigen Datums zurück
    +WEEKDAY			= WOCHENTAG			##	Wandelt eine fortlaufende Zahl in den Wochentag um
    +WEEKNUM			= KALENDERWOCHE			##	Wandelt eine fortlaufende Zahl in eine Zahl um, die angibt, in welche Woche eines Jahres das angegebene Datum fällt
    +WORKDAY			= ARBEITSTAG			##	Gibt die fortlaufende Zahl des Datums vor oder nach einer bestimmten Anzahl von Arbeitstagen zurück
    +YEAR			= JAHR				##	Wandelt eine fortlaufende Zahl in ein Jahr um
    +YEARFRAC		= BRTEILJAHRE			##	Gibt die Anzahl der ganzen Tage zwischen Ausgangsdatum und Enddatum in Bruchteilen von Jahren zurück
    +
    +
    +##
    +##	Engineering functions				Konstruktionsfunktionen
    +##
    +BESSELI			= BESSELI			##	Gibt die geänderte Besselfunktion In(x) zurück
    +BESSELJ			= BESSELJ			##	Gibt die Besselfunktion Jn(x) zurück
    +BESSELK			= BESSELK			##	Gibt die geänderte Besselfunktion Kn(x) zurück
    +BESSELY			= BESSELY			##	Gibt die Besselfunktion Yn(x) zurück
    +BIN2DEC			= BININDEZ			##	Wandelt eine binäre Zahl (Dualzahl) in eine dezimale Zahl um
    +BIN2HEX			= BININHEX			##	Wandelt eine binäre Zahl (Dualzahl) in eine hexadezimale Zahl um
    +BIN2OCT			= BININOKT			##	Wandelt eine binäre Zahl (Dualzahl) in eine oktale Zahl um
    +COMPLEX			= KOMPLEXE			##	Wandelt den Real- und Imaginärteil in eine komplexe Zahl um
    +CONVERT			= UMWANDELN			##	Wandelt eine Zahl von einem Maßsystem in ein anderes um
    +DEC2BIN			= DEZINBIN			##	Wandelt eine dezimale Zahl in eine binäre Zahl (Dualzahl) um
    +DEC2HEX			= DEZINHEX			##	Wandelt eine dezimale Zahl in eine hexadezimale Zahl um
    +DEC2OCT			= DEZINOKT			##	Wandelt eine dezimale Zahl in eine oktale Zahl um
    +DELTA			= DELTA				##	Überprüft, ob zwei Werte gleich sind
    +ERF			= GAUSSFEHLER			##	Gibt die Gauss'sche Fehlerfunktion zurück
    +ERFC			= GAUSSFKOMPL			##	Gibt das Komplement zur Gauss'schen Fehlerfunktion zurück
    +GESTEP			= GGANZZAHL			##	Überprüft, ob eine Zahl größer als ein gegebener Schwellenwert ist
    +HEX2BIN			= HEXINBIN			##	Wandelt eine hexadezimale Zahl in eine Binärzahl um
    +HEX2DEC			= HEXINDEZ			##	Wandelt eine hexadezimale Zahl in eine dezimale Zahl um
    +HEX2OCT			= HEXINOKT			##	Wandelt eine hexadezimale Zahl in eine Oktalzahl um
    +IMABS			= IMABS				##	Gibt den Absolutbetrag (Modulo) einer komplexen Zahl zurück
    +IMAGINARY		= IMAGINÄRTEIL			##	Gibt den Imaginärteil einer komplexen Zahl zurück
    +IMARGUMENT		= IMARGUMENT			##	Gibt das Argument Theta zurück, einen Winkel, der als Bogenmaß ausgedrückt wird
    +IMCONJUGATE		= IMKONJUGIERTE			##	Gibt die konjugierte komplexe Zahl zu einer komplexen Zahl zurück
    +IMCOS			= IMCOS				##	Gibt den Kosinus einer komplexen Zahl zurück
    +IMDIV			= IMDIV				##	Gibt den Quotienten zweier komplexer Zahlen zurück
    +IMEXP			= IMEXP				##	Gibt die algebraische Form einer in exponentieller Schreibweise vorliegenden komplexen Zahl zurück
    +IMLN			= IMLN				##	Gibt den natürlichen Logarithmus einer komplexen Zahl zurück
    +IMLOG10			= IMLOG10			##	Gibt den Logarithmus einer komplexen Zahl zur Basis 10 zurück
    +IMLOG2			= IMLOG2			##	Gibt den Logarithmus einer komplexen Zahl zur Basis 2 zurück
    +IMPOWER			= IMAPOTENZ			##	Potenziert eine komplexe Zahl mit einer ganzen Zahl
    +IMPRODUCT		= IMPRODUKT			##	Gibt das Produkt von komplexen Zahlen zurück
    +IMREAL			= IMREALTEIL			##	Gibt den Realteil einer komplexen Zahl zurück
    +IMSIN			= IMSIN				##	Gibt den Sinus einer komplexen Zahl zurück
    +IMSQRT			= IMWURZEL			##	Gibt die Quadratwurzel einer komplexen Zahl zurück
    +IMSUB			= IMSUB				##	Gibt die Differenz zwischen zwei komplexen Zahlen zurück
    +IMSUM			= IMSUMME			##	Gibt die Summe von komplexen Zahlen zurück
    +OCT2BIN			= OKTINBIN			##	Wandelt eine oktale Zahl in eine binäre Zahl (Dualzahl) um
    +OCT2DEC			= OKTINDEZ			##	Wandelt eine oktale Zahl in eine dezimale Zahl um
    +OCT2HEX			= OKTINHEX			##	Wandelt eine oktale Zahl in eine hexadezimale Zahl um
    +
    +
    +##
    +##	Financial functions				Finanzmathematische Funktionen
    +##
    +ACCRINT			= AUFGELZINS			##	Gibt die aufgelaufenen Zinsen (Stückzinsen) eines Wertpapiers mit periodischen Zinszahlungen zurück
    +ACCRINTM		= AUFGELZINSF			##	Gibt die aufgelaufenen Zinsen (Stückzinsen) eines Wertpapiers zurück, die bei Fälligkeit ausgezahlt werden
    +AMORDEGRC		= AMORDEGRK			##	Gibt die Abschreibung für die einzelnen Abschreibungszeiträume mithilfe eines Abschreibungskoeffizienten zurück
    +AMORLINC		= AMORLINEARK			##	Gibt die Abschreibung für die einzelnen Abschreibungszeiträume zurück
    +COUPDAYBS		= ZINSTERMTAGVA			##	Gibt die Anzahl der Tage vom Anfang des Zinstermins bis zum Abrechnungstermin zurück
    +COUPDAYS		= ZINSTERMTAGE			##	Gibt die Anzahl der Tage der Zinsperiode zurück, die den Abrechnungstermin einschließt
    +COUPDAYSNC		= ZINSTERMTAGNZ			##	Gibt die Anzahl der Tage vom Abrechnungstermin bis zum nächsten Zinstermin zurück
    +COUPNCD			= ZINSTERMNZ			##	Gibt das Datum des ersten Zinstermins nach dem Abrechnungstermin zurück
    +COUPNUM			= ZINSTERMZAHL			##	Gibt die Anzahl der Zinstermine zwischen Abrechnungs- und Fälligkeitsdatum zurück
    +COUPPCD			= ZINSTERMVZ			##	Gibt das Datum des letzten Zinstermins vor dem Abrechnungstermin zurück
    +CUMIPMT			= KUMZINSZ			##	Berechnet die kumulierten Zinsen, die zwischen zwei Perioden zu zahlen sind
    +CUMPRINC		= KUMKAPITAL			##	Berechnet die aufgelaufene Tilgung eines Darlehens, die zwischen zwei Perioden zu zahlen ist
    +DB			= GDA2				##	Gibt die geometrisch-degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode zurück
    +DDB			= GDA				##	Gibt die Abschreibung eines Anlageguts für einen angegebenen Zeitraum unter Verwendung der degressiven Doppelraten-Abschreibung oder eines anderen von Ihnen angegebenen Abschreibungsverfahrens zurück
    +DISC			= DISAGIO			##	Gibt den in Prozent ausgedrückten Abzinsungssatz eines Wertpapiers zurück
    +DOLLARDE		= NOTIERUNGDEZ			##	Wandelt eine Notierung, die als Dezimalbruch ausgedrückt wurde, in eine Dezimalzahl um
    +DOLLARFR		= NOTIERUNGBRU			##	Wandelt eine Notierung, die als Dezimalzahl ausgedrückt wurde, in einen Dezimalbruch um
    +DURATION		= DURATION			##	Gibt die jährliche Duration eines Wertpapiers mit periodischen Zinszahlungen zurück
    +EFFECT			= EFFEKTIV			##	Gibt die jährliche Effektivverzinsung zurück
    +FV			= ZW				##	Gibt den zukünftigen Wert (Endwert) einer Investition zurück
    +FVSCHEDULE		= ZW2				##	Gibt den aufgezinsten Wert des Anfangskapitals für eine Reihe periodisch unterschiedlicher Zinssätze zurück
    +INTRATE			= ZINSSATZ			##	Gibt den Zinssatz eines voll investierten Wertpapiers zurück
    +IPMT			= ZINSZ				##	Gibt die Zinszahlung einer Investition für die angegebene Periode zurück
    +IRR			= IKV				##	Gibt den internen Zinsfuß einer Investition ohne Finanzierungskosten oder Reinvestitionsgewinne zurück
    +ISPMT			= ISPMT				##	Berechnet die während eines bestimmten Zeitraums für eine Investition gezahlten Zinsen
    +MDURATION		= MDURATION			##	Gibt die geänderte Dauer für ein Wertpapier mit einem angenommenen Nennwert von 100 € zurück
    +MIRR			= QIKV				##	Gibt den internen Zinsfuß zurück, wobei positive und negative Zahlungen zu unterschiedlichen Sätzen finanziert werden
    +NOMINAL			= NOMINAL			##	Gibt die jährliche Nominalverzinsung zurück
    +NPER			= ZZR				##	Gibt die Anzahl der Zahlungsperioden einer Investition zurück
    +NPV			= NBW				##	Gibt den Nettobarwert einer Investition auf Basis periodisch anfallender Zahlungen und eines Abzinsungsfaktors zurück
    +ODDFPRICE		= UNREGER.KURS			##	Gibt den Kurs pro 100 € Nennwert eines Wertpapiers mit einem unregelmäßigen ersten Zinstermin zurück
    +ODDFYIELD		= UNREGER.REND			##	Gibt die Rendite eines Wertpapiers mit einem unregelmäßigen ersten Zinstermin zurück
    +ODDLPRICE		= UNREGLE.KURS			##	Gibt den Kurs pro 100 € Nennwert eines Wertpapiers mit einem unregelmäßigen letzten Zinstermin zurück
    +ODDLYIELD		= UNREGLE.REND			##	Gibt die Rendite eines Wertpapiers mit einem unregelmäßigen letzten Zinstermin zurück
    +PMT			= RMZ				##	Gibt die periodische Zahlung für eine Annuität zurück
    +PPMT			= KAPZ				##	Gibt die Kapitalrückzahlung einer Investition für eine angegebene Periode zurück
    +PRICE			= KURS				##	Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück, das periodisch Zinsen auszahlt
    +PRICEDISC		= KURSDISAGIO			##	Gibt den Kurs pro 100 € Nennwert eines unverzinslichen Wertpapiers zurück
    +PRICEMAT		= KURSFÄLLIG			##	Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück, das Zinsen am Fälligkeitsdatum auszahlt
    +PV			= BW				##	Gibt den Barwert einer Investition zurück
    +RATE			= ZINS				##	Gibt den Zinssatz pro Zeitraum einer Annuität zurück
    +RECEIVED		= AUSZAHLUNG			##	Gibt den Auszahlungsbetrag eines voll investierten Wertpapiers am Fälligkeitstermin zurück
    +SLN			= LIA				##	Gibt die lineare Abschreibung eines Wirtschaftsguts pro Periode zurück
    +SYD			= DIA				##	Gibt die arithmetisch-degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode zurück
    +TBILLEQ			= TBILLÄQUIV			##	Gibt die Rendite für ein Wertpapier zurück
    +TBILLPRICE		= TBILLKURS			##	Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück
    +TBILLYIELD		= TBILLRENDITE			##	Gibt die Rendite für ein Wertpapier zurück
    +VDB			= VDB				##	Gibt die degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode oder Teilperiode zurück
    +XIRR			= XINTZINSFUSS			##	Gibt den internen Zinsfuß einer Reihe nicht periodisch anfallender Zahlungen zurück
    +XNPV			= XKAPITALWERT			##	Gibt den Nettobarwert (Kapitalwert) einer Reihe nicht periodisch anfallender Zahlungen zurück
    +YIELD			= RENDITE			##	Gibt die Rendite eines Wertpapiers zurück, das periodisch Zinsen auszahlt
    +YIELDDISC		= RENDITEDIS			##	Gibt die jährliche Rendite eines unverzinslichen Wertpapiers zurück
    +YIELDMAT		= RENDITEFÄLL			##	Gibt die jährliche Rendite eines Wertpapiers zurück, das Zinsen am Fälligkeitsdatum auszahlt
    +
    +
    +##
    +##	Information functions				Informationsfunktionen
    +##
    +CELL			= ZELLE				##	Gibt Informationen zu Formatierung, Position oder Inhalt einer Zelle zurück
    +ERROR.TYPE		= FEHLER.TYP			##	Gibt eine Zahl zurück, die einem Fehlertyp entspricht
    +INFO			= INFO				##	Gibt Informationen zur aktuellen Betriebssystemumgebung zurück
    +ISBLANK			= ISTLEER			##	Gibt WAHR zurück, wenn der Wert leer ist
    +ISERR			= ISTFEHL			##	Gibt WAHR zurück, wenn der Wert ein beliebiger Fehlerwert außer #N/V ist
    +ISERROR			= ISTFEHLER			##	Gibt WAHR zurück, wenn der Wert ein beliebiger Fehlerwert ist
    +ISEVEN			= ISTGERADE			##	Gibt WAHR zurück, wenn es sich um eine gerade Zahl handelt
    +ISLOGICAL		= ISTLOG			##	Gibt WAHR zurück, wenn der Wert ein Wahrheitswert ist
    +ISNA			= ISTNV				##	Gibt WAHR zurück, wenn der Wert der Fehlerwert #N/V ist
    +ISNONTEXT		= ISTKTEXT			##	Gibt WAHR zurück, wenn der Wert ein Element ist, das keinen Text enthält
    +ISNUMBER		= ISTZAHL			##	Gibt WAHR zurück, wenn der Wert eine Zahl ist
    +ISODD			= ISTUNGERADE			##	Gibt WAHR zurück, wenn es sich um eine ungerade Zahl handelt
    +ISREF			= ISTBEZUG			##	Gibt WAHR zurück, wenn der Wert ein Bezug ist
    +ISTEXT			= ISTTEXT			##	Gibt WAHR zurück, wenn der Wert ein Element ist, das Text enthält
    +N			= N				##	Gibt den in eine Zahl umgewandelten Wert zurück
    +NA			= NV				##	Gibt den Fehlerwert #NV zurück
    +TYPE			= TYP				##	Gibt eine Zahl zurück, die den Datentyp des angegebenen Werts anzeigt
    +
    +
    +##
    +##	Logical functions				Logische Funktionen
    +##
    +AND			= UND				##	Gibt WAHR zurück, wenn alle zugehörigen Argumente WAHR sind
    +FALSE			= FALSCH			##	Gibt den Wahrheitswert FALSCH zurück
    +IF			= WENN				##	Gibt einen logischen Test zum Ausführen an
    +IFERROR			= WENNFEHLER			##	Gibt einen von Ihnen festgelegten Wert zurück, wenn die Auswertung der Formel zu einem Fehler führt; andernfalls wird das Ergebnis der Formel zurückgegeben
    +NOT			= NICHT				##	Kehrt den Wahrheitswert der zugehörigen Argumente um
    +OR			= ODER				##	Gibt WAHR zurück, wenn ein Argument WAHR ist
    +TRUE			= WAHR				##	Gibt den Wahrheitswert WAHR zurück
    +
    +
    +##
    +##	Lookup and reference functions			Nachschlage- und Verweisfunktionen
    +##
    +ADDRESS			= ADRESSE			##	Gibt einen Bezug auf eine einzelne Zelle in einem Tabellenblatt als Text zurück
    +AREAS			= BEREICHE			##	Gibt die Anzahl der innerhalb eines Bezugs aufgeführten Bereiche zurück
    +CHOOSE			= WAHL				##	Wählt einen Wert aus eine Liste mit Werten aus
    +COLUMN			= SPALTE			##	Gibt die Spaltennummer eines Bezugs zurück
    +COLUMNS			= SPALTEN			##	Gibt die Anzahl der Spalten in einem Bezug zurück
    +HLOOKUP			= HVERWEIS			##	Sucht in der obersten Zeile einer Matrix und gibt den Wert der angegebenen Zelle zurück
    +HYPERLINK		= HYPERLINK			##	Erstellt eine Verknüpfung, über die ein auf einem Netzwerkserver, in einem Intranet oder im Internet gespeichertes Dokument geöffnet wird
    +INDEX			= INDEX				##	Verwendet einen Index, um einen Wert aus einem Bezug oder einer Matrix auszuwählen
    +INDIRECT		= INDIREKT			##	Gibt einen Bezug zurück, der von einem Textwert angegeben wird
    +LOOKUP			= LOOKUP			##	Sucht Werte in einem Vektor oder einer Matrix
    +MATCH			= VERGLEICH			##	Sucht Werte in einem Bezug oder einer Matrix
    +OFFSET			= BEREICH.VERSCHIEBEN		##	Gibt einen Bezugoffset aus einem gegebenen Bezug zurück
    +ROW			= ZEILE				##	Gibt die Zeilennummer eines Bezugs zurück
    +ROWS			= ZEILEN			##	Gibt die Anzahl der Zeilen in einem Bezug zurück
    +RTD			= RTD				##	Ruft Echtzeitdaten von einem Programm ab, das die COM-Automatisierung (Automatisierung: Ein Verfahren, bei dem aus einer Anwendung oder einem Entwicklungstool heraus mit den Objekten einer anderen Anwendung gearbeitet wird. Die früher als OLE-Automatisierung bezeichnete Automatisierung ist ein Industriestandard und eine Funktion von COM (Component Object Model).) unterstützt
    +TRANSPOSE		= MTRANS			##	Gibt die transponierte Matrix einer Matrix zurück
    +VLOOKUP			= SVERWEIS			##	Sucht in der ersten Spalte einer Matrix und arbeitet sich durch die Zeile, um den Wert einer Zelle zurückzugeben
    +
    +
    +##
    +##	Math and trigonometry functions			Mathematische und trigonometrische Funktionen
    +##
    +ABS			= ABS				##	Gibt den Absolutwert einer Zahl zurück
    +ACOS			= ARCCOS			##	Gibt den Arkuskosinus einer Zahl zurück
    +ACOSH			= ARCCOSHYP			##	Gibt den umgekehrten hyperbolischen Kosinus einer Zahl zurück
    +ASIN			= ARCSIN			##	Gibt den Arkussinus einer Zahl zurück
    +ASINH			= ARCSINHYP			##	Gibt den umgekehrten hyperbolischen Sinus einer Zahl zurück
    +ATAN			= ARCTAN			##	Gibt den Arkustangens einer Zahl zurück
    +ATAN2			= ARCTAN2			##	Gibt den Arkustangens einer x- und einer y-Koordinate zurück
    +ATANH			= ARCTANHYP			##	Gibt den umgekehrten hyperbolischen Tangens einer Zahl zurück
    +CEILING			= OBERGRENZE			##	Rundet eine Zahl auf die nächste ganze Zahl oder das nächste Vielfache von Schritt
    +COMBIN			= KOMBINATIONEN			##	Gibt die Anzahl der Kombinationen für eine bestimmte Anzahl von Objekten zurück
    +COS			= COS				##	Gibt den Kosinus einer Zahl zurück
    +COSH			= COSHYP			##	Gibt den hyperbolischen Kosinus einer Zahl zurück
    +DEGREES			= GRAD				##	Wandelt Bogenmaß (Radiant) in Grad um
    +EVEN			= GERADE			##	Rundet eine Zahl auf die nächste gerade ganze Zahl auf
    +EXP			= EXP				##	Potenziert die Basis e mit der als Argument angegebenen Zahl
    +FACT			= FAKULTÄT			##	Gibt die Fakultät einer Zahl zurück
    +FACTDOUBLE		= ZWEIFAKULTÄT			##	Gibt die Fakultät zu Zahl mit Schrittlänge 2 zurück
    +FLOOR			= UNTERGRENZE			##	Rundet die Zahl auf Anzahl_Stellen ab
    +GCD			= GGT				##	Gibt den größten gemeinsamen Teiler zurück
    +INT			= GANZZAHL			##	Rundet eine Zahl auf die nächstkleinere ganze Zahl ab
    +LCM			= KGV				##	Gibt das kleinste gemeinsame Vielfache zurück
    +LN			= LN				##	Gibt den natürlichen Logarithmus einer Zahl zurück
    +LOG			= LOG				##	Gibt den Logarithmus einer Zahl zu der angegebenen Basis zurück
    +LOG10			= LOG10				##	Gibt den Logarithmus einer Zahl zur Basis 10 zurück
    +MDETERM			= MDET				##	Gibt die Determinante einer Matrix zurück
    +MINVERSE		= MINV				##	Gibt die inverse Matrix einer Matrix zurück
    +MMULT			= MMULT				##	Gibt das Produkt zweier Matrizen zurück
    +MOD			= REST				##	Gibt den Rest einer Division zurück
    +MROUND			= VRUNDEN			##	Gibt eine auf das gewünschte Vielfache gerundete Zahl zurück
    +MULTINOMIAL		= POLYNOMIAL			##	Gibt den Polynomialkoeffizienten einer Gruppe von Zahlen zurück
    +ODD			= UNGERADE			##	Rundet eine Zahl auf die nächste ungerade ganze Zahl auf
    +PI			= PI				##	Gibt den Wert Pi zurück
    +POWER			= POTENZ			##	Gibt als Ergebnis eine potenzierte Zahl zurück
    +PRODUCT			= PRODUKT			##	Multipliziert die zugehörigen Argumente
    +QUOTIENT		= QUOTIENT			##	Gibt den ganzzahligen Anteil einer Division zurück
    +RADIANS			= BOGENMASS			##	Wandelt Grad in Bogenmaß (Radiant) um
    +RAND			= ZUFALLSZAHL			##	Gibt eine Zufallszahl zwischen 0 und 1 zurück
    +RANDBETWEEN		= ZUFALLSBEREICH		##	Gibt eine Zufallszahl aus dem festgelegten Bereich zurück
    +ROMAN			= RÖMISCH			##	Wandelt eine arabische Zahl in eine römische Zahl als Text um
    +ROUND			= RUNDEN			##	Rundet eine Zahl auf eine bestimmte Anzahl von Dezimalstellen
    +ROUNDDOWN		= ABRUNDEN			##	Rundet die Zahl auf Anzahl_Stellen ab
    +ROUNDUP			= AUFRUNDEN			##	Rundet die Zahl auf Anzahl_Stellen auf
    +SERIESSUM		= POTENZREIHE			##	Gibt die Summe von Potenzen (zur Berechnung von Potenzreihen und dichotomen Wahrscheinlichkeiten) zurück
    +SIGN			= VORZEICHEN			##	Gibt das Vorzeichen einer Zahl zurück
    +SIN			= SIN				##	Gibt den Sinus einer Zahl zurück
    +SINH			= SINHYP			##	Gibt den hyperbolischen Sinus einer Zahl zurück
    +SQRT			= WURZEL			##	Gibt die Quadratwurzel einer Zahl zurück
    +SQRTPI			= WURZELPI			##	Gibt die Wurzel aus der mit Pi (pi) multiplizierten Zahl zurück
    +SUBTOTAL		= TEILERGEBNIS			##	Gibt ein Teilergebnis in einer Liste oder Datenbank zurück
    +SUM			= SUMME				##	Addiert die zugehörigen Argumente
    +SUMIF			= SUMMEWENN			##	Addiert Zahlen, die mit den Suchkriterien übereinstimmen
    +SUMIFS			= SUMMEWENNS			##	Die Zellen, die mehrere Kriterien erfüllen, werden in einem Bereich hinzugefügt
    +SUMPRODUCT		= SUMMENPRODUKT			##	Gibt die Summe der Produkte zusammengehöriger Matrixkomponenten zurück
    +SUMSQ			= QUADRATESUMME			##	Gibt die Summe der quadrierten Argumente zurück
    +SUMX2MY2		= SUMMEX2MY2			##	Gibt die Summe der Differenzen der Quadrate für zusammengehörige Komponenten zweier Matrizen zurück
    +SUMX2PY2		= SUMMEX2PY2			##	Gibt die Summe der Quadrate für zusammengehörige Komponenten zweier Matrizen zurück
    +SUMXMY2			= SUMMEXMY2			##	Gibt die Summe der quadrierten Differenzen für zusammengehörige Komponenten zweier Matrizen zurück
    +TAN			= TAN				##	Gibt den Tangens einer Zahl zurück
    +TANH			= TANHYP			##	Gibt den hyperbolischen Tangens einer Zahl zurück
    +TRUNC			= KÜRZEN			##	Schneidet die Kommastellen einer Zahl ab und gibt als Ergebnis eine ganze Zahl zurück
    +
    +
    +##
    +##	Statistical functions				Statistische Funktionen
    +##
    +AVEDEV			= MITTELABW			##	Gibt die durchschnittliche absolute Abweichung einer Reihe von Merkmalsausprägungen und ihrem Mittelwert zurück
    +AVERAGE			= MITTELWERT			##	Gibt den Mittelwert der zugehörigen Argumente zurück
    +AVERAGEA		= MITTELWERTA			##	Gibt den Mittelwert der zugehörigen Argumente, die Zahlen, Text und Wahrheitswerte enthalten, zurück
    +AVERAGEIF		= MITTELWERTWENN		##	Der Durchschnittswert (arithmetisches Mittel) für alle Zellen in einem Bereich, die einem angegebenen Kriterium entsprechen, wird zurückgegeben
    +AVERAGEIFS		= MITTELWERTWENNS		##	Gibt den Durchschnittswert (arithmetisches Mittel) aller Zellen zurück, die mehreren Kriterien entsprechen
    +BETADIST		= BETAVERT			##	Gibt die Werte der kumulierten Betaverteilungsfunktion zurück
    +BETAINV			= BETAINV			##	Gibt das Quantil der angegebenen Betaverteilung zurück
    +BINOMDIST		= BINOMVERT			##	Gibt Wahrscheinlichkeiten einer binomialverteilten Zufallsvariablen zurück
    +CHIDIST			= CHIVERT			##	Gibt Werte der Verteilungsfunktion (1-Alpha) einer Chi-Quadrat-verteilten Zufallsgröße zurück
    +CHIINV			= CHIINV			##	Gibt Quantile der Verteilungsfunktion (1-Alpha) der Chi-Quadrat-Verteilung zurück
    +CHITEST			= CHITEST			##	Gibt die Teststatistik eines Unabhängigkeitstests zurück
    +CONFIDENCE		= KONFIDENZ			##	Ermöglicht die Berechnung des 1-Alpha Konfidenzintervalls für den Erwartungswert einer Zufallsvariablen
    +CORREL			= KORREL			##	Gibt den Korrelationskoeffizienten zweier Reihen von Merkmalsausprägungen zurück
    +COUNT			= ANZAHL			##	Gibt die Anzahl der Zahlen in der Liste mit Argumenten an
    +COUNTA			= ANZAHL2			##	Gibt die Anzahl der Werte in der Liste mit Argumenten an
    +COUNTBLANK		= ANZAHLLEEREZELLEN		##	Gibt die Anzahl der leeren Zellen in einem Bereich an
    +COUNTIF			= ZÄHLENWENN			##	Gibt die Anzahl der Zellen in einem Bereich an, deren Inhalte mit den Suchkriterien übereinstimmen
    +COUNTIFS		= ZÄHLENWENNS			##	Gibt die Anzahl der Zellen in einem Bereich an, deren Inhalte mit mehreren Suchkriterien übereinstimmen
    +COVAR			= KOVAR				##	Gibt die Kovarianz zurück, den Mittelwert der für alle Datenpunktpaare gebildeten Produkte der Abweichungen
    +CRITBINOM		= KRITBINOM			##	Gibt den kleinsten Wert zurück, für den die kumulierten Wahrscheinlichkeiten der Binomialverteilung kleiner oder gleich einer Grenzwahrscheinlichkeit sind
    +DEVSQ			= SUMQUADABW			##	Gibt die Summe der quadrierten Abweichungen der Datenpunkte von ihrem Stichprobenmittelwert zurück
    +EXPONDIST		= EXPONVERT			##	Gibt Wahrscheinlichkeiten einer exponential verteilten Zufallsvariablen zurück
    +FDIST			= FVERT				##	Gibt Werte der Verteilungsfunktion (1-Alpha) einer F-verteilten Zufallsvariablen zurück
    +FINV			= FINV				##	Gibt Quantile der F-Verteilung zurück
    +FISHER			= FISHER			##	Gibt die Fisher-Transformation zurück
    +FISHERINV		= FISHERINV			##	Gibt die Umkehrung der Fisher-Transformation zurück
    +FORECAST		= PROGNOSE			##	Gibt einen Wert zurück, der sich aus einem linearen Trend ergibt
    +FREQUENCY		= HÄUFIGKEIT			##	Gibt eine Häufigkeitsverteilung als vertikale Matrix zurück
    +FTEST			= FTEST				##	Gibt die Teststatistik eines F-Tests zurück
    +GAMMADIST		= GAMMAVERT			##	Gibt Wahrscheinlichkeiten einer gammaverteilten Zufallsvariablen zurück
    +GAMMAINV		= GAMMAINV			##	Gibt Quantile der Gammaverteilung zurück
    +GAMMALN			= GAMMALN			##	Gibt den natürlichen Logarithmus der Gammafunktion zurück, Γ(x)
    +GEOMEAN			= GEOMITTEL			##	Gibt das geometrische Mittel zurück
    +GROWTH			= VARIATION			##	Gibt Werte zurück, die sich aus einem exponentiellen Trend ergeben
    +HARMEAN			= HARMITTEL			##	Gibt das harmonische Mittel zurück
    +HYPGEOMDIST		= HYPGEOMVERT			##	Gibt Wahrscheinlichkeiten einer hypergeometrisch-verteilten Zufallsvariablen zurück
    +INTERCEPT		= ACHSENABSCHNITT		##	Gibt den Schnittpunkt der Regressionsgeraden zurück
    +KURT			= KURT				##	Gibt die Kurtosis (Exzess) einer Datengruppe zurück
    +LARGE			= KGRÖSSTE			##	Gibt den k-größten Wert einer Datengruppe zurück
    +LINEST			= RGP				##	Gibt die Parameter eines linearen Trends zurück
    +LOGEST			= RKP				##	Gibt die Parameter eines exponentiellen Trends zurück
    +LOGINV			= LOGINV			##	Gibt Quantile der Lognormalverteilung zurück
    +LOGNORMDIST		= LOGNORMVERT			##	Gibt Werte der Verteilungsfunktion einer lognormalverteilten Zufallsvariablen zurück
    +MAX			= MAX				##	Gibt den Maximalwert einer Liste mit Argumenten zurück
    +MAXA			= MAXA				##	Gibt den Maximalwert einer Liste mit Argumenten zurück, die Zahlen, Text und Wahrheitswerte enthalten
    +MEDIAN			= MEDIAN			##	Gibt den Median der angegebenen Zahlen zurück
    +MIN			= MIN				##	Gibt den Minimalwert einer Liste mit Argumenten zurück
    +MINA			= MINA				##	Gibt den kleinsten Wert einer Liste mit Argumenten zurück, die Zahlen, Text und Wahrheitswerte enthalten
    +MODE			= MODALWERT			##	Gibt den am häufigsten vorkommenden Wert in einer Datengruppe zurück
    +NEGBINOMDIST		= NEGBINOMVERT			##	Gibt Wahrscheinlichkeiten einer negativen, binominal verteilten Zufallsvariablen zurück
    +NORMDIST		= NORMVERT			##	Gibt Wahrscheinlichkeiten einer normal verteilten Zufallsvariablen zurück
    +NORMINV			= NORMINV			##	Gibt Quantile der Normalverteilung zurück
    +NORMSDIST		= STANDNORMVERT			##	Gibt Werte der Verteilungsfunktion einer standardnormalverteilten Zufallsvariablen zurück
    +NORMSINV		= STANDNORMINV			##	Gibt Quantile der Standardnormalverteilung zurück
    +PEARSON			= PEARSON			##	Gibt den Pearsonschen Korrelationskoeffizienten zurück
    +PERCENTILE		= QUANTIL			##	Gibt das Alpha-Quantil einer Gruppe von Daten zurück
    +PERCENTRANK		= QUANTILSRANG			##	Gibt den prozentualen Rang (Alpha) eines Werts in einer Datengruppe zurück
    +PERMUT			= VARIATIONEN			##	Gibt die Anzahl der Möglichkeiten zurück, um k Elemente aus einer Menge von n Elementen ohne Zurücklegen zu ziehen
    +POISSON			= POISSON			##	Gibt Wahrscheinlichkeiten einer poissonverteilten Zufallsvariablen zurück
    +PROB			= WAHRSCHBEREICH		##	Gibt die Wahrscheinlichkeit für ein von zwei Werten eingeschlossenes Intervall zurück
    +QUARTILE		= QUARTILE			##	Gibt die Quartile der Datengruppe zurück
    +RANK			= RANG				##	Gibt den Rang zurück, den eine Zahl innerhalb einer Liste von Zahlen einnimmt
    +RSQ			= BESTIMMTHEITSMASS		##	Gibt das Quadrat des Pearsonschen Korrelationskoeffizienten zurück
    +SKEW			= SCHIEFE			##	Gibt die Schiefe einer Verteilung zurück
    +SLOPE			= STEIGUNG			##	Gibt die Steigung der Regressionsgeraden zurück
    +SMALL			= KKLEINSTE			##	Gibt den k-kleinsten Wert einer Datengruppe zurück
    +STANDARDIZE		= STANDARDISIERUNG		##	Gibt den standardisierten Wert zurück
    +STDEV			= STABW				##	Schätzt die Standardabweichung ausgehend von einer Stichprobe
    +STDEVA			= STABWA			##	Schätzt die Standardabweichung ausgehend von einer Stichprobe, die Zahlen, Text und Wahrheitswerte enthält
    +STDEVP			= STABWN			##	Berechnet die Standardabweichung ausgehend von der Grundgesamtheit
    +STDEVPA			= STABWNA			##	Berechnet die Standardabweichung ausgehend von der Grundgesamtheit, die Zahlen, Text und Wahrheitswerte enthält
    +STEYX			= STFEHLERYX			##	Gibt den Standardfehler der geschätzten y-Werte für alle x-Werte der Regression zurück
    +TDIST			= TVERT				##	Gibt Werte der Verteilungsfunktion (1-Alpha) einer (Student) t-verteilten Zufallsvariablen zurück
    +TINV			= TINV				##	Gibt Quantile der t-Verteilung zurück
    +TREND			= TREND				##	Gibt Werte zurück, die sich aus einem linearen Trend ergeben
    +TRIMMEAN		= GESTUTZTMITTEL		##	Gibt den Mittelwert einer Datengruppe zurück, ohne die Randwerte zu berücksichtigen
    +TTEST			= TTEST				##	Gibt die Teststatistik eines Student'schen t-Tests zurück
    +VAR			= VARIANZ			##	Schätzt die Varianz ausgehend von einer Stichprobe
    +VARA			= VARIANZA			##	Schätzt die Varianz ausgehend von einer Stichprobe, die Zahlen, Text und Wahrheitswerte enthält
    +VARP			= VARIANZEN			##	Berechnet die Varianz ausgehend von der Grundgesamtheit
    +VARPA			= VARIANZENA			##	Berechnet die Varianz ausgehend von der Grundgesamtheit, die Zahlen, Text und Wahrheitswerte enthält
    +WEIBULL			= WEIBULL			##	Gibt Wahrscheinlichkeiten einer weibullverteilten Zufallsvariablen zurück
    +ZTEST			= GTEST				##	Gibt den einseitigen Wahrscheinlichkeitswert für einen Gausstest (Normalverteilung) zurück
    +
    +
    +##
    +##	Text functions					Textfunktionen
    +##
    +ASC			= ASC				##	Konvertiert DB-Text in einer Zeichenfolge (lateinische Buchstaben oder Katakana) in SB-Text
    +BAHTTEXT		= BAHTTEXT			##	Wandelt eine Zahl in Text im Währungsformat ß (Baht) um
    +CHAR			= ZEICHEN			##	Gibt das der Codezahl entsprechende Zeichen zurück
    +CLEAN			= SÄUBERN			##	Löscht alle nicht druckbaren Zeichen aus einem Text
    +CODE			= CODE				##	Gibt die Codezahl des ersten Zeichens in einem Text zurück
    +CONCATENATE		= VERKETTEN			##	Verknüpft mehrere Textelemente zu einem Textelement
    +DOLLAR			= DM				##	Wandelt eine Zahl in Text im Währungsformat € (Euro) um
    +EXACT			= IDENTISCH			##	Prüft, ob zwei Textwerte identisch sind
    +FIND			= FINDEN			##	Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird unterschieden)
    +FINDB			= FINDENB			##	Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird unterschieden)
    +FIXED			= FEST				##	Formatiert eine Zahl als Text mit einer festen Anzahl von Dezimalstellen
    +JIS			= JIS				##	Konvertiert SB-Text in einer Zeichenfolge (lateinische Buchstaben oder Katakana) in DB-Text
    +LEFT			= LINKS				##	Gibt die Zeichen ganz links in einem Textwert zurück
    +LEFTB			= LINKSB			##	Gibt die Zeichen ganz links in einem Textwert zurück
    +LEN			= LÄNGE				##	Gibt die Anzahl der Zeichen in einer Zeichenfolge zurück
    +LENB			= LÄNGEB			##	Gibt die Anzahl der Zeichen in einer Zeichenfolge zurück
    +LOWER			= KLEIN				##	Wandelt Text in Kleinbuchstaben um
    +MID			= TEIL				##	Gibt eine bestimmte Anzahl Zeichen aus einer Zeichenfolge ab der von Ihnen angegebenen Stelle zurück
    +MIDB			= TEILB				##	Gibt eine bestimmte Anzahl Zeichen aus einer Zeichenfolge ab der von Ihnen angegebenen Stelle zurück
    +PHONETIC		= PHONETIC			##	Extrahiert die phonetischen (Furigana-)Zeichen aus einer Textzeichenfolge
    +PROPER			= GROSS2			##	Wandelt den ersten Buchstaben aller Wörter eines Textwerts in Großbuchstaben um
    +REPLACE			= ERSETZEN			##	Ersetzt Zeichen in Text
    +REPLACEB		= ERSETZENB			##	Ersetzt Zeichen in Text
    +REPT			= WIEDERHOLEN			##	Wiederholt einen Text so oft wie angegeben
    +RIGHT			= RECHTS			##	Gibt die Zeichen ganz rechts in einem Textwert zurück
    +RIGHTB			= RECHTSB			##	Gibt die Zeichen ganz rechts in einem Textwert zurück
    +SEARCH			= SUCHEN			##	Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird nicht unterschieden)
    +SEARCHB			= SUCHENB			##	Sucht nach einem Textwert, der in einem anderen Textwert enthalten ist (Groß-/Kleinschreibung wird nicht unterschieden)
    +SUBSTITUTE		= WECHSELN			##	Ersetzt in einer Zeichenfolge neuen Text gegen alten
    +T			= T				##	Wandelt die zugehörigen Argumente in Text um
    +TEXT			= TEXT				##	Formatiert eine Zahl und wandelt sie in Text um
    +TRIM			= GLÄTTEN			##	Entfernt Leerzeichen aus Text
    +UPPER			= GROSS				##	Wandelt Text in Großbuchstaben um
    +VALUE			= WERT				##	Wandelt ein Textargument in eine Zahl um
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/en/uk/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/en/uk/config
    new file mode 100644
    index 00000000000..859e4beed9b
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/en/uk/config
    @@ -0,0 +1,8 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= £
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/es/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/es/config
    new file mode 100644
    index 00000000000..5b9b9488d37
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/es/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= $	##	I'm surprised that the Excel Documentation suggests $ rather than €
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #¡NULO!
    +DIV0	= #¡DIV/0!
    +VALUE	= #¡VALOR!
    +REF	= #¡REF!
    +NAME	= #¿NOMBRE?
    +NUM	= #¡NÚM!
    +NA	= #N/A
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/es/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/es/functions
    new file mode 100644
    index 00000000000..ac1ac86a55f
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/es/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions				Funciones de complementos y automatización
    +##
    +GETPIVOTDATA		= IMPORTARDATOSDINAMICOS		##	Devuelve los datos almacenados en un informe de tabla dinámica.
    +
    +
    +##
    +##	Cube functions						Funciones de cubo
    +##
    +CUBEKPIMEMBER		= MIEMBROKPICUBO			##	Devuelve un nombre, propiedad y medida de indicador de rendimiento clave (KPI) y muestra el nombre y la propiedad en la celda. Un KPI es una medida cuantificable, como los beneficios brutos mensuales o la facturación trimestral por empleado, que se usa para supervisar el rendimiento de una organización.
    +CUBEMEMBER		= MIEMBROCUBO				##	Devuelve un miembro o tupla en una jerarquía de cubo. Se usa para validar la existencia del miembro o la tupla en el cubo.
    +CUBEMEMBERPROPERTY	= PROPIEDADMIEMBROCUBO			##	Devuelve el valor de una propiedad de miembro del cubo Se usa para validar la existencia de un nombre de miembro en el cubo y para devolver la propiedad especificada para este miembro.
    +CUBERANKEDMEMBER	= MIEMBRORANGOCUBO			##	Devuelve el miembro n, o clasificado, de un conjunto. Se usa para devolver uno o más elementos de un conjunto, por ejemplo, el representante con mejores ventas o los diez mejores alumnos.
    +CUBESET			= CONJUNTOCUBO				##	Define un conjunto calculado de miembros o tuplas mediante el envío de una expresión de conjunto al cubo en el servidor, lo que crea el conjunto y, después, devuelve dicho conjunto a Microsoft Office Excel.
    +CUBESETCOUNT		= RECUENTOCONJUNTOCUBO			##	Devuelve el número de elementos de un conjunto.
    +CUBEVALUE		= VALORCUBO				##	Devuelve un valor agregado de un cubo.
    +
    +
    +##
    +##	Database functions					Funciones de base de datos
    +##
    +DAVERAGE		= BDPROMEDIO				##	Devuelve el promedio de las entradas seleccionadas en la base de datos.
    +DCOUNT			= BDCONTAR				##	Cuenta el número de celdas que contienen números en una base de datos.
    +DCOUNTA			= BDCONTARA				##	Cuenta el número de celdas no vacías en una base de datos.
    +DGET			= BDEXTRAER				##	Extrae de una base de datos un único registro que cumple los criterios especificados.
    +DMAX			= BDMAX					##	Devuelve el valor máximo de las entradas seleccionadas de la base de datos.
    +DMIN			= BDMIN					##	Devuelve el valor mínimo de las entradas seleccionadas de la base de datos.
    +DPRODUCT		= BDPRODUCTO				##	Multiplica los valores de un campo concreto de registros de una base de datos que cumplen los criterios especificados.
    +DSTDEV			= BDDESVEST				##	Calcula la desviación estándar a partir de una muestra de entradas seleccionadas en la base de datos.
    +DSTDEVP			= BDDESVESTP				##	Calcula la desviación estándar en función de la población total de las entradas seleccionadas de la base de datos.
    +DSUM			= BDSUMA				##	Suma los números de la columna de campo de los registros de la base de datos que cumplen los criterios.
    +DVAR			= BDVAR					##	Calcula la varianza a partir de una muestra de entradas seleccionadas de la base de datos.
    +DVARP			= BDVARP				##	Calcula la varianza a partir de la población total de entradas seleccionadas de la base de datos.
    +
    +
    +##
    +##	Date and time functions					Funciones de fecha y hora
    +##
    +DATE			= FECHA					##	Devuelve el número de serie correspondiente a una fecha determinada.
    +DATEVALUE		= FECHANUMERO				##	Convierte una fecha con formato de texto en un valor de número de serie.
    +DAY			= DIA					##	Convierte un número de serie en un valor de día del mes.
    +DAYS360			= DIAS360				##	Calcula el número de días entre dos fechas a partir de un año de 360 días.
    +EDATE			= FECHA.MES				##	Devuelve el número de serie de la fecha equivalente al número indicado de meses anteriores o posteriores a la fecha inicial.
    +EOMONTH			= FIN.MES				##	Devuelve el número de serie correspondiente al último día del mes anterior o posterior a un número de meses especificado.
    +HOUR			= HORA					##	Convierte un número de serie en un valor de hora.
    +MINUTE			= MINUTO				##	Convierte un número de serie en un valor de minuto.
    +MONTH			= MES					##	Convierte un número de serie en un valor de mes.
    +NETWORKDAYS		= DIAS.LAB				##	Devuelve el número de todos los días laborables existentes entre dos fechas.
    +NOW			= AHORA					##	Devuelve el número de serie correspondiente a la fecha y hora actuales.
    +SECOND			= SEGUNDO				##	Convierte un número de serie en un valor de segundo.
    +TIME			= HORA					##	Devuelve el número de serie correspondiente a una hora determinada.
    +TIMEVALUE		= HORANUMERO				##	Convierte una hora con formato de texto en un valor de número de serie.
    +TODAY			= HOY					##	Devuelve el número de serie correspondiente al día actual.
    +WEEKDAY			= DIASEM				##	Convierte un número de serie en un valor de día de la semana.
    +WEEKNUM			= NUM.DE.SEMANA				##	Convierte un número de serie en un número que representa el lugar numérico correspondiente a una semana de un año.
    +WORKDAY			= DIA.LAB				##	Devuelve el número de serie de la fecha que tiene lugar antes o después de un número determinado de días laborables.
    +YEAR			= AÑO					##	Convierte un número de serie en un valor de año.
    +YEARFRAC		= FRAC.AÑO				##	Devuelve la fracción de año que representa el número total de días existentes entre el valor de fecha_inicial y el de fecha_final.
    +
    +
    +##
    +##	Engineering functions					Funciones de ingeniería
    +##
    +BESSELI			= BESSELI				##	Devuelve la función Bessel In(x) modificada.
    +BESSELJ			= BESSELJ				##	Devuelve la función Bessel Jn(x).
    +BESSELK			= BESSELK				##	Devuelve la función Bessel Kn(x) modificada.
    +BESSELY			= BESSELY				##	Devuelve la función Bessel Yn(x).
    +BIN2DEC			= BIN.A.DEC				##	Convierte un número binario en decimal.
    +BIN2HEX			= BIN.A.HEX				##	Convierte un número binario en hexadecimal.
    +BIN2OCT			= BIN.A.OCT				##	Convierte un número binario en octal.
    +COMPLEX			= COMPLEJO				##	Convierte coeficientes reales e imaginarios en un número complejo.
    +CONVERT			= CONVERTIR				##	Convierte un número de un sistema de medida a otro.
    +DEC2BIN			= DEC.A.BIN				##	Convierte un número decimal en binario.
    +DEC2HEX			= DEC.A.HEX				##	Convierte un número decimal en hexadecimal.
    +DEC2OCT			= DEC.A.OCT				##	Convierte un número decimal en octal.
    +DELTA			= DELTA					##	Comprueba si dos valores son iguales.
    +ERF			= FUN.ERROR				##	Devuelve la función de error.
    +ERFC			= FUN.ERROR.COMPL			##	Devuelve la función de error complementario.
    +GESTEP			= MAYOR.O.IGUAL				##	Comprueba si un número es mayor que un valor de umbral.
    +HEX2BIN			= HEX.A.BIN				##	Convierte un número hexadecimal en binario.
    +HEX2DEC			= HEX.A.DEC				##	Convierte un número hexadecimal en decimal.
    +HEX2OCT			= HEX.A.OCT				##	Convierte un número hexadecimal en octal.
    +IMABS			= IM.ABS				##	Devuelve el valor absoluto (módulo) de un número complejo.
    +IMAGINARY		= IMAGINARIO				##	Devuelve el coeficiente imaginario de un número complejo.
    +IMARGUMENT		= IM.ANGULO				##	Devuelve el argumento theta, un ángulo expresado en radianes.
    +IMCONJUGATE		= IM.CONJUGADA				##	Devuelve la conjugada compleja de un número complejo.
    +IMCOS			= IM.COS				##	Devuelve el coseno de un número complejo.
    +IMDIV			= IM.DIV				##	Devuelve el cociente de dos números complejos.
    +IMEXP			= IM.EXP				##	Devuelve el valor exponencial de un número complejo.
    +IMLN			= IM.LN					##	Devuelve el logaritmo natural (neperiano) de un número complejo.
    +IMLOG10			= IM.LOG10				##	Devuelve el logaritmo en base 10 de un número complejo.
    +IMLOG2			= IM.LOG2				##	Devuelve el logaritmo en base 2 de un número complejo.
    +IMPOWER			= IM.POT				##	Devuelve un número complejo elevado a una potencia entera.
    +IMPRODUCT		= IM.PRODUCT				##	Devuelve el producto de números complejos.
    +IMREAL			= IM.REAL				##	Devuelve el coeficiente real de un número complejo.
    +IMSIN			= IM.SENO				##	Devuelve el seno de un número complejo.
    +IMSQRT			= IM.RAIZ2				##	Devuelve la raíz cuadrada de un número complejo.
    +IMSUB			= IM.SUSTR				##	Devuelve la diferencia entre dos números complejos.
    +IMSUM			= IM.SUM				##	Devuelve la suma de números complejos.
    +OCT2BIN			= OCT.A.BIN				##	Convierte un número octal en binario.
    +OCT2DEC			= OCT.A.DEC				##	Convierte un número octal en decimal.
    +OCT2HEX			= OCT.A.HEX				##	Convierte un número octal en hexadecimal.
    +
    +
    +##
    +##	Financial functions					Funciones financieras
    +##
    +ACCRINT			= INT.ACUM				##	Devuelve el interés acumulado de un valor bursátil con pagos de interés periódicos.
    +ACCRINTM		= INT.ACUM.V				##	Devuelve el interés acumulado de un valor bursátil con pagos de interés al vencimiento.
    +AMORDEGRC		= AMORTIZ.PROGRE			##	Devuelve la amortización de cada período contable mediante el uso de un coeficiente de amortización.
    +AMORLINC		= AMORTIZ.LIN				##	Devuelve la amortización de cada uno de los períodos contables.
    +COUPDAYBS		= CUPON.DIAS.L1				##	Devuelve el número de días desde el principio del período de un cupón hasta la fecha de liquidación.
    +COUPDAYS		= CUPON.DIAS				##	Devuelve el número de días del período (entre dos cupones) donde se encuentra la fecha de liquidación.
    +COUPDAYSNC		= CUPON.DIAS.L2				##	Devuelve el número de días desde la fecha de liquidación hasta la fecha del próximo cupón.
    +COUPNCD			= CUPON.FECHA.L2			##	Devuelve la fecha del próximo cupón después de la fecha de liquidación.
    +COUPNUM			= CUPON.NUM				##	Devuelve el número de pagos de cupón entre la fecha de liquidación y la fecha de vencimiento.
    +COUPPCD			= CUPON.FECHA.L1			##	Devuelve la fecha de cupón anterior a la fecha de liquidación.
    +CUMIPMT			= PAGO.INT.ENTRE			##	Devuelve el interés acumulado pagado entre dos períodos.
    +CUMPRINC		= PAGO.PRINC.ENTRE			##	Devuelve el capital acumulado pagado de un préstamo entre dos períodos.
    +DB			= DB					##	Devuelve la amortización de un bien durante un período específico a través del método de amortización de saldo fijo.
    +DDB			= DDB					##	Devuelve la amortización de un bien durante un período específico a través del método de amortización por doble disminución de saldo u otro método que se especifique.
    +DISC			= TASA.DESC				##	Devuelve la tasa de descuento de un valor bursátil.
    +DOLLARDE		= MONEDA.DEC				##	Convierte una cotización de un valor bursátil expresada en forma fraccionaria en una cotización de un valor bursátil expresada en forma decimal.
    +DOLLARFR		= MONEDA.FRAC				##	Convierte una cotización de un valor bursátil expresada en forma decimal en una cotización de un valor bursátil expresada en forma fraccionaria.
    +DURATION		= DURACION				##	Devuelve la duración anual de un valor bursátil con pagos de interés periódico.
    +EFFECT			= INT.EFECTIVO				##	Devuelve la tasa de interés anual efectiva.
    +FV			= VF					##	Devuelve el valor futuro de una inversión.
    +FVSCHEDULE		= VF.PLAN				##	Devuelve el valor futuro de un capital inicial después de aplicar una serie de tasas de interés compuesto.
    +INTRATE			= TASA.INT				##	Devuelve la tasa de interés para la inversión total de un valor bursátil.
    +IPMT			= PAGOINT				##	Devuelve el pago de intereses de una inversión durante un período determinado.
    +IRR			= TIR					##	Devuelve la tasa interna de retorno para una serie de flujos de efectivo periódicos.
    +ISPMT			= INT.PAGO.DIR				##	Calcula el interés pagado durante un período específico de una inversión.
    +MDURATION		= DURACION.MODIF			##	Devuelve la duración de Macauley modificada de un valor bursátil con un valor nominal supuesto de 100 $.
    +MIRR			= TIRM					##	Devuelve la tasa interna de retorno donde se financian flujos de efectivo positivos y negativos a tasas diferentes.
    +NOMINAL			= TASA.NOMINAL				##	Devuelve la tasa nominal de interés anual.
    +NPER			= NPER					##	Devuelve el número de períodos de una inversión.
    +NPV			= VNA					##	Devuelve el valor neto actual de una inversión en función de una serie de flujos periódicos de efectivo y una tasa de descuento.
    +ODDFPRICE		= PRECIO.PER.IRREGULAR.1		##	Devuelve el precio por un valor nominal de 100 $ de un valor bursátil con un primer período impar.
    +ODDFYIELD		= RENDTO.PER.IRREGULAR.1		##	Devuelve el rendimiento de un valor bursátil con un primer período impar.
    +ODDLPRICE		= PRECIO.PER.IRREGULAR.2		##	Devuelve el precio por un valor nominal de 100 $ de un valor bursátil con un último período impar.
    +ODDLYIELD		= RENDTO.PER.IRREGULAR.2		##	Devuelve el rendimiento de un valor bursátil con un último período impar.
    +PMT			= PAGO					##	Devuelve el pago periódico de una anualidad.
    +PPMT			= PAGOPRIN				##	Devuelve el pago de capital de una inversión durante un período determinado.
    +PRICE			= PRECIO				##	Devuelve el precio por un valor nominal de 100 $ de un valor bursátil que paga una tasa de interés periódico.
    +PRICEDISC		= PRECIO.DESCUENTO			##	Devuelve el precio por un valor nominal de 100 $ de un valor bursátil con descuento.
    +PRICEMAT		= PRECIO.VENCIMIENTO			##	Devuelve el precio por un valor nominal de 100 $ de un valor bursátil que paga interés a su vencimiento.
    +PV			= VALACT				##	Devuelve el valor actual de una inversión.
    +RATE			= TASA					##	Devuelve la tasa de interés por período de una anualidad.
    +RECEIVED		= CANTIDAD.RECIBIDA			##	Devuelve la cantidad recibida al vencimiento de un valor bursátil completamente invertido.
    +SLN			= SLN					##	Devuelve la amortización por método directo de un bien en un período dado.
    +SYD			= SYD					##	Devuelve la amortización por suma de dígitos de los años de un bien durante un período especificado.
    +TBILLEQ			= LETRA.DE.TES.EQV.A.BONO		##	Devuelve el rendimiento de un bono equivalente a una letra del Tesoro (de EE.UU.)
    +TBILLPRICE		= LETRA.DE.TES.PRECIO			##	Devuelve el precio por un valor nominal de 100 $ de una letra del Tesoro (de EE.UU.)
    +TBILLYIELD		= LETRA.DE.TES.RENDTO			##	Devuelve el rendimiento de una letra del Tesoro (de EE.UU.)
    +VDB			= DVS					##	Devuelve la amortización de un bien durante un período específico o parcial a través del método de cálculo del saldo en disminución.
    +XIRR			= TIR.NO.PER				##	Devuelve la tasa interna de retorno para un flujo de efectivo que no es necesariamente periódico.
    +XNPV			= VNA.NO.PER				##	Devuelve el valor neto actual para un flujo de efectivo que no es necesariamente periódico.
    +YIELD			= RENDTO				##	Devuelve el rendimiento de un valor bursátil que paga intereses periódicos.
    +YIELDDISC		= RENDTO.DESC				##	Devuelve el rendimiento anual de un valor bursátil con descuento; por ejemplo, una letra del Tesoro (de EE.UU.)
    +YIELDMAT		= RENDTO.VENCTO				##	Devuelve el rendimiento anual de un valor bursátil que paga intereses al vencimiento.
    +
    +
    +##
    +##	Information functions					Funciones de información
    +##
    +CELL			= CELDA					##	Devuelve información acerca del formato, la ubicación o el contenido de una celda.
    +ERROR.TYPE		= TIPO.DE.ERROR				##	Devuelve un número que corresponde a un tipo de error.
    +INFO			= INFO					##	Devuelve información acerca del entorno operativo en uso.
    +ISBLANK			= ESBLANCO				##	Devuelve VERDADERO si el valor está en blanco.
    +ISERR			= ESERR					##	Devuelve VERDADERO si el valor es cualquier valor de error excepto #N/A.
    +ISERROR			= ESERROR				##	Devuelve VERDADERO si el valor es cualquier valor de error.
    +ISEVEN			= ES.PAR				##	Devuelve VERDADERO si el número es par.
    +ISLOGICAL		= ESLOGICO				##	Devuelve VERDADERO si el valor es un valor lógico.
    +ISNA			= ESNOD					##	Devuelve VERDADERO si el valor es el valor de error #N/A.
    +ISNONTEXT		= ESNOTEXTO				##	Devuelve VERDADERO si el valor no es texto.
    +ISNUMBER		= ESNUMERO				##	Devuelve VERDADERO si el valor es un número.
    +ISODD			= ES.IMPAR				##	Devuelve VERDADERO si el número es impar.
    +ISREF			= ESREF					##	Devuelve VERDADERO si el valor es una referencia.
    +ISTEXT			= ESTEXTO				##	Devuelve VERDADERO si el valor es texto.
    +N			= N					##	Devuelve un valor convertido en un número.
    +NA			= ND					##	Devuelve el valor de error #N/A.
    +TYPE			= TIPO					##	Devuelve un número que indica el tipo de datos de un valor.
    +
    +
    +##
    +##	Logical functions					Funciones lógicas
    +##
    +AND			= Y					##	Devuelve VERDADERO si todos sus argumentos son VERDADERO.
    +FALSE			= FALSO					##	Devuelve el valor lógico FALSO.
    +IF			= SI					##	Especifica una prueba lógica que realizar.
    +IFERROR			= SI.ERROR				##	Devuelve un valor que se especifica si una fórmula lo evalúa como un error; de lo contrario, devuelve el resultado de la fórmula.
    +NOT			= NO					##	Invierte el valor lógico del argumento.
    +OR			= O					##	Devuelve VERDADERO si cualquier argumento es VERDADERO.
    +TRUE			= VERDADERO				##	Devuelve el valor lógico VERDADERO.
    +
    +
    +##
    +##	Lookup and reference functions				Funciones de búsqueda y referencia
    +##
    +ADDRESS			= DIRECCION				##	Devuelve una referencia como texto a una sola celda de una hoja de cálculo.
    +AREAS			= AREAS					##	Devuelve el número de áreas de una referencia.
    +CHOOSE			= ELEGIR				##	Elige un valor de una lista de valores.
    +COLUMN			= COLUMNA				##	Devuelve el número de columna de una referencia.
    +COLUMNS			= COLUMNAS				##	Devuelve el número de columnas de una referencia.
    +HLOOKUP			= BUSCARH				##	Busca en la fila superior de una matriz y devuelve el valor de la celda indicada.
    +HYPERLINK		= HIPERVINCULO				##	Crea un acceso directo o un salto que abre un documento almacenado en un servidor de red, en una intranet o en Internet.
    +INDEX			= INDICE				##	Usa un índice para elegir un valor de una referencia o matriz.
    +INDIRECT		= INDIRECTO				##	Devuelve una referencia indicada por un valor de texto.
    +LOOKUP			= BUSCAR				##	Busca valores de un vector o una matriz.
    +MATCH			= COINCIDIR				##	Busca valores de una referencia o matriz.
    +OFFSET			= DESREF				##	Devuelve un desplazamiento de referencia respecto a una referencia dada.
    +ROW			= FILA					##	Devuelve el número de fila de una referencia.
    +ROWS			= FILAS					##	Devuelve el número de filas de una referencia.
    +RTD			= RDTR					##	Recupera datos en tiempo real desde un programa compatible con la automatización COM (automatización: modo de trabajar con los objetos de una aplicación desde otra aplicación o herramienta de entorno. La automatización, antes denominada automatización OLE, es un estándar de la industria y una función del Modelo de objetos componentes (COM).).
    +TRANSPOSE		= TRANSPONER				##	Devuelve la transposición de una matriz.
    +VLOOKUP			= BUSCARV				##	Busca en la primera columna de una matriz y se mueve en horizontal por la fila para devolver el valor de una celda.
    +
    +
    +##
    +##	Math and trigonometry functions				Funciones matemáticas y trigonométricas
    +##
    +ABS			= ABS					##	Devuelve el valor absoluto de un número.
    +ACOS			= ACOS					##	Devuelve el arcocoseno de un número.
    +ACOSH			= ACOSH					##	Devuelve el coseno hiperbólico inverso de un número.
    +ASIN			= ASENO					##	Devuelve el arcoseno de un número.
    +ASINH			= ASENOH				##	Devuelve el seno hiperbólico inverso de un número.
    +ATAN			= ATAN					##	Devuelve la arcotangente de un número.
    +ATAN2			= ATAN2					##	Devuelve la arcotangente de las coordenadas "x" e "y".
    +ATANH			= ATANH					##	Devuelve la tangente hiperbólica inversa de un número.
    +CEILING			= MULTIPLO.SUPERIOR			##	Redondea un número al entero más próximo o al múltiplo significativo más cercano.
    +COMBIN			= COMBINAT				##	Devuelve el número de combinaciones para un número determinado de objetos.
    +COS			= COS					##	Devuelve el coseno de un número.
    +COSH			= COSH					##	Devuelve el coseno hiperbólico de un número.
    +DEGREES			= GRADOS				##	Convierte radianes en grados.
    +EVEN			= REDONDEA.PAR				##	Redondea un número hasta el entero par más próximo.
    +EXP			= EXP					##	Devuelve e elevado a la potencia de un número dado.
    +FACT			= FACT					##	Devuelve el factorial de un número.
    +FACTDOUBLE		= FACT.DOBLE				##	Devuelve el factorial doble de un número.
    +FLOOR			= MULTIPLO.INFERIOR			##	Redondea un número hacia abajo, en dirección hacia cero.
    +GCD			= M.C.D					##	Devuelve el máximo común divisor.
    +INT			= ENTERO				##	Redondea un número hacia abajo hasta el entero más próximo.
    +LCM			= M.C.M					##	Devuelve el mínimo común múltiplo.
    +LN			= LN					##	Devuelve el logaritmo natural (neperiano) de un número.
    +LOG			= LOG					##	Devuelve el logaritmo de un número en una base especificada.
    +LOG10			= LOG10					##	Devuelve el logaritmo en base 10 de un número.
    +MDETERM			= MDETERM				##	Devuelve la determinante matricial de una matriz.
    +MINVERSE		= MINVERSA				##	Devuelve la matriz inversa de una matriz.
    +MMULT			= MMULT					##	Devuelve el producto de matriz de dos matrices.
    +MOD			= RESIDUO				##	Devuelve el resto de la división.
    +MROUND			= REDOND.MULT				##	Devuelve un número redondeado al múltiplo deseado.
    +MULTINOMIAL		= MULTINOMIAL				##	Devuelve el polinomio de un conjunto de números.
    +ODD			= REDONDEA.IMPAR			##	Redondea un número hacia arriba hasta el entero impar más próximo.
    +PI			= PI					##	Devuelve el valor de pi.
    +POWER			= POTENCIA				##	Devuelve el resultado de elevar un número a una potencia.
    +PRODUCT			= PRODUCTO				##	Multiplica sus argumentos.
    +QUOTIENT		= COCIENTE				##	Devuelve la parte entera de una división.
    +RADIANS			= RADIANES				##	Convierte grados en radianes.
    +RAND			= ALEATORIO				##	Devuelve un número aleatorio entre 0 y 1.
    +RANDBETWEEN		= ALEATORIO.ENTRE			##	Devuelve un número aleatorio entre los números que especifique.
    +ROMAN			= NUMERO.ROMANO				##	Convierte un número arábigo en número romano, con formato de texto.
    +ROUND			= REDONDEAR				##	Redondea un número al número de decimales especificado.
    +ROUNDDOWN		= REDONDEAR.MENOS			##	Redondea un número hacia abajo, en dirección hacia cero.
    +ROUNDUP			= REDONDEAR.MAS				##	Redondea un número hacia arriba, en dirección contraria a cero.
    +SERIESSUM		= SUMA.SERIES				##	Devuelve la suma de una serie de potencias en función de la fórmula.
    +SIGN			= SIGNO					##	Devuelve el signo de un número.
    +SIN			= SENO					##	Devuelve el seno de un ángulo determinado.
    +SINH			= SENOH					##	Devuelve el seno hiperbólico de un número.
    +SQRT			= RAIZ					##	Devuelve la raíz cuadrada positiva de un número.
    +SQRTPI			= RAIZ2PI				##	Devuelve la raíz cuadrada de un número multiplicado por PI (número * pi).
    +SUBTOTAL		= SUBTOTALES				##	Devuelve un subtotal en una lista o base de datos.
    +SUM			= SUMA					##	Suma sus argumentos.
    +SUMIF			= SUMAR.SI				##	Suma las celdas especificadas que cumplen unos criterios determinados.
    +SUMIFS			= SUMAR.SI.CONJUNTO			##	Suma las celdas de un rango que cumplen varios criterios.
    +SUMPRODUCT		= SUMAPRODUCTO				##	Devuelve la suma de los productos de los correspondientes componentes de matriz.
    +SUMSQ			= SUMA.CUADRADOS			##	Devuelve la suma de los cuadrados de los argumentos.
    +SUMX2MY2		= SUMAX2MENOSY2				##	Devuelve la suma de la diferencia de los cuadrados de los valores correspondientes de dos matrices.
    +SUMX2PY2		= SUMAX2MASY2				##	Devuelve la suma de la suma de los cuadrados de los valores correspondientes de dos matrices.
    +SUMXMY2			= SUMAXMENOSY2				##	Devuelve la suma de los cuadrados de las diferencias de los valores correspondientes de dos matrices.
    +TAN			= TAN					##	Devuelve la tangente de un número.
    +TANH			= TANH					##	Devuelve la tangente hiperbólica de un número.
    +TRUNC			= TRUNCAR				##	Trunca un número a un entero.
    +
    +
    +##
    +##	Statistical functions					Funciones estadísticas
    +##
    +AVEDEV			= DESVPROM				##	Devuelve el promedio de las desviaciones absolutas de la media de los puntos de datos.
    +AVERAGE			= PROMEDIO				##	Devuelve el promedio de sus argumentos.
    +AVERAGEA		= PROMEDIOA				##	Devuelve el promedio de sus argumentos, incluidos números, texto y valores lógicos.
    +AVERAGEIF		= PROMEDIO.SI				##	Devuelve el promedio (media aritmética) de todas las celdas de un rango que cumplen unos criterios determinados.
    +AVERAGEIFS		= PROMEDIO.SI.CONJUNTO			##	Devuelve el promedio (media aritmética) de todas las celdas que cumplen múltiples criterios.
    +BETADIST		= DISTR.BETA				##	Devuelve la función de distribución beta acumulativa.
    +BETAINV			= DISTR.BETA.INV			##	Devuelve la función inversa de la función de distribución acumulativa de una distribución beta especificada.
    +BINOMDIST		= DISTR.BINOM				##	Devuelve la probabilidad de una variable aleatoria discreta siguiendo una distribución binomial.
    +CHIDIST			= DISTR.CHI				##	Devuelve la probabilidad de una variable aleatoria continua siguiendo una distribución chi cuadrado de una sola cola.
    +CHIINV			= PRUEBA.CHI.INV			##	Devuelve la función inversa de la probabilidad de una variable aleatoria continua siguiendo una distribución chi cuadrado de una sola cola.
    +CHITEST			= PRUEBA.CHI				##	Devuelve la prueba de independencia.
    +CONFIDENCE		= INTERVALO.CONFIANZA			##	Devuelve el intervalo de confianza de la media de una población.
    +CORREL			= COEF.DE.CORREL			##	Devuelve el coeficiente de correlación entre dos conjuntos de datos.
    +COUNT			= CONTAR				##	Cuenta cuántos números hay en la lista de argumentos.
    +COUNTA			= CONTARA				##	Cuenta cuántos valores hay en la lista de argumentos.
    +COUNTBLANK		= CONTAR.BLANCO				##	Cuenta el número de celdas en blanco de un rango.
    +COUNTIF			= CONTAR.SI				##	Cuenta el número de celdas, dentro del rango, que cumplen el criterio especificado.
    +COUNTIFS		= CONTAR.SI.CONJUNTO			##	Cuenta el número de celdas, dentro del rango, que cumplen varios criterios.
    +COVAR			= COVAR					##	Devuelve la covarianza, que es el promedio de los productos de las desviaciones para cada pareja de puntos de datos.
    +CRITBINOM		= BINOM.CRIT				##	Devuelve el menor valor cuya distribución binomial acumulativa es menor o igual a un valor de criterio.
    +DEVSQ			= DESVIA2				##	Devuelve la suma de los cuadrados de las desviaciones.
    +EXPONDIST		= DISTR.EXP				##	Devuelve la distribución exponencial.
    +FDIST			= DISTR.F				##	Devuelve la distribución de probabilidad F.
    +FINV			= DISTR.F.INV				##	Devuelve la función inversa de la distribución de probabilidad F.
    +FISHER			= FISHER				##	Devuelve la transformación Fisher.
    +FISHERINV		= PRUEBA.FISHER.INV			##	Devuelve la función inversa de la transformación Fisher.
    +FORECAST		= PRONOSTICO				##	Devuelve un valor en una tendencia lineal.
    +FREQUENCY		= FRECUENCIA				##	Devuelve una distribución de frecuencia como una matriz vertical.
    +FTEST			= PRUEBA.F				##	Devuelve el resultado de una prueba F.
    +GAMMADIST		= DISTR.GAMMA				##	Devuelve la distribución gamma.
    +GAMMAINV		= DISTR.GAMMA.INV			##	Devuelve la función inversa de la distribución gamma acumulativa.
    +GAMMALN			= GAMMA.LN				##	Devuelve el logaritmo natural de la función gamma, G(x).
    +GEOMEAN			= MEDIA.GEOM				##	Devuelve la media geométrica.
    +GROWTH			= CRECIMIENTO				##	Devuelve valores en una tendencia exponencial.
    +HARMEAN			= MEDIA.ARMO				##	Devuelve la media armónica.
    +HYPGEOMDIST		= DISTR.HIPERGEOM			##	Devuelve la distribución hipergeométrica.
    +INTERCEPT		= INTERSECCION.EJE			##	Devuelve la intersección de la línea de regresión lineal.
    +KURT			= CURTOSIS				##	Devuelve la curtosis de un conjunto de datos.
    +LARGE			= K.ESIMO.MAYOR				##	Devuelve el k-ésimo mayor valor de un conjunto de datos.
    +LINEST			= ESTIMACION.LINEAL			##	Devuelve los parámetros de una tendencia lineal.
    +LOGEST			= ESTIMACION.LOGARITMICA		##	Devuelve los parámetros de una tendencia exponencial.
    +LOGINV			= DISTR.LOG.INV				##	Devuelve la función inversa de la distribución logarítmico-normal.
    +LOGNORMDIST		= DISTR.LOG.NORM			##	Devuelve la distribución logarítmico-normal acumulativa.
    +MAX			= MAX					##	Devuelve el valor máximo de una lista de argumentos.
    +MAXA			= MAXA					##	Devuelve el valor máximo de una lista de argumentos, incluidos números, texto y valores lógicos.
    +MEDIAN			= MEDIANA				##	Devuelve la mediana de los números dados.
    +MIN			= MIN					##	Devuelve el valor mínimo de una lista de argumentos.
    +MINA			= MINA					##	Devuelve el valor mínimo de una lista de argumentos, incluidos números, texto y valores lógicos.
    +MODE			= MODA					##	Devuelve el valor más común de un conjunto de datos.
    +NEGBINOMDIST		= NEGBINOMDIST				##	Devuelve la distribución binomial negativa.
    +NORMDIST		= DISTR.NORM				##	Devuelve la distribución normal acumulativa.
    +NORMINV			= DISTR.NORM.INV			##	Devuelve la función inversa de la distribución normal acumulativa.
    +NORMSDIST		= DISTR.NORM.ESTAND			##	Devuelve la distribución normal estándar acumulativa.
    +NORMSINV		= DISTR.NORM.ESTAND.INV			##	Devuelve la función inversa de la distribución normal estándar acumulativa.
    +PEARSON			= PEARSON				##	Devuelve el coeficiente de momento de correlación de producto Pearson.
    +PERCENTILE		= PERCENTIL				##	Devuelve el k-ésimo percentil de los valores de un rango.
    +PERCENTRANK		= RANGO.PERCENTIL			##	Devuelve el rango porcentual de un valor de un conjunto de datos.
    +PERMUT			= PERMUTACIONES				##	Devuelve el número de permutaciones de un número determinado de objetos.
    +POISSON			= POISSON				##	Devuelve la distribución de Poisson.
    +PROB			= PROBABILIDAD				##	Devuelve la probabilidad de que los valores de un rango se encuentren entre dos límites.
    +QUARTILE		= CUARTIL				##	Devuelve el cuartil de un conjunto de datos.
    +RANK			= JERARQUIA				##	Devuelve la jerarquía de un número en una lista de números.
    +RSQ			= COEFICIENTE.R2			##	Devuelve el cuadrado del coeficiente de momento de correlación de producto Pearson.
    +SKEW			= COEFICIENTE.ASIMETRIA			##	Devuelve la asimetría de una distribución.
    +SLOPE			= PENDIENTE				##	Devuelve la pendiente de la línea de regresión lineal.
    +SMALL			= K.ESIMO.MENOR				##	Devuelve el k-ésimo menor valor de un conjunto de datos.
    +STANDARDIZE		= NORMALIZACION				##	Devuelve un valor normalizado.
    +STDEV			= DESVEST				##	Calcula la desviación estándar a partir de una muestra.
    +STDEVA			= DESVESTA				##	Calcula la desviación estándar a partir de una muestra, incluidos números, texto y valores lógicos.
    +STDEVP			= DESVESTP				##	Calcula la desviación estándar en función de toda la población.
    +STDEVPA			= DESVESTPA				##	Calcula la desviación estándar en función de toda la población, incluidos números, texto y valores lógicos.
    +STEYX			= ERROR.TIPICO.XY			##	Devuelve el error estándar del valor de "y" previsto para cada "x" de la regresión.
    +TDIST			= DISTR.T				##	Devuelve la distribución de t de Student.
    +TINV			= DISTR.T.INV				##	Devuelve la función inversa de la distribución de t de Student.
    +TREND			= TENDENCIA				##	Devuelve valores en una tendencia lineal.
    +TRIMMEAN		= MEDIA.ACOTADA				##	Devuelve la media del interior de un conjunto de datos.
    +TTEST			= PRUEBA.T				##	Devuelve la probabilidad asociada a una prueba t de Student.
    +VAR			= VAR					##	Calcula la varianza en función de una muestra.
    +VARA			= VARA					##	Calcula la varianza en función de una muestra, incluidos números, texto y valores lógicos.
    +VARP			= VARP					##	Calcula la varianza en función de toda la población.
    +VARPA			= VARPA					##	Calcula la varianza en función de toda la población, incluidos números, texto y valores lógicos.
    +WEIBULL			= DIST.WEIBULL				##	Devuelve la distribución de Weibull.
    +ZTEST			= PRUEBA.Z				##	Devuelve el valor de una probabilidad de una cola de una prueba z.
    +
    +
    +##
    +##	Text functions						Funciones de texto
    +##
    +ASC			= ASC					##	Convierte las letras inglesas o katakana de ancho completo (de dos bytes) dentro de una cadena de caracteres en caracteres de ancho medio (de un byte).
    +BAHTTEXT		= TEXTOBAHT				##	Convierte un número en texto, con el formato de moneda ß (Baht).
    +CHAR			= CARACTER				##	Devuelve el carácter especificado por el número de código.
    +CLEAN			= LIMPIAR				##	Quita del texto todos los caracteres no imprimibles.
    +CODE			= CODIGO				##	Devuelve un código numérico del primer carácter de una cadena de texto.
    +CONCATENATE		= CONCATENAR				##	Concatena varios elementos de texto en uno solo.
    +DOLLAR			= MONEDA				##	Convierte un número en texto, con el formato de moneda $ (dólar).
    +EXACT			= IGUAL					##	Comprueba si dos valores de texto son idénticos.
    +FIND			= ENCONTRAR				##	Busca un valor de texto dentro de otro (distingue mayúsculas de minúsculas).
    +FINDB			= ENCONTRARB				##	Busca un valor de texto dentro de otro (distingue mayúsculas de minúsculas).
    +FIXED			= DECIMAL				##	Da formato a un número como texto con un número fijo de decimales.
    +JIS			= JIS					##	Convierte las letras inglesas o katakana de ancho medio (de un byte) dentro de una cadena de caracteres en caracteres de ancho completo (de dos bytes).
    +LEFT			= IZQUIERDA				##	Devuelve los caracteres del lado izquierdo de un valor de texto.
    +LEFTB			= IZQUIERDAB				##	Devuelve los caracteres del lado izquierdo de un valor de texto.
    +LEN			= LARGO					##	Devuelve el número de caracteres de una cadena de texto.
    +LENB			= LARGOB				##	Devuelve el número de caracteres de una cadena de texto.
    +LOWER			= MINUSC				##	Pone el texto en minúsculas.
    +MID			= EXTRAE				##	Devuelve un número específico de caracteres de una cadena de texto que comienza en la posición que se especifique.
    +MIDB			= EXTRAEB				##	Devuelve un número específico de caracteres de una cadena de texto que comienza en la posición que se especifique.
    +PHONETIC		= FONETICO				##	Extrae los caracteres fonéticos (furigana) de una cadena de texto.
    +PROPER			= NOMPROPIO				##	Pone en mayúscula la primera letra de cada palabra de un valor de texto.
    +REPLACE			= REEMPLAZAR				##	Reemplaza caracteres de texto.
    +REPLACEB		= REEMPLAZARB				##	Reemplaza caracteres de texto.
    +REPT			= REPETIR				##	Repite el texto un número determinado de veces.
    +RIGHT			= DERECHA				##	Devuelve los caracteres del lado derecho de un valor de texto.
    +RIGHTB			= DERECHAB				##	Devuelve los caracteres del lado derecho de un valor de texto.
    +SEARCH			= HALLAR				##	Busca un valor de texto dentro de otro (no distingue mayúsculas de minúsculas).
    +SEARCHB			= HALLARB				##	Busca un valor de texto dentro de otro (no distingue mayúsculas de minúsculas).
    +SUBSTITUTE		= SUSTITUIR				##	Sustituye texto nuevo por texto antiguo en una cadena de texto.
    +T			= T					##	Convierte sus argumentos a texto.
    +TEXT			= TEXTO					##	Da formato a un número y lo convierte en texto.
    +TRIM			= ESPACIOS				##	Quita los espacios del texto.
    +UPPER			= MAYUSC				##	Pone el texto en mayúsculas.
    +VALUE			= VALOR					##	Convierte un argumento de texto en un número.
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fi/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fi/config
    new file mode 100644
    index 00000000000..22aaf58b98d
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fi/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= $	#	Symbol not known, should it be a € (Euro)?
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #TYHJÄ!
    +DIV0	= #JAKO/0!
    +VALUE	= #ARVO!
    +REF	= #VIITTAUS!
    +NAME	= #NIMI?
    +NUM	= #LUKU!
    +NA	= #PUUTTUU
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fi/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fi/functions
    new file mode 100644
    index 00000000000..289e0eaca48
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fi/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions			Apuohjelma- ja automaatiofunktiot
    +##
    +GETPIVOTDATA		= NOUDA.PIVOT.TIEDOT		##	Palauttaa pivot-taulukkoraporttiin tallennettuja tietoja.
    +
    +
    +##
    +##	Cube functions					Kuutiofunktiot
    +##
    +CUBEKPIMEMBER		= KUUTIOKPIJÄSEN		##	Palauttaa suorituskykyilmaisimen (KPI) nimen, ominaisuuden sekä mitan ja näyttää nimen sekä ominaisuuden solussa. KPI on mitattavissa oleva suure, kuten kuukauden bruttotuotto tai vuosineljänneksen työntekijäkohtainen liikevaihto, joiden avulla tarkkaillaan organisaation suorituskykyä.
    +CUBEMEMBER		= KUUTIONJÄSEN			##	Palauttaa kuutiohierarkian jäsenen tai monikon. Tällä funktiolla voit tarkistaa, että jäsen tai monikko on olemassa kuutiossa.
    +CUBEMEMBERPROPERTY	= KUUTIONJÄSENENOMINAISUUS	##	Palauttaa kuution jäsenominaisuuden arvon. Tällä funktiolla voit tarkistaa, että nimi on olemassa kuutiossa, ja palauttaa tämän jäsenen määritetyn ominaisuuden.
    +CUBERANKEDMEMBER	= KUUTIONLUOKITELTUJÄSEN	##	Palauttaa joukon n:nnen jäsenen. Tällä funktiolla voit palauttaa joukosta elementtejä, kuten parhaan myyjän tai 10 parasta opiskelijaa.
    +CUBESET			= KUUTIOJOUKKO			##	Määrittää lasketun jäsen- tai monikkojoukon lähettämällä joukon lausekkeita palvelimessa olevalle kuutiolle. Palvelin luo joukon ja palauttaa sen Microsoft Office Excelille.
    +CUBESETCOUNT		= KUUTIOJOUKKOJENMÄÄRÄ		##	Palauttaa joukon kohteiden määrän.
    +CUBEVALUE		= KUUTIONARVO			##	Palauttaa koostetun arvon kuutiosta.
    +
    +
    +##
    +##	Database functions				Tietokantafunktiot
    +##
    +DAVERAGE		= TKESKIARVO			##	Palauttaa valittujen tietokantamerkintöjen keskiarvon.
    +DCOUNT			= TLASKE			##	Laskee tietokannan lukuja sisältävien solujen määrän.
    +DCOUNTA			= TLASKEA			##	Laskee tietokannan tietoja sisältävien solujen määrän.
    +DGET			= TNOUDA			##	Hakee määritettyjä ehtoja vastaavan tietueen tietokannasta.
    +DMAX			= TMAKS				##	Palauttaa suurimman arvon tietokannasta valittujen arvojen joukosta.
    +DMIN			= TMIN				##	Palauttaa pienimmän arvon tietokannasta valittujen arvojen joukosta.
    +DPRODUCT		= TTULO				##	Kertoo määritetyn ehdon täyttävien tietokannan tietueiden tietyssä kentässä olevat arvot.
    +DSTDEV			= TKESKIHAJONTA			##	Laskee keskihajonnan tietokannasta valituista arvoista muodostuvan otoksen perusteella.
    +DSTDEVP			= TKESKIHAJONTAP		##	Laskee keskihajonnan tietokannasta valittujen arvojen koko populaation perusteella.
    +DSUM			= TSUMMA			##	Lisää luvut määritetyn ehdon täyttävien tietokannan tietueiden kenttäsarakkeeseen.
    +DVAR			= TVARIANSSI			##	Laskee varianssin tietokannasta valittujen arvojen otoksen perusteella.
    +DVARP			= TVARIANSSIP			##	Laskee varianssin tietokannasta valittujen arvojen koko populaation perusteella.
    +
    +
    +##
    +##	Date and time functions				Päivämäärä- ja aikafunktiot
    +##
    +DATE			= PÄIVÄYS			##	Palauttaa annetun päivämäärän järjestysluvun.
    +DATEVALUE		= PÄIVÄYSARVO			##	Muuntaa tekstimuodossa olevan päivämäärän järjestysluvuksi.
    +DAY			= PÄIVÄ				##	Muuntaa järjestysluvun kuukauden päiväksi.
    +DAYS360			= PÄIVÄT360			##	Laskee kahden päivämäärän välisten päivien määrän käyttäen perustana 360-päiväistä vuotta.
    +EDATE			= PÄIVÄ.KUUKAUSI		##	Palauttaa järjestyslukuna päivämäärän, joka poikkeaa aloituspäivän päivämäärästä annetun kuukausimäärän verran joko eteen- tai taaksepäin.
    +EOMONTH			= KUUKAUSI.LOPPU		##	Palauttaa järjestyslukuna sen kuukauden viimeisen päivämäärän, joka poikkeaa annetun kuukausimäärän verran eteen- tai taaksepäin.
    +HOUR			= TUNNIT			##	Muuntaa järjestysluvun tunneiksi.
    +MINUTE			= MINUUTIT			##	Muuntaa järjestysluvun minuuteiksi.
    +MONTH			= KUUKAUSI			##	Muuntaa järjestysluvun kuukausiksi.
    +NETWORKDAYS		= TYÖPÄIVÄT			##	Palauttaa kahden päivämäärän välissä olevien täysien työpäivien määrän.
    +NOW			= NYT				##	Palauttaa kuluvan päivämäärän ja ajan järjestysnumeron.
    +SECOND			= SEKUNNIT			##	Muuntaa järjestysluvun sekunneiksi.
    +TIME			= AIKA				##	Palauttaa annetun kellonajan järjestysluvun.
    +TIMEVALUE		= AIKA_ARVO			##	Muuntaa tekstimuodossa olevan kellonajan järjestysluvuksi.
    +TODAY			= TÄMÄ.PÄIVÄ			##	Palauttaa kuluvan päivän päivämäärän järjestysluvun.
    +WEEKDAY			= VIIKONPÄIVÄ			##	Muuntaa järjestysluvun viikonpäiväksi.
    +WEEKNUM			= VIIKKO.NRO			##	Muuntaa järjestysluvun luvuksi, joka ilmaisee viikon järjestysluvun vuoden alusta laskettuna.
    +WORKDAY			= TYÖPÄIVÄ			##	Palauttaa järjestysluvun päivämäärälle, joka sijaitsee annettujen työpäivien verran eteen tai taaksepäin.
    +YEAR			= VUOSI				##	Muuntaa järjestysluvun vuosiksi.
    +YEARFRAC		= VUOSI.OSA			##	Palauttaa määritettyjen päivämäärien (aloituspäivä ja lopetuspäivä) välisen osan vuodesta.
    +
    +
    +##
    +##	Engineering functions				Tekniset funktiot
    +##
    +BESSELI			= BESSELI			##	Palauttaa muunnetun Bessel-funktion In(x).
    +BESSELJ			= BESSELJ			##	Palauttaa Bessel-funktion Jn(x).
    +BESSELK			= BESSELK			##	Palauttaa muunnetun Bessel-funktion Kn(x).
    +BESSELY			= BESSELY			##	Palauttaa Bessel-funktion Yn(x).
    +BIN2DEC			= BINDES			##	Muuntaa binaariluvun desimaaliluvuksi.
    +BIN2HEX			= BINHEKSA			##	Muuntaa binaariluvun heksadesimaaliluvuksi.
    +BIN2OCT			= BINOKT			##	Muuntaa binaariluvun oktaaliluvuksi.
    +COMPLEX			= KOMPLEKSI			##	Muuntaa reaali- ja imaginaariosien kertoimet kompleksiluvuksi.
    +CONVERT			= MUUNNA			##	Muuntaa luvun toisen mittajärjestelmän mukaiseksi.
    +DEC2BIN			= DESBIN			##	Muuntaa desimaaliluvun binaariluvuksi.
    +DEC2HEX			= DESHEKSA			##	Muuntaa kymmenjärjestelmän luvun heksadesimaaliluvuksi.
    +DEC2OCT			= DESOKT			##	Muuntaa kymmenjärjestelmän luvun oktaaliluvuksi.
    +DELTA			= SAMA.ARVO			##	Tarkistaa, ovatko kaksi arvoa yhtä suuria.
    +ERF			= VIRHEFUNKTIO			##	Palauttaa virhefunktion.
    +ERFC			= VIRHEFUNKTIO.KOMPLEMENTTI	##	Palauttaa komplementtivirhefunktion.
    +GESTEP			= RAJA				##	Testaa, onko luku suurempi kuin kynnysarvo.
    +HEX2BIN			= HEKSABIN			##	Muuntaa heksadesimaaliluvun binaariluvuksi.
    +HEX2DEC			= HEKSADES			##	Muuntaa heksadesimaaliluvun desimaaliluvuksi.
    +HEX2OCT			= HEKSAOKT			##	Muuntaa heksadesimaaliluvun oktaaliluvuksi.
    +IMABS			= KOMPLEKSI.ITSEISARVO		##	Palauttaa kompleksiluvun itseisarvon (moduluksen).
    +IMAGINARY		= KOMPLEKSI.IMAG		##	Palauttaa kompleksiluvun imaginaariosan kertoimen.
    +IMARGUMENT		= KOMPLEKSI.ARG			##	Palauttaa theeta-argumentin, joka on radiaaneina annettu kulma.
    +IMCONJUGATE		= KOMPLEKSI.KONJ		##	Palauttaa kompleksiluvun konjugaattiluvun.
    +IMCOS			= KOMPLEKSI.COS			##	Palauttaa kompleksiluvun kosinin.
    +IMDIV			= KOMPLEKSI.OSAM		##	Palauttaa kahden kompleksiluvun osamäärän.
    +IMEXP			= KOMPLEKSI.EKSP		##	Palauttaa kompleksiluvun eksponentin.
    +IMLN			= KOMPLEKSI.LN			##	Palauttaa kompleksiluvun luonnollisen logaritmin.
    +IMLOG10			= KOMPLEKSI.LOG10		##	Palauttaa kompleksiluvun kymmenkantaisen logaritmin.
    +IMLOG2			= KOMPLEKSI.LOG2		##	Palauttaa kompleksiluvun kaksikantaisen logaritmin.
    +IMPOWER			= KOMPLEKSI.POT			##	Palauttaa kokonaislukupotenssiin korotetun kompleksiluvun.
    +IMPRODUCT		= KOMPLEKSI.TULO		##	Palauttaa kompleksilukujen tulon.
    +IMREAL			= KOMPLEKSI.REAALI		##	Palauttaa kompleksiluvun reaaliosan kertoimen.
    +IMSIN			= KOMPLEKSI.SIN			##	Palauttaa kompleksiluvun sinin.
    +IMSQRT			= KOMPLEKSI.NELIÖJ		##	Palauttaa kompleksiluvun neliöjuuren.
    +IMSUB			= KOMPLEKSI.EROTUS		##	Palauttaa kahden kompleksiluvun erotuksen.
    +IMSUM			= KOMPLEKSI.SUM			##	Palauttaa kompleksilukujen summan.
    +OCT2BIN			= OKTBIN			##	Muuntaa oktaaliluvun binaariluvuksi.
    +OCT2DEC			= OKTDES			##	Muuntaa oktaaliluvun desimaaliluvuksi.
    +OCT2HEX			= OKTHEKSA			##	Muuntaa oktaaliluvun heksadesimaaliluvuksi.
    +
    +
    +##
    +##	Financial functions				Rahoitusfunktiot
    +##
    +ACCRINT			= KERTYNYT.KORKO		##	Laskee arvopaperille kertyneen koron, kun korko kertyy säännöllisin väliajoin.
    +ACCRINTM		= KERTYNYT.KORKO.LOPUSSA	##	Laskee arvopaperille kertyneen koron, kun korko maksetaan eräpäivänä.
    +AMORDEGRC		= AMORDEGRC			##	Laskee kunkin laskentakauden poiston poistokerrointa käyttämällä.
    +AMORLINC		= AMORLINC			##	Palauttaa kunkin laskentakauden poiston.
    +COUPDAYBS		= KORKOPÄIVÄT.ALUSTA		##	Palauttaa koronmaksukauden aloituspäivän ja tilityspäivän välisen ajanjakson päivien määrän.
    +COUPDAYS		= KORKOPÄIVÄT			##	Palauttaa päivien määrän koronmaksukaudelta, johon tilityspäivä kuuluu.
    +COUPDAYSNC		= KORKOPÄIVÄT.SEURAAVA		##	Palauttaa tilityspäivän ja seuraavan koronmaksupäivän välisen ajanjakson päivien määrän.
    +COUPNCD			= KORKOMAKSU.SEURAAVA		##	Palauttaa tilityspäivän jälkeisen seuraavan koronmaksupäivän.
    +COUPNUM			= KORKOPÄIVÄJAKSOT		##	Palauttaa arvopaperin ostopäivän ja erääntymispäivän välisten koronmaksupäivien määrän.
    +COUPPCD			= KORKOPÄIVÄ.EDELLINEN		##	Palauttaa tilityspäivää edeltävän koronmaksupäivän.
    +CUMIPMT			= MAKSETTU.KORKO		##	Palauttaa kahden jakson välisenä aikana kertyneen koron.
    +CUMPRINC		= MAKSETTU.LYHENNYS		##	Palauttaa lainalle kahden jakson välisenä aikana kertyneen lyhennyksen.
    +DB			= DB				##	Palauttaa kauden kirjanpidollisen poiston amerikkalaisen DB-menetelmän (Fixed-declining balance) mukaan.
    +DDB			= DDB				##	Palauttaa kauden kirjanpidollisen poiston amerikkalaisen DDB-menetelmän (Double-Declining Balance) tai jonkin muun määrittämäsi menetelmän mukaan.
    +DISC			= DISKONTTOKORKO		##	Palauttaa arvopaperin diskonttokoron.
    +DOLLARDE		= VALUUTTA.DES			##	Muuntaa murtolukuna ilmoitetun valuuttamäärän desimaaliluvuksi.
    +DOLLARFR		= VALUUTTA.MURTO		##	Muuntaa desimaalilukuna ilmaistun valuuttamäärän murtoluvuksi.
    +DURATION		= KESTO				##	Palauttaa keston arvopaperille, jonka koronmaksu tapahtuu säännöllisesti.
    +EFFECT			= KORKO.EFEKT			##	Palauttaa todellisen vuosikoron.
    +FV			= TULEVA.ARVO			##	Palauttaa sijoituksen tulevan arvon.
    +FVSCHEDULE		= TULEVA.ARVO.ERIKORKO		##	Palauttaa pääoman tulevan arvon, kun pääomalle on kertynyt korkoa vaihtelevasti.
    +INTRATE			= KORKO.ARVOPAPERI		##	Palauttaa arvopaperin korkokannan täysin sijoitetulle arvopaperille.
    +IPMT			= IPMT				##	Laskee sijoitukselle tai lainalle tiettynä ajanjaksona kertyvän koron.
    +IRR			= SISÄINEN.KORKO		##	Laskee sisäisen korkokannan kassavirrasta muodostuvalle sarjalle.
    +ISPMT			= ONMAKSU			##	Laskee sijoituksen maksetun koron tietyllä jaksolla.
    +MDURATION		= KESTO.MUUNN			##	Palauttaa muunnetun Macauley-keston arvopaperille, jonka oletettu nimellisarvo on 100 euroa.
    +MIRR			= MSISÄINEN			##	Palauttaa sisäisen korkokannan, kun positiivisten ja negatiivisten kassavirtojen rahoituskorko on erilainen.
    +NOMINAL			= KORKO.VUOSI			##	Palauttaa vuosittaisen nimelliskoron.
    +NPER			= NJAKSO			##	Palauttaa sijoituksen jaksojen määrän.
    +NPV			= NNA				##	Palauttaa sijoituksen nykyarvon toistuvista kassavirroista muodostuvan sarjan ja diskonttokoron perusteella.
    +ODDFPRICE		= PARITON.ENS.NIMELLISARVO	##	Palauttaa arvopaperin hinnan tilanteessa, jossa ensimmäinen jakso on pariton.
    +ODDFYIELD		= PARITON.ENS.TUOTTO		##	Palauttaa arvopaperin tuoton tilanteessa, jossa ensimmäinen jakso on pariton.
    +ODDLPRICE		= PARITON.VIIM.NIMELLISARVO	##	Palauttaa arvopaperin hinnan tilanteessa, jossa viimeinen jakso on pariton.
    +ODDLYIELD		= PARITON.VIIM.TUOTTO		##	Palauttaa arvopaperin tuoton tilanteessa, jossa viimeinen jakso on pariton.
    +PMT			= MAKSU				##	Palauttaa annuiteetin kausittaisen maksuerän.
    +PPMT			= PPMT				##	Laskee sijoitukselle tai lainalle tiettynä ajanjaksona maksettavan lyhennyksen.
    +PRICE			= HINTA				##	Palauttaa hinnan 100 euron nimellisarvoa kohden arvopaperille, jonka korko maksetaan säännöllisin väliajoin.
    +PRICEDISC		= HINTA.DISK			##	Palauttaa diskontatun arvopaperin hinnan 100 euron nimellisarvoa kohden.
    +PRICEMAT		= HINTA.LUNASTUS		##	Palauttaa hinnan 100 euron nimellisarvoa kohden arvopaperille, jonka korko maksetaan erääntymispäivänä.
    +PV			= NA				##	Palauttaa sijoituksen nykyarvon.
    +RATE			= KORKO				##	Palauttaa annuiteetin kausittaisen korkokannan.
    +RECEIVED		= SAATU.HINTA			##	Palauttaa arvopaperin tuoton erääntymispäivänä kokonaan maksetulle sijoitukselle.
    +SLN			= STP				##	Palauttaa sijoituksen tasapoiston yhdeltä jaksolta.
    +SYD			= VUOSIPOISTO			##	Palauttaa sijoituksen vuosipoiston annettuna kautena amerikkalaisen SYD-menetelmän (Sum-of-Year's Digits) avulla.
    +TBILLEQ			= OBLIG.TUOTTOPROS		##	Palauttaa valtion obligaation tuoton vastaavana joukkovelkakirjan tuottona.
    +TBILLPRICE		= OBLIG.HINTA			##	Palauttaa obligaation hinnan 100 euron nimellisarvoa kohden.
    +TBILLYIELD		= OBLIG.TUOTTO			##	Palauttaa obligaation tuoton.
    +VDB			= VDB				##	Palauttaa annetun kauden tai kauden osan kirjanpidollisen poiston amerikkalaisen DB-menetelmän (Fixed-declining balance) mukaan.
    +XIRR			= SISÄINEN.KORKO.JAKSOTON	##	Palauttaa sisäisen korkokannan kassavirtojen sarjoille, jotka eivät välttämättä ole säännöllisiä.
    +XNPV			= NNA.JAKSOTON			##	Palauttaa nettonykyarvon kassavirtasarjalle, joka ei välttämättä ole kausittainen.
    +YIELD			= TUOTTO			##	Palauttaa tuoton arvopaperille, jonka korko maksetaan säännöllisin väliajoin.
    +YIELDDISC		= TUOTTO.DISK			##	Palauttaa diskontatun arvopaperin, kuten obligaation, vuosittaisen tuoton.
    +YIELDMAT		= TUOTTO.ERÄP			##	Palauttaa erääntymispäivänään korkoa tuottavan arvopaperin vuosittaisen tuoton.
    +
    +
    +##
    +##	Information functions				Erikoisfunktiot
    +##
    +CELL			= SOLU				##	Palauttaa tietoja solun muotoilusta, sijainnista ja sisällöstä.
    +ERROR.TYPE		= VIRHEEN.LAJI			##	Palauttaa virhetyyppiä vastaavan luvun.
    +INFO			= KUVAUS			##	Palauttaa tietoja nykyisestä käyttöympäristöstä.
    +ISBLANK			= ONTYHJÄ			##	Palauttaa arvon TOSI, jos arvo on tyhjä.
    +ISERR			= ONVIRH			##	Palauttaa arvon TOSI, jos arvo on mikä tahansa virhearvo paitsi arvo #PUUTTUU!.
    +ISERROR			= ONVIRHE			##	Palauttaa arvon TOSI, jos arvo on mikä tahansa virhearvo.
    +ISEVEN			= ONPARILLINEN			##	Palauttaa arvon TOSI, jos arvo on parillinen.
    +ISLOGICAL		= ONTOTUUS			##	Palauttaa arvon TOSI, jos arvo on mikä tahansa looginen arvo.
    +ISNA			= ONPUUTTUU			##	Palauttaa arvon TOSI, jos virhearvo on #PUUTTUU!.
    +ISNONTEXT		= ONEI_TEKSTI			##	Palauttaa arvon TOSI, jos arvo ei ole teksti.
    +ISNUMBER		= ONLUKU			##	Palauttaa arvon TOSI, jos arvo on luku.
    +ISODD			= ONPARITON			##	Palauttaa arvon TOSI, jos arvo on pariton.
    +ISREF			= ONVIITT			##	Palauttaa arvon TOSI, jos arvo on viittaus.
    +ISTEXT			= ONTEKSTI			##	Palauttaa arvon TOSI, jos arvo on teksti.
    +N			= N				##	Palauttaa arvon luvuksi muunnettuna.
    +NA			= PUUTTUU			##	Palauttaa virhearvon #PUUTTUU!.
    +TYPE			= TYYPPI			##	Palauttaa luvun, joka ilmaisee arvon tietotyypin.
    +
    +
    +##
    +##	Logical functions				Loogiset funktiot
    +##
    +AND			= JA				##	Palauttaa arvon TOSI, jos kaikkien argumenttien arvo on TOSI.
    +FALSE			= EPÄTOSI			##	Palauttaa totuusarvon EPÄTOSI.
    +IF			= JOS				##	Määrittää suoritettavan loogisen testin.
    +IFERROR			= JOSVIRHE			##	Palauttaa määrittämäsi arvon, jos kaavan tulos on virhe; muussa tapauksessa palauttaa kaavan tuloksen.
    +NOT			= EI				##	Kääntää argumentin loogisen arvon.
    +OR			= TAI				##	Palauttaa arvon TOSI, jos minkä tahansa argumentin arvo on TOSI.
    +TRUE			= TOSI				##	Palauttaa totuusarvon TOSI.
    +
    +
    +##
    +##	Lookup and reference functions			Haku- ja viitefunktiot
    +##
    +ADDRESS			= OSOITE			##	Palauttaa laskentataulukon soluun osoittavan viittauksen tekstinä.
    +AREAS			= ALUEET			##	Palauttaa viittauksessa olevien alueiden määrän.
    +CHOOSE			= VALITSE.INDEKSI		##	Valitsee arvon arvoluettelosta.
    +COLUMN			= SARAKE			##	Palauttaa viittauksen sarakenumeron.
    +COLUMNS			= SARAKKEET			##	Palauttaa viittauksessa olevien sarakkeiden määrän.
    +HLOOKUP			= VHAKU				##	Suorittaa haun matriisin ylimmältä riviltä ja palauttaa määritetyn solun arvon.
    +HYPERLINK		= HYPERLINKKI			##	Luo pikakuvakkeen tai tekstin, joka avaa verkkopalvelimeen, intranetiin tai Internetiin tallennetun tiedoston.
    +INDEX			= INDEKSI			##	Valitsee arvon viittauksesta tai matriisista indeksin mukaan.
    +INDIRECT		= EPÄSUORA			##	Palauttaa tekstiarvona ilmaistun viittauksen.
    +LOOKUP			= HAKU				##	Etsii arvoja vektorista tai matriisista.
    +MATCH			= VASTINE			##	Etsii arvoja viittauksesta tai matriisista.
    +OFFSET			= SIIRTYMÄ			##	Palauttaa annetun viittauksen siirtymän.
    +ROW			= RIVI				##	Palauttaa viittauksen rivinumeron.
    +ROWS			= RIVIT				##	Palauttaa viittauksessa olevien rivien määrän.
    +RTD			= RTD				##	Noutaa COM-automaatiota (automaatio: Tapa käsitellä sovelluksen objekteja toisesta sovelluksesta tai kehitystyökalusta. Automaatio, jota aiemmin kutsuttiin OLE-automaatioksi, on teollisuusstandardi ja COM-mallin (Component Object Model) ominaisuus.) tukevasta ohjelmasta reaaliaikaisia tietoja.
    +TRANSPOSE		= TRANSPONOI			##	Palauttaa matriisin käänteismatriisin.
    +VLOOKUP			= PHAKU				##	Suorittaa haun matriisin ensimmäisestä sarakkeesta ja palauttaa rivillä olevan solun arvon.
    +
    +
    +##
    +##	Math and trigonometry functions			Matemaattiset ja trigonometriset funktiot
    +##
    +ABS			= ITSEISARVO			##	Palauttaa luvun itseisarvon.
    +ACOS			= ACOS				##	Palauttaa luvun arkuskosinin.
    +ACOSH			= ACOSH				##	Palauttaa luvun käänteisen hyperbolisen kosinin.
    +ASIN			= ASIN				##	Palauttaa luvun arkussinin.
    +ASINH			= ASINH				##	Palauttaa luvun käänteisen hyperbolisen sinin.
    +ATAN			= ATAN				##	Palauttaa luvun arkustangentin.
    +ATAN2			= ATAN2				##	Palauttaa arkustangentin x- ja y-koordinaatin perusteella.
    +ATANH			= ATANH				##	Palauttaa luvun käänteisen hyperbolisen tangentin.
    +CEILING			= PYÖRISTÄ.KERR.YLÖS		##	Pyöristää luvun lähimpään kokonaislukuun tai tarkkuusargumentin lähimpään kerrannaiseen.
    +COMBIN			= KOMBINAATIO			##	Palauttaa mahdollisten kombinaatioiden määrän annetulle objektien määrälle.
    +COS			= COS				##	Palauttaa luvun kosinin.
    +COSH			= COSH				##	Palauttaa luvun hyperbolisen kosinin.
    +DEGREES			= ASTEET			##	Muuntaa radiaanit asteiksi.
    +EVEN			= PARILLINEN			##	Pyöristää luvun ylöspäin lähimpään parilliseen kokonaislukuun.
    +EXP			= EKSPONENTTI			##	Palauttaa e:n korotettuna annetun luvun osoittamaan potenssiin.
    +FACT			= KERTOMA			##	Palauttaa luvun kertoman.
    +FACTDOUBLE		= KERTOMA.OSA			##	Palauttaa luvun osakertoman.
    +FLOOR			= PYÖRISTÄ.KERR.ALAS		##	Pyöristää luvun alaspäin (nollaa kohti).
    +GCD			= SUURIN.YHT.TEKIJÄ		##	Palauttaa suurimman yhteisen tekijän.
    +INT			= KOKONAISLUKU			##	Pyöristää luvun alaspäin lähimpään kokonaislukuun.
    +LCM			= PIENIN.YHT.JAETTAVA		##	Palauttaa pienimmän yhteisen tekijän.
    +LN			= LUONNLOG			##	Palauttaa luvun luonnollisen logaritmin.
    +LOG			= LOG				##	Laskee luvun logaritmin käyttämällä annettua kantalukua.
    +LOG10			= LOG10				##	Palauttaa luvun kymmenkantaisen logaritmin.
    +MDETERM			= MDETERM			##	Palauttaa matriisin matriisideterminantin.
    +MINVERSE		= MKÄÄNTEINEN			##	Palauttaa matriisin käänteismatriisin.
    +MMULT			= MKERRO			##	Palauttaa kahden matriisin tulon.
    +MOD			= JAKOJ				##	Palauttaa jakolaskun jäännöksen.
    +MROUND			= PYÖRISTÄ.KERR			##	Palauttaa luvun pyöristettynä annetun luvun kerrannaiseen.
    +MULTINOMIAL		= MULTINOMI			##	Palauttaa lukujoukon multinomin.
    +ODD			= PARITON			##	Pyöristää luvun ylöspäin lähimpään parittomaan kokonaislukuun.
    +PI			= PII				##	Palauttaa piin arvon.
    +POWER			= POTENSSI			##	Palauttaa luvun korotettuna haluttuun potenssiin.
    +PRODUCT			= TULO				##	Kertoo annetut argumentit.
    +QUOTIENT		= OSAMÄÄRÄ			##	Palauttaa osamäärän kokonaislukuosan.
    +RADIANS			= RADIAANIT			##	Muuntaa asteet radiaaneiksi.
    +RAND			= SATUNNAISLUKU			##	Palauttaa satunnaisluvun väliltä 0–1.
    +RANDBETWEEN		= SATUNNAISLUKU.VÄLILTÄ		##	Palauttaa satunnaisluvun määritettyjen lukujen väliltä.
    +ROMAN			= ROMAN				##	Muuntaa arabialaisen numeron tekstimuotoiseksi roomalaiseksi numeroksi.
    +ROUND			= PYÖRISTÄ			##	Pyöristää luvun annettuun määrään desimaaleja.
    +ROUNDDOWN		= PYÖRISTÄ.DES.ALAS		##	Pyöristää luvun alaspäin (nollaa kohti).
    +ROUNDUP			= PYÖRISTÄ.DES.YLÖS		##	Pyöristää luvun ylöspäin (poispäin nollasta).
    +SERIESSUM		= SARJA.SUMMA			##	Palauttaa kaavaan perustuvan potenssisarjan arvon.
    +SIGN			= ETUMERKKI			##	Palauttaa luvun etumerkin.
    +SIN			= SIN				##	Palauttaa annetun kulman sinin.
    +SINH			= SINH				##	Palauttaa luvun hyperbolisen sinin.
    +SQRT			= NELIÖJUURI			##	Palauttaa positiivisen neliöjuuren.
    +SQRTPI			= NELIÖJUURI.PII		##	Palauttaa tulon (luku * pii) neliöjuuren.
    +SUBTOTAL		= VÄLISUMMA			##	Palauttaa luettelon tai tietokannan välisumman.
    +SUM			= SUMMA				##	Laskee yhteen annetut argumentit.
    +SUMIF			= SUMMA.JOS			##	Laskee ehdot täyttävien solujen summan.
    +SUMIFS			= SUMMA.JOS.JOUKKO		##	Laskee yhteen solualueen useita ehtoja vastaavat solut.
    +SUMPRODUCT		= TULOJEN.SUMMA			##	Palauttaa matriisin toisiaan vastaavien osien tulojen summan.
    +SUMSQ			= NELIÖSUMMA			##	Palauttaa argumenttien neliöiden summan.
    +SUMX2MY2		= NELIÖSUMMIEN.EROTUS		##	Palauttaa kahden matriisin toisiaan vastaavien arvojen laskettujen neliösummien erotuksen.
    +SUMX2PY2		= NELIÖSUMMIEN.SUMMA		##	Palauttaa kahden matriisin toisiaan vastaavien arvojen neliösummien summan.
    +SUMXMY2			= EROTUSTEN.NELIÖSUMMA		##	Palauttaa kahden matriisin toisiaan vastaavien arvojen erotusten neliösumman.
    +TAN			= TAN				##	Palauttaa luvun tangentin.
    +TANH			= TANH				##	Palauttaa luvun hyperbolisen tangentin.
    +TRUNC			= KATKAISE			##	Katkaisee luvun kokonaisluvuksi.
    +
    +
    +##
    +##	Statistical functions				Tilastolliset funktiot
    +##
    +AVEDEV			= KESKIPOIKKEAMA		##	Palauttaa hajontojen itseisarvojen keskiarvon.
    +AVERAGE			= KESKIARVO			##	Palauttaa argumenttien keskiarvon.
    +AVERAGEA		= KESKIARVOA			##	Palauttaa argumenttien, mukaan lukien lukujen, tekstin ja loogisten arvojen, keskiarvon.
    +AVERAGEIF		= KESKIARVO.JOS			##	Palauttaa alueen niiden solujen keskiarvon (aritmeettisen keskiarvon), jotka täyttävät annetut ehdot.
    +AVERAGEIFS		= KESKIARVO.JOS.JOUKKO		##	Palauttaa niiden solujen keskiarvon (aritmeettisen keskiarvon), jotka vastaavat useita ehtoja.
    +BETADIST		= BEETAJAKAUMA			##	Palauttaa kumulatiivisen beetajakaumafunktion arvon.
    +BETAINV			= BEETAJAKAUMA.KÄÄNT		##	Palauttaa määritetyn beetajakauman käänteisen kumulatiivisen jakaumafunktion arvon.
    +BINOMDIST		= BINOMIJAKAUMA			##	Palauttaa yksittäisen termin binomijakaumatodennäköisyyden.
    +CHIDIST			= CHIJAKAUMA			##	Palauttaa yksisuuntaisen chi-neliön jakauman todennäköisyyden.
    +CHIINV			= CHIJAKAUMA.KÄÄNT		##	Palauttaa yksisuuntaisen chi-neliön jakauman todennäköisyyden käänteisarvon.
    +CHITEST			= CHITESTI			##	Palauttaa riippumattomuustestin tuloksen.
    +CONFIDENCE		= LUOTTAMUSVÄLI			##	Palauttaa luottamusvälin populaation keskiarvolle.
    +CORREL			= KORRELAATIO			##	Palauttaa kahden arvojoukon korrelaatiokertoimen.
    +COUNT			= LASKE				##	Laskee argumenttiluettelossa olevien lukujen määrän.
    +COUNTA			= LASKE.A			##	Laskee argumenttiluettelossa olevien arvojen määrän.
    +COUNTBLANK		= LASKE.TYHJÄT			##	Laskee alueella olevien tyhjien solujen määrän.
    +COUNTIF			= LASKE.JOS			##	Laskee alueella olevien sellaisten solujen määrän, joiden sisältö vastaa annettuja ehtoja.
    +COUNTIFS		= LASKE.JOS.JOUKKO		##	Laskee alueella olevien sellaisten solujen määrän, joiden sisältö vastaa useita ehtoja.
    +COVAR			= KOVARIANSSI			##	Palauttaa kovarianssin, joka on keskiarvo havaintoaineiston kunkin pisteparin poikkeamien tuloista.
    +CRITBINOM		= BINOMIJAKAUMA.KRIT		##	Palauttaa pienimmän arvon, jossa binomijakauman kertymäfunktion arvo on pienempi tai yhtä suuri kuin vertailuarvo.
    +DEVSQ			= OIKAISTU.NELIÖSUMMA		##	Palauttaa keskipoikkeamien neliösumman.
    +EXPONDIST		= EKSPONENTIAALIJAKAUMA		##	Palauttaa eksponentiaalijakauman.
    +FDIST			= FJAKAUMA			##	Palauttaa F-todennäköisyysjakauman.
    +FINV			= FJAKAUMA.KÄÄNT		##	Palauttaa F-todennäköisyysjakauman käänteisfunktion.
    +FISHER			= FISHER			##	Palauttaa Fisher-muunnoksen.
    +FISHERINV		= FISHER.KÄÄNT			##	Palauttaa käänteisen Fisher-muunnoksen.
    +FORECAST		= ENNUSTE			##	Palauttaa lineaarisen trendin arvon.
    +FREQUENCY		= TAAJUUS			##	Palauttaa frekvenssijakautuman pystysuuntaisena matriisina.
    +FTEST			= FTESTI			##	Palauttaa F-testin tuloksen.
    +GAMMADIST		= GAMMAJAKAUMA			##	Palauttaa gammajakauman.
    +GAMMAINV		= GAMMAJAKAUMA.KÄÄNT		##	Palauttaa käänteisen gammajakauman kertymäfunktion.
    +GAMMALN			= GAMMALN			##	Palauttaa gammafunktion luonnollisen logaritmin G(x).
    +GEOMEAN			= KESKIARVO.GEOM		##	Palauttaa geometrisen keskiarvon.
    +GROWTH			= KASVU				##	Palauttaa eksponentiaalisen trendin arvon.
    +HARMEAN			= KESKIARVO.HARM		##	Palauttaa harmonisen keskiarvon.
    +HYPGEOMDIST		= HYPERGEOM.JAKAUMA		##	Palauttaa hypergeometrisen jakauman.
    +INTERCEPT		= LEIKKAUSPISTE			##	Palauttaa lineaarisen regressiosuoran leikkauspisteen.
    +KURT			= KURT				##	Palauttaa tietoalueen vinous-arvon eli huipukkuuden.
    +LARGE			= SUURI				##	Palauttaa tietojoukon k:nneksi suurimman arvon.
    +LINEST			= LINREGR			##	Palauttaa lineaarisen trendin parametrit.
    +LOGEST			= LOGREGR			##	Palauttaa eksponentiaalisen trendin parametrit.
    +LOGINV			= LOGNORM.JAKAUMA.KÄÄNT		##	Palauttaa lognormeeratun jakauman käänteisfunktion.
    +LOGNORMDIST		= LOGNORM.JAKAUMA		##	Palauttaa lognormaalisen jakauman kertymäfunktion.
    +MAX			= MAKS				##	Palauttaa suurimman arvon argumenttiluettelosta.
    +MAXA			= MAKSA				##	Palauttaa argumenttien, mukaan lukien lukujen, tekstin ja loogisten arvojen, suurimman arvon.
    +MEDIAN			= MEDIAANI			##	Palauttaa annettujen lukujen mediaanin.
    +MIN			= MIN				##	Palauttaa pienimmän arvon argumenttiluettelosta.
    +MINA			= MINA				##	Palauttaa argumenttien, mukaan lukien lukujen, tekstin ja loogisten arvojen, pienimmän arvon.
    +MODE			= MOODI				##	Palauttaa tietojoukossa useimmin esiintyvän arvon.
    +NEGBINOMDIST		= BINOMIJAKAUMA.NEG		##	Palauttaa negatiivisen binomijakauman.
    +NORMDIST		= NORM.JAKAUMA			##	Palauttaa normaalijakauman kertymäfunktion.
    +NORMINV			= NORM.JAKAUMA.KÄÄNT		##	Palauttaa käänteisen normaalijakauman kertymäfunktion.
    +NORMSDIST		= NORM.JAKAUMA.NORMIT		##	Palauttaa normitetun normaalijakauman kertymäfunktion.
    +NORMSINV		= NORM.JAKAUMA.NORMIT.KÄÄNT	##	Palauttaa normitetun normaalijakauman kertymäfunktion käänteisarvon.
    +PEARSON			= PEARSON			##	Palauttaa Pearsonin tulomomenttikorrelaatiokertoimen.
    +PERCENTILE		= PROSENTTIPISTE		##	Palauttaa alueen arvojen k:nnen prosenttipisteen.
    +PERCENTRANK		= PROSENTTIJÄRJESTYS		##	Palauttaa tietojoukon arvon prosentuaalisen järjestysluvun.
    +PERMUT			= PERMUTAATIO			##	Palauttaa mahdollisten permutaatioiden määrän annetulle objektien määrälle.
    +POISSON			= POISSON			##	Palauttaa Poissonin todennäköisyysjakauman.
    +PROB			= TODENNÄKÖISYYS		##	Palauttaa todennäköisyyden sille, että arvot ovat tietyltä väliltä.
    +QUARTILE		= NELJÄNNES			##	Palauttaa tietoalueen neljänneksen.
    +RANK			= ARVON.MUKAAN			##	Palauttaa luvun paikan lukuarvoluettelossa.
    +RSQ			= PEARSON.NELIÖ			##	Palauttaa Pearsonin tulomomenttikorrelaatiokertoimen neliön.
    +SKEW			= JAKAUMAN.VINOUS		##	Palauttaa jakauman vinouden.
    +SLOPE			= KULMAKERROIN			##	Palauttaa lineaarisen regressiosuoran kulmakertoimen.
    +SMALL			= PIENI				##	Palauttaa tietojoukon k:nneksi pienimmän arvon.
    +STANDARDIZE		= NORMITA			##	Palauttaa normitetun arvon.
    +STDEV			= KESKIHAJONTA			##	Laskee populaation keskihajonnan otoksen perusteella.
    +STDEVA			= KESKIHAJONTAA			##	Laskee populaation keskihajonnan otoksen perusteella, mukaan lukien luvut, tekstin ja loogiset arvot.
    +STDEVP			= KESKIHAJONTAP			##	Laskee normaalijakautuman koko populaation perusteella.
    +STDEVPA			= KESKIHAJONTAPA		##	Laskee populaation keskihajonnan koko populaation perusteella, mukaan lukien luvut, tekstin ja totuusarvot.
    +STEYX			= KESKIVIRHE			##	Palauttaa regression kutakin x-arvoa vastaavan ennustetun y-arvon keskivirheen.
    +TDIST			= TJAKAUMA			##	Palauttaa t-jakautuman.
    +TINV			= TJAKAUMA.KÄÄNT		##	Palauttaa käänteisen t-jakauman.
    +TREND			= SUUNTAUS			##	Palauttaa lineaarisen trendin arvoja.
    +TRIMMEAN		= KESKIARVO.TASATTU		##	Palauttaa tietojoukon tasatun keskiarvon.
    +TTEST			= TTESTI			##	Palauttaa t-testiin liittyvän todennäköisyyden.
    +VAR			= VAR				##	Arvioi populaation varianssia otoksen perusteella.
    +VARA			= VARA				##	Laskee populaation varianssin otoksen perusteella, mukaan lukien luvut, tekstin ja loogiset arvot.
    +VARP			= VARP				##	Laskee varianssin koko populaation perusteella.
    +VARPA			= VARPA				##	Laskee populaation varianssin koko populaation perusteella, mukaan lukien luvut, tekstin ja totuusarvot.
    +WEIBULL			= WEIBULL			##	Palauttaa Weibullin jakauman.
    +ZTEST			= ZTESTI			##	Palauttaa z-testin yksisuuntaisen todennäköisyysarvon.
    +
    +
    +##
    +##	Text functions					Tekstifunktiot
    +##
    +ASC			= ASC				##	Muuntaa merkkijonossa olevat englanninkieliset DBCS- tai katakana-merkit SBCS-merkeiksi.
    +BAHTTEXT		= BAHTTEKSTI			##	Muuntaa luvun tekstiksi ß (baht) -valuuttamuotoa käyttämällä.
    +CHAR			= MERKKI			##	Palauttaa koodin lukua vastaavan merkin.
    +CLEAN			= SIIVOA			##	Poistaa tekstistä kaikki tulostumattomat merkit.
    +CODE			= KOODI				##	Palauttaa tekstimerkkijonon ensimmäisen merkin numerokoodin.
    +CONCATENATE		= KETJUTA			##	Yhdistää useat merkkijonot yhdeksi merkkijonoksi.
    +DOLLAR			= VALUUTTA			##	Muuntaa luvun tekstiksi $ (dollari) -valuuttamuotoa käyttämällä.
    +EXACT			= VERTAA			##	Tarkistaa, ovatko kaksi tekstiarvoa samanlaiset.
    +FIND			= ETSI				##	Etsii tekstiarvon toisen tekstin sisältä (tunnistaa isot ja pienet kirjaimet).
    +FINDB			= ETSIB				##	Etsii tekstiarvon toisen tekstin sisältä (tunnistaa isot ja pienet kirjaimet).
    +FIXED			= KIINTEÄ			##	Muotoilee luvun tekstiksi, jossa on kiinteä määrä desimaaleja.
    +JIS			= JIS				##	Muuntaa merkkijonossa olevat englanninkieliset SBCS- tai katakana-merkit DBCS-merkeiksi.
    +LEFT			= VASEN				##	Palauttaa tekstiarvon vasemmanpuoliset merkit.
    +LEFTB			= VASENB			##	Palauttaa tekstiarvon vasemmanpuoliset merkit.
    +LEN			= PITUUS			##	Palauttaa tekstimerkkijonon merkkien määrän.
    +LENB			= PITUUSB			##	Palauttaa tekstimerkkijonon merkkien määrän.
    +LOWER			= PIENET			##	Muuntaa tekstin pieniksi kirjaimiksi.
    +MID			= POIMI.TEKSTI			##	Palauttaa määritetyn määrän merkkejä merkkijonosta alkaen annetusta kohdasta.
    +MIDB			= POIMI.TEKSTIB			##	Palauttaa määritetyn määrän merkkejä merkkijonosta alkaen annetusta kohdasta.
    +PHONETIC		= FONEETTINEN			##	Hakee foneettiset (furigana) merkit merkkijonosta.
    +PROPER			= ERISNIMI			##	Muuttaa merkkijonon kunkin sanan ensimmäisen kirjaimen isoksi.
    +REPLACE			= KORVAA			##	Korvaa tekstissä olevat merkit.
    +REPLACEB		= KORVAAB			##	Korvaa tekstissä olevat merkit.
    +REPT			= TOISTA			##	Toistaa tekstin annetun määrän kertoja.
    +RIGHT			= OIKEA				##	Palauttaa tekstiarvon oikeanpuoliset merkit.
    +RIGHTB			= OIKEAB			##	Palauttaa tekstiarvon oikeanpuoliset merkit.
    +SEARCH			= KÄY.LÄPI			##	Etsii tekstiarvon toisen tekstin sisältä (isot ja pienet kirjaimet tulkitaan samoiksi merkeiksi).
    +SEARCHB			= KÄY.LÄPIB			##	Etsii tekstiarvon toisen tekstin sisältä (isot ja pienet kirjaimet tulkitaan samoiksi merkeiksi).
    +SUBSTITUTE		= VAIHDA			##	Korvaa merkkijonossa olevan tekstin toisella.
    +T			= T				##	Muuntaa argumentit tekstiksi.
    +TEXT			= TEKSTI			##	Muotoilee luvun ja muuntaa sen tekstiksi.
    +TRIM			= POISTA.VÄLIT			##	Poistaa välilyönnit tekstistä.
    +UPPER			= ISOT				##	Muuntaa tekstin isoiksi kirjaimiksi.
    +VALUE			= ARVO				##	Muuntaa tekstiargumentin luvuksi.
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fr/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fr/config
    new file mode 100644
    index 00000000000..81895986f49
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fr/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= €
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #NUL!
    +DIV0	= #DIV/0!
    +VALUE	= #VALEUR!
    +REF	= #REF!
    +NAME	= #NOM?
    +NUM	= #NOMBRE!
    +NA	= #N/A
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fr/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fr/functions
    new file mode 100644
    index 00000000000..7f40d5fdeb0
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/fr/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions			Fonctions de complément et d’automatisation
    +##
    +GETPIVOTDATA		= LIREDONNEESTABCROISDYNAMIQUE	##	Renvoie les données stockées dans un rapport de tableau croisé dynamique.
    +
    +
    +##
    +##	Cube functions					Fonctions Cube
    +##
    +CUBEKPIMEMBER		= MEMBREKPICUBE			##	Renvoie un nom, une propriété et une mesure d’indicateur de performance clé et affiche le nom et la propriété dans la cellule. Un indicateur de performance clé est une mesure quantifiable, telle que la marge bénéficiaire brute mensuelle ou la rotation trimestrielle du personnel, utilisée pour évaluer les performances d’une entreprise.
    +CUBEMEMBER		= MEMBRECUBE			##	Renvoie un membre ou un uplet dans une hiérarchie de cubes. Utilisez cette fonction pour valider l’existence du membre ou de l’uplet dans le cube.
    +CUBEMEMBERPROPERTY	= PROPRIETEMEMBRECUBE		##	Renvoie la valeur d’une propriété de membre du cube. Utilisez cette fonction pour valider l’existence d’un nom de membre dans le cube et pour renvoyer la propriété spécifiée pour ce membre.
    +CUBERANKEDMEMBER	= RANGMEMBRECUBE		##	Renvoie le nième membre ou le membre placé à un certain rang dans un ensemble. Utilisez cette fonction pour renvoyer un ou plusieurs éléments d’un ensemble, tels que les meilleurs vendeurs ou les 10 meilleurs étudiants.
    +CUBESET			= JEUCUBE			##	Définit un ensemble calculé de membres ou d’uplets en envoyant une expression définie au cube sur le serveur qui crée l’ensemble et le renvoie à Microsoft Office Excel.
    +CUBESETCOUNT		= NBJEUCUBE			##	Renvoie le nombre d’éléments dans un jeu.
    +CUBEVALUE		= VALEURCUBE			##	Renvoie une valeur d’agrégation issue d’un cube.
    +
    +
    +##
    +##	Database functions				Fonctions de base de données
    +##
    +DAVERAGE		= BDMOYENNE			##	Renvoie la moyenne des entrées de base de données sélectionnées.
    +DCOUNT			= BCOMPTE			##	Compte le nombre de cellules d’une base de données qui contiennent des nombres.
    +DCOUNTA			= BDNBVAL			##	Compte les cellules non vides d’une base de données.
    +DGET			= BDLIRE			##	Extrait d’une base de données un enregistrement unique répondant aux critères spécifiés.
    +DMAX			= BDMAX				##	Renvoie la valeur maximale des entrées de base de données sélectionnées.
    +DMIN			= BDMIN				##	Renvoie la valeur minimale des entrées de base de données sélectionnées.
    +DPRODUCT		= BDPRODUIT			##	Multiplie les valeurs d’un champ particulier des enregistrements d’une base de données, qui répondent aux critères spécifiés.
    +DSTDEV			= BDECARTYPE			##	Calcule l’écart type pour un échantillon d’entrées de base de données sélectionnées.
    +DSTDEVP			= BDECARTYPEP			##	Calcule l’écart type pour l’ensemble d’une population d’entrées de base de données sélectionnées.
    +DSUM			= BDSOMME			##	Ajoute les nombres dans la colonne de champ des enregistrements de la base de données, qui répondent aux critères.
    +DVAR			= BDVAR				##	Calcule la variance pour un échantillon d’entrées de base de données sélectionnées.
    +DVARP			= BDVARP			##	Calcule la variance pour l’ensemble d’une population d’entrées de base de données sélectionnées.
    +
    +
    +##
    +##	Date and time functions				Fonctions de date et d’heure
    +##
    +DATE			= DATE				##	Renvoie le numéro de série d’une date précise.
    +DATEVALUE		= DATEVAL			##	Convertit une date représentée sous forme de texte en numéro de série.
    +DAY			= JOUR				##	Convertit un numéro de série en jour du mois.
    +DAYS360			= JOURS360			##	Calcule le nombre de jours qui séparent deux dates sur la base d’une année de 360 jours.
    +EDATE			= MOIS.DECALER			##	Renvoie le numéro séquentiel de la date qui représente une date spécifiée (l’argument date_départ), corrigée en plus ou en moins du nombre de mois indiqué.
    +EOMONTH			= FIN.MOIS			##	Renvoie le numéro séquentiel de la date du dernier jour du mois précédant ou suivant la date_départ du nombre de mois indiqué.
    +HOUR			= HEURE				##	Convertit un numéro de série en heure.
    +MINUTE			= MINUTE			##	Convertit un numéro de série en minute.
    +MONTH			= MOIS				##	Convertit un numéro de série en mois.
    +NETWORKDAYS		= NB.JOURS.OUVRES		##	Renvoie le nombre de jours ouvrés entiers compris entre deux dates.
    +NOW			= MAINTENANT			##	Renvoie le numéro de série de la date et de l’heure du jour.
    +SECOND			= SECONDE			##	Convertit un numéro de série en seconde.
    +TIME			= TEMPS				##	Renvoie le numéro de série d’une heure précise.
    +TIMEVALUE		= TEMPSVAL			##	Convertit une date représentée sous forme de texte en numéro de série.
    +TODAY			= AUJOURDHUI			##	Renvoie le numéro de série de la date du jour.
    +WEEKDAY			= JOURSEM			##	Convertit un numéro de série en jour de la semaine.
    +WEEKNUM			= NO.SEMAINE			##	Convertit un numéro de série en un numéro représentant l’ordre de la semaine dans l’année.
    +WORKDAY			= SERIE.JOUR.OUVRE		##	Renvoie le numéro de série de la date avant ou après le nombre de jours ouvrés spécifiés.
    +YEAR			= ANNEE				##	Convertit un numéro de série en année.
    +YEARFRAC		= FRACTION.ANNEE		##	Renvoie la fraction de l’année représentant le nombre de jours entre la date de début et la date de fin.
    +
    +
    +##
    +##	Engineering functions				Fonctions d’ingénierie
    +##
    +BESSELI			= BESSELI			##	Renvoie la fonction Bessel modifiée In(x).
    +BESSELJ			= BESSELJ			##	Renvoie la fonction Bessel Jn(x).
    +BESSELK			= BESSELK			##	Renvoie la fonction Bessel modifiée Kn(x).
    +BESSELY			= BESSELY			##	Renvoie la fonction Bessel Yn(x).
    +BIN2DEC			= BINDEC			##	Convertit un nombre binaire en nombre décimal.
    +BIN2HEX			= BINHEX			##	Convertit un nombre binaire en nombre hexadécimal.
    +BIN2OCT			= BINOCT			##	Convertit un nombre binaire en nombre octal.
    +COMPLEX			= COMPLEXE			##	Convertit des coefficients réel et imaginaire en un nombre complexe.
    +CONVERT			= CONVERT			##	Convertit un nombre d’une unité de mesure à une autre.
    +DEC2BIN			= DECBIN			##	Convertit un nombre décimal en nombre binaire.
    +DEC2HEX			= DECHEX			##	Convertit un nombre décimal en nombre hexadécimal.
    +DEC2OCT			= DECOCT			##	Convertit un nombre décimal en nombre octal.
    +DELTA			= DELTA				##	Teste l’égalité de deux nombres.
    +ERF			= ERF				##	Renvoie la valeur de la fonction d’erreur.
    +ERFC			= ERFC				##	Renvoie la valeur de la fonction d’erreur complémentaire.
    +GESTEP			= SUP.SEUIL			##	Teste si un nombre est supérieur à une valeur de seuil.
    +HEX2BIN			= HEXBIN			##	Convertit un nombre hexadécimal en nombre binaire.
    +HEX2DEC			= HEXDEC			##	Convertit un nombre hexadécimal en nombre décimal.
    +HEX2OCT			= HEXOCT			##	Convertit un nombre hexadécimal en nombre octal.
    +IMABS			= COMPLEXE.MODULE		##	Renvoie la valeur absolue (module) d’un nombre complexe.
    +IMAGINARY		= COMPLEXE.IMAGINAIRE		##	Renvoie le coefficient imaginaire d’un nombre complexe.
    +IMARGUMENT		= COMPLEXE.ARGUMENT		##	Renvoie l’argument thêta, un angle exprimé en radians.
    +IMCONJUGATE		= COMPLEXE.CONJUGUE		##	Renvoie le nombre complexe conjugué d’un nombre complexe.
    +IMCOS			= IMCOS				##	Renvoie le cosinus d’un nombre complexe.
    +IMDIV			= COMPLEXE.DIV			##	Renvoie le quotient de deux nombres complexes.
    +IMEXP			= COMPLEXE.EXP			##	Renvoie la fonction exponentielle d’un nombre complexe.
    +IMLN			= COMPLEXE.LN			##	Renvoie le logarithme népérien d’un nombre complexe.
    +IMLOG10			= COMPLEXE.LOG10		##	Calcule le logarithme en base 10 d’un nombre complexe.
    +IMLOG2			= COMPLEXE.LOG2			##	Calcule le logarithme en base 2 d’un nombre complexe.
    +IMPOWER			= COMPLEXE.PUISSANCE		##	Renvoie un nombre complexe élevé à une puissance entière.
    +IMPRODUCT		= COMPLEXE.PRODUIT		##	Renvoie le produit de plusieurs nombres complexes.
    +IMREAL			= COMPLEXE.REEL			##	Renvoie le coefficient réel d’un nombre complexe.
    +IMSIN			= COMPLEXE.SIN			##	Renvoie le sinus d’un nombre complexe.
    +IMSQRT			= COMPLEXE.RACINE		##	Renvoie la racine carrée d’un nombre complexe.
    +IMSUB			= COMPLEXE.DIFFERENCE		##	Renvoie la différence entre deux nombres complexes.
    +IMSUM			= COMPLEXE.SOMME		##	Renvoie la somme de plusieurs nombres complexes.
    +OCT2BIN			= OCTBIN			##	Convertit un nombre octal en nombre binaire.
    +OCT2DEC			= OCTDEC			##	Convertit un nombre octal en nombre décimal.
    +OCT2HEX			= OCTHEX			##	Convertit un nombre octal en nombre hexadécimal.
    +
    +
    +##
    +##	Financial functions				Fonctions financières
    +##
    +ACCRINT			= INTERET.ACC			##	Renvoie l’intérêt couru non échu d’un titre dont l’intérêt est perçu périodiquement.
    +ACCRINTM		= INTERET.ACC.MAT		##	Renvoie l’intérêt couru non échu d’un titre dont l’intérêt est perçu à l’échéance.
    +AMORDEGRC		= AMORDEGRC			##	Renvoie l’amortissement correspondant à chaque période comptable en utilisant un coefficient d’amortissement.
    +AMORLINC		= AMORLINC			##	Renvoie l’amortissement d’un bien à la fin d’une période fiscale donnée.
    +COUPDAYBS		= NB.JOURS.COUPON.PREC		##	Renvoie le nombre de jours entre le début de la période de coupon et la date de liquidation.
    +COUPDAYS		= NB.JOURS.COUPONS		##	Renvoie le nombre de jours pour la période du coupon contenant la date de liquidation.
    +COUPDAYSNC		= NB.JOURS.COUPON.SUIV		##	Renvoie le nombre de jours entre la date de liquidation et la date du coupon suivant la date de liquidation.
    +COUPNCD			= DATE.COUPON.SUIV		##	Renvoie la première date de coupon ultérieure à la date de règlement.
    +COUPNUM			= NB.COUPONS			##	Renvoie le nombre de coupons dus entre la date de règlement et la date d’échéance.
    +COUPPCD			= DATE.COUPON.PREC		##	Renvoie la date de coupon précédant la date de règlement.
    +CUMIPMT			= CUMUL.INTER			##	Renvoie l’intérêt cumulé payé sur un emprunt entre deux périodes.
    +CUMPRINC		= CUMUL.PRINCPER		##	Renvoie le montant cumulé des remboursements du capital d’un emprunt effectués entre deux périodes.
    +DB			= DB				##	Renvoie l’amortissement d’un bien pour une période spécifiée en utilisant la méthode de l’amortissement dégressif à taux fixe.
    +DDB			= DDB				##	Renvoie l’amortissement d’un bien pour toute période spécifiée, en utilisant la méthode de l’amortissement dégressif à taux double ou selon un coefficient à spécifier.
    +DISC			= TAUX.ESCOMPTE			##	Calcule le taux d’escompte d’une transaction.
    +DOLLARDE		= PRIX.DEC			##	Convertit un prix en euros, exprimé sous forme de fraction, en un prix en euros exprimé sous forme de nombre décimal.
    +DOLLARFR		= PRIX.FRAC			##	Convertit un prix en euros, exprimé sous forme de nombre décimal, en un prix en euros exprimé sous forme de fraction.
    +DURATION		= DUREE				##	Renvoie la durée, en années, d’un titre dont l’intérêt est perçu périodiquement.
    +EFFECT			= TAUX.EFFECTIF			##	Renvoie le taux d’intérêt annuel effectif.
    +FV			= VC				##	Renvoie la valeur future d’un investissement.
    +FVSCHEDULE		= VC.PAIEMENTS			##	Calcule la valeur future d’un investissement en appliquant une série de taux d’intérêt composites.
    +INTRATE			= TAUX.INTERET			##	Affiche le taux d’intérêt d’un titre totalement investi.
    +IPMT			= INTPER			##	Calcule le montant des intérêts d’un investissement pour une période donnée.
    +IRR			= TRI				##	Calcule le taux de rentabilité interne d’un investissement pour une succession de trésoreries.
    +ISPMT			= ISPMT				##	Calcule le montant des intérêts d’un investissement pour une période donnée.
    +MDURATION		= DUREE.MODIFIEE		##	Renvoie la durée de Macauley modifiée pour un titre ayant une valeur nominale hypothétique de 100_euros.
    +MIRR			= TRIM				##	Calcule le taux de rentabilité interne lorsque les paiements positifs et négatifs sont financés à des taux différents.
    +NOMINAL			= TAUX.NOMINAL			##	Calcule le taux d’intérêt nominal annuel.
    +NPER			= NPM				##	Renvoie le nombre de versements nécessaires pour rembourser un emprunt.
    +NPV			= VAN				##	Calcule la valeur actuelle nette d’un investissement basé sur une série de décaissements et un taux d’escompte.
    +ODDFPRICE		= PRIX.PCOUPON.IRREG		##	Renvoie le prix par tranche de valeur nominale de 100 euros d’un titre dont la première période de coupon est irrégulière.
    +ODDFYIELD		= REND.PCOUPON.IRREG		##	Renvoie le taux de rendement d’un titre dont la première période de coupon est irrégulière.
    +ODDLPRICE		= PRIX.DCOUPON.IRREG		##	Renvoie le prix par tranche de valeur nominale de 100 euros d’un titre dont la première période de coupon est irrégulière.
    +ODDLYIELD		= REND.DCOUPON.IRREG		##	Renvoie le taux de rendement d’un titre dont la dernière période de coupon est irrégulière.
    +PMT			= VPM				##	Calcule le paiement périodique d’un investissement donné.
    +PPMT			= PRINCPER			##	Calcule, pour une période donnée, la part de remboursement du principal d’un investissement.
    +PRICE			= PRIX.TITRE			##	Renvoie le prix d’un titre rapportant des intérêts périodiques, pour une valeur nominale de 100 euros.
    +PRICEDISC		= VALEUR.ENCAISSEMENT		##	Renvoie la valeur d’encaissement d’un escompte commercial, pour une valeur nominale de 100 euros.
    +PRICEMAT		= PRIX.TITRE.ECHEANCE		##	Renvoie le prix d’un titre dont la valeur nominale est 100 euros et qui rapporte des intérêts à l’échéance.
    +PV			= PV				##	Calcule la valeur actuelle d’un investissement.
    +RATE			= TAUX				##	Calcule le taux d’intérêt par période pour une annuité.
    +RECEIVED		= VALEUR.NOMINALE		##	Renvoie la valeur nominale à échéance d’un effet de commerce.
    +SLN			= AMORLIN			##	Calcule l’amortissement linéaire d’un bien pour une période donnée.
    +SYD			= SYD				##	Calcule l’amortissement d’un bien pour une période donnée sur la base de la méthode américaine Sum-of-Years Digits (amortissement dégressif à taux décroissant appliqué à une valeur constante).
    +TBILLEQ			= TAUX.ESCOMPTE.R		##	Renvoie le taux d’escompte rationnel d’un bon du Trésor.
    +TBILLPRICE		= PRIX.BON.TRESOR		##	Renvoie le prix d’un bon du Trésor d’une valeur nominale de 100 euros.
    +TBILLYIELD		= RENDEMENT.BON.TRESOR		##	Calcule le taux de rendement d’un bon du Trésor.
    +VDB			= VDB				##	Renvoie l’amortissement d’un bien pour une période spécifiée ou partielle en utilisant une méthode de l’amortissement dégressif à taux fixe.
    +XIRR			= TRI.PAIEMENTS			##	Calcule le taux de rentabilité interne d’un ensemble de paiements non périodiques.
    +XNPV			= VAN.PAIEMENTS			##	Renvoie la valeur actuelle nette d’un ensemble de paiements non périodiques.
    +YIELD			= RENDEMENT.TITRE		##	Calcule le rendement d’un titre rapportant des intérêts périodiquement.
    +YIELDDISC		= RENDEMENT.SIMPLE		##	Calcule le taux de rendement d’un emprunt à intérêt simple (par exemple, un bon du Trésor).
    +YIELDMAT		= RENDEMENT.TITRE.ECHEANCE	##	Renvoie le rendement annuel d’un titre qui rapporte des intérêts à l’échéance.
    +
    +
    +##
    +##	Information functions				Fonctions d’information
    +##
    +CELL			= CELLULE			##	Renvoie des informations sur la mise en forme, l’emplacement et le contenu d’une cellule.
    +ERROR.TYPE		= TYPE.ERREUR			##	Renvoie un nombre correspondant à un type d’erreur.
    +INFO			= INFORMATIONS			##	Renvoie des informations sur l’environnement d’exploitation actuel.
    +ISBLANK			= ESTVIDE			##	Renvoie VRAI si l’argument valeur est vide.
    +ISERR			= ESTERR			##	Renvoie VRAI si l’argument valeur fait référence à une valeur d’erreur, sauf #N/A.
    +ISERROR			= ESTERREUR			##	Renvoie VRAI si l’argument valeur fait référence à une valeur d’erreur.
    +ISEVEN			= EST.PAIR			##	Renvoie VRAI si le chiffre est pair.
    +ISLOGICAL		= ESTLOGIQUE			##	Renvoie VRAI si l’argument valeur fait référence à une valeur logique.
    +ISNA			= ESTNA				##	Renvoie VRAI si l’argument valeur fait référence à la valeur d’erreur #N/A.
    +ISNONTEXT		= ESTNONTEXTE			##	Renvoie VRAI si l’argument valeur ne se présente pas sous forme de texte.
    +ISNUMBER		= ESTNUM			##	Renvoie VRAI si l’argument valeur représente un nombre.
    +ISODD			= EST.IMPAIR			##	Renvoie VRAI si le chiffre est impair.
    +ISREF			= ESTREF			##	Renvoie VRAI si l’argument valeur est une référence.
    +ISTEXT			= ESTTEXTE			##	Renvoie VRAI si l’argument valeur se présente sous forme de texte.
    +N			= N				##	Renvoie une valeur convertie en nombre.
    +NA			= NA				##	Renvoie la valeur d’erreur #N/A.
    +TYPE			= TYPE				##	Renvoie un nombre indiquant le type de données d’une valeur.
    +
    +
    +##
    +##	Logical functions				Fonctions logiques
    +##
    +AND			= ET				##	Renvoie VRAI si tous ses arguments sont VRAI.
    +FALSE			= FAUX				##	Renvoie la valeur logique FAUX.
    +IF			= SI				##	Spécifie un test logique à effectuer.
    +IFERROR			= SIERREUR			##	Renvoie une valeur que vous spécifiez si une formule génère une erreur ; sinon, elle renvoie le résultat de la formule.
    +NOT			= NON				##	Inverse la logique de cet argument.
    +OR			= OU				##	Renvoie VRAI si un des arguments est VRAI.
    +TRUE			= VRAI				##	Renvoie la valeur logique VRAI.
    +
    +
    +##
    +##	Lookup and reference functions			Fonctions de recherche et de référence
    +##
    +ADDRESS			= ADRESSE			##	Renvoie une référence sous forme de texte à une seule cellule d’une feuille de calcul.
    +AREAS			= ZONES				##	Renvoie le nombre de zones dans une référence.
    +CHOOSE			= CHOISIR			##	Choisit une valeur dans une liste.
    +COLUMN			= COLONNE			##	Renvoie le numéro de colonne d’une référence.
    +COLUMNS			= COLONNES			##	Renvoie le nombre de colonnes dans une référence.
    +HLOOKUP			= RECHERCHEH			##	Effectue une recherche dans la première ligne d’une matrice et renvoie la valeur de la cellule indiquée.
    +HYPERLINK		= LIEN_HYPERTEXTE		##	Crée un raccourci ou un renvoi qui ouvre un document stocké sur un serveur réseau, sur un réseau Intranet ou sur Internet.
    +INDEX			= INDEX				##	Utilise un index pour choisir une valeur provenant d’une référence ou d’une matrice.
    +INDIRECT		= INDIRECT			##	Renvoie une référence indiquée par une valeur de texte.
    +LOOKUP			= RECHERCHE			##	Recherche des valeurs dans un vecteur ou une matrice.
    +MATCH			= EQUIV				##	Recherche des valeurs dans une référence ou une matrice.
    +OFFSET			= DECALER			##	Renvoie une référence décalée par rapport à une référence donnée.
    +ROW			= LIGNE				##	Renvoie le numéro de ligne d’une référence.
    +ROWS			= LIGNES			##	Renvoie le nombre de lignes dans une référence.
    +RTD			= RTD				##	Extrait les données en temps réel à partir d’un programme prenant en charge l’automation COM (Automation : utilisation des objets d'une application à partir d'une autre application ou d'un autre outil de développement. Autrefois appelée OLE Automation, Automation est une norme industrielle et une fonctionnalité du modèle d'objet COM (Component Object Model).).
    +TRANSPOSE		= TRANSPOSE			##	Renvoie la transposition d’une matrice.
    +VLOOKUP			= RECHERCHEV			##	Effectue une recherche dans la première colonne d’une matrice et se déplace sur la ligne pour renvoyer la valeur d’une cellule.
    +
    +
    +##
    +##	Math and trigonometry functions			Fonctions mathématiques et trigonométriques
    +##
    +ABS			= ABS				##	Renvoie la valeur absolue d’un nombre.
    +ACOS			= ACOS				##	Renvoie l’arccosinus d’un nombre.
    +ACOSH			= ACOSH				##	Renvoie le cosinus hyperbolique inverse d’un nombre.
    +ASIN			= ASIN				##	Renvoie l’arcsinus d’un nombre.
    +ASINH			= ASINH				##	Renvoie le sinus hyperbolique inverse d’un nombre.
    +ATAN			= ATAN				##	Renvoie l’arctangente d’un nombre.
    +ATAN2			= ATAN2				##	Renvoie l’arctangente des coordonnées x et y.
    +ATANH			= ATANH				##	Renvoie la tangente hyperbolique inverse d’un nombre.
    +CEILING			= PLAFOND			##	Arrondit un nombre au nombre entier le plus proche ou au multiple le plus proche de l’argument précision en s’éloignant de zéro.
    +COMBIN			= COMBIN			##	Renvoie le nombre de combinaisons que l’on peut former avec un nombre donné d’objets.
    +COS			= COS				##	Renvoie le cosinus d’un nombre.
    +COSH			= COSH				##	Renvoie le cosinus hyperbolique d’un nombre.
    +DEGREES			= DEGRES			##	Convertit des radians en degrés.
    +EVEN			= PAIR				##	Arrondit un nombre au nombre entier pair le plus proche en s’éloignant de zéro.
    +EXP			= EXP				##	Renvoie e élevé à la puissance d’un nombre donné.
    +FACT			= FACT				##	Renvoie la factorielle d’un nombre.
    +FACTDOUBLE		= FACTDOUBLE			##	Renvoie la factorielle double d’un nombre.
    +FLOOR			= PLANCHER			##	Arrondit un nombre en tendant vers 0 (zéro).
    +GCD			= PGCD				##	Renvoie le plus grand commun diviseur.
    +INT			= ENT				##	Arrondit un nombre à l’entier immédiatement inférieur.
    +LCM			= PPCM				##	Renvoie le plus petit commun multiple.
    +LN			= LN				##	Renvoie le logarithme népérien d’un nombre.
    +LOG			= LOG				##	Renvoie le logarithme d’un nombre dans la base spécifiée.
    +LOG10			= LOG10				##	Calcule le logarithme en base 10 d’un nombre.
    +MDETERM			= DETERMAT			##	Renvoie le déterminant d’une matrice.
    +MINVERSE		= INVERSEMAT			##	Renvoie la matrice inverse d’une matrice.
    +MMULT			= PRODUITMAT			##	Renvoie le produit de deux matrices.
    +MOD			= MOD				##	Renvoie le reste d’une division.
    +MROUND			= ARRONDI.AU.MULTIPLE		##	Donne l’arrondi d’un nombre au multiple spécifié.
    +MULTINOMIAL		= MULTINOMIALE			##	Calcule la multinomiale d’un ensemble de nombres.
    +ODD			= IMPAIR			##	Renvoie le nombre, arrondi à la valeur du nombre entier impair le plus proche en s’éloignant de zéro.
    +PI			= PI				##	Renvoie la valeur de pi.
    +POWER			= PUISSANCE			##	Renvoie la valeur du nombre élevé à une puissance.
    +PRODUCT			= PRODUIT			##	Multiplie ses arguments.
    +QUOTIENT		= QUOTIENT			##	Renvoie la partie entière du résultat d’une division.
    +RADIANS			= RADIANS			##	Convertit des degrés en radians.
    +RAND			= ALEA				##	Renvoie un nombre aléatoire compris entre 0 et 1.
    +RANDBETWEEN		= ALEA.ENTRE.BORNES		##	Renvoie un nombre aléatoire entre les nombres que vous spécifiez.
    +ROMAN			= ROMAIN			##	Convertit des chiffres arabes en chiffres romains, sous forme de texte.
    +ROUND			= ARRONDI			##	Arrondit un nombre au nombre de chiffres indiqué.
    +ROUNDDOWN		= ARRONDI.INF			##	Arrondit un nombre en tendant vers 0 (zéro).
    +ROUNDUP			= ARRONDI.SUP			##	Arrondit un nombre à l’entier supérieur, en s’éloignant de zéro.
    +SERIESSUM		= SOMME.SERIES			##	Renvoie la somme d’une série géométrique en s’appuyant sur la formule suivante :
    +SIGN			= SIGNE				##	Renvoie le signe d’un nombre.
    +SIN			= SIN				##	Renvoie le sinus d’un angle donné.
    +SINH			= SINH				##	Renvoie le sinus hyperbolique d’un nombre.
    +SQRT			= RACINE			##	Renvoie la racine carrée d’un nombre.
    +SQRTPI			= RACINE.PI			##	Renvoie la racine carrée de (nombre * pi).
    +SUBTOTAL		= SOUS.TOTAL			##	Renvoie un sous-total dans une liste ou une base de données.
    +SUM			= SOMME				##	Calcule la somme de ses arguments.
    +SUMIF			= SOMME.SI			##	Additionne les cellules spécifiées si elles répondent à un critère donné.
    +SUMIFS			= SOMME.SI.ENS			##	Ajoute les cellules d’une plage qui répondent à plusieurs critères.
    +SUMPRODUCT		= SOMMEPROD			##	Multiplie les valeurs correspondantes des matrices spécifiées et calcule la somme de ces produits.
    +SUMSQ			= SOMME.CARRES			##	Renvoie la somme des carrés des arguments.
    +SUMX2MY2		= SOMME.X2MY2			##	Renvoie la somme de la différence des carrés des valeurs correspondantes de deux matrices.
    +SUMX2PY2		= SOMME.X2PY2			##	Renvoie la somme de la somme des carrés des valeurs correspondantes de deux matrices.
    +SUMXMY2			= SOMME.XMY2			##	Renvoie la somme des carrés des différences entre les valeurs correspondantes de deux matrices.
    +TAN			= TAN				##	Renvoie la tangente d’un nombre.
    +TANH			= TANH				##	Renvoie la tangente hyperbolique d’un nombre.
    +TRUNC			= TRONQUE			##	Renvoie la partie entière d’un nombre.
    +
    +
    +##
    +##	Statistical functions				Fonctions statistiques
    +##
    +AVEDEV			= ECART.MOYEN			##	Renvoie la moyenne des écarts absolus observés dans la moyenne des points de données.
    +AVERAGE			= MOYENNE			##	Renvoie la moyenne de ses arguments.
    +AVERAGEA		= AVERAGEA			##	Renvoie la moyenne de ses arguments, nombres, texte et valeurs logiques inclus.
    +AVERAGEIF		= MOYENNE.SI			##	Renvoie la moyenne (arithmétique) de toutes les cellules d’une plage qui répondent à des critères donnés.
    +AVERAGEIFS		= MOYENNE.SI.ENS		##	Renvoie la moyenne (arithmétique) de toutes les cellules qui répondent à plusieurs critères.
    +BETADIST		= LOI.BETA			##	Renvoie la fonction de distribution cumulée.
    +BETAINV			= BETA.INVERSE			##	Renvoie l’inverse de la fonction de distribution cumulée pour une distribution bêta spécifiée.
    +BINOMDIST		= LOI.BINOMIALE			##	Renvoie la probabilité d’une variable aléatoire discrète suivant la loi binomiale.
    +CHIDIST			= LOI.KHIDEUX			##	Renvoie la probabilité unilatérale de la distribution khi-deux.
    +CHIINV			= KHIDEUX.INVERSE		##	Renvoie l’inverse de la probabilité unilatérale de la distribution khi-deux.
    +CHITEST			= TEST.KHIDEUX			##	Renvoie le test d’indépendance.
    +CONFIDENCE		= INTERVALLE.CONFIANCE		##	Renvoie l’intervalle de confiance pour une moyenne de population.
    +CORREL			= COEFFICIENT.CORRELATION	##	Renvoie le coefficient de corrélation entre deux séries de données.
    +COUNT			= NB				##	Détermine les nombres compris dans la liste des arguments.
    +COUNTA			= NBVAL				##	Détermine le nombre de valeurs comprises dans la liste des arguments.
    +COUNTBLANK		= NB.VIDE			##	Compte le nombre de cellules vides dans une plage.
    +COUNTIF			= NB.SI				##	Compte le nombre de cellules qui répondent à un critère donné dans une plage.
    +COUNTIFS		= NB.SI.ENS			##	Compte le nombre de cellules à l’intérieur d’une plage qui répondent à plusieurs critères.
    +COVAR			= COVARIANCE			##	Renvoie la covariance, moyenne des produits des écarts pour chaque série d’observations.
    +CRITBINOM		= CRITERE.LOI.BINOMIALE		##	Renvoie la plus petite valeur pour laquelle la distribution binomiale cumulée est inférieure ou égale à une valeur de critère.
    +DEVSQ			= SOMME.CARRES.ECARTS		##	Renvoie la somme des carrés des écarts.
    +EXPONDIST		= LOI.EXPONENTIELLE		##	Renvoie la distribution exponentielle.
    +FDIST			= LOI.F				##	Renvoie la distribution de probabilité F.
    +FINV			= INVERSE.LOI.F			##	Renvoie l’inverse de la distribution de probabilité F.
    +FISHER			= FISHER			##	Renvoie la transformation de Fisher.
    +FISHERINV		= FISHER.INVERSE		##	Renvoie l’inverse de la transformation de Fisher.
    +FORECAST		= PREVISION			##	Calcule une valeur par rapport à une tendance linéaire.
    +FREQUENCY		= FREQUENCE			##	Calcule la fréquence d’apparition des valeurs dans une plage de valeurs, puis renvoie des nombres sous forme de matrice verticale.
    +FTEST			= TEST.F			##	Renvoie le résultat d’un test F.
    +GAMMADIST		= LOI.GAMMA			##	Renvoie la probabilité d’une variable aléatoire suivant une loi Gamma.
    +GAMMAINV		= LOI.GAMMA.INVERSE		##	Renvoie, pour une probabilité donnée, la valeur d’une variable aléatoire suivant une loi Gamma.
    +GAMMALN			= LNGAMMA			##	Renvoie le logarithme népérien de la fonction Gamma, G(x)
    +GEOMEAN			= MOYENNE.GEOMETRIQUE		##	Renvoie la moyenne géométrique.
    +GROWTH			= CROISSANCE			##	Calcule des valeurs par rapport à une tendance exponentielle.
    +HARMEAN			= MOYENNE.HARMONIQUE		##	Renvoie la moyenne harmonique.
    +HYPGEOMDIST		= LOI.HYPERGEOMETRIQUE		##	Renvoie la probabilité d’une variable aléatoire discrète suivant une loi hypergéométrique.
    +INTERCEPT		= ORDONNEE.ORIGINE		##	Renvoie l’ordonnée à l’origine d’une droite de régression linéaire.
    +KURT			= KURTOSIS			##	Renvoie le kurtosis d’une série de données.
    +LARGE			= GRANDE.VALEUR			##	Renvoie la k-ième plus grande valeur d’une série de données.
    +LINEST			= DROITEREG			##	Renvoie les paramètres d’une tendance linéaire.
    +LOGEST			= LOGREG			##	Renvoie les paramètres d’une tendance exponentielle.
    +LOGINV			= LOI.LOGNORMALE.INVERSE	##	Renvoie l’inverse de la probabilité pour une variable aléatoire suivant la loi lognormale.
    +LOGNORMDIST		= LOI.LOGNORMALE		##	Renvoie la probabilité d’une variable aléatoire continue suivant une loi lognormale.
    +MAX			= MAX				##	Renvoie la valeur maximale contenue dans une liste d’arguments.
    +MAXA			= MAXA				##	Renvoie la valeur maximale d’une liste d’arguments, nombres, texte et valeurs logiques inclus.
    +MEDIAN			= MEDIANE			##	Renvoie la valeur médiane des nombres donnés.
    +MIN			= MIN				##	Renvoie la valeur minimale contenue dans une liste d’arguments.
    +MINA			= MINA				##	Renvoie la plus petite valeur d’une liste d’arguments, nombres, texte et valeurs logiques inclus.
    +MODE			= MODE				##	Renvoie la valeur la plus courante d’une série de données.
    +NEGBINOMDIST		= LOI.BINOMIALE.NEG		##	Renvoie la probabilité d’une variable aléatoire discrète suivant une loi binomiale négative.
    +NORMDIST		= LOI.NORMALE			##	Renvoie la probabilité d’une variable aléatoire continue suivant une loi normale.
    +NORMINV			= LOI.NORMALE.INVERSE		##	Renvoie, pour une probabilité donnée, la valeur d’une variable aléatoire suivant une loi normale standard.
    +NORMSDIST		= LOI.NORMALE.STANDARD		##	Renvoie la probabilité d’une variable aléatoire continue suivant une loi normale standard.
    +NORMSINV		= LOI.NORMALE.STANDARD.INVERSE	##	Renvoie l’inverse de la distribution cumulée normale standard.
    +PEARSON			= PEARSON			##	Renvoie le coefficient de corrélation d’échantillonnage de Pearson.
    +PERCENTILE		= CENTILE			##	Renvoie le k-ième centile des valeurs d’une plage.
    +PERCENTRANK		= RANG.POURCENTAGE		##	Renvoie le rang en pourcentage d’une valeur d’une série de données.
    +PERMUT			= PERMUTATION			##	Renvoie le nombre de permutations pour un nombre donné d’objets.
    +POISSON			= LOI.POISSON			##	Renvoie la probabilité d’une variable aléatoire suivant une loi de Poisson.
    +PROB			= PROBABILITE			##	Renvoie la probabilité que des valeurs d’une plage soient comprises entre deux limites.
    +QUARTILE		= QUARTILE			##	Renvoie le quartile d’une série de données.
    +RANK			= RANG				##	Renvoie le rang d’un nombre contenu dans une liste.
    +RSQ			= COEFFICIENT.DETERMINATION	##	Renvoie la valeur du coefficient de détermination R^2 d’une régression linéaire.
    +SKEW			= COEFFICIENT.ASYMETRIE		##	Renvoie l’asymétrie d’une distribution.
    +SLOPE			= PENTE				##	Renvoie la pente d’une droite de régression linéaire.
    +SMALL			= PETITE.VALEUR			##	Renvoie la k-ième plus petite valeur d’une série de données.
    +STANDARDIZE		= CENTREE.REDUITE		##	Renvoie une valeur centrée réduite.
    +STDEV			= ECARTYPE			##	Évalue l’écart type d’une population en se basant sur un échantillon de cette population.
    +STDEVA			= STDEVA			##	Évalue l’écart type d’une population en se basant sur un échantillon de cette population, nombres, texte et valeurs logiques inclus.
    +STDEVP			= ECARTYPEP			##	Calcule l’écart type d’une population à partir de la population entière.
    +STDEVPA			= STDEVPA			##	Calcule l’écart type d’une population à partir de l’ensemble de la population, nombres, texte et valeurs logiques inclus.
    +STEYX			= ERREUR.TYPE.XY		##	Renvoie l’erreur type de la valeur y prévue pour chaque x de la régression.
    +TDIST			= LOI.STUDENT			##	Renvoie la probabilité d’une variable aléatoire suivant une loi T de Student.
    +TINV			= LOI.STUDENT.INVERSE		##	Renvoie, pour une probabilité donnée, la valeur d’une variable aléatoire suivant une loi T de Student.
    +TREND			= TENDANCE			##	Renvoie des valeurs par rapport à une tendance linéaire.
    +TRIMMEAN		= MOYENNE.REDUITE		##	Renvoie la moyenne de l’intérieur d’une série de données.
    +TTEST			= TEST.STUDENT			##	Renvoie la probabilité associée à un test T de Student.
    +VAR			= VAR				##	Calcule la variance sur la base d’un échantillon.
    +VARA			= VARA				##	Estime la variance d’une population en se basant sur un échantillon de cette population, nombres, texte et valeurs logiques incluses.
    +VARP			= VAR.P				##	Calcule la variance sur la base de l’ensemble de la population.
    +VARPA			= VARPA				##	Calcule la variance d’une population en se basant sur la population entière, nombres, texte et valeurs logiques inclus.
    +WEIBULL			= LOI.WEIBULL			##	Renvoie la probabilité d’une variable aléatoire suivant une loi de Weibull.
    +ZTEST			= TEST.Z			##	Renvoie la valeur de probabilité unilatérale d’un test z.
    +
    +
    +##
    +##	Text functions					Fonctions de texte
    +##
    +ASC			= ASC				##	Change les caractères anglais ou katakana à pleine chasse (codés sur deux octets) à l’intérieur d’une chaîne de caractères en caractères à demi-chasse (codés sur un octet).
    +BAHTTEXT		= BAHTTEXT			##	Convertit un nombre en texte en utilisant le format monétaire ß (baht).
    +CHAR			= CAR				##	Renvoie le caractère spécifié par le code numérique.
    +CLEAN			= EPURAGE			##	Supprime tous les caractères de contrôle du texte.
    +CODE			= CODE				##	Renvoie le numéro de code du premier caractère du texte.
    +CONCATENATE		= CONCATENER			##	Assemble plusieurs éléments textuels de façon à n’en former qu’un seul.
    +DOLLAR			= EURO				##	Convertit un nombre en texte en utilisant le format monétaire € (euro).
    +EXACT			= EXACT				##	Vérifie si deux valeurs de texte sont identiques.
    +FIND			= TROUVE			##	Trouve un valeur textuelle dans une autre, en respectant la casse.
    +FINDB			= TROUVERB			##	Trouve un valeur textuelle dans une autre, en respectant la casse.
    +FIXED			= CTXT				##	Convertit un nombre au format texte avec un nombre de décimales spécifié.
    +JIS			= JIS				##	Change les caractères anglais ou katakana à demi-chasse (codés sur un octet) à l’intérieur d’une chaîne de caractères en caractères à à pleine chasse (codés sur deux octets).
    +LEFT			= GAUCHE			##	Renvoie des caractères situés à l’extrême gauche d’une chaîne de caractères.
    +LEFTB			= GAUCHEB			##	Renvoie des caractères situés à l’extrême gauche d’une chaîne de caractères.
    +LEN			= NBCAR				##	Renvoie le nombre de caractères contenus dans une chaîne de texte.
    +LENB			= LENB				##	Renvoie le nombre de caractères contenus dans une chaîne de texte.
    +LOWER			= MINUSCULE			##	Convertit le texte en minuscules.
    +MID			= STXT				##	Renvoie un nombre déterminé de caractères d’une chaîne de texte à partir de la position que vous indiquez.
    +MIDB			= STXTB				##	Renvoie un nombre déterminé de caractères d’une chaîne de texte à partir de la position que vous indiquez.
    +PHONETIC		= PHONETIQUE			##	Extrait les caractères phonétiques (furigana) d’une chaîne de texte.
    +PROPER			= NOMPROPRE			##	Met en majuscules la première lettre de chaque mot dans une chaîne textuelle.
    +REPLACE			= REMPLACER			##	Remplace des caractères dans un texte.
    +REPLACEB		= REMPLACERB			##	Remplace des caractères dans un texte.
    +REPT			= REPT				##	Répète un texte un certain nombre de fois.
    +RIGHT			= DROITE			##	Renvoie des caractères situés à l’extrême droite d’une chaîne de caractères.
    +RIGHTB			= DROITEB			##	Renvoie des caractères situés à l’extrême droite d’une chaîne de caractères.
    +SEARCH			= CHERCHE			##	Trouve un texte dans un autre texte (sans respecter la casse).
    +SEARCHB			= CHERCHERB			##	Trouve un texte dans un autre texte (sans respecter la casse).
    +SUBSTITUTE		= SUBSTITUE			##	Remplace l’ancien texte d’une chaîne de caractères par un nouveau.
    +T			= T				##	Convertit ses arguments en texte.
    +TEXT			= TEXTE				##	Convertit un nombre au format texte.
    +TRIM			= SUPPRESPACE			##	Supprime les espaces du texte.
    +UPPER			= MAJUSCULE			##	Convertit le texte en majuscules.
    +VALUE			= CNUM				##	Convertit un argument textuel en nombre
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/hu/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/hu/config
    new file mode 100644
    index 00000000000..db61436c1ed
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/hu/config
    @@ -0,0 +1,23 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= Ft
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +##
    +NULL	= #NULLA!
    +DIV0	= #ZÉRÓOSZTÓ!
    +VALUE	= #ÉRTÉK!
    +REF	= #HIV!
    +NAME	= #NÉV?
    +NUM	= #SZÁM!
    +NA	= #HIÁNYZIK
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/hu/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/hu/functions
    new file mode 100644
    index 00000000000..3adffeb148d
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/hu/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions			Bővítmények és automatizálási függvények
    +##
    +GETPIVOTDATA		= KIMUTATÁSADATOT.VESZ		##	A kimutatásokban tárolt adatok visszaadására használható.
    +
    +
    +##
    +##	Cube functions Kockafüggvények
    +##
    +CUBEKPIMEMBER		= KOCKA.FŐTELJMUT		##	Egy fő teljesítménymutató (KPI) nevét, tulajdonságát és mértékegységét adja eredményül, a nevet és a tulajdonságot megjeleníti a cellában. A KPI-k számszerűsíthető mérési lehetőséget jelentenek – ilyen mutató például a havi bruttó nyereség vagy az egy alkalmazottra jutó negyedéves forgalom –, egy szervezet teljesítményének nyomonkövetésére használhatók.
    +CUBEMEMBER		= KOCKA.TAG			##	Kockahierachia tagját vagy rekordját adja eredményül. Ellenőrizhető vele, hogy szerepel-e a kockában az adott tag vagy rekord.
    +CUBEMEMBERPROPERTY	= KOCKA.TAG.TUL			##	A kocka egyik tagtulajdonságának értékét adja eredményül. Használatával ellenőrizhető, hogy szerepel-e egy tagnév a kockában, eredménye pedig az erre a tagra vonatkozó, megadott tulajdonság.
    +CUBERANKEDMEMBER	= KOCKA.HALM.ELEM		##	Egy halmaz rangsor szerinti n-edik tagját adja eredményül. Használatával egy halmaz egy vagy több elemét kaphatja meg, például a legnagyobb teljesítményű üzletkötőt vagy a 10 legjobb tanulót.
    +CUBESET			= KOCKA.HALM			##	Számított tagok vagy rekordok halmazát adja eredményül, ehhez egy beállított kifejezést elküld a kiszolgálón található kockának, majd ezt a halmazt adja vissza a Microsoft Office Excel alkalmazásnak.
    +CUBESETCOUNT		= KOCKA.HALM.DB			##	Egy halmaz elemszámát adja eredményül.
    +CUBEVALUE		= KOCKA.ÉRTÉK			##	Kockából összesített értéket ad eredményül.
    +
    +
    +##
    +##	Database functions				Adatbázis-kezelő függvények
    +##
    +DAVERAGE		= AB.ÁTLAG			##	A kijelölt adatbáziselemek átlagát számítja ki.
    +DCOUNT			= AB.DARAB			##	Megszámolja, hogy az adatbázisban hány cella tartalmaz számokat.
    +DCOUNTA			= AB.DARAB2			##	Megszámolja az adatbázisban lévő nem üres cellákat.
    +DGET			= AB.MEZŐ			##	Egy adatbázisból egyetlen olyan rekordot ad vissza, amely megfelel a megadott feltételeknek.
    +DMAX			= AB.MAX			##	A kiválasztott adatbáziselemek közül a legnagyobb értéket adja eredményül.
    +DMIN			= AB.MIN			##	A kijelölt adatbáziselemek közül a legkisebb értéket adja eredményül.
    +DPRODUCT		= AB.SZORZAT			##	Az adatbázis megadott feltételeknek eleget tevő rekordjaira összeszorozza a megadott mezőben található számértékeket, és eredményül ezt a szorzatot adja.
    +DSTDEV			= AB.SZÓRÁS			##	A kijelölt adatbáziselemek egy mintája alapján megbecsüli a szórást.
    +DSTDEVP			= AB.SZÓRÁS2			##	A kijelölt adatbáziselemek teljes sokasága alapján kiszámítja a szórást.
    +DSUM			= AB.SZUM			##	Összeadja a feltételnek megfelelő adatbázisrekordok mezőoszlopában a számokat.
    +DVAR			= AB.VAR			##	A kijelölt adatbáziselemek mintája alapján becslést ad a szórásnégyzetre.
    +DVARP			= AB.VAR2			##	A kijelölt adatbáziselemek teljes sokasága alapján kiszámítja a szórásnégyzetet.
    +
    +
    +##
    +##	Date and time functions				Dátumfüggvények
    +##
    +DATE			= DÁTUM				##	Adott dátum dátumértékét adja eredményül.
    +DATEVALUE		= DÁTUMÉRTÉK			##	Szövegként megadott dátumot dátumértékké alakít át.
    +DAY			= NAP				##	Dátumértéket a hónap egy napjává (0-31) alakít.
    +DAYS360			= NAP360			##	Két dátum közé eső napok számát számítja ki a 360 napos év alapján.
    +EDATE			= EDATE				##	Adott dátumnál adott számú hónappal korábbi vagy későbbi dátum dátumértékét adja eredményül.
    +EOMONTH			= EOMONTH			##	Adott dátumnál adott számú hónappal korábbi vagy későbbi hónap utolsó napjának dátumértékét adja eredményül.
    +HOUR			= ÓRA				##	Időértéket órákká alakít.
    +MINUTE			= PERC				##	Időértéket percekké alakít.
    +MONTH			= HÓNAP				##	Időértéket hónapokká alakít.
    +NETWORKDAYS		= NETWORKDAYS			##	Két dátum között a teljes munkanapok számát adja meg.
    +NOW			= MOST				##	A napi dátum dátumértékét és a pontos idő időértékét adja eredményül.
    +SECOND			= MPERC				##	Időértéket másodpercekké alakít át.
    +TIME			= IDŐ				##	Adott időpont időértékét adja meg.
    +TIMEVALUE		= IDŐÉRTÉK			##	Szövegként megadott időpontot időértékké alakít át.
    +TODAY			= MA				##	A napi dátum dátumértékét adja eredményül.
    +WEEKDAY			= HÉT.NAPJA			##	Dátumértéket a hét napjává alakítja át.
    +WEEKNUM			= WEEKNUM			##	Visszatérési értéke egy szám, amely azt mutatja meg, hogy a megadott dátum az év hányadik hetére esik.
    +WORKDAY			= WORKDAY			##	Adott dátumnál adott munkanappal korábbi vagy későbbi dátum dátumértékét adja eredményül.
    +YEAR			= ÉV				##	Sorszámot évvé alakít át.
    +YEARFRAC		= YEARFRAC			##	Az adott dátumok közötti teljes napok számát törtévként adja meg.
    +
    +
    +##
    +##	Engineering functions				Mérnöki függvények
    +##
    +BESSELI			= BESSELI			##	Az In(x) módosított Bessel-függvény értékét adja eredményül.
    +BESSELJ			= BESSELJ			##	A Jn(x) Bessel-függvény értékét adja eredményül.
    +BESSELK			= BESSELK			##	A Kn(x) módosított Bessel-függvény értékét adja eredményül.
    +BESSELY			= BESSELY			##	Az Yn(x) módosított Bessel-függvény értékét adja eredményül.
    +BIN2DEC			= BIN2DEC			##	Bináris számot decimálissá alakít át.
    +BIN2HEX			= BIN2HEX			##	Bináris számot hexadecimálissá alakít át.
    +BIN2OCT			= BIN2OCT			##	Bináris számot oktálissá alakít át.
    +COMPLEX			= COMPLEX			##	Valós és képzetes részből komplex számot képez.
    +CONVERT			= CONVERT			##	Mértékegységeket vált át.
    +DEC2BIN			= DEC2BIN			##	Decimális számot binárissá alakít át.
    +DEC2HEX			= DEC2HEX			##	Decimális számot hexadecimálissá alakít át.
    +DEC2OCT			= DEC2OCT			##	Decimális számot oktálissá alakít át.
    +DELTA			= DELTA				##	Azt vizsgálja, hogy két érték egyenlő-e.
    +ERF			= ERF				##	A hibafüggvény értékét adja eredményül.
    +ERFC			= ERFC				##	A kiegészített hibafüggvény értékét adja eredményül.
    +GESTEP			= GESTEP			##	Azt vizsgálja, hogy egy szám nagyobb-e adott küszöbértéknél.
    +HEX2BIN			= HEX2BIN			##	Hexadecimális számot binárissá alakít át.
    +HEX2DEC			= HEX2DEC			##	Hexadecimális számot decimálissá alakít át.
    +HEX2OCT			= HEX2OCT			##	Hexadecimális számot oktálissá alakít át.
    +IMABS			= IMABS				##	Komplex szám abszolút értékét (modulusát) adja eredményül.
    +IMAGINARY		= IMAGINARY			##	Komplex szám képzetes részét adja eredményül.
    +IMARGUMENT		= IMARGUMENT			##	A komplex szám radiánban kifejezett théta argumentumát adja eredményül.
    +IMCONJUGATE		= IMCONJUGATE			##	Komplex szám komplex konjugáltját adja eredményül.
    +IMCOS			= IMCOS				##	Komplex szám koszinuszát adja eredményül.
    +IMDIV			= IMDIV				##	Két komplex szám hányadosát adja eredményül.
    +IMEXP			= IMEXP				##	Az e szám komplex kitevőjű hatványát adja eredményül.
    +IMLN			= IMLN				##	Komplex szám természetes logaritmusát adja eredményül.
    +IMLOG10			= IMLOG10			##	Komplex szám tízes alapú logaritmusát adja eredményül.
    +IMLOG2			= IMLOG2			##	Komplex szám kettes alapú logaritmusát adja eredményül.
    +IMPOWER			= IMPOWER			##	Komplex szám hatványát adja eredményül.
    +IMPRODUCT		= IMPRODUCT			##	Komplex számok szorzatát adja eredményül.
    +IMREAL			= IMREAL			##	Komplex szám valós részét adja eredményül.
    +IMSIN			= IMSIN				##	Komplex szám szinuszát adja eredményül.
    +IMSQRT			= IMSQRT			##	Komplex szám négyzetgyökét adja eredményül.
    +IMSUB			= IMSUB				##	Két komplex szám különbségét adja eredményül.
    +IMSUM			= IMSUM				##	Komplex számok összegét adja eredményül.
    +OCT2BIN			= OCT2BIN			##	Oktális számot binárissá alakít át.
    +OCT2DEC			= OCT2DEC			##	Oktális számot decimálissá alakít át.
    +OCT2HEX			= OCT2HEX			##	Oktális számot hexadecimálissá alakít át.
    +
    +
    +##
    +##	Financial functions				Pénzügyi függvények
    +##
    +ACCRINT			= ACCRINT			##	Periodikusan kamatozó értékpapír felszaporodott kamatát adja eredményül.
    +ACCRINTM		= ACCRINTM			##	Lejáratkor kamatozó értékpapír felszaporodott kamatát adja eredményül.
    +AMORDEGRC		= AMORDEGRC			##	Állóeszköz lineáris értékcsökkenését adja meg az egyes könyvelési időszakokra vonatkozóan.
    +AMORLINC		= AMORLINC			##	Az egyes könyvelési időszakokban az értékcsökkenést adja meg.
    +COUPDAYBS		= COUPDAYBS			##	A szelvényidőszak kezdetétől a kifizetés időpontjáig eltelt napokat adja vissza.
    +COUPDAYS		= COUPDAYS			##	A kifizetés időpontját magában foglaló szelvényperiódus hosszát adja meg napokban.
    +COUPDAYSNC		= COUPDAYSNC			##	A kifizetés időpontja és a legközelebbi szelvénydátum közötti napok számát adja meg.
    +COUPNCD			= COUPNCD			##	A kifizetést követő legelső szelvénydátumot adja eredményül.
    +COUPNUM			= COUPNUM			##	A kifizetés és a lejárat időpontja között kifizetendő szelvények számát adja eredményül.
    +COUPPCD			= COUPPCD			##	A kifizetés előtti utolsó szelvénydátumot adja eredményül.
    +CUMIPMT			= CUMIPMT			##	Két fizetési időszak között kifizetett kamat halmozott értékét adja eredményül.
    +CUMPRINC		= CUMPRINC			##	Két fizetési időszak között kifizetett részletek halmozott (kamatot nem tartalmazó) értékét adja eredményül.
    +DB			= KCS2				##	Eszköz adott időszak alatti értékcsökkenését számítja ki a lineáris leírási modell alkalmazásával.
    +DDB			= KCSA				##	Eszköz értékcsökkenését számítja ki adott időszakra vonatkozóan a progresszív vagy egyéb megadott leírási modell alkalmazásával.
    +DISC			= DISC				##	Értékpapír leszámítolási kamatlábát adja eredményül.
    +DOLLARDE		= DOLLARDE			##	Egy közönséges törtként megadott számot tizedes törtté alakít át.
    +DOLLARFR		= DOLLARFR			##	Tizedes törtként megadott számot közönséges törtté alakít át.
    +DURATION		= DURATION			##	Periodikus kamatfizetésű értékpapír éves kamatérzékenységét adja eredményül.
    +EFFECT			= EFFECT			##	Az éves tényleges kamatláb értékét adja eredményül.
    +FV			= JBÉ				##	Befektetés jövőbeli értékét számítja ki.
    +FVSCHEDULE		= FVSCHEDULE			##	A kezdőtőke adott kamatlábak szerint megnövelt jövőbeli értékét adja eredményül.
    +INTRATE			= INTRATE			##	A lejáratig teljesen lekötött értékpapír kamatrátáját adja eredményül.
    +IPMT			= RRÉSZLET			##	Hiteltörlesztésen belül a tőketörlesztés nagyságát számítja ki adott időszakra.
    +IRR			= BMR				##	A befektetés belső megtérülési rátáját számítja ki pénzáramláshoz.
    +ISPMT			= LRÉSZLETKAMAT			##	A befektetés adott időszakára fizetett kamatot számítja ki.
    +MDURATION		= MDURATION			##	Egy 100 Ft névértékű értékpapír Macauley-féle módosított kamatérzékenységét adja eredményül.
    +MIRR			= MEGTÉRÜLÉS			##	A befektetés belső megtérülési rátáját számítja ki a költségek és a bevételek különböző kamatlába mellett.
    +NOMINAL			= NOMINAL			##	Az éves névleges kamatláb értékét adja eredményül.
    +NPER			= PER.SZÁM			##	A törlesztési időszakok számát adja meg.
    +NPV			= NMÉ				##	Befektetéshez kapcsolódó pénzáramlás nettó jelenértékét számítja ki ismert pénzáramlás és kamatláb mellett.
    +ODDFPRICE		= ODDFPRICE			##	Egy 100 Ft névértékű, a futamidő elején töredék-időszakos értékpapír árát adja eredményül.
    +ODDFYIELD		= ODDFYIELD			##	A futamidő elején töredék-időszakos értékpapír hozamát adja eredményül.
    +ODDLPRICE		= ODDLPRICE			##	Egy 100 Ft névértékű, a futamidő végén töredék-időszakos értékpapír árát adja eredményül.
    +ODDLYIELD		= ODDLYIELD			##	A futamidő végén töredék-időszakos értékpapír hozamát adja eredményül.
    +PMT			= RÉSZLET			##	A törlesztési időszakra vonatkozó törlesztési összeget számítja ki.
    +PPMT			= PRÉSZLET			##	Hiteltörlesztésen belül a tőketörlesztés nagyságát számítja ki adott időszakra.
    +PRICE			= PRICE				##	Egy 100 Ft névértékű, periodikusan kamatozó értékpapír árát adja eredményül.
    +PRICEDISC		= PRICEDISC			##	Egy 100 Ft névértékű leszámítolt értékpapír árát adja eredményül.
    +PRICEMAT		= PRICEMAT			##	Egy 100 Ft névértékű, a lejáratkor kamatozó értékpapír árát adja eredményül.
    +PV			= MÉ				##	Befektetés jelenlegi értékét számítja ki.
    +RATE			= RÁTA				##	Egy törlesztési időszakban az egy időszakra eső kamatláb nagyságát számítja ki.
    +RECEIVED		= RECEIVED			##	A lejáratig teljesen lekötött értékpapír lejáratakor kapott összegét adja eredményül.
    +SLN			= LCSA				##	Tárgyi eszköz egy időszakra eső amortizációját adja meg bruttó érték szerinti lineáris leírási kulcsot alkalmazva.
    +SYD			= SYD				##	Tárgyi eszköz értékcsökkenését számítja ki adott időszakra az évek számjegyösszegével dolgozó módszer alapján.
    +TBILLEQ			= TBILLEQ			##	Kincstárjegy kötvény-egyenértékű hozamát adja eredményül.
    +TBILLPRICE		= TBILLPRICE			##	Egy 100 Ft névértékű kincstárjegy árát adja eredményül.
    +TBILLYIELD		= TBILLYIELD			##	Kincstárjegy hozamát adja eredményül.
    +VDB			= ÉCSRI				##	Tárgyi eszköz amortizációját számítja ki megadott vagy részidőszakra a csökkenő egyenleg módszerének alkalmazásával.
    +XIRR			= XIRR				##	Ütemezett készpénzforgalom (cash flow) belső megtérülési kamatrátáját adja eredményül.
    +XNPV			= XNPV				##	Ütemezett készpénzforgalom (cash flow) nettó jelenlegi értékét adja eredményül.
    +YIELD			= YIELD				##	Periodikusan kamatozó értékpapír hozamát adja eredményül.
    +YIELDDISC		= YIELDDISC			##	Leszámítolt értékpapír (például kincstárjegy) éves hozamát adja eredményül.
    +YIELDMAT		= YIELDMAT			##	Lejáratkor kamatozó értékpapír éves hozamát adja eredményül.
    +
    +
    +##
    +##	Information functions				Információs függvények
    +##
    +CELL			= CELLA				##	Egy cella formátumára, elhelyezkedésére vagy tartalmára vonatkozó adatokat ad eredményül.
    +ERROR.TYPE		= HIBA.TÍPUS			##	Egy hibatípushoz tartozó számot ad eredményül.
    +INFO			= INFÓ				##	A rendszer- és munkakörnyezet pillanatnyi állapotáról ad felvilágosítást.
    +ISBLANK			= ÜRES				##	Eredménye IGAZ, ha az érték üres.
    +ISERR			= HIBA				##	Eredménye IGAZ, ha az érték valamelyik hibaérték a #HIÁNYZIK kivételével.
    +ISERROR			= HIBÁS				##	Eredménye IGAZ, ha az érték valamelyik hibaérték.
    +ISEVEN			= ISEVEN			##	Eredménye IGAZ, ha argumentuma páros szám.
    +ISLOGICAL		= LOGIKAI			##	Eredménye IGAZ, ha az érték logikai érték.
    +ISNA			= NINCS				##	Eredménye IGAZ, ha az érték a #HIÁNYZIK hibaérték.
    +ISNONTEXT		= NEM.SZÖVEG			##	Eredménye IGAZ, ha az érték nem szöveg.
    +ISNUMBER		= SZÁM				##	Eredménye IGAZ, ha az érték szám.
    +ISODD			= ISODD				##	Eredménye IGAZ, ha argumentuma páratlan szám.
    +ISREF			= HIVATKOZÁS			##	Eredménye IGAZ, ha az érték hivatkozás.
    +ISTEXT			= SZÖVEG.E			##	Eredménye IGAZ, ha az érték szöveg.
    +N			= N				##	Argumentumának értékét számmá alakítja.
    +NA			= HIÁNYZIK			##	Eredménye a #HIÁNYZIK hibaérték.
    +TYPE			= TÍPUS				##	Érték adattípusának azonosítószámát adja eredményül.
    +
    +
    +##
    +##	Logical functions				Logikai függvények
    +##
    +AND			= ÉS				##	Eredménye IGAZ, ha minden argumentuma IGAZ.
    +FALSE			= HAMIS				##	A HAMIS logikai értéket adja eredményül.
    +IF			= HA				##	Logikai vizsgálatot hajt végre.
    +IFERROR			= HAHIBA			##	A megadott értéket adja vissza, ha egy képlet hibához vezet; más esetben a képlet értékét adja eredményül.
    +NOT			= NEM				##	Argumentuma értékének ellentettjét adja eredményül.
    +OR			= VAGY				##	Eredménye IGAZ, ha bármely argumentuma IGAZ.
    +TRUE			= IGAZ				##	Az IGAZ logikai értéket adja eredményül.
    +
    +
    +##
    +##	Lookup and reference functions			Keresési és hivatkozási függvények
    +##
    +ADDRESS			= CÍM				##	A munkalap egy cellájára való hivatkozást adja szövegként eredményül.
    +AREAS			= TERÜLET			##	Hivatkozásban a területek számát adja eredményül.
    +CHOOSE			= VÁLASZT			##	Értékek listájából választ ki egy elemet.
    +COLUMN			= OSZLOP			##	Egy hivatkozás oszlopszámát adja eredményül.
    +COLUMNS			= OSZLOPOK			##	A hivatkozásban található oszlopok számát adja eredményül.
    +HLOOKUP			= VKERES			##	A megadott tömb felső sorában adott értékű elemet keres, és a megtalált elem oszlopából adott sorban elhelyezkedő értékkel tér vissza.
    +HYPERLINK		= HIPERHIVATKOZÁS		##	Hálózati kiszolgálón, intraneten vagy az interneten tárolt dokumentumot megnyitó parancsikont vagy hivatkozást hoz létre.
    +INDEX			= INDEX				##	Tömb- vagy hivatkozás indexszel megadott értékét adja vissza.
    +INDIRECT		= INDIREKT			##	Szöveg megadott hivatkozást ad eredményül.
    +LOOKUP			= KERES				##	Vektorban vagy tömbben keres meg értékeket.
    +MATCH			= HOL.VAN			##	Hivatkozásban vagy tömbben értékeket keres.
    +OFFSET			= OFSZET			##	Hivatkozás egy másik hivatkozástól számított távolságát adja meg.
    +ROW			= SOR				##	Egy hivatkozás sorának számát adja meg.
    +ROWS			= SOROK				##	Egy hivatkozás sorainak számát adja meg.
    +RTD			= RTD				##	Valós idejű adatokat keres vissza a COM automatizmust (automatizálás: Egy alkalmazás objektumaival való munka másik alkalmazásból vagy fejlesztőeszközből. A korábban OLE automatizmusnak nevezett automatizálás iparági szabvány, a Component Object Model (COM) szolgáltatása.) támogató programból.
    +TRANSPOSE		= TRANSZPONÁLÁS			##	Egy tömb transzponáltját adja eredményül.
    +VLOOKUP			= FKERES			##	A megadott tömb bal szélső oszlopában megkeres egy értéket, majd annak sora és a megadott oszlop metszéspontjában levő értéked adja eredményül.
    +
    +
    +##
    +##	Math and trigonometry functions			Matematikai és trigonometrikus függvények
    +##
    +ABS			= ABS				##	Egy szám abszolút értékét adja eredményül.
    +ACOS			= ARCCOS			##	Egy szám arkusz koszinuszát számítja ki.
    +ACOSH			= ACOSH				##	Egy szám inverz koszinusz hiperbolikuszát számítja ki.
    +ASIN			= ARCSIN			##	Egy szám arkusz szinuszát számítja ki.
    +ASINH			= ASINH				##	Egy szám inverz szinusz hiperbolikuszát számítja ki.
    +ATAN			= ARCTAN			##	Egy szám arkusz tangensét számítja ki.
    +ATAN2			= ARCTAN2			##	X és y koordináták alapján számítja ki az arkusz tangens értéket.
    +ATANH			= ATANH				##	A szám inverz tangens hiperbolikuszát számítja ki.
    +CEILING			= PLAFON			##	Egy számot a legközelebbi egészre vagy a pontosságként megadott érték legközelebb eső többszörösére kerekít.
    +COMBIN			= KOMBINÁCIÓK			##	Adott számú objektum összes lehetséges kombinációinak számát számítja ki.
    +COS			= COS				##	Egy szám koszinuszát számítja ki.
    +COSH			= COSH				##	Egy szám koszinusz hiperbolikuszát számítja ki.
    +DEGREES			= FOK				##	Radiánt fokká alakít át.
    +EVEN			= PÁROS				##	Egy számot a legközelebbi páros egész számra kerekít.
    +EXP			= KITEVŐ			##	Az e adott kitevőjű hatványát adja eredményül.
    +FACT			= FAKT				##	Egy szám faktoriálisát számítja ki.
    +FACTDOUBLE		= FACTDOUBLE			##	Egy szám dupla faktoriálisát adja eredményül.
    +FLOOR			= PADLÓ				##	Egy számot lefelé, a nulla felé kerekít.
    +GCD			= GCD				##	A legnagyobb közös osztót adja eredményül.
    +INT			= INT				##	Egy számot lefelé kerekít a legközelebbi egészre.
    +LCM			= LCM				##	A legkisebb közös többszöröst adja eredményül.
    +LN			= LN				##	Egy szám természetes logaritmusát számítja ki.
    +LOG			= LOG				##	Egy szám adott alapú logaritmusát számítja ki.
    +LOG10			= LOG10				##	Egy szám 10-es alapú logaritmusát számítja ki.
    +MDETERM			= MDETERM			##	Egy tömb mátrix-determinánsát számítja ki.
    +MINVERSE		= INVERZ.MÁTRIX			##	Egy tömb mátrix inverzét adja eredményül.
    +MMULT			= MSZORZAT			##	Két tömb mátrix-szorzatát adja meg.
    +MOD			= MARADÉK			##	Egy szám osztási maradékát adja eredményül.
    +MROUND			= MROUND			##	A kívánt többszörösére kerekített értéket ad eredményül.
    +MULTINOMIAL		= MULTINOMIAL			##	Számhalmaz multinomiálisát adja eredményül.
    +ODD			= PÁRATLAN			##	Egy számot a legközelebbi páratlan számra kerekít.
    +PI			= PI				##	A pi matematikai állandót adja vissza.
    +POWER			= HATVÁNY			##	Egy szám adott kitevőjű hatványát számítja ki.
    +PRODUCT			= SZORZAT			##	Argumentumai szorzatát számítja ki.
    +QUOTIENT		= QUOTIENT			##	Egy hányados egész részét adja eredményül.
    +RADIANS			= RADIÁN			##	Fokot radiánná alakít át.
    +RAND			= VÉL				##	Egy 0 és 1 közötti véletlen számot ad eredményül.
    +RANDBETWEEN		= RANDBETWEEN			##	Megadott számok közé eső véletlen számot állít elő.
    +ROMAN			= RÓMAI				##	Egy számot római számokkal kifejezve szövegként ad eredményül.
    +ROUND			= KEREKÍTÉS			##	Egy számot adott számú számjegyre kerekít.
    +ROUNDDOWN		= KEREKÍTÉS.LE			##	Egy számot lefelé, a nulla felé kerekít.
    +ROUNDUP			= KEREKÍTÉS.FEL			##	Egy számot felfelé, a nullától távolabbra kerekít.
    +SERIESSUM		= SERIESSUM			##	Hatványsor összegét adja eredményül.
    +SIGN			= ELŐJEL			##	Egy szám előjelét adja meg.
    +SIN			= SIN				##	Egy szög szinuszát számítja ki.
    +SINH			= SINH				##	Egy szám szinusz hiperbolikuszát számítja ki.
    +SQRT			= GYÖK				##	Egy szám pozitív négyzetgyökét számítja ki.
    +SQRTPI			= SQRTPI			##	A (szám*pi) négyzetgyökét adja eredményül.
    +SUBTOTAL		= RÉSZÖSSZEG			##	Lista vagy adatbázis részösszegét adja eredményül.
    +SUM			= SZUM				##	Összeadja az argumentumlistájában lévő számokat.
    +SUMIF			= SZUMHA			##	A megadott feltételeknek eleget tevő cellákban található értékeket adja össze.
    +SUMIFS			= SZUMHATÖBB			##	Több megadott feltételnek eleget tévő tartománycellák összegét adja eredményül.
    +SUMPRODUCT		= SZORZATÖSSZEG			##	A megfelelő tömbelemek szorzatának összegét számítja ki.
    +SUMSQ			= NÉGYZETÖSSZEG			##	Argumentumai négyzetének összegét számítja ki.
    +SUMX2MY2		= SZUMX2BŐLY2			##	Két tömb megfelelő elemei négyzetének különbségét összegzi.
    +SUMX2PY2		= SZUMX2MEGY2			##	Két tömb megfelelő elemei négyzetének összegét összegzi.
    +SUMXMY2			= SZUMXBŐLY2			##	Két tömb megfelelő elemei különbségének négyzetösszegét számítja ki.
    +TAN			= TAN				##	Egy szám tangensét számítja ki.
    +TANH			= TANH				##	Egy szám tangens hiperbolikuszát számítja ki.
    +TRUNC			= CSONK				##	Egy számot egésszé csonkít.
    +
    +
    +##
    +##	Statistical functions				Statisztikai függvények
    +##
    +AVEDEV			= ÁTL.ELTÉRÉS			##	Az adatpontoknak átlaguktól való átlagos abszolút eltérését számítja ki.
    +AVERAGE			= ÁTLAG				##	Argumentumai átlagát számítja ki.
    +AVERAGEA		= ÁTLAGA			##	Argumentumai átlagát számítja ki (beleértve a számokat, szöveget és logikai értékeket).
    +AVERAGEIF		= ÁTLAGHA			##	A megadott feltételnek eleget tévő tartomány celláinak átlagát (számtani közepét) adja eredményül.
    +AVERAGEIFS		= ÁTLAGHATÖBB			##	A megadott feltételeknek eleget tévő cellák átlagát (számtani közepét) adja eredményül.
    +BETADIST		= BÉTA.ELOSZLÁS			##	A béta-eloszlás függvényt számítja ki.
    +BETAINV			= INVERZ.BÉTA			##	Adott béta-eloszláshoz kiszámítja a béta eloszlásfüggvény inverzét.
    +BINOMDIST		= BINOM.ELOSZLÁS		##	A diszkrét binomiális eloszlás valószínűségértékét számítja ki.
    +CHIDIST			= KHI.ELOSZLÁS			##	A khi-négyzet-eloszlás egyszélű valószínűségértékét számítja ki.
    +CHIINV			= INVERZ.KHI			##	A khi-négyzet-eloszlás egyszélű valószínűségértékének inverzét számítja ki.
    +CHITEST			= KHI.PRÓBA			##	Függetlenségvizsgálatot hajt végre.
    +CONFIDENCE		= MEGBÍZHATÓSÁG			##	Egy statisztikai sokaság várható értékének megbízhatósági intervallumát adja eredményül.
    +CORREL			= KORREL			##	Két adathalmaz korrelációs együtthatóját számítja ki.
    +COUNT			= DARAB				##	Megszámolja, hogy argumentumlistájában hány szám található.
    +COUNTA			= DARAB2			##	Megszámolja, hogy argumentumlistájában hány érték található.
    +COUNTBLANK		= DARABÜRES			##	Egy tartományban összeszámolja az üres cellákat.
    +COUNTIF			= DARABTELI			##	Egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek a megadott feltételnek.
    +COUNTIFS		= DARABHATÖBB			##	Egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek több feltételnek.
    +COVAR			= KOVAR				##	A kovarianciát, azaz a páronkénti eltérések szorzatának átlagát számítja ki.
    +CRITBINOM		= KRITBINOM			##	Azt a legkisebb számot adja eredményül, amelyre a binomiális eloszlásfüggvény értéke nem kisebb egy adott határértéknél.
    +DEVSQ			= SQ				##	Az átlagtól való eltérések négyzetének összegét számítja ki.
    +EXPONDIST		= EXP.ELOSZLÁS			##	Az exponenciális eloszlás értékét számítja ki.
    +FDIST			= F.ELOSZLÁS			##	Az F-eloszlás értékét számítja ki.
    +FINV			= INVERZ.F			##	Az F-eloszlás inverzének értékét számítja ki.
    +FISHER			= FISHER			##	Fisher-transzformációt hajt végre.
    +FISHERINV		= INVERZ.FISHER			##	A Fisher-transzformáció inverzét hajtja végre.
    +FORECAST		= ELŐREJELZÉS			##	Az ismert értékek alapján lineáris regresszióval becsült értéket ad eredményül.
    +FREQUENCY		= GYAKORISÁG			##	A gyakorisági vagy empirikus eloszlás értékét függőleges tömbként adja eredményül.
    +FTEST			= F.PRÓBA			##	Az F-próba értékét adja eredményül.
    +GAMMADIST		= GAMMA.ELOSZLÁS		##	A gamma-eloszlás értékét számítja ki.
    +GAMMAINV		= INVERZ.GAMMA			##	A gamma-eloszlás eloszlásfüggvénye inverzének értékét számítja ki.
    +GAMMALN			= GAMMALN			##	A gamma-függvény természetes logaritmusát számítja ki.
    +GEOMEAN			= MÉRTANI.KÖZÉP			##	Argumentumai mértani középértékét számítja ki.
    +GROWTH			= NÖV				##	Exponenciális regresszió alapján ad becslést.
    +HARMEAN			= HARM.KÖZÉP			##	Argumentumai harmonikus átlagát számítja ki.
    +HYPGEOMDIST		= HIPERGEOM.ELOSZLÁS		##	A hipergeometriai eloszlás értékét számítja ki.
    +INTERCEPT		= METSZ				##	A regressziós egyenes y tengellyel való metszéspontját határozza meg.
    +KURT			= CSÚCSOSSÁG			##	Egy adathalmaz csúcsosságát számítja ki.
    +LARGE			= NAGY				##	Egy adathalmaz k-adik legnagyobb elemét adja eredményül.
    +LINEST			= LIN.ILL			##	A legkisebb négyzetek módszerével az adatokra illesztett egyenes paramétereit határozza meg.
    +LOGEST			= LOG.ILL			##	Az adatokra illesztett exponenciális görbe paramétereit határozza meg.
    +LOGINV			= INVERZ.LOG.ELOSZLÁS		##	A lognormális eloszlás inverzét számítja ki.
    +LOGNORMDIST		= LOG.ELOSZLÁS			##	A lognormális eloszlásfüggvény értékét számítja ki.
    +MAX			= MAX				##	Az argumentumai között szereplő legnagyobb számot adja meg.
    +MAXA			= MAX2				##	Az argumentumai között szereplő legnagyobb számot adja meg (beleértve a számokat, szöveget és logikai értékeket).
    +MEDIAN			= MEDIÁN			##	Adott számhalmaz mediánját számítja ki.
    +MIN			= MIN				##	Az argumentumai között szereplő legkisebb számot adja meg.
    +MINA			= MIN2				##	Az argumentumai között szereplő legkisebb számot adja meg, beleértve a számokat, szöveget és logikai értékeket.
    +MODE			= MÓDUSZ			##	Egy adathalmazból kiválasztja a leggyakrabban előforduló számot.
    +NEGBINOMDIST		= NEGBINOM.ELOSZL		##	A negatív binomiális eloszlás értékét számítja ki.
    +NORMDIST		= NORM.ELOSZL			##	A normális eloszlás értékét számítja ki.
    +NORMINV			= INVERZ.NORM			##	A normális eloszlás eloszlásfüggvénye inverzének értékét számítja ki.
    +NORMSDIST		= STNORMELOSZL			##	A standard normális eloszlás eloszlásfüggvényének értékét számítja ki.
    +NORMSINV		= INVERZ.STNORM			##	A standard normális eloszlás eloszlásfüggvénye inverzének értékét számítja ki.
    +PEARSON			= PEARSON			##	A Pearson-féle korrelációs együtthatót számítja ki.
    +PERCENTILE		= PERCENTILIS			##	Egy tartományban található értékek k-adik percentilisét, azaz százalékosztályát adja eredményül.
    +PERCENTRANK		= SZÁZALÉKRANG			##	Egy értéknek egy adathalmazon belül vett százalékos rangját (elhelyezkedését) számítja ki.
    +PERMUT			= VARIÁCIÓK			##	Adott számú objektum k-ad osztályú ismétlés nélküli variációinak számát számítja ki.
    +POISSON			= POISSON			##	A Poisson-eloszlás értékét számítja ki.
    +PROB			= VALÓSZÍNŰSÉG			##	Annak valószínűségét számítja ki, hogy adott értékek két határérték közé esnek.
    +QUARTILE		= KVARTILIS			##	Egy adathalmaz kvartilisét (negyedszintjét) számítja ki.
    +RANK			= SORSZÁM			##	Kiszámítja, hogy egy szám hányadik egy számsorozatban.
    +RSQ			= RNÉGYZET			##	Kiszámítja a Pearson-féle szorzatmomentum korrelációs együtthatójának négyzetét.
    +SKEW			= FERDESÉG			##	Egy eloszlás ferdeségét határozza meg.
    +SLOPE			= MEREDEKSÉG			##	Egy lineáris regressziós egyenes meredekségét számítja ki.
    +SMALL			= KICSI				##	Egy adathalmaz k-adik legkisebb elemét adja meg.
    +STANDARDIZE		= NORMALIZÁLÁS			##	Normalizált értéket ad eredményül.
    +STDEV			= SZÓRÁS			##	Egy statisztikai sokaság mintájából kiszámítja annak szórását.
    +STDEVA			= SZÓRÁSA			##	Egy statisztikai sokaság mintájából kiszámítja annak szórását (beleértve a számokat, szöveget és logikai értékeket).
    +STDEVP			= SZÓRÁSP			##	Egy statisztikai sokaság egészéből kiszámítja annak szórását.
    +STDEVPA			= SZÓRÁSPA			##	Egy statisztikai sokaság egészéből kiszámítja annak szórását (beleértve számokat, szöveget és logikai értékeket).
    +STEYX			= STHIBAYX			##	Egy regresszió esetén az egyes x-értékek alapján meghatározott y-értékek standard hibáját számítja ki.
    +TDIST			= T.ELOSZLÁS			##	A Student-féle t-eloszlás értékét számítja ki.
    +TINV			= INVERZ.T			##	A Student-féle t-eloszlás inverzét számítja ki.
    +TREND			= TREND				##	Lineáris trend értékeit számítja ki.
    +TRIMMEAN		= RÉSZÁTLAG			##	Egy adathalmaz középső részének átlagát számítja ki.
    +TTEST			= T.PRÓBA			##	A Student-féle t-próbához tartozó valószínűséget számítja ki.
    +VAR			= VAR				##	Minta alapján becslést ad a varianciára.
    +VARA			= VARA				##	Minta alapján becslést ad a varianciára (beleértve számokat, szöveget és logikai értékeket).
    +VARP			= VARP				##	Egy statisztikai sokaság varianciáját számítja ki.
    +VARPA			= VARPA				##	Egy statisztikai sokaság varianciáját számítja ki (beleértve számokat, szöveget és logikai értékeket).
    +WEIBULL			= WEIBULL			##	A Weibull-féle eloszlás értékét számítja ki.
    +ZTEST			= Z.PRÓBA			##	Az egyszélű z-próbával kapott valószínűségértéket számítja ki.
    +
    +
    +##
    +##	Text functions					Szövegműveletekhez használható függvények
    +##
    +ASC			= ASC				##	Szöveg teljes szélességű (kétbájtos) latin és katakana karaktereit félszélességű (egybájtos) karakterekké alakítja.
    +BAHTTEXT		= BAHTSZÖVEG			##	Számot szöveggé alakít a ß (baht) pénznemformátum használatával.
    +CHAR			= KARAKTER			##	A kódszámmal meghatározott karaktert adja eredményül.
    +CLEAN			= TISZTÍT			##	A szövegből eltávolítja az összes nem nyomtatható karaktert.
    +CODE			= KÓD				##	Karaktersorozat első karakterének numerikus kódját adja eredményül.
    +CONCATENATE		= ÖSSZEFŰZ			##	Több szövegelemet egyetlen szöveges elemmé fűz össze.
    +DOLLAR			= FORINT			##	Számot pénznem formátumú szöveggé alakít át.
    +EXACT			= AZONOS			##	Megvizsgálja, hogy két érték azonos-e.
    +FIND			= SZÖVEG.TALÁL			##	Karaktersorozatot keres egy másikban (a kis- és nagybetűk megkülönböztetésével).
    +FINDB			= SZÖVEG.TALÁL2			##	Karaktersorozatot keres egy másikban (a kis- és nagybetűk megkülönböztetésével).
    +FIXED			= FIX				##	Számot szöveges formátumúra alakít adott számú tizedesjegyre kerekítve.
    +JIS			= JIS				##	A félszélességű (egybájtos) latin és a katakana karaktereket teljes szélességű (kétbájtos) karakterekké alakítja.
    +LEFT			= BAL				##	Szöveg bal szélső karaktereit adja eredményül.
    +LEFTB			= BAL2				##	Szöveg bal szélső karaktereit adja eredményül.
    +LEN			= HOSSZ				##	Szöveg karakterekben mért hosszát adja eredményül.
    +LENB			= HOSSZ2			##	Szöveg karakterekben mért hosszát adja eredményül.
    +LOWER			= KISBETŰ			##	Szöveget kisbetűssé alakít át.
    +MID			= KÖZÉP				##	A szöveg adott pozíciójától kezdve megadott számú karaktert ad vissza eredményként.
    +MIDB			= KÖZÉP2			##	A szöveg adott pozíciójától kezdve megadott számú karaktert ad vissza eredményként.
    +PHONETIC		= PHONETIC			##	Szöveg furigana (fonetikus) karaktereit adja vissza.
    +PROPER			= TNÉV				##	Szöveg minden szavának kezdőbetűjét nagybetűsre cseréli.
    +REPLACE			= CSERE				##	A szövegen belül karaktereket cserél.
    +REPLACEB		= CSERE2			##	A szövegen belül karaktereket cserél.
    +REPT			= SOKSZOR			##	Megadott számú alkalommal megismétel egy szövegrészt.
    +RIGHT			= JOBB				##	Szövegrész jobb szélső karaktereit adja eredményül.
    +RIGHTB			= JOBB2				##	Szövegrész jobb szélső karaktereit adja eredményül.
    +SEARCH			= SZÖVEG.KERES			##	Karaktersorozatot keres egy másikban (a kis- és nagybetűk között nem tesz különbséget).
    +SEARCHB			= SZÖVEG.KERES2			##	Karaktersorozatot keres egy másikban (a kis- és nagybetűk között nem tesz különbséget).
    +SUBSTITUTE		= HELYETTE			##	Szövegben adott karaktereket másikra cserél.
    +T			= T				##	Argumentumát szöveggé alakítja át.
    +TEXT			= SZÖVEG			##	Számértéket alakít át adott számformátumú szöveggé.
    +TRIM			= TRIM				##	A szövegből eltávolítja a szóközöket.
    +UPPER			= NAGYBETŰS			##	Szöveget nagybetűssé alakít át.
    +VALUE			= ÉRTÉK				##	Szöveget számmá alakít át.
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/it/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/it/config
    new file mode 100644
    index 00000000000..6cc013aec23
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/it/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= €
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #NULLO!
    +DIV0	= #DIV/0!
    +VALUE	= #VALORE!
    +REF	= #RIF!
    +NAME	= #NOME?
    +NUM	= #NUM!
    +NA	= #N/D
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/it/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/it/functions
    new file mode 100644
    index 00000000000..1901bafa7a1
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/it/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions			Funzioni di automazione e dei componenti aggiuntivi
    +##
    +GETPIVOTDATA		= INFO.DATI.TAB.PIVOT		##	Restituisce i dati memorizzati in un rapporto di tabella pivot
    +
    +
    +##
    +##	Cube functions					Funzioni cubo
    +##
    +CUBEKPIMEMBER		= MEMBRO.KPI.CUBO		##	Restituisce il nome, la proprietà e la misura di un indicatore di prestazioni chiave (KPI) e visualizza il nome e la proprietà nella cella. Un KPI è una misura quantificabile, ad esempio l'utile lordo mensile o il fatturato trimestrale dei dipendenti, utilizzata per il monitoraggio delle prestazioni di un'organizzazione.
    +CUBEMEMBER		= MEMBRO.CUBO			##	Restituisce un membro o una tupla in una gerarchia di cubi. Consente di verificare l'esistenza del membro o della tupla nel cubo.
    +CUBEMEMBERPROPERTY	= PROPRIETÀ.MEMBRO.CUBO		##	Restituisce il valore di una proprietà di un membro del cubo. Consente di verificare l'esistenza di un nome di membro all'interno del cubo e di restituire la proprietà specificata per tale membro.
    +CUBERANKEDMEMBER	= MEMBRO.CUBO.CON.RANGO		##	Restituisce l'n-esimo membro o il membro ordinato di un insieme. Consente di restituire uno o più elementi in un insieme, ad esempio l'agente di vendita migliore o i primi 10 studenti.
    +CUBESET			= SET.CUBO			##	Definisce un insieme di tuple o membri calcolati mediante l'invio di un'espressione di insieme al cubo sul server. In questo modo l'insieme viene creato e restituito a Microsoft Office Excel.
    +CUBESETCOUNT		= CONTA.SET.CUBO		##	Restituisce il numero di elementi di un insieme.
    +CUBEVALUE		= VALORE.CUBO			##	Restituisce un valore aggregato da un cubo.
    +
    +
    +##
    +##	Database functions				Funzioni di database
    +##
    +DAVERAGE		= DB.MEDIA			##	Restituisce la media di voci del database selezionate
    +DCOUNT			= DB.CONTA.NUMERI		##	Conta le celle di un database contenenti numeri
    +DCOUNTA			= DB.CONTA.VALORI		##	Conta le celle non vuote in un database
    +DGET			= DB.VALORI			##	Estrae da un database un singolo record che soddisfa i criteri specificati
    +DMAX			= DB.MAX			##	Restituisce il valore massimo dalle voci selezionate in un database
    +DMIN			= DB.MIN			##	Restituisce il valore minimo dalle voci di un database selezionate
    +DPRODUCT		= DB.PRODOTTO			##	Moltiplica i valori in un determinato campo di record che soddisfano i criteri del database
    +DSTDEV			= DB.DEV.ST			##	Restituisce una stima della deviazione standard sulla base di un campione di voci di un database selezionate
    +DSTDEVP			= DB.DEV.ST.POP			##	Calcola la deviazione standard sulla base di tutte le voci di un database selezionate
    +DSUM			= DB.SOMMA			##	Aggiunge i numeri nel campo colonna di record del database che soddisfa determinati criteri
    +DVAR			= DB.VAR			##	Restituisce una stima della varianza sulla base di un campione da voci di un database selezionate
    +DVARP			= DB.VAR.POP			##	Calcola la varianza sulla base di tutte le voci di un database selezionate
    +
    +
    +##
    +##	Date and time functions				Funzioni data e ora
    +##
    +DATE			= DATA				##	Restituisce il numero seriale di una determinata data
    +DATEVALUE		= DATA.VALORE			##	Converte una data sotto forma di testo in un numero seriale
    +DAY			= GIORNO			##	Converte un numero seriale in un giorno del mese
    +DAYS360			= GIORNO360			##	Calcola il numero di giorni compreso tra due date basandosi su un anno di 360 giorni
    +EDATE			= DATA.MESE			##	Restituisce il numero seriale della data che rappresenta il numero di mesi prima o dopo la data di inizio
    +EOMONTH			= FINE.MESE			##	Restituisce il numero seriale dell'ultimo giorno del mese, prima o dopo un determinato numero di mesi
    +HOUR			= ORA				##	Converte un numero seriale in un'ora
    +MINUTE			= MINUTO			##	Converte un numero seriale in un minuto
    +MONTH			= MESE				##	Converte un numero seriale in un mese
    +NETWORKDAYS		= GIORNI.LAVORATIVI.TOT		##	Restituisce il numero di tutti i giorni lavorativi compresi fra due date
    +NOW			= ADESSO			##	Restituisce il numero seriale della data e dell'ora corrente
    +SECOND			= SECONDO			##	Converte un numero seriale in un secondo
    +TIME			= ORARIO			##	Restituisce il numero seriale di una determinata ora
    +TIMEVALUE		= ORARIO.VALORE			##	Converte un orario in forma di testo in un numero seriale
    +TODAY			= OGGI				##	Restituisce il numero seriale relativo alla data odierna
    +WEEKDAY			= GIORNO.SETTIMANA		##	Converte un numero seriale in un giorno della settimana
    +WEEKNUM			= NUM.SETTIMANA			##	Converte un numero seriale in un numero che rappresenta la posizione numerica di una settimana nell'anno
    +WORKDAY			= GIORNO.LAVORATIVO		##	Restituisce il numero della data prima o dopo un determinato numero di giorni lavorativi
    +YEAR			= ANNO				##	Converte un numero seriale in un anno
    +YEARFRAC		= FRAZIONE.ANNO			##	Restituisce la frazione dell'anno che rappresenta il numero dei giorni compresi tra una data_ iniziale e una data_finale
    +
    +
    +##
    +##	Engineering functions				Funzioni ingegneristiche
    +##
    +BESSELI			= BESSEL.I			##	Restituisce la funzione di Bessel modificata In(x)
    +BESSELJ			= BESSEL.J			##	Restituisce la funzione di Bessel Jn(x)
    +BESSELK			= BESSEL.K			##	Restituisce la funzione di Bessel modificata Kn(x)
    +BESSELY			= BESSEL.Y			##	Restituisce la funzione di Bessel Yn(x)
    +BIN2DEC			= BINARIO.DECIMALE		##	Converte un numero binario in decimale
    +BIN2HEX			= BINARIO.HEX			##	Converte un numero binario in esadecimale
    +BIN2OCT			= BINARIO.OCT			##	Converte un numero binario in ottale
    +COMPLEX			= COMPLESSO			##	Converte i coefficienti reali e immaginari in numeri complessi
    +CONVERT			= CONVERTI			##	Converte un numero da un sistema di misura in un altro
    +DEC2BIN			= DECIMALE.BINARIO		##	Converte un numero decimale in binario
    +DEC2HEX			= DECIMALE.HEX			##	Converte un numero decimale in esadecimale
    +DEC2OCT			= DECIMALE.OCT			##	Converte un numero decimale in ottale
    +DELTA			= DELTA				##	Verifica se due valori sono uguali
    +ERF			= FUNZ.ERRORE			##	Restituisce la funzione di errore
    +ERFC			= FUNZ.ERRORE.COMP		##	Restituisce la funzione di errore complementare
    +GESTEP			= SOGLIA			##	Verifica se un numero è maggiore del valore di soglia
    +HEX2BIN			= HEX.BINARIO			##	Converte un numero esadecimale in binario
    +HEX2DEC			= HEX.DECIMALE			##	Converte un numero esadecimale in decimale
    +HEX2OCT			= HEX.OCT			##	Converte un numero esadecimale in ottale
    +IMABS			= COMP.MODULO			##	Restituisce il valore assoluto (modulo) di un numero complesso
    +IMAGINARY		= COMP.IMMAGINARIO		##	Restituisce il coefficiente immaginario di un numero complesso
    +IMARGUMENT		= COMP.ARGOMENTO		##	Restituisce l'argomento theta, un angolo espresso in radianti
    +IMCONJUGATE		= COMP.CONIUGATO		##	Restituisce il complesso coniugato del numero complesso
    +IMCOS			= COMP.COS			##	Restituisce il coseno di un numero complesso
    +IMDIV			= COMP.DIV			##	Restituisce il quoziente di due numeri complessi
    +IMEXP			= COMP.EXP			##	Restituisce il valore esponenziale di un numero complesso
    +IMLN			= COMP.LN			##	Restituisce il logaritmo naturale di un numero complesso
    +IMLOG10			= COMP.LOG10			##	Restituisce il logaritmo in base 10 di un numero complesso
    +IMLOG2			= COMP.LOG2			##	Restituisce un logaritmo in base 2 di un numero complesso
    +IMPOWER			= COMP.POTENZA			##	Restituisce il numero complesso elevato a una potenza intera
    +IMPRODUCT		= COMP.PRODOTTO			##	Restituisce il prodotto di numeri complessi compresi tra 2 e 29
    +IMREAL			= COMP.PARTE.REALE		##	Restituisce il coefficiente reale di un numero complesso
    +IMSIN			= COMP.SEN			##	Restituisce il seno di un numero complesso
    +IMSQRT			= COMP.RADQ			##	Restituisce la radice quadrata di un numero complesso
    +IMSUB			= COMP.DIFF			##	Restituisce la differenza fra due numeri complessi
    +IMSUM			= COMP.SOMMA			##	Restituisce la somma di numeri complessi
    +OCT2BIN			= OCT.BINARIO			##	Converte un numero ottale in binario
    +OCT2DEC			= OCT.DECIMALE			##	Converte un numero ottale in decimale
    +OCT2HEX			= OCT.HEX			##	Converte un numero ottale in esadecimale
    +
    +
    +##
    +##	Financial functions				Funzioni finanziarie
    +##
    +ACCRINT			= INT.MATURATO.PER		##	Restituisce l'interesse maturato di un titolo che paga interessi periodici
    +ACCRINTM		= INT.MATURATO.SCAD		##	Restituisce l'interesse maturato di un titolo che paga interessi alla scadenza
    +AMORDEGRC		= AMMORT.DEGR			##	Restituisce l'ammortamento per ogni periodo contabile utilizzando un coefficiente di ammortamento
    +AMORLINC		= AMMORT.PER			##	Restituisce l'ammortamento per ogni periodo contabile
    +COUPDAYBS		= GIORNI.CED.INIZ.LIQ		##	Restituisce il numero dei giorni che vanno dall'inizio del periodo di durata della cedola alla data di liquidazione
    +COUPDAYS		= GIORNI.CED			##	Restituisce il numero dei giorni relativi al periodo della cedola che contiene la data di liquidazione
    +COUPDAYSNC		= GIORNI.CED.NUOVA		##	Restituisce il numero di giorni che vanno dalla data di liquidazione alla data della cedola successiva
    +COUPNCD			= DATA.CED.SUCC			##	Restituisce un numero che rappresenta la data della cedola successiva alla data di liquidazione
    +COUPNUM			= NUM.CED			##	Restituisce il numero di cedole pagabili fra la data di liquidazione e la data di scadenza
    +COUPPCD			= DATA.CED.PREC			##	Restituisce un numero che rappresenta la data della cedola precedente alla data di liquidazione
    +CUMIPMT			= INT.CUMUL			##	Restituisce l'interesse cumulativo pagato fra due periodi
    +CUMPRINC		= CAP.CUM			##	Restituisce il capitale cumulativo pagato per estinguere un debito fra due periodi
    +DB			= DB				##	Restituisce l'ammortamento di un bene per un periodo specificato utilizzando il metodo di ammortamento a quote fisse decrescenti
    +DDB			= AMMORT			##	Restituisce l'ammortamento di un bene per un periodo specificato utilizzando il metodo di ammortamento a doppie quote decrescenti o altri metodi specificati
    +DISC			= TASSO.SCONTO			##	Restituisce il tasso di sconto per un titolo
    +DOLLARDE		= VALUTA.DEC			##	Converte un prezzo valuta, espresso come frazione, in prezzo valuta, espresso come numero decimale
    +DOLLARFR		= VALUTA.FRAZ			##	Converte un prezzo valuta, espresso come numero decimale, in prezzo valuta, espresso come frazione
    +DURATION		= DURATA			##	Restituisce la durata annuale di un titolo con i pagamenti di interesse periodico
    +EFFECT			= EFFETTIVO			##	Restituisce l'effettivo tasso di interesse annuo
    +FV			= VAL.FUT			##	Restituisce il valore futuro di un investimento
    +FVSCHEDULE		= VAL.FUT.CAPITALE		##	Restituisce il valore futuro di un capitale iniziale dopo aver applicato una serie di tassi di interesse composti
    +INTRATE			= TASSO.INT			##	Restituisce il tasso di interesse per un titolo interamente investito
    +IPMT			= INTERESSI			##	Restituisce il valore degli interessi per un investimento relativo a un periodo specifico
    +IRR			= TIR.COST			##	Restituisce il tasso di rendimento interno per una serie di flussi di cassa
    +ISPMT			= INTERESSE.RATA		##	Calcola l'interesse di un investimento pagato durante un periodo specifico
    +MDURATION		= DURATA.M			##	Restituisce la durata Macauley modificata per un titolo con un valore presunto di € 100
    +MIRR			= TIR.VAR			##	Restituisce il tasso di rendimento interno in cui i flussi di cassa positivi e negativi sono finanziati a tassi differenti
    +NOMINAL			= NOMINALE			##	Restituisce il tasso di interesse nominale annuale
    +NPER			= NUM.RATE			##	Restituisce un numero di periodi relativi a un investimento
    +NPV			= VAN				##	Restituisce il valore attuale netto di un investimento basato su una serie di flussi di cassa periodici e sul tasso di sconto
    +ODDFPRICE		= PREZZO.PRIMO.IRR		##	Restituisce il prezzo di un titolo dal valore nominale di € 100 avente il primo periodo di durata irregolare
    +ODDFYIELD		= REND.PRIMO.IRR		##	Restituisce il rendimento di un titolo avente il primo periodo di durata irregolare
    +ODDLPRICE		= PREZZO.ULTIMO.IRR		##	Restituisce il prezzo di un titolo dal valore nominale di € 100 avente l'ultimo periodo di durata irregolare
    +ODDLYIELD		= REND.ULTIMO.IRR		##	Restituisce il rendimento di un titolo avente l'ultimo periodo di durata irregolare
    +PMT			= RATA				##	Restituisce il pagamento periodico di una rendita annua
    +PPMT			= P.RATA			##	Restituisce il pagamento sul capitale di un investimento per un dato periodo
    +PRICE			= PREZZO			##	Restituisce il prezzo di un titolo dal valore nominale di € 100 che paga interessi periodici
    +PRICEDISC		= PREZZO.SCONT			##	Restituisce il prezzo di un titolo scontato dal valore nominale di € 100
    +PRICEMAT		= PREZZO.SCAD			##	Restituisce il prezzo di un titolo dal valore nominale di € 100 che paga gli interessi alla scadenza
    +PV			= VA				##	Restituisce il valore attuale di un investimento
    +RATE			= TASSO				##	Restituisce il tasso di interesse per un periodo di un'annualità
    +RECEIVED		= RICEV.SCAD			##	Restituisce l'ammontare ricevuto alla scadenza di un titolo interamente investito
    +SLN			= AMMORT.COST			##	Restituisce l'ammortamento a quote costanti di un bene per un singolo periodo
    +SYD			= AMMORT.ANNUO			##	Restituisce l'ammortamento a somma degli anni di un bene per un periodo specificato
    +TBILLEQ			= BOT.EQUIV			##	Restituisce il rendimento equivalente ad un'obbligazione per un Buono ordinario del Tesoro
    +TBILLPRICE		= BOT.PREZZO			##	Restituisce il prezzo di un Buono del Tesoro dal valore nominale di € 100
    +TBILLYIELD		= BOT.REND			##	Restituisce il rendimento di un Buono del Tesoro
    +VDB			= AMMORT.VAR			##	Restituisce l'ammortamento di un bene per un periodo specificato o parziale utilizzando il metodo a doppie quote proporzionali ai valori residui
    +XIRR			= TIR.X				##	Restituisce il tasso di rendimento interno di un impiego di flussi di cassa
    +XNPV			= VAN.X				##	Restituisce il valore attuale netto di un impiego di flussi di cassa non necessariamente periodici
    +YIELD			= REND				##	Restituisce il rendimento di un titolo che frutta interessi periodici
    +YIELDDISC		= REND.TITOLI.SCONT		##	Restituisce il rendimento annuale di un titolo scontato, ad esempio un Buono del Tesoro
    +YIELDMAT		= REND.SCAD			##	Restituisce il rendimento annuo di un titolo che paga interessi alla scadenza
    +
    +
    +##
    +##	Information functions				Funzioni relative alle informazioni
    +##
    +CELL			= CELLA				##	Restituisce le informazioni sulla formattazione, la posizione o i contenuti di una cella
    +ERROR.TYPE		= ERRORE.TIPO			##	Restituisce un numero che corrisponde a un tipo di errore
    +INFO			= INFO				##	Restituisce le informazioni sull'ambiente operativo corrente
    +ISBLANK			= VAL.VUOTO			##	Restituisce VERO se il valore è vuoto
    +ISERR			= VAL.ERR			##	Restituisce VERO se il valore è un valore di errore qualsiasi tranne #N/D
    +ISERROR			= VAL.ERRORE			##	Restituisce VERO se il valore è un valore di errore qualsiasi
    +ISEVEN			= VAL.PARI			##	Restituisce VERO se il numero è pari
    +ISLOGICAL		= VAL.LOGICO			##	Restituisce VERO se il valore è un valore logico
    +ISNA			= VAL.NON.DISP			##	Restituisce VERO se il valore è un valore di errore #N/D
    +ISNONTEXT		= VAL.NON.TESTO			##	Restituisce VERO se il valore non è in formato testo
    +ISNUMBER		= VAL.NUMERO			##	Restituisce VERO se il valore è un numero
    +ISODD			= VAL.DISPARI			##	Restituisce VERO se il numero è dispari
    +ISREF			= VAL.RIF			##	Restituisce VERO se il valore è un riferimento
    +ISTEXT			= VAL.TESTO			##	Restituisce VERO se il valore è in formato testo
    +N			= NUM				##	Restituisce un valore convertito in numero
    +NA			= NON.DISP			##	Restituisce il valore di errore #N/D
    +TYPE			= TIPO				##	Restituisce un numero che indica il tipo di dati relativi a un valore
    +
    +
    +##
    +##	Logical functions				Funzioni logiche
    +##
    +AND			= E				##	Restituisce VERO se tutti gli argomenti sono VERO
    +FALSE			= FALSO				##	Restituisce il valore logico FALSO
    +IF			= SE				##	Specifica un test logico da eseguire
    +IFERROR			= SE.ERRORE			##	Restituisce un valore specificato se una formula fornisce un errore come risultato; in caso contrario, restituisce il risultato della formula
    +NOT			= NON				##	Inverte la logica degli argomenti
    +OR			= O				##	Restituisce VERO se un argomento qualsiasi è VERO
    +TRUE			= VERO				##	Restituisce il valore logico VERO
    +
    +
    +##
    +##	Lookup and reference functions			Funzioni di ricerca e di riferimento
    +##
    +ADDRESS			= INDIRIZZO			##	Restituisce un riferimento come testo in una singola cella di un foglio di lavoro
    +AREAS			= AREE				##	Restituisce il numero di aree in un riferimento
    +CHOOSE			= SCEGLI			##	Sceglie un valore da un elenco di valori
    +COLUMN			= RIF.COLONNA			##	Restituisce il numero di colonna di un riferimento
    +COLUMNS			= COLONNE			##	Restituisce il numero di colonne in un riferimento
    +HLOOKUP			= CERCA.ORIZZ			##	Effettua una ricerca nella riga superiore di una matrice e restituisce il valore della cella specificata
    +HYPERLINK		= COLLEG.IPERTESTUALE		##	Crea un collegamento che apre un documento memorizzato in un server di rete, una rete Intranet o Internet
    +INDEX			= INDICE			##	Utilizza un indice per scegliere un valore da un riferimento o da una matrice
    +INDIRECT		= INDIRETTO			##	Restituisce un riferimento specificato da un valore testo
    +LOOKUP			= CERCA				##	Ricerca i valori in un vettore o in una matrice
    +MATCH			= CONFRONTA			##	Ricerca i valori in un riferimento o in una matrice
    +OFFSET			= SCARTO			##	Restituisce uno scarto di riferimento da un riferimento dato
    +ROW			= RIF.RIGA			##	Restituisce il numero di riga di un riferimento
    +ROWS			= RIGHE				##	Restituisce il numero delle righe in un riferimento
    +RTD			= DATITEMPOREALE		##	Recupera dati in tempo reale da un programma che supporta l'automazione COM (automazione: Metodo per utilizzare gli oggetti di un'applicazione da un'altra applicazione o da un altro strumento di sviluppo. Precedentemente nota come automazione OLE, l'automazione è uno standard del settore e una caratteristica del modello COM (Component Object Model).)
    +TRANSPOSE		= MATR.TRASPOSTA		##	Restituisce la trasposizione di una matrice
    +VLOOKUP			= CERCA.VERT			##	Effettua una ricerca nella prima colonna di una matrice e si sposta attraverso la riga per restituire il valore di una cella
    +
    +
    +##
    +##	Math and trigonometry functions			Funzioni matematiche e trigonometriche
    +##
    +ABS			= ASS				##	Restituisce il valore assoluto di un numero.
    +ACOS			= ARCCOS			##	Restituisce l'arcocoseno di un numero
    +ACOSH			= ARCCOSH			##	Restituisce l'inverso del coseno iperbolico di un numero
    +ASIN			= ARCSEN			##	Restituisce l'arcoseno di un numero
    +ASINH			= ARCSENH			##	Restituisce l'inverso del seno iperbolico di un numero
    +ATAN			= ARCTAN			##	Restituisce l'arcotangente di un numero
    +ATAN2			= ARCTAN.2			##	Restituisce l'arcotangente delle coordinate x e y specificate
    +ATANH			= ARCTANH			##	Restituisce l'inverso della tangente iperbolica di un numero
    +CEILING			= ARROTONDA.ECCESSO		##	Arrotonda un numero per eccesso all'intero più vicino o al multiplo più vicino a peso
    +COMBIN			= COMBINAZIONE			##	Restituisce il numero di combinazioni possibili per un numero assegnato di elementi
    +COS			= COS				##	Restituisce il coseno dell'angolo specificato
    +COSH			= COSH				##	Restituisce il coseno iperbolico di un numero
    +DEGREES			= GRADI				##	Converte i radianti in gradi
    +EVEN			= PARI				##	Arrotonda il valore assoluto di un numero per eccesso al più vicino intero pari
    +EXP			= ESP				##	Restituisce il numero e elevato alla potenza di num
    +FACT			= FATTORIALE			##	Restituisce il fattoriale di un numero
    +FACTDOUBLE		= FATT.DOPPIO			##	Restituisce il fattoriale doppio di un numero
    +FLOOR			= ARROTONDA.DIFETTO		##	Arrotonda un numero per difetto al multiplo più vicino a zero
    +GCD			= MCD				##	Restituisce il massimo comune divisore
    +INT			= INT				##	Arrotonda un numero per difetto al numero intero più vicino
    +LCM			= MCM				##	Restituisce il minimo comune multiplo
    +LN			= LN				##	Restituisce il logaritmo naturale di un numero
    +LOG			= LOG				##	Restituisce il logaritmo di un numero in una specificata base
    +LOG10			= LOG10				##	Restituisce il logaritmo in base 10 di un numero
    +MDETERM			= MATR.DETERM			##	Restituisce il determinante di una matrice
    +MINVERSE		= MATR.INVERSA			##	Restituisce l'inverso di una matrice
    +MMULT			= MATR.PRODOTTO			##	Restituisce il prodotto di due matrici
    +MOD			= RESTO				##	Restituisce il resto della divisione
    +MROUND			= ARROTONDA.MULTIPLO		##	Restituisce un numero arrotondato al multiplo desiderato
    +MULTINOMIAL		= MULTINOMIALE			##	Restituisce il multinomiale di un insieme di numeri
    +ODD			= DISPARI			##	Arrotonda un numero per eccesso al più vicino intero dispari
    +PI			= PI.GRECO			##	Restituisce il valore di pi greco
    +POWER			= POTENZA			##	Restituisce il risultato di un numero elevato a potenza
    +PRODUCT			= PRODOTTO			##	Moltiplica i suoi argomenti
    +QUOTIENT		= QUOZIENTE			##	Restituisce la parte intera di una divisione
    +RADIANS			= RADIANTI			##	Converte i gradi in radianti
    +RAND			= CASUALE			##	Restituisce un numero casuale compreso tra 0 e 1
    +RANDBETWEEN		= CASUALE.TRA			##	Restituisce un numero casuale compreso tra i numeri specificati
    +ROMAN			= ROMANO			##	Restituisce il numero come numero romano sotto forma di testo
    +ROUND			= ARROTONDA			##	Arrotonda il numero al numero di cifre specificato
    +ROUNDDOWN		= ARROTONDA.PER.DIF		##	Arrotonda il valore assoluto di un numero per difetto
    +ROUNDUP			= ARROTONDA.PER.ECC		##	Arrotonda il valore assoluto di un numero per eccesso
    +SERIESSUM		= SOMMA.SERIE			##	Restituisce la somma di una serie di potenze in base alla formula
    +SIGN			= SEGNO				##	Restituisce il segno di un numero
    +SIN			= SEN				##	Restituisce il seno di un dato angolo
    +SINH			= SENH				##	Restituisce il seno iperbolico di un numero
    +SQRT			= RADQ				##	Restituisce una radice quadrata
    +SQRTPI			= RADQ.PI.GRECO			##	Restituisce la radice quadrata di un numero (numero * pi greco)
    +SUBTOTAL		= SUBTOTALE			##	Restituisce un subtotale in un elenco o in un database
    +SUM			= SOMMA				##	Somma i suoi argomenti
    +SUMIF			= SOMMA.SE			##	Somma le celle specificate da un dato criterio
    +SUMIFS			= SOMMA.PIÙ.SE			##	Somma le celle in un intervallo che soddisfano più criteri
    +SUMPRODUCT		= MATR.SOMMA.PRODOTTO		##	Restituisce la somma dei prodotti dei componenti corrispondenti della matrice
    +SUMSQ			= SOMMA.Q			##	Restituisce la somma dei quadrati degli argomenti
    +SUMX2MY2		= SOMMA.DIFF.Q			##	Restituisce la somma della differenza dei quadrati dei corrispondenti elementi in due matrici
    +SUMX2PY2		= SOMMA.SOMMA.Q			##	Restituisce la somma della somma dei quadrati dei corrispondenti elementi in due matrici
    +SUMXMY2			= SOMMA.Q.DIFF			##	Restituisce la somma dei quadrati delle differenze dei corrispondenti elementi in due matrici
    +TAN			= TAN				##	Restituisce la tangente di un numero
    +TANH			= TANH				##	Restituisce la tangente iperbolica di un numero
    +TRUNC			= TRONCA			##	Tronca la parte decimale di un numero
    +
    +
    +##
    +##	Statistical functions				Funzioni statistiche
    +##
    +AVEDEV			= MEDIA.DEV			##	Restituisce la media delle deviazioni assolute delle coordinate rispetto alla loro media
    +AVERAGE			= MEDIA				##	Restituisce la media degli argomenti
    +AVERAGEA		= MEDIA.VALORI			##	Restituisce la media degli argomenti, inclusi i numeri, il testo e i valori logici
    +AVERAGEIF		= MEDIA.SE			##	Restituisce la media aritmetica di tutte le celle in un intervallo che soddisfano un determinato criterio
    +AVERAGEIFS		= MEDIA.PIÙ.SE			##	Restituisce la media aritmetica di tutte le celle che soddisfano più criteri
    +BETADIST		= DISTRIB.BETA			##	Restituisce la funzione di distribuzione cumulativa beta
    +BETAINV			= INV.BETA			##	Restituisce l'inverso della funzione di distribuzione cumulativa per una distribuzione beta specificata
    +BINOMDIST		= DISTRIB.BINOM			##	Restituisce la distribuzione binomiale per il termine individuale
    +CHIDIST			= DISTRIB.CHI			##	Restituisce la probabilità a una coda per la distribuzione del chi quadrato
    +CHIINV			= INV.CHI			##	Restituisce l'inverso della probabilità ad una coda per la distribuzione del chi quadrato
    +CHITEST			= TEST.CHI			##	Restituisce il test per l'indipendenza
    +CONFIDENCE		= CONFIDENZA			##	Restituisce l'intervallo di confidenza per una popolazione
    +CORREL			= CORRELAZIONE			##	Restituisce il coefficiente di correlazione tra due insiemi di dati
    +COUNT			= CONTA.NUMERI			##	Conta la quantità di numeri nell'elenco di argomenti
    +COUNTA			= CONTA.VALORI			##	Conta il numero di valori nell'elenco di argomenti
    +COUNTBLANK		= CONTA.VUOTE			##	Conta il numero di celle vuote all'interno di un intervallo
    +COUNTIF			= CONTA.SE			##	Conta il numero di celle all'interno di un intervallo che soddisfa i criteri specificati
    +COUNTIFS		= CONTA.PIÙ.SE			##	Conta il numero di celle in un intervallo che soddisfano più criteri.
    +COVAR			= COVARIANZA			##	Calcola la covarianza, la media dei prodotti delle deviazioni accoppiate
    +CRITBINOM		= CRIT.BINOM			##	Restituisce il più piccolo valore per il quale la distribuzione cumulativa binomiale risulta maggiore o uguale ad un valore di criterio
    +DEVSQ			= DEV.Q				##	Restituisce la somma dei quadrati delle deviazioni
    +EXPONDIST		= DISTRIB.EXP			##	Restituisce la distribuzione esponenziale
    +FDIST			= DISTRIB.F			##	Restituisce la distribuzione di probabilità F
    +FINV			= INV.F				##	Restituisce l'inverso della distribuzione della probabilità F
    +FISHER			= FISHER			##	Restituisce la trasformazione di Fisher
    +FISHERINV		= INV.FISHER			##	Restituisce l'inverso della trasformazione di Fisher
    +FORECAST		= PREVISIONE			##	Restituisce i valori lungo una tendenza lineare
    +FREQUENCY		= FREQUENZA			##	Restituisce la distribuzione di frequenza come matrice verticale
    +FTEST			= TEST.F			##	Restituisce il risultato di un test F
    +GAMMADIST		= DISTRIB.GAMMA			##	Restituisce la distribuzione gamma
    +GAMMAINV		= INV.GAMMA			##	Restituisce l'inverso della distribuzione cumulativa gamma
    +GAMMALN			= LN.GAMMA			##	Restituisce il logaritmo naturale della funzione gamma, G(x)
    +GEOMEAN			= MEDIA.GEOMETRICA		##	Restituisce la media geometrica
    +GROWTH			= CRESCITA			##	Restituisce i valori lungo una linea di tendenza esponenziale
    +HARMEAN			= MEDIA.ARMONICA		##	Restituisce la media armonica
    +HYPGEOMDIST		= DISTRIB.IPERGEOM		##	Restituisce la distribuzione ipergeometrica
    +INTERCEPT		= INTERCETTA			##	Restituisce l'intercetta della retta di regressione lineare
    +KURT			= CURTOSI			##	Restituisce la curtosi di un insieme di dati
    +LARGE			= GRANDE			##	Restituisce il k-esimo valore più grande in un insieme di dati
    +LINEST			= REGR.LIN			##	Restituisce i parametri di una tendenza lineare
    +LOGEST			= REGR.LOG			##	Restituisce i parametri di una linea di tendenza esponenziale
    +LOGINV			= INV.LOGNORM			##	Restituisce l'inverso di una distribuzione lognormale
    +LOGNORMDIST		= DISTRIB.LOGNORM		##	Restituisce la distribuzione lognormale cumulativa
    +MAX			= MAX				##	Restituisce il valore massimo in un elenco di argomenti
    +MAXA			= MAX.VALORI			##	Restituisce il valore massimo in un elenco di argomenti, inclusi i numeri, il testo e i valori logici
    +MEDIAN			= MEDIANA			##	Restituisce la mediana dei numeri specificati
    +MIN			= MIN				##	Restituisce il valore minimo in un elenco di argomenti
    +MINA			= MIN.VALORI			##	Restituisce il più piccolo valore in un elenco di argomenti, inclusi i numeri, il testo e i valori logici
    +MODE			= MODA				##	Restituisce il valore più comune in un insieme di dati
    +NEGBINOMDIST		= DISTRIB.BINOM.NEG		##	Restituisce la distribuzione binomiale negativa
    +NORMDIST		= DISTRIB.NORM			##	Restituisce la distribuzione cumulativa normale
    +NORMINV			= INV.NORM			##	Restituisce l'inverso della distribuzione cumulativa normale standard
    +NORMSDIST		= DISTRIB.NORM.ST		##	Restituisce la distribuzione cumulativa normale standard
    +NORMSINV		= INV.NORM.ST			##	Restituisce l'inverso della distribuzione cumulativa normale
    +PEARSON			= PEARSON			##	Restituisce il coefficiente del momento di correlazione di Pearson
    +PERCENTILE		= PERCENTILE			##	Restituisce il k-esimo dato percentile di valori in un intervallo
    +PERCENTRANK		= PERCENT.RANGO			##	Restituisce il rango di un valore in un insieme di dati come percentuale
    +PERMUT			= PERMUTAZIONE			##	Restituisce il numero delle permutazioni per un determinato numero di oggetti
    +POISSON			= POISSON			##	Restituisce la distribuzione di Poisson
    +PROB			= PROBABILITÀ			##	Calcola la probabilità che dei valori in un intervallo siano compresi tra due limiti
    +QUARTILE		= QUARTILE			##	Restituisce il quartile di un insieme di dati
    +RANK			= RANGO				##	Restituisce il rango di un numero in un elenco di numeri
    +RSQ			= RQ				##	Restituisce la radice quadrata del coefficiente di momento di correlazione di Pearson
    +SKEW			= ASIMMETRIA			##	Restituisce il grado di asimmetria di una distribuzione
    +SLOPE			= PENDENZA			##	Restituisce la pendenza di una retta di regressione lineare
    +SMALL			= PICCOLO			##	Restituisce il k-esimo valore più piccolo in un insieme di dati
    +STANDARDIZE		= NORMALIZZA			##	Restituisce un valore normalizzato
    +STDEV			= DEV.ST			##	Restituisce una stima della deviazione standard sulla base di un campione
    +STDEVA			= DEV.ST.VALORI			##	Restituisce una stima della deviazione standard sulla base di un campione, inclusi i numeri, il testo e i valori logici
    +STDEVP			= DEV.ST.POP			##	Calcola la deviazione standard sulla base di un'intera popolazione
    +STDEVPA			= DEV.ST.POP.VALORI		##	Calcola la deviazione standard sulla base sull'intera popolazione, inclusi i numeri, il testo e i valori logici
    +STEYX			= ERR.STD.YX			##	Restituisce l'errore standard del valore previsto per y per ogni valore x nella regressione
    +TDIST			= DISTRIB.T			##	Restituisce la distribuzione t di Student
    +TINV			= INV.T				##	Restituisce l'inversa della distribuzione t di Student
    +TREND			= TENDENZA			##	Restituisce i valori lungo una linea di tendenza lineare
    +TRIMMEAN		= MEDIA.TRONCATA		##	Restituisce la media della parte interna di un insieme di dati
    +TTEST			= TEST.T			##	Restituisce la probabilità associata ad un test t di Student
    +VAR			= VAR				##	Stima la varianza sulla base di un campione
    +VARA			= VAR.VALORI			##	Stima la varianza sulla base di un campione, inclusi i numeri, il testo e i valori logici
    +VARP			= VAR.POP			##	Calcola la varianza sulla base dell'intera popolazione
    +VARPA			= VAR.POP.VALORI		##	Calcola la deviazione standard sulla base sull'intera popolazione, inclusi i numeri, il testo e i valori logici
    +WEIBULL			= WEIBULL			##	Restituisce la distribuzione di Weibull
    +ZTEST			= TEST.Z			##	Restituisce il valore di probabilità a una coda per un test z
    +
    +
    +##
    +##	Text functions					Funzioni di testo
    +##
    +ASC			= ASC				##	Modifica le lettere inglesi o il katakana a doppio byte all'interno di una stringa di caratteri in caratteri a singolo byte
    +BAHTTEXT		= BAHTTESTO			##	Converte un numero in testo, utilizzando il formato valuta ß (baht)
    +CHAR			= CODICE.CARATT			##	Restituisce il carattere specificato dal numero di codice
    +CLEAN			= LIBERA			##	Elimina dal testo tutti i caratteri che non è possibile stampare
    +CODE			= CODICE			##	Restituisce il codice numerico del primo carattere di una stringa di testo
    +CONCATENATE		= CONCATENA			##	Unisce diversi elementi di testo in un unico elemento di testo
    +DOLLAR			= VALUTA			##	Converte un numero in testo, utilizzando il formato valuta € (euro)
    +EXACT			= IDENTICO			##	Verifica se due valori di testo sono uguali
    +FIND			= TROVA				##	Rileva un valore di testo all'interno di un altro (distinzione tra maiuscole e minuscole)
    +FINDB			= TROVA.B			##	Rileva un valore di testo all'interno di un altro (distinzione tra maiuscole e minuscole)
    +FIXED			= FISSO				##	Formatta un numero come testo con un numero fisso di decimali
    +JIS			= ORDINAMENTO.JIS		##	Modifica le lettere inglesi o i caratteri katakana a byte singolo all'interno di una stringa di caratteri in caratteri a byte doppio.
    +LEFT			= SINISTRA			##	Restituisce il carattere più a sinistra di un valore di testo
    +LEFTB			= SINISTRA.B			##	Restituisce il carattere più a sinistra di un valore di testo
    +LEN			= LUNGHEZZA			##	Restituisce il numero di caratteri di una stringa di testo
    +LENB			= LUNB				##	Restituisce il numero di caratteri di una stringa di testo
    +LOWER			= MINUSC			##	Converte il testo in lettere minuscole
    +MID			= MEDIA				##	Restituisce un numero specifico di caratteri di una stringa di testo a partire dalla posizione specificata
    +MIDB			= MEDIA.B			##	Restituisce un numero specifico di caratteri di una stringa di testo a partire dalla posizione specificata
    +PHONETIC		= FURIGANA			##	Estrae i caratteri fonetici (furigana) da una stringa di testo.
    +PROPER			= MAIUSC.INIZ			##	Converte in maiuscolo la prima lettera di ogni parola di un valore di testo
    +REPLACE			= RIMPIAZZA			##	Sostituisce i caratteri all'interno di un testo
    +REPLACEB		= SOSTITUISCI.B			##	Sostituisce i caratteri all'interno di un testo
    +REPT			= RIPETI			##	Ripete un testo per un dato numero di volte
    +RIGHT			= DESTRA			##	Restituisce il carattere più a destra di un valore di testo
    +RIGHTB			= DESTRA.B			##	Restituisce il carattere più a destra di un valore di testo
    +SEARCH			= RICERCA			##	Rileva un valore di testo all'interno di un altro (non è sensibile alle maiuscole e minuscole)
    +SEARCHB			= CERCA.B			##	Rileva un valore di testo all'interno di un altro (non è sensibile alle maiuscole e minuscole)
    +SUBSTITUTE		= SOSTITUISCI			##	Sostituisce il nuovo testo al testo contenuto in una stringa
    +T			= T				##	Converte gli argomenti in testo
    +TEXT			= TESTO				##	Formatta un numero e lo converte in testo
    +TRIM			= ANNULLA.SPAZI			##	Elimina gli spazi dal testo
    +UPPER			= MAIUSC			##	Converte il testo in lettere maiuscole
    +VALUE			= VALORE			##	Converte un argomento di testo in numero
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/nl/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/nl/config
    new file mode 100644
    index 00000000000..8376022d1c1
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/nl/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= €
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #LEEG!
    +DIV0	= #DEEL/0!
    +VALUE	= #WAARDE!
    +REF	= #VERW!
    +NAME	= #NAAM?
    +NUM	= #GETAL!
    +NA	= #N/B
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/nl/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/nl/functions
    new file mode 100644
    index 00000000000..2518f421672
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/nl/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions			Automatiseringsfuncties en functies in invoegtoepassingen
    +##
    +GETPIVOTDATA		= DRAAITABEL.OPHALEN		##	Geeft gegevens uit een draaitabelrapport als resultaat
    +
    +
    +##
    +##	Cube functions					Kubusfuncties
    +##
    +CUBEKPIMEMBER		= KUBUSKPILID			##	Retourneert de naam, eigenschap en waarde van een KPI (prestatie-indicator) en geeft de naam en de eigenschap in de cel weer. Een KPI is een meetbare waarde, zoals de maandelijkse brutowinst of de omzet per kwartaal per werknemer, die wordt gebruikt om de prestaties van een organisatie te bewaken
    +CUBEMEMBER		= KUBUSLID			##	Retourneert een lid of tupel in een kubushiërarchie. Wordt gebruikt om te controleren of het lid of de tupel in de kubus aanwezig is
    +CUBEMEMBERPROPERTY	= KUBUSLIDEIGENSCHAP		##	Retourneert de waarde van een lideigenschap in de kubus. Wordt gebruikt om te controleren of de lidnaam in de kubus bestaat en retourneert de opgegeven eigenschap voor dit lid
    +CUBERANKEDMEMBER	= KUBUSGERANGCHIKTLID		##	Retourneert het zoveelste, gerangschikte lid in een set. Wordt gebruikt om een of meer elementen in een set te retourneren, zoals de tien beste verkopers of de tien beste studenten
    +CUBESET			= KUBUSSET			##	Definieert een berekende set leden of tupels door een ingestelde expressie naar de kubus op de server te sturen, alwaar de set wordt gemaakt en vervolgens wordt geretourneerd naar Microsoft Office Excel
    +CUBESETCOUNT		= KUBUSSETAANTAL		##	Retourneert het aantal onderdelen in een set
    +CUBEVALUE		= KUBUSWAARDE			##	Retourneert een samengestelde waarde van een kubus
    +
    +
    +##
    +##	Database functions				Databasefuncties
    +##
    +DAVERAGE		= DBGEMIDDELDE			##	Berekent de gemiddelde waarde in geselecteerde databasegegevens
    +DCOUNT			= DBAANTAL			##	Telt de cellen met getallen in een database
    +DCOUNTA			= DBAANTALC			##	Telt de niet-lege cellen in een database
    +DGET			= DBLEZEN			##	Retourneert één record dat voldoet aan de opgegeven criteria uit een database
    +DMAX			= DBMAX				##	Retourneert de maximumwaarde in de geselecteerde databasegegevens
    +DMIN			= DBMIN				##	Retourneert de minimumwaarde in de geselecteerde databasegegevens
    +DPRODUCT		= DBPRODUCT			##	Vermenigvuldigt de waarden in een bepaald veld van de records die voldoen aan de criteria in een database
    +DSTDEV			= DBSTDEV			##	Maakt een schatting van de standaarddeviatie op basis van een steekproef uit geselecteerde databasegegevens
    +DSTDEVP			= DBSTDEVP			##	Berekent de standaarddeviatie op basis van de volledige populatie van geselecteerde databasegegevens
    +DSUM			= DBSOM				##	Telt de getallen uit een kolom records in de database op die voldoen aan de criteria
    +DVAR			= DBVAR				##	Maakt een schatting van de variantie op basis van een steekproef uit geselecteerde databasegegevens
    +DVARP			= DBVARP			##	Berekent de variantie op basis van de volledige populatie van geselecteerde databasegegevens
    +
    +
    +##
    +##	Date and time functions				Datum- en tijdfuncties
    +##
    +DATE			= DATUM				##	Geeft als resultaat het seriële getal van een opgegeven datum
    +DATEVALUE		= DATUMWAARDE			##	Converteert een datum in de vorm van tekst naar een serieel getal
    +DAY			= DAG				##	Converteert een serieel getal naar een dag van de maand
    +DAYS360			= DAGEN360			##	Berekent het aantal dagen tussen twee datums op basis van een jaar met 360 dagen
    +EDATE			= ZELFDE.DAG			##	Geeft als resultaat het seriële getal van een datum die het opgegeven aantal maanden voor of na de begindatum ligt
    +EOMONTH			= LAATSTE.DAG			##	Geeft als resultaat het seriële getal van de laatste dag van de maand voor of na het opgegeven aantal maanden
    +HOUR			= UUR				##	Converteert een serieel getal naar uren
    +MINUTE			= MINUUT			##	Converteert een serieel naar getal minuten
    +MONTH			= MAAND				##	Converteert een serieel getal naar een maand
    +NETWORKDAYS		= NETTO.WERKDAGEN		##	Geeft als resultaat het aantal hele werkdagen tussen twee datums
    +NOW			= NU				##	Geeft als resultaat het seriële getal van de huidige datum en tijd
    +SECOND			= SECONDE			##	Converteert een serieel getal naar seconden
    +TIME			= TIJD				##	Geeft als resultaat het seriële getal van een bepaald tijdstip
    +TIMEVALUE		= TIJDWAARDE			##	Converteert de tijd in de vorm van tekst naar een serieel getal
    +TODAY			= VANDAAG			##	Geeft als resultaat het seriële getal van de huidige datum
    +WEEKDAY			= WEEKDAG			##	Converteert een serieel getal naar een weekdag
    +WEEKNUM			= WEEKNUMMER			##	Converteert een serieel getal naar een weeknummer
    +WORKDAY			= WERKDAG			##	Geeft als resultaat het seriële getal van de datum voor of na een bepaald aantal werkdagen
    +YEAR			= JAAR				##	Converteert een serieel getal naar een jaar
    +YEARFRAC		= JAAR.DEEL			##	Geeft als resultaat het gedeelte van het jaar, uitgedrukt in het aantal hele dagen tussen begindatum en einddatum
    +
    +
    +##
    +##	Engineering functions				Technische functies
    +##
    +BESSELI			= BESSEL.Y			##	Geeft als resultaat de gewijzigde Bessel-functie In(x)
    +BESSELJ			= BESSEL.J			##	Geeft als resultaat de Bessel-functie Jn(x)
    +BESSELK			= BESSEL.K			##	Geeft als resultaat de gewijzigde Bessel-functie Kn(x)
    +BESSELY			= BESSEL.Y			##	Geeft als resultaat de gewijzigde Bessel-functie Yn(x)
    +BIN2DEC			= BIN.N.DEC			##	Converteert een binair getal naar een decimaal getal
    +BIN2HEX			= BIN.N.HEX			##	Converteert een binair getal naar een hexadecimaal getal
    +BIN2OCT			= BIN.N.OCT			##	Converteert een binair getal naar een octaal getal
    +COMPLEX			= COMPLEX			##	Converteert reële en imaginaire coëfficiënten naar een complex getal
    +CONVERT			= CONVERTEREN			##	Converteert een getal in de ene maateenheid naar een getal in een andere maateenheid
    +DEC2BIN			= DEC.N.BIN			##	Converteert een decimaal getal naar een binair getal
    +DEC2HEX			= DEC.N.HEX			##	Converteert een decimaal getal naar een hexadecimaal getal
    +DEC2OCT			= DEC.N.OCT			##	Converteert een decimaal getal naar een octaal getal
    +DELTA			= DELTA				##	Test of twee waarden gelijk zijn
    +ERF			= FOUTFUNCTIE			##	Geeft als resultaat de foutfunctie
    +ERFC			= FOUT.COMPLEMENT		##	Geeft als resultaat de complementaire foutfunctie
    +GESTEP			= GROTER.DAN			##	Test of een getal groter is dan de drempelwaarde
    +HEX2BIN			= HEX.N.BIN			##	Converteert een hexadecimaal getal naar een binair getal
    +HEX2DEC			= HEX.N.DEC			##	Converteert een hexadecimaal getal naar een decimaal getal
    +HEX2OCT			= HEX.N.OCT			##	Converteert een hexadecimaal getal naar een octaal getal
    +IMABS			= C.ABS				##	Geeft als resultaat de absolute waarde (modulus) van een complex getal
    +IMAGINARY		= C.IM.DEEL			##	Geeft als resultaat de imaginaire coëfficiënt van een complex getal
    +IMARGUMENT		= C.ARGUMENT			##	Geeft als resultaat het argument thèta, een hoek uitgedrukt in radialen
    +IMCONJUGATE		= C.TOEGEVOEGD			##	Geeft als resultaat het complexe toegevoegde getal van een complex getal
    +IMCOS			= C.COS				##	Geeft als resultaat de cosinus van een complex getal
    +IMDIV			= C.QUOTIENT			##	Geeft als resultaat het quotiënt van twee complexe getallen
    +IMEXP			= C.EXP				##	Geeft als resultaat de exponent van een complex getal
    +IMLN			= C.LN				##	Geeft als resultaat de natuurlijke logaritme van een complex getal
    +IMLOG10			= C.LOG10			##	Geeft als resultaat de logaritme met grondtal 10 van een complex getal
    +IMLOG2			= C.LOG2			##	Geeft als resultaat de logaritme met grondtal 2 van een complex getal
    +IMPOWER			= C.MACHT			##	Geeft als resultaat een complex getal dat is verheven tot de macht van een geheel getal
    +IMPRODUCT		= C.PRODUCT			##	Geeft als resultaat het product van complexe getallen
    +IMREAL			= C.REEEL.DEEL			##	Geeft als resultaat de reële coëfficiënt van een complex getal
    +IMSIN			= C.SIN				##	Geeft als resultaat de sinus van een complex getal
    +IMSQRT			= C.WORTEL			##	Geeft als resultaat de vierkantswortel van een complex getal
    +IMSUB			= C.VERSCHIL			##	Geeft als resultaat het verschil tussen twee complexe getallen
    +IMSUM			= C.SOM				##	Geeft als resultaat de som van complexe getallen
    +OCT2BIN			= OCT.N.BIN			##	Converteert een octaal getal naar een binair getal
    +OCT2DEC			= OCT.N.DEC			##	Converteert een octaal getal naar een decimaal getal
    +OCT2HEX			= OCT.N.HEX			##	Converteert een octaal getal naar een hexadecimaal getal
    +
    +
    +##
    +##	Financial functions				Financiële functies
    +##
    +ACCRINT			= SAMENG.RENTE			##	Berekent de opgelopen rente voor een waardepapier waarvan de rente periodiek wordt uitgekeerd
    +ACCRINTM		= SAMENG.RENTE.V		##	Berekent de opgelopen rente voor een waardepapier waarvan de rente op de vervaldatum wordt uitgekeerd
    +AMORDEGRC		= AMORDEGRC			##	Geeft als resultaat de afschrijving voor elke boekingsperiode door een afschrijvingscoëfficiënt toe te passen
    +AMORLINC		= AMORLINC			##	Berekent de afschrijving voor elke boekingsperiode
    +COUPDAYBS		= COUP.DAGEN.BB			##	Berekent het aantal dagen vanaf het begin van de coupontermijn tot de stortingsdatum
    +COUPDAYS		= COUP.DAGEN			##	Geeft als resultaat het aantal dagen in de coupontermijn waarin de stortingsdatum valt
    +COUPDAYSNC		= COUP.DAGEN.VV			##	Geeft als resultaat het aantal dagen vanaf de stortingsdatum tot de volgende couponvervaldatum
    +COUPNCD			= COUP.DATUM.NB			##	Geeft als resultaat de volgende coupondatum na de stortingsdatum
    +COUPNUM			= COUP.AANTAL			##	Geeft als resultaat het aantal coupons dat nog moet worden uitbetaald tussen de stortingsdatum en de vervaldatum
    +COUPPCD			= COUP.DATUM.VB			##	Geeft als resultaat de vorige couponvervaldatum vóór de stortingsdatum
    +CUMIPMT			= CUM.RENTE			##	Geeft als resultaat de cumulatieve rente die tussen twee termijnen is uitgekeerd
    +CUMPRINC		= CUM.HOOFDSOM			##	Geeft als resultaat de cumulatieve hoofdsom van een lening die tussen twee termijnen is terugbetaald
    +DB			= DB				##	Geeft als resultaat de afschrijving van activa voor een bepaalde periode met behulp van de 'fixed declining balance'-methode
    +DDB			= DDB				##	Geeft als resultaat de afschrijving van activa over een bepaalde termijn met behulp van de 'double declining balance'-methode of een andere methode die u opgeeft
    +DISC			= DISCONTO			##	Geeft als resultaat het discontopercentage voor een waardepapier
    +DOLLARDE		= EURO.DE			##	Converteert een prijs in euro's, uitgedrukt in een breuk, naar een prijs in euro's, uitgedrukt in een decimaal getal
    +DOLLARFR		= EURO.BR			##	Converteert een prijs in euro's, uitgedrukt in een decimaal getal, naar een prijs in euro's, uitgedrukt in een breuk
    +DURATION		= DUUR				##	Geeft als resultaat de gewogen gemiddelde looptijd voor een waardepapier met periodieke rentebetalingen
    +EFFECT			= EFFECT.RENTE			##	Geeft als resultaat het effectieve jaarlijkse rentepercentage
    +FV			= TW				##	Geeft als resultaat de toekomstige waarde van een investering
    +FVSCHEDULE		= TOEK.WAARDE2			##	Geeft als resultaat de toekomstige waarde van een bepaalde hoofdsom na het toepassen van een reeks samengestelde rentepercentages
    +INTRATE			= RENTEPERCENTAGE		##	Geeft als resultaat het rentepercentage voor een volgestort waardepapier
    +IPMT			= IBET				##	Geeft als resultaat de te betalen rente voor een investering over een bepaalde termijn
    +IRR			= IR				##	Geeft als resultaat de interne rentabiliteit voor een reeks cashflows
    +ISPMT			= ISBET				##	Geeft als resultaat de rente die is betaald tijdens een bepaalde termijn van een investering
    +MDURATION		= AANG.DUUR			##	Geeft als resultaat de aangepaste Macauley-looptijd voor een waardepapier, aangenomen dat de nominale waarde € 100 bedraagt
    +MIRR			= GIR				##	Geeft als resultaat de interne rentabiliteit voor een serie cashflows, waarbij voor betalingen een ander rentepercentage geldt dan voor inkomsten
    +NOMINAL			= NOMINALE.RENTE		##	Geeft als resultaat het nominale jaarlijkse rentepercentage
    +NPER			= NPER				##	Geeft als resultaat het aantal termijnen van een investering
    +NPV			= NHW				##	Geeft als resultaat de netto huidige waarde van een investering op basis van een reeks periodieke cashflows en een discontopercentage
    +ODDFPRICE		= AFW.ET.PRIJS			##	Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier met een afwijkende eerste termijn
    +ODDFYIELD		= AFW.ET.REND			##	Geeft als resultaat het rendement voor een waardepapier met een afwijkende eerste termijn
    +ODDLPRICE		= AFW.LT.PRIJS			##	Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier met een afwijkende laatste termijn
    +ODDLYIELD		= AFW.LT.REND			##	Geeft als resultaat het rendement voor een waardepapier met een afwijkende laatste termijn
    +PMT			= BET				##	Geeft als resultaat de periodieke betaling voor een annuïteit
    +PPMT			= PBET				##	Geeft als resultaat de afbetaling op de hoofdsom voor een bepaalde termijn
    +PRICE			= PRIJS.NOM			##	Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier waarvan de rente periodiek wordt uitgekeerd
    +PRICEDISC		= PRIJS.DISCONTO		##	Geeft als resultaat de prijs per € 100 nominale waarde voor een verdisconteerd waardepapier
    +PRICEMAT		= PRIJS.VERVALDAG		##	Geeft als resultaat de prijs per € 100 nominale waarde voor een waardepapier waarvan de rente wordt uitgekeerd op de vervaldatum
    +PV			= HW				##	Geeft als resultaat de huidige waarde van een investering
    +RATE			= RENTE				##	Geeft als resultaat het periodieke rentepercentage voor een annuïteit
    +RECEIVED		= OPBRENGST			##	Geeft als resultaat het bedrag dat op de vervaldatum wordt uitgekeerd voor een volgestort waardepapier
    +SLN			= LIN.AFSCHR			##	Geeft als resultaat de lineaire afschrijving van activa over één termijn
    +SYD			= SYD				##	Geeft als resultaat de afschrijving van activa over een bepaalde termijn met behulp van de 'Sum-Of-Years-Digits'-methode
    +TBILLEQ			= SCHATK.OBL			##	Geeft als resultaat het rendement op schatkistpapier, dat op dezelfde manier wordt berekend als het rendement op obligaties
    +TBILLPRICE		= SCHATK.PRIJS			##	Bepaalt de prijs per € 100 nominale waarde voor schatkistpapier
    +TBILLYIELD		= SCHATK.REND			##	Berekent het rendement voor schatkistpapier
    +VDB			= VDB				##	Geeft als resultaat de afschrijving van activa over een gehele of gedeeltelijke termijn met behulp van de 'declining balance'-methode
    +XIRR			= IR.SCHEMA			##	Berekent de interne rentabiliteit voor een betalingsschema van cashflows
    +XNPV			= NHW2				##	Berekent de huidige nettowaarde voor een betalingsschema van cashflows
    +YIELD			= RENDEMENT			##	Geeft als resultaat het rendement voor een waardepapier waarvan de rente periodiek wordt uitgekeerd
    +YIELDDISC		= REND.DISCONTO			##	Geeft als resultaat het jaarlijkse rendement voor een verdisconteerd waardepapier, bijvoorbeeld schatkistpapier
    +YIELDMAT		= REND.VERVAL			##	Geeft als resultaat het jaarlijkse rendement voor een waardepapier waarvan de rente wordt uitgekeerd op de vervaldatum
    +
    +
    +##
    +##	Information functions				Informatiefuncties
    +##
    +CELL			= CEL				##	Geeft als resultaat informatie over de opmaak, locatie of inhoud van een cel
    +ERROR.TYPE		= TYPE.FOUT			##	Geeft als resultaat een getal dat overeenkomt met een van de foutwaarden van Microsoft Excel
    +INFO			= INFO				##	Geeft als resultaat informatie over de huidige besturingsomgeving
    +ISBLANK			= ISLEEG			##	Geeft als resultaat WAAR als de waarde leeg is
    +ISERR			= ISFOUT2			##	Geeft als resultaat WAAR als de waarde een foutwaarde is, met uitzondering van #N/B
    +ISERROR			= ISFOUT			##	Geeft als resultaat WAAR als de waarde een foutwaarde is
    +ISEVEN			= IS.EVEN			##	Geeft als resultaat WAAR als het getal even is
    +ISLOGICAL		= ISLOGISCH			##	Geeft als resultaat WAAR als de waarde een logische waarde is
    +ISNA			= ISNB				##	Geeft als resultaat WAAR als de waarde de foutwaarde #N/B is
    +ISNONTEXT		= ISGEENTEKST			##	Geeft als resultaat WAAR als de waarde geen tekst is
    +ISNUMBER		= ISGETAL			##	Geeft als resultaat WAAR als de waarde een getal is
    +ISODD			= IS.ONEVEN			##	Geeft als resultaat WAAR als het getal oneven is
    +ISREF			= ISVERWIJZING			##	Geeft als resultaat WAAR als de waarde een verwijzing is
    +ISTEXT			= ISTEKST			##	Geeft als resultaat WAAR als de waarde tekst is
    +N			= N				##	Geeft als resultaat een waarde die is geconverteerd naar een getal
    +NA			= NB				##	Geeft als resultaat de foutwaarde #N/B
    +TYPE			= TYPE				##	Geeft als resultaat een getal dat het gegevenstype van een waarde aangeeft
    +
    +
    +##
    +##	Logical functions				Logische functies
    +##
    +AND			= EN				##	Geeft als resultaat WAAR als alle argumenten WAAR zijn
    +FALSE			= ONWAAR			##	Geeft als resultaat de logische waarde ONWAAR
    +IF			= ALS				##	Geeft een logische test aan
    +IFERROR			= ALS.FOUT			##	Retourneert een waarde die u opgeeft als een formule een fout oplevert, anders wordt het resultaat van de formule geretourneerd
    +NOT			= NIET				##	Keert de logische waarde van het argument om
    +OR			= OF				##	Geeft als resultaat WAAR als minimaal een van de argumenten WAAR is
    +TRUE			= WAAR				##	Geeft als resultaat de logische waarde WAAR
    +
    +
    +##
    +##	Lookup and reference functions			Zoek- en verwijzingsfuncties
    +##
    +ADDRESS			= ADRES				##	Geeft als resultaat een verwijzing, in de vorm van tekst, naar één bepaalde cel in een werkblad
    +AREAS			= BEREIKEN			##	Geeft als resultaat het aantal bereiken in een verwijzing
    +CHOOSE			= KIEZEN			##	Kiest een waarde uit een lijst met waarden
    +COLUMN			= KOLOM				##	Geeft als resultaat het kolomnummer van een verwijzing
    +COLUMNS			= KOLOMMEN			##	Geeft als resultaat het aantal kolommen in een verwijzing
    +HLOOKUP			= HORIZ.ZOEKEN			##	Zoekt in de bovenste rij van een matrix naar een bepaalde waarde en geeft als resultaat de gevonden waarde in de opgegeven cel
    +HYPERLINK		= HYPERLINK			##	Maakt een snelkoppeling of een sprong waarmee een document wordt geopend dat is opgeslagen op een netwerkserver, een intranet of op internet
    +INDEX			= INDEX				##	Kiest met een index een waarde uit een verwijzing of een matrix
    +INDIRECT		= INDIRECT			##	Geeft als resultaat een verwijzing die wordt aangegeven met een tekstwaarde
    +LOOKUP			= ZOEKEN			##	Zoekt naar bepaalde waarden in een vector of een matrix
    +MATCH			= VERGELIJKEN			##	Zoekt naar bepaalde waarden in een verwijzing of een matrix
    +OFFSET			= VERSCHUIVING			##	Geeft als resultaat een nieuwe verwijzing die is verschoven ten opzichte van een bepaalde verwijzing
    +ROW			= RIJ				##	Geeft als resultaat het rijnummer van een verwijzing
    +ROWS			= RIJEN				##	Geeft als resultaat het aantal rijen in een verwijzing
    +RTD			= RTG				##	Haalt realtimegegevens op uit een programma dat COM-automatisering (automatisering: een methode waarmee de ene toepassing objecten van een andere toepassing of ontwikkelprogramma kan besturen. Automatisering werd vroeger OLE-automatisering genoemd. Automatisering is een industrienorm die deel uitmaakt van het Component Object Model (COM).) ondersteunt
    +TRANSPOSE		= TRANSPONEREN			##	Geeft als resultaat de getransponeerde van een matrix
    +VLOOKUP			= VERT.ZOEKEN			##	Zoekt in de meest linkse kolom van een matrix naar een bepaalde waarde en geeft als resultaat de waarde in de opgegeven cel
    +
    +
    +##
    +##	Math and trigonometry functions			Wiskundige en trigonometrische functies
    +##
    +ABS			= ABS				##	Geeft als resultaat de absolute waarde van een getal
    +ACOS			= BOOGCOS			##	Geeft als resultaat de boogcosinus van een getal
    +ACOSH			= BOOGCOSH			##	Geeft als resultaat de inverse cosinus hyperbolicus van een getal
    +ASIN			= BOOGSIN			##	Geeft als resultaat de boogsinus van een getal
    +ASINH			= BOOGSINH			##	Geeft als resultaat de inverse sinus hyperbolicus van een getal
    +ATAN			= BOOGTAN			##	Geeft als resultaat de boogtangens van een getal
    +ATAN2			= BOOGTAN2			##	Geeft als resultaat de boogtangens van de x- en y-coördinaten
    +ATANH			= BOOGTANH			##	Geeft als resultaat de inverse tangens hyperbolicus van een getal
    +CEILING			= AFRONDEN.BOVEN		##	Rondt de absolute waarde van een getal naar boven af op het dichtstbijzijnde gehele getal of het dichtstbijzijnde significante veelvoud
    +COMBIN			= COMBINATIES			##	Geeft als resultaat het aantal combinaties voor een bepaald aantal objecten
    +COS			= COS				##	Geeft als resultaat de cosinus van een getal
    +COSH			= COSH				##	Geeft als resultaat de cosinus hyperbolicus van een getal
    +DEGREES			= GRADEN			##	Converteert radialen naar graden
    +EVEN			= EVEN				##	Rondt het getal af op het dichtstbijzijnde gehele even getal
    +EXP			= EXP				##	Verheft e tot de macht van een bepaald getal
    +FACT			= FACULTEIT			##	Geeft als resultaat de faculteit van een getal
    +FACTDOUBLE		= DUBBELE.FACULTEIT		##	Geeft als resultaat de dubbele faculteit van een getal
    +FLOOR			= AFRONDEN.BENEDEN		##	Rondt de absolute waarde van een getal naar beneden af
    +GCD			= GGD				##	Geeft als resultaat de grootste gemene deler
    +INT			= INTEGER			##	Rondt een getal naar beneden af op het dichtstbijzijnde gehele getal
    +LCM			= KGV				##	Geeft als resultaat het kleinste gemene veelvoud
    +LN			= LN				##	Geeft als resultaat de natuurlijke logaritme van een getal
    +LOG			= LOG				##	Geeft als resultaat de logaritme met het opgegeven grondtal van een getal
    +LOG10			= LOG10				##	Geeft als resultaat de logaritme met grondtal 10 van een getal
    +MDETERM			= DETERMINANTMAT		##	Geeft als resultaat de determinant van een matrix
    +MINVERSE		= INVERSEMAT			##	Geeft als resultaat de inverse van een matrix
    +MMULT			= PRODUCTMAT			##	Geeft als resultaat het product van twee matrices
    +MOD			= REST				##	Geeft als resultaat het restgetal van een deling
    +MROUND			= AFRONDEN.N.VEELVOUD		##	Geeft als resultaat een getal afgerond op het gewenste veelvoud
    +MULTINOMIAL		= MULTINOMIAAL			##	Geeft als resultaat de multinomiaalcoëfficiënt van een reeks getallen
    +ODD			= ONEVEN			##	Rondt de absolute waarde van het getal naar boven af op het dichtstbijzijnde gehele oneven getal
    +PI			= PI				##	Geeft als resultaat de waarde van pi
    +POWER			= MACHT				##	Verheft een getal tot een macht
    +PRODUCT			= PRODUCT			##	Vermenigvuldigt de argumenten met elkaar
    +QUOTIENT		= QUOTIENT			##	Geeft als resultaat de uitkomst van een deling als geheel getal
    +RADIANS			= RADIALEN			##	Converteert graden naar radialen
    +RAND			= ASELECT			##	Geeft als resultaat een willekeurig getal tussen 0 en 1
    +RANDBETWEEN		= ASELECTTUSSEN			##	Geeft een willekeurig getal tussen de getallen die u hebt opgegeven
    +ROMAN			= ROMEINS			##	Converteert een Arabisch getal naar een Romeins getal en geeft het resultaat weer in de vorm van tekst
    +ROUND			= AFRONDEN			##	Rondt een getal af op het opgegeven aantal decimalen
    +ROUNDDOWN		= AFRONDEN.NAAR.BENEDEN		##	Rondt de absolute waarde van een getal naar beneden af
    +ROUNDUP			= AFRONDEN.NAAR.BOVEN		##	Rondt de absolute waarde van een getal naar boven af
    +SERIESSUM		= SOM.MACHTREEKS		##	Geeft als resultaat de som van een machtreeks die is gebaseerd op de formule
    +SIGN			= POS.NEG			##	Geeft als resultaat het teken van een getal
    +SIN			= SIN				##	Geeft als resultaat de sinus van de opgegeven hoek
    +SINH			= SINH				##	Geeft als resultaat de sinus hyperbolicus van een getal
    +SQRT			= WORTEL			##	Geeft als resultaat de positieve vierkantswortel van een getal
    +SQRTPI			= WORTEL.PI			##	Geeft als resultaat de vierkantswortel van (getal * pi)
    +SUBTOTAL		= SUBTOTAAL			##	Geeft als resultaat een subtotaal voor een bereik
    +SUM			= SOM				##	Telt de argumenten op
    +SUMIF			= SOM.ALS			##	Telt de getallen bij elkaar op die voldoen aan een bepaald criterium
    +SUMIFS			= SOMMEN.ALS			##	Telt de cellen in een bereik op die aan meerdere criteria voldoen
    +SUMPRODUCT		= SOMPRODUCT			##	Geeft als resultaat de som van de producten van de corresponderende matrixelementen
    +SUMSQ			= KWADRATENSOM			##	Geeft als resultaat de som van de kwadraten van de argumenten
    +SUMX2MY2		= SOM.X2MINY2			##	Geeft als resultaat de som van het verschil tussen de kwadraten van corresponderende waarden in twee matrices
    +SUMX2PY2		= SOM.X2PLUSY2			##	Geeft als resultaat de som van de kwadratensom van corresponderende waarden in twee matrices
    +SUMXMY2			= SOM.XMINY.2			##	Geeft als resultaat de som van de kwadraten van de verschillen tussen de corresponderende waarden in twee matrices
    +TAN			= TAN				##	Geeft als resultaat de tangens van een getal
    +TANH			= TANH				##	Geeft als resultaat de tangens hyperbolicus van een getal
    +TRUNC			= GEHEEL			##	Kapt een getal af tot een geheel getal
    +
    +
    +##
    +##	Statistical functions				Statistische functies
    +##
    +AVEDEV			= GEM.DEVIATIE			##	Geeft als resultaat het gemiddelde van de absolute deviaties van gegevenspunten ten opzichte van hun gemiddelde waarde
    +AVERAGE			= GEMIDDELDE			##	Geeft als resultaat het gemiddelde van de argumenten
    +AVERAGEA		= GEMIDDELDEA			##	Geeft als resultaat het gemiddelde van de argumenten, inclusief getallen, tekst en logische waarden
    +AVERAGEIF		= GEMIDDELDE.ALS		##	Geeft het gemiddelde (rekenkundig gemiddelde) als resultaat van alle cellen in een bereik die voldoen aan de opgegeven criteria
    +AVERAGEIFS		= GEMIDDELDEN.ALS		##	Geeft het gemiddelde (rekenkundig gemiddelde) als resultaat van alle cellen die aan meerdere criteria voldoen
    +BETADIST		= BETA.VERD			##	Geeft als resultaat de cumulatieve bèta-verdelingsfunctie
    +BETAINV			= BETA.INV			##	Geeft als resultaat de inverse van de cumulatieve verdelingsfunctie voor een gegeven bèta-verdeling
    +BINOMDIST		= BINOMIALE.VERD		##	Geeft als resultaat de binomiale verdeling
    +CHIDIST			= CHI.KWADRAAT			##	Geeft als resultaat de eenzijdige kans van de chi-kwadraatverdeling
    +CHIINV			= CHI.KWADRAAT.INV		##	Geeft als resultaat de inverse van een eenzijdige kans van de chi-kwadraatverdeling
    +CHITEST			= CHI.TOETS			##	Geeft als resultaat de onafhankelijkheidstoets
    +CONFIDENCE		= BETROUWBAARHEID		##	Geeft als resultaat het betrouwbaarheidsinterval van een gemiddelde waarde voor de elementen van een populatie
    +CORREL			= CORRELATIE			##	Geeft als resultaat de correlatiecoëfficiënt van twee gegevensverzamelingen
    +COUNT			= AANTAL			##	Telt het aantal getallen in de argumentenlijst
    +COUNTA			= AANTALARG			##	Telt het aantal waarden in de argumentenlijst
    +COUNTBLANK		= AANTAL.LEGE.CELLEN		##	Telt het aantal lege cellen in een bereik
    +COUNTIF			= AANTAL.ALS			##	Telt in een bereik het aantal cellen die voldoen aan een bepaald criterium
    +COUNTIFS		= AANTALLEN.ALS			##	Telt in een bereik het aantal cellen die voldoen aan meerdere criteria
    +COVAR			= COVARIANTIE			##	Geeft als resultaat de covariantie, het gemiddelde van de producten van de gepaarde deviaties
    +CRITBINOM		= CRIT.BINOM			##	Geeft als resultaat de kleinste waarde waarvoor de binomiale verdeling kleiner is dan of gelijk is aan het criterium
    +DEVSQ			= DEV.KWAD			##	Geeft als resultaat de som van de deviaties in het kwadraat
    +EXPONDIST		= EXPON.VERD			##	Geeft als resultaat de exponentiële verdeling
    +FDIST			= F.VERDELING			##	Geeft als resultaat de F-verdeling
    +FINV			= F.INVERSE			##	Geeft als resultaat de inverse van de F-verdeling
    +FISHER			= FISHER			##	Geeft als resultaat de Fisher-transformatie
    +FISHERINV		= FISHER.INV			##	Geeft als resultaat de inverse van de Fisher-transformatie
    +FORECAST		= VOORSPELLEN			##	Geeft als resultaat een waarde op basis van een lineaire trend
    +FREQUENCY		= FREQUENTIE			##	Geeft als resultaat een frequentieverdeling in de vorm van een verticale matrix
    +FTEST			= F.TOETS			##	Geeft als resultaat een F-toets
    +GAMMADIST		= GAMMA.VERD			##	Geeft als resultaat de gamma-verdeling
    +GAMMAINV		= GAMMA.INV			##	Geeft als resultaat de inverse van de cumulatieve gamma-verdeling
    +GAMMALN			= GAMMA.LN			##	Geeft als resultaat de natuurlijke logaritme van de gamma-functie, G(x)
    +GEOMEAN			= MEETK.GEM			##	Geeft als resultaat het meetkundige gemiddelde
    +GROWTH			= GROEI				##	Geeft als resultaat de waarden voor een exponentiële trend
    +HARMEAN			= HARM.GEM			##	Geeft als resultaat het harmonische gemiddelde
    +HYPGEOMDIST		= HYPERGEO.VERD			##	Geeft als resultaat de hypergeometrische verdeling
    +INTERCEPT		= SNIJPUNT			##	Geeft als resultaat het snijpunt van de lineaire regressielijn met de y-as
    +KURT			= KURTOSIS			##	Geeft als resultaat de kurtosis van een gegevensverzameling
    +LARGE			= GROOTSTE			##	Geeft als resultaat de op k-1 na grootste waarde in een gegevensverzameling
    +LINEST			= LIJNSCH			##	Geeft als resultaat de parameters van een lineaire trend
    +LOGEST			= LOGSCH			##	Geeft als resultaat de parameters van een exponentiële trend
    +LOGINV			= LOG.NORM.INV			##	Geeft als resultaat de inverse van de logaritmische normale verdeling
    +LOGNORMDIST		= LOG.NORM.VERD			##	Geeft als resultaat de cumulatieve logaritmische normale verdeling
    +MAX			= MAX				##	Geeft als resultaat de maximumwaarde in een lijst met argumenten
    +MAXA			= MAXA				##	Geeft als resultaat de maximumwaarde in een lijst met argumenten, inclusief getallen, tekst en logische waarden
    +MEDIAN			= MEDIAAN			##	Geeft als resultaat de mediaan van de opgegeven getallen
    +MIN			= MIN				##	Geeft als resultaat de minimumwaarde in een lijst met argumenten
    +MINA			= MINA				##	Geeft als resultaat de minimumwaarde in een lijst met argumenten, inclusief getallen, tekst en logische waarden
    +MODE			= MODUS				##	Geeft als resultaat de meest voorkomende waarde in een gegevensverzameling
    +NEGBINOMDIST		= NEG.BINOM.VERD		##	Geeft als resultaat de negatieve binomiaalverdeling
    +NORMDIST		= NORM.VERD			##	Geeft als resultaat de cumulatieve normale verdeling
    +NORMINV			= NORM.INV			##	Geeft als resultaat de inverse van de cumulatieve standaardnormale verdeling
    +NORMSDIST		= STAND.NORM.VERD		##	Geeft als resultaat de cumulatieve standaardnormale verdeling
    +NORMSINV		= STAND.NORM.INV		##	Geeft als resultaat de inverse van de cumulatieve normale verdeling
    +PEARSON			= PEARSON			##	Geeft als resultaat de correlatiecoëfficiënt van Pearson
    +PERCENTILE		= PERCENTIEL			##	Geeft als resultaat het k-de percentiel van waarden in een bereik
    +PERCENTRANK		= PERCENT.RANG			##	Geeft als resultaat de positie, in procenten uitgedrukt, van een waarde in de rangorde van een gegevensverzameling
    +PERMUT			= PERMUTATIES			##	Geeft als resultaat het aantal permutaties voor een gegeven aantal objecten
    +POISSON			= POISSON			##	Geeft als resultaat de Poisson-verdeling
    +PROB			= KANS				##	Geeft als resultaat de kans dat waarden zich tussen twee grenzen bevinden
    +QUARTILE		= KWARTIEL			##	Geeft als resultaat het kwartiel van een gegevensverzameling
    +RANK			= RANG				##	Geeft als resultaat het rangnummer van een getal in een lijst getallen
    +RSQ			= R.KWADRAAT			##	Geeft als resultaat het kwadraat van de Pearson-correlatiecoëfficiënt
    +SKEW			= SCHEEFHEID			##	Geeft als resultaat de mate van asymmetrie van een verdeling
    +SLOPE			= RICHTING			##	Geeft als resultaat de richtingscoëfficiënt van een lineaire regressielijn
    +SMALL			= KLEINSTE			##	Geeft als resultaat de op k-1 na kleinste waarde in een gegevensverzameling
    +STANDARDIZE		= NORMALISEREN			##	Geeft als resultaat een genormaliseerde waarde
    +STDEV			= STDEV				##	Maakt een schatting van de standaarddeviatie op basis van een steekproef
    +STDEVA			= STDEVA			##	Maakt een schatting van de standaarddeviatie op basis van een steekproef, inclusief getallen, tekst en logische waarden
    +STDEVP			= STDEVP			##	Berekent de standaarddeviatie op basis van de volledige populatie
    +STDEVPA			= STDEVPA			##	Berekent de standaarddeviatie op basis van de volledige populatie, inclusief getallen, tekst en logische waarden
    +STEYX			= STAND.FOUT.YX			##	Geeft als resultaat de standaardfout in de voorspelde y-waarde voor elke x in een regressie
    +TDIST			= T.VERD			##	Geeft als resultaat de Student T-verdeling
    +TINV			= T.INV				##	Geeft als resultaat de inverse van de Student T-verdeling
    +TREND			= TREND				##	Geeft als resultaat de waarden voor een lineaire trend
    +TRIMMEAN		= GETRIMD.GEM			##	Geeft als resultaat het gemiddelde van waarden in een gegevensverzameling
    +TTEST			= T.TOETS			##	Geeft als resultaat de kans met behulp van de Student T-toets
    +VAR			= VAR				##	Maakt een schatting van de variantie op basis van een steekproef
    +VARA			= VARA				##	Maakt een schatting van de variantie op basis van een steekproef, inclusief getallen, tekst en logische waarden
    +VARP			= VARP				##	Berekent de variantie op basis van de volledige populatie
    +VARPA			= VARPA				##	Berekent de standaarddeviatie op basis van de volledige populatie, inclusief getallen, tekst en logische waarden
    +WEIBULL			= WEIBULL			##	Geeft als resultaat de Weibull-verdeling
    +ZTEST			= Z.TOETS			##	Geeft als resultaat de eenzijdige kanswaarde van een Z-toets
    +
    +
    +##
    +##	Text functions					Tekstfuncties
    +##
    +ASC			= ASC				##	Wijzigt Nederlandse letters of katakanatekens over de volle breedte (dubbel-bytetekens) binnen een tekenreeks in tekens over de halve breedte (enkel-bytetekens)
    +BAHTTEXT		= BAHT.TEKST			##	Converteert een getal naar tekst met de valutanotatie ß (baht)
    +CHAR			= TEKEN				##	Geeft als resultaat het teken dat hoort bij de opgegeven code
    +CLEAN			= WISSEN.CONTROL		##	Verwijdert alle niet-afdrukbare tekens uit een tekst
    +CODE			= CODE				##	Geeft als resultaat de numerieke code voor het eerste teken in een tekenreeks
    +CONCATENATE		= TEKST.SAMENVOEGEN		##	Voegt verschillende tekstfragmenten samen tot één tekstfragment
    +DOLLAR			= EURO				##	Converteert een getal naar tekst met de valutanotatie € (euro)
    +EXACT			= GELIJK			##	Controleert of twee tekenreeksen identiek zijn
    +FIND			= VIND.ALLES			##	Zoekt een bepaalde tekenreeks in een tekst (waarbij onderscheid wordt gemaakt tussen hoofdletters en kleine letters)
    +FINDB			= VIND.ALLES.B			##	Zoekt een bepaalde tekenreeks in een tekst (waarbij onderscheid wordt gemaakt tussen hoofdletters en kleine letters)
    +FIXED			= VAST				##	Maakt een getal als tekst met een vast aantal decimalen op
    +JIS			= JIS				##	Wijzigt Nederlandse letters of katakanatekens over de halve breedte (enkel-bytetekens) binnen een tekenreeks in tekens over de volle breedte (dubbel-bytetekens)
    +LEFT			= LINKS				##	Geeft als resultaat de meest linkse tekens in een tekenreeks
    +LEFTB			= LINKSB			##	Geeft als resultaat de meest linkse tekens in een tekenreeks
    +LEN			= LENGTE			##	Geeft als resultaat het aantal tekens in een tekenreeks
    +LENB			= LENGTEB			##	Geeft als resultaat het aantal tekens in een tekenreeks
    +LOWER			= KLEINE.LETTERS		##	Zet tekst om in kleine letters
    +MID			= MIDDEN			##	Geeft als resultaat een bepaald aantal tekens van een tekenreeks vanaf de positie die u opgeeft
    +MIDB			= DEELB				##	Geeft als resultaat een bepaald aantal tekens van een tekenreeks vanaf de positie die u opgeeft
    +PHONETIC		= FONETISCH			##	Haalt de fonetische tekens (furigana) uit een tekenreeks op
    +PROPER			= BEGINLETTERS			##	Zet de eerste letter van elk woord in een tekst om in een hoofdletter
    +REPLACE			= VERVANG			##	Vervangt tekens binnen een tekst
    +REPLACEB		= VERVANGENB			##	Vervangt tekens binnen een tekst
    +REPT			= HERHALING			##	Herhaalt een tekst een aantal malen
    +RIGHT			= RECHTS			##	Geeft als resultaat de meest rechtse tekens in een tekenreeks
    +RIGHTB			= RECHTSB			##	Geeft als resultaat de meest rechtse tekens in een tekenreeks
    +SEARCH			= VIND.SPEC			##	Zoekt een bepaalde tekenreeks in een tekst (waarbij geen onderscheid wordt gemaakt tussen hoofdletters en kleine letters)
    +SEARCHB			= VIND.SPEC.B			##	Zoekt een bepaalde tekenreeks in een tekst (waarbij geen onderscheid wordt gemaakt tussen hoofdletters en kleine letters)
    +SUBSTITUTE		= SUBSTITUEREN			##	Vervangt oude tekst door nieuwe tekst in een tekenreeks
    +T			= T				##	Converteert de argumenten naar tekst
    +TEXT			= TEKST				##	Maakt een getal op en converteert het getal naar tekst
    +TRIM			= SPATIES.WISSEN		##	Verwijdert de spaties uit een tekst
    +UPPER			= HOOFDLETTERS			##	Zet tekst om in hoofdletters
    +VALUE			= WAARDE			##	Converteert tekst naar een getal
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/no/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/no/config
    new file mode 100644
    index 00000000000..c7f4152a319
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/no/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= kr
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #NULL!
    +DIV0	= #DIV/0!
    +VALUE	= #VERDI!
    +REF	= #REF!
    +NAME	= #NAVN?
    +NUM	= #NUM!
    +NA	= #I/T
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/no/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/no/functions
    new file mode 100644
    index 00000000000..ab2a3793703
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/no/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions				Funksjonene Tillegg og Automatisering
    +##
    +GETPIVOTDATA		= HENTPIVOTDATA				##	Returnerer data som er lagret i en pivottabellrapport
    +
    +
    +##
    +##	Cube functions						Kubefunksjoner
    +##
    +CUBEKPIMEMBER		= KUBEKPIMEDLEM				##	Returnerer navnet, egenskapen og målet for en viktig ytelsesindikator (KPI), og viser navnet og egenskapen i cellen. En KPI er en målbar enhet, for eksempel månedlig bruttoinntjening eller kvartalsvis inntjening per ansatt, og brukes til å overvåke ytelsen i en organisasjon.
    +CUBEMEMBER		= KUBEMEDLEM				##	Returnerer et medlem eller en tuppel i et kubehierarki. Brukes til å validere at medlemmet eller tuppelen finnes i kuben.
    +CUBEMEMBERPROPERTY	= KUBEMEDLEMEGENSKAP			##	Returnerer verdien til en medlemsegenskap i kuben. Brukes til å validere at et medlemsnavn finnes i kuben, og til å returnere den angitte egenskapen for dette medlemmet.
    +CUBERANKEDMEMBER	= KUBERANGERTMEDLEM			##	Returnerer det n-te, eller rangerte, medlemmet i et sett. Brukes til å returnere ett eller flere elementer i et sett, for eksempel de 10 beste studentene.
    +CUBESET			= KUBESETT				##	Definerer et beregnet sett av medlemmer eller tuppeler ved å sende et settuttrykk til kuben på serveren, noe som oppretter settet og deretter returnerer dette settet til Microsoft Office Excel.
    +CUBESETCOUNT		= KUBESETTANTALL			##	Returnerer antallet elementer i et sett.
    +CUBEVALUE		= KUBEVERDI				##	Returnerer en aggregert verdi fra en kube.
    +
    +
    +##
    +##	Database functions					Databasefunksjoner
    +##
    +DAVERAGE		= DGJENNOMSNITT				##	Returnerer gjennomsnittet av merkede databaseposter
    +DCOUNT			= DANTALL				##	Teller celler som inneholder tall i en database
    +DCOUNTA			= DANTALLA				##	Teller celler som ikke er tomme i en database
    +DGET			= DHENT					##	Trekker ut fra en database en post som oppfyller angitte vilkår
    +DMAX			= DMAKS					##	Returnerer maksimumsverdien fra merkede databaseposter
    +DMIN			= DMIN					##	Returnerer minimumsverdien fra merkede databaseposter
    +DPRODUCT		= DPRODUKT				##	Multipliserer verdiene i et bestemt felt med poster som oppfyller vilkårene i en database
    +DSTDEV			= DSTDAV				##	Estimerer standardavviket basert på et utvalg av merkede databaseposter
    +DSTDEVP			= DSTAVP				##	Beregner standardavviket basert på at merkede databaseposter utgjør hele populasjonen
    +DSUM			= DSUMMER				##	Legger til tallene i feltkolonnen med poster, i databasen som oppfyller vilkårene
    +DVAR			= DVARIANS				##	Estimerer variansen basert på et utvalg av merkede databaseposter
    +DVARP			= DVARIANSP				##	Beregner variansen basert på at merkede databaseposter utgjør hele populasjonen
    +
    +
    +##
    +##	Date and time functions					Dato- og tidsfunksjoner
    +##
    +DATE			= DATO					##	Returnerer serienummeret som svarer til en bestemt dato
    +DATEVALUE		= DATOVERDI				##	Konverterer en dato med tekstformat til et serienummer
    +DAY			= DAG					##	Konverterer et serienummer til en dag i måneden
    +DAYS360			= DAGER360				##	Beregner antall dager mellom to datoer basert på et år med 360 dager
    +EDATE			= DAG.ETTER				##	Returnerer serienummeret som svarer til datoen som er det indikerte antall måneder før eller etter startdatoen
    +EOMONTH			= MÅNEDSSLUTT				##	Returnerer serienummeret som svarer til siste dag i måneden, før eller etter et angitt antall måneder
    +HOUR			= TIME					##	Konverterer et serienummer til en time
    +MINUTE			= MINUTT				##	Konverterer et serienummer til et minutt
    +MONTH			= MÅNED					##	Konverterer et serienummer til en måned
    +NETWORKDAYS		= NETT.ARBEIDSDAGER			##	Returnerer antall hele arbeidsdager mellom to datoer
    +NOW			= NÅ					##	Returnerer serienummeret som svarer til gjeldende dato og klokkeslett
    +SECOND			= SEKUND				##	Konverterer et serienummer til et sekund
    +TIME			= TID					##	Returnerer serienummeret som svarer til et bestemt klokkeslett
    +TIMEVALUE		= TIDSVERDI				##	Konverterer et klokkeslett i tekstformat til et serienummer
    +TODAY			= IDAG					##	Returnerer serienummeret som svarer til dagens dato
    +WEEKDAY			= UKEDAG				##	Konverterer et serienummer til en ukedag
    +WEEKNUM			= UKENR					##	Konverterer et serienummer til et tall som representerer hvilket nummer uken har i et år
    +WORKDAY			= ARBEIDSDAG				##	Returnerer serienummeret som svarer til datoen før eller etter et angitt antall arbeidsdager
    +YEAR			= ÅR					##	Konverterer et serienummer til et år
    +YEARFRAC		= ÅRDEL					##	Returnerer brøkdelen for året, som svarer til antall hele dager mellom startdato og sluttdato
    +
    +
    +##
    +##	Engineering functions					Tekniske funksjoner
    +##
    +BESSELI			= BESSELI				##	Returnerer den endrede Bessel-funksjonen In(x)
    +BESSELJ			= BESSELJ				##	Returnerer Bessel-funksjonen Jn(x)
    +BESSELK			= BESSELK				##	Returnerer den endrede Bessel-funksjonen Kn(x)
    +BESSELY			= BESSELY				##	Returnerer Bessel-funksjonen Yn(x)
    +BIN2DEC			= BINTILDES				##	Konverterer et binært tall til et desimaltall
    +BIN2HEX			= BINTILHEKS				##	Konverterer et binært tall til et heksadesimaltall
    +BIN2OCT			= BINTILOKT				##	Konverterer et binært tall til et oktaltall
    +COMPLEX			= KOMPLEKS				##	Konverterer reelle og imaginære koeffisienter til et komplekst tall
    +CONVERT			= KONVERTER				##	Konverterer et tall fra ett målsystem til et annet
    +DEC2BIN			= DESTILBIN				##	Konverterer et desimaltall til et binærtall
    +DEC2HEX			= DESTILHEKS				##	Konverterer et heltall i 10-tallsystemet til et heksadesimalt tall
    +DEC2OCT			= DESTILOKT				##	Konverterer et heltall i 10-tallsystemet til et oktaltall
    +DELTA			= DELTA					##	Undersøker om to verdier er like
    +ERF			= FEILF					##	Returnerer feilfunksjonen
    +ERFC			= FEILFK				##	Returnerer den komplementære feilfunksjonen
    +GESTEP			= GRENSEVERDI				##	Tester om et tall er større enn en terskelverdi
    +HEX2BIN			= HEKSTILBIN				##	Konverterer et heksadesimaltall til et binært tall
    +HEX2DEC			= HEKSTILDES				##	Konverterer et heksadesimalt tall til et heltall i 10-tallsystemet
    +HEX2OCT			= HEKSTILOKT				##	Konverterer et heksadesimalt tall til et oktaltall
    +IMABS			= IMABS					##	Returnerer absoluttverdien (koeffisienten) til et komplekst tall
    +IMAGINARY		= IMAGINÆR				##	Returnerer den imaginære koeffisienten til et komplekst tall
    +IMARGUMENT		= IMARGUMENT				##	Returnerer argumentet theta, som er en vinkel uttrykt i radianer
    +IMCONJUGATE		= IMKONJUGERT				##	Returnerer den komplekse konjugaten til et komplekst tall
    +IMCOS			= IMCOS					##	Returnerer cosinus til et komplekst tall
    +IMDIV			= IMDIV					##	Returnerer kvotienten til to komplekse tall
    +IMEXP			= IMEKSP				##	Returnerer eksponenten til et komplekst tall
    +IMLN			= IMLN					##	Returnerer den naturlige logaritmen for et komplekst tall
    +IMLOG10			= IMLOG10				##	Returnerer logaritmen med grunntall 10 for et komplekst tall
    +IMLOG2			= IMLOG2				##	Returnerer logaritmen med grunntall 2 for et komplekst tall
    +IMPOWER			= IMOPPHØY				##	Returnerer et komplekst tall opphøyd til en heltallspotens
    +IMPRODUCT		= IMPRODUKT				##	Returnerer produktet av komplekse tall
    +IMREAL			= IMREELL				##	Returnerer den reelle koeffisienten til et komplekst tall
    +IMSIN			= IMSIN					##	Returnerer sinus til et komplekst tall
    +IMSQRT			= IMROT					##	Returnerer kvadratroten av et komplekst tall
    +IMSUB			= IMSUB					##	Returnerer differansen mellom to komplekse tall
    +IMSUM			= IMSUMMER				##	Returnerer summen av komplekse tall
    +OCT2BIN			= OKTTILBIN				##	Konverterer et oktaltall til et binært tall
    +OCT2DEC			= OKTTILDES				##	Konverterer et oktaltall til et desimaltall
    +OCT2HEX			= OKTTILHEKS				##	Konverterer et oktaltall til et heksadesimaltall
    +
    +
    +##
    +##	Financial functions					Økonomiske funksjoner
    +##
    +ACCRINT			= PÅLØPT.PERIODISK.RENTE		##	Returnerer påløpte renter for et verdipapir som betaler periodisk rente
    +ACCRINTM		= PÅLØPT.FORFALLSRENTE			##	Returnerer den påløpte renten for et verdipapir som betaler rente ved forfall
    +AMORDEGRC		= AMORDEGRC				##	Returnerer avskrivningen for hver regnskapsperiode ved hjelp av en avskrivingskoeffisient
    +AMORLINC		= AMORLINC				##	Returnerer avskrivingen for hver regnskapsperiode
    +COUPDAYBS		= OBLIG.DAGER.FF			##	Returnerer antall dager fra begynnelsen av den rentebærende perioden til innløsningsdatoen
    +COUPDAYS		= OBLIG.DAGER				##	Returnerer antall dager i den rentebærende perioden som inneholder innløsningsdatoen
    +COUPDAYSNC		= OBLIG.DAGER.NF			##	Returnerer antall dager fra betalingsdato til neste renteinnbetalingsdato
    +COUPNCD			= OBLIG.DAGER.EF			##	Returnerer obligasjonsdatoen som kommer etter oppgjørsdatoen
    +COUPNUM			= OBLIG.ANTALL				##	Returnerer antall obligasjoner som skal betales mellom oppgjørsdatoen og forfallsdatoen
    +COUPPCD			= OBLIG.DAG.FORRIGE			##	Returnerer obligasjonsdatoen som kommer før oppgjørsdatoen
    +CUMIPMT			= SAMLET.RENTE				##	Returnerer den kumulative renten som er betalt mellom to perioder
    +CUMPRINC		= SAMLET.HOVEDSTOL			##	Returnerer den kumulative hovedstolen som er betalt for et lån mellom to perioder
    +DB			= DAVSKR				##	Returnerer avskrivningen for et aktivum i en angitt periode, foretatt med fast degressiv avskrivning
    +DDB			= DEGRAVS				##	Returnerer avskrivningen for et aktivum for en gitt periode, ved hjelp av dobbel degressiv avskrivning eller en metode som du selv angir
    +DISC			= DISKONTERT				##	Returnerer diskonteringsraten for et verdipapir
    +DOLLARDE		= DOLLARDE				##	Konverterer en valutapris uttrykt som en brøk, til en valutapris uttrykt som et desimaltall
    +DOLLARFR		= DOLLARBR				##	Konverterer en valutapris uttrykt som et desimaltall, til en valutapris uttrykt som en brøk
    +DURATION		= VARIGHET				##	Returnerer årlig varighet for et verdipapir med renter som betales periodisk
    +EFFECT			= EFFEKTIV.RENTE			##	Returnerer den effektive årlige rentesatsen
    +FV			= SLUTTVERDI				##	Returnerer fremtidig verdi for en investering
    +FVSCHEDULE		= SVPLAN				##	Returnerer den fremtidige verdien av en inngående hovedstol etter å ha anvendt en serie med sammensatte rentesatser
    +INTRATE			= RENTESATS				##	Returnerer rentefoten av et fullfinansiert verdipapir
    +IPMT			= RAVDRAG				##	Returnerer betalte renter på en investering for en gitt periode
    +IRR			= IR					##	Returnerer internrenten for en serie kontantstrømmer
    +ISPMT			= ER.AVDRAG				##	Beregner renten som er betalt for en investering i løpet av en bestemt periode
    +MDURATION		= MVARIGHET				##	Returnerer Macauleys modifiserte varighet for et verdipapir med en antatt pålydende verdi på kr 100,00
    +MIRR			= MODIR					##	Returnerer internrenten der positive og negative kontantstrømmer finansieres med forskjellige satser
    +NOMINAL			= NOMINELL				##	Returnerer årlig nominell rentesats
    +NPER			= PERIODER				##	Returnerer antall perioder for en investering
    +NPV			= NNV					##	Returnerer netto nåverdi for en investering, basert på en serie periodiske kontantstrømmer og en rentesats
    +ODDFPRICE		= AVVIKFP.PRIS				##	Returnerer pris pålydende kr 100 for et verdipapir med en odde første periode
    +ODDFYIELD		= AVVIKFP.AVKASTNING			##	Returnerer avkastingen for et verdipapir med en odde første periode
    +ODDLPRICE		= AVVIKSP.PRIS				##	Returnerer pris pålydende kr 100 for et verdipapir med en odde siste periode
    +ODDLYIELD		= AVVIKSP.AVKASTNING			##	Returnerer avkastingen for et verdipapir med en odde siste periode
    +PMT			= AVDRAG				##	Returnerer periodisk betaling for en annuitet
    +PPMT			= AMORT					##	Returnerer betalingen på hovedstolen for en investering i en gitt periode
    +PRICE			= PRIS					##	Returnerer prisen per pålydende kr 100 for et verdipapir som gir periodisk avkastning
    +PRICEDISC		= PRIS.DISKONTERT			##	Returnerer prisen per pålydende kr 100 for et diskontert verdipapir
    +PRICEMAT		= PRIS.FORFALL				##	Returnerer prisen per pålydende kr 100 av et verdipapir som betaler rente ved forfall
    +PV			= NÅVERDI				##	Returnerer nåverdien av en investering
    +RATE			= RENTE					##	Returnerer rentesatsen per periode for en annuitet
    +RECEIVED		= MOTTATT.AVKAST			##	Returnerer summen som mottas ved forfallsdato for et fullinvestert verdipapir
    +SLN			= LINAVS				##	Returnerer den lineære avskrivningen for et aktivum i én periode
    +SYD			= ÅRSAVS				##	Returnerer årsavskrivningen for et aktivum i en angitt periode
    +TBILLEQ			= TBILLEKV				##	Returnerer den obligasjonsekvivalente avkastningen for en statsobligasjon
    +TBILLPRICE		= TBILLPRIS				##	Returnerer prisen per pålydende kr 100 for en statsobligasjon
    +TBILLYIELD		= TBILLAVKASTNING			##	Returnerer avkastningen til en statsobligasjon
    +VDB			= VERDIAVS				##	Returnerer avskrivningen for et aktivum i en angitt periode eller delperiode, ved hjelp av degressiv avskrivning
    +XIRR			= XIR					##	Returnerer internrenten for en serie kontantstrømmer som ikke nødvendigvis er periodiske
    +XNPV			= XNNV					##	Returnerer netto nåverdi for en serie kontantstrømmer som ikke nødvendigvis er periodiske
    +YIELD			= AVKAST				##	Returnerer avkastningen på et verdipapir som betaler periodisk rente
    +YIELDDISC		= AVKAST.DISKONTERT			##	Returnerer årlig avkastning for et diskontert verdipapir, for eksempel en statskasseveksel
    +YIELDMAT		= AVKAST.FORFALL			##	Returnerer den årlige avkastningen for et verdipapir som betaler rente ved forfallsdato
    +
    +
    +##
    +##	Information functions					Informasjonsfunksjoner
    +##
    +CELL			= CELLE					##	Returnerer informasjon om formatering, plassering eller innholdet til en celle
    +ERROR.TYPE		= FEIL.TYPE				##	Returnerer et tall som svarer til en feiltype
    +INFO			= INFO					##	Returnerer informasjon om gjeldende operativmiljø
    +ISBLANK			= ERTOM					##	Returnerer SANN hvis verdien er tom
    +ISERR			= ERFEIL				##	Returnerer SANN hvis verdien er en hvilken som helst annen feilverdi enn #I/T
    +ISERROR			= ERFEIL				##	Returnerer SANN hvis verdien er en hvilken som helst feilverdi
    +ISEVEN			= ERPARTALL				##	Returnerer SANN hvis tallet er et partall
    +ISLOGICAL		= ERLOGISK				##	Returnerer SANN hvis verdien er en logisk verdi
    +ISNA			= ERIT					##	Returnerer SANN hvis verdien er feilverdien #I/T
    +ISNONTEXT		= ERIKKETEKST				##	Returnerer SANN hvis verdien ikke er tekst
    +ISNUMBER		= ERTALL				##	Returnerer SANN hvis verdien er et tall
    +ISODD			= ERODDETALL				##	Returnerer SANN hvis tallet er et oddetall
    +ISREF			= ERREF					##	Returnerer SANN hvis verdien er en referanse
    +ISTEXT			= ERTEKST				##	Returnerer SANN hvis verdien er tekst
    +N			= N					##	Returnerer en verdi som er konvertert til et tall
    +NA			= IT					##	Returnerer feilverdien #I/T
    +TYPE			= VERDITYPE				##	Returnerer et tall som indikerer datatypen til en verdi
    +
    +
    +##
    +##	Logical functions					Logiske funksjoner
    +##
    +AND			= OG					##	Returnerer SANN hvis alle argumentene er lik SANN
    +FALSE			= USANN					##	Returnerer den logiske verdien USANN
    +IF			= HVIS					##	Angir en logisk test som skal utføres
    +IFERROR			= HVISFEIL				##	Returnerer en verdi du angir hvis en formel evaluerer til en feil. Ellers returnerer den resultatet av formelen.
    +NOT			= IKKE					##	Reverserer logikken til argumentet
    +OR			= ELLER					##	Returnerer SANN hvis ett eller flere argumenter er lik SANN
    +TRUE			= SANN					##	Returnerer den logiske verdien SANN
    +
    +
    +##
    +##	Lookup and reference functions				Oppslag- og referansefunksjoner
    +##
    +ADDRESS			= ADRESSE				##	Returnerer en referanse som tekst til en enkelt celle i et regneark
    +AREAS			= OMRÅDER				##	Returnerer antall områder i en referanse
    +CHOOSE			= VELG					##	Velger en verdi fra en liste med verdier
    +COLUMN			= KOLONNE				##	Returnerer kolonnenummeret for en referanse
    +COLUMNS			= KOLONNER				##	Returnerer antall kolonner i en referanse
    +HLOOKUP			= FINN.KOLONNE				##	Leter i den øverste raden i en matrise og returnerer verdien for den angitte cellen
    +HYPERLINK		= HYPERKOBLING				##	Oppretter en snarvei eller et hopp som åpner et dokument som er lagret på en nettverksserver, et intranett eller Internett
    +INDEX			= INDEKS				##	Bruker en indeks til å velge en verdi fra en referanse eller matrise
    +INDIRECT		= INDIREKTE				##	Returnerer en referanse angitt av en tekstverdi
    +LOOKUP			= SLÅ.OPP				##	Slår opp verdier i en vektor eller matrise
    +MATCH			= SAMMENLIGNE				##	Slår opp verdier i en referanse eller matrise
    +OFFSET			= FORSKYVNING				##	Returnerer en referanseforskyvning fra en gitt referanse
    +ROW			= RAD					##	Returnerer radnummeret for en referanse
    +ROWS			= RADER					##	Returnerer antall rader i en referanse
    +RTD			= RTD					##	Henter sanntidsdata fra et program som støtter COM-automatisering (automatisering: En måte å arbeide på med programobjekter fra et annet program- eller utviklingsverktøy. Tidligere kalt OLE-automatisering. Automatisering er en bransjestandard og en funksjon i Component Object Model (COM).)
    +TRANSPOSE		= TRANSPONER				##	Returnerer transponeringen av en matrise
    +VLOOKUP			= FINN.RAD				##	Leter i den første kolonnen i en matrise og flytter bortover raden for å returnere verdien til en celle
    +
    +
    +##
    +##	Math and trigonometry functions				Matematikk- og trigonometrifunksjoner
    +##
    +ABS			= ABS					##	Returnerer absoluttverdien til et tall
    +ACOS			= ARCCOS				##	Returnerer arcus cosinus til et tall
    +ACOSH			= ARCCOSH				##	Returnerer den inverse hyperbolske cosinus til et tall
    +ASIN			= ARCSIN				##	Returnerer arcus sinus til et tall
    +ASINH			= ARCSINH				##	Returnerer den inverse hyperbolske sinus til et tall
    +ATAN			= ARCTAN				##	Returnerer arcus tangens til et tall
    +ATAN2			= ARCTAN2				##	Returnerer arcus tangens fra x- og y-koordinater
    +ATANH			= ARCTANH				##	Returnerer den inverse hyperbolske tangens til et tall
    +CEILING			= AVRUND.GJELDENDE.MULTIPLUM		##	Runder av et tall til nærmeste heltall eller til nærmeste signifikante multiplum
    +COMBIN			= KOMBINASJON				##	Returnerer antall kombinasjoner for ett gitt antall objekter
    +COS			= COS					##	Returnerer cosinus til et tall
    +COSH			= COSH					##	Returnerer den hyperbolske cosinus til et tall
    +DEGREES			= GRADER				##	Konverterer radianer til grader
    +EVEN			= AVRUND.TIL.PARTALL			##	Runder av et tall oppover til nærmeste heltall som er et partall
    +EXP			= EKSP					##	Returnerer e opphøyd i en angitt potens
    +FACT			= FAKULTET				##	Returnerer fakultet til et tall
    +FACTDOUBLE		= DOBBELFAKT				##	Returnerer et talls doble fakultet
    +FLOOR			= AVRUND.GJELDENDE.MULTIPLUM.NED	##	Avrunder et tall nedover, mot null
    +GCD			= SFF					##	Returnerer høyeste felles divisor
    +INT			= HELTALL				##	Avrunder et tall nedover til nærmeste heltall
    +LCM			= MFM					##	Returnerer minste felles multiplum
    +LN			= LN					##	Returnerer den naturlige logaritmen til et tall
    +LOG			= LOG					##	Returnerer logaritmen for et tall til et angitt grunntall
    +LOG10			= LOG10					##	Returnerer logaritmen med grunntall 10 for et tall
    +MDETERM			= MDETERM				##	Returnerer matrisedeterminanten til en matrise
    +MINVERSE		= MINVERS				##	Returnerer den inverse matrisen til en matrise
    +MMULT			= MMULT					##	Returnerer matriseproduktet av to matriser
    +MOD			= REST					##	Returnerer resten fra en divisjon
    +MROUND			= MRUND					##	Returnerer et tall avrundet til det ønskede multiplum
    +MULTINOMIAL		= MULTINOMINELL				##	Returnerer det multinominelle for et sett med tall
    +ODD			= AVRUND.TIL.ODDETALL			##	Runder av et tall oppover til nærmeste heltall som er et oddetall
    +PI			= PI					##	Returnerer verdien av pi
    +POWER			= OPPHØYD.I				##	Returnerer resultatet av et tall opphøyd i en potens
    +PRODUCT			= PRODUKT				##	Multipliserer argumentene
    +QUOTIENT		= KVOTIENT				##	Returnerer heltallsdelen av en divisjon
    +RADIANS			= RADIANER				##	Konverterer grader til radianer
    +RAND			= TILFELDIG				##	Returnerer et tilfeldig tall mellom 0 og 1
    +RANDBETWEEN		= TILFELDIGMELLOM			##	Returnerer et tilfeldig tall innenfor et angitt område
    +ROMAN			= ROMERTALL				##	Konverterer vanlige tall til romertall, som tekst
    +ROUND			= AVRUND				##	Avrunder et tall til et angitt antall sifre
    +ROUNDDOWN		= AVRUND.NED				##	Avrunder et tall nedover, mot null
    +ROUNDUP			= AVRUND.OPP				##	Runder av et tall oppover, bort fra null
    +SERIESSUM		= SUMMER.REKKE				##	Returnerer summen av en geometrisk rekke, basert på formelen
    +SIGN			= FORTEGN				##	Returnerer fortegnet for et tall
    +SIN			= SIN					##	Returnerer sinus til en gitt vinkel
    +SINH			= SINH					##	Returnerer den hyperbolske sinus til et tall
    +SQRT			= ROT					##	Returnerer en positiv kvadratrot
    +SQRTPI			= ROTPI					##	Returnerer kvadratroten av (tall * pi)
    +SUBTOTAL		= DELSUM				##	Returnerer en delsum i en liste eller database
    +SUM			= SUMMER				##	Legger sammen argumentene
    +SUMIF			= SUMMERHVIS				##	Legger sammen cellene angitt ved et gitt vilkår
    +SUMIFS			= SUMMER.HVIS.SETT			##	Legger sammen cellene i et område som oppfyller flere vilkår
    +SUMPRODUCT		= SUMMERPRODUKT				##	Returnerer summen av produktene av tilsvarende matrisekomponenter
    +SUMSQ			= SUMMERKVADRAT				##	Returnerer kvadratsummen av argumentene
    +SUMX2MY2		= SUMMERX2MY2				##	Returnerer summen av differansen av kvadratene for tilsvarende verdier i to matriser
    +SUMX2PY2		= SUMMERX2PY2				##	Returnerer summen av kvadratsummene for tilsvarende verdier i to matriser
    +SUMXMY2			= SUMMERXMY2				##	Returnerer summen av kvadratene av differansen for tilsvarende verdier i to matriser
    +TAN			= TAN					##	Returnerer tangens for et tall
    +TANH			= TANH					##	Returnerer den hyperbolske tangens for et tall
    +TRUNC			= AVKORT				##	Korter av et tall til et heltall
    +
    +
    +##
    +##	Statistical functions					Statistiske funksjoner
    +##
    +AVEDEV			= GJENNOMSNITTSAVVIK			##	Returnerer datapunktenes gjennomsnittlige absoluttavvik fra middelverdien
    +AVERAGE			= GJENNOMSNITT				##	Returnerer gjennomsnittet for argumentene
    +AVERAGEA		= GJENNOMSNITTA				##	Returnerer gjennomsnittet for argumentene, inkludert tall, tekst og logiske verdier
    +AVERAGEIF		= GJENNOMSNITTHVIS			##	Returnerer gjennomsnittet (aritmetisk gjennomsnitt) av alle cellene i et område som oppfyller et bestemt vilkår
    +AVERAGEIFS		= GJENNOMSNITT.HVIS.SETT		##	Returnerer gjennomsnittet (aritmetisk middelverdi) av alle celler som oppfyller flere vilkår.
    +BETADIST		= BETA.FORDELING			##	Returnerer den kumulative betafordelingsfunksjonen
    +BETAINV			= INVERS.BETA.FORDELING			##	Returnerer den inverse verdien til fordelingsfunksjonen for en angitt betafordeling
    +BINOMDIST		= BINOM.FORDELING			##	Returnerer den individuelle binomiske sannsynlighetsfordelingen
    +CHIDIST			= KJI.FORDELING				##	Returnerer den ensidige sannsynligheten for en kjikvadrert fordeling
    +CHIINV			= INVERS.KJI.FORDELING			##	Returnerer den inverse av den ensidige sannsynligheten for den kjikvadrerte fordelingen
    +CHITEST			= KJI.TEST				##	Utfører testen for uavhengighet
    +CONFIDENCE		= KONFIDENS				##	Returnerer konfidensintervallet til gjennomsnittet for en populasjon
    +CORREL			= KORRELASJON				##	Returnerer korrelasjonskoeffisienten mellom to datasett
    +COUNT			= ANTALL				##	Teller hvor mange tall som er i argumentlisten
    +COUNTA			= ANTALLA				##	Teller hvor mange verdier som er i argumentlisten
    +COUNTBLANK		= TELLBLANKE				##	Teller antall tomme celler i et område.
    +COUNTIF			= ANTALL.HVIS				##	Teller antall celler i et område som oppfyller gitte vilkår
    +COUNTIFS		= ANTALL.HVIS.SETT			##	Teller antallet ikke-tomme celler i et område som oppfyller flere vilkår
    +COVAR			= KOVARIANS				##	Returnerer kovariansen, gjennomsnittet av produktene av parvise avvik
    +CRITBINOM		= GRENSE.BINOM				##	Returnerer den minste verdien der den kumulative binomiske fordelingen er mindre enn eller lik en vilkårsverdi
    +DEVSQ			= AVVIK.KVADRERT			##	Returnerer summen av kvadrerte avvik
    +EXPONDIST		= EKSP.FORDELING			##	Returnerer eksponentialfordelingen
    +FDIST			= FFORDELING				##	Returnerer F-sannsynlighetsfordelingen
    +FINV			= FFORDELING.INVERS			##	Returnerer den inverse av den sannsynlige F-fordelingen
    +FISHER			= FISHER				##	Returnerer Fisher-transformasjonen
    +FISHERINV		= FISHERINV				##	Returnerer den inverse av Fisher-transformasjonen
    +FORECAST		= PROGNOSE				##	Returnerer en verdi langs en lineær trend
    +FREQUENCY		= FREKVENS				##	Returnerer en frekvensdistribusjon som en loddrett matrise
    +FTEST			= FTEST					##	Returnerer resultatet av en F-test
    +GAMMADIST		= GAMMAFORDELING			##	Returnerer gammafordelingen
    +GAMMAINV		= GAMMAINV				##	Returnerer den inverse av den gammakumulative fordelingen
    +GAMMALN			= GAMMALN				##	Returnerer den naturlige logaritmen til gammafunksjonen G(x)
    +GEOMEAN			= GJENNOMSNITT.GEOMETRISK		##	Returnerer den geometriske middelverdien
    +GROWTH			= VEKST					##	Returnerer verdier langs en eksponentiell trend
    +HARMEAN			= GJENNOMSNITT.HARMONISK		##	Returnerer den harmoniske middelverdien
    +HYPGEOMDIST		= HYPGEOM.FORDELING			##	Returnerer den hypergeometriske fordelingen
    +INTERCEPT		= SKJÆRINGSPUNKT			##	Returnerer skjæringspunktet til den lineære regresjonslinjen
    +KURT			= KURT					##	Returnerer kurtosen til et datasett
    +LARGE			= N.STØRST				##	Returnerer den n-te største verdien i et datasett
    +LINEST			= RETTLINJE				##	Returnerer parameterne til en lineær trend
    +LOGEST			= KURVE					##	Returnerer parameterne til en eksponentiell trend
    +LOGINV			= LOGINV				##	Returnerer den inverse lognormale fordelingen
    +LOGNORMDIST		= LOGNORMFORD				##	Returnerer den kumulative lognormale fordelingen
    +MAX			= STØRST				##	Returnerer maksimumsverdien i en argumentliste
    +MAXA			= MAKSA					##	Returnerer maksimumsverdien i en argumentliste, inkludert tall, tekst og logiske verdier
    +MEDIAN			= MEDIAN				##	Returnerer medianen til tallene som er gitt
    +MIN			= MIN					##	Returnerer minimumsverdien i en argumentliste
    +MINA			= MINA					##	Returnerer den minste verdien i en argumentliste, inkludert tall, tekst og logiske verdier
    +MODE			= MODUS					##	Returnerer den vanligste verdien i et datasett
    +NEGBINOMDIST		= NEGBINOM.FORDELING			##	Returnerer den negative binomiske fordelingen
    +NORMDIST		= NORMALFORDELING			##	Returnerer den kumulative normalfordelingen
    +NORMINV			= NORMINV				##	Returnerer den inverse kumulative normalfordelingen
    +NORMSDIST		= NORMSFORDELING			##	Returnerer standard kumulativ normalfordeling
    +NORMSINV		= NORMSINV				##	Returnerer den inverse av den den kumulative standard normalfordelingen
    +PEARSON			= PEARSON				##	Returnerer produktmomentkorrelasjonskoeffisienten, Pearson
    +PERCENTILE		= PERSENTIL				##	Returnerer den n-te persentil av verdiene i et område
    +PERCENTRANK		= PROSENTDEL				##	Returnerer prosentrangeringen av en verdi i et datasett
    +PERMUT			= PERMUTER				##	Returnerer antall permutasjoner for et gitt antall objekter
    +POISSON			= POISSON				##	Returnerer Poissons sannsynlighetsfordeling
    +PROB			= SANNSYNLIG				##	Returnerer sannsynligheten for at verdier i et område ligger mellom to grenser
    +QUARTILE		= KVARTIL				##	Returnerer kvartilen til et datasett
    +RANK			= RANG					##	Returnerer rangeringen av et tall, eller plassen tallet har i en rekke
    +RSQ			= RKVADRAT				##	Returnerer kvadratet av produktmomentkorrelasjonskoeffisienten (Pearsons r)
    +SKEW			= SKJEVFORDELING			##	Returnerer skjevheten i en fordeling
    +SLOPE			= STIGNINGSTALL				##	Returnerer stigningtallet for den lineære regresjonslinjen
    +SMALL			= N.MINST				##	Returnerer den n-te minste verdien i et datasett
    +STANDARDIZE		= NORMALISER				##	Returnerer en normalisert verdi
    +STDEV			= STDAV					##	Estimere standardavvik på grunnlag av et utvalg
    +STDEVA			= STDAVVIKA				##	Estimerer standardavvik basert på et utvalg, inkludert tall, tekst og logiske verdier
    +STDEVP			= STDAVP				##	Beregner standardavvik basert på hele populasjonen
    +STDEVPA			= STDAVVIKPA				##	Beregner standardavvik basert på hele populasjonen, inkludert tall, tekst og logiske verdier
    +STEYX			= STANDARDFEIL				##	Returnerer standardfeilen for den predikerte y-verdien for hver x i regresjonen
    +TDIST			= TFORDELING				##	Returnerer en Student t-fordeling
    +TINV			= TINV					##	Returnerer den inverse Student t-fordelingen
    +TREND			= TREND					##	Returnerer verdier langs en lineær trend
    +TRIMMEAN		= TRIMMET.GJENNOMSNITT			##	Returnerer den interne middelverdien til et datasett
    +TTEST			= TTEST					##	Returnerer sannsynligheten assosiert med en Student t-test
    +VAR			= VARIANS				##	Estimerer varians basert på et utvalg
    +VARA			= VARIANSA				##	Estimerer varians basert på et utvalg, inkludert tall, tekst og logiske verdier
    +VARP			= VARIANSP				##	Beregner varians basert på hele populasjonen
    +VARPA			= VARIANSPA				##	Beregner varians basert på hele populasjonen, inkludert tall, tekst og logiske verdier
    +WEIBULL			= WEIBULL.FORDELING			##	Returnerer Weibull-fordelingen
    +ZTEST			= ZTEST					##	Returnerer den ensidige sannsynlighetsverdien for en z-test
    +
    +
    +##
    +##	Text functions						Tekstfunksjoner
    +##
    +ASC			= STIGENDE				##	Endrer fullbreddes (dobbeltbyte) engelske bokstaver eller katakana i en tegnstreng, til halvbreddes (enkeltbyte) tegn
    +BAHTTEXT		= BAHTTEKST				##	Konverterer et tall til tekst, og bruker valutaformatet ß (baht)
    +CHAR			= TEGNKODE				##	Returnerer tegnet som svarer til kodenummeret
    +CLEAN			= RENSK					##	Fjerner alle tegn som ikke kan skrives ut, fra teksten
    +CODE			= KODE					##	Returnerer en numerisk kode for det første tegnet i en tekststreng
    +CONCATENATE		= KJEDE.SAMMEN				##	Slår sammen flere tekstelementer til ett tekstelement
    +DOLLAR			= VALUTA				##	Konverterer et tall til tekst, og bruker valutaformatet $ (dollar)
    +EXACT			= EKSAKT				##	Kontrollerer om to tekstverdier er like
    +FIND			= FINN					##	Finner en tekstverdi inne i en annen (skiller mellom store og små bokstaver)
    +FINDB			= FINNB					##	Finner en tekstverdi inne i en annen (skiller mellom store og små bokstaver)
    +FIXED			= FASTSATT				##	Formaterer et tall som tekst med et bestemt antall desimaler
    +JIS			= JIS					##	Endrer halvbreddes (enkeltbyte) engelske bokstaver eller katakana i en tegnstreng, til fullbreddes (dobbeltbyte) tegn
    +LEFT			= VENSTRE				##	Returnerer tegnene lengst til venstre i en tekstverdi
    +LEFTB			= VENSTREB				##	Returnerer tegnene lengst til venstre i en tekstverdi
    +LEN			= LENGDE				##	Returnerer antall tegn i en tekststreng
    +LENB			= LENGDEB				##	Returnerer antall tegn i en tekststreng
    +LOWER			= SMÅ					##	Konverterer tekst til små bokstaver
    +MID			= DELTEKST				##	Returnerer et angitt antall tegn fra en tekststreng, og begynner fra posisjonen du angir
    +MIDB			= DELTEKSTB				##	Returnerer et angitt antall tegn fra en tekststreng, og begynner fra posisjonen du angir
    +PHONETIC		= FURIGANA				##	Trekker ut fonetiske tegn (furigana) fra en tekststreng
    +PROPER			= STOR.FORBOKSTAV			##	Gir den første bokstaven i hvert ord i en tekstverdi stor forbokstav
    +REPLACE			= ERSTATT				##	Erstatter tegn i en tekst
    +REPLACEB		= ERSTATTB				##	Erstatter tegn i en tekst
    +REPT			= GJENTA				##	Gjentar tekst et gitt antall ganger
    +RIGHT			= HØYRE					##	Returnerer tegnene lengst til høyre i en tekstverdi
    +RIGHTB			= HØYREB				##	Returnerer tegnene lengst til høyre i en tekstverdi
    +SEARCH			= SØK					##	Finner en tekstverdi inne i en annen (skiller ikke mellom store og små bokstaver)
    +SEARCHB			= SØKB					##	Finner en tekstverdi inne i en annen (skiller ikke mellom store og små bokstaver)
    +SUBSTITUTE		= BYTT.UT				##	Bytter ut gammel tekst med ny tekst i en tekststreng
    +T			= T					##	Konverterer argumentene til tekst
    +TEXT			= TEKST					##	Formaterer et tall og konverterer det til tekst
    +TRIM			= TRIMME				##	Fjerner mellomrom fra tekst
    +UPPER			= STORE					##	Konverterer tekst til store bokstaver
    +VALUE			= VERDI					##	Konverterer et tekstargument til et tall
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pl/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pl/config
    new file mode 100644
    index 00000000000..00f8b9a340b
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pl/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= zł
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #ZERO!
    +DIV0	= #DZIEL/0!
    +VALUE	= #ARG!
    +REF	= #ADR!
    +NAME	= #NAZWA?
    +NUM	= #LICZBA!
    +NA	= #N/D!
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pl/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pl/functions
    new file mode 100644
    index 00000000000..907a4ff0f8e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pl/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions			Funkcje dodatków i automatyzacji
    +##
    +GETPIVOTDATA		= WEŹDANETABELI			##	Zwraca dane przechowywane w raporcie tabeli przestawnej.
    +
    +
    +##
    +##	Cube functions					Funkcje modułów
    +##
    +CUBEKPIMEMBER		= ELEMENT.KPI.MODUŁU		##	Zwraca nazwę, właściwość i miarę kluczowego wskaźnika wydajności (KPI) oraz wyświetla nazwę i właściwość w komórce. Wskaźnik KPI jest miarą ilościową, taką jak miesięczny zysk brutto lub kwartalna fluktuacja pracowników, używaną do monitorowania wydajności organizacji.
    +CUBEMEMBER		= ELEMENT.MODUŁU		##	Zwraca element lub krotkę z hierarchii modułu. Służy do sprawdzania, czy element lub krotka istnieje w module.
    +CUBEMEMBERPROPERTY	= WŁAŚCIWOŚĆ.ELEMENTU.MODUŁU	##	Zwraca wartość właściwości elementu w module. Służy do sprawdzania, czy nazwa elementu istnieje w module, i zwracania określonej właściwości dla tego elementu.
    +CUBERANKEDMEMBER	= USZEREGOWANY.ELEMENT.MODUŁU	##	Zwraca n-ty (albo uszeregowany) element zestawu. Służy do zwracania elementu lub elementów zestawu, na przykład najlepszego sprzedawcy lub 10 najlepszych studentów.
    +CUBESET			= ZESTAW.MODUŁÓW		##	Definiuje obliczony zestaw elementów lub krotek, wysyłając wyrażenie zestawu do serwera modułu, który tworzy zestaw i zwraca go do programu Microsoft Office Excel.
    +CUBESETCOUNT		= LICZNIK.MODUŁÓW.ZESTAWU	##	Zwraca liczbę elementów zestawu.
    +CUBEVALUE		= WARTOŚĆ.MODUŁU		##	Zwraca zagregowaną wartość z modułu.
    +
    +
    +##
    +##	Database functions				Funkcje baz danych
    +##
    +DAVERAGE		= BD.ŚREDNIA			##	Zwraca wartość średniej wybranych wpisów bazy danych.
    +DCOUNT			= BD.ILE.REKORDÓW		##	Zlicza komórki zawierające liczby w bazie danych.
    +DCOUNTA			= BD.ILE.REKORDÓW.A		##	Zlicza niepuste komórki w bazie danych.
    +DGET			= BD.POLE			##	Wyodrębnia z bazy danych jeden rekord spełniający określone kryteria.
    +DMAX			= BD.MAX			##	Zwraca wartość maksymalną z wybranych wpisów bazy danych.
    +DMIN			= BD.MIN			##	Zwraca wartość minimalną z wybranych wpisów bazy danych.
    +DPRODUCT		= BD.ILOCZYN			##	Mnoży wartości w konkretnym, spełniającym kryteria polu rekordów bazy danych.
    +DSTDEV			= BD.ODCH.STANDARD		##	Szacuje odchylenie standardowe na podstawie próbki z wybranych wpisów bazy danych.
    +DSTDEVP			= BD.ODCH.STANDARD.POPUL	##	Oblicza odchylenie standardowe na podstawie całej populacji wybranych wpisów bazy danych.
    +DSUM			= BD.SUMA			##	Dodaje liczby w kolumnie pól rekordów bazy danych, które spełniają kryteria.
    +DVAR			= BD.WARIANCJA			##	Szacuje wariancję na podstawie próbki z wybranych wpisów bazy danych.
    +DVARP			= BD.WARIANCJA.POPUL		##	Oblicza wariancję na podstawie całej populacji wybranych wpisów bazy danych.
    +
    +
    +##
    +##	Date and time functions				Funkcje dat, godzin i czasu
    +##
    +DATE			= DATA				##	Zwraca liczbę seryjną dla wybranej daty.
    +DATEVALUE		= DATA.WARTOŚĆ			##	Konwertuje datę w formie tekstu na liczbę seryjną.
    +DAY			= DZIEŃ				##	Konwertuje liczbę seryjną na dzień miesiąca.
    +DAYS360			= DNI.360			##	Oblicza liczbę dni między dwiema datami na podstawie roku 360-dniowego.
    +EDATE			= UPŁDNI			##	Zwraca liczbę seryjną daty jako wskazaną liczbę miesięcy przed określoną datą początkową lub po niej.
    +EOMONTH			= EOMONTH			##	Zwraca liczbę seryjną ostatniego dnia miesiąca przed określoną liczbą miesięcy lub po niej.
    +HOUR			= GODZINA			##	Konwertuje liczbę seryjną na godzinę.
    +MINUTE			= MINUTA			##	Konwertuje liczbę seryjną na minutę.
    +MONTH			= MIESIĄC			##	Konwertuje liczbę seryjną na miesiąc.
    +NETWORKDAYS		= NETWORKDAYS			##	Zwraca liczbę pełnych dni roboczych między dwiema datami.
    +NOW			= TERAZ				##	Zwraca liczbę seryjną bieżącej daty i godziny.
    +SECOND			= SEKUNDA			##	Konwertuje liczbę seryjną na sekundę.
    +TIME			= CZAS				##	Zwraca liczbę seryjną określonego czasu.
    +TIMEVALUE		= CZAS.WARTOŚĆ			##	Konwertuje czas w formie tekstu na liczbę seryjną.
    +TODAY			= DZIŚ				##	Zwraca liczbę seryjną dla daty bieżącej.
    +WEEKDAY			= DZIEŃ.TYG			##	Konwertuje liczbę seryjną na dzień tygodnia.
    +WEEKNUM			= WEEKNUM			##	Konwertuje liczbę seryjną na liczbę reprezentującą numer tygodnia w roku.
    +WORKDAY			= WORKDAY			##	Zwraca liczbę seryjną dla daty przed określoną liczbą dni roboczych lub po niej.
    +YEAR			= ROK				##	Konwertuje liczbę seryjną na rok.
    +YEARFRAC		= YEARFRAC			##	Zwraca część roku reprezentowaną przez pełną liczbę dni między datą początkową a datą końcową.
    +
    +
    +##
    +##	Engineering functions				Funkcje inżynierskie
    +##
    +BESSELI			= BESSELI			##	Zwraca wartość zmodyfikowanej funkcji Bessela In(x).
    +BESSELJ			= BESSELJ			##	Zwraca wartość funkcji Bessela Jn(x).
    +BESSELK			= BESSELK			##	Zwraca wartość zmodyfikowanej funkcji Bessela Kn(x).
    +BESSELY			= BESSELY			##	Zwraca wartość funkcji Bessela Yn(x).
    +BIN2DEC			= BIN2DEC			##	Konwertuje liczbę w postaci dwójkowej na liczbę w postaci dziesiętnej.
    +BIN2HEX			= BIN2HEX			##	Konwertuje liczbę w postaci dwójkowej na liczbę w postaci szesnastkowej.
    +BIN2OCT			= BIN2OCT			##	Konwertuje liczbę w postaci dwójkowej na liczbę w postaci ósemkowej.
    +COMPLEX			= COMPLEX			##	Konwertuje część rzeczywistą i urojoną na liczbę zespoloną.
    +CONVERT			= CONVERT			##	Konwertuje liczbę z jednego systemu miar na inny.
    +DEC2BIN			= DEC2BIN			##	Konwertuje liczbę w postaci dziesiętnej na postać dwójkową.
    +DEC2HEX			= DEC2HEX			##	Konwertuje liczbę w postaci dziesiętnej na liczbę w postaci szesnastkowej.
    +DEC2OCT			= DEC2OCT			##	Konwertuje liczbę w postaci dziesiętnej na liczbę w postaci ósemkowej.
    +DELTA			= DELTA				##	Sprawdza, czy dwie wartości są równe.
    +ERF			= ERF				##	Zwraca wartość funkcji błędu.
    +ERFC			= ERFC				##	Zwraca wartość komplementarnej funkcji błędu.
    +GESTEP			= GESTEP			##	Sprawdza, czy liczba jest większa niż wartość progowa.
    +HEX2BIN			= HEX2BIN			##	Konwertuje liczbę w postaci szesnastkowej na liczbę w postaci dwójkowej.
    +HEX2DEC			= HEX2DEC			##	Konwertuje liczbę w postaci szesnastkowej na liczbę w postaci dziesiętnej.
    +HEX2OCT			= HEX2OCT			##	Konwertuje liczbę w postaci szesnastkowej na liczbę w postaci ósemkowej.
    +IMABS			= IMABS				##	Zwraca wartość bezwzględną (moduł) liczby zespolonej.
    +IMAGINARY		= IMAGINARY			##	Zwraca wartość części urojonej liczby zespolonej.
    +IMARGUMENT		= IMARGUMENT			##	Zwraca wartość argumentu liczby zespolonej, przy czym kąt wyrażony jest w radianach.
    +IMCONJUGATE		= IMCONJUGATE			##	Zwraca wartość liczby sprzężonej danej liczby zespolonej.
    +IMCOS			= IMCOS				##	Zwraca wartość cosinusa liczby zespolonej.
    +IMDIV			= IMDIV				##	Zwraca wartość ilorazu dwóch liczb zespolonych.
    +IMEXP			= IMEXP				##	Zwraca postać wykładniczą liczby zespolonej.
    +IMLN			= IMLN				##	Zwraca wartość logarytmu naturalnego liczby zespolonej.
    +IMLOG10			= IMLOG10			##	Zwraca wartość logarytmu dziesiętnego liczby zespolonej.
    +IMLOG2			= IMLOG2			##	Zwraca wartość logarytmu liczby zespolonej przy podstawie 2.
    +IMPOWER			= IMPOWER			##	Zwraca wartość liczby zespolonej podniesionej do potęgi całkowitej.
    +IMPRODUCT		= IMPRODUCT			##	Zwraca wartość iloczynu liczb zespolonych.
    +IMREAL			= IMREAL			##	Zwraca wartość części rzeczywistej liczby zespolonej.
    +IMSIN			= IMSIN				##	Zwraca wartość sinusa liczby zespolonej.
    +IMSQRT			= IMSQRT			##	Zwraca wartość pierwiastka kwadratowego z liczby zespolonej.
    +IMSUB			= IMSUB				##	Zwraca wartość różnicy dwóch liczb zespolonych.
    +IMSUM			= IMSUM				##	Zwraca wartość sumy liczb zespolonych.
    +OCT2BIN			= OCT2BIN			##	Konwertuje liczbę w postaci ósemkowej na liczbę w postaci dwójkowej.
    +OCT2DEC			= OCT2DEC			##	Konwertuje liczbę w postaci ósemkowej na liczbę w postaci dziesiętnej.
    +OCT2HEX			= OCT2HEX			##	Konwertuje liczbę w postaci ósemkowej na liczbę w postaci szesnastkowej.
    +
    +
    +##
    +##	Financial functions				Funkcje finansowe
    +##
    +ACCRINT			= ACCRINT			##	Zwraca narosłe odsetki dla papieru wartościowego z oprocentowaniem okresowym.
    +ACCRINTM		= ACCRINTM			##	Zwraca narosłe odsetki dla papieru wartościowego z oprocentowaniem w terminie wykupu.
    +AMORDEGRC		= AMORDEGRC			##	Zwraca amortyzację dla każdego okresu rozliczeniowego z wykorzystaniem współczynnika amortyzacji.
    +AMORLINC		= AMORLINC			##	Zwraca amortyzację dla każdego okresu rozliczeniowego.
    +COUPDAYBS		= COUPDAYBS			##	Zwraca liczbę dni od początku okresu dywidendy do dnia rozliczeniowego.
    +COUPDAYS		= COUPDAYS			##	Zwraca liczbę dni w okresie dywidendy, z uwzględnieniem dnia rozliczeniowego.
    +COUPDAYSNC		= COUPDAYSNC			##	Zwraca liczbę dni od dnia rozliczeniowego do daty następnego dnia dywidendy.
    +COUPNCD			= COUPNCD			##	Zwraca dzień następnej dywidendy po dniu rozliczeniowym.
    +COUPNUM			= COUPNUM			##	Zwraca liczbę dywidend płatnych między dniem rozliczeniowym a dniem wykupu.
    +COUPPCD			= COUPPCD			##	Zwraca dzień poprzedniej dywidendy przed dniem rozliczeniowym.
    +CUMIPMT			= CUMIPMT			##	Zwraca wartość procentu składanego płatnego między dwoma okresami.
    +CUMPRINC		= CUMPRINC			##	Zwraca wartość kapitału skumulowanego spłaty pożyczki między dwoma okresami.
    +DB			= DB				##	Zwraca amortyzację środka trwałego w danym okresie metodą degresywną z zastosowaniem stałej bazowej.
    +DDB			= DDB				##	Zwraca amortyzację środka trwałego za podany okres metodą degresywną z zastosowaniem podwójnej bazowej lub metodą określoną przez użytkownika.
    +DISC			= DISC				##	Zwraca wartość stopy dyskontowej papieru wartościowego.
    +DOLLARDE		= DOLLARDE			##	Konwertuje cenę w postaci ułamkowej na cenę wyrażoną w postaci dziesiętnej.
    +DOLLARFR		= DOLLARFR			##	Konwertuje cenę wyrażoną w postaci dziesiętnej na cenę wyrażoną w postaci ułamkowej.
    +DURATION		= DURATION			##	Zwraca wartość rocznego przychodu z papieru wartościowego o okresowych wypłatach oprocentowania.
    +EFFECT			= EFFECT			##	Zwraca wartość efektywnej rocznej stopy procentowej.
    +FV			= FV				##	Zwraca przyszłą wartość lokaty.
    +FVSCHEDULE		= FVSCHEDULE			##	Zwraca przyszłą wartość kapitału początkowego wraz z szeregiem procentów składanych.
    +INTRATE			= INTRATE			##	Zwraca wartość stopy procentowej papieru wartościowego całkowicie ulokowanego.
    +IPMT			= IPMT				##	Zwraca wysokość spłaty oprocentowania lokaty za dany okres.
    +IRR			= IRR				##	Zwraca wartość wewnętrznej stopy zwrotu dla serii przepływów gotówkowych.
    +ISPMT			= ISPMT				##	Oblicza wysokość spłaty oprocentowania za dany okres lokaty.
    +MDURATION		= MDURATION			##	Zwraca wartość zmodyfikowanego okresu Macauleya dla papieru wartościowego o założonej wartości nominalnej 100 zł.
    +MIRR			= MIRR				##	Zwraca wartość wewnętrznej stopy zwrotu dla przypadku, gdy dodatnie i ujemne przepływy gotówkowe mają różne stopy.
    +NOMINAL			= NOMINAL			##	Zwraca wysokość nominalnej rocznej stopy procentowej.
    +NPER			= NPER				##	Zwraca liczbę okresów dla lokaty.
    +NPV			= NPV				##	Zwraca wartość bieżącą netto lokaty na podstawie szeregu okresowych przepływów gotówkowych i stopy dyskontowej.
    +ODDFPRICE		= ODDFPRICE			##	Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z nietypowym pierwszym okresem.
    +ODDFYIELD		= ODDFYIELD			##	Zwraca rentowność papieru wartościowego z nietypowym pierwszym okresem.
    +ODDLPRICE		= ODDLPRICE			##	Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z nietypowym ostatnim okresem.
    +ODDLYIELD		= ODDLYIELD			##	Zwraca rentowność papieru wartościowego z nietypowym ostatnim okresem.
    +PMT			= PMT				##	Zwraca wartość okresowej płatności raty rocznej.
    +PPMT			= PPMT				##	Zwraca wysokość spłaty kapitału w przypadku lokaty dla danego okresu.
    +PRICE			= PRICE				##	Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z oprocentowaniem okresowym.
    +PRICEDISC		= PRICEDISC			##	Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego zdyskontowanego.
    +PRICEMAT		= PRICEMAT			##	Zwraca cenę za 100 zł wartości nominalnej papieru wartościowego z oprocentowaniem w terminie wykupu.
    +PV			= PV				##	Zwraca wartość bieżącą lokaty.
    +RATE			= RATE				##	Zwraca wysokość stopy procentowej w okresie raty rocznej.
    +RECEIVED		= RECEIVED			##	Zwraca wartość kapitału otrzymanego przy wykupie papieru wartościowego całkowicie ulokowanego.
    +SLN			= SLN				##	Zwraca amortyzację środka trwałego za jeden okres metodą liniową.
    +SYD			= SYD				##	Zwraca amortyzację środka trwałego za dany okres metodą sumy cyfr lat amortyzacji.
    +TBILLEQ			= TBILLEQ			##	Zwraca rentowność ekwiwalentu obligacji dla bonu skarbowego.
    +TBILLPRICE		= TBILLPRICE			##	Zwraca cenę za 100 zł wartości nominalnej bonu skarbowego.
    +TBILLYIELD		= TBILLYIELD			##	Zwraca rentowność bonu skarbowego.
    +VDB			= VDB				##	Oblicza amortyzację środka trwałego w danym okresie lub jego części metodą degresywną.
    +XIRR			= XIRR				##	Zwraca wartość wewnętrznej stopy zwrotu dla serii rozłożonych w czasie przepływów gotówkowych, niekoniecznie okresowych.
    +XNPV			= XNPV				##	Zwraca wartość bieżącą netto dla serii rozłożonych w czasie przepływów gotówkowych, niekoniecznie okresowych.
    +YIELD			= YIELD				##	Zwraca rentowność papieru wartościowego z oprocentowaniem okresowym.
    +YIELDDISC		= YIELDDISC			##	Zwraca roczną rentowność zdyskontowanego papieru wartościowego, na przykład bonu skarbowego.
    +YIELDMAT		= YIELDMAT			##	Zwraca roczną rentowność papieru wartościowego oprocentowanego przy wykupie.
    +
    +
    +##
    +##	Information functions				Funkcje informacyjne
    +##
    +CELL			= KOMÓRKA			##	Zwraca informacje o formacie, położeniu lub zawartości komórki.
    +ERROR.TYPE		= NR.BŁĘDU			##	Zwraca liczbę odpowiadającą typowi błędu.
    +INFO			= INFO				##	Zwraca informację o aktualnym środowisku pracy.
    +ISBLANK			= CZY.PUSTA			##	Zwraca wartość PRAWDA, jeśli wartość jest pusta.
    +ISERR			= CZY.BŁ			##	Zwraca wartość PRAWDA, jeśli wartość jest dowolną wartością błędu, z wyjątkiem #N/D!.
    +ISERROR			= CZY.BŁĄD			##	Zwraca wartość PRAWDA, jeśli wartość jest dowolną wartością błędu.
    +ISEVEN			= ISEVEN			##	Zwraca wartość PRAWDA, jeśli liczba jest parzysta.
    +ISLOGICAL		= CZY.LOGICZNA			##	Zwraca wartość PRAWDA, jeśli wartość jest wartością logiczną.
    +ISNA			= CZY.BRAK			##	Zwraca wartość PRAWDA, jeśli wartość jest wartością błędu #N/D!.
    +ISNONTEXT		= CZY.NIE.TEKST			##	Zwraca wartość PRAWDA, jeśli wartość nie jest tekstem.
    +ISNUMBER		= CZY.LICZBA			##	Zwraca wartość PRAWDA, jeśli wartość jest liczbą.
    +ISODD			= ISODD				##	Zwraca wartość PRAWDA, jeśli liczba jest nieparzysta.
    +ISREF			= CZY.ADR			##	Zwraca wartość PRAWDA, jeśli wartość jest odwołaniem.
    +ISTEXT			= CZY.TEKST			##	Zwraca wartość PRAWDA, jeśli wartość jest tekstem.
    +N			= L				##	Zwraca wartość przekonwertowaną na postać liczbową.
    +NA			= BRAK				##	Zwraca wartość błędu #N/D!.
    +TYPE			= TYP				##	Zwraca liczbę wskazującą typ danych wartości.
    +
    +
    +##
    +##	Logical functions				Funkcje logiczne
    +##
    +AND			= ORAZ				##	Zwraca wartość PRAWDA, jeśli wszystkie argumenty mają wartość PRAWDA.
    +FALSE			= FAŁSZ				##	Zwraca wartość logiczną FAŁSZ.
    +IF			= JEŻELI			##	Określa warunek logiczny do sprawdzenia.
    +IFERROR			= JEŻELI.BŁĄD			##	Zwraca określoną wartość, jeśli wynikiem obliczenia formuły jest błąd; w przeciwnym przypadku zwraca wynik formuły.
    +NOT			= NIE				##	Odwraca wartość logiczną argumentu.
    +OR			= LUB				##	Zwraca wartość PRAWDA, jeśli co najmniej jeden z argumentów ma wartość PRAWDA.
    +TRUE			= PRAWDA			##	Zwraca wartość logiczną PRAWDA.
    +
    +
    +##
    +##	Lookup and reference functions			Funkcje wyszukiwania i odwołań
    +##
    +ADDRESS			= ADRES				##	Zwraca odwołanie do jednej komórki w arkuszu jako wartość tekstową.
    +AREAS			= OBSZARY			##	Zwraca liczbę obszarów występujących w odwołaniu.
    +CHOOSE			= WYBIERZ			##	Wybiera wartość z listy wartości.
    +COLUMN			= NR.KOLUMNY			##	Zwraca numer kolumny z odwołania.
    +COLUMNS			= LICZBA.KOLUMN			##	Zwraca liczbę kolumn dla danego odwołania.
    +HLOOKUP			= WYSZUKAJ.POZIOMO		##	Przegląda górny wiersz tablicy i zwraca wartość wskazanej komórki.
    +HYPERLINK		= HIPERŁĄCZE			##	Tworzy skrót lub skok, który pozwala otwierać dokument przechowywany na serwerze sieciowym, w sieci intranet lub w Internecie.
    +INDEX			= INDEKS			##	Używa indeksu do wybierania wartości z odwołania lub tablicy.
    +INDIRECT		= ADR.POŚR			##	Zwraca odwołanie określone przez wartość tekstową.
    +LOOKUP			= WYSZUKAJ			##	Wyszukuje wartości w wektorze lub tablicy.
    +MATCH			= PODAJ.POZYCJĘ			##	Wyszukuje wartości w odwołaniu lub w tablicy.
    +OFFSET			= PRZESUNIĘCIE			##	Zwraca adres przesunięty od danego odwołania.
    +ROW			= WIERSZ			##	Zwraca numer wiersza odwołania.
    +ROWS			= ILE.WIERSZY			##	Zwraca liczbę wierszy dla danego odwołania.
    +RTD			= RTD				##	Pobiera dane w czasie rzeczywistym z programu obsługującego automatyzację COM (Automatyzacja: Sposób pracy z obiektami aplikacji pochodzącymi z innej aplikacji lub narzędzia projektowania. Nazywana wcześniej Automatyzacją OLE, Automatyzacja jest standardem przemysłowym i funkcją obiektowego modelu składników (COM, Component Object Model).).
    +TRANSPOSE		= TRANSPONUJ			##	Zwraca transponowaną tablicę.
    +VLOOKUP			= WYSZUKAJ.PIONOWO		##	Przeszukuje pierwszą kolumnę tablicy i przechodzi wzdłuż wiersza, aby zwrócić wartość komórki.
    +
    +
    +##
    +##	Math and trigonometry functions			Funkcje matematyczne i trygonometryczne
    +##
    +ABS			= MODUŁ.LICZBY			##	Zwraca wartość absolutną liczby.
    +ACOS			= ACOS				##	Zwraca arcus cosinus liczby.
    +ACOSH			= ACOSH				##	Zwraca arcus cosinus hiperboliczny liczby.
    +ASIN			= ASIN				##	Zwraca arcus sinus liczby.
    +ASINH			= ASINH				##	Zwraca arcus sinus hiperboliczny liczby.
    +ATAN			= ATAN				##	Zwraca arcus tangens liczby.
    +ATAN2			= ATAN2				##	Zwraca arcus tangens liczby na podstawie współrzędnych x i y.
    +ATANH			= ATANH				##	Zwraca arcus tangens hiperboliczny liczby.
    +CEILING			= ZAOKR.W.GÓRĘ			##	Zaokrągla liczbę do najbliższej liczby całkowitej lub do najbliższej wielokrotności dokładności.
    +COMBIN			= KOMBINACJE			##	Zwraca liczbę kombinacji dla danej liczby obiektów.
    +COS			= COS				##	Zwraca cosinus liczby.
    +COSH			= COSH				##	Zwraca cosinus hiperboliczny liczby.
    +DEGREES			= STOPNIE			##	Konwertuje radiany na stopnie.
    +EVEN			= ZAOKR.DO.PARZ			##	Zaokrągla liczbę w górę do najbliższej liczby parzystej.
    +EXP			= EXP				##	Zwraca wartość liczby e podniesionej do potęgi określonej przez podaną liczbę.
    +FACT			= SILNIA			##	Zwraca silnię liczby.
    +FACTDOUBLE		= FACTDOUBLE			##	Zwraca podwójną silnię liczby.
    +FLOOR			= ZAOKR.W.DÓŁ			##	Zaokrągla liczbę w dół, w kierunku zera.
    +GCD			= GCD				##	Zwraca największy wspólny dzielnik.
    +INT			= ZAOKR.DO.CAŁK			##	Zaokrągla liczbę w dół do najbliższej liczby całkowitej.
    +LCM			= LCM				##	Zwraca najmniejszą wspólną wielokrotność.
    +LN			= LN				##	Zwraca logarytm naturalny podanej liczby.
    +LOG			= LOG				##	Zwraca logarytm danej liczby przy zadanej podstawie.
    +LOG10			= LOG10				##	Zwraca logarytm dziesiętny liczby.
    +MDETERM			= WYZNACZNIK.MACIERZY		##	Zwraca wyznacznik macierzy tablicy.
    +MINVERSE		= MACIERZ.ODW			##	Zwraca odwrotność macierzy tablicy.
    +MMULT			= MACIERZ.ILOCZYN		##	Zwraca iloczyn macierzy dwóch tablic.
    +MOD			= MOD				##	Zwraca resztę z dzielenia.
    +MROUND			= MROUND			##	Zwraca liczbę zaokrągloną do żądanej wielokrotności.
    +MULTINOMIAL		= MULTINOMIAL			##	Zwraca wielomian dla zbioru liczb.
    +ODD			= ZAOKR.DO.NPARZ		##	Zaokrągla liczbę w górę do najbliższej liczby nieparzystej.
    +PI			= PI				##	Zwraca wartość liczby Pi.
    +POWER			= POTĘGA			##	Zwraca liczbę podniesioną do potęgi.
    +PRODUCT			= ILOCZYN			##	Mnoży argumenty.
    +QUOTIENT		= QUOTIENT			##	Zwraca iloraz (całkowity).
    +RADIANS			= RADIANY			##	Konwertuje stopnie na radiany.
    +RAND			= LOS				##	Zwraca liczbę pseudolosową z zakresu od 0 do 1.
    +RANDBETWEEN		= RANDBETWEEN			##	Zwraca liczbę pseudolosową z zakresu określonego przez podane argumenty.
    +ROMAN			= RZYMSKIE			##	Konwertuje liczbę arabską na rzymską jako tekst.
    +ROUND			= ZAOKR				##	Zaokrągla liczbę do określonej liczby cyfr.
    +ROUNDDOWN		= ZAOKR.DÓŁ			##	Zaokrągla liczbę w dół, w kierunku zera.
    +ROUNDUP			= ZAOKR.GÓRA			##	Zaokrągla liczbę w górę, w kierunku od zera.
    +SERIESSUM		= SERIESSUM			##	Zwraca sumę szeregu potęgowego na podstawie wzoru.
    +SIGN			= ZNAK.LICZBY			##	Zwraca znak liczby.
    +SIN			= SIN				##	Zwraca sinus danego kąta.
    +SINH			= SINH				##	Zwraca sinus hiperboliczny liczby.
    +SQRT			= PIERWIASTEK			##	Zwraca dodatni pierwiastek kwadratowy.
    +SQRTPI			= SQRTPI			##	Zwraca pierwiastek kwadratowy iloczynu (liczba * Pi).
    +SUBTOTAL		= SUMY.POŚREDNIE		##	Zwraca sumę częściową listy lub bazy danych.
    +SUM			= SUMA				##	Dodaje argumenty.
    +SUMIF			= SUMA.JEŻELI			##	Dodaje komórki określone przez podane kryterium.
    +SUMIFS			= SUMA.WARUNKÓW			##	Dodaje komórki w zakresie, które spełniają wiele kryteriów.
    +SUMPRODUCT		= SUMA.ILOCZYNÓW		##	Zwraca sumę iloczynów odpowiednich elementów tablicy.
    +SUMSQ			= SUMA.KWADRATÓW		##	Zwraca sumę kwadratów argumentów.
    +SUMX2MY2		= SUMA.X2.M.Y2			##	Zwraca sumę różnic kwadratów odpowiednich wartości w dwóch tablicach.
    +SUMX2PY2		= SUMA.X2.P.Y2			##	Zwraca sumę sum kwadratów odpowiednich wartości w dwóch tablicach.
    +SUMXMY2			= SUMA.XMY.2			##	Zwraca sumę kwadratów różnic odpowiednich wartości w dwóch tablicach.
    +TAN			= TAN				##	Zwraca tangens liczby.
    +TANH			= TANH				##	Zwraca tangens hiperboliczny liczby.
    +TRUNC			= LICZBA.CAŁK			##	Przycina liczbę do wartości całkowitej.
    +
    +
    +##
    +##	Statistical functions				Funkcje statystyczne
    +##
    +AVEDEV			= ODCH.ŚREDNIE			##	Zwraca średnią wartość odchyleń absolutnych punktów danych od ich wartości średniej.
    +AVERAGE			= ŚREDNIA			##	Zwraca wartość średnią argumentów.
    +AVERAGEA		= ŚREDNIA.A			##	Zwraca wartość średnią argumentów, z uwzględnieniem liczb, tekstów i wartości logicznych.
    +AVERAGEIF		= ŚREDNIA.JEŻELI		##	Zwraca średnią (średnią arytmetyczną) wszystkich komórek w zakresie, które spełniają podane kryteria.
    +AVERAGEIFS		= ŚREDNIA.WARUNKÓW		##	Zwraca średnią (średnią arytmetyczną) wszystkich komórek, które spełniają jedno lub więcej kryteriów.
    +BETADIST		= ROZKŁAD.BETA			##	Zwraca skumulowaną funkcję gęstości prawdopodobieństwa beta.
    +BETAINV			= ROZKŁAD.BETA.ODW		##	Zwraca odwrotność skumulowanej funkcji gęstości prawdopodobieństwa beta.
    +BINOMDIST		= ROZKŁAD.DWUM			##	Zwraca pojedynczy składnik dwumianowego rozkładu prawdopodobieństwa.
    +CHIDIST			= ROZKŁAD.CHI			##	Zwraca wartość jednostronnego prawdopodobieństwa rozkładu chi-kwadrat.
    +CHIINV			= ROZKŁAD.CHI.ODW		##	Zwraca odwrotność wartości jednostronnego prawdopodobieństwa rozkładu chi-kwadrat.
    +CHITEST			= TEST.CHI			##	Zwraca test niezależności.
    +CONFIDENCE		= UFNOŚĆ			##	Zwraca interwał ufności dla średniej populacji.
    +CORREL			= WSP.KORELACJI			##	Zwraca współczynnik korelacji dwóch zbiorów danych.
    +COUNT			= ILE.LICZB			##	Zlicza liczby znajdujące się na liście argumentów.
    +COUNTA			= ILE.NIEPUSTYCH		##	Zlicza wartości znajdujące się na liście argumentów.
    +COUNTBLANK		= LICZ.PUSTE			##	Zwraca liczbę pustych komórek w pewnym zakresie.
    +COUNTIF			= LICZ.JEŻELI			##	Zlicza komórki wewnątrz zakresu, które spełniają podane kryteria.
    +COUNTIFS		= LICZ.WARUNKI			##	Zlicza komórki wewnątrz zakresu, które spełniają wiele kryteriów.
    +COVAR			= KOWARIANCJA			##	Zwraca kowariancję, czyli średnią wartość iloczynów odpowiednich odchyleń.
    +CRITBINOM		= PRÓG.ROZKŁAD.DWUM		##	Zwraca najmniejszą wartość, dla której skumulowany rozkład dwumianowy jest mniejszy niż wartość kryterium lub równy jej.
    +DEVSQ			= ODCH.KWADRATOWE		##	Zwraca sumę kwadratów odchyleń.
    +EXPONDIST		= ROZKŁAD.EXP			##	Zwraca rozkład wykładniczy.
    +FDIST			= ROZKŁAD.F			##	Zwraca rozkład prawdopodobieństwa F.
    +FINV			= ROZKŁAD.F.ODW			##	Zwraca odwrotność rozkładu prawdopodobieństwa F.
    +FISHER			= ROZKŁAD.FISHER		##	Zwraca transformację Fishera.
    +FISHERINV		= ROZKŁAD.FISHER.ODW		##	Zwraca odwrotność transformacji Fishera.
    +FORECAST		= REGLINX			##	Zwraca wartość trendu liniowego.
    +FREQUENCY		= CZĘSTOŚĆ			##	Zwraca rozkład częstotliwości jako tablicę pionową.
    +FTEST			= TEST.F			##	Zwraca wynik testu F.
    +GAMMADIST		= ROZKŁAD.GAMMA			##	Zwraca rozkład gamma.
    +GAMMAINV		= ROZKŁAD.GAMMA.ODW		##	Zwraca odwrotność skumulowanego rozkładu gamma.
    +GAMMALN			= ROZKŁAD.LIN.GAMMA		##	Zwraca logarytm naturalny funkcji gamma, Γ(x).
    +GEOMEAN			= ŚREDNIA.GEOMETRYCZNA		##	Zwraca średnią geometryczną.
    +GROWTH			= REGEXPW			##	Zwraca wartości trendu wykładniczego.
    +HARMEAN			= ŚREDNIA.HARMONICZNA		##	Zwraca średnią harmoniczną.
    +HYPGEOMDIST		= ROZKŁAD.HIPERGEOM		##	Zwraca rozkład hipergeometryczny.
    +INTERCEPT		= ODCIĘTA			##	Zwraca punkt przecięcia osi pionowej z linią regresji liniowej.
    +KURT			= KURTOZA			##	Zwraca kurtozę zbioru danych.
    +LARGE			= MAX.K				##	Zwraca k-tą największą wartość ze zbioru danych.
    +LINEST			= REGLINP			##	Zwraca parametry trendu liniowego.
    +LOGEST			= REGEXPP			##	Zwraca parametry trendu wykładniczego.
    +LOGINV			= ROZKŁAD.LOG.ODW		##	Zwraca odwrotność rozkładu logarytmu naturalnego.
    +LOGNORMDIST		= ROZKŁAD.LOG			##	Zwraca skumulowany rozkład logarytmu naturalnego.
    +MAX			= MAX				##	Zwraca maksymalną wartość listy argumentów.
    +MAXA			= MAX.A				##	Zwraca maksymalną wartość listy argumentów, z uwzględnieniem liczb, tekstów i wartości logicznych.
    +MEDIAN			= MEDIANA			##	Zwraca medianę podanych liczb.
    +MIN			= MIN				##	Zwraca minimalną wartość listy argumentów.
    +MINA			= MIN.A				##	Zwraca najmniejszą wartość listy argumentów, z uwzględnieniem liczb, tekstów i wartości logicznych.
    +MODE			= WYST.NAJCZĘŚCIEJ		##	Zwraca wartość najczęściej występującą w zbiorze danych.
    +NEGBINOMDIST		= ROZKŁAD.DWUM.PRZEC		##	Zwraca ujemny rozkład dwumianowy.
    +NORMDIST		= ROZKŁAD.NORMALNY		##	Zwraca rozkład normalny skumulowany.
    +NORMINV			= ROZKŁAD.NORMALNY.ODW		##	Zwraca odwrotność rozkładu normalnego skumulowanego.
    +NORMSDIST		= ROZKŁAD.NORMALNY.S		##	Zwraca standardowy rozkład normalny skumulowany.
    +NORMSINV		= ROZKŁAD.NORMALNY.S.ODW	##	Zwraca odwrotność standardowego rozkładu normalnego skumulowanego.
    +PEARSON			= PEARSON			##	Zwraca współczynnik korelacji momentu iloczynu Pearsona.
    +PERCENTILE		= PERCENTYL			##	Wyznacza k-ty percentyl wartości w zakresie.
    +PERCENTRANK		= PROCENT.POZYCJA		##	Zwraca procentową pozycję wartości w zbiorze danych.
    +PERMUT			= PERMUTACJE			##	Zwraca liczbę permutacji dla danej liczby obiektów.
    +POISSON			= ROZKŁAD.POISSON		##	Zwraca rozkład Poissona.
    +PROB			= PRAWDPD			##	Zwraca prawdopodobieństwo, że wartości w zakresie leżą pomiędzy dwiema granicami.
    +QUARTILE		= KWARTYL			##	Wyznacza kwartyl zbioru danych.
    +RANK			= POZYCJA			##	Zwraca pozycję liczby na liście liczb.
    +RSQ			= R.KWADRAT			##	Zwraca kwadrat współczynnika korelacji momentu iloczynu Pearsona.
    +SKEW			= SKOŚNOŚĆ			##	Zwraca skośność rozkładu.
    +SLOPE			= NACHYLENIE			##	Zwraca nachylenie linii regresji liniowej.
    +SMALL			= MIN.K				##	Zwraca k-tą najmniejszą wartość ze zbioru danych.
    +STANDARDIZE		= NORMALIZUJ			##	Zwraca wartość znormalizowaną.
    +STDEV			= ODCH.STANDARDOWE		##	Szacuje odchylenie standardowe na podstawie próbki.
    +STDEVA			= ODCH.STANDARDOWE.A		##	Szacuje odchylenie standardowe na podstawie próbki, z uwzględnieniem liczb, tekstów i wartości logicznych.
    +STDEVP			= ODCH.STANDARD.POPUL		##	Oblicza odchylenie standardowe na podstawie całej populacji.
    +STDEVPA			= ODCH.STANDARD.POPUL.A		##	Oblicza odchylenie standardowe na podstawie całej populacji, z uwzględnieniem liczb, teksów i wartości logicznych.
    +STEYX			= REGBŁSTD			##	Zwraca błąd standardowy przewidzianej wartości y dla każdej wartości x w regresji.
    +TDIST			= ROZKŁAD.T			##	Zwraca rozkład t-Studenta.
    +TINV			= ROZKŁAD.T.ODW			##	Zwraca odwrotność rozkładu t-Studenta.
    +TREND			= REGLINW			##	Zwraca wartości trendu liniowego.
    +TRIMMEAN		= ŚREDNIA.WEWN			##	Zwraca średnią wartość dla wnętrza zbioru danych.
    +TTEST			= TEST.T			##	Zwraca prawdopodobieństwo związane z testem t-Studenta.
    +VAR			= WARIANCJA			##	Szacuje wariancję na podstawie próbki.
    +VARA			= WARIANCJA.A			##	Szacuje wariancję na podstawie próbki, z uwzględnieniem liczb, tekstów i wartości logicznych.
    +VARP			= WARIANCJA.POPUL		##	Oblicza wariancję na podstawie całej populacji.
    +VARPA			= WARIANCJA.POPUL.A		##	Oblicza wariancję na podstawie całej populacji, z uwzględnieniem liczb, tekstów i wartości logicznych.
    +WEIBULL			= ROZKŁAD.WEIBULL		##	Zwraca rozkład Weibulla.
    +ZTEST			= TEST.Z			##	Zwraca wartość jednostronnego prawdopodobieństwa testu z.
    +
    +
    +##
    +##	Text functions					Funkcje tekstowe
    +##
    +ASC			= ASC				##	Zamienia litery angielskie lub katakana o pełnej szerokości (dwubajtowe) w ciągu znaków na znaki o szerokości połówkowej (jednobajtowe).
    +BAHTTEXT		= BAHTTEXT			##	Konwertuje liczbę na tekst, stosując format walutowy ß (baht).
    +CHAR			= ZNAK				##	Zwraca znak o podanym numerze kodu.
    +CLEAN			= OCZYŚĆ			##	Usuwa z tekstu wszystkie znaki, które nie mogą być drukowane.
    +CODE			= KOD				##	Zwraca kod numeryczny pierwszego znaku w ciągu tekstowym.
    +CONCATENATE		= ZŁĄCZ.TEKSTY			##	Łączy kilka oddzielnych tekstów w jeden tekst.
    +DOLLAR			= KWOTA				##	Konwertuje liczbę na tekst, stosując format walutowy $ (dolar).
    +EXACT			= PORÓWNAJ			##	Sprawdza identyczność dwóch wartości tekstowych.
    +FIND			= ZNAJDŹ			##	Znajduje jedną wartość tekstową wewnątrz innej (z uwzględnieniem wielkich i małych liter).
    +FINDB			= ZNAJDŹB			##	Znajduje jedną wartość tekstową wewnątrz innej (z uwzględnieniem wielkich i małych liter).
    +FIXED			= ZAOKR.DO.TEKST		##	Formatuje liczbę jako tekst przy stałej liczbie miejsc dziesiętnych.
    +JIS			= JIS				##	Zmienia litery angielskie lub katakana o szerokości połówkowej (jednobajtowe) w ciągu znaków na znaki o pełnej szerokości (dwubajtowe).
    +LEFT			= LEWY				##	Zwraca skrajne lewe znaki z wartości tekstowej.
    +LEFTB			= LEWYB				##	Zwraca skrajne lewe znaki z wartości tekstowej.
    +LEN			= DŁ				##	Zwraca liczbę znaków ciągu tekstowego.
    +LENB			= DŁ.B				##	Zwraca liczbę znaków ciągu tekstowego.
    +LOWER			= LITERY.MAŁE			##	Konwertuje wielkie litery tekstu na małe litery.
    +MID			= FRAGMENT.TEKSTU		##	Zwraca określoną liczbę znaków z ciągu tekstowego, zaczynając od zadanej pozycji.
    +MIDB			= FRAGMENT.TEKSTU.B		##	Zwraca określoną liczbę znaków z ciągu tekstowego, zaczynając od zadanej pozycji.
    +PHONETIC		= PHONETIC			##	Wybiera znaki fonetyczne (furigana) z ciągu tekstowego.
    +PROPER			= Z.WIELKIEJ.LITERY		##	Zastępuje pierwszą literę każdego wyrazu tekstu wielką literą.
    +REPLACE			= ZASTĄP			##	Zastępuje znaki w tekście.
    +REPLACEB		= ZASTĄP.B			##	Zastępuje znaki w tekście.
    +REPT			= POWT				##	Powiela tekst daną liczbę razy.
    +RIGHT			= PRAWY				##	Zwraca skrajne prawe znaki z wartości tekstowej.
    +RIGHTB			= PRAWYB			##	Zwraca skrajne prawe znaki z wartości tekstowej.
    +SEARCH			= SZUKAJ.TEKST			##	Wyszukuje jedną wartość tekstową wewnątrz innej (bez uwzględniania wielkości liter).
    +SEARCHB			= SZUKAJ.TEKST.B		##	Wyszukuje jedną wartość tekstową wewnątrz innej (bez uwzględniania wielkości liter).
    +SUBSTITUTE		= PODSTAW			##	Podstawia nowy tekst w miejsce poprzedniego tekstu w ciągu tekstowym.
    +T			= T				##	Konwertuje argumenty na tekst.
    +TEXT			= TEKST				##	Formatuje liczbę i konwertuje ją na tekst.
    +TRIM			= USUŃ.ZBĘDNE.ODSTĘPY		##	Usuwa spacje z tekstu.
    +UPPER			= LITERY.WIELKIE		##	Konwertuje znaki tekstu na wielkie litery.
    +VALUE			= WARTOŚĆ			##	Konwertuje argument tekstowy na liczbę.
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/br/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/br/config
    new file mode 100644
    index 00000000000..904f99f1a07
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/br/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= R$
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #NULO!
    +DIV0	= #DIV/0!
    +VALUE	= #VALOR!
    +REF	= #REF!
    +NAME	= #NOME?
    +NUM	= #NÚM!
    +NA	= #N/D
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/br/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/br/functions
    new file mode 100644
    index 00000000000..a062a7fad51
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/br/functions
    @@ -0,0 +1,408 @@
    +##
    +##	Add-in and Automation functions			Funções Suplemento e Automação
    +##
    +GETPIVOTDATA		= INFODADOSTABELADINÂMICA	##	Retorna os dados armazenados em um relatório de tabela dinâmica
    +
    +
    +##
    +##	Cube functions					Funções de Cubo
    +##
    +CUBEKPIMEMBER		= MEMBROKPICUBO			##	Retorna o nome de um KPI (indicador de desempenho-chave), uma propriedade e uma medida e exibe o nome e a propriedade na célula. Um KPI é uma medida quantificável, como o lucro bruto mensal ou a rotatividade trimestral dos funcionários, usada para monitorar o desempenho de uma organização.
    +CUBEMEMBER		= MEMBROCUBO			##	Retorna um membro ou tupla em uma hierarquia de cubo. Use para validar se o membro ou tupla existe no cubo.
    +CUBEMEMBERPROPERTY	= PROPRIEDADEMEMBROCUBO		##	Retorna o valor da propriedade de um membro no cubo. Usada para validar a existência do nome do membro no cubo e para retornar a propriedade especificada para esse membro.
    +CUBERANKEDMEMBER	= MEMBROCLASSIFICADOCUBO	##	Retorna o enésimo membro, ou o membro ordenado, em um conjunto. Use para retornar um ou mais elementos em um conjunto, assim como o melhor vendedor ou os dez melhores alunos.
    +CUBESET			= CONJUNTOCUBO			##	Define um conjunto calculado de membros ou tuplas enviando uma expressão do conjunto para o cubo no servidor, que cria o conjunto e o retorna para o Microsoft Office Excel.
    +CUBESETCOUNT		= CONTAGEMCONJUNTOCUBO		##	Retorna o número de itens em um conjunto.
    +CUBEVALUE		= VALORCUBO			##	Retorna um valor agregado de um cubo.
    +
    +
    +##
    +##	Database functions				Funções de banco de dados
    +##
    +DAVERAGE		= BDMÉDIA			##	Retorna a média das entradas selecionadas de um banco de dados
    +DCOUNT			= BDCONTAR			##	Conta as células que contêm números em um banco de dados
    +DCOUNTA			= BDCONTARA			##	Conta células não vazias em um banco de dados
    +DGET			= BDEXTRAIR			##	Extrai de um banco de dados um único registro que corresponde a um critério específico
    +DMAX			= BDMÁX				##	Retorna o valor máximo de entradas selecionadas de um banco de dados
    +DMIN			= BDMÍN				##	Retorna o valor mínimo de entradas selecionadas de um banco de dados
    +DPRODUCT		= BDMULTIPL			##	Multiplica os valores em um campo específico de registros que correspondem ao critério em um banco de dados
    +DSTDEV			= BDEST				##	Estima o desvio padrão com base em uma amostra de entradas selecionadas de um banco de dados
    +DSTDEVP			= BDDESVPA			##	Calcula o desvio padrão com base na população inteira de entradas selecionadas de um banco de dados
    +DSUM			= BDSOMA			##	Adiciona os números à coluna de campos de registros do banco de dados que correspondem ao critério
    +DVAR			= BDVAREST			##	Estima a variância com base em uma amostra de entradas selecionadas de um banco de dados
    +DVARP			= BDVARP			##	Calcula a variância com base na população inteira de entradas selecionadas de um banco de dados
    +
    +
    +##
    +##	Date and time functions				Funções de data e hora
    +##
    +DATE			= DATA				##	Retorna o número de série de uma data específica
    +DATEVALUE		= DATA.VALOR			##	Converte uma data na forma de texto para um número de série
    +DAY			= DIA				##	Converte um número de série em um dia do mês
    +DAYS360			= DIAS360			##	Calcula o número de dias entre duas datas com base em um ano de 360 dias
    +EDATE			= DATAM				##	Retorna o número de série da data que é o número indicado de meses antes ou depois da data inicial
    +EOMONTH			= FIMMÊS			##	Retorna o número de série do último dia do mês antes ou depois de um número especificado de meses
    +HOUR			= HORA				##	Converte um número de série em uma hora
    +MINUTE			= MINUTO			##	Converte um número de série em um minuto
    +MONTH			= MÊS				##	Converte um número de série em um mês
    +NETWORKDAYS		= DIATRABALHOTOTAL		##	Retorna o número de dias úteis inteiros entre duas datas
    +NOW			= AGORA				##	Retorna o número de série seqüencial da data e hora atuais
    +SECOND			= SEGUNDO			##	Converte um número de série em um segundo
    +TIME			= HORA				##	Retorna o número de série de uma hora específica
    +TIMEVALUE		= VALOR.TEMPO			##	Converte um horário na forma de texto para um número de série
    +TODAY			= HOJE				##	Retorna o número de série da data de hoje
    +WEEKDAY			= DIA.DA.SEMANA			##	Converte um número de série em um dia da semana
    +WEEKNUM			= NÚMSEMANA			##	Converte um número de série em um número que representa onde a semana cai numericamente em um ano
    +WORKDAY			= DIATRABALHO			##	Retorna o número de série da data antes ou depois de um número específico de dias úteis
    +YEAR			= ANO				##	Converte um número de série em um ano
    +YEARFRAC		= FRAÇÃOANO			##	Retorna a fração do ano que representa o número de dias entre data_inicial e data_final
    +
    +
    +##
    +##	Engineering functions				Funções de engenharia
    +##
    +BESSELI			= BESSELI			##	Retorna a função de Bessel In(x) modificada
    +BESSELJ			= BESSELJ			##	Retorna a função de Bessel Jn(x)
    +BESSELK			= BESSELK			##	Retorna a função de Bessel Kn(x) modificada
    +BESSELY			= BESSELY			##	Retorna a função de Bessel Yn(x)
    +BIN2DEC			= BIN2DEC			##	Converte um número binário em decimal
    +BIN2HEX			= BIN2HEX			##	Converte um número binário em hexadecimal
    +BIN2OCT			= BIN2OCT			##	Converte um número binário em octal
    +COMPLEX			= COMPLEX			##	Converte coeficientes reais e imaginários e um número complexo
    +CONVERT			= CONVERTER			##	Converte um número de um sistema de medida para outro
    +DEC2BIN			= DECABIN			##	Converte um número decimal em binário
    +DEC2HEX			= DECAHEX			##	Converte um número decimal em hexadecimal
    +DEC2OCT			= DECAOCT			##	Converte um número decimal em octal
    +DELTA			= DELTA				##	Testa se dois valores são iguais
    +ERF			= FUNERRO			##	Retorna a função de erro
    +ERFC			= FUNERROCOMPL			##	Retorna a função de erro complementar
    +GESTEP			= DEGRAU			##	Testa se um número é maior do que um valor limite
    +HEX2BIN			= HEXABIN			##	Converte um número hexadecimal em binário
    +HEX2DEC			= HEXADEC			##	Converte um número hexadecimal em decimal
    +HEX2OCT			= HEXAOCT			##	Converte um número hexadecimal em octal
    +IMABS			= IMABS				##	Retorna o valor absoluto (módulo) de um número complexo
    +IMAGINARY		= IMAGINÁRIO			##	Retorna o coeficiente imaginário de um número complexo
    +IMARGUMENT		= IMARG				##	Retorna o argumento teta, um ângulo expresso em radianos
    +IMCONJUGATE		= IMCONJ			##	Retorna o conjugado complexo de um número complexo
    +IMCOS			= IMCOS				##	Retorna o cosseno de um número complexo
    +IMDIV			= IMDIV				##	Retorna o quociente de dois números complexos
    +IMEXP			= IMEXP				##	Retorna o exponencial de um número complexo
    +IMLN			= IMLN				##	Retorna o logaritmo natural de um número complexo
    +IMLOG10			= IMLOG10			##	Retorna o logaritmo de base 10 de um número complexo
    +IMLOG2			= IMLOG2			##	Retorna o logaritmo de base 2 de um número complexo
    +IMPOWER			= IMPOT				##	Retorna um número complexo elevado a uma potência inteira
    +IMPRODUCT		= IMPROD			##	Retorna o produto de números complexos
    +IMREAL			= IMREAL			##	Retorna o coeficiente real de um número complexo
    +IMSIN			= IMSENO			##	Retorna o seno de um número complexo
    +IMSQRT			= IMRAIZ			##	Retorna a raiz quadrada de um número complexo
    +IMSUB			= IMSUBTR			##	Retorna a diferença entre dois números complexos
    +IMSUM			= IMSOMA			##	Retorna a soma de números complexos
    +OCT2BIN			= OCTABIN			##	Converte um número octal em binário
    +OCT2DEC			= OCTADEC			##	Converte um número octal em decimal
    +OCT2HEX			= OCTAHEX			##	Converte um número octal em hexadecimal
    +
    +
    +##
    +##	Financial functions				Funções financeiras
    +##
    +ACCRINT			= JUROSACUM			##	Retorna a taxa de juros acumulados de um título que paga uma taxa periódica de juros
    +ACCRINTM		= JUROSACUMV			##	Retorna os juros acumulados de um título que paga juros no vencimento
    +AMORDEGRC		= AMORDEGRC			##	Retorna a depreciação para cada período contábil usando o coeficiente de depreciação
    +AMORLINC		= AMORLINC			##	Retorna a depreciação para cada período contábil
    +COUPDAYBS		= CUPDIASINLIQ			##	Retorna o número de dias do início do período de cupom até a data de liquidação
    +COUPDAYS		= CUPDIAS			##	Retorna o número de dias no período de cupom que contém a data de quitação
    +COUPDAYSNC		= CUPDIASPRÓX			##	Retorna o número de dias da data de liquidação até a data do próximo cupom
    +COUPNCD			= CUPDATAPRÓX			##	Retorna a próxima data de cupom após a data de quitação
    +COUPNUM			= CUPNÚM			##	Retorna o número de cupons pagáveis entre as datas de quitação e vencimento
    +COUPPCD			= CUPDATAANT			##	Retorna a data de cupom anterior à data de quitação
    +CUMIPMT			= PGTOJURACUM			##	Retorna os juros acumulados pagos entre dois períodos
    +CUMPRINC		= PGTOCAPACUM			##	Retorna o capital acumulado pago sobre um empréstimo entre dois períodos
    +DB			= BD				##	Retorna a depreciação de um ativo para um período especificado, usando o método de balanço de declínio fixo
    +DDB			= BDD				##	Retorna a depreciação de um ativo com relação a um período especificado usando o método de saldos decrescentes duplos ou qualquer outro método especificado por você
    +DISC			= DESC				##	Retorna a taxa de desconto de um título
    +DOLLARDE		= MOEDADEC			##	Converte um preço em formato de moeda, na forma fracionária, em um preço na forma decimal
    +DOLLARFR		= MOEDAFRA			##	Converte um preço, apresentado na forma decimal, em um preço apresentado na forma fracionária
    +DURATION		= DURAÇÃO			##	Retorna a duração anual de um título com pagamentos de juros periódicos
    +EFFECT			= EFETIVA			##	Retorna a taxa de juros anual efetiva
    +FV			= VF				##	Retorna o valor futuro de um investimento
    +FVSCHEDULE		= VFPLANO			##	Retorna o valor futuro de um capital inicial após a aplicação de uma série de taxas de juros compostas
    +INTRATE			= TAXAJUROS			##	Retorna a taxa de juros de um título totalmente investido
    +IPMT			= IPGTO				##	Retorna o pagamento de juros para um investimento em um determinado período
    +IRR			= TIR				##	Retorna a taxa interna de retorno de uma série de fluxos de caixa
    +ISPMT			= ÉPGTO				##	Calcula os juros pagos durante um período específico de um investimento
    +MDURATION		= MDURAÇÃO			##	Retorna a duração de Macauley modificada para um título com um valor de paridade equivalente a R$ 100
    +MIRR			= MTIR				##	Calcula a taxa interna de retorno em que fluxos de caixa positivos e negativos são financiados com diferentes taxas
    +NOMINAL			= NOMINAL			##	Retorna a taxa de juros nominal anual
    +NPER			= NPER				##	Retorna o número de períodos de um investimento
    +NPV			= VPL				##	Retorna o valor líquido atual de um investimento com base em uma série de fluxos de caixa periódicos e em uma taxa de desconto
    +ODDFPRICE		= PREÇOPRIMINC			##	Retorna o preço por R$ 100 de valor nominal de um título com um primeiro período indefinido
    +ODDFYIELD		= LUCROPRIMINC			##	Retorna o rendimento de um título com um primeiro período indefinido
    +ODDLPRICE		= PREÇOÚLTINC			##	Retorna o preço por R$ 100 de valor nominal de um título com um último período de cupom indefinido
    +ODDLYIELD		= LUCROÚLTINC			##	Retorna o rendimento de um título com um último período indefinido
    +PMT			= PGTO				##	Retorna o pagamento periódico de uma anuidade
    +PPMT			= PPGTO				##	Retorna o pagamento de capital para determinado período de investimento
    +PRICE			= PREÇO				##	Retorna a preço por R$ 100,00 de valor nominal de um título que paga juros periódicos
    +PRICEDISC		= PREÇODESC			##	Retorna o preço por R$ 100,00 de valor nominal de um título descontado
    +PRICEMAT		= PREÇOVENC			##	Retorna o preço por R$ 100,00 de valor nominal de um título que paga juros no vencimento
    +PV			= VP				##	Retorna o valor presente de um investimento
    +RATE			= TAXA				##	Retorna a taxa de juros por período de uma anuidade
    +RECEIVED		= RECEBER			##	Retorna a quantia recebida no vencimento de um título totalmente investido
    +SLN			= DPD				##	Retorna a depreciação em linha reta de um ativo durante um período
    +SYD			= SDA				##	Retorna a depreciação dos dígitos da soma dos anos de um ativo para um período especificado
    +TBILLEQ			= OTN				##	Retorna o rendimento de um título equivalente a uma obrigação do Tesouro
    +TBILLPRICE		= OTNVALOR			##	Retorna o preço por R$ 100,00 de valor nominal de uma obrigação do Tesouro
    +TBILLYIELD		= OTNLUCRO			##	Retorna o rendimento de uma obrigação do Tesouro
    +VDB			= BDV				##	Retorna a depreciação de um ativo para um período especificado ou parcial usando um método de balanço declinante
    +XIRR			= XTIR				##	Fornece a taxa interna de retorno para um programa de fluxos de caixa que não é necessariamente periódico
    +XNPV			= XVPL				##	Retorna o valor presente líquido de um programa de fluxos de caixa que não é necessariamente periódico
    +YIELD			= LUCRO				##	Retorna o lucro de um título que paga juros periódicos
    +YIELDDISC		= LUCRODESC			##	Retorna o rendimento anual de um título descontado. Por exemplo, uma obrigação do Tesouro
    +YIELDMAT		= LUCROVENC			##	Retorna o lucro anual de um título que paga juros no vencimento
    +
    +
    +##
    +##	Information functions				Funções de informação
    +##
    +CELL			= CÉL				##	Retorna informações sobre formatação, localização ou conteúdo de uma célula
    +ERROR.TYPE		= TIPO.ERRO			##	Retorna um número correspondente a um tipo de erro
    +INFO			= INFORMAÇÃO			##	Retorna informações sobre o ambiente operacional atual
    +ISBLANK			= ÉCÉL.VAZIA			##	Retorna VERDADEIRO se o valor for vazio
    +ISERR			= ÉERRO				##	Retorna VERDADEIRO se o valor for um valor de erro diferente de #N/D
    +ISERROR			= ÉERROS			##	Retorna VERDADEIRO se o valor for um valor de erro
    +ISEVEN			= ÉPAR				##	Retorna VERDADEIRO se o número for par
    +ISLOGICAL		= ÉLÓGICO			##	Retorna VERDADEIRO se o valor for um valor lógico
    +ISNA			= É.NÃO.DISP			##	Retorna VERDADEIRO se o valor for o valor de erro #N/D
    +ISNONTEXT		= É.NÃO.TEXTO			##	Retorna VERDADEIRO se o valor for diferente de texto
    +ISNUMBER		= ÉNÚM				##	Retorna VERDADEIRO se o valor for um número
    +ISODD			= ÉIMPAR			##	Retorna VERDADEIRO se o número for ímpar
    +ISREF			= ÉREF				##	Retorna VERDADEIRO se o valor for uma referência
    +ISTEXT			= ÉTEXTO			##	Retorna VERDADEIRO se o valor for texto
    +N			= N				##	Retorna um valor convertido em um número
    +NA			= NÃO.DISP			##	Retorna o valor de erro #N/D
    +TYPE			= TIPO				##	Retorna um número indicando o tipo de dados de um valor
    +
    +
    +##
    +##	Logical functions				Funções lógicas
    +##
    +AND			= E				##	Retorna VERDADEIRO se todos os seus argumentos forem VERDADEIROS
    +FALSE			= FALSO				##	Retorna o valor lógico FALSO
    +IF			= SE				##	Especifica um teste lógico a ser executado
    +IFERROR			= SEERRO			##	Retornará um valor que você especifica se uma fórmula for avaliada para um erro; do contrário, retornará o resultado da fórmula
    +NOT			= NÃO				##	Inverte o valor lógico do argumento
    +OR			= OU				##	Retorna VERDADEIRO se um dos argumentos for VERDADEIRO
    +TRUE			= VERDADEIRO			##	Retorna o valor lógico VERDADEIRO
    +
    +
    +##
    +##	Lookup and reference functions			Funções de pesquisa e referência
    +##
    +ADDRESS			= ENDEREÇO			##	Retorna uma referência como texto para uma única célula em uma planilha
    +AREAS			= ÁREAS				##	Retorna o número de áreas em uma referência
    +CHOOSE			= ESCOLHER			##	Escolhe um valor a partir de uma lista de valores
    +COLUMN			= COL				##	Retorna o número da coluna de uma referência
    +COLUMNS			= COLS				##	Retorna o número de colunas em uma referência
    +HLOOKUP			= PROCH				##	Procura na linha superior de uma matriz e retorna o valor da célula especificada
    +HYPERLINK		= HYPERLINK			##	Cria um atalho ou salto que abre um documento armazenado em um servidor de rede, uma intranet ou na Internet
    +INDEX			= ÍNDICE			##	Usa um índice para escolher um valor de uma referência ou matriz
    +INDIRECT		= INDIRETO			##	Retorna uma referência indicada por um valor de texto
    +LOOKUP			= PROC				##	Procura valores em um vetor ou em uma matriz
    +MATCH			= CORRESP			##	Procura valores em uma referência ou em uma matriz
    +OFFSET			= DESLOC			##	Retorna um deslocamento de referência com base em uma determinada referência
    +ROW			= LIN				##	Retorna o número da linha de uma referência
    +ROWS			= LINS				##	Retorna o número de linhas em uma referência
    +RTD			= RTD				##	Recupera dados em tempo real de um programa que ofereça suporte a automação COM (automação: uma forma de trabalhar com objetos de um aplicativo a partir de outro aplicativo ou ferramenta de desenvolvimento. Chamada inicialmente de automação OLE, a automação é um padrão industrial e um recurso do modelo de objeto componente (COM).)
    +TRANSPOSE		= TRANSPOR			##	Retorna a transposição de uma matriz
    +VLOOKUP			= PROCV				##	Procura na primeira coluna de uma matriz e move ao longo da linha para retornar o valor de uma célula
    +
    +
    +##
    +##	Math and trigonometry functions			Funções matemáticas e trigonométricas
    +##
    +ABS			= ABS				##	Retorna o valor absoluto de um número
    +ACOS			= ACOS				##	Retorna o arco cosseno de um número
    +ACOSH			= ACOSH				##	Retorna o cosseno hiperbólico inverso de um número
    +ASIN			= ASEN				##	Retorna o arco seno de um número
    +ASINH			= ASENH				##	Retorna o seno hiperbólico inverso de um número
    +ATAN			= ATAN				##	Retorna o arco tangente de um número
    +ATAN2			= ATAN2				##	Retorna o arco tangente das coordenadas x e y especificadas
    +ATANH			= ATANH				##	Retorna a tangente hiperbólica inversa de um número
    +CEILING			= TETO				##	Arredonda um número para o inteiro mais próximo ou para o múltiplo mais próximo de significância
    +COMBIN			= COMBIN			##	Retorna o número de combinações de um determinado número de objetos
    +COS			= COS				##	Retorna o cosseno de um número
    +COSH			= COSH				##	Retorna o cosseno hiperbólico de um número
    +DEGREES			= GRAUS				##	Converte radianos em graus
    +EVEN			= PAR				##	Arredonda um número para cima até o inteiro par mais próximo
    +EXP			= EXP				##	Retorna e elevado à potência de um número especificado
    +FACT			= FATORIAL			##	Retorna o fatorial de um número
    +FACTDOUBLE		= FATDUPLO			##	Retorna o fatorial duplo de um número
    +FLOOR			= ARREDMULTB			##	Arredonda um número para baixo até zero
    +GCD			= MDC				##	Retorna o máximo divisor comum
    +INT			= INT				##	Arredonda um número para baixo até o número inteiro mais próximo
    +LCM			= MMC				##	Retorna o mínimo múltiplo comum
    +LN			= LN				##	Retorna o logaritmo natural de um número
    +LOG			= LOG				##	Retorna o logaritmo de um número de uma base especificada
    +LOG10			= LOG10				##	Retorna o logaritmo de base 10 de um número
    +MDETERM			= MATRIZ.DETERM			##	Retorna o determinante de uma matriz de uma variável do tipo matriz
    +MINVERSE		= MATRIZ.INVERSO		##	Retorna a matriz inversa de uma matriz
    +MMULT			= MATRIZ.MULT			##	Retorna o produto de duas matrizes
    +MOD			= RESTO				##	Retorna o resto da divisão
    +MROUND			= MARRED			##	Retorna um número arredondado ao múltiplo desejado
    +MULTINOMIAL		= MULTINOMIAL			##	Retorna o multinomial de um conjunto de números
    +ODD			= ÍMPAR				##	Arredonda um número para cima até o inteiro ímpar mais próximo
    +PI			= PI				##	Retorna o valor de Pi
    +POWER			= POTÊNCIA			##	Fornece o resultado de um número elevado a uma potência
    +PRODUCT			= MULT				##	Multiplica seus argumentos
    +QUOTIENT		= QUOCIENTE			##	Retorna a parte inteira de uma divisão
    +RADIANS			= RADIANOS			##	Converte graus em radianos
    +RAND			= ALEATÓRIO			##	Retorna um número aleatório entre 0 e 1
    +RANDBETWEEN		= ALEATÓRIOENTRE		##	Retorna um número aleatório entre os números especificados
    +ROMAN			= ROMANO			##	Converte um algarismo arábico em romano, como texto
    +ROUND			= ARRED				##	Arredonda um número até uma quantidade especificada de dígitos
    +ROUNDDOWN		= ARREDONDAR.PARA.BAIXO		##	Arredonda um número para baixo até zero
    +ROUNDUP			= ARREDONDAR.PARA.CIMA		##	Arredonda um número para cima, afastando-o de zero
    +SERIESSUM		= SOMASEQÜÊNCIA			##	Retorna a soma de uma série polinomial baseada na fórmula
    +SIGN			= SINAL				##	Retorna o sinal de um número
    +SIN			= SEN				##	Retorna o seno de um ângulo dado
    +SINH			= SENH				##	Retorna o seno hiperbólico de um número
    +SQRT			= RAIZ				##	Retorna uma raiz quadrada positiva
    +SQRTPI			= RAIZPI			##	Retorna a raiz quadrada de (núm* pi)
    +SUBTOTAL		= SUBTOTAL			##	Retorna um subtotal em uma lista ou em um banco de dados
    +SUM			= SOMA				##	Soma seus argumentos
    +SUMIF			= SOMASE			##	Adiciona as células especificadas por um determinado critério
    +SUMIFS			= SOMASE			##	Adiciona as células em um intervalo que atende a vários critérios
    +SUMPRODUCT		= SOMARPRODUTO			##	Retorna a soma dos produtos de componentes correspondentes de matrizes
    +SUMSQ			= SOMAQUAD			##	Retorna a soma dos quadrados dos argumentos
    +SUMX2MY2		= SOMAX2DY2			##	Retorna a soma da diferença dos quadrados dos valores correspondentes em duas matrizes
    +SUMX2PY2		= SOMAX2SY2			##	Retorna a soma da soma dos quadrados dos valores correspondentes em duas matrizes
    +SUMXMY2			= SOMAXMY2			##	Retorna a soma dos quadrados das diferenças dos valores correspondentes em duas matrizes
    +TAN			= TAN				##	Retorna a tangente de um número
    +TANH			= TANH				##	Retorna a tangente hiperbólica de um número
    +TRUNC			= TRUNCAR			##	Trunca um número para um inteiro
    +
    +
    +##
    +##	Statistical functions				Funções estatísticas
    +##
    +AVEDEV			= DESV.MÉDIO			##	Retorna a média aritmética dos desvios médios dos pontos de dados a partir de sua média
    +AVERAGE			= MÉDIA				##	Retorna a média dos argumentos
    +AVERAGEA		= MÉDIAA			##	Retorna a média dos argumentos, inclusive números, texto e valores lógicos
    +AVERAGEIF		= MÉDIASE			##	Retorna a média (média aritmética) de todas as células em um intervalo que atendem a um determinado critério
    +AVERAGEIFS		= MÉDIASES			##	Retorna a média (média aritmética) de todas as células que atendem a múltiplos critérios.
    +BETADIST		= DISTBETA			##	Retorna a função de distribuição cumulativa beta
    +BETAINV			= BETA.ACUM.INV			##	Retorna o inverso da função de distribuição cumulativa para uma distribuição beta especificada
    +BINOMDIST		= DISTRBINOM			##	Retorna a probabilidade de distribuição binomial do termo individual
    +CHIDIST			= DIST.QUI			##	Retorna a probabilidade unicaudal da distribuição qui-quadrada
    +CHIINV			= INV.QUI			##	Retorna o inverso da probabilidade uni-caudal da distribuição qui-quadrada
    +CHITEST			= TESTE.QUI			##	Retorna o teste para independência
    +CONFIDENCE		= INT.CONFIANÇA			##	Retorna o intervalo de confiança para uma média da população
    +CORREL			= CORREL			##	Retorna o coeficiente de correlação entre dois conjuntos de dados
    +COUNT			= CONT.NÚM			##	Calcula quantos números há na lista de argumentos
    +COUNTA			= CONT.VALORES			##	Calcula quantos valores há na lista de argumentos
    +COUNTBLANK		= CONTAR.VAZIO			##	Conta o número de células vazias no intervalo especificado
    +COUNTIF			= CONT.SE			##	Calcula o número de células não vazias em um intervalo que corresponde a determinados critérios
    +COUNTIFS		= CONT.SES			##	Conta o número de células dentro de um intervalo que atende a múltiplos critérios
    +COVAR			= COVAR				##	Retorna a covariância, a média dos produtos dos desvios pares
    +CRITBINOM		= CRIT.BINOM			##	Retorna o menor valor para o qual a distribuição binomial cumulativa é menor ou igual ao valor padrão
    +DEVSQ			= DESVQ				##	Retorna a soma dos quadrados dos desvios
    +EXPONDIST		= DISTEXPON			##	Retorna a distribuição exponencial
    +FDIST			= DISTF				##	Retorna a distribuição de probabilidade F
    +FINV			= INVF				##	Retorna o inverso da distribuição de probabilidades F
    +FISHER			= FISHER			##	Retorna a transformação Fisher
    +FISHERINV		= FISHERINV			##	Retorna o inverso da transformação Fisher
    +FORECAST		= PREVISÃO			##	Retorna um valor ao longo de uma linha reta
    +FREQUENCY		= FREQÜÊNCIA			##	Retorna uma distribuição de freqüência como uma matriz vertical
    +FTEST			= TESTEF			##	Retorna o resultado de um teste F
    +GAMMADIST		= DISTGAMA			##	Retorna a distribuição gama
    +GAMMAINV		= INVGAMA			##	Retorna o inverso da distribuição cumulativa gama
    +GAMMALN			= LNGAMA			##	Retorna o logaritmo natural da função gama, G(x)
    +GEOMEAN			= MÉDIA.GEOMÉTRICA		##	Retorna a média geométrica
    +GROWTH			= CRESCIMENTO			##	Retorna valores ao longo de uma tendência exponencial
    +HARMEAN			= MÉDIA.HARMÔNICA		##	Retorna a média harmônica
    +HYPGEOMDIST		= DIST.HIPERGEOM		##	Retorna a distribuição hipergeométrica
    +INTERCEPT		= INTERCEPÇÃO			##	Retorna a intercepção da linha de regressão linear
    +KURT			= CURT				##	Retorna a curtose de um conjunto de dados
    +LARGE			= MAIOR				##	Retorna o maior valor k-ésimo de um conjunto de dados
    +LINEST			= PROJ.LIN			##	Retorna os parâmetros de uma tendência linear
    +LOGEST			= PROJ.LOG			##	Retorna os parâmetros de uma tendência exponencial
    +LOGINV			= INVLOG			##	Retorna o inverso da distribuição lognormal
    +LOGNORMDIST		= DIST.LOGNORMAL		##	Retorna a distribuição lognormal cumulativa
    +MAX			= MÁXIMO			##	Retorna o valor máximo em uma lista de argumentos
    +MAXA			= MÁXIMOA			##	Retorna o maior valor em uma lista de argumentos, inclusive números, texto e valores lógicos
    +MEDIAN			= MED				##	Retorna a mediana dos números indicados
    +MIN			= MÍNIMO			##	Retorna o valor mínimo em uma lista de argumentos
    +MINA			= MÍNIMOA			##	Retorna o menor valor em uma lista de argumentos, inclusive números, texto e valores lógicos
    +MODE			= MODO				##	Retorna o valor mais comum em um conjunto de dados
    +NEGBINOMDIST		= DIST.BIN.NEG			##	Retorna a distribuição binomial negativa
    +NORMDIST		= DIST.NORM			##	Retorna a distribuição cumulativa normal
    +NORMINV			= INV.NORM			##	Retorna o inverso da distribuição cumulativa normal
    +NORMSDIST		= DIST.NORMP			##	Retorna a distribuição cumulativa normal padrão
    +NORMSINV		= INV.NORMP			##	Retorna o inverso da distribuição cumulativa normal padrão
    +PEARSON			= PEARSON			##	Retorna o coeficiente de correlação do momento do produto Pearson
    +PERCENTILE		= PERCENTIL			##	Retorna o k-ésimo percentil de valores em um intervalo
    +PERCENTRANK		= ORDEM.PORCENTUAL		##	Retorna a ordem percentual de um valor em um conjunto de dados
    +PERMUT			= PERMUT			##	Retorna o número de permutações de um determinado número de objetos
    +POISSON			= POISSON			##	Retorna a distribuição Poisson
    +PROB			= PROB				##	Retorna a probabilidade de valores em um intervalo estarem entre dois limites
    +QUARTILE		= QUARTIL			##	Retorna o quartil do conjunto de dados
    +RANK			= ORDEM				##	Retorna a posição de um número em uma lista de números
    +RSQ			= RQUAD				##	Retorna o quadrado do coeficiente de correlação do momento do produto de Pearson
    +SKEW			= DISTORÇÃO			##	Retorna a distorção de uma distribuição
    +SLOPE			= INCLINAÇÃO			##	Retorna a inclinação da linha de regressão linear
    +SMALL			= MENOR				##	Retorna o menor valor k-ésimo do conjunto de dados
    +STANDARDIZE		= PADRONIZAR			##	Retorna um valor normalizado
    +STDEV			= DESVPAD			##	Estima o desvio padrão com base em uma amostra
    +STDEVA			= DESVPADA			##	Estima o desvio padrão com base em uma amostra, inclusive números, texto e valores lógicos
    +STDEVP			= DESVPADP			##	Calcula o desvio padrão com base na população total
    +STDEVPA			= DESVPADPA			##	Calcula o desvio padrão com base na população total, inclusive números, texto e valores lógicos
    +STEYX			= EPADYX			##	Retorna o erro padrão do valor-y previsto para cada x da regressão
    +TDIST			= DISTT				##	Retorna a distribuição t de Student
    +TINV			= INVT				##	Retorna o inverso da distribuição t de Student
    +TREND			= TENDÊNCIA			##	Retorna valores ao longo de uma tendência linear
    +TRIMMEAN		= MÉDIA.INTERNA			##	Retorna a média do interior de um conjunto de dados
    +TTEST			= TESTET			##	Retorna a probabilidade associada ao teste t de Student
    +VAR			= VAR				##	Estima a variância com base em uma amostra
    +VARA			= VARA				##	Estima a variância com base em uma amostra, inclusive números, texto e valores lógicos
    +VARP			= VARP				##	Calcula a variância com base na população inteira
    +VARPA			= VARPA				##	Calcula a variância com base na população total, inclusive números, texto e valores lógicos
    +WEIBULL			= WEIBULL			##	Retorna a distribuição Weibull
    +ZTEST			= TESTEZ			##	Retorna o valor de probabilidade uni-caudal de um teste-z
    +
    +
    +##
    +##	Text functions			Funções de texto
    +##
    +ASC			= ASC				##	Altera letras do inglês ou katakana de largura total (bytes duplos) dentro de uma seqüência de caracteres para caracteres de meia largura (byte único)
    +BAHTTEXT		= BAHTTEXT			##	Converte um número em um texto, usando o formato de moeda ß (baht)
    +CHAR			= CARACT			##	Retorna o caractere especificado pelo número de código
    +CLEAN			= TIRAR				##	Remove todos os caracteres do texto que não podem ser impressos
    +CODE			= CÓDIGO			##	Retorna um código numérico para o primeiro caractere de uma seqüência de caracteres de texto
    +CONCATENATE		= CONCATENAR			##	Agrupa vários itens de texto em um único item de texto
    +DOLLAR			= MOEDA				##	Converte um número em texto, usando o formato de moeda $ (dólar)
    +EXACT			= EXATO				##	Verifica se dois valores de texto são idênticos
    +FIND			= PROCURAR			##	Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas)
    +FINDB			= PROCURARB			##	Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas)
    +FIXED			= DEF.NÚM.DEC			##	Formata um número como texto com um número fixo de decimais
    +JIS			= JIS				##	Altera letras do inglês ou katakana de meia largura (byte único) dentro de uma seqüência de caracteres para caracteres de largura total (bytes duplos)
    +LEFT			= ESQUERDA			##	Retorna os caracteres mais à esquerda de um valor de texto
    +LEFTB			= ESQUERDAB			##	Retorna os caracteres mais à esquerda de um valor de texto
    +LEN			= NÚM.CARACT			##	Retorna o número de caracteres em uma seqüência de texto
    +LENB			= NÚM.CARACTB			##	Retorna o número de caracteres em uma seqüência de texto
    +LOWER			= MINÚSCULA			##	Converte texto para minúsculas
    +MID			= EXT.TEXTO			##	Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada
    +MIDB			= EXT.TEXTOB			##	Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada
    +PHONETIC		= FONÉTICA			##	Extrai os caracteres fonéticos (furigana) de uma seqüência de caracteres de texto
    +PROPER			= PRI.MAIÚSCULA			##	Coloca a primeira letra de cada palavra em maiúscula em um valor de texto
    +REPLACE			= MUDAR				##	Muda os caracteres dentro do texto
    +REPLACEB		= MUDARB			##	Muda os caracteres dentro do texto
    +REPT			= REPT				##	Repete o texto um determinado número de vezes
    +RIGHT			= DIREITA			##	Retorna os caracteres mais à direita de um valor de texto
    +RIGHTB			= DIREITAB			##	Retorna os caracteres mais à direita de um valor de texto
    +SEARCH			= LOCALIZAR			##	Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas)
    +SEARCHB			= LOCALIZARB			##	Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas)
    +SUBSTITUTE		= SUBSTITUIR			##	Substitui um novo texto por um texto antigo em uma seqüência de texto
    +T			= T				##	Converte os argumentos em texto
    +TEXT			= TEXTO				##	Formata um número e o converte em texto
    +TRIM			= ARRUMAR			##	Remove espaços do texto
    +UPPER			= MAIÚSCULA			##	Converte o texto em maiúsculas
    +VALUE			= VALOR				##	Converte um argumento de texto em um número
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/config
    new file mode 100644
    index 00000000000..cd85c17aae5
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= €
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #NULO!
    +DIV0	= #DIV/0!
    +VALUE	= #VALOR!
    +REF	= #REF!
    +NAME	= #NOME?
    +NUM	= #NÚM!
    +NA	= #N/D
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/functions
    new file mode 100644
    index 00000000000..ba4eb471bad
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/pt/functions
    @@ -0,0 +1,408 @@
    +##
    +##	Add-in and Automation functions			Funções de Suplemento e Automatização
    +##
    +GETPIVOTDATA		= OBTERDADOSDIN			##	Devolve dados armazenados num relatório de Tabela Dinâmica
    +
    +
    +##
    +##	Cube functions					Funções de cubo
    +##
    +CUBEKPIMEMBER		= MEMBROKPICUBO			##	Devolve o nome, propriedade e medição de um KPI (key performance indicator) e apresenta o nome e a propriedade na célula. Um KPI é uma medida quantificável, como, por exemplo, o lucro mensal bruto ou a rotatividade trimestral de pessoal, utilizada para monitorizar o desempenho de uma organização.
    +CUBEMEMBER		= MEMBROCUBO			##	Devolve um membro ou cadeia de identificação numa hierarquia de cubo. Utilizada para validar a existência do membro ou cadeia de identificação no cubo.
    +CUBEMEMBERPROPERTY	= PROPRIEDADEMEMBROCUBO		##	Devolve o valor de uma propriedade de membro no cubo. Utilizada para validar a existência de um nome de membro no cubo e para devolver a propriedade especificada para esse membro.
    +CUBERANKEDMEMBER	= MEMBROCLASSIFICADOCUBO	##	Devolve o enésimo ou a classificação mais alta num conjunto. Utilizada para devolver um ou mais elementos num conjunto, tal como o melhor vendedor ou os 10 melhores alunos.
    +CUBESET			= CONJUNTOCUBO			##	Define um conjunto calculado de membros ou cadeias de identificação enviando uma expressão de conjunto para o cubo no servidor, que cria o conjunto e, em seguida, devolve o conjunto ao Microsoft Office Excel.
    +CUBESETCOUNT		= CONTARCONJUNTOCUBO		##	Devolve o número de itens num conjunto.
    +CUBEVALUE		= VALORCUBO			##	Devolve um valor agregado do cubo.
    +
    +
    +##
    +##	Database functions				Funções de base de dados
    +##
    +DAVERAGE		= BDMÉDIA			##	Devolve a média das entradas da base de dados seleccionadas
    +DCOUNT			= BDCONTAR			##	Conta as células que contêm números numa base de dados
    +DCOUNTA			= BDCONTAR.VAL			##	Conta as células que não estejam em branco numa base de dados
    +DGET			= BDOBTER			##	Extrai de uma base de dados um único registo que corresponde aos critérios especificados
    +DMAX			= BDMÁX				##	Devolve o valor máximo das entradas da base de dados seleccionadas
    +DMIN			= BDMÍN				##	Devolve o valor mínimo das entradas da base de dados seleccionadas
    +DPRODUCT		= BDMULTIPL			##	Multiplica os valores de um determinado campo de registos que correspondem aos critérios numa base de dados
    +DSTDEV			= BDDESVPAD			##	Calcula o desvio-padrão com base numa amostra de entradas da base de dados seleccionadas
    +DSTDEVP			= BDDESVPADP			##	Calcula o desvio-padrão com base na população total das entradas da base de dados seleccionadas
    +DSUM			= BDSOMA			##	Adiciona os números na coluna de campo dos registos de base de dados que correspondem aos critérios
    +DVAR			= BDVAR				##	Calcula a variância com base numa amostra das entradas de base de dados seleccionadas
    +DVARP			= BDVARP			##	Calcula a variância com base na população total das entradas de base de dados seleccionadas
    +
    +
    +##
    +##	Date and time functions				Funções de data e hora
    +##
    +DATE			= DATA				##	Devolve o número de série de uma determinada data
    +DATEVALUE		= DATA.VALOR			##	Converte uma data em forma de texto num número de série
    +DAY			= DIA				##	Converte um número de série num dia do mês
    +DAYS360			= DIAS360			##	Calcula o número de dias entre duas datas com base num ano com 360 dias
    +EDATE			= DATAM				##	Devolve um número de série de data que corresponde ao número de meses indicado antes ou depois da data de início
    +EOMONTH			= FIMMÊS			##	Devolve o número de série do último dia do mês antes ou depois de um número de meses especificado
    +HOUR			= HORA				##	Converte um número de série numa hora
    +MINUTE			= MINUTO			##	Converte um número de série num minuto
    +MONTH			= MÊS				##	Converte um número de série num mês
    +NETWORKDAYS		= DIATRABALHOTOTAL		##	Devolve o número total de dias úteis entre duas datas
    +NOW			= AGORA				##	Devolve o número de série da data e hora actuais
    +SECOND			= SEGUNDO			##	Converte um número de série num segundo
    +TIME			= TEMPO				##	Devolve o número de série de um determinado tempo
    +TIMEVALUE		= VALOR.TEMPO			##	Converte um tempo em forma de texto num número de série
    +TODAY			= HOJE				##	Devolve o número de série da data actual
    +WEEKDAY			= DIA.SEMANA			##	Converte um número de série num dia da semana
    +WEEKNUM			= NÚMSEMANA			##	Converte um número de série num número que representa o número da semana num determinado ano
    +WORKDAY			= DIA.TRABALHO			##	Devolve o número de série da data antes ou depois de um número de dias úteis especificado
    +YEAR			= ANO				##	Converte um número de série num ano
    +YEARFRAC		= FRACÇÃOANO			##	Devolve a fracção de ano que representa o número de dias inteiros entre a data_de_início e a data_de_fim
    +
    +
    +##
    +##	Engineering functions				Funções de engenharia
    +##
    +BESSELI			= BESSELI			##	Devolve a função de Bessel modificada In(x)
    +BESSELJ			= BESSELJ			##	Devolve a função de Bessel Jn(x)
    +BESSELK			= BESSELK			##	Devolve a função de Bessel modificada Kn(x)
    +BESSELY			= BESSELY			##	Devolve a função de Bessel Yn(x)
    +BIN2DEC			= BINADEC			##	Converte um número binário em decimal
    +BIN2HEX			= BINAHEX			##	Converte um número binário em hexadecimal
    +BIN2OCT			= BINAOCT			##	Converte um número binário em octal
    +COMPLEX			= COMPLEXO			##	Converte coeficientes reais e imaginários num número complexo
    +CONVERT			= CONVERTER			##	Converte um número de um sistema de medida noutro
    +DEC2BIN			= DECABIN			##	Converte um número decimal em binário
    +DEC2HEX			= DECAHEX			##	Converte um número decimal em hexadecimal
    +DEC2OCT			= DECAOCT			##	Converte um número decimal em octal
    +DELTA			= DELTA				##	Testa se dois valores são iguais
    +ERF			= FUNCERRO			##	Devolve a função de erro
    +ERFC			= FUNCERROCOMPL			##	Devolve a função de erro complementar
    +GESTEP			= DEGRAU			##	Testa se um número é maior do que um valor limite
    +HEX2BIN			= HEXABIN			##	Converte um número hexadecimal em binário
    +HEX2DEC			= HEXADEC			##	Converte um número hexadecimal em decimal
    +HEX2OCT			= HEXAOCT			##	Converte um número hexadecimal em octal
    +IMABS			= IMABS				##	Devolve o valor absoluto (módulo) de um número complexo
    +IMAGINARY		= IMAGINÁRIO			##	Devolve o coeficiente imaginário de um número complexo
    +IMARGUMENT		= IMARG				##	Devolve o argumento Teta, um ângulo expresso em radianos
    +IMCONJUGATE		= IMCONJ			##	Devolve o conjugado complexo de um número complexo
    +IMCOS			= IMCOS				##	Devolve o co-seno de um número complexo
    +IMDIV			= IMDIV				##	Devolve o quociente de dois números complexos
    +IMEXP			= IMEXP				##	Devolve o exponencial de um número complexo
    +IMLN			= IMLN				##	Devolve o logaritmo natural de um número complexo
    +IMLOG10			= IMLOG10			##	Devolve o logaritmo de base 10 de um número complexo
    +IMLOG2			= IMLOG2			##	Devolve o logaritmo de base 2 de um número complexo
    +IMPOWER			= IMPOT				##	Devolve um número complexo elevado a uma potência inteira
    +IMPRODUCT		= IMPROD			##	Devolve o produto de números complexos
    +IMREAL			= IMREAL			##	Devolve o coeficiente real de um número complexo
    +IMSIN			= IMSENO			##	Devolve o seno de um número complexo
    +IMSQRT			= IMRAIZ			##	Devolve a raiz quadrada de um número complexo
    +IMSUB			= IMSUBTR			##	Devolve a diferença entre dois números complexos
    +IMSUM			= IMSOMA			##	Devolve a soma de números complexos
    +OCT2BIN			= OCTABIN			##	Converte um número octal em binário
    +OCT2DEC			= OCTADEC			##	Converte um número octal em decimal
    +OCT2HEX			= OCTAHEX			##	Converte um número octal em hexadecimal
    +
    +
    +##
    +##	Financial functions				Funções financeiras
    +##
    +ACCRINT			= JUROSACUM			##	Devolve os juros acumulados de um título que paga juros periódicos
    +ACCRINTM		= JUROSACUMV			##	Devolve os juros acumulados de um título que paga juros no vencimento
    +AMORDEGRC		= AMORDEGRC			##	Devolve a depreciação correspondente a cada período contabilístico utilizando um coeficiente de depreciação
    +AMORLINC		= AMORLINC			##	Devolve a depreciação correspondente a cada período contabilístico
    +COUPDAYBS		= CUPDIASINLIQ			##	Devolve o número de dias entre o início do período do cupão e a data de regularização
    +COUPDAYS		= CUPDIAS			##	Devolve o número de dias no período do cupão que contém a data de regularização
    +COUPDAYSNC		= CUPDIASPRÓX			##	Devolve o número de dias entre a data de regularização e a data do cupão seguinte
    +COUPNCD			= CUPDATAPRÓX			##	Devolve a data do cupão seguinte após a data de regularização
    +COUPNUM			= CUPNÚM			##	Devolve o número de cupões a serem pagos entre a data de regularização e a data de vencimento
    +COUPPCD			= CUPDATAANT			##	Devolve a data do cupão anterior antes da data de regularização
    +CUMIPMT			= PGTOJURACUM			##	Devolve os juros cumulativos pagos entre dois períodos
    +CUMPRINC		= PGTOCAPACUM			##	Devolve o capital cumulativo pago a título de empréstimo entre dois períodos
    +DB			= BD				##	Devolve a depreciação de um activo relativo a um período especificado utilizando o método das quotas degressivas fixas
    +DDB			= BDD				##	Devolve a depreciação de um activo relativo a um período especificado utilizando o método das quotas degressivas duplas ou qualquer outro método especificado
    +DISC			= DESC				##	Devolve a taxa de desconto de um título
    +DOLLARDE		= MOEDADEC			##	Converte um preço em unidade monetária, expresso como uma fracção, num preço em unidade monetária, expresso como um número decimal
    +DOLLARFR		= MOEDAFRA			##	Converte um preço em unidade monetária, expresso como um número decimal, num preço em unidade monetária, expresso como uma fracção
    +DURATION		= DURAÇÃO			##	Devolve a duração anual de um título com pagamentos de juros periódicos
    +EFFECT			= EFECTIVA			##	Devolve a taxa de juros anual efectiva
    +FV			= VF				##	Devolve o valor futuro de um investimento
    +FVSCHEDULE		= VFPLANO			##	Devolve o valor futuro de um capital inicial após a aplicação de uma série de taxas de juro compostas
    +INTRATE			= TAXAJUROS			##	Devolve a taxa de juros de um título investido na totalidade
    +IPMT			= IPGTO				##	Devolve o pagamento dos juros de um investimento durante um determinado período
    +IRR			= TIR				##	Devolve a taxa de rentabilidade interna para uma série de fluxos monetários
    +ISPMT			= É.PGTO			##	Calcula os juros pagos durante um período específico de um investimento
    +MDURATION		= MDURAÇÃO			##	Devolve a duração modificada de Macauley de um título com um valor de paridade equivalente a € 100
    +MIRR			= MTIR				##	Devolve a taxa interna de rentabilidade em que os fluxos monetários positivos e negativos são financiados com taxas diferentes
    +NOMINAL			= NOMINAL			##	Devolve a taxa de juros nominal anual
    +NPER			= NPER				##	Devolve o número de períodos de um investimento
    +NPV			= VAL				##	Devolve o valor actual líquido de um investimento com base numa série de fluxos monetários periódicos e numa taxa de desconto
    +ODDFPRICE		= PREÇOPRIMINC			##	Devolve o preço por € 100 do valor nominal de um título com um período inicial incompleto
    +ODDFYIELD		= LUCROPRIMINC			##	Devolve o lucro de um título com um período inicial incompleto
    +ODDLPRICE		= PREÇOÚLTINC			##	Devolve o preço por € 100 do valor nominal de um título com um período final incompleto
    +ODDLYIELD		= LUCROÚLTINC			##	Devolve o lucro de um título com um período final incompleto
    +PMT			= PGTO				##	Devolve o pagamento periódico de uma anuidade
    +PPMT			= PPGTO				##	Devolve o pagamento sobre o capital de um investimento num determinado período
    +PRICE			= PREÇO				##	Devolve o preço por € 100 do valor nominal de um título que paga juros periódicos
    +PRICEDISC		= PREÇODESC			##	Devolve o preço por € 100 do valor nominal de um título descontado
    +PRICEMAT		= PREÇOVENC			##	Devolve o preço por € 100 do valor nominal de um título que paga juros no vencimento
    +PV			= VA				##	Devolve o valor actual de um investimento
    +RATE			= TAXA				##	Devolve a taxa de juros por período de uma anuidade
    +RECEIVED		= RECEBER			##	Devolve o montante recebido no vencimento de um título investido na totalidade
    +SLN			= AMORT				##	Devolve uma depreciação linear de um activo durante um período
    +SYD			= AMORTD			##	Devolve a depreciação por algarismos da soma dos anos de um activo durante um período especificado
    +TBILLEQ			= OTN				##	Devolve o lucro de um título equivalente a uma Obrigação do Tesouro
    +TBILLPRICE		= OTNVALOR			##	Devolve o preço por € 100 de valor nominal de uma Obrigação do Tesouro
    +TBILLYIELD		= OTNLUCRO			##	Devolve o lucro de uma Obrigação do Tesouro
    +VDB			= BDV				##	Devolve a depreciação de um activo relativo a um período específico ou parcial utilizando um método de quotas degressivas
    +XIRR			= XTIR				##	Devolve a taxa interna de rentabilidade de um plano de fluxos monetários que não seja necessariamente periódica
    +XNPV			= XVAL				##	Devolve o valor actual líquido de um plano de fluxos monetários que não seja necessariamente periódico
    +YIELD			= LUCRO				##	Devolve o lucro de um título que paga juros periódicos
    +YIELDDISC		= LUCRODESC			##	Devolve o lucro anual de um título emitido abaixo do valor nominal, por exemplo, uma Obrigação do Tesouro
    +YIELDMAT		= LUCROVENC			##	Devolve o lucro anual de um título que paga juros na data de vencimento
    +
    +
    +##
    +##	Information functions				Funções de informação
    +##
    +CELL			= CÉL				##	Devolve informações sobre a formatação, localização ou conteúdo de uma célula
    +ERROR.TYPE		= TIPO.ERRO			##	Devolve um número correspondente a um tipo de erro
    +INFO			= INFORMAÇÃO			##	Devolve informações sobre o ambiente de funcionamento actual
    +ISBLANK			= É.CÉL.VAZIA			##	Devolve VERDADEIRO se o valor estiver em branco
    +ISERR			= É.ERROS			##	Devolve VERDADEIRO se o valor for um valor de erro diferente de #N/D
    +ISERROR			= É.ERRO			##	Devolve VERDADEIRO se o valor for um valor de erro
    +ISEVEN			= ÉPAR				##	Devolve VERDADEIRO se o número for par
    +ISLOGICAL		= É.LÓGICO			##	Devolve VERDADEIRO se o valor for lógico
    +ISNA			= É.NÃO.DISP			##	Devolve VERDADEIRO se o valor for o valor de erro #N/D
    +ISNONTEXT		= É.NÃO.TEXTO			##	Devolve VERDADEIRO se o valor não for texto
    +ISNUMBER		= É.NÚM				##	Devolve VERDADEIRO se o valor for um número
    +ISODD			= ÉÍMPAR			##	Devolve VERDADEIRO se o número for ímpar
    +ISREF			= É.REF				##	Devolve VERDADEIRO se o valor for uma referência
    +ISTEXT			= É.TEXTO			##	Devolve VERDADEIRO se o valor for texto
    +N			= N				##	Devolve um valor convertido num número
    +NA			= NÃO.DISP			##	Devolve o valor de erro #N/D
    +TYPE			= TIPO				##	Devolve um número que indica o tipo de dados de um valor
    +
    +
    +##
    +##	Logical functions				Funções lógicas
    +##
    +AND			= E				##	Devolve VERDADEIRO se todos os respectivos argumentos corresponderem a VERDADEIRO
    +FALSE			= FALSO				##	Devolve o valor lógico FALSO
    +IF			= SE				##	Especifica um teste lógico a ser executado
    +IFERROR			= SE.ERRO			##	Devolve um valor definido pelo utilizador se ocorrer um erro na fórmula, e devolve o resultado da fórmula se não ocorrer nenhum erro
    +NOT			= NÃO				##	Inverte a lógica do respectivo argumento
    +OR			= OU				##	Devolve VERDADEIRO se qualquer argumento for VERDADEIRO
    +TRUE			= VERDADEIRO			##	Devolve o valor lógico VERDADEIRO
    +
    +
    +##
    +##	Lookup and reference functions			Funções de pesquisa e referência
    +##
    +ADDRESS			= ENDEREÇO			##	Devolve uma referência a uma única célula numa folha de cálculo como texto
    +AREAS			= ÁREAS				##	Devolve o número de áreas numa referência
    +CHOOSE			= SELECCIONAR			##	Selecciona um valor a partir de uma lista de valores
    +COLUMN			= COL				##	Devolve o número da coluna de uma referência
    +COLUMNS			= COLS				##	Devolve o número de colunas numa referência
    +HLOOKUP			= PROCH				##	Procura na linha superior de uma matriz e devolve o valor da célula indicada
    +HYPERLINK		= HIPERLIGAÇÃO			##	Cria um atalho ou hiperligação que abre um documento armazenado num servidor de rede, numa intranet ou na Internet
    +INDEX			= ÍNDICE			##	Utiliza um índice para escolher um valor de uma referência ou de uma matriz
    +INDIRECT		= INDIRECTO			##	Devolve uma referência indicada por um valor de texto
    +LOOKUP			= PROC				##	Procura valores num vector ou numa matriz
    +MATCH			= CORRESP			##	Procura valores numa referência ou numa matriz
    +OFFSET			= DESLOCAMENTO			##	Devolve o deslocamento de referência de uma determinada referência
    +ROW			= LIN				##	Devolve o número da linha de uma referência
    +ROWS			= LINS				##	Devolve o número de linhas numa referência
    +RTD			= RTD				##	Obtém dados em tempo real a partir de um programa que suporte automatização COM (automatização: modo de trabalhar com objectos de uma aplicação a partir de outra aplicação ou ferramenta de desenvolvimento. Anteriormente conhecida como automatização OLE, a automatização é uma norma da indústria de software e uma funcionalidade COM (Component Object Model).)
    +TRANSPOSE		= TRANSPOR			##	Devolve a transposição de uma matriz
    +VLOOKUP			= PROCV				##	Procura na primeira coluna de uma matriz e percorre a linha para devolver o valor de uma célula
    +
    +
    +##
    +##	Math and trigonometry functions			Funções matemáticas e trigonométricas
    +##
    +ABS			= ABS				##	Devolve o valor absoluto de um número
    +ACOS			= ACOS				##	Devolve o arco de co-seno de um número
    +ACOSH			= ACOSH				##	Devolve o co-seno hiperbólico inverso de um número
    +ASIN			= ASEN				##	Devolve o arco de seno de um número
    +ASINH			= ASENH				##	Devolve o seno hiperbólico inverso de um número
    +ATAN			= ATAN				##	Devolve o arco de tangente de um número
    +ATAN2			= ATAN2				##	Devolve o arco de tangente das coordenadas x e y
    +ATANH			= ATANH				##	Devolve a tangente hiperbólica inversa de um número
    +CEILING			= ARRED.EXCESSO			##	Arredonda um número para o número inteiro mais próximo ou para o múltiplo de significância mais próximo
    +COMBIN			= COMBIN			##	Devolve o número de combinações de um determinado número de objectos
    +COS			= COS				##	Devolve o co-seno de um número
    +COSH			= COSH				##	Devolve o co-seno hiperbólico de um número
    +DEGREES			= GRAUS				##	Converte radianos em graus
    +EVEN			= PAR				##	Arredonda um número por excesso para o número inteiro mais próximo
    +EXP			= EXP				##	Devolve e elevado à potência de um determinado número
    +FACT			= FACTORIAL			##	Devolve o factorial de um número
    +FACTDOUBLE		= FACTDUPLO			##	Devolve o factorial duplo de um número
    +FLOOR			= ARRED.DEFEITO			##	Arredonda um número por defeito até zero
    +GCD			= MDC				##	Devolve o maior divisor comum
    +INT			= INT				##	Arredonda um número por defeito para o número inteiro mais próximo
    +LCM			= MMC				##	Devolve o mínimo múltiplo comum
    +LN			= LN				##	Devolve o logaritmo natural de um número
    +LOG			= LOG				##	Devolve o logaritmo de um número com uma base especificada
    +LOG10			= LOG10				##	Devolve o logaritmo de base 10 de um número
    +MDETERM			= MATRIZ.DETERM			##	Devolve o determinante matricial de uma matriz
    +MINVERSE		= MATRIZ.INVERSA		##	Devolve o inverso matricial de uma matriz
    +MMULT			= MATRIZ.MULT			##	Devolve o produto matricial de duas matrizes
    +MOD			= RESTO				##	Devolve o resto da divisão
    +MROUND			= MARRED			##	Devolve um número arredondado para o múltiplo pretendido
    +MULTINOMIAL		= POLINOMIAL			##	Devolve o polinomial de um conjunto de números
    +ODD			= ÍMPAR				##	Arredonda por excesso um número para o número inteiro ímpar mais próximo
    +PI			= PI				##	Devolve o valor de pi
    +POWER			= POTÊNCIA			##	Devolve o resultado de um número elevado a uma potência
    +PRODUCT			= PRODUTO			##	Multiplica os respectivos argumentos
    +QUOTIENT		= QUOCIENTE			##	Devolve a parte inteira de uma divisão
    +RADIANS			= RADIANOS			##	Converte graus em radianos
    +RAND			= ALEATÓRIO			##	Devolve um número aleatório entre 0 e 1
    +RANDBETWEEN		= ALEATÓRIOENTRE		##	Devolve um número aleatório entre os números especificados
    +ROMAN			= ROMANO			##	Converte um número árabe em romano, como texto
    +ROUND			= ARRED				##	Arredonda um número para um número de dígitos especificado
    +ROUNDDOWN		= ARRED.PARA.BAIXO		##	Arredonda um número por defeito até zero
    +ROUNDUP			= ARRED.PARA.CIMA		##	Arredonda um número por excesso, afastando-o de zero
    +SERIESSUM		= SOMASÉRIE			##	Devolve a soma de uma série de potências baseada na fórmula
    +SIGN			= SINAL				##	Devolve o sinal de um número
    +SIN			= SEN				##	Devolve o seno de um determinado ângulo
    +SINH			= SENH				##	Devolve o seno hiperbólico de um número
    +SQRT			= RAIZQ				##	Devolve uma raiz quadrada positiva
    +SQRTPI			= RAIZPI			##	Devolve a raiz quadrada de (núm * pi)
    +SUBTOTAL		= SUBTOTAL			##	Devolve um subtotal numa lista ou base de dados
    +SUM			= SOMA				##	Adiciona os respectivos argumentos
    +SUMIF			= SOMA.SE			##	Adiciona as células especificadas por um determinado critério
    +SUMIFS			= SOMA.SE.S			##	Adiciona as células num intervalo que cumpre vários critérios
    +SUMPRODUCT		= SOMARPRODUTO			##	Devolve a soma dos produtos de componentes de matrizes correspondentes
    +SUMSQ			= SOMARQUAD			##	Devolve a soma dos quadrados dos argumentos
    +SUMX2MY2		= SOMAX2DY2			##	Devolve a soma da diferença dos quadrados dos valores correspondentes em duas matrizes
    +SUMX2PY2		= SOMAX2SY2			##	Devolve a soma da soma dos quadrados dos valores correspondentes em duas matrizes
    +SUMXMY2			= SOMAXMY2			##	Devolve a soma dos quadrados da diferença dos valores correspondentes em duas matrizes
    +TAN			= TAN				##	Devolve a tangente de um número
    +TANH			= TANH				##	Devolve a tangente hiperbólica de um número
    +TRUNC			= TRUNCAR			##	Trunca um número para um número inteiro
    +
    +
    +##
    +##	Statistical functions				Funções estatísticas
    +##
    +AVEDEV			= DESV.MÉDIO			##	Devolve a média aritmética dos desvios absolutos à média dos pontos de dados
    +AVERAGE			= MÉDIA				##	Devolve a média dos respectivos argumentos
    +AVERAGEA		= MÉDIAA			##	Devolve uma média dos respectivos argumentos, incluindo números, texto e valores lógicos
    +AVERAGEIF		= MÉDIA.SE			##	Devolve a média aritmética de todas as células num intervalo que cumprem determinado critério
    +AVERAGEIFS		= MÉDIA.SE.S			##	Devolve a média aritmética de todas as células que cumprem múltiplos critérios
    +BETADIST		= DISTBETA			##	Devolve a função de distribuição cumulativa beta
    +BETAINV			= BETA.ACUM.INV			##	Devolve o inverso da função de distribuição cumulativa relativamente a uma distribuição beta específica
    +BINOMDIST		= DISTRBINOM			##	Devolve a probabilidade de distribuição binomial de termo individual
    +CHIDIST			= DIST.CHI			##	Devolve a probabilidade unicaudal da distribuição qui-quadrada
    +CHIINV			= INV.CHI			##	Devolve o inverso da probabilidade unicaudal da distribuição qui-quadrada
    +CHITEST			= TESTE.CHI			##	Devolve o teste para independência
    +CONFIDENCE		= INT.CONFIANÇA			##	Devolve o intervalo de confiança correspondente a uma média de população
    +CORREL			= CORREL			##	Devolve o coeficiente de correlação entre dois conjuntos de dados
    +COUNT			= CONTAR			##	Conta os números que existem na lista de argumentos
    +COUNTA			= CONTAR.VAL			##	Conta os valores que existem na lista de argumentos
    +COUNTBLANK		= CONTAR.VAZIO			##	Conta o número de células em branco num intervalo
    +COUNTIF			= CONTAR.SE			##	Calcula o número de células num intervalo que corresponde aos critérios determinados
    +COUNTIFS		= CONTAR.SE.S			##	Conta o número de células num intervalo que cumprem múltiplos critérios
    +COVAR			= COVAR				##	Devolve a covariância, que é a média dos produtos de desvios de pares
    +CRITBINOM		= CRIT.BINOM			##	Devolve o menor valor em que a distribuição binomial cumulativa é inferior ou igual a um valor de critério
    +DEVSQ			= DESVQ				##	Devolve a soma dos quadrados dos desvios
    +EXPONDIST		= DISTEXPON			##	Devolve a distribuição exponencial
    +FDIST			= DISTF				##	Devolve a distribuição da probabilidade F
    +FINV			= INVF				##	Devolve o inverso da distribuição da probabilidade F
    +FISHER			= FISHER			##	Devolve a transformação Fisher
    +FISHERINV		= FISHERINV			##	Devolve o inverso da transformação Fisher
    +FORECAST		= PREVISÃO			##	Devolve um valor ao longo de uma tendência linear
    +FREQUENCY		= FREQUÊNCIA			##	Devolve uma distribuição de frequência como uma matriz vertical
    +FTEST			= TESTEF			##	Devolve o resultado de um teste F
    +GAMMADIST		= DISTGAMA			##	Devolve a distribuição gama
    +GAMMAINV		= INVGAMA			##	Devolve o inverso da distribuição gama cumulativa
    +GAMMALN			= LNGAMA			##	Devolve o logaritmo natural da função gama, Γ(x)
    +GEOMEAN			= MÉDIA.GEOMÉTRICA		##	Devolve a média geométrica
    +GROWTH			= CRESCIMENTO			##	Devolve valores ao longo de uma tendência exponencial
    +HARMEAN			= MÉDIA.HARMÓNICA		##	Devolve a média harmónica
    +HYPGEOMDIST		= DIST.HIPERGEOM		##	Devolve a distribuição hipergeométrica
    +INTERCEPT		= INTERCEPTAR			##	Devolve a intercepção da linha de regressão linear
    +KURT			= CURT				##	Devolve a curtose de um conjunto de dados
    +LARGE			= MAIOR				##	Devolve o maior valor k-ésimo de um conjunto de dados
    +LINEST			= PROJ.LIN			##	Devolve os parâmetros de uma tendência linear
    +LOGEST			= PROJ.LOG			##	Devolve os parâmetros de uma tendência exponencial
    +LOGINV			= INVLOG			##	Devolve o inverso da distribuição normal logarítmica
    +LOGNORMDIST		= DIST.NORMALLOG		##	Devolve a distribuição normal logarítmica cumulativa
    +MAX			= MÁXIMO			##	Devolve o valor máximo numa lista de argumentos
    +MAXA			= MÁXIMOA			##	Devolve o valor máximo numa lista de argumentos, incluindo números, texto e valores lógicos
    +MEDIAN			= MED				##	Devolve a mediana dos números indicados
    +MIN			= MÍNIMO			##	Devolve o valor mínimo numa lista de argumentos
    +MINA			= MÍNIMOA			##	Devolve o valor mínimo numa lista de argumentos, incluindo números, texto e valores lógicos
    +MODE			= MODA				##	Devolve o valor mais comum num conjunto de dados
    +NEGBINOMDIST		= DIST.BIN.NEG			##	Devolve a distribuição binominal negativa
    +NORMDIST		= DIST.NORM			##	Devolve a distribuição cumulativa normal
    +NORMINV			= INV.NORM			##	Devolve o inverso da distribuição cumulativa normal
    +NORMSDIST		= DIST.NORMP			##	Devolve a distribuição cumulativa normal padrão
    +NORMSINV		= INV.NORMP			##	Devolve o inverso da distribuição cumulativa normal padrão
    +PEARSON			= PEARSON			##	Devolve o coeficiente de correlação momento/produto de Pearson
    +PERCENTILE		= PERCENTIL			##	Devolve o k-ésimo percentil de valores num intervalo
    +PERCENTRANK		= ORDEM.PERCENTUAL		##	Devolve a ordem percentual de um valor num conjunto de dados
    +PERMUT			= PERMUTAR			##	Devolve o número de permutações de um determinado número de objectos
    +POISSON			= POISSON			##	Devolve a distribuição de Poisson
    +PROB			= PROB				##	Devolve a probabilidade dos valores num intervalo se encontrarem entre dois limites
    +QUARTILE		= QUARTIL			##	Devolve o quartil de um conjunto de dados
    +RANK			= ORDEM				##	Devolve a ordem de um número numa lista numérica
    +RSQ			= RQUAD				##	Devolve o quadrado do coeficiente de correlação momento/produto de Pearson
    +SKEW			= DISTORÇÃO			##	Devolve a distorção de uma distribuição
    +SLOPE			= DECLIVE			##	Devolve o declive da linha de regressão linear
    +SMALL			= MENOR				##	Devolve o menor valor de k-ésimo de um conjunto de dados
    +STANDARDIZE		= NORMALIZAR			##	Devolve um valor normalizado
    +STDEV			= DESVPAD			##	Calcula o desvio-padrão com base numa amostra
    +STDEVA			= DESVPADA			##	Calcula o desvio-padrão com base numa amostra, incluindo números, texto e valores lógicos
    +STDEVP			= DESVPADP			##	Calcula o desvio-padrão com base na população total
    +STDEVPA			= DESVPADPA			##	Calcula o desvio-padrão com base na população total, incluindo números, texto e valores lógicos
    +STEYX			= EPADYX			##	Devolve o erro-padrão do valor de y previsto para cada x na regressão
    +TDIST			= DISTT				##	Devolve a distribuição t de Student
    +TINV			= INVT				##	Devolve o inverso da distribuição t de Student
    +TREND			= TENDÊNCIA			##	Devolve valores ao longo de uma tendência linear
    +TRIMMEAN		= MÉDIA.INTERNA			##	Devolve a média do interior de um conjunto de dados
    +TTEST			= TESTET			##	Devolve a probabilidade associada ao teste t de Student
    +VAR			= VAR				##	Calcula a variância com base numa amostra
    +VARA			= VARA				##	Calcula a variância com base numa amostra, incluindo números, texto e valores lógicos
    +VARP			= VARP				##	Calcula a variância com base na população total
    +VARPA			= VARPA				##	Calcula a variância com base na população total, incluindo números, texto e valores lógicos
    +WEIBULL			= WEIBULL			##	Devolve a distribuição Weibull
    +ZTEST			= TESTEZ			##	Devolve o valor de probabilidade unicaudal de um teste-z
    +
    +
    +##
    +##	Text functions					Funções de texto
    +##
    +ASC			= ASC				##	Altera letras ou katakana de largura total (byte duplo) numa cadeia de caracteres para caracteres de largura média (byte único)
    +BAHTTEXT		= TEXTO.BAHT			##	Converte um número em texto, utilizando o formato monetário ß (baht)
    +CHAR			= CARÁCT			##	Devolve o carácter especificado pelo número de código
    +CLEAN			= LIMPAR			##	Remove do texto todos os caracteres não imprimíveis
    +CODE			= CÓDIGO			##	Devolve um código numérico correspondente ao primeiro carácter numa cadeia de texto
    +CONCATENATE		= CONCATENAR			##	Agrupa vários itens de texto num único item de texto
    +DOLLAR			= MOEDA				##	Converte um número em texto, utilizando o formato monetário € (Euro)
    +EXACT			= EXACTO			##	Verifica se dois valores de texto são idênticos
    +FIND			= LOCALIZAR			##	Localiza um valor de texto dentro de outro (sensível às maiúsculas e minúsculas)
    +FINDB			= LOCALIZARB			##	Localiza um valor de texto dentro de outro (sensível às maiúsculas e minúsculas)
    +FIXED			= FIXA				##	Formata um número como texto com um número fixo de decimais
    +JIS			= JIS				##	Altera letras ou katakana de largura média (byte único) numa cadeia de caracteres para caracteres de largura total (byte duplo)
    +LEFT			= ESQUERDA			##	Devolve os caracteres mais à esquerda de um valor de texto
    +LEFTB			= ESQUERDAB			##	Devolve os caracteres mais à esquerda de um valor de texto
    +LEN			= NÚM.CARACT			##	Devolve o número de caracteres de uma cadeia de texto
    +LENB			= NÚM.CARACTB			##	Devolve o número de caracteres de uma cadeia de texto
    +LOWER			= MINÚSCULAS			##	Converte o texto em minúsculas
    +MID			= SEG.TEXTO			##	Devolve um número específico de caracteres de uma cadeia de texto, a partir da posição especificada
    +MIDB			= SEG.TEXTOB			##	Devolve um número específico de caracteres de uma cadeia de texto, a partir da posição especificada
    +PHONETIC		= FONÉTICA			##	Retira os caracteres fonéticos (furigana) de uma cadeia de texto
    +PROPER			= INICIAL.MAIÚSCULA		##	Coloca em maiúsculas a primeira letra de cada palavra de um valor de texto
    +REPLACE			= SUBSTITUIR			##	Substitui caracteres no texto
    +REPLACEB		= SUBSTITUIRB			##	Substitui caracteres no texto
    +REPT			= REPETIR			##	Repete texto um determinado número de vezes
    +RIGHT			= DIREITA			##	Devolve os caracteres mais à direita de um valor de texto
    +RIGHTB			= DIREITAB			##	Devolve os caracteres mais à direita de um valor de texto
    +SEARCH			= PROCURAR			##	Localiza um valor de texto dentro de outro (não sensível a maiúsculas e minúsculas)
    +SEARCHB			= PROCURARB			##	Localiza um valor de texto dentro de outro (não sensível a maiúsculas e minúsculas)
    +SUBSTITUTE		= SUBST				##	Substitui texto novo por texto antigo numa cadeia de texto
    +T			= T				##	Converte os respectivos argumentos em texto
    +TEXT			= TEXTO				##	Formata um número e converte-o em texto
    +TRIM			= COMPACTAR			##	Remove espaços do texto
    +UPPER			= MAIÚSCULAS			##	Converte texto em maiúsculas
    +VALUE			= VALOR				##	Converte um argumento de texto num número
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/ru/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/ru/config
    new file mode 100644
    index 00000000000..9ee9e6ccafc
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/ru/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= р
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #ПУСТО!
    +DIV0	= #ДЕЛ/0!
    +VALUE	= #ЗНАЧ!
    +REF	= #ССЫЛ!
    +NAME	= #ИМЯ?
    +NUM	= #ЧИСЛО!
    +NA	= #Н/Д
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/ru/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/ru/functions
    new file mode 100644
    index 00000000000..3597dbf89df
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/ru/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from information provided by web-junior (http://www.web-junior.net/)
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions				Функции надстроек и автоматизации
    +##
    +GETPIVOTDATA		= ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ	##	Возвращает данные, хранящиеся в отчете сводной таблицы.
    +
    +
    +##
    +##	Cube functions						Функции Куб
    +##
    +CUBEKPIMEMBER		= КУБЭЛЕМЕНТКИП				##	Возвращает свойство ключевого индикатора производительности «(КИП)» и отображает имя «КИП» в ячейке. «КИП» представляет собой количественную величину, такую как ежемесячная валовая прибыль или ежеквартальная текучесть кадров, используемой для контроля эффективности работы организации.
    +CUBEMEMBER		= КУБЭЛЕМЕНТ				##	Возвращает элемент или кортеж из куба. Используется для проверки существования элемента или кортежа в кубе.
    +CUBEMEMBERPROPERTY	= КУБСВОЙСТВОЭЛЕМЕНТА			##	Возвращает значение свойства элемента из куба. Используется для проверки существования имени элемента в кубе и возвращает указанное свойство для этого элемента.
    +CUBERANKEDMEMBER	= КУБПОРЭЛЕМЕНТ				##	Возвращает n-ый или ранжированный элемент в множество. Используется для возвращения одного или нескольких элементов в множество, например, лучшего продавца или 10 лучших студентов.
    +CUBESET			= КУБМНОЖ				##	Определяет вычислительное множество элементов или кортежей, отправляя на сервер выражение, которое создает множество, а затем возвращает его в Microsoft Office Excel.
    +CUBESETCOUNT		= КУБЧИСЛОЭЛМНОЖ			##	Возвращает число элементов множества.
    +CUBEVALUE		= КУБЗНАЧЕНИЕ				##	Возвращает обобщенное значение из куба.
    +
    +
    +##
    +##	Database functions					Функции для работы с базами данных
    +##
    +DAVERAGE		= ДСРЗНАЧ				##	Возвращает среднее значение выбранных записей базы данных.
    +DCOUNT			= БСЧЁТ					##	Подсчитывает количество числовых ячеек в базе данных.
    +DCOUNTA			= БСЧЁТА				##	Подсчитывает количество непустых ячеек в базе данных.
    +DGET			= БИЗВЛЕЧЬ				##	Извлекает из базы данных одну запись, удовлетворяющую заданному условию.
    +DMAX			= ДМАКС					##	Возвращает максимальное значение среди выделенных записей базы данных.
    +DMIN			= ДМИН					##	Возвращает минимальное значение среди выделенных записей базы данных.
    +DPRODUCT		= БДПРОИЗВЕД				##	Перемножает значения определенного поля в записях базы данных, удовлетворяющих условию.
    +DSTDEV			= ДСТАНДОТКЛ				##	Оценивает стандартное отклонение по выборке для выделенных записей базы данных.
    +DSTDEVP			= ДСТАНДОТКЛП				##	Вычисляет стандартное отклонение по генеральной совокупности для выделенных записей базы данных
    +DSUM			= БДСУММ				##	Суммирует числа в поле для записей базы данных, удовлетворяющих условию.
    +DVAR			= БДДИСП				##	Оценивает дисперсию по выборке из выделенных записей базы данных
    +DVARP			= БДДИСПП				##	Вычисляет дисперсию по генеральной совокупности для выделенных записей базы данных
    +
    +
    +##
    +##	Date and time functions					Функции даты и времени
    +##
    +DATE			= ДАТА					##	Возвращает заданную дату в числовом формате.
    +DATEVALUE		= ДАТАЗНАЧ				##	Преобразует дату из текстового формата в числовой формат.
    +DAY			= ДЕНЬ					##	Преобразует дату в числовом формате в день месяца.
    +DAYS360			= ДНЕЙ360				##	Вычисляет количество дней между двумя датами на основе 360-дневного года.
    +EDATE			= ДАТАМЕС				##	Возвращает дату в числовом формате, отстоящую на заданное число месяцев вперед или назад от начальной даты.
    +EOMONTH			= КОНМЕСЯЦА				##	Возвращает дату в числовом формате для последнего дня месяца, отстоящего вперед или назад на заданное число месяцев.
    +HOUR			= ЧАС					##	Преобразует дату в числовом формате в часы.
    +MINUTE			= МИНУТЫ				##	Преобразует дату в числовом формате в минуты.
    +MONTH			= МЕСЯЦ					##	Преобразует дату в числовом формате в месяцы.
    +NETWORKDAYS		= ЧИСТРАБДНИ				##	Возвращает количество рабочих дней между двумя датами.
    +NOW			= ТДАТА					##	Возвращает текущую дату и время в числовом формате.
    +SECOND			= СЕКУНДЫ				##	Преобразует дату в числовом формате в секунды.
    +TIME			= ВРЕМЯ					##	Возвращает заданное время в числовом формате.
    +TIMEVALUE		= ВРЕМЗНАЧ				##	Преобразует время из текстового формата в числовой формат.
    +TODAY			= СЕГОДНЯ				##	Возвращает текущую дату в числовом формате.
    +WEEKDAY			= ДЕНЬНЕД				##	Преобразует дату в числовом формате в день недели.
    +WEEKNUM			= НОМНЕДЕЛИ				##	Преобразует числовое представление в число, которое указывает, на какую неделю года приходится указанная дата.
    +WORKDAY			= РАБДЕНЬ				##	Возвращает дату в числовом формате, отстоящую вперед или назад на заданное количество рабочих дней.
    +YEAR			= ГОД					##	Преобразует дату в числовом формате в год.
    +YEARFRAC		= ДОЛЯГОДА				##	Возвращает долю года, которую составляет количество дней между начальной и конечной датами.
    +
    +
    +##
    +##	Engineering functions					Инженерные функции
    +##
    +BESSELI			= БЕССЕЛЬ.I	 			##	Возвращает модифицированную функцию Бесселя In(x).
    +BESSELJ			= БЕССЕЛЬ.J				##	Возвращает функцию Бесселя Jn(x).
    +BESSELK			= БЕССЕЛЬ.K				##	Возвращает модифицированную функцию Бесселя Kn(x).
    +BESSELY			= БЕССЕЛЬ.Y				##	Возвращает функцию Бесселя Yn(x).
    +BIN2DEC			= ДВ.В.ДЕС				##	Преобразует двоичное число в десятичное.
    +BIN2HEX			= ДВ.В.ШЕСТН				##	Преобразует двоичное число в шестнадцатеричное.
    +BIN2OCT			= ДВ.В.ВОСЬМ				##	Преобразует двоичное число в восьмеричное.
    +COMPLEX			= КОМПЛЕКСН				##	Преобразует коэффициенты при вещественной и мнимой частях комплексного числа в комплексное число.
    +CONVERT			= ПРЕОБР				##	Преобразует число из одной системы единиц измерения в другую.
    +DEC2BIN			= ДЕС.В.ДВ				##	Преобразует десятичное число в двоичное.
    +DEC2HEX			= ДЕС.В.ШЕСТН				##	Преобразует десятичное число в шестнадцатеричное.
    +DEC2OCT			= ДЕС.В.ВОСЬМ				##	Преобразует десятичное число в восьмеричное.
    +DELTA			= ДЕЛЬТА				##	Проверяет равенство двух значений.
    +ERF			= ФОШ					##	Возвращает функцию ошибки.
    +ERFC			= ДФОШ					##	Возвращает дополнительную функцию ошибки.
    +GESTEP			= ПОРОГ					##	Проверяет, не превышает ли данное число порогового значения.
    +HEX2BIN			= ШЕСТН.В.ДВ				##	Преобразует шестнадцатеричное число в двоичное.
    +HEX2DEC			= ШЕСТН.В.ДЕС				##	Преобразует шестнадцатеричное число в десятичное.
    +HEX2OCT			= ШЕСТН.В.ВОСЬМ				##	Преобразует шестнадцатеричное число в восьмеричное.
    +IMABS			= МНИМ.ABS				##	Возвращает абсолютную величину (модуль) комплексного числа.
    +IMAGINARY		= МНИМ.ЧАСТЬ				##	Возвращает коэффициент при мнимой части комплексного числа.
    +IMARGUMENT		= МНИМ.АРГУМЕНТ				##	Возвращает значение аргумента комплексного числа (тета) — угол, выраженный в радианах.
    +IMCONJUGATE		= МНИМ.СОПРЯЖ				##	Возвращает комплексно-сопряженное комплексное число.
    +IMCOS			= МНИМ.COS				##	Возвращает косинус комплексного числа.
    +IMDIV			= МНИМ.ДЕЛ				##	Возвращает частное от деления двух комплексных чисел.
    +IMEXP			= МНИМ.EXP				##	Возвращает экспоненту комплексного числа.
    +IMLN			= МНИМ.LN				##	Возвращает натуральный логарифм комплексного числа.
    +IMLOG10			= МНИМ.LOG10				##	Возвращает обычный (десятичный) логарифм комплексного числа.
    +IMLOG2			= МНИМ.LOG2				##	Возвращает двоичный логарифм комплексного числа.
    +IMPOWER			= МНИМ.СТЕПЕНЬ				##	Возвращает комплексное число, возведенное в целую степень.
    +IMPRODUCT		= МНИМ.ПРОИЗВЕД				##	Возвращает произведение от 2 до 29 комплексных чисел.
    +IMREAL			= МНИМ.ВЕЩ				##	Возвращает коэффициент при вещественной части комплексного числа.
    +IMSIN			= МНИМ.SIN				##	Возвращает синус комплексного числа.
    +IMSQRT			= МНИМ.КОРЕНЬ				##	Возвращает значение квадратного корня из комплексного числа.
    +IMSUB			= МНИМ.РАЗН				##	Возвращает разность двух комплексных чисел.
    +IMSUM			= МНИМ.СУММ				##	Возвращает сумму комплексных чисел.
    +OCT2BIN			= ВОСЬМ.В.ДВ				##	Преобразует восьмеричное число в двоичное.
    +OCT2DEC			= ВОСЬМ.В.ДЕС				##	Преобразует восьмеричное число в десятичное.
    +OCT2HEX			= ВОСЬМ.В.ШЕСТН				##	Преобразует восьмеричное число в шестнадцатеричное.
    +
    +
    +##
    +##	Financial functions					Финансовые функции
    +##
    +ACCRINT			= НАКОПДОХОД				##	Возвращает накопленный процент по ценным бумагам с периодической выплатой процентов.
    +ACCRINTM		= НАКОПДОХОДПОГАШ			##	Возвращает накопленный процент по ценным бумагам, проценты по которым выплачиваются в срок погашения.
    +AMORDEGRC		= АМОРУМ				##	Возвращает величину амортизации для каждого периода, используя коэффициент амортизации.
    +AMORLINC		= АМОРУВ				##	Возвращает величину амортизации для каждого периода.
    +COUPDAYBS		= ДНЕЙКУПОНДО				##	Возвращает количество дней от начала действия купона до даты соглашения.
    +COUPDAYS		= ДНЕЙКУПОН				##	Возвращает число дней в периоде купона, содержащем дату соглашения.
    +COUPDAYSNC		= ДНЕЙКУПОНПОСЛЕ			##	Возвращает число дней от даты соглашения до срока следующего купона.
    +COUPNCD			= ДАТАКУПОНПОСЛЕ			##	Возвращает следующую дату купона после даты соглашения.
    +COUPNUM			= ЧИСЛКУПОН				##	Возвращает количество купонов, которые могут быть оплачены между датой соглашения и сроком вступления в силу.
    +COUPPCD			= ДАТАКУПОНДО				##	Возвращает предыдущую дату купона перед датой соглашения.
    +CUMIPMT			= ОБЩПЛАТ				##	Возвращает общую выплату, произведенную между двумя периодическими выплатами.
    +CUMPRINC		= ОБЩДОХОД				##	Возвращает общую выплату по займу между двумя периодами.
    +DB			= ФУО					##	Возвращает величину амортизации актива для заданного периода, рассчитанную методом фиксированного уменьшения остатка.
    +DDB			= ДДОБ					##	Возвращает величину амортизации актива за данный период, используя метод двойного уменьшения остатка или иной явно указанный метод.
    +DISC			= СКИДКА				##	Возвращает норму скидки для ценных бумаг.
    +DOLLARDE		= РУБЛЬ.ДЕС				##	Преобразует цену в рублях, выраженную в виде дроби, в цену в рублях, выраженную десятичным числом.
    +DOLLARFR		= РУБЛЬ.ДРОБЬ				##	Преобразует цену в рублях, выраженную десятичным числом, в цену в рублях, выраженную в виде дроби.
    +DURATION		= ДЛИТ					##	Возвращает ежегодную продолжительность действия ценных бумаг с периодическими выплатами по процентам.
    +EFFECT			= ЭФФЕКТ				##	Возвращает действующие ежегодные процентные ставки.
    +FV			= БС					##	Возвращает будущую стоимость инвестиции.
    +FVSCHEDULE		= БЗРАСПИС				##	Возвращает будущую стоимость первоначальной основной суммы после начисления ряда сложных процентов.
    +INTRATE			= ИНОРМА				##	Возвращает процентную ставку для полностью инвестированных ценных бумаг.
    +IPMT			= ПРПЛТ					##	Возвращает величину выплаты прибыли на вложения за данный период.
    +IRR			= ВСД					##	Возвращает внутреннюю ставку доходности для ряда потоков денежных средств.
    +ISPMT			= ПРОЦПЛАТ				##	Вычисляет выплаты за указанный период инвестиции.
    +MDURATION		= МДЛИТ					##	Возвращает модифицированную длительность Маколея для ценных бумаг с предполагаемой номинальной стоимостью 100 рублей.
    +MIRR			= МВСД					##	Возвращает внутреннюю ставку доходности, при которой положительные и отрицательные денежные потоки имеют разные значения ставки.
    +NOMINAL			= НОМИНАЛ				##	Возвращает номинальную годовую процентную ставку.
    +NPER			= КПЕР					##	Возвращает общее количество периодов выплаты для данного вклада.
    +NPV			= ЧПС					##	Возвращает чистую приведенную стоимость инвестиции, основанной на серии периодических денежных потоков и ставке дисконтирования.
    +ODDFPRICE		= ЦЕНАПЕРВНЕРЕГ				##	Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг с нерегулярным первым периодом.
    +ODDFYIELD		= ДОХОДПЕРВНЕРЕГ			##	Возвращает доход по ценным бумагам с нерегулярным первым периодом.
    +ODDLPRICE		= ЦЕНАПОСЛНЕРЕГ				##	Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг с нерегулярным последним периодом.
    +ODDLYIELD		= ДОХОДПОСЛНЕРЕГ			##	Возвращает доход по ценным бумагам с нерегулярным последним периодом.
    +PMT			= ПЛТ					##	Возвращает величину выплаты за один период аннуитета.
    +PPMT			= ОСПЛТ					##	Возвращает величину выплат в погашение основной суммы по инвестиции за заданный период.
    +PRICE			= ЦЕНА					##	Возвращает цену за 100 рублей нарицательной стоимости ценных бумаг, по которым производится периодическая выплата процентов.
    +PRICEDISC		= ЦЕНАСКИДКА				##	Возвращает цену за 100 рублей номинальной стоимости ценных бумаг, на которые сделана скидка.
    +PRICEMAT		= ЦЕНАПОГАШ				##	Возвращает цену за 100 рублей номинальной стоимости ценных бумаг, проценты по которым выплачиваются в срок погашения.
    +PV			= ПС					##	Возвращает приведенную (к текущему моменту) стоимость инвестиции.
    +RATE			= СТАВКА				##	Возвращает процентную ставку по аннуитету за один период.
    +RECEIVED		= ПОЛУЧЕНО				##	Возвращает сумму, полученную к сроку погашения полностью обеспеченных ценных бумаг.
    +SLN			= АПЛ					##	Возвращает величину линейной амортизации актива за один период.
    +SYD			= АСЧ					##	Возвращает величину амортизации актива за данный период, рассчитанную методом суммы годовых чисел.
    +TBILLEQ			= РАВНОКЧЕК				##	Возвращает эквивалентный облигации доход по казначейскому чеку.
    +TBILLPRICE		= ЦЕНАКЧЕК				##	Возвращает цену за 100 рублей нарицательной стоимости для казначейского чека.
    +TBILLYIELD		= ДОХОДКЧЕК				##	Возвращает доход по казначейскому чеку.
    +VDB			= ПУО					##	Возвращает величину амортизации актива для указанного или частичного периода при использовании метода сокращающегося баланса.
    +XIRR			= ЧИСТВНДОХ				##	Возвращает внутреннюю ставку доходности для графика денежных потоков, которые не обязательно носят периодический характер.
    +XNPV			= ЧИСТНЗ				##	Возвращает чистую приведенную стоимость для денежных потоков, которые не обязательно являются периодическими.
    +YIELD			= ДОХОД					##	Возвращает доход от ценных бумаг, по которым производятся периодические выплаты процентов.
    +YIELDDISC		= ДОХОДСКИДКА				##	Возвращает годовой доход по ценным бумагам, на которые сделана скидка (пример — казначейские чеки).
    +YIELDMAT		= ДОХОДПОГАШ				##	Возвращает годовой доход от ценных бумаг, проценты по которым выплачиваются в срок погашения.
    +
    +
    +##
    +##	Information functions					Информационные функции
    +##
    +CELL			= ЯЧЕЙКА				##	Возвращает информацию о формате, расположении или содержимом ячейки.
    +ERROR.TYPE		= ТИП.ОШИБКИ				##	Возвращает числовой код, соответствующий типу ошибки.
    +INFO			= ИНФОРМ				##	Возвращает информацию о текущей операционной среде.
    +ISBLANK			= ЕПУСТО				##	Возвращает значение ИСТИНА, если аргумент является ссылкой на пустую ячейку.
    +ISERR			= ЕОШ					##	Возвращает значение ИСТИНА, если аргумент ссылается на любое значение ошибки, кроме #Н/Д.
    +ISERROR			= ЕОШИБКА				##	Возвращает значение ИСТИНА, если аргумент ссылается на любое значение ошибки.
    +ISEVEN			= ЕЧЁТН					##	Возвращает значение ИСТИНА, если значение аргумента является четным числом.
    +ISLOGICAL		= ЕЛОГИЧ				##	Возвращает значение ИСТИНА, если аргумент ссылается на логическое значение.
    +ISNA			= ЕНД					##	Возвращает значение ИСТИНА, если аргумент ссылается на значение ошибки #Н/Д.
    +ISNONTEXT		= ЕНЕТЕКСТ				##	Возвращает значение ИСТИНА, если значение аргумента не является текстом.
    +ISNUMBER		= ЕЧИСЛО				##	Возвращает значение ИСТИНА, если аргумент ссылается на число.
    +ISODD			= ЕНЕЧЁТ				##	Возвращает значение ИСТИНА, если значение аргумента является нечетным числом.
    +ISREF			= ЕССЫЛКА				##	Возвращает значение ИСТИНА, если значение аргумента является ссылкой.
    +ISTEXT			= ЕТЕКСТ				##	Возвращает значение ИСТИНА, если значение аргумента является текстом.
    +N			= Ч					##	Возвращает значение, преобразованное в число.
    +NA			= НД					##	Возвращает значение ошибки #Н/Д.
    +TYPE			= ТИП					##	Возвращает число, обозначающее тип данных значения.
    +
    +
    +##
    +##	Logical functions					Логические функции
    +##
    +AND			= И					##	Renvoie VRAI si tous ses arguments sont VRAI.
    +FALSE			= ЛОЖЬ					##	Возвращает логическое значение ЛОЖЬ.
    +IF			= ЕСЛИ					##	Выполняет проверку условия.
    +IFERROR			= ЕСЛИОШИБКА				##	Возвращает введённое значение, если вычисление по формуле вызывает ошибку; в противном случае функция возвращает результат вычисления.
    +NOT			= НЕ					##	Меняет логическое значение своего аргумента на противоположное.
    +OR			= ИЛИ					##	Возвращает значение ИСТИНА, если хотя бы один аргумент имеет значение ИСТИНА.
    +TRUE			= ИСТИНА				##	Возвращает логическое значение ИСТИНА.
    +
    +
    +##
    +##	Lookup and reference functions				Функции ссылки и поиска
    +##
    +ADDRESS			= АДРЕС					##	Возвращает ссылку на отдельную ячейку листа в виде текста.
    +AREAS			= ОБЛАСТИ				##	Возвращает количество областей в ссылке.
    +CHOOSE			= ВЫБОР					##	Выбирает значение из списка значений по индексу.
    +COLUMN			= СТОЛБЕЦ				##	Возвращает номер столбца, на который указывает ссылка.
    +COLUMNS			= ЧИСЛСТОЛБ				##	Возвращает количество столбцов в ссылке.
    +HLOOKUP			= ГПР					##	Ищет в первой строке массива и возвращает значение отмеченной ячейки
    +HYPERLINK		= ГИПЕРССЫЛКА				##	Создает ссылку, открывающую документ, который находится на сервере сети, в интрасети или в Интернете.
    +INDEX			= ИНДЕКС				##	Использует индекс для выбора значения из ссылки или массива.
    +INDIRECT		= ДВССЫЛ				##	Возвращает ссылку, заданную текстовым значением.
    +LOOKUP			= ПРОСМОТР				##	Ищет значения в векторе или массиве.
    +MATCH			= ПОИСКПОЗ				##	Ищет значения в ссылке или массиве.
    +OFFSET			= СМЕЩ					##	Возвращает смещение ссылки относительно заданной ссылки.
    +ROW			= СТРОКА				##	Возвращает номер строки, определяемой ссылкой.
    +ROWS			= ЧСТРОК				##	Возвращает количество строк в ссылке.
    +RTD			= ДРВ					##	Извлекает данные реального времени из программ, поддерживающих автоматизацию COM (Программирование объектов. Стандартное средство для работы с объектами некоторого приложения из другого приложения или средства разработки. Программирование объектов (ранее называемое программированием OLE) является функцией модели COM (Component Object Model, модель компонентных объектов).).
    +TRANSPOSE		= ТРАНСП				##	Возвращает транспонированный массив.
    +VLOOKUP			= ВПР					##	Ищет значение в первом столбце массива и возвращает значение из ячейки в найденной строке и указанном столбце.
    +
    +
    +##
    +##	Math and trigonometry functions				Математические и тригонометрические функции
    +##
    +ABS			= ABS					##	Возвращает модуль (абсолютную величину) числа.
    +ACOS			= ACOS					##	Возвращает арккосинус числа.
    +ACOSH			= ACOSH					##	Возвращает гиперболический арккосинус числа.
    +ASIN			= ASIN					##	Возвращает арксинус числа.
    +ASINH			= ASINH					##	Возвращает гиперболический арксинус числа.
    +ATAN			= ATAN					##	Возвращает арктангенс числа.
    +ATAN2			= ATAN2					##	Возвращает арктангенс для заданных координат x и y.
    +ATANH			= ATANH					##	Возвращает гиперболический арктангенс числа.
    +CEILING			= ОКРВВЕРХ				##	Округляет число до ближайшего целого или до ближайшего кратного указанному значению.
    +COMBIN			= ЧИСЛКОМБ				##	Возвращает количество комбинаций для заданного числа объектов.
    +COS			= COS					##	Возвращает косинус числа.
    +COSH			= COSH					##	Возвращает гиперболический косинус числа.
    +DEGREES			= ГРАДУСЫ				##	Преобразует радианы в градусы.
    +EVEN			= ЧЁТН					##	Округляет число до ближайшего четного целого.
    +EXP			= EXP					##	Возвращает число e, возведенное в указанную степень.
    +FACT			= ФАКТР					##	Возвращает факториал числа.
    +FACTDOUBLE		= ДВФАКТР				##	Возвращает двойной факториал числа.
    +FLOOR			= ОКРВНИЗ				##	Округляет число до ближайшего меньшего по модулю значения.
    +GCD			= НОД					##	Возвращает наибольший общий делитель.
    +INT			= ЦЕЛОЕ					##	Округляет число до ближайшего меньшего целого.
    +LCM			= НОК					##	Возвращает наименьшее общее кратное.
    +LN			= LN					##	Возвращает натуральный логарифм числа.
    +LOG			= LOG					##	Возвращает логарифм числа по заданному основанию.
    +LOG10			= LOG10					##	Возвращает десятичный логарифм числа.
    +MDETERM			= МОПРЕД				##	Возвращает определитель матрицы массива.
    +MINVERSE		= МОБР					##	Возвращает обратную матрицу массива.
    +MMULT			= МУМНОЖ				##	Возвращает произведение матриц двух массивов.
    +MOD			= ОСТАТ					##	Возвращает остаток от деления.
    +MROUND			= ОКРУГЛТ				##	Возвращает число, округленное с требуемой точностью.
    +MULTINOMIAL		= МУЛЬТИНОМ				##	Возвращает мультиномиальный коэффициент множества чисел.
    +ODD			= НЕЧЁТ					##	Округляет число до ближайшего нечетного целого.
    +PI			= ПИ					##	Возвращает число пи.
    +POWER			= СТЕПЕНЬ				##	Возвращает результат возведения числа в степень.
    +PRODUCT			= ПРОИЗВЕД				##	Возвращает произведение аргументов.
    +QUOTIENT		= ЧАСТНОЕ				##	Возвращает целую часть частного при делении.
    +RADIANS			= РАДИАНЫ				##	Преобразует градусы в радианы.
    +RAND			= СЛЧИС					##	Возвращает случайное число в интервале от 0 до 1.
    +RANDBETWEEN		= СЛУЧМЕЖДУ				##	Возвращает случайное число в интервале между двумя заданными числами.
    +ROMAN			= РИМСКОЕ				##	Преобразует арабские цифры в римские в виде текста.
    +ROUND			= ОКРУГЛ				##	Округляет число до указанного количества десятичных разрядов.
    +ROUNDDOWN		= ОКРУГЛВНИЗ				##	Округляет число до ближайшего меньшего по модулю значения.
    +ROUNDUP			= ОКРУГЛВВЕРХ				##	Округляет число до ближайшего большего по модулю значения.
    +SERIESSUM		= РЯД.СУММ				##	Возвращает сумму степенного ряда, вычисленную по формуле.
    +SIGN			= ЗНАК					##	Возвращает знак числа.
    +SIN			= SIN					##	Возвращает синус заданного угла.
    +SINH			= SINH					##	Возвращает гиперболический синус числа.
    +SQRT			= КОРЕНЬ				##	Возвращает положительное значение квадратного корня.
    +SQRTPI			= КОРЕНЬПИ				##	Возвращает квадратный корень из значения выражения (число * ПИ).
    +SUBTOTAL		= ПРОМЕЖУТОЧНЫЕ.ИТОГИ			##	Возвращает промежуточный итог в списке или базе данных.
    +SUM			= СУММ					##	Суммирует аргументы.
    +SUMIF			= СУММЕСЛИ				##	Суммирует ячейки, удовлетворяющие заданному условию.
    +SUMIFS			= СУММЕСЛИМН				##	Суммирует диапазон ячеек, удовлетворяющих нескольким условиям.
    +SUMPRODUCT		= СУММПРОИЗВ				##	Возвращает сумму произведений соответствующих элементов массивов.
    +SUMSQ			= СУММКВ				##	Возвращает сумму квадратов аргументов.
    +SUMX2MY2		= СУММРАЗНКВ				##	Возвращает сумму разностей квадратов соответствующих значений в двух массивах.
    +SUMX2PY2		= СУММСУММКВ				##	Возвращает сумму сумм квадратов соответствующих элементов двух массивов.
    +SUMXMY2			= СУММКВРАЗН				##	Возвращает сумму квадратов разностей соответствующих значений в двух массивах.
    +TAN			= TAN					##	Возвращает тангенс числа.
    +TANH			= TANH					##	Возвращает гиперболический тангенс числа.
    +TRUNC			= ОТБР					##	Отбрасывает дробную часть числа.
    +
    +
    +##
    +##	Statistical functions					Статистические функции
    +##
    +AVEDEV			= СРОТКЛ				##	Возвращает среднее арифметическое абсолютных значений отклонений точек данных от среднего.
    +AVERAGE			= СРЗНАЧ				##	Возвращает среднее арифметическое аргументов.
    +AVERAGEA		= СРЗНАЧА				##	Возвращает среднее арифметическое аргументов, включая числа, текст и логические значения.
    +AVERAGEIF		= СРЗНАЧЕСЛИ 				##	Возвращает среднее значение (среднее арифметическое) всех ячеек в диапазоне, которые удовлетворяют данному условию.
    +AVERAGEIFS		= СРЗНАЧЕСЛИМН 				##	Возвращает среднее значение (среднее арифметическое) всех ячеек, которые удовлетворяют нескольким условиям.
    +BETADIST		= БЕТАРАСП				##	Возвращает интегральную функцию бета-распределения.
    +BETAINV			= БЕТАОБР				##	Возвращает обратную интегральную функцию указанного бета-распределения.
    +BINOMDIST		= БИНОМРАСП				##	Возвращает отдельное значение биномиального распределения.
    +CHIDIST			= ХИ2РАСП				##	Возвращает одностороннюю вероятность распределения хи-квадрат.
    +CHIINV			= ХИ2ОБР				##	Возвращает обратное значение односторонней вероятности распределения хи-квадрат.
    +CHITEST			= ХИ2ТЕСТ				##	Возвращает тест на независимость.
    +CONFIDENCE		= ДОВЕРИТ				##	Возвращает доверительный интервал для среднего значения по генеральной совокупности.
    +CORREL			= КОРРЕЛ				##	Возвращает коэффициент корреляции между двумя множествами данных.
    +COUNT			= СЧЁТ					##	Подсчитывает количество чисел в списке аргументов.
    +COUNTA			= СЧЁТЗ					##	Подсчитывает количество значений в списке аргументов.
    +COUNTBLANK		= СЧИТАТЬПУСТОТЫ			##	Подсчитывает количество пустых ячеек в диапазоне
    +COUNTIF			= СЧЁТЕСЛИ 				##	Подсчитывает количество ячеек в диапазоне, удовлетворяющих заданному условию
    +COUNTIFS		= СЧЁТЕСЛИМН				##	Подсчитывает количество ячеек внутри диапазона, удовлетворяющих нескольким условиям.
    +COVAR			= КОВАР					##	Возвращает ковариацию, среднее произведений парных отклонений
    +CRITBINOM		= КРИТБИНОМ				##	Возвращает наименьшее значение, для которого интегральное биномиальное распределение меньше или равно заданному критерию.
    +DEVSQ			= КВАДРОТКЛ				##	Возвращает сумму квадратов отклонений.
    +EXPONDIST		= ЭКСПРАСП				##	Возвращает экспоненциальное распределение.
    +FDIST			= FРАСП					##	Возвращает F-распределение вероятности.
    +FINV			= FРАСПОБР				##	Возвращает обратное значение для F-распределения вероятности.
    +FISHER			= ФИШЕР					##	Возвращает преобразование Фишера.
    +FISHERINV		= ФИШЕРОБР				##	Возвращает обратное преобразование Фишера.
    +FORECAST		= ПРЕДСКАЗ				##	Возвращает значение линейного тренда.
    +FREQUENCY		= ЧАСТОТА				##	Возвращает распределение частот в виде вертикального массива.
    +FTEST			= ФТЕСТ					##	Возвращает результат F-теста.
    +GAMMADIST		= ГАММАРАСП				##	Возвращает гамма-распределение.
    +GAMMAINV		= ГАММАОБР				##	Возвращает обратное гамма-распределение.
    +GAMMALN			= ГАММАНЛОГ				##	Возвращает натуральный логарифм гамма функции, Γ(x).
    +GEOMEAN			= СРГЕОМ				##	Возвращает среднее геометрическое.
    +GROWTH			= РОСТ					##	Возвращает значения в соответствии с экспоненциальным трендом.
    +HARMEAN			= СРГАРМ				##	Возвращает среднее гармоническое.
    +HYPGEOMDIST		= ГИПЕРГЕОМЕТ				##	Возвращает гипергеометрическое распределение.
    +INTERCEPT		= ОТРЕЗОК				##	Возвращает отрезок, отсекаемый на оси линией линейной регрессии.
    +KURT			= ЭКСЦЕСС				##	Возвращает эксцесс множества данных.
    +LARGE			= НАИБОЛЬШИЙ				##	Возвращает k-ое наибольшее значение в множестве данных.
    +LINEST			= ЛИНЕЙН				##	Возвращает параметры линейного тренда.
    +LOGEST			= ЛГРФПРИБЛ				##	Возвращает параметры экспоненциального тренда.
    +LOGINV			= ЛОГНОРМОБР				##	Возвращает обратное логарифмическое нормальное распределение.
    +LOGNORMDIST		= ЛОГНОРМРАСП				##	Возвращает интегральное логарифмическое нормальное распределение.
    +MAX			= МАКС					##	Возвращает наибольшее значение в списке аргументов.
    +MAXA			= МАКСА					##	Возвращает наибольшее значение в списке аргументов, включая числа, текст и логические значения.
    +MEDIAN			= МЕДИАНА				##	Возвращает медиану заданных чисел.
    +MIN			= МИН					##	Возвращает наименьшее значение в списке аргументов.
    +MINA			= МИНА					##	Возвращает наименьшее значение в списке аргументов, включая числа, текст и логические значения.
    +MODE			= МОДА					##	Возвращает значение моды множества данных.
    +NEGBINOMDIST		= ОТРБИНОМРАСП				##	Возвращает отрицательное биномиальное распределение.
    +NORMDIST		= НОРМРАСП				##	Возвращает нормальную функцию распределения.
    +NORMINV			= НОРМОБР				##	Возвращает обратное нормальное распределение.
    +NORMSDIST		= НОРМСТРАСП				##	Возвращает стандартное нормальное интегральное распределение.
    +NORMSINV		= НОРМСТОБР				##	Возвращает обратное значение стандартного нормального распределения.
    +PEARSON			= ПИРСОН				##	Возвращает коэффициент корреляции Пирсона.
    +PERCENTILE		= ПЕРСЕНТИЛЬ				##	Возвращает k-ую персентиль для значений диапазона.
    +PERCENTRANK		= ПРОЦЕНТРАНГ				##	Возвращает процентную норму значения в множестве данных.
    +PERMUT			= ПЕРЕСТ				##	Возвращает количество перестановок для заданного числа объектов.
    +POISSON			= ПУАССОН				##	Возвращает распределение Пуассона.
    +PROB			= ВЕРОЯТНОСТЬ				##	Возвращает вероятность того, что значение из диапазона находится внутри заданных пределов.
    +QUARTILE		= КВАРТИЛЬ				##	Возвращает квартиль множества данных.
    +RANK			= РАНГ					##	Возвращает ранг числа в списке чисел.
    +RSQ			= КВПИРСОН				##	Возвращает квадрат коэффициента корреляции Пирсона.
    +SKEW			= СКОС					##	Возвращает асимметрию распределения.
    +SLOPE			= НАКЛОН				##	Возвращает наклон линии линейной регрессии.
    +SMALL			= НАИМЕНЬШИЙ				##	Возвращает k-ое наименьшее значение в множестве данных.
    +STANDARDIZE		= НОРМАЛИЗАЦИЯ				##	Возвращает нормализованное значение.
    +STDEV			= СТАНДОТКЛОН				##	Оценивает стандартное отклонение по выборке.
    +STDEVA			= СТАНДОТКЛОНА				##	Оценивает стандартное отклонение по выборке, включая числа, текст и логические значения.
    +STDEVP			= СТАНДОТКЛОНП				##	Вычисляет стандартное отклонение по генеральной совокупности.
    +STDEVPA			= СТАНДОТКЛОНПА				##	Вычисляет стандартное отклонение по генеральной совокупности, включая числа, текст и логические значения.
    +STEYX			= СТОШYX				##	Возвращает стандартную ошибку предсказанных значений y для каждого значения x в регрессии.
    +TDIST			= СТЬЮДРАСП				##	Возвращает t-распределение Стьюдента.
    +TINV			= СТЬЮДРАСПОБР				##	Возвращает обратное t-распределение Стьюдента.
    +TREND			= ТЕНДЕНЦИЯ				##	Возвращает значения в соответствии с линейным трендом.
    +TRIMMEAN		= УРЕЗСРЕДНЕЕ				##	Возвращает среднее внутренности множества данных.
    +TTEST			= ТТЕСТ					##	Возвращает вероятность, соответствующую критерию Стьюдента.
    +VAR			= ДИСП					##	Оценивает дисперсию по выборке.
    +VARA			= ДИСПА					##	Оценивает дисперсию по выборке, включая числа, текст и логические значения.
    +VARP			= ДИСПР					##	Вычисляет дисперсию для генеральной совокупности.
    +VARPA			= ДИСПРА				##	Вычисляет дисперсию для генеральной совокупности, включая числа, текст и логические значения.
    +WEIBULL			= ВЕЙБУЛЛ				##	Возвращает распределение Вейбулла.
    +ZTEST			= ZТЕСТ					##	Возвращает двустороннее P-значение z-теста.
    +
    +
    +##
    +##	Text functions						Текстовые функции
    +##
    +ASC			= ASC					##	Для языков с двухбайтовыми наборами знаков (например, катакана) преобразует полноширинные (двухбайтовые) знаки в полуширинные (однобайтовые).
    +BAHTTEXT		= БАТТЕКСТ				##	Преобразует число в текст, используя денежный формат ß (БАТ).
    +CHAR			= СИМВОЛ				##	Возвращает знак с заданным кодом.
    +CLEAN			= ПЕЧСИМВ				##	Удаляет все непечатаемые знаки из текста.
    +CODE			= КОДСИМВ				##	Возвращает числовой код первого знака в текстовой строке.
    +CONCATENATE		= СЦЕПИТЬ				##	Объединяет несколько текстовых элементов в один.
    +DOLLAR			= РУБЛЬ					##	Преобразует число в текст, используя денежный формат.
    +EXACT			= СОВПАД				##	Проверяет идентичность двух текстовых значений.
    +FIND			= НАЙТИ					##	Ищет вхождения одного текстового значения в другом (с учетом регистра).
    +FINDB			= НАЙТИБ				##	Ищет вхождения одного текстового значения в другом (с учетом регистра).
    +FIXED			= ФИКСИРОВАННЫЙ				##	Форматирует число и преобразует его в текст с заданным числом десятичных знаков.
    +JIS			= JIS					##	Для языков с двухбайтовыми наборами знаков (например, катакана) преобразует полуширинные (однобайтовые) знаки в текстовой строке в полноширинные (двухбайтовые).
    +LEFT			= ЛЕВСИМВ				##	Возвращает крайние слева знаки текстового значения.
    +LEFTB			= ЛЕВБ					##	Возвращает крайние слева знаки текстового значения.
    +LEN			= ДЛСТР					##	Возвращает количество знаков в текстовой строке.
    +LENB			= ДЛИНБ					##	Возвращает количество знаков в текстовой строке.
    +LOWER			= СТРОЧН				##	Преобразует все буквы текста в строчные.
    +MID			= ПСТР					##	Возвращает заданное число знаков из строки текста, начиная с указанной позиции.
    +MIDB			= ПСТРБ					##	Возвращает заданное число знаков из строки текста, начиная с указанной позиции.
    +PHONETIC		= PHONETIC				##	Извлекает фонетические (фуригана) знаки из текстовой строки.
    +PROPER			= ПРОПНАЧ				##	Преобразует первую букву в каждом слове текста в прописную.
    +REPLACE			= ЗАМЕНИТЬ				##	Заменяет знаки в тексте.
    +REPLACEB		= ЗАМЕНИТЬБ				##	Заменяет знаки в тексте.
    +REPT			= ПОВТОР				##	Повторяет текст заданное число раз.
    +RIGHT			= ПРАВСИМВ				##	Возвращает крайние справа знаки текстовой строки.
    +RIGHTB			= ПРАВБ					##	Возвращает крайние справа знаки текстовой строки.
    +SEARCH			= ПОИСК					##	Ищет вхождения одного текстового значения в другом (без учета регистра).
    +SEARCHB			= ПОИСКБ				##	Ищет вхождения одного текстового значения в другом (без учета регистра).
    +SUBSTITUTE		= ПОДСТАВИТЬ				##	Заменяет в текстовой строке старый текст новым.
    +T			= Т					##	Преобразует аргументы в текст.
    +TEXT			= ТЕКСТ					##	Форматирует число и преобразует его в текст.
    +TRIM			= СЖПРОБЕЛЫ				##	Удаляет из текста пробелы.
    +UPPER			= ПРОПИСН				##	Преобразует все буквы текста в прописные.
    +VALUE			= ЗНАЧЕН				##	Преобразует текстовый аргумент в число.
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/sv/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/sv/config
    new file mode 100644
    index 00000000000..bf72cc4f125
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/sv/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= kr
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #Skärning!
    +DIV0	= #Division/0!
    +VALUE	= #Värdefel!
    +REF	= #Referens!
    +NAME	= #Namn?
    +NUM	= #Ogiltigt!
    +NA	= #Saknas!
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/sv/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/sv/functions
    new file mode 100644
    index 00000000000..73b2deb5eb2
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/sv/functions
    @@ -0,0 +1,408 @@
    +##
    +##	Add-in and Automation functions			Tilläggs- och automatiseringsfunktioner
    +##
    +GETPIVOTDATA		= HÄMTA.PIVOTDATA		##	Returnerar data som lagrats i en pivottabellrapport
    +
    +
    +##
    +##	Cube functions					Kubfunktioner
    +##
    +CUBEKPIMEMBER		= KUBKPIMEDLEM			##	Returnerar namn, egenskap och mått för en KPI och visar namnet och egenskapen i cellen. En KPI, eller prestandaindikator, är ett kvantifierbart mått, t.ex. månatlig bruttovinst eller personalomsättning per kvartal, som används för att analysera ett företags resultat.
    +CUBEMEMBER		= KUBMEDLEM			##	Returnerar en medlem eller ett par i en kubhierarki. Används för att verifiera att medlemmen eller paret finns i kuben.
    +CUBEMEMBERPROPERTY	= KUBMEDLEMSEGENSKAP		##	Returnerar värdet för en medlemsegenskap i kuben. Används för att verifiera att ett medlemsnamn finns i kuben, samt för att returnera den angivna egenskapen för medlemmen.
    +CUBERANKEDMEMBER	= KUBRANGORDNADMEDLEM		##	Returnerar den n:te, eller rangordnade, medlemmen i en uppsättning. Används för att returnera ett eller flera element i en uppsättning, till exempelvis den bästa försäljaren eller de tio bästa eleverna.
    +CUBESET			= KUBINSTÄLLNING		##	Definierar en beräknad uppsättning medlemmar eller par genom att skicka ett bestämt uttryck till kuben på servern, som skapar uppsättningen och sedan returnerar den till Microsoft Office Excel.
    +CUBESETCOUNT		= KUBINSTÄLLNINGANTAL		##	Returnerar antalet objekt i en uppsättning.
    +CUBEVALUE		= KUBVÄRDE			##	Returnerar ett mängdvärde från en kub.
    +
    +
    +##
    +##	Database functions				Databasfunktioner
    +##
    +DAVERAGE		= DMEDEL			##	Returnerar medelvärdet av databasposterna
    +DCOUNT			= DANTAL			##	Räknar antalet celler som innehåller tal i en databas
    +DCOUNTA			= DANTALV			##	Räknar ifyllda celler i en databas
    +DGET			= DHÄMTA			##	Hämtar en enstaka post från en databas som uppfyller de angivna villkoren
    +DMAX			= DMAX				##	Returnerar det största värdet från databasposterna
    +DMIN			= DMIN				##	Returnerar det minsta värdet från databasposterna
    +DPRODUCT		= DPRODUKT			##	Multiplicerar värdena i ett visst fält i poster som uppfyller villkoret
    +DSTDEV			= DSTDAV			##	Uppskattar standardavvikelsen baserat på ett urval av databasposterna
    +DSTDEVP			= DSTDAVP			##	Beräknar standardavvikelsen utifrån hela populationen av valda databasposter
    +DSUM			= DSUMMA			##	Summerar talen i kolumnfält i databasposter som uppfyller villkoret
    +DVAR			= DVARIANS			##	Uppskattar variansen baserat på ett urval av databasposterna
    +DVARP			= DVARIANSP			##	Beräknar variansen utifrån hela populationen av valda databasposter
    +
    +
    +##
    +##	Date and time functions				Tid- och datumfunktioner
    +##
    +DATE			= DATUM				##	Returnerar ett serienummer för ett visst datum
    +DATEVALUE		= DATUMVÄRDE			##	Konverterar ett datum i textformat till ett serienummer
    +DAY			= DAG				##	Konverterar ett serienummer till dag i månaden
    +DAYS360			= DAGAR360			##	Beräknar antalet dagar mellan två datum baserat på ett 360-dagarsår
    +EDATE			= EDATUM			##	Returnerar serienumret för ett datum som infaller ett visst antal månader före eller efter startdatumet
    +EOMONTH			= SLUTMÅNAD			##	Returnerar serienumret för sista dagen i månaden ett visst antal månader tidigare eller senare
    +HOUR			= TIMME				##	Konverterar ett serienummer till en timme
    +MINUTE			= MINUT				##	Konverterar ett serienummer till en minut
    +MONTH			= MÅNAD				##	Konverterar ett serienummer till en månad
    +NETWORKDAYS		= NETTOARBETSDAGAR		##	Returnerar antalet hela arbetsdagar mellan två datum
    +NOW			= NU				##	Returnerar serienumret för dagens datum och aktuell tid
    +SECOND			= SEKUND			##	Konverterar ett serienummer till en sekund
    +TIME			= KLOCKSLAG			##	Returnerar serienumret för en viss tid
    +TIMEVALUE		= TIDVÄRDE			##	Konverterar en tid i textformat till ett serienummer
    +TODAY			= IDAG				##	Returnerar serienumret för dagens datum
    +WEEKDAY			= VECKODAG			##	Konverterar ett serienummer till en dag i veckan
    +WEEKNUM			= VECKONR			##	Konverterar ett serienummer till ett veckonummer
    +WORKDAY			= ARBETSDAGAR			##	Returnerar serienumret för ett datum ett visst antal arbetsdagar tidigare eller senare
    +YEAR			= ÅR				##	Konverterar ett serienummer till ett år
    +YEARFRAC		= ÅRDEL				##	Returnerar en del av ett år som representerar antalet hela dagar mellan start- och slutdatum
    +
    +
    +##
    +##	Engineering functions				Tekniska funktioner
    +##
    +BESSELI			= BESSELI			##	Returnerar den modifierade Bessel-funktionen In(x)
    +BESSELJ			= BESSELJ			##	Returnerar Bessel-funktionen Jn(x)
    +BESSELK			= BESSELK			##	Returnerar den modifierade Bessel-funktionen Kn(x)
    +BESSELY			= BESSELY			##	Returnerar Bessel-funktionen Yn(x)
    +BIN2DEC			= BIN.TILL.DEC			##	Omvandlar ett binärt tal till decimalt
    +BIN2HEX			= BIN.TILL.HEX			##	Omvandlar ett binärt tal till hexadecimalt
    +BIN2OCT			= BIN.TILL.OKT			##	Omvandlar ett binärt tal till oktalt
    +COMPLEX			= KOMPLEX			##	Omvandlar reella och imaginära koefficienter till ett komplext tal
    +CONVERT			= KONVERTERA			##	Omvandlar ett tal från ett måttsystem till ett annat
    +DEC2BIN			= DEC.TILL.BIN			##	Omvandlar ett decimalt tal till binärt
    +DEC2HEX			= DEC.TILL.HEX			##	Omvandlar ett decimalt tal till hexadecimalt
    +DEC2OCT			= DEC.TILL.OKT			##	Omvandlar ett decimalt tal till oktalt
    +DELTA			= DELTA				##	Testar om två värden är lika
    +ERF			= FELF				##	Returnerar felfunktionen
    +ERFC			= FELFK				##	Returnerar den komplementära felfunktionen
    +GESTEP			= SLSTEG			##	Testar om ett tal är större än ett tröskelvärde
    +HEX2BIN			= HEX.TILL.BIN			##	Omvandlar ett hexadecimalt tal till binärt
    +HEX2DEC			= HEX.TILL.DEC			##	Omvandlar ett hexadecimalt tal till decimalt
    +HEX2OCT			= HEX.TILL.OKT			##	Omvandlar ett hexadecimalt tal till oktalt
    +IMABS			= IMABS				##	Returnerar absolutvärdet (modulus) för ett komplext tal
    +IMAGINARY		= IMAGINÄR			##	Returnerar den imaginära koefficienten för ett komplext tal
    +IMARGUMENT		= IMARGUMENT			##	Returnerar det komplexa talets argument, en vinkel uttryckt i radianer
    +IMCONJUGATE		= IMKONJUGAT			##	Returnerar det komplexa talets konjugat
    +IMCOS			= IMCOS				##	Returnerar cosinus för ett komplext tal
    +IMDIV			= IMDIV				##	Returnerar kvoten för två komplexa tal
    +IMEXP			= IMEUPPHÖJT			##	Returnerar exponenten för ett komplext tal
    +IMLN			= IMLN				##	Returnerar den naturliga logaritmen för ett komplext tal
    +IMLOG10			= IMLOG10			##	Returnerar 10-logaritmen för ett komplext tal
    +IMLOG2			= IMLOG2			##	Returnerar 2-logaritmen för ett komplext tal
    +IMPOWER			= IMUPPHÖJT			##	Returnerar ett komplext tal upphöjt till en exponent
    +IMPRODUCT		= IMPRODUKT			##	Returnerar produkten av komplexa tal
    +IMREAL			= IMREAL			##	Returnerar den reella koefficienten för ett komplext tal
    +IMSIN			= IMSIN				##	Returnerar sinus för ett komplext tal
    +IMSQRT			= IMROT				##	Returnerar kvadratroten av ett komplext tal
    +IMSUB			= IMDIFF			##	Returnerar differensen mellan två komplexa tal
    +IMSUM			= IMSUM				##	Returnerar summan av komplexa tal
    +OCT2BIN			= OKT.TILL.BIN			##	Omvandlar ett oktalt tal till binärt
    +OCT2DEC			= OKT.TILL.DEC			##	Omvandlar ett oktalt tal till decimalt
    +OCT2HEX			= OKT.TILL.HEX			##	Omvandlar ett oktalt tal till hexadecimalt
    +
    +
    +##
    +##	Financial functions				Finansiella funktioner
    +##
    +ACCRINT			= UPPLRÄNTA			##	Returnerar den upplupna räntan för värdepapper med periodisk ränta
    +ACCRINTM		= UPPLOBLRÄNTA			##	Returnerar den upplupna räntan för ett värdepapper som ger avkastning på förfallodagen
    +AMORDEGRC		= AMORDEGRC			##	Returnerar avskrivningen för varje redovisningsperiod med hjälp av en avskrivningskoefficient
    +AMORLINC		= AMORLINC			##	Returnerar avskrivningen för varje redovisningsperiod
    +COUPDAYBS		= KUPDAGBB			##	Returnerar antal dagar från början av kupongperioden till likviddagen
    +COUPDAYS		= KUPDAGARS			##	Returnerar antalet dagar i kupongperioden som innehåller betalningsdatumet
    +COUPDAYSNC		= KUPDAGNK			##	Returnerar antalet dagar från betalningsdatumet till nästa kupongdatum
    +COUPNCD			= KUPNKD			##	Returnerar nästa kupongdatum efter likviddagen
    +COUPNUM			= KUPANT			##	Returnerar kuponger som förfaller till betalning mellan likviddagen och förfallodagen
    +COUPPCD			= KUPFKD			##	Returnerar föregående kupongdatum före likviddagen
    +CUMIPMT			= KUMRÄNTA			##	Returnerar den ackumulerade räntan som betalats mellan två perioder
    +CUMPRINC		= KUMPRIS			##	Returnerar det ackumulerade kapitalbeloppet som betalats på ett lån mellan två perioder
    +DB			= DB				##	Returnerar avskrivningen för en tillgång under en angiven tid enligt metoden för fast degressiv avskrivning
    +DDB			= DEGAVSKR			##	Returnerar en tillgångs värdeminskning under en viss period med hjälp av dubbel degressiv avskrivning eller någon annan metod som du anger
    +DISC			= DISK				##	Returnerar diskonteringsräntan för ett värdepapper
    +DOLLARDE		= DECTAL			##	Omvandlar ett pris uttryckt som ett bråk till ett decimaltal
    +DOLLARFR		= BRÅK				##	Omvandlar ett pris i kronor uttryckt som ett decimaltal till ett bråk
    +DURATION		= LÖPTID			##	Returnerar den årliga löptiden för en säkerhet med periodiska räntebetalningar
    +EFFECT			= EFFRÄNTA			##	Returnerar den årliga effektiva räntesatsen
    +FV			= SLUTVÄRDE			##	Returnerar det framtida värdet på en investering
    +FVSCHEDULE		= FÖRRÄNTNING			##	Returnerar det framtida värdet av ett begynnelsekapital beräknat på olika räntenivåer
    +INTRATE			= ÅRSRÄNTA			##	Returnerar räntesatsen för ett betalt värdepapper
    +IPMT			= RBETALNING			##	Returnerar räntedelen av en betalning för en given period
    +IRR			= IR				##	Returnerar internräntan för en serie betalningar
    +ISPMT			= RALÅN				##	Beräknar räntan som har betalats under en specifik betalningsperiod
    +MDURATION		= MLÖPTID			##	Returnerar den modifierade Macauley-löptiden för ett värdepapper med det antagna nominella värdet 100 kr
    +MIRR			= MODIR				##	Returnerar internräntan där positiva och negativa betalningar finansieras med olika räntor
    +NOMINAL			= NOMRÄNTA			##	Returnerar den årliga nominella räntesatsen
    +NPER			= PERIODER			##	Returnerar antalet perioder för en investering
    +NPV			= NETNUVÄRDE			##	Returnerar nuvärdet av en serie periodiska betalningar vid en given diskonteringsränta
    +ODDFPRICE		= UDDAFPRIS			##	Returnerar priset per 100 kr nominellt värde för ett värdepapper med en udda första period
    +ODDFYIELD		= UDDAFAVKASTNING		##	Returnerar avkastningen för en säkerhet med en udda första period
    +ODDLPRICE		= UDDASPRIS			##	Returnerar priset per 100 kr nominellt värde för ett värdepapper med en udda sista period
    +ODDLYIELD		= UDDASAVKASTNING		##	Returnerar avkastningen för en säkerhet med en udda sista period
    +PMT			= BETALNING			##	Returnerar den periodiska betalningen för en annuitet
    +PPMT			= AMORT				##	Returnerar amorteringsdelen av en annuitetsbetalning för en given period
    +PRICE			= PRIS				##	Returnerar priset per 100 kr nominellt värde för ett värdepapper som ger periodisk ränta
    +PRICEDISC		= PRISDISK			##	Returnerar priset per 100 kr nominellt värde för ett diskonterat värdepapper
    +PRICEMAT		= PRISFÖRF			##	Returnerar priset per 100 kr nominellt värde för ett värdepapper som ger ränta på förfallodagen
    +PV			= PV				##	Returnerar nuvärdet av en serie lika stora periodiska betalningar
    +RATE			= RÄNTA				##	Returnerar räntesatsen per period i en annuitet
    +RECEIVED		= BELOPP			##	Returnerar beloppet som utdelas på förfallodagen för ett betalat värdepapper
    +SLN			= LINAVSKR			##	Returnerar den linjära avskrivningen för en tillgång under en period
    +SYD			= ÅRSAVSKR			##	Returnerar den årliga avskrivningssumman för en tillgång under en angiven period
    +TBILLEQ			= SSVXEKV			##	Returnerar avkastningen motsvarande en obligation för en statsskuldväxel
    +TBILLPRICE		= SSVXPRIS			##	Returnerar priset per 100 kr nominellt värde för en statsskuldväxel
    +TBILLYIELD		= SSVXRÄNTA			##	Returnerar avkastningen för en statsskuldväxel
    +VDB			= VDEGRAVSKR			##	Returnerar avskrivningen för en tillgång under en angiven period (med degressiv avskrivning)
    +XIRR			= XIRR				##	Returnerar internräntan för en serie betalningar som inte nödvändigtvis är periodiska
    +XNPV			= XNUVÄRDE			##	Returnerar det nuvarande nettovärdet för en serie betalningar som inte nödvändigtvis är periodiska
    +YIELD			= NOMAVK			##	Returnerar avkastningen för ett värdepapper som ger periodisk ränta
    +YIELDDISC		= NOMAVKDISK			##	Returnerar den årliga avkastningen för diskonterade värdepapper, exempelvis en statsskuldväxel
    +YIELDMAT		= NOMAVKFÖRF			##	Returnerar den årliga avkastningen för ett värdepapper som ger ränta på förfallodagen
    +
    +
    +##
    +##	Information functions				Informationsfunktioner
    +##
    +CELL			= CELL				##	Returnerar information om formatering, plats och innehåll i en cell
    +ERROR.TYPE		= FEL.TYP			##	Returnerar ett tal som motsvarar ett felvärde
    +INFO			= INFO				##	Returnerar information om operativsystemet
    +ISBLANK			= ÄRREF				##	Returnerar SANT om värdet är tomt
    +ISERR			= Ä				##	Returnerar SANT om värdet är ett felvärde annat än #SAKNAS!
    +ISERROR			= ÄRFEL				##	Returnerar SANT om värdet är ett felvärde
    +ISEVEN			= ÄRJÄMN			##	Returnerar SANT om talet är jämnt
    +ISLOGICAL		= ÄREJTEXT			##	Returnerar SANT om värdet är ett logiskt värde
    +ISNA			= ÄRLOGISK			##	Returnerar SANT om värdet är felvärdet #SAKNAS!
    +ISNONTEXT		= ÄRSAKNAD			##	Returnerar SANT om värdet inte är text
    +ISNUMBER		= ÄRTAL				##	Returnerar SANT om värdet är ett tal
    +ISODD			= ÄRUDDA			##	Returnerar SANT om talet är udda
    +ISREF			= ÄRTOM				##	Returnerar SANT om värdet är en referens
    +ISTEXT			= ÄRTEXT			##	Returnerar SANT om värdet är text
    +N			= N				##	Returnerar ett värde omvandlat till ett tal
    +NA			= SAKNAS			##	Returnerar felvärdet #SAKNAS!
    +TYPE			= VÄRDETYP			##	Returnerar ett tal som anger värdets datatyp
    +
    +
    +##
    +##	Logical functions				Logiska funktioner
    +##
    +AND			= OCH				##	Returnerar SANT om alla argument är sanna
    +FALSE			= FALSKT			##	Returnerar det logiska värdet FALSKT
    +IF			= OM				##	Anger vilket logiskt test som ska utföras
    +IFERROR			= OMFEL				##	Returnerar ett värde som du anger om en formel utvärderar till ett fel; annars returneras resultatet av formeln
    +NOT			= ICKE				##	Inverterar logiken för argumenten
    +OR			= ELLER				##	Returnerar SANT om något argument är SANT
    +TRUE			= SANT				##	Returnerar det logiska värdet SANT
    +
    +
    +##
    +##	Lookup and reference functions			Sök- och referensfunktioner
    +##
    +ADDRESS			= ADRESS			##	Returnerar en referens som text till en enstaka cell i ett kalkylblad
    +AREAS			= OMRÅDEN			##	Returnerar antalet områden i en referens
    +CHOOSE			= VÄLJ				##	Väljer ett värde i en lista över värden
    +COLUMN			= KOLUMN			##	Returnerar kolumnnumret för en referens
    +COLUMNS			= KOLUMNER			##	Returnerar antalet kolumner i en referens
    +HLOOKUP			= LETAKOLUMN			##	Söker i den översta raden i en matris och returnerar värdet för angiven cell
    +HYPERLINK		= HYPERLÄNK			##	Skapar en genväg eller ett hopp till ett dokument i nätverket, i ett intranät eller på Internet
    +INDEX			= INDEX				##	Använder ett index för ett välja ett värde i en referens eller matris
    +INDIRECT		= INDIREKT			##	Returnerar en referens som anges av ett textvärde
    +LOOKUP			= LETAUPP			##	Letar upp värden i en vektor eller matris
    +MATCH			= PASSA				##	Letar upp värden i en referens eller matris
    +OFFSET			= FÖRSKJUTNING			##	Returnerar en referens förskjuten i förhållande till en given referens
    +ROW			= RAD				##	Returnerar radnumret för en referens
    +ROWS			= RADER				##	Returnerar antalet rader i en referens
    +RTD			= RTD				##	Hämtar realtidsdata från ett program som stöder COM-automation (Automation: Ett sätt att arbeta med ett programs objekt från ett annat program eller utvecklingsverktyg. Detta kallades tidigare för OLE Automation, och är en branschstandard och ingår i Component Object Model (COM).)
    +TRANSPOSE		= TRANSPONERA			##	Transponerar en matris
    +VLOOKUP			= LETARAD			##	Letar i den första kolumnen i en matris och flyttar över raden för att returnera värdet för en cell
    +
    +
    +##
    +##	Math and trigonometry functions			Matematiska och trigonometriska funktioner
    +##
    +ABS			= ABS				##	Returnerar absolutvärdet av ett tal
    +ACOS			= ARCCOS			##	Returnerar arcus cosinus för ett tal
    +ACOSH			= ARCCOSH			##	Returnerar inverterad hyperbolisk cosinus för ett tal
    +ASIN			= ARCSIN			##	Returnerar arcus cosinus för ett tal
    +ASINH			= ARCSINH			##	Returnerar hyperbolisk arcus sinus för ett tal
    +ATAN			= ARCTAN			##	Returnerar arcus tangens för ett tal
    +ATAN2			= ARCTAN2			##	Returnerar arcus tangens för en x- och en y- koordinat
    +ATANH			= ARCTANH			##	Returnerar hyperbolisk arcus tangens för ett tal
    +CEILING			= RUNDA.UPP			##	Avrundar ett tal till närmaste heltal eller närmaste signifikanta multipel
    +COMBIN			= KOMBIN			##	Returnerar antalet kombinationer för ett givet antal objekt
    +COS			= COS				##	Returnerar cosinus för ett tal
    +COSH			= COSH				##	Returnerar hyperboliskt cosinus för ett tal
    +DEGREES			= GRADER			##	Omvandlar radianer till grader
    +EVEN			= JÄMN				##	Avrundar ett tal uppåt till närmaste heltal
    +EXP			= EXP				##	Returnerar e upphöjt till ett givet tal
    +FACT			= FAKULTET			##	Returnerar fakulteten för ett tal
    +FACTDOUBLE		= DUBBELFAKULTET		##	Returnerar dubbelfakulteten för ett tal
    +FLOOR			= RUNDA.NED			##	Avrundar ett tal nedåt mot noll
    +GCD			= SGD				##	Returnerar den största gemensamma nämnaren
    +INT			= HELTAL			##	Avrundar ett tal nedåt till närmaste heltal
    +LCM			= MGM				##	Returnerar den minsta gemensamma multipeln
    +LN			= LN				##	Returnerar den naturliga logaritmen för ett tal
    +LOG			= LOG				##	Returnerar logaritmen för ett tal för en given bas
    +LOG10			= LOG10				##	Returnerar 10-logaritmen för ett tal
    +MDETERM			= MDETERM			##	Returnerar matrisen som är avgörandet av en matris
    +MINVERSE		= MINVERT			##	Returnerar matrisinversen av en matris
    +MMULT			= MMULT				##	Returnerar matrisprodukten av två matriser
    +MOD			= REST				##	Returnerar resten vid en division
    +MROUND			= MAVRUNDA			##	Returnerar ett tal avrundat till en given multipel
    +MULTINOMIAL		= MULTINOMIAL			##	Returnerar multinomialen för en uppsättning tal
    +ODD			= UDDA				##	Avrundar ett tal uppåt till närmaste udda heltal
    +PI			= PI				##	Returnerar värdet pi
    +POWER			= UPPHÖJT.TILL			##	Returnerar resultatet av ett tal upphöjt till en exponent
    +PRODUCT			= PRODUKT			##	Multiplicerar argumenten
    +QUOTIENT		= KVOT				##	Returnerar heltalsdelen av en division
    +RADIANS			= RADIANER			##	Omvandlar grader till radianer
    +RAND			= SLUMP				##	Returnerar ett slumptal mellan 0 och 1
    +RANDBETWEEN		= SLUMP.MELLAN			##	Returnerar ett slumptal mellan de tal som du anger
    +ROMAN			= ROMERSK			##	Omvandlar vanliga (arabiska) siffror till romerska som text
    +ROUND			= AVRUNDA			##	Avrundar ett tal till ett angivet antal siffror
    +ROUNDDOWN		= AVRUNDA.NEDÅT			##	Avrundar ett tal nedåt mot noll
    +ROUNDUP			= AVRUNDA.UPPÅT			##	Avrundar ett tal uppåt, från noll
    +SERIESSUM		= SERIESUMMA			##	Returnerar summan av en potensserie baserat på formeln
    +SIGN			= TECKEN			##	Returnerar tecknet för ett tal
    +SIN			= SIN				##	Returnerar sinus för en given vinkel
    +SINH			= SINH				##	Returnerar hyperbolisk sinus för ett tal
    +SQRT			= ROT				##	Returnerar den positiva kvadratroten
    +SQRTPI			= ROTPI				##	Returnerar kvadratroten för (tal * pi)
    +SUBTOTAL		= DELSUMMA			##	Returnerar en delsumma i en lista eller databas
    +SUM			= SUMMA				##	Summerar argumenten
    +SUMIF			= SUMMA.OM			##	Summerar celler enligt ett angivet villkor
    +SUMIFS			= SUMMA.OMF			##	Lägger till cellerna i ett område som uppfyller flera kriterier
    +SUMPRODUCT		= PRODUKTSUMMA			##	Returnerar summan av produkterna i motsvarande matriskomponenter
    +SUMSQ			= KVADRATSUMMA			##	Returnerar summan av argumentens kvadrater
    +SUMX2MY2		= SUMMAX2MY2			##	Returnerar summan av differensen mellan kvadraterna för motsvarande värden i två matriser
    +SUMX2PY2		= SUMMAX2PY2			##	Returnerar summan av summan av kvadraterna av motsvarande värden i två matriser
    +SUMXMY2			= SUMMAXMY2			##	Returnerar summan av kvadraten av skillnaden mellan motsvarande värden i två matriser
    +TAN			= TAN				##	Returnerar tangens för ett tal
    +TANH			= TANH				##	Returnerar hyperbolisk tangens för ett tal
    +TRUNC			= AVKORTA			##	Avkortar ett tal till ett heltal
    +
    +
    +##
    +##	Statistical functions				Statistiska funktioner
    +##
    +AVEDEV			= MEDELAVV			##	Returnerar medelvärdet för datapunkters absoluta avvikelse från deras medelvärde
    +AVERAGE			= MEDEL				##	Returnerar medelvärdet av argumenten
    +AVERAGEA		= AVERAGEA			##	Returnerar medelvärdet av argumenten, inklusive tal, text och logiska värden
    +AVERAGEIF		= MEDELOM			##	Returnerar medelvärdet (aritmetiskt medelvärde) för alla celler i ett område som uppfyller ett givet kriterium
    +AVERAGEIFS		= MEDELOMF			##	Returnerar medelvärdet (det aritmetiska medelvärdet) för alla celler som uppfyller flera villkor.
    +BETADIST		= BETAFÖRD			##	Returnerar den kumulativa betafördelningsfunktionen
    +BETAINV			= BETAINV			##	Returnerar inversen till den kumulativa fördelningsfunktionen för en viss betafördelning
    +BINOMDIST		= BINOMFÖRD			##	Returnerar den individuella binomialfördelningen
    +CHIDIST			= CHI2FÖRD			##	Returnerar den ensidiga sannolikheten av c2-fördelningen
    +CHIINV			= CHI2INV			##	Returnerar inversen av chi2-fördelningen
    +CHITEST			= CHI2TEST			##	Returnerar oberoendetesten
    +CONFIDENCE		= KONFIDENS			##	Returnerar konfidensintervallet för en populations medelvärde
    +CORREL			= KORREL			##	Returnerar korrelationskoefficienten mellan två datamängder
    +COUNT			= ANTAL				##	Räknar hur många tal som finns bland argumenten
    +COUNTA			= ANTALV			##	Räknar hur många värden som finns bland argumenten
    +COUNTBLANK		= ANTAL.TOMMA			##	Räknar antalet tomma celler i ett område
    +COUNTIF			= ANTAL.OM			##	Räknar antalet celler i ett område som uppfyller angivna villkor.
    +COUNTIFS		= ANTAL.OMF			##	Räknar antalet celler i ett område som uppfyller flera villkor.
    +COVAR			= KOVAR				##	Returnerar kovariansen, d.v.s. medelvärdet av produkterna för parade avvikelser
    +CRITBINOM		= KRITBINOM			##	Returnerar det minsta värdet för vilket den kumulativa binomialfördelningen är mindre än eller lika med ett villkorsvärde
    +DEVSQ			= KVADAVV			##	Returnerar summan av kvadrater på avvikelser
    +EXPONDIST		= EXPONFÖRD			##	Returnerar exponentialfördelningen
    +FDIST			= FFÖRD				##	Returnerar F-sannolikhetsfördelningen
    +FINV			= FINV				##	Returnerar inversen till F-sannolikhetsfördelningen
    +FISHER			= FISHER			##	Returnerar Fisher-transformationen
    +FISHERINV		= FISHERINV			##	Returnerar inversen till Fisher-transformationen
    +FORECAST		= PREDIKTION			##	Returnerar ett värde längs en linjär trendlinje
    +FREQUENCY		= FREKVENS			##	Returnerar en frekvensfördelning som en lodrät matris
    +FTEST			= FTEST				##	Returnerar resultatet av en F-test
    +GAMMADIST		= GAMMAFÖRD			##	Returnerar gammafördelningen
    +GAMMAINV		= GAMMAINV			##	Returnerar inversen till den kumulativa gammafördelningen
    +GAMMALN			= GAMMALN			##	Returnerar den naturliga logaritmen för gammafunktionen, G(x)
    +GEOMEAN			= GEOMEDEL			##	Returnerar det geometriska medelvärdet
    +GROWTH			= EXPTREND			##	Returnerar värden längs en exponentiell trend
    +HARMEAN			= HARMMEDEL			##	Returnerar det harmoniska medelvärdet
    +HYPGEOMDIST		= HYPGEOMFÖRD			##	Returnerar den hypergeometriska fördelningen
    +INTERCEPT		= SKÄRNINGSPUNKT		##	Returnerar skärningspunkten för en linjär regressionslinje
    +KURT			= TOPPIGHET			##	Returnerar toppigheten av en mängd data
    +LARGE			= STÖRSTA			##	Returnerar det n:te största värdet i en mängd data
    +LINEST			= REGR				##	Returnerar parametrar till en linjär trendlinje
    +LOGEST			= EXPREGR			##	Returnerar parametrarna i en exponentiell trend
    +LOGINV			= LOGINV			##	Returnerar inversen till den lognormala fördelningen
    +LOGNORMDIST		= LOGNORMFÖRD			##	Returnerar den kumulativa lognormala fördelningen
    +MAX			= MAX				##	Returnerar det största värdet i en lista av argument
    +MAXA			= MAXA				##	Returnerar det största värdet i en lista av argument, inklusive tal, text och logiska värden
    +MEDIAN			= MEDIAN			##	Returnerar medianen för angivna tal
    +MIN			= MIN				##	Returnerar det minsta värdet i en lista med argument
    +MINA			= MINA				##	Returnerar det minsta värdet i en lista över argument, inklusive tal, text och logiska värden
    +MODE			= TYPVÄRDE			##	Returnerar det vanligaste värdet i en datamängd
    +NEGBINOMDIST		= NEGBINOMFÖRD			##	Returnerar den negativa binomialfördelningen
    +NORMDIST		= NORMFÖRD			##	Returnerar den kumulativa normalfördelningen
    +NORMINV			= NORMINV			##	Returnerar inversen till den kumulativa normalfördelningen
    +NORMSDIST		= NORMSFÖRD			##	Returnerar den kumulativa standardnormalfördelningen
    +NORMSINV		= NORMSINV			##	Returnerar inversen till den kumulativa standardnormalfördelningen
    +PEARSON			= PEARSON			##	Returnerar korrelationskoefficienten till Pearsons momentprodukt
    +PERCENTILE		= PERCENTIL			##	Returnerar den n:te percentilen av värden i ett område
    +PERCENTRANK		= PROCENTRANG			##	Returnerar procentrangen för ett värde i en datamängd
    +PERMUT			= PERMUT			##	Returnerar antal permutationer för ett givet antal objekt
    +POISSON			= POISSON			##	Returnerar Poisson-fördelningen
    +PROB			= SANNOLIKHET			##	Returnerar sannolikheten att värden i ett område ligger mellan två gränser
    +QUARTILE		= KVARTIL			##	Returnerar kvartilen av en mängd data
    +RANK			= RANG				##	Returnerar rangordningen för ett tal i en lista med tal
    +RSQ			= RKV				##	Returnerar kvadraten av Pearsons produktmomentkorrelationskoefficient
    +SKEW			= SNEDHET			##	Returnerar snedheten för en fördelning
    +SLOPE			= LUTNING			##	Returnerar lutningen på en linjär regressionslinje
    +SMALL			= MINSTA			##	Returnerar det n:te minsta värdet i en mängd data
    +STANDARDIZE		= STANDARDISERA			##	Returnerar ett normaliserat värde
    +STDEV			= STDAV				##	Uppskattar standardavvikelsen baserat på ett urval
    +STDEVA			= STDEVA			##	Uppskattar standardavvikelsen baserat på ett urval, inklusive tal, text och logiska värden
    +STDEVP			= STDAVP			##	Beräknar standardavvikelsen baserat på hela populationen
    +STDEVPA			= STDEVPA			##	Beräknar standardavvikelsen baserat på hela populationen, inklusive tal, text och logiska värden
    +STEYX			= STDFELYX			##	Returnerar standardfelet för ett förutspått y-värde för varje x-värde i regressionen
    +TDIST			= TFÖRD				##	Returnerar Students t-fördelning
    +TINV			= TINV				##	Returnerar inversen till Students t-fördelning
    +TREND			= TREND				##	Returnerar värden längs en linjär trend
    +TRIMMEAN		= TRIMMEDEL			##	Returnerar medelvärdet av mittpunkterna i en datamängd
    +TTEST			= TTEST				##	Returnerar sannolikheten beräknad ur Students t-test
    +VAR			= VARIANS			##	Uppskattar variansen baserat på ett urval
    +VARA			= VARA				##	Uppskattar variansen baserat på ett urval, inklusive tal, text och logiska värden
    +VARP			= VARIANSP			##	Beräknar variansen baserat på hela populationen
    +VARPA			= VARPA				##	Beräknar variansen baserat på hela populationen, inklusive tal, text och logiska värden
    +WEIBULL			= WEIBULL			##	Returnerar Weibull-fördelningen
    +ZTEST			= ZTEST				##	Returnerar det ensidiga sannolikhetsvärdet av ett z-test
    +
    +
    +##
    +##	Text functions					Textfunktioner
    +##
    +ASC			= ASC				##	Ändrar helbredds (dubbel byte) engelska bokstäver eller katakana inom en teckensträng till tecken med halvt breddsteg (enkel byte)
    +BAHTTEXT		= BAHTTEXT			##	Omvandlar ett tal till text med valutaformatet ß (baht)
    +CHAR			= TECKENKOD			##	Returnerar tecknet som anges av kod
    +CLEAN			= STÄDA				##	Tar bort alla icke utskrivbara tecken i en text
    +CODE			= KOD				##	Returnerar en numerisk kod för det första tecknet i en textsträng
    +CONCATENATE		= SAMMANFOGA			##	Sammanfogar flera textdelar till en textsträng
    +DOLLAR			= VALUTA			##	Omvandlar ett tal till text med valutaformat
    +EXACT			= EXAKT				##	Kontrollerar om två textvärden är identiska
    +FIND			= HITTA				##	Hittar en text i en annan (skiljer på gemener och versaler)
    +FINDB			= HITTAB			##	Hittar en text i en annan (skiljer på gemener och versaler)
    +FIXED			= FASTTAL			##	Formaterar ett tal som text med ett fast antal decimaler
    +JIS			= JIS				##	Ändrar halvbredds (enkel byte) engelska bokstäver eller katakana inom en teckensträng till tecken med helt breddsteg (dubbel byte)
    +LEFT			= VÄNSTER			##	Returnerar tecken längst till vänster i en sträng
    +LEFTB			= VÄNSTERB			##	Returnerar tecken längst till vänster i en sträng
    +LEN			= LÄNGD				##	Returnerar antalet tecken i en textsträng
    +LENB			= LÄNGDB			##	Returnerar antalet tecken i en textsträng
    +LOWER			= GEMENER			##	Omvandlar text till gemener
    +MID			= EXTEXT			##	Returnerar angivet antal tecken från en text med början vid den position som du anger
    +MIDB			= EXTEXTB			##	Returnerar angivet antal tecken från en text med början vid den position som du anger
    +PHONETIC		= PHONETIC			##	Returnerar de fonetiska (furigana) tecknen i en textsträng
    +PROPER			= INITIAL			##	Ändrar första bokstaven i varje ord i ett textvärde till versal
    +REPLACE			= ERSÄTT			##	Ersätter tecken i text
    +REPLACEB		= ERSÄTTB			##	Ersätter tecken i text
    +REPT			= REP				##	Upprepar en text ett bestämt antal gånger
    +RIGHT			= HÖGER				##	Returnerar tecken längst till höger i en sträng
    +RIGHTB			= HÖGERB			##	Returnerar tecken längst till höger i en sträng
    +SEARCH			= SÖK				##	Hittar ett textvärde i ett annat (skiljer inte på gemener och versaler)
    +SEARCHB			= SÖKB				##	Hittar ett textvärde i ett annat (skiljer inte på gemener och versaler)
    +SUBSTITUTE		= BYT.UT			##	Ersätter gammal text med ny text i en textsträng
    +T			= T				##	Omvandlar argumenten till text
    +TEXT			= TEXT				##	Formaterar ett tal och omvandlar det till text
    +TRIM			= RENSA				##	Tar bort blanksteg från text
    +UPPER			= VERSALER			##	Omvandlar text till versaler
    +VALUE			= TEXTNUM			##	Omvandlar ett textargument till ett tal
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/tr/config b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/tr/config
    new file mode 100644
    index 00000000000..266e000f6ac
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/tr/config
    @@ -0,0 +1,24 @@
    +##
    +## PhpSpreadsheet
    +##
    +
    +ArgumentSeparator	= ;
    +
    +
    +##
    +##	(For future use)
    +##
    +currencySymbol	= YTL
    +
    +
    +##
    +##	Excel Error Codes	(For future use)
    +
    +##
    +NULL	= #BOŞ!
    +DIV0	= #SAYI/0!
    +VALUE	= #DEĞER!
    +REF	= #BAŞV!
    +NAME	= #AD?
    +NUM	= #SAYI!
    +NA	= #YOK
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/tr/functions b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/tr/functions
    new file mode 100644
    index 00000000000..f03563a797a
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Calculation/locale/tr/functions
    @@ -0,0 +1,416 @@
    +##
    +## PhpSpreadsheet
    +##
    +## Data in this file derived from https://www.excel-function-translation.com/
    +##
    +##
    +
    +
    +##
    +##	Add-in and Automation functions			Eklenti ve Otomasyon fonksiyonları
    +##
    +GETPIVOTDATA		= ÖZETVERİAL	##	Bir Özet Tablo raporunda saklanan verileri verir.
    +
    +
    +##
    +##	Cube functions					Küp işlevleri
    +##
    +CUBEKPIMEMBER		= KÜPKPIÜYE			##	Kilit performans göstergesi (KPI-Key Performance Indicator) adını, özelliğini ve ölçüsünü verir ve hücredeki ad ve özelliği gösterir. KPI, bir kurumun performansını izlemek için kullanılan aylık brüt kâr ya da üç aylık çalışan giriş çıkışları gibi ölçülebilen bir birimdir.
    +CUBEMEMBER			= KÜPÜYE			##	Bir küp hiyerarşisinde bir üyeyi veya kaydı verir. Üye veya kaydın küpte varolduğunu doğrulamak için kullanılır.
    +CUBEMEMBERPROPERTY	= KÜPÜYEÖZELLİĞİ	##	Bir küpte bir üyenin özelliğinin değerini verir. Küp içinde üye adının varlığını doğrulamak ve bu üyenin belli özelliklerini getirmek için kullanılır.
    +CUBERANKEDMEMBER	= KÜPÜYESIRASI 		##	Bir küme içindeki üyenin derecesini veya kaçıncı olduğunu verir. En iyi satış elemanı, veya en iyi on öğrenci gibi bir kümedeki bir veya daha fazla öğeyi getirmek için kullanılır.
    +CUBESET				= KÜPKÜME			##	Kümeyi oluşturan ve ardından bu kümeyi Microsoft Office Excel'e getiren sunucudaki küpe küme ifadelerini göndererek hesaplanan üye veya kayıt kümesini tanımlar.
    +CUBESETCOUNT		= KÜPKÜMESAY		##	Bir kümedeki öğelerin sayısını getirir.
    +CUBEVALUE			= KÜPDEĞER 			##	Bir küpten toplam değeri getirir.
    +
    +
    +##
    +##	Database functions				Veritabanı işlevleri
    +##
    +DAVERAGE		= VSEÇORT			##	Seçili veritabanı girdilerinin ortalamasını verir.
    +DCOUNT			= VSEÇSAY			##	Veritabanında sayı içeren hücre sayısını hesaplar.
    +DCOUNTA			= VSEÇSAYDOLU		##	Veritabanındaki boş olmayan hücreleri sayar.
    +DGET			= VAL				##	Veritabanından, belirtilen ölçütlerle eşleşen tek bir rapor çıkarır.
    +DMAX			= VSEÇMAK			##	Seçili veritabanı girişlerinin en yüksek değerini verir.
    +DMIN			= VSEÇMİN			##	Seçili veritabanı girişlerinin en düşük değerini verir.
    +DPRODUCT		= VSEÇÇARP			##	Kayıtların belli bir alanında bulunan, bir veritabanındaki ölçütlerle eşleşen değerleri çarpar.
    +DSTDEV			= VSEÇSTDSAPMA		##	Seçili veritabanı girişlerinden oluşan bir örneğe dayanarak, standart sapmayı tahmin eder.
    +DSTDEVP			= VSEÇSTDSAPMAS		##	Standart sapmayı, seçili veritabanı girişlerinin tüm popülasyonunu esas alarak hesaplar.
    +DSUM			= VSEÇTOPLA			##	Kayıtların alan sütununda bulunan, ölçütle eşleşen sayıları toplar.
    +DVAR			= VSEÇVAR			##	Seçili veritabanı girişlerinden oluşan bir örneği esas alarak farkı tahmin eder.
    +DVARP			= VSEÇVARS			##	Seçili veritabanı girişlerinin tüm popülasyonunu esas alarak farkı hesaplar.
    +
    +
    +##
    +##	Date and time functions				Tarih ve saat işlevleri
    +##
    +DATE			= TARİH				##	Belirli bir tarihin seri numarasını verir.
    +DATEVALUE		= TARİHSAYISI		##	Metin biçimindeki bir tarihi seri numarasına dönüştürür.
    +DAY				= GÜN				##	Seri numarasını, ayın bir gününe dönüştürür.
    +DAYS360			= GÜN360			##	İki tarih arasındaki gün sayısını, 360 günlük yılı esas alarak hesaplar.
    +EDATE			= SERİTARİH			##	Başlangıç tarihinden itibaren, belirtilen ay sayısından önce veya sonraki tarihin seri numarasını verir.
    +EOMONTH			= SERİAY			##	Belirtilen sayıda ay önce veya sonraki ayın son gününün seri numarasını verir.
    +HOUR			= SAAT				##	Bir seri numarasını saate dönüştürür.
    +MINUTE			= DAKİKA			##	Bir seri numarasını dakikaya dönüştürür.
    +MONTH			= AY				##	Bir seri numarasını aya dönüştürür.
    +NETWORKDAYS		= TAMİŞGÜNÜ			##	İki tarih arasındaki tam çalışma günlerinin sayısını verir.
    +NOW				= ŞİMDİ				##	Geçerli tarihin ve saatin seri numarasını verir.
    +SECOND			= SANİYE			##	Bir seri numarasını saniyeye dönüştürür.
    +TIME			= ZAMAN				##	Belirli bir zamanın seri numarasını verir.
    +TIMEVALUE		= ZAMANSAYISI		##	Metin biçimindeki zamanı seri numarasına dönüştürür.
    +TODAY			= BUGÜN				##	Bugünün tarihini seri numarasına dönüştürür.
    +WEEKDAY			= HAFTANINGÜNÜ		##	Bir seri numarasını, haftanın gününe dönüştürür.
    +WEEKNUM			= HAFTASAY			##	Dizisel değerini, haftanın yıl içinde bulunduğu konumu sayısal olarak gösteren sayıya dönüştürür.
    +WORKDAY			= İŞGÜNÜ			##	Belirtilen sayıda çalışma günü öncesinin ya da sonrasının tarihinin seri numarasını verir.
    +YEAR			= YIL				##	Bir seri numarasını yıla dönüştürür.
    +YEARFRAC		= YILORAN			##	Başlangıç_tarihi ve bitiş_tarihi arasındaki tam günleri gösteren yıl kesrini verir.
    +
    +
    +##
    +##	Engineering functions				Mühendislik işlevleri
    +##
    +BESSELI			= BESSELI			##	Değiştirilmiş Bessel fonksiyonu In(x)'i verir.
    +BESSELJ			= BESSELJ			##	Bessel fonksiyonu Jn(x)'i verir.
    +BESSELK			= BESSELK			##	Değiştirilmiş Bessel fonksiyonu Kn(x)'i verir.
    +BESSELY			= BESSELY			##	Bessel fonksiyonu Yn(x)'i verir.
    +BIN2DEC			= BIN2DEC			##	İkili bir sayıyı, ondalık sayıya dönüştürür.
    +BIN2HEX			= BIN2HEX			##	İkili bir sayıyı, onaltılıya dönüştürür.
    +BIN2OCT			= BIN2OCT			##	İkili bir sayıyı, sekizliye dönüştürür.
    +COMPLEX			= KARMAŞIK			##	Gerçek ve sanal katsayıları, karmaşık sayıya dönüştürür.
    +CONVERT			= ÇEVİR				##	Bir sayıyı, bir ölçüm sisteminden bir başka ölçüm sistemine dönüştürür.
    +DEC2BIN			= DEC2BIN			##	Ondalık bir sayıyı, ikiliye dönüştürür.
    +DEC2HEX			= DEC2HEX			##	Ondalık bir sayıyı, onaltılıya dönüştürür.
    +DEC2OCT			= DEC2OCT			##	Ondalık bir sayıyı sekizliğe dönüştürür.
    +DELTA			= DELTA				##	İki değerin eşit olup olmadığını sınar.
    +ERF				= HATAİŞLEV			##	Hata işlevini verir.
    +ERFC			= TÜMHATAİŞLEV		##	Tümleyici hata işlevini verir.
    +GESTEP			= BESINIR			##	Bir sayının eşik değerinden büyük olup olmadığını sınar.
    +HEX2BIN			= HEX2BIN			##	Onaltılı bir sayıyı ikiliye dönüştürür.
    +HEX2DEC			= HEX2DEC			##	Onaltılı bir sayıyı ondalığa dönüştürür.
    +HEX2OCT			= HEX2OCT			##	Onaltılı bir sayıyı sekizliğe dönüştürür.
    +IMABS			= SANMUTLAK			##	Karmaşık bir sayının mutlak değerini (modül) verir.
    +IMAGINARY		= SANAL				##	Karmaşık bir sayının sanal katsayısını verir.
    +IMARGUMENT		= SANBAĞ_DEĞİŞKEN	##	Radyanlarla belirtilen bir açı olan teta bağımsız değişkenini verir.
    +IMCONJUGATE		= SANEŞLENEK		##	Karmaşık bir sayının karmaşık eşleniğini verir.
    +IMCOS			= SANCOS			##	Karmaşık bir sayının kosinüsünü verir.
    +IMDIV			= SANBÖL			##	İki karmaşık sayının bölümünü verir.
    +IMEXP			= SANÜS				##	Karmaşık bir sayının üssünü verir.
    +IMLN			= SANLN				##	Karmaşık bir sayının doğal logaritmasını verir.
    +IMLOG10			= SANLOG10			##	Karmaşık bir sayının, 10 tabanında logaritmasını verir.
    +IMLOG2			= SANLOG2			##	Karmaşık bir sayının 2 tabanında logaritmasını verir.
    +IMPOWER			= SANÜSSÜ			##	Karmaşık bir sayıyı, bir tamsayı üssüne yükseltilmiş olarak verir.
    +IMPRODUCT		= SANÇARP			##	Karmaşık sayıların çarpımını verir.
    +IMREAL			= SANGERÇEK			##	Karmaşık bir sayının, gerçek katsayısını verir.
    +IMSIN			= SANSIN			##	Karmaşık bir sayının sinüsünü verir.
    +IMSQRT			= SANKAREKÖK		##	Karmaşık bir sayının karekökünü verir.
    +IMSUB			= SANÇIKAR			##	İki karmaşık sayının farkını verir.
    +IMSUM			= SANTOPLA			##	Karmaşık sayıların toplamını verir.
    +OCT2BIN			= OCT2BIN			##	Sekizli bir sayıyı ikiliye dönüştürür.
    +OCT2DEC			= OCT2DEC			##	Sekizli bir sayıyı ondalığa dönüştürür.
    +OCT2HEX			= OCT2HEX			##	Sekizli bir sayıyı onaltılıya dönüştürür.
    +
    +
    +##
    +##	Financial functions				Finansal fonksiyonlar
    +##
    +ACCRINT			= GERÇEKFAİZ		##	Dönemsel faiz ödeyen hisse senedine ilişkin tahakkuk eden faizi getirir.
    +ACCRINTM		= GERÇEKFAİZV		##	Vadesinde ödeme yapan bir tahvilin tahakkuk etmiş faizini verir.
    +AMORDEGRC		= AMORDEGRC			##	Yıpranma katsayısı kullanarak her hesap döneminin değer kaybını verir.
    +AMORLINC		= AMORLINC			##	Her hesap dönemi içindeki yıpranmayı verir.
    +COUPDAYBS		= KUPONGÜNBD		##	Kupon süresinin başlangıcından alış tarihine kadar olan süredeki gün sayısını verir.
    +COUPDAYS		= KUPONGÜN			##	Kupon süresindeki, gün sayısını, alış tarihini de içermek üzere, verir.
    +COUPDAYSNC		= KUPONGÜNDSK		##	Alış tarihinden bir sonraki kupon tarihine kadar olan gün sayısını verir.
    +COUPNCD			= KUPONGÜNSKT		##	Alış tarihinden bir sonraki kupon tarihini verir.
    +COUPNUM			= KUPONSAYI			##	Alış tarihiyle vade tarihi arasında ödenecek kuponların sayısını verir.
    +COUPPCD			= KUPONGÜNÖKT		##	Alış tarihinden bir önceki kupon tarihini verir.
    +CUMIPMT			= AİÇVERİMORANI		##	İki dönem arasında ödenen kümülatif faizi verir.
    +CUMPRINC		= ANA_PARA_ÖDEMESİ	##	İki dönem arasında bir borç üzerine ödenen birikimli temeli verir.
    +DB				= AZALANBAKİYE		##	Bir malın belirtilen bir süre içindeki yıpranmasını, sabit azalan bakiye yöntemini kullanarak verir.
    +DDB				= ÇİFTAZALANBAKİYE	##	Bir malın belirtilen bir süre içindeki yıpranmasını, çift azalan bakiye yöntemi ya da sizin belirttiğiniz başka bir yöntemi kullanarak verir.
    +DISC			= İNDİRİM			##	Bir tahvilin indirim oranını verir.
    +DOLLARDE		= LİRAON			##	Kesir olarak tanımlanmış lira fiyatını, ondalık sayı olarak tanımlanmış lira fiyatına dönüştürür.
    +DOLLARFR		= LİRAKES			##	Ondalık sayı olarak tanımlanmış lira fiyatını, kesir olarak tanımlanmış lira fiyatına dönüştürür.
    +DURATION		= SÜRE				##	Belli aralıklarla faiz ödemesi yapan bir tahvilin yıllık süresini verir.
    +EFFECT			= ETKİN				##	Efektif yıllık faiz oranını verir.
    +FV				= ANBD				##	Bir yatırımın gelecekteki değerini verir.
    +FVSCHEDULE		= GDPROGRAM			##	Bir seri birleşik faiz oranı uyguladıktan sonra, bir başlangıçtaki anaparanın gelecekteki değerini verir.
    +INTRATE			= FAİZORANI			##	Tam olarak yatırım yapılmış bir tahvilin faiz oranını verir.
    +IPMT			= FAİZTUTARI		##	Bir yatırımın verilen bir süre için faiz ödemesini verir.
    +IRR				= İÇ_VERİM_ORANI	##	Bir para akışı serisi için, iç verim oranını verir.
    +ISPMT			= ISPMT				##	Yatırımın belirli bir dönemi boyunca ödenen faizi hesaplar.
    +MDURATION		= MSÜRE				##	Varsayılan par değeri 10.000.000 lira olan bir tahvil için Macauley değiştirilmiş süreyi verir.
    +MIRR			= D_İÇ_VERİM_ORANI	##	Pozitif ve negatif para akışlarının farklı oranlarda finanse edildiği durumlarda, iç verim oranını verir.
    +NOMINAL			= NOMİNAL			##	Yıllık nominal faiz oranını verir.
    +NPER			= DÖNEM_SAYISI		##	Bir yatırımın dönem sayısını verir.
    +NPV				= NBD				##	Bir yatırımın bugünkü net değerini, bir dönemsel para akışları serisine ve bir indirim oranına bağlı olarak verir.
    +ODDFPRICE		= TEKYDEĞER			##	Tek bir ilk dönemi olan bir tahvilin değerini, her 100.000.000 lirada bir verir.
    +ODDFYIELD		= TEKYÖDEME			##	Tek bir ilk dönemi olan bir tahvilin ödemesini verir.
    +ODDLPRICE		= TEKSDEĞER			##	Tek bir son dönemi olan bir tahvilin fiyatını her 10.000.000 lirada bir verir.
    +ODDLYIELD		= TEKSÖDEME			##	Tek bir son dönemi olan bir tahvilin ödemesini verir.
    +PMT				= DEVRESEL_ÖDEME	##	Bir yıllık dönemsel ödemeyi verir.
    +PPMT			= ANA_PARA_ÖDEMESİ	##	Verilen bir süre için, bir yatırımın anaparasına dayanan ödemeyi verir.
    +PRICE			= DEĞER				##	Dönemsel faiz ödeyen bir tahvilin fiyatını 10.000.00 liralık değer başına verir.
    +PRICEDISC		= DEĞERİND			##	İndirimli bir tahvilin fiyatını 10.000.000 liralık nominal değer başına verir.
    +PRICEMAT		= DEĞERVADE			##	Faizini vade sonunda ödeyen bir tahvilin fiyatını 10.000.000 nominal değer başına verir.
    +PV				= BD				##	Bir yatırımın bugünkü değerini verir.
    +RATE			= FAİZ_ORANI		##	Bir yıllık dönem başına düşen faiz oranını verir.
    +RECEIVED		= GETİRİ			##	Tam olarak yatırılmış bir tahvilin vadesinin bitiminde alınan miktarı verir.
    +SLN				= DA				##	Bir malın bir dönem içindeki doğrusal yıpranmasını verir.
    +SYD				= YAT				##	Bir malın belirli bir dönem için olan amortismanını verir.
    +TBILLEQ			= HTAHEŞ			##	Bir Hazine bonosunun bono eşdeğeri ödemesini verir.
    +TBILLPRICE		= HTAHDEĞER			##	Bir Hazine bonosunun değerini, 10.000.000 liralık nominal değer başına verir.
    +TBILLYIELD		= HTAHÖDEME			##	Bir Hazine bonosunun ödemesini verir.
    +VDB				= DAB				##	Bir malın amortismanını, belirlenmiş ya da kısmi bir dönem için, bir azalan bakiye yöntemi kullanarak verir.
    +XIRR			= AİÇVERİMORANI		##	Dönemsel olması gerekmeyen bir para akışları programı için, iç verim oranını verir.
    +XNPV			= ANBD				##	Dönemsel olması gerekmeyen bir para akışları programı için, bugünkü net değeri verir.
    +YIELD			= ÖDEME				##	Belirli aralıklarla faiz ödeyen bir tahvilin ödemesini verir.
    +YIELDDISC		= ÖDEMEİND			##	İndirimli bir tahvilin yıllık ödemesini verir; örneğin, bir Hazine bonosunun.
    +YIELDMAT		= ÖDEMEVADE			##	Vadesinin bitiminde faiz ödeyen bir tahvilin yıllık ödemesini verir.
    +
    +
    +##
    +##	Information functions				Bilgi fonksiyonları
    +##
    +CELL			= HÜCRE			##	Bir hücrenin biçimlendirmesi, konumu ya da içeriği hakkında bilgi verir.
    +ERROR.TYPE		= HATA.TİPİ		##	Bir hata türüne ilişkin sayıları verir.
    +INFO			= BİLGİ			##	Geçerli işletim ortamı hakkında bilgi verir.
    +ISBLANK			= EBOŞSA		##	Değer boşsa, DOĞRU verir.
    +ISERR			= EHATA			##	Değer, #YOK dışındaki bir hata değeriyse, DOĞRU verir.
    +ISERROR			= EHATALIYSA	##	Değer, herhangi bir hata değeriyse, DOĞRU verir.
    +ISEVEN			= ÇİFTTİR		##	Sayı çiftse, DOĞRU verir.
    +ISLOGICAL		= EMANTIKSALSA	##	Değer, mantıksal bir değerse, DOĞRU verir.
    +ISNA			= EYOKSA		##	Değer, #YOK hata değeriyse, DOĞRU verir.
    +ISNONTEXT		= EMETİNDEĞİLSE	##	Değer, metin değilse, DOĞRU verir.
    +ISNUMBER		= ESAYIYSA		##	Değer, bir sayıysa, DOĞRU verir.
    +ISODD			= TEKTİR		##	Sayı tekse, DOĞRU verir.
    +ISREF			= EREFSE		##	Değer bir başvuruysa, DOĞRU verir.
    +ISTEXT			= EMETİNSE		##	Değer bir metinse DOĞRU verir.
    +N				= N				##	Sayıya dönüştürülmüş bir değer verir.
    +NA				= YOKSAY		##	#YOK hata değerini verir.
    +TYPE			= TİP			##	Bir değerin veri türünü belirten bir sayı verir.
    +
    +
    +##
    +##	Logical functions				Mantıksal fonksiyonlar
    +##
    +AND				= VE			##	Bütün bağımsız değişkenleri DOĞRU ise, DOĞRU verir.
    +FALSE			= YANLIŞ		##	YANLIŞ mantıksal değerini verir.
    +IF				= EĞER			##	Gerçekleştirilecek bir mantıksal sınama belirtir.
    +IFERROR			= EĞERHATA		##	Formül hatalıysa belirttiğiniz değeri verir; bunun dışındaki durumlarda formülün sonucunu verir.
    +NOT				= DEĞİL			##	Bağımsız değişkeninin mantığını tersine çevirir.
    +OR				= YADA			##	Bağımsız değişkenlerden herhangi birisi DOĞRU ise, DOĞRU verir.
    +TRUE			= DOĞRU			##	DOĞRU mantıksal değerini verir.
    +
    +
    +##
    +##	Lookup and reference functions			Arama ve Başvuru fonksiyonları
    +##
    +ADDRESS			= ADRES				##	Bir başvuruyu, çalışma sayfasındaki tek bir hücreye metin olarak verir.
    +AREAS			= ALANSAY			##	Renvoie le nombre de zones dans une référence.
    +CHOOSE			= ELEMAN			##	Değerler listesinden bir değer seçer.
    +COLUMN			= SÜTUN				##	Bir başvurunun sütun sayısını verir.
    +COLUMNS			= SÜTUNSAY			##	Bir başvurudaki sütunların sayısını verir.
    +HLOOKUP			= YATAYARA			##	Bir dizinin en üst satırına bakar ve belirtilen hücrenin değerini verir.
    +HYPERLINK		= KÖPRÜ				##	Bir ağ sunucusunda, bir intranette ya da Internet'te depolanan bir belgeyi açan bir kısayol ya da atlama oluşturur.
    +INDEX			= İNDİS				##	Başvurudan veya diziden bir değer seçmek için, bir dizin kullanır.
    +INDIRECT		= DOLAYLI			##	Metin değeriyle belirtilen bir başvuru verir.
    +LOOKUP			= ARA				##	Bir vektördeki veya dizideki değerleri arar.
    +MATCH			= KAÇINCI			##	Bir başvurudaki veya dizideki değerleri arar.
    +OFFSET			= KAYDIR			##	Verilen bir başvurudan, bir başvuru kaydırmayı verir.
    +ROW				= SATIR				##	Bir başvurunun satır sayısını verir.
    +ROWS			= SATIRSAY			##	Bir başvurudaki satırların sayısını verir.
    +RTD				= RTD				##	COM otomasyonunu destekleyen programdan gerçek zaman verileri alır.
    +TRANSPOSE		= DEVRİK_DÖNÜŞÜM	##	Bir dizinin devrik dönüşümünü verir.
    +VLOOKUP			= DÜŞEYARA			##	Bir dizinin ilk sütununa bakar ve bir hücrenin değerini vermek için satır boyunca hareket eder.
    +
    +
    +##
    +##	Math and trigonometry functions			Matematik ve trigonometri fonksiyonları
    +##
    +ABS				= MUTLAK			##	Bir sayının mutlak değerini verir.
    +ACOS			= ACOS				##	Bir sayının ark kosinüsünü verir.
    +ACOSH			= ACOSH				##	Bir sayının ters hiperbolik kosinüsünü verir.
    +ASIN			= ASİN				##	Bir sayının ark sinüsünü verir.
    +ASINH			= ASİNH				##	Bir sayının ters hiperbolik sinüsünü verir.
    +ATAN			= ATAN				##	Bir sayının ark tanjantını verir.
    +ATAN2			= ATAN2				##	Ark tanjantı, x- ve y- koordinatlarından verir.
    +ATANH			= ATANH				##	Bir sayının ters hiperbolik tanjantını verir.
    +CEILING			= TAVANAYUVARLA		##	Bir sayıyı, en yakın tamsayıya ya da en yakın katına yuvarlar.
    +COMBIN			= KOMBİNASYON		##	Verilen sayıda öğenin kombinasyon sayısını verir.
    +COS				= COS				##	Bir sayının kosinüsünü verir.
    +COSH			= COSH				##	Bir sayının hiperbolik kosinüsünü verir.
    +DEGREES			= DERECE			##	Radyanları dereceye dönüştürür.
    +EVEN			= ÇİFT				##	Bir sayıyı, en yakın daha büyük çift tamsayıya yuvarlar.
    +EXP				= ÜS				##	e'yi, verilen bir sayının üssüne yükseltilmiş olarak verir.
    +FACT			= ÇARPINIM			##	Bir sayının faktörünü verir.
    +FACTDOUBLE		= ÇİFTFAKTÖR		##	Bir sayının çift çarpınımını verir.
    +FLOOR			= TABANAYUVARLA		##	Bir sayıyı, daha küçük sayıya, sıfıra yakınsayarak yuvarlar.
    +GCD				= OBEB				##	En büyük ortak böleni verir.
    +INT				= TAMSAYI			##	Bir sayıyı aşağıya doğru en yakın tamsayıya yuvarlar.
    +LCM				= OKEK				##	En küçük ortak katı verir.
    +LN				= LN				##	Bir sayının doğal logaritmasını verir.
    +LOG				= LOG				##	Bir sayının, belirtilen bir tabandaki logaritmasını verir.
    +LOG10			= LOG10				##	Bir sayının 10 tabanında logaritmasını verir.
    +MDETERM			= DETERMİNANT		##	Bir dizinin dizey determinantını verir.
    +MINVERSE		= DİZEY_TERS		##	Bir dizinin dizey tersini verir.
    +MMULT			= DÇARP				##	İki dizinin dizey çarpımını verir.
    +MOD				= MODÜLO			##	Bölmeden kalanı verir.
    +MROUND			= KYUVARLA			##	İstenen kata yuvarlanmış bir sayı verir.
    +MULTINOMIAL		= ÇOKTERİMLİ		##	Bir sayılar kümesinin çok terimlisini verir.
    +ODD				= TEK				##	Bir sayıyı en yakın daha büyük tek sayıya yuvarlar.
    +PI				= Pİ				##	Pi değerini verir.
    +POWER			= KUVVET			##	Bir üsse yükseltilmiş sayının sonucunu verir.
    +PRODUCT			= ÇARPIM			##	Bağımsız değişkenlerini çarpar.
    +QUOTIENT		= BÖLÜM				##	Bir bölme işleminin tamsayı kısmını verir.
    +RADIANS			= RADYAN			##	Dereceleri radyanlara dönüştürür.
    +RAND			= S_SAYI_ÜRET		##	0 ile 1 arasında rastgele bir sayı verir.
    +RANDBETWEEN		= RASTGELEARALIK	##	Belirttiğiniz sayılar arasında rastgele bir sayı verir.
    +ROMAN			= ROMEN				##	Bir normal rakamı, metin olarak, romen rakamına çevirir.
    +ROUND			= YUVARLA			##	Bir sayıyı, belirtilen basamak sayısına yuvarlar.
    +ROUNDDOWN		= AŞAĞIYUVARLA		##	Bir sayıyı, daha küçük sayıya, sıfıra yakınsayarak yuvarlar.
    +ROUNDUP			= YUKARIYUVARLA		##	Bir sayıyı daha büyük sayıya, sıfırdan ıraksayarak yuvarlar.
    +SERIESSUM		= SERİTOPLA			##	Bir üs serisinin toplamını, formüle bağlı olarak verir.
    +SIGN			= İŞARET			##	Bir sayının işaretini verir.
    +SIN				= SİN				##	Verilen bir açının sinüsünü verir.
    +SINH			= SİNH				##	Bir sayının hiperbolik sinüsünü verir.
    +SQRT			= KAREKÖK			##	Pozitif bir karekök verir.
    +SQRTPI			= KAREKÖKPİ			##	(* Pi sayısının) kare kökünü verir.
    +SUBTOTAL		= ALTTOPLAM			##	Bir listedeki ya da veritabanındaki bir alt toplamı verir.
    +SUM				= TOPLA				##	Bağımsız değişkenlerini toplar.
    +SUMIF			= ETOPLA			##	Verilen ölçütle belirlenen hücreleri toplar.
    +SUMIFS			= SUMIFS			##	Bir aralıktaki, birden fazla ölçüte uyan hücreleri ekler.
    +SUMPRODUCT		= TOPLA.ÇARPIM		##	İlişkili dizi bileşenlerinin çarpımlarının toplamını verir.
    +SUMSQ			= TOPKARE			##	Bağımsız değişkenlerin karelerinin toplamını verir.
    +SUMX2MY2		= TOPX2EY2			##	İki dizideki ilişkili değerlerin farkının toplamını verir.
    +SUMX2PY2		= TOPX2AY2			##	İki dizideki ilişkili değerlerin karelerinin toplamının toplamını verir.
    +SUMXMY2			= TOPXEY2			##	İki dizideki ilişkili değerlerin farklarının karelerinin toplamını verir.
    +TAN				= TAN				##	Bir sayının tanjantını verir.
    +TANH			= TANH				##	Bir sayının hiperbolik tanjantını verir.
    +TRUNC			= NSAT				##	Bir sayının, tamsayı durumuna gelecek şekilde, fazlalıklarını atar.
    +
    +
    +##
    +##	Statistical functions				İstatistiksel fonksiyonlar
    +##
    +AVEDEV			= ORTSAP			##	Veri noktalarının ortalamalarından mutlak sapmalarının ortalamasını verir.
    +AVERAGE			= ORTALAMA			##	Bağımsız değişkenlerinin ortalamasını verir.
    +AVERAGEA		= ORTALAMAA			##	Bağımsız değişkenlerinin, sayılar, metin ve mantıksal değerleri içermek üzere ortalamasını verir.
    +AVERAGEIF		= EĞERORTALAMA 		##	Verili ölçütü karşılayan bir aralıktaki bütün hücrelerin ortalamasını (aritmetik ortalama) hesaplar.
    +AVERAGEIFS		= EĞERLERORTALAMA 	##	Birden çok ölçüte uyan tüm hücrelerin ortalamasını (aritmetik ortalama) hesaplar.
    +BETADIST		= BETADAĞ			##	Beta birikimli dağılım fonksiyonunu verir.
    +BETAINV			= BETATERS			##	Belirli bir beta dağılımı için birikimli dağılım fonksiyonunun tersini verir.
    +BINOMDIST		= BİNOMDAĞ			##	Tek terimli binom dağılımı olasılığını verir.
    +CHIDIST			= KİKAREDAĞ			##	Kikare dağılımın tek kuyruklu olasılığını verir.
    +CHIINV			= KİKARETERS		##	Kikare dağılımın kuyruklu olasılığının tersini verir.
    +CHITEST			= KİKARETEST		##	Bağımsızlık sınamalarını verir.
    +CONFIDENCE		= GÜVENİRLİK		##	Bir popülasyon ortalaması için güvenirlik aralığını verir.
    +CORREL			= KORELASYON		##	İki veri kümesi arasındaki bağlantı katsayısını verir.
    +COUNT			= BAĞ_DEĞ_SAY		##	Bağımsız değişkenler listesinde kaç tane sayı bulunduğunu sayar.
    +COUNTA			= BAĞ_DEĞ_DOLU_SAY	##	Bağımsız değişkenler listesinde kaç tane değer bulunduğunu sayar.
    +COUNTBLANK		= BOŞLUKSAY 		##	Aralıktaki boş hücre sayısını hesaplar.
    +COUNTIF			= EĞERSAY 			##	Verilen ölçütlere uyan bir aralık içindeki hücreleri sayar.
    +COUNTIFS		= ÇOKEĞERSAY 		##	Birden çok ölçüte uyan bir aralık içindeki hücreleri sayar.
    +COVAR			= KOVARYANS 		##	Eşleştirilmiş sapmaların ortalaması olan kovaryansı verir.
    +CRITBINOM		= KRİTİKBİNOM		##	Birikimli binom dağılımının bir ölçüt değerinden küçük veya ölçüt değerine eşit olduğu en küçük değeri verir.
    +DEVSQ			= SAPKARE			##	Sapmaların karelerinin toplamını verir.
    +EXPONDIST		= ÜSTELDAĞ			##	Üstel dağılımı verir.
    +FDIST			= FDAĞ				##	F olasılık dağılımını verir.
    +FINV			= FTERS				##	F olasılık dağılımının tersini verir.
    +FISHER			= FISHER			##	Fisher dönüşümünü verir.
    +FISHERINV		= FISHERTERS		##	Fisher dönüşümünün tersini verir.
    +FORECAST		= TAHMİN			##	Bir doğrusal eğilim boyunca bir değer verir.
    +FREQUENCY		= SIKLIK			##	Bir sıklık dağılımını, dikey bir dizi olarak verir.
    +FTEST			= FTEST				##	Bir F-test'in sonucunu verir.
    +GAMMADIST		= GAMADAĞ			##	Gama dağılımını verir.
    +GAMMAINV		= GAMATERS			##	Gama kümülatif dağılımının tersini verir.
    +GAMMALN			= GAMALN			##	Gama fonksiyonunun (?(x)) doğal logaritmasını verir.
    +GEOMEAN			= GEOORT			##	Geometrik ortayı verir.
    +GROWTH			= BÜYÜME			##	Üstel bir eğilim boyunca değerler verir.
    +HARMEAN			= HARORT			##	Harmonik ortayı verir.
    +HYPGEOMDIST		= HİPERGEOMDAĞ		##	Hipergeometrik dağılımı verir.
    +INTERCEPT		= KESMENOKTASI		##	Doğrusal çakıştırma çizgisinin kesişme noktasını verir.
    +KURT			= BASIKLIK			##	Bir veri kümesinin basıklığını verir.
    +LARGE			= BÜYÜK				##	Bir veri kümesinde k. en büyük değeri verir.
    +LINEST			= DOT				##	Doğrusal bir eğilimin parametrelerini verir.
    +LOGEST			= LOT				##	Üstel bir eğilimin parametrelerini verir.
    +LOGINV			= LOGTERS			##	Bir lognormal dağılımının tersini verir.
    +LOGNORMDIST		= LOGNORMDAĞ		##	Birikimli lognormal dağılımını verir.
    +MAX				= MAK				##	Bir bağımsız değişkenler listesindeki en büyük değeri verir.
    +MAXA			= MAKA				##	Bir bağımsız değişkenler listesindeki, sayılar, metin ve mantıksal değerleri içermek üzere, en büyük değeri verir.
    +MEDIAN			= ORTANCA			##	Belirtilen sayıların orta değerini verir.
    +MIN				= MİN				##	Bir bağımsız değişkenler listesindeki en küçük değeri verir.
    +MINA			= MİNA				##	Bir bağımsız değişkenler listesindeki, sayılar, metin ve mantıksal değerleri de içermek üzere, en küçük değeri verir.
    +MODE			= ENÇOK_OLAN		##	Bir veri kümesindeki en sık rastlanan değeri verir.
    +NEGBINOMDIST	= NEGBİNOMDAĞ		##	Negatif binom dağılımını verir.
    +NORMDIST		= NORMDAĞ			##	Normal birikimli dağılımı verir.
    +NORMINV			= NORMTERS			##	Normal kümülatif dağılımın tersini verir.
    +NORMSDIST		= NORMSDAĞ			##	Standart normal birikimli dağılımı verir.
    +NORMSINV		= NORMSTERS			##	Standart normal birikimli dağılımın tersini verir.
    +PEARSON			= PEARSON			##	Pearson çarpım moment korelasyon katsayısını verir.
    +PERCENTILE		= YÜZDEBİRLİK		##	Bir aralık içerisinde bulunan değerlerin k. frekans toplamını verir.
    +PERCENTRANK		= YÜZDERANK			##	Bir veri kümesindeki bir değerin yüzde mertebesini verir.
    +PERMUT			= PERMÜTASYON		##	Verilen sayıda nesne için permütasyon sayısını verir.
    +POISSON			= POISSON			##	Poisson dağılımını verir.
    +PROB			= OLASILIK			##	Bir aralıktaki değerlerin iki sınır arasında olması olasılığını verir.
    +QUARTILE		= DÖRTTEBİRLİK		##	Bir veri kümesinin dörtte birliğini verir.
    +RANK			= RANK				##	Bir sayılar listesinde bir sayının mertebesini verir.
    +RSQ				= RKARE				##	Pearson çarpım moment korelasyon katsayısının karesini verir.
    +SKEW			= ÇARPIKLIK			##	Bir dağılımın çarpıklığını verir.
    +SLOPE			= EĞİM				##	Doğrusal çakışma çizgisinin eğimini verir.
    +SMALL			= KÜÇÜK				##	Bir veri kümesinde k. en küçük değeri verir.
    +STANDARDIZE		= STANDARTLAŞTIRMA	##	Normalleştirilmiş bir değer verir.
    +STDEV			= STDSAPMA			##	Bir örneğe dayanarak standart sapmayı tahmin eder.
    +STDEVA			= STDSAPMAA			##	Standart sapmayı, sayılar, metin ve mantıksal değerleri içermek üzere, bir örneğe bağlı olarak tahmin eder.
    +STDEVP			= STDSAPMAS			##	Standart sapmayı, tüm popülasyona bağlı olarak hesaplar.
    +STDEVPA			= STDSAPMASA		##	Standart sapmayı, sayılar, metin ve mantıksal değerleri içermek üzere, tüm popülasyona bağlı olarak hesaplar.
    +STEYX			= STHYX				##	Regresyondaki her x için tahmini y değerinin standart hatasını verir.
    +TDIST			= TDAĞ				##	T-dağılımını verir.
    +TINV			= TTERS				##	T-dağılımının tersini verir.
    +TREND			= EĞİLİM			##	Doğrusal bir eğilim boyunca değerler verir.
    +TRIMMEAN		= KIRPORTALAMA		##	Bir veri kümesinin içinin ortalamasını verir.
    +TTEST			= TTEST				##	T-test'le ilişkilendirilmiş olasılığı verir.
    +VAR				= VAR				##	Varyansı, bir örneğe bağlı olarak tahmin eder.
    +VARA			= VARA				##	Varyansı, sayılar, metin ve mantıksal değerleri içermek üzere, bir örneğe bağlı olarak tahmin eder.
    +VARP			= VARS				##	Varyansı, tüm popülasyona dayanarak hesaplar.
    +VARPA			= VARSA				##	Varyansı, sayılar, metin ve mantıksal değerleri içermek üzere, tüm popülasyona bağlı olarak hesaplar.
    +WEIBULL			= WEIBULL			##	Weibull dağılımını hesaplar.
    +ZTEST			= ZTEST				##	Z-testinin tek kuyruklu olasılık değerini hesaplar.
    +
    +
    +##
    +##	Text functions					Metin fonksiyonları
    +##
    +ASC				= ASC 				##	Bir karakter dizesindeki çift enli (iki bayt) İngilizce harfleri veya katakanayı yarım enli (tek bayt) karakterlerle değiştirir.
    +BAHTTEXT		= BAHTTEXT 			##	Sayıyı, ß (baht) para birimi biçimini kullanarak metne dönüştürür.
    +CHAR			= DAMGA 			##	Kod sayısıyla belirtilen karakteri verir.
    +CLEAN			= TEMİZ				##	Metindeki bütün yazdırılamaz karakterleri kaldırır.
    +CODE			= KOD				##	Bir metin dizesindeki ilk karakter için sayısal bir kod verir.
    +CONCATENATE		= BİRLEŞTİR			##	Pek çok metin öğesini bir metin öğesi olarak birleştirir.
    +DOLLAR			= LİRA				##	Bir sayıyı YTL (yeni Türk lirası) para birimi biçimini kullanarak metne dönüştürür.
    +EXACT			= ÖZDEŞ				##	İki metin değerinin özdeş olup olmadığını anlamak için, değerleri denetler.
    +FIND			= BUL				##	Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlıdır).
    +FINDB			= BULB				##	Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlıdır).
    +FIXED			= SAYIDÜZENLE		##	Bir sayıyı, sabit sayıda ondalıkla, metin olarak biçimlendirir.
    +JIS				= JIS				##	Bir karakter dizesindeki tek enli (tek bayt) İngilizce harfleri veya katakanayı çift enli (iki bayt) karakterlerle değiştirir.
    +LEFT			= SOL				##	Bir metin değerinden en soldaki karakterleri verir.
    +LEFTB			= SOLB				##	Bir metin değerinden en soldaki karakterleri verir.
    +LEN				= UZUNLUK			##	Bir metin dizesindeki karakter sayısını verir.
    +LENB			= UZUNLUKB			##	Bir metin dizesindeki karakter sayısını verir.
    +LOWER			= KÜÇÜKHARF			##	Metni küçük harfe çevirir.
    +MID				= ORTA				##	Bir metin dizesinden belirli sayıda karakteri, belirttiğiniz konumdan başlamak üzere verir.
    +MIDB			= ORTAB				##	Bir metin dizesinden belirli sayıda karakteri, belirttiğiniz konumdan başlamak üzere verir.
    +PHONETIC		= SES				##	Metin dizesinden ses (furigana) karakterlerini ayıklar.
    +PROPER			= YAZIM.DÜZENİ		##	Bir metin değerinin her bir sözcüğünün ilk harfini büyük harfe çevirir.
    +REPLACE			= DEĞİŞTİR			##	Metnin içindeki karakterleri değiştirir.
    +REPLACEB		= DEĞİŞTİRB			##	Metnin içindeki karakterleri değiştirir.
    +REPT			= YİNELE			##	Metni belirtilen sayıda yineler.
    +RIGHT			= SAĞ				##	Bir metin değerinden en sağdaki karakterleri verir.
    +RIGHTB			= SAĞB				##	Bir metin değerinden en sağdaki karakterleri verir.
    +SEARCH			= BUL				##	Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlı değildir).
    +SEARCHB			= BULB				##	Bir metin değerini, bir başkasının içinde bulur (büyük küçük harf duyarlı değildir).
    +SUBSTITUTE		= YERİNEKOY			##	Bir metin dizesinde, eski metnin yerine yeni metin koyar.
    +T				= M					##	Bağımsız değerlerini metne dönüştürür.
    +TEXT			= METNEÇEVİR		##	Bir sayıyı biçimlendirir ve metne dönüştürür.
    +TRIM			= KIRP				##	Metindeki boşlukları kaldırır.
    +UPPER			= BÜYÜKHARF			##	Metni büyük harfe çevirir.
    +VALUE			= SAYIYAÇEVİR		##	Bir metin bağımsız değişkenini sayıya dönüştürür.
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/AdvancedValueBinder.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/AdvancedValueBinder.php
    new file mode 100644
    index 00000000000..efb8e5ef368
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/AdvancedValueBinder.php
    @@ -0,0 +1,174 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Cell;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
    +
    +class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder
    +{
    +    /**
    +     * Bind value to a cell.
    +     *
    +     * @param Cell $cell Cell to bind value to
    +     * @param mixed $value Value to bind in cell
    +     *
    +     * @return bool
    +     */
    +    public function bindValue(Cell $cell, $value = null)
    +    {
    +        // sanitize UTF-8 strings
    +        if (is_string($value)) {
    +            $value = StringHelper::sanitizeUTF8($value);
    +        }
    +
    +        // Find out data type
    +        $dataType = parent::dataTypeForValue($value);
    +
    +        // Style logic - strings
    +        if ($dataType === DataType::TYPE_STRING && !$value instanceof RichText) {
    +            //    Test for booleans using locale-setting
    +            if ($value == Calculation::getTRUE()) {
    +                $cell->setValueExplicit(true, DataType::TYPE_BOOL);
    +
    +                return true;
    +            } elseif ($value == Calculation::getFALSE()) {
    +                $cell->setValueExplicit(false, DataType::TYPE_BOOL);
    +
    +                return true;
    +            }
    +
    +            // Check for number in scientific format
    +            if (preg_match('/^' . Calculation::CALCULATION_REGEXP_NUMBER . '$/', $value)) {
    +                $cell->setValueExplicit((float) $value, DataType::TYPE_NUMERIC);
    +
    +                return true;
    +            }
    +
    +            // Check for fraction
    +            if (preg_match('/^([+-]?)\s*(\d+)\s?\/\s*(\d+)$/', $value, $matches)) {
    +                // Convert value to number
    +                $value = $matches[2] / $matches[3];
    +                if ($matches[1] == '-') {
    +                    $value = 0 - $value;
    +                }
    +                $cell->setValueExplicit((float) $value, DataType::TYPE_NUMERIC);
    +                // Set style
    +                $cell->getWorksheet()->getStyle($cell->getCoordinate())
    +                    ->getNumberFormat()->setFormatCode('??/??');
    +
    +                return true;
    +            } elseif (preg_match('/^([+-]?)(\d*) +(\d*)\s?\/\s*(\d*)$/', $value, $matches)) {
    +                // Convert value to number
    +                $value = $matches[2] + ($matches[3] / $matches[4]);
    +                if ($matches[1] == '-') {
    +                    $value = 0 - $value;
    +                }
    +                $cell->setValueExplicit((float) $value, DataType::TYPE_NUMERIC);
    +                // Set style
    +                $cell->getWorksheet()->getStyle($cell->getCoordinate())
    +                    ->getNumberFormat()->setFormatCode('# ??/??');
    +
    +                return true;
    +            }
    +
    +            // Check for percentage
    +            if (preg_match('/^\-?\d*\.?\d*\s?\%$/', $value)) {
    +                // Convert value to number
    +                $value = (float) str_replace('%', '', $value) / 100;
    +                $cell->setValueExplicit($value, DataType::TYPE_NUMERIC);
    +                // Set style
    +                $cell->getWorksheet()->getStyle($cell->getCoordinate())
    +                    ->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_PERCENTAGE_00);
    +
    +                return true;
    +            }
    +
    +            // Check for currency
    +            $currencyCode = StringHelper::getCurrencyCode();
    +            $decimalSeparator = StringHelper::getDecimalSeparator();
    +            $thousandsSeparator = StringHelper::getThousandsSeparator();
    +            if (preg_match('/^' . preg_quote($currencyCode, '/') . ' *(\d{1,3}(' . preg_quote($thousandsSeparator, '/') . '\d{3})*|(\d+))(' . preg_quote($decimalSeparator, '/') . '\d{2})?$/', $value)) {
    +                // Convert value to number
    +                $value = (float) trim(str_replace([$currencyCode, $thousandsSeparator, $decimalSeparator], ['', '', '.'], $value));
    +                $cell->setValueExplicit($value, DataType::TYPE_NUMERIC);
    +                // Set style
    +                $cell->getWorksheet()->getStyle($cell->getCoordinate())
    +                    ->getNumberFormat()->setFormatCode(
    +                        str_replace('$', $currencyCode, NumberFormat::FORMAT_CURRENCY_USD_SIMPLE)
    +                    );
    +
    +                return true;
    +            } elseif (preg_match('/^\$ *(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$/', $value)) {
    +                // Convert value to number
    +                $value = (float) trim(str_replace(['$', ','], '', $value));
    +                $cell->setValueExplicit($value, DataType::TYPE_NUMERIC);
    +                // Set style
    +                $cell->getWorksheet()->getStyle($cell->getCoordinate())
    +                    ->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
    +
    +                return true;
    +            }
    +
    +            // Check for time without seconds e.g. '9:45', '09:45'
    +            if (preg_match('/^(\d|[0-1]\d|2[0-3]):[0-5]\d$/', $value)) {
    +                // Convert value to number
    +                list($h, $m) = explode(':', $value);
    +                $days = $h / 24 + $m / 1440;
    +                $cell->setValueExplicit($days, DataType::TYPE_NUMERIC);
    +                // Set style
    +                $cell->getWorksheet()->getStyle($cell->getCoordinate())
    +                    ->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_DATE_TIME3);
    +
    +                return true;
    +            }
    +
    +            // Check for time with seconds '9:45:59', '09:45:59'
    +            if (preg_match('/^(\d|[0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$/', $value)) {
    +                // Convert value to number
    +                list($h, $m, $s) = explode(':', $value);
    +                $days = $h / 24 + $m / 1440 + $s / 86400;
    +                // Convert value to number
    +                $cell->setValueExplicit($days, DataType::TYPE_NUMERIC);
    +                // Set style
    +                $cell->getWorksheet()->getStyle($cell->getCoordinate())
    +                    ->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_DATE_TIME4);
    +
    +                return true;
    +            }
    +
    +            // Check for datetime, e.g. '2008-12-31', '2008-12-31 15:59', '2008-12-31 15:59:10'
    +            if (($d = Date::stringToExcel($value)) !== false) {
    +                // Convert value to number
    +                $cell->setValueExplicit($d, DataType::TYPE_NUMERIC);
    +                // Determine style. Either there is a time part or not. Look for ':'
    +                if (strpos($value, ':') !== false) {
    +                    $formatCode = 'yyyy-mm-dd h:mm';
    +                } else {
    +                    $formatCode = 'yyyy-mm-dd';
    +                }
    +                $cell->getWorksheet()->getStyle($cell->getCoordinate())
    +                    ->getNumberFormat()->setFormatCode($formatCode);
    +
    +                return true;
    +            }
    +
    +            // Check for newline character "\n"
    +            if (strpos($value, "\n") !== false) {
    +                $value = StringHelper::sanitizeUTF8($value);
    +                $cell->setValueExplicit($value, DataType::TYPE_STRING);
    +                // Set style
    +                $cell->getWorksheet()->getStyle($cell->getCoordinate())
    +                    ->getAlignment()->setWrapText(true);
    +
    +                return true;
    +            }
    +        }
    +
    +        // Not bound yet? Use parent...
    +        return parent::bindValue($cell, $value);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/Cell.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/Cell.php
    new file mode 100644
    index 00000000000..416b4a9909b
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/Cell.php
    @@ -0,0 +1,698 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Cell;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Collection\Cells;
    +use PhpOffice\PhpSpreadsheet\Exception;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
    +use PhpOffice\PhpSpreadsheet\Style\Style;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +class Cell
    +{
    +    /**
    +     * Value binder to use.
    +     *
    +     * @var IValueBinder
    +     */
    +    private static $valueBinder;
    +
    +    /**
    +     * Value of the cell.
    +     *
    +     * @var mixed
    +     */
    +    private $value;
    +
    +    /**
    +     *    Calculated value of the cell (used for caching)
    +     *    This returns the value last calculated by MS Excel or whichever spreadsheet program was used to
    +     *        create the original spreadsheet file.
    +     *    Note that this value is not guaranteed to reflect the actual calculated value because it is
    +     *        possible that auto-calculation was disabled in the original spreadsheet, and underlying data
    +     *        values used by the formula have changed since it was last calculated.
    +     *
    +     * @var mixed
    +     */
    +    private $calculatedValue;
    +
    +    /**
    +     * Type of the cell data.
    +     *
    +     * @var string
    +     */
    +    private $dataType;
    +
    +    /**
    +     * Collection of cells.
    +     *
    +     * @var Cells
    +     */
    +    private $parent;
    +
    +    /**
    +     * Index to cellXf.
    +     *
    +     * @var int
    +     */
    +    private $xfIndex = 0;
    +
    +    /**
    +     * Attributes of the formula.
    +     */
    +    private $formulaAttributes;
    +
    +    /**
    +     * Update the cell into the cell collection.
    +     *
    +     * @return self
    +     */
    +    public function updateInCollection()
    +    {
    +        $this->parent->update($this);
    +
    +        return $this;
    +    }
    +
    +    public function detach()
    +    {
    +        $this->parent = null;
    +    }
    +
    +    public function attach(Cells $parent)
    +    {
    +        $this->parent = $parent;
    +    }
    +
    +    /**
    +     * Create a new Cell.
    +     *
    +     * @param mixed $pValue
    +     * @param string $pDataType
    +     * @param Worksheet $pSheet
    +     *
    +     * @throws Exception
    +     */
    +    public function __construct($pValue, $pDataType, Worksheet $pSheet)
    +    {
    +        // Initialise cell value
    +        $this->value = $pValue;
    +
    +        // Set worksheet cache
    +        $this->parent = $pSheet->getCellCollection();
    +
    +        // Set datatype?
    +        if ($pDataType !== null) {
    +            if ($pDataType == DataType::TYPE_STRING2) {
    +                $pDataType = DataType::TYPE_STRING;
    +            }
    +            $this->dataType = $pDataType;
    +        } elseif (!self::getValueBinder()->bindValue($this, $pValue)) {
    +            throw new Exception('Value could not be bound to cell.');
    +        }
    +    }
    +
    +    /**
    +     * Get cell coordinate column.
    +     *
    +     * @return string
    +     */
    +    public function getColumn()
    +    {
    +        return $this->parent->getCurrentColumn();
    +    }
    +
    +    /**
    +     * Get cell coordinate row.
    +     *
    +     * @return int
    +     */
    +    public function getRow()
    +    {
    +        return $this->parent->getCurrentRow();
    +    }
    +
    +    /**
    +     * Get cell coordinate.
    +     *
    +     * @return string
    +     */
    +    public function getCoordinate()
    +    {
    +        return $this->parent->getCurrentCoordinate();
    +    }
    +
    +    /**
    +     * Get cell value.
    +     *
    +     * @return mixed
    +     */
    +    public function getValue()
    +    {
    +        return $this->value;
    +    }
    +
    +    /**
    +     * Get cell value with formatting.
    +     *
    +     * @return string
    +     */
    +    public function getFormattedValue()
    +    {
    +        return (string) NumberFormat::toFormattedString(
    +            $this->getCalculatedValue(),
    +            $this->getStyle()
    +                ->getNumberFormat()->getFormatCode()
    +        );
    +    }
    +
    +    /**
    +     * Set cell value.
    +     *
    +     *    Sets the value for a cell, automatically determining the datatype using the value binder
    +     *
    +     * @param mixed $pValue Value
    +     *
    +     * @throws Exception
    +     *
    +     * @return Cell
    +     */
    +    public function setValue($pValue)
    +    {
    +        if (!self::getValueBinder()->bindValue($this, $pValue)) {
    +            throw new Exception('Value could not be bound to cell.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set the value for a cell, with the explicit data type passed to the method (bypassing any use of the value binder).
    +     *
    +     * @param mixed $pValue Value
    +     * @param string $pDataType Explicit data type, see DataType::TYPE_*
    +     *
    +     * @throws Exception
    +     *
    +     * @return Cell
    +     */
    +    public function setValueExplicit($pValue, $pDataType)
    +    {
    +        // set the value according to data type
    +        switch ($pDataType) {
    +            case DataType::TYPE_NULL:
    +                $this->value = $pValue;
    +
    +                break;
    +            case DataType::TYPE_STRING2:
    +                $pDataType = DataType::TYPE_STRING;
    +                // no break
    +            case DataType::TYPE_STRING:
    +                // Synonym for string
    +            case DataType::TYPE_INLINE:
    +                // Rich text
    +                $this->value = DataType::checkString($pValue);
    +
    +                break;
    +            case DataType::TYPE_NUMERIC:
    +                $this->value = (float) $pValue;
    +
    +                break;
    +            case DataType::TYPE_FORMULA:
    +                $this->value = (string) $pValue;
    +
    +                break;
    +            case DataType::TYPE_BOOL:
    +                $this->value = (bool) $pValue;
    +
    +                break;
    +            case DataType::TYPE_ERROR:
    +                $this->value = DataType::checkErrorCode($pValue);
    +
    +                break;
    +            default:
    +                throw new Exception('Invalid datatype: ' . $pDataType);
    +
    +                break;
    +        }
    +
    +        // set the datatype
    +        $this->dataType = $pDataType;
    +
    +        return $this->updateInCollection();
    +    }
    +
    +    /**
    +     * Get calculated cell value.
    +     *
    +     * @param bool $resetLog Whether the calculation engine logger should be reset or not
    +     *
    +     * @throws Exception
    +     *
    +     * @return mixed
    +     */
    +    public function getCalculatedValue($resetLog = true)
    +    {
    +        if ($this->dataType == DataType::TYPE_FORMULA) {
    +            try {
    +                $result = Calculation::getInstance(
    +                    $this->getWorksheet()->getParent()
    +                )->calculateCellValue($this, $resetLog);
    +                //    We don't yet handle array returns
    +                if (is_array($result)) {
    +                    while (is_array($result)) {
    +                        $result = array_pop($result);
    +                    }
    +                }
    +            } catch (Exception $ex) {
    +                if (($ex->getMessage() === 'Unable to access External Workbook') && ($this->calculatedValue !== null)) {
    +                    return $this->calculatedValue; // Fallback for calculations referencing external files.
    +                }
    +
    +                throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(
    +                    $this->getWorksheet()->getTitle() . '!' . $this->getCoordinate() . ' -> ' . $ex->getMessage()
    +                );
    +            }
    +
    +            if ($result === '#Not Yet Implemented') {
    +                return $this->calculatedValue; // Fallback if calculation engine does not support the formula.
    +            }
    +
    +            return $result;
    +        } elseif ($this->value instanceof RichText) {
    +            return $this->value->getPlainText();
    +        }
    +
    +        return $this->value;
    +    }
    +
    +    /**
    +     * Set old calculated value (cached).
    +     *
    +     * @param mixed $pValue Value
    +     *
    +     * @return Cell
    +     */
    +    public function setCalculatedValue($pValue)
    +    {
    +        if ($pValue !== null) {
    +            $this->calculatedValue = (is_numeric($pValue)) ? (float) $pValue : $pValue;
    +        }
    +
    +        return $this->updateInCollection();
    +    }
    +
    +    /**
    +     *    Get old calculated value (cached)
    +     *    This returns the value last calculated by MS Excel or whichever spreadsheet program was used to
    +     *        create the original spreadsheet file.
    +     *    Note that this value is not guaranteed to reflect the actual calculated value because it is
    +     *        possible that auto-calculation was disabled in the original spreadsheet, and underlying data
    +     *        values used by the formula have changed since it was last calculated.
    +     *
    +     * @return mixed
    +     */
    +    public function getOldCalculatedValue()
    +    {
    +        return $this->calculatedValue;
    +    }
    +
    +    /**
    +     * Get cell data type.
    +     *
    +     * @return string
    +     */
    +    public function getDataType()
    +    {
    +        return $this->dataType;
    +    }
    +
    +    /**
    +     * Set cell data type.
    +     *
    +     * @param string $pDataType see DataType::TYPE_*
    +     *
    +     * @return Cell
    +     */
    +    public function setDataType($pDataType)
    +    {
    +        if ($pDataType == DataType::TYPE_STRING2) {
    +            $pDataType = DataType::TYPE_STRING;
    +        }
    +        $this->dataType = $pDataType;
    +
    +        return $this->updateInCollection();
    +    }
    +
    +    /**
    +     * Identify if the cell contains a formula.
    +     *
    +     * @return bool
    +     */
    +    public function isFormula()
    +    {
    +        return $this->dataType == DataType::TYPE_FORMULA;
    +    }
    +
    +    /**
    +     *    Does this cell contain Data validation rules?
    +     *
    +     * @throws Exception
    +     *
    +     * @return bool
    +     */
    +    public function hasDataValidation()
    +    {
    +        if (!isset($this->parent)) {
    +            throw new Exception('Cannot check for data validation when cell is not bound to a worksheet');
    +        }
    +
    +        return $this->getWorksheet()->dataValidationExists($this->getCoordinate());
    +    }
    +
    +    /**
    +     * Get Data validation rules.
    +     *
    +     * @throws Exception
    +     *
    +     * @return DataValidation
    +     */
    +    public function getDataValidation()
    +    {
    +        if (!isset($this->parent)) {
    +            throw new Exception('Cannot get data validation for cell that is not bound to a worksheet');
    +        }
    +
    +        return $this->getWorksheet()->getDataValidation($this->getCoordinate());
    +    }
    +
    +    /**
    +     * Set Data validation rules.
    +     *
    +     * @param DataValidation $pDataValidation
    +     *
    +     * @throws Exception
    +     *
    +     * @return Cell
    +     */
    +    public function setDataValidation(DataValidation $pDataValidation = null)
    +    {
    +        if (!isset($this->parent)) {
    +            throw new Exception('Cannot set data validation for cell that is not bound to a worksheet');
    +        }
    +
    +        $this->getWorksheet()->setDataValidation($this->getCoordinate(), $pDataValidation);
    +
    +        return $this->updateInCollection();
    +    }
    +
    +    /**
    +     * Does this cell contain valid value?
    +     *
    +     * @return bool
    +     */
    +    public function hasValidValue()
    +    {
    +        $validator = new DataValidator();
    +
    +        return $validator->isValid($this);
    +    }
    +
    +    /**
    +     * Does this cell contain a Hyperlink?
    +     *
    +     * @throws Exception
    +     *
    +     * @return bool
    +     */
    +    public function hasHyperlink()
    +    {
    +        if (!isset($this->parent)) {
    +            throw new Exception('Cannot check for hyperlink when cell is not bound to a worksheet');
    +        }
    +
    +        return $this->getWorksheet()->hyperlinkExists($this->getCoordinate());
    +    }
    +
    +    /**
    +     * Get Hyperlink.
    +     *
    +     * @throws Exception
    +     *
    +     * @return Hyperlink
    +     */
    +    public function getHyperlink()
    +    {
    +        if (!isset($this->parent)) {
    +            throw new Exception('Cannot get hyperlink for cell that is not bound to a worksheet');
    +        }
    +
    +        return $this->getWorksheet()->getHyperlink($this->getCoordinate());
    +    }
    +
    +    /**
    +     * Set Hyperlink.
    +     *
    +     * @param Hyperlink $pHyperlink
    +     *
    +     * @throws Exception
    +     *
    +     * @return Cell
    +     */
    +    public function setHyperlink(Hyperlink $pHyperlink = null)
    +    {
    +        if (!isset($this->parent)) {
    +            throw new Exception('Cannot set hyperlink for cell that is not bound to a worksheet');
    +        }
    +
    +        $this->getWorksheet()->setHyperlink($this->getCoordinate(), $pHyperlink);
    +
    +        return $this->updateInCollection();
    +    }
    +
    +    /**
    +     * Get cell collection.
    +     *
    +     * @return Cells
    +     */
    +    public function getParent()
    +    {
    +        return $this->parent;
    +    }
    +
    +    /**
    +     * Get parent worksheet.
    +     *
    +     * @return Worksheet
    +     */
    +    public function getWorksheet()
    +    {
    +        return $this->parent->getParent();
    +    }
    +
    +    /**
    +     * Is this cell in a merge range.
    +     *
    +     * @return bool
    +     */
    +    public function isInMergeRange()
    +    {
    +        return (bool) $this->getMergeRange();
    +    }
    +
    +    /**
    +     * Is this cell the master (top left cell) in a merge range (that holds the actual data value).
    +     *
    +     * @return bool
    +     */
    +    public function isMergeRangeValueCell()
    +    {
    +        if ($mergeRange = $this->getMergeRange()) {
    +            $mergeRange = Coordinate::splitRange($mergeRange);
    +            list($startCell) = $mergeRange[0];
    +            if ($this->getCoordinate() === $startCell) {
    +                return true;
    +            }
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * If this cell is in a merge range, then return the range.
    +     *
    +     * @return string
    +     */
    +    public function getMergeRange()
    +    {
    +        foreach ($this->getWorksheet()->getMergeCells() as $mergeRange) {
    +            if ($this->isInRange($mergeRange)) {
    +                return $mergeRange;
    +            }
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Get cell style.
    +     *
    +     * @return Style
    +     */
    +    public function getStyle()
    +    {
    +        return $this->getWorksheet()->getStyle($this->getCoordinate());
    +    }
    +
    +    /**
    +     * Re-bind parent.
    +     *
    +     * @param Worksheet $parent
    +     *
    +     * @return Cell
    +     */
    +    public function rebindParent(Worksheet $parent)
    +    {
    +        $this->parent = $parent->getCellCollection();
    +
    +        return $this->updateInCollection();
    +    }
    +
    +    /**
    +     *    Is cell in a specific range?
    +     *
    +     * @param string $pRange Cell range (e.g. A1:A1)
    +     *
    +     * @return bool
    +     */
    +    public function isInRange($pRange)
    +    {
    +        list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($pRange);
    +
    +        // Translate properties
    +        $myColumn = Coordinate::columnIndexFromString($this->getColumn());
    +        $myRow = $this->getRow();
    +
    +        // Verify if cell is in range
    +        return ($rangeStart[0] <= $myColumn) && ($rangeEnd[0] >= $myColumn) &&
    +                ($rangeStart[1] <= $myRow) && ($rangeEnd[1] >= $myRow);
    +    }
    +
    +    /**
    +     * Compare 2 cells.
    +     *
    +     * @param Cell $a Cell a
    +     * @param Cell $b Cell b
    +     *
    +     * @return int Result of comparison (always -1 or 1, never zero!)
    +     */
    +    public static function compareCells(self $a, self $b)
    +    {
    +        if ($a->getRow() < $b->getRow()) {
    +            return -1;
    +        } elseif ($a->getRow() > $b->getRow()) {
    +            return 1;
    +        } elseif (Coordinate::columnIndexFromString($a->getColumn()) < Coordinate::columnIndexFromString($b->getColumn())) {
    +            return -1;
    +        }
    +
    +        return 1;
    +    }
    +
    +    /**
    +     * Get value binder to use.
    +     *
    +     * @return IValueBinder
    +     */
    +    public static function getValueBinder()
    +    {
    +        if (self::$valueBinder === null) {
    +            self::$valueBinder = new DefaultValueBinder();
    +        }
    +
    +        return self::$valueBinder;
    +    }
    +
    +    /**
    +     * Set value binder to use.
    +     *
    +     * @param IValueBinder $binder
    +     */
    +    public static function setValueBinder(IValueBinder $binder)
    +    {
    +        self::$valueBinder = $binder;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if ((is_object($value)) && ($key != 'parent')) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Get index to cellXf.
    +     *
    +     * @return int
    +     */
    +    public function getXfIndex()
    +    {
    +        return $this->xfIndex;
    +    }
    +
    +    /**
    +     * Set index to cellXf.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return Cell
    +     */
    +    public function setXfIndex($pValue)
    +    {
    +        $this->xfIndex = $pValue;
    +
    +        return $this->updateInCollection();
    +    }
    +
    +    /**
    +     * Set the formula attributes.
    +     *
    +     * @param mixed $pAttributes
    +     *
    +     * @return Cell
    +     */
    +    public function setFormulaAttributes($pAttributes)
    +    {
    +        $this->formulaAttributes = $pAttributes;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get the formula attributes.
    +     */
    +    public function getFormulaAttributes()
    +    {
    +        return $this->formulaAttributes;
    +    }
    +
    +    /**
    +     * Convert to string.
    +     *
    +     * @return string
    +     */
    +    public function __toString()
    +    {
    +        return (string) $this->getValue();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/Coordinate.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/Coordinate.php
    new file mode 100644
    index 00000000000..12e3b689727
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/Coordinate.php
    @@ -0,0 +1,522 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Cell;
    +
    +use PhpOffice\PhpSpreadsheet\Exception;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +/**
    + * Helper class to manipulate cell coordinates.
    + *
    + * Columns indexes and rows are always based on 1, **not** on 0. This match the behavior
    + * that Excel users are used to, and also match the Excel functions `COLUMN()` and `ROW()`.
    + */
    +abstract class Coordinate
    +{
    +    /**
    +     * Default range variable constant.
    +     *
    +     * @var string
    +     */
    +    const DEFAULT_RANGE = 'A1:A1';
    +
    +    /**
    +     * Coordinate from string.
    +     *
    +     * @param string $pCoordinateString eg: 'A1'
    +     *
    +     * @throws Exception
    +     *
    +     * @return string[] Array containing column and row (indexes 0 and 1)
    +     */
    +    public static function coordinateFromString($pCoordinateString)
    +    {
    +        if (preg_match('/^([$]?[A-Z]{1,3})([$]?\\d{1,7})$/', $pCoordinateString, $matches)) {
    +            return [$matches[1], $matches[2]];
    +        } elseif (self::coordinateIsRange($pCoordinateString)) {
    +            throw new Exception('Cell coordinate string can not be a range of cells');
    +        } elseif ($pCoordinateString == '') {
    +            throw new Exception('Cell coordinate can not be zero-length string');
    +        }
    +
    +        throw new Exception('Invalid cell coordinate ' . $pCoordinateString);
    +    }
    +
    +    /**
    +     * Checks if a coordinate represents a range of cells.
    +     *
    +     * @param string $coord eg: 'A1' or 'A1:A2' or 'A1:A2,C1:C2'
    +     *
    +     * @return bool Whether the coordinate represents a range of cells
    +     */
    +    public static function coordinateIsRange($coord)
    +    {
    +        return (strpos($coord, ':') !== false) || (strpos($coord, ',') !== false);
    +    }
    +
    +    /**
    +     * Make string row, column or cell coordinate absolute.
    +     *
    +     * @param string $pCoordinateString e.g. 'A' or '1' or 'A1'
    +     *                    Note that this value can be a row or column reference as well as a cell reference
    +     *
    +     * @throws Exception
    +     *
    +     * @return string Absolute coordinate        e.g. '$A' or '$1' or '$A$1'
    +     */
    +    public static function absoluteReference($pCoordinateString)
    +    {
    +        if (self::coordinateIsRange($pCoordinateString)) {
    +            throw new Exception('Cell coordinate string can not be a range of cells');
    +        }
    +
    +        // Split out any worksheet name from the reference
    +        list($worksheet, $pCoordinateString) = Worksheet::extractSheetTitle($pCoordinateString, true);
    +        if ($worksheet > '') {
    +            $worksheet .= '!';
    +        }
    +
    +        // Create absolute coordinate
    +        if (ctype_digit($pCoordinateString)) {
    +            return $worksheet . '$' . $pCoordinateString;
    +        } elseif (ctype_alpha($pCoordinateString)) {
    +            return $worksheet . '$' . strtoupper($pCoordinateString);
    +        }
    +
    +        return $worksheet . self::absoluteCoordinate($pCoordinateString);
    +    }
    +
    +    /**
    +     * Make string coordinate absolute.
    +     *
    +     * @param string $pCoordinateString e.g. 'A1'
    +     *
    +     * @throws Exception
    +     *
    +     * @return string Absolute coordinate        e.g. '$A$1'
    +     */
    +    public static function absoluteCoordinate($pCoordinateString)
    +    {
    +        if (self::coordinateIsRange($pCoordinateString)) {
    +            throw new Exception('Cell coordinate string can not be a range of cells');
    +        }
    +
    +        // Split out any worksheet name from the coordinate
    +        list($worksheet, $pCoordinateString) = Worksheet::extractSheetTitle($pCoordinateString, true);
    +        if ($worksheet > '') {
    +            $worksheet .= '!';
    +        }
    +
    +        // Create absolute coordinate
    +        list($column, $row) = self::coordinateFromString($pCoordinateString);
    +        $column = ltrim($column, '$');
    +        $row = ltrim($row, '$');
    +
    +        return $worksheet . '$' . $column . '$' . $row;
    +    }
    +
    +    /**
    +     * Split range into coordinate strings.
    +     *
    +     * @param string $pRange e.g. 'B4:D9' or 'B4:D9,H2:O11' or 'B4'
    +     *
    +     * @return array Array containing one or more arrays containing one or two coordinate strings
    +     *                                e.g. ['B4','D9'] or [['B4','D9'], ['H2','O11']]
    +     *                                        or ['B4']
    +     */
    +    public static function splitRange($pRange)
    +    {
    +        // Ensure $pRange is a valid range
    +        if (empty($pRange)) {
    +            $pRange = self::DEFAULT_RANGE;
    +        }
    +
    +        $exploded = explode(',', $pRange);
    +        $counter = count($exploded);
    +        for ($i = 0; $i < $counter; ++$i) {
    +            $exploded[$i] = explode(':', $exploded[$i]);
    +        }
    +
    +        return $exploded;
    +    }
    +
    +    /**
    +     * Build range from coordinate strings.
    +     *
    +     * @param array $pRange Array containg one or more arrays containing one or two coordinate strings
    +     *
    +     * @throws Exception
    +     *
    +     * @return string String representation of $pRange
    +     */
    +    public static function buildRange(array $pRange)
    +    {
    +        // Verify range
    +        if (empty($pRange) || !is_array($pRange[0])) {
    +            throw new Exception('Range does not contain any information');
    +        }
    +
    +        // Build range
    +        $imploded = [];
    +        $counter = count($pRange);
    +        for ($i = 0; $i < $counter; ++$i) {
    +            $pRange[$i] = implode(':', $pRange[$i]);
    +        }
    +        $imploded = implode(',', $pRange);
    +
    +        return $imploded;
    +    }
    +
    +    /**
    +     * Calculate range boundaries.
    +     *
    +     * @param string $pRange Cell range (e.g. A1:A1)
    +     *
    +     * @return array Range coordinates [Start Cell, End Cell]
    +     *                    where Start Cell and End Cell are arrays (Column Number, Row Number)
    +     */
    +    public static function rangeBoundaries($pRange)
    +    {
    +        // Ensure $pRange is a valid range
    +        if (empty($pRange)) {
    +            $pRange = self::DEFAULT_RANGE;
    +        }
    +
    +        // Uppercase coordinate
    +        $pRange = strtoupper($pRange);
    +
    +        // Extract range
    +        if (strpos($pRange, ':') === false) {
    +            $rangeA = $rangeB = $pRange;
    +        } else {
    +            list($rangeA, $rangeB) = explode(':', $pRange);
    +        }
    +
    +        // Calculate range outer borders
    +        $rangeStart = self::coordinateFromString($rangeA);
    +        $rangeEnd = self::coordinateFromString($rangeB);
    +
    +        // Translate column into index
    +        $rangeStart[0] = self::columnIndexFromString($rangeStart[0]);
    +        $rangeEnd[0] = self::columnIndexFromString($rangeEnd[0]);
    +
    +        return [$rangeStart, $rangeEnd];
    +    }
    +
    +    /**
    +     * Calculate range dimension.
    +     *
    +     * @param string $pRange Cell range (e.g. A1:A1)
    +     *
    +     * @return array Range dimension (width, height)
    +     */
    +    public static function rangeDimension($pRange)
    +    {
    +        // Calculate range outer borders
    +        list($rangeStart, $rangeEnd) = self::rangeBoundaries($pRange);
    +
    +        return [($rangeEnd[0] - $rangeStart[0] + 1), ($rangeEnd[1] - $rangeStart[1] + 1)];
    +    }
    +
    +    /**
    +     * Calculate range boundaries.
    +     *
    +     * @param string $pRange Cell range (e.g. A1:A1)
    +     *
    +     * @return array Range coordinates [Start Cell, End Cell]
    +     *                    where Start Cell and End Cell are arrays [Column ID, Row Number]
    +     */
    +    public static function getRangeBoundaries($pRange)
    +    {
    +        // Ensure $pRange is a valid range
    +        if (empty($pRange)) {
    +            $pRange = self::DEFAULT_RANGE;
    +        }
    +
    +        // Uppercase coordinate
    +        $pRange = strtoupper($pRange);
    +
    +        // Extract range
    +        if (strpos($pRange, ':') === false) {
    +            $rangeA = $rangeB = $pRange;
    +        } else {
    +            list($rangeA, $rangeB) = explode(':', $pRange);
    +        }
    +
    +        return [self::coordinateFromString($rangeA), self::coordinateFromString($rangeB)];
    +    }
    +
    +    /**
    +     * Column index from string.
    +     *
    +     * @param string $pString eg 'A'
    +     *
    +     * @return int Column index (A = 1)
    +     */
    +    public static function columnIndexFromString($pString)
    +    {
    +        //    Using a lookup cache adds a slight memory overhead, but boosts speed
    +        //    caching using a static within the method is faster than a class static,
    +        //        though it's additional memory overhead
    +        static $indexCache = [];
    +
    +        if (isset($indexCache[$pString])) {
    +            return $indexCache[$pString];
    +        }
    +        //    It's surprising how costly the strtoupper() and ord() calls actually are, so we use a lookup array rather than use ord()
    +        //        and make it case insensitive to get rid of the strtoupper() as well. Because it's a static, there's no significant
    +        //        memory overhead either
    +        static $columnLookup = [
    +            'A' => 1, 'B' => 2, 'C' => 3, 'D' => 4, 'E' => 5, 'F' => 6, 'G' => 7, 'H' => 8, 'I' => 9, 'J' => 10, 'K' => 11, 'L' => 12, 'M' => 13,
    +            'N' => 14, 'O' => 15, 'P' => 16, 'Q' => 17, 'R' => 18, 'S' => 19, 'T' => 20, 'U' => 21, 'V' => 22, 'W' => 23, 'X' => 24, 'Y' => 25, 'Z' => 26,
    +            'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5, 'f' => 6, 'g' => 7, 'h' => 8, 'i' => 9, 'j' => 10, 'k' => 11, 'l' => 12, 'm' => 13,
    +            'n' => 14, 'o' => 15, 'p' => 16, 'q' => 17, 'r' => 18, 's' => 19, 't' => 20, 'u' => 21, 'v' => 22, 'w' => 23, 'x' => 24, 'y' => 25, 'z' => 26,
    +        ];
    +
    +        //    We also use the language construct isset() rather than the more costly strlen() function to match the length of $pString
    +        //        for improved performance
    +        if (isset($pString[0])) {
    +            if (!isset($pString[1])) {
    +                $indexCache[$pString] = $columnLookup[$pString];
    +
    +                return $indexCache[$pString];
    +            } elseif (!isset($pString[2])) {
    +                $indexCache[$pString] = $columnLookup[$pString[0]] * 26 + $columnLookup[$pString[1]];
    +
    +                return $indexCache[$pString];
    +            } elseif (!isset($pString[3])) {
    +                $indexCache[$pString] = $columnLookup[$pString[0]] * 676 + $columnLookup[$pString[1]] * 26 + $columnLookup[$pString[2]];
    +
    +                return $indexCache[$pString];
    +            }
    +        }
    +
    +        throw new Exception('Column string index can not be ' . ((isset($pString[0])) ? 'longer than 3 characters' : 'empty'));
    +    }
    +
    +    /**
    +     * String from column index.
    +     *
    +     * @param int $columnIndex Column index (A = 1)
    +     *
    +     * @return string
    +     */
    +    public static function stringFromColumnIndex($columnIndex)
    +    {
    +        static $indexCache = [];
    +
    +        if (!isset($indexCache[$columnIndex])) {
    +            $indexValue = $columnIndex;
    +            $base26 = null;
    +            do {
    +                $characterValue = ($indexValue % 26) ?: 26;
    +                $indexValue = ($indexValue - $characterValue) / 26;
    +                $base26 = chr($characterValue + 64) . ($base26 ?: '');
    +            } while ($indexValue > 0);
    +            $indexCache[$columnIndex] = $base26;
    +        }
    +
    +        return $indexCache[$columnIndex];
    +    }
    +
    +    /**
    +     * Extract all cell references in range, which may be comprised of multiple cell ranges.
    +     *
    +     * @param string $pRange Range (e.g. A1 or A1:C10 or A1:E10 A20:E25)
    +     *
    +     * @return array Array containing single cell references
    +     */
    +    public static function extractAllCellReferencesInRange($pRange)
    +    {
    +        $returnValue = [];
    +
    +        // Explode spaces
    +        $cellBlocks = self::getCellBlocksFromRangeString($pRange);
    +        foreach ($cellBlocks as $cellBlock) {
    +            $returnValue = array_merge($returnValue, self::getReferencesForCellBlock($cellBlock));
    +        }
    +
    +        //    Sort the result by column and row
    +        $sortKeys = [];
    +        foreach (array_unique($returnValue) as $coord) {
    +            $column = '';
    +            $row = 0;
    +
    +            sscanf($coord, '%[A-Z]%d', $column, $row);
    +            $sortKeys[sprintf('%3s%09d', $column, $row)] = $coord;
    +        }
    +        ksort($sortKeys);
    +
    +        // Return value
    +        return array_values($sortKeys);
    +    }
    +
    +    /**
    +     * Get all cell references for an individual cell block.
    +     *
    +     * @param string $cellBlock A cell range e.g. A4:B5
    +     *
    +     * @return array All individual cells in that range
    +     */
    +    private static function getReferencesForCellBlock($cellBlock)
    +    {
    +        $returnValue = [];
    +
    +        // Single cell?
    +        if (!self::coordinateIsRange($cellBlock)) {
    +            return (array) $cellBlock;
    +        }
    +
    +        // Range...
    +        $ranges = self::splitRange($cellBlock);
    +        foreach ($ranges as $range) {
    +            // Single cell?
    +            if (!isset($range[1])) {
    +                $returnValue[] = $range[0];
    +
    +                continue;
    +            }
    +
    +            // Range...
    +            list($rangeStart, $rangeEnd) = $range;
    +            list($startColumn, $startRow) = self::coordinateFromString($rangeStart);
    +            list($endColumn, $endRow) = self::coordinateFromString($rangeEnd);
    +            $startColumnIndex = self::columnIndexFromString($startColumn);
    +            $endColumnIndex = self::columnIndexFromString($endColumn);
    +            ++$endColumnIndex;
    +
    +            // Current data
    +            $currentColumnIndex = $startColumnIndex;
    +            $currentRow = $startRow;
    +
    +            self::validateRange($cellBlock, $startColumnIndex, $endColumnIndex, $currentRow, $endRow);
    +
    +            // Loop cells
    +            while ($currentColumnIndex < $endColumnIndex) {
    +                while ($currentRow <= $endRow) {
    +                    $returnValue[] = self::stringFromColumnIndex($currentColumnIndex) . $currentRow;
    +                    ++$currentRow;
    +                }
    +                ++$currentColumnIndex;
    +                $currentRow = $startRow;
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * Convert an associative array of single cell coordinates to values to an associative array
    +     * of cell ranges to values.  Only adjacent cell coordinates with the same
    +     * value will be merged.  If the value is an object, it must implement the method getHashCode().
    +     *
    +     * For example, this function converts:
    +     *
    +     *    [ 'A1' => 'x', 'A2' => 'x', 'A3' => 'x', 'A4' => 'y' ]
    +     *
    +     * to:
    +     *
    +     *    [ 'A1:A3' => 'x', 'A4' => 'y' ]
    +     *
    +     * @param array $pCoordCollection associative array mapping coordinates to values
    +     *
    +     * @return array associative array mapping coordinate ranges to valuea
    +     */
    +    public static function mergeRangesInCollection(array $pCoordCollection)
    +    {
    +        $hashedValues = [];
    +        $mergedCoordCollection = [];
    +
    +        foreach ($pCoordCollection as $coord => $value) {
    +            if (self::coordinateIsRange($coord)) {
    +                $mergedCoordCollection[$coord] = $value;
    +
    +                continue;
    +            }
    +
    +            list($column, $row) = self::coordinateFromString($coord);
    +            $row = (int) (ltrim($row, '$'));
    +            $hashCode = $column . '-' . (is_object($value) ? $value->getHashCode() : $value);
    +
    +            if (!isset($hashedValues[$hashCode])) {
    +                $hashedValues[$hashCode] = (object) [
    +                    'value' => $value,
    +                    'col' => $column,
    +                    'rows' => [$row],
    +                ];
    +            } else {
    +                $hashedValues[$hashCode]->rows[] = $row;
    +            }
    +        }
    +
    +        ksort($hashedValues);
    +
    +        foreach ($hashedValues as $hashedValue) {
    +            sort($hashedValue->rows);
    +            $rowStart = null;
    +            $rowEnd = null;
    +            $ranges = [];
    +
    +            foreach ($hashedValue->rows as $row) {
    +                if ($rowStart === null) {
    +                    $rowStart = $row;
    +                    $rowEnd = $row;
    +                } elseif ($rowEnd === $row - 1) {
    +                    $rowEnd = $row;
    +                } else {
    +                    if ($rowStart == $rowEnd) {
    +                        $ranges[] = $hashedValue->col . $rowStart;
    +                    } else {
    +                        $ranges[] = $hashedValue->col . $rowStart . ':' . $hashedValue->col . $rowEnd;
    +                    }
    +
    +                    $rowStart = $row;
    +                    $rowEnd = $row;
    +                }
    +            }
    +
    +            if ($rowStart !== null) {
    +                if ($rowStart == $rowEnd) {
    +                    $ranges[] = $hashedValue->col . $rowStart;
    +                } else {
    +                    $ranges[] = $hashedValue->col . $rowStart . ':' . $hashedValue->col . $rowEnd;
    +                }
    +            }
    +
    +            foreach ($ranges as $range) {
    +                $mergedCoordCollection[$range] = $hashedValue->value;
    +            }
    +        }
    +
    +        return $mergedCoordCollection;
    +    }
    +
    +    /**
    +     * Get the individual cell blocks from a range string, splitting by space and removing any $ characters.
    +     *
    +     * @param string $pRange
    +     *
    +     * @return string[]
    +     */
    +    private static function getCellBlocksFromRangeString($pRange)
    +    {
    +        return explode(' ', str_replace('$', '', strtoupper($pRange)));
    +    }
    +
    +    /**
    +     * Check that the given range is valid, i.e. that the start column and row are not greater than the end column and
    +     * row.
    +     *
    +     * @param string $cellBlock The original range, for displaying a meaningful error message
    +     * @param int $startColumnIndex
    +     * @param int $endColumnIndex
    +     * @param int $currentRow
    +     * @param int $endRow
    +     */
    +    private static function validateRange($cellBlock, $startColumnIndex, $endColumnIndex, $currentRow, $endRow)
    +    {
    +        if ($startColumnIndex >= $endColumnIndex || $currentRow > $endRow) {
    +            throw new Exception('Invalid range: "' . $cellBlock . '"');
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DataType.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DataType.php
    new file mode 100644
    index 00000000000..ba035791787
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DataType.php
    @@ -0,0 +1,85 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Cell;
    +
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +
    +class DataType
    +{
    +    // Data types
    +    const TYPE_STRING2 = 'str';
    +    const TYPE_STRING = 's';
    +    const TYPE_FORMULA = 'f';
    +    const TYPE_NUMERIC = 'n';
    +    const TYPE_BOOL = 'b';
    +    const TYPE_NULL = 'null';
    +    const TYPE_INLINE = 'inlineStr';
    +    const TYPE_ERROR = 'e';
    +
    +    /**
    +     * List of error codes.
    +     *
    +     * @var array
    +     */
    +    private static $errorCodes = [
    +        '#NULL!' => 0,
    +        '#DIV/0!' => 1,
    +        '#VALUE!' => 2,
    +        '#REF!' => 3,
    +        '#NAME?' => 4,
    +        '#NUM!' => 5,
    +        '#N/A' => 6,
    +    ];
    +
    +    /**
    +     * Get list of error codes.
    +     *
    +     * @return array
    +     */
    +    public static function getErrorCodes()
    +    {
    +        return self::$errorCodes;
    +    }
    +
    +    /**
    +     * Check a string that it satisfies Excel requirements.
    +     *
    +     * @param null|RichText|string $pValue Value to sanitize to an Excel string
    +     *
    +     * @return null|RichText|string Sanitized value
    +     */
    +    public static function checkString($pValue)
    +    {
    +        if ($pValue instanceof RichText) {
    +            // TODO: Sanitize Rich-Text string (max. character count is 32,767)
    +            return $pValue;
    +        }
    +
    +        // string must never be longer than 32,767 characters, truncate if necessary
    +        $pValue = StringHelper::substring($pValue, 0, 32767);
    +
    +        // we require that newline is represented as "\n" in core, not as "\r\n" or "\r"
    +        $pValue = str_replace(["\r\n", "\r"], "\n", $pValue);
    +
    +        return $pValue;
    +    }
    +
    +    /**
    +     * Check a value that it is a valid error code.
    +     *
    +     * @param mixed $pValue Value to sanitize to an Excel error code
    +     *
    +     * @return string Sanitized value
    +     */
    +    public static function checkErrorCode($pValue)
    +    {
    +        $pValue = (string) $pValue;
    +
    +        if (!isset(self::$errorCodes[$pValue])) {
    +            $pValue = '#NULL!';
    +        }
    +
    +        return $pValue;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DataValidation.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DataValidation.php
    new file mode 100644
    index 00000000000..a041ea0e0ab
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DataValidation.php
    @@ -0,0 +1,481 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Cell;
    +
    +class DataValidation
    +{
    +    // Data validation types
    +    const TYPE_NONE = 'none';
    +    const TYPE_CUSTOM = 'custom';
    +    const TYPE_DATE = 'date';
    +    const TYPE_DECIMAL = 'decimal';
    +    const TYPE_LIST = 'list';
    +    const TYPE_TEXTLENGTH = 'textLength';
    +    const TYPE_TIME = 'time';
    +    const TYPE_WHOLE = 'whole';
    +
    +    // Data validation error styles
    +    const STYLE_STOP = 'stop';
    +    const STYLE_WARNING = 'warning';
    +    const STYLE_INFORMATION = 'information';
    +
    +    // Data validation operators
    +    const OPERATOR_BETWEEN = 'between';
    +    const OPERATOR_EQUAL = 'equal';
    +    const OPERATOR_GREATERTHAN = 'greaterThan';
    +    const OPERATOR_GREATERTHANOREQUAL = 'greaterThanOrEqual';
    +    const OPERATOR_LESSTHAN = 'lessThan';
    +    const OPERATOR_LESSTHANOREQUAL = 'lessThanOrEqual';
    +    const OPERATOR_NOTBETWEEN = 'notBetween';
    +    const OPERATOR_NOTEQUAL = 'notEqual';
    +
    +    /**
    +     * Formula 1.
    +     *
    +     * @var string
    +     */
    +    private $formula1 = '';
    +
    +    /**
    +     * Formula 2.
    +     *
    +     * @var string
    +     */
    +    private $formula2 = '';
    +
    +    /**
    +     * Type.
    +     *
    +     * @var string
    +     */
    +    private $type = self::TYPE_NONE;
    +
    +    /**
    +     * Error style.
    +     *
    +     * @var string
    +     */
    +    private $errorStyle = self::STYLE_STOP;
    +
    +    /**
    +     * Operator.
    +     *
    +     * @var string
    +     */
    +    private $operator = self::OPERATOR_BETWEEN;
    +
    +    /**
    +     * Allow Blank.
    +     *
    +     * @var bool
    +     */
    +    private $allowBlank = false;
    +
    +    /**
    +     * Show DropDown.
    +     *
    +     * @var bool
    +     */
    +    private $showDropDown = false;
    +
    +    /**
    +     * Show InputMessage.
    +     *
    +     * @var bool
    +     */
    +    private $showInputMessage = false;
    +
    +    /**
    +     * Show ErrorMessage.
    +     *
    +     * @var bool
    +     */
    +    private $showErrorMessage = false;
    +
    +    /**
    +     * Error title.
    +     *
    +     * @var string
    +     */
    +    private $errorTitle = '';
    +
    +    /**
    +     * Error.
    +     *
    +     * @var string
    +     */
    +    private $error = '';
    +
    +    /**
    +     * Prompt title.
    +     *
    +     * @var string
    +     */
    +    private $promptTitle = '';
    +
    +    /**
    +     * Prompt.
    +     *
    +     * @var string
    +     */
    +    private $prompt = '';
    +
    +    /**
    +     * Create a new DataValidation.
    +     */
    +    public function __construct()
    +    {
    +    }
    +
    +    /**
    +     * Get Formula 1.
    +     *
    +     * @return string
    +     */
    +    public function getFormula1()
    +    {
    +        return $this->formula1;
    +    }
    +
    +    /**
    +     * Set Formula 1.
    +     *
    +     * @param string $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setFormula1($value)
    +    {
    +        $this->formula1 = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Formula 2.
    +     *
    +     * @return string
    +     */
    +    public function getFormula2()
    +    {
    +        return $this->formula2;
    +    }
    +
    +    /**
    +     * Set Formula 2.
    +     *
    +     * @param string $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setFormula2($value)
    +    {
    +        $this->formula2 = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Type.
    +     *
    +     * @return string
    +     */
    +    public function getType()
    +    {
    +        return $this->type;
    +    }
    +
    +    /**
    +     * Set Type.
    +     *
    +     * @param string $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setType($value)
    +    {
    +        $this->type = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Error style.
    +     *
    +     * @return string
    +     */
    +    public function getErrorStyle()
    +    {
    +        return $this->errorStyle;
    +    }
    +
    +    /**
    +     * Set Error style.
    +     *
    +     * @param string $value see self::STYLE_*
    +     *
    +     * @return DataValidation
    +     */
    +    public function setErrorStyle($value)
    +    {
    +        $this->errorStyle = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Operator.
    +     *
    +     * @return string
    +     */
    +    public function getOperator()
    +    {
    +        return $this->operator;
    +    }
    +
    +    /**
    +     * Set Operator.
    +     *
    +     * @param string $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setOperator($value)
    +    {
    +        $this->operator = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Allow Blank.
    +     *
    +     * @return bool
    +     */
    +    public function getAllowBlank()
    +    {
    +        return $this->allowBlank;
    +    }
    +
    +    /**
    +     * Set Allow Blank.
    +     *
    +     * @param bool $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setAllowBlank($value)
    +    {
    +        $this->allowBlank = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Show DropDown.
    +     *
    +     * @return bool
    +     */
    +    public function getShowDropDown()
    +    {
    +        return $this->showDropDown;
    +    }
    +
    +    /**
    +     * Set Show DropDown.
    +     *
    +     * @param bool $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setShowDropDown($value)
    +    {
    +        $this->showDropDown = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Show InputMessage.
    +     *
    +     * @return bool
    +     */
    +    public function getShowInputMessage()
    +    {
    +        return $this->showInputMessage;
    +    }
    +
    +    /**
    +     * Set Show InputMessage.
    +     *
    +     * @param bool $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setShowInputMessage($value)
    +    {
    +        $this->showInputMessage = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Show ErrorMessage.
    +     *
    +     * @return bool
    +     */
    +    public function getShowErrorMessage()
    +    {
    +        return $this->showErrorMessage;
    +    }
    +
    +    /**
    +     * Set Show ErrorMessage.
    +     *
    +     * @param bool $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setShowErrorMessage($value)
    +    {
    +        $this->showErrorMessage = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Error title.
    +     *
    +     * @return string
    +     */
    +    public function getErrorTitle()
    +    {
    +        return $this->errorTitle;
    +    }
    +
    +    /**
    +     * Set Error title.
    +     *
    +     * @param string $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setErrorTitle($value)
    +    {
    +        $this->errorTitle = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Error.
    +     *
    +     * @return string
    +     */
    +    public function getError()
    +    {
    +        return $this->error;
    +    }
    +
    +    /**
    +     * Set Error.
    +     *
    +     * @param string $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setError($value)
    +    {
    +        $this->error = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Prompt title.
    +     *
    +     * @return string
    +     */
    +    public function getPromptTitle()
    +    {
    +        return $this->promptTitle;
    +    }
    +
    +    /**
    +     * Set Prompt title.
    +     *
    +     * @param string $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setPromptTitle($value)
    +    {
    +        $this->promptTitle = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Prompt.
    +     *
    +     * @return string
    +     */
    +    public function getPrompt()
    +    {
    +        return $this->prompt;
    +    }
    +
    +    /**
    +     * Set Prompt.
    +     *
    +     * @param string $value
    +     *
    +     * @return DataValidation
    +     */
    +    public function setPrompt($value)
    +    {
    +        $this->prompt = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        return md5(
    +            $this->formula1 .
    +            $this->formula2 .
    +            $this->type .
    +            $this->errorStyle .
    +            $this->operator .
    +            ($this->allowBlank ? 't' : 'f') .
    +            ($this->showDropDown ? 't' : 'f') .
    +            ($this->showInputMessage ? 't' : 'f') .
    +            ($this->showErrorMessage ? 't' : 'f') .
    +            $this->errorTitle .
    +            $this->error .
    +            $this->promptTitle .
    +            $this->prompt .
    +            __CLASS__
    +        );
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DataValidator.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DataValidator.php
    new file mode 100644
    index 00000000000..430d81b96e4
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DataValidator.php
    @@ -0,0 +1,77 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Cell;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Calculation\Functions;
    +use PhpOffice\PhpSpreadsheet\Exception;
    +
    +/**
    + * Validate a cell value according to its validation rules.
    + */
    +class DataValidator
    +{
    +    /**
    +     * Does this cell contain valid value?
    +     *
    +     * @param Cell $cell Cell to check the value
    +     *
    +     * @return bool
    +     */
    +    public function isValid(Cell $cell)
    +    {
    +        if (!$cell->hasDataValidation()) {
    +            return true;
    +        }
    +
    +        $cellValue = $cell->getValue();
    +        $dataValidation = $cell->getDataValidation();
    +
    +        if (!$dataValidation->getAllowBlank() && ($cellValue === null || $cellValue === '')) {
    +            return false;
    +        }
    +
    +        // TODO: write check on all cases
    +        switch ($dataValidation->getType()) {
    +            case DataValidation::TYPE_LIST:
    +                return $this->isValueInList($cell);
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Does this cell contain valid value, based on list?
    +     *
    +     * @param Cell $cell Cell to check the value
    +     *
    +     * @return bool
    +     */
    +    private function isValueInList(Cell $cell)
    +    {
    +        $cellValue = $cell->getValue();
    +        $dataValidation = $cell->getDataValidation();
    +
    +        $formula1 = $dataValidation->getFormula1();
    +        if (!empty($formula1)) {
    +            // inline values list
    +            if ($formula1[0] === '"') {
    +                return in_array(strtolower($cellValue), explode(',', strtolower(trim($formula1, '"'))), true);
    +            } elseif (strpos($formula1, ':') > 0) {
    +                // values list cells
    +                $matchFormula = '=MATCH(' . $cell->getCoordinate() . ', ' . $formula1 . ', 0)';
    +                $calculation = Calculation::getInstance($cell->getWorksheet()->getParent());
    +
    +                try {
    +                    $result = $calculation->calculateFormula($matchFormula, $cell->getCoordinate(), $cell);
    +
    +                    return $result !== Functions::NA();
    +                } catch (Exception $ex) {
    +                    return false;
    +                }
    +            }
    +        }
    +
    +        return true;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DefaultValueBinder.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DefaultValueBinder.php
    new file mode 100644
    index 00000000000..7cbb6cca27f
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/DefaultValueBinder.php
    @@ -0,0 +1,80 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Cell;
    +
    +use DateTimeInterface;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +
    +class DefaultValueBinder implements IValueBinder
    +{
    +    /**
    +     * Bind value to a cell.
    +     *
    +     * @param Cell $cell Cell to bind value to
    +     * @param mixed $value Value to bind in cell
    +     *
    +     * @return bool
    +     */
    +    public function bindValue(Cell $cell, $value)
    +    {
    +        // sanitize UTF-8 strings
    +        if (is_string($value)) {
    +            $value = StringHelper::sanitizeUTF8($value);
    +        } elseif (is_object($value)) {
    +            // Handle any objects that might be injected
    +            if ($value instanceof DateTimeInterface) {
    +                $value = $value->format('Y-m-d H:i:s');
    +            } elseif (!($value instanceof RichText)) {
    +                $value = (string) $value;
    +            }
    +        }
    +
    +        // Set value explicit
    +        $cell->setValueExplicit($value, static::dataTypeForValue($value));
    +
    +        // Done!
    +        return true;
    +    }
    +
    +    /**
    +     * DataType for value.
    +     *
    +     * @param mixed $pValue
    +     *
    +     * @return string
    +     */
    +    public static function dataTypeForValue($pValue)
    +    {
    +        // Match the value against a few data types
    +        if ($pValue === null) {
    +            return DataType::TYPE_NULL;
    +        } elseif ($pValue === '') {
    +            return DataType::TYPE_STRING;
    +        } elseif ($pValue instanceof RichText) {
    +            return DataType::TYPE_INLINE;
    +        } elseif ($pValue[0] === '=' && strlen($pValue) > 1) {
    +            return DataType::TYPE_FORMULA;
    +        } elseif (is_bool($pValue)) {
    +            return DataType::TYPE_BOOL;
    +        } elseif (is_float($pValue) || is_int($pValue)) {
    +            return DataType::TYPE_NUMERIC;
    +        } elseif (preg_match('/^[\+\-]?(\d+\\.?\d*|\d*\\.?\d+)([Ee][\-\+]?[0-2]?\d{1,3})?$/', $pValue)) {
    +            $tValue = ltrim($pValue, '+-');
    +            if (is_string($pValue) && $tValue[0] === '0' && strlen($tValue) > 1 && $tValue[1] !== '.') {
    +                return DataType::TYPE_STRING;
    +            } elseif ((strpos($pValue, '.') === false) && ($pValue > PHP_INT_MAX)) {
    +                return DataType::TYPE_STRING;
    +            }
    +
    +            return DataType::TYPE_NUMERIC;
    +        } elseif (is_string($pValue)) {
    +            $errorCodes = DataType::getErrorCodes();
    +            if (isset($errorCodes[$pValue])) {
    +                return DataType::TYPE_ERROR;
    +            }
    +        }
    +
    +        return DataType::TYPE_STRING;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/Hyperlink.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/Hyperlink.php
    new file mode 100644
    index 00000000000..e17c20d9be0
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/Hyperlink.php
    @@ -0,0 +1,113 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Cell;
    +
    +class Hyperlink
    +{
    +    /**
    +     * URL to link the cell to.
    +     *
    +     * @var string
    +     */
    +    private $url;
    +
    +    /**
    +     * Tooltip to display on the hyperlink.
    +     *
    +     * @var string
    +     */
    +    private $tooltip;
    +
    +    /**
    +     * Create a new Hyperlink.
    +     *
    +     * @param string $pUrl Url to link the cell to
    +     * @param string $pTooltip Tooltip to display on the hyperlink
    +     */
    +    public function __construct($pUrl = '', $pTooltip = '')
    +    {
    +        // Initialise member variables
    +        $this->url = $pUrl;
    +        $this->tooltip = $pTooltip;
    +    }
    +
    +    /**
    +     * Get URL.
    +     *
    +     * @return string
    +     */
    +    public function getUrl()
    +    {
    +        return $this->url;
    +    }
    +
    +    /**
    +     * Set URL.
    +     *
    +     * @param string $value
    +     *
    +     * @return Hyperlink
    +     */
    +    public function setUrl($value)
    +    {
    +        $this->url = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get tooltip.
    +     *
    +     * @return string
    +     */
    +    public function getTooltip()
    +    {
    +        return $this->tooltip;
    +    }
    +
    +    /**
    +     * Set tooltip.
    +     *
    +     * @param string $value
    +     *
    +     * @return Hyperlink
    +     */
    +    public function setTooltip($value)
    +    {
    +        $this->tooltip = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Is this hyperlink internal? (to another worksheet).
    +     *
    +     * @return bool
    +     */
    +    public function isInternal()
    +    {
    +        return strpos($this->url, 'sheet://') !== false;
    +    }
    +
    +    /**
    +     * @return string
    +     */
    +    public function getTypeHyperlink()
    +    {
    +        return $this->isInternal() ? '' : 'External';
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        return md5(
    +            $this->url .
    +            $this->tooltip .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/IValueBinder.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/IValueBinder.php
    new file mode 100644
    index 00000000000..5af9f5f60e5
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Cell/IValueBinder.php
    @@ -0,0 +1,16 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Cell;
    +
    +interface IValueBinder
    +{
    +    /**
    +     * Bind value to a cell.
    +     *
    +     * @param Cell $cell Cell to bind value to
    +     * @param mixed $value Value to bind in cell
    +     *
    +     * @return bool
    +     */
    +    public function bindValue(Cell $cell, $value);
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Axis.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Axis.php
    new file mode 100644
    index 00000000000..52f70431453
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Axis.php
    @@ -0,0 +1,557 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart;
    +
    +/**
    + * Created by PhpStorm.
    + * User: Wiktor Trzonkowski
    + * Date: 6/17/14
    + * Time: 12:11 PM.
    + */
    +class Axis extends Properties
    +{
    +    /**
    +     * Axis Number.
    +     *
    +     * @var array of mixed
    +     */
    +    private $axisNumber = [
    +        'format' => self::FORMAT_CODE_GENERAL,
    +        'source_linked' => 1,
    +    ];
    +
    +    /**
    +     * Axis Options.
    +     *
    +     * @var array of mixed
    +     */
    +    private $axisOptions = [
    +        'minimum' => null,
    +        'maximum' => null,
    +        'major_unit' => null,
    +        'minor_unit' => null,
    +        'orientation' => self::ORIENTATION_NORMAL,
    +        'minor_tick_mark' => self::TICK_MARK_NONE,
    +        'major_tick_mark' => self::TICK_MARK_NONE,
    +        'axis_labels' => self::AXIS_LABELS_NEXT_TO,
    +        'horizontal_crosses' => self::HORIZONTAL_CROSSES_AUTOZERO,
    +        'horizontal_crosses_value' => null,
    +    ];
    +
    +    /**
    +     * Fill Properties.
    +     *
    +     * @var array of mixed
    +     */
    +    private $fillProperties = [
    +        'type' => self::EXCEL_COLOR_TYPE_ARGB,
    +        'value' => null,
    +        'alpha' => 0,
    +    ];
    +
    +    /**
    +     * Line Properties.
    +     *
    +     * @var array of mixed
    +     */
    +    private $lineProperties = [
    +        'type' => self::EXCEL_COLOR_TYPE_ARGB,
    +        'value' => null,
    +        'alpha' => 0,
    +    ];
    +
    +    /**
    +     * Line Style Properties.
    +     *
    +     * @var array of mixed
    +     */
    +    private $lineStyleProperties = [
    +        'width' => '9525',
    +        'compound' => self::LINE_STYLE_COMPOUND_SIMPLE,
    +        'dash' => self::LINE_STYLE_DASH_SOLID,
    +        'cap' => self::LINE_STYLE_CAP_FLAT,
    +        'join' => self::LINE_STYLE_JOIN_BEVEL,
    +        'arrow' => [
    +            'head' => [
    +                'type' => self::LINE_STYLE_ARROW_TYPE_NOARROW,
    +                'size' => self::LINE_STYLE_ARROW_SIZE_5,
    +            ],
    +            'end' => [
    +                'type' => self::LINE_STYLE_ARROW_TYPE_NOARROW,
    +                'size' => self::LINE_STYLE_ARROW_SIZE_8,
    +            ],
    +        ],
    +    ];
    +
    +    /**
    +     * Shadow Properties.
    +     *
    +     * @var array of mixed
    +     */
    +    private $shadowProperties = [
    +        'presets' => self::SHADOW_PRESETS_NOSHADOW,
    +        'effect' => null,
    +        'color' => [
    +            'type' => self::EXCEL_COLOR_TYPE_STANDARD,
    +            'value' => 'black',
    +            'alpha' => 40,
    +        ],
    +        'size' => [
    +            'sx' => null,
    +            'sy' => null,
    +            'kx' => null,
    +        ],
    +        'blur' => null,
    +        'direction' => null,
    +        'distance' => null,
    +        'algn' => null,
    +        'rotWithShape' => null,
    +    ];
    +
    +    /**
    +     * Glow Properties.
    +     *
    +     * @var array of mixed
    +     */
    +    private $glowProperties = [
    +        'size' => null,
    +        'color' => [
    +            'type' => self::EXCEL_COLOR_TYPE_STANDARD,
    +            'value' => 'black',
    +            'alpha' => 40,
    +        ],
    +    ];
    +
    +    /**
    +     * Soft Edge Properties.
    +     *
    +     * @var array of mixed
    +     */
    +    private $softEdges = [
    +        'size' => null,
    +    ];
    +
    +    /**
    +     * Get Series Data Type.
    +     *
    +     * @param mixed $format_code
    +     *
    +     * @return string
    +     */
    +    public function setAxisNumberProperties($format_code)
    +    {
    +        $this->axisNumber['format'] = (string) $format_code;
    +        $this->axisNumber['source_linked'] = 0;
    +    }
    +
    +    /**
    +     * Get Axis Number Format Data Type.
    +     *
    +     * @return string
    +     */
    +    public function getAxisNumberFormat()
    +    {
    +        return $this->axisNumber['format'];
    +    }
    +
    +    /**
    +     * Get Axis Number Source Linked.
    +     *
    +     * @return string
    +     */
    +    public function getAxisNumberSourceLinked()
    +    {
    +        return (string) $this->axisNumber['source_linked'];
    +    }
    +
    +    /**
    +     * Set Axis Options Properties.
    +     *
    +     * @param string $axis_labels
    +     * @param string $horizontal_crosses_value
    +     * @param string $horizontal_crosses
    +     * @param string $axis_orientation
    +     * @param string $major_tmt
    +     * @param string $minor_tmt
    +     * @param string $minimum
    +     * @param string $maximum
    +     * @param string $major_unit
    +     * @param string $minor_unit
    +     */
    +    public function setAxisOptionsProperties($axis_labels, $horizontal_crosses_value = null, $horizontal_crosses = null, $axis_orientation = null, $major_tmt = null, $minor_tmt = null, $minimum = null, $maximum = null, $major_unit = null, $minor_unit = null)
    +    {
    +        $this->axisOptions['axis_labels'] = (string) $axis_labels;
    +        ($horizontal_crosses_value !== null) ? $this->axisOptions['horizontal_crosses_value'] = (string) $horizontal_crosses_value : null;
    +        ($horizontal_crosses !== null) ? $this->axisOptions['horizontal_crosses'] = (string) $horizontal_crosses : null;
    +        ($axis_orientation !== null) ? $this->axisOptions['orientation'] = (string) $axis_orientation : null;
    +        ($major_tmt !== null) ? $this->axisOptions['major_tick_mark'] = (string) $major_tmt : null;
    +        ($minor_tmt !== null) ? $this->axisOptions['minor_tick_mark'] = (string) $minor_tmt : null;
    +        ($minor_tmt !== null) ? $this->axisOptions['minor_tick_mark'] = (string) $minor_tmt : null;
    +        ($minimum !== null) ? $this->axisOptions['minimum'] = (string) $minimum : null;
    +        ($maximum !== null) ? $this->axisOptions['maximum'] = (string) $maximum : null;
    +        ($major_unit !== null) ? $this->axisOptions['major_unit'] = (string) $major_unit : null;
    +        ($minor_unit !== null) ? $this->axisOptions['minor_unit'] = (string) $minor_unit : null;
    +    }
    +
    +    /**
    +     * Get Axis Options Property.
    +     *
    +     * @param string $property
    +     *
    +     * @return string
    +     */
    +    public function getAxisOptionsProperty($property)
    +    {
    +        return $this->axisOptions[$property];
    +    }
    +
    +    /**
    +     * Set Axis Orientation Property.
    +     *
    +     * @param string $orientation
    +     */
    +    public function setAxisOrientation($orientation)
    +    {
    +        $this->axisOptions['orientation'] = (string) $orientation;
    +    }
    +
    +    /**
    +     * Set Fill Property.
    +     *
    +     * @param string $color
    +     * @param int $alpha
    +     * @param string $type
    +     */
    +    public function setFillParameters($color, $alpha = 0, $type = self::EXCEL_COLOR_TYPE_ARGB)
    +    {
    +        $this->fillProperties = $this->setColorProperties($color, $alpha, $type);
    +    }
    +
    +    /**
    +     * Set Line Property.
    +     *
    +     * @param string $color
    +     * @param int $alpha
    +     * @param string $type
    +     */
    +    public function setLineParameters($color, $alpha = 0, $type = self::EXCEL_COLOR_TYPE_ARGB)
    +    {
    +        $this->lineProperties = $this->setColorProperties($color, $alpha, $type);
    +    }
    +
    +    /**
    +     * Get Fill Property.
    +     *
    +     * @param string $property
    +     *
    +     * @return string
    +     */
    +    public function getFillProperty($property)
    +    {
    +        return $this->fillProperties[$property];
    +    }
    +
    +    /**
    +     * Get Line Property.
    +     *
    +     * @param string $property
    +     *
    +     * @return string
    +     */
    +    public function getLineProperty($property)
    +    {
    +        return $this->lineProperties[$property];
    +    }
    +
    +    /**
    +     * Set Line Style Properties.
    +     *
    +     * @param float $line_width
    +     * @param string $compound_type
    +     * @param string $dash_type
    +     * @param string $cap_type
    +     * @param string $join_type
    +     * @param string $head_arrow_type
    +     * @param string $head_arrow_size
    +     * @param string $end_arrow_type
    +     * @param string $end_arrow_size
    +     */
    +    public function setLineStyleProperties($line_width = null, $compound_type = null, $dash_type = null, $cap_type = null, $join_type = null, $head_arrow_type = null, $head_arrow_size = null, $end_arrow_type = null, $end_arrow_size = null)
    +    {
    +        ($line_width !== null) ? $this->lineStyleProperties['width'] = $this->getExcelPointsWidth((float) $line_width) : null;
    +        ($compound_type !== null) ? $this->lineStyleProperties['compound'] = (string) $compound_type : null;
    +        ($dash_type !== null) ? $this->lineStyleProperties['dash'] = (string) $dash_type : null;
    +        ($cap_type !== null) ? $this->lineStyleProperties['cap'] = (string) $cap_type : null;
    +        ($join_type !== null) ? $this->lineStyleProperties['join'] = (string) $join_type : null;
    +        ($head_arrow_type !== null) ? $this->lineStyleProperties['arrow']['head']['type'] = (string) $head_arrow_type : null;
    +        ($head_arrow_size !== null) ? $this->lineStyleProperties['arrow']['head']['size'] = (string) $head_arrow_size : null;
    +        ($end_arrow_type !== null) ? $this->lineStyleProperties['arrow']['end']['type'] = (string) $end_arrow_type : null;
    +        ($end_arrow_size !== null) ? $this->lineStyleProperties['arrow']['end']['size'] = (string) $end_arrow_size : null;
    +    }
    +
    +    /**
    +     * Get Line Style Property.
    +     *
    +     * @param array|string $elements
    +     *
    +     * @return string
    +     */
    +    public function getLineStyleProperty($elements)
    +    {
    +        return $this->getArrayElementsValue($this->lineStyleProperties, $elements);
    +    }
    +
    +    /**
    +     * Get Line Style Arrow Excel Width.
    +     *
    +     * @param string $arrow
    +     *
    +     * @return string
    +     */
    +    public function getLineStyleArrowWidth($arrow)
    +    {
    +        return $this->getLineStyleArrowSize($this->lineStyleProperties['arrow'][$arrow]['size'], 'w');
    +    }
    +
    +    /**
    +     * Get Line Style Arrow Excel Length.
    +     *
    +     * @param string $arrow
    +     *
    +     * @return string
    +     */
    +    public function getLineStyleArrowLength($arrow)
    +    {
    +        return $this->getLineStyleArrowSize($this->lineStyleProperties['arrow'][$arrow]['size'], 'len');
    +    }
    +
    +    /**
    +     * Set Shadow Properties.
    +     *
    +     * @param int $sh_presets
    +     * @param string $sh_color_value
    +     * @param string $sh_color_type
    +     * @param string $sh_color_alpha
    +     * @param float $sh_blur
    +     * @param int $sh_angle
    +     * @param float $sh_distance
    +     */
    +    public function setShadowProperties($sh_presets, $sh_color_value = null, $sh_color_type = null, $sh_color_alpha = null, $sh_blur = null, $sh_angle = null, $sh_distance = null)
    +    {
    +        $this->setShadowPresetsProperties((int) $sh_presets)
    +            ->setShadowColor(
    +                $sh_color_value === null ? $this->shadowProperties['color']['value'] : $sh_color_value,
    +                $sh_color_alpha === null ? (int) $this->shadowProperties['color']['alpha'] : $sh_color_alpha,
    +                $sh_color_type === null ? $this->shadowProperties['color']['type'] : $sh_color_type
    +            )
    +            ->setShadowBlur($sh_blur)
    +            ->setShadowAngle($sh_angle)
    +            ->setShadowDistance($sh_distance);
    +    }
    +
    +    /**
    +     * Set Shadow Color.
    +     *
    +     * @param int $shadow_presets
    +     *
    +     * @return Axis
    +     */
    +    private function setShadowPresetsProperties($shadow_presets)
    +    {
    +        $this->shadowProperties['presets'] = $shadow_presets;
    +        $this->setShadowProperiesMapValues($this->getShadowPresetsMap($shadow_presets));
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Shadow Properties from Maped Values.
    +     *
    +     * @param array $properties_map
    +     * @param * $reference
    +     *
    +     * @return Axis
    +     */
    +    private function setShadowProperiesMapValues(array $properties_map, &$reference = null)
    +    {
    +        $base_reference = $reference;
    +        foreach ($properties_map as $property_key => $property_val) {
    +            if (is_array($property_val)) {
    +                if ($reference === null) {
    +                    $reference = &$this->shadowProperties[$property_key];
    +                } else {
    +                    $reference = &$reference[$property_key];
    +                }
    +                $this->setShadowProperiesMapValues($property_val, $reference);
    +            } else {
    +                if ($base_reference === null) {
    +                    $this->shadowProperties[$property_key] = $property_val;
    +                } else {
    +                    $reference[$property_key] = $property_val;
    +                }
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Shadow Color.
    +     *
    +     * @param string $color
    +     * @param int $alpha
    +     * @param string $type
    +     *
    +     * @return Axis
    +     */
    +    private function setShadowColor($color, $alpha, $type)
    +    {
    +        $this->shadowProperties['color'] = $this->setColorProperties($color, $alpha, $type);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Shadow Blur.
    +     *
    +     * @param float $blur
    +     *
    +     * @return Axis
    +     */
    +    private function setShadowBlur($blur)
    +    {
    +        if ($blur !== null) {
    +            $this->shadowProperties['blur'] = (string) $this->getExcelPointsWidth($blur);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Shadow Angle.
    +     *
    +     * @param int $angle
    +     *
    +     * @return Axis
    +     */
    +    private function setShadowAngle($angle)
    +    {
    +        if ($angle !== null) {
    +            $this->shadowProperties['direction'] = (string) $this->getExcelPointsAngle($angle);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Shadow Distance.
    +     *
    +     * @param float $distance
    +     *
    +     * @return Axis
    +     */
    +    private function setShadowDistance($distance)
    +    {
    +        if ($distance !== null) {
    +            $this->shadowProperties['distance'] = (string) $this->getExcelPointsWidth($distance);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Shadow Property.
    +     *
    +     * @param string|string[] $elements
    +     *
    +     * @return null|array|int|string
    +     */
    +    public function getShadowProperty($elements)
    +    {
    +        return $this->getArrayElementsValue($this->shadowProperties, $elements);
    +    }
    +
    +    /**
    +     * Set Glow Properties.
    +     *
    +     * @param float $size
    +     * @param string $color_value
    +     * @param int $color_alpha
    +     * @param string $color_type
    +     */
    +    public function setGlowProperties($size, $color_value = null, $color_alpha = null, $color_type = null)
    +    {
    +        $this->setGlowSize($size)
    +            ->setGlowColor(
    +                $color_value === null ? $this->glowProperties['color']['value'] : $color_value,
    +                $color_alpha === null ? (int) $this->glowProperties['color']['alpha'] : $color_alpha,
    +                $color_type === null ? $this->glowProperties['color']['type'] : $color_type
    +            );
    +    }
    +
    +    /**
    +     * Get Glow Property.
    +     *
    +     * @param array|string $property
    +     *
    +     * @return string
    +     */
    +    public function getGlowProperty($property)
    +    {
    +        return $this->getArrayElementsValue($this->glowProperties, $property);
    +    }
    +
    +    /**
    +     * Set Glow Color.
    +     *
    +     * @param float $size
    +     *
    +     * @return Axis
    +     */
    +    private function setGlowSize($size)
    +    {
    +        if ($size !== null) {
    +            $this->glowProperties['size'] = $this->getExcelPointsWidth($size);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Glow Color.
    +     *
    +     * @param string $color
    +     * @param int $alpha
    +     * @param string $type
    +     *
    +     * @return Axis
    +     */
    +    private function setGlowColor($color, $alpha, $type)
    +    {
    +        $this->glowProperties['color'] = $this->setColorProperties($color, $alpha, $type);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Soft Edges Size.
    +     *
    +     * @param float $size
    +     */
    +    public function setSoftEdges($size)
    +    {
    +        if ($size !== null) {
    +            $softEdges['size'] = (string) $this->getExcelPointsWidth($size);
    +        }
    +    }
    +
    +    /**
    +     * Get Soft Edges Size.
    +     *
    +     * @return string
    +     */
    +    public function getSoftEdgesSize()
    +    {
    +        return $this->softEdges['size'];
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Chart.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Chart.php
    new file mode 100644
    index 00000000000..3d09a041d57
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Chart.php
    @@ -0,0 +1,680 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart;
    +
    +use PhpOffice\PhpSpreadsheet\Settings;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +class Chart
    +{
    +    /**
    +     * Chart Name.
    +     *
    +     * @var string
    +     */
    +    private $name = '';
    +
    +    /**
    +     * Worksheet.
    +     *
    +     * @var Worksheet
    +     */
    +    private $worksheet;
    +
    +    /**
    +     * Chart Title.
    +     *
    +     * @var Title
    +     */
    +    private $title;
    +
    +    /**
    +     * Chart Legend.
    +     *
    +     * @var Legend
    +     */
    +    private $legend;
    +
    +    /**
    +     * X-Axis Label.
    +     *
    +     * @var Title
    +     */
    +    private $xAxisLabel;
    +
    +    /**
    +     * Y-Axis Label.
    +     *
    +     * @var Title
    +     */
    +    private $yAxisLabel;
    +
    +    /**
    +     * Chart Plot Area.
    +     *
    +     * @var PlotArea
    +     */
    +    private $plotArea;
    +
    +    /**
    +     * Plot Visible Only.
    +     *
    +     * @var bool
    +     */
    +    private $plotVisibleOnly = true;
    +
    +    /**
    +     * Display Blanks as.
    +     *
    +     * @var string
    +     */
    +    private $displayBlanksAs = '0';
    +
    +    /**
    +     * Chart Asix Y as.
    +     *
    +     * @var Axis
    +     */
    +    private $yAxis;
    +
    +    /**
    +     * Chart Asix X as.
    +     *
    +     * @var Axis
    +     */
    +    private $xAxis;
    +
    +    /**
    +     * Chart Major Gridlines as.
    +     *
    +     * @var GridLines
    +     */
    +    private $majorGridlines;
    +
    +    /**
    +     * Chart Minor Gridlines as.
    +     *
    +     * @var GridLines
    +     */
    +    private $minorGridlines;
    +
    +    /**
    +     * Top-Left Cell Position.
    +     *
    +     * @var string
    +     */
    +    private $topLeftCellRef = 'A1';
    +
    +    /**
    +     * Top-Left X-Offset.
    +     *
    +     * @var int
    +     */
    +    private $topLeftXOffset = 0;
    +
    +    /**
    +     * Top-Left Y-Offset.
    +     *
    +     * @var int
    +     */
    +    private $topLeftYOffset = 0;
    +
    +    /**
    +     * Bottom-Right Cell Position.
    +     *
    +     * @var string
    +     */
    +    private $bottomRightCellRef = 'A1';
    +
    +    /**
    +     * Bottom-Right X-Offset.
    +     *
    +     * @var int
    +     */
    +    private $bottomRightXOffset = 10;
    +
    +    /**
    +     * Bottom-Right Y-Offset.
    +     *
    +     * @var int
    +     */
    +    private $bottomRightYOffset = 10;
    +
    +    /**
    +     * Create a new Chart.
    +     *
    +     * @param mixed $name
    +     * @param null|Title $title
    +     * @param null|Legend $legend
    +     * @param null|PlotArea $plotArea
    +     * @param mixed $plotVisibleOnly
    +     * @param mixed $displayBlanksAs
    +     * @param null|Title $xAxisLabel
    +     * @param null|Title $yAxisLabel
    +     * @param null|Axis $xAxis
    +     * @param null|Axis $yAxis
    +     * @param null|GridLines $majorGridlines
    +     * @param null|GridLines $minorGridlines
    +     */
    +    public function __construct($name, Title $title = null, Legend $legend = null, PlotArea $plotArea = null, $plotVisibleOnly = true, $displayBlanksAs = '0', Title $xAxisLabel = null, Title $yAxisLabel = null, Axis $xAxis = null, Axis $yAxis = null, GridLines $majorGridlines = null, GridLines $minorGridlines = null)
    +    {
    +        $this->name = $name;
    +        $this->title = $title;
    +        $this->legend = $legend;
    +        $this->xAxisLabel = $xAxisLabel;
    +        $this->yAxisLabel = $yAxisLabel;
    +        $this->plotArea = $plotArea;
    +        $this->plotVisibleOnly = $plotVisibleOnly;
    +        $this->displayBlanksAs = $displayBlanksAs;
    +        $this->xAxis = $xAxis;
    +        $this->yAxis = $yAxis;
    +        $this->majorGridlines = $majorGridlines;
    +        $this->minorGridlines = $minorGridlines;
    +    }
    +
    +    /**
    +     * Get Name.
    +     *
    +     * @return string
    +     */
    +    public function getName()
    +    {
    +        return $this->name;
    +    }
    +
    +    /**
    +     * Get Worksheet.
    +     *
    +     * @return Worksheet
    +     */
    +    public function getWorksheet()
    +    {
    +        return $this->worksheet;
    +    }
    +
    +    /**
    +     * Set Worksheet.
    +     *
    +     * @param Worksheet $pValue
    +     *
    +     * @return Chart
    +     */
    +    public function setWorksheet(Worksheet $pValue = null)
    +    {
    +        $this->worksheet = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Title.
    +     *
    +     * @return Title
    +     */
    +    public function getTitle()
    +    {
    +        return $this->title;
    +    }
    +
    +    /**
    +     * Set Title.
    +     *
    +     * @param Title $title
    +     *
    +     * @return Chart
    +     */
    +    public function setTitle(Title $title)
    +    {
    +        $this->title = $title;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Legend.
    +     *
    +     * @return Legend
    +     */
    +    public function getLegend()
    +    {
    +        return $this->legend;
    +    }
    +
    +    /**
    +     * Set Legend.
    +     *
    +     * @param Legend $legend
    +     *
    +     * @return Chart
    +     */
    +    public function setLegend(Legend $legend)
    +    {
    +        $this->legend = $legend;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get X-Axis Label.
    +     *
    +     * @return Title
    +     */
    +    public function getXAxisLabel()
    +    {
    +        return $this->xAxisLabel;
    +    }
    +
    +    /**
    +     * Set X-Axis Label.
    +     *
    +     * @param Title $label
    +     *
    +     * @return Chart
    +     */
    +    public function setXAxisLabel(Title $label)
    +    {
    +        $this->xAxisLabel = $label;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Y-Axis Label.
    +     *
    +     * @return Title
    +     */
    +    public function getYAxisLabel()
    +    {
    +        return $this->yAxisLabel;
    +    }
    +
    +    /**
    +     * Set Y-Axis Label.
    +     *
    +     * @param Title $label
    +     *
    +     * @return Chart
    +     */
    +    public function setYAxisLabel(Title $label)
    +    {
    +        $this->yAxisLabel = $label;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Plot Area.
    +     *
    +     * @return PlotArea
    +     */
    +    public function getPlotArea()
    +    {
    +        return $this->plotArea;
    +    }
    +
    +    /**
    +     * Get Plot Visible Only.
    +     *
    +     * @return bool
    +     */
    +    public function getPlotVisibleOnly()
    +    {
    +        return $this->plotVisibleOnly;
    +    }
    +
    +    /**
    +     * Set Plot Visible Only.
    +     *
    +     * @param bool $plotVisibleOnly
    +     *
    +     * @return Chart
    +     */
    +    public function setPlotVisibleOnly($plotVisibleOnly)
    +    {
    +        $this->plotVisibleOnly = $plotVisibleOnly;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Display Blanks as.
    +     *
    +     * @return string
    +     */
    +    public function getDisplayBlanksAs()
    +    {
    +        return $this->displayBlanksAs;
    +    }
    +
    +    /**
    +     * Set Display Blanks as.
    +     *
    +     * @param string $displayBlanksAs
    +     *
    +     * @return Chart
    +     */
    +    public function setDisplayBlanksAs($displayBlanksAs)
    +    {
    +        $this->displayBlanksAs = $displayBlanksAs;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get yAxis.
    +     *
    +     * @return Axis
    +     */
    +    public function getChartAxisY()
    +    {
    +        if ($this->yAxis !== null) {
    +            return $this->yAxis;
    +        }
    +
    +        return new Axis();
    +    }
    +
    +    /**
    +     * Get xAxis.
    +     *
    +     * @return Axis
    +     */
    +    public function getChartAxisX()
    +    {
    +        if ($this->xAxis !== null) {
    +            return $this->xAxis;
    +        }
    +
    +        return new Axis();
    +    }
    +
    +    /**
    +     * Get Major Gridlines.
    +     *
    +     * @return GridLines
    +     */
    +    public function getMajorGridlines()
    +    {
    +        if ($this->majorGridlines !== null) {
    +            return $this->majorGridlines;
    +        }
    +
    +        return new GridLines();
    +    }
    +
    +    /**
    +     * Get Minor Gridlines.
    +     *
    +     * @return GridLines
    +     */
    +    public function getMinorGridlines()
    +    {
    +        if ($this->minorGridlines !== null) {
    +            return $this->minorGridlines;
    +        }
    +
    +        return new GridLines();
    +    }
    +
    +    /**
    +     * Set the Top Left position for the chart.
    +     *
    +     * @param string $cell
    +     * @param int $xOffset
    +     * @param int $yOffset
    +     *
    +     * @return Chart
    +     */
    +    public function setTopLeftPosition($cell, $xOffset = null, $yOffset = null)
    +    {
    +        $this->topLeftCellRef = $cell;
    +        if ($xOffset !== null) {
    +            $this->setTopLeftXOffset($xOffset);
    +        }
    +        if ($yOffset !== null) {
    +            $this->setTopLeftYOffset($yOffset);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get the top left position of the chart.
    +     *
    +     * @return array an associative array containing the cell address, X-Offset and Y-Offset from the top left of that cell
    +     */
    +    public function getTopLeftPosition()
    +    {
    +        return [
    +            'cell' => $this->topLeftCellRef,
    +            'xOffset' => $this->topLeftXOffset,
    +            'yOffset' => $this->topLeftYOffset,
    +        ];
    +    }
    +
    +    /**
    +     * Get the cell address where the top left of the chart is fixed.
    +     *
    +     * @return string
    +     */
    +    public function getTopLeftCell()
    +    {
    +        return $this->topLeftCellRef;
    +    }
    +
    +    /**
    +     * Set the Top Left cell position for the chart.
    +     *
    +     * @param string $cell
    +     *
    +     * @return Chart
    +     */
    +    public function setTopLeftCell($cell)
    +    {
    +        $this->topLeftCellRef = $cell;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set the offset position within the Top Left cell for the chart.
    +     *
    +     * @param int $xOffset
    +     * @param int $yOffset
    +     *
    +     * @return Chart
    +     */
    +    public function setTopLeftOffset($xOffset, $yOffset)
    +    {
    +        if ($xOffset !== null) {
    +            $this->setTopLeftXOffset($xOffset);
    +        }
    +
    +        if ($yOffset !== null) {
    +            $this->setTopLeftYOffset($yOffset);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get the offset position within the Top Left cell for the chart.
    +     *
    +     * @return int[]
    +     */
    +    public function getTopLeftOffset()
    +    {
    +        return [
    +            'X' => $this->topLeftXOffset,
    +            'Y' => $this->topLeftYOffset,
    +        ];
    +    }
    +
    +    public function setTopLeftXOffset($xOffset)
    +    {
    +        $this->topLeftXOffset = $xOffset;
    +
    +        return $this;
    +    }
    +
    +    public function getTopLeftXOffset()
    +    {
    +        return $this->topLeftXOffset;
    +    }
    +
    +    public function setTopLeftYOffset($yOffset)
    +    {
    +        $this->topLeftYOffset = $yOffset;
    +
    +        return $this;
    +    }
    +
    +    public function getTopLeftYOffset()
    +    {
    +        return $this->topLeftYOffset;
    +    }
    +
    +    /**
    +     * Set the Bottom Right position of the chart.
    +     *
    +     * @param string $cell
    +     * @param int $xOffset
    +     * @param int $yOffset
    +     *
    +     * @return Chart
    +     */
    +    public function setBottomRightPosition($cell, $xOffset = null, $yOffset = null)
    +    {
    +        $this->bottomRightCellRef = $cell;
    +        if ($xOffset !== null) {
    +            $this->setBottomRightXOffset($xOffset);
    +        }
    +        if ($yOffset !== null) {
    +            $this->setBottomRightYOffset($yOffset);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get the bottom right position of the chart.
    +     *
    +     * @return array an associative array containing the cell address, X-Offset and Y-Offset from the top left of that cell
    +     */
    +    public function getBottomRightPosition()
    +    {
    +        return [
    +            'cell' => $this->bottomRightCellRef,
    +            'xOffset' => $this->bottomRightXOffset,
    +            'yOffset' => $this->bottomRightYOffset,
    +        ];
    +    }
    +
    +    public function setBottomRightCell($cell)
    +    {
    +        $this->bottomRightCellRef = $cell;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get the cell address where the bottom right of the chart is fixed.
    +     *
    +     * @return string
    +     */
    +    public function getBottomRightCell()
    +    {
    +        return $this->bottomRightCellRef;
    +    }
    +
    +    /**
    +     * Set the offset position within the Bottom Right cell for the chart.
    +     *
    +     * @param int $xOffset
    +     * @param int $yOffset
    +     *
    +     * @return Chart
    +     */
    +    public function setBottomRightOffset($xOffset, $yOffset)
    +    {
    +        if ($xOffset !== null) {
    +            $this->setBottomRightXOffset($xOffset);
    +        }
    +
    +        if ($yOffset !== null) {
    +            $this->setBottomRightYOffset($yOffset);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get the offset position within the Bottom Right cell for the chart.
    +     *
    +     * @return int[]
    +     */
    +    public function getBottomRightOffset()
    +    {
    +        return [
    +            'X' => $this->bottomRightXOffset,
    +            'Y' => $this->bottomRightYOffset,
    +        ];
    +    }
    +
    +    public function setBottomRightXOffset($xOffset)
    +    {
    +        $this->bottomRightXOffset = $xOffset;
    +
    +        return $this;
    +    }
    +
    +    public function getBottomRightXOffset()
    +    {
    +        return $this->bottomRightXOffset;
    +    }
    +
    +    public function setBottomRightYOffset($yOffset)
    +    {
    +        $this->bottomRightYOffset = $yOffset;
    +
    +        return $this;
    +    }
    +
    +    public function getBottomRightYOffset()
    +    {
    +        return $this->bottomRightYOffset;
    +    }
    +
    +    public function refresh()
    +    {
    +        if ($this->worksheet !== null) {
    +            $this->plotArea->refresh($this->worksheet);
    +        }
    +    }
    +
    +    /**
    +     * Render the chart to given file (or stream).
    +     *
    +     * @param string $outputDestination Name of the file render to
    +     *
    +     * @return bool true on success
    +     */
    +    public function render($outputDestination = null)
    +    {
    +        if ($outputDestination == 'php://output') {
    +            $outputDestination = null;
    +        }
    +
    +        $libraryName = Settings::getChartRenderer();
    +        if ($libraryName === null) {
    +            return false;
    +        }
    +
    +        // Ensure that data series values are up-to-date before we render
    +        $this->refresh();
    +
    +        $renderer = new $libraryName($this);
    +
    +        return $renderer->render($outputDestination);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/DataSeries.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/DataSeries.php
    new file mode 100644
    index 00000000000..8056bbeea27
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/DataSeries.php
    @@ -0,0 +1,390 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart;
    +
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +class DataSeries
    +{
    +    const TYPE_BARCHART = 'barChart';
    +    const TYPE_BARCHART_3D = 'bar3DChart';
    +    const TYPE_LINECHART = 'lineChart';
    +    const TYPE_LINECHART_3D = 'line3DChart';
    +    const TYPE_AREACHART = 'areaChart';
    +    const TYPE_AREACHART_3D = 'area3DChart';
    +    const TYPE_PIECHART = 'pieChart';
    +    const TYPE_PIECHART_3D = 'pie3DChart';
    +    const TYPE_DOUGHNUTCHART = 'doughnutChart';
    +    const TYPE_DONUTCHART = self::TYPE_DOUGHNUTCHART; // Synonym
    +    const TYPE_SCATTERCHART = 'scatterChart';
    +    const TYPE_SURFACECHART = 'surfaceChart';
    +    const TYPE_SURFACECHART_3D = 'surface3DChart';
    +    const TYPE_RADARCHART = 'radarChart';
    +    const TYPE_BUBBLECHART = 'bubbleChart';
    +    const TYPE_STOCKCHART = 'stockChart';
    +    const TYPE_CANDLECHART = self::TYPE_STOCKCHART; // Synonym
    +
    +    const GROUPING_CLUSTERED = 'clustered';
    +    const GROUPING_STACKED = 'stacked';
    +    const GROUPING_PERCENT_STACKED = 'percentStacked';
    +    const GROUPING_STANDARD = 'standard';
    +
    +    const DIRECTION_BAR = 'bar';
    +    const DIRECTION_HORIZONTAL = self::DIRECTION_BAR;
    +    const DIRECTION_COL = 'col';
    +    const DIRECTION_COLUMN = self::DIRECTION_COL;
    +    const DIRECTION_VERTICAL = self::DIRECTION_COL;
    +
    +    const STYLE_LINEMARKER = 'lineMarker';
    +    const STYLE_SMOOTHMARKER = 'smoothMarker';
    +    const STYLE_MARKER = 'marker';
    +    const STYLE_FILLED = 'filled';
    +
    +    /**
    +     * Series Plot Type.
    +     *
    +     * @var string
    +     */
    +    private $plotType;
    +
    +    /**
    +     * Plot Grouping Type.
    +     *
    +     * @var string
    +     */
    +    private $plotGrouping;
    +
    +    /**
    +     * Plot Direction.
    +     *
    +     * @var string
    +     */
    +    private $plotDirection;
    +
    +    /**
    +     * Plot Style.
    +     *
    +     * @var null|string
    +     */
    +    private $plotStyle;
    +
    +    /**
    +     * Order of plots in Series.
    +     *
    +     * @var array of integer
    +     */
    +    private $plotOrder = [];
    +
    +    /**
    +     * Plot Label.
    +     *
    +     * @var array of DataSeriesValues
    +     */
    +    private $plotLabel = [];
    +
    +    /**
    +     * Plot Category.
    +     *
    +     * @var array of DataSeriesValues
    +     */
    +    private $plotCategory = [];
    +
    +    /**
    +     * Smooth Line.
    +     *
    +     * @var bool
    +     */
    +    private $smoothLine;
    +
    +    /**
    +     * Plot Values.
    +     *
    +     * @var array of DataSeriesValues
    +     */
    +    private $plotValues = [];
    +
    +    /**
    +     * Create a new DataSeries.
    +     *
    +     * @param null|mixed $plotType
    +     * @param null|mixed $plotGrouping
    +     * @param int[] $plotOrder
    +     * @param DataSeriesValues[] $plotLabel
    +     * @param DataSeriesValues[] $plotCategory
    +     * @param DataSeriesValues[] $plotValues
    +     * @param null|string $plotDirection
    +     * @param bool $smoothLine
    +     * @param null|string $plotStyle
    +     */
    +    public function __construct($plotType = null, $plotGrouping = null, array $plotOrder = [], array $plotLabel = [], array $plotCategory = [], array $plotValues = [], $plotDirection = null, $smoothLine = false, $plotStyle = null)
    +    {
    +        $this->plotType = $plotType;
    +        $this->plotGrouping = $plotGrouping;
    +        $this->plotOrder = $plotOrder;
    +        $keys = array_keys($plotValues);
    +        $this->plotValues = $plotValues;
    +        if ((count($plotLabel) == 0) || ($plotLabel[$keys[0]] === null)) {
    +            $plotLabel[$keys[0]] = new DataSeriesValues();
    +        }
    +        $this->plotLabel = $plotLabel;
    +
    +        if ((count($plotCategory) == 0) || ($plotCategory[$keys[0]] === null)) {
    +            $plotCategory[$keys[0]] = new DataSeriesValues();
    +        }
    +        $this->plotCategory = $plotCategory;
    +
    +        $this->smoothLine = $smoothLine;
    +        $this->plotStyle = $plotStyle;
    +
    +        if ($plotDirection === null) {
    +            $plotDirection = self::DIRECTION_COL;
    +        }
    +        $this->plotDirection = $plotDirection;
    +    }
    +
    +    /**
    +     * Get Plot Type.
    +     *
    +     * @return string
    +     */
    +    public function getPlotType()
    +    {
    +        return $this->plotType;
    +    }
    +
    +    /**
    +     * Set Plot Type.
    +     *
    +     * @param string $plotType
    +     *
    +     * @return DataSeries
    +     */
    +    public function setPlotType($plotType)
    +    {
    +        $this->plotType = $plotType;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Plot Grouping Type.
    +     *
    +     * @return string
    +     */
    +    public function getPlotGrouping()
    +    {
    +        return $this->plotGrouping;
    +    }
    +
    +    /**
    +     * Set Plot Grouping Type.
    +     *
    +     * @param string $groupingType
    +     *
    +     * @return DataSeries
    +     */
    +    public function setPlotGrouping($groupingType)
    +    {
    +        $this->plotGrouping = $groupingType;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Plot Direction.
    +     *
    +     * @return string
    +     */
    +    public function getPlotDirection()
    +    {
    +        return $this->plotDirection;
    +    }
    +
    +    /**
    +     * Set Plot Direction.
    +     *
    +     * @param string $plotDirection
    +     *
    +     * @return DataSeries
    +     */
    +    public function setPlotDirection($plotDirection)
    +    {
    +        $this->plotDirection = $plotDirection;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Plot Order.
    +     *
    +     * @return int[]
    +     */
    +    public function getPlotOrder()
    +    {
    +        return $this->plotOrder;
    +    }
    +
    +    /**
    +     * Get Plot Labels.
    +     *
    +     * @return array of DataSeriesValues
    +     */
    +    public function getPlotLabels()
    +    {
    +        return $this->plotLabel;
    +    }
    +
    +    /**
    +     * Get Plot Label by Index.
    +     *
    +     * @param mixed $index
    +     *
    +     * @return DataSeriesValues
    +     */
    +    public function getPlotLabelByIndex($index)
    +    {
    +        $keys = array_keys($this->plotLabel);
    +        if (in_array($index, $keys)) {
    +            return $this->plotLabel[$index];
    +        } elseif (isset($keys[$index])) {
    +            return $this->plotLabel[$keys[$index]];
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Get Plot Categories.
    +     *
    +     * @return array of DataSeriesValues
    +     */
    +    public function getPlotCategories()
    +    {
    +        return $this->plotCategory;
    +    }
    +
    +    /**
    +     * Get Plot Category by Index.
    +     *
    +     * @param mixed $index
    +     *
    +     * @return DataSeriesValues
    +     */
    +    public function getPlotCategoryByIndex($index)
    +    {
    +        $keys = array_keys($this->plotCategory);
    +        if (in_array($index, $keys)) {
    +            return $this->plotCategory[$index];
    +        } elseif (isset($keys[$index])) {
    +            return $this->plotCategory[$keys[$index]];
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Get Plot Style.
    +     *
    +     * @return null|string
    +     */
    +    public function getPlotStyle()
    +    {
    +        return $this->plotStyle;
    +    }
    +
    +    /**
    +     * Set Plot Style.
    +     *
    +     * @param null|string $plotStyle
    +     *
    +     * @return DataSeries
    +     */
    +    public function setPlotStyle($plotStyle)
    +    {
    +        $this->plotStyle = $plotStyle;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Plot Values.
    +     *
    +     * @return array of DataSeriesValues
    +     */
    +    public function getPlotValues()
    +    {
    +        return $this->plotValues;
    +    }
    +
    +    /**
    +     * Get Plot Values by Index.
    +     *
    +     * @param mixed $index
    +     *
    +     * @return DataSeriesValues
    +     */
    +    public function getPlotValuesByIndex($index)
    +    {
    +        $keys = array_keys($this->plotValues);
    +        if (in_array($index, $keys)) {
    +            return $this->plotValues[$index];
    +        } elseif (isset($keys[$index])) {
    +            return $this->plotValues[$keys[$index]];
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Get Number of Plot Series.
    +     *
    +     * @return int
    +     */
    +    public function getPlotSeriesCount()
    +    {
    +        return count($this->plotValues);
    +    }
    +
    +    /**
    +     * Get Smooth Line.
    +     *
    +     * @return bool
    +     */
    +    public function getSmoothLine()
    +    {
    +        return $this->smoothLine;
    +    }
    +
    +    /**
    +     * Set Smooth Line.
    +     *
    +     * @param bool $smoothLine
    +     *
    +     * @return DataSeries
    +     */
    +    public function setSmoothLine($smoothLine)
    +    {
    +        $this->smoothLine = $smoothLine;
    +
    +        return $this;
    +    }
    +
    +    public function refresh(Worksheet $worksheet)
    +    {
    +        foreach ($this->plotValues as $plotValues) {
    +            if ($plotValues !== null) {
    +                $plotValues->refresh($worksheet, true);
    +            }
    +        }
    +        foreach ($this->plotLabel as $plotValues) {
    +            if ($plotValues !== null) {
    +                $plotValues->refresh($worksheet, true);
    +            }
    +        }
    +        foreach ($this->plotCategory as $plotValues) {
    +            if ($plotValues !== null) {
    +                $plotValues->refresh($worksheet, false);
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/DataSeriesValues.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/DataSeriesValues.php
    new file mode 100644
    index 00000000000..e82b7efecfb
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/DataSeriesValues.php
    @@ -0,0 +1,401 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Calculation\Functions;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +class DataSeriesValues
    +{
    +    const DATASERIES_TYPE_STRING = 'String';
    +    const DATASERIES_TYPE_NUMBER = 'Number';
    +
    +    private static $dataTypeValues = [
    +        self::DATASERIES_TYPE_STRING,
    +        self::DATASERIES_TYPE_NUMBER,
    +    ];
    +
    +    /**
    +     * Series Data Type.
    +     *
    +     * @var string
    +     */
    +    private $dataType;
    +
    +    /**
    +     * Series Data Source.
    +     *
    +     * @var string
    +     */
    +    private $dataSource;
    +
    +    /**
    +     * Format Code.
    +     *
    +     * @var string
    +     */
    +    private $formatCode;
    +
    +    /**
    +     * Series Point Marker.
    +     *
    +     * @var string
    +     */
    +    private $pointMarker;
    +
    +    /**
    +     * Point Count (The number of datapoints in the dataseries).
    +     *
    +     * @var int
    +     */
    +    private $pointCount = 0;
    +
    +    /**
    +     * Data Values.
    +     *
    +     * @var array of mixed
    +     */
    +    private $dataValues = [];
    +
    +    /**
    +     * Fill color (can be array with colors if dataseries have custom colors).
    +     *
    +     * @var string|string[]
    +     */
    +    private $fillColor;
    +
    +    /**
    +     * Line Width.
    +     *
    +     * @var int
    +     */
    +    private $lineWidth = 12700;
    +
    +    /**
    +     * Create a new DataSeriesValues object.
    +     *
    +     * @param string $dataType
    +     * @param string $dataSource
    +     * @param null|mixed $formatCode
    +     * @param int $pointCount
    +     * @param mixed $dataValues
    +     * @param null|mixed $marker
    +     * @param null|string|string[] $fillColor
    +     */
    +    public function __construct($dataType = self::DATASERIES_TYPE_NUMBER, $dataSource = null, $formatCode = null, $pointCount = 0, $dataValues = [], $marker = null, $fillColor = null)
    +    {
    +        $this->setDataType($dataType);
    +        $this->dataSource = $dataSource;
    +        $this->formatCode = $formatCode;
    +        $this->pointCount = $pointCount;
    +        $this->dataValues = $dataValues;
    +        $this->pointMarker = $marker;
    +        $this->fillColor = $fillColor;
    +    }
    +
    +    /**
    +     * Get Series Data Type.
    +     *
    +     * @return string
    +     */
    +    public function getDataType()
    +    {
    +        return $this->dataType;
    +    }
    +
    +    /**
    +     * Set Series Data Type.
    +     *
    +     * @param string $dataType Datatype of this data series
    +     *                                Typical values are:
    +     *                                    DataSeriesValues::DATASERIES_TYPE_STRING
    +     *                                        Normally used for axis point values
    +     *                                    DataSeriesValues::DATASERIES_TYPE_NUMBER
    +     *                                        Normally used for chart data values
    +     *
    +     * @throws Exception
    +     *
    +     * @return DataSeriesValues
    +     */
    +    public function setDataType($dataType)
    +    {
    +        if (!in_array($dataType, self::$dataTypeValues)) {
    +            throw new Exception('Invalid datatype for chart data series values');
    +        }
    +        $this->dataType = $dataType;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Series Data Source (formula).
    +     *
    +     * @return string
    +     */
    +    public function getDataSource()
    +    {
    +        return $this->dataSource;
    +    }
    +
    +    /**
    +     * Set Series Data Source (formula).
    +     *
    +     * @param string $dataSource
    +     *
    +     * @return DataSeriesValues
    +     */
    +    public function setDataSource($dataSource)
    +    {
    +        $this->dataSource = $dataSource;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Point Marker.
    +     *
    +     * @return string
    +     */
    +    public function getPointMarker()
    +    {
    +        return $this->pointMarker;
    +    }
    +
    +    /**
    +     * Set Point Marker.
    +     *
    +     * @param string $marker
    +     *
    +     * @return DataSeriesValues
    +     */
    +    public function setPointMarker($marker)
    +    {
    +        $this->pointMarker = $marker;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Series Format Code.
    +     *
    +     * @return string
    +     */
    +    public function getFormatCode()
    +    {
    +        return $this->formatCode;
    +    }
    +
    +    /**
    +     * Set Series Format Code.
    +     *
    +     * @param string $formatCode
    +     *
    +     * @return DataSeriesValues
    +     */
    +    public function setFormatCode($formatCode)
    +    {
    +        $this->formatCode = $formatCode;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Series Point Count.
    +     *
    +     * @return int
    +     */
    +    public function getPointCount()
    +    {
    +        return $this->pointCount;
    +    }
    +
    +    /**
    +     * Get fill color.
    +     *
    +     * @return string|string[] HEX color or array with HEX colors
    +     */
    +    public function getFillColor()
    +    {
    +        return $this->fillColor;
    +    }
    +
    +    /**
    +     * Set fill color for series.
    +     *
    +     * @param string|string[] $color HEX color or array with HEX colors
    +     *
    +     * @return   DataSeriesValues
    +     */
    +    public function setFillColor($color)
    +    {
    +        if (is_array($color)) {
    +            foreach ($color as $colorValue) {
    +                $this->validateColor($colorValue);
    +            }
    +        } else {
    +            $this->validateColor($color);
    +        }
    +        $this->fillColor = $color;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Method for validating hex color.
    +     *
    +     * @param string $color value for color
    +     *
    +     * @throws \Exception thrown if color is invalid
    +     *
    +     * @return bool true if validation was successful
    +     */
    +    private function validateColor($color)
    +    {
    +        if (!preg_match('/^[a-f0-9]{6}$/i', $color)) {
    +            throw new Exception(sprintf('Invalid hex color for chart series (color: "%s")', $color));
    +        }
    +
    +        return true;
    +    }
    +
    +    /**
    +     * Get line width for series.
    +     *
    +     * @return int
    +     */
    +    public function getLineWidth()
    +    {
    +        return $this->lineWidth;
    +    }
    +
    +    /**
    +     * Set line width for the series.
    +     *
    +     * @param int $width
    +     *
    +     * @return DataSeriesValues
    +     */
    +    public function setLineWidth($width)
    +    {
    +        $minWidth = 12700;
    +        $this->lineWidth = max($minWidth, $width);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Identify if the Data Series is a multi-level or a simple series.
    +     *
    +     * @return null|bool
    +     */
    +    public function isMultiLevelSeries()
    +    {
    +        if (count($this->dataValues) > 0) {
    +            return is_array(array_values($this->dataValues)[0]);
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Return the level count of a multi-level Data Series.
    +     *
    +     * @return int
    +     */
    +    public function multiLevelCount()
    +    {
    +        $levelCount = 0;
    +        foreach ($this->dataValues as $dataValueSet) {
    +            $levelCount = max($levelCount, count($dataValueSet));
    +        }
    +
    +        return $levelCount;
    +    }
    +
    +    /**
    +     * Get Series Data Values.
    +     *
    +     * @return array of mixed
    +     */
    +    public function getDataValues()
    +    {
    +        return $this->dataValues;
    +    }
    +
    +    /**
    +     * Get the first Series Data value.
    +     *
    +     * @return mixed
    +     */
    +    public function getDataValue()
    +    {
    +        $count = count($this->dataValues);
    +        if ($count == 0) {
    +            return null;
    +        } elseif ($count == 1) {
    +            return $this->dataValues[0];
    +        }
    +
    +        return $this->dataValues;
    +    }
    +
    +    /**
    +     * Set Series Data Values.
    +     *
    +     * @param array $dataValues
    +     *
    +     * @return DataSeriesValues
    +     */
    +    public function setDataValues($dataValues)
    +    {
    +        $this->dataValues = Functions::flattenArray($dataValues);
    +        $this->pointCount = count($dataValues);
    +
    +        return $this;
    +    }
    +
    +    public function refresh(Worksheet $worksheet, $flatten = true)
    +    {
    +        if ($this->dataSource !== null) {
    +            $calcEngine = Calculation::getInstance($worksheet->getParent());
    +            $newDataValues = Calculation::unwrapResult(
    +                $calcEngine->_calculateFormulaValue(
    +                    '=' . $this->dataSource,
    +                    null,
    +                    $worksheet->getCell('A1')
    +                )
    +            );
    +            if ($flatten) {
    +                $this->dataValues = Functions::flattenArray($newDataValues);
    +                foreach ($this->dataValues as &$dataValue) {
    +                    if ((!empty($dataValue)) && ($dataValue[0] == '#')) {
    +                        $dataValue = 0.0;
    +                    }
    +                }
    +                unset($dataValue);
    +            } else {
    +                list($worksheet, $cellRange) = Worksheet::extractSheetTitle($this->dataSource, true);
    +                $dimensions = Coordinate::rangeDimension(str_replace('$', '', $cellRange));
    +                if (($dimensions[0] == 1) || ($dimensions[1] == 1)) {
    +                    $this->dataValues = Functions::flattenArray($newDataValues);
    +                } else {
    +                    $newArray = array_values(array_shift($newDataValues));
    +                    foreach ($newArray as $i => $newDataSet) {
    +                        $newArray[$i] = [$newDataSet];
    +                    }
    +
    +                    foreach ($newDataValues as $newDataSet) {
    +                        $i = 0;
    +                        foreach ($newDataSet as $newDataVal) {
    +                            array_unshift($newArray[$i++], $newDataVal);
    +                        }
    +                    }
    +                    $this->dataValues = $newArray;
    +                }
    +            }
    +            $this->pointCount = count($this->dataValues);
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Exception.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Exception.php
    new file mode 100644
    index 00000000000..3f95b599127
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Exception.php
    @@ -0,0 +1,9 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Exception extends PhpSpreadsheetException
    +{
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/GridLines.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/GridLines.php
    new file mode 100644
    index 00000000000..6e9e39dcf50
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/GridLines.php
    @@ -0,0 +1,455 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart;
    +
    +/**
    + * Created by PhpStorm.
    + * User: Wiktor Trzonkowski
    + * Date: 7/2/14
    + * Time: 2:36 PM.
    + */
    +class GridLines extends Properties
    +{
    +    /**
    +     * Properties of Class:
    +     * Object State (State for Minor Tick Mark) @var bool
    +     * Line Properties @var  array of mixed
    +     * Shadow Properties @var  array of mixed
    +     * Glow Properties @var  array of mixed
    +     * Soft Properties @var  array of mixed.
    +     */
    +    private $objectState = false;
    +
    +    private $lineProperties = [
    +        'color' => [
    +            'type' => self::EXCEL_COLOR_TYPE_STANDARD,
    +            'value' => null,
    +            'alpha' => 0,
    +        ],
    +        'style' => [
    +            'width' => '9525',
    +            'compound' => self::LINE_STYLE_COMPOUND_SIMPLE,
    +            'dash' => self::LINE_STYLE_DASH_SOLID,
    +            'cap' => self::LINE_STYLE_CAP_FLAT,
    +            'join' => self::LINE_STYLE_JOIN_BEVEL,
    +            'arrow' => [
    +                'head' => [
    +                    'type' => self::LINE_STYLE_ARROW_TYPE_NOARROW,
    +                    'size' => self::LINE_STYLE_ARROW_SIZE_5,
    +                ],
    +                'end' => [
    +                    'type' => self::LINE_STYLE_ARROW_TYPE_NOARROW,
    +                    'size' => self::LINE_STYLE_ARROW_SIZE_8,
    +                ],
    +            ],
    +        ],
    +    ];
    +
    +    private $shadowProperties = [
    +        'presets' => self::SHADOW_PRESETS_NOSHADOW,
    +        'effect' => null,
    +        'color' => [
    +            'type' => self::EXCEL_COLOR_TYPE_STANDARD,
    +            'value' => 'black',
    +            'alpha' => 85,
    +        ],
    +        'size' => [
    +            'sx' => null,
    +            'sy' => null,
    +            'kx' => null,
    +        ],
    +        'blur' => null,
    +        'direction' => null,
    +        'distance' => null,
    +        'algn' => null,
    +        'rotWithShape' => null,
    +    ];
    +
    +    private $glowProperties = [
    +        'size' => null,
    +        'color' => [
    +            'type' => self::EXCEL_COLOR_TYPE_STANDARD,
    +            'value' => 'black',
    +            'alpha' => 40,
    +        ],
    +    ];
    +
    +    private $softEdges = [
    +        'size' => null,
    +    ];
    +
    +    /**
    +     * Get Object State.
    +     *
    +     * @return bool
    +     */
    +    public function getObjectState()
    +    {
    +        return $this->objectState;
    +    }
    +
    +    /**
    +     * Change Object State to True.
    +     *
    +     * @return GridLines
    +     */
    +    private function activateObject()
    +    {
    +        $this->objectState = true;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Line Color Properties.
    +     *
    +     * @param string $value
    +     * @param int $alpha
    +     * @param string $type
    +     */
    +    public function setLineColorProperties($value, $alpha = 0, $type = self::EXCEL_COLOR_TYPE_STANDARD)
    +    {
    +        $this->activateObject()
    +            ->lineProperties['color'] = $this->setColorProperties(
    +                $value,
    +                $alpha,
    +                $type
    +            );
    +    }
    +
    +    /**
    +     * Set Line Color Properties.
    +     *
    +     * @param float $line_width
    +     * @param string $compound_type
    +     * @param string $dash_type
    +     * @param string $cap_type
    +     * @param string $join_type
    +     * @param string $head_arrow_type
    +     * @param string $head_arrow_size
    +     * @param string $end_arrow_type
    +     * @param string $end_arrow_size
    +     */
    +    public function setLineStyleProperties($line_width = null, $compound_type = null, $dash_type = null, $cap_type = null, $join_type = null, $head_arrow_type = null, $head_arrow_size = null, $end_arrow_type = null, $end_arrow_size = null)
    +    {
    +        $this->activateObject();
    +        ($line_width !== null)
    +                ? $this->lineProperties['style']['width'] = $this->getExcelPointsWidth((float) $line_width)
    +                : null;
    +        ($compound_type !== null)
    +                ? $this->lineProperties['style']['compound'] = (string) $compound_type
    +                : null;
    +        ($dash_type !== null)
    +                ? $this->lineProperties['style']['dash'] = (string) $dash_type
    +                : null;
    +        ($cap_type !== null)
    +                ? $this->lineProperties['style']['cap'] = (string) $cap_type
    +                : null;
    +        ($join_type !== null)
    +                ? $this->lineProperties['style']['join'] = (string) $join_type
    +                : null;
    +        ($head_arrow_type !== null)
    +                ? $this->lineProperties['style']['arrow']['head']['type'] = (string) $head_arrow_type
    +                : null;
    +        ($head_arrow_size !== null)
    +                ? $this->lineProperties['style']['arrow']['head']['size'] = (string) $head_arrow_size
    +                : null;
    +        ($end_arrow_type !== null)
    +                ? $this->lineProperties['style']['arrow']['end']['type'] = (string) $end_arrow_type
    +                : null;
    +        ($end_arrow_size !== null)
    +                ? $this->lineProperties['style']['arrow']['end']['size'] = (string) $end_arrow_size
    +                : null;
    +    }
    +
    +    /**
    +     * Get Line Color Property.
    +     *
    +     * @param string $parameter
    +     *
    +     * @return string
    +     */
    +    public function getLineColorProperty($parameter)
    +    {
    +        return $this->lineProperties['color'][$parameter];
    +    }
    +
    +    /**
    +     * Get Line Style Property.
    +     *
    +     * @param array|string $elements
    +     *
    +     * @return string
    +     */
    +    public function getLineStyleProperty($elements)
    +    {
    +        return $this->getArrayElementsValue($this->lineProperties['style'], $elements);
    +    }
    +
    +    /**
    +     * Set Glow Properties.
    +     *
    +     * @param float $size
    +     * @param string $color_value
    +     * @param int $color_alpha
    +     * @param string $color_type
    +     */
    +    public function setGlowProperties($size, $color_value = null, $color_alpha = null, $color_type = null)
    +    {
    +        $this
    +            ->activateObject()
    +            ->setGlowSize($size)
    +            ->setGlowColor($color_value, $color_alpha, $color_type);
    +    }
    +
    +    /**
    +     * Get Glow Color Property.
    +     *
    +     * @param string $property
    +     *
    +     * @return string
    +     */
    +    public function getGlowColor($property)
    +    {
    +        return $this->glowProperties['color'][$property];
    +    }
    +
    +    /**
    +     * Get Glow Size.
    +     *
    +     * @return string
    +     */
    +    public function getGlowSize()
    +    {
    +        return $this->glowProperties['size'];
    +    }
    +
    +    /**
    +     * Set Glow Size.
    +     *
    +     * @param float $size
    +     *
    +     * @return GridLines
    +     */
    +    private function setGlowSize($size)
    +    {
    +        $this->glowProperties['size'] = $this->getExcelPointsWidth((float) $size);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Glow Color.
    +     *
    +     * @param string $color
    +     * @param int $alpha
    +     * @param string $type
    +     *
    +     * @return GridLines
    +     */
    +    private function setGlowColor($color, $alpha, $type)
    +    {
    +        if ($color !== null) {
    +            $this->glowProperties['color']['value'] = (string) $color;
    +        }
    +        if ($alpha !== null) {
    +            $this->glowProperties['color']['alpha'] = $this->getTrueAlpha((int) $alpha);
    +        }
    +        if ($type !== null) {
    +            $this->glowProperties['color']['type'] = (string) $type;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Line Style Arrow Parameters.
    +     *
    +     * @param string $arrow_selector
    +     * @param string $property_selector
    +     *
    +     * @return string
    +     */
    +    public function getLineStyleArrowParameters($arrow_selector, $property_selector)
    +    {
    +        return $this->getLineStyleArrowSize($this->lineProperties['style']['arrow'][$arrow_selector]['size'], $property_selector);
    +    }
    +
    +    /**
    +     * Set Shadow Properties.
    +     *
    +     * @param int $sh_presets
    +     * @param string $sh_color_value
    +     * @param string $sh_color_type
    +     * @param int $sh_color_alpha
    +     * @param string $sh_blur
    +     * @param int $sh_angle
    +     * @param float $sh_distance
    +     */
    +    public function setShadowProperties($sh_presets, $sh_color_value = null, $sh_color_type = null, $sh_color_alpha = null, $sh_blur = null, $sh_angle = null, $sh_distance = null)
    +    {
    +        $this->activateObject()
    +            ->setShadowPresetsProperties((int) $sh_presets)
    +            ->setShadowColor(
    +                $sh_color_value === null ? $this->shadowProperties['color']['value'] : $sh_color_value,
    +                $sh_color_alpha === null ? (int) $this->shadowProperties['color']['alpha'] : $this->getTrueAlpha($sh_color_alpha),
    +                $sh_color_type === null ? $this->shadowProperties['color']['type'] : $sh_color_type
    +            )
    +            ->setShadowBlur($sh_blur)
    +            ->setShadowAngle($sh_angle)
    +            ->setShadowDistance($sh_distance);
    +    }
    +
    +    /**
    +     * Set Shadow Presets Properties.
    +     *
    +     * @param int $shadow_presets
    +     *
    +     * @return GridLines
    +     */
    +    private function setShadowPresetsProperties($shadow_presets)
    +    {
    +        $this->shadowProperties['presets'] = $shadow_presets;
    +        $this->setShadowProperiesMapValues($this->getShadowPresetsMap($shadow_presets));
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Shadow Properties Values.
    +     *
    +     * @param array $properties_map
    +     * @param * $reference
    +     *
    +     * @return GridLines
    +     */
    +    private function setShadowProperiesMapValues(array $properties_map, &$reference = null)
    +    {
    +        $base_reference = $reference;
    +        foreach ($properties_map as $property_key => $property_val) {
    +            if (is_array($property_val)) {
    +                if ($reference === null) {
    +                    $reference = &$this->shadowProperties[$property_key];
    +                } else {
    +                    $reference = &$reference[$property_key];
    +                }
    +                $this->setShadowProperiesMapValues($property_val, $reference);
    +            } else {
    +                if ($base_reference === null) {
    +                    $this->shadowProperties[$property_key] = $property_val;
    +                } else {
    +                    $reference[$property_key] = $property_val;
    +                }
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Shadow Color.
    +     *
    +     * @param string $color
    +     * @param int $alpha
    +     * @param string $type
    +     *
    +     * @return GridLines
    +     */
    +    private function setShadowColor($color, $alpha, $type)
    +    {
    +        if ($color !== null) {
    +            $this->shadowProperties['color']['value'] = (string) $color;
    +        }
    +        if ($alpha !== null) {
    +            $this->shadowProperties['color']['alpha'] = $this->getTrueAlpha((int) $alpha);
    +        }
    +        if ($type !== null) {
    +            $this->shadowProperties['color']['type'] = (string) $type;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Shadow Blur.
    +     *
    +     * @param float $blur
    +     *
    +     * @return GridLines
    +     */
    +    private function setShadowBlur($blur)
    +    {
    +        if ($blur !== null) {
    +            $this->shadowProperties['blur'] = (string) $this->getExcelPointsWidth($blur);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Shadow Angle.
    +     *
    +     * @param int $angle
    +     *
    +     * @return GridLines
    +     */
    +    private function setShadowAngle($angle)
    +    {
    +        if ($angle !== null) {
    +            $this->shadowProperties['direction'] = (string) $this->getExcelPointsAngle($angle);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Shadow Distance.
    +     *
    +     * @param float $distance
    +     *
    +     * @return GridLines
    +     */
    +    private function setShadowDistance($distance)
    +    {
    +        if ($distance !== null) {
    +            $this->shadowProperties['distance'] = (string) $this->getExcelPointsWidth($distance);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Shadow Property.
    +     *
    +     * @param string|string[] $elements
    +     *
    +     * @return string
    +     */
    +    public function getShadowProperty($elements)
    +    {
    +        return $this->getArrayElementsValue($this->shadowProperties, $elements);
    +    }
    +
    +    /**
    +     * Set Soft Edges Size.
    +     *
    +     * @param float $size
    +     */
    +    public function setSoftEdgesSize($size)
    +    {
    +        if ($size !== null) {
    +            $this->activateObject();
    +            $softEdges['size'] = (string) $this->getExcelPointsWidth($size);
    +        }
    +    }
    +
    +    /**
    +     * Get Soft Edges Size.
    +     *
    +     * @return string
    +     */
    +    public function getSoftEdgesSize()
    +    {
    +        return $this->softEdges['size'];
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Layout.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Layout.php
    new file mode 100644
    index 00000000000..fb5a53a063e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Layout.php
    @@ -0,0 +1,483 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart;
    +
    +class Layout
    +{
    +    /**
    +     * layoutTarget.
    +     *
    +     * @var string
    +     */
    +    private $layoutTarget;
    +
    +    /**
    +     * X Mode.
    +     *
    +     * @var string
    +     */
    +    private $xMode;
    +
    +    /**
    +     * Y Mode.
    +     *
    +     * @var string
    +     */
    +    private $yMode;
    +
    +    /**
    +     * X-Position.
    +     *
    +     * @var float
    +     */
    +    private $xPos;
    +
    +    /**
    +     * Y-Position.
    +     *
    +     * @var float
    +     */
    +    private $yPos;
    +
    +    /**
    +     * width.
    +     *
    +     * @var float
    +     */
    +    private $width;
    +
    +    /**
    +     * height.
    +     *
    +     * @var float
    +     */
    +    private $height;
    +
    +    /**
    +     * show legend key
    +     * Specifies that legend keys should be shown in data labels.
    +     *
    +     * @var bool
    +     */
    +    private $showLegendKey;
    +
    +    /**
    +     * show value
    +     * Specifies that the value should be shown in a data label.
    +     *
    +     * @var bool
    +     */
    +    private $showVal;
    +
    +    /**
    +     * show category name
    +     * Specifies that the category name should be shown in the data label.
    +     *
    +     * @var bool
    +     */
    +    private $showCatName;
    +
    +    /**
    +     * show data series name
    +     * Specifies that the series name should be shown in the data label.
    +     *
    +     * @var bool
    +     */
    +    private $showSerName;
    +
    +    /**
    +     * show percentage
    +     * Specifies that the percentage should be shown in the data label.
    +     *
    +     * @var bool
    +     */
    +    private $showPercent;
    +
    +    /**
    +     * show bubble size.
    +     *
    +     * @var bool
    +     */
    +    private $showBubbleSize;
    +
    +    /**
    +     * show leader lines
    +     * Specifies that leader lines should be shown for the data label.
    +     *
    +     * @var bool
    +     */
    +    private $showLeaderLines;
    +
    +    /**
    +     * Create a new Layout.
    +     *
    +     * @param array $layout
    +     */
    +    public function __construct(array $layout = [])
    +    {
    +        if (isset($layout['layoutTarget'])) {
    +            $this->layoutTarget = $layout['layoutTarget'];
    +        }
    +        if (isset($layout['xMode'])) {
    +            $this->xMode = $layout['xMode'];
    +        }
    +        if (isset($layout['yMode'])) {
    +            $this->yMode = $layout['yMode'];
    +        }
    +        if (isset($layout['x'])) {
    +            $this->xPos = (float) $layout['x'];
    +        }
    +        if (isset($layout['y'])) {
    +            $this->yPos = (float) $layout['y'];
    +        }
    +        if (isset($layout['w'])) {
    +            $this->width = (float) $layout['w'];
    +        }
    +        if (isset($layout['h'])) {
    +            $this->height = (float) $layout['h'];
    +        }
    +    }
    +
    +    /**
    +     * Get Layout Target.
    +     *
    +     * @return string
    +     */
    +    public function getLayoutTarget()
    +    {
    +        return $this->layoutTarget;
    +    }
    +
    +    /**
    +     * Set Layout Target.
    +     *
    +     * @param string $value
    +     *
    +     * @return Layout
    +     */
    +    public function setLayoutTarget($value)
    +    {
    +        $this->layoutTarget = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get X-Mode.
    +     *
    +     * @return string
    +     */
    +    public function getXMode()
    +    {
    +        return $this->xMode;
    +    }
    +
    +    /**
    +     * Set X-Mode.
    +     *
    +     * @param X-Mode $value
    +     *
    +     * @return Layout
    +     */
    +    public function setXMode($value)
    +    {
    +        $this->xMode = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Y-Mode.
    +     *
    +     * @return string
    +     */
    +    public function getYMode()
    +    {
    +        return $this->yMode;
    +    }
    +
    +    /**
    +     * Set Y-Mode.
    +     *
    +     * @param Y-Mode $value
    +     *
    +     * @return Layout
    +     */
    +    public function setYMode($value)
    +    {
    +        $this->yMode = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get X-Position.
    +     *
    +     * @return number
    +     */
    +    public function getXPosition()
    +    {
    +        return $this->xPos;
    +    }
    +
    +    /**
    +     * Set X-Position.
    +     *
    +     * @param X-Position $value
    +     *
    +     * @return Layout
    +     */
    +    public function setXPosition($value)
    +    {
    +        $this->xPos = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Y-Position.
    +     *
    +     * @return number
    +     */
    +    public function getYPosition()
    +    {
    +        return $this->yPos;
    +    }
    +
    +    /**
    +     * Set Y-Position.
    +     *
    +     * @param Y-Position $value
    +     *
    +     * @return Layout
    +     */
    +    public function setYPosition($value)
    +    {
    +        $this->yPos = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Width.
    +     *
    +     * @return number
    +     */
    +    public function getWidth()
    +    {
    +        return $this->width;
    +    }
    +
    +    /**
    +     * Set Width.
    +     *
    +     * @param float $value
    +     *
    +     * @return Layout
    +     */
    +    public function setWidth($value)
    +    {
    +        $this->width = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Height.
    +     *
    +     * @return number
    +     */
    +    public function getHeight()
    +    {
    +        return $this->height;
    +    }
    +
    +    /**
    +     * Set Height.
    +     *
    +     * @param float $value
    +     *
    +     * @return Layout
    +     */
    +    public function setHeight($value)
    +    {
    +        $this->height = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get show legend key.
    +     *
    +     * @return bool
    +     */
    +    public function getShowLegendKey()
    +    {
    +        return $this->showLegendKey;
    +    }
    +
    +    /**
    +     * Set show legend key
    +     * Specifies that legend keys should be shown in data labels.
    +     *
    +     * @param bool $value Show legend key
    +     *
    +     * @return Layout
    +     */
    +    public function setShowLegendKey($value)
    +    {
    +        $this->showLegendKey = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get show value.
    +     *
    +     * @return bool
    +     */
    +    public function getShowVal()
    +    {
    +        return $this->showVal;
    +    }
    +
    +    /**
    +     * Set show val
    +     * Specifies that the value should be shown in data labels.
    +     *
    +     * @param bool $value Show val
    +     *
    +     * @return Layout
    +     */
    +    public function setShowVal($value)
    +    {
    +        $this->showVal = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get show category name.
    +     *
    +     * @return bool
    +     */
    +    public function getShowCatName()
    +    {
    +        return $this->showCatName;
    +    }
    +
    +    /**
    +     * Set show cat name
    +     * Specifies that the category name should be shown in data labels.
    +     *
    +     * @param bool $value Show cat name
    +     *
    +     * @return Layout
    +     */
    +    public function setShowCatName($value)
    +    {
    +        $this->showCatName = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get show data series name.
    +     *
    +     * @return bool
    +     */
    +    public function getShowSerName()
    +    {
    +        return $this->showSerName;
    +    }
    +
    +    /**
    +     * Set show ser name
    +     * Specifies that the series name should be shown in data labels.
    +     *
    +     * @param bool $value Show series name
    +     *
    +     * @return Layout
    +     */
    +    public function setShowSerName($value)
    +    {
    +        $this->showSerName = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get show percentage.
    +     *
    +     * @return bool
    +     */
    +    public function getShowPercent()
    +    {
    +        return $this->showPercent;
    +    }
    +
    +    /**
    +     * Set show percentage
    +     * Specifies that the percentage should be shown in data labels.
    +     *
    +     * @param bool $value Show percentage
    +     *
    +     * @return Layout
    +     */
    +    public function setShowPercent($value)
    +    {
    +        $this->showPercent = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get show bubble size.
    +     *
    +     * @return bool
    +     */
    +    public function getShowBubbleSize()
    +    {
    +        return $this->showBubbleSize;
    +    }
    +
    +    /**
    +     * Set show bubble size
    +     * Specifies that the bubble size should be shown in data labels.
    +     *
    +     * @param bool $value Show bubble size
    +     *
    +     * @return Layout
    +     */
    +    public function setShowBubbleSize($value)
    +    {
    +        $this->showBubbleSize = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get show leader lines.
    +     *
    +     * @return bool
    +     */
    +    public function getShowLeaderLines()
    +    {
    +        return $this->showLeaderLines;
    +    }
    +
    +    /**
    +     * Set show leader lines
    +     * Specifies that leader lines should be shown in data labels.
    +     *
    +     * @param bool $value Show leader lines
    +     *
    +     * @return Layout
    +     */
    +    public function setShowLeaderLines($value)
    +    {
    +        $this->showLeaderLines = $value;
    +
    +        return $this;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Legend.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Legend.php
    new file mode 100644
    index 00000000000..d0776265105
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Legend.php
    @@ -0,0 +1,158 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart;
    +
    +class Legend
    +{
    +    /** Legend positions */
    +    const XL_LEGEND_POSITION_BOTTOM = -4107; //    Below the chart.
    +    const XL_LEGEND_POSITION_CORNER = 2; //    In the upper right-hand corner of the chart border.
    +    const XL_LEGEND_POSITION_CUSTOM = -4161; //    A custom position.
    +    const XL_LEGEND_POSITION_LEFT = -4131; //    Left of the chart.
    +    const XL_LEGEND_POSITION_RIGHT = -4152; //    Right of the chart.
    +    const XL_LEGEND_POSITION_TOP = -4160; //    Above the chart.
    +
    +    const POSITION_RIGHT = 'r';
    +    const POSITION_LEFT = 'l';
    +    const POSITION_BOTTOM = 'b';
    +    const POSITION_TOP = 't';
    +    const POSITION_TOPRIGHT = 'tr';
    +
    +    private static $positionXLref = [
    +        self::XL_LEGEND_POSITION_BOTTOM => self::POSITION_BOTTOM,
    +        self::XL_LEGEND_POSITION_CORNER => self::POSITION_TOPRIGHT,
    +        self::XL_LEGEND_POSITION_CUSTOM => '??',
    +        self::XL_LEGEND_POSITION_LEFT => self::POSITION_LEFT,
    +        self::XL_LEGEND_POSITION_RIGHT => self::POSITION_RIGHT,
    +        self::XL_LEGEND_POSITION_TOP => self::POSITION_TOP,
    +    ];
    +
    +    /**
    +     * Legend position.
    +     *
    +     * @var string
    +     */
    +    private $position = self::POSITION_RIGHT;
    +
    +    /**
    +     * Allow overlay of other elements?
    +     *
    +     * @var bool
    +     */
    +    private $overlay = true;
    +
    +    /**
    +     * Legend Layout.
    +     *
    +     * @var Layout
    +     */
    +    private $layout;
    +
    +    /**
    +     * Create a new Legend.
    +     *
    +     * @param string $position
    +     * @param null|Layout $layout
    +     * @param bool $overlay
    +     */
    +    public function __construct($position = self::POSITION_RIGHT, Layout $layout = null, $overlay = false)
    +    {
    +        $this->setPosition($position);
    +        $this->layout = $layout;
    +        $this->setOverlay($overlay);
    +    }
    +
    +    /**
    +     * Get legend position as an excel string value.
    +     *
    +     * @return string
    +     */
    +    public function getPosition()
    +    {
    +        return $this->position;
    +    }
    +
    +    /**
    +     * Get legend position using an excel string value.
    +     *
    +     * @param string $position see self::POSITION_*
    +     *
    +     * @return bool
    +     */
    +    public function setPosition($position)
    +    {
    +        if (!in_array($position, self::$positionXLref)) {
    +            return false;
    +        }
    +
    +        $this->position = $position;
    +
    +        return true;
    +    }
    +
    +    /**
    +     * Get legend position as an Excel internal numeric value.
    +     *
    +     * @return int
    +     */
    +    public function getPositionXL()
    +    {
    +        return array_search($this->position, self::$positionXLref);
    +    }
    +
    +    /**
    +     * Set legend position using an Excel internal numeric value.
    +     *
    +     * @param int $positionXL see self::XL_LEGEND_POSITION_*
    +     *
    +     * @return bool
    +     */
    +    public function setPositionXL($positionXL)
    +    {
    +        if (!isset(self::$positionXLref[$positionXL])) {
    +            return false;
    +        }
    +
    +        $this->position = self::$positionXLref[$positionXL];
    +
    +        return true;
    +    }
    +
    +    /**
    +     * Get allow overlay of other elements?
    +     *
    +     * @return bool
    +     */
    +    public function getOverlay()
    +    {
    +        return $this->overlay;
    +    }
    +
    +    /**
    +     * Set allow overlay of other elements?
    +     *
    +     * @param bool $overlay
    +     *
    +     * @return bool
    +     */
    +    public function setOverlay($overlay)
    +    {
    +        if (!is_bool($overlay)) {
    +            return false;
    +        }
    +
    +        $this->overlay = $overlay;
    +
    +        return true;
    +    }
    +
    +    /**
    +     * Get Layout.
    +     *
    +     * @return Layout
    +     */
    +    public function getLayout()
    +    {
    +        return $this->layout;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/PlotArea.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/PlotArea.php
    new file mode 100644
    index 00000000000..b98c638df76
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/PlotArea.php
    @@ -0,0 +1,112 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart;
    +
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +class PlotArea
    +{
    +    /**
    +     * PlotArea Layout.
    +     *
    +     * @var Layout
    +     */
    +    private $layout;
    +
    +    /**
    +     * Plot Series.
    +     *
    +     * @var DataSeries[]
    +     */
    +    private $plotSeries = [];
    +
    +    /**
    +     * Create a new PlotArea.
    +     *
    +     * @param null|Layout $layout
    +     * @param DataSeries[] $plotSeries
    +     */
    +    public function __construct(Layout $layout = null, array $plotSeries = [])
    +    {
    +        $this->layout = $layout;
    +        $this->plotSeries = $plotSeries;
    +    }
    +
    +    /**
    +     * Get Layout.
    +     *
    +     * @return Layout
    +     */
    +    public function getLayout()
    +    {
    +        return $this->layout;
    +    }
    +
    +    /**
    +     * Get Number of Plot Groups.
    +     *
    +     * @return array of DataSeries
    +     */
    +    public function getPlotGroupCount()
    +    {
    +        return count($this->plotSeries);
    +    }
    +
    +    /**
    +     * Get Number of Plot Series.
    +     *
    +     * @return int
    +     */
    +    public function getPlotSeriesCount()
    +    {
    +        $seriesCount = 0;
    +        foreach ($this->plotSeries as $plot) {
    +            $seriesCount += $plot->getPlotSeriesCount();
    +        }
    +
    +        return $seriesCount;
    +    }
    +
    +    /**
    +     * Get Plot Series.
    +     *
    +     * @return array of DataSeries
    +     */
    +    public function getPlotGroup()
    +    {
    +        return $this->plotSeries;
    +    }
    +
    +    /**
    +     * Get Plot Series by Index.
    +     *
    +     * @param mixed $index
    +     *
    +     * @return DataSeries
    +     */
    +    public function getPlotGroupByIndex($index)
    +    {
    +        return $this->plotSeries[$index];
    +    }
    +
    +    /**
    +     * Set Plot Series.
    +     *
    +     * @param DataSeries[] $plotSeries
    +     *
    +     * @return PlotArea
    +     */
    +    public function setPlotSeries(array $plotSeries)
    +    {
    +        $this->plotSeries = $plotSeries;
    +
    +        return $this;
    +    }
    +
    +    public function refresh(Worksheet $worksheet)
    +    {
    +        foreach ($this->plotSeries as $plotSeries) {
    +            $plotSeries->refresh($worksheet);
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Properties.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Properties.php
    new file mode 100644
    index 00000000000..98095f0d13a
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Properties.php
    @@ -0,0 +1,369 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart;
    +
    +/**
    + * Created by PhpStorm.
    + * User: nhw2h8s
    + * Date: 7/2/14
    + * Time: 5:45 PM.
    + */
    +abstract class Properties
    +{
    +    const
    +        EXCEL_COLOR_TYPE_STANDARD = 'prstClr';
    +    const EXCEL_COLOR_TYPE_SCHEME = 'schemeClr';
    +    const EXCEL_COLOR_TYPE_ARGB = 'srgbClr';
    +
    +    const
    +        AXIS_LABELS_LOW = 'low';
    +    const AXIS_LABELS_HIGH = 'high';
    +    const AXIS_LABELS_NEXT_TO = 'nextTo';
    +    const AXIS_LABELS_NONE = 'none';
    +
    +    const
    +        TICK_MARK_NONE = 'none';
    +    const TICK_MARK_INSIDE = 'in';
    +    const TICK_MARK_OUTSIDE = 'out';
    +    const TICK_MARK_CROSS = 'cross';
    +
    +    const
    +        HORIZONTAL_CROSSES_AUTOZERO = 'autoZero';
    +    const HORIZONTAL_CROSSES_MAXIMUM = 'max';
    +
    +    const
    +        FORMAT_CODE_GENERAL = 'General';
    +    const FORMAT_CODE_NUMBER = '#,##0.00';
    +    const FORMAT_CODE_CURRENCY = '$#,##0.00';
    +    const FORMAT_CODE_ACCOUNTING = '_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)';
    +    const FORMAT_CODE_DATE = 'm/d/yyyy';
    +    const FORMAT_CODE_TIME = '[$-F400]h:mm:ss AM/PM';
    +    const FORMAT_CODE_PERCENTAGE = '0.00%';
    +    const FORMAT_CODE_FRACTION = '# ?/?';
    +    const FORMAT_CODE_SCIENTIFIC = '0.00E+00';
    +    const FORMAT_CODE_TEXT = '@';
    +    const FORMAT_CODE_SPECIAL = '00000';
    +
    +    const
    +        ORIENTATION_NORMAL = 'minMax';
    +    const ORIENTATION_REVERSED = 'maxMin';
    +
    +    const
    +        LINE_STYLE_COMPOUND_SIMPLE = 'sng';
    +    const LINE_STYLE_COMPOUND_DOUBLE = 'dbl';
    +    const LINE_STYLE_COMPOUND_THICKTHIN = 'thickThin';
    +    const LINE_STYLE_COMPOUND_THINTHICK = 'thinThick';
    +    const LINE_STYLE_COMPOUND_TRIPLE = 'tri';
    +    const LINE_STYLE_DASH_SOLID = 'solid';
    +    const LINE_STYLE_DASH_ROUND_DOT = 'sysDot';
    +    const LINE_STYLE_DASH_SQUERE_DOT = 'sysDash';
    +    const LINE_STYPE_DASH_DASH = 'dash';
    +    const LINE_STYLE_DASH_DASH_DOT = 'dashDot';
    +    const LINE_STYLE_DASH_LONG_DASH = 'lgDash';
    +    const LINE_STYLE_DASH_LONG_DASH_DOT = 'lgDashDot';
    +    const LINE_STYLE_DASH_LONG_DASH_DOT_DOT = 'lgDashDotDot';
    +    const LINE_STYLE_CAP_SQUARE = 'sq';
    +    const LINE_STYLE_CAP_ROUND = 'rnd';
    +    const LINE_STYLE_CAP_FLAT = 'flat';
    +    const LINE_STYLE_JOIN_ROUND = 'bevel';
    +    const LINE_STYLE_JOIN_MITER = 'miter';
    +    const LINE_STYLE_JOIN_BEVEL = 'bevel';
    +    const LINE_STYLE_ARROW_TYPE_NOARROW = null;
    +    const LINE_STYLE_ARROW_TYPE_ARROW = 'triangle';
    +    const LINE_STYLE_ARROW_TYPE_OPEN = 'arrow';
    +    const LINE_STYLE_ARROW_TYPE_STEALTH = 'stealth';
    +    const LINE_STYLE_ARROW_TYPE_DIAMOND = 'diamond';
    +    const LINE_STYLE_ARROW_TYPE_OVAL = 'oval';
    +    const LINE_STYLE_ARROW_SIZE_1 = 1;
    +    const LINE_STYLE_ARROW_SIZE_2 = 2;
    +    const LINE_STYLE_ARROW_SIZE_3 = 3;
    +    const LINE_STYLE_ARROW_SIZE_4 = 4;
    +    const LINE_STYLE_ARROW_SIZE_5 = 5;
    +    const LINE_STYLE_ARROW_SIZE_6 = 6;
    +    const LINE_STYLE_ARROW_SIZE_7 = 7;
    +    const LINE_STYLE_ARROW_SIZE_8 = 8;
    +    const LINE_STYLE_ARROW_SIZE_9 = 9;
    +
    +    const
    +        SHADOW_PRESETS_NOSHADOW = null;
    +    const SHADOW_PRESETS_OUTER_BOTTTOM_RIGHT = 1;
    +    const SHADOW_PRESETS_OUTER_BOTTOM = 2;
    +    const SHADOW_PRESETS_OUTER_BOTTOM_LEFT = 3;
    +    const SHADOW_PRESETS_OUTER_RIGHT = 4;
    +    const SHADOW_PRESETS_OUTER_CENTER = 5;
    +    const SHADOW_PRESETS_OUTER_LEFT = 6;
    +    const SHADOW_PRESETS_OUTER_TOP_RIGHT = 7;
    +    const SHADOW_PRESETS_OUTER_TOP = 8;
    +    const SHADOW_PRESETS_OUTER_TOP_LEFT = 9;
    +    const SHADOW_PRESETS_INNER_BOTTTOM_RIGHT = 10;
    +    const SHADOW_PRESETS_INNER_BOTTOM = 11;
    +    const SHADOW_PRESETS_INNER_BOTTOM_LEFT = 12;
    +    const SHADOW_PRESETS_INNER_RIGHT = 13;
    +    const SHADOW_PRESETS_INNER_CENTER = 14;
    +    const SHADOW_PRESETS_INNER_LEFT = 15;
    +    const SHADOW_PRESETS_INNER_TOP_RIGHT = 16;
    +    const SHADOW_PRESETS_INNER_TOP = 17;
    +    const SHADOW_PRESETS_INNER_TOP_LEFT = 18;
    +    const SHADOW_PRESETS_PERSPECTIVE_BELOW = 19;
    +    const SHADOW_PRESETS_PERSPECTIVE_UPPER_RIGHT = 20;
    +    const SHADOW_PRESETS_PERSPECTIVE_UPPER_LEFT = 21;
    +    const SHADOW_PRESETS_PERSPECTIVE_LOWER_RIGHT = 22;
    +    const SHADOW_PRESETS_PERSPECTIVE_LOWER_LEFT = 23;
    +
    +    /**
    +     * @param float $width
    +     *
    +     * @return float
    +     */
    +    protected function getExcelPointsWidth($width)
    +    {
    +        return $width * 12700;
    +    }
    +
    +    /**
    +     * @param float $angle
    +     *
    +     * @return float
    +     */
    +    protected function getExcelPointsAngle($angle)
    +    {
    +        return $angle * 60000;
    +    }
    +
    +    protected function getTrueAlpha($alpha)
    +    {
    +        return (string) 100 - $alpha . '000';
    +    }
    +
    +    protected function setColorProperties($color, $alpha, $type)
    +    {
    +        return [
    +            'type' => (string) $type,
    +            'value' => (string) $color,
    +            'alpha' => (string) $this->getTrueAlpha($alpha),
    +        ];
    +    }
    +
    +    protected function getLineStyleArrowSize($array_selector, $array_kay_selector)
    +    {
    +        $sizes = [
    +            1 => ['w' => 'sm', 'len' => 'sm'],
    +            2 => ['w' => 'sm', 'len' => 'med'],
    +            3 => ['w' => 'sm', 'len' => 'lg'],
    +            4 => ['w' => 'med', 'len' => 'sm'],
    +            5 => ['w' => 'med', 'len' => 'med'],
    +            6 => ['w' => 'med', 'len' => 'lg'],
    +            7 => ['w' => 'lg', 'len' => 'sm'],
    +            8 => ['w' => 'lg', 'len' => 'med'],
    +            9 => ['w' => 'lg', 'len' => 'lg'],
    +        ];
    +
    +        return $sizes[$array_selector][$array_kay_selector];
    +    }
    +
    +    protected function getShadowPresetsMap($shadow_presets_option)
    +    {
    +        $presets_options = [
    +            //OUTER
    +            1 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '50800',
    +                'distance' => '38100',
    +                'direction' => '2700000',
    +                'algn' => 'tl',
    +                'rotWithShape' => '0',
    +            ],
    +            2 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '50800',
    +                'distance' => '38100',
    +                'direction' => '5400000',
    +                'algn' => 't',
    +                'rotWithShape' => '0',
    +            ],
    +            3 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '50800',
    +                'distance' => '38100',
    +                'direction' => '8100000',
    +                'algn' => 'tr',
    +                'rotWithShape' => '0',
    +            ],
    +            4 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '50800',
    +                'distance' => '38100',
    +                'algn' => 'l',
    +                'rotWithShape' => '0',
    +            ],
    +            5 => [
    +                'effect' => 'outerShdw',
    +                'size' => [
    +                    'sx' => '102000',
    +                    'sy' => '102000',
    +                ],
    +                'blur' => '63500',
    +                'distance' => '38100',
    +                'algn' => 'ctr',
    +                'rotWithShape' => '0',
    +            ],
    +            6 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '50800',
    +                'distance' => '38100',
    +                'direction' => '10800000',
    +                'algn' => 'r',
    +                'rotWithShape' => '0',
    +            ],
    +            7 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '50800',
    +                'distance' => '38100',
    +                'direction' => '18900000',
    +                'algn' => 'bl',
    +                'rotWithShape' => '0',
    +            ],
    +            8 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '50800',
    +                'distance' => '38100',
    +                'direction' => '16200000',
    +                'rotWithShape' => '0',
    +            ],
    +            9 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '50800',
    +                'distance' => '38100',
    +                'direction' => '13500000',
    +                'algn' => 'br',
    +                'rotWithShape' => '0',
    +            ],
    +            //INNER
    +            10 => [
    +                'effect' => 'innerShdw',
    +                'blur' => '63500',
    +                'distance' => '50800',
    +                'direction' => '2700000',
    +            ],
    +            11 => [
    +                'effect' => 'innerShdw',
    +                'blur' => '63500',
    +                'distance' => '50800',
    +                'direction' => '5400000',
    +            ],
    +            12 => [
    +                'effect' => 'innerShdw',
    +                'blur' => '63500',
    +                'distance' => '50800',
    +                'direction' => '8100000',
    +            ],
    +            13 => [
    +                'effect' => 'innerShdw',
    +                'blur' => '63500',
    +                'distance' => '50800',
    +            ],
    +            14 => [
    +                'effect' => 'innerShdw',
    +                'blur' => '114300',
    +            ],
    +            15 => [
    +                'effect' => 'innerShdw',
    +                'blur' => '63500',
    +                'distance' => '50800',
    +                'direction' => '10800000',
    +            ],
    +            16 => [
    +                'effect' => 'innerShdw',
    +                'blur' => '63500',
    +                'distance' => '50800',
    +                'direction' => '18900000',
    +            ],
    +            17 => [
    +                'effect' => 'innerShdw',
    +                'blur' => '63500',
    +                'distance' => '50800',
    +                'direction' => '16200000',
    +            ],
    +            18 => [
    +                'effect' => 'innerShdw',
    +                'blur' => '63500',
    +                'distance' => '50800',
    +                'direction' => '13500000',
    +            ],
    +            //perspective
    +            19 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '152400',
    +                'distance' => '317500',
    +                'size' => [
    +                    'sx' => '90000',
    +                    'sy' => '-19000',
    +                ],
    +                'direction' => '5400000',
    +                'rotWithShape' => '0',
    +            ],
    +            20 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '76200',
    +                'direction' => '18900000',
    +                'size' => [
    +                    'sy' => '23000',
    +                    'kx' => '-1200000',
    +                ],
    +                'algn' => 'bl',
    +                'rotWithShape' => '0',
    +            ],
    +            21 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '76200',
    +                'direction' => '13500000',
    +                'size' => [
    +                    'sy' => '23000',
    +                    'kx' => '1200000',
    +                ],
    +                'algn' => 'br',
    +                'rotWithShape' => '0',
    +            ],
    +            22 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '76200',
    +                'distance' => '12700',
    +                'direction' => '2700000',
    +                'size' => [
    +                    'sy' => '-23000',
    +                    'kx' => '-800400',
    +                ],
    +                'algn' => 'bl',
    +                'rotWithShape' => '0',
    +            ],
    +            23 => [
    +                'effect' => 'outerShdw',
    +                'blur' => '76200',
    +                'distance' => '12700',
    +                'direction' => '8100000',
    +                'size' => [
    +                    'sy' => '-23000',
    +                    'kx' => '800400',
    +                ],
    +                'algn' => 'br',
    +                'rotWithShape' => '0',
    +            ],
    +        ];
    +
    +        return $presets_options[$shadow_presets_option];
    +    }
    +
    +    protected function getArrayElementsValue($properties, $elements)
    +    {
    +        $reference = &$properties;
    +        if (!is_array($elements)) {
    +            return $reference[$elements];
    +        }
    +
    +        foreach ($elements as $keys) {
    +            $reference = &$reference[$keys];
    +        }
    +
    +        return $reference;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/IRenderer.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/IRenderer.php
    new file mode 100644
    index 00000000000..c6fcfbfc938
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/IRenderer.php
    @@ -0,0 +1,24 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart\Renderer;
    +
    +use PhpOffice\PhpSpreadsheet\Chart\Chart;
    +
    +interface IRenderer
    +{
    +    /**
    +     * IRenderer constructor.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Chart\Chart $chart
    +     */
    +    public function __construct(Chart $chart);
    +
    +    /**
    +     * Render the chart to given file (or stream).
    +     *
    +     * @param string $filename Name of the file render to
    +     *
    +     * @return bool true on success
    +     */
    +    public function render($filename);
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/JpGraph.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/JpGraph.php
    new file mode 100644
    index 00000000000..c0445d49f9a
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/JpGraph.php
    @@ -0,0 +1,856 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart\Renderer;
    +
    +use PhpOffice\PhpSpreadsheet\Chart\Chart;
    +use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
    +
    +require_once __DIR__ . '/Polyfill.php';
    +
    +class JpGraph implements IRenderer
    +{
    +    private static $width = 640;
    +
    +    private static $height = 480;
    +
    +    private static $colourSet = [
    +        'mediumpurple1', 'palegreen3', 'gold1', 'cadetblue1',
    +        'darkmagenta', 'coral', 'dodgerblue3', 'eggplant',
    +        'mediumblue', 'magenta', 'sandybrown', 'cyan',
    +        'firebrick1', 'forestgreen', 'deeppink4', 'darkolivegreen',
    +        'goldenrod2',
    +    ];
    +
    +    private static $markSet;
    +
    +    private $chart;
    +
    +    private $graph;
    +
    +    private static $plotColour = 0;
    +
    +    private static $plotMark = 0;
    +
    +    /**
    +     * Create a new jpgraph.
    +     *
    +     * @param Chart $chart
    +     */
    +    public function __construct(Chart $chart)
    +    {
    +        self::init();
    +        $this->graph = null;
    +        $this->chart = $chart;
    +    }
    +
    +    private static function init()
    +    {
    +        static $loaded = false;
    +        if ($loaded) {
    +            return;
    +        }
    +
    +        \JpGraph\JpGraph::load();
    +        \JpGraph\JpGraph::module('bar');
    +        \JpGraph\JpGraph::module('contour');
    +        \JpGraph\JpGraph::module('line');
    +        \JpGraph\JpGraph::module('pie');
    +        \JpGraph\JpGraph::module('pie3d');
    +        \JpGraph\JpGraph::module('radar');
    +        \JpGraph\JpGraph::module('regstat');
    +        \JpGraph\JpGraph::module('scatter');
    +        \JpGraph\JpGraph::module('stock');
    +
    +        self::$markSet = [
    +            'diamond' => MARK_DIAMOND,
    +            'square' => MARK_SQUARE,
    +            'triangle' => MARK_UTRIANGLE,
    +            'x' => MARK_X,
    +            'star' => MARK_STAR,
    +            'dot' => MARK_FILLEDCIRCLE,
    +            'dash' => MARK_DTRIANGLE,
    +            'circle' => MARK_CIRCLE,
    +            'plus' => MARK_CROSS,
    +        ];
    +
    +        $loaded = true;
    +    }
    +
    +    private function formatPointMarker($seriesPlot, $markerID)
    +    {
    +        $plotMarkKeys = array_keys(self::$markSet);
    +        if ($markerID === null) {
    +            //    Use default plot marker (next marker in the series)
    +            self::$plotMark %= count(self::$markSet);
    +            $seriesPlot->mark->SetType(self::$markSet[$plotMarkKeys[self::$plotMark++]]);
    +        } elseif ($markerID !== 'none') {
    +            //    Use specified plot marker (if it exists)
    +            if (isset(self::$markSet[$markerID])) {
    +                $seriesPlot->mark->SetType(self::$markSet[$markerID]);
    +            } else {
    +                //    If the specified plot marker doesn't exist, use default plot marker (next marker in the series)
    +                self::$plotMark %= count(self::$markSet);
    +                $seriesPlot->mark->SetType(self::$markSet[$plotMarkKeys[self::$plotMark++]]);
    +            }
    +        } else {
    +            //    Hide plot marker
    +            $seriesPlot->mark->Hide();
    +        }
    +        $seriesPlot->mark->SetColor(self::$colourSet[self::$plotColour]);
    +        $seriesPlot->mark->SetFillColor(self::$colourSet[self::$plotColour]);
    +        $seriesPlot->SetColor(self::$colourSet[self::$plotColour++]);
    +
    +        return $seriesPlot;
    +    }
    +
    +    private function formatDataSetLabels($groupID, $datasetLabels, $labelCount, $rotation = '')
    +    {
    +        $datasetLabelFormatCode = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getFormatCode();
    +        if ($datasetLabelFormatCode !== null) {
    +            //    Retrieve any label formatting code
    +            $datasetLabelFormatCode = stripslashes($datasetLabelFormatCode);
    +        }
    +
    +        $testCurrentIndex = 0;
    +        foreach ($datasetLabels as $i => $datasetLabel) {
    +            if (is_array($datasetLabel)) {
    +                if ($rotation == 'bar') {
    +                    $datasetLabels[$i] = implode(' ', $datasetLabel);
    +                } else {
    +                    $datasetLabel = array_reverse($datasetLabel);
    +                    $datasetLabels[$i] = implode("\n", $datasetLabel);
    +                }
    +            } else {
    +                //    Format labels according to any formatting code
    +                if ($datasetLabelFormatCode !== null) {
    +                    $datasetLabels[$i] = NumberFormat::toFormattedString($datasetLabel, $datasetLabelFormatCode);
    +                }
    +            }
    +            ++$testCurrentIndex;
    +        }
    +
    +        return $datasetLabels;
    +    }
    +
    +    private function percentageSumCalculation($groupID, $seriesCount)
    +    {
    +        $sumValues = [];
    +        //    Adjust our values to a percentage value across all series in the group
    +        for ($i = 0; $i < $seriesCount; ++$i) {
    +            if ($i == 0) {
    +                $sumValues = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues();
    +            } else {
    +                $nextValues = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues();
    +                foreach ($nextValues as $k => $value) {
    +                    if (isset($sumValues[$k])) {
    +                        $sumValues[$k] += $value;
    +                    } else {
    +                        $sumValues[$k] = $value;
    +                    }
    +                }
    +            }
    +        }
    +
    +        return $sumValues;
    +    }
    +
    +    private function percentageAdjustValues($dataValues, $sumValues)
    +    {
    +        foreach ($dataValues as $k => $dataValue) {
    +            $dataValues[$k] = $dataValue / $sumValues[$k] * 100;
    +        }
    +
    +        return $dataValues;
    +    }
    +
    +    private function getCaption($captionElement)
    +    {
    +        //    Read any caption
    +        $caption = ($captionElement !== null) ? $captionElement->getCaption() : null;
    +        //    Test if we have a title caption to display
    +        if ($caption !== null) {
    +            //    If we do, it could be a plain string or an array
    +            if (is_array($caption)) {
    +                //    Implode an array to a plain string
    +                $caption = implode('', $caption);
    +            }
    +        }
    +
    +        return $caption;
    +    }
    +
    +    private function renderTitle()
    +    {
    +        $title = $this->getCaption($this->chart->getTitle());
    +        if ($title !== null) {
    +            $this->graph->title->Set($title);
    +        }
    +    }
    +
    +    private function renderLegend()
    +    {
    +        $legend = $this->chart->getLegend();
    +        if ($legend !== null) {
    +            $legendPosition = $legend->getPosition();
    +            switch ($legendPosition) {
    +                case 'r':
    +                    $this->graph->legend->SetPos(0.01, 0.5, 'right', 'center'); //    right
    +                    $this->graph->legend->SetColumns(1);
    +
    +                    break;
    +                case 'l':
    +                    $this->graph->legend->SetPos(0.01, 0.5, 'left', 'center'); //    left
    +                    $this->graph->legend->SetColumns(1);
    +
    +                    break;
    +                case 't':
    +                    $this->graph->legend->SetPos(0.5, 0.01, 'center', 'top'); //    top
    +                    break;
    +                case 'b':
    +                    $this->graph->legend->SetPos(0.5, 0.99, 'center', 'bottom'); //    bottom
    +                    break;
    +                default:
    +                    $this->graph->legend->SetPos(0.01, 0.01, 'right', 'top'); //    top-right
    +                    $this->graph->legend->SetColumns(1);
    +
    +                    break;
    +            }
    +        } else {
    +            $this->graph->legend->Hide();
    +        }
    +    }
    +
    +    private function renderCartesianPlotArea($type = 'textlin')
    +    {
    +        $this->graph = new \Graph(self::$width, self::$height);
    +        $this->graph->SetScale($type);
    +
    +        $this->renderTitle();
    +
    +        //    Rotate for bar rather than column chart
    +        $rotation = $this->chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotDirection();
    +        $reverse = $rotation == 'bar';
    +
    +        $xAxisLabel = $this->chart->getXAxisLabel();
    +        if ($xAxisLabel !== null) {
    +            $title = $this->getCaption($xAxisLabel);
    +            if ($title !== null) {
    +                $this->graph->xaxis->SetTitle($title, 'center');
    +                $this->graph->xaxis->title->SetMargin(35);
    +                if ($reverse) {
    +                    $this->graph->xaxis->title->SetAngle(90);
    +                    $this->graph->xaxis->title->SetMargin(90);
    +                }
    +            }
    +        }
    +
    +        $yAxisLabel = $this->chart->getYAxisLabel();
    +        if ($yAxisLabel !== null) {
    +            $title = $this->getCaption($yAxisLabel);
    +            if ($title !== null) {
    +                $this->graph->yaxis->SetTitle($title, 'center');
    +                if ($reverse) {
    +                    $this->graph->yaxis->title->SetAngle(0);
    +                    $this->graph->yaxis->title->SetMargin(-55);
    +                }
    +            }
    +        }
    +    }
    +
    +    private function renderPiePlotArea()
    +    {
    +        $this->graph = new \PieGraph(self::$width, self::$height);
    +
    +        $this->renderTitle();
    +    }
    +
    +    private function renderRadarPlotArea()
    +    {
    +        $this->graph = new \RadarGraph(self::$width, self::$height);
    +        $this->graph->SetScale('lin');
    +
    +        $this->renderTitle();
    +    }
    +
    +    private function renderPlotLine($groupID, $filled = false, $combination = false, $dimensions = '2d')
    +    {
    +        $grouping = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping();
    +
    +        $labelCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex(0)->getPointCount();
    +        if ($labelCount > 0) {
    +            $datasetLabels = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getDataValues();
    +            $datasetLabels = $this->formatDataSetLabels($groupID, $datasetLabels, $labelCount);
    +            $this->graph->xaxis->SetTickLabels($datasetLabels);
    +        }
    +
    +        $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount();
    +        $seriesPlots = [];
    +        if ($grouping == 'percentStacked') {
    +            $sumValues = $this->percentageSumCalculation($groupID, $seriesCount);
    +        }
    +
    +        //    Loop through each data series in turn
    +        for ($i = 0; $i < $seriesCount; ++$i) {
    +            $dataValues = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues();
    +            $marker = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getPointMarker();
    +
    +            if ($grouping == 'percentStacked') {
    +                $dataValues = $this->percentageAdjustValues($dataValues, $sumValues);
    +            }
    +
    +            //    Fill in any missing values in the $dataValues array
    +            $testCurrentIndex = 0;
    +            foreach ($dataValues as $k => $dataValue) {
    +                while ($k != $testCurrentIndex) {
    +                    $dataValues[$testCurrentIndex] = null;
    +                    ++$testCurrentIndex;
    +                }
    +                ++$testCurrentIndex;
    +            }
    +
    +            $seriesPlot = new \LinePlot($dataValues);
    +            if ($combination) {
    +                $seriesPlot->SetBarCenter();
    +            }
    +
    +            if ($filled) {
    +                $seriesPlot->SetFilled(true);
    +                $seriesPlot->SetColor('black');
    +                $seriesPlot->SetFillColor(self::$colourSet[self::$plotColour++]);
    +            } else {
    +                //    Set the appropriate plot marker
    +                $this->formatPointMarker($seriesPlot, $marker);
    +            }
    +            $dataLabel = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($i)->getDataValue();
    +            $seriesPlot->SetLegend($dataLabel);
    +
    +            $seriesPlots[] = $seriesPlot;
    +        }
    +
    +        if ($grouping == 'standard') {
    +            $groupPlot = $seriesPlots;
    +        } else {
    +            $groupPlot = new \AccLinePlot($seriesPlots);
    +        }
    +        $this->graph->Add($groupPlot);
    +    }
    +
    +    private function renderPlotBar($groupID, $dimensions = '2d')
    +    {
    +        $rotation = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotDirection();
    +        //    Rotate for bar rather than column chart
    +        if (($groupID == 0) && ($rotation == 'bar')) {
    +            $this->graph->Set90AndMargin();
    +        }
    +        $grouping = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping();
    +
    +        $labelCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex(0)->getPointCount();
    +        if ($labelCount > 0) {
    +            $datasetLabels = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getDataValues();
    +            $datasetLabels = $this->formatDataSetLabels($groupID, $datasetLabels, $labelCount, $rotation);
    +            //    Rotate for bar rather than column chart
    +            if ($rotation == 'bar') {
    +                $datasetLabels = array_reverse($datasetLabels);
    +                $this->graph->yaxis->SetPos('max');
    +                $this->graph->yaxis->SetLabelAlign('center', 'top');
    +                $this->graph->yaxis->SetLabelSide(SIDE_RIGHT);
    +            }
    +            $this->graph->xaxis->SetTickLabels($datasetLabels);
    +        }
    +
    +        $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount();
    +        $seriesPlots = [];
    +        if ($grouping == 'percentStacked') {
    +            $sumValues = $this->percentageSumCalculation($groupID, $seriesCount);
    +        }
    +
    +        //    Loop through each data series in turn
    +        for ($j = 0; $j < $seriesCount; ++$j) {
    +            $dataValues = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($j)->getDataValues();
    +            if ($grouping == 'percentStacked') {
    +                $dataValues = $this->percentageAdjustValues($dataValues, $sumValues);
    +            }
    +
    +            //    Fill in any missing values in the $dataValues array
    +            $testCurrentIndex = 0;
    +            foreach ($dataValues as $k => $dataValue) {
    +                while ($k != $testCurrentIndex) {
    +                    $dataValues[$testCurrentIndex] = null;
    +                    ++$testCurrentIndex;
    +                }
    +                ++$testCurrentIndex;
    +            }
    +
    +            //    Reverse the $dataValues order for bar rather than column chart
    +            if ($rotation == 'bar') {
    +                $dataValues = array_reverse($dataValues);
    +            }
    +            $seriesPlot = new \BarPlot($dataValues);
    +            $seriesPlot->SetColor('black');
    +            $seriesPlot->SetFillColor(self::$colourSet[self::$plotColour++]);
    +            if ($dimensions == '3d') {
    +                $seriesPlot->SetShadow();
    +            }
    +            if (!$this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($j)) {
    +                $dataLabel = '';
    +            } else {
    +                $dataLabel = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($j)->getDataValue();
    +            }
    +            $seriesPlot->SetLegend($dataLabel);
    +
    +            $seriesPlots[] = $seriesPlot;
    +        }
    +        //    Reverse the plot order for bar rather than column chart
    +        if (($rotation == 'bar') && ($grouping != 'percentStacked')) {
    +            $seriesPlots = array_reverse($seriesPlots);
    +        }
    +
    +        if ($grouping == 'clustered') {
    +            $groupPlot = new \GroupBarPlot($seriesPlots);
    +        } elseif ($grouping == 'standard') {
    +            $groupPlot = new \GroupBarPlot($seriesPlots);
    +        } else {
    +            $groupPlot = new \AccBarPlot($seriesPlots);
    +            if ($dimensions == '3d') {
    +                $groupPlot->SetShadow();
    +            }
    +        }
    +
    +        $this->graph->Add($groupPlot);
    +    }
    +
    +    private function renderPlotScatter($groupID, $bubble)
    +    {
    +        $grouping = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping();
    +        $scatterStyle = $bubbleSize = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle();
    +
    +        $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount();
    +        $seriesPlots = [];
    +
    +        //    Loop through each data series in turn
    +        for ($i = 0; $i < $seriesCount; ++$i) {
    +            $dataValuesY = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues();
    +            $dataValuesX = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues();
    +
    +            foreach ($dataValuesY as $k => $dataValueY) {
    +                $dataValuesY[$k] = $k;
    +            }
    +
    +            $seriesPlot = new \ScatterPlot($dataValuesX, $dataValuesY);
    +            if ($scatterStyle == 'lineMarker') {
    +                $seriesPlot->SetLinkPoints();
    +                $seriesPlot->link->SetColor(self::$colourSet[self::$plotColour]);
    +            } elseif ($scatterStyle == 'smoothMarker') {
    +                $spline = new \Spline($dataValuesY, $dataValuesX);
    +                list($splineDataY, $splineDataX) = $spline->Get(count($dataValuesX) * self::$width / 20);
    +                $lplot = new \LinePlot($splineDataX, $splineDataY);
    +                $lplot->SetColor(self::$colourSet[self::$plotColour]);
    +
    +                $this->graph->Add($lplot);
    +            }
    +
    +            if ($bubble) {
    +                $this->formatPointMarker($seriesPlot, 'dot');
    +                $seriesPlot->mark->SetColor('black');
    +                $seriesPlot->mark->SetSize($bubbleSize);
    +            } else {
    +                $marker = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getPointMarker();
    +                $this->formatPointMarker($seriesPlot, $marker);
    +            }
    +            $dataLabel = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($i)->getDataValue();
    +            $seriesPlot->SetLegend($dataLabel);
    +
    +            $this->graph->Add($seriesPlot);
    +        }
    +    }
    +
    +    private function renderPlotRadar($groupID)
    +    {
    +        $radarStyle = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle();
    +
    +        $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount();
    +        $seriesPlots = [];
    +
    +        //    Loop through each data series in turn
    +        for ($i = 0; $i < $seriesCount; ++$i) {
    +            $dataValuesY = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues();
    +            $dataValuesX = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues();
    +            $marker = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getPointMarker();
    +
    +            $dataValues = [];
    +            foreach ($dataValuesY as $k => $dataValueY) {
    +                $dataValues[$k] = implode(' ', array_reverse($dataValueY));
    +            }
    +            $tmp = array_shift($dataValues);
    +            $dataValues[] = $tmp;
    +            $tmp = array_shift($dataValuesX);
    +            $dataValuesX[] = $tmp;
    +
    +            $this->graph->SetTitles(array_reverse($dataValues));
    +
    +            $seriesPlot = new \RadarPlot(array_reverse($dataValuesX));
    +
    +            $dataLabel = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotLabelByIndex($i)->getDataValue();
    +            $seriesPlot->SetColor(self::$colourSet[self::$plotColour++]);
    +            if ($radarStyle == 'filled') {
    +                $seriesPlot->SetFillColor(self::$colourSet[self::$plotColour]);
    +            }
    +            $this->formatPointMarker($seriesPlot, $marker);
    +            $seriesPlot->SetLegend($dataLabel);
    +
    +            $this->graph->Add($seriesPlot);
    +        }
    +    }
    +
    +    private function renderPlotContour($groupID)
    +    {
    +        $contourStyle = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle();
    +
    +        $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount();
    +        $seriesPlots = [];
    +
    +        $dataValues = [];
    +        //    Loop through each data series in turn
    +        for ($i = 0; $i < $seriesCount; ++$i) {
    +            $dataValuesY = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex($i)->getDataValues();
    +            $dataValuesX = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($i)->getDataValues();
    +
    +            $dataValues[$i] = $dataValuesX;
    +        }
    +        $seriesPlot = new \ContourPlot($dataValues);
    +
    +        $this->graph->Add($seriesPlot);
    +    }
    +
    +    private function renderPlotStock($groupID)
    +    {
    +        $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount();
    +        $plotOrder = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotOrder();
    +
    +        $dataValues = [];
    +        //    Loop through each data series in turn and build the plot arrays
    +        foreach ($plotOrder as $i => $v) {
    +            $dataValuesX = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($v)->getDataValues();
    +            foreach ($dataValuesX as $j => $dataValueX) {
    +                $dataValues[$plotOrder[$i]][$j] = $dataValueX;
    +            }
    +        }
    +        if (empty($dataValues)) {
    +            return;
    +        }
    +
    +        $dataValuesPlot = [];
    +        // Flatten the plot arrays to a single dimensional array to work with jpgraph
    +        $jMax = count($dataValues[0]);
    +        for ($j = 0; $j < $jMax; ++$j) {
    +            for ($i = 0; $i < $seriesCount; ++$i) {
    +                $dataValuesPlot[] = $dataValues[$i][$j];
    +            }
    +        }
    +
    +        // Set the x-axis labels
    +        $labelCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex(0)->getPointCount();
    +        if ($labelCount > 0) {
    +            $datasetLabels = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getDataValues();
    +            $datasetLabels = $this->formatDataSetLabels($groupID, $datasetLabels, $labelCount);
    +            $this->graph->xaxis->SetTickLabels($datasetLabels);
    +        }
    +
    +        $seriesPlot = new \StockPlot($dataValuesPlot);
    +        $seriesPlot->SetWidth(20);
    +
    +        $this->graph->Add($seriesPlot);
    +    }
    +
    +    private function renderAreaChart($groupCount, $dimensions = '2d')
    +    {
    +        $this->renderCartesianPlotArea();
    +
    +        for ($i = 0; $i < $groupCount; ++$i) {
    +            $this->renderPlotLine($i, true, false, $dimensions);
    +        }
    +    }
    +
    +    private function renderLineChart($groupCount, $dimensions = '2d')
    +    {
    +        $this->renderCartesianPlotArea();
    +
    +        for ($i = 0; $i < $groupCount; ++$i) {
    +            $this->renderPlotLine($i, false, false, $dimensions);
    +        }
    +    }
    +
    +    private function renderBarChart($groupCount, $dimensions = '2d')
    +    {
    +        $this->renderCartesianPlotArea();
    +
    +        for ($i = 0; $i < $groupCount; ++$i) {
    +            $this->renderPlotBar($i, $dimensions);
    +        }
    +    }
    +
    +    private function renderScatterChart($groupCount)
    +    {
    +        $this->renderCartesianPlotArea('linlin');
    +
    +        for ($i = 0; $i < $groupCount; ++$i) {
    +            $this->renderPlotScatter($i, false);
    +        }
    +    }
    +
    +    private function renderBubbleChart($groupCount)
    +    {
    +        $this->renderCartesianPlotArea('linlin');
    +
    +        for ($i = 0; $i < $groupCount; ++$i) {
    +            $this->renderPlotScatter($i, true);
    +        }
    +    }
    +
    +    private function renderPieChart($groupCount, $dimensions = '2d', $doughnut = false, $multiplePlots = false)
    +    {
    +        $this->renderPiePlotArea();
    +
    +        $iLimit = ($multiplePlots) ? $groupCount : 1;
    +        for ($groupID = 0; $groupID < $iLimit; ++$groupID) {
    +            $grouping = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotGrouping();
    +            $exploded = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotStyle();
    +            $datasetLabels = [];
    +            if ($groupID == 0) {
    +                $labelCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex(0)->getPointCount();
    +                if ($labelCount > 0) {
    +                    $datasetLabels = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotCategoryByIndex(0)->getDataValues();
    +                    $datasetLabels = $this->formatDataSetLabels($groupID, $datasetLabels, $labelCount);
    +                }
    +            }
    +
    +            $seriesCount = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotSeriesCount();
    +            $seriesPlots = [];
    +            //    For pie charts, we only display the first series: doughnut charts generally display all series
    +            $jLimit = ($multiplePlots) ? $seriesCount : 1;
    +            //    Loop through each data series in turn
    +            for ($j = 0; $j < $jLimit; ++$j) {
    +                $dataValues = $this->chart->getPlotArea()->getPlotGroupByIndex($groupID)->getPlotValuesByIndex($j)->getDataValues();
    +
    +                //    Fill in any missing values in the $dataValues array
    +                $testCurrentIndex = 0;
    +                foreach ($dataValues as $k => $dataValue) {
    +                    while ($k != $testCurrentIndex) {
    +                        $dataValues[$testCurrentIndex] = null;
    +                        ++$testCurrentIndex;
    +                    }
    +                    ++$testCurrentIndex;
    +                }
    +
    +                if ($dimensions == '3d') {
    +                    $seriesPlot = new \PiePlot3D($dataValues);
    +                } else {
    +                    if ($doughnut) {
    +                        $seriesPlot = new \PiePlotC($dataValues);
    +                    } else {
    +                        $seriesPlot = new \PiePlot($dataValues);
    +                    }
    +                }
    +
    +                if ($multiplePlots) {
    +                    $seriesPlot->SetSize(($jLimit - $j) / ($jLimit * 4));
    +                }
    +
    +                if ($doughnut) {
    +                    $seriesPlot->SetMidColor('white');
    +                }
    +
    +                $seriesPlot->SetColor(self::$colourSet[self::$plotColour++]);
    +                if (count($datasetLabels) > 0) {
    +                    $seriesPlot->SetLabels(array_fill(0, count($datasetLabels), ''));
    +                }
    +                if ($dimensions != '3d') {
    +                    $seriesPlot->SetGuideLines(false);
    +                }
    +                if ($j == 0) {
    +                    if ($exploded) {
    +                        $seriesPlot->ExplodeAll();
    +                    }
    +                    $seriesPlot->SetLegends($datasetLabels);
    +                }
    +
    +                $this->graph->Add($seriesPlot);
    +            }
    +        }
    +    }
    +
    +    private function renderRadarChart($groupCount)
    +    {
    +        $this->renderRadarPlotArea();
    +
    +        for ($groupID = 0; $groupID < $groupCount; ++$groupID) {
    +            $this->renderPlotRadar($groupID);
    +        }
    +    }
    +
    +    private function renderStockChart($groupCount)
    +    {
    +        $this->renderCartesianPlotArea('intint');
    +
    +        for ($groupID = 0; $groupID < $groupCount; ++$groupID) {
    +            $this->renderPlotStock($groupID);
    +        }
    +    }
    +
    +    private function renderContourChart($groupCount, $dimensions)
    +    {
    +        $this->renderCartesianPlotArea('intint');
    +
    +        for ($i = 0; $i < $groupCount; ++$i) {
    +            $this->renderPlotContour($i);
    +        }
    +    }
    +
    +    private function renderCombinationChart($groupCount, $dimensions, $outputDestination)
    +    {
    +        $this->renderCartesianPlotArea();
    +
    +        for ($i = 0; $i < $groupCount; ++$i) {
    +            $dimensions = null;
    +            $chartType = $this->chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType();
    +            switch ($chartType) {
    +                case 'area3DChart':
    +                    $dimensions = '3d';
    +                // no break
    +                case 'areaChart':
    +                    $this->renderPlotLine($i, true, true, $dimensions);
    +
    +                    break;
    +                case 'bar3DChart':
    +                    $dimensions = '3d';
    +                // no break
    +                case 'barChart':
    +                    $this->renderPlotBar($i, $dimensions);
    +
    +                    break;
    +                case 'line3DChart':
    +                    $dimensions = '3d';
    +                // no break
    +                case 'lineChart':
    +                    $this->renderPlotLine($i, false, true, $dimensions);
    +
    +                    break;
    +                case 'scatterChart':
    +                    $this->renderPlotScatter($i, false);
    +
    +                    break;
    +                case 'bubbleChart':
    +                    $this->renderPlotScatter($i, true);
    +
    +                    break;
    +                default:
    +                    $this->graph = null;
    +
    +                    return false;
    +            }
    +        }
    +
    +        $this->renderLegend();
    +
    +        $this->graph->Stroke($outputDestination);
    +
    +        return true;
    +    }
    +
    +    public function render($outputDestination)
    +    {
    +        self::$plotColour = 0;
    +
    +        $groupCount = $this->chart->getPlotArea()->getPlotGroupCount();
    +
    +        $dimensions = null;
    +        if ($groupCount == 1) {
    +            $chartType = $this->chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType();
    +        } else {
    +            $chartTypes = [];
    +            for ($i = 0; $i < $groupCount; ++$i) {
    +                $chartTypes[] = $this->chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType();
    +            }
    +            $chartTypes = array_unique($chartTypes);
    +            if (count($chartTypes) == 1) {
    +                $chartType = array_pop($chartTypes);
    +            } elseif (count($chartTypes) == 0) {
    +                echo 'Chart is not yet implemented<br />';
    +
    +                return false;
    +            } else {
    +                return $this->renderCombinationChart($groupCount, $dimensions, $outputDestination);
    +            }
    +        }
    +
    +        switch ($chartType) {
    +            case 'area3DChart':
    +                $dimensions = '3d';
    +            // no break
    +            case 'areaChart':
    +                $this->renderAreaChart($groupCount, $dimensions);
    +
    +                break;
    +            case 'bar3DChart':
    +                $dimensions = '3d';
    +            // no break
    +            case 'barChart':
    +                $this->renderBarChart($groupCount, $dimensions);
    +
    +                break;
    +            case 'line3DChart':
    +                $dimensions = '3d';
    +            // no break
    +            case 'lineChart':
    +                $this->renderLineChart($groupCount, $dimensions);
    +
    +                break;
    +            case 'pie3DChart':
    +                $dimensions = '3d';
    +            // no break
    +            case 'pieChart':
    +                $this->renderPieChart($groupCount, $dimensions, false, false);
    +
    +                break;
    +            case 'doughnut3DChart':
    +                $dimensions = '3d';
    +            // no break
    +            case 'doughnutChart':
    +                $this->renderPieChart($groupCount, $dimensions, true, true);
    +
    +                break;
    +            case 'scatterChart':
    +                $this->renderScatterChart($groupCount);
    +
    +                break;
    +            case 'bubbleChart':
    +                $this->renderBubbleChart($groupCount);
    +
    +                break;
    +            case 'radarChart':
    +                $this->renderRadarChart($groupCount);
    +
    +                break;
    +            case 'surface3DChart':
    +                $dimensions = '3d';
    +            // no break
    +            case 'surfaceChart':
    +                $this->renderContourChart($groupCount, $dimensions);
    +
    +                break;
    +            case 'stockChart':
    +                $this->renderStockChart($groupCount);
    +
    +                break;
    +            default:
    +                echo $chartType . ' is not yet implemented<br />';
    +
    +                return false;
    +        }
    +        $this->renderLegend();
    +
    +        $this->graph->Stroke($outputDestination);
    +
    +        return true;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/PHP Charting Libraries.txt b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/PHP Charting Libraries.txt
    new file mode 100644
    index 00000000000..4abab7a257d
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/PHP Charting Libraries.txt	
    @@ -0,0 +1,20 @@
    +ChartDirector
    +	https://www.advsofteng.com/cdphp.html
    +
    +GraPHPite
    +	http://graphpite.sourceforge.net/
    +
    +JpGraph
    +	http://www.aditus.nu/jpgraph/
    +
    +LibChart
    +	https://naku.dohcrew.com/libchart/pages/introduction/
    +
    +pChart
    +	http://pchart.sourceforge.net/
    +
    +TeeChart
    +	https://www.steema.com/
    +
    +PHPGraphLib
    +    http://www.ebrueggeman.com/phpgraphlib
    \ No newline at end of file
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/Polyfill.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/Polyfill.php
    new file mode 100644
    index 00000000000..7fa383944c9
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Renderer/Polyfill.php
    @@ -0,0 +1,9 @@
    +<?php
    +
    +// This is a dirty workaround to output JpGraph charts even when antialiasing is not available
    +if (!function_exists('imageantialias')) {
    +    function imageantialias(...$args)
    +    {
    +        // Do nothing
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Title.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Title.php
    new file mode 100644
    index 00000000000..f53c6b37bdd
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Chart/Title.php
    @@ -0,0 +1,66 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Chart;
    +
    +class Title
    +{
    +    /**
    +     * Title Caption.
    +     *
    +     * @var string
    +     */
    +    private $caption;
    +
    +    /**
    +     * Title Layout.
    +     *
    +     * @var Layout
    +     */
    +    private $layout;
    +
    +    /**
    +     * Create a new Title.
    +     *
    +     * @param null|mixed $caption
    +     * @param null|Layout $layout
    +     */
    +    public function __construct($caption = null, Layout $layout = null)
    +    {
    +        $this->caption = $caption;
    +        $this->layout = $layout;
    +    }
    +
    +    /**
    +     * Get caption.
    +     *
    +     * @return string
    +     */
    +    public function getCaption()
    +    {
    +        return $this->caption;
    +    }
    +
    +    /**
    +     * Set caption.
    +     *
    +     * @param string $caption
    +     *
    +     * @return Title
    +     */
    +    public function setCaption($caption)
    +    {
    +        $this->caption = $caption;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Layout.
    +     *
    +     * @return Layout
    +     */
    +    public function getLayout()
    +    {
    +        return $this->layout;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Collection/Cells.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Collection/Cells.php
    new file mode 100644
    index 00000000000..80a43220988
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Collection/Cells.php
    @@ -0,0 +1,506 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Collection;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Cell;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +use Psr\SimpleCache\CacheInterface;
    +
    +class Cells
    +{
    +    /**
    +     * @var \Psr\SimpleCache\CacheInterface
    +     */
    +    private $cache;
    +
    +    /**
    +     * Parent worksheet.
    +     *
    +     * @var Worksheet
    +     */
    +    private $parent;
    +
    +    /**
    +     * The currently active Cell.
    +     *
    +     * @var Cell
    +     */
    +    private $currentCell;
    +
    +    /**
    +     * Coordinate of the currently active Cell.
    +     *
    +     * @var string
    +     */
    +    private $currentCoordinate;
    +
    +    /**
    +     * Flag indicating whether the currently active Cell requires saving.
    +     *
    +     * @var bool
    +     */
    +    private $currentCellIsDirty = false;
    +
    +    /**
    +     * An index of existing cells. Booleans indexed by their coordinate.
    +     *
    +     * @var bool[]
    +     */
    +    private $index = [];
    +
    +    /**
    +     * Prefix used to uniquely identify cache data for this worksheet.
    +     *
    +     * @var string
    +     */
    +    private $cachePrefix;
    +
    +    /**
    +     * Initialise this new cell collection.
    +     *
    +     * @param Worksheet $parent The worksheet for this cell collection
    +     * @param CacheInterface $cache
    +     */
    +    public function __construct(Worksheet $parent, CacheInterface $cache)
    +    {
    +        // Set our parent worksheet.
    +        // This is maintained here to facilitate re-attaching it to Cell objects when
    +        // they are woken from a serialized state
    +        $this->parent = $parent;
    +        $this->cache = $cache;
    +        $this->cachePrefix = $this->getUniqueID();
    +    }
    +
    +    /**
    +     * Return the parent worksheet for this cell collection.
    +     *
    +     * @return Worksheet
    +     */
    +    public function getParent()
    +    {
    +        return $this->parent;
    +    }
    +
    +    /**
    +     * Whether the collection holds a cell for the given coordinate.
    +     *
    +     * @param string $pCoord Coordinate of the cell to check
    +     *
    +     * @return bool
    +     */
    +    public function has($pCoord)
    +    {
    +        if ($pCoord === $this->currentCoordinate) {
    +            return true;
    +        }
    +
    +        // Check if the requested entry exists in the index
    +        return isset($this->index[$pCoord]);
    +    }
    +
    +    /**
    +     * Add or update a cell in the collection.
    +     *
    +     * @param Cell $cell Cell to update
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Cell
    +     */
    +    public function update(Cell $cell)
    +    {
    +        return $this->add($cell->getCoordinate(), $cell);
    +    }
    +
    +    /**
    +     * Delete a cell in cache identified by coordinate.
    +     *
    +     * @param string $pCoord Coordinate of the cell to delete
    +     */
    +    public function delete($pCoord)
    +    {
    +        if ($pCoord === $this->currentCoordinate && $this->currentCell !== null) {
    +            $this->currentCell->detach();
    +            $this->currentCoordinate = null;
    +            $this->currentCell = null;
    +            $this->currentCellIsDirty = false;
    +        }
    +
    +        unset($this->index[$pCoord]);
    +
    +        // Delete the entry from cache
    +        $this->cache->delete($this->cachePrefix . $pCoord);
    +    }
    +
    +    /**
    +     * Get a list of all cell coordinates currently held in the collection.
    +     *
    +     * @return string[]
    +     */
    +    public function getCoordinates()
    +    {
    +        return array_keys($this->index);
    +    }
    +
    +    /**
    +     * Get a sorted list of all cell coordinates currently held in the collection by row and column.
    +     *
    +     * @return string[]
    +     */
    +    public function getSortedCoordinates()
    +    {
    +        $sortKeys = [];
    +        foreach ($this->getCoordinates() as $coord) {
    +            $column = '';
    +            $row = 0;
    +            sscanf($coord, '%[A-Z]%d', $column, $row);
    +            $sortKeys[sprintf('%09d%3s', $row, $column)] = $coord;
    +        }
    +        ksort($sortKeys);
    +
    +        return array_values($sortKeys);
    +    }
    +
    +    /**
    +     * Get highest worksheet column and highest row that have cell records.
    +     *
    +     * @return array Highest column name and highest row number
    +     */
    +    public function getHighestRowAndColumn()
    +    {
    +        // Lookup highest column and highest row
    +        $col = ['A' => '1A'];
    +        $row = [1];
    +        foreach ($this->getCoordinates() as $coord) {
    +            $c = '';
    +            $r = 0;
    +            sscanf($coord, '%[A-Z]%d', $c, $r);
    +            $row[$r] = $r;
    +            $col[$c] = strlen($c) . $c;
    +        }
    +
    +        // Determine highest column and row
    +        $highestRow = max($row);
    +        $highestColumn = substr(max($col), 1);
    +
    +        return [
    +            'row' => $highestRow,
    +            'column' => $highestColumn,
    +        ];
    +    }
    +
    +    /**
    +     * Return the cell coordinate of the currently active cell object.
    +     *
    +     * @return string
    +     */
    +    public function getCurrentCoordinate()
    +    {
    +        return $this->currentCoordinate;
    +    }
    +
    +    /**
    +     * Return the column coordinate of the currently active cell object.
    +     *
    +     * @return string
    +     */
    +    public function getCurrentColumn()
    +    {
    +        $column = '';
    +        $row = 0;
    +
    +        sscanf($this->currentCoordinate, '%[A-Z]%d', $column, $row);
    +
    +        return $column;
    +    }
    +
    +    /**
    +     * Return the row coordinate of the currently active cell object.
    +     *
    +     * @return int
    +     */
    +    public function getCurrentRow()
    +    {
    +        $column = '';
    +        $row = 0;
    +
    +        sscanf($this->currentCoordinate, '%[A-Z]%d', $column, $row);
    +
    +        return (int) $row;
    +    }
    +
    +    /**
    +     * Get highest worksheet column.
    +     *
    +     * @param string $row Return the highest column for the specified row,
    +     *                    or the highest column of any row if no row number is passed
    +     *
    +     * @return string Highest column name
    +     */
    +    public function getHighestColumn($row = null)
    +    {
    +        if ($row == null) {
    +            $colRow = $this->getHighestRowAndColumn();
    +
    +            return $colRow['column'];
    +        }
    +
    +        $columnList = [1];
    +        foreach ($this->getCoordinates() as $coord) {
    +            $c = '';
    +            $r = 0;
    +
    +            sscanf($coord, '%[A-Z]%d', $c, $r);
    +            if ($r != $row) {
    +                continue;
    +            }
    +            $columnList[] = Coordinate::columnIndexFromString($c);
    +        }
    +
    +        return Coordinate::stringFromColumnIndex(max($columnList) + 1);
    +    }
    +
    +    /**
    +     * Get highest worksheet row.
    +     *
    +     * @param string $column Return the highest row for the specified column,
    +     *                       or the highest row of any column if no column letter is passed
    +     *
    +     * @return int Highest row number
    +     */
    +    public function getHighestRow($column = null)
    +    {
    +        if ($column == null) {
    +            $colRow = $this->getHighestRowAndColumn();
    +
    +            return $colRow['row'];
    +        }
    +
    +        $rowList = [0];
    +        foreach ($this->getCoordinates() as $coord) {
    +            $c = '';
    +            $r = 0;
    +
    +            sscanf($coord, '%[A-Z]%d', $c, $r);
    +            if ($c != $column) {
    +                continue;
    +            }
    +            $rowList[] = $r;
    +        }
    +
    +        return max($rowList);
    +    }
    +
    +    /**
    +     * Generate a unique ID for cache referencing.
    +     *
    +     * @return string Unique Reference
    +     */
    +    private function getUniqueID()
    +    {
    +        return uniqid('phpspreadsheet.', true) . '.';
    +    }
    +
    +    /**
    +     * Clone the cell collection.
    +     *
    +     * @param Worksheet $parent The new worksheet that we're copying to
    +     *
    +     * @return self
    +     */
    +    public function cloneCellCollection(Worksheet $parent)
    +    {
    +        $this->storeCurrentCell();
    +        $newCollection = clone $this;
    +
    +        $newCollection->parent = $parent;
    +        if (($newCollection->currentCell !== null) && (is_object($newCollection->currentCell))) {
    +            $newCollection->currentCell->attach($this);
    +        }
    +
    +        // Get old values
    +        $oldKeys = $newCollection->getAllCacheKeys();
    +        $oldValues = $newCollection->cache->getMultiple($oldKeys);
    +        $newValues = [];
    +        $oldCachePrefix = $newCollection->cachePrefix;
    +
    +        // Change prefix
    +        $newCollection->cachePrefix = $newCollection->getUniqueID();
    +        foreach ($oldValues as $oldKey => $value) {
    +            $newValues[str_replace($oldCachePrefix, $newCollection->cachePrefix, $oldKey)] = clone $value;
    +        }
    +
    +        // Store new values
    +        $stored = $newCollection->cache->setMultiple($newValues);
    +        if (!$stored) {
    +            $newCollection->__destruct();
    +
    +            throw new PhpSpreadsheetException('Failed to copy cells in cache');
    +        }
    +
    +        return $newCollection;
    +    }
    +
    +    /**
    +     * Remove a row, deleting all cells in that row.
    +     *
    +     * @param string $row Row number to remove
    +     */
    +    public function removeRow($row)
    +    {
    +        foreach ($this->getCoordinates() as $coord) {
    +            $c = '';
    +            $r = 0;
    +
    +            sscanf($coord, '%[A-Z]%d', $c, $r);
    +            if ($r == $row) {
    +                $this->delete($coord);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Remove a column, deleting all cells in that column.
    +     *
    +     * @param string $column Column ID to remove
    +     */
    +    public function removeColumn($column)
    +    {
    +        foreach ($this->getCoordinates() as $coord) {
    +            $c = '';
    +            $r = 0;
    +
    +            sscanf($coord, '%[A-Z]%d', $c, $r);
    +            if ($c == $column) {
    +                $this->delete($coord);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Store cell data in cache for the current cell object if it's "dirty",
    +     * and the 'nullify' the current cell object.
    +     *
    +     * @throws PhpSpreadsheetException
    +     */
    +    private function storeCurrentCell()
    +    {
    +        if ($this->currentCellIsDirty && !empty($this->currentCoordinate)) {
    +            $this->currentCell->detach();
    +
    +            $stored = $this->cache->set($this->cachePrefix . $this->currentCoordinate, $this->currentCell);
    +            if (!$stored) {
    +                $this->__destruct();
    +
    +                throw new PhpSpreadsheetException("Failed to store cell {$this->currentCoordinate} in cache");
    +            }
    +            $this->currentCellIsDirty = false;
    +        }
    +
    +        $this->currentCoordinate = null;
    +        $this->currentCell = null;
    +    }
    +
    +    /**
    +     * Add or update a cell identified by its coordinate into the collection.
    +     *
    +     * @param string $pCoord Coordinate of the cell to update
    +     * @param Cell $cell Cell to update
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return \PhpOffice\PhpSpreadsheet\Cell\Cell
    +     */
    +    public function add($pCoord, Cell $cell)
    +    {
    +        if ($pCoord !== $this->currentCoordinate) {
    +            $this->storeCurrentCell();
    +        }
    +        $this->index[$pCoord] = true;
    +
    +        $this->currentCoordinate = $pCoord;
    +        $this->currentCell = $cell;
    +        $this->currentCellIsDirty = true;
    +
    +        return $cell;
    +    }
    +
    +    /**
    +     * Get cell at a specific coordinate.
    +     *
    +     * @param string $pCoord Coordinate of the cell
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return \PhpOffice\PhpSpreadsheet\Cell\Cell Cell that was found, or null if not found
    +     */
    +    public function get($pCoord)
    +    {
    +        if ($pCoord === $this->currentCoordinate) {
    +            return $this->currentCell;
    +        }
    +        $this->storeCurrentCell();
    +
    +        // Return null if requested entry doesn't exist in collection
    +        if (!$this->has($pCoord)) {
    +            return null;
    +        }
    +
    +        // Check if the entry that has been requested actually exists
    +        $cell = $this->cache->get($this->cachePrefix . $pCoord);
    +        if ($cell === null) {
    +            throw new PhpSpreadsheetException("Cell entry {$pCoord} no longer exists in cache. This probably means that the cache was cleared by someone else.");
    +        }
    +
    +        // Set current entry to the requested entry
    +        $this->currentCoordinate = $pCoord;
    +        $this->currentCell = $cell;
    +        // Re-attach this as the cell's parent
    +        $this->currentCell->attach($this);
    +
    +        // Return requested entry
    +        return $this->currentCell;
    +    }
    +
    +    /**
    +     * Clear the cell collection and disconnect from our parent.
    +     */
    +    public function unsetWorksheetCells()
    +    {
    +        if ($this->currentCell !== null) {
    +            $this->currentCell->detach();
    +            $this->currentCell = null;
    +            $this->currentCoordinate = null;
    +        }
    +
    +        // Flush the cache
    +        $this->__destruct();
    +
    +        $this->index = [];
    +
    +        // detach ourself from the worksheet, so that it can then delete this object successfully
    +        $this->parent = null;
    +    }
    +
    +    /**
    +     * Destroy this cell collection.
    +     */
    +    public function __destruct()
    +    {
    +        $this->cache->deleteMultiple($this->getAllCacheKeys());
    +    }
    +
    +    /**
    +     * Returns all known cache keys.
    +     *
    +     * @return \Generator|string[]
    +     */
    +    private function getAllCacheKeys()
    +    {
    +        foreach ($this->getCoordinates() as $coordinate) {
    +            yield $this->cachePrefix . $coordinate;
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Collection/CellsFactory.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Collection/CellsFactory.php
    new file mode 100644
    index 00000000000..46d3cf7e14e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Collection/CellsFactory.php
    @@ -0,0 +1,23 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Collection;
    +
    +use PhpOffice\PhpSpreadsheet\Settings;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +abstract class CellsFactory
    +{
    +    /**
    +     * Initialise the cache storage.
    +     *
    +     * @param Worksheet $parent Enable cell caching for this worksheet
    +     *
    +     * @return Cells
    +     * */
    +    public static function getInstance(Worksheet $parent)
    +    {
    +        $instance = new Cells($parent, Settings::getCache());
    +
    +        return $instance;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Collection/Memory.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Collection/Memory.php
    new file mode 100644
    index 00000000000..a32551b0e5d
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Collection/Memory.php
    @@ -0,0 +1,79 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Collection;
    +
    +use Psr\SimpleCache\CacheInterface;
    +
    +/**
    + * This is the default implementation for in-memory cell collection.
    + *
    + * Alternatives implementation should leverage off-memory, non-volatile storage
    + * to reduce overall memory usage.
    + */
    +class Memory implements CacheInterface
    +{
    +    private $cache = [];
    +
    +    public function clear()
    +    {
    +        $this->cache = [];
    +
    +        return true;
    +    }
    +
    +    public function delete($key)
    +    {
    +        unset($this->cache[$key]);
    +
    +        return true;
    +    }
    +
    +    public function deleteMultiple($keys)
    +    {
    +        foreach ($keys as $key) {
    +            $this->delete($key);
    +        }
    +
    +        return true;
    +    }
    +
    +    public function get($key, $default = null)
    +    {
    +        if ($this->has($key)) {
    +            return $this->cache[$key];
    +        }
    +
    +        return $default;
    +    }
    +
    +    public function getMultiple($keys, $default = null)
    +    {
    +        $results = [];
    +        foreach ($keys as $key) {
    +            $results[$key] = $this->get($key, $default);
    +        }
    +
    +        return $results;
    +    }
    +
    +    public function has($key)
    +    {
    +        return array_key_exists($key, $this->cache);
    +    }
    +
    +    public function set($key, $value, $ttl = null)
    +    {
    +        $this->cache[$key] = $value;
    +
    +        return true;
    +    }
    +
    +    public function setMultiple($values, $ttl = null)
    +    {
    +        foreach ($values as $key => $value) {
    +            $this->set($key, $value);
    +        }
    +
    +        return true;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Comment.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Comment.php
    new file mode 100644
    index 00000000000..1b5ab1fd2c1
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Comment.php
    @@ -0,0 +1,331 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet;
    +
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +
    +class Comment implements IComparable
    +{
    +    /**
    +     * Author.
    +     *
    +     * @var string
    +     */
    +    private $author;
    +
    +    /**
    +     * Rich text comment.
    +     *
    +     * @var RichText
    +     */
    +    private $text;
    +
    +    /**
    +     * Comment width (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @var string
    +     */
    +    private $width = '96pt';
    +
    +    /**
    +     * Left margin (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @var string
    +     */
    +    private $marginLeft = '59.25pt';
    +
    +    /**
    +     * Top margin (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @var string
    +     */
    +    private $marginTop = '1.5pt';
    +
    +    /**
    +     * Visible.
    +     *
    +     * @var bool
    +     */
    +    private $visible = false;
    +
    +    /**
    +     * Comment height (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @var string
    +     */
    +    private $height = '55.5pt';
    +
    +    /**
    +     * Comment fill color.
    +     *
    +     * @var Style\Color
    +     */
    +    private $fillColor;
    +
    +    /**
    +     * Alignment.
    +     *
    +     * @var string
    +     */
    +    private $alignment;
    +
    +    /**
    +     * Create a new Comment.
    +     */
    +    public function __construct()
    +    {
    +        // Initialise variables
    +        $this->author = 'Author';
    +        $this->text = new RichText();
    +        $this->fillColor = new Style\Color('FFFFFFE1');
    +        $this->alignment = Style\Alignment::HORIZONTAL_GENERAL;
    +    }
    +
    +    /**
    +     * Get Author.
    +     *
    +     * @return string
    +     */
    +    public function getAuthor()
    +    {
    +        return $this->author;
    +    }
    +
    +    /**
    +     * Set Author.
    +     *
    +     * @param string $author
    +     *
    +     * @return Comment
    +     */
    +    public function setAuthor($author)
    +    {
    +        $this->author = $author;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Rich text comment.
    +     *
    +     * @return RichText
    +     */
    +    public function getText()
    +    {
    +        return $this->text;
    +    }
    +
    +    /**
    +     * Set Rich text comment.
    +     *
    +     * @param RichText $pValue
    +     *
    +     * @return Comment
    +     */
    +    public function setText(RichText $pValue)
    +    {
    +        $this->text = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get comment width (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @return string
    +     */
    +    public function getWidth()
    +    {
    +        return $this->width;
    +    }
    +
    +    /**
    +     * Set comment width (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @param string $width
    +     *
    +     * @return Comment
    +     */
    +    public function setWidth($width)
    +    {
    +        $this->width = $width;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get comment height (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @return string
    +     */
    +    public function getHeight()
    +    {
    +        return $this->height;
    +    }
    +
    +    /**
    +     * Set comment height (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @param string $value
    +     *
    +     * @return Comment
    +     */
    +    public function setHeight($value)
    +    {
    +        $this->height = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get left margin (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @return string
    +     */
    +    public function getMarginLeft()
    +    {
    +        return $this->marginLeft;
    +    }
    +
    +    /**
    +     * Set left margin (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @param string $value
    +     *
    +     * @return Comment
    +     */
    +    public function setMarginLeft($value)
    +    {
    +        $this->marginLeft = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get top margin (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @return string
    +     */
    +    public function getMarginTop()
    +    {
    +        return $this->marginTop;
    +    }
    +
    +    /**
    +     * Set top margin (CSS style, i.e. XXpx or YYpt).
    +     *
    +     * @param string $value
    +     *
    +     * @return Comment
    +     */
    +    public function setMarginTop($value)
    +    {
    +        $this->marginTop = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Is the comment visible by default?
    +     *
    +     * @return bool
    +     */
    +    public function getVisible()
    +    {
    +        return $this->visible;
    +    }
    +
    +    /**
    +     * Set comment default visibility.
    +     *
    +     * @param bool $value
    +     *
    +     * @return Comment
    +     */
    +    public function setVisible($value)
    +    {
    +        $this->visible = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get fill color.
    +     *
    +     * @return Style\Color
    +     */
    +    public function getFillColor()
    +    {
    +        return $this->fillColor;
    +    }
    +
    +    /**
    +     * Set Alignment.
    +     *
    +     * @param string $alignment see Style\Alignment::HORIZONTAL_*
    +     *
    +     * @return Comment
    +     */
    +    public function setAlignment($alignment)
    +    {
    +        $this->alignment = $alignment;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Alignment.
    +     *
    +     * @return string
    +     */
    +    public function getAlignment()
    +    {
    +        return $this->alignment;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        return md5(
    +            $this->author .
    +            $this->text->getHashCode() .
    +            $this->width .
    +            $this->height .
    +            $this->marginLeft .
    +            $this->marginTop .
    +            ($this->visible ? 1 : 0) .
    +            $this->fillColor->getHashCode() .
    +            $this->alignment .
    +            __CLASS__
    +        );
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Convert to string.
    +     *
    +     * @return string
    +     */
    +    public function __toString()
    +    {
    +        return $this->text->getPlainText();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Document/Properties.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Document/Properties.php
    new file mode 100644
    index 00000000000..bbac96d92a8
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Document/Properties.php
    @@ -0,0 +1,629 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Document;
    +
    +class Properties
    +{
    +    /** constants */
    +    const PROPERTY_TYPE_BOOLEAN = 'b';
    +    const PROPERTY_TYPE_INTEGER = 'i';
    +    const PROPERTY_TYPE_FLOAT = 'f';
    +    const PROPERTY_TYPE_DATE = 'd';
    +    const PROPERTY_TYPE_STRING = 's';
    +    const PROPERTY_TYPE_UNKNOWN = 'u';
    +
    +    /**
    +     * Creator.
    +     *
    +     * @var string
    +     */
    +    private $creator = 'Unknown Creator';
    +
    +    /**
    +     * LastModifiedBy.
    +     *
    +     * @var string
    +     */
    +    private $lastModifiedBy;
    +
    +    /**
    +     * Created.
    +     *
    +     * @var int
    +     */
    +    private $created;
    +
    +    /**
    +     * Modified.
    +     *
    +     * @var int
    +     */
    +    private $modified;
    +
    +    /**
    +     * Title.
    +     *
    +     * @var string
    +     */
    +    private $title = 'Untitled Spreadsheet';
    +
    +    /**
    +     * Description.
    +     *
    +     * @var string
    +     */
    +    private $description = '';
    +
    +    /**
    +     * Subject.
    +     *
    +     * @var string
    +     */
    +    private $subject = '';
    +
    +    /**
    +     * Keywords.
    +     *
    +     * @var string
    +     */
    +    private $keywords = '';
    +
    +    /**
    +     * Category.
    +     *
    +     * @var string
    +     */
    +    private $category = '';
    +
    +    /**
    +     * Manager.
    +     *
    +     * @var string
    +     */
    +    private $manager = '';
    +
    +    /**
    +     * Company.
    +     *
    +     * @var string
    +     */
    +    private $company = 'Microsoft Corporation';
    +
    +    /**
    +     * Custom Properties.
    +     *
    +     * @var string
    +     */
    +    private $customProperties = [];
    +
    +    /**
    +     * Create a new Document Properties instance.
    +     */
    +    public function __construct()
    +    {
    +        // Initialise values
    +        $this->lastModifiedBy = $this->creator;
    +        $this->created = time();
    +        $this->modified = time();
    +    }
    +
    +    /**
    +     * Get Creator.
    +     *
    +     * @return string
    +     */
    +    public function getCreator()
    +    {
    +        return $this->creator;
    +    }
    +
    +    /**
    +     * Set Creator.
    +     *
    +     * @param string $creator
    +     *
    +     * @return Properties
    +     */
    +    public function setCreator($creator)
    +    {
    +        $this->creator = $creator;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Last Modified By.
    +     *
    +     * @return string
    +     */
    +    public function getLastModifiedBy()
    +    {
    +        return $this->lastModifiedBy;
    +    }
    +
    +    /**
    +     * Set Last Modified By.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return Properties
    +     */
    +    public function setLastModifiedBy($pValue)
    +    {
    +        $this->lastModifiedBy = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Created.
    +     *
    +     * @return int
    +     */
    +    public function getCreated()
    +    {
    +        return $this->created;
    +    }
    +
    +    /**
    +     * Set Created.
    +     *
    +     * @param int|string $time
    +     *
    +     * @return Properties
    +     */
    +    public function setCreated($time)
    +    {
    +        if ($time === null) {
    +            $time = time();
    +        } elseif (is_string($time)) {
    +            if (is_numeric($time)) {
    +                $time = (int) $time;
    +            } else {
    +                $time = strtotime($time);
    +            }
    +        }
    +
    +        $this->created = $time;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Modified.
    +     *
    +     * @return int
    +     */
    +    public function getModified()
    +    {
    +        return $this->modified;
    +    }
    +
    +    /**
    +     * Set Modified.
    +     *
    +     * @param int|string $time
    +     *
    +     * @return Properties
    +     */
    +    public function setModified($time)
    +    {
    +        if ($time === null) {
    +            $time = time();
    +        } elseif (is_string($time)) {
    +            if (is_numeric($time)) {
    +                $time = (int) $time;
    +            } else {
    +                $time = strtotime($time);
    +            }
    +        }
    +
    +        $this->modified = $time;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Title.
    +     *
    +     * @return string
    +     */
    +    public function getTitle()
    +    {
    +        return $this->title;
    +    }
    +
    +    /**
    +     * Set Title.
    +     *
    +     * @param string $title
    +     *
    +     * @return Properties
    +     */
    +    public function setTitle($title)
    +    {
    +        $this->title = $title;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Description.
    +     *
    +     * @return string
    +     */
    +    public function getDescription()
    +    {
    +        return $this->description;
    +    }
    +
    +    /**
    +     * Set Description.
    +     *
    +     * @param string $description
    +     *
    +     * @return Properties
    +     */
    +    public function setDescription($description)
    +    {
    +        $this->description = $description;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Subject.
    +     *
    +     * @return string
    +     */
    +    public function getSubject()
    +    {
    +        return $this->subject;
    +    }
    +
    +    /**
    +     * Set Subject.
    +     *
    +     * @param string $subject
    +     *
    +     * @return Properties
    +     */
    +    public function setSubject($subject)
    +    {
    +        $this->subject = $subject;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Keywords.
    +     *
    +     * @return string
    +     */
    +    public function getKeywords()
    +    {
    +        return $this->keywords;
    +    }
    +
    +    /**
    +     * Set Keywords.
    +     *
    +     * @param string $keywords
    +     *
    +     * @return Properties
    +     */
    +    public function setKeywords($keywords)
    +    {
    +        $this->keywords = $keywords;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Category.
    +     *
    +     * @return string
    +     */
    +    public function getCategory()
    +    {
    +        return $this->category;
    +    }
    +
    +    /**
    +     * Set Category.
    +     *
    +     * @param string $category
    +     *
    +     * @return Properties
    +     */
    +    public function setCategory($category)
    +    {
    +        $this->category = $category;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Company.
    +     *
    +     * @return string
    +     */
    +    public function getCompany()
    +    {
    +        return $this->company;
    +    }
    +
    +    /**
    +     * Set Company.
    +     *
    +     * @param string $company
    +     *
    +     * @return Properties
    +     */
    +    public function setCompany($company)
    +    {
    +        $this->company = $company;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Manager.
    +     *
    +     * @return string
    +     */
    +    public function getManager()
    +    {
    +        return $this->manager;
    +    }
    +
    +    /**
    +     * Set Manager.
    +     *
    +     * @param string $manager
    +     *
    +     * @return Properties
    +     */
    +    public function setManager($manager)
    +    {
    +        $this->manager = $manager;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get a List of Custom Property Names.
    +     *
    +     * @return array of string
    +     */
    +    public function getCustomProperties()
    +    {
    +        return array_keys($this->customProperties);
    +    }
    +
    +    /**
    +     * Check if a Custom Property is defined.
    +     *
    +     * @param string $propertyName
    +     *
    +     * @return bool
    +     */
    +    public function isCustomPropertySet($propertyName)
    +    {
    +        return isset($this->customProperties[$propertyName]);
    +    }
    +
    +    /**
    +     * Get a Custom Property Value.
    +     *
    +     * @param string $propertyName
    +     *
    +     * @return string
    +     */
    +    public function getCustomPropertyValue($propertyName)
    +    {
    +        if (isset($this->customProperties[$propertyName])) {
    +            return $this->customProperties[$propertyName]['value'];
    +        }
    +    }
    +
    +    /**
    +     * Get a Custom Property Type.
    +     *
    +     * @param string $propertyName
    +     *
    +     * @return string
    +     */
    +    public function getCustomPropertyType($propertyName)
    +    {
    +        if (isset($this->customProperties[$propertyName])) {
    +            return $this->customProperties[$propertyName]['type'];
    +        }
    +    }
    +
    +    /**
    +     * Set a Custom Property.
    +     *
    +     * @param string $propertyName
    +     * @param mixed $propertyValue
    +     * @param string $propertyType
    +     *      'i'    : Integer
    +     *   'f' : Floating Point
    +     *   's' : String
    +     *   'd' : Date/Time
    +     *   'b' : Boolean
    +     *
    +     * @return Properties
    +     */
    +    public function setCustomProperty($propertyName, $propertyValue = '', $propertyType = null)
    +    {
    +        if (($propertyType === null) || (!in_array($propertyType, [self::PROPERTY_TYPE_INTEGER,
    +                                                                        self::PROPERTY_TYPE_FLOAT,
    +                                                                        self::PROPERTY_TYPE_STRING,
    +                                                                        self::PROPERTY_TYPE_DATE,
    +                                                                        self::PROPERTY_TYPE_BOOLEAN, ]))) {
    +            if ($propertyValue === null) {
    +                $propertyType = self::PROPERTY_TYPE_STRING;
    +            } elseif (is_float($propertyValue)) {
    +                $propertyType = self::PROPERTY_TYPE_FLOAT;
    +            } elseif (is_int($propertyValue)) {
    +                $propertyType = self::PROPERTY_TYPE_INTEGER;
    +            } elseif (is_bool($propertyValue)) {
    +                $propertyType = self::PROPERTY_TYPE_BOOLEAN;
    +            } else {
    +                $propertyType = self::PROPERTY_TYPE_STRING;
    +            }
    +        }
    +
    +        $this->customProperties[$propertyName] = [
    +            'value' => $propertyValue,
    +            'type' => $propertyType,
    +        ];
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +
    +    public static function convertProperty($propertyValue, $propertyType)
    +    {
    +        switch ($propertyType) {
    +            case 'empty':     //    Empty
    +                return '';
    +
    +                break;
    +            case 'null':      //    Null
    +                return null;
    +
    +                break;
    +            case 'i1':        //    1-Byte Signed Integer
    +            case 'i2':        //    2-Byte Signed Integer
    +            case 'i4':        //    4-Byte Signed Integer
    +            case 'i8':        //    8-Byte Signed Integer
    +            case 'int':       //    Integer
    +                return (int) $propertyValue;
    +
    +                break;
    +            case 'ui1':       //    1-Byte Unsigned Integer
    +            case 'ui2':       //    2-Byte Unsigned Integer
    +            case 'ui4':       //    4-Byte Unsigned Integer
    +            case 'ui8':       //    8-Byte Unsigned Integer
    +            case 'uint':      //    Unsigned Integer
    +                return abs((int) $propertyValue);
    +
    +                break;
    +            case 'r4':        //    4-Byte Real Number
    +            case 'r8':        //    8-Byte Real Number
    +            case 'decimal':   //    Decimal
    +                return (float) $propertyValue;
    +
    +                break;
    +            case 'lpstr':     //    LPSTR
    +            case 'lpwstr':    //    LPWSTR
    +            case 'bstr':      //    Basic String
    +                return $propertyValue;
    +
    +                break;
    +            case 'date':      //    Date and Time
    +            case 'filetime':  //    File Time
    +                return strtotime($propertyValue);
    +
    +                break;
    +            case 'bool':     //    Boolean
    +                return $propertyValue == 'true';
    +
    +                break;
    +            case 'cy':       //    Currency
    +            case 'error':    //    Error Status Code
    +            case 'vector':   //    Vector
    +            case 'array':    //    Array
    +            case 'blob':     //    Binary Blob
    +            case 'oblob':    //    Binary Blob Object
    +            case 'stream':   //    Binary Stream
    +            case 'ostream':  //    Binary Stream Object
    +            case 'storage':  //    Binary Storage
    +            case 'ostorage': //    Binary Storage Object
    +            case 'vstream':  //    Binary Versioned Stream
    +            case 'clsid':    //    Class ID
    +            case 'cf':       //    Clipboard Data
    +                return $propertyValue;
    +
    +                break;
    +        }
    +
    +        return $propertyValue;
    +    }
    +
    +    public static function convertPropertyType($propertyType)
    +    {
    +        switch ($propertyType) {
    +            case 'i1':       //    1-Byte Signed Integer
    +            case 'i2':       //    2-Byte Signed Integer
    +            case 'i4':       //    4-Byte Signed Integer
    +            case 'i8':       //    8-Byte Signed Integer
    +            case 'int':      //    Integer
    +            case 'ui1':      //    1-Byte Unsigned Integer
    +            case 'ui2':      //    2-Byte Unsigned Integer
    +            case 'ui4':      //    4-Byte Unsigned Integer
    +            case 'ui8':      //    8-Byte Unsigned Integer
    +            case 'uint':     //    Unsigned Integer
    +                return self::PROPERTY_TYPE_INTEGER;
    +
    +                break;
    +            case 'r4':       //    4-Byte Real Number
    +            case 'r8':       //    8-Byte Real Number
    +            case 'decimal':  //    Decimal
    +                return self::PROPERTY_TYPE_FLOAT;
    +
    +                break;
    +            case 'empty':    //    Empty
    +            case 'null':     //    Null
    +            case 'lpstr':    //    LPSTR
    +            case 'lpwstr':   //    LPWSTR
    +            case 'bstr':     //    Basic String
    +                return self::PROPERTY_TYPE_STRING;
    +
    +                break;
    +            case 'date':     //    Date and Time
    +            case 'filetime': //    File Time
    +                return self::PROPERTY_TYPE_DATE;
    +
    +                break;
    +            case 'bool':     //    Boolean
    +                return self::PROPERTY_TYPE_BOOLEAN;
    +
    +                break;
    +            case 'cy':       //    Currency
    +            case 'error':    //    Error Status Code
    +            case 'vector':   //    Vector
    +            case 'array':    //    Array
    +            case 'blob':     //    Binary Blob
    +            case 'oblob':    //    Binary Blob Object
    +            case 'stream':   //    Binary Stream
    +            case 'ostream':  //    Binary Stream Object
    +            case 'storage':  //    Binary Storage
    +            case 'ostorage': //    Binary Storage Object
    +            case 'vstream':  //    Binary Versioned Stream
    +            case 'clsid':    //    Class ID
    +            case 'cf':       //    Clipboard Data
    +                return self::PROPERTY_TYPE_UNKNOWN;
    +
    +                break;
    +        }
    +
    +        return self::PROPERTY_TYPE_UNKNOWN;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Document/Security.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Document/Security.php
    new file mode 100644
    index 00000000000..1682678c2e7
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Document/Security.php
    @@ -0,0 +1,205 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Document;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\PasswordHasher;
    +
    +class Security
    +{
    +    /**
    +     * LockRevision.
    +     *
    +     * @var bool
    +     */
    +    private $lockRevision = false;
    +
    +    /**
    +     * LockStructure.
    +     *
    +     * @var bool
    +     */
    +    private $lockStructure = false;
    +
    +    /**
    +     * LockWindows.
    +     *
    +     * @var bool
    +     */
    +    private $lockWindows = false;
    +
    +    /**
    +     * RevisionsPassword.
    +     *
    +     * @var string
    +     */
    +    private $revisionsPassword = '';
    +
    +    /**
    +     * WorkbookPassword.
    +     *
    +     * @var string
    +     */
    +    private $workbookPassword = '';
    +
    +    /**
    +     * Create a new Document Security instance.
    +     */
    +    public function __construct()
    +    {
    +    }
    +
    +    /**
    +     * Is some sort of document security enabled?
    +     *
    +     * @return bool
    +     */
    +    public function isSecurityEnabled()
    +    {
    +        return  $this->lockRevision ||
    +                $this->lockStructure ||
    +                $this->lockWindows;
    +    }
    +
    +    /**
    +     * Get LockRevision.
    +     *
    +     * @return bool
    +     */
    +    public function getLockRevision()
    +    {
    +        return $this->lockRevision;
    +    }
    +
    +    /**
    +     * Set LockRevision.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Security
    +     */
    +    public function setLockRevision($pValue)
    +    {
    +        $this->lockRevision = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get LockStructure.
    +     *
    +     * @return bool
    +     */
    +    public function getLockStructure()
    +    {
    +        return $this->lockStructure;
    +    }
    +
    +    /**
    +     * Set LockStructure.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Security
    +     */
    +    public function setLockStructure($pValue)
    +    {
    +        $this->lockStructure = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get LockWindows.
    +     *
    +     * @return bool
    +     */
    +    public function getLockWindows()
    +    {
    +        return $this->lockWindows;
    +    }
    +
    +    /**
    +     * Set LockWindows.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Security
    +     */
    +    public function setLockWindows($pValue)
    +    {
    +        $this->lockWindows = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get RevisionsPassword (hashed).
    +     *
    +     * @return string
    +     */
    +    public function getRevisionsPassword()
    +    {
    +        return $this->revisionsPassword;
    +    }
    +
    +    /**
    +     * Set RevisionsPassword.
    +     *
    +     * @param string $pValue
    +     * @param bool $pAlreadyHashed If the password has already been hashed, set this to true
    +     *
    +     * @return Security
    +     */
    +    public function setRevisionsPassword($pValue, $pAlreadyHashed = false)
    +    {
    +        if (!$pAlreadyHashed) {
    +            $pValue = PasswordHasher::hashPassword($pValue);
    +        }
    +        $this->revisionsPassword = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get WorkbookPassword (hashed).
    +     *
    +     * @return string
    +     */
    +    public function getWorkbookPassword()
    +    {
    +        return $this->workbookPassword;
    +    }
    +
    +    /**
    +     * Set WorkbookPassword.
    +     *
    +     * @param string $pValue
    +     * @param bool $pAlreadyHashed If the password has already been hashed, set this to true
    +     *
    +     * @return Security
    +     */
    +    public function setWorkbookPassword($pValue, $pAlreadyHashed = false)
    +    {
    +        if (!$pAlreadyHashed) {
    +            $pValue = PasswordHasher::hashPassword($pValue);
    +        }
    +        $this->workbookPassword = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Exception.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Exception.php
    new file mode 100644
    index 00000000000..9c5ab30ee05
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Exception.php
    @@ -0,0 +1,7 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet;
    +
    +class Exception extends \Exception
    +{
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/HashTable.php b/htdocs/includes/phpoffice/PhpSpreadsheet/HashTable.php
    new file mode 100644
    index 00000000000..4e8f0a5c912
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/HashTable.php
    @@ -0,0 +1,179 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet;
    +
    +class HashTable
    +{
    +    /**
    +     * HashTable elements.
    +     *
    +     * @var IComparable[]
    +     */
    +    protected $items = [];
    +
    +    /**
    +     * HashTable key map.
    +     *
    +     * @var string[]
    +     */
    +    protected $keyMap = [];
    +
    +    /**
    +     * Create a new \PhpOffice\PhpSpreadsheet\HashTable.
    +     *
    +     * @param IComparable[] $pSource Optional source array to create HashTable from
    +     *
    +     * @throws Exception
    +     */
    +    public function __construct($pSource = null)
    +    {
    +        if ($pSource !== null) {
    +            // Create HashTable
    +            $this->addFromSource($pSource);
    +        }
    +    }
    +
    +    /**
    +     * Add HashTable items from source.
    +     *
    +     * @param IComparable[] $pSource Source array to create HashTable from
    +     *
    +     * @throws Exception
    +     */
    +    public function addFromSource(array $pSource = null)
    +    {
    +        // Check if an array was passed
    +        if ($pSource == null) {
    +            return;
    +        }
    +
    +        foreach ($pSource as $item) {
    +            $this->add($item);
    +        }
    +    }
    +
    +    /**
    +     * Add HashTable item.
    +     *
    +     * @param IComparable $pSource Item to add
    +     */
    +    public function add(IComparable $pSource)
    +    {
    +        $hash = $pSource->getHashCode();
    +        if (!isset($this->items[$hash])) {
    +            $this->items[$hash] = $pSource;
    +            $this->keyMap[count($this->items) - 1] = $hash;
    +        }
    +    }
    +
    +    /**
    +     * Remove HashTable item.
    +     *
    +     * @param IComparable $pSource Item to remove
    +     */
    +    public function remove(IComparable $pSource)
    +    {
    +        $hash = $pSource->getHashCode();
    +        if (isset($this->items[$hash])) {
    +            unset($this->items[$hash]);
    +
    +            $deleteKey = -1;
    +            foreach ($this->keyMap as $key => $value) {
    +                if ($deleteKey >= 0) {
    +                    $this->keyMap[$key - 1] = $value;
    +                }
    +
    +                if ($value == $hash) {
    +                    $deleteKey = $key;
    +                }
    +            }
    +            unset($this->keyMap[count($this->keyMap) - 1]);
    +        }
    +    }
    +
    +    /**
    +     * Clear HashTable.
    +     */
    +    public function clear()
    +    {
    +        $this->items = [];
    +        $this->keyMap = [];
    +    }
    +
    +    /**
    +     * Count.
    +     *
    +     * @return int
    +     */
    +    public function count()
    +    {
    +        return count($this->items);
    +    }
    +
    +    /**
    +     * Get index for hash code.
    +     *
    +     * @param string $pHashCode
    +     *
    +     * @return int Index
    +     */
    +    public function getIndexForHashCode($pHashCode)
    +    {
    +        return array_search($pHashCode, $this->keyMap);
    +    }
    +
    +    /**
    +     * Get by index.
    +     *
    +     * @param int $pIndex
    +     *
    +     * @return IComparable
    +     */
    +    public function getByIndex($pIndex)
    +    {
    +        if (isset($this->keyMap[$pIndex])) {
    +            return $this->getByHashCode($this->keyMap[$pIndex]);
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Get by hashcode.
    +     *
    +     * @param string $pHashCode
    +     *
    +     * @return IComparable
    +     */
    +    public function getByHashCode($pHashCode)
    +    {
    +        if (isset($this->items[$pHashCode])) {
    +            return $this->items[$pHashCode];
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * HashTable to array.
    +     *
    +     * @return IComparable[]
    +     */
    +    public function toArray()
    +    {
    +        return $this->items;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Helper/Html.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Helper/Html.php
    new file mode 100644
    index 00000000000..eaf73028fa7
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Helper/Html.php
    @@ -0,0 +1,841 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Helper;
    +
    +use DOMDocument;
    +use DOMElement;
    +use DOMNode;
    +use DOMText;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Style\Color;
    +use PhpOffice\PhpSpreadsheet\Style\Font;
    +
    +class Html
    +{
    +    protected static $colourMap = [
    +        'aliceblue' => 'f0f8ff',
    +        'antiquewhite' => 'faebd7',
    +        'antiquewhite1' => 'ffefdb',
    +        'antiquewhite2' => 'eedfcc',
    +        'antiquewhite3' => 'cdc0b0',
    +        'antiquewhite4' => '8b8378',
    +        'aqua' => '00ffff',
    +        'aquamarine1' => '7fffd4',
    +        'aquamarine2' => '76eec6',
    +        'aquamarine4' => '458b74',
    +        'azure1' => 'f0ffff',
    +        'azure2' => 'e0eeee',
    +        'azure3' => 'c1cdcd',
    +        'azure4' => '838b8b',
    +        'beige' => 'f5f5dc',
    +        'bisque1' => 'ffe4c4',
    +        'bisque2' => 'eed5b7',
    +        'bisque3' => 'cdb79e',
    +        'bisque4' => '8b7d6b',
    +        'black' => '000000',
    +        'blanchedalmond' => 'ffebcd',
    +        'blue' => '0000ff',
    +        'blue1' => '0000ff',
    +        'blue2' => '0000ee',
    +        'blue4' => '00008b',
    +        'blueviolet' => '8a2be2',
    +        'brown' => 'a52a2a',
    +        'brown1' => 'ff4040',
    +        'brown2' => 'ee3b3b',
    +        'brown3' => 'cd3333',
    +        'brown4' => '8b2323',
    +        'burlywood' => 'deb887',
    +        'burlywood1' => 'ffd39b',
    +        'burlywood2' => 'eec591',
    +        'burlywood3' => 'cdaa7d',
    +        'burlywood4' => '8b7355',
    +        'cadetblue' => '5f9ea0',
    +        'cadetblue1' => '98f5ff',
    +        'cadetblue2' => '8ee5ee',
    +        'cadetblue3' => '7ac5cd',
    +        'cadetblue4' => '53868b',
    +        'chartreuse1' => '7fff00',
    +        'chartreuse2' => '76ee00',
    +        'chartreuse3' => '66cd00',
    +        'chartreuse4' => '458b00',
    +        'chocolate' => 'd2691e',
    +        'chocolate1' => 'ff7f24',
    +        'chocolate2' => 'ee7621',
    +        'chocolate3' => 'cd661d',
    +        'coral' => 'ff7f50',
    +        'coral1' => 'ff7256',
    +        'coral2' => 'ee6a50',
    +        'coral3' => 'cd5b45',
    +        'coral4' => '8b3e2f',
    +        'cornflowerblue' => '6495ed',
    +        'cornsilk1' => 'fff8dc',
    +        'cornsilk2' => 'eee8cd',
    +        'cornsilk3' => 'cdc8b1',
    +        'cornsilk4' => '8b8878',
    +        'cyan1' => '00ffff',
    +        'cyan2' => '00eeee',
    +        'cyan3' => '00cdcd',
    +        'cyan4' => '008b8b',
    +        'darkgoldenrod' => 'b8860b',
    +        'darkgoldenrod1' => 'ffb90f',
    +        'darkgoldenrod2' => 'eead0e',
    +        'darkgoldenrod3' => 'cd950c',
    +        'darkgoldenrod4' => '8b6508',
    +        'darkgreen' => '006400',
    +        'darkkhaki' => 'bdb76b',
    +        'darkolivegreen' => '556b2f',
    +        'darkolivegreen1' => 'caff70',
    +        'darkolivegreen2' => 'bcee68',
    +        'darkolivegreen3' => 'a2cd5a',
    +        'darkolivegreen4' => '6e8b3d',
    +        'darkorange' => 'ff8c00',
    +        'darkorange1' => 'ff7f00',
    +        'darkorange2' => 'ee7600',
    +        'darkorange3' => 'cd6600',
    +        'darkorange4' => '8b4500',
    +        'darkorchid' => '9932cc',
    +        'darkorchid1' => 'bf3eff',
    +        'darkorchid2' => 'b23aee',
    +        'darkorchid3' => '9a32cd',
    +        'darkorchid4' => '68228b',
    +        'darksalmon' => 'e9967a',
    +        'darkseagreen' => '8fbc8f',
    +        'darkseagreen1' => 'c1ffc1',
    +        'darkseagreen2' => 'b4eeb4',
    +        'darkseagreen3' => '9bcd9b',
    +        'darkseagreen4' => '698b69',
    +        'darkslateblue' => '483d8b',
    +        'darkslategray' => '2f4f4f',
    +        'darkslategray1' => '97ffff',
    +        'darkslategray2' => '8deeee',
    +        'darkslategray3' => '79cdcd',
    +        'darkslategray4' => '528b8b',
    +        'darkturquoise' => '00ced1',
    +        'darkviolet' => '9400d3',
    +        'deeppink1' => 'ff1493',
    +        'deeppink2' => 'ee1289',
    +        'deeppink3' => 'cd1076',
    +        'deeppink4' => '8b0a50',
    +        'deepskyblue1' => '00bfff',
    +        'deepskyblue2' => '00b2ee',
    +        'deepskyblue3' => '009acd',
    +        'deepskyblue4' => '00688b',
    +        'dimgray' => '696969',
    +        'dodgerblue1' => '1e90ff',
    +        'dodgerblue2' => '1c86ee',
    +        'dodgerblue3' => '1874cd',
    +        'dodgerblue4' => '104e8b',
    +        'firebrick' => 'b22222',
    +        'firebrick1' => 'ff3030',
    +        'firebrick2' => 'ee2c2c',
    +        'firebrick3' => 'cd2626',
    +        'firebrick4' => '8b1a1a',
    +        'floralwhite' => 'fffaf0',
    +        'forestgreen' => '228b22',
    +        'fuchsia' => 'ff00ff',
    +        'gainsboro' => 'dcdcdc',
    +        'ghostwhite' => 'f8f8ff',
    +        'gold1' => 'ffd700',
    +        'gold2' => 'eec900',
    +        'gold3' => 'cdad00',
    +        'gold4' => '8b7500',
    +        'goldenrod' => 'daa520',
    +        'goldenrod1' => 'ffc125',
    +        'goldenrod2' => 'eeb422',
    +        'goldenrod3' => 'cd9b1d',
    +        'goldenrod4' => '8b6914',
    +        'gray' => 'bebebe',
    +        'gray1' => '030303',
    +        'gray10' => '1a1a1a',
    +        'gray11' => '1c1c1c',
    +        'gray12' => '1f1f1f',
    +        'gray13' => '212121',
    +        'gray14' => '242424',
    +        'gray15' => '262626',
    +        'gray16' => '292929',
    +        'gray17' => '2b2b2b',
    +        'gray18' => '2e2e2e',
    +        'gray19' => '303030',
    +        'gray2' => '050505',
    +        'gray20' => '333333',
    +        'gray21' => '363636',
    +        'gray22' => '383838',
    +        'gray23' => '3b3b3b',
    +        'gray24' => '3d3d3d',
    +        'gray25' => '404040',
    +        'gray26' => '424242',
    +        'gray27' => '454545',
    +        'gray28' => '474747',
    +        'gray29' => '4a4a4a',
    +        'gray3' => '080808',
    +        'gray30' => '4d4d4d',
    +        'gray31' => '4f4f4f',
    +        'gray32' => '525252',
    +        'gray33' => '545454',
    +        'gray34' => '575757',
    +        'gray35' => '595959',
    +        'gray36' => '5c5c5c',
    +        'gray37' => '5e5e5e',
    +        'gray38' => '616161',
    +        'gray39' => '636363',
    +        'gray4' => '0a0a0a',
    +        'gray40' => '666666',
    +        'gray41' => '696969',
    +        'gray42' => '6b6b6b',
    +        'gray43' => '6e6e6e',
    +        'gray44' => '707070',
    +        'gray45' => '737373',
    +        'gray46' => '757575',
    +        'gray47' => '787878',
    +        'gray48' => '7a7a7a',
    +        'gray49' => '7d7d7d',
    +        'gray5' => '0d0d0d',
    +        'gray50' => '7f7f7f',
    +        'gray51' => '828282',
    +        'gray52' => '858585',
    +        'gray53' => '878787',
    +        'gray54' => '8a8a8a',
    +        'gray55' => '8c8c8c',
    +        'gray56' => '8f8f8f',
    +        'gray57' => '919191',
    +        'gray58' => '949494',
    +        'gray59' => '969696',
    +        'gray6' => '0f0f0f',
    +        'gray60' => '999999',
    +        'gray61' => '9c9c9c',
    +        'gray62' => '9e9e9e',
    +        'gray63' => 'a1a1a1',
    +        'gray64' => 'a3a3a3',
    +        'gray65' => 'a6a6a6',
    +        'gray66' => 'a8a8a8',
    +        'gray67' => 'ababab',
    +        'gray68' => 'adadad',
    +        'gray69' => 'b0b0b0',
    +        'gray7' => '121212',
    +        'gray70' => 'b3b3b3',
    +        'gray71' => 'b5b5b5',
    +        'gray72' => 'b8b8b8',
    +        'gray73' => 'bababa',
    +        'gray74' => 'bdbdbd',
    +        'gray75' => 'bfbfbf',
    +        'gray76' => 'c2c2c2',
    +        'gray77' => 'c4c4c4',
    +        'gray78' => 'c7c7c7',
    +        'gray79' => 'c9c9c9',
    +        'gray8' => '141414',
    +        'gray80' => 'cccccc',
    +        'gray81' => 'cfcfcf',
    +        'gray82' => 'd1d1d1',
    +        'gray83' => 'd4d4d4',
    +        'gray84' => 'd6d6d6',
    +        'gray85' => 'd9d9d9',
    +        'gray86' => 'dbdbdb',
    +        'gray87' => 'dedede',
    +        'gray88' => 'e0e0e0',
    +        'gray89' => 'e3e3e3',
    +        'gray9' => '171717',
    +        'gray90' => 'e5e5e5',
    +        'gray91' => 'e8e8e8',
    +        'gray92' => 'ebebeb',
    +        'gray93' => 'ededed',
    +        'gray94' => 'f0f0f0',
    +        'gray95' => 'f2f2f2',
    +        'gray97' => 'f7f7f7',
    +        'gray98' => 'fafafa',
    +        'gray99' => 'fcfcfc',
    +        'green' => '00ff00',
    +        'green1' => '00ff00',
    +        'green2' => '00ee00',
    +        'green3' => '00cd00',
    +        'green4' => '008b00',
    +        'greenyellow' => 'adff2f',
    +        'honeydew1' => 'f0fff0',
    +        'honeydew2' => 'e0eee0',
    +        'honeydew3' => 'c1cdc1',
    +        'honeydew4' => '838b83',
    +        'hotpink' => 'ff69b4',
    +        'hotpink1' => 'ff6eb4',
    +        'hotpink2' => 'ee6aa7',
    +        'hotpink3' => 'cd6090',
    +        'hotpink4' => '8b3a62',
    +        'indianred' => 'cd5c5c',
    +        'indianred1' => 'ff6a6a',
    +        'indianred2' => 'ee6363',
    +        'indianred3' => 'cd5555',
    +        'indianred4' => '8b3a3a',
    +        'ivory1' => 'fffff0',
    +        'ivory2' => 'eeeee0',
    +        'ivory3' => 'cdcdc1',
    +        'ivory4' => '8b8b83',
    +        'khaki' => 'f0e68c',
    +        'khaki1' => 'fff68f',
    +        'khaki2' => 'eee685',
    +        'khaki3' => 'cdc673',
    +        'khaki4' => '8b864e',
    +        'lavender' => 'e6e6fa',
    +        'lavenderblush1' => 'fff0f5',
    +        'lavenderblush2' => 'eee0e5',
    +        'lavenderblush3' => 'cdc1c5',
    +        'lavenderblush4' => '8b8386',
    +        'lawngreen' => '7cfc00',
    +        'lemonchiffon1' => 'fffacd',
    +        'lemonchiffon2' => 'eee9bf',
    +        'lemonchiffon3' => 'cdc9a5',
    +        'lemonchiffon4' => '8b8970',
    +        'light' => 'eedd82',
    +        'lightblue' => 'add8e6',
    +        'lightblue1' => 'bfefff',
    +        'lightblue2' => 'b2dfee',
    +        'lightblue3' => '9ac0cd',
    +        'lightblue4' => '68838b',
    +        'lightcoral' => 'f08080',
    +        'lightcyan1' => 'e0ffff',
    +        'lightcyan2' => 'd1eeee',
    +        'lightcyan3' => 'b4cdcd',
    +        'lightcyan4' => '7a8b8b',
    +        'lightgoldenrod1' => 'ffec8b',
    +        'lightgoldenrod2' => 'eedc82',
    +        'lightgoldenrod3' => 'cdbe70',
    +        'lightgoldenrod4' => '8b814c',
    +        'lightgoldenrodyellow' => 'fafad2',
    +        'lightgray' => 'd3d3d3',
    +        'lightpink' => 'ffb6c1',
    +        'lightpink1' => 'ffaeb9',
    +        'lightpink2' => 'eea2ad',
    +        'lightpink3' => 'cd8c95',
    +        'lightpink4' => '8b5f65',
    +        'lightsalmon1' => 'ffa07a',
    +        'lightsalmon2' => 'ee9572',
    +        'lightsalmon3' => 'cd8162',
    +        'lightsalmon4' => '8b5742',
    +        'lightseagreen' => '20b2aa',
    +        'lightskyblue' => '87cefa',
    +        'lightskyblue1' => 'b0e2ff',
    +        'lightskyblue2' => 'a4d3ee',
    +        'lightskyblue3' => '8db6cd',
    +        'lightskyblue4' => '607b8b',
    +        'lightslateblue' => '8470ff',
    +        'lightslategray' => '778899',
    +        'lightsteelblue' => 'b0c4de',
    +        'lightsteelblue1' => 'cae1ff',
    +        'lightsteelblue2' => 'bcd2ee',
    +        'lightsteelblue3' => 'a2b5cd',
    +        'lightsteelblue4' => '6e7b8b',
    +        'lightyellow1' => 'ffffe0',
    +        'lightyellow2' => 'eeeed1',
    +        'lightyellow3' => 'cdcdb4',
    +        'lightyellow4' => '8b8b7a',
    +        'lime' => '00ff00',
    +        'limegreen' => '32cd32',
    +        'linen' => 'faf0e6',
    +        'magenta' => 'ff00ff',
    +        'magenta2' => 'ee00ee',
    +        'magenta3' => 'cd00cd',
    +        'magenta4' => '8b008b',
    +        'maroon' => 'b03060',
    +        'maroon1' => 'ff34b3',
    +        'maroon2' => 'ee30a7',
    +        'maroon3' => 'cd2990',
    +        'maroon4' => '8b1c62',
    +        'medium' => '66cdaa',
    +        'mediumaquamarine' => '66cdaa',
    +        'mediumblue' => '0000cd',
    +        'mediumorchid' => 'ba55d3',
    +        'mediumorchid1' => 'e066ff',
    +        'mediumorchid2' => 'd15fee',
    +        'mediumorchid3' => 'b452cd',
    +        'mediumorchid4' => '7a378b',
    +        'mediumpurple' => '9370db',
    +        'mediumpurple1' => 'ab82ff',
    +        'mediumpurple2' => '9f79ee',
    +        'mediumpurple3' => '8968cd',
    +        'mediumpurple4' => '5d478b',
    +        'mediumseagreen' => '3cb371',
    +        'mediumslateblue' => '7b68ee',
    +        'mediumspringgreen' => '00fa9a',
    +        'mediumturquoise' => '48d1cc',
    +        'mediumvioletred' => 'c71585',
    +        'midnightblue' => '191970',
    +        'mintcream' => 'f5fffa',
    +        'mistyrose1' => 'ffe4e1',
    +        'mistyrose2' => 'eed5d2',
    +        'mistyrose3' => 'cdb7b5',
    +        'mistyrose4' => '8b7d7b',
    +        'moccasin' => 'ffe4b5',
    +        'navajowhite1' => 'ffdead',
    +        'navajowhite2' => 'eecfa1',
    +        'navajowhite3' => 'cdb38b',
    +        'navajowhite4' => '8b795e',
    +        'navy' => '000080',
    +        'navyblue' => '000080',
    +        'oldlace' => 'fdf5e6',
    +        'olive' => '808000',
    +        'olivedrab' => '6b8e23',
    +        'olivedrab1' => 'c0ff3e',
    +        'olivedrab2' => 'b3ee3a',
    +        'olivedrab4' => '698b22',
    +        'orange' => 'ffa500',
    +        'orange1' => 'ffa500',
    +        'orange2' => 'ee9a00',
    +        'orange3' => 'cd8500',
    +        'orange4' => '8b5a00',
    +        'orangered1' => 'ff4500',
    +        'orangered2' => 'ee4000',
    +        'orangered3' => 'cd3700',
    +        'orangered4' => '8b2500',
    +        'orchid' => 'da70d6',
    +        'orchid1' => 'ff83fa',
    +        'orchid2' => 'ee7ae9',
    +        'orchid3' => 'cd69c9',
    +        'orchid4' => '8b4789',
    +        'pale' => 'db7093',
    +        'palegoldenrod' => 'eee8aa',
    +        'palegreen' => '98fb98',
    +        'palegreen1' => '9aff9a',
    +        'palegreen2' => '90ee90',
    +        'palegreen3' => '7ccd7c',
    +        'palegreen4' => '548b54',
    +        'paleturquoise' => 'afeeee',
    +        'paleturquoise1' => 'bbffff',
    +        'paleturquoise2' => 'aeeeee',
    +        'paleturquoise3' => '96cdcd',
    +        'paleturquoise4' => '668b8b',
    +        'palevioletred' => 'db7093',
    +        'palevioletred1' => 'ff82ab',
    +        'palevioletred2' => 'ee799f',
    +        'palevioletred3' => 'cd6889',
    +        'palevioletred4' => '8b475d',
    +        'papayawhip' => 'ffefd5',
    +        'peachpuff1' => 'ffdab9',
    +        'peachpuff2' => 'eecbad',
    +        'peachpuff3' => 'cdaf95',
    +        'peachpuff4' => '8b7765',
    +        'pink' => 'ffc0cb',
    +        'pink1' => 'ffb5c5',
    +        'pink2' => 'eea9b8',
    +        'pink3' => 'cd919e',
    +        'pink4' => '8b636c',
    +        'plum' => 'dda0dd',
    +        'plum1' => 'ffbbff',
    +        'plum2' => 'eeaeee',
    +        'plum3' => 'cd96cd',
    +        'plum4' => '8b668b',
    +        'powderblue' => 'b0e0e6',
    +        'purple' => 'a020f0',
    +        'rebeccapurple' => '663399',
    +        'purple1' => '9b30ff',
    +        'purple2' => '912cee',
    +        'purple3' => '7d26cd',
    +        'purple4' => '551a8b',
    +        'red' => 'ff0000',
    +        'red1' => 'ff0000',
    +        'red2' => 'ee0000',
    +        'red3' => 'cd0000',
    +        'red4' => '8b0000',
    +        'rosybrown' => 'bc8f8f',
    +        'rosybrown1' => 'ffc1c1',
    +        'rosybrown2' => 'eeb4b4',
    +        'rosybrown3' => 'cd9b9b',
    +        'rosybrown4' => '8b6969',
    +        'royalblue' => '4169e1',
    +        'royalblue1' => '4876ff',
    +        'royalblue2' => '436eee',
    +        'royalblue3' => '3a5fcd',
    +        'royalblue4' => '27408b',
    +        'saddlebrown' => '8b4513',
    +        'salmon' => 'fa8072',
    +        'salmon1' => 'ff8c69',
    +        'salmon2' => 'ee8262',
    +        'salmon3' => 'cd7054',
    +        'salmon4' => '8b4c39',
    +        'sandybrown' => 'f4a460',
    +        'seagreen1' => '54ff9f',
    +        'seagreen2' => '4eee94',
    +        'seagreen3' => '43cd80',
    +        'seagreen4' => '2e8b57',
    +        'seashell1' => 'fff5ee',
    +        'seashell2' => 'eee5de',
    +        'seashell3' => 'cdc5bf',
    +        'seashell4' => '8b8682',
    +        'sienna' => 'a0522d',
    +        'sienna1' => 'ff8247',
    +        'sienna2' => 'ee7942',
    +        'sienna3' => 'cd6839',
    +        'sienna4' => '8b4726',
    +        'silver' => 'c0c0c0',
    +        'skyblue' => '87ceeb',
    +        'skyblue1' => '87ceff',
    +        'skyblue2' => '7ec0ee',
    +        'skyblue3' => '6ca6cd',
    +        'skyblue4' => '4a708b',
    +        'slateblue' => '6a5acd',
    +        'slateblue1' => '836fff',
    +        'slateblue2' => '7a67ee',
    +        'slateblue3' => '6959cd',
    +        'slateblue4' => '473c8b',
    +        'slategray' => '708090',
    +        'slategray1' => 'c6e2ff',
    +        'slategray2' => 'b9d3ee',
    +        'slategray3' => '9fb6cd',
    +        'slategray4' => '6c7b8b',
    +        'snow1' => 'fffafa',
    +        'snow2' => 'eee9e9',
    +        'snow3' => 'cdc9c9',
    +        'snow4' => '8b8989',
    +        'springgreen1' => '00ff7f',
    +        'springgreen2' => '00ee76',
    +        'springgreen3' => '00cd66',
    +        'springgreen4' => '008b45',
    +        'steelblue' => '4682b4',
    +        'steelblue1' => '63b8ff',
    +        'steelblue2' => '5cacee',
    +        'steelblue3' => '4f94cd',
    +        'steelblue4' => '36648b',
    +        'tan' => 'd2b48c',
    +        'tan1' => 'ffa54f',
    +        'tan2' => 'ee9a49',
    +        'tan3' => 'cd853f',
    +        'tan4' => '8b5a2b',
    +        'teal' => '008080',
    +        'thistle' => 'd8bfd8',
    +        'thistle1' => 'ffe1ff',
    +        'thistle2' => 'eed2ee',
    +        'thistle3' => 'cdb5cd',
    +        'thistle4' => '8b7b8b',
    +        'tomato1' => 'ff6347',
    +        'tomato2' => 'ee5c42',
    +        'tomato3' => 'cd4f39',
    +        'tomato4' => '8b3626',
    +        'turquoise' => '40e0d0',
    +        'turquoise1' => '00f5ff',
    +        'turquoise2' => '00e5ee',
    +        'turquoise3' => '00c5cd',
    +        'turquoise4' => '00868b',
    +        'violet' => 'ee82ee',
    +        'violetred' => 'd02090',
    +        'violetred1' => 'ff3e96',
    +        'violetred2' => 'ee3a8c',
    +        'violetred3' => 'cd3278',
    +        'violetred4' => '8b2252',
    +        'wheat' => 'f5deb3',
    +        'wheat1' => 'ffe7ba',
    +        'wheat2' => 'eed8ae',
    +        'wheat3' => 'cdba96',
    +        'wheat4' => '8b7e66',
    +        'white' => 'ffffff',
    +        'whitesmoke' => 'f5f5f5',
    +        'yellow' => 'ffff00',
    +        'yellow1' => 'ffff00',
    +        'yellow2' => 'eeee00',
    +        'yellow3' => 'cdcd00',
    +        'yellow4' => '8b8b00',
    +        'yellowgreen' => '9acd32',
    +    ];
    +
    +    protected $face;
    +
    +    protected $size;
    +
    +    protected $color;
    +
    +    protected $bold = false;
    +
    +    protected $italic = false;
    +
    +    protected $underline = false;
    +
    +    protected $superscript = false;
    +
    +    protected $subscript = false;
    +
    +    protected $strikethrough = false;
    +
    +    protected $startTagCallbacks = [
    +        'font' => 'startFontTag',
    +        'b' => 'startBoldTag',
    +        'strong' => 'startBoldTag',
    +        'i' => 'startItalicTag',
    +        'em' => 'startItalicTag',
    +        'u' => 'startUnderlineTag',
    +        'ins' => 'startUnderlineTag',
    +        'del' => 'startStrikethruTag',
    +        'sup' => 'startSuperscriptTag',
    +        'sub' => 'startSubscriptTag',
    +    ];
    +
    +    protected $endTagCallbacks = [
    +        'font' => 'endFontTag',
    +        'b' => 'endBoldTag',
    +        'strong' => 'endBoldTag',
    +        'i' => 'endItalicTag',
    +        'em' => 'endItalicTag',
    +        'u' => 'endUnderlineTag',
    +        'ins' => 'endUnderlineTag',
    +        'del' => 'endStrikethruTag',
    +        'sup' => 'endSuperscriptTag',
    +        'sub' => 'endSubscriptTag',
    +        'br' => 'breakTag',
    +        'p' => 'breakTag',
    +        'h1' => 'breakTag',
    +        'h2' => 'breakTag',
    +        'h3' => 'breakTag',
    +        'h4' => 'breakTag',
    +        'h5' => 'breakTag',
    +        'h6' => 'breakTag',
    +    ];
    +
    +    protected $stack = [];
    +
    +    protected $stringData = '';
    +
    +    /**
    +     * @var RichText
    +     */
    +    protected $richTextObject;
    +
    +    protected function initialise()
    +    {
    +        $this->face = $this->size = $this->color = null;
    +        $this->bold = $this->italic = $this->underline = $this->superscript = $this->subscript = $this->strikethrough = false;
    +
    +        $this->stack = [];
    +
    +        $this->stringData = '';
    +    }
    +
    +    /**
    +     * Parse HTML formatting and return the resulting RichText.
    +     *
    +     * @param string $html
    +     *
    +     * @return RichText
    +     */
    +    public function toRichTextObject($html)
    +    {
    +        $this->initialise();
    +
    +        //    Create a new DOM object
    +        $dom = new DOMDocument();
    +        //    Load the HTML file into the DOM object
    +        //  Note the use of error suppression, because typically this will be an html fragment, so not fully valid markup
    +        $prefix = '<?xml encoding="UTF-8">';
    +        @$dom->loadHTML($prefix . $html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
    +        //    Discard excess white space
    +        $dom->preserveWhiteSpace = false;
    +
    +        $this->richTextObject = new RichText();
    +        $this->parseElements($dom);
    +
    +        // Clean any further spurious whitespace
    +        $this->cleanWhitespace();
    +
    +        return $this->richTextObject;
    +    }
    +
    +    protected function cleanWhitespace()
    +    {
    +        foreach ($this->richTextObject->getRichTextElements() as $key => $element) {
    +            $text = $element->getText();
    +            // Trim any leading spaces on the first run
    +            if ($key == 0) {
    +                $text = ltrim($text);
    +            }
    +            // Trim any spaces immediately after a line break
    +            $text = preg_replace('/\n */mu', "\n", $text);
    +            $element->setText($text);
    +        }
    +    }
    +
    +    protected function buildTextRun()
    +    {
    +        $text = $this->stringData;
    +        if (trim($text) === '') {
    +            return;
    +        }
    +
    +        $richtextRun = $this->richTextObject->createTextRun($this->stringData);
    +        if ($this->face) {
    +            $richtextRun->getFont()->setName($this->face);
    +        }
    +        if ($this->size) {
    +            $richtextRun->getFont()->setSize($this->size);
    +        }
    +        if ($this->color) {
    +            $richtextRun->getFont()->setColor(new Color('ff' . $this->color));
    +        }
    +        if ($this->bold) {
    +            $richtextRun->getFont()->setBold(true);
    +        }
    +        if ($this->italic) {
    +            $richtextRun->getFont()->setItalic(true);
    +        }
    +        if ($this->underline) {
    +            $richtextRun->getFont()->setUnderline(Font::UNDERLINE_SINGLE);
    +        }
    +        if ($this->superscript) {
    +            $richtextRun->getFont()->setSuperscript(true);
    +        }
    +        if ($this->subscript) {
    +            $richtextRun->getFont()->setSubscript(true);
    +        }
    +        if ($this->strikethrough) {
    +            $richtextRun->getFont()->setStrikethrough(true);
    +        }
    +        $this->stringData = '';
    +    }
    +
    +    protected function rgbToColour($rgb)
    +    {
    +        preg_match_all('/\d+/', $rgb, $values);
    +        foreach ($values[0] as &$value) {
    +            $value = str_pad(dechex($value), 2, '0', STR_PAD_LEFT);
    +        }
    +
    +        return implode($values[0]);
    +    }
    +
    +    protected function colourNameLookup($rgb)
    +    {
    +        return self::$colourMap[$rgb];
    +    }
    +
    +    protected function startFontTag($tag)
    +    {
    +        foreach ($tag->attributes as $attribute) {
    +            $attributeName = strtolower($attribute->name);
    +            $attributeValue = $attribute->value;
    +
    +            if ($attributeName == 'color') {
    +                if (preg_match('/rgb\s*\(/', $attributeValue)) {
    +                    $this->$attributeName = $this->rgbToColour($attributeValue);
    +                } elseif (strpos(trim($attributeValue), '#') === 0) {
    +                    $this->$attributeName = ltrim($attributeValue, '#');
    +                } else {
    +                    $this->$attributeName = $this->colourNameLookup($attributeValue);
    +                }
    +            } else {
    +                $this->$attributeName = $attributeValue;
    +            }
    +        }
    +    }
    +
    +    protected function endFontTag()
    +    {
    +        $this->face = $this->size = $this->color = null;
    +    }
    +
    +    protected function startBoldTag()
    +    {
    +        $this->bold = true;
    +    }
    +
    +    protected function endBoldTag()
    +    {
    +        $this->bold = false;
    +    }
    +
    +    protected function startItalicTag()
    +    {
    +        $this->italic = true;
    +    }
    +
    +    protected function endItalicTag()
    +    {
    +        $this->italic = false;
    +    }
    +
    +    protected function startUnderlineTag()
    +    {
    +        $this->underline = true;
    +    }
    +
    +    protected function endUnderlineTag()
    +    {
    +        $this->underline = false;
    +    }
    +
    +    protected function startSubscriptTag()
    +    {
    +        $this->subscript = true;
    +    }
    +
    +    protected function endSubscriptTag()
    +    {
    +        $this->subscript = false;
    +    }
    +
    +    protected function startSuperscriptTag()
    +    {
    +        $this->superscript = true;
    +    }
    +
    +    protected function endSuperscriptTag()
    +    {
    +        $this->superscript = false;
    +    }
    +
    +    protected function startStrikethruTag()
    +    {
    +        $this->strikethrough = true;
    +    }
    +
    +    protected function endStrikethruTag()
    +    {
    +        $this->strikethrough = false;
    +    }
    +
    +    protected function breakTag()
    +    {
    +        $this->stringData .= "\n";
    +    }
    +
    +    protected function parseTextNode(DOMText $textNode)
    +    {
    +        $domText = preg_replace(
    +            '/\s+/u',
    +            ' ',
    +            str_replace(["\r", "\n"], ' ', $textNode->nodeValue)
    +        );
    +        $this->stringData .= $domText;
    +        $this->buildTextRun();
    +    }
    +
    +    /**
    +     * @param DOMElement $element
    +     * @param string $callbackTag
    +     * @param array $callbacks
    +     */
    +    protected function handleCallback(DOMElement $element, $callbackTag, array $callbacks)
    +    {
    +        if (isset($callbacks[$callbackTag])) {
    +            $elementHandler = $callbacks[$callbackTag];
    +            if (method_exists($this, $elementHandler)) {
    +                call_user_func([$this, $elementHandler], $element);
    +            }
    +        }
    +    }
    +
    +    protected function parseElementNode(DOMElement $element)
    +    {
    +        $callbackTag = strtolower($element->nodeName);
    +        $this->stack[] = $callbackTag;
    +
    +        $this->handleCallback($element, $callbackTag, $this->startTagCallbacks);
    +
    +        $this->parseElements($element);
    +        array_pop($this->stack);
    +
    +        $this->handleCallback($element, $callbackTag, $this->endTagCallbacks);
    +    }
    +
    +    protected function parseElements(DOMNode $element)
    +    {
    +        foreach ($element->childNodes as $child) {
    +            if ($child instanceof DOMText) {
    +                $this->parseTextNode($child);
    +            } elseif ($child instanceof DOMElement) {
    +                $this->parseElementNode($child);
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Helper/Migrator.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Helper/Migrator.php
    new file mode 100644
    index 00000000000..26d5fcead87
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Helper/Migrator.php
    @@ -0,0 +1,333 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Helper;
    +
    +class Migrator
    +{
    +    /**
    +     * @var string[]
    +     */
    +    private $from;
    +
    +    /**
    +     * @var string[]
    +     */
    +    private $to;
    +
    +    public function __construct()
    +    {
    +        $this->from = array_keys($this->getMapping());
    +        $this->to = array_values($this->getMapping());
    +    }
    +
    +    /**
    +     * Return the ordered mapping from old PHPExcel class names to new PhpSpreadsheet one.
    +     *
    +     * @return string[]
    +     */
    +    public function getMapping()
    +    {
    +        // Order matters here, we should have the deepest namespaces first (the most "unique" strings)
    +        $classes = [
    +            'PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip' => \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip::class,
    +            'PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer' => \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer::class,
    +            'PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE' => \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::class,
    +            'PHPExcel_Shared_Escher_DgContainer_SpgrContainer' => \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer::class,
    +            'PHPExcel_Shared_Escher_DggContainer_BstoreContainer' => \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer::class,
    +            'PHPExcel_Shared_OLE_PPS_File' => \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS\File::class,
    +            'PHPExcel_Shared_OLE_PPS_Root' => \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS\Root::class,
    +            'PHPExcel_Worksheet_AutoFilter_Column_Rule' => \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::class,
    +            'PHPExcel_Writer_OpenDocument_Cell_Comment' => \PhpOffice\PhpSpreadsheet\Writer\Ods\Cell\Comment::class,
    +            'PHPExcel_Calculation_Token_Stack' => \PhpOffice\PhpSpreadsheet\Calculation\Token\Stack::class,
    +            'PHPExcel_Chart_Renderer_jpgraph' => \PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph::class,
    +            'PHPExcel_Reader_Excel5_Escher' => \PhpOffice\PhpSpreadsheet\Reader\Xls\Escher::class,
    +            'PHPExcel_Reader_Excel5_MD5' => \PhpOffice\PhpSpreadsheet\Reader\Xls\MD5::class,
    +            'PHPExcel_Reader_Excel5_RC4' => \PhpOffice\PhpSpreadsheet\Reader\Xls\RC4::class,
    +            'PHPExcel_Reader_Excel2007_Chart' => \PhpOffice\PhpSpreadsheet\Reader\Xlsx\Chart::class,
    +            'PHPExcel_Reader_Excel2007_Theme' => \PhpOffice\PhpSpreadsheet\Reader\Xlsx\Theme::class,
    +            'PHPExcel_Shared_Escher_DgContainer' => \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer::class,
    +            'PHPExcel_Shared_Escher_DggContainer' => \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer::class,
    +            'CholeskyDecomposition' => \PhpOffice\PhpSpreadsheet\Shared\JAMA\CholeskyDecomposition::class,
    +            'EigenvalueDecomposition' => \PhpOffice\PhpSpreadsheet\Shared\JAMA\EigenvalueDecomposition::class,
    +            'PHPExcel_Shared_JAMA_LUDecomposition' => \PhpOffice\PhpSpreadsheet\Shared\JAMA\LUDecomposition::class,
    +            'PHPExcel_Shared_JAMA_Matrix' => \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix::class,
    +            'QRDecomposition' => \PhpOffice\PhpSpreadsheet\Shared\JAMA\QRDecomposition::class,
    +            'PHPExcel_Shared_JAMA_QRDecomposition' => \PhpOffice\PhpSpreadsheet\Shared\JAMA\QRDecomposition::class,
    +            'SingularValueDecomposition' => \PhpOffice\PhpSpreadsheet\Shared\JAMA\SingularValueDecomposition::class,
    +            'PHPExcel_Shared_OLE_ChainedBlockStream' => \PhpOffice\PhpSpreadsheet\Shared\OLE\ChainedBlockStream::class,
    +            'PHPExcel_Shared_OLE_PPS' => \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS::class,
    +            'PHPExcel_Best_Fit' => \PhpOffice\PhpSpreadsheet\Shared\Trend\BestFit::class,
    +            'PHPExcel_Exponential_Best_Fit' => \PhpOffice\PhpSpreadsheet\Shared\Trend\ExponentialBestFit::class,
    +            'PHPExcel_Linear_Best_Fit' => \PhpOffice\PhpSpreadsheet\Shared\Trend\LinearBestFit::class,
    +            'PHPExcel_Logarithmic_Best_Fit' => \PhpOffice\PhpSpreadsheet\Shared\Trend\LogarithmicBestFit::class,
    +            'polynomialBestFit' => \PhpOffice\PhpSpreadsheet\Shared\Trend\PolynomialBestFit::class,
    +            'PHPExcel_Polynomial_Best_Fit' => \PhpOffice\PhpSpreadsheet\Shared\Trend\PolynomialBestFit::class,
    +            'powerBestFit' => \PhpOffice\PhpSpreadsheet\Shared\Trend\PowerBestFit::class,
    +            'PHPExcel_Power_Best_Fit' => \PhpOffice\PhpSpreadsheet\Shared\Trend\PowerBestFit::class,
    +            'trendClass' => \PhpOffice\PhpSpreadsheet\Shared\Trend\Trend::class,
    +            'PHPExcel_Worksheet_AutoFilter_Column' => \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::class,
    +            'PHPExcel_Worksheet_Drawing_Shadow' => \PhpOffice\PhpSpreadsheet\Worksheet\Drawing\Shadow::class,
    +            'PHPExcel_Writer_OpenDocument_Content' => \PhpOffice\PhpSpreadsheet\Writer\Ods\Content::class,
    +            'PHPExcel_Writer_OpenDocument_Meta' => \PhpOffice\PhpSpreadsheet\Writer\Ods\Meta::class,
    +            'PHPExcel_Writer_OpenDocument_MetaInf' => \PhpOffice\PhpSpreadsheet\Writer\Ods\MetaInf::class,
    +            'PHPExcel_Writer_OpenDocument_Mimetype' => \PhpOffice\PhpSpreadsheet\Writer\Ods\Mimetype::class,
    +            'PHPExcel_Writer_OpenDocument_Settings' => \PhpOffice\PhpSpreadsheet\Writer\Ods\Settings::class,
    +            'PHPExcel_Writer_OpenDocument_Styles' => \PhpOffice\PhpSpreadsheet\Writer\Ods\Styles::class,
    +            'PHPExcel_Writer_OpenDocument_Thumbnails' => \PhpOffice\PhpSpreadsheet\Writer\Ods\Thumbnails::class,
    +            'PHPExcel_Writer_OpenDocument_WriterPart' => \PhpOffice\PhpSpreadsheet\Writer\Ods\WriterPart::class,
    +            'PHPExcel_Writer_PDF_Core' => \PhpOffice\PhpSpreadsheet\Writer\Pdf::class,
    +            'PHPExcel_Writer_PDF_DomPDF' => \PhpOffice\PhpSpreadsheet\Writer\Pdf\Dompdf::class,
    +            'PHPExcel_Writer_PDF_mPDF' => \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf::class,
    +            'PHPExcel_Writer_PDF_tcPDF' => \PhpOffice\PhpSpreadsheet\Writer\Pdf\Tcpdf::class,
    +            'PHPExcel_Writer_Excel5_BIFFwriter' => \PhpOffice\PhpSpreadsheet\Writer\Xls\BIFFwriter::class,
    +            'PHPExcel_Writer_Excel5_Escher' => \PhpOffice\PhpSpreadsheet\Writer\Xls\Escher::class,
    +            'PHPExcel_Writer_Excel5_Font' => \PhpOffice\PhpSpreadsheet\Writer\Xls\Font::class,
    +            'PHPExcel_Writer_Excel5_Parser' => \PhpOffice\PhpSpreadsheet\Writer\Xls\Parser::class,
    +            'PHPExcel_Writer_Excel5_Workbook' => \PhpOffice\PhpSpreadsheet\Writer\Xls\Workbook::class,
    +            'PHPExcel_Writer_Excel5_Worksheet' => \PhpOffice\PhpSpreadsheet\Writer\Xls\Worksheet::class,
    +            'PHPExcel_Writer_Excel5_Xf' => \PhpOffice\PhpSpreadsheet\Writer\Xls\Xf::class,
    +            'PHPExcel_Writer_Excel2007_Chart' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\Chart::class,
    +            'PHPExcel_Writer_Excel2007_Comments' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\Comments::class,
    +            'PHPExcel_Writer_Excel2007_ContentTypes' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\ContentTypes::class,
    +            'PHPExcel_Writer_Excel2007_DocProps' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\DocProps::class,
    +            'PHPExcel_Writer_Excel2007_Drawing' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\Drawing::class,
    +            'PHPExcel_Writer_Excel2007_Rels' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\Rels::class,
    +            'PHPExcel_Writer_Excel2007_RelsRibbon' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\RelsRibbon::class,
    +            'PHPExcel_Writer_Excel2007_RelsVBA' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\RelsVBA::class,
    +            'PHPExcel_Writer_Excel2007_StringTable' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\StringTable::class,
    +            'PHPExcel_Writer_Excel2007_Style' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\Style::class,
    +            'PHPExcel_Writer_Excel2007_Theme' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\Theme::class,
    +            'PHPExcel_Writer_Excel2007_Workbook' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\Workbook::class,
    +            'PHPExcel_Writer_Excel2007_Worksheet' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\Worksheet::class,
    +            'PHPExcel_Writer_Excel2007_WriterPart' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx\WriterPart::class,
    +            'PHPExcel_CachedObjectStorage_CacheBase' => \PhpOffice\PhpSpreadsheet\Collection\Cells::class,
    +            'PHPExcel_CalcEngine_CyclicReferenceStack' => \PhpOffice\PhpSpreadsheet\Calculation\Engine\CyclicReferenceStack::class,
    +            'PHPExcel_CalcEngine_Logger' => \PhpOffice\PhpSpreadsheet\Calculation\Engine\Logger::class,
    +            'PHPExcel_Calculation_Functions' => \PhpOffice\PhpSpreadsheet\Calculation\Functions::class,
    +            'PHPExcel_Calculation_Function' => \PhpOffice\PhpSpreadsheet\Calculation\Category::class,
    +            'PHPExcel_Calculation_Database' => \PhpOffice\PhpSpreadsheet\Calculation\Database::class,
    +            'PHPExcel_Calculation_DateTime' => \PhpOffice\PhpSpreadsheet\Calculation\DateTime::class,
    +            'PHPExcel_Calculation_Engineering' => \PhpOffice\PhpSpreadsheet\Calculation\Engineering::class,
    +            'PHPExcel_Calculation_Exception' => \PhpOffice\PhpSpreadsheet\Calculation\Exception::class,
    +            'PHPExcel_Calculation_ExceptionHandler' => \PhpOffice\PhpSpreadsheet\Calculation\ExceptionHandler::class,
    +            'PHPExcel_Calculation_Financial' => \PhpOffice\PhpSpreadsheet\Calculation\Financial::class,
    +            'PHPExcel_Calculation_FormulaParser' => \PhpOffice\PhpSpreadsheet\Calculation\FormulaParser::class,
    +            'PHPExcel_Calculation_FormulaToken' => \PhpOffice\PhpSpreadsheet\Calculation\FormulaToken::class,
    +            'PHPExcel_Calculation_Logical' => \PhpOffice\PhpSpreadsheet\Calculation\Logical::class,
    +            'PHPExcel_Calculation_LookupRef' => \PhpOffice\PhpSpreadsheet\Calculation\LookupRef::class,
    +            'PHPExcel_Calculation_MathTrig' => \PhpOffice\PhpSpreadsheet\Calculation\MathTrig::class,
    +            'PHPExcel_Calculation_Statistical' => \PhpOffice\PhpSpreadsheet\Calculation\Statistical::class,
    +            'PHPExcel_Calculation_TextData' => \PhpOffice\PhpSpreadsheet\Calculation\TextData::class,
    +            'PHPExcel_Cell_AdvancedValueBinder' => \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder::class,
    +            'PHPExcel_Cell_DataType' => \PhpOffice\PhpSpreadsheet\Cell\DataType::class,
    +            'PHPExcel_Cell_DataValidation' => \PhpOffice\PhpSpreadsheet\Cell\DataValidation::class,
    +            'PHPExcel_Cell_DefaultValueBinder' => \PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder::class,
    +            'PHPExcel_Cell_Hyperlink' => \PhpOffice\PhpSpreadsheet\Cell\Hyperlink::class,
    +            'PHPExcel_Cell_IValueBinder' => \PhpOffice\PhpSpreadsheet\Cell\IValueBinder::class,
    +            'PHPExcel_Chart_Axis' => \PhpOffice\PhpSpreadsheet\Chart\Axis::class,
    +            'PHPExcel_Chart_DataSeries' => \PhpOffice\PhpSpreadsheet\Chart\DataSeries::class,
    +            'PHPExcel_Chart_DataSeriesValues' => \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues::class,
    +            'PHPExcel_Chart_Exception' => \PhpOffice\PhpSpreadsheet\Chart\Exception::class,
    +            'PHPExcel_Chart_GridLines' => \PhpOffice\PhpSpreadsheet\Chart\GridLines::class,
    +            'PHPExcel_Chart_Layout' => \PhpOffice\PhpSpreadsheet\Chart\Layout::class,
    +            'PHPExcel_Chart_Legend' => \PhpOffice\PhpSpreadsheet\Chart\Legend::class,
    +            'PHPExcel_Chart_PlotArea' => \PhpOffice\PhpSpreadsheet\Chart\PlotArea::class,
    +            'PHPExcel_Properties' => \PhpOffice\PhpSpreadsheet\Chart\Properties::class,
    +            'PHPExcel_Chart_Title' => \PhpOffice\PhpSpreadsheet\Chart\Title::class,
    +            'PHPExcel_DocumentProperties' => \PhpOffice\PhpSpreadsheet\Document\Properties::class,
    +            'PHPExcel_DocumentSecurity' => \PhpOffice\PhpSpreadsheet\Document\Security::class,
    +            'PHPExcel_Helper_HTML' => \PhpOffice\PhpSpreadsheet\Helper\Html::class,
    +            'PHPExcel_Reader_Abstract' => \PhpOffice\PhpSpreadsheet\Reader\BaseReader::class,
    +            'PHPExcel_Reader_CSV' => \PhpOffice\PhpSpreadsheet\Reader\Csv::class,
    +            'PHPExcel_Reader_DefaultReadFilter' => \PhpOffice\PhpSpreadsheet\Reader\DefaultReadFilter::class,
    +            'PHPExcel_Reader_Excel2003XML' => \PhpOffice\PhpSpreadsheet\Reader\Xml::class,
    +            'PHPExcel_Reader_Exception' => \PhpOffice\PhpSpreadsheet\Reader\Exception::class,
    +            'PHPExcel_Reader_Gnumeric' => \PhpOffice\PhpSpreadsheet\Reader\Gnumeric::class,
    +            'PHPExcel_Reader_HTML' => \PhpOffice\PhpSpreadsheet\Reader\Html::class,
    +            'PHPExcel_Reader_IReadFilter' => \PhpOffice\PhpSpreadsheet\Reader\IReadFilter::class,
    +            'PHPExcel_Reader_IReader' => \PhpOffice\PhpSpreadsheet\Reader\IReader::class,
    +            'PHPExcel_Reader_OOCalc' => \PhpOffice\PhpSpreadsheet\Reader\Ods::class,
    +            'PHPExcel_Reader_SYLK' => \PhpOffice\PhpSpreadsheet\Reader\Slk::class,
    +            'PHPExcel_Reader_Excel5' => \PhpOffice\PhpSpreadsheet\Reader\Xls::class,
    +            'PHPExcel_Reader_Excel2007' => \PhpOffice\PhpSpreadsheet\Reader\Xlsx::class,
    +            'PHPExcel_RichText_ITextElement' => \PhpOffice\PhpSpreadsheet\RichText\ITextElement::class,
    +            'PHPExcel_RichText_Run' => \PhpOffice\PhpSpreadsheet\RichText\Run::class,
    +            'PHPExcel_RichText_TextElement' => \PhpOffice\PhpSpreadsheet\RichText\TextElement::class,
    +            'PHPExcel_Shared_CodePage' => \PhpOffice\PhpSpreadsheet\Shared\CodePage::class,
    +            'PHPExcel_Shared_Date' => \PhpOffice\PhpSpreadsheet\Shared\Date::class,
    +            'PHPExcel_Shared_Drawing' => \PhpOffice\PhpSpreadsheet\Shared\Drawing::class,
    +            'PHPExcel_Shared_Escher' => \PhpOffice\PhpSpreadsheet\Shared\Escher::class,
    +            'PHPExcel_Shared_File' => \PhpOffice\PhpSpreadsheet\Shared\File::class,
    +            'PHPExcel_Shared_Font' => \PhpOffice\PhpSpreadsheet\Shared\Font::class,
    +            'PHPExcel_Shared_OLE' => \PhpOffice\PhpSpreadsheet\Shared\OLE::class,
    +            'PHPExcel_Shared_OLERead' => \PhpOffice\PhpSpreadsheet\Shared\OLERead::class,
    +            'PHPExcel_Shared_PasswordHasher' => \PhpOffice\PhpSpreadsheet\Shared\PasswordHasher::class,
    +            'PHPExcel_Shared_String' => \PhpOffice\PhpSpreadsheet\Shared\StringHelper::class,
    +            'PHPExcel_Shared_TimeZone' => \PhpOffice\PhpSpreadsheet\Shared\TimeZone::class,
    +            'PHPExcel_Shared_XMLWriter' => \PhpOffice\PhpSpreadsheet\Shared\XMLWriter::class,
    +            'PHPExcel_Shared_Excel5' => \PhpOffice\PhpSpreadsheet\Shared\Xls::class,
    +            'PHPExcel_Style_Alignment' => \PhpOffice\PhpSpreadsheet\Style\Alignment::class,
    +            'PHPExcel_Style_Border' => \PhpOffice\PhpSpreadsheet\Style\Border::class,
    +            'PHPExcel_Style_Borders' => \PhpOffice\PhpSpreadsheet\Style\Borders::class,
    +            'PHPExcel_Style_Color' => \PhpOffice\PhpSpreadsheet\Style\Color::class,
    +            'PHPExcel_Style_Conditional' => \PhpOffice\PhpSpreadsheet\Style\Conditional::class,
    +            'PHPExcel_Style_Fill' => \PhpOffice\PhpSpreadsheet\Style\Fill::class,
    +            'PHPExcel_Style_Font' => \PhpOffice\PhpSpreadsheet\Style\Font::class,
    +            'PHPExcel_Style_NumberFormat' => \PhpOffice\PhpSpreadsheet\Style\NumberFormat::class,
    +            'PHPExcel_Style_Protection' => \PhpOffice\PhpSpreadsheet\Style\Protection::class,
    +            'PHPExcel_Style_Supervisor' => \PhpOffice\PhpSpreadsheet\Style\Supervisor::class,
    +            'PHPExcel_Worksheet_AutoFilter' => \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter::class,
    +            'PHPExcel_Worksheet_BaseDrawing' => \PhpOffice\PhpSpreadsheet\Worksheet\BaseDrawing::class,
    +            'PHPExcel_Worksheet_CellIterator' => \PhpOffice\PhpSpreadsheet\Worksheet\CellIterator::class,
    +            'PHPExcel_Worksheet_Column' => \PhpOffice\PhpSpreadsheet\Worksheet\Column::class,
    +            'PHPExcel_Worksheet_ColumnCellIterator' => \PhpOffice\PhpSpreadsheet\Worksheet\ColumnCellIterator::class,
    +            'PHPExcel_Worksheet_ColumnDimension' => \PhpOffice\PhpSpreadsheet\Worksheet\ColumnDimension::class,
    +            'PHPExcel_Worksheet_ColumnIterator' => \PhpOffice\PhpSpreadsheet\Worksheet\ColumnIterator::class,
    +            'PHPExcel_Worksheet_Drawing' => \PhpOffice\PhpSpreadsheet\Worksheet\Drawing::class,
    +            'PHPExcel_Worksheet_HeaderFooter' => \PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooter::class,
    +            'PHPExcel_Worksheet_HeaderFooterDrawing' => \PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooterDrawing::class,
    +            'PHPExcel_WorksheetIterator' => \PhpOffice\PhpSpreadsheet\Worksheet\Iterator::class,
    +            'PHPExcel_Worksheet_MemoryDrawing' => \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::class,
    +            'PHPExcel_Worksheet_PageMargins' => \PhpOffice\PhpSpreadsheet\Worksheet\PageMargins::class,
    +            'PHPExcel_Worksheet_PageSetup' => \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::class,
    +            'PHPExcel_Worksheet_Protection' => \PhpOffice\PhpSpreadsheet\Worksheet\Protection::class,
    +            'PHPExcel_Worksheet_Row' => \PhpOffice\PhpSpreadsheet\Worksheet\Row::class,
    +            'PHPExcel_Worksheet_RowCellIterator' => \PhpOffice\PhpSpreadsheet\Worksheet\RowCellIterator::class,
    +            'PHPExcel_Worksheet_RowDimension' => \PhpOffice\PhpSpreadsheet\Worksheet\RowDimension::class,
    +            'PHPExcel_Worksheet_RowIterator' => \PhpOffice\PhpSpreadsheet\Worksheet\RowIterator::class,
    +            'PHPExcel_Worksheet_SheetView' => \PhpOffice\PhpSpreadsheet\Worksheet\SheetView::class,
    +            'PHPExcel_Writer_Abstract' => \PhpOffice\PhpSpreadsheet\Writer\BaseWriter::class,
    +            'PHPExcel_Writer_CSV' => \PhpOffice\PhpSpreadsheet\Writer\Csv::class,
    +            'PHPExcel_Writer_Exception' => \PhpOffice\PhpSpreadsheet\Writer\Exception::class,
    +            'PHPExcel_Writer_HTML' => \PhpOffice\PhpSpreadsheet\Writer\Html::class,
    +            'PHPExcel_Writer_IWriter' => \PhpOffice\PhpSpreadsheet\Writer\IWriter::class,
    +            'PHPExcel_Writer_OpenDocument' => \PhpOffice\PhpSpreadsheet\Writer\Ods::class,
    +            'PHPExcel_Writer_PDF' => \PhpOffice\PhpSpreadsheet\Writer\Pdf::class,
    +            'PHPExcel_Writer_Excel5' => \PhpOffice\PhpSpreadsheet\Writer\Xls::class,
    +            'PHPExcel_Writer_Excel2007' => \PhpOffice\PhpSpreadsheet\Writer\Xlsx::class,
    +            'PHPExcel_CachedObjectStorageFactory' => \PhpOffice\PhpSpreadsheet\Collection\CellsFactory::class,
    +            'PHPExcel_Calculation' => \PhpOffice\PhpSpreadsheet\Calculation\Calculation::class,
    +            'PHPExcel_Cell' => \PhpOffice\PhpSpreadsheet\Cell\Cell::class,
    +            'PHPExcel_Chart' => \PhpOffice\PhpSpreadsheet\Chart\Chart::class,
    +            'PHPExcel_Comment' => \PhpOffice\PhpSpreadsheet\Comment::class,
    +            'PHPExcel_Exception' => \PhpOffice\PhpSpreadsheet\Exception::class,
    +            'PHPExcel_HashTable' => \PhpOffice\PhpSpreadsheet\HashTable::class,
    +            'PHPExcel_IComparable' => \PhpOffice\PhpSpreadsheet\IComparable::class,
    +            'PHPExcel_IOFactory' => \PhpOffice\PhpSpreadsheet\IOFactory::class,
    +            'PHPExcel_NamedRange' => \PhpOffice\PhpSpreadsheet\NamedRange::class,
    +            'PHPExcel_ReferenceHelper' => \PhpOffice\PhpSpreadsheet\ReferenceHelper::class,
    +            'PHPExcel_RichText' => \PhpOffice\PhpSpreadsheet\RichText\RichText::class,
    +            'PHPExcel_Settings' => \PhpOffice\PhpSpreadsheet\Settings::class,
    +            'PHPExcel_Style' => \PhpOffice\PhpSpreadsheet\Style\Style::class,
    +            'PHPExcel_Worksheet' => \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::class,
    +        ];
    +
    +        $methods = [
    +            'MINUTEOFHOUR' => 'MINUTE',
    +            'SECONDOFMINUTE' => 'SECOND',
    +            'DAYOFWEEK' => 'WEEKDAY',
    +            'WEEKOFYEAR' => 'WEEKNUM',
    +            'ExcelToPHPObject' => 'excelToDateTimeObject',
    +            'ExcelToPHP' => 'excelToTimestamp',
    +            'FormattedPHPToExcel' => 'formattedPHPToExcel',
    +            'Cell::absoluteCoordinate' => 'Coordinate::absoluteCoordinate',
    +            'Cell::absoluteReference' => 'Coordinate::absoluteReference',
    +            'Cell::buildRange' => 'Coordinate::buildRange',
    +            'Cell::columnIndexFromString' => 'Coordinate::columnIndexFromString',
    +            'Cell::coordinateFromString' => 'Coordinate::coordinateFromString',
    +            'Cell::extractAllCellReferencesInRange' => 'Coordinate::extractAllCellReferencesInRange',
    +            'Cell::getRangeBoundaries' => 'Coordinate::getRangeBoundaries',
    +            'Cell::mergeRangesInCollection' => 'Coordinate::mergeRangesInCollection',
    +            'Cell::rangeBoundaries' => 'Coordinate::rangeBoundaries',
    +            'Cell::rangeDimension' => 'Coordinate::rangeDimension',
    +            'Cell::splitRange' => 'Coordinate::splitRange',
    +            'Cell::stringFromColumnIndex' => 'Coordinate::stringFromColumnIndex',
    +        ];
    +
    +        // Keep '\' prefix for class names
    +        $prefixedClasses = [];
    +        foreach ($classes as $key => &$value) {
    +            $value = str_replace('PhpOffice\\', '\\PhpOffice\\', $value);
    +            $prefixedClasses['\\' . $key] = $value;
    +        }
    +        $mapping = $prefixedClasses + $classes + $methods;
    +
    +        return $mapping;
    +    }
    +
    +    /**
    +     * Search in all files in given directory.
    +     *
    +     * @param string $path
    +     */
    +    private function recursiveReplace($path)
    +    {
    +        $patterns = [
    +            '/*.md',
    +            '/*.txt',
    +            '/*.TXT',
    +            '/*.php',
    +            '/*.phpt',
    +            '/*.php3',
    +            '/*.php4',
    +            '/*.php5',
    +            '/*.phtml',
    +        ];
    +
    +        foreach ($patterns as $pattern) {
    +            foreach (glob($path . $pattern) as $file) {
    +                if (strpos($path, '/vendor/') !== false) {
    +                    echo $file . " skipped\n";
    +
    +                    continue;
    +                }
    +                $original = file_get_contents($file);
    +                $converted = $this->replace($original);
    +
    +                if ($original !== $converted) {
    +                    echo $file . " converted\n";
    +                    file_put_contents($file, $converted);
    +                }
    +            }
    +        }
    +
    +        // Do the recursion in subdirectory
    +        foreach (glob($path . '/*', GLOB_ONLYDIR) as $subpath) {
    +            if (strpos($subpath, $path . '/') === 0) {
    +                $this->recursiveReplace($subpath);
    +            }
    +        }
    +    }
    +
    +    public function migrate()
    +    {
    +        $path = realpath(getcwd());
    +        echo 'This will search and replace recursively in ' . $path . PHP_EOL;
    +        echo 'You MUST backup your files first, or you risk losing data.' . PHP_EOL;
    +        echo 'Are you sure ? (y/n)';
    +
    +        $confirm = fread(STDIN, 1);
    +        if ($confirm === 'y') {
    +            $this->recursiveReplace($path);
    +        }
    +    }
    +
    +    /**
    +     * Migrate the given code from PHPExcel to PhpSpreadsheet.
    +     *
    +     * @param string $original
    +     *
    +     * @return string
    +     */
    +    public function replace($original)
    +    {
    +        $converted = str_replace($this->from, $this->to, $original);
    +
    +        // The string "PHPExcel" gets special treatment because of how common it might be.
    +        // This regex requires a word boundary around the string, and it can't be
    +        // preceded by $ or -> (goal is to filter out cases where a variable is named $PHPExcel or similar)
    +        $converted = preg_replace('~(?<!\$|->)(\b|\\\\)PHPExcel\b~', '\\' . \PhpOffice\PhpSpreadsheet\Spreadsheet::class, $converted);
    +
    +        return $converted;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Helper/Sample.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Helper/Sample.php
    new file mode 100644
    index 00000000000..e199c807c0d
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Helper/Sample.php
    @@ -0,0 +1,230 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Helper;
    +
    +use PhpOffice\PhpSpreadsheet\IOFactory;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Writer\IWriter;
    +use PhpOffice\PhpSpreadsheet\Writer\Pdf;
    +use RecursiveDirectoryIterator;
    +use RecursiveIteratorIterator;
    +use RecursiveRegexIterator;
    +use ReflectionClass;
    +use RegexIterator;
    +
    +/**
    + * Helper class to be used in sample code.
    + */
    +class Sample
    +{
    +    /**
    +     * Returns whether we run on CLI or browser.
    +     *
    +     * @return bool
    +     */
    +    public function isCli()
    +    {
    +        return PHP_SAPI === 'cli';
    +    }
    +
    +    /**
    +     * Return the filename currently being executed.
    +     *
    +     * @return string
    +     */
    +    public function getScriptFilename()
    +    {
    +        return basename($_SERVER['SCRIPT_FILENAME'], '.php');
    +    }
    +
    +    /**
    +     * Whether we are executing the index page.
    +     *
    +     * @return bool
    +     */
    +    public function isIndex()
    +    {
    +        return $this->getScriptFilename() === 'index';
    +    }
    +
    +    /**
    +     * Return the page title.
    +     *
    +     * @return string
    +     */
    +    public function getPageTitle()
    +    {
    +        return $this->isIndex() ? 'PHPSpreadsheet' : $this->getScriptFilename();
    +    }
    +
    +    /**
    +     * Return the page heading.
    +     *
    +     * @return string
    +     */
    +    public function getPageHeading()
    +    {
    +        return $this->isIndex() ? '' : '<h1>' . str_replace('_', ' ', $this->getScriptFilename()) . '</h1>';
    +    }
    +
    +    /**
    +     * Returns an array of all known samples.
    +     *
    +     * @return string[] [$name => $path]
    +     */
    +    public function getSamples()
    +    {
    +        // Populate samples
    +        $baseDir = realpath(__DIR__ . '/../../../samples');
    +        $directory = new RecursiveDirectoryIterator($baseDir);
    +        $iterator = new RecursiveIteratorIterator($directory);
    +        $regex = new RegexIterator($iterator, '/^.+\.php$/', RecursiveRegexIterator::GET_MATCH);
    +
    +        $files = [];
    +        foreach ($regex as $file) {
    +            $file = str_replace(str_replace('\\', '/', $baseDir) . '/', '', str_replace('\\', '/', $file[0]));
    +            $info = pathinfo($file);
    +            $category = str_replace('_', ' ', $info['dirname']);
    +            $name = str_replace('_', ' ', preg_replace('/(|\.php)/', '', $info['filename']));
    +            if (!in_array($category, ['.', 'boostrap', 'templates'])) {
    +                if (!isset($files[$category])) {
    +                    $files[$category] = [];
    +                }
    +                $files[$category][$name] = $file;
    +            }
    +        }
    +
    +        // Sort everything
    +        ksort($files);
    +        foreach ($files as &$f) {
    +            asort($f);
    +        }
    +
    +        return $files;
    +    }
    +
    +    /**
    +     * Write documents.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     * @param string $filename
    +     * @param string[] $writers
    +     */
    +    public function write(Spreadsheet $spreadsheet, $filename, array $writers = ['Xlsx', 'Xls'])
    +    {
    +        // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    +        $spreadsheet->setActiveSheetIndex(0);
    +
    +        // Write documents
    +        foreach ($writers as $writerType) {
    +            $path = $this->getFilename($filename, mb_strtolower($writerType));
    +            $writer = IOFactory::createWriter($spreadsheet, $writerType);
    +            if ($writer instanceof Pdf) {
    +                // PDF writer needs temporary directory
    +                $tempDir = $this->getTemporaryFolder();
    +                $writer->setTempDir($tempDir);
    +            }
    +            $callStartTime = microtime(true);
    +            $writer->save($path);
    +            $this->logWrite($writer, $path, $callStartTime);
    +        }
    +
    +        $this->logEndingNotes();
    +    }
    +
    +    /**
    +     * Returns the temporary directory and make sure it exists.
    +     *
    +     * @return string
    +     */
    +    private function getTemporaryFolder()
    +    {
    +        $tempFolder = sys_get_temp_dir() . '/phpspreadsheet';
    +        if (!is_dir($tempFolder)) {
    +            if (!mkdir($tempFolder) && !is_dir($tempFolder)) {
    +                throw new \RuntimeException(sprintf('Directory "%s" was not created', $tempFolder));
    +            }
    +        }
    +
    +        return $tempFolder;
    +    }
    +
    +    /**
    +     * Returns the filename that should be used for sample output.
    +     *
    +     * @param string $filename
    +     * @param string $extension
    +     *
    +     * @return string
    +     */
    +    public function getFilename($filename, $extension = 'xlsx')
    +    {
    +        $originalExtension = pathinfo($filename, PATHINFO_EXTENSION);
    +
    +        return $this->getTemporaryFolder() . '/' . str_replace('.' . $originalExtension, '.' . $extension, basename($filename));
    +    }
    +
    +    /**
    +     * Return a random temporary file name.
    +     *
    +     * @param string $extension
    +     *
    +     * @return string
    +     */
    +    public function getTemporaryFilename($extension = 'xlsx')
    +    {
    +        $temporaryFilename = tempnam($this->getTemporaryFolder(), 'phpspreadsheet-');
    +        unlink($temporaryFilename);
    +
    +        return $temporaryFilename . '.' . $extension;
    +    }
    +
    +    public function log($message)
    +    {
    +        $eol = $this->isCli() ? PHP_EOL : '<br />';
    +        echo date('H:i:s ') . $message . $eol;
    +    }
    +
    +    /**
    +     * Log ending notes.
    +     */
    +    public function logEndingNotes()
    +    {
    +        // Do not show execution time for index
    +        $this->log('Peak memory usage: ' . (memory_get_peak_usage(true) / 1024 / 1024) . 'MB');
    +    }
    +
    +    /**
    +     * Log a line about the write operation.
    +     *
    +     * @param IWriter $writer
    +     * @param string $path
    +     * @param float $callStartTime
    +     */
    +    public function logWrite(IWriter $writer, $path, $callStartTime)
    +    {
    +        $callEndTime = microtime(true);
    +        $callTime = $callEndTime - $callStartTime;
    +        $reflection = new ReflectionClass($writer);
    +        $format = $reflection->getShortName();
    +        $message = "Write {$format} format to <code>{$path}</code>  in " . sprintf('%.4f', $callTime) . ' seconds';
    +
    +        $this->log($message);
    +    }
    +
    +    /**
    +     * Log a line about the read operation.
    +     *
    +     * @param string $format
    +     * @param string $path
    +     * @param float $callStartTime
    +     */
    +    public function logRead($format, $path, $callStartTime)
    +    {
    +        $callEndTime = microtime(true);
    +        $callTime = $callEndTime - $callStartTime;
    +        $message = "Read {$format} format from <code>{$path}</code>  in " . sprintf('%.4f', $callTime) . ' seconds';
    +
    +        $this->log($message);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/IComparable.php b/htdocs/includes/phpoffice/PhpSpreadsheet/IComparable.php
    new file mode 100644
    index 00000000000..c215847b316
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/IComparable.php
    @@ -0,0 +1,13 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet;
    +
    +interface IComparable
    +{
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode();
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/IOFactory.php b/htdocs/includes/phpoffice/PhpSpreadsheet/IOFactory.php
    new file mode 100644
    index 00000000000..a116334a4ef
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/IOFactory.php
    @@ -0,0 +1,230 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +
    +/**
    + * Factory to create readers and writers easily.
    + *
    + * It is not required to use this class, but it should make it easier to read and write files.
    + * Especially for reading files with an unknown format.
    + */
    +abstract class IOFactory
    +{
    +    private static $readers = [
    +        'Xlsx' => Reader\Xlsx::class,
    +        'Xls' => Reader\Xls::class,
    +        'Xml' => Reader\Xml::class,
    +        'Ods' => Reader\Ods::class,
    +        'Slk' => Reader\Slk::class,
    +        'Gnumeric' => Reader\Gnumeric::class,
    +        'Html' => Reader\Html::class,
    +        'Csv' => Reader\Csv::class,
    +    ];
    +
    +    private static $writers = [
    +        'Xls' => Writer\Xls::class,
    +        'Xlsx' => Writer\Xlsx::class,
    +        'Ods' => Writer\Ods::class,
    +        'Csv' => Writer\Csv::class,
    +        'Html' => Writer\Html::class,
    +        'Tcpdf' => Writer\Pdf\Tcpdf::class,
    +        'Dompdf' => Writer\Pdf\Dompdf::class,
    +        'Mpdf' => Writer\Pdf\Mpdf::class,
    +    ];
    +
    +    /**
    +     * Create Writer\IWriter.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     * @param string $writerType Example: Xlsx
    +     *
    +     * @throws Writer\Exception
    +     *
    +     * @return Writer\IWriter
    +     */
    +    public static function createWriter(Spreadsheet $spreadsheet, $writerType)
    +    {
    +        if (!isset(self::$writers[$writerType])) {
    +            throw new Writer\Exception("No writer found for type $writerType");
    +        }
    +
    +        // Instantiate writer
    +        $className = self::$writers[$writerType];
    +        $writer = new $className($spreadsheet);
    +
    +        return $writer;
    +    }
    +
    +    /**
    +     * Create Reader\IReader.
    +     *
    +     * @param string $readerType Example: Xlsx
    +     *
    +     * @throws Reader\Exception
    +     *
    +     * @return Reader\IReader
    +     */
    +    public static function createReader($readerType)
    +    {
    +        if (!isset(self::$readers[$readerType])) {
    +            throw new Reader\Exception("No reader found for type $readerType");
    +        }
    +
    +        // Instantiate reader
    +        $className = self::$readers[$readerType];
    +        $reader = new $className();
    +
    +        return $reader;
    +    }
    +
    +    /**
    +     * Loads Spreadsheet from file using automatic Reader\IReader resolution.
    +     *
    +     * @param string $pFilename The name of the spreadsheet file
    +     *
    +     * @throws Reader\Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public static function load($pFilename)
    +    {
    +        $reader = self::createReaderForFile($pFilename);
    +
    +        return $reader->load($pFilename);
    +    }
    +
    +    /**
    +     * Identify file type using automatic Reader\IReader resolution.
    +     *
    +     * @param string $pFilename The name of the spreadsheet file to identify
    +     *
    +     * @throws Reader\Exception
    +     *
    +     * @return string
    +     */
    +    public static function identify($pFilename)
    +    {
    +        $reader = self::createReaderForFile($pFilename);
    +        $className = get_class($reader);
    +        $classType = explode('\\', $className);
    +        unset($reader);
    +
    +        return array_pop($classType);
    +    }
    +
    +    /**
    +     * Create Reader\IReader for file using automatic Reader\IReader resolution.
    +     *
    +     * @param string $filename The name of the spreadsheet file
    +     *
    +     * @throws Reader\Exception
    +     *
    +     * @return Reader\IReader
    +     */
    +    public static function createReaderForFile($filename)
    +    {
    +        File::assertFile($filename);
    +
    +        // First, lucky guess by inspecting file extension
    +        $guessedReader = self::getReaderTypeFromExtension($filename);
    +        if ($guessedReader !== null) {
    +            $reader = self::createReader($guessedReader);
    +
    +            // Let's see if we are lucky
    +            if (isset($reader) && $reader->canRead($filename)) {
    +                return $reader;
    +            }
    +        }
    +
    +        // If we reach here then "lucky guess" didn't give any result
    +        // Try walking through all the options in self::$autoResolveClasses
    +        foreach (self::$readers as $type => $class) {
    +            //    Ignore our original guess, we know that won't work
    +            if ($type !== $guessedReader) {
    +                $reader = self::createReader($type);
    +                if ($reader->canRead($filename)) {
    +                    return $reader;
    +                }
    +            }
    +        }
    +
    +        throw new Reader\Exception('Unable to identify a reader for this file');
    +    }
    +
    +    /**
    +     * Guess a reader type from the file extension, if any.
    +     *
    +     * @param string $filename
    +     *
    +     * @return null|string
    +     */
    +    private static function getReaderTypeFromExtension($filename)
    +    {
    +        $pathinfo = pathinfo($filename);
    +        if (!isset($pathinfo['extension'])) {
    +            return null;
    +        }
    +
    +        switch (strtolower($pathinfo['extension'])) {
    +            case 'xlsx': // Excel (OfficeOpenXML) Spreadsheet
    +            case 'xlsm': // Excel (OfficeOpenXML) Macro Spreadsheet (macros will be discarded)
    +            case 'xltx': // Excel (OfficeOpenXML) Template
    +            case 'xltm': // Excel (OfficeOpenXML) Macro Template (macros will be discarded)
    +                return 'Xlsx';
    +            case 'xls': // Excel (BIFF) Spreadsheet
    +            case 'xlt': // Excel (BIFF) Template
    +                return 'Xls';
    +            case 'ods': // Open/Libre Offic Calc
    +            case 'ots': // Open/Libre Offic Calc Template
    +                return 'Ods';
    +            case 'slk':
    +                return 'Slk';
    +            case 'xml': // Excel 2003 SpreadSheetML
    +                return 'Xml';
    +            case 'gnumeric':
    +                return 'Gnumeric';
    +            case 'htm':
    +            case 'html':
    +                return 'Html';
    +            case 'csv':
    +                // Do nothing
    +                // We must not try to use CSV reader since it loads
    +                // all files including Excel files etc.
    +                return null;
    +            default:
    +                return null;
    +        }
    +    }
    +
    +    /**
    +     * Register a writer with its type and class name.
    +     *
    +     * @param string $writerType
    +     * @param string $writerClass
    +     */
    +    public static function registerWriter($writerType, $writerClass)
    +    {
    +        if (!is_a($writerClass, Writer\IWriter::class, true)) {
    +            throw new Writer\Exception('Registered writers must implement ' . Writer\IWriter::class);
    +        }
    +
    +        self::$writers[$writerType] = $writerClass;
    +    }
    +
    +    /**
    +     * Register a reader with its type and class name.
    +     *
    +     * @param string $readerType
    +     * @param string $readerClass
    +     */
    +    public static function registerReader($readerType, $readerClass)
    +    {
    +        if (!is_a($readerClass, Reader\IReader::class, true)) {
    +            throw new Reader\Exception('Registered readers must implement ' . Reader\IReader::class);
    +        }
    +
    +        self::$readers[$readerType] = $readerClass;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/NamedRange.php b/htdocs/includes/phpoffice/PhpSpreadsheet/NamedRange.php
    new file mode 100644
    index 00000000000..1f94d5a4ed2
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/NamedRange.php
    @@ -0,0 +1,240 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet;
    +
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +class NamedRange
    +{
    +    /**
    +     * Range name.
    +     *
    +     * @var string
    +     */
    +    private $name;
    +
    +    /**
    +     * Worksheet on which the named range can be resolved.
    +     *
    +     * @var Worksheet
    +     */
    +    private $worksheet;
    +
    +    /**
    +     * Range of the referenced cells.
    +     *
    +     * @var string
    +     */
    +    private $range;
    +
    +    /**
    +     * Is the named range local? (i.e. can only be used on $this->worksheet).
    +     *
    +     * @var bool
    +     */
    +    private $localOnly;
    +
    +    /**
    +     * Scope.
    +     *
    +     * @var Worksheet
    +     */
    +    private $scope;
    +
    +    /**
    +     * Create a new NamedRange.
    +     *
    +     * @param string $pName
    +     * @param Worksheet $pWorksheet
    +     * @param string $pRange
    +     * @param bool $pLocalOnly
    +     * @param null|Worksheet $pScope Scope. Only applies when $pLocalOnly = true. Null for global scope.
    +     *
    +     * @throws Exception
    +     */
    +    public function __construct($pName, Worksheet $pWorksheet, $pRange = 'A1', $pLocalOnly = false, $pScope = null)
    +    {
    +        // Validate data
    +        if (($pName === null) || ($pWorksheet === null) || ($pRange === null)) {
    +            throw new Exception('Parameters can not be null.');
    +        }
    +
    +        // Set local members
    +        $this->name = $pName;
    +        $this->worksheet = $pWorksheet;
    +        $this->range = $pRange;
    +        $this->localOnly = $pLocalOnly;
    +        $this->scope = ($pLocalOnly == true) ? (($pScope == null) ? $pWorksheet : $pScope) : null;
    +    }
    +
    +    /**
    +     * Get name.
    +     *
    +     * @return string
    +     */
    +    public function getName()
    +    {
    +        return $this->name;
    +    }
    +
    +    /**
    +     * Set name.
    +     *
    +     * @param string $value
    +     *
    +     * @return NamedRange
    +     */
    +    public function setName($value)
    +    {
    +        if ($value !== null) {
    +            // Old title
    +            $oldTitle = $this->name;
    +
    +            // Re-attach
    +            if ($this->worksheet !== null) {
    +                $this->worksheet->getParent()->removeNamedRange($this->name, $this->worksheet);
    +            }
    +            $this->name = $value;
    +
    +            if ($this->worksheet !== null) {
    +                $this->worksheet->getParent()->addNamedRange($this);
    +            }
    +
    +            // New title
    +            $newTitle = $this->name;
    +            ReferenceHelper::getInstance()->updateNamedFormulas($this->worksheet->getParent(), $oldTitle, $newTitle);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get worksheet.
    +     *
    +     * @return Worksheet
    +     */
    +    public function getWorksheet()
    +    {
    +        return $this->worksheet;
    +    }
    +
    +    /**
    +     * Set worksheet.
    +     *
    +     * @param Worksheet $value
    +     *
    +     * @return NamedRange
    +     */
    +    public function setWorksheet(Worksheet $value = null)
    +    {
    +        if ($value !== null) {
    +            $this->worksheet = $value;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get range.
    +     *
    +     * @return string
    +     */
    +    public function getRange()
    +    {
    +        return $this->range;
    +    }
    +
    +    /**
    +     * Set range.
    +     *
    +     * @param string $value
    +     *
    +     * @return NamedRange
    +     */
    +    public function setRange($value)
    +    {
    +        if ($value !== null) {
    +            $this->range = $value;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get localOnly.
    +     *
    +     * @return bool
    +     */
    +    public function getLocalOnly()
    +    {
    +        return $this->localOnly;
    +    }
    +
    +    /**
    +     * Set localOnly.
    +     *
    +     * @param bool $value
    +     *
    +     * @return NamedRange
    +     */
    +    public function setLocalOnly($value)
    +    {
    +        $this->localOnly = $value;
    +        $this->scope = $value ? $this->worksheet : null;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get scope.
    +     *
    +     * @return null|Worksheet
    +     */
    +    public function getScope()
    +    {
    +        return $this->scope;
    +    }
    +
    +    /**
    +     * Set scope.
    +     *
    +     * @param null|Worksheet $value
    +     *
    +     * @return NamedRange
    +     */
    +    public function setScope(Worksheet $value = null)
    +    {
    +        $this->scope = $value;
    +        $this->localOnly = $value != null;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Resolve a named range to a regular cell range.
    +     *
    +     * @param string $pNamedRange Named range
    +     * @param null|Worksheet $pSheet Scope. Use null for global scope
    +     *
    +     * @return NamedRange
    +     */
    +    public static function resolveRange($pNamedRange, Worksheet $pSheet)
    +    {
    +        return $pSheet->getParent()->getNamedRange($pNamedRange, $pSheet);
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/BaseReader.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/BaseReader.php
    new file mode 100644
    index 00000000000..c191c3f8d8e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/BaseReader.php
    @@ -0,0 +1,239 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner;
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +
    +abstract class BaseReader implements IReader
    +{
    +    /**
    +     * Read data only?
    +     * Identifies whether the Reader should only read data values for cells, and ignore any formatting information;
    +     *        or whether it should read both data and formatting.
    +     *
    +     * @var bool
    +     */
    +    protected $readDataOnly = false;
    +
    +    /**
    +     * Read empty cells?
    +     * Identifies whether the Reader should read data values for cells all cells, or should ignore cells containing
    +     *         null value or empty string.
    +     *
    +     * @var bool
    +     */
    +    protected $readEmptyCells = true;
    +
    +    /**
    +     * Read charts that are defined in the workbook?
    +     * Identifies whether the Reader should read the definitions for any charts that exist in the workbook;.
    +     *
    +     * @var bool
    +     */
    +    protected $includeCharts = false;
    +
    +    /**
    +     * Restrict which sheets should be loaded?
    +     * This property holds an array of worksheet names to be loaded. If null, then all worksheets will be loaded.
    +     *
    +     * @var array of string
    +     */
    +    protected $loadSheetsOnly;
    +
    +    /**
    +     * IReadFilter instance.
    +     *
    +     * @var IReadFilter
    +     */
    +    protected $readFilter;
    +
    +    protected $fileHandle;
    +
    +    /**
    +     * @var XmlScanner
    +     */
    +    protected $securityScanner;
    +
    +    /**
    +     * Read data only?
    +     *        If this is true, then the Reader will only read data values for cells, it will not read any formatting information.
    +     *        If false (the default) it will read data and formatting.
    +     *
    +     * @return bool
    +     */
    +    public function getReadDataOnly()
    +    {
    +        return $this->readDataOnly;
    +    }
    +
    +    /**
    +     * Set read data only
    +     *        Set to true, to advise the Reader only to read data values for cells, and to ignore any formatting information.
    +     *        Set to false (the default) to advise the Reader to read both data and formatting for cells.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return IReader
    +     */
    +    public function setReadDataOnly($pValue)
    +    {
    +        $this->readDataOnly = (bool) $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Read empty cells?
    +     *        If this is true (the default), then the Reader will read data values for all cells, irrespective of value.
    +     *        If false it will not read data for cells containing a null value or an empty string.
    +     *
    +     * @return bool
    +     */
    +    public function getReadEmptyCells()
    +    {
    +        return $this->readEmptyCells;
    +    }
    +
    +    /**
    +     * Set read empty cells
    +     *        Set to true (the default) to advise the Reader read data values for all cells, irrespective of value.
    +     *        Set to false to advise the Reader to ignore cells containing a null value or an empty string.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return IReader
    +     */
    +    public function setReadEmptyCells($pValue)
    +    {
    +        $this->readEmptyCells = (bool) $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Read charts in workbook?
    +     *        If this is true, then the Reader will include any charts that exist in the workbook.
    +     *      Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value.
    +     *        If false (the default) it will ignore any charts defined in the workbook file.
    +     *
    +     * @return bool
    +     */
    +    public function getIncludeCharts()
    +    {
    +        return $this->includeCharts;
    +    }
    +
    +    /**
    +     * Set read charts in workbook
    +     *        Set to true, to advise the Reader to include any charts that exist in the workbook.
    +     *      Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value.
    +     *        Set to false (the default) to discard charts.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return IReader
    +     */
    +    public function setIncludeCharts($pValue)
    +    {
    +        $this->includeCharts = (bool) $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get which sheets to load
    +     * Returns either an array of worksheet names (the list of worksheets that should be loaded), or a null
    +     *        indicating that all worksheets in the workbook should be loaded.
    +     *
    +     * @return mixed
    +     */
    +    public function getLoadSheetsOnly()
    +    {
    +        return $this->loadSheetsOnly;
    +    }
    +
    +    /**
    +     * Set which sheets to load.
    +     *
    +     * @param mixed $value
    +     *        This should be either an array of worksheet names to be loaded, or a string containing a single worksheet name.
    +     *        If NULL, then it tells the Reader to read all worksheets in the workbook
    +     *
    +     * @return IReader
    +     */
    +    public function setLoadSheetsOnly($value)
    +    {
    +        if ($value === null) {
    +            return $this->setLoadAllSheets();
    +        }
    +
    +        $this->loadSheetsOnly = is_array($value) ? $value : [$value];
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set all sheets to load
    +     *        Tells the Reader to load all worksheets from the workbook.
    +     *
    +     * @return IReader
    +     */
    +    public function setLoadAllSheets()
    +    {
    +        $this->loadSheetsOnly = null;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Read filter.
    +     *
    +     * @return IReadFilter
    +     */
    +    public function getReadFilter()
    +    {
    +        return $this->readFilter;
    +    }
    +
    +    /**
    +     * Set read filter.
    +     *
    +     * @param IReadFilter $pValue
    +     *
    +     * @return IReader
    +     */
    +    public function setReadFilter(IReadFilter $pValue)
    +    {
    +        $this->readFilter = $pValue;
    +
    +        return $this;
    +    }
    +
    +    public function getSecuritySCanner()
    +    {
    +        if (property_exists($this, 'securityScanner')) {
    +            return $this->securityScanner;
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Open file for reading.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     */
    +    protected function openFile($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        // Open file
    +        $this->fileHandle = fopen($pFilename, 'r');
    +        if ($this->fileHandle === false) {
    +            throw new Exception('Could not open file ' . $pFilename . ' for reading.');
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Csv.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Csv.php
    new file mode 100644
    index 00000000000..25f244c1181
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Csv.php
    @@ -0,0 +1,564 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class Csv extends BaseReader
    +{
    +    /**
    +     * Input encoding.
    +     *
    +     * @var string
    +     */
    +    private $inputEncoding = 'UTF-8';
    +
    +    /**
    +     * Delimiter.
    +     *
    +     * @var string
    +     */
    +    private $delimiter;
    +
    +    /**
    +     * Enclosure.
    +     *
    +     * @var string
    +     */
    +    private $enclosure = '"';
    +
    +    /**
    +     * Sheet index to read.
    +     *
    +     * @var int
    +     */
    +    private $sheetIndex = 0;
    +
    +    /**
    +     * Load rows contiguously.
    +     *
    +     * @var bool
    +     */
    +    private $contiguous = false;
    +
    +    /**
    +     * Row counter for loading rows contiguously.
    +     *
    +     * @var int
    +     */
    +    private $contiguousRow = -1;
    +
    +    /**
    +     * The character that can escape the enclosure.
    +     *
    +     * @var string
    +     */
    +    private $escapeCharacter = '\\';
    +
    +    /**
    +     * Create a new CSV Reader instance.
    +     */
    +    public function __construct()
    +    {
    +        $this->readFilter = new DefaultReadFilter();
    +    }
    +
    +    /**
    +     * Set input encoding.
    +     *
    +     * @param string $pValue Input encoding, eg: 'UTF-8'
    +     *
    +     * @return Csv
    +     */
    +    public function setInputEncoding($pValue)
    +    {
    +        $this->inputEncoding = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get input encoding.
    +     *
    +     * @return string
    +     */
    +    public function getInputEncoding()
    +    {
    +        return $this->inputEncoding;
    +    }
    +
    +    /**
    +     * Move filepointer past any BOM marker.
    +     */
    +    protected function skipBOM()
    +    {
    +        rewind($this->fileHandle);
    +
    +        switch ($this->inputEncoding) {
    +            case 'UTF-8':
    +                fgets($this->fileHandle, 4) == "\xEF\xBB\xBF" ?
    +                    fseek($this->fileHandle, 3) : fseek($this->fileHandle, 0);
    +
    +                break;
    +            case 'UTF-16LE':
    +                fgets($this->fileHandle, 3) == "\xFF\xFE" ?
    +                    fseek($this->fileHandle, 2) : fseek($this->fileHandle, 0);
    +
    +                break;
    +            case 'UTF-16BE':
    +                fgets($this->fileHandle, 3) == "\xFE\xFF" ?
    +                    fseek($this->fileHandle, 2) : fseek($this->fileHandle, 0);
    +
    +                break;
    +            case 'UTF-32LE':
    +                fgets($this->fileHandle, 5) == "\xFF\xFE\x00\x00" ?
    +                    fseek($this->fileHandle, 4) : fseek($this->fileHandle, 0);
    +
    +                break;
    +            case 'UTF-32BE':
    +                fgets($this->fileHandle, 5) == "\x00\x00\xFE\xFF" ?
    +                    fseek($this->fileHandle, 4) : fseek($this->fileHandle, 0);
    +
    +                break;
    +            default:
    +                break;
    +        }
    +    }
    +
    +    /**
    +     * Identify any separator that is explicitly set in the file.
    +     */
    +    protected function checkSeparator()
    +    {
    +        $line = fgets($this->fileHandle);
    +        if ($line === false) {
    +            return;
    +        }
    +
    +        if ((strlen(trim($line, "\r\n")) == 5) && (stripos($line, 'sep=') === 0)) {
    +            $this->delimiter = substr($line, 4, 1);
    +
    +            return;
    +        }
    +
    +        return $this->skipBOM();
    +    }
    +
    +    /**
    +     * Infer the separator if it isn't explicitly set in the file or specified by the user.
    +     */
    +    protected function inferSeparator()
    +    {
    +        if ($this->delimiter !== null) {
    +            return;
    +        }
    +
    +        $potentialDelimiters = [',', ';', "\t", '|', ':', ' '];
    +        $counts = [];
    +        foreach ($potentialDelimiters as $delimiter) {
    +            $counts[$delimiter] = [];
    +        }
    +
    +        // Count how many times each of the potential delimiters appears in each line
    +        $numberLines = 0;
    +        while (($line = $this->getNextLine()) !== false && (++$numberLines < 1000)) {
    +            $countLine = [];
    +            for ($i = strlen($line) - 1; $i >= 0; --$i) {
    +                $char = $line[$i];
    +                if (isset($counts[$char])) {
    +                    if (!isset($countLine[$char])) {
    +                        $countLine[$char] = 0;
    +                    }
    +                    ++$countLine[$char];
    +                }
    +            }
    +            foreach ($potentialDelimiters as $delimiter) {
    +                $counts[$delimiter][] = isset($countLine[$delimiter])
    +                    ? $countLine[$delimiter]
    +                    : 0;
    +            }
    +        }
    +
    +        // If number of lines is 0, nothing to infer : fall back to the default
    +        if ($numberLines === 0) {
    +            $this->delimiter = reset($potentialDelimiters);
    +
    +            return $this->skipBOM();
    +        }
    +
    +        // Calculate the mean square deviations for each delimiter (ignoring delimiters that haven't been found consistently)
    +        $meanSquareDeviations = [];
    +        $middleIdx = floor(($numberLines - 1) / 2);
    +
    +        foreach ($potentialDelimiters as $delimiter) {
    +            $series = $counts[$delimiter];
    +            sort($series);
    +
    +            $median = ($numberLines % 2)
    +                ? $series[$middleIdx]
    +                : ($series[$middleIdx] + $series[$middleIdx + 1]) / 2;
    +
    +            if ($median === 0) {
    +                continue;
    +            }
    +
    +            $meanSquareDeviations[$delimiter] = array_reduce(
    +                $series,
    +                function ($sum, $value) use ($median) {
    +                    return $sum + pow($value - $median, 2);
    +                }
    +            ) / count($series);
    +        }
    +
    +        // ... and pick the delimiter with the smallest mean square deviation (in case of ties, the order in potentialDelimiters is respected)
    +        $min = INF;
    +        foreach ($potentialDelimiters as $delimiter) {
    +            if (!isset($meanSquareDeviations[$delimiter])) {
    +                continue;
    +            }
    +
    +            if ($meanSquareDeviations[$delimiter] < $min) {
    +                $min = $meanSquareDeviations[$delimiter];
    +                $this->delimiter = $delimiter;
    +            }
    +        }
    +
    +        // If no delimiter could be detected, fall back to the default
    +        if ($this->delimiter === null) {
    +            $this->delimiter = reset($potentialDelimiters);
    +        }
    +
    +        return $this->skipBOM();
    +    }
    +
    +    /**
    +     * Get the next full line from the file.
    +     *
    +     * @param string $line
    +     *
    +     * @return bool|string
    +     */
    +    private function getNextLine($line = '')
    +    {
    +        // Get the next line in the file
    +        $newLine = fgets($this->fileHandle);
    +
    +        // Return false if there is no next line
    +        if ($newLine === false) {
    +            return false;
    +        }
    +
    +        // Add the new line to the line passed in
    +        $line = $line . $newLine;
    +
    +        // Drop everything that is enclosed to avoid counting false positives in enclosures
    +        $enclosure = preg_quote($this->enclosure, '/');
    +        $line = preg_replace('/(' . $enclosure . '.*' . $enclosure . ')/U', '', $line);
    +
    +        // See if we have any enclosures left in the line
    +        $matches = [];
    +        preg_match('/(' . $enclosure . ')/', $line, $matches);
    +
    +        // if we still have an enclosure then we need to read the next line aswell
    +        if (count($matches) > 0) {
    +            $line = $this->getNextLine($line);
    +        }
    +
    +        return $line;
    +    }
    +
    +    /**
    +     * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns).
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return array
    +     */
    +    public function listWorksheetInfo($pFilename)
    +    {
    +        // Open file
    +        if (!$this->canRead($pFilename)) {
    +            throw new Exception($pFilename . ' is an Invalid Spreadsheet file.');
    +        }
    +        $this->openFile($pFilename);
    +        $fileHandle = $this->fileHandle;
    +
    +        // Skip BOM, if any
    +        $this->skipBOM();
    +        $this->checkSeparator();
    +        $this->inferSeparator();
    +
    +        $worksheetInfo = [];
    +        $worksheetInfo[0]['worksheetName'] = 'Worksheet';
    +        $worksheetInfo[0]['lastColumnLetter'] = 'A';
    +        $worksheetInfo[0]['lastColumnIndex'] = 0;
    +        $worksheetInfo[0]['totalRows'] = 0;
    +        $worksheetInfo[0]['totalColumns'] = 0;
    +
    +        // Loop through each line of the file in turn
    +        while (($rowData = fgetcsv($fileHandle, 0, $this->delimiter, $this->enclosure, $this->escapeCharacter)) !== false) {
    +            ++$worksheetInfo[0]['totalRows'];
    +            $worksheetInfo[0]['lastColumnIndex'] = max($worksheetInfo[0]['lastColumnIndex'], count($rowData) - 1);
    +        }
    +
    +        $worksheetInfo[0]['lastColumnLetter'] = Coordinate::stringFromColumnIndex($worksheetInfo[0]['lastColumnIndex'] + 1);
    +        $worksheetInfo[0]['totalColumns'] = $worksheetInfo[0]['lastColumnIndex'] + 1;
    +
    +        // Close file
    +        fclose($fileHandle);
    +
    +        return $worksheetInfo;
    +    }
    +
    +    /**
    +     * Loads Spreadsheet from file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function load($pFilename)
    +    {
    +        // Create new Spreadsheet
    +        $spreadsheet = new Spreadsheet();
    +
    +        // Load into this instance
    +        return $this->loadIntoExisting($pFilename, $spreadsheet);
    +    }
    +
    +    /**
    +     * Loads PhpSpreadsheet from file into PhpSpreadsheet instance.
    +     *
    +     * @param string $pFilename
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function loadIntoExisting($pFilename, Spreadsheet $spreadsheet)
    +    {
    +        $lineEnding = ini_get('auto_detect_line_endings');
    +        ini_set('auto_detect_line_endings', true);
    +
    +        // Open file
    +        if (!$this->canRead($pFilename)) {
    +            throw new Exception($pFilename . ' is an Invalid Spreadsheet file.');
    +        }
    +        $this->openFile($pFilename);
    +        $fileHandle = $this->fileHandle;
    +
    +        // Skip BOM, if any
    +        $this->skipBOM();
    +        $this->checkSeparator();
    +        $this->inferSeparator();
    +
    +        // Create new PhpSpreadsheet object
    +        while ($spreadsheet->getSheetCount() <= $this->sheetIndex) {
    +            $spreadsheet->createSheet();
    +        }
    +        $sheet = $spreadsheet->setActiveSheetIndex($this->sheetIndex);
    +
    +        // Set our starting row based on whether we're in contiguous mode or not
    +        $currentRow = 1;
    +        if ($this->contiguous) {
    +            $currentRow = ($this->contiguousRow == -1) ? $sheet->getHighestRow() : $this->contiguousRow;
    +        }
    +
    +        // Loop through each line of the file in turn
    +        while (($rowData = fgetcsv($fileHandle, 0, $this->delimiter, $this->enclosure, $this->escapeCharacter)) !== false) {
    +            $columnLetter = 'A';
    +            foreach ($rowData as $rowDatum) {
    +                if ($rowDatum != '' && $this->readFilter->readCell($columnLetter, $currentRow)) {
    +                    // Convert encoding if necessary
    +                    if ($this->inputEncoding !== 'UTF-8') {
    +                        $rowDatum = StringHelper::convertEncoding($rowDatum, 'UTF-8', $this->inputEncoding);
    +                    }
    +
    +                    // Set cell value
    +                    $sheet->getCell($columnLetter . $currentRow)->setValue($rowDatum);
    +                }
    +                ++$columnLetter;
    +            }
    +            ++$currentRow;
    +        }
    +
    +        // Close file
    +        fclose($fileHandle);
    +
    +        if ($this->contiguous) {
    +            $this->contiguousRow = $currentRow;
    +        }
    +
    +        ini_set('auto_detect_line_endings', $lineEnding);
    +
    +        // Return
    +        return $spreadsheet;
    +    }
    +
    +    /**
    +     * Get delimiter.
    +     *
    +     * @return string
    +     */
    +    public function getDelimiter()
    +    {
    +        return $this->delimiter;
    +    }
    +
    +    /**
    +     * Set delimiter.
    +     *
    +     * @param string $delimiter Delimiter, eg: ','
    +     *
    +     * @return CSV
    +     */
    +    public function setDelimiter($delimiter)
    +    {
    +        $this->delimiter = $delimiter;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get enclosure.
    +     *
    +     * @return string
    +     */
    +    public function getEnclosure()
    +    {
    +        return $this->enclosure;
    +    }
    +
    +    /**
    +     * Set enclosure.
    +     *
    +     * @param string $enclosure Enclosure, defaults to "
    +     *
    +     * @return CSV
    +     */
    +    public function setEnclosure($enclosure)
    +    {
    +        if ($enclosure == '') {
    +            $enclosure = '"';
    +        }
    +        $this->enclosure = $enclosure;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get sheet index.
    +     *
    +     * @return int
    +     */
    +    public function getSheetIndex()
    +    {
    +        return $this->sheetIndex;
    +    }
    +
    +    /**
    +     * Set sheet index.
    +     *
    +     * @param int $pValue Sheet index
    +     *
    +     * @return CSV
    +     */
    +    public function setSheetIndex($pValue)
    +    {
    +        $this->sheetIndex = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Contiguous.
    +     *
    +     * @param bool $contiguous
    +     *
    +     * @return Csv
    +     */
    +    public function setContiguous($contiguous)
    +    {
    +        $this->contiguous = (bool) $contiguous;
    +        if (!$contiguous) {
    +            $this->contiguousRow = -1;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Contiguous.
    +     *
    +     * @return bool
    +     */
    +    public function getContiguous()
    +    {
    +        return $this->contiguous;
    +    }
    +
    +    /**
    +     * Set escape backslashes.
    +     *
    +     * @param string $escapeCharacter
    +     *
    +     * @return $this
    +     */
    +    public function setEscapeCharacter($escapeCharacter)
    +    {
    +        $this->escapeCharacter = $escapeCharacter;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get escape backslashes.
    +     *
    +     * @return string
    +     */
    +    public function getEscapeCharacter()
    +    {
    +        return $this->escapeCharacter;
    +    }
    +
    +    /**
    +     * Can the current IReader read the file?
    +     *
    +     * @param string $pFilename
    +     *
    +     * @return bool
    +     */
    +    public function canRead($pFilename)
    +    {
    +        // Check if file exists
    +        try {
    +            $this->openFile($pFilename);
    +        } catch (Exception $e) {
    +            return false;
    +        }
    +
    +        fclose($this->fileHandle);
    +
    +        // Trust file extension if any
    +        if (strtolower(pathinfo($pFilename, PATHINFO_EXTENSION)) === 'csv') {
    +            return true;
    +        }
    +
    +        // Attempt to guess mimetype
    +        $type = mime_content_type($pFilename);
    +        $supportedTypes = [
    +            'text/csv',
    +            'text/plain',
    +            'inode/x-empty',
    +        ];
    +
    +        return in_array($type, $supportedTypes, true);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/DefaultReadFilter.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/DefaultReadFilter.php
    new file mode 100644
    index 00000000000..e104186abbb
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/DefaultReadFilter.php
    @@ -0,0 +1,20 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +class DefaultReadFilter implements IReadFilter
    +{
    +    /**
    +     * Should this cell be read?
    +     *
    +     * @param string $column Column address (as a string value like "A", or "IV")
    +     * @param int $row Row number
    +     * @param string $worksheetName Optional worksheet name
    +     *
    +     * @return bool
    +     */
    +    public function readCell($column, $row, $worksheetName = '')
    +    {
    +        return true;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Exception.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Exception.php
    new file mode 100644
    index 00000000000..ddbc9b515be
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Exception.php
    @@ -0,0 +1,9 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Exception extends PhpSpreadsheetException
    +{
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Gnumeric.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Gnumeric.php
    new file mode 100644
    index 00000000000..16f1925a738
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Gnumeric.php
    @@ -0,0 +1,889 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Cell\DataType;
    +use PhpOffice\PhpSpreadsheet\NamedRange;
    +use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner;
    +use PhpOffice\PhpSpreadsheet\ReferenceHelper;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Settings;
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\Alignment;
    +use PhpOffice\PhpSpreadsheet\Style\Border;
    +use PhpOffice\PhpSpreadsheet\Style\Borders;
    +use PhpOffice\PhpSpreadsheet\Style\Fill;
    +use PhpOffice\PhpSpreadsheet\Style\Font;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +use XMLReader;
    +
    +class Gnumeric extends BaseReader
    +{
    +    /**
    +     * Shared Expressions.
    +     *
    +     * @var array
    +     */
    +    private $expressions = [];
    +
    +    private $referenceHelper;
    +
    +    /**
    +     * Create a new Gnumeric.
    +     */
    +    public function __construct()
    +    {
    +        $this->readFilter = new DefaultReadFilter();
    +        $this->referenceHelper = ReferenceHelper::getInstance();
    +        $this->securityScanner = XmlScanner::getInstance($this);
    +    }
    +
    +    /**
    +     * Can the current IReader read the file?
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return bool
    +     */
    +    public function canRead($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        // Check if gzlib functions are available
    +        if (!function_exists('gzread')) {
    +            throw new Exception('gzlib library is not enabled');
    +        }
    +
    +        // Read signature data (first 3 bytes)
    +        $fh = fopen($pFilename, 'r');
    +        $data = fread($fh, 2);
    +        fclose($fh);
    +
    +        return $data == chr(0x1F) . chr(0x8B);
    +    }
    +
    +    /**
    +     * Reads names of the worksheets from a file, without parsing the whole file to a Spreadsheet object.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @return array
    +     */
    +    public function listWorksheetNames($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $xml = new XMLReader();
    +        $xml->xml($this->securityScanner->scanFile('compress.zlib://' . realpath($pFilename)), null, Settings::getLibXmlLoaderOptions());
    +        $xml->setParserProperty(2, true);
    +
    +        $worksheetNames = [];
    +        while ($xml->read()) {
    +            if ($xml->name == 'gnm:SheetName' && $xml->nodeType == XMLReader::ELEMENT) {
    +                $xml->read(); //    Move onto the value node
    +                $worksheetNames[] = (string) $xml->value;
    +            } elseif ($xml->name == 'gnm:Sheets') {
    +                //    break out of the loop once we've got our sheet names rather than parse the entire file
    +                break;
    +            }
    +        }
    +
    +        return $worksheetNames;
    +    }
    +
    +    /**
    +     * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns).
    +     *
    +     * @param string $pFilename
    +     *
    +     * @return array
    +     */
    +    public function listWorksheetInfo($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $xml = new XMLReader();
    +        $xml->xml($this->securityScanner->scanFile('compress.zlib://' . realpath($pFilename)), null, Settings::getLibXmlLoaderOptions());
    +        $xml->setParserProperty(2, true);
    +
    +        $worksheetInfo = [];
    +        while ($xml->read()) {
    +            if ($xml->name == 'gnm:Sheet' && $xml->nodeType == XMLReader::ELEMENT) {
    +                $tmpInfo = [
    +                    'worksheetName' => '',
    +                    'lastColumnLetter' => 'A',
    +                    'lastColumnIndex' => 0,
    +                    'totalRows' => 0,
    +                    'totalColumns' => 0,
    +                ];
    +
    +                while ($xml->read()) {
    +                    if ($xml->name == 'gnm:Name' && $xml->nodeType == XMLReader::ELEMENT) {
    +                        $xml->read(); //    Move onto the value node
    +                        $tmpInfo['worksheetName'] = (string) $xml->value;
    +                    } elseif ($xml->name == 'gnm:MaxCol' && $xml->nodeType == XMLReader::ELEMENT) {
    +                        $xml->read(); //    Move onto the value node
    +                        $tmpInfo['lastColumnIndex'] = (int) $xml->value;
    +                        $tmpInfo['totalColumns'] = (int) $xml->value + 1;
    +                    } elseif ($xml->name == 'gnm:MaxRow' && $xml->nodeType == XMLReader::ELEMENT) {
    +                        $xml->read(); //    Move onto the value node
    +                        $tmpInfo['totalRows'] = (int) $xml->value + 1;
    +
    +                        break;
    +                    }
    +                }
    +                $tmpInfo['lastColumnLetter'] = Coordinate::stringFromColumnIndex($tmpInfo['lastColumnIndex'] + 1);
    +                $worksheetInfo[] = $tmpInfo;
    +            }
    +        }
    +
    +        return $worksheetInfo;
    +    }
    +
    +    /**
    +     * @param string $filename
    +     *
    +     * @return string
    +     */
    +    private function gzfileGetContents($filename)
    +    {
    +        $file = @gzopen($filename, 'rb');
    +        $data = '';
    +        if ($file !== false) {
    +            while (!gzeof($file)) {
    +                $data .= gzread($file, 1024);
    +            }
    +            gzclose($file);
    +        }
    +
    +        return $data;
    +    }
    +
    +    /**
    +     * Loads Spreadsheet from file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function load($pFilename)
    +    {
    +        // Create new Spreadsheet
    +        $spreadsheet = new Spreadsheet();
    +
    +        // Load into this instance
    +        return $this->loadIntoExisting($pFilename, $spreadsheet);
    +    }
    +
    +    /**
    +     * Loads from file into Spreadsheet instance.
    +     *
    +     * @param string $pFilename
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function loadIntoExisting($pFilename, Spreadsheet $spreadsheet)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $gFileData = $this->gzfileGetContents($pFilename);
    +
    +        $xml = simplexml_load_string($this->securityScanner->scan($gFileData), 'SimpleXMLElement', Settings::getLibXmlLoaderOptions());
    +        $namespacesMeta = $xml->getNamespaces(true);
    +
    +        $gnmXML = $xml->children($namespacesMeta['gnm']);
    +
    +        $docProps = $spreadsheet->getProperties();
    +        //    Document Properties are held differently, depending on the version of Gnumeric
    +        if (isset($namespacesMeta['office'])) {
    +            $officeXML = $xml->children($namespacesMeta['office']);
    +            $officeDocXML = $officeXML->{'document-meta'};
    +            $officeDocMetaXML = $officeDocXML->meta;
    +
    +            foreach ($officeDocMetaXML as $officePropertyData) {
    +                $officePropertyDC = [];
    +                if (isset($namespacesMeta['dc'])) {
    +                    $officePropertyDC = $officePropertyData->children($namespacesMeta['dc']);
    +                }
    +                foreach ($officePropertyDC as $propertyName => $propertyValue) {
    +                    $propertyValue = (string) $propertyValue;
    +                    switch ($propertyName) {
    +                        case 'title':
    +                            $docProps->setTitle(trim($propertyValue));
    +
    +                            break;
    +                        case 'subject':
    +                            $docProps->setSubject(trim($propertyValue));
    +
    +                            break;
    +                        case 'creator':
    +                            $docProps->setCreator(trim($propertyValue));
    +                            $docProps->setLastModifiedBy(trim($propertyValue));
    +
    +                            break;
    +                        case 'date':
    +                            $creationDate = strtotime(trim($propertyValue));
    +                            $docProps->setCreated($creationDate);
    +                            $docProps->setModified($creationDate);
    +
    +                            break;
    +                        case 'description':
    +                            $docProps->setDescription(trim($propertyValue));
    +
    +                            break;
    +                    }
    +                }
    +                $officePropertyMeta = [];
    +                if (isset($namespacesMeta['meta'])) {
    +                    $officePropertyMeta = $officePropertyData->children($namespacesMeta['meta']);
    +                }
    +                foreach ($officePropertyMeta as $propertyName => $propertyValue) {
    +                    $attributes = $propertyValue->attributes($namespacesMeta['meta']);
    +                    $propertyValue = (string) $propertyValue;
    +                    switch ($propertyName) {
    +                        case 'keyword':
    +                            $docProps->setKeywords(trim($propertyValue));
    +
    +                            break;
    +                        case 'initial-creator':
    +                            $docProps->setCreator(trim($propertyValue));
    +                            $docProps->setLastModifiedBy(trim($propertyValue));
    +
    +                            break;
    +                        case 'creation-date':
    +                            $creationDate = strtotime(trim($propertyValue));
    +                            $docProps->setCreated($creationDate);
    +                            $docProps->setModified($creationDate);
    +
    +                            break;
    +                        case 'user-defined':
    +                            list(, $attrName) = explode(':', $attributes['name']);
    +                            switch ($attrName) {
    +                                case 'publisher':
    +                                    $docProps->setCompany(trim($propertyValue));
    +
    +                                    break;
    +                                case 'category':
    +                                    $docProps->setCategory(trim($propertyValue));
    +
    +                                    break;
    +                                case 'manager':
    +                                    $docProps->setManager(trim($propertyValue));
    +
    +                                    break;
    +                            }
    +
    +                            break;
    +                    }
    +                }
    +            }
    +        } elseif (isset($gnmXML->Summary)) {
    +            foreach ($gnmXML->Summary->Item as $summaryItem) {
    +                $propertyName = $summaryItem->name;
    +                $propertyValue = $summaryItem->{'val-string'};
    +                switch ($propertyName) {
    +                    case 'title':
    +                        $docProps->setTitle(trim($propertyValue));
    +
    +                        break;
    +                    case 'comments':
    +                        $docProps->setDescription(trim($propertyValue));
    +
    +                        break;
    +                    case 'keywords':
    +                        $docProps->setKeywords(trim($propertyValue));
    +
    +                        break;
    +                    case 'category':
    +                        $docProps->setCategory(trim($propertyValue));
    +
    +                        break;
    +                    case 'manager':
    +                        $docProps->setManager(trim($propertyValue));
    +
    +                        break;
    +                    case 'author':
    +                        $docProps->setCreator(trim($propertyValue));
    +                        $docProps->setLastModifiedBy(trim($propertyValue));
    +
    +                        break;
    +                    case 'company':
    +                        $docProps->setCompany(trim($propertyValue));
    +
    +                        break;
    +                }
    +            }
    +        }
    +
    +        $worksheetID = 0;
    +        foreach ($gnmXML->Sheets->Sheet as $sheet) {
    +            $worksheetName = (string) $sheet->Name;
    +            if ((isset($this->loadSheetsOnly)) && (!in_array($worksheetName, $this->loadSheetsOnly))) {
    +                continue;
    +            }
    +
    +            $maxRow = $maxCol = 0;
    +
    +            // Create new Worksheet
    +            $spreadsheet->createSheet();
    +            $spreadsheet->setActiveSheetIndex($worksheetID);
    +            //    Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in formula
    +            //        cells... during the load, all formulae should be correct, and we're simply bringing the worksheet
    +            //        name in line with the formula, not the reverse
    +            $spreadsheet->getActiveSheet()->setTitle($worksheetName, false, false);
    +
    +            if ((!$this->readDataOnly) && (isset($sheet->PrintInformation))) {
    +                if (isset($sheet->PrintInformation->Margins)) {
    +                    foreach ($sheet->PrintInformation->Margins->children('gnm', true) as $key => $margin) {
    +                        $marginAttributes = $margin->attributes();
    +                        $marginSize = 72 / 100; //    Default
    +                        switch ($marginAttributes['PrefUnit']) {
    +                            case 'mm':
    +                                $marginSize = (int) ($marginAttributes['Points']) / 100;
    +
    +                                break;
    +                        }
    +                        switch ($key) {
    +                            case 'top':
    +                                $spreadsheet->getActiveSheet()->getPageMargins()->setTop($marginSize);
    +
    +                                break;
    +                            case 'bottom':
    +                                $spreadsheet->getActiveSheet()->getPageMargins()->setBottom($marginSize);
    +
    +                                break;
    +                            case 'left':
    +                                $spreadsheet->getActiveSheet()->getPageMargins()->setLeft($marginSize);
    +
    +                                break;
    +                            case 'right':
    +                                $spreadsheet->getActiveSheet()->getPageMargins()->setRight($marginSize);
    +
    +                                break;
    +                            case 'header':
    +                                $spreadsheet->getActiveSheet()->getPageMargins()->setHeader($marginSize);
    +
    +                                break;
    +                            case 'footer':
    +                                $spreadsheet->getActiveSheet()->getPageMargins()->setFooter($marginSize);
    +
    +                                break;
    +                        }
    +                    }
    +                }
    +            }
    +
    +            foreach ($sheet->Cells->Cell as $cell) {
    +                $cellAttributes = $cell->attributes();
    +                $row = (int) $cellAttributes->Row + 1;
    +                $column = (int) $cellAttributes->Col;
    +
    +                if ($row > $maxRow) {
    +                    $maxRow = $row;
    +                }
    +                if ($column > $maxCol) {
    +                    $maxCol = $column;
    +                }
    +
    +                $column = Coordinate::stringFromColumnIndex($column + 1);
    +
    +                // Read cell?
    +                if ($this->getReadFilter() !== null) {
    +                    if (!$this->getReadFilter()->readCell($column, $row, $worksheetName)) {
    +                        continue;
    +                    }
    +                }
    +
    +                $ValueType = $cellAttributes->ValueType;
    +                $ExprID = (string) $cellAttributes->ExprID;
    +                $type = DataType::TYPE_FORMULA;
    +                if ($ExprID > '') {
    +                    if (((string) $cell) > '') {
    +                        $this->expressions[$ExprID] = [
    +                            'column' => $cellAttributes->Col,
    +                            'row' => $cellAttributes->Row,
    +                            'formula' => (string) $cell,
    +                        ];
    +                    } else {
    +                        $expression = $this->expressions[$ExprID];
    +
    +                        $cell = $this->referenceHelper->updateFormulaReferences(
    +                            $expression['formula'],
    +                            'A1',
    +                            $cellAttributes->Col - $expression['column'],
    +                            $cellAttributes->Row - $expression['row'],
    +                            $worksheetName
    +                        );
    +                    }
    +                    $type = DataType::TYPE_FORMULA;
    +                } else {
    +                    switch ($ValueType) {
    +                        case '10':        //    NULL
    +                            $type = DataType::TYPE_NULL;
    +
    +                            break;
    +                        case '20':        //    Boolean
    +                            $type = DataType::TYPE_BOOL;
    +                            $cell = $cell == 'TRUE';
    +
    +                            break;
    +                        case '30':        //    Integer
    +                            $cell = (int) $cell;
    +                            // Excel 2007+ doesn't differentiate between integer and float, so set the value and dropthru to the next (numeric) case
    +                            // no break
    +                        case '40':        //    Float
    +                            $type = DataType::TYPE_NUMERIC;
    +
    +                            break;
    +                        case '50':        //    Error
    +                            $type = DataType::TYPE_ERROR;
    +
    +                            break;
    +                        case '60':        //    String
    +                            $type = DataType::TYPE_STRING;
    +
    +                            break;
    +                        case '70':        //    Cell Range
    +                        case '80':        //    Array
    +                    }
    +                }
    +                $spreadsheet->getActiveSheet()->getCell($column . $row)->setValueExplicit($cell, $type);
    +            }
    +
    +            if ((!$this->readDataOnly) && (isset($sheet->Objects))) {
    +                foreach ($sheet->Objects->children('gnm', true) as $key => $comment) {
    +                    $commentAttributes = $comment->attributes();
    +                    //    Only comment objects are handled at the moment
    +                    if ($commentAttributes->Text) {
    +                        $spreadsheet->getActiveSheet()->getComment((string) $commentAttributes->ObjectBound)->setAuthor((string) $commentAttributes->Author)->setText($this->parseRichText((string) $commentAttributes->Text));
    +                    }
    +                }
    +            }
    +            foreach ($sheet->Styles->StyleRegion as $styleRegion) {
    +                $styleAttributes = $styleRegion->attributes();
    +                if (($styleAttributes['startRow'] <= $maxRow) &&
    +                    ($styleAttributes['startCol'] <= $maxCol)) {
    +                    $startColumn = Coordinate::stringFromColumnIndex((int) $styleAttributes['startCol'] + 1);
    +                    $startRow = $styleAttributes['startRow'] + 1;
    +
    +                    $endColumn = ($styleAttributes['endCol'] > $maxCol) ? $maxCol : (int) $styleAttributes['endCol'];
    +                    $endColumn = Coordinate::stringFromColumnIndex($endColumn + 1);
    +                    $endRow = ($styleAttributes['endRow'] > $maxRow) ? $maxRow : $styleAttributes['endRow'];
    +                    $endRow += 1;
    +                    $cellRange = $startColumn . $startRow . ':' . $endColumn . $endRow;
    +
    +                    $styleAttributes = $styleRegion->Style->attributes();
    +
    +                    //    We still set the number format mask for date/time values, even if readDataOnly is true
    +                    if ((!$this->readDataOnly) ||
    +                        (Date::isDateTimeFormatCode((string) $styleAttributes['Format']))) {
    +                        $styleArray = [];
    +                        $styleArray['numberFormat']['formatCode'] = (string) $styleAttributes['Format'];
    +                        //    If readDataOnly is false, we set all formatting information
    +                        if (!$this->readDataOnly) {
    +                            switch ($styleAttributes['HAlign']) {
    +                                case '1':
    +                                    $styleArray['alignment']['horizontal'] = Alignment::HORIZONTAL_GENERAL;
    +
    +                                    break;
    +                                case '2':
    +                                    $styleArray['alignment']['horizontal'] = Alignment::HORIZONTAL_LEFT;
    +
    +                                    break;
    +                                case '4':
    +                                    $styleArray['alignment']['horizontal'] = Alignment::HORIZONTAL_RIGHT;
    +
    +                                    break;
    +                                case '8':
    +                                    $styleArray['alignment']['horizontal'] = Alignment::HORIZONTAL_CENTER;
    +
    +                                    break;
    +                                case '16':
    +                                case '64':
    +                                    $styleArray['alignment']['horizontal'] = Alignment::HORIZONTAL_CENTER_CONTINUOUS;
    +
    +                                    break;
    +                                case '32':
    +                                    $styleArray['alignment']['horizontal'] = Alignment::HORIZONTAL_JUSTIFY;
    +
    +                                    break;
    +                            }
    +
    +                            switch ($styleAttributes['VAlign']) {
    +                                case '1':
    +                                    $styleArray['alignment']['vertical'] = Alignment::VERTICAL_TOP;
    +
    +                                    break;
    +                                case '2':
    +                                    $styleArray['alignment']['vertical'] = Alignment::VERTICAL_BOTTOM;
    +
    +                                    break;
    +                                case '4':
    +                                    $styleArray['alignment']['vertical'] = Alignment::VERTICAL_CENTER;
    +
    +                                    break;
    +                                case '8':
    +                                    $styleArray['alignment']['vertical'] = Alignment::VERTICAL_JUSTIFY;
    +
    +                                    break;
    +                            }
    +
    +                            $styleArray['alignment']['wrapText'] = $styleAttributes['WrapText'] == '1';
    +                            $styleArray['alignment']['shrinkToFit'] = $styleAttributes['ShrinkToFit'] == '1';
    +                            $styleArray['alignment']['indent'] = ((int) ($styleAttributes['Indent']) > 0) ? $styleAttributes['indent'] : 0;
    +
    +                            $RGB = self::parseGnumericColour($styleAttributes['Fore']);
    +                            $styleArray['font']['color']['rgb'] = $RGB;
    +                            $RGB = self::parseGnumericColour($styleAttributes['Back']);
    +                            $shade = $styleAttributes['Shade'];
    +                            if (($RGB != '000000') || ($shade != '0')) {
    +                                $styleArray['fill']['color']['rgb'] = $styleArray['fill']['startColor']['rgb'] = $RGB;
    +                                $RGB2 = self::parseGnumericColour($styleAttributes['PatternColor']);
    +                                $styleArray['fill']['endColor']['rgb'] = $RGB2;
    +                                switch ($shade) {
    +                                    case '1':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_SOLID;
    +
    +                                        break;
    +                                    case '2':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_GRADIENT_LINEAR;
    +
    +                                        break;
    +                                    case '3':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_GRADIENT_PATH;
    +
    +                                        break;
    +                                    case '4':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_DARKDOWN;
    +
    +                                        break;
    +                                    case '5':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_DARKGRAY;
    +
    +                                        break;
    +                                    case '6':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_DARKGRID;
    +
    +                                        break;
    +                                    case '7':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_DARKHORIZONTAL;
    +
    +                                        break;
    +                                    case '8':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_DARKTRELLIS;
    +
    +                                        break;
    +                                    case '9':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_DARKUP;
    +
    +                                        break;
    +                                    case '10':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_DARKVERTICAL;
    +
    +                                        break;
    +                                    case '11':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_GRAY0625;
    +
    +                                        break;
    +                                    case '12':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_GRAY125;
    +
    +                                        break;
    +                                    case '13':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_LIGHTDOWN;
    +
    +                                        break;
    +                                    case '14':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_LIGHTGRAY;
    +
    +                                        break;
    +                                    case '15':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_LIGHTGRID;
    +
    +                                        break;
    +                                    case '16':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_LIGHTHORIZONTAL;
    +
    +                                        break;
    +                                    case '17':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_LIGHTTRELLIS;
    +
    +                                        break;
    +                                    case '18':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_LIGHTUP;
    +
    +                                        break;
    +                                    case '19':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_LIGHTVERTICAL;
    +
    +                                        break;
    +                                    case '20':
    +                                        $styleArray['fill']['fillType'] = Fill::FILL_PATTERN_MEDIUMGRAY;
    +
    +                                        break;
    +                                }
    +                            }
    +
    +                            $fontAttributes = $styleRegion->Style->Font->attributes();
    +                            $styleArray['font']['name'] = (string) $styleRegion->Style->Font;
    +                            $styleArray['font']['size'] = (int) ($fontAttributes['Unit']);
    +                            $styleArray['font']['bold'] = $fontAttributes['Bold'] == '1';
    +                            $styleArray['font']['italic'] = $fontAttributes['Italic'] == '1';
    +                            $styleArray['font']['strikethrough'] = $fontAttributes['StrikeThrough'] == '1';
    +                            switch ($fontAttributes['Underline']) {
    +                                case '1':
    +                                    $styleArray['font']['underline'] = Font::UNDERLINE_SINGLE;
    +
    +                                    break;
    +                                case '2':
    +                                    $styleArray['font']['underline'] = Font::UNDERLINE_DOUBLE;
    +
    +                                    break;
    +                                case '3':
    +                                    $styleArray['font']['underline'] = Font::UNDERLINE_SINGLEACCOUNTING;
    +
    +                                    break;
    +                                case '4':
    +                                    $styleArray['font']['underline'] = Font::UNDERLINE_DOUBLEACCOUNTING;
    +
    +                                    break;
    +                                default:
    +                                    $styleArray['font']['underline'] = Font::UNDERLINE_NONE;
    +
    +                                    break;
    +                            }
    +                            switch ($fontAttributes['Script']) {
    +                                case '1':
    +                                    $styleArray['font']['superscript'] = true;
    +
    +                                    break;
    +                                case '-1':
    +                                    $styleArray['font']['subscript'] = true;
    +
    +                                    break;
    +                            }
    +
    +                            if (isset($styleRegion->Style->StyleBorder)) {
    +                                if (isset($styleRegion->Style->StyleBorder->Top)) {
    +                                    $styleArray['borders']['top'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Top->attributes());
    +                                }
    +                                if (isset($styleRegion->Style->StyleBorder->Bottom)) {
    +                                    $styleArray['borders']['bottom'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Bottom->attributes());
    +                                }
    +                                if (isset($styleRegion->Style->StyleBorder->Left)) {
    +                                    $styleArray['borders']['left'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Left->attributes());
    +                                }
    +                                if (isset($styleRegion->Style->StyleBorder->Right)) {
    +                                    $styleArray['borders']['right'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Right->attributes());
    +                                }
    +                                if ((isset($styleRegion->Style->StyleBorder->Diagonal)) && (isset($styleRegion->Style->StyleBorder->{'Rev-Diagonal'}))) {
    +                                    $styleArray['borders']['diagonal'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Diagonal->attributes());
    +                                    $styleArray['borders']['diagonalDirection'] = Borders::DIAGONAL_BOTH;
    +                                } elseif (isset($styleRegion->Style->StyleBorder->Diagonal)) {
    +                                    $styleArray['borders']['diagonal'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Diagonal->attributes());
    +                                    $styleArray['borders']['diagonalDirection'] = Borders::DIAGONAL_UP;
    +                                } elseif (isset($styleRegion->Style->StyleBorder->{'Rev-Diagonal'})) {
    +                                    $styleArray['borders']['diagonal'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->{'Rev-Diagonal'}->attributes());
    +                                    $styleArray['borders']['diagonalDirection'] = Borders::DIAGONAL_DOWN;
    +                                }
    +                            }
    +                            if (isset($styleRegion->Style->HyperLink)) {
    +                                //    TO DO
    +                                $hyperlink = $styleRegion->Style->HyperLink->attributes();
    +                            }
    +                        }
    +                        $spreadsheet->getActiveSheet()->getStyle($cellRange)->applyFromArray($styleArray);
    +                    }
    +                }
    +            }
    +
    +            if ((!$this->readDataOnly) && (isset($sheet->Cols))) {
    +                //    Column Widths
    +                $columnAttributes = $sheet->Cols->attributes();
    +                $defaultWidth = $columnAttributes['DefaultSizePts'] / 5.4;
    +                $c = 0;
    +                foreach ($sheet->Cols->ColInfo as $columnOverride) {
    +                    $columnAttributes = $columnOverride->attributes();
    +                    $column = $columnAttributes['No'];
    +                    $columnWidth = $columnAttributes['Unit'] / 5.4;
    +                    $hidden = (isset($columnAttributes['Hidden'])) && ($columnAttributes['Hidden'] == '1');
    +                    $columnCount = (isset($columnAttributes['Count'])) ? $columnAttributes['Count'] : 1;
    +                    while ($c < $column) {
    +                        $spreadsheet->getActiveSheet()->getColumnDimension(Coordinate::stringFromColumnIndex($c + 1))->setWidth($defaultWidth);
    +                        ++$c;
    +                    }
    +                    while (($c < ($column + $columnCount)) && ($c <= $maxCol)) {
    +                        $spreadsheet->getActiveSheet()->getColumnDimension(Coordinate::stringFromColumnIndex($c + 1))->setWidth($columnWidth);
    +                        if ($hidden) {
    +                            $spreadsheet->getActiveSheet()->getColumnDimension(Coordinate::stringFromColumnIndex($c + 1))->setVisible(false);
    +                        }
    +                        ++$c;
    +                    }
    +                }
    +                while ($c <= $maxCol) {
    +                    $spreadsheet->getActiveSheet()->getColumnDimension(Coordinate::stringFromColumnIndex($c + 1))->setWidth($defaultWidth);
    +                    ++$c;
    +                }
    +            }
    +
    +            if ((!$this->readDataOnly) && (isset($sheet->Rows))) {
    +                //    Row Heights
    +                $rowAttributes = $sheet->Rows->attributes();
    +                $defaultHeight = $rowAttributes['DefaultSizePts'];
    +                $r = 0;
    +
    +                foreach ($sheet->Rows->RowInfo as $rowOverride) {
    +                    $rowAttributes = $rowOverride->attributes();
    +                    $row = $rowAttributes['No'];
    +                    $rowHeight = $rowAttributes['Unit'];
    +                    $hidden = (isset($rowAttributes['Hidden'])) && ($rowAttributes['Hidden'] == '1');
    +                    $rowCount = (isset($rowAttributes['Count'])) ? $rowAttributes['Count'] : 1;
    +                    while ($r < $row) {
    +                        ++$r;
    +                        $spreadsheet->getActiveSheet()->getRowDimension($r)->setRowHeight($defaultHeight);
    +                    }
    +                    while (($r < ($row + $rowCount)) && ($r < $maxRow)) {
    +                        ++$r;
    +                        $spreadsheet->getActiveSheet()->getRowDimension($r)->setRowHeight($rowHeight);
    +                        if ($hidden) {
    +                            $spreadsheet->getActiveSheet()->getRowDimension($r)->setVisible(false);
    +                        }
    +                    }
    +                }
    +                while ($r < $maxRow) {
    +                    ++$r;
    +                    $spreadsheet->getActiveSheet()->getRowDimension($r)->setRowHeight($defaultHeight);
    +                }
    +            }
    +
    +            //    Handle Merged Cells in this worksheet
    +            if (isset($sheet->MergedRegions)) {
    +                foreach ($sheet->MergedRegions->Merge as $mergeCells) {
    +                    if (strpos($mergeCells, ':') !== false) {
    +                        $spreadsheet->getActiveSheet()->mergeCells($mergeCells);
    +                    }
    +                }
    +            }
    +
    +            ++$worksheetID;
    +        }
    +
    +        //    Loop through definedNames (global named ranges)
    +        if (isset($gnmXML->Names)) {
    +            foreach ($gnmXML->Names->Name as $namedRange) {
    +                $name = (string) $namedRange->name;
    +                $range = (string) $namedRange->value;
    +                if (stripos($range, '#REF!') !== false) {
    +                    continue;
    +                }
    +
    +                $range = Worksheet::extractSheetTitle($range, true);
    +                $range[0] = trim($range[0], "'");
    +                if ($worksheet = $spreadsheet->getSheetByName($range[0])) {
    +                    $extractedRange = str_replace('$', '', $range[1]);
    +                    $spreadsheet->addNamedRange(new NamedRange($name, $worksheet, $extractedRange));
    +                }
    +            }
    +        }
    +
    +        // Return
    +        return $spreadsheet;
    +    }
    +
    +    private static function parseBorderAttributes($borderAttributes)
    +    {
    +        $styleArray = [];
    +        if (isset($borderAttributes['Color'])) {
    +            $styleArray['color']['rgb'] = self::parseGnumericColour($borderAttributes['Color']);
    +        }
    +
    +        switch ($borderAttributes['Style']) {
    +            case '0':
    +                $styleArray['borderStyle'] = Border::BORDER_NONE;
    +
    +                break;
    +            case '1':
    +                $styleArray['borderStyle'] = Border::BORDER_THIN;
    +
    +                break;
    +            case '2':
    +                $styleArray['borderStyle'] = Border::BORDER_MEDIUM;
    +
    +                break;
    +            case '3':
    +                $styleArray['borderStyle'] = Border::BORDER_SLANTDASHDOT;
    +
    +                break;
    +            case '4':
    +                $styleArray['borderStyle'] = Border::BORDER_DASHED;
    +
    +                break;
    +            case '5':
    +                $styleArray['borderStyle'] = Border::BORDER_THICK;
    +
    +                break;
    +            case '6':
    +                $styleArray['borderStyle'] = Border::BORDER_DOUBLE;
    +
    +                break;
    +            case '7':
    +                $styleArray['borderStyle'] = Border::BORDER_DOTTED;
    +
    +                break;
    +            case '8':
    +                $styleArray['borderStyle'] = Border::BORDER_MEDIUMDASHED;
    +
    +                break;
    +            case '9':
    +                $styleArray['borderStyle'] = Border::BORDER_DASHDOT;
    +
    +                break;
    +            case '10':
    +                $styleArray['borderStyle'] = Border::BORDER_MEDIUMDASHDOT;
    +
    +                break;
    +            case '11':
    +                $styleArray['borderStyle'] = Border::BORDER_DASHDOTDOT;
    +
    +                break;
    +            case '12':
    +                $styleArray['borderStyle'] = Border::BORDER_MEDIUMDASHDOTDOT;
    +
    +                break;
    +            case '13':
    +                $styleArray['borderStyle'] = Border::BORDER_MEDIUMDASHDOTDOT;
    +
    +                break;
    +        }
    +
    +        return $styleArray;
    +    }
    +
    +    private function parseRichText($is)
    +    {
    +        $value = new RichText();
    +        $value->createText($is);
    +
    +        return $value;
    +    }
    +
    +    private static function parseGnumericColour($gnmColour)
    +    {
    +        list($gnmR, $gnmG, $gnmB) = explode(':', $gnmColour);
    +        $gnmR = substr(str_pad($gnmR, 4, '0', STR_PAD_RIGHT), 0, 2);
    +        $gnmG = substr(str_pad($gnmG, 4, '0', STR_PAD_RIGHT), 0, 2);
    +        $gnmB = substr(str_pad($gnmB, 4, '0', STR_PAD_RIGHT), 0, 2);
    +
    +        return $gnmR . $gnmG . $gnmB;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Html.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Html.php
    new file mode 100644
    index 00000000000..d9f25a3166d
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Html.php
    @@ -0,0 +1,643 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +use DOMDocument;
    +use DOMElement;
    +use DOMNode;
    +use DOMText;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\Border;
    +use PhpOffice\PhpSpreadsheet\Style\Color;
    +use PhpOffice\PhpSpreadsheet\Style\Fill;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +/** PhpSpreadsheet root directory */
    +class Html extends BaseReader
    +{
    +    /**
    +     * Sample size to read to determine if it's HTML or not.
    +     */
    +    const TEST_SAMPLE_SIZE = 2048;
    +
    +    /**
    +     * Input encoding.
    +     *
    +     * @var string
    +     */
    +    protected $inputEncoding = 'ANSI';
    +
    +    /**
    +     * Sheet index to read.
    +     *
    +     * @var int
    +     */
    +    protected $sheetIndex = 0;
    +
    +    /**
    +     * Formats.
    +     *
    +     * @var array
    +     */
    +    protected $formats = [
    +        'h1' => [
    +            'font' => [
    +                'bold' => true,
    +                'size' => 24,
    +            ],
    +        ], //    Bold, 24pt
    +        'h2' => [
    +            'font' => [
    +                'bold' => true,
    +                'size' => 18,
    +            ],
    +        ], //    Bold, 18pt
    +        'h3' => [
    +            'font' => [
    +                'bold' => true,
    +                'size' => 13.5,
    +            ],
    +        ], //    Bold, 13.5pt
    +        'h4' => [
    +            'font' => [
    +                'bold' => true,
    +                'size' => 12,
    +            ],
    +        ], //    Bold, 12pt
    +        'h5' => [
    +            'font' => [
    +                'bold' => true,
    +                'size' => 10,
    +            ],
    +        ], //    Bold, 10pt
    +        'h6' => [
    +            'font' => [
    +                'bold' => true,
    +                'size' => 7.5,
    +            ],
    +        ], //    Bold, 7.5pt
    +        'a' => [
    +            'font' => [
    +                'underline' => true,
    +                'color' => [
    +                    'argb' => Color::COLOR_BLUE,
    +                ],
    +            ],
    +        ], //    Blue underlined
    +        'hr' => [
    +            'borders' => [
    +                'bottom' => [
    +                    'borderStyle' => Border::BORDER_THIN,
    +                    'color' => [
    +                        Color::COLOR_BLACK,
    +                    ],
    +                ],
    +            ],
    +        ], //    Bottom border
    +    ];
    +
    +    protected $rowspan = [];
    +
    +    /**
    +     * Create a new HTML Reader instance.
    +     */
    +    public function __construct()
    +    {
    +        $this->readFilter = new DefaultReadFilter();
    +        $this->securityScanner = XmlScanner::getInstance($this);
    +    }
    +
    +    /**
    +     * Validate that the current file is an HTML file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @return bool
    +     */
    +    public function canRead($pFilename)
    +    {
    +        // Check if file exists
    +        try {
    +            $this->openFile($pFilename);
    +        } catch (Exception $e) {
    +            return false;
    +        }
    +
    +        $beginning = $this->readBeginning();
    +        $startWithTag = self::startsWithTag($beginning);
    +        $containsTags = self::containsTags($beginning);
    +        $endsWithTag = self::endsWithTag($this->readEnding());
    +
    +        fclose($this->fileHandle);
    +
    +        return $startWithTag && $containsTags && $endsWithTag;
    +    }
    +
    +    private function readBeginning()
    +    {
    +        fseek($this->fileHandle, 0);
    +
    +        return fread($this->fileHandle, self::TEST_SAMPLE_SIZE);
    +    }
    +
    +    private function readEnding()
    +    {
    +        $meta = stream_get_meta_data($this->fileHandle);
    +        $filename = $meta['uri'];
    +
    +        $size = filesize($filename);
    +        if ($size === 0) {
    +            return '';
    +        }
    +
    +        $blockSize = self::TEST_SAMPLE_SIZE;
    +        if ($size < $blockSize) {
    +            $blockSize = $size;
    +        }
    +
    +        fseek($this->fileHandle, $size - $blockSize);
    +
    +        return fread($this->fileHandle, $blockSize);
    +    }
    +
    +    private static function startsWithTag($data)
    +    {
    +        return '<' === substr(trim($data), 0, 1);
    +    }
    +
    +    private static function endsWithTag($data)
    +    {
    +        return '>' === substr(trim($data), -1, 1);
    +    }
    +
    +    private static function containsTags($data)
    +    {
    +        return strlen($data) !== strlen(strip_tags($data));
    +    }
    +
    +    /**
    +     * Loads Spreadsheet from file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function load($pFilename)
    +    {
    +        // Create new Spreadsheet
    +        $spreadsheet = new Spreadsheet();
    +
    +        // Load into this instance
    +        return $this->loadIntoExisting($pFilename, $spreadsheet);
    +    }
    +
    +    /**
    +     * Set input encoding.
    +     *
    +     * @param string $pValue Input encoding, eg: 'ANSI'
    +     *
    +     * @return Html
    +     */
    +    public function setInputEncoding($pValue)
    +    {
    +        $this->inputEncoding = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get input encoding.
    +     *
    +     * @return string
    +     */
    +    public function getInputEncoding()
    +    {
    +        return $this->inputEncoding;
    +    }
    +
    +    //    Data Array used for testing only, should write to Spreadsheet object on completion of tests
    +    protected $dataArray = [];
    +
    +    protected $tableLevel = 0;
    +
    +    protected $nestedColumn = ['A'];
    +
    +    protected function setTableStartColumn($column)
    +    {
    +        if ($this->tableLevel == 0) {
    +            $column = 'A';
    +        }
    +        ++$this->tableLevel;
    +        $this->nestedColumn[$this->tableLevel] = $column;
    +
    +        return $this->nestedColumn[$this->tableLevel];
    +    }
    +
    +    protected function getTableStartColumn()
    +    {
    +        return $this->nestedColumn[$this->tableLevel];
    +    }
    +
    +    protected function releaseTableStartColumn()
    +    {
    +        --$this->tableLevel;
    +
    +        return array_pop($this->nestedColumn);
    +    }
    +
    +    protected function flushCell(Worksheet $sheet, $column, $row, &$cellContent)
    +    {
    +        if (is_string($cellContent)) {
    +            //    Simple String content
    +            if (trim($cellContent) > '') {
    +                //    Only actually write it if there's content in the string
    +                //    Write to worksheet to be done here...
    +                //    ... we return the cell so we can mess about with styles more easily
    +                $sheet->setCellValue($column . $row, $cellContent);
    +                $this->dataArray[$row][$column] = $cellContent;
    +            }
    +        } else {
    +            //    We have a Rich Text run
    +            //    TODO
    +            $this->dataArray[$row][$column] = 'RICH TEXT: ' . $cellContent;
    +        }
    +        $cellContent = (string) '';
    +    }
    +
    +    /**
    +     * @param DOMNode $element
    +     * @param Worksheet $sheet
    +     * @param int $row
    +     * @param string $column
    +     * @param string $cellContent
    +     */
    +    protected function processDomElement(DOMNode $element, Worksheet $sheet, &$row, &$column, &$cellContent)
    +    {
    +        foreach ($element->childNodes as $child) {
    +            if ($child instanceof DOMText) {
    +                $domText = preg_replace('/\s+/u', ' ', trim($child->nodeValue));
    +                if (is_string($cellContent)) {
    +                    //    simply append the text if the cell content is a plain text string
    +                    $cellContent .= $domText;
    +                }
    +                //    but if we have a rich text run instead, we need to append it correctly
    +                    //    TODO
    +            } elseif ($child instanceof DOMElement) {
    +                $attributeArray = [];
    +                foreach ($child->attributes as $attribute) {
    +                    $attributeArray[$attribute->name] = $attribute->value;
    +                }
    +
    +                switch ($child->nodeName) {
    +                    case 'meta':
    +                        foreach ($attributeArray as $attributeName => $attributeValue) {
    +                            switch ($attributeName) {
    +                                case 'content':
    +                                    //    TODO
    +                                    //    Extract character set, so we can convert to UTF-8 if required
    +                                    break;
    +                            }
    +                        }
    +                        $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +
    +                        break;
    +                    case 'title':
    +                        $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +                        $sheet->setTitle($cellContent, true, false);
    +                        $cellContent = '';
    +
    +                        break;
    +                    case 'span':
    +                    case 'div':
    +                    case 'font':
    +                    case 'i':
    +                    case 'em':
    +                    case 'strong':
    +                    case 'b':
    +                        if (isset($attributeArray['class']) && $attributeArray['class'] === 'comment') {
    +                            $sheet->getComment($column . $row)
    +                                ->getText()
    +                                ->createTextRun($child->textContent);
    +
    +                            break;
    +                        }
    +
    +                        if ($cellContent > '') {
    +                            $cellContent .= ' ';
    +                        }
    +                        $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +                        if ($cellContent > '') {
    +                            $cellContent .= ' ';
    +                        }
    +
    +                        break;
    +                    case 'hr':
    +                        $this->flushCell($sheet, $column, $row, $cellContent);
    +                        ++$row;
    +                        if (isset($this->formats[$child->nodeName])) {
    +                            $sheet->getStyle($column . $row)->applyFromArray($this->formats[$child->nodeName]);
    +                        } else {
    +                            $cellContent = '----------';
    +                            $this->flushCell($sheet, $column, $row, $cellContent);
    +                        }
    +                        ++$row;
    +                        // Add a break after a horizontal rule, simply by allowing the code to dropthru
    +                        // no break
    +                    case 'br':
    +                        if ($this->tableLevel > 0) {
    +                            //    If we're inside a table, replace with a \n
    +                            $cellContent .= "\n";
    +                        } else {
    +                            //    Otherwise flush our existing content and move the row cursor on
    +                            $this->flushCell($sheet, $column, $row, $cellContent);
    +                            ++$row;
    +                        }
    +
    +                        break;
    +                    case 'a':
    +                        foreach ($attributeArray as $attributeName => $attributeValue) {
    +                            switch ($attributeName) {
    +                                case 'href':
    +                                    $sheet->getCell($column . $row)->getHyperlink()->setUrl($attributeValue);
    +                                    if (isset($this->formats[$child->nodeName])) {
    +                                        $sheet->getStyle($column . $row)->applyFromArray($this->formats[$child->nodeName]);
    +                                    }
    +
    +                                    break;
    +                                case 'class':
    +                                    if ($attributeValue === 'comment-indicator') {
    +                                        break; // Ignore - it's just a red square.
    +                                    }
    +                            }
    +                        }
    +                        $cellContent .= ' ';
    +                        $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +
    +                        break;
    +                    case 'h1':
    +                    case 'h2':
    +                    case 'h3':
    +                    case 'h4':
    +                    case 'h5':
    +                    case 'h6':
    +                    case 'ol':
    +                    case 'ul':
    +                    case 'p':
    +                        if ($this->tableLevel > 0) {
    +                            //    If we're inside a table, replace with a \n
    +                            $cellContent .= "\n";
    +                            $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +                        } else {
    +                            if ($cellContent > '') {
    +                                $this->flushCell($sheet, $column, $row, $cellContent);
    +                                ++$row;
    +                            }
    +                            $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +                            $this->flushCell($sheet, $column, $row, $cellContent);
    +
    +                            if (isset($this->formats[$child->nodeName])) {
    +                                $sheet->getStyle($column . $row)->applyFromArray($this->formats[$child->nodeName]);
    +                            }
    +
    +                            ++$row;
    +                            $column = 'A';
    +                        }
    +
    +                        break;
    +                    case 'li':
    +                        if ($this->tableLevel > 0) {
    +                            //    If we're inside a table, replace with a \n
    +                            $cellContent .= "\n";
    +                            $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +                        } else {
    +                            if ($cellContent > '') {
    +                                $this->flushCell($sheet, $column, $row, $cellContent);
    +                            }
    +                            ++$row;
    +                            $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +                            $this->flushCell($sheet, $column, $row, $cellContent);
    +                            $column = 'A';
    +                        }
    +
    +                        break;
    +                    case 'table':
    +                        $this->flushCell($sheet, $column, $row, $cellContent);
    +                        $column = $this->setTableStartColumn($column);
    +                        if ($this->tableLevel > 1) {
    +                            --$row;
    +                        }
    +                        $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +                        $column = $this->releaseTableStartColumn();
    +                        if ($this->tableLevel > 1) {
    +                            ++$column;
    +                        } else {
    +                            ++$row;
    +                        }
    +
    +                        break;
    +                    case 'thead':
    +                    case 'tbody':
    +                        $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +
    +                        break;
    +                    case 'tr':
    +                        $column = $this->getTableStartColumn();
    +                        $cellContent = '';
    +                        $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +                        ++$row;
    +
    +                        break;
    +                    case 'th':
    +                    case 'td':
    +                        $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +
    +                        // apply inline style
    +                        $this->applyInlineStyle($sheet, $row, $column, $attributeArray);
    +
    +                        while (isset($this->rowspan[$column . $row])) {
    +                            ++$column;
    +                        }
    +
    +                        $this->flushCell($sheet, $column, $row, $cellContent);
    +
    +                        if (isset($attributeArray['rowspan'], $attributeArray['colspan'])) {
    +                            //create merging rowspan and colspan
    +                            $columnTo = $column;
    +                            for ($i = 0; $i < $attributeArray['colspan'] - 1; ++$i) {
    +                                ++$columnTo;
    +                            }
    +                            $range = $column . $row . ':' . $columnTo . ($row + $attributeArray['rowspan'] - 1);
    +                            foreach (Coordinate::extractAllCellReferencesInRange($range) as $value) {
    +                                $this->rowspan[$value] = true;
    +                            }
    +                            $sheet->mergeCells($range);
    +                            $column = $columnTo;
    +                        } elseif (isset($attributeArray['rowspan'])) {
    +                            //create merging rowspan
    +                            $range = $column . $row . ':' . $column . ($row + $attributeArray['rowspan'] - 1);
    +                            foreach (Coordinate::extractAllCellReferencesInRange($range) as $value) {
    +                                $this->rowspan[$value] = true;
    +                            }
    +                            $sheet->mergeCells($range);
    +                        } elseif (isset($attributeArray['colspan'])) {
    +                            //create merging colspan
    +                            $columnTo = $column;
    +                            for ($i = 0; $i < $attributeArray['colspan'] - 1; ++$i) {
    +                                ++$columnTo;
    +                            }
    +                            $sheet->mergeCells($column . $row . ':' . $columnTo . $row);
    +                            $column = $columnTo;
    +                        } elseif (isset($attributeArray['bgcolor'])) {
    +                            $sheet->getStyle($column . $row)->applyFromArray(
    +                                [
    +                                    'fill' => [
    +                                        'fillType' => Fill::FILL_SOLID,
    +                                        'color' => ['rgb' => $attributeArray['bgcolor']],
    +                                    ],
    +                                ]
    +                            );
    +                        }
    +                        ++$column;
    +
    +                        break;
    +                    case 'body':
    +                        $row = 1;
    +                        $column = 'A';
    +                        $cellContent = '';
    +                        $this->tableLevel = 0;
    +                        $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +
    +                        break;
    +                    default:
    +                        $this->processDomElement($child, $sheet, $row, $column, $cellContent);
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Loads PhpSpreadsheet from file into PhpSpreadsheet instance.
    +     *
    +     * @param string $pFilename
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function loadIntoExisting($pFilename, Spreadsheet $spreadsheet)
    +    {
    +        // Validate
    +        if (!$this->canRead($pFilename)) {
    +            throw new Exception($pFilename . ' is an Invalid HTML file.');
    +        }
    +
    +        // Create new sheet
    +        while ($spreadsheet->getSheetCount() <= $this->sheetIndex) {
    +            $spreadsheet->createSheet();
    +        }
    +        $spreadsheet->setActiveSheetIndex($this->sheetIndex);
    +
    +        //    Create a new DOM object
    +        $dom = new DOMDocument();
    +        //    Reload the HTML file into the DOM object
    +        $loaded = $dom->loadHTML(mb_convert_encoding($this->securityScanner->scanFile($pFilename), 'HTML-ENTITIES', 'UTF-8'));
    +        if ($loaded === false) {
    +            throw new Exception('Failed to load ' . $pFilename . ' as a DOM Document');
    +        }
    +
    +        //    Discard white space
    +        $dom->preserveWhiteSpace = false;
    +
    +        $row = 0;
    +        $column = 'A';
    +        $content = '';
    +        $this->rowspan = [];
    +        $this->processDomElement($dom, $spreadsheet->getActiveSheet(), $row, $column, $content);
    +
    +        // Return
    +        return $spreadsheet;
    +    }
    +
    +    /**
    +     * Get sheet index.
    +     *
    +     * @return int
    +     */
    +    public function getSheetIndex()
    +    {
    +        return $this->sheetIndex;
    +    }
    +
    +    /**
    +     * Set sheet index.
    +     *
    +     * @param int $pValue Sheet index
    +     *
    +     * @return HTML
    +     */
    +    public function setSheetIndex($pValue)
    +    {
    +        $this->sheetIndex = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Apply inline css inline style.
    +     *
    +     * NOTES :
    +     * Currently only intended for td & th element,
    +     * and only takes 'background-color' and 'color'; property with HEX color
    +     *
    +     * TODO :
    +     * - Implement to other propertie, such as border
    +     *
    +     * @param Worksheet $sheet
    +     * @param int $row
    +     * @param string $column
    +     * @param array $attributeArray
    +     */
    +    private function applyInlineStyle(&$sheet, $row, $column, $attributeArray)
    +    {
    +        if (!isset($attributeArray['style'])) {
    +            return;
    +        }
    +
    +        $supported_styles = ['background-color', 'color'];
    +
    +        // add color styles (background & text) from dom element,currently support : td & th, using ONLY inline css style with RGB color
    +        $styles = explode(';', $attributeArray['style']);
    +        foreach ($styles as $st) {
    +            $value = explode(':', $st);
    +
    +            if (empty(trim($value[0])) || !in_array(trim($value[0]), $supported_styles)) {
    +                continue;
    +            }
    +
    +            //check if has #, so we can get clean hex
    +            if (substr(trim($value[1]), 0, 1) == '#') {
    +                $style_color = substr(trim($value[1]), 1);
    +            }
    +
    +            if (empty($style_color)) {
    +                continue;
    +            }
    +
    +            switch (trim($value[0])) {
    +                case 'background-color':
    +                    $sheet->getStyle($column . $row)->applyFromArray(['fill' => ['fillType' => Fill::FILL_SOLID, 'color' => ['rgb' => "{$style_color}"]]]);
    +
    +                    break;
    +                case 'color':
    +                    $sheet->getStyle($column . $row)->applyFromArray(['font' => ['color' => ['rgb' => "{$style_color}"]]]);
    +
    +                    break;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/IReadFilter.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/IReadFilter.php
    new file mode 100644
    index 00000000000..ccfe05ada6c
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/IReadFilter.php
    @@ -0,0 +1,17 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +interface IReadFilter
    +{
    +    /**
    +     * Should this cell be read?
    +     *
    +     * @param string $column Column address (as a string value like "A", or "IV")
    +     * @param int $row Row number
    +     * @param string $worksheetName Optional worksheet name
    +     *
    +     * @return bool
    +     */
    +    public function readCell($column, $row, $worksheetName = '');
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/IReader.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/IReader.php
    new file mode 100644
    index 00000000000..e35c4ee6255
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/IReader.php
    @@ -0,0 +1,31 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +interface IReader
    +{
    +    /**
    +     * IReader constructor.
    +     */
    +    public function __construct();
    +
    +    /**
    +     * Can the current IReader read the file?
    +     *
    +     * @param string $pFilename
    +     *
    +     * @return bool
    +     */
    +    public function canRead($pFilename);
    +
    +    /**
    +     * Loads PhpSpreadsheet from file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return \PhpOffice\PhpSpreadsheet\Spreadsheet
    +     */
    +    public function load($pFilename);
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Ods.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Ods.php
    new file mode 100644
    index 00000000000..0941f035dff
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Ods.php
    @@ -0,0 +1,792 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +use DateTime;
    +use DateTimeZone;
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Cell\DataType;
    +use PhpOffice\PhpSpreadsheet\Document\Properties;
    +use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Settings;
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
    +use XMLReader;
    +use ZipArchive;
    +
    +class Ods extends BaseReader
    +{
    +    /**
    +     * Create a new Ods Reader instance.
    +     */
    +    public function __construct()
    +    {
    +        $this->readFilter = new DefaultReadFilter();
    +        $this->securityScanner = XmlScanner::getInstance($this);
    +    }
    +
    +    /**
    +     * Can the current IReader read the file?
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return bool
    +     */
    +    public function canRead($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $mimeType = 'UNKNOWN';
    +
    +        // Load file
    +
    +        $zip = new ZipArchive();
    +        if ($zip->open($pFilename) === true) {
    +            // check if it is an OOXML archive
    +            $stat = $zip->statName('mimetype');
    +            if ($stat && ($stat['size'] <= 255)) {
    +                $mimeType = $zip->getFromName($stat['name']);
    +            } elseif ($stat = $zip->statName('META-INF/manifest.xml')) {
    +                $xml = simplexml_load_string(
    +                    $this->securityScanner->scan($zip->getFromName('META-INF/manifest.xml')),
    +                    'SimpleXMLElement',
    +                    Settings::getLibXmlLoaderOptions()
    +                );
    +                $namespacesContent = $xml->getNamespaces(true);
    +                if (isset($namespacesContent['manifest'])) {
    +                    $manifest = $xml->children($namespacesContent['manifest']);
    +                    foreach ($manifest as $manifestDataSet) {
    +                        $manifestAttributes = $manifestDataSet->attributes($namespacesContent['manifest']);
    +                        if ($manifestAttributes->{'full-path'} == '/') {
    +                            $mimeType = (string) $manifestAttributes->{'media-type'};
    +
    +                            break;
    +                        }
    +                    }
    +                }
    +            }
    +
    +            $zip->close();
    +
    +            return $mimeType === 'application/vnd.oasis.opendocument.spreadsheet';
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Reads names of the worksheets from a file, without parsing the whole file to a PhpSpreadsheet object.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return string[]
    +     */
    +    public function listWorksheetNames($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $zip = new ZipArchive();
    +        if (!$zip->open($pFilename)) {
    +            throw new Exception('Could not open ' . $pFilename . ' for reading! Error opening file.');
    +        }
    +
    +        $worksheetNames = [];
    +
    +        $xml = new XMLReader();
    +        $xml->xml(
    +            $this->securityScanner->scanFile('zip://' . realpath($pFilename) . '#content.xml'),
    +            null,
    +            Settings::getLibXmlLoaderOptions()
    +        );
    +        $xml->setParserProperty(2, true);
    +
    +        // Step into the first level of content of the XML
    +        $xml->read();
    +        while ($xml->read()) {
    +            // Quickly jump through to the office:body node
    +            while ($xml->name !== 'office:body') {
    +                if ($xml->isEmptyElement) {
    +                    $xml->read();
    +                } else {
    +                    $xml->next();
    +                }
    +            }
    +            // Now read each node until we find our first table:table node
    +            while ($xml->read()) {
    +                if ($xml->name == 'table:table' && $xml->nodeType == XMLReader::ELEMENT) {
    +                    // Loop through each table:table node reading the table:name attribute for each worksheet name
    +                    do {
    +                        $worksheetNames[] = $xml->getAttribute('table:name');
    +                        $xml->next();
    +                    } while ($xml->name == 'table:table' && $xml->nodeType == XMLReader::ELEMENT);
    +                }
    +            }
    +        }
    +
    +        return $worksheetNames;
    +    }
    +
    +    /**
    +     * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns).
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return array
    +     */
    +    public function listWorksheetInfo($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $worksheetInfo = [];
    +
    +        $zip = new ZipArchive();
    +        if (!$zip->open($pFilename)) {
    +            throw new Exception('Could not open ' . $pFilename . ' for reading! Error opening file.');
    +        }
    +
    +        $xml = new XMLReader();
    +        $xml->xml(
    +            $this->securityScanner->scanFile('zip://' . realpath($pFilename) . '#content.xml'),
    +            null,
    +            Settings::getLibXmlLoaderOptions()
    +        );
    +        $xml->setParserProperty(2, true);
    +
    +        // Step into the first level of content of the XML
    +        $xml->read();
    +        while ($xml->read()) {
    +            // Quickly jump through to the office:body node
    +            while ($xml->name !== 'office:body') {
    +                if ($xml->isEmptyElement) {
    +                    $xml->read();
    +                } else {
    +                    $xml->next();
    +                }
    +            }
    +            // Now read each node until we find our first table:table node
    +            while ($xml->read()) {
    +                if ($xml->name == 'table:table' && $xml->nodeType == XMLReader::ELEMENT) {
    +                    $worksheetNames[] = $xml->getAttribute('table:name');
    +
    +                    $tmpInfo = [
    +                        'worksheetName' => $xml->getAttribute('table:name'),
    +                        'lastColumnLetter' => 'A',
    +                        'lastColumnIndex' => 0,
    +                        'totalRows' => 0,
    +                        'totalColumns' => 0,
    +                    ];
    +
    +                    // Loop through each child node of the table:table element reading
    +                    $currCells = 0;
    +                    do {
    +                        $xml->read();
    +                        if ($xml->name == 'table:table-row' && $xml->nodeType == XMLReader::ELEMENT) {
    +                            $rowspan = $xml->getAttribute('table:number-rows-repeated');
    +                            $rowspan = empty($rowspan) ? 1 : $rowspan;
    +                            $tmpInfo['totalRows'] += $rowspan;
    +                            $tmpInfo['totalColumns'] = max($tmpInfo['totalColumns'], $currCells);
    +                            $currCells = 0;
    +                            // Step into the row
    +                            $xml->read();
    +                            do {
    +                                if ($xml->name == 'table:table-cell' && $xml->nodeType == XMLReader::ELEMENT) {
    +                                    if (!$xml->isEmptyElement) {
    +                                        ++$currCells;
    +                                        $xml->next();
    +                                    } else {
    +                                        $xml->read();
    +                                    }
    +                                } elseif ($xml->name == 'table:covered-table-cell' && $xml->nodeType == XMLReader::ELEMENT) {
    +                                    $mergeSize = $xml->getAttribute('table:number-columns-repeated');
    +                                    $currCells += (int) $mergeSize;
    +                                    $xml->read();
    +                                } else {
    +                                    $xml->read();
    +                                }
    +                            } while ($xml->name != 'table:table-row');
    +                        }
    +                    } while ($xml->name != 'table:table');
    +
    +                    $tmpInfo['totalColumns'] = max($tmpInfo['totalColumns'], $currCells);
    +                    $tmpInfo['lastColumnIndex'] = $tmpInfo['totalColumns'] - 1;
    +                    $tmpInfo['lastColumnLetter'] = Coordinate::stringFromColumnIndex($tmpInfo['lastColumnIndex'] + 1);
    +                    $worksheetInfo[] = $tmpInfo;
    +                }
    +            }
    +        }
    +
    +        return $worksheetInfo;
    +    }
    +
    +    /**
    +     * Loads PhpSpreadsheet from file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function load($pFilename)
    +    {
    +        // Create new Spreadsheet
    +        $spreadsheet = new Spreadsheet();
    +
    +        // Load into this instance
    +        return $this->loadIntoExisting($pFilename, $spreadsheet);
    +    }
    +
    +    /**
    +     * Loads PhpSpreadsheet from file into PhpSpreadsheet instance.
    +     *
    +     * @param string $pFilename
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function loadIntoExisting($pFilename, Spreadsheet $spreadsheet)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $timezoneObj = new DateTimeZone('Europe/London');
    +        $GMT = new \DateTimeZone('UTC');
    +
    +        $zip = new ZipArchive();
    +        if (!$zip->open($pFilename)) {
    +            throw new Exception('Could not open ' . $pFilename . ' for reading! Error opening file.');
    +        }
    +
    +        // Meta
    +
    +        $xml = simplexml_load_string(
    +            $this->securityScanner->scan($zip->getFromName('meta.xml')),
    +            'SimpleXMLElement',
    +            Settings::getLibXmlLoaderOptions()
    +        );
    +        $namespacesMeta = $xml->getNamespaces(true);
    +
    +        $docProps = $spreadsheet->getProperties();
    +        $officeProperty = $xml->children($namespacesMeta['office']);
    +        foreach ($officeProperty as $officePropertyData) {
    +            $officePropertyDC = [];
    +            if (isset($namespacesMeta['dc'])) {
    +                $officePropertyDC = $officePropertyData->children($namespacesMeta['dc']);
    +            }
    +            foreach ($officePropertyDC as $propertyName => $propertyValue) {
    +                $propertyValue = (string) $propertyValue;
    +                switch ($propertyName) {
    +                    case 'title':
    +                        $docProps->setTitle($propertyValue);
    +
    +                        break;
    +                    case 'subject':
    +                        $docProps->setSubject($propertyValue);
    +
    +                        break;
    +                    case 'creator':
    +                        $docProps->setCreator($propertyValue);
    +                        $docProps->setLastModifiedBy($propertyValue);
    +
    +                        break;
    +                    case 'date':
    +                        $creationDate = strtotime($propertyValue);
    +                        $docProps->setCreated($creationDate);
    +                        $docProps->setModified($creationDate);
    +
    +                        break;
    +                    case 'description':
    +                        $docProps->setDescription($propertyValue);
    +
    +                        break;
    +                }
    +            }
    +            $officePropertyMeta = [];
    +            if (isset($namespacesMeta['dc'])) {
    +                $officePropertyMeta = $officePropertyData->children($namespacesMeta['meta']);
    +            }
    +            foreach ($officePropertyMeta as $propertyName => $propertyValue) {
    +                $propertyValueAttributes = $propertyValue->attributes($namespacesMeta['meta']);
    +                $propertyValue = (string) $propertyValue;
    +                switch ($propertyName) {
    +                    case 'initial-creator':
    +                        $docProps->setCreator($propertyValue);
    +
    +                        break;
    +                    case 'keyword':
    +                        $docProps->setKeywords($propertyValue);
    +
    +                        break;
    +                    case 'creation-date':
    +                        $creationDate = strtotime($propertyValue);
    +                        $docProps->setCreated($creationDate);
    +
    +                        break;
    +                    case 'user-defined':
    +                        $propertyValueType = Properties::PROPERTY_TYPE_STRING;
    +                        foreach ($propertyValueAttributes as $key => $value) {
    +                            if ($key == 'name') {
    +                                $propertyValueName = (string) $value;
    +                            } elseif ($key == 'value-type') {
    +                                switch ($value) {
    +                                    case 'date':
    +                                        $propertyValue = Properties::convertProperty($propertyValue, 'date');
    +                                        $propertyValueType = Properties::PROPERTY_TYPE_DATE;
    +
    +                                        break;
    +                                    case 'boolean':
    +                                        $propertyValue = Properties::convertProperty($propertyValue, 'bool');
    +                                        $propertyValueType = Properties::PROPERTY_TYPE_BOOLEAN;
    +
    +                                        break;
    +                                    case 'float':
    +                                        $propertyValue = Properties::convertProperty($propertyValue, 'r4');
    +                                        $propertyValueType = Properties::PROPERTY_TYPE_FLOAT;
    +
    +                                        break;
    +                                    default:
    +                                        $propertyValueType = Properties::PROPERTY_TYPE_STRING;
    +                                }
    +                            }
    +                        }
    +                        $docProps->setCustomProperty($propertyValueName, $propertyValue, $propertyValueType);
    +
    +                        break;
    +                }
    +            }
    +        }
    +
    +        // Content
    +
    +        $dom = new \DOMDocument('1.01', 'UTF-8');
    +        $dom->loadXML(
    +            $this->securityScanner->scan($zip->getFromName('content.xml')),
    +            Settings::getLibXmlLoaderOptions()
    +        );
    +
    +        $officeNs = $dom->lookupNamespaceUri('office');
    +        $tableNs = $dom->lookupNamespaceUri('table');
    +        $textNs = $dom->lookupNamespaceUri('text');
    +        $xlinkNs = $dom->lookupNamespaceUri('xlink');
    +
    +        $spreadsheets = $dom->getElementsByTagNameNS($officeNs, 'body')
    +            ->item(0)
    +            ->getElementsByTagNameNS($officeNs, 'spreadsheet');
    +
    +        foreach ($spreadsheets as $workbookData) {
    +            /** @var \DOMElement $workbookData */
    +            $tables = $workbookData->getElementsByTagNameNS($tableNs, 'table');
    +
    +            $worksheetID = 0;
    +            foreach ($tables as $worksheetDataSet) {
    +                /** @var \DOMElement $worksheetDataSet */
    +                $worksheetName = $worksheetDataSet->getAttributeNS($tableNs, 'name');
    +
    +                // Check loadSheetsOnly
    +                if (isset($this->loadSheetsOnly)
    +                    && $worksheetName
    +                    && !in_array($worksheetName, $this->loadSheetsOnly)) {
    +                    continue;
    +                }
    +
    +                // Create sheet
    +                if ($worksheetID > 0) {
    +                    $spreadsheet->createSheet(); // First sheet is added by default
    +                }
    +                $spreadsheet->setActiveSheetIndex($worksheetID);
    +
    +                if ($worksheetName) {
    +                    // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in
    +                    // formula cells... during the load, all formulae should be correct, and we're simply
    +                    // bringing the worksheet name in line with the formula, not the reverse
    +                    $spreadsheet->getActiveSheet()->setTitle($worksheetName, false, false);
    +                }
    +
    +                // Go through every child of table element
    +                $rowID = 1;
    +                foreach ($worksheetDataSet->childNodes as $childNode) {
    +                    /** @var \DOMElement $childNode */
    +
    +                    // Filter elements which are not under the "table" ns
    +                    if ($childNode->namespaceURI != $tableNs) {
    +                        continue;
    +                    }
    +
    +                    $key = $childNode->nodeName;
    +
    +                    // Remove ns from node name
    +                    if (strpos($key, ':') !== false) {
    +                        $keyChunks = explode(':', $key);
    +                        $key = array_pop($keyChunks);
    +                    }
    +
    +                    switch ($key) {
    +                        case 'table-header-rows':
    +                            /// TODO :: Figure this out. This is only a partial implementation I guess.
    +                            //          ($rowData it's not used at all and I'm not sure that PHPExcel
    +                            //          has an API for this)
    +
    +//                            foreach ($rowData as $keyRowData => $cellData) {
    +//                                $rowData = $cellData;
    +//                                break;
    +//                            }
    +                            break;
    +                        case 'table-row':
    +                            if ($childNode->hasAttributeNS($tableNs, 'number-rows-repeated')) {
    +                                $rowRepeats = $childNode->getAttributeNS($tableNs, 'number-rows-repeated');
    +                            } else {
    +                                $rowRepeats = 1;
    +                            }
    +
    +                            $columnID = 'A';
    +                            foreach ($childNode->childNodes as $key => $cellData) {
    +                                // @var \DOMElement $cellData
    +
    +                                if ($this->getReadFilter() !== null) {
    +                                    if (!$this->getReadFilter()->readCell($columnID, $rowID, $worksheetName)) {
    +                                        ++$columnID;
    +
    +                                        continue;
    +                                    }
    +                                }
    +
    +                                // Initialize variables
    +                                $formatting = $hyperlink = null;
    +                                $hasCalculatedValue = false;
    +                                $cellDataFormula = '';
    +
    +                                if ($cellData->hasAttributeNS($tableNs, 'formula')) {
    +                                    $cellDataFormula = $cellData->getAttributeNS($tableNs, 'formula');
    +                                    $hasCalculatedValue = true;
    +                                }
    +
    +                                // Annotations
    +                                $annotation = $cellData->getElementsByTagNameNS($officeNs, 'annotation');
    +
    +                                if ($annotation->length > 0) {
    +                                    $textNode = $annotation->item(0)->getElementsByTagNameNS($textNs, 'p');
    +
    +                                    if ($textNode->length > 0) {
    +                                        $text = $this->scanElementForText($textNode->item(0));
    +
    +                                        $spreadsheet->getActiveSheet()
    +                                            ->getComment($columnID . $rowID)
    +                                            ->setText($this->parseRichText($text));
    +//                                                                    ->setAuthor( $author )
    +                                    }
    +                                }
    +
    +                                // Content
    +
    +                                /** @var \DOMElement[] $paragraphs */
    +                                $paragraphs = [];
    +
    +                                foreach ($cellData->childNodes as $item) {
    +                                    /** @var \DOMElement $item */
    +
    +                                    // Filter text:p elements
    +                                    if ($item->nodeName == 'text:p') {
    +                                        $paragraphs[] = $item;
    +                                    }
    +                                }
    +
    +                                if (count($paragraphs) > 0) {
    +                                    // Consolidate if there are multiple p records (maybe with spans as well)
    +                                    $dataArray = [];
    +
    +                                    // Text can have multiple text:p and within those, multiple text:span.
    +                                    // text:p newlines, but text:span does not.
    +                                    // Also, here we assume there is no text data is span fields are specified, since
    +                                    // we have no way of knowing proper positioning anyway.
    +
    +                                    foreach ($paragraphs as $pData) {
    +                                        $dataArray[] = $this->scanElementForText($pData);
    +                                    }
    +                                    $allCellDataText = implode($dataArray, "\n");
    +
    +                                    $type = $cellData->getAttributeNS($officeNs, 'value-type');
    +
    +                                    switch ($type) {
    +                                        case 'string':
    +                                            $type = DataType::TYPE_STRING;
    +                                            $dataValue = $allCellDataText;
    +
    +                                            foreach ($paragraphs as $paragraph) {
    +                                                $link = $paragraph->getElementsByTagNameNS($textNs, 'a');
    +                                                if ($link->length > 0) {
    +                                                    $hyperlink = $link->item(0)->getAttributeNS($xlinkNs, 'href');
    +                                                }
    +                                            }
    +
    +                                            break;
    +                                        case 'boolean':
    +                                            $type = DataType::TYPE_BOOL;
    +                                            $dataValue = ($allCellDataText == 'TRUE') ? true : false;
    +
    +                                            break;
    +                                        case 'percentage':
    +                                            $type = DataType::TYPE_NUMERIC;
    +                                            $dataValue = (float) $cellData->getAttributeNS($officeNs, 'value');
    +
    +                                            if (floor($dataValue) == $dataValue) {
    +                                                $dataValue = (int) $dataValue;
    +                                            }
    +                                            $formatting = NumberFormat::FORMAT_PERCENTAGE_00;
    +
    +                                            break;
    +                                        case 'currency':
    +                                            $type = DataType::TYPE_NUMERIC;
    +                                            $dataValue = (float) $cellData->getAttributeNS($officeNs, 'value');
    +
    +                                            if (floor($dataValue) == $dataValue) {
    +                                                $dataValue = (int) $dataValue;
    +                                            }
    +                                            $formatting = NumberFormat::FORMAT_CURRENCY_USD_SIMPLE;
    +
    +                                            break;
    +                                        case 'float':
    +                                            $type = DataType::TYPE_NUMERIC;
    +                                            $dataValue = (float) $cellData->getAttributeNS($officeNs, 'value');
    +
    +                                            if (floor($dataValue) == $dataValue) {
    +                                                if ($dataValue == (int) $dataValue) {
    +                                                    $dataValue = (int) $dataValue;
    +                                                } else {
    +                                                    $dataValue = (float) $dataValue;
    +                                                }
    +                                            }
    +
    +                                            break;
    +                                        case 'date':
    +                                            $type = DataType::TYPE_NUMERIC;
    +                                            $value = $cellData->getAttributeNS($officeNs, 'date-value');
    +
    +                                            $dateObj = new DateTime($value, $GMT);
    +                                            $dateObj->setTimeZone($timezoneObj);
    +                                            list($year, $month, $day, $hour, $minute, $second) = explode(
    +                                                ' ',
    +                                                $dateObj->format('Y m d H i s')
    +                                            );
    +
    +                                            $dataValue = Date::formattedPHPToExcel(
    +                                                $year,
    +                                                $month,
    +                                                $day,
    +                                                $hour,
    +                                                $minute,
    +                                                $second
    +                                            );
    +
    +                                            if ($dataValue != floor($dataValue)) {
    +                                                $formatting = NumberFormat::FORMAT_DATE_XLSX15
    +                                                    . ' '
    +                                                    . NumberFormat::FORMAT_DATE_TIME4;
    +                                            } else {
    +                                                $formatting = NumberFormat::FORMAT_DATE_XLSX15;
    +                                            }
    +
    +                                            break;
    +                                        case 'time':
    +                                            $type = DataType::TYPE_NUMERIC;
    +
    +                                            $timeValue = $cellData->getAttributeNS($officeNs, 'time-value');
    +
    +                                            $dataValue = Date::PHPToExcel(
    +                                                strtotime(
    +                                                    '01-01-1970 ' . implode(':', sscanf($timeValue, 'PT%dH%dM%dS'))
    +                                                )
    +                                            );
    +                                            $formatting = NumberFormat::FORMAT_DATE_TIME4;
    +
    +                                            break;
    +                                        default:
    +                                            $dataValue = null;
    +                                    }
    +                                } else {
    +                                    $type = DataType::TYPE_NULL;
    +                                    $dataValue = null;
    +                                }
    +
    +                                if ($hasCalculatedValue) {
    +                                    $type = DataType::TYPE_FORMULA;
    +                                    $cellDataFormula = substr($cellDataFormula, strpos($cellDataFormula, ':=') + 1);
    +                                    $temp = explode('"', $cellDataFormula);
    +                                    $tKey = false;
    +                                    foreach ($temp as &$value) {
    +                                        // Only replace in alternate array entries (i.e. non-quoted blocks)
    +                                        if ($tKey = !$tKey) {
    +                                            // Cell range reference in another sheet
    +                                            $value = preg_replace('/\[([^\.]+)\.([^\.]+):\.([^\.]+)\]/U', '$1!$2:$3', $value);
    +
    +                                            // Cell reference in another sheet
    +                                            $value = preg_replace('/\[([^\.]+)\.([^\.]+)\]/U', '$1!$2', $value);
    +
    +                                            // Cell range reference
    +                                            $value = preg_replace('/\[\.([^\.]+):\.([^\.]+)\]/U', '$1:$2', $value);
    +
    +                                            // Simple cell reference
    +                                            $value = preg_replace('/\[\.([^\.]+)\]/U', '$1', $value);
    +
    +                                            $value = Calculation::translateSeparator(';', ',', $value, $inBraces);
    +                                        }
    +                                    }
    +                                    unset($value);
    +
    +                                    // Then rebuild the formula string
    +                                    $cellDataFormula = implode('"', $temp);
    +                                }
    +
    +                                if ($cellData->hasAttributeNS($tableNs, 'number-columns-repeated')) {
    +                                    $colRepeats = (int) $cellData->getAttributeNS($tableNs, 'number-columns-repeated');
    +                                } else {
    +                                    $colRepeats = 1;
    +                                }
    +
    +                                if ($type !== null) {
    +                                    for ($i = 0; $i < $colRepeats; ++$i) {
    +                                        if ($i > 0) {
    +                                            ++$columnID;
    +                                        }
    +
    +                                        if ($type !== DataType::TYPE_NULL) {
    +                                            for ($rowAdjust = 0; $rowAdjust < $rowRepeats; ++$rowAdjust) {
    +                                                $rID = $rowID + $rowAdjust;
    +
    +                                                $cell = $spreadsheet->getActiveSheet()
    +                                                    ->getCell($columnID . $rID);
    +
    +                                                // Set value
    +                                                if ($hasCalculatedValue) {
    +                                                    $cell->setValueExplicit($cellDataFormula, $type);
    +                                                } else {
    +                                                    $cell->setValueExplicit($dataValue, $type);
    +                                                }
    +
    +                                                if ($hasCalculatedValue) {
    +                                                    $cell->setCalculatedValue($dataValue);
    +                                                }
    +
    +                                                // Set other properties
    +                                                if ($formatting !== null) {
    +                                                    $spreadsheet->getActiveSheet()
    +                                                        ->getStyle($columnID . $rID)
    +                                                        ->getNumberFormat()
    +                                                        ->setFormatCode($formatting);
    +                                                } else {
    +                                                    $spreadsheet->getActiveSheet()
    +                                                        ->getStyle($columnID . $rID)
    +                                                        ->getNumberFormat()
    +                                                        ->setFormatCode(NumberFormat::FORMAT_GENERAL);
    +                                                }
    +
    +                                                if ($hyperlink !== null) {
    +                                                    $cell->getHyperlink()
    +                                                        ->setUrl($hyperlink);
    +                                                }
    +                                            }
    +                                        }
    +                                    }
    +                                }
    +
    +                                // Merged cells
    +                                if ($cellData->hasAttributeNS($tableNs, 'number-columns-spanned')
    +                                    || $cellData->hasAttributeNS($tableNs, 'number-rows-spanned')
    +                                ) {
    +                                    if (($type !== DataType::TYPE_NULL) || (!$this->readDataOnly)) {
    +                                        $columnTo = $columnID;
    +
    +                                        if ($cellData->hasAttributeNS($tableNs, 'number-columns-spanned')) {
    +                                            $columnIndex = Coordinate::columnIndexFromString($columnID);
    +                                            $columnIndex += (int) $cellData->getAttributeNS($tableNs, 'number-columns-spanned');
    +                                            $columnIndex -= 2;
    +
    +                                            $columnTo = Coordinate::stringFromColumnIndex($columnIndex + 1);
    +                                        }
    +
    +                                        $rowTo = $rowID;
    +
    +                                        if ($cellData->hasAttributeNS($tableNs, 'number-rows-spanned')) {
    +                                            $rowTo = $rowTo + (int) $cellData->getAttributeNS($tableNs, 'number-rows-spanned') - 1;
    +                                        }
    +
    +                                        $cellRange = $columnID . $rowID . ':' . $columnTo . $rowTo;
    +                                        $spreadsheet->getActiveSheet()->mergeCells($cellRange);
    +                                    }
    +                                }
    +
    +                                ++$columnID;
    +                            }
    +                            $rowID += $rowRepeats;
    +
    +                            break;
    +                    }
    +                }
    +                ++$worksheetID;
    +            }
    +        }
    +
    +        // Return
    +        return $spreadsheet;
    +    }
    +
    +    /**
    +     * Recursively scan element.
    +     *
    +     * @param \DOMNode $element
    +     *
    +     * @return string
    +     */
    +    protected function scanElementForText(\DOMNode $element)
    +    {
    +        $str = '';
    +        foreach ($element->childNodes as $child) {
    +            /** @var \DOMNode $child */
    +            if ($child->nodeType == XML_TEXT_NODE) {
    +                $str .= $child->nodeValue;
    +            } elseif ($child->nodeType == XML_ELEMENT_NODE && $child->nodeName == 'text:s') {
    +                // It's a space
    +
    +                // Multiple spaces?
    +                /** @var \DOMAttr $cAttr */
    +                $cAttr = $child->attributes->getNamedItem('c');
    +                if ($cAttr) {
    +                    $multiplier = (int) $cAttr->nodeValue;
    +                } else {
    +                    $multiplier = 1;
    +                }
    +
    +                $str .= str_repeat(' ', $multiplier);
    +            }
    +
    +            if ($child->hasChildNodes()) {
    +                $str .= $this->scanElementForText($child);
    +            }
    +        }
    +
    +        return $str;
    +    }
    +
    +    /**
    +     * @param string $is
    +     *
    +     * @return RichText
    +     */
    +    private function parseRichText($is)
    +    {
    +        $value = new RichText();
    +        $value->createText($is);
    +
    +        return $value;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Security/XmlScanner.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Security/XmlScanner.php
    new file mode 100644
    index 00000000000..b5f7ac60fdc
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Security/XmlScanner.php
    @@ -0,0 +1,125 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Security;
    +
    +use PhpOffice\PhpSpreadsheet\Reader;
    +
    +class XmlScanner
    +{
    +    /**
    +     * Identifies whether the thread-safe libxmlDisableEntityLoader() function is available.
    +     *
    +     * @var bool
    +     */
    +    private $libxmlDisableEntityLoader = false;
    +
    +    /**
    +     * String used to identify risky xml elements.
    +     *
    +     * @var string
    +     */
    +    private $pattern;
    +
    +    private $callback;
    +
    +    private function __construct($pattern = '<!DOCTYPE')
    +    {
    +        $this->pattern = $pattern;
    +        $this->libxmlDisableEntityLoader = $this->identifyLibxmlDisableEntityLoaderAvailability();
    +    }
    +
    +    public static function getInstance(Reader\IReader $reader)
    +    {
    +        switch (true) {
    +            case $reader instanceof Reader\Html:
    +                return new self('<!ENTITY');
    +            case $reader instanceof Reader\Xlsx:
    +            case $reader instanceof Reader\Xml:
    +            case $reader instanceof Reader\Ods:
    +            case $reader instanceof Reader\Gnumeric:
    +                return new self('<!DOCTYPE');
    +            default:
    +                return new self('<!DOCTYPE');
    +        }
    +    }
    +
    +    private function identifyLibxmlDisableEntityLoaderAvailability()
    +    {
    +        if (PHP_MAJOR_VERSION == 7) {
    +            switch (PHP_MINOR_VERSION) {
    +                case 2:
    +                    return PHP_RELEASE_VERSION >= 1;
    +                case 1:
    +                    return PHP_RELEASE_VERSION >= 13;
    +                case 0:
    +                    return PHP_RELEASE_VERSION >= 27;
    +            }
    +
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    public function setAdditionalCallback(callable $callback)
    +    {
    +        $this->callback = $callback;
    +    }
    +
    +    /**
    +     * Scan the XML for use of <!ENTITY to prevent XXE/XEE attacks.
    +     *
    +     * @param mixed $xml
    +     *
    +     * @throws Reader\Exception
    +     *
    +     * @return string
    +     */
    +    public function scan($xml)
    +    {
    +        if ($this->libxmlDisableEntityLoader) {
    +            $previousLibxmlDisableEntityLoaderValue = libxml_disable_entity_loader(true);
    +        }
    +
    +        $pattern = '/encoding="(.*?)"/';
    +        $result = preg_match($pattern, $xml, $matches);
    +        $charset = $result ? $matches[1] : 'UTF-8';
    +
    +        if ($charset !== 'UTF-8') {
    +            $xml = mb_convert_encoding($xml, 'UTF-8', $charset);
    +        }
    +
    +        // Don't rely purely on libxml_disable_entity_loader()
    +        $pattern = '/\\0?' . implode('\\0?', str_split($this->pattern)) . '\\0?/';
    +
    +        try {
    +            if (preg_match($pattern, $xml)) {
    +                throw new Reader\Exception('Detected use of ENTITY in XML, spreadsheet file load() aborted to prevent XXE/XEE attacks');
    +            }
    +
    +            if ($this->callback !== null && is_callable($this->callback)) {
    +                $xml = call_user_func($this->callback, $xml);
    +            }
    +        } finally {
    +            if (isset($previousLibxmlDisableEntityLoaderValue)) {
    +                libxml_disable_entity_loader($previousLibxmlDisableEntityLoaderValue);
    +            }
    +        }
    +
    +        return $xml;
    +    }
    +
    +    /**
    +     * Scan theXML for use of <!ENTITY to prevent XXE/XEE attacks.
    +     *
    +     * @param string $filestream
    +     *
    +     * @throws Reader\Exception
    +     *
    +     * @return string
    +     */
    +    public function scanFile($filestream)
    +    {
    +        return $this->scan(file_get_contents($filestream));
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Slk.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Slk.php
    new file mode 100644
    index 00000000000..61e52334b5c
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Slk.php
    @@ -0,0 +1,496 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\Border;
    +
    +class Slk extends BaseReader
    +{
    +    /**
    +     * Input encoding.
    +     *
    +     * @var string
    +     */
    +    private $inputEncoding = 'ANSI';
    +
    +    /**
    +     * Sheet index to read.
    +     *
    +     * @var int
    +     */
    +    private $sheetIndex = 0;
    +
    +    /**
    +     * Formats.
    +     *
    +     * @var array
    +     */
    +    private $formats = [];
    +
    +    /**
    +     * Format Count.
    +     *
    +     * @var int
    +     */
    +    private $format = 0;
    +
    +    /**
    +     * Create a new SYLK Reader instance.
    +     */
    +    public function __construct()
    +    {
    +        $this->readFilter = new DefaultReadFilter();
    +    }
    +
    +    /**
    +     * Validate that the current file is a SYLK file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @return bool
    +     */
    +    public function canRead($pFilename)
    +    {
    +        // Check if file exists
    +        try {
    +            $this->openFile($pFilename);
    +        } catch (Exception $e) {
    +            return false;
    +        }
    +
    +        // Read sample data (first 2 KB will do)
    +        $data = fread($this->fileHandle, 2048);
    +
    +        // Count delimiters in file
    +        $delimiterCount = substr_count($data, ';');
    +        $hasDelimiter = $delimiterCount > 0;
    +
    +        // Analyze first line looking for ID; signature
    +        $lines = explode("\n", $data);
    +        $hasId = substr($lines[0], 0, 4) === 'ID;P';
    +
    +        fclose($this->fileHandle);
    +
    +        return $hasDelimiter && $hasId;
    +    }
    +
    +    /**
    +     * Set input encoding.
    +     *
    +     * @param string $pValue Input encoding, eg: 'ANSI'
    +     *
    +     * @return Slk
    +     */
    +    public function setInputEncoding($pValue)
    +    {
    +        $this->inputEncoding = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get input encoding.
    +     *
    +     * @return string
    +     */
    +    public function getInputEncoding()
    +    {
    +        return $this->inputEncoding;
    +    }
    +
    +    /**
    +     * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns).
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return array
    +     */
    +    public function listWorksheetInfo($pFilename)
    +    {
    +        // Open file
    +        if (!$this->canRead($pFilename)) {
    +            throw new Exception($pFilename . ' is an Invalid Spreadsheet file.');
    +        }
    +        $this->openFile($pFilename);
    +        $fileHandle = $this->fileHandle;
    +        rewind($fileHandle);
    +
    +        $worksheetInfo = [];
    +        $worksheetInfo[0]['worksheetName'] = 'Worksheet';
    +        $worksheetInfo[0]['lastColumnLetter'] = 'A';
    +        $worksheetInfo[0]['lastColumnIndex'] = 0;
    +        $worksheetInfo[0]['totalRows'] = 0;
    +        $worksheetInfo[0]['totalColumns'] = 0;
    +
    +        // loop through one row (line) at a time in the file
    +        $rowIndex = 0;
    +        while (($rowData = fgets($fileHandle)) !== false) {
    +            $columnIndex = 0;
    +
    +            // convert SYLK encoded $rowData to UTF-8
    +            $rowData = StringHelper::SYLKtoUTF8($rowData);
    +
    +            // explode each row at semicolons while taking into account that literal semicolon (;)
    +            // is escaped like this (;;)
    +            $rowData = explode("\t", str_replace('¤', ';', str_replace(';', "\t", str_replace(';;', '¤', rtrim($rowData)))));
    +
    +            $dataType = array_shift($rowData);
    +            if ($dataType == 'C') {
    +                //  Read cell value data
    +                foreach ($rowData as $rowDatum) {
    +                    switch ($rowDatum[0]) {
    +                        case 'C':
    +                        case 'X':
    +                            $columnIndex = substr($rowDatum, 1) - 1;
    +
    +                            break;
    +                        case 'R':
    +                        case 'Y':
    +                            $rowIndex = substr($rowDatum, 1);
    +
    +                            break;
    +                    }
    +
    +                    $worksheetInfo[0]['totalRows'] = max($worksheetInfo[0]['totalRows'], $rowIndex);
    +                    $worksheetInfo[0]['lastColumnIndex'] = max($worksheetInfo[0]['lastColumnIndex'], $columnIndex);
    +                }
    +            }
    +        }
    +
    +        $worksheetInfo[0]['lastColumnLetter'] = Coordinate::stringFromColumnIndex($worksheetInfo[0]['lastColumnIndex'] + 1);
    +        $worksheetInfo[0]['totalColumns'] = $worksheetInfo[0]['lastColumnIndex'] + 1;
    +
    +        // Close file
    +        fclose($fileHandle);
    +
    +        return $worksheetInfo;
    +    }
    +
    +    /**
    +     * Loads PhpSpreadsheet from file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function load($pFilename)
    +    {
    +        // Create new Spreadsheet
    +        $spreadsheet = new Spreadsheet();
    +
    +        // Load into this instance
    +        return $this->loadIntoExisting($pFilename, $spreadsheet);
    +    }
    +
    +    /**
    +     * Loads PhpSpreadsheet from file into PhpSpreadsheet instance.
    +     *
    +     * @param string $pFilename
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function loadIntoExisting($pFilename, Spreadsheet $spreadsheet)
    +    {
    +        // Open file
    +        if (!$this->canRead($pFilename)) {
    +            throw new Exception($pFilename . ' is an Invalid Spreadsheet file.');
    +        }
    +        $this->openFile($pFilename);
    +        $fileHandle = $this->fileHandle;
    +        rewind($fileHandle);
    +
    +        // Create new Worksheets
    +        while ($spreadsheet->getSheetCount() <= $this->sheetIndex) {
    +            $spreadsheet->createSheet();
    +        }
    +        $spreadsheet->setActiveSheetIndex($this->sheetIndex);
    +
    +        $fromFormats = ['\-', '\ '];
    +        $toFormats = ['-', ' '];
    +
    +        // Loop through file
    +        $column = $row = '';
    +
    +        // loop through one row (line) at a time in the file
    +        while (($rowData = fgets($fileHandle)) !== false) {
    +            // convert SYLK encoded $rowData to UTF-8
    +            $rowData = StringHelper::SYLKtoUTF8($rowData);
    +
    +            // explode each row at semicolons while taking into account that literal semicolon (;)
    +            // is escaped like this (;;)
    +            $rowData = explode("\t", str_replace('¤', ';', str_replace(';', "\t", str_replace(';;', '¤', rtrim($rowData)))));
    +
    +            $dataType = array_shift($rowData);
    +            //    Read shared styles
    +            if ($dataType == 'P') {
    +                $formatArray = [];
    +                foreach ($rowData as $rowDatum) {
    +                    switch ($rowDatum[0]) {
    +                        case 'P':
    +                            $formatArray['numberFormat']['formatCode'] = str_replace($fromFormats, $toFormats, substr($rowDatum, 1));
    +
    +                            break;
    +                        case 'E':
    +                        case 'F':
    +                            $formatArray['font']['name'] = substr($rowDatum, 1);
    +
    +                            break;
    +                        case 'L':
    +                            $formatArray['font']['size'] = substr($rowDatum, 1);
    +
    +                            break;
    +                        case 'S':
    +                            $styleSettings = substr($rowDatum, 1);
    +                            $iMax = strlen($styleSettings);
    +                            for ($i = 0; $i < $iMax; ++$i) {
    +                                switch ($styleSettings[$i]) {
    +                                    case 'I':
    +                                        $formatArray['font']['italic'] = true;
    +
    +                                        break;
    +                                    case 'D':
    +                                        $formatArray['font']['bold'] = true;
    +
    +                                        break;
    +                                    case 'T':
    +                                        $formatArray['borders']['top']['borderStyle'] = Border::BORDER_THIN;
    +
    +                                        break;
    +                                    case 'B':
    +                                        $formatArray['borders']['bottom']['borderStyle'] = Border::BORDER_THIN;
    +
    +                                        break;
    +                                    case 'L':
    +                                        $formatArray['borders']['left']['borderStyle'] = Border::BORDER_THIN;
    +
    +                                        break;
    +                                    case 'R':
    +                                        $formatArray['borders']['right']['borderStyle'] = Border::BORDER_THIN;
    +
    +                                        break;
    +                                }
    +                            }
    +
    +                            break;
    +                    }
    +                }
    +                $this->formats['P' . $this->format++] = $formatArray;
    +            //    Read cell value data
    +            } elseif ($dataType == 'C') {
    +                $hasCalculatedValue = false;
    +                $cellData = $cellDataFormula = '';
    +                foreach ($rowData as $rowDatum) {
    +                    switch ($rowDatum[0]) {
    +                        case 'C':
    +                        case 'X':
    +                            $column = substr($rowDatum, 1);
    +
    +                            break;
    +                        case 'R':
    +                        case 'Y':
    +                            $row = substr($rowDatum, 1);
    +
    +                            break;
    +                        case 'K':
    +                            $cellData = substr($rowDatum, 1);
    +
    +                            break;
    +                        case 'E':
    +                            $cellDataFormula = '=' . substr($rowDatum, 1);
    +                            //    Convert R1C1 style references to A1 style references (but only when not quoted)
    +                            $temp = explode('"', $cellDataFormula);
    +                            $key = false;
    +                            foreach ($temp as &$value) {
    +                                //    Only count/replace in alternate array entries
    +                                if ($key = !$key) {
    +                                    preg_match_all('/(R(\[?-?\d*\]?))(C(\[?-?\d*\]?))/', $value, $cellReferences, PREG_SET_ORDER + PREG_OFFSET_CAPTURE);
    +                                    //    Reverse the matches array, otherwise all our offsets will become incorrect if we modify our way
    +                                    //        through the formula from left to right. Reversing means that we work right to left.through
    +                                    //        the formula
    +                                    $cellReferences = array_reverse($cellReferences);
    +                                    //    Loop through each R1C1 style reference in turn, converting it to its A1 style equivalent,
    +                                    //        then modify the formula to use that new reference
    +                                    foreach ($cellReferences as $cellReference) {
    +                                        $rowReference = $cellReference[2][0];
    +                                        //    Empty R reference is the current row
    +                                        if ($rowReference == '') {
    +                                            $rowReference = $row;
    +                                        }
    +                                        //    Bracketed R references are relative to the current row
    +                                        if ($rowReference[0] == '[') {
    +                                            $rowReference = $row + trim($rowReference, '[]');
    +                                        }
    +                                        $columnReference = $cellReference[4][0];
    +                                        //    Empty C reference is the current column
    +                                        if ($columnReference == '') {
    +                                            $columnReference = $column;
    +                                        }
    +                                        //    Bracketed C references are relative to the current column
    +                                        if ($columnReference[0] == '[') {
    +                                            $columnReference = $column + trim($columnReference, '[]');
    +                                        }
    +                                        $A1CellReference = Coordinate::stringFromColumnIndex($columnReference) . $rowReference;
    +
    +                                        $value = substr_replace($value, $A1CellReference, $cellReference[0][1], strlen($cellReference[0][0]));
    +                                    }
    +                                }
    +                            }
    +                            unset($value);
    +                            //    Then rebuild the formula string
    +                            $cellDataFormula = implode('"', $temp);
    +                            $hasCalculatedValue = true;
    +
    +                            break;
    +                    }
    +                }
    +                $columnLetter = Coordinate::stringFromColumnIndex($column);
    +                $cellData = Calculation::unwrapResult($cellData);
    +
    +                // Set cell value
    +                $spreadsheet->getActiveSheet()->getCell($columnLetter . $row)->setValue(($hasCalculatedValue) ? $cellDataFormula : $cellData);
    +                if ($hasCalculatedValue) {
    +                    $cellData = Calculation::unwrapResult($cellData);
    +                    $spreadsheet->getActiveSheet()->getCell($columnLetter . $row)->setCalculatedValue($cellData);
    +                }
    +                //    Read cell formatting
    +            } elseif ($dataType == 'F') {
    +                $formatStyle = $columnWidth = $styleSettings = '';
    +                $styleData = [];
    +                foreach ($rowData as $rowDatum) {
    +                    switch ($rowDatum[0]) {
    +                        case 'C':
    +                        case 'X':
    +                            $column = substr($rowDatum, 1);
    +
    +                            break;
    +                        case 'R':
    +                        case 'Y':
    +                            $row = substr($rowDatum, 1);
    +
    +                            break;
    +                        case 'P':
    +                            $formatStyle = $rowDatum;
    +
    +                            break;
    +                        case 'W':
    +                            list($startCol, $endCol, $columnWidth) = explode(' ', substr($rowDatum, 1));
    +
    +                            break;
    +                        case 'S':
    +                            $styleSettings = substr($rowDatum, 1);
    +                            $iMax = strlen($styleSettings);
    +                            for ($i = 0; $i < $iMax; ++$i) {
    +                                switch ($styleSettings[$i]) {
    +                                    case 'I':
    +                                        $styleData['font']['italic'] = true;
    +
    +                                        break;
    +                                    case 'D':
    +                                        $styleData['font']['bold'] = true;
    +
    +                                        break;
    +                                    case 'T':
    +                                        $styleData['borders']['top']['borderStyle'] = Border::BORDER_THIN;
    +
    +                                        break;
    +                                    case 'B':
    +                                        $styleData['borders']['bottom']['borderStyle'] = Border::BORDER_THIN;
    +
    +                                        break;
    +                                    case 'L':
    +                                        $styleData['borders']['left']['borderStyle'] = Border::BORDER_THIN;
    +
    +                                        break;
    +                                    case 'R':
    +                                        $styleData['borders']['right']['borderStyle'] = Border::BORDER_THIN;
    +
    +                                        break;
    +                                }
    +                            }
    +
    +                            break;
    +                    }
    +                }
    +                if (($formatStyle > '') && ($column > '') && ($row > '')) {
    +                    $columnLetter = Coordinate::stringFromColumnIndex($column);
    +                    if (isset($this->formats[$formatStyle])) {
    +                        $spreadsheet->getActiveSheet()->getStyle($columnLetter . $row)->applyFromArray($this->formats[$formatStyle]);
    +                    }
    +                }
    +                if ((!empty($styleData)) && ($column > '') && ($row > '')) {
    +                    $columnLetter = Coordinate::stringFromColumnIndex($column);
    +                    $spreadsheet->getActiveSheet()->getStyle($columnLetter . $row)->applyFromArray($styleData);
    +                }
    +                if ($columnWidth > '') {
    +                    if ($startCol == $endCol) {
    +                        $startCol = Coordinate::stringFromColumnIndex($startCol);
    +                        $spreadsheet->getActiveSheet()->getColumnDimension($startCol)->setWidth($columnWidth);
    +                    } else {
    +                        $startCol = Coordinate::stringFromColumnIndex($startCol);
    +                        $endCol = Coordinate::stringFromColumnIndex($endCol);
    +                        $spreadsheet->getActiveSheet()->getColumnDimension($startCol)->setWidth($columnWidth);
    +                        do {
    +                            $spreadsheet->getActiveSheet()->getColumnDimension(++$startCol)->setWidth($columnWidth);
    +                        } while ($startCol != $endCol);
    +                    }
    +                }
    +            } else {
    +                foreach ($rowData as $rowDatum) {
    +                    switch ($rowDatum[0]) {
    +                        case 'C':
    +                        case 'X':
    +                            $column = substr($rowDatum, 1);
    +
    +                            break;
    +                        case 'R':
    +                        case 'Y':
    +                            $row = substr($rowDatum, 1);
    +
    +                            break;
    +                    }
    +                }
    +            }
    +        }
    +
    +        // Close file
    +        fclose($fileHandle);
    +
    +        // Return
    +        return $spreadsheet;
    +    }
    +
    +    /**
    +     * Get sheet index.
    +     *
    +     * @return int
    +     */
    +    public function getSheetIndex()
    +    {
    +        return $this->sheetIndex;
    +    }
    +
    +    /**
    +     * Set sheet index.
    +     *
    +     * @param int $pValue Sheet index
    +     *
    +     * @return Slk
    +     */
    +    public function setSheetIndex($pValue)
    +    {
    +        $this->sheetIndex = $pValue;
    +
    +        return $this;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls.php
    new file mode 100644
    index 00000000000..514adae2743
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls.php
    @@ -0,0 +1,7949 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Cell\DataType;
    +use PhpOffice\PhpSpreadsheet\Cell\DataValidation;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +use PhpOffice\PhpSpreadsheet\NamedRange;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Shared\CodePage;
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE;
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +use PhpOffice\PhpSpreadsheet\Shared\OLE;
    +use PhpOffice\PhpSpreadsheet\Shared\OLERead;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\Alignment;
    +use PhpOffice\PhpSpreadsheet\Style\Borders;
    +use PhpOffice\PhpSpreadsheet\Style\Font;
    +use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
    +use PhpOffice\PhpSpreadsheet\Style\Protection;
    +use PhpOffice\PhpSpreadsheet\Style\Style;
    +use PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing;
    +use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
    +use PhpOffice\PhpSpreadsheet\Worksheet\SheetView;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +// Original file header of ParseXL (used as the base for this class):
    +// --------------------------------------------------------------------------------
    +// Adapted from Excel_Spreadsheet_Reader developed by users bizon153,
    +// trex005, and mmp11 (SourceForge.net)
    +// https://sourceforge.net/projects/phpexcelreader/
    +// Primary changes made by canyoncasa (dvc) for ParseXL 1.00 ...
    +//     Modelled moreso after Perl Excel Parse/Write modules
    +//     Added Parse_Excel_Spreadsheet object
    +//         Reads a whole worksheet or tab as row,column array or as
    +//         associated hash of indexed rows and named column fields
    +//     Added variables for worksheet (tab) indexes and names
    +//     Added an object call for loading individual woorksheets
    +//     Changed default indexing defaults to 0 based arrays
    +//     Fixed date/time and percent formats
    +//     Includes patches found at SourceForge...
    +//         unicode patch by nobody
    +//         unpack("d") machine depedency patch by matchy
    +//         boundsheet utf16 patch by bjaenichen
    +//     Renamed functions for shorter names
    +//     General code cleanup and rigor, including <80 column width
    +//     Included a testcase Excel file and PHP example calls
    +//     Code works for PHP 5.x
    +
    +// Primary changes made by canyoncasa (dvc) for ParseXL 1.10 ...
    +// http://sourceforge.net/tracker/index.php?func=detail&aid=1466964&group_id=99160&atid=623334
    +//     Decoding of formula conditions, results, and tokens.
    +//     Support for user-defined named cells added as an array "namedcells"
    +//         Patch code for user-defined named cells supports single cells only.
    +//         NOTE: this patch only works for BIFF8 as BIFF5-7 use a different
    +//         external sheet reference structure
    +class Xls extends BaseReader
    +{
    +    // ParseXL definitions
    +    const XLS_BIFF8 = 0x0600;
    +    const XLS_BIFF7 = 0x0500;
    +    const XLS_WORKBOOKGLOBALS = 0x0005;
    +    const XLS_WORKSHEET = 0x0010;
    +
    +    // record identifiers
    +    const XLS_TYPE_FORMULA = 0x0006;
    +    const XLS_TYPE_EOF = 0x000a;
    +    const XLS_TYPE_PROTECT = 0x0012;
    +    const XLS_TYPE_OBJECTPROTECT = 0x0063;
    +    const XLS_TYPE_SCENPROTECT = 0x00dd;
    +    const XLS_TYPE_PASSWORD = 0x0013;
    +    const XLS_TYPE_HEADER = 0x0014;
    +    const XLS_TYPE_FOOTER = 0x0015;
    +    const XLS_TYPE_EXTERNSHEET = 0x0017;
    +    const XLS_TYPE_DEFINEDNAME = 0x0018;
    +    const XLS_TYPE_VERTICALPAGEBREAKS = 0x001a;
    +    const XLS_TYPE_HORIZONTALPAGEBREAKS = 0x001b;
    +    const XLS_TYPE_NOTE = 0x001c;
    +    const XLS_TYPE_SELECTION = 0x001d;
    +    const XLS_TYPE_DATEMODE = 0x0022;
    +    const XLS_TYPE_EXTERNNAME = 0x0023;
    +    const XLS_TYPE_LEFTMARGIN = 0x0026;
    +    const XLS_TYPE_RIGHTMARGIN = 0x0027;
    +    const XLS_TYPE_TOPMARGIN = 0x0028;
    +    const XLS_TYPE_BOTTOMMARGIN = 0x0029;
    +    const XLS_TYPE_PRINTGRIDLINES = 0x002b;
    +    const XLS_TYPE_FILEPASS = 0x002f;
    +    const XLS_TYPE_FONT = 0x0031;
    +    const XLS_TYPE_CONTINUE = 0x003c;
    +    const XLS_TYPE_PANE = 0x0041;
    +    const XLS_TYPE_CODEPAGE = 0x0042;
    +    const XLS_TYPE_DEFCOLWIDTH = 0x0055;
    +    const XLS_TYPE_OBJ = 0x005d;
    +    const XLS_TYPE_COLINFO = 0x007d;
    +    const XLS_TYPE_IMDATA = 0x007f;
    +    const XLS_TYPE_SHEETPR = 0x0081;
    +    const XLS_TYPE_HCENTER = 0x0083;
    +    const XLS_TYPE_VCENTER = 0x0084;
    +    const XLS_TYPE_SHEET = 0x0085;
    +    const XLS_TYPE_PALETTE = 0x0092;
    +    const XLS_TYPE_SCL = 0x00a0;
    +    const XLS_TYPE_PAGESETUP = 0x00a1;
    +    const XLS_TYPE_MULRK = 0x00bd;
    +    const XLS_TYPE_MULBLANK = 0x00be;
    +    const XLS_TYPE_DBCELL = 0x00d7;
    +    const XLS_TYPE_XF = 0x00e0;
    +    const XLS_TYPE_MERGEDCELLS = 0x00e5;
    +    const XLS_TYPE_MSODRAWINGGROUP = 0x00eb;
    +    const XLS_TYPE_MSODRAWING = 0x00ec;
    +    const XLS_TYPE_SST = 0x00fc;
    +    const XLS_TYPE_LABELSST = 0x00fd;
    +    const XLS_TYPE_EXTSST = 0x00ff;
    +    const XLS_TYPE_EXTERNALBOOK = 0x01ae;
    +    const XLS_TYPE_DATAVALIDATIONS = 0x01b2;
    +    const XLS_TYPE_TXO = 0x01b6;
    +    const XLS_TYPE_HYPERLINK = 0x01b8;
    +    const XLS_TYPE_DATAVALIDATION = 0x01be;
    +    const XLS_TYPE_DIMENSION = 0x0200;
    +    const XLS_TYPE_BLANK = 0x0201;
    +    const XLS_TYPE_NUMBER = 0x0203;
    +    const XLS_TYPE_LABEL = 0x0204;
    +    const XLS_TYPE_BOOLERR = 0x0205;
    +    const XLS_TYPE_STRING = 0x0207;
    +    const XLS_TYPE_ROW = 0x0208;
    +    const XLS_TYPE_INDEX = 0x020b;
    +    const XLS_TYPE_ARRAY = 0x0221;
    +    const XLS_TYPE_DEFAULTROWHEIGHT = 0x0225;
    +    const XLS_TYPE_WINDOW2 = 0x023e;
    +    const XLS_TYPE_RK = 0x027e;
    +    const XLS_TYPE_STYLE = 0x0293;
    +    const XLS_TYPE_FORMAT = 0x041e;
    +    const XLS_TYPE_SHAREDFMLA = 0x04bc;
    +    const XLS_TYPE_BOF = 0x0809;
    +    const XLS_TYPE_SHEETPROTECTION = 0x0867;
    +    const XLS_TYPE_RANGEPROTECTION = 0x0868;
    +    const XLS_TYPE_SHEETLAYOUT = 0x0862;
    +    const XLS_TYPE_XFEXT = 0x087d;
    +    const XLS_TYPE_PAGELAYOUTVIEW = 0x088b;
    +    const XLS_TYPE_UNKNOWN = 0xffff;
    +
    +    // Encryption type
    +    const MS_BIFF_CRYPTO_NONE = 0;
    +    const MS_BIFF_CRYPTO_XOR = 1;
    +    const MS_BIFF_CRYPTO_RC4 = 2;
    +
    +    // Size of stream blocks when using RC4 encryption
    +    const REKEY_BLOCK = 0x400;
    +
    +    /**
    +     * Summary Information stream data.
    +     *
    +     * @var string
    +     */
    +    private $summaryInformation;
    +
    +    /**
    +     * Extended Summary Information stream data.
    +     *
    +     * @var string
    +     */
    +    private $documentSummaryInformation;
    +
    +    /**
    +     * Workbook stream data. (Includes workbook globals substream as well as sheet substreams).
    +     *
    +     * @var string
    +     */
    +    private $data;
    +
    +    /**
    +     * Size in bytes of $this->data.
    +     *
    +     * @var int
    +     */
    +    private $dataSize;
    +
    +    /**
    +     * Current position in stream.
    +     *
    +     * @var int
    +     */
    +    private $pos;
    +
    +    /**
    +     * Workbook to be returned by the reader.
    +     *
    +     * @var Spreadsheet
    +     */
    +    private $spreadsheet;
    +
    +    /**
    +     * Worksheet that is currently being built by the reader.
    +     *
    +     * @var Worksheet
    +     */
    +    private $phpSheet;
    +
    +    /**
    +     * BIFF version.
    +     *
    +     * @var int
    +     */
    +    private $version;
    +
    +    /**
    +     * Codepage set in the Excel file being read. Only important for BIFF5 (Excel 5.0 - Excel 95)
    +     * For BIFF8 (Excel 97 - Excel 2003) this will always have the value 'UTF-16LE'.
    +     *
    +     * @var string
    +     */
    +    private $codepage;
    +
    +    /**
    +     * Shared formats.
    +     *
    +     * @var array
    +     */
    +    private $formats;
    +
    +    /**
    +     * Shared fonts.
    +     *
    +     * @var array
    +     */
    +    private $objFonts;
    +
    +    /**
    +     * Color palette.
    +     *
    +     * @var array
    +     */
    +    private $palette;
    +
    +    /**
    +     * Worksheets.
    +     *
    +     * @var array
    +     */
    +    private $sheets;
    +
    +    /**
    +     * External books.
    +     *
    +     * @var array
    +     */
    +    private $externalBooks;
    +
    +    /**
    +     * REF structures. Only applies to BIFF8.
    +     *
    +     * @var array
    +     */
    +    private $ref;
    +
    +    /**
    +     * External names.
    +     *
    +     * @var array
    +     */
    +    private $externalNames;
    +
    +    /**
    +     * Defined names.
    +     *
    +     * @var array
    +     */
    +    private $definedname;
    +
    +    /**
    +     * Shared strings. Only applies to BIFF8.
    +     *
    +     * @var array
    +     */
    +    private $sst;
    +
    +    /**
    +     * Panes are frozen? (in sheet currently being read). See WINDOW2 record.
    +     *
    +     * @var bool
    +     */
    +    private $frozen;
    +
    +    /**
    +     * Fit printout to number of pages? (in sheet currently being read). See SHEETPR record.
    +     *
    +     * @var bool
    +     */
    +    private $isFitToPages;
    +
    +    /**
    +     * Objects. One OBJ record contributes with one entry.
    +     *
    +     * @var array
    +     */
    +    private $objs;
    +
    +    /**
    +     * Text Objects. One TXO record corresponds with one entry.
    +     *
    +     * @var array
    +     */
    +    private $textObjects;
    +
    +    /**
    +     * Cell Annotations (BIFF8).
    +     *
    +     * @var array
    +     */
    +    private $cellNotes;
    +
    +    /**
    +     * The combined MSODRAWINGGROUP data.
    +     *
    +     * @var string
    +     */
    +    private $drawingGroupData;
    +
    +    /**
    +     * The combined MSODRAWING data (per sheet).
    +     *
    +     * @var string
    +     */
    +    private $drawingData;
    +
    +    /**
    +     * Keep track of XF index.
    +     *
    +     * @var int
    +     */
    +    private $xfIndex;
    +
    +    /**
    +     * Mapping of XF index (that is a cell XF) to final index in cellXf collection.
    +     *
    +     * @var array
    +     */
    +    private $mapCellXfIndex;
    +
    +    /**
    +     * Mapping of XF index (that is a style XF) to final index in cellStyleXf collection.
    +     *
    +     * @var array
    +     */
    +    private $mapCellStyleXfIndex;
    +
    +    /**
    +     * The shared formulas in a sheet. One SHAREDFMLA record contributes with one value.
    +     *
    +     * @var array
    +     */
    +    private $sharedFormulas;
    +
    +    /**
    +     * The shared formula parts in a sheet. One FORMULA record contributes with one value if it
    +     * refers to a shared formula.
    +     *
    +     * @var array
    +     */
    +    private $sharedFormulaParts;
    +
    +    /**
    +     * The type of encryption in use.
    +     *
    +     * @var int
    +     */
    +    private $encryption = 0;
    +
    +    /**
    +     * The position in the stream after which contents are encrypted.
    +     *
    +     * @var int
    +     */
    +    private $encryptionStartPos = false;
    +
    +    /**
    +     * The current RC4 decryption object.
    +     *
    +     * @var Xls\RC4
    +     */
    +    private $rc4Key;
    +
    +    /**
    +     * The position in the stream that the RC4 decryption object was left at.
    +     *
    +     * @var int
    +     */
    +    private $rc4Pos = 0;
    +
    +    /**
    +     * The current MD5 context state.
    +     *
    +     * @var string
    +     */
    +    private $md5Ctxt;
    +
    +    /**
    +     * @var int
    +     */
    +    private $textObjRef;
    +
    +    /**
    +     * @var string
    +     */
    +    private $baseCell;
    +
    +    /**
    +     * Create a new Xls Reader instance.
    +     */
    +    public function __construct()
    +    {
    +        $this->readFilter = new DefaultReadFilter();
    +    }
    +
    +    /**
    +     * Can the current IReader read the file?
    +     *
    +     * @param string $pFilename
    +     *
    +     * @return bool
    +     */
    +    public function canRead($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        try {
    +            // Use ParseXL for the hard work.
    +            $ole = new OLERead();
    +
    +            // get excel data
    +            $ole->read($pFilename);
    +
    +            return true;
    +        } catch (PhpSpreadsheetException $e) {
    +            return false;
    +        }
    +    }
    +
    +    /**
    +     * Reads names of the worksheets from a file, without parsing the whole file to a PhpSpreadsheet object.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return array
    +     */
    +    public function listWorksheetNames($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $worksheetNames = [];
    +
    +        // Read the OLE file
    +        $this->loadOLE($pFilename);
    +
    +        // total byte size of Excel data (workbook global substream + sheet substreams)
    +        $this->dataSize = strlen($this->data);
    +
    +        $this->pos = 0;
    +        $this->sheets = [];
    +
    +        // Parse Workbook Global Substream
    +        while ($this->pos < $this->dataSize) {
    +            $code = self::getUInt2d($this->data, $this->pos);
    +
    +            switch ($code) {
    +                case self::XLS_TYPE_BOF:
    +                    $this->readBof();
    +
    +                    break;
    +                case self::XLS_TYPE_SHEET:
    +                    $this->readSheet();
    +
    +                    break;
    +                case self::XLS_TYPE_EOF:
    +                    $this->readDefault();
    +
    +                    break 2;
    +                default:
    +                    $this->readDefault();
    +
    +                    break;
    +            }
    +        }
    +
    +        foreach ($this->sheets as $sheet) {
    +            if ($sheet['sheetType'] != 0x00) {
    +                // 0x00: Worksheet, 0x02: Chart, 0x06: Visual Basic module
    +                continue;
    +            }
    +
    +            $worksheetNames[] = $sheet['name'];
    +        }
    +
    +        return $worksheetNames;
    +    }
    +
    +    /**
    +     * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns).
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return array
    +     */
    +    public function listWorksheetInfo($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $worksheetInfo = [];
    +
    +        // Read the OLE file
    +        $this->loadOLE($pFilename);
    +
    +        // total byte size of Excel data (workbook global substream + sheet substreams)
    +        $this->dataSize = strlen($this->data);
    +
    +        // initialize
    +        $this->pos = 0;
    +        $this->sheets = [];
    +
    +        // Parse Workbook Global Substream
    +        while ($this->pos < $this->dataSize) {
    +            $code = self::getUInt2d($this->data, $this->pos);
    +
    +            switch ($code) {
    +                case self::XLS_TYPE_BOF:
    +                    $this->readBof();
    +
    +                    break;
    +                case self::XLS_TYPE_SHEET:
    +                    $this->readSheet();
    +
    +                    break;
    +                case self::XLS_TYPE_EOF:
    +                    $this->readDefault();
    +
    +                    break 2;
    +                default:
    +                    $this->readDefault();
    +
    +                    break;
    +            }
    +        }
    +
    +        // Parse the individual sheets
    +        foreach ($this->sheets as $sheet) {
    +            if ($sheet['sheetType'] != 0x00) {
    +                // 0x00: Worksheet
    +                // 0x02: Chart
    +                // 0x06: Visual Basic module
    +                continue;
    +            }
    +
    +            $tmpInfo = [];
    +            $tmpInfo['worksheetName'] = $sheet['name'];
    +            $tmpInfo['lastColumnLetter'] = 'A';
    +            $tmpInfo['lastColumnIndex'] = 0;
    +            $tmpInfo['totalRows'] = 0;
    +            $tmpInfo['totalColumns'] = 0;
    +
    +            $this->pos = $sheet['offset'];
    +
    +            while ($this->pos <= $this->dataSize - 4) {
    +                $code = self::getUInt2d($this->data, $this->pos);
    +
    +                switch ($code) {
    +                    case self::XLS_TYPE_RK:
    +                    case self::XLS_TYPE_LABELSST:
    +                    case self::XLS_TYPE_NUMBER:
    +                    case self::XLS_TYPE_FORMULA:
    +                    case self::XLS_TYPE_BOOLERR:
    +                    case self::XLS_TYPE_LABEL:
    +                        $length = self::getUInt2d($this->data, $this->pos + 2);
    +                        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +                        // move stream pointer to next record
    +                        $this->pos += 4 + $length;
    +
    +                        $rowIndex = self::getUInt2d($recordData, 0) + 1;
    +                        $columnIndex = self::getUInt2d($recordData, 2);
    +
    +                        $tmpInfo['totalRows'] = max($tmpInfo['totalRows'], $rowIndex);
    +                        $tmpInfo['lastColumnIndex'] = max($tmpInfo['lastColumnIndex'], $columnIndex);
    +
    +                        break;
    +                    case self::XLS_TYPE_BOF:
    +                        $this->readBof();
    +
    +                        break;
    +                    case self::XLS_TYPE_EOF:
    +                        $this->readDefault();
    +
    +                        break 2;
    +                    default:
    +                        $this->readDefault();
    +
    +                        break;
    +                }
    +            }
    +
    +            $tmpInfo['lastColumnLetter'] = Coordinate::stringFromColumnIndex($tmpInfo['lastColumnIndex'] + 1);
    +            $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1;
    +
    +            $worksheetInfo[] = $tmpInfo;
    +        }
    +
    +        return $worksheetInfo;
    +    }
    +
    +    /**
    +     * Loads PhpSpreadsheet from file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function load($pFilename)
    +    {
    +        // Read the OLE file
    +        $this->loadOLE($pFilename);
    +
    +        // Initialisations
    +        $this->spreadsheet = new Spreadsheet();
    +        $this->spreadsheet->removeSheetByIndex(0); // remove 1st sheet
    +        if (!$this->readDataOnly) {
    +            $this->spreadsheet->removeCellStyleXfByIndex(0); // remove the default style
    +            $this->spreadsheet->removeCellXfByIndex(0); // remove the default style
    +        }
    +
    +        // Read the summary information stream (containing meta data)
    +        $this->readSummaryInformation();
    +
    +        // Read the Additional document summary information stream (containing application-specific meta data)
    +        $this->readDocumentSummaryInformation();
    +
    +        // total byte size of Excel data (workbook global substream + sheet substreams)
    +        $this->dataSize = strlen($this->data);
    +
    +        // initialize
    +        $this->pos = 0;
    +        $this->codepage = 'CP1252';
    +        $this->formats = [];
    +        $this->objFonts = [];
    +        $this->palette = [];
    +        $this->sheets = [];
    +        $this->externalBooks = [];
    +        $this->ref = [];
    +        $this->definedname = [];
    +        $this->sst = [];
    +        $this->drawingGroupData = '';
    +        $this->xfIndex = '';
    +        $this->mapCellXfIndex = [];
    +        $this->mapCellStyleXfIndex = [];
    +
    +        // Parse Workbook Global Substream
    +        while ($this->pos < $this->dataSize) {
    +            $code = self::getUInt2d($this->data, $this->pos);
    +
    +            switch ($code) {
    +                case self::XLS_TYPE_BOF:
    +                    $this->readBof();
    +
    +                    break;
    +                case self::XLS_TYPE_FILEPASS:
    +                    $this->readFilepass();
    +
    +                    break;
    +                case self::XLS_TYPE_CODEPAGE:
    +                    $this->readCodepage();
    +
    +                    break;
    +                case self::XLS_TYPE_DATEMODE:
    +                    $this->readDateMode();
    +
    +                    break;
    +                case self::XLS_TYPE_FONT:
    +                    $this->readFont();
    +
    +                    break;
    +                case self::XLS_TYPE_FORMAT:
    +                    $this->readFormat();
    +
    +                    break;
    +                case self::XLS_TYPE_XF:
    +                    $this->readXf();
    +
    +                    break;
    +                case self::XLS_TYPE_XFEXT:
    +                    $this->readXfExt();
    +
    +                    break;
    +                case self::XLS_TYPE_STYLE:
    +                    $this->readStyle();
    +
    +                    break;
    +                case self::XLS_TYPE_PALETTE:
    +                    $this->readPalette();
    +
    +                    break;
    +                case self::XLS_TYPE_SHEET:
    +                    $this->readSheet();
    +
    +                    break;
    +                case self::XLS_TYPE_EXTERNALBOOK:
    +                    $this->readExternalBook();
    +
    +                    break;
    +                case self::XLS_TYPE_EXTERNNAME:
    +                    $this->readExternName();
    +
    +                    break;
    +                case self::XLS_TYPE_EXTERNSHEET:
    +                    $this->readExternSheet();
    +
    +                    break;
    +                case self::XLS_TYPE_DEFINEDNAME:
    +                    $this->readDefinedName();
    +
    +                    break;
    +                case self::XLS_TYPE_MSODRAWINGGROUP:
    +                    $this->readMsoDrawingGroup();
    +
    +                    break;
    +                case self::XLS_TYPE_SST:
    +                    $this->readSst();
    +
    +                    break;
    +                case self::XLS_TYPE_EOF:
    +                    $this->readDefault();
    +
    +                    break 2;
    +                default:
    +                    $this->readDefault();
    +
    +                    break;
    +            }
    +        }
    +
    +        // Resolve indexed colors for font, fill, and border colors
    +        // Cannot be resolved already in XF record, because PALETTE record comes afterwards
    +        if (!$this->readDataOnly) {
    +            foreach ($this->objFonts as $objFont) {
    +                if (isset($objFont->colorIndex)) {
    +                    $color = Xls\Color::map($objFont->colorIndex, $this->palette, $this->version);
    +                    $objFont->getColor()->setRGB($color['rgb']);
    +                }
    +            }
    +
    +            foreach ($this->spreadsheet->getCellXfCollection() as $objStyle) {
    +                // fill start and end color
    +                $fill = $objStyle->getFill();
    +
    +                if (isset($fill->startcolorIndex)) {
    +                    $startColor = Xls\Color::map($fill->startcolorIndex, $this->palette, $this->version);
    +                    $fill->getStartColor()->setRGB($startColor['rgb']);
    +                }
    +                if (isset($fill->endcolorIndex)) {
    +                    $endColor = Xls\Color::map($fill->endcolorIndex, $this->palette, $this->version);
    +                    $fill->getEndColor()->setRGB($endColor['rgb']);
    +                }
    +
    +                // border colors
    +                $top = $objStyle->getBorders()->getTop();
    +                $right = $objStyle->getBorders()->getRight();
    +                $bottom = $objStyle->getBorders()->getBottom();
    +                $left = $objStyle->getBorders()->getLeft();
    +                $diagonal = $objStyle->getBorders()->getDiagonal();
    +
    +                if (isset($top->colorIndex)) {
    +                    $borderTopColor = Xls\Color::map($top->colorIndex, $this->palette, $this->version);
    +                    $top->getColor()->setRGB($borderTopColor['rgb']);
    +                }
    +                if (isset($right->colorIndex)) {
    +                    $borderRightColor = Xls\Color::map($right->colorIndex, $this->palette, $this->version);
    +                    $right->getColor()->setRGB($borderRightColor['rgb']);
    +                }
    +                if (isset($bottom->colorIndex)) {
    +                    $borderBottomColor = Xls\Color::map($bottom->colorIndex, $this->palette, $this->version);
    +                    $bottom->getColor()->setRGB($borderBottomColor['rgb']);
    +                }
    +                if (isset($left->colorIndex)) {
    +                    $borderLeftColor = Xls\Color::map($left->colorIndex, $this->palette, $this->version);
    +                    $left->getColor()->setRGB($borderLeftColor['rgb']);
    +                }
    +                if (isset($diagonal->colorIndex)) {
    +                    $borderDiagonalColor = Xls\Color::map($diagonal->colorIndex, $this->palette, $this->version);
    +                    $diagonal->getColor()->setRGB($borderDiagonalColor['rgb']);
    +                }
    +            }
    +        }
    +
    +        // treat MSODRAWINGGROUP records, workbook-level Escher
    +        if (!$this->readDataOnly && $this->drawingGroupData) {
    +            $escherWorkbook = new Escher();
    +            $reader = new Xls\Escher($escherWorkbook);
    +            $escherWorkbook = $reader->load($this->drawingGroupData);
    +        }
    +
    +        // Parse the individual sheets
    +        foreach ($this->sheets as $sheet) {
    +            if ($sheet['sheetType'] != 0x00) {
    +                // 0x00: Worksheet, 0x02: Chart, 0x06: Visual Basic module
    +                continue;
    +            }
    +
    +            // check if sheet should be skipped
    +            if (isset($this->loadSheetsOnly) && !in_array($sheet['name'], $this->loadSheetsOnly)) {
    +                continue;
    +            }
    +
    +            // add sheet to PhpSpreadsheet object
    +            $this->phpSheet = $this->spreadsheet->createSheet();
    +            //    Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in formula
    +            //        cells... during the load, all formulae should be correct, and we're simply bringing the worksheet
    +            //        name in line with the formula, not the reverse
    +            $this->phpSheet->setTitle($sheet['name'], false, false);
    +            $this->phpSheet->setSheetState($sheet['sheetState']);
    +
    +            $this->pos = $sheet['offset'];
    +
    +            // Initialize isFitToPages. May change after reading SHEETPR record.
    +            $this->isFitToPages = false;
    +
    +            // Initialize drawingData
    +            $this->drawingData = '';
    +
    +            // Initialize objs
    +            $this->objs = [];
    +
    +            // Initialize shared formula parts
    +            $this->sharedFormulaParts = [];
    +
    +            // Initialize shared formulas
    +            $this->sharedFormulas = [];
    +
    +            // Initialize text objs
    +            $this->textObjects = [];
    +
    +            // Initialize cell annotations
    +            $this->cellNotes = [];
    +            $this->textObjRef = -1;
    +
    +            while ($this->pos <= $this->dataSize - 4) {
    +                $code = self::getUInt2d($this->data, $this->pos);
    +
    +                switch ($code) {
    +                    case self::XLS_TYPE_BOF:
    +                        $this->readBof();
    +
    +                        break;
    +                    case self::XLS_TYPE_PRINTGRIDLINES:
    +                        $this->readPrintGridlines();
    +
    +                        break;
    +                    case self::XLS_TYPE_DEFAULTROWHEIGHT:
    +                        $this->readDefaultRowHeight();
    +
    +                        break;
    +                    case self::XLS_TYPE_SHEETPR:
    +                        $this->readSheetPr();
    +
    +                        break;
    +                    case self::XLS_TYPE_HORIZONTALPAGEBREAKS:
    +                        $this->readHorizontalPageBreaks();
    +
    +                        break;
    +                    case self::XLS_TYPE_VERTICALPAGEBREAKS:
    +                        $this->readVerticalPageBreaks();
    +
    +                        break;
    +                    case self::XLS_TYPE_HEADER:
    +                        $this->readHeader();
    +
    +                        break;
    +                    case self::XLS_TYPE_FOOTER:
    +                        $this->readFooter();
    +
    +                        break;
    +                    case self::XLS_TYPE_HCENTER:
    +                        $this->readHcenter();
    +
    +                        break;
    +                    case self::XLS_TYPE_VCENTER:
    +                        $this->readVcenter();
    +
    +                        break;
    +                    case self::XLS_TYPE_LEFTMARGIN:
    +                        $this->readLeftMargin();
    +
    +                        break;
    +                    case self::XLS_TYPE_RIGHTMARGIN:
    +                        $this->readRightMargin();
    +
    +                        break;
    +                    case self::XLS_TYPE_TOPMARGIN:
    +                        $this->readTopMargin();
    +
    +                        break;
    +                    case self::XLS_TYPE_BOTTOMMARGIN:
    +                        $this->readBottomMargin();
    +
    +                        break;
    +                    case self::XLS_TYPE_PAGESETUP:
    +                        $this->readPageSetup();
    +
    +                        break;
    +                    case self::XLS_TYPE_PROTECT:
    +                        $this->readProtect();
    +
    +                        break;
    +                    case self::XLS_TYPE_SCENPROTECT:
    +                        $this->readScenProtect();
    +
    +                        break;
    +                    case self::XLS_TYPE_OBJECTPROTECT:
    +                        $this->readObjectProtect();
    +
    +                        break;
    +                    case self::XLS_TYPE_PASSWORD:
    +                        $this->readPassword();
    +
    +                        break;
    +                    case self::XLS_TYPE_DEFCOLWIDTH:
    +                        $this->readDefColWidth();
    +
    +                        break;
    +                    case self::XLS_TYPE_COLINFO:
    +                        $this->readColInfo();
    +
    +                        break;
    +                    case self::XLS_TYPE_DIMENSION:
    +                        $this->readDefault();
    +
    +                        break;
    +                    case self::XLS_TYPE_ROW:
    +                        $this->readRow();
    +
    +                        break;
    +                    case self::XLS_TYPE_DBCELL:
    +                        $this->readDefault();
    +
    +                        break;
    +                    case self::XLS_TYPE_RK:
    +                        $this->readRk();
    +
    +                        break;
    +                    case self::XLS_TYPE_LABELSST:
    +                        $this->readLabelSst();
    +
    +                        break;
    +                    case self::XLS_TYPE_MULRK:
    +                        $this->readMulRk();
    +
    +                        break;
    +                    case self::XLS_TYPE_NUMBER:
    +                        $this->readNumber();
    +
    +                        break;
    +                    case self::XLS_TYPE_FORMULA:
    +                        $this->readFormula();
    +
    +                        break;
    +                    case self::XLS_TYPE_SHAREDFMLA:
    +                        $this->readSharedFmla();
    +
    +                        break;
    +                    case self::XLS_TYPE_BOOLERR:
    +                        $this->readBoolErr();
    +
    +                        break;
    +                    case self::XLS_TYPE_MULBLANK:
    +                        $this->readMulBlank();
    +
    +                        break;
    +                    case self::XLS_TYPE_LABEL:
    +                        $this->readLabel();
    +
    +                        break;
    +                    case self::XLS_TYPE_BLANK:
    +                        $this->readBlank();
    +
    +                        break;
    +                    case self::XLS_TYPE_MSODRAWING:
    +                        $this->readMsoDrawing();
    +
    +                        break;
    +                    case self::XLS_TYPE_OBJ:
    +                        $this->readObj();
    +
    +                        break;
    +                    case self::XLS_TYPE_WINDOW2:
    +                        $this->readWindow2();
    +
    +                        break;
    +                    case self::XLS_TYPE_PAGELAYOUTVIEW:
    +                        $this->readPageLayoutView();
    +
    +                        break;
    +                    case self::XLS_TYPE_SCL:
    +                        $this->readScl();
    +
    +                        break;
    +                    case self::XLS_TYPE_PANE:
    +                        $this->readPane();
    +
    +                        break;
    +                    case self::XLS_TYPE_SELECTION:
    +                        $this->readSelection();
    +
    +                        break;
    +                    case self::XLS_TYPE_MERGEDCELLS:
    +                        $this->readMergedCells();
    +
    +                        break;
    +                    case self::XLS_TYPE_HYPERLINK:
    +                        $this->readHyperLink();
    +
    +                        break;
    +                    case self::XLS_TYPE_DATAVALIDATIONS:
    +                        $this->readDataValidations();
    +
    +                        break;
    +                    case self::XLS_TYPE_DATAVALIDATION:
    +                        $this->readDataValidation();
    +
    +                        break;
    +                    case self::XLS_TYPE_SHEETLAYOUT:
    +                        $this->readSheetLayout();
    +
    +                        break;
    +                    case self::XLS_TYPE_SHEETPROTECTION:
    +                        $this->readSheetProtection();
    +
    +                        break;
    +                    case self::XLS_TYPE_RANGEPROTECTION:
    +                        $this->readRangeProtection();
    +
    +                        break;
    +                    case self::XLS_TYPE_NOTE:
    +                        $this->readNote();
    +
    +                        break;
    +                    case self::XLS_TYPE_TXO:
    +                        $this->readTextObject();
    +
    +                        break;
    +                    case self::XLS_TYPE_CONTINUE:
    +                        $this->readContinue();
    +
    +                        break;
    +                    case self::XLS_TYPE_EOF:
    +                        $this->readDefault();
    +
    +                        break 2;
    +                    default:
    +                        $this->readDefault();
    +
    +                        break;
    +                }
    +            }
    +
    +            // treat MSODRAWING records, sheet-level Escher
    +            if (!$this->readDataOnly && $this->drawingData) {
    +                $escherWorksheet = new Escher();
    +                $reader = new Xls\Escher($escherWorksheet);
    +                $escherWorksheet = $reader->load($this->drawingData);
    +
    +                // get all spContainers in one long array, so they can be mapped to OBJ records
    +                $allSpContainers = $escherWorksheet->getDgContainer()->getSpgrContainer()->getAllSpContainers();
    +            }
    +
    +            // treat OBJ records
    +            foreach ($this->objs as $n => $obj) {
    +                // the first shape container never has a corresponding OBJ record, hence $n + 1
    +                if (isset($allSpContainers[$n + 1]) && is_object($allSpContainers[$n + 1])) {
    +                    $spContainer = $allSpContainers[$n + 1];
    +
    +                    // we skip all spContainers that are a part of a group shape since we cannot yet handle those
    +                    if ($spContainer->getNestingLevel() > 1) {
    +                        continue;
    +                    }
    +
    +                    // calculate the width and height of the shape
    +                    list($startColumn, $startRow) = Coordinate::coordinateFromString($spContainer->getStartCoordinates());
    +                    list($endColumn, $endRow) = Coordinate::coordinateFromString($spContainer->getEndCoordinates());
    +
    +                    $startOffsetX = $spContainer->getStartOffsetX();
    +                    $startOffsetY = $spContainer->getStartOffsetY();
    +                    $endOffsetX = $spContainer->getEndOffsetX();
    +                    $endOffsetY = $spContainer->getEndOffsetY();
    +
    +                    $width = \PhpOffice\PhpSpreadsheet\Shared\Xls::getDistanceX($this->phpSheet, $startColumn, $startOffsetX, $endColumn, $endOffsetX);
    +                    $height = \PhpOffice\PhpSpreadsheet\Shared\Xls::getDistanceY($this->phpSheet, $startRow, $startOffsetY, $endRow, $endOffsetY);
    +
    +                    // calculate offsetX and offsetY of the shape
    +                    $offsetX = $startOffsetX * \PhpOffice\PhpSpreadsheet\Shared\Xls::sizeCol($this->phpSheet, $startColumn) / 1024;
    +                    $offsetY = $startOffsetY * \PhpOffice\PhpSpreadsheet\Shared\Xls::sizeRow($this->phpSheet, $startRow) / 256;
    +
    +                    switch ($obj['otObjType']) {
    +                        case 0x19:
    +                            // Note
    +                            if (isset($this->cellNotes[$obj['idObjID']])) {
    +                                $cellNote = $this->cellNotes[$obj['idObjID']];
    +
    +                                if (isset($this->textObjects[$obj['idObjID']])) {
    +                                    $textObject = $this->textObjects[$obj['idObjID']];
    +                                    $this->cellNotes[$obj['idObjID']]['objTextData'] = $textObject;
    +                                }
    +                            }
    +
    +                            break;
    +                        case 0x08:
    +                            // picture
    +                            // get index to BSE entry (1-based)
    +                            $BSEindex = $spContainer->getOPT(0x0104);
    +
    +                            // If there is no BSE Index, we will fail here and other fields are not read.
    +                            // Fix by checking here.
    +                            // TODO: Why is there no BSE Index? Is this a new Office Version? Password protected field?
    +                            // More likely : a uncompatible picture
    +                            if (!$BSEindex) {
    +                                continue 2;
    +                            }
    +
    +                            $BSECollection = $escherWorkbook->getDggContainer()->getBstoreContainer()->getBSECollection();
    +                            $BSE = $BSECollection[$BSEindex - 1];
    +                            $blipType = $BSE->getBlipType();
    +
    +                            // need check because some blip types are not supported by Escher reader such as EMF
    +                            if ($blip = $BSE->getBlip()) {
    +                                $ih = imagecreatefromstring($blip->getData());
    +                                $drawing = new MemoryDrawing();
    +                                $drawing->setImageResource($ih);
    +
    +                                // width, height, offsetX, offsetY
    +                                $drawing->setResizeProportional(false);
    +                                $drawing->setWidth($width);
    +                                $drawing->setHeight($height);
    +                                $drawing->setOffsetX($offsetX);
    +                                $drawing->setOffsetY($offsetY);
    +
    +                                switch ($blipType) {
    +                                    case BSE::BLIPTYPE_JPEG:
    +                                        $drawing->setRenderingFunction(MemoryDrawing::RENDERING_JPEG);
    +                                        $drawing->setMimeType(MemoryDrawing::MIMETYPE_JPEG);
    +
    +                                        break;
    +                                    case BSE::BLIPTYPE_PNG:
    +                                        $drawing->setRenderingFunction(MemoryDrawing::RENDERING_PNG);
    +                                        $drawing->setMimeType(MemoryDrawing::MIMETYPE_PNG);
    +
    +                                        break;
    +                                }
    +
    +                                $drawing->setWorksheet($this->phpSheet);
    +                                $drawing->setCoordinates($spContainer->getStartCoordinates());
    +                            }
    +
    +                            break;
    +                        default:
    +                            // other object type
    +                            break;
    +                    }
    +                }
    +            }
    +
    +            // treat SHAREDFMLA records
    +            if ($this->version == self::XLS_BIFF8) {
    +                foreach ($this->sharedFormulaParts as $cell => $baseCell) {
    +                    list($column, $row) = Coordinate::coordinateFromString($cell);
    +                    if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($column, $row, $this->phpSheet->getTitle())) {
    +                        $formula = $this->getFormulaFromStructure($this->sharedFormulas[$baseCell], $cell);
    +                        $this->phpSheet->getCell($cell)->setValueExplicit('=' . $formula, DataType::TYPE_FORMULA);
    +                    }
    +                }
    +            }
    +
    +            if (!empty($this->cellNotes)) {
    +                foreach ($this->cellNotes as $note => $noteDetails) {
    +                    if (!isset($noteDetails['objTextData'])) {
    +                        if (isset($this->textObjects[$note])) {
    +                            $textObject = $this->textObjects[$note];
    +                            $noteDetails['objTextData'] = $textObject;
    +                        } else {
    +                            $noteDetails['objTextData']['text'] = '';
    +                        }
    +                    }
    +                    $cellAddress = str_replace('$', '', $noteDetails['cellRef']);
    +                    $this->phpSheet->getComment($cellAddress)->setAuthor($noteDetails['author'])->setText($this->parseRichText($noteDetails['objTextData']['text']));
    +                }
    +            }
    +        }
    +
    +        // add the named ranges (defined names)
    +        foreach ($this->definedname as $definedName) {
    +            if ($definedName['isBuiltInName']) {
    +                switch ($definedName['name']) {
    +                    case pack('C', 0x06):
    +                        // print area
    +                        //    in general, formula looks like this: Foo!$C$7:$J$66,Bar!$A$1:$IV$2
    +                        $ranges = explode(',', $definedName['formula']); // FIXME: what if sheetname contains comma?
    +
    +                        $extractedRanges = [];
    +                        foreach ($ranges as $range) {
    +                            // $range should look like one of these
    +                            //        Foo!$C$7:$J$66
    +                            //        Bar!$A$1:$IV$2
    +                            $explodes = Worksheet::extractSheetTitle($range, true);
    +                            $sheetName = trim($explodes[0], "'");
    +                            if (count($explodes) == 2) {
    +                                if (strpos($explodes[1], ':') === false) {
    +                                    $explodes[1] = $explodes[1] . ':' . $explodes[1];
    +                                }
    +                                $extractedRanges[] = str_replace('$', '', $explodes[1]); // C7:J66
    +                            }
    +                        }
    +                        if ($docSheet = $this->spreadsheet->getSheetByName($sheetName)) {
    +                            $docSheet->getPageSetup()->setPrintArea(implode(',', $extractedRanges)); // C7:J66,A1:IV2
    +                        }
    +
    +                        break;
    +                    case pack('C', 0x07):
    +                        // print titles (repeating rows)
    +                        // Assuming BIFF8, there are 3 cases
    +                        // 1. repeating rows
    +                        //        formula looks like this: Sheet!$A$1:$IV$2
    +                        //        rows 1-2 repeat
    +                        // 2. repeating columns
    +                        //        formula looks like this: Sheet!$A$1:$B$65536
    +                        //        columns A-B repeat
    +                        // 3. both repeating rows and repeating columns
    +                        //        formula looks like this: Sheet!$A$1:$B$65536,Sheet!$A$1:$IV$2
    +                        $ranges = explode(',', $definedName['formula']); // FIXME: what if sheetname contains comma?
    +                        foreach ($ranges as $range) {
    +                            // $range should look like this one of these
    +                            //        Sheet!$A$1:$B$65536
    +                            //        Sheet!$A$1:$IV$2
    +                            if (strpos($range, '!') !== false) {
    +                                $explodes = Worksheet::extractSheetTitle($range, true);
    +                                if ($docSheet = $this->spreadsheet->getSheetByName($explodes[0])) {
    +                                    $extractedRange = $explodes[1];
    +                                    $extractedRange = str_replace('$', '', $extractedRange);
    +
    +                                    $coordinateStrings = explode(':', $extractedRange);
    +                                    if (count($coordinateStrings) == 2) {
    +                                        list($firstColumn, $firstRow) = Coordinate::coordinateFromString($coordinateStrings[0]);
    +                                        list($lastColumn, $lastRow) = Coordinate::coordinateFromString($coordinateStrings[1]);
    +
    +                                        if ($firstColumn == 'A' and $lastColumn == 'IV') {
    +                                            // then we have repeating rows
    +                                            $docSheet->getPageSetup()->setRowsToRepeatAtTop([$firstRow, $lastRow]);
    +                                        } elseif ($firstRow == 1 and $lastRow == 65536) {
    +                                            // then we have repeating columns
    +                                            $docSheet->getPageSetup()->setColumnsToRepeatAtLeft([$firstColumn, $lastColumn]);
    +                                        }
    +                                    }
    +                                }
    +                            }
    +                        }
    +
    +                        break;
    +                }
    +            } else {
    +                // Extract range
    +                if (strpos($definedName['formula'], '!') !== false) {
    +                    $explodes = Worksheet::extractSheetTitle($definedName['formula'], true);
    +                    if (($docSheet = $this->spreadsheet->getSheetByName($explodes[0])) ||
    +                        ($docSheet = $this->spreadsheet->getSheetByName(trim($explodes[0], "'")))) {
    +                        $extractedRange = $explodes[1];
    +                        $extractedRange = str_replace('$', '', $extractedRange);
    +
    +                        $localOnly = ($definedName['scope'] == 0) ? false : true;
    +
    +                        $scope = ($definedName['scope'] == 0) ? null : $this->spreadsheet->getSheetByName($this->sheets[$definedName['scope'] - 1]['name']);
    +
    +                        $this->spreadsheet->addNamedRange(new NamedRange((string) $definedName['name'], $docSheet, $extractedRange, $localOnly, $scope));
    +                    }
    +                }
    +                //    Named Value
    +                    //    TODO Provide support for named values
    +            }
    +        }
    +        $this->data = null;
    +
    +        return $this->spreadsheet;
    +    }
    +
    +    /**
    +     * Read record data from stream, decrypting as required.
    +     *
    +     * @param string $data Data stream to read from
    +     * @param int $pos Position to start reading from
    +     * @param int $len Record data length
    +     *
    +     * @return string Record data
    +     */
    +    private function readRecordData($data, $pos, $len)
    +    {
    +        $data = substr($data, $pos, $len);
    +
    +        // File not encrypted, or record before encryption start point
    +        if ($this->encryption == self::MS_BIFF_CRYPTO_NONE || $pos < $this->encryptionStartPos) {
    +            return $data;
    +        }
    +
    +        $recordData = '';
    +        if ($this->encryption == self::MS_BIFF_CRYPTO_RC4) {
    +            $oldBlock = floor($this->rc4Pos / self::REKEY_BLOCK);
    +            $block = floor($pos / self::REKEY_BLOCK);
    +            $endBlock = floor(($pos + $len) / self::REKEY_BLOCK);
    +
    +            // Spin an RC4 decryptor to the right spot. If we have a decryptor sitting
    +            // at a point earlier in the current block, re-use it as we can save some time.
    +            if ($block != $oldBlock || $pos < $this->rc4Pos || !$this->rc4Key) {
    +                $this->rc4Key = $this->makeKey($block, $this->md5Ctxt);
    +                $step = $pos % self::REKEY_BLOCK;
    +            } else {
    +                $step = $pos - $this->rc4Pos;
    +            }
    +            $this->rc4Key->RC4(str_repeat("\0", $step));
    +
    +            // Decrypt record data (re-keying at the end of every block)
    +            while ($block != $endBlock) {
    +                $step = self::REKEY_BLOCK - ($pos % self::REKEY_BLOCK);
    +                $recordData .= $this->rc4Key->RC4(substr($data, 0, $step));
    +                $data = substr($data, $step);
    +                $pos += $step;
    +                $len -= $step;
    +                ++$block;
    +                $this->rc4Key = $this->makeKey($block, $this->md5Ctxt);
    +            }
    +            $recordData .= $this->rc4Key->RC4(substr($data, 0, $len));
    +
    +            // Keep track of the position of this decryptor.
    +            // We'll try and re-use it later if we can to speed things up
    +            $this->rc4Pos = $pos + $len;
    +        } elseif ($this->encryption == self::MS_BIFF_CRYPTO_XOR) {
    +            throw new Exception('XOr encryption not supported');
    +        }
    +
    +        return $recordData;
    +    }
    +
    +    /**
    +     * Use OLE reader to extract the relevant data streams from the OLE file.
    +     *
    +     * @param string $pFilename
    +     */
    +    private function loadOLE($pFilename)
    +    {
    +        // OLE reader
    +        $ole = new OLERead();
    +        // get excel data,
    +        $ole->read($pFilename);
    +        // Get workbook data: workbook stream + sheet streams
    +        $this->data = $ole->getStream($ole->wrkbook);
    +        // Get summary information data
    +        $this->summaryInformation = $ole->getStream($ole->summaryInformation);
    +        // Get additional document summary information data
    +        $this->documentSummaryInformation = $ole->getStream($ole->documentSummaryInformation);
    +    }
    +
    +    /**
    +     * Read summary information.
    +     */
    +    private function readSummaryInformation()
    +    {
    +        if (!isset($this->summaryInformation)) {
    +            return;
    +        }
    +
    +        // offset: 0; size: 2; must be 0xFE 0xFF (UTF-16 LE byte order mark)
    +        // offset: 2; size: 2;
    +        // offset: 4; size: 2; OS version
    +        // offset: 6; size: 2; OS indicator
    +        // offset: 8; size: 16
    +        // offset: 24; size: 4; section count
    +        $secCount = self::getInt4d($this->summaryInformation, 24);
    +
    +        // offset: 28; size: 16; first section's class id: e0 85 9f f2 f9 4f 68 10 ab 91 08 00 2b 27 b3 d9
    +        // offset: 44; size: 4
    +        $secOffset = self::getInt4d($this->summaryInformation, 44);
    +
    +        // section header
    +        // offset: $secOffset; size: 4; section length
    +        $secLength = self::getInt4d($this->summaryInformation, $secOffset);
    +
    +        // offset: $secOffset+4; size: 4; property count
    +        $countProperties = self::getInt4d($this->summaryInformation, $secOffset + 4);
    +
    +        // initialize code page (used to resolve string values)
    +        $codePage = 'CP1252';
    +
    +        // offset: ($secOffset+8); size: var
    +        // loop through property decarations and properties
    +        for ($i = 0; $i < $countProperties; ++$i) {
    +            // offset: ($secOffset+8) + (8 * $i); size: 4; property ID
    +            $id = self::getInt4d($this->summaryInformation, ($secOffset + 8) + (8 * $i));
    +
    +            // Use value of property id as appropriate
    +            // offset: ($secOffset+12) + (8 * $i); size: 4; offset from beginning of section (48)
    +            $offset = self::getInt4d($this->summaryInformation, ($secOffset + 12) + (8 * $i));
    +
    +            $type = self::getInt4d($this->summaryInformation, $secOffset + $offset);
    +
    +            // initialize property value
    +            $value = null;
    +
    +            // extract property value based on property type
    +            switch ($type) {
    +                case 0x02: // 2 byte signed integer
    +                    $value = self::getUInt2d($this->summaryInformation, $secOffset + 4 + $offset);
    +
    +                    break;
    +                case 0x03: // 4 byte signed integer
    +                    $value = self::getInt4d($this->summaryInformation, $secOffset + 4 + $offset);
    +
    +                    break;
    +                case 0x13: // 4 byte unsigned integer
    +                    // not needed yet, fix later if necessary
    +                    break;
    +                case 0x1E: // null-terminated string prepended by dword string length
    +                    $byteLength = self::getInt4d($this->summaryInformation, $secOffset + 4 + $offset);
    +                    $value = substr($this->summaryInformation, $secOffset + 8 + $offset, $byteLength);
    +                    $value = StringHelper::convertEncoding($value, 'UTF-8', $codePage);
    +                    $value = rtrim($value);
    +
    +                    break;
    +                case 0x40: // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601)
    +                    // PHP-time
    +                    $value = OLE::OLE2LocalDate(substr($this->summaryInformation, $secOffset + 4 + $offset, 8));
    +
    +                    break;
    +                case 0x47: // Clipboard format
    +                    // not needed yet, fix later if necessary
    +                    break;
    +            }
    +
    +            switch ($id) {
    +                case 0x01:    //    Code Page
    +                    $codePage = CodePage::numberToName($value);
    +
    +                    break;
    +                case 0x02:    //    Title
    +                    $this->spreadsheet->getProperties()->setTitle($value);
    +
    +                    break;
    +                case 0x03:    //    Subject
    +                    $this->spreadsheet->getProperties()->setSubject($value);
    +
    +                    break;
    +                case 0x04:    //    Author (Creator)
    +                    $this->spreadsheet->getProperties()->setCreator($value);
    +
    +                    break;
    +                case 0x05:    //    Keywords
    +                    $this->spreadsheet->getProperties()->setKeywords($value);
    +
    +                    break;
    +                case 0x06:    //    Comments (Description)
    +                    $this->spreadsheet->getProperties()->setDescription($value);
    +
    +                    break;
    +                case 0x07:    //    Template
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x08:    //    Last Saved By (LastModifiedBy)
    +                    $this->spreadsheet->getProperties()->setLastModifiedBy($value);
    +
    +                    break;
    +                case 0x09:    //    Revision
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x0A:    //    Total Editing Time
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x0B:    //    Last Printed
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x0C:    //    Created Date/Time
    +                    $this->spreadsheet->getProperties()->setCreated($value);
    +
    +                    break;
    +                case 0x0D:    //    Modified Date/Time
    +                    $this->spreadsheet->getProperties()->setModified($value);
    +
    +                    break;
    +                case 0x0E:    //    Number of Pages
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x0F:    //    Number of Words
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x10:    //    Number of Characters
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x11:    //    Thumbnail
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x12:    //    Name of creating application
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x13:    //    Security
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read additional document summary information.
    +     */
    +    private function readDocumentSummaryInformation()
    +    {
    +        if (!isset($this->documentSummaryInformation)) {
    +            return;
    +        }
    +
    +        //    offset: 0;    size: 2;    must be 0xFE 0xFF (UTF-16 LE byte order mark)
    +        //    offset: 2;    size: 2;
    +        //    offset: 4;    size: 2;    OS version
    +        //    offset: 6;    size: 2;    OS indicator
    +        //    offset: 8;    size: 16
    +        //    offset: 24;    size: 4;    section count
    +        $secCount = self::getInt4d($this->documentSummaryInformation, 24);
    +
    +        // offset: 28;    size: 16;    first section's class id: 02 d5 cd d5 9c 2e 1b 10 93 97 08 00 2b 2c f9 ae
    +        // offset: 44;    size: 4;    first section offset
    +        $secOffset = self::getInt4d($this->documentSummaryInformation, 44);
    +
    +        //    section header
    +        //    offset: $secOffset;    size: 4;    section length
    +        $secLength = self::getInt4d($this->documentSummaryInformation, $secOffset);
    +
    +        //    offset: $secOffset+4;    size: 4;    property count
    +        $countProperties = self::getInt4d($this->documentSummaryInformation, $secOffset + 4);
    +
    +        // initialize code page (used to resolve string values)
    +        $codePage = 'CP1252';
    +
    +        //    offset: ($secOffset+8);    size: var
    +        //    loop through property decarations and properties
    +        for ($i = 0; $i < $countProperties; ++$i) {
    +            //    offset: ($secOffset+8) + (8 * $i);    size: 4;    property ID
    +            $id = self::getInt4d($this->documentSummaryInformation, ($secOffset + 8) + (8 * $i));
    +
    +            // Use value of property id as appropriate
    +            // offset: 60 + 8 * $i;    size: 4;    offset from beginning of section (48)
    +            $offset = self::getInt4d($this->documentSummaryInformation, ($secOffset + 12) + (8 * $i));
    +
    +            $type = self::getInt4d($this->documentSummaryInformation, $secOffset + $offset);
    +
    +            // initialize property value
    +            $value = null;
    +
    +            // extract property value based on property type
    +            switch ($type) {
    +                case 0x02:    //    2 byte signed integer
    +                    $value = self::getUInt2d($this->documentSummaryInformation, $secOffset + 4 + $offset);
    +
    +                    break;
    +                case 0x03:    //    4 byte signed integer
    +                    $value = self::getInt4d($this->documentSummaryInformation, $secOffset + 4 + $offset);
    +
    +                    break;
    +                case 0x0B:  // Boolean
    +                    $value = self::getUInt2d($this->documentSummaryInformation, $secOffset + 4 + $offset);
    +                    $value = ($value == 0 ? false : true);
    +
    +                    break;
    +                case 0x13:    //    4 byte unsigned integer
    +                    // not needed yet, fix later if necessary
    +                    break;
    +                case 0x1E:    //    null-terminated string prepended by dword string length
    +                    $byteLength = self::getInt4d($this->documentSummaryInformation, $secOffset + 4 + $offset);
    +                    $value = substr($this->documentSummaryInformation, $secOffset + 8 + $offset, $byteLength);
    +                    $value = StringHelper::convertEncoding($value, 'UTF-8', $codePage);
    +                    $value = rtrim($value);
    +
    +                    break;
    +                case 0x40:    //    Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601)
    +                    // PHP-Time
    +                    $value = OLE::OLE2LocalDate(substr($this->documentSummaryInformation, $secOffset + 4 + $offset, 8));
    +
    +                    break;
    +                case 0x47:    //    Clipboard format
    +                    // not needed yet, fix later if necessary
    +                    break;
    +            }
    +
    +            switch ($id) {
    +                case 0x01:    //    Code Page
    +                    $codePage = CodePage::numberToName($value);
    +
    +                    break;
    +                case 0x02:    //    Category
    +                    $this->spreadsheet->getProperties()->setCategory($value);
    +
    +                    break;
    +                case 0x03:    //    Presentation Target
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x04:    //    Bytes
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x05:    //    Lines
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x06:    //    Paragraphs
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x07:    //    Slides
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x08:    //    Notes
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x09:    //    Hidden Slides
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x0A:    //    MM Clips
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x0B:    //    Scale Crop
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x0C:    //    Heading Pairs
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x0D:    //    Titles of Parts
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +                case 0x0E:    //    Manager
    +                    $this->spreadsheet->getProperties()->setManager($value);
    +
    +                    break;
    +                case 0x0F:    //    Company
    +                    $this->spreadsheet->getProperties()->setCompany($value);
    +
    +                    break;
    +                case 0x10:    //    Links up-to-date
    +                    //    Not supported by PhpSpreadsheet
    +                    break;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Reads a general type of BIFF record. Does nothing except for moving stream pointer forward to next record.
    +     */
    +    private function readDefault()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +    }
    +
    +    /**
    +     *    The NOTE record specifies a comment associated with a particular cell. In Excel 95 (BIFF7) and earlier versions,
    +     *        this record stores a note (cell note). This feature was significantly enhanced in Excel 97.
    +     */
    +    private function readNote()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->readDataOnly) {
    +            return;
    +        }
    +
    +        $cellAddress = $this->readBIFF8CellAddress(substr($recordData, 0, 4));
    +        if ($this->version == self::XLS_BIFF8) {
    +            $noteObjID = self::getUInt2d($recordData, 6);
    +            $noteAuthor = self::readUnicodeStringLong(substr($recordData, 8));
    +            $noteAuthor = $noteAuthor['value'];
    +            $this->cellNotes[$noteObjID] = [
    +                'cellRef' => $cellAddress,
    +                'objectID' => $noteObjID,
    +                'author' => $noteAuthor,
    +            ];
    +        } else {
    +            $extension = false;
    +            if ($cellAddress == '$B$65536') {
    +                //    If the address row is -1 and the column is 0, (which translates as $B$65536) then this is a continuation
    +                //        note from the previous cell annotation. We're not yet handling this, so annotations longer than the
    +                //        max 2048 bytes will probably throw a wobbly.
    +                $row = self::getUInt2d($recordData, 0);
    +                $extension = true;
    +                $cellAddress = array_pop(array_keys($this->phpSheet->getComments()));
    +            }
    +
    +            $cellAddress = str_replace('$', '', $cellAddress);
    +            $noteLength = self::getUInt2d($recordData, 4);
    +            $noteText = trim(substr($recordData, 6));
    +
    +            if ($extension) {
    +                //    Concatenate this extension with the currently set comment for the cell
    +                $comment = $this->phpSheet->getComment($cellAddress);
    +                $commentText = $comment->getText()->getPlainText();
    +                $comment->setText($this->parseRichText($commentText . $noteText));
    +            } else {
    +                //    Set comment for the cell
    +                $this->phpSheet->getComment($cellAddress)->setText($this->parseRichText($noteText));
    +//                                                    ->setAuthor($author)
    +            }
    +        }
    +    }
    +
    +    /**
    +     * The TEXT Object record contains the text associated with a cell annotation.
    +     */
    +    private function readTextObject()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->readDataOnly) {
    +            return;
    +        }
    +
    +        // recordData consists of an array of subrecords looking like this:
    +        //    grbit: 2 bytes; Option Flags
    +        //    rot: 2 bytes; rotation
    +        //    cchText: 2 bytes; length of the text (in the first continue record)
    +        //    cbRuns: 2 bytes; length of the formatting (in the second continue record)
    +        // followed by the continuation records containing the actual text and formatting
    +        $grbitOpts = self::getUInt2d($recordData, 0);
    +        $rot = self::getUInt2d($recordData, 2);
    +        $cchText = self::getUInt2d($recordData, 10);
    +        $cbRuns = self::getUInt2d($recordData, 12);
    +        $text = $this->getSplicedRecordData();
    +
    +        $textByte = $text['spliceOffsets'][1] - $text['spliceOffsets'][0] - 1;
    +        $textStr = substr($text['recordData'], $text['spliceOffsets'][0] + 1, $textByte);
    +        // get 1 byte
    +        $is16Bit = ord($text['recordData'][0]);
    +        // it is possible to use a compressed format,
    +        // which omits the high bytes of all characters, if they are all zero
    +        if (($is16Bit & 0x01) === 0) {
    +            $textStr = StringHelper::ConvertEncoding($textStr, 'UTF-8', 'ISO-8859-1');
    +        } else {
    +            $textStr = $this->decodeCodepage($textStr);
    +        }
    +
    +        $this->textObjects[$this->textObjRef] = [
    +            'text' => $textStr,
    +            'format' => substr($text['recordData'], $text['spliceOffsets'][1], $cbRuns),
    +            'alignment' => $grbitOpts,
    +            'rotation' => $rot,
    +        ];
    +    }
    +
    +    /**
    +     * Read BOF.
    +     */
    +    private function readBof()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = substr($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 2; size: 2; type of the following data
    +        $substreamType = self::getUInt2d($recordData, 2);
    +
    +        switch ($substreamType) {
    +            case self::XLS_WORKBOOKGLOBALS:
    +                $version = self::getUInt2d($recordData, 0);
    +                if (($version != self::XLS_BIFF8) && ($version != self::XLS_BIFF7)) {
    +                    throw new Exception('Cannot read this Excel file. Version is too old.');
    +                }
    +                $this->version = $version;
    +
    +                break;
    +            case self::XLS_WORKSHEET:
    +                // do not use this version information for anything
    +                // it is unreliable (OpenOffice doc, 5.8), use only version information from the global stream
    +                break;
    +            default:
    +                // substream, e.g. chart
    +                // just skip the entire substream
    +                do {
    +                    $code = self::getUInt2d($this->data, $this->pos);
    +                    $this->readDefault();
    +                } while ($code != self::XLS_TYPE_EOF && $this->pos < $this->dataSize);
    +
    +                break;
    +        }
    +    }
    +
    +    /**
    +     * FILEPASS.
    +     *
    +     * This record is part of the File Protection Block. It
    +     * contains information about the read/write password of the
    +     * file. All record contents following this record will be
    +     * encrypted.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     *
    +     * The decryption functions and objects used from here on in
    +     * are based on the source of Spreadsheet-ParseExcel:
    +     * https://metacpan.org/release/Spreadsheet-ParseExcel
    +     */
    +    private function readFilepass()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +
    +        if ($length != 54) {
    +            throw new Exception('Unexpected file pass record length');
    +        }
    +
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->verifyPassword('VelvetSweatshop', substr($recordData, 6, 16), substr($recordData, 22, 16), substr($recordData, 38, 16), $this->md5Ctxt)) {
    +            throw new Exception('Decryption password incorrect');
    +        }
    +
    +        $this->encryption = self::MS_BIFF_CRYPTO_RC4;
    +
    +        // Decryption required from the record after next onwards
    +        $this->encryptionStartPos = $this->pos + self::getUInt2d($this->data, $this->pos + 2);
    +    }
    +
    +    /**
    +     * Make an RC4 decryptor for the given block.
    +     *
    +     * @param int $block Block for which to create decrypto
    +     * @param string $valContext MD5 context state
    +     *
    +     * @return Xls\RC4
    +     */
    +    private function makeKey($block, $valContext)
    +    {
    +        $pwarray = str_repeat("\0", 64);
    +
    +        for ($i = 0; $i < 5; ++$i) {
    +            $pwarray[$i] = $valContext[$i];
    +        }
    +
    +        $pwarray[5] = chr($block & 0xff);
    +        $pwarray[6] = chr(($block >> 8) & 0xff);
    +        $pwarray[7] = chr(($block >> 16) & 0xff);
    +        $pwarray[8] = chr(($block >> 24) & 0xff);
    +
    +        $pwarray[9] = "\x80";
    +        $pwarray[56] = "\x48";
    +
    +        $md5 = new Xls\MD5();
    +        $md5->add($pwarray);
    +
    +        $s = $md5->getContext();
    +
    +        return new Xls\RC4($s);
    +    }
    +
    +    /**
    +     * Verify RC4 file password.
    +     *
    +     * @param string $password Password to check
    +     * @param string $docid Document id
    +     * @param string $salt_data Salt data
    +     * @param string $hashedsalt_data Hashed salt data
    +     * @param string $valContext Set to the MD5 context of the value
    +     *
    +     * @return bool Success
    +     */
    +    private function verifyPassword($password, $docid, $salt_data, $hashedsalt_data, &$valContext)
    +    {
    +        $pwarray = str_repeat("\0", 64);
    +
    +        $iMax = strlen($password);
    +        for ($i = 0; $i < $iMax; ++$i) {
    +            $o = ord(substr($password, $i, 1));
    +            $pwarray[2 * $i] = chr($o & 0xff);
    +            $pwarray[2 * $i + 1] = chr(($o >> 8) & 0xff);
    +        }
    +        $pwarray[2 * $i] = chr(0x80);
    +        $pwarray[56] = chr(($i << 4) & 0xff);
    +
    +        $md5 = new Xls\MD5();
    +        $md5->add($pwarray);
    +
    +        $mdContext1 = $md5->getContext();
    +
    +        $offset = 0;
    +        $keyoffset = 0;
    +        $tocopy = 5;
    +
    +        $md5->reset();
    +
    +        while ($offset != 16) {
    +            if ((64 - $offset) < 5) {
    +                $tocopy = 64 - $offset;
    +            }
    +            for ($i = 0; $i <= $tocopy; ++$i) {
    +                $pwarray[$offset + $i] = $mdContext1[$keyoffset + $i];
    +            }
    +            $offset += $tocopy;
    +
    +            if ($offset == 64) {
    +                $md5->add($pwarray);
    +                $keyoffset = $tocopy;
    +                $tocopy = 5 - $tocopy;
    +                $offset = 0;
    +
    +                continue;
    +            }
    +
    +            $keyoffset = 0;
    +            $tocopy = 5;
    +            for ($i = 0; $i < 16; ++$i) {
    +                $pwarray[$offset + $i] = $docid[$i];
    +            }
    +            $offset += 16;
    +        }
    +
    +        $pwarray[16] = "\x80";
    +        for ($i = 0; $i < 47; ++$i) {
    +            $pwarray[17 + $i] = "\0";
    +        }
    +        $pwarray[56] = "\x80";
    +        $pwarray[57] = "\x0a";
    +
    +        $md5->add($pwarray);
    +        $valContext = $md5->getContext();
    +
    +        $key = $this->makeKey(0, $valContext);
    +
    +        $salt = $key->RC4($salt_data);
    +        $hashedsalt = $key->RC4($hashedsalt_data);
    +
    +        $salt .= "\x80" . str_repeat("\0", 47);
    +        $salt[56] = "\x80";
    +
    +        $md5->reset();
    +        $md5->add($salt);
    +        $mdContext2 = $md5->getContext();
    +
    +        return $mdContext2 == $hashedsalt;
    +    }
    +
    +    /**
    +     * CODEPAGE.
    +     *
    +     * This record stores the text encoding used to write byte
    +     * strings, stored as MS Windows code page identifier.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readCodepage()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; code page identifier
    +        $codepage = self::getUInt2d($recordData, 0);
    +
    +        $this->codepage = CodePage::numberToName($codepage);
    +    }
    +
    +    /**
    +     * DATEMODE.
    +     *
    +     * This record specifies the base date for displaying date
    +     * values. All dates are stored as count of days past this
    +     * base date. In BIFF2-BIFF4 this record is part of the
    +     * Calculation Settings Block. In BIFF5-BIFF8 it is
    +     * stored in the Workbook Globals Substream.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readDateMode()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; 0 = base 1900, 1 = base 1904
    +        Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900);
    +        if (ord($recordData[0]) == 1) {
    +            Date::setExcelCalendar(Date::CALENDAR_MAC_1904);
    +        }
    +    }
    +
    +    /**
    +     * Read a FONT record.
    +     */
    +    private function readFont()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            $objFont = new Font();
    +
    +            // offset: 0; size: 2; height of the font (in twips = 1/20 of a point)
    +            $size = self::getUInt2d($recordData, 0);
    +            $objFont->setSize($size / 20);
    +
    +            // offset: 2; size: 2; option flags
    +            // bit: 0; mask 0x0001; bold (redundant in BIFF5-BIFF8)
    +            // bit: 1; mask 0x0002; italic
    +            $isItalic = (0x0002 & self::getUInt2d($recordData, 2)) >> 1;
    +            if ($isItalic) {
    +                $objFont->setItalic(true);
    +            }
    +
    +            // bit: 2; mask 0x0004; underlined (redundant in BIFF5-BIFF8)
    +            // bit: 3; mask 0x0008; strikethrough
    +            $isStrike = (0x0008 & self::getUInt2d($recordData, 2)) >> 3;
    +            if ($isStrike) {
    +                $objFont->setStrikethrough(true);
    +            }
    +
    +            // offset: 4; size: 2; colour index
    +            $colorIndex = self::getUInt2d($recordData, 4);
    +            $objFont->colorIndex = $colorIndex;
    +
    +            // offset: 6; size: 2; font weight
    +            $weight = self::getUInt2d($recordData, 6);
    +            switch ($weight) {
    +                case 0x02BC:
    +                    $objFont->setBold(true);
    +
    +                    break;
    +            }
    +
    +            // offset: 8; size: 2; escapement type
    +            $escapement = self::getUInt2d($recordData, 8);
    +            switch ($escapement) {
    +                case 0x0001:
    +                    $objFont->setSuperscript(true);
    +
    +                    break;
    +                case 0x0002:
    +                    $objFont->setSubscript(true);
    +
    +                    break;
    +            }
    +
    +            // offset: 10; size: 1; underline type
    +            $underlineType = ord($recordData[10]);
    +            switch ($underlineType) {
    +                case 0x00:
    +                    break; // no underline
    +                case 0x01:
    +                    $objFont->setUnderline(Font::UNDERLINE_SINGLE);
    +
    +                    break;
    +                case 0x02:
    +                    $objFont->setUnderline(Font::UNDERLINE_DOUBLE);
    +
    +                    break;
    +                case 0x21:
    +                    $objFont->setUnderline(Font::UNDERLINE_SINGLEACCOUNTING);
    +
    +                    break;
    +                case 0x22:
    +                    $objFont->setUnderline(Font::UNDERLINE_DOUBLEACCOUNTING);
    +
    +                    break;
    +            }
    +
    +            // offset: 11; size: 1; font family
    +            // offset: 12; size: 1; character set
    +            // offset: 13; size: 1; not used
    +            // offset: 14; size: var; font name
    +            if ($this->version == self::XLS_BIFF8) {
    +                $string = self::readUnicodeStringShort(substr($recordData, 14));
    +            } else {
    +                $string = $this->readByteStringShort(substr($recordData, 14));
    +            }
    +            $objFont->setName($string['value']);
    +
    +            $this->objFonts[] = $objFont;
    +        }
    +    }
    +
    +    /**
    +     * FORMAT.
    +     *
    +     * This record contains information about a number format.
    +     * All FORMAT records occur together in a sequential list.
    +     *
    +     * In BIFF2-BIFF4 other records referencing a FORMAT record
    +     * contain a zero-based index into this list. From BIFF5 on
    +     * the FORMAT record contains the index itself that will be
    +     * used by other records.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readFormat()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            $indexCode = self::getUInt2d($recordData, 0);
    +
    +            if ($this->version == self::XLS_BIFF8) {
    +                $string = self::readUnicodeStringLong(substr($recordData, 2));
    +            } else {
    +                // BIFF7
    +                $string = $this->readByteStringShort(substr($recordData, 2));
    +            }
    +
    +            $formatString = $string['value'];
    +            $this->formats[$indexCode] = $formatString;
    +        }
    +    }
    +
    +    /**
    +     * XF - Extended Format.
    +     *
    +     * This record contains formatting information for cells, rows, columns or styles.
    +     * According to https://support.microsoft.com/en-us/help/147732 there are always at least 15 cell style XF
    +     * and 1 cell XF.
    +     * Inspection of Excel files generated by MS Office Excel shows that XF records 0-14 are cell style XF
    +     * and XF record 15 is a cell XF
    +     * We only read the first cell style XF and skip the remaining cell style XF records
    +     * We read all cell XF records.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readXf()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        $objStyle = new Style();
    +
    +        if (!$this->readDataOnly) {
    +            // offset:  0; size: 2; Index to FONT record
    +            if (self::getUInt2d($recordData, 0) < 4) {
    +                $fontIndex = self::getUInt2d($recordData, 0);
    +            } else {
    +                // this has to do with that index 4 is omitted in all BIFF versions for some strange reason
    +                // check the OpenOffice documentation of the FONT record
    +                $fontIndex = self::getUInt2d($recordData, 0) - 1;
    +            }
    +            $objStyle->setFont($this->objFonts[$fontIndex]);
    +
    +            // offset:  2; size: 2; Index to FORMAT record
    +            $numberFormatIndex = self::getUInt2d($recordData, 2);
    +            if (isset($this->formats[$numberFormatIndex])) {
    +                // then we have user-defined format code
    +                $numberFormat = ['formatCode' => $this->formats[$numberFormatIndex]];
    +            } elseif (($code = NumberFormat::builtInFormatCode($numberFormatIndex)) !== '') {
    +                // then we have built-in format code
    +                $numberFormat = ['formatCode' => $code];
    +            } else {
    +                // we set the general format code
    +                $numberFormat = ['formatCode' => 'General'];
    +            }
    +            $objStyle->getNumberFormat()->setFormatCode($numberFormat['formatCode']);
    +
    +            // offset:  4; size: 2; XF type, cell protection, and parent style XF
    +            // bit 2-0; mask 0x0007; XF_TYPE_PROT
    +            $xfTypeProt = self::getUInt2d($recordData, 4);
    +            // bit 0; mask 0x01; 1 = cell is locked
    +            $isLocked = (0x01 & $xfTypeProt) >> 0;
    +            $objStyle->getProtection()->setLocked($isLocked ? Protection::PROTECTION_INHERIT : Protection::PROTECTION_UNPROTECTED);
    +
    +            // bit 1; mask 0x02; 1 = Formula is hidden
    +            $isHidden = (0x02 & $xfTypeProt) >> 1;
    +            $objStyle->getProtection()->setHidden($isHidden ? Protection::PROTECTION_PROTECTED : Protection::PROTECTION_UNPROTECTED);
    +
    +            // bit 2; mask 0x04; 0 = Cell XF, 1 = Cell Style XF
    +            $isCellStyleXf = (0x04 & $xfTypeProt) >> 2;
    +
    +            // offset:  6; size: 1; Alignment and text break
    +            // bit 2-0, mask 0x07; horizontal alignment
    +            $horAlign = (0x07 & ord($recordData[6])) >> 0;
    +            switch ($horAlign) {
    +                case 0:
    +                    $objStyle->getAlignment()->setHorizontal(Alignment::HORIZONTAL_GENERAL);
    +
    +                    break;
    +                case 1:
    +                    $objStyle->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT);
    +
    +                    break;
    +                case 2:
    +                    $objStyle->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
    +
    +                    break;
    +                case 3:
    +                    $objStyle->getAlignment()->setHorizontal(Alignment::HORIZONTAL_RIGHT);
    +
    +                    break;
    +                case 4:
    +                    $objStyle->getAlignment()->setHorizontal(Alignment::HORIZONTAL_FILL);
    +
    +                    break;
    +                case 5:
    +                    $objStyle->getAlignment()->setHorizontal(Alignment::HORIZONTAL_JUSTIFY);
    +
    +                    break;
    +                case 6:
    +                    $objStyle->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER_CONTINUOUS);
    +
    +                    break;
    +            }
    +            // bit 3, mask 0x08; wrap text
    +            $wrapText = (0x08 & ord($recordData[6])) >> 3;
    +            switch ($wrapText) {
    +                case 0:
    +                    $objStyle->getAlignment()->setWrapText(false);
    +
    +                    break;
    +                case 1:
    +                    $objStyle->getAlignment()->setWrapText(true);
    +
    +                    break;
    +            }
    +            // bit 6-4, mask 0x70; vertical alignment
    +            $vertAlign = (0x70 & ord($recordData[6])) >> 4;
    +            switch ($vertAlign) {
    +                case 0:
    +                    $objStyle->getAlignment()->setVertical(Alignment::VERTICAL_TOP);
    +
    +                    break;
    +                case 1:
    +                    $objStyle->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
    +
    +                    break;
    +                case 2:
    +                    $objStyle->getAlignment()->setVertical(Alignment::VERTICAL_BOTTOM);
    +
    +                    break;
    +                case 3:
    +                    $objStyle->getAlignment()->setVertical(Alignment::VERTICAL_JUSTIFY);
    +
    +                    break;
    +            }
    +
    +            if ($this->version == self::XLS_BIFF8) {
    +                // offset:  7; size: 1; XF_ROTATION: Text rotation angle
    +                $angle = ord($recordData[7]);
    +                $rotation = 0;
    +                if ($angle <= 90) {
    +                    $rotation = $angle;
    +                } elseif ($angle <= 180) {
    +                    $rotation = 90 - $angle;
    +                } elseif ($angle == 255) {
    +                    $rotation = -165;
    +                }
    +                $objStyle->getAlignment()->setTextRotation($rotation);
    +
    +                // offset:  8; size: 1; Indentation, shrink to cell size, and text direction
    +                // bit: 3-0; mask: 0x0F; indent level
    +                $indent = (0x0F & ord($recordData[8])) >> 0;
    +                $objStyle->getAlignment()->setIndent($indent);
    +
    +                // bit: 4; mask: 0x10; 1 = shrink content to fit into cell
    +                $shrinkToFit = (0x10 & ord($recordData[8])) >> 4;
    +                switch ($shrinkToFit) {
    +                    case 0:
    +                        $objStyle->getAlignment()->setShrinkToFit(false);
    +
    +                        break;
    +                    case 1:
    +                        $objStyle->getAlignment()->setShrinkToFit(true);
    +
    +                        break;
    +                }
    +
    +                // offset:  9; size: 1; Flags used for attribute groups
    +
    +                // offset: 10; size: 4; Cell border lines and background area
    +                // bit: 3-0; mask: 0x0000000F; left style
    +                if ($bordersLeftStyle = Xls\Style\Border::lookup((0x0000000F & self::getInt4d($recordData, 10)) >> 0)) {
    +                    $objStyle->getBorders()->getLeft()->setBorderStyle($bordersLeftStyle);
    +                }
    +                // bit: 7-4; mask: 0x000000F0; right style
    +                if ($bordersRightStyle = Xls\Style\Border::lookup((0x000000F0 & self::getInt4d($recordData, 10)) >> 4)) {
    +                    $objStyle->getBorders()->getRight()->setBorderStyle($bordersRightStyle);
    +                }
    +                // bit: 11-8; mask: 0x00000F00; top style
    +                if ($bordersTopStyle = Xls\Style\Border::lookup((0x00000F00 & self::getInt4d($recordData, 10)) >> 8)) {
    +                    $objStyle->getBorders()->getTop()->setBorderStyle($bordersTopStyle);
    +                }
    +                // bit: 15-12; mask: 0x0000F000; bottom style
    +                if ($bordersBottomStyle = Xls\Style\Border::lookup((0x0000F000 & self::getInt4d($recordData, 10)) >> 12)) {
    +                    $objStyle->getBorders()->getBottom()->setBorderStyle($bordersBottomStyle);
    +                }
    +                // bit: 22-16; mask: 0x007F0000; left color
    +                $objStyle->getBorders()->getLeft()->colorIndex = (0x007F0000 & self::getInt4d($recordData, 10)) >> 16;
    +
    +                // bit: 29-23; mask: 0x3F800000; right color
    +                $objStyle->getBorders()->getRight()->colorIndex = (0x3F800000 & self::getInt4d($recordData, 10)) >> 23;
    +
    +                // bit: 30; mask: 0x40000000; 1 = diagonal line from top left to right bottom
    +                $diagonalDown = (0x40000000 & self::getInt4d($recordData, 10)) >> 30 ? true : false;
    +
    +                // bit: 31; mask: 0x80000000; 1 = diagonal line from bottom left to top right
    +                $diagonalUp = (0x80000000 & self::getInt4d($recordData, 10)) >> 31 ? true : false;
    +
    +                if ($diagonalUp == false && $diagonalDown == false) {
    +                    $objStyle->getBorders()->setDiagonalDirection(Borders::DIAGONAL_NONE);
    +                } elseif ($diagonalUp == true && $diagonalDown == false) {
    +                    $objStyle->getBorders()->setDiagonalDirection(Borders::DIAGONAL_UP);
    +                } elseif ($diagonalUp == false && $diagonalDown == true) {
    +                    $objStyle->getBorders()->setDiagonalDirection(Borders::DIAGONAL_DOWN);
    +                } elseif ($diagonalUp == true && $diagonalDown == true) {
    +                    $objStyle->getBorders()->setDiagonalDirection(Borders::DIAGONAL_BOTH);
    +                }
    +
    +                // offset: 14; size: 4;
    +                // bit: 6-0; mask: 0x0000007F; top color
    +                $objStyle->getBorders()->getTop()->colorIndex = (0x0000007F & self::getInt4d($recordData, 14)) >> 0;
    +
    +                // bit: 13-7; mask: 0x00003F80; bottom color
    +                $objStyle->getBorders()->getBottom()->colorIndex = (0x00003F80 & self::getInt4d($recordData, 14)) >> 7;
    +
    +                // bit: 20-14; mask: 0x001FC000; diagonal color
    +                $objStyle->getBorders()->getDiagonal()->colorIndex = (0x001FC000 & self::getInt4d($recordData, 14)) >> 14;
    +
    +                // bit: 24-21; mask: 0x01E00000; diagonal style
    +                if ($bordersDiagonalStyle = Xls\Style\Border::lookup((0x01E00000 & self::getInt4d($recordData, 14)) >> 21)) {
    +                    $objStyle->getBorders()->getDiagonal()->setBorderStyle($bordersDiagonalStyle);
    +                }
    +
    +                // bit: 31-26; mask: 0xFC000000 fill pattern
    +                if ($fillType = Xls\Style\FillPattern::lookup((0xFC000000 & self::getInt4d($recordData, 14)) >> 26)) {
    +                    $objStyle->getFill()->setFillType($fillType);
    +                }
    +                // offset: 18; size: 2; pattern and background colour
    +                // bit: 6-0; mask: 0x007F; color index for pattern color
    +                $objStyle->getFill()->startcolorIndex = (0x007F & self::getUInt2d($recordData, 18)) >> 0;
    +
    +                // bit: 13-7; mask: 0x3F80; color index for pattern background
    +                $objStyle->getFill()->endcolorIndex = (0x3F80 & self::getUInt2d($recordData, 18)) >> 7;
    +            } else {
    +                // BIFF5
    +
    +                // offset: 7; size: 1; Text orientation and flags
    +                $orientationAndFlags = ord($recordData[7]);
    +
    +                // bit: 1-0; mask: 0x03; XF_ORIENTATION: Text orientation
    +                $xfOrientation = (0x03 & $orientationAndFlags) >> 0;
    +                switch ($xfOrientation) {
    +                    case 0:
    +                        $objStyle->getAlignment()->setTextRotation(0);
    +
    +                        break;
    +                    case 1:
    +                        $objStyle->getAlignment()->setTextRotation(-165);
    +
    +                        break;
    +                    case 2:
    +                        $objStyle->getAlignment()->setTextRotation(90);
    +
    +                        break;
    +                    case 3:
    +                        $objStyle->getAlignment()->setTextRotation(-90);
    +
    +                        break;
    +                }
    +
    +                // offset: 8; size: 4; cell border lines and background area
    +                $borderAndBackground = self::getInt4d($recordData, 8);
    +
    +                // bit: 6-0; mask: 0x0000007F; color index for pattern color
    +                $objStyle->getFill()->startcolorIndex = (0x0000007F & $borderAndBackground) >> 0;
    +
    +                // bit: 13-7; mask: 0x00003F80; color index for pattern background
    +                $objStyle->getFill()->endcolorIndex = (0x00003F80 & $borderAndBackground) >> 7;
    +
    +                // bit: 21-16; mask: 0x003F0000; fill pattern
    +                $objStyle->getFill()->setFillType(Xls\Style\FillPattern::lookup((0x003F0000 & $borderAndBackground) >> 16));
    +
    +                // bit: 24-22; mask: 0x01C00000; bottom line style
    +                $objStyle->getBorders()->getBottom()->setBorderStyle(Xls\Style\Border::lookup((0x01C00000 & $borderAndBackground) >> 22));
    +
    +                // bit: 31-25; mask: 0xFE000000; bottom line color
    +                $objStyle->getBorders()->getBottom()->colorIndex = (0xFE000000 & $borderAndBackground) >> 25;
    +
    +                // offset: 12; size: 4; cell border lines
    +                $borderLines = self::getInt4d($recordData, 12);
    +
    +                // bit: 2-0; mask: 0x00000007; top line style
    +                $objStyle->getBorders()->getTop()->setBorderStyle(Xls\Style\Border::lookup((0x00000007 & $borderLines) >> 0));
    +
    +                // bit: 5-3; mask: 0x00000038; left line style
    +                $objStyle->getBorders()->getLeft()->setBorderStyle(Xls\Style\Border::lookup((0x00000038 & $borderLines) >> 3));
    +
    +                // bit: 8-6; mask: 0x000001C0; right line style
    +                $objStyle->getBorders()->getRight()->setBorderStyle(Xls\Style\Border::lookup((0x000001C0 & $borderLines) >> 6));
    +
    +                // bit: 15-9; mask: 0x0000FE00; top line color index
    +                $objStyle->getBorders()->getTop()->colorIndex = (0x0000FE00 & $borderLines) >> 9;
    +
    +                // bit: 22-16; mask: 0x007F0000; left line color index
    +                $objStyle->getBorders()->getLeft()->colorIndex = (0x007F0000 & $borderLines) >> 16;
    +
    +                // bit: 29-23; mask: 0x3F800000; right line color index
    +                $objStyle->getBorders()->getRight()->colorIndex = (0x3F800000 & $borderLines) >> 23;
    +            }
    +
    +            // add cellStyleXf or cellXf and update mapping
    +            if ($isCellStyleXf) {
    +                // we only read one style XF record which is always the first
    +                if ($this->xfIndex == 0) {
    +                    $this->spreadsheet->addCellStyleXf($objStyle);
    +                    $this->mapCellStyleXfIndex[$this->xfIndex] = 0;
    +                }
    +            } else {
    +                // we read all cell XF records
    +                $this->spreadsheet->addCellXf($objStyle);
    +                $this->mapCellXfIndex[$this->xfIndex] = count($this->spreadsheet->getCellXfCollection()) - 1;
    +            }
    +
    +            // update XF index for when we read next record
    +            ++$this->xfIndex;
    +        }
    +    }
    +
    +    private function readXfExt()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 2; 0x087D = repeated header
    +
    +            // offset: 2; size: 2
    +
    +            // offset: 4; size: 8; not used
    +
    +            // offset: 12; size: 2; record version
    +
    +            // offset: 14; size: 2; index to XF record which this record modifies
    +            $ixfe = self::getUInt2d($recordData, 14);
    +
    +            // offset: 16; size: 2; not used
    +
    +            // offset: 18; size: 2; number of extension properties that follow
    +            $cexts = self::getUInt2d($recordData, 18);
    +
    +            // start reading the actual extension data
    +            $offset = 20;
    +            while ($offset < $length) {
    +                // extension type
    +                $extType = self::getUInt2d($recordData, $offset);
    +
    +                // extension length
    +                $cb = self::getUInt2d($recordData, $offset + 2);
    +
    +                // extension data
    +                $extData = substr($recordData, $offset + 4, $cb);
    +
    +                switch ($extType) {
    +                    case 4:        // fill start color
    +                        $xclfType = self::getUInt2d($extData, 0); // color type
    +                        $xclrValue = substr($extData, 4, 4); // color value (value based on color type)
    +
    +                        if ($xclfType == 2) {
    +                            $rgb = sprintf('%02X%02X%02X', ord($xclrValue[0]), ord($xclrValue[1]), ord($xclrValue[2]));
    +
    +                            // modify the relevant style property
    +                            if (isset($this->mapCellXfIndex[$ixfe])) {
    +                                $fill = $this->spreadsheet->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getFill();
    +                                $fill->getStartColor()->setRGB($rgb);
    +                                unset($fill->startcolorIndex); // normal color index does not apply, discard
    +                            }
    +                        }
    +
    +                        break;
    +                    case 5:        // fill end color
    +                        $xclfType = self::getUInt2d($extData, 0); // color type
    +                        $xclrValue = substr($extData, 4, 4); // color value (value based on color type)
    +
    +                        if ($xclfType == 2) {
    +                            $rgb = sprintf('%02X%02X%02X', ord($xclrValue[0]), ord($xclrValue[1]), ord($xclrValue[2]));
    +
    +                            // modify the relevant style property
    +                            if (isset($this->mapCellXfIndex[$ixfe])) {
    +                                $fill = $this->spreadsheet->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getFill();
    +                                $fill->getEndColor()->setRGB($rgb);
    +                                unset($fill->endcolorIndex); // normal color index does not apply, discard
    +                            }
    +                        }
    +
    +                        break;
    +                    case 7:        // border color top
    +                        $xclfType = self::getUInt2d($extData, 0); // color type
    +                        $xclrValue = substr($extData, 4, 4); // color value (value based on color type)
    +
    +                        if ($xclfType == 2) {
    +                            $rgb = sprintf('%02X%02X%02X', ord($xclrValue[0]), ord($xclrValue[1]), ord($xclrValue[2]));
    +
    +                            // modify the relevant style property
    +                            if (isset($this->mapCellXfIndex[$ixfe])) {
    +                                $top = $this->spreadsheet->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getBorders()->getTop();
    +                                $top->getColor()->setRGB($rgb);
    +                                unset($top->colorIndex); // normal color index does not apply, discard
    +                            }
    +                        }
    +
    +                        break;
    +                    case 8:        // border color bottom
    +                        $xclfType = self::getUInt2d($extData, 0); // color type
    +                        $xclrValue = substr($extData, 4, 4); // color value (value based on color type)
    +
    +                        if ($xclfType == 2) {
    +                            $rgb = sprintf('%02X%02X%02X', ord($xclrValue[0]), ord($xclrValue[1]), ord($xclrValue[2]));
    +
    +                            // modify the relevant style property
    +                            if (isset($this->mapCellXfIndex[$ixfe])) {
    +                                $bottom = $this->spreadsheet->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getBorders()->getBottom();
    +                                $bottom->getColor()->setRGB($rgb);
    +                                unset($bottom->colorIndex); // normal color index does not apply, discard
    +                            }
    +                        }
    +
    +                        break;
    +                    case 9:        // border color left
    +                        $xclfType = self::getUInt2d($extData, 0); // color type
    +                        $xclrValue = substr($extData, 4, 4); // color value (value based on color type)
    +
    +                        if ($xclfType == 2) {
    +                            $rgb = sprintf('%02X%02X%02X', ord($xclrValue[0]), ord($xclrValue[1]), ord($xclrValue[2]));
    +
    +                            // modify the relevant style property
    +                            if (isset($this->mapCellXfIndex[$ixfe])) {
    +                                $left = $this->spreadsheet->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getBorders()->getLeft();
    +                                $left->getColor()->setRGB($rgb);
    +                                unset($left->colorIndex); // normal color index does not apply, discard
    +                            }
    +                        }
    +
    +                        break;
    +                    case 10:        // border color right
    +                        $xclfType = self::getUInt2d($extData, 0); // color type
    +                        $xclrValue = substr($extData, 4, 4); // color value (value based on color type)
    +
    +                        if ($xclfType == 2) {
    +                            $rgb = sprintf('%02X%02X%02X', ord($xclrValue[0]), ord($xclrValue[1]), ord($xclrValue[2]));
    +
    +                            // modify the relevant style property
    +                            if (isset($this->mapCellXfIndex[$ixfe])) {
    +                                $right = $this->spreadsheet->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getBorders()->getRight();
    +                                $right->getColor()->setRGB($rgb);
    +                                unset($right->colorIndex); // normal color index does not apply, discard
    +                            }
    +                        }
    +
    +                        break;
    +                    case 11:        // border color diagonal
    +                        $xclfType = self::getUInt2d($extData, 0); // color type
    +                        $xclrValue = substr($extData, 4, 4); // color value (value based on color type)
    +
    +                        if ($xclfType == 2) {
    +                            $rgb = sprintf('%02X%02X%02X', ord($xclrValue[0]), ord($xclrValue[1]), ord($xclrValue[2]));
    +
    +                            // modify the relevant style property
    +                            if (isset($this->mapCellXfIndex[$ixfe])) {
    +                                $diagonal = $this->spreadsheet->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getBorders()->getDiagonal();
    +                                $diagonal->getColor()->setRGB($rgb);
    +                                unset($diagonal->colorIndex); // normal color index does not apply, discard
    +                            }
    +                        }
    +
    +                        break;
    +                    case 13:    // font color
    +                        $xclfType = self::getUInt2d($extData, 0); // color type
    +                        $xclrValue = substr($extData, 4, 4); // color value (value based on color type)
    +
    +                        if ($xclfType == 2) {
    +                            $rgb = sprintf('%02X%02X%02X', ord($xclrValue[0]), ord($xclrValue[1]), ord($xclrValue[2]));
    +
    +                            // modify the relevant style property
    +                            if (isset($this->mapCellXfIndex[$ixfe])) {
    +                                $font = $this->spreadsheet->getCellXfByIndex($this->mapCellXfIndex[$ixfe])->getFont();
    +                                $font->getColor()->setRGB($rgb);
    +                                unset($font->colorIndex); // normal color index does not apply, discard
    +                            }
    +                        }
    +
    +                        break;
    +                }
    +
    +                $offset += $cb;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read STYLE record.
    +     */
    +    private function readStyle()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 2; index to XF record and flag for built-in style
    +            $ixfe = self::getUInt2d($recordData, 0);
    +
    +            // bit: 11-0; mask 0x0FFF; index to XF record
    +            $xfIndex = (0x0FFF & $ixfe) >> 0;
    +
    +            // bit: 15; mask 0x8000; 0 = user-defined style, 1 = built-in style
    +            $isBuiltIn = (bool) ((0x8000 & $ixfe) >> 15);
    +
    +            if ($isBuiltIn) {
    +                // offset: 2; size: 1; identifier for built-in style
    +                $builtInId = ord($recordData[2]);
    +
    +                switch ($builtInId) {
    +                    case 0x00:
    +                        // currently, we are not using this for anything
    +                        break;
    +                    default:
    +                        break;
    +                }
    +            }
    +            // user-defined; not supported by PhpSpreadsheet
    +        }
    +    }
    +
    +    /**
    +     * Read PALETTE record.
    +     */
    +    private function readPalette()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 2; number of following colors
    +            $nm = self::getUInt2d($recordData, 0);
    +
    +            // list of RGB colors
    +            for ($i = 0; $i < $nm; ++$i) {
    +                $rgb = substr($recordData, 2 + 4 * $i, 4);
    +                $this->palette[] = self::readRGB($rgb);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * SHEET.
    +     *
    +     * This record is  located in the  Workbook Globals
    +     * Substream  and represents a sheet inside the workbook.
    +     * One SHEET record is written for each sheet. It stores the
    +     * sheet name and a stream offset to the BOF record of the
    +     * respective Sheet Substream within the Workbook Stream.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readSheet()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // offset: 0; size: 4; absolute stream position of the BOF record of the sheet
    +        // NOTE: not encrypted
    +        $rec_offset = self::getInt4d($this->data, $this->pos + 4);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 4; size: 1; sheet state
    +        switch (ord($recordData[4])) {
    +            case 0x00:
    +                $sheetState = Worksheet::SHEETSTATE_VISIBLE;
    +
    +                break;
    +            case 0x01:
    +                $sheetState = Worksheet::SHEETSTATE_HIDDEN;
    +
    +                break;
    +            case 0x02:
    +                $sheetState = Worksheet::SHEETSTATE_VERYHIDDEN;
    +
    +                break;
    +            default:
    +                $sheetState = Worksheet::SHEETSTATE_VISIBLE;
    +
    +                break;
    +        }
    +
    +        // offset: 5; size: 1; sheet type
    +        $sheetType = ord($recordData[5]);
    +
    +        // offset: 6; size: var; sheet name
    +        if ($this->version == self::XLS_BIFF8) {
    +            $string = self::readUnicodeStringShort(substr($recordData, 6));
    +            $rec_name = $string['value'];
    +        } elseif ($this->version == self::XLS_BIFF7) {
    +            $string = $this->readByteStringShort(substr($recordData, 6));
    +            $rec_name = $string['value'];
    +        }
    +
    +        $this->sheets[] = [
    +            'name' => $rec_name,
    +            'offset' => $rec_offset,
    +            'sheetState' => $sheetState,
    +            'sheetType' => $sheetType,
    +        ];
    +    }
    +
    +    /**
    +     * Read EXTERNALBOOK record.
    +     */
    +    private function readExternalBook()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset within record data
    +        $offset = 0;
    +
    +        // there are 4 types of records
    +        if (strlen($recordData) > 4) {
    +            // external reference
    +            // offset: 0; size: 2; number of sheet names ($nm)
    +            $nm = self::getUInt2d($recordData, 0);
    +            $offset += 2;
    +
    +            // offset: 2; size: var; encoded URL without sheet name (Unicode string, 16-bit length)
    +            $encodedUrlString = self::readUnicodeStringLong(substr($recordData, 2));
    +            $offset += $encodedUrlString['size'];
    +
    +            // offset: var; size: var; list of $nm sheet names (Unicode strings, 16-bit length)
    +            $externalSheetNames = [];
    +            for ($i = 0; $i < $nm; ++$i) {
    +                $externalSheetNameString = self::readUnicodeStringLong(substr($recordData, $offset));
    +                $externalSheetNames[] = $externalSheetNameString['value'];
    +                $offset += $externalSheetNameString['size'];
    +            }
    +
    +            // store the record data
    +            $this->externalBooks[] = [
    +                'type' => 'external',
    +                'encodedUrl' => $encodedUrlString['value'],
    +                'externalSheetNames' => $externalSheetNames,
    +            ];
    +        } elseif (substr($recordData, 2, 2) == pack('CC', 0x01, 0x04)) {
    +            // internal reference
    +            // offset: 0; size: 2; number of sheet in this document
    +            // offset: 2; size: 2; 0x01 0x04
    +            $this->externalBooks[] = [
    +                'type' => 'internal',
    +            ];
    +        } elseif (substr($recordData, 0, 4) == pack('vCC', 0x0001, 0x01, 0x3A)) {
    +            // add-in function
    +            // offset: 0; size: 2; 0x0001
    +            $this->externalBooks[] = [
    +                'type' => 'addInFunction',
    +            ];
    +        } elseif (substr($recordData, 0, 2) == pack('v', 0x0000)) {
    +            // DDE links, OLE links
    +            // offset: 0; size: 2; 0x0000
    +            // offset: 2; size: var; encoded source document name
    +            $this->externalBooks[] = [
    +                'type' => 'DDEorOLE',
    +            ];
    +        }
    +    }
    +
    +    /**
    +     * Read EXTERNNAME record.
    +     */
    +    private function readExternName()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // external sheet references provided for named cells
    +        if ($this->version == self::XLS_BIFF8) {
    +            // offset: 0; size: 2; options
    +            $options = self::getUInt2d($recordData, 0);
    +
    +            // offset: 2; size: 2;
    +
    +            // offset: 4; size: 2; not used
    +
    +            // offset: 6; size: var
    +            $nameString = self::readUnicodeStringShort(substr($recordData, 6));
    +
    +            // offset: var; size: var; formula data
    +            $offset = 6 + $nameString['size'];
    +            $formula = $this->getFormulaFromStructure(substr($recordData, $offset));
    +
    +            $this->externalNames[] = [
    +                'name' => $nameString['value'],
    +                'formula' => $formula,
    +            ];
    +        }
    +    }
    +
    +    /**
    +     * Read EXTERNSHEET record.
    +     */
    +    private function readExternSheet()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // external sheet references provided for named cells
    +        if ($this->version == self::XLS_BIFF8) {
    +            // offset: 0; size: 2; number of following ref structures
    +            $nm = self::getUInt2d($recordData, 0);
    +            for ($i = 0; $i < $nm; ++$i) {
    +                $this->ref[] = [
    +                    // offset: 2 + 6 * $i; index to EXTERNALBOOK record
    +                    'externalBookIndex' => self::getUInt2d($recordData, 2 + 6 * $i),
    +                    // offset: 4 + 6 * $i; index to first sheet in EXTERNALBOOK record
    +                    'firstSheetIndex' => self::getUInt2d($recordData, 4 + 6 * $i),
    +                    // offset: 6 + 6 * $i; index to last sheet in EXTERNALBOOK record
    +                    'lastSheetIndex' => self::getUInt2d($recordData, 6 + 6 * $i),
    +                ];
    +            }
    +        }
    +    }
    +
    +    /**
    +     * DEFINEDNAME.
    +     *
    +     * This record is part of a Link Table. It contains the name
    +     * and the token array of an internal defined name. Token
    +     * arrays of defined names contain tokens with aberrant
    +     * token classes.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readDefinedName()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->version == self::XLS_BIFF8) {
    +            // retrieves named cells
    +
    +            // offset: 0; size: 2; option flags
    +            $opts = self::getUInt2d($recordData, 0);
    +
    +            // bit: 5; mask: 0x0020; 0 = user-defined name, 1 = built-in-name
    +            $isBuiltInName = (0x0020 & $opts) >> 5;
    +
    +            // offset: 2; size: 1; keyboard shortcut
    +
    +            // offset: 3; size: 1; length of the name (character count)
    +            $nlen = ord($recordData[3]);
    +
    +            // offset: 4; size: 2; size of the formula data (it can happen that this is zero)
    +            // note: there can also be additional data, this is not included in $flen
    +            $flen = self::getUInt2d($recordData, 4);
    +
    +            // offset: 8; size: 2; 0=Global name, otherwise index to sheet (1-based)
    +            $scope = self::getUInt2d($recordData, 8);
    +
    +            // offset: 14; size: var; Name (Unicode string without length field)
    +            $string = self::readUnicodeString(substr($recordData, 14), $nlen);
    +
    +            // offset: var; size: $flen; formula data
    +            $offset = 14 + $string['size'];
    +            $formulaStructure = pack('v', $flen) . substr($recordData, $offset);
    +
    +            try {
    +                $formula = $this->getFormulaFromStructure($formulaStructure);
    +            } catch (PhpSpreadsheetException $e) {
    +                $formula = '';
    +            }
    +
    +            $this->definedname[] = [
    +                'isBuiltInName' => $isBuiltInName,
    +                'name' => $string['value'],
    +                'formula' => $formula,
    +                'scope' => $scope,
    +            ];
    +        }
    +    }
    +
    +    /**
    +     * Read MSODRAWINGGROUP record.
    +     */
    +    private function readMsoDrawingGroup()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +
    +        // get spliced record data
    +        $splicedRecordData = $this->getSplicedRecordData();
    +        $recordData = $splicedRecordData['recordData'];
    +
    +        $this->drawingGroupData .= $recordData;
    +    }
    +
    +    /**
    +     * SST - Shared String Table.
    +     *
    +     * This record contains a list of all strings used anywhere
    +     * in the workbook. Each string occurs only once. The
    +     * workbook uses indexes into the list to reference the
    +     * strings.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readSst()
    +    {
    +        // offset within (spliced) record data
    +        $pos = 0;
    +
    +        // get spliced record data
    +        $splicedRecordData = $this->getSplicedRecordData();
    +
    +        $recordData = $splicedRecordData['recordData'];
    +        $spliceOffsets = $splicedRecordData['spliceOffsets'];
    +
    +        // offset: 0; size: 4; total number of strings in the workbook
    +        $pos += 4;
    +
    +        // offset: 4; size: 4; number of following strings ($nm)
    +        $nm = self::getInt4d($recordData, 4);
    +        $pos += 4;
    +
    +        // loop through the Unicode strings (16-bit length)
    +        for ($i = 0; $i < $nm; ++$i) {
    +            // number of characters in the Unicode string
    +            $numChars = self::getUInt2d($recordData, $pos);
    +            $pos += 2;
    +
    +            // option flags
    +            $optionFlags = ord($recordData[$pos]);
    +            ++$pos;
    +
    +            // bit: 0; mask: 0x01; 0 = compressed; 1 = uncompressed
    +            $isCompressed = (($optionFlags & 0x01) == 0);
    +
    +            // bit: 2; mask: 0x02; 0 = ordinary; 1 = Asian phonetic
    +            $hasAsian = (($optionFlags & 0x04) != 0);
    +
    +            // bit: 3; mask: 0x03; 0 = ordinary; 1 = Rich-Text
    +            $hasRichText = (($optionFlags & 0x08) != 0);
    +
    +            if ($hasRichText) {
    +                // number of Rich-Text formatting runs
    +                $formattingRuns = self::getUInt2d($recordData, $pos);
    +                $pos += 2;
    +            }
    +
    +            if ($hasAsian) {
    +                // size of Asian phonetic setting
    +                $extendedRunLength = self::getInt4d($recordData, $pos);
    +                $pos += 4;
    +            }
    +
    +            // expected byte length of character array if not split
    +            $len = ($isCompressed) ? $numChars : $numChars * 2;
    +
    +            // look up limit position
    +            foreach ($spliceOffsets as $spliceOffset) {
    +                // it can happen that the string is empty, therefore we need
    +                // <= and not just <
    +                if ($pos <= $spliceOffset) {
    +                    $limitpos = $spliceOffset;
    +
    +                    break;
    +                }
    +            }
    +
    +            if ($pos + $len <= $limitpos) {
    +                // character array is not split between records
    +
    +                $retstr = substr($recordData, $pos, $len);
    +                $pos += $len;
    +            } else {
    +                // character array is split between records
    +
    +                // first part of character array
    +                $retstr = substr($recordData, $pos, $limitpos - $pos);
    +
    +                $bytesRead = $limitpos - $pos;
    +
    +                // remaining characters in Unicode string
    +                $charsLeft = $numChars - (($isCompressed) ? $bytesRead : ($bytesRead / 2));
    +
    +                $pos = $limitpos;
    +
    +                // keep reading the characters
    +                while ($charsLeft > 0) {
    +                    // look up next limit position, in case the string span more than one continue record
    +                    foreach ($spliceOffsets as $spliceOffset) {
    +                        if ($pos < $spliceOffset) {
    +                            $limitpos = $spliceOffset;
    +
    +                            break;
    +                        }
    +                    }
    +
    +                    // repeated option flags
    +                    // OpenOffice.org documentation 5.21
    +                    $option = ord($recordData[$pos]);
    +                    ++$pos;
    +
    +                    if ($isCompressed && ($option == 0)) {
    +                        // 1st fragment compressed
    +                        // this fragment compressed
    +                        $len = min($charsLeft, $limitpos - $pos);
    +                        $retstr .= substr($recordData, $pos, $len);
    +                        $charsLeft -= $len;
    +                        $isCompressed = true;
    +                    } elseif (!$isCompressed && ($option != 0)) {
    +                        // 1st fragment uncompressed
    +                        // this fragment uncompressed
    +                        $len = min($charsLeft * 2, $limitpos - $pos);
    +                        $retstr .= substr($recordData, $pos, $len);
    +                        $charsLeft -= $len / 2;
    +                        $isCompressed = false;
    +                    } elseif (!$isCompressed && ($option == 0)) {
    +                        // 1st fragment uncompressed
    +                        // this fragment compressed
    +                        $len = min($charsLeft, $limitpos - $pos);
    +                        for ($j = 0; $j < $len; ++$j) {
    +                            $retstr .= $recordData[$pos + $j]
    +                            . chr(0);
    +                        }
    +                        $charsLeft -= $len;
    +                        $isCompressed = false;
    +                    } else {
    +                        // 1st fragment compressed
    +                        // this fragment uncompressed
    +                        $newstr = '';
    +                        $jMax = strlen($retstr);
    +                        for ($j = 0; $j < $jMax; ++$j) {
    +                            $newstr .= $retstr[$j] . chr(0);
    +                        }
    +                        $retstr = $newstr;
    +                        $len = min($charsLeft * 2, $limitpos - $pos);
    +                        $retstr .= substr($recordData, $pos, $len);
    +                        $charsLeft -= $len / 2;
    +                        $isCompressed = false;
    +                    }
    +
    +                    $pos += $len;
    +                }
    +            }
    +
    +            // convert to UTF-8
    +            $retstr = self::encodeUTF16($retstr, $isCompressed);
    +
    +            // read additional Rich-Text information, if any
    +            $fmtRuns = [];
    +            if ($hasRichText) {
    +                // list of formatting runs
    +                for ($j = 0; $j < $formattingRuns; ++$j) {
    +                    // first formatted character; zero-based
    +                    $charPos = self::getUInt2d($recordData, $pos + $j * 4);
    +
    +                    // index to font record
    +                    $fontIndex = self::getUInt2d($recordData, $pos + 2 + $j * 4);
    +
    +                    $fmtRuns[] = [
    +                        'charPos' => $charPos,
    +                        'fontIndex' => $fontIndex,
    +                    ];
    +                }
    +                $pos += 4 * $formattingRuns;
    +            }
    +
    +            // read additional Asian phonetics information, if any
    +            if ($hasAsian) {
    +                // For Asian phonetic settings, we skip the extended string data
    +                $pos += $extendedRunLength;
    +            }
    +
    +            // store the shared sting
    +            $this->sst[] = [
    +                'value' => $retstr,
    +                'fmtRuns' => $fmtRuns,
    +            ];
    +        }
    +
    +        // getSplicedRecordData() takes care of moving current position in data stream
    +    }
    +
    +    /**
    +     * Read PRINTGRIDLINES record.
    +     */
    +    private function readPrintGridlines()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->version == self::XLS_BIFF8 && !$this->readDataOnly) {
    +            // offset: 0; size: 2; 0 = do not print sheet grid lines; 1 = print sheet gridlines
    +            $printGridlines = (bool) self::getUInt2d($recordData, 0);
    +            $this->phpSheet->setPrintGridlines($printGridlines);
    +        }
    +    }
    +
    +    /**
    +     * Read DEFAULTROWHEIGHT record.
    +     */
    +    private function readDefaultRowHeight()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; option flags
    +        // offset: 2; size: 2; default height for unused rows, (twips 1/20 point)
    +        $height = self::getUInt2d($recordData, 2);
    +        $this->phpSheet->getDefaultRowDimension()->setRowHeight($height / 20);
    +    }
    +
    +    /**
    +     * Read SHEETPR record.
    +     */
    +    private function readSheetPr()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2
    +
    +        // bit: 6; mask: 0x0040; 0 = outline buttons above outline group
    +        $isSummaryBelow = (0x0040 & self::getUInt2d($recordData, 0)) >> 6;
    +        $this->phpSheet->setShowSummaryBelow($isSummaryBelow);
    +
    +        // bit: 7; mask: 0x0080; 0 = outline buttons left of outline group
    +        $isSummaryRight = (0x0080 & self::getUInt2d($recordData, 0)) >> 7;
    +        $this->phpSheet->setShowSummaryRight($isSummaryRight);
    +
    +        // bit: 8; mask: 0x100; 0 = scale printout in percent, 1 = fit printout to number of pages
    +        // this corresponds to radio button setting in page setup dialog in Excel
    +        $this->isFitToPages = (bool) ((0x0100 & self::getUInt2d($recordData, 0)) >> 8);
    +    }
    +
    +    /**
    +     * Read HORIZONTALPAGEBREAKS record.
    +     */
    +    private function readHorizontalPageBreaks()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->version == self::XLS_BIFF8 && !$this->readDataOnly) {
    +            // offset: 0; size: 2; number of the following row index structures
    +            $nm = self::getUInt2d($recordData, 0);
    +
    +            // offset: 2; size: 6 * $nm; list of $nm row index structures
    +            for ($i = 0; $i < $nm; ++$i) {
    +                $r = self::getUInt2d($recordData, 2 + 6 * $i);
    +                $cf = self::getUInt2d($recordData, 2 + 6 * $i + 2);
    +                $cl = self::getUInt2d($recordData, 2 + 6 * $i + 4);
    +
    +                // not sure why two column indexes are necessary?
    +                $this->phpSheet->setBreakByColumnAndRow($cf + 1, $r, Worksheet::BREAK_ROW);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read VERTICALPAGEBREAKS record.
    +     */
    +    private function readVerticalPageBreaks()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->version == self::XLS_BIFF8 && !$this->readDataOnly) {
    +            // offset: 0; size: 2; number of the following column index structures
    +            $nm = self::getUInt2d($recordData, 0);
    +
    +            // offset: 2; size: 6 * $nm; list of $nm row index structures
    +            for ($i = 0; $i < $nm; ++$i) {
    +                $c = self::getUInt2d($recordData, 2 + 6 * $i);
    +                $rf = self::getUInt2d($recordData, 2 + 6 * $i + 2);
    +                $rl = self::getUInt2d($recordData, 2 + 6 * $i + 4);
    +
    +                // not sure why two row indexes are necessary?
    +                $this->phpSheet->setBreakByColumnAndRow($c + 1, $rf, Worksheet::BREAK_COLUMN);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read HEADER record.
    +     */
    +    private function readHeader()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: var
    +            // realized that $recordData can be empty even when record exists
    +            if ($recordData) {
    +                if ($this->version == self::XLS_BIFF8) {
    +                    $string = self::readUnicodeStringLong($recordData);
    +                } else {
    +                    $string = $this->readByteStringShort($recordData);
    +                }
    +
    +                $this->phpSheet->getHeaderFooter()->setOddHeader($string['value']);
    +                $this->phpSheet->getHeaderFooter()->setEvenHeader($string['value']);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read FOOTER record.
    +     */
    +    private function readFooter()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: var
    +            // realized that $recordData can be empty even when record exists
    +            if ($recordData) {
    +                if ($this->version == self::XLS_BIFF8) {
    +                    $string = self::readUnicodeStringLong($recordData);
    +                } else {
    +                    $string = $this->readByteStringShort($recordData);
    +                }
    +                $this->phpSheet->getHeaderFooter()->setOddFooter($string['value']);
    +                $this->phpSheet->getHeaderFooter()->setEvenFooter($string['value']);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read HCENTER record.
    +     */
    +    private function readHcenter()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 2; 0 = print sheet left aligned, 1 = print sheet centered horizontally
    +            $isHorizontalCentered = (bool) self::getUInt2d($recordData, 0);
    +
    +            $this->phpSheet->getPageSetup()->setHorizontalCentered($isHorizontalCentered);
    +        }
    +    }
    +
    +    /**
    +     * Read VCENTER record.
    +     */
    +    private function readVcenter()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 2; 0 = print sheet aligned at top page border, 1 = print sheet vertically centered
    +            $isVerticalCentered = (bool) self::getUInt2d($recordData, 0);
    +
    +            $this->phpSheet->getPageSetup()->setVerticalCentered($isVerticalCentered);
    +        }
    +    }
    +
    +    /**
    +     * Read LEFTMARGIN record.
    +     */
    +    private function readLeftMargin()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 8
    +            $this->phpSheet->getPageMargins()->setLeft(self::extractNumber($recordData));
    +        }
    +    }
    +
    +    /**
    +     * Read RIGHTMARGIN record.
    +     */
    +    private function readRightMargin()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 8
    +            $this->phpSheet->getPageMargins()->setRight(self::extractNumber($recordData));
    +        }
    +    }
    +
    +    /**
    +     * Read TOPMARGIN record.
    +     */
    +    private function readTopMargin()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 8
    +            $this->phpSheet->getPageMargins()->setTop(self::extractNumber($recordData));
    +        }
    +    }
    +
    +    /**
    +     * Read BOTTOMMARGIN record.
    +     */
    +    private function readBottomMargin()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 8
    +            $this->phpSheet->getPageMargins()->setBottom(self::extractNumber($recordData));
    +        }
    +    }
    +
    +    /**
    +     * Read PAGESETUP record.
    +     */
    +    private function readPageSetup()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 2; paper size
    +            $paperSize = self::getUInt2d($recordData, 0);
    +
    +            // offset: 2; size: 2; scaling factor
    +            $scale = self::getUInt2d($recordData, 2);
    +
    +            // offset: 6; size: 2; fit worksheet width to this number of pages, 0 = use as many as needed
    +            $fitToWidth = self::getUInt2d($recordData, 6);
    +
    +            // offset: 8; size: 2; fit worksheet height to this number of pages, 0 = use as many as needed
    +            $fitToHeight = self::getUInt2d($recordData, 8);
    +
    +            // offset: 10; size: 2; option flags
    +
    +            // bit: 1; mask: 0x0002; 0=landscape, 1=portrait
    +            $isPortrait = (0x0002 & self::getUInt2d($recordData, 10)) >> 1;
    +
    +            // bit: 2; mask: 0x0004; 1= paper size, scaling factor, paper orient. not init
    +            // when this bit is set, do not use flags for those properties
    +            $isNotInit = (0x0004 & self::getUInt2d($recordData, 10)) >> 2;
    +
    +            if (!$isNotInit) {
    +                $this->phpSheet->getPageSetup()->setPaperSize($paperSize);
    +                switch ($isPortrait) {
    +                    case 0:
    +                        $this->phpSheet->getPageSetup()->setOrientation(PageSetup::ORIENTATION_LANDSCAPE);
    +
    +                        break;
    +                    case 1:
    +                        $this->phpSheet->getPageSetup()->setOrientation(PageSetup::ORIENTATION_PORTRAIT);
    +
    +                        break;
    +                }
    +
    +                $this->phpSheet->getPageSetup()->setScale($scale, false);
    +                $this->phpSheet->getPageSetup()->setFitToPage((bool) $this->isFitToPages);
    +                $this->phpSheet->getPageSetup()->setFitToWidth($fitToWidth, false);
    +                $this->phpSheet->getPageSetup()->setFitToHeight($fitToHeight, false);
    +            }
    +
    +            // offset: 16; size: 8; header margin (IEEE 754 floating-point value)
    +            $marginHeader = self::extractNumber(substr($recordData, 16, 8));
    +            $this->phpSheet->getPageMargins()->setHeader($marginHeader);
    +
    +            // offset: 24; size: 8; footer margin (IEEE 754 floating-point value)
    +            $marginFooter = self::extractNumber(substr($recordData, 24, 8));
    +            $this->phpSheet->getPageMargins()->setFooter($marginFooter);
    +        }
    +    }
    +
    +    /**
    +     * PROTECT - Sheet protection (BIFF2 through BIFF8)
    +     *   if this record is omitted, then it also means no sheet protection.
    +     */
    +    private function readProtect()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->readDataOnly) {
    +            return;
    +        }
    +
    +        // offset: 0; size: 2;
    +
    +        // bit 0, mask 0x01; 1 = sheet is protected
    +        $bool = (0x01 & self::getUInt2d($recordData, 0)) >> 0;
    +        $this->phpSheet->getProtection()->setSheet((bool) $bool);
    +    }
    +
    +    /**
    +     * SCENPROTECT.
    +     */
    +    private function readScenProtect()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->readDataOnly) {
    +            return;
    +        }
    +
    +        // offset: 0; size: 2;
    +
    +        // bit: 0, mask 0x01; 1 = scenarios are protected
    +        $bool = (0x01 & self::getUInt2d($recordData, 0)) >> 0;
    +
    +        $this->phpSheet->getProtection()->setScenarios((bool) $bool);
    +    }
    +
    +    /**
    +     * OBJECTPROTECT.
    +     */
    +    private function readObjectProtect()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->readDataOnly) {
    +            return;
    +        }
    +
    +        // offset: 0; size: 2;
    +
    +        // bit: 0, mask 0x01; 1 = objects are protected
    +        $bool = (0x01 & self::getUInt2d($recordData, 0)) >> 0;
    +
    +        $this->phpSheet->getProtection()->setObjects((bool) $bool);
    +    }
    +
    +    /**
    +     * PASSWORD - Sheet protection (hashed) password (BIFF2 through BIFF8).
    +     */
    +    private function readPassword()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 2; 16-bit hash value of password
    +            $password = strtoupper(dechex(self::getUInt2d($recordData, 0))); // the hashed password
    +            $this->phpSheet->getProtection()->setPassword($password, true);
    +        }
    +    }
    +
    +    /**
    +     * Read DEFCOLWIDTH record.
    +     */
    +    private function readDefColWidth()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; default column width
    +        $width = self::getUInt2d($recordData, 0);
    +        if ($width != 8) {
    +            $this->phpSheet->getDefaultColumnDimension()->setWidth($width);
    +        }
    +    }
    +
    +    /**
    +     * Read COLINFO record.
    +     */
    +    private function readColInfo()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 2; index to first column in range
    +            $firstColumnIndex = self::getUInt2d($recordData, 0);
    +
    +            // offset: 2; size: 2; index to last column in range
    +            $lastColumnIndex = self::getUInt2d($recordData, 2);
    +
    +            // offset: 4; size: 2; width of the column in 1/256 of the width of the zero character
    +            $width = self::getUInt2d($recordData, 4);
    +
    +            // offset: 6; size: 2; index to XF record for default column formatting
    +            $xfIndex = self::getUInt2d($recordData, 6);
    +
    +            // offset: 8; size: 2; option flags
    +            // bit: 0; mask: 0x0001; 1= columns are hidden
    +            $isHidden = (0x0001 & self::getUInt2d($recordData, 8)) >> 0;
    +
    +            // bit: 10-8; mask: 0x0700; outline level of the columns (0 = no outline)
    +            $level = (0x0700 & self::getUInt2d($recordData, 8)) >> 8;
    +
    +            // bit: 12; mask: 0x1000; 1 = collapsed
    +            $isCollapsed = (0x1000 & self::getUInt2d($recordData, 8)) >> 12;
    +
    +            // offset: 10; size: 2; not used
    +
    +            for ($i = $firstColumnIndex + 1; $i <= $lastColumnIndex + 1; ++$i) {
    +                if ($lastColumnIndex == 255 || $lastColumnIndex == 256) {
    +                    $this->phpSheet->getDefaultColumnDimension()->setWidth($width / 256);
    +
    +                    break;
    +                }
    +                $this->phpSheet->getColumnDimensionByColumn($i)->setWidth($width / 256);
    +                $this->phpSheet->getColumnDimensionByColumn($i)->setVisible(!$isHidden);
    +                $this->phpSheet->getColumnDimensionByColumn($i)->setOutlineLevel($level);
    +                $this->phpSheet->getColumnDimensionByColumn($i)->setCollapsed($isCollapsed);
    +                $this->phpSheet->getColumnDimensionByColumn($i)->setXfIndex($this->mapCellXfIndex[$xfIndex]);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * ROW.
    +     *
    +     * This record contains the properties of a single row in a
    +     * sheet. Rows and cells in a sheet are divided into blocks
    +     * of 32 rows.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readRow()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 2; index of this row
    +            $r = self::getUInt2d($recordData, 0);
    +
    +            // offset: 2; size: 2; index to column of the first cell which is described by a cell record
    +
    +            // offset: 4; size: 2; index to column of the last cell which is described by a cell record, increased by 1
    +
    +            // offset: 6; size: 2;
    +
    +            // bit: 14-0; mask: 0x7FFF; height of the row, in twips = 1/20 of a point
    +            $height = (0x7FFF & self::getUInt2d($recordData, 6)) >> 0;
    +
    +            // bit: 15: mask: 0x8000; 0 = row has custom height; 1= row has default height
    +            $useDefaultHeight = (0x8000 & self::getUInt2d($recordData, 6)) >> 15;
    +
    +            if (!$useDefaultHeight) {
    +                $this->phpSheet->getRowDimension($r + 1)->setRowHeight($height / 20);
    +            }
    +
    +            // offset: 8; size: 2; not used
    +
    +            // offset: 10; size: 2; not used in BIFF5-BIFF8
    +
    +            // offset: 12; size: 4; option flags and default row formatting
    +
    +            // bit: 2-0: mask: 0x00000007; outline level of the row
    +            $level = (0x00000007 & self::getInt4d($recordData, 12)) >> 0;
    +            $this->phpSheet->getRowDimension($r + 1)->setOutlineLevel($level);
    +
    +            // bit: 4; mask: 0x00000010; 1 = outline group start or ends here... and is collapsed
    +            $isCollapsed = (0x00000010 & self::getInt4d($recordData, 12)) >> 4;
    +            $this->phpSheet->getRowDimension($r + 1)->setCollapsed($isCollapsed);
    +
    +            // bit: 5; mask: 0x00000020; 1 = row is hidden
    +            $isHidden = (0x00000020 & self::getInt4d($recordData, 12)) >> 5;
    +            $this->phpSheet->getRowDimension($r + 1)->setVisible(!$isHidden);
    +
    +            // bit: 7; mask: 0x00000080; 1 = row has explicit format
    +            $hasExplicitFormat = (0x00000080 & self::getInt4d($recordData, 12)) >> 7;
    +
    +            // bit: 27-16; mask: 0x0FFF0000; only applies when hasExplicitFormat = 1; index to XF record
    +            $xfIndex = (0x0FFF0000 & self::getInt4d($recordData, 12)) >> 16;
    +
    +            if ($hasExplicitFormat && isset($this->mapCellXfIndex[$xfIndex])) {
    +                $this->phpSheet->getRowDimension($r + 1)->setXfIndex($this->mapCellXfIndex[$xfIndex]);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read RK record
    +     * This record represents a cell that contains an RK value
    +     * (encoded integer or floating-point value). If a
    +     * floating-point value cannot be encoded to an RK value,
    +     * a NUMBER record will be written. This record replaces the
    +     * record INTEGER written in BIFF2.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readRk()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; index to row
    +        $row = self::getUInt2d($recordData, 0);
    +
    +        // offset: 2; size: 2; index to column
    +        $column = self::getUInt2d($recordData, 2);
    +        $columnString = Coordinate::stringFromColumnIndex($column + 1);
    +
    +        // Read cell?
    +        if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) {
    +            // offset: 4; size: 2; index to XF record
    +            $xfIndex = self::getUInt2d($recordData, 4);
    +
    +            // offset: 6; size: 4; RK value
    +            $rknum = self::getInt4d($recordData, 6);
    +            $numValue = self::getIEEE754($rknum);
    +
    +            $cell = $this->phpSheet->getCell($columnString . ($row + 1));
    +            if (!$this->readDataOnly) {
    +                // add style information
    +                $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]);
    +            }
    +
    +            // add cell
    +            $cell->setValueExplicit($numValue, DataType::TYPE_NUMERIC);
    +        }
    +    }
    +
    +    /**
    +     * Read LABELSST record
    +     * This record represents a cell that contains a string. It
    +     * replaces the LABEL record and RSTRING record used in
    +     * BIFF2-BIFF5.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readLabelSst()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; index to row
    +        $row = self::getUInt2d($recordData, 0);
    +
    +        // offset: 2; size: 2; index to column
    +        $column = self::getUInt2d($recordData, 2);
    +        $columnString = Coordinate::stringFromColumnIndex($column + 1);
    +
    +        $emptyCell = true;
    +        // Read cell?
    +        if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) {
    +            // offset: 4; size: 2; index to XF record
    +            $xfIndex = self::getUInt2d($recordData, 4);
    +
    +            // offset: 6; size: 4; index to SST record
    +            $index = self::getInt4d($recordData, 6);
    +
    +            // add cell
    +            if (($fmtRuns = $this->sst[$index]['fmtRuns']) && !$this->readDataOnly) {
    +                // then we should treat as rich text
    +                $richText = new RichText();
    +                $charPos = 0;
    +                $sstCount = count($this->sst[$index]['fmtRuns']);
    +                for ($i = 0; $i <= $sstCount; ++$i) {
    +                    if (isset($fmtRuns[$i])) {
    +                        $text = StringHelper::substring($this->sst[$index]['value'], $charPos, $fmtRuns[$i]['charPos'] - $charPos);
    +                        $charPos = $fmtRuns[$i]['charPos'];
    +                    } else {
    +                        $text = StringHelper::substring($this->sst[$index]['value'], $charPos, StringHelper::countCharacters($this->sst[$index]['value']));
    +                    }
    +
    +                    if (StringHelper::countCharacters($text) > 0) {
    +                        if ($i == 0) { // first text run, no style
    +                            $richText->createText($text);
    +                        } else {
    +                            $textRun = $richText->createTextRun($text);
    +                            if (isset($fmtRuns[$i - 1])) {
    +                                if ($fmtRuns[$i - 1]['fontIndex'] < 4) {
    +                                    $fontIndex = $fmtRuns[$i - 1]['fontIndex'];
    +                                } else {
    +                                    // this has to do with that index 4 is omitted in all BIFF versions for some strange reason
    +                                    // check the OpenOffice documentation of the FONT record
    +                                    $fontIndex = $fmtRuns[$i - 1]['fontIndex'] - 1;
    +                                }
    +                                $textRun->setFont(clone $this->objFonts[$fontIndex]);
    +                            }
    +                        }
    +                    }
    +                }
    +                if ($this->readEmptyCells || trim($richText->getPlainText()) !== '') {
    +                    $cell = $this->phpSheet->getCell($columnString . ($row + 1));
    +                    $cell->setValueExplicit($richText, DataType::TYPE_STRING);
    +                    $emptyCell = false;
    +                }
    +            } else {
    +                if ($this->readEmptyCells || trim($this->sst[$index]['value']) !== '') {
    +                    $cell = $this->phpSheet->getCell($columnString . ($row + 1));
    +                    $cell->setValueExplicit($this->sst[$index]['value'], DataType::TYPE_STRING);
    +                    $emptyCell = false;
    +                }
    +            }
    +
    +            if (!$this->readDataOnly && !$emptyCell) {
    +                // add style information
    +                $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read MULRK record
    +     * This record represents a cell range containing RK value
    +     * cells. All cells are located in the same row.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readMulRk()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; index to row
    +        $row = self::getUInt2d($recordData, 0);
    +
    +        // offset: 2; size: 2; index to first column
    +        $colFirst = self::getUInt2d($recordData, 2);
    +
    +        // offset: var; size: 2; index to last column
    +        $colLast = self::getUInt2d($recordData, $length - 2);
    +        $columns = $colLast - $colFirst + 1;
    +
    +        // offset within record data
    +        $offset = 4;
    +
    +        for ($i = 1; $i <= $columns; ++$i) {
    +            $columnString = Coordinate::stringFromColumnIndex($colFirst + $i);
    +
    +            // Read cell?
    +            if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) {
    +                // offset: var; size: 2; index to XF record
    +                $xfIndex = self::getUInt2d($recordData, $offset);
    +
    +                // offset: var; size: 4; RK value
    +                $numValue = self::getIEEE754(self::getInt4d($recordData, $offset + 2));
    +                $cell = $this->phpSheet->getCell($columnString . ($row + 1));
    +                if (!$this->readDataOnly) {
    +                    // add style
    +                    $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]);
    +                }
    +
    +                // add cell value
    +                $cell->setValueExplicit($numValue, DataType::TYPE_NUMERIC);
    +            }
    +
    +            $offset += 6;
    +        }
    +    }
    +
    +    /**
    +     * Read NUMBER record
    +     * This record represents a cell that contains a
    +     * floating-point value.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readNumber()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; index to row
    +        $row = self::getUInt2d($recordData, 0);
    +
    +        // offset: 2; size 2; index to column
    +        $column = self::getUInt2d($recordData, 2);
    +        $columnString = Coordinate::stringFromColumnIndex($column + 1);
    +
    +        // Read cell?
    +        if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) {
    +            // offset 4; size: 2; index to XF record
    +            $xfIndex = self::getUInt2d($recordData, 4);
    +
    +            $numValue = self::extractNumber(substr($recordData, 6, 8));
    +
    +            $cell = $this->phpSheet->getCell($columnString . ($row + 1));
    +            if (!$this->readDataOnly) {
    +                // add cell style
    +                $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]);
    +            }
    +
    +            // add cell value
    +            $cell->setValueExplicit($numValue, DataType::TYPE_NUMERIC);
    +        }
    +    }
    +
    +    /**
    +     * Read FORMULA record + perhaps a following STRING record if formula result is a string
    +     * This record contains the token array and the result of a
    +     * formula cell.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readFormula()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; row index
    +        $row = self::getUInt2d($recordData, 0);
    +
    +        // offset: 2; size: 2; col index
    +        $column = self::getUInt2d($recordData, 2);
    +        $columnString = Coordinate::stringFromColumnIndex($column + 1);
    +
    +        // offset: 20: size: variable; formula structure
    +        $formulaStructure = substr($recordData, 20);
    +
    +        // offset: 14: size: 2; option flags, recalculate always, recalculate on open etc.
    +        $options = self::getUInt2d($recordData, 14);
    +
    +        // bit: 0; mask: 0x0001; 1 = recalculate always
    +        // bit: 1; mask: 0x0002; 1 = calculate on open
    +        // bit: 2; mask: 0x0008; 1 = part of a shared formula
    +        $isPartOfSharedFormula = (bool) (0x0008 & $options);
    +
    +        // WARNING:
    +        // We can apparently not rely on $isPartOfSharedFormula. Even when $isPartOfSharedFormula = true
    +        // the formula data may be ordinary formula data, therefore we need to check
    +        // explicitly for the tExp token (0x01)
    +        $isPartOfSharedFormula = $isPartOfSharedFormula && ord($formulaStructure[2]) == 0x01;
    +
    +        if ($isPartOfSharedFormula) {
    +            // part of shared formula which means there will be a formula with a tExp token and nothing else
    +            // get the base cell, grab tExp token
    +            $baseRow = self::getUInt2d($formulaStructure, 3);
    +            $baseCol = self::getUInt2d($formulaStructure, 5);
    +            $this->baseCell = Coordinate::stringFromColumnIndex($baseCol + 1) . ($baseRow + 1);
    +        }
    +
    +        // Read cell?
    +        if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) {
    +            if ($isPartOfSharedFormula) {
    +                // formula is added to this cell after the sheet has been read
    +                $this->sharedFormulaParts[$columnString . ($row + 1)] = $this->baseCell;
    +            }
    +
    +            // offset: 16: size: 4; not used
    +
    +            // offset: 4; size: 2; XF index
    +            $xfIndex = self::getUInt2d($recordData, 4);
    +
    +            // offset: 6; size: 8; result of the formula
    +            if ((ord($recordData[6]) == 0) && (ord($recordData[12]) == 255) && (ord($recordData[13]) == 255)) {
    +                // String formula. Result follows in appended STRING record
    +                $dataType = DataType::TYPE_STRING;
    +
    +                // read possible SHAREDFMLA record
    +                $code = self::getUInt2d($this->data, $this->pos);
    +                if ($code == self::XLS_TYPE_SHAREDFMLA) {
    +                    $this->readSharedFmla();
    +                }
    +
    +                // read STRING record
    +                $value = $this->readString();
    +            } elseif ((ord($recordData[6]) == 1)
    +                && (ord($recordData[12]) == 255)
    +                && (ord($recordData[13]) == 255)) {
    +                // Boolean formula. Result is in +2; 0=false, 1=true
    +                $dataType = DataType::TYPE_BOOL;
    +                $value = (bool) ord($recordData[8]);
    +            } elseif ((ord($recordData[6]) == 2)
    +                && (ord($recordData[12]) == 255)
    +                && (ord($recordData[13]) == 255)) {
    +                // Error formula. Error code is in +2
    +                $dataType = DataType::TYPE_ERROR;
    +                $value = Xls\ErrorCode::lookup(ord($recordData[8]));
    +            } elseif ((ord($recordData[6]) == 3)
    +                && (ord($recordData[12]) == 255)
    +                && (ord($recordData[13]) == 255)) {
    +                // Formula result is a null string
    +                $dataType = DataType::TYPE_NULL;
    +                $value = '';
    +            } else {
    +                // forumla result is a number, first 14 bytes like _NUMBER record
    +                $dataType = DataType::TYPE_NUMERIC;
    +                $value = self::extractNumber(substr($recordData, 6, 8));
    +            }
    +
    +            $cell = $this->phpSheet->getCell($columnString . ($row + 1));
    +            if (!$this->readDataOnly) {
    +                // add cell style
    +                $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]);
    +            }
    +
    +            // store the formula
    +            if (!$isPartOfSharedFormula) {
    +                // not part of shared formula
    +                // add cell value. If we can read formula, populate with formula, otherwise just used cached value
    +                try {
    +                    if ($this->version != self::XLS_BIFF8) {
    +                        throw new Exception('Not BIFF8. Can only read BIFF8 formulas');
    +                    }
    +                    $formula = $this->getFormulaFromStructure($formulaStructure); // get formula in human language
    +                    $cell->setValueExplicit('=' . $formula, DataType::TYPE_FORMULA);
    +                } catch (PhpSpreadsheetException $e) {
    +                    $cell->setValueExplicit($value, $dataType);
    +                }
    +            } else {
    +                if ($this->version == self::XLS_BIFF8) {
    +                    // do nothing at this point, formula id added later in the code
    +                } else {
    +                    $cell->setValueExplicit($value, $dataType);
    +                }
    +            }
    +
    +            // store the cached calculated value
    +            $cell->setCalculatedValue($value);
    +        }
    +    }
    +
    +    /**
    +     * Read a SHAREDFMLA record. This function just stores the binary shared formula in the reader,
    +     * which usually contains relative references.
    +     * These will be used to construct the formula in each shared formula part after the sheet is read.
    +     */
    +    private function readSharedFmla()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0, size: 6; cell range address of the area used by the shared formula, not used for anything
    +        $cellRange = substr($recordData, 0, 6);
    +        $cellRange = $this->readBIFF5CellRangeAddressFixed($cellRange); // note: even BIFF8 uses BIFF5 syntax
    +
    +        // offset: 6, size: 1; not used
    +
    +        // offset: 7, size: 1; number of existing FORMULA records for this shared formula
    +        $no = ord($recordData[7]);
    +
    +        // offset: 8, size: var; Binary token array of the shared formula
    +        $formula = substr($recordData, 8);
    +
    +        // at this point we only store the shared formula for later use
    +        $this->sharedFormulas[$this->baseCell] = $formula;
    +    }
    +
    +    /**
    +     * Read a STRING record from current stream position and advance the stream pointer to next record
    +     * This record is used for storing result from FORMULA record when it is a string, and
    +     * it occurs directly after the FORMULA record.
    +     *
    +     * @return string The string contents as UTF-8
    +     */
    +    private function readString()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->version == self::XLS_BIFF8) {
    +            $string = self::readUnicodeStringLong($recordData);
    +            $value = $string['value'];
    +        } else {
    +            $string = $this->readByteStringLong($recordData);
    +            $value = $string['value'];
    +        }
    +
    +        return $value;
    +    }
    +
    +    /**
    +     * Read BOOLERR record
    +     * This record represents a Boolean value or error value
    +     * cell.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readBoolErr()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; row index
    +        $row = self::getUInt2d($recordData, 0);
    +
    +        // offset: 2; size: 2; column index
    +        $column = self::getUInt2d($recordData, 2);
    +        $columnString = Coordinate::stringFromColumnIndex($column + 1);
    +
    +        // Read cell?
    +        if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) {
    +            // offset: 4; size: 2; index to XF record
    +            $xfIndex = self::getUInt2d($recordData, 4);
    +
    +            // offset: 6; size: 1; the boolean value or error value
    +            $boolErr = ord($recordData[6]);
    +
    +            // offset: 7; size: 1; 0=boolean; 1=error
    +            $isError = ord($recordData[7]);
    +
    +            $cell = $this->phpSheet->getCell($columnString . ($row + 1));
    +            switch ($isError) {
    +                case 0: // boolean
    +                    $value = (bool) $boolErr;
    +
    +                    // add cell value
    +                    $cell->setValueExplicit($value, DataType::TYPE_BOOL);
    +
    +                    break;
    +                case 1: // error type
    +                    $value = Xls\ErrorCode::lookup($boolErr);
    +
    +                    // add cell value
    +                    $cell->setValueExplicit($value, DataType::TYPE_ERROR);
    +
    +                    break;
    +            }
    +
    +            if (!$this->readDataOnly) {
    +                // add cell style
    +                $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read MULBLANK record
    +     * This record represents a cell range of empty cells. All
    +     * cells are located in the same row.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readMulBlank()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; index to row
    +        $row = self::getUInt2d($recordData, 0);
    +
    +        // offset: 2; size: 2; index to first column
    +        $fc = self::getUInt2d($recordData, 2);
    +
    +        // offset: 4; size: 2 x nc; list of indexes to XF records
    +        // add style information
    +        if (!$this->readDataOnly && $this->readEmptyCells) {
    +            for ($i = 0; $i < $length / 2 - 3; ++$i) {
    +                $columnString = Coordinate::stringFromColumnIndex($fc + $i + 1);
    +
    +                // Read cell?
    +                if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) {
    +                    $xfIndex = self::getUInt2d($recordData, 4 + 2 * $i);
    +                    $this->phpSheet->getCell($columnString . ($row + 1))->setXfIndex($this->mapCellXfIndex[$xfIndex]);
    +                }
    +            }
    +        }
    +
    +        // offset: 6; size 2; index to last column (not needed)
    +    }
    +
    +    /**
    +     * Read LABEL record
    +     * This record represents a cell that contains a string. In
    +     * BIFF8 it is usually replaced by the LABELSST record.
    +     * Excel still uses this record, if it copies unformatted
    +     * text cells to the clipboard.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readLabel()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; index to row
    +        $row = self::getUInt2d($recordData, 0);
    +
    +        // offset: 2; size: 2; index to column
    +        $column = self::getUInt2d($recordData, 2);
    +        $columnString = Coordinate::stringFromColumnIndex($column + 1);
    +
    +        // Read cell?
    +        if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) {
    +            // offset: 4; size: 2; XF index
    +            $xfIndex = self::getUInt2d($recordData, 4);
    +
    +            // add cell value
    +            // todo: what if string is very long? continue record
    +            if ($this->version == self::XLS_BIFF8) {
    +                $string = self::readUnicodeStringLong(substr($recordData, 6));
    +                $value = $string['value'];
    +            } else {
    +                $string = $this->readByteStringLong(substr($recordData, 6));
    +                $value = $string['value'];
    +            }
    +            if ($this->readEmptyCells || trim($value) !== '') {
    +                $cell = $this->phpSheet->getCell($columnString . ($row + 1));
    +                $cell->setValueExplicit($value, DataType::TYPE_STRING);
    +
    +                if (!$this->readDataOnly) {
    +                    // add cell style
    +                    $cell->setXfIndex($this->mapCellXfIndex[$xfIndex]);
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read BLANK record.
    +     */
    +    private function readBlank()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; row index
    +        $row = self::getUInt2d($recordData, 0);
    +
    +        // offset: 2; size: 2; col index
    +        $col = self::getUInt2d($recordData, 2);
    +        $columnString = Coordinate::stringFromColumnIndex($col + 1);
    +
    +        // Read cell?
    +        if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) {
    +            // offset: 4; size: 2; XF index
    +            $xfIndex = self::getUInt2d($recordData, 4);
    +
    +            // add style information
    +            if (!$this->readDataOnly && $this->readEmptyCells) {
    +                $this->phpSheet->getCell($columnString . ($row + 1))->setXfIndex($this->mapCellXfIndex[$xfIndex]);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read MSODRAWING record.
    +     */
    +    private function readMsoDrawing()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +
    +        // get spliced record data
    +        $splicedRecordData = $this->getSplicedRecordData();
    +        $recordData = $splicedRecordData['recordData'];
    +
    +        $this->drawingData .= $recordData;
    +    }
    +
    +    /**
    +     * Read OBJ record.
    +     */
    +    private function readObj()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->readDataOnly || $this->version != self::XLS_BIFF8) {
    +            return;
    +        }
    +
    +        // recordData consists of an array of subrecords looking like this:
    +        //    ft: 2 bytes; ftCmo type (0x15)
    +        //    cb: 2 bytes; size in bytes of ftCmo data
    +        //    ot: 2 bytes; Object Type
    +        //    id: 2 bytes; Object id number
    +        //    grbit: 2 bytes; Option Flags
    +        //    data: var; subrecord data
    +
    +        // for now, we are just interested in the second subrecord containing the object type
    +        $ftCmoType = self::getUInt2d($recordData, 0);
    +        $cbCmoSize = self::getUInt2d($recordData, 2);
    +        $otObjType = self::getUInt2d($recordData, 4);
    +        $idObjID = self::getUInt2d($recordData, 6);
    +        $grbitOpts = self::getUInt2d($recordData, 6);
    +
    +        $this->objs[] = [
    +            'ftCmoType' => $ftCmoType,
    +            'cbCmoSize' => $cbCmoSize,
    +            'otObjType' => $otObjType,
    +            'idObjID' => $idObjID,
    +            'grbitOpts' => $grbitOpts,
    +        ];
    +        $this->textObjRef = $idObjID;
    +    }
    +
    +    /**
    +     * Read WINDOW2 record.
    +     */
    +    private function readWindow2()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; option flags
    +        $options = self::getUInt2d($recordData, 0);
    +
    +        // offset: 2; size: 2; index to first visible row
    +        $firstVisibleRow = self::getUInt2d($recordData, 2);
    +
    +        // offset: 4; size: 2; index to first visible colum
    +        $firstVisibleColumn = self::getUInt2d($recordData, 4);
    +        if ($this->version === self::XLS_BIFF8) {
    +            // offset:  8; size: 2; not used
    +            // offset: 10; size: 2; cached magnification factor in page break preview (in percent); 0 = Default (60%)
    +            // offset: 12; size: 2; cached magnification factor in normal view (in percent); 0 = Default (100%)
    +            // offset: 14; size: 4; not used
    +            $zoomscaleInPageBreakPreview = self::getUInt2d($recordData, 10);
    +            if ($zoomscaleInPageBreakPreview === 0) {
    +                $zoomscaleInPageBreakPreview = 60;
    +            }
    +            $zoomscaleInNormalView = self::getUInt2d($recordData, 12);
    +            if ($zoomscaleInNormalView === 0) {
    +                $zoomscaleInNormalView = 100;
    +            }
    +        }
    +
    +        // bit: 1; mask: 0x0002; 0 = do not show gridlines, 1 = show gridlines
    +        $showGridlines = (bool) ((0x0002 & $options) >> 1);
    +        $this->phpSheet->setShowGridlines($showGridlines);
    +
    +        // bit: 2; mask: 0x0004; 0 = do not show headers, 1 = show headers
    +        $showRowColHeaders = (bool) ((0x0004 & $options) >> 2);
    +        $this->phpSheet->setShowRowColHeaders($showRowColHeaders);
    +
    +        // bit: 3; mask: 0x0008; 0 = panes are not frozen, 1 = panes are frozen
    +        $this->frozen = (bool) ((0x0008 & $options) >> 3);
    +
    +        // bit: 6; mask: 0x0040; 0 = columns from left to right, 1 = columns from right to left
    +        $this->phpSheet->setRightToLeft((bool) ((0x0040 & $options) >> 6));
    +
    +        // bit: 10; mask: 0x0400; 0 = sheet not active, 1 = sheet active
    +        $isActive = (bool) ((0x0400 & $options) >> 10);
    +        if ($isActive) {
    +            $this->spreadsheet->setActiveSheetIndex($this->spreadsheet->getIndex($this->phpSheet));
    +        }
    +
    +        // bit: 11; mask: 0x0800; 0 = normal view, 1 = page break view
    +        $isPageBreakPreview = (bool) ((0x0800 & $options) >> 11);
    +
    +        //FIXME: set $firstVisibleRow and $firstVisibleColumn
    +
    +        if ($this->phpSheet->getSheetView()->getView() !== SheetView::SHEETVIEW_PAGE_LAYOUT) {
    +            //NOTE: this setting is inferior to page layout view(Excel2007-)
    +            $view = $isPageBreakPreview ? SheetView::SHEETVIEW_PAGE_BREAK_PREVIEW : SheetView::SHEETVIEW_NORMAL;
    +            $this->phpSheet->getSheetView()->setView($view);
    +            if ($this->version === self::XLS_BIFF8) {
    +                $zoomScale = $isPageBreakPreview ? $zoomscaleInPageBreakPreview : $zoomscaleInNormalView;
    +                $this->phpSheet->getSheetView()->setZoomScale($zoomScale);
    +                $this->phpSheet->getSheetView()->setZoomScaleNormal($zoomscaleInNormalView);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read PLV Record(Created by Excel2007 or upper).
    +     */
    +    private function readPageLayoutView()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; rt
    +        //->ignore
    +        $rt = self::getUInt2d($recordData, 0);
    +        // offset: 2; size: 2; grbitfr
    +        //->ignore
    +        $grbitFrt = self::getUInt2d($recordData, 2);
    +        // offset: 4; size: 8; reserved
    +        //->ignore
    +
    +        // offset: 12; size 2; zoom scale
    +        $wScalePLV = self::getUInt2d($recordData, 12);
    +        // offset: 14; size 2; grbit
    +        $grbit = self::getUInt2d($recordData, 14);
    +
    +        // decomprise grbit
    +        $fPageLayoutView = $grbit & 0x01;
    +        $fRulerVisible = ($grbit >> 1) & 0x01; //no support
    +        $fWhitespaceHidden = ($grbit >> 3) & 0x01; //no support
    +
    +        if ($fPageLayoutView === 1) {
    +            $this->phpSheet->getSheetView()->setView(SheetView::SHEETVIEW_PAGE_LAYOUT);
    +            $this->phpSheet->getSheetView()->setZoomScale($wScalePLV); //set by Excel2007 only if SHEETVIEW_PAGE_LAYOUT
    +        }
    +        //otherwise, we cannot know whether SHEETVIEW_PAGE_LAYOUT or SHEETVIEW_PAGE_BREAK_PREVIEW.
    +    }
    +
    +    /**
    +     * Read SCL record.
    +     */
    +    private function readScl()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // offset: 0; size: 2; numerator of the view magnification
    +        $numerator = self::getUInt2d($recordData, 0);
    +
    +        // offset: 2; size: 2; numerator of the view magnification
    +        $denumerator = self::getUInt2d($recordData, 2);
    +
    +        // set the zoom scale (in percent)
    +        $this->phpSheet->getSheetView()->setZoomScale($numerator * 100 / $denumerator);
    +    }
    +
    +    /**
    +     * Read PANE record.
    +     */
    +    private function readPane()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 2; position of vertical split
    +            $px = self::getUInt2d($recordData, 0);
    +
    +            // offset: 2; size: 2; position of horizontal split
    +            $py = self::getUInt2d($recordData, 2);
    +
    +            // offset: 4; size: 2; top most visible row in the bottom pane
    +            $rwTop = self::getUInt2d($recordData, 4);
    +
    +            // offset: 6; size: 2; first visible left column in the right pane
    +            $colLeft = self::getUInt2d($recordData, 6);
    +
    +            if ($this->frozen) {
    +                // frozen panes
    +                $cell = Coordinate::stringFromColumnIndex($px + 1) . ($py + 1);
    +                $topLeftCell = Coordinate::stringFromColumnIndex($colLeft + 1) . ($rwTop + 1);
    +                $this->phpSheet->freezePane($cell, $topLeftCell);
    +            }
    +            // unfrozen panes; split windows; not supported by PhpSpreadsheet core
    +        }
    +    }
    +
    +    /**
    +     * Read SELECTION record. There is one such record for each pane in the sheet.
    +     */
    +    private function readSelection()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 1; pane identifier
    +            $paneId = ord($recordData[0]);
    +
    +            // offset: 1; size: 2; index to row of the active cell
    +            $r = self::getUInt2d($recordData, 1);
    +
    +            // offset: 3; size: 2; index to column of the active cell
    +            $c = self::getUInt2d($recordData, 3);
    +
    +            // offset: 5; size: 2; index into the following cell range list to the
    +            //  entry that contains the active cell
    +            $index = self::getUInt2d($recordData, 5);
    +
    +            // offset: 7; size: var; cell range address list containing all selected cell ranges
    +            $data = substr($recordData, 7);
    +            $cellRangeAddressList = $this->readBIFF5CellRangeAddressList($data); // note: also BIFF8 uses BIFF5 syntax
    +
    +            $selectedCells = $cellRangeAddressList['cellRangeAddresses'][0];
    +
    +            // first row '1' + last row '16384' indicates that full column is selected (apparently also in BIFF8!)
    +            if (preg_match('/^([A-Z]+1\:[A-Z]+)16384$/', $selectedCells)) {
    +                $selectedCells = preg_replace('/^([A-Z]+1\:[A-Z]+)16384$/', '${1}1048576', $selectedCells);
    +            }
    +
    +            // first row '1' + last row '65536' indicates that full column is selected
    +            if (preg_match('/^([A-Z]+1\:[A-Z]+)65536$/', $selectedCells)) {
    +                $selectedCells = preg_replace('/^([A-Z]+1\:[A-Z]+)65536$/', '${1}1048576', $selectedCells);
    +            }
    +
    +            // first column 'A' + last column 'IV' indicates that full row is selected
    +            if (preg_match('/^(A\d+\:)IV(\d+)$/', $selectedCells)) {
    +                $selectedCells = preg_replace('/^(A\d+\:)IV(\d+)$/', '${1}XFD${2}', $selectedCells);
    +            }
    +
    +            $this->phpSheet->setSelectedCells($selectedCells);
    +        }
    +    }
    +
    +    private function includeCellRangeFiltered($cellRangeAddress)
    +    {
    +        $includeCellRange = true;
    +        if ($this->getReadFilter() !== null) {
    +            $includeCellRange = false;
    +            $rangeBoundaries = Coordinate::getRangeBoundaries($cellRangeAddress);
    +            ++$rangeBoundaries[1][0];
    +            for ($row = $rangeBoundaries[0][1]; $row <= $rangeBoundaries[1][1]; ++$row) {
    +                for ($column = $rangeBoundaries[0][0]; $column != $rangeBoundaries[1][0]; ++$column) {
    +                    if ($this->getReadFilter()->readCell($column, $row, $this->phpSheet->getTitle())) {
    +                        $includeCellRange = true;
    +
    +                        break 2;
    +                    }
    +                }
    +            }
    +        }
    +
    +        return $includeCellRange;
    +    }
    +
    +    /**
    +     * MERGEDCELLS.
    +     *
    +     * This record contains the addresses of merged cell ranges
    +     * in the current sheet.
    +     *
    +     * --    "OpenOffice.org's Documentation of the Microsoft
    +     *         Excel File Format"
    +     */
    +    private function readMergedCells()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->version == self::XLS_BIFF8 && !$this->readDataOnly) {
    +            $cellRangeAddressList = $this->readBIFF8CellRangeAddressList($recordData);
    +            foreach ($cellRangeAddressList['cellRangeAddresses'] as $cellRangeAddress) {
    +                if ((strpos($cellRangeAddress, ':') !== false) &&
    +                    ($this->includeCellRangeFiltered($cellRangeAddress))) {
    +                    $this->phpSheet->mergeCells($cellRangeAddress);
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read HYPERLINK record.
    +     */
    +    private function readHyperLink()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer forward to next record
    +        $this->pos += 4 + $length;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 8; cell range address of all cells containing this hyperlink
    +            try {
    +                $cellRange = $this->readBIFF8CellRangeAddressFixed($recordData);
    +            } catch (PhpSpreadsheetException $e) {
    +                return;
    +            }
    +
    +            // offset: 8, size: 16; GUID of StdLink
    +
    +            // offset: 24, size: 4; unknown value
    +
    +            // offset: 28, size: 4; option flags
    +            // bit: 0; mask: 0x00000001; 0 = no link or extant, 1 = file link or URL
    +            $isFileLinkOrUrl = (0x00000001 & self::getUInt2d($recordData, 28)) >> 0;
    +
    +            // bit: 1; mask: 0x00000002; 0 = relative path, 1 = absolute path or URL
    +            $isAbsPathOrUrl = (0x00000001 & self::getUInt2d($recordData, 28)) >> 1;
    +
    +            // bit: 2 (and 4); mask: 0x00000014; 0 = no description
    +            $hasDesc = (0x00000014 & self::getUInt2d($recordData, 28)) >> 2;
    +
    +            // bit: 3; mask: 0x00000008; 0 = no text, 1 = has text
    +            $hasText = (0x00000008 & self::getUInt2d($recordData, 28)) >> 3;
    +
    +            // bit: 7; mask: 0x00000080; 0 = no target frame, 1 = has target frame
    +            $hasFrame = (0x00000080 & self::getUInt2d($recordData, 28)) >> 7;
    +
    +            // bit: 8; mask: 0x00000100; 0 = file link or URL, 1 = UNC path (inc. server name)
    +            $isUNC = (0x00000100 & self::getUInt2d($recordData, 28)) >> 8;
    +
    +            // offset within record data
    +            $offset = 32;
    +
    +            if ($hasDesc) {
    +                // offset: 32; size: var; character count of description text
    +                $dl = self::getInt4d($recordData, 32);
    +                // offset: 36; size: var; character array of description text, no Unicode string header, always 16-bit characters, zero terminated
    +                $desc = self::encodeUTF16(substr($recordData, 36, 2 * ($dl - 1)), false);
    +                $offset += 4 + 2 * $dl;
    +            }
    +            if ($hasFrame) {
    +                $fl = self::getInt4d($recordData, $offset);
    +                $offset += 4 + 2 * $fl;
    +            }
    +
    +            // detect type of hyperlink (there are 4 types)
    +            $hyperlinkType = null;
    +
    +            if ($isUNC) {
    +                $hyperlinkType = 'UNC';
    +            } elseif (!$isFileLinkOrUrl) {
    +                $hyperlinkType = 'workbook';
    +            } elseif (ord($recordData[$offset]) == 0x03) {
    +                $hyperlinkType = 'local';
    +            } elseif (ord($recordData[$offset]) == 0xE0) {
    +                $hyperlinkType = 'URL';
    +            }
    +
    +            switch ($hyperlinkType) {
    +                case 'URL':
    +                    // section 5.58.2: Hyperlink containing a URL
    +                    // e.g. http://example.org/index.php
    +
    +                    // offset: var; size: 16; GUID of URL Moniker
    +                    $offset += 16;
    +                    // offset: var; size: 4; size (in bytes) of character array of the URL including trailing zero word
    +                    $us = self::getInt4d($recordData, $offset);
    +                    $offset += 4;
    +                    // offset: var; size: $us; character array of the URL, no Unicode string header, always 16-bit characters, zero-terminated
    +                    $url = self::encodeUTF16(substr($recordData, $offset, $us - 2), false);
    +                    $nullOffset = strpos($url, chr(0x00));
    +                    if ($nullOffset) {
    +                        $url = substr($url, 0, $nullOffset);
    +                    }
    +                    $url .= $hasText ? '#' : '';
    +                    $offset += $us;
    +
    +                    break;
    +                case 'local':
    +                    // section 5.58.3: Hyperlink to local file
    +                    // examples:
    +                    //   mydoc.txt
    +                    //   ../../somedoc.xls#Sheet!A1
    +
    +                    // offset: var; size: 16; GUI of File Moniker
    +                    $offset += 16;
    +
    +                    // offset: var; size: 2; directory up-level count.
    +                    $upLevelCount = self::getUInt2d($recordData, $offset);
    +                    $offset += 2;
    +
    +                    // offset: var; size: 4; character count of the shortened file path and name, including trailing zero word
    +                    $sl = self::getInt4d($recordData, $offset);
    +                    $offset += 4;
    +
    +                    // offset: var; size: sl; character array of the shortened file path and name in 8.3-DOS-format (compressed Unicode string)
    +                    $shortenedFilePath = substr($recordData, $offset, $sl);
    +                    $shortenedFilePath = self::encodeUTF16($shortenedFilePath, true);
    +                    $shortenedFilePath = substr($shortenedFilePath, 0, -1); // remove trailing zero
    +
    +                    $offset += $sl;
    +
    +                    // offset: var; size: 24; unknown sequence
    +                    $offset += 24;
    +
    +                    // extended file path
    +                    // offset: var; size: 4; size of the following file link field including string lenth mark
    +                    $sz = self::getInt4d($recordData, $offset);
    +                    $offset += 4;
    +
    +                    // only present if $sz > 0
    +                    if ($sz > 0) {
    +                        // offset: var; size: 4; size of the character array of the extended file path and name
    +                        $xl = self::getInt4d($recordData, $offset);
    +                        $offset += 4;
    +
    +                        // offset: var; size 2; unknown
    +                        $offset += 2;
    +
    +                        // offset: var; size $xl; character array of the extended file path and name.
    +                        $extendedFilePath = substr($recordData, $offset, $xl);
    +                        $extendedFilePath = self::encodeUTF16($extendedFilePath, false);
    +                        $offset += $xl;
    +                    }
    +
    +                    // construct the path
    +                    $url = str_repeat('..\\', $upLevelCount);
    +                    $url .= ($sz > 0) ? $extendedFilePath : $shortenedFilePath; // use extended path if available
    +                    $url .= $hasText ? '#' : '';
    +
    +                    break;
    +                case 'UNC':
    +                    // section 5.58.4: Hyperlink to a File with UNC (Universal Naming Convention) Path
    +                    // todo: implement
    +                    return;
    +                case 'workbook':
    +                    // section 5.58.5: Hyperlink to the Current Workbook
    +                    // e.g. Sheet2!B1:C2, stored in text mark field
    +                    $url = 'sheet://';
    +
    +                    break;
    +                default:
    +                    return;
    +            }
    +
    +            if ($hasText) {
    +                // offset: var; size: 4; character count of text mark including trailing zero word
    +                $tl = self::getInt4d($recordData, $offset);
    +                $offset += 4;
    +                // offset: var; size: var; character array of the text mark without the # sign, no Unicode header, always 16-bit characters, zero-terminated
    +                $text = self::encodeUTF16(substr($recordData, $offset, 2 * ($tl - 1)), false);
    +                $url .= $text;
    +            }
    +
    +            // apply the hyperlink to all the relevant cells
    +            foreach (Coordinate::extractAllCellReferencesInRange($cellRange) as $coordinate) {
    +                $this->phpSheet->getCell($coordinate)->getHyperLink()->setUrl($url);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read DATAVALIDATIONS record.
    +     */
    +    private function readDataValidations()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer forward to next record
    +        $this->pos += 4 + $length;
    +    }
    +
    +    /**
    +     * Read DATAVALIDATION record.
    +     */
    +    private function readDataValidation()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer forward to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->readDataOnly) {
    +            return;
    +        }
    +
    +        // offset: 0; size: 4; Options
    +        $options = self::getInt4d($recordData, 0);
    +
    +        // bit: 0-3; mask: 0x0000000F; type
    +        $type = (0x0000000F & $options) >> 0;
    +        switch ($type) {
    +            case 0x00:
    +                $type = DataValidation::TYPE_NONE;
    +
    +                break;
    +            case 0x01:
    +                $type = DataValidation::TYPE_WHOLE;
    +
    +                break;
    +            case 0x02:
    +                $type = DataValidation::TYPE_DECIMAL;
    +
    +                break;
    +            case 0x03:
    +                $type = DataValidation::TYPE_LIST;
    +
    +                break;
    +            case 0x04:
    +                $type = DataValidation::TYPE_DATE;
    +
    +                break;
    +            case 0x05:
    +                $type = DataValidation::TYPE_TIME;
    +
    +                break;
    +            case 0x06:
    +                $type = DataValidation::TYPE_TEXTLENGTH;
    +
    +                break;
    +            case 0x07:
    +                $type = DataValidation::TYPE_CUSTOM;
    +
    +                break;
    +        }
    +
    +        // bit: 4-6; mask: 0x00000070; error type
    +        $errorStyle = (0x00000070 & $options) >> 4;
    +        switch ($errorStyle) {
    +            case 0x00:
    +                $errorStyle = DataValidation::STYLE_STOP;
    +
    +                break;
    +            case 0x01:
    +                $errorStyle = DataValidation::STYLE_WARNING;
    +
    +                break;
    +            case 0x02:
    +                $errorStyle = DataValidation::STYLE_INFORMATION;
    +
    +                break;
    +        }
    +
    +        // bit: 7; mask: 0x00000080; 1= formula is explicit (only applies to list)
    +        // I have only seen cases where this is 1
    +        $explicitFormula = (0x00000080 & $options) >> 7;
    +
    +        // bit: 8; mask: 0x00000100; 1= empty cells allowed
    +        $allowBlank = (0x00000100 & $options) >> 8;
    +
    +        // bit: 9; mask: 0x00000200; 1= suppress drop down arrow in list type validity
    +        $suppressDropDown = (0x00000200 & $options) >> 9;
    +
    +        // bit: 18; mask: 0x00040000; 1= show prompt box if cell selected
    +        $showInputMessage = (0x00040000 & $options) >> 18;
    +
    +        // bit: 19; mask: 0x00080000; 1= show error box if invalid values entered
    +        $showErrorMessage = (0x00080000 & $options) >> 19;
    +
    +        // bit: 20-23; mask: 0x00F00000; condition operator
    +        $operator = (0x00F00000 & $options) >> 20;
    +        switch ($operator) {
    +            case 0x00:
    +                $operator = DataValidation::OPERATOR_BETWEEN;
    +
    +                break;
    +            case 0x01:
    +                $operator = DataValidation::OPERATOR_NOTBETWEEN;
    +
    +                break;
    +            case 0x02:
    +                $operator = DataValidation::OPERATOR_EQUAL;
    +
    +                break;
    +            case 0x03:
    +                $operator = DataValidation::OPERATOR_NOTEQUAL;
    +
    +                break;
    +            case 0x04:
    +                $operator = DataValidation::OPERATOR_GREATERTHAN;
    +
    +                break;
    +            case 0x05:
    +                $operator = DataValidation::OPERATOR_LESSTHAN;
    +
    +                break;
    +            case 0x06:
    +                $operator = DataValidation::OPERATOR_GREATERTHANOREQUAL;
    +
    +                break;
    +            case 0x07:
    +                $operator = DataValidation::OPERATOR_LESSTHANOREQUAL;
    +
    +                break;
    +        }
    +
    +        // offset: 4; size: var; title of the prompt box
    +        $offset = 4;
    +        $string = self::readUnicodeStringLong(substr($recordData, $offset));
    +        $promptTitle = $string['value'] !== chr(0) ? $string['value'] : '';
    +        $offset += $string['size'];
    +
    +        // offset: var; size: var; title of the error box
    +        $string = self::readUnicodeStringLong(substr($recordData, $offset));
    +        $errorTitle = $string['value'] !== chr(0) ? $string['value'] : '';
    +        $offset += $string['size'];
    +
    +        // offset: var; size: var; text of the prompt box
    +        $string = self::readUnicodeStringLong(substr($recordData, $offset));
    +        $prompt = $string['value'] !== chr(0) ? $string['value'] : '';
    +        $offset += $string['size'];
    +
    +        // offset: var; size: var; text of the error box
    +        $string = self::readUnicodeStringLong(substr($recordData, $offset));
    +        $error = $string['value'] !== chr(0) ? $string['value'] : '';
    +        $offset += $string['size'];
    +
    +        // offset: var; size: 2; size of the formula data for the first condition
    +        $sz1 = self::getUInt2d($recordData, $offset);
    +        $offset += 2;
    +
    +        // offset: var; size: 2; not used
    +        $offset += 2;
    +
    +        // offset: var; size: $sz1; formula data for first condition (without size field)
    +        $formula1 = substr($recordData, $offset, $sz1);
    +        $formula1 = pack('v', $sz1) . $formula1; // prepend the length
    +        try {
    +            $formula1 = $this->getFormulaFromStructure($formula1);
    +
    +            // in list type validity, null characters are used as item separators
    +            if ($type == DataValidation::TYPE_LIST) {
    +                $formula1 = str_replace(chr(0), ',', $formula1);
    +            }
    +        } catch (PhpSpreadsheetException $e) {
    +            return;
    +        }
    +        $offset += $sz1;
    +
    +        // offset: var; size: 2; size of the formula data for the first condition
    +        $sz2 = self::getUInt2d($recordData, $offset);
    +        $offset += 2;
    +
    +        // offset: var; size: 2; not used
    +        $offset += 2;
    +
    +        // offset: var; size: $sz2; formula data for second condition (without size field)
    +        $formula2 = substr($recordData, $offset, $sz2);
    +        $formula2 = pack('v', $sz2) . $formula2; // prepend the length
    +        try {
    +            $formula2 = $this->getFormulaFromStructure($formula2);
    +        } catch (PhpSpreadsheetException $e) {
    +            return;
    +        }
    +        $offset += $sz2;
    +
    +        // offset: var; size: var; cell range address list with
    +        $cellRangeAddressList = $this->readBIFF8CellRangeAddressList(substr($recordData, $offset));
    +        $cellRangeAddresses = $cellRangeAddressList['cellRangeAddresses'];
    +
    +        foreach ($cellRangeAddresses as $cellRange) {
    +            $stRange = $this->phpSheet->shrinkRangeToFit($cellRange);
    +            foreach (Coordinate::extractAllCellReferencesInRange($stRange) as $coordinate) {
    +                $objValidation = $this->phpSheet->getCell($coordinate)->getDataValidation();
    +                $objValidation->setType($type);
    +                $objValidation->setErrorStyle($errorStyle);
    +                $objValidation->setAllowBlank((bool) $allowBlank);
    +                $objValidation->setShowInputMessage((bool) $showInputMessage);
    +                $objValidation->setShowErrorMessage((bool) $showErrorMessage);
    +                $objValidation->setShowDropDown(!$suppressDropDown);
    +                $objValidation->setOperator($operator);
    +                $objValidation->setErrorTitle($errorTitle);
    +                $objValidation->setError($error);
    +                $objValidation->setPromptTitle($promptTitle);
    +                $objValidation->setPrompt($prompt);
    +                $objValidation->setFormula1($formula1);
    +                $objValidation->setFormula2($formula2);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read SHEETLAYOUT record. Stores sheet tab color information.
    +     */
    +    private function readSheetLayout()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // local pointer in record data
    +        $offset = 0;
    +
    +        if (!$this->readDataOnly) {
    +            // offset: 0; size: 2; repeated record identifier 0x0862
    +
    +            // offset: 2; size: 10; not used
    +
    +            // offset: 12; size: 4; size of record data
    +            // Excel 2003 uses size of 0x14 (documented), Excel 2007 uses size of 0x28 (not documented?)
    +            $sz = self::getInt4d($recordData, 12);
    +
    +            switch ($sz) {
    +                case 0x14:
    +                    // offset: 16; size: 2; color index for sheet tab
    +                    $colorIndex = self::getUInt2d($recordData, 16);
    +                    $color = Xls\Color::map($colorIndex, $this->palette, $this->version);
    +                    $this->phpSheet->getTabColor()->setRGB($color['rgb']);
    +
    +                    break;
    +                case 0x28:
    +                    // TODO: Investigate structure for .xls SHEETLAYOUT record as saved by MS Office Excel 2007
    +                    return;
    +
    +                    break;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read SHEETPROTECTION record (FEATHEADR).
    +     */
    +    private function readSheetProtection()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        if ($this->readDataOnly) {
    +            return;
    +        }
    +
    +        // offset: 0; size: 2; repeated record header
    +
    +        // offset: 2; size: 2; FRT cell reference flag (=0 currently)
    +
    +        // offset: 4; size: 8; Currently not used and set to 0
    +
    +        // offset: 12; size: 2; Shared feature type index (2=Enhanced Protetion, 4=SmartTag)
    +        $isf = self::getUInt2d($recordData, 12);
    +        if ($isf != 2) {
    +            return;
    +        }
    +
    +        // offset: 14; size: 1; =1 since this is a feat header
    +
    +        // offset: 15; size: 4; size of rgbHdrSData
    +
    +        // rgbHdrSData, assume "Enhanced Protection"
    +        // offset: 19; size: 2; option flags
    +        $options = self::getUInt2d($recordData, 19);
    +
    +        // bit: 0; mask 0x0001; 1 = user may edit objects, 0 = users must not edit objects
    +        $bool = (0x0001 & $options) >> 0;
    +        $this->phpSheet->getProtection()->setObjects(!$bool);
    +
    +        // bit: 1; mask 0x0002; edit scenarios
    +        $bool = (0x0002 & $options) >> 1;
    +        $this->phpSheet->getProtection()->setScenarios(!$bool);
    +
    +        // bit: 2; mask 0x0004; format cells
    +        $bool = (0x0004 & $options) >> 2;
    +        $this->phpSheet->getProtection()->setFormatCells(!$bool);
    +
    +        // bit: 3; mask 0x0008; format columns
    +        $bool = (0x0008 & $options) >> 3;
    +        $this->phpSheet->getProtection()->setFormatColumns(!$bool);
    +
    +        // bit: 4; mask 0x0010; format rows
    +        $bool = (0x0010 & $options) >> 4;
    +        $this->phpSheet->getProtection()->setFormatRows(!$bool);
    +
    +        // bit: 5; mask 0x0020; insert columns
    +        $bool = (0x0020 & $options) >> 5;
    +        $this->phpSheet->getProtection()->setInsertColumns(!$bool);
    +
    +        // bit: 6; mask 0x0040; insert rows
    +        $bool = (0x0040 & $options) >> 6;
    +        $this->phpSheet->getProtection()->setInsertRows(!$bool);
    +
    +        // bit: 7; mask 0x0080; insert hyperlinks
    +        $bool = (0x0080 & $options) >> 7;
    +        $this->phpSheet->getProtection()->setInsertHyperlinks(!$bool);
    +
    +        // bit: 8; mask 0x0100; delete columns
    +        $bool = (0x0100 & $options) >> 8;
    +        $this->phpSheet->getProtection()->setDeleteColumns(!$bool);
    +
    +        // bit: 9; mask 0x0200; delete rows
    +        $bool = (0x0200 & $options) >> 9;
    +        $this->phpSheet->getProtection()->setDeleteRows(!$bool);
    +
    +        // bit: 10; mask 0x0400; select locked cells
    +        $bool = (0x0400 & $options) >> 10;
    +        $this->phpSheet->getProtection()->setSelectLockedCells(!$bool);
    +
    +        // bit: 11; mask 0x0800; sort cell range
    +        $bool = (0x0800 & $options) >> 11;
    +        $this->phpSheet->getProtection()->setSort(!$bool);
    +
    +        // bit: 12; mask 0x1000; auto filter
    +        $bool = (0x1000 & $options) >> 12;
    +        $this->phpSheet->getProtection()->setAutoFilter(!$bool);
    +
    +        // bit: 13; mask 0x2000; pivot tables
    +        $bool = (0x2000 & $options) >> 13;
    +        $this->phpSheet->getProtection()->setPivotTables(!$bool);
    +
    +        // bit: 14; mask 0x4000; select unlocked cells
    +        $bool = (0x4000 & $options) >> 14;
    +        $this->phpSheet->getProtection()->setSelectUnlockedCells(!$bool);
    +
    +        // offset: 21; size: 2; not used
    +    }
    +
    +    /**
    +     * Read RANGEPROTECTION record
    +     * Reading of this record is based on Microsoft Office Excel 97-2000 Binary File Format Specification,
    +     * where it is referred to as FEAT record.
    +     */
    +    private function readRangeProtection()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +
    +        // local pointer in record data
    +        $offset = 0;
    +
    +        if (!$this->readDataOnly) {
    +            $offset += 12;
    +
    +            // offset: 12; size: 2; shared feature type, 2 = enhanced protection, 4 = smart tag
    +            $isf = self::getUInt2d($recordData, 12);
    +            if ($isf != 2) {
    +                // we only read FEAT records of type 2
    +                return;
    +            }
    +            $offset += 2;
    +
    +            $offset += 5;
    +
    +            // offset: 19; size: 2; count of ref ranges this feature is on
    +            $cref = self::getUInt2d($recordData, 19);
    +            $offset += 2;
    +
    +            $offset += 6;
    +
    +            // offset: 27; size: 8 * $cref; list of cell ranges (like in hyperlink record)
    +            $cellRanges = [];
    +            for ($i = 0; $i < $cref; ++$i) {
    +                try {
    +                    $cellRange = $this->readBIFF8CellRangeAddressFixed(substr($recordData, 27 + 8 * $i, 8));
    +                } catch (PhpSpreadsheetException $e) {
    +                    return;
    +                }
    +                $cellRanges[] = $cellRange;
    +                $offset += 8;
    +            }
    +
    +            // offset: var; size: var; variable length of feature specific data
    +            $rgbFeat = substr($recordData, $offset);
    +            $offset += 4;
    +
    +            // offset: var; size: 4; the encrypted password (only 16-bit although field is 32-bit)
    +            $wPassword = self::getInt4d($recordData, $offset);
    +            $offset += 4;
    +
    +            // Apply range protection to sheet
    +            if ($cellRanges) {
    +                $this->phpSheet->protectCells(implode(' ', $cellRanges), strtoupper(dechex($wPassword)), true);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Read a free CONTINUE record. Free CONTINUE record may be a camouflaged MSODRAWING record
    +     * When MSODRAWING data on a sheet exceeds 8224 bytes, CONTINUE records are used instead. Undocumented.
    +     * In this case, we must treat the CONTINUE record as a MSODRAWING record.
    +     */
    +    private function readContinue()
    +    {
    +        $length = self::getUInt2d($this->data, $this->pos + 2);
    +        $recordData = $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +        // check if we are reading drawing data
    +        // this is in case a free CONTINUE record occurs in other circumstances we are unaware of
    +        if ($this->drawingData == '') {
    +            // move stream pointer to next record
    +            $this->pos += 4 + $length;
    +
    +            return;
    +        }
    +
    +        // check if record data is at least 4 bytes long, otherwise there is no chance this is MSODRAWING data
    +        if ($length < 4) {
    +            // move stream pointer to next record
    +            $this->pos += 4 + $length;
    +
    +            return;
    +        }
    +
    +        // dirty check to see if CONTINUE record could be a camouflaged MSODRAWING record
    +        // look inside CONTINUE record to see if it looks like a part of an Escher stream
    +        // we know that Escher stream may be split at least at
    +        //        0xF003 MsofbtSpgrContainer
    +        //        0xF004 MsofbtSpContainer
    +        //        0xF00D MsofbtClientTextbox
    +        $validSplitPoints = [0xF003, 0xF004, 0xF00D]; // add identifiers if we find more
    +
    +        $splitPoint = self::getUInt2d($recordData, 2);
    +        if (in_array($splitPoint, $validSplitPoints)) {
    +            // get spliced record data (and move pointer to next record)
    +            $splicedRecordData = $this->getSplicedRecordData();
    +            $this->drawingData .= $splicedRecordData['recordData'];
    +
    +            return;
    +        }
    +
    +        // move stream pointer to next record
    +        $this->pos += 4 + $length;
    +    }
    +
    +    /**
    +     * Reads a record from current position in data stream and continues reading data as long as CONTINUE
    +     * records are found. Splices the record data pieces and returns the combined string as if record data
    +     * is in one piece.
    +     * Moves to next current position in data stream to start of next record different from a CONtINUE record.
    +     *
    +     * @return array
    +     */
    +    private function getSplicedRecordData()
    +    {
    +        $data = '';
    +        $spliceOffsets = [];
    +
    +        $i = 0;
    +        $spliceOffsets[0] = 0;
    +
    +        do {
    +            ++$i;
    +
    +            // offset: 0; size: 2; identifier
    +            $identifier = self::getUInt2d($this->data, $this->pos);
    +            // offset: 2; size: 2; length
    +            $length = self::getUInt2d($this->data, $this->pos + 2);
    +            $data .= $this->readRecordData($this->data, $this->pos + 4, $length);
    +
    +            $spliceOffsets[$i] = $spliceOffsets[$i - 1] + $length;
    +
    +            $this->pos += 4 + $length;
    +            $nextIdentifier = self::getUInt2d($this->data, $this->pos);
    +        } while ($nextIdentifier == self::XLS_TYPE_CONTINUE);
    +
    +        $splicedData = [
    +            'recordData' => $data,
    +            'spliceOffsets' => $spliceOffsets,
    +        ];
    +
    +        return $splicedData;
    +    }
    +
    +    /**
    +     * Convert formula structure into human readable Excel formula like 'A3+A5*5'.
    +     *
    +     * @param string $formulaStructure The complete binary data for the formula
    +     * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas
    +     *
    +     * @return string Human readable formula
    +     */
    +    private function getFormulaFromStructure($formulaStructure, $baseCell = 'A1')
    +    {
    +        // offset: 0; size: 2; size of the following formula data
    +        $sz = self::getUInt2d($formulaStructure, 0);
    +
    +        // offset: 2; size: sz
    +        $formulaData = substr($formulaStructure, 2, $sz);
    +
    +        // offset: 2 + sz; size: variable (optional)
    +        if (strlen($formulaStructure) > 2 + $sz) {
    +            $additionalData = substr($formulaStructure, 2 + $sz);
    +        } else {
    +            $additionalData = '';
    +        }
    +
    +        return $this->getFormulaFromData($formulaData, $additionalData, $baseCell);
    +    }
    +
    +    /**
    +     * Take formula data and additional data for formula and return human readable formula.
    +     *
    +     * @param string $formulaData The binary data for the formula itself
    +     * @param string $additionalData Additional binary data going with the formula
    +     * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas
    +     *
    +     * @return string Human readable formula
    +     */
    +    private function getFormulaFromData($formulaData, $additionalData = '', $baseCell = 'A1')
    +    {
    +        // start parsing the formula data
    +        $tokens = [];
    +
    +        while (strlen($formulaData) > 0 and $token = $this->getNextToken($formulaData, $baseCell)) {
    +            $tokens[] = $token;
    +            $formulaData = substr($formulaData, $token['size']);
    +        }
    +
    +        $formulaString = $this->createFormulaFromTokens($tokens, $additionalData);
    +
    +        return $formulaString;
    +    }
    +
    +    /**
    +     * Take array of tokens together with additional data for formula and return human readable formula.
    +     *
    +     * @param array $tokens
    +     * @param string $additionalData Additional binary data going with the formula
    +     *
    +     * @return string Human readable formula
    +     */
    +    private function createFormulaFromTokens($tokens, $additionalData)
    +    {
    +        // empty formula?
    +        if (empty($tokens)) {
    +            return '';
    +        }
    +
    +        $formulaStrings = [];
    +        foreach ($tokens as $token) {
    +            // initialize spaces
    +            $space0 = isset($space0) ? $space0 : ''; // spaces before next token, not tParen
    +            $space1 = isset($space1) ? $space1 : ''; // carriage returns before next token, not tParen
    +            $space2 = isset($space2) ? $space2 : ''; // spaces before opening parenthesis
    +            $space3 = isset($space3) ? $space3 : ''; // carriage returns before opening parenthesis
    +            $space4 = isset($space4) ? $space4 : ''; // spaces before closing parenthesis
    +            $space5 = isset($space5) ? $space5 : ''; // carriage returns before closing parenthesis
    +
    +            switch ($token['name']) {
    +                case 'tAdd': // addition
    +                case 'tConcat': // addition
    +                case 'tDiv': // division
    +                case 'tEQ': // equality
    +                case 'tGE': // greater than or equal
    +                case 'tGT': // greater than
    +                case 'tIsect': // intersection
    +                case 'tLE': // less than or equal
    +                case 'tList': // less than or equal
    +                case 'tLT': // less than
    +                case 'tMul': // multiplication
    +                case 'tNE': // multiplication
    +                case 'tPower': // power
    +                case 'tRange': // range
    +                case 'tSub': // subtraction
    +                    $op2 = array_pop($formulaStrings);
    +                    $op1 = array_pop($formulaStrings);
    +                    $formulaStrings[] = "$op1$space1$space0{$token['data']}$op2";
    +                    unset($space0, $space1);
    +
    +                    break;
    +                case 'tUplus': // unary plus
    +                case 'tUminus': // unary minus
    +                    $op = array_pop($formulaStrings);
    +                    $formulaStrings[] = "$space1$space0{$token['data']}$op";
    +                    unset($space0, $space1);
    +
    +                    break;
    +                case 'tPercent': // percent sign
    +                    $op = array_pop($formulaStrings);
    +                    $formulaStrings[] = "$op$space1$space0{$token['data']}";
    +                    unset($space0, $space1);
    +
    +                    break;
    +                case 'tAttrVolatile': // indicates volatile function
    +                case 'tAttrIf':
    +                case 'tAttrSkip':
    +                case 'tAttrChoose':
    +                    // token is only important for Excel formula evaluator
    +                    // do nothing
    +                    break;
    +                case 'tAttrSpace': // space / carriage return
    +                    // space will be used when next token arrives, do not alter formulaString stack
    +                    switch ($token['data']['spacetype']) {
    +                        case 'type0':
    +                            $space0 = str_repeat(' ', $token['data']['spacecount']);
    +
    +                            break;
    +                        case 'type1':
    +                            $space1 = str_repeat("\n", $token['data']['spacecount']);
    +
    +                            break;
    +                        case 'type2':
    +                            $space2 = str_repeat(' ', $token['data']['spacecount']);
    +
    +                            break;
    +                        case 'type3':
    +                            $space3 = str_repeat("\n", $token['data']['spacecount']);
    +
    +                            break;
    +                        case 'type4':
    +                            $space4 = str_repeat(' ', $token['data']['spacecount']);
    +
    +                            break;
    +                        case 'type5':
    +                            $space5 = str_repeat("\n", $token['data']['spacecount']);
    +
    +                            break;
    +                    }
    +
    +                    break;
    +                case 'tAttrSum': // SUM function with one parameter
    +                    $op = array_pop($formulaStrings);
    +                    $formulaStrings[] = "{$space1}{$space0}SUM($op)";
    +                    unset($space0, $space1);
    +
    +                    break;
    +                case 'tFunc': // function with fixed number of arguments
    +                case 'tFuncV': // function with variable number of arguments
    +                    if ($token['data']['function'] != '') {
    +                        // normal function
    +                        $ops = []; // array of operators
    +                        for ($i = 0; $i < $token['data']['args']; ++$i) {
    +                            $ops[] = array_pop($formulaStrings);
    +                        }
    +                        $ops = array_reverse($ops);
    +                        $formulaStrings[] = "$space1$space0{$token['data']['function']}(" . implode(',', $ops) . ')';
    +                        unset($space0, $space1);
    +                    } else {
    +                        // add-in function
    +                        $ops = []; // array of operators
    +                        for ($i = 0; $i < $token['data']['args'] - 1; ++$i) {
    +                            $ops[] = array_pop($formulaStrings);
    +                        }
    +                        $ops = array_reverse($ops);
    +                        $function = array_pop($formulaStrings);
    +                        $formulaStrings[] = "$space1$space0$function(" . implode(',', $ops) . ')';
    +                        unset($space0, $space1);
    +                    }
    +
    +                    break;
    +                case 'tParen': // parenthesis
    +                    $expression = array_pop($formulaStrings);
    +                    $formulaStrings[] = "$space3$space2($expression$space5$space4)";
    +                    unset($space2, $space3, $space4, $space5);
    +
    +                    break;
    +                case 'tArray': // array constant
    +                    $constantArray = self::readBIFF8ConstantArray($additionalData);
    +                    $formulaStrings[] = $space1 . $space0 . $constantArray['value'];
    +                    $additionalData = substr($additionalData, $constantArray['size']); // bite of chunk of additional data
    +                    unset($space0, $space1);
    +
    +                    break;
    +                case 'tMemArea':
    +                    // bite off chunk of additional data
    +                    $cellRangeAddressList = $this->readBIFF8CellRangeAddressList($additionalData);
    +                    $additionalData = substr($additionalData, $cellRangeAddressList['size']);
    +                    $formulaStrings[] = "$space1$space0{$token['data']}";
    +                    unset($space0, $space1);
    +
    +                    break;
    +                case 'tArea': // cell range address
    +                case 'tBool': // boolean
    +                case 'tErr': // error code
    +                case 'tInt': // integer
    +                case 'tMemErr':
    +                case 'tMemFunc':
    +                case 'tMissArg':
    +                case 'tName':
    +                case 'tNameX':
    +                case 'tNum': // number
    +                case 'tRef': // single cell reference
    +                case 'tRef3d': // 3d cell reference
    +                case 'tArea3d': // 3d cell range reference
    +                case 'tRefN':
    +                case 'tAreaN':
    +                case 'tStr': // string
    +                    $formulaStrings[] = "$space1$space0{$token['data']}";
    +                    unset($space0, $space1);
    +
    +                    break;
    +            }
    +        }
    +        $formulaString = $formulaStrings[0];
    +
    +        return $formulaString;
    +    }
    +
    +    /**
    +     * Fetch next token from binary formula data.
    +     *
    +     * @param string $formulaData Formula data
    +     * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas
    +     *
    +     * @throws Exception
    +     *
    +     * @return array
    +     */
    +    private function getNextToken($formulaData, $baseCell = 'A1')
    +    {
    +        // offset: 0; size: 1; token id
    +        $id = ord($formulaData[0]); // token id
    +        $name = false; // initialize token name
    +
    +        switch ($id) {
    +            case 0x03:
    +                $name = 'tAdd';
    +                $size = 1;
    +                $data = '+';
    +
    +                break;
    +            case 0x04:
    +                $name = 'tSub';
    +                $size = 1;
    +                $data = '-';
    +
    +                break;
    +            case 0x05:
    +                $name = 'tMul';
    +                $size = 1;
    +                $data = '*';
    +
    +                break;
    +            case 0x06:
    +                $name = 'tDiv';
    +                $size = 1;
    +                $data = '/';
    +
    +                break;
    +            case 0x07:
    +                $name = 'tPower';
    +                $size = 1;
    +                $data = '^';
    +
    +                break;
    +            case 0x08:
    +                $name = 'tConcat';
    +                $size = 1;
    +                $data = '&';
    +
    +                break;
    +            case 0x09:
    +                $name = 'tLT';
    +                $size = 1;
    +                $data = '<';
    +
    +                break;
    +            case 0x0A:
    +                $name = 'tLE';
    +                $size = 1;
    +                $data = '<=';
    +
    +                break;
    +            case 0x0B:
    +                $name = 'tEQ';
    +                $size = 1;
    +                $data = '=';
    +
    +                break;
    +            case 0x0C:
    +                $name = 'tGE';
    +                $size = 1;
    +                $data = '>=';
    +
    +                break;
    +            case 0x0D:
    +                $name = 'tGT';
    +                $size = 1;
    +                $data = '>';
    +
    +                break;
    +            case 0x0E:
    +                $name = 'tNE';
    +                $size = 1;
    +                $data = '<>';
    +
    +                break;
    +            case 0x0F:
    +                $name = 'tIsect';
    +                $size = 1;
    +                $data = ' ';
    +
    +                break;
    +            case 0x10:
    +                $name = 'tList';
    +                $size = 1;
    +                $data = ',';
    +
    +                break;
    +            case 0x11:
    +                $name = 'tRange';
    +                $size = 1;
    +                $data = ':';
    +
    +                break;
    +            case 0x12:
    +                $name = 'tUplus';
    +                $size = 1;
    +                $data = '+';
    +
    +                break;
    +            case 0x13:
    +                $name = 'tUminus';
    +                $size = 1;
    +                $data = '-';
    +
    +                break;
    +            case 0x14:
    +                $name = 'tPercent';
    +                $size = 1;
    +                $data = '%';
    +
    +                break;
    +            case 0x15:    //    parenthesis
    +                $name = 'tParen';
    +                $size = 1;
    +                $data = null;
    +
    +                break;
    +            case 0x16:    //    missing argument
    +                $name = 'tMissArg';
    +                $size = 1;
    +                $data = '';
    +
    +                break;
    +            case 0x17:    //    string
    +                $name = 'tStr';
    +                // offset: 1; size: var; Unicode string, 8-bit string length
    +                $string = self::readUnicodeStringShort(substr($formulaData, 1));
    +                $size = 1 + $string['size'];
    +                $data = self::UTF8toExcelDoubleQuoted($string['value']);
    +
    +                break;
    +            case 0x19:    //    Special attribute
    +                // offset: 1; size: 1; attribute type flags:
    +                switch (ord($formulaData[1])) {
    +                    case 0x01:
    +                        $name = 'tAttrVolatile';
    +                        $size = 4;
    +                        $data = null;
    +
    +                        break;
    +                    case 0x02:
    +                        $name = 'tAttrIf';
    +                        $size = 4;
    +                        $data = null;
    +
    +                        break;
    +                    case 0x04:
    +                        $name = 'tAttrChoose';
    +                        // offset: 2; size: 2; number of choices in the CHOOSE function ($nc, number of parameters decreased by 1)
    +                        $nc = self::getUInt2d($formulaData, 2);
    +                        // offset: 4; size: 2 * $nc
    +                        // offset: 4 + 2 * $nc; size: 2
    +                        $size = 2 * $nc + 6;
    +                        $data = null;
    +
    +                        break;
    +                    case 0x08:
    +                        $name = 'tAttrSkip';
    +                        $size = 4;
    +                        $data = null;
    +
    +                        break;
    +                    case 0x10:
    +                        $name = 'tAttrSum';
    +                        $size = 4;
    +                        $data = null;
    +
    +                        break;
    +                    case 0x40:
    +                    case 0x41:
    +                        $name = 'tAttrSpace';
    +                        $size = 4;
    +                        // offset: 2; size: 2; space type and position
    +                        switch (ord($formulaData[2])) {
    +                            case 0x00:
    +                                $spacetype = 'type0';
    +
    +                                break;
    +                            case 0x01:
    +                                $spacetype = 'type1';
    +
    +                                break;
    +                            case 0x02:
    +                                $spacetype = 'type2';
    +
    +                                break;
    +                            case 0x03:
    +                                $spacetype = 'type3';
    +
    +                                break;
    +                            case 0x04:
    +                                $spacetype = 'type4';
    +
    +                                break;
    +                            case 0x05:
    +                                $spacetype = 'type5';
    +
    +                                break;
    +                            default:
    +                                throw new Exception('Unrecognized space type in tAttrSpace token');
    +
    +                                break;
    +                        }
    +                        // offset: 3; size: 1; number of inserted spaces/carriage returns
    +                        $spacecount = ord($formulaData[3]);
    +
    +                        $data = ['spacetype' => $spacetype, 'spacecount' => $spacecount];
    +
    +                        break;
    +                    default:
    +                        throw new Exception('Unrecognized attribute flag in tAttr token');
    +
    +                        break;
    +                }
    +
    +                break;
    +            case 0x1C:    //    error code
    +                // offset: 1; size: 1; error code
    +                $name = 'tErr';
    +                $size = 2;
    +                $data = Xls\ErrorCode::lookup(ord($formulaData[1]));
    +
    +                break;
    +            case 0x1D:    //    boolean
    +                // offset: 1; size: 1; 0 = false, 1 = true;
    +                $name = 'tBool';
    +                $size = 2;
    +                $data = ord($formulaData[1]) ? 'TRUE' : 'FALSE';
    +
    +                break;
    +            case 0x1E:    //    integer
    +                // offset: 1; size: 2; unsigned 16-bit integer
    +                $name = 'tInt';
    +                $size = 3;
    +                $data = self::getUInt2d($formulaData, 1);
    +
    +                break;
    +            case 0x1F:    //    number
    +                // offset: 1; size: 8;
    +                $name = 'tNum';
    +                $size = 9;
    +                $data = self::extractNumber(substr($formulaData, 1));
    +                $data = str_replace(',', '.', (string) $data); // in case non-English locale
    +                break;
    +            case 0x20:    //    array constant
    +            case 0x40:
    +            case 0x60:
    +                // offset: 1; size: 7; not used
    +                $name = 'tArray';
    +                $size = 8;
    +                $data = null;
    +
    +                break;
    +            case 0x21:    //    function with fixed number of arguments
    +            case 0x41:
    +            case 0x61:
    +                $name = 'tFunc';
    +                $size = 3;
    +                // offset: 1; size: 2; index to built-in sheet function
    +                switch (self::getUInt2d($formulaData, 1)) {
    +                    case 2:
    +                        $function = 'ISNA';
    +                        $args = 1;
    +
    +                        break;
    +                    case 3:
    +                        $function = 'ISERROR';
    +                        $args = 1;
    +
    +                        break;
    +                    case 10:
    +                        $function = 'NA';
    +                        $args = 0;
    +
    +                        break;
    +                    case 15:
    +                        $function = 'SIN';
    +                        $args = 1;
    +
    +                        break;
    +                    case 16:
    +                        $function = 'COS';
    +                        $args = 1;
    +
    +                        break;
    +                    case 17:
    +                        $function = 'TAN';
    +                        $args = 1;
    +
    +                        break;
    +                    case 18:
    +                        $function = 'ATAN';
    +                        $args = 1;
    +
    +                        break;
    +                    case 19:
    +                        $function = 'PI';
    +                        $args = 0;
    +
    +                        break;
    +                    case 20:
    +                        $function = 'SQRT';
    +                        $args = 1;
    +
    +                        break;
    +                    case 21:
    +                        $function = 'EXP';
    +                        $args = 1;
    +
    +                        break;
    +                    case 22:
    +                        $function = 'LN';
    +                        $args = 1;
    +
    +                        break;
    +                    case 23:
    +                        $function = 'LOG10';
    +                        $args = 1;
    +
    +                        break;
    +                    case 24:
    +                        $function = 'ABS';
    +                        $args = 1;
    +
    +                        break;
    +                    case 25:
    +                        $function = 'INT';
    +                        $args = 1;
    +
    +                        break;
    +                    case 26:
    +                        $function = 'SIGN';
    +                        $args = 1;
    +
    +                        break;
    +                    case 27:
    +                        $function = 'ROUND';
    +                        $args = 2;
    +
    +                        break;
    +                    case 30:
    +                        $function = 'REPT';
    +                        $args = 2;
    +
    +                        break;
    +                    case 31:
    +                        $function = 'MID';
    +                        $args = 3;
    +
    +                        break;
    +                    case 32:
    +                        $function = 'LEN';
    +                        $args = 1;
    +
    +                        break;
    +                    case 33:
    +                        $function = 'VALUE';
    +                        $args = 1;
    +
    +                        break;
    +                    case 34:
    +                        $function = 'TRUE';
    +                        $args = 0;
    +
    +                        break;
    +                    case 35:
    +                        $function = 'FALSE';
    +                        $args = 0;
    +
    +                        break;
    +                    case 38:
    +                        $function = 'NOT';
    +                        $args = 1;
    +
    +                        break;
    +                    case 39:
    +                        $function = 'MOD';
    +                        $args = 2;
    +
    +                        break;
    +                    case 40:
    +                        $function = 'DCOUNT';
    +                        $args = 3;
    +
    +                        break;
    +                    case 41:
    +                        $function = 'DSUM';
    +                        $args = 3;
    +
    +                        break;
    +                    case 42:
    +                        $function = 'DAVERAGE';
    +                        $args = 3;
    +
    +                        break;
    +                    case 43:
    +                        $function = 'DMIN';
    +                        $args = 3;
    +
    +                        break;
    +                    case 44:
    +                        $function = 'DMAX';
    +                        $args = 3;
    +
    +                        break;
    +                    case 45:
    +                        $function = 'DSTDEV';
    +                        $args = 3;
    +
    +                        break;
    +                    case 48:
    +                        $function = 'TEXT';
    +                        $args = 2;
    +
    +                        break;
    +                    case 61:
    +                        $function = 'MIRR';
    +                        $args = 3;
    +
    +                        break;
    +                    case 63:
    +                        $function = 'RAND';
    +                        $args = 0;
    +
    +                        break;
    +                    case 65:
    +                        $function = 'DATE';
    +                        $args = 3;
    +
    +                        break;
    +                    case 66:
    +                        $function = 'TIME';
    +                        $args = 3;
    +
    +                        break;
    +                    case 67:
    +                        $function = 'DAY';
    +                        $args = 1;
    +
    +                        break;
    +                    case 68:
    +                        $function = 'MONTH';
    +                        $args = 1;
    +
    +                        break;
    +                    case 69:
    +                        $function = 'YEAR';
    +                        $args = 1;
    +
    +                        break;
    +                    case 71:
    +                        $function = 'HOUR';
    +                        $args = 1;
    +
    +                        break;
    +                    case 72:
    +                        $function = 'MINUTE';
    +                        $args = 1;
    +
    +                        break;
    +                    case 73:
    +                        $function = 'SECOND';
    +                        $args = 1;
    +
    +                        break;
    +                    case 74:
    +                        $function = 'NOW';
    +                        $args = 0;
    +
    +                        break;
    +                    case 75:
    +                        $function = 'AREAS';
    +                        $args = 1;
    +
    +                        break;
    +                    case 76:
    +                        $function = 'ROWS';
    +                        $args = 1;
    +
    +                        break;
    +                    case 77:
    +                        $function = 'COLUMNS';
    +                        $args = 1;
    +
    +                        break;
    +                    case 83:
    +                        $function = 'TRANSPOSE';
    +                        $args = 1;
    +
    +                        break;
    +                    case 86:
    +                        $function = 'TYPE';
    +                        $args = 1;
    +
    +                        break;
    +                    case 97:
    +                        $function = 'ATAN2';
    +                        $args = 2;
    +
    +                        break;
    +                    case 98:
    +                        $function = 'ASIN';
    +                        $args = 1;
    +
    +                        break;
    +                    case 99:
    +                        $function = 'ACOS';
    +                        $args = 1;
    +
    +                        break;
    +                    case 105:
    +                        $function = 'ISREF';
    +                        $args = 1;
    +
    +                        break;
    +                    case 111:
    +                        $function = 'CHAR';
    +                        $args = 1;
    +
    +                        break;
    +                    case 112:
    +                        $function = 'LOWER';
    +                        $args = 1;
    +
    +                        break;
    +                    case 113:
    +                        $function = 'UPPER';
    +                        $args = 1;
    +
    +                        break;
    +                    case 114:
    +                        $function = 'PROPER';
    +                        $args = 1;
    +
    +                        break;
    +                    case 117:
    +                        $function = 'EXACT';
    +                        $args = 2;
    +
    +                        break;
    +                    case 118:
    +                        $function = 'TRIM';
    +                        $args = 1;
    +
    +                        break;
    +                    case 119:
    +                        $function = 'REPLACE';
    +                        $args = 4;
    +
    +                        break;
    +                    case 121:
    +                        $function = 'CODE';
    +                        $args = 1;
    +
    +                        break;
    +                    case 126:
    +                        $function = 'ISERR';
    +                        $args = 1;
    +
    +                        break;
    +                    case 127:
    +                        $function = 'ISTEXT';
    +                        $args = 1;
    +
    +                        break;
    +                    case 128:
    +                        $function = 'ISNUMBER';
    +                        $args = 1;
    +
    +                        break;
    +                    case 129:
    +                        $function = 'ISBLANK';
    +                        $args = 1;
    +
    +                        break;
    +                    case 130:
    +                        $function = 'T';
    +                        $args = 1;
    +
    +                        break;
    +                    case 131:
    +                        $function = 'N';
    +                        $args = 1;
    +
    +                        break;
    +                    case 140:
    +                        $function = 'DATEVALUE';
    +                        $args = 1;
    +
    +                        break;
    +                    case 141:
    +                        $function = 'TIMEVALUE';
    +                        $args = 1;
    +
    +                        break;
    +                    case 142:
    +                        $function = 'SLN';
    +                        $args = 3;
    +
    +                        break;
    +                    case 143:
    +                        $function = 'SYD';
    +                        $args = 4;
    +
    +                        break;
    +                    case 162:
    +                        $function = 'CLEAN';
    +                        $args = 1;
    +
    +                        break;
    +                    case 163:
    +                        $function = 'MDETERM';
    +                        $args = 1;
    +
    +                        break;
    +                    case 164:
    +                        $function = 'MINVERSE';
    +                        $args = 1;
    +
    +                        break;
    +                    case 165:
    +                        $function = 'MMULT';
    +                        $args = 2;
    +
    +                        break;
    +                    case 184:
    +                        $function = 'FACT';
    +                        $args = 1;
    +
    +                        break;
    +                    case 189:
    +                        $function = 'DPRODUCT';
    +                        $args = 3;
    +
    +                        break;
    +                    case 190:
    +                        $function = 'ISNONTEXT';
    +                        $args = 1;
    +
    +                        break;
    +                    case 195:
    +                        $function = 'DSTDEVP';
    +                        $args = 3;
    +
    +                        break;
    +                    case 196:
    +                        $function = 'DVARP';
    +                        $args = 3;
    +
    +                        break;
    +                    case 198:
    +                        $function = 'ISLOGICAL';
    +                        $args = 1;
    +
    +                        break;
    +                    case 199:
    +                        $function = 'DCOUNTA';
    +                        $args = 3;
    +
    +                        break;
    +                    case 207:
    +                        $function = 'REPLACEB';
    +                        $args = 4;
    +
    +                        break;
    +                    case 210:
    +                        $function = 'MIDB';
    +                        $args = 3;
    +
    +                        break;
    +                    case 211:
    +                        $function = 'LENB';
    +                        $args = 1;
    +
    +                        break;
    +                    case 212:
    +                        $function = 'ROUNDUP';
    +                        $args = 2;
    +
    +                        break;
    +                    case 213:
    +                        $function = 'ROUNDDOWN';
    +                        $args = 2;
    +
    +                        break;
    +                    case 214:
    +                        $function = 'ASC';
    +                        $args = 1;
    +
    +                        break;
    +                    case 215:
    +                        $function = 'DBCS';
    +                        $args = 1;
    +
    +                        break;
    +                    case 221:
    +                        $function = 'TODAY';
    +                        $args = 0;
    +
    +                        break;
    +                    case 229:
    +                        $function = 'SINH';
    +                        $args = 1;
    +
    +                        break;
    +                    case 230:
    +                        $function = 'COSH';
    +                        $args = 1;
    +
    +                        break;
    +                    case 231:
    +                        $function = 'TANH';
    +                        $args = 1;
    +
    +                        break;
    +                    case 232:
    +                        $function = 'ASINH';
    +                        $args = 1;
    +
    +                        break;
    +                    case 233:
    +                        $function = 'ACOSH';
    +                        $args = 1;
    +
    +                        break;
    +                    case 234:
    +                        $function = 'ATANH';
    +                        $args = 1;
    +
    +                        break;
    +                    case 235:
    +                        $function = 'DGET';
    +                        $args = 3;
    +
    +                        break;
    +                    case 244:
    +                        $function = 'INFO';
    +                        $args = 1;
    +
    +                        break;
    +                    case 252:
    +                        $function = 'FREQUENCY';
    +                        $args = 2;
    +
    +                        break;
    +                    case 261:
    +                        $function = 'ERROR.TYPE';
    +                        $args = 1;
    +
    +                        break;
    +                    case 271:
    +                        $function = 'GAMMALN';
    +                        $args = 1;
    +
    +                        break;
    +                    case 273:
    +                        $function = 'BINOMDIST';
    +                        $args = 4;
    +
    +                        break;
    +                    case 274:
    +                        $function = 'CHIDIST';
    +                        $args = 2;
    +
    +                        break;
    +                    case 275:
    +                        $function = 'CHIINV';
    +                        $args = 2;
    +
    +                        break;
    +                    case 276:
    +                        $function = 'COMBIN';
    +                        $args = 2;
    +
    +                        break;
    +                    case 277:
    +                        $function = 'CONFIDENCE';
    +                        $args = 3;
    +
    +                        break;
    +                    case 278:
    +                        $function = 'CRITBINOM';
    +                        $args = 3;
    +
    +                        break;
    +                    case 279:
    +                        $function = 'EVEN';
    +                        $args = 1;
    +
    +                        break;
    +                    case 280:
    +                        $function = 'EXPONDIST';
    +                        $args = 3;
    +
    +                        break;
    +                    case 281:
    +                        $function = 'FDIST';
    +                        $args = 3;
    +
    +                        break;
    +                    case 282:
    +                        $function = 'FINV';
    +                        $args = 3;
    +
    +                        break;
    +                    case 283:
    +                        $function = 'FISHER';
    +                        $args = 1;
    +
    +                        break;
    +                    case 284:
    +                        $function = 'FISHERINV';
    +                        $args = 1;
    +
    +                        break;
    +                    case 285:
    +                        $function = 'FLOOR';
    +                        $args = 2;
    +
    +                        break;
    +                    case 286:
    +                        $function = 'GAMMADIST';
    +                        $args = 4;
    +
    +                        break;
    +                    case 287:
    +                        $function = 'GAMMAINV';
    +                        $args = 3;
    +
    +                        break;
    +                    case 288:
    +                        $function = 'CEILING';
    +                        $args = 2;
    +
    +                        break;
    +                    case 289:
    +                        $function = 'HYPGEOMDIST';
    +                        $args = 4;
    +
    +                        break;
    +                    case 290:
    +                        $function = 'LOGNORMDIST';
    +                        $args = 3;
    +
    +                        break;
    +                    case 291:
    +                        $function = 'LOGINV';
    +                        $args = 3;
    +
    +                        break;
    +                    case 292:
    +                        $function = 'NEGBINOMDIST';
    +                        $args = 3;
    +
    +                        break;
    +                    case 293:
    +                        $function = 'NORMDIST';
    +                        $args = 4;
    +
    +                        break;
    +                    case 294:
    +                        $function = 'NORMSDIST';
    +                        $args = 1;
    +
    +                        break;
    +                    case 295:
    +                        $function = 'NORMINV';
    +                        $args = 3;
    +
    +                        break;
    +                    case 296:
    +                        $function = 'NORMSINV';
    +                        $args = 1;
    +
    +                        break;
    +                    case 297:
    +                        $function = 'STANDARDIZE';
    +                        $args = 3;
    +
    +                        break;
    +                    case 298:
    +                        $function = 'ODD';
    +                        $args = 1;
    +
    +                        break;
    +                    case 299:
    +                        $function = 'PERMUT';
    +                        $args = 2;
    +
    +                        break;
    +                    case 300:
    +                        $function = 'POISSON';
    +                        $args = 3;
    +
    +                        break;
    +                    case 301:
    +                        $function = 'TDIST';
    +                        $args = 3;
    +
    +                        break;
    +                    case 302:
    +                        $function = 'WEIBULL';
    +                        $args = 4;
    +
    +                        break;
    +                    case 303:
    +                        $function = 'SUMXMY2';
    +                        $args = 2;
    +
    +                        break;
    +                    case 304:
    +                        $function = 'SUMX2MY2';
    +                        $args = 2;
    +
    +                        break;
    +                    case 305:
    +                        $function = 'SUMX2PY2';
    +                        $args = 2;
    +
    +                        break;
    +                    case 306:
    +                        $function = 'CHITEST';
    +                        $args = 2;
    +
    +                        break;
    +                    case 307:
    +                        $function = 'CORREL';
    +                        $args = 2;
    +
    +                        break;
    +                    case 308:
    +                        $function = 'COVAR';
    +                        $args = 2;
    +
    +                        break;
    +                    case 309:
    +                        $function = 'FORECAST';
    +                        $args = 3;
    +
    +                        break;
    +                    case 310:
    +                        $function = 'FTEST';
    +                        $args = 2;
    +
    +                        break;
    +                    case 311:
    +                        $function = 'INTERCEPT';
    +                        $args = 2;
    +
    +                        break;
    +                    case 312:
    +                        $function = 'PEARSON';
    +                        $args = 2;
    +
    +                        break;
    +                    case 313:
    +                        $function = 'RSQ';
    +                        $args = 2;
    +
    +                        break;
    +                    case 314:
    +                        $function = 'STEYX';
    +                        $args = 2;
    +
    +                        break;
    +                    case 315:
    +                        $function = 'SLOPE';
    +                        $args = 2;
    +
    +                        break;
    +                    case 316:
    +                        $function = 'TTEST';
    +                        $args = 4;
    +
    +                        break;
    +                    case 325:
    +                        $function = 'LARGE';
    +                        $args = 2;
    +
    +                        break;
    +                    case 326:
    +                        $function = 'SMALL';
    +                        $args = 2;
    +
    +                        break;
    +                    case 327:
    +                        $function = 'QUARTILE';
    +                        $args = 2;
    +
    +                        break;
    +                    case 328:
    +                        $function = 'PERCENTILE';
    +                        $args = 2;
    +
    +                        break;
    +                    case 331:
    +                        $function = 'TRIMMEAN';
    +                        $args = 2;
    +
    +                        break;
    +                    case 332:
    +                        $function = 'TINV';
    +                        $args = 2;
    +
    +                        break;
    +                    case 337:
    +                        $function = 'POWER';
    +                        $args = 2;
    +
    +                        break;
    +                    case 342:
    +                        $function = 'RADIANS';
    +                        $args = 1;
    +
    +                        break;
    +                    case 343:
    +                        $function = 'DEGREES';
    +                        $args = 1;
    +
    +                        break;
    +                    case 346:
    +                        $function = 'COUNTIF';
    +                        $args = 2;
    +
    +                        break;
    +                    case 347:
    +                        $function = 'COUNTBLANK';
    +                        $args = 1;
    +
    +                        break;
    +                    case 350:
    +                        $function = 'ISPMT';
    +                        $args = 4;
    +
    +                        break;
    +                    case 351:
    +                        $function = 'DATEDIF';
    +                        $args = 3;
    +
    +                        break;
    +                    case 352:
    +                        $function = 'DATESTRING';
    +                        $args = 1;
    +
    +                        break;
    +                    case 353:
    +                        $function = 'NUMBERSTRING';
    +                        $args = 2;
    +
    +                        break;
    +                    case 360:
    +                        $function = 'PHONETIC';
    +                        $args = 1;
    +
    +                        break;
    +                    case 368:
    +                        $function = 'BAHTTEXT';
    +                        $args = 1;
    +
    +                        break;
    +                    default:
    +                        throw new Exception('Unrecognized function in formula');
    +
    +                        break;
    +                }
    +                $data = ['function' => $function, 'args' => $args];
    +
    +                break;
    +            case 0x22:    //    function with variable number of arguments
    +            case 0x42:
    +            case 0x62:
    +                $name = 'tFuncV';
    +                $size = 4;
    +                // offset: 1; size: 1; number of arguments
    +                $args = ord($formulaData[1]);
    +                // offset: 2: size: 2; index to built-in sheet function
    +                $index = self::getUInt2d($formulaData, 2);
    +                switch ($index) {
    +                    case 0:
    +                        $function = 'COUNT';
    +
    +                        break;
    +                    case 1:
    +                        $function = 'IF';
    +
    +                        break;
    +                    case 4:
    +                        $function = 'SUM';
    +
    +                        break;
    +                    case 5:
    +                        $function = 'AVERAGE';
    +
    +                        break;
    +                    case 6:
    +                        $function = 'MIN';
    +
    +                        break;
    +                    case 7:
    +                        $function = 'MAX';
    +
    +                        break;
    +                    case 8:
    +                        $function = 'ROW';
    +
    +                        break;
    +                    case 9:
    +                        $function = 'COLUMN';
    +
    +                        break;
    +                    case 11:
    +                        $function = 'NPV';
    +
    +                        break;
    +                    case 12:
    +                        $function = 'STDEV';
    +
    +                        break;
    +                    case 13:
    +                        $function = 'DOLLAR';
    +
    +                        break;
    +                    case 14:
    +                        $function = 'FIXED';
    +
    +                        break;
    +                    case 28:
    +                        $function = 'LOOKUP';
    +
    +                        break;
    +                    case 29:
    +                        $function = 'INDEX';
    +
    +                        break;
    +                    case 36:
    +                        $function = 'AND';
    +
    +                        break;
    +                    case 37:
    +                        $function = 'OR';
    +
    +                        break;
    +                    case 46:
    +                        $function = 'VAR';
    +
    +                        break;
    +                    case 49:
    +                        $function = 'LINEST';
    +
    +                        break;
    +                    case 50:
    +                        $function = 'TREND';
    +
    +                        break;
    +                    case 51:
    +                        $function = 'LOGEST';
    +
    +                        break;
    +                    case 52:
    +                        $function = 'GROWTH';
    +
    +                        break;
    +                    case 56:
    +                        $function = 'PV';
    +
    +                        break;
    +                    case 57:
    +                        $function = 'FV';
    +
    +                        break;
    +                    case 58:
    +                        $function = 'NPER';
    +
    +                        break;
    +                    case 59:
    +                        $function = 'PMT';
    +
    +                        break;
    +                    case 60:
    +                        $function = 'RATE';
    +
    +                        break;
    +                    case 62:
    +                        $function = 'IRR';
    +
    +                        break;
    +                    case 64:
    +                        $function = 'MATCH';
    +
    +                        break;
    +                    case 70:
    +                        $function = 'WEEKDAY';
    +
    +                        break;
    +                    case 78:
    +                        $function = 'OFFSET';
    +
    +                        break;
    +                    case 82:
    +                        $function = 'SEARCH';
    +
    +                        break;
    +                    case 100:
    +                        $function = 'CHOOSE';
    +
    +                        break;
    +                    case 101:
    +                        $function = 'HLOOKUP';
    +
    +                        break;
    +                    case 102:
    +                        $function = 'VLOOKUP';
    +
    +                        break;
    +                    case 109:
    +                        $function = 'LOG';
    +
    +                        break;
    +                    case 115:
    +                        $function = 'LEFT';
    +
    +                        break;
    +                    case 116:
    +                        $function = 'RIGHT';
    +
    +                        break;
    +                    case 120:
    +                        $function = 'SUBSTITUTE';
    +
    +                        break;
    +                    case 124:
    +                        $function = 'FIND';
    +
    +                        break;
    +                    case 125:
    +                        $function = 'CELL';
    +
    +                        break;
    +                    case 144:
    +                        $function = 'DDB';
    +
    +                        break;
    +                    case 148:
    +                        $function = 'INDIRECT';
    +
    +                        break;
    +                    case 167:
    +                        $function = 'IPMT';
    +
    +                        break;
    +                    case 168:
    +                        $function = 'PPMT';
    +
    +                        break;
    +                    case 169:
    +                        $function = 'COUNTA';
    +
    +                        break;
    +                    case 183:
    +                        $function = 'PRODUCT';
    +
    +                        break;
    +                    case 193:
    +                        $function = 'STDEVP';
    +
    +                        break;
    +                    case 194:
    +                        $function = 'VARP';
    +
    +                        break;
    +                    case 197:
    +                        $function = 'TRUNC';
    +
    +                        break;
    +                    case 204:
    +                        $function = 'USDOLLAR';
    +
    +                        break;
    +                    case 205:
    +                        $function = 'FINDB';
    +
    +                        break;
    +                    case 206:
    +                        $function = 'SEARCHB';
    +
    +                        break;
    +                    case 208:
    +                        $function = 'LEFTB';
    +
    +                        break;
    +                    case 209:
    +                        $function = 'RIGHTB';
    +
    +                        break;
    +                    case 216:
    +                        $function = 'RANK';
    +
    +                        break;
    +                    case 219:
    +                        $function = 'ADDRESS';
    +
    +                        break;
    +                    case 220:
    +                        $function = 'DAYS360';
    +
    +                        break;
    +                    case 222:
    +                        $function = 'VDB';
    +
    +                        break;
    +                    case 227:
    +                        $function = 'MEDIAN';
    +
    +                        break;
    +                    case 228:
    +                        $function = 'SUMPRODUCT';
    +
    +                        break;
    +                    case 247:
    +                        $function = 'DB';
    +
    +                        break;
    +                    case 255:
    +                        $function = '';
    +
    +                        break;
    +                    case 269:
    +                        $function = 'AVEDEV';
    +
    +                        break;
    +                    case 270:
    +                        $function = 'BETADIST';
    +
    +                        break;
    +                    case 272:
    +                        $function = 'BETAINV';
    +
    +                        break;
    +                    case 317:
    +                        $function = 'PROB';
    +
    +                        break;
    +                    case 318:
    +                        $function = 'DEVSQ';
    +
    +                        break;
    +                    case 319:
    +                        $function = 'GEOMEAN';
    +
    +                        break;
    +                    case 320:
    +                        $function = 'HARMEAN';
    +
    +                        break;
    +                    case 321:
    +                        $function = 'SUMSQ';
    +
    +                        break;
    +                    case 322:
    +                        $function = 'KURT';
    +
    +                        break;
    +                    case 323:
    +                        $function = 'SKEW';
    +
    +                        break;
    +                    case 324:
    +                        $function = 'ZTEST';
    +
    +                        break;
    +                    case 329:
    +                        $function = 'PERCENTRANK';
    +
    +                        break;
    +                    case 330:
    +                        $function = 'MODE';
    +
    +                        break;
    +                    case 336:
    +                        $function = 'CONCATENATE';
    +
    +                        break;
    +                    case 344:
    +                        $function = 'SUBTOTAL';
    +
    +                        break;
    +                    case 345:
    +                        $function = 'SUMIF';
    +
    +                        break;
    +                    case 354:
    +                        $function = 'ROMAN';
    +
    +                        break;
    +                    case 358:
    +                        $function = 'GETPIVOTDATA';
    +
    +                        break;
    +                    case 359:
    +                        $function = 'HYPERLINK';
    +
    +                        break;
    +                    case 361:
    +                        $function = 'AVERAGEA';
    +
    +                        break;
    +                    case 362:
    +                        $function = 'MAXA';
    +
    +                        break;
    +                    case 363:
    +                        $function = 'MINA';
    +
    +                        break;
    +                    case 364:
    +                        $function = 'STDEVPA';
    +
    +                        break;
    +                    case 365:
    +                        $function = 'VARPA';
    +
    +                        break;
    +                    case 366:
    +                        $function = 'STDEVA';
    +
    +                        break;
    +                    case 367:
    +                        $function = 'VARA';
    +
    +                        break;
    +                    default:
    +                        throw new Exception('Unrecognized function in formula');
    +
    +                        break;
    +                }
    +                $data = ['function' => $function, 'args' => $args];
    +
    +                break;
    +            case 0x23:    //    index to defined name
    +            case 0x43:
    +            case 0x63:
    +                $name = 'tName';
    +                $size = 5;
    +                // offset: 1; size: 2; one-based index to definedname record
    +                $definedNameIndex = self::getUInt2d($formulaData, 1) - 1;
    +                // offset: 2; size: 2; not used
    +                $data = $this->definedname[$definedNameIndex]['name'];
    +
    +                break;
    +            case 0x24:    //    single cell reference e.g. A5
    +            case 0x44:
    +            case 0x64:
    +                $name = 'tRef';
    +                $size = 5;
    +                $data = $this->readBIFF8CellAddress(substr($formulaData, 1, 4));
    +
    +                break;
    +            case 0x25:    //    cell range reference to cells in the same sheet (2d)
    +            case 0x45:
    +            case 0x65:
    +                $name = 'tArea';
    +                $size = 9;
    +                $data = $this->readBIFF8CellRangeAddress(substr($formulaData, 1, 8));
    +
    +                break;
    +            case 0x26:    //    Constant reference sub-expression
    +            case 0x46:
    +            case 0x66:
    +                $name = 'tMemArea';
    +                // offset: 1; size: 4; not used
    +                // offset: 5; size: 2; size of the following subexpression
    +                $subSize = self::getUInt2d($formulaData, 5);
    +                $size = 7 + $subSize;
    +                $data = $this->getFormulaFromData(substr($formulaData, 7, $subSize));
    +
    +                break;
    +            case 0x27:    //    Deleted constant reference sub-expression
    +            case 0x47:
    +            case 0x67:
    +                $name = 'tMemErr';
    +                // offset: 1; size: 4; not used
    +                // offset: 5; size: 2; size of the following subexpression
    +                $subSize = self::getUInt2d($formulaData, 5);
    +                $size = 7 + $subSize;
    +                $data = $this->getFormulaFromData(substr($formulaData, 7, $subSize));
    +
    +                break;
    +            case 0x29:    //    Variable reference sub-expression
    +            case 0x49:
    +            case 0x69:
    +                $name = 'tMemFunc';
    +                // offset: 1; size: 2; size of the following sub-expression
    +                $subSize = self::getUInt2d($formulaData, 1);
    +                $size = 3 + $subSize;
    +                $data = $this->getFormulaFromData(substr($formulaData, 3, $subSize));
    +
    +                break;
    +            case 0x2C: // Relative 2d cell reference reference, used in shared formulas and some other places
    +            case 0x4C:
    +            case 0x6C:
    +                $name = 'tRefN';
    +                $size = 5;
    +                $data = $this->readBIFF8CellAddressB(substr($formulaData, 1, 4), $baseCell);
    +
    +                break;
    +            case 0x2D:    //    Relative 2d range reference
    +            case 0x4D:
    +            case 0x6D:
    +                $name = 'tAreaN';
    +                $size = 9;
    +                $data = $this->readBIFF8CellRangeAddressB(substr($formulaData, 1, 8), $baseCell);
    +
    +                break;
    +            case 0x39:    //    External name
    +            case 0x59:
    +            case 0x79:
    +                $name = 'tNameX';
    +                $size = 7;
    +                // offset: 1; size: 2; index to REF entry in EXTERNSHEET record
    +                // offset: 3; size: 2; one-based index to DEFINEDNAME or EXTERNNAME record
    +                $index = self::getUInt2d($formulaData, 3);
    +                // assume index is to EXTERNNAME record
    +                $data = $this->externalNames[$index - 1]['name'];
    +                // offset: 5; size: 2; not used
    +                break;
    +            case 0x3A:    //    3d reference to cell
    +            case 0x5A:
    +            case 0x7A:
    +                $name = 'tRef3d';
    +                $size = 7;
    +
    +                try {
    +                    // offset: 1; size: 2; index to REF entry
    +                    $sheetRange = $this->readSheetRangeByRefIndex(self::getUInt2d($formulaData, 1));
    +                    // offset: 3; size: 4; cell address
    +                    $cellAddress = $this->readBIFF8CellAddress(substr($formulaData, 3, 4));
    +
    +                    $data = "$sheetRange!$cellAddress";
    +                } catch (PhpSpreadsheetException $e) {
    +                    // deleted sheet reference
    +                    $data = '#REF!';
    +                }
    +
    +                break;
    +            case 0x3B:    //    3d reference to cell range
    +            case 0x5B:
    +            case 0x7B:
    +                $name = 'tArea3d';
    +                $size = 11;
    +
    +                try {
    +                    // offset: 1; size: 2; index to REF entry
    +                    $sheetRange = $this->readSheetRangeByRefIndex(self::getUInt2d($formulaData, 1));
    +                    // offset: 3; size: 8; cell address
    +                    $cellRangeAddress = $this->readBIFF8CellRangeAddress(substr($formulaData, 3, 8));
    +
    +                    $data = "$sheetRange!$cellRangeAddress";
    +                } catch (PhpSpreadsheetException $e) {
    +                    // deleted sheet reference
    +                    $data = '#REF!';
    +                }
    +
    +                break;
    +            // Unknown cases    // don't know how to deal with
    +            default:
    +                throw new Exception('Unrecognized token ' . sprintf('%02X', $id) . ' in formula');
    +
    +                break;
    +        }
    +
    +        return [
    +            'id' => $id,
    +            'name' => $name,
    +            'size' => $size,
    +            'data' => $data,
    +        ];
    +    }
    +
    +    /**
    +     * Reads a cell address in BIFF8 e.g. 'A2' or '$A$2'
    +     * section 3.3.4.
    +     *
    +     * @param string $cellAddressStructure
    +     *
    +     * @return string
    +     */
    +    private function readBIFF8CellAddress($cellAddressStructure)
    +    {
    +        // offset: 0; size: 2; index to row (0... 65535) (or offset (-32768... 32767))
    +        $row = self::getUInt2d($cellAddressStructure, 0) + 1;
    +
    +        // offset: 2; size: 2; index to column or column offset + relative flags
    +        // bit: 7-0; mask 0x00FF; column index
    +        $column = Coordinate::stringFromColumnIndex((0x00FF & self::getUInt2d($cellAddressStructure, 2)) + 1);
    +
    +        // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index)
    +        if (!(0x4000 & self::getUInt2d($cellAddressStructure, 2))) {
    +            $column = '$' . $column;
    +        }
    +        // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index)
    +        if (!(0x8000 & self::getUInt2d($cellAddressStructure, 2))) {
    +            $row = '$' . $row;
    +        }
    +
    +        return $column . $row;
    +    }
    +
    +    /**
    +     * Reads a cell address in BIFF8 for shared formulas. Uses positive and negative values for row and column
    +     * to indicate offsets from a base cell
    +     * section 3.3.4.
    +     *
    +     * @param string $cellAddressStructure
    +     * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas
    +     *
    +     * @return string
    +     */
    +    private function readBIFF8CellAddressB($cellAddressStructure, $baseCell = 'A1')
    +    {
    +        list($baseCol, $baseRow) = Coordinate::coordinateFromString($baseCell);
    +        $baseCol = Coordinate::columnIndexFromString($baseCol) - 1;
    +
    +        // offset: 0; size: 2; index to row (0... 65535) (or offset (-32768... 32767))
    +        $rowIndex = self::getUInt2d($cellAddressStructure, 0);
    +        $row = self::getUInt2d($cellAddressStructure, 0) + 1;
    +
    +        // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index)
    +        if (!(0x4000 & self::getUInt2d($cellAddressStructure, 2))) {
    +            // offset: 2; size: 2; index to column or column offset + relative flags
    +            // bit: 7-0; mask 0x00FF; column index
    +            $colIndex = 0x00FF & self::getUInt2d($cellAddressStructure, 2);
    +
    +            $column = Coordinate::stringFromColumnIndex($colIndex + 1);
    +            $column = '$' . $column;
    +        } else {
    +            // offset: 2; size: 2; index to column or column offset + relative flags
    +            // bit: 7-0; mask 0x00FF; column index
    +            $relativeColIndex = 0x00FF & self::getInt2d($cellAddressStructure, 2);
    +            $colIndex = $baseCol + $relativeColIndex;
    +            $colIndex = ($colIndex < 256) ? $colIndex : $colIndex - 256;
    +            $colIndex = ($colIndex >= 0) ? $colIndex : $colIndex + 256;
    +            $column = Coordinate::stringFromColumnIndex($colIndex + 1);
    +        }
    +
    +        // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index)
    +        if (!(0x8000 & self::getUInt2d($cellAddressStructure, 2))) {
    +            $row = '$' . $row;
    +        } else {
    +            $rowIndex = ($rowIndex <= 32767) ? $rowIndex : $rowIndex - 65536;
    +            $row = $baseRow + $rowIndex;
    +        }
    +
    +        return $column . $row;
    +    }
    +
    +    /**
    +     * Reads a cell range address in BIFF5 e.g. 'A2:B6' or 'A1'
    +     * always fixed range
    +     * section 2.5.14.
    +     *
    +     * @param string $subData
    +     *
    +     * @throws Exception
    +     *
    +     * @return string
    +     */
    +    private function readBIFF5CellRangeAddressFixed($subData)
    +    {
    +        // offset: 0; size: 2; index to first row
    +        $fr = self::getUInt2d($subData, 0) + 1;
    +
    +        // offset: 2; size: 2; index to last row
    +        $lr = self::getUInt2d($subData, 2) + 1;
    +
    +        // offset: 4; size: 1; index to first column
    +        $fc = ord($subData[4]);
    +
    +        // offset: 5; size: 1; index to last column
    +        $lc = ord($subData[5]);
    +
    +        // check values
    +        if ($fr > $lr || $fc > $lc) {
    +            throw new Exception('Not a cell range address');
    +        }
    +
    +        // column index to letter
    +        $fc = Coordinate::stringFromColumnIndex($fc + 1);
    +        $lc = Coordinate::stringFromColumnIndex($lc + 1);
    +
    +        if ($fr == $lr and $fc == $lc) {
    +            return "$fc$fr";
    +        }
    +
    +        return "$fc$fr:$lc$lr";
    +    }
    +
    +    /**
    +     * Reads a cell range address in BIFF8 e.g. 'A2:B6' or 'A1'
    +     * always fixed range
    +     * section 2.5.14.
    +     *
    +     * @param string $subData
    +     *
    +     * @throws Exception
    +     *
    +     * @return string
    +     */
    +    private function readBIFF8CellRangeAddressFixed($subData)
    +    {
    +        // offset: 0; size: 2; index to first row
    +        $fr = self::getUInt2d($subData, 0) + 1;
    +
    +        // offset: 2; size: 2; index to last row
    +        $lr = self::getUInt2d($subData, 2) + 1;
    +
    +        // offset: 4; size: 2; index to first column
    +        $fc = self::getUInt2d($subData, 4);
    +
    +        // offset: 6; size: 2; index to last column
    +        $lc = self::getUInt2d($subData, 6);
    +
    +        // check values
    +        if ($fr > $lr || $fc > $lc) {
    +            throw new Exception('Not a cell range address');
    +        }
    +
    +        // column index to letter
    +        $fc = Coordinate::stringFromColumnIndex($fc + 1);
    +        $lc = Coordinate::stringFromColumnIndex($lc + 1);
    +
    +        if ($fr == $lr and $fc == $lc) {
    +            return "$fc$fr";
    +        }
    +
    +        return "$fc$fr:$lc$lr";
    +    }
    +
    +    /**
    +     * Reads a cell range address in BIFF8 e.g. 'A2:B6' or '$A$2:$B$6'
    +     * there are flags indicating whether column/row index is relative
    +     * section 3.3.4.
    +     *
    +     * @param string $subData
    +     *
    +     * @return string
    +     */
    +    private function readBIFF8CellRangeAddress($subData)
    +    {
    +        // todo: if cell range is just a single cell, should this funciton
    +        // not just return e.g. 'A1' and not 'A1:A1' ?
    +
    +        // offset: 0; size: 2; index to first row (0... 65535) (or offset (-32768... 32767))
    +        $fr = self::getUInt2d($subData, 0) + 1;
    +
    +        // offset: 2; size: 2; index to last row (0... 65535) (or offset (-32768... 32767))
    +        $lr = self::getUInt2d($subData, 2) + 1;
    +
    +        // offset: 4; size: 2; index to first column or column offset + relative flags
    +
    +        // bit: 7-0; mask 0x00FF; column index
    +        $fc = Coordinate::stringFromColumnIndex((0x00FF & self::getUInt2d($subData, 4)) + 1);
    +
    +        // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index)
    +        if (!(0x4000 & self::getUInt2d($subData, 4))) {
    +            $fc = '$' . $fc;
    +        }
    +
    +        // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index)
    +        if (!(0x8000 & self::getUInt2d($subData, 4))) {
    +            $fr = '$' . $fr;
    +        }
    +
    +        // offset: 6; size: 2; index to last column or column offset + relative flags
    +
    +        // bit: 7-0; mask 0x00FF; column index
    +        $lc = Coordinate::stringFromColumnIndex((0x00FF & self::getUInt2d($subData, 6)) + 1);
    +
    +        // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index)
    +        if (!(0x4000 & self::getUInt2d($subData, 6))) {
    +            $lc = '$' . $lc;
    +        }
    +
    +        // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index)
    +        if (!(0x8000 & self::getUInt2d($subData, 6))) {
    +            $lr = '$' . $lr;
    +        }
    +
    +        return "$fc$fr:$lc$lr";
    +    }
    +
    +    /**
    +     * Reads a cell range address in BIFF8 for shared formulas. Uses positive and negative values for row and column
    +     * to indicate offsets from a base cell
    +     * section 3.3.4.
    +     *
    +     * @param string $subData
    +     * @param string $baseCell Base cell
    +     *
    +     * @return string Cell range address
    +     */
    +    private function readBIFF8CellRangeAddressB($subData, $baseCell = 'A1')
    +    {
    +        list($baseCol, $baseRow) = Coordinate::coordinateFromString($baseCell);
    +        $baseCol = Coordinate::columnIndexFromString($baseCol) - 1;
    +
    +        // TODO: if cell range is just a single cell, should this funciton
    +        // not just return e.g. 'A1' and not 'A1:A1' ?
    +
    +        // offset: 0; size: 2; first row
    +        $frIndex = self::getUInt2d($subData, 0); // adjust below
    +
    +        // offset: 2; size: 2; relative index to first row (0... 65535) should be treated as offset (-32768... 32767)
    +        $lrIndex = self::getUInt2d($subData, 2); // adjust below
    +
    +        // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index)
    +        if (!(0x4000 & self::getUInt2d($subData, 4))) {
    +            // absolute column index
    +            // offset: 4; size: 2; first column with relative/absolute flags
    +            // bit: 7-0; mask 0x00FF; column index
    +            $fcIndex = 0x00FF & self::getUInt2d($subData, 4);
    +            $fc = Coordinate::stringFromColumnIndex($fcIndex + 1);
    +            $fc = '$' . $fc;
    +        } else {
    +            // column offset
    +            // offset: 4; size: 2; first column with relative/absolute flags
    +            // bit: 7-0; mask 0x00FF; column index
    +            $relativeFcIndex = 0x00FF & self::getInt2d($subData, 4);
    +            $fcIndex = $baseCol + $relativeFcIndex;
    +            $fcIndex = ($fcIndex < 256) ? $fcIndex : $fcIndex - 256;
    +            $fcIndex = ($fcIndex >= 0) ? $fcIndex : $fcIndex + 256;
    +            $fc = Coordinate::stringFromColumnIndex($fcIndex + 1);
    +        }
    +
    +        // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index)
    +        if (!(0x8000 & self::getUInt2d($subData, 4))) {
    +            // absolute row index
    +            $fr = $frIndex + 1;
    +            $fr = '$' . $fr;
    +        } else {
    +            // row offset
    +            $frIndex = ($frIndex <= 32767) ? $frIndex : $frIndex - 65536;
    +            $fr = $baseRow + $frIndex;
    +        }
    +
    +        // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index)
    +        if (!(0x4000 & self::getUInt2d($subData, 6))) {
    +            // absolute column index
    +            // offset: 6; size: 2; last column with relative/absolute flags
    +            // bit: 7-0; mask 0x00FF; column index
    +            $lcIndex = 0x00FF & self::getUInt2d($subData, 6);
    +            $lc = Coordinate::stringFromColumnIndex($lcIndex + 1);
    +            $lc = '$' . $lc;
    +        } else {
    +            // column offset
    +            // offset: 4; size: 2; first column with relative/absolute flags
    +            // bit: 7-0; mask 0x00FF; column index
    +            $relativeLcIndex = 0x00FF & self::getInt2d($subData, 4);
    +            $lcIndex = $baseCol + $relativeLcIndex;
    +            $lcIndex = ($lcIndex < 256) ? $lcIndex : $lcIndex - 256;
    +            $lcIndex = ($lcIndex >= 0) ? $lcIndex : $lcIndex + 256;
    +            $lc = Coordinate::stringFromColumnIndex($lcIndex + 1);
    +        }
    +
    +        // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index)
    +        if (!(0x8000 & self::getUInt2d($subData, 6))) {
    +            // absolute row index
    +            $lr = $lrIndex + 1;
    +            $lr = '$' . $lr;
    +        } else {
    +            // row offset
    +            $lrIndex = ($lrIndex <= 32767) ? $lrIndex : $lrIndex - 65536;
    +            $lr = $baseRow + $lrIndex;
    +        }
    +
    +        return "$fc$fr:$lc$lr";
    +    }
    +
    +    /**
    +     * Read BIFF8 cell range address list
    +     * section 2.5.15.
    +     *
    +     * @param string $subData
    +     *
    +     * @return array
    +     */
    +    private function readBIFF8CellRangeAddressList($subData)
    +    {
    +        $cellRangeAddresses = [];
    +
    +        // offset: 0; size: 2; number of the following cell range addresses
    +        $nm = self::getUInt2d($subData, 0);
    +
    +        $offset = 2;
    +        // offset: 2; size: 8 * $nm; list of $nm (fixed) cell range addresses
    +        for ($i = 0; $i < $nm; ++$i) {
    +            $cellRangeAddresses[] = $this->readBIFF8CellRangeAddressFixed(substr($subData, $offset, 8));
    +            $offset += 8;
    +        }
    +
    +        return [
    +            'size' => 2 + 8 * $nm,
    +            'cellRangeAddresses' => $cellRangeAddresses,
    +        ];
    +    }
    +
    +    /**
    +     * Read BIFF5 cell range address list
    +     * section 2.5.15.
    +     *
    +     * @param string $subData
    +     *
    +     * @return array
    +     */
    +    private function readBIFF5CellRangeAddressList($subData)
    +    {
    +        $cellRangeAddresses = [];
    +
    +        // offset: 0; size: 2; number of the following cell range addresses
    +        $nm = self::getUInt2d($subData, 0);
    +
    +        $offset = 2;
    +        // offset: 2; size: 6 * $nm; list of $nm (fixed) cell range addresses
    +        for ($i = 0; $i < $nm; ++$i) {
    +            $cellRangeAddresses[] = $this->readBIFF5CellRangeAddressFixed(substr($subData, $offset, 6));
    +            $offset += 6;
    +        }
    +
    +        return [
    +            'size' => 2 + 6 * $nm,
    +            'cellRangeAddresses' => $cellRangeAddresses,
    +        ];
    +    }
    +
    +    /**
    +     * Get a sheet range like Sheet1:Sheet3 from REF index
    +     * Note: If there is only one sheet in the range, one gets e.g Sheet1
    +     * It can also happen that the REF structure uses the -1 (FFFF) code to indicate deleted sheets,
    +     * in which case an Exception is thrown.
    +     *
    +     * @param int $index
    +     *
    +     * @throws Exception
    +     *
    +     * @return false|string
    +     */
    +    private function readSheetRangeByRefIndex($index)
    +    {
    +        if (isset($this->ref[$index])) {
    +            $type = $this->externalBooks[$this->ref[$index]['externalBookIndex']]['type'];
    +
    +            switch ($type) {
    +                case 'internal':
    +                    // check if we have a deleted 3d reference
    +                    if ($this->ref[$index]['firstSheetIndex'] == 0xFFFF or $this->ref[$index]['lastSheetIndex'] == 0xFFFF) {
    +                        throw new Exception('Deleted sheet reference');
    +                    }
    +
    +                    // we have normal sheet range (collapsed or uncollapsed)
    +                    $firstSheetName = $this->sheets[$this->ref[$index]['firstSheetIndex']]['name'];
    +                    $lastSheetName = $this->sheets[$this->ref[$index]['lastSheetIndex']]['name'];
    +
    +                    if ($firstSheetName == $lastSheetName) {
    +                        // collapsed sheet range
    +                        $sheetRange = $firstSheetName;
    +                    } else {
    +                        $sheetRange = "$firstSheetName:$lastSheetName";
    +                    }
    +
    +                    // escape the single-quotes
    +                    $sheetRange = str_replace("'", "''", $sheetRange);
    +
    +                    // if there are special characters, we need to enclose the range in single-quotes
    +                    // todo: check if we have identified the whole set of special characters
    +                    // it seems that the following characters are not accepted for sheet names
    +                    // and we may assume that they are not present: []*/:\?
    +                    if (preg_match("/[ !\"@#£$%&{()}<>=+'|^,;-]/u", $sheetRange)) {
    +                        $sheetRange = "'$sheetRange'";
    +                    }
    +
    +                    return $sheetRange;
    +
    +                    break;
    +                default:
    +                    // TODO: external sheet support
    +                    throw new Exception('Xls reader only supports internal sheets in formulas');
    +
    +                    break;
    +            }
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * read BIFF8 constant value array from array data
    +     * returns e.g. ['value' => '{1,2;3,4}', 'size' => 40]
    +     * section 2.5.8.
    +     *
    +     * @param string $arrayData
    +     *
    +     * @return array
    +     */
    +    private static function readBIFF8ConstantArray($arrayData)
    +    {
    +        // offset: 0; size: 1; number of columns decreased by 1
    +        $nc = ord($arrayData[0]);
    +
    +        // offset: 1; size: 2; number of rows decreased by 1
    +        $nr = self::getUInt2d($arrayData, 1);
    +        $size = 3; // initialize
    +        $arrayData = substr($arrayData, 3);
    +
    +        // offset: 3; size: var; list of ($nc + 1) * ($nr + 1) constant values
    +        $matrixChunks = [];
    +        for ($r = 1; $r <= $nr + 1; ++$r) {
    +            $items = [];
    +            for ($c = 1; $c <= $nc + 1; ++$c) {
    +                $constant = self::readBIFF8Constant($arrayData);
    +                $items[] = $constant['value'];
    +                $arrayData = substr($arrayData, $constant['size']);
    +                $size += $constant['size'];
    +            }
    +            $matrixChunks[] = implode(',', $items); // looks like e.g. '1,"hello"'
    +        }
    +        $matrix = '{' . implode(';', $matrixChunks) . '}';
    +
    +        return [
    +            'value' => $matrix,
    +            'size' => $size,
    +        ];
    +    }
    +
    +    /**
    +     * read BIFF8 constant value which may be 'Empty Value', 'Number', 'String Value', 'Boolean Value', 'Error Value'
    +     * section 2.5.7
    +     * returns e.g. ['value' => '5', 'size' => 9].
    +     *
    +     * @param string $valueData
    +     *
    +     * @return array
    +     */
    +    private static function readBIFF8Constant($valueData)
    +    {
    +        // offset: 0; size: 1; identifier for type of constant
    +        $identifier = ord($valueData[0]);
    +
    +        switch ($identifier) {
    +            case 0x00: // empty constant (what is this?)
    +                $value = '';
    +                $size = 9;
    +
    +                break;
    +            case 0x01: // number
    +                // offset: 1; size: 8; IEEE 754 floating-point value
    +                $value = self::extractNumber(substr($valueData, 1, 8));
    +                $size = 9;
    +
    +                break;
    +            case 0x02: // string value
    +                // offset: 1; size: var; Unicode string, 16-bit string length
    +                $string = self::readUnicodeStringLong(substr($valueData, 1));
    +                $value = '"' . $string['value'] . '"';
    +                $size = 1 + $string['size'];
    +
    +                break;
    +            case 0x04: // boolean
    +                // offset: 1; size: 1; 0 = FALSE, 1 = TRUE
    +                if (ord($valueData[1])) {
    +                    $value = 'TRUE';
    +                } else {
    +                    $value = 'FALSE';
    +                }
    +                $size = 9;
    +
    +                break;
    +            case 0x10: // error code
    +                // offset: 1; size: 1; error code
    +                $value = Xls\ErrorCode::lookup(ord($valueData[1]));
    +                $size = 9;
    +
    +                break;
    +        }
    +
    +        return [
    +            'value' => $value,
    +            'size' => $size,
    +        ];
    +    }
    +
    +    /**
    +     * Extract RGB color
    +     * OpenOffice.org's Documentation of the Microsoft Excel File Format, section 2.5.4.
    +     *
    +     * @param string $rgb Encoded RGB value (4 bytes)
    +     *
    +     * @return array
    +     */
    +    private static function readRGB($rgb)
    +    {
    +        // offset: 0; size 1; Red component
    +        $r = ord($rgb[0]);
    +
    +        // offset: 1; size: 1; Green component
    +        $g = ord($rgb[1]);
    +
    +        // offset: 2; size: 1; Blue component
    +        $b = ord($rgb[2]);
    +
    +        // HEX notation, e.g. 'FF00FC'
    +        $rgb = sprintf('%02X%02X%02X', $r, $g, $b);
    +
    +        return ['rgb' => $rgb];
    +    }
    +
    +    /**
    +     * Read byte string (8-bit string length)
    +     * OpenOffice documentation: 2.5.2.
    +     *
    +     * @param string $subData
    +     *
    +     * @return array
    +     */
    +    private function readByteStringShort($subData)
    +    {
    +        // offset: 0; size: 1; length of the string (character count)
    +        $ln = ord($subData[0]);
    +
    +        // offset: 1: size: var; character array (8-bit characters)
    +        $value = $this->decodeCodepage(substr($subData, 1, $ln));
    +
    +        return [
    +            'value' => $value,
    +            'size' => 1 + $ln, // size in bytes of data structure
    +        ];
    +    }
    +
    +    /**
    +     * Read byte string (16-bit string length)
    +     * OpenOffice documentation: 2.5.2.
    +     *
    +     * @param string $subData
    +     *
    +     * @return array
    +     */
    +    private function readByteStringLong($subData)
    +    {
    +        // offset: 0; size: 2; length of the string (character count)
    +        $ln = self::getUInt2d($subData, 0);
    +
    +        // offset: 2: size: var; character array (8-bit characters)
    +        $value = $this->decodeCodepage(substr($subData, 2));
    +
    +        //return $string;
    +        return [
    +            'value' => $value,
    +            'size' => 2 + $ln, // size in bytes of data structure
    +        ];
    +    }
    +
    +    /**
    +     * Extracts an Excel Unicode short string (8-bit string length)
    +     * OpenOffice documentation: 2.5.3
    +     * function will automatically find out where the Unicode string ends.
    +     *
    +     * @param string $subData
    +     *
    +     * @return array
    +     */
    +    private static function readUnicodeStringShort($subData)
    +    {
    +        $value = '';
    +
    +        // offset: 0: size: 1; length of the string (character count)
    +        $characterCount = ord($subData[0]);
    +
    +        $string = self::readUnicodeString(substr($subData, 1), $characterCount);
    +
    +        // add 1 for the string length
    +        $string['size'] += 1;
    +
    +        return $string;
    +    }
    +
    +    /**
    +     * Extracts an Excel Unicode long string (16-bit string length)
    +     * OpenOffice documentation: 2.5.3
    +     * this function is under construction, needs to support rich text, and Asian phonetic settings.
    +     *
    +     * @param string $subData
    +     *
    +     * @return array
    +     */
    +    private static function readUnicodeStringLong($subData)
    +    {
    +        $value = '';
    +
    +        // offset: 0: size: 2; length of the string (character count)
    +        $characterCount = self::getUInt2d($subData, 0);
    +
    +        $string = self::readUnicodeString(substr($subData, 2), $characterCount);
    +
    +        // add 2 for the string length
    +        $string['size'] += 2;
    +
    +        return $string;
    +    }
    +
    +    /**
    +     * Read Unicode string with no string length field, but with known character count
    +     * this function is under construction, needs to support rich text, and Asian phonetic settings
    +     * OpenOffice.org's Documentation of the Microsoft Excel File Format, section 2.5.3.
    +     *
    +     * @param string $subData
    +     * @param int $characterCount
    +     *
    +     * @return array
    +     */
    +    private static function readUnicodeString($subData, $characterCount)
    +    {
    +        $value = '';
    +
    +        // offset: 0: size: 1; option flags
    +        // bit: 0; mask: 0x01; character compression (0 = compressed 8-bit, 1 = uncompressed 16-bit)
    +        $isCompressed = !((0x01 & ord($subData[0])) >> 0);
    +
    +        // bit: 2; mask: 0x04; Asian phonetic settings
    +        $hasAsian = (0x04) & ord($subData[0]) >> 2;
    +
    +        // bit: 3; mask: 0x08; Rich-Text settings
    +        $hasRichText = (0x08) & ord($subData[0]) >> 3;
    +
    +        // offset: 1: size: var; character array
    +        // this offset assumes richtext and Asian phonetic settings are off which is generally wrong
    +        // needs to be fixed
    +        $value = self::encodeUTF16(substr($subData, 1, $isCompressed ? $characterCount : 2 * $characterCount), $isCompressed);
    +
    +        return [
    +            'value' => $value,
    +            'size' => $isCompressed ? 1 + $characterCount : 1 + 2 * $characterCount, // the size in bytes including the option flags
    +        ];
    +    }
    +
    +    /**
    +     * Convert UTF-8 string to string surounded by double quotes. Used for explicit string tokens in formulas.
    +     * Example:  hello"world  -->  "hello""world".
    +     *
    +     * @param string $value UTF-8 encoded string
    +     *
    +     * @return string
    +     */
    +    private static function UTF8toExcelDoubleQuoted($value)
    +    {
    +        return '"' . str_replace('"', '""', $value) . '"';
    +    }
    +
    +    /**
    +     * Reads first 8 bytes of a string and return IEEE 754 float.
    +     *
    +     * @param string $data Binary string that is at least 8 bytes long
    +     *
    +     * @return float
    +     */
    +    private static function extractNumber($data)
    +    {
    +        $rknumhigh = self::getInt4d($data, 4);
    +        $rknumlow = self::getInt4d($data, 0);
    +        $sign = ($rknumhigh & 0x80000000) >> 31;
    +        $exp = (($rknumhigh & 0x7ff00000) >> 20) - 1023;
    +        $mantissa = (0x100000 | ($rknumhigh & 0x000fffff));
    +        $mantissalow1 = ($rknumlow & 0x80000000) >> 31;
    +        $mantissalow2 = ($rknumlow & 0x7fffffff);
    +        $value = $mantissa / pow(2, (20 - $exp));
    +
    +        if ($mantissalow1 != 0) {
    +            $value += 1 / pow(2, (21 - $exp));
    +        }
    +
    +        $value += $mantissalow2 / pow(2, (52 - $exp));
    +        if ($sign) {
    +            $value *= -1;
    +        }
    +
    +        return $value;
    +    }
    +
    +    /**
    +     * @param int $rknum
    +     *
    +     * @return float
    +     */
    +    private static function getIEEE754($rknum)
    +    {
    +        if (($rknum & 0x02) != 0) {
    +            $value = $rknum >> 2;
    +        } else {
    +            // changes by mmp, info on IEEE754 encoding from
    +            // research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html
    +            // The RK format calls for using only the most significant 30 bits
    +            // of the 64 bit floating point value. The other 34 bits are assumed
    +            // to be 0 so we use the upper 30 bits of $rknum as follows...
    +            $sign = ($rknum & 0x80000000) >> 31;
    +            $exp = ($rknum & 0x7ff00000) >> 20;
    +            $mantissa = (0x100000 | ($rknum & 0x000ffffc));
    +            $value = $mantissa / pow(2, (20 - ($exp - 1023)));
    +            if ($sign) {
    +                $value = -1 * $value;
    +            }
    +            //end of changes by mmp
    +        }
    +        if (($rknum & 0x01) != 0) {
    +            $value /= 100;
    +        }
    +
    +        return $value;
    +    }
    +
    +    /**
    +     * Get UTF-8 string from (compressed or uncompressed) UTF-16 string.
    +     *
    +     * @param string $string
    +     * @param bool $compressed
    +     *
    +     * @return string
    +     */
    +    private static function encodeUTF16($string, $compressed = false)
    +    {
    +        if ($compressed) {
    +            $string = self::uncompressByteString($string);
    +        }
    +
    +        return StringHelper::convertEncoding($string, 'UTF-8', 'UTF-16LE');
    +    }
    +
    +    /**
    +     * Convert UTF-16 string in compressed notation to uncompressed form. Only used for BIFF8.
    +     *
    +     * @param string $string
    +     *
    +     * @return string
    +     */
    +    private static function uncompressByteString($string)
    +    {
    +        $uncompressedString = '';
    +        $strLen = strlen($string);
    +        for ($i = 0; $i < $strLen; ++$i) {
    +            $uncompressedString .= $string[$i] . "\0";
    +        }
    +
    +        return $uncompressedString;
    +    }
    +
    +    /**
    +     * Convert string to UTF-8. Only used for BIFF5.
    +     *
    +     * @param string $string
    +     *
    +     * @return string
    +     */
    +    private function decodeCodepage($string)
    +    {
    +        return StringHelper::convertEncoding($string, 'UTF-8', $this->codepage);
    +    }
    +
    +    /**
    +     * Read 16-bit unsigned integer.
    +     *
    +     * @param string $data
    +     * @param int $pos
    +     *
    +     * @return int
    +     */
    +    public static function getUInt2d($data, $pos)
    +    {
    +        return ord($data[$pos]) | (ord($data[$pos + 1]) << 8);
    +    }
    +
    +    /**
    +     * Read 16-bit signed integer.
    +     *
    +     * @param string $data
    +     * @param int $pos
    +     *
    +     * @return int
    +     */
    +    public static function getInt2d($data, $pos)
    +    {
    +        return unpack('s', $data[$pos] . $data[$pos + 1])[1];
    +    }
    +
    +    /**
    +     * Read 32-bit signed integer.
    +     *
    +     * @param string $data
    +     * @param int $pos
    +     *
    +     * @return int
    +     */
    +    public static function getInt4d($data, $pos)
    +    {
    +        // FIX: represent numbers correctly on 64-bit system
    +        // http://sourceforge.net/tracker/index.php?func=detail&aid=1487372&group_id=99160&atid=623334
    +        // Changed by Andreas Rehm 2006 to ensure correct result of the <<24 block on 32 and 64bit systems
    +        $_or_24 = ord($data[$pos + 3]);
    +        if ($_or_24 >= 128) {
    +            // negative number
    +            $_ord_24 = -abs((256 - $_or_24) << 24);
    +        } else {
    +            $_ord_24 = ($_or_24 & 127) << 24;
    +        }
    +
    +        return ord($data[$pos]) | (ord($data[$pos + 1]) << 8) | (ord($data[$pos + 2]) << 16) | $_ord_24;
    +    }
    +
    +    private function parseRichText($is)
    +    {
    +        $value = new RichText();
    +        $value->createText($is);
    +
    +        return $value;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color.php
    new file mode 100644
    index 00000000000..c45f88c72b5
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color.php
    @@ -0,0 +1,36 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xls;
    +
    +use PhpOffice\PhpSpreadsheet\Reader\Xls;
    +
    +class Color
    +{
    +    /**
    +     * Read color.
    +     *
    +     * @param int $color Indexed color
    +     * @param array $palette Color palette
    +     * @param int $version
    +     *
    +     * @return array RGB color value, example: ['rgb' => 'FF0000']
    +     */
    +    public static function map($color, $palette, $version)
    +    {
    +        if ($color <= 0x07 || $color >= 0x40) {
    +            // special built-in color
    +            return Color\BuiltIn::lookup($color);
    +        } elseif (isset($palette, $palette[$color - 8])) {
    +            // palette color, color index 0x08 maps to pallete index 0
    +            return $palette[$color - 8];
    +        }
    +
    +        // default color table
    +        if ($version == Xls::XLS_BIFF8) {
    +            return Color\BIFF8::lookup($color);
    +        }
    +
    +        // BIFF5
    +        return Color\BIFF5::lookup($color);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color/BIFF5.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color/BIFF5.php
    new file mode 100644
    index 00000000000..743d938773e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color/BIFF5.php
    @@ -0,0 +1,81 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xls\Color;
    +
    +class BIFF5
    +{
    +    protected static $map = [
    +        0x08 => '000000',
    +        0x09 => 'FFFFFF',
    +        0x0A => 'FF0000',
    +        0x0B => '00FF00',
    +        0x0C => '0000FF',
    +        0x0D => 'FFFF00',
    +        0x0E => 'FF00FF',
    +        0x0F => '00FFFF',
    +        0x10 => '800000',
    +        0x11 => '008000',
    +        0x12 => '000080',
    +        0x13 => '808000',
    +        0x14 => '800080',
    +        0x15 => '008080',
    +        0x16 => 'C0C0C0',
    +        0x17 => '808080',
    +        0x18 => '8080FF',
    +        0x19 => '802060',
    +        0x1A => 'FFFFC0',
    +        0x1B => 'A0E0F0',
    +        0x1C => '600080',
    +        0x1D => 'FF8080',
    +        0x1E => '0080C0',
    +        0x1F => 'C0C0FF',
    +        0x20 => '000080',
    +        0x21 => 'FF00FF',
    +        0x22 => 'FFFF00',
    +        0x23 => '00FFFF',
    +        0x24 => '800080',
    +        0x25 => '800000',
    +        0x26 => '008080',
    +        0x27 => '0000FF',
    +        0x28 => '00CFFF',
    +        0x29 => '69FFFF',
    +        0x2A => 'E0FFE0',
    +        0x2B => 'FFFF80',
    +        0x2C => 'A6CAF0',
    +        0x2D => 'DD9CB3',
    +        0x2E => 'B38FEE',
    +        0x2F => 'E3E3E3',
    +        0x30 => '2A6FF9',
    +        0x31 => '3FB8CD',
    +        0x32 => '488436',
    +        0x33 => '958C41',
    +        0x34 => '8E5E42',
    +        0x35 => 'A0627A',
    +        0x36 => '624FAC',
    +        0x37 => '969696',
    +        0x38 => '1D2FBE',
    +        0x39 => '286676',
    +        0x3A => '004500',
    +        0x3B => '453E01',
    +        0x3C => '6A2813',
    +        0x3D => '85396A',
    +        0x3E => '4A3285',
    +        0x3F => '424242',
    +    ];
    +
    +    /**
    +     * Map color array from BIFF5 built-in color index.
    +     *
    +     * @param int $color
    +     *
    +     * @return array
    +     */
    +    public static function lookup($color)
    +    {
    +        if (isset(self::$map[$color])) {
    +            return ['rgb' => self::$map[$color]];
    +        }
    +
    +        return ['rgb' => '000000'];
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color/BIFF8.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color/BIFF8.php
    new file mode 100644
    index 00000000000..5c109fb071f
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color/BIFF8.php
    @@ -0,0 +1,81 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xls\Color;
    +
    +class BIFF8
    +{
    +    protected static $map = [
    +        0x08 => '000000',
    +        0x09 => 'FFFFFF',
    +        0x0A => 'FF0000',
    +        0x0B => '00FF00',
    +        0x0C => '0000FF',
    +        0x0D => 'FFFF00',
    +        0x0E => 'FF00FF',
    +        0x0F => '00FFFF',
    +        0x10 => '800000',
    +        0x11 => '008000',
    +        0x12 => '000080',
    +        0x13 => '808000',
    +        0x14 => '800080',
    +        0x15 => '008080',
    +        0x16 => 'C0C0C0',
    +        0x17 => '808080',
    +        0x18 => '9999FF',
    +        0x19 => '993366',
    +        0x1A => 'FFFFCC',
    +        0x1B => 'CCFFFF',
    +        0x1C => '660066',
    +        0x1D => 'FF8080',
    +        0x1E => '0066CC',
    +        0x1F => 'CCCCFF',
    +        0x20 => '000080',
    +        0x21 => 'FF00FF',
    +        0x22 => 'FFFF00',
    +        0x23 => '00FFFF',
    +        0x24 => '800080',
    +        0x25 => '800000',
    +        0x26 => '008080',
    +        0x27 => '0000FF',
    +        0x28 => '00CCFF',
    +        0x29 => 'CCFFFF',
    +        0x2A => 'CCFFCC',
    +        0x2B => 'FFFF99',
    +        0x2C => '99CCFF',
    +        0x2D => 'FF99CC',
    +        0x2E => 'CC99FF',
    +        0x2F => 'FFCC99',
    +        0x30 => '3366FF',
    +        0x31 => '33CCCC',
    +        0x32 => '99CC00',
    +        0x33 => 'FFCC00',
    +        0x34 => 'FF9900',
    +        0x35 => 'FF6600',
    +        0x36 => '666699',
    +        0x37 => '969696',
    +        0x38 => '003366',
    +        0x39 => '339966',
    +        0x3A => '003300',
    +        0x3B => '333300',
    +        0x3C => '993300',
    +        0x3D => '993366',
    +        0x3E => '333399',
    +        0x3F => '333333',
    +    ];
    +
    +    /**
    +     * Map color array from BIFF8 built-in color index.
    +     *
    +     * @param int $color
    +     *
    +     * @return array
    +     */
    +    public static function lookup($color)
    +    {
    +        if (isset(self::$map[$color])) {
    +            return ['rgb' => self::$map[$color]];
    +        }
    +
    +        return ['rgb' => '000000'];
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color/BuiltIn.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color/BuiltIn.php
    new file mode 100644
    index 00000000000..90d50e336bb
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Color/BuiltIn.php
    @@ -0,0 +1,35 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xls\Color;
    +
    +class BuiltIn
    +{
    +    protected static $map = [
    +        0x00 => '000000',
    +        0x01 => 'FFFFFF',
    +        0x02 => 'FF0000',
    +        0x03 => '00FF00',
    +        0x04 => '0000FF',
    +        0x05 => 'FFFF00',
    +        0x06 => 'FF00FF',
    +        0x07 => '00FFFF',
    +        0x40 => '000000', // system window text color
    +        0x41 => 'FFFFFF', // system window background color
    +    ];
    +
    +    /**
    +     * Map built-in color to RGB value.
    +     *
    +     * @param int $color Indexed color
    +     *
    +     * @return array
    +     */
    +    public static function lookup($color)
    +    {
    +        if (isset(self::$map[$color])) {
    +            return ['rgb' => self::$map[$color]];
    +        }
    +
    +        return ['rgb' => '000000'];
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/ErrorCode.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/ErrorCode.php
    new file mode 100644
    index 00000000000..7daf7230ff0
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/ErrorCode.php
    @@ -0,0 +1,32 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xls;
    +
    +class ErrorCode
    +{
    +    protected static $map = [
    +        0x00 => '#NULL!',
    +        0x07 => '#DIV/0!',
    +        0x0F => '#VALUE!',
    +        0x17 => '#REF!',
    +        0x1D => '#NAME?',
    +        0x24 => '#NUM!',
    +        0x2A => '#N/A',
    +    ];
    +
    +    /**
    +     * Map error code, e.g. '#N/A'.
    +     *
    +     * @param int $code
    +     *
    +     * @return bool|string
    +     */
    +    public static function lookup($code)
    +    {
    +        if (isset(self::$map[$code])) {
    +            return self::$map[$code];
    +        }
    +
    +        return false;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Escher.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Escher.php
    new file mode 100644
    index 00000000000..858d6bbbac4
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Escher.php
    @@ -0,0 +1,677 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xls;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Reader\Xls;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip;
    +
    +class Escher
    +{
    +    const DGGCONTAINER = 0xF000;
    +    const BSTORECONTAINER = 0xF001;
    +    const DGCONTAINER = 0xF002;
    +    const SPGRCONTAINER = 0xF003;
    +    const SPCONTAINER = 0xF004;
    +    const DGG = 0xF006;
    +    const BSE = 0xF007;
    +    const DG = 0xF008;
    +    const SPGR = 0xF009;
    +    const SP = 0xF00A;
    +    const OPT = 0xF00B;
    +    const CLIENTTEXTBOX = 0xF00D;
    +    const CLIENTANCHOR = 0xF010;
    +    const CLIENTDATA = 0xF011;
    +    const BLIPJPEG = 0xF01D;
    +    const BLIPPNG = 0xF01E;
    +    const SPLITMENUCOLORS = 0xF11E;
    +    const TERTIARYOPT = 0xF122;
    +
    +    /**
    +     * Escher stream data (binary).
    +     *
    +     * @var string
    +     */
    +    private $data;
    +
    +    /**
    +     * Size in bytes of the Escher stream data.
    +     *
    +     * @var int
    +     */
    +    private $dataSize;
    +
    +    /**
    +     * Current position of stream pointer in Escher stream data.
    +     *
    +     * @var int
    +     */
    +    private $pos;
    +
    +    /**
    +     * The object to be returned by the reader. Modified during load.
    +     *
    +     * @var BSE|BstoreContainer|DgContainer|DggContainer|\PhpOffice\PhpSpreadsheet\Shared\Escher|SpContainer|SpgrContainer
    +     */
    +    private $object;
    +
    +    /**
    +     * Create a new Escher instance.
    +     *
    +     * @param mixed $object
    +     */
    +    public function __construct($object)
    +    {
    +        $this->object = $object;
    +    }
    +
    +    /**
    +     * Load Escher stream data. May be a partial Escher stream.
    +     *
    +     * @param string $data
    +     *
    +     * @return BSE|BstoreContainer|DgContainer|DggContainer|\PhpOffice\PhpSpreadsheet\Shared\Escher|SpContainer|SpgrContainer
    +     */
    +    public function load($data)
    +    {
    +        $this->data = $data;
    +
    +        // total byte size of Excel data (workbook global substream + sheet substreams)
    +        $this->dataSize = strlen($this->data);
    +
    +        $this->pos = 0;
    +
    +        // Parse Escher stream
    +        while ($this->pos < $this->dataSize) {
    +            // offset: 2; size: 2: Record Type
    +            $fbt = Xls::getUInt2d($this->data, $this->pos + 2);
    +
    +            switch ($fbt) {
    +                case self::DGGCONTAINER:
    +                    $this->readDggContainer();
    +
    +                    break;
    +                case self::DGG:
    +                    $this->readDgg();
    +
    +                    break;
    +                case self::BSTORECONTAINER:
    +                    $this->readBstoreContainer();
    +
    +                    break;
    +                case self::BSE:
    +                    $this->readBSE();
    +
    +                    break;
    +                case self::BLIPJPEG:
    +                    $this->readBlipJPEG();
    +
    +                    break;
    +                case self::BLIPPNG:
    +                    $this->readBlipPNG();
    +
    +                    break;
    +                case self::OPT:
    +                    $this->readOPT();
    +
    +                    break;
    +                case self::TERTIARYOPT:
    +                    $this->readTertiaryOPT();
    +
    +                    break;
    +                case self::SPLITMENUCOLORS:
    +                    $this->readSplitMenuColors();
    +
    +                    break;
    +                case self::DGCONTAINER:
    +                    $this->readDgContainer();
    +
    +                    break;
    +                case self::DG:
    +                    $this->readDg();
    +
    +                    break;
    +                case self::SPGRCONTAINER:
    +                    $this->readSpgrContainer();
    +
    +                    break;
    +                case self::SPCONTAINER:
    +                    $this->readSpContainer();
    +
    +                    break;
    +                case self::SPGR:
    +                    $this->readSpgr();
    +
    +                    break;
    +                case self::SP:
    +                    $this->readSp();
    +
    +                    break;
    +                case self::CLIENTTEXTBOX:
    +                    $this->readClientTextbox();
    +
    +                    break;
    +                case self::CLIENTANCHOR:
    +                    $this->readClientAnchor();
    +
    +                    break;
    +                case self::CLIENTDATA:
    +                    $this->readClientData();
    +
    +                    break;
    +                default:
    +                    $this->readDefault();
    +
    +                    break;
    +            }
    +        }
    +
    +        return $this->object;
    +    }
    +
    +    /**
    +     * Read a generic record.
    +     */
    +    private function readDefault()
    +    {
    +        // offset 0; size: 2; recVer and recInstance
    +        $verInstance = Xls::getUInt2d($this->data, $this->pos);
    +
    +        // offset: 2; size: 2: Record Type
    +        $fbt = Xls::getUInt2d($this->data, $this->pos + 2);
    +
    +        // bit: 0-3; mask: 0x000F; recVer
    +        $recVer = (0x000F & $verInstance) >> 0;
    +
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +    }
    +
    +    /**
    +     * Read DggContainer record (Drawing Group Container).
    +     */
    +    private function readDggContainer()
    +    {
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +
    +        // record is a container, read contents
    +        $dggContainer = new DggContainer();
    +        $this->object->setDggContainer($dggContainer);
    +        $reader = new self($dggContainer);
    +        $reader->load($recordData);
    +    }
    +
    +    /**
    +     * Read Dgg record (Drawing Group).
    +     */
    +    private function readDgg()
    +    {
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +    }
    +
    +    /**
    +     * Read BstoreContainer record (Blip Store Container).
    +     */
    +    private function readBstoreContainer()
    +    {
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +
    +        // record is a container, read contents
    +        $bstoreContainer = new BstoreContainer();
    +        $this->object->setBstoreContainer($bstoreContainer);
    +        $reader = new self($bstoreContainer);
    +        $reader->load($recordData);
    +    }
    +
    +    /**
    +     * Read BSE record.
    +     */
    +    private function readBSE()
    +    {
    +        // offset: 0; size: 2; recVer and recInstance
    +
    +        // bit: 4-15; mask: 0xFFF0; recInstance
    +        $recInstance = (0xFFF0 & Xls::getUInt2d($this->data, $this->pos)) >> 4;
    +
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +
    +        // add BSE to BstoreContainer
    +        $BSE = new BSE();
    +        $this->object->addBSE($BSE);
    +
    +        $BSE->setBLIPType($recInstance);
    +
    +        // offset: 0; size: 1; btWin32 (MSOBLIPTYPE)
    +        $btWin32 = ord($recordData[0]);
    +
    +        // offset: 1; size: 1; btWin32 (MSOBLIPTYPE)
    +        $btMacOS = ord($recordData[1]);
    +
    +        // offset: 2; size: 16; MD4 digest
    +        $rgbUid = substr($recordData, 2, 16);
    +
    +        // offset: 18; size: 2; tag
    +        $tag = Xls::getUInt2d($recordData, 18);
    +
    +        // offset: 20; size: 4; size of BLIP in bytes
    +        $size = Xls::getInt4d($recordData, 20);
    +
    +        // offset: 24; size: 4; number of references to this BLIP
    +        $cRef = Xls::getInt4d($recordData, 24);
    +
    +        // offset: 28; size: 4; MSOFO file offset
    +        $foDelay = Xls::getInt4d($recordData, 28);
    +
    +        // offset: 32; size: 1; unused1
    +        $unused1 = ord($recordData[32]);
    +
    +        // offset: 33; size: 1; size of nameData in bytes (including null terminator)
    +        $cbName = ord($recordData[33]);
    +
    +        // offset: 34; size: 1; unused2
    +        $unused2 = ord($recordData[34]);
    +
    +        // offset: 35; size: 1; unused3
    +        $unused3 = ord($recordData[35]);
    +
    +        // offset: 36; size: $cbName; nameData
    +        $nameData = substr($recordData, 36, $cbName);
    +
    +        // offset: 36 + $cbName, size: var; the BLIP data
    +        $blipData = substr($recordData, 36 + $cbName);
    +
    +        // record is a container, read contents
    +        $reader = new self($BSE);
    +        $reader->load($blipData);
    +    }
    +
    +    /**
    +     * Read BlipJPEG record. Holds raw JPEG image data.
    +     */
    +    private function readBlipJPEG()
    +    {
    +        // offset: 0; size: 2; recVer and recInstance
    +
    +        // bit: 4-15; mask: 0xFFF0; recInstance
    +        $recInstance = (0xFFF0 & Xls::getUInt2d($this->data, $this->pos)) >> 4;
    +
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +
    +        $pos = 0;
    +
    +        // offset: 0; size: 16; rgbUid1 (MD4 digest of)
    +        $rgbUid1 = substr($recordData, 0, 16);
    +        $pos += 16;
    +
    +        // offset: 16; size: 16; rgbUid2 (MD4 digest), only if $recInstance = 0x46B or 0x6E3
    +        if (in_array($recInstance, [0x046B, 0x06E3])) {
    +            $rgbUid2 = substr($recordData, 16, 16);
    +            $pos += 16;
    +        }
    +
    +        // offset: var; size: 1; tag
    +        $tag = ord($recordData[$pos]);
    +        $pos += 1;
    +
    +        // offset: var; size: var; the raw image data
    +        $data = substr($recordData, $pos);
    +
    +        $blip = new Blip();
    +        $blip->setData($data);
    +
    +        $this->object->setBlip($blip);
    +    }
    +
    +    /**
    +     * Read BlipPNG record. Holds raw PNG image data.
    +     */
    +    private function readBlipPNG()
    +    {
    +        // offset: 0; size: 2; recVer and recInstance
    +
    +        // bit: 4-15; mask: 0xFFF0; recInstance
    +        $recInstance = (0xFFF0 & Xls::getUInt2d($this->data, $this->pos)) >> 4;
    +
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +
    +        $pos = 0;
    +
    +        // offset: 0; size: 16; rgbUid1 (MD4 digest of)
    +        $rgbUid1 = substr($recordData, 0, 16);
    +        $pos += 16;
    +
    +        // offset: 16; size: 16; rgbUid2 (MD4 digest), only if $recInstance = 0x46B or 0x6E3
    +        if ($recInstance == 0x06E1) {
    +            $rgbUid2 = substr($recordData, 16, 16);
    +            $pos += 16;
    +        }
    +
    +        // offset: var; size: 1; tag
    +        $tag = ord($recordData[$pos]);
    +        $pos += 1;
    +
    +        // offset: var; size: var; the raw image data
    +        $data = substr($recordData, $pos);
    +
    +        $blip = new Blip();
    +        $blip->setData($data);
    +
    +        $this->object->setBlip($blip);
    +    }
    +
    +    /**
    +     * Read OPT record. This record may occur within DggContainer record or SpContainer.
    +     */
    +    private function readOPT()
    +    {
    +        // offset: 0; size: 2; recVer and recInstance
    +
    +        // bit: 4-15; mask: 0xFFF0; recInstance
    +        $recInstance = (0xFFF0 & Xls::getUInt2d($this->data, $this->pos)) >> 4;
    +
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +
    +        $this->readOfficeArtRGFOPTE($recordData, $recInstance);
    +    }
    +
    +    /**
    +     * Read TertiaryOPT record.
    +     */
    +    private function readTertiaryOPT()
    +    {
    +        // offset: 0; size: 2; recVer and recInstance
    +
    +        // bit: 4-15; mask: 0xFFF0; recInstance
    +        $recInstance = (0xFFF0 & Xls::getUInt2d($this->data, $this->pos)) >> 4;
    +
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +    }
    +
    +    /**
    +     * Read SplitMenuColors record.
    +     */
    +    private function readSplitMenuColors()
    +    {
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +    }
    +
    +    /**
    +     * Read DgContainer record (Drawing Container).
    +     */
    +    private function readDgContainer()
    +    {
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +
    +        // record is a container, read contents
    +        $dgContainer = new DgContainer();
    +        $this->object->setDgContainer($dgContainer);
    +        $reader = new self($dgContainer);
    +        $escher = $reader->load($recordData);
    +    }
    +
    +    /**
    +     * Read Dg record (Drawing).
    +     */
    +    private function readDg()
    +    {
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +    }
    +
    +    /**
    +     * Read SpgrContainer record (Shape Group Container).
    +     */
    +    private function readSpgrContainer()
    +    {
    +        // context is either context DgContainer or SpgrContainer
    +
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +
    +        // record is a container, read contents
    +        $spgrContainer = new SpgrContainer();
    +
    +        if ($this->object instanceof DgContainer) {
    +            // DgContainer
    +            $this->object->setSpgrContainer($spgrContainer);
    +        } else {
    +            // SpgrContainer
    +            $this->object->addChild($spgrContainer);
    +        }
    +
    +        $reader = new self($spgrContainer);
    +        $escher = $reader->load($recordData);
    +    }
    +
    +    /**
    +     * Read SpContainer record (Shape Container).
    +     */
    +    private function readSpContainer()
    +    {
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // add spContainer to spgrContainer
    +        $spContainer = new SpContainer();
    +        $this->object->addChild($spContainer);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +
    +        // record is a container, read contents
    +        $reader = new self($spContainer);
    +        $escher = $reader->load($recordData);
    +    }
    +
    +    /**
    +     * Read Spgr record (Shape Group).
    +     */
    +    private function readSpgr()
    +    {
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +    }
    +
    +    /**
    +     * Read Sp record (Shape).
    +     */
    +    private function readSp()
    +    {
    +        // offset: 0; size: 2; recVer and recInstance
    +
    +        // bit: 4-15; mask: 0xFFF0; recInstance
    +        $recInstance = (0xFFF0 & Xls::getUInt2d($this->data, $this->pos)) >> 4;
    +
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +    }
    +
    +    /**
    +     * Read ClientTextbox record.
    +     */
    +    private function readClientTextbox()
    +    {
    +        // offset: 0; size: 2; recVer and recInstance
    +
    +        // bit: 4-15; mask: 0xFFF0; recInstance
    +        $recInstance = (0xFFF0 & Xls::getUInt2d($this->data, $this->pos)) >> 4;
    +
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +    }
    +
    +    /**
    +     * Read ClientAnchor record. This record holds information about where the shape is anchored in worksheet.
    +     */
    +    private function readClientAnchor()
    +    {
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +
    +        // offset: 2; size: 2; upper-left corner column index (0-based)
    +        $c1 = Xls::getUInt2d($recordData, 2);
    +
    +        // offset: 4; size: 2; upper-left corner horizontal offset in 1/1024 of column width
    +        $startOffsetX = Xls::getUInt2d($recordData, 4);
    +
    +        // offset: 6; size: 2; upper-left corner row index (0-based)
    +        $r1 = Xls::getUInt2d($recordData, 6);
    +
    +        // offset: 8; size: 2; upper-left corner vertical offset in 1/256 of row height
    +        $startOffsetY = Xls::getUInt2d($recordData, 8);
    +
    +        // offset: 10; size: 2; bottom-right corner column index (0-based)
    +        $c2 = Xls::getUInt2d($recordData, 10);
    +
    +        // offset: 12; size: 2; bottom-right corner horizontal offset in 1/1024 of column width
    +        $endOffsetX = Xls::getUInt2d($recordData, 12);
    +
    +        // offset: 14; size: 2; bottom-right corner row index (0-based)
    +        $r2 = Xls::getUInt2d($recordData, 14);
    +
    +        // offset: 16; size: 2; bottom-right corner vertical offset in 1/256 of row height
    +        $endOffsetY = Xls::getUInt2d($recordData, 16);
    +
    +        // set the start coordinates
    +        $this->object->setStartCoordinates(Coordinate::stringFromColumnIndex($c1 + 1) . ($r1 + 1));
    +
    +        // set the start offsetX
    +        $this->object->setStartOffsetX($startOffsetX);
    +
    +        // set the start offsetY
    +        $this->object->setStartOffsetY($startOffsetY);
    +
    +        // set the end coordinates
    +        $this->object->setEndCoordinates(Coordinate::stringFromColumnIndex($c2 + 1) . ($r2 + 1));
    +
    +        // set the end offsetX
    +        $this->object->setEndOffsetX($endOffsetX);
    +
    +        // set the end offsetY
    +        $this->object->setEndOffsetY($endOffsetY);
    +    }
    +
    +    /**
    +     * Read ClientData record.
    +     */
    +    private function readClientData()
    +    {
    +        $length = Xls::getInt4d($this->data, $this->pos + 4);
    +        $recordData = substr($this->data, $this->pos + 8, $length);
    +
    +        // move stream pointer to next record
    +        $this->pos += 8 + $length;
    +    }
    +
    +    /**
    +     * Read OfficeArtRGFOPTE table of property-value pairs.
    +     *
    +     * @param string $data Binary data
    +     * @param int $n Number of properties
    +     */
    +    private function readOfficeArtRGFOPTE($data, $n)
    +    {
    +        $splicedComplexData = substr($data, 6 * $n);
    +
    +        // loop through property-value pairs
    +        for ($i = 0; $i < $n; ++$i) {
    +            // read 6 bytes at a time
    +            $fopte = substr($data, 6 * $i, 6);
    +
    +            // offset: 0; size: 2; opid
    +            $opid = Xls::getUInt2d($fopte, 0);
    +
    +            // bit: 0-13; mask: 0x3FFF; opid.opid
    +            $opidOpid = (0x3FFF & $opid) >> 0;
    +
    +            // bit: 14; mask 0x4000; 1 = value in op field is BLIP identifier
    +            $opidFBid = (0x4000 & $opid) >> 14;
    +
    +            // bit: 15; mask 0x8000; 1 = this is a complex property, op field specifies size of complex data
    +            $opidFComplex = (0x8000 & $opid) >> 15;
    +
    +            // offset: 2; size: 4; the value for this property
    +            $op = Xls::getInt4d($fopte, 2);
    +
    +            if ($opidFComplex) {
    +                $complexData = substr($splicedComplexData, 0, $op);
    +                $splicedComplexData = substr($splicedComplexData, $op);
    +
    +                // we store string value with complex data
    +                $value = $complexData;
    +            } else {
    +                // we store integer value
    +                $value = $op;
    +            }
    +
    +            $this->object->setOPT($opidOpid, $value);
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/MD5.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/MD5.php
    new file mode 100644
    index 00000000000..6a10e591ecb
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/MD5.php
    @@ -0,0 +1,184 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xls;
    +
    +class MD5
    +{
    +    // Context
    +    private $a;
    +
    +    private $b;
    +
    +    private $c;
    +
    +    private $d;
    +
    +    /**
    +     * MD5 stream constructor.
    +     */
    +    public function __construct()
    +    {
    +        $this->reset();
    +    }
    +
    +    /**
    +     * Reset the MD5 stream context.
    +     */
    +    public function reset()
    +    {
    +        $this->a = 0x67452301;
    +        $this->b = 0xEFCDAB89;
    +        $this->c = 0x98BADCFE;
    +        $this->d = 0x10325476;
    +    }
    +
    +    /**
    +     * Get MD5 stream context.
    +     *
    +     * @return string
    +     */
    +    public function getContext()
    +    {
    +        $s = '';
    +        foreach (['a', 'b', 'c', 'd'] as $i) {
    +            $v = $this->{$i};
    +            $s .= chr($v & 0xff);
    +            $s .= chr(($v >> 8) & 0xff);
    +            $s .= chr(($v >> 16) & 0xff);
    +            $s .= chr(($v >> 24) & 0xff);
    +        }
    +
    +        return $s;
    +    }
    +
    +    /**
    +     * Add data to context.
    +     *
    +     * @param string $data Data to add
    +     */
    +    public function add($data)
    +    {
    +        $words = array_values(unpack('V16', $data));
    +
    +        $A = $this->a;
    +        $B = $this->b;
    +        $C = $this->c;
    +        $D = $this->d;
    +
    +        $F = ['self', 'f'];
    +        $G = ['self', 'g'];
    +        $H = ['self', 'h'];
    +        $I = ['self', 'i'];
    +
    +        // ROUND 1
    +        self::step($F, $A, $B, $C, $D, $words[0], 7, 0xd76aa478);
    +        self::step($F, $D, $A, $B, $C, $words[1], 12, 0xe8c7b756);
    +        self::step($F, $C, $D, $A, $B, $words[2], 17, 0x242070db);
    +        self::step($F, $B, $C, $D, $A, $words[3], 22, 0xc1bdceee);
    +        self::step($F, $A, $B, $C, $D, $words[4], 7, 0xf57c0faf);
    +        self::step($F, $D, $A, $B, $C, $words[5], 12, 0x4787c62a);
    +        self::step($F, $C, $D, $A, $B, $words[6], 17, 0xa8304613);
    +        self::step($F, $B, $C, $D, $A, $words[7], 22, 0xfd469501);
    +        self::step($F, $A, $B, $C, $D, $words[8], 7, 0x698098d8);
    +        self::step($F, $D, $A, $B, $C, $words[9], 12, 0x8b44f7af);
    +        self::step($F, $C, $D, $A, $B, $words[10], 17, 0xffff5bb1);
    +        self::step($F, $B, $C, $D, $A, $words[11], 22, 0x895cd7be);
    +        self::step($F, $A, $B, $C, $D, $words[12], 7, 0x6b901122);
    +        self::step($F, $D, $A, $B, $C, $words[13], 12, 0xfd987193);
    +        self::step($F, $C, $D, $A, $B, $words[14], 17, 0xa679438e);
    +        self::step($F, $B, $C, $D, $A, $words[15], 22, 0x49b40821);
    +
    +        // ROUND 2
    +        self::step($G, $A, $B, $C, $D, $words[1], 5, 0xf61e2562);
    +        self::step($G, $D, $A, $B, $C, $words[6], 9, 0xc040b340);
    +        self::step($G, $C, $D, $A, $B, $words[11], 14, 0x265e5a51);
    +        self::step($G, $B, $C, $D, $A, $words[0], 20, 0xe9b6c7aa);
    +        self::step($G, $A, $B, $C, $D, $words[5], 5, 0xd62f105d);
    +        self::step($G, $D, $A, $B, $C, $words[10], 9, 0x02441453);
    +        self::step($G, $C, $D, $A, $B, $words[15], 14, 0xd8a1e681);
    +        self::step($G, $B, $C, $D, $A, $words[4], 20, 0xe7d3fbc8);
    +        self::step($G, $A, $B, $C, $D, $words[9], 5, 0x21e1cde6);
    +        self::step($G, $D, $A, $B, $C, $words[14], 9, 0xc33707d6);
    +        self::step($G, $C, $D, $A, $B, $words[3], 14, 0xf4d50d87);
    +        self::step($G, $B, $C, $D, $A, $words[8], 20, 0x455a14ed);
    +        self::step($G, $A, $B, $C, $D, $words[13], 5, 0xa9e3e905);
    +        self::step($G, $D, $A, $B, $C, $words[2], 9, 0xfcefa3f8);
    +        self::step($G, $C, $D, $A, $B, $words[7], 14, 0x676f02d9);
    +        self::step($G, $B, $C, $D, $A, $words[12], 20, 0x8d2a4c8a);
    +
    +        // ROUND 3
    +        self::step($H, $A, $B, $C, $D, $words[5], 4, 0xfffa3942);
    +        self::step($H, $D, $A, $B, $C, $words[8], 11, 0x8771f681);
    +        self::step($H, $C, $D, $A, $B, $words[11], 16, 0x6d9d6122);
    +        self::step($H, $B, $C, $D, $A, $words[14], 23, 0xfde5380c);
    +        self::step($H, $A, $B, $C, $D, $words[1], 4, 0xa4beea44);
    +        self::step($H, $D, $A, $B, $C, $words[4], 11, 0x4bdecfa9);
    +        self::step($H, $C, $D, $A, $B, $words[7], 16, 0xf6bb4b60);
    +        self::step($H, $B, $C, $D, $A, $words[10], 23, 0xbebfbc70);
    +        self::step($H, $A, $B, $C, $D, $words[13], 4, 0x289b7ec6);
    +        self::step($H, $D, $A, $B, $C, $words[0], 11, 0xeaa127fa);
    +        self::step($H, $C, $D, $A, $B, $words[3], 16, 0xd4ef3085);
    +        self::step($H, $B, $C, $D, $A, $words[6], 23, 0x04881d05);
    +        self::step($H, $A, $B, $C, $D, $words[9], 4, 0xd9d4d039);
    +        self::step($H, $D, $A, $B, $C, $words[12], 11, 0xe6db99e5);
    +        self::step($H, $C, $D, $A, $B, $words[15], 16, 0x1fa27cf8);
    +        self::step($H, $B, $C, $D, $A, $words[2], 23, 0xc4ac5665);
    +
    +        // ROUND 4
    +        self::step($I, $A, $B, $C, $D, $words[0], 6, 0xf4292244);
    +        self::step($I, $D, $A, $B, $C, $words[7], 10, 0x432aff97);
    +        self::step($I, $C, $D, $A, $B, $words[14], 15, 0xab9423a7);
    +        self::step($I, $B, $C, $D, $A, $words[5], 21, 0xfc93a039);
    +        self::step($I, $A, $B, $C, $D, $words[12], 6, 0x655b59c3);
    +        self::step($I, $D, $A, $B, $C, $words[3], 10, 0x8f0ccc92);
    +        self::step($I, $C, $D, $A, $B, $words[10], 15, 0xffeff47d);
    +        self::step($I, $B, $C, $D, $A, $words[1], 21, 0x85845dd1);
    +        self::step($I, $A, $B, $C, $D, $words[8], 6, 0x6fa87e4f);
    +        self::step($I, $D, $A, $B, $C, $words[15], 10, 0xfe2ce6e0);
    +        self::step($I, $C, $D, $A, $B, $words[6], 15, 0xa3014314);
    +        self::step($I, $B, $C, $D, $A, $words[13], 21, 0x4e0811a1);
    +        self::step($I, $A, $B, $C, $D, $words[4], 6, 0xf7537e82);
    +        self::step($I, $D, $A, $B, $C, $words[11], 10, 0xbd3af235);
    +        self::step($I, $C, $D, $A, $B, $words[2], 15, 0x2ad7d2bb);
    +        self::step($I, $B, $C, $D, $A, $words[9], 21, 0xeb86d391);
    +
    +        $this->a = ($this->a + $A) & 0xffffffff;
    +        $this->b = ($this->b + $B) & 0xffffffff;
    +        $this->c = ($this->c + $C) & 0xffffffff;
    +        $this->d = ($this->d + $D) & 0xffffffff;
    +    }
    +
    +    private static function f($X, $Y, $Z)
    +    {
    +        return ($X & $Y) | ((~$X) & $Z); // X AND Y OR NOT X AND Z
    +    }
    +
    +    private static function g($X, $Y, $Z)
    +    {
    +        return ($X & $Z) | ($Y & (~$Z)); // X AND Z OR Y AND NOT Z
    +    }
    +
    +    private static function h($X, $Y, $Z)
    +    {
    +        return $X ^ $Y ^ $Z; // X XOR Y XOR Z
    +    }
    +
    +    private static function i($X, $Y, $Z)
    +    {
    +        return $Y ^ ($X | (~$Z)); // Y XOR (X OR NOT Z)
    +    }
    +
    +    private static function step($func, &$A, $B, $C, $D, $M, $s, $t)
    +    {
    +        $A = ($A + call_user_func($func, $B, $C, $D) + $M + $t) & 0xffffffff;
    +        $A = self::rotate($A, $s);
    +        $A = ($B + $A) & 0xffffffff;
    +    }
    +
    +    private static function rotate($decimal, $bits)
    +    {
    +        $binary = str_pad(decbin($decimal), 32, '0', STR_PAD_LEFT);
    +
    +        return bindec(substr($binary, $bits) . substr($binary, 0, $bits));
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/RC4.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/RC4.php
    new file mode 100644
    index 00000000000..691aca7c398
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/RC4.php
    @@ -0,0 +1,61 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xls;
    +
    +class RC4
    +{
    +    // Context
    +    protected $s = [];
    +
    +    protected $i = 0;
    +
    +    protected $j = 0;
    +
    +    /**
    +     * RC4 stream decryption/encryption constrcutor.
    +     *
    +     * @param string $key Encryption key/passphrase
    +     */
    +    public function __construct($key)
    +    {
    +        $len = strlen($key);
    +
    +        for ($this->i = 0; $this->i < 256; ++$this->i) {
    +            $this->s[$this->i] = $this->i;
    +        }
    +
    +        $this->j = 0;
    +        for ($this->i = 0; $this->i < 256; ++$this->i) {
    +            $this->j = ($this->j + $this->s[$this->i] + ord($key[$this->i % $len])) % 256;
    +            $t = $this->s[$this->i];
    +            $this->s[$this->i] = $this->s[$this->j];
    +            $this->s[$this->j] = $t;
    +        }
    +        $this->i = $this->j = 0;
    +    }
    +
    +    /**
    +     * Symmetric decryption/encryption function.
    +     *
    +     * @param string $data Data to encrypt/decrypt
    +     *
    +     * @return string
    +     */
    +    public function RC4($data)
    +    {
    +        $len = strlen($data);
    +        for ($c = 0; $c < $len; ++$c) {
    +            $this->i = ($this->i + 1) % 256;
    +            $this->j = ($this->j + $this->s[$this->i]) % 256;
    +            $t = $this->s[$this->i];
    +            $this->s[$this->i] = $this->s[$this->j];
    +            $this->s[$this->j] = $t;
    +
    +            $t = ($this->s[$this->i] + $this->s[$this->j]) % 256;
    +
    +            $data[$c] = chr(ord($data[$c]) ^ $this->s[$t]);
    +        }
    +
    +        return $data;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Style/Border.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Style/Border.php
    new file mode 100644
    index 00000000000..91cbe36f136
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Style/Border.php
    @@ -0,0 +1,42 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xls\Style;
    +
    +use PhpOffice\PhpSpreadsheet\Style\Border as StyleBorder;
    +
    +class Border
    +{
    +    protected static $map = [
    +        0x00 => StyleBorder::BORDER_NONE,
    +        0x01 => StyleBorder::BORDER_THIN,
    +        0x02 => StyleBorder::BORDER_MEDIUM,
    +        0x03 => StyleBorder::BORDER_DASHED,
    +        0x04 => StyleBorder::BORDER_DOTTED,
    +        0x05 => StyleBorder::BORDER_THICK,
    +        0x06 => StyleBorder::BORDER_DOUBLE,
    +        0x07 => StyleBorder::BORDER_HAIR,
    +        0x08 => StyleBorder::BORDER_MEDIUMDASHED,
    +        0x09 => StyleBorder::BORDER_DASHDOT,
    +        0x0A => StyleBorder::BORDER_MEDIUMDASHDOT,
    +        0x0B => StyleBorder::BORDER_DASHDOTDOT,
    +        0x0C => StyleBorder::BORDER_MEDIUMDASHDOTDOT,
    +        0x0D => StyleBorder::BORDER_SLANTDASHDOT,
    +    ];
    +
    +    /**
    +     * Map border style
    +     * OpenOffice documentation: 2.5.11.
    +     *
    +     * @param int $index
    +     *
    +     * @return string
    +     */
    +    public static function lookup($index)
    +    {
    +        if (isset(self::$map[$index])) {
    +            return self::$map[$index];
    +        }
    +
    +        return StyleBorder::BORDER_NONE;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Style/FillPattern.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Style/FillPattern.php
    new file mode 100644
    index 00000000000..7b85c088330
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xls/Style/FillPattern.php
    @@ -0,0 +1,47 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xls\Style;
    +
    +use PhpOffice\PhpSpreadsheet\Style\Fill;
    +
    +class FillPattern
    +{
    +    protected static $map = [
    +        0x00 => Fill::FILL_NONE,
    +        0x01 => Fill::FILL_SOLID,
    +        0x02 => Fill::FILL_PATTERN_MEDIUMGRAY,
    +        0x03 => Fill::FILL_PATTERN_DARKGRAY,
    +        0x04 => Fill::FILL_PATTERN_LIGHTGRAY,
    +        0x05 => Fill::FILL_PATTERN_DARKHORIZONTAL,
    +        0x06 => Fill::FILL_PATTERN_DARKVERTICAL,
    +        0x07 => Fill::FILL_PATTERN_DARKDOWN,
    +        0x08 => Fill::FILL_PATTERN_DARKUP,
    +        0x09 => Fill::FILL_PATTERN_DARKGRID,
    +        0x0A => Fill::FILL_PATTERN_DARKTRELLIS,
    +        0x0B => Fill::FILL_PATTERN_LIGHTHORIZONTAL,
    +        0x0C => Fill::FILL_PATTERN_LIGHTVERTICAL,
    +        0x0D => Fill::FILL_PATTERN_LIGHTDOWN,
    +        0x0E => Fill::FILL_PATTERN_LIGHTUP,
    +        0x0F => Fill::FILL_PATTERN_LIGHTGRID,
    +        0x10 => Fill::FILL_PATTERN_LIGHTTRELLIS,
    +        0x11 => Fill::FILL_PATTERN_GRAY125,
    +        0x12 => Fill::FILL_PATTERN_GRAY0625,
    +    ];
    +
    +    /**
    +     * Get fill pattern from index
    +     * OpenOffice documentation: 2.5.12.
    +     *
    +     * @param int $index
    +     *
    +     * @return string
    +     */
    +    public static function lookup($index)
    +    {
    +        if (isset(self::$map[$index])) {
    +            return self::$map[$index];
    +        }
    +
    +        return Fill::FILL_NONE;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xlsx.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xlsx.php
    new file mode 100644
    index 00000000000..335f5d7e99c
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xlsx.php
    @@ -0,0 +1,2604 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Cell\Hyperlink;
    +use PhpOffice\PhpSpreadsheet\Document\Properties;
    +use PhpOffice\PhpSpreadsheet\NamedRange;
    +use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner;
    +use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Chart;
    +use PhpOffice\PhpSpreadsheet\ReferenceHelper;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Settings;
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +use PhpOffice\PhpSpreadsheet\Shared\Drawing;
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +use PhpOffice\PhpSpreadsheet\Shared\Font;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\Border;
    +use PhpOffice\PhpSpreadsheet\Style\Borders;
    +use PhpOffice\PhpSpreadsheet\Style\Color;
    +use PhpOffice\PhpSpreadsheet\Style\Conditional;
    +use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
    +use PhpOffice\PhpSpreadsheet\Style\Protection;
    +use PhpOffice\PhpSpreadsheet\Style\Style;
    +use PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column;
    +use PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooterDrawing;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +use SimpleXMLElement;
    +use XMLReader;
    +use ZipArchive;
    +
    +class Xlsx extends BaseReader
    +{
    +    /**
    +     * ReferenceHelper instance.
    +     *
    +     * @var ReferenceHelper
    +     */
    +    private $referenceHelper;
    +
    +    /**
    +     * Xlsx\Theme instance.
    +     *
    +     * @var Xlsx\Theme
    +     */
    +    private static $theme = null;
    +
    +    /**
    +     * Create a new Xlsx Reader instance.
    +     */
    +    public function __construct()
    +    {
    +        $this->readFilter = new DefaultReadFilter();
    +        $this->referenceHelper = ReferenceHelper::getInstance();
    +        $this->securityScanner = XmlScanner::getInstance($this);
    +    }
    +
    +    /**
    +     * Can the current IReader read the file?
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return bool
    +     */
    +    public function canRead($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $xl = false;
    +        // Load file
    +        $zip = new ZipArchive();
    +        if ($zip->open($pFilename) === true) {
    +            // check if it is an OOXML archive
    +            $rels = simplexml_load_string(
    +                $this->securityScanner->scan(
    +                    $this->getFromZipArchive($zip, '_rels/.rels')
    +                ),
    +                'SimpleXMLElement',
    +                Settings::getLibXmlLoaderOptions()
    +            );
    +            if ($rels !== false) {
    +                foreach ($rels->Relationship as $rel) {
    +                    switch ($rel['Type']) {
    +                        case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument':
    +                            if (basename($rel['Target']) == 'workbook.xml') {
    +                                $xl = true;
    +                            }
    +
    +                            break;
    +                    }
    +                }
    +            }
    +            $zip->close();
    +        }
    +
    +        return $xl;
    +    }
    +
    +    /**
    +     * Reads names of the worksheets from a file, without parsing the whole file to a Spreadsheet object.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return array
    +     */
    +    public function listWorksheetNames($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $worksheetNames = [];
    +
    +        $zip = new ZipArchive();
    +        $zip->open($pFilename);
    +
    +        //    The files we're looking at here are small enough that simpleXML is more efficient than XMLReader
    +        //~ http://schemas.openxmlformats.org/package/2006/relationships");
    +        $rels = simplexml_load_string(
    +            $this->securityScanner->scan($this->getFromZipArchive($zip, '_rels/.rels'))
    +        );
    +        foreach ($rels->Relationship as $rel) {
    +            switch ($rel['Type']) {
    +                case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument':
    +                    //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"
    +                    $xmlWorkbook = simplexml_load_string(
    +                        $this->securityScanner->scan($this->getFromZipArchive($zip, "{$rel['Target']}"))
    +                    );
    +
    +                    if ($xmlWorkbook->sheets) {
    +                        foreach ($xmlWorkbook->sheets->sheet as $eleSheet) {
    +                            // Check if sheet should be skipped
    +                            $worksheetNames[] = (string) $eleSheet['name'];
    +                        }
    +                    }
    +            }
    +        }
    +
    +        $zip->close();
    +
    +        return $worksheetNames;
    +    }
    +
    +    /**
    +     * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns).
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return array
    +     */
    +    public function listWorksheetInfo($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $worksheetInfo = [];
    +
    +        $zip = new ZipArchive();
    +        $zip->open($pFilename);
    +
    +        //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +        $rels = simplexml_load_string(
    +            $this->securityScanner->scan($this->getFromZipArchive($zip, '_rels/.rels')),
    +            'SimpleXMLElement',
    +            Settings::getLibXmlLoaderOptions()
    +        );
    +        foreach ($rels->Relationship as $rel) {
    +            if ($rel['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument') {
    +                $dir = dirname($rel['Target']);
    +
    +                //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +                $relsWorkbook = simplexml_load_string(
    +                    $this->securityScanner->scan(
    +                        $this->getFromZipArchive($zip, "$dir/_rels/" . basename($rel['Target']) . '.rels')
    +                    ),
    +                    'SimpleXMLElement',
    +                    Settings::getLibXmlLoaderOptions()
    +                );
    +                $relsWorkbook->registerXPathNamespace('rel', 'http://schemas.openxmlformats.org/package/2006/relationships');
    +
    +                $worksheets = [];
    +                foreach ($relsWorkbook->Relationship as $ele) {
    +                    if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet') {
    +                        $worksheets[(string) $ele['Id']] = $ele['Target'];
    +                    }
    +                }
    +
    +                //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"
    +                $xmlWorkbook = simplexml_load_string(
    +                    $this->securityScanner->scan(
    +                        $this->getFromZipArchive($zip, "{$rel['Target']}")
    +                    ),
    +                    'SimpleXMLElement',
    +                    Settings::getLibXmlLoaderOptions()
    +                );
    +                if ($xmlWorkbook->sheets) {
    +                    $dir = dirname($rel['Target']);
    +                    /** @var SimpleXMLElement $eleSheet */
    +                    foreach ($xmlWorkbook->sheets->sheet as $eleSheet) {
    +                        $tmpInfo = [
    +                            'worksheetName' => (string) $eleSheet['name'],
    +                            'lastColumnLetter' => 'A',
    +                            'lastColumnIndex' => 0,
    +                            'totalRows' => 0,
    +                            'totalColumns' => 0,
    +                        ];
    +
    +                        $fileWorksheet = $worksheets[(string) self::getArrayItem($eleSheet->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'), 'id')];
    +
    +                        $xml = new XMLReader();
    +                        $xml->xml(
    +                            $this->securityScanner->scanFile(
    +                                'zip://' . File::realpath($pFilename) . '#' . "$dir/$fileWorksheet"
    +                            ),
    +                            null,
    +                            Settings::getLibXmlLoaderOptions()
    +                        );
    +                        $xml->setParserProperty(2, true);
    +
    +                        $currCells = 0;
    +                        while ($xml->read()) {
    +                            if ($xml->name == 'row' && $xml->nodeType == XMLReader::ELEMENT) {
    +                                $row = $xml->getAttribute('r');
    +                                $tmpInfo['totalRows'] = $row;
    +                                $tmpInfo['totalColumns'] = max($tmpInfo['totalColumns'], $currCells);
    +                                $currCells = 0;
    +                            } elseif ($xml->name == 'c' && $xml->nodeType == XMLReader::ELEMENT) {
    +                                ++$currCells;
    +                            }
    +                        }
    +                        $tmpInfo['totalColumns'] = max($tmpInfo['totalColumns'], $currCells);
    +                        $xml->close();
    +
    +                        $tmpInfo['lastColumnIndex'] = $tmpInfo['totalColumns'] - 1;
    +                        $tmpInfo['lastColumnLetter'] = Coordinate::stringFromColumnIndex($tmpInfo['lastColumnIndex'] + 1);
    +
    +                        $worksheetInfo[] = $tmpInfo;
    +                    }
    +                }
    +            }
    +        }
    +
    +        $zip->close();
    +
    +        return $worksheetInfo;
    +    }
    +
    +    private static function castToBoolean($c)
    +    {
    +        $value = isset($c->v) ? (string) $c->v : null;
    +        if ($value == '0') {
    +            return false;
    +        } elseif ($value == '1') {
    +            return true;
    +        }
    +
    +        return (bool) $c->v;
    +    }
    +
    +    private static function castToError($c)
    +    {
    +        return isset($c->v) ? (string) $c->v : null;
    +    }
    +
    +    private static function castToString($c)
    +    {
    +        return isset($c->v) ? (string) $c->v : null;
    +    }
    +
    +    private function castToFormula($c, $r, &$cellDataType, &$value, &$calculatedValue, &$sharedFormulas, $castBaseType)
    +    {
    +        $cellDataType = 'f';
    +        $value = "={$c->f}";
    +        $calculatedValue = self::$castBaseType($c);
    +
    +        // Shared formula?
    +        if (isset($c->f['t']) && strtolower((string) $c->f['t']) == 'shared') {
    +            $instance = (string) $c->f['si'];
    +
    +            if (!isset($sharedFormulas[(string) $c->f['si']])) {
    +                $sharedFormulas[$instance] = ['master' => $r, 'formula' => $value];
    +            } else {
    +                $master = Coordinate::coordinateFromString($sharedFormulas[$instance]['master']);
    +                $current = Coordinate::coordinateFromString($r);
    +
    +                $difference = [0, 0];
    +                $difference[0] = Coordinate::columnIndexFromString($current[0]) - Coordinate::columnIndexFromString($master[0]);
    +                $difference[1] = $current[1] - $master[1];
    +
    +                $value = $this->referenceHelper->updateFormulaReferences($sharedFormulas[$instance]['formula'], 'A1', $difference[0], $difference[1]);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * @param ZipArchive $archive
    +     * @param string $fileName
    +     *
    +     * @return string
    +     */
    +    private function getFromZipArchive(ZipArchive $archive, $fileName = '')
    +    {
    +        // Root-relative paths
    +        if (strpos($fileName, '//') !== false) {
    +            $fileName = substr($fileName, strpos($fileName, '//') + 1);
    +        }
    +        $fileName = File::realpath($fileName);
    +
    +        // Sadly, some 3rd party xlsx generators don't use consistent case for filenaming
    +        //    so we need to load case-insensitively from the zip file
    +
    +        // Apache POI fixes
    +        $contents = $archive->getFromName($fileName, 0, ZipArchive::FL_NOCASE);
    +        if ($contents === false) {
    +            $contents = $archive->getFromName(substr($fileName, 1), 0, ZipArchive::FL_NOCASE);
    +        }
    +
    +        return $contents;
    +    }
    +
    +    /**
    +     * Set Worksheet column attributes by attributes array passed.
    +     *
    +     * @param Worksheet $docSheet
    +     * @param string $column A, B, ... DX, ...
    +     * @param array $columnAttributes array of attributes (indexes are attribute name, values are value)
    +     *                               'xfIndex', 'visible', 'collapsed', 'outlineLevel', 'width', ... ?
    +     */
    +    private function setColumnAttributes(Worksheet $docSheet, $column, array $columnAttributes)
    +    {
    +        if (isset($columnAttributes['xfIndex'])) {
    +            $docSheet->getColumnDimension($column)->setXfIndex($columnAttributes['xfIndex']);
    +        }
    +        if (isset($columnAttributes['visible'])) {
    +            $docSheet->getColumnDimension($column)->setVisible($columnAttributes['visible']);
    +        }
    +        if (isset($columnAttributes['collapsed'])) {
    +            $docSheet->getColumnDimension($column)->setCollapsed($columnAttributes['collapsed']);
    +        }
    +        if (isset($columnAttributes['outlineLevel'])) {
    +            $docSheet->getColumnDimension($column)->setOutlineLevel($columnAttributes['outlineLevel']);
    +        }
    +        if (isset($columnAttributes['width'])) {
    +            $docSheet->getColumnDimension($column)->setWidth($columnAttributes['width']);
    +        }
    +    }
    +
    +    /**
    +     * Set Worksheet row attributes by attributes array passed.
    +     *
    +     * @param Worksheet $docSheet
    +     * @param int $row 1, 2, 3, ... 99, ...
    +     * @param array $rowAttributes array of attributes (indexes are attribute name, values are value)
    +     *                               'xfIndex', 'visible', 'collapsed', 'outlineLevel', 'rowHeight', ... ?
    +     */
    +    private function setRowAttributes(Worksheet $docSheet, $row, array $rowAttributes)
    +    {
    +        if (isset($rowAttributes['xfIndex'])) {
    +            $docSheet->getRowDimension($row)->setXfIndex($rowAttributes['xfIndex']);
    +        }
    +        if (isset($rowAttributes['visible'])) {
    +            $docSheet->getRowDimension($row)->setVisible($rowAttributes['visible']);
    +        }
    +        if (isset($rowAttributes['collapsed'])) {
    +            $docSheet->getRowDimension($row)->setCollapsed($rowAttributes['collapsed']);
    +        }
    +        if (isset($rowAttributes['outlineLevel'])) {
    +            $docSheet->getRowDimension($row)->setOutlineLevel($rowAttributes['outlineLevel']);
    +        }
    +        if (isset($rowAttributes['rowHeight'])) {
    +            $docSheet->getRowDimension($row)->setRowHeight($rowAttributes['rowHeight']);
    +        }
    +    }
    +
    +    /**
    +     * Loads Spreadsheet from file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function load($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        // Initialisations
    +        $excel = new Spreadsheet();
    +        $excel->removeSheetByIndex(0);
    +        if (!$this->readDataOnly) {
    +            $excel->removeCellStyleXfByIndex(0); // remove the default style
    +            $excel->removeCellXfByIndex(0); // remove the default style
    +        }
    +        $unparsedLoadedData = [];
    +
    +        $zip = new ZipArchive();
    +        $zip->open($pFilename);
    +
    +        //    Read the theme first, because we need the colour scheme when reading the styles
    +        //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +        $wbRels = simplexml_load_string(
    +            $this->securityScanner->scan($this->getFromZipArchive($zip, 'xl/_rels/workbook.xml.rels')),
    +            'SimpleXMLElement',
    +            Settings::getLibXmlLoaderOptions()
    +        );
    +        foreach ($wbRels->Relationship as $rel) {
    +            switch ($rel['Type']) {
    +                case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme':
    +                    $themeOrderArray = ['lt1', 'dk1', 'lt2', 'dk2'];
    +                    $themeOrderAdditional = count($themeOrderArray);
    +
    +                    $xmlTheme = simplexml_load_string(
    +                        $this->securityScanner->scan($this->getFromZipArchive($zip, "xl/{$rel['Target']}")),
    +                        'SimpleXMLElement',
    +                        Settings::getLibXmlLoaderOptions()
    +                    );
    +                    if (is_object($xmlTheme)) {
    +                        $xmlThemeName = $xmlTheme->attributes();
    +                        $xmlTheme = $xmlTheme->children('http://schemas.openxmlformats.org/drawingml/2006/main');
    +                        $themeName = (string) $xmlThemeName['name'];
    +
    +                        $colourScheme = $xmlTheme->themeElements->clrScheme->attributes();
    +                        $colourSchemeName = (string) $colourScheme['name'];
    +                        $colourScheme = $xmlTheme->themeElements->clrScheme->children('http://schemas.openxmlformats.org/drawingml/2006/main');
    +
    +                        $themeColours = [];
    +                        foreach ($colourScheme as $k => $xmlColour) {
    +                            $themePos = array_search($k, $themeOrderArray);
    +                            if ($themePos === false) {
    +                                $themePos = $themeOrderAdditional++;
    +                            }
    +                            if (isset($xmlColour->sysClr)) {
    +                                $xmlColourData = $xmlColour->sysClr->attributes();
    +                                $themeColours[$themePos] = $xmlColourData['lastClr'];
    +                            } elseif (isset($xmlColour->srgbClr)) {
    +                                $xmlColourData = $xmlColour->srgbClr->attributes();
    +                                $themeColours[$themePos] = $xmlColourData['val'];
    +                            }
    +                        }
    +                        self::$theme = new Xlsx\Theme($themeName, $colourSchemeName, $themeColours);
    +                    }
    +
    +                    break;
    +            }
    +        }
    +
    +        //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +        $rels = simplexml_load_string(
    +            $this->securityScanner->scan($this->getFromZipArchive($zip, '_rels/.rels')),
    +            'SimpleXMLElement',
    +            Settings::getLibXmlLoaderOptions()
    +        );
    +        foreach ($rels->Relationship as $rel) {
    +            switch ($rel['Type']) {
    +                case 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties':
    +                    $xmlCore = simplexml_load_string(
    +                        $this->securityScanner->scan($this->getFromZipArchive($zip, "{$rel['Target']}")),
    +                        'SimpleXMLElement',
    +                        Settings::getLibXmlLoaderOptions()
    +                    );
    +                    if (is_object($xmlCore)) {
    +                        $xmlCore->registerXPathNamespace('dc', 'http://purl.org/dc/elements/1.1/');
    +                        $xmlCore->registerXPathNamespace('dcterms', 'http://purl.org/dc/terms/');
    +                        $xmlCore->registerXPathNamespace('cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties');
    +                        $docProps = $excel->getProperties();
    +                        $docProps->setCreator((string) self::getArrayItem($xmlCore->xpath('dc:creator')));
    +                        $docProps->setLastModifiedBy((string) self::getArrayItem($xmlCore->xpath('cp:lastModifiedBy')));
    +                        $docProps->setCreated(strtotime(self::getArrayItem($xmlCore->xpath('dcterms:created')))); //! respect xsi:type
    +                        $docProps->setModified(strtotime(self::getArrayItem($xmlCore->xpath('dcterms:modified')))); //! respect xsi:type
    +                        $docProps->setTitle((string) self::getArrayItem($xmlCore->xpath('dc:title')));
    +                        $docProps->setDescription((string) self::getArrayItem($xmlCore->xpath('dc:description')));
    +                        $docProps->setSubject((string) self::getArrayItem($xmlCore->xpath('dc:subject')));
    +                        $docProps->setKeywords((string) self::getArrayItem($xmlCore->xpath('cp:keywords')));
    +                        $docProps->setCategory((string) self::getArrayItem($xmlCore->xpath('cp:category')));
    +                    }
    +
    +                    break;
    +                case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties':
    +                    $xmlCore = simplexml_load_string(
    +                        $this->securityScanner->scan($this->getFromZipArchive($zip, "{$rel['Target']}")),
    +                        'SimpleXMLElement',
    +                        Settings::getLibXmlLoaderOptions()
    +                    );
    +                    if (is_object($xmlCore)) {
    +                        $docProps = $excel->getProperties();
    +                        if (isset($xmlCore->Company)) {
    +                            $docProps->setCompany((string) $xmlCore->Company);
    +                        }
    +                        if (isset($xmlCore->Manager)) {
    +                            $docProps->setManager((string) $xmlCore->Manager);
    +                        }
    +                    }
    +
    +                    break;
    +                case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties':
    +                    $xmlCore = simplexml_load_string(
    +                        $this->securityScanner->scan($this->getFromZipArchive($zip, "{$rel['Target']}")),
    +                        'SimpleXMLElement',
    +                        Settings::getLibXmlLoaderOptions()
    +                    );
    +                    if (is_object($xmlCore)) {
    +                        $docProps = $excel->getProperties();
    +                        /** @var SimpleXMLElement $xmlProperty */
    +                        foreach ($xmlCore as $xmlProperty) {
    +                            $cellDataOfficeAttributes = $xmlProperty->attributes();
    +                            if (isset($cellDataOfficeAttributes['name'])) {
    +                                $propertyName = (string) $cellDataOfficeAttributes['name'];
    +                                $cellDataOfficeChildren = $xmlProperty->children('http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
    +                                $attributeType = $cellDataOfficeChildren->getName();
    +                                $attributeValue = (string) $cellDataOfficeChildren->{$attributeType};
    +                                $attributeValue = Properties::convertProperty($attributeValue, $attributeType);
    +                                $attributeType = Properties::convertPropertyType($attributeType);
    +                                $docProps->setCustomProperty($propertyName, $attributeValue, $attributeType);
    +                            }
    +                        }
    +                    }
    +
    +                    break;
    +                //Ribbon
    +                case 'http://schemas.microsoft.com/office/2006/relationships/ui/extensibility':
    +                    $customUI = $rel['Target'];
    +                    if ($customUI !== null) {
    +                        $this->readRibbon($excel, $customUI, $zip);
    +                    }
    +
    +                    break;
    +                case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument':
    +                    $dir = dirname($rel['Target']);
    +                    //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +                    $relsWorkbook = simplexml_load_string(
    +                        $this->securityScanner->scan($this->getFromZipArchive($zip, "$dir/_rels/" . basename($rel['Target']) . '.rels')),
    +                        'SimpleXMLElement',
    +                        Settings::getLibXmlLoaderOptions()
    +                    );
    +                    $relsWorkbook->registerXPathNamespace('rel', 'http://schemas.openxmlformats.org/package/2006/relationships');
    +
    +                    $sharedStrings = [];
    +                    $xpath = self::getArrayItem($relsWorkbook->xpath("rel:Relationship[@Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings']"));
    +                    //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"
    +                    $xmlStrings = simplexml_load_string(
    +                        $this->securityScanner->scan($this->getFromZipArchive($zip, "$dir/$xpath[Target]")),
    +                        'SimpleXMLElement',
    +                        Settings::getLibXmlLoaderOptions()
    +                    );
    +                    if (isset($xmlStrings, $xmlStrings->si)) {
    +                        foreach ($xmlStrings->si as $val) {
    +                            if (isset($val->t)) {
    +                                $sharedStrings[] = StringHelper::controlCharacterOOXML2PHP((string) $val->t);
    +                            } elseif (isset($val->r)) {
    +                                $sharedStrings[] = $this->parseRichText($val);
    +                            }
    +                        }
    +                    }
    +
    +                    $worksheets = [];
    +                    $macros = $customUI = null;
    +                    foreach ($relsWorkbook->Relationship as $ele) {
    +                        switch ($ele['Type']) {
    +                            case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet':
    +                                $worksheets[(string) $ele['Id']] = $ele['Target'];
    +
    +                                break;
    +                            // a vbaProject ? (: some macros)
    +                            case 'http://schemas.microsoft.com/office/2006/relationships/vbaProject':
    +                                $macros = $ele['Target'];
    +
    +                                break;
    +                        }
    +                    }
    +
    +                    if ($macros !== null) {
    +                        $macrosCode = $this->getFromZipArchive($zip, 'xl/vbaProject.bin'); //vbaProject.bin always in 'xl' dir and always named vbaProject.bin
    +                        if ($macrosCode !== false) {
    +                            $excel->setMacrosCode($macrosCode);
    +                            $excel->setHasMacros(true);
    +                            //short-circuit : not reading vbaProject.bin.rel to get Signature =>allways vbaProjectSignature.bin in 'xl' dir
    +                            $Certificate = $this->getFromZipArchive($zip, 'xl/vbaProjectSignature.bin');
    +                            if ($Certificate !== false) {
    +                                $excel->setMacrosCertificate($Certificate);
    +                            }
    +                        }
    +                    }
    +                    $styles = [];
    +                    $cellStyles = [];
    +                    $xpath = self::getArrayItem($relsWorkbook->xpath("rel:Relationship[@Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles']"));
    +                    //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"
    +                    $xmlStyles = simplexml_load_string(
    +                        $this->securityScanner->scan($this->getFromZipArchive($zip, "$dir/$xpath[Target]")),
    +                        'SimpleXMLElement',
    +                        Settings::getLibXmlLoaderOptions()
    +                    );
    +                    $numFmts = null;
    +                    if ($xmlStyles && $xmlStyles->numFmts[0]) {
    +                        $numFmts = $xmlStyles->numFmts[0];
    +                    }
    +                    if (isset($numFmts) && ($numFmts !== null)) {
    +                        $numFmts->registerXPathNamespace('sml', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
    +                    }
    +                    if (!$this->readDataOnly && $xmlStyles) {
    +                        foreach ($xmlStyles->cellXfs->xf as $xf) {
    +                            $numFmt = NumberFormat::FORMAT_GENERAL;
    +
    +                            if ($xf['numFmtId']) {
    +                                if (isset($numFmts)) {
    +                                    $tmpNumFmt = self::getArrayItem($numFmts->xpath("sml:numFmt[@numFmtId=$xf[numFmtId]]"));
    +
    +                                    if (isset($tmpNumFmt['formatCode'])) {
    +                                        $numFmt = (string) $tmpNumFmt['formatCode'];
    +                                    }
    +                                }
    +
    +                                // We shouldn't override any of the built-in MS Excel values (values below id 164)
    +                                //  But there's a lot of naughty homebrew xlsx writers that do use "reserved" id values that aren't actually used
    +                                //  So we make allowance for them rather than lose formatting masks
    +                                if ((int) $xf['numFmtId'] < 164 &&
    +                                    NumberFormat::builtInFormatCode((int) $xf['numFmtId']) !== '') {
    +                                    $numFmt = NumberFormat::builtInFormatCode((int) $xf['numFmtId']);
    +                                }
    +                            }
    +                            $quotePrefix = false;
    +                            if (isset($xf['quotePrefix'])) {
    +                                $quotePrefix = (bool) $xf['quotePrefix'];
    +                            }
    +
    +                            $style = (object) [
    +                                'numFmt' => $numFmt,
    +                                'font' => $xmlStyles->fonts->font[(int) ($xf['fontId'])],
    +                                'fill' => $xmlStyles->fills->fill[(int) ($xf['fillId'])],
    +                                'border' => $xmlStyles->borders->border[(int) ($xf['borderId'])],
    +                                'alignment' => $xf->alignment,
    +                                'protection' => $xf->protection,
    +                                'quotePrefix' => $quotePrefix,
    +                            ];
    +                            $styles[] = $style;
    +
    +                            // add style to cellXf collection
    +                            $objStyle = new Style();
    +                            self::readStyle($objStyle, $style);
    +                            $excel->addCellXf($objStyle);
    +                        }
    +
    +                        foreach (isset($xmlStyles->cellStyleXfs->xf) ? $xmlStyles->cellStyleXfs->xf : [] as $xf) {
    +                            $numFmt = NumberFormat::FORMAT_GENERAL;
    +                            if ($numFmts && $xf['numFmtId']) {
    +                                $tmpNumFmt = self::getArrayItem($numFmts->xpath("sml:numFmt[@numFmtId=$xf[numFmtId]]"));
    +                                if (isset($tmpNumFmt['formatCode'])) {
    +                                    $numFmt = (string) $tmpNumFmt['formatCode'];
    +                                } elseif ((int) $xf['numFmtId'] < 165) {
    +                                    $numFmt = NumberFormat::builtInFormatCode((int) $xf['numFmtId']);
    +                                }
    +                            }
    +
    +                            $cellStyle = (object) [
    +                                'numFmt' => $numFmt,
    +                                'font' => $xmlStyles->fonts->font[(int) ($xf['fontId'])],
    +                                'fill' => $xmlStyles->fills->fill[(int) ($xf['fillId'])],
    +                                'border' => $xmlStyles->borders->border[(int) ($xf['borderId'])],
    +                                'alignment' => $xf->alignment,
    +                                'protection' => $xf->protection,
    +                                'quotePrefix' => $quotePrefix,
    +                            ];
    +                            $cellStyles[] = $cellStyle;
    +
    +                            // add style to cellStyleXf collection
    +                            $objStyle = new Style();
    +                            self::readStyle($objStyle, $cellStyle);
    +                            $excel->addCellStyleXf($objStyle);
    +                        }
    +                    }
    +
    +                    $dxfs = [];
    +                    if (!$this->readDataOnly && $xmlStyles) {
    +                        //    Conditional Styles
    +                        if ($xmlStyles->dxfs) {
    +                            foreach ($xmlStyles->dxfs->dxf as $dxf) {
    +                                $style = new Style(false, true);
    +                                self::readStyle($style, $dxf);
    +                                $dxfs[] = $style;
    +                            }
    +                        }
    +                        //    Cell Styles
    +                        if ($xmlStyles->cellStyles) {
    +                            foreach ($xmlStyles->cellStyles->cellStyle as $cellStyle) {
    +                                if ((int) ($cellStyle['builtinId']) == 0) {
    +                                    if (isset($cellStyles[(int) ($cellStyle['xfId'])])) {
    +                                        // Set default style
    +                                        $style = new Style();
    +                                        self::readStyle($style, $cellStyles[(int) ($cellStyle['xfId'])]);
    +
    +                                        // normal style, currently not using it for anything
    +                                    }
    +                                }
    +                            }
    +                        }
    +                    }
    +
    +                    //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"
    +                    $xmlWorkbook = simplexml_load_string(
    +                        $this->securityScanner->scan($this->getFromZipArchive($zip, "{$rel['Target']}")),
    +                        'SimpleXMLElement',
    +                        Settings::getLibXmlLoaderOptions()
    +                    );
    +
    +                    // Set base date
    +                    if ($xmlWorkbook->workbookPr) {
    +                        Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900);
    +                        if (isset($xmlWorkbook->workbookPr['date1904'])) {
    +                            if (self::boolean((string) $xmlWorkbook->workbookPr['date1904'])) {
    +                                Date::setExcelCalendar(Date::CALENDAR_MAC_1904);
    +                            }
    +                        }
    +                    }
    +
    +                    // Set protection
    +                    $this->readProtection($excel, $xmlWorkbook);
    +
    +                    $sheetId = 0; // keep track of new sheet id in final workbook
    +                    $oldSheetId = -1; // keep track of old sheet id in final workbook
    +                    $countSkippedSheets = 0; // keep track of number of skipped sheets
    +                    $mapSheetId = []; // mapping of sheet ids from old to new
    +
    +                    $charts = $chartDetails = [];
    +
    +                    if ($xmlWorkbook->sheets) {
    +                        /** @var SimpleXMLElement $eleSheet */
    +                        foreach ($xmlWorkbook->sheets->sheet as $eleSheet) {
    +                            ++$oldSheetId;
    +
    +                            // Check if sheet should be skipped
    +                            if (isset($this->loadSheetsOnly) && !in_array((string) $eleSheet['name'], $this->loadSheetsOnly)) {
    +                                ++$countSkippedSheets;
    +                                $mapSheetId[$oldSheetId] = null;
    +
    +                                continue;
    +                            }
    +
    +                            // Map old sheet id in original workbook to new sheet id.
    +                            // They will differ if loadSheetsOnly() is being used
    +                            $mapSheetId[$oldSheetId] = $oldSheetId - $countSkippedSheets;
    +
    +                            // Load sheet
    +                            $docSheet = $excel->createSheet();
    +                            //    Use false for $updateFormulaCellReferences to prevent adjustment of worksheet
    +                            //        references in formula cells... during the load, all formulae should be correct,
    +                            //        and we're simply bringing the worksheet name in line with the formula, not the
    +                            //        reverse
    +                            $docSheet->setTitle((string) $eleSheet['name'], false, false);
    +                            $fileWorksheet = $worksheets[(string) self::getArrayItem($eleSheet->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'), 'id')];
    +                            //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main"
    +                            $xmlSheet = simplexml_load_string(
    +                                $this->securityScanner->scan($this->getFromZipArchive($zip, "$dir/$fileWorksheet")),
    +                                'SimpleXMLElement',
    +                                Settings::getLibXmlLoaderOptions()
    +                            );
    +
    +                            $sharedFormulas = [];
    +
    +                            if (isset($eleSheet['state']) && (string) $eleSheet['state'] != '') {
    +                                $docSheet->setSheetState((string) $eleSheet['state']);
    +                            }
    +
    +                            if (isset($xmlSheet->sheetViews, $xmlSheet->sheetViews->sheetView)) {
    +                                if (isset($xmlSheet->sheetViews->sheetView['zoomScale'])) {
    +                                    $zoomScale = (int) ($xmlSheet->sheetViews->sheetView['zoomScale']);
    +                                    if ($zoomScale <= 0) {
    +                                        // setZoomScale will throw an Exception if the scale is less than or equals 0
    +                                        // that is OK when manually creating documents, but we should be able to read all documents
    +                                        $zoomScale = 100;
    +                                    }
    +
    +                                    $docSheet->getSheetView()->setZoomScale($zoomScale);
    +                                }
    +                                if (isset($xmlSheet->sheetViews->sheetView['zoomScaleNormal'])) {
    +                                    $zoomScaleNormal = (int) ($xmlSheet->sheetViews->sheetView['zoomScaleNormal']);
    +                                    if ($zoomScaleNormal <= 0) {
    +                                        // setZoomScaleNormal will throw an Exception if the scale is less than or equals 0
    +                                        // that is OK when manually creating documents, but we should be able to read all documents
    +                                        $zoomScaleNormal = 100;
    +                                    }
    +
    +                                    $docSheet->getSheetView()->setZoomScaleNormal($zoomScaleNormal);
    +                                }
    +                                if (isset($xmlSheet->sheetViews->sheetView['view'])) {
    +                                    $docSheet->getSheetView()->setView((string) $xmlSheet->sheetViews->sheetView['view']);
    +                                }
    +                                if (isset($xmlSheet->sheetViews->sheetView['showGridLines'])) {
    +                                    $docSheet->setShowGridLines(self::boolean((string) $xmlSheet->sheetViews->sheetView['showGridLines']));
    +                                }
    +                                if (isset($xmlSheet->sheetViews->sheetView['showRowColHeaders'])) {
    +                                    $docSheet->setShowRowColHeaders(self::boolean((string) $xmlSheet->sheetViews->sheetView['showRowColHeaders']));
    +                                }
    +                                if (isset($xmlSheet->sheetViews->sheetView['rightToLeft'])) {
    +                                    $docSheet->setRightToLeft(self::boolean((string) $xmlSheet->sheetViews->sheetView['rightToLeft']));
    +                                }
    +                                if (isset($xmlSheet->sheetViews->sheetView->pane)) {
    +                                    $xSplit = 0;
    +                                    $ySplit = 0;
    +                                    $topLeftCell = null;
    +
    +                                    if (isset($xmlSheet->sheetViews->sheetView->pane['xSplit'])) {
    +                                        $xSplit = (int) ($xmlSheet->sheetViews->sheetView->pane['xSplit']);
    +                                    }
    +
    +                                    if (isset($xmlSheet->sheetViews->sheetView->pane['ySplit'])) {
    +                                        $ySplit = (int) ($xmlSheet->sheetViews->sheetView->pane['ySplit']);
    +                                    }
    +
    +                                    if (isset($xmlSheet->sheetViews->sheetView->pane['topLeftCell'])) {
    +                                        $topLeftCell = (string) $xmlSheet->sheetViews->sheetView->pane['topLeftCell'];
    +                                    }
    +
    +                                    $docSheet->freezePane(Coordinate::stringFromColumnIndex($xSplit + 1) . ($ySplit + 1), $topLeftCell);
    +                                }
    +
    +                                if (isset($xmlSheet->sheetViews->sheetView->selection)) {
    +                                    if (isset($xmlSheet->sheetViews->sheetView->selection['sqref'])) {
    +                                        $sqref = (string) $xmlSheet->sheetViews->sheetView->selection['sqref'];
    +                                        $sqref = explode(' ', $sqref);
    +                                        $sqref = $sqref[0];
    +                                        $docSheet->setSelectedCells($sqref);
    +                                    }
    +                                }
    +                            }
    +
    +                            if (isset($xmlSheet->sheetPr, $xmlSheet->sheetPr->tabColor)) {
    +                                if (isset($xmlSheet->sheetPr->tabColor['rgb'])) {
    +                                    $docSheet->getTabColor()->setARGB((string) $xmlSheet->sheetPr->tabColor['rgb']);
    +                                }
    +                            }
    +                            if (isset($xmlSheet->sheetPr, $xmlSheet->sheetPr['codeName'])) {
    +                                $docSheet->setCodeName((string) $xmlSheet->sheetPr['codeName'], false);
    +                            }
    +                            if (isset($xmlSheet->sheetPr, $xmlSheet->sheetPr->outlinePr)) {
    +                                if (isset($xmlSheet->sheetPr->outlinePr['summaryRight']) &&
    +                                    !self::boolean((string) $xmlSheet->sheetPr->outlinePr['summaryRight'])) {
    +                                    $docSheet->setShowSummaryRight(false);
    +                                } else {
    +                                    $docSheet->setShowSummaryRight(true);
    +                                }
    +
    +                                if (isset($xmlSheet->sheetPr->outlinePr['summaryBelow']) &&
    +                                    !self::boolean((string) $xmlSheet->sheetPr->outlinePr['summaryBelow'])) {
    +                                    $docSheet->setShowSummaryBelow(false);
    +                                } else {
    +                                    $docSheet->setShowSummaryBelow(true);
    +                                }
    +                            }
    +
    +                            if (isset($xmlSheet->sheetPr, $xmlSheet->sheetPr->pageSetUpPr)) {
    +                                if (isset($xmlSheet->sheetPr->pageSetUpPr['fitToPage']) &&
    +                                    !self::boolean((string) $xmlSheet->sheetPr->pageSetUpPr['fitToPage'])) {
    +                                    $docSheet->getPageSetup()->setFitToPage(false);
    +                                } else {
    +                                    $docSheet->getPageSetup()->setFitToPage(true);
    +                                }
    +                            }
    +
    +                            if (isset($xmlSheet->sheetFormatPr)) {
    +                                if (isset($xmlSheet->sheetFormatPr['customHeight']) &&
    +                                    self::boolean((string) $xmlSheet->sheetFormatPr['customHeight']) &&
    +                                    isset($xmlSheet->sheetFormatPr['defaultRowHeight'])) {
    +                                    $docSheet->getDefaultRowDimension()->setRowHeight((float) $xmlSheet->sheetFormatPr['defaultRowHeight']);
    +                                }
    +                                if (isset($xmlSheet->sheetFormatPr['defaultColWidth'])) {
    +                                    $docSheet->getDefaultColumnDimension()->setWidth((float) $xmlSheet->sheetFormatPr['defaultColWidth']);
    +                                }
    +                                if (isset($xmlSheet->sheetFormatPr['zeroHeight']) &&
    +                                    ((string) $xmlSheet->sheetFormatPr['zeroHeight'] == '1')) {
    +                                    $docSheet->getDefaultRowDimension()->setZeroHeight(true);
    +                                }
    +                            }
    +
    +                            if (isset($xmlSheet->printOptions) && !$this->readDataOnly) {
    +                                if (self::boolean((string) $xmlSheet->printOptions['gridLinesSet'])) {
    +                                    $docSheet->setShowGridlines(true);
    +                                }
    +                                if (self::boolean((string) $xmlSheet->printOptions['gridLines'])) {
    +                                    $docSheet->setPrintGridlines(true);
    +                                }
    +                                if (self::boolean((string) $xmlSheet->printOptions['horizontalCentered'])) {
    +                                    $docSheet->getPageSetup()->setHorizontalCentered(true);
    +                                }
    +                                if (self::boolean((string) $xmlSheet->printOptions['verticalCentered'])) {
    +                                    $docSheet->getPageSetup()->setVerticalCentered(true);
    +                                }
    +                            }
    +
    +                            $this->readColumnsAndRowsAttributes($xmlSheet, $docSheet);
    +
    +                            if ($xmlSheet && $xmlSheet->sheetData && $xmlSheet->sheetData->row) {
    +                                $cIndex = 1; // Cell Start from 1
    +                                foreach ($xmlSheet->sheetData->row as $row) {
    +                                    $rowIndex = 1;
    +                                    foreach ($row->c as $c) {
    +                                        $r = (string) $c['r'];
    +                                        if ($r == '') {
    +                                            $r = Coordinate::stringFromColumnIndex($rowIndex) . $cIndex;
    +                                        }
    +                                        $cellDataType = (string) $c['t'];
    +                                        $value = null;
    +                                        $calculatedValue = null;
    +
    +                                        // Read cell?
    +                                        if ($this->getReadFilter() !== null) {
    +                                            $coordinates = Coordinate::coordinateFromString($r);
    +
    +                                            if (!$this->getReadFilter()->readCell($coordinates[0], (int) $coordinates[1], $docSheet->getTitle())) {
    +                                                $rowIndex += 1;
    +
    +                                                continue;
    +                                            }
    +                                        }
    +
    +                                        // Read cell!
    +                                        switch ($cellDataType) {
    +                                            case 's':
    +                                                if ((string) $c->v != '') {
    +                                                    $value = $sharedStrings[(int) ($c->v)];
    +
    +                                                    if ($value instanceof RichText) {
    +                                                        $value = clone $value;
    +                                                    }
    +                                                } else {
    +                                                    $value = '';
    +                                                }
    +
    +                                                break;
    +                                            case 'b':
    +                                                if (!isset($c->f)) {
    +                                                    $value = self::castToBoolean($c);
    +                                                } else {
    +                                                    // Formula
    +                                                    $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToBoolean');
    +                                                    if (isset($c->f['t'])) {
    +                                                        $att = $c->f;
    +                                                        $docSheet->getCell($r)->setFormulaAttributes($att);
    +                                                    }
    +                                                }
    +
    +                                                break;
    +                                            case 'inlineStr':
    +                                                if (isset($c->f)) {
    +                                                    $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError');
    +                                                } else {
    +                                                    $value = $this->parseRichText($c->is);
    +                                                }
    +
    +                                                break;
    +                                            case 'e':
    +                                                if (!isset($c->f)) {
    +                                                    $value = self::castToError($c);
    +                                                } else {
    +                                                    // Formula
    +                                                    $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError');
    +                                                }
    +
    +                                                break;
    +                                            default:
    +                                                if (!isset($c->f)) {
    +                                                    $value = self::castToString($c);
    +                                                } else {
    +                                                    // Formula
    +                                                    $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToString');
    +                                                }
    +
    +                                                break;
    +                                        }
    +
    +                                        // Check for numeric values
    +                                        if (is_numeric($value) && $cellDataType != 's') {
    +                                            if ($value == (int) $value) {
    +                                                $value = (int) $value;
    +                                            } elseif ($value == (float) $value) {
    +                                                $value = (float) $value;
    +                                            } elseif ($value == (float) $value) {
    +                                                $value = (float) $value;
    +                                            }
    +                                        }
    +
    +                                        // Rich text?
    +                                        if ($value instanceof RichText && $this->readDataOnly) {
    +                                            $value = $value->getPlainText();
    +                                        }
    +
    +                                        $cell = $docSheet->getCell($r);
    +                                        // Assign value
    +                                        if ($cellDataType != '') {
    +                                            $cell->setValueExplicit($value, $cellDataType);
    +                                        } else {
    +                                            $cell->setValue($value);
    +                                        }
    +                                        if ($calculatedValue !== null) {
    +                                            $cell->setCalculatedValue($calculatedValue);
    +                                        }
    +
    +                                        // Style information?
    +                                        if ($c['s'] && !$this->readDataOnly) {
    +                                            // no style index means 0, it seems
    +                                            $cell->setXfIndex(isset($styles[(int) ($c['s'])]) ?
    +                                                (int) ($c['s']) : 0);
    +                                        }
    +                                        $rowIndex += 1;
    +                                    }
    +                                    $cIndex += 1;
    +                                }
    +                            }
    +
    +                            $conditionals = [];
    +                            if (!$this->readDataOnly && $xmlSheet && $xmlSheet->conditionalFormatting) {
    +                                foreach ($xmlSheet->conditionalFormatting as $conditional) {
    +                                    foreach ($conditional->cfRule as $cfRule) {
    +                                        if (((string) $cfRule['type'] == Conditional::CONDITION_NONE || (string) $cfRule['type'] == Conditional::CONDITION_CELLIS || (string) $cfRule['type'] == Conditional::CONDITION_CONTAINSTEXT || (string) $cfRule['type'] == Conditional::CONDITION_EXPRESSION) && isset($dxfs[(int) ($cfRule['dxfId'])])) {
    +                                            $conditionals[(string) $conditional['sqref']][(int) ($cfRule['priority'])] = $cfRule;
    +                                        }
    +                                    }
    +                                }
    +
    +                                foreach ($conditionals as $ref => $cfRules) {
    +                                    ksort($cfRules);
    +                                    $conditionalStyles = [];
    +                                    foreach ($cfRules as $cfRule) {
    +                                        $objConditional = new Conditional();
    +                                        $objConditional->setConditionType((string) $cfRule['type']);
    +                                        $objConditional->setOperatorType((string) $cfRule['operator']);
    +
    +                                        if ((string) $cfRule['text'] != '') {
    +                                            $objConditional->setText((string) $cfRule['text']);
    +                                        }
    +
    +                                        if (isset($cfRule['stopIfTrue']) && (int) $cfRule['stopIfTrue'] === 1) {
    +                                            $objConditional->setStopIfTrue(true);
    +                                        }
    +
    +                                        if (count($cfRule->formula) > 1) {
    +                                            foreach ($cfRule->formula as $formula) {
    +                                                $objConditional->addCondition((string) $formula);
    +                                            }
    +                                        } else {
    +                                            $objConditional->addCondition((string) $cfRule->formula);
    +                                        }
    +                                        $objConditional->setStyle(clone $dxfs[(int) ($cfRule['dxfId'])]);
    +                                        $conditionalStyles[] = $objConditional;
    +                                    }
    +
    +                                    // Extract all cell references in $ref
    +                                    $cellBlocks = explode(' ', str_replace('$', '', strtoupper($ref)));
    +                                    foreach ($cellBlocks as $cellBlock) {
    +                                        $docSheet->getStyle($cellBlock)->setConditionalStyles($conditionalStyles);
    +                                    }
    +                                }
    +                            }
    +
    +                            $aKeys = ['sheet', 'objects', 'scenarios', 'formatCells', 'formatColumns', 'formatRows', 'insertColumns', 'insertRows', 'insertHyperlinks', 'deleteColumns', 'deleteRows', 'selectLockedCells', 'sort', 'autoFilter', 'pivotTables', 'selectUnlockedCells'];
    +                            if (!$this->readDataOnly && $xmlSheet && $xmlSheet->sheetProtection) {
    +                                foreach ($aKeys as $key) {
    +                                    $method = 'set' . ucfirst($key);
    +                                    $docSheet->getProtection()->$method(self::boolean((string) $xmlSheet->sheetProtection[$key]));
    +                                }
    +                            }
    +
    +                            if (!$this->readDataOnly && $xmlSheet && $xmlSheet->sheetProtection) {
    +                                $docSheet->getProtection()->setPassword((string) $xmlSheet->sheetProtection['password'], true);
    +                                if ($xmlSheet->protectedRanges->protectedRange) {
    +                                    foreach ($xmlSheet->protectedRanges->protectedRange as $protectedRange) {
    +                                        $docSheet->protectCells((string) $protectedRange['sqref'], (string) $protectedRange['password'], true);
    +                                    }
    +                                }
    +                            }
    +
    +                            if ($xmlSheet && $xmlSheet->autoFilter && !$this->readDataOnly) {
    +                                $autoFilterRange = (string) $xmlSheet->autoFilter['ref'];
    +                                if (strpos($autoFilterRange, ':') !== false) {
    +                                    $autoFilter = $docSheet->getAutoFilter();
    +                                    $autoFilter->setRange($autoFilterRange);
    +
    +                                    foreach ($xmlSheet->autoFilter->filterColumn as $filterColumn) {
    +                                        $column = $autoFilter->getColumnByOffset((int) $filterColumn['colId']);
    +                                        //    Check for standard filters
    +                                        if ($filterColumn->filters) {
    +                                            $column->setFilterType(Column::AUTOFILTER_FILTERTYPE_FILTER);
    +                                            $filters = $filterColumn->filters;
    +                                            if ((isset($filters['blank'])) && ($filters['blank'] == 1)) {
    +                                                //    Operator is undefined, but always treated as EQUAL
    +                                                $column->createRule()->setRule(null, '')->setRuleType(Column\Rule::AUTOFILTER_RULETYPE_FILTER);
    +                                            }
    +                                            //    Standard filters are always an OR join, so no join rule needs to be set
    +                                            //    Entries can be either filter elements
    +                                            foreach ($filters->filter as $filterRule) {
    +                                                //    Operator is undefined, but always treated as EQUAL
    +                                                $column->createRule()->setRule(null, (string) $filterRule['val'])->setRuleType(Column\Rule::AUTOFILTER_RULETYPE_FILTER);
    +                                            }
    +                                            //    Or Date Group elements
    +                                            foreach ($filters->dateGroupItem as $dateGroupItem) {
    +                                                //    Operator is undefined, but always treated as EQUAL
    +                                                $column->createRule()->setRule(
    +                                                    null,
    +                                                    [
    +                                                        'year' => (string) $dateGroupItem['year'],
    +                                                        'month' => (string) $dateGroupItem['month'],
    +                                                        'day' => (string) $dateGroupItem['day'],
    +                                                        'hour' => (string) $dateGroupItem['hour'],
    +                                                        'minute' => (string) $dateGroupItem['minute'],
    +                                                        'second' => (string) $dateGroupItem['second'],
    +                                                    ],
    +                                                    (string) $dateGroupItem['dateTimeGrouping']
    +                                                )
    +                                                    ->setRuleType(Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP);
    +                                            }
    +                                        }
    +                                        //    Check for custom filters
    +                                        if ($filterColumn->customFilters) {
    +                                            $column->setFilterType(Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER);
    +                                            $customFilters = $filterColumn->customFilters;
    +                                            //    Custom filters can an AND or an OR join;
    +                                            //        and there should only ever be one or two entries
    +                                            if ((isset($customFilters['and'])) && ($customFilters['and'] == 1)) {
    +                                                $column->setJoin(Column::AUTOFILTER_COLUMN_JOIN_AND);
    +                                            }
    +                                            foreach ($customFilters->customFilter as $filterRule) {
    +                                                $column->createRule()->setRule(
    +                                                    (string) $filterRule['operator'],
    +                                                    (string) $filterRule['val']
    +                                                )
    +                                                    ->setRuleType(Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
    +                                            }
    +                                        }
    +                                        //    Check for dynamic filters
    +                                        if ($filterColumn->dynamicFilter) {
    +                                            $column->setFilterType(Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER);
    +                                            //    We should only ever have one dynamic filter
    +                                            foreach ($filterColumn->dynamicFilter as $filterRule) {
    +                                                //    Operator is undefined, but always treated as EQUAL
    +                                                $column->createRule()->setRule(
    +                                                    null,
    +                                                    (string) $filterRule['val'],
    +                                                    (string) $filterRule['type']
    +                                                )
    +                                                    ->setRuleType(Column\Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER);
    +                                                if (isset($filterRule['val'])) {
    +                                                    $column->setAttribute('val', (string) $filterRule['val']);
    +                                                }
    +                                                if (isset($filterRule['maxVal'])) {
    +                                                    $column->setAttribute('maxVal', (string) $filterRule['maxVal']);
    +                                                }
    +                                            }
    +                                        }
    +                                        //    Check for dynamic filters
    +                                        if ($filterColumn->top10) {
    +                                            $column->setFilterType(Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER);
    +                                            //    We should only ever have one top10 filter
    +                                            foreach ($filterColumn->top10 as $filterRule) {
    +                                                $column->createRule()->setRule(
    +                                                    (((isset($filterRule['percent'])) && ($filterRule['percent'] == 1))
    +                                                        ? Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT
    +                                                        : Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE
    +                                                    ),
    +                                                    (string) $filterRule['val'],
    +                                                    (((isset($filterRule['top'])) && ($filterRule['top'] == 1))
    +                                                        ? Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP
    +                                                        : Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM
    +                                                    )
    +                                                )
    +                                                    ->setRuleType(Column\Rule::AUTOFILTER_RULETYPE_TOPTENFILTER);
    +                                            }
    +                                        }
    +                                    }
    +                                }
    +                            }
    +
    +                            if ($xmlSheet && $xmlSheet->mergeCells && $xmlSheet->mergeCells->mergeCell && !$this->readDataOnly) {
    +                                foreach ($xmlSheet->mergeCells->mergeCell as $mergeCell) {
    +                                    $mergeRef = (string) $mergeCell['ref'];
    +                                    if (strpos($mergeRef, ':') !== false) {
    +                                        $docSheet->mergeCells((string) $mergeCell['ref']);
    +                                    }
    +                                }
    +                            }
    +
    +                            if ($xmlSheet && $xmlSheet->pageMargins && !$this->readDataOnly) {
    +                                $docPageMargins = $docSheet->getPageMargins();
    +                                $docPageMargins->setLeft((float) ($xmlSheet->pageMargins['left']));
    +                                $docPageMargins->setRight((float) ($xmlSheet->pageMargins['right']));
    +                                $docPageMargins->setTop((float) ($xmlSheet->pageMargins['top']));
    +                                $docPageMargins->setBottom((float) ($xmlSheet->pageMargins['bottom']));
    +                                $docPageMargins->setHeader((float) ($xmlSheet->pageMargins['header']));
    +                                $docPageMargins->setFooter((float) ($xmlSheet->pageMargins['footer']));
    +                            }
    +
    +                            if ($xmlSheet && $xmlSheet->pageSetup && !$this->readDataOnly) {
    +                                $docPageSetup = $docSheet->getPageSetup();
    +
    +                                if (isset($xmlSheet->pageSetup['orientation'])) {
    +                                    $docPageSetup->setOrientation((string) $xmlSheet->pageSetup['orientation']);
    +                                }
    +                                if (isset($xmlSheet->pageSetup['paperSize'])) {
    +                                    $docPageSetup->setPaperSize((int) ($xmlSheet->pageSetup['paperSize']));
    +                                }
    +                                if (isset($xmlSheet->pageSetup['scale'])) {
    +                                    $docPageSetup->setScale((int) ($xmlSheet->pageSetup['scale']), false);
    +                                }
    +                                if (isset($xmlSheet->pageSetup['fitToHeight']) && (int) ($xmlSheet->pageSetup['fitToHeight']) >= 0) {
    +                                    $docPageSetup->setFitToHeight((int) ($xmlSheet->pageSetup['fitToHeight']), false);
    +                                }
    +                                if (isset($xmlSheet->pageSetup['fitToWidth']) && (int) ($xmlSheet->pageSetup['fitToWidth']) >= 0) {
    +                                    $docPageSetup->setFitToWidth((int) ($xmlSheet->pageSetup['fitToWidth']), false);
    +                                }
    +                                if (isset($xmlSheet->pageSetup['firstPageNumber'], $xmlSheet->pageSetup['useFirstPageNumber']) &&
    +                                    self::boolean((string) $xmlSheet->pageSetup['useFirstPageNumber'])) {
    +                                    $docPageSetup->setFirstPageNumber((int) ($xmlSheet->pageSetup['firstPageNumber']));
    +                                }
    +
    +                                $relAttributes = $xmlSheet->pageSetup->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships');
    +                                if (isset($relAttributes['id'])) {
    +                                    $unparsedLoadedData['sheets'][$docSheet->getCodeName()]['pageSetupRelId'] = (string) $relAttributes['id'];
    +                                }
    +                            }
    +
    +                            if ($xmlSheet && $xmlSheet->headerFooter && !$this->readDataOnly) {
    +                                $docHeaderFooter = $docSheet->getHeaderFooter();
    +
    +                                if (isset($xmlSheet->headerFooter['differentOddEven']) &&
    +                                    self::boolean((string) $xmlSheet->headerFooter['differentOddEven'])) {
    +                                    $docHeaderFooter->setDifferentOddEven(true);
    +                                } else {
    +                                    $docHeaderFooter->setDifferentOddEven(false);
    +                                }
    +                                if (isset($xmlSheet->headerFooter['differentFirst']) &&
    +                                    self::boolean((string) $xmlSheet->headerFooter['differentFirst'])) {
    +                                    $docHeaderFooter->setDifferentFirst(true);
    +                                } else {
    +                                    $docHeaderFooter->setDifferentFirst(false);
    +                                }
    +                                if (isset($xmlSheet->headerFooter['scaleWithDoc']) &&
    +                                    !self::boolean((string) $xmlSheet->headerFooter['scaleWithDoc'])) {
    +                                    $docHeaderFooter->setScaleWithDocument(false);
    +                                } else {
    +                                    $docHeaderFooter->setScaleWithDocument(true);
    +                                }
    +                                if (isset($xmlSheet->headerFooter['alignWithMargins']) &&
    +                                    !self::boolean((string) $xmlSheet->headerFooter['alignWithMargins'])) {
    +                                    $docHeaderFooter->setAlignWithMargins(false);
    +                                } else {
    +                                    $docHeaderFooter->setAlignWithMargins(true);
    +                                }
    +
    +                                $docHeaderFooter->setOddHeader((string) $xmlSheet->headerFooter->oddHeader);
    +                                $docHeaderFooter->setOddFooter((string) $xmlSheet->headerFooter->oddFooter);
    +                                $docHeaderFooter->setEvenHeader((string) $xmlSheet->headerFooter->evenHeader);
    +                                $docHeaderFooter->setEvenFooter((string) $xmlSheet->headerFooter->evenFooter);
    +                                $docHeaderFooter->setFirstHeader((string) $xmlSheet->headerFooter->firstHeader);
    +                                $docHeaderFooter->setFirstFooter((string) $xmlSheet->headerFooter->firstFooter);
    +                            }
    +
    +                            if ($xmlSheet && $xmlSheet->rowBreaks && $xmlSheet->rowBreaks->brk && !$this->readDataOnly) {
    +                                foreach ($xmlSheet->rowBreaks->brk as $brk) {
    +                                    if ($brk['man']) {
    +                                        $docSheet->setBreak("A$brk[id]", Worksheet::BREAK_ROW);
    +                                    }
    +                                }
    +                            }
    +                            if ($xmlSheet && $xmlSheet->colBreaks && $xmlSheet->colBreaks->brk && !$this->readDataOnly) {
    +                                foreach ($xmlSheet->colBreaks->brk as $brk) {
    +                                    if ($brk['man']) {
    +                                        $docSheet->setBreak(Coordinate::stringFromColumnIndex((string) $brk['id'] + 1) . '1', Worksheet::BREAK_COLUMN);
    +                                    }
    +                                }
    +                            }
    +
    +                            if ($xmlSheet && $xmlSheet->dataValidations && !$this->readDataOnly) {
    +                                foreach ($xmlSheet->dataValidations->dataValidation as $dataValidation) {
    +                                    // Uppercase coordinate
    +                                    $range = strtoupper($dataValidation['sqref']);
    +                                    $rangeSet = explode(' ', $range);
    +                                    foreach ($rangeSet as $range) {
    +                                        $stRange = $docSheet->shrinkRangeToFit($range);
    +
    +                                        // Extract all cell references in $range
    +                                        foreach (Coordinate::extractAllCellReferencesInRange($stRange) as $reference) {
    +                                            // Create validation
    +                                            $docValidation = $docSheet->getCell($reference)->getDataValidation();
    +                                            $docValidation->setType((string) $dataValidation['type']);
    +                                            $docValidation->setErrorStyle((string) $dataValidation['errorStyle']);
    +                                            $docValidation->setOperator((string) $dataValidation['operator']);
    +                                            $docValidation->setAllowBlank($dataValidation['allowBlank'] != 0);
    +                                            $docValidation->setShowDropDown($dataValidation['showDropDown'] == 0);
    +                                            $docValidation->setShowInputMessage($dataValidation['showInputMessage'] != 0);
    +                                            $docValidation->setShowErrorMessage($dataValidation['showErrorMessage'] != 0);
    +                                            $docValidation->setErrorTitle((string) $dataValidation['errorTitle']);
    +                                            $docValidation->setError((string) $dataValidation['error']);
    +                                            $docValidation->setPromptTitle((string) $dataValidation['promptTitle']);
    +                                            $docValidation->setPrompt((string) $dataValidation['prompt']);
    +                                            $docValidation->setFormula1((string) $dataValidation->formula1);
    +                                            $docValidation->setFormula2((string) $dataValidation->formula2);
    +                                        }
    +                                    }
    +                                }
    +                            }
    +
    +                            // unparsed sheet AlternateContent
    +                            if ($xmlSheet && !$this->readDataOnly) {
    +                                $mc = $xmlSheet->children('http://schemas.openxmlformats.org/markup-compatibility/2006');
    +                                if ($mc->AlternateContent) {
    +                                    foreach ($mc->AlternateContent as $alternateContent) {
    +                                        $unparsedLoadedData['sheets'][$docSheet->getCodeName()]['AlternateContents'][] = $alternateContent->asXML();
    +                                    }
    +                                }
    +                            }
    +
    +                            // Add hyperlinks
    +                            $hyperlinks = [];
    +                            if (!$this->readDataOnly) {
    +                                // Locate hyperlink relations
    +                                if ($zip->locateName(dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')) {
    +                                    //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +                                    $relsWorksheet = simplexml_load_string(
    +                                        $this->securityScanner->scan(
    +                                            $this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')
    +                                        ),
    +                                        'SimpleXMLElement',
    +                                        Settings::getLibXmlLoaderOptions()
    +                                    );
    +                                    foreach ($relsWorksheet->Relationship as $ele) {
    +                                        if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink') {
    +                                            $hyperlinks[(string) $ele['Id']] = (string) $ele['Target'];
    +                                        }
    +                                    }
    +                                }
    +
    +                                // Loop through hyperlinks
    +                                if ($xmlSheet && $xmlSheet->hyperlinks) {
    +                                    /** @var SimpleXMLElement $hyperlink */
    +                                    foreach ($xmlSheet->hyperlinks->hyperlink as $hyperlink) {
    +                                        // Link url
    +                                        $linkRel = $hyperlink->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships');
    +
    +                                        foreach (Coordinate::extractAllCellReferencesInRange($hyperlink['ref']) as $cellReference) {
    +                                            $cell = $docSheet->getCell($cellReference);
    +                                            if (isset($linkRel['id'])) {
    +                                                $hyperlinkUrl = $hyperlinks[(string) $linkRel['id']];
    +                                                if (isset($hyperlink['location'])) {
    +                                                    $hyperlinkUrl .= '#' . (string) $hyperlink['location'];
    +                                                }
    +                                                $cell->getHyperlink()->setUrl($hyperlinkUrl);
    +                                            } elseif (isset($hyperlink['location'])) {
    +                                                $cell->getHyperlink()->setUrl('sheet://' . (string) $hyperlink['location']);
    +                                            }
    +
    +                                            // Tooltip
    +                                            if (isset($hyperlink['tooltip'])) {
    +                                                $cell->getHyperlink()->setTooltip((string) $hyperlink['tooltip']);
    +                                            }
    +                                        }
    +                                    }
    +                                }
    +                            }
    +
    +                            // Add comments
    +                            $comments = [];
    +                            $vmlComments = [];
    +                            if (!$this->readDataOnly) {
    +                                // Locate comment relations
    +                                if ($zip->locateName(dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')) {
    +                                    //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +                                    $relsWorksheet = simplexml_load_string(
    +                                        $this->securityScanner->scan(
    +                                            $this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')
    +                                        ),
    +                                        'SimpleXMLElement',
    +                                        Settings::getLibXmlLoaderOptions()
    +                                    );
    +                                    foreach ($relsWorksheet->Relationship as $ele) {
    +                                        if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments') {
    +                                            $comments[(string) $ele['Id']] = (string) $ele['Target'];
    +                                        }
    +                                        if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing') {
    +                                            $vmlComments[(string) $ele['Id']] = (string) $ele['Target'];
    +                                        }
    +                                    }
    +                                }
    +
    +                                // Loop through comments
    +                                foreach ($comments as $relName => $relPath) {
    +                                    // Load comments file
    +                                    $relPath = File::realpath(dirname("$dir/$fileWorksheet") . '/' . $relPath);
    +                                    $commentsFile = simplexml_load_string(
    +                                        $this->securityScanner->scan($this->getFromZipArchive($zip, $relPath)),
    +                                        'SimpleXMLElement',
    +                                        Settings::getLibXmlLoaderOptions()
    +                                    );
    +
    +                                    // Utility variables
    +                                    $authors = [];
    +
    +                                    // Loop through authors
    +                                    foreach ($commentsFile->authors->author as $author) {
    +                                        $authors[] = (string) $author;
    +                                    }
    +
    +                                    // Loop through contents
    +                                    foreach ($commentsFile->commentList->comment as $comment) {
    +                                        if (!empty($comment['authorId'])) {
    +                                            $docSheet->getComment((string) $comment['ref'])->setAuthor($authors[(string) $comment['authorId']]);
    +                                        }
    +                                        $docSheet->getComment((string) $comment['ref'])->setText($this->parseRichText($comment->text));
    +                                    }
    +                                }
    +
    +                                // later we will remove from it real vmlComments
    +                                $unparsedVmlDrawings = $vmlComments;
    +
    +                                // Loop through VML comments
    +                                foreach ($vmlComments as $relName => $relPath) {
    +                                    // Load VML comments file
    +                                    $relPath = File::realpath(dirname("$dir/$fileWorksheet") . '/' . $relPath);
    +                                    $vmlCommentsFile = simplexml_load_string(
    +                                        $this->securityScanner->scan($this->getFromZipArchive($zip, $relPath)),
    +                                        'SimpleXMLElement',
    +                                        Settings::getLibXmlLoaderOptions()
    +                                    );
    +                                    $vmlCommentsFile->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml');
    +
    +                                    $shapes = $vmlCommentsFile->xpath('//v:shape');
    +                                    foreach ($shapes as $shape) {
    +                                        $shape->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml');
    +
    +                                        if (isset($shape['style'])) {
    +                                            $style = (string) $shape['style'];
    +                                            $fillColor = strtoupper(substr((string) $shape['fillcolor'], 1));
    +                                            $column = null;
    +                                            $row = null;
    +
    +                                            $clientData = $shape->xpath('.//x:ClientData');
    +                                            if (is_array($clientData) && !empty($clientData)) {
    +                                                $clientData = $clientData[0];
    +
    +                                                if (isset($clientData['ObjectType']) && (string) $clientData['ObjectType'] == 'Note') {
    +                                                    $temp = $clientData->xpath('.//x:Row');
    +                                                    if (is_array($temp)) {
    +                                                        $row = $temp[0];
    +                                                    }
    +
    +                                                    $temp = $clientData->xpath('.//x:Column');
    +                                                    if (is_array($temp)) {
    +                                                        $column = $temp[0];
    +                                                    }
    +                                                }
    +                                            }
    +
    +                                            if (($column !== null) && ($row !== null)) {
    +                                                // Set comment properties
    +                                                $comment = $docSheet->getCommentByColumnAndRow($column + 1, $row + 1);
    +                                                $comment->getFillColor()->setRGB($fillColor);
    +
    +                                                // Parse style
    +                                                $styleArray = explode(';', str_replace(' ', '', $style));
    +                                                foreach ($styleArray as $stylePair) {
    +                                                    $stylePair = explode(':', $stylePair);
    +
    +                                                    if ($stylePair[0] == 'margin-left') {
    +                                                        $comment->setMarginLeft($stylePair[1]);
    +                                                    }
    +                                                    if ($stylePair[0] == 'margin-top') {
    +                                                        $comment->setMarginTop($stylePair[1]);
    +                                                    }
    +                                                    if ($stylePair[0] == 'width') {
    +                                                        $comment->setWidth($stylePair[1]);
    +                                                    }
    +                                                    if ($stylePair[0] == 'height') {
    +                                                        $comment->setHeight($stylePair[1]);
    +                                                    }
    +                                                    if ($stylePair[0] == 'visibility') {
    +                                                        $comment->setVisible($stylePair[1] == 'visible');
    +                                                    }
    +                                                }
    +
    +                                                unset($unparsedVmlDrawings[$relName]);
    +                                            }
    +                                        }
    +                                    }
    +                                }
    +
    +                                // unparsed vmlDrawing
    +                                if ($unparsedVmlDrawings) {
    +                                    foreach ($unparsedVmlDrawings as $rId => $relPath) {
    +                                        $rId = substr($rId, 3); // rIdXXX
    +                                        $unparsedVmlDrawing = &$unparsedLoadedData['sheets'][$docSheet->getCodeName()]['vmlDrawings'];
    +                                        $unparsedVmlDrawing[$rId] = [];
    +                                        $unparsedVmlDrawing[$rId]['filePath'] = self::dirAdd("$dir/$fileWorksheet", $relPath);
    +                                        $unparsedVmlDrawing[$rId]['relFilePath'] = $relPath;
    +                                        $unparsedVmlDrawing[$rId]['content'] = $this->securityScanner->scan($this->getFromZipArchive($zip, $unparsedVmlDrawing[$rId]['filePath']));
    +                                        unset($unparsedVmlDrawing);
    +                                    }
    +                                }
    +
    +                                // Header/footer images
    +                                if ($xmlSheet && $xmlSheet->legacyDrawingHF && !$this->readDataOnly) {
    +                                    if ($zip->locateName(dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')) {
    +                                        //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +                                        $relsWorksheet = simplexml_load_string(
    +                                            $this->securityScanner->scan(
    +                                                $this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')
    +                                            ),
    +                                            'SimpleXMLElement',
    +                                            Settings::getLibXmlLoaderOptions()
    +                                        );
    +                                        $vmlRelationship = '';
    +
    +                                        foreach ($relsWorksheet->Relationship as $ele) {
    +                                            if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing') {
    +                                                $vmlRelationship = self::dirAdd("$dir/$fileWorksheet", $ele['Target']);
    +                                            }
    +                                        }
    +
    +                                        if ($vmlRelationship != '') {
    +                                            // Fetch linked images
    +                                            //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +                                            $relsVML = simplexml_load_string(
    +                                                $this->securityScanner->scan(
    +                                                    $this->getFromZipArchive($zip, dirname($vmlRelationship) . '/_rels/' . basename($vmlRelationship) . '.rels')
    +                                                ),
    +                                                'SimpleXMLElement',
    +                                                Settings::getLibXmlLoaderOptions()
    +                                            );
    +                                            $drawings = [];
    +                                            foreach ($relsVML->Relationship as $ele) {
    +                                                if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image') {
    +                                                    $drawings[(string) $ele['Id']] = self::dirAdd($vmlRelationship, $ele['Target']);
    +                                                }
    +                                            }
    +
    +                                            // Fetch VML document
    +                                            $vmlDrawing = simplexml_load_string(
    +                                                $this->securityScanner->scan($this->getFromZipArchive($zip, $vmlRelationship)),
    +                                                'SimpleXMLElement',
    +                                                Settings::getLibXmlLoaderOptions()
    +                                            );
    +                                            $vmlDrawing->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml');
    +
    +                                            $hfImages = [];
    +
    +                                            $shapes = $vmlDrawing->xpath('//v:shape');
    +                                            foreach ($shapes as $idx => $shape) {
    +                                                $shape->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml');
    +                                                $imageData = $shape->xpath('//v:imagedata');
    +
    +                                                if (!$imageData) {
    +                                                    continue;
    +                                                }
    +
    +                                                $imageData = $imageData[$idx];
    +
    +                                                $imageData = $imageData->attributes('urn:schemas-microsoft-com:office:office');
    +                                                $style = self::toCSSArray((string) $shape['style']);
    +
    +                                                $hfImages[(string) $shape['id']] = new HeaderFooterDrawing();
    +                                                if (isset($imageData['title'])) {
    +                                                    $hfImages[(string) $shape['id']]->setName((string) $imageData['title']);
    +                                                }
    +
    +                                                $hfImages[(string) $shape['id']]->setPath('zip://' . File::realpath($pFilename) . '#' . $drawings[(string) $imageData['relid']], false);
    +                                                $hfImages[(string) $shape['id']]->setResizeProportional(false);
    +                                                $hfImages[(string) $shape['id']]->setWidth($style['width']);
    +                                                $hfImages[(string) $shape['id']]->setHeight($style['height']);
    +                                                if (isset($style['margin-left'])) {
    +                                                    $hfImages[(string) $shape['id']]->setOffsetX($style['margin-left']);
    +                                                }
    +                                                $hfImages[(string) $shape['id']]->setOffsetY($style['margin-top']);
    +                                                $hfImages[(string) $shape['id']]->setResizeProportional(true);
    +                                            }
    +
    +                                            $docSheet->getHeaderFooter()->setImages($hfImages);
    +                                        }
    +                                    }
    +                                }
    +                            }
    +
    +                            // TODO: Autoshapes from twoCellAnchors!
    +                            if ($zip->locateName(dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')) {
    +                                //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +                                $relsWorksheet = simplexml_load_string(
    +                                    $this->securityScanner->scan(
    +                                        $this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')
    +                                    ),
    +                                    'SimpleXMLElement',
    +                                    Settings::getLibXmlLoaderOptions()
    +                                );
    +                                $drawings = [];
    +                                foreach ($relsWorksheet->Relationship as $ele) {
    +                                    if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing') {
    +                                        $drawings[(string) $ele['Id']] = self::dirAdd("$dir/$fileWorksheet", $ele['Target']);
    +                                    }
    +                                }
    +                                if ($xmlSheet->drawing && !$this->readDataOnly) {
    +                                    foreach ($xmlSheet->drawing as $drawing) {
    +                                        $fileDrawing = $drawings[(string) self::getArrayItem($drawing->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'), 'id')];
    +                                        //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +                                        $relsDrawing = simplexml_load_string(
    +                                            $this->securityScanner->scan(
    +                                                $this->getFromZipArchive($zip, dirname($fileDrawing) . '/_rels/' . basename($fileDrawing) . '.rels')
    +                                            ),
    +                                            'SimpleXMLElement',
    +                                            Settings::getLibXmlLoaderOptions()
    +                                        );
    +                                        $images = [];
    +                                        $hyperlinks = [];
    +                                        if ($relsDrawing && $relsDrawing->Relationship) {
    +                                            foreach ($relsDrawing->Relationship as $ele) {
    +                                                if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink') {
    +                                                    $hyperlinks[(string) $ele['Id']] = (string) $ele['Target'];
    +                                                }
    +                                                if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image') {
    +                                                    $images[(string) $ele['Id']] = self::dirAdd($fileDrawing, $ele['Target']);
    +                                                } elseif ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart') {
    +                                                    if ($this->includeCharts) {
    +                                                        $charts[self::dirAdd($fileDrawing, $ele['Target'])] = [
    +                                                            'id' => (string) $ele['Id'],
    +                                                            'sheet' => $docSheet->getTitle(),
    +                                                        ];
    +                                                    }
    +                                                }
    +                                            }
    +                                        }
    +                                        $xmlDrawing = simplexml_load_string(
    +                                            $this->securityScanner->scan($this->getFromZipArchive($zip, $fileDrawing)),
    +                                            'SimpleXMLElement',
    +                                            Settings::getLibXmlLoaderOptions()
    +                                        )->children('http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing');
    +
    +                                        if ($xmlDrawing->oneCellAnchor) {
    +                                            foreach ($xmlDrawing->oneCellAnchor as $oneCellAnchor) {
    +                                                if ($oneCellAnchor->pic->blipFill) {
    +                                                    /** @var SimpleXMLElement $blip */
    +                                                    $blip = $oneCellAnchor->pic->blipFill->children('http://schemas.openxmlformats.org/drawingml/2006/main')->blip;
    +                                                    /** @var SimpleXMLElement $xfrm */
    +                                                    $xfrm = $oneCellAnchor->pic->spPr->children('http://schemas.openxmlformats.org/drawingml/2006/main')->xfrm;
    +                                                    /** @var SimpleXMLElement $outerShdw */
    +                                                    $outerShdw = $oneCellAnchor->pic->spPr->children('http://schemas.openxmlformats.org/drawingml/2006/main')->effectLst->outerShdw;
    +                                                    /** @var \SimpleXMLElement $hlinkClick */
    +                                                    $hlinkClick = $oneCellAnchor->pic->nvPicPr->cNvPr->children('http://schemas.openxmlformats.org/drawingml/2006/main')->hlinkClick;
    +
    +                                                    $objDrawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
    +                                                    $objDrawing->setName((string) self::getArrayItem($oneCellAnchor->pic->nvPicPr->cNvPr->attributes(), 'name'));
    +                                                    $objDrawing->setDescription((string) self::getArrayItem($oneCellAnchor->pic->nvPicPr->cNvPr->attributes(), 'descr'));
    +                                                    $objDrawing->setPath(
    +                                                        'zip://' . File::realpath($pFilename) . '#' .
    +                                                        $images[(string) self::getArrayItem(
    +                                                            $blip->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'),
    +                                                            'embed'
    +                                                        )],
    +                                                        false
    +                                                    );
    +                                                    $objDrawing->setCoordinates(Coordinate::stringFromColumnIndex(((string) $oneCellAnchor->from->col) + 1) . ($oneCellAnchor->from->row + 1));
    +                                                    $objDrawing->setOffsetX(Drawing::EMUToPixels($oneCellAnchor->from->colOff));
    +                                                    $objDrawing->setOffsetY(Drawing::EMUToPixels($oneCellAnchor->from->rowOff));
    +                                                    $objDrawing->setResizeProportional(false);
    +                                                    $objDrawing->setWidth(Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cx')));
    +                                                    $objDrawing->setHeight(Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cy')));
    +                                                    if ($xfrm) {
    +                                                        $objDrawing->setRotation(Drawing::angleToDegrees(self::getArrayItem($xfrm->attributes(), 'rot')));
    +                                                    }
    +                                                    if ($outerShdw) {
    +                                                        $shadow = $objDrawing->getShadow();
    +                                                        $shadow->setVisible(true);
    +                                                        $shadow->setBlurRadius(Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'blurRad')));
    +                                                        $shadow->setDistance(Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'dist')));
    +                                                        $shadow->setDirection(Drawing::angleToDegrees(self::getArrayItem($outerShdw->attributes(), 'dir')));
    +                                                        $shadow->setAlignment((string) self::getArrayItem($outerShdw->attributes(), 'algn'));
    +                                                        $shadow->getColor()->setRGB(self::getArrayItem($outerShdw->srgbClr->attributes(), 'val'));
    +                                                        $shadow->setAlpha(self::getArrayItem($outerShdw->srgbClr->alpha->attributes(), 'val') / 1000);
    +                                                    }
    +
    +                                                    $this->readHyperLinkDrawing($objDrawing, $oneCellAnchor, $hyperlinks);
    +
    +                                                    $objDrawing->setWorksheet($docSheet);
    +                                                } else {
    +                                                    //    ? Can charts be positioned with a oneCellAnchor ?
    +                                                    $coordinates = Coordinate::stringFromColumnIndex(((string) $oneCellAnchor->from->col) + 1) . ($oneCellAnchor->from->row + 1);
    +                                                    $offsetX = Drawing::EMUToPixels($oneCellAnchor->from->colOff);
    +                                                    $offsetY = Drawing::EMUToPixels($oneCellAnchor->from->rowOff);
    +                                                    $width = Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cx'));
    +                                                    $height = Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cy'));
    +                                                }
    +                                            }
    +                                        }
    +                                        if ($xmlDrawing->twoCellAnchor) {
    +                                            foreach ($xmlDrawing->twoCellAnchor as $twoCellAnchor) {
    +                                                if ($twoCellAnchor->pic->blipFill) {
    +                                                    $blip = $twoCellAnchor->pic->blipFill->children('http://schemas.openxmlformats.org/drawingml/2006/main')->blip;
    +                                                    $xfrm = $twoCellAnchor->pic->spPr->children('http://schemas.openxmlformats.org/drawingml/2006/main')->xfrm;
    +                                                    $outerShdw = $twoCellAnchor->pic->spPr->children('http://schemas.openxmlformats.org/drawingml/2006/main')->effectLst->outerShdw;
    +                                                    $hlinkClick = $twoCellAnchor->pic->nvPicPr->cNvPr->children('http://schemas.openxmlformats.org/drawingml/2006/main')->hlinkClick;
    +                                                    $objDrawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
    +                                                    $objDrawing->setName((string) self::getArrayItem($twoCellAnchor->pic->nvPicPr->cNvPr->attributes(), 'name'));
    +                                                    $objDrawing->setDescription((string) self::getArrayItem($twoCellAnchor->pic->nvPicPr->cNvPr->attributes(), 'descr'));
    +                                                    $objDrawing->setPath(
    +                                                        'zip://' . File::realpath($pFilename) . '#' .
    +                                                        $images[(string) self::getArrayItem(
    +                                                            $blip->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'),
    +                                                            'embed'
    +                                                        )],
    +                                                        false
    +                                                    );
    +                                                    $objDrawing->setCoordinates(Coordinate::stringFromColumnIndex(((string) $twoCellAnchor->from->col) + 1) . ($twoCellAnchor->from->row + 1));
    +                                                    $objDrawing->setOffsetX(Drawing::EMUToPixels($twoCellAnchor->from->colOff));
    +                                                    $objDrawing->setOffsetY(Drawing::EMUToPixels($twoCellAnchor->from->rowOff));
    +                                                    $objDrawing->setResizeProportional(false);
    +
    +                                                    if ($xfrm) {
    +                                                        $objDrawing->setWidth(Drawing::EMUToPixels(self::getArrayItem($xfrm->ext->attributes(), 'cx')));
    +                                                        $objDrawing->setHeight(Drawing::EMUToPixels(self::getArrayItem($xfrm->ext->attributes(), 'cy')));
    +                                                        $objDrawing->setRotation(Drawing::angleToDegrees(self::getArrayItem($xfrm->attributes(), 'rot')));
    +                                                    }
    +                                                    if ($outerShdw) {
    +                                                        $shadow = $objDrawing->getShadow();
    +                                                        $shadow->setVisible(true);
    +                                                        $shadow->setBlurRadius(Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'blurRad')));
    +                                                        $shadow->setDistance(Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'dist')));
    +                                                        $shadow->setDirection(Drawing::angleToDegrees(self::getArrayItem($outerShdw->attributes(), 'dir')));
    +                                                        $shadow->setAlignment((string) self::getArrayItem($outerShdw->attributes(), 'algn'));
    +                                                        $shadow->getColor()->setRGB(self::getArrayItem($outerShdw->srgbClr->attributes(), 'val'));
    +                                                        $shadow->setAlpha(self::getArrayItem($outerShdw->srgbClr->alpha->attributes(), 'val') / 1000);
    +                                                    }
    +
    +                                                    $this->readHyperLinkDrawing($objDrawing, $twoCellAnchor, $hyperlinks);
    +
    +                                                    $objDrawing->setWorksheet($docSheet);
    +                                                } elseif (($this->includeCharts) && ($twoCellAnchor->graphicFrame)) {
    +                                                    $fromCoordinate = Coordinate::stringFromColumnIndex(((string) $twoCellAnchor->from->col) + 1) . ($twoCellAnchor->from->row + 1);
    +                                                    $fromOffsetX = Drawing::EMUToPixels($twoCellAnchor->from->colOff);
    +                                                    $fromOffsetY = Drawing::EMUToPixels($twoCellAnchor->from->rowOff);
    +                                                    $toCoordinate = Coordinate::stringFromColumnIndex(((string) $twoCellAnchor->to->col) + 1) . ($twoCellAnchor->to->row + 1);
    +                                                    $toOffsetX = Drawing::EMUToPixels($twoCellAnchor->to->colOff);
    +                                                    $toOffsetY = Drawing::EMUToPixels($twoCellAnchor->to->rowOff);
    +                                                    $graphic = $twoCellAnchor->graphicFrame->children('http://schemas.openxmlformats.org/drawingml/2006/main')->graphic;
    +                                                    /** @var SimpleXMLElement $chartRef */
    +                                                    $chartRef = $graphic->graphicData->children('http://schemas.openxmlformats.org/drawingml/2006/chart')->chart;
    +                                                    $thisChart = (string) $chartRef->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships');
    +
    +                                                    $chartDetails[$docSheet->getTitle() . '!' . $thisChart] = [
    +                                                        'fromCoordinate' => $fromCoordinate,
    +                                                        'fromOffsetX' => $fromOffsetX,
    +                                                        'fromOffsetY' => $fromOffsetY,
    +                                                        'toCoordinate' => $toCoordinate,
    +                                                        'toOffsetX' => $toOffsetX,
    +                                                        'toOffsetY' => $toOffsetY,
    +                                                        'worksheetTitle' => $docSheet->getTitle(),
    +                                                    ];
    +                                                }
    +                                            }
    +                                        }
    +                                    }
    +
    +                                    // store original rId of drawing files
    +                                    $unparsedLoadedData['sheets'][$docSheet->getCodeName()]['drawingOriginalIds'] = [];
    +                                    foreach ($relsWorksheet->Relationship as $ele) {
    +                                        if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing') {
    +                                            $unparsedLoadedData['sheets'][$docSheet->getCodeName()]['drawingOriginalIds'][(string) $ele['Target']] = (string) $ele['Id'];
    +                                        }
    +                                    }
    +
    +                                    // unparsed drawing AlternateContent
    +                                    $xmlAltDrawing = simplexml_load_string(
    +                                        $this->securityScanner->scan($this->getFromZipArchive($zip, $fileDrawing)),
    +                                        'SimpleXMLElement',
    +                                        Settings::getLibXmlLoaderOptions()
    +                                    )->children('http://schemas.openxmlformats.org/markup-compatibility/2006');
    +
    +                                    if ($xmlAltDrawing->AlternateContent) {
    +                                        foreach ($xmlAltDrawing->AlternateContent as $alternateContent) {
    +                                            $unparsedLoadedData['sheets'][$docSheet->getCodeName()]['drawingAlternateContents'][] = $alternateContent->asXML();
    +                                        }
    +                                    }
    +                                }
    +                            }
    +
    +                            $this->readFormControlProperties($excel, $zip, $dir, $fileWorksheet, $docSheet, $unparsedLoadedData);
    +                            $this->readPrinterSettings($excel, $zip, $dir, $fileWorksheet, $docSheet, $unparsedLoadedData);
    +
    +                            // Loop through definedNames
    +                            if ($xmlWorkbook->definedNames) {
    +                                foreach ($xmlWorkbook->definedNames->definedName as $definedName) {
    +                                    // Extract range
    +                                    $extractedRange = (string) $definedName;
    +                                    if (($spos = strpos($extractedRange, '!')) !== false) {
    +                                        $extractedRange = substr($extractedRange, 0, $spos) . str_replace('$', '', substr($extractedRange, $spos));
    +                                    } else {
    +                                        $extractedRange = str_replace('$', '', $extractedRange);
    +                                    }
    +
    +                                    // Valid range?
    +                                    if (stripos((string) $definedName, '#REF!') !== false || $extractedRange == '') {
    +                                        continue;
    +                                    }
    +
    +                                    // Some definedNames are only applicable if we are on the same sheet...
    +                                    if ((string) $definedName['localSheetId'] != '' && (string) $definedName['localSheetId'] == $oldSheetId) {
    +                                        // Switch on type
    +                                        switch ((string) $definedName['name']) {
    +                                            case '_xlnm._FilterDatabase':
    +                                                if ((string) $definedName['hidden'] !== '1') {
    +                                                    $extractedRange = explode(',', $extractedRange);
    +                                                    foreach ($extractedRange as $range) {
    +                                                        $autoFilterRange = $range;
    +                                                        if (strpos($autoFilterRange, ':') !== false) {
    +                                                            $docSheet->getAutoFilter()->setRange($autoFilterRange);
    +                                                        }
    +                                                    }
    +                                                }
    +
    +                                                break;
    +                                            case '_xlnm.Print_Titles':
    +                                                // Split $extractedRange
    +                                                $extractedRange = explode(',', $extractedRange);
    +
    +                                                // Set print titles
    +                                                foreach ($extractedRange as $range) {
    +                                                    $matches = [];
    +                                                    $range = str_replace('$', '', $range);
    +
    +                                                    // check for repeating columns, e g. 'A:A' or 'A:D'
    +                                                    if (preg_match('/!?([A-Z]+)\:([A-Z]+)$/', $range, $matches)) {
    +                                                        $docSheet->getPageSetup()->setColumnsToRepeatAtLeft([$matches[1], $matches[2]]);
    +                                                    } elseif (preg_match('/!?(\d+)\:(\d+)$/', $range, $matches)) {
    +                                                        // check for repeating rows, e.g. '1:1' or '1:5'
    +                                                        $docSheet->getPageSetup()->setRowsToRepeatAtTop([$matches[1], $matches[2]]);
    +                                                    }
    +                                                }
    +
    +                                                break;
    +                                            case '_xlnm.Print_Area':
    +                                                $rangeSets = preg_split("/('?(?:.*?)'?(?:![A-Z0-9]+:[A-Z0-9]+)),?/", $extractedRange, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
    +                                                $newRangeSets = [];
    +                                                foreach ($rangeSets as $rangeSet) {
    +                                                    list($sheetName, $rangeSet) = Worksheet::extractSheetTitle($rangeSet, true);
    +                                                    if (strpos($rangeSet, ':') === false) {
    +                                                        $rangeSet = $rangeSet . ':' . $rangeSet;
    +                                                    }
    +                                                    $newRangeSets[] = str_replace('$', '', $rangeSet);
    +                                                }
    +                                                $docSheet->getPageSetup()->setPrintArea(implode(',', $newRangeSets));
    +
    +                                                break;
    +                                            default:
    +                                                break;
    +                                        }
    +                                    }
    +                                }
    +                            }
    +
    +                            // Next sheet id
    +                            ++$sheetId;
    +                        }
    +
    +                        // Loop through definedNames
    +                        if ($xmlWorkbook->definedNames) {
    +                            foreach ($xmlWorkbook->definedNames->definedName as $definedName) {
    +                                // Extract range
    +                                $extractedRange = (string) $definedName;
    +                                if (($spos = strpos($extractedRange, '!')) !== false) {
    +                                    $extractedRange = substr($extractedRange, 0, $spos) . str_replace('$', '', substr($extractedRange, $spos));
    +                                } else {
    +                                    $extractedRange = str_replace('$', '', $extractedRange);
    +                                }
    +
    +                                // Valid range?
    +                                if (stripos((string) $definedName, '#REF!') !== false || $extractedRange == '') {
    +                                    continue;
    +                                }
    +
    +                                // Some definedNames are only applicable if we are on the same sheet...
    +                                if ((string) $definedName['localSheetId'] != '') {
    +                                    // Local defined name
    +                                    // Switch on type
    +                                    switch ((string) $definedName['name']) {
    +                                        case '_xlnm._FilterDatabase':
    +                                        case '_xlnm.Print_Titles':
    +                                        case '_xlnm.Print_Area':
    +                                            break;
    +                                        default:
    +                                            if ($mapSheetId[(int) $definedName['localSheetId']] !== null) {
    +                                                if (strpos((string) $definedName, '!') !== false) {
    +                                                    $range = Worksheet::extractSheetTitle((string) $definedName, true);
    +                                                    $range[0] = str_replace("''", "'", $range[0]);
    +                                                    $range[0] = str_replace("'", '', $range[0]);
    +                                                    if ($worksheet = $docSheet->getParent()->getSheetByName($range[0])) {
    +                                                        $extractedRange = str_replace('$', '', $range[1]);
    +                                                        $scope = $docSheet->getParent()->getSheet($mapSheetId[(int) $definedName['localSheetId']]);
    +                                                        $excel->addNamedRange(new NamedRange((string) $definedName['name'], $worksheet, $extractedRange, true, $scope));
    +                                                    }
    +                                                }
    +                                            }
    +
    +                                            break;
    +                                    }
    +                                } elseif (!isset($definedName['localSheetId'])) {
    +                                    // "Global" definedNames
    +                                    $locatedSheet = null;
    +                                    $extractedSheetName = '';
    +                                    if (strpos((string) $definedName, '!') !== false) {
    +                                        // Extract sheet name
    +                                        $extractedSheetName = Worksheet::extractSheetTitle((string) $definedName, true);
    +                                        $extractedSheetName = $extractedSheetName[0];
    +
    +                                        // Locate sheet
    +                                        $locatedSheet = $excel->getSheetByName($extractedSheetName);
    +
    +                                        // Modify range
    +                                        list($worksheetName, $extractedRange) = Worksheet::extractSheetTitle($extractedRange, true);
    +                                    }
    +
    +                                    if ($locatedSheet !== null) {
    +                                        $excel->addNamedRange(new NamedRange((string) $definedName['name'], $locatedSheet, $extractedRange, false));
    +                                    }
    +                                }
    +                            }
    +                        }
    +                    }
    +
    +                    if ((!$this->readDataOnly) || (!empty($this->loadSheetsOnly))) {
    +                        $workbookView = $xmlWorkbook->bookViews->workbookView;
    +
    +                        // active sheet index
    +                        $activeTab = (int) ($workbookView['activeTab']); // refers to old sheet index
    +
    +                        // keep active sheet index if sheet is still loaded, else first sheet is set as the active
    +                        if (isset($mapSheetId[$activeTab]) && $mapSheetId[$activeTab] !== null) {
    +                            $excel->setActiveSheetIndex($mapSheetId[$activeTab]);
    +                        } else {
    +                            if ($excel->getSheetCount() == 0) {
    +                                $excel->createSheet();
    +                            }
    +                            $excel->setActiveSheetIndex(0);
    +                        }
    +
    +                        if (isset($workbookView['showHorizontalScroll'])) {
    +                            $showHorizontalScroll = (string) $workbookView['showHorizontalScroll'];
    +                            $excel->setShowHorizontalScroll($this->castXsdBooleanToBool($showHorizontalScroll));
    +                        }
    +
    +                        if (isset($workbookView['showVerticalScroll'])) {
    +                            $showVerticalScroll = (string) $workbookView['showVerticalScroll'];
    +                            $excel->setShowVerticalScroll($this->castXsdBooleanToBool($showVerticalScroll));
    +                        }
    +
    +                        if (isset($workbookView['showSheetTabs'])) {
    +                            $showSheetTabs = (string) $workbookView['showSheetTabs'];
    +                            $excel->setShowSheetTabs($this->castXsdBooleanToBool($showSheetTabs));
    +                        }
    +
    +                        if (isset($workbookView['minimized'])) {
    +                            $minimized = (string) $workbookView['minimized'];
    +                            $excel->setMinimized($this->castXsdBooleanToBool($minimized));
    +                        }
    +
    +                        if (isset($workbookView['autoFilterDateGrouping'])) {
    +                            $autoFilterDateGrouping = (string) $workbookView['autoFilterDateGrouping'];
    +                            $excel->setAutoFilterDateGrouping($this->castXsdBooleanToBool($autoFilterDateGrouping));
    +                        }
    +
    +                        if (isset($workbookView['firstSheet'])) {
    +                            $firstSheet = (string) $workbookView['firstSheet'];
    +                            $excel->setFirstSheetIndex((int) $firstSheet);
    +                        }
    +
    +                        if (isset($workbookView['visibility'])) {
    +                            $visibility = (string) $workbookView['visibility'];
    +                            $excel->setVisibility($visibility);
    +                        }
    +
    +                        if (isset($workbookView['tabRatio'])) {
    +                            $tabRatio = (string) $workbookView['tabRatio'];
    +                            $excel->setTabRatio((int) $tabRatio);
    +                        }
    +                    }
    +
    +                    break;
    +            }
    +        }
    +
    +        if (!$this->readDataOnly) {
    +            $contentTypes = simplexml_load_string(
    +                $this->securityScanner->scan(
    +                    $this->getFromZipArchive($zip, '[Content_Types].xml')
    +                ),
    +                'SimpleXMLElement',
    +                Settings::getLibXmlLoaderOptions()
    +            );
    +
    +            // Default content types
    +            foreach ($contentTypes->Default as $contentType) {
    +                switch ($contentType['ContentType']) {
    +                    case 'application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings':
    +                        $unparsedLoadedData['default_content_types'][(string) $contentType['Extension']] = (string) $contentType['ContentType'];
    +
    +                        break;
    +                }
    +            }
    +
    +            // Override content types
    +            foreach ($contentTypes->Override as $contentType) {
    +                switch ($contentType['ContentType']) {
    +                    case 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml':
    +                        if ($this->includeCharts) {
    +                            $chartEntryRef = ltrim($contentType['PartName'], '/');
    +                            $chartElements = simplexml_load_string(
    +                                $this->securityScanner->scan(
    +                                    $this->getFromZipArchive($zip, $chartEntryRef)
    +                                ),
    +                                'SimpleXMLElement',
    +                                Settings::getLibXmlLoaderOptions()
    +                            );
    +                            $objChart = Chart::readChart($chartElements, basename($chartEntryRef, '.xml'));
    +
    +                            if (isset($charts[$chartEntryRef])) {
    +                                $chartPositionRef = $charts[$chartEntryRef]['sheet'] . '!' . $charts[$chartEntryRef]['id'];
    +                                if (isset($chartDetails[$chartPositionRef])) {
    +                                    $excel->getSheetByName($charts[$chartEntryRef]['sheet'])->addChart($objChart);
    +                                    $objChart->setWorksheet($excel->getSheetByName($charts[$chartEntryRef]['sheet']));
    +                                    $objChart->setTopLeftPosition($chartDetails[$chartPositionRef]['fromCoordinate'], $chartDetails[$chartPositionRef]['fromOffsetX'], $chartDetails[$chartPositionRef]['fromOffsetY']);
    +                                    $objChart->setBottomRightPosition($chartDetails[$chartPositionRef]['toCoordinate'], $chartDetails[$chartPositionRef]['toOffsetX'], $chartDetails[$chartPositionRef]['toOffsetY']);
    +                                }
    +                            }
    +                        }
    +
    +                        break;
    +
    +                    // unparsed
    +                    case 'application/vnd.ms-excel.controlproperties+xml':
    +                        $unparsedLoadedData['override_content_types'][(string) $contentType['PartName']] = (string) $contentType['ContentType'];
    +
    +                        break;
    +                }
    +            }
    +        }
    +
    +        $excel->setUnparsedLoadedData($unparsedLoadedData);
    +
    +        $zip->close();
    +
    +        return $excel;
    +    }
    +
    +    private static function readColor($color, $background = false)
    +    {
    +        if (isset($color['rgb'])) {
    +            return (string) $color['rgb'];
    +        } elseif (isset($color['indexed'])) {
    +            return Color::indexedColor($color['indexed'] - 7, $background)->getARGB();
    +        } elseif (isset($color['theme'])) {
    +            if (self::$theme !== null) {
    +                $returnColour = self::$theme->getColourByIndex((int) $color['theme']);
    +                if (isset($color['tint'])) {
    +                    $tintAdjust = (float) $color['tint'];
    +                    $returnColour = Color::changeBrightness($returnColour, $tintAdjust);
    +                }
    +
    +                return 'FF' . $returnColour;
    +            }
    +        }
    +
    +        if ($background) {
    +            return 'FFFFFFFF';
    +        }
    +
    +        return 'FF000000';
    +    }
    +
    +    /**
    +     * @param Style $docStyle
    +     * @param SimpleXMLElement|\stdClass $style
    +     */
    +    private static function readStyle(Style $docStyle, $style)
    +    {
    +        $docStyle->getNumberFormat()->setFormatCode($style->numFmt);
    +
    +        // font
    +        if (isset($style->font)) {
    +            $docStyle->getFont()->setName((string) $style->font->name['val']);
    +            $docStyle->getFont()->setSize((string) $style->font->sz['val']);
    +            if (isset($style->font->b)) {
    +                $docStyle->getFont()->setBold(!isset($style->font->b['val']) || self::boolean((string) $style->font->b['val']));
    +            }
    +            if (isset($style->font->i)) {
    +                $docStyle->getFont()->setItalic(!isset($style->font->i['val']) || self::boolean((string) $style->font->i['val']));
    +            }
    +            if (isset($style->font->strike)) {
    +                $docStyle->getFont()->setStrikethrough(!isset($style->font->strike['val']) || self::boolean((string) $style->font->strike['val']));
    +            }
    +            $docStyle->getFont()->getColor()->setARGB(self::readColor($style->font->color));
    +
    +            if (isset($style->font->u) && !isset($style->font->u['val'])) {
    +                $docStyle->getFont()->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE);
    +            } elseif (isset($style->font->u, $style->font->u['val'])) {
    +                $docStyle->getFont()->setUnderline((string) $style->font->u['val']);
    +            }
    +
    +            if (isset($style->font->vertAlign, $style->font->vertAlign['val'])) {
    +                $vertAlign = strtolower((string) $style->font->vertAlign['val']);
    +                if ($vertAlign == 'superscript') {
    +                    $docStyle->getFont()->setSuperscript(true);
    +                }
    +                if ($vertAlign == 'subscript') {
    +                    $docStyle->getFont()->setSubscript(true);
    +                }
    +            }
    +        }
    +
    +        // fill
    +        if (isset($style->fill)) {
    +            if ($style->fill->gradientFill) {
    +                /** @var SimpleXMLElement $gradientFill */
    +                $gradientFill = $style->fill->gradientFill[0];
    +                if (!empty($gradientFill['type'])) {
    +                    $docStyle->getFill()->setFillType((string) $gradientFill['type']);
    +                }
    +                $docStyle->getFill()->setRotation((float) ($gradientFill['degree']));
    +                $gradientFill->registerXPathNamespace('sml', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
    +                $docStyle->getFill()->getStartColor()->setARGB(self::readColor(self::getArrayItem($gradientFill->xpath('sml:stop[@position=0]'))->color));
    +                $docStyle->getFill()->getEndColor()->setARGB(self::readColor(self::getArrayItem($gradientFill->xpath('sml:stop[@position=1]'))->color));
    +            } elseif ($style->fill->patternFill) {
    +                $patternType = (string) $style->fill->patternFill['patternType'] != '' ? (string) $style->fill->patternFill['patternType'] : 'solid';
    +                $docStyle->getFill()->setFillType($patternType);
    +                if ($style->fill->patternFill->fgColor) {
    +                    $docStyle->getFill()->getStartColor()->setARGB(self::readColor($style->fill->patternFill->fgColor, true));
    +                } else {
    +                    $docStyle->getFill()->getStartColor()->setARGB('FF000000');
    +                }
    +                if ($style->fill->patternFill->bgColor) {
    +                    $docStyle->getFill()->getEndColor()->setARGB(self::readColor($style->fill->patternFill->bgColor, true));
    +                }
    +            }
    +        }
    +
    +        // border
    +        if (isset($style->border)) {
    +            $diagonalUp = self::boolean((string) $style->border['diagonalUp']);
    +            $diagonalDown = self::boolean((string) $style->border['diagonalDown']);
    +            if (!$diagonalUp && !$diagonalDown) {
    +                $docStyle->getBorders()->setDiagonalDirection(Borders::DIAGONAL_NONE);
    +            } elseif ($diagonalUp && !$diagonalDown) {
    +                $docStyle->getBorders()->setDiagonalDirection(Borders::DIAGONAL_UP);
    +            } elseif (!$diagonalUp && $diagonalDown) {
    +                $docStyle->getBorders()->setDiagonalDirection(Borders::DIAGONAL_DOWN);
    +            } else {
    +                $docStyle->getBorders()->setDiagonalDirection(Borders::DIAGONAL_BOTH);
    +            }
    +            self::readBorder($docStyle->getBorders()->getLeft(), $style->border->left);
    +            self::readBorder($docStyle->getBorders()->getRight(), $style->border->right);
    +            self::readBorder($docStyle->getBorders()->getTop(), $style->border->top);
    +            self::readBorder($docStyle->getBorders()->getBottom(), $style->border->bottom);
    +            self::readBorder($docStyle->getBorders()->getDiagonal(), $style->border->diagonal);
    +        }
    +
    +        // alignment
    +        if (isset($style->alignment)) {
    +            $docStyle->getAlignment()->setHorizontal((string) $style->alignment['horizontal']);
    +            $docStyle->getAlignment()->setVertical((string) $style->alignment['vertical']);
    +
    +            $textRotation = 0;
    +            if ((int) $style->alignment['textRotation'] <= 90) {
    +                $textRotation = (int) $style->alignment['textRotation'];
    +            } elseif ((int) $style->alignment['textRotation'] > 90) {
    +                $textRotation = 90 - (int) $style->alignment['textRotation'];
    +            }
    +
    +            $docStyle->getAlignment()->setTextRotation((int) $textRotation);
    +            $docStyle->getAlignment()->setWrapText(self::boolean((string) $style->alignment['wrapText']));
    +            $docStyle->getAlignment()->setShrinkToFit(self::boolean((string) $style->alignment['shrinkToFit']));
    +            $docStyle->getAlignment()->setIndent((int) ((string) $style->alignment['indent']) > 0 ? (int) ((string) $style->alignment['indent']) : 0);
    +            $docStyle->getAlignment()->setReadOrder((int) ((string) $style->alignment['readingOrder']) > 0 ? (int) ((string) $style->alignment['readingOrder']) : 0);
    +        }
    +
    +        // protection
    +        if (isset($style->protection)) {
    +            if (isset($style->protection['locked'])) {
    +                if (self::boolean((string) $style->protection['locked'])) {
    +                    $docStyle->getProtection()->setLocked(Protection::PROTECTION_PROTECTED);
    +                } else {
    +                    $docStyle->getProtection()->setLocked(Protection::PROTECTION_UNPROTECTED);
    +                }
    +            }
    +
    +            if (isset($style->protection['hidden'])) {
    +                if (self::boolean((string) $style->protection['hidden'])) {
    +                    $docStyle->getProtection()->setHidden(Protection::PROTECTION_PROTECTED);
    +                } else {
    +                    $docStyle->getProtection()->setHidden(Protection::PROTECTION_UNPROTECTED);
    +                }
    +            }
    +        }
    +
    +        // top-level style settings
    +        if (isset($style->quotePrefix)) {
    +            $docStyle->setQuotePrefix($style->quotePrefix);
    +        }
    +    }
    +
    +    /**
    +     * @param Border $docBorder
    +     * @param SimpleXMLElement $eleBorder
    +     */
    +    private static function readBorder(Border $docBorder, $eleBorder)
    +    {
    +        if (isset($eleBorder['style'])) {
    +            $docBorder->setBorderStyle((string) $eleBorder['style']);
    +        }
    +        if (isset($eleBorder->color)) {
    +            $docBorder->getColor()->setARGB(self::readColor($eleBorder->color));
    +        }
    +    }
    +
    +    /**
    +     * @param SimpleXMLElement | null $is
    +     *
    +     * @return RichText
    +     */
    +    private function parseRichText($is)
    +    {
    +        $value = new RichText();
    +
    +        if (isset($is->t)) {
    +            $value->createText(StringHelper::controlCharacterOOXML2PHP((string) $is->t));
    +        } else {
    +            if (is_object($is->r)) {
    +                foreach ($is->r as $run) {
    +                    if (!isset($run->rPr)) {
    +                        $value->createText(StringHelper::controlCharacterOOXML2PHP((string) $run->t));
    +                    } else {
    +                        $objText = $value->createTextRun(StringHelper::controlCharacterOOXML2PHP((string) $run->t));
    +
    +                        if (isset($run->rPr->rFont['val'])) {
    +                            $objText->getFont()->setName((string) $run->rPr->rFont['val']);
    +                        }
    +                        if (isset($run->rPr->sz['val'])) {
    +                            $objText->getFont()->setSize((float) $run->rPr->sz['val']);
    +                        }
    +                        if (isset($run->rPr->color)) {
    +                            $objText->getFont()->setColor(new Color(self::readColor($run->rPr->color)));
    +                        }
    +                        if ((isset($run->rPr->b['val']) && self::boolean((string) $run->rPr->b['val'])) ||
    +                            (isset($run->rPr->b) && !isset($run->rPr->b['val']))) {
    +                            $objText->getFont()->setBold(true);
    +                        }
    +                        if ((isset($run->rPr->i['val']) && self::boolean((string) $run->rPr->i['val'])) ||
    +                            (isset($run->rPr->i) && !isset($run->rPr->i['val']))) {
    +                            $objText->getFont()->setItalic(true);
    +                        }
    +                        if (isset($run->rPr->vertAlign, $run->rPr->vertAlign['val'])) {
    +                            $vertAlign = strtolower((string) $run->rPr->vertAlign['val']);
    +                            if ($vertAlign == 'superscript') {
    +                                $objText->getFont()->setSuperscript(true);
    +                            }
    +                            if ($vertAlign == 'subscript') {
    +                                $objText->getFont()->setSubscript(true);
    +                            }
    +                        }
    +                        if (isset($run->rPr->u) && !isset($run->rPr->u['val'])) {
    +                            $objText->getFont()->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE);
    +                        } elseif (isset($run->rPr->u, $run->rPr->u['val'])) {
    +                            $objText->getFont()->setUnderline((string) $run->rPr->u['val']);
    +                        }
    +                        if ((isset($run->rPr->strike['val']) && self::boolean((string) $run->rPr->strike['val'])) ||
    +                            (isset($run->rPr->strike) && !isset($run->rPr->strike['val']))) {
    +                            $objText->getFont()->setStrikethrough(true);
    +                        }
    +                    }
    +                }
    +            }
    +        }
    +
    +        return $value;
    +    }
    +
    +    /**
    +     * @param Spreadsheet $excel
    +     * @param mixed $customUITarget
    +     * @param mixed $zip
    +     */
    +    private function readRibbon(Spreadsheet $excel, $customUITarget, $zip)
    +    {
    +        $baseDir = dirname($customUITarget);
    +        $nameCustomUI = basename($customUITarget);
    +        // get the xml file (ribbon)
    +        $localRibbon = $this->getFromZipArchive($zip, $customUITarget);
    +        $customUIImagesNames = [];
    +        $customUIImagesBinaries = [];
    +        // something like customUI/_rels/customUI.xml.rels
    +        $pathRels = $baseDir . '/_rels/' . $nameCustomUI . '.rels';
    +        $dataRels = $this->getFromZipArchive($zip, $pathRels);
    +        if ($dataRels) {
    +            // exists and not empty if the ribbon have some pictures (other than internal MSO)
    +            $UIRels = simplexml_load_string(
    +                $this->securityScanner->scan($dataRels),
    +                'SimpleXMLElement',
    +                Settings::getLibXmlLoaderOptions()
    +            );
    +            if (false !== $UIRels) {
    +                // we need to save id and target to avoid parsing customUI.xml and "guess" if it's a pseudo callback who load the image
    +                foreach ($UIRels->Relationship as $ele) {
    +                    if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image') {
    +                        // an image ?
    +                        $customUIImagesNames[(string) $ele['Id']] = (string) $ele['Target'];
    +                        $customUIImagesBinaries[(string) $ele['Target']] = $this->getFromZipArchive($zip, $baseDir . '/' . (string) $ele['Target']);
    +                    }
    +                }
    +            }
    +        }
    +        if ($localRibbon) {
    +            $excel->setRibbonXMLData($customUITarget, $localRibbon);
    +            if (count($customUIImagesNames) > 0 && count($customUIImagesBinaries) > 0) {
    +                $excel->setRibbonBinObjects($customUIImagesNames, $customUIImagesBinaries);
    +            } else {
    +                $excel->setRibbonBinObjects(null, null);
    +            }
    +        } else {
    +            $excel->setRibbonXMLData(null, null);
    +            $excel->setRibbonBinObjects(null, null);
    +        }
    +    }
    +
    +    private static function getArrayItem($array, $key = 0)
    +    {
    +        return isset($array[$key]) ? $array[$key] : null;
    +    }
    +
    +    private static function dirAdd($base, $add)
    +    {
    +        return preg_replace('~[^/]+/\.\./~', '', dirname($base) . "/$add");
    +    }
    +
    +    private static function toCSSArray($style)
    +    {
    +        $style = trim(str_replace(["\r", "\n"], '', $style), ';');
    +
    +        $temp = explode(';', $style);
    +        $style = [];
    +        foreach ($temp as $item) {
    +            $item = explode(':', $item);
    +
    +            if (strpos($item[1], 'px') !== false) {
    +                $item[1] = str_replace('px', '', $item[1]);
    +            }
    +            if (strpos($item[1], 'pt') !== false) {
    +                $item[1] = str_replace('pt', '', $item[1]);
    +                $item[1] = Font::fontSizeToPixels($item[1]);
    +            }
    +            if (strpos($item[1], 'in') !== false) {
    +                $item[1] = str_replace('in', '', $item[1]);
    +                $item[1] = Font::inchSizeToPixels($item[1]);
    +            }
    +            if (strpos($item[1], 'cm') !== false) {
    +                $item[1] = str_replace('cm', '', $item[1]);
    +                $item[1] = Font::centimeterSizeToPixels($item[1]);
    +            }
    +
    +            $style[$item[0]] = $item[1];
    +        }
    +
    +        return $style;
    +    }
    +
    +    private static function boolean($value)
    +    {
    +        if (is_object($value)) {
    +            $value = (string) $value;
    +        }
    +        if (is_numeric($value)) {
    +            return (bool) $value;
    +        }
    +
    +        return $value === 'true' || $value === 'TRUE';
    +    }
    +
    +    /**
    +     * @param \PhpOffice\PhpSpreadsheet\Worksheet\Drawing $objDrawing
    +     * @param \SimpleXMLElement $cellAnchor
    +     * @param array $hyperlinks
    +     */
    +    private function readHyperLinkDrawing($objDrawing, $cellAnchor, $hyperlinks)
    +    {
    +        $hlinkClick = $cellAnchor->pic->nvPicPr->cNvPr->children('http://schemas.openxmlformats.org/drawingml/2006/main')->hlinkClick;
    +
    +        if ($hlinkClick->count() === 0) {
    +            return;
    +        }
    +
    +        $hlinkId = (string) $hlinkClick->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships')['id'];
    +        $hyperlink = new Hyperlink(
    +            $hyperlinks[$hlinkId],
    +            (string) self::getArrayItem($cellAnchor->pic->nvPicPr->cNvPr->attributes(), 'name')
    +        );
    +        $objDrawing->setHyperlink($hyperlink);
    +    }
    +
    +    private function readProtection(Spreadsheet $excel, SimpleXMLElement $xmlWorkbook)
    +    {
    +        if (!$xmlWorkbook->workbookProtection) {
    +            return;
    +        }
    +
    +        if ($xmlWorkbook->workbookProtection['lockRevision']) {
    +            $excel->getSecurity()->setLockRevision((bool) $xmlWorkbook->workbookProtection['lockRevision']);
    +        }
    +
    +        if ($xmlWorkbook->workbookProtection['lockStructure']) {
    +            $excel->getSecurity()->setLockStructure((bool) $xmlWorkbook->workbookProtection['lockStructure']);
    +        }
    +
    +        if ($xmlWorkbook->workbookProtection['lockWindows']) {
    +            $excel->getSecurity()->setLockWindows((bool) $xmlWorkbook->workbookProtection['lockWindows']);
    +        }
    +
    +        if ($xmlWorkbook->workbookProtection['revisionsPassword']) {
    +            $excel->getSecurity()->setRevisionsPassword((string) $xmlWorkbook->workbookProtection['revisionsPassword'], true);
    +        }
    +
    +        if ($xmlWorkbook->workbookProtection['workbookPassword']) {
    +            $excel->getSecurity()->setWorkbookPassword((string) $xmlWorkbook->workbookProtection['workbookPassword'], true);
    +        }
    +    }
    +
    +    private function readFormControlProperties(Spreadsheet $excel, ZipArchive $zip, $dir, $fileWorksheet, $docSheet, array &$unparsedLoadedData)
    +    {
    +        if (!$zip->locateName(dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')) {
    +            return;
    +        }
    +
    +        //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +        $relsWorksheet = simplexml_load_string(
    +            $this->securityScanner->scan(
    +                $this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')
    +            ),
    +            'SimpleXMLElement',
    +            Settings::getLibXmlLoaderOptions()
    +        );
    +        $ctrlProps = [];
    +        foreach ($relsWorksheet->Relationship as $ele) {
    +            if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/ctrlProp') {
    +                $ctrlProps[(string) $ele['Id']] = $ele;
    +            }
    +        }
    +
    +        $unparsedCtrlProps = &$unparsedLoadedData['sheets'][$docSheet->getCodeName()]['ctrlProps'];
    +        foreach ($ctrlProps as $rId => $ctrlProp) {
    +            $rId = substr($rId, 3); // rIdXXX
    +            $unparsedCtrlProps[$rId] = [];
    +            $unparsedCtrlProps[$rId]['filePath'] = self::dirAdd("$dir/$fileWorksheet", $ctrlProp['Target']);
    +            $unparsedCtrlProps[$rId]['relFilePath'] = (string) $ctrlProp['Target'];
    +            $unparsedCtrlProps[$rId]['content'] = $this->securityScanner->scan($this->getFromZipArchive($zip, $unparsedCtrlProps[$rId]['filePath']));
    +        }
    +        unset($unparsedCtrlProps);
    +    }
    +
    +    private function readPrinterSettings(Spreadsheet $excel, ZipArchive $zip, $dir, $fileWorksheet, $docSheet, array &$unparsedLoadedData)
    +    {
    +        if (!$zip->locateName(dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')) {
    +            return;
    +        }
    +
    +        //~ http://schemas.openxmlformats.org/package/2006/relationships"
    +        $relsWorksheet = simplexml_load_string(
    +            $this->securityScanner->scan(
    +                $this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels')
    +            ),
    +            'SimpleXMLElement',
    +            Settings::getLibXmlLoaderOptions()
    +        );
    +        $sheetPrinterSettings = [];
    +        foreach ($relsWorksheet->Relationship as $ele) {
    +            if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings') {
    +                $sheetPrinterSettings[(string) $ele['Id']] = $ele;
    +            }
    +        }
    +
    +        $unparsedPrinterSettings = &$unparsedLoadedData['sheets'][$docSheet->getCodeName()]['printerSettings'];
    +        foreach ($sheetPrinterSettings as $rId => $printerSettings) {
    +            $rId = substr($rId, 3); // rIdXXX
    +            $unparsedPrinterSettings[$rId] = [];
    +            $unparsedPrinterSettings[$rId]['filePath'] = self::dirAdd("$dir/$fileWorksheet", $printerSettings['Target']);
    +            $unparsedPrinterSettings[$rId]['relFilePath'] = (string) $printerSettings['Target'];
    +            $unparsedPrinterSettings[$rId]['content'] = $this->securityScanner->scan($this->getFromZipArchive($zip, $unparsedPrinterSettings[$rId]['filePath']));
    +        }
    +        unset($unparsedPrinterSettings);
    +    }
    +
    +    /**
    +     * Convert an 'xsd:boolean' XML value to a PHP boolean value.
    +     * A valid 'xsd:boolean' XML value can be one of the following
    +     * four values: 'true', 'false', '1', '0'.  It is case sensitive.
    +     *
    +     * Note that just doing '(bool) $xsdBoolean' is not safe,
    +     * since '(bool) "false"' returns true.
    +     *
    +     * @see https://www.w3.org/TR/xmlschema11-2/#boolean
    +     *
    +     * @param string $xsdBoolean An XML string value of type 'xsd:boolean'
    +     *
    +     * @return bool  Boolean value
    +     */
    +    private function castXsdBooleanToBool($xsdBoolean)
    +    {
    +        if ($xsdBoolean === 'false') {
    +            return false;
    +        }
    +
    +        return (bool) $xsdBoolean;
    +    }
    +
    +    /**
    +     * Read columns and rows attributes from XML and set them on the worksheet.
    +     *
    +     * @param SimpleXMLElement $xmlSheet
    +     * @param Worksheet $docSheet
    +     */
    +    private function readColumnsAndRowsAttributes(SimpleXMLElement $xmlSheet, Worksheet $docSheet)
    +    {
    +        $columnsAttributes = [];
    +        $rowsAttributes = [];
    +        if (isset($xmlSheet->cols) && !$this->readDataOnly) {
    +            foreach ($xmlSheet->cols->col as $col) {
    +                for ($i = (int) ($col['min']); $i <= (int) ($col['max']); ++$i) {
    +                    if ($col['style'] && !$this->readDataOnly) {
    +                        $columnsAttributes[Coordinate::stringFromColumnIndex($i)]['xfIndex'] = (int) $col['style'];
    +                    }
    +                    if (self::boolean($col['hidden'])) {
    +                        $columnsAttributes[Coordinate::stringFromColumnIndex($i)]['visible'] = false;
    +                    }
    +                    if (self::boolean($col['collapsed'])) {
    +                        $columnsAttributes[Coordinate::stringFromColumnIndex($i)]['collapsed'] = true;
    +                    }
    +                    if ($col['outlineLevel'] > 0) {
    +                        $columnsAttributes[Coordinate::stringFromColumnIndex($i)]['outlineLevel'] = (int) $col['outlineLevel'];
    +                    }
    +                    $columnsAttributes[Coordinate::stringFromColumnIndex($i)]['width'] = (float) $col['width'];
    +
    +                    if ((int) ($col['max']) == 16384) {
    +                        break;
    +                    }
    +                }
    +            }
    +        }
    +
    +        if ($xmlSheet && $xmlSheet->sheetData && $xmlSheet->sheetData->row) {
    +            foreach ($xmlSheet->sheetData->row as $row) {
    +                if ($row['ht'] && !$this->readDataOnly) {
    +                    $rowsAttributes[(int) $row['r']]['rowHeight'] = (float) $row['ht'];
    +                }
    +                if (self::boolean($row['hidden']) && !$this->readDataOnly) {
    +                    $rowsAttributes[(int) $row['r']]['visible'] = false;
    +                }
    +                if (self::boolean($row['collapsed'])) {
    +                    $rowsAttributes[(int) $row['r']]['collapsed'] = true;
    +                }
    +                if ($row['outlineLevel'] > 0) {
    +                    $rowsAttributes[(int) $row['r']]['outlineLevel'] = (int) $row['outlineLevel'];
    +                }
    +                if ($row['s'] && !$this->readDataOnly) {
    +                    $rowsAttributes[(int) $row['r']]['xfIndex'] = (int) $row['s'];
    +                }
    +            }
    +        }
    +
    +        $readFilter = (\get_class($this->getReadFilter()) !== DefaultReadFilter::class ? $this->getReadFilter() : null);
    +
    +        // set columns/rows attributes
    +        $columnsAttributesSet = [];
    +        $rowsAttributesSet = [];
    +        foreach ($columnsAttributes as $coordColumn => $columnAttributes) {
    +            if ($readFilter !== null) {
    +                foreach ($rowsAttributes as $coordRow => $rowAttributes) {
    +                    if (!$readFilter->readCell($coordColumn, $coordRow, $docSheet->getTitle())) {
    +                        continue 2;
    +                    }
    +                }
    +            }
    +
    +            if (!isset($columnsAttributesSet[$coordColumn])) {
    +                $this->setColumnAttributes($docSheet, $coordColumn, $columnAttributes);
    +                $columnsAttributesSet[$coordColumn] = true;
    +            }
    +        }
    +
    +        foreach ($rowsAttributes as $coordRow => $rowAttributes) {
    +            if ($readFilter !== null) {
    +                foreach ($columnsAttributes as $coordColumn => $columnAttributes) {
    +                    if (!$readFilter->readCell($coordColumn, $coordRow, $docSheet->getTitle())) {
    +                        continue 2;
    +                    }
    +                }
    +            }
    +
    +            if (!isset($rowsAttributesSet[$coordRow])) {
    +                $this->setRowAttributes($docSheet, $coordRow, $rowAttributes);
    +                $rowsAttributesSet[$coordRow] = true;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xlsx/Chart.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xlsx/Chart.php
    new file mode 100644
    index 00000000000..2b920d705c3
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xlsx/Chart.php
    @@ -0,0 +1,570 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Functions;
    +use PhpOffice\PhpSpreadsheet\Chart\DataSeries;
    +use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues;
    +use PhpOffice\PhpSpreadsheet\Chart\Layout;
    +use PhpOffice\PhpSpreadsheet\Chart\Legend;
    +use PhpOffice\PhpSpreadsheet\Chart\PlotArea;
    +use PhpOffice\PhpSpreadsheet\Chart\Title;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Style\Color;
    +use PhpOffice\PhpSpreadsheet\Style\Font;
    +use SimpleXMLElement;
    +
    +class Chart
    +{
    +    /**
    +     * @param SimpleXMLElement $component
    +     * @param string $name
    +     * @param string $format
    +     *
    +     * @return null|bool|float|int|string
    +     */
    +    private static function getAttribute(SimpleXMLElement $component, $name, $format)
    +    {
    +        $attributes = $component->attributes();
    +        if (isset($attributes[$name])) {
    +            if ($format == 'string') {
    +                return (string) $attributes[$name];
    +            } elseif ($format == 'integer') {
    +                return (int) $attributes[$name];
    +            } elseif ($format == 'boolean') {
    +                return (bool) ($attributes[$name] === '0' || $attributes[$name] !== 'true') ? false : true;
    +            }
    +
    +            return (float) $attributes[$name];
    +        }
    +
    +        return null;
    +    }
    +
    +    private static function readColor($color, $background = false)
    +    {
    +        if (isset($color['rgb'])) {
    +            return (string) $color['rgb'];
    +        } elseif (isset($color['indexed'])) {
    +            return Color::indexedColor($color['indexed'] - 7, $background)->getARGB();
    +        }
    +    }
    +
    +    /**
    +     * @param SimpleXMLElement $chartElements
    +     * @param string $chartName
    +     *
    +     * @return \PhpOffice\PhpSpreadsheet\Chart\Chart
    +     */
    +    public static function readChart(SimpleXMLElement $chartElements, $chartName)
    +    {
    +        $namespacesChartMeta = $chartElements->getNamespaces(true);
    +        $chartElementsC = $chartElements->children($namespacesChartMeta['c']);
    +
    +        $XaxisLabel = $YaxisLabel = $legend = $title = null;
    +        $dispBlanksAs = $plotVisOnly = null;
    +
    +        foreach ($chartElementsC as $chartElementKey => $chartElement) {
    +            switch ($chartElementKey) {
    +                case 'chart':
    +                    foreach ($chartElement as $chartDetailsKey => $chartDetails) {
    +                        $chartDetailsC = $chartDetails->children($namespacesChartMeta['c']);
    +                        switch ($chartDetailsKey) {
    +                            case 'plotArea':
    +                                $plotAreaLayout = $XaxisLable = $YaxisLable = null;
    +                                $plotSeries = $plotAttributes = [];
    +                                foreach ($chartDetails as $chartDetailKey => $chartDetail) {
    +                                    switch ($chartDetailKey) {
    +                                        case 'layout':
    +                                            $plotAreaLayout = self::chartLayoutDetails($chartDetail, $namespacesChartMeta);
    +
    +                                            break;
    +                                        case 'catAx':
    +                                            if (isset($chartDetail->title)) {
    +                                                $XaxisLabel = self::chartTitle($chartDetail->title->children($namespacesChartMeta['c']), $namespacesChartMeta);
    +                                            }
    +
    +                                            break;
    +                                        case 'dateAx':
    +                                            if (isset($chartDetail->title)) {
    +                                                $XaxisLabel = self::chartTitle($chartDetail->title->children($namespacesChartMeta['c']), $namespacesChartMeta);
    +                                            }
    +
    +                                            break;
    +                                        case 'valAx':
    +                                            if (isset($chartDetail->title)) {
    +                                                $YaxisLabel = self::chartTitle($chartDetail->title->children($namespacesChartMeta['c']), $namespacesChartMeta);
    +                                            }
    +
    +                                            break;
    +                                        case 'barChart':
    +                                        case 'bar3DChart':
    +                                            $barDirection = self::getAttribute($chartDetail->barDir, 'val', 'string');
    +                                            $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey);
    +                                            $plotSer->setPlotDirection($barDirection);
    +                                            $plotSeries[] = $plotSer;
    +                                            $plotAttributes = self::readChartAttributes($chartDetail);
    +
    +                                            break;
    +                                        case 'lineChart':
    +                                        case 'line3DChart':
    +                                            $plotSeries[] = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey);
    +                                            $plotAttributes = self::readChartAttributes($chartDetail);
    +
    +                                            break;
    +                                        case 'areaChart':
    +                                        case 'area3DChart':
    +                                            $plotSeries[] = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey);
    +                                            $plotAttributes = self::readChartAttributes($chartDetail);
    +
    +                                            break;
    +                                        case 'doughnutChart':
    +                                        case 'pieChart':
    +                                        case 'pie3DChart':
    +                                            $explosion = isset($chartDetail->ser->explosion);
    +                                            $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey);
    +                                            $plotSer->setPlotStyle($explosion);
    +                                            $plotSeries[] = $plotSer;
    +                                            $plotAttributes = self::readChartAttributes($chartDetail);
    +
    +                                            break;
    +                                        case 'scatterChart':
    +                                            $scatterStyle = self::getAttribute($chartDetail->scatterStyle, 'val', 'string');
    +                                            $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey);
    +                                            $plotSer->setPlotStyle($scatterStyle);
    +                                            $plotSeries[] = $plotSer;
    +                                            $plotAttributes = self::readChartAttributes($chartDetail);
    +
    +                                            break;
    +                                        case 'bubbleChart':
    +                                            $bubbleScale = self::getAttribute($chartDetail->bubbleScale, 'val', 'integer');
    +                                            $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey);
    +                                            $plotSer->setPlotStyle($bubbleScale);
    +                                            $plotSeries[] = $plotSer;
    +                                            $plotAttributes = self::readChartAttributes($chartDetail);
    +
    +                                            break;
    +                                        case 'radarChart':
    +                                            $radarStyle = self::getAttribute($chartDetail->radarStyle, 'val', 'string');
    +                                            $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey);
    +                                            $plotSer->setPlotStyle($radarStyle);
    +                                            $plotSeries[] = $plotSer;
    +                                            $plotAttributes = self::readChartAttributes($chartDetail);
    +
    +                                            break;
    +                                        case 'surfaceChart':
    +                                        case 'surface3DChart':
    +                                            $wireFrame = self::getAttribute($chartDetail->wireframe, 'val', 'boolean');
    +                                            $plotSer = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey);
    +                                            $plotSer->setPlotStyle($wireFrame);
    +                                            $plotSeries[] = $plotSer;
    +                                            $plotAttributes = self::readChartAttributes($chartDetail);
    +
    +                                            break;
    +                                        case 'stockChart':
    +                                            $plotSeries[] = self::chartDataSeries($chartDetail, $namespacesChartMeta, $chartDetailKey);
    +                                            $plotAttributes = self::readChartAttributes($plotAreaLayout);
    +
    +                                            break;
    +                                    }
    +                                }
    +                                if ($plotAreaLayout == null) {
    +                                    $plotAreaLayout = new Layout();
    +                                }
    +                                $plotArea = new PlotArea($plotAreaLayout, $plotSeries);
    +                                self::setChartAttributes($plotAreaLayout, $plotAttributes);
    +
    +                                break;
    +                            case 'plotVisOnly':
    +                                $plotVisOnly = self::getAttribute($chartDetails, 'val', 'string');
    +
    +                                break;
    +                            case 'dispBlanksAs':
    +                                $dispBlanksAs = self::getAttribute($chartDetails, 'val', 'string');
    +
    +                                break;
    +                            case 'title':
    +                                $title = self::chartTitle($chartDetails, $namespacesChartMeta);
    +
    +                                break;
    +                            case 'legend':
    +                                $legendPos = 'r';
    +                                $legendLayout = null;
    +                                $legendOverlay = false;
    +                                foreach ($chartDetails as $chartDetailKey => $chartDetail) {
    +                                    switch ($chartDetailKey) {
    +                                        case 'legendPos':
    +                                            $legendPos = self::getAttribute($chartDetail, 'val', 'string');
    +
    +                                            break;
    +                                        case 'overlay':
    +                                            $legendOverlay = self::getAttribute($chartDetail, 'val', 'boolean');
    +
    +                                            break;
    +                                        case 'layout':
    +                                            $legendLayout = self::chartLayoutDetails($chartDetail, $namespacesChartMeta);
    +
    +                                            break;
    +                                    }
    +                                }
    +                                $legend = new Legend($legendPos, $legendLayout, $legendOverlay);
    +
    +                                break;
    +                        }
    +                    }
    +            }
    +        }
    +        $chart = new \PhpOffice\PhpSpreadsheet\Chart\Chart($chartName, $title, $legend, $plotArea, $plotVisOnly, $dispBlanksAs, $XaxisLabel, $YaxisLabel);
    +
    +        return $chart;
    +    }
    +
    +    private static function chartTitle(SimpleXMLElement $titleDetails, array $namespacesChartMeta)
    +    {
    +        $caption = [];
    +        $titleLayout = null;
    +        foreach ($titleDetails as $titleDetailKey => $chartDetail) {
    +            switch ($titleDetailKey) {
    +                case 'tx':
    +                    $titleDetails = $chartDetail->rich->children($namespacesChartMeta['a']);
    +                    foreach ($titleDetails as $titleKey => $titleDetail) {
    +                        switch ($titleKey) {
    +                            case 'p':
    +                                $titleDetailPart = $titleDetail->children($namespacesChartMeta['a']);
    +                                $caption[] = self::parseRichText($titleDetailPart);
    +                        }
    +                    }
    +
    +                    break;
    +                case 'layout':
    +                    $titleLayout = self::chartLayoutDetails($chartDetail, $namespacesChartMeta);
    +
    +                    break;
    +            }
    +        }
    +
    +        return new Title($caption, $titleLayout);
    +    }
    +
    +    private static function chartLayoutDetails($chartDetail, $namespacesChartMeta)
    +    {
    +        if (!isset($chartDetail->manualLayout)) {
    +            return null;
    +        }
    +        $details = $chartDetail->manualLayout->children($namespacesChartMeta['c']);
    +        if ($details === null) {
    +            return null;
    +        }
    +        $layout = [];
    +        foreach ($details as $detailKey => $detail) {
    +            $layout[$detailKey] = self::getAttribute($detail, 'val', 'string');
    +        }
    +
    +        return new Layout($layout);
    +    }
    +
    +    private static function chartDataSeries($chartDetail, $namespacesChartMeta, $plotType)
    +    {
    +        $multiSeriesType = null;
    +        $smoothLine = false;
    +        $seriesLabel = $seriesCategory = $seriesValues = $plotOrder = [];
    +
    +        $seriesDetailSet = $chartDetail->children($namespacesChartMeta['c']);
    +        foreach ($seriesDetailSet as $seriesDetailKey => $seriesDetails) {
    +            switch ($seriesDetailKey) {
    +                case 'grouping':
    +                    $multiSeriesType = self::getAttribute($chartDetail->grouping, 'val', 'string');
    +
    +                    break;
    +                case 'ser':
    +                    $marker = null;
    +                    $seriesIndex = '';
    +                    foreach ($seriesDetails as $seriesKey => $seriesDetail) {
    +                        switch ($seriesKey) {
    +                            case 'idx':
    +                                $seriesIndex = self::getAttribute($seriesDetail, 'val', 'integer');
    +
    +                                break;
    +                            case 'order':
    +                                $seriesOrder = self::getAttribute($seriesDetail, 'val', 'integer');
    +                                $plotOrder[$seriesIndex] = $seriesOrder;
    +
    +                                break;
    +                            case 'tx':
    +                                $seriesLabel[$seriesIndex] = self::chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta);
    +
    +                                break;
    +                            case 'marker':
    +                                $marker = self::getAttribute($seriesDetail->symbol, 'val', 'string');
    +
    +                                break;
    +                            case 'smooth':
    +                                $smoothLine = self::getAttribute($seriesDetail, 'val', 'boolean');
    +
    +                                break;
    +                            case 'cat':
    +                                $seriesCategory[$seriesIndex] = self::chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta);
    +
    +                                break;
    +                            case 'val':
    +                                $seriesValues[$seriesIndex] = self::chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta, $marker);
    +
    +                                break;
    +                            case 'xVal':
    +                                $seriesCategory[$seriesIndex] = self::chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta, $marker);
    +
    +                                break;
    +                            case 'yVal':
    +                                $seriesValues[$seriesIndex] = self::chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta, $marker);
    +
    +                                break;
    +                        }
    +                    }
    +            }
    +        }
    +
    +        return new DataSeries($plotType, $multiSeriesType, $plotOrder, $seriesLabel, $seriesCategory, $seriesValues, $smoothLine);
    +    }
    +
    +    private static function chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta, $marker = null)
    +    {
    +        if (isset($seriesDetail->strRef)) {
    +            $seriesSource = (string) $seriesDetail->strRef->f;
    +            $seriesData = self::chartDataSeriesValues($seriesDetail->strRef->strCache->children($namespacesChartMeta['c']), 's');
    +
    +            return new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker);
    +        } elseif (isset($seriesDetail->numRef)) {
    +            $seriesSource = (string) $seriesDetail->numRef->f;
    +            $seriesData = self::chartDataSeriesValues($seriesDetail->numRef->numCache->children($namespacesChartMeta['c']));
    +
    +            return new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker);
    +        } elseif (isset($seriesDetail->multiLvlStrRef)) {
    +            $seriesSource = (string) $seriesDetail->multiLvlStrRef->f;
    +            $seriesData = self::chartDataSeriesValuesMultiLevel($seriesDetail->multiLvlStrRef->multiLvlStrCache->children($namespacesChartMeta['c']), 's');
    +            $seriesData['pointCount'] = count($seriesData['dataValues']);
    +
    +            return new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker);
    +        } elseif (isset($seriesDetail->multiLvlNumRef)) {
    +            $seriesSource = (string) $seriesDetail->multiLvlNumRef->f;
    +            $seriesData = self::chartDataSeriesValuesMultiLevel($seriesDetail->multiLvlNumRef->multiLvlNumCache->children($namespacesChartMeta['c']), 's');
    +            $seriesData['pointCount'] = count($seriesData['dataValues']);
    +
    +            return new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker);
    +        }
    +
    +        return null;
    +    }
    +
    +    private static function chartDataSeriesValues($seriesValueSet, $dataType = 'n')
    +    {
    +        $seriesVal = [];
    +        $formatCode = '';
    +        $pointCount = 0;
    +
    +        foreach ($seriesValueSet as $seriesValueIdx => $seriesValue) {
    +            switch ($seriesValueIdx) {
    +                case 'ptCount':
    +                    $pointCount = self::getAttribute($seriesValue, 'val', 'integer');
    +
    +                    break;
    +                case 'formatCode':
    +                    $formatCode = (string) $seriesValue;
    +
    +                    break;
    +                case 'pt':
    +                    $pointVal = self::getAttribute($seriesValue, 'idx', 'integer');
    +                    if ($dataType == 's') {
    +                        $seriesVal[$pointVal] = (string) $seriesValue->v;
    +                    } elseif ($seriesValue->v === Functions::NA()) {
    +                        $seriesVal[$pointVal] = null;
    +                    } else {
    +                        $seriesVal[$pointVal] = (float) $seriesValue->v;
    +                    }
    +
    +                    break;
    +            }
    +        }
    +
    +        return [
    +            'formatCode' => $formatCode,
    +            'pointCount' => $pointCount,
    +            'dataValues' => $seriesVal,
    +        ];
    +    }
    +
    +    private static function chartDataSeriesValuesMultiLevel($seriesValueSet, $dataType = 'n')
    +    {
    +        $seriesVal = [];
    +        $formatCode = '';
    +        $pointCount = 0;
    +
    +        foreach ($seriesValueSet->lvl as $seriesLevelIdx => $seriesLevel) {
    +            foreach ($seriesLevel as $seriesValueIdx => $seriesValue) {
    +                switch ($seriesValueIdx) {
    +                    case 'ptCount':
    +                        $pointCount = self::getAttribute($seriesValue, 'val', 'integer');
    +
    +                        break;
    +                    case 'formatCode':
    +                        $formatCode = (string) $seriesValue;
    +
    +                        break;
    +                    case 'pt':
    +                        $pointVal = self::getAttribute($seriesValue, 'idx', 'integer');
    +                        if ($dataType == 's') {
    +                            $seriesVal[$pointVal][] = (string) $seriesValue->v;
    +                        } elseif ($seriesValue->v === Functions::NA()) {
    +                            $seriesVal[$pointVal] = null;
    +                        } else {
    +                            $seriesVal[$pointVal][] = (float) $seriesValue->v;
    +                        }
    +
    +                        break;
    +                }
    +            }
    +        }
    +
    +        return [
    +            'formatCode' => $formatCode,
    +            'pointCount' => $pointCount,
    +            'dataValues' => $seriesVal,
    +        ];
    +    }
    +
    +    private static function parseRichText(SimpleXMLElement $titleDetailPart)
    +    {
    +        $value = new RichText();
    +        $objText = null;
    +        foreach ($titleDetailPart as $titleDetailElementKey => $titleDetailElement) {
    +            if (isset($titleDetailElement->t)) {
    +                $objText = $value->createTextRun((string) $titleDetailElement->t);
    +            }
    +            if (isset($titleDetailElement->rPr)) {
    +                if (isset($titleDetailElement->rPr->rFont['val'])) {
    +                    $objText->getFont()->setName((string) $titleDetailElement->rPr->rFont['val']);
    +                }
    +
    +                $fontSize = (self::getAttribute($titleDetailElement->rPr, 'sz', 'integer'));
    +                if ($fontSize !== null) {
    +                    $objText->getFont()->setSize(floor($fontSize / 100));
    +                }
    +
    +                $fontColor = (self::getAttribute($titleDetailElement->rPr, 'color', 'string'));
    +                if ($fontColor !== null) {
    +                    $objText->getFont()->setColor(new Color(self::readColor($fontColor)));
    +                }
    +
    +                $bold = self::getAttribute($titleDetailElement->rPr, 'b', 'boolean');
    +                if ($bold !== null) {
    +                    $objText->getFont()->setBold($bold);
    +                }
    +
    +                $italic = self::getAttribute($titleDetailElement->rPr, 'i', 'boolean');
    +                if ($italic !== null) {
    +                    $objText->getFont()->setItalic($italic);
    +                }
    +
    +                $baseline = self::getAttribute($titleDetailElement->rPr, 'baseline', 'integer');
    +                if ($baseline !== null) {
    +                    if ($baseline > 0) {
    +                        $objText->getFont()->setSuperscript(true);
    +                    } elseif ($baseline < 0) {
    +                        $objText->getFont()->setSubscript(true);
    +                    }
    +                }
    +
    +                $underscore = (self::getAttribute($titleDetailElement->rPr, 'u', 'string'));
    +                if ($underscore !== null) {
    +                    if ($underscore == 'sng') {
    +                        $objText->getFont()->setUnderline(Font::UNDERLINE_SINGLE);
    +                    } elseif ($underscore == 'dbl') {
    +                        $objText->getFont()->setUnderline(Font::UNDERLINE_DOUBLE);
    +                    } else {
    +                        $objText->getFont()->setUnderline(Font::UNDERLINE_NONE);
    +                    }
    +                }
    +
    +                $strikethrough = (self::getAttribute($titleDetailElement->rPr, 's', 'string'));
    +                if ($strikethrough !== null) {
    +                    if ($strikethrough == 'noStrike') {
    +                        $objText->getFont()->setStrikethrough(false);
    +                    } else {
    +                        $objText->getFont()->setStrikethrough(true);
    +                    }
    +                }
    +            }
    +        }
    +
    +        return $value;
    +    }
    +
    +    private static function readChartAttributes($chartDetail)
    +    {
    +        $plotAttributes = [];
    +        if (isset($chartDetail->dLbls)) {
    +            if (isset($chartDetail->dLbls->howLegendKey)) {
    +                $plotAttributes['showLegendKey'] = self::getAttribute($chartDetail->dLbls->showLegendKey, 'val', 'string');
    +            }
    +            if (isset($chartDetail->dLbls->showVal)) {
    +                $plotAttributes['showVal'] = self::getAttribute($chartDetail->dLbls->showVal, 'val', 'string');
    +            }
    +            if (isset($chartDetail->dLbls->showCatName)) {
    +                $plotAttributes['showCatName'] = self::getAttribute($chartDetail->dLbls->showCatName, 'val', 'string');
    +            }
    +            if (isset($chartDetail->dLbls->showSerName)) {
    +                $plotAttributes['showSerName'] = self::getAttribute($chartDetail->dLbls->showSerName, 'val', 'string');
    +            }
    +            if (isset($chartDetail->dLbls->showPercent)) {
    +                $plotAttributes['showPercent'] = self::getAttribute($chartDetail->dLbls->showPercent, 'val', 'string');
    +            }
    +            if (isset($chartDetail->dLbls->showBubbleSize)) {
    +                $plotAttributes['showBubbleSize'] = self::getAttribute($chartDetail->dLbls->showBubbleSize, 'val', 'string');
    +            }
    +            if (isset($chartDetail->dLbls->showLeaderLines)) {
    +                $plotAttributes['showLeaderLines'] = self::getAttribute($chartDetail->dLbls->showLeaderLines, 'val', 'string');
    +            }
    +        }
    +
    +        return $plotAttributes;
    +    }
    +
    +    /**
    +     * @param Layout $plotArea
    +     * @param mixed $plotAttributes
    +     */
    +    private static function setChartAttributes(Layout $plotArea, $plotAttributes)
    +    {
    +        foreach ($plotAttributes as $plotAttributeKey => $plotAttributeValue) {
    +            switch ($plotAttributeKey) {
    +                case 'showLegendKey':
    +                    $plotArea->setShowLegendKey($plotAttributeValue);
    +
    +                    break;
    +                case 'showVal':
    +                    $plotArea->setShowVal($plotAttributeValue);
    +
    +                    break;
    +                case 'showCatName':
    +                    $plotArea->setShowCatName($plotAttributeValue);
    +
    +                    break;
    +                case 'showSerName':
    +                    $plotArea->setShowSerName($plotAttributeValue);
    +
    +                    break;
    +                case 'showPercent':
    +                    $plotArea->setShowPercent($plotAttributeValue);
    +
    +                    break;
    +                case 'showBubbleSize':
    +                    $plotArea->setShowBubbleSize($plotAttributeValue);
    +
    +                    break;
    +                case 'showLeaderLines':
    +                    $plotArea->setShowLeaderLines($plotAttributeValue);
    +
    +                    break;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xlsx/Theme.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xlsx/Theme.php
    new file mode 100644
    index 00000000000..c105f3c1a66
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xlsx/Theme.php
    @@ -0,0 +1,93 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader\Xlsx;
    +
    +class Theme
    +{
    +    /**
    +     * Theme Name.
    +     *
    +     * @var string
    +     */
    +    private $themeName;
    +
    +    /**
    +     * Colour Scheme Name.
    +     *
    +     * @var string
    +     */
    +    private $colourSchemeName;
    +
    +    /**
    +     * Colour Map.
    +     *
    +     * @var array of string
    +     */
    +    private $colourMap;
    +
    +    /**
    +     * Create a new Theme.
    +     *
    +     * @param mixed $themeName
    +     * @param mixed $colourSchemeName
    +     * @param mixed $colourMap
    +     */
    +    public function __construct($themeName, $colourSchemeName, $colourMap)
    +    {
    +        // Initialise values
    +        $this->themeName = $themeName;
    +        $this->colourSchemeName = $colourSchemeName;
    +        $this->colourMap = $colourMap;
    +    }
    +
    +    /**
    +     * Get Theme Name.
    +     *
    +     * @return string
    +     */
    +    public function getThemeName()
    +    {
    +        return $this->themeName;
    +    }
    +
    +    /**
    +     * Get colour Scheme Name.
    +     *
    +     * @return string
    +     */
    +    public function getColourSchemeName()
    +    {
    +        return $this->colourSchemeName;
    +    }
    +
    +    /**
    +     * Get colour Map Value by Position.
    +     *
    +     * @param mixed $index
    +     *
    +     * @return string
    +     */
    +    public function getColourByIndex($index)
    +    {
    +        if (isset($this->colourMap[$index])) {
    +            return $this->colourMap[$index];
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if ((is_object($value)) && ($key != '_parent')) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xml.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xml.php
    new file mode 100644
    index 00000000000..2b7959f47c1
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Reader/Xml.php
    @@ -0,0 +1,882 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Reader;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Cell\DataType;
    +use PhpOffice\PhpSpreadsheet\Document\Properties;
    +use PhpOffice\PhpSpreadsheet\Reader\Security\XmlScanner;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Settings;
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\Alignment;
    +use PhpOffice\PhpSpreadsheet\Style\Border;
    +use PhpOffice\PhpSpreadsheet\Style\Font;
    +use SimpleXMLElement;
    +
    +/**
    + * Reader for SpreadsheetML, the XML schema for Microsoft Office Excel 2003.
    + */
    +class Xml extends BaseReader
    +{
    +    /**
    +     * Formats.
    +     *
    +     * @var array
    +     */
    +    protected $styles = [];
    +
    +    /**
    +     * Character set used in the file.
    +     *
    +     * @var string
    +     */
    +    protected $charSet = 'UTF-8';
    +
    +    /**
    +     * Create a new Excel2003XML Reader instance.
    +     */
    +    public function __construct()
    +    {
    +        $this->readFilter = new DefaultReadFilter();
    +        $this->securityScanner = XmlScanner::getInstance($this);
    +    }
    +
    +    /**
    +     * Can the current IReader read the file?
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return bool
    +     */
    +    public function canRead($pFilename)
    +    {
    +        //    Office                    xmlns:o="urn:schemas-microsoft-com:office:office"
    +        //    Excel                    xmlns:x="urn:schemas-microsoft-com:office:excel"
    +        //    XML Spreadsheet            xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
    +        //    Spreadsheet component    xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet"
    +        //    XML schema                 xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
    +        //    XML data type            xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
    +        //    MS-persist recordset    xmlns:rs="urn:schemas-microsoft-com:rowset"
    +        //    Rowset                    xmlns:z="#RowsetSchema"
    +        //
    +
    +        $signature = [
    +            '<?xml version="1.0"',
    +            '<?mso-application progid="Excel.Sheet"?>',
    +        ];
    +
    +        // Open file
    +        $this->openFile($pFilename);
    +        $fileHandle = $this->fileHandle;
    +
    +        // Read sample data (first 2 KB will do)
    +        $data = fread($fileHandle, 2048);
    +        fclose($fileHandle);
    +        $data = str_replace("'", '"', $data); // fix headers with single quote
    +
    +        $valid = true;
    +        foreach ($signature as $match) {
    +            // every part of the signature must be present
    +            if (strpos($data, $match) === false) {
    +                $valid = false;
    +
    +                break;
    +            }
    +        }
    +
    +        //    Retrieve charset encoding
    +        if (preg_match('/<?xml.*encoding=[\'"](.*?)[\'"].*?>/um', $data, $matches)) {
    +            $this->charSet = strtoupper($matches[1]);
    +        }
    +
    +        return $valid;
    +    }
    +
    +    /**
    +     * Check if the file is a valid SimpleXML.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return false|\SimpleXMLElement
    +     */
    +    public function trySimpleXMLLoadString($pFilename)
    +    {
    +        try {
    +            $xml = simplexml_load_string(
    +                $this->securityScanner->scan(file_get_contents($pFilename)),
    +                'SimpleXMLElement',
    +                Settings::getLibXmlLoaderOptions()
    +            );
    +        } catch (\Exception $e) {
    +            throw new Exception('Cannot load invalid XML file: ' . $pFilename, 0, $e);
    +        }
    +
    +        return $xml;
    +    }
    +
    +    /**
    +     * Reads names of the worksheets from a file, without parsing the whole file to a Spreadsheet object.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return array
    +     */
    +    public function listWorksheetNames($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +        if (!$this->canRead($pFilename)) {
    +            throw new Exception($pFilename . ' is an Invalid Spreadsheet file.');
    +        }
    +
    +        $worksheetNames = [];
    +
    +        $xml = $this->trySimpleXMLLoadString($pFilename);
    +
    +        $namespaces = $xml->getNamespaces(true);
    +
    +        $xml_ss = $xml->children($namespaces['ss']);
    +        foreach ($xml_ss->Worksheet as $worksheet) {
    +            $worksheet_ss = $worksheet->attributes($namespaces['ss']);
    +            $worksheetNames[] = self::convertStringEncoding((string) $worksheet_ss['Name'], $this->charSet);
    +        }
    +
    +        return $worksheetNames;
    +    }
    +
    +    /**
    +     * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns).
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return array
    +     */
    +    public function listWorksheetInfo($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        $worksheetInfo = [];
    +
    +        $xml = $this->trySimpleXMLLoadString($pFilename);
    +
    +        $namespaces = $xml->getNamespaces(true);
    +
    +        $worksheetID = 1;
    +        $xml_ss = $xml->children($namespaces['ss']);
    +        foreach ($xml_ss->Worksheet as $worksheet) {
    +            $worksheet_ss = $worksheet->attributes($namespaces['ss']);
    +
    +            $tmpInfo = [];
    +            $tmpInfo['worksheetName'] = '';
    +            $tmpInfo['lastColumnLetter'] = 'A';
    +            $tmpInfo['lastColumnIndex'] = 0;
    +            $tmpInfo['totalRows'] = 0;
    +            $tmpInfo['totalColumns'] = 0;
    +
    +            if (isset($worksheet_ss['Name'])) {
    +                $tmpInfo['worksheetName'] = (string) $worksheet_ss['Name'];
    +            } else {
    +                $tmpInfo['worksheetName'] = "Worksheet_{$worksheetID}";
    +            }
    +
    +            if (isset($worksheet->Table->Row)) {
    +                $rowIndex = 0;
    +
    +                foreach ($worksheet->Table->Row as $rowData) {
    +                    $columnIndex = 0;
    +                    $rowHasData = false;
    +
    +                    foreach ($rowData->Cell as $cell) {
    +                        if (isset($cell->Data)) {
    +                            $tmpInfo['lastColumnIndex'] = max($tmpInfo['lastColumnIndex'], $columnIndex);
    +                            $rowHasData = true;
    +                        }
    +
    +                        ++$columnIndex;
    +                    }
    +
    +                    ++$rowIndex;
    +
    +                    if ($rowHasData) {
    +                        $tmpInfo['totalRows'] = max($tmpInfo['totalRows'], $rowIndex);
    +                    }
    +                }
    +            }
    +
    +            $tmpInfo['lastColumnLetter'] = Coordinate::stringFromColumnIndex($tmpInfo['lastColumnIndex'] + 1);
    +            $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1;
    +
    +            $worksheetInfo[] = $tmpInfo;
    +            ++$worksheetID;
    +        }
    +
    +        return $worksheetInfo;
    +    }
    +
    +    /**
    +     * Loads Spreadsheet from file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function load($pFilename)
    +    {
    +        // Create new Spreadsheet
    +        $spreadsheet = new Spreadsheet();
    +        $spreadsheet->removeSheetByIndex(0);
    +
    +        // Load into this instance
    +        return $this->loadIntoExisting($pFilename, $spreadsheet);
    +    }
    +
    +    private static function identifyFixedStyleValue($styleList, &$styleAttributeValue)
    +    {
    +        $styleAttributeValue = strtolower($styleAttributeValue);
    +        foreach ($styleList as $style) {
    +            if ($styleAttributeValue == strtolower($style)) {
    +                $styleAttributeValue = $style;
    +
    +                return true;
    +            }
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * pixel units to excel width units(units of 1/256th of a character width).
    +     *
    +     * @param float $pxs
    +     *
    +     * @return float
    +     */
    +    protected static function pixel2WidthUnits($pxs)
    +    {
    +        $UNIT_OFFSET_MAP = [0, 36, 73, 109, 146, 182, 219];
    +
    +        $widthUnits = 256 * ($pxs / 7);
    +        $widthUnits += $UNIT_OFFSET_MAP[($pxs % 7)];
    +
    +        return $widthUnits;
    +    }
    +
    +    /**
    +     * excel width units(units of 1/256th of a character width) to pixel units.
    +     *
    +     * @param float $widthUnits
    +     *
    +     * @return float
    +     */
    +    protected static function widthUnits2Pixel($widthUnits)
    +    {
    +        $pixels = ($widthUnits / 256) * 7;
    +        $offsetWidthUnits = $widthUnits % 256;
    +        $pixels += round($offsetWidthUnits / (256 / 7));
    +
    +        return $pixels;
    +    }
    +
    +    protected static function hex2str($hex)
    +    {
    +        return chr(hexdec($hex[1]));
    +    }
    +
    +    /**
    +     * Loads from file into Spreadsheet instance.
    +     *
    +     * @param string $pFilename
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws Exception
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function loadIntoExisting($pFilename, Spreadsheet $spreadsheet)
    +    {
    +        File::assertFile($pFilename);
    +        if (!$this->canRead($pFilename)) {
    +            throw new Exception($pFilename . ' is an Invalid Spreadsheet file.');
    +        }
    +
    +        $xml = $this->trySimpleXMLLoadString($pFilename);
    +
    +        $namespaces = $xml->getNamespaces(true);
    +
    +        $docProps = $spreadsheet->getProperties();
    +        if (isset($xml->DocumentProperties[0])) {
    +            foreach ($xml->DocumentProperties[0] as $propertyName => $propertyValue) {
    +                switch ($propertyName) {
    +                    case 'Title':
    +                        $docProps->setTitle(self::convertStringEncoding($propertyValue, $this->charSet));
    +
    +                        break;
    +                    case 'Subject':
    +                        $docProps->setSubject(self::convertStringEncoding($propertyValue, $this->charSet));
    +
    +                        break;
    +                    case 'Author':
    +                        $docProps->setCreator(self::convertStringEncoding($propertyValue, $this->charSet));
    +
    +                        break;
    +                    case 'Created':
    +                        $creationDate = strtotime($propertyValue);
    +                        $docProps->setCreated($creationDate);
    +
    +                        break;
    +                    case 'LastAuthor':
    +                        $docProps->setLastModifiedBy(self::convertStringEncoding($propertyValue, $this->charSet));
    +
    +                        break;
    +                    case 'LastSaved':
    +                        $lastSaveDate = strtotime($propertyValue);
    +                        $docProps->setModified($lastSaveDate);
    +
    +                        break;
    +                    case 'Company':
    +                        $docProps->setCompany(self::convertStringEncoding($propertyValue, $this->charSet));
    +
    +                        break;
    +                    case 'Category':
    +                        $docProps->setCategory(self::convertStringEncoding($propertyValue, $this->charSet));
    +
    +                        break;
    +                    case 'Manager':
    +                        $docProps->setManager(self::convertStringEncoding($propertyValue, $this->charSet));
    +
    +                        break;
    +                    case 'Keywords':
    +                        $docProps->setKeywords(self::convertStringEncoding($propertyValue, $this->charSet));
    +
    +                        break;
    +                    case 'Description':
    +                        $docProps->setDescription(self::convertStringEncoding($propertyValue, $this->charSet));
    +
    +                        break;
    +                }
    +            }
    +        }
    +        if (isset($xml->CustomDocumentProperties)) {
    +            foreach ($xml->CustomDocumentProperties[0] as $propertyName => $propertyValue) {
    +                $propertyAttributes = $propertyValue->attributes($namespaces['dt']);
    +                $propertyName = preg_replace_callback('/_x([0-9a-z]{4})_/', ['self', 'hex2str'], $propertyName);
    +                $propertyType = Properties::PROPERTY_TYPE_UNKNOWN;
    +                switch ((string) $propertyAttributes) {
    +                    case 'string':
    +                        $propertyType = Properties::PROPERTY_TYPE_STRING;
    +                        $propertyValue = trim($propertyValue);
    +
    +                        break;
    +                    case 'boolean':
    +                        $propertyType = Properties::PROPERTY_TYPE_BOOLEAN;
    +                        $propertyValue = (bool) $propertyValue;
    +
    +                        break;
    +                    case 'integer':
    +                        $propertyType = Properties::PROPERTY_TYPE_INTEGER;
    +                        $propertyValue = (int) $propertyValue;
    +
    +                        break;
    +                    case 'float':
    +                        $propertyType = Properties::PROPERTY_TYPE_FLOAT;
    +                        $propertyValue = (float) $propertyValue;
    +
    +                        break;
    +                    case 'dateTime.tz':
    +                        $propertyType = Properties::PROPERTY_TYPE_DATE;
    +                        $propertyValue = strtotime(trim($propertyValue));
    +
    +                        break;
    +                }
    +                $docProps->setCustomProperty($propertyName, $propertyValue, $propertyType);
    +            }
    +        }
    +
    +        $this->parseStyles($xml, $namespaces);
    +
    +        $worksheetID = 0;
    +        $xml_ss = $xml->children($namespaces['ss']);
    +
    +        foreach ($xml_ss->Worksheet as $worksheet) {
    +            $worksheet_ss = $worksheet->attributes($namespaces['ss']);
    +
    +            if ((isset($this->loadSheetsOnly)) && (isset($worksheet_ss['Name'])) &&
    +                (!in_array($worksheet_ss['Name'], $this->loadSheetsOnly))) {
    +                continue;
    +            }
    +
    +            // Create new Worksheet
    +            $spreadsheet->createSheet();
    +            $spreadsheet->setActiveSheetIndex($worksheetID);
    +            if (isset($worksheet_ss['Name'])) {
    +                $worksheetName = self::convertStringEncoding((string) $worksheet_ss['Name'], $this->charSet);
    +                //    Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in
    +                //        formula cells... during the load, all formulae should be correct, and we're simply bringing
    +                //        the worksheet name in line with the formula, not the reverse
    +                $spreadsheet->getActiveSheet()->setTitle($worksheetName, false, false);
    +            }
    +
    +            $columnID = 'A';
    +            if (isset($worksheet->Table->Column)) {
    +                foreach ($worksheet->Table->Column as $columnData) {
    +                    $columnData_ss = $columnData->attributes($namespaces['ss']);
    +                    if (isset($columnData_ss['Index'])) {
    +                        $columnID = Coordinate::stringFromColumnIndex((int) $columnData_ss['Index']);
    +                    }
    +                    if (isset($columnData_ss['Width'])) {
    +                        $columnWidth = $columnData_ss['Width'];
    +                        $spreadsheet->getActiveSheet()->getColumnDimension($columnID)->setWidth($columnWidth / 5.4);
    +                    }
    +                    ++$columnID;
    +                }
    +            }
    +
    +            $rowID = 1;
    +            if (isset($worksheet->Table->Row)) {
    +                $additionalMergedCells = 0;
    +                foreach ($worksheet->Table->Row as $rowData) {
    +                    $rowHasData = false;
    +                    $row_ss = $rowData->attributes($namespaces['ss']);
    +                    if (isset($row_ss['Index'])) {
    +                        $rowID = (int) $row_ss['Index'];
    +                    }
    +
    +                    $columnID = 'A';
    +                    foreach ($rowData->Cell as $cell) {
    +                        $cell_ss = $cell->attributes($namespaces['ss']);
    +                        if (isset($cell_ss['Index'])) {
    +                            $columnID = Coordinate::stringFromColumnIndex((int) $cell_ss['Index']);
    +                        }
    +                        $cellRange = $columnID . $rowID;
    +
    +                        if ($this->getReadFilter() !== null) {
    +                            if (!$this->getReadFilter()->readCell($columnID, $rowID, $worksheetName)) {
    +                                ++$columnID;
    +
    +                                continue;
    +                            }
    +                        }
    +
    +                        if (isset($cell_ss['HRef'])) {
    +                            $spreadsheet->getActiveSheet()->getCell($cellRange)->getHyperlink()->setUrl($cell_ss['HRef']);
    +                        }
    +
    +                        if ((isset($cell_ss['MergeAcross'])) || (isset($cell_ss['MergeDown']))) {
    +                            $columnTo = $columnID;
    +                            if (isset($cell_ss['MergeAcross'])) {
    +                                $additionalMergedCells += (int) $cell_ss['MergeAcross'];
    +                                $columnTo = Coordinate::stringFromColumnIndex(Coordinate::columnIndexFromString($columnID) + $cell_ss['MergeAcross']);
    +                            }
    +                            $rowTo = $rowID;
    +                            if (isset($cell_ss['MergeDown'])) {
    +                                $rowTo = $rowTo + $cell_ss['MergeDown'];
    +                            }
    +                            $cellRange .= ':' . $columnTo . $rowTo;
    +                            $spreadsheet->getActiveSheet()->mergeCells($cellRange);
    +                        }
    +
    +                        $cellIsSet = $hasCalculatedValue = false;
    +                        $cellDataFormula = '';
    +                        if (isset($cell_ss['Formula'])) {
    +                            $cellDataFormula = $cell_ss['Formula'];
    +                            $hasCalculatedValue = true;
    +                        }
    +                        if (isset($cell->Data)) {
    +                            $cellValue = $cellData = $cell->Data;
    +                            $type = DataType::TYPE_NULL;
    +                            $cellData_ss = $cellData->attributes($namespaces['ss']);
    +                            if (isset($cellData_ss['Type'])) {
    +                                $cellDataType = $cellData_ss['Type'];
    +                                switch ($cellDataType) {
    +                                    /*
    +                                    const TYPE_STRING        = 's';
    +                                    const TYPE_FORMULA        = 'f';
    +                                    const TYPE_NUMERIC        = 'n';
    +                                    const TYPE_BOOL            = 'b';
    +                                    const TYPE_NULL            = 'null';
    +                                    const TYPE_INLINE        = 'inlineStr';
    +                                    const TYPE_ERROR        = 'e';
    +                                    */
    +                                    case 'String':
    +                                        $cellValue = self::convertStringEncoding($cellValue, $this->charSet);
    +                                        $type = DataType::TYPE_STRING;
    +
    +                                        break;
    +                                    case 'Number':
    +                                        $type = DataType::TYPE_NUMERIC;
    +                                        $cellValue = (float) $cellValue;
    +                                        if (floor($cellValue) == $cellValue) {
    +                                            $cellValue = (int) $cellValue;
    +                                        }
    +
    +                                        break;
    +                                    case 'Boolean':
    +                                        $type = DataType::TYPE_BOOL;
    +                                        $cellValue = ($cellValue != 0);
    +
    +                                        break;
    +                                    case 'DateTime':
    +                                        $type = DataType::TYPE_NUMERIC;
    +                                        $cellValue = Date::PHPToExcel(strtotime($cellValue));
    +
    +                                        break;
    +                                    case 'Error':
    +                                        $type = DataType::TYPE_ERROR;
    +
    +                                        break;
    +                                }
    +                            }
    +
    +                            if ($hasCalculatedValue) {
    +                                $type = DataType::TYPE_FORMULA;
    +                                $columnNumber = Coordinate::columnIndexFromString($columnID);
    +                                if (substr($cellDataFormula, 0, 3) == 'of:') {
    +                                    $cellDataFormula = substr($cellDataFormula, 3);
    +                                    $temp = explode('"', $cellDataFormula);
    +                                    $key = false;
    +                                    foreach ($temp as &$value) {
    +                                        //    Only replace in alternate array entries (i.e. non-quoted blocks)
    +                                        if ($key = !$key) {
    +                                            $value = str_replace(['[.', '.', ']'], '', $value);
    +                                        }
    +                                    }
    +                                } else {
    +                                    //    Convert R1C1 style references to A1 style references (but only when not quoted)
    +                                    $temp = explode('"', $cellDataFormula);
    +                                    $key = false;
    +                                    foreach ($temp as &$value) {
    +                                        //    Only replace in alternate array entries (i.e. non-quoted blocks)
    +                                        if ($key = !$key) {
    +                                            preg_match_all('/(R(\[?-?\d*\]?))(C(\[?-?\d*\]?))/', $value, $cellReferences, PREG_SET_ORDER + PREG_OFFSET_CAPTURE);
    +                                            //    Reverse the matches array, otherwise all our offsets will become incorrect if we modify our way
    +                                            //        through the formula from left to right. Reversing means that we work right to left.through
    +                                            //        the formula
    +                                            $cellReferences = array_reverse($cellReferences);
    +                                            //    Loop through each R1C1 style reference in turn, converting it to its A1 style equivalent,
    +                                            //        then modify the formula to use that new reference
    +                                            foreach ($cellReferences as $cellReference) {
    +                                                $rowReference = $cellReference[2][0];
    +                                                //    Empty R reference is the current row
    +                                                if ($rowReference == '') {
    +                                                    $rowReference = $rowID;
    +                                                }
    +                                                //    Bracketed R references are relative to the current row
    +                                                if ($rowReference[0] == '[') {
    +                                                    $rowReference = $rowID + trim($rowReference, '[]');
    +                                                }
    +                                                $columnReference = $cellReference[4][0];
    +                                                //    Empty C reference is the current column
    +                                                if ($columnReference == '') {
    +                                                    $columnReference = $columnNumber;
    +                                                }
    +                                                //    Bracketed C references are relative to the current column
    +                                                if ($columnReference[0] == '[') {
    +                                                    $columnReference = $columnNumber + trim($columnReference, '[]');
    +                                                }
    +                                                $A1CellReference = Coordinate::stringFromColumnIndex($columnReference) . $rowReference;
    +                                                $value = substr_replace($value, $A1CellReference, $cellReference[0][1], strlen($cellReference[0][0]));
    +                                            }
    +                                        }
    +                                    }
    +                                }
    +                                unset($value);
    +                                //    Then rebuild the formula string
    +                                $cellDataFormula = implode('"', $temp);
    +                            }
    +
    +                            $spreadsheet->getActiveSheet()->getCell($columnID . $rowID)->setValueExplicit((($hasCalculatedValue) ? $cellDataFormula : $cellValue), $type);
    +                            if ($hasCalculatedValue) {
    +                                $spreadsheet->getActiveSheet()->getCell($columnID . $rowID)->setCalculatedValue($cellValue);
    +                            }
    +                            $cellIsSet = $rowHasData = true;
    +                        }
    +
    +                        if (isset($cell->Comment)) {
    +                            $commentAttributes = $cell->Comment->attributes($namespaces['ss']);
    +                            $author = 'unknown';
    +                            if (isset($commentAttributes->Author)) {
    +                                $author = (string) $commentAttributes->Author;
    +                            }
    +                            $node = $cell->Comment->Data->asXML();
    +                            $annotation = strip_tags($node);
    +                            $spreadsheet->getActiveSheet()->getComment($columnID . $rowID)->setAuthor(self::convertStringEncoding($author, $this->charSet))->setText($this->parseRichText($annotation));
    +                        }
    +
    +                        if (($cellIsSet) && (isset($cell_ss['StyleID']))) {
    +                            $style = (string) $cell_ss['StyleID'];
    +                            if ((isset($this->styles[$style])) && (!empty($this->styles[$style]))) {
    +                                if (!$spreadsheet->getActiveSheet()->cellExists($columnID . $rowID)) {
    +                                    $spreadsheet->getActiveSheet()->getCell($columnID . $rowID)->setValue(null);
    +                                }
    +                                $spreadsheet->getActiveSheet()->getStyle($cellRange)->applyFromArray($this->styles[$style]);
    +                            }
    +                        }
    +                        ++$columnID;
    +                        while ($additionalMergedCells > 0) {
    +                            ++$columnID;
    +                            --$additionalMergedCells;
    +                        }
    +                    }
    +
    +                    if ($rowHasData) {
    +                        if (isset($row_ss['Height'])) {
    +                            $rowHeight = $row_ss['Height'];
    +                            $spreadsheet->getActiveSheet()->getRowDimension($rowID)->setRowHeight($rowHeight);
    +                        }
    +                    }
    +
    +                    ++$rowID;
    +                }
    +            }
    +            ++$worksheetID;
    +        }
    +
    +        // Return
    +        return $spreadsheet;
    +    }
    +
    +    protected static function convertStringEncoding($string, $charset)
    +    {
    +        if ($charset != 'UTF-8') {
    +            return StringHelper::convertEncoding($string, 'UTF-8', $charset);
    +        }
    +
    +        return $string;
    +    }
    +
    +    protected function parseRichText($is)
    +    {
    +        $value = new RichText();
    +
    +        $value->createText(self::convertStringEncoding($is, $this->charSet));
    +
    +        return $value;
    +    }
    +
    +    /**
    +     * @param SimpleXMLElement $xml
    +     * @param array $namespaces
    +     */
    +    private function parseStyles(SimpleXMLElement $xml, array $namespaces)
    +    {
    +        if (!isset($xml->Styles)) {
    +            return;
    +        }
    +
    +        foreach ($xml->Styles[0] as $style) {
    +            $style_ss = $style->attributes($namespaces['ss']);
    +            $styleID = (string) $style_ss['ID'];
    +            $this->styles[$styleID] = (isset($this->styles['Default'])) ? $this->styles['Default'] : [];
    +            foreach ($style as $styleType => $styleData) {
    +                $styleAttributes = $styleData->attributes($namespaces['ss']);
    +                switch ($styleType) {
    +                    case 'Alignment':
    +                        $this->parseStyleAlignment($styleID, $styleAttributes);
    +
    +                        break;
    +                    case 'Borders':
    +                        $this->parseStyleBorders($styleID, $styleData, $namespaces);
    +
    +                        break;
    +                    case 'Font':
    +                        $this->parseStyleFont($styleID, $styleAttributes);
    +
    +                        break;
    +                    case 'Interior':
    +                        $this->parseStyleInterior($styleID, $styleAttributes);
    +
    +                        break;
    +                    case 'NumberFormat':
    +                        $this->parseStyleNumberFormat($styleID, $styleAttributes);
    +
    +                        break;
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * @param string $styleID
    +     * @param SimpleXMLElement $styleAttributes
    +     */
    +    private function parseStyleAlignment($styleID, SimpleXMLElement $styleAttributes)
    +    {
    +        $verticalAlignmentStyles = [
    +            Alignment::VERTICAL_BOTTOM,
    +            Alignment::VERTICAL_TOP,
    +            Alignment::VERTICAL_CENTER,
    +            Alignment::VERTICAL_JUSTIFY,
    +        ];
    +        $horizontalAlignmentStyles = [
    +            Alignment::HORIZONTAL_GENERAL,
    +            Alignment::HORIZONTAL_LEFT,
    +            Alignment::HORIZONTAL_RIGHT,
    +            Alignment::HORIZONTAL_CENTER,
    +            Alignment::HORIZONTAL_CENTER_CONTINUOUS,
    +            Alignment::HORIZONTAL_JUSTIFY,
    +        ];
    +
    +        foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) {
    +            $styleAttributeValue = (string) $styleAttributeValue;
    +            switch ($styleAttributeKey) {
    +                case 'Vertical':
    +                    if (self::identifyFixedStyleValue($verticalAlignmentStyles, $styleAttributeValue)) {
    +                        $this->styles[$styleID]['alignment']['vertical'] = $styleAttributeValue;
    +                    }
    +
    +                    break;
    +                case 'Horizontal':
    +                    if (self::identifyFixedStyleValue($horizontalAlignmentStyles, $styleAttributeValue)) {
    +                        $this->styles[$styleID]['alignment']['horizontal'] = $styleAttributeValue;
    +                    }
    +
    +                    break;
    +                case 'WrapText':
    +                    $this->styles[$styleID]['alignment']['wrapText'] = true;
    +
    +                    break;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * @param $styleID
    +     * @param SimpleXMLElement $styleData
    +     * @param array $namespaces
    +     */
    +    private function parseStyleBorders($styleID, SimpleXMLElement $styleData, array $namespaces)
    +    {
    +        foreach ($styleData->Border as $borderStyle) {
    +            $borderAttributes = $borderStyle->attributes($namespaces['ss']);
    +            $thisBorder = [];
    +            foreach ($borderAttributes as $borderStyleKey => $borderStyleValue) {
    +                switch ($borderStyleKey) {
    +                    case 'LineStyle':
    +                        $thisBorder['borderStyle'] = Border::BORDER_MEDIUM;
    +
    +                        break;
    +                    case 'Weight':
    +                        break;
    +                    case 'Position':
    +                        $borderPosition = strtolower($borderStyleValue);
    +
    +                        break;
    +                    case 'Color':
    +                        $borderColour = substr($borderStyleValue, 1);
    +                        $thisBorder['color']['rgb'] = $borderColour;
    +
    +                        break;
    +                }
    +            }
    +            if (!empty($thisBorder)) {
    +                if (($borderPosition == 'left') || ($borderPosition == 'right') || ($borderPosition == 'top') || ($borderPosition == 'bottom')) {
    +                    $this->styles[$styleID]['borders'][$borderPosition] = $thisBorder;
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * @param $styleID
    +     * @param SimpleXMLElement $styleAttributes
    +     */
    +    private function parseStyleFont($styleID, SimpleXMLElement $styleAttributes)
    +    {
    +        $underlineStyles = [
    +            Font::UNDERLINE_NONE,
    +            Font::UNDERLINE_DOUBLE,
    +            Font::UNDERLINE_DOUBLEACCOUNTING,
    +            Font::UNDERLINE_SINGLE,
    +            Font::UNDERLINE_SINGLEACCOUNTING,
    +        ];
    +
    +        foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) {
    +            $styleAttributeValue = (string) $styleAttributeValue;
    +            switch ($styleAttributeKey) {
    +                case 'FontName':
    +                    $this->styles[$styleID]['font']['name'] = $styleAttributeValue;
    +
    +                    break;
    +                case 'Size':
    +                    $this->styles[$styleID]['font']['size'] = $styleAttributeValue;
    +
    +                    break;
    +                case 'Color':
    +                    $this->styles[$styleID]['font']['color']['rgb'] = substr($styleAttributeValue, 1);
    +
    +                    break;
    +                case 'Bold':
    +                    $this->styles[$styleID]['font']['bold'] = true;
    +
    +                    break;
    +                case 'Italic':
    +                    $this->styles[$styleID]['font']['italic'] = true;
    +
    +                    break;
    +                case 'Underline':
    +                    if (self::identifyFixedStyleValue($underlineStyles, $styleAttributeValue)) {
    +                        $this->styles[$styleID]['font']['underline'] = $styleAttributeValue;
    +                    }
    +
    +                    break;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * @param $styleID
    +     * @param SimpleXMLElement $styleAttributes
    +     */
    +    private function parseStyleInterior($styleID, SimpleXMLElement $styleAttributes)
    +    {
    +        foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) {
    +            switch ($styleAttributeKey) {
    +                case 'Color':
    +                    $this->styles[$styleID]['fill']['color']['rgb'] = substr($styleAttributeValue, 1);
    +
    +                    break;
    +                case 'Pattern':
    +                    $this->styles[$styleID]['fill']['fillType'] = strtolower($styleAttributeValue);
    +
    +                    break;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * @param $styleID
    +     * @param SimpleXMLElement $styleAttributes
    +     */
    +    private function parseStyleNumberFormat($styleID, SimpleXMLElement $styleAttributes)
    +    {
    +        $fromFormats = ['\-', '\ '];
    +        $toFormats = ['-', ' '];
    +
    +        foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) {
    +            $styleAttributeValue = str_replace($fromFormats, $toFormats, $styleAttributeValue);
    +            switch ($styleAttributeValue) {
    +                case 'Short Date':
    +                    $styleAttributeValue = 'dd/mm/yyyy';
    +
    +                    break;
    +            }
    +
    +            if ($styleAttributeValue > '') {
    +                $this->styles[$styleID]['numberFormat']['formatCode'] = $styleAttributeValue;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/ReferenceHelper.php b/htdocs/includes/phpoffice/PhpSpreadsheet/ReferenceHelper.php
    new file mode 100644
    index 00000000000..54bc182a8eb
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/ReferenceHelper.php
    @@ -0,0 +1,916 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Cell\DataType;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +class ReferenceHelper
    +{
    +    /**    Constants                */
    +    /**    Regular Expressions      */
    +    const REFHELPER_REGEXP_CELLREF = '((\w*|\'[^!]*\')!)?(?<![:a-z\$])(\$?[a-z]{1,3}\$?\d+)(?=[^:!\d\'])';
    +    const REFHELPER_REGEXP_CELLRANGE = '((\w*|\'[^!]*\')!)?(\$?[a-z]{1,3}\$?\d+):(\$?[a-z]{1,3}\$?\d+)';
    +    const REFHELPER_REGEXP_ROWRANGE = '((\w*|\'[^!]*\')!)?(\$?\d+):(\$?\d+)';
    +    const REFHELPER_REGEXP_COLRANGE = '((\w*|\'[^!]*\')!)?(\$?[a-z]{1,3}):(\$?[a-z]{1,3})';
    +
    +    /**
    +     * Instance of this class.
    +     *
    +     * @var ReferenceHelper
    +     */
    +    private static $instance;
    +
    +    /**
    +     * Get an instance of this class.
    +     *
    +     * @return ReferenceHelper
    +     */
    +    public static function getInstance()
    +    {
    +        if (!isset(self::$instance) || (self::$instance === null)) {
    +            self::$instance = new self();
    +        }
    +
    +        return self::$instance;
    +    }
    +
    +    /**
    +     * Create a new ReferenceHelper.
    +     */
    +    protected function __construct()
    +    {
    +    }
    +
    +    /**
    +     * Compare two column addresses
    +     * Intended for use as a Callback function for sorting column addresses by column.
    +     *
    +     * @param string $a First column to test (e.g. 'AA')
    +     * @param string $b Second column to test (e.g. 'Z')
    +     *
    +     * @return int
    +     */
    +    public static function columnSort($a, $b)
    +    {
    +        return strcasecmp(strlen($a) . $a, strlen($b) . $b);
    +    }
    +
    +    /**
    +     * Compare two column addresses
    +     * Intended for use as a Callback function for reverse sorting column addresses by column.
    +     *
    +     * @param string $a First column to test (e.g. 'AA')
    +     * @param string $b Second column to test (e.g. 'Z')
    +     *
    +     * @return int
    +     */
    +    public static function columnReverseSort($a, $b)
    +    {
    +        return 1 - strcasecmp(strlen($a) . $a, strlen($b) . $b);
    +    }
    +
    +    /**
    +     * Compare two cell addresses
    +     * Intended for use as a Callback function for sorting cell addresses by column and row.
    +     *
    +     * @param string $a First cell to test (e.g. 'AA1')
    +     * @param string $b Second cell to test (e.g. 'Z1')
    +     *
    +     * @return int
    +     */
    +    public static function cellSort($a, $b)
    +    {
    +        $ac = $bc = '';
    +        $ar = $br = 0;
    +
    +        sscanf($a, '%[A-Z]%d', $ac, $ar);
    +        sscanf($b, '%[A-Z]%d', $bc, $br);
    +
    +        if ($ar == $br) {
    +            return strcasecmp(strlen($ac) . $ac, strlen($bc) . $bc);
    +        }
    +
    +        return ($ar < $br) ? -1 : 1;
    +    }
    +
    +    /**
    +     * Compare two cell addresses
    +     * Intended for use as a Callback function for sorting cell addresses by column and row.
    +     *
    +     * @param string $a First cell to test (e.g. 'AA1')
    +     * @param string $b Second cell to test (e.g. 'Z1')
    +     *
    +     * @return int
    +     */
    +    public static function cellReverseSort($a, $b)
    +    {
    +        $ac = $bc = '';
    +        $ar = $br = 0;
    +
    +        sscanf($a, '%[A-Z]%d', $ac, $ar);
    +        sscanf($b, '%[A-Z]%d', $bc, $br);
    +
    +        if ($ar == $br) {
    +            return 1 - strcasecmp(strlen($ac) . $ac, strlen($bc) . $bc);
    +        }
    +
    +        return ($ar < $br) ? 1 : -1;
    +    }
    +
    +    /**
    +     * Test whether a cell address falls within a defined range of cells.
    +     *
    +     * @param string $cellAddress Address of the cell we're testing
    +     * @param int $beforeRow Number of the row we're inserting/deleting before
    +     * @param int $pNumRows Number of rows to insert/delete (negative values indicate deletion)
    +     * @param int $beforeColumnIndex Index number of the column we're inserting/deleting before
    +     * @param int $pNumCols Number of columns to insert/delete (negative values indicate deletion)
    +     *
    +     * @return bool
    +     */
    +    private static function cellAddressInDeleteRange($cellAddress, $beforeRow, $pNumRows, $beforeColumnIndex, $pNumCols)
    +    {
    +        list($cellColumn, $cellRow) = Coordinate::coordinateFromString($cellAddress);
    +        $cellColumnIndex = Coordinate::columnIndexFromString($cellColumn);
    +        //    Is cell within the range of rows/columns if we're deleting
    +        if ($pNumRows < 0 &&
    +            ($cellRow >= ($beforeRow + $pNumRows)) &&
    +            ($cellRow < $beforeRow)) {
    +            return true;
    +        } elseif ($pNumCols < 0 &&
    +            ($cellColumnIndex >= ($beforeColumnIndex + $pNumCols)) &&
    +            ($cellColumnIndex < $beforeColumnIndex)) {
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Update page breaks when inserting/deleting rows/columns.
    +     *
    +     * @param Worksheet $pSheet The worksheet that we're editing
    +     * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1')
    +     * @param int $beforeColumnIndex Index number of the column we're inserting/deleting before
    +     * @param int $pNumCols Number of columns to insert/delete (negative values indicate deletion)
    +     * @param int $beforeRow Number of the row we're inserting/deleting before
    +     * @param int $pNumRows Number of rows to insert/delete (negative values indicate deletion)
    +     */
    +    protected function adjustPageBreaks(Worksheet $pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows)
    +    {
    +        $aBreaks = $pSheet->getBreaks();
    +        ($pNumCols > 0 || $pNumRows > 0) ?
    +            uksort($aBreaks, ['self', 'cellReverseSort']) : uksort($aBreaks, ['self', 'cellSort']);
    +
    +        foreach ($aBreaks as $key => $value) {
    +            if (self::cellAddressInDeleteRange($key, $beforeRow, $pNumRows, $beforeColumnIndex, $pNumCols)) {
    +                //    If we're deleting, then clear any defined breaks that are within the range
    +                //        of rows/columns that we're deleting
    +                $pSheet->setBreak($key, Worksheet::BREAK_NONE);
    +            } else {
    +                //    Otherwise update any affected breaks by inserting a new break at the appropriate point
    +                //        and removing the old affected break
    +                $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows);
    +                if ($key != $newReference) {
    +                    $pSheet->setBreak($newReference, $value)
    +                        ->setBreak($key, Worksheet::BREAK_NONE);
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Update cell comments when inserting/deleting rows/columns.
    +     *
    +     * @param Worksheet $pSheet The worksheet that we're editing
    +     * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1')
    +     * @param int $beforeColumnIndex Index number of the column we're inserting/deleting before
    +     * @param int $pNumCols Number of columns to insert/delete (negative values indicate deletion)
    +     * @param int $beforeRow Number of the row we're inserting/deleting before
    +     * @param int $pNumRows Number of rows to insert/delete (negative values indicate deletion)
    +     */
    +    protected function adjustComments($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows)
    +    {
    +        $aComments = $pSheet->getComments();
    +        $aNewComments = []; // the new array of all comments
    +
    +        foreach ($aComments as $key => &$value) {
    +            // Any comments inside a deleted range will be ignored
    +            if (!self::cellAddressInDeleteRange($key, $beforeRow, $pNumRows, $beforeColumnIndex, $pNumCols)) {
    +                // Otherwise build a new array of comments indexed by the adjusted cell reference
    +                $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows);
    +                $aNewComments[$newReference] = $value;
    +            }
    +        }
    +        //    Replace the comments array with the new set of comments
    +        $pSheet->setComments($aNewComments);
    +    }
    +
    +    /**
    +     * Update hyperlinks when inserting/deleting rows/columns.
    +     *
    +     * @param Worksheet $pSheet The worksheet that we're editing
    +     * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1')
    +     * @param int $beforeColumnIndex Index number of the column we're inserting/deleting before
    +     * @param int $pNumCols Number of columns to insert/delete (negative values indicate deletion)
    +     * @param int $beforeRow Number of the row we're inserting/deleting before
    +     * @param int $pNumRows Number of rows to insert/delete (negative values indicate deletion)
    +     */
    +    protected function adjustHyperlinks($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows)
    +    {
    +        $aHyperlinkCollection = $pSheet->getHyperlinkCollection();
    +        ($pNumCols > 0 || $pNumRows > 0) ?
    +            uksort($aHyperlinkCollection, ['self', 'cellReverseSort']) : uksort($aHyperlinkCollection, ['self', 'cellSort']);
    +
    +        foreach ($aHyperlinkCollection as $key => $value) {
    +            $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows);
    +            if ($key != $newReference) {
    +                $pSheet->setHyperlink($newReference, $value);
    +                $pSheet->setHyperlink($key, null);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Update data validations when inserting/deleting rows/columns.
    +     *
    +     * @param Worksheet $pSheet The worksheet that we're editing
    +     * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1')
    +     * @param int $beforeColumnIndex Index number of the column we're inserting/deleting before
    +     * @param int $pNumCols Number of columns to insert/delete (negative values indicate deletion)
    +     * @param int $beforeRow Number of the row we're inserting/deleting before
    +     * @param int $pNumRows Number of rows to insert/delete (negative values indicate deletion)
    +     */
    +    protected function adjustDataValidations($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows)
    +    {
    +        $aDataValidationCollection = $pSheet->getDataValidationCollection();
    +        ($pNumCols > 0 || $pNumRows > 0) ?
    +            uksort($aDataValidationCollection, ['self', 'cellReverseSort']) : uksort($aDataValidationCollection, ['self', 'cellSort']);
    +
    +        foreach ($aDataValidationCollection as $key => $value) {
    +            $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows);
    +            if ($key != $newReference) {
    +                $pSheet->setDataValidation($newReference, $value);
    +                $pSheet->setDataValidation($key, null);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Update merged cells when inserting/deleting rows/columns.
    +     *
    +     * @param Worksheet $pSheet The worksheet that we're editing
    +     * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1')
    +     * @param int $beforeColumnIndex Index number of the column we're inserting/deleting before
    +     * @param int $pNumCols Number of columns to insert/delete (negative values indicate deletion)
    +     * @param int $beforeRow Number of the row we're inserting/deleting before
    +     * @param int $pNumRows Number of rows to insert/delete (negative values indicate deletion)
    +     */
    +    protected function adjustMergeCells($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows)
    +    {
    +        $aMergeCells = $pSheet->getMergeCells();
    +        $aNewMergeCells = []; // the new array of all merge cells
    +        foreach ($aMergeCells as $key => &$value) {
    +            $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows);
    +            $aNewMergeCells[$newReference] = $newReference;
    +        }
    +        $pSheet->setMergeCells($aNewMergeCells); // replace the merge cells array
    +    }
    +
    +    /**
    +     * Update protected cells when inserting/deleting rows/columns.
    +     *
    +     * @param Worksheet $pSheet The worksheet that we're editing
    +     * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1')
    +     * @param int $beforeColumnIndex Index number of the column we're inserting/deleting before
    +     * @param int $pNumCols Number of columns to insert/delete (negative values indicate deletion)
    +     * @param int $beforeRow Number of the row we're inserting/deleting before
    +     * @param int $pNumRows Number of rows to insert/delete (negative values indicate deletion)
    +     */
    +    protected function adjustProtectedCells($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows)
    +    {
    +        $aProtectedCells = $pSheet->getProtectedCells();
    +        ($pNumCols > 0 || $pNumRows > 0) ?
    +            uksort($aProtectedCells, ['self', 'cellReverseSort']) : uksort($aProtectedCells, ['self', 'cellSort']);
    +        foreach ($aProtectedCells as $key => $value) {
    +            $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows);
    +            if ($key != $newReference) {
    +                $pSheet->protectCells($newReference, $value, true);
    +                $pSheet->unprotectCells($key);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Update column dimensions when inserting/deleting rows/columns.
    +     *
    +     * @param Worksheet $pSheet The worksheet that we're editing
    +     * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1')
    +     * @param int $beforeColumnIndex Index number of the column we're inserting/deleting before
    +     * @param int $pNumCols Number of columns to insert/delete (negative values indicate deletion)
    +     * @param int $beforeRow Number of the row we're inserting/deleting before
    +     * @param int $pNumRows Number of rows to insert/delete (negative values indicate deletion)
    +     */
    +    protected function adjustColumnDimensions($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows)
    +    {
    +        $aColumnDimensions = array_reverse($pSheet->getColumnDimensions(), true);
    +        if (!empty($aColumnDimensions)) {
    +            foreach ($aColumnDimensions as $objColumnDimension) {
    +                $newReference = $this->updateCellReference($objColumnDimension->getColumnIndex() . '1', $pBefore, $pNumCols, $pNumRows);
    +                list($newReference) = Coordinate::coordinateFromString($newReference);
    +                if ($objColumnDimension->getColumnIndex() != $newReference) {
    +                    $objColumnDimension->setColumnIndex($newReference);
    +                }
    +            }
    +            $pSheet->refreshColumnDimensions();
    +        }
    +    }
    +
    +    /**
    +     * Update row dimensions when inserting/deleting rows/columns.
    +     *
    +     * @param Worksheet $pSheet The worksheet that we're editing
    +     * @param string $pBefore Insert/Delete before this cell address (e.g. 'A1')
    +     * @param int $beforeColumnIndex Index number of the column we're inserting/deleting before
    +     * @param int $pNumCols Number of columns to insert/delete (negative values indicate deletion)
    +     * @param int $beforeRow Number of the row we're inserting/deleting before
    +     * @param int $pNumRows Number of rows to insert/delete (negative values indicate deletion)
    +     */
    +    protected function adjustRowDimensions($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows)
    +    {
    +        $aRowDimensions = array_reverse($pSheet->getRowDimensions(), true);
    +        if (!empty($aRowDimensions)) {
    +            foreach ($aRowDimensions as $objRowDimension) {
    +                $newReference = $this->updateCellReference('A' . $objRowDimension->getRowIndex(), $pBefore, $pNumCols, $pNumRows);
    +                list(, $newReference) = Coordinate::coordinateFromString($newReference);
    +                if ($objRowDimension->getRowIndex() != $newReference) {
    +                    $objRowDimension->setRowIndex($newReference);
    +                }
    +            }
    +            $pSheet->refreshRowDimensions();
    +
    +            $copyDimension = $pSheet->getRowDimension($beforeRow - 1);
    +            for ($i = $beforeRow; $i <= $beforeRow - 1 + $pNumRows; ++$i) {
    +                $newDimension = $pSheet->getRowDimension($i);
    +                $newDimension->setRowHeight($copyDimension->getRowHeight());
    +                $newDimension->setVisible($copyDimension->getVisible());
    +                $newDimension->setOutlineLevel($copyDimension->getOutlineLevel());
    +                $newDimension->setCollapsed($copyDimension->getCollapsed());
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Insert a new column or row, updating all possible related data.
    +     *
    +     * @param string $pBefore Insert before this cell address (e.g. 'A1')
    +     * @param int $pNumCols Number of columns to insert/delete (negative values indicate deletion)
    +     * @param int $pNumRows Number of rows to insert/delete (negative values indicate deletion)
    +     * @param Worksheet $pSheet The worksheet that we're editing
    +     *
    +     * @throws Exception
    +     */
    +    public function insertNewBefore($pBefore, $pNumCols, $pNumRows, Worksheet $pSheet)
    +    {
    +        $remove = ($pNumCols < 0 || $pNumRows < 0);
    +        $allCoordinates = $pSheet->getCoordinates();
    +
    +        // Get coordinate of $pBefore
    +        list($beforeColumn, $beforeRow) = Coordinate::coordinateFromString($pBefore);
    +        $beforeColumnIndex = Coordinate::columnIndexFromString($beforeColumn);
    +
    +        // Clear cells if we are removing columns or rows
    +        $highestColumn = $pSheet->getHighestColumn();
    +        $highestRow = $pSheet->getHighestRow();
    +
    +        // 1. Clear column strips if we are removing columns
    +        if ($pNumCols < 0 && $beforeColumnIndex - 2 + $pNumCols > 0) {
    +            for ($i = 1; $i <= $highestRow - 1; ++$i) {
    +                for ($j = $beforeColumnIndex - 1 + $pNumCols; $j <= $beforeColumnIndex - 2; ++$j) {
    +                    $coordinate = Coordinate::stringFromColumnIndex($j + 1) . $i;
    +                    $pSheet->removeConditionalStyles($coordinate);
    +                    if ($pSheet->cellExists($coordinate)) {
    +                        $pSheet->getCell($coordinate)->setValueExplicit('', DataType::TYPE_NULL);
    +                        $pSheet->getCell($coordinate)->setXfIndex(0);
    +                    }
    +                }
    +            }
    +        }
    +
    +        // 2. Clear row strips if we are removing rows
    +        if ($pNumRows < 0 && $beforeRow - 1 + $pNumRows > 0) {
    +            for ($i = $beforeColumnIndex - 1; $i <= Coordinate::columnIndexFromString($highestColumn) - 1; ++$i) {
    +                for ($j = $beforeRow + $pNumRows; $j <= $beforeRow - 1; ++$j) {
    +                    $coordinate = Coordinate::stringFromColumnIndex($i + 1) . $j;
    +                    $pSheet->removeConditionalStyles($coordinate);
    +                    if ($pSheet->cellExists($coordinate)) {
    +                        $pSheet->getCell($coordinate)->setValueExplicit('', DataType::TYPE_NULL);
    +                        $pSheet->getCell($coordinate)->setXfIndex(0);
    +                    }
    +                }
    +            }
    +        }
    +
    +        // Loop through cells, bottom-up, and change cell coordinate
    +        if ($remove) {
    +            // It's faster to reverse and pop than to use unshift, especially with large cell collections
    +            $allCoordinates = array_reverse($allCoordinates);
    +        }
    +        while ($coordinate = array_pop($allCoordinates)) {
    +            $cell = $pSheet->getCell($coordinate);
    +            $cellIndex = Coordinate::columnIndexFromString($cell->getColumn());
    +
    +            if ($cellIndex - 1 + $pNumCols < 0) {
    +                continue;
    +            }
    +
    +            // New coordinate
    +            $newCoordinate = Coordinate::stringFromColumnIndex($cellIndex + $pNumCols) . ($cell->getRow() + $pNumRows);
    +
    +            // Should the cell be updated? Move value and cellXf index from one cell to another.
    +            if (($cellIndex >= $beforeColumnIndex) && ($cell->getRow() >= $beforeRow)) {
    +                // Update cell styles
    +                $pSheet->getCell($newCoordinate)->setXfIndex($cell->getXfIndex());
    +
    +                // Insert this cell at its new location
    +                if ($cell->getDataType() == DataType::TYPE_FORMULA) {
    +                    // Formula should be adjusted
    +                    $pSheet->getCell($newCoordinate)
    +                        ->setValue($this->updateFormulaReferences($cell->getValue(), $pBefore, $pNumCols, $pNumRows, $pSheet->getTitle()));
    +                } else {
    +                    // Formula should not be adjusted
    +                    $pSheet->getCell($newCoordinate)->setValue($cell->getValue());
    +                }
    +
    +                // Clear the original cell
    +                $pSheet->getCellCollection()->delete($coordinate);
    +            } else {
    +                /*    We don't need to update styles for rows/columns before our insertion position,
    +                        but we do still need to adjust any formulae    in those cells                    */
    +                if ($cell->getDataType() == DataType::TYPE_FORMULA) {
    +                    // Formula should be adjusted
    +                    $cell->setValue($this->updateFormulaReferences($cell->getValue(), $pBefore, $pNumCols, $pNumRows, $pSheet->getTitle()));
    +                }
    +            }
    +        }
    +
    +        // Duplicate styles for the newly inserted cells
    +        $highestColumn = $pSheet->getHighestColumn();
    +        $highestRow = $pSheet->getHighestRow();
    +
    +        if ($pNumCols > 0 && $beforeColumnIndex - 2 > 0) {
    +            for ($i = $beforeRow; $i <= $highestRow - 1; ++$i) {
    +                // Style
    +                $coordinate = Coordinate::stringFromColumnIndex($beforeColumnIndex - 1) . $i;
    +                if ($pSheet->cellExists($coordinate)) {
    +                    $xfIndex = $pSheet->getCell($coordinate)->getXfIndex();
    +                    $conditionalStyles = $pSheet->conditionalStylesExists($coordinate) ?
    +                        $pSheet->getConditionalStyles($coordinate) : false;
    +                    for ($j = $beforeColumnIndex; $j <= $beforeColumnIndex - 1 + $pNumCols; ++$j) {
    +                        $pSheet->getCellByColumnAndRow($j, $i)->setXfIndex($xfIndex);
    +                        if ($conditionalStyles) {
    +                            $cloned = [];
    +                            foreach ($conditionalStyles as $conditionalStyle) {
    +                                $cloned[] = clone $conditionalStyle;
    +                            }
    +                            $pSheet->setConditionalStyles(Coordinate::stringFromColumnIndex($j) . $i, $cloned);
    +                        }
    +                    }
    +                }
    +            }
    +        }
    +
    +        if ($pNumRows > 0 && $beforeRow - 1 > 0) {
    +            for ($i = $beforeColumnIndex; $i <= Coordinate::columnIndexFromString($highestColumn); ++$i) {
    +                // Style
    +                $coordinate = Coordinate::stringFromColumnIndex($i) . ($beforeRow - 1);
    +                if ($pSheet->cellExists($coordinate)) {
    +                    $xfIndex = $pSheet->getCell($coordinate)->getXfIndex();
    +                    $conditionalStyles = $pSheet->conditionalStylesExists($coordinate) ?
    +                        $pSheet->getConditionalStyles($coordinate) : false;
    +                    for ($j = $beforeRow; $j <= $beforeRow - 1 + $pNumRows; ++$j) {
    +                        $pSheet->getCell(Coordinate::stringFromColumnIndex($i) . $j)->setXfIndex($xfIndex);
    +                        if ($conditionalStyles) {
    +                            $cloned = [];
    +                            foreach ($conditionalStyles as $conditionalStyle) {
    +                                $cloned[] = clone $conditionalStyle;
    +                            }
    +                            $pSheet->setConditionalStyles(Coordinate::stringFromColumnIndex($i) . $j, $cloned);
    +                        }
    +                    }
    +                }
    +            }
    +        }
    +
    +        // Update worksheet: column dimensions
    +        $this->adjustColumnDimensions($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows);
    +
    +        // Update worksheet: row dimensions
    +        $this->adjustRowDimensions($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows);
    +
    +        //    Update worksheet: page breaks
    +        $this->adjustPageBreaks($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows);
    +
    +        //    Update worksheet: comments
    +        $this->adjustComments($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows);
    +
    +        // Update worksheet: hyperlinks
    +        $this->adjustHyperlinks($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows);
    +
    +        // Update worksheet: data validations
    +        $this->adjustDataValidations($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows);
    +
    +        // Update worksheet: merge cells
    +        $this->adjustMergeCells($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows);
    +
    +        // Update worksheet: protected cells
    +        $this->adjustProtectedCells($pSheet, $pBefore, $beforeColumnIndex, $pNumCols, $beforeRow, $pNumRows);
    +
    +        // Update worksheet: autofilter
    +        $autoFilter = $pSheet->getAutoFilter();
    +        $autoFilterRange = $autoFilter->getRange();
    +        if (!empty($autoFilterRange)) {
    +            if ($pNumCols != 0) {
    +                $autoFilterColumns = $autoFilter->getColumns();
    +                if (count($autoFilterColumns) > 0) {
    +                    $column = '';
    +                    $row = 0;
    +                    sscanf($pBefore, '%[A-Z]%d', $column, $row);
    +                    $columnIndex = Coordinate::columnIndexFromString($column);
    +                    list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($autoFilterRange);
    +                    if ($columnIndex <= $rangeEnd[0]) {
    +                        if ($pNumCols < 0) {
    +                            //    If we're actually deleting any columns that fall within the autofilter range,
    +                            //        then we delete any rules for those columns
    +                            $deleteColumn = $columnIndex + $pNumCols - 1;
    +                            $deleteCount = abs($pNumCols);
    +                            for ($i = 1; $i <= $deleteCount; ++$i) {
    +                                if (isset($autoFilterColumns[Coordinate::stringFromColumnIndex($deleteColumn + 1)])) {
    +                                    $autoFilter->clearColumn(Coordinate::stringFromColumnIndex($deleteColumn + 1));
    +                                }
    +                                ++$deleteColumn;
    +                            }
    +                        }
    +                        $startCol = ($columnIndex > $rangeStart[0]) ? $columnIndex : $rangeStart[0];
    +
    +                        //    Shuffle columns in autofilter range
    +                        if ($pNumCols > 0) {
    +                            $startColRef = $startCol;
    +                            $endColRef = $rangeEnd[0];
    +                            $toColRef = $rangeEnd[0] + $pNumCols;
    +
    +                            do {
    +                                $autoFilter->shiftColumn(Coordinate::stringFromColumnIndex($endColRef), Coordinate::stringFromColumnIndex($toColRef));
    +                                --$endColRef;
    +                                --$toColRef;
    +                            } while ($startColRef <= $endColRef);
    +                        } else {
    +                            //    For delete, we shuffle from beginning to end to avoid overwriting
    +                            $startColID = Coordinate::stringFromColumnIndex($startCol);
    +                            $toColID = Coordinate::stringFromColumnIndex($startCol + $pNumCols);
    +                            $endColID = Coordinate::stringFromColumnIndex($rangeEnd[0] + 1);
    +                            do {
    +                                $autoFilter->shiftColumn($startColID, $toColID);
    +                                ++$startColID;
    +                                ++$toColID;
    +                            } while ($startColID != $endColID);
    +                        }
    +                    }
    +                }
    +            }
    +            $pSheet->setAutoFilter($this->updateCellReference($autoFilterRange, $pBefore, $pNumCols, $pNumRows));
    +        }
    +
    +        // Update worksheet: freeze pane
    +        if ($pSheet->getFreezePane()) {
    +            $splitCell = $pSheet->getFreezePane();
    +            $topLeftCell = $pSheet->getTopLeftCell();
    +
    +            $splitCell = $this->updateCellReference($splitCell, $pBefore, $pNumCols, $pNumRows);
    +            $topLeftCell = $this->updateCellReference($topLeftCell, $pBefore, $pNumCols, $pNumRows);
    +
    +            $pSheet->freezePane($splitCell, $topLeftCell);
    +        }
    +
    +        // Page setup
    +        if ($pSheet->getPageSetup()->isPrintAreaSet()) {
    +            $pSheet->getPageSetup()->setPrintArea($this->updateCellReference($pSheet->getPageSetup()->getPrintArea(), $pBefore, $pNumCols, $pNumRows));
    +        }
    +
    +        // Update worksheet: drawings
    +        $aDrawings = $pSheet->getDrawingCollection();
    +        foreach ($aDrawings as $objDrawing) {
    +            $newReference = $this->updateCellReference($objDrawing->getCoordinates(), $pBefore, $pNumCols, $pNumRows);
    +            if ($objDrawing->getCoordinates() != $newReference) {
    +                $objDrawing->setCoordinates($newReference);
    +            }
    +        }
    +
    +        // Update workbook: named ranges
    +        if (count($pSheet->getParent()->getNamedRanges()) > 0) {
    +            foreach ($pSheet->getParent()->getNamedRanges() as $namedRange) {
    +                if ($namedRange->getWorksheet()->getHashCode() == $pSheet->getHashCode()) {
    +                    $namedRange->setRange($this->updateCellReference($namedRange->getRange(), $pBefore, $pNumCols, $pNumRows));
    +                }
    +            }
    +        }
    +
    +        // Garbage collect
    +        $pSheet->garbageCollect();
    +    }
    +
    +    /**
    +     * Update references within formulas.
    +     *
    +     * @param string $pFormula Formula to update
    +     * @param int $pBefore Insert before this one
    +     * @param int $pNumCols Number of columns to insert
    +     * @param int $pNumRows Number of rows to insert
    +     * @param string $sheetName Worksheet name/title
    +     *
    +     * @throws Exception
    +     *
    +     * @return string Updated formula
    +     */
    +    public function updateFormulaReferences($pFormula = '', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0, $sheetName = '')
    +    {
    +        //    Update cell references in the formula
    +        $formulaBlocks = explode('"', $pFormula);
    +        $i = false;
    +        foreach ($formulaBlocks as &$formulaBlock) {
    +            //    Ignore blocks that were enclosed in quotes (alternating entries in the $formulaBlocks array after the explode)
    +            if ($i = !$i) {
    +                $adjustCount = 0;
    +                $newCellTokens = $cellTokens = [];
    +                //    Search for row ranges (e.g. 'Sheet1'!3:5 or 3:5) with or without $ absolutes (e.g. $3:5)
    +                $matchCount = preg_match_all('/' . self::REFHELPER_REGEXP_ROWRANGE . '/i', ' ' . $formulaBlock . ' ', $matches, PREG_SET_ORDER);
    +                if ($matchCount > 0) {
    +                    foreach ($matches as $match) {
    +                        $fromString = ($match[2] > '') ? $match[2] . '!' : '';
    +                        $fromString .= $match[3] . ':' . $match[4];
    +                        $modified3 = substr($this->updateCellReference('$A' . $match[3], $pBefore, $pNumCols, $pNumRows), 2);
    +                        $modified4 = substr($this->updateCellReference('$A' . $match[4], $pBefore, $pNumCols, $pNumRows), 2);
    +
    +                        if ($match[3] . ':' . $match[4] !== $modified3 . ':' . $modified4) {
    +                            if (($match[2] == '') || (trim($match[2], "'") == $sheetName)) {
    +                                $toString = ($match[2] > '') ? $match[2] . '!' : '';
    +                                $toString .= $modified3 . ':' . $modified4;
    +                                //    Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more
    +                                $column = 100000;
    +                                $row = 10000000 + trim($match[3], '$');
    +                                $cellIndex = $column . $row;
    +
    +                                $newCellTokens[$cellIndex] = preg_quote($toString, '/');
    +                                $cellTokens[$cellIndex] = '/(?<!\d\$\!)' . preg_quote($fromString, '/') . '(?!\d)/i';
    +                                ++$adjustCount;
    +                            }
    +                        }
    +                    }
    +                }
    +                //    Search for column ranges (e.g. 'Sheet1'!C:E or C:E) with or without $ absolutes (e.g. $C:E)
    +                $matchCount = preg_match_all('/' . self::REFHELPER_REGEXP_COLRANGE . '/i', ' ' . $formulaBlock . ' ', $matches, PREG_SET_ORDER);
    +                if ($matchCount > 0) {
    +                    foreach ($matches as $match) {
    +                        $fromString = ($match[2] > '') ? $match[2] . '!' : '';
    +                        $fromString .= $match[3] . ':' . $match[4];
    +                        $modified3 = substr($this->updateCellReference($match[3] . '$1', $pBefore, $pNumCols, $pNumRows), 0, -2);
    +                        $modified4 = substr($this->updateCellReference($match[4] . '$1', $pBefore, $pNumCols, $pNumRows), 0, -2);
    +
    +                        if ($match[3] . ':' . $match[4] !== $modified3 . ':' . $modified4) {
    +                            if (($match[2] == '') || (trim($match[2], "'") == $sheetName)) {
    +                                $toString = ($match[2] > '') ? $match[2] . '!' : '';
    +                                $toString .= $modified3 . ':' . $modified4;
    +                                //    Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more
    +                                $column = Coordinate::columnIndexFromString(trim($match[3], '$')) + 100000;
    +                                $row = 10000000;
    +                                $cellIndex = $column . $row;
    +
    +                                $newCellTokens[$cellIndex] = preg_quote($toString, '/');
    +                                $cellTokens[$cellIndex] = '/(?<![A-Z\$\!])' . preg_quote($fromString, '/') . '(?![A-Z])/i';
    +                                ++$adjustCount;
    +                            }
    +                        }
    +                    }
    +                }
    +                //    Search for cell ranges (e.g. 'Sheet1'!A3:C5 or A3:C5) with or without $ absolutes (e.g. $A1:C$5)
    +                $matchCount = preg_match_all('/' . self::REFHELPER_REGEXP_CELLRANGE . '/i', ' ' . $formulaBlock . ' ', $matches, PREG_SET_ORDER);
    +                if ($matchCount > 0) {
    +                    foreach ($matches as $match) {
    +                        $fromString = ($match[2] > '') ? $match[2] . '!' : '';
    +                        $fromString .= $match[3] . ':' . $match[4];
    +                        $modified3 = $this->updateCellReference($match[3], $pBefore, $pNumCols, $pNumRows);
    +                        $modified4 = $this->updateCellReference($match[4], $pBefore, $pNumCols, $pNumRows);
    +
    +                        if ($match[3] . $match[4] !== $modified3 . $modified4) {
    +                            if (($match[2] == '') || (trim($match[2], "'") == $sheetName)) {
    +                                $toString = ($match[2] > '') ? $match[2] . '!' : '';
    +                                $toString .= $modified3 . ':' . $modified4;
    +                                list($column, $row) = Coordinate::coordinateFromString($match[3]);
    +                                //    Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more
    +                                $column = Coordinate::columnIndexFromString(trim($column, '$')) + 100000;
    +                                $row = trim($row, '$') + 10000000;
    +                                $cellIndex = $column . $row;
    +
    +                                $newCellTokens[$cellIndex] = preg_quote($toString, '/');
    +                                $cellTokens[$cellIndex] = '/(?<![A-Z]\$\!)' . preg_quote($fromString, '/') . '(?!\d)/i';
    +                                ++$adjustCount;
    +                            }
    +                        }
    +                    }
    +                }
    +                //    Search for cell references (e.g. 'Sheet1'!A3 or C5) with or without $ absolutes (e.g. $A1 or C$5)
    +                $matchCount = preg_match_all('/' . self::REFHELPER_REGEXP_CELLREF . '/i', ' ' . $formulaBlock . ' ', $matches, PREG_SET_ORDER);
    +
    +                if ($matchCount > 0) {
    +                    foreach ($matches as $match) {
    +                        $fromString = ($match[2] > '') ? $match[2] . '!' : '';
    +                        $fromString .= $match[3];
    +
    +                        $modified3 = $this->updateCellReference($match[3], $pBefore, $pNumCols, $pNumRows);
    +                        if ($match[3] !== $modified3) {
    +                            if (($match[2] == '') || (trim($match[2], "'") == $sheetName)) {
    +                                $toString = ($match[2] > '') ? $match[2] . '!' : '';
    +                                $toString .= $modified3;
    +                                list($column, $row) = Coordinate::coordinateFromString($match[3]);
    +                                //    Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more
    +                                $column = Coordinate::columnIndexFromString(trim($column, '$')) + 100000;
    +                                $row = trim($row, '$') + 10000000;
    +                                $cellIndex = $row . $column;
    +
    +                                $newCellTokens[$cellIndex] = preg_quote($toString, '/');
    +                                $cellTokens[$cellIndex] = '/(?<![A-Z\$\!])' . preg_quote($fromString, '/') . '(?!\d)/i';
    +                                ++$adjustCount;
    +                            }
    +                        }
    +                    }
    +                }
    +                if ($adjustCount > 0) {
    +                    if ($pNumCols > 0 || $pNumRows > 0) {
    +                        krsort($cellTokens);
    +                        krsort($newCellTokens);
    +                    } else {
    +                        ksort($cellTokens);
    +                        ksort($newCellTokens);
    +                    }   //  Update cell references in the formula
    +                    $formulaBlock = str_replace('\\', '', preg_replace($cellTokens, $newCellTokens, $formulaBlock));
    +                }
    +            }
    +        }
    +        unset($formulaBlock);
    +
    +        //    Then rebuild the formula string
    +        return implode('"', $formulaBlocks);
    +    }
    +
    +    /**
    +     * Update cell reference.
    +     *
    +     * @param string $pCellRange Cell range
    +     * @param string $pBefore Insert before this one
    +     * @param int $pNumCols Number of columns to increment
    +     * @param int $pNumRows Number of rows to increment
    +     *
    +     * @throws Exception
    +     *
    +     * @return string Updated cell range
    +     */
    +    public function updateCellReference($pCellRange = 'A1', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0)
    +    {
    +        // Is it in another worksheet? Will not have to update anything.
    +        if (strpos($pCellRange, '!') !== false) {
    +            return $pCellRange;
    +        // Is it a range or a single cell?
    +        } elseif (!Coordinate::coordinateIsRange($pCellRange)) {
    +            // Single cell
    +            return $this->updateSingleCellReference($pCellRange, $pBefore, $pNumCols, $pNumRows);
    +        } elseif (Coordinate::coordinateIsRange($pCellRange)) {
    +            // Range
    +            return $this->updateCellRange($pCellRange, $pBefore, $pNumCols, $pNumRows);
    +        }
    +
    +        // Return original
    +        return $pCellRange;
    +    }
    +
    +    /**
    +     * Update named formulas (i.e. containing worksheet references / named ranges).
    +     *
    +     * @param Spreadsheet $spreadsheet Object to update
    +     * @param string $oldName Old name (name to replace)
    +     * @param string $newName New name
    +     */
    +    public function updateNamedFormulas(Spreadsheet $spreadsheet, $oldName = '', $newName = '')
    +    {
    +        if ($oldName == '') {
    +            return;
    +        }
    +
    +        foreach ($spreadsheet->getWorksheetIterator() as $sheet) {
    +            foreach ($sheet->getCoordinates(false) as $coordinate) {
    +                $cell = $sheet->getCell($coordinate);
    +                if (($cell !== null) && ($cell->getDataType() == DataType::TYPE_FORMULA)) {
    +                    $formula = $cell->getValue();
    +                    if (strpos($formula, $oldName) !== false) {
    +                        $formula = str_replace("'" . $oldName . "'!", "'" . $newName . "'!", $formula);
    +                        $formula = str_replace($oldName . '!', $newName . '!', $formula);
    +                        $cell->setValueExplicit($formula, DataType::TYPE_FORMULA);
    +                    }
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Update cell range.
    +     *
    +     * @param string $pCellRange Cell range    (e.g. 'B2:D4', 'B:C' or '2:3')
    +     * @param string $pBefore Insert before this one
    +     * @param int $pNumCols Number of columns to increment
    +     * @param int $pNumRows Number of rows to increment
    +     *
    +     * @throws Exception
    +     *
    +     * @return string Updated cell range
    +     */
    +    private function updateCellRange($pCellRange = 'A1:A1', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0)
    +    {
    +        if (!Coordinate::coordinateIsRange($pCellRange)) {
    +            throw new Exception('Only cell ranges may be passed to this method.');
    +        }
    +
    +        // Update range
    +        $range = Coordinate::splitRange($pCellRange);
    +        $ic = count($range);
    +        for ($i = 0; $i < $ic; ++$i) {
    +            $jc = count($range[$i]);
    +            for ($j = 0; $j < $jc; ++$j) {
    +                if (ctype_alpha($range[$i][$j])) {
    +                    $r = Coordinate::coordinateFromString($this->updateSingleCellReference($range[$i][$j] . '1', $pBefore, $pNumCols, $pNumRows));
    +                    $range[$i][$j] = $r[0];
    +                } elseif (ctype_digit($range[$i][$j])) {
    +                    $r = Coordinate::coordinateFromString($this->updateSingleCellReference('A' . $range[$i][$j], $pBefore, $pNumCols, $pNumRows));
    +                    $range[$i][$j] = $r[1];
    +                } else {
    +                    $range[$i][$j] = $this->updateSingleCellReference($range[$i][$j], $pBefore, $pNumCols, $pNumRows);
    +                }
    +            }
    +        }
    +
    +        // Recreate range string
    +        return Coordinate::buildRange($range);
    +    }
    +
    +    /**
    +     * Update single cell reference.
    +     *
    +     * @param string $pCellReference Single cell reference
    +     * @param string $pBefore Insert before this one
    +     * @param int $pNumCols Number of columns to increment
    +     * @param int $pNumRows Number of rows to increment
    +     *
    +     * @throws Exception
    +     *
    +     * @return string Updated cell reference
    +     */
    +    private function updateSingleCellReference($pCellReference = 'A1', $pBefore = 'A1', $pNumCols = 0, $pNumRows = 0)
    +    {
    +        if (Coordinate::coordinateIsRange($pCellReference)) {
    +            throw new Exception('Only single cell references may be passed to this method.');
    +        }
    +
    +        // Get coordinate of $pBefore
    +        list($beforeColumn, $beforeRow) = Coordinate::coordinateFromString($pBefore);
    +
    +        // Get coordinate of $pCellReference
    +        list($newColumn, $newRow) = Coordinate::coordinateFromString($pCellReference);
    +
    +        // Verify which parts should be updated
    +        $updateColumn = (($newColumn[0] != '$') && ($beforeColumn[0] != '$') && (Coordinate::columnIndexFromString($newColumn) >= Coordinate::columnIndexFromString($beforeColumn)));
    +        $updateRow = (($newRow[0] != '$') && ($beforeRow[0] != '$') && $newRow >= $beforeRow);
    +
    +        // Create new column reference
    +        if ($updateColumn) {
    +            $newColumn = Coordinate::stringFromColumnIndex(Coordinate::columnIndexFromString($newColumn) + $pNumCols);
    +        }
    +
    +        // Create new row reference
    +        if ($updateRow) {
    +            $newRow = $newRow + $pNumRows;
    +        }
    +
    +        // Return new reference
    +        return $newColumn . $newRow;
    +    }
    +
    +    /**
    +     * __clone implementation. Cloning should not be allowed in a Singleton!
    +     *
    +     * @throws Exception
    +     */
    +    final public function __clone()
    +    {
    +        throw new Exception('Cloning a Singleton is not allowed!');
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/ITextElement.php b/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/ITextElement.php
    new file mode 100644
    index 00000000000..69954676028
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/ITextElement.php
    @@ -0,0 +1,36 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\RichText;
    +
    +interface ITextElement
    +{
    +    /**
    +     * Get text.
    +     *
    +     * @return string Text
    +     */
    +    public function getText();
    +
    +    /**
    +     * Set text.
    +     *
    +     * @param $text string Text
    +     *
    +     * @return ITextElement
    +     */
    +    public function setText($text);
    +
    +    /**
    +     * Get font.
    +     *
    +     * @return null|\PhpOffice\PhpSpreadsheet\Style\Font
    +     */
    +    public function getFont();
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode();
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/RichText.php b/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/RichText.php
    new file mode 100644
    index 00000000000..76a04d549f5
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/RichText.php
    @@ -0,0 +1,177 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\RichText;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Cell;
    +use PhpOffice\PhpSpreadsheet\Cell\DataType;
    +use PhpOffice\PhpSpreadsheet\Exception;
    +use PhpOffice\PhpSpreadsheet\IComparable;
    +
    +class RichText implements IComparable
    +{
    +    /**
    +     * Rich text elements.
    +     *
    +     * @var ITextElement[]
    +     */
    +    private $richTextElements;
    +
    +    /**
    +     * Create a new RichText instance.
    +     *
    +     * @param Cell $pCell
    +     *
    +     * @throws Exception
    +     */
    +    public function __construct(Cell $pCell = null)
    +    {
    +        // Initialise variables
    +        $this->richTextElements = [];
    +
    +        // Rich-Text string attached to cell?
    +        if ($pCell !== null) {
    +            // Add cell text and style
    +            if ($pCell->getValue() != '') {
    +                $objRun = new Run($pCell->getValue());
    +                $objRun->setFont(clone $pCell->getWorksheet()->getStyle($pCell->getCoordinate())->getFont());
    +                $this->addText($objRun);
    +            }
    +
    +            // Set parent value
    +            $pCell->setValueExplicit($this, DataType::TYPE_STRING);
    +        }
    +    }
    +
    +    /**
    +     * Add text.
    +     *
    +     * @param ITextElement $pText Rich text element
    +     *
    +     * @return RichText
    +     */
    +    public function addText(ITextElement $pText)
    +    {
    +        $this->richTextElements[] = $pText;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Create text.
    +     *
    +     * @param string $pText Text
    +     *
    +     * @throws Exception
    +     *
    +     * @return TextElement
    +     */
    +    public function createText($pText)
    +    {
    +        $objText = new TextElement($pText);
    +        $this->addText($objText);
    +
    +        return $objText;
    +    }
    +
    +    /**
    +     * Create text run.
    +     *
    +     * @param string $pText Text
    +     *
    +     * @throws Exception
    +     *
    +     * @return Run
    +     */
    +    public function createTextRun($pText)
    +    {
    +        $objText = new Run($pText);
    +        $this->addText($objText);
    +
    +        return $objText;
    +    }
    +
    +    /**
    +     * Get plain text.
    +     *
    +     * @return string
    +     */
    +    public function getPlainText()
    +    {
    +        // Return value
    +        $returnValue = '';
    +
    +        // Loop through all ITextElements
    +        foreach ($this->richTextElements as $text) {
    +            $returnValue .= $text->getText();
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * Convert to string.
    +     *
    +     * @return string
    +     */
    +    public function __toString()
    +    {
    +        return $this->getPlainText();
    +    }
    +
    +    /**
    +     * Get Rich Text elements.
    +     *
    +     * @return ITextElement[]
    +     */
    +    public function getRichTextElements()
    +    {
    +        return $this->richTextElements;
    +    }
    +
    +    /**
    +     * Set Rich Text elements.
    +     *
    +     * @param ITextElement[] $textElements Array of elements
    +     *
    +     * @return RichText
    +     */
    +    public function setRichTextElements(array $textElements)
    +    {
    +        $this->richTextElements = $textElements;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        $hashElements = '';
    +        foreach ($this->richTextElements as $element) {
    +            $hashElements .= $element->getHashCode();
    +        }
    +
    +        return md5(
    +            $hashElements .
    +            __CLASS__
    +        );
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/Run.php b/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/Run.php
    new file mode 100644
    index 00000000000..b4996235f33
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/Run.php
    @@ -0,0 +1,65 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\RichText;
    +
    +use PhpOffice\PhpSpreadsheet\Style\Font;
    +
    +class Run extends TextElement implements ITextElement
    +{
    +    /**
    +     * Font.
    +     *
    +     * @var Font
    +     */
    +    private $font;
    +
    +    /**
    +     * Create a new Run instance.
    +     *
    +     * @param string $pText Text
    +     */
    +    public function __construct($pText = '')
    +    {
    +        parent::__construct($pText);
    +        // Initialise variables
    +        $this->font = new Font();
    +    }
    +
    +    /**
    +     * Get font.
    +     *
    +     * @return null|\PhpOffice\PhpSpreadsheet\Style\Font
    +     */
    +    public function getFont()
    +    {
    +        return $this->font;
    +    }
    +
    +    /**
    +     * Set font.
    +     *
    +     * @param Font $pFont Font
    +     *
    +     * @return ITextElement
    +     */
    +    public function setFont(Font $pFont = null)
    +    {
    +        $this->font = $pFont;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        return md5(
    +            $this->getText() .
    +            $this->font->getHashCode() .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/TextElement.php b/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/TextElement.php
    new file mode 100644
    index 00000000000..d9ad0d7f5ed
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/RichText/TextElement.php
    @@ -0,0 +1,86 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\RichText;
    +
    +class TextElement implements ITextElement
    +{
    +    /**
    +     * Text.
    +     *
    +     * @var string
    +     */
    +    private $text;
    +
    +    /**
    +     * Create a new TextElement instance.
    +     *
    +     * @param string $pText Text
    +     */
    +    public function __construct($pText = '')
    +    {
    +        // Initialise variables
    +        $this->text = $pText;
    +    }
    +
    +    /**
    +     * Get text.
    +     *
    +     * @return string Text
    +     */
    +    public function getText()
    +    {
    +        return $this->text;
    +    }
    +
    +    /**
    +     * Set text.
    +     *
    +     * @param $text string Text
    +     *
    +     * @return ITextElement
    +     */
    +    public function setText($text)
    +    {
    +        $this->text = $text;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get font.
    +     *
    +     * @return null|\PhpOffice\PhpSpreadsheet\Style\Font
    +     */
    +    public function getFont()
    +    {
    +        return null;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        return md5(
    +            $this->text .
    +            __CLASS__
    +        );
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Settings.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Settings.php
    new file mode 100644
    index 00000000000..22196b7e0e2
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Settings.php
    @@ -0,0 +1,127 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Chart\Renderer\IRenderer;
    +use PhpOffice\PhpSpreadsheet\Collection\Memory;
    +use Psr\SimpleCache\CacheInterface;
    +
    +class Settings
    +{
    +    /**
    +     * Class name of the chart renderer used for rendering charts
    +     * eg: PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph.
    +     *
    +     * @var string
    +     */
    +    private static $chartRenderer;
    +
    +    /**
    +     * Default options for libxml loader.
    +     *
    +     * @var int
    +     */
    +    private static $libXmlLoaderOptions = null;
    +
    +    /**
    +     * The cache implementation to be used for cell collection.
    +     *
    +     * @var CacheInterface
    +     */
    +    private static $cache;
    +
    +    /**
    +     * Set the locale code to use for formula translations and any special formatting.
    +     *
    +     * @param string $locale The locale code to use (e.g. "fr" or "pt_br" or "en_uk")
    +     *
    +     * @return bool Success or failure
    +     */
    +    public static function setLocale($locale)
    +    {
    +        return Calculation::getInstance()->setLocale($locale);
    +    }
    +
    +    /**
    +     * Identify to PhpSpreadsheet the external library to use for rendering charts.
    +     *
    +     * @param string $rendererClass Class name of the chart renderer
    +     *    eg: PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph
    +     *
    +     * @throws Exception
    +     */
    +    public static function setChartRenderer($rendererClass)
    +    {
    +        if (!is_a($rendererClass, IRenderer::class, true)) {
    +            throw new Exception('Chart renderer must implement ' . IRenderer::class);
    +        }
    +
    +        self::$chartRenderer = $rendererClass;
    +    }
    +
    +    /**
    +     * Return the Chart Rendering Library that PhpSpreadsheet is currently configured to use.
    +     *
    +     * @return null|string Class name of the chart renderer
    +     *    eg: PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph
    +     */
    +    public static function getChartRenderer()
    +    {
    +        return self::$chartRenderer;
    +    }
    +
    +    /**
    +     * Set default options for libxml loader.
    +     *
    +     * @param int $options Default options for libxml loader
    +     */
    +    public static function setLibXmlLoaderOptions($options)
    +    {
    +        if ($options === null && defined('LIBXML_DTDLOAD')) {
    +            $options = LIBXML_DTDLOAD | LIBXML_DTDATTR;
    +        }
    +        self::$libXmlLoaderOptions = $options;
    +    }
    +
    +    /**
    +     * Get default options for libxml loader.
    +     * Defaults to LIBXML_DTDLOAD | LIBXML_DTDATTR when not set explicitly.
    +     *
    +     * @return int Default options for libxml loader
    +     */
    +    public static function getLibXmlLoaderOptions()
    +    {
    +        if (self::$libXmlLoaderOptions === null && defined('LIBXML_DTDLOAD')) {
    +            self::setLibXmlLoaderOptions(LIBXML_DTDLOAD | LIBXML_DTDATTR);
    +        } elseif (self::$libXmlLoaderOptions === null) {
    +            self::$libXmlLoaderOptions = true;
    +        }
    +
    +        return self::$libXmlLoaderOptions;
    +    }
    +
    +    /**
    +     * Sets the implementation of cache that should be used for cell collection.
    +     *
    +     * @param CacheInterface $cache
    +     */
    +    public static function setCache(CacheInterface $cache)
    +    {
    +        self::$cache = $cache;
    +    }
    +
    +    /**
    +     * Gets the implementation of cache that should be used for cell collection.
    +     *
    +     * @return CacheInterface
    +     */
    +    public static function getCache()
    +    {
    +        if (!self::$cache) {
    +            self::$cache = new Memory();
    +        }
    +
    +        return self::$cache;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/CodePage.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/CodePage.php
    new file mode 100644
    index 00000000000..4b57824203e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/CodePage.php
    @@ -0,0 +1,138 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class CodePage
    +{
    +    /**
    +     * Convert Microsoft Code Page Identifier to Code Page Name which iconv
    +     * and mbstring understands.
    +     *
    +     * @param int $codePage Microsoft Code Page Indentifier
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return string Code Page Name
    +     */
    +    public static function numberToName($codePage)
    +    {
    +        switch ($codePage) {
    +            case 367:
    +                return 'ASCII'; //    ASCII
    +            case 437:
    +                return 'CP437'; //    OEM US
    +            case 720:
    +                throw new PhpSpreadsheetException('Code page 720 not supported.'); //    OEM Arabic
    +            case 737:
    +                return 'CP737'; //    OEM Greek
    +            case 775:
    +                return 'CP775'; //    OEM Baltic
    +            case 850:
    +                return 'CP850'; //    OEM Latin I
    +            case 852:
    +                return 'CP852'; //    OEM Latin II (Central European)
    +            case 855:
    +                return 'CP855'; //    OEM Cyrillic
    +            case 857:
    +                return 'CP857'; //    OEM Turkish
    +            case 858:
    +                return 'CP858'; //    OEM Multilingual Latin I with Euro
    +            case 860:
    +                return 'CP860'; //    OEM Portugese
    +            case 861:
    +                return 'CP861'; //    OEM Icelandic
    +            case 862:
    +                return 'CP862'; //    OEM Hebrew
    +            case 863:
    +                return 'CP863'; //    OEM Canadian (French)
    +            case 864:
    +                return 'CP864'; //    OEM Arabic
    +            case 865:
    +                return 'CP865'; //    OEM Nordic
    +            case 866:
    +                return 'CP866'; //    OEM Cyrillic (Russian)
    +            case 869:
    +                return 'CP869'; //    OEM Greek (Modern)
    +            case 874:
    +                return 'CP874'; //    ANSI Thai
    +            case 932:
    +                return 'CP932'; //    ANSI Japanese Shift-JIS
    +            case 936:
    +                return 'CP936'; //    ANSI Chinese Simplified GBK
    +            case 949:
    +                return 'CP949'; //    ANSI Korean (Wansung)
    +            case 950:
    +                return 'CP950'; //    ANSI Chinese Traditional BIG5
    +            case 1200:
    +                return 'UTF-16LE'; //    UTF-16 (BIFF8)
    +            case 1250:
    +                return 'CP1250'; //    ANSI Latin II (Central European)
    +            case 1251:
    +                return 'CP1251'; //    ANSI Cyrillic
    +            case 0:
    +                //    CodePage is not always correctly set when the xls file was saved by Apple's Numbers program
    +            case 1252:
    +                return 'CP1252'; //    ANSI Latin I (BIFF4-BIFF7)
    +            case 1253:
    +                return 'CP1253'; //    ANSI Greek
    +            case 1254:
    +                return 'CP1254'; //    ANSI Turkish
    +            case 1255:
    +                return 'CP1255'; //    ANSI Hebrew
    +            case 1256:
    +                return 'CP1256'; //    ANSI Arabic
    +            case 1257:
    +                return 'CP1257'; //    ANSI Baltic
    +            case 1258:
    +                return 'CP1258'; //    ANSI Vietnamese
    +            case 1361:
    +                return 'CP1361'; //    ANSI Korean (Johab)
    +            case 10000:
    +                return 'MAC'; //    Apple Roman
    +            case 10001:
    +                return 'CP932'; //    Macintosh Japanese
    +            case 10002:
    +                return 'CP950'; //    Macintosh Chinese Traditional
    +            case 10003:
    +                return 'CP1361'; //    Macintosh Korean
    +            case 10004:
    +                return 'MACARABIC'; //    Apple Arabic
    +            case 10005:
    +                return 'MACHEBREW'; //    Apple Hebrew
    +            case 10006:
    +                return 'MACGREEK'; //    Macintosh Greek
    +            case 10007:
    +                return 'MACCYRILLIC'; //    Macintosh Cyrillic
    +            case 10008:
    +                return 'CP936'; //    Macintosh - Simplified Chinese (GB 2312)
    +            case 10010:
    +                return 'MACROMANIA'; //    Macintosh Romania
    +            case 10017:
    +                return 'MACUKRAINE'; //    Macintosh Ukraine
    +            case 10021:
    +                return 'MACTHAI'; //    Macintosh Thai
    +            case 10029:
    +                return 'MACCENTRALEUROPE'; //    Macintosh Central Europe
    +            case 10079:
    +                return 'MACICELAND'; //    Macintosh Icelandic
    +            case 10081:
    +                return 'MACTURKISH'; //    Macintosh Turkish
    +            case 10082:
    +                return 'MACCROATIAN'; //    Macintosh Croatian
    +            case 21010:
    +                return 'UTF-16LE'; //    UTF-16 (BIFF8) This isn't correct, but some Excel writer libraries erroneously use Codepage 21010 for UTF-16LE
    +            case 32768:
    +                return 'MAC'; //    Apple Roman
    +            case 32769:
    +                throw new PhpSpreadsheetException('Code page 32769 not supported.'); //    ANSI Latin I (BIFF2-BIFF3)
    +            case 65000:
    +                return 'UTF-7'; //    Unicode (UTF-7)
    +            case 65001:
    +                return 'UTF-8'; //    Unicode (UTF-8)
    +        }
    +
    +        throw new PhpSpreadsheetException('Unknown codepage: ' . $codePage);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Date.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Date.php
    new file mode 100644
    index 00000000000..91c3ee0e2ca
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Date.php
    @@ -0,0 +1,492 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +use DateTimeInterface;
    +use DateTimeZone;
    +use PhpOffice\PhpSpreadsheet\Calculation\DateTime;
    +use PhpOffice\PhpSpreadsheet\Calculation\Functions;
    +use PhpOffice\PhpSpreadsheet\Cell\Cell;
    +use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
    +
    +class Date
    +{
    +    /** constants */
    +    const CALENDAR_WINDOWS_1900 = 1900; //    Base date of 1st Jan 1900 = 1.0
    +    const CALENDAR_MAC_1904 = 1904; //    Base date of 2nd Jan 1904 = 1.0
    +
    +    /**
    +     * Names of the months of the year, indexed by shortname
    +     * Planned usage for locale settings.
    +     *
    +     * @var string[]
    +     */
    +    public static $monthNames = [
    +        'Jan' => 'January',
    +        'Feb' => 'February',
    +        'Mar' => 'March',
    +        'Apr' => 'April',
    +        'May' => 'May',
    +        'Jun' => 'June',
    +        'Jul' => 'July',
    +        'Aug' => 'August',
    +        'Sep' => 'September',
    +        'Oct' => 'October',
    +        'Nov' => 'November',
    +        'Dec' => 'December',
    +    ];
    +
    +    /**
    +     * @var string[]
    +     */
    +    public static $numberSuffixes = [
    +        'st',
    +        'nd',
    +        'rd',
    +        'th',
    +    ];
    +
    +    /**
    +     * Base calendar year to use for calculations
    +     * Value is either CALENDAR_WINDOWS_1900 (1900) or CALENDAR_MAC_1904 (1904).
    +     *
    +     * @var int
    +     */
    +    protected static $excelCalendar = self::CALENDAR_WINDOWS_1900;
    +
    +    /**
    +     * Default timezone to use for DateTime objects.
    +     *
    +     * @var null|\DateTimeZone
    +     */
    +    protected static $defaultTimeZone;
    +
    +    /**
    +     * Set the Excel calendar (Windows 1900 or Mac 1904).
    +     *
    +     * @param int $baseDate Excel base date (1900 or 1904)
    +     *
    +     * @return bool Success or failure
    +     */
    +    public static function setExcelCalendar($baseDate)
    +    {
    +        if (($baseDate == self::CALENDAR_WINDOWS_1900) ||
    +            ($baseDate == self::CALENDAR_MAC_1904)) {
    +            self::$excelCalendar = $baseDate;
    +
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Return the Excel calendar (Windows 1900 or Mac 1904).
    +     *
    +     * @return int Excel base date (1900 or 1904)
    +     */
    +    public static function getExcelCalendar()
    +    {
    +        return self::$excelCalendar;
    +    }
    +
    +    /**
    +     * Set the Default timezone to use for dates.
    +     *
    +     * @param DateTimeZone|string $timeZone The timezone to set for all Excel datetimestamp to PHP DateTime Object conversions
    +     *
    +     * @throws \Exception
    +     *
    +     * @return bool Success or failure
    +     * @return bool Success or failure
    +     */
    +    public static function setDefaultTimezone($timeZone)
    +    {
    +        if ($timeZone = self::validateTimeZone($timeZone)) {
    +            self::$defaultTimeZone = $timeZone;
    +
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Return the Default timezone being used for dates.
    +     *
    +     * @return DateTimeZone The timezone being used as default for Excel timestamp to PHP DateTime object
    +     */
    +    public static function getDefaultTimezone()
    +    {
    +        if (self::$defaultTimeZone === null) {
    +            self::$defaultTimeZone = new DateTimeZone('UTC');
    +        }
    +
    +        return self::$defaultTimeZone;
    +    }
    +
    +    /**
    +     * Validate a timezone.
    +     *
    +     * @param DateTimeZone|string $timeZone The timezone to validate, either as a timezone string or object
    +     *
    +     * @throws \Exception
    +     *
    +     * @return DateTimeZone The timezone as a timezone object
    +     * @return DateTimeZone The timezone as a timezone object
    +     */
    +    protected static function validateTimeZone($timeZone)
    +    {
    +        if (is_object($timeZone) && $timeZone instanceof DateTimeZone) {
    +            return $timeZone;
    +        } elseif (is_string($timeZone)) {
    +            return new DateTimeZone($timeZone);
    +        }
    +
    +        throw new \Exception('Invalid timezone');
    +    }
    +
    +    /**
    +     * Convert a MS serialized datetime value from Excel to a PHP Date/Time object.
    +     *
    +     * @param float|int $excelTimestamp MS Excel serialized date/time value
    +     * @param null|DateTimeZone|string $timeZone The timezone to assume for the Excel timestamp,
    +     *                                                                        if you don't want to treat it as a UTC value
    +     *                                                                    Use the default (UST) unless you absolutely need a conversion
    +     *
    +     * @throws \Exception
    +     *
    +     * @return \DateTime PHP date/time object
    +     */
    +    public static function excelToDateTimeObject($excelTimestamp, $timeZone = null)
    +    {
    +        $timeZone = ($timeZone === null) ? self::getDefaultTimezone() : self::validateTimeZone($timeZone);
    +        if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_EXCEL) {
    +            if ($excelTimestamp < 1.0) {
    +                // Unix timestamp base date
    +                $baseDate = new \DateTime('1970-01-01', $timeZone);
    +            } else {
    +                // MS Excel calendar base dates
    +                if (self::$excelCalendar == self::CALENDAR_WINDOWS_1900) {
    +                    // Allow adjustment for 1900 Leap Year in MS Excel
    +                    $baseDate = ($excelTimestamp < 60) ? new \DateTime('1899-12-31', $timeZone) : new \DateTime('1899-12-30', $timeZone);
    +                } else {
    +                    $baseDate = new \DateTime('1904-01-01', $timeZone);
    +                }
    +            }
    +        } else {
    +            $baseDate = new \DateTime('1899-12-30', $timeZone);
    +        }
    +
    +        $days = floor($excelTimestamp);
    +        $partDay = $excelTimestamp - $days;
    +        $hours = floor($partDay * 24);
    +        $partDay = $partDay * 24 - $hours;
    +        $minutes = floor($partDay * 60);
    +        $partDay = $partDay * 60 - $minutes;
    +        $seconds = round($partDay * 60);
    +
    +        if ($days >= 0) {
    +            $days = '+' . $days;
    +        }
    +        $interval = $days . ' days';
    +
    +        return $baseDate->modify($interval)
    +            ->setTime($hours, $minutes, $seconds);
    +    }
    +
    +    /**
    +     * Convert a MS serialized datetime value from Excel to a unix timestamp.
    +     *
    +     * @param float|int $excelTimestamp MS Excel serialized date/time value
    +     * @param null|DateTimeZone|string $timeZone The timezone to assume for the Excel timestamp,
    +     *                                                                        if you don't want to treat it as a UTC value
    +     *                                                                    Use the default (UST) unless you absolutely need a conversion
    +     *
    +     * @throws \Exception
    +     *
    +     * @return int Unix timetamp for this date/time
    +     */
    +    public static function excelToTimestamp($excelTimestamp, $timeZone = null)
    +    {
    +        return (int) self::excelToDateTimeObject($excelTimestamp, $timeZone)
    +            ->format('U');
    +    }
    +
    +    /**
    +     * Convert a date from PHP to an MS Excel serialized date/time value.
    +     *
    +     * @param mixed $dateValue Unix Timestamp or PHP DateTime object or a string
    +     *
    +     * @return bool|float Excel date/time value
    +     *                                  or boolean FALSE on failure
    +     */
    +    public static function PHPToExcel($dateValue)
    +    {
    +        if ((is_object($dateValue)) && ($dateValue instanceof DateTimeInterface)) {
    +            return self::dateTimeToExcel($dateValue);
    +        } elseif (is_numeric($dateValue)) {
    +            return self::timestampToExcel($dateValue);
    +        } elseif (is_string($dateValue)) {
    +            return self::stringToExcel($dateValue);
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Convert a PHP DateTime object to an MS Excel serialized date/time value.
    +     *
    +     * @param DateTimeInterface $dateValue PHP DateTime object
    +     *
    +     * @return float MS Excel serialized date/time value
    +     */
    +    public static function dateTimeToExcel(DateTimeInterface $dateValue)
    +    {
    +        return self::formattedPHPToExcel(
    +            $dateValue->format('Y'),
    +            $dateValue->format('m'),
    +            $dateValue->format('d'),
    +            $dateValue->format('H'),
    +            $dateValue->format('i'),
    +            $dateValue->format('s')
    +        );
    +    }
    +
    +    /**
    +     * Convert a Unix timestamp to an MS Excel serialized date/time value.
    +     *
    +     * @param int $dateValue Unix Timestamp
    +     *
    +     * @return float MS Excel serialized date/time value
    +     */
    +    public static function timestampToExcel($dateValue)
    +    {
    +        if (!is_numeric($dateValue)) {
    +            return false;
    +        }
    +
    +        return self::dateTimeToExcel(new \DateTime('@' . $dateValue));
    +    }
    +
    +    /**
    +     * formattedPHPToExcel.
    +     *
    +     * @param int $year
    +     * @param int $month
    +     * @param int $day
    +     * @param int $hours
    +     * @param int $minutes
    +     * @param int $seconds
    +     *
    +     * @return float Excel date/time value
    +     */
    +    public static function formattedPHPToExcel($year, $month, $day, $hours = 0, $minutes = 0, $seconds = 0)
    +    {
    +        if (self::$excelCalendar == self::CALENDAR_WINDOWS_1900) {
    +            //
    +            //    Fudge factor for the erroneous fact that the year 1900 is treated as a Leap Year in MS Excel
    +            //    This affects every date following 28th February 1900
    +            //
    +            $excel1900isLeapYear = true;
    +            if (($year == 1900) && ($month <= 2)) {
    +                $excel1900isLeapYear = false;
    +            }
    +            $myexcelBaseDate = 2415020;
    +        } else {
    +            $myexcelBaseDate = 2416481;
    +            $excel1900isLeapYear = false;
    +        }
    +
    +        //    Julian base date Adjustment
    +        if ($month > 2) {
    +            $month -= 3;
    +        } else {
    +            $month += 9;
    +            --$year;
    +        }
    +
    +        //    Calculate the Julian Date, then subtract the Excel base date (JD 2415020 = 31-Dec-1899 Giving Excel Date of 0)
    +        $century = substr($year, 0, 2);
    +        $decade = substr($year, 2, 2);
    +        $excelDate = floor((146097 * $century) / 4) + floor((1461 * $decade) / 4) + floor((153 * $month + 2) / 5) + $day + 1721119 - $myexcelBaseDate + $excel1900isLeapYear;
    +
    +        $excelTime = (($hours * 3600) + ($minutes * 60) + $seconds) / 86400;
    +
    +        return (float) $excelDate + $excelTime;
    +    }
    +
    +    /**
    +     * Is a given cell a date/time?
    +     *
    +     * @param Cell $pCell
    +     *
    +     * @return bool
    +     */
    +    public static function isDateTime(Cell $pCell)
    +    {
    +        return self::isDateTimeFormat(
    +            $pCell->getWorksheet()->getStyle(
    +                $pCell->getCoordinate()
    +            )->getNumberFormat()
    +        );
    +    }
    +
    +    /**
    +     * Is a given number format a date/time?
    +     *
    +     * @param NumberFormat $pFormat
    +     *
    +     * @return bool
    +     */
    +    public static function isDateTimeFormat(NumberFormat $pFormat)
    +    {
    +        return self::isDateTimeFormatCode($pFormat->getFormatCode());
    +    }
    +
    +    private static $possibleDateFormatCharacters = 'eymdHs';
    +
    +    /**
    +     * Is a given number format code a date/time?
    +     *
    +     * @param string $pFormatCode
    +     *
    +     * @return bool
    +     */
    +    public static function isDateTimeFormatCode($pFormatCode)
    +    {
    +        if (strtolower($pFormatCode) === strtolower(NumberFormat::FORMAT_GENERAL)) {
    +            //    "General" contains an epoch letter 'e', so we trap for it explicitly here (case-insensitive check)
    +            return false;
    +        }
    +        if (preg_match('/[0#]E[+-]0/i', $pFormatCode)) {
    +            //    Scientific format
    +            return false;
    +        }
    +
    +        // Switch on formatcode
    +        switch ($pFormatCode) {
    +            //    Explicitly defined date formats
    +            case NumberFormat::FORMAT_DATE_YYYYMMDD:
    +            case NumberFormat::FORMAT_DATE_YYYYMMDD2:
    +            case NumberFormat::FORMAT_DATE_DDMMYYYY:
    +            case NumberFormat::FORMAT_DATE_DMYSLASH:
    +            case NumberFormat::FORMAT_DATE_DMYMINUS:
    +            case NumberFormat::FORMAT_DATE_DMMINUS:
    +            case NumberFormat::FORMAT_DATE_MYMINUS:
    +            case NumberFormat::FORMAT_DATE_DATETIME:
    +            case NumberFormat::FORMAT_DATE_TIME1:
    +            case NumberFormat::FORMAT_DATE_TIME2:
    +            case NumberFormat::FORMAT_DATE_TIME3:
    +            case NumberFormat::FORMAT_DATE_TIME4:
    +            case NumberFormat::FORMAT_DATE_TIME5:
    +            case NumberFormat::FORMAT_DATE_TIME6:
    +            case NumberFormat::FORMAT_DATE_TIME7:
    +            case NumberFormat::FORMAT_DATE_TIME8:
    +            case NumberFormat::FORMAT_DATE_YYYYMMDDSLASH:
    +            case NumberFormat::FORMAT_DATE_XLSX14:
    +            case NumberFormat::FORMAT_DATE_XLSX15:
    +            case NumberFormat::FORMAT_DATE_XLSX16:
    +            case NumberFormat::FORMAT_DATE_XLSX17:
    +            case NumberFormat::FORMAT_DATE_XLSX22:
    +                return true;
    +        }
    +
    +        //    Typically number, currency or accounting (or occasionally fraction) formats
    +        if ((substr($pFormatCode, 0, 1) == '_') || (substr($pFormatCode, 0, 2) == '0 ')) {
    +            return false;
    +        }
    +        // Try checking for any of the date formatting characters that don't appear within square braces
    +        if (preg_match('/(^|\])[^\[]*[' . self::$possibleDateFormatCharacters . ']/i', $pFormatCode)) {
    +            //    We might also have a format mask containing quoted strings...
    +            //        we don't want to test for any of our characters within the quoted blocks
    +            if (strpos($pFormatCode, '"') !== false) {
    +                $segMatcher = false;
    +                foreach (explode('"', $pFormatCode) as $subVal) {
    +                    //    Only test in alternate array entries (the non-quoted blocks)
    +                    if (($segMatcher = !$segMatcher) &&
    +                        (preg_match('/(^|\])[^\[]*[' . self::$possibleDateFormatCharacters . ']/i', $subVal))) {
    +                        return true;
    +                    }
    +                }
    +
    +                return false;
    +            }
    +
    +            return true;
    +        }
    +
    +        // No date...
    +        return false;
    +    }
    +
    +    /**
    +     * Convert a date/time string to Excel time.
    +     *
    +     * @param string $dateValue Examples: '2009-12-31', '2009-12-31 15:59', '2009-12-31 15:59:10'
    +     *
    +     * @return false|float Excel date/time serial value
    +     */
    +    public static function stringToExcel($dateValue)
    +    {
    +        if (strlen($dateValue) < 2) {
    +            return false;
    +        }
    +        if (!preg_match('/^(\d{1,4}[ \.\/\-][A-Z]{3,9}([ \.\/\-]\d{1,4})?|[A-Z]{3,9}[ \.\/\-]\d{1,4}([ \.\/\-]\d{1,4})?|\d{1,4}[ \.\/\-]\d{1,4}([ \.\/\-]\d{1,4})?)( \d{1,2}:\d{1,2}(:\d{1,2})?)?$/iu', $dateValue)) {
    +            return false;
    +        }
    +
    +        $dateValueNew = DateTime::DATEVALUE($dateValue);
    +
    +        if ($dateValueNew === Functions::VALUE()) {
    +            return false;
    +        }
    +
    +        if (strpos($dateValue, ':') !== false) {
    +            $timeValue = DateTime::TIMEVALUE($dateValue);
    +            if ($timeValue === Functions::VALUE()) {
    +                return false;
    +            }
    +            $dateValueNew += $timeValue;
    +        }
    +
    +        return $dateValueNew;
    +    }
    +
    +    /**
    +     * Converts a month name (either a long or a short name) to a month number.
    +     *
    +     * @param string $month Month name or abbreviation
    +     *
    +     * @return int|string Month number (1 - 12), or the original string argument if it isn't a valid month name
    +     */
    +    public static function monthStringToNumber($month)
    +    {
    +        $monthIndex = 1;
    +        foreach (self::$monthNames as $shortMonthName => $longMonthName) {
    +            if (($month === $longMonthName) || ($month === $shortMonthName)) {
    +                return $monthIndex;
    +            }
    +            ++$monthIndex;
    +        }
    +
    +        return $month;
    +    }
    +
    +    /**
    +     * Strips an ordinal from a numeric value.
    +     *
    +     * @param string $day Day number with an ordinal
    +     *
    +     * @return int|string The integer value with any ordinal stripped, or the original string argument if it isn't a valid numeric
    +     */
    +    public static function dayStringToNumber($day)
    +    {
    +        $strippedDayValue = (str_replace(self::$numberSuffixes, '', $day));
    +        if (is_numeric($strippedDayValue)) {
    +            return (int) $strippedDayValue;
    +        }
    +
    +        return $day;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Drawing.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Drawing.php
    new file mode 100644
    index 00000000000..25d6910d34e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Drawing.php
    @@ -0,0 +1,249 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +class Drawing
    +{
    +    /**
    +     * Convert pixels to EMU.
    +     *
    +     * @param int $pValue Value in pixels
    +     *
    +     * @return int Value in EMU
    +     */
    +    public static function pixelsToEMU($pValue)
    +    {
    +        return round($pValue * 9525);
    +    }
    +
    +    /**
    +     * Convert EMU to pixels.
    +     *
    +     * @param int $pValue Value in EMU
    +     *
    +     * @return int Value in pixels
    +     */
    +    public static function EMUToPixels($pValue)
    +    {
    +        if ($pValue != 0) {
    +            return round($pValue / 9525);
    +        }
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Convert pixels to column width. Exact algorithm not known.
    +     * By inspection of a real Excel file using Calibri 11, one finds 1000px ~ 142.85546875
    +     * This gives a conversion factor of 7. Also, we assume that pixels and font size are proportional.
    +     *
    +     * @param int $pValue Value in pixels
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Font $pDefaultFont Default font of the workbook
    +     *
    +     * @return int Value in cell dimension
    +     */
    +    public static function pixelsToCellDimension($pValue, \PhpOffice\PhpSpreadsheet\Style\Font $pDefaultFont)
    +    {
    +        // Font name and size
    +        $name = $pDefaultFont->getName();
    +        $size = $pDefaultFont->getSize();
    +
    +        if (isset(Font::$defaultColumnWidths[$name][$size])) {
    +            // Exact width can be determined
    +            $colWidth = $pValue * Font::$defaultColumnWidths[$name][$size]['width'] / Font::$defaultColumnWidths[$name][$size]['px'];
    +        } else {
    +            // We don't have data for this particular font and size, use approximation by
    +            // extrapolating from Calibri 11
    +            $colWidth = $pValue * 11 * Font::$defaultColumnWidths['Calibri'][11]['width'] / Font::$defaultColumnWidths['Calibri'][11]['px'] / $size;
    +        }
    +
    +        return $colWidth;
    +    }
    +
    +    /**
    +     * Convert column width from (intrinsic) Excel units to pixels.
    +     *
    +     * @param float $pValue Value in cell dimension
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Font $pDefaultFont Default font of the workbook
    +     *
    +     * @return int Value in pixels
    +     */
    +    public static function cellDimensionToPixels($pValue, \PhpOffice\PhpSpreadsheet\Style\Font $pDefaultFont)
    +    {
    +        // Font name and size
    +        $name = $pDefaultFont->getName();
    +        $size = $pDefaultFont->getSize();
    +
    +        if (isset(Font::$defaultColumnWidths[$name][$size])) {
    +            // Exact width can be determined
    +            $colWidth = $pValue * Font::$defaultColumnWidths[$name][$size]['px'] / Font::$defaultColumnWidths[$name][$size]['width'];
    +        } else {
    +            // We don't have data for this particular font and size, use approximation by
    +            // extrapolating from Calibri 11
    +            $colWidth = $pValue * $size * Font::$defaultColumnWidths['Calibri'][11]['px'] / Font::$defaultColumnWidths['Calibri'][11]['width'] / 11;
    +        }
    +
    +        // Round pixels to closest integer
    +        $colWidth = (int) round($colWidth);
    +
    +        return $colWidth;
    +    }
    +
    +    /**
    +     * Convert pixels to points.
    +     *
    +     * @param int $pValue Value in pixels
    +     *
    +     * @return float Value in points
    +     */
    +    public static function pixelsToPoints($pValue)
    +    {
    +        return $pValue * 0.67777777;
    +    }
    +
    +    /**
    +     * Convert points to pixels.
    +     *
    +     * @param int $pValue Value in points
    +     *
    +     * @return int Value in pixels
    +     */
    +    public static function pointsToPixels($pValue)
    +    {
    +        if ($pValue != 0) {
    +            return (int) ceil($pValue * 1.333333333);
    +        }
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Convert degrees to angle.
    +     *
    +     * @param int $pValue Degrees
    +     *
    +     * @return int Angle
    +     */
    +    public static function degreesToAngle($pValue)
    +    {
    +        return (int) round($pValue * 60000);
    +    }
    +
    +    /**
    +     * Convert angle to degrees.
    +     *
    +     * @param int $pValue Angle
    +     *
    +     * @return int Degrees
    +     */
    +    public static function angleToDegrees($pValue)
    +    {
    +        if ($pValue != 0) {
    +            return round($pValue / 60000);
    +        }
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Create a new image from file. By alexander at alexauto dot nl.
    +     *
    +     * @see http://www.php.net/manual/en/function.imagecreatefromwbmp.php#86214
    +     *
    +     * @param string $p_sFile Path to Windows DIB (BMP) image
    +     *
    +     * @return resource
    +     */
    +    public static function imagecreatefrombmp($p_sFile)
    +    {
    +        //    Load the image into a string
    +        $file = fopen($p_sFile, 'rb');
    +        $read = fread($file, 10);
    +        while (!feof($file) && ($read != '')) {
    +            $read .= fread($file, 1024);
    +        }
    +
    +        $temp = unpack('H*', $read);
    +        $hex = $temp[1];
    +        $header = substr($hex, 0, 108);
    +
    +        //    Process the header
    +        //    Structure: http://www.fastgraph.com/help/bmp_header_format.html
    +        if (substr($header, 0, 4) == '424d') {
    +            //    Cut it in parts of 2 bytes
    +            $header_parts = str_split($header, 2);
    +
    +            //    Get the width        4 bytes
    +            $width = hexdec($header_parts[19] . $header_parts[18]);
    +
    +            //    Get the height        4 bytes
    +            $height = hexdec($header_parts[23] . $header_parts[22]);
    +
    +            //    Unset the header params
    +            unset($header_parts);
    +        }
    +
    +        //    Define starting X and Y
    +        $x = 0;
    +        $y = 1;
    +
    +        //    Create newimage
    +        $image = imagecreatetruecolor($width, $height);
    +
    +        //    Grab the body from the image
    +        $body = substr($hex, 108);
    +
    +        //    Calculate if padding at the end-line is needed
    +        //    Divided by two to keep overview.
    +        //    1 byte = 2 HEX-chars
    +        $body_size = (strlen($body) / 2);
    +        $header_size = ($width * $height);
    +
    +        //    Use end-line padding? Only when needed
    +        $usePadding = ($body_size > ($header_size * 3) + 4);
    +
    +        //    Using a for-loop with index-calculation instaid of str_split to avoid large memory consumption
    +        //    Calculate the next DWORD-position in the body
    +        for ($i = 0; $i < $body_size; $i += 3) {
    +            //    Calculate line-ending and padding
    +            if ($x >= $width) {
    +                // If padding needed, ignore image-padding
    +                // Shift i to the ending of the current 32-bit-block
    +                if ($usePadding) {
    +                    $i += $width % 4;
    +                }
    +
    +                //    Reset horizontal position
    +                $x = 0;
    +
    +                //    Raise the height-position (bottom-up)
    +                ++$y;
    +
    +                //    Reached the image-height? Break the for-loop
    +                if ($y > $height) {
    +                    break;
    +                }
    +            }
    +
    +            // Calculation of the RGB-pixel (defined as BGR in image-data)
    +            // Define $i_pos as absolute position in the body
    +            $i_pos = $i * 2;
    +            $r = hexdec($body[$i_pos + 4] . $body[$i_pos + 5]);
    +            $g = hexdec($body[$i_pos + 2] . $body[$i_pos + 3]);
    +            $b = hexdec($body[$i_pos] . $body[$i_pos + 1]);
    +
    +            // Calculate and draw the pixel
    +            $color = imagecolorallocate($image, $r, $g, $b);
    +            imagesetpixel($image, $x, $height - $y, $color);
    +
    +            // Raise the horizontal position
    +            ++$x;
    +        }
    +
    +        // Unset the body / free the memory
    +        unset($body);
    +
    +        //    Return image-object
    +        return $image;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher.php
    new file mode 100644
    index 00000000000..c6d0a6f8118
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher.php
    @@ -0,0 +1,64 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +class Escher
    +{
    +    /**
    +     * Drawing Group Container.
    +     *
    +     * @var Escher\DggContainer
    +     */
    +    private $dggContainer;
    +
    +    /**
    +     * Drawing Container.
    +     *
    +     * @var Escher\DgContainer
    +     */
    +    private $dgContainer;
    +
    +    /**
    +     * Get Drawing Group Container.
    +     *
    +     * @return Escher\DggContainer
    +     */
    +    public function getDggContainer()
    +    {
    +        return $this->dggContainer;
    +    }
    +
    +    /**
    +     * Set Drawing Group Container.
    +     *
    +     * @param Escher\DggContainer $dggContainer
    +     *
    +     * @return Escher\DggContainer
    +     */
    +    public function setDggContainer($dggContainer)
    +    {
    +        return $this->dggContainer = $dggContainer;
    +    }
    +
    +    /**
    +     * Get Drawing Container.
    +     *
    +     * @return Escher\DgContainer
    +     */
    +    public function getDgContainer()
    +    {
    +        return $this->dgContainer;
    +    }
    +
    +    /**
    +     * Set Drawing Container.
    +     *
    +     * @param Escher\DgContainer $dgContainer
    +     *
    +     * @return Escher\DgContainer
    +     */
    +    public function setDgContainer($dgContainer)
    +    {
    +        return $this->dgContainer = $dgContainer;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DgContainer.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DgContainer.php
    new file mode 100644
    index 00000000000..e9d387daa4b
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DgContainer.php
    @@ -0,0 +1,52 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Escher;
    +
    +class DgContainer
    +{
    +    /**
    +     * Drawing index, 1-based.
    +     *
    +     * @var int
    +     */
    +    private $dgId;
    +
    +    /**
    +     * Last shape index in this drawing.
    +     *
    +     * @var int
    +     */
    +    private $lastSpId;
    +
    +    private $spgrContainer;
    +
    +    public function getDgId()
    +    {
    +        return $this->dgId;
    +    }
    +
    +    public function setDgId($value)
    +    {
    +        $this->dgId = $value;
    +    }
    +
    +    public function getLastSpId()
    +    {
    +        return $this->lastSpId;
    +    }
    +
    +    public function setLastSpId($value)
    +    {
    +        $this->lastSpId = $value;
    +    }
    +
    +    public function getSpgrContainer()
    +    {
    +        return $this->spgrContainer;
    +    }
    +
    +    public function setSpgrContainer($spgrContainer)
    +    {
    +        return $this->spgrContainer = $spgrContainer;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php
    new file mode 100644
    index 00000000000..7e2c34608a2
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php
    @@ -0,0 +1,79 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer;
    +
    +class SpgrContainer
    +{
    +    /**
    +     * Parent Shape Group Container.
    +     *
    +     * @var \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer
    +     */
    +    private $parent;
    +
    +    /**
    +     * Shape Container collection.
    +     *
    +     * @var array
    +     */
    +    private $children = [];
    +
    +    /**
    +     * Set parent Shape Group Container.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer $parent
    +     */
    +    public function setParent($parent)
    +    {
    +        $this->parent = $parent;
    +    }
    +
    +    /**
    +     * Get the parent Shape Group Container if any.
    +     *
    +     * @return null|\PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer
    +     */
    +    public function getParent()
    +    {
    +        return $this->parent;
    +    }
    +
    +    /**
    +     * Add a child. This will be either spgrContainer or spContainer.
    +     *
    +     * @param mixed $child
    +     */
    +    public function addChild($child)
    +    {
    +        $this->children[] = $child;
    +        $child->setParent($this);
    +    }
    +
    +    /**
    +     * Get collection of Shape Containers.
    +     */
    +    public function getChildren()
    +    {
    +        return $this->children;
    +    }
    +
    +    /**
    +     * Recursively get all spContainers within this spgrContainer.
    +     *
    +     * @return SpgrContainer\SpContainer[]
    +     */
    +    public function getAllSpContainers()
    +    {
    +        $allSpContainers = [];
    +
    +        foreach ($this->children as $child) {
    +            if ($child instanceof self) {
    +                $allSpContainers = array_merge($allSpContainers, $child->getAllSpContainers());
    +            } else {
    +                $allSpContainers[] = $child;
    +            }
    +        }
    +
    +        return $allSpContainers;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php
    new file mode 100644
    index 00000000000..bbf51df186e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php
    @@ -0,0 +1,369 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer;
    +
    +class SpContainer
    +{
    +    /**
    +     * Parent Shape Group Container.
    +     *
    +     * @var SpgrContainer
    +     */
    +    private $parent;
    +
    +    /**
    +     * Is this a group shape?
    +     *
    +     * @var bool
    +     */
    +    private $spgr = false;
    +
    +    /**
    +     * Shape type.
    +     *
    +     * @var int
    +     */
    +    private $spType;
    +
    +    /**
    +     * Shape flag.
    +     *
    +     * @var int
    +     */
    +    private $spFlag;
    +
    +    /**
    +     * Shape index (usually group shape has index 0, and the rest: 1,2,3...).
    +     *
    +     * @var int
    +     */
    +    private $spId;
    +
    +    /**
    +     * Array of options.
    +     *
    +     * @var array
    +     */
    +    private $OPT;
    +
    +    /**
    +     * Cell coordinates of upper-left corner of shape, e.g. 'A1'.
    +     *
    +     * @var string
    +     */
    +    private $startCoordinates;
    +
    +    /**
    +     * Horizontal offset of upper-left corner of shape measured in 1/1024 of column width.
    +     *
    +     * @var int
    +     */
    +    private $startOffsetX;
    +
    +    /**
    +     * Vertical offset of upper-left corner of shape measured in 1/256 of row height.
    +     *
    +     * @var int
    +     */
    +    private $startOffsetY;
    +
    +    /**
    +     * Cell coordinates of bottom-right corner of shape, e.g. 'B2'.
    +     *
    +     * @var string
    +     */
    +    private $endCoordinates;
    +
    +    /**
    +     * Horizontal offset of bottom-right corner of shape measured in 1/1024 of column width.
    +     *
    +     * @var int
    +     */
    +    private $endOffsetX;
    +
    +    /**
    +     * Vertical offset of bottom-right corner of shape measured in 1/256 of row height.
    +     *
    +     * @var int
    +     */
    +    private $endOffsetY;
    +
    +    /**
    +     * Set parent Shape Group Container.
    +     *
    +     * @param SpgrContainer $parent
    +     */
    +    public function setParent($parent)
    +    {
    +        $this->parent = $parent;
    +    }
    +
    +    /**
    +     * Get the parent Shape Group Container.
    +     *
    +     * @return SpgrContainer
    +     */
    +    public function getParent()
    +    {
    +        return $this->parent;
    +    }
    +
    +    /**
    +     * Set whether this is a group shape.
    +     *
    +     * @param bool $value
    +     */
    +    public function setSpgr($value)
    +    {
    +        $this->spgr = $value;
    +    }
    +
    +    /**
    +     * Get whether this is a group shape.
    +     *
    +     * @return bool
    +     */
    +    public function getSpgr()
    +    {
    +        return $this->spgr;
    +    }
    +
    +    /**
    +     * Set the shape type.
    +     *
    +     * @param int $value
    +     */
    +    public function setSpType($value)
    +    {
    +        $this->spType = $value;
    +    }
    +
    +    /**
    +     * Get the shape type.
    +     *
    +     * @return int
    +     */
    +    public function getSpType()
    +    {
    +        return $this->spType;
    +    }
    +
    +    /**
    +     * Set the shape flag.
    +     *
    +     * @param int $value
    +     */
    +    public function setSpFlag($value)
    +    {
    +        $this->spFlag = $value;
    +    }
    +
    +    /**
    +     * Get the shape flag.
    +     *
    +     * @return int
    +     */
    +    public function getSpFlag()
    +    {
    +        return $this->spFlag;
    +    }
    +
    +    /**
    +     * Set the shape index.
    +     *
    +     * @param int $value
    +     */
    +    public function setSpId($value)
    +    {
    +        $this->spId = $value;
    +    }
    +
    +    /**
    +     * Get the shape index.
    +     *
    +     * @return int
    +     */
    +    public function getSpId()
    +    {
    +        return $this->spId;
    +    }
    +
    +    /**
    +     * Set an option for the Shape Group Container.
    +     *
    +     * @param int $property The number specifies the option
    +     * @param mixed $value
    +     */
    +    public function setOPT($property, $value)
    +    {
    +        $this->OPT[$property] = $value;
    +    }
    +
    +    /**
    +     * Get an option for the Shape Group Container.
    +     *
    +     * @param int $property The number specifies the option
    +     *
    +     * @return mixed
    +     */
    +    public function getOPT($property)
    +    {
    +        if (isset($this->OPT[$property])) {
    +            return $this->OPT[$property];
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Get the collection of options.
    +     *
    +     * @return array
    +     */
    +    public function getOPTCollection()
    +    {
    +        return $this->OPT;
    +    }
    +
    +    /**
    +     * Set cell coordinates of upper-left corner of shape.
    +     *
    +     * @param string $value eg: 'A1'
    +     */
    +    public function setStartCoordinates($value)
    +    {
    +        $this->startCoordinates = $value;
    +    }
    +
    +    /**
    +     * Get cell coordinates of upper-left corner of shape.
    +     *
    +     * @return string
    +     */
    +    public function getStartCoordinates()
    +    {
    +        return $this->startCoordinates;
    +    }
    +
    +    /**
    +     * Set offset in x-direction of upper-left corner of shape measured in 1/1024 of column width.
    +     *
    +     * @param int $startOffsetX
    +     */
    +    public function setStartOffsetX($startOffsetX)
    +    {
    +        $this->startOffsetX = $startOffsetX;
    +    }
    +
    +    /**
    +     * Get offset in x-direction of upper-left corner of shape measured in 1/1024 of column width.
    +     *
    +     * @return int
    +     */
    +    public function getStartOffsetX()
    +    {
    +        return $this->startOffsetX;
    +    }
    +
    +    /**
    +     * Set offset in y-direction of upper-left corner of shape measured in 1/256 of row height.
    +     *
    +     * @param int $startOffsetY
    +     */
    +    public function setStartOffsetY($startOffsetY)
    +    {
    +        $this->startOffsetY = $startOffsetY;
    +    }
    +
    +    /**
    +     * Get offset in y-direction of upper-left corner of shape measured in 1/256 of row height.
    +     *
    +     * @return int
    +     */
    +    public function getStartOffsetY()
    +    {
    +        return $this->startOffsetY;
    +    }
    +
    +    /**
    +     * Set cell coordinates of bottom-right corner of shape.
    +     *
    +     * @param string $value eg: 'A1'
    +     */
    +    public function setEndCoordinates($value)
    +    {
    +        $this->endCoordinates = $value;
    +    }
    +
    +    /**
    +     * Get cell coordinates of bottom-right corner of shape.
    +     *
    +     * @return string
    +     */
    +    public function getEndCoordinates()
    +    {
    +        return $this->endCoordinates;
    +    }
    +
    +    /**
    +     * Set offset in x-direction of bottom-right corner of shape measured in 1/1024 of column width.
    +     *
    +     * @param int $endOffsetX
    +     */
    +    public function setEndOffsetX($endOffsetX)
    +    {
    +        $this->endOffsetX = $endOffsetX;
    +    }
    +
    +    /**
    +     * Get offset in x-direction of bottom-right corner of shape measured in 1/1024 of column width.
    +     *
    +     * @return int
    +     */
    +    public function getEndOffsetX()
    +    {
    +        return $this->endOffsetX;
    +    }
    +
    +    /**
    +     * Set offset in y-direction of bottom-right corner of shape measured in 1/256 of row height.
    +     *
    +     * @param int $endOffsetY
    +     */
    +    public function setEndOffsetY($endOffsetY)
    +    {
    +        $this->endOffsetY = $endOffsetY;
    +    }
    +
    +    /**
    +     * Get offset in y-direction of bottom-right corner of shape measured in 1/256 of row height.
    +     *
    +     * @return int
    +     */
    +    public function getEndOffsetY()
    +    {
    +        return $this->endOffsetY;
    +    }
    +
    +    /**
    +     * Get the nesting level of this spContainer. This is the number of spgrContainers between this spContainer and
    +     * the dgContainer. A value of 1 = immediately within first spgrContainer
    +     * Higher nesting level occurs if and only if spContainer is part of a shape group.
    +     *
    +     * @return int Nesting level
    +     */
    +    public function getNestingLevel()
    +    {
    +        $nestingLevel = 0;
    +
    +        $parent = $this->getParent();
    +        while ($parent instanceof SpgrContainer) {
    +            ++$nestingLevel;
    +            $parent = $parent->getParent();
    +        }
    +
    +        return $nestingLevel;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer.php
    new file mode 100644
    index 00000000000..96da32131e3
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer.php
    @@ -0,0 +1,175 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Escher;
    +
    +class DggContainer
    +{
    +    /**
    +     * Maximum shape index of all shapes in all drawings increased by one.
    +     *
    +     * @var int
    +     */
    +    private $spIdMax;
    +
    +    /**
    +     * Total number of drawings saved.
    +     *
    +     * @var int
    +     */
    +    private $cDgSaved;
    +
    +    /**
    +     * Total number of shapes saved (including group shapes).
    +     *
    +     * @var int
    +     */
    +    private $cSpSaved;
    +
    +    /**
    +     * BLIP Store Container.
    +     *
    +     * @var DggContainer\BstoreContainer
    +     */
    +    private $bstoreContainer;
    +
    +    /**
    +     * Array of options for the drawing group.
    +     *
    +     * @var array
    +     */
    +    private $OPT = [];
    +
    +    /**
    +     * Array of identifier clusters containg information about the maximum shape identifiers.
    +     *
    +     * @var array
    +     */
    +    private $IDCLs = [];
    +
    +    /**
    +     * Get maximum shape index of all shapes in all drawings (plus one).
    +     *
    +     * @return int
    +     */
    +    public function getSpIdMax()
    +    {
    +        return $this->spIdMax;
    +    }
    +
    +    /**
    +     * Set maximum shape index of all shapes in all drawings (plus one).
    +     *
    +     * @param int $value
    +     */
    +    public function setSpIdMax($value)
    +    {
    +        $this->spIdMax = $value;
    +    }
    +
    +    /**
    +     * Get total number of drawings saved.
    +     *
    +     * @return int
    +     */
    +    public function getCDgSaved()
    +    {
    +        return $this->cDgSaved;
    +    }
    +
    +    /**
    +     * Set total number of drawings saved.
    +     *
    +     * @param int $value
    +     */
    +    public function setCDgSaved($value)
    +    {
    +        $this->cDgSaved = $value;
    +    }
    +
    +    /**
    +     * Get total number of shapes saved (including group shapes).
    +     *
    +     * @return int
    +     */
    +    public function getCSpSaved()
    +    {
    +        return $this->cSpSaved;
    +    }
    +
    +    /**
    +     * Set total number of shapes saved (including group shapes).
    +     *
    +     * @param int $value
    +     */
    +    public function setCSpSaved($value)
    +    {
    +        $this->cSpSaved = $value;
    +    }
    +
    +    /**
    +     * Get BLIP Store Container.
    +     *
    +     * @return DggContainer\BstoreContainer
    +     */
    +    public function getBstoreContainer()
    +    {
    +        return $this->bstoreContainer;
    +    }
    +
    +    /**
    +     * Set BLIP Store Container.
    +     *
    +     * @param DggContainer\BstoreContainer $bstoreContainer
    +     */
    +    public function setBstoreContainer($bstoreContainer)
    +    {
    +        $this->bstoreContainer = $bstoreContainer;
    +    }
    +
    +    /**
    +     * Set an option for the drawing group.
    +     *
    +     * @param int $property The number specifies the option
    +     * @param mixed $value
    +     */
    +    public function setOPT($property, $value)
    +    {
    +        $this->OPT[$property] = $value;
    +    }
    +
    +    /**
    +     * Get an option for the drawing group.
    +     *
    +     * @param int $property The number specifies the option
    +     *
    +     * @return mixed
    +     */
    +    public function getOPT($property)
    +    {
    +        if (isset($this->OPT[$property])) {
    +            return $this->OPT[$property];
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Get identifier clusters.
    +     *
    +     * @return array
    +     */
    +    public function getIDCLs()
    +    {
    +        return $this->IDCLs;
    +    }
    +
    +    /**
    +     * Set identifier clusters. [<drawingId> => <max shape id>, ...].
    +     *
    +     * @param array $pValue
    +     */
    +    public function setIDCLs($pValue)
    +    {
    +        $this->IDCLs = $pValue;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer.php
    new file mode 100644
    index 00000000000..9d1e68ec771
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer.php
    @@ -0,0 +1,34 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer;
    +
    +class BstoreContainer
    +{
    +    /**
    +     * BLIP Store Entries. Each of them holds one BLIP (Big Large Image or Picture).
    +     *
    +     * @var array
    +     */
    +    private $BSECollection = [];
    +
    +    /**
    +     * Add a BLIP Store Entry.
    +     *
    +     * @param BstoreContainer\BSE $BSE
    +     */
    +    public function addBSE($BSE)
    +    {
    +        $this->BSECollection[] = $BSE;
    +        $BSE->setParent($this);
    +    }
    +
    +    /**
    +     * Get the collection of BLIP Store Entries.
    +     *
    +     * @return BstoreContainer\BSE[]
    +     */
    +    public function getBSECollection()
    +    {
    +        return $this->BSECollection;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE.php
    new file mode 100644
    index 00000000000..f83bdc7ee3f
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE.php
    @@ -0,0 +1,89 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer;
    +
    +class BSE
    +{
    +    const BLIPTYPE_ERROR = 0x00;
    +    const BLIPTYPE_UNKNOWN = 0x01;
    +    const BLIPTYPE_EMF = 0x02;
    +    const BLIPTYPE_WMF = 0x03;
    +    const BLIPTYPE_PICT = 0x04;
    +    const BLIPTYPE_JPEG = 0x05;
    +    const BLIPTYPE_PNG = 0x06;
    +    const BLIPTYPE_DIB = 0x07;
    +    const BLIPTYPE_TIFF = 0x11;
    +    const BLIPTYPE_CMYKJPEG = 0x12;
    +
    +    /**
    +     * The parent BLIP Store Entry Container.
    +     *
    +     * @var \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer
    +     */
    +    private $parent;
    +
    +    /**
    +     * The BLIP (Big Large Image or Picture).
    +     *
    +     * @var BSE\Blip
    +     */
    +    private $blip;
    +
    +    /**
    +     * The BLIP type.
    +     *
    +     * @var int
    +     */
    +    private $blipType;
    +
    +    /**
    +     * Set parent BLIP Store Entry Container.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer $parent
    +     */
    +    public function setParent($parent)
    +    {
    +        $this->parent = $parent;
    +    }
    +
    +    /**
    +     * Get the BLIP.
    +     *
    +     * @return BSE\Blip
    +     */
    +    public function getBlip()
    +    {
    +        return $this->blip;
    +    }
    +
    +    /**
    +     * Set the BLIP.
    +     *
    +     * @param BSE\Blip $blip
    +     */
    +    public function setBlip($blip)
    +    {
    +        $this->blip = $blip;
    +        $blip->setParent($this);
    +    }
    +
    +    /**
    +     * Get the BLIP type.
    +     *
    +     * @return int
    +     */
    +    public function getBlipType()
    +    {
    +        return $this->blipType;
    +    }
    +
    +    /**
    +     * Set the BLIP type.
    +     *
    +     * @param int $blipType
    +     */
    +    public function setBlipType($blipType)
    +    {
    +        $this->blipType = $blipType;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php
    new file mode 100644
    index 00000000000..88bc117a166
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php
    @@ -0,0 +1,60 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE;
    +
    +class Blip
    +{
    +    /**
    +     * The parent BSE.
    +     *
    +     * @var \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE
    +     */
    +    private $parent;
    +
    +    /**
    +     * Raw image data.
    +     *
    +     * @var string
    +     */
    +    private $data;
    +
    +    /**
    +     * Get the raw image data.
    +     *
    +     * @return string
    +     */
    +    public function getData()
    +    {
    +        return $this->data;
    +    }
    +
    +    /**
    +     * Set the raw image data.
    +     *
    +     * @param string $data
    +     */
    +    public function setData($data)
    +    {
    +        $this->data = $data;
    +    }
    +
    +    /**
    +     * Set parent BSE.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE $parent
    +     */
    +    public function setParent($parent)
    +    {
    +        $this->parent = $parent;
    +    }
    +
    +    /**
    +     * Get parent BSE.
    +     *
    +     * @return \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE $parent
    +     */
    +    public function getParent()
    +    {
    +        return $this->parent;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/File.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/File.php
    new file mode 100644
    index 00000000000..239c8375a1e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/File.php
    @@ -0,0 +1,144 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +use InvalidArgumentException;
    +use ZipArchive;
    +
    +class File
    +{
    +    /**
    +     * Use Temp or File Upload Temp for temporary files.
    +     *
    +     * @var bool
    +     */
    +    protected static $useUploadTempDirectory = false;
    +
    +    /**
    +     * Set the flag indicating whether the File Upload Temp directory should be used for temporary files.
    +     *
    +     * @param bool $useUploadTempDir Use File Upload Temporary directory (true or false)
    +     */
    +    public static function setUseUploadTempDirectory($useUploadTempDir)
    +    {
    +        self::$useUploadTempDirectory = (bool) $useUploadTempDir;
    +    }
    +
    +    /**
    +     * Get the flag indicating whether the File Upload Temp directory should be used for temporary files.
    +     *
    +     * @return bool Use File Upload Temporary directory (true or false)
    +     */
    +    public static function getUseUploadTempDirectory()
    +    {
    +        return self::$useUploadTempDirectory;
    +    }
    +
    +    /**
    +     * Verify if a file exists.
    +     *
    +     * @param string $pFilename Filename
    +     *
    +     * @return bool
    +     */
    +    public static function fileExists($pFilename)
    +    {
    +        // Sick construction, but it seems that
    +        // file_exists returns strange values when
    +        // doing the original file_exists on ZIP archives...
    +        if (strtolower(substr($pFilename, 0, 3)) == 'zip') {
    +            // Open ZIP file and verify if the file exists
    +            $zipFile = substr($pFilename, 6, strpos($pFilename, '#') - 6);
    +            $archiveFile = substr($pFilename, strpos($pFilename, '#') + 1);
    +
    +            $zip = new ZipArchive();
    +            if ($zip->open($zipFile) === true) {
    +                $returnValue = ($zip->getFromName($archiveFile) !== false);
    +                $zip->close();
    +
    +                return $returnValue;
    +            }
    +
    +            return false;
    +        }
    +
    +        return file_exists($pFilename);
    +    }
    +
    +    /**
    +     * Returns canonicalized absolute pathname, also for ZIP archives.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @return string
    +     */
    +    public static function realpath($pFilename)
    +    {
    +        // Returnvalue
    +        $returnValue = '';
    +
    +        // Try using realpath()
    +        if (file_exists($pFilename)) {
    +            $returnValue = realpath($pFilename);
    +        }
    +
    +        // Found something?
    +        if ($returnValue == '' || ($returnValue === null)) {
    +            $pathArray = explode('/', $pFilename);
    +            while (in_array('..', $pathArray) && $pathArray[0] != '..') {
    +                $iMax = count($pathArray);
    +                for ($i = 0; $i < $iMax; ++$i) {
    +                    if ($pathArray[$i] == '..' && $i > 0) {
    +                        unset($pathArray[$i], $pathArray[$i - 1]);
    +
    +                        break;
    +                    }
    +                }
    +            }
    +            $returnValue = implode('/', $pathArray);
    +        }
    +
    +        // Return
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * Get the systems temporary directory.
    +     *
    +     * @return string
    +     */
    +    public static function sysGetTempDir()
    +    {
    +        if (self::$useUploadTempDirectory) {
    +            //  use upload-directory when defined to allow running on environments having very restricted
    +            //      open_basedir configs
    +            if (ini_get('upload_tmp_dir') !== false) {
    +                if ($temp = ini_get('upload_tmp_dir')) {
    +                    if (file_exists($temp)) {
    +                        return realpath($temp);
    +                    }
    +                }
    +            }
    +        }
    +
    +        return realpath(sys_get_temp_dir());
    +    }
    +
    +    /**
    +     * Assert that given path is an existing file and is readable, otherwise throw exception.
    +     *
    +     * @param string $filename
    +     *
    +     * @throws InvalidArgumentException
    +     */
    +    public static function assertFile($filename)
    +    {
    +        if (!is_file($filename)) {
    +            throw new InvalidArgumentException('File "' . $filename . '" does not exist.');
    +        }
    +
    +        if (!is_readable($filename)) {
    +            throw new InvalidArgumentException('Could not open "' . $filename . '" for reading.');
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Font.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Font.php
    new file mode 100644
    index 00000000000..8abcef2e192
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Font.php
    @@ -0,0 +1,764 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +
    +class Font
    +{
    +    // Methods for resolving autosize value
    +    const AUTOSIZE_METHOD_APPROX = 'approx';
    +    const AUTOSIZE_METHOD_EXACT = 'exact';
    +
    +    private static $autoSizeMethods = [
    +        self::AUTOSIZE_METHOD_APPROX,
    +        self::AUTOSIZE_METHOD_EXACT,
    +    ];
    +
    +    /** Character set codes used by BIFF5-8 in Font records */
    +    const CHARSET_ANSI_LATIN = 0x00;
    +    const CHARSET_SYSTEM_DEFAULT = 0x01;
    +    const CHARSET_SYMBOL = 0x02;
    +    const CHARSET_APPLE_ROMAN = 0x4D;
    +    const CHARSET_ANSI_JAPANESE_SHIFTJIS = 0x80;
    +    const CHARSET_ANSI_KOREAN_HANGUL = 0x81;
    +    const CHARSET_ANSI_KOREAN_JOHAB = 0x82;
    +    const CHARSET_ANSI_CHINESE_SIMIPLIFIED = 0x86; //    gb2312
    +    const CHARSET_ANSI_CHINESE_TRADITIONAL = 0x88; //    big5
    +    const CHARSET_ANSI_GREEK = 0xA1;
    +    const CHARSET_ANSI_TURKISH = 0xA2;
    +    const CHARSET_ANSI_VIETNAMESE = 0xA3;
    +    const CHARSET_ANSI_HEBREW = 0xB1;
    +    const CHARSET_ANSI_ARABIC = 0xB2;
    +    const CHARSET_ANSI_BALTIC = 0xBA;
    +    const CHARSET_ANSI_CYRILLIC = 0xCC;
    +    const CHARSET_ANSI_THAI = 0xDD;
    +    const CHARSET_ANSI_LATIN_II = 0xEE;
    +    const CHARSET_OEM_LATIN_I = 0xFF;
    +
    +    //  XXX: Constants created!
    +    /** Font filenames */
    +    const ARIAL = 'arial.ttf';
    +    const ARIAL_BOLD = 'arialbd.ttf';
    +    const ARIAL_ITALIC = 'ariali.ttf';
    +    const ARIAL_BOLD_ITALIC = 'arialbi.ttf';
    +
    +    const CALIBRI = 'CALIBRI.TTF';
    +    const CALIBRI_BOLD = 'CALIBRIB.TTF';
    +    const CALIBRI_ITALIC = 'CALIBRII.TTF';
    +    const CALIBRI_BOLD_ITALIC = 'CALIBRIZ.TTF';
    +
    +    const COMIC_SANS_MS = 'comic.ttf';
    +    const COMIC_SANS_MS_BOLD = 'comicbd.ttf';
    +
    +    const COURIER_NEW = 'cour.ttf';
    +    const COURIER_NEW_BOLD = 'courbd.ttf';
    +    const COURIER_NEW_ITALIC = 'couri.ttf';
    +    const COURIER_NEW_BOLD_ITALIC = 'courbi.ttf';
    +
    +    const GEORGIA = 'georgia.ttf';
    +    const GEORGIA_BOLD = 'georgiab.ttf';
    +    const GEORGIA_ITALIC = 'georgiai.ttf';
    +    const GEORGIA_BOLD_ITALIC = 'georgiaz.ttf';
    +
    +    const IMPACT = 'impact.ttf';
    +
    +    const LIBERATION_SANS = 'LiberationSans-Regular.ttf';
    +    const LIBERATION_SANS_BOLD = 'LiberationSans-Bold.ttf';
    +    const LIBERATION_SANS_ITALIC = 'LiberationSans-Italic.ttf';
    +    const LIBERATION_SANS_BOLD_ITALIC = 'LiberationSans-BoldItalic.ttf';
    +
    +    const LUCIDA_CONSOLE = 'lucon.ttf';
    +    const LUCIDA_SANS_UNICODE = 'l_10646.ttf';
    +
    +    const MICROSOFT_SANS_SERIF = 'micross.ttf';
    +
    +    const PALATINO_LINOTYPE = 'pala.ttf';
    +    const PALATINO_LINOTYPE_BOLD = 'palab.ttf';
    +    const PALATINO_LINOTYPE_ITALIC = 'palai.ttf';
    +    const PALATINO_LINOTYPE_BOLD_ITALIC = 'palabi.ttf';
    +
    +    const SYMBOL = 'symbol.ttf';
    +
    +    const TAHOMA = 'tahoma.ttf';
    +    const TAHOMA_BOLD = 'tahomabd.ttf';
    +
    +    const TIMES_NEW_ROMAN = 'times.ttf';
    +    const TIMES_NEW_ROMAN_BOLD = 'timesbd.ttf';
    +    const TIMES_NEW_ROMAN_ITALIC = 'timesi.ttf';
    +    const TIMES_NEW_ROMAN_BOLD_ITALIC = 'timesbi.ttf';
    +
    +    const TREBUCHET_MS = 'trebuc.ttf';
    +    const TREBUCHET_MS_BOLD = 'trebucbd.ttf';
    +    const TREBUCHET_MS_ITALIC = 'trebucit.ttf';
    +    const TREBUCHET_MS_BOLD_ITALIC = 'trebucbi.ttf';
    +
    +    const VERDANA = 'verdana.ttf';
    +    const VERDANA_BOLD = 'verdanab.ttf';
    +    const VERDANA_ITALIC = 'verdanai.ttf';
    +    const VERDANA_BOLD_ITALIC = 'verdanaz.ttf';
    +
    +    /**
    +     * AutoSize method.
    +     *
    +     * @var string
    +     */
    +    private static $autoSizeMethod = self::AUTOSIZE_METHOD_APPROX;
    +
    +    /**
    +     * Path to folder containing TrueType font .ttf files.
    +     *
    +     * @var string
    +     */
    +    private static $trueTypeFontPath = null;
    +
    +    /**
    +     * How wide is a default column for a given default font and size?
    +     * Empirical data found by inspecting real Excel files and reading off the pixel width
    +     * in Microsoft Office Excel 2007.
    +     *
    +     * @var array
    +     */
    +    public static $defaultColumnWidths = [
    +        'Arial' => [
    +            1 => ['px' => 24, 'width' => 12.00000000],
    +            2 => ['px' => 24, 'width' => 12.00000000],
    +            3 => ['px' => 32, 'width' => 10.66406250],
    +            4 => ['px' => 32, 'width' => 10.66406250],
    +            5 => ['px' => 40, 'width' => 10.00000000],
    +            6 => ['px' => 48, 'width' => 9.59765625],
    +            7 => ['px' => 48, 'width' => 9.59765625],
    +            8 => ['px' => 56, 'width' => 9.33203125],
    +            9 => ['px' => 64, 'width' => 9.14062500],
    +            10 => ['px' => 64, 'width' => 9.14062500],
    +        ],
    +        'Calibri' => [
    +            1 => ['px' => 24, 'width' => 12.00000000],
    +            2 => ['px' => 24, 'width' => 12.00000000],
    +            3 => ['px' => 32, 'width' => 10.66406250],
    +            4 => ['px' => 32, 'width' => 10.66406250],
    +            5 => ['px' => 40, 'width' => 10.00000000],
    +            6 => ['px' => 48, 'width' => 9.59765625],
    +            7 => ['px' => 48, 'width' => 9.59765625],
    +            8 => ['px' => 56, 'width' => 9.33203125],
    +            9 => ['px' => 56, 'width' => 9.33203125],
    +            10 => ['px' => 64, 'width' => 9.14062500],
    +            11 => ['px' => 64, 'width' => 9.14062500],
    +        ],
    +        'Verdana' => [
    +            1 => ['px' => 24, 'width' => 12.00000000],
    +            2 => ['px' => 24, 'width' => 12.00000000],
    +            3 => ['px' => 32, 'width' => 10.66406250],
    +            4 => ['px' => 32, 'width' => 10.66406250],
    +            5 => ['px' => 40, 'width' => 10.00000000],
    +            6 => ['px' => 48, 'width' => 9.59765625],
    +            7 => ['px' => 48, 'width' => 9.59765625],
    +            8 => ['px' => 64, 'width' => 9.14062500],
    +            9 => ['px' => 72, 'width' => 9.00000000],
    +            10 => ['px' => 72, 'width' => 9.00000000],
    +        ],
    +    ];
    +
    +    /**
    +     * Set autoSize method.
    +     *
    +     * @param string $pValue see self::AUTOSIZE_METHOD_*
    +     *
    +     * @return bool Success or failure
    +     */
    +    public static function setAutoSizeMethod($pValue)
    +    {
    +        if (!in_array($pValue, self::$autoSizeMethods)) {
    +            return false;
    +        }
    +        self::$autoSizeMethod = $pValue;
    +
    +        return true;
    +    }
    +
    +    /**
    +     * Get autoSize method.
    +     *
    +     * @return string
    +     */
    +    public static function getAutoSizeMethod()
    +    {
    +        return self::$autoSizeMethod;
    +    }
    +
    +    /**
    +     * Set the path to the folder containing .ttf files. There should be a trailing slash.
    +     * Typical locations on variout some platforms:
    +     *    <ul>
    +     *        <li>C:/Windows/Fonts/</li>
    +     *        <li>/usr/share/fonts/truetype/</li>
    +     *        <li>~/.fonts/</li>
    +     * </ul>.
    +     *
    +     * @param string $pValue
    +     */
    +    public static function setTrueTypeFontPath($pValue)
    +    {
    +        self::$trueTypeFontPath = $pValue;
    +    }
    +
    +    /**
    +     * Get the path to the folder containing .ttf files.
    +     *
    +     * @return string
    +     */
    +    public static function getTrueTypeFontPath()
    +    {
    +        return self::$trueTypeFontPath;
    +    }
    +
    +    /**
    +     * Calculate an (approximate) OpenXML column width, based on font size and text contained.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Font $font Font object
    +     * @param RichText|string $cellText Text to calculate width
    +     * @param int $rotation Rotation angle
    +     * @param null|\PhpOffice\PhpSpreadsheet\Style\Font $defaultFont Font object
    +     *
    +     * @return int Column width
    +     */
    +    public static function calculateColumnWidth(\PhpOffice\PhpSpreadsheet\Style\Font $font, $cellText = '', $rotation = 0, \PhpOffice\PhpSpreadsheet\Style\Font $defaultFont = null)
    +    {
    +        // If it is rich text, use plain text
    +        if ($cellText instanceof RichText) {
    +            $cellText = $cellText->getPlainText();
    +        }
    +
    +        // Special case if there are one or more newline characters ("\n")
    +        if (strpos($cellText, "\n") !== false) {
    +            $lineTexts = explode("\n", $cellText);
    +            $lineWidths = [];
    +            foreach ($lineTexts as $lineText) {
    +                $lineWidths[] = self::calculateColumnWidth($font, $lineText, $rotation = 0, $defaultFont);
    +            }
    +
    +            return max($lineWidths); // width of longest line in cell
    +        }
    +
    +        // Try to get the exact text width in pixels
    +        $approximate = self::$autoSizeMethod == self::AUTOSIZE_METHOD_APPROX;
    +        if (!$approximate) {
    +            $columnWidthAdjust = ceil(self::getTextWidthPixelsExact('n', $font, 0) * 1.07);
    +
    +            try {
    +                // Width of text in pixels excl. padding
    +                // and addition because Excel adds some padding, just use approx width of 'n' glyph
    +                $columnWidth = self::getTextWidthPixelsExact($cellText, $font, $rotation) + $columnWidthAdjust;
    +            } catch (PhpSpreadsheetException $e) {
    +                $approximate = true;
    +            }
    +        }
    +
    +        if ($approximate) {
    +            $columnWidthAdjust = self::getTextWidthPixelsApprox('n', $font, 0);
    +            // Width of text in pixels excl. padding, approximation
    +            // and addition because Excel adds some padding, just use approx width of 'n' glyph
    +            $columnWidth = self::getTextWidthPixelsApprox($cellText, $font, $rotation) + $columnWidthAdjust;
    +        }
    +
    +        // Convert from pixel width to column width
    +        $columnWidth = Drawing::pixelsToCellDimension($columnWidth, $defaultFont);
    +
    +        // Return
    +        return round($columnWidth, 6);
    +    }
    +
    +    /**
    +     * Get GD text width in pixels for a string of text in a certain font at a certain rotation angle.
    +     *
    +     * @param string $text
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Font
    +     * @param int $rotation
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return int
    +     */
    +    public static function getTextWidthPixelsExact($text, \PhpOffice\PhpSpreadsheet\Style\Font $font, $rotation = 0)
    +    {
    +        if (!function_exists('imagettfbbox')) {
    +            throw new PhpSpreadsheetException('GD library needs to be enabled');
    +        }
    +
    +        // font size should really be supplied in pixels in GD2,
    +        // but since GD2 seems to assume 72dpi, pixels and points are the same
    +        $fontFile = self::getTrueTypeFontFileFromFont($font);
    +        $textBox = imagettfbbox($font->getSize(), $rotation, $fontFile, $text);
    +
    +        // Get corners positions
    +        $lowerLeftCornerX = $textBox[0];
    +        $lowerRightCornerX = $textBox[2];
    +        $upperRightCornerX = $textBox[4];
    +        $upperLeftCornerX = $textBox[6];
    +
    +        // Consider the rotation when calculating the width
    +        $textWidth = max($lowerRightCornerX - $upperLeftCornerX, $upperRightCornerX - $lowerLeftCornerX);
    +
    +        return $textWidth;
    +    }
    +
    +    /**
    +     * Get approximate width in pixels for a string of text in a certain font at a certain rotation angle.
    +     *
    +     * @param string $columnText
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Font $font
    +     * @param int $rotation
    +     *
    +     * @return int Text width in pixels (no padding added)
    +     */
    +    public static function getTextWidthPixelsApprox($columnText, \PhpOffice\PhpSpreadsheet\Style\Font $font, $rotation = 0)
    +    {
    +        $fontName = $font->getName();
    +        $fontSize = $font->getSize();
    +
    +        // Calculate column width in pixels. We assume fixed glyph width. Result varies with font name and size.
    +        switch ($fontName) {
    +            case 'Calibri':
    +                // value 8.26 was found via interpolation by inspecting real Excel files with Calibri 11 font.
    +                $columnWidth = (int) (8.26 * StringHelper::countCharacters($columnText));
    +                $columnWidth = $columnWidth * $fontSize / 11; // extrapolate from font size
    +                break;
    +            case 'Arial':
    +                // value 8 was set because of experience in different exports at Arial 10 font.
    +                $columnWidth = (int) (8 * StringHelper::countCharacters($columnText));
    +                $columnWidth = $columnWidth * $fontSize / 10; // extrapolate from font size
    +                break;
    +            case 'Verdana':
    +                // value 8 was found via interpolation by inspecting real Excel files with Verdana 10 font.
    +                $columnWidth = (int) (8 * StringHelper::countCharacters($columnText));
    +                $columnWidth = $columnWidth * $fontSize / 10; // extrapolate from font size
    +                break;
    +            default:
    +                // just assume Calibri
    +                $columnWidth = (int) (8.26 * StringHelper::countCharacters($columnText));
    +                $columnWidth = $columnWidth * $fontSize / 11; // extrapolate from font size
    +                break;
    +        }
    +
    +        // Calculate approximate rotated column width
    +        if ($rotation !== 0) {
    +            if ($rotation == -165) {
    +                // stacked text
    +                $columnWidth = 4; // approximation
    +            } else {
    +                // rotated text
    +                $columnWidth = $columnWidth * cos(deg2rad($rotation))
    +                                + $fontSize * abs(sin(deg2rad($rotation))) / 5; // approximation
    +            }
    +        }
    +
    +        // pixel width is an integer
    +        return (int) $columnWidth;
    +    }
    +
    +    /**
    +     * Calculate an (approximate) pixel size, based on a font points size.
    +     *
    +     * @param int $fontSizeInPoints Font size (in points)
    +     *
    +     * @return int Font size (in pixels)
    +     */
    +    public static function fontSizeToPixels($fontSizeInPoints)
    +    {
    +        return (int) ((4 / 3) * $fontSizeInPoints);
    +    }
    +
    +    /**
    +     * Calculate an (approximate) pixel size, based on inch size.
    +     *
    +     * @param int $sizeInInch Font size (in inch)
    +     *
    +     * @return int Size (in pixels)
    +     */
    +    public static function inchSizeToPixels($sizeInInch)
    +    {
    +        return $sizeInInch * 96;
    +    }
    +
    +    /**
    +     * Calculate an (approximate) pixel size, based on centimeter size.
    +     *
    +     * @param int $sizeInCm Font size (in centimeters)
    +     *
    +     * @return float Size (in pixels)
    +     */
    +    public static function centimeterSizeToPixels($sizeInCm)
    +    {
    +        return $sizeInCm * 37.795275591;
    +    }
    +
    +    /**
    +     * Returns the font path given the font.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Font $font
    +     *
    +     * @return string Path to TrueType font file
    +     */
    +    public static function getTrueTypeFontFileFromFont($font)
    +    {
    +        if (!file_exists(self::$trueTypeFontPath) || !is_dir(self::$trueTypeFontPath)) {
    +            throw new PhpSpreadsheetException('Valid directory to TrueType Font files not specified');
    +        }
    +
    +        $name = $font->getName();
    +        $bold = $font->getBold();
    +        $italic = $font->getItalic();
    +
    +        // Check if we can map font to true type font file
    +        switch ($name) {
    +            case 'Arial':
    +                $fontFile = (
    +                    $bold ? ($italic ? self::ARIAL_BOLD_ITALIC : self::ARIAL_BOLD)
    +                          : ($italic ? self::ARIAL_ITALIC : self::ARIAL)
    +                );
    +
    +                break;
    +            case 'Calibri':
    +                $fontFile = (
    +                    $bold ? ($italic ? self::CALIBRI_BOLD_ITALIC : self::CALIBRI_BOLD)
    +                          : ($italic ? self::CALIBRI_ITALIC : self::CALIBRI)
    +                );
    +
    +                break;
    +            case 'Courier New':
    +                $fontFile = (
    +                    $bold ? ($italic ? self::COURIER_NEW_BOLD_ITALIC : self::COURIER_NEW_BOLD)
    +                          : ($italic ? self::COURIER_NEW_ITALIC : self::COURIER_NEW)
    +                );
    +
    +                break;
    +            case 'Comic Sans MS':
    +                $fontFile = (
    +                    $bold ? self::COMIC_SANS_MS_BOLD : self::COMIC_SANS_MS
    +                );
    +
    +                break;
    +            case 'Georgia':
    +                $fontFile = (
    +                    $bold ? ($italic ? self::GEORGIA_BOLD_ITALIC : self::GEORGIA_BOLD)
    +                          : ($italic ? self::GEORGIA_ITALIC : self::GEORGIA)
    +                );
    +
    +                break;
    +            case 'Impact':
    +                $fontFile = self::IMPACT;
    +
    +                break;
    +            case 'Liberation Sans':
    +                $fontFile = (
    +                    $bold ? ($italic ? self::LIBERATION_SANS_BOLD_ITALIC : self::LIBERATION_SANS_BOLD)
    +                          : ($italic ? self::LIBERATION_SANS_ITALIC : self::LIBERATION_SANS)
    +                );
    +
    +                break;
    +            case 'Lucida Console':
    +                $fontFile = self::LUCIDA_CONSOLE;
    +
    +                break;
    +            case 'Lucida Sans Unicode':
    +                $fontFile = self::LUCIDA_SANS_UNICODE;
    +
    +                break;
    +            case 'Microsoft Sans Serif':
    +                $fontFile = self::MICROSOFT_SANS_SERIF;
    +
    +                break;
    +            case 'Palatino Linotype':
    +                $fontFile = (
    +                    $bold ? ($italic ? self::PALATINO_LINOTYPE_BOLD_ITALIC : self::PALATINO_LINOTYPE_BOLD)
    +                          : ($italic ? self::PALATINO_LINOTYPE_ITALIC : self::PALATINO_LINOTYPE)
    +                );
    +
    +                break;
    +            case 'Symbol':
    +                $fontFile = self::SYMBOL;
    +
    +                break;
    +            case 'Tahoma':
    +                $fontFile = (
    +                    $bold ? self::TAHOMA_BOLD : self::TAHOMA
    +                );
    +
    +                break;
    +            case 'Times New Roman':
    +                $fontFile = (
    +                    $bold ? ($italic ? self::TIMES_NEW_ROMAN_BOLD_ITALIC : self::TIMES_NEW_ROMAN_BOLD)
    +                          : ($italic ? self::TIMES_NEW_ROMAN_ITALIC : self::TIMES_NEW_ROMAN)
    +                );
    +
    +                break;
    +            case 'Trebuchet MS':
    +                $fontFile = (
    +                    $bold ? ($italic ? self::TREBUCHET_MS_BOLD_ITALIC : self::TREBUCHET_MS_BOLD)
    +                          : ($italic ? self::TREBUCHET_MS_ITALIC : self::TREBUCHET_MS)
    +                );
    +
    +                break;
    +            case 'Verdana':
    +                $fontFile = (
    +                    $bold ? ($italic ? self::VERDANA_BOLD_ITALIC : self::VERDANA_BOLD)
    +                          : ($italic ? self::VERDANA_ITALIC : self::VERDANA)
    +                );
    +
    +                break;
    +            default:
    +                throw new PhpSpreadsheetException('Unknown font name "' . $name . '". Cannot map to TrueType font file');
    +
    +                break;
    +        }
    +
    +        $fontFile = self::$trueTypeFontPath . $fontFile;
    +
    +        // Check if file actually exists
    +        if (!file_exists($fontFile)) {
    +            throw new PhpSpreadsheetException('TrueType Font file not found');
    +        }
    +
    +        return $fontFile;
    +    }
    +
    +    /**
    +     * Returns the associated charset for the font name.
    +     *
    +     * @param string $name Font name
    +     *
    +     * @return int Character set code
    +     */
    +    public static function getCharsetFromFontName($name)
    +    {
    +        switch ($name) {
    +            // Add more cases. Check FONT records in real Excel files.
    +            case 'EucrosiaUPC':
    +                return self::CHARSET_ANSI_THAI;
    +            case 'Wingdings':
    +                return self::CHARSET_SYMBOL;
    +            case 'Wingdings 2':
    +                return self::CHARSET_SYMBOL;
    +            case 'Wingdings 3':
    +                return self::CHARSET_SYMBOL;
    +            default:
    +                return self::CHARSET_ANSI_LATIN;
    +        }
    +    }
    +
    +    /**
    +     * Get the effective column width for columns without a column dimension or column with width -1
    +     * For example, for Calibri 11 this is 9.140625 (64 px).
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Font $font The workbooks default font
    +     * @param bool $pPixels true = return column width in pixels, false = return in OOXML units
    +     *
    +     * @return mixed Column width
    +     */
    +    public static function getDefaultColumnWidthByFont(\PhpOffice\PhpSpreadsheet\Style\Font $font, $pPixels = false)
    +    {
    +        if (isset(self::$defaultColumnWidths[$font->getName()][$font->getSize()])) {
    +            // Exact width can be determined
    +            $columnWidth = $pPixels ?
    +                self::$defaultColumnWidths[$font->getName()][$font->getSize()]['px']
    +                    : self::$defaultColumnWidths[$font->getName()][$font->getSize()]['width'];
    +        } else {
    +            // We don't have data for this particular font and size, use approximation by
    +            // extrapolating from Calibri 11
    +            $columnWidth = $pPixels ?
    +                self::$defaultColumnWidths['Calibri'][11]['px']
    +                    : self::$defaultColumnWidths['Calibri'][11]['width'];
    +            $columnWidth = $columnWidth * $font->getSize() / 11;
    +
    +            // Round pixels to closest integer
    +            if ($pPixels) {
    +                $columnWidth = (int) round($columnWidth);
    +            }
    +        }
    +
    +        return $columnWidth;
    +    }
    +
    +    /**
    +     * Get the effective row height for rows without a row dimension or rows with height -1
    +     * For example, for Calibri 11 this is 15 points.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Font $font The workbooks default font
    +     *
    +     * @return float Row height in points
    +     */
    +    public static function getDefaultRowHeightByFont(\PhpOffice\PhpSpreadsheet\Style\Font $font)
    +    {
    +        switch ($font->getName()) {
    +            case 'Arial':
    +                switch ($font->getSize()) {
    +                    case 10:
    +                        // inspection of Arial 10 workbook says 12.75pt ~17px
    +                        $rowHeight = 12.75;
    +
    +                        break;
    +                    case 9:
    +                        // inspection of Arial 9 workbook says 12.00pt ~16px
    +                        $rowHeight = 12;
    +
    +                        break;
    +                    case 8:
    +                        // inspection of Arial 8 workbook says 11.25pt ~15px
    +                        $rowHeight = 11.25;
    +
    +                        break;
    +                    case 7:
    +                        // inspection of Arial 7 workbook says 9.00pt ~12px
    +                        $rowHeight = 9;
    +
    +                        break;
    +                    case 6:
    +                    case 5:
    +                        // inspection of Arial 5,6 workbook says 8.25pt ~11px
    +                        $rowHeight = 8.25;
    +
    +                        break;
    +                    case 4:
    +                        // inspection of Arial 4 workbook says 6.75pt ~9px
    +                        $rowHeight = 6.75;
    +
    +                        break;
    +                    case 3:
    +                        // inspection of Arial 3 workbook says 6.00pt ~8px
    +                        $rowHeight = 6;
    +
    +                        break;
    +                    case 2:
    +                    case 1:
    +                        // inspection of Arial 1,2 workbook says 5.25pt ~7px
    +                        $rowHeight = 5.25;
    +
    +                        break;
    +                    default:
    +                        // use Arial 10 workbook as an approximation, extrapolation
    +                        $rowHeight = 12.75 * $font->getSize() / 10;
    +
    +                        break;
    +                }
    +
    +                break;
    +            case 'Calibri':
    +                switch ($font->getSize()) {
    +                    case 11:
    +                        // inspection of Calibri 11 workbook says 15.00pt ~20px
    +                        $rowHeight = 15;
    +
    +                        break;
    +                    case 10:
    +                        // inspection of Calibri 10 workbook says 12.75pt ~17px
    +                        $rowHeight = 12.75;
    +
    +                        break;
    +                    case 9:
    +                        // inspection of Calibri 9 workbook says 12.00pt ~16px
    +                        $rowHeight = 12;
    +
    +                        break;
    +                    case 8:
    +                        // inspection of Calibri 8 workbook says 11.25pt ~15px
    +                        $rowHeight = 11.25;
    +
    +                        break;
    +                    case 7:
    +                        // inspection of Calibri 7 workbook says 9.00pt ~12px
    +                        $rowHeight = 9;
    +
    +                        break;
    +                    case 6:
    +                    case 5:
    +                        // inspection of Calibri 5,6 workbook says 8.25pt ~11px
    +                        $rowHeight = 8.25;
    +
    +                        break;
    +                    case 4:
    +                        // inspection of Calibri 4 workbook says 6.75pt ~9px
    +                        $rowHeight = 6.75;
    +
    +                        break;
    +                    case 3:
    +                        // inspection of Calibri 3 workbook says 6.00pt ~8px
    +                        $rowHeight = 6.00;
    +
    +                        break;
    +                    case 2:
    +                    case 1:
    +                        // inspection of Calibri 1,2 workbook says 5.25pt ~7px
    +                        $rowHeight = 5.25;
    +
    +                        break;
    +                    default:
    +                        // use Calibri 11 workbook as an approximation, extrapolation
    +                        $rowHeight = 15 * $font->getSize() / 11;
    +
    +                        break;
    +                }
    +
    +                break;
    +            case 'Verdana':
    +                switch ($font->getSize()) {
    +                    case 10:
    +                        // inspection of Verdana 10 workbook says 12.75pt ~17px
    +                        $rowHeight = 12.75;
    +
    +                        break;
    +                    case 9:
    +                        // inspection of Verdana 9 workbook says 11.25pt ~15px
    +                        $rowHeight = 11.25;
    +
    +                        break;
    +                    case 8:
    +                        // inspection of Verdana 8 workbook says 10.50pt ~14px
    +                        $rowHeight = 10.50;
    +
    +                        break;
    +                    case 7:
    +                        // inspection of Verdana 7 workbook says 9.00pt ~12px
    +                        $rowHeight = 9.00;
    +
    +                        break;
    +                    case 6:
    +                    case 5:
    +                        // inspection of Verdana 5,6 workbook says 8.25pt ~11px
    +                        $rowHeight = 8.25;
    +
    +                        break;
    +                    case 4:
    +                        // inspection of Verdana 4 workbook says 6.75pt ~9px
    +                        $rowHeight = 6.75;
    +
    +                        break;
    +                    case 3:
    +                        // inspection of Verdana 3 workbook says 6.00pt ~8px
    +                        $rowHeight = 6;
    +
    +                        break;
    +                    case 2:
    +                    case 1:
    +                        // inspection of Verdana 1,2 workbook says 5.25pt ~7px
    +                        $rowHeight = 5.25;
    +
    +                        break;
    +                    default:
    +                        // use Verdana 10 workbook as an approximation, extrapolation
    +                        $rowHeight = 12.75 * $font->getSize() / 10;
    +
    +                        break;
    +                }
    +
    +                break;
    +            default:
    +                // just use Calibri as an approximation
    +                $rowHeight = 15 * $font->getSize() / 11;
    +
    +                break;
    +        }
    +
    +        return $rowHeight;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/CHANGELOG.TXT b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/CHANGELOG.TXT
    new file mode 100644
    index 00000000000..1c18a5da35d
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/CHANGELOG.TXT
    @@ -0,0 +1,16 @@
    +Mar 1, 2005 11:15 AST by PM
    +
    ++ For consistency, renamed Math.php to Maths.java, utils to util, 
    +  tests to test, docs to doc - 
    +
    ++ Removed conditional logic from top of Matrix class.
    +
    ++ Switched to using hypo function in Maths.php for all php-hypot calls.
    +  NOTE TO SELF: Need to make sure that all decompositions have been 
    +  switched over to using the bundled hypo.
    +
    +Feb 25, 2005 at 10:00 AST by PM
    +
    ++ Recommend using simpler Error.php instead of JAMA_Error.php but 
    +  can be persuaded otherwise.
    +
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/CholeskyDecomposition.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/CholeskyDecomposition.php
    new file mode 100644
    index 00000000000..2b241d555bb
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/CholeskyDecomposition.php
    @@ -0,0 +1,147 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Exception as CalculationException;
    +
    +/**
    + *    Cholesky decomposition class.
    + *
    + *    For a symmetric, positive definite matrix A, the Cholesky decomposition
    + *    is an lower triangular matrix L so that A = L*L'.
    + *
    + *    If the matrix is not symmetric or positive definite, the constructor
    + *    returns a partial decomposition and sets an internal flag that may
    + *    be queried by the isSPD() method.
    + *
    + *    @author Paul Meagher
    + *    @author Michael Bommarito
    + *
    + *    @version 1.2
    + */
    +class CholeskyDecomposition
    +{
    +    /**
    +     * Decomposition storage.
    +     *
    +     * @var array
    +     */
    +    private $L = [];
    +
    +    /**
    +     * Matrix row and column dimension.
    +     *
    +     * @var int
    +     */
    +    private $m;
    +
    +    /**
    +     * Symmetric positive definite flag.
    +     *
    +     * @var bool
    +     */
    +    private $isspd = true;
    +
    +    /**
    +     * CholeskyDecomposition.
    +     *
    +     *    Class constructor - decomposes symmetric positive definite matrix
    +     *
    +     * @param Matrix $A Matrix square symmetric positive definite matrix
    +     */
    +    public function __construct(Matrix $A)
    +    {
    +        $this->L = $A->getArray();
    +        $this->m = $A->getRowDimension();
    +
    +        for ($i = 0; $i < $this->m; ++$i) {
    +            for ($j = $i; $j < $this->m; ++$j) {
    +                for ($sum = $this->L[$i][$j], $k = $i - 1; $k >= 0; --$k) {
    +                    $sum -= $this->L[$i][$k] * $this->L[$j][$k];
    +                }
    +                if ($i == $j) {
    +                    if ($sum >= 0) {
    +                        $this->L[$i][$i] = sqrt($sum);
    +                    } else {
    +                        $this->isspd = false;
    +                    }
    +                } else {
    +                    if ($this->L[$i][$i] != 0) {
    +                        $this->L[$j][$i] = $sum / $this->L[$i][$i];
    +                    }
    +                }
    +            }
    +
    +            for ($k = $i + 1; $k < $this->m; ++$k) {
    +                $this->L[$i][$k] = 0.0;
    +            }
    +        }
    +    }
    +
    +    /**
    +     *    Is the matrix symmetric and positive definite?
    +     *
    +     * @return bool
    +     */
    +    public function isSPD()
    +    {
    +        return $this->isspd;
    +    }
    +
    +    /**
    +     * getL.
    +     *
    +     * Return triangular factor.
    +     *
    +     * @return Matrix Lower triangular matrix
    +     */
    +    public function getL()
    +    {
    +        return new Matrix($this->L);
    +    }
    +
    +    /**
    +     * Solve A*X = B.
    +     *
    +     * @param $B Row-equal matrix
    +     *
    +     * @return Matrix L * L' * X = B
    +     */
    +    public function solve(Matrix $B)
    +    {
    +        if ($B->getRowDimension() == $this->m) {
    +            if ($this->isspd) {
    +                $X = $B->getArrayCopy();
    +                $nx = $B->getColumnDimension();
    +
    +                for ($k = 0; $k < $this->m; ++$k) {
    +                    for ($i = $k + 1; $i < $this->m; ++$i) {
    +                        for ($j = 0; $j < $nx; ++$j) {
    +                            $X[$i][$j] -= $X[$k][$j] * $this->L[$i][$k];
    +                        }
    +                    }
    +                    for ($j = 0; $j < $nx; ++$j) {
    +                        $X[$k][$j] /= $this->L[$k][$k];
    +                    }
    +                }
    +
    +                for ($k = $this->m - 1; $k >= 0; --$k) {
    +                    for ($j = 0; $j < $nx; ++$j) {
    +                        $X[$k][$j] /= $this->L[$k][$k];
    +                    }
    +                    for ($i = 0; $i < $k; ++$i) {
    +                        for ($j = 0; $j < $nx; ++$j) {
    +                            $X[$i][$j] -= $X[$k][$j] * $this->L[$k][$i];
    +                        }
    +                    }
    +                }
    +
    +                return new Matrix($X, $this->m, $nx);
    +            }
    +
    +            throw new CalculationException(Matrix::MATRIX_SPD_EXCEPTION);
    +        }
    +
    +        throw new CalculationException(Matrix::MATRIX_DIMENSION_EXCEPTION);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/EigenvalueDecomposition.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/EigenvalueDecomposition.php
    new file mode 100644
    index 00000000000..ba59e0e5ade
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/EigenvalueDecomposition.php
    @@ -0,0 +1,861 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA;
    +
    +/**
    + *    Class to obtain eigenvalues and eigenvectors of a real matrix.
    + *
    + *    If A is symmetric, then A = V*D*V' where the eigenvalue matrix D
    + *    is diagonal and the eigenvector matrix V is orthogonal (i.e.
    + *    A = V.times(D.times(V.transpose())) and V.times(V.transpose())
    + *    equals the identity matrix).
    + *
    + *    If A is not symmetric, then the eigenvalue matrix D is block diagonal
    + *    with the real eigenvalues in 1-by-1 blocks and any complex eigenvalues,
    + *    lambda + i*mu, in 2-by-2 blocks, [lambda, mu; -mu, lambda].  The
    + *    columns of V represent the eigenvectors in the sense that A*V = V*D,
    + *    i.e. A.times(V) equals V.times(D).  The matrix V may be badly
    + *    conditioned, or even singular, so the validity of the equation
    + *    A = V*D*inverse(V) depends upon V.cond().
    + *
    + *    @author  Paul Meagher
    + *
    + *    @version 1.1
    + */
    +class EigenvalueDecomposition
    +{
    +    /**
    +     * Row and column dimension (square matrix).
    +     *
    +     * @var int
    +     */
    +    private $n;
    +
    +    /**
    +     * Arrays for internal storage of eigenvalues.
    +     *
    +     * @var array
    +     */
    +    private $d = [];
    +
    +    private $e = [];
    +
    +    /**
    +     * Array for internal storage of eigenvectors.
    +     *
    +     * @var array
    +     */
    +    private $V = [];
    +
    +    /**
    +     * Array for internal storage of nonsymmetric Hessenberg form.
    +     *
    +     * @var array
    +     */
    +    private $H = [];
    +
    +    /**
    +     * Working storage for nonsymmetric algorithm.
    +     *
    +     * @var array
    +     */
    +    private $ort;
    +
    +    /**
    +     * Used for complex scalar division.
    +     *
    +     * @var float
    +     */
    +    private $cdivr;
    +
    +    private $cdivi;
    +
    +    /**
    +     * Symmetric Householder reduction to tridiagonal form.
    +     */
    +    private function tred2()
    +    {
    +        //  This is derived from the Algol procedures tred2 by
    +        //  Bowdler, Martin, Reinsch, and Wilkinson, Handbook for
    +        //  Auto. Comp., Vol.ii-Linear Algebra, and the corresponding
    +        //  Fortran subroutine in EISPACK.
    +        $this->d = $this->V[$this->n - 1];
    +        // Householder reduction to tridiagonal form.
    +        for ($i = $this->n - 1; $i > 0; --$i) {
    +            $i_ = $i - 1;
    +            // Scale to avoid under/overflow.
    +            $h = $scale = 0.0;
    +            $scale += array_sum(array_map('abs', $this->d));
    +            if ($scale == 0.0) {
    +                $this->e[$i] = $this->d[$i_];
    +                $this->d = array_slice($this->V[$i_], 0, $i_);
    +                for ($j = 0; $j < $i; ++$j) {
    +                    $this->V[$j][$i] = $this->V[$i][$j] = 0.0;
    +                }
    +            } else {
    +                // Generate Householder vector.
    +                for ($k = 0; $k < $i; ++$k) {
    +                    $this->d[$k] /= $scale;
    +                    $h += pow($this->d[$k], 2);
    +                }
    +                $f = $this->d[$i_];
    +                $g = sqrt($h);
    +                if ($f > 0) {
    +                    $g = -$g;
    +                }
    +                $this->e[$i] = $scale * $g;
    +                $h = $h - $f * $g;
    +                $this->d[$i_] = $f - $g;
    +                for ($j = 0; $j < $i; ++$j) {
    +                    $this->e[$j] = 0.0;
    +                }
    +                // Apply similarity transformation to remaining columns.
    +                for ($j = 0; $j < $i; ++$j) {
    +                    $f = $this->d[$j];
    +                    $this->V[$j][$i] = $f;
    +                    $g = $this->e[$j] + $this->V[$j][$j] * $f;
    +                    for ($k = $j + 1; $k <= $i_; ++$k) {
    +                        $g += $this->V[$k][$j] * $this->d[$k];
    +                        $this->e[$k] += $this->V[$k][$j] * $f;
    +                    }
    +                    $this->e[$j] = $g;
    +                }
    +                $f = 0.0;
    +                for ($j = 0; $j < $i; ++$j) {
    +                    $this->e[$j] /= $h;
    +                    $f += $this->e[$j] * $this->d[$j];
    +                }
    +                $hh = $f / (2 * $h);
    +                for ($j = 0; $j < $i; ++$j) {
    +                    $this->e[$j] -= $hh * $this->d[$j];
    +                }
    +                for ($j = 0; $j < $i; ++$j) {
    +                    $f = $this->d[$j];
    +                    $g = $this->e[$j];
    +                    for ($k = $j; $k <= $i_; ++$k) {
    +                        $this->V[$k][$j] -= ($f * $this->e[$k] + $g * $this->d[$k]);
    +                    }
    +                    $this->d[$j] = $this->V[$i - 1][$j];
    +                    $this->V[$i][$j] = 0.0;
    +                }
    +            }
    +            $this->d[$i] = $h;
    +        }
    +
    +        // Accumulate transformations.
    +        for ($i = 0; $i < $this->n - 1; ++$i) {
    +            $this->V[$this->n - 1][$i] = $this->V[$i][$i];
    +            $this->V[$i][$i] = 1.0;
    +            $h = $this->d[$i + 1];
    +            if ($h != 0.0) {
    +                for ($k = 0; $k <= $i; ++$k) {
    +                    $this->d[$k] = $this->V[$k][$i + 1] / $h;
    +                }
    +                for ($j = 0; $j <= $i; ++$j) {
    +                    $g = 0.0;
    +                    for ($k = 0; $k <= $i; ++$k) {
    +                        $g += $this->V[$k][$i + 1] * $this->V[$k][$j];
    +                    }
    +                    for ($k = 0; $k <= $i; ++$k) {
    +                        $this->V[$k][$j] -= $g * $this->d[$k];
    +                    }
    +                }
    +            }
    +            for ($k = 0; $k <= $i; ++$k) {
    +                $this->V[$k][$i + 1] = 0.0;
    +            }
    +        }
    +
    +        $this->d = $this->V[$this->n - 1];
    +        $this->V[$this->n - 1] = array_fill(0, $j, 0.0);
    +        $this->V[$this->n - 1][$this->n - 1] = 1.0;
    +        $this->e[0] = 0.0;
    +    }
    +
    +    /**
    +     * Symmetric tridiagonal QL algorithm.
    +     *
    +     *    This is derived from the Algol procedures tql2, by
    +     *    Bowdler, Martin, Reinsch, and Wilkinson, Handbook for
    +     *    Auto. Comp., Vol.ii-Linear Algebra, and the corresponding
    +     * Fortran subroutine in EISPACK.
    +     */
    +    private function tql2()
    +    {
    +        for ($i = 1; $i < $this->n; ++$i) {
    +            $this->e[$i - 1] = $this->e[$i];
    +        }
    +        $this->e[$this->n - 1] = 0.0;
    +        $f = 0.0;
    +        $tst1 = 0.0;
    +        $eps = pow(2.0, -52.0);
    +
    +        for ($l = 0; $l < $this->n; ++$l) {
    +            // Find small subdiagonal element
    +            $tst1 = max($tst1, abs($this->d[$l]) + abs($this->e[$l]));
    +            $m = $l;
    +            while ($m < $this->n) {
    +                if (abs($this->e[$m]) <= $eps * $tst1) {
    +                    break;
    +                }
    +                ++$m;
    +            }
    +            // If m == l, $this->d[l] is an eigenvalue,
    +            // otherwise, iterate.
    +            if ($m > $l) {
    +                $iter = 0;
    +                do {
    +                    // Could check iteration count here.
    +                    $iter += 1;
    +                    // Compute implicit shift
    +                    $g = $this->d[$l];
    +                    $p = ($this->d[$l + 1] - $g) / (2.0 * $this->e[$l]);
    +                    $r = hypo($p, 1.0);
    +                    if ($p < 0) {
    +                        $r *= -1;
    +                    }
    +                    $this->d[$l] = $this->e[$l] / ($p + $r);
    +                    $this->d[$l + 1] = $this->e[$l] * ($p + $r);
    +                    $dl1 = $this->d[$l + 1];
    +                    $h = $g - $this->d[$l];
    +                    for ($i = $l + 2; $i < $this->n; ++$i) {
    +                        $this->d[$i] -= $h;
    +                    }
    +                    $f += $h;
    +                    // Implicit QL transformation.
    +                    $p = $this->d[$m];
    +                    $c = 1.0;
    +                    $c2 = $c3 = $c;
    +                    $el1 = $this->e[$l + 1];
    +                    $s = $s2 = 0.0;
    +                    for ($i = $m - 1; $i >= $l; --$i) {
    +                        $c3 = $c2;
    +                        $c2 = $c;
    +                        $s2 = $s;
    +                        $g = $c * $this->e[$i];
    +                        $h = $c * $p;
    +                        $r = hypo($p, $this->e[$i]);
    +                        $this->e[$i + 1] = $s * $r;
    +                        $s = $this->e[$i] / $r;
    +                        $c = $p / $r;
    +                        $p = $c * $this->d[$i] - $s * $g;
    +                        $this->d[$i + 1] = $h + $s * ($c * $g + $s * $this->d[$i]);
    +                        // Accumulate transformation.
    +                        for ($k = 0; $k < $this->n; ++$k) {
    +                            $h = $this->V[$k][$i + 1];
    +                            $this->V[$k][$i + 1] = $s * $this->V[$k][$i] + $c * $h;
    +                            $this->V[$k][$i] = $c * $this->V[$k][$i] - $s * $h;
    +                        }
    +                    }
    +                    $p = -$s * $s2 * $c3 * $el1 * $this->e[$l] / $dl1;
    +                    $this->e[$l] = $s * $p;
    +                    $this->d[$l] = $c * $p;
    +                    // Check for convergence.
    +                } while (abs($this->e[$l]) > $eps * $tst1);
    +            }
    +            $this->d[$l] = $this->d[$l] + $f;
    +            $this->e[$l] = 0.0;
    +        }
    +
    +        // Sort eigenvalues and corresponding vectors.
    +        for ($i = 0; $i < $this->n - 1; ++$i) {
    +            $k = $i;
    +            $p = $this->d[$i];
    +            for ($j = $i + 1; $j < $this->n; ++$j) {
    +                if ($this->d[$j] < $p) {
    +                    $k = $j;
    +                    $p = $this->d[$j];
    +                }
    +            }
    +            if ($k != $i) {
    +                $this->d[$k] = $this->d[$i];
    +                $this->d[$i] = $p;
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $p = $this->V[$j][$i];
    +                    $this->V[$j][$i] = $this->V[$j][$k];
    +                    $this->V[$j][$k] = $p;
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Nonsymmetric reduction to Hessenberg form.
    +     *
    +     *    This is derived from the Algol procedures orthes and ortran,
    +     *    by Martin and Wilkinson, Handbook for Auto. Comp.,
    +     *    Vol.ii-Linear Algebra, and the corresponding
    +     * Fortran subroutines in EISPACK.
    +     */
    +    private function orthes()
    +    {
    +        $low = 0;
    +        $high = $this->n - 1;
    +
    +        for ($m = $low + 1; $m <= $high - 1; ++$m) {
    +            // Scale column.
    +            $scale = 0.0;
    +            for ($i = $m; $i <= $high; ++$i) {
    +                $scale = $scale + abs($this->H[$i][$m - 1]);
    +            }
    +            if ($scale != 0.0) {
    +                // Compute Householder transformation.
    +                $h = 0.0;
    +                for ($i = $high; $i >= $m; --$i) {
    +                    $this->ort[$i] = $this->H[$i][$m - 1] / $scale;
    +                    $h += $this->ort[$i] * $this->ort[$i];
    +                }
    +                $g = sqrt($h);
    +                if ($this->ort[$m] > 0) {
    +                    $g *= -1;
    +                }
    +                $h -= $this->ort[$m] * $g;
    +                $this->ort[$m] -= $g;
    +                // Apply Householder similarity transformation
    +                // H = (I -u * u' / h) * H * (I -u * u') / h)
    +                for ($j = $m; $j < $this->n; ++$j) {
    +                    $f = 0.0;
    +                    for ($i = $high; $i >= $m; --$i) {
    +                        $f += $this->ort[$i] * $this->H[$i][$j];
    +                    }
    +                    $f /= $h;
    +                    for ($i = $m; $i <= $high; ++$i) {
    +                        $this->H[$i][$j] -= $f * $this->ort[$i];
    +                    }
    +                }
    +                for ($i = 0; $i <= $high; ++$i) {
    +                    $f = 0.0;
    +                    for ($j = $high; $j >= $m; --$j) {
    +                        $f += $this->ort[$j] * $this->H[$i][$j];
    +                    }
    +                    $f = $f / $h;
    +                    for ($j = $m; $j <= $high; ++$j) {
    +                        $this->H[$i][$j] -= $f * $this->ort[$j];
    +                    }
    +                }
    +                $this->ort[$m] = $scale * $this->ort[$m];
    +                $this->H[$m][$m - 1] = $scale * $g;
    +            }
    +        }
    +
    +        // Accumulate transformations (Algol's ortran).
    +        for ($i = 0; $i < $this->n; ++$i) {
    +            for ($j = 0; $j < $this->n; ++$j) {
    +                $this->V[$i][$j] = ($i == $j ? 1.0 : 0.0);
    +            }
    +        }
    +        for ($m = $high - 1; $m >= $low + 1; --$m) {
    +            if ($this->H[$m][$m - 1] != 0.0) {
    +                for ($i = $m + 1; $i <= $high; ++$i) {
    +                    $this->ort[$i] = $this->H[$i][$m - 1];
    +                }
    +                for ($j = $m; $j <= $high; ++$j) {
    +                    $g = 0.0;
    +                    for ($i = $m; $i <= $high; ++$i) {
    +                        $g += $this->ort[$i] * $this->V[$i][$j];
    +                    }
    +                    // Double division avoids possible underflow
    +                    $g = ($g / $this->ort[$m]) / $this->H[$m][$m - 1];
    +                    for ($i = $m; $i <= $high; ++$i) {
    +                        $this->V[$i][$j] += $g * $this->ort[$i];
    +                    }
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Performs complex division.
    +     *
    +     * @param mixed $xr
    +     * @param mixed $xi
    +     * @param mixed $yr
    +     * @param mixed $yi
    +     */
    +    private function cdiv($xr, $xi, $yr, $yi)
    +    {
    +        if (abs($yr) > abs($yi)) {
    +            $r = $yi / $yr;
    +            $d = $yr + $r * $yi;
    +            $this->cdivr = ($xr + $r * $xi) / $d;
    +            $this->cdivi = ($xi - $r * $xr) / $d;
    +        } else {
    +            $r = $yr / $yi;
    +            $d = $yi + $r * $yr;
    +            $this->cdivr = ($r * $xr + $xi) / $d;
    +            $this->cdivi = ($r * $xi - $xr) / $d;
    +        }
    +    }
    +
    +    /**
    +     * Nonsymmetric reduction from Hessenberg to real Schur form.
    +     *
    +     *    Code is derived from the Algol procedure hqr2,
    +     *    by Martin and Wilkinson, Handbook for Auto. Comp.,
    +     *    Vol.ii-Linear Algebra, and the corresponding
    +     * Fortran subroutine in EISPACK.
    +     */
    +    private function hqr2()
    +    {
    +        //  Initialize
    +        $nn = $this->n;
    +        $n = $nn - 1;
    +        $low = 0;
    +        $high = $nn - 1;
    +        $eps = pow(2.0, -52.0);
    +        $exshift = 0.0;
    +        $p = $q = $r = $s = $z = 0;
    +        // Store roots isolated by balanc and compute matrix norm
    +        $norm = 0.0;
    +
    +        for ($i = 0; $i < $nn; ++$i) {
    +            if (($i < $low) or ($i > $high)) {
    +                $this->d[$i] = $this->H[$i][$i];
    +                $this->e[$i] = 0.0;
    +            }
    +            for ($j = max($i - 1, 0); $j < $nn; ++$j) {
    +                $norm = $norm + abs($this->H[$i][$j]);
    +            }
    +        }
    +
    +        // Outer loop over eigenvalue index
    +        $iter = 0;
    +        while ($n >= $low) {
    +            // Look for single small sub-diagonal element
    +            $l = $n;
    +            while ($l > $low) {
    +                $s = abs($this->H[$l - 1][$l - 1]) + abs($this->H[$l][$l]);
    +                if ($s == 0.0) {
    +                    $s = $norm;
    +                }
    +                if (abs($this->H[$l][$l - 1]) < $eps * $s) {
    +                    break;
    +                }
    +                --$l;
    +            }
    +            // Check for convergence
    +            // One root found
    +            if ($l == $n) {
    +                $this->H[$n][$n] = $this->H[$n][$n] + $exshift;
    +                $this->d[$n] = $this->H[$n][$n];
    +                $this->e[$n] = 0.0;
    +                --$n;
    +                $iter = 0;
    +            // Two roots found
    +            } elseif ($l == $n - 1) {
    +                $w = $this->H[$n][$n - 1] * $this->H[$n - 1][$n];
    +                $p = ($this->H[$n - 1][$n - 1] - $this->H[$n][$n]) / 2.0;
    +                $q = $p * $p + $w;
    +                $z = sqrt(abs($q));
    +                $this->H[$n][$n] = $this->H[$n][$n] + $exshift;
    +                $this->H[$n - 1][$n - 1] = $this->H[$n - 1][$n - 1] + $exshift;
    +                $x = $this->H[$n][$n];
    +                // Real pair
    +                if ($q >= 0) {
    +                    if ($p >= 0) {
    +                        $z = $p + $z;
    +                    } else {
    +                        $z = $p - $z;
    +                    }
    +                    $this->d[$n - 1] = $x + $z;
    +                    $this->d[$n] = $this->d[$n - 1];
    +                    if ($z != 0.0) {
    +                        $this->d[$n] = $x - $w / $z;
    +                    }
    +                    $this->e[$n - 1] = 0.0;
    +                    $this->e[$n] = 0.0;
    +                    $x = $this->H[$n][$n - 1];
    +                    $s = abs($x) + abs($z);
    +                    $p = $x / $s;
    +                    $q = $z / $s;
    +                    $r = sqrt($p * $p + $q * $q);
    +                    $p = $p / $r;
    +                    $q = $q / $r;
    +                    // Row modification
    +                    for ($j = $n - 1; $j < $nn; ++$j) {
    +                        $z = $this->H[$n - 1][$j];
    +                        $this->H[$n - 1][$j] = $q * $z + $p * $this->H[$n][$j];
    +                        $this->H[$n][$j] = $q * $this->H[$n][$j] - $p * $z;
    +                    }
    +                    // Column modification
    +                    for ($i = 0; $i <= $n; ++$i) {
    +                        $z = $this->H[$i][$n - 1];
    +                        $this->H[$i][$n - 1] = $q * $z + $p * $this->H[$i][$n];
    +                        $this->H[$i][$n] = $q * $this->H[$i][$n] - $p * $z;
    +                    }
    +                    // Accumulate transformations
    +                    for ($i = $low; $i <= $high; ++$i) {
    +                        $z = $this->V[$i][$n - 1];
    +                        $this->V[$i][$n - 1] = $q * $z + $p * $this->V[$i][$n];
    +                        $this->V[$i][$n] = $q * $this->V[$i][$n] - $p * $z;
    +                    }
    +                    // Complex pair
    +                } else {
    +                    $this->d[$n - 1] = $x + $p;
    +                    $this->d[$n] = $x + $p;
    +                    $this->e[$n - 1] = $z;
    +                    $this->e[$n] = -$z;
    +                }
    +                $n = $n - 2;
    +                $iter = 0;
    +            // No convergence yet
    +            } else {
    +                // Form shift
    +                $x = $this->H[$n][$n];
    +                $y = 0.0;
    +                $w = 0.0;
    +                if ($l < $n) {
    +                    $y = $this->H[$n - 1][$n - 1];
    +                    $w = $this->H[$n][$n - 1] * $this->H[$n - 1][$n];
    +                }
    +                // Wilkinson's original ad hoc shift
    +                if ($iter == 10) {
    +                    $exshift += $x;
    +                    for ($i = $low; $i <= $n; ++$i) {
    +                        $this->H[$i][$i] -= $x;
    +                    }
    +                    $s = abs($this->H[$n][$n - 1]) + abs($this->H[$n - 1][$n - 2]);
    +                    $x = $y = 0.75 * $s;
    +                    $w = -0.4375 * $s * $s;
    +                }
    +                // MATLAB's new ad hoc shift
    +                if ($iter == 30) {
    +                    $s = ($y - $x) / 2.0;
    +                    $s = $s * $s + $w;
    +                    if ($s > 0) {
    +                        $s = sqrt($s);
    +                        if ($y < $x) {
    +                            $s = -$s;
    +                        }
    +                        $s = $x - $w / (($y - $x) / 2.0 + $s);
    +                        for ($i = $low; $i <= $n; ++$i) {
    +                            $this->H[$i][$i] -= $s;
    +                        }
    +                        $exshift += $s;
    +                        $x = $y = $w = 0.964;
    +                    }
    +                }
    +                // Could check iteration count here.
    +                $iter = $iter + 1;
    +                // Look for two consecutive small sub-diagonal elements
    +                $m = $n - 2;
    +                while ($m >= $l) {
    +                    $z = $this->H[$m][$m];
    +                    $r = $x - $z;
    +                    $s = $y - $z;
    +                    $p = ($r * $s - $w) / $this->H[$m + 1][$m] + $this->H[$m][$m + 1];
    +                    $q = $this->H[$m + 1][$m + 1] - $z - $r - $s;
    +                    $r = $this->H[$m + 2][$m + 1];
    +                    $s = abs($p) + abs($q) + abs($r);
    +                    $p = $p / $s;
    +                    $q = $q / $s;
    +                    $r = $r / $s;
    +                    if ($m == $l) {
    +                        break;
    +                    }
    +                    if (abs($this->H[$m][$m - 1]) * (abs($q) + abs($r)) <
    +                        $eps * (abs($p) * (abs($this->H[$m - 1][$m - 1]) + abs($z) + abs($this->H[$m + 1][$m + 1])))) {
    +                        break;
    +                    }
    +                    --$m;
    +                }
    +                for ($i = $m + 2; $i <= $n; ++$i) {
    +                    $this->H[$i][$i - 2] = 0.0;
    +                    if ($i > $m + 2) {
    +                        $this->H[$i][$i - 3] = 0.0;
    +                    }
    +                }
    +                // Double QR step involving rows l:n and columns m:n
    +                for ($k = $m; $k <= $n - 1; ++$k) {
    +                    $notlast = ($k != $n - 1);
    +                    if ($k != $m) {
    +                        $p = $this->H[$k][$k - 1];
    +                        $q = $this->H[$k + 1][$k - 1];
    +                        $r = ($notlast ? $this->H[$k + 2][$k - 1] : 0.0);
    +                        $x = abs($p) + abs($q) + abs($r);
    +                        if ($x != 0.0) {
    +                            $p = $p / $x;
    +                            $q = $q / $x;
    +                            $r = $r / $x;
    +                        }
    +                    }
    +                    if ($x == 0.0) {
    +                        break;
    +                    }
    +                    $s = sqrt($p * $p + $q * $q + $r * $r);
    +                    if ($p < 0) {
    +                        $s = -$s;
    +                    }
    +                    if ($s != 0) {
    +                        if ($k != $m) {
    +                            $this->H[$k][$k - 1] = -$s * $x;
    +                        } elseif ($l != $m) {
    +                            $this->H[$k][$k - 1] = -$this->H[$k][$k - 1];
    +                        }
    +                        $p = $p + $s;
    +                        $x = $p / $s;
    +                        $y = $q / $s;
    +                        $z = $r / $s;
    +                        $q = $q / $p;
    +                        $r = $r / $p;
    +                        // Row modification
    +                        for ($j = $k; $j < $nn; ++$j) {
    +                            $p = $this->H[$k][$j] + $q * $this->H[$k + 1][$j];
    +                            if ($notlast) {
    +                                $p = $p + $r * $this->H[$k + 2][$j];
    +                                $this->H[$k + 2][$j] = $this->H[$k + 2][$j] - $p * $z;
    +                            }
    +                            $this->H[$k][$j] = $this->H[$k][$j] - $p * $x;
    +                            $this->H[$k + 1][$j] = $this->H[$k + 1][$j] - $p * $y;
    +                        }
    +                        // Column modification
    +                        $iMax = min($n, $k + 3);
    +                        for ($i = 0; $i <= $iMax; ++$i) {
    +                            $p = $x * $this->H[$i][$k] + $y * $this->H[$i][$k + 1];
    +                            if ($notlast) {
    +                                $p = $p + $z * $this->H[$i][$k + 2];
    +                                $this->H[$i][$k + 2] = $this->H[$i][$k + 2] - $p * $r;
    +                            }
    +                            $this->H[$i][$k] = $this->H[$i][$k] - $p;
    +                            $this->H[$i][$k + 1] = $this->H[$i][$k + 1] - $p * $q;
    +                        }
    +                        // Accumulate transformations
    +                        for ($i = $low; $i <= $high; ++$i) {
    +                            $p = $x * $this->V[$i][$k] + $y * $this->V[$i][$k + 1];
    +                            if ($notlast) {
    +                                $p = $p + $z * $this->V[$i][$k + 2];
    +                                $this->V[$i][$k + 2] = $this->V[$i][$k + 2] - $p * $r;
    +                            }
    +                            $this->V[$i][$k] = $this->V[$i][$k] - $p;
    +                            $this->V[$i][$k + 1] = $this->V[$i][$k + 1] - $p * $q;
    +                        }
    +                    }  // ($s != 0)
    +                }  // k loop
    +            }  // check convergence
    +        }  // while ($n >= $low)
    +
    +        // Backsubstitute to find vectors of upper triangular form
    +        if ($norm == 0.0) {
    +            return;
    +        }
    +
    +        for ($n = $nn - 1; $n >= 0; --$n) {
    +            $p = $this->d[$n];
    +            $q = $this->e[$n];
    +            // Real vector
    +            if ($q == 0) {
    +                $l = $n;
    +                $this->H[$n][$n] = 1.0;
    +                for ($i = $n - 1; $i >= 0; --$i) {
    +                    $w = $this->H[$i][$i] - $p;
    +                    $r = 0.0;
    +                    for ($j = $l; $j <= $n; ++$j) {
    +                        $r = $r + $this->H[$i][$j] * $this->H[$j][$n];
    +                    }
    +                    if ($this->e[$i] < 0.0) {
    +                        $z = $w;
    +                        $s = $r;
    +                    } else {
    +                        $l = $i;
    +                        if ($this->e[$i] == 0.0) {
    +                            if ($w != 0.0) {
    +                                $this->H[$i][$n] = -$r / $w;
    +                            } else {
    +                                $this->H[$i][$n] = -$r / ($eps * $norm);
    +                            }
    +                            // Solve real equations
    +                        } else {
    +                            $x = $this->H[$i][$i + 1];
    +                            $y = $this->H[$i + 1][$i];
    +                            $q = ($this->d[$i] - $p) * ($this->d[$i] - $p) + $this->e[$i] * $this->e[$i];
    +                            $t = ($x * $s - $z * $r) / $q;
    +                            $this->H[$i][$n] = $t;
    +                            if (abs($x) > abs($z)) {
    +                                $this->H[$i + 1][$n] = (-$r - $w * $t) / $x;
    +                            } else {
    +                                $this->H[$i + 1][$n] = (-$s - $y * $t) / $z;
    +                            }
    +                        }
    +                        // Overflow control
    +                        $t = abs($this->H[$i][$n]);
    +                        if (($eps * $t) * $t > 1) {
    +                            for ($j = $i; $j <= $n; ++$j) {
    +                                $this->H[$j][$n] = $this->H[$j][$n] / $t;
    +                            }
    +                        }
    +                    }
    +                }
    +                // Complex vector
    +            } elseif ($q < 0) {
    +                $l = $n - 1;
    +                // Last vector component imaginary so matrix is triangular
    +                if (abs($this->H[$n][$n - 1]) > abs($this->H[$n - 1][$n])) {
    +                    $this->H[$n - 1][$n - 1] = $q / $this->H[$n][$n - 1];
    +                    $this->H[$n - 1][$n] = -($this->H[$n][$n] - $p) / $this->H[$n][$n - 1];
    +                } else {
    +                    $this->cdiv(0.0, -$this->H[$n - 1][$n], $this->H[$n - 1][$n - 1] - $p, $q);
    +                    $this->H[$n - 1][$n - 1] = $this->cdivr;
    +                    $this->H[$n - 1][$n] = $this->cdivi;
    +                }
    +                $this->H[$n][$n - 1] = 0.0;
    +                $this->H[$n][$n] = 1.0;
    +                for ($i = $n - 2; $i >= 0; --$i) {
    +                    // double ra,sa,vr,vi;
    +                    $ra = 0.0;
    +                    $sa = 0.0;
    +                    for ($j = $l; $j <= $n; ++$j) {
    +                        $ra = $ra + $this->H[$i][$j] * $this->H[$j][$n - 1];
    +                        $sa = $sa + $this->H[$i][$j] * $this->H[$j][$n];
    +                    }
    +                    $w = $this->H[$i][$i] - $p;
    +                    if ($this->e[$i] < 0.0) {
    +                        $z = $w;
    +                        $r = $ra;
    +                        $s = $sa;
    +                    } else {
    +                        $l = $i;
    +                        if ($this->e[$i] == 0) {
    +                            $this->cdiv(-$ra, -$sa, $w, $q);
    +                            $this->H[$i][$n - 1] = $this->cdivr;
    +                            $this->H[$i][$n] = $this->cdivi;
    +                        } else {
    +                            // Solve complex equations
    +                            $x = $this->H[$i][$i + 1];
    +                            $y = $this->H[$i + 1][$i];
    +                            $vr = ($this->d[$i] - $p) * ($this->d[$i] - $p) + $this->e[$i] * $this->e[$i] - $q * $q;
    +                            $vi = ($this->d[$i] - $p) * 2.0 * $q;
    +                            if ($vr == 0.0 & $vi == 0.0) {
    +                                $vr = $eps * $norm * (abs($w) + abs($q) + abs($x) + abs($y) + abs($z));
    +                            }
    +                            $this->cdiv($x * $r - $z * $ra + $q * $sa, $x * $s - $z * $sa - $q * $ra, $vr, $vi);
    +                            $this->H[$i][$n - 1] = $this->cdivr;
    +                            $this->H[$i][$n] = $this->cdivi;
    +                            if (abs($x) > (abs($z) + abs($q))) {
    +                                $this->H[$i + 1][$n - 1] = (-$ra - $w * $this->H[$i][$n - 1] + $q * $this->H[$i][$n]) / $x;
    +                                $this->H[$i + 1][$n] = (-$sa - $w * $this->H[$i][$n] - $q * $this->H[$i][$n - 1]) / $x;
    +                            } else {
    +                                $this->cdiv(-$r - $y * $this->H[$i][$n - 1], -$s - $y * $this->H[$i][$n], $z, $q);
    +                                $this->H[$i + 1][$n - 1] = $this->cdivr;
    +                                $this->H[$i + 1][$n] = $this->cdivi;
    +                            }
    +                        }
    +                        // Overflow control
    +                        $t = max(abs($this->H[$i][$n - 1]), abs($this->H[$i][$n]));
    +                        if (($eps * $t) * $t > 1) {
    +                            for ($j = $i; $j <= $n; ++$j) {
    +                                $this->H[$j][$n - 1] = $this->H[$j][$n - 1] / $t;
    +                                $this->H[$j][$n] = $this->H[$j][$n] / $t;
    +                            }
    +                        }
    +                    } // end else
    +                } // end for
    +            } // end else for complex case
    +        } // end for
    +
    +        // Vectors of isolated roots
    +        for ($i = 0; $i < $nn; ++$i) {
    +            if ($i < $low | $i > $high) {
    +                for ($j = $i; $j < $nn; ++$j) {
    +                    $this->V[$i][$j] = $this->H[$i][$j];
    +                }
    +            }
    +        }
    +
    +        // Back transformation to get eigenvectors of original matrix
    +        for ($j = $nn - 1; $j >= $low; --$j) {
    +            for ($i = $low; $i <= $high; ++$i) {
    +                $z = 0.0;
    +                $kMax = min($j, $high);
    +                for ($k = $low; $k <= $kMax; ++$k) {
    +                    $z = $z + $this->V[$i][$k] * $this->H[$k][$j];
    +                }
    +                $this->V[$i][$j] = $z;
    +            }
    +        }
    +    }
    +
    +    // end hqr2
    +
    +    /**
    +     * Constructor: Check for symmetry, then construct the eigenvalue decomposition.
    +     *
    +     * @param mixed $Arg A Square matrix
    +     */
    +    public function __construct($Arg)
    +    {
    +        $this->A = $Arg->getArray();
    +        $this->n = $Arg->getColumnDimension();
    +
    +        $issymmetric = true;
    +        for ($j = 0; ($j < $this->n) & $issymmetric; ++$j) {
    +            for ($i = 0; ($i < $this->n) & $issymmetric; ++$i) {
    +                $issymmetric = ($this->A[$i][$j] == $this->A[$j][$i]);
    +            }
    +        }
    +
    +        if ($issymmetric) {
    +            $this->V = $this->A;
    +            // Tridiagonalize.
    +            $this->tred2();
    +            // Diagonalize.
    +            $this->tql2();
    +        } else {
    +            $this->H = $this->A;
    +            $this->ort = [];
    +            // Reduce to Hessenberg form.
    +            $this->orthes();
    +            // Reduce Hessenberg to real Schur form.
    +            $this->hqr2();
    +        }
    +    }
    +
    +    /**
    +     * Return the eigenvector matrix.
    +     *
    +     * @return Matrix V
    +     */
    +    public function getV()
    +    {
    +        return new Matrix($this->V, $this->n, $this->n);
    +    }
    +
    +    /**
    +     * Return the real parts of the eigenvalues.
    +     *
    +     * @return array real(diag(D))
    +     */
    +    public function getRealEigenvalues()
    +    {
    +        return $this->d;
    +    }
    +
    +    /**
    +     * Return the imaginary parts of the eigenvalues.
    +     *
    +     * @return array imag(diag(D))
    +     */
    +    public function getImagEigenvalues()
    +    {
    +        return $this->e;
    +    }
    +
    +    /**
    +     * Return the block diagonal eigenvalue matrix.
    +     *
    +     * @return Matrix D
    +     */
    +    public function getD()
    +    {
    +        for ($i = 0; $i < $this->n; ++$i) {
    +            $D[$i] = array_fill(0, $this->n, 0.0);
    +            $D[$i][$i] = $this->d[$i];
    +            if ($this->e[$i] == 0) {
    +                continue;
    +            }
    +            $o = ($this->e[$i] > 0) ? $i + 1 : $i - 1;
    +            $D[$i][$o] = $this->e[$i];
    +        }
    +
    +        return new Matrix($D);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/LUDecomposition.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/LUDecomposition.php
    new file mode 100644
    index 00000000000..bb2b4b040a9
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/LUDecomposition.php
    @@ -0,0 +1,285 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Exception as CalculationException;
    +
    +/**
    + *    For an m-by-n matrix A with m >= n, the LU decomposition is an m-by-n
    + *    unit lower triangular matrix L, an n-by-n upper triangular matrix U,
    + *    and a permutation vector piv of length m so that A(piv,:) = L*U.
    + *    If m < n, then L is m-by-m and U is m-by-n.
    + *
    + *    The LU decompostion with pivoting always exists, even if the matrix is
    + *    singular, so the constructor will never fail. The primary use of the
    + *    LU decomposition is in the solution of square systems of simultaneous
    + *    linear equations. This will fail if isNonsingular() returns false.
    + *
    + *    @author Paul Meagher
    + *    @author Bartosz Matosiuk
    + *    @author Michael Bommarito
    + *
    + *    @version 1.1
    + */
    +class LUDecomposition
    +{
    +    const MATRIX_SINGULAR_EXCEPTION = 'Can only perform operation on singular matrix.';
    +    const MATRIX_SQUARE_EXCEPTION = 'Mismatched Row dimension';
    +
    +    /**
    +     * Decomposition storage.
    +     *
    +     * @var array
    +     */
    +    private $LU = [];
    +
    +    /**
    +     * Row dimension.
    +     *
    +     * @var int
    +     */
    +    private $m;
    +
    +    /**
    +     * Column dimension.
    +     *
    +     * @var int
    +     */
    +    private $n;
    +
    +    /**
    +     * Pivot sign.
    +     *
    +     * @var int
    +     */
    +    private $pivsign;
    +
    +    /**
    +     * Internal storage of pivot vector.
    +     *
    +     * @var array
    +     */
    +    private $piv = [];
    +
    +    /**
    +     * LU Decomposition constructor.
    +     *
    +     * @param Matrix $A Rectangular matrix
    +     */
    +    public function __construct($A)
    +    {
    +        if ($A instanceof Matrix) {
    +            // Use a "left-looking", dot-product, Crout/Doolittle algorithm.
    +            $this->LU = $A->getArray();
    +            $this->m = $A->getRowDimension();
    +            $this->n = $A->getColumnDimension();
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                $this->piv[$i] = $i;
    +            }
    +            $this->pivsign = 1;
    +            $LUrowi = $LUcolj = [];
    +
    +            // Outer loop.
    +            for ($j = 0; $j < $this->n; ++$j) {
    +                // Make a copy of the j-th column to localize references.
    +                for ($i = 0; $i < $this->m; ++$i) {
    +                    $LUcolj[$i] = &$this->LU[$i][$j];
    +                }
    +                // Apply previous transformations.
    +                for ($i = 0; $i < $this->m; ++$i) {
    +                    $LUrowi = $this->LU[$i];
    +                    // Most of the time is spent in the following dot product.
    +                    $kmax = min($i, $j);
    +                    $s = 0.0;
    +                    for ($k = 0; $k < $kmax; ++$k) {
    +                        $s += $LUrowi[$k] * $LUcolj[$k];
    +                    }
    +                    $LUrowi[$j] = $LUcolj[$i] -= $s;
    +                }
    +                // Find pivot and exchange if necessary.
    +                $p = $j;
    +                for ($i = $j + 1; $i < $this->m; ++$i) {
    +                    if (abs($LUcolj[$i]) > abs($LUcolj[$p])) {
    +                        $p = $i;
    +                    }
    +                }
    +                if ($p != $j) {
    +                    for ($k = 0; $k < $this->n; ++$k) {
    +                        $t = $this->LU[$p][$k];
    +                        $this->LU[$p][$k] = $this->LU[$j][$k];
    +                        $this->LU[$j][$k] = $t;
    +                    }
    +                    $k = $this->piv[$p];
    +                    $this->piv[$p] = $this->piv[$j];
    +                    $this->piv[$j] = $k;
    +                    $this->pivsign = $this->pivsign * -1;
    +                }
    +                // Compute multipliers.
    +                if (($j < $this->m) && ($this->LU[$j][$j] != 0.0)) {
    +                    for ($i = $j + 1; $i < $this->m; ++$i) {
    +                        $this->LU[$i][$j] /= $this->LU[$j][$j];
    +                    }
    +                }
    +            }
    +        } else {
    +            throw new CalculationException(Matrix::ARGUMENT_TYPE_EXCEPTION);
    +        }
    +    }
    +
    +    //    function __construct()
    +
    +    /**
    +     * Get lower triangular factor.
    +     *
    +     * @return Matrix Lower triangular factor
    +     */
    +    public function getL()
    +    {
    +        for ($i = 0; $i < $this->m; ++$i) {
    +            for ($j = 0; $j < $this->n; ++$j) {
    +                if ($i > $j) {
    +                    $L[$i][$j] = $this->LU[$i][$j];
    +                } elseif ($i == $j) {
    +                    $L[$i][$j] = 1.0;
    +                } else {
    +                    $L[$i][$j] = 0.0;
    +                }
    +            }
    +        }
    +
    +        return new Matrix($L);
    +    }
    +
    +    //    function getL()
    +
    +    /**
    +     * Get upper triangular factor.
    +     *
    +     * @return Matrix Upper triangular factor
    +     */
    +    public function getU()
    +    {
    +        for ($i = 0; $i < $this->n; ++$i) {
    +            for ($j = 0; $j < $this->n; ++$j) {
    +                if ($i <= $j) {
    +                    $U[$i][$j] = $this->LU[$i][$j];
    +                } else {
    +                    $U[$i][$j] = 0.0;
    +                }
    +            }
    +        }
    +
    +        return new Matrix($U);
    +    }
    +
    +    //    function getU()
    +
    +    /**
    +     * Return pivot permutation vector.
    +     *
    +     * @return array Pivot vector
    +     */
    +    public function getPivot()
    +    {
    +        return $this->piv;
    +    }
    +
    +    //    function getPivot()
    +
    +    /**
    +     * Alias for getPivot.
    +     *
    +     *    @see getPivot
    +     */
    +    public function getDoublePivot()
    +    {
    +        return $this->getPivot();
    +    }
    +
    +    //    function getDoublePivot()
    +
    +    /**
    +     *    Is the matrix nonsingular?
    +     *
    +     * @return bool true if U, and hence A, is nonsingular
    +     */
    +    public function isNonsingular()
    +    {
    +        for ($j = 0; $j < $this->n; ++$j) {
    +            if ($this->LU[$j][$j] == 0) {
    +                return false;
    +            }
    +        }
    +
    +        return true;
    +    }
    +
    +    //    function isNonsingular()
    +
    +    /**
    +     * Count determinants.
    +     *
    +     * @return array d matrix deterninat
    +     */
    +    public function det()
    +    {
    +        if ($this->m == $this->n) {
    +            $d = $this->pivsign;
    +            for ($j = 0; $j < $this->n; ++$j) {
    +                $d *= $this->LU[$j][$j];
    +            }
    +
    +            return $d;
    +        }
    +
    +        throw new CalculationException(Matrix::MATRIX_DIMENSION_EXCEPTION);
    +    }
    +
    +    //    function det()
    +
    +    /**
    +     * Solve A*X = B.
    +     *
    +     * @param mixed $B a Matrix with as many rows as A and any number of columns
    +     *
    +     * @throws CalculationException illegalArgumentException Matrix row dimensions must agree
    +     * @throws CalculationException runtimeException  Matrix is singular
    +     *
    +     * @return Matrix X so that L*U*X = B(piv,:)
    +     */
    +    public function solve($B)
    +    {
    +        if ($B->getRowDimension() == $this->m) {
    +            if ($this->isNonsingular()) {
    +                // Copy right hand side with pivoting
    +                $nx = $B->getColumnDimension();
    +                $X = $B->getMatrix($this->piv, 0, $nx - 1);
    +                // Solve L*Y = B(piv,:)
    +                for ($k = 0; $k < $this->n; ++$k) {
    +                    for ($i = $k + 1; $i < $this->n; ++$i) {
    +                        for ($j = 0; $j < $nx; ++$j) {
    +                            $X->A[$i][$j] -= $X->A[$k][$j] * $this->LU[$i][$k];
    +                        }
    +                    }
    +                }
    +                // Solve U*X = Y;
    +                for ($k = $this->n - 1; $k >= 0; --$k) {
    +                    for ($j = 0; $j < $nx; ++$j) {
    +                        $X->A[$k][$j] /= $this->LU[$k][$k];
    +                    }
    +                    for ($i = 0; $i < $k; ++$i) {
    +                        for ($j = 0; $j < $nx; ++$j) {
    +                            $X->A[$i][$j] -= $X->A[$k][$j] * $this->LU[$i][$k];
    +                        }
    +                    }
    +                }
    +
    +                return $X;
    +            }
    +
    +            throw new CalculationException(self::MATRIX_SINGULAR_EXCEPTION);
    +        }
    +
    +        throw new CalculationException(self::MATRIX_SQUARE_EXCEPTION);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/Matrix.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/Matrix.php
    new file mode 100644
    index 00000000000..b3d82d466cc
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/Matrix.php
    @@ -0,0 +1,1233 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Exception as CalculationException;
    +use PhpOffice\PhpSpreadsheet\Calculation\Functions;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +
    +/**
    + * Matrix class.
    + *
    + * @author Paul Meagher
    + * @author Michael Bommarito
    + * @author Lukasz Karapuda
    + * @author Bartek Matosiuk
    + *
    + * @version 1.8
    + *
    + * @see https://math.nist.gov/javanumerics/jama/
    + */
    +class Matrix
    +{
    +    const POLYMORPHIC_ARGUMENT_EXCEPTION = 'Invalid argument pattern for polymorphic function.';
    +    const ARGUMENT_TYPE_EXCEPTION = 'Invalid argument type.';
    +    const ARGUMENT_BOUNDS_EXCEPTION = 'Invalid argument range.';
    +    const MATRIX_DIMENSION_EXCEPTION = 'Matrix dimensions are not equal.';
    +    const ARRAY_LENGTH_EXCEPTION = 'Array length must be a multiple of m.';
    +    const MATRIX_SPD_EXCEPTION = 'Can only perform operation on symmetric positive definite matrix.';
    +
    +    /**
    +     * Matrix storage.
    +     *
    +     * @var array
    +     */
    +    public $A = [];
    +
    +    /**
    +     * Matrix row dimension.
    +     *
    +     * @var int
    +     */
    +    private $m;
    +
    +    /**
    +     * Matrix column dimension.
    +     *
    +     * @var int
    +     */
    +    private $n;
    +
    +    /**
    +     * Polymorphic constructor.
    +     *
    +     * As PHP has no support for polymorphic constructors, we use tricks to make our own sort of polymorphism using func_num_args, func_get_arg, and gettype. In essence, we're just implementing a simple RTTI filter and calling the appropriate constructor.
    +     */
    +    public function __construct(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                //Rectangular matrix - m x n initialized from 2D array
    +                case 'array':
    +                    $this->m = count($args[0]);
    +                    $this->n = count($args[0][0]);
    +                    $this->A = $args[0];
    +
    +                    break;
    +                //Square matrix - n x n
    +                case 'integer':
    +                    $this->m = $args[0];
    +                    $this->n = $args[0];
    +                    $this->A = array_fill(0, $this->m, array_fill(0, $this->n, 0));
    +
    +                    break;
    +                //Rectangular matrix - m x n
    +                case 'integer,integer':
    +                    $this->m = $args[0];
    +                    $this->n = $args[1];
    +                    $this->A = array_fill(0, $this->m, array_fill(0, $this->n, 0));
    +
    +                    break;
    +                //Rectangular matrix - m x n initialized from packed array
    +                case 'array,integer':
    +                    $this->m = $args[1];
    +                    if ($this->m != 0) {
    +                        $this->n = count($args[0]) / $this->m;
    +                    } else {
    +                        $this->n = 0;
    +                    }
    +                    if (($this->m * $this->n) == count($args[0])) {
    +                        for ($i = 0; $i < $this->m; ++$i) {
    +                            for ($j = 0; $j < $this->n; ++$j) {
    +                                $this->A[$i][$j] = $args[0][$i + $j * $this->m];
    +                            }
    +                        }
    +                    } else {
    +                        throw new CalculationException(self::ARRAY_LENGTH_EXCEPTION);
    +                    }
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +        } else {
    +            throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +        }
    +    }
    +
    +    /**
    +     * getArray.
    +     *
    +     * @return array Matrix array
    +     */
    +    public function getArray()
    +    {
    +        return $this->A;
    +    }
    +
    +    /**
    +     * getRowDimension.
    +     *
    +     * @return int Row dimension
    +     */
    +    public function getRowDimension()
    +    {
    +        return $this->m;
    +    }
    +
    +    /**
    +     * getColumnDimension.
    +     *
    +     * @return int Column dimension
    +     */
    +    public function getColumnDimension()
    +    {
    +        return $this->n;
    +    }
    +
    +    /**
    +     * get.
    +     *
    +     * Get the i,j-th element of the matrix.
    +     *
    +     * @param int $i Row position
    +     * @param int $j Column position
    +     *
    +     * @return mixed Element (int/float/double)
    +     */
    +    public function get($i = null, $j = null)
    +    {
    +        return $this->A[$i][$j];
    +    }
    +
    +    /**
    +     * getMatrix.
    +     *
    +     *    Get a submatrix
    +     *
    +     * @param int $i0 Initial row index
    +     * @param int $iF Final row index
    +     * @param int $j0 Initial column index
    +     * @param int $jF Final column index
    +     *
    +     * @return Matrix Submatrix
    +     */
    +    public function getMatrix(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                //A($i0...; $j0...)
    +                case 'integer,integer':
    +                    list($i0, $j0) = $args;
    +                    if ($i0 >= 0) {
    +                        $m = $this->m - $i0;
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_BOUNDS_EXCEPTION);
    +                    }
    +                    if ($j0 >= 0) {
    +                        $n = $this->n - $j0;
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_BOUNDS_EXCEPTION);
    +                    }
    +                    $R = new self($m, $n);
    +                    for ($i = $i0; $i < $this->m; ++$i) {
    +                        for ($j = $j0; $j < $this->n; ++$j) {
    +                            $R->set($i, $j, $this->A[$i][$j]);
    +                        }
    +                    }
    +
    +                    return $R;
    +
    +                    break;
    +                //A($i0...$iF; $j0...$jF)
    +                case 'integer,integer,integer,integer':
    +                    list($i0, $iF, $j0, $jF) = $args;
    +                    if (($iF > $i0) && ($this->m >= $iF) && ($i0 >= 0)) {
    +                        $m = $iF - $i0;
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_BOUNDS_EXCEPTION);
    +                    }
    +                    if (($jF > $j0) && ($this->n >= $jF) && ($j0 >= 0)) {
    +                        $n = $jF - $j0;
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_BOUNDS_EXCEPTION);
    +                    }
    +                    $R = new self($m + 1, $n + 1);
    +                    for ($i = $i0; $i <= $iF; ++$i) {
    +                        for ($j = $j0; $j <= $jF; ++$j) {
    +                            $R->set($i - $i0, $j - $j0, $this->A[$i][$j]);
    +                        }
    +                    }
    +
    +                    return $R;
    +
    +                    break;
    +                //$R = array of row indices; $C = array of column indices
    +                case 'array,array':
    +                    list($RL, $CL) = $args;
    +                    if (count($RL) > 0) {
    +                        $m = count($RL);
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_BOUNDS_EXCEPTION);
    +                    }
    +                    if (count($CL) > 0) {
    +                        $n = count($CL);
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_BOUNDS_EXCEPTION);
    +                    }
    +                    $R = new self($m, $n);
    +                    for ($i = 0; $i < $m; ++$i) {
    +                        for ($j = 0; $j < $n; ++$j) {
    +                            $R->set($i, $j, $this->A[$RL[$i]][$CL[$j]]);
    +                        }
    +                    }
    +
    +                    return $R;
    +
    +                    break;
    +                //A($i0...$iF); $CL = array of column indices
    +                case 'integer,integer,array':
    +                    list($i0, $iF, $CL) = $args;
    +                    if (($iF > $i0) && ($this->m >= $iF) && ($i0 >= 0)) {
    +                        $m = $iF - $i0;
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_BOUNDS_EXCEPTION);
    +                    }
    +                    if (count($CL) > 0) {
    +                        $n = count($CL);
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_BOUNDS_EXCEPTION);
    +                    }
    +                    $R = new self($m, $n);
    +                    for ($i = $i0; $i < $iF; ++$i) {
    +                        for ($j = 0; $j < $n; ++$j) {
    +                            $R->set($i - $i0, $j, $this->A[$i][$CL[$j]]);
    +                        }
    +                    }
    +
    +                    return $R;
    +
    +                    break;
    +                //$RL = array of row indices
    +                case 'array,integer,integer':
    +                    list($RL, $j0, $jF) = $args;
    +                    if (count($RL) > 0) {
    +                        $m = count($RL);
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_BOUNDS_EXCEPTION);
    +                    }
    +                    if (($jF >= $j0) && ($this->n >= $jF) && ($j0 >= 0)) {
    +                        $n = $jF - $j0;
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_BOUNDS_EXCEPTION);
    +                    }
    +                    $R = new self($m, $n + 1);
    +                    for ($i = 0; $i < $m; ++$i) {
    +                        for ($j = $j0; $j <= $jF; ++$j) {
    +                            $R->set($i, $j - $j0, $this->A[$RL[$i]][$j]);
    +                        }
    +                    }
    +
    +                    return $R;
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +        } else {
    +            throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +        }
    +    }
    +
    +    /**
    +     * checkMatrixDimensions.
    +     *
    +     *    Is matrix B the same size?
    +     *
    +     * @param Matrix $B Matrix B
    +     *
    +     * @return bool
    +     */
    +    public function checkMatrixDimensions($B = null)
    +    {
    +        if ($B instanceof self) {
    +            if (($this->m == $B->getRowDimension()) && ($this->n == $B->getColumnDimension())) {
    +                return true;
    +            }
    +
    +            throw new CalculationException(self::MATRIX_DIMENSION_EXCEPTION);
    +        }
    +
    +        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +    }
    +
    +    //    function checkMatrixDimensions()
    +
    +    /**
    +     * set.
    +     *
    +     * Set the i,j-th element of the matrix.
    +     *
    +     * @param int $i Row position
    +     * @param int $j Column position
    +     * @param mixed $c Int/float/double value
    +     *
    +     * @return mixed Element (int/float/double)
    +     */
    +    public function set($i = null, $j = null, $c = null)
    +    {
    +        // Optimized set version just has this
    +        $this->A[$i][$j] = $c;
    +    }
    +
    +    //    function set()
    +
    +    /**
    +     * identity.
    +     *
    +     * Generate an identity matrix.
    +     *
    +     * @param int $m Row dimension
    +     * @param int $n Column dimension
    +     *
    +     * @return Matrix Identity matrix
    +     */
    +    public function identity($m = null, $n = null)
    +    {
    +        return $this->diagonal($m, $n, 1);
    +    }
    +
    +    /**
    +     * diagonal.
    +     *
    +     *    Generate a diagonal matrix
    +     *
    +     * @param int $m Row dimension
    +     * @param int $n Column dimension
    +     * @param mixed $c Diagonal value
    +     *
    +     * @return Matrix Diagonal matrix
    +     */
    +    public function diagonal($m = null, $n = null, $c = 1)
    +    {
    +        $R = new self($m, $n);
    +        for ($i = 0; $i < $m; ++$i) {
    +            $R->set($i, $i, $c);
    +        }
    +
    +        return $R;
    +    }
    +
    +    /**
    +     * getMatrixByRow.
    +     *
    +     *    Get a submatrix by row index/range
    +     *
    +     * @param int $i0 Initial row index
    +     * @param int $iF Final row index
    +     *
    +     * @return Matrix Submatrix
    +     */
    +    public function getMatrixByRow($i0 = null, $iF = null)
    +    {
    +        if (is_int($i0)) {
    +            if (is_int($iF)) {
    +                return $this->getMatrix($i0, 0, $iF + 1, $this->n);
    +            }
    +
    +            return $this->getMatrix($i0, 0, $i0 + 1, $this->n);
    +        }
    +
    +        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +    }
    +
    +    /**
    +     * getMatrixByCol.
    +     *
    +     *    Get a submatrix by column index/range
    +     *
    +     * @param int $j0 Initial column index
    +     * @param int $jF Final column index
    +     *
    +     * @return Matrix Submatrix
    +     */
    +    public function getMatrixByCol($j0 = null, $jF = null)
    +    {
    +        if (is_int($j0)) {
    +            if (is_int($jF)) {
    +                return $this->getMatrix(0, $j0, $this->m, $jF + 1);
    +            }
    +
    +            return $this->getMatrix(0, $j0, $this->m, $j0 + 1);
    +        }
    +
    +        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +    }
    +
    +    /**
    +     * transpose.
    +     *
    +     *    Tranpose matrix
    +     *
    +     * @return Matrix Transposed matrix
    +     */
    +    public function transpose()
    +    {
    +        $R = new self($this->n, $this->m);
    +        for ($i = 0; $i < $this->m; ++$i) {
    +            for ($j = 0; $j < $this->n; ++$j) {
    +                $R->set($j, $i, $this->A[$i][$j]);
    +            }
    +        }
    +
    +        return $R;
    +    }
    +
    +    //    function transpose()
    +
    +    /**
    +     * trace.
    +     *
    +     *    Sum of diagonal elements
    +     *
    +     * @return float Sum of diagonal elements
    +     */
    +    public function trace()
    +    {
    +        $s = 0;
    +        $n = min($this->m, $this->n);
    +        for ($i = 0; $i < $n; ++$i) {
    +            $s += $this->A[$i][$i];
    +        }
    +
    +        return $s;
    +    }
    +
    +    /**
    +     * uminus.
    +     *
    +     *    Unary minus matrix -A
    +     *
    +     * @return Matrix Unary minus matrix
    +     */
    +    public function uminus()
    +    {
    +    }
    +
    +    /**
    +     * plus.
    +     *
    +     *    A + B
    +     *
    +     * @param mixed $B Matrix/Array
    +     *
    +     * @return Matrix Sum
    +     */
    +    public function plus(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $M->set($i, $j, $M->get($i, $j) + $this->A[$i][$j]);
    +                }
    +            }
    +
    +            return $M;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * plusEquals.
    +     *
    +     *    A = A + B
    +     *
    +     * @param mixed $B Matrix/Array
    +     *
    +     * @return Matrix Sum
    +     */
    +    public function plusEquals(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $validValues = true;
    +                    $value = $M->get($i, $j);
    +                    if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) {
    +                        $this->A[$i][$j] = trim($this->A[$i][$j], '"');
    +                        $validValues &= StringHelper::convertToNumberIfFraction($this->A[$i][$j]);
    +                    }
    +                    if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) {
    +                        $value = trim($value, '"');
    +                        $validValues &= StringHelper::convertToNumberIfFraction($value);
    +                    }
    +                    if ($validValues) {
    +                        $this->A[$i][$j] += $value;
    +                    } else {
    +                        $this->A[$i][$j] = Functions::NAN();
    +                    }
    +                }
    +            }
    +
    +            return $this;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * minus.
    +     *
    +     *    A - B
    +     *
    +     * @param mixed $B Matrix/Array
    +     *
    +     * @return Matrix Sum
    +     */
    +    public function minus(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $M->set($i, $j, $M->get($i, $j) - $this->A[$i][$j]);
    +                }
    +            }
    +
    +            return $M;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * minusEquals.
    +     *
    +     *    A = A - B
    +     *
    +     * @param mixed $B Matrix/Array
    +     *
    +     * @return Matrix Sum
    +     */
    +    public function minusEquals(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $validValues = true;
    +                    $value = $M->get($i, $j);
    +                    if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) {
    +                        $this->A[$i][$j] = trim($this->A[$i][$j], '"');
    +                        $validValues &= StringHelper::convertToNumberIfFraction($this->A[$i][$j]);
    +                    }
    +                    if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) {
    +                        $value = trim($value, '"');
    +                        $validValues &= StringHelper::convertToNumberIfFraction($value);
    +                    }
    +                    if ($validValues) {
    +                        $this->A[$i][$j] -= $value;
    +                    } else {
    +                        $this->A[$i][$j] = Functions::NAN();
    +                    }
    +                }
    +            }
    +
    +            return $this;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * arrayTimes.
    +     *
    +     *    Element-by-element multiplication
    +     *    Cij = Aij * Bij
    +     *
    +     * @param mixed $B Matrix/Array
    +     *
    +     * @return Matrix Matrix Cij
    +     */
    +    public function arrayTimes(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $M->set($i, $j, $M->get($i, $j) * $this->A[$i][$j]);
    +                }
    +            }
    +
    +            return $M;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * arrayTimesEquals.
    +     *
    +     *    Element-by-element multiplication
    +     *    Aij = Aij * Bij
    +     *
    +     * @param mixed $B Matrix/Array
    +     *
    +     * @return Matrix Matrix Aij
    +     */
    +    public function arrayTimesEquals(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $validValues = true;
    +                    $value = $M->get($i, $j);
    +                    if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) {
    +                        $this->A[$i][$j] = trim($this->A[$i][$j], '"');
    +                        $validValues &= StringHelper::convertToNumberIfFraction($this->A[$i][$j]);
    +                    }
    +                    if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) {
    +                        $value = trim($value, '"');
    +                        $validValues &= StringHelper::convertToNumberIfFraction($value);
    +                    }
    +                    if ($validValues) {
    +                        $this->A[$i][$j] *= $value;
    +                    } else {
    +                        $this->A[$i][$j] = Functions::NAN();
    +                    }
    +                }
    +            }
    +
    +            return $this;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * arrayRightDivide.
    +     *
    +     *    Element-by-element right division
    +     *    A / B
    +     *
    +     * @param Matrix $B Matrix B
    +     *
    +     * @return Matrix Division result
    +     */
    +    public function arrayRightDivide(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $validValues = true;
    +                    $value = $M->get($i, $j);
    +                    if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) {
    +                        $this->A[$i][$j] = trim($this->A[$i][$j], '"');
    +                        $validValues &= StringHelper::convertToNumberIfFraction($this->A[$i][$j]);
    +                    }
    +                    if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) {
    +                        $value = trim($value, '"');
    +                        $validValues &= StringHelper::convertToNumberIfFraction($value);
    +                    }
    +                    if ($validValues) {
    +                        if ($value == 0) {
    +                            //    Trap for Divide by Zero error
    +                            $M->set($i, $j, '#DIV/0!');
    +                        } else {
    +                            $M->set($i, $j, $this->A[$i][$j] / $value);
    +                        }
    +                    } else {
    +                        $M->set($i, $j, Functions::NAN());
    +                    }
    +                }
    +            }
    +
    +            return $M;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * arrayRightDivideEquals.
    +     *
    +     *    Element-by-element right division
    +     *    Aij = Aij / Bij
    +     *
    +     * @param mixed $B Matrix/Array
    +     *
    +     * @return Matrix Matrix Aij
    +     */
    +    public function arrayRightDivideEquals(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $this->A[$i][$j] = $this->A[$i][$j] / $M->get($i, $j);
    +                }
    +            }
    +
    +            return $M;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * arrayLeftDivide.
    +     *
    +     *    Element-by-element Left division
    +     *    A / B
    +     *
    +     * @param Matrix $B Matrix B
    +     *
    +     * @return Matrix Division result
    +     */
    +    public function arrayLeftDivide(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $M->set($i, $j, $M->get($i, $j) / $this->A[$i][$j]);
    +                }
    +            }
    +
    +            return $M;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * arrayLeftDivideEquals.
    +     *
    +     *    Element-by-element Left division
    +     *    Aij = Aij / Bij
    +     *
    +     * @param mixed $B Matrix/Array
    +     *
    +     * @return Matrix Matrix Aij
    +     */
    +    public function arrayLeftDivideEquals(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $this->A[$i][$j] = $M->get($i, $j) / $this->A[$i][$j];
    +                }
    +            }
    +
    +            return $M;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * times.
    +     *
    +     *    Matrix multiplication
    +     *
    +     * @param mixed $n Matrix/Array/Scalar
    +     *
    +     * @return Matrix Product
    +     */
    +    public function times(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $B = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +                    if ($this->n == $B->m) {
    +                        $C = new self($this->m, $B->n);
    +                        for ($j = 0; $j < $B->n; ++$j) {
    +                            $Bcolj = [];
    +                            for ($k = 0; $k < $this->n; ++$k) {
    +                                $Bcolj[$k] = $B->A[$k][$j];
    +                            }
    +                            for ($i = 0; $i < $this->m; ++$i) {
    +                                $Arowi = $this->A[$i];
    +                                $s = 0;
    +                                for ($k = 0; $k < $this->n; ++$k) {
    +                                    $s += $Arowi[$k] * $Bcolj[$k];
    +                                }
    +                                $C->A[$i][$j] = $s;
    +                            }
    +                        }
    +
    +                        return $C;
    +                    }
    +
    +                    throw new CalculationException(self::MATRIX_DIMENSION_EXCEPTION);
    +                case 'array':
    +                    $B = new self($args[0]);
    +                    if ($this->n == $B->m) {
    +                        $C = new self($this->m, $B->n);
    +                        for ($i = 0; $i < $C->m; ++$i) {
    +                            for ($j = 0; $j < $C->n; ++$j) {
    +                                $s = '0';
    +                                for ($k = 0; $k < $C->n; ++$k) {
    +                                    $s += $this->A[$i][$k] * $B->A[$k][$j];
    +                                }
    +                                $C->A[$i][$j] = $s;
    +                            }
    +                        }
    +
    +                        return $C;
    +                    }
    +
    +                    throw new CalculationException(self::MATRIX_DIMENSION_EXCEPTION);
    +                case 'integer':
    +                    $C = new self($this->A);
    +                    for ($i = 0; $i < $C->m; ++$i) {
    +                        for ($j = 0; $j < $C->n; ++$j) {
    +                            $C->A[$i][$j] *= $args[0];
    +                        }
    +                    }
    +
    +                    return $C;
    +                case 'double':
    +                    $C = new self($this->m, $this->n);
    +                    for ($i = 0; $i < $C->m; ++$i) {
    +                        for ($j = 0; $j < $C->n; ++$j) {
    +                            $C->A[$i][$j] = $args[0] * $this->A[$i][$j];
    +                        }
    +                    }
    +
    +                    return $C;
    +                case 'float':
    +                    $C = new self($this->A);
    +                    for ($i = 0; $i < $C->m; ++$i) {
    +                        for ($j = 0; $j < $C->n; ++$j) {
    +                            $C->A[$i][$j] *= $args[0];
    +                        }
    +                    }
    +
    +                    return $C;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +            }
    +        } else {
    +            throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +        }
    +    }
    +
    +    /**
    +     * power.
    +     *
    +     *    A = A ^ B
    +     *
    +     * @param mixed $B Matrix/Array
    +     *
    +     * @return Matrix Sum
    +     */
    +    public function power(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $validValues = true;
    +                    $value = $M->get($i, $j);
    +                    if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) {
    +                        $this->A[$i][$j] = trim($this->A[$i][$j], '"');
    +                        $validValues &= StringHelper::convertToNumberIfFraction($this->A[$i][$j]);
    +                    }
    +                    if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) {
    +                        $value = trim($value, '"');
    +                        $validValues &= StringHelper::convertToNumberIfFraction($value);
    +                    }
    +                    if ($validValues) {
    +                        $this->A[$i][$j] = pow($this->A[$i][$j], $value);
    +                    } else {
    +                        $this->A[$i][$j] = Functions::NAN();
    +                    }
    +                }
    +            }
    +
    +            return $this;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * concat.
    +     *
    +     *    A = A & B
    +     *
    +     * @param mixed $B Matrix/Array
    +     *
    +     * @return Matrix Sum
    +     */
    +    public function concat(...$args)
    +    {
    +        if (count($args) > 0) {
    +            $match = implode(',', array_map('gettype', $args));
    +
    +            switch ($match) {
    +                case 'object':
    +                    if ($args[0] instanceof self) {
    +                        $M = $args[0];
    +                    } else {
    +                        throw new CalculationException(self::ARGUMENT_TYPE_EXCEPTION);
    +                    }
    +
    +                    break;
    +                case 'array':
    +                    $M = new self($args[0]);
    +
    +                    break;
    +                default:
    +                    throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +
    +                    break;
    +            }
    +            $this->checkMatrixDimensions($M);
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                for ($j = 0; $j < $this->n; ++$j) {
    +                    $this->A[$i][$j] = trim($this->A[$i][$j], '"') . trim($M->get($i, $j), '"');
    +                }
    +            }
    +
    +            return $this;
    +        }
    +
    +        throw new CalculationException(self::POLYMORPHIC_ARGUMENT_EXCEPTION);
    +    }
    +
    +    /**
    +     * Solve A*X = B.
    +     *
    +     * @param Matrix $B Right hand side
    +     *
    +     * @return Matrix ... Solution if A is square, least squares solution otherwise
    +     */
    +    public function solve($B)
    +    {
    +        if ($this->m == $this->n) {
    +            $LU = new LUDecomposition($this);
    +
    +            return $LU->solve($B);
    +        }
    +        $QR = new QRDecomposition($this);
    +
    +        return $QR->solve($B);
    +    }
    +
    +    /**
    +     * Matrix inverse or pseudoinverse.
    +     *
    +     * @return Matrix ... Inverse(A) if A is square, pseudoinverse otherwise.
    +     */
    +    public function inverse()
    +    {
    +        return $this->solve($this->identity($this->m, $this->m));
    +    }
    +
    +    /**
    +     * det.
    +     *
    +     *    Calculate determinant
    +     *
    +     * @return float Determinant
    +     */
    +    public function det()
    +    {
    +        $L = new LUDecomposition($this);
    +
    +        return $L->det();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/QRDecomposition.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/QRDecomposition.php
    new file mode 100644
    index 00000000000..e666d74b6a3
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/QRDecomposition.php
    @@ -0,0 +1,249 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Exception as CalculationException;
    +
    +/**
    + *    For an m-by-n matrix A with m >= n, the QR decomposition is an m-by-n
    + *    orthogonal matrix Q and an n-by-n upper triangular matrix R so that
    + *    A = Q*R.
    + *
    + *    The QR decompostion always exists, even if the matrix does not have
    + *    full rank, so the constructor will never fail.  The primary use of the
    + *    QR decomposition is in the least squares solution of nonsquare systems
    + *    of simultaneous linear equations.  This will fail if isFullRank()
    + *    returns false.
    + *
    + *    @author  Paul Meagher
    + *
    + *    @version 1.1
    + */
    +class QRDecomposition
    +{
    +    const MATRIX_RANK_EXCEPTION = 'Can only perform operation on full-rank matrix.';
    +
    +    /**
    +     * Array for internal storage of decomposition.
    +     *
    +     * @var array
    +     */
    +    private $QR = [];
    +
    +    /**
    +     * Row dimension.
    +     *
    +     * @var int
    +     */
    +    private $m;
    +
    +    /**
    +     * Column dimension.
    +     *
    +     * @var int
    +     */
    +    private $n;
    +
    +    /**
    +     * Array for internal storage of diagonal of R.
    +     *
    +     * @var array
    +     */
    +    private $Rdiag = [];
    +
    +    /**
    +     * QR Decomposition computed by Householder reflections.
    +     *
    +     * @param matrix $A Rectangular matrix
    +     */
    +    public function __construct($A)
    +    {
    +        if ($A instanceof Matrix) {
    +            // Initialize.
    +            $this->QR = $A->getArrayCopy();
    +            $this->m = $A->getRowDimension();
    +            $this->n = $A->getColumnDimension();
    +            // Main loop.
    +            for ($k = 0; $k < $this->n; ++$k) {
    +                // Compute 2-norm of k-th column without under/overflow.
    +                $nrm = 0.0;
    +                for ($i = $k; $i < $this->m; ++$i) {
    +                    $nrm = hypo($nrm, $this->QR[$i][$k]);
    +                }
    +                if ($nrm != 0.0) {
    +                    // Form k-th Householder vector.
    +                    if ($this->QR[$k][$k] < 0) {
    +                        $nrm = -$nrm;
    +                    }
    +                    for ($i = $k; $i < $this->m; ++$i) {
    +                        $this->QR[$i][$k] /= $nrm;
    +                    }
    +                    $this->QR[$k][$k] += 1.0;
    +                    // Apply transformation to remaining columns.
    +                    for ($j = $k + 1; $j < $this->n; ++$j) {
    +                        $s = 0.0;
    +                        for ($i = $k; $i < $this->m; ++$i) {
    +                            $s += $this->QR[$i][$k] * $this->QR[$i][$j];
    +                        }
    +                        $s = -$s / $this->QR[$k][$k];
    +                        for ($i = $k; $i < $this->m; ++$i) {
    +                            $this->QR[$i][$j] += $s * $this->QR[$i][$k];
    +                        }
    +                    }
    +                }
    +                $this->Rdiag[$k] = -$nrm;
    +            }
    +        } else {
    +            throw new CalculationException(Matrix::ARGUMENT_TYPE_EXCEPTION);
    +        }
    +    }
    +
    +    //    function __construct()
    +
    +    /**
    +     *    Is the matrix full rank?
    +     *
    +     * @return bool true if R, and hence A, has full rank, else false
    +     */
    +    public function isFullRank()
    +    {
    +        for ($j = 0; $j < $this->n; ++$j) {
    +            if ($this->Rdiag[$j] == 0) {
    +                return false;
    +            }
    +        }
    +
    +        return true;
    +    }
    +
    +    //    function isFullRank()
    +
    +    /**
    +     * Return the Householder vectors.
    +     *
    +     * @return Matrix Lower trapezoidal matrix whose columns define the reflections
    +     */
    +    public function getH()
    +    {
    +        $H = [];
    +        for ($i = 0; $i < $this->m; ++$i) {
    +            for ($j = 0; $j < $this->n; ++$j) {
    +                if ($i >= $j) {
    +                    $H[$i][$j] = $this->QR[$i][$j];
    +                } else {
    +                    $H[$i][$j] = 0.0;
    +                }
    +            }
    +        }
    +
    +        return new Matrix($H);
    +    }
    +
    +    //    function getH()
    +
    +    /**
    +     * Return the upper triangular factor.
    +     *
    +     * @return Matrix upper triangular factor
    +     */
    +    public function getR()
    +    {
    +        $R = [];
    +        for ($i = 0; $i < $this->n; ++$i) {
    +            for ($j = 0; $j < $this->n; ++$j) {
    +                if ($i < $j) {
    +                    $R[$i][$j] = $this->QR[$i][$j];
    +                } elseif ($i == $j) {
    +                    $R[$i][$j] = $this->Rdiag[$i];
    +                } else {
    +                    $R[$i][$j] = 0.0;
    +                }
    +            }
    +        }
    +
    +        return new Matrix($R);
    +    }
    +
    +    //    function getR()
    +
    +    /**
    +     * Generate and return the (economy-sized) orthogonal factor.
    +     *
    +     * @return Matrix orthogonal factor
    +     */
    +    public function getQ()
    +    {
    +        $Q = [];
    +        for ($k = $this->n - 1; $k >= 0; --$k) {
    +            for ($i = 0; $i < $this->m; ++$i) {
    +                $Q[$i][$k] = 0.0;
    +            }
    +            $Q[$k][$k] = 1.0;
    +            for ($j = $k; $j < $this->n; ++$j) {
    +                if ($this->QR[$k][$k] != 0) {
    +                    $s = 0.0;
    +                    for ($i = $k; $i < $this->m; ++$i) {
    +                        $s += $this->QR[$i][$k] * $Q[$i][$j];
    +                    }
    +                    $s = -$s / $this->QR[$k][$k];
    +                    for ($i = $k; $i < $this->m; ++$i) {
    +                        $Q[$i][$j] += $s * $this->QR[$i][$k];
    +                    }
    +                }
    +            }
    +        }
    +
    +        return new Matrix($Q);
    +    }
    +
    +    //    function getQ()
    +
    +    /**
    +     * Least squares solution of A*X = B.
    +     *
    +     * @param Matrix $B a Matrix with as many rows as A and any number of columns
    +     *
    +     * @return Matrix matrix that minimizes the two norm of Q*R*X-B
    +     */
    +    public function solve($B)
    +    {
    +        if ($B->getRowDimension() == $this->m) {
    +            if ($this->isFullRank()) {
    +                // Copy right hand side
    +                $nx = $B->getColumnDimension();
    +                $X = $B->getArrayCopy();
    +                // Compute Y = transpose(Q)*B
    +                for ($k = 0; $k < $this->n; ++$k) {
    +                    for ($j = 0; $j < $nx; ++$j) {
    +                        $s = 0.0;
    +                        for ($i = $k; $i < $this->m; ++$i) {
    +                            $s += $this->QR[$i][$k] * $X[$i][$j];
    +                        }
    +                        $s = -$s / $this->QR[$k][$k];
    +                        for ($i = $k; $i < $this->m; ++$i) {
    +                            $X[$i][$j] += $s * $this->QR[$i][$k];
    +                        }
    +                    }
    +                }
    +                // Solve R*X = Y;
    +                for ($k = $this->n - 1; $k >= 0; --$k) {
    +                    for ($j = 0; $j < $nx; ++$j) {
    +                        $X[$k][$j] /= $this->Rdiag[$k];
    +                    }
    +                    for ($i = 0; $i < $k; ++$i) {
    +                        for ($j = 0; $j < $nx; ++$j) {
    +                            $X[$i][$j] -= $X[$k][$j] * $this->QR[$i][$k];
    +                        }
    +                    }
    +                }
    +                $X = new Matrix($X);
    +
    +                return $X->getMatrix(0, $this->n - 1, 0, $nx);
    +            }
    +
    +            throw new CalculationException(self::MATRIX_RANK_EXCEPTION);
    +        }
    +
    +        throw new CalculationException(Matrix::MATRIX_DIMENSION_EXCEPTION);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/SingularValueDecomposition.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/SingularValueDecomposition.php
    new file mode 100644
    index 00000000000..3ca95619c86
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/SingularValueDecomposition.php
    @@ -0,0 +1,528 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA;
    +
    +/**
    + *    For an m-by-n matrix A with m >= n, the singular value decomposition is
    + *    an m-by-n orthogonal matrix U, an n-by-n diagonal matrix S, and
    + *    an n-by-n orthogonal matrix V so that A = U*S*V'.
    + *
    + *    The singular values, sigma[$k] = S[$k][$k], are ordered so that
    + *    sigma[0] >= sigma[1] >= ... >= sigma[n-1].
    + *
    + *    The singular value decompostion always exists, so the constructor will
    + *    never fail.  The matrix condition number and the effective numerical
    + *    rank can be computed from this decomposition.
    + *
    + *    @author  Paul Meagher
    + *
    + *    @version 1.1
    + */
    +class SingularValueDecomposition
    +{
    +    /**
    +     * Internal storage of U.
    +     *
    +     * @var array
    +     */
    +    private $U = [];
    +
    +    /**
    +     * Internal storage of V.
    +     *
    +     * @var array
    +     */
    +    private $V = [];
    +
    +    /**
    +     * Internal storage of singular values.
    +     *
    +     * @var array
    +     */
    +    private $s = [];
    +
    +    /**
    +     * Row dimension.
    +     *
    +     * @var int
    +     */
    +    private $m;
    +
    +    /**
    +     * Column dimension.
    +     *
    +     * @var int
    +     */
    +    private $n;
    +
    +    /**
    +     * Construct the singular value decomposition.
    +     *
    +     * Derived from LINPACK code.
    +     *
    +     * @param mixed $Arg Rectangular matrix
    +     */
    +    public function __construct($Arg)
    +    {
    +        // Initialize.
    +        $A = $Arg->getArrayCopy();
    +        $this->m = $Arg->getRowDimension();
    +        $this->n = $Arg->getColumnDimension();
    +        $nu = min($this->m, $this->n);
    +        $e = [];
    +        $work = [];
    +        $wantu = true;
    +        $wantv = true;
    +        $nct = min($this->m - 1, $this->n);
    +        $nrt = max(0, min($this->n - 2, $this->m));
    +
    +        // Reduce A to bidiagonal form, storing the diagonal elements
    +        // in s and the super-diagonal elements in e.
    +        $kMax = max($nct, $nrt);
    +        for ($k = 0; $k < $kMax; ++$k) {
    +            if ($k < $nct) {
    +                // Compute the transformation for the k-th column and
    +                // place the k-th diagonal in s[$k].
    +                // Compute 2-norm of k-th column without under/overflow.
    +                $this->s[$k] = 0;
    +                for ($i = $k; $i < $this->m; ++$i) {
    +                    $this->s[$k] = hypo($this->s[$k], $A[$i][$k]);
    +                }
    +                if ($this->s[$k] != 0.0) {
    +                    if ($A[$k][$k] < 0.0) {
    +                        $this->s[$k] = -$this->s[$k];
    +                    }
    +                    for ($i = $k; $i < $this->m; ++$i) {
    +                        $A[$i][$k] /= $this->s[$k];
    +                    }
    +                    $A[$k][$k] += 1.0;
    +                }
    +                $this->s[$k] = -$this->s[$k];
    +            }
    +
    +            for ($j = $k + 1; $j < $this->n; ++$j) {
    +                if (($k < $nct) & ($this->s[$k] != 0.0)) {
    +                    // Apply the transformation.
    +                    $t = 0;
    +                    for ($i = $k; $i < $this->m; ++$i) {
    +                        $t += $A[$i][$k] * $A[$i][$j];
    +                    }
    +                    $t = -$t / $A[$k][$k];
    +                    for ($i = $k; $i < $this->m; ++$i) {
    +                        $A[$i][$j] += $t * $A[$i][$k];
    +                    }
    +                    // Place the k-th row of A into e for the
    +                    // subsequent calculation of the row transformation.
    +                    $e[$j] = $A[$k][$j];
    +                }
    +            }
    +
    +            if ($wantu and ($k < $nct)) {
    +                // Place the transformation in U for subsequent back
    +                // multiplication.
    +                for ($i = $k; $i < $this->m; ++$i) {
    +                    $this->U[$i][$k] = $A[$i][$k];
    +                }
    +            }
    +
    +            if ($k < $nrt) {
    +                // Compute the k-th row transformation and place the
    +                // k-th super-diagonal in e[$k].
    +                // Compute 2-norm without under/overflow.
    +                $e[$k] = 0;
    +                for ($i = $k + 1; $i < $this->n; ++$i) {
    +                    $e[$k] = hypo($e[$k], $e[$i]);
    +                }
    +                if ($e[$k] != 0.0) {
    +                    if ($e[$k + 1] < 0.0) {
    +                        $e[$k] = -$e[$k];
    +                    }
    +                    for ($i = $k + 1; $i < $this->n; ++$i) {
    +                        $e[$i] /= $e[$k];
    +                    }
    +                    $e[$k + 1] += 1.0;
    +                }
    +                $e[$k] = -$e[$k];
    +                if (($k + 1 < $this->m) and ($e[$k] != 0.0)) {
    +                    // Apply the transformation.
    +                    for ($i = $k + 1; $i < $this->m; ++$i) {
    +                        $work[$i] = 0.0;
    +                    }
    +                    for ($j = $k + 1; $j < $this->n; ++$j) {
    +                        for ($i = $k + 1; $i < $this->m; ++$i) {
    +                            $work[$i] += $e[$j] * $A[$i][$j];
    +                        }
    +                    }
    +                    for ($j = $k + 1; $j < $this->n; ++$j) {
    +                        $t = -$e[$j] / $e[$k + 1];
    +                        for ($i = $k + 1; $i < $this->m; ++$i) {
    +                            $A[$i][$j] += $t * $work[$i];
    +                        }
    +                    }
    +                }
    +                if ($wantv) {
    +                    // Place the transformation in V for subsequent
    +                    // back multiplication.
    +                    for ($i = $k + 1; $i < $this->n; ++$i) {
    +                        $this->V[$i][$k] = $e[$i];
    +                    }
    +                }
    +            }
    +        }
    +
    +        // Set up the final bidiagonal matrix or order p.
    +        $p = min($this->n, $this->m + 1);
    +        if ($nct < $this->n) {
    +            $this->s[$nct] = $A[$nct][$nct];
    +        }
    +        if ($this->m < $p) {
    +            $this->s[$p - 1] = 0.0;
    +        }
    +        if ($nrt + 1 < $p) {
    +            $e[$nrt] = $A[$nrt][$p - 1];
    +        }
    +        $e[$p - 1] = 0.0;
    +        // If required, generate U.
    +        if ($wantu) {
    +            for ($j = $nct; $j < $nu; ++$j) {
    +                for ($i = 0; $i < $this->m; ++$i) {
    +                    $this->U[$i][$j] = 0.0;
    +                }
    +                $this->U[$j][$j] = 1.0;
    +            }
    +            for ($k = $nct - 1; $k >= 0; --$k) {
    +                if ($this->s[$k] != 0.0) {
    +                    for ($j = $k + 1; $j < $nu; ++$j) {
    +                        $t = 0;
    +                        for ($i = $k; $i < $this->m; ++$i) {
    +                            $t += $this->U[$i][$k] * $this->U[$i][$j];
    +                        }
    +                        $t = -$t / $this->U[$k][$k];
    +                        for ($i = $k; $i < $this->m; ++$i) {
    +                            $this->U[$i][$j] += $t * $this->U[$i][$k];
    +                        }
    +                    }
    +                    for ($i = $k; $i < $this->m; ++$i) {
    +                        $this->U[$i][$k] = -$this->U[$i][$k];
    +                    }
    +                    $this->U[$k][$k] = 1.0 + $this->U[$k][$k];
    +                    for ($i = 0; $i < $k - 1; ++$i) {
    +                        $this->U[$i][$k] = 0.0;
    +                    }
    +                } else {
    +                    for ($i = 0; $i < $this->m; ++$i) {
    +                        $this->U[$i][$k] = 0.0;
    +                    }
    +                    $this->U[$k][$k] = 1.0;
    +                }
    +            }
    +        }
    +
    +        // If required, generate V.
    +        if ($wantv) {
    +            for ($k = $this->n - 1; $k >= 0; --$k) {
    +                if (($k < $nrt) and ($e[$k] != 0.0)) {
    +                    for ($j = $k + 1; $j < $nu; ++$j) {
    +                        $t = 0;
    +                        for ($i = $k + 1; $i < $this->n; ++$i) {
    +                            $t += $this->V[$i][$k] * $this->V[$i][$j];
    +                        }
    +                        $t = -$t / $this->V[$k + 1][$k];
    +                        for ($i = $k + 1; $i < $this->n; ++$i) {
    +                            $this->V[$i][$j] += $t * $this->V[$i][$k];
    +                        }
    +                    }
    +                }
    +                for ($i = 0; $i < $this->n; ++$i) {
    +                    $this->V[$i][$k] = 0.0;
    +                }
    +                $this->V[$k][$k] = 1.0;
    +            }
    +        }
    +
    +        // Main iteration loop for the singular values.
    +        $pp = $p - 1;
    +        $iter = 0;
    +        $eps = pow(2.0, -52.0);
    +
    +        while ($p > 0) {
    +            // Here is where a test for too many iterations would go.
    +            // This section of the program inspects for negligible
    +            // elements in the s and e arrays.  On completion the
    +            // variables kase and k are set as follows:
    +            // kase = 1  if s(p) and e[k-1] are negligible and k<p
    +            // kase = 2  if s(k) is negligible and k<p
    +            // kase = 3  if e[k-1] is negligible, k<p, and
    +            //           s(k), ..., s(p) are not negligible (qr step).
    +            // kase = 4  if e(p-1) is negligible (convergence).
    +            for ($k = $p - 2; $k >= -1; --$k) {
    +                if ($k == -1) {
    +                    break;
    +                }
    +                if (abs($e[$k]) <= $eps * (abs($this->s[$k]) + abs($this->s[$k + 1]))) {
    +                    $e[$k] = 0.0;
    +
    +                    break;
    +                }
    +            }
    +            if ($k == $p - 2) {
    +                $kase = 4;
    +            } else {
    +                for ($ks = $p - 1; $ks >= $k; --$ks) {
    +                    if ($ks == $k) {
    +                        break;
    +                    }
    +                    $t = ($ks != $p ? abs($e[$ks]) : 0.) + ($ks != $k + 1 ? abs($e[$ks - 1]) : 0.);
    +                    if (abs($this->s[$ks]) <= $eps * $t) {
    +                        $this->s[$ks] = 0.0;
    +
    +                        break;
    +                    }
    +                }
    +                if ($ks == $k) {
    +                    $kase = 3;
    +                } elseif ($ks == $p - 1) {
    +                    $kase = 1;
    +                } else {
    +                    $kase = 2;
    +                    $k = $ks;
    +                }
    +            }
    +            ++$k;
    +
    +            // Perform the task indicated by kase.
    +            switch ($kase) {
    +                // Deflate negligible s(p).
    +                case 1:
    +                    $f = $e[$p - 2];
    +                    $e[$p - 2] = 0.0;
    +                    for ($j = $p - 2; $j >= $k; --$j) {
    +                        $t = hypo($this->s[$j], $f);
    +                        $cs = $this->s[$j] / $t;
    +                        $sn = $f / $t;
    +                        $this->s[$j] = $t;
    +                        if ($j != $k) {
    +                            $f = -$sn * $e[$j - 1];
    +                            $e[$j - 1] = $cs * $e[$j - 1];
    +                        }
    +                        if ($wantv) {
    +                            for ($i = 0; $i < $this->n; ++$i) {
    +                                $t = $cs * $this->V[$i][$j] + $sn * $this->V[$i][$p - 1];
    +                                $this->V[$i][$p - 1] = -$sn * $this->V[$i][$j] + $cs * $this->V[$i][$p - 1];
    +                                $this->V[$i][$j] = $t;
    +                            }
    +                        }
    +                    }
    +
    +                    break;
    +                // Split at negligible s(k).
    +                case 2:
    +                    $f = $e[$k - 1];
    +                    $e[$k - 1] = 0.0;
    +                    for ($j = $k; $j < $p; ++$j) {
    +                        $t = hypo($this->s[$j], $f);
    +                        $cs = $this->s[$j] / $t;
    +                        $sn = $f / $t;
    +                        $this->s[$j] = $t;
    +                        $f = -$sn * $e[$j];
    +                        $e[$j] = $cs * $e[$j];
    +                        if ($wantu) {
    +                            for ($i = 0; $i < $this->m; ++$i) {
    +                                $t = $cs * $this->U[$i][$j] + $sn * $this->U[$i][$k - 1];
    +                                $this->U[$i][$k - 1] = -$sn * $this->U[$i][$j] + $cs * $this->U[$i][$k - 1];
    +                                $this->U[$i][$j] = $t;
    +                            }
    +                        }
    +                    }
    +
    +                    break;
    +                // Perform one qr step.
    +                case 3:
    +                    // Calculate the shift.
    +                    $scale = max(max(max(max(abs($this->s[$p - 1]), abs($this->s[$p - 2])), abs($e[$p - 2])), abs($this->s[$k])), abs($e[$k]));
    +                    $sp = $this->s[$p - 1] / $scale;
    +                    $spm1 = $this->s[$p - 2] / $scale;
    +                    $epm1 = $e[$p - 2] / $scale;
    +                    $sk = $this->s[$k] / $scale;
    +                    $ek = $e[$k] / $scale;
    +                    $b = (($spm1 + $sp) * ($spm1 - $sp) + $epm1 * $epm1) / 2.0;
    +                    $c = ($sp * $epm1) * ($sp * $epm1);
    +                    $shift = 0.0;
    +                    if (($b != 0.0) || ($c != 0.0)) {
    +                        $shift = sqrt($b * $b + $c);
    +                        if ($b < 0.0) {
    +                            $shift = -$shift;
    +                        }
    +                        $shift = $c / ($b + $shift);
    +                    }
    +                    $f = ($sk + $sp) * ($sk - $sp) + $shift;
    +                    $g = $sk * $ek;
    +                    // Chase zeros.
    +                    for ($j = $k; $j < $p - 1; ++$j) {
    +                        $t = hypo($f, $g);
    +                        $cs = $f / $t;
    +                        $sn = $g / $t;
    +                        if ($j != $k) {
    +                            $e[$j - 1] = $t;
    +                        }
    +                        $f = $cs * $this->s[$j] + $sn * $e[$j];
    +                        $e[$j] = $cs * $e[$j] - $sn * $this->s[$j];
    +                        $g = $sn * $this->s[$j + 1];
    +                        $this->s[$j + 1] = $cs * $this->s[$j + 1];
    +                        if ($wantv) {
    +                            for ($i = 0; $i < $this->n; ++$i) {
    +                                $t = $cs * $this->V[$i][$j] + $sn * $this->V[$i][$j + 1];
    +                                $this->V[$i][$j + 1] = -$sn * $this->V[$i][$j] + $cs * $this->V[$i][$j + 1];
    +                                $this->V[$i][$j] = $t;
    +                            }
    +                        }
    +                        $t = hypo($f, $g);
    +                        $cs = $f / $t;
    +                        $sn = $g / $t;
    +                        $this->s[$j] = $t;
    +                        $f = $cs * $e[$j] + $sn * $this->s[$j + 1];
    +                        $this->s[$j + 1] = -$sn * $e[$j] + $cs * $this->s[$j + 1];
    +                        $g = $sn * $e[$j + 1];
    +                        $e[$j + 1] = $cs * $e[$j + 1];
    +                        if ($wantu && ($j < $this->m - 1)) {
    +                            for ($i = 0; $i < $this->m; ++$i) {
    +                                $t = $cs * $this->U[$i][$j] + $sn * $this->U[$i][$j + 1];
    +                                $this->U[$i][$j + 1] = -$sn * $this->U[$i][$j] + $cs * $this->U[$i][$j + 1];
    +                                $this->U[$i][$j] = $t;
    +                            }
    +                        }
    +                    }
    +                    $e[$p - 2] = $f;
    +                    $iter = $iter + 1;
    +
    +                    break;
    +                // Convergence.
    +                case 4:
    +                    // Make the singular values positive.
    +                    if ($this->s[$k] <= 0.0) {
    +                        $this->s[$k] = ($this->s[$k] < 0.0 ? -$this->s[$k] : 0.0);
    +                        if ($wantv) {
    +                            for ($i = 0; $i <= $pp; ++$i) {
    +                                $this->V[$i][$k] = -$this->V[$i][$k];
    +                            }
    +                        }
    +                    }
    +                    // Order the singular values.
    +                    while ($k < $pp) {
    +                        if ($this->s[$k] >= $this->s[$k + 1]) {
    +                            break;
    +                        }
    +                        $t = $this->s[$k];
    +                        $this->s[$k] = $this->s[$k + 1];
    +                        $this->s[$k + 1] = $t;
    +                        if ($wantv and ($k < $this->n - 1)) {
    +                            for ($i = 0; $i < $this->n; ++$i) {
    +                                $t = $this->V[$i][$k + 1];
    +                                $this->V[$i][$k + 1] = $this->V[$i][$k];
    +                                $this->V[$i][$k] = $t;
    +                            }
    +                        }
    +                        if ($wantu and ($k < $this->m - 1)) {
    +                            for ($i = 0; $i < $this->m; ++$i) {
    +                                $t = $this->U[$i][$k + 1];
    +                                $this->U[$i][$k + 1] = $this->U[$i][$k];
    +                                $this->U[$i][$k] = $t;
    +                            }
    +                        }
    +                        ++$k;
    +                    }
    +                    $iter = 0;
    +                    --$p;
    +
    +                    break;
    +            } // end switch
    +        } // end while
    +    }
    +
    +    /**
    +     * Return the left singular vectors.
    +     *
    +     * @return Matrix U
    +     */
    +    public function getU()
    +    {
    +        return new Matrix($this->U, $this->m, min($this->m + 1, $this->n));
    +    }
    +
    +    /**
    +     * Return the right singular vectors.
    +     *
    +     * @return Matrix V
    +     */
    +    public function getV()
    +    {
    +        return new Matrix($this->V);
    +    }
    +
    +    /**
    +     * Return the one-dimensional array of singular values.
    +     *
    +     * @return array diagonal of S
    +     */
    +    public function getSingularValues()
    +    {
    +        return $this->s;
    +    }
    +
    +    /**
    +     * Return the diagonal matrix of singular values.
    +     *
    +     * @return Matrix S
    +     */
    +    public function getS()
    +    {
    +        for ($i = 0; $i < $this->n; ++$i) {
    +            for ($j = 0; $j < $this->n; ++$j) {
    +                $S[$i][$j] = 0.0;
    +            }
    +            $S[$i][$i] = $this->s[$i];
    +        }
    +
    +        return new Matrix($S);
    +    }
    +
    +    /**
    +     * Two norm.
    +     *
    +     * @return float max(S)
    +     */
    +    public function norm2()
    +    {
    +        return $this->s[0];
    +    }
    +
    +    /**
    +     * Two norm condition number.
    +     *
    +     * @return float max(S)/min(S)
    +     */
    +    public function cond()
    +    {
    +        return $this->s[0] / $this->s[min($this->m, $this->n) - 1];
    +    }
    +
    +    /**
    +     * Effective numerical matrix rank.
    +     *
    +     * @return int Number of nonnegligible singular values
    +     */
    +    public function rank()
    +    {
    +        $eps = pow(2.0, -52.0);
    +        $tol = max($this->m, $this->n) * $this->s[0] * $eps;
    +        $r = 0;
    +        $iMax = count($this->s);
    +        for ($i = 0; $i < $iMax; ++$i) {
    +            if ($this->s[$i] > $tol) {
    +                ++$r;
    +            }
    +        }
    +
    +        return $r;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/utils/Maths.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/utils/Maths.php
    new file mode 100644
    index 00000000000..68c3864932c
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/JAMA/utils/Maths.php
    @@ -0,0 +1,30 @@
    +<?php
    +/**
    + *    Pythagorean Theorem:.
    + *
    + *    a = 3
    + *    b = 4
    + *    r = sqrt(square(a) + square(b))
    + *    r = 5
    + *
    + *    r = sqrt(a^2 + b^2) without under/overflow.
    + *
    + * @param mixed $a
    + * @param mixed $b
    + *
    + * @return float
    + */
    +function hypo($a, $b)
    +{
    +    if (abs($a) > abs($b)) {
    +        $r = $b / $a;
    +        $r = abs($a) * sqrt(1 + $r * $r);
    +    } elseif ($b != 0) {
    +        $r = $a / $b;
    +        $r = abs($b) * sqrt(1 + $r * $r);
    +    } else {
    +        $r = 0.0;
    +    }
    +
    +    return $r;
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE.php
    new file mode 100644
    index 00000000000..2e9ec256734
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE.php
    @@ -0,0 +1,567 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +// vim: set expandtab tabstop=4 shiftwidth=4:
    +// +----------------------------------------------------------------------+
    +// | PHP Version 4                                                        |
    +// +----------------------------------------------------------------------+
    +// | Copyright (c) 1997-2002 The PHP Group                                |
    +// +----------------------------------------------------------------------+
    +// | This source file is subject to version 2.02 of the PHP license,      |
    +// | that is bundled with this package in the file LICENSE, and is        |
    +// | available at through the world-wide-web at                           |
    +// | http://www.php.net/license/2_02.txt.                                 |
    +// | If you did not receive a copy of the PHP license and are unable to   |
    +// | obtain it through the world-wide-web, please send a note to          |
    +// | license@php.net so we can mail you a copy immediately.               |
    +// +----------------------------------------------------------------------+
    +// | Author: Xavier Noguer <xnoguer@php.net>                              |
    +// | Based on OLE::Storage_Lite by Kawai, Takanori                        |
    +// +----------------------------------------------------------------------+
    +//
    +
    +use PhpOffice\PhpSpreadsheet\Reader\Exception as ReaderException;
    +use PhpOffice\PhpSpreadsheet\Shared\OLE\ChainedBlockStream;
    +use PhpOffice\PhpSpreadsheet\Shared\OLE\PPS\Root;
    +
    +/*
    + * Array for storing OLE instances that are accessed from
    + * OLE_ChainedBlockStream::stream_open().
    + *
    + * @var array
    + */
    +$GLOBALS['_OLE_INSTANCES'] = [];
    +
    +/**
    + * OLE package base class.
    + *
    + * @author   Xavier Noguer <xnoguer@php.net>
    + * @author   Christian Schmidt <schmidt@php.net>
    + *
    + * @category   PhpSpreadsheet
    + */
    +class OLE
    +{
    +    const OLE_PPS_TYPE_ROOT = 5;
    +    const OLE_PPS_TYPE_DIR = 1;
    +    const OLE_PPS_TYPE_FILE = 2;
    +    const OLE_DATA_SIZE_SMALL = 0x1000;
    +    const OLE_LONG_INT_SIZE = 4;
    +    const OLE_PPS_SIZE = 0x80;
    +
    +    /**
    +     * The file handle for reading an OLE container.
    +     *
    +     * @var resource
    +     */
    +    public $_file_handle;
    +
    +    /**
    +     * Array of PPS's found on the OLE container.
    +     *
    +     * @var array
    +     */
    +    public $_list = [];
    +
    +    /**
    +     * Root directory of OLE container.
    +     *
    +     * @var Root
    +     */
    +    public $root;
    +
    +    /**
    +     * Big Block Allocation Table.
    +     *
    +     * @var array (blockId => nextBlockId)
    +     */
    +    public $bbat;
    +
    +    /**
    +     * Short Block Allocation Table.
    +     *
    +     * @var array (blockId => nextBlockId)
    +     */
    +    public $sbat;
    +
    +    /**
    +     * Size of big blocks. This is usually 512.
    +     *
    +     * @var int number of octets per block
    +     */
    +    public $bigBlockSize;
    +
    +    /**
    +     * Size of small blocks. This is usually 64.
    +     *
    +     * @var int number of octets per block
    +     */
    +    public $smallBlockSize;
    +
    +    /**
    +     * Threshold for big blocks.
    +     *
    +     * @var int
    +     */
    +    public $bigBlockThreshold;
    +
    +    /**
    +     * Reads an OLE container from the contents of the file given.
    +     *
    +     * @acces public
    +     *
    +     * @param string $file
    +     *
    +     * @throws ReaderException
    +     *
    +     * @return bool true on success, PEAR_Error on failure
    +     */
    +    public function read($file)
    +    {
    +        $fh = fopen($file, 'r');
    +        if (!$fh) {
    +            throw new ReaderException("Can't open file $file");
    +        }
    +        $this->_file_handle = $fh;
    +
    +        $signature = fread($fh, 8);
    +        if ("\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1" != $signature) {
    +            throw new ReaderException("File doesn't seem to be an OLE container.");
    +        }
    +        fseek($fh, 28);
    +        if (fread($fh, 2) != "\xFE\xFF") {
    +            // This shouldn't be a problem in practice
    +            throw new ReaderException('Only Little-Endian encoding is supported.');
    +        }
    +        // Size of blocks and short blocks in bytes
    +        $this->bigBlockSize = pow(2, self::_readInt2($fh));
    +        $this->smallBlockSize = pow(2, self::_readInt2($fh));
    +
    +        // Skip UID, revision number and version number
    +        fseek($fh, 44);
    +        // Number of blocks in Big Block Allocation Table
    +        $bbatBlockCount = self::_readInt4($fh);
    +
    +        // Root chain 1st block
    +        $directoryFirstBlockId = self::_readInt4($fh);
    +
    +        // Skip unused bytes
    +        fseek($fh, 56);
    +        // Streams shorter than this are stored using small blocks
    +        $this->bigBlockThreshold = self::_readInt4($fh);
    +        // Block id of first sector in Short Block Allocation Table
    +        $sbatFirstBlockId = self::_readInt4($fh);
    +        // Number of blocks in Short Block Allocation Table
    +        $sbbatBlockCount = self::_readInt4($fh);
    +        // Block id of first sector in Master Block Allocation Table
    +        $mbatFirstBlockId = self::_readInt4($fh);
    +        // Number of blocks in Master Block Allocation Table
    +        $mbbatBlockCount = self::_readInt4($fh);
    +        $this->bbat = [];
    +
    +        // Remaining 4 * 109 bytes of current block is beginning of Master
    +        // Block Allocation Table
    +        $mbatBlocks = [];
    +        for ($i = 0; $i < 109; ++$i) {
    +            $mbatBlocks[] = self::_readInt4($fh);
    +        }
    +
    +        // Read rest of Master Block Allocation Table (if any is left)
    +        $pos = $this->_getBlockOffset($mbatFirstBlockId);
    +        for ($i = 0; $i < $mbbatBlockCount; ++$i) {
    +            fseek($fh, $pos);
    +            for ($j = 0; $j < $this->bigBlockSize / 4 - 1; ++$j) {
    +                $mbatBlocks[] = self::_readInt4($fh);
    +            }
    +            // Last block id in each block points to next block
    +            $pos = $this->_getBlockOffset(self::_readInt4($fh));
    +        }
    +
    +        // Read Big Block Allocation Table according to chain specified by $mbatBlocks
    +        for ($i = 0; $i < $bbatBlockCount; ++$i) {
    +            $pos = $this->_getBlockOffset($mbatBlocks[$i]);
    +            fseek($fh, $pos);
    +            for ($j = 0; $j < $this->bigBlockSize / 4; ++$j) {
    +                $this->bbat[] = self::_readInt4($fh);
    +            }
    +        }
    +
    +        // Read short block allocation table (SBAT)
    +        $this->sbat = [];
    +        $shortBlockCount = $sbbatBlockCount * $this->bigBlockSize / 4;
    +        $sbatFh = $this->getStream($sbatFirstBlockId);
    +        for ($blockId = 0; $blockId < $shortBlockCount; ++$blockId) {
    +            $this->sbat[$blockId] = self::_readInt4($sbatFh);
    +        }
    +        fclose($sbatFh);
    +
    +        $this->_readPpsWks($directoryFirstBlockId);
    +
    +        return true;
    +    }
    +
    +    /**
    +     * @param int $blockId byte offset from beginning of file
    +     *
    +     * @return int
    +     */
    +    public function _getBlockOffset($blockId)
    +    {
    +        return 512 + $blockId * $this->bigBlockSize;
    +    }
    +
    +    /**
    +     * Returns a stream for use with fread() etc. External callers should
    +     * use \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS\File::getStream().
    +     *
    +     * @param int|OLE\PPS $blockIdOrPps block id or PPS
    +     *
    +     * @return resource read-only stream
    +     */
    +    public function getStream($blockIdOrPps)
    +    {
    +        static $isRegistered = false;
    +        if (!$isRegistered) {
    +            stream_wrapper_register('ole-chainedblockstream', ChainedBlockStream::class);
    +            $isRegistered = true;
    +        }
    +
    +        // Store current instance in global array, so that it can be accessed
    +        // in OLE_ChainedBlockStream::stream_open().
    +        // Object is removed from self::$instances in OLE_Stream::close().
    +        $GLOBALS['_OLE_INSTANCES'][] = $this;
    +        $instanceId = end(array_keys($GLOBALS['_OLE_INSTANCES']));
    +
    +        $path = 'ole-chainedblockstream://oleInstanceId=' . $instanceId;
    +        if ($blockIdOrPps instanceof OLE\PPS) {
    +            $path .= '&blockId=' . $blockIdOrPps->startBlock;
    +            $path .= '&size=' . $blockIdOrPps->Size;
    +        } else {
    +            $path .= '&blockId=' . $blockIdOrPps;
    +        }
    +
    +        return fopen($path, 'r');
    +    }
    +
    +    /**
    +     * Reads a signed char.
    +     *
    +     * @param resource $fh file handle
    +     *
    +     * @return int
    +     */
    +    private static function _readInt1($fh)
    +    {
    +        list(, $tmp) = unpack('c', fread($fh, 1));
    +
    +        return $tmp;
    +    }
    +
    +    /**
    +     * Reads an unsigned short (2 octets).
    +     *
    +     * @param resource $fh file handle
    +     *
    +     * @return int
    +     */
    +    private static function _readInt2($fh)
    +    {
    +        list(, $tmp) = unpack('v', fread($fh, 2));
    +
    +        return $tmp;
    +    }
    +
    +    /**
    +     * Reads an unsigned long (4 octets).
    +     *
    +     * @param resource $fh file handle
    +     *
    +     * @return int
    +     */
    +    private static function _readInt4($fh)
    +    {
    +        list(, $tmp) = unpack('V', fread($fh, 4));
    +
    +        return $tmp;
    +    }
    +
    +    /**
    +     * Gets information about all PPS's on the OLE container from the PPS WK's
    +     * creates an OLE_PPS object for each one.
    +     *
    +     * @param int $blockId the block id of the first block
    +     *
    +     * @return bool true on success, PEAR_Error on failure
    +     */
    +    public function _readPpsWks($blockId)
    +    {
    +        $fh = $this->getStream($blockId);
    +        for ($pos = 0; true; $pos += 128) {
    +            fseek($fh, $pos, SEEK_SET);
    +            $nameUtf16 = fread($fh, 64);
    +            $nameLength = self::_readInt2($fh);
    +            $nameUtf16 = substr($nameUtf16, 0, $nameLength - 2);
    +            // Simple conversion from UTF-16LE to ISO-8859-1
    +            $name = str_replace("\x00", '', $nameUtf16);
    +            $type = self::_readInt1($fh);
    +            switch ($type) {
    +                case self::OLE_PPS_TYPE_ROOT:
    +                    $pps = new OLE\PPS\Root(null, null, []);
    +                    $this->root = $pps;
    +
    +                    break;
    +                case self::OLE_PPS_TYPE_DIR:
    +                    $pps = new OLE\PPS(null, null, null, null, null, null, null, null, null, []);
    +
    +                    break;
    +                case self::OLE_PPS_TYPE_FILE:
    +                    $pps = new OLE\PPS\File($name);
    +
    +                    break;
    +                default:
    +                    break;
    +            }
    +            fseek($fh, 1, SEEK_CUR);
    +            $pps->Type = $type;
    +            $pps->Name = $name;
    +            $pps->PrevPps = self::_readInt4($fh);
    +            $pps->NextPps = self::_readInt4($fh);
    +            $pps->DirPps = self::_readInt4($fh);
    +            fseek($fh, 20, SEEK_CUR);
    +            $pps->Time1st = self::OLE2LocalDate(fread($fh, 8));
    +            $pps->Time2nd = self::OLE2LocalDate(fread($fh, 8));
    +            $pps->startBlock = self::_readInt4($fh);
    +            $pps->Size = self::_readInt4($fh);
    +            $pps->No = count($this->_list);
    +            $this->_list[] = $pps;
    +
    +            // check if the PPS tree (starting from root) is complete
    +            if (isset($this->root) && $this->_ppsTreeComplete($this->root->No)) {
    +                break;
    +            }
    +        }
    +        fclose($fh);
    +
    +        // Initialize $pps->children on directories
    +        foreach ($this->_list as $pps) {
    +            if ($pps->Type == self::OLE_PPS_TYPE_DIR || $pps->Type == self::OLE_PPS_TYPE_ROOT) {
    +                $nos = [$pps->DirPps];
    +                $pps->children = [];
    +                while ($nos) {
    +                    $no = array_pop($nos);
    +                    if ($no != -1) {
    +                        $childPps = $this->_list[$no];
    +                        $nos[] = $childPps->PrevPps;
    +                        $nos[] = $childPps->NextPps;
    +                        $pps->children[] = $childPps;
    +                    }
    +                }
    +            }
    +        }
    +
    +        return true;
    +    }
    +
    +    /**
    +     * It checks whether the PPS tree is complete (all PPS's read)
    +     * starting with the given PPS (not necessarily root).
    +     *
    +     * @param int $index The index of the PPS from which we are checking
    +     *
    +     * @return bool Whether the PPS tree for the given PPS is complete
    +     */
    +    public function _ppsTreeComplete($index)
    +    {
    +        return isset($this->_list[$index]) &&
    +            ($pps = $this->_list[$index]) &&
    +            ($pps->PrevPps == -1 ||
    +                $this->_ppsTreeComplete($pps->PrevPps)) &&
    +            ($pps->NextPps == -1 ||
    +                $this->_ppsTreeComplete($pps->NextPps)) &&
    +            ($pps->DirPps == -1 ||
    +                $this->_ppsTreeComplete($pps->DirPps));
    +    }
    +
    +    /**
    +     * Checks whether a PPS is a File PPS or not.
    +     * If there is no PPS for the index given, it will return false.
    +     *
    +     * @param int $index The index for the PPS
    +     *
    +     * @return bool true if it's a File PPS, false otherwise
    +     */
    +    public function isFile($index)
    +    {
    +        if (isset($this->_list[$index])) {
    +            return $this->_list[$index]->Type == self::OLE_PPS_TYPE_FILE;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Checks whether a PPS is a Root PPS or not.
    +     * If there is no PPS for the index given, it will return false.
    +     *
    +     * @param int $index the index for the PPS
    +     *
    +     * @return bool true if it's a Root PPS, false otherwise
    +     */
    +    public function isRoot($index)
    +    {
    +        if (isset($this->_list[$index])) {
    +            return $this->_list[$index]->Type == self::OLE_PPS_TYPE_ROOT;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Gives the total number of PPS's found in the OLE container.
    +     *
    +     * @return int The total number of PPS's found in the OLE container
    +     */
    +    public function ppsTotal()
    +    {
    +        return count($this->_list);
    +    }
    +
    +    /**
    +     * Gets data from a PPS
    +     * If there is no PPS for the index given, it will return an empty string.
    +     *
    +     * @param int $index The index for the PPS
    +     * @param int $position The position from which to start reading
    +     *                          (relative to the PPS)
    +     * @param int $length The amount of bytes to read (at most)
    +     *
    +     * @return string The binary string containing the data requested
    +     *
    +     * @see OLE_PPS_File::getStream()
    +     */
    +    public function getData($index, $position, $length)
    +    {
    +        // if position is not valid return empty string
    +        if (!isset($this->_list[$index]) || ($position >= $this->_list[$index]->Size) || ($position < 0)) {
    +            return '';
    +        }
    +        $fh = $this->getStream($this->_list[$index]);
    +        $data = stream_get_contents($fh, $length, $position);
    +        fclose($fh);
    +
    +        return $data;
    +    }
    +
    +    /**
    +     * Gets the data length from a PPS
    +     * If there is no PPS for the index given, it will return 0.
    +     *
    +     * @param int $index The index for the PPS
    +     *
    +     * @return int The amount of bytes in data the PPS has
    +     */
    +    public function getDataLength($index)
    +    {
    +        if (isset($this->_list[$index])) {
    +            return $this->_list[$index]->Size;
    +        }
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Utility function to transform ASCII text to Unicode.
    +     *
    +     * @param string $ascii The ASCII string to transform
    +     *
    +     * @return string The string in Unicode
    +     */
    +    public static function ascToUcs($ascii)
    +    {
    +        $rawname = '';
    +        $iMax = strlen($ascii);
    +        for ($i = 0; $i < $iMax; ++$i) {
    +            $rawname .= $ascii[$i]
    +                . "\x00";
    +        }
    +
    +        return $rawname;
    +    }
    +
    +    /**
    +     * Utility function
    +     * Returns a string for the OLE container with the date given.
    +     *
    +     * @param int $date A timestamp
    +     *
    +     * @return string The string for the OLE container
    +     */
    +    public static function localDateToOLE($date)
    +    {
    +        if (!isset($date)) {
    +            return "\x00\x00\x00\x00\x00\x00\x00\x00";
    +        }
    +
    +        // factor used for separating numbers into 4 bytes parts
    +        $factor = pow(2, 32);
    +
    +        // days from 1-1-1601 until the beggining of UNIX era
    +        $days = 134774;
    +        // calculate seconds
    +        $big_date = $days * 24 * 3600 + gmmktime(date('H', $date), date('i', $date), date('s', $date), date('m', $date), date('d', $date), date('Y', $date));
    +        // multiply just to make MS happy
    +        $big_date *= 10000000;
    +
    +        $high_part = floor($big_date / $factor);
    +        // lower 4 bytes
    +        $low_part = floor((($big_date / $factor) - $high_part) * $factor);
    +
    +        // Make HEX string
    +        $res = '';
    +
    +        for ($i = 0; $i < 4; ++$i) {
    +            $hex = $low_part % 0x100;
    +            $res .= pack('c', $hex);
    +            $low_part /= 0x100;
    +        }
    +        for ($i = 0; $i < 4; ++$i) {
    +            $hex = $high_part % 0x100;
    +            $res .= pack('c', $hex);
    +            $high_part /= 0x100;
    +        }
    +
    +        return $res;
    +    }
    +
    +    /**
    +     * Returns a timestamp from an OLE container's date.
    +     *
    +     * @param int $string A binary string with the encoded date
    +     *
    +     * @return string The timestamp corresponding to the string
    +     */
    +    public static function OLE2LocalDate($string)
    +    {
    +        if (strlen($string) != 8) {
    +            throw new ReaderException('Expecting 8 byte string');
    +        }
    +
    +        // factor used for separating numbers into 4 bytes parts
    +        $factor = pow(2, 32);
    +        list(, $high_part) = unpack('V', substr($string, 4, 4));
    +        list(, $low_part) = unpack('V', substr($string, 0, 4));
    +
    +        $big_date = ($high_part * $factor) + $low_part;
    +        // translate to seconds
    +        $big_date /= 10000000;
    +
    +        // days from 1-1-1601 until the beggining of UNIX era
    +        $days = 134774;
    +
    +        // translate to seconds from beggining of UNIX era
    +        $big_date -= $days * 24 * 3600;
    +
    +        return floor($big_date);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php
    new file mode 100644
    index 00000000000..e6ba72428fc
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php
    @@ -0,0 +1,196 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\OLE;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\OLE;
    +
    +class ChainedBlockStream
    +{
    +    /**
    +     * The OLE container of the file that is being read.
    +     *
    +     * @var OLE
    +     */
    +    public $ole;
    +
    +    /**
    +     * Parameters specified by fopen().
    +     *
    +     * @var array
    +     */
    +    public $params;
    +
    +    /**
    +     * The binary data of the file.
    +     *
    +     * @var string
    +     */
    +    public $data;
    +
    +    /**
    +     * The file pointer.
    +     *
    +     * @var int byte offset
    +     */
    +    public $pos;
    +
    +    /**
    +     * Implements support for fopen().
    +     * For creating streams using this wrapper, use OLE_PPS_File::getStream().
    +     *
    +     * @param string $path resource name including scheme, e.g.
    +     *                                    ole-chainedblockstream://oleInstanceId=1
    +     * @param string $mode only "r" is supported
    +     * @param int $options mask of STREAM_REPORT_ERRORS and STREAM_USE_PATH
    +     * @param string &$openedPath absolute path of the opened stream (out parameter)
    +     *
    +     * @return bool true on success
    +     */
    +    public function stream_open($path, $mode, $options, &$openedPath) // @codingStandardsIgnoreLine
    +    {
    +        if ($mode != 'r') {
    +            if ($options & STREAM_REPORT_ERRORS) {
    +                trigger_error('Only reading is supported', E_USER_WARNING);
    +            }
    +
    +            return false;
    +        }
    +
    +        // 25 is length of "ole-chainedblockstream://"
    +        parse_str(substr($path, 25), $this->params);
    +        if (!isset($this->params['oleInstanceId'], $this->params['blockId'], $GLOBALS['_OLE_INSTANCES'][$this->params['oleInstanceId']])) {
    +            if ($options & STREAM_REPORT_ERRORS) {
    +                trigger_error('OLE stream not found', E_USER_WARNING);
    +            }
    +
    +            return false;
    +        }
    +        $this->ole = $GLOBALS['_OLE_INSTANCES'][$this->params['oleInstanceId']];
    +
    +        $blockId = $this->params['blockId'];
    +        $this->data = '';
    +        if (isset($this->params['size']) && $this->params['size'] < $this->ole->bigBlockThreshold && $blockId != $this->ole->root->startBlock) {
    +            // Block id refers to small blocks
    +            $rootPos = $this->ole->_getBlockOffset($this->ole->root->startBlock);
    +            while ($blockId != -2) {
    +                $pos = $rootPos + $blockId * $this->ole->bigBlockSize;
    +                $blockId = $this->ole->sbat[$blockId];
    +                fseek($this->ole->_file_handle, $pos);
    +                $this->data .= fread($this->ole->_file_handle, $this->ole->bigBlockSize);
    +            }
    +        } else {
    +            // Block id refers to big blocks
    +            while ($blockId != -2) {
    +                $pos = $this->ole->_getBlockOffset($blockId);
    +                fseek($this->ole->_file_handle, $pos);
    +                $this->data .= fread($this->ole->_file_handle, $this->ole->bigBlockSize);
    +                $blockId = $this->ole->bbat[$blockId];
    +            }
    +        }
    +        if (isset($this->params['size'])) {
    +            $this->data = substr($this->data, 0, $this->params['size']);
    +        }
    +
    +        if ($options & STREAM_USE_PATH) {
    +            $openedPath = $path;
    +        }
    +
    +        return true;
    +    }
    +
    +    /**
    +     * Implements support for fclose().
    +     */
    +    public function stream_close() // @codingStandardsIgnoreLine
    +    {
    +        $this->ole = null;
    +        unset($GLOBALS['_OLE_INSTANCES']);
    +    }
    +
    +    /**
    +     * Implements support for fread(), fgets() etc.
    +     *
    +     * @param int $count maximum number of bytes to read
    +     *
    +     * @return string
    +     */
    +    public function stream_read($count) // @codingStandardsIgnoreLine
    +    {
    +        if ($this->stream_eof()) {
    +            return false;
    +        }
    +        $s = substr($this->data, $this->pos, $count);
    +        $this->pos += $count;
    +
    +        return $s;
    +    }
    +
    +    /**
    +     * Implements support for feof().
    +     *
    +     * @return bool TRUE if the file pointer is at EOF; otherwise FALSE
    +     */
    +    public function stream_eof() // @codingStandardsIgnoreLine
    +    {
    +        return $this->pos >= strlen($this->data);
    +    }
    +
    +    /**
    +     * Returns the position of the file pointer, i.e. its offset into the file
    +     * stream. Implements support for ftell().
    +     *
    +     * @return int
    +     */
    +    public function stream_tell() // @codingStandardsIgnoreLine
    +    {
    +        return $this->pos;
    +    }
    +
    +    /**
    +     * Implements support for fseek().
    +     *
    +     * @param int $offset byte offset
    +     * @param int $whence SEEK_SET, SEEK_CUR or SEEK_END
    +     *
    +     * @return bool
    +     */
    +    public function stream_seek($offset, $whence) // @codingStandardsIgnoreLine
    +    {
    +        if ($whence == SEEK_SET && $offset >= 0) {
    +            $this->pos = $offset;
    +        } elseif ($whence == SEEK_CUR && -$offset <= $this->pos) {
    +            $this->pos += $offset;
    +        } elseif ($whence == SEEK_END && -$offset <= count($this->data)) {
    +            $this->pos = strlen($this->data) + $offset;
    +        } else {
    +            return false;
    +        }
    +
    +        return true;
    +    }
    +
    +    /**
    +     * Implements support for fstat(). Currently the only supported field is
    +     * "size".
    +     *
    +     * @return array
    +     */
    +    public function stream_stat() // @codingStandardsIgnoreLine
    +    {
    +        return [
    +            'size' => strlen($this->data),
    +            ];
    +    }
    +
    +    // Methods used by stream_wrapper_register() that are not implemented:
    +    // bool stream_flush ( void )
    +    // int stream_write ( string data )
    +    // bool rename ( string path_from, string path_to )
    +    // bool mkdir ( string path, int mode, int options )
    +    // bool rmdir ( string path, int options )
    +    // bool dir_opendir ( string path, int options )
    +    // array url_stat ( string path, int flags )
    +    // string dir_readdir ( void )
    +    // bool dir_rewinddir ( void )
    +    // bool dir_closedir ( void )
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/PPS.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/PPS.php
    new file mode 100644
    index 00000000000..e53f2575fca
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/PPS.php
    @@ -0,0 +1,238 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\OLE;
    +
    +// vim: set expandtab tabstop=4 shiftwidth=4:
    +// +----------------------------------------------------------------------+
    +// | PHP Version 4                                                        |
    +// +----------------------------------------------------------------------+
    +// | Copyright (c) 1997-2002 The PHP Group                                |
    +// +----------------------------------------------------------------------+
    +// | This source file is subject to version 2.02 of the PHP license,      |
    +// | that is bundled with this package in the file LICENSE, and is        |
    +// | available at through the world-wide-web at                           |
    +// | http://www.php.net/license/2_02.txt.                                 |
    +// | If you did not receive a copy of the PHP license and are unable to   |
    +// | obtain it through the world-wide-web, please send a note to          |
    +// | license@php.net so we can mail you a copy immediately.               |
    +// +----------------------------------------------------------------------+
    +// | Author: Xavier Noguer <xnoguer@php.net>                              |
    +// | Based on OLE::Storage_Lite by Kawai, Takanori                        |
    +// +----------------------------------------------------------------------+
    +//
    +use PhpOffice\PhpSpreadsheet\Shared\OLE;
    +
    +/**
    + * Class for creating PPS's for OLE containers.
    + *
    + * @author   Xavier Noguer <xnoguer@php.net>
    + *
    + * @category PhpSpreadsheet
    + */
    +class PPS
    +{
    +    /**
    +     * The PPS index.
    +     *
    +     * @var int
    +     */
    +    public $No;
    +
    +    /**
    +     * The PPS name (in Unicode).
    +     *
    +     * @var string
    +     */
    +    public $Name;
    +
    +    /**
    +     * The PPS type. Dir, Root or File.
    +     *
    +     * @var int
    +     */
    +    public $Type;
    +
    +    /**
    +     * The index of the previous PPS.
    +     *
    +     * @var int
    +     */
    +    public $PrevPps;
    +
    +    /**
    +     * The index of the next PPS.
    +     *
    +     * @var int
    +     */
    +    public $NextPps;
    +
    +    /**
    +     * The index of it's first child if this is a Dir or Root PPS.
    +     *
    +     * @var int
    +     */
    +    public $DirPps;
    +
    +    /**
    +     * A timestamp.
    +     *
    +     * @var int
    +     */
    +    public $Time1st;
    +
    +    /**
    +     * A timestamp.
    +     *
    +     * @var int
    +     */
    +    public $Time2nd;
    +
    +    /**
    +     * Starting block (small or big) for this PPS's data  inside the container.
    +     *
    +     * @var int
    +     */
    +    public $startBlock;
    +
    +    /**
    +     * The size of the PPS's data (in bytes).
    +     *
    +     * @var int
    +     */
    +    public $Size;
    +
    +    /**
    +     * The PPS's data (only used if it's not using a temporary file).
    +     *
    +     * @var string
    +     */
    +    public $_data;
    +
    +    /**
    +     * Array of child PPS's (only used by Root and Dir PPS's).
    +     *
    +     * @var array
    +     */
    +    public $children = [];
    +
    +    /**
    +     * Pointer to OLE container.
    +     *
    +     * @var OLE
    +     */
    +    public $ole;
    +
    +    /**
    +     * The constructor.
    +     *
    +     * @param int $No The PPS index
    +     * @param string $name The PPS name
    +     * @param int $type The PPS type. Dir, Root or File
    +     * @param int $prev The index of the previous PPS
    +     * @param int $next The index of the next PPS
    +     * @param int $dir The index of it's first child if this is a Dir or Root PPS
    +     * @param int $time_1st A timestamp
    +     * @param int $time_2nd A timestamp
    +     * @param string $data The (usually binary) source data of the PPS
    +     * @param array $children Array containing children PPS for this PPS
    +     */
    +    public function __construct($No, $name, $type, $prev, $next, $dir, $time_1st, $time_2nd, $data, $children)
    +    {
    +        $this->No = $No;
    +        $this->Name = $name;
    +        $this->Type = $type;
    +        $this->PrevPps = $prev;
    +        $this->NextPps = $next;
    +        $this->DirPps = $dir;
    +        $this->Time1st = $time_1st;
    +        $this->Time2nd = $time_2nd;
    +        $this->_data = $data;
    +        $this->children = $children;
    +        if ($data != '') {
    +            $this->Size = strlen($data);
    +        } else {
    +            $this->Size = 0;
    +        }
    +    }
    +
    +    /**
    +     * Returns the amount of data saved for this PPS.
    +     *
    +     * @return int The amount of data (in bytes)
    +     */
    +    public function getDataLen()
    +    {
    +        if (!isset($this->_data)) {
    +            return 0;
    +        }
    +
    +        return strlen($this->_data);
    +    }
    +
    +    /**
    +     * Returns a string with the PPS's WK (What is a WK?).
    +     *
    +     * @return string The binary string
    +     */
    +    public function _getPpsWk()
    +    {
    +        $ret = str_pad($this->Name, 64, "\x00");
    +
    +        $ret .= pack('v', strlen($this->Name) + 2)  // 66
    +            . pack('c', $this->Type)              // 67
    +            . pack('c', 0x00) //UK                // 68
    +            . pack('V', $this->PrevPps) //Prev    // 72
    +            . pack('V', $this->NextPps) //Next    // 76
    +            . pack('V', $this->DirPps)  //Dir     // 80
    +            . "\x00\x09\x02\x00"                  // 84
    +            . "\x00\x00\x00\x00"                  // 88
    +            . "\xc0\x00\x00\x00"                  // 92
    +            . "\x00\x00\x00\x46"                  // 96 // Seems to be ok only for Root
    +            . "\x00\x00\x00\x00"                  // 100
    +            . OLE::localDateToOLE($this->Time1st)          // 108
    +            . OLE::localDateToOLE($this->Time2nd)          // 116
    +            . pack('V', isset($this->startBlock) ? $this->startBlock : 0)  // 120
    +            . pack('V', $this->Size)               // 124
    +            . pack('V', 0); // 128
    +        return $ret;
    +    }
    +
    +    /**
    +     * Updates index and pointers to previous, next and children PPS's for this
    +     * PPS. I don't think it'll work with Dir PPS's.
    +     *
    +     * @param array &$raList Reference to the array of PPS's for the whole OLE
    +     *                          container
    +     * @param mixed $to_save
    +     * @param mixed $depth
    +     *
    +     * @return int The index for this PPS
    +     */
    +    public static function _savePpsSetPnt(&$raList, $to_save, $depth = 0)
    +    {
    +        if (!is_array($to_save) || (empty($to_save))) {
    +            return 0xFFFFFFFF;
    +        } elseif (count($to_save) == 1) {
    +            $cnt = count($raList);
    +            // If the first entry, it's the root... Don't clone it!
    +            $raList[$cnt] = ($depth == 0) ? $to_save[0] : clone $to_save[0];
    +            $raList[$cnt]->No = $cnt;
    +            $raList[$cnt]->PrevPps = 0xFFFFFFFF;
    +            $raList[$cnt]->NextPps = 0xFFFFFFFF;
    +            $raList[$cnt]->DirPps = self::_savePpsSetPnt($raList, @$raList[$cnt]->children, $depth++);
    +        } else {
    +            $iPos = floor(count($to_save) / 2);
    +            $aPrev = array_slice($to_save, 0, $iPos);
    +            $aNext = array_slice($to_save, $iPos + 1);
    +            $cnt = count($raList);
    +            // If the first entry, it's the root... Don't clone it!
    +            $raList[$cnt] = ($depth == 0) ? $to_save[$iPos] : clone $to_save[$iPos];
    +            $raList[$cnt]->No = $cnt;
    +            $raList[$cnt]->PrevPps = self::_savePpsSetPnt($raList, $aPrev, $depth++);
    +            $raList[$cnt]->NextPps = self::_savePpsSetPnt($raList, $aNext, $depth++);
    +            $raList[$cnt]->DirPps = self::_savePpsSetPnt($raList, @$raList[$cnt]->children, $depth++);
    +        }
    +
    +        return $cnt;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/PPS/File.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/PPS/File.php
    new file mode 100644
    index 00000000000..68f50a5c8ce
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/PPS/File.php
    @@ -0,0 +1,66 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\OLE\PPS;
    +
    +// vim: set expandtab tabstop=4 shiftwidth=4:
    +// +----------------------------------------------------------------------+
    +// | PHP Version 4                                                        |
    +// +----------------------------------------------------------------------+
    +// | Copyright (c) 1997-2002 The PHP Group                                |
    +// +----------------------------------------------------------------------+
    +// | This source file is subject to version 2.02 of the PHP license,      |
    +// | that is bundled with this package in the file LICENSE, and is        |
    +// | available at through the world-wide-web at                           |
    +// | http://www.php.net/license/2_02.txt.                                 |
    +// | If you did not receive a copy of the PHP license and are unable to   |
    +// | obtain it through the world-wide-web, please send a note to          |
    +// | license@php.net so we can mail you a copy immediately.               |
    +// +----------------------------------------------------------------------+
    +// | Author: Xavier Noguer <xnoguer@php.net>                              |
    +// | Based on OLE::Storage_Lite by Kawai, Takanori                        |
    +// +----------------------------------------------------------------------+
    +//
    +use PhpOffice\PhpSpreadsheet\Shared\OLE;
    +use PhpOffice\PhpSpreadsheet\Shared\OLE\PPS;
    +
    +/**
    + * Class for creating File PPS's for OLE containers.
    + *
    + * @author   Xavier Noguer <xnoguer@php.net>
    + *
    + * @category PhpSpreadsheet
    + */
    +class File extends PPS
    +{
    +    /**
    +     * The constructor.
    +     *
    +     * @param string $name The name of the file (in Unicode)
    +     *
    +     * @see OLE::ascToUcs()
    +     */
    +    public function __construct($name)
    +    {
    +        parent::__construct(null, $name, OLE::OLE_PPS_TYPE_FILE, null, null, null, null, null, '', []);
    +    }
    +
    +    /**
    +     * Initialization method. Has to be called right after OLE_PPS_File().
    +     *
    +     * @return mixed true on success
    +     */
    +    public function init()
    +    {
    +        return true;
    +    }
    +
    +    /**
    +     * Append data to PPS.
    +     *
    +     * @param string $data The data to append
    +     */
    +    public function append($data)
    +    {
    +        $this->_data .= $data;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/PPS/Root.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/PPS/Root.php
    new file mode 100644
    index 00000000000..578e08fafe3
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLE/PPS/Root.php
    @@ -0,0 +1,466 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\OLE\PPS;
    +
    +// vim: set expandtab tabstop=4 shiftwidth=4:
    +// +----------------------------------------------------------------------+
    +// | PHP Version 4                                                        |
    +// +----------------------------------------------------------------------+
    +// | Copyright (c) 1997-2002 The PHP Group                                |
    +// +----------------------------------------------------------------------+
    +// | This source file is subject to version 2.02 of the PHP license,      |
    +// | that is bundled with this package in the file LICENSE, and is        |
    +// | available at through the world-wide-web at                           |
    +// | http://www.php.net/license/2_02.txt.                                 |
    +// | If you did not receive a copy of the PHP license and are unable to   |
    +// | obtain it through the world-wide-web, please send a note to          |
    +// | license@php.net so we can mail you a copy immediately.               |
    +// +----------------------------------------------------------------------+
    +// | Author: Xavier Noguer <xnoguer@php.net>                              |
    +// | Based on OLE::Storage_Lite by Kawai, Takanori                        |
    +// +----------------------------------------------------------------------+
    +//
    +use PhpOffice\PhpSpreadsheet\Shared\OLE;
    +use PhpOffice\PhpSpreadsheet\Shared\OLE\PPS;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +/**
    + * Class for creating Root PPS's for OLE containers.
    + *
    + * @author   Xavier Noguer <xnoguer@php.net>
    + *
    + * @category PhpSpreadsheet
    + */
    +class Root extends PPS
    +{
    +    /**
    +     * Directory for temporary files.
    +     *
    +     * @var string
    +     */
    +    protected $tempDirectory;
    +
    +    /**
    +     * @var resource
    +     */
    +    private $fileHandle;
    +
    +    /**
    +     * @var string
    +     */
    +    private $tempFilename;
    +
    +    /**
    +     * @var int
    +     */
    +    private $smallBlockSize;
    +
    +    /**
    +     * @var int
    +     */
    +    private $bigBlockSize;
    +
    +    /**
    +     * @param int $time_1st A timestamp
    +     * @param int $time_2nd A timestamp
    +     * @param File[] $raChild
    +     */
    +    public function __construct($time_1st, $time_2nd, $raChild)
    +    {
    +        $this->tempDirectory = \PhpOffice\PhpSpreadsheet\Shared\File::sysGetTempDir();
    +
    +        parent::__construct(null, OLE::ascToUcs('Root Entry'), OLE::OLE_PPS_TYPE_ROOT, null, null, null, $time_1st, $time_2nd, null, $raChild);
    +    }
    +
    +    /**
    +     * Method for saving the whole OLE container (including files).
    +     * In fact, if called with an empty argument (or '-'), it saves to a
    +     * temporary file and then outputs it's contents to stdout.
    +     * If a resource pointer to a stream created by fopen() is passed
    +     * it will be used, but you have to close such stream by yourself.
    +     *
    +     * @param resource|string $filename the name of the file or stream where to save the OLE container
    +     *
    +     * @throws WriterException
    +     *
    +     * @return bool true on success
    +     */
    +    public function save($filename)
    +    {
    +        // Initial Setting for saving
    +        $this->bigBlockSize = pow(
    +            2,
    +            (isset($this->bigBlockSize)) ? self::adjust2($this->bigBlockSize) : 9
    +        );
    +        $this->smallBlockSize = pow(
    +            2,
    +            (isset($this->smallBlockSize)) ? self::adjust2($this->smallBlockSize) : 6
    +        );
    +
    +        if (is_resource($filename)) {
    +            $this->fileHandle = $filename;
    +        } elseif ($filename == '-' || $filename == '') {
    +            if ($this->tempDirectory === null) {
    +                $this->tempDirectory = \PhpOffice\PhpSpreadsheet\Shared\File::sysGetTempDir();
    +            }
    +            $this->tempFilename = tempnam($this->tempDirectory, 'OLE_PPS_Root');
    +            $this->fileHandle = fopen($this->tempFilename, 'w+b');
    +            if ($this->fileHandle == false) {
    +                throw new WriterException("Can't create temporary file.");
    +            }
    +        } else {
    +            $this->fileHandle = fopen($filename, 'wb');
    +        }
    +        if ($this->fileHandle == false) {
    +            throw new WriterException("Can't open $filename. It may be in use or protected.");
    +        }
    +        // Make an array of PPS's (for Save)
    +        $aList = [];
    +        PPS::_savePpsSetPnt($aList, [$this]);
    +        // calculate values for header
    +        list($iSBDcnt, $iBBcnt, $iPPScnt) = $this->_calcSize($aList); //, $rhInfo);
    +        // Save Header
    +        $this->_saveHeader($iSBDcnt, $iBBcnt, $iPPScnt);
    +
    +        // Make Small Data string (write SBD)
    +        $this->_data = $this->_makeSmallData($aList);
    +
    +        // Write BB
    +        $this->_saveBigData($iSBDcnt, $aList);
    +        // Write PPS
    +        $this->_savePps($aList);
    +        // Write Big Block Depot and BDList and Adding Header informations
    +        $this->_saveBbd($iSBDcnt, $iBBcnt, $iPPScnt);
    +
    +        if (!is_resource($filename)) {
    +            fclose($this->fileHandle);
    +        }
    +
    +        return true;
    +    }
    +
    +    /**
    +     * Calculate some numbers.
    +     *
    +     * @param array $raList Reference to an array of PPS's
    +     *
    +     * @return float[] The array of numbers
    +     */
    +    public function _calcSize(&$raList)
    +    {
    +        // Calculate Basic Setting
    +        list($iSBDcnt, $iBBcnt, $iPPScnt) = [0, 0, 0];
    +        $iSmallLen = 0;
    +        $iSBcnt = 0;
    +        $iCount = count($raList);
    +        for ($i = 0; $i < $iCount; ++$i) {
    +            if ($raList[$i]->Type == OLE::OLE_PPS_TYPE_FILE) {
    +                $raList[$i]->Size = $raList[$i]->getDataLen();
    +                if ($raList[$i]->Size < OLE::OLE_DATA_SIZE_SMALL) {
    +                    $iSBcnt += floor($raList[$i]->Size / $this->smallBlockSize)
    +                                  + (($raList[$i]->Size % $this->smallBlockSize) ? 1 : 0);
    +                } else {
    +                    $iBBcnt += (floor($raList[$i]->Size / $this->bigBlockSize) +
    +                        (($raList[$i]->Size % $this->bigBlockSize) ? 1 : 0));
    +                }
    +            }
    +        }
    +        $iSmallLen = $iSBcnt * $this->smallBlockSize;
    +        $iSlCnt = floor($this->bigBlockSize / OLE::OLE_LONG_INT_SIZE);
    +        $iSBDcnt = floor($iSBcnt / $iSlCnt) + (($iSBcnt % $iSlCnt) ? 1 : 0);
    +        $iBBcnt += (floor($iSmallLen / $this->bigBlockSize) +
    +                      (($iSmallLen % $this->bigBlockSize) ? 1 : 0));
    +        $iCnt = count($raList);
    +        $iBdCnt = $this->bigBlockSize / OLE::OLE_PPS_SIZE;
    +        $iPPScnt = (floor($iCnt / $iBdCnt) + (($iCnt % $iBdCnt) ? 1 : 0));
    +
    +        return [$iSBDcnt, $iBBcnt, $iPPScnt];
    +    }
    +
    +    /**
    +     * Helper function for caculating a magic value for block sizes.
    +     *
    +     * @param int $i2 The argument
    +     *
    +     * @see save()
    +     *
    +     * @return float
    +     */
    +    private static function adjust2($i2)
    +    {
    +        $iWk = log($i2) / log(2);
    +
    +        return ($iWk > floor($iWk)) ? floor($iWk) + 1 : $iWk;
    +    }
    +
    +    /**
    +     * Save OLE header.
    +     *
    +     * @param int $iSBDcnt
    +     * @param int $iBBcnt
    +     * @param int $iPPScnt
    +     */
    +    public function _saveHeader($iSBDcnt, $iBBcnt, $iPPScnt)
    +    {
    +        $FILE = $this->fileHandle;
    +
    +        // Calculate Basic Setting
    +        $iBlCnt = $this->bigBlockSize / OLE::OLE_LONG_INT_SIZE;
    +        $i1stBdL = ($this->bigBlockSize - 0x4C) / OLE::OLE_LONG_INT_SIZE;
    +
    +        $iBdExL = 0;
    +        $iAll = $iBBcnt + $iPPScnt + $iSBDcnt;
    +        $iAllW = $iAll;
    +        $iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt) ? 1 : 0);
    +        $iBdCnt = floor(($iAll + $iBdCntW) / $iBlCnt) + ((($iAllW + $iBdCntW) % $iBlCnt) ? 1 : 0);
    +
    +        // Calculate BD count
    +        if ($iBdCnt > $i1stBdL) {
    +            while (1) {
    +                ++$iBdExL;
    +                ++$iAllW;
    +                $iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt) ? 1 : 0);
    +                $iBdCnt = floor(($iAllW + $iBdCntW) / $iBlCnt) + ((($iAllW + $iBdCntW) % $iBlCnt) ? 1 : 0);
    +                if ($iBdCnt <= ($iBdExL * $iBlCnt + $i1stBdL)) {
    +                    break;
    +                }
    +            }
    +        }
    +
    +        // Save Header
    +        fwrite(
    +            $FILE,
    +            "\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1"
    +            . "\x00\x00\x00\x00"
    +            . "\x00\x00\x00\x00"
    +            . "\x00\x00\x00\x00"
    +            . "\x00\x00\x00\x00"
    +            . pack('v', 0x3b)
    +            . pack('v', 0x03)
    +            . pack('v', -2)
    +            . pack('v', 9)
    +            . pack('v', 6)
    +            . pack('v', 0)
    +            . "\x00\x00\x00\x00"
    +            . "\x00\x00\x00\x00"
    +            . pack('V', $iBdCnt)
    +            . pack('V', $iBBcnt + $iSBDcnt) //ROOT START
    +            . pack('V', 0)
    +            . pack('V', 0x1000)
    +            . pack('V', $iSBDcnt ? 0 : -2) //Small Block Depot
    +            . pack('V', $iSBDcnt)
    +        );
    +        // Extra BDList Start, Count
    +        if ($iBdCnt < $i1stBdL) {
    +            fwrite(
    +                $FILE,
    +                pack('V', -2) // Extra BDList Start
    +                . pack('V', 0)// Extra BDList Count
    +            );
    +        } else {
    +            fwrite($FILE, pack('V', $iAll + $iBdCnt) . pack('V', $iBdExL));
    +        }
    +
    +        // BDList
    +        for ($i = 0; $i < $i1stBdL && $i < $iBdCnt; ++$i) {
    +            fwrite($FILE, pack('V', $iAll + $i));
    +        }
    +        if ($i < $i1stBdL) {
    +            $jB = $i1stBdL - $i;
    +            for ($j = 0; $j < $jB; ++$j) {
    +                fwrite($FILE, (pack('V', -1)));
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Saving big data (PPS's with data bigger than \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL).
    +     *
    +     * @param int $iStBlk
    +     * @param array &$raList Reference to array of PPS's
    +     */
    +    public function _saveBigData($iStBlk, &$raList)
    +    {
    +        $FILE = $this->fileHandle;
    +
    +        // cycle through PPS's
    +        $iCount = count($raList);
    +        for ($i = 0; $i < $iCount; ++$i) {
    +            if ($raList[$i]->Type != OLE::OLE_PPS_TYPE_DIR) {
    +                $raList[$i]->Size = $raList[$i]->getDataLen();
    +                if (($raList[$i]->Size >= OLE::OLE_DATA_SIZE_SMALL) || (($raList[$i]->Type == OLE::OLE_PPS_TYPE_ROOT) && isset($raList[$i]->_data))) {
    +                    fwrite($FILE, $raList[$i]->_data);
    +
    +                    if ($raList[$i]->Size % $this->bigBlockSize) {
    +                        fwrite($FILE, str_repeat("\x00", $this->bigBlockSize - ($raList[$i]->Size % $this->bigBlockSize)));
    +                    }
    +                    // Set For PPS
    +                    $raList[$i]->startBlock = $iStBlk;
    +                    $iStBlk +=
    +                            (floor($raList[$i]->Size / $this->bigBlockSize) +
    +                                (($raList[$i]->Size % $this->bigBlockSize) ? 1 : 0));
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * get small data (PPS's with data smaller than \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL).
    +     *
    +     * @param array &$raList Reference to array of PPS's
    +     *
    +     * @return string
    +     */
    +    public function _makeSmallData(&$raList)
    +    {
    +        $sRes = '';
    +        $FILE = $this->fileHandle;
    +        $iSmBlk = 0;
    +
    +        $iCount = count($raList);
    +        for ($i = 0; $i < $iCount; ++$i) {
    +            // Make SBD, small data string
    +            if ($raList[$i]->Type == OLE::OLE_PPS_TYPE_FILE) {
    +                if ($raList[$i]->Size <= 0) {
    +                    continue;
    +                }
    +                if ($raList[$i]->Size < OLE::OLE_DATA_SIZE_SMALL) {
    +                    $iSmbCnt = floor($raList[$i]->Size / $this->smallBlockSize)
    +                                  + (($raList[$i]->Size % $this->smallBlockSize) ? 1 : 0);
    +                    // Add to SBD
    +                    $jB = $iSmbCnt - 1;
    +                    for ($j = 0; $j < $jB; ++$j) {
    +                        fwrite($FILE, pack('V', $j + $iSmBlk + 1));
    +                    }
    +                    fwrite($FILE, pack('V', -2));
    +
    +                    // Add to Data String(this will be written for RootEntry)
    +                    $sRes .= $raList[$i]->_data;
    +                    if ($raList[$i]->Size % $this->smallBlockSize) {
    +                        $sRes .= str_repeat("\x00", $this->smallBlockSize - ($raList[$i]->Size % $this->smallBlockSize));
    +                    }
    +                    // Set for PPS
    +                    $raList[$i]->startBlock = $iSmBlk;
    +                    $iSmBlk += $iSmbCnt;
    +                }
    +            }
    +        }
    +        $iSbCnt = floor($this->bigBlockSize / OLE::OLE_LONG_INT_SIZE);
    +        if ($iSmBlk % $iSbCnt) {
    +            $iB = $iSbCnt - ($iSmBlk % $iSbCnt);
    +            for ($i = 0; $i < $iB; ++$i) {
    +                fwrite($FILE, pack('V', -1));
    +            }
    +        }
    +
    +        return $sRes;
    +    }
    +
    +    /**
    +     * Saves all the PPS's WKs.
    +     *
    +     * @param array $raList Reference to an array with all PPS's
    +     */
    +    public function _savePps(&$raList)
    +    {
    +        // Save each PPS WK
    +        $iC = count($raList);
    +        for ($i = 0; $i < $iC; ++$i) {
    +            fwrite($this->fileHandle, $raList[$i]->_getPpsWk());
    +        }
    +        // Adjust for Block
    +        $iCnt = count($raList);
    +        $iBCnt = $this->bigBlockSize / OLE::OLE_PPS_SIZE;
    +        if ($iCnt % $iBCnt) {
    +            fwrite($this->fileHandle, str_repeat("\x00", ($iBCnt - ($iCnt % $iBCnt)) * OLE::OLE_PPS_SIZE));
    +        }
    +    }
    +
    +    /**
    +     * Saving Big Block Depot.
    +     *
    +     * @param int $iSbdSize
    +     * @param int $iBsize
    +     * @param int $iPpsCnt
    +     */
    +    public function _saveBbd($iSbdSize, $iBsize, $iPpsCnt)
    +    {
    +        $FILE = $this->fileHandle;
    +        // Calculate Basic Setting
    +        $iBbCnt = $this->bigBlockSize / OLE::OLE_LONG_INT_SIZE;
    +        $i1stBdL = ($this->bigBlockSize - 0x4C) / OLE::OLE_LONG_INT_SIZE;
    +
    +        $iBdExL = 0;
    +        $iAll = $iBsize + $iPpsCnt + $iSbdSize;
    +        $iAllW = $iAll;
    +        $iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt) ? 1 : 0);
    +        $iBdCnt = floor(($iAll + $iBdCntW) / $iBbCnt) + ((($iAllW + $iBdCntW) % $iBbCnt) ? 1 : 0);
    +        // Calculate BD count
    +        if ($iBdCnt > $i1stBdL) {
    +            while (1) {
    +                ++$iBdExL;
    +                ++$iAllW;
    +                $iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt) ? 1 : 0);
    +                $iBdCnt = floor(($iAllW + $iBdCntW) / $iBbCnt) + ((($iAllW + $iBdCntW) % $iBbCnt) ? 1 : 0);
    +                if ($iBdCnt <= ($iBdExL * $iBbCnt + $i1stBdL)) {
    +                    break;
    +                }
    +            }
    +        }
    +
    +        // Making BD
    +        // Set for SBD
    +        if ($iSbdSize > 0) {
    +            for ($i = 0; $i < ($iSbdSize - 1); ++$i) {
    +                fwrite($FILE, pack('V', $i + 1));
    +            }
    +            fwrite($FILE, pack('V', -2));
    +        }
    +        // Set for B
    +        for ($i = 0; $i < ($iBsize - 1); ++$i) {
    +            fwrite($FILE, pack('V', $i + $iSbdSize + 1));
    +        }
    +        fwrite($FILE, pack('V', -2));
    +
    +        // Set for PPS
    +        for ($i = 0; $i < ($iPpsCnt - 1); ++$i) {
    +            fwrite($FILE, pack('V', $i + $iSbdSize + $iBsize + 1));
    +        }
    +        fwrite($FILE, pack('V', -2));
    +        // Set for BBD itself ( 0xFFFFFFFD : BBD)
    +        for ($i = 0; $i < $iBdCnt; ++$i) {
    +            fwrite($FILE, pack('V', 0xFFFFFFFD));
    +        }
    +        // Set for ExtraBDList
    +        for ($i = 0; $i < $iBdExL; ++$i) {
    +            fwrite($FILE, pack('V', 0xFFFFFFFC));
    +        }
    +        // Adjust for Block
    +        if (($iAllW + $iBdCnt) % $iBbCnt) {
    +            $iBlock = ($iBbCnt - (($iAllW + $iBdCnt) % $iBbCnt));
    +            for ($i = 0; $i < $iBlock; ++$i) {
    +                fwrite($FILE, pack('V', -1));
    +            }
    +        }
    +        // Extra BDList
    +        if ($iBdCnt > $i1stBdL) {
    +            $iN = 0;
    +            $iNb = 0;
    +            for ($i = $i1stBdL; $i < $iBdCnt; $i++, ++$iN) {
    +                if ($iN >= ($iBbCnt - 1)) {
    +                    $iN = 0;
    +                    ++$iNb;
    +                    fwrite($FILE, pack('V', $iAll + $iBdCnt + $iNb));
    +                }
    +                fwrite($FILE, pack('V', $iBsize + $iSbdSize + $iPpsCnt + $i));
    +            }
    +            if (($iBdCnt - $i1stBdL) % ($iBbCnt - 1)) {
    +                $iB = ($iBbCnt - 1) - (($iBdCnt - $i1stBdL) % ($iBbCnt - 1));
    +                for ($i = 0; $i < $iB; ++$i) {
    +                    fwrite($FILE, pack('V', -1));
    +                }
    +            }
    +            fwrite($FILE, pack('V', -2));
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLERead.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLERead.php
    new file mode 100644
    index 00000000000..3af3970057b
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/OLERead.php
    @@ -0,0 +1,352 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +use PhpOffice\PhpSpreadsheet\Reader\Exception as ReaderException;
    +
    +class OLERead
    +{
    +    private $data = '';
    +
    +    // Size of a sector = 512 bytes
    +    const BIG_BLOCK_SIZE = 0x200;
    +
    +    // Size of a short sector = 64 bytes
    +    const SMALL_BLOCK_SIZE = 0x40;
    +
    +    // Size of a directory entry always = 128 bytes
    +    const PROPERTY_STORAGE_BLOCK_SIZE = 0x80;
    +
    +    // Minimum size of a standard stream = 4096 bytes, streams smaller than this are stored as short streams
    +    const SMALL_BLOCK_THRESHOLD = 0x1000;
    +
    +    // header offsets
    +    const NUM_BIG_BLOCK_DEPOT_BLOCKS_POS = 0x2c;
    +    const ROOT_START_BLOCK_POS = 0x30;
    +    const SMALL_BLOCK_DEPOT_BLOCK_POS = 0x3c;
    +    const EXTENSION_BLOCK_POS = 0x44;
    +    const NUM_EXTENSION_BLOCK_POS = 0x48;
    +    const BIG_BLOCK_DEPOT_BLOCKS_POS = 0x4c;
    +
    +    // property storage offsets (directory offsets)
    +    const SIZE_OF_NAME_POS = 0x40;
    +    const TYPE_POS = 0x42;
    +    const START_BLOCK_POS = 0x74;
    +    const SIZE_POS = 0x78;
    +
    +    public $wrkbook;
    +
    +    public $summaryInformation;
    +
    +    public $documentSummaryInformation;
    +
    +    /**
    +     * @var int
    +     */
    +    private $numBigBlockDepotBlocks;
    +
    +    /**
    +     * @var int
    +     */
    +    private $rootStartBlock;
    +
    +    /**
    +     * @var int
    +     */
    +    private $sbdStartBlock;
    +
    +    /**
    +     * @var int
    +     */
    +    private $extensionBlock;
    +
    +    /**
    +     * @var int
    +     */
    +    private $numExtensionBlocks;
    +
    +    /**
    +     * @var string
    +     */
    +    private $bigBlockChain;
    +
    +    /**
    +     * @var string
    +     */
    +    private $smallBlockChain;
    +
    +    /**
    +     * @var string
    +     */
    +    private $entry;
    +
    +    /**
    +     * @var int
    +     */
    +    private $rootentry;
    +
    +    /**
    +     * @var array
    +     */
    +    private $props = [];
    +
    +    /**
    +     * Read the file.
    +     *
    +     * @param $pFilename string Filename
    +     *
    +     * @throws ReaderException
    +     */
    +    public function read($pFilename)
    +    {
    +        File::assertFile($pFilename);
    +
    +        // Get the file identifier
    +        // Don't bother reading the whole file until we know it's a valid OLE file
    +        $this->data = file_get_contents($pFilename, false, null, 0, 8);
    +
    +        // Check OLE identifier
    +        $identifierOle = pack('CCCCCCCC', 0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1);
    +        if ($this->data != $identifierOle) {
    +            throw new ReaderException('The filename ' . $pFilename . ' is not recognised as an OLE file');
    +        }
    +
    +        // Get the file data
    +        $this->data = file_get_contents($pFilename);
    +
    +        // Total number of sectors used for the SAT
    +        $this->numBigBlockDepotBlocks = self::getInt4d($this->data, self::NUM_BIG_BLOCK_DEPOT_BLOCKS_POS);
    +
    +        // SecID of the first sector of the directory stream
    +        $this->rootStartBlock = self::getInt4d($this->data, self::ROOT_START_BLOCK_POS);
    +
    +        // SecID of the first sector of the SSAT (or -2 if not extant)
    +        $this->sbdStartBlock = self::getInt4d($this->data, self::SMALL_BLOCK_DEPOT_BLOCK_POS);
    +
    +        // SecID of the first sector of the MSAT (or -2 if no additional sectors are used)
    +        $this->extensionBlock = self::getInt4d($this->data, self::EXTENSION_BLOCK_POS);
    +
    +        // Total number of sectors used by MSAT
    +        $this->numExtensionBlocks = self::getInt4d($this->data, self::NUM_EXTENSION_BLOCK_POS);
    +
    +        $bigBlockDepotBlocks = [];
    +        $pos = self::BIG_BLOCK_DEPOT_BLOCKS_POS;
    +
    +        $bbdBlocks = $this->numBigBlockDepotBlocks;
    +
    +        if ($this->numExtensionBlocks != 0) {
    +            $bbdBlocks = (self::BIG_BLOCK_SIZE - self::BIG_BLOCK_DEPOT_BLOCKS_POS) / 4;
    +        }
    +
    +        for ($i = 0; $i < $bbdBlocks; ++$i) {
    +            $bigBlockDepotBlocks[$i] = self::getInt4d($this->data, $pos);
    +            $pos += 4;
    +        }
    +
    +        for ($j = 0; $j < $this->numExtensionBlocks; ++$j) {
    +            $pos = ($this->extensionBlock + 1) * self::BIG_BLOCK_SIZE;
    +            $blocksToRead = min($this->numBigBlockDepotBlocks - $bbdBlocks, self::BIG_BLOCK_SIZE / 4 - 1);
    +
    +            for ($i = $bbdBlocks; $i < $bbdBlocks + $blocksToRead; ++$i) {
    +                $bigBlockDepotBlocks[$i] = self::getInt4d($this->data, $pos);
    +                $pos += 4;
    +            }
    +
    +            $bbdBlocks += $blocksToRead;
    +            if ($bbdBlocks < $this->numBigBlockDepotBlocks) {
    +                $this->extensionBlock = self::getInt4d($this->data, $pos);
    +            }
    +        }
    +
    +        $pos = 0;
    +        $this->bigBlockChain = '';
    +        $bbs = self::BIG_BLOCK_SIZE / 4;
    +        for ($i = 0; $i < $this->numBigBlockDepotBlocks; ++$i) {
    +            $pos = ($bigBlockDepotBlocks[$i] + 1) * self::BIG_BLOCK_SIZE;
    +
    +            $this->bigBlockChain .= substr($this->data, $pos, 4 * $bbs);
    +            $pos += 4 * $bbs;
    +        }
    +
    +        $pos = 0;
    +        $sbdBlock = $this->sbdStartBlock;
    +        $this->smallBlockChain = '';
    +        while ($sbdBlock != -2) {
    +            $pos = ($sbdBlock + 1) * self::BIG_BLOCK_SIZE;
    +
    +            $this->smallBlockChain .= substr($this->data, $pos, 4 * $bbs);
    +            $pos += 4 * $bbs;
    +
    +            $sbdBlock = self::getInt4d($this->bigBlockChain, $sbdBlock * 4);
    +        }
    +
    +        // read the directory stream
    +        $block = $this->rootStartBlock;
    +        $this->entry = $this->_readData($block);
    +
    +        $this->readPropertySets();
    +    }
    +
    +    /**
    +     * Extract binary stream data.
    +     *
    +     * @param int $stream
    +     *
    +     * @return string
    +     */
    +    public function getStream($stream)
    +    {
    +        if ($stream === null) {
    +            return null;
    +        }
    +
    +        $streamData = '';
    +
    +        if ($this->props[$stream]['size'] < self::SMALL_BLOCK_THRESHOLD) {
    +            $rootdata = $this->_readData($this->props[$this->rootentry]['startBlock']);
    +
    +            $block = $this->props[$stream]['startBlock'];
    +
    +            while ($block != -2) {
    +                $pos = $block * self::SMALL_BLOCK_SIZE;
    +                $streamData .= substr($rootdata, $pos, self::SMALL_BLOCK_SIZE);
    +
    +                $block = self::getInt4d($this->smallBlockChain, $block * 4);
    +            }
    +
    +            return $streamData;
    +        }
    +        $numBlocks = $this->props[$stream]['size'] / self::BIG_BLOCK_SIZE;
    +        if ($this->props[$stream]['size'] % self::BIG_BLOCK_SIZE != 0) {
    +            ++$numBlocks;
    +        }
    +
    +        if ($numBlocks == 0) {
    +            return '';
    +        }
    +
    +        $block = $this->props[$stream]['startBlock'];
    +
    +        while ($block != -2) {
    +            $pos = ($block + 1) * self::BIG_BLOCK_SIZE;
    +            $streamData .= substr($this->data, $pos, self::BIG_BLOCK_SIZE);
    +            $block = self::getInt4d($this->bigBlockChain, $block * 4);
    +        }
    +
    +        return $streamData;
    +    }
    +
    +    /**
    +     * Read a standard stream (by joining sectors using information from SAT).
    +     *
    +     * @param int $bl Sector ID where the stream starts
    +     *
    +     * @return string Data for standard stream
    +     */
    +    private function _readData($bl)
    +    {
    +        $block = $bl;
    +        $data = '';
    +
    +        while ($block != -2) {
    +            $pos = ($block + 1) * self::BIG_BLOCK_SIZE;
    +            $data .= substr($this->data, $pos, self::BIG_BLOCK_SIZE);
    +            $block = self::getInt4d($this->bigBlockChain, $block * 4);
    +        }
    +
    +        return $data;
    +    }
    +
    +    /**
    +     * Read entries in the directory stream.
    +     */
    +    private function readPropertySets()
    +    {
    +        $offset = 0;
    +
    +        // loop through entires, each entry is 128 bytes
    +        $entryLen = strlen($this->entry);
    +        while ($offset < $entryLen) {
    +            // entry data (128 bytes)
    +            $d = substr($this->entry, $offset, self::PROPERTY_STORAGE_BLOCK_SIZE);
    +
    +            // size in bytes of name
    +            $nameSize = ord($d[self::SIZE_OF_NAME_POS]) | (ord($d[self::SIZE_OF_NAME_POS + 1]) << 8);
    +
    +            // type of entry
    +            $type = ord($d[self::TYPE_POS]);
    +
    +            // sectorID of first sector or short sector, if this entry refers to a stream (the case with workbook)
    +            // sectorID of first sector of the short-stream container stream, if this entry is root entry
    +            $startBlock = self::getInt4d($d, self::START_BLOCK_POS);
    +
    +            $size = self::getInt4d($d, self::SIZE_POS);
    +
    +            $name = str_replace("\x00", '', substr($d, 0, $nameSize));
    +
    +            $this->props[] = [
    +                'name' => $name,
    +                'type' => $type,
    +                'startBlock' => $startBlock,
    +                'size' => $size,
    +            ];
    +
    +            // tmp helper to simplify checks
    +            $upName = strtoupper($name);
    +
    +            // Workbook directory entry (BIFF5 uses Book, BIFF8 uses Workbook)
    +            if (($upName === 'WORKBOOK') || ($upName === 'BOOK')) {
    +                $this->wrkbook = count($this->props) - 1;
    +            } elseif ($upName === 'ROOT ENTRY' || $upName === 'R') {
    +                // Root entry
    +                $this->rootentry = count($this->props) - 1;
    +            }
    +
    +            // Summary information
    +            if ($name == chr(5) . 'SummaryInformation') {
    +                $this->summaryInformation = count($this->props) - 1;
    +            }
    +
    +            // Additional Document Summary information
    +            if ($name == chr(5) . 'DocumentSummaryInformation') {
    +                $this->documentSummaryInformation = count($this->props) - 1;
    +            }
    +
    +            $offset += self::PROPERTY_STORAGE_BLOCK_SIZE;
    +        }
    +    }
    +
    +    /**
    +     * Read 4 bytes of data at specified position.
    +     *
    +     * @param string $data
    +     * @param int $pos
    +     *
    +     * @return int
    +     */
    +    private static function getInt4d($data, $pos)
    +    {
    +        if ($pos < 0) {
    +            // Invalid position
    +            throw new ReaderException('Parameter pos=' . $pos . ' is invalid.');
    +        }
    +
    +        $len = strlen($data);
    +        if ($len < $pos + 4) {
    +            $data .= str_repeat("\0", $pos + 4 - $len);
    +        }
    +
    +        // FIX: represent numbers correctly on 64-bit system
    +        // http://sourceforge.net/tracker/index.php?func=detail&aid=1487372&group_id=99160&atid=623334
    +        // Changed by Andreas Rehm 2006 to ensure correct result of the <<24 block on 32 and 64bit systems
    +        $_or_24 = ord($data[$pos + 3]);
    +        if ($_or_24 >= 128) {
    +            // negative number
    +            $_ord_24 = -abs((256 - $_or_24) << 24);
    +        } else {
    +            $_ord_24 = ($_or_24 & 127) << 24;
    +        }
    +
    +        return ord($data[$pos]) | (ord($data[$pos + 1]) << 8) | (ord($data[$pos + 2]) << 16) | $_ord_24;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/PasswordHasher.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/PasswordHasher.php
    new file mode 100644
    index 00000000000..9b0080b9dbf
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/PasswordHasher.php
    @@ -0,0 +1,37 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +class PasswordHasher
    +{
    +    /**
    +     * Create a password hash from a given string.
    +     *
    +     * This method is based on the algorithm provided by
    +     * Daniel Rentz of OpenOffice and the PEAR package
    +     * Spreadsheet_Excel_Writer by Xavier Noguer <xnoguer@rezebra.com>.
    +     *
    +     * @param string $pPassword Password to hash
    +     *
    +     * @return string Hashed password
    +     */
    +    public static function hashPassword($pPassword)
    +    {
    +        $password = 0x0000;
    +        $charPos = 1; // char position
    +
    +        // split the plain text password in its component characters
    +        $chars = preg_split('//', $pPassword, -1, PREG_SPLIT_NO_EMPTY);
    +        foreach ($chars as $char) {
    +            $value = ord($char) << $charPos++; // shifted ASCII value
    +            $rotated_bits = $value >> 15; // rotated bits beyond bit 15
    +            $value &= 0x7fff; // first 15 bits
    +            $password ^= ($value | $rotated_bits);
    +        }
    +
    +        $password ^= strlen($pPassword);
    +        $password ^= 0xCE4B;
    +
    +        return strtoupper(dechex($password));
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/StringHelper.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/StringHelper.php
    new file mode 100644
    index 00000000000..a5702775074
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/StringHelper.php
    @@ -0,0 +1,724 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +
    +class StringHelper
    +{
    +    /**    Constants                */
    +    /**    Regular Expressions        */
    +    //    Fraction
    +    const STRING_REGEXP_FRACTION = '(-?)(\d+)\s+(\d+\/\d+)';
    +
    +    /**
    +     * Control characters array.
    +     *
    +     * @var string[]
    +     */
    +    private static $controlCharacters = [];
    +
    +    /**
    +     * SYLK Characters array.
    +     *
    +     * @var array
    +     */
    +    private static $SYLKCharacters = [];
    +
    +    /**
    +     * Decimal separator.
    +     *
    +     * @var string
    +     */
    +    private static $decimalSeparator;
    +
    +    /**
    +     * Thousands separator.
    +     *
    +     * @var string
    +     */
    +    private static $thousandsSeparator;
    +
    +    /**
    +     * Currency code.
    +     *
    +     * @var string
    +     */
    +    private static $currencyCode;
    +
    +    /**
    +     * Is iconv extension avalable?
    +     *
    +     * @var bool
    +     */
    +    private static $isIconvEnabled;
    +
    +    /**
    +     * iconv options.
    +     *
    +     * @var string
    +     */
    +    private static $iconvOptions = '//IGNORE//TRANSLIT';
    +
    +    /**
    +     * Build control characters array.
    +     */
    +    private static function buildControlCharacters()
    +    {
    +        for ($i = 0; $i <= 31; ++$i) {
    +            if ($i != 9 && $i != 10 && $i != 13) {
    +                $find = '_x' . sprintf('%04s', strtoupper(dechex($i))) . '_';
    +                $replace = chr($i);
    +                self::$controlCharacters[$find] = $replace;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Build SYLK characters array.
    +     */
    +    private static function buildSYLKCharacters()
    +    {
    +        self::$SYLKCharacters = [
    +            "\x1B 0" => chr(0),
    +            "\x1B 1" => chr(1),
    +            "\x1B 2" => chr(2),
    +            "\x1B 3" => chr(3),
    +            "\x1B 4" => chr(4),
    +            "\x1B 5" => chr(5),
    +            "\x1B 6" => chr(6),
    +            "\x1B 7" => chr(7),
    +            "\x1B 8" => chr(8),
    +            "\x1B 9" => chr(9),
    +            "\x1B :" => chr(10),
    +            "\x1B ;" => chr(11),
    +            "\x1B <" => chr(12),
    +            "\x1B =" => chr(13),
    +            "\x1B >" => chr(14),
    +            "\x1B ?" => chr(15),
    +            "\x1B!0" => chr(16),
    +            "\x1B!1" => chr(17),
    +            "\x1B!2" => chr(18),
    +            "\x1B!3" => chr(19),
    +            "\x1B!4" => chr(20),
    +            "\x1B!5" => chr(21),
    +            "\x1B!6" => chr(22),
    +            "\x1B!7" => chr(23),
    +            "\x1B!8" => chr(24),
    +            "\x1B!9" => chr(25),
    +            "\x1B!:" => chr(26),
    +            "\x1B!;" => chr(27),
    +            "\x1B!<" => chr(28),
    +            "\x1B!=" => chr(29),
    +            "\x1B!>" => chr(30),
    +            "\x1B!?" => chr(31),
    +            "\x1B'?" => chr(127),
    +            "\x1B(0" => '€', // 128 in CP1252
    +            "\x1B(2" => '‚', // 130 in CP1252
    +            "\x1B(3" => 'ƒ', // 131 in CP1252
    +            "\x1B(4" => '„', // 132 in CP1252
    +            "\x1B(5" => '…', // 133 in CP1252
    +            "\x1B(6" => '†', // 134 in CP1252
    +            "\x1B(7" => '‡', // 135 in CP1252
    +            "\x1B(8" => 'ˆ', // 136 in CP1252
    +            "\x1B(9" => '‰', // 137 in CP1252
    +            "\x1B(:" => 'Š', // 138 in CP1252
    +            "\x1B(;" => '‹', // 139 in CP1252
    +            "\x1BNj" => 'Œ', // 140 in CP1252
    +            "\x1B(>" => 'Ž', // 142 in CP1252
    +            "\x1B)1" => '‘', // 145 in CP1252
    +            "\x1B)2" => '’', // 146 in CP1252
    +            "\x1B)3" => '“', // 147 in CP1252
    +            "\x1B)4" => '”', // 148 in CP1252
    +            "\x1B)5" => '•', // 149 in CP1252
    +            "\x1B)6" => '–', // 150 in CP1252
    +            "\x1B)7" => '—', // 151 in CP1252
    +            "\x1B)8" => '˜', // 152 in CP1252
    +            "\x1B)9" => '™', // 153 in CP1252
    +            "\x1B):" => 'š', // 154 in CP1252
    +            "\x1B);" => '›', // 155 in CP1252
    +            "\x1BNz" => 'œ', // 156 in CP1252
    +            "\x1B)>" => 'ž', // 158 in CP1252
    +            "\x1B)?" => 'Ÿ', // 159 in CP1252
    +            "\x1B*0" => ' ', // 160 in CP1252
    +            "\x1BN!" => '¡', // 161 in CP1252
    +            "\x1BN\"" => '¢', // 162 in CP1252
    +            "\x1BN#" => '£', // 163 in CP1252
    +            "\x1BN(" => '¤', // 164 in CP1252
    +            "\x1BN%" => '¥', // 165 in CP1252
    +            "\x1B*6" => '¦', // 166 in CP1252
    +            "\x1BN'" => '§', // 167 in CP1252
    +            "\x1BNH " => '¨', // 168 in CP1252
    +            "\x1BNS" => '©', // 169 in CP1252
    +            "\x1BNc" => 'ª', // 170 in CP1252
    +            "\x1BN+" => '«', // 171 in CP1252
    +            "\x1B*<" => '¬', // 172 in CP1252
    +            "\x1B*=" => '­', // 173 in CP1252
    +            "\x1BNR" => '®', // 174 in CP1252
    +            "\x1B*?" => '¯', // 175 in CP1252
    +            "\x1BN0" => '°', // 176 in CP1252
    +            "\x1BN1" => '±', // 177 in CP1252
    +            "\x1BN2" => '²', // 178 in CP1252
    +            "\x1BN3" => '³', // 179 in CP1252
    +            "\x1BNB " => '´', // 180 in CP1252
    +            "\x1BN5" => 'µ', // 181 in CP1252
    +            "\x1BN6" => '¶', // 182 in CP1252
    +            "\x1BN7" => '·', // 183 in CP1252
    +            "\x1B+8" => '¸', // 184 in CP1252
    +            "\x1BNQ" => '¹', // 185 in CP1252
    +            "\x1BNk" => 'º', // 186 in CP1252
    +            "\x1BN;" => '»', // 187 in CP1252
    +            "\x1BN<" => '¼', // 188 in CP1252
    +            "\x1BN=" => '½', // 189 in CP1252
    +            "\x1BN>" => '¾', // 190 in CP1252
    +            "\x1BN?" => '¿', // 191 in CP1252
    +            "\x1BNAA" => 'À', // 192 in CP1252
    +            "\x1BNBA" => 'Á', // 193 in CP1252
    +            "\x1BNCA" => 'Â', // 194 in CP1252
    +            "\x1BNDA" => 'Ã', // 195 in CP1252
    +            "\x1BNHA" => 'Ä', // 196 in CP1252
    +            "\x1BNJA" => 'Å', // 197 in CP1252
    +            "\x1BNa" => 'Æ', // 198 in CP1252
    +            "\x1BNKC" => 'Ç', // 199 in CP1252
    +            "\x1BNAE" => 'È', // 200 in CP1252
    +            "\x1BNBE" => 'É', // 201 in CP1252
    +            "\x1BNCE" => 'Ê', // 202 in CP1252
    +            "\x1BNHE" => 'Ë', // 203 in CP1252
    +            "\x1BNAI" => 'Ì', // 204 in CP1252
    +            "\x1BNBI" => 'Í', // 205 in CP1252
    +            "\x1BNCI" => 'Î', // 206 in CP1252
    +            "\x1BNHI" => 'Ï', // 207 in CP1252
    +            "\x1BNb" => 'Ð', // 208 in CP1252
    +            "\x1BNDN" => 'Ñ', // 209 in CP1252
    +            "\x1BNAO" => 'Ò', // 210 in CP1252
    +            "\x1BNBO" => 'Ó', // 211 in CP1252
    +            "\x1BNCO" => 'Ô', // 212 in CP1252
    +            "\x1BNDO" => 'Õ', // 213 in CP1252
    +            "\x1BNHO" => 'Ö', // 214 in CP1252
    +            "\x1B-7" => '×', // 215 in CP1252
    +            "\x1BNi" => 'Ø', // 216 in CP1252
    +            "\x1BNAU" => 'Ù', // 217 in CP1252
    +            "\x1BNBU" => 'Ú', // 218 in CP1252
    +            "\x1BNCU" => 'Û', // 219 in CP1252
    +            "\x1BNHU" => 'Ü', // 220 in CP1252
    +            "\x1B-=" => 'Ý', // 221 in CP1252
    +            "\x1BNl" => 'Þ', // 222 in CP1252
    +            "\x1BN{" => 'ß', // 223 in CP1252
    +            "\x1BNAa" => 'à', // 224 in CP1252
    +            "\x1BNBa" => 'á', // 225 in CP1252
    +            "\x1BNCa" => 'â', // 226 in CP1252
    +            "\x1BNDa" => 'ã', // 227 in CP1252
    +            "\x1BNHa" => 'ä', // 228 in CP1252
    +            "\x1BNJa" => 'å', // 229 in CP1252
    +            "\x1BNq" => 'æ', // 230 in CP1252
    +            "\x1BNKc" => 'ç', // 231 in CP1252
    +            "\x1BNAe" => 'è', // 232 in CP1252
    +            "\x1BNBe" => 'é', // 233 in CP1252
    +            "\x1BNCe" => 'ê', // 234 in CP1252
    +            "\x1BNHe" => 'ë', // 235 in CP1252
    +            "\x1BNAi" => 'ì', // 236 in CP1252
    +            "\x1BNBi" => 'í', // 237 in CP1252
    +            "\x1BNCi" => 'î', // 238 in CP1252
    +            "\x1BNHi" => 'ï', // 239 in CP1252
    +            "\x1BNs" => 'ð', // 240 in CP1252
    +            "\x1BNDn" => 'ñ', // 241 in CP1252
    +            "\x1BNAo" => 'ò', // 242 in CP1252
    +            "\x1BNBo" => 'ó', // 243 in CP1252
    +            "\x1BNCo" => 'ô', // 244 in CP1252
    +            "\x1BNDo" => 'õ', // 245 in CP1252
    +            "\x1BNHo" => 'ö', // 246 in CP1252
    +            "\x1B/7" => '÷', // 247 in CP1252
    +            "\x1BNy" => 'ø', // 248 in CP1252
    +            "\x1BNAu" => 'ù', // 249 in CP1252
    +            "\x1BNBu" => 'ú', // 250 in CP1252
    +            "\x1BNCu" => 'û', // 251 in CP1252
    +            "\x1BNHu" => 'ü', // 252 in CP1252
    +            "\x1B/=" => 'ý', // 253 in CP1252
    +            "\x1BN|" => 'þ', // 254 in CP1252
    +            "\x1BNHy" => 'ÿ', // 255 in CP1252
    +        ];
    +    }
    +
    +    /**
    +     * Get whether iconv extension is available.
    +     *
    +     * @return bool
    +     */
    +    public static function getIsIconvEnabled()
    +    {
    +        if (isset(self::$isIconvEnabled)) {
    +            return self::$isIconvEnabled;
    +        }
    +
    +        // Assume no problems with iconv
    +        self::$isIconvEnabled = true;
    +
    +        // Fail if iconv doesn't exist
    +        if (!function_exists('iconv')) {
    +            self::$isIconvEnabled = false;
    +        } elseif (!@iconv('UTF-8', 'UTF-16LE', 'x')) {
    +            // Sometimes iconv is not working, and e.g. iconv('UTF-8', 'UTF-16LE', 'x') just returns false,
    +            self::$isIconvEnabled = false;
    +        } elseif (defined('PHP_OS') && @stristr(PHP_OS, 'AIX') && defined('ICONV_IMPL') && (@strcasecmp(ICONV_IMPL, 'unknown') == 0) && defined('ICONV_VERSION') && (@strcasecmp(ICONV_VERSION, 'unknown') == 0)) {
    +            // CUSTOM: IBM AIX iconv() does not work
    +            self::$isIconvEnabled = false;
    +        }
    +
    +        // Deactivate iconv default options if they fail (as seen on IMB i)
    +        if (self::$isIconvEnabled && !@iconv('UTF-8', 'UTF-16LE' . self::$iconvOptions, 'x')) {
    +            self::$iconvOptions = '';
    +        }
    +
    +        return self::$isIconvEnabled;
    +    }
    +
    +    private static function buildCharacterSets()
    +    {
    +        if (empty(self::$controlCharacters)) {
    +            self::buildControlCharacters();
    +        }
    +
    +        if (empty(self::$SYLKCharacters)) {
    +            self::buildSYLKCharacters();
    +        }
    +    }
    +
    +    /**
    +     * Convert from OpenXML escaped control character to PHP control character.
    +     *
    +     * Excel 2007 team:
    +     * ----------------
    +     * That's correct, control characters are stored directly in the shared-strings table.
    +     * We do encode characters that cannot be represented in XML using the following escape sequence:
    +     * _xHHHH_ where H represents a hexadecimal character in the character's value...
    +     * So you could end up with something like _x0008_ in a string (either in a cell value (<v>)
    +     * element or in the shared string <t> element.
    +     *
    +     * @param string $value Value to unescape
    +     *
    +     * @return string
    +     */
    +    public static function controlCharacterOOXML2PHP($value)
    +    {
    +        self::buildCharacterSets();
    +
    +        return str_replace(array_keys(self::$controlCharacters), array_values(self::$controlCharacters), $value);
    +    }
    +
    +    /**
    +     * Convert from PHP control character to OpenXML escaped control character.
    +     *
    +     * Excel 2007 team:
    +     * ----------------
    +     * That's correct, control characters are stored directly in the shared-strings table.
    +     * We do encode characters that cannot be represented in XML using the following escape sequence:
    +     * _xHHHH_ where H represents a hexadecimal character in the character's value...
    +     * So you could end up with something like _x0008_ in a string (either in a cell value (<v>)
    +     * element or in the shared string <t> element.
    +     *
    +     * @param string $value Value to escape
    +     *
    +     * @return string
    +     */
    +    public static function controlCharacterPHP2OOXML($value)
    +    {
    +        self::buildCharacterSets();
    +
    +        return str_replace(array_values(self::$controlCharacters), array_keys(self::$controlCharacters), $value);
    +    }
    +
    +    /**
    +     * Try to sanitize UTF8, stripping invalid byte sequences. Not perfect. Does not surrogate characters.
    +     *
    +     * @param string $value
    +     *
    +     * @return string
    +     */
    +    public static function sanitizeUTF8($value)
    +    {
    +        if (self::getIsIconvEnabled()) {
    +            $value = @iconv('UTF-8', 'UTF-8', $value);
    +
    +            return $value;
    +        }
    +
    +        $value = mb_convert_encoding($value, 'UTF-8', 'UTF-8');
    +
    +        return $value;
    +    }
    +
    +    /**
    +     * Check if a string contains UTF8 data.
    +     *
    +     * @param string $value
    +     *
    +     * @return bool
    +     */
    +    public static function isUTF8($value)
    +    {
    +        return $value === '' || preg_match('/^./su', $value) === 1;
    +    }
    +
    +    /**
    +     * Formats a numeric value as a string for output in various output writers forcing
    +     * point as decimal separator in case locale is other than English.
    +     *
    +     * @param mixed $value
    +     *
    +     * @return string
    +     */
    +    public static function formatNumber($value)
    +    {
    +        if (is_float($value)) {
    +            return str_replace(',', '.', $value);
    +        }
    +
    +        return (string) $value;
    +    }
    +
    +    /**
    +     * Converts a UTF-8 string into BIFF8 Unicode string data (8-bit string length)
    +     * Writes the string using uncompressed notation, no rich text, no Asian phonetics
    +     * If mbstring extension is not available, ASCII is assumed, and compressed notation is used
    +     * although this will give wrong results for non-ASCII strings
    +     * see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3.
    +     *
    +     * @param string $value UTF-8 encoded string
    +     * @param mixed[] $arrcRuns Details of rich text runs in $value
    +     *
    +     * @return string
    +     */
    +    public static function UTF8toBIFF8UnicodeShort($value, $arrcRuns = [])
    +    {
    +        // character count
    +        $ln = self::countCharacters($value, 'UTF-8');
    +        // option flags
    +        if (empty($arrcRuns)) {
    +            $data = pack('CC', $ln, 0x0001);
    +            // characters
    +            $data .= self::convertEncoding($value, 'UTF-16LE', 'UTF-8');
    +        } else {
    +            $data = pack('vC', $ln, 0x09);
    +            $data .= pack('v', count($arrcRuns));
    +            // characters
    +            $data .= self::convertEncoding($value, 'UTF-16LE', 'UTF-8');
    +            foreach ($arrcRuns as $cRun) {
    +                $data .= pack('v', $cRun['strlen']);
    +                $data .= pack('v', $cRun['fontidx']);
    +            }
    +        }
    +
    +        return $data;
    +    }
    +
    +    /**
    +     * Converts a UTF-8 string into BIFF8 Unicode string data (16-bit string length)
    +     * Writes the string using uncompressed notation, no rich text, no Asian phonetics
    +     * If mbstring extension is not available, ASCII is assumed, and compressed notation is used
    +     * although this will give wrong results for non-ASCII strings
    +     * see OpenOffice.org's Documentation of the Microsoft Excel File Format, sect. 2.5.3.
    +     *
    +     * @param string $value UTF-8 encoded string
    +     *
    +     * @return string
    +     */
    +    public static function UTF8toBIFF8UnicodeLong($value)
    +    {
    +        // character count
    +        $ln = self::countCharacters($value, 'UTF-8');
    +
    +        // characters
    +        $chars = self::convertEncoding($value, 'UTF-16LE', 'UTF-8');
    +
    +        $data = pack('vC', $ln, 0x0001) . $chars;
    +
    +        return $data;
    +    }
    +
    +    /**
    +     * Convert string from one encoding to another.
    +     *
    +     * @param string $value
    +     * @param string $to Encoding to convert to, e.g. 'UTF-8'
    +     * @param string $from Encoding to convert from, e.g. 'UTF-16LE'
    +     *
    +     * @return string
    +     */
    +    public static function convertEncoding($value, $to, $from)
    +    {
    +        if (self::getIsIconvEnabled()) {
    +            $result = iconv($from, $to . self::$iconvOptions, $value);
    +            if (false !== $result) {
    +                return $result;
    +            }
    +        }
    +
    +        return mb_convert_encoding($value, $to, $from);
    +    }
    +
    +    /**
    +     * Get character count.
    +     *
    +     * @param string $value
    +     * @param string $enc Encoding
    +     *
    +     * @return int Character count
    +     */
    +    public static function countCharacters($value, $enc = 'UTF-8')
    +    {
    +        return mb_strlen($value, $enc);
    +    }
    +
    +    /**
    +     * Get a substring of a UTF-8 encoded string.
    +     *
    +     * @param string $pValue UTF-8 encoded string
    +     * @param int $pStart Start offset
    +     * @param int $pLength Maximum number of characters in substring
    +     *
    +     * @return string
    +     */
    +    public static function substring($pValue, $pStart, $pLength = 0)
    +    {
    +        return mb_substr($pValue, $pStart, $pLength, 'UTF-8');
    +    }
    +
    +    /**
    +     * Convert a UTF-8 encoded string to upper case.
    +     *
    +     * @param string $pValue UTF-8 encoded string
    +     *
    +     * @return string
    +     */
    +    public static function strToUpper($pValue)
    +    {
    +        return mb_convert_case($pValue, MB_CASE_UPPER, 'UTF-8');
    +    }
    +
    +    /**
    +     * Convert a UTF-8 encoded string to lower case.
    +     *
    +     * @param string $pValue UTF-8 encoded string
    +     *
    +     * @return string
    +     */
    +    public static function strToLower($pValue)
    +    {
    +        return mb_convert_case($pValue, MB_CASE_LOWER, 'UTF-8');
    +    }
    +
    +    /**
    +     * Convert a UTF-8 encoded string to title/proper case
    +     * (uppercase every first character in each word, lower case all other characters).
    +     *
    +     * @param string $pValue UTF-8 encoded string
    +     *
    +     * @return string
    +     */
    +    public static function strToTitle($pValue)
    +    {
    +        return mb_convert_case($pValue, MB_CASE_TITLE, 'UTF-8');
    +    }
    +
    +    public static function mbIsUpper($char)
    +    {
    +        return mb_strtolower($char, 'UTF-8') != $char;
    +    }
    +
    +    public static function mbStrSplit($string)
    +    {
    +        // Split at all position not after the start: ^
    +        // and not before the end: $
    +        return preg_split('/(?<!^)(?!$)/u', $string);
    +    }
    +
    +    /**
    +     * Reverse the case of a string, so that all uppercase characters become lowercase
    +     * and all lowercase characters become uppercase.
    +     *
    +     * @param string $pValue UTF-8 encoded string
    +     *
    +     * @return string
    +     */
    +    public static function strCaseReverse($pValue)
    +    {
    +        $characters = self::mbStrSplit($pValue);
    +        foreach ($characters as &$character) {
    +            if (self::mbIsUpper($character)) {
    +                $character = mb_strtolower($character, 'UTF-8');
    +            } else {
    +                $character = mb_strtoupper($character, 'UTF-8');
    +            }
    +        }
    +
    +        return implode('', $characters);
    +    }
    +
    +    /**
    +     * Identify whether a string contains a fractional numeric value,
    +     * and convert it to a numeric if it is.
    +     *
    +     * @param string &$operand string value to test
    +     *
    +     * @return bool
    +     */
    +    public static function convertToNumberIfFraction(&$operand)
    +    {
    +        if (preg_match('/^' . self::STRING_REGEXP_FRACTION . '$/i', $operand, $match)) {
    +            $sign = ($match[1] == '-') ? '-' : '+';
    +            $fractionFormula = '=' . $sign . $match[2] . $sign . $match[3];
    +            $operand = Calculation::getInstance()->_calculateFormulaValue($fractionFormula);
    +
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    //    function convertToNumberIfFraction()
    +
    +    /**
    +     * Get the decimal separator. If it has not yet been set explicitly, try to obtain number
    +     * formatting information from locale.
    +     *
    +     * @return string
    +     */
    +    public static function getDecimalSeparator()
    +    {
    +        if (!isset(self::$decimalSeparator)) {
    +            $localeconv = localeconv();
    +            self::$decimalSeparator = ($localeconv['decimal_point'] != '')
    +                ? $localeconv['decimal_point'] : $localeconv['mon_decimal_point'];
    +
    +            if (self::$decimalSeparator == '') {
    +                // Default to .
    +                self::$decimalSeparator = '.';
    +            }
    +        }
    +
    +        return self::$decimalSeparator;
    +    }
    +
    +    /**
    +     * Set the decimal separator. Only used by NumberFormat::toFormattedString()
    +     * to format output by \PhpOffice\PhpSpreadsheet\Writer\Html and \PhpOffice\PhpSpreadsheet\Writer\Pdf.
    +     *
    +     * @param string $pValue Character for decimal separator
    +     */
    +    public static function setDecimalSeparator($pValue)
    +    {
    +        self::$decimalSeparator = $pValue;
    +    }
    +
    +    /**
    +     * Get the thousands separator. If it has not yet been set explicitly, try to obtain number
    +     * formatting information from locale.
    +     *
    +     * @return string
    +     */
    +    public static function getThousandsSeparator()
    +    {
    +        if (!isset(self::$thousandsSeparator)) {
    +            $localeconv = localeconv();
    +            self::$thousandsSeparator = ($localeconv['thousands_sep'] != '')
    +                ? $localeconv['thousands_sep'] : $localeconv['mon_thousands_sep'];
    +
    +            if (self::$thousandsSeparator == '') {
    +                // Default to .
    +                self::$thousandsSeparator = ',';
    +            }
    +        }
    +
    +        return self::$thousandsSeparator;
    +    }
    +
    +    /**
    +     * Set the thousands separator. Only used by NumberFormat::toFormattedString()
    +     * to format output by \PhpOffice\PhpSpreadsheet\Writer\Html and \PhpOffice\PhpSpreadsheet\Writer\Pdf.
    +     *
    +     * @param string $pValue Character for thousands separator
    +     */
    +    public static function setThousandsSeparator($pValue)
    +    {
    +        self::$thousandsSeparator = $pValue;
    +    }
    +
    +    /**
    +     *    Get the currency code. If it has not yet been set explicitly, try to obtain the
    +     *        symbol information from locale.
    +     *
    +     * @return string
    +     */
    +    public static function getCurrencyCode()
    +    {
    +        if (!empty(self::$currencyCode)) {
    +            return self::$currencyCode;
    +        }
    +        self::$currencyCode = '$';
    +        $localeconv = localeconv();
    +        if (!empty($localeconv['currency_symbol'])) {
    +            self::$currencyCode = $localeconv['currency_symbol'];
    +
    +            return self::$currencyCode;
    +        }
    +        if (!empty($localeconv['int_curr_symbol'])) {
    +            self::$currencyCode = $localeconv['int_curr_symbol'];
    +
    +            return self::$currencyCode;
    +        }
    +
    +        return self::$currencyCode;
    +    }
    +
    +    /**
    +     * Set the currency code. Only used by NumberFormat::toFormattedString()
    +     *        to format output by \PhpOffice\PhpSpreadsheet\Writer\Html and \PhpOffice\PhpSpreadsheet\Writer\Pdf.
    +     *
    +     * @param string $pValue Character for currency code
    +     */
    +    public static function setCurrencyCode($pValue)
    +    {
    +        self::$currencyCode = $pValue;
    +    }
    +
    +    /**
    +     * Convert SYLK encoded string to UTF-8.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return string UTF-8 encoded string
    +     */
    +    public static function SYLKtoUTF8($pValue)
    +    {
    +        self::buildCharacterSets();
    +
    +        // If there is no escape character in the string there is nothing to do
    +        if (strpos($pValue, '') === false) {
    +            return $pValue;
    +        }
    +
    +        foreach (self::$SYLKCharacters as $k => $v) {
    +            $pValue = str_replace($k, $v, $pValue);
    +        }
    +
    +        return $pValue;
    +    }
    +
    +    /**
    +     * Retrieve any leading numeric part of a string, or return the full string if no leading numeric
    +     * (handles basic integer or float, but not exponent or non decimal).
    +     *
    +     * @param string $value
    +     *
    +     * @return mixed string or only the leading numeric part of the string
    +     */
    +    public static function testStringAsNumeric($value)
    +    {
    +        if (is_numeric($value)) {
    +            return $value;
    +        }
    +        $v = (float) $value;
    +
    +        return (is_numeric(substr($value, 0, strlen($v)))) ? $v : $value;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/TimeZone.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/TimeZone.php
    new file mode 100644
    index 00000000000..e5a99b9b6b8
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/TimeZone.php
    @@ -0,0 +1,87 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +use DateTimeZone;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class TimeZone
    +{
    +    /**
    +     * Default Timezone used for date/time conversions.
    +     *
    +     * @var string
    +     */
    +    protected static $timezone = 'UTC';
    +
    +    /**
    +     * Validate a Timezone name.
    +     *
    +     * @param string $timezone Time zone (e.g. 'Europe/London')
    +     *
    +     * @return bool Success or failure
    +     */
    +    private static function validateTimeZone($timezone)
    +    {
    +        return in_array($timezone, DateTimeZone::listIdentifiers());
    +    }
    +
    +    /**
    +     * Set the Default Timezone used for date/time conversions.
    +     *
    +     * @param string $timezone Time zone (e.g. 'Europe/London')
    +     *
    +     * @return bool Success or failure
    +     */
    +    public static function setTimeZone($timezone)
    +    {
    +        if (self::validateTimezone($timezone)) {
    +            self::$timezone = $timezone;
    +
    +            return true;
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Return the Default Timezone used for date/time conversions.
    +     *
    +     * @return string Timezone (e.g. 'Europe/London')
    +     */
    +    public static function getTimeZone()
    +    {
    +        return self::$timezone;
    +    }
    +
    +    /**
    +     *    Return the Timezone offset used for date/time conversions to/from UST
    +     * This requires both the timezone and the calculated date/time to allow for local DST.
    +     *
    +     * @param string $timezone The timezone for finding the adjustment to UST
    +     * @param int $timestamp PHP date/time value
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return int Number of seconds for timezone adjustment
    +     */
    +    public static function getTimeZoneAdjustment($timezone, $timestamp)
    +    {
    +        if ($timezone !== null) {
    +            if (!self::validateTimezone($timezone)) {
    +                throw new PhpSpreadsheetException('Invalid timezone ' . $timezone);
    +            }
    +        } else {
    +            $timezone = self::$timezone;
    +        }
    +
    +        if ($timezone == 'UST') {
    +            return 0;
    +        }
    +
    +        $objTimezone = new DateTimeZone($timezone);
    +        $transitions = $objTimezone->getTransitions($timestamp, $timestamp);
    +
    +        return (count($transitions) > 0) ? $transitions[0]['offset'] : 0;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/BestFit.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/BestFit.php
    new file mode 100644
    index 00000000000..d8e63d5e289
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/BestFit.php
    @@ -0,0 +1,463 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Trend;
    +
    +class BestFit
    +{
    +    /**
    +     * Indicator flag for a calculation error.
    +     *
    +     * @var bool
    +     */
    +    protected $error = false;
    +
    +    /**
    +     * Algorithm type to use for best-fit.
    +     *
    +     * @var string
    +     */
    +    protected $bestFitType = 'undetermined';
    +
    +    /**
    +     * Number of entries in the sets of x- and y-value arrays.
    +     *
    +     * @var int
    +     */
    +    protected $valueCount = 0;
    +
    +    /**
    +     * X-value dataseries of values.
    +     *
    +     * @var float[]
    +     */
    +    protected $xValues = [];
    +
    +    /**
    +     * Y-value dataseries of values.
    +     *
    +     * @var float[]
    +     */
    +    protected $yValues = [];
    +
    +    /**
    +     * Flag indicating whether values should be adjusted to Y=0.
    +     *
    +     * @var bool
    +     */
    +    protected $adjustToZero = false;
    +
    +    /**
    +     * Y-value series of best-fit values.
    +     *
    +     * @var float[]
    +     */
    +    protected $yBestFitValues = [];
    +
    +    protected $goodnessOfFit = 1;
    +
    +    protected $stdevOfResiduals = 0;
    +
    +    protected $covariance = 0;
    +
    +    protected $correlation = 0;
    +
    +    protected $SSRegression = 0;
    +
    +    protected $SSResiduals = 0;
    +
    +    protected $DFResiduals = 0;
    +
    +    protected $f = 0;
    +
    +    protected $slope = 0;
    +
    +    protected $slopeSE = 0;
    +
    +    protected $intersect = 0;
    +
    +    protected $intersectSE = 0;
    +
    +    protected $xOffset = 0;
    +
    +    protected $yOffset = 0;
    +
    +    public function getError()
    +    {
    +        return $this->error;
    +    }
    +
    +    public function getBestFitType()
    +    {
    +        return $this->bestFitType;
    +    }
    +
    +    /**
    +     * Return the Y-Value for a specified value of X.
    +     *
    +     * @param float $xValue X-Value
    +     *
    +     * @return bool Y-Value
    +     */
    +    public function getValueOfYForX($xValue)
    +    {
    +        return false;
    +    }
    +
    +    /**
    +     * Return the X-Value for a specified value of Y.
    +     *
    +     * @param float $yValue Y-Value
    +     *
    +     * @return bool X-Value
    +     */
    +    public function getValueOfXForY($yValue)
    +    {
    +        return false;
    +    }
    +
    +    /**
    +     * Return the original set of X-Values.
    +     *
    +     * @return float[] X-Values
    +     */
    +    public function getXValues()
    +    {
    +        return $this->xValues;
    +    }
    +
    +    /**
    +     * Return the Equation of the best-fit line.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return bool
    +     */
    +    public function getEquation($dp = 0)
    +    {
    +        return false;
    +    }
    +
    +    /**
    +     * Return the Slope of the line.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return float
    +     */
    +    public function getSlope($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->slope, $dp);
    +        }
    +
    +        return $this->slope;
    +    }
    +
    +    /**
    +     * Return the standard error of the Slope.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return float
    +     */
    +    public function getSlopeSE($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->slopeSE, $dp);
    +        }
    +
    +        return $this->slopeSE;
    +    }
    +
    +    /**
    +     * Return the Value of X where it intersects Y = 0.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return float
    +     */
    +    public function getIntersect($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->intersect, $dp);
    +        }
    +
    +        return $this->intersect;
    +    }
    +
    +    /**
    +     * Return the standard error of the Intersect.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return float
    +     */
    +    public function getIntersectSE($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->intersectSE, $dp);
    +        }
    +
    +        return $this->intersectSE;
    +    }
    +
    +    /**
    +     * Return the goodness of fit for this regression.
    +     *
    +     * @param int $dp Number of places of decimal precision to return
    +     *
    +     * @return float
    +     */
    +    public function getGoodnessOfFit($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->goodnessOfFit, $dp);
    +        }
    +
    +        return $this->goodnessOfFit;
    +    }
    +
    +    /**
    +     * Return the goodness of fit for this regression.
    +     *
    +     * @param int $dp Number of places of decimal precision to return
    +     *
    +     * @return float
    +     */
    +    public function getGoodnessOfFitPercent($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->goodnessOfFit * 100, $dp);
    +        }
    +
    +        return $this->goodnessOfFit * 100;
    +    }
    +
    +    /**
    +     * Return the standard deviation of the residuals for this regression.
    +     *
    +     * @param int $dp Number of places of decimal precision to return
    +     *
    +     * @return float
    +     */
    +    public function getStdevOfResiduals($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->stdevOfResiduals, $dp);
    +        }
    +
    +        return $this->stdevOfResiduals;
    +    }
    +
    +    /**
    +     * @param int $dp Number of places of decimal precision to return
    +     *
    +     * @return float
    +     */
    +    public function getSSRegression($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->SSRegression, $dp);
    +        }
    +
    +        return $this->SSRegression;
    +    }
    +
    +    /**
    +     * @param int $dp Number of places of decimal precision to return
    +     *
    +     * @return float
    +     */
    +    public function getSSResiduals($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->SSResiduals, $dp);
    +        }
    +
    +        return $this->SSResiduals;
    +    }
    +
    +    /**
    +     * @param int $dp Number of places of decimal precision to return
    +     *
    +     * @return float
    +     */
    +    public function getDFResiduals($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->DFResiduals, $dp);
    +        }
    +
    +        return $this->DFResiduals;
    +    }
    +
    +    /**
    +     * @param int $dp Number of places of decimal precision to return
    +     *
    +     * @return float
    +     */
    +    public function getF($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->f, $dp);
    +        }
    +
    +        return $this->f;
    +    }
    +
    +    /**
    +     * @param int $dp Number of places of decimal precision to return
    +     *
    +     * @return float
    +     */
    +    public function getCovariance($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->covariance, $dp);
    +        }
    +
    +        return $this->covariance;
    +    }
    +
    +    /**
    +     * @param int $dp Number of places of decimal precision to return
    +     *
    +     * @return float
    +     */
    +    public function getCorrelation($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round($this->correlation, $dp);
    +        }
    +
    +        return $this->correlation;
    +    }
    +
    +    /**
    +     * @return float[]
    +     */
    +    public function getYBestFitValues()
    +    {
    +        return $this->yBestFitValues;
    +    }
    +
    +    protected function calculateGoodnessOfFit($sumX, $sumY, $sumX2, $sumY2, $sumXY, $meanX, $meanY, $const)
    +    {
    +        $SSres = $SScov = $SScor = $SStot = $SSsex = 0.0;
    +        foreach ($this->xValues as $xKey => $xValue) {
    +            $bestFitY = $this->yBestFitValues[$xKey] = $this->getValueOfYForX($xValue);
    +
    +            $SSres += ($this->yValues[$xKey] - $bestFitY) * ($this->yValues[$xKey] - $bestFitY);
    +            if ($const) {
    +                $SStot += ($this->yValues[$xKey] - $meanY) * ($this->yValues[$xKey] - $meanY);
    +            } else {
    +                $SStot += $this->yValues[$xKey] * $this->yValues[$xKey];
    +            }
    +            $SScov += ($this->xValues[$xKey] - $meanX) * ($this->yValues[$xKey] - $meanY);
    +            if ($const) {
    +                $SSsex += ($this->xValues[$xKey] - $meanX) * ($this->xValues[$xKey] - $meanX);
    +            } else {
    +                $SSsex += $this->xValues[$xKey] * $this->xValues[$xKey];
    +            }
    +        }
    +
    +        $this->SSResiduals = $SSres;
    +        $this->DFResiduals = $this->valueCount - 1 - $const;
    +
    +        if ($this->DFResiduals == 0.0) {
    +            $this->stdevOfResiduals = 0.0;
    +        } else {
    +            $this->stdevOfResiduals = sqrt($SSres / $this->DFResiduals);
    +        }
    +        if (($SStot == 0.0) || ($SSres == $SStot)) {
    +            $this->goodnessOfFit = 1;
    +        } else {
    +            $this->goodnessOfFit = 1 - ($SSres / $SStot);
    +        }
    +
    +        $this->SSRegression = $this->goodnessOfFit * $SStot;
    +        $this->covariance = $SScov / $this->valueCount;
    +        $this->correlation = ($this->valueCount * $sumXY - $sumX * $sumY) / sqrt(($this->valueCount * $sumX2 - pow($sumX, 2)) * ($this->valueCount * $sumY2 - pow($sumY, 2)));
    +        $this->slopeSE = $this->stdevOfResiduals / sqrt($SSsex);
    +        $this->intersectSE = $this->stdevOfResiduals * sqrt(1 / ($this->valueCount - ($sumX * $sumX) / $sumX2));
    +        if ($this->SSResiduals != 0.0) {
    +            if ($this->DFResiduals == 0.0) {
    +                $this->f = 0.0;
    +            } else {
    +                $this->f = $this->SSRegression / ($this->SSResiduals / $this->DFResiduals);
    +            }
    +        } else {
    +            if ($this->DFResiduals == 0.0) {
    +                $this->f = 0.0;
    +            } else {
    +                $this->f = $this->SSRegression / $this->DFResiduals;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * @param float[] $yValues
    +     * @param float[] $xValues
    +     * @param bool $const
    +     */
    +    protected function leastSquareFit(array $yValues, array $xValues, $const)
    +    {
    +        // calculate sums
    +        $x_sum = array_sum($xValues);
    +        $y_sum = array_sum($yValues);
    +        $meanX = $x_sum / $this->valueCount;
    +        $meanY = $y_sum / $this->valueCount;
    +        $mBase = $mDivisor = $xx_sum = $xy_sum = $yy_sum = 0.0;
    +        for ($i = 0; $i < $this->valueCount; ++$i) {
    +            $xy_sum += $xValues[$i] * $yValues[$i];
    +            $xx_sum += $xValues[$i] * $xValues[$i];
    +            $yy_sum += $yValues[$i] * $yValues[$i];
    +
    +            if ($const) {
    +                $mBase += ($xValues[$i] - $meanX) * ($yValues[$i] - $meanY);
    +                $mDivisor += ($xValues[$i] - $meanX) * ($xValues[$i] - $meanX);
    +            } else {
    +                $mBase += $xValues[$i] * $yValues[$i];
    +                $mDivisor += $xValues[$i] * $xValues[$i];
    +            }
    +        }
    +
    +        // calculate slope
    +        $this->slope = $mBase / $mDivisor;
    +
    +        // calculate intersect
    +        if ($const) {
    +            $this->intersect = $meanY - ($this->slope * $meanX);
    +        } else {
    +            $this->intersect = 0;
    +        }
    +
    +        $this->calculateGoodnessOfFit($x_sum, $y_sum, $xx_sum, $yy_sum, $xy_sum, $meanX, $meanY, $const);
    +    }
    +
    +    /**
    +     * Define the regression.
    +     *
    +     * @param float[] $yValues The set of Y-values for this regression
    +     * @param float[] $xValues The set of X-values for this regression
    +     * @param bool $const
    +     */
    +    public function __construct($yValues, $xValues = [], $const = true)
    +    {
    +        //    Calculate number of points
    +        $nY = count($yValues);
    +        $nX = count($xValues);
    +
    +        //    Define X Values if necessary
    +        if ($nX == 0) {
    +            $xValues = range(1, $nY);
    +        } elseif ($nY != $nX) {
    +            //    Ensure both arrays of points are the same size
    +            $this->error = true;
    +        }
    +
    +        $this->valueCount = $nY;
    +        $this->xValues = $xValues;
    +        $this->yValues = $yValues;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php
    new file mode 100644
    index 00000000000..03723d84d4e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php
    @@ -0,0 +1,120 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Trend;
    +
    +class ExponentialBestFit extends BestFit
    +{
    +    /**
    +     * Algorithm type to use for best-fit
    +     * (Name of this Trend class).
    +     *
    +     * @var string
    +     */
    +    protected $bestFitType = 'exponential';
    +
    +    /**
    +     * Return the Y-Value for a specified value of X.
    +     *
    +     * @param float $xValue X-Value
    +     *
    +     * @return float Y-Value
    +     */
    +    public function getValueOfYForX($xValue)
    +    {
    +        return $this->getIntersect() * pow($this->getSlope(), ($xValue - $this->xOffset));
    +    }
    +
    +    /**
    +     * Return the X-Value for a specified value of Y.
    +     *
    +     * @param float $yValue Y-Value
    +     *
    +     * @return float X-Value
    +     */
    +    public function getValueOfXForY($yValue)
    +    {
    +        return log(($yValue + $this->yOffset) / $this->getIntersect()) / log($this->getSlope());
    +    }
    +
    +    /**
    +     * Return the Equation of the best-fit line.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return string
    +     */
    +    public function getEquation($dp = 0)
    +    {
    +        $slope = $this->getSlope($dp);
    +        $intersect = $this->getIntersect($dp);
    +
    +        return 'Y = ' . $intersect . ' * ' . $slope . '^X';
    +    }
    +
    +    /**
    +     * Return the Slope of the line.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return float
    +     */
    +    public function getSlope($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round(exp($this->slope), $dp);
    +        }
    +
    +        return exp($this->slope);
    +    }
    +
    +    /**
    +     * Return the Value of X where it intersects Y = 0.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return float
    +     */
    +    public function getIntersect($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round(exp($this->intersect), $dp);
    +        }
    +
    +        return exp($this->intersect);
    +    }
    +
    +    /**
    +     * Execute the regression and calculate the goodness of fit for a set of X and Y data values.
    +     *
    +     * @param float[] $yValues The set of Y-values for this regression
    +     * @param float[] $xValues The set of X-values for this regression
    +     * @param bool $const
    +     */
    +    private function exponentialRegression($yValues, $xValues, $const)
    +    {
    +        foreach ($yValues as &$value) {
    +            if ($value < 0.0) {
    +                $value = 0 - log(abs($value));
    +            } elseif ($value > 0.0) {
    +                $value = log($value);
    +            }
    +        }
    +        unset($value);
    +
    +        $this->leastSquareFit($yValues, $xValues, $const);
    +    }
    +
    +    /**
    +     * Define the regression and calculate the goodness of fit for a set of X and Y data values.
    +     *
    +     * @param float[] $yValues The set of Y-values for this regression
    +     * @param float[] $xValues The set of X-values for this regression
    +     * @param bool $const
    +     */
    +    public function __construct($yValues, $xValues = [], $const = true)
    +    {
    +        if (parent::__construct($yValues, $xValues) !== false) {
    +            $this->exponentialRegression($yValues, $xValues, $const);
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/LinearBestFit.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/LinearBestFit.php
    new file mode 100644
    index 00000000000..367e9d6ec56
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/LinearBestFit.php
    @@ -0,0 +1,79 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Trend;
    +
    +class LinearBestFit extends BestFit
    +{
    +    /**
    +     * Algorithm type to use for best-fit
    +     * (Name of this Trend class).
    +     *
    +     * @var string
    +     */
    +    protected $bestFitType = 'linear';
    +
    +    /**
    +     * Return the Y-Value for a specified value of X.
    +     *
    +     * @param float $xValue X-Value
    +     *
    +     * @return float Y-Value
    +     */
    +    public function getValueOfYForX($xValue)
    +    {
    +        return $this->getIntersect() + $this->getSlope() * $xValue;
    +    }
    +
    +    /**
    +     * Return the X-Value for a specified value of Y.
    +     *
    +     * @param float $yValue Y-Value
    +     *
    +     * @return float X-Value
    +     */
    +    public function getValueOfXForY($yValue)
    +    {
    +        return ($yValue - $this->getIntersect()) / $this->getSlope();
    +    }
    +
    +    /**
    +     * Return the Equation of the best-fit line.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return string
    +     */
    +    public function getEquation($dp = 0)
    +    {
    +        $slope = $this->getSlope($dp);
    +        $intersect = $this->getIntersect($dp);
    +
    +        return 'Y = ' . $intersect . ' + ' . $slope . ' * X';
    +    }
    +
    +    /**
    +     * Execute the regression and calculate the goodness of fit for a set of X and Y data values.
    +     *
    +     * @param float[] $yValues The set of Y-values for this regression
    +     * @param float[] $xValues The set of X-values for this regression
    +     * @param bool $const
    +     */
    +    private function linearRegression($yValues, $xValues, $const)
    +    {
    +        $this->leastSquareFit($yValues, $xValues, $const);
    +    }
    +
    +    /**
    +     * Define the regression and calculate the goodness of fit for a set of X and Y data values.
    +     *
    +     * @param float[] $yValues The set of Y-values for this regression
    +     * @param float[] $xValues The set of X-values for this regression
    +     * @param bool $const
    +     */
    +    public function __construct($yValues, $xValues = [], $const = true)
    +    {
    +        if (parent::__construct($yValues, $xValues) !== false) {
    +            $this->linearRegression($yValues, $xValues, $const);
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/LogarithmicBestFit.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/LogarithmicBestFit.php
    new file mode 100644
    index 00000000000..9092cef8215
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/LogarithmicBestFit.php
    @@ -0,0 +1,88 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Trend;
    +
    +class LogarithmicBestFit extends BestFit
    +{
    +    /**
    +     * Algorithm type to use for best-fit
    +     * (Name of this Trend class).
    +     *
    +     * @var string
    +     */
    +    protected $bestFitType = 'logarithmic';
    +
    +    /**
    +     * Return the Y-Value for a specified value of X.
    +     *
    +     * @param float $xValue X-Value
    +     *
    +     * @return float Y-Value
    +     */
    +    public function getValueOfYForX($xValue)
    +    {
    +        return $this->getIntersect() + $this->getSlope() * log($xValue - $this->xOffset);
    +    }
    +
    +    /**
    +     * Return the X-Value for a specified value of Y.
    +     *
    +     * @param float $yValue Y-Value
    +     *
    +     * @return float X-Value
    +     */
    +    public function getValueOfXForY($yValue)
    +    {
    +        return exp(($yValue - $this->getIntersect()) / $this->getSlope());
    +    }
    +
    +    /**
    +     * Return the Equation of the best-fit line.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return string
    +     */
    +    public function getEquation($dp = 0)
    +    {
    +        $slope = $this->getSlope($dp);
    +        $intersect = $this->getIntersect($dp);
    +
    +        return 'Y = ' . $intersect . ' + ' . $slope . ' * log(X)';
    +    }
    +
    +    /**
    +     * Execute the regression and calculate the goodness of fit for a set of X and Y data values.
    +     *
    +     * @param float[] $yValues The set of Y-values for this regression
    +     * @param float[] $xValues The set of X-values for this regression
    +     * @param bool $const
    +     */
    +    private function logarithmicRegression($yValues, $xValues, $const)
    +    {
    +        foreach ($xValues as &$value) {
    +            if ($value < 0.0) {
    +                $value = 0 - log(abs($value));
    +            } elseif ($value > 0.0) {
    +                $value = log($value);
    +            }
    +        }
    +        unset($value);
    +
    +        $this->leastSquareFit($yValues, $xValues, $const);
    +    }
    +
    +    /**
    +     * Define the regression and calculate the goodness of fit for a set of X and Y data values.
    +     *
    +     * @param float[] $yValues The set of Y-values for this regression
    +     * @param float[] $xValues The set of X-values for this regression
    +     * @param bool $const
    +     */
    +    public function __construct($yValues, $xValues = [], $const = true)
    +    {
    +        if (parent::__construct($yValues, $xValues) !== false) {
    +            $this->logarithmicRegression($yValues, $xValues, $const);
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/PolynomialBestFit.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/PolynomialBestFit.php
    new file mode 100644
    index 00000000000..afcf5f477e4
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/PolynomialBestFit.php
    @@ -0,0 +1,198 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Trend;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix;
    +
    +class PolynomialBestFit extends BestFit
    +{
    +    /**
    +     * Algorithm type to use for best-fit
    +     * (Name of this Trend class).
    +     *
    +     * @var string
    +     */
    +    protected $bestFitType = 'polynomial';
    +
    +    /**
    +     * Polynomial order.
    +     *
    +     * @var int
    +     */
    +    protected $order = 0;
    +
    +    /**
    +     * Return the order of this polynomial.
    +     *
    +     * @return int
    +     */
    +    public function getOrder()
    +    {
    +        return $this->order;
    +    }
    +
    +    /**
    +     * Return the Y-Value for a specified value of X.
    +     *
    +     * @param float $xValue X-Value
    +     *
    +     * @return float Y-Value
    +     */
    +    public function getValueOfYForX($xValue)
    +    {
    +        $retVal = $this->getIntersect();
    +        $slope = $this->getSlope();
    +        foreach ($slope as $key => $value) {
    +            if ($value != 0.0) {
    +                $retVal += $value * pow($xValue, $key + 1);
    +            }
    +        }
    +
    +        return $retVal;
    +    }
    +
    +    /**
    +     * Return the X-Value for a specified value of Y.
    +     *
    +     * @param float $yValue Y-Value
    +     *
    +     * @return float X-Value
    +     */
    +    public function getValueOfXForY($yValue)
    +    {
    +        return ($yValue - $this->getIntersect()) / $this->getSlope();
    +    }
    +
    +    /**
    +     * Return the Equation of the best-fit line.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return string
    +     */
    +    public function getEquation($dp = 0)
    +    {
    +        $slope = $this->getSlope($dp);
    +        $intersect = $this->getIntersect($dp);
    +
    +        $equation = 'Y = ' . $intersect;
    +        foreach ($slope as $key => $value) {
    +            if ($value != 0.0) {
    +                $equation .= ' + ' . $value . ' * X';
    +                if ($key > 0) {
    +                    $equation .= '^' . ($key + 1);
    +                }
    +            }
    +        }
    +
    +        return $equation;
    +    }
    +
    +    /**
    +     * Return the Slope of the line.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return string
    +     */
    +    public function getSlope($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            $coefficients = [];
    +            foreach ($this->slope as $coefficient) {
    +                $coefficients[] = round($coefficient, $dp);
    +            }
    +
    +            return $coefficients;
    +        }
    +
    +        return $this->slope;
    +    }
    +
    +    public function getCoefficients($dp = 0)
    +    {
    +        return array_merge([$this->getIntersect($dp)], $this->getSlope($dp));
    +    }
    +
    +    /**
    +     * Execute the regression and calculate the goodness of fit for a set of X and Y data values.
    +     *
    +     * @param int $order Order of Polynomial for this regression
    +     * @param float[] $yValues The set of Y-values for this regression
    +     * @param float[] $xValues The set of X-values for this regression
    +     */
    +    private function polynomialRegression($order, $yValues, $xValues)
    +    {
    +        // calculate sums
    +        $x_sum = array_sum($xValues);
    +        $y_sum = array_sum($yValues);
    +        $xx_sum = $xy_sum = $yy_sum = 0;
    +        for ($i = 0; $i < $this->valueCount; ++$i) {
    +            $xy_sum += $xValues[$i] * $yValues[$i];
    +            $xx_sum += $xValues[$i] * $xValues[$i];
    +            $yy_sum += $yValues[$i] * $yValues[$i];
    +        }
    +        /*
    +         *    This routine uses logic from the PHP port of polyfit version 0.1
    +         *    written by Michael Bommarito and Paul Meagher
    +         *
    +         *    The function fits a polynomial function of order $order through
    +         *    a series of x-y data points using least squares.
    +         *
    +         */
    +        $A = [];
    +        $B = [];
    +        for ($i = 0; $i < $this->valueCount; ++$i) {
    +            for ($j = 0; $j <= $order; ++$j) {
    +                $A[$i][$j] = pow($xValues[$i], $j);
    +            }
    +        }
    +        for ($i = 0; $i < $this->valueCount; ++$i) {
    +            $B[$i] = [$yValues[$i]];
    +        }
    +        $matrixA = new Matrix($A);
    +        $matrixB = new Matrix($B);
    +        $C = $matrixA->solve($matrixB);
    +
    +        $coefficients = [];
    +        for ($i = 0; $i < $C->getRowDimension(); ++$i) {
    +            $r = $C->get($i, 0);
    +            if (abs($r) <= pow(10, -9)) {
    +                $r = 0;
    +            }
    +            $coefficients[] = $r;
    +        }
    +
    +        $this->intersect = array_shift($coefficients);
    +        $this->slope = $coefficients;
    +
    +        $this->calculateGoodnessOfFit($x_sum, $y_sum, $xx_sum, $yy_sum, $xy_sum, 0, 0, 0);
    +        foreach ($this->xValues as $xKey => $xValue) {
    +            $this->yBestFitValues[$xKey] = $this->getValueOfYForX($xValue);
    +        }
    +    }
    +
    +    /**
    +     * Define the regression and calculate the goodness of fit for a set of X and Y data values.
    +     *
    +     * @param int $order Order of Polynomial for this regression
    +     * @param float[] $yValues The set of Y-values for this regression
    +     * @param float[] $xValues The set of X-values for this regression
    +     * @param bool $const
    +     */
    +    public function __construct($order, $yValues, $xValues = [], $const = true)
    +    {
    +        if (parent::__construct($yValues, $xValues) !== false) {
    +            if ($order < $this->valueCount) {
    +                $this->bestFitType .= '_' . $order;
    +                $this->order = $order;
    +                $this->polynomialRegression($order, $yValues, $xValues);
    +                if (($this->getGoodnessOfFit() < 0.0) || ($this->getGoodnessOfFit() > 1.0)) {
    +                    $this->error = true;
    +                }
    +            } else {
    +                $this->error = true;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/PowerBestFit.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/PowerBestFit.php
    new file mode 100644
    index 00000000000..e1b3b8297cb
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/PowerBestFit.php
    @@ -0,0 +1,112 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Trend;
    +
    +class PowerBestFit extends BestFit
    +{
    +    /**
    +     * Algorithm type to use for best-fit
    +     * (Name of this Trend class).
    +     *
    +     * @var string
    +     */
    +    protected $bestFitType = 'power';
    +
    +    /**
    +     * Return the Y-Value for a specified value of X.
    +     *
    +     * @param float $xValue X-Value
    +     *
    +     * @return float Y-Value
    +     */
    +    public function getValueOfYForX($xValue)
    +    {
    +        return $this->getIntersect() * pow(($xValue - $this->xOffset), $this->getSlope());
    +    }
    +
    +    /**
    +     * Return the X-Value for a specified value of Y.
    +     *
    +     * @param float $yValue Y-Value
    +     *
    +     * @return float X-Value
    +     */
    +    public function getValueOfXForY($yValue)
    +    {
    +        return pow((($yValue + $this->yOffset) / $this->getIntersect()), (1 / $this->getSlope()));
    +    }
    +
    +    /**
    +     * Return the Equation of the best-fit line.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return string
    +     */
    +    public function getEquation($dp = 0)
    +    {
    +        $slope = $this->getSlope($dp);
    +        $intersect = $this->getIntersect($dp);
    +
    +        return 'Y = ' . $intersect . ' * X^' . $slope;
    +    }
    +
    +    /**
    +     * Return the Value of X where it intersects Y = 0.
    +     *
    +     * @param int $dp Number of places of decimal precision to display
    +     *
    +     * @return float
    +     */
    +    public function getIntersect($dp = 0)
    +    {
    +        if ($dp != 0) {
    +            return round(exp($this->intersect), $dp);
    +        }
    +
    +        return exp($this->intersect);
    +    }
    +
    +    /**
    +     * Execute the regression and calculate the goodness of fit for a set of X and Y data values.
    +     *
    +     * @param float[] $yValues The set of Y-values for this regression
    +     * @param float[] $xValues The set of X-values for this regression
    +     * @param bool $const
    +     */
    +    private function powerRegression($yValues, $xValues, $const)
    +    {
    +        foreach ($xValues as &$value) {
    +            if ($value < 0.0) {
    +                $value = 0 - log(abs($value));
    +            } elseif ($value > 0.0) {
    +                $value = log($value);
    +            }
    +        }
    +        unset($value);
    +        foreach ($yValues as &$value) {
    +            if ($value < 0.0) {
    +                $value = 0 - log(abs($value));
    +            } elseif ($value > 0.0) {
    +                $value = log($value);
    +            }
    +        }
    +        unset($value);
    +
    +        $this->leastSquareFit($yValues, $xValues, $const);
    +    }
    +
    +    /**
    +     * Define the regression and calculate the goodness of fit for a set of X and Y data values.
    +     *
    +     * @param float[] $yValues The set of Y-values for this regression
    +     * @param float[] $xValues The set of X-values for this regression
    +     * @param bool $const
    +     */
    +    public function __construct($yValues, $xValues = [], $const = true)
    +    {
    +        if (parent::__construct($yValues, $xValues) !== false) {
    +            $this->powerRegression($yValues, $xValues, $const);
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/Trend.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/Trend.php
    new file mode 100644
    index 00000000000..1b7b3901078
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Trend/Trend.php
    @@ -0,0 +1,120 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared\Trend;
    +
    +class Trend
    +{
    +    const TREND_LINEAR = 'Linear';
    +    const TREND_LOGARITHMIC = 'Logarithmic';
    +    const TREND_EXPONENTIAL = 'Exponential';
    +    const TREND_POWER = 'Power';
    +    const TREND_POLYNOMIAL_2 = 'Polynomial_2';
    +    const TREND_POLYNOMIAL_3 = 'Polynomial_3';
    +    const TREND_POLYNOMIAL_4 = 'Polynomial_4';
    +    const TREND_POLYNOMIAL_5 = 'Polynomial_5';
    +    const TREND_POLYNOMIAL_6 = 'Polynomial_6';
    +    const TREND_BEST_FIT = 'Bestfit';
    +    const TREND_BEST_FIT_NO_POLY = 'Bestfit_no_Polynomials';
    +
    +    /**
    +     * Names of the best-fit Trend analysis methods.
    +     *
    +     * @var string[]
    +     */
    +    private static $trendTypes = [
    +        self::TREND_LINEAR,
    +        self::TREND_LOGARITHMIC,
    +        self::TREND_EXPONENTIAL,
    +        self::TREND_POWER,
    +    ];
    +
    +    /**
    +     * Names of the best-fit Trend polynomial orders.
    +     *
    +     * @var string[]
    +     */
    +    private static $trendTypePolynomialOrders = [
    +        self::TREND_POLYNOMIAL_2,
    +        self::TREND_POLYNOMIAL_3,
    +        self::TREND_POLYNOMIAL_4,
    +        self::TREND_POLYNOMIAL_5,
    +        self::TREND_POLYNOMIAL_6,
    +    ];
    +
    +    /**
    +     * Cached results for each method when trying to identify which provides the best fit.
    +     *
    +     * @var bestFit[]
    +     */
    +    private static $trendCache = [];
    +
    +    public static function calculate($trendType = self::TREND_BEST_FIT, $yValues = [], $xValues = [], $const = true)
    +    {
    +        //    Calculate number of points in each dataset
    +        $nY = count($yValues);
    +        $nX = count($xValues);
    +
    +        //    Define X Values if necessary
    +        if ($nX == 0) {
    +            $xValues = range(1, $nY);
    +            $nX = $nY;
    +        } elseif ($nY != $nX) {
    +            //    Ensure both arrays of points are the same size
    +            trigger_error('Trend(): Number of elements in coordinate arrays do not match.', E_USER_ERROR);
    +        }
    +
    +        $key = md5($trendType . $const . serialize($yValues) . serialize($xValues));
    +        //    Determine which Trend method has been requested
    +        switch ($trendType) {
    +            //    Instantiate and return the class for the requested Trend method
    +            case self::TREND_LINEAR:
    +            case self::TREND_LOGARITHMIC:
    +            case self::TREND_EXPONENTIAL:
    +            case self::TREND_POWER:
    +                if (!isset(self::$trendCache[$key])) {
    +                    $className = '\PhpOffice\PhpSpreadsheet\Shared\Trend\\' . $trendType . 'BestFit';
    +                    self::$trendCache[$key] = new $className($yValues, $xValues, $const);
    +                }
    +
    +                return self::$trendCache[$key];
    +            case self::TREND_POLYNOMIAL_2:
    +            case self::TREND_POLYNOMIAL_3:
    +            case self::TREND_POLYNOMIAL_4:
    +            case self::TREND_POLYNOMIAL_5:
    +            case self::TREND_POLYNOMIAL_6:
    +                if (!isset(self::$trendCache[$key])) {
    +                    $order = substr($trendType, -1);
    +                    self::$trendCache[$key] = new PolynomialBestFit($order, $yValues, $xValues, $const);
    +                }
    +
    +                return self::$trendCache[$key];
    +            case self::TREND_BEST_FIT:
    +            case self::TREND_BEST_FIT_NO_POLY:
    +                //    If the request is to determine the best fit regression, then we test each Trend line in turn
    +                //    Start by generating an instance of each available Trend method
    +                foreach (self::$trendTypes as $trendMethod) {
    +                    $className = '\PhpOffice\PhpSpreadsheet\Shared\Trend\\' . $trendType . 'BestFit';
    +                    $bestFit[$trendMethod] = new $className($yValues, $xValues, $const);
    +                    $bestFitValue[$trendMethod] = $bestFit[$trendMethod]->getGoodnessOfFit();
    +                }
    +                if ($trendType != self::TREND_BEST_FIT_NO_POLY) {
    +                    foreach (self::$trendTypePolynomialOrders as $trendMethod) {
    +                        $order = substr($trendMethod, -1);
    +                        $bestFit[$trendMethod] = new PolynomialBestFit($order, $yValues, $xValues, $const);
    +                        if ($bestFit[$trendMethod]->getError()) {
    +                            unset($bestFit[$trendMethod]);
    +                        } else {
    +                            $bestFitValue[$trendMethod] = $bestFit[$trendMethod]->getGoodnessOfFit();
    +                        }
    +                    }
    +                }
    +                //    Determine which of our Trend lines is the best fit, and then we return the instance of that Trend class
    +                arsort($bestFitValue);
    +                $bestFitType = key($bestFitValue);
    +
    +                return $bestFit[$bestFitType];
    +            default:
    +                return false;
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/XMLWriter.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/XMLWriter.php
    new file mode 100644
    index 00000000000..4f7a6a06afc
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/XMLWriter.php
    @@ -0,0 +1,92 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +class XMLWriter extends \XMLWriter
    +{
    +    public static $debugEnabled = false;
    +
    +    /** Temporary storage method */
    +    const STORAGE_MEMORY = 1;
    +    const STORAGE_DISK = 2;
    +
    +    /**
    +     * Temporary filename.
    +     *
    +     * @var string
    +     */
    +    private $tempFileName = '';
    +
    +    /**
    +     * Create a new XMLWriter instance.
    +     *
    +     * @param int $pTemporaryStorage Temporary storage location
    +     * @param string $pTemporaryStorageFolder Temporary storage folder
    +     */
    +    public function __construct($pTemporaryStorage = self::STORAGE_MEMORY, $pTemporaryStorageFolder = null)
    +    {
    +        // Open temporary storage
    +        if ($pTemporaryStorage == self::STORAGE_MEMORY) {
    +            $this->openMemory();
    +        } else {
    +            // Create temporary filename
    +            if ($pTemporaryStorageFolder === null) {
    +                $pTemporaryStorageFolder = File::sysGetTempDir();
    +            }
    +            $this->tempFileName = @tempnam($pTemporaryStorageFolder, 'xml');
    +
    +            // Open storage
    +            if ($this->openUri($this->tempFileName) === false) {
    +                // Fallback to memory...
    +                $this->openMemory();
    +            }
    +        }
    +
    +        // Set default values
    +        if (self::$debugEnabled) {
    +            $this->setIndent(true);
    +        }
    +    }
    +
    +    /**
    +     * Destructor.
    +     */
    +    public function __destruct()
    +    {
    +        // Unlink temporary files
    +        if ($this->tempFileName != '') {
    +            @unlink($this->tempFileName);
    +        }
    +    }
    +
    +    /**
    +     * Get written data.
    +     *
    +     * @return string
    +     */
    +    public function getData()
    +    {
    +        if ($this->tempFileName == '') {
    +            return $this->outputMemory(true);
    +        }
    +        $this->flush();
    +
    +        return file_get_contents($this->tempFileName);
    +    }
    +
    +    /**
    +     * Wrapper method for writeRaw.
    +     *
    +     * @param string|string[] $text
    +     *
    +     * @return bool
    +     */
    +    public function writeRawData($text)
    +    {
    +        if (is_array($text)) {
    +            $text = implode("\n", $text);
    +        }
    +
    +        return $this->writeRaw(htmlspecialchars($text));
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Xls.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Xls.php
    new file mode 100644
    index 00000000000..177779f8f10
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Shared/Xls.php
    @@ -0,0 +1,283 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Shared;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +class Xls
    +{
    +    /**
    +     * Get the width of a column in pixels. We use the relationship y = ceil(7x) where
    +     * x is the width in intrinsic Excel units (measuring width in number of normal characters)
    +     * This holds for Arial 10.
    +     *
    +     * @param Worksheet $sheet The sheet
    +     * @param string $col The column
    +     *
    +     * @return int The width in pixels
    +     */
    +    public static function sizeCol($sheet, $col = 'A')
    +    {
    +        // default font of the workbook
    +        $font = $sheet->getParent()->getDefaultStyle()->getFont();
    +
    +        $columnDimensions = $sheet->getColumnDimensions();
    +
    +        // first find the true column width in pixels (uncollapsed and unhidden)
    +        if (isset($columnDimensions[$col]) and $columnDimensions[$col]->getWidth() != -1) {
    +            // then we have column dimension with explicit width
    +            $columnDimension = $columnDimensions[$col];
    +            $width = $columnDimension->getWidth();
    +            $pixelWidth = Drawing::cellDimensionToPixels($width, $font);
    +        } elseif ($sheet->getDefaultColumnDimension()->getWidth() != -1) {
    +            // then we have default column dimension with explicit width
    +            $defaultColumnDimension = $sheet->getDefaultColumnDimension();
    +            $width = $defaultColumnDimension->getWidth();
    +            $pixelWidth = Drawing::cellDimensionToPixels($width, $font);
    +        } else {
    +            // we don't even have any default column dimension. Width depends on default font
    +            $pixelWidth = Font::getDefaultColumnWidthByFont($font, true);
    +        }
    +
    +        // now find the effective column width in pixels
    +        if (isset($columnDimensions[$col]) and !$columnDimensions[$col]->getVisible()) {
    +            $effectivePixelWidth = 0;
    +        } else {
    +            $effectivePixelWidth = $pixelWidth;
    +        }
    +
    +        return $effectivePixelWidth;
    +    }
    +
    +    /**
    +     * Convert the height of a cell from user's units to pixels. By interpolation
    +     * the relationship is: y = 4/3x. If the height hasn't been set by the user we
    +     * use the default value. If the row is hidden we use a value of zero.
    +     *
    +     * @param Worksheet $sheet The sheet
    +     * @param int $row The row index (1-based)
    +     *
    +     * @return int The width in pixels
    +     */
    +    public static function sizeRow($sheet, $row = 1)
    +    {
    +        // default font of the workbook
    +        $font = $sheet->getParent()->getDefaultStyle()->getFont();
    +
    +        $rowDimensions = $sheet->getRowDimensions();
    +
    +        // first find the true row height in pixels (uncollapsed and unhidden)
    +        if (isset($rowDimensions[$row]) and $rowDimensions[$row]->getRowHeight() != -1) {
    +            // then we have a row dimension
    +            $rowDimension = $rowDimensions[$row];
    +            $rowHeight = $rowDimension->getRowHeight();
    +            $pixelRowHeight = (int) ceil(4 * $rowHeight / 3); // here we assume Arial 10
    +        } elseif ($sheet->getDefaultRowDimension()->getRowHeight() != -1) {
    +            // then we have a default row dimension with explicit height
    +            $defaultRowDimension = $sheet->getDefaultRowDimension();
    +            $rowHeight = $defaultRowDimension->getRowHeight();
    +            $pixelRowHeight = Drawing::pointsToPixels($rowHeight);
    +        } else {
    +            // we don't even have any default row dimension. Height depends on default font
    +            $pointRowHeight = Font::getDefaultRowHeightByFont($font);
    +            $pixelRowHeight = Font::fontSizeToPixels($pointRowHeight);
    +        }
    +
    +        // now find the effective row height in pixels
    +        if (isset($rowDimensions[$row]) and !$rowDimensions[$row]->getVisible()) {
    +            $effectivePixelRowHeight = 0;
    +        } else {
    +            $effectivePixelRowHeight = $pixelRowHeight;
    +        }
    +
    +        return $effectivePixelRowHeight;
    +    }
    +
    +    /**
    +     * Get the horizontal distance in pixels between two anchors
    +     * The distanceX is found as sum of all the spanning columns widths minus correction for the two offsets.
    +     *
    +     * @param Worksheet $sheet
    +     * @param string $startColumn
    +     * @param int $startOffsetX Offset within start cell measured in 1/1024 of the cell width
    +     * @param string $endColumn
    +     * @param int $endOffsetX Offset within end cell measured in 1/1024 of the cell width
    +     *
    +     * @return int Horizontal measured in pixels
    +     */
    +    public static function getDistanceX(Worksheet $sheet, $startColumn = 'A', $startOffsetX = 0, $endColumn = 'A', $endOffsetX = 0)
    +    {
    +        $distanceX = 0;
    +
    +        // add the widths of the spanning columns
    +        $startColumnIndex = Coordinate::columnIndexFromString($startColumn);
    +        $endColumnIndex = Coordinate::columnIndexFromString($endColumn);
    +        for ($i = $startColumnIndex; $i <= $endColumnIndex; ++$i) {
    +            $distanceX += self::sizeCol($sheet, Coordinate::stringFromColumnIndex($i));
    +        }
    +
    +        // correct for offsetX in startcell
    +        $distanceX -= (int) floor(self::sizeCol($sheet, $startColumn) * $startOffsetX / 1024);
    +
    +        // correct for offsetX in endcell
    +        $distanceX -= (int) floor(self::sizeCol($sheet, $endColumn) * (1 - $endOffsetX / 1024));
    +
    +        return $distanceX;
    +    }
    +
    +    /**
    +     * Get the vertical distance in pixels between two anchors
    +     * The distanceY is found as sum of all the spanning rows minus two offsets.
    +     *
    +     * @param Worksheet $sheet
    +     * @param int $startRow (1-based)
    +     * @param int $startOffsetY Offset within start cell measured in 1/256 of the cell height
    +     * @param int $endRow (1-based)
    +     * @param int $endOffsetY Offset within end cell measured in 1/256 of the cell height
    +     *
    +     * @return int Vertical distance measured in pixels
    +     */
    +    public static function getDistanceY(Worksheet $sheet, $startRow = 1, $startOffsetY = 0, $endRow = 1, $endOffsetY = 0)
    +    {
    +        $distanceY = 0;
    +
    +        // add the widths of the spanning rows
    +        for ($row = $startRow; $row <= $endRow; ++$row) {
    +            $distanceY += self::sizeRow($sheet, $row);
    +        }
    +
    +        // correct for offsetX in startcell
    +        $distanceY -= (int) floor(self::sizeRow($sheet, $startRow) * $startOffsetY / 256);
    +
    +        // correct for offsetX in endcell
    +        $distanceY -= (int) floor(self::sizeRow($sheet, $endRow) * (1 - $endOffsetY / 256));
    +
    +        return $distanceY;
    +    }
    +
    +    /**
    +     * Convert 1-cell anchor coordinates to 2-cell anchor coordinates
    +     * This function is ported from PEAR Spreadsheet_Writer_Excel with small modifications.
    +     *
    +     * Calculate the vertices that define the position of the image as required by
    +     * the OBJ record.
    +     *
    +     *         +------------+------------+
    +     *         |     A      |      B     |
    +     *   +-----+------------+------------+
    +     *   |     |(x1,y1)     |            |
    +     *   |  1  |(A1)._______|______      |
    +     *   |     |    |              |     |
    +     *   |     |    |              |     |
    +     *   +-----+----|    BITMAP    |-----+
    +     *   |     |    |              |     |
    +     *   |  2  |    |______________.     |
    +     *   |     |            |        (B2)|
    +     *   |     |            |     (x2,y2)|
    +     *   +---- +------------+------------+
    +     *
    +     * Example of a bitmap that covers some of the area from cell A1 to cell B2.
    +     *
    +     * Based on the width and height of the bitmap we need to calculate 8 vars:
    +     *     $col_start, $row_start, $col_end, $row_end, $x1, $y1, $x2, $y2.
    +     * The width and height of the cells are also variable and have to be taken into
    +     * account.
    +     * The values of $col_start and $row_start are passed in from the calling
    +     * function. The values of $col_end and $row_end are calculated by subtracting
    +     * the width and height of the bitmap from the width and height of the
    +     * underlying cells.
    +     * The vertices are expressed as a percentage of the underlying cell width as
    +     * follows (rhs values are in pixels):
    +     *
    +     *       x1 = X / W *1024
    +     *       y1 = Y / H *256
    +     *       x2 = (X-1) / W *1024
    +     *       y2 = (Y-1) / H *256
    +     *
    +     *       Where:  X is distance from the left side of the underlying cell
    +     *               Y is distance from the top of the underlying cell
    +     *               W is the width of the cell
    +     *               H is the height of the cell
    +     *
    +     * @param Worksheet $sheet
    +     * @param string $coordinates E.g. 'A1'
    +     * @param int $offsetX Horizontal offset in pixels
    +     * @param int $offsetY Vertical offset in pixels
    +     * @param int $width Width in pixels
    +     * @param int $height Height in pixels
    +     *
    +     * @return array
    +     */
    +    public static function oneAnchor2twoAnchor($sheet, $coordinates, $offsetX, $offsetY, $width, $height)
    +    {
    +        list($column, $row) = Coordinate::coordinateFromString($coordinates);
    +        $col_start = Coordinate::columnIndexFromString($column);
    +        $row_start = $row - 1;
    +
    +        $x1 = $offsetX;
    +        $y1 = $offsetY;
    +
    +        // Initialise end cell to the same as the start cell
    +        $col_end = $col_start; // Col containing lower right corner of object
    +        $row_end = $row_start; // Row containing bottom right corner of object
    +
    +        // Zero the specified offset if greater than the cell dimensions
    +        if ($x1 >= self::sizeCol($sheet, Coordinate::stringFromColumnIndex($col_start))) {
    +            $x1 = 0;
    +        }
    +        if ($y1 >= self::sizeRow($sheet, $row_start + 1)) {
    +            $y1 = 0;
    +        }
    +
    +        $width = $width + $x1 - 1;
    +        $height = $height + $y1 - 1;
    +
    +        // Subtract the underlying cell widths to find the end cell of the image
    +        while ($width >= self::sizeCol($sheet, Coordinate::stringFromColumnIndex($col_end))) {
    +            $width -= self::sizeCol($sheet, Coordinate::stringFromColumnIndex($col_end));
    +            ++$col_end;
    +        }
    +
    +        // Subtract the underlying cell heights to find the end cell of the image
    +        while ($height >= self::sizeRow($sheet, $row_end + 1)) {
    +            $height -= self::sizeRow($sheet, $row_end + 1);
    +            ++$row_end;
    +        }
    +
    +        // Bitmap isn't allowed to start or finish in a hidden cell, i.e. a cell
    +        // with zero height or width.
    +        if (self::sizeCol($sheet, Coordinate::stringFromColumnIndex($col_start)) == 0) {
    +            return;
    +        }
    +        if (self::sizeCol($sheet, Coordinate::stringFromColumnIndex($col_end)) == 0) {
    +            return;
    +        }
    +        if (self::sizeRow($sheet, $row_start + 1) == 0) {
    +            return;
    +        }
    +        if (self::sizeRow($sheet, $row_end + 1) == 0) {
    +            return;
    +        }
    +
    +        // Convert the pixel values to the percentage value expected by Excel
    +        $x1 = $x1 / self::sizeCol($sheet, Coordinate::stringFromColumnIndex($col_start)) * 1024;
    +        $y1 = $y1 / self::sizeRow($sheet, $row_start + 1) * 256;
    +        $x2 = ($width + 1) / self::sizeCol($sheet, Coordinate::stringFromColumnIndex($col_end)) * 1024; // Distance to right side of object
    +        $y2 = ($height + 1) / self::sizeRow($sheet, $row_end + 1) * 256; // Distance to bottom of object
    +
    +        $startCoordinates = Coordinate::stringFromColumnIndex($col_start) . ($row_start + 1);
    +        $endCoordinates = Coordinate::stringFromColumnIndex($col_end) . ($row_end + 1);
    +
    +        $twoAnchor = [
    +            'startCoordinates' => $startCoordinates,
    +            'startOffsetX' => $x1,
    +            'startOffsetY' => $y1,
    +            'endCoordinates' => $endCoordinates,
    +            'endOffsetX' => $x2,
    +            'endOffsetY' => $y2,
    +        ];
    +
    +        return  $twoAnchor;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Spreadsheet.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Spreadsheet.php
    new file mode 100644
    index 00000000000..150f71b1e4f
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Spreadsheet.php
    @@ -0,0 +1,1490 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Style\Style;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Iterator;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +class Spreadsheet
    +{
    +    // Allowable values for workbook window visilbity
    +    const VISIBILITY_VISIBLE = 'visible';
    +    const VISIBILITY_HIDDEN = 'hidden';
    +    const VISIBILITY_VERY_HIDDEN = 'veryHidden';
    +
    +    private static $workbookViewVisibilityValues = [
    +        self::VISIBILITY_VISIBLE,
    +        self::VISIBILITY_HIDDEN,
    +        self::VISIBILITY_VERY_HIDDEN,
    +    ];
    +
    +    /**
    +     * Unique ID.
    +     *
    +     * @var string
    +     */
    +    private $uniqueID;
    +
    +    /**
    +     * Document properties.
    +     *
    +     * @var Document\Properties
    +     */
    +    private $properties;
    +
    +    /**
    +     * Document security.
    +     *
    +     * @var Document\Security
    +     */
    +    private $security;
    +
    +    /**
    +     * Collection of Worksheet objects.
    +     *
    +     * @var Worksheet[]
    +     */
    +    private $workSheetCollection = [];
    +
    +    /**
    +     * Calculation Engine.
    +     *
    +     * @var Calculation
    +     */
    +    private $calculationEngine;
    +
    +    /**
    +     * Active sheet index.
    +     *
    +     * @var int
    +     */
    +    private $activeSheetIndex = 0;
    +
    +    /**
    +     * Named ranges.
    +     *
    +     * @var NamedRange[]
    +     */
    +    private $namedRanges = [];
    +
    +    /**
    +     * CellXf supervisor.
    +     *
    +     * @var Style
    +     */
    +    private $cellXfSupervisor;
    +
    +    /**
    +     * CellXf collection.
    +     *
    +     * @var Style[]
    +     */
    +    private $cellXfCollection = [];
    +
    +    /**
    +     * CellStyleXf collection.
    +     *
    +     * @var Style[]
    +     */
    +    private $cellStyleXfCollection = [];
    +
    +    /**
    +     * hasMacros : this workbook have macros ?
    +     *
    +     * @var bool
    +     */
    +    private $hasMacros = false;
    +
    +    /**
    +     * macrosCode : all macros code as binary data (the vbaProject.bin file, this include form, code,  etc.), null if no macro.
    +     *
    +     * @var string
    +     */
    +    private $macrosCode;
    +
    +    /**
    +     * macrosCertificate : if macros are signed, contains binary data vbaProjectSignature.bin file, null if not signed.
    +     *
    +     * @var string
    +     */
    +    private $macrosCertificate;
    +
    +    /**
    +     * ribbonXMLData : null if workbook is'nt Excel 2007 or not contain a customized UI.
    +     *
    +     * @var null|string
    +     */
    +    private $ribbonXMLData;
    +
    +    /**
    +     * ribbonBinObjects : null if workbook is'nt Excel 2007 or not contain embedded objects (picture(s)) for Ribbon Elements
    +     * ignored if $ribbonXMLData is null.
    +     *
    +     * @var null|array
    +     */
    +    private $ribbonBinObjects;
    +
    +    /**
    +     * List of unparsed loaded data for export to same format with better compatibility.
    +     * It has to be minimized when the library start to support currently unparsed data.
    +     *
    +     * @var array
    +     */
    +    private $unparsedLoadedData = [];
    +
    +    /**
    +     * Controls visibility of the horizonal scroll bar in the application.
    +     *
    +     * @var bool
    +     */
    +    private $showHorizontalScroll = true;
    +
    +    /**
    +     * Controls visibility of the horizonal scroll bar in the application.
    +     *
    +     * @var bool
    +     */
    +    private $showVerticalScroll = true;
    +
    +    /**
    +     * Controls visibility of the sheet tabs in the application.
    +     *
    +     * @var bool
    +     */
    +    private $showSheetTabs = true;
    +
    +    /**
    +     * Specifies a boolean value that indicates whether the workbook window
    +     * is minimized.
    +     *
    +     * @var bool
    +     */
    +    private $minimized = false;
    +
    +    /**
    +     * Specifies a boolean value that indicates whether to group dates
    +     * when presenting the user with filtering optiomd in the user
    +     * interface.
    +     *
    +     * @var bool
    +     */
    +    private $autoFilterDateGrouping = true;
    +
    +    /**
    +     * Specifies the index to the first sheet in the book view.
    +     *
    +     * @var int
    +     */
    +    private $firstSheetIndex = 0;
    +
    +    /**
    +     * Specifies the visible status of the workbook.
    +     *
    +     * @var string
    +     */
    +    private $visibility = self::VISIBILITY_VISIBLE;
    +
    +    /**
    +     * Specifies the ratio between the workbook tabs bar and the horizontal
    +     * scroll bar.  TabRatio is assumed to be out of 1000 of the horizontal
    +     * window width.
    +     *
    +     * @var int
    +     */
    +    private $tabRatio = 600;
    +
    +    /**
    +     * The workbook has macros ?
    +     *
    +     * @return bool
    +     */
    +    public function hasMacros()
    +    {
    +        return $this->hasMacros;
    +    }
    +
    +    /**
    +     * Define if a workbook has macros.
    +     *
    +     * @param bool $hasMacros true|false
    +     */
    +    public function setHasMacros($hasMacros)
    +    {
    +        $this->hasMacros = (bool) $hasMacros;
    +    }
    +
    +    /**
    +     * Set the macros code.
    +     *
    +     * @param string $macroCode string|null
    +     */
    +    public function setMacrosCode($macroCode)
    +    {
    +        $this->macrosCode = $macroCode;
    +        $this->setHasMacros($macroCode !== null);
    +    }
    +
    +    /**
    +     * Return the macros code.
    +     *
    +     * @return null|string
    +     */
    +    public function getMacrosCode()
    +    {
    +        return $this->macrosCode;
    +    }
    +
    +    /**
    +     * Set the macros certificate.
    +     *
    +     * @param null|string $certificate
    +     */
    +    public function setMacrosCertificate($certificate)
    +    {
    +        $this->macrosCertificate = $certificate;
    +    }
    +
    +    /**
    +     * Is the project signed ?
    +     *
    +     * @return bool true|false
    +     */
    +    public function hasMacrosCertificate()
    +    {
    +        return $this->macrosCertificate !== null;
    +    }
    +
    +    /**
    +     * Return the macros certificate.
    +     *
    +     * @return null|string
    +     */
    +    public function getMacrosCertificate()
    +    {
    +        return $this->macrosCertificate;
    +    }
    +
    +    /**
    +     * Remove all macros, certificate from spreadsheet.
    +     */
    +    public function discardMacros()
    +    {
    +        $this->hasMacros = false;
    +        $this->macrosCode = null;
    +        $this->macrosCertificate = null;
    +    }
    +
    +    /**
    +     * set ribbon XML data.
    +     *
    +     * @param null|mixed $target
    +     * @param null|mixed $xmlData
    +     */
    +    public function setRibbonXMLData($target, $xmlData)
    +    {
    +        if ($target !== null && $xmlData !== null) {
    +            $this->ribbonXMLData = ['target' => $target, 'data' => $xmlData];
    +        } else {
    +            $this->ribbonXMLData = null;
    +        }
    +    }
    +
    +    /**
    +     * retrieve ribbon XML Data.
    +     *
    +     * return string|null|array
    +     *
    +     * @param string $what
    +     *
    +     * @return string
    +     */
    +    public function getRibbonXMLData($what = 'all') //we need some constants here...
    +    {
    +        $returnData = null;
    +        $what = strtolower($what);
    +        switch ($what) {
    +            case 'all':
    +                $returnData = $this->ribbonXMLData;
    +
    +                break;
    +            case 'target':
    +            case 'data':
    +                if (is_array($this->ribbonXMLData) && isset($this->ribbonXMLData[$what])) {
    +                    $returnData = $this->ribbonXMLData[$what];
    +                }
    +
    +                break;
    +        }
    +
    +        return $returnData;
    +    }
    +
    +    /**
    +     * store binaries ribbon objects (pictures).
    +     *
    +     * @param null|mixed $BinObjectsNames
    +     * @param null|mixed $BinObjectsData
    +     */
    +    public function setRibbonBinObjects($BinObjectsNames, $BinObjectsData)
    +    {
    +        if ($BinObjectsNames !== null && $BinObjectsData !== null) {
    +            $this->ribbonBinObjects = ['names' => $BinObjectsNames, 'data' => $BinObjectsData];
    +        } else {
    +            $this->ribbonBinObjects = null;
    +        }
    +    }
    +
    +    /**
    +     * List of unparsed loaded data for export to same format with better compatibility.
    +     * It has to be minimized when the library start to support currently unparsed data.
    +     *
    +     * @internal
    +     *
    +     * @return array
    +     */
    +    public function getUnparsedLoadedData()
    +    {
    +        return $this->unparsedLoadedData;
    +    }
    +
    +    /**
    +     * List of unparsed loaded data for export to same format with better compatibility.
    +     * It has to be minimized when the library start to support currently unparsed data.
    +     *
    +     * @internal
    +     *
    +     * @param array $unparsedLoadedData
    +     */
    +    public function setUnparsedLoadedData(array $unparsedLoadedData)
    +    {
    +        $this->unparsedLoadedData = $unparsedLoadedData;
    +    }
    +
    +    /**
    +     * return the extension of a filename. Internal use for a array_map callback (php<5.3 don't like lambda function).
    +     *
    +     * @param mixed $path
    +     *
    +     * @return string
    +     */
    +    private function getExtensionOnly($path)
    +    {
    +        return pathinfo($path, PATHINFO_EXTENSION);
    +    }
    +
    +    /**
    +     * retrieve Binaries Ribbon Objects.
    +     *
    +     * @param string $what
    +     *
    +     * @return null|array
    +     */
    +    public function getRibbonBinObjects($what = 'all')
    +    {
    +        $ReturnData = null;
    +        $what = strtolower($what);
    +        switch ($what) {
    +            case 'all':
    +                return $this->ribbonBinObjects;
    +
    +                break;
    +            case 'names':
    +            case 'data':
    +                if (is_array($this->ribbonBinObjects) && isset($this->ribbonBinObjects[$what])) {
    +                    $ReturnData = $this->ribbonBinObjects[$what];
    +                }
    +
    +                break;
    +            case 'types':
    +                if (is_array($this->ribbonBinObjects) &&
    +                    isset($this->ribbonBinObjects['data']) && is_array($this->ribbonBinObjects['data'])) {
    +                    $tmpTypes = array_keys($this->ribbonBinObjects['data']);
    +                    $ReturnData = array_unique(array_map([$this, 'getExtensionOnly'], $tmpTypes));
    +                } else {
    +                    $ReturnData = []; // the caller want an array... not null if empty
    +                }
    +
    +                break;
    +        }
    +
    +        return $ReturnData;
    +    }
    +
    +    /**
    +     * This workbook have a custom UI ?
    +     *
    +     * @return bool
    +     */
    +    public function hasRibbon()
    +    {
    +        return $this->ribbonXMLData !== null;
    +    }
    +
    +    /**
    +     * This workbook have additionnal object for the ribbon ?
    +     *
    +     * @return bool
    +     */
    +    public function hasRibbonBinObjects()
    +    {
    +        return $this->ribbonBinObjects !== null;
    +    }
    +
    +    /**
    +     * Check if a sheet with a specified code name already exists.
    +     *
    +     * @param string $pSheetCodeName Name of the worksheet to check
    +     *
    +     * @return bool
    +     */
    +    public function sheetCodeNameExists($pSheetCodeName)
    +    {
    +        return $this->getSheetByCodeName($pSheetCodeName) !== null;
    +    }
    +
    +    /**
    +     * Get sheet by code name. Warning : sheet don't have always a code name !
    +     *
    +     * @param string $pName Sheet name
    +     *
    +     * @return Worksheet
    +     */
    +    public function getSheetByCodeName($pName)
    +    {
    +        $worksheetCount = count($this->workSheetCollection);
    +        for ($i = 0; $i < $worksheetCount; ++$i) {
    +            if ($this->workSheetCollection[$i]->getCodeName() == $pName) {
    +                return $this->workSheetCollection[$i];
    +            }
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Create a new PhpSpreadsheet with one Worksheet.
    +     */
    +    public function __construct()
    +    {
    +        $this->uniqueID = uniqid('', true);
    +        $this->calculationEngine = new Calculation($this);
    +
    +        // Initialise worksheet collection and add one worksheet
    +        $this->workSheetCollection = [];
    +        $this->workSheetCollection[] = new Worksheet($this);
    +        $this->activeSheetIndex = 0;
    +
    +        // Create document properties
    +        $this->properties = new Document\Properties();
    +
    +        // Create document security
    +        $this->security = new Document\Security();
    +
    +        // Set named ranges
    +        $this->namedRanges = [];
    +
    +        // Create the cellXf supervisor
    +        $this->cellXfSupervisor = new Style(true);
    +        $this->cellXfSupervisor->bindParent($this);
    +
    +        // Create the default style
    +        $this->addCellXf(new Style());
    +        $this->addCellStyleXf(new Style());
    +    }
    +
    +    /**
    +     * Code to execute when this worksheet is unset().
    +     */
    +    public function __destruct()
    +    {
    +        $this->calculationEngine = null;
    +        $this->disconnectWorksheets();
    +    }
    +
    +    /**
    +     * Disconnect all worksheets from this PhpSpreadsheet workbook object,
    +     * typically so that the PhpSpreadsheet object can be unset.
    +     */
    +    public function disconnectWorksheets()
    +    {
    +        $worksheet = null;
    +        foreach ($this->workSheetCollection as $k => &$worksheet) {
    +            $worksheet->disconnectCells();
    +            $this->workSheetCollection[$k] = null;
    +        }
    +        unset($worksheet);
    +        $this->workSheetCollection = [];
    +    }
    +
    +    /**
    +     * Return the calculation engine for this worksheet.
    +     *
    +     * @return Calculation
    +     */
    +    public function getCalculationEngine()
    +    {
    +        return $this->calculationEngine;
    +    }
    +
    +    /**
    +     * Get properties.
    +     *
    +     * @return Document\Properties
    +     */
    +    public function getProperties()
    +    {
    +        return $this->properties;
    +    }
    +
    +    /**
    +     * Set properties.
    +     *
    +     * @param Document\Properties $pValue
    +     */
    +    public function setProperties(Document\Properties $pValue)
    +    {
    +        $this->properties = $pValue;
    +    }
    +
    +    /**
    +     * Get security.
    +     *
    +     * @return Document\Security
    +     */
    +    public function getSecurity()
    +    {
    +        return $this->security;
    +    }
    +
    +    /**
    +     * Set security.
    +     *
    +     * @param Document\Security $pValue
    +     */
    +    public function setSecurity(Document\Security $pValue)
    +    {
    +        $this->security = $pValue;
    +    }
    +
    +    /**
    +     * Get active sheet.
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function getActiveSheet()
    +    {
    +        return $this->getSheet($this->activeSheetIndex);
    +    }
    +
    +    /**
    +     * Create sheet and add it to this workbook.
    +     *
    +     * @param null|int $sheetIndex Index where sheet should go (0,1,..., or null for last)
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function createSheet($sheetIndex = null)
    +    {
    +        $newSheet = new Worksheet($this);
    +        $this->addSheet($newSheet, $sheetIndex);
    +
    +        return $newSheet;
    +    }
    +
    +    /**
    +     * Check if a sheet with a specified name already exists.
    +     *
    +     * @param string $pSheetName Name of the worksheet to check
    +     *
    +     * @return bool
    +     */
    +    public function sheetNameExists($pSheetName)
    +    {
    +        return $this->getSheetByName($pSheetName) !== null;
    +    }
    +
    +    /**
    +     * Add sheet.
    +     *
    +     * @param Worksheet $pSheet
    +     * @param null|int $iSheetIndex Index where sheet should go (0,1,..., or null for last)
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function addSheet(Worksheet $pSheet, $iSheetIndex = null)
    +    {
    +        if ($this->sheetNameExists($pSheet->getTitle())) {
    +            throw new Exception(
    +                "Workbook already contains a worksheet named '{$pSheet->getTitle()}'. Rename this worksheet first."
    +            );
    +        }
    +
    +        if ($iSheetIndex === null) {
    +            if ($this->activeSheetIndex < 0) {
    +                $this->activeSheetIndex = 0;
    +            }
    +            $this->workSheetCollection[] = $pSheet;
    +        } else {
    +            // Insert the sheet at the requested index
    +            array_splice(
    +                $this->workSheetCollection,
    +                $iSheetIndex,
    +                0,
    +                [$pSheet]
    +            );
    +
    +            // Adjust active sheet index if necessary
    +            if ($this->activeSheetIndex >= $iSheetIndex) {
    +                ++$this->activeSheetIndex;
    +            }
    +        }
    +
    +        if ($pSheet->getParent() === null) {
    +            $pSheet->rebindParent($this);
    +        }
    +
    +        return $pSheet;
    +    }
    +
    +    /**
    +     * Remove sheet by index.
    +     *
    +     * @param int $pIndex Active sheet index
    +     *
    +     * @throws Exception
    +     */
    +    public function removeSheetByIndex($pIndex)
    +    {
    +        $numSheets = count($this->workSheetCollection);
    +        if ($pIndex > $numSheets - 1) {
    +            throw new Exception(
    +                "You tried to remove a sheet by the out of bounds index: {$pIndex}. The actual number of sheets is {$numSheets}."
    +            );
    +        }
    +        array_splice($this->workSheetCollection, $pIndex, 1);
    +
    +        // Adjust active sheet index if necessary
    +        if (($this->activeSheetIndex >= $pIndex) &&
    +            ($pIndex > count($this->workSheetCollection) - 1)) {
    +            --$this->activeSheetIndex;
    +        }
    +    }
    +
    +    /**
    +     * Get sheet by index.
    +     *
    +     * @param int $pIndex Sheet index
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function getSheet($pIndex)
    +    {
    +        if (!isset($this->workSheetCollection[$pIndex])) {
    +            $numSheets = $this->getSheetCount();
    +
    +            throw new Exception(
    +                "Your requested sheet index: {$pIndex} is out of bounds. The actual number of sheets is {$numSheets}."
    +            );
    +        }
    +
    +        return $this->workSheetCollection[$pIndex];
    +    }
    +
    +    /**
    +     * Get all sheets.
    +     *
    +     * @return Worksheet[]
    +     */
    +    public function getAllSheets()
    +    {
    +        return $this->workSheetCollection;
    +    }
    +
    +    /**
    +     * Get sheet by name.
    +     *
    +     * @param string $pName Sheet name
    +     *
    +     * @return Worksheet
    +     */
    +    public function getSheetByName($pName)
    +    {
    +        $worksheetCount = count($this->workSheetCollection);
    +        for ($i = 0; $i < $worksheetCount; ++$i) {
    +            if ($this->workSheetCollection[$i]->getTitle() === $pName) {
    +                return $this->workSheetCollection[$i];
    +            }
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Get index for sheet.
    +     *
    +     * @param Worksheet $pSheet
    +     *
    +     * @throws Exception
    +     *
    +     * @return int index
    +     */
    +    public function getIndex(Worksheet $pSheet)
    +    {
    +        foreach ($this->workSheetCollection as $key => $value) {
    +            if ($value->getHashCode() == $pSheet->getHashCode()) {
    +                return $key;
    +            }
    +        }
    +
    +        throw new Exception('Sheet does not exist.');
    +    }
    +
    +    /**
    +     * Set index for sheet by sheet name.
    +     *
    +     * @param string $sheetName Sheet name to modify index for
    +     * @param int $newIndex New index for the sheet
    +     *
    +     * @throws Exception
    +     *
    +     * @return int New sheet index
    +     */
    +    public function setIndexByName($sheetName, $newIndex)
    +    {
    +        $oldIndex = $this->getIndex($this->getSheetByName($sheetName));
    +        $pSheet = array_splice(
    +            $this->workSheetCollection,
    +            $oldIndex,
    +            1
    +        );
    +        array_splice(
    +            $this->workSheetCollection,
    +            $newIndex,
    +            0,
    +            $pSheet
    +        );
    +
    +        return $newIndex;
    +    }
    +
    +    /**
    +     * Get sheet count.
    +     *
    +     * @return int
    +     */
    +    public function getSheetCount()
    +    {
    +        return count($this->workSheetCollection);
    +    }
    +
    +    /**
    +     * Get active sheet index.
    +     *
    +     * @return int Active sheet index
    +     */
    +    public function getActiveSheetIndex()
    +    {
    +        return $this->activeSheetIndex;
    +    }
    +
    +    /**
    +     * Set active sheet index.
    +     *
    +     * @param int $pIndex Active sheet index
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function setActiveSheetIndex($pIndex)
    +    {
    +        $numSheets = count($this->workSheetCollection);
    +
    +        if ($pIndex > $numSheets - 1) {
    +            throw new Exception(
    +                "You tried to set a sheet active by the out of bounds index: {$pIndex}. The actual number of sheets is {$numSheets}."
    +            );
    +        }
    +        $this->activeSheetIndex = $pIndex;
    +
    +        return $this->getActiveSheet();
    +    }
    +
    +    /**
    +     * Set active sheet index by name.
    +     *
    +     * @param string $pValue Sheet title
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function setActiveSheetIndexByName($pValue)
    +    {
    +        if (($worksheet = $this->getSheetByName($pValue)) instanceof Worksheet) {
    +            $this->setActiveSheetIndex($this->getIndex($worksheet));
    +
    +            return $worksheet;
    +        }
    +
    +        throw new Exception('Workbook does not contain sheet:' . $pValue);
    +    }
    +
    +    /**
    +     * Get sheet names.
    +     *
    +     * @return string[]
    +     */
    +    public function getSheetNames()
    +    {
    +        $returnValue = [];
    +        $worksheetCount = $this->getSheetCount();
    +        for ($i = 0; $i < $worksheetCount; ++$i) {
    +            $returnValue[] = $this->getSheet($i)->getTitle();
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * Add external sheet.
    +     *
    +     * @param Worksheet $pSheet External sheet to add
    +     * @param null|int $iSheetIndex Index where sheet should go (0,1,..., or null for last)
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function addExternalSheet(Worksheet $pSheet, $iSheetIndex = null)
    +    {
    +        if ($this->sheetNameExists($pSheet->getTitle())) {
    +            throw new Exception("Workbook already contains a worksheet named '{$pSheet->getTitle()}'. Rename the external sheet first.");
    +        }
    +
    +        // count how many cellXfs there are in this workbook currently, we will need this below
    +        $countCellXfs = count($this->cellXfCollection);
    +
    +        // copy all the shared cellXfs from the external workbook and append them to the current
    +        foreach ($pSheet->getParent()->getCellXfCollection() as $cellXf) {
    +            $this->addCellXf(clone $cellXf);
    +        }
    +
    +        // move sheet to this workbook
    +        $pSheet->rebindParent($this);
    +
    +        // update the cellXfs
    +        foreach ($pSheet->getCoordinates(false) as $coordinate) {
    +            $cell = $pSheet->getCell($coordinate);
    +            $cell->setXfIndex($cell->getXfIndex() + $countCellXfs);
    +        }
    +
    +        return $this->addSheet($pSheet, $iSheetIndex);
    +    }
    +
    +    /**
    +     * Get named ranges.
    +     *
    +     * @return NamedRange[]
    +     */
    +    public function getNamedRanges()
    +    {
    +        return $this->namedRanges;
    +    }
    +
    +    /**
    +     * Add named range.
    +     *
    +     * @param NamedRange $namedRange
    +     *
    +     * @return bool
    +     */
    +    public function addNamedRange(NamedRange $namedRange)
    +    {
    +        if ($namedRange->getScope() == null) {
    +            // global scope
    +            $this->namedRanges[$namedRange->getName()] = $namedRange;
    +        } else {
    +            // local scope
    +            $this->namedRanges[$namedRange->getScope()->getTitle() . '!' . $namedRange->getName()] = $namedRange;
    +        }
    +
    +        return true;
    +    }
    +
    +    /**
    +     * Get named range.
    +     *
    +     * @param string $namedRange
    +     * @param null|Worksheet $pSheet Scope. Use null for global scope
    +     *
    +     * @return null|NamedRange
    +     */
    +    public function getNamedRange($namedRange, Worksheet $pSheet = null)
    +    {
    +        $returnValue = null;
    +
    +        if ($namedRange != '' && ($namedRange !== null)) {
    +            // first look for global defined name
    +            if (isset($this->namedRanges[$namedRange])) {
    +                $returnValue = $this->namedRanges[$namedRange];
    +            }
    +
    +            // then look for local defined name (has priority over global defined name if both names exist)
    +            if (($pSheet !== null) && isset($this->namedRanges[$pSheet->getTitle() . '!' . $namedRange])) {
    +                $returnValue = $this->namedRanges[$pSheet->getTitle() . '!' . $namedRange];
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * Remove named range.
    +     *
    +     * @param string $namedRange
    +     * @param null|Worksheet $pSheet scope: use null for global scope
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function removeNamedRange($namedRange, Worksheet $pSheet = null)
    +    {
    +        if ($pSheet === null) {
    +            if (isset($this->namedRanges[$namedRange])) {
    +                unset($this->namedRanges[$namedRange]);
    +            }
    +        } else {
    +            if (isset($this->namedRanges[$pSheet->getTitle() . '!' . $namedRange])) {
    +                unset($this->namedRanges[$pSheet->getTitle() . '!' . $namedRange]);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get worksheet iterator.
    +     *
    +     * @return Iterator
    +     */
    +    public function getWorksheetIterator()
    +    {
    +        return new Iterator($this);
    +    }
    +
    +    /**
    +     * Copy workbook (!= clone!).
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function copy()
    +    {
    +        $copied = clone $this;
    +
    +        $worksheetCount = count($this->workSheetCollection);
    +        for ($i = 0; $i < $worksheetCount; ++$i) {
    +            $this->workSheetCollection[$i] = $this->workSheetCollection[$i]->copy();
    +            $this->workSheetCollection[$i]->rebindParent($this);
    +        }
    +
    +        return $copied;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        foreach ($this as $key => $val) {
    +            if (is_object($val) || (is_array($val))) {
    +                $this->{$key} = unserialize(serialize($val));
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Get the workbook collection of cellXfs.
    +     *
    +     * @return Style[]
    +     */
    +    public function getCellXfCollection()
    +    {
    +        return $this->cellXfCollection;
    +    }
    +
    +    /**
    +     * Get cellXf by index.
    +     *
    +     * @param int $pIndex
    +     *
    +     * @return Style
    +     */
    +    public function getCellXfByIndex($pIndex)
    +    {
    +        return $this->cellXfCollection[$pIndex];
    +    }
    +
    +    /**
    +     * Get cellXf by hash code.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return false|Style
    +     */
    +    public function getCellXfByHashCode($pValue)
    +    {
    +        foreach ($this->cellXfCollection as $cellXf) {
    +            if ($cellXf->getHashCode() == $pValue) {
    +                return $cellXf;
    +            }
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Check if style exists in style collection.
    +     *
    +     * @param Style $pCellStyle
    +     *
    +     * @return bool
    +     */
    +    public function cellXfExists($pCellStyle)
    +    {
    +        return in_array($pCellStyle, $this->cellXfCollection, true);
    +    }
    +
    +    /**
    +     * Get default style.
    +     *
    +     * @throws Exception
    +     *
    +     * @return Style
    +     */
    +    public function getDefaultStyle()
    +    {
    +        if (isset($this->cellXfCollection[0])) {
    +            return $this->cellXfCollection[0];
    +        }
    +
    +        throw new Exception('No default style found for this workbook');
    +    }
    +
    +    /**
    +     * Add a cellXf to the workbook.
    +     *
    +     * @param Style $style
    +     */
    +    public function addCellXf(Style $style)
    +    {
    +        $this->cellXfCollection[] = $style;
    +        $style->setIndex(count($this->cellXfCollection) - 1);
    +    }
    +
    +    /**
    +     * Remove cellXf by index. It is ensured that all cells get their xf index updated.
    +     *
    +     * @param int $pIndex Index to cellXf
    +     *
    +     * @throws Exception
    +     */
    +    public function removeCellXfByIndex($pIndex)
    +    {
    +        if ($pIndex > count($this->cellXfCollection) - 1) {
    +            throw new Exception('CellXf index is out of bounds.');
    +        }
    +
    +        // first remove the cellXf
    +        array_splice($this->cellXfCollection, $pIndex, 1);
    +
    +        // then update cellXf indexes for cells
    +        foreach ($this->workSheetCollection as $worksheet) {
    +            foreach ($worksheet->getCoordinates(false) as $coordinate) {
    +                $cell = $worksheet->getCell($coordinate);
    +                $xfIndex = $cell->getXfIndex();
    +                if ($xfIndex > $pIndex) {
    +                    // decrease xf index by 1
    +                    $cell->setXfIndex($xfIndex - 1);
    +                } elseif ($xfIndex == $pIndex) {
    +                    // set to default xf index 0
    +                    $cell->setXfIndex(0);
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Get the cellXf supervisor.
    +     *
    +     * @return Style
    +     */
    +    public function getCellXfSupervisor()
    +    {
    +        return $this->cellXfSupervisor;
    +    }
    +
    +    /**
    +     * Get the workbook collection of cellStyleXfs.
    +     *
    +     * @return Style[]
    +     */
    +    public function getCellStyleXfCollection()
    +    {
    +        return $this->cellStyleXfCollection;
    +    }
    +
    +    /**
    +     * Get cellStyleXf by index.
    +     *
    +     * @param int $pIndex Index to cellXf
    +     *
    +     * @return Style
    +     */
    +    public function getCellStyleXfByIndex($pIndex)
    +    {
    +        return $this->cellStyleXfCollection[$pIndex];
    +    }
    +
    +    /**
    +     * Get cellStyleXf by hash code.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return false|Style
    +     */
    +    public function getCellStyleXfByHashCode($pValue)
    +    {
    +        foreach ($this->cellStyleXfCollection as $cellStyleXf) {
    +            if ($cellStyleXf->getHashCode() == $pValue) {
    +                return $cellStyleXf;
    +            }
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Add a cellStyleXf to the workbook.
    +     *
    +     * @param Style $pStyle
    +     */
    +    public function addCellStyleXf(Style $pStyle)
    +    {
    +        $this->cellStyleXfCollection[] = $pStyle;
    +        $pStyle->setIndex(count($this->cellStyleXfCollection) - 1);
    +    }
    +
    +    /**
    +     * Remove cellStyleXf by index.
    +     *
    +     * @param int $pIndex Index to cellXf
    +     *
    +     * @throws Exception
    +     */
    +    public function removeCellStyleXfByIndex($pIndex)
    +    {
    +        if ($pIndex > count($this->cellStyleXfCollection) - 1) {
    +            throw new Exception('CellStyleXf index is out of bounds.');
    +        }
    +        array_splice($this->cellStyleXfCollection, $pIndex, 1);
    +    }
    +
    +    /**
    +     * Eliminate all unneeded cellXf and afterwards update the xfIndex for all cells
    +     * and columns in the workbook.
    +     */
    +    public function garbageCollect()
    +    {
    +        // how many references are there to each cellXf ?
    +        $countReferencesCellXf = [];
    +        foreach ($this->cellXfCollection as $index => $cellXf) {
    +            $countReferencesCellXf[$index] = 0;
    +        }
    +
    +        foreach ($this->getWorksheetIterator() as $sheet) {
    +            // from cells
    +            foreach ($sheet->getCoordinates(false) as $coordinate) {
    +                $cell = $sheet->getCell($coordinate);
    +                ++$countReferencesCellXf[$cell->getXfIndex()];
    +            }
    +
    +            // from row dimensions
    +            foreach ($sheet->getRowDimensions() as $rowDimension) {
    +                if ($rowDimension->getXfIndex() !== null) {
    +                    ++$countReferencesCellXf[$rowDimension->getXfIndex()];
    +                }
    +            }
    +
    +            // from column dimensions
    +            foreach ($sheet->getColumnDimensions() as $columnDimension) {
    +                ++$countReferencesCellXf[$columnDimension->getXfIndex()];
    +            }
    +        }
    +
    +        // remove cellXfs without references and create mapping so we can update xfIndex
    +        // for all cells and columns
    +        $countNeededCellXfs = 0;
    +        foreach ($this->cellXfCollection as $index => $cellXf) {
    +            if ($countReferencesCellXf[$index] > 0 || $index == 0) { // we must never remove the first cellXf
    +                ++$countNeededCellXfs;
    +            } else {
    +                unset($this->cellXfCollection[$index]);
    +            }
    +            $map[$index] = $countNeededCellXfs - 1;
    +        }
    +        $this->cellXfCollection = array_values($this->cellXfCollection);
    +
    +        // update the index for all cellXfs
    +        foreach ($this->cellXfCollection as $i => $cellXf) {
    +            $cellXf->setIndex($i);
    +        }
    +
    +        // make sure there is always at least one cellXf (there should be)
    +        if (empty($this->cellXfCollection)) {
    +            $this->cellXfCollection[] = new Style();
    +        }
    +
    +        // update the xfIndex for all cells, row dimensions, column dimensions
    +        foreach ($this->getWorksheetIterator() as $sheet) {
    +            // for all cells
    +            foreach ($sheet->getCoordinates(false) as $coordinate) {
    +                $cell = $sheet->getCell($coordinate);
    +                $cell->setXfIndex($map[$cell->getXfIndex()]);
    +            }
    +
    +            // for all row dimensions
    +            foreach ($sheet->getRowDimensions() as $rowDimension) {
    +                if ($rowDimension->getXfIndex() !== null) {
    +                    $rowDimension->setXfIndex($map[$rowDimension->getXfIndex()]);
    +                }
    +            }
    +
    +            // for all column dimensions
    +            foreach ($sheet->getColumnDimensions() as $columnDimension) {
    +                $columnDimension->setXfIndex($map[$columnDimension->getXfIndex()]);
    +            }
    +
    +            // also do garbage collection for all the sheets
    +            $sheet->garbageCollect();
    +        }
    +    }
    +
    +    /**
    +     * Return the unique ID value assigned to this spreadsheet workbook.
    +     *
    +     * @return string
    +     */
    +    public function getID()
    +    {
    +        return $this->uniqueID;
    +    }
    +
    +    /**
    +     * Get the visibility of the horizonal scroll bar in the application.
    +     *
    +     * @return bool True if horizonal scroll bar is visible
    +     */
    +    public function getShowHorizontalScroll()
    +    {
    +        return $this->showHorizontalScroll;
    +    }
    +
    +    /**
    +     * Set the visibility of the horizonal scroll bar in the application.
    +     *
    +     * @param bool $showHorizontalScroll True if horizonal scroll bar is visible
    +     */
    +    public function setShowHorizontalScroll($showHorizontalScroll)
    +    {
    +        $this->showHorizontalScroll = (bool) $showHorizontalScroll;
    +    }
    +
    +    /**
    +     * Get the visibility of the vertical scroll bar in the application.
    +     *
    +     * @return bool True if vertical scroll bar is visible
    +     */
    +    public function getShowVerticalScroll()
    +    {
    +        return $this->showVerticalScroll;
    +    }
    +
    +    /**
    +     * Set the visibility of the vertical scroll bar in the application.
    +     *
    +     * @param bool $showVerticalScroll True if vertical scroll bar is visible
    +     */
    +    public function setShowVerticalScroll($showVerticalScroll)
    +    {
    +        $this->showVerticalScroll = (bool) $showVerticalScroll;
    +    }
    +
    +    /**
    +     * Get the visibility of the sheet tabs in the application.
    +     *
    +     * @return bool True if the sheet tabs are visible
    +     */
    +    public function getShowSheetTabs()
    +    {
    +        return $this->showSheetTabs;
    +    }
    +
    +    /**
    +     * Set the visibility of the sheet tabs  in the application.
    +     *
    +     * @param bool $showSheetTabs True if sheet tabs are visible
    +     */
    +    public function setShowSheetTabs($showSheetTabs)
    +    {
    +        $this->showSheetTabs = (bool) $showSheetTabs;
    +    }
    +
    +    /**
    +     * Return whether the workbook window is minimized.
    +     *
    +     * @return bool true if workbook window is minimized
    +     */
    +    public function getMinimized()
    +    {
    +        return $this->minimized;
    +    }
    +
    +    /**
    +     * Set whether the workbook window is minimized.
    +     *
    +     * @param bool $minimized true if workbook window is minimized
    +     */
    +    public function setMinimized($minimized)
    +    {
    +        $this->minimized = (bool) $minimized;
    +    }
    +
    +    /**
    +     * Return whether to group dates when presenting the user with
    +     * filtering optiomd in the user interface.
    +     *
    +     * @return bool true if workbook window is minimized
    +     */
    +    public function getAutoFilterDateGrouping()
    +    {
    +        return $this->autoFilterDateGrouping;
    +    }
    +
    +    /**
    +     * Set whether to group dates when presenting the user with
    +     * filtering optiomd in the user interface.
    +     *
    +     * @param bool $autoFilterDateGrouping true if workbook window is minimized
    +     */
    +    public function setAutoFilterDateGrouping($autoFilterDateGrouping)
    +    {
    +        $this->autoFilterDateGrouping = (bool) $autoFilterDateGrouping;
    +    }
    +
    +    /**
    +     * Return the first sheet in the book view.
    +     *
    +     * @return int First sheet in book view
    +     */
    +    public function getFirstSheetIndex()
    +    {
    +        return $this->firstSheetIndex;
    +    }
    +
    +    /**
    +     * Set the first sheet in the book view.
    +     *
    +     * @param int $firstSheetIndex First sheet in book view
    +     *
    +     * @throws Exception  if the given value is invalid
    +     */
    +    public function setFirstSheetIndex($firstSheetIndex)
    +    {
    +        if ($firstSheetIndex >= 0) {
    +            $this->firstSheetIndex = (int) $firstSheetIndex;
    +        } else {
    +            throw new Exception('First sheet index must be a positive integer.');
    +        }
    +    }
    +
    +    /**
    +     * Return the visibility status of the workbook.
    +     *
    +     * This may be one of the following three values:
    +     * - visibile
    +     *
    +     * @return string Visible status
    +     */
    +    public function getVisibility()
    +    {
    +        return $this->visibility;
    +    }
    +
    +    /**
    +     * Set the visibility status of the workbook.
    +     *
    +     * Valid values are:
    +     *  - 'visible' (self::VISIBILITY_VISIBLE):
    +     *       Workbook window is visible
    +     *  - 'hidden' (self::VISIBILITY_HIDDEN):
    +     *       Workbook window is hidden, but can be shown by the user
    +     *       via the user interface
    +     *  - 'veryHidden' (self::VISIBILITY_VERY_HIDDEN):
    +     *       Workbook window is hidden and cannot be shown in the
    +     *       user interface.
    +     *
    +     * @param string $visibility visibility status of the workbook
    +     *
    +     * @throws Exception  if the given value is invalid
    +     */
    +    public function setVisibility($visibility)
    +    {
    +        if ($visibility === null) {
    +            $visibility = self::VISIBILITY_VISIBLE;
    +        }
    +
    +        if (in_array($visibility, self::$workbookViewVisibilityValues)) {
    +            $this->visibility = $visibility;
    +        } else {
    +            throw new Exception('Invalid visibility value.');
    +        }
    +    }
    +
    +    /**
    +     * Get the ratio between the workbook tabs bar and the horizontal scroll bar.
    +     * TabRatio is assumed to be out of 1000 of the horizontal window width.
    +     *
    +     * @return int Ratio between the workbook tabs bar and the horizontal scroll bar
    +     */
    +    public function getTabRatio()
    +    {
    +        return $this->tabRatio;
    +    }
    +
    +    /**
    +     * Set the ratio between the workbook tabs bar and the horizontal scroll bar
    +     * TabRatio is assumed to be out of 1000 of the horizontal window width.
    +     *
    +     * @param int $tabRatio Ratio between the tabs bar and the horizontal scroll bar
    +     *
    +     * @throws Exception  if the given value is invalid
    +     */
    +    public function setTabRatio($tabRatio)
    +    {
    +        if ($tabRatio >= 0 || $tabRatio <= 1000) {
    +            $this->tabRatio = (int) $tabRatio;
    +        } else {
    +            throw new Exception('Tab ratio must be between 0 and 1000.');
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Alignment.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Alignment.php
    new file mode 100644
    index 00000000000..b4df792b167
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Alignment.php
    @@ -0,0 +1,466 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Style;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Alignment extends Supervisor
    +{
    +    // Horizontal alignment styles
    +    const HORIZONTAL_GENERAL = 'general';
    +    const HORIZONTAL_LEFT = 'left';
    +    const HORIZONTAL_RIGHT = 'right';
    +    const HORIZONTAL_CENTER = 'center';
    +    const HORIZONTAL_CENTER_CONTINUOUS = 'centerContinuous';
    +    const HORIZONTAL_JUSTIFY = 'justify';
    +    const HORIZONTAL_FILL = 'fill';
    +    const HORIZONTAL_DISTRIBUTED = 'distributed'; // Excel2007 only
    +
    +    // Vertical alignment styles
    +    const VERTICAL_BOTTOM = 'bottom';
    +    const VERTICAL_TOP = 'top';
    +    const VERTICAL_CENTER = 'center';
    +    const VERTICAL_JUSTIFY = 'justify';
    +    const VERTICAL_DISTRIBUTED = 'distributed'; // Excel2007 only
    +
    +    // Read order
    +    const READORDER_CONTEXT = 0;
    +    const READORDER_LTR = 1;
    +    const READORDER_RTL = 2;
    +
    +    /**
    +     * Horizontal alignment.
    +     *
    +     * @var string
    +     */
    +    protected $horizontal = self::HORIZONTAL_GENERAL;
    +
    +    /**
    +     * Vertical alignment.
    +     *
    +     * @var string
    +     */
    +    protected $vertical = self::VERTICAL_BOTTOM;
    +
    +    /**
    +     * Text rotation.
    +     *
    +     * @var int
    +     */
    +    protected $textRotation = 0;
    +
    +    /**
    +     * Wrap text.
    +     *
    +     * @var bool
    +     */
    +    protected $wrapText = false;
    +
    +    /**
    +     * Shrink to fit.
    +     *
    +     * @var bool
    +     */
    +    protected $shrinkToFit = false;
    +
    +    /**
    +     * Indent - only possible with horizontal alignment left and right.
    +     *
    +     * @var int
    +     */
    +    protected $indent = 0;
    +
    +    /**
    +     * Read order.
    +     *
    +     * @var int
    +     */
    +    protected $readOrder = 0;
    +
    +    /**
    +     * Create a new Alignment.
    +     *
    +     * @param bool $isSupervisor Flag indicating if this is a supervisor or not
    +     *                                       Leave this value at default unless you understand exactly what
    +     *                                          its ramifications are
    +     * @param bool $isConditional Flag indicating if this is a conditional style or not
    +     *                                       Leave this value at default unless you understand exactly what
    +     *                                          its ramifications are
    +     */
    +    public function __construct($isSupervisor = false, $isConditional = false)
    +    {
    +        // Supervisor?
    +        parent::__construct($isSupervisor);
    +
    +        if ($isConditional) {
    +            $this->horizontal = null;
    +            $this->vertical = null;
    +            $this->textRotation = null;
    +        }
    +    }
    +
    +    /**
    +     * Get the shared style component for the currently active cell in currently active sheet.
    +     * Only used for style supervisor.
    +     *
    +     * @return Alignment
    +     */
    +    public function getSharedComponent()
    +    {
    +        return $this->parent->getSharedComponent()->getAlignment();
    +    }
    +
    +    /**
    +     * Build style array from subcomponents.
    +     *
    +     * @param array $array
    +     *
    +     * @return array
    +     */
    +    public function getStyleArray($array)
    +    {
    +        return ['alignment' => $array];
    +    }
    +
    +    /**
    +     * Apply styles from array.
    +     *
    +     * <code>
    +     * $spreadsheet->getActiveSheet()->getStyle('B2')->getAlignment()->applyFromArray(
    +     *        [
    +     *            'horizontal'   => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
    +     *            'vertical'     => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,
    +     *            'textRotation' => 0,
    +     *            'wrapText'     => TRUE
    +     *        ]
    +     * );
    +     * </code>
    +     *
    +     * @param array $pStyles Array containing style information
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Alignment
    +     */
    +    public function applyFromArray(array $pStyles)
    +    {
    +        if ($this->isSupervisor) {
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())
    +                ->applyFromArray($this->getStyleArray($pStyles));
    +        } else {
    +            if (isset($pStyles['horizontal'])) {
    +                $this->setHorizontal($pStyles['horizontal']);
    +            }
    +            if (isset($pStyles['vertical'])) {
    +                $this->setVertical($pStyles['vertical']);
    +            }
    +            if (isset($pStyles['textRotation'])) {
    +                $this->setTextRotation($pStyles['textRotation']);
    +            }
    +            if (isset($pStyles['wrapText'])) {
    +                $this->setWrapText($pStyles['wrapText']);
    +            }
    +            if (isset($pStyles['shrinkToFit'])) {
    +                $this->setShrinkToFit($pStyles['shrinkToFit']);
    +            }
    +            if (isset($pStyles['indent'])) {
    +                $this->setIndent($pStyles['indent']);
    +            }
    +            if (isset($pStyles['readOrder'])) {
    +                $this->setReadOrder($pStyles['readOrder']);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Horizontal.
    +     *
    +     * @return string
    +     */
    +    public function getHorizontal()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getHorizontal();
    +        }
    +
    +        return $this->horizontal;
    +    }
    +
    +    /**
    +     * Set Horizontal.
    +     *
    +     * @param string $pValue see self::HORIZONTAL_*
    +     *
    +     * @return Alignment
    +     */
    +    public function setHorizontal($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = self::HORIZONTAL_GENERAL;
    +        }
    +
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['horizontal' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->horizontal = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Vertical.
    +     *
    +     * @return string
    +     */
    +    public function getVertical()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getVertical();
    +        }
    +
    +        return $this->vertical;
    +    }
    +
    +    /**
    +     * Set Vertical.
    +     *
    +     * @param string $pValue see self::VERTICAL_*
    +     *
    +     * @return Alignment
    +     */
    +    public function setVertical($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = self::VERTICAL_BOTTOM;
    +        }
    +
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['vertical' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->vertical = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get TextRotation.
    +     *
    +     * @return int
    +     */
    +    public function getTextRotation()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getTextRotation();
    +        }
    +
    +        return $this->textRotation;
    +    }
    +
    +    /**
    +     * Set TextRotation.
    +     *
    +     * @param int $pValue
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Alignment
    +     */
    +    public function setTextRotation($pValue)
    +    {
    +        // Excel2007 value 255 => PhpSpreadsheet value -165
    +        if ($pValue == 255) {
    +            $pValue = -165;
    +        }
    +
    +        // Set rotation
    +        if (($pValue >= -90 && $pValue <= 90) || $pValue == -165) {
    +            if ($this->isSupervisor) {
    +                $styleArray = $this->getStyleArray(['textRotation' => $pValue]);
    +                $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +            } else {
    +                $this->textRotation = $pValue;
    +            }
    +        } else {
    +            throw new PhpSpreadsheetException('Text rotation should be a value between -90 and 90.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Wrap Text.
    +     *
    +     * @return bool
    +     */
    +    public function getWrapText()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getWrapText();
    +        }
    +
    +        return $this->wrapText;
    +    }
    +
    +    /**
    +     * Set Wrap Text.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Alignment
    +     */
    +    public function setWrapText($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = false;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['wrapText' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->wrapText = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Shrink to fit.
    +     *
    +     * @return bool
    +     */
    +    public function getShrinkToFit()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getShrinkToFit();
    +        }
    +
    +        return $this->shrinkToFit;
    +    }
    +
    +    /**
    +     * Set Shrink to fit.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Alignment
    +     */
    +    public function setShrinkToFit($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = false;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['shrinkToFit' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->shrinkToFit = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get indent.
    +     *
    +     * @return int
    +     */
    +    public function getIndent()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getIndent();
    +        }
    +
    +        return $this->indent;
    +    }
    +
    +    /**
    +     * Set indent.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return Alignment
    +     */
    +    public function setIndent($pValue)
    +    {
    +        if ($pValue > 0) {
    +            if ($this->getHorizontal() != self::HORIZONTAL_GENERAL &&
    +                $this->getHorizontal() != self::HORIZONTAL_LEFT &&
    +                $this->getHorizontal() != self::HORIZONTAL_RIGHT) {
    +                $pValue = 0; // indent not supported
    +            }
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['indent' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->indent = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get read order.
    +     *
    +     * @return int
    +     */
    +    public function getReadOrder()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getReadOrder();
    +        }
    +
    +        return $this->readOrder;
    +    }
    +
    +    /**
    +     * Set read order.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return Alignment
    +     */
    +    public function setReadOrder($pValue)
    +    {
    +        if ($pValue < 0 || $pValue > 2) {
    +            $pValue = 0;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['readOrder' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->readOrder = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getHashCode();
    +        }
    +
    +        return md5(
    +            $this->horizontal .
    +            $this->vertical .
    +            $this->textRotation .
    +            ($this->wrapText ? 't' : 'f') .
    +            ($this->shrinkToFit ? 't' : 'f') .
    +            $this->indent .
    +            $this->readOrder .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Border.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Border.php
    new file mode 100644
    index 00000000000..c957cf595a9
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Border.php
    @@ -0,0 +1,239 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Style;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Border extends Supervisor
    +{
    +    // Border style
    +    const BORDER_NONE = 'none';
    +    const BORDER_DASHDOT = 'dashDot';
    +    const BORDER_DASHDOTDOT = 'dashDotDot';
    +    const BORDER_DASHED = 'dashed';
    +    const BORDER_DOTTED = 'dotted';
    +    const BORDER_DOUBLE = 'double';
    +    const BORDER_HAIR = 'hair';
    +    const BORDER_MEDIUM = 'medium';
    +    const BORDER_MEDIUMDASHDOT = 'mediumDashDot';
    +    const BORDER_MEDIUMDASHDOTDOT = 'mediumDashDotDot';
    +    const BORDER_MEDIUMDASHED = 'mediumDashed';
    +    const BORDER_SLANTDASHDOT = 'slantDashDot';
    +    const BORDER_THICK = 'thick';
    +    const BORDER_THIN = 'thin';
    +
    +    /**
    +     * Border style.
    +     *
    +     * @var string
    +     */
    +    protected $borderStyle = self::BORDER_NONE;
    +
    +    /**
    +     * Border color.
    +     *
    +     * @var Color
    +     */
    +    protected $color;
    +
    +    /**
    +     * @var int
    +     */
    +    public $colorIndex;
    +
    +    /**
    +     * Create a new Border.
    +     *
    +     * @param bool $isSupervisor Flag indicating if this is a supervisor or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     * @param bool $isConditional Flag indicating if this is a conditional style or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     */
    +    public function __construct($isSupervisor = false, $isConditional = false)
    +    {
    +        // Supervisor?
    +        parent::__construct($isSupervisor);
    +
    +        // Initialise values
    +        $this->color = new Color(Color::COLOR_BLACK, $isSupervisor);
    +
    +        // bind parent if we are a supervisor
    +        if ($isSupervisor) {
    +            $this->color->bindParent($this, 'color');
    +        }
    +    }
    +
    +    /**
    +     * Get the shared style component for the currently active cell in currently active sheet.
    +     * Only used for style supervisor.
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Border
    +     */
    +    public function getSharedComponent()
    +    {
    +        switch ($this->parentPropertyName) {
    +            case 'allBorders':
    +            case 'horizontal':
    +            case 'inside':
    +            case 'outline':
    +            case 'vertical':
    +                throw new PhpSpreadsheetException('Cannot get shared component for a pseudo-border.');
    +
    +                break;
    +            case 'bottom':
    +                return $this->parent->getSharedComponent()->getBottom();
    +            case 'diagonal':
    +                return $this->parent->getSharedComponent()->getDiagonal();
    +            case 'left':
    +                return $this->parent->getSharedComponent()->getLeft();
    +            case 'right':
    +                return $this->parent->getSharedComponent()->getRight();
    +            case 'top':
    +                return $this->parent->getSharedComponent()->getTop();
    +        }
    +    }
    +
    +    /**
    +     * Build style array from subcomponents.
    +     *
    +     * @param array $array
    +     *
    +     * @return array
    +     */
    +    public function getStyleArray($array)
    +    {
    +        return $this->parent->getStyleArray([$this->parentPropertyName => $array]);
    +    }
    +
    +    /**
    +     * Apply styles from array.
    +     *
    +     * <code>
    +     * $spreadsheet->getActiveSheet()->getStyle('B2')->getBorders()->getTop()->applyFromArray(
    +     *        [
    +     *            'borderStyle' => Border::BORDER_DASHDOT,
    +     *            'color' => [
    +     *                'rgb' => '808080'
    +     *            ]
    +     *        ]
    +     * );
    +     * </code>
    +     *
    +     * @param array $pStyles Array containing style information
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Border
    +     */
    +    public function applyFromArray(array $pStyles)
    +    {
    +        if ($this->isSupervisor) {
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
    +        } else {
    +            if (isset($pStyles['borderStyle'])) {
    +                $this->setBorderStyle($pStyles['borderStyle']);
    +            }
    +            if (isset($pStyles['color'])) {
    +                $this->getColor()->applyFromArray($pStyles['color']);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Border style.
    +     *
    +     * @return string
    +     */
    +    public function getBorderStyle()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getBorderStyle();
    +        }
    +
    +        return $this->borderStyle;
    +    }
    +
    +    /**
    +     * Set Border style.
    +     *
    +     * @param bool|string $pValue
    +     *                            When passing a boolean, FALSE equates Border::BORDER_NONE
    +     *                                and TRUE to Border::BORDER_MEDIUM
    +     *
    +     * @return Border
    +     */
    +    public function setBorderStyle($pValue)
    +    {
    +        if (empty($pValue)) {
    +            $pValue = self::BORDER_NONE;
    +        } elseif (is_bool($pValue) && $pValue) {
    +            $pValue = self::BORDER_MEDIUM;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['borderStyle' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->borderStyle = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Border Color.
    +     *
    +     * @return Color
    +     */
    +    public function getColor()
    +    {
    +        return $this->color;
    +    }
    +
    +    /**
    +     * Set Border Color.
    +     *
    +     * @param Color $pValue
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Border
    +     */
    +    public function setColor(Color $pValue)
    +    {
    +        // make sure parameter is a real color and not a supervisor
    +        $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue;
    +
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getColor()->getStyleArray(['argb' => $color->getARGB()]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->color = $color;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getHashCode();
    +        }
    +
    +        return md5(
    +            $this->borderStyle .
    +            $this->color->getHashCode() .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Borders.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Borders.php
    new file mode 100644
    index 00000000000..a1d6759b936
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Borders.php
    @@ -0,0 +1,423 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Style;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Borders extends Supervisor
    +{
    +    // Diagonal directions
    +    const DIAGONAL_NONE = 0;
    +    const DIAGONAL_UP = 1;
    +    const DIAGONAL_DOWN = 2;
    +    const DIAGONAL_BOTH = 3;
    +
    +    /**
    +     * Left.
    +     *
    +     * @var Border
    +     */
    +    protected $left;
    +
    +    /**
    +     * Right.
    +     *
    +     * @var Border
    +     */
    +    protected $right;
    +
    +    /**
    +     * Top.
    +     *
    +     * @var Border
    +     */
    +    protected $top;
    +
    +    /**
    +     * Bottom.
    +     *
    +     * @var Border
    +     */
    +    protected $bottom;
    +
    +    /**
    +     * Diagonal.
    +     *
    +     * @var Border
    +     */
    +    protected $diagonal;
    +
    +    /**
    +     * DiagonalDirection.
    +     *
    +     * @var int
    +     */
    +    protected $diagonalDirection;
    +
    +    /**
    +     * All borders pseudo-border. Only applies to supervisor.
    +     *
    +     * @var Border
    +     */
    +    protected $allBorders;
    +
    +    /**
    +     * Outline pseudo-border. Only applies to supervisor.
    +     *
    +     * @var Border
    +     */
    +    protected $outline;
    +
    +    /**
    +     * Inside pseudo-border. Only applies to supervisor.
    +     *
    +     * @var Border
    +     */
    +    protected $inside;
    +
    +    /**
    +     * Vertical pseudo-border. Only applies to supervisor.
    +     *
    +     * @var Border
    +     */
    +    protected $vertical;
    +
    +    /**
    +     * Horizontal pseudo-border. Only applies to supervisor.
    +     *
    +     * @var Border
    +     */
    +    protected $horizontal;
    +
    +    /**
    +     * Create a new Borders.
    +     *
    +     * @param bool $isSupervisor Flag indicating if this is a supervisor or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     * @param bool $isConditional Flag indicating if this is a conditional style or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     */
    +    public function __construct($isSupervisor = false, $isConditional = false)
    +    {
    +        // Supervisor?
    +        parent::__construct($isSupervisor);
    +
    +        // Initialise values
    +        $this->left = new Border($isSupervisor, $isConditional);
    +        $this->right = new Border($isSupervisor, $isConditional);
    +        $this->top = new Border($isSupervisor, $isConditional);
    +        $this->bottom = new Border($isSupervisor, $isConditional);
    +        $this->diagonal = new Border($isSupervisor, $isConditional);
    +        $this->diagonalDirection = self::DIAGONAL_NONE;
    +
    +        // Specially for supervisor
    +        if ($isSupervisor) {
    +            // Initialize pseudo-borders
    +            $this->allBorders = new Border(true);
    +            $this->outline = new Border(true);
    +            $this->inside = new Border(true);
    +            $this->vertical = new Border(true);
    +            $this->horizontal = new Border(true);
    +
    +            // bind parent if we are a supervisor
    +            $this->left->bindParent($this, 'left');
    +            $this->right->bindParent($this, 'right');
    +            $this->top->bindParent($this, 'top');
    +            $this->bottom->bindParent($this, 'bottom');
    +            $this->diagonal->bindParent($this, 'diagonal');
    +            $this->allBorders->bindParent($this, 'allBorders');
    +            $this->outline->bindParent($this, 'outline');
    +            $this->inside->bindParent($this, 'inside');
    +            $this->vertical->bindParent($this, 'vertical');
    +            $this->horizontal->bindParent($this, 'horizontal');
    +        }
    +    }
    +
    +    /**
    +     * Get the shared style component for the currently active cell in currently active sheet.
    +     * Only used for style supervisor.
    +     *
    +     * @return Borders
    +     */
    +    public function getSharedComponent()
    +    {
    +        return $this->parent->getSharedComponent()->getBorders();
    +    }
    +
    +    /**
    +     * Build style array from subcomponents.
    +     *
    +     * @param array $array
    +     *
    +     * @return array
    +     */
    +    public function getStyleArray($array)
    +    {
    +        return ['borders' => $array];
    +    }
    +
    +    /**
    +     * Apply styles from array.
    +     *
    +     * <code>
    +     * $spreadsheet->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray(
    +     *         [
    +     *             'bottom' => [
    +     *                 'borderStyle' => Border::BORDER_DASHDOT,
    +     *                 'color' => [
    +     *                     'rgb' => '808080'
    +     *                 ]
    +     *             ],
    +     *             'top' => [
    +     *                 'borderStyle' => Border::BORDER_DASHDOT,
    +     *                 'color' => [
    +     *                     'rgb' => '808080'
    +     *                 ]
    +     *             ]
    +     *         ]
    +     * );
    +     * </code>
    +     *
    +     * <code>
    +     * $spreadsheet->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray(
    +     *         [
    +     *             'allBorders' => [
    +     *                 'borderStyle' => Border::BORDER_DASHDOT,
    +     *                 'color' => [
    +     *                     'rgb' => '808080'
    +     *                 ]
    +     *             ]
    +     *         ]
    +     * );
    +     * </code>
    +     *
    +     * @param array $pStyles Array containing style information
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Borders
    +     */
    +    public function applyFromArray(array $pStyles)
    +    {
    +        if ($this->isSupervisor) {
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
    +        } else {
    +            if (isset($pStyles['left'])) {
    +                $this->getLeft()->applyFromArray($pStyles['left']);
    +            }
    +            if (isset($pStyles['right'])) {
    +                $this->getRight()->applyFromArray($pStyles['right']);
    +            }
    +            if (isset($pStyles['top'])) {
    +                $this->getTop()->applyFromArray($pStyles['top']);
    +            }
    +            if (isset($pStyles['bottom'])) {
    +                $this->getBottom()->applyFromArray($pStyles['bottom']);
    +            }
    +            if (isset($pStyles['diagonal'])) {
    +                $this->getDiagonal()->applyFromArray($pStyles['diagonal']);
    +            }
    +            if (isset($pStyles['diagonalDirection'])) {
    +                $this->setDiagonalDirection($pStyles['diagonalDirection']);
    +            }
    +            if (isset($pStyles['allBorders'])) {
    +                $this->getLeft()->applyFromArray($pStyles['allBorders']);
    +                $this->getRight()->applyFromArray($pStyles['allBorders']);
    +                $this->getTop()->applyFromArray($pStyles['allBorders']);
    +                $this->getBottom()->applyFromArray($pStyles['allBorders']);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Left.
    +     *
    +     * @return Border
    +     */
    +    public function getLeft()
    +    {
    +        return $this->left;
    +    }
    +
    +    /**
    +     * Get Right.
    +     *
    +     * @return Border
    +     */
    +    public function getRight()
    +    {
    +        return $this->right;
    +    }
    +
    +    /**
    +     * Get Top.
    +     *
    +     * @return Border
    +     */
    +    public function getTop()
    +    {
    +        return $this->top;
    +    }
    +
    +    /**
    +     * Get Bottom.
    +     *
    +     * @return Border
    +     */
    +    public function getBottom()
    +    {
    +        return $this->bottom;
    +    }
    +
    +    /**
    +     * Get Diagonal.
    +     *
    +     * @return Border
    +     */
    +    public function getDiagonal()
    +    {
    +        return $this->diagonal;
    +    }
    +
    +    /**
    +     * Get AllBorders (pseudo-border). Only applies to supervisor.
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Border
    +     */
    +    public function getAllBorders()
    +    {
    +        if (!$this->isSupervisor) {
    +            throw new PhpSpreadsheetException('Can only get pseudo-border for supervisor.');
    +        }
    +
    +        return $this->allBorders;
    +    }
    +
    +    /**
    +     * Get Outline (pseudo-border). Only applies to supervisor.
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Border
    +     */
    +    public function getOutline()
    +    {
    +        if (!$this->isSupervisor) {
    +            throw new PhpSpreadsheetException('Can only get pseudo-border for supervisor.');
    +        }
    +
    +        return $this->outline;
    +    }
    +
    +    /**
    +     * Get Inside (pseudo-border). Only applies to supervisor.
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Border
    +     */
    +    public function getInside()
    +    {
    +        if (!$this->isSupervisor) {
    +            throw new PhpSpreadsheetException('Can only get pseudo-border for supervisor.');
    +        }
    +
    +        return $this->inside;
    +    }
    +
    +    /**
    +     * Get Vertical (pseudo-border). Only applies to supervisor.
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Border
    +     */
    +    public function getVertical()
    +    {
    +        if (!$this->isSupervisor) {
    +            throw new PhpSpreadsheetException('Can only get pseudo-border for supervisor.');
    +        }
    +
    +        return $this->vertical;
    +    }
    +
    +    /**
    +     * Get Horizontal (pseudo-border). Only applies to supervisor.
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Border
    +     */
    +    public function getHorizontal()
    +    {
    +        if (!$this->isSupervisor) {
    +            throw new PhpSpreadsheetException('Can only get pseudo-border for supervisor.');
    +        }
    +
    +        return $this->horizontal;
    +    }
    +
    +    /**
    +     * Get DiagonalDirection.
    +     *
    +     * @return int
    +     */
    +    public function getDiagonalDirection()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getDiagonalDirection();
    +        }
    +
    +        return $this->diagonalDirection;
    +    }
    +
    +    /**
    +     * Set DiagonalDirection.
    +     *
    +     * @param int $pValue see self::DIAGONAL_*
    +     *
    +     * @return Borders
    +     */
    +    public function setDiagonalDirection($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = self::DIAGONAL_NONE;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['diagonalDirection' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->diagonalDirection = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getHashcode();
    +        }
    +
    +        return md5(
    +            $this->getLeft()->getHashCode() .
    +            $this->getRight()->getHashCode() .
    +            $this->getTop()->getHashCode() .
    +            $this->getBottom()->getHashCode() .
    +            $this->getDiagonal()->getHashCode() .
    +            $this->getDiagonalDirection() .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Color.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Color.php
    new file mode 100644
    index 00000000000..8a1812d20b7
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Color.php
    @@ -0,0 +1,403 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Style;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Color extends Supervisor
    +{
    +    // Colors
    +    const COLOR_BLACK = 'FF000000';
    +    const COLOR_WHITE = 'FFFFFFFF';
    +    const COLOR_RED = 'FFFF0000';
    +    const COLOR_DARKRED = 'FF800000';
    +    const COLOR_BLUE = 'FF0000FF';
    +    const COLOR_DARKBLUE = 'FF000080';
    +    const COLOR_GREEN = 'FF00FF00';
    +    const COLOR_DARKGREEN = 'FF008000';
    +    const COLOR_YELLOW = 'FFFFFF00';
    +    const COLOR_DARKYELLOW = 'FF808000';
    +
    +    /**
    +     * Indexed colors array.
    +     *
    +     * @var array
    +     */
    +    protected static $indexedColors;
    +
    +    /**
    +     * ARGB - Alpha RGB.
    +     *
    +     * @var string
    +     */
    +    protected $argb;
    +
    +    /**
    +     * Create a new Color.
    +     *
    +     * @param string $pARGB ARGB value for the colour
    +     * @param bool $isSupervisor Flag indicating if this is a supervisor or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     * @param bool $isConditional Flag indicating if this is a conditional style or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     */
    +    public function __construct($pARGB = self::COLOR_BLACK, $isSupervisor = false, $isConditional = false)
    +    {
    +        //    Supervisor?
    +        parent::__construct($isSupervisor);
    +
    +        //    Initialise values
    +        if (!$isConditional) {
    +            $this->argb = $pARGB;
    +        }
    +    }
    +
    +    /**
    +     * Get the shared style component for the currently active cell in currently active sheet.
    +     * Only used for style supervisor.
    +     *
    +     * @return Color
    +     */
    +    public function getSharedComponent()
    +    {
    +        switch ($this->parentPropertyName) {
    +            case 'endColor':
    +                return $this->parent->getSharedComponent()->getEndColor();
    +            case 'color':
    +                return $this->parent->getSharedComponent()->getColor();
    +            case 'startColor':
    +                return $this->parent->getSharedComponent()->getStartColor();
    +        }
    +    }
    +
    +    /**
    +     * Build style array from subcomponents.
    +     *
    +     * @param array $array
    +     *
    +     * @return array
    +     */
    +    public function getStyleArray($array)
    +    {
    +        return $this->parent->getStyleArray([$this->parentPropertyName => $array]);
    +    }
    +
    +    /**
    +     * Apply styles from array.
    +     *
    +     * <code>
    +     * $spreadsheet->getActiveSheet()->getStyle('B2')->getFont()->getColor()->applyFromArray(['rgb' => '808080']);
    +     * </code>
    +     *
    +     * @param array $pStyles Array containing style information
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Color
    +     */
    +    public function applyFromArray(array $pStyles)
    +    {
    +        if ($this->isSupervisor) {
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
    +        } else {
    +            if (isset($pStyles['rgb'])) {
    +                $this->setRGB($pStyles['rgb']);
    +            }
    +            if (isset($pStyles['argb'])) {
    +                $this->setARGB($pStyles['argb']);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get ARGB.
    +     *
    +     * @return string
    +     */
    +    public function getARGB()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getARGB();
    +        }
    +
    +        return $this->argb;
    +    }
    +
    +    /**
    +     * Set ARGB.
    +     *
    +     * @param string $pValue see self::COLOR_*
    +     *
    +     * @return Color
    +     */
    +    public function setARGB($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = self::COLOR_BLACK;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['argb' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->argb = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get RGB.
    +     *
    +     * @return string
    +     */
    +    public function getRGB()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getRGB();
    +        }
    +
    +        return substr($this->argb, 2);
    +    }
    +
    +    /**
    +     * Set RGB.
    +     *
    +     * @param string $pValue RGB value
    +     *
    +     * @return Color
    +     */
    +    public function setRGB($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = '000000';
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['argb' => 'FF' . $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->argb = 'FF' . $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get a specified colour component of an RGB value.
    +     *
    +     * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE
    +     * @param int $offset Position within the RGB value to extract
    +     * @param bool $hex Flag indicating whether the component should be returned as a hex or a
    +     *                                    decimal value
    +     *
    +     * @return string The extracted colour component
    +     */
    +    private static function getColourComponent($RGB, $offset, $hex = true)
    +    {
    +        $colour = substr($RGB, $offset, 2);
    +        if (!$hex) {
    +            $colour = hexdec($colour);
    +        }
    +
    +        return $colour;
    +    }
    +
    +    /**
    +     * Get the red colour component of an RGB value.
    +     *
    +     * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE
    +     * @param bool $hex Flag indicating whether the component should be returned as a hex or a
    +     *                                    decimal value
    +     *
    +     * @return string The red colour component
    +     */
    +    public static function getRed($RGB, $hex = true)
    +    {
    +        return self::getColourComponent($RGB, strlen($RGB) - 6, $hex);
    +    }
    +
    +    /**
    +     * Get the green colour component of an RGB value.
    +     *
    +     * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE
    +     * @param bool $hex Flag indicating whether the component should be returned as a hex or a
    +     *                                    decimal value
    +     *
    +     * @return string The green colour component
    +     */
    +    public static function getGreen($RGB, $hex = true)
    +    {
    +        return self::getColourComponent($RGB, strlen($RGB) - 4, $hex);
    +    }
    +
    +    /**
    +     * Get the blue colour component of an RGB value.
    +     *
    +     * @param string $RGB The colour as an RGB value (e.g. FF00CCCC or CCDDEE
    +     * @param bool $hex Flag indicating whether the component should be returned as a hex or a
    +     *                                    decimal value
    +     *
    +     * @return string The blue colour component
    +     */
    +    public static function getBlue($RGB, $hex = true)
    +    {
    +        return self::getColourComponent($RGB, strlen($RGB) - 2, $hex);
    +    }
    +
    +    /**
    +     * Adjust the brightness of a color.
    +     *
    +     * @param string $hex The colour as an RGBA or RGB value (e.g. FF00CCCC or CCDDEE)
    +     * @param float $adjustPercentage The percentage by which to adjust the colour as a float from -1 to 1
    +     *
    +     * @return string The adjusted colour as an RGBA or RGB value (e.g. FF00CCCC or CCDDEE)
    +     */
    +    public static function changeBrightness($hex, $adjustPercentage)
    +    {
    +        $rgba = (strlen($hex) == 8);
    +
    +        $red = self::getRed($hex, false);
    +        $green = self::getGreen($hex, false);
    +        $blue = self::getBlue($hex, false);
    +        if ($adjustPercentage > 0) {
    +            $red += (255 - $red) * $adjustPercentage;
    +            $green += (255 - $green) * $adjustPercentage;
    +            $blue += (255 - $blue) * $adjustPercentage;
    +        } else {
    +            $red += $red * $adjustPercentage;
    +            $green += $green * $adjustPercentage;
    +            $blue += $blue * $adjustPercentage;
    +        }
    +
    +        if ($red < 0) {
    +            $red = 0;
    +        } elseif ($red > 255) {
    +            $red = 255;
    +        }
    +        if ($green < 0) {
    +            $green = 0;
    +        } elseif ($green > 255) {
    +            $green = 255;
    +        }
    +        if ($blue < 0) {
    +            $blue = 0;
    +        } elseif ($blue > 255) {
    +            $blue = 255;
    +        }
    +
    +        $rgb = strtoupper(
    +            str_pad(dechex($red), 2, '0', 0) .
    +            str_pad(dechex($green), 2, '0', 0) .
    +            str_pad(dechex($blue), 2, '0', 0)
    +        );
    +
    +        return (($rgba) ? 'FF' : '') . $rgb;
    +    }
    +
    +    /**
    +     * Get indexed color.
    +     *
    +     * @param int $pIndex Index entry point into the colour array
    +     * @param bool $background Flag to indicate whether default background or foreground colour
    +     *                                            should be returned if the indexed colour doesn't exist
    +     *
    +     * @return Color
    +     */
    +    public static function indexedColor($pIndex, $background = false)
    +    {
    +        // Clean parameter
    +        $pIndex = (int) $pIndex;
    +
    +        // Indexed colors
    +        if (self::$indexedColors === null) {
    +            self::$indexedColors = [
    +                1 => 'FF000000', //  System Colour #1 - Black
    +                2 => 'FFFFFFFF', //  System Colour #2 - White
    +                3 => 'FFFF0000', //  System Colour #3 - Red
    +                4 => 'FF00FF00', //  System Colour #4 - Green
    +                5 => 'FF0000FF', //  System Colour #5 - Blue
    +                6 => 'FFFFFF00', //  System Colour #6 - Yellow
    +                7 => 'FFFF00FF', //  System Colour #7- Magenta
    +                8 => 'FF00FFFF', //  System Colour #8- Cyan
    +                9 => 'FF800000', //  Standard Colour #9
    +                10 => 'FF008000', //  Standard Colour #10
    +                11 => 'FF000080', //  Standard Colour #11
    +                12 => 'FF808000', //  Standard Colour #12
    +                13 => 'FF800080', //  Standard Colour #13
    +                14 => 'FF008080', //  Standard Colour #14
    +                15 => 'FFC0C0C0', //  Standard Colour #15
    +                16 => 'FF808080', //  Standard Colour #16
    +                17 => 'FF9999FF', //  Chart Fill Colour #17
    +                18 => 'FF993366', //  Chart Fill Colour #18
    +                19 => 'FFFFFFCC', //  Chart Fill Colour #19
    +                20 => 'FFCCFFFF', //  Chart Fill Colour #20
    +                21 => 'FF660066', //  Chart Fill Colour #21
    +                22 => 'FFFF8080', //  Chart Fill Colour #22
    +                23 => 'FF0066CC', //  Chart Fill Colour #23
    +                24 => 'FFCCCCFF', //  Chart Fill Colour #24
    +                25 => 'FF000080', //  Chart Line Colour #25
    +                26 => 'FFFF00FF', //  Chart Line Colour #26
    +                27 => 'FFFFFF00', //  Chart Line Colour #27
    +                28 => 'FF00FFFF', //  Chart Line Colour #28
    +                29 => 'FF800080', //  Chart Line Colour #29
    +                30 => 'FF800000', //  Chart Line Colour #30
    +                31 => 'FF008080', //  Chart Line Colour #31
    +                32 => 'FF0000FF', //  Chart Line Colour #32
    +                33 => 'FF00CCFF', //  Standard Colour #33
    +                34 => 'FFCCFFFF', //  Standard Colour #34
    +                35 => 'FFCCFFCC', //  Standard Colour #35
    +                36 => 'FFFFFF99', //  Standard Colour #36
    +                37 => 'FF99CCFF', //  Standard Colour #37
    +                38 => 'FFFF99CC', //  Standard Colour #38
    +                39 => 'FFCC99FF', //  Standard Colour #39
    +                40 => 'FFFFCC99', //  Standard Colour #40
    +                41 => 'FF3366FF', //  Standard Colour #41
    +                42 => 'FF33CCCC', //  Standard Colour #42
    +                43 => 'FF99CC00', //  Standard Colour #43
    +                44 => 'FFFFCC00', //  Standard Colour #44
    +                45 => 'FFFF9900', //  Standard Colour #45
    +                46 => 'FFFF6600', //  Standard Colour #46
    +                47 => 'FF666699', //  Standard Colour #47
    +                48 => 'FF969696', //  Standard Colour #48
    +                49 => 'FF003366', //  Standard Colour #49
    +                50 => 'FF339966', //  Standard Colour #50
    +                51 => 'FF003300', //  Standard Colour #51
    +                52 => 'FF333300', //  Standard Colour #52
    +                53 => 'FF993300', //  Standard Colour #53
    +                54 => 'FF993366', //  Standard Colour #54
    +                55 => 'FF333399', //  Standard Colour #55
    +                56 => 'FF333333', //  Standard Colour #56
    +            ];
    +        }
    +
    +        if (isset(self::$indexedColors[$pIndex])) {
    +            return new self(self::$indexedColors[$pIndex]);
    +        }
    +
    +        if ($background) {
    +            return new self(self::COLOR_WHITE);
    +        }
    +
    +        return new self(self::COLOR_BLACK);
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getHashCode();
    +        }
    +
    +        return md5(
    +            $this->argb .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Conditional.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Conditional.php
    new file mode 100644
    index 00000000000..91a000dba4a
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Conditional.php
    @@ -0,0 +1,272 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Style;
    +
    +use PhpOffice\PhpSpreadsheet\IComparable;
    +
    +class Conditional implements IComparable
    +{
    +    // Condition types
    +    const CONDITION_NONE = 'none';
    +    const CONDITION_CELLIS = 'cellIs';
    +    const CONDITION_CONTAINSTEXT = 'containsText';
    +    const CONDITION_EXPRESSION = 'expression';
    +    const CONDITION_CONTAINSBLANKS = 'containsBlanks';
    +
    +    // Operator types
    +    const OPERATOR_NONE = '';
    +    const OPERATOR_BEGINSWITH = 'beginsWith';
    +    const OPERATOR_ENDSWITH = 'endsWith';
    +    const OPERATOR_EQUAL = 'equal';
    +    const OPERATOR_GREATERTHAN = 'greaterThan';
    +    const OPERATOR_GREATERTHANOREQUAL = 'greaterThanOrEqual';
    +    const OPERATOR_LESSTHAN = 'lessThan';
    +    const OPERATOR_LESSTHANOREQUAL = 'lessThanOrEqual';
    +    const OPERATOR_NOTEQUAL = 'notEqual';
    +    const OPERATOR_CONTAINSTEXT = 'containsText';
    +    const OPERATOR_NOTCONTAINS = 'notContains';
    +    const OPERATOR_BETWEEN = 'between';
    +
    +    /**
    +     * Condition type.
    +     *
    +     * @var string
    +     */
    +    private $conditionType = self::CONDITION_NONE;
    +
    +    /**
    +     * Operator type.
    +     *
    +     * @var string
    +     */
    +    private $operatorType = self::OPERATOR_NONE;
    +
    +    /**
    +     * Text.
    +     *
    +     * @var string
    +     */
    +    private $text;
    +
    +    /**
    +     * Stop on this condition, if it matches.
    +     *
    +     * @var bool
    +     */
    +    private $stopIfTrue = false;
    +
    +    /**
    +     * Condition.
    +     *
    +     * @var string[]
    +     */
    +    private $condition = [];
    +
    +    /**
    +     * Style.
    +     *
    +     * @var Style
    +     */
    +    private $style;
    +
    +    /**
    +     * Create a new Conditional.
    +     */
    +    public function __construct()
    +    {
    +        // Initialise values
    +        $this->style = new Style(false, true);
    +    }
    +
    +    /**
    +     * Get Condition type.
    +     *
    +     * @return string
    +     */
    +    public function getConditionType()
    +    {
    +        return $this->conditionType;
    +    }
    +
    +    /**
    +     * Set Condition type.
    +     *
    +     * @param string $pValue Condition type, see self::CONDITION_*
    +     *
    +     * @return Conditional
    +     */
    +    public function setConditionType($pValue)
    +    {
    +        $this->conditionType = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Operator type.
    +     *
    +     * @return string
    +     */
    +    public function getOperatorType()
    +    {
    +        return $this->operatorType;
    +    }
    +
    +    /**
    +     * Set Operator type.
    +     *
    +     * @param string $pValue Conditional operator type, see self::OPERATOR_*
    +     *
    +     * @return Conditional
    +     */
    +    public function setOperatorType($pValue)
    +    {
    +        $this->operatorType = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get text.
    +     *
    +     * @return string
    +     */
    +    public function getText()
    +    {
    +        return $this->text;
    +    }
    +
    +    /**
    +     * Set text.
    +     *
    +     * @param string $value
    +     *
    +     * @return Conditional
    +     */
    +    public function setText($value)
    +    {
    +        $this->text = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get StopIfTrue.
    +     *
    +     * @return bool
    +     */
    +    public function getStopIfTrue()
    +    {
    +        return $this->stopIfTrue;
    +    }
    +
    +    /**
    +     * Set StopIfTrue.
    +     *
    +     * @param bool $value
    +     *
    +     * @return Conditional
    +     */
    +    public function setStopIfTrue($value)
    +    {
    +        $this->stopIfTrue = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Conditions.
    +     *
    +     * @return string[]
    +     */
    +    public function getConditions()
    +    {
    +        return $this->condition;
    +    }
    +
    +    /**
    +     * Set Conditions.
    +     *
    +     * @param string[] $pValue Condition
    +     *
    +     * @return Conditional
    +     */
    +    public function setConditions($pValue)
    +    {
    +        if (!is_array($pValue)) {
    +            $pValue = [$pValue];
    +        }
    +        $this->condition = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Add Condition.
    +     *
    +     * @param string $pValue Condition
    +     *
    +     * @return Conditional
    +     */
    +    public function addCondition($pValue)
    +    {
    +        $this->condition[] = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Style.
    +     *
    +     * @return Style
    +     */
    +    public function getStyle()
    +    {
    +        return $this->style;
    +    }
    +
    +    /**
    +     * Set Style.
    +     *
    +     * @param Style $pValue
    +     *
    +     * @return Conditional
    +     */
    +    public function setStyle(Style $pValue = null)
    +    {
    +        $this->style = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        return md5(
    +            $this->conditionType .
    +            $this->operatorType .
    +            implode(';', $this->condition) .
    +            $this->style->getHashCode() .
    +            __CLASS__
    +        );
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Fill.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Fill.php
    new file mode 100644
    index 00000000000..c2ad895ee12
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Fill.php
    @@ -0,0 +1,325 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Style;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Fill extends Supervisor
    +{
    +    // Fill types
    +    const FILL_NONE = 'none';
    +    const FILL_SOLID = 'solid';
    +    const FILL_GRADIENT_LINEAR = 'linear';
    +    const FILL_GRADIENT_PATH = 'path';
    +    const FILL_PATTERN_DARKDOWN = 'darkDown';
    +    const FILL_PATTERN_DARKGRAY = 'darkGray';
    +    const FILL_PATTERN_DARKGRID = 'darkGrid';
    +    const FILL_PATTERN_DARKHORIZONTAL = 'darkHorizontal';
    +    const FILL_PATTERN_DARKTRELLIS = 'darkTrellis';
    +    const FILL_PATTERN_DARKUP = 'darkUp';
    +    const FILL_PATTERN_DARKVERTICAL = 'darkVertical';
    +    const FILL_PATTERN_GRAY0625 = 'gray0625';
    +    const FILL_PATTERN_GRAY125 = 'gray125';
    +    const FILL_PATTERN_LIGHTDOWN = 'lightDown';
    +    const FILL_PATTERN_LIGHTGRAY = 'lightGray';
    +    const FILL_PATTERN_LIGHTGRID = 'lightGrid';
    +    const FILL_PATTERN_LIGHTHORIZONTAL = 'lightHorizontal';
    +    const FILL_PATTERN_LIGHTTRELLIS = 'lightTrellis';
    +    const FILL_PATTERN_LIGHTUP = 'lightUp';
    +    const FILL_PATTERN_LIGHTVERTICAL = 'lightVertical';
    +    const FILL_PATTERN_MEDIUMGRAY = 'mediumGray';
    +
    +    /**
    +     * @var int
    +     */
    +    public $startcolorIndex;
    +
    +    /**
    +     * @var int
    +     */
    +    public $endcolorIndex;
    +
    +    /**
    +     * Fill type.
    +     *
    +     * @var string
    +     */
    +    protected $fillType = self::FILL_NONE;
    +
    +    /**
    +     * Rotation.
    +     *
    +     * @var float
    +     */
    +    protected $rotation = 0;
    +
    +    /**
    +     * Start color.
    +     *
    +     * @var Color
    +     */
    +    protected $startColor;
    +
    +    /**
    +     * End color.
    +     *
    +     * @var Color
    +     */
    +    protected $endColor;
    +
    +    /**
    +     * Create a new Fill.
    +     *
    +     * @param bool $isSupervisor Flag indicating if this is a supervisor or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     * @param bool $isConditional Flag indicating if this is a conditional style or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     */
    +    public function __construct($isSupervisor = false, $isConditional = false)
    +    {
    +        // Supervisor?
    +        parent::__construct($isSupervisor);
    +
    +        // Initialise values
    +        if ($isConditional) {
    +            $this->fillType = null;
    +        }
    +        $this->startColor = new Color(Color::COLOR_WHITE, $isSupervisor, $isConditional);
    +        $this->endColor = new Color(Color::COLOR_BLACK, $isSupervisor, $isConditional);
    +
    +        // bind parent if we are a supervisor
    +        if ($isSupervisor) {
    +            $this->startColor->bindParent($this, 'startColor');
    +            $this->endColor->bindParent($this, 'endColor');
    +        }
    +    }
    +
    +    /**
    +     * Get the shared style component for the currently active cell in currently active sheet.
    +     * Only used for style supervisor.
    +     *
    +     * @return Fill
    +     */
    +    public function getSharedComponent()
    +    {
    +        return $this->parent->getSharedComponent()->getFill();
    +    }
    +
    +    /**
    +     * Build style array from subcomponents.
    +     *
    +     * @param array $array
    +     *
    +     * @return array
    +     */
    +    public function getStyleArray($array)
    +    {
    +        return ['fill' => $array];
    +    }
    +
    +    /**
    +     * Apply styles from array.
    +     *
    +     * <code>
    +     * $spreadsheet->getActiveSheet()->getStyle('B2')->getFill()->applyFromArray(
    +     *     [
    +     *         'fillType' => Fill::FILL_GRADIENT_LINEAR,
    +     *         'rotation' => 0,
    +     *         'startColor' => [
    +     *             'rgb' => '000000'
    +     *         ],
    +     *         'endColor' => [
    +     *             'argb' => 'FFFFFFFF'
    +     *         ]
    +     *     ]
    +     * );
    +     * </code>
    +     *
    +     * @param array $pStyles Array containing style information
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Fill
    +     */
    +    public function applyFromArray(array $pStyles)
    +    {
    +        if ($this->isSupervisor) {
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
    +        } else {
    +            if (isset($pStyles['fillType'])) {
    +                $this->setFillType($pStyles['fillType']);
    +            }
    +            if (isset($pStyles['rotation'])) {
    +                $this->setRotation($pStyles['rotation']);
    +            }
    +            if (isset($pStyles['startColor'])) {
    +                $this->getStartColor()->applyFromArray($pStyles['startColor']);
    +            }
    +            if (isset($pStyles['endColor'])) {
    +                $this->getEndColor()->applyFromArray($pStyles['endColor']);
    +            }
    +            if (isset($pStyles['color'])) {
    +                $this->getStartColor()->applyFromArray($pStyles['color']);
    +                $this->getEndColor()->applyFromArray($pStyles['color']);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Fill Type.
    +     *
    +     * @return string
    +     */
    +    public function getFillType()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getFillType();
    +        }
    +
    +        return $this->fillType;
    +    }
    +
    +    /**
    +     * Set Fill Type.
    +     *
    +     * @param string $pValue Fill type, see self::FILL_*
    +     *
    +     * @return Fill
    +     */
    +    public function setFillType($pValue)
    +    {
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['fillType' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->fillType = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Rotation.
    +     *
    +     * @return float
    +     */
    +    public function getRotation()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getRotation();
    +        }
    +
    +        return $this->rotation;
    +    }
    +
    +    /**
    +     * Set Rotation.
    +     *
    +     * @param float $pValue
    +     *
    +     * @return Fill
    +     */
    +    public function setRotation($pValue)
    +    {
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['rotation' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->rotation = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Start Color.
    +     *
    +     * @return Color
    +     */
    +    public function getStartColor()
    +    {
    +        return $this->startColor;
    +    }
    +
    +    /**
    +     * Set Start Color.
    +     *
    +     * @param Color $pValue
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Fill
    +     */
    +    public function setStartColor(Color $pValue)
    +    {
    +        // make sure parameter is a real color and not a supervisor
    +        $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue;
    +
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStartColor()->getStyleArray(['argb' => $color->getARGB()]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->startColor = $color;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get End Color.
    +     *
    +     * @return Color
    +     */
    +    public function getEndColor()
    +    {
    +        return $this->endColor;
    +    }
    +
    +    /**
    +     * Set End Color.
    +     *
    +     * @param Color $pValue
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Fill
    +     */
    +    public function setEndColor(Color $pValue)
    +    {
    +        // make sure parameter is a real color and not a supervisor
    +        $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue;
    +
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getEndColor()->getStyleArray(['argb' => $color->getARGB()]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->endColor = $color;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getHashCode();
    +        }
    +
    +        return md5(
    +            $this->getFillType() .
    +            $this->getRotation() .
    +            $this->getStartColor()->getHashCode() .
    +            $this->getEndColor()->getHashCode() .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Font.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Font.php
    new file mode 100644
    index 00000000000..6d8e23b1954
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Font.php
    @@ -0,0 +1,556 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Style;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Font extends Supervisor
    +{
    +    // Underline types
    +    const UNDERLINE_NONE = 'none';
    +    const UNDERLINE_DOUBLE = 'double';
    +    const UNDERLINE_DOUBLEACCOUNTING = 'doubleAccounting';
    +    const UNDERLINE_SINGLE = 'single';
    +    const UNDERLINE_SINGLEACCOUNTING = 'singleAccounting';
    +
    +    /**
    +     * Font Name.
    +     *
    +     * @var string
    +     */
    +    protected $name = 'Calibri';
    +
    +    /**
    +     * Font Size.
    +     *
    +     * @var float
    +     */
    +    protected $size = 11;
    +
    +    /**
    +     * Bold.
    +     *
    +     * @var bool
    +     */
    +    protected $bold = false;
    +
    +    /**
    +     * Italic.
    +     *
    +     * @var bool
    +     */
    +    protected $italic = false;
    +
    +    /**
    +     * Superscript.
    +     *
    +     * @var bool
    +     */
    +    protected $superscript = false;
    +
    +    /**
    +     * Subscript.
    +     *
    +     * @var bool
    +     */
    +    protected $subscript = false;
    +
    +    /**
    +     * Underline.
    +     *
    +     * @var string
    +     */
    +    protected $underline = self::UNDERLINE_NONE;
    +
    +    /**
    +     * Strikethrough.
    +     *
    +     * @var bool
    +     */
    +    protected $strikethrough = false;
    +
    +    /**
    +     * Foreground color.
    +     *
    +     * @var Color
    +     */
    +    protected $color;
    +
    +    /**
    +     * @var int
    +     */
    +    public $colorIndex;
    +
    +    /**
    +     * Create a new Font.
    +     *
    +     * @param bool $isSupervisor Flag indicating if this is a supervisor or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     * @param bool $isConditional Flag indicating if this is a conditional style or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     */
    +    public function __construct($isSupervisor = false, $isConditional = false)
    +    {
    +        // Supervisor?
    +        parent::__construct($isSupervisor);
    +
    +        // Initialise values
    +        if ($isConditional) {
    +            $this->name = null;
    +            $this->size = null;
    +            $this->bold = null;
    +            $this->italic = null;
    +            $this->superscript = null;
    +            $this->subscript = null;
    +            $this->underline = null;
    +            $this->strikethrough = null;
    +            $this->color = new Color(Color::COLOR_BLACK, $isSupervisor, $isConditional);
    +        } else {
    +            $this->color = new Color(Color::COLOR_BLACK, $isSupervisor);
    +        }
    +        // bind parent if we are a supervisor
    +        if ($isSupervisor) {
    +            $this->color->bindParent($this, 'color');
    +        }
    +    }
    +
    +    /**
    +     * Get the shared style component for the currently active cell in currently active sheet.
    +     * Only used for style supervisor.
    +     *
    +     * @return Font
    +     */
    +    public function getSharedComponent()
    +    {
    +        return $this->parent->getSharedComponent()->getFont();
    +    }
    +
    +    /**
    +     * Build style array from subcomponents.
    +     *
    +     * @param array $array
    +     *
    +     * @return array
    +     */
    +    public function getStyleArray($array)
    +    {
    +        return ['font' => $array];
    +    }
    +
    +    /**
    +     * Apply styles from array.
    +     *
    +     * <code>
    +     * $spreadsheet->getActiveSheet()->getStyle('B2')->getFont()->applyFromArray(
    +     *     [
    +     *         'name' => 'Arial',
    +     *         'bold' => TRUE,
    +     *         'italic' => FALSE,
    +     *         'underline' => \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE,
    +     *         'strikethrough' => FALSE,
    +     *         'color' => [
    +     *             'rgb' => '808080'
    +     *         ]
    +     *     ]
    +     * );
    +     * </code>
    +     *
    +     * @param array $pStyles Array containing style information
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Font
    +     */
    +    public function applyFromArray(array $pStyles)
    +    {
    +        if ($this->isSupervisor) {
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
    +        } else {
    +            if (isset($pStyles['name'])) {
    +                $this->setName($pStyles['name']);
    +            }
    +            if (isset($pStyles['bold'])) {
    +                $this->setBold($pStyles['bold']);
    +            }
    +            if (isset($pStyles['italic'])) {
    +                $this->setItalic($pStyles['italic']);
    +            }
    +            if (isset($pStyles['superscript'])) {
    +                $this->setSuperscript($pStyles['superscript']);
    +            }
    +            if (isset($pStyles['subscript'])) {
    +                $this->setSubscript($pStyles['subscript']);
    +            }
    +            if (isset($pStyles['underline'])) {
    +                $this->setUnderline($pStyles['underline']);
    +            }
    +            if (isset($pStyles['strikethrough'])) {
    +                $this->setStrikethrough($pStyles['strikethrough']);
    +            }
    +            if (isset($pStyles['color'])) {
    +                $this->getColor()->applyFromArray($pStyles['color']);
    +            }
    +            if (isset($pStyles['size'])) {
    +                $this->setSize($pStyles['size']);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Name.
    +     *
    +     * @return string
    +     */
    +    public function getName()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getName();
    +        }
    +
    +        return $this->name;
    +    }
    +
    +    /**
    +     * Set Name.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return Font
    +     */
    +    public function setName($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = 'Calibri';
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['name' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->name = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Size.
    +     *
    +     * @return float
    +     */
    +    public function getSize()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getSize();
    +        }
    +
    +        return $this->size;
    +    }
    +
    +    /**
    +     * Set Size.
    +     *
    +     * @param float $pValue
    +     *
    +     * @return Font
    +     */
    +    public function setSize($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = 10;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['size' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->size = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Bold.
    +     *
    +     * @return bool
    +     */
    +    public function getBold()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getBold();
    +        }
    +
    +        return $this->bold;
    +    }
    +
    +    /**
    +     * Set Bold.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Font
    +     */
    +    public function setBold($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = false;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['bold' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->bold = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Italic.
    +     *
    +     * @return bool
    +     */
    +    public function getItalic()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getItalic();
    +        }
    +
    +        return $this->italic;
    +    }
    +
    +    /**
    +     * Set Italic.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Font
    +     */
    +    public function setItalic($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = false;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['italic' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->italic = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Superscript.
    +     *
    +     * @return bool
    +     */
    +    public function getSuperscript()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getSuperscript();
    +        }
    +
    +        return $this->superscript;
    +    }
    +
    +    /**
    +     * Set Superscript.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Font
    +     */
    +    public function setSuperscript($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = false;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['superscript' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->superscript = $pValue;
    +            $this->subscript = !$pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Subscript.
    +     *
    +     * @return bool
    +     */
    +    public function getSubscript()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getSubscript();
    +        }
    +
    +        return $this->subscript;
    +    }
    +
    +    /**
    +     * Set Subscript.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Font
    +     */
    +    public function setSubscript($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = false;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['subscript' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->subscript = $pValue;
    +            $this->superscript = !$pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Underline.
    +     *
    +     * @return string
    +     */
    +    public function getUnderline()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getUnderline();
    +        }
    +
    +        return $this->underline;
    +    }
    +
    +    /**
    +     * Set Underline.
    +     *
    +     * @param bool|string $pValue \PhpOffice\PhpSpreadsheet\Style\Font underline type
    +     *                                    If a boolean is passed, then TRUE equates to UNDERLINE_SINGLE,
    +     *                                        false equates to UNDERLINE_NONE
    +     *
    +     * @return Font
    +     */
    +    public function setUnderline($pValue)
    +    {
    +        if (is_bool($pValue)) {
    +            $pValue = ($pValue) ? self::UNDERLINE_SINGLE : self::UNDERLINE_NONE;
    +        } elseif ($pValue == '') {
    +            $pValue = self::UNDERLINE_NONE;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['underline' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->underline = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Strikethrough.
    +     *
    +     * @return bool
    +     */
    +    public function getStrikethrough()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getStrikethrough();
    +        }
    +
    +        return $this->strikethrough;
    +    }
    +
    +    /**
    +     * Set Strikethrough.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Font
    +     */
    +    public function setStrikethrough($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = false;
    +        }
    +
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['strikethrough' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->strikethrough = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Color.
    +     *
    +     * @return Color
    +     */
    +    public function getColor()
    +    {
    +        return $this->color;
    +    }
    +
    +    /**
    +     * Set Color.
    +     *
    +     * @param Color $pValue
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Font
    +     */
    +    public function setColor(Color $pValue)
    +    {
    +        // make sure parameter is a real color and not a supervisor
    +        $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue;
    +
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getColor()->getStyleArray(['argb' => $color->getARGB()]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->color = $color;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getHashCode();
    +        }
    +
    +        return md5(
    +            $this->name .
    +            $this->size .
    +            ($this->bold ? 't' : 'f') .
    +            ($this->italic ? 't' : 'f') .
    +            ($this->superscript ? 't' : 'f') .
    +            ($this->subscript ? 't' : 'f') .
    +            $this->underline .
    +            ($this->strikethrough ? 't' : 'f') .
    +            $this->color->getHashCode() .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Style/NumberFormat.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/NumberFormat.php
    new file mode 100644
    index 00000000000..b6b803787cd
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/NumberFormat.php
    @@ -0,0 +1,757 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Style;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\MathTrig;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +
    +class NumberFormat extends Supervisor
    +{
    +    // Pre-defined formats
    +    const FORMAT_GENERAL = 'General';
    +
    +    const FORMAT_TEXT = '@';
    +
    +    const FORMAT_NUMBER = '0';
    +    const FORMAT_NUMBER_00 = '0.00';
    +    const FORMAT_NUMBER_COMMA_SEPARATED1 = '#,##0.00';
    +    const FORMAT_NUMBER_COMMA_SEPARATED2 = '#,##0.00_-';
    +
    +    const FORMAT_PERCENTAGE = '0%';
    +    const FORMAT_PERCENTAGE_00 = '0.00%';
    +
    +    const FORMAT_DATE_YYYYMMDD2 = 'yyyy-mm-dd';
    +    const FORMAT_DATE_YYYYMMDD = 'yy-mm-dd';
    +    const FORMAT_DATE_DDMMYYYY = 'dd/mm/yy';
    +    const FORMAT_DATE_DMYSLASH = 'd/m/yy';
    +    const FORMAT_DATE_DMYMINUS = 'd-m-yy';
    +    const FORMAT_DATE_DMMINUS = 'd-m';
    +    const FORMAT_DATE_MYMINUS = 'm-yy';
    +    const FORMAT_DATE_XLSX14 = 'mm-dd-yy';
    +    const FORMAT_DATE_XLSX15 = 'd-mmm-yy';
    +    const FORMAT_DATE_XLSX16 = 'd-mmm';
    +    const FORMAT_DATE_XLSX17 = 'mmm-yy';
    +    const FORMAT_DATE_XLSX22 = 'm/d/yy h:mm';
    +    const FORMAT_DATE_DATETIME = 'd/m/yy h:mm';
    +    const FORMAT_DATE_TIME1 = 'h:mm AM/PM';
    +    const FORMAT_DATE_TIME2 = 'h:mm:ss AM/PM';
    +    const FORMAT_DATE_TIME3 = 'h:mm';
    +    const FORMAT_DATE_TIME4 = 'h:mm:ss';
    +    const FORMAT_DATE_TIME5 = 'mm:ss';
    +    const FORMAT_DATE_TIME6 = 'h:mm:ss';
    +    const FORMAT_DATE_TIME7 = 'i:s.S';
    +    const FORMAT_DATE_TIME8 = 'h:mm:ss;@';
    +    const FORMAT_DATE_YYYYMMDDSLASH = 'yy/mm/dd;@';
    +
    +    const FORMAT_CURRENCY_USD_SIMPLE = '"$"#,##0.00_-';
    +    const FORMAT_CURRENCY_USD = '$#,##0_-';
    +    const FORMAT_CURRENCY_EUR_SIMPLE = '#,##0.00_-"€"';
    +    const FORMAT_CURRENCY_EUR = '#,##0_-"€"';
    +
    +    /**
    +     * Excel built-in number formats.
    +     *
    +     * @var array
    +     */
    +    protected static $builtInFormats;
    +
    +    /**
    +     * Excel built-in number formats (flipped, for faster lookups).
    +     *
    +     * @var array
    +     */
    +    protected static $flippedBuiltInFormats;
    +
    +    /**
    +     * Format Code.
    +     *
    +     * @var string
    +     */
    +    protected $formatCode = self::FORMAT_GENERAL;
    +
    +    /**
    +     * Built-in format Code.
    +     *
    +     * @var string
    +     */
    +    protected $builtInFormatCode = 0;
    +
    +    /**
    +     * Create a new NumberFormat.
    +     *
    +     * @param bool $isSupervisor Flag indicating if this is a supervisor or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     * @param bool $isConditional Flag indicating if this is a conditional style or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     */
    +    public function __construct($isSupervisor = false, $isConditional = false)
    +    {
    +        // Supervisor?
    +        parent::__construct($isSupervisor);
    +
    +        if ($isConditional) {
    +            $this->formatCode = null;
    +            $this->builtInFormatCode = false;
    +        }
    +    }
    +
    +    /**
    +     * Get the shared style component for the currently active cell in currently active sheet.
    +     * Only used for style supervisor.
    +     *
    +     * @return NumberFormat
    +     */
    +    public function getSharedComponent()
    +    {
    +        return $this->parent->getSharedComponent()->getNumberFormat();
    +    }
    +
    +    /**
    +     * Build style array from subcomponents.
    +     *
    +     * @param array $array
    +     *
    +     * @return array
    +     */
    +    public function getStyleArray($array)
    +    {
    +        return ['numberFormat' => $array];
    +    }
    +
    +    /**
    +     * Apply styles from array.
    +     *
    +     * <code>
    +     * $spreadsheet->getActiveSheet()->getStyle('B2')->getNumberFormat()->applyFromArray(
    +     *     [
    +     *         'formatCode' => NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE
    +     *     ]
    +     * );
    +     * </code>
    +     *
    +     * @param array $pStyles Array containing style information
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return NumberFormat
    +     */
    +    public function applyFromArray(array $pStyles)
    +    {
    +        if ($this->isSupervisor) {
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
    +        } else {
    +            if (isset($pStyles['formatCode'])) {
    +                $this->setFormatCode($pStyles['formatCode']);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Format Code.
    +     *
    +     * @return string
    +     */
    +    public function getFormatCode()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getFormatCode();
    +        }
    +        if ($this->builtInFormatCode !== false) {
    +            return self::builtInFormatCode($this->builtInFormatCode);
    +        }
    +
    +        return $this->formatCode;
    +    }
    +
    +    /**
    +     * Set Format Code.
    +     *
    +     * @param string $pValue see self::FORMAT_*
    +     *
    +     * @return NumberFormat
    +     */
    +    public function setFormatCode($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = self::FORMAT_GENERAL;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['formatCode' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->formatCode = $pValue;
    +            $this->builtInFormatCode = self::builtInFormatCodeIndex($pValue);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Built-In Format Code.
    +     *
    +     * @return int
    +     */
    +    public function getBuiltInFormatCode()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getBuiltInFormatCode();
    +        }
    +
    +        return $this->builtInFormatCode;
    +    }
    +
    +    /**
    +     * Set Built-In Format Code.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return NumberFormat
    +     */
    +    public function setBuiltInFormatCode($pValue)
    +    {
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['formatCode' => self::builtInFormatCode($pValue)]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->builtInFormatCode = $pValue;
    +            $this->formatCode = self::builtInFormatCode($pValue);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Fill built-in format codes.
    +     */
    +    private static function fillBuiltInFormatCodes()
    +    {
    +        //  [MS-OI29500: Microsoft Office Implementation Information for ISO/IEC-29500 Standard Compliance]
    +        //  18.8.30. numFmt (Number Format)
    +        //
    +        //  The ECMA standard defines built-in format IDs
    +        //      14: "mm-dd-yy"
    +        //      22: "m/d/yy h:mm"
    +        //      37: "#,##0 ;(#,##0)"
    +        //      38: "#,##0 ;[Red](#,##0)"
    +        //      39: "#,##0.00;(#,##0.00)"
    +        //      40: "#,##0.00;[Red](#,##0.00)"
    +        //      47: "mmss.0"
    +        //      KOR fmt 55: "yyyy-mm-dd"
    +        //  Excel defines built-in format IDs
    +        //      14: "m/d/yyyy"
    +        //      22: "m/d/yyyy h:mm"
    +        //      37: "#,##0_);(#,##0)"
    +        //      38: "#,##0_);[Red](#,##0)"
    +        //      39: "#,##0.00_);(#,##0.00)"
    +        //      40: "#,##0.00_);[Red](#,##0.00)"
    +        //      47: "mm:ss.0"
    +        //      KOR fmt 55: "yyyy/mm/dd"
    +
    +        // Built-in format codes
    +        if (self::$builtInFormats === null) {
    +            self::$builtInFormats = [];
    +
    +            // General
    +            self::$builtInFormats[0] = self::FORMAT_GENERAL;
    +            self::$builtInFormats[1] = '0';
    +            self::$builtInFormats[2] = '0.00';
    +            self::$builtInFormats[3] = '#,##0';
    +            self::$builtInFormats[4] = '#,##0.00';
    +
    +            self::$builtInFormats[9] = '0%';
    +            self::$builtInFormats[10] = '0.00%';
    +            self::$builtInFormats[11] = '0.00E+00';
    +            self::$builtInFormats[12] = '# ?/?';
    +            self::$builtInFormats[13] = '# ??/??';
    +            self::$builtInFormats[14] = 'm/d/yyyy'; // Despite ECMA 'mm-dd-yy';
    +            self::$builtInFormats[15] = 'd-mmm-yy';
    +            self::$builtInFormats[16] = 'd-mmm';
    +            self::$builtInFormats[17] = 'mmm-yy';
    +            self::$builtInFormats[18] = 'h:mm AM/PM';
    +            self::$builtInFormats[19] = 'h:mm:ss AM/PM';
    +            self::$builtInFormats[20] = 'h:mm';
    +            self::$builtInFormats[21] = 'h:mm:ss';
    +            self::$builtInFormats[22] = 'm/d/yyyy h:mm'; // Despite ECMA 'm/d/yy h:mm';
    +
    +            self::$builtInFormats[37] = '#,##0_);(#,##0)'; //  Despite ECMA '#,##0 ;(#,##0)';
    +            self::$builtInFormats[38] = '#,##0_);[Red](#,##0)'; //  Despite ECMA '#,##0 ;[Red](#,##0)';
    +            self::$builtInFormats[39] = '#,##0.00_);(#,##0.00)'; //  Despite ECMA '#,##0.00;(#,##0.00)';
    +            self::$builtInFormats[40] = '#,##0.00_);[Red](#,##0.00)'; //  Despite ECMA '#,##0.00;[Red](#,##0.00)';
    +
    +            self::$builtInFormats[44] = '_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)';
    +            self::$builtInFormats[45] = 'mm:ss';
    +            self::$builtInFormats[46] = '[h]:mm:ss';
    +            self::$builtInFormats[47] = 'mm:ss.0'; //  Despite ECMA 'mmss.0';
    +            self::$builtInFormats[48] = '##0.0E+0';
    +            self::$builtInFormats[49] = '@';
    +
    +            // CHT
    +            self::$builtInFormats[27] = '[$-404]e/m/d';
    +            self::$builtInFormats[30] = 'm/d/yy';
    +            self::$builtInFormats[36] = '[$-404]e/m/d';
    +            self::$builtInFormats[50] = '[$-404]e/m/d';
    +            self::$builtInFormats[57] = '[$-404]e/m/d';
    +
    +            // THA
    +            self::$builtInFormats[59] = 't0';
    +            self::$builtInFormats[60] = 't0.00';
    +            self::$builtInFormats[61] = 't#,##0';
    +            self::$builtInFormats[62] = 't#,##0.00';
    +            self::$builtInFormats[67] = 't0%';
    +            self::$builtInFormats[68] = 't0.00%';
    +            self::$builtInFormats[69] = 't# ?/?';
    +            self::$builtInFormats[70] = 't# ??/??';
    +
    +            // Flip array (for faster lookups)
    +            self::$flippedBuiltInFormats = array_flip(self::$builtInFormats);
    +        }
    +    }
    +
    +    /**
    +     * Get built-in format code.
    +     *
    +     * @param int $pIndex
    +     *
    +     * @return string
    +     */
    +    public static function builtInFormatCode($pIndex)
    +    {
    +        // Clean parameter
    +        $pIndex = (int) $pIndex;
    +
    +        // Ensure built-in format codes are available
    +        self::fillBuiltInFormatCodes();
    +
    +        // Lookup format code
    +        if (isset(self::$builtInFormats[$pIndex])) {
    +            return self::$builtInFormats[$pIndex];
    +        }
    +
    +        return '';
    +    }
    +
    +    /**
    +     * Get built-in format code index.
    +     *
    +     * @param string $formatCode
    +     *
    +     * @return bool|int
    +     */
    +    public static function builtInFormatCodeIndex($formatCode)
    +    {
    +        // Ensure built-in format codes are available
    +        self::fillBuiltInFormatCodes();
    +
    +        // Lookup format code
    +        if (isset(self::$flippedBuiltInFormats[$formatCode])) {
    +            return self::$flippedBuiltInFormats[$formatCode];
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getHashCode();
    +        }
    +
    +        return md5(
    +            $this->formatCode .
    +            $this->builtInFormatCode .
    +            __CLASS__
    +        );
    +    }
    +
    +    /**
    +     * Search/replace values to convert Excel date/time format masks to PHP format masks.
    +     *
    +     * @var array
    +     */
    +    private static $dateFormatReplacements = [
    +            // first remove escapes related to non-format characters
    +            '\\' => '',
    +            //    12-hour suffix
    +            'am/pm' => 'A',
    +            //    4-digit year
    +            'e' => 'Y',
    +            'yyyy' => 'Y',
    +            //    2-digit year
    +            'yy' => 'y',
    +            //    first letter of month - no php equivalent
    +            'mmmmm' => 'M',
    +            //    full month name
    +            'mmmm' => 'F',
    +            //    short month name
    +            'mmm' => 'M',
    +            //    mm is minutes if time, but can also be month w/leading zero
    +            //    so we try to identify times be the inclusion of a : separator in the mask
    +            //    It isn't perfect, but the best way I know how
    +            ':mm' => ':i',
    +            'mm:' => 'i:',
    +            //    month leading zero
    +            'mm' => 'm',
    +            //    month no leading zero
    +            'm' => 'n',
    +            //    full day of week name
    +            'dddd' => 'l',
    +            //    short day of week name
    +            'ddd' => 'D',
    +            //    days leading zero
    +            'dd' => 'd',
    +            //    days no leading zero
    +            'd' => 'j',
    +            //    seconds
    +            'ss' => 's',
    +            //    fractional seconds - no php equivalent
    +            '.s' => '',
    +        ];
    +
    +    /**
    +     * Search/replace values to convert Excel date/time format masks hours to PHP format masks (24 hr clock).
    +     *
    +     * @var array
    +     */
    +    private static $dateFormatReplacements24 = [
    +        'hh' => 'H',
    +        'h' => 'G',
    +    ];
    +
    +    /**
    +     * Search/replace values to convert Excel date/time format masks hours to PHP format masks (12 hr clock).
    +     *
    +     * @var array
    +     */
    +    private static $dateFormatReplacements12 = [
    +        'hh' => 'h',
    +        'h' => 'g',
    +    ];
    +
    +    private static function setLowercaseCallback($matches)
    +    {
    +        return mb_strtolower($matches[0]);
    +    }
    +
    +    private static function escapeQuotesCallback($matches)
    +    {
    +        return '\\' . implode('\\', str_split($matches[1]));
    +    }
    +
    +    private static function formatAsDate(&$value, &$format)
    +    {
    +        // strip off first part containing e.g. [$-F800] or [$USD-409]
    +        // general syntax: [$<Currency string>-<language info>]
    +        // language info is in hexadecimal
    +        // strip off chinese part like [DBNum1][$-804]
    +        $format = preg_replace('/^(\[[0-9A-Za-z]*\])*(\[\$[A-Z]*-[0-9A-F]*\])/i', '', $format);
    +
    +        // OpenOffice.org uses upper-case number formats, e.g. 'YYYY', convert to lower-case;
    +        //    but we don't want to change any quoted strings
    +        $format = preg_replace_callback('/(?:^|")([^"]*)(?:$|")/', ['self', 'setLowercaseCallback'], $format);
    +
    +        // Only process the non-quoted blocks for date format characters
    +        $blocks = explode('"', $format);
    +        foreach ($blocks as $key => &$block) {
    +            if ($key % 2 == 0) {
    +                $block = strtr($block, self::$dateFormatReplacements);
    +                if (!strpos($block, 'A')) {
    +                    // 24-hour time format
    +                    // when [h]:mm format, the [h] should replace to the hours of the value * 24
    +                    if (false !== strpos($block, '[h]')) {
    +                        $hours = (int) ($value * 24);
    +                        $block = str_replace('[h]', $hours, $block);
    +
    +                        continue;
    +                    }
    +                    $block = strtr($block, self::$dateFormatReplacements24);
    +                } else {
    +                    // 12-hour time format
    +                    $block = strtr($block, self::$dateFormatReplacements12);
    +                }
    +            }
    +        }
    +        $format = implode('"', $blocks);
    +
    +        // escape any quoted characters so that DateTime format() will render them correctly
    +        $format = preg_replace_callback('/"(.*)"/U', ['self', 'escapeQuotesCallback'], $format);
    +
    +        $dateObj = Date::excelToDateTimeObject($value);
    +        $value = $dateObj->format($format);
    +    }
    +
    +    private static function formatAsPercentage(&$value, &$format)
    +    {
    +        if ($format === self::FORMAT_PERCENTAGE) {
    +            $value = round((100 * $value), 0) . '%';
    +        } else {
    +            if (preg_match('/\.[#0]+/', $format, $m)) {
    +                $s = substr($m[0], 0, 1) . (strlen($m[0]) - 1);
    +                $format = str_replace($m[0], $s, $format);
    +            }
    +            if (preg_match('/^[#0]+/', $format, $m)) {
    +                $format = str_replace($m[0], strlen($m[0]), $format);
    +            }
    +            $format = '%' . str_replace('%', 'f%%', $format);
    +
    +            $value = sprintf($format, 100 * $value);
    +        }
    +    }
    +
    +    private static function formatAsFraction(&$value, &$format)
    +    {
    +        $sign = ($value < 0) ? '-' : '';
    +
    +        $integerPart = floor(abs($value));
    +        $decimalPart = trim(fmod(abs($value), 1), '0.');
    +        $decimalLength = strlen($decimalPart);
    +        $decimalDivisor = pow(10, $decimalLength);
    +
    +        $GCD = MathTrig::GCD($decimalPart, $decimalDivisor);
    +
    +        $adjustedDecimalPart = $decimalPart / $GCD;
    +        $adjustedDecimalDivisor = $decimalDivisor / $GCD;
    +
    +        if ((strpos($format, '0') !== false) || (strpos($format, '#') !== false) || (substr($format, 0, 3) == '? ?')) {
    +            if ($integerPart == 0) {
    +                $integerPart = '';
    +            }
    +            $value = "$sign$integerPart $adjustedDecimalPart/$adjustedDecimalDivisor";
    +        } else {
    +            $adjustedDecimalPart += $integerPart * $adjustedDecimalDivisor;
    +            $value = "$sign$adjustedDecimalPart/$adjustedDecimalDivisor";
    +        }
    +    }
    +
    +    private static function complexNumberFormatMask($number, $mask)
    +    {
    +        $sign = ($number < 0.0);
    +        $number = abs($number);
    +        if (strpos($mask, '.') !== false) {
    +            $numbers = explode('.', $number . '.0');
    +            $masks = explode('.', $mask . '.0');
    +            $result1 = self::complexNumberFormatMask($numbers[0], $masks[0]);
    +            $result2 = strrev(self::complexNumberFormatMask(strrev($numbers[1]), strrev($masks[1])));
    +
    +            return (($sign) ? '-' : '') . $result1 . '.' . $result2;
    +        }
    +
    +        $r = preg_match_all('/0+/', $mask, $result, PREG_OFFSET_CAPTURE);
    +        if ($r > 1) {
    +            $result = array_reverse($result[0]);
    +
    +            foreach ($result as $block) {
    +                $divisor = 1 . $block[0];
    +                $size = strlen($block[0]);
    +                $offset = $block[1];
    +
    +                $blockValue = sprintf(
    +                    '%0' . $size . 'd',
    +                    fmod($number, $divisor)
    +                );
    +                $number = floor($number / $divisor);
    +                $mask = substr_replace($mask, $blockValue, $offset, $size);
    +            }
    +            if ($number > 0) {
    +                $mask = substr_replace($mask, $number, $offset, 0);
    +            }
    +            $result = $mask;
    +        } else {
    +            $result = $number;
    +        }
    +
    +        return (($sign) ? '-' : '') . $result;
    +    }
    +
    +    /**
    +     * Convert a value in a pre-defined format to a PHP string.
    +     *
    +     * @param mixed $value Value to format
    +     * @param string $format Format code, see = self::FORMAT_*
    +     * @param array $callBack Callback function for additional formatting of string
    +     *
    +     * @return string Formatted string
    +     */
    +    public static function toFormattedString($value, $format, $callBack = null)
    +    {
    +        // For now we do not treat strings although section 4 of a format code affects strings
    +        if (!is_numeric($value)) {
    +            return $value;
    +        }
    +
    +        // For 'General' format code, we just pass the value although this is not entirely the way Excel does it,
    +        // it seems to round numbers to a total of 10 digits.
    +        if (($format === self::FORMAT_GENERAL) || ($format === self::FORMAT_TEXT)) {
    +            return $value;
    +        }
    +
    +        // Convert any other escaped characters to quoted strings, e.g. (\T to "T")
    +        $format = preg_replace('/(\\\([^ ]))(?=(?:[^"]|"[^"]*")*$)/u', '"${2}"', $format);
    +
    +        // Get the sections, there can be up to four sections, separated with a semi-colon (but only if not a quoted literal)
    +        $sections = preg_split('/(;)(?=(?:[^"]|"[^"]*")*$)/u', $format);
    +
    +        // Extract the relevant section depending on whether number is positive, negative, or zero?
    +        // Text not supported yet.
    +        // Here is how the sections apply to various values in Excel:
    +        //   1 section:   [POSITIVE/NEGATIVE/ZERO/TEXT]
    +        //   2 sections:  [POSITIVE/ZERO/TEXT] [NEGATIVE]
    +        //   3 sections:  [POSITIVE/TEXT] [NEGATIVE] [ZERO]
    +        //   4 sections:  [POSITIVE] [NEGATIVE] [ZERO] [TEXT]
    +        switch (count($sections)) {
    +            case 1:
    +                $format = $sections[0];
    +
    +                break;
    +            case 2:
    +                $format = ($value >= 0) ? $sections[0] : $sections[1];
    +                $value = abs($value); // Use the absolute value
    +                break;
    +            case 3:
    +                $format = ($value > 0) ?
    +                    $sections[0] : (($value < 0) ?
    +                        $sections[1] : $sections[2]);
    +                $value = abs($value); // Use the absolute value
    +                break;
    +            case 4:
    +                $format = ($value > 0) ?
    +                    $sections[0] : (($value < 0) ?
    +                        $sections[1] : $sections[2]);
    +                $value = abs($value); // Use the absolute value
    +                break;
    +            default:
    +                // something is wrong, just use first section
    +                $format = $sections[0];
    +
    +                break;
    +        }
    +
    +        // In Excel formats, "_" is used to add spacing,
    +        //    The following character indicates the size of the spacing, which we can't do in HTML, so we just use a standard space
    +        $format = preg_replace('/_./', ' ', $format);
    +
    +        // Save format with color information for later use below
    +        $formatColor = $format;
    +
    +        // Let's begin inspecting the format and converting the value to a formatted string
    +
    +        //  Check for date/time characters (not inside quotes)
    +        if (preg_match('/(\[\$[A-Z]*-[0-9A-F]*\])*[hmsdy](?=(?:[^"]|"[^"]*")*$)/miu', $format, $matches)) {
    +            // datetime format
    +            self::formatAsDate($value, $format);
    +        } else {
    +            // Strip color information
    +            $color_regex = '/^\\[[a-zA-Z]+\\]/';
    +            $format = preg_replace($color_regex, '', $format);
    +            if (preg_match('/%$/', $format)) {
    +                // % number format
    +                self::formatAsPercentage($value, $format);
    +            } else {
    +                if ($format === self::FORMAT_CURRENCY_EUR_SIMPLE) {
    +                    $value = 'EUR ' . sprintf('%1.2f', $value);
    +                } else {
    +                    // Some non-number strings are quoted, so we'll get rid of the quotes, likewise any positional * symbols
    +                    $format = str_replace(['"', '*'], '', $format);
    +
    +                    // Find out if we need thousands separator
    +                    // This is indicated by a comma enclosed by a digit placeholder:
    +                    //        #,#   or   0,0
    +                    $useThousands = preg_match('/(#,#|0,0)/', $format);
    +                    if ($useThousands) {
    +                        $format = preg_replace('/0,0/', '00', $format);
    +                        $format = preg_replace('/#,#/', '##', $format);
    +                    }
    +
    +                    // Scale thousands, millions,...
    +                    // This is indicated by a number of commas after a digit placeholder:
    +                    //        #,   or    0.0,,
    +                    $scale = 1; // same as no scale
    +                    $matches = [];
    +                    if (preg_match('/(#|0)(,+)/', $format, $matches)) {
    +                        $scale = pow(1000, strlen($matches[2]));
    +
    +                        // strip the commas
    +                        $format = preg_replace('/0,+/', '0', $format);
    +                        $format = preg_replace('/#,+/', '#', $format);
    +                    }
    +
    +                    if (preg_match('/#?.*\?\/\?/', $format, $m)) {
    +                        if ($value != (int) $value) {
    +                            self::formatAsFraction($value, $format);
    +                        }
    +                    } else {
    +                        // Handle the number itself
    +
    +                        // scale number
    +                        $value = $value / $scale;
    +
    +                        // Strip #
    +                        $format = preg_replace('/\\#/', '0', $format);
    +
    +                        // Remove locale code [$-###]
    +                        $format = preg_replace('/\[\$\-.*\]/', '', $format);
    +
    +                        $n = '/\\[[^\\]]+\\]/';
    +                        $m = preg_replace($n, '', $format);
    +                        $number_regex = '/(0+)(\\.?)(0*)/';
    +                        if (preg_match($number_regex, $m, $matches)) {
    +                            $left = $matches[1];
    +                            $dec = $matches[2];
    +                            $right = $matches[3];
    +
    +                            // minimun width of formatted number (including dot)
    +                            $minWidth = strlen($left) + strlen($dec) + strlen($right);
    +                            if ($useThousands) {
    +                                $value = number_format(
    +                                    $value,
    +                                    strlen($right),
    +                                    StringHelper::getDecimalSeparator(),
    +                                    StringHelper::getThousandsSeparator()
    +                                );
    +                                $value = preg_replace($number_regex, $value, $format);
    +                            } else {
    +                                if (preg_match('/[0#]E[+-]0/i', $format)) {
    +                                    //    Scientific format
    +                                    $value = sprintf('%5.2E', $value);
    +                                } elseif (preg_match('/0([^\d\.]+)0/', $format)) {
    +                                    $value = self::complexNumberFormatMask($value, $format);
    +                                } else {
    +                                    $sprintf_pattern = "%0$minWidth." . strlen($right) . 'f';
    +                                    $value = sprintf($sprintf_pattern, $value);
    +                                    $value = preg_replace($number_regex, $value, $format);
    +                                }
    +                            }
    +                        }
    +                    }
    +                    if (preg_match('/\[\$(.*)\]/u', $format, $m)) {
    +                        //  Currency or Accounting
    +                        $currencyCode = $m[1];
    +                        list($currencyCode) = explode('-', $currencyCode);
    +                        if ($currencyCode == '') {
    +                            $currencyCode = StringHelper::getCurrencyCode();
    +                        }
    +                        $value = preg_replace('/\[\$([^\]]*)\]/u', $currencyCode, $value);
    +                    }
    +                }
    +            }
    +        }
    +
    +        // Additional formatting provided by callback function
    +        if ($callBack !== null) {
    +            list($writerInstance, $function) = $callBack;
    +            $value = $writerInstance->$function($value, $formatColor);
    +        }
    +
    +        return $value;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Protection.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Protection.php
    new file mode 100644
    index 00000000000..b5feb53486e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Protection.php
    @@ -0,0 +1,190 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Style;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Protection extends Supervisor
    +{
    +    /** Protection styles */
    +    const PROTECTION_INHERIT = 'inherit';
    +    const PROTECTION_PROTECTED = 'protected';
    +    const PROTECTION_UNPROTECTED = 'unprotected';
    +
    +    /**
    +     * Locked.
    +     *
    +     * @var string
    +     */
    +    protected $locked;
    +
    +    /**
    +     * Hidden.
    +     *
    +     * @var string
    +     */
    +    protected $hidden;
    +
    +    /**
    +     * Create a new Protection.
    +     *
    +     * @param bool $isSupervisor Flag indicating if this is a supervisor or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     * @param bool $isConditional Flag indicating if this is a conditional style or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     */
    +    public function __construct($isSupervisor = false, $isConditional = false)
    +    {
    +        // Supervisor?
    +        parent::__construct($isSupervisor);
    +
    +        // Initialise values
    +        if (!$isConditional) {
    +            $this->locked = self::PROTECTION_INHERIT;
    +            $this->hidden = self::PROTECTION_INHERIT;
    +        }
    +    }
    +
    +    /**
    +     * Get the shared style component for the currently active cell in currently active sheet.
    +     * Only used for style supervisor.
    +     *
    +     * @return Protection
    +     */
    +    public function getSharedComponent()
    +    {
    +        return $this->parent->getSharedComponent()->getProtection();
    +    }
    +
    +    /**
    +     * Build style array from subcomponents.
    +     *
    +     * @param array $array
    +     *
    +     * @return array
    +     */
    +    public function getStyleArray($array)
    +    {
    +        return ['protection' => $array];
    +    }
    +
    +    /**
    +     * Apply styles from array.
    +     *
    +     * <code>
    +     * $spreadsheet->getActiveSheet()->getStyle('B2')->getLocked()->applyFromArray(
    +     *     [
    +     *         'locked' => TRUE,
    +     *         'hidden' => FALSE
    +     *     ]
    +     * );
    +     * </code>
    +     *
    +     * @param array $pStyles Array containing style information
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Protection
    +     */
    +    public function applyFromArray(array $pStyles)
    +    {
    +        if ($this->isSupervisor) {
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
    +        } else {
    +            if (isset($pStyles['locked'])) {
    +                $this->setLocked($pStyles['locked']);
    +            }
    +            if (isset($pStyles['hidden'])) {
    +                $this->setHidden($pStyles['hidden']);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get locked.
    +     *
    +     * @return string
    +     */
    +    public function getLocked()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getLocked();
    +        }
    +
    +        return $this->locked;
    +    }
    +
    +    /**
    +     * Set locked.
    +     *
    +     * @param string $pValue see self::PROTECTION_*
    +     *
    +     * @return Protection
    +     */
    +    public function setLocked($pValue)
    +    {
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['locked' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->locked = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hidden.
    +     *
    +     * @return string
    +     */
    +    public function getHidden()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getHidden();
    +        }
    +
    +        return $this->hidden;
    +    }
    +
    +    /**
    +     * Set hidden.
    +     *
    +     * @param string $pValue see self::PROTECTION_*
    +     *
    +     * @return Protection
    +     */
    +    public function setHidden($pValue)
    +    {
    +        if ($this->isSupervisor) {
    +            $styleArray = $this->getStyleArray(['hidden' => $pValue]);
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->hidden = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getHashCode();
    +        }
    +
    +        return md5(
    +            $this->locked .
    +            $this->hidden .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Style.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Style.php
    new file mode 100644
    index 00000000000..fbe07c2cdd2
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Style.php
    @@ -0,0 +1,641 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Style;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class Style extends Supervisor
    +{
    +    /**
    +     * Font.
    +     *
    +     * @var Font
    +     */
    +    protected $font;
    +
    +    /**
    +     * Fill.
    +     *
    +     * @var Fill
    +     */
    +    protected $fill;
    +
    +    /**
    +     * Borders.
    +     *
    +     * @var Borders
    +     */
    +    protected $borders;
    +
    +    /**
    +     * Alignment.
    +     *
    +     * @var Alignment
    +     */
    +    protected $alignment;
    +
    +    /**
    +     * Number Format.
    +     *
    +     * @var NumberFormat
    +     */
    +    protected $numberFormat;
    +
    +    /**
    +     * Conditional styles.
    +     *
    +     * @var Conditional[]
    +     */
    +    protected $conditionalStyles;
    +
    +    /**
    +     * Protection.
    +     *
    +     * @var Protection
    +     */
    +    protected $protection;
    +
    +    /**
    +     * Index of style in collection. Only used for real style.
    +     *
    +     * @var int
    +     */
    +    protected $index;
    +
    +    /**
    +     * Use Quote Prefix when displaying in cell editor. Only used for real style.
    +     *
    +     * @var bool
    +     */
    +    protected $quotePrefix = false;
    +
    +    /**
    +     * Create a new Style.
    +     *
    +     * @param bool $isSupervisor Flag indicating if this is a supervisor or not
    +     *         Leave this value at default unless you understand exactly what
    +     *    its ramifications are
    +     * @param bool $isConditional Flag indicating if this is a conditional style or not
    +     *       Leave this value at default unless you understand exactly what
    +     *    its ramifications are
    +     */
    +    public function __construct($isSupervisor = false, $isConditional = false)
    +    {
    +        parent::__construct($isSupervisor);
    +
    +        // Initialise values
    +        $this->conditionalStyles = [];
    +        $this->font = new Font($isSupervisor, $isConditional);
    +        $this->fill = new Fill($isSupervisor, $isConditional);
    +        $this->borders = new Borders($isSupervisor, $isConditional);
    +        $this->alignment = new Alignment($isSupervisor, $isConditional);
    +        $this->numberFormat = new NumberFormat($isSupervisor, $isConditional);
    +        $this->protection = new Protection($isSupervisor, $isConditional);
    +
    +        // bind parent if we are a supervisor
    +        if ($isSupervisor) {
    +            $this->font->bindParent($this);
    +            $this->fill->bindParent($this);
    +            $this->borders->bindParent($this);
    +            $this->alignment->bindParent($this);
    +            $this->numberFormat->bindParent($this);
    +            $this->protection->bindParent($this);
    +        }
    +    }
    +
    +    /**
    +     * Get the shared style component for the currently active cell in currently active sheet.
    +     * Only used for style supervisor.
    +     *
    +     * @return Style
    +     */
    +    public function getSharedComponent()
    +    {
    +        $activeSheet = $this->getActiveSheet();
    +        $selectedCell = $this->getActiveCell(); // e.g. 'A1'
    +
    +        if ($activeSheet->cellExists($selectedCell)) {
    +            $xfIndex = $activeSheet->getCell($selectedCell)->getXfIndex();
    +        } else {
    +            $xfIndex = 0;
    +        }
    +
    +        return $this->parent->getCellXfByIndex($xfIndex);
    +    }
    +
    +    /**
    +     * Get parent. Only used for style supervisor.
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function getParent()
    +    {
    +        return $this->parent;
    +    }
    +
    +    /**
    +     * Build style array from subcomponents.
    +     *
    +     * @param array $array
    +     *
    +     * @return array
    +     */
    +    public function getStyleArray($array)
    +    {
    +        return ['quotePrefix' => $array];
    +    }
    +
    +    /**
    +     * Apply styles from array.
    +     *
    +     * <code>
    +     * $spreadsheet->getActiveSheet()->getStyle('B2')->applyFromArray(
    +     *     [
    +     *         'font' => [
    +     *             'name' => 'Arial',
    +     *             'bold' => true,
    +     *             'italic' => false,
    +     *             'underline' => Font::UNDERLINE_DOUBLE,
    +     *             'strikethrough' => false,
    +     *             'color' => [
    +     *                 'rgb' => '808080'
    +     *             ]
    +     *         ],
    +     *         'borders' => [
    +     *             'bottom' => [
    +     *                 'borderStyle' => Border::BORDER_DASHDOT,
    +     *                 'color' => [
    +     *                     'rgb' => '808080'
    +     *                 ]
    +     *             ],
    +     *             'top' => [
    +     *                 'borderStyle' => Border::BORDER_DASHDOT,
    +     *                 'color' => [
    +     *                     'rgb' => '808080'
    +     *                 ]
    +     *             ]
    +     *         ],
    +     *         'alignment' => [
    +     *             'horizontal' => Alignment::HORIZONTAL_CENTER,
    +     *             'vertical' => Alignment::VERTICAL_CENTER,
    +     *             'wrapText' => true,
    +     *         ],
    +     *         'quotePrefix'    => true
    +     *     ]
    +     * );
    +     * </code>
    +     *
    +     * @param array $pStyles Array containing style information
    +     * @param bool $pAdvanced advanced mode for setting borders
    +     *
    +     * @return Style
    +     */
    +    public function applyFromArray(array $pStyles, $pAdvanced = true)
    +    {
    +        if ($this->isSupervisor) {
    +            $pRange = $this->getSelectedCells();
    +
    +            // Uppercase coordinate
    +            $pRange = strtoupper($pRange);
    +
    +            // Is it a cell range or a single cell?
    +            if (strpos($pRange, ':') === false) {
    +                $rangeA = $pRange;
    +                $rangeB = $pRange;
    +            } else {
    +                list($rangeA, $rangeB) = explode(':', $pRange);
    +            }
    +
    +            // Calculate range outer borders
    +            $rangeStart = Coordinate::coordinateFromString($rangeA);
    +            $rangeEnd = Coordinate::coordinateFromString($rangeB);
    +
    +            // Translate column into index
    +            $rangeStart[0] = Coordinate::columnIndexFromString($rangeStart[0]);
    +            $rangeEnd[0] = Coordinate::columnIndexFromString($rangeEnd[0]);
    +
    +            // Make sure we can loop upwards on rows and columns
    +            if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) {
    +                $tmp = $rangeStart;
    +                $rangeStart = $rangeEnd;
    +                $rangeEnd = $tmp;
    +            }
    +
    +            // ADVANCED MODE:
    +            if ($pAdvanced && isset($pStyles['borders'])) {
    +                // 'allBorders' is a shorthand property for 'outline' and 'inside' and
    +                //        it applies to components that have not been set explicitly
    +                if (isset($pStyles['borders']['allBorders'])) {
    +                    foreach (['outline', 'inside'] as $component) {
    +                        if (!isset($pStyles['borders'][$component])) {
    +                            $pStyles['borders'][$component] = $pStyles['borders']['allBorders'];
    +                        }
    +                    }
    +                    unset($pStyles['borders']['allBorders']); // not needed any more
    +                }
    +                // 'outline' is a shorthand property for 'top', 'right', 'bottom', 'left'
    +                //        it applies to components that have not been set explicitly
    +                if (isset($pStyles['borders']['outline'])) {
    +                    foreach (['top', 'right', 'bottom', 'left'] as $component) {
    +                        if (!isset($pStyles['borders'][$component])) {
    +                            $pStyles['borders'][$component] = $pStyles['borders']['outline'];
    +                        }
    +                    }
    +                    unset($pStyles['borders']['outline']); // not needed any more
    +                }
    +                // 'inside' is a shorthand property for 'vertical' and 'horizontal'
    +                //        it applies to components that have not been set explicitly
    +                if (isset($pStyles['borders']['inside'])) {
    +                    foreach (['vertical', 'horizontal'] as $component) {
    +                        if (!isset($pStyles['borders'][$component])) {
    +                            $pStyles['borders'][$component] = $pStyles['borders']['inside'];
    +                        }
    +                    }
    +                    unset($pStyles['borders']['inside']); // not needed any more
    +                }
    +                // width and height characteristics of selection, 1, 2, or 3 (for 3 or more)
    +                $xMax = min($rangeEnd[0] - $rangeStart[0] + 1, 3);
    +                $yMax = min($rangeEnd[1] - $rangeStart[1] + 1, 3);
    +
    +                // loop through up to 3 x 3 = 9 regions
    +                for ($x = 1; $x <= $xMax; ++$x) {
    +                    // start column index for region
    +                    $colStart = ($x == 3) ?
    +                        Coordinate::stringFromColumnIndex($rangeEnd[0])
    +                            : Coordinate::stringFromColumnIndex($rangeStart[0] + $x - 1);
    +                    // end column index for region
    +                    $colEnd = ($x == 1) ?
    +                        Coordinate::stringFromColumnIndex($rangeStart[0])
    +                            : Coordinate::stringFromColumnIndex($rangeEnd[0] - $xMax + $x);
    +
    +                    for ($y = 1; $y <= $yMax; ++$y) {
    +                        // which edges are touching the region
    +                        $edges = [];
    +                        if ($x == 1) {
    +                            // are we at left edge
    +                            $edges[] = 'left';
    +                        }
    +                        if ($x == $xMax) {
    +                            // are we at right edge
    +                            $edges[] = 'right';
    +                        }
    +                        if ($y == 1) {
    +                            // are we at top edge?
    +                            $edges[] = 'top';
    +                        }
    +                        if ($y == $yMax) {
    +                            // are we at bottom edge?
    +                            $edges[] = 'bottom';
    +                        }
    +
    +                        // start row index for region
    +                        $rowStart = ($y == 3) ?
    +                            $rangeEnd[1] : $rangeStart[1] + $y - 1;
    +
    +                        // end row index for region
    +                        $rowEnd = ($y == 1) ?
    +                            $rangeStart[1] : $rangeEnd[1] - $yMax + $y;
    +
    +                        // build range for region
    +                        $range = $colStart . $rowStart . ':' . $colEnd . $rowEnd;
    +
    +                        // retrieve relevant style array for region
    +                        $regionStyles = $pStyles;
    +                        unset($regionStyles['borders']['inside']);
    +
    +                        // what are the inner edges of the region when looking at the selection
    +                        $innerEdges = array_diff(['top', 'right', 'bottom', 'left'], $edges);
    +
    +                        // inner edges that are not touching the region should take the 'inside' border properties if they have been set
    +                        foreach ($innerEdges as $innerEdge) {
    +                            switch ($innerEdge) {
    +                                case 'top':
    +                                case 'bottom':
    +                                    // should pick up 'horizontal' border property if set
    +                                    if (isset($pStyles['borders']['horizontal'])) {
    +                                        $regionStyles['borders'][$innerEdge] = $pStyles['borders']['horizontal'];
    +                                    } else {
    +                                        unset($regionStyles['borders'][$innerEdge]);
    +                                    }
    +
    +                                    break;
    +                                case 'left':
    +                                case 'right':
    +                                    // should pick up 'vertical' border property if set
    +                                    if (isset($pStyles['borders']['vertical'])) {
    +                                        $regionStyles['borders'][$innerEdge] = $pStyles['borders']['vertical'];
    +                                    } else {
    +                                        unset($regionStyles['borders'][$innerEdge]);
    +                                    }
    +
    +                                    break;
    +                            }
    +                        }
    +
    +                        // apply region style to region by calling applyFromArray() in simple mode
    +                        $this->getActiveSheet()->getStyle($range)->applyFromArray($regionStyles, false);
    +                    }
    +                }
    +
    +                // restore initial cell selection range
    +                $this->getActiveSheet()->getStyle($pRange);
    +
    +                return $this;
    +            }
    +
    +            // SIMPLE MODE:
    +            // Selection type, inspect
    +            if (preg_match('/^[A-Z]+1:[A-Z]+1048576$/', $pRange)) {
    +                $selectionType = 'COLUMN';
    +            } elseif (preg_match('/^A\d+:XFD\d+$/', $pRange)) {
    +                $selectionType = 'ROW';
    +            } else {
    +                $selectionType = 'CELL';
    +            }
    +
    +            // First loop through columns, rows, or cells to find out which styles are affected by this operation
    +            switch ($selectionType) {
    +                case 'COLUMN':
    +                    $oldXfIndexes = [];
    +                    for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) {
    +                        $oldXfIndexes[$this->getActiveSheet()->getColumnDimensionByColumn($col)->getXfIndex()] = true;
    +                    }
    +
    +                    break;
    +                case 'ROW':
    +                    $oldXfIndexes = [];
    +                    for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) {
    +                        if ($this->getActiveSheet()->getRowDimension($row)->getXfIndex() == null) {
    +                            $oldXfIndexes[0] = true; // row without explicit style should be formatted based on default style
    +                        } else {
    +                            $oldXfIndexes[$this->getActiveSheet()->getRowDimension($row)->getXfIndex()] = true;
    +                        }
    +                    }
    +
    +                    break;
    +                case 'CELL':
    +                    $oldXfIndexes = [];
    +                    for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) {
    +                        for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) {
    +                            $oldXfIndexes[$this->getActiveSheet()->getCellByColumnAndRow($col, $row)->getXfIndex()] = true;
    +                        }
    +                    }
    +
    +                    break;
    +            }
    +
    +            // clone each of the affected styles, apply the style array, and add the new styles to the workbook
    +            $workbook = $this->getActiveSheet()->getParent();
    +            foreach ($oldXfIndexes as $oldXfIndex => $dummy) {
    +                $style = $workbook->getCellXfByIndex($oldXfIndex);
    +                $newStyle = clone $style;
    +                $newStyle->applyFromArray($pStyles);
    +
    +                if ($existingStyle = $workbook->getCellXfByHashCode($newStyle->getHashCode())) {
    +                    // there is already such cell Xf in our collection
    +                    $newXfIndexes[$oldXfIndex] = $existingStyle->getIndex();
    +                } else {
    +                    // we don't have such a cell Xf, need to add
    +                    $workbook->addCellXf($newStyle);
    +                    $newXfIndexes[$oldXfIndex] = $newStyle->getIndex();
    +                }
    +            }
    +
    +            // Loop through columns, rows, or cells again and update the XF index
    +            switch ($selectionType) {
    +                case 'COLUMN':
    +                    for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) {
    +                        $columnDimension = $this->getActiveSheet()->getColumnDimensionByColumn($col);
    +                        $oldXfIndex = $columnDimension->getXfIndex();
    +                        $columnDimension->setXfIndex($newXfIndexes[$oldXfIndex]);
    +                    }
    +
    +                    break;
    +                case 'ROW':
    +                    for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) {
    +                        $rowDimension = $this->getActiveSheet()->getRowDimension($row);
    +                        $oldXfIndex = $rowDimension->getXfIndex() === null ?
    +                            0 : $rowDimension->getXfIndex(); // row without explicit style should be formatted based on default style
    +                        $rowDimension->setXfIndex($newXfIndexes[$oldXfIndex]);
    +                    }
    +
    +                    break;
    +                case 'CELL':
    +                    for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) {
    +                        for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) {
    +                            $cell = $this->getActiveSheet()->getCellByColumnAndRow($col, $row);
    +                            $oldXfIndex = $cell->getXfIndex();
    +                            $cell->setXfIndex($newXfIndexes[$oldXfIndex]);
    +                        }
    +                    }
    +
    +                    break;
    +            }
    +        } else {
    +            // not a supervisor, just apply the style array directly on style object
    +            if (isset($pStyles['fill'])) {
    +                $this->getFill()->applyFromArray($pStyles['fill']);
    +            }
    +            if (isset($pStyles['font'])) {
    +                $this->getFont()->applyFromArray($pStyles['font']);
    +            }
    +            if (isset($pStyles['borders'])) {
    +                $this->getBorders()->applyFromArray($pStyles['borders']);
    +            }
    +            if (isset($pStyles['alignment'])) {
    +                $this->getAlignment()->applyFromArray($pStyles['alignment']);
    +            }
    +            if (isset($pStyles['numberFormat'])) {
    +                $this->getNumberFormat()->applyFromArray($pStyles['numberFormat']);
    +            }
    +            if (isset($pStyles['protection'])) {
    +                $this->getProtection()->applyFromArray($pStyles['protection']);
    +            }
    +            if (isset($pStyles['quotePrefix'])) {
    +                $this->quotePrefix = $pStyles['quotePrefix'];
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Fill.
    +     *
    +     * @return Fill
    +     */
    +    public function getFill()
    +    {
    +        return $this->fill;
    +    }
    +
    +    /**
    +     * Get Font.
    +     *
    +     * @return Font
    +     */
    +    public function getFont()
    +    {
    +        return $this->font;
    +    }
    +
    +    /**
    +     * Set font.
    +     *
    +     * @param Font $font
    +     *
    +     * @return Style
    +     */
    +    public function setFont(Font $font)
    +    {
    +        $this->font = $font;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Borders.
    +     *
    +     * @return Borders
    +     */
    +    public function getBorders()
    +    {
    +        return $this->borders;
    +    }
    +
    +    /**
    +     * Get Alignment.
    +     *
    +     * @return Alignment
    +     */
    +    public function getAlignment()
    +    {
    +        return $this->alignment;
    +    }
    +
    +    /**
    +     * Get Number Format.
    +     *
    +     * @return NumberFormat
    +     */
    +    public function getNumberFormat()
    +    {
    +        return $this->numberFormat;
    +    }
    +
    +    /**
    +     * Get Conditional Styles. Only used on supervisor.
    +     *
    +     * @return Conditional[]
    +     */
    +    public function getConditionalStyles()
    +    {
    +        return $this->getActiveSheet()->getConditionalStyles($this->getActiveCell());
    +    }
    +
    +    /**
    +     * Set Conditional Styles. Only used on supervisor.
    +     *
    +     * @param Conditional[] $pValue Array of conditional styles
    +     *
    +     * @return Style
    +     */
    +    public function setConditionalStyles(array $pValue)
    +    {
    +        $this->getActiveSheet()->setConditionalStyles($this->getSelectedCells(), $pValue);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Protection.
    +     *
    +     * @return Protection
    +     */
    +    public function getProtection()
    +    {
    +        return $this->protection;
    +    }
    +
    +    /**
    +     * Get quote prefix.
    +     *
    +     * @return bool
    +     */
    +    public function getQuotePrefix()
    +    {
    +        if ($this->isSupervisor) {
    +            return $this->getSharedComponent()->getQuotePrefix();
    +        }
    +
    +        return $this->quotePrefix;
    +    }
    +
    +    /**
    +     * Set quote prefix.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Style
    +     */
    +    public function setQuotePrefix($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = false;
    +        }
    +        if ($this->isSupervisor) {
    +            $styleArray = ['quotePrefix' => $pValue];
    +            $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
    +        } else {
    +            $this->quotePrefix = (bool) $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        $hashConditionals = '';
    +        foreach ($this->conditionalStyles as $conditional) {
    +            $hashConditionals .= $conditional->getHashCode();
    +        }
    +
    +        return md5(
    +            $this->fill->getHashCode() .
    +            $this->font->getHashCode() .
    +            $this->borders->getHashCode() .
    +            $this->alignment->getHashCode() .
    +            $this->numberFormat->getHashCode() .
    +            $hashConditionals .
    +            $this->protection->getHashCode() .
    +            ($this->quotePrefix ? 't' : 'f') .
    +            __CLASS__
    +        );
    +    }
    +
    +    /**
    +     * Get own index in style collection.
    +     *
    +     * @return int
    +     */
    +    public function getIndex()
    +    {
    +        return $this->index;
    +    }
    +
    +    /**
    +     * Set own index in style collection.
    +     *
    +     * @param int $pValue
    +     */
    +    public function setIndex($pValue)
    +    {
    +        $this->index = $pValue;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Supervisor.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Supervisor.php
    new file mode 100644
    index 00000000000..2d1a27266b1
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Style/Supervisor.php
    @@ -0,0 +1,117 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Style;
    +
    +use PhpOffice\PhpSpreadsheet\IComparable;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +
    +abstract class Supervisor implements IComparable
    +{
    +    /**
    +     * Supervisor?
    +     *
    +     * @var bool
    +     */
    +    protected $isSupervisor;
    +
    +    /**
    +     * Parent. Only used for supervisor.
    +     *
    +     * @var Spreadsheet|Style
    +     */
    +    protected $parent;
    +
    +    /**
    +     * Parent property name.
    +     *
    +     * @var null|string
    +     */
    +    protected $parentPropertyName;
    +
    +    /**
    +     * Create a new Supervisor.
    +     *
    +     * @param bool $isSupervisor Flag indicating if this is a supervisor or not
    +     *                                    Leave this value at default unless you understand exactly what
    +     *                                        its ramifications are
    +     */
    +    public function __construct($isSupervisor = false)
    +    {
    +        // Supervisor?
    +        $this->isSupervisor = $isSupervisor;
    +    }
    +
    +    /**
    +     * Bind parent. Only used for supervisor.
    +     *
    +     * @param Spreadsheet|Style $parent
    +     * @param null|string $parentPropertyName
    +     *
    +     * @return Supervisor
    +     */
    +    public function bindParent($parent, $parentPropertyName = null)
    +    {
    +        $this->parent = $parent;
    +        $this->parentPropertyName = $parentPropertyName;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Is this a supervisor or a cell style component?
    +     *
    +     * @return bool
    +     */
    +    public function getIsSupervisor()
    +    {
    +        return $this->isSupervisor;
    +    }
    +
    +    /**
    +     * Get the currently active sheet. Only used for supervisor.
    +     *
    +     * @return Worksheet
    +     */
    +    public function getActiveSheet()
    +    {
    +        return $this->parent->getActiveSheet();
    +    }
    +
    +    /**
    +     * Get the currently active cell coordinate in currently active sheet.
    +     * Only used for supervisor.
    +     *
    +     * @return string E.g. 'A1'
    +     */
    +    public function getSelectedCells()
    +    {
    +        return $this->getActiveSheet()->getSelectedCells();
    +    }
    +
    +    /**
    +     * Get the currently active cell coordinate in currently active sheet.
    +     * Only used for supervisor.
    +     *
    +     * @return string E.g. 'A1'
    +     */
    +    public function getActiveCell()
    +    {
    +        return $this->getActiveSheet()->getActiveCell();
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if ((is_object($value)) && ($key != 'parent')) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/AutoFilter.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/AutoFilter.php
    new file mode 100644
    index 00000000000..494948a77f2
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/AutoFilter.php
    @@ -0,0 +1,873 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Calculation\DateTime;
    +use PhpOffice\PhpSpreadsheet\Calculation\Functions;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +
    +class AutoFilter
    +{
    +    /**
    +     * Autofilter Worksheet.
    +     *
    +     * @var Worksheet
    +     */
    +    private $workSheet;
    +
    +    /**
    +     * Autofilter Range.
    +     *
    +     * @var string
    +     */
    +    private $range = '';
    +
    +    /**
    +     * Autofilter Column Ruleset.
    +     *
    +     * @var AutoFilter\Column[]
    +     */
    +    private $columns = [];
    +
    +    /**
    +     * Create a new AutoFilter.
    +     *
    +     * @param string $pRange Cell range (i.e. A1:E10)
    +     * @param Worksheet $pSheet
    +     */
    +    public function __construct($pRange = '', Worksheet $pSheet = null)
    +    {
    +        $this->range = $pRange;
    +        $this->workSheet = $pSheet;
    +    }
    +
    +    /**
    +     * Get AutoFilter Parent Worksheet.
    +     *
    +     * @return Worksheet
    +     */
    +    public function getParent()
    +    {
    +        return $this->workSheet;
    +    }
    +
    +    /**
    +     * Set AutoFilter Parent Worksheet.
    +     *
    +     * @param Worksheet $pSheet
    +     *
    +     * @return AutoFilter
    +     */
    +    public function setParent(Worksheet $pSheet = null)
    +    {
    +        $this->workSheet = $pSheet;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get AutoFilter Range.
    +     *
    +     * @return string
    +     */
    +    public function getRange()
    +    {
    +        return $this->range;
    +    }
    +
    +    /**
    +     * Set AutoFilter Range.
    +     *
    +     * @param string $pRange Cell range (i.e. A1:E10)
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return AutoFilter
    +     */
    +    public function setRange($pRange)
    +    {
    +        // extract coordinate
    +        list($worksheet, $pRange) = Worksheet::extractSheetTitle($pRange, true);
    +
    +        if (strpos($pRange, ':') !== false) {
    +            $this->range = $pRange;
    +        } elseif (empty($pRange)) {
    +            $this->range = '';
    +        } else {
    +            throw new PhpSpreadsheetException('Autofilter must be set on a range of cells.');
    +        }
    +
    +        if (empty($pRange)) {
    +            //    Discard all column rules
    +            $this->columns = [];
    +        } else {
    +            //    Discard any column rules that are no longer valid within this range
    +            list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($this->range);
    +            foreach ($this->columns as $key => $value) {
    +                $colIndex = Coordinate::columnIndexFromString($key);
    +                if (($rangeStart[0] > $colIndex) || ($rangeEnd[0] < $colIndex)) {
    +                    unset($this->columns[$key]);
    +                }
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get all AutoFilter Columns.
    +     *
    +     * @return AutoFilter\Column[]
    +     */
    +    public function getColumns()
    +    {
    +        return $this->columns;
    +    }
    +
    +    /**
    +     * Validate that the specified column is in the AutoFilter range.
    +     *
    +     * @param string $column Column name (e.g. A)
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return int The column offset within the autofilter range
    +     */
    +    public function testColumnInRange($column)
    +    {
    +        if (empty($this->range)) {
    +            throw new PhpSpreadsheetException('No autofilter range is defined.');
    +        }
    +
    +        $columnIndex = Coordinate::columnIndexFromString($column);
    +        list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($this->range);
    +        if (($rangeStart[0] > $columnIndex) || ($rangeEnd[0] < $columnIndex)) {
    +            throw new PhpSpreadsheetException('Column is outside of current autofilter range.');
    +        }
    +
    +        return $columnIndex - $rangeStart[0];
    +    }
    +
    +    /**
    +     * Get a specified AutoFilter Column Offset within the defined AutoFilter range.
    +     *
    +     * @param string $pColumn Column name (e.g. A)
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return int The offset of the specified column within the autofilter range
    +     */
    +    public function getColumnOffset($pColumn)
    +    {
    +        return $this->testColumnInRange($pColumn);
    +    }
    +
    +    /**
    +     * Get a specified AutoFilter Column.
    +     *
    +     * @param string $pColumn Column name (e.g. A)
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return AutoFilter\Column
    +     */
    +    public function getColumn($pColumn)
    +    {
    +        $this->testColumnInRange($pColumn);
    +
    +        if (!isset($this->columns[$pColumn])) {
    +            $this->columns[$pColumn] = new AutoFilter\Column($pColumn, $this);
    +        }
    +
    +        return $this->columns[$pColumn];
    +    }
    +
    +    /**
    +     * Get a specified AutoFilter Column by it's offset.
    +     *
    +     * @param int $pColumnOffset Column offset within range (starting from 0)
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return AutoFilter\Column
    +     */
    +    public function getColumnByOffset($pColumnOffset)
    +    {
    +        list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($this->range);
    +        $pColumn = Coordinate::stringFromColumnIndex($rangeStart[0] + $pColumnOffset);
    +
    +        return $this->getColumn($pColumn);
    +    }
    +
    +    /**
    +     * Set AutoFilter.
    +     *
    +     * @param AutoFilter\Column|string $pColumn
    +     *            A simple string containing a Column ID like 'A' is permitted
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return AutoFilter
    +     */
    +    public function setColumn($pColumn)
    +    {
    +        if ((is_string($pColumn)) && (!empty($pColumn))) {
    +            $column = $pColumn;
    +        } elseif (is_object($pColumn) && ($pColumn instanceof AutoFilter\Column)) {
    +            $column = $pColumn->getColumnIndex();
    +        } else {
    +            throw new PhpSpreadsheetException('Column is not within the autofilter range.');
    +        }
    +        $this->testColumnInRange($column);
    +
    +        if (is_string($pColumn)) {
    +            $this->columns[$pColumn] = new AutoFilter\Column($pColumn, $this);
    +        } elseif (is_object($pColumn) && ($pColumn instanceof AutoFilter\Column)) {
    +            $pColumn->setParent($this);
    +            $this->columns[$column] = $pColumn;
    +        }
    +        ksort($this->columns);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Clear a specified AutoFilter Column.
    +     *
    +     * @param string $pColumn Column name (e.g. A)
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return AutoFilter
    +     */
    +    public function clearColumn($pColumn)
    +    {
    +        $this->testColumnInRange($pColumn);
    +
    +        if (isset($this->columns[$pColumn])) {
    +            unset($this->columns[$pColumn]);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Shift an AutoFilter Column Rule to a different column.
    +     *
    +     * Note: This method bypasses validation of the destination column to ensure it is within this AutoFilter range.
    +     *        Nor does it verify whether any column rule already exists at $toColumn, but will simply override any existing value.
    +     *        Use with caution.
    +     *
    +     * @param string $fromColumn Column name (e.g. A)
    +     * @param string $toColumn Column name (e.g. B)
    +     *
    +     * @return AutoFilter
    +     */
    +    public function shiftColumn($fromColumn, $toColumn)
    +    {
    +        $fromColumn = strtoupper($fromColumn);
    +        $toColumn = strtoupper($toColumn);
    +
    +        if (($fromColumn !== null) && (isset($this->columns[$fromColumn])) && ($toColumn !== null)) {
    +            $this->columns[$fromColumn]->setParent();
    +            $this->columns[$fromColumn]->setColumnIndex($toColumn);
    +            $this->columns[$toColumn] = $this->columns[$fromColumn];
    +            $this->columns[$toColumn]->setParent($this);
    +            unset($this->columns[$fromColumn]);
    +
    +            ksort($this->columns);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Test if cell value is in the defined set of values.
    +     *
    +     * @param mixed $cellValue
    +     * @param mixed[] $dataSet
    +     *
    +     * @return bool
    +     */
    +    private static function filterTestInSimpleDataSet($cellValue, $dataSet)
    +    {
    +        $dataSetValues = $dataSet['filterValues'];
    +        $blanks = $dataSet['blanks'];
    +        if (($cellValue == '') || ($cellValue === null)) {
    +            return $blanks;
    +        }
    +
    +        return in_array($cellValue, $dataSetValues);
    +    }
    +
    +    /**
    +     * Test if cell value is in the defined set of Excel date values.
    +     *
    +     * @param mixed $cellValue
    +     * @param mixed[] $dataSet
    +     *
    +     * @return bool
    +     */
    +    private static function filterTestInDateGroupSet($cellValue, $dataSet)
    +    {
    +        $dateSet = $dataSet['filterValues'];
    +        $blanks = $dataSet['blanks'];
    +        if (($cellValue == '') || ($cellValue === null)) {
    +            return $blanks;
    +        }
    +
    +        if (is_numeric($cellValue)) {
    +            $dateValue = Date::excelToTimestamp($cellValue);
    +            if ($cellValue < 1) {
    +                //    Just the time part
    +                $dtVal = date('His', $dateValue);
    +                $dateSet = $dateSet['time'];
    +            } elseif ($cellValue == floor($cellValue)) {
    +                //    Just the date part
    +                $dtVal = date('Ymd', $dateValue);
    +                $dateSet = $dateSet['date'];
    +            } else {
    +                //    date and time parts
    +                $dtVal = date('YmdHis', $dateValue);
    +                $dateSet = $dateSet['dateTime'];
    +            }
    +            foreach ($dateSet as $dateValue) {
    +                //    Use of substr to extract value at the appropriate group level
    +                if (substr($dtVal, 0, strlen($dateValue)) == $dateValue) {
    +                    return true;
    +                }
    +            }
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Test if cell value is within a set of values defined by a ruleset.
    +     *
    +     * @param mixed $cellValue
    +     * @param mixed[] $ruleSet
    +     *
    +     * @return bool
    +     */
    +    private static function filterTestInCustomDataSet($cellValue, $ruleSet)
    +    {
    +        $dataSet = $ruleSet['filterRules'];
    +        $join = $ruleSet['join'];
    +        $customRuleForBlanks = isset($ruleSet['customRuleForBlanks']) ? $ruleSet['customRuleForBlanks'] : false;
    +
    +        if (!$customRuleForBlanks) {
    +            //    Blank cells are always ignored, so return a FALSE
    +            if (($cellValue == '') || ($cellValue === null)) {
    +                return false;
    +            }
    +        }
    +        $returnVal = ($join == AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND);
    +        foreach ($dataSet as $rule) {
    +            $retVal = false;
    +
    +            if (is_numeric($rule['value'])) {
    +                //    Numeric values are tested using the appropriate operator
    +                switch ($rule['operator']) {
    +                    case AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL:
    +                        $retVal = ($cellValue == $rule['value']);
    +
    +                        break;
    +                    case AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_NOTEQUAL:
    +                        $retVal = ($cellValue != $rule['value']);
    +
    +                        break;
    +                    case AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHAN:
    +                        $retVal = ($cellValue > $rule['value']);
    +
    +                        break;
    +                    case AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL:
    +                        $retVal = ($cellValue >= $rule['value']);
    +
    +                        break;
    +                    case AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN:
    +                        $retVal = ($cellValue < $rule['value']);
    +
    +                        break;
    +                    case AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL:
    +                        $retVal = ($cellValue <= $rule['value']);
    +
    +                        break;
    +                }
    +            } elseif ($rule['value'] == '') {
    +                switch ($rule['operator']) {
    +                    case AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL:
    +                        $retVal = (($cellValue == '') || ($cellValue === null));
    +
    +                        break;
    +                    case AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_NOTEQUAL:
    +                        $retVal = (($cellValue != '') && ($cellValue !== null));
    +
    +                        break;
    +                    default:
    +                        $retVal = true;
    +
    +                        break;
    +                }
    +            } else {
    +                //    String values are always tested for equality, factoring in for wildcards (hence a regexp test)
    +                $retVal = preg_match('/^' . $rule['value'] . '$/i', $cellValue);
    +            }
    +            //    If there are multiple conditions, then we need to test both using the appropriate join operator
    +            switch ($join) {
    +                case AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_OR:
    +                    $returnVal = $returnVal || $retVal;
    +                    //    Break as soon as we have a TRUE match for OR joins,
    +                    //        to avoid unnecessary additional code execution
    +                    if ($returnVal) {
    +                        return $returnVal;
    +                    }
    +
    +                    break;
    +                case AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND:
    +                    $returnVal = $returnVal && $retVal;
    +
    +                    break;
    +            }
    +        }
    +
    +        return $returnVal;
    +    }
    +
    +    /**
    +     * Test if cell date value is matches a set of values defined by a set of months.
    +     *
    +     * @param mixed $cellValue
    +     * @param mixed[] $monthSet
    +     *
    +     * @return bool
    +     */
    +    private static function filterTestInPeriodDateSet($cellValue, $monthSet)
    +    {
    +        //    Blank cells are always ignored, so return a FALSE
    +        if (($cellValue == '') || ($cellValue === null)) {
    +            return false;
    +        }
    +
    +        if (is_numeric($cellValue)) {
    +            $dateValue = date('m', Date::excelToTimestamp($cellValue));
    +            if (in_array($dateValue, $monthSet)) {
    +                return true;
    +            }
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Search/Replace arrays to convert Excel wildcard syntax to a regexp syntax for preg_matching.
    +     *
    +     * @var array
    +     */
    +    private static $fromReplace = ['\*', '\?', '~~', '~.*', '~.?'];
    +
    +    private static $toReplace = ['.*', '.', '~', '\*', '\?'];
    +
    +    /**
    +     * Convert a dynamic rule daterange to a custom filter range expression for ease of calculation.
    +     *
    +     * @param string $dynamicRuleType
    +     * @param AutoFilter\Column $filterColumn
    +     *
    +     * @return mixed[]
    +     */
    +    private function dynamicFilterDateRange($dynamicRuleType, &$filterColumn)
    +    {
    +        $rDateType = Functions::getReturnDateType();
    +        Functions::setReturnDateType(Functions::RETURNDATE_PHP_NUMERIC);
    +        $val = $maxVal = null;
    +
    +        $ruleValues = [];
    +        $baseDate = DateTime::DATENOW();
    +        //    Calculate start/end dates for the required date range based on current date
    +        switch ($dynamicRuleType) {
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK:
    +                $baseDate = strtotime('-7 days', $baseDate);
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK:
    +                $baseDate = strtotime('-7 days', $baseDate);
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH:
    +                $baseDate = strtotime('-1 month', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate)));
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH:
    +                $baseDate = strtotime('+1 month', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate)));
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER:
    +                $baseDate = strtotime('-3 month', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate)));
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER:
    +                $baseDate = strtotime('+3 month', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate)));
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR:
    +                $baseDate = strtotime('-1 year', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate)));
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR:
    +                $baseDate = strtotime('+1 year', gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate)));
    +
    +                break;
    +        }
    +
    +        switch ($dynamicRuleType) {
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_TODAY:
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY:
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW:
    +                $maxVal = (int) Date::PHPtoExcel(strtotime('+1 day', $baseDate));
    +                $val = (int) Date::PHPToExcel($baseDate);
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE:
    +                $maxVal = (int) Date::PHPtoExcel(strtotime('+1 day', $baseDate));
    +                $val = (int) Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1, date('Y', $baseDate)));
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR:
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR:
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR:
    +                $maxVal = (int) Date::PHPToExcel(gmmktime(0, 0, 0, 31, 12, date('Y', $baseDate)));
    +                ++$maxVal;
    +                $val = (int) Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1, date('Y', $baseDate)));
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER:
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER:
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER:
    +                $thisMonth = date('m', $baseDate);
    +                $thisQuarter = floor(--$thisMonth / 3);
    +                $maxVal = (int) Date::PHPtoExcel(gmmktime(0, 0, 0, date('t', $baseDate), (1 + $thisQuarter) * 3, date('Y', $baseDate)));
    +                ++$maxVal;
    +                $val = (int) Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1 + $thisQuarter * 3, date('Y', $baseDate)));
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH:
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH:
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH:
    +                $maxVal = (int) Date::PHPtoExcel(gmmktime(0, 0, 0, date('t', $baseDate), date('m', $baseDate), date('Y', $baseDate)));
    +                ++$maxVal;
    +                $val = (int) Date::PHPToExcel(gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate)));
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK:
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK:
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK:
    +                $dayOfWeek = date('w', $baseDate);
    +                $val = (int) Date::PHPToExcel($baseDate) - $dayOfWeek;
    +                $maxVal = $val + 7;
    +
    +                break;
    +        }
    +
    +        switch ($dynamicRuleType) {
    +            //    Adjust Today dates for Yesterday and Tomorrow
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY:
    +                --$maxVal;
    +                --$val;
    +
    +                break;
    +            case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW:
    +                ++$maxVal;
    +                ++$val;
    +
    +                break;
    +        }
    +
    +        //    Set the filter column rule attributes ready for writing
    +        $filterColumn->setAttributes(['val' => $val, 'maxVal' => $maxVal]);
    +
    +        //    Set the rules for identifying rows for hide/show
    +        $ruleValues[] = ['operator' => AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, 'value' => $val];
    +        $ruleValues[] = ['operator' => AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN, 'value' => $maxVal];
    +        Functions::setReturnDateType($rDateType);
    +
    +        return ['method' => 'filterTestInCustomDataSet', 'arguments' => ['filterRules' => $ruleValues, 'join' => AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND]];
    +    }
    +
    +    private function calculateTopTenValue($columnID, $startRow, $endRow, $ruleType, $ruleValue)
    +    {
    +        $range = $columnID . $startRow . ':' . $columnID . $endRow;
    +        $dataValues = Functions::flattenArray($this->workSheet->rangeToArray($range, null, true, false));
    +
    +        $dataValues = array_filter($dataValues);
    +        if ($ruleType == AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) {
    +            rsort($dataValues);
    +        } else {
    +            sort($dataValues);
    +        }
    +
    +        return array_pop(array_slice($dataValues, 0, $ruleValue));
    +    }
    +
    +    /**
    +     * Apply the AutoFilter rules to the AutoFilter Range.
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return AutoFilter
    +     */
    +    public function showHideRows()
    +    {
    +        list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($this->range);
    +
    +        //    The heading row should always be visible
    +        $this->workSheet->getRowDimension($rangeStart[1])->setVisible(true);
    +
    +        $columnFilterTests = [];
    +        foreach ($this->columns as $columnID => $filterColumn) {
    +            $rules = $filterColumn->getRules();
    +            switch ($filterColumn->getFilterType()) {
    +                case AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER:
    +                    $ruleType = null;
    +                    $ruleValues = [];
    +                    //    Build a list of the filter value selections
    +                    foreach ($rules as $rule) {
    +                        $ruleType = $rule->getRuleType();
    +                        $ruleValues[] = $rule->getValue();
    +                    }
    +                    //    Test if we want to include blanks in our filter criteria
    +                    $blanks = false;
    +                    $ruleDataSet = array_filter($ruleValues);
    +                    if (count($ruleValues) != count($ruleDataSet)) {
    +                        $blanks = true;
    +                    }
    +                    if ($ruleType == AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_FILTER) {
    +                        //    Filter on absolute values
    +                        $columnFilterTests[$columnID] = [
    +                            'method' => 'filterTestInSimpleDataSet',
    +                            'arguments' => ['filterValues' => $ruleDataSet, 'blanks' => $blanks],
    +                        ];
    +                    } else {
    +                        //    Filter on date group values
    +                        $arguments = [
    +                            'date' => [],
    +                            'time' => [],
    +                            'dateTime' => [],
    +                        ];
    +                        foreach ($ruleDataSet as $ruleValue) {
    +                            $date = $time = '';
    +                            if ((isset($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR])) &&
    +                                ($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR] !== '')) {
    +                                $date .= sprintf('%04d', $ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_YEAR]);
    +                            }
    +                            if ((isset($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH])) &&
    +                                ($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH] != '')) {
    +                                $date .= sprintf('%02d', $ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH]);
    +                            }
    +                            if ((isset($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY])) &&
    +                                ($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY] !== '')) {
    +                                $date .= sprintf('%02d', $ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_DAY]);
    +                            }
    +                            if ((isset($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR])) &&
    +                                ($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR] !== '')) {
    +                                $time .= sprintf('%02d', $ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_HOUR]);
    +                            }
    +                            if ((isset($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE])) &&
    +                                ($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE] !== '')) {
    +                                $time .= sprintf('%02d', $ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE]);
    +                            }
    +                            if ((isset($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND])) &&
    +                                ($ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND] !== '')) {
    +                                $time .= sprintf('%02d', $ruleValue[AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP_SECOND]);
    +                            }
    +                            $dateTime = $date . $time;
    +                            $arguments['date'][] = $date;
    +                            $arguments['time'][] = $time;
    +                            $arguments['dateTime'][] = $dateTime;
    +                        }
    +                        //    Remove empty elements
    +                        $arguments['date'] = array_filter($arguments['date']);
    +                        $arguments['time'] = array_filter($arguments['time']);
    +                        $arguments['dateTime'] = array_filter($arguments['dateTime']);
    +                        $columnFilterTests[$columnID] = [
    +                            'method' => 'filterTestInDateGroupSet',
    +                            'arguments' => ['filterValues' => $arguments, 'blanks' => $blanks],
    +                        ];
    +                    }
    +
    +                    break;
    +                case AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER:
    +                    $customRuleForBlanks = false;
    +                    $ruleValues = [];
    +                    //    Build a list of the filter value selections
    +                    foreach ($rules as $rule) {
    +                        $ruleValue = $rule->getValue();
    +                        if (!is_numeric($ruleValue)) {
    +                            //    Convert to a regexp allowing for regexp reserved characters, wildcards and escaped wildcards
    +                            $ruleValue = preg_quote($ruleValue);
    +                            $ruleValue = str_replace(self::$fromReplace, self::$toReplace, $ruleValue);
    +                            if (trim($ruleValue) == '') {
    +                                $customRuleForBlanks = true;
    +                                $ruleValue = trim($ruleValue);
    +                            }
    +                        }
    +                        $ruleValues[] = ['operator' => $rule->getOperator(), 'value' => $ruleValue];
    +                    }
    +                    $join = $filterColumn->getJoin();
    +                    $columnFilterTests[$columnID] = [
    +                        'method' => 'filterTestInCustomDataSet',
    +                        'arguments' => ['filterRules' => $ruleValues, 'join' => $join, 'customRuleForBlanks' => $customRuleForBlanks],
    +                    ];
    +
    +                    break;
    +                case AutoFilter\Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER:
    +                    $ruleValues = [];
    +                    foreach ($rules as $rule) {
    +                        //    We should only ever have one Dynamic Filter Rule anyway
    +                        $dynamicRuleType = $rule->getGrouping();
    +                        if (($dynamicRuleType == AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE) ||
    +                            ($dynamicRuleType == AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_BELOWAVERAGE)) {
    +                            //    Number (Average) based
    +                            //    Calculate the average
    +                            $averageFormula = '=AVERAGE(' . $columnID . ($rangeStart[1] + 1) . ':' . $columnID . $rangeEnd[1] . ')';
    +                            $average = Calculation::getInstance()->calculateFormula($averageFormula, null, $this->workSheet->getCell('A1'));
    +                            //    Set above/below rule based on greaterThan or LessTan
    +                            $operator = ($dynamicRuleType === AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE)
    +                                ? AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHAN
    +                                : AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN;
    +                            $ruleValues[] = [
    +                                'operator' => $operator,
    +                                'value' => $average,
    +                            ];
    +                            $columnFilterTests[$columnID] = [
    +                                'method' => 'filterTestInCustomDataSet',
    +                                'arguments' => ['filterRules' => $ruleValues, 'join' => AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_OR],
    +                            ];
    +                        } else {
    +                            //    Date based
    +                            if ($dynamicRuleType[0] == 'M' || $dynamicRuleType[0] == 'Q') {
    +                                $periodType = '';
    +                                $period = 0;
    +                                //    Month or Quarter
    +                                sscanf($dynamicRuleType, '%[A-Z]%d', $periodType, $period);
    +                                if ($periodType == 'M') {
    +                                    $ruleValues = [$period];
    +                                } else {
    +                                    --$period;
    +                                    $periodEnd = (1 + $period) * 3;
    +                                    $periodStart = 1 + $period * 3;
    +                                    $ruleValues = range($periodStart, $periodEnd);
    +                                }
    +                                $columnFilterTests[$columnID] = [
    +                                    'method' => 'filterTestInPeriodDateSet',
    +                                    'arguments' => $ruleValues,
    +                                ];
    +                                $filterColumn->setAttributes([]);
    +                            } else {
    +                                //    Date Range
    +                                $columnFilterTests[$columnID] = $this->dynamicFilterDateRange($dynamicRuleType, $filterColumn);
    +
    +                                break;
    +                            }
    +                        }
    +                    }
    +
    +                    break;
    +                case AutoFilter\Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER:
    +                    $ruleValues = [];
    +                    $dataRowCount = $rangeEnd[1] - $rangeStart[1];
    +                    foreach ($rules as $rule) {
    +                        //    We should only ever have one Dynamic Filter Rule anyway
    +                        $toptenRuleType = $rule->getGrouping();
    +                        $ruleValue = $rule->getValue();
    +                        $ruleOperator = $rule->getOperator();
    +                    }
    +                    if ($ruleOperator === AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT) {
    +                        $ruleValue = floor($ruleValue * ($dataRowCount / 100));
    +                    }
    +                    if ($ruleValue < 1) {
    +                        $ruleValue = 1;
    +                    }
    +                    if ($ruleValue > 500) {
    +                        $ruleValue = 500;
    +                    }
    +
    +                    $maxVal = $this->calculateTopTenValue($columnID, $rangeStart[1] + 1, $rangeEnd[1], $toptenRuleType, $ruleValue);
    +
    +                    $operator = ($toptenRuleType == AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP)
    +                        ? AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL
    +                        : AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL;
    +                    $ruleValues[] = ['operator' => $operator, 'value' => $maxVal];
    +                    $columnFilterTests[$columnID] = [
    +                        'method' => 'filterTestInCustomDataSet',
    +                        'arguments' => ['filterRules' => $ruleValues, 'join' => AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_OR],
    +                    ];
    +                    $filterColumn->setAttributes(['maxVal' => $maxVal]);
    +
    +                    break;
    +            }
    +        }
    +
    +        //    Execute the column tests for each row in the autoFilter range to determine show/hide,
    +        for ($row = $rangeStart[1] + 1; $row <= $rangeEnd[1]; ++$row) {
    +            $result = true;
    +            foreach ($columnFilterTests as $columnID => $columnFilterTest) {
    +                $cellValue = $this->workSheet->getCell($columnID . $row)->getCalculatedValue();
    +                //    Execute the filter test
    +                $result = $result &&
    +                    call_user_func_array(
    +                        [self::class, $columnFilterTest['method']],
    +                        [$cellValue, $columnFilterTest['arguments']]
    +                    );
    +                //    If filter test has resulted in FALSE, exit the loop straightaway rather than running any more tests
    +                if (!$result) {
    +                    break;
    +                }
    +            }
    +            //    Set show/hide for the row based on the result of the autoFilter result
    +            $this->workSheet->getRowDimension($row)->setVisible($result);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                if ($key === 'workSheet') {
    +                    //    Detach from worksheet
    +                    $this->{$key} = null;
    +                } else {
    +                    $this->{$key} = clone $value;
    +                }
    +            } elseif ((is_array($value)) && ($key == 'columns')) {
    +                //    The columns array of \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet\AutoFilter objects
    +                $this->{$key} = [];
    +                foreach ($value as $k => $v) {
    +                    $this->{$key}[$k] = clone $v;
    +                    // attach the new cloned Column to this new cloned Autofilter object
    +                    $this->{$key}[$k]->setParent($this);
    +                }
    +            } else {
    +                $this->{$key} = $value;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * toString method replicates previous behavior by returning the range if object is
    +     * referenced as a property of its parent.
    +     */
    +    public function __toString()
    +    {
    +        return (string) $this->range;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/AutoFilter/Column.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/AutoFilter/Column.php
    new file mode 100644
    index 00000000000..b5ab61e9713
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/AutoFilter/Column.php
    @@ -0,0 +1,388 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +use PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter;
    +
    +class Column
    +{
    +    const AUTOFILTER_FILTERTYPE_FILTER = 'filters';
    +    const AUTOFILTER_FILTERTYPE_CUSTOMFILTER = 'customFilters';
    +    //    Supports no more than 2 rules, with an And/Or join criteria
    +    //        if more than 1 rule is defined
    +    const AUTOFILTER_FILTERTYPE_DYNAMICFILTER = 'dynamicFilter';
    +    //    Even though the filter rule is constant, the filtered data can vary
    +    //        e.g. filtered by date = TODAY
    +    const AUTOFILTER_FILTERTYPE_TOPTENFILTER = 'top10';
    +
    +    /**
    +     * Types of autofilter rules.
    +     *
    +     * @var string[]
    +     */
    +    private static $filterTypes = [
    +        //    Currently we're not handling
    +        //        colorFilter
    +        //        extLst
    +        //        iconFilter
    +        self::AUTOFILTER_FILTERTYPE_FILTER,
    +        self::AUTOFILTER_FILTERTYPE_CUSTOMFILTER,
    +        self::AUTOFILTER_FILTERTYPE_DYNAMICFILTER,
    +        self::AUTOFILTER_FILTERTYPE_TOPTENFILTER,
    +    ];
    +
    +    // Multiple Rule Connections
    +    const AUTOFILTER_COLUMN_JOIN_AND = 'and';
    +    const AUTOFILTER_COLUMN_JOIN_OR = 'or';
    +
    +    /**
    +     * Join options for autofilter rules.
    +     *
    +     * @var string[]
    +     */
    +    private static $ruleJoins = [
    +        self::AUTOFILTER_COLUMN_JOIN_AND,
    +        self::AUTOFILTER_COLUMN_JOIN_OR,
    +    ];
    +
    +    /**
    +     * Autofilter.
    +     *
    +     * @var AutoFilter
    +     */
    +    private $parent;
    +
    +    /**
    +     * Autofilter Column Index.
    +     *
    +     * @var string
    +     */
    +    private $columnIndex = '';
    +
    +    /**
    +     * Autofilter Column Filter Type.
    +     *
    +     * @var string
    +     */
    +    private $filterType = self::AUTOFILTER_FILTERTYPE_FILTER;
    +
    +    /**
    +     * Autofilter Multiple Rules And/Or.
    +     *
    +     * @var string
    +     */
    +    private $join = self::AUTOFILTER_COLUMN_JOIN_OR;
    +
    +    /**
    +     * Autofilter Column Rules.
    +     *
    +     * @var array of Column\Rule
    +     */
    +    private $ruleset = [];
    +
    +    /**
    +     * Autofilter Column Dynamic Attributes.
    +     *
    +     * @var array of mixed
    +     */
    +    private $attributes = [];
    +
    +    /**
    +     * Create a new Column.
    +     *
    +     * @param string $pColumn Column (e.g. A)
    +     * @param AutoFilter $pParent Autofilter for this column
    +     */
    +    public function __construct($pColumn, AutoFilter $pParent = null)
    +    {
    +        $this->columnIndex = $pColumn;
    +        $this->parent = $pParent;
    +    }
    +
    +    /**
    +     * Get AutoFilter Column Index.
    +     *
    +     * @return string
    +     */
    +    public function getColumnIndex()
    +    {
    +        return $this->columnIndex;
    +    }
    +
    +    /**
    +     * Set AutoFilter Column Index.
    +     *
    +     * @param string $pColumn Column (e.g. A)
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Column
    +     */
    +    public function setColumnIndex($pColumn)
    +    {
    +        // Uppercase coordinate
    +        $pColumn = strtoupper($pColumn);
    +        if ($this->parent !== null) {
    +            $this->parent->testColumnInRange($pColumn);
    +        }
    +
    +        $this->columnIndex = $pColumn;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get this Column's AutoFilter Parent.
    +     *
    +     * @return AutoFilter
    +     */
    +    public function getParent()
    +    {
    +        return $this->parent;
    +    }
    +
    +    /**
    +     * Set this Column's AutoFilter Parent.
    +     *
    +     * @param AutoFilter $pParent
    +     *
    +     * @return Column
    +     */
    +    public function setParent(AutoFilter $pParent = null)
    +    {
    +        $this->parent = $pParent;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get AutoFilter Type.
    +     *
    +     * @return string
    +     */
    +    public function getFilterType()
    +    {
    +        return $this->filterType;
    +    }
    +
    +    /**
    +     * Set AutoFilter Type.
    +     *
    +     * @param string $pFilterType
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Column
    +     */
    +    public function setFilterType($pFilterType)
    +    {
    +        if (!in_array($pFilterType, self::$filterTypes)) {
    +            throw new PhpSpreadsheetException('Invalid filter type for column AutoFilter.');
    +        }
    +
    +        $this->filterType = $pFilterType;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get AutoFilter Multiple Rules And/Or Join.
    +     *
    +     * @return string
    +     */
    +    public function getJoin()
    +    {
    +        return $this->join;
    +    }
    +
    +    /**
    +     * Set AutoFilter Multiple Rules And/Or.
    +     *
    +     * @param string $pJoin And/Or
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Column
    +     */
    +    public function setJoin($pJoin)
    +    {
    +        // Lowercase And/Or
    +        $pJoin = strtolower($pJoin);
    +        if (!in_array($pJoin, self::$ruleJoins)) {
    +            throw new PhpSpreadsheetException('Invalid rule connection for column AutoFilter.');
    +        }
    +
    +        $this->join = $pJoin;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set AutoFilter Attributes.
    +     *
    +     * @param string[] $attributes
    +     *
    +     * @return Column
    +     */
    +    public function setAttributes(array $attributes)
    +    {
    +        $this->attributes = $attributes;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set An AutoFilter Attribute.
    +     *
    +     * @param string $pName Attribute Name
    +     * @param string $pValue Attribute Value
    +     *
    +     * @return Column
    +     */
    +    public function setAttribute($pName, $pValue)
    +    {
    +        $this->attributes[$pName] = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get AutoFilter Column Attributes.
    +     *
    +     * @return string[]
    +     */
    +    public function getAttributes()
    +    {
    +        return $this->attributes;
    +    }
    +
    +    /**
    +     * Get specific AutoFilter Column Attribute.
    +     *
    +     * @param string $pName Attribute Name
    +     *
    +     * @return string
    +     */
    +    public function getAttribute($pName)
    +    {
    +        if (isset($this->attributes[$pName])) {
    +            return $this->attributes[$pName];
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Get all AutoFilter Column Rules.
    +     *
    +     * @return Column\Rule[]
    +     */
    +    public function getRules()
    +    {
    +        return $this->ruleset;
    +    }
    +
    +    /**
    +     * Get a specified AutoFilter Column Rule.
    +     *
    +     * @param int $pIndex Rule index in the ruleset array
    +     *
    +     * @return Column\Rule
    +     */
    +    public function getRule($pIndex)
    +    {
    +        if (!isset($this->ruleset[$pIndex])) {
    +            $this->ruleset[$pIndex] = new Column\Rule($this);
    +        }
    +
    +        return $this->ruleset[$pIndex];
    +    }
    +
    +    /**
    +     * Create a new AutoFilter Column Rule in the ruleset.
    +     *
    +     * @return Column\Rule
    +     */
    +    public function createRule()
    +    {
    +        $this->ruleset[] = new Column\Rule($this);
    +
    +        return end($this->ruleset);
    +    }
    +
    +    /**
    +     * Add a new AutoFilter Column Rule to the ruleset.
    +     *
    +     * @param Column\Rule $pRule
    +     *
    +     * @return Column
    +     */
    +    public function addRule(Column\Rule $pRule)
    +    {
    +        $pRule->setParent($this);
    +        $this->ruleset[] = $pRule;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Delete a specified AutoFilter Column Rule
    +     * If the number of rules is reduced to 1, then we reset And/Or logic to Or.
    +     *
    +     * @param int $pIndex Rule index in the ruleset array
    +     *
    +     * @return Column
    +     */
    +    public function deleteRule($pIndex)
    +    {
    +        if (isset($this->ruleset[$pIndex])) {
    +            unset($this->ruleset[$pIndex]);
    +            //    If we've just deleted down to a single rule, then reset And/Or joining to Or
    +            if (count($this->ruleset) <= 1) {
    +                $this->setJoin(self::AUTOFILTER_COLUMN_JOIN_OR);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Delete all AutoFilter Column Rules.
    +     *
    +     * @return Column
    +     */
    +    public function clearRules()
    +    {
    +        $this->ruleset = [];
    +        $this->setJoin(self::AUTOFILTER_COLUMN_JOIN_OR);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if ($key === 'parent') {
    +                // Detach from autofilter parent
    +                $this->parent = null;
    +            } elseif ($key === 'ruleset') {
    +                // The columns array of \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet\AutoFilter objects
    +                $this->ruleset = [];
    +                foreach ($value as $k => $v) {
    +                    $cloned = clone $v;
    +                    $cloned->setParent($this); // attach the new cloned Rule to this new cloned Autofilter Cloned object
    +                    $this->ruleset[$k] = $cloned;
    +                }
    +            } elseif (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php
    new file mode 100644
    index 00000000000..450bccdb6ac
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php
    @@ -0,0 +1,455 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +use PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column;
    +
    +class Rule
    +{
    +    const AUTOFILTER_RULETYPE_FILTER = 'filter';
    +    const AUTOFILTER_RULETYPE_DATEGROUP = 'dateGroupItem';
    +    const AUTOFILTER_RULETYPE_CUSTOMFILTER = 'customFilter';
    +    const AUTOFILTER_RULETYPE_DYNAMICFILTER = 'dynamicFilter';
    +    const AUTOFILTER_RULETYPE_TOPTENFILTER = 'top10Filter';
    +
    +    private static $ruleTypes = [
    +        //    Currently we're not handling
    +        //        colorFilter
    +        //        extLst
    +        //        iconFilter
    +        self::AUTOFILTER_RULETYPE_FILTER,
    +        self::AUTOFILTER_RULETYPE_DATEGROUP,
    +        self::AUTOFILTER_RULETYPE_CUSTOMFILTER,
    +        self::AUTOFILTER_RULETYPE_DYNAMICFILTER,
    +        self::AUTOFILTER_RULETYPE_TOPTENFILTER,
    +    ];
    +
    +    const AUTOFILTER_RULETYPE_DATEGROUP_YEAR = 'year';
    +    const AUTOFILTER_RULETYPE_DATEGROUP_MONTH = 'month';
    +    const AUTOFILTER_RULETYPE_DATEGROUP_DAY = 'day';
    +    const AUTOFILTER_RULETYPE_DATEGROUP_HOUR = 'hour';
    +    const AUTOFILTER_RULETYPE_DATEGROUP_MINUTE = 'minute';
    +    const AUTOFILTER_RULETYPE_DATEGROUP_SECOND = 'second';
    +
    +    private static $dateTimeGroups = [
    +        self::AUTOFILTER_RULETYPE_DATEGROUP_YEAR,
    +        self::AUTOFILTER_RULETYPE_DATEGROUP_MONTH,
    +        self::AUTOFILTER_RULETYPE_DATEGROUP_DAY,
    +        self::AUTOFILTER_RULETYPE_DATEGROUP_HOUR,
    +        self::AUTOFILTER_RULETYPE_DATEGROUP_MINUTE,
    +        self::AUTOFILTER_RULETYPE_DATEGROUP_SECOND,
    +    ];
    +
    +    const AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY = 'yesterday';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_TODAY = 'today';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW = 'tomorrow';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE = 'yearToDate';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR = 'thisYear';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER = 'thisQuarter';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH = 'thisMonth';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK = 'thisWeek';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR = 'lastYear';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER = 'lastQuarter';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH = 'lastMonth';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK = 'lastWeek';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR = 'nextYear';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER = 'nextQuarter';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH = 'nextMonth';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK = 'nextWeek';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_1 = 'M1';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_JANUARY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_1;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_2 = 'M2';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_FEBRUARY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_2;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_3 = 'M3';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MARCH = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_3;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_4 = 'M4';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_APRIL = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_4;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_5 = 'M5';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MAY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_5;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_6 = 'M6';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_JUNE = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_6;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_7 = 'M7';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_JULY = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_7;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_8 = 'M8';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_AUGUST = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_8;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_9 = 'M9';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_SEPTEMBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_9;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_10 = 'M10';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_OCTOBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_10;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_11 = 'M11';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_NOVEMBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_11;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_12 = 'M12';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_DECEMBER = self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_12;
    +    const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_1 = 'Q1';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_2 = 'Q2';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_3 = 'Q3';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_4 = 'Q4';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE = 'aboveAverage';
    +    const AUTOFILTER_RULETYPE_DYNAMIC_BELOWAVERAGE = 'belowAverage';
    +
    +    private static $dynamicTypes = [
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_TODAY,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_1,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_2,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_3,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_4,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_5,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_6,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_7,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_8,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_9,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_10,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_11,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_MONTH_12,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_1,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_2,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_3,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_4,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE,
    +        self::AUTOFILTER_RULETYPE_DYNAMIC_BELOWAVERAGE,
    +    ];
    +
    +    /*
    +     *    The only valid filter rule operators for filter and customFilter types are:
    +     *        <xsd:enumeration value="equal"/>
    +     *        <xsd:enumeration value="lessThan"/>
    +     *        <xsd:enumeration value="lessThanOrEqual"/>
    +     *        <xsd:enumeration value="notEqual"/>
    +     *        <xsd:enumeration value="greaterThanOrEqual"/>
    +     *        <xsd:enumeration value="greaterThan"/>
    +     */
    +    const AUTOFILTER_COLUMN_RULE_EQUAL = 'equal';
    +    const AUTOFILTER_COLUMN_RULE_NOTEQUAL = 'notEqual';
    +    const AUTOFILTER_COLUMN_RULE_GREATERTHAN = 'greaterThan';
    +    const AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL = 'greaterThanOrEqual';
    +    const AUTOFILTER_COLUMN_RULE_LESSTHAN = 'lessThan';
    +    const AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL = 'lessThanOrEqual';
    +
    +    private static $operators = [
    +        self::AUTOFILTER_COLUMN_RULE_EQUAL,
    +        self::AUTOFILTER_COLUMN_RULE_NOTEQUAL,
    +        self::AUTOFILTER_COLUMN_RULE_GREATERTHAN,
    +        self::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL,
    +        self::AUTOFILTER_COLUMN_RULE_LESSTHAN,
    +        self::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL,
    +    ];
    +
    +    const AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE = 'byValue';
    +    const AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT = 'byPercent';
    +
    +    private static $topTenValue = [
    +        self::AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE,
    +        self::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT,
    +    ];
    +
    +    const AUTOFILTER_COLUMN_RULE_TOPTEN_TOP = 'top';
    +    const AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM = 'bottom';
    +
    +    private static $topTenType = [
    +        self::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP,
    +        self::AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM,
    +    ];
    +
    +    // Rule Operators (Numeric, Boolean etc)
    +//    const AUTOFILTER_COLUMN_RULE_BETWEEN            = 'between';        //    greaterThanOrEqual 1 && lessThanOrEqual 2
    +    // Rule Operators (Numeric Special) which are translated to standard numeric operators with calculated values
    +//    const AUTOFILTER_COLUMN_RULE_TOPTEN                = 'topTen';            //    greaterThan calculated value
    +//    const AUTOFILTER_COLUMN_RULE_TOPTENPERCENT        = 'topTenPercent';    //    greaterThan calculated value
    +//    const AUTOFILTER_COLUMN_RULE_ABOVEAVERAGE        = 'aboveAverage';    //    Value is calculated as the average
    +//    const AUTOFILTER_COLUMN_RULE_BELOWAVERAGE        = 'belowAverage';    //    Value is calculated as the average
    +    // Rule Operators (String) which are set as wild-carded values
    +//    const AUTOFILTER_COLUMN_RULE_BEGINSWITH            = 'beginsWith';            // A*
    +//    const AUTOFILTER_COLUMN_RULE_ENDSWITH            = 'endsWith';            // *Z
    +//    const AUTOFILTER_COLUMN_RULE_CONTAINS            = 'contains';            // *B*
    +//    const AUTOFILTER_COLUMN_RULE_DOESNTCONTAIN        = 'notEqual';            //    notEqual *B*
    +    // Rule Operators (Date Special) which are translated to standard numeric operators with calculated values
    +//    const AUTOFILTER_COLUMN_RULE_BEFORE                = 'lessThan';
    +//    const AUTOFILTER_COLUMN_RULE_AFTER                = 'greaterThan';
    +//    const AUTOFILTER_COLUMN_RULE_YESTERDAY            = 'yesterday';
    +//    const AUTOFILTER_COLUMN_RULE_TODAY                = 'today';
    +//    const AUTOFILTER_COLUMN_RULE_TOMORROW            = 'tomorrow';
    +//    const AUTOFILTER_COLUMN_RULE_LASTWEEK            = 'lastWeek';
    +//    const AUTOFILTER_COLUMN_RULE_THISWEEK            = 'thisWeek';
    +//    const AUTOFILTER_COLUMN_RULE_NEXTWEEK            = 'nextWeek';
    +//    const AUTOFILTER_COLUMN_RULE_LASTMONTH            = 'lastMonth';
    +//    const AUTOFILTER_COLUMN_RULE_THISMONTH            = 'thisMonth';
    +//    const AUTOFILTER_COLUMN_RULE_NEXTMONTH            = 'nextMonth';
    +//    const AUTOFILTER_COLUMN_RULE_LASTQUARTER        = 'lastQuarter';
    +//    const AUTOFILTER_COLUMN_RULE_THISQUARTER        = 'thisQuarter';
    +//    const AUTOFILTER_COLUMN_RULE_NEXTQUARTER        = 'nextQuarter';
    +//    const AUTOFILTER_COLUMN_RULE_LASTYEAR            = 'lastYear';
    +//    const AUTOFILTER_COLUMN_RULE_THISYEAR            = 'thisYear';
    +//    const AUTOFILTER_COLUMN_RULE_NEXTYEAR            = 'nextYear';
    +//    const AUTOFILTER_COLUMN_RULE_YEARTODATE            = 'yearToDate';            //    <dynamicFilter val="40909" type="yearToDate" maxVal="41113"/>
    +//    const AUTOFILTER_COLUMN_RULE_ALLDATESINMONTH    = 'allDatesInMonth';    //    <dynamicFilter type="M2"/> for Month/February
    +//    const AUTOFILTER_COLUMN_RULE_ALLDATESINQUARTER    = 'allDatesInQuarter';    //    <dynamicFilter type="Q2"/> for Quarter 2
    +
    +    /**
    +     * Autofilter Column.
    +     *
    +     * @var Column
    +     */
    +    private $parent;
    +
    +    /**
    +     * Autofilter Rule Type.
    +     *
    +     * @var string
    +     */
    +    private $ruleType = self::AUTOFILTER_RULETYPE_FILTER;
    +
    +    /**
    +     * Autofilter Rule Value.
    +     *
    +     * @var string
    +     */
    +    private $value = '';
    +
    +    /**
    +     * Autofilter Rule Operator.
    +     *
    +     * @var string
    +     */
    +    private $operator = self::AUTOFILTER_COLUMN_RULE_EQUAL;
    +
    +    /**
    +     * DateTimeGrouping Group Value.
    +     *
    +     * @var string
    +     */
    +    private $grouping = '';
    +
    +    /**
    +     * Create a new Rule.
    +     *
    +     * @param Column $pParent
    +     */
    +    public function __construct(Column $pParent = null)
    +    {
    +        $this->parent = $pParent;
    +    }
    +
    +    /**
    +     * Get AutoFilter Rule Type.
    +     *
    +     * @return string
    +     */
    +    public function getRuleType()
    +    {
    +        return $this->ruleType;
    +    }
    +
    +    /**
    +     * Set AutoFilter Rule Type.
    +     *
    +     * @param string $pRuleType see self::AUTOFILTER_RULETYPE_*
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Rule
    +     */
    +    public function setRuleType($pRuleType)
    +    {
    +        if (!in_array($pRuleType, self::$ruleTypes)) {
    +            throw new PhpSpreadsheetException('Invalid rule type for column AutoFilter Rule.');
    +        }
    +
    +        $this->ruleType = $pRuleType;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get AutoFilter Rule Value.
    +     *
    +     * @return string
    +     */
    +    public function getValue()
    +    {
    +        return $this->value;
    +    }
    +
    +    /**
    +     * Set AutoFilter Rule Value.
    +     *
    +     * @param string|string[] $pValue
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Rule
    +     */
    +    public function setValue($pValue)
    +    {
    +        if (is_array($pValue)) {
    +            $grouping = -1;
    +            foreach ($pValue as $key => $value) {
    +                //    Validate array entries
    +                if (!in_array($key, self::$dateTimeGroups)) {
    +                    //    Remove any invalid entries from the value array
    +                    unset($pValue[$key]);
    +                } else {
    +                    //    Work out what the dateTime grouping will be
    +                    $grouping = max($grouping, array_search($key, self::$dateTimeGroups));
    +                }
    +            }
    +            if (count($pValue) == 0) {
    +                throw new PhpSpreadsheetException('Invalid rule value for column AutoFilter Rule.');
    +            }
    +            //    Set the dateTime grouping that we've anticipated
    +            $this->setGrouping(self::$dateTimeGroups[$grouping]);
    +        }
    +        $this->value = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get AutoFilter Rule Operator.
    +     *
    +     * @return string
    +     */
    +    public function getOperator()
    +    {
    +        return $this->operator;
    +    }
    +
    +    /**
    +     * Set AutoFilter Rule Operator.
    +     *
    +     * @param string $pOperator see self::AUTOFILTER_COLUMN_RULE_*
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Rule
    +     */
    +    public function setOperator($pOperator)
    +    {
    +        if (empty($pOperator)) {
    +            $pOperator = self::AUTOFILTER_COLUMN_RULE_EQUAL;
    +        }
    +        if ((!in_array($pOperator, self::$operators)) &&
    +            (!in_array($pOperator, self::$topTenValue))) {
    +            throw new PhpSpreadsheetException('Invalid operator for column AutoFilter Rule.');
    +        }
    +        $this->operator = $pOperator;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get AutoFilter Rule Grouping.
    +     *
    +     * @return string
    +     */
    +    public function getGrouping()
    +    {
    +        return $this->grouping;
    +    }
    +
    +    /**
    +     * Set AutoFilter Rule Grouping.
    +     *
    +     * @param string $pGrouping
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Rule
    +     */
    +    public function setGrouping($pGrouping)
    +    {
    +        if (($pGrouping !== null) &&
    +            (!in_array($pGrouping, self::$dateTimeGroups)) &&
    +            (!in_array($pGrouping, self::$dynamicTypes)) &&
    +            (!in_array($pGrouping, self::$topTenType))) {
    +            throw new PhpSpreadsheetException('Invalid rule type for column AutoFilter Rule.');
    +        }
    +        $this->grouping = $pGrouping;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set AutoFilter Rule.
    +     *
    +     * @param string $pOperator see self::AUTOFILTER_COLUMN_RULE_*
    +     * @param string|string[] $pValue
    +     * @param string $pGrouping
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Rule
    +     */
    +    public function setRule($pOperator, $pValue, $pGrouping = null)
    +    {
    +        $this->setOperator($pOperator);
    +        $this->setValue($pValue);
    +        //  Only set grouping if it's been passed in as a user-supplied argument,
    +        //      otherwise we're calculating it when we setValue() and don't want to overwrite that
    +        //      If the user supplies an argumnet for grouping, then on their own head be it
    +        if ($pGrouping !== null) {
    +            $this->setGrouping($pGrouping);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get this Rule's AutoFilter Column Parent.
    +     *
    +     * @return Column
    +     */
    +    public function getParent()
    +    {
    +        return $this->parent;
    +    }
    +
    +    /**
    +     * Set this Rule's AutoFilter Column Parent.
    +     *
    +     * @param Column $pParent
    +     *
    +     * @return Rule
    +     */
    +    public function setParent(Column $pParent = null)
    +    {
    +        $this->parent = $pParent;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                if ($key == 'parent') {
    +                    //    Detach from autofilter column parent
    +                    $this->$key = null;
    +                } else {
    +                    $this->$key = clone $value;
    +                }
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/BaseDrawing.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/BaseDrawing.php
    new file mode 100644
    index 00000000000..98b689729e1
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/BaseDrawing.php
    @@ -0,0 +1,537 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Hyperlink;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +use PhpOffice\PhpSpreadsheet\IComparable;
    +
    +class BaseDrawing implements IComparable
    +{
    +    /**
    +     * Image counter.
    +     *
    +     * @var int
    +     */
    +    private static $imageCounter = 0;
    +
    +    /**
    +     * Image index.
    +     *
    +     * @var int
    +     */
    +    private $imageIndex = 0;
    +
    +    /**
    +     * Name.
    +     *
    +     * @var string
    +     */
    +    protected $name;
    +
    +    /**
    +     * Description.
    +     *
    +     * @var string
    +     */
    +    protected $description;
    +
    +    /**
    +     * Worksheet.
    +     *
    +     * @var Worksheet
    +     */
    +    protected $worksheet;
    +
    +    /**
    +     * Coordinates.
    +     *
    +     * @var string
    +     */
    +    protected $coordinates;
    +
    +    /**
    +     * Offset X.
    +     *
    +     * @var int
    +     */
    +    protected $offsetX;
    +
    +    /**
    +     * Offset Y.
    +     *
    +     * @var int
    +     */
    +    protected $offsetY;
    +
    +    /**
    +     * Width.
    +     *
    +     * @var int
    +     */
    +    protected $width;
    +
    +    /**
    +     * Height.
    +     *
    +     * @var int
    +     */
    +    protected $height;
    +
    +    /**
    +     * Proportional resize.
    +     *
    +     * @var bool
    +     */
    +    protected $resizeProportional;
    +
    +    /**
    +     * Rotation.
    +     *
    +     * @var int
    +     */
    +    protected $rotation;
    +
    +    /**
    +     * Shadow.
    +     *
    +     * @var Drawing\Shadow
    +     */
    +    protected $shadow;
    +
    +    /**
    +     * Image hyperlink.
    +     *
    +     * @var null|Hyperlink
    +     */
    +    private $hyperlink;
    +
    +    /**
    +     * Create a new BaseDrawing.
    +     */
    +    public function __construct()
    +    {
    +        // Initialise values
    +        $this->name = '';
    +        $this->description = '';
    +        $this->worksheet = null;
    +        $this->coordinates = 'A1';
    +        $this->offsetX = 0;
    +        $this->offsetY = 0;
    +        $this->width = 0;
    +        $this->height = 0;
    +        $this->resizeProportional = true;
    +        $this->rotation = 0;
    +        $this->shadow = new Drawing\Shadow();
    +
    +        // Set image index
    +        ++self::$imageCounter;
    +        $this->imageIndex = self::$imageCounter;
    +    }
    +
    +    /**
    +     * Get image index.
    +     *
    +     * @return int
    +     */
    +    public function getImageIndex()
    +    {
    +        return $this->imageIndex;
    +    }
    +
    +    /**
    +     * Get Name.
    +     *
    +     * @return string
    +     */
    +    public function getName()
    +    {
    +        return $this->name;
    +    }
    +
    +    /**
    +     * Set Name.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setName($pValue)
    +    {
    +        $this->name = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Description.
    +     *
    +     * @return string
    +     */
    +    public function getDescription()
    +    {
    +        return $this->description;
    +    }
    +
    +    /**
    +     * Set Description.
    +     *
    +     * @param string $description
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setDescription($description)
    +    {
    +        $this->description = $description;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Worksheet.
    +     *
    +     * @return Worksheet
    +     */
    +    public function getWorksheet()
    +    {
    +        return $this->worksheet;
    +    }
    +
    +    /**
    +     * Set Worksheet.
    +     *
    +     * @param Worksheet $pValue
    +     * @param bool $pOverrideOld If a Worksheet has already been assigned, overwrite it and remove image from old Worksheet?
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setWorksheet(Worksheet $pValue = null, $pOverrideOld = false)
    +    {
    +        if ($this->worksheet === null) {
    +            // Add drawing to \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet
    +            $this->worksheet = $pValue;
    +            $this->worksheet->getCell($this->coordinates);
    +            $this->worksheet->getDrawingCollection()->append($this);
    +        } else {
    +            if ($pOverrideOld) {
    +                // Remove drawing from old \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet
    +                $iterator = $this->worksheet->getDrawingCollection()->getIterator();
    +
    +                while ($iterator->valid()) {
    +                    if ($iterator->current()->getHashCode() == $this->getHashCode()) {
    +                        $this->worksheet->getDrawingCollection()->offsetUnset($iterator->key());
    +                        $this->worksheet = null;
    +
    +                        break;
    +                    }
    +                }
    +
    +                // Set new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet
    +                $this->setWorksheet($pValue);
    +            } else {
    +                throw new PhpSpreadsheetException('A Worksheet has already been assigned. Drawings can only exist on one \\PhpOffice\\PhpSpreadsheet\\Worksheet.');
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Coordinates.
    +     *
    +     * @return string
    +     */
    +    public function getCoordinates()
    +    {
    +        return $this->coordinates;
    +    }
    +
    +    /**
    +     * Set Coordinates.
    +     *
    +     * @param string $pValue eg: 'A1'
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setCoordinates($pValue)
    +    {
    +        $this->coordinates = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get OffsetX.
    +     *
    +     * @return int
    +     */
    +    public function getOffsetX()
    +    {
    +        return $this->offsetX;
    +    }
    +
    +    /**
    +     * Set OffsetX.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setOffsetX($pValue)
    +    {
    +        $this->offsetX = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get OffsetY.
    +     *
    +     * @return int
    +     */
    +    public function getOffsetY()
    +    {
    +        return $this->offsetY;
    +    }
    +
    +    /**
    +     * Set OffsetY.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setOffsetY($pValue)
    +    {
    +        $this->offsetY = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Width.
    +     *
    +     * @return int
    +     */
    +    public function getWidth()
    +    {
    +        return $this->width;
    +    }
    +
    +    /**
    +     * Set Width.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setWidth($pValue)
    +    {
    +        // Resize proportional?
    +        if ($this->resizeProportional && $pValue != 0) {
    +            $ratio = $this->height / ($this->width != 0 ? $this->width : 1);
    +            $this->height = round($ratio * $pValue);
    +        }
    +
    +        // Set width
    +        $this->width = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Height.
    +     *
    +     * @return int
    +     */
    +    public function getHeight()
    +    {
    +        return $this->height;
    +    }
    +
    +    /**
    +     * Set Height.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setHeight($pValue)
    +    {
    +        // Resize proportional?
    +        if ($this->resizeProportional && $pValue != 0) {
    +            $ratio = $this->width / ($this->height != 0 ? $this->height : 1);
    +            $this->width = round($ratio * $pValue);
    +        }
    +
    +        // Set height
    +        $this->height = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set width and height with proportional resize.
    +     *
    +     * Example:
    +     * <code>
    +     * $objDrawing->setResizeProportional(true);
    +     * $objDrawing->setWidthAndHeight(160,120);
    +     * </code>
    +     *
    +     * @author Vincent@luo MSN:kele_100@hotmail.com
    +     *
    +     * @param int $width
    +     * @param int $height
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setWidthAndHeight($width, $height)
    +    {
    +        $xratio = $width / ($this->width != 0 ? $this->width : 1);
    +        $yratio = $height / ($this->height != 0 ? $this->height : 1);
    +        if ($this->resizeProportional && !($width == 0 || $height == 0)) {
    +            if (($xratio * $this->height) < $height) {
    +                $this->height = ceil($xratio * $this->height);
    +                $this->width = $width;
    +            } else {
    +                $this->width = ceil($yratio * $this->width);
    +                $this->height = $height;
    +            }
    +        } else {
    +            $this->width = $width;
    +            $this->height = $height;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get ResizeProportional.
    +     *
    +     * @return bool
    +     */
    +    public function getResizeProportional()
    +    {
    +        return $this->resizeProportional;
    +    }
    +
    +    /**
    +     * Set ResizeProportional.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setResizeProportional($pValue)
    +    {
    +        $this->resizeProportional = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Rotation.
    +     *
    +     * @return int
    +     */
    +    public function getRotation()
    +    {
    +        return $this->rotation;
    +    }
    +
    +    /**
    +     * Set Rotation.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setRotation($pValue)
    +    {
    +        $this->rotation = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Shadow.
    +     *
    +     * @return Drawing\Shadow
    +     */
    +    public function getShadow()
    +    {
    +        return $this->shadow;
    +    }
    +
    +    /**
    +     * Set Shadow.
    +     *
    +     * @param Drawing\Shadow $pValue
    +     *
    +     * @return BaseDrawing
    +     */
    +    public function setShadow(Drawing\Shadow $pValue = null)
    +    {
    +        $this->shadow = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        return md5(
    +            $this->name .
    +            $this->description .
    +            $this->worksheet->getHashCode() .
    +            $this->coordinates .
    +            $this->offsetX .
    +            $this->offsetY .
    +            $this->width .
    +            $this->height .
    +            $this->rotation .
    +            $this->shadow->getHashCode() .
    +            __CLASS__
    +        );
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if ($key == 'worksheet') {
    +                $this->worksheet = null;
    +            } elseif (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * @param null|Hyperlink $pHyperlink
    +     */
    +    public function setHyperlink(Hyperlink $pHyperlink = null)
    +    {
    +        $this->hyperlink = $pHyperlink;
    +    }
    +
    +    /**
    +     * @return null|Hyperlink
    +     */
    +    public function getHyperlink()
    +    {
    +        return $this->hyperlink;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/CellIterator.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/CellIterator.php
    new file mode 100644
    index 00000000000..d97e33f7d10
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/CellIterator.php
    @@ -0,0 +1,61 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +abstract class CellIterator implements \Iterator
    +{
    +    /**
    +     * Worksheet to iterate.
    +     *
    +     * @var Worksheet
    +     */
    +    protected $worksheet;
    +
    +    /**
    +     * Iterate only existing cells.
    +     *
    +     * @var bool
    +     */
    +    protected $onlyExistingCells = false;
    +
    +    /**
    +     * Destructor.
    +     */
    +    public function __destruct()
    +    {
    +        unset($this->worksheet);
    +    }
    +
    +    /**
    +     * Get loop only existing cells.
    +     *
    +     * @return bool
    +     */
    +    public function getIterateOnlyExistingCells()
    +    {
    +        return $this->onlyExistingCells;
    +    }
    +
    +    /**
    +     * Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary.
    +     *
    +     * @throws PhpSpreadsheetException
    +     */
    +    abstract protected function adjustForExistingOnlyRange();
    +
    +    /**
    +     * Set the iterator to loop only existing cells.
    +     *
    +     * @param bool $value
    +     *
    +     * @throws PhpSpreadsheetException
    +     */
    +    public function setIterateOnlyExistingCells($value)
    +    {
    +        $this->onlyExistingCells = (bool) $value;
    +
    +        $this->adjustForExistingOnlyRange();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Column.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Column.php
    new file mode 100644
    index 00000000000..4baaae1f54a
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Column.php
    @@ -0,0 +1,64 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +class Column
    +{
    +    /**
    +     * \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet.
    +     *
    +     * @var Worksheet
    +     */
    +    private $parent;
    +
    +    /**
    +     * Column index.
    +     *
    +     * @var string
    +     */
    +    private $columnIndex;
    +
    +    /**
    +     * Create a new column.
    +     *
    +     * @param Worksheet $parent
    +     * @param string $columnIndex
    +     */
    +    public function __construct(Worksheet $parent = null, $columnIndex = 'A')
    +    {
    +        // Set parent and column index
    +        $this->parent = $parent;
    +        $this->columnIndex = $columnIndex;
    +    }
    +
    +    /**
    +     * Destructor.
    +     */
    +    public function __destruct()
    +    {
    +        unset($this->parent);
    +    }
    +
    +    /**
    +     * Get column index.
    +     *
    +     * @return string
    +     */
    +    public function getColumnIndex()
    +    {
    +        return $this->columnIndex;
    +    }
    +
    +    /**
    +     * Get cell iterator.
    +     *
    +     * @param int $startRow The row number at which to start iterating
    +     * @param int $endRow Optionally, the row number at which to stop iterating
    +     *
    +     * @return ColumnCellIterator
    +     */
    +    public function getCellIterator($startRow = 1, $endRow = null)
    +    {
    +        return new ColumnCellIterator($this->parent, $this->columnIndex, $startRow, $endRow);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/ColumnCellIterator.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/ColumnCellIterator.php
    new file mode 100644
    index 00000000000..7e8f040d26a
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/ColumnCellIterator.php
    @@ -0,0 +1,197 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class ColumnCellIterator extends CellIterator
    +{
    +    /**
    +     * Current iterator position.
    +     *
    +     * @var int
    +     */
    +    private $currentRow;
    +
    +    /**
    +     * Column index.
    +     *
    +     * @var string
    +     */
    +    private $columnIndex;
    +
    +    /**
    +     * Start position.
    +     *
    +     * @var int
    +     */
    +    private $startRow = 1;
    +
    +    /**
    +     * End position.
    +     *
    +     * @var int
    +     */
    +    private $endRow = 1;
    +
    +    /**
    +     * Create a new row iterator.
    +     *
    +     * @param Worksheet $subject The worksheet to iterate over
    +     * @param string $columnIndex The column that we want to iterate
    +     * @param int $startRow The row number at which to start iterating
    +     * @param int $endRow Optionally, the row number at which to stop iterating
    +     */
    +    public function __construct(Worksheet $subject = null, $columnIndex = 'A', $startRow = 1, $endRow = null)
    +    {
    +        // Set subject
    +        $this->worksheet = $subject;
    +        $this->columnIndex = Coordinate::columnIndexFromString($columnIndex);
    +        $this->resetEnd($endRow);
    +        $this->resetStart($startRow);
    +    }
    +
    +    /**
    +     * (Re)Set the start row and the current row pointer.
    +     *
    +     * @param int $startRow The row number at which to start iterating
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return ColumnCellIterator
    +     */
    +    public function resetStart($startRow = 1)
    +    {
    +        $this->startRow = $startRow;
    +        $this->adjustForExistingOnlyRange();
    +        $this->seek($startRow);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * (Re)Set the end row.
    +     *
    +     * @param int $endRow The row number at which to stop iterating
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return ColumnCellIterator
    +     */
    +    public function resetEnd($endRow = null)
    +    {
    +        $this->endRow = ($endRow) ? $endRow : $this->worksheet->getHighestRow();
    +        $this->adjustForExistingOnlyRange();
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set the row pointer to the selected row.
    +     *
    +     * @param int $row The row number to set the current pointer at
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return ColumnCellIterator
    +     */
    +    public function seek($row = 1)
    +    {
    +        if (($row < $this->startRow) || ($row > $this->endRow)) {
    +            throw new PhpSpreadsheetException("Row $row is out of range ({$this->startRow} - {$this->endRow})");
    +        } elseif ($this->onlyExistingCells && !($this->worksheet->cellExistsByColumnAndRow($this->columnIndex, $row))) {
    +            throw new PhpSpreadsheetException('In "IterateOnlyExistingCells" mode and Cell does not exist');
    +        }
    +        $this->currentRow = $row;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Rewind the iterator to the starting row.
    +     */
    +    public function rewind()
    +    {
    +        $this->currentRow = $this->startRow;
    +    }
    +
    +    /**
    +     * Return the current cell in this worksheet column.
    +     *
    +     * @return null|\PhpOffice\PhpSpreadsheet\Cell\Cell
    +     */
    +    public function current()
    +    {
    +        return $this->worksheet->getCellByColumnAndRow($this->columnIndex, $this->currentRow);
    +    }
    +
    +    /**
    +     * Return the current iterator key.
    +     *
    +     * @return int
    +     */
    +    public function key()
    +    {
    +        return $this->currentRow;
    +    }
    +
    +    /**
    +     * Set the iterator to its next value.
    +     */
    +    public function next()
    +    {
    +        do {
    +            ++$this->currentRow;
    +        } while (($this->onlyExistingCells) &&
    +            (!$this->worksheet->cellExistsByColumnAndRow($this->columnIndex, $this->currentRow)) &&
    +            ($this->currentRow <= $this->endRow));
    +    }
    +
    +    /**
    +     * Set the iterator to its previous value.
    +     */
    +    public function prev()
    +    {
    +        do {
    +            --$this->currentRow;
    +        } while (($this->onlyExistingCells) &&
    +            (!$this->worksheet->cellExistsByColumnAndRow($this->columnIndex, $this->currentRow)) &&
    +            ($this->currentRow >= $this->startRow));
    +    }
    +
    +    /**
    +     * Indicate if more rows exist in the worksheet range of rows that we're iterating.
    +     *
    +     * @return bool
    +     */
    +    public function valid()
    +    {
    +        return $this->currentRow <= $this->endRow && $this->currentRow >= $this->startRow;
    +    }
    +
    +    /**
    +     * Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary.
    +     *
    +     * @throws PhpSpreadsheetException
    +     */
    +    protected function adjustForExistingOnlyRange()
    +    {
    +        if ($this->onlyExistingCells) {
    +            while ((!$this->worksheet->cellExistsByColumnAndRow($this->columnIndex, $this->startRow)) &&
    +                ($this->startRow <= $this->endRow)) {
    +                ++$this->startRow;
    +            }
    +            if ($this->startRow > $this->endRow) {
    +                throw new PhpSpreadsheetException('No cells exist within the specified range');
    +            }
    +            while ((!$this->worksheet->cellExistsByColumnAndRow($this->columnIndex, $this->endRow)) &&
    +                ($this->endRow >= $this->startRow)) {
    +                --$this->endRow;
    +            }
    +            if ($this->endRow < $this->startRow) {
    +                throw new PhpSpreadsheetException('No cells exist within the specified range');
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/ColumnDimension.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/ColumnDimension.php
    new file mode 100644
    index 00000000000..e2ea8af15f7
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/ColumnDimension.php
    @@ -0,0 +1,115 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +class ColumnDimension extends Dimension
    +{
    +    /**
    +     * Column index.
    +     *
    +     * @var string
    +     */
    +    private $columnIndex;
    +
    +    /**
    +     * Column width.
    +     *
    +     * When this is set to a negative value, the column width should be ignored by IWriter
    +     *
    +     * @var float
    +     */
    +    private $width = -1;
    +
    +    /**
    +     * Auto size?
    +     *
    +     * @var bool
    +     */
    +    private $autoSize = false;
    +
    +    /**
    +     * Create a new ColumnDimension.
    +     *
    +     * @param string $pIndex Character column index
    +     */
    +    public function __construct($pIndex = 'A')
    +    {
    +        // Initialise values
    +        $this->columnIndex = $pIndex;
    +
    +        // set dimension as unformatted by default
    +        parent::__construct(0);
    +    }
    +
    +    /**
    +     * Get ColumnIndex.
    +     *
    +     * @return string
    +     */
    +    public function getColumnIndex()
    +    {
    +        return $this->columnIndex;
    +    }
    +
    +    /**
    +     * Set ColumnIndex.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return ColumnDimension
    +     */
    +    public function setColumnIndex($pValue)
    +    {
    +        $this->columnIndex = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Width.
    +     *
    +     * @return float
    +     */
    +    public function getWidth()
    +    {
    +        return $this->width;
    +    }
    +
    +    /**
    +     * Set Width.
    +     *
    +     * @param float $pValue
    +     *
    +     * @return ColumnDimension
    +     */
    +    public function setWidth($pValue)
    +    {
    +        $this->width = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Auto Size.
    +     *
    +     * @return bool
    +     */
    +    public function getAutoSize()
    +    {
    +        return $this->autoSize;
    +    }
    +
    +    /**
    +     * Set Auto Size.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return ColumnDimension
    +     */
    +    public function setAutoSize($pValue)
    +    {
    +        $this->autoSize = $pValue;
    +
    +        return $this;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/ColumnIterator.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/ColumnIterator.php
    new file mode 100644
    index 00000000000..d2b57aad2f5
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/ColumnIterator.php
    @@ -0,0 +1,175 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Exception;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class ColumnIterator implements \Iterator
    +{
    +    /**
    +     * Worksheet to iterate.
    +     *
    +     * @var Worksheet
    +     */
    +    private $worksheet;
    +
    +    /**
    +     * Current iterator position.
    +     *
    +     * @var int
    +     */
    +    private $currentColumnIndex = 1;
    +
    +    /**
    +     * Start position.
    +     *
    +     * @var int
    +     */
    +    private $startColumnIndex = 1;
    +
    +    /**
    +     * End position.
    +     *
    +     * @var int
    +     */
    +    private $endColumnIndex = 1;
    +
    +    /**
    +     * Create a new column iterator.
    +     *
    +     * @param Worksheet $worksheet The worksheet to iterate over
    +     * @param string $startColumn The column address at which to start iterating
    +     * @param string $endColumn Optionally, the column address at which to stop iterating
    +     */
    +    public function __construct(Worksheet $worksheet, $startColumn = 'A', $endColumn = null)
    +    {
    +        // Set subject
    +        $this->worksheet = $worksheet;
    +        $this->resetEnd($endColumn);
    +        $this->resetStart($startColumn);
    +    }
    +
    +    /**
    +     * Destructor.
    +     */
    +    public function __destruct()
    +    {
    +        unset($this->worksheet);
    +    }
    +
    +    /**
    +     * (Re)Set the start column and the current column pointer.
    +     *
    +     * @param string $startColumn The column address at which to start iterating
    +     *
    +     * @throws Exception
    +     *
    +     * @return ColumnIterator
    +     */
    +    public function resetStart($startColumn = 'A')
    +    {
    +        $startColumnIndex = Coordinate::columnIndexFromString($startColumn);
    +        if ($startColumnIndex > Coordinate::columnIndexFromString($this->worksheet->getHighestColumn())) {
    +            throw new Exception("Start column ({$startColumn}) is beyond highest column ({$this->worksheet->getHighestColumn()})");
    +        }
    +
    +        $this->startColumnIndex = $startColumnIndex;
    +        if ($this->endColumnIndex < $this->startColumnIndex) {
    +            $this->endColumnIndex = $this->startColumnIndex;
    +        }
    +        $this->seek($startColumn);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * (Re)Set the end column.
    +     *
    +     * @param string $endColumn The column address at which to stop iterating
    +     *
    +     * @return ColumnIterator
    +     */
    +    public function resetEnd($endColumn = null)
    +    {
    +        $endColumn = $endColumn ? $endColumn : $this->worksheet->getHighestColumn();
    +        $this->endColumnIndex = Coordinate::columnIndexFromString($endColumn);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set the column pointer to the selected column.
    +     *
    +     * @param string $column The column address to set the current pointer at
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return ColumnIterator
    +     */
    +    public function seek($column = 'A')
    +    {
    +        $column = Coordinate::columnIndexFromString($column);
    +        if (($column < $this->startColumnIndex) || ($column > $this->endColumnIndex)) {
    +            throw new PhpSpreadsheetException("Column $column is out of range ({$this->startColumnIndex} - {$this->endColumnIndex})");
    +        }
    +        $this->currentColumnIndex = $column;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Rewind the iterator to the starting column.
    +     */
    +    public function rewind()
    +    {
    +        $this->currentColumnIndex = $this->startColumnIndex;
    +    }
    +
    +    /**
    +     * Return the current column in this worksheet.
    +     *
    +     * @return Column
    +     */
    +    public function current()
    +    {
    +        return new Column($this->worksheet, Coordinate::stringFromColumnIndex($this->currentColumnIndex));
    +    }
    +
    +    /**
    +     * Return the current iterator key.
    +     *
    +     * @return string
    +     */
    +    public function key()
    +    {
    +        return Coordinate::stringFromColumnIndex($this->currentColumnIndex);
    +    }
    +
    +    /**
    +     * Set the iterator to its next value.
    +     */
    +    public function next()
    +    {
    +        ++$this->currentColumnIndex;
    +    }
    +
    +    /**
    +     * Set the iterator to its previous value.
    +     */
    +    public function prev()
    +    {
    +        --$this->currentColumnIndex;
    +    }
    +
    +    /**
    +     * Indicate if more columns exist in the worksheet range of columns that we're iterating.
    +     *
    +     * @return bool
    +     */
    +    public function valid()
    +    {
    +        return $this->currentColumnIndex <= $this->endColumnIndex && $this->currentColumnIndex >= $this->startColumnIndex;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Dimension.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Dimension.php
    new file mode 100644
    index 00000000000..44e66323206
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Dimension.php
    @@ -0,0 +1,165 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +abstract class Dimension
    +{
    +    /**
    +     * Visible?
    +     *
    +     * @var bool
    +     */
    +    private $visible = true;
    +
    +    /**
    +     * Outline level.
    +     *
    +     * @var int
    +     */
    +    private $outlineLevel = 0;
    +
    +    /**
    +     * Collapsed.
    +     *
    +     * @var bool
    +     */
    +    private $collapsed = false;
    +
    +    /**
    +     * Index to cellXf. Null value means row has no explicit cellXf format.
    +     *
    +     * @var null|int
    +     */
    +    private $xfIndex;
    +
    +    /**
    +     * Create a new Dimension.
    +     *
    +     * @param int $initialValue Numeric row index
    +     */
    +    public function __construct($initialValue = null)
    +    {
    +        // set dimension as unformatted by default
    +        $this->xfIndex = $initialValue;
    +    }
    +
    +    /**
    +     * Get Visible.
    +     *
    +     * @return bool
    +     */
    +    public function getVisible()
    +    {
    +        return $this->visible;
    +    }
    +
    +    /**
    +     * Set Visible.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Dimension
    +     */
    +    public function setVisible($pValue)
    +    {
    +        $this->visible = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Outline Level.
    +     *
    +     * @return int
    +     */
    +    public function getOutlineLevel()
    +    {
    +        return $this->outlineLevel;
    +    }
    +
    +    /**
    +     * Set Outline Level.
    +     * Value must be between 0 and 7.
    +     *
    +     * @param int $pValue
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Dimension
    +     */
    +    public function setOutlineLevel($pValue)
    +    {
    +        if ($pValue < 0 || $pValue > 7) {
    +            throw new PhpSpreadsheetException('Outline level must range between 0 and 7.');
    +        }
    +
    +        $this->outlineLevel = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Collapsed.
    +     *
    +     * @return bool
    +     */
    +    public function getCollapsed()
    +    {
    +        return $this->collapsed;
    +    }
    +
    +    /**
    +     * Set Collapsed.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Dimension
    +     */
    +    public function setCollapsed($pValue)
    +    {
    +        $this->collapsed = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get index to cellXf.
    +     *
    +     * @return int
    +     */
    +    public function getXfIndex()
    +    {
    +        return $this->xfIndex;
    +    }
    +
    +    /**
    +     * Set index to cellXf.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return Dimension
    +     */
    +    public function setXfIndex($pValue)
    +    {
    +        $this->xfIndex = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Drawing.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Drawing.php
    new file mode 100644
    index 00000000000..ed26006c048
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Drawing.php
    @@ -0,0 +1,116 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Drawing extends BaseDrawing
    +{
    +    /**
    +     * Path.
    +     *
    +     * @var string
    +     */
    +    private $path;
    +
    +    /**
    +     * Create a new Drawing.
    +     */
    +    public function __construct()
    +    {
    +        // Initialise values
    +        $this->path = '';
    +
    +        // Initialize parent
    +        parent::__construct();
    +    }
    +
    +    /**
    +     * Get Filename.
    +     *
    +     * @return string
    +     */
    +    public function getFilename()
    +    {
    +        return basename($this->path);
    +    }
    +
    +    /**
    +     * Get indexed filename (using image index).
    +     *
    +     * @return string
    +     */
    +    public function getIndexedFilename()
    +    {
    +        $fileName = $this->getFilename();
    +        $fileName = str_replace(' ', '_', $fileName);
    +
    +        return str_replace('.' . $this->getExtension(), '', $fileName) . $this->getImageIndex() . '.' . $this->getExtension();
    +    }
    +
    +    /**
    +     * Get Extension.
    +     *
    +     * @return string
    +     */
    +    public function getExtension()
    +    {
    +        $exploded = explode('.', basename($this->path));
    +
    +        return $exploded[count($exploded) - 1];
    +    }
    +
    +    /**
    +     * Get Path.
    +     *
    +     * @return string
    +     */
    +    public function getPath()
    +    {
    +        return $this->path;
    +    }
    +
    +    /**
    +     * Set Path.
    +     *
    +     * @param string $pValue File path
    +     * @param bool $pVerifyFile Verify file
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return Drawing
    +     */
    +    public function setPath($pValue, $pVerifyFile = true)
    +    {
    +        if ($pVerifyFile) {
    +            if (file_exists($pValue)) {
    +                $this->path = $pValue;
    +
    +                if ($this->width == 0 && $this->height == 0) {
    +                    // Get width/height
    +                    list($this->width, $this->height) = getimagesize($pValue);
    +                }
    +            } else {
    +                throw new PhpSpreadsheetException("File $pValue not found!");
    +            }
    +        } else {
    +            $this->path = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        return md5(
    +            $this->path .
    +            parent::getHashCode() .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Drawing/Shadow.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Drawing/Shadow.php
    new file mode 100644
    index 00000000000..a1e05d60001
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Drawing/Shadow.php
    @@ -0,0 +1,289 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
    +
    +use PhpOffice\PhpSpreadsheet\IComparable;
    +use PhpOffice\PhpSpreadsheet\Style\Color;
    +
    +class Shadow implements IComparable
    +{
    +    // Shadow alignment
    +    const SHADOW_BOTTOM = 'b';
    +    const SHADOW_BOTTOM_LEFT = 'bl';
    +    const SHADOW_BOTTOM_RIGHT = 'br';
    +    const SHADOW_CENTER = 'ctr';
    +    const SHADOW_LEFT = 'l';
    +    const SHADOW_TOP = 't';
    +    const SHADOW_TOP_LEFT = 'tl';
    +    const SHADOW_TOP_RIGHT = 'tr';
    +
    +    /**
    +     * Visible.
    +     *
    +     * @var bool
    +     */
    +    private $visible;
    +
    +    /**
    +     * Blur radius.
    +     *
    +     * Defaults to 6
    +     *
    +     * @var int
    +     */
    +    private $blurRadius;
    +
    +    /**
    +     * Shadow distance.
    +     *
    +     * Defaults to 2
    +     *
    +     * @var int
    +     */
    +    private $distance;
    +
    +    /**
    +     * Shadow direction (in degrees).
    +     *
    +     * @var int
    +     */
    +    private $direction;
    +
    +    /**
    +     * Shadow alignment.
    +     *
    +     * @var int
    +     */
    +    private $alignment;
    +
    +    /**
    +     * Color.
    +     *
    +     * @var Color
    +     */
    +    private $color;
    +
    +    /**
    +     * Alpha.
    +     *
    +     * @var int
    +     */
    +    private $alpha;
    +
    +    /**
    +     * Create a new Shadow.
    +     */
    +    public function __construct()
    +    {
    +        // Initialise values
    +        $this->visible = false;
    +        $this->blurRadius = 6;
    +        $this->distance = 2;
    +        $this->direction = 0;
    +        $this->alignment = self::SHADOW_BOTTOM_RIGHT;
    +        $this->color = new Color(Color::COLOR_BLACK);
    +        $this->alpha = 50;
    +    }
    +
    +    /**
    +     * Get Visible.
    +     *
    +     * @return bool
    +     */
    +    public function getVisible()
    +    {
    +        return $this->visible;
    +    }
    +
    +    /**
    +     * Set Visible.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Shadow
    +     */
    +    public function setVisible($pValue)
    +    {
    +        $this->visible = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Blur radius.
    +     *
    +     * @return int
    +     */
    +    public function getBlurRadius()
    +    {
    +        return $this->blurRadius;
    +    }
    +
    +    /**
    +     * Set Blur radius.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return Shadow
    +     */
    +    public function setBlurRadius($pValue)
    +    {
    +        $this->blurRadius = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Shadow distance.
    +     *
    +     * @return int
    +     */
    +    public function getDistance()
    +    {
    +        return $this->distance;
    +    }
    +
    +    /**
    +     * Set Shadow distance.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return Shadow
    +     */
    +    public function setDistance($pValue)
    +    {
    +        $this->distance = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Shadow direction (in degrees).
    +     *
    +     * @return int
    +     */
    +    public function getDirection()
    +    {
    +        return $this->direction;
    +    }
    +
    +    /**
    +     * Set Shadow direction (in degrees).
    +     *
    +     * @param int $pValue
    +     *
    +     * @return Shadow
    +     */
    +    public function setDirection($pValue)
    +    {
    +        $this->direction = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Shadow alignment.
    +     *
    +     * @return int
    +     */
    +    public function getAlignment()
    +    {
    +        return $this->alignment;
    +    }
    +
    +    /**
    +     * Set Shadow alignment.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return Shadow
    +     */
    +    public function setAlignment($pValue)
    +    {
    +        $this->alignment = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Color.
    +     *
    +     * @return Color
    +     */
    +    public function getColor()
    +    {
    +        return $this->color;
    +    }
    +
    +    /**
    +     * Set Color.
    +     *
    +     * @param Color $pValue
    +     *
    +     * @return Shadow
    +     */
    +    public function setColor(Color $pValue = null)
    +    {
    +        $this->color = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Alpha.
    +     *
    +     * @return int
    +     */
    +    public function getAlpha()
    +    {
    +        return $this->alpha;
    +    }
    +
    +    /**
    +     * Set Alpha.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return Shadow
    +     */
    +    public function setAlpha($pValue)
    +    {
    +        $this->alpha = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        return md5(
    +            ($this->visible ? 't' : 'f') .
    +            $this->blurRadius .
    +            $this->distance .
    +            $this->direction .
    +            $this->alignment .
    +            $this->color->getHashCode() .
    +            $this->alpha .
    +            __CLASS__
    +        );
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/HeaderFooter.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/HeaderFooter.php
    new file mode 100644
    index 00000000000..a78f4fccaeb
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/HeaderFooter.php
    @@ -0,0 +1,491 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +/**
    + * <code>
    + * Header/Footer Formatting Syntax taken from Office Open XML Part 4 - Markup Language Reference, page 1970:.
    + *
    + * There are a number of formatting codes that can be written inline with the actual header / footer text, which
    + * affect the formatting in the header or footer.
    + *
    + * Example: This example shows the text "Center Bold Header" on the first line (center section), and the date on
    + * the second line (center section).
    + *         &CCenter &"-,Bold"Bold&"-,Regular"Header_x000A_&D
    + *
    + * General Rules:
    + * There is no required order in which these codes must appear.
    + *
    + * The first occurrence of the following codes turns the formatting ON, the second occurrence turns it OFF again:
    + * - strikethrough
    + * - superscript
    + * - subscript
    + * Superscript and subscript cannot both be ON at same time. Whichever comes first wins and the other is ignored,
    + * while the first is ON.
    + * &L - code for "left section" (there are three header / footer locations, "left", "center", and "right"). When
    + * two or more occurrences of this section marker exist, the contents from all markers are concatenated, in the
    + * order of appearance, and placed into the left section.
    + * &P - code for "current page #"
    + * &N - code for "total pages"
    + * &font size - code for "text font size", where font size is a font size in points.
    + * &K - code for "text font color"
    + * RGB Color is specified as RRGGBB
    + * Theme Color is specifed as TTSNN where TT is the theme color Id, S is either "+" or "-" of the tint/shade
    + * value, NN is the tint/shade value.
    + * &S - code for "text strikethrough" on / off
    + * &X - code for "text super script" on / off
    + * &Y - code for "text subscript" on / off
    + * &C - code for "center section". When two or more occurrences of this section marker exist, the contents
    + * from all markers are concatenated, in the order of appearance, and placed into the center section.
    + *
    + * &D - code for "date"
    + * &T - code for "time"
    + * &G - code for "picture as background"
    + * &U - code for "text single underline"
    + * &E - code for "double underline"
    + * &R - code for "right section". When two or more occurrences of this section marker exist, the contents
    + * from all markers are concatenated, in the order of appearance, and placed into the right section.
    + * &Z - code for "this workbook's file path"
    + * &F - code for "this workbook's file name"
    + * &A - code for "sheet tab name"
    + * &+ - code for add to page #.
    + * &- - code for subtract from page #.
    + * &"font name,font type" - code for "text font name" and "text font type", where font name and font type
    + * are strings specifying the name and type of the font, separated by a comma. When a hyphen appears in font
    + * name, it means "none specified". Both of font name and font type can be localized values.
    + * &"-,Bold" - code for "bold font style"
    + * &B - also means "bold font style".
    + * &"-,Regular" - code for "regular font style"
    + * &"-,Italic" - code for "italic font style"
    + * &I - also means "italic font style"
    + * &"-,Bold Italic" code for "bold italic font style"
    + * &O - code for "outline style"
    + * &H - code for "shadow style"
    + * </code>
    + */
    +class HeaderFooter
    +{
    +    // Header/footer image location
    +    const IMAGE_HEADER_LEFT = 'LH';
    +    const IMAGE_HEADER_CENTER = 'CH';
    +    const IMAGE_HEADER_RIGHT = 'RH';
    +    const IMAGE_FOOTER_LEFT = 'LF';
    +    const IMAGE_FOOTER_CENTER = 'CF';
    +    const IMAGE_FOOTER_RIGHT = 'RF';
    +
    +    /**
    +     * OddHeader.
    +     *
    +     * @var string
    +     */
    +    private $oddHeader = '';
    +
    +    /**
    +     * OddFooter.
    +     *
    +     * @var string
    +     */
    +    private $oddFooter = '';
    +
    +    /**
    +     * EvenHeader.
    +     *
    +     * @var string
    +     */
    +    private $evenHeader = '';
    +
    +    /**
    +     * EvenFooter.
    +     *
    +     * @var string
    +     */
    +    private $evenFooter = '';
    +
    +    /**
    +     * FirstHeader.
    +     *
    +     * @var string
    +     */
    +    private $firstHeader = '';
    +
    +    /**
    +     * FirstFooter.
    +     *
    +     * @var string
    +     */
    +    private $firstFooter = '';
    +
    +    /**
    +     * Different header for Odd/Even, defaults to false.
    +     *
    +     * @var bool
    +     */
    +    private $differentOddEven = false;
    +
    +    /**
    +     * Different header for first page, defaults to false.
    +     *
    +     * @var bool
    +     */
    +    private $differentFirst = false;
    +
    +    /**
    +     * Scale with document, defaults to true.
    +     *
    +     * @var bool
    +     */
    +    private $scaleWithDocument = true;
    +
    +    /**
    +     * Align with margins, defaults to true.
    +     *
    +     * @var bool
    +     */
    +    private $alignWithMargins = true;
    +
    +    /**
    +     * Header/footer images.
    +     *
    +     * @var HeaderFooterDrawing[]
    +     */
    +    private $headerFooterImages = [];
    +
    +    /**
    +     * Create a new HeaderFooter.
    +     */
    +    public function __construct()
    +    {
    +    }
    +
    +    /**
    +     * Get OddHeader.
    +     *
    +     * @return string
    +     */
    +    public function getOddHeader()
    +    {
    +        return $this->oddHeader;
    +    }
    +
    +    /**
    +     * Set OddHeader.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function setOddHeader($pValue)
    +    {
    +        $this->oddHeader = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get OddFooter.
    +     *
    +     * @return string
    +     */
    +    public function getOddFooter()
    +    {
    +        return $this->oddFooter;
    +    }
    +
    +    /**
    +     * Set OddFooter.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function setOddFooter($pValue)
    +    {
    +        $this->oddFooter = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get EvenHeader.
    +     *
    +     * @return string
    +     */
    +    public function getEvenHeader()
    +    {
    +        return $this->evenHeader;
    +    }
    +
    +    /**
    +     * Set EvenHeader.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function setEvenHeader($pValue)
    +    {
    +        $this->evenHeader = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get EvenFooter.
    +     *
    +     * @return string
    +     */
    +    public function getEvenFooter()
    +    {
    +        return $this->evenFooter;
    +    }
    +
    +    /**
    +     * Set EvenFooter.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function setEvenFooter($pValue)
    +    {
    +        $this->evenFooter = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get FirstHeader.
    +     *
    +     * @return string
    +     */
    +    public function getFirstHeader()
    +    {
    +        return $this->firstHeader;
    +    }
    +
    +    /**
    +     * Set FirstHeader.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function setFirstHeader($pValue)
    +    {
    +        $this->firstHeader = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get FirstFooter.
    +     *
    +     * @return string
    +     */
    +    public function getFirstFooter()
    +    {
    +        return $this->firstFooter;
    +    }
    +
    +    /**
    +     * Set FirstFooter.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function setFirstFooter($pValue)
    +    {
    +        $this->firstFooter = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get DifferentOddEven.
    +     *
    +     * @return bool
    +     */
    +    public function getDifferentOddEven()
    +    {
    +        return $this->differentOddEven;
    +    }
    +
    +    /**
    +     * Set DifferentOddEven.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function setDifferentOddEven($pValue)
    +    {
    +        $this->differentOddEven = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get DifferentFirst.
    +     *
    +     * @return bool
    +     */
    +    public function getDifferentFirst()
    +    {
    +        return $this->differentFirst;
    +    }
    +
    +    /**
    +     * Set DifferentFirst.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function setDifferentFirst($pValue)
    +    {
    +        $this->differentFirst = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get ScaleWithDocument.
    +     *
    +     * @return bool
    +     */
    +    public function getScaleWithDocument()
    +    {
    +        return $this->scaleWithDocument;
    +    }
    +
    +    /**
    +     * Set ScaleWithDocument.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function setScaleWithDocument($pValue)
    +    {
    +        $this->scaleWithDocument = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get AlignWithMargins.
    +     *
    +     * @return bool
    +     */
    +    public function getAlignWithMargins()
    +    {
    +        return $this->alignWithMargins;
    +    }
    +
    +    /**
    +     * Set AlignWithMargins.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function setAlignWithMargins($pValue)
    +    {
    +        $this->alignWithMargins = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Add header/footer image.
    +     *
    +     * @param HeaderFooterDrawing $image
    +     * @param string $location
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function addImage(HeaderFooterDrawing $image, $location = self::IMAGE_HEADER_LEFT)
    +    {
    +        $this->headerFooterImages[$location] = $image;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Remove header/footer image.
    +     *
    +     * @param string $location
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function removeImage($location = self::IMAGE_HEADER_LEFT)
    +    {
    +        if (isset($this->headerFooterImages[$location])) {
    +            unset($this->headerFooterImages[$location]);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set header/footer images.
    +     *
    +     * @param HeaderFooterDrawing[] $images
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function setImages(array $images)
    +    {
    +        $this->headerFooterImages = $images;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get header/footer images.
    +     *
    +     * @return HeaderFooterDrawing[]
    +     */
    +    public function getImages()
    +    {
    +        // Sort array
    +        $images = [];
    +        if (isset($this->headerFooterImages[self::IMAGE_HEADER_LEFT])) {
    +            $images[self::IMAGE_HEADER_LEFT] = $this->headerFooterImages[self::IMAGE_HEADER_LEFT];
    +        }
    +        if (isset($this->headerFooterImages[self::IMAGE_HEADER_CENTER])) {
    +            $images[self::IMAGE_HEADER_CENTER] = $this->headerFooterImages[self::IMAGE_HEADER_CENTER];
    +        }
    +        if (isset($this->headerFooterImages[self::IMAGE_HEADER_RIGHT])) {
    +            $images[self::IMAGE_HEADER_RIGHT] = $this->headerFooterImages[self::IMAGE_HEADER_RIGHT];
    +        }
    +        if (isset($this->headerFooterImages[self::IMAGE_FOOTER_LEFT])) {
    +            $images[self::IMAGE_FOOTER_LEFT] = $this->headerFooterImages[self::IMAGE_FOOTER_LEFT];
    +        }
    +        if (isset($this->headerFooterImages[self::IMAGE_FOOTER_CENTER])) {
    +            $images[self::IMAGE_FOOTER_CENTER] = $this->headerFooterImages[self::IMAGE_FOOTER_CENTER];
    +        }
    +        if (isset($this->headerFooterImages[self::IMAGE_FOOTER_RIGHT])) {
    +            $images[self::IMAGE_FOOTER_RIGHT] = $this->headerFooterImages[self::IMAGE_FOOTER_RIGHT];
    +        }
    +        $this->headerFooterImages = $images;
    +
    +        return $this->headerFooterImages;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php
    new file mode 100644
    index 00000000000..b42c7324c18
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php
    @@ -0,0 +1,24 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +class HeaderFooterDrawing extends Drawing
    +{
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        return md5(
    +            $this->getPath() .
    +            $this->name .
    +            $this->offsetX .
    +            $this->offsetY .
    +            $this->width .
    +            $this->height .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Iterator.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Iterator.php
    new file mode 100644
    index 00000000000..d8797a34736
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Iterator.php
    @@ -0,0 +1,87 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class Iterator implements \Iterator
    +{
    +    /**
    +     * Spreadsheet to iterate.
    +     *
    +     * @var Spreadsheet
    +     */
    +    private $subject;
    +
    +    /**
    +     * Current iterator position.
    +     *
    +     * @var int
    +     */
    +    private $position = 0;
    +
    +    /**
    +     * Create a new worksheet iterator.
    +     *
    +     * @param Spreadsheet $subject
    +     */
    +    public function __construct(Spreadsheet $subject)
    +    {
    +        // Set subject
    +        $this->subject = $subject;
    +    }
    +
    +    /**
    +     * Destructor.
    +     */
    +    public function __destruct()
    +    {
    +        unset($this->subject);
    +    }
    +
    +    /**
    +     * Rewind iterator.
    +     */
    +    public function rewind()
    +    {
    +        $this->position = 0;
    +    }
    +
    +    /**
    +     * Current Worksheet.
    +     *
    +     * @return Worksheet
    +     */
    +    public function current()
    +    {
    +        return $this->subject->getSheet($this->position);
    +    }
    +
    +    /**
    +     * Current key.
    +     *
    +     * @return int
    +     */
    +    public function key()
    +    {
    +        return $this->position;
    +    }
    +
    +    /**
    +     * Next value.
    +     */
    +    public function next()
    +    {
    +        ++$this->position;
    +    }
    +
    +    /**
    +     * Are there more Worksheet instances available?
    +     *
    +     * @return bool
    +     */
    +    public function valid()
    +    {
    +        return $this->position < $this->subject->getSheetCount() && $this->position >= 0;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/MemoryDrawing.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/MemoryDrawing.php
    new file mode 100644
    index 00000000000..6012e93e6ea
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/MemoryDrawing.php
    @@ -0,0 +1,169 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +class MemoryDrawing extends BaseDrawing
    +{
    +    // Rendering functions
    +    const RENDERING_DEFAULT = 'imagepng';
    +    const RENDERING_PNG = 'imagepng';
    +    const RENDERING_GIF = 'imagegif';
    +    const RENDERING_JPEG = 'imagejpeg';
    +
    +    // MIME types
    +    const MIMETYPE_DEFAULT = 'image/png';
    +    const MIMETYPE_PNG = 'image/png';
    +    const MIMETYPE_GIF = 'image/gif';
    +    const MIMETYPE_JPEG = 'image/jpeg';
    +
    +    /**
    +     * Image resource.
    +     *
    +     * @var resource
    +     */
    +    private $imageResource;
    +
    +    /**
    +     * Rendering function.
    +     *
    +     * @var string
    +     */
    +    private $renderingFunction;
    +
    +    /**
    +     * Mime type.
    +     *
    +     * @var string
    +     */
    +    private $mimeType;
    +
    +    /**
    +     * Unique name.
    +     *
    +     * @var string
    +     */
    +    private $uniqueName;
    +
    +    /**
    +     * Create a new MemoryDrawing.
    +     */
    +    public function __construct()
    +    {
    +        // Initialise values
    +        $this->imageResource = null;
    +        $this->renderingFunction = self::RENDERING_DEFAULT;
    +        $this->mimeType = self::MIMETYPE_DEFAULT;
    +        $this->uniqueName = md5(rand(0, 9999) . time() . rand(0, 9999));
    +
    +        // Initialize parent
    +        parent::__construct();
    +    }
    +
    +    /**
    +     * Get image resource.
    +     *
    +     * @return resource
    +     */
    +    public function getImageResource()
    +    {
    +        return $this->imageResource;
    +    }
    +
    +    /**
    +     * Set image resource.
    +     *
    +     * @param resource $value
    +     *
    +     * @return MemoryDrawing
    +     */
    +    public function setImageResource($value)
    +    {
    +        $this->imageResource = $value;
    +
    +        if ($this->imageResource !== null) {
    +            // Get width/height
    +            $this->width = imagesx($this->imageResource);
    +            $this->height = imagesy($this->imageResource);
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get rendering function.
    +     *
    +     * @return string
    +     */
    +    public function getRenderingFunction()
    +    {
    +        return $this->renderingFunction;
    +    }
    +
    +    /**
    +     * Set rendering function.
    +     *
    +     * @param string $value see self::RENDERING_*
    +     *
    +     * @return MemoryDrawing
    +     */
    +    public function setRenderingFunction($value)
    +    {
    +        $this->renderingFunction = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get mime type.
    +     *
    +     * @return string
    +     */
    +    public function getMimeType()
    +    {
    +        return $this->mimeType;
    +    }
    +
    +    /**
    +     * Set mime type.
    +     *
    +     * @param string $value see self::MIMETYPE_*
    +     *
    +     * @return MemoryDrawing
    +     */
    +    public function setMimeType($value)
    +    {
    +        $this->mimeType = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get indexed filename (using image index).
    +     *
    +     * @return string
    +     */
    +    public function getIndexedFilename()
    +    {
    +        $extension = strtolower($this->getMimeType());
    +        $extension = explode('/', $extension);
    +        $extension = $extension[1];
    +
    +        return $this->uniqueName . $this->getImageIndex() . '.' . $extension;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        return md5(
    +            $this->renderingFunction .
    +            $this->mimeType .
    +            $this->uniqueName .
    +            parent::getHashCode() .
    +            __CLASS__
    +        );
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/PageMargins.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/PageMargins.php
    new file mode 100644
    index 00000000000..eb44a1094c5
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/PageMargins.php
    @@ -0,0 +1,214 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +class PageMargins
    +{
    +    /**
    +     * Left.
    +     *
    +     * @var float
    +     */
    +    private $left = 0.7;
    +
    +    /**
    +     * Right.
    +     *
    +     * @var float
    +     */
    +    private $right = 0.7;
    +
    +    /**
    +     * Top.
    +     *
    +     * @var float
    +     */
    +    private $top = 0.75;
    +
    +    /**
    +     * Bottom.
    +     *
    +     * @var float
    +     */
    +    private $bottom = 0.75;
    +
    +    /**
    +     * Header.
    +     *
    +     * @var float
    +     */
    +    private $header = 0.3;
    +
    +    /**
    +     * Footer.
    +     *
    +     * @var float
    +     */
    +    private $footer = 0.3;
    +
    +    /**
    +     * Create a new PageMargins.
    +     */
    +    public function __construct()
    +    {
    +    }
    +
    +    /**
    +     * Get Left.
    +     *
    +     * @return float
    +     */
    +    public function getLeft()
    +    {
    +        return $this->left;
    +    }
    +
    +    /**
    +     * Set Left.
    +     *
    +     * @param float $pValue
    +     *
    +     * @return PageMargins
    +     */
    +    public function setLeft($pValue)
    +    {
    +        $this->left = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Right.
    +     *
    +     * @return float
    +     */
    +    public function getRight()
    +    {
    +        return $this->right;
    +    }
    +
    +    /**
    +     * Set Right.
    +     *
    +     * @param float $pValue
    +     *
    +     * @return PageMargins
    +     */
    +    public function setRight($pValue)
    +    {
    +        $this->right = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Top.
    +     *
    +     * @return float
    +     */
    +    public function getTop()
    +    {
    +        return $this->top;
    +    }
    +
    +    /**
    +     * Set Top.
    +     *
    +     * @param float $pValue
    +     *
    +     * @return PageMargins
    +     */
    +    public function setTop($pValue)
    +    {
    +        $this->top = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Bottom.
    +     *
    +     * @return float
    +     */
    +    public function getBottom()
    +    {
    +        return $this->bottom;
    +    }
    +
    +    /**
    +     * Set Bottom.
    +     *
    +     * @param float $pValue
    +     *
    +     * @return PageMargins
    +     */
    +    public function setBottom($pValue)
    +    {
    +        $this->bottom = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Header.
    +     *
    +     * @return float
    +     */
    +    public function getHeader()
    +    {
    +        return $this->header;
    +    }
    +
    +    /**
    +     * Set Header.
    +     *
    +     * @param float $pValue
    +     *
    +     * @return PageMargins
    +     */
    +    public function setHeader($pValue)
    +    {
    +        $this->header = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Footer.
    +     *
    +     * @return float
    +     */
    +    public function getFooter()
    +    {
    +        return $this->footer;
    +    }
    +
    +    /**
    +     * Set Footer.
    +     *
    +     * @param float $pValue
    +     *
    +     * @return PageMargins
    +     */
    +    public function setFooter($pValue)
    +    {
    +        $this->footer = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/PageSetup.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/PageSetup.php
    new file mode 100644
    index 00000000000..ab007f61d54
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/PageSetup.php
    @@ -0,0 +1,851 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +/**
    + * <code>
    + * Paper size taken from Office Open XML Part 4 - Markup Language Reference, page 1988:.
    + *
    + * 1 = Letter paper (8.5 in. by 11 in.)
    + * 2 = Letter small paper (8.5 in. by 11 in.)
    + * 3 = Tabloid paper (11 in. by 17 in.)
    + * 4 = Ledger paper (17 in. by 11 in.)
    + * 5 = Legal paper (8.5 in. by 14 in.)
    + * 6 = Statement paper (5.5 in. by 8.5 in.)
    + * 7 = Executive paper (7.25 in. by 10.5 in.)
    + * 8 = A3 paper (297 mm by 420 mm)
    + * 9 = A4 paper (210 mm by 297 mm)
    + * 10 = A4 small paper (210 mm by 297 mm)
    + * 11 = A5 paper (148 mm by 210 mm)
    + * 12 = B4 paper (250 mm by 353 mm)
    + * 13 = B5 paper (176 mm by 250 mm)
    + * 14 = Folio paper (8.5 in. by 13 in.)
    + * 15 = Quarto paper (215 mm by 275 mm)
    + * 16 = Standard paper (10 in. by 14 in.)
    + * 17 = Standard paper (11 in. by 17 in.)
    + * 18 = Note paper (8.5 in. by 11 in.)
    + * 19 = #9 envelope (3.875 in. by 8.875 in.)
    + * 20 = #10 envelope (4.125 in. by 9.5 in.)
    + * 21 = #11 envelope (4.5 in. by 10.375 in.)
    + * 22 = #12 envelope (4.75 in. by 11 in.)
    + * 23 = #14 envelope (5 in. by 11.5 in.)
    + * 24 = C paper (17 in. by 22 in.)
    + * 25 = D paper (22 in. by 34 in.)
    + * 26 = E paper (34 in. by 44 in.)
    + * 27 = DL envelope (110 mm by 220 mm)
    + * 28 = C5 envelope (162 mm by 229 mm)
    + * 29 = C3 envelope (324 mm by 458 mm)
    + * 30 = C4 envelope (229 mm by 324 mm)
    + * 31 = C6 envelope (114 mm by 162 mm)
    + * 32 = C65 envelope (114 mm by 229 mm)
    + * 33 = B4 envelope (250 mm by 353 mm)
    + * 34 = B5 envelope (176 mm by 250 mm)
    + * 35 = B6 envelope (176 mm by 125 mm)
    + * 36 = Italy envelope (110 mm by 230 mm)
    + * 37 = Monarch envelope (3.875 in. by 7.5 in.).
    + * 38 = 6 3/4 envelope (3.625 in. by 6.5 in.)
    + * 39 = US standard fanfold (14.875 in. by 11 in.)
    + * 40 = German standard fanfold (8.5 in. by 12 in.)
    + * 41 = German legal fanfold (8.5 in. by 13 in.)
    + * 42 = ISO B4 (250 mm by 353 mm)
    + * 43 = Japanese double postcard (200 mm by 148 mm)
    + * 44 = Standard paper (9 in. by 11 in.)
    + * 45 = Standard paper (10 in. by 11 in.)
    + * 46 = Standard paper (15 in. by 11 in.)
    + * 47 = Invite envelope (220 mm by 220 mm)
    + * 50 = Letter extra paper (9.275 in. by 12 in.)
    + * 51 = Legal extra paper (9.275 in. by 15 in.)
    + * 52 = Tabloid extra paper (11.69 in. by 18 in.)
    + * 53 = A4 extra paper (236 mm by 322 mm)
    + * 54 = Letter transverse paper (8.275 in. by 11 in.)
    + * 55 = A4 transverse paper (210 mm by 297 mm)
    + * 56 = Letter extra transverse paper (9.275 in. by 12 in.)
    + * 57 = SuperA/SuperA/A4 paper (227 mm by 356 mm)
    + * 58 = SuperB/SuperB/A3 paper (305 mm by 487 mm)
    + * 59 = Letter plus paper (8.5 in. by 12.69 in.)
    + * 60 = A4 plus paper (210 mm by 330 mm)
    + * 61 = A5 transverse paper (148 mm by 210 mm)
    + * 62 = JIS B5 transverse paper (182 mm by 257 mm)
    + * 63 = A3 extra paper (322 mm by 445 mm)
    + * 64 = A5 extra paper (174 mm by 235 mm)
    + * 65 = ISO B5 extra paper (201 mm by 276 mm)
    + * 66 = A2 paper (420 mm by 594 mm)
    + * 67 = A3 transverse paper (297 mm by 420 mm)
    + * 68 = A3 extra transverse paper (322 mm by 445 mm)
    + * </code>
    + *
    + * @category   PhpSpreadsheet
    + *
    + * @copyright  Copyright (c) 2006 - 2016 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet)
    + */
    +class PageSetup
    +{
    +    // Paper size
    +    const PAPERSIZE_LETTER = 1;
    +    const PAPERSIZE_LETTER_SMALL = 2;
    +    const PAPERSIZE_TABLOID = 3;
    +    const PAPERSIZE_LEDGER = 4;
    +    const PAPERSIZE_LEGAL = 5;
    +    const PAPERSIZE_STATEMENT = 6;
    +    const PAPERSIZE_EXECUTIVE = 7;
    +    const PAPERSIZE_A3 = 8;
    +    const PAPERSIZE_A4 = 9;
    +    const PAPERSIZE_A4_SMALL = 10;
    +    const PAPERSIZE_A5 = 11;
    +    const PAPERSIZE_B4 = 12;
    +    const PAPERSIZE_B5 = 13;
    +    const PAPERSIZE_FOLIO = 14;
    +    const PAPERSIZE_QUARTO = 15;
    +    const PAPERSIZE_STANDARD_1 = 16;
    +    const PAPERSIZE_STANDARD_2 = 17;
    +    const PAPERSIZE_NOTE = 18;
    +    const PAPERSIZE_NO9_ENVELOPE = 19;
    +    const PAPERSIZE_NO10_ENVELOPE = 20;
    +    const PAPERSIZE_NO11_ENVELOPE = 21;
    +    const PAPERSIZE_NO12_ENVELOPE = 22;
    +    const PAPERSIZE_NO14_ENVELOPE = 23;
    +    const PAPERSIZE_C = 24;
    +    const PAPERSIZE_D = 25;
    +    const PAPERSIZE_E = 26;
    +    const PAPERSIZE_DL_ENVELOPE = 27;
    +    const PAPERSIZE_C5_ENVELOPE = 28;
    +    const PAPERSIZE_C3_ENVELOPE = 29;
    +    const PAPERSIZE_C4_ENVELOPE = 30;
    +    const PAPERSIZE_C6_ENVELOPE = 31;
    +    const PAPERSIZE_C65_ENVELOPE = 32;
    +    const PAPERSIZE_B4_ENVELOPE = 33;
    +    const PAPERSIZE_B5_ENVELOPE = 34;
    +    const PAPERSIZE_B6_ENVELOPE = 35;
    +    const PAPERSIZE_ITALY_ENVELOPE = 36;
    +    const PAPERSIZE_MONARCH_ENVELOPE = 37;
    +    const PAPERSIZE_6_3_4_ENVELOPE = 38;
    +    const PAPERSIZE_US_STANDARD_FANFOLD = 39;
    +    const PAPERSIZE_GERMAN_STANDARD_FANFOLD = 40;
    +    const PAPERSIZE_GERMAN_LEGAL_FANFOLD = 41;
    +    const PAPERSIZE_ISO_B4 = 42;
    +    const PAPERSIZE_JAPANESE_DOUBLE_POSTCARD = 43;
    +    const PAPERSIZE_STANDARD_PAPER_1 = 44;
    +    const PAPERSIZE_STANDARD_PAPER_2 = 45;
    +    const PAPERSIZE_STANDARD_PAPER_3 = 46;
    +    const PAPERSIZE_INVITE_ENVELOPE = 47;
    +    const PAPERSIZE_LETTER_EXTRA_PAPER = 48;
    +    const PAPERSIZE_LEGAL_EXTRA_PAPER = 49;
    +    const PAPERSIZE_TABLOID_EXTRA_PAPER = 50;
    +    const PAPERSIZE_A4_EXTRA_PAPER = 51;
    +    const PAPERSIZE_LETTER_TRANSVERSE_PAPER = 52;
    +    const PAPERSIZE_A4_TRANSVERSE_PAPER = 53;
    +    const PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER = 54;
    +    const PAPERSIZE_SUPERA_SUPERA_A4_PAPER = 55;
    +    const PAPERSIZE_SUPERB_SUPERB_A3_PAPER = 56;
    +    const PAPERSIZE_LETTER_PLUS_PAPER = 57;
    +    const PAPERSIZE_A4_PLUS_PAPER = 58;
    +    const PAPERSIZE_A5_TRANSVERSE_PAPER = 59;
    +    const PAPERSIZE_JIS_B5_TRANSVERSE_PAPER = 60;
    +    const PAPERSIZE_A3_EXTRA_PAPER = 61;
    +    const PAPERSIZE_A5_EXTRA_PAPER = 62;
    +    const PAPERSIZE_ISO_B5_EXTRA_PAPER = 63;
    +    const PAPERSIZE_A2_PAPER = 64;
    +    const PAPERSIZE_A3_TRANSVERSE_PAPER = 65;
    +    const PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER = 66;
    +
    +    // Page orientation
    +    const ORIENTATION_DEFAULT = 'default';
    +    const ORIENTATION_LANDSCAPE = 'landscape';
    +    const ORIENTATION_PORTRAIT = 'portrait';
    +
    +    // Print Range Set Method
    +    const SETPRINTRANGE_OVERWRITE = 'O';
    +    const SETPRINTRANGE_INSERT = 'I';
    +
    +    /**
    +     * Paper size.
    +     *
    +     * @var int
    +     */
    +    private $paperSize = self::PAPERSIZE_LETTER;
    +
    +    /**
    +     * Orientation.
    +     *
    +     * @var string
    +     */
    +    private $orientation = self::ORIENTATION_DEFAULT;
    +
    +    /**
    +     * Scale (Print Scale).
    +     *
    +     * Print scaling. Valid values range from 10 to 400
    +     * This setting is overridden when fitToWidth and/or fitToHeight are in use
    +     *
    +     * @var int?
    +     */
    +    private $scale = 100;
    +
    +    /**
    +     * Fit To Page
    +     * Whether scale or fitToWith / fitToHeight applies.
    +     *
    +     * @var bool
    +     */
    +    private $fitToPage = false;
    +
    +    /**
    +     * Fit To Height
    +     * Number of vertical pages to fit on.
    +     *
    +     * @var int?
    +     */
    +    private $fitToHeight = 1;
    +
    +    /**
    +     * Fit To Width
    +     * Number of horizontal pages to fit on.
    +     *
    +     * @var int?
    +     */
    +    private $fitToWidth = 1;
    +
    +    /**
    +     * Columns to repeat at left.
    +     *
    +     * @var array Containing start column and end column, empty array if option unset
    +     */
    +    private $columnsToRepeatAtLeft = ['', ''];
    +
    +    /**
    +     * Rows to repeat at top.
    +     *
    +     * @var array Containing start row number and end row number, empty array if option unset
    +     */
    +    private $rowsToRepeatAtTop = [0, 0];
    +
    +    /**
    +     * Center page horizontally.
    +     *
    +     * @var bool
    +     */
    +    private $horizontalCentered = false;
    +
    +    /**
    +     * Center page vertically.
    +     *
    +     * @var bool
    +     */
    +    private $verticalCentered = false;
    +
    +    /**
    +     * Print area.
    +     *
    +     * @var string
    +     */
    +    private $printArea;
    +
    +    /**
    +     * First page number.
    +     *
    +     * @var int
    +     */
    +    private $firstPageNumber;
    +
    +    /**
    +     * Create a new PageSetup.
    +     */
    +    public function __construct()
    +    {
    +    }
    +
    +    /**
    +     * Get Paper Size.
    +     *
    +     * @return int
    +     */
    +    public function getPaperSize()
    +    {
    +        return $this->paperSize;
    +    }
    +
    +    /**
    +     * Set Paper Size.
    +     *
    +     * @param int $pValue see self::PAPERSIZE_*
    +     *
    +     * @return PageSetup
    +     */
    +    public function setPaperSize($pValue)
    +    {
    +        $this->paperSize = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Orientation.
    +     *
    +     * @return string
    +     */
    +    public function getOrientation()
    +    {
    +        return $this->orientation;
    +    }
    +
    +    /**
    +     * Set Orientation.
    +     *
    +     * @param string $pValue see self::ORIENTATION_*
    +     *
    +     * @return PageSetup
    +     */
    +    public function setOrientation($pValue)
    +    {
    +        $this->orientation = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Scale.
    +     *
    +     * @return int?
    +     */
    +    public function getScale()
    +    {
    +        return $this->scale;
    +    }
    +
    +    /**
    +     * Set Scale.
    +     * Print scaling. Valid values range from 10 to 400
    +     * This setting is overridden when fitToWidth and/or fitToHeight are in use.
    +     *
    +     * @param null|int $pValue
    +     * @param bool $pUpdate Update fitToPage so scaling applies rather than fitToHeight / fitToWidth
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return PageSetup
    +     */
    +    public function setScale($pValue, $pUpdate = true)
    +    {
    +        // Microsoft Office Excel 2007 only allows setting a scale between 10 and 400 via the user interface,
    +        // but it is apparently still able to handle any scale >= 0, where 0 results in 100
    +        if (($pValue >= 0) || $pValue === null) {
    +            $this->scale = $pValue;
    +            if ($pUpdate) {
    +                $this->fitToPage = false;
    +            }
    +        } else {
    +            throw new PhpSpreadsheetException('Scale must not be negative');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Fit To Page.
    +     *
    +     * @return bool
    +     */
    +    public function getFitToPage()
    +    {
    +        return $this->fitToPage;
    +    }
    +
    +    /**
    +     * Set Fit To Page.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return PageSetup
    +     */
    +    public function setFitToPage($pValue)
    +    {
    +        $this->fitToPage = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Fit To Height.
    +     *
    +     * @return int?
    +     */
    +    public function getFitToHeight()
    +    {
    +        return $this->fitToHeight;
    +    }
    +
    +    /**
    +     * Set Fit To Height.
    +     *
    +     * @param null|int $pValue
    +     * @param bool $pUpdate Update fitToPage so it applies rather than scaling
    +     *
    +     * @return PageSetup
    +     */
    +    public function setFitToHeight($pValue, $pUpdate = true)
    +    {
    +        $this->fitToHeight = $pValue;
    +        if ($pUpdate) {
    +            $this->fitToPage = true;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Fit To Width.
    +     *
    +     * @return int?
    +     */
    +    public function getFitToWidth()
    +    {
    +        return $this->fitToWidth;
    +    }
    +
    +    /**
    +     * Set Fit To Width.
    +     *
    +     * @param null|int $pValue
    +     * @param bool $pUpdate Update fitToPage so it applies rather than scaling
    +     *
    +     * @return PageSetup
    +     */
    +    public function setFitToWidth($pValue, $pUpdate = true)
    +    {
    +        $this->fitToWidth = $pValue;
    +        if ($pUpdate) {
    +            $this->fitToPage = true;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Is Columns to repeat at left set?
    +     *
    +     * @return bool
    +     */
    +    public function isColumnsToRepeatAtLeftSet()
    +    {
    +        if (is_array($this->columnsToRepeatAtLeft)) {
    +            if ($this->columnsToRepeatAtLeft[0] != '' && $this->columnsToRepeatAtLeft[1] != '') {
    +                return true;
    +            }
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Get Columns to repeat at left.
    +     *
    +     * @return array Containing start column and end column, empty array if option unset
    +     */
    +    public function getColumnsToRepeatAtLeft()
    +    {
    +        return $this->columnsToRepeatAtLeft;
    +    }
    +
    +    /**
    +     * Set Columns to repeat at left.
    +     *
    +     * @param array $pValue Containing start column and end column, empty array if option unset
    +     *
    +     * @return PageSetup
    +     */
    +    public function setColumnsToRepeatAtLeft(array $pValue)
    +    {
    +        $this->columnsToRepeatAtLeft = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Columns to repeat at left by start and end.
    +     *
    +     * @param string $pStart eg: 'A'
    +     * @param string $pEnd eg: 'B'
    +     *
    +     * @return PageSetup
    +     */
    +    public function setColumnsToRepeatAtLeftByStartAndEnd($pStart, $pEnd)
    +    {
    +        $this->columnsToRepeatAtLeft = [$pStart, $pEnd];
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Is Rows to repeat at top set?
    +     *
    +     * @return bool
    +     */
    +    public function isRowsToRepeatAtTopSet()
    +    {
    +        if (is_array($this->rowsToRepeatAtTop)) {
    +            if ($this->rowsToRepeatAtTop[0] != 0 && $this->rowsToRepeatAtTop[1] != 0) {
    +                return true;
    +            }
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Get Rows to repeat at top.
    +     *
    +     * @return array Containing start column and end column, empty array if option unset
    +     */
    +    public function getRowsToRepeatAtTop()
    +    {
    +        return $this->rowsToRepeatAtTop;
    +    }
    +
    +    /**
    +     * Set Rows to repeat at top.
    +     *
    +     * @param array $pValue Containing start column and end column, empty array if option unset
    +     *
    +     * @return PageSetup
    +     */
    +    public function setRowsToRepeatAtTop(array $pValue)
    +    {
    +        $this->rowsToRepeatAtTop = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Rows to repeat at top by start and end.
    +     *
    +     * @param int $pStart eg: 1
    +     * @param int $pEnd eg: 1
    +     *
    +     * @return PageSetup
    +     */
    +    public function setRowsToRepeatAtTopByStartAndEnd($pStart, $pEnd)
    +    {
    +        $this->rowsToRepeatAtTop = [$pStart, $pEnd];
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get center page horizontally.
    +     *
    +     * @return bool
    +     */
    +    public function getHorizontalCentered()
    +    {
    +        return $this->horizontalCentered;
    +    }
    +
    +    /**
    +     * Set center page horizontally.
    +     *
    +     * @param bool $value
    +     *
    +     * @return PageSetup
    +     */
    +    public function setHorizontalCentered($value)
    +    {
    +        $this->horizontalCentered = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get center page vertically.
    +     *
    +     * @return bool
    +     */
    +    public function getVerticalCentered()
    +    {
    +        return $this->verticalCentered;
    +    }
    +
    +    /**
    +     * Set center page vertically.
    +     *
    +     * @param bool $value
    +     *
    +     * @return PageSetup
    +     */
    +    public function setVerticalCentered($value)
    +    {
    +        $this->verticalCentered = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get print area.
    +     *
    +     * @param int $index Identifier for a specific print area range if several ranges have been set
    +     *                            Default behaviour, or a index value of 0, will return all ranges as a comma-separated string
    +     *                            Otherwise, the specific range identified by the value of $index will be returned
    +     *                            Print areas are numbered from 1
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return string
    +     */
    +    public function getPrintArea($index = 0)
    +    {
    +        if ($index == 0) {
    +            return $this->printArea;
    +        }
    +        $printAreas = explode(',', $this->printArea);
    +        if (isset($printAreas[$index - 1])) {
    +            return $printAreas[$index - 1];
    +        }
    +
    +        throw new PhpSpreadsheetException('Requested Print Area does not exist');
    +    }
    +
    +    /**
    +     * Is print area set?
    +     *
    +     * @param int $index Identifier for a specific print area range if several ranges have been set
    +     *                            Default behaviour, or an index value of 0, will identify whether any print range is set
    +     *                            Otherwise, existence of the range identified by the value of $index will be returned
    +     *                            Print areas are numbered from 1
    +     *
    +     * @return bool
    +     */
    +    public function isPrintAreaSet($index = 0)
    +    {
    +        if ($index == 0) {
    +            return $this->printArea !== null;
    +        }
    +        $printAreas = explode(',', $this->printArea);
    +
    +        return isset($printAreas[$index - 1]);
    +    }
    +
    +    /**
    +     * Clear a print area.
    +     *
    +     * @param int $index Identifier for a specific print area range if several ranges have been set
    +     *                            Default behaviour, or an index value of 0, will clear all print ranges that are set
    +     *                            Otherwise, the range identified by the value of $index will be removed from the series
    +     *                            Print areas are numbered from 1
    +     *
    +     * @return PageSetup
    +     */
    +    public function clearPrintArea($index = 0)
    +    {
    +        if ($index == 0) {
    +            $this->printArea = null;
    +        } else {
    +            $printAreas = explode(',', $this->printArea);
    +            if (isset($printAreas[$index - 1])) {
    +                unset($printAreas[$index - 1]);
    +                $this->printArea = implode(',', $printAreas);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set print area. e.g. 'A1:D10' or 'A1:D10,G5:M20'.
    +     *
    +     * @param string $value
    +     * @param int $index Identifier for a specific print area range allowing several ranges to be set
    +     *                            When the method is "O"verwrite, then a positive integer index will overwrite that indexed
    +     *                                entry in the print areas list; a negative index value will identify which entry to
    +     *                                overwrite working bacward through the print area to the list, with the last entry as -1.
    +     *                                Specifying an index value of 0, will overwrite <b>all</b> existing print ranges.
    +     *                            When the method is "I"nsert, then a positive index will insert after that indexed entry in
    +     *                                the print areas list, while a negative index will insert before the indexed entry.
    +     *                                Specifying an index value of 0, will always append the new print range at the end of the
    +     *                                list.
    +     *                            Print areas are numbered from 1
    +     * @param string $method Determines the method used when setting multiple print areas
    +     *                            Default behaviour, or the "O" method, overwrites existing print area
    +     *                            The "I" method, inserts the new print area before any specified index, or at the end of the list
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return PageSetup
    +     */
    +    public function setPrintArea($value, $index = 0, $method = self::SETPRINTRANGE_OVERWRITE)
    +    {
    +        if (strpos($value, '!') !== false) {
    +            throw new PhpSpreadsheetException('Cell coordinate must not specify a worksheet.');
    +        } elseif (strpos($value, ':') === false) {
    +            throw new PhpSpreadsheetException('Cell coordinate must be a range of cells.');
    +        } elseif (strpos($value, '$') !== false) {
    +            throw new PhpSpreadsheetException('Cell coordinate must not be absolute.');
    +        }
    +        $value = strtoupper($value);
    +
    +        if ($method == self::SETPRINTRANGE_OVERWRITE) {
    +            if ($index == 0) {
    +                $this->printArea = $value;
    +            } else {
    +                $printAreas = explode(',', $this->printArea);
    +                if ($index < 0) {
    +                    $index = count($printAreas) - abs($index) + 1;
    +                }
    +                if (($index <= 0) || ($index > count($printAreas))) {
    +                    throw new PhpSpreadsheetException('Invalid index for setting print range.');
    +                }
    +                $printAreas[$index - 1] = $value;
    +                $this->printArea = implode(',', $printAreas);
    +            }
    +        } elseif ($method == self::SETPRINTRANGE_INSERT) {
    +            if ($index == 0) {
    +                $this->printArea .= ($this->printArea == '') ? $value : ',' . $value;
    +            } else {
    +                $printAreas = explode(',', $this->printArea);
    +                if ($index < 0) {
    +                    $index = abs($index) - 1;
    +                }
    +                if ($index > count($printAreas)) {
    +                    throw new PhpSpreadsheetException('Invalid index for setting print range.');
    +                }
    +                $printAreas = array_merge(array_slice($printAreas, 0, $index), [$value], array_slice($printAreas, $index));
    +                $this->printArea = implode(',', $printAreas);
    +            }
    +        } else {
    +            throw new PhpSpreadsheetException('Invalid method for setting print range.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Add a new print area (e.g. 'A1:D10' or 'A1:D10,G5:M20') to the list of print areas.
    +     *
    +     * @param string $value
    +     * @param int $index Identifier for a specific print area range allowing several ranges to be set
    +     *                            A positive index will insert after that indexed entry in the print areas list, while a
    +     *                                negative index will insert before the indexed entry.
    +     *                                Specifying an index value of 0, will always append the new print range at the end of the
    +     *                                list.
    +     *                            Print areas are numbered from 1
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return PageSetup
    +     */
    +    public function addPrintArea($value, $index = -1)
    +    {
    +        return $this->setPrintArea($value, $index, self::SETPRINTRANGE_INSERT);
    +    }
    +
    +    /**
    +     * Set print area.
    +     *
    +     * @param int $column1 Column 1
    +     * @param int $row1 Row 1
    +     * @param int $column2 Column 2
    +     * @param int $row2 Row 2
    +     * @param int $index Identifier for a specific print area range allowing several ranges to be set
    +     *                                When the method is "O"verwrite, then a positive integer index will overwrite that indexed
    +     *                                    entry in the print areas list; a negative index value will identify which entry to
    +     *                                    overwrite working backward through the print area to the list, with the last entry as -1.
    +     *                                    Specifying an index value of 0, will overwrite <b>all</b> existing print ranges.
    +     *                                When the method is "I"nsert, then a positive index will insert after that indexed entry in
    +     *                                    the print areas list, while a negative index will insert before the indexed entry.
    +     *                                    Specifying an index value of 0, will always append the new print range at the end of the
    +     *                                    list.
    +     *                                Print areas are numbered from 1
    +     * @param string $method Determines the method used when setting multiple print areas
    +     *                                Default behaviour, or the "O" method, overwrites existing print area
    +     *                                The "I" method, inserts the new print area before any specified index, or at the end of the list
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return PageSetup
    +     */
    +    public function setPrintAreaByColumnAndRow($column1, $row1, $column2, $row2, $index = 0, $method = self::SETPRINTRANGE_OVERWRITE)
    +    {
    +        return $this->setPrintArea(
    +            Coordinate::stringFromColumnIndex($column1) . $row1 . ':' . Coordinate::stringFromColumnIndex($column2) . $row2,
    +            $index,
    +            $method
    +        );
    +    }
    +
    +    /**
    +     * Add a new print area to the list of print areas.
    +     *
    +     * @param int $column1 Start Column for the print area
    +     * @param int $row1 Start Row for the print area
    +     * @param int $column2 End Column for the print area
    +     * @param int $row2 End Row for the print area
    +     * @param int $index Identifier for a specific print area range allowing several ranges to be set
    +     *                                A positive index will insert after that indexed entry in the print areas list, while a
    +     *                                    negative index will insert before the indexed entry.
    +     *                                    Specifying an index value of 0, will always append the new print range at the end of the
    +     *                                    list.
    +     *                                Print areas are numbered from 1
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return PageSetup
    +     */
    +    public function addPrintAreaByColumnAndRow($column1, $row1, $column2, $row2, $index = -1)
    +    {
    +        return $this->setPrintArea(
    +            Coordinate::stringFromColumnIndex($column1) . $row1 . ':' . Coordinate::stringFromColumnIndex($column2) . $row2,
    +            $index,
    +            self::SETPRINTRANGE_INSERT
    +        );
    +    }
    +
    +    /**
    +     * Get first page number.
    +     *
    +     * @return int
    +     */
    +    public function getFirstPageNumber()
    +    {
    +        return $this->firstPageNumber;
    +    }
    +
    +    /**
    +     * Set first page number.
    +     *
    +     * @param int $value
    +     *
    +     * @return PageSetup
    +     */
    +    public function setFirstPageNumber($value)
    +    {
    +        $this->firstPageNumber = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Reset first page number.
    +     *
    +     * @return PageSetup
    +     */
    +    public function resetFirstPageNumber()
    +    {
    +        return $this->setFirstPageNumber(null);
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Protection.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Protection.php
    new file mode 100644
    index 00000000000..1815f45bf07
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Protection.php
    @@ -0,0 +1,586 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\PasswordHasher;
    +
    +class Protection
    +{
    +    /**
    +     * Sheet.
    +     *
    +     * @var bool
    +     */
    +    private $sheet = false;
    +
    +    /**
    +     * Objects.
    +     *
    +     * @var bool
    +     */
    +    private $objects = false;
    +
    +    /**
    +     * Scenarios.
    +     *
    +     * @var bool
    +     */
    +    private $scenarios = false;
    +
    +    /**
    +     * Format cells.
    +     *
    +     * @var bool
    +     */
    +    private $formatCells = false;
    +
    +    /**
    +     * Format columns.
    +     *
    +     * @var bool
    +     */
    +    private $formatColumns = false;
    +
    +    /**
    +     * Format rows.
    +     *
    +     * @var bool
    +     */
    +    private $formatRows = false;
    +
    +    /**
    +     * Insert columns.
    +     *
    +     * @var bool
    +     */
    +    private $insertColumns = false;
    +
    +    /**
    +     * Insert rows.
    +     *
    +     * @var bool
    +     */
    +    private $insertRows = false;
    +
    +    /**
    +     * Insert hyperlinks.
    +     *
    +     * @var bool
    +     */
    +    private $insertHyperlinks = false;
    +
    +    /**
    +     * Delete columns.
    +     *
    +     * @var bool
    +     */
    +    private $deleteColumns = false;
    +
    +    /**
    +     * Delete rows.
    +     *
    +     * @var bool
    +     */
    +    private $deleteRows = false;
    +
    +    /**
    +     * Select locked cells.
    +     *
    +     * @var bool
    +     */
    +    private $selectLockedCells = false;
    +
    +    /**
    +     * Sort.
    +     *
    +     * @var bool
    +     */
    +    private $sort = false;
    +
    +    /**
    +     * AutoFilter.
    +     *
    +     * @var bool
    +     */
    +    private $autoFilter = false;
    +
    +    /**
    +     * Pivot tables.
    +     *
    +     * @var bool
    +     */
    +    private $pivotTables = false;
    +
    +    /**
    +     * Select unlocked cells.
    +     *
    +     * @var bool
    +     */
    +    private $selectUnlockedCells = false;
    +
    +    /**
    +     * Password.
    +     *
    +     * @var string
    +     */
    +    private $password = '';
    +
    +    /**
    +     * Create a new Protection.
    +     */
    +    public function __construct()
    +    {
    +    }
    +
    +    /**
    +     * Is some sort of protection enabled?
    +     *
    +     * @return bool
    +     */
    +    public function isProtectionEnabled()
    +    {
    +        return $this->sheet ||
    +            $this->objects ||
    +            $this->scenarios ||
    +            $this->formatCells ||
    +            $this->formatColumns ||
    +            $this->formatRows ||
    +            $this->insertColumns ||
    +            $this->insertRows ||
    +            $this->insertHyperlinks ||
    +            $this->deleteColumns ||
    +            $this->deleteRows ||
    +            $this->selectLockedCells ||
    +            $this->sort ||
    +            $this->autoFilter ||
    +            $this->pivotTables ||
    +            $this->selectUnlockedCells;
    +    }
    +
    +    /**
    +     * Get Sheet.
    +     *
    +     * @return bool
    +     */
    +    public function getSheet()
    +    {
    +        return $this->sheet;
    +    }
    +
    +    /**
    +     * Set Sheet.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setSheet($pValue)
    +    {
    +        $this->sheet = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Objects.
    +     *
    +     * @return bool
    +     */
    +    public function getObjects()
    +    {
    +        return $this->objects;
    +    }
    +
    +    /**
    +     * Set Objects.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setObjects($pValue)
    +    {
    +        $this->objects = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Scenarios.
    +     *
    +     * @return bool
    +     */
    +    public function getScenarios()
    +    {
    +        return $this->scenarios;
    +    }
    +
    +    /**
    +     * Set Scenarios.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setScenarios($pValue)
    +    {
    +        $this->scenarios = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get FormatCells.
    +     *
    +     * @return bool
    +     */
    +    public function getFormatCells()
    +    {
    +        return $this->formatCells;
    +    }
    +
    +    /**
    +     * Set FormatCells.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setFormatCells($pValue)
    +    {
    +        $this->formatCells = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get FormatColumns.
    +     *
    +     * @return bool
    +     */
    +    public function getFormatColumns()
    +    {
    +        return $this->formatColumns;
    +    }
    +
    +    /**
    +     * Set FormatColumns.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setFormatColumns($pValue)
    +    {
    +        $this->formatColumns = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get FormatRows.
    +     *
    +     * @return bool
    +     */
    +    public function getFormatRows()
    +    {
    +        return $this->formatRows;
    +    }
    +
    +    /**
    +     * Set FormatRows.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setFormatRows($pValue)
    +    {
    +        $this->formatRows = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get InsertColumns.
    +     *
    +     * @return bool
    +     */
    +    public function getInsertColumns()
    +    {
    +        return $this->insertColumns;
    +    }
    +
    +    /**
    +     * Set InsertColumns.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setInsertColumns($pValue)
    +    {
    +        $this->insertColumns = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get InsertRows.
    +     *
    +     * @return bool
    +     */
    +    public function getInsertRows()
    +    {
    +        return $this->insertRows;
    +    }
    +
    +    /**
    +     * Set InsertRows.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setInsertRows($pValue)
    +    {
    +        $this->insertRows = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get InsertHyperlinks.
    +     *
    +     * @return bool
    +     */
    +    public function getInsertHyperlinks()
    +    {
    +        return $this->insertHyperlinks;
    +    }
    +
    +    /**
    +     * Set InsertHyperlinks.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setInsertHyperlinks($pValue)
    +    {
    +        $this->insertHyperlinks = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get DeleteColumns.
    +     *
    +     * @return bool
    +     */
    +    public function getDeleteColumns()
    +    {
    +        return $this->deleteColumns;
    +    }
    +
    +    /**
    +     * Set DeleteColumns.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setDeleteColumns($pValue)
    +    {
    +        $this->deleteColumns = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get DeleteRows.
    +     *
    +     * @return bool
    +     */
    +    public function getDeleteRows()
    +    {
    +        return $this->deleteRows;
    +    }
    +
    +    /**
    +     * Set DeleteRows.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setDeleteRows($pValue)
    +    {
    +        $this->deleteRows = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get SelectLockedCells.
    +     *
    +     * @return bool
    +     */
    +    public function getSelectLockedCells()
    +    {
    +        return $this->selectLockedCells;
    +    }
    +
    +    /**
    +     * Set SelectLockedCells.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setSelectLockedCells($pValue)
    +    {
    +        $this->selectLockedCells = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Sort.
    +     *
    +     * @return bool
    +     */
    +    public function getSort()
    +    {
    +        return $this->sort;
    +    }
    +
    +    /**
    +     * Set Sort.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setSort($pValue)
    +    {
    +        $this->sort = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get AutoFilter.
    +     *
    +     * @return bool
    +     */
    +    public function getAutoFilter()
    +    {
    +        return $this->autoFilter;
    +    }
    +
    +    /**
    +     * Set AutoFilter.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setAutoFilter($pValue)
    +    {
    +        $this->autoFilter = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get PivotTables.
    +     *
    +     * @return bool
    +     */
    +    public function getPivotTables()
    +    {
    +        return $this->pivotTables;
    +    }
    +
    +    /**
    +     * Set PivotTables.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setPivotTables($pValue)
    +    {
    +        $this->pivotTables = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get SelectUnlockedCells.
    +     *
    +     * @return bool
    +     */
    +    public function getSelectUnlockedCells()
    +    {
    +        return $this->selectUnlockedCells;
    +    }
    +
    +    /**
    +     * Set SelectUnlockedCells.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return Protection
    +     */
    +    public function setSelectUnlockedCells($pValue)
    +    {
    +        $this->selectUnlockedCells = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Password (hashed).
    +     *
    +     * @return string
    +     */
    +    public function getPassword()
    +    {
    +        return $this->password;
    +    }
    +
    +    /**
    +     * Set Password.
    +     *
    +     * @param string $pValue
    +     * @param bool $pAlreadyHashed If the password has already been hashed, set this to true
    +     *
    +     * @return Protection
    +     */
    +    public function setPassword($pValue, $pAlreadyHashed = false)
    +    {
    +        if (!$pAlreadyHashed) {
    +            $pValue = PasswordHasher::hashPassword($pValue);
    +        }
    +        $this->password = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Row.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Row.php
    new file mode 100644
    index 00000000000..2a379d2cd34
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Row.php
    @@ -0,0 +1,74 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +class Row
    +{
    +    /**
    +     * \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet.
    +     *
    +     * @var Worksheet
    +     */
    +    private $worksheet;
    +
    +    /**
    +     * Row index.
    +     *
    +     * @var int
    +     */
    +    private $rowIndex = 0;
    +
    +    /**
    +     * Create a new row.
    +     *
    +     * @param Worksheet $worksheet
    +     * @param int $rowIndex
    +     */
    +    public function __construct(Worksheet $worksheet = null, $rowIndex = 1)
    +    {
    +        // Set parent and row index
    +        $this->worksheet = $worksheet;
    +        $this->rowIndex = $rowIndex;
    +    }
    +
    +    /**
    +     * Destructor.
    +     */
    +    public function __destruct()
    +    {
    +        unset($this->worksheet);
    +    }
    +
    +    /**
    +     * Get row index.
    +     *
    +     * @return int
    +     */
    +    public function getRowIndex()
    +    {
    +        return $this->rowIndex;
    +    }
    +
    +    /**
    +     * Get cell iterator.
    +     *
    +     * @param string $startColumn The column address at which to start iterating
    +     * @param string $endColumn Optionally, the column address at which to stop iterating
    +     *
    +     * @return RowCellIterator
    +     */
    +    public function getCellIterator($startColumn = 'A', $endColumn = null)
    +    {
    +        return new RowCellIterator($this->worksheet, $this->rowIndex, $startColumn, $endColumn);
    +    }
    +
    +    /**
    +     * Returns bound worksheet.
    +     *
    +     * @return Worksheet
    +     */
    +    public function getWorksheet()
    +    {
    +        return $this->worksheet;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/RowCellIterator.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/RowCellIterator.php
    new file mode 100644
    index 00000000000..59ef329c8b9
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/RowCellIterator.php
    @@ -0,0 +1,195 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class RowCellIterator extends CellIterator
    +{
    +    /**
    +     * Current iterator position.
    +     *
    +     * @var int
    +     */
    +    private $currentColumnIndex;
    +
    +    /**
    +     * Row index.
    +     *
    +     * @var int
    +     */
    +    private $rowIndex = 1;
    +
    +    /**
    +     * Start position.
    +     *
    +     * @var int
    +     */
    +    private $startColumnIndex = 1;
    +
    +    /**
    +     * End position.
    +     *
    +     * @var int
    +     */
    +    private $endColumnIndex = 1;
    +
    +    /**
    +     * Create a new column iterator.
    +     *
    +     * @param Worksheet $worksheet The worksheet to iterate over
    +     * @param int $rowIndex The row that we want to iterate
    +     * @param string $startColumn The column address at which to start iterating
    +     * @param string $endColumn Optionally, the column address at which to stop iterating
    +     */
    +    public function __construct(Worksheet $worksheet = null, $rowIndex = 1, $startColumn = 'A', $endColumn = null)
    +    {
    +        // Set subject and row index
    +        $this->worksheet = $worksheet;
    +        $this->rowIndex = $rowIndex;
    +        $this->resetEnd($endColumn);
    +        $this->resetStart($startColumn);
    +    }
    +
    +    /**
    +     * (Re)Set the start column and the current column pointer.
    +     *
    +     * @param string $startColumn The column address at which to start iterating
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return RowCellIterator
    +     */
    +    public function resetStart($startColumn = 'A')
    +    {
    +        $this->startColumnIndex = Coordinate::columnIndexFromString($startColumn);
    +        $this->adjustForExistingOnlyRange();
    +        $this->seek(Coordinate::stringFromColumnIndex($this->startColumnIndex));
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * (Re)Set the end column.
    +     *
    +     * @param string $endColumn The column address at which to stop iterating
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return RowCellIterator
    +     */
    +    public function resetEnd($endColumn = null)
    +    {
    +        $endColumn = $endColumn ? $endColumn : $this->worksheet->getHighestColumn();
    +        $this->endColumnIndex = Coordinate::columnIndexFromString($endColumn);
    +        $this->adjustForExistingOnlyRange();
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set the column pointer to the selected column.
    +     *
    +     * @param string $column The column address to set the current pointer at
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return RowCellIterator
    +     */
    +    public function seek($column = 'A')
    +    {
    +        $column = Coordinate::columnIndexFromString($column);
    +        if (($column < $this->startColumnIndex) || ($column > $this->endColumnIndex)) {
    +            throw new PhpSpreadsheetException("Column $column is out of range ({$this->startColumnIndex} - {$this->endColumnIndex})");
    +        } elseif ($this->onlyExistingCells && !($this->worksheet->cellExistsByColumnAndRow($column, $this->rowIndex))) {
    +            throw new PhpSpreadsheetException('In "IterateOnlyExistingCells" mode and Cell does not exist');
    +        }
    +        $this->currentColumnIndex = $column;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Rewind the iterator to the starting column.
    +     */
    +    public function rewind()
    +    {
    +        $this->currentColumnIndex = $this->startColumnIndex;
    +    }
    +
    +    /**
    +     * Return the current cell in this worksheet row.
    +     *
    +     * @return \PhpOffice\PhpSpreadsheet\Cell\Cell
    +     */
    +    public function current()
    +    {
    +        return $this->worksheet->getCellByColumnAndRow($this->currentColumnIndex, $this->rowIndex);
    +    }
    +
    +    /**
    +     * Return the current iterator key.
    +     *
    +     * @return string
    +     */
    +    public function key()
    +    {
    +        return Coordinate::stringFromColumnIndex($this->currentColumnIndex);
    +    }
    +
    +    /**
    +     * Set the iterator to its next value.
    +     */
    +    public function next()
    +    {
    +        do {
    +            ++$this->currentColumnIndex;
    +        } while (($this->onlyExistingCells) && (!$this->worksheet->cellExistsByColumnAndRow($this->currentColumnIndex, $this->rowIndex)) && ($this->currentColumnIndex <= $this->endColumnIndex));
    +    }
    +
    +    /**
    +     * Set the iterator to its previous value.
    +     *
    +     * @throws PhpSpreadsheetException
    +     */
    +    public function prev()
    +    {
    +        do {
    +            --$this->currentColumnIndex;
    +        } while (($this->onlyExistingCells) && (!$this->worksheet->cellExistsByColumnAndRow($this->currentColumnIndex, $this->rowIndex)) && ($this->currentColumnIndex >= $this->startColumnIndex));
    +    }
    +
    +    /**
    +     * Indicate if more columns exist in the worksheet range of columns that we're iterating.
    +     *
    +     * @return bool
    +     */
    +    public function valid()
    +    {
    +        return $this->currentColumnIndex <= $this->endColumnIndex && $this->currentColumnIndex >= $this->startColumnIndex;
    +    }
    +
    +    /**
    +     * Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary.
    +     *
    +     * @throws PhpSpreadsheetException
    +     */
    +    protected function adjustForExistingOnlyRange()
    +    {
    +        if ($this->onlyExistingCells) {
    +            while ((!$this->worksheet->cellExistsByColumnAndRow($this->startColumnIndex, $this->rowIndex)) && ($this->startColumnIndex <= $this->endColumnIndex)) {
    +                ++$this->startColumnIndex;
    +            }
    +            if ($this->startColumnIndex > $this->endColumnIndex) {
    +                throw new PhpSpreadsheetException('No cells exist within the specified range');
    +            }
    +            while ((!$this->worksheet->cellExistsByColumnAndRow($this->endColumnIndex, $this->rowIndex)) && ($this->endColumnIndex >= $this->startColumnIndex)) {
    +                --$this->endColumnIndex;
    +            }
    +            if ($this->endColumnIndex < $this->startColumnIndex) {
    +                throw new PhpSpreadsheetException('No cells exist within the specified range');
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/RowDimension.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/RowDimension.php
    new file mode 100644
    index 00000000000..e4346404d23
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/RowDimension.php
    @@ -0,0 +1,115 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +class RowDimension extends Dimension
    +{
    +    /**
    +     * Row index.
    +     *
    +     * @var int
    +     */
    +    private $rowIndex;
    +
    +    /**
    +     * Row height (in pt).
    +     *
    +     * When this is set to a negative value, the row height should be ignored by IWriter
    +     *
    +     * @var float
    +     */
    +    private $height = -1;
    +
    +    /**
    +     * ZeroHeight for Row?
    +     *
    +     * @var bool
    +     */
    +    private $zeroHeight = false;
    +
    +    /**
    +     * Create a new RowDimension.
    +     *
    +     * @param int $pIndex Numeric row index
    +     */
    +    public function __construct($pIndex = 0)
    +    {
    +        // Initialise values
    +        $this->rowIndex = $pIndex;
    +
    +        // set dimension as unformatted by default
    +        parent::__construct(null);
    +    }
    +
    +    /**
    +     * Get Row Index.
    +     *
    +     * @return int
    +     */
    +    public function getRowIndex()
    +    {
    +        return $this->rowIndex;
    +    }
    +
    +    /**
    +     * Set Row Index.
    +     *
    +     * @param int $pValue
    +     *
    +     * @return RowDimension
    +     */
    +    public function setRowIndex($pValue)
    +    {
    +        $this->rowIndex = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Row Height.
    +     *
    +     * @return float
    +     */
    +    public function getRowHeight()
    +    {
    +        return $this->height;
    +    }
    +
    +    /**
    +     * Set Row Height.
    +     *
    +     * @param float $pValue
    +     *
    +     * @return RowDimension
    +     */
    +    public function setRowHeight($pValue)
    +    {
    +        $this->height = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get ZeroHeight.
    +     *
    +     * @return bool
    +     */
    +    public function getZeroHeight()
    +    {
    +        return $this->zeroHeight;
    +    }
    +
    +    /**
    +     * Set ZeroHeight.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return RowDimension
    +     */
    +    public function setZeroHeight($pValue)
    +    {
    +        $this->zeroHeight = $pValue;
    +
    +        return $this;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/RowIterator.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/RowIterator.php
    new file mode 100644
    index 00000000000..433cea6a12a
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/RowIterator.php
    @@ -0,0 +1,170 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class RowIterator implements \Iterator
    +{
    +    /**
    +     * Worksheet to iterate.
    +     *
    +     * @var Worksheet
    +     */
    +    private $subject;
    +
    +    /**
    +     * Current iterator position.
    +     *
    +     * @var int
    +     */
    +    private $position = 1;
    +
    +    /**
    +     * Start position.
    +     *
    +     * @var int
    +     */
    +    private $startRow = 1;
    +
    +    /**
    +     * End position.
    +     *
    +     * @var int
    +     */
    +    private $endRow = 1;
    +
    +    /**
    +     * Create a new row iterator.
    +     *
    +     * @param Worksheet $subject The worksheet to iterate over
    +     * @param int $startRow The row number at which to start iterating
    +     * @param int $endRow Optionally, the row number at which to stop iterating
    +     */
    +    public function __construct(Worksheet $subject, $startRow = 1, $endRow = null)
    +    {
    +        // Set subject
    +        $this->subject = $subject;
    +        $this->resetEnd($endRow);
    +        $this->resetStart($startRow);
    +    }
    +
    +    /**
    +     * Destructor.
    +     */
    +    public function __destruct()
    +    {
    +        unset($this->subject);
    +    }
    +
    +    /**
    +     * (Re)Set the start row and the current row pointer.
    +     *
    +     * @param int $startRow The row number at which to start iterating
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return RowIterator
    +     */
    +    public function resetStart($startRow = 1)
    +    {
    +        if ($startRow > $this->subject->getHighestRow()) {
    +            throw new PhpSpreadsheetException("Start row ({$startRow}) is beyond highest row ({$this->subject->getHighestRow()})");
    +        }
    +
    +        $this->startRow = $startRow;
    +        if ($this->endRow < $this->startRow) {
    +            $this->endRow = $this->startRow;
    +        }
    +        $this->seek($startRow);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * (Re)Set the end row.
    +     *
    +     * @param int $endRow The row number at which to stop iterating
    +     *
    +     * @return RowIterator
    +     */
    +    public function resetEnd($endRow = null)
    +    {
    +        $this->endRow = ($endRow) ? $endRow : $this->subject->getHighestRow();
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set the row pointer to the selected row.
    +     *
    +     * @param int $row The row number to set the current pointer at
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return RowIterator
    +     */
    +    public function seek($row = 1)
    +    {
    +        if (($row < $this->startRow) || ($row > $this->endRow)) {
    +            throw new PhpSpreadsheetException("Row $row is out of range ({$this->startRow} - {$this->endRow})");
    +        }
    +        $this->position = $row;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Rewind the iterator to the starting row.
    +     */
    +    public function rewind()
    +    {
    +        $this->position = $this->startRow;
    +    }
    +
    +    /**
    +     * Return the current row in this worksheet.
    +     *
    +     * @return Row
    +     */
    +    public function current()
    +    {
    +        return new Row($this->subject, $this->position);
    +    }
    +
    +    /**
    +     * Return the current iterator key.
    +     *
    +     * @return int
    +     */
    +    public function key()
    +    {
    +        return $this->position;
    +    }
    +
    +    /**
    +     * Set the iterator to its next value.
    +     */
    +    public function next()
    +    {
    +        ++$this->position;
    +    }
    +
    +    /**
    +     * Set the iterator to its previous value.
    +     */
    +    public function prev()
    +    {
    +        --$this->position;
    +    }
    +
    +    /**
    +     * Indicate if more rows exist in the worksheet range of rows that we're iterating.
    +     *
    +     * @return bool
    +     */
    +    public function valid()
    +    {
    +        return $this->position <= $this->endRow && $this->position >= $this->startRow;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/SheetView.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/SheetView.php
    new file mode 100644
    index 00000000000..172823245e0
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/SheetView.php
    @@ -0,0 +1,171 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class SheetView
    +{
    +    // Sheet View types
    +    const SHEETVIEW_NORMAL = 'normal';
    +    const SHEETVIEW_PAGE_LAYOUT = 'pageLayout';
    +    const SHEETVIEW_PAGE_BREAK_PREVIEW = 'pageBreakPreview';
    +
    +    private static $sheetViewTypes = [
    +        self::SHEETVIEW_NORMAL,
    +        self::SHEETVIEW_PAGE_LAYOUT,
    +        self::SHEETVIEW_PAGE_BREAK_PREVIEW,
    +    ];
    +
    +    /**
    +     * ZoomScale.
    +     *
    +     * Valid values range from 10 to 400.
    +     *
    +     * @var int
    +     */
    +    private $zoomScale = 100;
    +
    +    /**
    +     * ZoomScaleNormal.
    +     *
    +     * Valid values range from 10 to 400.
    +     *
    +     * @var int
    +     */
    +    private $zoomScaleNormal = 100;
    +
    +    /**
    +     * View.
    +     *
    +     * Valid values range from 10 to 400.
    +     *
    +     * @var string
    +     */
    +    private $sheetviewType = self::SHEETVIEW_NORMAL;
    +
    +    /**
    +     * Create a new SheetView.
    +     */
    +    public function __construct()
    +    {
    +    }
    +
    +    /**
    +     * Get ZoomScale.
    +     *
    +     * @return int
    +     */
    +    public function getZoomScale()
    +    {
    +        return $this->zoomScale;
    +    }
    +
    +    /**
    +     * Set ZoomScale.
    +     * Valid values range from 10 to 400.
    +     *
    +     * @param int $pValue
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return SheetView
    +     */
    +    public function setZoomScale($pValue)
    +    {
    +        // Microsoft Office Excel 2007 only allows setting a scale between 10 and 400 via the user interface,
    +        // but it is apparently still able to handle any scale >= 1
    +        if (($pValue >= 1) || $pValue === null) {
    +            $this->zoomScale = $pValue;
    +        } else {
    +            throw new PhpSpreadsheetException('Scale must be greater than or equal to 1.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get ZoomScaleNormal.
    +     *
    +     * @return int
    +     */
    +    public function getZoomScaleNormal()
    +    {
    +        return $this->zoomScaleNormal;
    +    }
    +
    +    /**
    +     * Set ZoomScale.
    +     * Valid values range from 10 to 400.
    +     *
    +     * @param int $pValue
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return SheetView
    +     */
    +    public function setZoomScaleNormal($pValue)
    +    {
    +        if (($pValue >= 1) || $pValue === null) {
    +            $this->zoomScaleNormal = $pValue;
    +        } else {
    +            throw new PhpSpreadsheetException('Scale must be greater than or equal to 1.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get View.
    +     *
    +     * @return string
    +     */
    +    public function getView()
    +    {
    +        return $this->sheetviewType;
    +    }
    +
    +    /**
    +     * Set View.
    +     *
    +     * Valid values are
    +     *        'normal'            self::SHEETVIEW_NORMAL
    +     *        'pageLayout'        self::SHEETVIEW_PAGE_LAYOUT
    +     *        'pageBreakPreview'  self::SHEETVIEW_PAGE_BREAK_PREVIEW
    +     *
    +     * @param string $pValue
    +     *
    +     * @throws PhpSpreadsheetException
    +     *
    +     * @return SheetView
    +     */
    +    public function setView($pValue)
    +    {
    +        // MS Excel 2007 allows setting the view to 'normal', 'pageLayout' or 'pageBreakPreview' via the user interface
    +        if ($pValue === null) {
    +            $pValue = self::SHEETVIEW_NORMAL;
    +        }
    +        if (in_array($pValue, self::$sheetViewTypes)) {
    +            $this->sheetviewType = $pValue;
    +        } else {
    +            throw new PhpSpreadsheetException('Invalid sheetview layout type.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        $vars = get_object_vars($this);
    +        foreach ($vars as $key => $value) {
    +            if (is_object($value)) {
    +                $this->$key = clone $value;
    +            } else {
    +                $this->$key = $value;
    +            }
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Worksheet.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Worksheet.php
    new file mode 100644
    index 00000000000..d0224037616
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Worksheet/Worksheet.php
    @@ -0,0 +1,3066 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Worksheet;
    +
    +use ArrayObject;
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Cell\Cell;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Cell\DataType;
    +use PhpOffice\PhpSpreadsheet\Cell\DataValidation;
    +use PhpOffice\PhpSpreadsheet\Cell\Hyperlink;
    +use PhpOffice\PhpSpreadsheet\Chart\Chart;
    +use PhpOffice\PhpSpreadsheet\Collection\Cells;
    +use PhpOffice\PhpSpreadsheet\Collection\CellsFactory;
    +use PhpOffice\PhpSpreadsheet\Comment;
    +use PhpOffice\PhpSpreadsheet\Exception;
    +use PhpOffice\PhpSpreadsheet\IComparable;
    +use PhpOffice\PhpSpreadsheet\NamedRange;
    +use PhpOffice\PhpSpreadsheet\ReferenceHelper;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Shared;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\Color;
    +use PhpOffice\PhpSpreadsheet\Style\Conditional;
    +use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
    +use PhpOffice\PhpSpreadsheet\Style\Style;
    +
    +class Worksheet implements IComparable
    +{
    +    // Break types
    +    const BREAK_NONE = 0;
    +    const BREAK_ROW = 1;
    +    const BREAK_COLUMN = 2;
    +
    +    // Sheet state
    +    const SHEETSTATE_VISIBLE = 'visible';
    +    const SHEETSTATE_HIDDEN = 'hidden';
    +    const SHEETSTATE_VERYHIDDEN = 'veryHidden';
    +
    +    /**
    +     * Maximum 31 characters allowed for sheet title.
    +     *
    +     * @var int
    +     */
    +    const SHEET_TITLE_MAXIMUM_LENGTH = 31;
    +
    +    /**
    +     * Invalid characters in sheet title.
    +     *
    +     * @var array
    +     */
    +    private static $invalidCharacters = ['*', ':', '/', '\\', '?', '[', ']'];
    +
    +    /**
    +     * Parent spreadsheet.
    +     *
    +     * @var Spreadsheet
    +     */
    +    private $parent;
    +
    +    /**
    +     * Collection of cells.
    +     *
    +     * @var Cells
    +     */
    +    private $cellCollection;
    +
    +    /**
    +     * Collection of row dimensions.
    +     *
    +     * @var RowDimension[]
    +     */
    +    private $rowDimensions = [];
    +
    +    /**
    +     * Default row dimension.
    +     *
    +     * @var RowDimension
    +     */
    +    private $defaultRowDimension;
    +
    +    /**
    +     * Collection of column dimensions.
    +     *
    +     * @var ColumnDimension[]
    +     */
    +    private $columnDimensions = [];
    +
    +    /**
    +     * Default column dimension.
    +     *
    +     * @var ColumnDimension
    +     */
    +    private $defaultColumnDimension;
    +
    +    /**
    +     * Collection of drawings.
    +     *
    +     * @var BaseDrawing[]
    +     */
    +    private $drawingCollection;
    +
    +    /**
    +     * Collection of Chart objects.
    +     *
    +     * @var Chart[]
    +     */
    +    private $chartCollection = [];
    +
    +    /**
    +     * Worksheet title.
    +     *
    +     * @var string
    +     */
    +    private $title;
    +
    +    /**
    +     * Sheet state.
    +     *
    +     * @var string
    +     */
    +    private $sheetState;
    +
    +    /**
    +     * Page setup.
    +     *
    +     * @var PageSetup
    +     */
    +    private $pageSetup;
    +
    +    /**
    +     * Page margins.
    +     *
    +     * @var PageMargins
    +     */
    +    private $pageMargins;
    +
    +    /**
    +     * Page header/footer.
    +     *
    +     * @var HeaderFooter
    +     */
    +    private $headerFooter;
    +
    +    /**
    +     * Sheet view.
    +     *
    +     * @var SheetView
    +     */
    +    private $sheetView;
    +
    +    /**
    +     * Protection.
    +     *
    +     * @var Protection
    +     */
    +    private $protection;
    +
    +    /**
    +     * Collection of styles.
    +     *
    +     * @var Style[]
    +     */
    +    private $styles = [];
    +
    +    /**
    +     * Conditional styles. Indexed by cell coordinate, e.g. 'A1'.
    +     *
    +     * @var array
    +     */
    +    private $conditionalStylesCollection = [];
    +
    +    /**
    +     * Is the current cell collection sorted already?
    +     *
    +     * @var bool
    +     */
    +    private $cellCollectionIsSorted = false;
    +
    +    /**
    +     * Collection of breaks.
    +     *
    +     * @var array
    +     */
    +    private $breaks = [];
    +
    +    /**
    +     * Collection of merged cell ranges.
    +     *
    +     * @var array
    +     */
    +    private $mergeCells = [];
    +
    +    /**
    +     * Collection of protected cell ranges.
    +     *
    +     * @var array
    +     */
    +    private $protectedCells = [];
    +
    +    /**
    +     * Autofilter Range and selection.
    +     *
    +     * @var AutoFilter
    +     */
    +    private $autoFilter;
    +
    +    /**
    +     * Freeze pane.
    +     *
    +     * @var null|string
    +     */
    +    private $freezePane;
    +
    +    /**
    +     * Default position of the right bottom pane.
    +     *
    +     * @var null|string
    +     */
    +    private $topLeftCell;
    +
    +    /**
    +     * Show gridlines?
    +     *
    +     * @var bool
    +     */
    +    private $showGridlines = true;
    +
    +    /**
    +     * Print gridlines?
    +     *
    +     * @var bool
    +     */
    +    private $printGridlines = false;
    +
    +    /**
    +     * Show row and column headers?
    +     *
    +     * @var bool
    +     */
    +    private $showRowColHeaders = true;
    +
    +    /**
    +     * Show summary below? (Row/Column outline).
    +     *
    +     * @var bool
    +     */
    +    private $showSummaryBelow = true;
    +
    +    /**
    +     * Show summary right? (Row/Column outline).
    +     *
    +     * @var bool
    +     */
    +    private $showSummaryRight = true;
    +
    +    /**
    +     * Collection of comments.
    +     *
    +     * @var Comment[]
    +     */
    +    private $comments = [];
    +
    +    /**
    +     * Active cell. (Only one!).
    +     *
    +     * @var string
    +     */
    +    private $activeCell = 'A1';
    +
    +    /**
    +     * Selected cells.
    +     *
    +     * @var string
    +     */
    +    private $selectedCells = 'A1';
    +
    +    /**
    +     * Cached highest column.
    +     *
    +     * @var string
    +     */
    +    private $cachedHighestColumn = 'A';
    +
    +    /**
    +     * Cached highest row.
    +     *
    +     * @var int
    +     */
    +    private $cachedHighestRow = 1;
    +
    +    /**
    +     * Right-to-left?
    +     *
    +     * @var bool
    +     */
    +    private $rightToLeft = false;
    +
    +    /**
    +     * Hyperlinks. Indexed by cell coordinate, e.g. 'A1'.
    +     *
    +     * @var array
    +     */
    +    private $hyperlinkCollection = [];
    +
    +    /**
    +     * Data validation objects. Indexed by cell coordinate, e.g. 'A1'.
    +     *
    +     * @var array
    +     */
    +    private $dataValidationCollection = [];
    +
    +    /**
    +     * Tab color.
    +     *
    +     * @var Color
    +     */
    +    private $tabColor;
    +
    +    /**
    +     * Dirty flag.
    +     *
    +     * @var bool
    +     */
    +    private $dirty = true;
    +
    +    /**
    +     * Hash.
    +     *
    +     * @var string
    +     */
    +    private $hash;
    +
    +    /**
    +     * CodeName.
    +     *
    +     * @var string
    +     */
    +    private $codeName;
    +
    +    /**
    +     * Create a new worksheet.
    +     *
    +     * @param Spreadsheet $parent
    +     * @param string $pTitle
    +     */
    +    public function __construct(Spreadsheet $parent = null, $pTitle = 'Worksheet')
    +    {
    +        // Set parent and title
    +        $this->parent = $parent;
    +        $this->setTitle($pTitle, false);
    +        // setTitle can change $pTitle
    +        $this->setCodeName($this->getTitle());
    +        $this->setSheetState(self::SHEETSTATE_VISIBLE);
    +
    +        $this->cellCollection = CellsFactory::getInstance($this);
    +        // Set page setup
    +        $this->pageSetup = new PageSetup();
    +        // Set page margins
    +        $this->pageMargins = new PageMargins();
    +        // Set page header/footer
    +        $this->headerFooter = new HeaderFooter();
    +        // Set sheet view
    +        $this->sheetView = new SheetView();
    +        // Drawing collection
    +        $this->drawingCollection = new \ArrayObject();
    +        // Chart collection
    +        $this->chartCollection = new \ArrayObject();
    +        // Protection
    +        $this->protection = new Protection();
    +        // Default row dimension
    +        $this->defaultRowDimension = new RowDimension(null);
    +        // Default column dimension
    +        $this->defaultColumnDimension = new ColumnDimension(null);
    +        $this->autoFilter = new AutoFilter(null, $this);
    +    }
    +
    +    /**
    +     * Disconnect all cells from this Worksheet object,
    +     * typically so that the worksheet object can be unset.
    +     */
    +    public function disconnectCells()
    +    {
    +        if ($this->cellCollection !== null) {
    +            $this->cellCollection->unsetWorksheetCells();
    +            $this->cellCollection = null;
    +        }
    +        //    detach ourself from the workbook, so that it can then delete this worksheet successfully
    +        $this->parent = null;
    +    }
    +
    +    /**
    +     * Code to execute when this worksheet is unset().
    +     */
    +    public function __destruct()
    +    {
    +        Calculation::getInstance($this->parent)->clearCalculationCacheForWorksheet($this->title);
    +
    +        $this->disconnectCells();
    +    }
    +
    +    /**
    +     * Return the cell collection.
    +     *
    +     * @return Cells
    +     */
    +    public function getCellCollection()
    +    {
    +        return $this->cellCollection;
    +    }
    +
    +    /**
    +     * Get array of invalid characters for sheet title.
    +     *
    +     * @return array
    +     */
    +    public static function getInvalidCharacters()
    +    {
    +        return self::$invalidCharacters;
    +    }
    +
    +    /**
    +     * Check sheet code name for valid Excel syntax.
    +     *
    +     * @param string $pValue The string to check
    +     *
    +     * @throws Exception
    +     *
    +     * @return string The valid string
    +     */
    +    private static function checkSheetCodeName($pValue)
    +    {
    +        $CharCount = Shared\StringHelper::countCharacters($pValue);
    +        if ($CharCount == 0) {
    +            throw new Exception('Sheet code name cannot be empty.');
    +        }
    +        // Some of the printable ASCII characters are invalid:  * : / \ ? [ ] and  first and last characters cannot be a "'"
    +        if ((str_replace(self::$invalidCharacters, '', $pValue) !== $pValue) ||
    +            (Shared\StringHelper::substring($pValue, -1, 1) == '\'') ||
    +            (Shared\StringHelper::substring($pValue, 0, 1) == '\'')) {
    +            throw new Exception('Invalid character found in sheet code name');
    +        }
    +
    +        // Enforce maximum characters allowed for sheet title
    +        if ($CharCount > self::SHEET_TITLE_MAXIMUM_LENGTH) {
    +            throw new Exception('Maximum ' . self::SHEET_TITLE_MAXIMUM_LENGTH . ' characters allowed in sheet code name.');
    +        }
    +
    +        return $pValue;
    +    }
    +
    +    /**
    +     * Check sheet title for valid Excel syntax.
    +     *
    +     * @param string $pValue The string to check
    +     *
    +     * @throws Exception
    +     *
    +     * @return string The valid string
    +     */
    +    private static function checkSheetTitle($pValue)
    +    {
    +        // Some of the printable ASCII characters are invalid:  * : / \ ? [ ]
    +        if (str_replace(self::$invalidCharacters, '', $pValue) !== $pValue) {
    +            throw new Exception('Invalid character found in sheet title');
    +        }
    +
    +        // Enforce maximum characters allowed for sheet title
    +        if (Shared\StringHelper::countCharacters($pValue) > self::SHEET_TITLE_MAXIMUM_LENGTH) {
    +            throw new Exception('Maximum ' . self::SHEET_TITLE_MAXIMUM_LENGTH . ' characters allowed in sheet title.');
    +        }
    +
    +        return $pValue;
    +    }
    +
    +    /**
    +     * Get a sorted list of all cell coordinates currently held in the collection by row and column.
    +     *
    +     * @param bool $sorted Also sort the cell collection?
    +     *
    +     * @return string[]
    +     */
    +    public function getCoordinates($sorted = true)
    +    {
    +        if ($this->cellCollection == null) {
    +            return [];
    +        }
    +
    +        if ($sorted) {
    +            return $this->cellCollection->getSortedCoordinates();
    +        }
    +
    +        return $this->cellCollection->getCoordinates();
    +    }
    +
    +    /**
    +     * Get collection of row dimensions.
    +     *
    +     * @return RowDimension[]
    +     */
    +    public function getRowDimensions()
    +    {
    +        return $this->rowDimensions;
    +    }
    +
    +    /**
    +     * Get default row dimension.
    +     *
    +     * @return RowDimension
    +     */
    +    public function getDefaultRowDimension()
    +    {
    +        return $this->defaultRowDimension;
    +    }
    +
    +    /**
    +     * Get collection of column dimensions.
    +     *
    +     * @return ColumnDimension[]
    +     */
    +    public function getColumnDimensions()
    +    {
    +        return $this->columnDimensions;
    +    }
    +
    +    /**
    +     * Get default column dimension.
    +     *
    +     * @return ColumnDimension
    +     */
    +    public function getDefaultColumnDimension()
    +    {
    +        return $this->defaultColumnDimension;
    +    }
    +
    +    /**
    +     * Get collection of drawings.
    +     *
    +     * @return BaseDrawing[]
    +     */
    +    public function getDrawingCollection()
    +    {
    +        return $this->drawingCollection;
    +    }
    +
    +    /**
    +     * Get collection of charts.
    +     *
    +     * @return Chart[]
    +     */
    +    public function getChartCollection()
    +    {
    +        return $this->chartCollection;
    +    }
    +
    +    /**
    +     * Add chart.
    +     *
    +     * @param Chart $pChart
    +     * @param null|int $iChartIndex Index where chart should go (0,1,..., or null for last)
    +     *
    +     * @return Chart
    +     */
    +    public function addChart(Chart $pChart, $iChartIndex = null)
    +    {
    +        $pChart->setWorksheet($this);
    +        if ($iChartIndex === null) {
    +            $this->chartCollection[] = $pChart;
    +        } else {
    +            // Insert the chart at the requested index
    +            array_splice($this->chartCollection, $iChartIndex, 0, [$pChart]);
    +        }
    +
    +        return $pChart;
    +    }
    +
    +    /**
    +     * Return the count of charts on this worksheet.
    +     *
    +     * @return int The number of charts
    +     */
    +    public function getChartCount()
    +    {
    +        return count($this->chartCollection);
    +    }
    +
    +    /**
    +     * Get a chart by its index position.
    +     *
    +     * @param string $index Chart index position
    +     *
    +     * @return Chart|false
    +     */
    +    public function getChartByIndex($index)
    +    {
    +        $chartCount = count($this->chartCollection);
    +        if ($chartCount == 0) {
    +            return false;
    +        }
    +        if ($index === null) {
    +            $index = --$chartCount;
    +        }
    +        if (!isset($this->chartCollection[$index])) {
    +            return false;
    +        }
    +
    +        return $this->chartCollection[$index];
    +    }
    +
    +    /**
    +     * Return an array of the names of charts on this worksheet.
    +     *
    +     * @return string[] The names of charts
    +     */
    +    public function getChartNames()
    +    {
    +        $chartNames = [];
    +        foreach ($this->chartCollection as $chart) {
    +            $chartNames[] = $chart->getName();
    +        }
    +
    +        return $chartNames;
    +    }
    +
    +    /**
    +     * Get a chart by name.
    +     *
    +     * @param string $chartName Chart name
    +     *
    +     * @return Chart|false
    +     */
    +    public function getChartByName($chartName)
    +    {
    +        $chartCount = count($this->chartCollection);
    +        if ($chartCount == 0) {
    +            return false;
    +        }
    +        foreach ($this->chartCollection as $index => $chart) {
    +            if ($chart->getName() == $chartName) {
    +                return $this->chartCollection[$index];
    +            }
    +        }
    +
    +        return false;
    +    }
    +
    +    /**
    +     * Refresh column dimensions.
    +     *
    +     * @return Worksheet
    +     */
    +    public function refreshColumnDimensions()
    +    {
    +        $currentColumnDimensions = $this->getColumnDimensions();
    +        $newColumnDimensions = [];
    +
    +        foreach ($currentColumnDimensions as $objColumnDimension) {
    +            $newColumnDimensions[$objColumnDimension->getColumnIndex()] = $objColumnDimension;
    +        }
    +
    +        $this->columnDimensions = $newColumnDimensions;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Refresh row dimensions.
    +     *
    +     * @return Worksheet
    +     */
    +    public function refreshRowDimensions()
    +    {
    +        $currentRowDimensions = $this->getRowDimensions();
    +        $newRowDimensions = [];
    +
    +        foreach ($currentRowDimensions as $objRowDimension) {
    +            $newRowDimensions[$objRowDimension->getRowIndex()] = $objRowDimension;
    +        }
    +
    +        $this->rowDimensions = $newRowDimensions;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Calculate worksheet dimension.
    +     *
    +     * @return string String containing the dimension of this worksheet
    +     */
    +    public function calculateWorksheetDimension()
    +    {
    +        // Return
    +        return 'A1' . ':' . $this->getHighestColumn() . $this->getHighestRow();
    +    }
    +
    +    /**
    +     * Calculate worksheet data dimension.
    +     *
    +     * @return string String containing the dimension of this worksheet that actually contain data
    +     */
    +    public function calculateWorksheetDataDimension()
    +    {
    +        // Return
    +        return 'A1' . ':' . $this->getHighestDataColumn() . $this->getHighestDataRow();
    +    }
    +
    +    /**
    +     * Calculate widths for auto-size columns.
    +     *
    +     * @return Worksheet;
    +     */
    +    public function calculateColumnWidths()
    +    {
    +        // initialize $autoSizes array
    +        $autoSizes = [];
    +        foreach ($this->getColumnDimensions() as $colDimension) {
    +            if ($colDimension->getAutoSize()) {
    +                $autoSizes[$colDimension->getColumnIndex()] = -1;
    +            }
    +        }
    +
    +        // There is only something to do if there are some auto-size columns
    +        if (!empty($autoSizes)) {
    +            // build list of cells references that participate in a merge
    +            $isMergeCell = [];
    +            foreach ($this->getMergeCells() as $cells) {
    +                foreach (Coordinate::extractAllCellReferencesInRange($cells) as $cellReference) {
    +                    $isMergeCell[$cellReference] = true;
    +                }
    +            }
    +
    +            // loop through all cells in the worksheet
    +            foreach ($this->getCoordinates(false) as $coordinate) {
    +                $cell = $this->getCell($coordinate, false);
    +                if ($cell !== null && isset($autoSizes[$this->cellCollection->getCurrentColumn()])) {
    +                    //Determine if cell is in merge range
    +                    $isMerged = isset($isMergeCell[$this->cellCollection->getCurrentCoordinate()]);
    +
    +                    //By default merged cells should be ignored
    +                    $isMergedButProceed = false;
    +
    +                    //The only exception is if it's a merge range value cell of a 'vertical' randge (1 column wide)
    +                    if ($isMerged && $cell->isMergeRangeValueCell()) {
    +                        $range = $cell->getMergeRange();
    +                        $rangeBoundaries = Coordinate::rangeDimension($range);
    +                        if ($rangeBoundaries[0] == 1) {
    +                            $isMergedButProceed = true;
    +                        }
    +                    }
    +
    +                    // Determine width if cell does not participate in a merge or does and is a value cell of 1-column wide range
    +                    if (!$isMerged || $isMergedButProceed) {
    +                        // Calculated value
    +                        // To formatted string
    +                        $cellValue = NumberFormat::toFormattedString(
    +                            $cell->getCalculatedValue(),
    +                            $this->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode()
    +                        );
    +
    +                        $autoSizes[$this->cellCollection->getCurrentColumn()] = max(
    +                            (float) $autoSizes[$this->cellCollection->getCurrentColumn()],
    +                            (float) Shared\Font::calculateColumnWidth(
    +                                $this->getParent()->getCellXfByIndex($cell->getXfIndex())->getFont(),
    +                                $cellValue,
    +                                $this->getParent()->getCellXfByIndex($cell->getXfIndex())->getAlignment()->getTextRotation(),
    +                                $this->getParent()->getDefaultStyle()->getFont()
    +                            )
    +                        );
    +                    }
    +                }
    +            }
    +
    +            // adjust column widths
    +            foreach ($autoSizes as $columnIndex => $width) {
    +                if ($width == -1) {
    +                    $width = $this->getDefaultColumnDimension()->getWidth();
    +                }
    +                $this->getColumnDimension($columnIndex)->setWidth($width);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get parent.
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function getParent()
    +    {
    +        return $this->parent;
    +    }
    +
    +    /**
    +     * Re-bind parent.
    +     *
    +     * @param Spreadsheet $parent
    +     *
    +     * @return Worksheet
    +     */
    +    public function rebindParent(Spreadsheet $parent)
    +    {
    +        if ($this->parent !== null) {
    +            $namedRanges = $this->parent->getNamedRanges();
    +            foreach ($namedRanges as $namedRange) {
    +                $parent->addNamedRange($namedRange);
    +            }
    +
    +            $this->parent->removeSheetByIndex(
    +                $this->parent->getIndex($this)
    +            );
    +        }
    +        $this->parent = $parent;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get title.
    +     *
    +     * @return string
    +     */
    +    public function getTitle()
    +    {
    +        return $this->title;
    +    }
    +
    +    /**
    +     * Set title.
    +     *
    +     * @param string $pValue String containing the dimension of this worksheet
    +     * @param bool $updateFormulaCellReferences Flag indicating whether cell references in formulae should
    +     *            be updated to reflect the new sheet name.
    +     *          This should be left as the default true, unless you are
    +     *          certain that no formula cells on any worksheet contain
    +     *          references to this worksheet
    +     * @param bool $validate False to skip validation of new title. WARNING: This should only be set
    +     *                       at parse time (by Readers), where titles can be assumed to be valid.
    +     *
    +     * @return Worksheet
    +     */
    +    public function setTitle($pValue, $updateFormulaCellReferences = true, $validate = true)
    +    {
    +        // Is this a 'rename' or not?
    +        if ($this->getTitle() == $pValue) {
    +            return $this;
    +        }
    +
    +        // Old title
    +        $oldTitle = $this->getTitle();
    +
    +        if ($validate) {
    +            // Syntax check
    +            self::checkSheetTitle($pValue);
    +
    +            if ($this->parent) {
    +                // Is there already such sheet name?
    +                if ($this->parent->sheetNameExists($pValue)) {
    +                    // Use name, but append with lowest possible integer
    +
    +                    if (Shared\StringHelper::countCharacters($pValue) > 29) {
    +                        $pValue = Shared\StringHelper::substring($pValue, 0, 29);
    +                    }
    +                    $i = 1;
    +                    while ($this->parent->sheetNameExists($pValue . ' ' . $i)) {
    +                        ++$i;
    +                        if ($i == 10) {
    +                            if (Shared\StringHelper::countCharacters($pValue) > 28) {
    +                                $pValue = Shared\StringHelper::substring($pValue, 0, 28);
    +                            }
    +                        } elseif ($i == 100) {
    +                            if (Shared\StringHelper::countCharacters($pValue) > 27) {
    +                                $pValue = Shared\StringHelper::substring($pValue, 0, 27);
    +                            }
    +                        }
    +                    }
    +
    +                    $pValue .= " $i";
    +                }
    +            }
    +        }
    +
    +        // Set title
    +        $this->title = $pValue;
    +        $this->dirty = true;
    +
    +        if ($this->parent && $this->parent->getCalculationEngine()) {
    +            // New title
    +            $newTitle = $this->getTitle();
    +            $this->parent->getCalculationEngine()
    +                ->renameCalculationCacheForWorksheet($oldTitle, $newTitle);
    +            if ($updateFormulaCellReferences) {
    +                ReferenceHelper::getInstance()->updateNamedFormulas($this->parent, $oldTitle, $newTitle);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get sheet state.
    +     *
    +     * @return string Sheet state (visible, hidden, veryHidden)
    +     */
    +    public function getSheetState()
    +    {
    +        return $this->sheetState;
    +    }
    +
    +    /**
    +     * Set sheet state.
    +     *
    +     * @param string $value Sheet state (visible, hidden, veryHidden)
    +     *
    +     * @return Worksheet
    +     */
    +    public function setSheetState($value)
    +    {
    +        $this->sheetState = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get page setup.
    +     *
    +     * @return PageSetup
    +     */
    +    public function getPageSetup()
    +    {
    +        return $this->pageSetup;
    +    }
    +
    +    /**
    +     * Set page setup.
    +     *
    +     * @param PageSetup $pValue
    +     *
    +     * @return Worksheet
    +     */
    +    public function setPageSetup(PageSetup $pValue)
    +    {
    +        $this->pageSetup = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get page margins.
    +     *
    +     * @return PageMargins
    +     */
    +    public function getPageMargins()
    +    {
    +        return $this->pageMargins;
    +    }
    +
    +    /**
    +     * Set page margins.
    +     *
    +     * @param PageMargins $pValue
    +     *
    +     * @return Worksheet
    +     */
    +    public function setPageMargins(PageMargins $pValue)
    +    {
    +        $this->pageMargins = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get page header/footer.
    +     *
    +     * @return HeaderFooter
    +     */
    +    public function getHeaderFooter()
    +    {
    +        return $this->headerFooter;
    +    }
    +
    +    /**
    +     * Set page header/footer.
    +     *
    +     * @param HeaderFooter $pValue
    +     *
    +     * @return Worksheet
    +     */
    +    public function setHeaderFooter(HeaderFooter $pValue)
    +    {
    +        $this->headerFooter = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get sheet view.
    +     *
    +     * @return SheetView
    +     */
    +    public function getSheetView()
    +    {
    +        return $this->sheetView;
    +    }
    +
    +    /**
    +     * Set sheet view.
    +     *
    +     * @param SheetView $pValue
    +     *
    +     * @return Worksheet
    +     */
    +    public function setSheetView(SheetView $pValue)
    +    {
    +        $this->sheetView = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Protection.
    +     *
    +     * @return Protection
    +     */
    +    public function getProtection()
    +    {
    +        return $this->protection;
    +    }
    +
    +    /**
    +     * Set Protection.
    +     *
    +     * @param Protection $pValue
    +     *
    +     * @return Worksheet
    +     */
    +    public function setProtection(Protection $pValue)
    +    {
    +        $this->protection = $pValue;
    +        $this->dirty = true;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get highest worksheet column.
    +     *
    +     * @param string $row Return the data highest column for the specified row,
    +     *                                     or the highest column of any row if no row number is passed
    +     *
    +     * @return string Highest column name
    +     */
    +    public function getHighestColumn($row = null)
    +    {
    +        if ($row == null) {
    +            return $this->cachedHighestColumn;
    +        }
    +
    +        return $this->getHighestDataColumn($row);
    +    }
    +
    +    /**
    +     * Get highest worksheet column that contains data.
    +     *
    +     * @param string $row Return the highest data column for the specified row,
    +     *                                     or the highest data column of any row if no row number is passed
    +     *
    +     * @return string Highest column name that contains data
    +     */
    +    public function getHighestDataColumn($row = null)
    +    {
    +        return $this->cellCollection->getHighestColumn($row);
    +    }
    +
    +    /**
    +     * Get highest worksheet row.
    +     *
    +     * @param string $column Return the highest data row for the specified column,
    +     *                                     or the highest row of any column if no column letter is passed
    +     *
    +     * @return int Highest row number
    +     */
    +    public function getHighestRow($column = null)
    +    {
    +        if ($column == null) {
    +            return $this->cachedHighestRow;
    +        }
    +
    +        return $this->getHighestDataRow($column);
    +    }
    +
    +    /**
    +     * Get highest worksheet row that contains data.
    +     *
    +     * @param string $column Return the highest data row for the specified column,
    +     *                                     or the highest data row of any column if no column letter is passed
    +     *
    +     * @return string Highest row number that contains data
    +     */
    +    public function getHighestDataRow($column = null)
    +    {
    +        return $this->cellCollection->getHighestRow($column);
    +    }
    +
    +    /**
    +     * Get highest worksheet column and highest row that have cell records.
    +     *
    +     * @return array Highest column name and highest row number
    +     */
    +    public function getHighestRowAndColumn()
    +    {
    +        return $this->cellCollection->getHighestRowAndColumn();
    +    }
    +
    +    /**
    +     * Set a cell value.
    +     *
    +     * @param string $pCoordinate Coordinate of the cell, eg: 'A1'
    +     * @param mixed $pValue Value of the cell
    +     *
    +     * @return Worksheet
    +     */
    +    public function setCellValue($pCoordinate, $pValue)
    +    {
    +        $this->getCell($pCoordinate)->setValue($pValue);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set a cell value by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex Numeric column coordinate of the cell
    +     * @param int $row Numeric row coordinate of the cell
    +     * @param mixed $value Value of the cell
    +     *
    +     * @return Worksheet
    +     */
    +    public function setCellValueByColumnAndRow($columnIndex, $row, $value)
    +    {
    +        $this->getCellByColumnAndRow($columnIndex, $row)->setValue($value);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set a cell value.
    +     *
    +     * @param string $pCoordinate Coordinate of the cell, eg: 'A1'
    +     * @param mixed $pValue Value of the cell
    +     * @param string $pDataType Explicit data type, see DataType::TYPE_*
    +     *
    +     * @return Worksheet
    +     */
    +    public function setCellValueExplicit($pCoordinate, $pValue, $pDataType)
    +    {
    +        // Set value
    +        $this->getCell($pCoordinate)->setValueExplicit($pValue, $pDataType);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set a cell value by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex Numeric column coordinate of the cell
    +     * @param int $row Numeric row coordinate of the cell
    +     * @param mixed $value Value of the cell
    +     * @param string $dataType Explicit data type, see DataType::TYPE_*
    +     *
    +     * @return Worksheet
    +     */
    +    public function setCellValueExplicitByColumnAndRow($columnIndex, $row, $value, $dataType)
    +    {
    +        $this->getCellByColumnAndRow($columnIndex, $row)->setValueExplicit($value, $dataType);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get cell at a specific coordinate.
    +     *
    +     * @param string $pCoordinate Coordinate of the cell, eg: 'A1'
    +     * @param bool $createIfNotExists Flag indicating whether a new cell should be created if it doesn't
    +     *                                       already exist, or a null should be returned instead
    +     *
    +     * @throws Exception
    +     *
    +     * @return null|Cell Cell that was found/created or null
    +     */
    +    public function getCell($pCoordinate, $createIfNotExists = true)
    +    {
    +        // Uppercase coordinate
    +        $pCoordinateUpper = strtoupper($pCoordinate);
    +
    +        // Check cell collection
    +        if ($this->cellCollection->has($pCoordinateUpper)) {
    +            return $this->cellCollection->get($pCoordinateUpper);
    +        }
    +
    +        // Worksheet reference?
    +        if (strpos($pCoordinate, '!') !== false) {
    +            $worksheetReference = self::extractSheetTitle($pCoordinate, true);
    +
    +            return $this->parent->getSheetByName($worksheetReference[0])->getCell(strtoupper($worksheetReference[1]), $createIfNotExists);
    +        }
    +
    +        // Named range?
    +        if ((!preg_match('/^' . Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $pCoordinate, $matches)) &&
    +            (preg_match('/^' . Calculation::CALCULATION_REGEXP_NAMEDRANGE . '$/i', $pCoordinate, $matches))) {
    +            $namedRange = NamedRange::resolveRange($pCoordinate, $this);
    +            if ($namedRange !== null) {
    +                $pCoordinate = $namedRange->getRange();
    +
    +                return $namedRange->getWorksheet()->getCell($pCoordinate, $createIfNotExists);
    +            }
    +        }
    +
    +        if (Coordinate::coordinateIsRange($pCoordinate)) {
    +            throw new Exception('Cell coordinate can not be a range of cells.');
    +        } elseif (strpos($pCoordinate, '$') !== false) {
    +            throw new Exception('Cell coordinate must not be absolute.');
    +        }
    +
    +        // Create new cell object, if required
    +        return $createIfNotExists ? $this->createNewCell($pCoordinateUpper) : null;
    +    }
    +
    +    /**
    +     * Get cell at a specific coordinate by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex Numeric column coordinate of the cell
    +     * @param int $row Numeric row coordinate of the cell
    +     * @param bool $createIfNotExists Flag indicating whether a new cell should be created if it doesn't
    +     *                                       already exist, or a null should be returned instead
    +     *
    +     * @return null|Cell Cell that was found/created or null
    +     */
    +    public function getCellByColumnAndRow($columnIndex, $row, $createIfNotExists = true)
    +    {
    +        $columnLetter = Coordinate::stringFromColumnIndex($columnIndex);
    +        $coordinate = $columnLetter . $row;
    +
    +        if ($this->cellCollection->has($coordinate)) {
    +            return $this->cellCollection->get($coordinate);
    +        }
    +
    +        // Create new cell object, if required
    +        return $createIfNotExists ? $this->createNewCell($coordinate) : null;
    +    }
    +
    +    /**
    +     * Create a new cell at the specified coordinate.
    +     *
    +     * @param string $pCoordinate Coordinate of the cell
    +     *
    +     * @return Cell Cell that was created
    +     */
    +    private function createNewCell($pCoordinate)
    +    {
    +        $cell = new Cell(null, DataType::TYPE_NULL, $this);
    +        $this->cellCollection->add($pCoordinate, $cell);
    +        $this->cellCollectionIsSorted = false;
    +
    +        // Coordinates
    +        $aCoordinates = Coordinate::coordinateFromString($pCoordinate);
    +        if (Coordinate::columnIndexFromString($this->cachedHighestColumn) < Coordinate::columnIndexFromString($aCoordinates[0])) {
    +            $this->cachedHighestColumn = $aCoordinates[0];
    +        }
    +        if ($aCoordinates[1] > $this->cachedHighestRow) {
    +            $this->cachedHighestRow = $aCoordinates[1];
    +        }
    +
    +        // Cell needs appropriate xfIndex from dimensions records
    +        //    but don't create dimension records if they don't already exist
    +        $rowDimension = $this->getRowDimension($aCoordinates[1], false);
    +        $columnDimension = $this->getColumnDimension($aCoordinates[0], false);
    +
    +        if ($rowDimension !== null && $rowDimension->getXfIndex() > 0) {
    +            // then there is a row dimension with explicit style, assign it to the cell
    +            $cell->setXfIndex($rowDimension->getXfIndex());
    +        } elseif ($columnDimension !== null && $columnDimension->getXfIndex() > 0) {
    +            // then there is a column dimension, assign it to the cell
    +            $cell->setXfIndex($columnDimension->getXfIndex());
    +        }
    +
    +        return $cell;
    +    }
    +
    +    /**
    +     * Does the cell at a specific coordinate exist?
    +     *
    +     * @param string $pCoordinate Coordinate of the cell eg: 'A1'
    +     *
    +     * @throws Exception
    +     *
    +     * @return bool
    +     */
    +    public function cellExists($pCoordinate)
    +    {
    +        // Worksheet reference?
    +        if (strpos($pCoordinate, '!') !== false) {
    +            $worksheetReference = self::extractSheetTitle($pCoordinate, true);
    +
    +            return $this->parent->getSheetByName($worksheetReference[0])->cellExists(strtoupper($worksheetReference[1]));
    +        }
    +
    +        // Named range?
    +        if ((!preg_match('/^' . Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $pCoordinate, $matches)) &&
    +            (preg_match('/^' . Calculation::CALCULATION_REGEXP_NAMEDRANGE . '$/i', $pCoordinate, $matches))) {
    +            $namedRange = NamedRange::resolveRange($pCoordinate, $this);
    +            if ($namedRange !== null) {
    +                $pCoordinate = $namedRange->getRange();
    +                if ($this->getHashCode() != $namedRange->getWorksheet()->getHashCode()) {
    +                    if (!$namedRange->getLocalOnly()) {
    +                        return $namedRange->getWorksheet()->cellExists($pCoordinate);
    +                    }
    +
    +                    throw new Exception('Named range ' . $namedRange->getName() . ' is not accessible from within sheet ' . $this->getTitle());
    +                }
    +            } else {
    +                return false;
    +            }
    +        }
    +
    +        // Uppercase coordinate
    +        $pCoordinate = strtoupper($pCoordinate);
    +
    +        if (Coordinate::coordinateIsRange($pCoordinate)) {
    +            throw new Exception('Cell coordinate can not be a range of cells.');
    +        } elseif (strpos($pCoordinate, '$') !== false) {
    +            throw new Exception('Cell coordinate must not be absolute.');
    +        }
    +
    +        // Cell exists?
    +        return $this->cellCollection->has($pCoordinate);
    +    }
    +
    +    /**
    +     * Cell at a specific coordinate by using numeric cell coordinates exists?
    +     *
    +     * @param int $columnIndex Numeric column coordinate of the cell
    +     * @param int $row Numeric row coordinate of the cell
    +     *
    +     * @return bool
    +     */
    +    public function cellExistsByColumnAndRow($columnIndex, $row)
    +    {
    +        return $this->cellExists(Coordinate::stringFromColumnIndex($columnIndex) . $row);
    +    }
    +
    +    /**
    +     * Get row dimension at a specific row.
    +     *
    +     * @param int $pRow Numeric index of the row
    +     * @param bool $create
    +     *
    +     * @return RowDimension
    +     */
    +    public function getRowDimension($pRow, $create = true)
    +    {
    +        // Found
    +        $found = null;
    +
    +        // Get row dimension
    +        if (!isset($this->rowDimensions[$pRow])) {
    +            if (!$create) {
    +                return null;
    +            }
    +            $this->rowDimensions[$pRow] = new RowDimension($pRow);
    +
    +            $this->cachedHighestRow = max($this->cachedHighestRow, $pRow);
    +        }
    +
    +        return $this->rowDimensions[$pRow];
    +    }
    +
    +    /**
    +     * Get column dimension at a specific column.
    +     *
    +     * @param string $pColumn String index of the column eg: 'A'
    +     * @param bool $create
    +     *
    +     * @return ColumnDimension
    +     */
    +    public function getColumnDimension($pColumn, $create = true)
    +    {
    +        // Uppercase coordinate
    +        $pColumn = strtoupper($pColumn);
    +
    +        // Fetch dimensions
    +        if (!isset($this->columnDimensions[$pColumn])) {
    +            if (!$create) {
    +                return null;
    +            }
    +            $this->columnDimensions[$pColumn] = new ColumnDimension($pColumn);
    +
    +            if (Coordinate::columnIndexFromString($this->cachedHighestColumn) < Coordinate::columnIndexFromString($pColumn)) {
    +                $this->cachedHighestColumn = $pColumn;
    +            }
    +        }
    +
    +        return $this->columnDimensions[$pColumn];
    +    }
    +
    +    /**
    +     * Get column dimension at a specific column by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex Numeric column coordinate of the cell
    +     *
    +     * @return ColumnDimension
    +     */
    +    public function getColumnDimensionByColumn($columnIndex)
    +    {
    +        return $this->getColumnDimension(Coordinate::stringFromColumnIndex($columnIndex));
    +    }
    +
    +    /**
    +     * Get styles.
    +     *
    +     * @return Style[]
    +     */
    +    public function getStyles()
    +    {
    +        return $this->styles;
    +    }
    +
    +    /**
    +     * Get style for cell.
    +     *
    +     * @param string $pCellCoordinate Cell coordinate (or range) to get style for, eg: 'A1'
    +     *
    +     * @throws Exception
    +     *
    +     * @return Style
    +     */
    +    public function getStyle($pCellCoordinate)
    +    {
    +        // set this sheet as active
    +        $this->parent->setActiveSheetIndex($this->parent->getIndex($this));
    +
    +        // set cell coordinate as active
    +        $this->setSelectedCells(strtoupper($pCellCoordinate));
    +
    +        return $this->parent->getCellXfSupervisor();
    +    }
    +
    +    /**
    +     * Get conditional styles for a cell.
    +     *
    +     * @param string $pCoordinate eg: 'A1'
    +     *
    +     * @return Conditional[]
    +     */
    +    public function getConditionalStyles($pCoordinate)
    +    {
    +        $pCoordinate = strtoupper($pCoordinate);
    +        if (!isset($this->conditionalStylesCollection[$pCoordinate])) {
    +            $this->conditionalStylesCollection[$pCoordinate] = [];
    +        }
    +
    +        return $this->conditionalStylesCollection[$pCoordinate];
    +    }
    +
    +    /**
    +     * Do conditional styles exist for this cell?
    +     *
    +     * @param string $pCoordinate eg: 'A1'
    +     *
    +     * @return bool
    +     */
    +    public function conditionalStylesExists($pCoordinate)
    +    {
    +        return isset($this->conditionalStylesCollection[strtoupper($pCoordinate)]);
    +    }
    +
    +    /**
    +     * Removes conditional styles for a cell.
    +     *
    +     * @param string $pCoordinate eg: 'A1'
    +     *
    +     * @return Worksheet
    +     */
    +    public function removeConditionalStyles($pCoordinate)
    +    {
    +        unset($this->conditionalStylesCollection[strtoupper($pCoordinate)]);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get collection of conditional styles.
    +     *
    +     * @return array
    +     */
    +    public function getConditionalStylesCollection()
    +    {
    +        return $this->conditionalStylesCollection;
    +    }
    +
    +    /**
    +     * Set conditional styles.
    +     *
    +     * @param string $pCoordinate eg: 'A1'
    +     * @param $pValue Conditional[]
    +     *
    +     * @return Worksheet
    +     */
    +    public function setConditionalStyles($pCoordinate, $pValue)
    +    {
    +        $this->conditionalStylesCollection[strtoupper($pCoordinate)] = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get style for cell by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex1 Numeric column coordinate of the cell
    +     * @param int $row1 Numeric row coordinate of the cell
    +     * @param null|int $columnIndex2 Numeric column coordinate of the range cell
    +     * @param null|int $row2 Numeric row coordinate of the range cell
    +     *
    +     * @return Style
    +     */
    +    public function getStyleByColumnAndRow($columnIndex1, $row1, $columnIndex2 = null, $row2 = null)
    +    {
    +        if ($columnIndex2 !== null && $row2 !== null) {
    +            $cellRange = Coordinate::stringFromColumnIndex($columnIndex1) . $row1 . ':' . Coordinate::stringFromColumnIndex($columnIndex2) . $row2;
    +
    +            return $this->getStyle($cellRange);
    +        }
    +
    +        return $this->getStyle(Coordinate::stringFromColumnIndex($columnIndex1) . $row1);
    +    }
    +
    +    /**
    +     * Duplicate cell style to a range of cells.
    +     *
    +     * Please note that this will overwrite existing cell styles for cells in range!
    +     *
    +     * @param Style $pCellStyle Cell style to duplicate
    +     * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1")
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function duplicateStyle(Style $pCellStyle, $pRange)
    +    {
    +        // Add the style to the workbook if necessary
    +        $workbook = $this->parent;
    +        if ($existingStyle = $this->parent->getCellXfByHashCode($pCellStyle->getHashCode())) {
    +            // there is already such cell Xf in our collection
    +            $xfIndex = $existingStyle->getIndex();
    +        } else {
    +            // we don't have such a cell Xf, need to add
    +            $workbook->addCellXf($pCellStyle);
    +            $xfIndex = $pCellStyle->getIndex();
    +        }
    +
    +        // Calculate range outer borders
    +        list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($pRange . ':' . $pRange);
    +
    +        // Make sure we can loop upwards on rows and columns
    +        if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) {
    +            $tmp = $rangeStart;
    +            $rangeStart = $rangeEnd;
    +            $rangeEnd = $tmp;
    +        }
    +
    +        // Loop through cells and apply styles
    +        for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) {
    +            for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) {
    +                $this->getCell(Coordinate::stringFromColumnIndex($col) . $row)->setXfIndex($xfIndex);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Duplicate conditional style to a range of cells.
    +     *
    +     * Please note that this will overwrite existing cell styles for cells in range!
    +     *
    +     * @param Conditional[] $pCellStyle Cell style to duplicate
    +     * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1")
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function duplicateConditionalStyle(array $pCellStyle, $pRange = '')
    +    {
    +        foreach ($pCellStyle as $cellStyle) {
    +            if (!($cellStyle instanceof Conditional)) {
    +                throw new Exception('Style is not a conditional style');
    +            }
    +        }
    +
    +        // Calculate range outer borders
    +        list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($pRange . ':' . $pRange);
    +
    +        // Make sure we can loop upwards on rows and columns
    +        if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) {
    +            $tmp = $rangeStart;
    +            $rangeStart = $rangeEnd;
    +            $rangeEnd = $tmp;
    +        }
    +
    +        // Loop through cells and apply styles
    +        for ($col = $rangeStart[0]; $col <= $rangeEnd[0]; ++$col) {
    +            for ($row = $rangeStart[1]; $row <= $rangeEnd[1]; ++$row) {
    +                $this->setConditionalStyles(Coordinate::stringFromColumnIndex($col) . $row, $pCellStyle);
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set break on a cell.
    +     *
    +     * @param string $pCoordinate Cell coordinate (e.g. A1)
    +     * @param int $pBreak Break type (type of Worksheet::BREAK_*)
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function setBreak($pCoordinate, $pBreak)
    +    {
    +        // Uppercase coordinate
    +        $pCoordinate = strtoupper($pCoordinate);
    +
    +        if ($pCoordinate != '') {
    +            if ($pBreak == self::BREAK_NONE) {
    +                if (isset($this->breaks[$pCoordinate])) {
    +                    unset($this->breaks[$pCoordinate]);
    +                }
    +            } else {
    +                $this->breaks[$pCoordinate] = $pBreak;
    +            }
    +        } else {
    +            throw new Exception('No cell coordinate specified.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set break on a cell by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex Numeric column coordinate of the cell
    +     * @param int $row Numeric row coordinate of the cell
    +     * @param int $break Break type (type of Worksheet::BREAK_*)
    +     *
    +     * @return Worksheet
    +     */
    +    public function setBreakByColumnAndRow($columnIndex, $row, $break)
    +    {
    +        return $this->setBreak(Coordinate::stringFromColumnIndex($columnIndex) . $row, $break);
    +    }
    +
    +    /**
    +     * Get breaks.
    +     *
    +     * @return array[]
    +     */
    +    public function getBreaks()
    +    {
    +        return $this->breaks;
    +    }
    +
    +    /**
    +     * Set merge on a cell range.
    +     *
    +     * @param string $pRange Cell range (e.g. A1:E1)
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function mergeCells($pRange)
    +    {
    +        // Uppercase coordinate
    +        $pRange = strtoupper($pRange);
    +
    +        if (strpos($pRange, ':') !== false) {
    +            $this->mergeCells[$pRange] = $pRange;
    +
    +            // make sure cells are created
    +
    +            // get the cells in the range
    +            $aReferences = Coordinate::extractAllCellReferencesInRange($pRange);
    +
    +            // create upper left cell if it does not already exist
    +            $upperLeft = $aReferences[0];
    +            if (!$this->cellExists($upperLeft)) {
    +                $this->getCell($upperLeft)->setValueExplicit(null, DataType::TYPE_NULL);
    +            }
    +
    +            // Blank out the rest of the cells in the range (if they exist)
    +            $count = count($aReferences);
    +            for ($i = 1; $i < $count; ++$i) {
    +                if ($this->cellExists($aReferences[$i])) {
    +                    $this->getCell($aReferences[$i])->setValueExplicit(null, DataType::TYPE_NULL);
    +                }
    +            }
    +        } else {
    +            throw new Exception('Merge must be set on a range of cells.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set merge on a cell range by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex1 Numeric column coordinate of the first cell
    +     * @param int $row1 Numeric row coordinate of the first cell
    +     * @param int $columnIndex2 Numeric column coordinate of the last cell
    +     * @param int $row2 Numeric row coordinate of the last cell
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function mergeCellsByColumnAndRow($columnIndex1, $row1, $columnIndex2, $row2)
    +    {
    +        $cellRange = Coordinate::stringFromColumnIndex($columnIndex1) . $row1 . ':' . Coordinate::stringFromColumnIndex($columnIndex2) . $row2;
    +
    +        return $this->mergeCells($cellRange);
    +    }
    +
    +    /**
    +     * Remove merge on a cell range.
    +     *
    +     * @param string $pRange Cell range (e.g. A1:E1)
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function unmergeCells($pRange)
    +    {
    +        // Uppercase coordinate
    +        $pRange = strtoupper($pRange);
    +
    +        if (strpos($pRange, ':') !== false) {
    +            if (isset($this->mergeCells[$pRange])) {
    +                unset($this->mergeCells[$pRange]);
    +            } else {
    +                throw new Exception('Cell range ' . $pRange . ' not known as merged.');
    +            }
    +        } else {
    +            throw new Exception('Merge can only be removed from a range of cells.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Remove merge on a cell range by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex1 Numeric column coordinate of the first cell
    +     * @param int $row1 Numeric row coordinate of the first cell
    +     * @param int $columnIndex2 Numeric column coordinate of the last cell
    +     * @param int $row2 Numeric row coordinate of the last cell
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function unmergeCellsByColumnAndRow($columnIndex1, $row1, $columnIndex2, $row2)
    +    {
    +        $cellRange = Coordinate::stringFromColumnIndex($columnIndex1) . $row1 . ':' . Coordinate::stringFromColumnIndex($columnIndex2) . $row2;
    +
    +        return $this->unmergeCells($cellRange);
    +    }
    +
    +    /**
    +     * Get merge cells array.
    +     *
    +     * @return array[]
    +     */
    +    public function getMergeCells()
    +    {
    +        return $this->mergeCells;
    +    }
    +
    +    /**
    +     * Set merge cells array for the entire sheet. Use instead mergeCells() to merge
    +     * a single cell range.
    +     *
    +     * @param array $pValue
    +     *
    +     * @return Worksheet
    +     */
    +    public function setMergeCells(array $pValue)
    +    {
    +        $this->mergeCells = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set protection on a cell range.
    +     *
    +     * @param string $pRange Cell (e.g. A1) or cell range (e.g. A1:E1)
    +     * @param string $pPassword Password to unlock the protection
    +     * @param bool $pAlreadyHashed If the password has already been hashed, set this to true
    +     *
    +     * @return Worksheet
    +     */
    +    public function protectCells($pRange, $pPassword, $pAlreadyHashed = false)
    +    {
    +        // Uppercase coordinate
    +        $pRange = strtoupper($pRange);
    +
    +        if (!$pAlreadyHashed) {
    +            $pPassword = Shared\PasswordHasher::hashPassword($pPassword);
    +        }
    +        $this->protectedCells[$pRange] = $pPassword;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set protection on a cell range by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex1 Numeric column coordinate of the first cell
    +     * @param int $row1 Numeric row coordinate of the first cell
    +     * @param int $columnIndex2 Numeric column coordinate of the last cell
    +     * @param int $row2 Numeric row coordinate of the last cell
    +     * @param string $password Password to unlock the protection
    +     * @param bool $alreadyHashed If the password has already been hashed, set this to true
    +     *
    +     * @return Worksheet
    +     */
    +    public function protectCellsByColumnAndRow($columnIndex1, $row1, $columnIndex2, $row2, $password, $alreadyHashed = false)
    +    {
    +        $cellRange = Coordinate::stringFromColumnIndex($columnIndex1) . $row1 . ':' . Coordinate::stringFromColumnIndex($columnIndex2) . $row2;
    +
    +        return $this->protectCells($cellRange, $password, $alreadyHashed);
    +    }
    +
    +    /**
    +     * Remove protection on a cell range.
    +     *
    +     * @param string $pRange Cell (e.g. A1) or cell range (e.g. A1:E1)
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function unprotectCells($pRange)
    +    {
    +        // Uppercase coordinate
    +        $pRange = strtoupper($pRange);
    +
    +        if (isset($this->protectedCells[$pRange])) {
    +            unset($this->protectedCells[$pRange]);
    +        } else {
    +            throw new Exception('Cell range ' . $pRange . ' not known as protected.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Remove protection on a cell range by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex1 Numeric column coordinate of the first cell
    +     * @param int $row1 Numeric row coordinate of the first cell
    +     * @param int $columnIndex2 Numeric column coordinate of the last cell
    +     * @param int $row2 Numeric row coordinate of the last cell
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function unprotectCellsByColumnAndRow($columnIndex1, $row1, $columnIndex2, $row2)
    +    {
    +        $cellRange = Coordinate::stringFromColumnIndex($columnIndex1) . $row1 . ':' . Coordinate::stringFromColumnIndex($columnIndex2) . $row2;
    +
    +        return $this->unprotectCells($cellRange);
    +    }
    +
    +    /**
    +     * Get protected cells.
    +     *
    +     * @return array[]
    +     */
    +    public function getProtectedCells()
    +    {
    +        return $this->protectedCells;
    +    }
    +
    +    /**
    +     * Get Autofilter.
    +     *
    +     * @return AutoFilter
    +     */
    +    public function getAutoFilter()
    +    {
    +        return $this->autoFilter;
    +    }
    +
    +    /**
    +     * Set AutoFilter.
    +     *
    +     * @param AutoFilter|string $pValue
    +     *            A simple string containing a Cell range like 'A1:E10' is permitted for backward compatibility
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function setAutoFilter($pValue)
    +    {
    +        if (is_string($pValue)) {
    +            $this->autoFilter->setRange($pValue);
    +        } elseif (is_object($pValue) && ($pValue instanceof AutoFilter)) {
    +            $this->autoFilter = $pValue;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Set Autofilter Range by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex1 Numeric column coordinate of the first cell
    +     * @param int $row1 Numeric row coordinate of the first cell
    +     * @param int $columnIndex2 Numeric column coordinate of the second cell
    +     * @param int $row2 Numeric row coordinate of the second cell
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function setAutoFilterByColumnAndRow($columnIndex1, $row1, $columnIndex2, $row2)
    +    {
    +        return $this->setAutoFilter(
    +            Coordinate::stringFromColumnIndex($columnIndex1) . $row1
    +            . ':' .
    +            Coordinate::stringFromColumnIndex($columnIndex2) . $row2
    +        );
    +    }
    +
    +    /**
    +     * Remove autofilter.
    +     *
    +     * @return Worksheet
    +     */
    +    public function removeAutoFilter()
    +    {
    +        $this->autoFilter->setRange(null);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Freeze Pane.
    +     *
    +     * @return string
    +     */
    +    public function getFreezePane()
    +    {
    +        return $this->freezePane;
    +    }
    +
    +    /**
    +     * Freeze Pane.
    +     *
    +     * Examples:
    +     *
    +     *     - A2 will freeze the rows above cell A2 (i.e row 1)
    +     *     - B1 will freeze the columns to the left of cell B1 (i.e column A)
    +     *     - B2 will freeze the rows above and to the left of cell B2 (i.e row 1 and column A)
    +     *
    +     * @param null|string $cell Position of the split
    +     * @param null|string $topLeftCell default position of the right bottom pane
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function freezePane($cell, $topLeftCell = null)
    +    {
    +        if (is_string($cell) && Coordinate::coordinateIsRange($cell)) {
    +            throw new Exception('Freeze pane can not be set on a range of cells.');
    +        }
    +
    +        if ($cell !== null && $topLeftCell === null) {
    +            $coordinate = Coordinate::coordinateFromString($cell);
    +            $topLeftCell = $coordinate[0] . $coordinate[1];
    +        }
    +
    +        $this->freezePane = $cell;
    +        $this->topLeftCell = $topLeftCell;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Freeze Pane by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex Numeric column coordinate of the cell
    +     * @param int $row Numeric row coordinate of the cell
    +     *
    +     * @return Worksheet
    +     */
    +    public function freezePaneByColumnAndRow($columnIndex, $row)
    +    {
    +        return $this->freezePane(Coordinate::stringFromColumnIndex($columnIndex) . $row);
    +    }
    +
    +    /**
    +     * Unfreeze Pane.
    +     *
    +     * @return Worksheet
    +     */
    +    public function unfreezePane()
    +    {
    +        return $this->freezePane(null);
    +    }
    +
    +    /**
    +     * Get the default position of the right bottom pane.
    +     *
    +     * @return int
    +     */
    +    public function getTopLeftCell()
    +    {
    +        return $this->topLeftCell;
    +    }
    +
    +    /**
    +     * Insert a new row, updating all possible related data.
    +     *
    +     * @param int $pBefore Insert before this one
    +     * @param int $pNumRows Number of rows to insert
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function insertNewRowBefore($pBefore, $pNumRows = 1)
    +    {
    +        if ($pBefore >= 1) {
    +            $objReferenceHelper = ReferenceHelper::getInstance();
    +            $objReferenceHelper->insertNewBefore('A' . $pBefore, 0, $pNumRows, $this);
    +        } else {
    +            throw new Exception('Rows can only be inserted before at least row 1.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Insert a new column, updating all possible related data.
    +     *
    +     * @param int $pBefore Insert before this one, eg: 'A'
    +     * @param int $pNumCols Number of columns to insert
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function insertNewColumnBefore($pBefore, $pNumCols = 1)
    +    {
    +        if (!is_numeric($pBefore)) {
    +            $objReferenceHelper = ReferenceHelper::getInstance();
    +            $objReferenceHelper->insertNewBefore($pBefore . '1', $pNumCols, 0, $this);
    +        } else {
    +            throw new Exception('Column references should not be numeric.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Insert a new column, updating all possible related data.
    +     *
    +     * @param int $beforeColumnIndex Insert before this one (numeric column coordinate of the cell)
    +     * @param int $pNumCols Number of columns to insert
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function insertNewColumnBeforeByIndex($beforeColumnIndex, $pNumCols = 1)
    +    {
    +        if ($beforeColumnIndex >= 1) {
    +            return $this->insertNewColumnBefore(Coordinate::stringFromColumnIndex($beforeColumnIndex), $pNumCols);
    +        }
    +
    +        throw new Exception('Columns can only be inserted before at least column A (1).');
    +    }
    +
    +    /**
    +     * Delete a row, updating all possible related data.
    +     *
    +     * @param int $pRow Remove starting with this one
    +     * @param int $pNumRows Number of rows to remove
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function removeRow($pRow, $pNumRows = 1)
    +    {
    +        if ($pRow >= 1) {
    +            $highestRow = $this->getHighestDataRow();
    +            $objReferenceHelper = ReferenceHelper::getInstance();
    +            $objReferenceHelper->insertNewBefore('A' . ($pRow + $pNumRows), 0, -$pNumRows, $this);
    +            for ($r = 0; $r < $pNumRows; ++$r) {
    +                $this->getCellCollection()->removeRow($highestRow);
    +                --$highestRow;
    +            }
    +        } else {
    +            throw new Exception('Rows to be deleted should at least start from row 1.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Remove a column, updating all possible related data.
    +     *
    +     * @param string $pColumn Remove starting with this one, eg: 'A'
    +     * @param int $pNumCols Number of columns to remove
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function removeColumn($pColumn, $pNumCols = 1)
    +    {
    +        if (!is_numeric($pColumn)) {
    +            $highestColumn = $this->getHighestDataColumn();
    +            $pColumn = Coordinate::stringFromColumnIndex(Coordinate::columnIndexFromString($pColumn) + $pNumCols);
    +            $objReferenceHelper = ReferenceHelper::getInstance();
    +            $objReferenceHelper->insertNewBefore($pColumn . '1', -$pNumCols, 0, $this);
    +            for ($c = 0; $c < $pNumCols; ++$c) {
    +                $this->getCellCollection()->removeColumn($highestColumn);
    +                $highestColumn = Coordinate::stringFromColumnIndex(Coordinate::columnIndexFromString($highestColumn) - 1);
    +            }
    +        } else {
    +            throw new Exception('Column references should not be numeric.');
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Remove a column, updating all possible related data.
    +     *
    +     * @param int $columnIndex Remove starting with this one (numeric column coordinate of the cell)
    +     * @param int $numColumns Number of columns to remove
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function removeColumnByIndex($columnIndex, $numColumns = 1)
    +    {
    +        if ($columnIndex >= 1) {
    +            return $this->removeColumn(Coordinate::stringFromColumnIndex($columnIndex), $numColumns);
    +        }
    +
    +        throw new Exception('Columns to be deleted should at least start from column A (1)');
    +    }
    +
    +    /**
    +     * Show gridlines?
    +     *
    +     * @return bool
    +     */
    +    public function getShowGridlines()
    +    {
    +        return $this->showGridlines;
    +    }
    +
    +    /**
    +     * Set show gridlines.
    +     *
    +     * @param bool $pValue Show gridlines (true/false)
    +     *
    +     * @return Worksheet
    +     */
    +    public function setShowGridlines($pValue)
    +    {
    +        $this->showGridlines = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Print gridlines?
    +     *
    +     * @return bool
    +     */
    +    public function getPrintGridlines()
    +    {
    +        return $this->printGridlines;
    +    }
    +
    +    /**
    +     * Set print gridlines.
    +     *
    +     * @param bool $pValue Print gridlines (true/false)
    +     *
    +     * @return Worksheet
    +     */
    +    public function setPrintGridlines($pValue)
    +    {
    +        $this->printGridlines = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Show row and column headers?
    +     *
    +     * @return bool
    +     */
    +    public function getShowRowColHeaders()
    +    {
    +        return $this->showRowColHeaders;
    +    }
    +
    +    /**
    +     * Set show row and column headers.
    +     *
    +     * @param bool $pValue Show row and column headers (true/false)
    +     *
    +     * @return Worksheet
    +     */
    +    public function setShowRowColHeaders($pValue)
    +    {
    +        $this->showRowColHeaders = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Show summary below? (Row/Column outlining).
    +     *
    +     * @return bool
    +     */
    +    public function getShowSummaryBelow()
    +    {
    +        return $this->showSummaryBelow;
    +    }
    +
    +    /**
    +     * Set show summary below.
    +     *
    +     * @param bool $pValue Show summary below (true/false)
    +     *
    +     * @return Worksheet
    +     */
    +    public function setShowSummaryBelow($pValue)
    +    {
    +        $this->showSummaryBelow = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Show summary right? (Row/Column outlining).
    +     *
    +     * @return bool
    +     */
    +    public function getShowSummaryRight()
    +    {
    +        return $this->showSummaryRight;
    +    }
    +
    +    /**
    +     * Set show summary right.
    +     *
    +     * @param bool $pValue Show summary right (true/false)
    +     *
    +     * @return Worksheet
    +     */
    +    public function setShowSummaryRight($pValue)
    +    {
    +        $this->showSummaryRight = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get comments.
    +     *
    +     * @return Comment[]
    +     */
    +    public function getComments()
    +    {
    +        return $this->comments;
    +    }
    +
    +    /**
    +     * Set comments array for the entire sheet.
    +     *
    +     * @param Comment[] $pValue
    +     *
    +     * @return Worksheet
    +     */
    +    public function setComments(array $pValue)
    +    {
    +        $this->comments = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get comment for cell.
    +     *
    +     * @param string $pCellCoordinate Cell coordinate to get comment for, eg: 'A1'
    +     *
    +     * @throws Exception
    +     *
    +     * @return Comment
    +     */
    +    public function getComment($pCellCoordinate)
    +    {
    +        // Uppercase coordinate
    +        $pCellCoordinate = strtoupper($pCellCoordinate);
    +
    +        if (Coordinate::coordinateIsRange($pCellCoordinate)) {
    +            throw new Exception('Cell coordinate string can not be a range of cells.');
    +        } elseif (strpos($pCellCoordinate, '$') !== false) {
    +            throw new Exception('Cell coordinate string must not be absolute.');
    +        } elseif ($pCellCoordinate == '') {
    +            throw new Exception('Cell coordinate can not be zero-length string.');
    +        }
    +
    +        // Check if we already have a comment for this cell.
    +        if (isset($this->comments[$pCellCoordinate])) {
    +            return $this->comments[$pCellCoordinate];
    +        }
    +
    +        // If not, create a new comment.
    +        $newComment = new Comment();
    +        $this->comments[$pCellCoordinate] = $newComment;
    +
    +        return $newComment;
    +    }
    +
    +    /**
    +     * Get comment for cell by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex Numeric column coordinate of the cell
    +     * @param int $row Numeric row coordinate of the cell
    +     *
    +     * @return Comment
    +     */
    +    public function getCommentByColumnAndRow($columnIndex, $row)
    +    {
    +        return $this->getComment(Coordinate::stringFromColumnIndex($columnIndex) . $row);
    +    }
    +
    +    /**
    +     * Get active cell.
    +     *
    +     * @return string Example: 'A1'
    +     */
    +    public function getActiveCell()
    +    {
    +        return $this->activeCell;
    +    }
    +
    +    /**
    +     * Get selected cells.
    +     *
    +     * @return string
    +     */
    +    public function getSelectedCells()
    +    {
    +        return $this->selectedCells;
    +    }
    +
    +    /**
    +     * Selected cell.
    +     *
    +     * @param string $pCoordinate Cell (i.e. A1)
    +     *
    +     * @return Worksheet
    +     */
    +    public function setSelectedCell($pCoordinate)
    +    {
    +        return $this->setSelectedCells($pCoordinate);
    +    }
    +
    +    /**
    +     * Select a range of cells.
    +     *
    +     * @param string $pCoordinate Cell range, examples: 'A1', 'B2:G5', 'A:C', '3:6'
    +     *
    +     * @return Worksheet
    +     */
    +    public function setSelectedCells($pCoordinate)
    +    {
    +        // Uppercase coordinate
    +        $pCoordinate = strtoupper($pCoordinate);
    +
    +        // Convert 'A' to 'A:A'
    +        $pCoordinate = preg_replace('/^([A-Z]+)$/', '${1}:${1}', $pCoordinate);
    +
    +        // Convert '1' to '1:1'
    +        $pCoordinate = preg_replace('/^(\d+)$/', '${1}:${1}', $pCoordinate);
    +
    +        // Convert 'A:C' to 'A1:C1048576'
    +        $pCoordinate = preg_replace('/^([A-Z]+):([A-Z]+)$/', '${1}1:${2}1048576', $pCoordinate);
    +
    +        // Convert '1:3' to 'A1:XFD3'
    +        $pCoordinate = preg_replace('/^(\d+):(\d+)$/', 'A${1}:XFD${2}', $pCoordinate);
    +
    +        if (Coordinate::coordinateIsRange($pCoordinate)) {
    +            list($first) = Coordinate::splitRange($pCoordinate);
    +            $this->activeCell = $first[0];
    +        } else {
    +            $this->activeCell = $pCoordinate;
    +        }
    +        $this->selectedCells = $pCoordinate;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Selected cell by using numeric cell coordinates.
    +     *
    +     * @param int $columnIndex Numeric column coordinate of the cell
    +     * @param int $row Numeric row coordinate of the cell
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function setSelectedCellByColumnAndRow($columnIndex, $row)
    +    {
    +        return $this->setSelectedCells(Coordinate::stringFromColumnIndex($columnIndex) . $row);
    +    }
    +
    +    /**
    +     * Get right-to-left.
    +     *
    +     * @return bool
    +     */
    +    public function getRightToLeft()
    +    {
    +        return $this->rightToLeft;
    +    }
    +
    +    /**
    +     * Set right-to-left.
    +     *
    +     * @param bool $value Right-to-left true/false
    +     *
    +     * @return Worksheet
    +     */
    +    public function setRightToLeft($value)
    +    {
    +        $this->rightToLeft = $value;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Fill worksheet from values in array.
    +     *
    +     * @param array $source Source array
    +     * @param mixed $nullValue Value in source array that stands for blank cell
    +     * @param string $startCell Insert array starting from this cell address as the top left coordinate
    +     * @param bool $strictNullComparison Apply strict comparison when testing for null values in the array
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function fromArray(array $source, $nullValue = null, $startCell = 'A1', $strictNullComparison = false)
    +    {
    +        //    Convert a 1-D array to 2-D (for ease of looping)
    +        if (!is_array(end($source))) {
    +            $source = [$source];
    +        }
    +
    +        // start coordinate
    +        list($startColumn, $startRow) = Coordinate::coordinateFromString($startCell);
    +
    +        // Loop through $source
    +        foreach ($source as $rowData) {
    +            $currentColumn = $startColumn;
    +            foreach ($rowData as $cellValue) {
    +                if ($strictNullComparison) {
    +                    if ($cellValue !== $nullValue) {
    +                        // Set cell value
    +                        $this->getCell($currentColumn . $startRow)->setValue($cellValue);
    +                    }
    +                } else {
    +                    if ($cellValue != $nullValue) {
    +                        // Set cell value
    +                        $this->getCell($currentColumn . $startRow)->setValue($cellValue);
    +                    }
    +                }
    +                ++$currentColumn;
    +            }
    +            ++$startRow;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Create array from a range of cells.
    +     *
    +     * @param string $pRange Range of cells (i.e. "A1:B10"), or just one cell (i.e. "A1")
    +     * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist
    +     * @param bool $calculateFormulas Should formulas be calculated?
    +     * @param bool $formatData Should formatting be applied to cell values?
    +     * @param bool $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero
    +     *                               True - Return rows and columns indexed by their actual row and column IDs
    +     *
    +     * @return array
    +     */
    +    public function rangeToArray($pRange, $nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false)
    +    {
    +        // Returnvalue
    +        $returnValue = [];
    +        //    Identify the range that we need to extract from the worksheet
    +        list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($pRange);
    +        $minCol = Coordinate::stringFromColumnIndex($rangeStart[0]);
    +        $minRow = $rangeStart[1];
    +        $maxCol = Coordinate::stringFromColumnIndex($rangeEnd[0]);
    +        $maxRow = $rangeEnd[1];
    +
    +        ++$maxCol;
    +        // Loop through rows
    +        $r = -1;
    +        for ($row = $minRow; $row <= $maxRow; ++$row) {
    +            $rRef = ($returnCellRef) ? $row : ++$r;
    +            $c = -1;
    +            // Loop through columns in the current row
    +            for ($col = $minCol; $col != $maxCol; ++$col) {
    +                $cRef = ($returnCellRef) ? $col : ++$c;
    +                //    Using getCell() will create a new cell if it doesn't already exist. We don't want that to happen
    +                //        so we test and retrieve directly against cellCollection
    +                if ($this->cellCollection->has($col . $row)) {
    +                    // Cell exists
    +                    $cell = $this->cellCollection->get($col . $row);
    +                    if ($cell->getValue() !== null) {
    +                        if ($cell->getValue() instanceof RichText) {
    +                            $returnValue[$rRef][$cRef] = $cell->getValue()->getPlainText();
    +                        } else {
    +                            if ($calculateFormulas) {
    +                                $returnValue[$rRef][$cRef] = $cell->getCalculatedValue();
    +                            } else {
    +                                $returnValue[$rRef][$cRef] = $cell->getValue();
    +                            }
    +                        }
    +
    +                        if ($formatData) {
    +                            $style = $this->parent->getCellXfByIndex($cell->getXfIndex());
    +                            $returnValue[$rRef][$cRef] = NumberFormat::toFormattedString(
    +                                $returnValue[$rRef][$cRef],
    +                                ($style && $style->getNumberFormat()) ? $style->getNumberFormat()->getFormatCode() : NumberFormat::FORMAT_GENERAL
    +                            );
    +                        }
    +                    } else {
    +                        // Cell holds a NULL
    +                        $returnValue[$rRef][$cRef] = $nullValue;
    +                    }
    +                } else {
    +                    // Cell doesn't exist
    +                    $returnValue[$rRef][$cRef] = $nullValue;
    +                }
    +            }
    +        }
    +
    +        // Return
    +        return $returnValue;
    +    }
    +
    +    /**
    +     * Create array from a range of cells.
    +     *
    +     * @param string $pNamedRange Name of the Named Range
    +     * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist
    +     * @param bool $calculateFormulas Should formulas be calculated?
    +     * @param bool $formatData Should formatting be applied to cell values?
    +     * @param bool $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero
    +     *                                True - Return rows and columns indexed by their actual row and column IDs
    +     *
    +     * @throws Exception
    +     *
    +     * @return array
    +     */
    +    public function namedRangeToArray($pNamedRange, $nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false)
    +    {
    +        $namedRange = NamedRange::resolveRange($pNamedRange, $this);
    +        if ($namedRange !== null) {
    +            $pWorkSheet = $namedRange->getWorksheet();
    +            $pCellRange = $namedRange->getRange();
    +
    +            return $pWorkSheet->rangeToArray($pCellRange, $nullValue, $calculateFormulas, $formatData, $returnCellRef);
    +        }
    +
    +        throw new Exception('Named Range ' . $pNamedRange . ' does not exist.');
    +    }
    +
    +    /**
    +     * Create array from worksheet.
    +     *
    +     * @param mixed $nullValue Value returned in the array entry if a cell doesn't exist
    +     * @param bool $calculateFormulas Should formulas be calculated?
    +     * @param bool $formatData Should formatting be applied to cell values?
    +     * @param bool $returnCellRef False - Return a simple array of rows and columns indexed by number counting from zero
    +     *                               True - Return rows and columns indexed by their actual row and column IDs
    +     *
    +     * @return array
    +     */
    +    public function toArray($nullValue = null, $calculateFormulas = true, $formatData = true, $returnCellRef = false)
    +    {
    +        // Garbage collect...
    +        $this->garbageCollect();
    +
    +        //    Identify the range that we need to extract from the worksheet
    +        $maxCol = $this->getHighestColumn();
    +        $maxRow = $this->getHighestRow();
    +
    +        // Return
    +        return $this->rangeToArray('A1:' . $maxCol . $maxRow, $nullValue, $calculateFormulas, $formatData, $returnCellRef);
    +    }
    +
    +    /**
    +     * Get row iterator.
    +     *
    +     * @param int $startRow The row number at which to start iterating
    +     * @param int $endRow The row number at which to stop iterating
    +     *
    +     * @return RowIterator
    +     */
    +    public function getRowIterator($startRow = 1, $endRow = null)
    +    {
    +        return new RowIterator($this, $startRow, $endRow);
    +    }
    +
    +    /**
    +     * Get column iterator.
    +     *
    +     * @param string $startColumn The column address at which to start iterating
    +     * @param string $endColumn The column address at which to stop iterating
    +     *
    +     * @return ColumnIterator
    +     */
    +    public function getColumnIterator($startColumn = 'A', $endColumn = null)
    +    {
    +        return new ColumnIterator($this, $startColumn, $endColumn);
    +    }
    +
    +    /**
    +     * Run PhpSpreadsheet garbage collector.
    +     *
    +     * @return Worksheet
    +     */
    +    public function garbageCollect()
    +    {
    +        // Flush cache
    +        $this->cellCollection->get('A1');
    +
    +        // Lookup highest column and highest row if cells are cleaned
    +        $colRow = $this->cellCollection->getHighestRowAndColumn();
    +        $highestRow = $colRow['row'];
    +        $highestColumn = Coordinate::columnIndexFromString($colRow['column']);
    +
    +        // Loop through column dimensions
    +        foreach ($this->columnDimensions as $dimension) {
    +            $highestColumn = max($highestColumn, Coordinate::columnIndexFromString($dimension->getColumnIndex()));
    +        }
    +
    +        // Loop through row dimensions
    +        foreach ($this->rowDimensions as $dimension) {
    +            $highestRow = max($highestRow, $dimension->getRowIndex());
    +        }
    +
    +        // Cache values
    +        if ($highestColumn < 1) {
    +            $this->cachedHighestColumn = 'A';
    +        } else {
    +            $this->cachedHighestColumn = Coordinate::stringFromColumnIndex($highestColumn);
    +        }
    +        $this->cachedHighestRow = $highestRow;
    +
    +        // Return
    +        return $this;
    +    }
    +
    +    /**
    +     * Get hash code.
    +     *
    +     * @return string Hash code
    +     */
    +    public function getHashCode()
    +    {
    +        if ($this->dirty) {
    +            $this->hash = md5($this->title . $this->autoFilter . ($this->protection->isProtectionEnabled() ? 't' : 'f') . __CLASS__);
    +            $this->dirty = false;
    +        }
    +
    +        return $this->hash;
    +    }
    +
    +    /**
    +     * Extract worksheet title from range.
    +     *
    +     * Example: extractSheetTitle("testSheet!A1") ==> 'A1'
    +     * Example: extractSheetTitle("'testSheet 1'!A1", true) ==> ['testSheet 1', 'A1'];
    +     *
    +     * @param string $pRange Range to extract title from
    +     * @param bool $returnRange Return range? (see example)
    +     *
    +     * @return mixed
    +     */
    +    public static function extractSheetTitle($pRange, $returnRange = false)
    +    {
    +        // Sheet title included?
    +        if (($sep = strrpos($pRange, '!')) === false) {
    +            return $returnRange ? ['', $pRange] : '';
    +        }
    +
    +        if ($returnRange) {
    +            return [substr($pRange, 0, $sep), substr($pRange, $sep + 1)];
    +        }
    +
    +        return substr($pRange, $sep + 1);
    +    }
    +
    +    /**
    +     * Get hyperlink.
    +     *
    +     * @param string $pCellCoordinate Cell coordinate to get hyperlink for, eg: 'A1'
    +     *
    +     * @return Hyperlink
    +     */
    +    public function getHyperlink($pCellCoordinate)
    +    {
    +        // return hyperlink if we already have one
    +        if (isset($this->hyperlinkCollection[$pCellCoordinate])) {
    +            return $this->hyperlinkCollection[$pCellCoordinate];
    +        }
    +
    +        // else create hyperlink
    +        $this->hyperlinkCollection[$pCellCoordinate] = new Hyperlink();
    +
    +        return $this->hyperlinkCollection[$pCellCoordinate];
    +    }
    +
    +    /**
    +     * Set hyperlink.
    +     *
    +     * @param string $pCellCoordinate Cell coordinate to insert hyperlink, eg: 'A1'
    +     * @param null|Hyperlink $pHyperlink
    +     *
    +     * @return Worksheet
    +     */
    +    public function setHyperlink($pCellCoordinate, Hyperlink $pHyperlink = null)
    +    {
    +        if ($pHyperlink === null) {
    +            unset($this->hyperlinkCollection[$pCellCoordinate]);
    +        } else {
    +            $this->hyperlinkCollection[$pCellCoordinate] = $pHyperlink;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Hyperlink at a specific coordinate exists?
    +     *
    +     * @param string $pCoordinate eg: 'A1'
    +     *
    +     * @return bool
    +     */
    +    public function hyperlinkExists($pCoordinate)
    +    {
    +        return isset($this->hyperlinkCollection[$pCoordinate]);
    +    }
    +
    +    /**
    +     * Get collection of hyperlinks.
    +     *
    +     * @return Hyperlink[]
    +     */
    +    public function getHyperlinkCollection()
    +    {
    +        return $this->hyperlinkCollection;
    +    }
    +
    +    /**
    +     * Get data validation.
    +     *
    +     * @param string $pCellCoordinate Cell coordinate to get data validation for, eg: 'A1'
    +     *
    +     * @return DataValidation
    +     */
    +    public function getDataValidation($pCellCoordinate)
    +    {
    +        // return data validation if we already have one
    +        if (isset($this->dataValidationCollection[$pCellCoordinate])) {
    +            return $this->dataValidationCollection[$pCellCoordinate];
    +        }
    +
    +        // else create data validation
    +        $this->dataValidationCollection[$pCellCoordinate] = new DataValidation();
    +
    +        return $this->dataValidationCollection[$pCellCoordinate];
    +    }
    +
    +    /**
    +     * Set data validation.
    +     *
    +     * @param string $pCellCoordinate Cell coordinate to insert data validation, eg: 'A1'
    +     * @param null|DataValidation $pDataValidation
    +     *
    +     * @return Worksheet
    +     */
    +    public function setDataValidation($pCellCoordinate, DataValidation $pDataValidation = null)
    +    {
    +        if ($pDataValidation === null) {
    +            unset($this->dataValidationCollection[$pCellCoordinate]);
    +        } else {
    +            $this->dataValidationCollection[$pCellCoordinate] = $pDataValidation;
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Data validation at a specific coordinate exists?
    +     *
    +     * @param string $pCoordinate eg: 'A1'
    +     *
    +     * @return bool
    +     */
    +    public function dataValidationExists($pCoordinate)
    +    {
    +        return isset($this->dataValidationCollection[$pCoordinate]);
    +    }
    +
    +    /**
    +     * Get collection of data validations.
    +     *
    +     * @return DataValidation[]
    +     */
    +    public function getDataValidationCollection()
    +    {
    +        return $this->dataValidationCollection;
    +    }
    +
    +    /**
    +     * Accepts a range, returning it as a range that falls within the current highest row and column of the worksheet.
    +     *
    +     * @param string $range
    +     *
    +     * @return string Adjusted range value
    +     */
    +    public function shrinkRangeToFit($range)
    +    {
    +        $maxCol = $this->getHighestColumn();
    +        $maxRow = $this->getHighestRow();
    +        $maxCol = Coordinate::columnIndexFromString($maxCol);
    +
    +        $rangeBlocks = explode(' ', $range);
    +        foreach ($rangeBlocks as &$rangeSet) {
    +            $rangeBoundaries = Coordinate::getRangeBoundaries($rangeSet);
    +
    +            if (Coordinate::columnIndexFromString($rangeBoundaries[0][0]) > $maxCol) {
    +                $rangeBoundaries[0][0] = Coordinate::stringFromColumnIndex($maxCol);
    +            }
    +            if ($rangeBoundaries[0][1] > $maxRow) {
    +                $rangeBoundaries[0][1] = $maxRow;
    +            }
    +            if (Coordinate::columnIndexFromString($rangeBoundaries[1][0]) > $maxCol) {
    +                $rangeBoundaries[1][0] = Coordinate::stringFromColumnIndex($maxCol);
    +            }
    +            if ($rangeBoundaries[1][1] > $maxRow) {
    +                $rangeBoundaries[1][1] = $maxRow;
    +            }
    +            $rangeSet = $rangeBoundaries[0][0] . $rangeBoundaries[0][1] . ':' . $rangeBoundaries[1][0] . $rangeBoundaries[1][1];
    +        }
    +        unset($rangeSet);
    +        $stRange = implode(' ', $rangeBlocks);
    +
    +        return $stRange;
    +    }
    +
    +    /**
    +     * Get tab color.
    +     *
    +     * @return Color
    +     */
    +    public function getTabColor()
    +    {
    +        if ($this->tabColor === null) {
    +            $this->tabColor = new Color();
    +        }
    +
    +        return $this->tabColor;
    +    }
    +
    +    /**
    +     * Reset tab color.
    +     *
    +     * @return Worksheet
    +     */
    +    public function resetTabColor()
    +    {
    +        $this->tabColor = null;
    +        unset($this->tabColor);
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Tab color set?
    +     *
    +     * @return bool
    +     */
    +    public function isTabColorSet()
    +    {
    +        return $this->tabColor !== null;
    +    }
    +
    +    /**
    +     * Copy worksheet (!= clone!).
    +     *
    +     * @return Worksheet
    +     */
    +    public function copy()
    +    {
    +        $copied = clone $this;
    +
    +        return $copied;
    +    }
    +
    +    /**
    +     * Implement PHP __clone to create a deep clone, not just a shallow copy.
    +     */
    +    public function __clone()
    +    {
    +        foreach ($this as $key => $val) {
    +            if ($key == 'parent') {
    +                continue;
    +            }
    +
    +            if (is_object($val) || (is_array($val))) {
    +                if ($key == 'cellCollection') {
    +                    $newCollection = $this->cellCollection->cloneCellCollection($this);
    +                    $this->cellCollection = $newCollection;
    +                } elseif ($key == 'drawingCollection') {
    +                    $currentCollection = $this->drawingCollection;
    +                    $this->drawingCollection = new ArrayObject();
    +                    foreach ($currentCollection as $item) {
    +                        if (is_object($item)) {
    +                            $newDrawing = clone $item;
    +                            $newDrawing->setWorksheet($this);
    +                        }
    +                    }
    +                } elseif (($key == 'autoFilter') && ($this->autoFilter instanceof AutoFilter)) {
    +                    $newAutoFilter = clone $this->autoFilter;
    +                    $this->autoFilter = $newAutoFilter;
    +                    $this->autoFilter->setParent($this);
    +                } else {
    +                    $this->{$key} = unserialize(serialize($val));
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Define the code name of the sheet.
    +     *
    +     * @param string $pValue Same rule as Title minus space not allowed (but, like Excel, change
    +     *                       silently space to underscore)
    +     * @param bool $validate False to skip validation of new title. WARNING: This should only be set
    +     *                       at parse time (by Readers), where titles can be assumed to be valid.
    +     *
    +     * @throws Exception
    +     *
    +     * @return Worksheet
    +     */
    +    public function setCodeName($pValue, $validate = true)
    +    {
    +        // Is this a 'rename' or not?
    +        if ($this->getCodeName() == $pValue) {
    +            return $this;
    +        }
    +
    +        if ($validate) {
    +            $pValue = str_replace(' ', '_', $pValue); //Excel does this automatically without flinching, we are doing the same
    +
    +            // Syntax check
    +            // throw an exception if not valid
    +            self::checkSheetCodeName($pValue);
    +
    +            // We use the same code that setTitle to find a valid codeName else not using a space (Excel don't like) but a '_'
    +
    +            if ($this->getParent()) {
    +                // Is there already such sheet name?
    +                if ($this->getParent()->sheetCodeNameExists($pValue)) {
    +                    // Use name, but append with lowest possible integer
    +
    +                    if (Shared\StringHelper::countCharacters($pValue) > 29) {
    +                        $pValue = Shared\StringHelper::substring($pValue, 0, 29);
    +                    }
    +                    $i = 1;
    +                    while ($this->getParent()->sheetCodeNameExists($pValue . '_' . $i)) {
    +                        ++$i;
    +                        if ($i == 10) {
    +                            if (Shared\StringHelper::countCharacters($pValue) > 28) {
    +                                $pValue = Shared\StringHelper::substring($pValue, 0, 28);
    +                            }
    +                        } elseif ($i == 100) {
    +                            if (Shared\StringHelper::countCharacters($pValue) > 27) {
    +                                $pValue = Shared\StringHelper::substring($pValue, 0, 27);
    +                            }
    +                        }
    +                    }
    +
    +                    $pValue = $pValue . '_' . $i; // ok, we have a valid name
    +                }
    +            }
    +        }
    +
    +        $this->codeName = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Return the code name of the sheet.
    +     *
    +     * @return null|string
    +     */
    +    public function getCodeName()
    +    {
    +        return $this->codeName;
    +    }
    +
    +    /**
    +     * Sheet has a code name ?
    +     *
    +     * @return bool
    +     */
    +    public function hasCodeName()
    +    {
    +        return $this->codeName !== null;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/BaseWriter.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/BaseWriter.php
    new file mode 100644
    index 00000000000..122783f30c6
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/BaseWriter.php
    @@ -0,0 +1,141 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer;
    +
    +abstract class BaseWriter implements IWriter
    +{
    +    /**
    +     * Write charts that are defined in the workbook?
    +     * Identifies whether the Writer should write definitions for any charts that exist in the PhpSpreadsheet object;.
    +     *
    +     * @var bool
    +     */
    +    protected $includeCharts = false;
    +
    +    /**
    +     * Pre-calculate formulas
    +     * Forces PhpSpreadsheet to recalculate all formulae in a workbook when saving, so that the pre-calculated values are
    +     * immediately available to MS Excel or other office spreadsheet viewer when opening the file.
    +     *
    +     * @var bool
    +     */
    +    protected $preCalculateFormulas = true;
    +
    +    /**
    +     * Use disk caching where possible?
    +     *
    +     * @var bool
    +     */
    +    private $useDiskCaching = false;
    +
    +    /**
    +     * Disk caching directory.
    +     *
    +     * @var string
    +     */
    +    private $diskCachingDirectory = './';
    +
    +    /**
    +     * Write charts in workbook?
    +     *        If this is true, then the Writer will write definitions for any charts that exist in the PhpSpreadsheet object.
    +     *        If false (the default) it will ignore any charts defined in the PhpSpreadsheet object.
    +     *
    +     * @return bool
    +     */
    +    public function getIncludeCharts()
    +    {
    +        return $this->includeCharts;
    +    }
    +
    +    /**
    +     * Set write charts in workbook
    +     *        Set to true, to advise the Writer to include any charts that exist in the PhpSpreadsheet object.
    +     *        Set to false (the default) to ignore charts.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return IWriter
    +     */
    +    public function setIncludeCharts($pValue)
    +    {
    +        $this->includeCharts = (bool) $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Pre-Calculate Formulas flag
    +     *     If this is true (the default), then the writer will recalculate all formulae in a workbook when saving,
    +     *        so that the pre-calculated values are immediately available to MS Excel or other office spreadsheet
    +     *        viewer when opening the file
    +     *     If false, then formulae are not calculated on save. This is faster for saving in PhpSpreadsheet, but slower
    +     *        when opening the resulting file in MS Excel, because Excel has to recalculate the formulae itself.
    +     *
    +     * @return bool
    +     */
    +    public function getPreCalculateFormulas()
    +    {
    +        return $this->preCalculateFormulas;
    +    }
    +
    +    /**
    +     * Set Pre-Calculate Formulas
    +     *        Set to true (the default) to advise the Writer to calculate all formulae on save
    +     *        Set to false to prevent precalculation of formulae on save.
    +     *
    +     * @param bool $pValue Pre-Calculate Formulas?
    +     *
    +     * @return IWriter
    +     */
    +    public function setPreCalculateFormulas($pValue)
    +    {
    +        $this->preCalculateFormulas = (bool) $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get use disk caching where possible?
    +     *
    +     * @return bool
    +     */
    +    public function getUseDiskCaching()
    +    {
    +        return $this->useDiskCaching;
    +    }
    +
    +    /**
    +     * Set use disk caching where possible?
    +     *
    +     * @param bool $pValue
    +     * @param string $pDirectory Disk caching directory
    +     *
    +     * @throws Exception when directory does not exist
    +     *
    +     * @return IWriter
    +     */
    +    public function setUseDiskCaching($pValue, $pDirectory = null)
    +    {
    +        $this->useDiskCaching = $pValue;
    +
    +        if ($pDirectory !== null) {
    +            if (is_dir($pDirectory)) {
    +                $this->diskCachingDirectory = $pDirectory;
    +            } else {
    +                throw new Exception("Directory does not exist: $pDirectory");
    +            }
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get disk caching directory.
    +     *
    +     * @return string
    +     */
    +    public function getDiskCachingDirectory()
    +    {
    +        return $this->diskCachingDirectory;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Csv.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Csv.php
    new file mode 100644
    index 00000000000..ae38ab73218
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Csv.php
    @@ -0,0 +1,342 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class Csv extends BaseWriter
    +{
    +    /**
    +     * PhpSpreadsheet object.
    +     *
    +     * @var Spreadsheet
    +     */
    +    private $spreadsheet;
    +
    +    /**
    +     * Delimiter.
    +     *
    +     * @var string
    +     */
    +    private $delimiter = ',';
    +
    +    /**
    +     * Enclosure.
    +     *
    +     * @var string
    +     */
    +    private $enclosure = '"';
    +
    +    /**
    +     * Line ending.
    +     *
    +     * @var string
    +     */
    +    private $lineEnding = PHP_EOL;
    +
    +    /**
    +     * Sheet index to write.
    +     *
    +     * @var int
    +     */
    +    private $sheetIndex = 0;
    +
    +    /**
    +     * Whether to write a BOM (for UTF8).
    +     *
    +     * @var bool
    +     */
    +    private $useBOM = false;
    +
    +    /**
    +     * Whether to write a Separator line as the first line of the file
    +     *     sep=x.
    +     *
    +     * @var bool
    +     */
    +    private $includeSeparatorLine = false;
    +
    +    /**
    +     * Whether to write a fully Excel compatible CSV file.
    +     *
    +     * @var bool
    +     */
    +    private $excelCompatibility = false;
    +
    +    /**
    +     * Create a new CSV.
    +     *
    +     * @param Spreadsheet $spreadsheet Spreadsheet object
    +     */
    +    public function __construct(Spreadsheet $spreadsheet)
    +    {
    +        $this->spreadsheet = $spreadsheet;
    +    }
    +
    +    /**
    +     * Save PhpSpreadsheet to file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws Exception
    +     */
    +    public function save($pFilename)
    +    {
    +        // Fetch sheet
    +        $sheet = $this->spreadsheet->getSheet($this->sheetIndex);
    +
    +        $saveDebugLog = Calculation::getInstance($this->spreadsheet)->getDebugLog()->getWriteDebugLog();
    +        Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog(false);
    +        $saveArrayReturnType = Calculation::getArrayReturnType();
    +        Calculation::setArrayReturnType(Calculation::RETURN_ARRAY_AS_VALUE);
    +
    +        // Open file
    +        $fileHandle = fopen($pFilename, 'wb+');
    +        if ($fileHandle === false) {
    +            throw new Exception("Could not open file $pFilename for writing.");
    +        }
    +
    +        if ($this->excelCompatibility) {
    +            $this->setUseBOM(true); //  Enforce UTF-8 BOM Header
    +            $this->setIncludeSeparatorLine(true); //  Set separator line
    +            $this->setEnclosure('"'); //  Set enclosure to "
    +            $this->setDelimiter(';'); //  Set delimiter to a semi-colon
    +            $this->setLineEnding("\r\n");
    +        }
    +        if ($this->useBOM) {
    +            // Write the UTF-8 BOM code if required
    +            fwrite($fileHandle, "\xEF\xBB\xBF");
    +        }
    +        if ($this->includeSeparatorLine) {
    +            // Write the separator line if required
    +            fwrite($fileHandle, 'sep=' . $this->getDelimiter() . $this->lineEnding);
    +        }
    +
    +        //    Identify the range that we need to extract from the worksheet
    +        $maxCol = $sheet->getHighestDataColumn();
    +        $maxRow = $sheet->getHighestDataRow();
    +
    +        // Write rows to file
    +        for ($row = 1; $row <= $maxRow; ++$row) {
    +            // Convert the row to an array...
    +            $cellsArray = $sheet->rangeToArray('A' . $row . ':' . $maxCol . $row, '', $this->preCalculateFormulas);
    +            // ... and write to the file
    +            $this->writeLine($fileHandle, $cellsArray[0]);
    +        }
    +
    +        // Close file
    +        fclose($fileHandle);
    +
    +        Calculation::setArrayReturnType($saveArrayReturnType);
    +        Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog($saveDebugLog);
    +    }
    +
    +    /**
    +     * Get delimiter.
    +     *
    +     * @return string
    +     */
    +    public function getDelimiter()
    +    {
    +        return $this->delimiter;
    +    }
    +
    +    /**
    +     * Set delimiter.
    +     *
    +     * @param string $pValue Delimiter, defaults to ','
    +     *
    +     * @return CSV
    +     */
    +    public function setDelimiter($pValue)
    +    {
    +        $this->delimiter = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get enclosure.
    +     *
    +     * @return string
    +     */
    +    public function getEnclosure()
    +    {
    +        return $this->enclosure;
    +    }
    +
    +    /**
    +     * Set enclosure.
    +     *
    +     * @param string $pValue Enclosure, defaults to "
    +     *
    +     * @return CSV
    +     */
    +    public function setEnclosure($pValue)
    +    {
    +        if ($pValue == '') {
    +            $pValue = null;
    +        }
    +        $this->enclosure = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get line ending.
    +     *
    +     * @return string
    +     */
    +    public function getLineEnding()
    +    {
    +        return $this->lineEnding;
    +    }
    +
    +    /**
    +     * Set line ending.
    +     *
    +     * @param string $pValue Line ending, defaults to OS line ending (PHP_EOL)
    +     *
    +     * @return CSV
    +     */
    +    public function setLineEnding($pValue)
    +    {
    +        $this->lineEnding = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get whether BOM should be used.
    +     *
    +     * @return bool
    +     */
    +    public function getUseBOM()
    +    {
    +        return $this->useBOM;
    +    }
    +
    +    /**
    +     * Set whether BOM should be used.
    +     *
    +     * @param bool $pValue Use UTF-8 byte-order mark? Defaults to false
    +     *
    +     * @return CSV
    +     */
    +    public function setUseBOM($pValue)
    +    {
    +        $this->useBOM = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get whether a separator line should be included.
    +     *
    +     * @return bool
    +     */
    +    public function getIncludeSeparatorLine()
    +    {
    +        return $this->includeSeparatorLine;
    +    }
    +
    +    /**
    +     * Set whether a separator line should be included as the first line of the file.
    +     *
    +     * @param bool $pValue Use separator line? Defaults to false
    +     *
    +     * @return CSV
    +     */
    +    public function setIncludeSeparatorLine($pValue)
    +    {
    +        $this->includeSeparatorLine = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get whether the file should be saved with full Excel Compatibility.
    +     *
    +     * @return bool
    +     */
    +    public function getExcelCompatibility()
    +    {
    +        return $this->excelCompatibility;
    +    }
    +
    +    /**
    +     * Set whether the file should be saved with full Excel Compatibility.
    +     *
    +     * @param bool $pValue Set the file to be written as a fully Excel compatible csv file
    +     *                                Note that this overrides other settings such as useBOM, enclosure and delimiter
    +     *
    +     * @return CSV
    +     */
    +    public function setExcelCompatibility($pValue)
    +    {
    +        $this->excelCompatibility = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get sheet index.
    +     *
    +     * @return int
    +     */
    +    public function getSheetIndex()
    +    {
    +        return $this->sheetIndex;
    +    }
    +
    +    /**
    +     * Set sheet index.
    +     *
    +     * @param int $pValue Sheet index
    +     *
    +     * @return CSV
    +     */
    +    public function setSheetIndex($pValue)
    +    {
    +        $this->sheetIndex = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Write line to CSV file.
    +     *
    +     * @param resource $pFileHandle PHP filehandle
    +     * @param array $pValues Array containing values in a row
    +     */
    +    private function writeLine($pFileHandle, array $pValues)
    +    {
    +        // No leading delimiter
    +        $writeDelimiter = false;
    +
    +        // Build the line
    +        $line = '';
    +
    +        foreach ($pValues as $element) {
    +            // Escape enclosures
    +            $element = str_replace($this->enclosure, $this->enclosure . $this->enclosure, $element);
    +
    +            // Add delimiter
    +            if ($writeDelimiter) {
    +                $line .= $this->delimiter;
    +            } else {
    +                $writeDelimiter = true;
    +            }
    +
    +            // Add enclosed string
    +            $line .= $this->enclosure . $element . $this->enclosure;
    +        }
    +
    +        // Add line ending
    +        $line .= $this->lineEnding;
    +
    +        // Write to file
    +        fwrite($pFileHandle, $line);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Exception.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Exception.php
    new file mode 100644
    index 00000000000..92e6f5f4d4c
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Exception.php
    @@ -0,0 +1,9 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +
    +class Exception extends PhpSpreadsheetException
    +{
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Html.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Html.php
    new file mode 100644
    index 00000000000..8cd026d3190
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Html.php
    @@ -0,0 +1,1658 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Cell\Cell;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Chart\Chart;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\RichText\Run;
    +use PhpOffice\PhpSpreadsheet\Shared\Drawing as SharedDrawing;
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +use PhpOffice\PhpSpreadsheet\Shared\Font as SharedFont;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\Alignment;
    +use PhpOffice\PhpSpreadsheet\Style\Border;
    +use PhpOffice\PhpSpreadsheet\Style\Borders;
    +use PhpOffice\PhpSpreadsheet\Style\Fill;
    +use PhpOffice\PhpSpreadsheet\Style\Font;
    +use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
    +use PhpOffice\PhpSpreadsheet\Style\Style;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
    +use PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +class Html extends BaseWriter
    +{
    +    /**
    +     * Spreadsheet object.
    +     *
    +     * @var Spreadsheet
    +     */
    +    protected $spreadsheet;
    +
    +    /**
    +     * Sheet index to write.
    +     *
    +     * @var int
    +     */
    +    private $sheetIndex = 0;
    +
    +    /**
    +     * Images root.
    +     *
    +     * @var string
    +     */
    +    private $imagesRoot = '';
    +
    +    /**
    +     * embed images, or link to images.
    +     *
    +     * @var bool
    +     */
    +    private $embedImages = false;
    +
    +    /**
    +     * Use inline CSS?
    +     *
    +     * @var bool
    +     */
    +    private $useInlineCss = false;
    +
    +    /**
    +     * Array of CSS styles.
    +     *
    +     * @var array
    +     */
    +    private $cssStyles;
    +
    +    /**
    +     * Array of column widths in points.
    +     *
    +     * @var array
    +     */
    +    private $columnWidths;
    +
    +    /**
    +     * Default font.
    +     *
    +     * @var Font
    +     */
    +    private $defaultFont;
    +
    +    /**
    +     * Flag whether spans have been calculated.
    +     *
    +     * @var bool
    +     */
    +    private $spansAreCalculated = false;
    +
    +    /**
    +     * Excel cells that should not be written as HTML cells.
    +     *
    +     * @var array
    +     */
    +    private $isSpannedCell = [];
    +
    +    /**
    +     * Excel cells that are upper-left corner in a cell merge.
    +     *
    +     * @var array
    +     */
    +    private $isBaseCell = [];
    +
    +    /**
    +     * Excel rows that should not be written as HTML rows.
    +     *
    +     * @var array
    +     */
    +    private $isSpannedRow = [];
    +
    +    /**
    +     * Is the current writer creating PDF?
    +     *
    +     * @var bool
    +     */
    +    protected $isPdf = false;
    +
    +    /**
    +     * Generate the Navigation block.
    +     *
    +     * @var bool
    +     */
    +    private $generateSheetNavigationBlock = true;
    +
    +    /**
    +     * Create a new HTML.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     */
    +    public function __construct(Spreadsheet $spreadsheet)
    +    {
    +        $this->spreadsheet = $spreadsheet;
    +        $this->defaultFont = $this->spreadsheet->getDefaultStyle()->getFont();
    +    }
    +
    +    /**
    +     * Save Spreadsheet to file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws WriterException
    +     */
    +    public function save($pFilename)
    +    {
    +        // garbage collect
    +        $this->spreadsheet->garbageCollect();
    +
    +        $saveDebugLog = Calculation::getInstance($this->spreadsheet)->getDebugLog()->getWriteDebugLog();
    +        Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog(false);
    +        $saveArrayReturnType = Calculation::getArrayReturnType();
    +        Calculation::setArrayReturnType(Calculation::RETURN_ARRAY_AS_VALUE);
    +
    +        // Build CSS
    +        $this->buildCSS(!$this->useInlineCss);
    +
    +        // Open file
    +        $fileHandle = fopen($pFilename, 'wb+');
    +        if ($fileHandle === false) {
    +            throw new WriterException("Could not open file $pFilename for writing.");
    +        }
    +
    +        // Write headers
    +        fwrite($fileHandle, $this->generateHTMLHeader(!$this->useInlineCss));
    +
    +        // Write navigation (tabs)
    +        if ((!$this->isPdf) && ($this->generateSheetNavigationBlock)) {
    +            fwrite($fileHandle, $this->generateNavigation());
    +        }
    +
    +        // Write data
    +        fwrite($fileHandle, $this->generateSheetData());
    +
    +        // Write footer
    +        fwrite($fileHandle, $this->generateHTMLFooter());
    +
    +        // Close file
    +        fclose($fileHandle);
    +
    +        Calculation::setArrayReturnType($saveArrayReturnType);
    +        Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog($saveDebugLog);
    +    }
    +
    +    /**
    +     * Map VAlign.
    +     *
    +     * @param string $vAlign Vertical alignment
    +     *
    +     * @return string
    +     */
    +    private function mapVAlign($vAlign)
    +    {
    +        switch ($vAlign) {
    +            case Alignment::VERTICAL_BOTTOM:
    +                return 'bottom';
    +            case Alignment::VERTICAL_TOP:
    +                return 'top';
    +            case Alignment::VERTICAL_CENTER:
    +            case Alignment::VERTICAL_JUSTIFY:
    +                return 'middle';
    +            default:
    +                return 'baseline';
    +        }
    +    }
    +
    +    /**
    +     * Map HAlign.
    +     *
    +     * @param string $hAlign Horizontal alignment
    +     *
    +     * @return false|string
    +     */
    +    private function mapHAlign($hAlign)
    +    {
    +        switch ($hAlign) {
    +            case Alignment::HORIZONTAL_GENERAL:
    +                return false;
    +            case Alignment::HORIZONTAL_LEFT:
    +                return 'left';
    +            case Alignment::HORIZONTAL_RIGHT:
    +                return 'right';
    +            case Alignment::HORIZONTAL_CENTER:
    +            case Alignment::HORIZONTAL_CENTER_CONTINUOUS:
    +                return 'center';
    +            case Alignment::HORIZONTAL_JUSTIFY:
    +                return 'justify';
    +            default:
    +                return false;
    +        }
    +    }
    +
    +    /**
    +     * Map border style.
    +     *
    +     * @param int $borderStyle Sheet index
    +     *
    +     * @return string
    +     */
    +    private function mapBorderStyle($borderStyle)
    +    {
    +        switch ($borderStyle) {
    +            case Border::BORDER_NONE:
    +                return 'none';
    +            case Border::BORDER_DASHDOT:
    +                return '1px dashed';
    +            case Border::BORDER_DASHDOTDOT:
    +                return '1px dotted';
    +            case Border::BORDER_DASHED:
    +                return '1px dashed';
    +            case Border::BORDER_DOTTED:
    +                return '1px dotted';
    +            case Border::BORDER_DOUBLE:
    +                return '3px double';
    +            case Border::BORDER_HAIR:
    +                return '1px solid';
    +            case Border::BORDER_MEDIUM:
    +                return '2px solid';
    +            case Border::BORDER_MEDIUMDASHDOT:
    +                return '2px dashed';
    +            case Border::BORDER_MEDIUMDASHDOTDOT:
    +                return '2px dotted';
    +            case Border::BORDER_MEDIUMDASHED:
    +                return '2px dashed';
    +            case Border::BORDER_SLANTDASHDOT:
    +                return '2px dashed';
    +            case Border::BORDER_THICK:
    +                return '3px solid';
    +            case Border::BORDER_THIN:
    +                return '1px solid';
    +            default:
    +                // map others to thin
    +                return '1px solid';
    +        }
    +    }
    +
    +    /**
    +     * Get sheet index.
    +     *
    +     * @return int
    +     */
    +    public function getSheetIndex()
    +    {
    +        return $this->sheetIndex;
    +    }
    +
    +    /**
    +     * Set sheet index.
    +     *
    +     * @param int $pValue Sheet index
    +     *
    +     * @return HTML
    +     */
    +    public function setSheetIndex($pValue)
    +    {
    +        $this->sheetIndex = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get sheet index.
    +     *
    +     * @return bool
    +     */
    +    public function getGenerateSheetNavigationBlock()
    +    {
    +        return $this->generateSheetNavigationBlock;
    +    }
    +
    +    /**
    +     * Set sheet index.
    +     *
    +     * @param bool $pValue Flag indicating whether the sheet navigation block should be generated or not
    +     *
    +     * @return HTML
    +     */
    +    public function setGenerateSheetNavigationBlock($pValue)
    +    {
    +        $this->generateSheetNavigationBlock = (bool) $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Write all sheets (resets sheetIndex to NULL).
    +     */
    +    public function writeAllSheets()
    +    {
    +        $this->sheetIndex = null;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Generate HTML header.
    +     *
    +     * @param bool $pIncludeStyles Include styles?
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string
    +     */
    +    public function generateHTMLHeader($pIncludeStyles = false)
    +    {
    +        // Construct HTML
    +        $properties = $this->spreadsheet->getProperties();
    +        $html = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">' . PHP_EOL;
    +        $html .= '<html>' . PHP_EOL;
    +        $html .= '  <head>' . PHP_EOL;
    +        $html .= '      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">' . PHP_EOL;
    +        $html .= '      <meta name="generator" content="PhpSpreadsheet, https://github.com/PHPOffice/PhpSpreadsheet">' . PHP_EOL;
    +        if ($properties->getTitle() > '') {
    +            $html .= '      <title>' . htmlspecialchars($properties->getTitle()) . '</title>' . PHP_EOL;
    +        }
    +        if ($properties->getCreator() > '') {
    +            $html .= '      <meta name="author" content="' . htmlspecialchars($properties->getCreator()) . '" />' . PHP_EOL;
    +        }
    +        if ($properties->getTitle() > '') {
    +            $html .= '      <meta name="title" content="' . htmlspecialchars($properties->getTitle()) . '" />' . PHP_EOL;
    +        }
    +        if ($properties->getDescription() > '') {
    +            $html .= '      <meta name="description" content="' . htmlspecialchars($properties->getDescription()) . '" />' . PHP_EOL;
    +        }
    +        if ($properties->getSubject() > '') {
    +            $html .= '      <meta name="subject" content="' . htmlspecialchars($properties->getSubject()) . '" />' . PHP_EOL;
    +        }
    +        if ($properties->getKeywords() > '') {
    +            $html .= '      <meta name="keywords" content="' . htmlspecialchars($properties->getKeywords()) . '" />' . PHP_EOL;
    +        }
    +        if ($properties->getCategory() > '') {
    +            $html .= '      <meta name="category" content="' . htmlspecialchars($properties->getCategory()) . '" />' . PHP_EOL;
    +        }
    +        if ($properties->getCompany() > '') {
    +            $html .= '      <meta name="company" content="' . htmlspecialchars($properties->getCompany()) . '" />' . PHP_EOL;
    +        }
    +        if ($properties->getManager() > '') {
    +            $html .= '      <meta name="manager" content="' . htmlspecialchars($properties->getManager()) . '" />' . PHP_EOL;
    +        }
    +
    +        if ($pIncludeStyles) {
    +            $html .= $this->generateStyles(true);
    +        }
    +
    +        $html .= '  </head>' . PHP_EOL;
    +        $html .= '' . PHP_EOL;
    +        $html .= '  <body>' . PHP_EOL;
    +
    +        return $html;
    +    }
    +
    +    /**
    +     * Generate sheet data.
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string
    +     */
    +    public function generateSheetData()
    +    {
    +        // Ensure that Spans have been calculated?
    +        if ($this->sheetIndex !== null || !$this->spansAreCalculated) {
    +            $this->calculateSpans();
    +        }
    +
    +        // Fetch sheets
    +        $sheets = [];
    +        if ($this->sheetIndex === null) {
    +            $sheets = $this->spreadsheet->getAllSheets();
    +        } else {
    +            $sheets[] = $this->spreadsheet->getSheet($this->sheetIndex);
    +        }
    +
    +        // Construct HTML
    +        $html = '';
    +
    +        // Loop all sheets
    +        $sheetId = 0;
    +        foreach ($sheets as $sheet) {
    +            // Write table header
    +            $html .= $this->generateTableHeader($sheet);
    +
    +            // Get worksheet dimension
    +            $dimension = explode(':', $sheet->calculateWorksheetDimension());
    +            $dimension[0] = Coordinate::coordinateFromString($dimension[0]);
    +            $dimension[0][0] = Coordinate::columnIndexFromString($dimension[0][0]);
    +            $dimension[1] = Coordinate::coordinateFromString($dimension[1]);
    +            $dimension[1][0] = Coordinate::columnIndexFromString($dimension[1][0]);
    +
    +            // row min,max
    +            $rowMin = $dimension[0][1];
    +            $rowMax = $dimension[1][1];
    +
    +            // calculate start of <tbody>, <thead>
    +            $tbodyStart = $rowMin;
    +            $theadStart = $theadEnd = 0; // default: no <thead>    no </thead>
    +            if ($sheet->getPageSetup()->isRowsToRepeatAtTopSet()) {
    +                $rowsToRepeatAtTop = $sheet->getPageSetup()->getRowsToRepeatAtTop();
    +
    +                // we can only support repeating rows that start at top row
    +                if ($rowsToRepeatAtTop[0] == 1) {
    +                    $theadStart = $rowsToRepeatAtTop[0];
    +                    $theadEnd = $rowsToRepeatAtTop[1];
    +                    $tbodyStart = $rowsToRepeatAtTop[1] + 1;
    +                }
    +            }
    +
    +            // Loop through cells
    +            $row = $rowMin - 1;
    +            while ($row++ < $rowMax) {
    +                // <thead> ?
    +                if ($row == $theadStart) {
    +                    $html .= '        <thead>' . PHP_EOL;
    +                    $cellType = 'th';
    +                }
    +
    +                // <tbody> ?
    +                if ($row == $tbodyStart) {
    +                    $html .= '        <tbody>' . PHP_EOL;
    +                    $cellType = 'td';
    +                }
    +
    +                // Write row if there are HTML table cells in it
    +                if (!isset($this->isSpannedRow[$sheet->getParent()->getIndex($sheet)][$row])) {
    +                    // Start a new rowData
    +                    $rowData = [];
    +                    // Loop through columns
    +                    $column = $dimension[0][0];
    +                    while ($column <= $dimension[1][0]) {
    +                        // Cell exists?
    +                        if ($sheet->cellExistsByColumnAndRow($column, $row)) {
    +                            $rowData[$column] = Coordinate::stringFromColumnIndex($column) . $row;
    +                        } else {
    +                            $rowData[$column] = '';
    +                        }
    +                        ++$column;
    +                    }
    +                    $html .= $this->generateRow($sheet, $rowData, $row - 1, $cellType);
    +                }
    +
    +                // </thead> ?
    +                if ($row == $theadEnd) {
    +                    $html .= '        </thead>' . PHP_EOL;
    +                }
    +            }
    +            $html .= $this->extendRowsForChartsAndImages($sheet, $row);
    +
    +            // Close table body.
    +            $html .= '        </tbody>' . PHP_EOL;
    +
    +            // Write table footer
    +            $html .= $this->generateTableFooter();
    +
    +            // Writing PDF?
    +            if ($this->isPdf) {
    +                if ($this->sheetIndex === null && $sheetId + 1 < $this->spreadsheet->getSheetCount()) {
    +                    $html .= '<div style="page-break-before:always" />';
    +                }
    +            }
    +
    +            // Next sheet
    +            ++$sheetId;
    +        }
    +
    +        return $html;
    +    }
    +
    +    /**
    +     * Generate sheet tabs.
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string
    +     */
    +    public function generateNavigation()
    +    {
    +        // Fetch sheets
    +        $sheets = [];
    +        if ($this->sheetIndex === null) {
    +            $sheets = $this->spreadsheet->getAllSheets();
    +        } else {
    +            $sheets[] = $this->spreadsheet->getSheet($this->sheetIndex);
    +        }
    +
    +        // Construct HTML
    +        $html = '';
    +
    +        // Only if there are more than 1 sheets
    +        if (count($sheets) > 1) {
    +            // Loop all sheets
    +            $sheetId = 0;
    +
    +            $html .= '<ul class="navigation">' . PHP_EOL;
    +
    +            foreach ($sheets as $sheet) {
    +                $html .= '  <li class="sheet' . $sheetId . '"><a href="#sheet' . $sheetId . '">' . $sheet->getTitle() . '</a></li>' . PHP_EOL;
    +                ++$sheetId;
    +            }
    +
    +            $html .= '</ul>' . PHP_EOL;
    +        }
    +
    +        return $html;
    +    }
    +
    +    private function extendRowsForChartsAndImages(Worksheet $pSheet, $row)
    +    {
    +        $rowMax = $row;
    +        $colMax = 'A';
    +        if ($this->includeCharts) {
    +            foreach ($pSheet->getChartCollection() as $chart) {
    +                if ($chart instanceof Chart) {
    +                    $chartCoordinates = $chart->getTopLeftPosition();
    +                    $chartTL = Coordinate::coordinateFromString($chartCoordinates['cell']);
    +                    $chartCol = Coordinate::columnIndexFromString($chartTL[0]);
    +                    if ($chartTL[1] > $rowMax) {
    +                        $rowMax = $chartTL[1];
    +                        if ($chartCol > Coordinate::columnIndexFromString($colMax)) {
    +                            $colMax = $chartTL[0];
    +                        }
    +                    }
    +                }
    +            }
    +        }
    +
    +        foreach ($pSheet->getDrawingCollection() as $drawing) {
    +            if ($drawing instanceof Drawing) {
    +                $imageTL = Coordinate::coordinateFromString($drawing->getCoordinates());
    +                $imageCol = Coordinate::columnIndexFromString($imageTL[0]);
    +                if ($imageTL[1] > $rowMax) {
    +                    $rowMax = $imageTL[1];
    +                    if ($imageCol > Coordinate::columnIndexFromString($colMax)) {
    +                        $colMax = $imageTL[0];
    +                    }
    +                }
    +            }
    +        }
    +
    +        // Don't extend rows if not needed
    +        if ($row === $rowMax) {
    +            return '';
    +        }
    +
    +        $html = '';
    +        ++$colMax;
    +
    +        while ($row <= $rowMax) {
    +            $html .= '<tr>';
    +            for ($col = 'A'; $col != $colMax; ++$col) {
    +                $html .= '<td>';
    +                $html .= $this->writeImageInCell($pSheet, $col . $row);
    +                if ($this->includeCharts) {
    +                    $html .= $this->writeChartInCell($pSheet, $col . $row);
    +                }
    +                $html .= '</td>';
    +            }
    +            ++$row;
    +            $html .= '</tr>';
    +        }
    +
    +        return $html;
    +    }
    +
    +    /**
    +     * Generate image tag in cell.
    +     *
    +     * @param Worksheet $pSheet \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet
    +     * @param string $coordinates Cell coordinates
    +     *
    +     * @return string
    +     */
    +    private function writeImageInCell(Worksheet $pSheet, $coordinates)
    +    {
    +        // Construct HTML
    +        $html = '';
    +
    +        // Write images
    +        foreach ($pSheet->getDrawingCollection() as $drawing) {
    +            if ($drawing instanceof Drawing) {
    +                if ($drawing->getCoordinates() == $coordinates) {
    +                    $filename = $drawing->getPath();
    +
    +                    // Strip off eventual '.'
    +                    if (substr($filename, 0, 1) == '.') {
    +                        $filename = substr($filename, 1);
    +                    }
    +
    +                    // Prepend images root
    +                    $filename = $this->getImagesRoot() . $filename;
    +
    +                    // Strip off eventual '.'
    +                    if (substr($filename, 0, 1) == '.' && substr($filename, 0, 2) != './') {
    +                        $filename = substr($filename, 1);
    +                    }
    +
    +                    // Convert UTF8 data to PCDATA
    +                    $filename = htmlspecialchars($filename);
    +
    +                    $html .= PHP_EOL;
    +                    if ((!$this->embedImages) || ($this->isPdf)) {
    +                        $imageData = $filename;
    +                    } else {
    +                        $imageDetails = getimagesize($filename);
    +                        if ($fp = fopen($filename, 'rb', 0)) {
    +                            $picture = fread($fp, filesize($filename));
    +                            fclose($fp);
    +                            // base64 encode the binary data, then break it
    +                            // into chunks according to RFC 2045 semantics
    +                            $base64 = chunk_split(base64_encode($picture));
    +                            $imageData = 'data:' . $imageDetails['mime'] . ';base64,' . $base64;
    +                        } else {
    +                            $imageData = $filename;
    +                        }
    +                    }
    +
    +                    $html .= '<div style="position: relative;">';
    +                    $html .= '<img style="position: absolute; z-index: 1; left: ' .
    +                        $drawing->getOffsetX() . 'px; top: ' . $drawing->getOffsetY() . 'px; width: ' .
    +                        $drawing->getWidth() . 'px; height: ' . $drawing->getHeight() . 'px;" src="' .
    +                        $imageData . '" border="0" />';
    +                    $html .= '</div>';
    +                }
    +            } elseif ($drawing instanceof MemoryDrawing) {
    +                if ($drawing->getCoordinates() != $coordinates) {
    +                    continue;
    +                }
    +                ob_start(); //  Let's start output buffering.
    +                imagepng($drawing->getImageResource()); //  This will normally output the image, but because of ob_start(), it won't.
    +                $contents = ob_get_contents(); //  Instead, output above is saved to $contents
    +                ob_end_clean(); //  End the output buffer.
    +
    +                $dataUri = 'data:image/jpeg;base64,' . base64_encode($contents);
    +
    +                //  Because of the nature of tables, width is more important than height.
    +                //  max-width: 100% ensures that image doesnt overflow containing cell
    +                //  width: X sets width of supplied image.
    +                //  As a result, images bigger than cell will be contained and images smaller will not get stretched
    +                $html .= '<img src="' . $dataUri . '" style="max-width:100%;width:' . $drawing->getWidth() . 'px;" />';
    +            }
    +        }
    +
    +        return $html;
    +    }
    +
    +    /**
    +     * Generate chart tag in cell.
    +     *
    +     * @param Worksheet $pSheet \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet
    +     * @param string $coordinates Cell coordinates
    +     *
    +     * @return string
    +     */
    +    private function writeChartInCell(Worksheet $pSheet, $coordinates)
    +    {
    +        // Construct HTML
    +        $html = '';
    +
    +        // Write charts
    +        foreach ($pSheet->getChartCollection() as $chart) {
    +            if ($chart instanceof Chart) {
    +                $chartCoordinates = $chart->getTopLeftPosition();
    +                if ($chartCoordinates['cell'] == $coordinates) {
    +                    $chartFileName = File::sysGetTempDir() . '/' . uniqid('', true) . '.png';
    +                    if (!$chart->render($chartFileName)) {
    +                        return;
    +                    }
    +
    +                    $html .= PHP_EOL;
    +                    $imageDetails = getimagesize($chartFileName);
    +                    if ($fp = fopen($chartFileName, 'rb', 0)) {
    +                        $picture = fread($fp, filesize($chartFileName));
    +                        fclose($fp);
    +                        // base64 encode the binary data, then break it
    +                        // into chunks according to RFC 2045 semantics
    +                        $base64 = chunk_split(base64_encode($picture));
    +                        $imageData = 'data:' . $imageDetails['mime'] . ';base64,' . $base64;
    +
    +                        $html .= '<div style="position: relative;">';
    +                        $html .= '<img style="position: absolute; z-index: 1; left: ' . $chartCoordinates['xOffset'] . 'px; top: ' . $chartCoordinates['yOffset'] . 'px; width: ' . $imageDetails[0] . 'px; height: ' . $imageDetails[1] . 'px;" src="' . $imageData . '" border="0" />' . PHP_EOL;
    +                        $html .= '</div>';
    +
    +                        unlink($chartFileName);
    +                    }
    +                }
    +            }
    +        }
    +
    +        // Return
    +        return $html;
    +    }
    +
    +    /**
    +     * Generate CSS styles.
    +     *
    +     * @param bool $generateSurroundingHTML Generate surrounding HTML tags? (&lt;style&gt; and &lt;/style&gt;)
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string
    +     */
    +    public function generateStyles($generateSurroundingHTML = true)
    +    {
    +        // Build CSS
    +        $css = $this->buildCSS($generateSurroundingHTML);
    +
    +        // Construct HTML
    +        $html = '';
    +
    +        // Start styles
    +        if ($generateSurroundingHTML) {
    +            $html .= '    <style type="text/css">' . PHP_EOL;
    +            $html .= '      html { ' . $this->assembleCSS($css['html']) . ' }' . PHP_EOL;
    +        }
    +
    +        // Write all other styles
    +        foreach ($css as $styleName => $styleDefinition) {
    +            if ($styleName != 'html') {
    +                $html .= '      ' . $styleName . ' { ' . $this->assembleCSS($styleDefinition) . ' }' . PHP_EOL;
    +            }
    +        }
    +
    +        // End styles
    +        if ($generateSurroundingHTML) {
    +            $html .= '    </style>' . PHP_EOL;
    +        }
    +
    +        // Return
    +        return $html;
    +    }
    +
    +    /**
    +     * Build CSS styles.
    +     *
    +     * @param bool $generateSurroundingHTML Generate surrounding HTML style? (html { })
    +     *
    +     * @throws WriterException
    +     *
    +     * @return array
    +     */
    +    public function buildCSS($generateSurroundingHTML = true)
    +    {
    +        // Cached?
    +        if ($this->cssStyles !== null) {
    +            return $this->cssStyles;
    +        }
    +
    +        // Ensure that spans have been calculated
    +        if (!$this->spansAreCalculated) {
    +            $this->calculateSpans();
    +        }
    +
    +        // Construct CSS
    +        $css = [];
    +
    +        // Start styles
    +        if ($generateSurroundingHTML) {
    +            // html { }
    +            $css['html']['font-family'] = 'Calibri, Arial, Helvetica, sans-serif';
    +            $css['html']['font-size'] = '11pt';
    +            $css['html']['background-color'] = 'white';
    +        }
    +
    +        // CSS for comments as found in LibreOffice
    +        $css['a.comment-indicator:hover + div.comment'] = [
    +            'background' => '#ffd',
    +            'position' => 'absolute',
    +            'display' => 'block',
    +            'border' => '1px solid black',
    +            'padding' => '0.5em',
    +        ];
    +
    +        $css['a.comment-indicator'] = [
    +            'background' => 'red',
    +            'display' => 'inline-block',
    +            'border' => '1px solid black',
    +            'width' => '0.5em',
    +            'height' => '0.5em',
    +        ];
    +
    +        $css['div.comment']['display'] = 'none';
    +
    +        // table { }
    +        $css['table']['border-collapse'] = 'collapse';
    +        if (!$this->isPdf) {
    +            $css['table']['page-break-after'] = 'always';
    +        }
    +
    +        // .gridlines td { }
    +        $css['.gridlines td']['border'] = '1px dotted black';
    +        $css['.gridlines th']['border'] = '1px dotted black';
    +
    +        // .b {}
    +        $css['.b']['text-align'] = 'center'; // BOOL
    +
    +        // .e {}
    +        $css['.e']['text-align'] = 'center'; // ERROR
    +
    +        // .f {}
    +        $css['.f']['text-align'] = 'right'; // FORMULA
    +
    +        // .inlineStr {}
    +        $css['.inlineStr']['text-align'] = 'left'; // INLINE
    +
    +        // .n {}
    +        $css['.n']['text-align'] = 'right'; // NUMERIC
    +
    +        // .s {}
    +        $css['.s']['text-align'] = 'left'; // STRING
    +
    +        // Calculate cell style hashes
    +        foreach ($this->spreadsheet->getCellXfCollection() as $index => $style) {
    +            $css['td.style' . $index] = $this->createCSSStyle($style);
    +            $css['th.style' . $index] = $this->createCSSStyle($style);
    +        }
    +
    +        // Fetch sheets
    +        $sheets = [];
    +        if ($this->sheetIndex === null) {
    +            $sheets = $this->spreadsheet->getAllSheets();
    +        } else {
    +            $sheets[] = $this->spreadsheet->getSheet($this->sheetIndex);
    +        }
    +
    +        // Build styles per sheet
    +        foreach ($sheets as $sheet) {
    +            // Calculate hash code
    +            $sheetIndex = $sheet->getParent()->getIndex($sheet);
    +
    +            // Build styles
    +            // Calculate column widths
    +            $sheet->calculateColumnWidths();
    +
    +            // col elements, initialize
    +            $highestColumnIndex = Coordinate::columnIndexFromString($sheet->getHighestColumn()) - 1;
    +            $column = -1;
    +            while ($column++ < $highestColumnIndex) {
    +                $this->columnWidths[$sheetIndex][$column] = 42; // approximation
    +                $css['table.sheet' . $sheetIndex . ' col.col' . $column]['width'] = '42pt';
    +            }
    +
    +            // col elements, loop through columnDimensions and set width
    +            foreach ($sheet->getColumnDimensions() as $columnDimension) {
    +                if (($width = SharedDrawing::cellDimensionToPixels($columnDimension->getWidth(), $this->defaultFont)) >= 0) {
    +                    $width = SharedDrawing::pixelsToPoints($width);
    +                    $column = Coordinate::columnIndexFromString($columnDimension->getColumnIndex()) - 1;
    +                    $this->columnWidths[$sheetIndex][$column] = $width;
    +                    $css['table.sheet' . $sheetIndex . ' col.col' . $column]['width'] = $width . 'pt';
    +
    +                    if ($columnDimension->getVisible() === false) {
    +                        $css['table.sheet' . $sheetIndex . ' col.col' . $column]['visibility'] = 'collapse';
    +                        $css['table.sheet' . $sheetIndex . ' col.col' . $column]['*display'] = 'none'; // target IE6+7
    +                    }
    +                }
    +            }
    +
    +            // Default row height
    +            $rowDimension = $sheet->getDefaultRowDimension();
    +
    +            // table.sheetN tr { }
    +            $css['table.sheet' . $sheetIndex . ' tr'] = [];
    +
    +            if ($rowDimension->getRowHeight() == -1) {
    +                $pt_height = SharedFont::getDefaultRowHeightByFont($this->spreadsheet->getDefaultStyle()->getFont());
    +            } else {
    +                $pt_height = $rowDimension->getRowHeight();
    +            }
    +            $css['table.sheet' . $sheetIndex . ' tr']['height'] = $pt_height . 'pt';
    +            if ($rowDimension->getVisible() === false) {
    +                $css['table.sheet' . $sheetIndex . ' tr']['display'] = 'none';
    +                $css['table.sheet' . $sheetIndex . ' tr']['visibility'] = 'hidden';
    +            }
    +
    +            // Calculate row heights
    +            foreach ($sheet->getRowDimensions() as $rowDimension) {
    +                $row = $rowDimension->getRowIndex() - 1;
    +
    +                // table.sheetN tr.rowYYYYYY { }
    +                $css['table.sheet' . $sheetIndex . ' tr.row' . $row] = [];
    +
    +                if ($rowDimension->getRowHeight() == -1) {
    +                    $pt_height = SharedFont::getDefaultRowHeightByFont($this->spreadsheet->getDefaultStyle()->getFont());
    +                } else {
    +                    $pt_height = $rowDimension->getRowHeight();
    +                }
    +                $css['table.sheet' . $sheetIndex . ' tr.row' . $row]['height'] = $pt_height . 'pt';
    +                if ($rowDimension->getVisible() === false) {
    +                    $css['table.sheet' . $sheetIndex . ' tr.row' . $row]['display'] = 'none';
    +                    $css['table.sheet' . $sheetIndex . ' tr.row' . $row]['visibility'] = 'hidden';
    +                }
    +            }
    +        }
    +
    +        // Cache
    +        if ($this->cssStyles === null) {
    +            $this->cssStyles = $css;
    +        }
    +
    +        // Return
    +        return $css;
    +    }
    +
    +    /**
    +     * Create CSS style.
    +     *
    +     * @param Style $pStyle
    +     *
    +     * @return array
    +     */
    +    private function createCSSStyle(Style $pStyle)
    +    {
    +        // Create CSS
    +        $css = array_merge(
    +            $this->createCSSStyleAlignment($pStyle->getAlignment()),
    +            $this->createCSSStyleBorders($pStyle->getBorders()),
    +            $this->createCSSStyleFont($pStyle->getFont()),
    +            $this->createCSSStyleFill($pStyle->getFill())
    +        );
    +
    +        // Return
    +        return $css;
    +    }
    +
    +    /**
    +     * Create CSS style (\PhpOffice\PhpSpreadsheet\Style\Alignment).
    +     *
    +     * @param Alignment $pStyle \PhpOffice\PhpSpreadsheet\Style\Alignment
    +     *
    +     * @return array
    +     */
    +    private function createCSSStyleAlignment(Alignment $pStyle)
    +    {
    +        // Construct CSS
    +        $css = [];
    +
    +        // Create CSS
    +        $css['vertical-align'] = $this->mapVAlign($pStyle->getVertical());
    +        if ($textAlign = $this->mapHAlign($pStyle->getHorizontal())) {
    +            $css['text-align'] = $textAlign;
    +            if (in_array($textAlign, ['left', 'right'])) {
    +                $css['padding-' . $textAlign] = (string) ((int) $pStyle->getIndent() * 9) . 'px';
    +            }
    +        }
    +
    +        return $css;
    +    }
    +
    +    /**
    +     * Create CSS style (\PhpOffice\PhpSpreadsheet\Style\Font).
    +     *
    +     * @param Font $pStyle
    +     *
    +     * @return array
    +     */
    +    private function createCSSStyleFont(Font $pStyle)
    +    {
    +        // Construct CSS
    +        $css = [];
    +
    +        // Create CSS
    +        if ($pStyle->getBold()) {
    +            $css['font-weight'] = 'bold';
    +        }
    +        if ($pStyle->getUnderline() != Font::UNDERLINE_NONE && $pStyle->getStrikethrough()) {
    +            $css['text-decoration'] = 'underline line-through';
    +        } elseif ($pStyle->getUnderline() != Font::UNDERLINE_NONE) {
    +            $css['text-decoration'] = 'underline';
    +        } elseif ($pStyle->getStrikethrough()) {
    +            $css['text-decoration'] = 'line-through';
    +        }
    +        if ($pStyle->getItalic()) {
    +            $css['font-style'] = 'italic';
    +        }
    +
    +        $css['color'] = '#' . $pStyle->getColor()->getRGB();
    +        $css['font-family'] = '\'' . $pStyle->getName() . '\'';
    +        $css['font-size'] = $pStyle->getSize() . 'pt';
    +
    +        return $css;
    +    }
    +
    +    /**
    +     * Create CSS style (Borders).
    +     *
    +     * @param Borders $pStyle Borders
    +     *
    +     * @return array
    +     */
    +    private function createCSSStyleBorders(Borders $pStyle)
    +    {
    +        // Construct CSS
    +        $css = [];
    +
    +        // Create CSS
    +        $css['border-bottom'] = $this->createCSSStyleBorder($pStyle->getBottom());
    +        $css['border-top'] = $this->createCSSStyleBorder($pStyle->getTop());
    +        $css['border-left'] = $this->createCSSStyleBorder($pStyle->getLeft());
    +        $css['border-right'] = $this->createCSSStyleBorder($pStyle->getRight());
    +
    +        return $css;
    +    }
    +
    +    /**
    +     * Create CSS style (Border).
    +     *
    +     * @param Border $pStyle Border
    +     *
    +     * @return string
    +     */
    +    private function createCSSStyleBorder(Border $pStyle)
    +    {
    +        //    Create CSS - add !important to non-none border styles for merged cells
    +        $borderStyle = $this->mapBorderStyle($pStyle->getBorderStyle());
    +        $css = $borderStyle . ' #' . $pStyle->getColor()->getRGB() . (($borderStyle == 'none') ? '' : ' !important');
    +
    +        return $css;
    +    }
    +
    +    /**
    +     * Create CSS style (Fill).
    +     *
    +     * @param Fill $pStyle Fill
    +     *
    +     * @return array
    +     */
    +    private function createCSSStyleFill(Fill $pStyle)
    +    {
    +        // Construct HTML
    +        $css = [];
    +
    +        // Create CSS
    +        $value = $pStyle->getFillType() == Fill::FILL_NONE ?
    +            'white' : '#' . $pStyle->getStartColor()->getRGB();
    +        $css['background-color'] = $value;
    +
    +        return $css;
    +    }
    +
    +    /**
    +     * Generate HTML footer.
    +     */
    +    public function generateHTMLFooter()
    +    {
    +        // Construct HTML
    +        $html = '';
    +        $html .= '  </body>' . PHP_EOL;
    +        $html .= '</html>' . PHP_EOL;
    +
    +        return $html;
    +    }
    +
    +    /**
    +     * Generate table header.
    +     *
    +     * @param Worksheet $pSheet The worksheet for the table we are writing
    +     *
    +     * @return string
    +     */
    +    private function generateTableHeader($pSheet)
    +    {
    +        $sheetIndex = $pSheet->getParent()->getIndex($pSheet);
    +
    +        // Construct HTML
    +        $html = '';
    +        $html .= $this->setMargins($pSheet);
    +
    +        if (!$this->useInlineCss) {
    +            $gridlines = $pSheet->getShowGridlines() ? ' gridlines' : '';
    +            $html .= '    <table border="0" cellpadding="0" cellspacing="0" id="sheet' . $sheetIndex . '" class="sheet' . $sheetIndex . $gridlines . '">' . PHP_EOL;
    +        } else {
    +            $style = isset($this->cssStyles['table']) ?
    +                $this->assembleCSS($this->cssStyles['table']) : '';
    +
    +            if ($this->isPdf && $pSheet->getShowGridlines()) {
    +                $html .= '    <table border="1" cellpadding="1" id="sheet' . $sheetIndex . '" cellspacing="1" style="' . $style . '">' . PHP_EOL;
    +            } else {
    +                $html .= '    <table border="0" cellpadding="1" id="sheet' . $sheetIndex . '" cellspacing="0" style="' . $style . '">' . PHP_EOL;
    +            }
    +        }
    +
    +        // Write <col> elements
    +        $highestColumnIndex = Coordinate::columnIndexFromString($pSheet->getHighestColumn()) - 1;
    +        $i = -1;
    +        while ($i++ < $highestColumnIndex) {
    +            if (!$this->isPdf) {
    +                if (!$this->useInlineCss) {
    +                    $html .= '        <col class="col' . $i . '">' . PHP_EOL;
    +                } else {
    +                    $style = isset($this->cssStyles['table.sheet' . $sheetIndex . ' col.col' . $i]) ?
    +                        $this->assembleCSS($this->cssStyles['table.sheet' . $sheetIndex . ' col.col' . $i]) : '';
    +                    $html .= '        <col style="' . $style . '">' . PHP_EOL;
    +                }
    +            }
    +        }
    +
    +        return $html;
    +    }
    +
    +    /**
    +     * Generate table footer.
    +     */
    +    private function generateTableFooter()
    +    {
    +        $html = '    </table>' . PHP_EOL;
    +
    +        return $html;
    +    }
    +
    +    /**
    +     * Generate row.
    +     *
    +     * @param Worksheet $pSheet \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet
    +     * @param array $pValues Array containing cells in a row
    +     * @param int $pRow Row number (0-based)
    +     * @param string $cellType eg: 'td'
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string
    +     */
    +    private function generateRow(Worksheet $pSheet, array $pValues, $pRow, $cellType)
    +    {
    +        // Construct HTML
    +        $html = '';
    +
    +        // Sheet index
    +        $sheetIndex = $pSheet->getParent()->getIndex($pSheet);
    +
    +        // Dompdf and breaks
    +        if ($this->isPdf && count($pSheet->getBreaks()) > 0) {
    +            $breaks = $pSheet->getBreaks();
    +
    +            // check if a break is needed before this row
    +            if (isset($breaks['A' . $pRow])) {
    +                // close table: </table>
    +                $html .= $this->generateTableFooter();
    +
    +                // insert page break
    +                $html .= '<div style="page-break-before:always" />';
    +
    +                // open table again: <table> + <col> etc.
    +                $html .= $this->generateTableHeader($pSheet);
    +            }
    +        }
    +
    +        // Write row start
    +        if (!$this->useInlineCss) {
    +            $html .= '          <tr class="row' . $pRow . '">' . PHP_EOL;
    +        } else {
    +            $style = isset($this->cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow])
    +                ? $this->assembleCSS($this->cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow]) : '';
    +
    +            $html .= '          <tr style="' . $style . '">' . PHP_EOL;
    +        }
    +
    +        // Write cells
    +        $colNum = 0;
    +        foreach ($pValues as $cellAddress) {
    +            $cell = ($cellAddress > '') ? $pSheet->getCell($cellAddress) : '';
    +            $coordinate = Coordinate::stringFromColumnIndex($colNum + 1) . ($pRow + 1);
    +            if (!$this->useInlineCss) {
    +                $cssClass = 'column' . $colNum;
    +            } else {
    +                $cssClass = [];
    +                if ($cellType == 'th') {
    +                    if (isset($this->cssStyles['table.sheet' . $sheetIndex . ' th.column' . $colNum])) {
    +                        $this->cssStyles['table.sheet' . $sheetIndex . ' th.column' . $colNum];
    +                    }
    +                } else {
    +                    if (isset($this->cssStyles['table.sheet' . $sheetIndex . ' td.column' . $colNum])) {
    +                        $this->cssStyles['table.sheet' . $sheetIndex . ' td.column' . $colNum];
    +                    }
    +                }
    +            }
    +            $colSpan = 1;
    +            $rowSpan = 1;
    +
    +            // initialize
    +            $cellData = '&nbsp;';
    +
    +            // Cell
    +            if ($cell instanceof Cell) {
    +                $cellData = '';
    +                if ($cell->getParent() === null) {
    +                    $cell->attach($pSheet);
    +                }
    +                // Value
    +                if ($cell->getValue() instanceof RichText) {
    +                    // Loop through rich text elements
    +                    $elements = $cell->getValue()->getRichTextElements();
    +                    foreach ($elements as $element) {
    +                        // Rich text start?
    +                        if ($element instanceof Run) {
    +                            $cellData .= '<span style="' . $this->assembleCSS($this->createCSSStyleFont($element->getFont())) . '">';
    +
    +                            if ($element->getFont()->getSuperscript()) {
    +                                $cellData .= '<sup>';
    +                            } elseif ($element->getFont()->getSubscript()) {
    +                                $cellData .= '<sub>';
    +                            }
    +                        }
    +
    +                        // Convert UTF8 data to PCDATA
    +                        $cellText = $element->getText();
    +                        $cellData .= htmlspecialchars($cellText);
    +
    +                        if ($element instanceof Run) {
    +                            if ($element->getFont()->getSuperscript()) {
    +                                $cellData .= '</sup>';
    +                            } elseif ($element->getFont()->getSubscript()) {
    +                                $cellData .= '</sub>';
    +                            }
    +
    +                            $cellData .= '</span>';
    +                        }
    +                    }
    +                } else {
    +                    if ($this->preCalculateFormulas) {
    +                        $cellData = NumberFormat::toFormattedString(
    +                            $cell->getCalculatedValue(),
    +                            $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode(),
    +                            [$this, 'formatColor']
    +                        );
    +                    } else {
    +                        $cellData = NumberFormat::toFormattedString(
    +                            $cell->getValue(),
    +                            $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode(),
    +                            [$this, 'formatColor']
    +                        );
    +                    }
    +                    $cellData = htmlspecialchars($cellData);
    +                    if ($pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getFont()->getSuperscript()) {
    +                        $cellData = '<sup>' . $cellData . '</sup>';
    +                    } elseif ($pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getFont()->getSubscript()) {
    +                        $cellData = '<sub>' . $cellData . '</sub>';
    +                    }
    +                }
    +
    +                // Converts the cell content so that spaces occuring at beginning of each new line are replaced by &nbsp;
    +                // Example: "  Hello\n to the world" is converted to "&nbsp;&nbsp;Hello\n&nbsp;to the world"
    +                $cellData = preg_replace('/(?m)(?:^|\\G) /', '&nbsp;', $cellData);
    +
    +                // convert newline "\n" to '<br>'
    +                $cellData = nl2br($cellData);
    +
    +                // Extend CSS class?
    +                if (!$this->useInlineCss) {
    +                    $cssClass .= ' style' . $cell->getXfIndex();
    +                    $cssClass .= ' ' . $cell->getDataType();
    +                } else {
    +                    if ($cellType == 'th') {
    +                        if (isset($this->cssStyles['th.style' . $cell->getXfIndex()])) {
    +                            $cssClass = array_merge($cssClass, $this->cssStyles['th.style' . $cell->getXfIndex()]);
    +                        }
    +                    } else {
    +                        if (isset($this->cssStyles['td.style' . $cell->getXfIndex()])) {
    +                            $cssClass = array_merge($cssClass, $this->cssStyles['td.style' . $cell->getXfIndex()]);
    +                        }
    +                    }
    +
    +                    // General horizontal alignment: Actual horizontal alignment depends on dataType
    +                    $sharedStyle = $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex());
    +                    if ($sharedStyle->getAlignment()->getHorizontal() == Alignment::HORIZONTAL_GENERAL
    +                        && isset($this->cssStyles['.' . $cell->getDataType()]['text-align'])
    +                    ) {
    +                        $cssClass['text-align'] = $this->cssStyles['.' . $cell->getDataType()]['text-align'];
    +                    }
    +                }
    +            }
    +
    +            // Hyperlink?
    +            if ($pSheet->hyperlinkExists($coordinate) && !$pSheet->getHyperlink($coordinate)->isInternal()) {
    +                $cellData = '<a href="' . htmlspecialchars($pSheet->getHyperlink($coordinate)->getUrl()) . '" title="' . htmlspecialchars($pSheet->getHyperlink($coordinate)->getTooltip()) . '">' . $cellData . '</a>';
    +            }
    +
    +            // Should the cell be written or is it swallowed by a rowspan or colspan?
    +            $writeCell = !(isset($this->isSpannedCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum])
    +                && $this->isSpannedCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum]);
    +
    +            // Colspan and Rowspan
    +            $colspan = 1;
    +            $rowspan = 1;
    +            if (isset($this->isBaseCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum])) {
    +                $spans = $this->isBaseCell[$pSheet->getParent()->getIndex($pSheet)][$pRow + 1][$colNum];
    +                $rowSpan = $spans['rowspan'];
    +                $colSpan = $spans['colspan'];
    +
    +                //    Also apply style from last cell in merge to fix borders -
    +                //        relies on !important for non-none border declarations in createCSSStyleBorder
    +                $endCellCoord = Coordinate::stringFromColumnIndex($colNum + $colSpan) . ($pRow + $rowSpan);
    +                if (!$this->useInlineCss) {
    +                    $cssClass .= ' style' . $pSheet->getCell($endCellCoord)->getXfIndex();
    +                }
    +            }
    +
    +            // Write
    +            if ($writeCell) {
    +                // Column start
    +                $html .= '            <' . $cellType;
    +                if (!$this->useInlineCss) {
    +                    $html .= ' class="' . $cssClass . '"';
    +                } else {
    +                    //** Necessary redundant code for the sake of \PhpOffice\PhpSpreadsheet\Writer\Pdf **
    +                    // We must explicitly write the width of the <td> element because TCPDF
    +                    // does not recognize e.g. <col style="width:42pt">
    +                    $width = 0;
    +                    $i = $colNum - 1;
    +                    $e = $colNum + $colSpan - 1;
    +                    while ($i++ < $e) {
    +                        if (isset($this->columnWidths[$sheetIndex][$i])) {
    +                            $width += $this->columnWidths[$sheetIndex][$i];
    +                        }
    +                    }
    +                    $cssClass['width'] = $width . 'pt';
    +
    +                    // We must also explicitly write the height of the <td> element because TCPDF
    +                    // does not recognize e.g. <tr style="height:50pt">
    +                    if (isset($this->cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow]['height'])) {
    +                        $height = $this->cssStyles['table.sheet' . $sheetIndex . ' tr.row' . $pRow]['height'];
    +                        $cssClass['height'] = $height;
    +                    }
    +                    //** end of redundant code **
    +
    +                    $html .= ' style="' . $this->assembleCSS($cssClass) . '"';
    +                }
    +                if ($colSpan > 1) {
    +                    $html .= ' colspan="' . $colSpan . '"';
    +                }
    +                if ($rowSpan > 1) {
    +                    $html .= ' rowspan="' . $rowSpan . '"';
    +                }
    +                $html .= '>';
    +
    +                $html .= $this->writeComment($pSheet, $coordinate);
    +
    +                // Image?
    +                $html .= $this->writeImageInCell($pSheet, $coordinate);
    +
    +                // Chart?
    +                if ($this->includeCharts) {
    +                    $html .= $this->writeChartInCell($pSheet, $coordinate);
    +                }
    +
    +                // Cell data
    +                $html .= $cellData;
    +
    +                // Column end
    +                $html .= '</' . $cellType . '>' . PHP_EOL;
    +            }
    +
    +            // Next column
    +            ++$colNum;
    +        }
    +
    +        // Write row end
    +        $html .= '          </tr>' . PHP_EOL;
    +
    +        // Return
    +        return $html;
    +    }
    +
    +    /**
    +     * Takes array where of CSS properties / values and converts to CSS string.
    +     *
    +     * @param array $pValue
    +     *
    +     * @return string
    +     */
    +    private function assembleCSS(array $pValue = [])
    +    {
    +        $pairs = [];
    +        foreach ($pValue as $property => $value) {
    +            $pairs[] = $property . ':' . $value;
    +        }
    +        $string = implode('; ', $pairs);
    +
    +        return $string;
    +    }
    +
    +    /**
    +     * Get images root.
    +     *
    +     * @return string
    +     */
    +    public function getImagesRoot()
    +    {
    +        return $this->imagesRoot;
    +    }
    +
    +    /**
    +     * Set images root.
    +     *
    +     * @param string $pValue
    +     *
    +     * @return HTML
    +     */
    +    public function setImagesRoot($pValue)
    +    {
    +        $this->imagesRoot = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get embed images.
    +     *
    +     * @return bool
    +     */
    +    public function getEmbedImages()
    +    {
    +        return $this->embedImages;
    +    }
    +
    +    /**
    +     * Set embed images.
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return HTML
    +     */
    +    public function setEmbedImages($pValue)
    +    {
    +        $this->embedImages = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get use inline CSS?
    +     *
    +     * @return bool
    +     */
    +    public function getUseInlineCss()
    +    {
    +        return $this->useInlineCss;
    +    }
    +
    +    /**
    +     * Set use inline CSS?
    +     *
    +     * @param bool $pValue
    +     *
    +     * @return HTML
    +     */
    +    public function setUseInlineCss($pValue)
    +    {
    +        $this->useInlineCss = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Add color to formatted string as inline style.
    +     *
    +     * @param string $pValue Plain formatted value without color
    +     * @param string $pFormat Format code
    +     *
    +     * @return string
    +     */
    +    public function formatColor($pValue, $pFormat)
    +    {
    +        // Color information, e.g. [Red] is always at the beginning
    +        $color = null; // initialize
    +        $matches = [];
    +
    +        $color_regex = '/^\\[[a-zA-Z]+\\]/';
    +        if (preg_match($color_regex, $pFormat, $matches)) {
    +            $color = str_replace(['[', ']'], '', $matches[0]);
    +            $color = strtolower($color);
    +        }
    +
    +        // convert to PCDATA
    +        $value = htmlspecialchars($pValue);
    +
    +        // color span tag
    +        if ($color !== null) {
    +            $value = '<span style="color:' . $color . '">' . $value . '</span>';
    +        }
    +
    +        return $value;
    +    }
    +
    +    /**
    +     * Calculate information about HTML colspan and rowspan which is not always the same as Excel's.
    +     */
    +    private function calculateSpans()
    +    {
    +        // Identify all cells that should be omitted in HTML due to cell merge.
    +        // In HTML only the upper-left cell should be written and it should have
    +        //   appropriate rowspan / colspan attribute
    +        $sheetIndexes = $this->sheetIndex !== null ?
    +            [$this->sheetIndex] : range(0, $this->spreadsheet->getSheetCount() - 1);
    +
    +        foreach ($sheetIndexes as $sheetIndex) {
    +            $sheet = $this->spreadsheet->getSheet($sheetIndex);
    +
    +            $candidateSpannedRow = [];
    +
    +            // loop through all Excel merged cells
    +            foreach ($sheet->getMergeCells() as $cells) {
    +                list($cells) = Coordinate::splitRange($cells);
    +                $first = $cells[0];
    +                $last = $cells[1];
    +
    +                list($fc, $fr) = Coordinate::coordinateFromString($first);
    +                $fc = Coordinate::columnIndexFromString($fc) - 1;
    +
    +                list($lc, $lr) = Coordinate::coordinateFromString($last);
    +                $lc = Coordinate::columnIndexFromString($lc) - 1;
    +
    +                // loop through the individual cells in the individual merge
    +                $r = $fr - 1;
    +                while ($r++ < $lr) {
    +                    // also, flag this row as a HTML row that is candidate to be omitted
    +                    $candidateSpannedRow[$r] = $r;
    +
    +                    $c = $fc - 1;
    +                    while ($c++ < $lc) {
    +                        if (!($c == $fc && $r == $fr)) {
    +                            // not the upper-left cell (should not be written in HTML)
    +                            $this->isSpannedCell[$sheetIndex][$r][$c] = [
    +                                'baseCell' => [$fr, $fc],
    +                            ];
    +                        } else {
    +                            // upper-left is the base cell that should hold the colspan/rowspan attribute
    +                            $this->isBaseCell[$sheetIndex][$r][$c] = [
    +                                'xlrowspan' => $lr - $fr + 1, // Excel rowspan
    +                                'rowspan' => $lr - $fr + 1, // HTML rowspan, value may change
    +                                'xlcolspan' => $lc - $fc + 1, // Excel colspan
    +                                'colspan' => $lc - $fc + 1, // HTML colspan, value may change
    +                            ];
    +                        }
    +                    }
    +                }
    +            }
    +
    +            // Identify which rows should be omitted in HTML. These are the rows where all the cells
    +            //   participate in a merge and the where base cells are somewhere above.
    +            $countColumns = Coordinate::columnIndexFromString($sheet->getHighestColumn());
    +            foreach ($candidateSpannedRow as $rowIndex) {
    +                if (isset($this->isSpannedCell[$sheetIndex][$rowIndex])) {
    +                    if (count($this->isSpannedCell[$sheetIndex][$rowIndex]) == $countColumns) {
    +                        $this->isSpannedRow[$sheetIndex][$rowIndex] = $rowIndex;
    +                    }
    +                }
    +            }
    +
    +            // For each of the omitted rows we found above, the affected rowspans should be subtracted by 1
    +            if (isset($this->isSpannedRow[$sheetIndex])) {
    +                foreach ($this->isSpannedRow[$sheetIndex] as $rowIndex) {
    +                    $adjustedBaseCells = [];
    +                    $c = -1;
    +                    $e = $countColumns - 1;
    +                    while ($c++ < $e) {
    +                        $baseCell = $this->isSpannedCell[$sheetIndex][$rowIndex][$c]['baseCell'];
    +
    +                        if (!in_array($baseCell, $adjustedBaseCells)) {
    +                            // subtract rowspan by 1
    +                            --$this->isBaseCell[$sheetIndex][$baseCell[0]][$baseCell[1]]['rowspan'];
    +                            $adjustedBaseCells[] = $baseCell;
    +                        }
    +                    }
    +                }
    +            }
    +
    +            // TODO: Same for columns
    +        }
    +
    +        // We have calculated the spans
    +        $this->spansAreCalculated = true;
    +    }
    +
    +    private function setMargins(Worksheet $pSheet)
    +    {
    +        $htmlPage = '@page { ';
    +        $htmlBody = 'body { ';
    +
    +        $left = StringHelper::formatNumber($pSheet->getPageMargins()->getLeft()) . 'in; ';
    +        $htmlPage .= 'margin-left: ' . $left;
    +        $htmlBody .= 'margin-left: ' . $left;
    +        $right = StringHelper::formatNumber($pSheet->getPageMargins()->getRight()) . 'in; ';
    +        $htmlPage .= 'margin-right: ' . $right;
    +        $htmlBody .= 'margin-right: ' . $right;
    +        $top = StringHelper::formatNumber($pSheet->getPageMargins()->getTop()) . 'in; ';
    +        $htmlPage .= 'margin-top: ' . $top;
    +        $htmlBody .= 'margin-top: ' . $top;
    +        $bottom = StringHelper::formatNumber($pSheet->getPageMargins()->getBottom()) . 'in; ';
    +        $htmlPage .= 'margin-bottom: ' . $bottom;
    +        $htmlBody .= 'margin-bottom: ' . $bottom;
    +
    +        $htmlPage .= "}\n";
    +        $htmlBody .= "}\n";
    +
    +        return "<style>\n" . $htmlPage . $htmlBody . "</style>\n";
    +    }
    +
    +    /**
    +     * Write a comment in the same format as LibreOffice.
    +     *
    +     * @see https://github.com/LibreOffice/core/blob/9fc9bf3240f8c62ad7859947ab8a033ac1fe93fa/sc/source/filter/html/htmlexp.cxx#L1073-L1092
    +     *
    +     * @param Worksheet $pSheet
    +     * @param string $coordinate
    +     *
    +     * @return string
    +     */
    +    private function writeComment(Worksheet $pSheet, $coordinate)
    +    {
    +        $result = '';
    +        if (!$this->isPdf && isset($pSheet->getComments()[$coordinate])) {
    +            $result .= '<a class="comment-indicator"></a>';
    +            $result .= '<div class="comment">' . nl2br($pSheet->getComment($coordinate)->getText()->getPlainText()) . '</div>';
    +            $result .= PHP_EOL;
    +        }
    +
    +        return $result;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/IWriter.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/IWriter.php
    new file mode 100644
    index 00000000000..9ce45a1946a
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/IWriter.php
    @@ -0,0 +1,24 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer;
    +
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +interface IWriter
    +{
    +    /**
    +     * IWriter constructor.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     */
    +    public function __construct(Spreadsheet $spreadsheet);
    +
    +    /**
    +     * Save PhpSpreadsheet to file.
    +     *
    +     * @param string $pFilename Name of the file to save
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     */
    +    public function save($pFilename);
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods.php
    new file mode 100644
    index 00000000000..83fc2931db5
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods.php
    @@ -0,0 +1,178 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +use PhpOffice\PhpSpreadsheet\Writer\Ods\Content;
    +use PhpOffice\PhpSpreadsheet\Writer\Ods\Meta;
    +use PhpOffice\PhpSpreadsheet\Writer\Ods\MetaInf;
    +use PhpOffice\PhpSpreadsheet\Writer\Ods\Mimetype;
    +use PhpOffice\PhpSpreadsheet\Writer\Ods\Settings;
    +use PhpOffice\PhpSpreadsheet\Writer\Ods\Styles;
    +use PhpOffice\PhpSpreadsheet\Writer\Ods\Thumbnails;
    +use ZipArchive;
    +
    +class Ods extends BaseWriter
    +{
    +    /**
    +     * Private writer parts.
    +     *
    +     * @var Ods\WriterPart[]
    +     */
    +    private $writerParts = [];
    +
    +    /**
    +     * Private PhpSpreadsheet.
    +     *
    +     * @var Spreadsheet
    +     */
    +    private $spreadSheet;
    +
    +    /**
    +     * Create a new Ods.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     */
    +    public function __construct(Spreadsheet $spreadsheet)
    +    {
    +        $this->setSpreadsheet($spreadsheet);
    +
    +        $writerPartsArray = [
    +            'content' => Content::class,
    +            'meta' => Meta::class,
    +            'meta_inf' => MetaInf::class,
    +            'mimetype' => Mimetype::class,
    +            'settings' => Settings::class,
    +            'styles' => Styles::class,
    +            'thumbnails' => Thumbnails::class,
    +        ];
    +
    +        foreach ($writerPartsArray as $writer => $class) {
    +            $this->writerParts[$writer] = new $class($this);
    +        }
    +    }
    +
    +    /**
    +     * Get writer part.
    +     *
    +     * @param string $pPartName Writer part name
    +     *
    +     * @return null|Ods\WriterPart
    +     */
    +    public function getWriterPart($pPartName)
    +    {
    +        if ($pPartName != '' && isset($this->writerParts[strtolower($pPartName)])) {
    +            return $this->writerParts[strtolower($pPartName)];
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Save PhpSpreadsheet to file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws WriterException
    +     */
    +    public function save($pFilename)
    +    {
    +        if (!$this->spreadSheet) {
    +            throw new WriterException('PhpSpreadsheet object unassigned.');
    +        }
    +
    +        // garbage collect
    +        $this->spreadSheet->garbageCollect();
    +
    +        // If $pFilename is php://output or php://stdout, make it a temporary file...
    +        $originalFilename = $pFilename;
    +        if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') {
    +            $pFilename = @tempnam(File::sysGetTempDir(), 'phpxltmp');
    +            if ($pFilename == '') {
    +                $pFilename = $originalFilename;
    +            }
    +        }
    +
    +        $zip = $this->createZip($pFilename);
    +
    +        $zip->addFromString('META-INF/manifest.xml', $this->getWriterPart('meta_inf')->writeManifest());
    +        $zip->addFromString('Thumbnails/thumbnail.png', $this->getWriterPart('thumbnails')->writeThumbnail());
    +        $zip->addFromString('content.xml', $this->getWriterPart('content')->write());
    +        $zip->addFromString('meta.xml', $this->getWriterPart('meta')->write());
    +        $zip->addFromString('mimetype', $this->getWriterPart('mimetype')->write());
    +        $zip->addFromString('settings.xml', $this->getWriterPart('settings')->write());
    +        $zip->addFromString('styles.xml', $this->getWriterPart('styles')->write());
    +
    +        // Close file
    +        if ($zip->close() === false) {
    +            throw new WriterException("Could not close zip file $pFilename.");
    +        }
    +
    +        // If a temporary file was used, copy it to the correct file stream
    +        if ($originalFilename != $pFilename) {
    +            if (copy($pFilename, $originalFilename) === false) {
    +                throw new WriterException("Could not copy temporary zip file $pFilename to $originalFilename.");
    +            }
    +            @unlink($pFilename);
    +        }
    +    }
    +
    +    /**
    +     * Create zip object.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws WriterException
    +     *
    +     * @return ZipArchive
    +     */
    +    private function createZip($pFilename)
    +    {
    +        // Create new ZIP file and open it for writing
    +        $zip = new ZipArchive();
    +
    +        if (file_exists($pFilename)) {
    +            unlink($pFilename);
    +        }
    +        // Try opening the ZIP file
    +        if ($zip->open($pFilename, ZipArchive::OVERWRITE) !== true) {
    +            if ($zip->open($pFilename, ZipArchive::CREATE) !== true) {
    +                throw new WriterException("Could not open $pFilename for writing.");
    +            }
    +        }
    +
    +        return $zip;
    +    }
    +
    +    /**
    +     * Get Spreadsheet object.
    +     *
    +     * @throws WriterException
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function getSpreadsheet()
    +    {
    +        if ($this->spreadSheet !== null) {
    +            return $this->spreadSheet;
    +        }
    +
    +        throw new WriterException('No PhpSpreadsheet assigned.');
    +    }
    +
    +    /**
    +     * Set Spreadsheet object.
    +     *
    +     * @param Spreadsheet $spreadsheet PhpSpreadsheet object
    +     *
    +     * @return self
    +     */
    +    public function setSpreadsheet(Spreadsheet $spreadsheet)
    +    {
    +        $this->spreadSheet = $spreadsheet;
    +
    +        return $this;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Cell/Comment.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Cell/Comment.php
    new file mode 100644
    index 00000000000..2f543be51b8
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Cell/Comment.php
    @@ -0,0 +1,33 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Ods\Cell;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Cell;
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +
    +/**
    + * @category   PhpSpreadsheet
    + *
    + * @copyright  Copyright (c) 2006 - 2015 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet)
    + * @author     Alexander Pervakov <frost-nzcr4@jagmort.com>
    + */
    +class Comment
    +{
    +    public static function write(XMLWriter $objWriter, Cell $cell)
    +    {
    +        $comments = $cell->getWorksheet()->getComments();
    +        if (!isset($comments[$cell->getCoordinate()])) {
    +            return;
    +        }
    +        $comment = $comments[$cell->getCoordinate()];
    +
    +        $objWriter->startElement('office:annotation');
    +        $objWriter->writeAttribute('svg:width', $comment->getWidth());
    +        $objWriter->writeAttribute('svg:height', $comment->getHeight());
    +        $objWriter->writeAttribute('svg:x', $comment->getMarginLeft());
    +        $objWriter->writeAttribute('svg:y', $comment->getMarginTop());
    +        $objWriter->writeElement('dc:creator', $comment->getAuthor());
    +        $objWriter->writeElement('text:p', $comment->getText()->getPlainText());
    +        $objWriter->endElement();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Content.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Content.php
    new file mode 100644
    index 00000000000..11de0fd3733
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Content.php
    @@ -0,0 +1,395 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Ods;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Cell;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Cell\DataType;
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\Fill;
    +use PhpOffice\PhpSpreadsheet\Style\Font;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Row;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception;
    +use PhpOffice\PhpSpreadsheet\Writer\Ods;
    +use PhpOffice\PhpSpreadsheet\Writer\Ods\Cell\Comment;
    +
    +/**
    + * @category   PhpSpreadsheet
    + *
    + * @method Ods getParentWriter
    + *
    + * @copyright  Copyright (c) 2006 - 2015 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet)
    + * @author     Alexander Pervakov <frost-nzcr4@jagmort.com>
    + */
    +class Content extends WriterPart
    +{
    +    const NUMBER_COLS_REPEATED_MAX = 1024;
    +    const NUMBER_ROWS_REPEATED_MAX = 1048576;
    +    const CELL_STYLE_PREFIX = 'ce';
    +
    +    /**
    +     * Write content.xml to XML format.
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function write()
    +    {
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8');
    +
    +        // Content
    +        $objWriter->startElement('office:document-content');
    +        $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
    +        $objWriter->writeAttribute('xmlns:style', 'urn:oasis:names:tc:opendocument:xmlns:style:1.0');
    +        $objWriter->writeAttribute('xmlns:text', 'urn:oasis:names:tc:opendocument:xmlns:text:1.0');
    +        $objWriter->writeAttribute('xmlns:table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0');
    +        $objWriter->writeAttribute('xmlns:draw', 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0');
    +        $objWriter->writeAttribute('xmlns:fo', 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0');
    +        $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
    +        $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
    +        $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
    +        $objWriter->writeAttribute('xmlns:number', 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0');
    +        $objWriter->writeAttribute('xmlns:presentation', 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0');
    +        $objWriter->writeAttribute('xmlns:svg', 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0');
    +        $objWriter->writeAttribute('xmlns:chart', 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0');
    +        $objWriter->writeAttribute('xmlns:dr3d', 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0');
    +        $objWriter->writeAttribute('xmlns:math', 'http://www.w3.org/1998/Math/MathML');
    +        $objWriter->writeAttribute('xmlns:form', 'urn:oasis:names:tc:opendocument:xmlns:form:1.0');
    +        $objWriter->writeAttribute('xmlns:script', 'urn:oasis:names:tc:opendocument:xmlns:script:1.0');
    +        $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
    +        $objWriter->writeAttribute('xmlns:ooow', 'http://openoffice.org/2004/writer');
    +        $objWriter->writeAttribute('xmlns:oooc', 'http://openoffice.org/2004/calc');
    +        $objWriter->writeAttribute('xmlns:dom', 'http://www.w3.org/2001/xml-events');
    +        $objWriter->writeAttribute('xmlns:xforms', 'http://www.w3.org/2002/xforms');
    +        $objWriter->writeAttribute('xmlns:xsd', 'http://www.w3.org/2001/XMLSchema');
    +        $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
    +        $objWriter->writeAttribute('xmlns:rpt', 'http://openoffice.org/2005/report');
    +        $objWriter->writeAttribute('xmlns:of', 'urn:oasis:names:tc:opendocument:xmlns:of:1.2');
    +        $objWriter->writeAttribute('xmlns:xhtml', 'http://www.w3.org/1999/xhtml');
    +        $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
    +        $objWriter->writeAttribute('xmlns:tableooo', 'http://openoffice.org/2009/table');
    +        $objWriter->writeAttribute('xmlns:field', 'urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0');
    +        $objWriter->writeAttribute('xmlns:formx', 'urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0');
    +        $objWriter->writeAttribute('xmlns:css3t', 'http://www.w3.org/TR/css3-text/');
    +        $objWriter->writeAttribute('office:version', '1.2');
    +
    +        $objWriter->writeElement('office:scripts');
    +        $objWriter->writeElement('office:font-face-decls');
    +
    +        // Styles XF
    +        $objWriter->startElement('office:automatic-styles');
    +        $this->writeXfStyles($objWriter, $this->getParentWriter()->getSpreadsheet());
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('office:body');
    +        $objWriter->startElement('office:spreadsheet');
    +        $objWriter->writeElement('table:calculation-settings');
    +
    +        $this->writeSheets($objWriter);
    +
    +        $objWriter->writeElement('table:named-expressions');
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write sheets.
    +     *
    +     * @param XMLWriter $objWriter
    +     */
    +    private function writeSheets(XMLWriter $objWriter)
    +    {
    +        $spreadsheet = $this->getParentWriter()->getSpreadsheet(); // @var $spreadsheet Spreadsheet
    +
    +        $sheetCount = $spreadsheet->getSheetCount();
    +        for ($i = 0; $i < $sheetCount; ++$i) {
    +            $objWriter->startElement('table:table');
    +            $objWriter->writeAttribute('table:name', $spreadsheet->getSheet($i)->getTitle());
    +            $objWriter->writeElement('office:forms');
    +            $objWriter->startElement('table:table-column');
    +            $objWriter->writeAttribute('table:number-columns-repeated', self::NUMBER_COLS_REPEATED_MAX);
    +            $objWriter->endElement();
    +            $this->writeRows($objWriter, $spreadsheet->getSheet($i));
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write rows of the specified sheet.
    +     *
    +     * @param XMLWriter $objWriter
    +     * @param Worksheet $sheet
    +     */
    +    private function writeRows(XMLWriter $objWriter, Worksheet $sheet)
    +    {
    +        $numberRowsRepeated = self::NUMBER_ROWS_REPEATED_MAX;
    +        $span_row = 0;
    +        $rows = $sheet->getRowIterator();
    +        while ($rows->valid()) {
    +            --$numberRowsRepeated;
    +            $row = $rows->current();
    +            if ($row->getCellIterator()->valid()) {
    +                if ($span_row) {
    +                    $objWriter->startElement('table:table-row');
    +                    if ($span_row > 1) {
    +                        $objWriter->writeAttribute('table:number-rows-repeated', $span_row);
    +                    }
    +                    $objWriter->startElement('table:table-cell');
    +                    $objWriter->writeAttribute('table:number-columns-repeated', self::NUMBER_COLS_REPEATED_MAX);
    +                    $objWriter->endElement();
    +                    $objWriter->endElement();
    +                    $span_row = 0;
    +                }
    +                $objWriter->startElement('table:table-row');
    +                $this->writeCells($objWriter, $row);
    +                $objWriter->endElement();
    +            } else {
    +                ++$span_row;
    +            }
    +            $rows->next();
    +        }
    +    }
    +
    +    /**
    +     * Write cells of the specified row.
    +     *
    +     * @param XMLWriter $objWriter
    +     * @param Row $row
    +     *
    +     * @throws Exception
    +     */
    +    private function writeCells(XMLWriter $objWriter, Row $row)
    +    {
    +        $numberColsRepeated = self::NUMBER_COLS_REPEATED_MAX;
    +        $prevColumn = -1;
    +        $cells = $row->getCellIterator();
    +        while ($cells->valid()) {
    +            /** @var \PhpOffice\PhpSpreadsheet\Cell\Cell $cell */
    +            $cell = $cells->current();
    +            $column = Coordinate::columnIndexFromString($cell->getColumn()) - 1;
    +
    +            $this->writeCellSpan($objWriter, $column, $prevColumn);
    +            $objWriter->startElement('table:table-cell');
    +            $this->writeCellMerge($objWriter, $cell);
    +
    +            // Style XF
    +            $style = $cell->getXfIndex();
    +            if ($style !== null) {
    +                $objWriter->writeAttribute('table:style-name', self::CELL_STYLE_PREFIX . $style);
    +            }
    +
    +            switch ($cell->getDataType()) {
    +                case DataType::TYPE_BOOL:
    +                    $objWriter->writeAttribute('office:value-type', 'boolean');
    +                    $objWriter->writeAttribute('office:value', $cell->getValue());
    +                    $objWriter->writeElement('text:p', $cell->getValue());
    +
    +                    break;
    +                case DataType::TYPE_ERROR:
    +                    throw new Exception('Writing of error not implemented yet.');
    +
    +                    break;
    +                case DataType::TYPE_FORMULA:
    +                    $formulaValue = $cell->getValue();
    +                    if ($this->getParentWriter()->getPreCalculateFormulas()) {
    +                        try {
    +                            $formulaValue = $cell->getCalculatedValue();
    +                        } catch (Exception $e) {
    +                            // don't do anything
    +                        }
    +                    }
    +                    $objWriter->writeAttribute('table:formula', 'of:' . $cell->getValue());
    +                    if (is_numeric($formulaValue)) {
    +                        $objWriter->writeAttribute('office:value-type', 'float');
    +                    } else {
    +                        $objWriter->writeAttribute('office:value-type', 'string');
    +                    }
    +                    $objWriter->writeAttribute('office:value', $formulaValue);
    +                    $objWriter->writeElement('text:p', $formulaValue);
    +
    +                    break;
    +                case DataType::TYPE_INLINE:
    +                    throw new Exception('Writing of inline not implemented yet.');
    +
    +                    break;
    +                case DataType::TYPE_NUMERIC:
    +                    $objWriter->writeAttribute('office:value-type', 'float');
    +                    $objWriter->writeAttribute('office:value', $cell->getValue());
    +                    $objWriter->writeElement('text:p', $cell->getValue());
    +
    +                    break;
    +                case DataType::TYPE_STRING:
    +                    $objWriter->writeAttribute('office:value-type', 'string');
    +                    $objWriter->writeElement('text:p', $cell->getValue());
    +
    +                    break;
    +            }
    +            Comment::write($objWriter, $cell);
    +            $objWriter->endElement();
    +            $prevColumn = $column;
    +            $cells->next();
    +        }
    +        $numberColsRepeated = $numberColsRepeated - $prevColumn - 1;
    +        if ($numberColsRepeated > 0) {
    +            if ($numberColsRepeated > 1) {
    +                $objWriter->startElement('table:table-cell');
    +                $objWriter->writeAttribute('table:number-columns-repeated', $numberColsRepeated);
    +                $objWriter->endElement();
    +            } else {
    +                $objWriter->writeElement('table:table-cell');
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Write span.
    +     *
    +     * @param XMLWriter $objWriter
    +     * @param int $curColumn
    +     * @param int $prevColumn
    +     */
    +    private function writeCellSpan(XMLWriter $objWriter, $curColumn, $prevColumn)
    +    {
    +        $diff = $curColumn - $prevColumn - 1;
    +        if (1 === $diff) {
    +            $objWriter->writeElement('table:table-cell');
    +        } elseif ($diff > 1) {
    +            $objWriter->startElement('table:table-cell');
    +            $objWriter->writeAttribute('table:number-columns-repeated', $diff);
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write XF cell styles.
    +     *
    +     * @param XMLWriter $writer
    +     * @param Spreadsheet $spreadsheet
    +     */
    +    private function writeXfStyles(XMLWriter $writer, Spreadsheet $spreadsheet)
    +    {
    +        foreach ($spreadsheet->getCellXfCollection() as $style) {
    +            $writer->startElement('style:style');
    +            $writer->writeAttribute('style:name', self::CELL_STYLE_PREFIX . $style->getIndex());
    +            $writer->writeAttribute('style:family', 'table-cell');
    +            $writer->writeAttribute('style:parent-style-name', 'Default');
    +
    +            // style:text-properties
    +
    +            // Font
    +            $writer->startElement('style:text-properties');
    +
    +            $font = $style->getFont();
    +
    +            if ($font->getBold()) {
    +                $writer->writeAttribute('fo:font-weight', 'bold');
    +                $writer->writeAttribute('style:font-weight-complex', 'bold');
    +                $writer->writeAttribute('style:font-weight-asian', 'bold');
    +            }
    +
    +            if ($font->getItalic()) {
    +                $writer->writeAttribute('fo:font-style', 'italic');
    +            }
    +
    +            if ($color = $font->getColor()) {
    +                $writer->writeAttribute('fo:color', sprintf('#%s', $color->getRGB()));
    +            }
    +
    +            if ($family = $font->getName()) {
    +                $writer->writeAttribute('fo:font-family', $family);
    +            }
    +
    +            if ($size = $font->getSize()) {
    +                $writer->writeAttribute('fo:font-size', sprintf('%.1fpt', $size));
    +            }
    +
    +            if ($font->getUnderline() && $font->getUnderline() != Font::UNDERLINE_NONE) {
    +                $writer->writeAttribute('style:text-underline-style', 'solid');
    +                $writer->writeAttribute('style:text-underline-width', 'auto');
    +                $writer->writeAttribute('style:text-underline-color', 'font-color');
    +
    +                switch ($font->getUnderline()) {
    +                    case Font::UNDERLINE_DOUBLE:
    +                        $writer->writeAttribute('style:text-underline-type', 'double');
    +
    +                        break;
    +                    case Font::UNDERLINE_SINGLE:
    +                        $writer->writeAttribute('style:text-underline-type', 'single');
    +
    +                        break;
    +                }
    +            }
    +
    +            $writer->endElement(); // Close style:text-properties
    +
    +            // style:table-cell-properties
    +
    +            $writer->startElement('style:table-cell-properties');
    +            $writer->writeAttribute('style:rotation-align', 'none');
    +
    +            // Fill
    +            if ($fill = $style->getFill()) {
    +                switch ($fill->getFillType()) {
    +                    case Fill::FILL_SOLID:
    +                        $writer->writeAttribute('fo:background-color', sprintf(
    +                            '#%s',
    +                            strtolower($fill->getStartColor()->getRGB())
    +                        ));
    +
    +                        break;
    +                    case Fill::FILL_GRADIENT_LINEAR:
    +                    case Fill::FILL_GRADIENT_PATH:
    +                        /// TODO :: To be implemented
    +                        break;
    +                    case Fill::FILL_NONE:
    +                    default:
    +                }
    +            }
    +
    +            $writer->endElement(); // Close style:table-cell-properties
    +
    +            // End
    +
    +            $writer->endElement(); // Close style:style
    +        }
    +    }
    +
    +    /**
    +     * Write attributes for merged cell.
    +     *
    +     * @param XMLWriter $objWriter
    +     * @param Cell $cell
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Exception
    +     */
    +    private function writeCellMerge(XMLWriter $objWriter, Cell $cell)
    +    {
    +        if (!$cell->isMergeRangeValueCell()) {
    +            return;
    +        }
    +
    +        $mergeRange = Coordinate::splitRange($cell->getMergeRange());
    +        list($startCell, $endCell) = $mergeRange[0];
    +        $start = Coordinate::coordinateFromString($startCell);
    +        $end = Coordinate::coordinateFromString($endCell);
    +        $columnSpan = Coordinate::columnIndexFromString($end[0]) - Coordinate::columnIndexFromString($start[0]) + 1;
    +        $rowSpan = $end[1] - $start[1] + 1;
    +
    +        $objWriter->writeAttribute('table:number-columns-spanned', $columnSpan);
    +        $objWriter->writeAttribute('table:number-rows-spanned', $rowSpan);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Meta.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Meta.php
    new file mode 100644
    index 00000000000..ffe5eff7925
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Meta.php
    @@ -0,0 +1,77 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Ods;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class Meta extends WriterPart
    +{
    +    /**
    +     * Write meta.xml to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function write(Spreadsheet $spreadsheet = null)
    +    {
    +        if (!$spreadsheet) {
    +            $spreadsheet = $this->getParentWriter()->getSpreadsheet();
    +        }
    +
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8');
    +
    +        // Meta
    +        $objWriter->startElement('office:document-meta');
    +
    +        $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
    +        $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
    +        $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
    +        $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
    +        $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
    +        $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
    +        $objWriter->writeAttribute('office:version', '1.2');
    +
    +        $objWriter->startElement('office:meta');
    +
    +        $objWriter->writeElement('meta:initial-creator', $spreadsheet->getProperties()->getCreator());
    +        $objWriter->writeElement('dc:creator', $spreadsheet->getProperties()->getCreator());
    +        $objWriter->writeElement('meta:creation-date', date(DATE_W3C, $spreadsheet->getProperties()->getCreated()));
    +        $objWriter->writeElement('dc:date', date(DATE_W3C, $spreadsheet->getProperties()->getCreated()));
    +        $objWriter->writeElement('dc:title', $spreadsheet->getProperties()->getTitle());
    +        $objWriter->writeElement('dc:description', $spreadsheet->getProperties()->getDescription());
    +        $objWriter->writeElement('dc:subject', $spreadsheet->getProperties()->getSubject());
    +        $keywords = explode(' ', $spreadsheet->getProperties()->getKeywords());
    +        foreach ($keywords as $keyword) {
    +            $objWriter->writeElement('meta:keyword', $keyword);
    +        }
    +
    +        //<meta:document-statistic meta:table-count="XXX" meta:cell-count="XXX" meta:object-count="XXX"/>
    +        $objWriter->startElement('meta:user-defined');
    +        $objWriter->writeAttribute('meta:name', 'Company');
    +        $objWriter->writeRaw($spreadsheet->getProperties()->getCompany());
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('meta:user-defined');
    +        $objWriter->writeAttribute('meta:name', 'category');
    +        $objWriter->writeRaw($spreadsheet->getProperties()->getCategory());
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/MetaInf.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/MetaInf.php
    new file mode 100644
    index 00000000000..1ec9d1eb44b
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/MetaInf.php
    @@ -0,0 +1,62 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Ods;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +
    +class MetaInf extends WriterPart
    +{
    +    /**
    +     * Write META-INF/manifest.xml to XML format.
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeManifest()
    +    {
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8');
    +
    +        // Manifest
    +        $objWriter->startElement('manifest:manifest');
    +        $objWriter->writeAttribute('xmlns:manifest', 'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0');
    +        $objWriter->writeAttribute('manifest:version', '1.2');
    +
    +        $objWriter->startElement('manifest:file-entry');
    +        $objWriter->writeAttribute('manifest:full-path', '/');
    +        $objWriter->writeAttribute('manifest:version', '1.2');
    +        $objWriter->writeAttribute('manifest:media-type', 'application/vnd.oasis.opendocument.spreadsheet');
    +        $objWriter->endElement();
    +        $objWriter->startElement('manifest:file-entry');
    +        $objWriter->writeAttribute('manifest:full-path', 'meta.xml');
    +        $objWriter->writeAttribute('manifest:media-type', 'text/xml');
    +        $objWriter->endElement();
    +        $objWriter->startElement('manifest:file-entry');
    +        $objWriter->writeAttribute('manifest:full-path', 'settings.xml');
    +        $objWriter->writeAttribute('manifest:media-type', 'text/xml');
    +        $objWriter->endElement();
    +        $objWriter->startElement('manifest:file-entry');
    +        $objWriter->writeAttribute('manifest:full-path', 'content.xml');
    +        $objWriter->writeAttribute('manifest:media-type', 'text/xml');
    +        $objWriter->endElement();
    +        $objWriter->startElement('manifest:file-entry');
    +        $objWriter->writeAttribute('manifest:full-path', 'Thumbnails/thumbnail.png');
    +        $objWriter->writeAttribute('manifest:media-type', 'image/png');
    +        $objWriter->endElement();
    +        $objWriter->startElement('manifest:file-entry');
    +        $objWriter->writeAttribute('manifest:full-path', 'styles.xml');
    +        $objWriter->writeAttribute('manifest:media-type', 'text/xml');
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Mimetype.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Mimetype.php
    new file mode 100644
    index 00000000000..d0fed2b379b
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Mimetype.php
    @@ -0,0 +1,20 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Ods;
    +
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class Mimetype extends WriterPart
    +{
    +    /**
    +     * Write mimetype to plain text format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @return string XML Output
    +     */
    +    public function write(Spreadsheet $spreadsheet = null)
    +    {
    +        return 'application/vnd.oasis.opendocument.spreadsheet';
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Settings.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Settings.php
    new file mode 100644
    index 00000000000..18f7ee6d5cb
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Settings.php
    @@ -0,0 +1,54 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Ods;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class Settings extends WriterPart
    +{
    +    /**
    +     * Write settings.xml to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function write(Spreadsheet $spreadsheet = null)
    +    {
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8');
    +
    +        // Settings
    +        $objWriter->startElement('office:document-settings');
    +        $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
    +        $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
    +        $objWriter->writeAttribute('xmlns:config', 'urn:oasis:names:tc:opendocument:xmlns:config:1.0');
    +        $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
    +        $objWriter->writeAttribute('office:version', '1.2');
    +
    +        $objWriter->startElement('office:settings');
    +        $objWriter->startElement('config:config-item-set');
    +        $objWriter->writeAttribute('config:name', 'ooo:view-settings');
    +        $objWriter->startElement('config:config-item-map-indexed');
    +        $objWriter->writeAttribute('config:name', 'Views');
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +        $objWriter->startElement('config:config-item-set');
    +        $objWriter->writeAttribute('config:name', 'ooo:configuration-settings');
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Styles.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Styles.php
    new file mode 100644
    index 00000000000..eaf5cad9526
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Styles.php
    @@ -0,0 +1,70 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Ods;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class Styles extends WriterPart
    +{
    +    /**
    +     * Write styles.xml to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function write(Spreadsheet $spreadsheet = null)
    +    {
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8');
    +
    +        // Content
    +        $objWriter->startElement('office:document-styles');
    +        $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
    +        $objWriter->writeAttribute('xmlns:style', 'urn:oasis:names:tc:opendocument:xmlns:style:1.0');
    +        $objWriter->writeAttribute('xmlns:text', 'urn:oasis:names:tc:opendocument:xmlns:text:1.0');
    +        $objWriter->writeAttribute('xmlns:table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0');
    +        $objWriter->writeAttribute('xmlns:draw', 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0');
    +        $objWriter->writeAttribute('xmlns:fo', 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0');
    +        $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
    +        $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
    +        $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
    +        $objWriter->writeAttribute('xmlns:number', 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0');
    +        $objWriter->writeAttribute('xmlns:presentation', 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0');
    +        $objWriter->writeAttribute('xmlns:svg', 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0');
    +        $objWriter->writeAttribute('xmlns:chart', 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0');
    +        $objWriter->writeAttribute('xmlns:dr3d', 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0');
    +        $objWriter->writeAttribute('xmlns:math', 'http://www.w3.org/1998/Math/MathML');
    +        $objWriter->writeAttribute('xmlns:form', 'urn:oasis:names:tc:opendocument:xmlns:form:1.0');
    +        $objWriter->writeAttribute('xmlns:script', 'urn:oasis:names:tc:opendocument:xmlns:script:1.0');
    +        $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
    +        $objWriter->writeAttribute('xmlns:ooow', 'http://openoffice.org/2004/writer');
    +        $objWriter->writeAttribute('xmlns:oooc', 'http://openoffice.org/2004/calc');
    +        $objWriter->writeAttribute('xmlns:dom', 'http://www.w3.org/2001/xml-events');
    +        $objWriter->writeAttribute('xmlns:rpt', 'http://openoffice.org/2005/report');
    +        $objWriter->writeAttribute('xmlns:of', 'urn:oasis:names:tc:opendocument:xmlns:of:1.2');
    +        $objWriter->writeAttribute('xmlns:xhtml', 'http://www.w3.org/1999/xhtml');
    +        $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
    +        $objWriter->writeAttribute('xmlns:tableooo', 'http://openoffice.org/2009/table');
    +        $objWriter->writeAttribute('xmlns:css3t', 'http://www.w3.org/TR/css3-text/');
    +        $objWriter->writeAttribute('office:version', '1.2');
    +
    +        $objWriter->writeElement('office:font-face-decls');
    +        $objWriter->writeElement('office:styles');
    +        $objWriter->writeElement('office:automatic-styles');
    +        $objWriter->writeElement('office:master-styles');
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Thumbnails.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Thumbnails.php
    new file mode 100644
    index 00000000000..a29a14adbe8
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/Thumbnails.php
    @@ -0,0 +1,20 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Ods;
    +
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class Thumbnails extends WriterPart
    +{
    +    /**
    +     * Write Thumbnails/thumbnail.png to PNG format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeThumbnail(Spreadsheet $spreadsheet = null)
    +    {
    +        return '';
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/WriterPart.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/WriterPart.php
    new file mode 100644
    index 00000000000..3e2f968416d
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Ods/WriterPart.php
    @@ -0,0 +1,35 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Ods;
    +
    +use PhpOffice\PhpSpreadsheet\Writer\Ods;
    +
    +abstract class WriterPart
    +{
    +    /**
    +     * Parent Ods object.
    +     *
    +     * @var Ods
    +     */
    +    private $parentWriter;
    +
    +    /**
    +     * Get Ods writer.
    +     *
    +     * @return Ods
    +     */
    +    public function getParentWriter()
    +    {
    +        return $this->parentWriter;
    +    }
    +
    +    /**
    +     * Set parent Ods writer.
    +     *
    +     * @param Ods $writer
    +     */
    +    public function __construct(Ods $writer)
    +    {
    +        $this->parentWriter = $writer;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf.php
    new file mode 100644
    index 00000000000..b80083ae466
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf.php
    @@ -0,0 +1,283 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +abstract class Pdf extends Html
    +{
    +    /**
    +     * Temporary storage directory.
    +     *
    +     * @var string
    +     */
    +    protected $tempDir = '';
    +
    +    /**
    +     * Font.
    +     *
    +     * @var string
    +     */
    +    protected $font = 'freesans';
    +
    +    /**
    +     * Orientation (Over-ride).
    +     *
    +     * @var string
    +     */
    +    protected $orientation;
    +
    +    /**
    +     * Paper size (Over-ride).
    +     *
    +     * @var int
    +     */
    +    protected $paperSize;
    +
    +    /**
    +     * Temporary storage for Save Array Return type.
    +     *
    +     * @var string
    +     */
    +    private $saveArrayReturnType;
    +
    +    /**
    +     * Paper Sizes xRef List.
    +     *
    +     * @var array
    +     */
    +    protected static $paperSizes = [
    +        PageSetup::PAPERSIZE_LETTER => 'LETTER', //    (8.5 in. by 11 in.)
    +        PageSetup::PAPERSIZE_LETTER_SMALL => 'LETTER', //    (8.5 in. by 11 in.)
    +        PageSetup::PAPERSIZE_TABLOID => [792.00, 1224.00], //    (11 in. by 17 in.)
    +        PageSetup::PAPERSIZE_LEDGER => [1224.00, 792.00], //    (17 in. by 11 in.)
    +        PageSetup::PAPERSIZE_LEGAL => 'LEGAL', //    (8.5 in. by 14 in.)
    +        PageSetup::PAPERSIZE_STATEMENT => [396.00, 612.00], //    (5.5 in. by 8.5 in.)
    +        PageSetup::PAPERSIZE_EXECUTIVE => 'EXECUTIVE', //    (7.25 in. by 10.5 in.)
    +        PageSetup::PAPERSIZE_A3 => 'A3', //    (297 mm by 420 mm)
    +        PageSetup::PAPERSIZE_A4 => 'A4', //    (210 mm by 297 mm)
    +        PageSetup::PAPERSIZE_A4_SMALL => 'A4', //    (210 mm by 297 mm)
    +        PageSetup::PAPERSIZE_A5 => 'A5', //    (148 mm by 210 mm)
    +        PageSetup::PAPERSIZE_B4 => 'B4', //    (250 mm by 353 mm)
    +        PageSetup::PAPERSIZE_B5 => 'B5', //    (176 mm by 250 mm)
    +        PageSetup::PAPERSIZE_FOLIO => 'FOLIO', //    (8.5 in. by 13 in.)
    +        PageSetup::PAPERSIZE_QUARTO => [609.45, 779.53], //    (215 mm by 275 mm)
    +        PageSetup::PAPERSIZE_STANDARD_1 => [720.00, 1008.00], //    (10 in. by 14 in.)
    +        PageSetup::PAPERSIZE_STANDARD_2 => [792.00, 1224.00], //    (11 in. by 17 in.)
    +        PageSetup::PAPERSIZE_NOTE => 'LETTER', //    (8.5 in. by 11 in.)
    +        PageSetup::PAPERSIZE_NO9_ENVELOPE => [279.00, 639.00], //    (3.875 in. by 8.875 in.)
    +        PageSetup::PAPERSIZE_NO10_ENVELOPE => [297.00, 684.00], //    (4.125 in. by 9.5 in.)
    +        PageSetup::PAPERSIZE_NO11_ENVELOPE => [324.00, 747.00], //    (4.5 in. by 10.375 in.)
    +        PageSetup::PAPERSIZE_NO12_ENVELOPE => [342.00, 792.00], //    (4.75 in. by 11 in.)
    +        PageSetup::PAPERSIZE_NO14_ENVELOPE => [360.00, 828.00], //    (5 in. by 11.5 in.)
    +        PageSetup::PAPERSIZE_C => [1224.00, 1584.00], //    (17 in. by 22 in.)
    +        PageSetup::PAPERSIZE_D => [1584.00, 2448.00], //    (22 in. by 34 in.)
    +        PageSetup::PAPERSIZE_E => [2448.00, 3168.00], //    (34 in. by 44 in.)
    +        PageSetup::PAPERSIZE_DL_ENVELOPE => [311.81, 623.62], //    (110 mm by 220 mm)
    +        PageSetup::PAPERSIZE_C5_ENVELOPE => 'C5', //    (162 mm by 229 mm)
    +        PageSetup::PAPERSIZE_C3_ENVELOPE => 'C3', //    (324 mm by 458 mm)
    +        PageSetup::PAPERSIZE_C4_ENVELOPE => 'C4', //    (229 mm by 324 mm)
    +        PageSetup::PAPERSIZE_C6_ENVELOPE => 'C6', //    (114 mm by 162 mm)
    +        PageSetup::PAPERSIZE_C65_ENVELOPE => [323.15, 649.13], //    (114 mm by 229 mm)
    +        PageSetup::PAPERSIZE_B4_ENVELOPE => 'B4', //    (250 mm by 353 mm)
    +        PageSetup::PAPERSIZE_B5_ENVELOPE => 'B5', //    (176 mm by 250 mm)
    +        PageSetup::PAPERSIZE_B6_ENVELOPE => [498.90, 354.33], //    (176 mm by 125 mm)
    +        PageSetup::PAPERSIZE_ITALY_ENVELOPE => [311.81, 651.97], //    (110 mm by 230 mm)
    +        PageSetup::PAPERSIZE_MONARCH_ENVELOPE => [279.00, 540.00], //    (3.875 in. by 7.5 in.)
    +        PageSetup::PAPERSIZE_6_3_4_ENVELOPE => [261.00, 468.00], //    (3.625 in. by 6.5 in.)
    +        PageSetup::PAPERSIZE_US_STANDARD_FANFOLD => [1071.00, 792.00], //    (14.875 in. by 11 in.)
    +        PageSetup::PAPERSIZE_GERMAN_STANDARD_FANFOLD => [612.00, 864.00], //    (8.5 in. by 12 in.)
    +        PageSetup::PAPERSIZE_GERMAN_LEGAL_FANFOLD => 'FOLIO', //    (8.5 in. by 13 in.)
    +        PageSetup::PAPERSIZE_ISO_B4 => 'B4', //    (250 mm by 353 mm)
    +        PageSetup::PAPERSIZE_JAPANESE_DOUBLE_POSTCARD => [566.93, 419.53], //    (200 mm by 148 mm)
    +        PageSetup::PAPERSIZE_STANDARD_PAPER_1 => [648.00, 792.00], //    (9 in. by 11 in.)
    +        PageSetup::PAPERSIZE_STANDARD_PAPER_2 => [720.00, 792.00], //    (10 in. by 11 in.)
    +        PageSetup::PAPERSIZE_STANDARD_PAPER_3 => [1080.00, 792.00], //    (15 in. by 11 in.)
    +        PageSetup::PAPERSIZE_INVITE_ENVELOPE => [623.62, 623.62], //    (220 mm by 220 mm)
    +        PageSetup::PAPERSIZE_LETTER_EXTRA_PAPER => [667.80, 864.00], //    (9.275 in. by 12 in.)
    +        PageSetup::PAPERSIZE_LEGAL_EXTRA_PAPER => [667.80, 1080.00], //    (9.275 in. by 15 in.)
    +        PageSetup::PAPERSIZE_TABLOID_EXTRA_PAPER => [841.68, 1296.00], //    (11.69 in. by 18 in.)
    +        PageSetup::PAPERSIZE_A4_EXTRA_PAPER => [668.98, 912.76], //    (236 mm by 322 mm)
    +        PageSetup::PAPERSIZE_LETTER_TRANSVERSE_PAPER => [595.80, 792.00], //    (8.275 in. by 11 in.)
    +        PageSetup::PAPERSIZE_A4_TRANSVERSE_PAPER => 'A4', //    (210 mm by 297 mm)
    +        PageSetup::PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER => [667.80, 864.00], //    (9.275 in. by 12 in.)
    +        PageSetup::PAPERSIZE_SUPERA_SUPERA_A4_PAPER => [643.46, 1009.13], //    (227 mm by 356 mm)
    +        PageSetup::PAPERSIZE_SUPERB_SUPERB_A3_PAPER => [864.57, 1380.47], //    (305 mm by 487 mm)
    +        PageSetup::PAPERSIZE_LETTER_PLUS_PAPER => [612.00, 913.68], //    (8.5 in. by 12.69 in.)
    +        PageSetup::PAPERSIZE_A4_PLUS_PAPER => [595.28, 935.43], //    (210 mm by 330 mm)
    +        PageSetup::PAPERSIZE_A5_TRANSVERSE_PAPER => 'A5', //    (148 mm by 210 mm)
    +        PageSetup::PAPERSIZE_JIS_B5_TRANSVERSE_PAPER => [515.91, 728.50], //    (182 mm by 257 mm)
    +        PageSetup::PAPERSIZE_A3_EXTRA_PAPER => [912.76, 1261.42], //    (322 mm by 445 mm)
    +        PageSetup::PAPERSIZE_A5_EXTRA_PAPER => [493.23, 666.14], //    (174 mm by 235 mm)
    +        PageSetup::PAPERSIZE_ISO_B5_EXTRA_PAPER => [569.76, 782.36], //    (201 mm by 276 mm)
    +        PageSetup::PAPERSIZE_A2_PAPER => 'A2', //    (420 mm by 594 mm)
    +        PageSetup::PAPERSIZE_A3_TRANSVERSE_PAPER => 'A3', //    (297 mm by 420 mm)
    +        PageSetup::PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER => [912.76, 1261.42], //    (322 mm by 445 mm)
    +    ];
    +
    +    /**
    +     * Create a new PDF Writer instance.
    +     *
    +     * @param Spreadsheet $spreadsheet Spreadsheet object
    +     */
    +    public function __construct(Spreadsheet $spreadsheet)
    +    {
    +        parent::__construct($spreadsheet);
    +        $this->setUseInlineCss(true);
    +        $this->tempDir = File::sysGetTempDir();
    +    }
    +
    +    /**
    +     * Get Font.
    +     *
    +     * @return string
    +     */
    +    public function getFont()
    +    {
    +        return $this->font;
    +    }
    +
    +    /**
    +     * Set font. Examples:
    +     *      'arialunicid0-chinese-simplified'
    +     *      'arialunicid0-chinese-traditional'
    +     *      'arialunicid0-korean'
    +     *      'arialunicid0-japanese'.
    +     *
    +     * @param string $fontName
    +     *
    +     * @return Pdf
    +     */
    +    public function setFont($fontName)
    +    {
    +        $this->font = $fontName;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Paper Size.
    +     *
    +     * @return int
    +     */
    +    public function getPaperSize()
    +    {
    +        return $this->paperSize;
    +    }
    +
    +    /**
    +     * Set Paper Size.
    +     *
    +     * @param string $pValue Paper size see PageSetup::PAPERSIZE_*
    +     *
    +     * @return self
    +     */
    +    public function setPaperSize($pValue)
    +    {
    +        $this->paperSize = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get Orientation.
    +     *
    +     * @return string
    +     */
    +    public function getOrientation()
    +    {
    +        return $this->orientation;
    +    }
    +
    +    /**
    +     * Set Orientation.
    +     *
    +     * @param string $pValue Page orientation see PageSetup::ORIENTATION_*
    +     *
    +     * @return self
    +     */
    +    public function setOrientation($pValue)
    +    {
    +        $this->orientation = $pValue;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get temporary storage directory.
    +     *
    +     * @return string
    +     */
    +    public function getTempDir()
    +    {
    +        return $this->tempDir;
    +    }
    +
    +    /**
    +     * Set temporary storage directory.
    +     *
    +     * @param string $pValue Temporary storage directory
    +     *
    +     * @throws WriterException when directory does not exist
    +     *
    +     * @return self
    +     */
    +    public function setTempDir($pValue)
    +    {
    +        if (is_dir($pValue)) {
    +            $this->tempDir = $pValue;
    +        } else {
    +            throw new WriterException("Directory does not exist: $pValue");
    +        }
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Save Spreadsheet to PDF file, pre-save.
    +     *
    +     * @param string $pFilename Name of the file to save as
    +     *
    +     * @throws WriterException
    +     *
    +     * @return resource
    +     */
    +    protected function prepareForSave($pFilename)
    +    {
    +        //  garbage collect
    +        $this->spreadsheet->garbageCollect();
    +
    +        $this->saveArrayReturnType = Calculation::getArrayReturnType();
    +        Calculation::setArrayReturnType(Calculation::RETURN_ARRAY_AS_VALUE);
    +
    +        //  Open file
    +        $fileHandle = fopen($pFilename, 'w');
    +        if ($fileHandle === false) {
    +            throw new WriterException("Could not open file $pFilename for writing.");
    +        }
    +
    +        //  Set PDF
    +        $this->isPdf = true;
    +        //  Build CSS
    +        $this->buildCSS(true);
    +
    +        return $fileHandle;
    +    }
    +
    +    /**
    +     * Save PhpSpreadsheet to PDF file, post-save.
    +     *
    +     * @param resource $fileHandle
    +     */
    +    protected function restoreStateAfterSave($fileHandle)
    +    {
    +        //  Close file
    +        fclose($fileHandle);
    +
    +        Calculation::setArrayReturnType($this->saveArrayReturnType);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf/Dompdf.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf/Dompdf.php
    new file mode 100644
    index 00000000000..3c3044d711b
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf/Dompdf.php
    @@ -0,0 +1,78 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Pdf;
    +
    +use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
    +use PhpOffice\PhpSpreadsheet\Writer\Pdf;
    +
    +class Dompdf extends Pdf
    +{
    +    /**
    +     * Gets the implementation of external PDF library that should be used.
    +     *
    +     * @return \Dompdf\Dompdf implementation
    +     */
    +    protected function createExternalWriterInstance()
    +    {
    +        return new \Dompdf\Dompdf();
    +    }
    +
    +    /**
    +     * Save Spreadsheet to file.
    +     *
    +     * @param string $pFilename Name of the file to save as
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     */
    +    public function save($pFilename)
    +    {
    +        $fileHandle = parent::prepareForSave($pFilename);
    +
    +        //  Default PDF paper size
    +        $paperSize = 'LETTER'; //    Letter    (8.5 in. by 11 in.)
    +
    +        //  Check for paper size and page orientation
    +        if ($this->getSheetIndex() === null) {
    +            $orientation = ($this->spreadsheet->getSheet(0)->getPageSetup()->getOrientation()
    +                == PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P';
    +            $printPaperSize = $this->spreadsheet->getSheet(0)->getPageSetup()->getPaperSize();
    +        } else {
    +            $orientation = ($this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation()
    +                == PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P';
    +            $printPaperSize = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize();
    +        }
    +
    +        $orientation = ($orientation == 'L') ? 'landscape' : 'portrait';
    +
    +        //  Override Page Orientation
    +        if ($this->getOrientation() !== null) {
    +            $orientation = ($this->getOrientation() == PageSetup::ORIENTATION_DEFAULT)
    +                ? PageSetup::ORIENTATION_PORTRAIT
    +                : $this->getOrientation();
    +        }
    +        //  Override Paper Size
    +        if ($this->getPaperSize() !== null) {
    +            $printPaperSize = $this->getPaperSize();
    +        }
    +
    +        if (isset(self::$paperSizes[$printPaperSize])) {
    +            $paperSize = self::$paperSizes[$printPaperSize];
    +        }
    +
    +        //  Create PDF
    +        $pdf = $this->createExternalWriterInstance();
    +        $pdf->setPaper(strtolower($paperSize), $orientation);
    +
    +        $pdf->loadHtml(
    +            $this->generateHTMLHeader(false) .
    +            $this->generateSheetData() .
    +            $this->generateHTMLFooter()
    +        );
    +        $pdf->render();
    +
    +        //  Write to file
    +        fwrite($fileHandle, $pdf->output());
    +
    +        parent::restoreStateAfterSave($fileHandle);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf/Mpdf.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf/Mpdf.php
    new file mode 100644
    index 00000000000..fd2664a8238
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf/Mpdf.php
    @@ -0,0 +1,112 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Pdf;
    +
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
    +use PhpOffice\PhpSpreadsheet\Writer\Pdf;
    +
    +class Mpdf extends Pdf
    +{
    +    /**
    +     * Gets the implementation of external PDF library that should be used.
    +     *
    +     * @param array $config Configuration array
    +     *
    +     * @return \Mpdf\Mpdf implementation
    +     */
    +    protected function createExternalWriterInstance($config)
    +    {
    +        return new \Mpdf\Mpdf($config);
    +    }
    +
    +    /**
    +     * Save Spreadsheet to file.
    +     *
    +     * @param string $pFilename Name of the file to save as
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     * @throws PhpSpreadsheetException
    +     */
    +    public function save($pFilename)
    +    {
    +        $fileHandle = parent::prepareForSave($pFilename);
    +
    +        //  Default PDF paper size
    +        $paperSize = 'LETTER'; //    Letter    (8.5 in. by 11 in.)
    +
    +        //  Check for paper size and page orientation
    +        if (null === $this->getSheetIndex()) {
    +            $orientation = ($this->spreadsheet->getSheet(0)->getPageSetup()->getOrientation()
    +                == PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P';
    +            $printPaperSize = $this->spreadsheet->getSheet(0)->getPageSetup()->getPaperSize();
    +        } else {
    +            $orientation = ($this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation()
    +                == PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P';
    +            $printPaperSize = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize();
    +        }
    +        $this->setOrientation($orientation);
    +
    +        //  Override Page Orientation
    +        if (null !== $this->getOrientation()) {
    +            $orientation = ($this->getOrientation() == PageSetup::ORIENTATION_DEFAULT)
    +                ? PageSetup::ORIENTATION_PORTRAIT
    +                : $this->getOrientation();
    +        }
    +        $orientation = strtoupper($orientation);
    +
    +        //  Override Paper Size
    +        if (null !== $this->getPaperSize()) {
    +            $printPaperSize = $this->getPaperSize();
    +        }
    +
    +        if (isset(self::$paperSizes[$printPaperSize])) {
    +            $paperSize = self::$paperSizes[$printPaperSize];
    +        }
    +
    +        //  Create PDF
    +        $config = ['tempDir' => $this->tempDir];
    +        $pdf = $this->createExternalWriterInstance($config);
    +        $ortmp = $orientation;
    +        $pdf->_setPageSize(strtoupper($paperSize), $ortmp);
    +        $pdf->DefOrientation = $orientation;
    +        $pdf->AddPageByArray([
    +            'orientation' => $orientation,
    +            'margin-left' => $this->inchesToMm($this->spreadsheet->getActiveSheet()->getPageMargins()->getLeft()),
    +            'margin-right' => $this->inchesToMm($this->spreadsheet->getActiveSheet()->getPageMargins()->getRight()),
    +            'margin-top' => $this->inchesToMm($this->spreadsheet->getActiveSheet()->getPageMargins()->getTop()),
    +            'margin-bottom' => $this->inchesToMm($this->spreadsheet->getActiveSheet()->getPageMargins()->getBottom()),
    +        ]);
    +
    +        //  Document info
    +        $pdf->SetTitle($this->spreadsheet->getProperties()->getTitle());
    +        $pdf->SetAuthor($this->spreadsheet->getProperties()->getCreator());
    +        $pdf->SetSubject($this->spreadsheet->getProperties()->getSubject());
    +        $pdf->SetKeywords($this->spreadsheet->getProperties()->getKeywords());
    +        $pdf->SetCreator($this->spreadsheet->getProperties()->getCreator());
    +
    +        $pdf->WriteHTML($this->generateHTMLHeader(false));
    +        $html = $this->generateSheetData();
    +        foreach (\array_chunk(\explode(PHP_EOL, $html), 1000) as $lines) {
    +            $pdf->WriteHTML(\implode(PHP_EOL, $lines));
    +        }
    +        $pdf->WriteHTML($this->generateHTMLFooter());
    +
    +        //  Write to file
    +        fwrite($fileHandle, $pdf->Output('', 'S'));
    +
    +        parent::restoreStateAfterSave($fileHandle);
    +    }
    +
    +    /**
    +     * Convert inches to mm.
    +     *
    +     * @param float $inches
    +     *
    +     * @return float
    +     */
    +    private function inchesToMm($inches)
    +    {
    +        return $inches * 25.4;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf/Tcpdf.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf/Tcpdf.php
    new file mode 100644
    index 00000000000..8a97b8fed5d
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Pdf/Tcpdf.php
    @@ -0,0 +1,98 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Pdf;
    +
    +use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
    +use PhpOffice\PhpSpreadsheet\Writer\Pdf;
    +
    +class Tcpdf extends Pdf
    +{
    +    /**
    +     * Gets the implementation of external PDF library that should be used.
    +     *
    +     * @param string $orientation Page orientation
    +     * @param string $unit Unit measure
    +     * @param string $paperSize Paper size
    +     *
    +     * @return \TCPDF implementation
    +     */
    +    protected function createExternalWriterInstance($orientation, $unit, $paperSize)
    +    {
    +        return new \TCPDF($orientation, $unit, $paperSize);
    +    }
    +
    +    /**
    +     * Save Spreadsheet to file.
    +     *
    +     * @param string $pFilename Name of the file to save as
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     */
    +    public function save($pFilename)
    +    {
    +        $fileHandle = parent::prepareForSave($pFilename);
    +
    +        //  Default PDF paper size
    +        $paperSize = 'LETTER'; //    Letter    (8.5 in. by 11 in.)
    +
    +        //  Check for paper size and page orientation
    +        if ($this->getSheetIndex() === null) {
    +            $orientation = ($this->spreadsheet->getSheet(0)->getPageSetup()->getOrientation()
    +                == PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P';
    +            $printPaperSize = $this->spreadsheet->getSheet(0)->getPageSetup()->getPaperSize();
    +            $printMargins = $this->spreadsheet->getSheet(0)->getPageMargins();
    +        } else {
    +            $orientation = ($this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation()
    +                == PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P';
    +            $printPaperSize = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize();
    +            $printMargins = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageMargins();
    +        }
    +
    +        //  Override Page Orientation
    +        if ($this->getOrientation() !== null) {
    +            $orientation = ($this->getOrientation() == PageSetup::ORIENTATION_LANDSCAPE)
    +                ? 'L'
    +                : 'P';
    +        }
    +        //  Override Paper Size
    +        if ($this->getPaperSize() !== null) {
    +            $printPaperSize = $this->getPaperSize();
    +        }
    +
    +        if (isset(self::$paperSizes[$printPaperSize])) {
    +            $paperSize = self::$paperSizes[$printPaperSize];
    +        }
    +
    +        //  Create PDF
    +        $pdf = $this->createExternalWriterInstance($orientation, 'pt', $paperSize);
    +        $pdf->setFontSubsetting(false);
    +        //    Set margins, converting inches to points (using 72 dpi)
    +        $pdf->SetMargins($printMargins->getLeft() * 72, $printMargins->getTop() * 72, $printMargins->getRight() * 72);
    +        $pdf->SetAutoPageBreak(true, $printMargins->getBottom() * 72);
    +
    +        $pdf->setPrintHeader(false);
    +        $pdf->setPrintFooter(false);
    +
    +        $pdf->AddPage();
    +
    +        //  Set the appropriate font
    +        $pdf->SetFont($this->getFont());
    +        $pdf->writeHTML(
    +            $this->generateHTMLHeader(false) .
    +            $this->generateSheetData() .
    +            $this->generateHTMLFooter()
    +        );
    +
    +        //  Document info
    +        $pdf->SetTitle($this->spreadsheet->getProperties()->getTitle());
    +        $pdf->SetAuthor($this->spreadsheet->getProperties()->getCreator());
    +        $pdf->SetSubject($this->spreadsheet->getProperties()->getSubject());
    +        $pdf->SetKeywords($this->spreadsheet->getProperties()->getKeywords());
    +        $pdf->SetCreator($this->spreadsheet->getProperties()->getCreator());
    +
    +        //  Write to file
    +        fwrite($fileHandle, $pdf->output($pFilename, 'S'));
    +
    +        parent::restoreStateAfterSave($fileHandle);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls.php
    new file mode 100644
    index 00000000000..6dff1342aed
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls.php
    @@ -0,0 +1,946 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Calculation\Functions;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\RichText\Run;
    +use PhpOffice\PhpSpreadsheet\Shared\Drawing as SharedDrawing;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip;
    +use PhpOffice\PhpSpreadsheet\Shared\OLE;
    +use PhpOffice\PhpSpreadsheet\Shared\OLE\PPS\File;
    +use PhpOffice\PhpSpreadsheet\Shared\OLE\PPS\Root;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Worksheet\BaseDrawing;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
    +use PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing;
    +use RuntimeException;
    +
    +class Xls extends BaseWriter
    +{
    +    /**
    +     * PhpSpreadsheet object.
    +     *
    +     * @var Spreadsheet
    +     */
    +    private $spreadsheet;
    +
    +    /**
    +     * Total number of shared strings in workbook.
    +     *
    +     * @var int
    +     */
    +    private $strTotal = 0;
    +
    +    /**
    +     * Number of unique shared strings in workbook.
    +     *
    +     * @var int
    +     */
    +    private $strUnique = 0;
    +
    +    /**
    +     * Array of unique shared strings in workbook.
    +     *
    +     * @var array
    +     */
    +    private $strTable = [];
    +
    +    /**
    +     * Color cache. Mapping between RGB value and color index.
    +     *
    +     * @var array
    +     */
    +    private $colors;
    +
    +    /**
    +     * Formula parser.
    +     *
    +     * @var \PhpOffice\PhpSpreadsheet\Writer\Xls\Parser
    +     */
    +    private $parser;
    +
    +    /**
    +     * Identifier clusters for drawings. Used in MSODRAWINGGROUP record.
    +     *
    +     * @var array
    +     */
    +    private $IDCLs;
    +
    +    /**
    +     * Basic OLE object summary information.
    +     *
    +     * @var array
    +     */
    +    private $summaryInformation;
    +
    +    /**
    +     * Extended OLE object document summary information.
    +     *
    +     * @var array
    +     */
    +    private $documentSummaryInformation;
    +
    +    /**
    +     * @var \PhpOffice\PhpSpreadsheet\Writer\Xls\Workbook
    +     */
    +    private $writerWorkbook;
    +
    +    /**
    +     * @var \PhpOffice\PhpSpreadsheet\Writer\Xls\Worksheet[]
    +     */
    +    private $writerWorksheets;
    +
    +    /**
    +     * Create a new Xls Writer.
    +     *
    +     * @param Spreadsheet $spreadsheet PhpSpreadsheet object
    +     */
    +    public function __construct(Spreadsheet $spreadsheet)
    +    {
    +        $this->spreadsheet = $spreadsheet;
    +
    +        $this->parser = new Xls\Parser();
    +    }
    +
    +    /**
    +     * Save Spreadsheet to file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     */
    +    public function save($pFilename)
    +    {
    +        // garbage collect
    +        $this->spreadsheet->garbageCollect();
    +
    +        $saveDebugLog = Calculation::getInstance($this->spreadsheet)->getDebugLog()->getWriteDebugLog();
    +        Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog(false);
    +        $saveDateReturnType = Functions::getReturnDateType();
    +        Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
    +
    +        // initialize colors array
    +        $this->colors = [];
    +
    +        // Initialise workbook writer
    +        $this->writerWorkbook = new Xls\Workbook($this->spreadsheet, $this->strTotal, $this->strUnique, $this->strTable, $this->colors, $this->parser);
    +
    +        // Initialise worksheet writers
    +        $countSheets = $this->spreadsheet->getSheetCount();
    +        for ($i = 0; $i < $countSheets; ++$i) {
    +            $this->writerWorksheets[$i] = new Xls\Worksheet($this->strTotal, $this->strUnique, $this->strTable, $this->colors, $this->parser, $this->preCalculateFormulas, $this->spreadsheet->getSheet($i));
    +        }
    +
    +        // build Escher objects. Escher objects for workbooks needs to be build before Escher object for workbook.
    +        $this->buildWorksheetEschers();
    +        $this->buildWorkbookEscher();
    +
    +        // add 15 identical cell style Xfs
    +        // for now, we use the first cellXf instead of cellStyleXf
    +        $cellXfCollection = $this->spreadsheet->getCellXfCollection();
    +        for ($i = 0; $i < 15; ++$i) {
    +            $this->writerWorkbook->addXfWriter($cellXfCollection[0], true);
    +        }
    +
    +        // add all the cell Xfs
    +        foreach ($this->spreadsheet->getCellXfCollection() as $style) {
    +            $this->writerWorkbook->addXfWriter($style, false);
    +        }
    +
    +        // add fonts from rich text eleemnts
    +        for ($i = 0; $i < $countSheets; ++$i) {
    +            foreach ($this->writerWorksheets[$i]->phpSheet->getCoordinates() as $coordinate) {
    +                $cell = $this->writerWorksheets[$i]->phpSheet->getCell($coordinate);
    +                $cVal = $cell->getValue();
    +                if ($cVal instanceof RichText) {
    +                    $elements = $cVal->getRichTextElements();
    +                    foreach ($elements as $element) {
    +                        if ($element instanceof Run) {
    +                            $font = $element->getFont();
    +                            $this->writerWorksheets[$i]->fontHashIndex[$font->getHashCode()] = $this->writerWorkbook->addFont($font);
    +                        }
    +                    }
    +                }
    +            }
    +        }
    +
    +        // initialize OLE file
    +        $workbookStreamName = 'Workbook';
    +        $OLE = new File(OLE::ascToUcs($workbookStreamName));
    +
    +        // Write the worksheet streams before the global workbook stream,
    +        // because the byte sizes of these are needed in the global workbook stream
    +        $worksheetSizes = [];
    +        for ($i = 0; $i < $countSheets; ++$i) {
    +            $this->writerWorksheets[$i]->close();
    +            $worksheetSizes[] = $this->writerWorksheets[$i]->_datasize;
    +        }
    +
    +        // add binary data for global workbook stream
    +        $OLE->append($this->writerWorkbook->writeWorkbook($worksheetSizes));
    +
    +        // add binary data for sheet streams
    +        for ($i = 0; $i < $countSheets; ++$i) {
    +            $OLE->append($this->writerWorksheets[$i]->getData());
    +        }
    +
    +        $this->documentSummaryInformation = $this->writeDocumentSummaryInformation();
    +        // initialize OLE Document Summary Information
    +        if (isset($this->documentSummaryInformation) && !empty($this->documentSummaryInformation)) {
    +            $OLE_DocumentSummaryInformation = new File(OLE::ascToUcs(chr(5) . 'DocumentSummaryInformation'));
    +            $OLE_DocumentSummaryInformation->append($this->documentSummaryInformation);
    +        }
    +
    +        $this->summaryInformation = $this->writeSummaryInformation();
    +        // initialize OLE Summary Information
    +        if (isset($this->summaryInformation) && !empty($this->summaryInformation)) {
    +            $OLE_SummaryInformation = new File(OLE::ascToUcs(chr(5) . 'SummaryInformation'));
    +            $OLE_SummaryInformation->append($this->summaryInformation);
    +        }
    +
    +        // define OLE Parts
    +        $arrRootData = [$OLE];
    +        // initialize OLE Properties file
    +        if (isset($OLE_SummaryInformation)) {
    +            $arrRootData[] = $OLE_SummaryInformation;
    +        }
    +        // initialize OLE Extended Properties file
    +        if (isset($OLE_DocumentSummaryInformation)) {
    +            $arrRootData[] = $OLE_DocumentSummaryInformation;
    +        }
    +
    +        $root = new Root(time(), time(), $arrRootData);
    +        // save the OLE file
    +        $root->save($pFilename);
    +
    +        Functions::setReturnDateType($saveDateReturnType);
    +        Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog($saveDebugLog);
    +    }
    +
    +    /**
    +     * Build the Worksheet Escher objects.
    +     */
    +    private function buildWorksheetEschers()
    +    {
    +        // 1-based index to BstoreContainer
    +        $blipIndex = 0;
    +        $lastReducedSpId = 0;
    +        $lastSpId = 0;
    +
    +        foreach ($this->spreadsheet->getAllsheets() as $sheet) {
    +            // sheet index
    +            $sheetIndex = $sheet->getParent()->getIndex($sheet);
    +
    +            $escher = null;
    +
    +            // check if there are any shapes for this sheet
    +            $filterRange = $sheet->getAutoFilter()->getRange();
    +            if (count($sheet->getDrawingCollection()) == 0 && empty($filterRange)) {
    +                continue;
    +            }
    +
    +            // create intermediate Escher object
    +            $escher = new Escher();
    +
    +            // dgContainer
    +            $dgContainer = new DgContainer();
    +
    +            // set the drawing index (we use sheet index + 1)
    +            $dgId = $sheet->getParent()->getIndex($sheet) + 1;
    +            $dgContainer->setDgId($dgId);
    +            $escher->setDgContainer($dgContainer);
    +
    +            // spgrContainer
    +            $spgrContainer = new SpgrContainer();
    +            $dgContainer->setSpgrContainer($spgrContainer);
    +
    +            // add one shape which is the group shape
    +            $spContainer = new SpContainer();
    +            $spContainer->setSpgr(true);
    +            $spContainer->setSpType(0);
    +            $spContainer->setSpId(($sheet->getParent()->getIndex($sheet) + 1) << 10);
    +            $spgrContainer->addChild($spContainer);
    +
    +            // add the shapes
    +
    +            $countShapes[$sheetIndex] = 0; // count number of shapes (minus group shape), in sheet
    +
    +            foreach ($sheet->getDrawingCollection() as $drawing) {
    +                ++$blipIndex;
    +
    +                ++$countShapes[$sheetIndex];
    +
    +                // add the shape
    +                $spContainer = new SpContainer();
    +
    +                // set the shape type
    +                $spContainer->setSpType(0x004B);
    +                // set the shape flag
    +                $spContainer->setSpFlag(0x02);
    +
    +                // set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index)
    +                $reducedSpId = $countShapes[$sheetIndex];
    +                $spId = $reducedSpId | ($sheet->getParent()->getIndex($sheet) + 1) << 10;
    +                $spContainer->setSpId($spId);
    +
    +                // keep track of last reducedSpId
    +                $lastReducedSpId = $reducedSpId;
    +
    +                // keep track of last spId
    +                $lastSpId = $spId;
    +
    +                // set the BLIP index
    +                $spContainer->setOPT(0x4104, $blipIndex);
    +
    +                // set coordinates and offsets, client anchor
    +                $coordinates = $drawing->getCoordinates();
    +                $offsetX = $drawing->getOffsetX();
    +                $offsetY = $drawing->getOffsetY();
    +                $width = $drawing->getWidth();
    +                $height = $drawing->getHeight();
    +
    +                $twoAnchor = \PhpOffice\PhpSpreadsheet\Shared\Xls::oneAnchor2twoAnchor($sheet, $coordinates, $offsetX, $offsetY, $width, $height);
    +
    +                $spContainer->setStartCoordinates($twoAnchor['startCoordinates']);
    +                $spContainer->setStartOffsetX($twoAnchor['startOffsetX']);
    +                $spContainer->setStartOffsetY($twoAnchor['startOffsetY']);
    +                $spContainer->setEndCoordinates($twoAnchor['endCoordinates']);
    +                $spContainer->setEndOffsetX($twoAnchor['endOffsetX']);
    +                $spContainer->setEndOffsetY($twoAnchor['endOffsetY']);
    +
    +                $spgrContainer->addChild($spContainer);
    +            }
    +
    +            // AutoFilters
    +            if (!empty($filterRange)) {
    +                $rangeBounds = Coordinate::rangeBoundaries($filterRange);
    +                $iNumColStart = $rangeBounds[0][0];
    +                $iNumColEnd = $rangeBounds[1][0];
    +
    +                $iInc = $iNumColStart;
    +                while ($iInc <= $iNumColEnd) {
    +                    ++$countShapes[$sheetIndex];
    +
    +                    // create an Drawing Object for the dropdown
    +                    $oDrawing = new BaseDrawing();
    +                    // get the coordinates of drawing
    +                    $cDrawing = Coordinate::stringFromColumnIndex($iInc) . $rangeBounds[0][1];
    +                    $oDrawing->setCoordinates($cDrawing);
    +                    $oDrawing->setWorksheet($sheet);
    +
    +                    // add the shape
    +                    $spContainer = new SpContainer();
    +                    // set the shape type
    +                    $spContainer->setSpType(0x00C9);
    +                    // set the shape flag
    +                    $spContainer->setSpFlag(0x01);
    +
    +                    // set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index)
    +                    $reducedSpId = $countShapes[$sheetIndex];
    +                    $spId = $reducedSpId | ($sheet->getParent()->getIndex($sheet) + 1) << 10;
    +                    $spContainer->setSpId($spId);
    +
    +                    // keep track of last reducedSpId
    +                    $lastReducedSpId = $reducedSpId;
    +
    +                    // keep track of last spId
    +                    $lastSpId = $spId;
    +
    +                    $spContainer->setOPT(0x007F, 0x01040104); // Protection -> fLockAgainstGrouping
    +                    $spContainer->setOPT(0x00BF, 0x00080008); // Text -> fFitTextToShape
    +                    $spContainer->setOPT(0x01BF, 0x00010000); // Fill Style -> fNoFillHitTest
    +                    $spContainer->setOPT(0x01FF, 0x00080000); // Line Style -> fNoLineDrawDash
    +                    $spContainer->setOPT(0x03BF, 0x000A0000); // Group Shape -> fPrint
    +
    +                    // set coordinates and offsets, client anchor
    +                    $endCoordinates = Coordinate::stringFromColumnIndex($iInc);
    +                    $endCoordinates .= $rangeBounds[0][1] + 1;
    +
    +                    $spContainer->setStartCoordinates($cDrawing);
    +                    $spContainer->setStartOffsetX(0);
    +                    $spContainer->setStartOffsetY(0);
    +                    $spContainer->setEndCoordinates($endCoordinates);
    +                    $spContainer->setEndOffsetX(0);
    +                    $spContainer->setEndOffsetY(0);
    +
    +                    $spgrContainer->addChild($spContainer);
    +                    ++$iInc;
    +                }
    +            }
    +
    +            // identifier clusters, used for workbook Escher object
    +            $this->IDCLs[$dgId] = $lastReducedSpId;
    +
    +            // set last shape index
    +            $dgContainer->setLastSpId($lastSpId);
    +
    +            // set the Escher object
    +            $this->writerWorksheets[$sheetIndex]->setEscher($escher);
    +        }
    +    }
    +
    +    /**
    +     * Build the Escher object corresponding to the MSODRAWINGGROUP record.
    +     */
    +    private function buildWorkbookEscher()
    +    {
    +        $escher = null;
    +
    +        // any drawings in this workbook?
    +        $found = false;
    +        foreach ($this->spreadsheet->getAllSheets() as $sheet) {
    +            if (count($sheet->getDrawingCollection()) > 0) {
    +                $found = true;
    +
    +                break;
    +            }
    +        }
    +
    +        // nothing to do if there are no drawings
    +        if (!$found) {
    +            return;
    +        }
    +
    +        // if we reach here, then there are drawings in the workbook
    +        $escher = new Escher();
    +
    +        // dggContainer
    +        $dggContainer = new DggContainer();
    +        $escher->setDggContainer($dggContainer);
    +
    +        // set IDCLs (identifier clusters)
    +        $dggContainer->setIDCLs($this->IDCLs);
    +
    +        // this loop is for determining maximum shape identifier of all drawing
    +        $spIdMax = 0;
    +        $totalCountShapes = 0;
    +        $countDrawings = 0;
    +
    +        foreach ($this->spreadsheet->getAllsheets() as $sheet) {
    +            $sheetCountShapes = 0; // count number of shapes (minus group shape), in sheet
    +
    +            if (count($sheet->getDrawingCollection()) > 0) {
    +                ++$countDrawings;
    +
    +                foreach ($sheet->getDrawingCollection() as $drawing) {
    +                    ++$sheetCountShapes;
    +                    ++$totalCountShapes;
    +
    +                    $spId = $sheetCountShapes | ($this->spreadsheet->getIndex($sheet) + 1) << 10;
    +                    $spIdMax = max($spId, $spIdMax);
    +                }
    +            }
    +        }
    +
    +        $dggContainer->setSpIdMax($spIdMax + 1);
    +        $dggContainer->setCDgSaved($countDrawings);
    +        $dggContainer->setCSpSaved($totalCountShapes + $countDrawings); // total number of shapes incl. one group shapes per drawing
    +
    +        // bstoreContainer
    +        $bstoreContainer = new BstoreContainer();
    +        $dggContainer->setBstoreContainer($bstoreContainer);
    +
    +        // the BSE's (all the images)
    +        foreach ($this->spreadsheet->getAllsheets() as $sheet) {
    +            foreach ($sheet->getDrawingCollection() as $drawing) {
    +                if (!extension_loaded('gd')) {
    +                    throw new RuntimeException('Saving images in xls requires gd extension');
    +                }
    +                if ($drawing instanceof Drawing) {
    +                    $filename = $drawing->getPath();
    +
    +                    list($imagesx, $imagesy, $imageFormat) = getimagesize($filename);
    +
    +                    switch ($imageFormat) {
    +                        case 1: // GIF, not supported by BIFF8, we convert to PNG
    +                            $blipType = BSE::BLIPTYPE_PNG;
    +                            ob_start();
    +                            imagepng(imagecreatefromgif($filename));
    +                            $blipData = ob_get_contents();
    +                            ob_end_clean();
    +
    +                            break;
    +                        case 2: // JPEG
    +                            $blipType = BSE::BLIPTYPE_JPEG;
    +                            $blipData = file_get_contents($filename);
    +
    +                            break;
    +                        case 3: // PNG
    +                            $blipType = BSE::BLIPTYPE_PNG;
    +                            $blipData = file_get_contents($filename);
    +
    +                            break;
    +                        case 6: // Windows DIB (BMP), we convert to PNG
    +                            $blipType = BSE::BLIPTYPE_PNG;
    +                            ob_start();
    +                            imagepng(SharedDrawing::imagecreatefrombmp($filename));
    +                            $blipData = ob_get_contents();
    +                            ob_end_clean();
    +
    +                            break;
    +                        default:
    +                            continue 2;
    +                    }
    +
    +                    $blip = new Blip();
    +                    $blip->setData($blipData);
    +
    +                    $BSE = new BSE();
    +                    $BSE->setBlipType($blipType);
    +                    $BSE->setBlip($blip);
    +
    +                    $bstoreContainer->addBSE($BSE);
    +                } elseif ($drawing instanceof MemoryDrawing) {
    +                    switch ($drawing->getRenderingFunction()) {
    +                        case MemoryDrawing::RENDERING_JPEG:
    +                            $blipType = BSE::BLIPTYPE_JPEG;
    +                            $renderingFunction = 'imagejpeg';
    +
    +                            break;
    +                        case MemoryDrawing::RENDERING_GIF:
    +                        case MemoryDrawing::RENDERING_PNG:
    +                        case MemoryDrawing::RENDERING_DEFAULT:
    +                            $blipType = BSE::BLIPTYPE_PNG;
    +                            $renderingFunction = 'imagepng';
    +
    +                            break;
    +                    }
    +
    +                    ob_start();
    +                    call_user_func($renderingFunction, $drawing->getImageResource());
    +                    $blipData = ob_get_contents();
    +                    ob_end_clean();
    +
    +                    $blip = new Blip();
    +                    $blip->setData($blipData);
    +
    +                    $BSE = new BSE();
    +                    $BSE->setBlipType($blipType);
    +                    $BSE->setBlip($blip);
    +
    +                    $bstoreContainer->addBSE($BSE);
    +                }
    +            }
    +        }
    +
    +        // Set the Escher object
    +        $this->writerWorkbook->setEscher($escher);
    +    }
    +
    +    /**
    +     * Build the OLE Part for DocumentSummary Information.
    +     *
    +     * @return string
    +     */
    +    private function writeDocumentSummaryInformation()
    +    {
    +        // offset: 0; size: 2; must be 0xFE 0xFF (UTF-16 LE byte order mark)
    +        $data = pack('v', 0xFFFE);
    +        // offset: 2; size: 2;
    +        $data .= pack('v', 0x0000);
    +        // offset: 4; size: 2; OS version
    +        $data .= pack('v', 0x0106);
    +        // offset: 6; size: 2; OS indicator
    +        $data .= pack('v', 0x0002);
    +        // offset: 8; size: 16
    +        $data .= pack('VVVV', 0x00, 0x00, 0x00, 0x00);
    +        // offset: 24; size: 4; section count
    +        $data .= pack('V', 0x0001);
    +
    +        // offset: 28; size: 16; first section's class id: 02 d5 cd d5 9c 2e 1b 10 93 97 08 00 2b 2c f9 ae
    +        $data .= pack('vvvvvvvv', 0xD502, 0xD5CD, 0x2E9C, 0x101B, 0x9793, 0x0008, 0x2C2B, 0xAEF9);
    +        // offset: 44; size: 4; offset of the start
    +        $data .= pack('V', 0x30);
    +
    +        // SECTION
    +        $dataSection = [];
    +        $dataSection_NumProps = 0;
    +        $dataSection_Summary = '';
    +        $dataSection_Content = '';
    +
    +        // GKPIDDSI_CODEPAGE: CodePage
    +        $dataSection[] = [
    +            'summary' => ['pack' => 'V', 'data' => 0x01],
    +            'offset' => ['pack' => 'V'],
    +            'type' => ['pack' => 'V', 'data' => 0x02], // 2 byte signed integer
    +            'data' => ['data' => 1252],
    +        ];
    +        ++$dataSection_NumProps;
    +
    +        // GKPIDDSI_CATEGORY : Category
    +        if ($this->spreadsheet->getProperties()->getCategory()) {
    +            $dataProp = $this->spreadsheet->getProperties()->getCategory();
    +            $dataSection[] = [
    +                'summary' => ['pack' => 'V', 'data' => 0x02],
    +                'offset' => ['pack' => 'V'],
    +                'type' => ['pack' => 'V', 'data' => 0x1E],
    +                'data' => ['data' => $dataProp, 'length' => strlen($dataProp)],
    +            ];
    +            ++$dataSection_NumProps;
    +        }
    +        // GKPIDDSI_VERSION :Version of the application that wrote the property storage
    +        $dataSection[] = [
    +            'summary' => ['pack' => 'V', 'data' => 0x17],
    +            'offset' => ['pack' => 'V'],
    +            'type' => ['pack' => 'V', 'data' => 0x03],
    +            'data' => ['pack' => 'V', 'data' => 0x000C0000],
    +        ];
    +        ++$dataSection_NumProps;
    +        // GKPIDDSI_SCALE : FALSE
    +        $dataSection[] = [
    +            'summary' => ['pack' => 'V', 'data' => 0x0B],
    +            'offset' => ['pack' => 'V'],
    +            'type' => ['pack' => 'V', 'data' => 0x0B],
    +            'data' => ['data' => false],
    +        ];
    +        ++$dataSection_NumProps;
    +        // GKPIDDSI_LINKSDIRTY : True if any of the values for the linked properties have changed outside of the application
    +        $dataSection[] = [
    +            'summary' => ['pack' => 'V', 'data' => 0x10],
    +            'offset' => ['pack' => 'V'],
    +            'type' => ['pack' => 'V', 'data' => 0x0B],
    +            'data' => ['data' => false],
    +        ];
    +        ++$dataSection_NumProps;
    +        // GKPIDDSI_SHAREDOC : FALSE
    +        $dataSection[] = [
    +            'summary' => ['pack' => 'V', 'data' => 0x13],
    +            'offset' => ['pack' => 'V'],
    +            'type' => ['pack' => 'V', 'data' => 0x0B],
    +            'data' => ['data' => false],
    +        ];
    +        ++$dataSection_NumProps;
    +        // GKPIDDSI_HYPERLINKSCHANGED : True if any of the values for the _PID_LINKS (hyperlink text) have changed outside of the application
    +        $dataSection[] = [
    +            'summary' => ['pack' => 'V', 'data' => 0x16],
    +            'offset' => ['pack' => 'V'],
    +            'type' => ['pack' => 'V', 'data' => 0x0B],
    +            'data' => ['data' => false],
    +        ];
    +        ++$dataSection_NumProps;
    +
    +        // GKPIDDSI_DOCSPARTS
    +        // MS-OSHARED p75 (2.3.3.2.2.1)
    +        // Structure is VtVecUnalignedLpstrValue (2.3.3.1.9)
    +        // cElements
    +        $dataProp = pack('v', 0x0001);
    +        $dataProp .= pack('v', 0x0000);
    +        // array of UnalignedLpstr
    +        // cch
    +        $dataProp .= pack('v', 0x000A);
    +        $dataProp .= pack('v', 0x0000);
    +        // value
    +        $dataProp .= 'Worksheet' . chr(0);
    +
    +        $dataSection[] = [
    +            'summary' => ['pack' => 'V', 'data' => 0x0D],
    +            'offset' => ['pack' => 'V'],
    +            'type' => ['pack' => 'V', 'data' => 0x101E],
    +            'data' => ['data' => $dataProp, 'length' => strlen($dataProp)],
    +        ];
    +        ++$dataSection_NumProps;
    +
    +        // GKPIDDSI_HEADINGPAIR
    +        // VtVecHeadingPairValue
    +        // cElements
    +        $dataProp = pack('v', 0x0002);
    +        $dataProp .= pack('v', 0x0000);
    +        // Array of vtHeadingPair
    +        // vtUnalignedString - headingString
    +        // stringType
    +        $dataProp .= pack('v', 0x001E);
    +        // padding
    +        $dataProp .= pack('v', 0x0000);
    +        // UnalignedLpstr
    +        // cch
    +        $dataProp .= pack('v', 0x0013);
    +        $dataProp .= pack('v', 0x0000);
    +        // value
    +        $dataProp .= 'Feuilles de calcul';
    +        // vtUnalignedString - headingParts
    +        // wType : 0x0003 = 32 bit signed integer
    +        $dataProp .= pack('v', 0x0300);
    +        // padding
    +        $dataProp .= pack('v', 0x0000);
    +        // value
    +        $dataProp .= pack('v', 0x0100);
    +        $dataProp .= pack('v', 0x0000);
    +        $dataProp .= pack('v', 0x0000);
    +        $dataProp .= pack('v', 0x0000);
    +
    +        $dataSection[] = [
    +            'summary' => ['pack' => 'V', 'data' => 0x0C],
    +            'offset' => ['pack' => 'V'],
    +            'type' => ['pack' => 'V', 'data' => 0x100C],
    +            'data' => ['data' => $dataProp, 'length' => strlen($dataProp)],
    +        ];
    +        ++$dataSection_NumProps;
    +
    +        //         4     Section Length
    +        //        4     Property count
    +        //        8 * $dataSection_NumProps (8 =  ID (4) + OffSet(4))
    +        $dataSection_Content_Offset = 8 + $dataSection_NumProps * 8;
    +        foreach ($dataSection as $dataProp) {
    +            // Summary
    +            $dataSection_Summary .= pack($dataProp['summary']['pack'], $dataProp['summary']['data']);
    +            // Offset
    +            $dataSection_Summary .= pack($dataProp['offset']['pack'], $dataSection_Content_Offset);
    +            // DataType
    +            $dataSection_Content .= pack($dataProp['type']['pack'], $dataProp['type']['data']);
    +            // Data
    +            if ($dataProp['type']['data'] == 0x02) { // 2 byte signed integer
    +                $dataSection_Content .= pack('V', $dataProp['data']['data']);
    +
    +                $dataSection_Content_Offset += 4 + 4;
    +            } elseif ($dataProp['type']['data'] == 0x03) { // 4 byte signed integer
    +                $dataSection_Content .= pack('V', $dataProp['data']['data']);
    +
    +                $dataSection_Content_Offset += 4 + 4;
    +            } elseif ($dataProp['type']['data'] == 0x0B) { // Boolean
    +                if ($dataProp['data']['data'] == false) {
    +                    $dataSection_Content .= pack('V', 0x0000);
    +                } else {
    +                    $dataSection_Content .= pack('V', 0x0001);
    +                }
    +                $dataSection_Content_Offset += 4 + 4;
    +            } elseif ($dataProp['type']['data'] == 0x1E) { // null-terminated string prepended by dword string length
    +                // Null-terminated string
    +                $dataProp['data']['data'] .= chr(0);
    +                $dataProp['data']['length'] += 1;
    +                // Complete the string with null string for being a %4
    +                $dataProp['data']['length'] = $dataProp['data']['length'] + ((4 - $dataProp['data']['length'] % 4) == 4 ? 0 : (4 - $dataProp['data']['length'] % 4));
    +                $dataProp['data']['data'] = str_pad($dataProp['data']['data'], $dataProp['data']['length'], chr(0), STR_PAD_RIGHT);
    +
    +                $dataSection_Content .= pack('V', $dataProp['data']['length']);
    +                $dataSection_Content .= $dataProp['data']['data'];
    +
    +                $dataSection_Content_Offset += 4 + 4 + strlen($dataProp['data']['data']);
    +            } elseif ($dataProp['type']['data'] == 0x40) { // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601)
    +                $dataSection_Content .= $dataProp['data']['data'];
    +
    +                $dataSection_Content_Offset += 4 + 8;
    +            } else {
    +                // Data Type Not Used at the moment
    +                $dataSection_Content .= $dataProp['data']['data'];
    +
    +                $dataSection_Content_Offset += 4 + $dataProp['data']['length'];
    +            }
    +        }
    +        // Now $dataSection_Content_Offset contains the size of the content
    +
    +        // section header
    +        // offset: $secOffset; size: 4; section length
    +        //         + x  Size of the content (summary + content)
    +        $data .= pack('V', $dataSection_Content_Offset);
    +        // offset: $secOffset+4; size: 4; property count
    +        $data .= pack('V', $dataSection_NumProps);
    +        // Section Summary
    +        $data .= $dataSection_Summary;
    +        // Section Content
    +        $data .= $dataSection_Content;
    +
    +        return $data;
    +    }
    +
    +    /**
    +     * Build the OLE Part for Summary Information.
    +     *
    +     * @return string
    +     */
    +    private function writeSummaryInformation()
    +    {
    +        // offset: 0; size: 2; must be 0xFE 0xFF (UTF-16 LE byte order mark)
    +        $data = pack('v', 0xFFFE);
    +        // offset: 2; size: 2;
    +        $data .= pack('v', 0x0000);
    +        // offset: 4; size: 2; OS version
    +        $data .= pack('v', 0x0106);
    +        // offset: 6; size: 2; OS indicator
    +        $data .= pack('v', 0x0002);
    +        // offset: 8; size: 16
    +        $data .= pack('VVVV', 0x00, 0x00, 0x00, 0x00);
    +        // offset: 24; size: 4; section count
    +        $data .= pack('V', 0x0001);
    +
    +        // offset: 28; size: 16; first section's class id: e0 85 9f f2 f9 4f 68 10 ab 91 08 00 2b 27 b3 d9
    +        $data .= pack('vvvvvvvv', 0x85E0, 0xF29F, 0x4FF9, 0x1068, 0x91AB, 0x0008, 0x272B, 0xD9B3);
    +        // offset: 44; size: 4; offset of the start
    +        $data .= pack('V', 0x30);
    +
    +        // SECTION
    +        $dataSection = [];
    +        $dataSection_NumProps = 0;
    +        $dataSection_Summary = '';
    +        $dataSection_Content = '';
    +
    +        // CodePage : CP-1252
    +        $dataSection[] = [
    +            'summary' => ['pack' => 'V', 'data' => 0x01],
    +            'offset' => ['pack' => 'V'],
    +            'type' => ['pack' => 'V', 'data' => 0x02], // 2 byte signed integer
    +            'data' => ['data' => 1252],
    +        ];
    +        ++$dataSection_NumProps;
    +
    +        //    Title
    +        if ($this->spreadsheet->getProperties()->getTitle()) {
    +            $dataProp = $this->spreadsheet->getProperties()->getTitle();
    +            $dataSection[] = [
    +                'summary' => ['pack' => 'V', 'data' => 0x02],
    +                'offset' => ['pack' => 'V'],
    +                'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length
    +                'data' => ['data' => $dataProp, 'length' => strlen($dataProp)],
    +            ];
    +            ++$dataSection_NumProps;
    +        }
    +        //    Subject
    +        if ($this->spreadsheet->getProperties()->getSubject()) {
    +            $dataProp = $this->spreadsheet->getProperties()->getSubject();
    +            $dataSection[] = [
    +                'summary' => ['pack' => 'V', 'data' => 0x03],
    +                'offset' => ['pack' => 'V'],
    +                'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length
    +                'data' => ['data' => $dataProp, 'length' => strlen($dataProp)],
    +            ];
    +            ++$dataSection_NumProps;
    +        }
    +        //    Author (Creator)
    +        if ($this->spreadsheet->getProperties()->getCreator()) {
    +            $dataProp = $this->spreadsheet->getProperties()->getCreator();
    +            $dataSection[] = [
    +                'summary' => ['pack' => 'V', 'data' => 0x04],
    +                'offset' => ['pack' => 'V'],
    +                'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length
    +                'data' => ['data' => $dataProp, 'length' => strlen($dataProp)],
    +            ];
    +            ++$dataSection_NumProps;
    +        }
    +        //    Keywords
    +        if ($this->spreadsheet->getProperties()->getKeywords()) {
    +            $dataProp = $this->spreadsheet->getProperties()->getKeywords();
    +            $dataSection[] = [
    +                'summary' => ['pack' => 'V', 'data' => 0x05],
    +                'offset' => ['pack' => 'V'],
    +                'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length
    +                'data' => ['data' => $dataProp, 'length' => strlen($dataProp)],
    +            ];
    +            ++$dataSection_NumProps;
    +        }
    +        //    Comments (Description)
    +        if ($this->spreadsheet->getProperties()->getDescription()) {
    +            $dataProp = $this->spreadsheet->getProperties()->getDescription();
    +            $dataSection[] = [
    +                'summary' => ['pack' => 'V', 'data' => 0x06],
    +                'offset' => ['pack' => 'V'],
    +                'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length
    +                'data' => ['data' => $dataProp, 'length' => strlen($dataProp)],
    +            ];
    +            ++$dataSection_NumProps;
    +        }
    +        //    Last Saved By (LastModifiedBy)
    +        if ($this->spreadsheet->getProperties()->getLastModifiedBy()) {
    +            $dataProp = $this->spreadsheet->getProperties()->getLastModifiedBy();
    +            $dataSection[] = [
    +                'summary' => ['pack' => 'V', 'data' => 0x08],
    +                'offset' => ['pack' => 'V'],
    +                'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length
    +                'data' => ['data' => $dataProp, 'length' => strlen($dataProp)],
    +            ];
    +            ++$dataSection_NumProps;
    +        }
    +        //    Created Date/Time
    +        if ($this->spreadsheet->getProperties()->getCreated()) {
    +            $dataProp = $this->spreadsheet->getProperties()->getCreated();
    +            $dataSection[] = [
    +                'summary' => ['pack' => 'V', 'data' => 0x0C],
    +                'offset' => ['pack' => 'V'],
    +                'type' => ['pack' => 'V', 'data' => 0x40], // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601)
    +                'data' => ['data' => OLE::localDateToOLE($dataProp)],
    +            ];
    +            ++$dataSection_NumProps;
    +        }
    +        //    Modified Date/Time
    +        if ($this->spreadsheet->getProperties()->getModified()) {
    +            $dataProp = $this->spreadsheet->getProperties()->getModified();
    +            $dataSection[] = [
    +                'summary' => ['pack' => 'V', 'data' => 0x0D],
    +                'offset' => ['pack' => 'V'],
    +                'type' => ['pack' => 'V', 'data' => 0x40], // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601)
    +                'data' => ['data' => OLE::localDateToOLE($dataProp)],
    +            ];
    +            ++$dataSection_NumProps;
    +        }
    +        //    Security
    +        $dataSection[] = [
    +            'summary' => ['pack' => 'V', 'data' => 0x13],
    +            'offset' => ['pack' => 'V'],
    +            'type' => ['pack' => 'V', 'data' => 0x03], // 4 byte signed integer
    +            'data' => ['data' => 0x00],
    +        ];
    +        ++$dataSection_NumProps;
    +
    +        //         4     Section Length
    +        //        4     Property count
    +        //        8 * $dataSection_NumProps (8 =  ID (4) + OffSet(4))
    +        $dataSection_Content_Offset = 8 + $dataSection_NumProps * 8;
    +        foreach ($dataSection as $dataProp) {
    +            // Summary
    +            $dataSection_Summary .= pack($dataProp['summary']['pack'], $dataProp['summary']['data']);
    +            // Offset
    +            $dataSection_Summary .= pack($dataProp['offset']['pack'], $dataSection_Content_Offset);
    +            // DataType
    +            $dataSection_Content .= pack($dataProp['type']['pack'], $dataProp['type']['data']);
    +            // Data
    +            if ($dataProp['type']['data'] == 0x02) { // 2 byte signed integer
    +                $dataSection_Content .= pack('V', $dataProp['data']['data']);
    +
    +                $dataSection_Content_Offset += 4 + 4;
    +            } elseif ($dataProp['type']['data'] == 0x03) { // 4 byte signed integer
    +                $dataSection_Content .= pack('V', $dataProp['data']['data']);
    +
    +                $dataSection_Content_Offset += 4 + 4;
    +            } elseif ($dataProp['type']['data'] == 0x1E) { // null-terminated string prepended by dword string length
    +                // Null-terminated string
    +                $dataProp['data']['data'] .= chr(0);
    +                $dataProp['data']['length'] += 1;
    +                // Complete the string with null string for being a %4
    +                $dataProp['data']['length'] = $dataProp['data']['length'] + ((4 - $dataProp['data']['length'] % 4) == 4 ? 0 : (4 - $dataProp['data']['length'] % 4));
    +                $dataProp['data']['data'] = str_pad($dataProp['data']['data'], $dataProp['data']['length'], chr(0), STR_PAD_RIGHT);
    +
    +                $dataSection_Content .= pack('V', $dataProp['data']['length']);
    +                $dataSection_Content .= $dataProp['data']['data'];
    +
    +                $dataSection_Content_Offset += 4 + 4 + strlen($dataProp['data']['data']);
    +            } elseif ($dataProp['type']['data'] == 0x40) { // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601)
    +                $dataSection_Content .= $dataProp['data']['data'];
    +
    +                $dataSection_Content_Offset += 4 + 8;
    +            }
    +            // Data Type Not Used at the moment
    +        }
    +        // Now $dataSection_Content_Offset contains the size of the content
    +
    +        // section header
    +        // offset: $secOffset; size: 4; section length
    +        //         + x  Size of the content (summary + content)
    +        $data .= pack('V', $dataSection_Content_Offset);
    +        // offset: $secOffset+4; size: 4; property count
    +        $data .= pack('V', $dataSection_NumProps);
    +        // Section Summary
    +        $data .= $dataSection_Summary;
    +        // Section Content
    +        $data .= $dataSection_Content;
    +
    +        return $data;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/BIFFwriter.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/BIFFwriter.php
    new file mode 100644
    index 00000000000..3b2eb9af273
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/BIFFwriter.php
    @@ -0,0 +1,224 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xls;
    +
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +// Original file header of PEAR::Spreadsheet_Excel_Writer_BIFFwriter (used as the base for this class):
    +// -----------------------------------------------------------------------------------------
    +// *  Module written/ported by Xavier Noguer <xnoguer@rezebra.com>
    +// *
    +// *  The majority of this is _NOT_ my code.  I simply ported it from the
    +// *  PERL Spreadsheet::WriteExcel module.
    +// *
    +// *  The author of the Spreadsheet::WriteExcel module is John McNamara
    +// *  <jmcnamara@cpan.org>
    +// *
    +// *  I _DO_ maintain this code, and John McNamara has nothing to do with the
    +// *  porting of this code to PHP.  Any questions directly related to this
    +// *  class library should be directed to me.
    +// *
    +// *  License Information:
    +// *
    +// *    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets
    +// *    Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
    +// *
    +// *    This library is free software; you can redistribute it and/or
    +// *    modify it under the terms of the GNU Lesser General Public
    +// *    License as published by the Free Software Foundation; either
    +// *    version 2.1 of the License, or (at your option) any later version.
    +// *
    +// *    This library is distributed in the hope that it will be useful,
    +// *    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    +// *    Lesser General Public License for more details.
    +// *
    +// *    You should have received a copy of the GNU Lesser General Public
    +// *    License along with this library; if not, write to the Free Software
    +// *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +// */
    +class BIFFwriter
    +{
    +    /**
    +     * The byte order of this architecture. 0 => little endian, 1 => big endian.
    +     *
    +     * @var int
    +     */
    +    private static $byteOrder;
    +
    +    /**
    +     * The string containing the data of the BIFF stream.
    +     *
    +     * @var string
    +     */
    +    public $_data;
    +
    +    /**
    +     * The size of the data in bytes. Should be the same as strlen($this->_data).
    +     *
    +     * @var int
    +     */
    +    public $_datasize;
    +
    +    /**
    +     * The maximum length for a BIFF record (excluding record header and length field). See addContinue().
    +     *
    +     * @var int
    +     *
    +     * @see addContinue()
    +     */
    +    private $limit = 8224;
    +
    +    /**
    +     * Constructor.
    +     */
    +    public function __construct()
    +    {
    +        $this->_data = '';
    +        $this->_datasize = 0;
    +    }
    +
    +    /**
    +     * Determine the byte order and store it as class data to avoid
    +     * recalculating it for each call to new().
    +     *
    +     * @return int
    +     */
    +    public static function getByteOrder()
    +    {
    +        if (!isset(self::$byteOrder)) {
    +            // Check if "pack" gives the required IEEE 64bit float
    +            $teststr = pack('d', 1.2345);
    +            $number = pack('C8', 0x8D, 0x97, 0x6E, 0x12, 0x83, 0xC0, 0xF3, 0x3F);
    +            if ($number == $teststr) {
    +                $byte_order = 0; // Little Endian
    +            } elseif ($number == strrev($teststr)) {
    +                $byte_order = 1; // Big Endian
    +            } else {
    +                // Give up. I'll fix this in a later version.
    +                throw new WriterException('Required floating point format not supported on this platform.');
    +            }
    +            self::$byteOrder = $byte_order;
    +        }
    +
    +        return self::$byteOrder;
    +    }
    +
    +    /**
    +     * General storage function.
    +     *
    +     * @param string $data binary data to append
    +     */
    +    protected function append($data)
    +    {
    +        if (strlen($data) - 4 > $this->limit) {
    +            $data = $this->addContinue($data);
    +        }
    +        $this->_data .= $data;
    +        $this->_datasize += strlen($data);
    +    }
    +
    +    /**
    +     * General storage function like append, but returns string instead of modifying $this->_data.
    +     *
    +     * @param string $data binary data to write
    +     *
    +     * @return string
    +     */
    +    public function writeData($data)
    +    {
    +        if (strlen($data) - 4 > $this->limit) {
    +            $data = $this->addContinue($data);
    +        }
    +        $this->_datasize += strlen($data);
    +
    +        return $data;
    +    }
    +
    +    /**
    +     * Writes Excel BOF record to indicate the beginning of a stream or
    +     * sub-stream in the BIFF file.
    +     *
    +     * @param int $type type of BIFF file to write: 0x0005 Workbook,
    +     *                       0x0010 Worksheet
    +     */
    +    protected function storeBof($type)
    +    {
    +        $record = 0x0809; // Record identifier    (BIFF5-BIFF8)
    +        $length = 0x0010;
    +
    +        // by inspection of real files, MS Office Excel 2007 writes the following
    +        $unknown = pack('VV', 0x000100D1, 0x00000406);
    +
    +        $build = 0x0DBB; //    Excel 97
    +        $year = 0x07CC; //    Excel 97
    +
    +        $version = 0x0600; //    BIFF8
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvvv', $version, $type, $build, $year);
    +        $this->append($header . $data . $unknown);
    +    }
    +
    +    /**
    +     * Writes Excel EOF record to indicate the end of a BIFF stream.
    +     */
    +    protected function storeEof()
    +    {
    +        $record = 0x000A; // Record identifier
    +        $length = 0x0000; // Number of bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +        $this->append($header);
    +    }
    +
    +    /**
    +     * Writes Excel EOF record to indicate the end of a BIFF stream.
    +     */
    +    public function writeEof()
    +    {
    +        $record = 0x000A; // Record identifier
    +        $length = 0x0000; // Number of bytes to follow
    +        $header = pack('vv', $record, $length);
    +
    +        return $this->writeData($header);
    +    }
    +
    +    /**
    +     * Excel limits the size of BIFF records. In Excel 5 the limit is 2084 bytes. In
    +     * Excel 97 the limit is 8228 bytes. Records that are longer than these limits
    +     * must be split up into CONTINUE blocks.
    +     *
    +     * This function takes a long BIFF record and inserts CONTINUE records as
    +     * necessary.
    +     *
    +     * @param string $data The original binary data to be written
    +     *
    +     * @return string A very convenient string of continue blocks
    +     */
    +    private function addContinue($data)
    +    {
    +        $limit = $this->limit;
    +        $record = 0x003C; // Record identifier
    +
    +        // The first 2080/8224 bytes remain intact. However, we have to change
    +        // the length field of the record.
    +        $tmp = substr($data, 0, 2) . pack('v', $limit) . substr($data, 4, $limit);
    +
    +        $header = pack('vv', $record, $limit); // Headers for continue records
    +
    +        // Retrieve chunks of 2080/8224 bytes +4 for the header.
    +        $data_length = strlen($data);
    +        for ($i = $limit + 4; $i < ($data_length - $limit); $i += $limit) {
    +            $tmp .= $header;
    +            $tmp .= substr($data, $i, $limit);
    +        }
    +
    +        // Retrieve the last chunk of data
    +        $header = pack('vv', $record, strlen($data) - $i);
    +        $tmp .= $header;
    +        $tmp .= substr($data, $i);
    +
    +        return $tmp;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Escher.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Escher.php
    new file mode 100644
    index 00000000000..1dcef8072fc
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Escher.php
    @@ -0,0 +1,510 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xls;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE;
    +use PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip;
    +
    +class Escher
    +{
    +    /**
    +     * The object we are writing.
    +     */
    +    private $object;
    +
    +    /**
    +     * The written binary data.
    +     */
    +    private $data;
    +
    +    /**
    +     * Shape offsets. Positions in binary stream where a new shape record begins.
    +     *
    +     * @var array
    +     */
    +    private $spOffsets;
    +
    +    /**
    +     * Shape types.
    +     *
    +     * @var array
    +     */
    +    private $spTypes;
    +
    +    /**
    +     * Constructor.
    +     *
    +     * @param mixed $object
    +     */
    +    public function __construct($object)
    +    {
    +        $this->object = $object;
    +    }
    +
    +    /**
    +     * Process the object to be written.
    +     *
    +     * @return string
    +     */
    +    public function close()
    +    {
    +        // initialize
    +        $this->data = '';
    +
    +        switch (get_class($this->object)) {
    +            case \PhpOffice\PhpSpreadsheet\Shared\Escher::class:
    +                if ($dggContainer = $this->object->getDggContainer()) {
    +                    $writer = new self($dggContainer);
    +                    $this->data = $writer->close();
    +                } elseif ($dgContainer = $this->object->getDgContainer()) {
    +                    $writer = new self($dgContainer);
    +                    $this->data = $writer->close();
    +                    $this->spOffsets = $writer->getSpOffsets();
    +                    $this->spTypes = $writer->getSpTypes();
    +                }
    +
    +                break;
    +            case DggContainer::class:
    +                // this is a container record
    +
    +                // initialize
    +                $innerData = '';
    +
    +                // write the dgg
    +                $recVer = 0x0;
    +                $recInstance = 0x0000;
    +                $recType = 0xF006;
    +
    +                $recVerInstance = $recVer;
    +                $recVerInstance |= $recInstance << 4;
    +
    +                // dgg data
    +                $dggData =
    +                    pack(
    +                        'VVVV',
    +                        $this->object->getSpIdMax(), // maximum shape identifier increased by one
    +                        $this->object->getCDgSaved() + 1, // number of file identifier clusters increased by one
    +                        $this->object->getCSpSaved(),
    +                        $this->object->getCDgSaved() // count total number of drawings saved
    +                    );
    +
    +                // add file identifier clusters (one per drawing)
    +                $IDCLs = $this->object->getIDCLs();
    +
    +                foreach ($IDCLs as $dgId => $maxReducedSpId) {
    +                    $dggData .= pack('VV', $dgId, $maxReducedSpId + 1);
    +                }
    +
    +                $header = pack('vvV', $recVerInstance, $recType, strlen($dggData));
    +                $innerData .= $header . $dggData;
    +
    +                // write the bstoreContainer
    +                if ($bstoreContainer = $this->object->getBstoreContainer()) {
    +                    $writer = new self($bstoreContainer);
    +                    $innerData .= $writer->close();
    +                }
    +
    +                // write the record
    +                $recVer = 0xF;
    +                $recInstance = 0x0000;
    +                $recType = 0xF000;
    +                $length = strlen($innerData);
    +
    +                $recVerInstance = $recVer;
    +                $recVerInstance |= $recInstance << 4;
    +
    +                $header = pack('vvV', $recVerInstance, $recType, $length);
    +
    +                $this->data = $header . $innerData;
    +
    +                break;
    +            case BstoreContainer::class:
    +                // this is a container record
    +
    +                // initialize
    +                $innerData = '';
    +
    +                // treat the inner data
    +                if ($BSECollection = $this->object->getBSECollection()) {
    +                    foreach ($BSECollection as $BSE) {
    +                        $writer = new self($BSE);
    +                        $innerData .= $writer->close();
    +                    }
    +                }
    +
    +                // write the record
    +                $recVer = 0xF;
    +                $recInstance = count($this->object->getBSECollection());
    +                $recType = 0xF001;
    +                $length = strlen($innerData);
    +
    +                $recVerInstance = $recVer;
    +                $recVerInstance |= $recInstance << 4;
    +
    +                $header = pack('vvV', $recVerInstance, $recType, $length);
    +
    +                $this->data = $header . $innerData;
    +
    +                break;
    +            case BSE::class:
    +                // this is a semi-container record
    +
    +                // initialize
    +                $innerData = '';
    +
    +                // here we treat the inner data
    +                if ($blip = $this->object->getBlip()) {
    +                    $writer = new self($blip);
    +                    $innerData .= $writer->close();
    +                }
    +
    +                // initialize
    +                $data = '';
    +
    +                $btWin32 = $this->object->getBlipType();
    +                $btMacOS = $this->object->getBlipType();
    +                $data .= pack('CC', $btWin32, $btMacOS);
    +
    +                $rgbUid = pack('VVVV', 0, 0, 0, 0); // todo
    +                $data .= $rgbUid;
    +
    +                $tag = 0;
    +                $size = strlen($innerData);
    +                $cRef = 1;
    +                $foDelay = 0; //todo
    +                $unused1 = 0x0;
    +                $cbName = 0x0;
    +                $unused2 = 0x0;
    +                $unused3 = 0x0;
    +                $data .= pack('vVVVCCCC', $tag, $size, $cRef, $foDelay, $unused1, $cbName, $unused2, $unused3);
    +
    +                $data .= $innerData;
    +
    +                // write the record
    +                $recVer = 0x2;
    +                $recInstance = $this->object->getBlipType();
    +                $recType = 0xF007;
    +                $length = strlen($data);
    +
    +                $recVerInstance = $recVer;
    +                $recVerInstance |= $recInstance << 4;
    +
    +                $header = pack('vvV', $recVerInstance, $recType, $length);
    +
    +                $this->data = $header;
    +
    +                $this->data .= $data;
    +
    +                break;
    +            case Blip::class:
    +                // this is an atom record
    +
    +                // write the record
    +                switch ($this->object->getParent()->getBlipType()) {
    +                    case BSE::BLIPTYPE_JPEG:
    +                        // initialize
    +                        $innerData = '';
    +
    +                        $rgbUid1 = pack('VVVV', 0, 0, 0, 0); // todo
    +                        $innerData .= $rgbUid1;
    +
    +                        $tag = 0xFF; // todo
    +                        $innerData .= pack('C', $tag);
    +
    +                        $innerData .= $this->object->getData();
    +
    +                        $recVer = 0x0;
    +                        $recInstance = 0x46A;
    +                        $recType = 0xF01D;
    +                        $length = strlen($innerData);
    +
    +                        $recVerInstance = $recVer;
    +                        $recVerInstance |= $recInstance << 4;
    +
    +                        $header = pack('vvV', $recVerInstance, $recType, $length);
    +
    +                        $this->data = $header;
    +
    +                        $this->data .= $innerData;
    +
    +                        break;
    +                    case BSE::BLIPTYPE_PNG:
    +                        // initialize
    +                        $innerData = '';
    +
    +                        $rgbUid1 = pack('VVVV', 0, 0, 0, 0); // todo
    +                        $innerData .= $rgbUid1;
    +
    +                        $tag = 0xFF; // todo
    +                        $innerData .= pack('C', $tag);
    +
    +                        $innerData .= $this->object->getData();
    +
    +                        $recVer = 0x0;
    +                        $recInstance = 0x6E0;
    +                        $recType = 0xF01E;
    +                        $length = strlen($innerData);
    +
    +                        $recVerInstance = $recVer;
    +                        $recVerInstance |= $recInstance << 4;
    +
    +                        $header = pack('vvV', $recVerInstance, $recType, $length);
    +
    +                        $this->data = $header;
    +
    +                        $this->data .= $innerData;
    +
    +                        break;
    +                }
    +
    +                break;
    +            case DgContainer::class:
    +                // this is a container record
    +
    +                // initialize
    +                $innerData = '';
    +
    +                // write the dg
    +                $recVer = 0x0;
    +                $recInstance = $this->object->getDgId();
    +                $recType = 0xF008;
    +                $length = 8;
    +
    +                $recVerInstance = $recVer;
    +                $recVerInstance |= $recInstance << 4;
    +
    +                $header = pack('vvV', $recVerInstance, $recType, $length);
    +
    +                // number of shapes in this drawing (including group shape)
    +                $countShapes = count($this->object->getSpgrContainer()->getChildren());
    +                $innerData .= $header . pack('VV', $countShapes, $this->object->getLastSpId());
    +
    +                // write the spgrContainer
    +                if ($spgrContainer = $this->object->getSpgrContainer()) {
    +                    $writer = new self($spgrContainer);
    +                    $innerData .= $writer->close();
    +
    +                    // get the shape offsets relative to the spgrContainer record
    +                    $spOffsets = $writer->getSpOffsets();
    +                    $spTypes = $writer->getSpTypes();
    +
    +                    // save the shape offsets relative to dgContainer
    +                    foreach ($spOffsets as &$spOffset) {
    +                        $spOffset += 24; // add length of dgContainer header data (8 bytes) plus dg data (16 bytes)
    +                    }
    +
    +                    $this->spOffsets = $spOffsets;
    +                    $this->spTypes = $spTypes;
    +                }
    +
    +                // write the record
    +                $recVer = 0xF;
    +                $recInstance = 0x0000;
    +                $recType = 0xF002;
    +                $length = strlen($innerData);
    +
    +                $recVerInstance = $recVer;
    +                $recVerInstance |= $recInstance << 4;
    +
    +                $header = pack('vvV', $recVerInstance, $recType, $length);
    +
    +                $this->data = $header . $innerData;
    +
    +                break;
    +            case SpgrContainer::class:
    +                // this is a container record
    +
    +                // initialize
    +                $innerData = '';
    +
    +                // initialize spape offsets
    +                $totalSize = 8;
    +                $spOffsets = [];
    +                $spTypes = [];
    +
    +                // treat the inner data
    +                foreach ($this->object->getChildren() as $spContainer) {
    +                    $writer = new self($spContainer);
    +                    $spData = $writer->close();
    +                    $innerData .= $spData;
    +
    +                    // save the shape offsets (where new shape records begin)
    +                    $totalSize += strlen($spData);
    +                    $spOffsets[] = $totalSize;
    +
    +                    $spTypes = array_merge($spTypes, $writer->getSpTypes());
    +                }
    +
    +                // write the record
    +                $recVer = 0xF;
    +                $recInstance = 0x0000;
    +                $recType = 0xF003;
    +                $length = strlen($innerData);
    +
    +                $recVerInstance = $recVer;
    +                $recVerInstance |= $recInstance << 4;
    +
    +                $header = pack('vvV', $recVerInstance, $recType, $length);
    +
    +                $this->data = $header . $innerData;
    +                $this->spOffsets = $spOffsets;
    +                $this->spTypes = $spTypes;
    +
    +                break;
    +            case SpContainer::class:
    +                // initialize
    +                $data = '';
    +
    +                // build the data
    +
    +                // write group shape record, if necessary?
    +                if ($this->object->getSpgr()) {
    +                    $recVer = 0x1;
    +                    $recInstance = 0x0000;
    +                    $recType = 0xF009;
    +                    $length = 0x00000010;
    +
    +                    $recVerInstance = $recVer;
    +                    $recVerInstance |= $recInstance << 4;
    +
    +                    $header = pack('vvV', $recVerInstance, $recType, $length);
    +
    +                    $data .= $header . pack('VVVV', 0, 0, 0, 0);
    +                }
    +                $this->spTypes[] = ($this->object->getSpType());
    +
    +                // write the shape record
    +                $recVer = 0x2;
    +                $recInstance = $this->object->getSpType(); // shape type
    +                $recType = 0xF00A;
    +                $length = 0x00000008;
    +
    +                $recVerInstance = $recVer;
    +                $recVerInstance |= $recInstance << 4;
    +
    +                $header = pack('vvV', $recVerInstance, $recType, $length);
    +
    +                $data .= $header . pack('VV', $this->object->getSpId(), $this->object->getSpgr() ? 0x0005 : 0x0A00);
    +
    +                // the options
    +                if ($this->object->getOPTCollection()) {
    +                    $optData = '';
    +
    +                    $recVer = 0x3;
    +                    $recInstance = count($this->object->getOPTCollection());
    +                    $recType = 0xF00B;
    +                    foreach ($this->object->getOPTCollection() as $property => $value) {
    +                        $optData .= pack('vV', $property, $value);
    +                    }
    +                    $length = strlen($optData);
    +
    +                    $recVerInstance = $recVer;
    +                    $recVerInstance |= $recInstance << 4;
    +
    +                    $header = pack('vvV', $recVerInstance, $recType, $length);
    +                    $data .= $header . $optData;
    +                }
    +
    +                // the client anchor
    +                if ($this->object->getStartCoordinates()) {
    +                    $clientAnchorData = '';
    +
    +                    $recVer = 0x0;
    +                    $recInstance = 0x0;
    +                    $recType = 0xF010;
    +
    +                    // start coordinates
    +                    list($column, $row) = Coordinate::coordinateFromString($this->object->getStartCoordinates());
    +                    $c1 = Coordinate::columnIndexFromString($column) - 1;
    +                    $r1 = $row - 1;
    +
    +                    // start offsetX
    +                    $startOffsetX = $this->object->getStartOffsetX();
    +
    +                    // start offsetY
    +                    $startOffsetY = $this->object->getStartOffsetY();
    +
    +                    // end coordinates
    +                    list($column, $row) = Coordinate::coordinateFromString($this->object->getEndCoordinates());
    +                    $c2 = Coordinate::columnIndexFromString($column) - 1;
    +                    $r2 = $row - 1;
    +
    +                    // end offsetX
    +                    $endOffsetX = $this->object->getEndOffsetX();
    +
    +                    // end offsetY
    +                    $endOffsetY = $this->object->getEndOffsetY();
    +
    +                    $clientAnchorData = pack('vvvvvvvvv', $this->object->getSpFlag(), $c1, $startOffsetX, $r1, $startOffsetY, $c2, $endOffsetX, $r2, $endOffsetY);
    +
    +                    $length = strlen($clientAnchorData);
    +
    +                    $recVerInstance = $recVer;
    +                    $recVerInstance |= $recInstance << 4;
    +
    +                    $header = pack('vvV', $recVerInstance, $recType, $length);
    +                    $data .= $header . $clientAnchorData;
    +                }
    +
    +                // the client data, just empty for now
    +                if (!$this->object->getSpgr()) {
    +                    $clientDataData = '';
    +
    +                    $recVer = 0x0;
    +                    $recInstance = 0x0;
    +                    $recType = 0xF011;
    +
    +                    $length = strlen($clientDataData);
    +
    +                    $recVerInstance = $recVer;
    +                    $recVerInstance |= $recInstance << 4;
    +
    +                    $header = pack('vvV', $recVerInstance, $recType, $length);
    +                    $data .= $header . $clientDataData;
    +                }
    +
    +                // write the record
    +                $recVer = 0xF;
    +                $recInstance = 0x0000;
    +                $recType = 0xF004;
    +                $length = strlen($data);
    +
    +                $recVerInstance = $recVer;
    +                $recVerInstance |= $recInstance << 4;
    +
    +                $header = pack('vvV', $recVerInstance, $recType, $length);
    +
    +                $this->data = $header . $data;
    +
    +                break;
    +        }
    +
    +        return $this->data;
    +    }
    +
    +    /**
    +     * Gets the shape offsets.
    +     *
    +     * @return array
    +     */
    +    public function getSpOffsets()
    +    {
    +        return $this->spOffsets;
    +    }
    +
    +    /**
    +     * Gets the shape types.
    +     *
    +     * @return array
    +     */
    +    public function getSpTypes()
    +    {
    +        return $this->spTypes;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Font.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Font.php
    new file mode 100644
    index 00000000000..df37dcb56c5
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Font.php
    @@ -0,0 +1,149 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xls;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +
    +class Font
    +{
    +    /**
    +     * Color index.
    +     *
    +     * @var int
    +     */
    +    private $colorIndex;
    +
    +    /**
    +     * Font.
    +     *
    +     * @var \PhpOffice\PhpSpreadsheet\Style\Font
    +     */
    +    private $font;
    +
    +    /**
    +     * Constructor.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Font $font
    +     */
    +    public function __construct(\PhpOffice\PhpSpreadsheet\Style\Font $font)
    +    {
    +        $this->colorIndex = 0x7FFF;
    +        $this->font = $font;
    +    }
    +
    +    /**
    +     * Set the color index.
    +     *
    +     * @param int $colorIndex
    +     */
    +    public function setColorIndex($colorIndex)
    +    {
    +        $this->colorIndex = $colorIndex;
    +    }
    +
    +    /**
    +     * Get font record data.
    +     *
    +     * @return string
    +     */
    +    public function writeFont()
    +    {
    +        $font_outline = 0;
    +        $font_shadow = 0;
    +
    +        $icv = $this->colorIndex; // Index to color palette
    +        if ($this->font->getSuperscript()) {
    +            $sss = 1;
    +        } elseif ($this->font->getSubscript()) {
    +            $sss = 2;
    +        } else {
    +            $sss = 0;
    +        }
    +        $bFamily = 0; // Font family
    +        $bCharSet = \PhpOffice\PhpSpreadsheet\Shared\Font::getCharsetFromFontName($this->font->getName()); // Character set
    +
    +        $record = 0x31; // Record identifier
    +        $reserved = 0x00; // Reserved
    +        $grbit = 0x00; // Font attributes
    +        if ($this->font->getItalic()) {
    +            $grbit |= 0x02;
    +        }
    +        if ($this->font->getStrikethrough()) {
    +            $grbit |= 0x08;
    +        }
    +        if ($font_outline) {
    +            $grbit |= 0x10;
    +        }
    +        if ($font_shadow) {
    +            $grbit |= 0x20;
    +        }
    +
    +        $data = pack(
    +            'vvvvvCCCC',
    +            // Fontsize (in twips)
    +            $this->font->getSize() * 20,
    +            $grbit,
    +            // Colour
    +            $icv,
    +            // Font weight
    +            self::mapBold($this->font->getBold()),
    +            // Superscript/Subscript
    +            $sss,
    +            self::mapUnderline($this->font->getUnderline()),
    +            $bFamily,
    +            $bCharSet,
    +            $reserved
    +        );
    +        $data .= StringHelper::UTF8toBIFF8UnicodeShort($this->font->getName());
    +
    +        $length = strlen($data);
    +        $header = pack('vv', $record, $length);
    +
    +        return $header . $data;
    +    }
    +
    +    /**
    +     * Map to BIFF5-BIFF8 codes for bold.
    +     *
    +     * @param bool $bold
    +     *
    +     * @return int
    +     */
    +    private static function mapBold($bold)
    +    {
    +        if ($bold) {
    +            return 0x2BC; //  700 = Bold font weight
    +        }
    +
    +        return 0x190; //  400 = Normal font weight
    +    }
    +
    +    /**
    +     * Map of BIFF2-BIFF8 codes for underline styles.
    +     *
    +     * @var array of int
    +     */
    +    private static $mapUnderline = [
    +        \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_NONE => 0x00,
    +        \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE => 0x01,
    +        \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE => 0x02,
    +        \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING => 0x21,
    +        \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING => 0x22,
    +    ];
    +
    +    /**
    +     * Map underline.
    +     *
    +     * @param string $underline
    +     *
    +     * @return int
    +     */
    +    private static function mapUnderline($underline)
    +    {
    +        if (isset(self::$mapUnderline[$underline])) {
    +            return self::$mapUnderline[$underline];
    +        }
    +
    +        return 0x00;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Parser.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Parser.php
    new file mode 100644
    index 00000000000..e87d09a2233
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Parser.php
    @@ -0,0 +1,1447 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xls;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet as PhpspreadsheetWorksheet;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +// Original file header of PEAR::Spreadsheet_Excel_Writer_Parser (used as the base for this class):
    +// -----------------------------------------------------------------------------------------
    +// *  Class for parsing Excel formulas
    +// *
    +// *  License Information:
    +// *
    +// *    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets
    +// *    Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
    +// *
    +// *    This library is free software; you can redistribute it and/or
    +// *    modify it under the terms of the GNU Lesser General Public
    +// *    License as published by the Free Software Foundation; either
    +// *    version 2.1 of the License, or (at your option) any later version.
    +// *
    +// *    This library is distributed in the hope that it will be useful,
    +// *    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    +// *    Lesser General Public License for more details.
    +// *
    +// *    You should have received a copy of the GNU Lesser General Public
    +// *    License along with this library; if not, write to the Free Software
    +// *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +// */
    +class Parser
    +{
    +    /**    Constants                */
    +    // Sheet title in unquoted form
    +    // Invalid sheet title characters cannot occur in the sheet title:
    +    //         *:/\?[]
    +    // Moreover, there are valid sheet title characters that cannot occur in unquoted form (there may be more?)
    +    // +-% '^&<>=,;#()"{}
    +    const REGEX_SHEET_TITLE_UNQUOTED = '[^\*\:\/\\\\\?\[\]\+\-\% \\\'\^\&\<\>\=\,\;\#\(\)\"\{\}]+';
    +
    +    // Sheet title in quoted form (without surrounding quotes)
    +    // Invalid sheet title characters cannot occur in the sheet title:
    +    // *:/\?[]                    (usual invalid sheet title characters)
    +    // Single quote is represented as a pair ''
    +    const REGEX_SHEET_TITLE_QUOTED = '(([^\*\:\/\\\\\?\[\]\\\'])+|(\\\'\\\')+)+';
    +
    +    /**
    +     * The index of the character we are currently looking at.
    +     *
    +     * @var int
    +     */
    +    public $currentCharacter;
    +
    +    /**
    +     * The token we are working on.
    +     *
    +     * @var string
    +     */
    +    public $currentToken;
    +
    +    /**
    +     * The formula to parse.
    +     *
    +     * @var string
    +     */
    +    private $formula;
    +
    +    /**
    +     * The character ahead of the current char.
    +     *
    +     * @var string
    +     */
    +    public $lookAhead;
    +
    +    /**
    +     * The parse tree to be generated.
    +     *
    +     * @var string
    +     */
    +    private $parseTree;
    +
    +    /**
    +     * Array of external sheets.
    +     *
    +     * @var array
    +     */
    +    private $externalSheets;
    +
    +    /**
    +     * Array of sheet references in the form of REF structures.
    +     *
    +     * @var array
    +     */
    +    public $references;
    +
    +    /**
    +     * The Excel ptg indices.
    +     *
    +     * @var array
    +     */
    +    private $ptg = [
    +        'ptgExp' => 0x01,
    +        'ptgTbl' => 0x02,
    +        'ptgAdd' => 0x03,
    +        'ptgSub' => 0x04,
    +        'ptgMul' => 0x05,
    +        'ptgDiv' => 0x06,
    +        'ptgPower' => 0x07,
    +        'ptgConcat' => 0x08,
    +        'ptgLT' => 0x09,
    +        'ptgLE' => 0x0A,
    +        'ptgEQ' => 0x0B,
    +        'ptgGE' => 0x0C,
    +        'ptgGT' => 0x0D,
    +        'ptgNE' => 0x0E,
    +        'ptgIsect' => 0x0F,
    +        'ptgUnion' => 0x10,
    +        'ptgRange' => 0x11,
    +        'ptgUplus' => 0x12,
    +        'ptgUminus' => 0x13,
    +        'ptgPercent' => 0x14,
    +        'ptgParen' => 0x15,
    +        'ptgMissArg' => 0x16,
    +        'ptgStr' => 0x17,
    +        'ptgAttr' => 0x19,
    +        'ptgSheet' => 0x1A,
    +        'ptgEndSheet' => 0x1B,
    +        'ptgErr' => 0x1C,
    +        'ptgBool' => 0x1D,
    +        'ptgInt' => 0x1E,
    +        'ptgNum' => 0x1F,
    +        'ptgArray' => 0x20,
    +        'ptgFunc' => 0x21,
    +        'ptgFuncVar' => 0x22,
    +        'ptgName' => 0x23,
    +        'ptgRef' => 0x24,
    +        'ptgArea' => 0x25,
    +        'ptgMemArea' => 0x26,
    +        'ptgMemErr' => 0x27,
    +        'ptgMemNoMem' => 0x28,
    +        'ptgMemFunc' => 0x29,
    +        'ptgRefErr' => 0x2A,
    +        'ptgAreaErr' => 0x2B,
    +        'ptgRefN' => 0x2C,
    +        'ptgAreaN' => 0x2D,
    +        'ptgMemAreaN' => 0x2E,
    +        'ptgMemNoMemN' => 0x2F,
    +        'ptgNameX' => 0x39,
    +        'ptgRef3d' => 0x3A,
    +        'ptgArea3d' => 0x3B,
    +        'ptgRefErr3d' => 0x3C,
    +        'ptgAreaErr3d' => 0x3D,
    +        'ptgArrayV' => 0x40,
    +        'ptgFuncV' => 0x41,
    +        'ptgFuncVarV' => 0x42,
    +        'ptgNameV' => 0x43,
    +        'ptgRefV' => 0x44,
    +        'ptgAreaV' => 0x45,
    +        'ptgMemAreaV' => 0x46,
    +        'ptgMemErrV' => 0x47,
    +        'ptgMemNoMemV' => 0x48,
    +        'ptgMemFuncV' => 0x49,
    +        'ptgRefErrV' => 0x4A,
    +        'ptgAreaErrV' => 0x4B,
    +        'ptgRefNV' => 0x4C,
    +        'ptgAreaNV' => 0x4D,
    +        'ptgMemAreaNV' => 0x4E,
    +        'ptgMemNoMemNV' => 0x4F,
    +        'ptgFuncCEV' => 0x58,
    +        'ptgNameXV' => 0x59,
    +        'ptgRef3dV' => 0x5A,
    +        'ptgArea3dV' => 0x5B,
    +        'ptgRefErr3dV' => 0x5C,
    +        'ptgAreaErr3dV' => 0x5D,
    +        'ptgArrayA' => 0x60,
    +        'ptgFuncA' => 0x61,
    +        'ptgFuncVarA' => 0x62,
    +        'ptgNameA' => 0x63,
    +        'ptgRefA' => 0x64,
    +        'ptgAreaA' => 0x65,
    +        'ptgMemAreaA' => 0x66,
    +        'ptgMemErrA' => 0x67,
    +        'ptgMemNoMemA' => 0x68,
    +        'ptgMemFuncA' => 0x69,
    +        'ptgRefErrA' => 0x6A,
    +        'ptgAreaErrA' => 0x6B,
    +        'ptgRefNA' => 0x6C,
    +        'ptgAreaNA' => 0x6D,
    +        'ptgMemAreaNA' => 0x6E,
    +        'ptgMemNoMemNA' => 0x6F,
    +        'ptgFuncCEA' => 0x78,
    +        'ptgNameXA' => 0x79,
    +        'ptgRef3dA' => 0x7A,
    +        'ptgArea3dA' => 0x7B,
    +        'ptgRefErr3dA' => 0x7C,
    +        'ptgAreaErr3dA' => 0x7D,
    +    ];
    +
    +    /**
    +     * Thanks to Michael Meeks and Gnumeric for the initial arg values.
    +     *
    +     * The following hash was generated by "function_locale.pl" in the distro.
    +     * Refer to function_locale.pl for non-English function names.
    +     *
    +     * The array elements are as follow:
    +     * ptg:   The Excel function ptg code.
    +     * args:  The number of arguments that the function takes:
    +     *           >=0 is a fixed number of arguments.
    +     *           -1  is a variable  number of arguments.
    +     * class: The reference, value or array class of the function args.
    +     * vol:   The function is volatile.
    +     *
    +     * @var array
    +     */
    +    private $functions = [
    +        // function                  ptg  args  class  vol
    +        'COUNT' => [0, -1, 0, 0],
    +        'IF' => [1, -1, 1, 0],
    +        'ISNA' => [2, 1, 1, 0],
    +        'ISERROR' => [3, 1, 1, 0],
    +        'SUM' => [4, -1, 0, 0],
    +        'AVERAGE' => [5, -1, 0, 0],
    +        'MIN' => [6, -1, 0, 0],
    +        'MAX' => [7, -1, 0, 0],
    +        'ROW' => [8, -1, 0, 0],
    +        'COLUMN' => [9, -1, 0, 0],
    +        'NA' => [10, 0, 0, 0],
    +        'NPV' => [11, -1, 1, 0],
    +        'STDEV' => [12, -1, 0, 0],
    +        'DOLLAR' => [13, -1, 1, 0],
    +        'FIXED' => [14, -1, 1, 0],
    +        'SIN' => [15, 1, 1, 0],
    +        'COS' => [16, 1, 1, 0],
    +        'TAN' => [17, 1, 1, 0],
    +        'ATAN' => [18, 1, 1, 0],
    +        'PI' => [19, 0, 1, 0],
    +        'SQRT' => [20, 1, 1, 0],
    +        'EXP' => [21, 1, 1, 0],
    +        'LN' => [22, 1, 1, 0],
    +        'LOG10' => [23, 1, 1, 0],
    +        'ABS' => [24, 1, 1, 0],
    +        'INT' => [25, 1, 1, 0],
    +        'SIGN' => [26, 1, 1, 0],
    +        'ROUND' => [27, 2, 1, 0],
    +        'LOOKUP' => [28, -1, 0, 0],
    +        'INDEX' => [29, -1, 0, 1],
    +        'REPT' => [30, 2, 1, 0],
    +        'MID' => [31, 3, 1, 0],
    +        'LEN' => [32, 1, 1, 0],
    +        'VALUE' => [33, 1, 1, 0],
    +        'TRUE' => [34, 0, 1, 0],
    +        'FALSE' => [35, 0, 1, 0],
    +        'AND' => [36, -1, 0, 0],
    +        'OR' => [37, -1, 0, 0],
    +        'NOT' => [38, 1, 1, 0],
    +        'MOD' => [39, 2, 1, 0],
    +        'DCOUNT' => [40, 3, 0, 0],
    +        'DSUM' => [41, 3, 0, 0],
    +        'DAVERAGE' => [42, 3, 0, 0],
    +        'DMIN' => [43, 3, 0, 0],
    +        'DMAX' => [44, 3, 0, 0],
    +        'DSTDEV' => [45, 3, 0, 0],
    +        'VAR' => [46, -1, 0, 0],
    +        'DVAR' => [47, 3, 0, 0],
    +        'TEXT' => [48, 2, 1, 0],
    +        'LINEST' => [49, -1, 0, 0],
    +        'TREND' => [50, -1, 0, 0],
    +        'LOGEST' => [51, -1, 0, 0],
    +        'GROWTH' => [52, -1, 0, 0],
    +        'PV' => [56, -1, 1, 0],
    +        'FV' => [57, -1, 1, 0],
    +        'NPER' => [58, -1, 1, 0],
    +        'PMT' => [59, -1, 1, 0],
    +        'RATE' => [60, -1, 1, 0],
    +        'MIRR' => [61, 3, 0, 0],
    +        'IRR' => [62, -1, 0, 0],
    +        'RAND' => [63, 0, 1, 1],
    +        'MATCH' => [64, -1, 0, 0],
    +        'DATE' => [65, 3, 1, 0],
    +        'TIME' => [66, 3, 1, 0],
    +        'DAY' => [67, 1, 1, 0],
    +        'MONTH' => [68, 1, 1, 0],
    +        'YEAR' => [69, 1, 1, 0],
    +        'WEEKDAY' => [70, -1, 1, 0],
    +        'HOUR' => [71, 1, 1, 0],
    +        'MINUTE' => [72, 1, 1, 0],
    +        'SECOND' => [73, 1, 1, 0],
    +        'NOW' => [74, 0, 1, 1],
    +        'AREAS' => [75, 1, 0, 1],
    +        'ROWS' => [76, 1, 0, 1],
    +        'COLUMNS' => [77, 1, 0, 1],
    +        'OFFSET' => [78, -1, 0, 1],
    +        'SEARCH' => [82, -1, 1, 0],
    +        'TRANSPOSE' => [83, 1, 1, 0],
    +        'TYPE' => [86, 1, 1, 0],
    +        'ATAN2' => [97, 2, 1, 0],
    +        'ASIN' => [98, 1, 1, 0],
    +        'ACOS' => [99, 1, 1, 0],
    +        'CHOOSE' => [100, -1, 1, 0],
    +        'HLOOKUP' => [101, -1, 0, 0],
    +        'VLOOKUP' => [102, -1, 0, 0],
    +        'ISREF' => [105, 1, 0, 0],
    +        'LOG' => [109, -1, 1, 0],
    +        'CHAR' => [111, 1, 1, 0],
    +        'LOWER' => [112, 1, 1, 0],
    +        'UPPER' => [113, 1, 1, 0],
    +        'PROPER' => [114, 1, 1, 0],
    +        'LEFT' => [115, -1, 1, 0],
    +        'RIGHT' => [116, -1, 1, 0],
    +        'EXACT' => [117, 2, 1, 0],
    +        'TRIM' => [118, 1, 1, 0],
    +        'REPLACE' => [119, 4, 1, 0],
    +        'SUBSTITUTE' => [120, -1, 1, 0],
    +        'CODE' => [121, 1, 1, 0],
    +        'FIND' => [124, -1, 1, 0],
    +        'CELL' => [125, -1, 0, 1],
    +        'ISERR' => [126, 1, 1, 0],
    +        'ISTEXT' => [127, 1, 1, 0],
    +        'ISNUMBER' => [128, 1, 1, 0],
    +        'ISBLANK' => [129, 1, 1, 0],
    +        'T' => [130, 1, 0, 0],
    +        'N' => [131, 1, 0, 0],
    +        'DATEVALUE' => [140, 1, 1, 0],
    +        'TIMEVALUE' => [141, 1, 1, 0],
    +        'SLN' => [142, 3, 1, 0],
    +        'SYD' => [143, 4, 1, 0],
    +        'DDB' => [144, -1, 1, 0],
    +        'INDIRECT' => [148, -1, 1, 1],
    +        'CALL' => [150, -1, 1, 0],
    +        'CLEAN' => [162, 1, 1, 0],
    +        'MDETERM' => [163, 1, 2, 0],
    +        'MINVERSE' => [164, 1, 2, 0],
    +        'MMULT' => [165, 2, 2, 0],
    +        'IPMT' => [167, -1, 1, 0],
    +        'PPMT' => [168, -1, 1, 0],
    +        'COUNTA' => [169, -1, 0, 0],
    +        'PRODUCT' => [183, -1, 0, 0],
    +        'FACT' => [184, 1, 1, 0],
    +        'DPRODUCT' => [189, 3, 0, 0],
    +        'ISNONTEXT' => [190, 1, 1, 0],
    +        'STDEVP' => [193, -1, 0, 0],
    +        'VARP' => [194, -1, 0, 0],
    +        'DSTDEVP' => [195, 3, 0, 0],
    +        'DVARP' => [196, 3, 0, 0],
    +        'TRUNC' => [197, -1, 1, 0],
    +        'ISLOGICAL' => [198, 1, 1, 0],
    +        'DCOUNTA' => [199, 3, 0, 0],
    +        'USDOLLAR' => [204, -1, 1, 0],
    +        'FINDB' => [205, -1, 1, 0],
    +        'SEARCHB' => [206, -1, 1, 0],
    +        'REPLACEB' => [207, 4, 1, 0],
    +        'LEFTB' => [208, -1, 1, 0],
    +        'RIGHTB' => [209, -1, 1, 0],
    +        'MIDB' => [210, 3, 1, 0],
    +        'LENB' => [211, 1, 1, 0],
    +        'ROUNDUP' => [212, 2, 1, 0],
    +        'ROUNDDOWN' => [213, 2, 1, 0],
    +        'ASC' => [214, 1, 1, 0],
    +        'DBCS' => [215, 1, 1, 0],
    +        'RANK' => [216, -1, 0, 0],
    +        'ADDRESS' => [219, -1, 1, 0],
    +        'DAYS360' => [220, -1, 1, 0],
    +        'TODAY' => [221, 0, 1, 1],
    +        'VDB' => [222, -1, 1, 0],
    +        'MEDIAN' => [227, -1, 0, 0],
    +        'SUMPRODUCT' => [228, -1, 2, 0],
    +        'SINH' => [229, 1, 1, 0],
    +        'COSH' => [230, 1, 1, 0],
    +        'TANH' => [231, 1, 1, 0],
    +        'ASINH' => [232, 1, 1, 0],
    +        'ACOSH' => [233, 1, 1, 0],
    +        'ATANH' => [234, 1, 1, 0],
    +        'DGET' => [235, 3, 0, 0],
    +        'INFO' => [244, 1, 1, 1],
    +        'DB' => [247, -1, 1, 0],
    +        'FREQUENCY' => [252, 2, 0, 0],
    +        'ERROR.TYPE' => [261, 1, 1, 0],
    +        'REGISTER.ID' => [267, -1, 1, 0],
    +        'AVEDEV' => [269, -1, 0, 0],
    +        'BETADIST' => [270, -1, 1, 0],
    +        'GAMMALN' => [271, 1, 1, 0],
    +        'BETAINV' => [272, -1, 1, 0],
    +        'BINOMDIST' => [273, 4, 1, 0],
    +        'CHIDIST' => [274, 2, 1, 0],
    +        'CHIINV' => [275, 2, 1, 0],
    +        'COMBIN' => [276, 2, 1, 0],
    +        'CONFIDENCE' => [277, 3, 1, 0],
    +        'CRITBINOM' => [278, 3, 1, 0],
    +        'EVEN' => [279, 1, 1, 0],
    +        'EXPONDIST' => [280, 3, 1, 0],
    +        'FDIST' => [281, 3, 1, 0],
    +        'FINV' => [282, 3, 1, 0],
    +        'FISHER' => [283, 1, 1, 0],
    +        'FISHERINV' => [284, 1, 1, 0],
    +        'FLOOR' => [285, 2, 1, 0],
    +        'GAMMADIST' => [286, 4, 1, 0],
    +        'GAMMAINV' => [287, 3, 1, 0],
    +        'CEILING' => [288, 2, 1, 0],
    +        'HYPGEOMDIST' => [289, 4, 1, 0],
    +        'LOGNORMDIST' => [290, 3, 1, 0],
    +        'LOGINV' => [291, 3, 1, 0],
    +        'NEGBINOMDIST' => [292, 3, 1, 0],
    +        'NORMDIST' => [293, 4, 1, 0],
    +        'NORMSDIST' => [294, 1, 1, 0],
    +        'NORMINV' => [295, 3, 1, 0],
    +        'NORMSINV' => [296, 1, 1, 0],
    +        'STANDARDIZE' => [297, 3, 1, 0],
    +        'ODD' => [298, 1, 1, 0],
    +        'PERMUT' => [299, 2, 1, 0],
    +        'POISSON' => [300, 3, 1, 0],
    +        'TDIST' => [301, 3, 1, 0],
    +        'WEIBULL' => [302, 4, 1, 0],
    +        'SUMXMY2' => [303, 2, 2, 0],
    +        'SUMX2MY2' => [304, 2, 2, 0],
    +        'SUMX2PY2' => [305, 2, 2, 0],
    +        'CHITEST' => [306, 2, 2, 0],
    +        'CORREL' => [307, 2, 2, 0],
    +        'COVAR' => [308, 2, 2, 0],
    +        'FORECAST' => [309, 3, 2, 0],
    +        'FTEST' => [310, 2, 2, 0],
    +        'INTERCEPT' => [311, 2, 2, 0],
    +        'PEARSON' => [312, 2, 2, 0],
    +        'RSQ' => [313, 2, 2, 0],
    +        'STEYX' => [314, 2, 2, 0],
    +        'SLOPE' => [315, 2, 2, 0],
    +        'TTEST' => [316, 4, 2, 0],
    +        'PROB' => [317, -1, 2, 0],
    +        'DEVSQ' => [318, -1, 0, 0],
    +        'GEOMEAN' => [319, -1, 0, 0],
    +        'HARMEAN' => [320, -1, 0, 0],
    +        'SUMSQ' => [321, -1, 0, 0],
    +        'KURT' => [322, -1, 0, 0],
    +        'SKEW' => [323, -1, 0, 0],
    +        'ZTEST' => [324, -1, 0, 0],
    +        'LARGE' => [325, 2, 0, 0],
    +        'SMALL' => [326, 2, 0, 0],
    +        'QUARTILE' => [327, 2, 0, 0],
    +        'PERCENTILE' => [328, 2, 0, 0],
    +        'PERCENTRANK' => [329, -1, 0, 0],
    +        'MODE' => [330, -1, 2, 0],
    +        'TRIMMEAN' => [331, 2, 0, 0],
    +        'TINV' => [332, 2, 1, 0],
    +        'CONCATENATE' => [336, -1, 1, 0],
    +        'POWER' => [337, 2, 1, 0],
    +        'RADIANS' => [342, 1, 1, 0],
    +        'DEGREES' => [343, 1, 1, 0],
    +        'SUBTOTAL' => [344, -1, 0, 0],
    +        'SUMIF' => [345, -1, 0, 0],
    +        'COUNTIF' => [346, 2, 0, 0],
    +        'COUNTBLANK' => [347, 1, 0, 0],
    +        'ISPMT' => [350, 4, 1, 0],
    +        'DATEDIF' => [351, 3, 1, 0],
    +        'DATESTRING' => [352, 1, 1, 0],
    +        'NUMBERSTRING' => [353, 2, 1, 0],
    +        'ROMAN' => [354, -1, 1, 0],
    +        'GETPIVOTDATA' => [358, -1, 0, 0],
    +        'HYPERLINK' => [359, -1, 1, 0],
    +        'PHONETIC' => [360, 1, 0, 0],
    +        'AVERAGEA' => [361, -1, 0, 0],
    +        'MAXA' => [362, -1, 0, 0],
    +        'MINA' => [363, -1, 0, 0],
    +        'STDEVPA' => [364, -1, 0, 0],
    +        'VARPA' => [365, -1, 0, 0],
    +        'STDEVA' => [366, -1, 0, 0],
    +        'VARA' => [367, -1, 0, 0],
    +        'BAHTTEXT' => [368, 1, 0, 0],
    +    ];
    +
    +    /**
    +     * The class constructor.
    +     */
    +    public function __construct()
    +    {
    +        $this->currentCharacter = 0;
    +        $this->currentToken = ''; // The token we are working on.
    +        $this->formula = ''; // The formula to parse.
    +        $this->lookAhead = ''; // The character ahead of the current char.
    +        $this->parseTree = ''; // The parse tree to be generated.
    +        $this->externalSheets = [];
    +        $this->references = [];
    +    }
    +
    +    /**
    +     * Convert a token to the proper ptg value.
    +     *
    +     * @param mixed $token the token to convert
    +     *
    +     * @return mixed the converted token on success
    +     */
    +    private function convert($token)
    +    {
    +        if (preg_match('/"([^"]|""){0,255}"/', $token)) {
    +            return $this->convertString($token);
    +        } elseif (is_numeric($token)) {
    +            return $this->convertNumber($token);
    +        // match references like A1 or $A$1
    +        } elseif (preg_match('/^\$?([A-Ia-i]?[A-Za-z])\$?(\d+)$/', $token)) {
    +            return $this->convertRef2d($token);
    +        // match external references like Sheet1!A1 or Sheet1:Sheet2!A1 or Sheet1!$A$1 or Sheet1:Sheet2!$A$1
    +        } elseif (preg_match('/^' . self::REGEX_SHEET_TITLE_UNQUOTED . '(\\:' . self::REGEX_SHEET_TITLE_UNQUOTED . ')?\\!\$?[A-Ia-i]?[A-Za-z]\$?(\\d+)$/u', $token)) {
    +            return $this->convertRef3d($token);
    +        // match external references like 'Sheet1'!A1 or 'Sheet1:Sheet2'!A1 or 'Sheet1'!$A$1 or 'Sheet1:Sheet2'!$A$1
    +        } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . '(\\:' . self::REGEX_SHEET_TITLE_QUOTED . ")?'\\!\\$?[A-Ia-i]?[A-Za-z]\\$?(\\d+)$/u", $token)) {
    +            return $this->convertRef3d($token);
    +        // match ranges like A1:B2 or $A$1:$B$2
    +        } elseif (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?(\d+)\:(\$)?[A-Ia-i]?[A-Za-z](\$)?(\d+)$/', $token)) {
    +            return $this->convertRange2d($token);
    +        // match external ranges like Sheet1!A1:B2 or Sheet1:Sheet2!A1:B2 or Sheet1!$A$1:$B$2 or Sheet1:Sheet2!$A$1:$B$2
    +        } elseif (preg_match('/^' . self::REGEX_SHEET_TITLE_UNQUOTED . '(\\:' . self::REGEX_SHEET_TITLE_UNQUOTED . ')?\\!\$?([A-Ia-i]?[A-Za-z])?\$?(\\d+)\\:\$?([A-Ia-i]?[A-Za-z])?\$?(\\d+)$/u', $token)) {
    +            return $this->convertRange3d($token);
    +        // match external ranges like 'Sheet1'!A1:B2 or 'Sheet1:Sheet2'!A1:B2 or 'Sheet1'!$A$1:$B$2 or 'Sheet1:Sheet2'!$A$1:$B$2
    +        } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . '(\\:' . self::REGEX_SHEET_TITLE_QUOTED . ")?'\\!\\$?([A-Ia-i]?[A-Za-z])?\\$?(\\d+)\\:\\$?([A-Ia-i]?[A-Za-z])?\\$?(\\d+)$/u", $token)) {
    +            return $this->convertRange3d($token);
    +        // operators (including parentheses)
    +        } elseif (isset($this->ptg[$token])) {
    +            return pack('C', $this->ptg[$token]);
    +        // match error codes
    +        } elseif (preg_match('/^#[A-Z0\\/]{3,5}[!?]{1}$/', $token) or $token == '#N/A') {
    +            return $this->convertError($token);
    +        // commented so argument number can be processed correctly. See toReversePolish().
    +        /*elseif (preg_match("/[A-Z0-9\xc0-\xdc\.]+/", $token))
    +        {
    +            return($this->convertFunction($token, $this->_func_args));
    +        }*/
    +        // if it's an argument, ignore the token (the argument remains)
    +        } elseif ($token == 'arg') {
    +            return '';
    +        }
    +
    +        // TODO: use real error codes
    +        throw new WriterException("Unknown token $token");
    +    }
    +
    +    /**
    +     * Convert a number token to ptgInt or ptgNum.
    +     *
    +     * @param mixed $num an integer or double for conversion to its ptg value
    +     *
    +     * @return string
    +     */
    +    private function convertNumber($num)
    +    {
    +        // Integer in the range 0..2**16-1
    +        if ((preg_match('/^\\d+$/', $num)) and ($num <= 65535)) {
    +            return pack('Cv', $this->ptg['ptgInt'], $num);
    +        }
    +
    +        // A float
    +        if (BIFFwriter::getByteOrder()) { // if it's Big Endian
    +            $num = strrev($num);
    +        }
    +
    +        return pack('Cd', $this->ptg['ptgNum'], $num);
    +    }
    +
    +    /**
    +     * Convert a string token to ptgStr.
    +     *
    +     * @param string $string a string for conversion to its ptg value
    +     *
    +     * @return mixed the converted token on success
    +     */
    +    private function convertString($string)
    +    {
    +        // chop away beggining and ending quotes
    +        $string = substr($string, 1, -1);
    +        if (strlen($string) > 255) {
    +            throw new WriterException('String is too long');
    +        }
    +
    +        return pack('C', $this->ptg['ptgStr']) . StringHelper::UTF8toBIFF8UnicodeShort($string);
    +    }
    +
    +    /**
    +     * Convert a function to a ptgFunc or ptgFuncVarV depending on the number of
    +     * args that it takes.
    +     *
    +     * @param string $token the name of the function for convertion to ptg value
    +     * @param int $num_args the number of arguments the function receives
    +     *
    +     * @return string The packed ptg for the function
    +     */
    +    private function convertFunction($token, $num_args)
    +    {
    +        $args = $this->functions[$token][1];
    +
    +        // Fixed number of args eg. TIME($i, $j, $k).
    +        if ($args >= 0) {
    +            return pack('Cv', $this->ptg['ptgFuncV'], $this->functions[$token][0]);
    +        }
    +        // Variable number of args eg. SUM($i, $j, $k, ..).
    +        if ($args == -1) {
    +            return pack('CCv', $this->ptg['ptgFuncVarV'], $num_args, $this->functions[$token][0]);
    +        }
    +    }
    +
    +    /**
    +     * Convert an Excel range such as A1:D4 to a ptgRefV.
    +     *
    +     * @param string $range An Excel range in the A1:A2
    +     * @param int $class
    +     *
    +     * @return string
    +     */
    +    private function convertRange2d($range, $class = 0)
    +    {
    +        // TODO: possible class value 0,1,2 check Formula.pm
    +        // Split the range into 2 cell refs
    +        if (preg_match('/^(\$)?([A-Ia-i]?[A-Za-z])(\$)?(\d+)\:(\$)?([A-Ia-i]?[A-Za-z])(\$)?(\d+)$/', $range)) {
    +            list($cell1, $cell2) = explode(':', $range);
    +        } else {
    +            // TODO: use real error codes
    +            throw new WriterException('Unknown range separator');
    +        }
    +
    +        // Convert the cell references
    +        list($row1, $col1) = $this->cellToPackedRowcol($cell1);
    +        list($row2, $col2) = $this->cellToPackedRowcol($cell2);
    +
    +        // The ptg value depends on the class of the ptg.
    +        if ($class == 0) {
    +            $ptgArea = pack('C', $this->ptg['ptgArea']);
    +        } elseif ($class == 1) {
    +            $ptgArea = pack('C', $this->ptg['ptgAreaV']);
    +        } elseif ($class == 2) {
    +            $ptgArea = pack('C', $this->ptg['ptgAreaA']);
    +        } else {
    +            // TODO: use real error codes
    +            throw new WriterException("Unknown class $class");
    +        }
    +
    +        return $ptgArea . $row1 . $row2 . $col1 . $col2;
    +    }
    +
    +    /**
    +     * Convert an Excel 3d range such as "Sheet1!A1:D4" or "Sheet1:Sheet2!A1:D4" to
    +     * a ptgArea3d.
    +     *
    +     * @param string $token an Excel range in the Sheet1!A1:A2 format
    +     *
    +     * @return mixed the packed ptgArea3d token on success
    +     */
    +    private function convertRange3d($token)
    +    {
    +        // Split the ref at the ! symbol
    +        list($ext_ref, $range) = PhpspreadsheetWorksheet::extractSheetTitle($token, true);
    +
    +        // Convert the external reference part (different for BIFF8)
    +        $ext_ref = $this->getRefIndex($ext_ref);
    +
    +        // Split the range into 2 cell refs
    +        list($cell1, $cell2) = explode(':', $range);
    +
    +        // Convert the cell references
    +        if (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?(\\d+)$/', $cell1)) {
    +            list($row1, $col1) = $this->cellToPackedRowcol($cell1);
    +            list($row2, $col2) = $this->cellToPackedRowcol($cell2);
    +        } else { // It's a rows range (like 26:27)
    +            list($row1, $col1, $row2, $col2) = $this->rangeToPackedRange($cell1 . ':' . $cell2);
    +        }
    +
    +        // The ptg value depends on the class of the ptg.
    +        $ptgArea = pack('C', $this->ptg['ptgArea3d']);
    +
    +        return $ptgArea . $ext_ref . $row1 . $row2 . $col1 . $col2;
    +    }
    +
    +    /**
    +     * Convert an Excel reference such as A1, $B2, C$3 or $D$4 to a ptgRefV.
    +     *
    +     * @param string $cell An Excel cell reference
    +     *
    +     * @return string The cell in packed() format with the corresponding ptg
    +     */
    +    private function convertRef2d($cell)
    +    {
    +        // Convert the cell reference
    +        $cell_array = $this->cellToPackedRowcol($cell);
    +        list($row, $col) = $cell_array;
    +
    +        // The ptg value depends on the class of the ptg.
    +        $ptgRef = pack('C', $this->ptg['ptgRefA']);
    +
    +        return $ptgRef . $row . $col;
    +    }
    +
    +    /**
    +     * Convert an Excel 3d reference such as "Sheet1!A1" or "Sheet1:Sheet2!A1" to a
    +     * ptgRef3d.
    +     *
    +     * @param string $cell An Excel cell reference
    +     *
    +     * @return mixed the packed ptgRef3d token on success
    +     */
    +    private function convertRef3d($cell)
    +    {
    +        // Split the ref at the ! symbol
    +        list($ext_ref, $cell) = PhpspreadsheetWorksheet::extractSheetTitle($cell, true);
    +
    +        // Convert the external reference part (different for BIFF8)
    +        $ext_ref = $this->getRefIndex($ext_ref);
    +
    +        // Convert the cell reference part
    +        list($row, $col) = $this->cellToPackedRowcol($cell);
    +
    +        // The ptg value depends on the class of the ptg.
    +        $ptgRef = pack('C', $this->ptg['ptgRef3dA']);
    +
    +        return $ptgRef . $ext_ref . $row . $col;
    +    }
    +
    +    /**
    +     * Convert an error code to a ptgErr.
    +     *
    +     * @param string $errorCode The error code for conversion to its ptg value
    +     *
    +     * @return string The error code ptgErr
    +     */
    +    private function convertError($errorCode)
    +    {
    +        switch ($errorCode) {
    +            case '#NULL!':
    +                return pack('C', 0x00);
    +            case '#DIV/0!':
    +                return pack('C', 0x07);
    +            case '#VALUE!':
    +                return pack('C', 0x0F);
    +            case '#REF!':
    +                return pack('C', 0x17);
    +            case '#NAME?':
    +                return pack('C', 0x1D);
    +            case '#NUM!':
    +                return pack('C', 0x24);
    +            case '#N/A':
    +                return pack('C', 0x2A);
    +        }
    +
    +        return pack('C', 0xFF);
    +    }
    +
    +    /**
    +     * Look up the REF index that corresponds to an external sheet name
    +     * (or range). If it doesn't exist yet add it to the workbook's references
    +     * array. It assumes all sheet names given must exist.
    +     *
    +     * @param string $ext_ref The name of the external reference
    +     *
    +     * @return mixed The reference index in packed() format on success
    +     */
    +    private function getRefIndex($ext_ref)
    +    {
    +        $ext_ref = preg_replace("/^'/", '', $ext_ref); // Remove leading  ' if any.
    +        $ext_ref = preg_replace("/'$/", '', $ext_ref); // Remove trailing ' if any.
    +        $ext_ref = str_replace('\'\'', '\'', $ext_ref); // Replace escaped '' with '
    +
    +        // Check if there is a sheet range eg., Sheet1:Sheet2.
    +        if (preg_match('/:/', $ext_ref)) {
    +            list($sheet_name1, $sheet_name2) = explode(':', $ext_ref);
    +
    +            $sheet1 = $this->getSheetIndex($sheet_name1);
    +            if ($sheet1 == -1) {
    +                throw new WriterException("Unknown sheet name $sheet_name1 in formula");
    +            }
    +            $sheet2 = $this->getSheetIndex($sheet_name2);
    +            if ($sheet2 == -1) {
    +                throw new WriterException("Unknown sheet name $sheet_name2 in formula");
    +            }
    +
    +            // Reverse max and min sheet numbers if necessary
    +            if ($sheet1 > $sheet2) {
    +                list($sheet1, $sheet2) = [$sheet2, $sheet1];
    +            }
    +        } else { // Single sheet name only.
    +            $sheet1 = $this->getSheetIndex($ext_ref);
    +            if ($sheet1 == -1) {
    +                throw new WriterException("Unknown sheet name $ext_ref in formula");
    +            }
    +            $sheet2 = $sheet1;
    +        }
    +
    +        // assume all references belong to this document
    +        $supbook_index = 0x00;
    +        $ref = pack('vvv', $supbook_index, $sheet1, $sheet2);
    +        $totalreferences = count($this->references);
    +        $index = -1;
    +        for ($i = 0; $i < $totalreferences; ++$i) {
    +            if ($ref == $this->references[$i]) {
    +                $index = $i;
    +
    +                break;
    +            }
    +        }
    +        // if REF was not found add it to references array
    +        if ($index == -1) {
    +            $this->references[$totalreferences] = $ref;
    +            $index = $totalreferences;
    +        }
    +
    +        return pack('v', $index);
    +    }
    +
    +    /**
    +     * Look up the index that corresponds to an external sheet name. The hash of
    +     * sheet names is updated by the addworksheet() method of the
    +     * \PhpOffice\PhpSpreadsheet\Writer\Xls\Workbook class.
    +     *
    +     * @param string $sheet_name Sheet name
    +     *
    +     * @return int The sheet index, -1 if the sheet was not found
    +     */
    +    private function getSheetIndex($sheet_name)
    +    {
    +        if (!isset($this->externalSheets[$sheet_name])) {
    +            return -1;
    +        }
    +
    +        return $this->externalSheets[$sheet_name];
    +    }
    +
    +    /**
    +     * This method is used to update the array of sheet names. It is
    +     * called by the addWorksheet() method of the
    +     * \PhpOffice\PhpSpreadsheet\Writer\Xls\Workbook class.
    +     *
    +     * @see \PhpOffice\PhpSpreadsheet\Writer\Xls\Workbook::addWorksheet()
    +     *
    +     * @param string $name The name of the worksheet being added
    +     * @param int $index The index of the worksheet being added
    +     */
    +    public function setExtSheet($name, $index)
    +    {
    +        $this->externalSheets[$name] = $index;
    +    }
    +
    +    /**
    +     * pack() row and column into the required 3 or 4 byte format.
    +     *
    +     * @param string $cell The Excel cell reference to be packed
    +     *
    +     * @return array Array containing the row and column in packed() format
    +     */
    +    private function cellToPackedRowcol($cell)
    +    {
    +        $cell = strtoupper($cell);
    +        list($row, $col, $row_rel, $col_rel) = $this->cellToRowcol($cell);
    +        if ($col >= 256) {
    +            throw new WriterException("Column in: $cell greater than 255");
    +        }
    +        if ($row >= 65536) {
    +            throw new WriterException("Row in: $cell greater than 65536 ");
    +        }
    +
    +        // Set the high bits to indicate if row or col are relative.
    +        $col |= $col_rel << 14;
    +        $col |= $row_rel << 15;
    +        $col = pack('v', $col);
    +
    +        $row = pack('v', $row);
    +
    +        return [$row, $col];
    +    }
    +
    +    /**
    +     * pack() row range into the required 3 or 4 byte format.
    +     * Just using maximum col/rows, which is probably not the correct solution.
    +     *
    +     * @param string $range The Excel range to be packed
    +     *
    +     * @return array Array containing (row1,col1,row2,col2) in packed() format
    +     */
    +    private function rangeToPackedRange($range)
    +    {
    +        preg_match('/(\$)?(\d+)\:(\$)?(\d+)/', $range, $match);
    +        // return absolute rows if there is a $ in the ref
    +        $row1_rel = empty($match[1]) ? 1 : 0;
    +        $row1 = $match[2];
    +        $row2_rel = empty($match[3]) ? 1 : 0;
    +        $row2 = $match[4];
    +        // Convert 1-index to zero-index
    +        --$row1;
    +        --$row2;
    +        // Trick poor inocent Excel
    +        $col1 = 0;
    +        $col2 = 65535; // FIXME: maximum possible value for Excel 5 (change this!!!)
    +
    +        // FIXME: this changes for BIFF8
    +        if (($row1 >= 65536) or ($row2 >= 65536)) {
    +            throw new WriterException("Row in: $range greater than 65536 ");
    +        }
    +
    +        // Set the high bits to indicate if rows are relative.
    +        $col1 |= $row1_rel << 15;
    +        $col2 |= $row2_rel << 15;
    +        $col1 = pack('v', $col1);
    +        $col2 = pack('v', $col2);
    +
    +        $row1 = pack('v', $row1);
    +        $row2 = pack('v', $row2);
    +
    +        return [$row1, $col1, $row2, $col2];
    +    }
    +
    +    /**
    +     * Convert an Excel cell reference such as A1 or $B2 or C$3 or $D$4 to a zero
    +     * indexed row and column number. Also returns two (0,1) values to indicate
    +     * whether the row or column are relative references.
    +     *
    +     * @param string $cell the Excel cell reference in A1 format
    +     *
    +     * @return array
    +     */
    +    private function cellToRowcol($cell)
    +    {
    +        preg_match('/(\$)?([A-I]?[A-Z])(\$)?(\d+)/', $cell, $match);
    +        // return absolute column if there is a $ in the ref
    +        $col_rel = empty($match[1]) ? 1 : 0;
    +        $col_ref = $match[2];
    +        $row_rel = empty($match[3]) ? 1 : 0;
    +        $row = $match[4];
    +
    +        // Convert base26 column string to a number.
    +        $expn = strlen($col_ref) - 1;
    +        $col = 0;
    +        $col_ref_length = strlen($col_ref);
    +        for ($i = 0; $i < $col_ref_length; ++$i) {
    +            $col += (ord($col_ref[$i]) - 64) * pow(26, $expn);
    +            --$expn;
    +        }
    +
    +        // Convert 1-index to zero-index
    +        --$row;
    +        --$col;
    +
    +        return [$row, $col, $row_rel, $col_rel];
    +    }
    +
    +    /**
    +     * Advance to the next valid token.
    +     */
    +    private function advance()
    +    {
    +        $i = $this->currentCharacter;
    +        $formula_length = strlen($this->formula);
    +        // eat up white spaces
    +        if ($i < $formula_length) {
    +            while ($this->formula[$i] == ' ') {
    +                ++$i;
    +            }
    +
    +            if ($i < ($formula_length - 1)) {
    +                $this->lookAhead = $this->formula[$i + 1];
    +            }
    +            $token = '';
    +        }
    +
    +        while ($i < $formula_length) {
    +            $token .= $this->formula[$i];
    +
    +            if ($i < ($formula_length - 1)) {
    +                $this->lookAhead = $this->formula[$i + 1];
    +            } else {
    +                $this->lookAhead = '';
    +            }
    +
    +            if ($this->match($token) != '') {
    +                $this->currentCharacter = $i + 1;
    +                $this->currentToken = $token;
    +
    +                return 1;
    +            }
    +
    +            if ($i < ($formula_length - 2)) {
    +                $this->lookAhead = $this->formula[$i + 2];
    +            } else { // if we run out of characters lookAhead becomes empty
    +                $this->lookAhead = '';
    +            }
    +            ++$i;
    +        }
    +        //die("Lexical error ".$this->currentCharacter);
    +    }
    +
    +    /**
    +     * Checks if it's a valid token.
    +     *
    +     * @param mixed $token the token to check
    +     *
    +     * @return mixed The checked token or false on failure
    +     */
    +    private function match($token)
    +    {
    +        switch ($token) {
    +            case '+':
    +            case '-':
    +            case '*':
    +            case '/':
    +            case '(':
    +            case ')':
    +            case ',':
    +            case ';':
    +            case '>=':
    +            case '<=':
    +            case '=':
    +            case '<>':
    +            case '^':
    +            case '&':
    +            case '%':
    +                return $token;
    +
    +                break;
    +            case '>':
    +                if ($this->lookAhead == '=') { // it's a GE token
    +                    break;
    +                }
    +
    +                return $token;
    +
    +                break;
    +            case '<':
    +                // it's a LE or a NE token
    +                if (($this->lookAhead == '=') or ($this->lookAhead == '>')) {
    +                    break;
    +                }
    +
    +                return $token;
    +
    +                break;
    +            default:
    +                // if it's a reference A1 or $A$1 or $A1 or A$1
    +                if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?\d+$/', $token) and !preg_match('/\d/', $this->lookAhead) and ($this->lookAhead != ':') and ($this->lookAhead != '.') and ($this->lookAhead != '!')) {
    +                    return $token;
    +                } elseif (preg_match('/^' . self::REGEX_SHEET_TITLE_UNQUOTED . '(\\:' . self::REGEX_SHEET_TITLE_UNQUOTED . ')?\\!\$?[A-Ia-i]?[A-Za-z]\$?\\d+$/u', $token) and !preg_match('/\d/', $this->lookAhead) and ($this->lookAhead != ':') and ($this->lookAhead != '.')) {
    +                    // If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1 or Sheet1!$A$1 or Sheet1:Sheet2!$A$1)
    +                    return $token;
    +                } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . '(\\:' . self::REGEX_SHEET_TITLE_QUOTED . ")?'\\!\\$?[A-Ia-i]?[A-Za-z]\\$?\\d+$/u", $token) and !preg_match('/\d/', $this->lookAhead) and ($this->lookAhead != ':') and ($this->lookAhead != '.')) {
    +                    // If it's an external reference ('Sheet1'!A1 or 'Sheet1:Sheet2'!A1 or 'Sheet1'!$A$1 or 'Sheet1:Sheet2'!$A$1)
    +                    return $token;
    +                } elseif (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?\d+:(\$)?[A-Ia-i]?[A-Za-z](\$)?\d+$/', $token) && !preg_match('/\d/', $this->lookAhead)) {
    +                    // if it's a range A1:A2 or $A$1:$A$2
    +                    return $token;
    +                } elseif (preg_match('/^' . self::REGEX_SHEET_TITLE_UNQUOTED . '(\\:' . self::REGEX_SHEET_TITLE_UNQUOTED . ')?\\!\$?([A-Ia-i]?[A-Za-z])?\$?\\d+:\$?([A-Ia-i]?[A-Za-z])?\$?\\d+$/u', $token) and !preg_match('/\d/', $this->lookAhead)) {
    +                    // If it's an external range like Sheet1!A1:B2 or Sheet1:Sheet2!A1:B2 or Sheet1!$A$1:$B$2 or Sheet1:Sheet2!$A$1:$B$2
    +                    return $token;
    +                } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . '(\\:' . self::REGEX_SHEET_TITLE_QUOTED . ")?'\\!\\$?([A-Ia-i]?[A-Za-z])?\\$?\\d+:\\$?([A-Ia-i]?[A-Za-z])?\\$?\\d+$/u", $token) and !preg_match('/\d/', $this->lookAhead)) {
    +                    // If it's an external range like 'Sheet1'!A1:B2 or 'Sheet1:Sheet2'!A1:B2 or 'Sheet1'!$A$1:$B$2 or 'Sheet1:Sheet2'!$A$1:$B$2
    +                    return $token;
    +                } elseif (is_numeric($token) and (!is_numeric($token . $this->lookAhead) or ($this->lookAhead == '')) and ($this->lookAhead != '!') and ($this->lookAhead != ':')) {
    +                    // If it's a number (check that it's not a sheet name or range)
    +                    return $token;
    +                } elseif (preg_match('/"([^"]|""){0,255}"/', $token) and $this->lookAhead != '"' and (substr_count($token, '"') % 2 == 0)) {
    +                    // If it's a string (of maximum 255 characters)
    +                    return $token;
    +                } elseif (preg_match('/^#[A-Z0\\/]{3,5}[!?]{1}$/', $token) or $token == '#N/A') {
    +                    // If it's an error code
    +                    return $token;
    +                } elseif (preg_match("/^[A-Z0-9\xc0-\xdc\\.]+$/i", $token) and ($this->lookAhead == '(')) {
    +                    // if it's a function call
    +                    return $token;
    +                } elseif (substr($token, -1) == ')') {
    +                    //    It's an argument of some description (e.g. a named range),
    +                    //        precise nature yet to be determined
    +                    return $token;
    +                }
    +
    +                return '';
    +        }
    +    }
    +
    +    /**
    +     * The parsing method. It parses a formula.
    +     *
    +     * @param string $formula the formula to parse, without the initial equal
    +     *                        sign (=)
    +     *
    +     * @return mixed true on success
    +     */
    +    public function parse($formula)
    +    {
    +        $this->currentCharacter = 0;
    +        $this->formula = $formula;
    +        $this->lookAhead = isset($formula[1]) ? $formula[1]
    +        : '';
    +        $this->advance();
    +        $this->parseTree = $this->condition();
    +
    +        return true;
    +    }
    +
    +    /**
    +     * It parses a condition. It assumes the following rule:
    +     * Cond -> Expr [(">" | "<") Expr].
    +     *
    +     * @return mixed The parsed ptg'd tree on success
    +     */
    +    private function condition()
    +    {
    +        $result = $this->expression();
    +        if ($this->currentToken == '<') {
    +            $this->advance();
    +            $result2 = $this->expression();
    +            $result = $this->createTree('ptgLT', $result, $result2);
    +        } elseif ($this->currentToken == '>') {
    +            $this->advance();
    +            $result2 = $this->expression();
    +            $result = $this->createTree('ptgGT', $result, $result2);
    +        } elseif ($this->currentToken == '<=') {
    +            $this->advance();
    +            $result2 = $this->expression();
    +            $result = $this->createTree('ptgLE', $result, $result2);
    +        } elseif ($this->currentToken == '>=') {
    +            $this->advance();
    +            $result2 = $this->expression();
    +            $result = $this->createTree('ptgGE', $result, $result2);
    +        } elseif ($this->currentToken == '=') {
    +            $this->advance();
    +            $result2 = $this->expression();
    +            $result = $this->createTree('ptgEQ', $result, $result2);
    +        } elseif ($this->currentToken == '<>') {
    +            $this->advance();
    +            $result2 = $this->expression();
    +            $result = $this->createTree('ptgNE', $result, $result2);
    +        } elseif ($this->currentToken == '&') {
    +            $this->advance();
    +            $result2 = $this->expression();
    +            $result = $this->createTree('ptgConcat', $result, $result2);
    +        }
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * It parses a expression. It assumes the following rule:
    +     * Expr -> Term [("+" | "-") Term]
    +     *      -> "string"
    +     *      -> "-" Term : Negative value
    +     *      -> "+" Term : Positive value
    +     *      -> Error code.
    +     *
    +     * @return mixed The parsed ptg'd tree on success
    +     */
    +    private function expression()
    +    {
    +        // If it's a string return a string node
    +        if (preg_match('/"([^"]|""){0,255}"/', $this->currentToken)) {
    +            $tmp = str_replace('""', '"', $this->currentToken);
    +            if (($tmp == '"') || ($tmp == '')) {
    +                //    Trap for "" that has been used for an empty string
    +                $tmp = '""';
    +            }
    +            $result = $this->createTree($tmp, '', '');
    +            $this->advance();
    +
    +            return $result;
    +        // If it's an error code
    +        } elseif (preg_match('/^#[A-Z0\\/]{3,5}[!?]{1}$/', $this->currentToken) or $this->currentToken == '#N/A') {
    +            $result = $this->createTree($this->currentToken, 'ptgErr', '');
    +            $this->advance();
    +
    +            return $result;
    +        // If it's a negative value
    +        } elseif ($this->currentToken == '-') {
    +            // catch "-" Term
    +            $this->advance();
    +            $result2 = $this->expression();
    +            $result = $this->createTree('ptgUminus', $result2, '');
    +
    +            return $result;
    +        // If it's a positive value
    +        } elseif ($this->currentToken == '+') {
    +            // catch "+" Term
    +            $this->advance();
    +            $result2 = $this->expression();
    +            $result = $this->createTree('ptgUplus', $result2, '');
    +
    +            return $result;
    +        }
    +        $result = $this->term();
    +        while (($this->currentToken == '+') or
    +               ($this->currentToken == '-') or
    +               ($this->currentToken == '^')) {
    +            if ($this->currentToken == '+') {
    +                $this->advance();
    +                $result2 = $this->term();
    +                $result = $this->createTree('ptgAdd', $result, $result2);
    +            } elseif ($this->currentToken == '-') {
    +                $this->advance();
    +                $result2 = $this->term();
    +                $result = $this->createTree('ptgSub', $result, $result2);
    +            } else {
    +                $this->advance();
    +                $result2 = $this->term();
    +                $result = $this->createTree('ptgPower', $result, $result2);
    +            }
    +        }
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * This function just introduces a ptgParen element in the tree, so that Excel
    +     * doesn't get confused when working with a parenthesized formula afterwards.
    +     *
    +     * @see fact()
    +     *
    +     * @return array The parsed ptg'd tree
    +     */
    +    private function parenthesizedExpression()
    +    {
    +        $result = $this->createTree('ptgParen', $this->expression(), '');
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * It parses a term. It assumes the following rule:
    +     * Term -> Fact [("*" | "/") Fact].
    +     *
    +     * @return mixed The parsed ptg'd tree on success
    +     */
    +    private function term()
    +    {
    +        $result = $this->fact();
    +        while (($this->currentToken == '*') or
    +               ($this->currentToken == '/')) {
    +            if ($this->currentToken == '*') {
    +                $this->advance();
    +                $result2 = $this->fact();
    +                $result = $this->createTree('ptgMul', $result, $result2);
    +            } else {
    +                $this->advance();
    +                $result2 = $this->fact();
    +                $result = $this->createTree('ptgDiv', $result, $result2);
    +            }
    +        }
    +
    +        return $result;
    +    }
    +
    +    /**
    +     * It parses a factor. It assumes the following rule:
    +     * Fact -> ( Expr )
    +     *       | CellRef
    +     *       | CellRange
    +     *       | Number
    +     *       | Function.
    +     *
    +     * @return mixed The parsed ptg'd tree on success
    +     */
    +    private function fact()
    +    {
    +        if ($this->currentToken == '(') {
    +            $this->advance(); // eat the "("
    +            $result = $this->parenthesizedExpression();
    +            if ($this->currentToken != ')') {
    +                throw new WriterException("')' token expected.");
    +            }
    +            $this->advance(); // eat the ")"
    +            return $result;
    +        }
    +        // if it's a reference
    +        if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?\d+$/', $this->currentToken)) {
    +            $result = $this->createTree($this->currentToken, '', '');
    +            $this->advance();
    +
    +            return $result;
    +        } elseif (preg_match('/^' . self::REGEX_SHEET_TITLE_UNQUOTED . '(\\:' . self::REGEX_SHEET_TITLE_UNQUOTED . ')?\\!\$?[A-Ia-i]?[A-Za-z]\$?\\d+$/u', $this->currentToken)) {
    +            // If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1 or Sheet1!$A$1 or Sheet1:Sheet2!$A$1)
    +            $result = $this->createTree($this->currentToken, '', '');
    +            $this->advance();
    +
    +            return $result;
    +        } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . '(\\:' . self::REGEX_SHEET_TITLE_QUOTED . ")?'\\!\\$?[A-Ia-i]?[A-Za-z]\\$?\\d+$/u", $this->currentToken)) {
    +            // If it's an external reference ('Sheet1'!A1 or 'Sheet1:Sheet2'!A1 or 'Sheet1'!$A$1 or 'Sheet1:Sheet2'!$A$1)
    +            $result = $this->createTree($this->currentToken, '', '');
    +            $this->advance();
    +
    +            return $result;
    +        } elseif (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?\d+:(\$)?[A-Ia-i]?[A-Za-z](\$)?\d+$/', $this->currentToken) or
    +                preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?\d+\.\.(\$)?[A-Ia-i]?[A-Za-z](\$)?\d+$/', $this->currentToken)) {
    +            // if it's a range A1:B2 or $A$1:$B$2
    +            // must be an error?
    +            $result = $this->createTree($this->currentToken, '', '');
    +            $this->advance();
    +
    +            return $result;
    +        } elseif (preg_match('/^' . self::REGEX_SHEET_TITLE_UNQUOTED . '(\\:' . self::REGEX_SHEET_TITLE_UNQUOTED . ')?\\!\$?([A-Ia-i]?[A-Za-z])?\$?\\d+:\$?([A-Ia-i]?[A-Za-z])?\$?\\d+$/u', $this->currentToken)) {
    +            // If it's an external range (Sheet1!A1:B2 or Sheet1:Sheet2!A1:B2 or Sheet1!$A$1:$B$2 or Sheet1:Sheet2!$A$1:$B$2)
    +            // must be an error?
    +            $result = $this->createTree($this->currentToken, '', '');
    +            $this->advance();
    +
    +            return $result;
    +        } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . '(\\:' . self::REGEX_SHEET_TITLE_QUOTED . ")?'\\!\\$?([A-Ia-i]?[A-Za-z])?\\$?\\d+:\\$?([A-Ia-i]?[A-Za-z])?\\$?\\d+$/u", $this->currentToken)) {
    +            // If it's an external range ('Sheet1'!A1:B2 or 'Sheet1'!A1:B2 or 'Sheet1'!$A$1:$B$2 or 'Sheet1'!$A$1:$B$2)
    +            // must be an error?
    +            $result = $this->createTree($this->currentToken, '', '');
    +            $this->advance();
    +
    +            return $result;
    +        } elseif (is_numeric($this->currentToken)) {
    +            // If it's a number or a percent
    +            if ($this->lookAhead == '%') {
    +                $result = $this->createTree('ptgPercent', $this->currentToken, '');
    +                $this->advance(); // Skip the percentage operator once we've pre-built that tree
    +            } else {
    +                $result = $this->createTree($this->currentToken, '', '');
    +            }
    +            $this->advance();
    +
    +            return $result;
    +        } elseif (preg_match("/^[A-Z0-9\xc0-\xdc\\.]+$/i", $this->currentToken)) {
    +            // if it's a function call
    +            $result = $this->func();
    +
    +            return $result;
    +        }
    +
    +        throw new WriterException('Syntax error: ' . $this->currentToken . ', lookahead: ' . $this->lookAhead . ', current char: ' . $this->currentCharacter);
    +    }
    +
    +    /**
    +     * It parses a function call. It assumes the following rule:
    +     * Func -> ( Expr [,Expr]* ).
    +     *
    +     * @return mixed The parsed ptg'd tree on success
    +     */
    +    private function func()
    +    {
    +        $num_args = 0; // number of arguments received
    +        $function = strtoupper($this->currentToken);
    +        $result = ''; // initialize result
    +        $this->advance();
    +        $this->advance(); // eat the "("
    +        while ($this->currentToken != ')') {
    +            if ($num_args > 0) {
    +                if ($this->currentToken == ',' || $this->currentToken == ';') {
    +                    $this->advance(); // eat the "," or ";"
    +                } else {
    +                    throw new WriterException("Syntax error: comma expected in function $function, arg #{$num_args}");
    +                }
    +                $result2 = $this->condition();
    +                $result = $this->createTree('arg', $result, $result2);
    +            } else { // first argument
    +                $result2 = $this->condition();
    +                $result = $this->createTree('arg', '', $result2);
    +            }
    +            ++$num_args;
    +        }
    +        if (!isset($this->functions[$function])) {
    +            throw new WriterException("Function $function() doesn't exist");
    +        }
    +        $args = $this->functions[$function][1];
    +        // If fixed number of args eg. TIME($i, $j, $k). Check that the number of args is valid.
    +        if (($args >= 0) and ($args != $num_args)) {
    +            throw new WriterException("Incorrect number of arguments in function $function() ");
    +        }
    +
    +        $result = $this->createTree($function, $result, $num_args);
    +        $this->advance(); // eat the ")"
    +        return $result;
    +    }
    +
    +    /**
    +     * Creates a tree. In fact an array which may have one or two arrays (sub-trees)
    +     * as elements.
    +     *
    +     * @param mixed $value the value of this node
    +     * @param mixed $left the left array (sub-tree) or a final node
    +     * @param mixed $right the right array (sub-tree) or a final node
    +     *
    +     * @return array A tree
    +     */
    +    private function createTree($value, $left, $right)
    +    {
    +        return ['value' => $value, 'left' => $left, 'right' => $right];
    +    }
    +
    +    /**
    +     * Builds a string containing the tree in reverse polish notation (What you
    +     * would use in a HP calculator stack).
    +     * The following tree:.
    +     *
    +     *    +
    +     *   / \
    +     *  2   3
    +     *
    +     * produces: "23+"
    +     *
    +     * The following tree:
    +     *
    +     *    +
    +     *   / \
    +     *  3   *
    +     *     / \
    +     *    6   A1
    +     *
    +     * produces: "36A1*+"
    +     *
    +     * In fact all operands, functions, references, etc... are written as ptg's
    +     *
    +     * @param array $tree the optional tree to convert
    +     *
    +     * @return string The tree in reverse polish notation
    +     */
    +    public function toReversePolish($tree = [])
    +    {
    +        $polish = ''; // the string we are going to return
    +        if (empty($tree)) { // If it's the first call use parseTree
    +            $tree = $this->parseTree;
    +        }
    +
    +        if (is_array($tree['left'])) {
    +            $converted_tree = $this->toReversePolish($tree['left']);
    +            $polish .= $converted_tree;
    +        } elseif ($tree['left'] != '') { // It's a final node
    +            $converted_tree = $this->convert($tree['left']);
    +            $polish .= $converted_tree;
    +        }
    +        if (is_array($tree['right'])) {
    +            $converted_tree = $this->toReversePolish($tree['right']);
    +            $polish .= $converted_tree;
    +        } elseif ($tree['right'] != '') { // It's a final node
    +            $converted_tree = $this->convert($tree['right']);
    +            $polish .= $converted_tree;
    +        }
    +        // if it's a function convert it here (so we can set it's arguments)
    +        if (preg_match("/^[A-Z0-9\xc0-\xdc\\.]+$/", $tree['value']) and
    +            !preg_match('/^([A-Ia-i]?[A-Za-z])(\d+)$/', $tree['value']) and
    +            !preg_match('/^[A-Ia-i]?[A-Za-z](\\d+)\\.\\.[A-Ia-i]?[A-Za-z](\\d+)$/', $tree['value']) and
    +            !is_numeric($tree['value']) and
    +            !isset($this->ptg[$tree['value']])) {
    +            // left subtree for a function is always an array.
    +            if ($tree['left'] != '') {
    +                $left_tree = $this->toReversePolish($tree['left']);
    +            } else {
    +                $left_tree = '';
    +            }
    +            // add it's left subtree and return.
    +            return $left_tree . $this->convertFunction($tree['value'], $tree['right']);
    +        }
    +        $converted_tree = $this->convert($tree['value']);
    +
    +        $polish .= $converted_tree;
    +
    +        return $polish;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Workbook.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Workbook.php
    new file mode 100644
    index 00000000000..b463ce4a8f0
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Workbook.php
    @@ -0,0 +1,1152 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xls;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\Style;
    +
    +// Original file header of PEAR::Spreadsheet_Excel_Writer_Workbook (used as the base for this class):
    +// -----------------------------------------------------------------------------------------
    +// /*
    +// *  Module written/ported by Xavier Noguer <xnoguer@rezebra.com>
    +// *
    +// *  The majority of this is _NOT_ my code.  I simply ported it from the
    +// *  PERL Spreadsheet::WriteExcel module.
    +// *
    +// *  The author of the Spreadsheet::WriteExcel module is John McNamara
    +// *  <jmcnamara@cpan.org>
    +// *
    +// *  I _DO_ maintain this code, and John McNamara has nothing to do with the
    +// *  porting of this code to PHP.  Any questions directly related to this
    +// *  class library should be directed to me.
    +// *
    +// *  License Information:
    +// *
    +// *    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets
    +// *    Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
    +// *
    +// *    This library is free software; you can redistribute it and/or
    +// *    modify it under the terms of the GNU Lesser General Public
    +// *    License as published by the Free Software Foundation; either
    +// *    version 2.1 of the License, or (at your option) any later version.
    +// *
    +// *    This library is distributed in the hope that it will be useful,
    +// *    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    +// *    Lesser General Public License for more details.
    +// *
    +// *    You should have received a copy of the GNU Lesser General Public
    +// *    License along with this library; if not, write to the Free Software
    +// *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +// */
    +class Workbook extends BIFFwriter
    +{
    +    /**
    +     * Formula parser.
    +     *
    +     * @var \PhpOffice\PhpSpreadsheet\Writer\Xls\Parser
    +     */
    +    private $parser;
    +
    +    /**
    +     * The BIFF file size for the workbook.
    +     *
    +     * @var int
    +     *
    +     * @see calcSheetOffsets()
    +     */
    +    private $biffSize;
    +
    +    /**
    +     * XF Writers.
    +     *
    +     * @var \PhpOffice\PhpSpreadsheet\Writer\Xls\Xf[]
    +     */
    +    private $xfWriters = [];
    +
    +    /**
    +     * Array containing the colour palette.
    +     *
    +     * @var array
    +     */
    +    private $palette;
    +
    +    /**
    +     * The codepage indicates the text encoding used for strings.
    +     *
    +     * @var int
    +     */
    +    private $codepage;
    +
    +    /**
    +     * The country code used for localization.
    +     *
    +     * @var int
    +     */
    +    private $countryCode;
    +
    +    /**
    +     * Workbook.
    +     *
    +     * @var Spreadsheet
    +     */
    +    private $spreadsheet;
    +
    +    /**
    +     * Fonts writers.
    +     *
    +     * @var Font[]
    +     */
    +    private $fontWriters = [];
    +
    +    /**
    +     * Added fonts. Maps from font's hash => index in workbook.
    +     *
    +     * @var array
    +     */
    +    private $addedFonts = [];
    +
    +    /**
    +     * Shared number formats.
    +     *
    +     * @var array
    +     */
    +    private $numberFormats = [];
    +
    +    /**
    +     * Added number formats. Maps from numberFormat's hash => index in workbook.
    +     *
    +     * @var array
    +     */
    +    private $addedNumberFormats = [];
    +
    +    /**
    +     * Sizes of the binary worksheet streams.
    +     *
    +     * @var array
    +     */
    +    private $worksheetSizes = [];
    +
    +    /**
    +     * Offsets of the binary worksheet streams relative to the start of the global workbook stream.
    +     *
    +     * @var array
    +     */
    +    private $worksheetOffsets = [];
    +
    +    /**
    +     * Total number of shared strings in workbook.
    +     *
    +     * @var int
    +     */
    +    private $stringTotal;
    +
    +    /**
    +     * Number of unique shared strings in workbook.
    +     *
    +     * @var int
    +     */
    +    private $stringUnique;
    +
    +    /**
    +     * Array of unique shared strings in workbook.
    +     *
    +     * @var array
    +     */
    +    private $stringTable;
    +
    +    /**
    +     * Color cache.
    +     */
    +    private $colors;
    +
    +    /**
    +     * Escher object corresponding to MSODRAWINGGROUP.
    +     *
    +     * @var \PhpOffice\PhpSpreadsheet\Shared\Escher
    +     */
    +    private $escher;
    +
    +    /**
    +     * Class constructor.
    +     *
    +     * @param Spreadsheet $spreadsheet The Workbook
    +     * @param int $str_total Total number of strings
    +     * @param int $str_unique Total number of unique strings
    +     * @param array $str_table String Table
    +     * @param array $colors Colour Table
    +     * @param Parser $parser The formula parser created for the Workbook
    +     */
    +    public function __construct(Spreadsheet $spreadsheet, &$str_total, &$str_unique, &$str_table, &$colors, Parser $parser)
    +    {
    +        // It needs to call its parent's constructor explicitly
    +        parent::__construct();
    +
    +        $this->parser = $parser;
    +        $this->biffSize = 0;
    +        $this->palette = [];
    +        $this->countryCode = -1;
    +
    +        $this->stringTotal = &$str_total;
    +        $this->stringUnique = &$str_unique;
    +        $this->stringTable = &$str_table;
    +        $this->colors = &$colors;
    +        $this->setPaletteXl97();
    +
    +        $this->spreadsheet = $spreadsheet;
    +
    +        $this->codepage = 0x04B0;
    +
    +        // Add empty sheets and Build color cache
    +        $countSheets = $spreadsheet->getSheetCount();
    +        for ($i = 0; $i < $countSheets; ++$i) {
    +            $phpSheet = $spreadsheet->getSheet($i);
    +
    +            $this->parser->setExtSheet($phpSheet->getTitle(), $i); // Register worksheet name with parser
    +
    +            $supbook_index = 0x00;
    +            $ref = pack('vvv', $supbook_index, $i, $i);
    +            $this->parser->references[] = $ref; // Register reference with parser
    +
    +            // Sheet tab colors?
    +            if ($phpSheet->isTabColorSet()) {
    +                $this->addColor($phpSheet->getTabColor()->getRGB());
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Add a new XF writer.
    +     *
    +     * @param Style $style
    +     * @param bool $isStyleXf Is it a style XF?
    +     *
    +     * @return int Index to XF record
    +     */
    +    public function addXfWriter(Style $style, $isStyleXf = false)
    +    {
    +        $xfWriter = new Xf($style);
    +        $xfWriter->setIsStyleXf($isStyleXf);
    +
    +        // Add the font if not already added
    +        $fontIndex = $this->addFont($style->getFont());
    +
    +        // Assign the font index to the xf record
    +        $xfWriter->setFontIndex($fontIndex);
    +
    +        // Background colors, best to treat these after the font so black will come after white in custom palette
    +        $xfWriter->setFgColor($this->addColor($style->getFill()->getStartColor()->getRGB()));
    +        $xfWriter->setBgColor($this->addColor($style->getFill()->getEndColor()->getRGB()));
    +        $xfWriter->setBottomColor($this->addColor($style->getBorders()->getBottom()->getColor()->getRGB()));
    +        $xfWriter->setTopColor($this->addColor($style->getBorders()->getTop()->getColor()->getRGB()));
    +        $xfWriter->setRightColor($this->addColor($style->getBorders()->getRight()->getColor()->getRGB()));
    +        $xfWriter->setLeftColor($this->addColor($style->getBorders()->getLeft()->getColor()->getRGB()));
    +        $xfWriter->setDiagColor($this->addColor($style->getBorders()->getDiagonal()->getColor()->getRGB()));
    +
    +        // Add the number format if it is not a built-in one and not already added
    +        if ($style->getNumberFormat()->getBuiltInFormatCode() === false) {
    +            $numberFormatHashCode = $style->getNumberFormat()->getHashCode();
    +
    +            if (isset($this->addedNumberFormats[$numberFormatHashCode])) {
    +                $numberFormatIndex = $this->addedNumberFormats[$numberFormatHashCode];
    +            } else {
    +                $numberFormatIndex = 164 + count($this->numberFormats);
    +                $this->numberFormats[$numberFormatIndex] = $style->getNumberFormat();
    +                $this->addedNumberFormats[$numberFormatHashCode] = $numberFormatIndex;
    +            }
    +        } else {
    +            $numberFormatIndex = (int) $style->getNumberFormat()->getBuiltInFormatCode();
    +        }
    +
    +        // Assign the number format index to xf record
    +        $xfWriter->setNumberFormatIndex($numberFormatIndex);
    +
    +        $this->xfWriters[] = $xfWriter;
    +
    +        $xfIndex = count($this->xfWriters) - 1;
    +
    +        return $xfIndex;
    +    }
    +
    +    /**
    +     * Add a font to added fonts.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Font $font
    +     *
    +     * @return int Index to FONT record
    +     */
    +    public function addFont(\PhpOffice\PhpSpreadsheet\Style\Font $font)
    +    {
    +        $fontHashCode = $font->getHashCode();
    +        if (isset($this->addedFonts[$fontHashCode])) {
    +            $fontIndex = $this->addedFonts[$fontHashCode];
    +        } else {
    +            $countFonts = count($this->fontWriters);
    +            $fontIndex = ($countFonts < 4) ? $countFonts : $countFonts + 1;
    +
    +            $fontWriter = new Font($font);
    +            $fontWriter->setColorIndex($this->addColor($font->getColor()->getRGB()));
    +            $this->fontWriters[] = $fontWriter;
    +
    +            $this->addedFonts[$fontHashCode] = $fontIndex;
    +        }
    +
    +        return $fontIndex;
    +    }
    +
    +    /**
    +     * Alter color palette adding a custom color.
    +     *
    +     * @param string $rgb E.g. 'FF00AA'
    +     *
    +     * @return int Color index
    +     */
    +    private function addColor($rgb)
    +    {
    +        if (!isset($this->colors[$rgb])) {
    +            $color =
    +                [
    +                    hexdec(substr($rgb, 0, 2)),
    +                    hexdec(substr($rgb, 2, 2)),
    +                    hexdec(substr($rgb, 4)),
    +                    0,
    +                ];
    +            $colorIndex = array_search($color, $this->palette);
    +            if ($colorIndex) {
    +                $this->colors[$rgb] = $colorIndex;
    +            } else {
    +                if (count($this->colors) == 0) {
    +                    $lastColor = 7;
    +                } else {
    +                    $lastColor = end($this->colors);
    +                }
    +                if ($lastColor < 57) {
    +                    // then we add a custom color altering the palette
    +                    $colorIndex = $lastColor + 1;
    +                    $this->palette[$colorIndex] = $color;
    +                    $this->colors[$rgb] = $colorIndex;
    +                } else {
    +                    // no room for more custom colors, just map to black
    +                    $colorIndex = 0;
    +                }
    +            }
    +        } else {
    +            // fetch already added custom color
    +            $colorIndex = $this->colors[$rgb];
    +        }
    +
    +        return $colorIndex;
    +    }
    +
    +    /**
    +     * Sets the colour palette to the Excel 97+ default.
    +     */
    +    private function setPaletteXl97()
    +    {
    +        $this->palette = [
    +            0x08 => [0x00, 0x00, 0x00, 0x00],
    +            0x09 => [0xff, 0xff, 0xff, 0x00],
    +            0x0A => [0xff, 0x00, 0x00, 0x00],
    +            0x0B => [0x00, 0xff, 0x00, 0x00],
    +            0x0C => [0x00, 0x00, 0xff, 0x00],
    +            0x0D => [0xff, 0xff, 0x00, 0x00],
    +            0x0E => [0xff, 0x00, 0xff, 0x00],
    +            0x0F => [0x00, 0xff, 0xff, 0x00],
    +            0x10 => [0x80, 0x00, 0x00, 0x00],
    +            0x11 => [0x00, 0x80, 0x00, 0x00],
    +            0x12 => [0x00, 0x00, 0x80, 0x00],
    +            0x13 => [0x80, 0x80, 0x00, 0x00],
    +            0x14 => [0x80, 0x00, 0x80, 0x00],
    +            0x15 => [0x00, 0x80, 0x80, 0x00],
    +            0x16 => [0xc0, 0xc0, 0xc0, 0x00],
    +            0x17 => [0x80, 0x80, 0x80, 0x00],
    +            0x18 => [0x99, 0x99, 0xff, 0x00],
    +            0x19 => [0x99, 0x33, 0x66, 0x00],
    +            0x1A => [0xff, 0xff, 0xcc, 0x00],
    +            0x1B => [0xcc, 0xff, 0xff, 0x00],
    +            0x1C => [0x66, 0x00, 0x66, 0x00],
    +            0x1D => [0xff, 0x80, 0x80, 0x00],
    +            0x1E => [0x00, 0x66, 0xcc, 0x00],
    +            0x1F => [0xcc, 0xcc, 0xff, 0x00],
    +            0x20 => [0x00, 0x00, 0x80, 0x00],
    +            0x21 => [0xff, 0x00, 0xff, 0x00],
    +            0x22 => [0xff, 0xff, 0x00, 0x00],
    +            0x23 => [0x00, 0xff, 0xff, 0x00],
    +            0x24 => [0x80, 0x00, 0x80, 0x00],
    +            0x25 => [0x80, 0x00, 0x00, 0x00],
    +            0x26 => [0x00, 0x80, 0x80, 0x00],
    +            0x27 => [0x00, 0x00, 0xff, 0x00],
    +            0x28 => [0x00, 0xcc, 0xff, 0x00],
    +            0x29 => [0xcc, 0xff, 0xff, 0x00],
    +            0x2A => [0xcc, 0xff, 0xcc, 0x00],
    +            0x2B => [0xff, 0xff, 0x99, 0x00],
    +            0x2C => [0x99, 0xcc, 0xff, 0x00],
    +            0x2D => [0xff, 0x99, 0xcc, 0x00],
    +            0x2E => [0xcc, 0x99, 0xff, 0x00],
    +            0x2F => [0xff, 0xcc, 0x99, 0x00],
    +            0x30 => [0x33, 0x66, 0xff, 0x00],
    +            0x31 => [0x33, 0xcc, 0xcc, 0x00],
    +            0x32 => [0x99, 0xcc, 0x00, 0x00],
    +            0x33 => [0xff, 0xcc, 0x00, 0x00],
    +            0x34 => [0xff, 0x99, 0x00, 0x00],
    +            0x35 => [0xff, 0x66, 0x00, 0x00],
    +            0x36 => [0x66, 0x66, 0x99, 0x00],
    +            0x37 => [0x96, 0x96, 0x96, 0x00],
    +            0x38 => [0x00, 0x33, 0x66, 0x00],
    +            0x39 => [0x33, 0x99, 0x66, 0x00],
    +            0x3A => [0x00, 0x33, 0x00, 0x00],
    +            0x3B => [0x33, 0x33, 0x00, 0x00],
    +            0x3C => [0x99, 0x33, 0x00, 0x00],
    +            0x3D => [0x99, 0x33, 0x66, 0x00],
    +            0x3E => [0x33, 0x33, 0x99, 0x00],
    +            0x3F => [0x33, 0x33, 0x33, 0x00],
    +        ];
    +    }
    +
    +    /**
    +     * Assemble worksheets into a workbook and send the BIFF data to an OLE
    +     * storage.
    +     *
    +     * @param array $pWorksheetSizes The sizes in bytes of the binary worksheet streams
    +     *
    +     * @return string Binary data for workbook stream
    +     */
    +    public function writeWorkbook(array $pWorksheetSizes)
    +    {
    +        $this->worksheetSizes = $pWorksheetSizes;
    +
    +        // Calculate the number of selected worksheet tabs and call the finalization
    +        // methods for each worksheet
    +        $total_worksheets = $this->spreadsheet->getSheetCount();
    +
    +        // Add part 1 of the Workbook globals, what goes before the SHEET records
    +        $this->storeBof(0x0005);
    +        $this->writeCodepage();
    +        $this->writeWindow1();
    +
    +        $this->writeDateMode();
    +        $this->writeAllFonts();
    +        $this->writeAllNumberFormats();
    +        $this->writeAllXfs();
    +        $this->writeAllStyles();
    +        $this->writePalette();
    +
    +        // Prepare part 3 of the workbook global stream, what goes after the SHEET records
    +        $part3 = '';
    +        if ($this->countryCode != -1) {
    +            $part3 .= $this->writeCountry();
    +        }
    +        $part3 .= $this->writeRecalcId();
    +
    +        $part3 .= $this->writeSupbookInternal();
    +        /* TODO: store external SUPBOOK records and XCT and CRN records
    +        in case of external references for BIFF8 */
    +        $part3 .= $this->writeExternalsheetBiff8();
    +        $part3 .= $this->writeAllDefinedNamesBiff8();
    +        $part3 .= $this->writeMsoDrawingGroup();
    +        $part3 .= $this->writeSharedStringsTable();
    +
    +        $part3 .= $this->writeEof();
    +
    +        // Add part 2 of the Workbook globals, the SHEET records
    +        $this->calcSheetOffsets();
    +        for ($i = 0; $i < $total_worksheets; ++$i) {
    +            $this->writeBoundSheet($this->spreadsheet->getSheet($i), $this->worksheetOffsets[$i]);
    +        }
    +
    +        // Add part 3 of the Workbook globals
    +        $this->_data .= $part3;
    +
    +        return $this->_data;
    +    }
    +
    +    /**
    +     * Calculate offsets for Worksheet BOF records.
    +     */
    +    private function calcSheetOffsets()
    +    {
    +        $boundsheet_length = 10; // fixed length for a BOUNDSHEET record
    +
    +        // size of Workbook globals part 1 + 3
    +        $offset = $this->_datasize;
    +
    +        // add size of Workbook globals part 2, the length of the SHEET records
    +        $total_worksheets = count($this->spreadsheet->getAllSheets());
    +        foreach ($this->spreadsheet->getWorksheetIterator() as $sheet) {
    +            $offset += $boundsheet_length + strlen(StringHelper::UTF8toBIFF8UnicodeShort($sheet->getTitle()));
    +        }
    +
    +        // add the sizes of each of the Sheet substreams, respectively
    +        for ($i = 0; $i < $total_worksheets; ++$i) {
    +            $this->worksheetOffsets[$i] = $offset;
    +            $offset += $this->worksheetSizes[$i];
    +        }
    +        $this->biffSize = $offset;
    +    }
    +
    +    /**
    +     * Store the Excel FONT records.
    +     */
    +    private function writeAllFonts()
    +    {
    +        foreach ($this->fontWriters as $fontWriter) {
    +            $this->append($fontWriter->writeFont());
    +        }
    +    }
    +
    +    /**
    +     * Store user defined numerical formats i.e. FORMAT records.
    +     */
    +    private function writeAllNumberFormats()
    +    {
    +        foreach ($this->numberFormats as $numberFormatIndex => $numberFormat) {
    +            $this->writeNumberFormat($numberFormat->getFormatCode(), $numberFormatIndex);
    +        }
    +    }
    +
    +    /**
    +     * Write all XF records.
    +     */
    +    private function writeAllXfs()
    +    {
    +        foreach ($this->xfWriters as $xfWriter) {
    +            $this->append($xfWriter->writeXf());
    +        }
    +    }
    +
    +    /**
    +     * Write all STYLE records.
    +     */
    +    private function writeAllStyles()
    +    {
    +        $this->writeStyle();
    +    }
    +
    +    /**
    +     * Writes all the DEFINEDNAME records (BIFF8).
    +     * So far this is only used for repeating rows/columns (print titles) and print areas.
    +     */
    +    private function writeAllDefinedNamesBiff8()
    +    {
    +        $chunk = '';
    +
    +        // Named ranges
    +        if (count($this->spreadsheet->getNamedRanges()) > 0) {
    +            // Loop named ranges
    +            $namedRanges = $this->spreadsheet->getNamedRanges();
    +            foreach ($namedRanges as $namedRange) {
    +                // Create absolute coordinate
    +                $range = Coordinate::splitRange($namedRange->getRange());
    +                $iMax = count($range);
    +                for ($i = 0; $i < $iMax; ++$i) {
    +                    $range[$i][0] = '\'' . str_replace("'", "''", $namedRange->getWorksheet()->getTitle()) . '\'!' . Coordinate::absoluteCoordinate($range[$i][0]);
    +                    if (isset($range[$i][1])) {
    +                        $range[$i][1] = Coordinate::absoluteCoordinate($range[$i][1]);
    +                    }
    +                }
    +                $range = Coordinate::buildRange($range); // e.g. Sheet1!$A$1:$B$2
    +
    +                // parse formula
    +                try {
    +                    $error = $this->parser->parse($range);
    +                    $formulaData = $this->parser->toReversePolish();
    +
    +                    // make sure tRef3d is of type tRef3dR (0x3A)
    +                    if (isset($formulaData[0]) and ($formulaData[0] == "\x7A" or $formulaData[0] == "\x5A")) {
    +                        $formulaData = "\x3A" . substr($formulaData, 1);
    +                    }
    +
    +                    if ($namedRange->getLocalOnly()) {
    +                        // local scope
    +                        $scope = $this->spreadsheet->getIndex($namedRange->getScope()) + 1;
    +                    } else {
    +                        // global scope
    +                        $scope = 0;
    +                    }
    +                    $chunk .= $this->writeData($this->writeDefinedNameBiff8($namedRange->getName(), $formulaData, $scope, false));
    +                } catch (PhpSpreadsheetException $e) {
    +                    // do nothing
    +                }
    +            }
    +        }
    +
    +        // total number of sheets
    +        $total_worksheets = $this->spreadsheet->getSheetCount();
    +
    +        // write the print titles (repeating rows, columns), if any
    +        for ($i = 0; $i < $total_worksheets; ++$i) {
    +            $sheetSetup = $this->spreadsheet->getSheet($i)->getPageSetup();
    +            // simultaneous repeatColumns repeatRows
    +            if ($sheetSetup->isColumnsToRepeatAtLeftSet() && $sheetSetup->isRowsToRepeatAtTopSet()) {
    +                $repeat = $sheetSetup->getColumnsToRepeatAtLeft();
    +                $colmin = Coordinate::columnIndexFromString($repeat[0]) - 1;
    +                $colmax = Coordinate::columnIndexFromString($repeat[1]) - 1;
    +
    +                $repeat = $sheetSetup->getRowsToRepeatAtTop();
    +                $rowmin = $repeat[0] - 1;
    +                $rowmax = $repeat[1] - 1;
    +
    +                // construct formula data manually
    +                $formulaData = pack('Cv', 0x29, 0x17); // tMemFunc
    +                $formulaData .= pack('Cvvvvv', 0x3B, $i, 0, 65535, $colmin, $colmax); // tArea3d
    +                $formulaData .= pack('Cvvvvv', 0x3B, $i, $rowmin, $rowmax, 0, 255); // tArea3d
    +                $formulaData .= pack('C', 0x10); // tList
    +
    +                // store the DEFINEDNAME record
    +                $chunk .= $this->writeData($this->writeDefinedNameBiff8(pack('C', 0x07), $formulaData, $i + 1, true));
    +
    +            // (exclusive) either repeatColumns or repeatRows
    +            } elseif ($sheetSetup->isColumnsToRepeatAtLeftSet() || $sheetSetup->isRowsToRepeatAtTopSet()) {
    +                // Columns to repeat
    +                if ($sheetSetup->isColumnsToRepeatAtLeftSet()) {
    +                    $repeat = $sheetSetup->getColumnsToRepeatAtLeft();
    +                    $colmin = Coordinate::columnIndexFromString($repeat[0]) - 1;
    +                    $colmax = Coordinate::columnIndexFromString($repeat[1]) - 1;
    +                } else {
    +                    $colmin = 0;
    +                    $colmax = 255;
    +                }
    +                // Rows to repeat
    +                if ($sheetSetup->isRowsToRepeatAtTopSet()) {
    +                    $repeat = $sheetSetup->getRowsToRepeatAtTop();
    +                    $rowmin = $repeat[0] - 1;
    +                    $rowmax = $repeat[1] - 1;
    +                } else {
    +                    $rowmin = 0;
    +                    $rowmax = 65535;
    +                }
    +
    +                // construct formula data manually because parser does not recognize absolute 3d cell references
    +                $formulaData = pack('Cvvvvv', 0x3B, $i, $rowmin, $rowmax, $colmin, $colmax);
    +
    +                // store the DEFINEDNAME record
    +                $chunk .= $this->writeData($this->writeDefinedNameBiff8(pack('C', 0x07), $formulaData, $i + 1, true));
    +            }
    +        }
    +
    +        // write the print areas, if any
    +        for ($i = 0; $i < $total_worksheets; ++$i) {
    +            $sheetSetup = $this->spreadsheet->getSheet($i)->getPageSetup();
    +            if ($sheetSetup->isPrintAreaSet()) {
    +                // Print area, e.g. A3:J6,H1:X20
    +                $printArea = Coordinate::splitRange($sheetSetup->getPrintArea());
    +                $countPrintArea = count($printArea);
    +
    +                $formulaData = '';
    +                for ($j = 0; $j < $countPrintArea; ++$j) {
    +                    $printAreaRect = $printArea[$j]; // e.g. A3:J6
    +                    $printAreaRect[0] = Coordinate::coordinateFromString($printAreaRect[0]);
    +                    $printAreaRect[1] = Coordinate::coordinateFromString($printAreaRect[1]);
    +
    +                    $print_rowmin = $printAreaRect[0][1] - 1;
    +                    $print_rowmax = $printAreaRect[1][1] - 1;
    +                    $print_colmin = Coordinate::columnIndexFromString($printAreaRect[0][0]) - 1;
    +                    $print_colmax = Coordinate::columnIndexFromString($printAreaRect[1][0]) - 1;
    +
    +                    // construct formula data manually because parser does not recognize absolute 3d cell references
    +                    $formulaData .= pack('Cvvvvv', 0x3B, $i, $print_rowmin, $print_rowmax, $print_colmin, $print_colmax);
    +
    +                    if ($j > 0) {
    +                        $formulaData .= pack('C', 0x10); // list operator token ','
    +                    }
    +                }
    +
    +                // store the DEFINEDNAME record
    +                $chunk .= $this->writeData($this->writeDefinedNameBiff8(pack('C', 0x06), $formulaData, $i + 1, true));
    +            }
    +        }
    +
    +        // write autofilters, if any
    +        for ($i = 0; $i < $total_worksheets; ++$i) {
    +            $sheetAutoFilter = $this->spreadsheet->getSheet($i)->getAutoFilter();
    +            $autoFilterRange = $sheetAutoFilter->getRange();
    +            if (!empty($autoFilterRange)) {
    +                $rangeBounds = Coordinate::rangeBoundaries($autoFilterRange);
    +
    +                //Autofilter built in name
    +                $name = pack('C', 0x0D);
    +
    +                $chunk .= $this->writeData($this->writeShortNameBiff8($name, $i + 1, $rangeBounds, true));
    +            }
    +        }
    +
    +        return $chunk;
    +    }
    +
    +    /**
    +     * Write a DEFINEDNAME record for BIFF8 using explicit binary formula data.
    +     *
    +     * @param string $name The name in UTF-8
    +     * @param string $formulaData The binary formula data
    +     * @param int $sheetIndex 1-based sheet index the defined name applies to. 0 = global
    +     * @param bool $isBuiltIn Built-in name?
    +     *
    +     * @return string Complete binary record data
    +     */
    +    private function writeDefinedNameBiff8($name, $formulaData, $sheetIndex = 0, $isBuiltIn = false)
    +    {
    +        $record = 0x0018;
    +
    +        // option flags
    +        $options = $isBuiltIn ? 0x20 : 0x00;
    +
    +        // length of the name, character count
    +        $nlen = StringHelper::countCharacters($name);
    +
    +        // name with stripped length field
    +        $name = substr(StringHelper::UTF8toBIFF8UnicodeLong($name), 2);
    +
    +        // size of the formula (in bytes)
    +        $sz = strlen($formulaData);
    +
    +        // combine the parts
    +        $data = pack('vCCvvvCCCC', $options, 0, $nlen, $sz, 0, $sheetIndex, 0, 0, 0, 0)
    +            . $name . $formulaData;
    +        $length = strlen($data);
    +
    +        $header = pack('vv', $record, $length);
    +
    +        return $header . $data;
    +    }
    +
    +    /**
    +     * Write a short NAME record.
    +     *
    +     * @param string $name
    +     * @param string $sheetIndex 1-based sheet index the defined name applies to. 0 = global
    +     * @param integer[][] $rangeBounds range boundaries
    +     * @param bool $isHidden
    +     *
    +     * @return string Complete binary record data
    +     * */
    +    private function writeShortNameBiff8($name, $sheetIndex, $rangeBounds, $isHidden = false)
    +    {
    +        $record = 0x0018;
    +
    +        // option flags
    +        $options = ($isHidden ? 0x21 : 0x00);
    +
    +        $extra = pack(
    +            'Cvvvvv',
    +            0x3B,
    +            $sheetIndex - 1,
    +            $rangeBounds[0][1] - 1,
    +            $rangeBounds[1][1] - 1,
    +            $rangeBounds[0][0] - 1,
    +            $rangeBounds[1][0] - 1
    +        );
    +
    +        // size of the formula (in bytes)
    +        $sz = strlen($extra);
    +
    +        // combine the parts
    +        $data = pack('vCCvvvCCCCC', $options, 0, 1, $sz, 0, $sheetIndex, 0, 0, 0, 0, 0)
    +            . $name . $extra;
    +        $length = strlen($data);
    +
    +        $header = pack('vv', $record, $length);
    +
    +        return $header . $data;
    +    }
    +
    +    /**
    +     * Stores the CODEPAGE biff record.
    +     */
    +    private function writeCodepage()
    +    {
    +        $record = 0x0042; // Record identifier
    +        $length = 0x0002; // Number of bytes to follow
    +        $cv = $this->codepage; // The code page
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $cv);
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write Excel BIFF WINDOW1 record.
    +     */
    +    private function writeWindow1()
    +    {
    +        $record = 0x003D; // Record identifier
    +        $length = 0x0012; // Number of bytes to follow
    +
    +        $xWn = 0x0000; // Horizontal position of window
    +        $yWn = 0x0000; // Vertical position of window
    +        $dxWn = 0x25BC; // Width of window
    +        $dyWn = 0x1572; // Height of window
    +
    +        $grbit = 0x0038; // Option flags
    +
    +        // not supported by PhpSpreadsheet, so there is only one selected sheet, the active
    +        $ctabsel = 1; // Number of workbook tabs selected
    +
    +        $wTabRatio = 0x0258; // Tab to scrollbar ratio
    +
    +        // not supported by PhpSpreadsheet, set to 0
    +        $itabFirst = 0; // 1st displayed worksheet
    +        $itabCur = $this->spreadsheet->getActiveSheetIndex(); // Active worksheet
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvvvvvvvv', $xWn, $yWn, $dxWn, $dyWn, $grbit, $itabCur, $itabFirst, $ctabsel, $wTabRatio);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Writes Excel BIFF BOUNDSHEET record.
    +     *
    +     * @param Worksheet $sheet Worksheet name
    +     * @param int $offset Location of worksheet BOF
    +     */
    +    private function writeBoundSheet($sheet, $offset)
    +    {
    +        $sheetname = $sheet->getTitle();
    +        $record = 0x0085; // Record identifier
    +
    +        // sheet state
    +        switch ($sheet->getSheetState()) {
    +            case \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::SHEETSTATE_VISIBLE:
    +                $ss = 0x00;
    +
    +                break;
    +            case \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::SHEETSTATE_HIDDEN:
    +                $ss = 0x01;
    +
    +                break;
    +            case \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::SHEETSTATE_VERYHIDDEN:
    +                $ss = 0x02;
    +
    +                break;
    +            default:
    +                $ss = 0x00;
    +
    +                break;
    +        }
    +
    +        // sheet type
    +        $st = 0x00;
    +
    +        $grbit = 0x0000; // Visibility and sheet type
    +
    +        $data = pack('VCC', $offset, $ss, $st);
    +        $data .= StringHelper::UTF8toBIFF8UnicodeShort($sheetname);
    +
    +        $length = strlen($data);
    +        $header = pack('vv', $record, $length);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write Internal SUPBOOK record.
    +     */
    +    private function writeSupbookInternal()
    +    {
    +        $record = 0x01AE; // Record identifier
    +        $length = 0x0004; // Bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vv', $this->spreadsheet->getSheetCount(), 0x0401);
    +
    +        return $this->writeData($header . $data);
    +    }
    +
    +    /**
    +     * Writes the Excel BIFF EXTERNSHEET record. These references are used by
    +     * formulas.
    +     */
    +    private function writeExternalsheetBiff8()
    +    {
    +        $totalReferences = count($this->parser->references);
    +        $record = 0x0017; // Record identifier
    +        $length = 2 + 6 * $totalReferences; // Number of bytes to follow
    +
    +        $supbook_index = 0; // FIXME: only using internal SUPBOOK record
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $totalReferences);
    +        for ($i = 0; $i < $totalReferences; ++$i) {
    +            $data .= $this->parser->references[$i];
    +        }
    +
    +        return $this->writeData($header . $data);
    +    }
    +
    +    /**
    +     * Write Excel BIFF STYLE records.
    +     */
    +    private function writeStyle()
    +    {
    +        $record = 0x0293; // Record identifier
    +        $length = 0x0004; // Bytes to follow
    +
    +        $ixfe = 0x8000; // Index to cell style XF
    +        $BuiltIn = 0x00; // Built-in style
    +        $iLevel = 0xff; // Outline style level
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vCC', $ixfe, $BuiltIn, $iLevel);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Writes Excel FORMAT record for non "built-in" numerical formats.
    +     *
    +     * @param string $format Custom format string
    +     * @param int $ifmt Format index code
    +     */
    +    private function writeNumberFormat($format, $ifmt)
    +    {
    +        $record = 0x041E; // Record identifier
    +
    +        $numberFormatString = StringHelper::UTF8toBIFF8UnicodeLong($format);
    +        $length = 2 + strlen($numberFormatString); // Number of bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $ifmt) . $numberFormatString;
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write DATEMODE record to indicate the date system in use (1904 or 1900).
    +     */
    +    private function writeDateMode()
    +    {
    +        $record = 0x0022; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +
    +        $f1904 = (Date::getExcelCalendar() == Date::CALENDAR_MAC_1904)
    +            ? 1
    +            : 0; // Flag for 1904 date system
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $f1904);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Stores the COUNTRY record for localization.
    +     *
    +     * @return string
    +     */
    +    private function writeCountry()
    +    {
    +        $record = 0x008C; // Record identifier
    +        $length = 4; // Number of bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +        // using the same country code always for simplicity
    +        $data = pack('vv', $this->countryCode, $this->countryCode);
    +
    +        return $this->writeData($header . $data);
    +    }
    +
    +    /**
    +     * Write the RECALCID record.
    +     *
    +     * @return string
    +     */
    +    private function writeRecalcId()
    +    {
    +        $record = 0x01C1; // Record identifier
    +        $length = 8; // Number of bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +
    +        // by inspection of real Excel files, MS Office Excel 2007 writes this
    +        $data = pack('VV', 0x000001C1, 0x00001E667);
    +
    +        return $this->writeData($header . $data);
    +    }
    +
    +    /**
    +     * Stores the PALETTE biff record.
    +     */
    +    private function writePalette()
    +    {
    +        $aref = $this->palette;
    +
    +        $record = 0x0092; // Record identifier
    +        $length = 2 + 4 * count($aref); // Number of bytes to follow
    +        $ccv = count($aref); // Number of RGB values to follow
    +        $data = ''; // The RGB data
    +
    +        // Pack the RGB data
    +        foreach ($aref as $color) {
    +            foreach ($color as $byte) {
    +                $data .= pack('C', $byte);
    +            }
    +        }
    +
    +        $header = pack('vvv', $record, $length, $ccv);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Handling of the SST continue blocks is complicated by the need to include an
    +     * additional continuation byte depending on whether the string is split between
    +     * blocks or whether it starts at the beginning of the block. (There are also
    +     * additional complications that will arise later when/if Rich Strings are
    +     * supported).
    +     *
    +     * The Excel documentation says that the SST record should be followed by an
    +     * EXTSST record. The EXTSST record is a hash table that is used to optimise
    +     * access to SST. However, despite the documentation it doesn't seem to be
    +     * required so we will ignore it.
    +     *
    +     * @return string Binary data
    +     */
    +    private function writeSharedStringsTable()
    +    {
    +        // maximum size of record data (excluding record header)
    +        $continue_limit = 8224;
    +
    +        // initialize array of record data blocks
    +        $recordDatas = [];
    +
    +        // start SST record data block with total number of strings, total number of unique strings
    +        $recordData = pack('VV', $this->stringTotal, $this->stringUnique);
    +
    +        // loop through all (unique) strings in shared strings table
    +        foreach (array_keys($this->stringTable) as $string) {
    +            // here $string is a BIFF8 encoded string
    +
    +            // length = character count
    +            $headerinfo = unpack('vlength/Cencoding', $string);
    +
    +            // currently, this is always 1 = uncompressed
    +            $encoding = $headerinfo['encoding'];
    +
    +            // initialize finished writing current $string
    +            $finished = false;
    +
    +            while ($finished === false) {
    +                // normally, there will be only one cycle, but if string cannot immediately be written as is
    +                // there will be need for more than one cylcle, if string longer than one record data block, there
    +                // may be need for even more cycles
    +
    +                if (strlen($recordData) + strlen($string) <= $continue_limit) {
    +                    // then we can write the string (or remainder of string) without any problems
    +                    $recordData .= $string;
    +
    +                    if (strlen($recordData) + strlen($string) == $continue_limit) {
    +                        // we close the record data block, and initialize a new one
    +                        $recordDatas[] = $recordData;
    +                        $recordData = '';
    +                    }
    +
    +                    // we are finished writing this string
    +                    $finished = true;
    +                } else {
    +                    // special treatment writing the string (or remainder of the string)
    +                    // If the string is very long it may need to be written in more than one CONTINUE record.
    +
    +                    // check how many bytes more there is room for in the current record
    +                    $space_remaining = $continue_limit - strlen($recordData);
    +
    +                    // minimum space needed
    +                    // uncompressed: 2 byte string length length field + 1 byte option flags + 2 byte character
    +                    // compressed:   2 byte string length length field + 1 byte option flags + 1 byte character
    +                    $min_space_needed = ($encoding == 1) ? 5 : 4;
    +
    +                    // We have two cases
    +                    // 1. space remaining is less than minimum space needed
    +                    //        here we must waste the space remaining and move to next record data block
    +                    // 2. space remaining is greater than or equal to minimum space needed
    +                    //        here we write as much as we can in the current block, then move to next record data block
    +
    +                    // 1. space remaining is less than minimum space needed
    +                    if ($space_remaining < $min_space_needed) {
    +                        // we close the block, store the block data
    +                        $recordDatas[] = $recordData;
    +
    +                        // and start new record data block where we start writing the string
    +                        $recordData = '';
    +
    +                    // 2. space remaining is greater than or equal to minimum space needed
    +                    } else {
    +                        // initialize effective remaining space, for Unicode strings this may need to be reduced by 1, see below
    +                        $effective_space_remaining = $space_remaining;
    +
    +                        // for uncompressed strings, sometimes effective space remaining is reduced by 1
    +                        if ($encoding == 1 && (strlen($string) - $space_remaining) % 2 == 1) {
    +                            --$effective_space_remaining;
    +                        }
    +
    +                        // one block fininshed, store the block data
    +                        $recordData .= substr($string, 0, $effective_space_remaining);
    +
    +                        $string = substr($string, $effective_space_remaining); // for next cycle in while loop
    +                        $recordDatas[] = $recordData;
    +
    +                        // start new record data block with the repeated option flags
    +                        $recordData = pack('C', $encoding);
    +                    }
    +                }
    +            }
    +        }
    +
    +        // Store the last record data block unless it is empty
    +        // if there was no need for any continue records, this will be the for SST record data block itself
    +        if (strlen($recordData) > 0) {
    +            $recordDatas[] = $recordData;
    +        }
    +
    +        // combine into one chunk with all the blocks SST, CONTINUE,...
    +        $chunk = '';
    +        foreach ($recordDatas as $i => $recordData) {
    +            // first block should have the SST record header, remaing should have CONTINUE header
    +            $record = ($i == 0) ? 0x00FC : 0x003C;
    +
    +            $header = pack('vv', $record, strlen($recordData));
    +            $data = $header . $recordData;
    +
    +            $chunk .= $this->writeData($data);
    +        }
    +
    +        return $chunk;
    +    }
    +
    +    /**
    +     * Writes the MSODRAWINGGROUP record if needed. Possibly split using CONTINUE records.
    +     */
    +    private function writeMsoDrawingGroup()
    +    {
    +        // write the Escher stream if necessary
    +        if (isset($this->escher)) {
    +            $writer = new Escher($this->escher);
    +            $data = $writer->close();
    +
    +            $record = 0x00EB;
    +            $length = strlen($data);
    +            $header = pack('vv', $record, $length);
    +
    +            return $this->writeData($header . $data);
    +        }
    +
    +        return '';
    +    }
    +
    +    /**
    +     * Get Escher object.
    +     *
    +     * @return \PhpOffice\PhpSpreadsheet\Shared\Escher
    +     */
    +    public function getEscher()
    +    {
    +        return $this->escher;
    +    }
    +
    +    /**
    +     * Set Escher object.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Shared\Escher $pValue
    +     */
    +    public function setEscher(\PhpOffice\PhpSpreadsheet\Shared\Escher $pValue = null)
    +    {
    +        $this->escher = $pValue;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Worksheet.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Worksheet.php
    new file mode 100644
    index 00000000000..db63fa34423
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Worksheet.php
    @@ -0,0 +1,4447 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xls;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Cell\DataType;
    +use PhpOffice\PhpSpreadsheet\Cell\DataValidation;
    +use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\RichText\Run;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Shared\Xls;
    +use PhpOffice\PhpSpreadsheet\Style\Alignment;
    +use PhpOffice\PhpSpreadsheet\Style\Border;
    +use PhpOffice\PhpSpreadsheet\Style\Color;
    +use PhpOffice\PhpSpreadsheet\Style\Conditional;
    +use PhpOffice\PhpSpreadsheet\Style\Fill;
    +use PhpOffice\PhpSpreadsheet\Style\Protection;
    +use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
    +use PhpOffice\PhpSpreadsheet\Worksheet\SheetView;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +// Original file header of PEAR::Spreadsheet_Excel_Writer_Worksheet (used as the base for this class):
    +// -----------------------------------------------------------------------------------------
    +// /*
    +// *  Module written/ported by Xavier Noguer <xnoguer@rezebra.com>
    +// *
    +// *  The majority of this is _NOT_ my code.  I simply ported it from the
    +// *  PERL Spreadsheet::WriteExcel module.
    +// *
    +// *  The author of the Spreadsheet::WriteExcel module is John McNamara
    +// *  <jmcnamara@cpan.org>
    +// *
    +// *  I _DO_ maintain this code, and John McNamara has nothing to do with the
    +// *  porting of this code to PHP.  Any questions directly related to this
    +// *  class library should be directed to me.
    +// *
    +// *  License Information:
    +// *
    +// *    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets
    +// *    Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
    +// *
    +// *    This library is free software; you can redistribute it and/or
    +// *    modify it under the terms of the GNU Lesser General Public
    +// *    License as published by the Free Software Foundation; either
    +// *    version 2.1 of the License, or (at your option) any later version.
    +// *
    +// *    This library is distributed in the hope that it will be useful,
    +// *    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    +// *    Lesser General Public License for more details.
    +// *
    +// *    You should have received a copy of the GNU Lesser General Public
    +// *    License along with this library; if not, write to the Free Software
    +// *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +// */
    +class Worksheet extends BIFFwriter
    +{
    +    /**
    +     * Formula parser.
    +     *
    +     * @var \PhpOffice\PhpSpreadsheet\Writer\Xls\Parser
    +     */
    +    private $parser;
    +
    +    /**
    +     * Maximum number of characters for a string (LABEL record in BIFF5).
    +     *
    +     * @var int
    +     */
    +    private $xlsStringMaxLength;
    +
    +    /**
    +     * Array containing format information for columns.
    +     *
    +     * @var array
    +     */
    +    private $columnInfo;
    +
    +    /**
    +     * Array containing the selected area for the worksheet.
    +     *
    +     * @var array
    +     */
    +    private $selection;
    +
    +    /**
    +     * The active pane for the worksheet.
    +     *
    +     * @var int
    +     */
    +    private $activePane;
    +
    +    /**
    +     * Whether to use outline.
    +     *
    +     * @var int
    +     */
    +    private $outlineOn;
    +
    +    /**
    +     * Auto outline styles.
    +     *
    +     * @var bool
    +     */
    +    private $outlineStyle;
    +
    +    /**
    +     * Whether to have outline summary below.
    +     *
    +     * @var bool
    +     */
    +    private $outlineBelow;
    +
    +    /**
    +     * Whether to have outline summary at the right.
    +     *
    +     * @var bool
    +     */
    +    private $outlineRight;
    +
    +    /**
    +     * Reference to the total number of strings in the workbook.
    +     *
    +     * @var int
    +     */
    +    private $stringTotal;
    +
    +    /**
    +     * Reference to the number of unique strings in the workbook.
    +     *
    +     * @var int
    +     */
    +    private $stringUnique;
    +
    +    /**
    +     * Reference to the array containing all the unique strings in the workbook.
    +     *
    +     * @var array
    +     */
    +    private $stringTable;
    +
    +    /**
    +     * Color cache.
    +     */
    +    private $colors;
    +
    +    /**
    +     * Index of first used row (at least 0).
    +     *
    +     * @var int
    +     */
    +    private $firstRowIndex;
    +
    +    /**
    +     * Index of last used row. (no used rows means -1).
    +     *
    +     * @var int
    +     */
    +    private $lastRowIndex;
    +
    +    /**
    +     * Index of first used column (at least 0).
    +     *
    +     * @var int
    +     */
    +    private $firstColumnIndex;
    +
    +    /**
    +     * Index of last used column (no used columns means -1).
    +     *
    +     * @var int
    +     */
    +    private $lastColumnIndex;
    +
    +    /**
    +     * Sheet object.
    +     *
    +     * @var \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet
    +     */
    +    public $phpSheet;
    +
    +    /**
    +     * Count cell style Xfs.
    +     *
    +     * @var int
    +     */
    +    private $countCellStyleXfs;
    +
    +    /**
    +     * Escher object corresponding to MSODRAWING.
    +     *
    +     * @var \PhpOffice\PhpSpreadsheet\Shared\Escher
    +     */
    +    private $escher;
    +
    +    /**
    +     * Array of font hashes associated to FONT records index.
    +     *
    +     * @var array
    +     */
    +    public $fontHashIndex;
    +
    +    /**
    +     * @var bool
    +     */
    +    private $preCalculateFormulas;
    +
    +    /**
    +     * @var int
    +     */
    +    private $printHeaders;
    +
    +    /**
    +     * Constructor.
    +     *
    +     * @param int $str_total Total number of strings
    +     * @param int $str_unique Total number of unique strings
    +     * @param array &$str_table String Table
    +     * @param array &$colors Colour Table
    +     * @param Parser $parser The formula parser created for the Workbook
    +     * @param bool $preCalculateFormulas Flag indicating whether formulas should be calculated or just written
    +     * @param \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $phpSheet The worksheet to write
    +     */
    +    public function __construct(&$str_total, &$str_unique, &$str_table, &$colors, Parser $parser, $preCalculateFormulas, \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $phpSheet)
    +    {
    +        // It needs to call its parent's constructor explicitly
    +        parent::__construct();
    +
    +        $this->preCalculateFormulas = $preCalculateFormulas;
    +        $this->stringTotal = &$str_total;
    +        $this->stringUnique = &$str_unique;
    +        $this->stringTable = &$str_table;
    +        $this->colors = &$colors;
    +        $this->parser = $parser;
    +
    +        $this->phpSheet = $phpSheet;
    +
    +        $this->xlsStringMaxLength = 255;
    +        $this->columnInfo = [];
    +        $this->selection = [0, 0, 0, 0];
    +        $this->activePane = 3;
    +
    +        $this->printHeaders = 0;
    +
    +        $this->outlineStyle = 0;
    +        $this->outlineBelow = 1;
    +        $this->outlineRight = 1;
    +        $this->outlineOn = 1;
    +
    +        $this->fontHashIndex = [];
    +
    +        // calculate values for DIMENSIONS record
    +        $minR = 1;
    +        $minC = 'A';
    +
    +        $maxR = $this->phpSheet->getHighestRow();
    +        $maxC = $this->phpSheet->getHighestColumn();
    +
    +        // Determine lowest and highest column and row
    +        $this->lastRowIndex = ($maxR > 65535) ? 65535 : $maxR;
    +
    +        $this->firstColumnIndex = Coordinate::columnIndexFromString($minC);
    +        $this->lastColumnIndex = Coordinate::columnIndexFromString($maxC);
    +
    +//        if ($this->firstColumnIndex > 255) $this->firstColumnIndex = 255;
    +        if ($this->lastColumnIndex > 255) {
    +            $this->lastColumnIndex = 255;
    +        }
    +
    +        $this->countCellStyleXfs = count($phpSheet->getParent()->getCellStyleXfCollection());
    +    }
    +
    +    /**
    +     * Add data to the beginning of the workbook (note the reverse order)
    +     * and to the end of the workbook.
    +     *
    +     * @see \PhpOffice\PhpSpreadsheet\Writer\Xls\Workbook::storeWorkbook()
    +     */
    +    public function close()
    +    {
    +        $phpSheet = $this->phpSheet;
    +
    +        // Write BOF record
    +        $this->storeBof(0x0010);
    +
    +        // Write PRINTHEADERS
    +        $this->writePrintHeaders();
    +
    +        // Write PRINTGRIDLINES
    +        $this->writePrintGridlines();
    +
    +        // Write GRIDSET
    +        $this->writeGridset();
    +
    +        // Calculate column widths
    +        $phpSheet->calculateColumnWidths();
    +
    +        // Column dimensions
    +        if (($defaultWidth = $phpSheet->getDefaultColumnDimension()->getWidth()) < 0) {
    +            $defaultWidth = \PhpOffice\PhpSpreadsheet\Shared\Font::getDefaultColumnWidthByFont($phpSheet->getParent()->getDefaultStyle()->getFont());
    +        }
    +
    +        $columnDimensions = $phpSheet->getColumnDimensions();
    +        $maxCol = $this->lastColumnIndex - 1;
    +        for ($i = 0; $i <= $maxCol; ++$i) {
    +            $hidden = 0;
    +            $level = 0;
    +            $xfIndex = 15; // there are 15 cell style Xfs
    +
    +            $width = $defaultWidth;
    +
    +            $columnLetter = Coordinate::stringFromColumnIndex($i + 1);
    +            if (isset($columnDimensions[$columnLetter])) {
    +                $columnDimension = $columnDimensions[$columnLetter];
    +                if ($columnDimension->getWidth() >= 0) {
    +                    $width = $columnDimension->getWidth();
    +                }
    +                $hidden = $columnDimension->getVisible() ? 0 : 1;
    +                $level = $columnDimension->getOutlineLevel();
    +                $xfIndex = $columnDimension->getXfIndex() + 15; // there are 15 cell style Xfs
    +            }
    +
    +            // Components of columnInfo:
    +            // $firstcol first column on the range
    +            // $lastcol  last column on the range
    +            // $width    width to set
    +            // $xfIndex  The optional cell style Xf index to apply to the columns
    +            // $hidden   The optional hidden atribute
    +            // $level    The optional outline level
    +            $this->columnInfo[] = [$i, $i, $width, $xfIndex, $hidden, $level];
    +        }
    +
    +        // Write GUTS
    +        $this->writeGuts();
    +
    +        // Write DEFAULTROWHEIGHT
    +        $this->writeDefaultRowHeight();
    +        // Write WSBOOL
    +        $this->writeWsbool();
    +        // Write horizontal and vertical page breaks
    +        $this->writeBreaks();
    +        // Write page header
    +        $this->writeHeader();
    +        // Write page footer
    +        $this->writeFooter();
    +        // Write page horizontal centering
    +        $this->writeHcenter();
    +        // Write page vertical centering
    +        $this->writeVcenter();
    +        // Write left margin
    +        $this->writeMarginLeft();
    +        // Write right margin
    +        $this->writeMarginRight();
    +        // Write top margin
    +        $this->writeMarginTop();
    +        // Write bottom margin
    +        $this->writeMarginBottom();
    +        // Write page setup
    +        $this->writeSetup();
    +        // Write sheet protection
    +        $this->writeProtect();
    +        // Write SCENPROTECT
    +        $this->writeScenProtect();
    +        // Write OBJECTPROTECT
    +        $this->writeObjectProtect();
    +        // Write sheet password
    +        $this->writePassword();
    +        // Write DEFCOLWIDTH record
    +        $this->writeDefcol();
    +
    +        // Write the COLINFO records if they exist
    +        if (!empty($this->columnInfo)) {
    +            $colcount = count($this->columnInfo);
    +            for ($i = 0; $i < $colcount; ++$i) {
    +                $this->writeColinfo($this->columnInfo[$i]);
    +            }
    +        }
    +        $autoFilterRange = $phpSheet->getAutoFilter()->getRange();
    +        if (!empty($autoFilterRange)) {
    +            // Write AUTOFILTERINFO
    +            $this->writeAutoFilterInfo();
    +        }
    +
    +        // Write sheet dimensions
    +        $this->writeDimensions();
    +
    +        // Row dimensions
    +        foreach ($phpSheet->getRowDimensions() as $rowDimension) {
    +            $xfIndex = $rowDimension->getXfIndex() + 15; // there are 15 cellXfs
    +            $this->writeRow($rowDimension->getRowIndex() - 1, $rowDimension->getRowHeight(), $xfIndex, ($rowDimension->getVisible() ? '0' : '1'), $rowDimension->getOutlineLevel());
    +        }
    +
    +        // Write Cells
    +        foreach ($phpSheet->getCoordinates() as $coordinate) {
    +            $cell = $phpSheet->getCell($coordinate);
    +            $row = $cell->getRow() - 1;
    +            $column = Coordinate::columnIndexFromString($cell->getColumn()) - 1;
    +
    +            // Don't break Excel break the code!
    +            if ($row > 65535 || $column > 255) {
    +                throw new WriterException('Rows or columns overflow! Excel5 has limit to 65535 rows and 255 columns. Use XLSX instead.');
    +            }
    +
    +            // Write cell value
    +            $xfIndex = $cell->getXfIndex() + 15; // there are 15 cell style Xfs
    +
    +            $cVal = $cell->getValue();
    +            if ($cVal instanceof RichText) {
    +                $arrcRun = [];
    +                $str_len = StringHelper::countCharacters($cVal->getPlainText(), 'UTF-8');
    +                $str_pos = 0;
    +                $elements = $cVal->getRichTextElements();
    +                foreach ($elements as $element) {
    +                    // FONT Index
    +                    if ($element instanceof Run) {
    +                        $str_fontidx = $this->fontHashIndex[$element->getFont()->getHashCode()];
    +                    } else {
    +                        $str_fontidx = 0;
    +                    }
    +                    $arrcRun[] = ['strlen' => $str_pos, 'fontidx' => $str_fontidx];
    +                    // Position FROM
    +                    $str_pos += StringHelper::countCharacters($element->getText(), 'UTF-8');
    +                }
    +                $this->writeRichTextString($row, $column, $cVal->getPlainText(), $xfIndex, $arrcRun);
    +            } else {
    +                switch ($cell->getDatatype()) {
    +                    case DataType::TYPE_STRING:
    +                    case DataType::TYPE_NULL:
    +                        if ($cVal === '' || $cVal === null) {
    +                            $this->writeBlank($row, $column, $xfIndex);
    +                        } else {
    +                            $this->writeString($row, $column, $cVal, $xfIndex);
    +                        }
    +
    +                        break;
    +                    case DataType::TYPE_NUMERIC:
    +                        $this->writeNumber($row, $column, $cVal, $xfIndex);
    +
    +                        break;
    +                    case DataType::TYPE_FORMULA:
    +                        $calculatedValue = $this->preCalculateFormulas ?
    +                            $cell->getCalculatedValue() : null;
    +                        $this->writeFormula($row, $column, $cVal, $xfIndex, $calculatedValue);
    +
    +                        break;
    +                    case DataType::TYPE_BOOL:
    +                        $this->writeBoolErr($row, $column, $cVal, 0, $xfIndex);
    +
    +                        break;
    +                    case DataType::TYPE_ERROR:
    +                        $this->writeBoolErr($row, $column, self::mapErrorCode($cVal), 1, $xfIndex);
    +
    +                        break;
    +                }
    +            }
    +        }
    +
    +        // Append
    +        $this->writeMsoDrawing();
    +
    +        // Write WINDOW2 record
    +        $this->writeWindow2();
    +
    +        // Write PLV record
    +        $this->writePageLayoutView();
    +
    +        // Write ZOOM record
    +        $this->writeZoom();
    +        if ($phpSheet->getFreezePane()) {
    +            $this->writePanes();
    +        }
    +
    +        // Write SELECTION record
    +        $this->writeSelection();
    +
    +        // Write MergedCellsTable Record
    +        $this->writeMergedCells();
    +
    +        // Hyperlinks
    +        foreach ($phpSheet->getHyperLinkCollection() as $coordinate => $hyperlink) {
    +            list($column, $row) = Coordinate::coordinateFromString($coordinate);
    +
    +            $url = $hyperlink->getUrl();
    +
    +            if (strpos($url, 'sheet://') !== false) {
    +                // internal to current workbook
    +                $url = str_replace('sheet://', 'internal:', $url);
    +            } elseif (preg_match('/^(http:|https:|ftp:|mailto:)/', $url)) {
    +                // URL
    +            } else {
    +                // external (local file)
    +                $url = 'external:' . $url;
    +            }
    +
    +            $this->writeUrl($row - 1, Coordinate::columnIndexFromString($column) - 1, $url);
    +        }
    +
    +        $this->writeDataValidity();
    +        $this->writeSheetLayout();
    +
    +        // Write SHEETPROTECTION record
    +        $this->writeSheetProtection();
    +        $this->writeRangeProtection();
    +
    +        $arrConditionalStyles = $phpSheet->getConditionalStylesCollection();
    +        if (!empty($arrConditionalStyles)) {
    +            $arrConditional = [];
    +            // @todo CFRule & CFHeader
    +            // Write CFHEADER record
    +            $this->writeCFHeader();
    +            // Write ConditionalFormattingTable records
    +            foreach ($arrConditionalStyles as $cellCoordinate => $conditionalStyles) {
    +                foreach ($conditionalStyles as $conditional) {
    +                    if ($conditional->getConditionType() == Conditional::CONDITION_EXPRESSION
    +                        || $conditional->getConditionType() == Conditional::CONDITION_CELLIS) {
    +                        if (!isset($arrConditional[$conditional->getHashCode()])) {
    +                            // This hash code has been handled
    +                            $arrConditional[$conditional->getHashCode()] = true;
    +
    +                            // Write CFRULE record
    +                            $this->writeCFRule($conditional);
    +                        }
    +                    }
    +                }
    +            }
    +        }
    +
    +        $this->storeEof();
    +    }
    +
    +    /**
    +     * Write a cell range address in BIFF8
    +     * always fixed range
    +     * See section 2.5.14 in OpenOffice.org's Documentation of the Microsoft Excel File Format.
    +     *
    +     * @param string $range E.g. 'A1' or 'A1:B6'
    +     *
    +     * @return string Binary data
    +     */
    +    private function writeBIFF8CellRangeAddressFixed($range)
    +    {
    +        $explodes = explode(':', $range);
    +
    +        // extract first cell, e.g. 'A1'
    +        $firstCell = $explodes[0];
    +
    +        // extract last cell, e.g. 'B6'
    +        if (count($explodes) == 1) {
    +            $lastCell = $firstCell;
    +        } else {
    +            $lastCell = $explodes[1];
    +        }
    +
    +        $firstCellCoordinates = Coordinate::coordinateFromString($firstCell); // e.g. [0, 1]
    +        $lastCellCoordinates = Coordinate::coordinateFromString($lastCell); // e.g. [1, 6]
    +
    +        return pack('vvvv', $firstCellCoordinates[1] - 1, $lastCellCoordinates[1] - 1, Coordinate::columnIndexFromString($firstCellCoordinates[0]) - 1, Coordinate::columnIndexFromString($lastCellCoordinates[0]) - 1);
    +    }
    +
    +    /**
    +     * Retrieves data from memory in one chunk, or from disk in $buffer
    +     * sized chunks.
    +     *
    +     * @return string The data
    +     */
    +    public function getData()
    +    {
    +        $buffer = 4096;
    +
    +        // Return data stored in memory
    +        if (isset($this->_data)) {
    +            $tmp = $this->_data;
    +            unset($this->_data);
    +
    +            return $tmp;
    +        }
    +        // No data to return
    +        return false;
    +    }
    +
    +    /**
    +     * Set the option to print the row and column headers on the printed page.
    +     *
    +     * @param int $print Whether to print the headers or not. Defaults to 1 (print).
    +     */
    +    public function printRowColHeaders($print = 1)
    +    {
    +        $this->printHeaders = $print;
    +    }
    +
    +    /**
    +     * This method sets the properties for outlining and grouping. The defaults
    +     * correspond to Excel's defaults.
    +     *
    +     * @param bool $visible
    +     * @param bool $symbols_below
    +     * @param bool $symbols_right
    +     * @param bool $auto_style
    +     */
    +    public function setOutline($visible = true, $symbols_below = true, $symbols_right = true, $auto_style = false)
    +    {
    +        $this->outlineOn = $visible;
    +        $this->outlineBelow = $symbols_below;
    +        $this->outlineRight = $symbols_right;
    +        $this->outlineStyle = $auto_style;
    +
    +        // Ensure this is a boolean vale for Window2
    +        if ($this->outlineOn) {
    +            $this->outlineOn = 1;
    +        }
    +    }
    +
    +    /**
    +     * Write a double to the specified row and column (zero indexed).
    +     * An integer can be written as a double. Excel will display an
    +     * integer. $format is optional.
    +     *
    +     * Returns  0 : normal termination
    +     *         -2 : row or column out of range
    +     *
    +     * @param int $row Zero indexed row
    +     * @param int $col Zero indexed column
    +     * @param float $num The number to write
    +     * @param mixed $xfIndex The optional XF format
    +     *
    +     * @return int
    +     */
    +    private function writeNumber($row, $col, $num, $xfIndex)
    +    {
    +        $record = 0x0203; // Record identifier
    +        $length = 0x000E; // Number of bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvv', $row, $col, $xfIndex);
    +        $xl_double = pack('d', $num);
    +        if (self::getByteOrder()) { // if it's Big Endian
    +            $xl_double = strrev($xl_double);
    +        }
    +
    +        $this->append($header . $data . $xl_double);
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Write a LABELSST record or a LABEL record. Which one depends on BIFF version.
    +     *
    +     * @param int $row Row index (0-based)
    +     * @param int $col Column index (0-based)
    +     * @param string $str The string
    +     * @param int $xfIndex Index to XF record
    +     */
    +    private function writeString($row, $col, $str, $xfIndex)
    +    {
    +        $this->writeLabelSst($row, $col, $str, $xfIndex);
    +    }
    +
    +    /**
    +     * Write a LABELSST record or a LABEL record. Which one depends on BIFF version
    +     * It differs from writeString by the writing of rich text strings.
    +     *
    +     * @param int $row Row index (0-based)
    +     * @param int $col Column index (0-based)
    +     * @param string $str The string
    +     * @param int $xfIndex The XF format index for the cell
    +     * @param array $arrcRun Index to Font record and characters beginning
    +     */
    +    private function writeRichTextString($row, $col, $str, $xfIndex, $arrcRun)
    +    {
    +        $record = 0x00FD; // Record identifier
    +        $length = 0x000A; // Bytes to follow
    +        $str = StringHelper::UTF8toBIFF8UnicodeShort($str, $arrcRun);
    +
    +        // check if string is already present
    +        if (!isset($this->stringTable[$str])) {
    +            $this->stringTable[$str] = $this->stringUnique++;
    +        }
    +        ++$this->stringTotal;
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvvV', $row, $col, $xfIndex, $this->stringTable[$str]);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write a string to the specified row and column (zero indexed).
    +     * This is the BIFF8 version (no 255 chars limit).
    +     * $format is optional.
    +     *
    +     * @param int $row Zero indexed row
    +     * @param int $col Zero indexed column
    +     * @param string $str The string to write
    +     * @param mixed $xfIndex The XF format index for the cell
    +     */
    +    private function writeLabelSst($row, $col, $str, $xfIndex)
    +    {
    +        $record = 0x00FD; // Record identifier
    +        $length = 0x000A; // Bytes to follow
    +
    +        $str = StringHelper::UTF8toBIFF8UnicodeLong($str);
    +
    +        // check if string is already present
    +        if (!isset($this->stringTable[$str])) {
    +            $this->stringTable[$str] = $this->stringUnique++;
    +        }
    +        ++$this->stringTotal;
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvvV', $row, $col, $xfIndex, $this->stringTable[$str]);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write a blank cell to the specified row and column (zero indexed).
    +     * A blank cell is used to specify formatting without adding a string
    +     * or a number.
    +     *
    +     * A blank cell without a format serves no purpose. Therefore, we don't write
    +     * a BLANK record unless a format is specified.
    +     *
    +     * Returns  0 : normal termination (including no format)
    +     *         -1 : insufficient number of arguments
    +     *         -2 : row or column out of range
    +     *
    +     * @param int $row Zero indexed row
    +     * @param int $col Zero indexed column
    +     * @param mixed $xfIndex The XF format index
    +     *
    +     * @return int
    +     */
    +    public function writeBlank($row, $col, $xfIndex)
    +    {
    +        $record = 0x0201; // Record identifier
    +        $length = 0x0006; // Number of bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvv', $row, $col, $xfIndex);
    +        $this->append($header . $data);
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Write a boolean or an error type to the specified row and column (zero indexed).
    +     *
    +     * @param int $row Row index (0-based)
    +     * @param int $col Column index (0-based)
    +     * @param int $value
    +     * @param bool $isError Error or Boolean?
    +     * @param int $xfIndex
    +     *
    +     * @return int
    +     */
    +    private function writeBoolErr($row, $col, $value, $isError, $xfIndex)
    +    {
    +        $record = 0x0205;
    +        $length = 8;
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvvCC', $row, $col, $xfIndex, $value, $isError);
    +        $this->append($header . $data);
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Write a formula to the specified row and column (zero indexed).
    +     * The textual representation of the formula is passed to the parser in
    +     * Parser.php which returns a packed binary string.
    +     *
    +     * Returns  0 : normal termination
    +     *         -1 : formula errors (bad formula)
    +     *         -2 : row or column out of range
    +     *
    +     * @param int $row Zero indexed row
    +     * @param int $col Zero indexed column
    +     * @param string $formula The formula text string
    +     * @param mixed $xfIndex The XF format index
    +     * @param mixed $calculatedValue Calculated value
    +     *
    +     * @return int
    +     */
    +    private function writeFormula($row, $col, $formula, $xfIndex, $calculatedValue)
    +    {
    +        $record = 0x0006; // Record identifier
    +
    +        // Initialize possible additional value for STRING record that should be written after the FORMULA record?
    +        $stringValue = null;
    +
    +        // calculated value
    +        if (isset($calculatedValue)) {
    +            // Since we can't yet get the data type of the calculated value,
    +            // we use best effort to determine data type
    +            if (is_bool($calculatedValue)) {
    +                // Boolean value
    +                $num = pack('CCCvCv', 0x01, 0x00, (int) $calculatedValue, 0x00, 0x00, 0xFFFF);
    +            } elseif (is_int($calculatedValue) || is_float($calculatedValue)) {
    +                // Numeric value
    +                $num = pack('d', $calculatedValue);
    +            } elseif (is_string($calculatedValue)) {
    +                $errorCodes = DataType::getErrorCodes();
    +                if (isset($errorCodes[$calculatedValue])) {
    +                    // Error value
    +                    $num = pack('CCCvCv', 0x02, 0x00, self::mapErrorCode($calculatedValue), 0x00, 0x00, 0xFFFF);
    +                } elseif ($calculatedValue === '') {
    +                    // Empty string (and BIFF8)
    +                    $num = pack('CCCvCv', 0x03, 0x00, 0x00, 0x00, 0x00, 0xFFFF);
    +                } else {
    +                    // Non-empty string value (or empty string BIFF5)
    +                    $stringValue = $calculatedValue;
    +                    $num = pack('CCCvCv', 0x00, 0x00, 0x00, 0x00, 0x00, 0xFFFF);
    +                }
    +            } else {
    +                // We are really not supposed to reach here
    +                $num = pack('d', 0x00);
    +            }
    +        } else {
    +            $num = pack('d', 0x00);
    +        }
    +
    +        $grbit = 0x03; // Option flags
    +        $unknown = 0x0000; // Must be zero
    +
    +        // Strip the '=' or '@' sign at the beginning of the formula string
    +        if ($formula[0] == '=') {
    +            $formula = substr($formula, 1);
    +        } else {
    +            // Error handling
    +            $this->writeString($row, $col, 'Unrecognised character for formula', 0);
    +
    +            return -1;
    +        }
    +
    +        // Parse the formula using the parser in Parser.php
    +        try {
    +            $error = $this->parser->parse($formula);
    +            $formula = $this->parser->toReversePolish();
    +
    +            $formlen = strlen($formula); // Length of the binary string
    +            $length = 0x16 + $formlen; // Length of the record data
    +
    +            $header = pack('vv', $record, $length);
    +
    +            $data = pack('vvv', $row, $col, $xfIndex)
    +                        . $num
    +                        . pack('vVv', $grbit, $unknown, $formlen);
    +            $this->append($header . $data . $formula);
    +
    +            // Append also a STRING record if necessary
    +            if ($stringValue !== null) {
    +                $this->writeStringRecord($stringValue);
    +            }
    +
    +            return 0;
    +        } catch (PhpSpreadsheetException $e) {
    +            // do nothing
    +        }
    +    }
    +
    +    /**
    +     * Write a STRING record. This.
    +     *
    +     * @param string $stringValue
    +     */
    +    private function writeStringRecord($stringValue)
    +    {
    +        $record = 0x0207; // Record identifier
    +        $data = StringHelper::UTF8toBIFF8UnicodeLong($stringValue);
    +
    +        $length = strlen($data);
    +        $header = pack('vv', $record, $length);
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write a hyperlink.
    +     * This is comprised of two elements: the visible label and
    +     * the invisible link. The visible label is the same as the link unless an
    +     * alternative string is specified. The label is written using the
    +     * writeString() method. Therefore the 255 characters string limit applies.
    +     * $string and $format are optional.
    +     *
    +     * The hyperlink can be to a http, ftp, mail, internal sheet (not yet), or external
    +     * directory url.
    +     *
    +     * Returns  0 : normal termination
    +     *         -2 : row or column out of range
    +     *         -3 : long string truncated to 255 chars
    +     *
    +     * @param int $row Row
    +     * @param int $col Column
    +     * @param string $url URL string
    +     *
    +     * @return int
    +     */
    +    private function writeUrl($row, $col, $url)
    +    {
    +        // Add start row and col to arg list
    +        return $this->writeUrlRange($row, $col, $row, $col, $url);
    +    }
    +
    +    /**
    +     * This is the more general form of writeUrl(). It allows a hyperlink to be
    +     * written to a range of cells. This function also decides the type of hyperlink
    +     * to be written. These are either, Web (http, ftp, mailto), Internal
    +     * (Sheet1!A1) or external ('c:\temp\foo.xls#Sheet1!A1').
    +     *
    +     * @see writeUrl()
    +     *
    +     * @param int $row1 Start row
    +     * @param int $col1 Start column
    +     * @param int $row2 End row
    +     * @param int $col2 End column
    +     * @param string $url URL string
    +     *
    +     * @return int
    +     */
    +    public function writeUrlRange($row1, $col1, $row2, $col2, $url)
    +    {
    +        // Check for internal/external sheet links or default to web link
    +        if (preg_match('[^internal:]', $url)) {
    +            return $this->writeUrlInternal($row1, $col1, $row2, $col2, $url);
    +        }
    +        if (preg_match('[^external:]', $url)) {
    +            return $this->writeUrlExternal($row1, $col1, $row2, $col2, $url);
    +        }
    +
    +        return $this->writeUrlWeb($row1, $col1, $row2, $col2, $url);
    +    }
    +
    +    /**
    +     * Used to write http, ftp and mailto hyperlinks.
    +     * The link type ($options) is 0x03 is the same as absolute dir ref without
    +     * sheet. However it is differentiated by the $unknown2 data stream.
    +     *
    +     * @see writeUrl()
    +     *
    +     * @param int $row1 Start row
    +     * @param int $col1 Start column
    +     * @param int $row2 End row
    +     * @param int $col2 End column
    +     * @param string $url URL string
    +     *
    +     * @return int
    +     */
    +    public function writeUrlWeb($row1, $col1, $row2, $col2, $url)
    +    {
    +        $record = 0x01B8; // Record identifier
    +        $length = 0x00000; // Bytes to follow
    +
    +        // Pack the undocumented parts of the hyperlink stream
    +        $unknown1 = pack('H*', 'D0C9EA79F9BACE118C8200AA004BA90B02000000');
    +        $unknown2 = pack('H*', 'E0C9EA79F9BACE118C8200AA004BA90B');
    +
    +        // Pack the option flags
    +        $options = pack('V', 0x03);
    +
    +        // Convert URL to a null terminated wchar string
    +        $url = implode("\0", preg_split("''", $url, -1, PREG_SPLIT_NO_EMPTY));
    +        $url = $url . "\0\0\0";
    +
    +        // Pack the length of the URL
    +        $url_len = pack('V', strlen($url));
    +
    +        // Calculate the data length
    +        $length = 0x34 + strlen($url);
    +
    +        // Pack the header data
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvvv', $row1, $row2, $col1, $col2);
    +
    +        // Write the packed data
    +        $this->append($header . $data . $unknown1 . $options . $unknown2 . $url_len . $url);
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Used to write internal reference hyperlinks such as "Sheet1!A1".
    +     *
    +     * @see writeUrl()
    +     *
    +     * @param int $row1 Start row
    +     * @param int $col1 Start column
    +     * @param int $row2 End row
    +     * @param int $col2 End column
    +     * @param string $url URL string
    +     *
    +     * @return int
    +     */
    +    public function writeUrlInternal($row1, $col1, $row2, $col2, $url)
    +    {
    +        $record = 0x01B8; // Record identifier
    +        $length = 0x00000; // Bytes to follow
    +
    +        // Strip URL type
    +        $url = preg_replace('/^internal:/', '', $url);
    +
    +        // Pack the undocumented parts of the hyperlink stream
    +        $unknown1 = pack('H*', 'D0C9EA79F9BACE118C8200AA004BA90B02000000');
    +
    +        // Pack the option flags
    +        $options = pack('V', 0x08);
    +
    +        // Convert the URL type and to a null terminated wchar string
    +        $url .= "\0";
    +
    +        // character count
    +        $url_len = StringHelper::countCharacters($url);
    +        $url_len = pack('V', $url_len);
    +
    +        $url = StringHelper::convertEncoding($url, 'UTF-16LE', 'UTF-8');
    +
    +        // Calculate the data length
    +        $length = 0x24 + strlen($url);
    +
    +        // Pack the header data
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvvv', $row1, $row2, $col1, $col2);
    +
    +        // Write the packed data
    +        $this->append($header . $data . $unknown1 . $options . $url_len . $url);
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Write links to external directory names such as 'c:\foo.xls',
    +     * c:\foo.xls#Sheet1!A1', '../../foo.xls'. and '../../foo.xls#Sheet1!A1'.
    +     *
    +     * Note: Excel writes some relative links with the $dir_long string. We ignore
    +     * these cases for the sake of simpler code.
    +     *
    +     * @see writeUrl()
    +     *
    +     * @param int $row1 Start row
    +     * @param int $col1 Start column
    +     * @param int $row2 End row
    +     * @param int $col2 End column
    +     * @param string $url URL string
    +     *
    +     * @return int
    +     */
    +    public function writeUrlExternal($row1, $col1, $row2, $col2, $url)
    +    {
    +        // Network drives are different. We will handle them separately
    +        // MS/Novell network drives and shares start with \\
    +        if (preg_match('[^external:\\\\]', $url)) {
    +            return; //($this->writeUrlExternal_net($row1, $col1, $row2, $col2, $url, $str, $format));
    +        }
    +
    +        $record = 0x01B8; // Record identifier
    +        $length = 0x00000; // Bytes to follow
    +
    +        // Strip URL type and change Unix dir separator to Dos style (if needed)
    +        //
    +        $url = preg_replace('/^external:/', '', $url);
    +        $url = preg_replace('/\//', '\\', $url);
    +
    +        // Determine if the link is relative or absolute:
    +        //   relative if link contains no dir separator, "somefile.xls"
    +        //   relative if link starts with up-dir, "..\..\somefile.xls"
    +        //   otherwise, absolute
    +
    +        $absolute = 0x00; // relative path
    +        if (preg_match('/^[A-Z]:/', $url)) {
    +            $absolute = 0x02; // absolute path on Windows, e.g. C:\...
    +        }
    +        $link_type = 0x01 | $absolute;
    +
    +        // Determine if the link contains a sheet reference and change some of the
    +        // parameters accordingly.
    +        // Split the dir name and sheet name (if it exists)
    +        $dir_long = $url;
    +        if (preg_match('/\\#/', $url)) {
    +            $link_type |= 0x08;
    +        }
    +
    +        // Pack the link type
    +        $link_type = pack('V', $link_type);
    +
    +        // Calculate the up-level dir count e.g.. (..\..\..\ == 3)
    +        $up_count = preg_match_all('/\\.\\.\\\\/', $dir_long, $useless);
    +        $up_count = pack('v', $up_count);
    +
    +        // Store the short dos dir name (null terminated)
    +        $dir_short = preg_replace('/\\.\\.\\\\/', '', $dir_long) . "\0";
    +
    +        // Store the long dir name as a wchar string (non-null terminated)
    +        $dir_long = $dir_long . "\0";
    +
    +        // Pack the lengths of the dir strings
    +        $dir_short_len = pack('V', strlen($dir_short));
    +        $dir_long_len = pack('V', strlen($dir_long));
    +        $stream_len = pack('V', 0); //strlen($dir_long) + 0x06);
    +
    +        // Pack the undocumented parts of the hyperlink stream
    +        $unknown1 = pack('H*', 'D0C9EA79F9BACE118C8200AA004BA90B02000000');
    +        $unknown2 = pack('H*', '0303000000000000C000000000000046');
    +        $unknown3 = pack('H*', 'FFFFADDE000000000000000000000000000000000000000');
    +        $unknown4 = pack('v', 0x03);
    +
    +        // Pack the main data stream
    +        $data = pack('vvvv', $row1, $row2, $col1, $col2) .
    +                            $unknown1 .
    +                            $link_type .
    +                            $unknown2 .
    +                            $up_count .
    +                            $dir_short_len .
    +                            $dir_short .
    +                            $unknown3 .
    +                            $stream_len; /*.
    +                          $dir_long_len .
    +                          $unknown4     .
    +                          $dir_long     .
    +                          $sheet_len    .
    +                          $sheet        ;*/
    +
    +        // Pack the header data
    +        $length = strlen($data);
    +        $header = pack('vv', $record, $length);
    +
    +        // Write the packed data
    +        $this->append($header . $data);
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * This method is used to set the height and format for a row.
    +     *
    +     * @param int $row The row to set
    +     * @param int $height Height we are giving to the row.
    +     *                        Use null to set XF without setting height
    +     * @param int $xfIndex The optional cell style Xf index to apply to the columns
    +     * @param bool $hidden The optional hidden attribute
    +     * @param int $level The optional outline level for row, in range [0,7]
    +     */
    +    private function writeRow($row, $height, $xfIndex, $hidden = false, $level = 0)
    +    {
    +        $record = 0x0208; // Record identifier
    +        $length = 0x0010; // Number of bytes to follow
    +
    +        $colMic = 0x0000; // First defined column
    +        $colMac = 0x0000; // Last defined column
    +        $irwMac = 0x0000; // Used by Excel to optimise loading
    +        $reserved = 0x0000; // Reserved
    +        $grbit = 0x0000; // Option flags
    +        $ixfe = $xfIndex;
    +
    +        if ($height < 0) {
    +            $height = null;
    +        }
    +
    +        // Use writeRow($row, null, $XF) to set XF format without setting height
    +        if ($height != null) {
    +            $miyRw = $height * 20; // row height
    +        } else {
    +            $miyRw = 0xff; // default row height is 256
    +        }
    +
    +        // Set the options flags. fUnsynced is used to show that the font and row
    +        // heights are not compatible. This is usually the case for WriteExcel.
    +        // The collapsed flag 0x10 doesn't seem to be used to indicate that a row
    +        // is collapsed. Instead it is used to indicate that the previous row is
    +        // collapsed. The zero height flag, 0x20, is used to collapse a row.
    +
    +        $grbit |= $level;
    +        if ($hidden) {
    +            $grbit |= 0x0030;
    +        }
    +        if ($height !== null) {
    +            $grbit |= 0x0040; // fUnsynced
    +        }
    +        if ($xfIndex !== 0xF) {
    +            $grbit |= 0x0080;
    +        }
    +        $grbit |= 0x0100;
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvvvvvvv', $row, $colMic, $colMac, $miyRw, $irwMac, $reserved, $grbit, $ixfe);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Writes Excel DIMENSIONS to define the area in which there is data.
    +     */
    +    private function writeDimensions()
    +    {
    +        $record = 0x0200; // Record identifier
    +
    +        $length = 0x000E;
    +        $data = pack('VVvvv', $this->firstRowIndex, $this->lastRowIndex + 1, $this->firstColumnIndex, $this->lastColumnIndex + 1, 0x0000); // reserved
    +
    +        $header = pack('vv', $record, $length);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write BIFF record Window2.
    +     */
    +    private function writeWindow2()
    +    {
    +        $record = 0x023E; // Record identifier
    +        $length = 0x0012;
    +
    +        $grbit = 0x00B6; // Option flags
    +        $rwTop = 0x0000; // Top row visible in window
    +        $colLeft = 0x0000; // Leftmost column visible in window
    +
    +        // The options flags that comprise $grbit
    +        $fDspFmla = 0; // 0 - bit
    +        $fDspGrid = $this->phpSheet->getShowGridlines() ? 1 : 0; // 1
    +        $fDspRwCol = $this->phpSheet->getShowRowColHeaders() ? 1 : 0; // 2
    +        $fFrozen = $this->phpSheet->getFreezePane() ? 1 : 0; // 3
    +        $fDspZeros = 1; // 4
    +        $fDefaultHdr = 1; // 5
    +        $fArabic = $this->phpSheet->getRightToLeft() ? 1 : 0; // 6
    +        $fDspGuts = $this->outlineOn; // 7
    +        $fFrozenNoSplit = 0; // 0 - bit
    +        // no support in PhpSpreadsheet for selected sheet, therefore sheet is only selected if it is the active sheet
    +        $fSelected = ($this->phpSheet === $this->phpSheet->getParent()->getActiveSheet()) ? 1 : 0;
    +        $fPaged = 1; // 2
    +        $fPageBreakPreview = $this->phpSheet->getSheetView()->getView() === SheetView::SHEETVIEW_PAGE_BREAK_PREVIEW;
    +
    +        $grbit = $fDspFmla;
    +        $grbit |= $fDspGrid << 1;
    +        $grbit |= $fDspRwCol << 2;
    +        $grbit |= $fFrozen << 3;
    +        $grbit |= $fDspZeros << 4;
    +        $grbit |= $fDefaultHdr << 5;
    +        $grbit |= $fArabic << 6;
    +        $grbit |= $fDspGuts << 7;
    +        $grbit |= $fFrozenNoSplit << 8;
    +        $grbit |= $fSelected << 9;
    +        $grbit |= $fPaged << 10;
    +        $grbit |= $fPageBreakPreview << 11;
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvv', $grbit, $rwTop, $colLeft);
    +
    +        // FIXME !!!
    +        $rgbHdr = 0x0040; // Row/column heading and gridline color index
    +        $zoom_factor_page_break = ($fPageBreakPreview ? $this->phpSheet->getSheetView()->getZoomScale() : 0x0000);
    +        $zoom_factor_normal = $this->phpSheet->getSheetView()->getZoomScaleNormal();
    +
    +        $data .= pack('vvvvV', $rgbHdr, 0x0000, $zoom_factor_page_break, $zoom_factor_normal, 0x00000000);
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write BIFF record DEFAULTROWHEIGHT.
    +     */
    +    private function writeDefaultRowHeight()
    +    {
    +        $defaultRowHeight = $this->phpSheet->getDefaultRowDimension()->getRowHeight();
    +
    +        if ($defaultRowHeight < 0) {
    +            return;
    +        }
    +
    +        // convert to twips
    +        $defaultRowHeight = (int) 20 * $defaultRowHeight;
    +
    +        $record = 0x0225; // Record identifier
    +        $length = 0x0004; // Number of bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vv', 1, $defaultRowHeight);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write BIFF record DEFCOLWIDTH if COLINFO records are in use.
    +     */
    +    private function writeDefcol()
    +    {
    +        $defaultColWidth = 8;
    +
    +        $record = 0x0055; // Record identifier
    +        $length = 0x0002; // Number of bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $defaultColWidth);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write BIFF record COLINFO to define column widths.
    +     *
    +     * Note: The SDK says the record length is 0x0B but Excel writes a 0x0C
    +     * length record.
    +     *
    +     * @param array $col_array This is the only parameter received and is composed of the following:
    +     *                0 => First formatted column,
    +     *                1 => Last formatted column,
    +     *                2 => Col width (8.43 is Excel default),
    +     *                3 => The optional XF format of the column,
    +     *                4 => Option flags.
    +     *                5 => Optional outline level
    +     */
    +    private function writeColinfo($col_array)
    +    {
    +        if (isset($col_array[0])) {
    +            $colFirst = $col_array[0];
    +        }
    +        if (isset($col_array[1])) {
    +            $colLast = $col_array[1];
    +        }
    +        if (isset($col_array[2])) {
    +            $coldx = $col_array[2];
    +        } else {
    +            $coldx = 8.43;
    +        }
    +        if (isset($col_array[3])) {
    +            $xfIndex = $col_array[3];
    +        } else {
    +            $xfIndex = 15;
    +        }
    +        if (isset($col_array[4])) {
    +            $grbit = $col_array[4];
    +        } else {
    +            $grbit = 0;
    +        }
    +        if (isset($col_array[5])) {
    +            $level = $col_array[5];
    +        } else {
    +            $level = 0;
    +        }
    +        $record = 0x007D; // Record identifier
    +        $length = 0x000C; // Number of bytes to follow
    +
    +        $coldx *= 256; // Convert to units of 1/256 of a char
    +
    +        $ixfe = $xfIndex;
    +        $reserved = 0x0000; // Reserved
    +
    +        $level = max(0, min($level, 7));
    +        $grbit |= $level << 8;
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvvvvv', $colFirst, $colLast, $coldx, $ixfe, $grbit, $reserved);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write BIFF record SELECTION.
    +     */
    +    private function writeSelection()
    +    {
    +        // look up the selected cell range
    +        $selectedCells = Coordinate::splitRange($this->phpSheet->getSelectedCells());
    +        $selectedCells = $selectedCells[0];
    +        if (count($selectedCells) == 2) {
    +            list($first, $last) = $selectedCells;
    +        } else {
    +            $first = $selectedCells[0];
    +            $last = $selectedCells[0];
    +        }
    +
    +        list($colFirst, $rwFirst) = Coordinate::coordinateFromString($first);
    +        $colFirst = Coordinate::columnIndexFromString($colFirst) - 1; // base 0 column index
    +        --$rwFirst; // base 0 row index
    +
    +        list($colLast, $rwLast) = Coordinate::coordinateFromString($last);
    +        $colLast = Coordinate::columnIndexFromString($colLast) - 1; // base 0 column index
    +        --$rwLast; // base 0 row index
    +
    +        // make sure we are not out of bounds
    +        $colFirst = min($colFirst, 255);
    +        $colLast = min($colLast, 255);
    +
    +        $rwFirst = min($rwFirst, 65535);
    +        $rwLast = min($rwLast, 65535);
    +
    +        $record = 0x001D; // Record identifier
    +        $length = 0x000F; // Number of bytes to follow
    +
    +        $pnn = $this->activePane; // Pane position
    +        $rwAct = $rwFirst; // Active row
    +        $colAct = $colFirst; // Active column
    +        $irefAct = 0; // Active cell ref
    +        $cref = 1; // Number of refs
    +
    +        if (!isset($rwLast)) {
    +            $rwLast = $rwFirst; // Last  row in reference
    +        }
    +        if (!isset($colLast)) {
    +            $colLast = $colFirst; // Last  col in reference
    +        }
    +
    +        // Swap last row/col for first row/col as necessary
    +        if ($rwFirst > $rwLast) {
    +            list($rwFirst, $rwLast) = [$rwLast, $rwFirst];
    +        }
    +
    +        if ($colFirst > $colLast) {
    +            list($colFirst, $colLast) = [$colLast, $colFirst];
    +        }
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('CvvvvvvCC', $pnn, $rwAct, $colAct, $irefAct, $cref, $rwFirst, $rwLast, $colFirst, $colLast);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Store the MERGEDCELLS records for all ranges of merged cells.
    +     */
    +    private function writeMergedCells()
    +    {
    +        $mergeCells = $this->phpSheet->getMergeCells();
    +        $countMergeCells = count($mergeCells);
    +
    +        if ($countMergeCells == 0) {
    +            return;
    +        }
    +
    +        // maximum allowed number of merged cells per record
    +        $maxCountMergeCellsPerRecord = 1027;
    +
    +        // record identifier
    +        $record = 0x00E5;
    +
    +        // counter for total number of merged cells treated so far by the writer
    +        $i = 0;
    +
    +        // counter for number of merged cells written in record currently being written
    +        $j = 0;
    +
    +        // initialize record data
    +        $recordData = '';
    +
    +        // loop through the merged cells
    +        foreach ($mergeCells as $mergeCell) {
    +            ++$i;
    +            ++$j;
    +
    +            // extract the row and column indexes
    +            $range = Coordinate::splitRange($mergeCell);
    +            list($first, $last) = $range[0];
    +            list($firstColumn, $firstRow) = Coordinate::coordinateFromString($first);
    +            list($lastColumn, $lastRow) = Coordinate::coordinateFromString($last);
    +
    +            $recordData .= pack('vvvv', $firstRow - 1, $lastRow - 1, Coordinate::columnIndexFromString($firstColumn) - 1, Coordinate::columnIndexFromString($lastColumn) - 1);
    +
    +            // flush record if we have reached limit for number of merged cells, or reached final merged cell
    +            if ($j == $maxCountMergeCellsPerRecord or $i == $countMergeCells) {
    +                $recordData = pack('v', $j) . $recordData;
    +                $length = strlen($recordData);
    +                $header = pack('vv', $record, $length);
    +                $this->append($header . $recordData);
    +
    +                // initialize for next record, if any
    +                $recordData = '';
    +                $j = 0;
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Write SHEETLAYOUT record.
    +     */
    +    private function writeSheetLayout()
    +    {
    +        if (!$this->phpSheet->isTabColorSet()) {
    +            return;
    +        }
    +
    +        $recordData = pack(
    +            'vvVVVvv',
    +            0x0862,
    +            0x0000, // unused
    +            0x00000000, // unused
    +            0x00000000, // unused
    +            0x00000014, // size of record data
    +            $this->colors[$this->phpSheet->getTabColor()->getRGB()], // color index
    +            0x0000        // unused
    +        );
    +
    +        $length = strlen($recordData);
    +
    +        $record = 0x0862; // Record identifier
    +        $header = pack('vv', $record, $length);
    +        $this->append($header . $recordData);
    +    }
    +
    +    /**
    +     * Write SHEETPROTECTION.
    +     */
    +    private function writeSheetProtection()
    +    {
    +        // record identifier
    +        $record = 0x0867;
    +
    +        // prepare options
    +        $options = (int) !$this->phpSheet->getProtection()->getObjects()
    +                    | (int) !$this->phpSheet->getProtection()->getScenarios() << 1
    +                    | (int) !$this->phpSheet->getProtection()->getFormatCells() << 2
    +                    | (int) !$this->phpSheet->getProtection()->getFormatColumns() << 3
    +                    | (int) !$this->phpSheet->getProtection()->getFormatRows() << 4
    +                    | (int) !$this->phpSheet->getProtection()->getInsertColumns() << 5
    +                    | (int) !$this->phpSheet->getProtection()->getInsertRows() << 6
    +                    | (int) !$this->phpSheet->getProtection()->getInsertHyperlinks() << 7
    +                    | (int) !$this->phpSheet->getProtection()->getDeleteColumns() << 8
    +                    | (int) !$this->phpSheet->getProtection()->getDeleteRows() << 9
    +                    | (int) !$this->phpSheet->getProtection()->getSelectLockedCells() << 10
    +                    | (int) !$this->phpSheet->getProtection()->getSort() << 11
    +                    | (int) !$this->phpSheet->getProtection()->getAutoFilter() << 12
    +                    | (int) !$this->phpSheet->getProtection()->getPivotTables() << 13
    +                    | (int) !$this->phpSheet->getProtection()->getSelectUnlockedCells() << 14;
    +
    +        // record data
    +        $recordData = pack(
    +            'vVVCVVvv',
    +            0x0867, // repeated record identifier
    +            0x0000, // not used
    +            0x0000, // not used
    +            0x00, // not used
    +            0x01000200, // unknown data
    +            0xFFFFFFFF, // unknown data
    +            $options, // options
    +            0x0000 // not used
    +        );
    +
    +        $length = strlen($recordData);
    +        $header = pack('vv', $record, $length);
    +
    +        $this->append($header . $recordData);
    +    }
    +
    +    /**
    +     * Write BIFF record RANGEPROTECTION.
    +     *
    +     * Openoffice.org's Documentaion of the Microsoft Excel File Format uses term RANGEPROTECTION for these records
    +     * Microsoft Office Excel 97-2007 Binary File Format Specification uses term FEAT for these records
    +     */
    +    private function writeRangeProtection()
    +    {
    +        foreach ($this->phpSheet->getProtectedCells() as $range => $password) {
    +            // number of ranges, e.g. 'A1:B3 C20:D25'
    +            $cellRanges = explode(' ', $range);
    +            $cref = count($cellRanges);
    +
    +            $recordData = pack(
    +                'vvVVvCVvVv',
    +                0x0868,
    +                0x00,
    +                0x0000,
    +                0x0000,
    +                0x02,
    +                0x0,
    +                0x0000,
    +                $cref,
    +                0x0000,
    +                0x00
    +            );
    +
    +            foreach ($cellRanges as $cellRange) {
    +                $recordData .= $this->writeBIFF8CellRangeAddressFixed($cellRange);
    +            }
    +
    +            // the rgbFeat structure
    +            $recordData .= pack(
    +                'VV',
    +                0x0000,
    +                hexdec($password)
    +            );
    +
    +            $recordData .= StringHelper::UTF8toBIFF8UnicodeLong('p' . md5($recordData));
    +
    +            $length = strlen($recordData);
    +
    +            $record = 0x0868; // Record identifier
    +            $header = pack('vv', $record, $length);
    +            $this->append($header . $recordData);
    +        }
    +    }
    +
    +    /**
    +     * Writes the Excel BIFF PANE record.
    +     * The panes can either be frozen or thawed (unfrozen).
    +     * Frozen panes are specified in terms of an integer number of rows and columns.
    +     * Thawed panes are specified in terms of Excel's units for rows and columns.
    +     */
    +    private function writePanes()
    +    {
    +        $panes = [];
    +        if ($this->phpSheet->getFreezePane()) {
    +            list($column, $row) = Coordinate::coordinateFromString($this->phpSheet->getFreezePane());
    +            $panes[0] = Coordinate::columnIndexFromString($column) - 1;
    +            $panes[1] = $row - 1;
    +
    +            list($leftMostColumn, $topRow) = Coordinate::coordinateFromString($this->phpSheet->getTopLeftCell());
    +            //Coordinates are zero-based in xls files
    +            $panes[2] = $topRow - 1;
    +            $panes[3] = Coordinate::columnIndexFromString($leftMostColumn) - 1;
    +        } else {
    +            // thaw panes
    +            return;
    +        }
    +
    +        $x = isset($panes[0]) ? $panes[0] : null;
    +        $y = isset($panes[1]) ? $panes[1] : null;
    +        $rwTop = isset($panes[2]) ? $panes[2] : null;
    +        $colLeft = isset($panes[3]) ? $panes[3] : null;
    +        if (count($panes) > 4) { // if Active pane was received
    +            $pnnAct = $panes[4];
    +        } else {
    +            $pnnAct = null;
    +        }
    +        $record = 0x0041; // Record identifier
    +        $length = 0x000A; // Number of bytes to follow
    +
    +        // Code specific to frozen or thawed panes.
    +        if ($this->phpSheet->getFreezePane()) {
    +            // Set default values for $rwTop and $colLeft
    +            if (!isset($rwTop)) {
    +                $rwTop = $y;
    +            }
    +            if (!isset($colLeft)) {
    +                $colLeft = $x;
    +            }
    +        } else {
    +            // Set default values for $rwTop and $colLeft
    +            if (!isset($rwTop)) {
    +                $rwTop = 0;
    +            }
    +            if (!isset($colLeft)) {
    +                $colLeft = 0;
    +            }
    +
    +            // Convert Excel's row and column units to the internal units.
    +            // The default row height is 12.75
    +            // The default column width is 8.43
    +            // The following slope and intersection values were interpolated.
    +            //
    +            $y = 20 * $y + 255;
    +            $x = 113.879 * $x + 390;
    +        }
    +
    +        // Determine which pane should be active. There is also the undocumented
    +        // option to override this should it be necessary: may be removed later.
    +        //
    +        if (!isset($pnnAct)) {
    +            if ($x != 0 && $y != 0) {
    +                $pnnAct = 0; // Bottom right
    +            }
    +            if ($x != 0 && $y == 0) {
    +                $pnnAct = 1; // Top right
    +            }
    +            if ($x == 0 && $y != 0) {
    +                $pnnAct = 2; // Bottom left
    +            }
    +            if ($x == 0 && $y == 0) {
    +                $pnnAct = 3; // Top left
    +            }
    +        }
    +
    +        $this->activePane = $pnnAct; // Used in writeSelection
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvvvv', $x, $y, $rwTop, $colLeft, $pnnAct);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Store the page setup SETUP BIFF record.
    +     */
    +    private function writeSetup()
    +    {
    +        $record = 0x00A1; // Record identifier
    +        $length = 0x0022; // Number of bytes to follow
    +
    +        $iPaperSize = $this->phpSheet->getPageSetup()->getPaperSize(); // Paper size
    +
    +        $iScale = $this->phpSheet->getPageSetup()->getScale() ?
    +            $this->phpSheet->getPageSetup()->getScale() : 100; // Print scaling factor
    +
    +        $iPageStart = 0x01; // Starting page number
    +        $iFitWidth = (int) $this->phpSheet->getPageSetup()->getFitToWidth(); // Fit to number of pages wide
    +        $iFitHeight = (int) $this->phpSheet->getPageSetup()->getFitToHeight(); // Fit to number of pages high
    +        $grbit = 0x00; // Option flags
    +        $iRes = 0x0258; // Print resolution
    +        $iVRes = 0x0258; // Vertical print resolution
    +
    +        $numHdr = $this->phpSheet->getPageMargins()->getHeader(); // Header Margin
    +
    +        $numFtr = $this->phpSheet->getPageMargins()->getFooter(); // Footer Margin
    +        $iCopies = 0x01; // Number of copies
    +
    +        $fLeftToRight = 0x0; // Print over then down
    +
    +        // Page orientation
    +        $fLandscape = ($this->phpSheet->getPageSetup()->getOrientation() == PageSetup::ORIENTATION_LANDSCAPE) ?
    +            0x0 : 0x1;
    +
    +        $fNoPls = 0x0; // Setup not read from printer
    +        $fNoColor = 0x0; // Print black and white
    +        $fDraft = 0x0; // Print draft quality
    +        $fNotes = 0x0; // Print notes
    +        $fNoOrient = 0x0; // Orientation not set
    +        $fUsePage = 0x0; // Use custom starting page
    +
    +        $grbit = $fLeftToRight;
    +        $grbit |= $fLandscape << 1;
    +        $grbit |= $fNoPls << 2;
    +        $grbit |= $fNoColor << 3;
    +        $grbit |= $fDraft << 4;
    +        $grbit |= $fNotes << 5;
    +        $grbit |= $fNoOrient << 6;
    +        $grbit |= $fUsePage << 7;
    +
    +        $numHdr = pack('d', $numHdr);
    +        $numFtr = pack('d', $numFtr);
    +        if (self::getByteOrder()) { // if it's Big Endian
    +            $numHdr = strrev($numHdr);
    +            $numFtr = strrev($numFtr);
    +        }
    +
    +        $header = pack('vv', $record, $length);
    +        $data1 = pack('vvvvvvvv', $iPaperSize, $iScale, $iPageStart, $iFitWidth, $iFitHeight, $grbit, $iRes, $iVRes);
    +        $data2 = $numHdr . $numFtr;
    +        $data3 = pack('v', $iCopies);
    +        $this->append($header . $data1 . $data2 . $data3);
    +    }
    +
    +    /**
    +     * Store the header caption BIFF record.
    +     */
    +    private function writeHeader()
    +    {
    +        $record = 0x0014; // Record identifier
    +
    +        /* removing for now
    +        // need to fix character count (multibyte!)
    +        if (strlen($this->phpSheet->getHeaderFooter()->getOddHeader()) <= 255) {
    +            $str      = $this->phpSheet->getHeaderFooter()->getOddHeader();       // header string
    +        } else {
    +            $str = '';
    +        }
    +        */
    +
    +        $recordData = StringHelper::UTF8toBIFF8UnicodeLong($this->phpSheet->getHeaderFooter()->getOddHeader());
    +        $length = strlen($recordData);
    +
    +        $header = pack('vv', $record, $length);
    +
    +        $this->append($header . $recordData);
    +    }
    +
    +    /**
    +     * Store the footer caption BIFF record.
    +     */
    +    private function writeFooter()
    +    {
    +        $record = 0x0015; // Record identifier
    +
    +        /* removing for now
    +        // need to fix character count (multibyte!)
    +        if (strlen($this->phpSheet->getHeaderFooter()->getOddFooter()) <= 255) {
    +            $str = $this->phpSheet->getHeaderFooter()->getOddFooter();
    +        } else {
    +            $str = '';
    +        }
    +        */
    +
    +        $recordData = StringHelper::UTF8toBIFF8UnicodeLong($this->phpSheet->getHeaderFooter()->getOddFooter());
    +        $length = strlen($recordData);
    +
    +        $header = pack('vv', $record, $length);
    +
    +        $this->append($header . $recordData);
    +    }
    +
    +    /**
    +     * Store the horizontal centering HCENTER BIFF record.
    +     */
    +    private function writeHcenter()
    +    {
    +        $record = 0x0083; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +
    +        $fHCenter = $this->phpSheet->getPageSetup()->getHorizontalCentered() ? 1 : 0; // Horizontal centering
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $fHCenter);
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Store the vertical centering VCENTER BIFF record.
    +     */
    +    private function writeVcenter()
    +    {
    +        $record = 0x0084; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +
    +        $fVCenter = $this->phpSheet->getPageSetup()->getVerticalCentered() ? 1 : 0; // Horizontal centering
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $fVCenter);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Store the LEFTMARGIN BIFF record.
    +     */
    +    private function writeMarginLeft()
    +    {
    +        $record = 0x0026; // Record identifier
    +        $length = 0x0008; // Bytes to follow
    +
    +        $margin = $this->phpSheet->getPageMargins()->getLeft(); // Margin in inches
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('d', $margin);
    +        if (self::getByteOrder()) { // if it's Big Endian
    +            $data = strrev($data);
    +        }
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Store the RIGHTMARGIN BIFF record.
    +     */
    +    private function writeMarginRight()
    +    {
    +        $record = 0x0027; // Record identifier
    +        $length = 0x0008; // Bytes to follow
    +
    +        $margin = $this->phpSheet->getPageMargins()->getRight(); // Margin in inches
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('d', $margin);
    +        if (self::getByteOrder()) { // if it's Big Endian
    +            $data = strrev($data);
    +        }
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Store the TOPMARGIN BIFF record.
    +     */
    +    private function writeMarginTop()
    +    {
    +        $record = 0x0028; // Record identifier
    +        $length = 0x0008; // Bytes to follow
    +
    +        $margin = $this->phpSheet->getPageMargins()->getTop(); // Margin in inches
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('d', $margin);
    +        if (self::getByteOrder()) { // if it's Big Endian
    +            $data = strrev($data);
    +        }
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Store the BOTTOMMARGIN BIFF record.
    +     */
    +    private function writeMarginBottom()
    +    {
    +        $record = 0x0029; // Record identifier
    +        $length = 0x0008; // Bytes to follow
    +
    +        $margin = $this->phpSheet->getPageMargins()->getBottom(); // Margin in inches
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('d', $margin);
    +        if (self::getByteOrder()) { // if it's Big Endian
    +            $data = strrev($data);
    +        }
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write the PRINTHEADERS BIFF record.
    +     */
    +    private function writePrintHeaders()
    +    {
    +        $record = 0x002a; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +
    +        $fPrintRwCol = $this->printHeaders; // Boolean flag
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $fPrintRwCol);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write the PRINTGRIDLINES BIFF record. Must be used in conjunction with the
    +     * GRIDSET record.
    +     */
    +    private function writePrintGridlines()
    +    {
    +        $record = 0x002b; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +
    +        $fPrintGrid = $this->phpSheet->getPrintGridlines() ? 1 : 0; // Boolean flag
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $fPrintGrid);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write the GRIDSET BIFF record. Must be used in conjunction with the
    +     * PRINTGRIDLINES record.
    +     */
    +    private function writeGridset()
    +    {
    +        $record = 0x0082; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +
    +        $fGridSet = !$this->phpSheet->getPrintGridlines(); // Boolean flag
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $fGridSet);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write the AUTOFILTERINFO BIFF record. This is used to configure the number of autofilter select used in the sheet.
    +     */
    +    private function writeAutoFilterInfo()
    +    {
    +        $record = 0x009D; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +
    +        $rangeBounds = Coordinate::rangeBoundaries($this->phpSheet->getAutoFilter()->getRange());
    +        $iNumFilters = 1 + $rangeBounds[1][0] - $rangeBounds[0][0];
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $iNumFilters);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write the GUTS BIFF record. This is used to configure the gutter margins
    +     * where Excel outline symbols are displayed. The visibility of the gutters is
    +     * controlled by a flag in WSBOOL.
    +     *
    +     * @see writeWsbool()
    +     */
    +    private function writeGuts()
    +    {
    +        $record = 0x0080; // Record identifier
    +        $length = 0x0008; // Bytes to follow
    +
    +        $dxRwGut = 0x0000; // Size of row gutter
    +        $dxColGut = 0x0000; // Size of col gutter
    +
    +        // determine maximum row outline level
    +        $maxRowOutlineLevel = 0;
    +        foreach ($this->phpSheet->getRowDimensions() as $rowDimension) {
    +            $maxRowOutlineLevel = max($maxRowOutlineLevel, $rowDimension->getOutlineLevel());
    +        }
    +
    +        $col_level = 0;
    +
    +        // Calculate the maximum column outline level. The equivalent calculation
    +        // for the row outline level is carried out in writeRow().
    +        $colcount = count($this->columnInfo);
    +        for ($i = 0; $i < $colcount; ++$i) {
    +            $col_level = max($this->columnInfo[$i][5], $col_level);
    +        }
    +
    +        // Set the limits for the outline levels (0 <= x <= 7).
    +        $col_level = max(0, min($col_level, 7));
    +
    +        // The displayed level is one greater than the max outline levels
    +        if ($maxRowOutlineLevel) {
    +            ++$maxRowOutlineLevel;
    +        }
    +        if ($col_level) {
    +            ++$col_level;
    +        }
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvvv', $dxRwGut, $dxColGut, $maxRowOutlineLevel, $col_level);
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write the WSBOOL BIFF record, mainly for fit-to-page. Used in conjunction
    +     * with the SETUP record.
    +     */
    +    private function writeWsbool()
    +    {
    +        $record = 0x0081; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +        $grbit = 0x0000;
    +
    +        // The only option that is of interest is the flag for fit to page. So we
    +        // set all the options in one go.
    +        //
    +        // Set the option flags
    +        $grbit |= 0x0001; // Auto page breaks visible
    +        if ($this->outlineStyle) {
    +            $grbit |= 0x0020; // Auto outline styles
    +        }
    +        if ($this->phpSheet->getShowSummaryBelow()) {
    +            $grbit |= 0x0040; // Outline summary below
    +        }
    +        if ($this->phpSheet->getShowSummaryRight()) {
    +            $grbit |= 0x0080; // Outline summary right
    +        }
    +        if ($this->phpSheet->getPageSetup()->getFitToPage()) {
    +            $grbit |= 0x0100; // Page setup fit to page
    +        }
    +        if ($this->outlineOn) {
    +            $grbit |= 0x0400; // Outline symbols displayed
    +        }
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $grbit);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write the HORIZONTALPAGEBREAKS and VERTICALPAGEBREAKS BIFF records.
    +     */
    +    private function writeBreaks()
    +    {
    +        // initialize
    +        $vbreaks = [];
    +        $hbreaks = [];
    +
    +        foreach ($this->phpSheet->getBreaks() as $cell => $breakType) {
    +            // Fetch coordinates
    +            $coordinates = Coordinate::coordinateFromString($cell);
    +
    +            // Decide what to do by the type of break
    +            switch ($breakType) {
    +                case \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::BREAK_COLUMN:
    +                    // Add to list of vertical breaks
    +                    $vbreaks[] = Coordinate::columnIndexFromString($coordinates[0]) - 1;
    +
    +                    break;
    +                case \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::BREAK_ROW:
    +                    // Add to list of horizontal breaks
    +                    $hbreaks[] = $coordinates[1];
    +
    +                    break;
    +                case \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet::BREAK_NONE:
    +                default:
    +                    // Nothing to do
    +                    break;
    +            }
    +        }
    +
    +        //horizontal page breaks
    +        if (!empty($hbreaks)) {
    +            // Sort and filter array of page breaks
    +            sort($hbreaks, SORT_NUMERIC);
    +            if ($hbreaks[0] == 0) { // don't use first break if it's 0
    +                array_shift($hbreaks);
    +            }
    +
    +            $record = 0x001b; // Record identifier
    +            $cbrk = count($hbreaks); // Number of page breaks
    +            $length = 2 + 6 * $cbrk; // Bytes to follow
    +
    +            $header = pack('vv', $record, $length);
    +            $data = pack('v', $cbrk);
    +
    +            // Append each page break
    +            foreach ($hbreaks as $hbreak) {
    +                $data .= pack('vvv', $hbreak, 0x0000, 0x00ff);
    +            }
    +
    +            $this->append($header . $data);
    +        }
    +
    +        // vertical page breaks
    +        if (!empty($vbreaks)) {
    +            // 1000 vertical pagebreaks appears to be an internal Excel 5 limit.
    +            // It is slightly higher in Excel 97/200, approx. 1026
    +            $vbreaks = array_slice($vbreaks, 0, 1000);
    +
    +            // Sort and filter array of page breaks
    +            sort($vbreaks, SORT_NUMERIC);
    +            if ($vbreaks[0] == 0) { // don't use first break if it's 0
    +                array_shift($vbreaks);
    +            }
    +
    +            $record = 0x001a; // Record identifier
    +            $cbrk = count($vbreaks); // Number of page breaks
    +            $length = 2 + 6 * $cbrk; // Bytes to follow
    +
    +            $header = pack('vv', $record, $length);
    +            $data = pack('v', $cbrk);
    +
    +            // Append each page break
    +            foreach ($vbreaks as $vbreak) {
    +                $data .= pack('vvv', $vbreak, 0x0000, 0xffff);
    +            }
    +
    +            $this->append($header . $data);
    +        }
    +    }
    +
    +    /**
    +     * Set the Biff PROTECT record to indicate that the worksheet is protected.
    +     */
    +    private function writeProtect()
    +    {
    +        // Exit unless sheet protection has been specified
    +        if (!$this->phpSheet->getProtection()->getSheet()) {
    +            return;
    +        }
    +
    +        $record = 0x0012; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +
    +        $fLock = 1; // Worksheet is protected
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $fLock);
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write SCENPROTECT.
    +     */
    +    private function writeScenProtect()
    +    {
    +        // Exit if sheet protection is not active
    +        if (!$this->phpSheet->getProtection()->getSheet()) {
    +            return;
    +        }
    +
    +        // Exit if scenarios are not protected
    +        if (!$this->phpSheet->getProtection()->getScenarios()) {
    +            return;
    +        }
    +
    +        $record = 0x00DD; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', 1);
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write OBJECTPROTECT.
    +     */
    +    private function writeObjectProtect()
    +    {
    +        // Exit if sheet protection is not active
    +        if (!$this->phpSheet->getProtection()->getSheet()) {
    +            return;
    +        }
    +
    +        // Exit if objects are not protected
    +        if (!$this->phpSheet->getProtection()->getObjects()) {
    +            return;
    +        }
    +
    +        $record = 0x0063; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', 1);
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write the worksheet PASSWORD record.
    +     */
    +    private function writePassword()
    +    {
    +        // Exit unless sheet protection and password have been specified
    +        if (!$this->phpSheet->getProtection()->getSheet() || !$this->phpSheet->getProtection()->getPassword()) {
    +            return;
    +        }
    +
    +        $record = 0x0013; // Record identifier
    +        $length = 0x0002; // Bytes to follow
    +
    +        $wPassword = hexdec($this->phpSheet->getProtection()->getPassword()); // Encoded password
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('v', $wPassword);
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Insert a 24bit bitmap image in a worksheet.
    +     *
    +     * @param int $row The row we are going to insert the bitmap into
    +     * @param int $col The column we are going to insert the bitmap into
    +     * @param mixed $bitmap The bitmap filename or GD-image resource
    +     * @param int $x the horizontal position (offset) of the image inside the cell
    +     * @param int $y the vertical position (offset) of the image inside the cell
    +     * @param float $scale_x The horizontal scale
    +     * @param float $scale_y The vertical scale
    +     */
    +    public function insertBitmap($row, $col, $bitmap, $x = 0, $y = 0, $scale_x = 1, $scale_y = 1)
    +    {
    +        $bitmap_array = (is_resource($bitmap) ? $this->processBitmapGd($bitmap) : $this->processBitmap($bitmap));
    +        list($width, $height, $size, $data) = $bitmap_array;
    +
    +        // Scale the frame of the image.
    +        $width *= $scale_x;
    +        $height *= $scale_y;
    +
    +        // Calculate the vertices of the image and write the OBJ record
    +        $this->positionImage($col, $row, $x, $y, $width, $height);
    +
    +        // Write the IMDATA record to store the bitmap data
    +        $record = 0x007f;
    +        $length = 8 + $size;
    +        $cf = 0x09;
    +        $env = 0x01;
    +        $lcb = $size;
    +
    +        $header = pack('vvvvV', $record, $length, $cf, $env, $lcb);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Calculate the vertices that define the position of the image as required by
    +     * the OBJ record.
    +     *
    +     *         +------------+------------+
    +     *         |     A      |      B     |
    +     *   +-----+------------+------------+
    +     *   |     |(x1,y1)     |            |
    +     *   |  1  |(A1)._______|______      |
    +     *   |     |    |              |     |
    +     *   |     |    |              |     |
    +     *   +-----+----|    BITMAP    |-----+
    +     *   |     |    |              |     |
    +     *   |  2  |    |______________.     |
    +     *   |     |            |        (B2)|
    +     *   |     |            |     (x2,y2)|
    +     *   +---- +------------+------------+
    +     *
    +     * Example of a bitmap that covers some of the area from cell A1 to cell B2.
    +     *
    +     * Based on the width and height of the bitmap we need to calculate 8 vars:
    +     *     $col_start, $row_start, $col_end, $row_end, $x1, $y1, $x2, $y2.
    +     * The width and height of the cells are also variable and have to be taken into
    +     * account.
    +     * The values of $col_start and $row_start are passed in from the calling
    +     * function. The values of $col_end and $row_end are calculated by subtracting
    +     * the width and height of the bitmap from the width and height of the
    +     * underlying cells.
    +     * The vertices are expressed as a percentage of the underlying cell width as
    +     * follows (rhs values are in pixels):
    +     *
    +     *       x1 = X / W *1024
    +     *       y1 = Y / H *256
    +     *       x2 = (X-1) / W *1024
    +     *       y2 = (Y-1) / H *256
    +     *
    +     *       Where:  X is distance from the left side of the underlying cell
    +     *               Y is distance from the top of the underlying cell
    +     *               W is the width of the cell
    +     *               H is the height of the cell
    +     * The SDK incorrectly states that the height should be expressed as a
    +     *        percentage of 1024.
    +     *
    +     * @param int $col_start Col containing upper left corner of object
    +     * @param int $row_start Row containing top left corner of object
    +     * @param int $x1 Distance to left side of object
    +     * @param int $y1 Distance to top of object
    +     * @param int $width Width of image frame
    +     * @param int $height Height of image frame
    +     */
    +    public function positionImage($col_start, $row_start, $x1, $y1, $width, $height)
    +    {
    +        // Initialise end cell to the same as the start cell
    +        $col_end = $col_start; // Col containing lower right corner of object
    +        $row_end = $row_start; // Row containing bottom right corner of object
    +
    +        // Zero the specified offset if greater than the cell dimensions
    +        if ($x1 >= Xls::sizeCol($this->phpSheet, Coordinate::stringFromColumnIndex($col_start + 1))) {
    +            $x1 = 0;
    +        }
    +        if ($y1 >= Xls::sizeRow($this->phpSheet, $row_start + 1)) {
    +            $y1 = 0;
    +        }
    +
    +        $width = $width + $x1 - 1;
    +        $height = $height + $y1 - 1;
    +
    +        // Subtract the underlying cell widths to find the end cell of the image
    +        while ($width >= Xls::sizeCol($this->phpSheet, Coordinate::stringFromColumnIndex($col_end + 1))) {
    +            $width -= Xls::sizeCol($this->phpSheet, Coordinate::stringFromColumnIndex($col_end + 1));
    +            ++$col_end;
    +        }
    +
    +        // Subtract the underlying cell heights to find the end cell of the image
    +        while ($height >= Xls::sizeRow($this->phpSheet, $row_end + 1)) {
    +            $height -= Xls::sizeRow($this->phpSheet, $row_end + 1);
    +            ++$row_end;
    +        }
    +
    +        // Bitmap isn't allowed to start or finish in a hidden cell, i.e. a cell
    +        // with zero eight or width.
    +        //
    +        if (Xls::sizeCol($this->phpSheet, Coordinate::stringFromColumnIndex($col_start + 1)) == 0) {
    +            return;
    +        }
    +        if (Xls::sizeCol($this->phpSheet, Coordinate::stringFromColumnIndex($col_end + 1)) == 0) {
    +            return;
    +        }
    +        if (Xls::sizeRow($this->phpSheet, $row_start + 1) == 0) {
    +            return;
    +        }
    +        if (Xls::sizeRow($this->phpSheet, $row_end + 1) == 0) {
    +            return;
    +        }
    +
    +        // Convert the pixel values to the percentage value expected by Excel
    +        $x1 = $x1 / Xls::sizeCol($this->phpSheet, Coordinate::stringFromColumnIndex($col_start + 1)) * 1024;
    +        $y1 = $y1 / Xls::sizeRow($this->phpSheet, $row_start + 1) * 256;
    +        $x2 = $width / Xls::sizeCol($this->phpSheet, Coordinate::stringFromColumnIndex($col_end + 1)) * 1024; // Distance to right side of object
    +        $y2 = $height / Xls::sizeRow($this->phpSheet, $row_end + 1) * 256; // Distance to bottom of object
    +
    +        $this->writeObjPicture($col_start, $x1, $row_start, $y1, $col_end, $x2, $row_end, $y2);
    +    }
    +
    +    /**
    +     * Store the OBJ record that precedes an IMDATA record. This could be generalise
    +     * to support other Excel objects.
    +     *
    +     * @param int $colL Column containing upper left corner of object
    +     * @param int $dxL Distance from left side of cell
    +     * @param int $rwT Row containing top left corner of object
    +     * @param int $dyT Distance from top of cell
    +     * @param int $colR Column containing lower right corner of object
    +     * @param int $dxR Distance from right of cell
    +     * @param int $rwB Row containing bottom right corner of object
    +     * @param int $dyB Distance from bottom of cell
    +     */
    +    private function writeObjPicture($colL, $dxL, $rwT, $dyT, $colR, $dxR, $rwB, $dyB)
    +    {
    +        $record = 0x005d; // Record identifier
    +        $length = 0x003c; // Bytes to follow
    +
    +        $cObj = 0x0001; // Count of objects in file (set to 1)
    +        $OT = 0x0008; // Object type. 8 = Picture
    +        $id = 0x0001; // Object ID
    +        $grbit = 0x0614; // Option flags
    +
    +        $cbMacro = 0x0000; // Length of FMLA structure
    +        $Reserved1 = 0x0000; // Reserved
    +        $Reserved2 = 0x0000; // Reserved
    +
    +        $icvBack = 0x09; // Background colour
    +        $icvFore = 0x09; // Foreground colour
    +        $fls = 0x00; // Fill pattern
    +        $fAuto = 0x00; // Automatic fill
    +        $icv = 0x08; // Line colour
    +        $lns = 0xff; // Line style
    +        $lnw = 0x01; // Line weight
    +        $fAutoB = 0x00; // Automatic border
    +        $frs = 0x0000; // Frame style
    +        $cf = 0x0009; // Image format, 9 = bitmap
    +        $Reserved3 = 0x0000; // Reserved
    +        $cbPictFmla = 0x0000; // Length of FMLA structure
    +        $Reserved4 = 0x0000; // Reserved
    +        $grbit2 = 0x0001; // Option flags
    +        $Reserved5 = 0x0000; // Reserved
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('V', $cObj);
    +        $data .= pack('v', $OT);
    +        $data .= pack('v', $id);
    +        $data .= pack('v', $grbit);
    +        $data .= pack('v', $colL);
    +        $data .= pack('v', $dxL);
    +        $data .= pack('v', $rwT);
    +        $data .= pack('v', $dyT);
    +        $data .= pack('v', $colR);
    +        $data .= pack('v', $dxR);
    +        $data .= pack('v', $rwB);
    +        $data .= pack('v', $dyB);
    +        $data .= pack('v', $cbMacro);
    +        $data .= pack('V', $Reserved1);
    +        $data .= pack('v', $Reserved2);
    +        $data .= pack('C', $icvBack);
    +        $data .= pack('C', $icvFore);
    +        $data .= pack('C', $fls);
    +        $data .= pack('C', $fAuto);
    +        $data .= pack('C', $icv);
    +        $data .= pack('C', $lns);
    +        $data .= pack('C', $lnw);
    +        $data .= pack('C', $fAutoB);
    +        $data .= pack('v', $frs);
    +        $data .= pack('V', $cf);
    +        $data .= pack('v', $Reserved3);
    +        $data .= pack('v', $cbPictFmla);
    +        $data .= pack('v', $Reserved4);
    +        $data .= pack('v', $grbit2);
    +        $data .= pack('V', $Reserved5);
    +
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Convert a GD-image into the internal format.
    +     *
    +     * @param resource $image The image to process
    +     *
    +     * @return array Array with data and properties of the bitmap
    +     */
    +    public function processBitmapGd($image)
    +    {
    +        $width = imagesx($image);
    +        $height = imagesy($image);
    +
    +        $data = pack('Vvvvv', 0x000c, $width, $height, 0x01, 0x18);
    +        for ($j = $height; --$j;) {
    +            for ($i = 0; $i < $width; ++$i) {
    +                $color = imagecolorsforindex($image, imagecolorat($image, $i, $j));
    +                foreach (['red', 'green', 'blue'] as $key) {
    +                    $color[$key] = $color[$key] + round((255 - $color[$key]) * $color['alpha'] / 127);
    +                }
    +                $data .= chr($color['blue']) . chr($color['green']) . chr($color['red']);
    +            }
    +            if (3 * $width % 4) {
    +                $data .= str_repeat("\x00", 4 - 3 * $width % 4);
    +            }
    +        }
    +
    +        return [$width, $height, strlen($data), $data];
    +    }
    +
    +    /**
    +     * Convert a 24 bit bitmap into the modified internal format used by Windows.
    +     * This is described in BITMAPCOREHEADER and BITMAPCOREINFO structures in the
    +     * MSDN library.
    +     *
    +     * @param string $bitmap The bitmap to process
    +     *
    +     * @return array Array with data and properties of the bitmap
    +     */
    +    public function processBitmap($bitmap)
    +    {
    +        // Open file.
    +        $bmp_fd = @fopen($bitmap, 'rb');
    +        if (!$bmp_fd) {
    +            throw new WriterException("Couldn't import $bitmap");
    +        }
    +
    +        // Slurp the file into a string.
    +        $data = fread($bmp_fd, filesize($bitmap));
    +
    +        // Check that the file is big enough to be a bitmap.
    +        if (strlen($data) <= 0x36) {
    +            throw new WriterException("$bitmap doesn't contain enough data.\n");
    +        }
    +
    +        // The first 2 bytes are used to identify the bitmap.
    +        $identity = unpack('A2ident', $data);
    +        if ($identity['ident'] != 'BM') {
    +            throw new WriterException("$bitmap doesn't appear to be a valid bitmap image.\n");
    +        }
    +
    +        // Remove bitmap data: ID.
    +        $data = substr($data, 2);
    +
    +        // Read and remove the bitmap size. This is more reliable than reading
    +        // the data size at offset 0x22.
    +        //
    +        $size_array = unpack('Vsa', substr($data, 0, 4));
    +        $size = $size_array['sa'];
    +        $data = substr($data, 4);
    +        $size -= 0x36; // Subtract size of bitmap header.
    +        $size += 0x0C; // Add size of BIFF header.
    +
    +        // Remove bitmap data: reserved, offset, header length.
    +        $data = substr($data, 12);
    +
    +        // Read and remove the bitmap width and height. Verify the sizes.
    +        $width_and_height = unpack('V2', substr($data, 0, 8));
    +        $width = $width_and_height[1];
    +        $height = $width_and_height[2];
    +        $data = substr($data, 8);
    +        if ($width > 0xFFFF) {
    +            throw new WriterException("$bitmap: largest image width supported is 65k.\n");
    +        }
    +        if ($height > 0xFFFF) {
    +            throw new WriterException("$bitmap: largest image height supported is 65k.\n");
    +        }
    +
    +        // Read and remove the bitmap planes and bpp data. Verify them.
    +        $planes_and_bitcount = unpack('v2', substr($data, 0, 4));
    +        $data = substr($data, 4);
    +        if ($planes_and_bitcount[2] != 24) { // Bitcount
    +            throw new WriterException("$bitmap isn't a 24bit true color bitmap.\n");
    +        }
    +        if ($planes_and_bitcount[1] != 1) {
    +            throw new WriterException("$bitmap: only 1 plane supported in bitmap image.\n");
    +        }
    +
    +        // Read and remove the bitmap compression. Verify compression.
    +        $compression = unpack('Vcomp', substr($data, 0, 4));
    +        $data = substr($data, 4);
    +
    +        if ($compression['comp'] != 0) {
    +            throw new WriterException("$bitmap: compression not supported in bitmap image.\n");
    +        }
    +
    +        // Remove bitmap data: data size, hres, vres, colours, imp. colours.
    +        $data = substr($data, 20);
    +
    +        // Add the BITMAPCOREHEADER data
    +        $header = pack('Vvvvv', 0x000c, $width, $height, 0x01, 0x18);
    +        $data = $header . $data;
    +
    +        return [$width, $height, $size, $data];
    +    }
    +
    +    /**
    +     * Store the window zoom factor. This should be a reduced fraction but for
    +     * simplicity we will store all fractions with a numerator of 100.
    +     */
    +    private function writeZoom()
    +    {
    +        // If scale is 100 we don't need to write a record
    +        if ($this->phpSheet->getSheetView()->getZoomScale() == 100) {
    +            return;
    +        }
    +
    +        $record = 0x00A0; // Record identifier
    +        $length = 0x0004; // Bytes to follow
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vv', $this->phpSheet->getSheetView()->getZoomScale(), 100);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Get Escher object.
    +     *
    +     * @return \PhpOffice\PhpSpreadsheet\Shared\Escher
    +     */
    +    public function getEscher()
    +    {
    +        return $this->escher;
    +    }
    +
    +    /**
    +     * Set Escher object.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Shared\Escher $pValue
    +     */
    +    public function setEscher(\PhpOffice\PhpSpreadsheet\Shared\Escher $pValue = null)
    +    {
    +        $this->escher = $pValue;
    +    }
    +
    +    /**
    +     * Write MSODRAWING record.
    +     */
    +    private function writeMsoDrawing()
    +    {
    +        // write the Escher stream if necessary
    +        if (isset($this->escher)) {
    +            $writer = new Escher($this->escher);
    +            $data = $writer->close();
    +            $spOffsets = $writer->getSpOffsets();
    +            $spTypes = $writer->getSpTypes();
    +            // write the neccesary MSODRAWING, OBJ records
    +
    +            // split the Escher stream
    +            $spOffsets[0] = 0;
    +            $nm = count($spOffsets) - 1; // number of shapes excluding first shape
    +            for ($i = 1; $i <= $nm; ++$i) {
    +                // MSODRAWING record
    +                $record = 0x00EC; // Record identifier
    +
    +                // chunk of Escher stream for one shape
    +                $dataChunk = substr($data, $spOffsets[$i - 1], $spOffsets[$i] - $spOffsets[$i - 1]);
    +
    +                $length = strlen($dataChunk);
    +                $header = pack('vv', $record, $length);
    +
    +                $this->append($header . $dataChunk);
    +
    +                // OBJ record
    +                $record = 0x005D; // record identifier
    +                $objData = '';
    +
    +                // ftCmo
    +                if ($spTypes[$i] == 0x00C9) {
    +                    // Add ftCmo (common object data) subobject
    +                    $objData .=
    +                        pack(
    +                            'vvvvvVVV',
    +                            0x0015, // 0x0015 = ftCmo
    +                            0x0012, // length of ftCmo data
    +                            0x0014, // object type, 0x0014 = filter
    +                            $i, // object id number, Excel seems to use 1-based index, local for the sheet
    +                            0x2101, // option flags, 0x2001 is what OpenOffice.org uses
    +                            0, // reserved
    +                            0, // reserved
    +                            0  // reserved
    +                        );
    +
    +                    // Add ftSbs Scroll bar subobject
    +                    $objData .= pack('vv', 0x00C, 0x0014);
    +                    $objData .= pack('H*', '0000000000000000640001000A00000010000100');
    +                    // Add ftLbsData (List box data) subobject
    +                    $objData .= pack('vv', 0x0013, 0x1FEE);
    +                    $objData .= pack('H*', '00000000010001030000020008005700');
    +                } else {
    +                    // Add ftCmo (common object data) subobject
    +                    $objData .=
    +                        pack(
    +                            'vvvvvVVV',
    +                            0x0015, // 0x0015 = ftCmo
    +                            0x0012, // length of ftCmo data
    +                            0x0008, // object type, 0x0008 = picture
    +                            $i, // object id number, Excel seems to use 1-based index, local for the sheet
    +                            0x6011, // option flags, 0x6011 is what OpenOffice.org uses
    +                            0, // reserved
    +                            0, // reserved
    +                            0  // reserved
    +                        );
    +                }
    +
    +                // ftEnd
    +                $objData .=
    +                    pack(
    +                        'vv',
    +                        0x0000, // 0x0000 = ftEnd
    +                        0x0000  // length of ftEnd data
    +                    );
    +
    +                $length = strlen($objData);
    +                $header = pack('vv', $record, $length);
    +                $this->append($header . $objData);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Store the DATAVALIDATIONS and DATAVALIDATION records.
    +     */
    +    private function writeDataValidity()
    +    {
    +        // Datavalidation collection
    +        $dataValidationCollection = $this->phpSheet->getDataValidationCollection();
    +
    +        // Write data validations?
    +        if (!empty($dataValidationCollection)) {
    +            // DATAVALIDATIONS record
    +            $record = 0x01B2; // Record identifier
    +            $length = 0x0012; // Bytes to follow
    +
    +            $grbit = 0x0000; // Prompt box at cell, no cached validity data at DV records
    +            $horPos = 0x00000000; // Horizontal position of prompt box, if fixed position
    +            $verPos = 0x00000000; // Vertical position of prompt box, if fixed position
    +            $objId = 0xFFFFFFFF; // Object identifier of drop down arrow object, or -1 if not visible
    +
    +            $header = pack('vv', $record, $length);
    +            $data = pack('vVVVV', $grbit, $horPos, $verPos, $objId, count($dataValidationCollection));
    +            $this->append($header . $data);
    +
    +            // DATAVALIDATION records
    +            $record = 0x01BE; // Record identifier
    +
    +            foreach ($dataValidationCollection as $cellCoordinate => $dataValidation) {
    +                // initialize record data
    +                $data = '';
    +
    +                // options
    +                $options = 0x00000000;
    +
    +                // data type
    +                $type = 0x00;
    +                switch ($dataValidation->getType()) {
    +                    case DataValidation::TYPE_NONE:
    +                        $type = 0x00;
    +
    +                        break;
    +                    case DataValidation::TYPE_WHOLE:
    +                        $type = 0x01;
    +
    +                        break;
    +                    case DataValidation::TYPE_DECIMAL:
    +                        $type = 0x02;
    +
    +                        break;
    +                    case DataValidation::TYPE_LIST:
    +                        $type = 0x03;
    +
    +                        break;
    +                    case DataValidation::TYPE_DATE:
    +                        $type = 0x04;
    +
    +                        break;
    +                    case DataValidation::TYPE_TIME:
    +                        $type = 0x05;
    +
    +                        break;
    +                    case DataValidation::TYPE_TEXTLENGTH:
    +                        $type = 0x06;
    +
    +                        break;
    +                    case DataValidation::TYPE_CUSTOM:
    +                        $type = 0x07;
    +
    +                        break;
    +                }
    +
    +                $options |= $type << 0;
    +
    +                // error style
    +                $errorStyle = 0x00;
    +                switch ($dataValidation->getErrorStyle()) {
    +                    case DataValidation::STYLE_STOP:
    +                        $errorStyle = 0x00;
    +
    +                        break;
    +                    case DataValidation::STYLE_WARNING:
    +                        $errorStyle = 0x01;
    +
    +                        break;
    +                    case DataValidation::STYLE_INFORMATION:
    +                        $errorStyle = 0x02;
    +
    +                        break;
    +                }
    +
    +                $options |= $errorStyle << 4;
    +
    +                // explicit formula?
    +                if ($type == 0x03 && preg_match('/^\".*\"$/', $dataValidation->getFormula1())) {
    +                    $options |= 0x01 << 7;
    +                }
    +
    +                // empty cells allowed
    +                $options |= $dataValidation->getAllowBlank() << 8;
    +
    +                // show drop down
    +                $options |= (!$dataValidation->getShowDropDown()) << 9;
    +
    +                // show input message
    +                $options |= $dataValidation->getShowInputMessage() << 18;
    +
    +                // show error message
    +                $options |= $dataValidation->getShowErrorMessage() << 19;
    +
    +                // condition operator
    +                $operator = 0x00;
    +                switch ($dataValidation->getOperator()) {
    +                    case DataValidation::OPERATOR_BETWEEN:
    +                        $operator = 0x00;
    +
    +                        break;
    +                    case DataValidation::OPERATOR_NOTBETWEEN:
    +                        $operator = 0x01;
    +
    +                        break;
    +                    case DataValidation::OPERATOR_EQUAL:
    +                        $operator = 0x02;
    +
    +                        break;
    +                    case DataValidation::OPERATOR_NOTEQUAL:
    +                        $operator = 0x03;
    +
    +                        break;
    +                    case DataValidation::OPERATOR_GREATERTHAN:
    +                        $operator = 0x04;
    +
    +                        break;
    +                    case DataValidation::OPERATOR_LESSTHAN:
    +                        $operator = 0x05;
    +
    +                        break;
    +                    case DataValidation::OPERATOR_GREATERTHANOREQUAL:
    +                        $operator = 0x06;
    +
    +                        break;
    +                    case DataValidation::OPERATOR_LESSTHANOREQUAL:
    +                        $operator = 0x07;
    +
    +                        break;
    +                }
    +
    +                $options |= $operator << 20;
    +
    +                $data = pack('V', $options);
    +
    +                // prompt title
    +                $promptTitle = $dataValidation->getPromptTitle() !== '' ?
    +                    $dataValidation->getPromptTitle() : chr(0);
    +                $data .= StringHelper::UTF8toBIFF8UnicodeLong($promptTitle);
    +
    +                // error title
    +                $errorTitle = $dataValidation->getErrorTitle() !== '' ?
    +                    $dataValidation->getErrorTitle() : chr(0);
    +                $data .= StringHelper::UTF8toBIFF8UnicodeLong($errorTitle);
    +
    +                // prompt text
    +                $prompt = $dataValidation->getPrompt() !== '' ?
    +                    $dataValidation->getPrompt() : chr(0);
    +                $data .= StringHelper::UTF8toBIFF8UnicodeLong($prompt);
    +
    +                // error text
    +                $error = $dataValidation->getError() !== '' ?
    +                    $dataValidation->getError() : chr(0);
    +                $data .= StringHelper::UTF8toBIFF8UnicodeLong($error);
    +
    +                // formula 1
    +                try {
    +                    $formula1 = $dataValidation->getFormula1();
    +                    if ($type == 0x03) { // list type
    +                        $formula1 = str_replace(',', chr(0), $formula1);
    +                    }
    +                    $this->parser->parse($formula1);
    +                    $formula1 = $this->parser->toReversePolish();
    +                    $sz1 = strlen($formula1);
    +                } catch (PhpSpreadsheetException $e) {
    +                    $sz1 = 0;
    +                    $formula1 = '';
    +                }
    +                $data .= pack('vv', $sz1, 0x0000);
    +                $data .= $formula1;
    +
    +                // formula 2
    +                try {
    +                    $formula2 = $dataValidation->getFormula2();
    +                    if ($formula2 === '') {
    +                        throw new WriterException('No formula2');
    +                    }
    +                    $this->parser->parse($formula2);
    +                    $formula2 = $this->parser->toReversePolish();
    +                    $sz2 = strlen($formula2);
    +                } catch (PhpSpreadsheetException $e) {
    +                    $sz2 = 0;
    +                    $formula2 = '';
    +                }
    +                $data .= pack('vv', $sz2, 0x0000);
    +                $data .= $formula2;
    +
    +                // cell range address list
    +                $data .= pack('v', 0x0001);
    +                $data .= $this->writeBIFF8CellRangeAddressFixed($cellCoordinate);
    +
    +                $length = strlen($data);
    +                $header = pack('vv', $record, $length);
    +
    +                $this->append($header . $data);
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Map Error code.
    +     *
    +     * @param string $errorCode
    +     *
    +     * @return int
    +     */
    +    private static function mapErrorCode($errorCode)
    +    {
    +        switch ($errorCode) {
    +            case '#NULL!':
    +                return 0x00;
    +            case '#DIV/0!':
    +                return 0x07;
    +            case '#VALUE!':
    +                return 0x0F;
    +            case '#REF!':
    +                return 0x17;
    +            case '#NAME?':
    +                return 0x1D;
    +            case '#NUM!':
    +                return 0x24;
    +            case '#N/A':
    +                return 0x2A;
    +        }
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Write PLV Record.
    +     */
    +    private function writePageLayoutView()
    +    {
    +        $record = 0x088B; // Record identifier
    +        $length = 0x0010; // Bytes to follow
    +
    +        $rt = 0x088B; // 2
    +        $grbitFrt = 0x0000; // 2
    +        $reserved = 0x0000000000000000; // 8
    +        $wScalvePLV = $this->phpSheet->getSheetView()->getZoomScale(); // 2
    +
    +        // The options flags that comprise $grbit
    +        if ($this->phpSheet->getSheetView()->getView() == SheetView::SHEETVIEW_PAGE_LAYOUT) {
    +            $fPageLayoutView = 1;
    +        } else {
    +            $fPageLayoutView = 0;
    +        }
    +        $fRulerVisible = 0;
    +        $fWhitespaceHidden = 0;
    +
    +        $grbit = $fPageLayoutView; // 2
    +        $grbit |= $fRulerVisible << 1;
    +        $grbit |= $fWhitespaceHidden << 3;
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vvVVvv', $rt, $grbitFrt, 0x00000000, 0x00000000, $wScalvePLV, $grbit);
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write CFRule Record.
    +     *
    +     * @param Conditional $conditional
    +     */
    +    private function writeCFRule(Conditional $conditional)
    +    {
    +        $record = 0x01B1; // Record identifier
    +
    +        // $type : Type of the CF
    +        // $operatorType : Comparison operator
    +        if ($conditional->getConditionType() == Conditional::CONDITION_EXPRESSION) {
    +            $type = 0x02;
    +            $operatorType = 0x00;
    +        } elseif ($conditional->getConditionType() == Conditional::CONDITION_CELLIS) {
    +            $type = 0x01;
    +
    +            switch ($conditional->getOperatorType()) {
    +                case Conditional::OPERATOR_NONE:
    +                    $operatorType = 0x00;
    +
    +                    break;
    +                case Conditional::OPERATOR_EQUAL:
    +                    $operatorType = 0x03;
    +
    +                    break;
    +                case Conditional::OPERATOR_GREATERTHAN:
    +                    $operatorType = 0x05;
    +
    +                    break;
    +                case Conditional::OPERATOR_GREATERTHANOREQUAL:
    +                    $operatorType = 0x07;
    +
    +                    break;
    +                case Conditional::OPERATOR_LESSTHAN:
    +                    $operatorType = 0x06;
    +
    +                    break;
    +                case Conditional::OPERATOR_LESSTHANOREQUAL:
    +                    $operatorType = 0x08;
    +
    +                    break;
    +                case Conditional::OPERATOR_NOTEQUAL:
    +                    $operatorType = 0x04;
    +
    +                    break;
    +                case Conditional::OPERATOR_BETWEEN:
    +                    $operatorType = 0x01;
    +
    +                    break;
    +                    // not OPERATOR_NOTBETWEEN 0x02
    +            }
    +        }
    +
    +        // $szValue1 : size of the formula data for first value or formula
    +        // $szValue2 : size of the formula data for second value or formula
    +        $arrConditions = $conditional->getConditions();
    +        $numConditions = count($arrConditions);
    +        if ($numConditions == 1) {
    +            $szValue1 = ($arrConditions[0] <= 65535 ? 3 : 0x0000);
    +            $szValue2 = 0x0000;
    +            $operand1 = pack('Cv', 0x1E, $arrConditions[0]);
    +            $operand2 = null;
    +        } elseif ($numConditions == 2 && ($conditional->getOperatorType() == Conditional::OPERATOR_BETWEEN)) {
    +            $szValue1 = ($arrConditions[0] <= 65535 ? 3 : 0x0000);
    +            $szValue2 = ($arrConditions[1] <= 65535 ? 3 : 0x0000);
    +            $operand1 = pack('Cv', 0x1E, $arrConditions[0]);
    +            $operand2 = pack('Cv', 0x1E, $arrConditions[1]);
    +        } else {
    +            $szValue1 = 0x0000;
    +            $szValue2 = 0x0000;
    +            $operand1 = null;
    +            $operand2 = null;
    +        }
    +
    +        // $flags : Option flags
    +        // Alignment
    +        $bAlignHz = ($conditional->getStyle()->getAlignment()->getHorizontal() == null ? 1 : 0);
    +        $bAlignVt = ($conditional->getStyle()->getAlignment()->getVertical() == null ? 1 : 0);
    +        $bAlignWrapTx = ($conditional->getStyle()->getAlignment()->getWrapText() == false ? 1 : 0);
    +        $bTxRotation = ($conditional->getStyle()->getAlignment()->getTextRotation() == null ? 1 : 0);
    +        $bIndent = ($conditional->getStyle()->getAlignment()->getIndent() == 0 ? 1 : 0);
    +        $bShrinkToFit = ($conditional->getStyle()->getAlignment()->getShrinkToFit() == false ? 1 : 0);
    +        if ($bAlignHz == 0 || $bAlignVt == 0 || $bAlignWrapTx == 0 || $bTxRotation == 0 || $bIndent == 0 || $bShrinkToFit == 0) {
    +            $bFormatAlign = 1;
    +        } else {
    +            $bFormatAlign = 0;
    +        }
    +        // Protection
    +        $bProtLocked = ($conditional->getStyle()->getProtection()->getLocked() == null ? 1 : 0);
    +        $bProtHidden = ($conditional->getStyle()->getProtection()->getHidden() == null ? 1 : 0);
    +        if ($bProtLocked == 0 || $bProtHidden == 0) {
    +            $bFormatProt = 1;
    +        } else {
    +            $bFormatProt = 0;
    +        }
    +        // Border
    +        $bBorderLeft = ($conditional->getStyle()->getBorders()->getLeft()->getColor()->getARGB() == Color::COLOR_BLACK
    +                        && $conditional->getStyle()->getBorders()->getLeft()->getBorderStyle() == Border::BORDER_NONE ? 1 : 0);
    +        $bBorderRight = ($conditional->getStyle()->getBorders()->getRight()->getColor()->getARGB() == Color::COLOR_BLACK
    +                        && $conditional->getStyle()->getBorders()->getRight()->getBorderStyle() == Border::BORDER_NONE ? 1 : 0);
    +        $bBorderTop = ($conditional->getStyle()->getBorders()->getTop()->getColor()->getARGB() == Color::COLOR_BLACK
    +                        && $conditional->getStyle()->getBorders()->getTop()->getBorderStyle() == Border::BORDER_NONE ? 1 : 0);
    +        $bBorderBottom = ($conditional->getStyle()->getBorders()->getBottom()->getColor()->getARGB() == Color::COLOR_BLACK
    +                        && $conditional->getStyle()->getBorders()->getBottom()->getBorderStyle() == Border::BORDER_NONE ? 1 : 0);
    +        if ($bBorderLeft == 0 || $bBorderRight == 0 || $bBorderTop == 0 || $bBorderBottom == 0) {
    +            $bFormatBorder = 1;
    +        } else {
    +            $bFormatBorder = 0;
    +        }
    +        // Pattern
    +        $bFillStyle = ($conditional->getStyle()->getFill()->getFillType() == null ? 0 : 1);
    +        $bFillColor = ($conditional->getStyle()->getFill()->getStartColor()->getARGB() == null ? 0 : 1);
    +        $bFillColorBg = ($conditional->getStyle()->getFill()->getEndColor()->getARGB() == null ? 0 : 1);
    +        if ($bFillStyle == 0 || $bFillColor == 0 || $bFillColorBg == 0) {
    +            $bFormatFill = 1;
    +        } else {
    +            $bFormatFill = 0;
    +        }
    +        // Font
    +        if ($conditional->getStyle()->getFont()->getName() != null
    +            || $conditional->getStyle()->getFont()->getSize() != null
    +            || $conditional->getStyle()->getFont()->getBold() != null
    +            || $conditional->getStyle()->getFont()->getItalic() != null
    +            || $conditional->getStyle()->getFont()->getSuperscript() != null
    +            || $conditional->getStyle()->getFont()->getSubscript() != null
    +            || $conditional->getStyle()->getFont()->getUnderline() != null
    +            || $conditional->getStyle()->getFont()->getStrikethrough() != null
    +            || $conditional->getStyle()->getFont()->getColor()->getARGB() != null) {
    +            $bFormatFont = 1;
    +        } else {
    +            $bFormatFont = 0;
    +        }
    +        // Alignment
    +        $flags = 0;
    +        $flags |= (1 == $bAlignHz ? 0x00000001 : 0);
    +        $flags |= (1 == $bAlignVt ? 0x00000002 : 0);
    +        $flags |= (1 == $bAlignWrapTx ? 0x00000004 : 0);
    +        $flags |= (1 == $bTxRotation ? 0x00000008 : 0);
    +        // Justify last line flag
    +        $flags |= (1 == 1 ? 0x00000010 : 0);
    +        $flags |= (1 == $bIndent ? 0x00000020 : 0);
    +        $flags |= (1 == $bShrinkToFit ? 0x00000040 : 0);
    +        // Default
    +        $flags |= (1 == 1 ? 0x00000080 : 0);
    +        // Protection
    +        $flags |= (1 == $bProtLocked ? 0x00000100 : 0);
    +        $flags |= (1 == $bProtHidden ? 0x00000200 : 0);
    +        // Border
    +        $flags |= (1 == $bBorderLeft ? 0x00000400 : 0);
    +        $flags |= (1 == $bBorderRight ? 0x00000800 : 0);
    +        $flags |= (1 == $bBorderTop ? 0x00001000 : 0);
    +        $flags |= (1 == $bBorderBottom ? 0x00002000 : 0);
    +        $flags |= (1 == 1 ? 0x00004000 : 0); // Top left to Bottom right border
    +        $flags |= (1 == 1 ? 0x00008000 : 0); // Bottom left to Top right border
    +        // Pattern
    +        $flags |= (1 == $bFillStyle ? 0x00010000 : 0);
    +        $flags |= (1 == $bFillColor ? 0x00020000 : 0);
    +        $flags |= (1 == $bFillColorBg ? 0x00040000 : 0);
    +        $flags |= (1 == 1 ? 0x00380000 : 0);
    +        // Font
    +        $flags |= (1 == $bFormatFont ? 0x04000000 : 0);
    +        // Alignment:
    +        $flags |= (1 == $bFormatAlign ? 0x08000000 : 0);
    +        // Border
    +        $flags |= (1 == $bFormatBorder ? 0x10000000 : 0);
    +        // Pattern
    +        $flags |= (1 == $bFormatFill ? 0x20000000 : 0);
    +        // Protection
    +        $flags |= (1 == $bFormatProt ? 0x40000000 : 0);
    +        // Text direction
    +        $flags |= (1 == 0 ? 0x80000000 : 0);
    +
    +        // Data Blocks
    +        if ($bFormatFont == 1) {
    +            // Font Name
    +            if ($conditional->getStyle()->getFont()->getName() == null) {
    +                $dataBlockFont = pack('VVVVVVVV', 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000);
    +                $dataBlockFont .= pack('VVVVVVVV', 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000);
    +            } else {
    +                $dataBlockFont = StringHelper::UTF8toBIFF8UnicodeLong($conditional->getStyle()->getFont()->getName());
    +            }
    +            // Font Size
    +            if ($conditional->getStyle()->getFont()->getSize() == null) {
    +                $dataBlockFont .= pack('V', 20 * 11);
    +            } else {
    +                $dataBlockFont .= pack('V', 20 * $conditional->getStyle()->getFont()->getSize());
    +            }
    +            // Font Options
    +            $dataBlockFont .= pack('V', 0);
    +            // Font weight
    +            if ($conditional->getStyle()->getFont()->getBold() == true) {
    +                $dataBlockFont .= pack('v', 0x02BC);
    +            } else {
    +                $dataBlockFont .= pack('v', 0x0190);
    +            }
    +            // Escapement type
    +            if ($conditional->getStyle()->getFont()->getSubscript() == true) {
    +                $dataBlockFont .= pack('v', 0x02);
    +                $fontEscapement = 0;
    +            } elseif ($conditional->getStyle()->getFont()->getSuperscript() == true) {
    +                $dataBlockFont .= pack('v', 0x01);
    +                $fontEscapement = 0;
    +            } else {
    +                $dataBlockFont .= pack('v', 0x00);
    +                $fontEscapement = 1;
    +            }
    +            // Underline type
    +            switch ($conditional->getStyle()->getFont()->getUnderline()) {
    +                case \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_NONE:
    +                    $dataBlockFont .= pack('C', 0x00);
    +                    $fontUnderline = 0;
    +
    +                    break;
    +                case \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE:
    +                    $dataBlockFont .= pack('C', 0x02);
    +                    $fontUnderline = 0;
    +
    +                    break;
    +                case \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING:
    +                    $dataBlockFont .= pack('C', 0x22);
    +                    $fontUnderline = 0;
    +
    +                    break;
    +                case \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE:
    +                    $dataBlockFont .= pack('C', 0x01);
    +                    $fontUnderline = 0;
    +
    +                    break;
    +                case \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING:
    +                    $dataBlockFont .= pack('C', 0x21);
    +                    $fontUnderline = 0;
    +
    +                    break;
    +                default:
    +                    $dataBlockFont .= pack('C', 0x00);
    +                    $fontUnderline = 1;
    +
    +                    break;
    +            }
    +            // Not used (3)
    +            $dataBlockFont .= pack('vC', 0x0000, 0x00);
    +            // Font color index
    +            switch ($conditional->getStyle()->getFont()->getColor()->getRGB()) {
    +                case '000000':
    +                    $colorIdx = 0x08;
    +
    +                    break;
    +                case 'FFFFFF':
    +                    $colorIdx = 0x09;
    +
    +                    break;
    +                case 'FF0000':
    +                    $colorIdx = 0x0A;
    +
    +                    break;
    +                case '00FF00':
    +                    $colorIdx = 0x0B;
    +
    +                    break;
    +                case '0000FF':
    +                    $colorIdx = 0x0C;
    +
    +                    break;
    +                case 'FFFF00':
    +                    $colorIdx = 0x0D;
    +
    +                    break;
    +                case 'FF00FF':
    +                    $colorIdx = 0x0E;
    +
    +                    break;
    +                case '00FFFF':
    +                    $colorIdx = 0x0F;
    +
    +                    break;
    +                case '800000':
    +                    $colorIdx = 0x10;
    +
    +                    break;
    +                case '008000':
    +                    $colorIdx = 0x11;
    +
    +                    break;
    +                case '000080':
    +                    $colorIdx = 0x12;
    +
    +                    break;
    +                case '808000':
    +                    $colorIdx = 0x13;
    +
    +                    break;
    +                case '800080':
    +                    $colorIdx = 0x14;
    +
    +                    break;
    +                case '008080':
    +                    $colorIdx = 0x15;
    +
    +                    break;
    +                case 'C0C0C0':
    +                    $colorIdx = 0x16;
    +
    +                    break;
    +                case '808080':
    +                    $colorIdx = 0x17;
    +
    +                    break;
    +                case '9999FF':
    +                    $colorIdx = 0x18;
    +
    +                    break;
    +                case '993366':
    +                    $colorIdx = 0x19;
    +
    +                    break;
    +                case 'FFFFCC':
    +                    $colorIdx = 0x1A;
    +
    +                    break;
    +                case 'CCFFFF':
    +                    $colorIdx = 0x1B;
    +
    +                    break;
    +                case '660066':
    +                    $colorIdx = 0x1C;
    +
    +                    break;
    +                case 'FF8080':
    +                    $colorIdx = 0x1D;
    +
    +                    break;
    +                case '0066CC':
    +                    $colorIdx = 0x1E;
    +
    +                    break;
    +                case 'CCCCFF':
    +                    $colorIdx = 0x1F;
    +
    +                    break;
    +                case '000080':
    +                    $colorIdx = 0x20;
    +
    +                    break;
    +                case 'FF00FF':
    +                    $colorIdx = 0x21;
    +
    +                    break;
    +                case 'FFFF00':
    +                    $colorIdx = 0x22;
    +
    +                    break;
    +                case '00FFFF':
    +                    $colorIdx = 0x23;
    +
    +                    break;
    +                case '800080':
    +                    $colorIdx = 0x24;
    +
    +                    break;
    +                case '800000':
    +                    $colorIdx = 0x25;
    +
    +                    break;
    +                case '008080':
    +                    $colorIdx = 0x26;
    +
    +                    break;
    +                case '0000FF':
    +                    $colorIdx = 0x27;
    +
    +                    break;
    +                case '00CCFF':
    +                    $colorIdx = 0x28;
    +
    +                    break;
    +                case 'CCFFFF':
    +                    $colorIdx = 0x29;
    +
    +                    break;
    +                case 'CCFFCC':
    +                    $colorIdx = 0x2A;
    +
    +                    break;
    +                case 'FFFF99':
    +                    $colorIdx = 0x2B;
    +
    +                    break;
    +                case '99CCFF':
    +                    $colorIdx = 0x2C;
    +
    +                    break;
    +                case 'FF99CC':
    +                    $colorIdx = 0x2D;
    +
    +                    break;
    +                case 'CC99FF':
    +                    $colorIdx = 0x2E;
    +
    +                    break;
    +                case 'FFCC99':
    +                    $colorIdx = 0x2F;
    +
    +                    break;
    +                case '3366FF':
    +                    $colorIdx = 0x30;
    +
    +                    break;
    +                case '33CCCC':
    +                    $colorIdx = 0x31;
    +
    +                    break;
    +                case '99CC00':
    +                    $colorIdx = 0x32;
    +
    +                    break;
    +                case 'FFCC00':
    +                    $colorIdx = 0x33;
    +
    +                    break;
    +                case 'FF9900':
    +                    $colorIdx = 0x34;
    +
    +                    break;
    +                case 'FF6600':
    +                    $colorIdx = 0x35;
    +
    +                    break;
    +                case '666699':
    +                    $colorIdx = 0x36;
    +
    +                    break;
    +                case '969696':
    +                    $colorIdx = 0x37;
    +
    +                    break;
    +                case '003366':
    +                    $colorIdx = 0x38;
    +
    +                    break;
    +                case '339966':
    +                    $colorIdx = 0x39;
    +
    +                    break;
    +                case '003300':
    +                    $colorIdx = 0x3A;
    +
    +                    break;
    +                case '333300':
    +                    $colorIdx = 0x3B;
    +
    +                    break;
    +                case '993300':
    +                    $colorIdx = 0x3C;
    +
    +                    break;
    +                case '993366':
    +                    $colorIdx = 0x3D;
    +
    +                    break;
    +                case '333399':
    +                    $colorIdx = 0x3E;
    +
    +                    break;
    +                case '333333':
    +                    $colorIdx = 0x3F;
    +
    +                    break;
    +                default:
    +                    $colorIdx = 0x00;
    +
    +                    break;
    +            }
    +            $dataBlockFont .= pack('V', $colorIdx);
    +            // Not used (4)
    +            $dataBlockFont .= pack('V', 0x00000000);
    +            // Options flags for modified font attributes
    +            $optionsFlags = 0;
    +            $optionsFlagsBold = ($conditional->getStyle()->getFont()->getBold() == null ? 1 : 0);
    +            $optionsFlags |= (1 == $optionsFlagsBold ? 0x00000002 : 0);
    +            $optionsFlags |= (1 == 1 ? 0x00000008 : 0);
    +            $optionsFlags |= (1 == 1 ? 0x00000010 : 0);
    +            $optionsFlags |= (1 == 0 ? 0x00000020 : 0);
    +            $optionsFlags |= (1 == 1 ? 0x00000080 : 0);
    +            $dataBlockFont .= pack('V', $optionsFlags);
    +            // Escapement type
    +            $dataBlockFont .= pack('V', $fontEscapement);
    +            // Underline type
    +            $dataBlockFont .= pack('V', $fontUnderline);
    +            // Always
    +            $dataBlockFont .= pack('V', 0x00000000);
    +            // Always
    +            $dataBlockFont .= pack('V', 0x00000000);
    +            // Not used (8)
    +            $dataBlockFont .= pack('VV', 0x00000000, 0x00000000);
    +            // Always
    +            $dataBlockFont .= pack('v', 0x0001);
    +        }
    +        if ($bFormatAlign == 1) {
    +            $blockAlign = 0;
    +            // Alignment and text break
    +            switch ($conditional->getStyle()->getAlignment()->getHorizontal()) {
    +                case Alignment::HORIZONTAL_GENERAL:
    +                    $blockAlign = 0;
    +
    +                    break;
    +                case Alignment::HORIZONTAL_LEFT:
    +                    $blockAlign = 1;
    +
    +                    break;
    +                case Alignment::HORIZONTAL_RIGHT:
    +                    $blockAlign = 3;
    +
    +                    break;
    +                case Alignment::HORIZONTAL_CENTER:
    +                    $blockAlign = 2;
    +
    +                    break;
    +                case Alignment::HORIZONTAL_CENTER_CONTINUOUS:
    +                    $blockAlign = 6;
    +
    +                    break;
    +                case Alignment::HORIZONTAL_JUSTIFY:
    +                    $blockAlign = 5;
    +
    +                    break;
    +            }
    +            if ($conditional->getStyle()->getAlignment()->getWrapText() == true) {
    +                $blockAlign |= 1 << 3;
    +            } else {
    +                $blockAlign |= 0 << 3;
    +            }
    +            switch ($conditional->getStyle()->getAlignment()->getVertical()) {
    +                case Alignment::VERTICAL_BOTTOM:
    +                    $blockAlign = 2 << 4;
    +
    +                    break;
    +                case Alignment::VERTICAL_TOP:
    +                    $blockAlign = 0 << 4;
    +
    +                    break;
    +                case Alignment::VERTICAL_CENTER:
    +                    $blockAlign = 1 << 4;
    +
    +                    break;
    +                case Alignment::VERTICAL_JUSTIFY:
    +                    $blockAlign = 3 << 4;
    +
    +                    break;
    +            }
    +            $blockAlign |= 0 << 7;
    +
    +            // Text rotation angle
    +            $blockRotation = $conditional->getStyle()->getAlignment()->getTextRotation();
    +
    +            // Indentation
    +            $blockIndent = $conditional->getStyle()->getAlignment()->getIndent();
    +            if ($conditional->getStyle()->getAlignment()->getShrinkToFit() == true) {
    +                $blockIndent |= 1 << 4;
    +            } else {
    +                $blockIndent |= 0 << 4;
    +            }
    +            $blockIndent |= 0 << 6;
    +
    +            // Relative indentation
    +            $blockIndentRelative = 255;
    +
    +            $dataBlockAlign = pack('CCvvv', $blockAlign, $blockRotation, $blockIndent, $blockIndentRelative, 0x0000);
    +        }
    +        if ($bFormatBorder == 1) {
    +            $blockLineStyle = 0;
    +            switch ($conditional->getStyle()->getBorders()->getLeft()->getBorderStyle()) {
    +                case Border::BORDER_NONE:
    +                    $blockLineStyle |= 0x00;
    +
    +                    break;
    +                case Border::BORDER_THIN:
    +                    $blockLineStyle |= 0x01;
    +
    +                    break;
    +                case Border::BORDER_MEDIUM:
    +                    $blockLineStyle |= 0x02;
    +
    +                    break;
    +                case Border::BORDER_DASHED:
    +                    $blockLineStyle |= 0x03;
    +
    +                    break;
    +                case Border::BORDER_DOTTED:
    +                    $blockLineStyle |= 0x04;
    +
    +                    break;
    +                case Border::BORDER_THICK:
    +                    $blockLineStyle |= 0x05;
    +
    +                    break;
    +                case Border::BORDER_DOUBLE:
    +                    $blockLineStyle |= 0x06;
    +
    +                    break;
    +                case Border::BORDER_HAIR:
    +                    $blockLineStyle |= 0x07;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHED:
    +                    $blockLineStyle |= 0x08;
    +
    +                    break;
    +                case Border::BORDER_DASHDOT:
    +                    $blockLineStyle |= 0x09;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHDOT:
    +                    $blockLineStyle |= 0x0A;
    +
    +                    break;
    +                case Border::BORDER_DASHDOTDOT:
    +                    $blockLineStyle |= 0x0B;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHDOTDOT:
    +                    $blockLineStyle |= 0x0C;
    +
    +                    break;
    +                case Border::BORDER_SLANTDASHDOT:
    +                    $blockLineStyle |= 0x0D;
    +
    +                    break;
    +            }
    +            switch ($conditional->getStyle()->getBorders()->getRight()->getBorderStyle()) {
    +                case Border::BORDER_NONE:
    +                    $blockLineStyle |= 0x00 << 4;
    +
    +                    break;
    +                case Border::BORDER_THIN:
    +                    $blockLineStyle |= 0x01 << 4;
    +
    +                    break;
    +                case Border::BORDER_MEDIUM:
    +                    $blockLineStyle |= 0x02 << 4;
    +
    +                    break;
    +                case Border::BORDER_DASHED:
    +                    $blockLineStyle |= 0x03 << 4;
    +
    +                    break;
    +                case Border::BORDER_DOTTED:
    +                    $blockLineStyle |= 0x04 << 4;
    +
    +                    break;
    +                case Border::BORDER_THICK:
    +                    $blockLineStyle |= 0x05 << 4;
    +
    +                    break;
    +                case Border::BORDER_DOUBLE:
    +                    $blockLineStyle |= 0x06 << 4;
    +
    +                    break;
    +                case Border::BORDER_HAIR:
    +                    $blockLineStyle |= 0x07 << 4;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHED:
    +                    $blockLineStyle |= 0x08 << 4;
    +
    +                    break;
    +                case Border::BORDER_DASHDOT:
    +                    $blockLineStyle |= 0x09 << 4;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHDOT:
    +                    $blockLineStyle |= 0x0A << 4;
    +
    +                    break;
    +                case Border::BORDER_DASHDOTDOT:
    +                    $blockLineStyle |= 0x0B << 4;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHDOTDOT:
    +                    $blockLineStyle |= 0x0C << 4;
    +
    +                    break;
    +                case Border::BORDER_SLANTDASHDOT:
    +                    $blockLineStyle |= 0x0D << 4;
    +
    +                    break;
    +            }
    +            switch ($conditional->getStyle()->getBorders()->getTop()->getBorderStyle()) {
    +                case Border::BORDER_NONE:
    +                    $blockLineStyle |= 0x00 << 8;
    +
    +                    break;
    +                case Border::BORDER_THIN:
    +                    $blockLineStyle |= 0x01 << 8;
    +
    +                    break;
    +                case Border::BORDER_MEDIUM:
    +                    $blockLineStyle |= 0x02 << 8;
    +
    +                    break;
    +                case Border::BORDER_DASHED:
    +                    $blockLineStyle |= 0x03 << 8;
    +
    +                    break;
    +                case Border::BORDER_DOTTED:
    +                    $blockLineStyle |= 0x04 << 8;
    +
    +                    break;
    +                case Border::BORDER_THICK:
    +                    $blockLineStyle |= 0x05 << 8;
    +
    +                    break;
    +                case Border::BORDER_DOUBLE:
    +                    $blockLineStyle |= 0x06 << 8;
    +
    +                    break;
    +                case Border::BORDER_HAIR:
    +                    $blockLineStyle |= 0x07 << 8;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHED:
    +                    $blockLineStyle |= 0x08 << 8;
    +
    +                    break;
    +                case Border::BORDER_DASHDOT:
    +                    $blockLineStyle |= 0x09 << 8;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHDOT:
    +                    $blockLineStyle |= 0x0A << 8;
    +
    +                    break;
    +                case Border::BORDER_DASHDOTDOT:
    +                    $blockLineStyle |= 0x0B << 8;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHDOTDOT:
    +                    $blockLineStyle |= 0x0C << 8;
    +
    +                    break;
    +                case Border::BORDER_SLANTDASHDOT:
    +                    $blockLineStyle |= 0x0D << 8;
    +
    +                    break;
    +            }
    +            switch ($conditional->getStyle()->getBorders()->getBottom()->getBorderStyle()) {
    +                case Border::BORDER_NONE:
    +                    $blockLineStyle |= 0x00 << 12;
    +
    +                    break;
    +                case Border::BORDER_THIN:
    +                    $blockLineStyle |= 0x01 << 12;
    +
    +                    break;
    +                case Border::BORDER_MEDIUM:
    +                    $blockLineStyle |= 0x02 << 12;
    +
    +                    break;
    +                case Border::BORDER_DASHED:
    +                    $blockLineStyle |= 0x03 << 12;
    +
    +                    break;
    +                case Border::BORDER_DOTTED:
    +                    $blockLineStyle |= 0x04 << 12;
    +
    +                    break;
    +                case Border::BORDER_THICK:
    +                    $blockLineStyle |= 0x05 << 12;
    +
    +                    break;
    +                case Border::BORDER_DOUBLE:
    +                    $blockLineStyle |= 0x06 << 12;
    +
    +                    break;
    +                case Border::BORDER_HAIR:
    +                    $blockLineStyle |= 0x07 << 12;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHED:
    +                    $blockLineStyle |= 0x08 << 12;
    +
    +                    break;
    +                case Border::BORDER_DASHDOT:
    +                    $blockLineStyle |= 0x09 << 12;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHDOT:
    +                    $blockLineStyle |= 0x0A << 12;
    +
    +                    break;
    +                case Border::BORDER_DASHDOTDOT:
    +                    $blockLineStyle |= 0x0B << 12;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHDOTDOT:
    +                    $blockLineStyle |= 0x0C << 12;
    +
    +                    break;
    +                case Border::BORDER_SLANTDASHDOT:
    +                    $blockLineStyle |= 0x0D << 12;
    +
    +                    break;
    +            }
    +            //@todo writeCFRule() => $blockLineStyle => Index Color for left line
    +            //@todo writeCFRule() => $blockLineStyle => Index Color for right line
    +            //@todo writeCFRule() => $blockLineStyle => Top-left to bottom-right on/off
    +            //@todo writeCFRule() => $blockLineStyle => Bottom-left to top-right on/off
    +            $blockColor = 0;
    +            //@todo writeCFRule() => $blockColor => Index Color for top line
    +            //@todo writeCFRule() => $blockColor => Index Color for bottom line
    +            //@todo writeCFRule() => $blockColor => Index Color for diagonal line
    +            switch ($conditional->getStyle()->getBorders()->getDiagonal()->getBorderStyle()) {
    +                case Border::BORDER_NONE:
    +                    $blockColor |= 0x00 << 21;
    +
    +                    break;
    +                case Border::BORDER_THIN:
    +                    $blockColor |= 0x01 << 21;
    +
    +                    break;
    +                case Border::BORDER_MEDIUM:
    +                    $blockColor |= 0x02 << 21;
    +
    +                    break;
    +                case Border::BORDER_DASHED:
    +                    $blockColor |= 0x03 << 21;
    +
    +                    break;
    +                case Border::BORDER_DOTTED:
    +                    $blockColor |= 0x04 << 21;
    +
    +                    break;
    +                case Border::BORDER_THICK:
    +                    $blockColor |= 0x05 << 21;
    +
    +                    break;
    +                case Border::BORDER_DOUBLE:
    +                    $blockColor |= 0x06 << 21;
    +
    +                    break;
    +                case Border::BORDER_HAIR:
    +                    $blockColor |= 0x07 << 21;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHED:
    +                    $blockColor |= 0x08 << 21;
    +
    +                    break;
    +                case Border::BORDER_DASHDOT:
    +                    $blockColor |= 0x09 << 21;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHDOT:
    +                    $blockColor |= 0x0A << 21;
    +
    +                    break;
    +                case Border::BORDER_DASHDOTDOT:
    +                    $blockColor |= 0x0B << 21;
    +
    +                    break;
    +                case Border::BORDER_MEDIUMDASHDOTDOT:
    +                    $blockColor |= 0x0C << 21;
    +
    +                    break;
    +                case Border::BORDER_SLANTDASHDOT:
    +                    $blockColor |= 0x0D << 21;
    +
    +                    break;
    +            }
    +            $dataBlockBorder = pack('vv', $blockLineStyle, $blockColor);
    +        }
    +        if ($bFormatFill == 1) {
    +            // Fill Patern Style
    +            $blockFillPatternStyle = 0;
    +            switch ($conditional->getStyle()->getFill()->getFillType()) {
    +                case Fill::FILL_NONE:
    +                    $blockFillPatternStyle = 0x00;
    +
    +                    break;
    +                case Fill::FILL_SOLID:
    +                    $blockFillPatternStyle = 0x01;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_MEDIUMGRAY:
    +                    $blockFillPatternStyle = 0x02;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_DARKGRAY:
    +                    $blockFillPatternStyle = 0x03;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_LIGHTGRAY:
    +                    $blockFillPatternStyle = 0x04;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_DARKHORIZONTAL:
    +                    $blockFillPatternStyle = 0x05;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_DARKVERTICAL:
    +                    $blockFillPatternStyle = 0x06;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_DARKDOWN:
    +                    $blockFillPatternStyle = 0x07;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_DARKUP:
    +                    $blockFillPatternStyle = 0x08;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_DARKGRID:
    +                    $blockFillPatternStyle = 0x09;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_DARKTRELLIS:
    +                    $blockFillPatternStyle = 0x0A;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_LIGHTHORIZONTAL:
    +                    $blockFillPatternStyle = 0x0B;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_LIGHTVERTICAL:
    +                    $blockFillPatternStyle = 0x0C;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_LIGHTDOWN:
    +                    $blockFillPatternStyle = 0x0D;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_LIGHTUP:
    +                    $blockFillPatternStyle = 0x0E;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_LIGHTGRID:
    +                    $blockFillPatternStyle = 0x0F;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_LIGHTTRELLIS:
    +                    $blockFillPatternStyle = 0x10;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_GRAY125:
    +                    $blockFillPatternStyle = 0x11;
    +
    +                    break;
    +                case Fill::FILL_PATTERN_GRAY0625:
    +                    $blockFillPatternStyle = 0x12;
    +
    +                    break;
    +                case Fill::FILL_GRADIENT_LINEAR:
    +                    $blockFillPatternStyle = 0x00;
    +
    +                    break; // does not exist in BIFF8
    +                case Fill::FILL_GRADIENT_PATH:
    +                    $blockFillPatternStyle = 0x00;
    +
    +                    break; // does not exist in BIFF8
    +                default:
    +                    $blockFillPatternStyle = 0x00;
    +
    +                    break;
    +            }
    +            // Color
    +            switch ($conditional->getStyle()->getFill()->getStartColor()->getRGB()) {
    +                case '000000':
    +                    $colorIdxBg = 0x08;
    +
    +                    break;
    +                case 'FFFFFF':
    +                    $colorIdxBg = 0x09;
    +
    +                    break;
    +                case 'FF0000':
    +                    $colorIdxBg = 0x0A;
    +
    +                    break;
    +                case '00FF00':
    +                    $colorIdxBg = 0x0B;
    +
    +                    break;
    +                case '0000FF':
    +                    $colorIdxBg = 0x0C;
    +
    +                    break;
    +                case 'FFFF00':
    +                    $colorIdxBg = 0x0D;
    +
    +                    break;
    +                case 'FF00FF':
    +                    $colorIdxBg = 0x0E;
    +
    +                    break;
    +                case '00FFFF':
    +                    $colorIdxBg = 0x0F;
    +
    +                    break;
    +                case '800000':
    +                    $colorIdxBg = 0x10;
    +
    +                    break;
    +                case '008000':
    +                    $colorIdxBg = 0x11;
    +
    +                    break;
    +                case '000080':
    +                    $colorIdxBg = 0x12;
    +
    +                    break;
    +                case '808000':
    +                    $colorIdxBg = 0x13;
    +
    +                    break;
    +                case '800080':
    +                    $colorIdxBg = 0x14;
    +
    +                    break;
    +                case '008080':
    +                    $colorIdxBg = 0x15;
    +
    +                    break;
    +                case 'C0C0C0':
    +                    $colorIdxBg = 0x16;
    +
    +                    break;
    +                case '808080':
    +                    $colorIdxBg = 0x17;
    +
    +                    break;
    +                case '9999FF':
    +                    $colorIdxBg = 0x18;
    +
    +                    break;
    +                case '993366':
    +                    $colorIdxBg = 0x19;
    +
    +                    break;
    +                case 'FFFFCC':
    +                    $colorIdxBg = 0x1A;
    +
    +                    break;
    +                case 'CCFFFF':
    +                    $colorIdxBg = 0x1B;
    +
    +                    break;
    +                case '660066':
    +                    $colorIdxBg = 0x1C;
    +
    +                    break;
    +                case 'FF8080':
    +                    $colorIdxBg = 0x1D;
    +
    +                    break;
    +                case '0066CC':
    +                    $colorIdxBg = 0x1E;
    +
    +                    break;
    +                case 'CCCCFF':
    +                    $colorIdxBg = 0x1F;
    +
    +                    break;
    +                case '000080':
    +                    $colorIdxBg = 0x20;
    +
    +                    break;
    +                case 'FF00FF':
    +                    $colorIdxBg = 0x21;
    +
    +                    break;
    +                case 'FFFF00':
    +                    $colorIdxBg = 0x22;
    +
    +                    break;
    +                case '00FFFF':
    +                    $colorIdxBg = 0x23;
    +
    +                    break;
    +                case '800080':
    +                    $colorIdxBg = 0x24;
    +
    +                    break;
    +                case '800000':
    +                    $colorIdxBg = 0x25;
    +
    +                    break;
    +                case '008080':
    +                    $colorIdxBg = 0x26;
    +
    +                    break;
    +                case '0000FF':
    +                    $colorIdxBg = 0x27;
    +
    +                    break;
    +                case '00CCFF':
    +                    $colorIdxBg = 0x28;
    +
    +                    break;
    +                case 'CCFFFF':
    +                    $colorIdxBg = 0x29;
    +
    +                    break;
    +                case 'CCFFCC':
    +                    $colorIdxBg = 0x2A;
    +
    +                    break;
    +                case 'FFFF99':
    +                    $colorIdxBg = 0x2B;
    +
    +                    break;
    +                case '99CCFF':
    +                    $colorIdxBg = 0x2C;
    +
    +                    break;
    +                case 'FF99CC':
    +                    $colorIdxBg = 0x2D;
    +
    +                    break;
    +                case 'CC99FF':
    +                    $colorIdxBg = 0x2E;
    +
    +                    break;
    +                case 'FFCC99':
    +                    $colorIdxBg = 0x2F;
    +
    +                    break;
    +                case '3366FF':
    +                    $colorIdxBg = 0x30;
    +
    +                    break;
    +                case '33CCCC':
    +                    $colorIdxBg = 0x31;
    +
    +                    break;
    +                case '99CC00':
    +                    $colorIdxBg = 0x32;
    +
    +                    break;
    +                case 'FFCC00':
    +                    $colorIdxBg = 0x33;
    +
    +                    break;
    +                case 'FF9900':
    +                    $colorIdxBg = 0x34;
    +
    +                    break;
    +                case 'FF6600':
    +                    $colorIdxBg = 0x35;
    +
    +                    break;
    +                case '666699':
    +                    $colorIdxBg = 0x36;
    +
    +                    break;
    +                case '969696':
    +                    $colorIdxBg = 0x37;
    +
    +                    break;
    +                case '003366':
    +                    $colorIdxBg = 0x38;
    +
    +                    break;
    +                case '339966':
    +                    $colorIdxBg = 0x39;
    +
    +                    break;
    +                case '003300':
    +                    $colorIdxBg = 0x3A;
    +
    +                    break;
    +                case '333300':
    +                    $colorIdxBg = 0x3B;
    +
    +                    break;
    +                case '993300':
    +                    $colorIdxBg = 0x3C;
    +
    +                    break;
    +                case '993366':
    +                    $colorIdxBg = 0x3D;
    +
    +                    break;
    +                case '333399':
    +                    $colorIdxBg = 0x3E;
    +
    +                    break;
    +                case '333333':
    +                    $colorIdxBg = 0x3F;
    +
    +                    break;
    +                default:
    +                          $colorIdxBg = 0x41;
    +
    +                    break;
    +            }
    +            // Fg Color
    +            switch ($conditional->getStyle()->getFill()->getEndColor()->getRGB()) {
    +                case '000000':
    +                    $colorIdxFg = 0x08;
    +
    +                    break;
    +                case 'FFFFFF':
    +                    $colorIdxFg = 0x09;
    +
    +                    break;
    +                case 'FF0000':
    +                    $colorIdxFg = 0x0A;
    +
    +                    break;
    +                case '00FF00':
    +                    $colorIdxFg = 0x0B;
    +
    +                    break;
    +                case '0000FF':
    +                    $colorIdxFg = 0x0C;
    +
    +                    break;
    +                case 'FFFF00':
    +                    $colorIdxFg = 0x0D;
    +
    +                    break;
    +                case 'FF00FF':
    +                    $colorIdxFg = 0x0E;
    +
    +                    break;
    +                case '00FFFF':
    +                    $colorIdxFg = 0x0F;
    +
    +                    break;
    +                case '800000':
    +                    $colorIdxFg = 0x10;
    +
    +                    break;
    +                case '008000':
    +                    $colorIdxFg = 0x11;
    +
    +                    break;
    +                case '000080':
    +                    $colorIdxFg = 0x12;
    +
    +                    break;
    +                case '808000':
    +                    $colorIdxFg = 0x13;
    +
    +                    break;
    +                case '800080':
    +                    $colorIdxFg = 0x14;
    +
    +                    break;
    +                case '008080':
    +                    $colorIdxFg = 0x15;
    +
    +                    break;
    +                case 'C0C0C0':
    +                    $colorIdxFg = 0x16;
    +
    +                    break;
    +                case '808080':
    +                    $colorIdxFg = 0x17;
    +
    +                    break;
    +                case '9999FF':
    +                    $colorIdxFg = 0x18;
    +
    +                    break;
    +                case '993366':
    +                    $colorIdxFg = 0x19;
    +
    +                    break;
    +                case 'FFFFCC':
    +                    $colorIdxFg = 0x1A;
    +
    +                    break;
    +                case 'CCFFFF':
    +                    $colorIdxFg = 0x1B;
    +
    +                    break;
    +                case '660066':
    +                    $colorIdxFg = 0x1C;
    +
    +                    break;
    +                case 'FF8080':
    +                    $colorIdxFg = 0x1D;
    +
    +                    break;
    +                case '0066CC':
    +                    $colorIdxFg = 0x1E;
    +
    +                    break;
    +                case 'CCCCFF':
    +                    $colorIdxFg = 0x1F;
    +
    +                    break;
    +                case '000080':
    +                    $colorIdxFg = 0x20;
    +
    +                    break;
    +                case 'FF00FF':
    +                    $colorIdxFg = 0x21;
    +
    +                    break;
    +                case 'FFFF00':
    +                    $colorIdxFg = 0x22;
    +
    +                    break;
    +                case '00FFFF':
    +                    $colorIdxFg = 0x23;
    +
    +                    break;
    +                case '800080':
    +                    $colorIdxFg = 0x24;
    +
    +                    break;
    +                case '800000':
    +                    $colorIdxFg = 0x25;
    +
    +                    break;
    +                case '008080':
    +                    $colorIdxFg = 0x26;
    +
    +                    break;
    +                case '0000FF':
    +                    $colorIdxFg = 0x27;
    +
    +                    break;
    +                case '00CCFF':
    +                    $colorIdxFg = 0x28;
    +
    +                    break;
    +                case 'CCFFFF':
    +                    $colorIdxFg = 0x29;
    +
    +                    break;
    +                case 'CCFFCC':
    +                    $colorIdxFg = 0x2A;
    +
    +                    break;
    +                case 'FFFF99':
    +                    $colorIdxFg = 0x2B;
    +
    +                    break;
    +                case '99CCFF':
    +                    $colorIdxFg = 0x2C;
    +
    +                    break;
    +                case 'FF99CC':
    +                    $colorIdxFg = 0x2D;
    +
    +                    break;
    +                case 'CC99FF':
    +                    $colorIdxFg = 0x2E;
    +
    +                    break;
    +                case 'FFCC99':
    +                    $colorIdxFg = 0x2F;
    +
    +                    break;
    +                case '3366FF':
    +                    $colorIdxFg = 0x30;
    +
    +                    break;
    +                case '33CCCC':
    +                    $colorIdxFg = 0x31;
    +
    +                    break;
    +                case '99CC00':
    +                    $colorIdxFg = 0x32;
    +
    +                    break;
    +                case 'FFCC00':
    +                    $colorIdxFg = 0x33;
    +
    +                    break;
    +                case 'FF9900':
    +                    $colorIdxFg = 0x34;
    +
    +                    break;
    +                case 'FF6600':
    +                    $colorIdxFg = 0x35;
    +
    +                    break;
    +                case '666699':
    +                    $colorIdxFg = 0x36;
    +
    +                    break;
    +                case '969696':
    +                    $colorIdxFg = 0x37;
    +
    +                    break;
    +                case '003366':
    +                    $colorIdxFg = 0x38;
    +
    +                    break;
    +                case '339966':
    +                    $colorIdxFg = 0x39;
    +
    +                    break;
    +                case '003300':
    +                    $colorIdxFg = 0x3A;
    +
    +                    break;
    +                case '333300':
    +                    $colorIdxFg = 0x3B;
    +
    +                    break;
    +                case '993300':
    +                    $colorIdxFg = 0x3C;
    +
    +                    break;
    +                case '993366':
    +                    $colorIdxFg = 0x3D;
    +
    +                    break;
    +                case '333399':
    +                    $colorIdxFg = 0x3E;
    +
    +                    break;
    +                case '333333':
    +                    $colorIdxFg = 0x3F;
    +
    +                    break;
    +                default:
    +                          $colorIdxFg = 0x40;
    +
    +                    break;
    +            }
    +            $dataBlockFill = pack('v', $blockFillPatternStyle);
    +            $dataBlockFill .= pack('v', $colorIdxFg | ($colorIdxBg << 7));
    +        }
    +        if ($bFormatProt == 1) {
    +            $dataBlockProtection = 0;
    +            if ($conditional->getStyle()->getProtection()->getLocked() == Protection::PROTECTION_PROTECTED) {
    +                $dataBlockProtection = 1;
    +            }
    +            if ($conditional->getStyle()->getProtection()->getHidden() == Protection::PROTECTION_PROTECTED) {
    +                $dataBlockProtection = 1 << 1;
    +            }
    +        }
    +
    +        $data = pack('CCvvVv', $type, $operatorType, $szValue1, $szValue2, $flags, 0x0000);
    +        if ($bFormatFont == 1) { // Block Formatting : OK
    +            $data .= $dataBlockFont;
    +        }
    +        if ($bFormatAlign == 1) {
    +            $data .= $dataBlockAlign;
    +        }
    +        if ($bFormatBorder == 1) {
    +            $data .= $dataBlockBorder;
    +        }
    +        if ($bFormatFill == 1) { // Block Formatting : OK
    +            $data .= $dataBlockFill;
    +        }
    +        if ($bFormatProt == 1) {
    +            $data .= $dataBlockProtection;
    +        }
    +        if ($operand1 !== null) {
    +            $data .= $operand1;
    +        }
    +        if ($operand2 !== null) {
    +            $data .= $operand2;
    +        }
    +        $header = pack('vv', $record, strlen($data));
    +        $this->append($header . $data);
    +    }
    +
    +    /**
    +     * Write CFHeader record.
    +     */
    +    private function writeCFHeader()
    +    {
    +        $record = 0x01B0; // Record identifier
    +        $length = 0x0016; // Bytes to follow
    +
    +        $numColumnMin = null;
    +        $numColumnMax = null;
    +        $numRowMin = null;
    +        $numRowMax = null;
    +        $arrConditional = [];
    +        foreach ($this->phpSheet->getConditionalStylesCollection() as $cellCoordinate => $conditionalStyles) {
    +            foreach ($conditionalStyles as $conditional) {
    +                if ($conditional->getConditionType() == Conditional::CONDITION_EXPRESSION
    +                        || $conditional->getConditionType() == Conditional::CONDITION_CELLIS) {
    +                    if (!in_array($conditional->getHashCode(), $arrConditional)) {
    +                        $arrConditional[] = $conditional->getHashCode();
    +                    }
    +                    // Cells
    +                    $arrCoord = Coordinate::coordinateFromString($cellCoordinate);
    +                    if (!is_numeric($arrCoord[0])) {
    +                        $arrCoord[0] = Coordinate::columnIndexFromString($arrCoord[0]);
    +                    }
    +                    if ($numColumnMin === null || ($numColumnMin > $arrCoord[0])) {
    +                        $numColumnMin = $arrCoord[0];
    +                    }
    +                    if ($numColumnMax === null || ($numColumnMax < $arrCoord[0])) {
    +                        $numColumnMax = $arrCoord[0];
    +                    }
    +                    if ($numRowMin === null || ($numRowMin > $arrCoord[1])) {
    +                        $numRowMin = $arrCoord[1];
    +                    }
    +                    if ($numRowMax === null || ($numRowMax < $arrCoord[1])) {
    +                        $numRowMax = $arrCoord[1];
    +                    }
    +                }
    +            }
    +        }
    +        $needRedraw = 1;
    +        $cellRange = pack('vvvv', $numRowMin - 1, $numRowMax - 1, $numColumnMin - 1, $numColumnMax - 1);
    +
    +        $header = pack('vv', $record, $length);
    +        $data = pack('vv', count($arrConditional), $needRedraw);
    +        $data .= $cellRange;
    +        $data .= pack('v', 0x0001);
    +        $data .= $cellRange;
    +        $this->append($header . $data);
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Xf.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Xf.php
    new file mode 100644
    index 00000000000..238fb34c683
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xls/Xf.php
    @@ -0,0 +1,548 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xls;
    +
    +use PhpOffice\PhpSpreadsheet\Style\Alignment;
    +use PhpOffice\PhpSpreadsheet\Style\Border;
    +use PhpOffice\PhpSpreadsheet\Style\Borders;
    +use PhpOffice\PhpSpreadsheet\Style\Fill;
    +use PhpOffice\PhpSpreadsheet\Style\Protection;
    +use PhpOffice\PhpSpreadsheet\Style\Style;
    +
    +// Original file header of PEAR::Spreadsheet_Excel_Writer_Format (used as the base for this class):
    +// -----------------------------------------------------------------------------------------
    +// /*
    +// *  Module written/ported by Xavier Noguer <xnoguer@rezebra.com>
    +// *
    +// *  The majority of this is _NOT_ my code.  I simply ported it from the
    +// *  PERL Spreadsheet::WriteExcel module.
    +// *
    +// *  The author of the Spreadsheet::WriteExcel module is John McNamara
    +// *  <jmcnamara@cpan.org>
    +// *
    +// *  I _DO_ maintain this code, and John McNamara has nothing to do with the
    +// *  porting of this code to PHP.  Any questions directly related to this
    +// *  class library should be directed to me.
    +// *
    +// *  License Information:
    +// *
    +// *    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets
    +// *    Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
    +// *
    +// *    This library is free software; you can redistribute it and/or
    +// *    modify it under the terms of the GNU Lesser General Public
    +// *    License as published by the Free Software Foundation; either
    +// *    version 2.1 of the License, or (at your option) any later version.
    +// *
    +// *    This library is distributed in the hope that it will be useful,
    +// *    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +// *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    +// *    Lesser General Public License for more details.
    +// *
    +// *    You should have received a copy of the GNU Lesser General Public
    +// *    License along with this library; if not, write to the Free Software
    +// *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    +// */
    +class Xf
    +{
    +    /**
    +     * Style XF or a cell XF ?
    +     *
    +     * @var bool
    +     */
    +    private $isStyleXf;
    +
    +    /**
    +     * Index to the FONT record. Index 4 does not exist.
    +     *
    +     * @var int
    +     */
    +    private $fontIndex;
    +
    +    /**
    +     * An index (2 bytes) to a FORMAT record (number format).
    +     *
    +     * @var int
    +     */
    +    private $numberFormatIndex;
    +
    +    /**
    +     * 1 bit, apparently not used.
    +     *
    +     * @var int
    +     */
    +    private $textJustLast;
    +
    +    /**
    +     * The cell's foreground color.
    +     *
    +     * @var int
    +     */
    +    private $foregroundColor;
    +
    +    /**
    +     * The cell's background color.
    +     *
    +     * @var int
    +     */
    +    private $backgroundColor;
    +
    +    /**
    +     * Color of the bottom border of the cell.
    +     *
    +     * @var int
    +     */
    +    private $bottomBorderColor;
    +
    +    /**
    +     * Color of the top border of the cell.
    +     *
    +     * @var int
    +     */
    +    private $topBorderColor;
    +
    +    /**
    +     * Color of the left border of the cell.
    +     *
    +     * @var int
    +     */
    +    private $leftBorderColor;
    +
    +    /**
    +     * Color of the right border of the cell.
    +     *
    +     * @var int
    +     */
    +    private $rightBorderColor;
    +
    +    /**
    +     * Constructor.
    +     *
    +     * @param Style $style The XF format
    +     */
    +    public function __construct(Style $style)
    +    {
    +        $this->isStyleXf = false;
    +        $this->fontIndex = 0;
    +
    +        $this->numberFormatIndex = 0;
    +
    +        $this->textJustLast = 0;
    +
    +        $this->foregroundColor = 0x40;
    +        $this->backgroundColor = 0x41;
    +
    +        $this->_diag = 0;
    +
    +        $this->bottomBorderColor = 0x40;
    +        $this->topBorderColor = 0x40;
    +        $this->leftBorderColor = 0x40;
    +        $this->rightBorderColor = 0x40;
    +        $this->_diag_color = 0x40;
    +        $this->_style = $style;
    +    }
    +
    +    /**
    +     * Generate an Excel BIFF XF record (style or cell).
    +     *
    +     * @return string The XF record
    +     */
    +    public function writeXf()
    +    {
    +        // Set the type of the XF record and some of the attributes.
    +        if ($this->isStyleXf) {
    +            $style = 0xFFF5;
    +        } else {
    +            $style = self::mapLocked($this->_style->getProtection()->getLocked());
    +            $style |= self::mapHidden($this->_style->getProtection()->getHidden()) << 1;
    +        }
    +
    +        // Flags to indicate if attributes have been set.
    +        $atr_num = ($this->numberFormatIndex != 0) ? 1 : 0;
    +        $atr_fnt = ($this->fontIndex != 0) ? 1 : 0;
    +        $atr_alc = ((int) $this->_style->getAlignment()->getWrapText()) ? 1 : 0;
    +        $atr_bdr = (self::mapBorderStyle($this->_style->getBorders()->getBottom()->getBorderStyle()) ||
    +                        self::mapBorderStyle($this->_style->getBorders()->getTop()->getBorderStyle()) ||
    +                        self::mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()) ||
    +                        self::mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle())) ? 1 : 0;
    +        $atr_pat = (($this->foregroundColor != 0x40) ||
    +                        ($this->backgroundColor != 0x41) ||
    +                        self::mapFillType($this->_style->getFill()->getFillType())) ? 1 : 0;
    +        $atr_prot = self::mapLocked($this->_style->getProtection()->getLocked())
    +                        | self::mapHidden($this->_style->getProtection()->getHidden());
    +
    +        // Zero the default border colour if the border has not been set.
    +        if (self::mapBorderStyle($this->_style->getBorders()->getBottom()->getBorderStyle()) == 0) {
    +            $this->bottomBorderColor = 0;
    +        }
    +        if (self::mapBorderStyle($this->_style->getBorders()->getTop()->getBorderStyle()) == 0) {
    +            $this->topBorderColor = 0;
    +        }
    +        if (self::mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle()) == 0) {
    +            $this->rightBorderColor = 0;
    +        }
    +        if (self::mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()) == 0) {
    +            $this->leftBorderColor = 0;
    +        }
    +        if (self::mapBorderStyle($this->_style->getBorders()->getDiagonal()->getBorderStyle()) == 0) {
    +            $this->_diag_color = 0;
    +        }
    +
    +        $record = 0x00E0; // Record identifier
    +        $length = 0x0014; // Number of bytes to follow
    +
    +        $ifnt = $this->fontIndex; // Index to FONT record
    +        $ifmt = $this->numberFormatIndex; // Index to FORMAT record
    +
    +        $align = $this->mapHAlign($this->_style->getAlignment()->getHorizontal()); // Alignment
    +        $align |= (int) $this->_style->getAlignment()->getWrapText() << 3;
    +        $align |= self::mapVAlign($this->_style->getAlignment()->getVertical()) << 4;
    +        $align |= $this->textJustLast << 7;
    +
    +        $used_attrib = $atr_num << 2;
    +        $used_attrib |= $atr_fnt << 3;
    +        $used_attrib |= $atr_alc << 4;
    +        $used_attrib |= $atr_bdr << 5;
    +        $used_attrib |= $atr_pat << 6;
    +        $used_attrib |= $atr_prot << 7;
    +
    +        $icv = $this->foregroundColor; // fg and bg pattern colors
    +        $icv |= $this->backgroundColor << 7;
    +
    +        $border1 = self::mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()); // Border line style and color
    +        $border1 |= self::mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle()) << 4;
    +        $border1 |= self::mapBorderStyle($this->_style->getBorders()->getTop()->getBorderStyle()) << 8;
    +        $border1 |= self::mapBorderStyle($this->_style->getBorders()->getBottom()->getBorderStyle()) << 12;
    +        $border1 |= $this->leftBorderColor << 16;
    +        $border1 |= $this->rightBorderColor << 23;
    +
    +        $diagonalDirection = $this->_style->getBorders()->getDiagonalDirection();
    +        $diag_tl_to_rb = $diagonalDirection == Borders::DIAGONAL_BOTH
    +                            || $diagonalDirection == Borders::DIAGONAL_DOWN;
    +        $diag_tr_to_lb = $diagonalDirection == Borders::DIAGONAL_BOTH
    +                            || $diagonalDirection == Borders::DIAGONAL_UP;
    +        $border1 |= $diag_tl_to_rb << 30;
    +        $border1 |= $diag_tr_to_lb << 31;
    +
    +        $border2 = $this->topBorderColor; // Border color
    +        $border2 |= $this->bottomBorderColor << 7;
    +        $border2 |= $this->_diag_color << 14;
    +        $border2 |= self::mapBorderStyle($this->_style->getBorders()->getDiagonal()->getBorderStyle()) << 21;
    +        $border2 |= self::mapFillType($this->_style->getFill()->getFillType()) << 26;
    +
    +        $header = pack('vv', $record, $length);
    +
    +        //BIFF8 options: identation, shrinkToFit and  text direction
    +        $biff8_options = $this->_style->getAlignment()->getIndent();
    +        $biff8_options |= (int) $this->_style->getAlignment()->getShrinkToFit() << 4;
    +
    +        $data = pack('vvvC', $ifnt, $ifmt, $style, $align);
    +        $data .= pack('CCC', self::mapTextRotation($this->_style->getAlignment()->getTextRotation()), $biff8_options, $used_attrib);
    +        $data .= pack('VVv', $border1, $border2, $icv);
    +
    +        return $header . $data;
    +    }
    +
    +    /**
    +     * Is this a style XF ?
    +     *
    +     * @param bool $value
    +     */
    +    public function setIsStyleXf($value)
    +    {
    +        $this->isStyleXf = $value;
    +    }
    +
    +    /**
    +     * Sets the cell's bottom border color.
    +     *
    +     * @param int $colorIndex Color index
    +     */
    +    public function setBottomColor($colorIndex)
    +    {
    +        $this->bottomBorderColor = $colorIndex;
    +    }
    +
    +    /**
    +     * Sets the cell's top border color.
    +     *
    +     * @param int $colorIndex Color index
    +     */
    +    public function setTopColor($colorIndex)
    +    {
    +        $this->topBorderColor = $colorIndex;
    +    }
    +
    +    /**
    +     * Sets the cell's left border color.
    +     *
    +     * @param int $colorIndex Color index
    +     */
    +    public function setLeftColor($colorIndex)
    +    {
    +        $this->leftBorderColor = $colorIndex;
    +    }
    +
    +    /**
    +     * Sets the cell's right border color.
    +     *
    +     * @param int $colorIndex Color index
    +     */
    +    public function setRightColor($colorIndex)
    +    {
    +        $this->rightBorderColor = $colorIndex;
    +    }
    +
    +    /**
    +     * Sets the cell's diagonal border color.
    +     *
    +     * @param int $colorIndex Color index
    +     */
    +    public function setDiagColor($colorIndex)
    +    {
    +        $this->_diag_color = $colorIndex;
    +    }
    +
    +    /**
    +     * Sets the cell's foreground color.
    +     *
    +     * @param int $colorIndex Color index
    +     */
    +    public function setFgColor($colorIndex)
    +    {
    +        $this->foregroundColor = $colorIndex;
    +    }
    +
    +    /**
    +     * Sets the cell's background color.
    +     *
    +     * @param int $colorIndex Color index
    +     */
    +    public function setBgColor($colorIndex)
    +    {
    +        $this->backgroundColor = $colorIndex;
    +    }
    +
    +    /**
    +     * Sets the index to the number format record
    +     * It can be date, time, currency, etc...
    +     *
    +     * @param int $numberFormatIndex Index to format record
    +     */
    +    public function setNumberFormatIndex($numberFormatIndex)
    +    {
    +        $this->numberFormatIndex = $numberFormatIndex;
    +    }
    +
    +    /**
    +     * Set the font index.
    +     *
    +     * @param int $value Font index, note that value 4 does not exist
    +     */
    +    public function setFontIndex($value)
    +    {
    +        $this->fontIndex = $value;
    +    }
    +
    +    /**
    +     * Map of BIFF2-BIFF8 codes for border styles.
    +     *
    +     * @var array of int
    +     */
    +    private static $mapBorderStyles = [
    +        Border::BORDER_NONE => 0x00,
    +        Border::BORDER_THIN => 0x01,
    +        Border::BORDER_MEDIUM => 0x02,
    +        Border::BORDER_DASHED => 0x03,
    +        Border::BORDER_DOTTED => 0x04,
    +        Border::BORDER_THICK => 0x05,
    +        Border::BORDER_DOUBLE => 0x06,
    +        Border::BORDER_HAIR => 0x07,
    +        Border::BORDER_MEDIUMDASHED => 0x08,
    +        Border::BORDER_DASHDOT => 0x09,
    +        Border::BORDER_MEDIUMDASHDOT => 0x0A,
    +        Border::BORDER_DASHDOTDOT => 0x0B,
    +        Border::BORDER_MEDIUMDASHDOTDOT => 0x0C,
    +        Border::BORDER_SLANTDASHDOT => 0x0D,
    +    ];
    +
    +    /**
    +     * Map border style.
    +     *
    +     * @param string $borderStyle
    +     *
    +     * @return int
    +     */
    +    private static function mapBorderStyle($borderStyle)
    +    {
    +        if (isset(self::$mapBorderStyles[$borderStyle])) {
    +            return self::$mapBorderStyles[$borderStyle];
    +        }
    +
    +        return 0x00;
    +    }
    +
    +    /**
    +     * Map of BIFF2-BIFF8 codes for fill types.
    +     *
    +     * @var array of int
    +     */
    +    private static $mapFillTypes = [
    +        Fill::FILL_NONE => 0x00,
    +        Fill::FILL_SOLID => 0x01,
    +        Fill::FILL_PATTERN_MEDIUMGRAY => 0x02,
    +        Fill::FILL_PATTERN_DARKGRAY => 0x03,
    +        Fill::FILL_PATTERN_LIGHTGRAY => 0x04,
    +        Fill::FILL_PATTERN_DARKHORIZONTAL => 0x05,
    +        Fill::FILL_PATTERN_DARKVERTICAL => 0x06,
    +        Fill::FILL_PATTERN_DARKDOWN => 0x07,
    +        Fill::FILL_PATTERN_DARKUP => 0x08,
    +        Fill::FILL_PATTERN_DARKGRID => 0x09,
    +        Fill::FILL_PATTERN_DARKTRELLIS => 0x0A,
    +        Fill::FILL_PATTERN_LIGHTHORIZONTAL => 0x0B,
    +        Fill::FILL_PATTERN_LIGHTVERTICAL => 0x0C,
    +        Fill::FILL_PATTERN_LIGHTDOWN => 0x0D,
    +        Fill::FILL_PATTERN_LIGHTUP => 0x0E,
    +        Fill::FILL_PATTERN_LIGHTGRID => 0x0F,
    +        Fill::FILL_PATTERN_LIGHTTRELLIS => 0x10,
    +        Fill::FILL_PATTERN_GRAY125 => 0x11,
    +        Fill::FILL_PATTERN_GRAY0625 => 0x12,
    +        Fill::FILL_GRADIENT_LINEAR => 0x00, // does not exist in BIFF8
    +        Fill::FILL_GRADIENT_PATH => 0x00, // does not exist in BIFF8
    +    ];
    +
    +    /**
    +     * Map fill type.
    +     *
    +     * @param string $fillType
    +     *
    +     * @return int
    +     */
    +    private static function mapFillType($fillType)
    +    {
    +        if (isset(self::$mapFillTypes[$fillType])) {
    +            return self::$mapFillTypes[$fillType];
    +        }
    +
    +        return 0x00;
    +    }
    +
    +    /**
    +     * Map of BIFF2-BIFF8 codes for horizontal alignment.
    +     *
    +     * @var array of int
    +     */
    +    private static $mapHAlignments = [
    +        Alignment::HORIZONTAL_GENERAL => 0,
    +        Alignment::HORIZONTAL_LEFT => 1,
    +        Alignment::HORIZONTAL_CENTER => 2,
    +        Alignment::HORIZONTAL_RIGHT => 3,
    +        Alignment::HORIZONTAL_FILL => 4,
    +        Alignment::HORIZONTAL_JUSTIFY => 5,
    +        Alignment::HORIZONTAL_CENTER_CONTINUOUS => 6,
    +    ];
    +
    +    /**
    +     * Map to BIFF2-BIFF8 codes for horizontal alignment.
    +     *
    +     * @param string $hAlign
    +     *
    +     * @return int
    +     */
    +    private function mapHAlign($hAlign)
    +    {
    +        if (isset(self::$mapHAlignments[$hAlign])) {
    +            return self::$mapHAlignments[$hAlign];
    +        }
    +
    +        return 0;
    +    }
    +
    +    /**
    +     * Map of BIFF2-BIFF8 codes for vertical alignment.
    +     *
    +     * @var array of int
    +     */
    +    private static $mapVAlignments = [
    +        Alignment::VERTICAL_TOP => 0,
    +        Alignment::VERTICAL_CENTER => 1,
    +        Alignment::VERTICAL_BOTTOM => 2,
    +        Alignment::VERTICAL_JUSTIFY => 3,
    +    ];
    +
    +    /**
    +     * Map to BIFF2-BIFF8 codes for vertical alignment.
    +     *
    +     * @param string $vAlign
    +     *
    +     * @return int
    +     */
    +    private static function mapVAlign($vAlign)
    +    {
    +        if (isset(self::$mapVAlignments[$vAlign])) {
    +            return self::$mapVAlignments[$vAlign];
    +        }
    +
    +        return 2;
    +    }
    +
    +    /**
    +     * Map to BIFF8 codes for text rotation angle.
    +     *
    +     * @param int $textRotation
    +     *
    +     * @return int
    +     */
    +    private static function mapTextRotation($textRotation)
    +    {
    +        if ($textRotation >= 0) {
    +            return $textRotation;
    +        } elseif ($textRotation == -165) {
    +            return 255;
    +        } elseif ($textRotation < 0) {
    +            return 90 - $textRotation;
    +        }
    +    }
    +
    +    /**
    +     * Map locked.
    +     *
    +     * @param string $locked
    +     *
    +     * @return int
    +     */
    +    private static function mapLocked($locked)
    +    {
    +        switch ($locked) {
    +            case Protection::PROTECTION_INHERIT:
    +                return 1;
    +            case Protection::PROTECTION_PROTECTED:
    +                return 1;
    +            case Protection::PROTECTION_UNPROTECTED:
    +                return 0;
    +            default:
    +                return 1;
    +        }
    +    }
    +
    +    /**
    +     * Map hidden.
    +     *
    +     * @param string $hidden
    +     *
    +     * @return int
    +     */
    +    private static function mapHidden($hidden)
    +    {
    +        switch ($hidden) {
    +            case Protection::PROTECTION_INHERIT:
    +                return 0;
    +            case Protection::PROTECTION_PROTECTED:
    +                return 1;
    +            case Protection::PROTECTION_UNPROTECTED:
    +                return 0;
    +            default:
    +                return 0;
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx.php
    new file mode 100644
    index 00000000000..dd19021e46e
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx.php
    @@ -0,0 +1,547 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer;
    +
    +use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
    +use PhpOffice\PhpSpreadsheet\Calculation\Functions;
    +use PhpOffice\PhpSpreadsheet\HashTable;
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Drawing as WorksheetDrawing;
    +use PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\Chart;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\Comments;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\ContentTypes;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\DocProps;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\Drawing;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\Rels;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\RelsRibbon;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\RelsVBA;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\StringTable;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\Style;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\Theme;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\Workbook;
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx\Worksheet;
    +use ZipArchive;
    +
    +class Xlsx extends BaseWriter
    +{
    +    /**
    +     * Office2003 compatibility.
    +     *
    +     * @var bool
    +     */
    +    private $office2003compatibility = false;
    +
    +    /**
    +     * Private writer parts.
    +     *
    +     * @var Xlsx\WriterPart[]
    +     */
    +    private $writerParts = [];
    +
    +    /**
    +     * Private Spreadsheet.
    +     *
    +     * @var Spreadsheet
    +     */
    +    private $spreadSheet;
    +
    +    /**
    +     * Private string table.
    +     *
    +     * @var string[]
    +     */
    +    private $stringTable = [];
    +
    +    /**
    +     * Private unique Conditional HashTable.
    +     *
    +     * @var HashTable
    +     */
    +    private $stylesConditionalHashTable;
    +
    +    /**
    +     * Private unique Style HashTable.
    +     *
    +     * @var HashTable
    +     */
    +    private $styleHashTable;
    +
    +    /**
    +     * Private unique Fill HashTable.
    +     *
    +     * @var HashTable
    +     */
    +    private $fillHashTable;
    +
    +    /**
    +     * Private unique \PhpOffice\PhpSpreadsheet\Style\Font HashTable.
    +     *
    +     * @var HashTable
    +     */
    +    private $fontHashTable;
    +
    +    /**
    +     * Private unique Borders HashTable.
    +     *
    +     * @var HashTable
    +     */
    +    private $bordersHashTable;
    +
    +    /**
    +     * Private unique NumberFormat HashTable.
    +     *
    +     * @var HashTable
    +     */
    +    private $numFmtHashTable;
    +
    +    /**
    +     * Private unique \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet\BaseDrawing HashTable.
    +     *
    +     * @var HashTable
    +     */
    +    private $drawingHashTable;
    +
    +    /**
    +     * Create a new Xlsx Writer.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     */
    +    public function __construct(Spreadsheet $spreadsheet)
    +    {
    +        // Assign PhpSpreadsheet
    +        $this->setSpreadsheet($spreadsheet);
    +
    +        $writerPartsArray = [
    +            'stringtable' => StringTable::class,
    +            'contenttypes' => ContentTypes::class,
    +            'docprops' => DocProps::class,
    +            'rels' => Rels::class,
    +            'theme' => Theme::class,
    +            'style' => Style::class,
    +            'workbook' => Workbook::class,
    +            'worksheet' => Worksheet::class,
    +            'drawing' => Drawing::class,
    +            'comments' => Comments::class,
    +            'chart' => Chart::class,
    +            'relsvba' => RelsVBA::class,
    +            'relsribbonobjects' => RelsRibbon::class,
    +        ];
    +
    +        //    Initialise writer parts
    +        //        and Assign their parent IWriters
    +        foreach ($writerPartsArray as $writer => $class) {
    +            $this->writerParts[$writer] = new $class($this);
    +        }
    +
    +        $hashTablesArray = ['stylesConditionalHashTable', 'fillHashTable', 'fontHashTable',
    +            'bordersHashTable', 'numFmtHashTable', 'drawingHashTable',
    +            'styleHashTable',
    +        ];
    +
    +        // Set HashTable variables
    +        foreach ($hashTablesArray as $tableName) {
    +            $this->$tableName = new HashTable();
    +        }
    +    }
    +
    +    /**
    +     * Get writer part.
    +     *
    +     * @param string $pPartName Writer part name
    +     *
    +     * @return \PhpOffice\PhpSpreadsheet\Writer\Xlsx\WriterPart
    +     */
    +    public function getWriterPart($pPartName)
    +    {
    +        if ($pPartName != '' && isset($this->writerParts[strtolower($pPartName)])) {
    +            return $this->writerParts[strtolower($pPartName)];
    +        }
    +
    +        return null;
    +    }
    +
    +    /**
    +     * Save PhpSpreadsheet to file.
    +     *
    +     * @param string $pFilename
    +     *
    +     * @throws WriterException
    +     */
    +    public function save($pFilename)
    +    {
    +        if ($this->spreadSheet !== null) {
    +            // garbage collect
    +            $this->spreadSheet->garbageCollect();
    +
    +            // If $pFilename is php://output or php://stdout, make it a temporary file...
    +            $originalFilename = $pFilename;
    +            if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') {
    +                $pFilename = @tempnam(File::sysGetTempDir(), 'phpxltmp');
    +                if ($pFilename == '') {
    +                    $pFilename = $originalFilename;
    +                }
    +            }
    +
    +            $saveDebugLog = Calculation::getInstance($this->spreadSheet)->getDebugLog()->getWriteDebugLog();
    +            Calculation::getInstance($this->spreadSheet)->getDebugLog()->setWriteDebugLog(false);
    +            $saveDateReturnType = Functions::getReturnDateType();
    +            Functions::setReturnDateType(Functions::RETURNDATE_EXCEL);
    +
    +            // Create string lookup table
    +            $this->stringTable = [];
    +            for ($i = 0; $i < $this->spreadSheet->getSheetCount(); ++$i) {
    +                $this->stringTable = $this->getWriterPart('StringTable')->createStringTable($this->spreadSheet->getSheet($i), $this->stringTable);
    +            }
    +
    +            // Create styles dictionaries
    +            $this->styleHashTable->addFromSource($this->getWriterPart('Style')->allStyles($this->spreadSheet));
    +            $this->stylesConditionalHashTable->addFromSource($this->getWriterPart('Style')->allConditionalStyles($this->spreadSheet));
    +            $this->fillHashTable->addFromSource($this->getWriterPart('Style')->allFills($this->spreadSheet));
    +            $this->fontHashTable->addFromSource($this->getWriterPart('Style')->allFonts($this->spreadSheet));
    +            $this->bordersHashTable->addFromSource($this->getWriterPart('Style')->allBorders($this->spreadSheet));
    +            $this->numFmtHashTable->addFromSource($this->getWriterPart('Style')->allNumberFormats($this->spreadSheet));
    +
    +            // Create drawing dictionary
    +            $this->drawingHashTable->addFromSource($this->getWriterPart('Drawing')->allDrawings($this->spreadSheet));
    +
    +            $zip = new ZipArchive();
    +
    +            if (file_exists($pFilename)) {
    +                unlink($pFilename);
    +            }
    +            // Try opening the ZIP file
    +            if ($zip->open($pFilename, ZipArchive::OVERWRITE) !== true) {
    +                if ($zip->open($pFilename, ZipArchive::CREATE) !== true) {
    +                    throw new WriterException('Could not open ' . $pFilename . ' for writing.');
    +                }
    +            }
    +
    +            // Add [Content_Types].xml to ZIP file
    +            $zip->addFromString('[Content_Types].xml', $this->getWriterPart('ContentTypes')->writeContentTypes($this->spreadSheet, $this->includeCharts));
    +
    +            //if hasMacros, add the vbaProject.bin file, Certificate file(if exists)
    +            if ($this->spreadSheet->hasMacros()) {
    +                $macrosCode = $this->spreadSheet->getMacrosCode();
    +                if ($macrosCode !== null) {
    +                    // we have the code ?
    +                    $zip->addFromString('xl/vbaProject.bin', $macrosCode); //allways in 'xl', allways named vbaProject.bin
    +                    if ($this->spreadSheet->hasMacrosCertificate()) {
    +                        //signed macros ?
    +                        // Yes : add the certificate file and the related rels file
    +                        $zip->addFromString('xl/vbaProjectSignature.bin', $this->spreadSheet->getMacrosCertificate());
    +                        $zip->addFromString('xl/_rels/vbaProject.bin.rels', $this->getWriterPart('RelsVBA')->writeVBARelationships($this->spreadSheet));
    +                    }
    +                }
    +            }
    +            //a custom UI in this workbook ? add it ("base" xml and additional objects (pictures) and rels)
    +            if ($this->spreadSheet->hasRibbon()) {
    +                $tmpRibbonTarget = $this->spreadSheet->getRibbonXMLData('target');
    +                $zip->addFromString($tmpRibbonTarget, $this->spreadSheet->getRibbonXMLData('data'));
    +                if ($this->spreadSheet->hasRibbonBinObjects()) {
    +                    $tmpRootPath = dirname($tmpRibbonTarget) . '/';
    +                    $ribbonBinObjects = $this->spreadSheet->getRibbonBinObjects('data'); //the files to write
    +                    foreach ($ribbonBinObjects as $aPath => $aContent) {
    +                        $zip->addFromString($tmpRootPath . $aPath, $aContent);
    +                    }
    +                    //the rels for files
    +                    $zip->addFromString($tmpRootPath . '_rels/' . basename($tmpRibbonTarget) . '.rels', $this->getWriterPart('RelsRibbonObjects')->writeRibbonRelationships($this->spreadSheet));
    +                }
    +            }
    +
    +            // Add relationships to ZIP file
    +            $zip->addFromString('_rels/.rels', $this->getWriterPart('Rels')->writeRelationships($this->spreadSheet));
    +            $zip->addFromString('xl/_rels/workbook.xml.rels', $this->getWriterPart('Rels')->writeWorkbookRelationships($this->spreadSheet));
    +
    +            // Add document properties to ZIP file
    +            $zip->addFromString('docProps/app.xml', $this->getWriterPart('DocProps')->writeDocPropsApp($this->spreadSheet));
    +            $zip->addFromString('docProps/core.xml', $this->getWriterPart('DocProps')->writeDocPropsCore($this->spreadSheet));
    +            $customPropertiesPart = $this->getWriterPart('DocProps')->writeDocPropsCustom($this->spreadSheet);
    +            if ($customPropertiesPart !== null) {
    +                $zip->addFromString('docProps/custom.xml', $customPropertiesPart);
    +            }
    +
    +            // Add theme to ZIP file
    +            $zip->addFromString('xl/theme/theme1.xml', $this->getWriterPart('Theme')->writeTheme($this->spreadSheet));
    +
    +            // Add string table to ZIP file
    +            $zip->addFromString('xl/sharedStrings.xml', $this->getWriterPart('StringTable')->writeStringTable($this->stringTable));
    +
    +            // Add styles to ZIP file
    +            $zip->addFromString('xl/styles.xml', $this->getWriterPart('Style')->writeStyles($this->spreadSheet));
    +
    +            // Add workbook to ZIP file
    +            $zip->addFromString('xl/workbook.xml', $this->getWriterPart('Workbook')->writeWorkbook($this->spreadSheet, $this->preCalculateFormulas));
    +
    +            $chartCount = 0;
    +            // Add worksheets
    +            for ($i = 0; $i < $this->spreadSheet->getSheetCount(); ++$i) {
    +                $zip->addFromString('xl/worksheets/sheet' . ($i + 1) . '.xml', $this->getWriterPart('Worksheet')->writeWorksheet($this->spreadSheet->getSheet($i), $this->stringTable, $this->includeCharts));
    +                if ($this->includeCharts) {
    +                    $charts = $this->spreadSheet->getSheet($i)->getChartCollection();
    +                    if (count($charts) > 0) {
    +                        foreach ($charts as $chart) {
    +                            $zip->addFromString('xl/charts/chart' . ($chartCount + 1) . '.xml', $this->getWriterPart('Chart')->writeChart($chart, $this->preCalculateFormulas));
    +                            ++$chartCount;
    +                        }
    +                    }
    +                }
    +            }
    +
    +            $chartRef1 = 0;
    +            // Add worksheet relationships (drawings, ...)
    +            for ($i = 0; $i < $this->spreadSheet->getSheetCount(); ++$i) {
    +                // Add relationships
    +                $zip->addFromString('xl/worksheets/_rels/sheet' . ($i + 1) . '.xml.rels', $this->getWriterPart('Rels')->writeWorksheetRelationships($this->spreadSheet->getSheet($i), ($i + 1), $this->includeCharts));
    +
    +                // Add unparsedLoadedData
    +                $sheetCodeName = $this->spreadSheet->getSheet($i)->getCodeName();
    +                $unparsedLoadedData = $this->spreadSheet->getUnparsedLoadedData();
    +                if (isset($unparsedLoadedData['sheets'][$sheetCodeName]['ctrlProps'])) {
    +                    foreach ($unparsedLoadedData['sheets'][$sheetCodeName]['ctrlProps'] as $ctrlProp) {
    +                        $zip->addFromString($ctrlProp['filePath'], $ctrlProp['content']);
    +                    }
    +                }
    +                if (isset($unparsedLoadedData['sheets'][$sheetCodeName]['printerSettings'])) {
    +                    foreach ($unparsedLoadedData['sheets'][$sheetCodeName]['printerSettings'] as $ctrlProp) {
    +                        $zip->addFromString($ctrlProp['filePath'], $ctrlProp['content']);
    +                    }
    +                }
    +
    +                $drawings = $this->spreadSheet->getSheet($i)->getDrawingCollection();
    +                $drawingCount = count($drawings);
    +                if ($this->includeCharts) {
    +                    $chartCount = $this->spreadSheet->getSheet($i)->getChartCount();
    +                }
    +
    +                // Add drawing and image relationship parts
    +                if (($drawingCount > 0) || ($chartCount > 0)) {
    +                    // Drawing relationships
    +                    $zip->addFromString('xl/drawings/_rels/drawing' . ($i + 1) . '.xml.rels', $this->getWriterPart('Rels')->writeDrawingRelationships($this->spreadSheet->getSheet($i), $chartRef1, $this->includeCharts));
    +
    +                    // Drawings
    +                    $zip->addFromString('xl/drawings/drawing' . ($i + 1) . '.xml', $this->getWriterPart('Drawing')->writeDrawings($this->spreadSheet->getSheet($i), $this->includeCharts));
    +                } elseif (isset($unparsedLoadedData['sheets'][$sheetCodeName]['drawingAlternateContents'])) {
    +                    // Drawings
    +                    $zip->addFromString('xl/drawings/drawing' . ($i + 1) . '.xml', $this->getWriterPart('Drawing')->writeDrawings($this->spreadSheet->getSheet($i), $this->includeCharts));
    +                }
    +
    +                // Add comment relationship parts
    +                if (count($this->spreadSheet->getSheet($i)->getComments()) > 0) {
    +                    // VML Comments
    +                    $zip->addFromString('xl/drawings/vmlDrawing' . ($i + 1) . '.vml', $this->getWriterPart('Comments')->writeVMLComments($this->spreadSheet->getSheet($i)));
    +
    +                    // Comments
    +                    $zip->addFromString('xl/comments' . ($i + 1) . '.xml', $this->getWriterPart('Comments')->writeComments($this->spreadSheet->getSheet($i)));
    +                }
    +
    +                // Add unparsed relationship parts
    +                if (isset($unparsedLoadedData['sheets'][$this->spreadSheet->getSheet($i)->getCodeName()]['vmlDrawings'])) {
    +                    foreach ($unparsedLoadedData['sheets'][$this->spreadSheet->getSheet($i)->getCodeName()]['vmlDrawings'] as $vmlDrawing) {
    +                        $zip->addFromString($vmlDrawing['filePath'], $vmlDrawing['content']);
    +                    }
    +                }
    +
    +                // Add header/footer relationship parts
    +                if (count($this->spreadSheet->getSheet($i)->getHeaderFooter()->getImages()) > 0) {
    +                    // VML Drawings
    +                    $zip->addFromString('xl/drawings/vmlDrawingHF' . ($i + 1) . '.vml', $this->getWriterPart('Drawing')->writeVMLHeaderFooterImages($this->spreadSheet->getSheet($i)));
    +
    +                    // VML Drawing relationships
    +                    $zip->addFromString('xl/drawings/_rels/vmlDrawingHF' . ($i + 1) . '.vml.rels', $this->getWriterPart('Rels')->writeHeaderFooterDrawingRelationships($this->spreadSheet->getSheet($i)));
    +
    +                    // Media
    +                    foreach ($this->spreadSheet->getSheet($i)->getHeaderFooter()->getImages() as $image) {
    +                        $zip->addFromString('xl/media/' . $image->getIndexedFilename(), file_get_contents($image->getPath()));
    +                    }
    +                }
    +            }
    +
    +            // Add media
    +            for ($i = 0; $i < $this->getDrawingHashTable()->count(); ++$i) {
    +                if ($this->getDrawingHashTable()->getByIndex($i) instanceof WorksheetDrawing) {
    +                    $imageContents = null;
    +                    $imagePath = $this->getDrawingHashTable()->getByIndex($i)->getPath();
    +                    if (strpos($imagePath, 'zip://') !== false) {
    +                        $imagePath = substr($imagePath, 6);
    +                        $imagePathSplitted = explode('#', $imagePath);
    +
    +                        $imageZip = new ZipArchive();
    +                        $imageZip->open($imagePathSplitted[0]);
    +                        $imageContents = $imageZip->getFromName($imagePathSplitted[1]);
    +                        $imageZip->close();
    +                        unset($imageZip);
    +                    } else {
    +                        $imageContents = file_get_contents($imagePath);
    +                    }
    +
    +                    $zip->addFromString('xl/media/' . str_replace(' ', '_', $this->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()), $imageContents);
    +                } elseif ($this->getDrawingHashTable()->getByIndex($i) instanceof MemoryDrawing) {
    +                    ob_start();
    +                    call_user_func(
    +                        $this->getDrawingHashTable()->getByIndex($i)->getRenderingFunction(),
    +                        $this->getDrawingHashTable()->getByIndex($i)->getImageResource()
    +                    );
    +                    $imageContents = ob_get_contents();
    +                    ob_end_clean();
    +
    +                    $zip->addFromString('xl/media/' . str_replace(' ', '_', $this->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()), $imageContents);
    +                }
    +            }
    +
    +            Functions::setReturnDateType($saveDateReturnType);
    +            Calculation::getInstance($this->spreadSheet)->getDebugLog()->setWriteDebugLog($saveDebugLog);
    +
    +            // Close file
    +            if ($zip->close() === false) {
    +                throw new WriterException("Could not close zip file $pFilename.");
    +            }
    +
    +            // If a temporary file was used, copy it to the correct file stream
    +            if ($originalFilename != $pFilename) {
    +                if (copy($pFilename, $originalFilename) === false) {
    +                    throw new WriterException("Could not copy temporary zip file $pFilename to $originalFilename.");
    +                }
    +                @unlink($pFilename);
    +            }
    +        } else {
    +            throw new WriterException('PhpSpreadsheet object unassigned.');
    +        }
    +    }
    +
    +    /**
    +     * Get Spreadsheet object.
    +     *
    +     * @throws WriterException
    +     *
    +     * @return Spreadsheet
    +     */
    +    public function getSpreadsheet()
    +    {
    +        if ($this->spreadSheet !== null) {
    +            return $this->spreadSheet;
    +        }
    +
    +        throw new WriterException('No Spreadsheet object assigned.');
    +    }
    +
    +    /**
    +     * Set Spreadsheet object.
    +     *
    +     * @param Spreadsheet $spreadsheet PhpSpreadsheet object
    +     *
    +     * @return Xlsx
    +     */
    +    public function setSpreadsheet(Spreadsheet $spreadsheet)
    +    {
    +        $this->spreadSheet = $spreadsheet;
    +
    +        return $this;
    +    }
    +
    +    /**
    +     * Get string table.
    +     *
    +     * @return string[]
    +     */
    +    public function getStringTable()
    +    {
    +        return $this->stringTable;
    +    }
    +
    +    /**
    +     * Get Style HashTable.
    +     *
    +     * @return HashTable
    +     */
    +    public function getStyleHashTable()
    +    {
    +        return $this->styleHashTable;
    +    }
    +
    +    /**
    +     * Get Conditional HashTable.
    +     *
    +     * @return HashTable
    +     */
    +    public function getStylesConditionalHashTable()
    +    {
    +        return $this->stylesConditionalHashTable;
    +    }
    +
    +    /**
    +     * Get Fill HashTable.
    +     *
    +     * @return HashTable
    +     */
    +    public function getFillHashTable()
    +    {
    +        return $this->fillHashTable;
    +    }
    +
    +    /**
    +     * Get \PhpOffice\PhpSpreadsheet\Style\Font HashTable.
    +     *
    +     * @return HashTable
    +     */
    +    public function getFontHashTable()
    +    {
    +        return $this->fontHashTable;
    +    }
    +
    +    /**
    +     * Get Borders HashTable.
    +     *
    +     * @return HashTable
    +     */
    +    public function getBordersHashTable()
    +    {
    +        return $this->bordersHashTable;
    +    }
    +
    +    /**
    +     * Get NumberFormat HashTable.
    +     *
    +     * @return HashTable
    +     */
    +    public function getNumFmtHashTable()
    +    {
    +        return $this->numFmtHashTable;
    +    }
    +
    +    /**
    +     * Get \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet\BaseDrawing HashTable.
    +     *
    +     * @return HashTable
    +     */
    +    public function getDrawingHashTable()
    +    {
    +        return $this->drawingHashTable;
    +    }
    +
    +    /**
    +     * Get Office2003 compatibility.
    +     *
    +     * @return bool
    +     */
    +    public function getOffice2003Compatibility()
    +    {
    +        return $this->office2003compatibility;
    +    }
    +
    +    /**
    +     * Set Office2003 compatibility.
    +     *
    +     * @param bool $pValue Office2003 compatibility?
    +     *
    +     * @return Xlsx
    +     */
    +    public function setOffice2003Compatibility($pValue)
    +    {
    +        $this->office2003compatibility = $pValue;
    +
    +        return $this;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Chart.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Chart.php
    new file mode 100644
    index 00000000000..625fd16de21
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Chart.php
    @@ -0,0 +1,1541 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Chart\Axis;
    +use PhpOffice\PhpSpreadsheet\Chart\DataSeries;
    +use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues;
    +use PhpOffice\PhpSpreadsheet\Chart\GridLines;
    +use PhpOffice\PhpSpreadsheet\Chart\Layout;
    +use PhpOffice\PhpSpreadsheet\Chart\Legend;
    +use PhpOffice\PhpSpreadsheet\Chart\PlotArea;
    +use PhpOffice\PhpSpreadsheet\Chart\Title;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +class Chart extends WriterPart
    +{
    +    protected $calculateCellValues;
    +
    +    /**
    +     * @var int
    +     */
    +    private $seriesIndex;
    +
    +    /**
    +     * Write charts to XML format.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Chart\Chart $pChart
    +     * @param mixed $calculateCellValues
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeChart(\PhpOffice\PhpSpreadsheet\Chart\Chart $pChart, $calculateCellValues = true)
    +    {
    +        $this->calculateCellValues = $calculateCellValues;
    +
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +        //    Ensure that data series values are up-to-date before we save
    +        if ($this->calculateCellValues) {
    +            $pChart->refresh();
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // c:chartSpace
    +        $objWriter->startElement('c:chartSpace');
    +        $objWriter->writeAttribute('xmlns:c', 'http://schemas.openxmlformats.org/drawingml/2006/chart');
    +        $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
    +        $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
    +
    +        $objWriter->startElement('c:date1904');
    +        $objWriter->writeAttribute('val', 0);
    +        $objWriter->endElement();
    +        $objWriter->startElement('c:lang');
    +        $objWriter->writeAttribute('val', 'en-GB');
    +        $objWriter->endElement();
    +        $objWriter->startElement('c:roundedCorners');
    +        $objWriter->writeAttribute('val', 0);
    +        $objWriter->endElement();
    +
    +        $this->writeAlternateContent($objWriter);
    +
    +        $objWriter->startElement('c:chart');
    +
    +        $this->writeTitle($objWriter, $pChart->getTitle());
    +
    +        $objWriter->startElement('c:autoTitleDeleted');
    +        $objWriter->writeAttribute('val', 0);
    +        $objWriter->endElement();
    +
    +        $this->writePlotArea($objWriter, $pChart->getWorksheet(), $pChart->getPlotArea(), $pChart->getXAxisLabel(), $pChart->getYAxisLabel(), $pChart->getChartAxisX(), $pChart->getChartAxisY(), $pChart->getMajorGridlines(), $pChart->getMinorGridlines());
    +
    +        $this->writeLegend($objWriter, $pChart->getLegend());
    +
    +        $objWriter->startElement('c:plotVisOnly');
    +        $objWriter->writeAttribute('val', 1);
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:dispBlanksAs');
    +        $objWriter->writeAttribute('val', 'gap');
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:showDLblsOverMax');
    +        $objWriter->writeAttribute('val', 0);
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $this->writePrintSettings($objWriter);
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write Chart Title.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Title $title
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeTitle(XMLWriter $objWriter, Title $title = null)
    +    {
    +        if ($title === null) {
    +            return;
    +        }
    +
    +        $objWriter->startElement('c:title');
    +        $objWriter->startElement('c:tx');
    +        $objWriter->startElement('c:rich');
    +
    +        $objWriter->startElement('a:bodyPr');
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('a:lstStyle');
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('a:p');
    +
    +        $caption = $title->getCaption();
    +        if ((is_array($caption)) && (count($caption) > 0)) {
    +            $caption = $caption[0];
    +        }
    +        $this->getParentWriter()->getWriterPart('stringtable')->writeRichTextForCharts($objWriter, $caption, 'a');
    +
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        $this->writeLayout($objWriter, $title->getLayout());
    +
    +        $objWriter->startElement('c:overlay');
    +        $objWriter->writeAttribute('val', 0);
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Chart Legend.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Legend $legend
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeLegend(XMLWriter $objWriter, Legend $legend = null)
    +    {
    +        if ($legend === null) {
    +            return;
    +        }
    +
    +        $objWriter->startElement('c:legend');
    +
    +        $objWriter->startElement('c:legendPos');
    +        $objWriter->writeAttribute('val', $legend->getPosition());
    +        $objWriter->endElement();
    +
    +        $this->writeLayout($objWriter, $legend->getLayout());
    +
    +        $objWriter->startElement('c:overlay');
    +        $objWriter->writeAttribute('val', ($legend->getOverlay()) ? '1' : '0');
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:txPr');
    +        $objWriter->startElement('a:bodyPr');
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('a:lstStyle');
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('a:p');
    +        $objWriter->startElement('a:pPr');
    +        $objWriter->writeAttribute('rtl', 0);
    +
    +        $objWriter->startElement('a:defRPr');
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('a:endParaRPr');
    +        $objWriter->writeAttribute('lang', 'en-US');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Chart Plot Area.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pSheet
    +     * @param PlotArea $plotArea
    +     * @param Title $xAxisLabel
    +     * @param Title $yAxisLabel
    +     * @param Axis $xAxis
    +     * @param Axis $yAxis
    +     * @param null|GridLines $majorGridlines
    +     * @param null|GridLines $minorGridlines
    +     *
    +     * @throws WriterException
    +     */
    +    private function writePlotArea(XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pSheet, PlotArea $plotArea, Title $xAxisLabel = null, Title $yAxisLabel = null, Axis $xAxis = null, Axis $yAxis = null, GridLines $majorGridlines = null, GridLines $minorGridlines = null)
    +    {
    +        if ($plotArea === null) {
    +            return;
    +        }
    +
    +        $id1 = $id2 = 0;
    +        $this->seriesIndex = 0;
    +        $objWriter->startElement('c:plotArea');
    +
    +        $layout = $plotArea->getLayout();
    +
    +        $this->writeLayout($objWriter, $layout);
    +
    +        $chartTypes = self::getChartType($plotArea);
    +        $catIsMultiLevelSeries = $valIsMultiLevelSeries = false;
    +        $plotGroupingType = '';
    +        foreach ($chartTypes as $chartType) {
    +            $objWriter->startElement('c:' . $chartType);
    +
    +            $groupCount = $plotArea->getPlotGroupCount();
    +            for ($i = 0; $i < $groupCount; ++$i) {
    +                $plotGroup = $plotArea->getPlotGroupByIndex($i);
    +                $groupType = $plotGroup->getPlotType();
    +                if ($groupType == $chartType) {
    +                    $plotStyle = $plotGroup->getPlotStyle();
    +                    if ($groupType === DataSeries::TYPE_RADARCHART) {
    +                        $objWriter->startElement('c:radarStyle');
    +                        $objWriter->writeAttribute('val', $plotStyle);
    +                        $objWriter->endElement();
    +                    } elseif ($groupType === DataSeries::TYPE_SCATTERCHART) {
    +                        $objWriter->startElement('c:scatterStyle');
    +                        $objWriter->writeAttribute('val', $plotStyle);
    +                        $objWriter->endElement();
    +                    }
    +
    +                    $this->writePlotGroup($plotGroup, $chartType, $objWriter, $catIsMultiLevelSeries, $valIsMultiLevelSeries, $plotGroupingType);
    +                }
    +            }
    +
    +            $this->writeDataLabels($objWriter, $layout);
    +
    +            if ($chartType === DataSeries::TYPE_LINECHART) {
    +                //    Line only, Line3D can't be smoothed
    +                $objWriter->startElement('c:smooth');
    +                $objWriter->writeAttribute('val', (int) $plotGroup->getSmoothLine());
    +                $objWriter->endElement();
    +            } elseif (($chartType === DataSeries::TYPE_BARCHART) || ($chartType === DataSeries::TYPE_BARCHART_3D)) {
    +                $objWriter->startElement('c:gapWidth');
    +                $objWriter->writeAttribute('val', 150);
    +                $objWriter->endElement();
    +
    +                if ($plotGroupingType == 'percentStacked' || $plotGroupingType == 'stacked') {
    +                    $objWriter->startElement('c:overlap');
    +                    $objWriter->writeAttribute('val', 100);
    +                    $objWriter->endElement();
    +                }
    +            } elseif ($chartType === DataSeries::TYPE_BUBBLECHART) {
    +                $objWriter->startElement('c:bubbleScale');
    +                $objWriter->writeAttribute('val', 25);
    +                $objWriter->endElement();
    +
    +                $objWriter->startElement('c:showNegBubbles');
    +                $objWriter->writeAttribute('val', 0);
    +                $objWriter->endElement();
    +            } elseif ($chartType === DataSeries::TYPE_STOCKCHART) {
    +                $objWriter->startElement('c:hiLowLines');
    +                $objWriter->endElement();
    +
    +                $objWriter->startElement('c:upDownBars');
    +
    +                $objWriter->startElement('c:gapWidth');
    +                $objWriter->writeAttribute('val', 300);
    +                $objWriter->endElement();
    +
    +                $objWriter->startElement('c:upBars');
    +                $objWriter->endElement();
    +
    +                $objWriter->startElement('c:downBars');
    +                $objWriter->endElement();
    +
    +                $objWriter->endElement();
    +            }
    +
    +            //    Generate 2 unique numbers to use for axId values
    +            $id1 = '75091328';
    +            $id2 = '75089408';
    +
    +            if (($chartType !== DataSeries::TYPE_PIECHART) && ($chartType !== DataSeries::TYPE_PIECHART_3D) && ($chartType !== DataSeries::TYPE_DONUTCHART)) {
    +                $objWriter->startElement('c:axId');
    +                $objWriter->writeAttribute('val', $id1);
    +                $objWriter->endElement();
    +                $objWriter->startElement('c:axId');
    +                $objWriter->writeAttribute('val', $id2);
    +                $objWriter->endElement();
    +            } else {
    +                $objWriter->startElement('c:firstSliceAng');
    +                $objWriter->writeAttribute('val', 0);
    +                $objWriter->endElement();
    +
    +                if ($chartType === DataSeries::TYPE_DONUTCHART) {
    +                    $objWriter->startElement('c:holeSize');
    +                    $objWriter->writeAttribute('val', 50);
    +                    $objWriter->endElement();
    +                }
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +
    +        if (($chartType !== DataSeries::TYPE_PIECHART) && ($chartType !== DataSeries::TYPE_PIECHART_3D) && ($chartType !== DataSeries::TYPE_DONUTCHART)) {
    +            if ($chartType === DataSeries::TYPE_BUBBLECHART) {
    +                $this->writeValueAxis($objWriter, $xAxisLabel, $chartType, $id1, $id2, $catIsMultiLevelSeries, $xAxis, $majorGridlines, $minorGridlines);
    +            } else {
    +                $this->writeCategoryAxis($objWriter, $xAxisLabel, $id1, $id2, $catIsMultiLevelSeries, $yAxis);
    +            }
    +
    +            $this->writeValueAxis($objWriter, $yAxisLabel, $chartType, $id1, $id2, $valIsMultiLevelSeries, $xAxis, $majorGridlines, $minorGridlines);
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Data Labels.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param \PhpOffice\PhpSpreadsheet\Chart\Layout $chartLayout Chart layout
    +     */
    +    private function writeDataLabels(XMLWriter $objWriter, Layout $chartLayout = null)
    +    {
    +        $objWriter->startElement('c:dLbls');
    +
    +        $objWriter->startElement('c:showLegendKey');
    +        $showLegendKey = (empty($chartLayout)) ? 0 : $chartLayout->getShowLegendKey();
    +        $objWriter->writeAttribute('val', ((empty($showLegendKey)) ? 0 : 1));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:showVal');
    +        $showVal = (empty($chartLayout)) ? 0 : $chartLayout->getShowVal();
    +        $objWriter->writeAttribute('val', ((empty($showVal)) ? 0 : 1));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:showCatName');
    +        $showCatName = (empty($chartLayout)) ? 0 : $chartLayout->getShowCatName();
    +        $objWriter->writeAttribute('val', ((empty($showCatName)) ? 0 : 1));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:showSerName');
    +        $showSerName = (empty($chartLayout)) ? 0 : $chartLayout->getShowSerName();
    +        $objWriter->writeAttribute('val', ((empty($showSerName)) ? 0 : 1));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:showPercent');
    +        $showPercent = (empty($chartLayout)) ? 0 : $chartLayout->getShowPercent();
    +        $objWriter->writeAttribute('val', ((empty($showPercent)) ? 0 : 1));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:showBubbleSize');
    +        $showBubbleSize = (empty($chartLayout)) ? 0 : $chartLayout->getShowBubbleSize();
    +        $objWriter->writeAttribute('val', ((empty($showBubbleSize)) ? 0 : 1));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:showLeaderLines');
    +        $showLeaderLines = (empty($chartLayout)) ? 1 : $chartLayout->getShowLeaderLines();
    +        $objWriter->writeAttribute('val', ((empty($showLeaderLines)) ? 0 : 1));
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Category Axis.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Title $xAxisLabel
    +     * @param string $id1
    +     * @param string $id2
    +     * @param bool $isMultiLevelSeries
    +     * @param Axis $yAxis
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeCategoryAxis($objWriter, $xAxisLabel, $id1, $id2, $isMultiLevelSeries, Axis $yAxis)
    +    {
    +        $objWriter->startElement('c:catAx');
    +
    +        if ($id1 > 0) {
    +            $objWriter->startElement('c:axId');
    +            $objWriter->writeAttribute('val', $id1);
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->startElement('c:scaling');
    +        $objWriter->startElement('c:orientation');
    +        $objWriter->writeAttribute('val', $yAxis->getAxisOptionsProperty('orientation'));
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:delete');
    +        $objWriter->writeAttribute('val', 0);
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:axPos');
    +        $objWriter->writeAttribute('val', 'b');
    +        $objWriter->endElement();
    +
    +        if ($xAxisLabel !== null) {
    +            $objWriter->startElement('c:title');
    +            $objWriter->startElement('c:tx');
    +            $objWriter->startElement('c:rich');
    +
    +            $objWriter->startElement('a:bodyPr');
    +            $objWriter->endElement();
    +
    +            $objWriter->startElement('a:lstStyle');
    +            $objWriter->endElement();
    +
    +            $objWriter->startElement('a:p');
    +            $objWriter->startElement('a:r');
    +
    +            $caption = $xAxisLabel->getCaption();
    +            if (is_array($caption)) {
    +                $caption = $caption[0];
    +            }
    +            $objWriter->startElement('a:t');
    +            $objWriter->writeRawData(StringHelper::controlCharacterPHP2OOXML($caption));
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +
    +            $layout = $xAxisLabel->getLayout();
    +            $this->writeLayout($objWriter, $layout);
    +
    +            $objWriter->startElement('c:overlay');
    +            $objWriter->writeAttribute('val', 0);
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->startElement('c:numFmt');
    +        $objWriter->writeAttribute('formatCode', $yAxis->getAxisNumberFormat());
    +        $objWriter->writeAttribute('sourceLinked', $yAxis->getAxisNumberSourceLinked());
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:majorTickMark');
    +        $objWriter->writeAttribute('val', $yAxis->getAxisOptionsProperty('major_tick_mark'));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:minorTickMark');
    +        $objWriter->writeAttribute('val', $yAxis->getAxisOptionsProperty('minor_tick_mark'));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:tickLblPos');
    +        $objWriter->writeAttribute('val', $yAxis->getAxisOptionsProperty('axis_labels'));
    +        $objWriter->endElement();
    +
    +        if ($id2 > 0) {
    +            $objWriter->startElement('c:crossAx');
    +            $objWriter->writeAttribute('val', $id2);
    +            $objWriter->endElement();
    +
    +            $objWriter->startElement('c:crosses');
    +            $objWriter->writeAttribute('val', $yAxis->getAxisOptionsProperty('horizontal_crosses'));
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->startElement('c:auto');
    +        $objWriter->writeAttribute('val', 1);
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:lblAlgn');
    +        $objWriter->writeAttribute('val', 'ctr');
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:lblOffset');
    +        $objWriter->writeAttribute('val', 100);
    +        $objWriter->endElement();
    +
    +        if ($isMultiLevelSeries) {
    +            $objWriter->startElement('c:noMultiLvlLbl');
    +            $objWriter->writeAttribute('val', 0);
    +            $objWriter->endElement();
    +        }
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Value Axis.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Title $yAxisLabel
    +     * @param string $groupType Chart type
    +     * @param string $id1
    +     * @param string $id2
    +     * @param bool $isMultiLevelSeries
    +     * @param Axis $xAxis
    +     * @param GridLines $majorGridlines
    +     * @param GridLines $minorGridlines
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeValueAxis($objWriter, $yAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries, Axis $xAxis, GridLines $majorGridlines, GridLines $minorGridlines)
    +    {
    +        $objWriter->startElement('c:valAx');
    +
    +        if ($id2 > 0) {
    +            $objWriter->startElement('c:axId');
    +            $objWriter->writeAttribute('val', $id2);
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->startElement('c:scaling');
    +
    +        if ($xAxis->getAxisOptionsProperty('maximum') !== null) {
    +            $objWriter->startElement('c:max');
    +            $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('maximum'));
    +            $objWriter->endElement();
    +        }
    +
    +        if ($xAxis->getAxisOptionsProperty('minimum') !== null) {
    +            $objWriter->startElement('c:min');
    +            $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minimum'));
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->startElement('c:orientation');
    +        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('orientation'));
    +
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:delete');
    +        $objWriter->writeAttribute('val', 0);
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:axPos');
    +        $objWriter->writeAttribute('val', 'l');
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:majorGridlines');
    +        $objWriter->startElement('c:spPr');
    +
    +        if ($majorGridlines->getLineColorProperty('value') !== null) {
    +            $objWriter->startElement('a:ln');
    +            $objWriter->writeAttribute('w', $majorGridlines->getLineStyleProperty('width'));
    +            $objWriter->startElement('a:solidFill');
    +            $objWriter->startElement("a:{$majorGridlines->getLineColorProperty('type')}");
    +            $objWriter->writeAttribute('val', $majorGridlines->getLineColorProperty('value'));
    +            $objWriter->startElement('a:alpha');
    +            $objWriter->writeAttribute('val', $majorGridlines->getLineColorProperty('alpha'));
    +            $objWriter->endElement(); //end alpha
    +            $objWriter->endElement(); //end srgbClr
    +            $objWriter->endElement(); //end solidFill
    +
    +            $objWriter->startElement('a:prstDash');
    +            $objWriter->writeAttribute('val', $majorGridlines->getLineStyleProperty('dash'));
    +            $objWriter->endElement();
    +
    +            if ($majorGridlines->getLineStyleProperty('join') == 'miter') {
    +                $objWriter->startElement('a:miter');
    +                $objWriter->writeAttribute('lim', '800000');
    +                $objWriter->endElement();
    +            } else {
    +                $objWriter->startElement('a:bevel');
    +                $objWriter->endElement();
    +            }
    +
    +            if ($majorGridlines->getLineStyleProperty(['arrow', 'head', 'type']) !== null) {
    +                $objWriter->startElement('a:headEnd');
    +                $objWriter->writeAttribute('type', $majorGridlines->getLineStyleProperty(['arrow', 'head', 'type']));
    +                $objWriter->writeAttribute('w', $majorGridlines->getLineStyleArrowParameters('head', 'w'));
    +                $objWriter->writeAttribute('len', $majorGridlines->getLineStyleArrowParameters('head', 'len'));
    +                $objWriter->endElement();
    +            }
    +
    +            if ($majorGridlines->getLineStyleProperty(['arrow', 'end', 'type']) !== null) {
    +                $objWriter->startElement('a:tailEnd');
    +                $objWriter->writeAttribute('type', $majorGridlines->getLineStyleProperty(['arrow', 'end', 'type']));
    +                $objWriter->writeAttribute('w', $majorGridlines->getLineStyleArrowParameters('end', 'w'));
    +                $objWriter->writeAttribute('len', $majorGridlines->getLineStyleArrowParameters('end', 'len'));
    +                $objWriter->endElement();
    +            }
    +            $objWriter->endElement(); //end ln
    +        }
    +        $objWriter->startElement('a:effectLst');
    +
    +        if ($majorGridlines->getGlowSize() !== null) {
    +            $objWriter->startElement('a:glow');
    +            $objWriter->writeAttribute('rad', $majorGridlines->getGlowSize());
    +            $objWriter->startElement("a:{$majorGridlines->getGlowColor('type')}");
    +            $objWriter->writeAttribute('val', $majorGridlines->getGlowColor('value'));
    +            $objWriter->startElement('a:alpha');
    +            $objWriter->writeAttribute('val', $majorGridlines->getGlowColor('alpha'));
    +            $objWriter->endElement(); //end alpha
    +            $objWriter->endElement(); //end schemeClr
    +            $objWriter->endElement(); //end glow
    +        }
    +
    +        if ($majorGridlines->getShadowProperty('presets') !== null) {
    +            $objWriter->startElement("a:{$majorGridlines->getShadowProperty('effect')}");
    +            if ($majorGridlines->getShadowProperty('blur') !== null) {
    +                $objWriter->writeAttribute('blurRad', $majorGridlines->getShadowProperty('blur'));
    +            }
    +            if ($majorGridlines->getShadowProperty('distance') !== null) {
    +                $objWriter->writeAttribute('dist', $majorGridlines->getShadowProperty('distance'));
    +            }
    +            if ($majorGridlines->getShadowProperty('direction') !== null) {
    +                $objWriter->writeAttribute('dir', $majorGridlines->getShadowProperty('direction'));
    +            }
    +            if ($majorGridlines->getShadowProperty('algn') !== null) {
    +                $objWriter->writeAttribute('algn', $majorGridlines->getShadowProperty('algn'));
    +            }
    +            if ($majorGridlines->getShadowProperty(['size', 'sx']) !== null) {
    +                $objWriter->writeAttribute('sx', $majorGridlines->getShadowProperty(['size', 'sx']));
    +            }
    +            if ($majorGridlines->getShadowProperty(['size', 'sy']) !== null) {
    +                $objWriter->writeAttribute('sy', $majorGridlines->getShadowProperty(['size', 'sy']));
    +            }
    +            if ($majorGridlines->getShadowProperty(['size', 'kx']) !== null) {
    +                $objWriter->writeAttribute('kx', $majorGridlines->getShadowProperty(['size', 'kx']));
    +            }
    +            if ($majorGridlines->getShadowProperty('rotWithShape') !== null) {
    +                $objWriter->writeAttribute('rotWithShape', $majorGridlines->getShadowProperty('rotWithShape'));
    +            }
    +            $objWriter->startElement("a:{$majorGridlines->getShadowProperty(['color', 'type'])}");
    +            $objWriter->writeAttribute('val', $majorGridlines->getShadowProperty(['color', 'value']));
    +
    +            $objWriter->startElement('a:alpha');
    +            $objWriter->writeAttribute('val', $majorGridlines->getShadowProperty(['color', 'alpha']));
    +            $objWriter->endElement(); //end alpha
    +
    +            $objWriter->endElement(); //end color:type
    +            $objWriter->endElement(); //end shadow
    +        }
    +
    +        if ($majorGridlines->getSoftEdgesSize() !== null) {
    +            $objWriter->startElement('a:softEdge');
    +            $objWriter->writeAttribute('rad', $majorGridlines->getSoftEdgesSize());
    +            $objWriter->endElement(); //end softEdge
    +        }
    +
    +        $objWriter->endElement(); //end effectLst
    +        $objWriter->endElement(); //end spPr
    +        $objWriter->endElement(); //end majorGridLines
    +
    +        if ($minorGridlines->getObjectState()) {
    +            $objWriter->startElement('c:minorGridlines');
    +            $objWriter->startElement('c:spPr');
    +
    +            if ($minorGridlines->getLineColorProperty('value') !== null) {
    +                $objWriter->startElement('a:ln');
    +                $objWriter->writeAttribute('w', $minorGridlines->getLineStyleProperty('width'));
    +                $objWriter->startElement('a:solidFill');
    +                $objWriter->startElement("a:{$minorGridlines->getLineColorProperty('type')}");
    +                $objWriter->writeAttribute('val', $minorGridlines->getLineColorProperty('value'));
    +                $objWriter->startElement('a:alpha');
    +                $objWriter->writeAttribute('val', $minorGridlines->getLineColorProperty('alpha'));
    +                $objWriter->endElement(); //end alpha
    +                $objWriter->endElement(); //end srgbClr
    +                $objWriter->endElement(); //end solidFill
    +
    +                $objWriter->startElement('a:prstDash');
    +                $objWriter->writeAttribute('val', $minorGridlines->getLineStyleProperty('dash'));
    +                $objWriter->endElement();
    +
    +                if ($minorGridlines->getLineStyleProperty('join') == 'miter') {
    +                    $objWriter->startElement('a:miter');
    +                    $objWriter->writeAttribute('lim', '800000');
    +                    $objWriter->endElement();
    +                } else {
    +                    $objWriter->startElement('a:bevel');
    +                    $objWriter->endElement();
    +                }
    +
    +                if ($minorGridlines->getLineStyleProperty(['arrow', 'head', 'type']) !== null) {
    +                    $objWriter->startElement('a:headEnd');
    +                    $objWriter->writeAttribute('type', $minorGridlines->getLineStyleProperty(['arrow', 'head', 'type']));
    +                    $objWriter->writeAttribute('w', $minorGridlines->getLineStyleArrowParameters('head', 'w'));
    +                    $objWriter->writeAttribute('len', $minorGridlines->getLineStyleArrowParameters('head', 'len'));
    +                    $objWriter->endElement();
    +                }
    +
    +                if ($minorGridlines->getLineStyleProperty(['arrow', 'end', 'type']) !== null) {
    +                    $objWriter->startElement('a:tailEnd');
    +                    $objWriter->writeAttribute('type', $minorGridlines->getLineStyleProperty(['arrow', 'end', 'type']));
    +                    $objWriter->writeAttribute('w', $minorGridlines->getLineStyleArrowParameters('end', 'w'));
    +                    $objWriter->writeAttribute('len', $minorGridlines->getLineStyleArrowParameters('end', 'len'));
    +                    $objWriter->endElement();
    +                }
    +                $objWriter->endElement(); //end ln
    +            }
    +
    +            $objWriter->startElement('a:effectLst');
    +
    +            if ($minorGridlines->getGlowSize() !== null) {
    +                $objWriter->startElement('a:glow');
    +                $objWriter->writeAttribute('rad', $minorGridlines->getGlowSize());
    +                $objWriter->startElement("a:{$minorGridlines->getGlowColor('type')}");
    +                $objWriter->writeAttribute('val', $minorGridlines->getGlowColor('value'));
    +                $objWriter->startElement('a:alpha');
    +                $objWriter->writeAttribute('val', $minorGridlines->getGlowColor('alpha'));
    +                $objWriter->endElement(); //end alpha
    +                $objWriter->endElement(); //end schemeClr
    +                $objWriter->endElement(); //end glow
    +            }
    +
    +            if ($minorGridlines->getShadowProperty('presets') !== null) {
    +                $objWriter->startElement("a:{$minorGridlines->getShadowProperty('effect')}");
    +                if ($minorGridlines->getShadowProperty('blur') !== null) {
    +                    $objWriter->writeAttribute('blurRad', $minorGridlines->getShadowProperty('blur'));
    +                }
    +                if ($minorGridlines->getShadowProperty('distance') !== null) {
    +                    $objWriter->writeAttribute('dist', $minorGridlines->getShadowProperty('distance'));
    +                }
    +                if ($minorGridlines->getShadowProperty('direction') !== null) {
    +                    $objWriter->writeAttribute('dir', $minorGridlines->getShadowProperty('direction'));
    +                }
    +                if ($minorGridlines->getShadowProperty('algn') !== null) {
    +                    $objWriter->writeAttribute('algn', $minorGridlines->getShadowProperty('algn'));
    +                }
    +                if ($minorGridlines->getShadowProperty(['size', 'sx']) !== null) {
    +                    $objWriter->writeAttribute('sx', $minorGridlines->getShadowProperty(['size', 'sx']));
    +                }
    +                if ($minorGridlines->getShadowProperty(['size', 'sy']) !== null) {
    +                    $objWriter->writeAttribute('sy', $minorGridlines->getShadowProperty(['size', 'sy']));
    +                }
    +                if ($minorGridlines->getShadowProperty(['size', 'kx']) !== null) {
    +                    $objWriter->writeAttribute('kx', $minorGridlines->getShadowProperty(['size', 'kx']));
    +                }
    +                if ($minorGridlines->getShadowProperty('rotWithShape') !== null) {
    +                    $objWriter->writeAttribute('rotWithShape', $minorGridlines->getShadowProperty('rotWithShape'));
    +                }
    +                $objWriter->startElement("a:{$minorGridlines->getShadowProperty(['color', 'type'])}");
    +                $objWriter->writeAttribute('val', $minorGridlines->getShadowProperty(['color', 'value']));
    +                $objWriter->startElement('a:alpha');
    +                $objWriter->writeAttribute('val', $minorGridlines->getShadowProperty(['color', 'alpha']));
    +                $objWriter->endElement(); //end alpha
    +                $objWriter->endElement(); //end color:type
    +                $objWriter->endElement(); //end shadow
    +            }
    +
    +            if ($minorGridlines->getSoftEdgesSize() !== null) {
    +                $objWriter->startElement('a:softEdge');
    +                $objWriter->writeAttribute('rad', $minorGridlines->getSoftEdgesSize());
    +                $objWriter->endElement(); //end softEdge
    +            }
    +
    +            $objWriter->endElement(); //end effectLst
    +            $objWriter->endElement(); //end spPr
    +            $objWriter->endElement(); //end minorGridLines
    +        }
    +
    +        if ($yAxisLabel !== null) {
    +            $objWriter->startElement('c:title');
    +            $objWriter->startElement('c:tx');
    +            $objWriter->startElement('c:rich');
    +
    +            $objWriter->startElement('a:bodyPr');
    +            $objWriter->endElement();
    +
    +            $objWriter->startElement('a:lstStyle');
    +            $objWriter->endElement();
    +
    +            $objWriter->startElement('a:p');
    +            $objWriter->startElement('a:r');
    +
    +            $caption = $yAxisLabel->getCaption();
    +            if (is_array($caption)) {
    +                $caption = $caption[0];
    +            }
    +
    +            $objWriter->startElement('a:t');
    +            $objWriter->writeRawData(StringHelper::controlCharacterPHP2OOXML($caption));
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +
    +            if ($groupType !== DataSeries::TYPE_BUBBLECHART) {
    +                $layout = $yAxisLabel->getLayout();
    +                $this->writeLayout($objWriter, $layout);
    +            }
    +
    +            $objWriter->startElement('c:overlay');
    +            $objWriter->writeAttribute('val', 0);
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->startElement('c:numFmt');
    +        $objWriter->writeAttribute('formatCode', $xAxis->getAxisNumberFormat());
    +        $objWriter->writeAttribute('sourceLinked', $xAxis->getAxisNumberSourceLinked());
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:majorTickMark');
    +        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('major_tick_mark'));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:minorTickMark');
    +        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minor_tick_mark'));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:tickLblPos');
    +        $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('axis_labels'));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:spPr');
    +
    +        if ($xAxis->getFillProperty('value') !== null) {
    +            $objWriter->startElement('a:solidFill');
    +            $objWriter->startElement('a:' . $xAxis->getFillProperty('type'));
    +            $objWriter->writeAttribute('val', $xAxis->getFillProperty('value'));
    +            $objWriter->startElement('a:alpha');
    +            $objWriter->writeAttribute('val', $xAxis->getFillProperty('alpha'));
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->startElement('a:ln');
    +
    +        $objWriter->writeAttribute('w', $xAxis->getLineStyleProperty('width'));
    +        $objWriter->writeAttribute('cap', $xAxis->getLineStyleProperty('cap'));
    +        $objWriter->writeAttribute('cmpd', $xAxis->getLineStyleProperty('compound'));
    +
    +        if ($xAxis->getLineProperty('value') !== null) {
    +            $objWriter->startElement('a:solidFill');
    +            $objWriter->startElement('a:' . $xAxis->getLineProperty('type'));
    +            $objWriter->writeAttribute('val', $xAxis->getLineProperty('value'));
    +            $objWriter->startElement('a:alpha');
    +            $objWriter->writeAttribute('val', $xAxis->getLineProperty('alpha'));
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->startElement('a:prstDash');
    +        $objWriter->writeAttribute('val', $xAxis->getLineStyleProperty('dash'));
    +        $objWriter->endElement();
    +
    +        if ($xAxis->getLineStyleProperty('join') == 'miter') {
    +            $objWriter->startElement('a:miter');
    +            $objWriter->writeAttribute('lim', '800000');
    +            $objWriter->endElement();
    +        } else {
    +            $objWriter->startElement('a:bevel');
    +            $objWriter->endElement();
    +        }
    +
    +        if ($xAxis->getLineStyleProperty(['arrow', 'head', 'type']) !== null) {
    +            $objWriter->startElement('a:headEnd');
    +            $objWriter->writeAttribute('type', $xAxis->getLineStyleProperty(['arrow', 'head', 'type']));
    +            $objWriter->writeAttribute('w', $xAxis->getLineStyleArrowWidth('head'));
    +            $objWriter->writeAttribute('len', $xAxis->getLineStyleArrowLength('head'));
    +            $objWriter->endElement();
    +        }
    +
    +        if ($xAxis->getLineStyleProperty(['arrow', 'end', 'type']) !== null) {
    +            $objWriter->startElement('a:tailEnd');
    +            $objWriter->writeAttribute('type', $xAxis->getLineStyleProperty(['arrow', 'end', 'type']));
    +            $objWriter->writeAttribute('w', $xAxis->getLineStyleArrowWidth('end'));
    +            $objWriter->writeAttribute('len', $xAxis->getLineStyleArrowLength('end'));
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('a:effectLst');
    +
    +        if ($xAxis->getGlowProperty('size') !== null) {
    +            $objWriter->startElement('a:glow');
    +            $objWriter->writeAttribute('rad', $xAxis->getGlowProperty('size'));
    +            $objWriter->startElement("a:{$xAxis->getGlowProperty(['color', 'type'])}");
    +            $objWriter->writeAttribute('val', $xAxis->getGlowProperty(['color', 'value']));
    +            $objWriter->startElement('a:alpha');
    +            $objWriter->writeAttribute('val', $xAxis->getGlowProperty(['color', 'alpha']));
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +        }
    +
    +        if ($xAxis->getShadowProperty('presets') !== null) {
    +            $objWriter->startElement("a:{$xAxis->getShadowProperty('effect')}");
    +
    +            if ($xAxis->getShadowProperty('blur') !== null) {
    +                $objWriter->writeAttribute('blurRad', $xAxis->getShadowProperty('blur'));
    +            }
    +            if ($xAxis->getShadowProperty('distance') !== null) {
    +                $objWriter->writeAttribute('dist', $xAxis->getShadowProperty('distance'));
    +            }
    +            if ($xAxis->getShadowProperty('direction') !== null) {
    +                $objWriter->writeAttribute('dir', $xAxis->getShadowProperty('direction'));
    +            }
    +            if ($xAxis->getShadowProperty('algn') !== null) {
    +                $objWriter->writeAttribute('algn', $xAxis->getShadowProperty('algn'));
    +            }
    +            if ($xAxis->getShadowProperty(['size', 'sx']) !== null) {
    +                $objWriter->writeAttribute('sx', $xAxis->getShadowProperty(['size', 'sx']));
    +            }
    +            if ($xAxis->getShadowProperty(['size', 'sy']) !== null) {
    +                $objWriter->writeAttribute('sy', $xAxis->getShadowProperty(['size', 'sy']));
    +            }
    +            if ($xAxis->getShadowProperty(['size', 'kx']) !== null) {
    +                $objWriter->writeAttribute('kx', $xAxis->getShadowProperty(['size', 'kx']));
    +            }
    +            if ($xAxis->getShadowProperty('rotWithShape') !== null) {
    +                $objWriter->writeAttribute('rotWithShape', $xAxis->getShadowProperty('rotWithShape'));
    +            }
    +
    +            $objWriter->startElement("a:{$xAxis->getShadowProperty(['color', 'type'])}");
    +            $objWriter->writeAttribute('val', $xAxis->getShadowProperty(['color', 'value']));
    +            $objWriter->startElement('a:alpha');
    +            $objWriter->writeAttribute('val', $xAxis->getShadowProperty(['color', 'alpha']));
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +        }
    +
    +        if ($xAxis->getSoftEdgesSize() !== null) {
    +            $objWriter->startElement('a:softEdge');
    +            $objWriter->writeAttribute('rad', $xAxis->getSoftEdgesSize());
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->endElement(); //effectList
    +        $objWriter->endElement(); //end spPr
    +
    +        if ($id1 > 0) {
    +            $objWriter->startElement('c:crossAx');
    +            $objWriter->writeAttribute('val', $id2);
    +            $objWriter->endElement();
    +
    +            if ($xAxis->getAxisOptionsProperty('horizontal_crosses_value') !== null) {
    +                $objWriter->startElement('c:crossesAt');
    +                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('horizontal_crosses_value'));
    +                $objWriter->endElement();
    +            } else {
    +                $objWriter->startElement('c:crosses');
    +                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('horizontal_crosses'));
    +                $objWriter->endElement();
    +            }
    +
    +            $objWriter->startElement('c:crossBetween');
    +            $objWriter->writeAttribute('val', 'midCat');
    +            $objWriter->endElement();
    +
    +            if ($xAxis->getAxisOptionsProperty('major_unit') !== null) {
    +                $objWriter->startElement('c:majorUnit');
    +                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('major_unit'));
    +                $objWriter->endElement();
    +            }
    +
    +            if ($xAxis->getAxisOptionsProperty('minor_unit') !== null) {
    +                $objWriter->startElement('c:minorUnit');
    +                $objWriter->writeAttribute('val', $xAxis->getAxisOptionsProperty('minor_unit'));
    +                $objWriter->endElement();
    +            }
    +        }
    +
    +        if ($isMultiLevelSeries) {
    +            if ($groupType !== DataSeries::TYPE_BUBBLECHART) {
    +                $objWriter->startElement('c:noMultiLvlLbl');
    +                $objWriter->writeAttribute('val', 0);
    +                $objWriter->endElement();
    +            }
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Get the data series type(s) for a chart plot series.
    +     *
    +     * @param PlotArea $plotArea
    +     *
    +     * @throws WriterException
    +     *
    +     * @return array|string
    +     */
    +    private static function getChartType($plotArea)
    +    {
    +        $groupCount = $plotArea->getPlotGroupCount();
    +
    +        if ($groupCount == 1) {
    +            $chartType = [$plotArea->getPlotGroupByIndex(0)->getPlotType()];
    +        } else {
    +            $chartTypes = [];
    +            for ($i = 0; $i < $groupCount; ++$i) {
    +                $chartTypes[] = $plotArea->getPlotGroupByIndex($i)->getPlotType();
    +            }
    +            $chartType = array_unique($chartTypes);
    +            if (count($chartTypes) == 0) {
    +                throw new WriterException('Chart is not yet implemented');
    +            }
    +        }
    +
    +        return $chartType;
    +    }
    +
    +    /**
    +     * Method writing plot series values.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param int       $val       value for idx (default: 3)
    +     * @param string    $fillColor hex color (default: FF9900)
    +     *
    +     * @return XMLWriter XML Writer
    +     */
    +    private function writePlotSeriesValuesElement($objWriter, $val = 3, $fillColor = 'FF9900')
    +    {
    +        $objWriter->startElement('c:dPt');
    +        $objWriter->startElement('c:idx');
    +        $objWriter->writeAttribute('val', $val);
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:bubble3D');
    +        $objWriter->writeAttribute('val', 0);
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:spPr');
    +        $objWriter->startElement('a:solidFill');
    +        $objWriter->startElement('a:srgbClr');
    +        $objWriter->writeAttribute('val', $fillColor);
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        return $objWriter;
    +    }
    +
    +    /**
    +     * Write Plot Group (series of related plots).
    +     *
    +     * @param DataSeries $plotGroup
    +     * @param string $groupType Type of plot for dataseries
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param bool &$catIsMultiLevelSeries Is category a multi-series category
    +     * @param bool &$valIsMultiLevelSeries Is value set a multi-series set
    +     * @param string &$plotGroupingType Type of grouping for multi-series values
    +     *
    +     * @throws WriterException
    +     */
    +    private function writePlotGroup($plotGroup, $groupType, $objWriter, &$catIsMultiLevelSeries, &$valIsMultiLevelSeries, &$plotGroupingType)
    +    {
    +        if ($plotGroup === null) {
    +            return;
    +        }
    +
    +        if (($groupType == DataSeries::TYPE_BARCHART) || ($groupType == DataSeries::TYPE_BARCHART_3D)) {
    +            $objWriter->startElement('c:barDir');
    +            $objWriter->writeAttribute('val', $plotGroup->getPlotDirection());
    +            $objWriter->endElement();
    +        }
    +
    +        if ($plotGroup->getPlotGrouping() !== null) {
    +            $plotGroupingType = $plotGroup->getPlotGrouping();
    +            $objWriter->startElement('c:grouping');
    +            $objWriter->writeAttribute('val', $plotGroupingType);
    +            $objWriter->endElement();
    +        }
    +
    +        //    Get these details before the loop, because we can use the count to check for varyColors
    +        $plotSeriesOrder = $plotGroup->getPlotOrder();
    +        $plotSeriesCount = count($plotSeriesOrder);
    +
    +        if (($groupType !== DataSeries::TYPE_RADARCHART) && ($groupType !== DataSeries::TYPE_STOCKCHART)) {
    +            if ($groupType !== DataSeries::TYPE_LINECHART) {
    +                if (($groupType == DataSeries::TYPE_PIECHART) || ($groupType == DataSeries::TYPE_PIECHART_3D) || ($groupType == DataSeries::TYPE_DONUTCHART) || ($plotSeriesCount > 1)) {
    +                    $objWriter->startElement('c:varyColors');
    +                    $objWriter->writeAttribute('val', 1);
    +                    $objWriter->endElement();
    +                } else {
    +                    $objWriter->startElement('c:varyColors');
    +                    $objWriter->writeAttribute('val', 0);
    +                    $objWriter->endElement();
    +                }
    +            }
    +        }
    +
    +        foreach ($plotSeriesOrder as $plotSeriesIdx => $plotSeriesRef) {
    +            $objWriter->startElement('c:ser');
    +
    +            $plotLabel = $plotGroup->getPlotLabelByIndex($plotSeriesIdx);
    +            if ($plotLabel) {
    +                $fillColor = $plotLabel->getFillColor();
    +                if ($fillColor !== null && !is_array($fillColor)) {
    +                    $objWriter->startElement('c:spPr');
    +                    $objWriter->startElement('a:solidFill');
    +                    $objWriter->startElement('a:srgbClr');
    +                    $objWriter->writeAttribute('val', $fillColor);
    +                    $objWriter->endElement();
    +                    $objWriter->endElement();
    +                    $objWriter->endElement();
    +                }
    +            }
    +
    +            $objWriter->startElement('c:idx');
    +            $objWriter->writeAttribute('val', $this->seriesIndex + $plotSeriesIdx);
    +            $objWriter->endElement();
    +
    +            $objWriter->startElement('c:order');
    +            $objWriter->writeAttribute('val', $this->seriesIndex + $plotSeriesRef);
    +            $objWriter->endElement();
    +
    +            //    Values
    +            $plotSeriesValues = $plotGroup->getPlotValuesByIndex($plotSeriesRef);
    +
    +            if (($groupType == DataSeries::TYPE_PIECHART) || ($groupType == DataSeries::TYPE_PIECHART_3D) || ($groupType == DataSeries::TYPE_DONUTCHART)) {
    +                $fillColorValues = $plotSeriesValues->getFillColor();
    +                if ($fillColorValues !== null && is_array($fillColorValues)) {
    +                    foreach ($plotSeriesValues->getDataValues() as $dataKey => $dataValue) {
    +                        $this->writePlotSeriesValuesElement($objWriter, $dataKey, (isset($fillColorValues[$dataKey]) ? $fillColorValues[$dataKey] : 'FF9900'));
    +                    }
    +                } else {
    +                    $this->writePlotSeriesValuesElement($objWriter);
    +                }
    +            }
    +
    +            //    Labels
    +            $plotSeriesLabel = $plotGroup->getPlotLabelByIndex($plotSeriesRef);
    +            if ($plotSeriesLabel && ($plotSeriesLabel->getPointCount() > 0)) {
    +                $objWriter->startElement('c:tx');
    +                $objWriter->startElement('c:strRef');
    +                $this->writePlotSeriesLabel($plotSeriesLabel, $objWriter);
    +                $objWriter->endElement();
    +                $objWriter->endElement();
    +            }
    +
    +            //    Formatting for the points
    +            if (($groupType == DataSeries::TYPE_LINECHART) || ($groupType == DataSeries::TYPE_STOCKCHART)) {
    +                $plotLineWidth = 12700;
    +                if ($plotSeriesValues) {
    +                    $plotLineWidth = $plotSeriesValues->getLineWidth();
    +                }
    +
    +                $objWriter->startElement('c:spPr');
    +                $objWriter->startElement('a:ln');
    +                $objWriter->writeAttribute('w', $plotLineWidth);
    +                if ($groupType == DataSeries::TYPE_STOCKCHART) {
    +                    $objWriter->startElement('a:noFill');
    +                    $objWriter->endElement();
    +                }
    +                $objWriter->endElement();
    +                $objWriter->endElement();
    +            }
    +
    +            if ($plotSeriesValues) {
    +                $plotSeriesMarker = $plotSeriesValues->getPointMarker();
    +                if ($plotSeriesMarker) {
    +                    $objWriter->startElement('c:marker');
    +                    $objWriter->startElement('c:symbol');
    +                    $objWriter->writeAttribute('val', $plotSeriesMarker);
    +                    $objWriter->endElement();
    +
    +                    if ($plotSeriesMarker !== 'none') {
    +                        $objWriter->startElement('c:size');
    +                        $objWriter->writeAttribute('val', 3);
    +                        $objWriter->endElement();
    +                    }
    +
    +                    $objWriter->endElement();
    +                }
    +            }
    +
    +            if (($groupType === DataSeries::TYPE_BARCHART) || ($groupType === DataSeries::TYPE_BARCHART_3D) || ($groupType === DataSeries::TYPE_BUBBLECHART)) {
    +                $objWriter->startElement('c:invertIfNegative');
    +                $objWriter->writeAttribute('val', 0);
    +                $objWriter->endElement();
    +            }
    +
    +            //    Category Labels
    +            $plotSeriesCategory = $plotGroup->getPlotCategoryByIndex($plotSeriesRef);
    +            if ($plotSeriesCategory && ($plotSeriesCategory->getPointCount() > 0)) {
    +                $catIsMultiLevelSeries = $catIsMultiLevelSeries || $plotSeriesCategory->isMultiLevelSeries();
    +
    +                if (($groupType == DataSeries::TYPE_PIECHART) || ($groupType == DataSeries::TYPE_PIECHART_3D) || ($groupType == DataSeries::TYPE_DONUTCHART)) {
    +                    if ($plotGroup->getPlotStyle() !== null) {
    +                        $plotStyle = $plotGroup->getPlotStyle();
    +                        if ($plotStyle) {
    +                            $objWriter->startElement('c:explosion');
    +                            $objWriter->writeAttribute('val', 25);
    +                            $objWriter->endElement();
    +                        }
    +                    }
    +                }
    +
    +                if (($groupType === DataSeries::TYPE_BUBBLECHART) || ($groupType === DataSeries::TYPE_SCATTERCHART)) {
    +                    $objWriter->startElement('c:xVal');
    +                } else {
    +                    $objWriter->startElement('c:cat');
    +                }
    +
    +                $this->writePlotSeriesValues($plotSeriesCategory, $objWriter, $groupType, 'str');
    +                $objWriter->endElement();
    +            }
    +
    +            //    Values
    +            if ($plotSeriesValues) {
    +                $valIsMultiLevelSeries = $valIsMultiLevelSeries || $plotSeriesValues->isMultiLevelSeries();
    +
    +                if (($groupType === DataSeries::TYPE_BUBBLECHART) || ($groupType === DataSeries::TYPE_SCATTERCHART)) {
    +                    $objWriter->startElement('c:yVal');
    +                } else {
    +                    $objWriter->startElement('c:val');
    +                }
    +
    +                $this->writePlotSeriesValues($plotSeriesValues, $objWriter, $groupType, 'num');
    +                $objWriter->endElement();
    +            }
    +
    +            if ($groupType === DataSeries::TYPE_BUBBLECHART) {
    +                $this->writeBubbles($plotSeriesValues, $objWriter);
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +
    +        $this->seriesIndex += $plotSeriesIdx + 1;
    +    }
    +
    +    /**
    +     * Write Plot Series Label.
    +     *
    +     * @param DataSeriesValues $plotSeriesLabel
    +     * @param XMLWriter $objWriter XML Writer
    +     */
    +    private function writePlotSeriesLabel($plotSeriesLabel, $objWriter)
    +    {
    +        if ($plotSeriesLabel === null) {
    +            return;
    +        }
    +
    +        $objWriter->startElement('c:f');
    +        $objWriter->writeRawData($plotSeriesLabel->getDataSource());
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:strCache');
    +        $objWriter->startElement('c:ptCount');
    +        $objWriter->writeAttribute('val', $plotSeriesLabel->getPointCount());
    +        $objWriter->endElement();
    +
    +        foreach ($plotSeriesLabel->getDataValues() as $plotLabelKey => $plotLabelValue) {
    +            $objWriter->startElement('c:pt');
    +            $objWriter->writeAttribute('idx', $plotLabelKey);
    +
    +            $objWriter->startElement('c:v');
    +            $objWriter->writeRawData($plotLabelValue);
    +            $objWriter->endElement();
    +            $objWriter->endElement();
    +        }
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Plot Series Values.
    +     *
    +     * @param DataSeriesValues $plotSeriesValues
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param string $groupType Type of plot for dataseries
    +     * @param string $dataType Datatype of series values
    +     */
    +    private function writePlotSeriesValues($plotSeriesValues, XMLWriter $objWriter, $groupType, $dataType = 'str')
    +    {
    +        if ($plotSeriesValues === null) {
    +            return;
    +        }
    +
    +        if ($plotSeriesValues->isMultiLevelSeries()) {
    +            $levelCount = $plotSeriesValues->multiLevelCount();
    +
    +            $objWriter->startElement('c:multiLvlStrRef');
    +
    +            $objWriter->startElement('c:f');
    +            $objWriter->writeRawData($plotSeriesValues->getDataSource());
    +            $objWriter->endElement();
    +
    +            $objWriter->startElement('c:multiLvlStrCache');
    +
    +            $objWriter->startElement('c:ptCount');
    +            $objWriter->writeAttribute('val', $plotSeriesValues->getPointCount());
    +            $objWriter->endElement();
    +
    +            for ($level = 0; $level < $levelCount; ++$level) {
    +                $objWriter->startElement('c:lvl');
    +
    +                foreach ($plotSeriesValues->getDataValues() as $plotSeriesKey => $plotSeriesValue) {
    +                    if (isset($plotSeriesValue[$level])) {
    +                        $objWriter->startElement('c:pt');
    +                        $objWriter->writeAttribute('idx', $plotSeriesKey);
    +
    +                        $objWriter->startElement('c:v');
    +                        $objWriter->writeRawData($plotSeriesValue[$level]);
    +                        $objWriter->endElement();
    +                        $objWriter->endElement();
    +                    }
    +                }
    +
    +                $objWriter->endElement();
    +            }
    +
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +        } else {
    +            $objWriter->startElement('c:' . $dataType . 'Ref');
    +
    +            $objWriter->startElement('c:f');
    +            $objWriter->writeRawData($plotSeriesValues->getDataSource());
    +            $objWriter->endElement();
    +
    +            $objWriter->startElement('c:' . $dataType . 'Cache');
    +
    +            if (($groupType != DataSeries::TYPE_PIECHART) && ($groupType != DataSeries::TYPE_PIECHART_3D) && ($groupType != DataSeries::TYPE_DONUTCHART)) {
    +                if (($plotSeriesValues->getFormatCode() !== null) && ($plotSeriesValues->getFormatCode() !== '')) {
    +                    $objWriter->startElement('c:formatCode');
    +                    $objWriter->writeRawData($plotSeriesValues->getFormatCode());
    +                    $objWriter->endElement();
    +                }
    +            }
    +
    +            $objWriter->startElement('c:ptCount');
    +            $objWriter->writeAttribute('val', $plotSeriesValues->getPointCount());
    +            $objWriter->endElement();
    +
    +            $dataValues = $plotSeriesValues->getDataValues();
    +            if (!empty($dataValues)) {
    +                if (is_array($dataValues)) {
    +                    foreach ($dataValues as $plotSeriesKey => $plotSeriesValue) {
    +                        $objWriter->startElement('c:pt');
    +                        $objWriter->writeAttribute('idx', $plotSeriesKey);
    +
    +                        $objWriter->startElement('c:v');
    +                        $objWriter->writeRawData($plotSeriesValue);
    +                        $objWriter->endElement();
    +                        $objWriter->endElement();
    +                    }
    +                }
    +            }
    +
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write Bubble Chart Details.
    +     *
    +     * @param DataSeriesValues $plotSeriesValues
    +     * @param XMLWriter $objWriter XML Writer
    +     */
    +    private function writeBubbles($plotSeriesValues, $objWriter)
    +    {
    +        if ($plotSeriesValues === null) {
    +            return;
    +        }
    +
    +        $objWriter->startElement('c:bubbleSize');
    +        $objWriter->startElement('c:numLit');
    +
    +        $objWriter->startElement('c:formatCode');
    +        $objWriter->writeRawData('General');
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:ptCount');
    +        $objWriter->writeAttribute('val', $plotSeriesValues->getPointCount());
    +        $objWriter->endElement();
    +
    +        $dataValues = $plotSeriesValues->getDataValues();
    +        if (!empty($dataValues)) {
    +            if (is_array($dataValues)) {
    +                foreach ($dataValues as $plotSeriesKey => $plotSeriesValue) {
    +                    $objWriter->startElement('c:pt');
    +                    $objWriter->writeAttribute('idx', $plotSeriesKey);
    +                    $objWriter->startElement('c:v');
    +                    $objWriter->writeRawData(1);
    +                    $objWriter->endElement();
    +                    $objWriter->endElement();
    +                }
    +            }
    +        }
    +
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:bubble3D');
    +        $objWriter->writeAttribute('val', 0);
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Layout.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Layout $layout
    +     */
    +    private function writeLayout(XMLWriter $objWriter, Layout $layout = null)
    +    {
    +        $objWriter->startElement('c:layout');
    +
    +        if ($layout !== null) {
    +            $objWriter->startElement('c:manualLayout');
    +
    +            $layoutTarget = $layout->getLayoutTarget();
    +            if ($layoutTarget !== null) {
    +                $objWriter->startElement('c:layoutTarget');
    +                $objWriter->writeAttribute('val', $layoutTarget);
    +                $objWriter->endElement();
    +            }
    +
    +            $xMode = $layout->getXMode();
    +            if ($xMode !== null) {
    +                $objWriter->startElement('c:xMode');
    +                $objWriter->writeAttribute('val', $xMode);
    +                $objWriter->endElement();
    +            }
    +
    +            $yMode = $layout->getYMode();
    +            if ($yMode !== null) {
    +                $objWriter->startElement('c:yMode');
    +                $objWriter->writeAttribute('val', $yMode);
    +                $objWriter->endElement();
    +            }
    +
    +            $x = $layout->getXPosition();
    +            if ($x !== null) {
    +                $objWriter->startElement('c:x');
    +                $objWriter->writeAttribute('val', $x);
    +                $objWriter->endElement();
    +            }
    +
    +            $y = $layout->getYPosition();
    +            if ($y !== null) {
    +                $objWriter->startElement('c:y');
    +                $objWriter->writeAttribute('val', $y);
    +                $objWriter->endElement();
    +            }
    +
    +            $w = $layout->getWidth();
    +            if ($w !== null) {
    +                $objWriter->startElement('c:w');
    +                $objWriter->writeAttribute('val', $w);
    +                $objWriter->endElement();
    +            }
    +
    +            $h = $layout->getHeight();
    +            if ($h !== null) {
    +                $objWriter->startElement('c:h');
    +                $objWriter->writeAttribute('val', $h);
    +                $objWriter->endElement();
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Alternate Content block.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     */
    +    private function writeAlternateContent($objWriter)
    +    {
    +        $objWriter->startElement('mc:AlternateContent');
    +        $objWriter->writeAttribute('xmlns:mc', 'http://schemas.openxmlformats.org/markup-compatibility/2006');
    +
    +        $objWriter->startElement('mc:Choice');
    +        $objWriter->writeAttribute('xmlns:c14', 'http://schemas.microsoft.com/office/drawing/2007/8/2/chart');
    +        $objWriter->writeAttribute('Requires', 'c14');
    +
    +        $objWriter->startElement('c14:style');
    +        $objWriter->writeAttribute('val', '102');
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('mc:Fallback');
    +        $objWriter->startElement('c:style');
    +        $objWriter->writeAttribute('val', '2');
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Printer Settings.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     */
    +    private function writePrintSettings($objWriter)
    +    {
    +        $objWriter->startElement('c:printSettings');
    +
    +        $objWriter->startElement('c:headerFooter');
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:pageMargins');
    +        $objWriter->writeAttribute('footer', 0.3);
    +        $objWriter->writeAttribute('header', 0.3);
    +        $objWriter->writeAttribute('r', 0.7);
    +        $objWriter->writeAttribute('l', 0.7);
    +        $objWriter->writeAttribute('t', 0.75);
    +        $objWriter->writeAttribute('b', 0.75);
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('c:pageSetup');
    +        $objWriter->writeAttribute('orientation', 'portrait');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Comments.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Comments.php
    new file mode 100644
    index 00000000000..8b08f31f3f8
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Comments.php
    @@ -0,0 +1,242 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Comment;
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +
    +class Comments extends WriterPart
    +{
    +    /**
    +     * Write comments to XML format.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeComments(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Comments cache
    +        $comments = $pWorksheet->getComments();
    +
    +        // Authors cache
    +        $authors = [];
    +        $authorId = 0;
    +        foreach ($comments as $comment) {
    +            if (!isset($authors[$comment->getAuthor()])) {
    +                $authors[$comment->getAuthor()] = $authorId++;
    +            }
    +        }
    +
    +        // comments
    +        $objWriter->startElement('comments');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
    +
    +        // Loop through authors
    +        $objWriter->startElement('authors');
    +        foreach ($authors as $author => $index) {
    +            $objWriter->writeElement('author', $author);
    +        }
    +        $objWriter->endElement();
    +
    +        // Loop through comments
    +        $objWriter->startElement('commentList');
    +        foreach ($comments as $key => $value) {
    +            $this->writeComment($objWriter, $key, $value, $authors);
    +        }
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write comment to XML format.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param string $pCellReference Cell reference
    +     * @param Comment $pComment Comment
    +     * @param array $pAuthors Array of authors
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     */
    +    private function writeComment(XMLWriter $objWriter, $pCellReference, Comment $pComment, array $pAuthors)
    +    {
    +        // comment
    +        $objWriter->startElement('comment');
    +        $objWriter->writeAttribute('ref', $pCellReference);
    +        $objWriter->writeAttribute('authorId', $pAuthors[$pComment->getAuthor()]);
    +
    +        // text
    +        $objWriter->startElement('text');
    +        $this->getParentWriter()->getWriterPart('stringtable')->writeRichText($objWriter, $pComment->getText());
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write VML comments to XML format.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeVMLComments(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Comments cache
    +        $comments = $pWorksheet->getComments();
    +
    +        // xml
    +        $objWriter->startElement('xml');
    +        $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
    +        $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office');
    +        $objWriter->writeAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel');
    +
    +        // o:shapelayout
    +        $objWriter->startElement('o:shapelayout');
    +        $objWriter->writeAttribute('v:ext', 'edit');
    +
    +        // o:idmap
    +        $objWriter->startElement('o:idmap');
    +        $objWriter->writeAttribute('v:ext', 'edit');
    +        $objWriter->writeAttribute('data', '1');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // v:shapetype
    +        $objWriter->startElement('v:shapetype');
    +        $objWriter->writeAttribute('id', '_x0000_t202');
    +        $objWriter->writeAttribute('coordsize', '21600,21600');
    +        $objWriter->writeAttribute('o:spt', '202');
    +        $objWriter->writeAttribute('path', 'm,l,21600r21600,l21600,xe');
    +
    +        // v:stroke
    +        $objWriter->startElement('v:stroke');
    +        $objWriter->writeAttribute('joinstyle', 'miter');
    +        $objWriter->endElement();
    +
    +        // v:path
    +        $objWriter->startElement('v:path');
    +        $objWriter->writeAttribute('gradientshapeok', 't');
    +        $objWriter->writeAttribute('o:connecttype', 'rect');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // Loop through comments
    +        foreach ($comments as $key => $value) {
    +            $this->writeVMLComment($objWriter, $key, $value);
    +        }
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write VML comment to XML format.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param string $pCellReference Cell reference, eg: 'A1'
    +     * @param Comment $pComment Comment
    +     */
    +    private function writeVMLComment(XMLWriter $objWriter, $pCellReference, Comment $pComment)
    +    {
    +        // Metadata
    +        list($column, $row) = Coordinate::coordinateFromString($pCellReference);
    +        $column = Coordinate::columnIndexFromString($column);
    +        $id = 1024 + $column + $row;
    +        $id = substr($id, 0, 4);
    +
    +        // v:shape
    +        $objWriter->startElement('v:shape');
    +        $objWriter->writeAttribute('id', '_x0000_s' . $id);
    +        $objWriter->writeAttribute('type', '#_x0000_t202');
    +        $objWriter->writeAttribute('style', 'position:absolute;margin-left:' . $pComment->getMarginLeft() . ';margin-top:' . $pComment->getMarginTop() . ';width:' . $pComment->getWidth() . ';height:' . $pComment->getHeight() . ';z-index:1;visibility:' . ($pComment->getVisible() ? 'visible' : 'hidden'));
    +        $objWriter->writeAttribute('fillcolor', '#' . $pComment->getFillColor()->getRGB());
    +        $objWriter->writeAttribute('o:insetmode', 'auto');
    +
    +        // v:fill
    +        $objWriter->startElement('v:fill');
    +        $objWriter->writeAttribute('color2', '#' . $pComment->getFillColor()->getRGB());
    +        $objWriter->endElement();
    +
    +        // v:shadow
    +        $objWriter->startElement('v:shadow');
    +        $objWriter->writeAttribute('on', 't');
    +        $objWriter->writeAttribute('color', 'black');
    +        $objWriter->writeAttribute('obscured', 't');
    +        $objWriter->endElement();
    +
    +        // v:path
    +        $objWriter->startElement('v:path');
    +        $objWriter->writeAttribute('o:connecttype', 'none');
    +        $objWriter->endElement();
    +
    +        // v:textbox
    +        $objWriter->startElement('v:textbox');
    +        $objWriter->writeAttribute('style', 'mso-direction-alt:auto');
    +
    +        // div
    +        $objWriter->startElement('div');
    +        $objWriter->writeAttribute('style', 'text-align:left');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // x:ClientData
    +        $objWriter->startElement('x:ClientData');
    +        $objWriter->writeAttribute('ObjectType', 'Note');
    +
    +        // x:MoveWithCells
    +        $objWriter->writeElement('x:MoveWithCells', '');
    +
    +        // x:SizeWithCells
    +        $objWriter->writeElement('x:SizeWithCells', '');
    +
    +        // x:AutoFill
    +        $objWriter->writeElement('x:AutoFill', 'False');
    +
    +        // x:Row
    +        $objWriter->writeElement('x:Row', ($row - 1));
    +
    +        // x:Column
    +        $objWriter->writeElement('x:Column', ($column - 1));
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/ContentTypes.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/ContentTypes.php
    new file mode 100644
    index 00000000000..6b22d7134f9
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/ContentTypes.php
    @@ -0,0 +1,249 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\File;
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +class ContentTypes extends WriterPart
    +{
    +    /**
    +     * Write content types to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     * @param bool $includeCharts Flag indicating if we should include drawing details for charts
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeContentTypes(Spreadsheet $spreadsheet, $includeCharts = false)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Types
    +        $objWriter->startElement('Types');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/content-types');
    +
    +        // Theme
    +        $this->writeOverrideContentType($objWriter, '/xl/theme/theme1.xml', 'application/vnd.openxmlformats-officedocument.theme+xml');
    +
    +        // Styles
    +        $this->writeOverrideContentType($objWriter, '/xl/styles.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml');
    +
    +        // Rels
    +        $this->writeDefaultContentType($objWriter, 'rels', 'application/vnd.openxmlformats-package.relationships+xml');
    +
    +        // XML
    +        $this->writeDefaultContentType($objWriter, 'xml', 'application/xml');
    +
    +        // VML
    +        $this->writeDefaultContentType($objWriter, 'vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing');
    +
    +        // Workbook
    +        if ($spreadsheet->hasMacros()) { //Macros in workbook ?
    +            // Yes : not standard content but "macroEnabled"
    +            $this->writeOverrideContentType($objWriter, '/xl/workbook.xml', 'application/vnd.ms-excel.sheet.macroEnabled.main+xml');
    +            //... and define a new type for the VBA project
    +            // Better use Override, because we can use 'bin' also for xl\printerSettings\printerSettings1.bin
    +            $this->writeOverrideContentType($objWriter, '/xl/vbaProject.bin', 'application/vnd.ms-office.vbaProject');
    +            if ($spreadsheet->hasMacrosCertificate()) {
    +                // signed macros ?
    +                // Yes : add needed information
    +                $this->writeOverrideContentType($objWriter, '/xl/vbaProjectSignature.bin', 'application/vnd.ms-office.vbaProjectSignature');
    +            }
    +        } else {
    +            // no macros in workbook, so standard type
    +            $this->writeOverrideContentType($objWriter, '/xl/workbook.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml');
    +        }
    +
    +        // DocProps
    +        $this->writeOverrideContentType($objWriter, '/docProps/app.xml', 'application/vnd.openxmlformats-officedocument.extended-properties+xml');
    +
    +        $this->writeOverrideContentType($objWriter, '/docProps/core.xml', 'application/vnd.openxmlformats-package.core-properties+xml');
    +
    +        $customPropertyList = $spreadsheet->getProperties()->getCustomProperties();
    +        if (!empty($customPropertyList)) {
    +            $this->writeOverrideContentType($objWriter, '/docProps/custom.xml', 'application/vnd.openxmlformats-officedocument.custom-properties+xml');
    +        }
    +
    +        // Worksheets
    +        $sheetCount = $spreadsheet->getSheetCount();
    +        for ($i = 0; $i < $sheetCount; ++$i) {
    +            $this->writeOverrideContentType($objWriter, '/xl/worksheets/sheet' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml');
    +        }
    +
    +        // Shared strings
    +        $this->writeOverrideContentType($objWriter, '/xl/sharedStrings.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml');
    +
    +        // Add worksheet relationship content types
    +        $unparsedLoadedData = $spreadsheet->getUnparsedLoadedData();
    +        $chart = 1;
    +        for ($i = 0; $i < $sheetCount; ++$i) {
    +            $drawings = $spreadsheet->getSheet($i)->getDrawingCollection();
    +            $drawingCount = count($drawings);
    +            $chartCount = ($includeCharts) ? $spreadsheet->getSheet($i)->getChartCount() : 0;
    +            $hasUnparsedDrawing = isset($unparsedLoadedData['sheets'][$spreadsheet->getSheet($i)->getCodeName()]['drawingOriginalIds']);
    +
    +            //    We need a drawing relationship for the worksheet if we have either drawings or charts
    +            if (($drawingCount > 0) || ($chartCount > 0) || $hasUnparsedDrawing) {
    +                $this->writeOverrideContentType($objWriter, '/xl/drawings/drawing' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.drawing+xml');
    +            }
    +
    +            //    If we have charts, then we need a chart relationship for every individual chart
    +            if ($chartCount > 0) {
    +                for ($c = 0; $c < $chartCount; ++$c) {
    +                    $this->writeOverrideContentType($objWriter, '/xl/charts/chart' . $chart++ . '.xml', 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml');
    +                }
    +            }
    +        }
    +
    +        // Comments
    +        for ($i = 0; $i < $sheetCount; ++$i) {
    +            if (count($spreadsheet->getSheet($i)->getComments()) > 0) {
    +                $this->writeOverrideContentType($objWriter, '/xl/comments' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml');
    +            }
    +        }
    +
    +        // Add media content-types
    +        $aMediaContentTypes = [];
    +        $mediaCount = $this->getParentWriter()->getDrawingHashTable()->count();
    +        for ($i = 0; $i < $mediaCount; ++$i) {
    +            $extension = '';
    +            $mimeType = '';
    +
    +            if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof \PhpOffice\PhpSpreadsheet\Worksheet\Drawing) {
    +                $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension());
    +                $mimeType = $this->getImageMimeType($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath());
    +            } elseif ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof MemoryDrawing) {
    +                $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType());
    +                $extension = explode('/', $extension);
    +                $extension = $extension[1];
    +
    +                $mimeType = $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType();
    +            }
    +
    +            if (!isset($aMediaContentTypes[$extension])) {
    +                $aMediaContentTypes[$extension] = $mimeType;
    +
    +                $this->writeDefaultContentType($objWriter, $extension, $mimeType);
    +            }
    +        }
    +        if ($spreadsheet->hasRibbonBinObjects()) {
    +            // Some additional objects in the ribbon ?
    +            // we need to write "Extension" but not already write for media content
    +            $tabRibbonTypes = array_diff($spreadsheet->getRibbonBinObjects('types'), array_keys($aMediaContentTypes));
    +            foreach ($tabRibbonTypes as $aRibbonType) {
    +                $mimeType = 'image/.' . $aRibbonType; //we wrote $mimeType like customUI Editor
    +                $this->writeDefaultContentType($objWriter, $aRibbonType, $mimeType);
    +            }
    +        }
    +        $sheetCount = $spreadsheet->getSheetCount();
    +        for ($i = 0; $i < $sheetCount; ++$i) {
    +            if (count($spreadsheet->getSheet($i)->getHeaderFooter()->getImages()) > 0) {
    +                foreach ($spreadsheet->getSheet($i)->getHeaderFooter()->getImages() as $image) {
    +                    if (!isset($aMediaContentTypes[strtolower($image->getExtension())])) {
    +                        $aMediaContentTypes[strtolower($image->getExtension())] = $this->getImageMimeType($image->getPath());
    +
    +                        $this->writeDefaultContentType($objWriter, strtolower($image->getExtension()), $aMediaContentTypes[strtolower($image->getExtension())]);
    +                    }
    +                }
    +            }
    +        }
    +
    +        // unparsed defaults
    +        if (isset($unparsedLoadedData['default_content_types'])) {
    +            foreach ($unparsedLoadedData['default_content_types'] as $extName => $contentType) {
    +                $this->writeDefaultContentType($objWriter, $extName, $contentType);
    +            }
    +        }
    +
    +        // unparsed overrides
    +        if (isset($unparsedLoadedData['override_content_types'])) {
    +            foreach ($unparsedLoadedData['override_content_types'] as $partName => $overrideType) {
    +                $this->writeOverrideContentType($objWriter, $partName, $overrideType);
    +            }
    +        }
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Get image mime type.
    +     *
    +     * @param string $pFile Filename
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string Mime Type
    +     */
    +    private function getImageMimeType($pFile)
    +    {
    +        if (File::fileExists($pFile)) {
    +            $image = getimagesize($pFile);
    +
    +            return image_type_to_mime_type($image[2]);
    +        }
    +
    +        throw new WriterException("File $pFile does not exist");
    +    }
    +
    +    /**
    +     * Write Default content type.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param string $pPartname Part name
    +     * @param string $pContentType Content type
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeDefaultContentType(XMLWriter $objWriter, $pPartname, $pContentType)
    +    {
    +        if ($pPartname != '' && $pContentType != '') {
    +            // Write content type
    +            $objWriter->startElement('Default');
    +            $objWriter->writeAttribute('Extension', $pPartname);
    +            $objWriter->writeAttribute('ContentType', $pContentType);
    +            $objWriter->endElement();
    +        } else {
    +            throw new WriterException('Invalid parameters passed.');
    +        }
    +    }
    +
    +    /**
    +     * Write Override content type.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param string $pPartname Part name
    +     * @param string $pContentType Content type
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeOverrideContentType(XMLWriter $objWriter, $pPartname, $pContentType)
    +    {
    +        if ($pPartname != '' && $pContentType != '') {
    +            // Write content type
    +            $objWriter->startElement('Override');
    +            $objWriter->writeAttribute('PartName', $pPartname);
    +            $objWriter->writeAttribute('ContentType', $pContentType);
    +            $objWriter->endElement();
    +        } else {
    +            throw new WriterException('Invalid parameters passed.');
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/DocProps.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/DocProps.php
    new file mode 100644
    index 00000000000..2a18d5c7e3d
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/DocProps.php
    @@ -0,0 +1,251 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class DocProps extends WriterPart
    +{
    +    /**
    +     * Write docProps/app.xml to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeDocPropsApp(Spreadsheet $spreadsheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Properties
    +        $objWriter->startElement('Properties');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties');
    +        $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
    +
    +        // Application
    +        $objWriter->writeElement('Application', 'Microsoft Excel');
    +
    +        // DocSecurity
    +        $objWriter->writeElement('DocSecurity', '0');
    +
    +        // ScaleCrop
    +        $objWriter->writeElement('ScaleCrop', 'false');
    +
    +        // HeadingPairs
    +        $objWriter->startElement('HeadingPairs');
    +
    +        // Vector
    +        $objWriter->startElement('vt:vector');
    +        $objWriter->writeAttribute('size', '2');
    +        $objWriter->writeAttribute('baseType', 'variant');
    +
    +        // Variant
    +        $objWriter->startElement('vt:variant');
    +        $objWriter->writeElement('vt:lpstr', 'Worksheets');
    +        $objWriter->endElement();
    +
    +        // Variant
    +        $objWriter->startElement('vt:variant');
    +        $objWriter->writeElement('vt:i4', $spreadsheet->getSheetCount());
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // TitlesOfParts
    +        $objWriter->startElement('TitlesOfParts');
    +
    +        // Vector
    +        $objWriter->startElement('vt:vector');
    +        $objWriter->writeAttribute('size', $spreadsheet->getSheetCount());
    +        $objWriter->writeAttribute('baseType', 'lpstr');
    +
    +        $sheetCount = $spreadsheet->getSheetCount();
    +        for ($i = 0; $i < $sheetCount; ++$i) {
    +            $objWriter->writeElement('vt:lpstr', $spreadsheet->getSheet($i)->getTitle());
    +        }
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // Company
    +        $objWriter->writeElement('Company', $spreadsheet->getProperties()->getCompany());
    +
    +        // Company
    +        $objWriter->writeElement('Manager', $spreadsheet->getProperties()->getManager());
    +
    +        // LinksUpToDate
    +        $objWriter->writeElement('LinksUpToDate', 'false');
    +
    +        // SharedDoc
    +        $objWriter->writeElement('SharedDoc', 'false');
    +
    +        // HyperlinksChanged
    +        $objWriter->writeElement('HyperlinksChanged', 'false');
    +
    +        // AppVersion
    +        $objWriter->writeElement('AppVersion', '12.0000');
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write docProps/core.xml to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeDocPropsCore(Spreadsheet $spreadsheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // cp:coreProperties
    +        $objWriter->startElement('cp:coreProperties');
    +        $objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties');
    +        $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
    +        $objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/');
    +        $objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/');
    +        $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
    +
    +        // dc:creator
    +        $objWriter->writeElement('dc:creator', $spreadsheet->getProperties()->getCreator());
    +
    +        // cp:lastModifiedBy
    +        $objWriter->writeElement('cp:lastModifiedBy', $spreadsheet->getProperties()->getLastModifiedBy());
    +
    +        // dcterms:created
    +        $objWriter->startElement('dcterms:created');
    +        $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
    +        $objWriter->writeRawData(date(DATE_W3C, $spreadsheet->getProperties()->getCreated()));
    +        $objWriter->endElement();
    +
    +        // dcterms:modified
    +        $objWriter->startElement('dcterms:modified');
    +        $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
    +        $objWriter->writeRawData(date(DATE_W3C, $spreadsheet->getProperties()->getModified()));
    +        $objWriter->endElement();
    +
    +        // dc:title
    +        $objWriter->writeElement('dc:title', $spreadsheet->getProperties()->getTitle());
    +
    +        // dc:description
    +        $objWriter->writeElement('dc:description', $spreadsheet->getProperties()->getDescription());
    +
    +        // dc:subject
    +        $objWriter->writeElement('dc:subject', $spreadsheet->getProperties()->getSubject());
    +
    +        // cp:keywords
    +        $objWriter->writeElement('cp:keywords', $spreadsheet->getProperties()->getKeywords());
    +
    +        // cp:category
    +        $objWriter->writeElement('cp:category', $spreadsheet->getProperties()->getCategory());
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write docProps/custom.xml to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeDocPropsCustom(Spreadsheet $spreadsheet)
    +    {
    +        $customPropertyList = $spreadsheet->getProperties()->getCustomProperties();
    +        if (empty($customPropertyList)) {
    +            return;
    +        }
    +
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // cp:coreProperties
    +        $objWriter->startElement('Properties');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties');
    +        $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
    +
    +        foreach ($customPropertyList as $key => $customProperty) {
    +            $propertyValue = $spreadsheet->getProperties()->getCustomPropertyValue($customProperty);
    +            $propertyType = $spreadsheet->getProperties()->getCustomPropertyType($customProperty);
    +
    +            $objWriter->startElement('property');
    +            $objWriter->writeAttribute('fmtid', '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}');
    +            $objWriter->writeAttribute('pid', $key + 2);
    +            $objWriter->writeAttribute('name', $customProperty);
    +
    +            switch ($propertyType) {
    +                case 'i':
    +                    $objWriter->writeElement('vt:i4', $propertyValue);
    +
    +                    break;
    +                case 'f':
    +                    $objWriter->writeElement('vt:r8', $propertyValue);
    +
    +                    break;
    +                case 'b':
    +                    $objWriter->writeElement('vt:bool', ($propertyValue) ? 'true' : 'false');
    +
    +                    break;
    +                case 'd':
    +                    $objWriter->startElement('vt:filetime');
    +                    $objWriter->writeRawData(date(DATE_W3C, $propertyValue));
    +                    $objWriter->endElement();
    +
    +                    break;
    +                default:
    +                    $objWriter->writeElement('vt:lpwstr', $propertyValue);
    +
    +                    break;
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Drawing.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Drawing.php
    new file mode 100644
    index 00000000000..08256a1d5b7
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Drawing.php
    @@ -0,0 +1,519 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Worksheet\BaseDrawing;
    +use PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooterDrawing;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +class Drawing extends WriterPart
    +{
    +    /**
    +     * Write drawings to XML format.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet
    +     * @param bool $includeCharts Flag indicating if we should include drawing details for charts
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeDrawings(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet, $includeCharts = false)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // xdr:wsDr
    +        $objWriter->startElement('xdr:wsDr');
    +        $objWriter->writeAttribute('xmlns:xdr', 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing');
    +        $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
    +
    +        // Loop through images and write drawings
    +        $i = 1;
    +        $iterator = $pWorksheet->getDrawingCollection()->getIterator();
    +        while ($iterator->valid()) {
    +            /** @var BaseDrawing $pDrawing */
    +            $pDrawing = $iterator->current();
    +            $pRelationId = $i;
    +            $hlinkClickId = $pDrawing->getHyperlink() === null ? null : ++$i;
    +
    +            $this->writeDrawing($objWriter, $pDrawing, $pRelationId, $hlinkClickId);
    +
    +            $iterator->next();
    +            ++$i;
    +        }
    +
    +        if ($includeCharts) {
    +            $chartCount = $pWorksheet->getChartCount();
    +            // Loop through charts and write the chart position
    +            if ($chartCount > 0) {
    +                for ($c = 0; $c < $chartCount; ++$c) {
    +                    $this->writeChart($objWriter, $pWorksheet->getChartByIndex($c), $c + $i);
    +                }
    +            }
    +        }
    +
    +        // unparsed AlternateContent
    +        $unparsedLoadedData = $pWorksheet->getParent()->getUnparsedLoadedData();
    +        if (isset($unparsedLoadedData['sheets'][$pWorksheet->getCodeName()]['drawingAlternateContents'])) {
    +            foreach ($unparsedLoadedData['sheets'][$pWorksheet->getCodeName()]['drawingAlternateContents'] as $drawingAlternateContent) {
    +                $objWriter->writeRaw($drawingAlternateContent);
    +            }
    +        }
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write drawings to XML format.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param \PhpOffice\PhpSpreadsheet\Chart\Chart $pChart
    +     * @param int $pRelationId
    +     */
    +    public function writeChart(XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Chart\Chart $pChart, $pRelationId = -1)
    +    {
    +        $tl = $pChart->getTopLeftPosition();
    +        $tl['colRow'] = Coordinate::coordinateFromString($tl['cell']);
    +        $br = $pChart->getBottomRightPosition();
    +        $br['colRow'] = Coordinate::coordinateFromString($br['cell']);
    +
    +        $objWriter->startElement('xdr:twoCellAnchor');
    +
    +        $objWriter->startElement('xdr:from');
    +        $objWriter->writeElement('xdr:col', Coordinate::columnIndexFromString($tl['colRow'][0]) - 1);
    +        $objWriter->writeElement('xdr:colOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($tl['xOffset']));
    +        $objWriter->writeElement('xdr:row', $tl['colRow'][1] - 1);
    +        $objWriter->writeElement('xdr:rowOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($tl['yOffset']));
    +        $objWriter->endElement();
    +        $objWriter->startElement('xdr:to');
    +        $objWriter->writeElement('xdr:col', Coordinate::columnIndexFromString($br['colRow'][0]) - 1);
    +        $objWriter->writeElement('xdr:colOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($br['xOffset']));
    +        $objWriter->writeElement('xdr:row', $br['colRow'][1] - 1);
    +        $objWriter->writeElement('xdr:rowOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($br['yOffset']));
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('xdr:graphicFrame');
    +        $objWriter->writeAttribute('macro', '');
    +        $objWriter->startElement('xdr:nvGraphicFramePr');
    +        $objWriter->startElement('xdr:cNvPr');
    +        $objWriter->writeAttribute('name', 'Chart ' . $pRelationId);
    +        $objWriter->writeAttribute('id', 1025 * $pRelationId);
    +        $objWriter->endElement();
    +        $objWriter->startElement('xdr:cNvGraphicFramePr');
    +        $objWriter->startElement('a:graphicFrameLocks');
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('xdr:xfrm');
    +        $objWriter->startElement('a:off');
    +        $objWriter->writeAttribute('x', '0');
    +        $objWriter->writeAttribute('y', '0');
    +        $objWriter->endElement();
    +        $objWriter->startElement('a:ext');
    +        $objWriter->writeAttribute('cx', '0');
    +        $objWriter->writeAttribute('cy', '0');
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('a:graphic');
    +        $objWriter->startElement('a:graphicData');
    +        $objWriter->writeAttribute('uri', 'http://schemas.openxmlformats.org/drawingml/2006/chart');
    +        $objWriter->startElement('c:chart');
    +        $objWriter->writeAttribute('xmlns:c', 'http://schemas.openxmlformats.org/drawingml/2006/chart');
    +        $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
    +        $objWriter->writeAttribute('r:id', 'rId' . $pRelationId);
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        $objWriter->startElement('xdr:clientData');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write drawings to XML format.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param BaseDrawing $pDrawing
    +     * @param int $pRelationId
    +     * @param null|int $hlinkClickId
    +     *
    +     * @throws WriterException
    +     */
    +    public function writeDrawing(XMLWriter $objWriter, BaseDrawing $pDrawing, $pRelationId = -1, $hlinkClickId = null)
    +    {
    +        if ($pRelationId >= 0) {
    +            // xdr:oneCellAnchor
    +            $objWriter->startElement('xdr:oneCellAnchor');
    +            // Image location
    +            $aCoordinates = Coordinate::coordinateFromString($pDrawing->getCoordinates());
    +            $aCoordinates[0] = Coordinate::columnIndexFromString($aCoordinates[0]);
    +
    +            // xdr:from
    +            $objWriter->startElement('xdr:from');
    +            $objWriter->writeElement('xdr:col', $aCoordinates[0] - 1);
    +            $objWriter->writeElement('xdr:colOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getOffsetX()));
    +            $objWriter->writeElement('xdr:row', $aCoordinates[1] - 1);
    +            $objWriter->writeElement('xdr:rowOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getOffsetY()));
    +            $objWriter->endElement();
    +
    +            // xdr:ext
    +            $objWriter->startElement('xdr:ext');
    +            $objWriter->writeAttribute('cx', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getWidth()));
    +            $objWriter->writeAttribute('cy', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getHeight()));
    +            $objWriter->endElement();
    +
    +            // xdr:pic
    +            $objWriter->startElement('xdr:pic');
    +
    +            // xdr:nvPicPr
    +            $objWriter->startElement('xdr:nvPicPr');
    +
    +            // xdr:cNvPr
    +            $objWriter->startElement('xdr:cNvPr');
    +            $objWriter->writeAttribute('id', $pRelationId);
    +            $objWriter->writeAttribute('name', $pDrawing->getName());
    +            $objWriter->writeAttribute('descr', $pDrawing->getDescription());
    +
    +            //a:hlinkClick
    +            $this->writeHyperLinkDrawing($objWriter, $hlinkClickId);
    +
    +            $objWriter->endElement();
    +
    +            // xdr:cNvPicPr
    +            $objWriter->startElement('xdr:cNvPicPr');
    +
    +            // a:picLocks
    +            $objWriter->startElement('a:picLocks');
    +            $objWriter->writeAttribute('noChangeAspect', '1');
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +
    +            // xdr:blipFill
    +            $objWriter->startElement('xdr:blipFill');
    +
    +            // a:blip
    +            $objWriter->startElement('a:blip');
    +            $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
    +            $objWriter->writeAttribute('r:embed', 'rId' . $pRelationId);
    +            $objWriter->endElement();
    +
    +            // a:stretch
    +            $objWriter->startElement('a:stretch');
    +            $objWriter->writeElement('a:fillRect', null);
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +
    +            // xdr:spPr
    +            $objWriter->startElement('xdr:spPr');
    +
    +            // a:xfrm
    +            $objWriter->startElement('a:xfrm');
    +            $objWriter->writeAttribute('rot', \PhpOffice\PhpSpreadsheet\Shared\Drawing::degreesToAngle($pDrawing->getRotation()));
    +            $objWriter->endElement();
    +
    +            // a:prstGeom
    +            $objWriter->startElement('a:prstGeom');
    +            $objWriter->writeAttribute('prst', 'rect');
    +
    +            // a:avLst
    +            $objWriter->writeElement('a:avLst', null);
    +
    +            $objWriter->endElement();
    +
    +            if ($pDrawing->getShadow()->getVisible()) {
    +                // a:effectLst
    +                $objWriter->startElement('a:effectLst');
    +
    +                // a:outerShdw
    +                $objWriter->startElement('a:outerShdw');
    +                $objWriter->writeAttribute('blurRad', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getShadow()->getBlurRadius()));
    +                $objWriter->writeAttribute('dist', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getShadow()->getDistance()));
    +                $objWriter->writeAttribute('dir', \PhpOffice\PhpSpreadsheet\Shared\Drawing::degreesToAngle($pDrawing->getShadow()->getDirection()));
    +                $objWriter->writeAttribute('algn', $pDrawing->getShadow()->getAlignment());
    +                $objWriter->writeAttribute('rotWithShape', '0');
    +
    +                // a:srgbClr
    +                $objWriter->startElement('a:srgbClr');
    +                $objWriter->writeAttribute('val', $pDrawing->getShadow()->getColor()->getRGB());
    +
    +                // a:alpha
    +                $objWriter->startElement('a:alpha');
    +                $objWriter->writeAttribute('val', $pDrawing->getShadow()->getAlpha() * 1000);
    +                $objWriter->endElement();
    +
    +                $objWriter->endElement();
    +
    +                $objWriter->endElement();
    +
    +                $objWriter->endElement();
    +            }
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +
    +            // xdr:clientData
    +            $objWriter->writeElement('xdr:clientData', null);
    +
    +            $objWriter->endElement();
    +        } else {
    +            throw new WriterException('Invalid parameters passed.');
    +        }
    +    }
    +
    +    /**
    +     * Write VML header/footer images to XML format.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeVMLHeaderFooterImages(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Header/footer images
    +        $images = $pWorksheet->getHeaderFooter()->getImages();
    +
    +        // xml
    +        $objWriter->startElement('xml');
    +        $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
    +        $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office');
    +        $objWriter->writeAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel');
    +
    +        // o:shapelayout
    +        $objWriter->startElement('o:shapelayout');
    +        $objWriter->writeAttribute('v:ext', 'edit');
    +
    +        // o:idmap
    +        $objWriter->startElement('o:idmap');
    +        $objWriter->writeAttribute('v:ext', 'edit');
    +        $objWriter->writeAttribute('data', '1');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // v:shapetype
    +        $objWriter->startElement('v:shapetype');
    +        $objWriter->writeAttribute('id', '_x0000_t75');
    +        $objWriter->writeAttribute('coordsize', '21600,21600');
    +        $objWriter->writeAttribute('o:spt', '75');
    +        $objWriter->writeAttribute('o:preferrelative', 't');
    +        $objWriter->writeAttribute('path', 'm@4@5l@4@11@9@11@9@5xe');
    +        $objWriter->writeAttribute('filled', 'f');
    +        $objWriter->writeAttribute('stroked', 'f');
    +
    +        // v:stroke
    +        $objWriter->startElement('v:stroke');
    +        $objWriter->writeAttribute('joinstyle', 'miter');
    +        $objWriter->endElement();
    +
    +        // v:formulas
    +        $objWriter->startElement('v:formulas');
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'if lineDrawn pixelLineWidth 0');
    +        $objWriter->endElement();
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'sum @0 1 0');
    +        $objWriter->endElement();
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'sum 0 0 @1');
    +        $objWriter->endElement();
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'prod @2 1 2');
    +        $objWriter->endElement();
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'prod @3 21600 pixelWidth');
    +        $objWriter->endElement();
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'prod @3 21600 pixelHeight');
    +        $objWriter->endElement();
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'sum @0 0 1');
    +        $objWriter->endElement();
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'prod @6 1 2');
    +        $objWriter->endElement();
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'prod @7 21600 pixelWidth');
    +        $objWriter->endElement();
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'sum @8 21600 0');
    +        $objWriter->endElement();
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'prod @7 21600 pixelHeight');
    +        $objWriter->endElement();
    +
    +        // v:f
    +        $objWriter->startElement('v:f');
    +        $objWriter->writeAttribute('eqn', 'sum @10 21600 0');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // v:path
    +        $objWriter->startElement('v:path');
    +        $objWriter->writeAttribute('o:extrusionok', 'f');
    +        $objWriter->writeAttribute('gradientshapeok', 't');
    +        $objWriter->writeAttribute('o:connecttype', 'rect');
    +        $objWriter->endElement();
    +
    +        // o:lock
    +        $objWriter->startElement('o:lock');
    +        $objWriter->writeAttribute('v:ext', 'edit');
    +        $objWriter->writeAttribute('aspectratio', 't');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // Loop through images
    +        foreach ($images as $key => $value) {
    +            $this->writeVMLHeaderFooterImage($objWriter, $key, $value);
    +        }
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write VML comment to XML format.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param string $pReference Reference
    +     * @param HeaderFooterDrawing $pImage Image
    +     */
    +    private function writeVMLHeaderFooterImage(XMLWriter $objWriter, $pReference, HeaderFooterDrawing $pImage)
    +    {
    +        // Calculate object id
    +        preg_match('{(\d+)}', md5($pReference), $m);
    +        $id = 1500 + (substr($m[1], 0, 2) * 1);
    +
    +        // Calculate offset
    +        $width = $pImage->getWidth();
    +        $height = $pImage->getHeight();
    +        $marginLeft = $pImage->getOffsetX();
    +        $marginTop = $pImage->getOffsetY();
    +
    +        // v:shape
    +        $objWriter->startElement('v:shape');
    +        $objWriter->writeAttribute('id', $pReference);
    +        $objWriter->writeAttribute('o:spid', '_x0000_s' . $id);
    +        $objWriter->writeAttribute('type', '#_x0000_t75');
    +        $objWriter->writeAttribute('style', "position:absolute;margin-left:{$marginLeft}px;margin-top:{$marginTop}px;width:{$width}px;height:{$height}px;z-index:1");
    +
    +        // v:imagedata
    +        $objWriter->startElement('v:imagedata');
    +        $objWriter->writeAttribute('o:relid', 'rId' . $pReference);
    +        $objWriter->writeAttribute('o:title', $pImage->getName());
    +        $objWriter->endElement();
    +
    +        // o:lock
    +        $objWriter->startElement('o:lock');
    +        $objWriter->writeAttribute('v:ext', 'edit');
    +        $objWriter->writeAttribute('textRotation', 't');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Get an array of all drawings.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @return \PhpOffice\PhpSpreadsheet\Worksheet\Drawing[] All drawings in PhpSpreadsheet
    +     */
    +    public function allDrawings(Spreadsheet $spreadsheet)
    +    {
    +        // Get an array of all drawings
    +        $aDrawings = [];
    +
    +        // Loop through PhpSpreadsheet
    +        $sheetCount = $spreadsheet->getSheetCount();
    +        for ($i = 0; $i < $sheetCount; ++$i) {
    +            // Loop through images and add to array
    +            $iterator = $spreadsheet->getSheet($i)->getDrawingCollection()->getIterator();
    +            while ($iterator->valid()) {
    +                $aDrawings[] = $iterator->current();
    +
    +                $iterator->next();
    +            }
    +        }
    +
    +        return $aDrawings;
    +    }
    +
    +    /**
    +     * @param XMLWriter $objWriter
    +     * @param null|int $hlinkClickId
    +     */
    +    private function writeHyperLinkDrawing(XMLWriter $objWriter, $hlinkClickId)
    +    {
    +        if ($hlinkClickId === null) {
    +            return;
    +        }
    +
    +        $objWriter->startElement('a:hlinkClick');
    +        $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
    +        $objWriter->writeAttribute('r:id', 'rId' . $hlinkClickId);
    +        $objWriter->endElement();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Rels.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Rels.php
    new file mode 100644
    index 00000000000..76c196b4495
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Rels.php
    @@ -0,0 +1,466 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +class Rels extends WriterPart
    +{
    +    /**
    +     * Write relationships to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeRelationships(Spreadsheet $spreadsheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Relationships
    +        $objWriter->startElement('Relationships');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
    +
    +        $customPropertyList = $spreadsheet->getProperties()->getCustomProperties();
    +        if (!empty($customPropertyList)) {
    +            // Relationship docProps/app.xml
    +            $this->writeRelationship(
    +                $objWriter,
    +                4,
    +                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',
    +                'docProps/custom.xml'
    +            );
    +        }
    +
    +        // Relationship docProps/app.xml
    +        $this->writeRelationship(
    +            $objWriter,
    +            3,
    +            'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',
    +            'docProps/app.xml'
    +        );
    +
    +        // Relationship docProps/core.xml
    +        $this->writeRelationship(
    +            $objWriter,
    +            2,
    +            'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',
    +            'docProps/core.xml'
    +        );
    +
    +        // Relationship xl/workbook.xml
    +        $this->writeRelationship(
    +            $objWriter,
    +            1,
    +            'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',
    +            'xl/workbook.xml'
    +        );
    +        // a custom UI in workbook ?
    +        if ($spreadsheet->hasRibbon()) {
    +            $this->writeRelationShip(
    +                $objWriter,
    +                5,
    +                'http://schemas.microsoft.com/office/2006/relationships/ui/extensibility',
    +                $spreadsheet->getRibbonXMLData('target')
    +            );
    +        }
    +
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write workbook relationships to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeWorkbookRelationships(Spreadsheet $spreadsheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Relationships
    +        $objWriter->startElement('Relationships');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
    +
    +        // Relationship styles.xml
    +        $this->writeRelationship(
    +            $objWriter,
    +            1,
    +            'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',
    +            'styles.xml'
    +        );
    +
    +        // Relationship theme/theme1.xml
    +        $this->writeRelationship(
    +            $objWriter,
    +            2,
    +            'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',
    +            'theme/theme1.xml'
    +        );
    +
    +        // Relationship sharedStrings.xml
    +        $this->writeRelationship(
    +            $objWriter,
    +            3,
    +            'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings',
    +            'sharedStrings.xml'
    +        );
    +
    +        // Relationships with sheets
    +        $sheetCount = $spreadsheet->getSheetCount();
    +        for ($i = 0; $i < $sheetCount; ++$i) {
    +            $this->writeRelationship(
    +                $objWriter,
    +                ($i + 1 + 3),
    +                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet',
    +                'worksheets/sheet' . ($i + 1) . '.xml'
    +            );
    +        }
    +        // Relationships for vbaProject if needed
    +        // id : just after the last sheet
    +        if ($spreadsheet->hasMacros()) {
    +            $this->writeRelationShip(
    +                $objWriter,
    +                ($i + 1 + 3),
    +                'http://schemas.microsoft.com/office/2006/relationships/vbaProject',
    +                'vbaProject.bin'
    +            );
    +            ++$i; //increment i if needed for an another relation
    +        }
    +
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write worksheet relationships to XML format.
    +     *
    +     * Numbering is as follows:
    +     *     rId1                 - Drawings
    +     *  rId_hyperlink_x     - Hyperlinks
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet
    +     * @param int $pWorksheetId
    +     * @param bool $includeCharts Flag indicating if we should write charts
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeWorksheetRelationships(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet, $pWorksheetId = 1, $includeCharts = false)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Relationships
    +        $objWriter->startElement('Relationships');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
    +
    +        // Write drawing relationships?
    +        $d = 0;
    +        $drawingOriginalIds = [];
    +        $unparsedLoadedData = $pWorksheet->getParent()->getUnparsedLoadedData();
    +        if (isset($unparsedLoadedData['sheets'][$pWorksheet->getCodeName()]['drawingOriginalIds'])) {
    +            $drawingOriginalIds = $unparsedLoadedData['sheets'][$pWorksheet->getCodeName()]['drawingOriginalIds'];
    +        }
    +
    +        if ($includeCharts) {
    +            $charts = $pWorksheet->getChartCollection();
    +        } else {
    +            $charts = [];
    +        }
    +
    +        if (($pWorksheet->getDrawingCollection()->count() > 0) || (count($charts) > 0) || $drawingOriginalIds) {
    +            $relPath = '../drawings/drawing' . $pWorksheetId . '.xml';
    +            $rId = ++$d;
    +
    +            if (isset($drawingOriginalIds[$relPath])) {
    +                $rId = (int) (substr($drawingOriginalIds[$relPath], 3));
    +            }
    +
    +            $this->writeRelationship(
    +                $objWriter,
    +                $rId,
    +                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',
    +                $relPath
    +            );
    +        }
    +
    +        // Write hyperlink relationships?
    +        $i = 1;
    +        foreach ($pWorksheet->getHyperlinkCollection() as $hyperlink) {
    +            if (!$hyperlink->isInternal()) {
    +                $this->writeRelationship(
    +                    $objWriter,
    +                    '_hyperlink_' . $i,
    +                    'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',
    +                    $hyperlink->getUrl(),
    +                    'External'
    +                );
    +
    +                ++$i;
    +            }
    +        }
    +
    +        // Write comments relationship?
    +        $i = 1;
    +        if (count($pWorksheet->getComments()) > 0) {
    +            $this->writeRelationship(
    +                $objWriter,
    +                '_comments_vml' . $i,
    +                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing',
    +                '../drawings/vmlDrawing' . $pWorksheetId . '.vml'
    +            );
    +
    +            $this->writeRelationship(
    +                $objWriter,
    +                '_comments' . $i,
    +                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments',
    +                '../comments' . $pWorksheetId . '.xml'
    +            );
    +        }
    +
    +        // Write header/footer relationship?
    +        $i = 1;
    +        if (count($pWorksheet->getHeaderFooter()->getImages()) > 0) {
    +            $this->writeRelationship(
    +                $objWriter,
    +                '_headerfooter_vml' . $i,
    +                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing',
    +                '../drawings/vmlDrawingHF' . $pWorksheetId . '.vml'
    +            );
    +        }
    +
    +        $this->writeUnparsedRelationship($pWorksheet, $objWriter, 'ctrlProps', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/ctrlProp');
    +        $this->writeUnparsedRelationship($pWorksheet, $objWriter, 'vmlDrawings', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing');
    +        $this->writeUnparsedRelationship($pWorksheet, $objWriter, 'printerSettings', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings');
    +
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +
    +    private function writeUnparsedRelationship(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet, XMLWriter $objWriter, $relationship, $type)
    +    {
    +        $unparsedLoadedData = $pWorksheet->getParent()->getUnparsedLoadedData();
    +        if (!isset($unparsedLoadedData['sheets'][$pWorksheet->getCodeName()][$relationship])) {
    +            return;
    +        }
    +
    +        foreach ($unparsedLoadedData['sheets'][$pWorksheet->getCodeName()][$relationship] as $rId => $value) {
    +            $this->writeRelationship(
    +                $objWriter,
    +                $rId,
    +                $type,
    +                $value['relFilePath']
    +            );
    +        }
    +    }
    +
    +    /**
    +     * Write drawing relationships to XML format.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet
    +     * @param int &$chartRef Chart ID
    +     * @param bool $includeCharts Flag indicating if we should write charts
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeDrawingRelationships(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet, &$chartRef, $includeCharts = false)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Relationships
    +        $objWriter->startElement('Relationships');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
    +
    +        // Loop through images and write relationships
    +        $i = 1;
    +        $iterator = $pWorksheet->getDrawingCollection()->getIterator();
    +        while ($iterator->valid()) {
    +            if ($iterator->current() instanceof \PhpOffice\PhpSpreadsheet\Worksheet\Drawing
    +                || $iterator->current() instanceof MemoryDrawing) {
    +                // Write relationship for image drawing
    +                /** @var \PhpOffice\PhpSpreadsheet\Worksheet\Drawing $drawing */
    +                $drawing = $iterator->current();
    +                $this->writeRelationship(
    +                    $objWriter,
    +                    $i,
    +                    'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
    +                    '../media/' . str_replace(' ', '', $drawing->getIndexedFilename())
    +                );
    +
    +                $i = $this->writeDrawingHyperLink($objWriter, $drawing, $i);
    +            }
    +
    +            $iterator->next();
    +            ++$i;
    +        }
    +
    +        if ($includeCharts) {
    +            // Loop through charts and write relationships
    +            $chartCount = $pWorksheet->getChartCount();
    +            if ($chartCount > 0) {
    +                for ($c = 0; $c < $chartCount; ++$c) {
    +                    $this->writeRelationship(
    +                        $objWriter,
    +                        $i++,
    +                        'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart',
    +                        '../charts/chart' . ++$chartRef . '.xml'
    +                    );
    +                }
    +            }
    +        }
    +
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write header/footer drawing relationships to XML format.
    +     *
    +     * @param \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeHeaderFooterDrawingRelationships(\PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $pWorksheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Relationships
    +        $objWriter->startElement('Relationships');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
    +
    +        // Loop through images and write relationships
    +        foreach ($pWorksheet->getHeaderFooter()->getImages() as $key => $value) {
    +            // Write relationship for image drawing
    +            $this->writeRelationship(
    +                $objWriter,
    +                $key,
    +                'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
    +                '../media/' . $value->getIndexedFilename()
    +            );
    +        }
    +
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write Override content type.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param int $pId Relationship ID. rId will be prepended!
    +     * @param string $pType Relationship type
    +     * @param string $pTarget Relationship target
    +     * @param string $pTargetMode Relationship target mode
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeRelationship(XMLWriter $objWriter, $pId, $pType, $pTarget, $pTargetMode = '')
    +    {
    +        if ($pType != '' && $pTarget != '') {
    +            // Write relationship
    +            $objWriter->startElement('Relationship');
    +            $objWriter->writeAttribute('Id', 'rId' . $pId);
    +            $objWriter->writeAttribute('Type', $pType);
    +            $objWriter->writeAttribute('Target', $pTarget);
    +
    +            if ($pTargetMode != '') {
    +                $objWriter->writeAttribute('TargetMode', $pTargetMode);
    +            }
    +
    +            $objWriter->endElement();
    +        } else {
    +            throw new WriterException('Invalid parameters passed.');
    +        }
    +    }
    +
    +    /**
    +     * @param $objWriter
    +     * @param \PhpOffice\PhpSpreadsheet\Worksheet\Drawing $drawing
    +     * @param $i
    +     *
    +     * @throws WriterException
    +     *
    +     * @return int
    +     */
    +    private function writeDrawingHyperLink($objWriter, $drawing, $i)
    +    {
    +        if ($drawing->getHyperlink() === null) {
    +            return $i;
    +        }
    +
    +        ++$i;
    +        $this->writeRelationship(
    +            $objWriter,
    +            $i,
    +            'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',
    +            $drawing->getHyperlink()->getUrl(),
    +            $drawing->getHyperlink()->getTypeHyperlink()
    +        );
    +
    +        return $i;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/RelsRibbon.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/RelsRibbon.php
    new file mode 100644
    index 00000000000..8a0cfe34508
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/RelsRibbon.php
    @@ -0,0 +1,49 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class RelsRibbon extends WriterPart
    +{
    +    /**
    +     * Write relationships for additional objects of custom UI (ribbon).
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeRibbonRelationships(Spreadsheet $spreadsheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Relationships
    +        $objWriter->startElement('Relationships');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
    +        $localRels = $spreadsheet->getRibbonBinObjects('names');
    +        if (is_array($localRels)) {
    +            foreach ($localRels as $aId => $aTarget) {
    +                $objWriter->startElement('Relationship');
    +                $objWriter->writeAttribute('Id', $aId);
    +                $objWriter->writeAttribute('Type', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image');
    +                $objWriter->writeAttribute('Target', $aTarget);
    +                $objWriter->endElement();
    +            }
    +        }
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/RelsVBA.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/RelsVBA.php
    new file mode 100644
    index 00000000000..01ad38de67b
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/RelsVBA.php
    @@ -0,0 +1,44 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +class RelsVBA extends WriterPart
    +{
    +    /**
    +     * Write relationships for a signed VBA Project.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeVBARelationships(Spreadsheet $spreadsheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Relationships
    +        $objWriter->startElement('Relationships');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
    +        $objWriter->startElement('Relationship');
    +        $objWriter->writeAttribute('Id', 'rId1');
    +        $objWriter->writeAttribute('Type', 'http://schemas.microsoft.com/office/2006/relationships/vbaProjectSignature');
    +        $objWriter->writeAttribute('Target', 'vbaProjectSignature.bin');
    +        $objWriter->endElement();
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/StringTable.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/StringTable.php
    new file mode 100644
    index 00000000000..19604e44867
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/StringTable.php
    @@ -0,0 +1,281 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\DataType;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\RichText\Run;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +class StringTable extends WriterPart
    +{
    +    /**
    +     * Create worksheet stringtable.
    +     *
    +     * @param Worksheet $pSheet Worksheet
    +     * @param string[] $pExistingTable Existing table to eventually merge with
    +     *
    +     * @return string[] String table for worksheet
    +     */
    +    public function createStringTable(Worksheet $pSheet, $pExistingTable = null)
    +    {
    +        // Create string lookup table
    +        $aStringTable = [];
    +        $cellCollection = null;
    +        $aFlippedStringTable = null; // For faster lookup
    +
    +        // Is an existing table given?
    +        if (($pExistingTable !== null) && is_array($pExistingTable)) {
    +            $aStringTable = $pExistingTable;
    +        }
    +
    +        // Fill index array
    +        $aFlippedStringTable = $this->flipStringTable($aStringTable);
    +
    +        // Loop through cells
    +        foreach ($pSheet->getCoordinates() as $coordinate) {
    +            $cell = $pSheet->getCell($coordinate);
    +            $cellValue = $cell->getValue();
    +            if (!is_object($cellValue) &&
    +                ($cellValue !== null) &&
    +                $cellValue !== '' &&
    +                !isset($aFlippedStringTable[$cellValue]) &&
    +                ($cell->getDataType() == DataType::TYPE_STRING || $cell->getDataType() == DataType::TYPE_STRING2 || $cell->getDataType() == DataType::TYPE_NULL)) {
    +                $aStringTable[] = $cellValue;
    +                $aFlippedStringTable[$cellValue] = true;
    +            } elseif ($cellValue instanceof RichText &&
    +                ($cellValue !== null) &&
    +                !isset($aFlippedStringTable[$cellValue->getHashCode()])) {
    +                $aStringTable[] = $cellValue;
    +                $aFlippedStringTable[$cellValue->getHashCode()] = true;
    +            }
    +        }
    +
    +        return $aStringTable;
    +    }
    +
    +    /**
    +     * Write string table to XML format.
    +     *
    +     * @param string[] $pStringTable
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeStringTable(array $pStringTable)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // String table
    +        $objWriter->startElement('sst');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
    +        $objWriter->writeAttribute('uniqueCount', count($pStringTable));
    +
    +        // Loop through string table
    +        foreach ($pStringTable as $textElement) {
    +            $objWriter->startElement('si');
    +
    +            if (!$textElement instanceof RichText) {
    +                $textToWrite = StringHelper::controlCharacterPHP2OOXML($textElement);
    +                $objWriter->startElement('t');
    +                if ($textToWrite !== trim($textToWrite)) {
    +                    $objWriter->writeAttribute('xml:space', 'preserve');
    +                }
    +                $objWriter->writeRawData($textToWrite);
    +                $objWriter->endElement();
    +            } elseif ($textElement instanceof RichText) {
    +                $this->writeRichText($objWriter, $textElement);
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->endElement();
    +
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write Rich Text.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param RichText $pRichText Rich text
    +     * @param string $prefix Optional Namespace prefix
    +     */
    +    public function writeRichText(XMLWriter $objWriter, RichText $pRichText, $prefix = null)
    +    {
    +        if ($prefix !== null) {
    +            $prefix .= ':';
    +        }
    +
    +        // Loop through rich text elements
    +        $elements = $pRichText->getRichTextElements();
    +        foreach ($elements as $element) {
    +            // r
    +            $objWriter->startElement($prefix . 'r');
    +
    +            // rPr
    +            if ($element instanceof Run) {
    +                // rPr
    +                $objWriter->startElement($prefix . 'rPr');
    +
    +                // rFont
    +                $objWriter->startElement($prefix . 'rFont');
    +                $objWriter->writeAttribute('val', $element->getFont()->getName());
    +                $objWriter->endElement();
    +
    +                // Bold
    +                $objWriter->startElement($prefix . 'b');
    +                $objWriter->writeAttribute('val', ($element->getFont()->getBold() ? 'true' : 'false'));
    +                $objWriter->endElement();
    +
    +                // Italic
    +                $objWriter->startElement($prefix . 'i');
    +                $objWriter->writeAttribute('val', ($element->getFont()->getItalic() ? 'true' : 'false'));
    +                $objWriter->endElement();
    +
    +                // Superscript / subscript
    +                if ($element->getFont()->getSuperscript() || $element->getFont()->getSubscript()) {
    +                    $objWriter->startElement($prefix . 'vertAlign');
    +                    if ($element->getFont()->getSuperscript()) {
    +                        $objWriter->writeAttribute('val', 'superscript');
    +                    } elseif ($element->getFont()->getSubscript()) {
    +                        $objWriter->writeAttribute('val', 'subscript');
    +                    }
    +                    $objWriter->endElement();
    +                }
    +
    +                // Strikethrough
    +                $objWriter->startElement($prefix . 'strike');
    +                $objWriter->writeAttribute('val', ($element->getFont()->getStrikethrough() ? 'true' : 'false'));
    +                $objWriter->endElement();
    +
    +                // Color
    +                $objWriter->startElement($prefix . 'color');
    +                $objWriter->writeAttribute('rgb', $element->getFont()->getColor()->getARGB());
    +                $objWriter->endElement();
    +
    +                // Size
    +                $objWriter->startElement($prefix . 'sz');
    +                $objWriter->writeAttribute('val', $element->getFont()->getSize());
    +                $objWriter->endElement();
    +
    +                // Underline
    +                $objWriter->startElement($prefix . 'u');
    +                $objWriter->writeAttribute('val', $element->getFont()->getUnderline());
    +                $objWriter->endElement();
    +
    +                $objWriter->endElement();
    +            }
    +
    +            // t
    +            $objWriter->startElement($prefix . 't');
    +            $objWriter->writeAttribute('xml:space', 'preserve');
    +            $objWriter->writeRawData(StringHelper::controlCharacterPHP2OOXML($element->getText()));
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write Rich Text.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param RichText|string $pRichText text string or Rich text
    +     * @param string $prefix Optional Namespace prefix
    +     */
    +    public function writeRichTextForCharts(XMLWriter $objWriter, $pRichText = null, $prefix = null)
    +    {
    +        if (!$pRichText instanceof RichText) {
    +            $textRun = $pRichText;
    +            $pRichText = new RichText();
    +            $pRichText->createTextRun($textRun);
    +        }
    +
    +        if ($prefix !== null) {
    +            $prefix .= ':';
    +        }
    +
    +        // Loop through rich text elements
    +        $elements = $pRichText->getRichTextElements();
    +        foreach ($elements as $element) {
    +            // r
    +            $objWriter->startElement($prefix . 'r');
    +
    +            // rPr
    +            $objWriter->startElement($prefix . 'rPr');
    +
    +            // Bold
    +            $objWriter->writeAttribute('b', ($element->getFont()->getBold() ? 1 : 0));
    +            // Italic
    +            $objWriter->writeAttribute('i', ($element->getFont()->getItalic() ? 1 : 0));
    +            // Underline
    +            $underlineType = $element->getFont()->getUnderline();
    +            switch ($underlineType) {
    +                case 'single':
    +                    $underlineType = 'sng';
    +
    +                    break;
    +                case 'double':
    +                    $underlineType = 'dbl';
    +
    +                    break;
    +            }
    +            $objWriter->writeAttribute('u', $underlineType);
    +            // Strikethrough
    +            $objWriter->writeAttribute('strike', ($element->getFont()->getStrikethrough() ? 'sngStrike' : 'noStrike'));
    +
    +            // rFont
    +            $objWriter->startElement($prefix . 'latin');
    +            $objWriter->writeAttribute('typeface', $element->getFont()->getName());
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +
    +            // t
    +            $objWriter->startElement($prefix . 't');
    +            $objWriter->writeRawData(StringHelper::controlCharacterPHP2OOXML($element->getText()));
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Flip string table (for index searching).
    +     *
    +     * @param array $stringTable Stringtable
    +     *
    +     * @return array
    +     */
    +    public function flipStringTable(array $stringTable)
    +    {
    +        // Return value
    +        $returnValue = [];
    +
    +        // Loop through stringtable and add flipped items to $returnValue
    +        foreach ($stringTable as $key => $value) {
    +            if (!$value instanceof RichText) {
    +                $returnValue[$value] = $key;
    +            } elseif ($value instanceof RichText) {
    +                $returnValue[$value->getHashCode()] = $key;
    +            }
    +        }
    +
    +        return $returnValue;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Style.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Style.php
    new file mode 100644
    index 00000000000..16e800e01f0
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Style.php
    @@ -0,0 +1,686 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Style\Border;
    +use PhpOffice\PhpSpreadsheet\Style\Borders;
    +use PhpOffice\PhpSpreadsheet\Style\Conditional;
    +use PhpOffice\PhpSpreadsheet\Style\Fill;
    +use PhpOffice\PhpSpreadsheet\Style\Font;
    +use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
    +use PhpOffice\PhpSpreadsheet\Style\Protection;
    +
    +class Style extends WriterPart
    +{
    +    /**
    +     * Write styles to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeStyles(Spreadsheet $spreadsheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // styleSheet
    +        $objWriter->startElement('styleSheet');
    +        $objWriter->writeAttribute('xml:space', 'preserve');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
    +
    +        // numFmts
    +        $objWriter->startElement('numFmts');
    +        $objWriter->writeAttribute('count', $this->getParentWriter()->getNumFmtHashTable()->count());
    +
    +        // numFmt
    +        for ($i = 0; $i < $this->getParentWriter()->getNumFmtHashTable()->count(); ++$i) {
    +            $this->writeNumFmt($objWriter, $this->getParentWriter()->getNumFmtHashTable()->getByIndex($i), $i);
    +        }
    +
    +        $objWriter->endElement();
    +
    +        // fonts
    +        $objWriter->startElement('fonts');
    +        $objWriter->writeAttribute('count', $this->getParentWriter()->getFontHashTable()->count());
    +
    +        // font
    +        for ($i = 0; $i < $this->getParentWriter()->getFontHashTable()->count(); ++$i) {
    +            $this->writeFont($objWriter, $this->getParentWriter()->getFontHashTable()->getByIndex($i));
    +        }
    +
    +        $objWriter->endElement();
    +
    +        // fills
    +        $objWriter->startElement('fills');
    +        $objWriter->writeAttribute('count', $this->getParentWriter()->getFillHashTable()->count());
    +
    +        // fill
    +        for ($i = 0; $i < $this->getParentWriter()->getFillHashTable()->count(); ++$i) {
    +            $this->writeFill($objWriter, $this->getParentWriter()->getFillHashTable()->getByIndex($i));
    +        }
    +
    +        $objWriter->endElement();
    +
    +        // borders
    +        $objWriter->startElement('borders');
    +        $objWriter->writeAttribute('count', $this->getParentWriter()->getBordersHashTable()->count());
    +
    +        // border
    +        for ($i = 0; $i < $this->getParentWriter()->getBordersHashTable()->count(); ++$i) {
    +            $this->writeBorder($objWriter, $this->getParentWriter()->getBordersHashTable()->getByIndex($i));
    +        }
    +
    +        $objWriter->endElement();
    +
    +        // cellStyleXfs
    +        $objWriter->startElement('cellStyleXfs');
    +        $objWriter->writeAttribute('count', 1);
    +
    +        // xf
    +        $objWriter->startElement('xf');
    +        $objWriter->writeAttribute('numFmtId', 0);
    +        $objWriter->writeAttribute('fontId', 0);
    +        $objWriter->writeAttribute('fillId', 0);
    +        $objWriter->writeAttribute('borderId', 0);
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // cellXfs
    +        $objWriter->startElement('cellXfs');
    +        $objWriter->writeAttribute('count', count($spreadsheet->getCellXfCollection()));
    +
    +        // xf
    +        foreach ($spreadsheet->getCellXfCollection() as $cellXf) {
    +            $this->writeCellStyleXf($objWriter, $cellXf, $spreadsheet);
    +        }
    +
    +        $objWriter->endElement();
    +
    +        // cellStyles
    +        $objWriter->startElement('cellStyles');
    +        $objWriter->writeAttribute('count', 1);
    +
    +        // cellStyle
    +        $objWriter->startElement('cellStyle');
    +        $objWriter->writeAttribute('name', 'Normal');
    +        $objWriter->writeAttribute('xfId', 0);
    +        $objWriter->writeAttribute('builtinId', 0);
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // dxfs
    +        $objWriter->startElement('dxfs');
    +        $objWriter->writeAttribute('count', $this->getParentWriter()->getStylesConditionalHashTable()->count());
    +
    +        // dxf
    +        for ($i = 0; $i < $this->getParentWriter()->getStylesConditionalHashTable()->count(); ++$i) {
    +            $this->writeCellStyleDxf($objWriter, $this->getParentWriter()->getStylesConditionalHashTable()->getByIndex($i)->getStyle());
    +        }
    +
    +        $objWriter->endElement();
    +
    +        // tableStyles
    +        $objWriter->startElement('tableStyles');
    +        $objWriter->writeAttribute('defaultTableStyle', 'TableStyleMedium9');
    +        $objWriter->writeAttribute('defaultPivotStyle', 'PivotTableStyle1');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write Fill.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Fill $pFill Fill style
    +     */
    +    private function writeFill(XMLWriter $objWriter, Fill $pFill)
    +    {
    +        // Check if this is a pattern type or gradient type
    +        if ($pFill->getFillType() === Fill::FILL_GRADIENT_LINEAR ||
    +            $pFill->getFillType() === Fill::FILL_GRADIENT_PATH) {
    +            // Gradient fill
    +            $this->writeGradientFill($objWriter, $pFill);
    +        } elseif ($pFill->getFillType() !== null) {
    +            // Pattern fill
    +            $this->writePatternFill($objWriter, $pFill);
    +        }
    +    }
    +
    +    /**
    +     * Write Gradient Fill.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Fill $pFill Fill style
    +     */
    +    private function writeGradientFill(XMLWriter $objWriter, Fill $pFill)
    +    {
    +        // fill
    +        $objWriter->startElement('fill');
    +
    +        // gradientFill
    +        $objWriter->startElement('gradientFill');
    +        $objWriter->writeAttribute('type', $pFill->getFillType());
    +        $objWriter->writeAttribute('degree', $pFill->getRotation());
    +
    +        // stop
    +        $objWriter->startElement('stop');
    +        $objWriter->writeAttribute('position', '0');
    +
    +        // color
    +        $objWriter->startElement('color');
    +        $objWriter->writeAttribute('rgb', $pFill->getStartColor()->getARGB());
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // stop
    +        $objWriter->startElement('stop');
    +        $objWriter->writeAttribute('position', '1');
    +
    +        // color
    +        $objWriter->startElement('color');
    +        $objWriter->writeAttribute('rgb', $pFill->getEndColor()->getARGB());
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Pattern Fill.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Fill $pFill Fill style
    +     */
    +    private function writePatternFill(XMLWriter $objWriter, Fill $pFill)
    +    {
    +        // fill
    +        $objWriter->startElement('fill');
    +
    +        // patternFill
    +        $objWriter->startElement('patternFill');
    +        $objWriter->writeAttribute('patternType', $pFill->getFillType());
    +
    +        if ($pFill->getFillType() !== Fill::FILL_NONE) {
    +            // fgColor
    +            if ($pFill->getStartColor()->getARGB()) {
    +                $objWriter->startElement('fgColor');
    +                $objWriter->writeAttribute('rgb', $pFill->getStartColor()->getARGB());
    +                $objWriter->endElement();
    +            }
    +        }
    +        if ($pFill->getFillType() !== Fill::FILL_NONE) {
    +            // bgColor
    +            if ($pFill->getEndColor()->getARGB()) {
    +                $objWriter->startElement('bgColor');
    +                $objWriter->writeAttribute('rgb', $pFill->getEndColor()->getARGB());
    +                $objWriter->endElement();
    +            }
    +        }
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Font.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Font $pFont Font style
    +     */
    +    private function writeFont(XMLWriter $objWriter, Font $pFont)
    +    {
    +        // font
    +        $objWriter->startElement('font');
    +        //    Weird! The order of these elements actually makes a difference when opening Xlsx
    +        //        files in Excel2003 with the compatibility pack. It's not documented behaviour,
    +        //        and makes for a real WTF!
    +
    +        // Bold. We explicitly write this element also when false (like MS Office Excel 2007 does
    +        // for conditional formatting). Otherwise it will apparently not be picked up in conditional
    +        // formatting style dialog
    +        if ($pFont->getBold() !== null) {
    +            $objWriter->startElement('b');
    +            $objWriter->writeAttribute('val', $pFont->getBold() ? '1' : '0');
    +            $objWriter->endElement();
    +        }
    +
    +        // Italic
    +        if ($pFont->getItalic() !== null) {
    +            $objWriter->startElement('i');
    +            $objWriter->writeAttribute('val', $pFont->getItalic() ? '1' : '0');
    +            $objWriter->endElement();
    +        }
    +
    +        // Strikethrough
    +        if ($pFont->getStrikethrough() !== null) {
    +            $objWriter->startElement('strike');
    +            $objWriter->writeAttribute('val', $pFont->getStrikethrough() ? '1' : '0');
    +            $objWriter->endElement();
    +        }
    +
    +        // Underline
    +        if ($pFont->getUnderline() !== null) {
    +            $objWriter->startElement('u');
    +            $objWriter->writeAttribute('val', $pFont->getUnderline());
    +            $objWriter->endElement();
    +        }
    +
    +        // Superscript / subscript
    +        if ($pFont->getSuperscript() === true || $pFont->getSubscript() === true) {
    +            $objWriter->startElement('vertAlign');
    +            if ($pFont->getSuperscript() === true) {
    +                $objWriter->writeAttribute('val', 'superscript');
    +            } elseif ($pFont->getSubscript() === true) {
    +                $objWriter->writeAttribute('val', 'subscript');
    +            }
    +            $objWriter->endElement();
    +        }
    +
    +        // Size
    +        if ($pFont->getSize() !== null) {
    +            $objWriter->startElement('sz');
    +            $objWriter->writeAttribute('val', StringHelper::formatNumber($pFont->getSize()));
    +            $objWriter->endElement();
    +        }
    +
    +        // Foreground color
    +        if ($pFont->getColor()->getARGB() !== null) {
    +            $objWriter->startElement('color');
    +            $objWriter->writeAttribute('rgb', $pFont->getColor()->getARGB());
    +            $objWriter->endElement();
    +        }
    +
    +        // Name
    +        if ($pFont->getName() !== null) {
    +            $objWriter->startElement('name');
    +            $objWriter->writeAttribute('val', $pFont->getName());
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Border.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Borders $pBorders Borders style
    +     */
    +    private function writeBorder(XMLWriter $objWriter, Borders $pBorders)
    +    {
    +        // Write border
    +        $objWriter->startElement('border');
    +        // Diagonal?
    +        switch ($pBorders->getDiagonalDirection()) {
    +            case Borders::DIAGONAL_UP:
    +                $objWriter->writeAttribute('diagonalUp', 'true');
    +                $objWriter->writeAttribute('diagonalDown', 'false');
    +
    +                break;
    +            case Borders::DIAGONAL_DOWN:
    +                $objWriter->writeAttribute('diagonalUp', 'false');
    +                $objWriter->writeAttribute('diagonalDown', 'true');
    +
    +                break;
    +            case Borders::DIAGONAL_BOTH:
    +                $objWriter->writeAttribute('diagonalUp', 'true');
    +                $objWriter->writeAttribute('diagonalDown', 'true');
    +
    +                break;
    +        }
    +
    +        // BorderPr
    +        $this->writeBorderPr($objWriter, 'left', $pBorders->getLeft());
    +        $this->writeBorderPr($objWriter, 'right', $pBorders->getRight());
    +        $this->writeBorderPr($objWriter, 'top', $pBorders->getTop());
    +        $this->writeBorderPr($objWriter, 'bottom', $pBorders->getBottom());
    +        $this->writeBorderPr($objWriter, 'diagonal', $pBorders->getDiagonal());
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Cell Style Xf.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Style $pStyle Style
    +     * @param Spreadsheet $spreadsheet Workbook
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     */
    +    private function writeCellStyleXf(XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Style\Style $pStyle, Spreadsheet $spreadsheet)
    +    {
    +        // xf
    +        $objWriter->startElement('xf');
    +        $objWriter->writeAttribute('xfId', 0);
    +        $objWriter->writeAttribute('fontId', (int) $this->getParentWriter()->getFontHashTable()->getIndexForHashCode($pStyle->getFont()->getHashCode()));
    +        if ($pStyle->getQuotePrefix()) {
    +            $objWriter->writeAttribute('quotePrefix', 1);
    +        }
    +
    +        if ($pStyle->getNumberFormat()->getBuiltInFormatCode() === false) {
    +            $objWriter->writeAttribute('numFmtId', (int) ($this->getParentWriter()->getNumFmtHashTable()->getIndexForHashCode($pStyle->getNumberFormat()->getHashCode()) + 164));
    +        } else {
    +            $objWriter->writeAttribute('numFmtId', (int) $pStyle->getNumberFormat()->getBuiltInFormatCode());
    +        }
    +
    +        $objWriter->writeAttribute('fillId', (int) $this->getParentWriter()->getFillHashTable()->getIndexForHashCode($pStyle->getFill()->getHashCode()));
    +        $objWriter->writeAttribute('borderId', (int) $this->getParentWriter()->getBordersHashTable()->getIndexForHashCode($pStyle->getBorders()->getHashCode()));
    +
    +        // Apply styles?
    +        $objWriter->writeAttribute('applyFont', ($spreadsheet->getDefaultStyle()->getFont()->getHashCode() != $pStyle->getFont()->getHashCode()) ? '1' : '0');
    +        $objWriter->writeAttribute('applyNumberFormat', ($spreadsheet->getDefaultStyle()->getNumberFormat()->getHashCode() != $pStyle->getNumberFormat()->getHashCode()) ? '1' : '0');
    +        $objWriter->writeAttribute('applyFill', ($spreadsheet->getDefaultStyle()->getFill()->getHashCode() != $pStyle->getFill()->getHashCode()) ? '1' : '0');
    +        $objWriter->writeAttribute('applyBorder', ($spreadsheet->getDefaultStyle()->getBorders()->getHashCode() != $pStyle->getBorders()->getHashCode()) ? '1' : '0');
    +        $objWriter->writeAttribute('applyAlignment', ($spreadsheet->getDefaultStyle()->getAlignment()->getHashCode() != $pStyle->getAlignment()->getHashCode()) ? '1' : '0');
    +        if ($pStyle->getProtection()->getLocked() != Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != Protection::PROTECTION_INHERIT) {
    +            $objWriter->writeAttribute('applyProtection', 'true');
    +        }
    +
    +        // alignment
    +        $objWriter->startElement('alignment');
    +        $objWriter->writeAttribute('horizontal', $pStyle->getAlignment()->getHorizontal());
    +        $objWriter->writeAttribute('vertical', $pStyle->getAlignment()->getVertical());
    +
    +        $textRotation = 0;
    +        if ($pStyle->getAlignment()->getTextRotation() >= 0) {
    +            $textRotation = $pStyle->getAlignment()->getTextRotation();
    +        } elseif ($pStyle->getAlignment()->getTextRotation() < 0) {
    +            $textRotation = 90 - $pStyle->getAlignment()->getTextRotation();
    +        }
    +        $objWriter->writeAttribute('textRotation', $textRotation);
    +
    +        $objWriter->writeAttribute('wrapText', ($pStyle->getAlignment()->getWrapText() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('shrinkToFit', ($pStyle->getAlignment()->getShrinkToFit() ? 'true' : 'false'));
    +
    +        if ($pStyle->getAlignment()->getIndent() > 0) {
    +            $objWriter->writeAttribute('indent', $pStyle->getAlignment()->getIndent());
    +        }
    +        if ($pStyle->getAlignment()->getReadOrder() > 0) {
    +            $objWriter->writeAttribute('readingOrder', $pStyle->getAlignment()->getReadOrder());
    +        }
    +        $objWriter->endElement();
    +
    +        // protection
    +        if ($pStyle->getProtection()->getLocked() != Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != Protection::PROTECTION_INHERIT) {
    +            $objWriter->startElement('protection');
    +            if ($pStyle->getProtection()->getLocked() != Protection::PROTECTION_INHERIT) {
    +                $objWriter->writeAttribute('locked', ($pStyle->getProtection()->getLocked() == Protection::PROTECTION_PROTECTED ? 'true' : 'false'));
    +            }
    +            if ($pStyle->getProtection()->getHidden() != Protection::PROTECTION_INHERIT) {
    +                $objWriter->writeAttribute('hidden', ($pStyle->getProtection()->getHidden() == Protection::PROTECTION_PROTECTED ? 'true' : 'false'));
    +            }
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Cell Style Dxf.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param \PhpOffice\PhpSpreadsheet\Style\Style $pStyle Style
    +     */
    +    private function writeCellStyleDxf(XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Style\Style $pStyle)
    +    {
    +        // dxf
    +        $objWriter->startElement('dxf');
    +
    +        // font
    +        $this->writeFont($objWriter, $pStyle->getFont());
    +
    +        // numFmt
    +        $this->writeNumFmt($objWriter, $pStyle->getNumberFormat());
    +
    +        // fill
    +        $this->writeFill($objWriter, $pStyle->getFill());
    +
    +        // alignment
    +        $objWriter->startElement('alignment');
    +        if ($pStyle->getAlignment()->getHorizontal() !== null) {
    +            $objWriter->writeAttribute('horizontal', $pStyle->getAlignment()->getHorizontal());
    +        }
    +        if ($pStyle->getAlignment()->getVertical() !== null) {
    +            $objWriter->writeAttribute('vertical', $pStyle->getAlignment()->getVertical());
    +        }
    +
    +        if ($pStyle->getAlignment()->getTextRotation() !== null) {
    +            $textRotation = 0;
    +            if ($pStyle->getAlignment()->getTextRotation() >= 0) {
    +                $textRotation = $pStyle->getAlignment()->getTextRotation();
    +            } elseif ($pStyle->getAlignment()->getTextRotation() < 0) {
    +                $textRotation = 90 - $pStyle->getAlignment()->getTextRotation();
    +            }
    +            $objWriter->writeAttribute('textRotation', $textRotation);
    +        }
    +        $objWriter->endElement();
    +
    +        // border
    +        $this->writeBorder($objWriter, $pStyle->getBorders());
    +
    +        // protection
    +        if (($pStyle->getProtection()->getLocked() !== null) || ($pStyle->getProtection()->getHidden() !== null)) {
    +            if ($pStyle->getProtection()->getLocked() !== Protection::PROTECTION_INHERIT ||
    +                $pStyle->getProtection()->getHidden() !== Protection::PROTECTION_INHERIT) {
    +                $objWriter->startElement('protection');
    +                if (($pStyle->getProtection()->getLocked() !== null) &&
    +                    ($pStyle->getProtection()->getLocked() !== Protection::PROTECTION_INHERIT)) {
    +                    $objWriter->writeAttribute('locked', ($pStyle->getProtection()->getLocked() == Protection::PROTECTION_PROTECTED ? 'true' : 'false'));
    +                }
    +                if (($pStyle->getProtection()->getHidden() !== null) &&
    +                    ($pStyle->getProtection()->getHidden() !== Protection::PROTECTION_INHERIT)) {
    +                    $objWriter->writeAttribute('hidden', ($pStyle->getProtection()->getHidden() == Protection::PROTECTION_PROTECTED ? 'true' : 'false'));
    +                }
    +                $objWriter->endElement();
    +            }
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write BorderPr.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param string $pName Element name
    +     * @param Border $pBorder Border style
    +     */
    +    private function writeBorderPr(XMLWriter $objWriter, $pName, Border $pBorder)
    +    {
    +        // Write BorderPr
    +        if ($pBorder->getBorderStyle() != Border::BORDER_NONE) {
    +            $objWriter->startElement($pName);
    +            $objWriter->writeAttribute('style', $pBorder->getBorderStyle());
    +
    +            // color
    +            $objWriter->startElement('color');
    +            $objWriter->writeAttribute('rgb', $pBorder->getColor()->getARGB());
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write NumberFormat.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param NumberFormat $pNumberFormat Number Format
    +     * @param int $pId Number Format identifier
    +     */
    +    private function writeNumFmt(XMLWriter $objWriter, NumberFormat $pNumberFormat, $pId = 0)
    +    {
    +        // Translate formatcode
    +        $formatCode = $pNumberFormat->getFormatCode();
    +
    +        // numFmt
    +        if ($formatCode !== null) {
    +            $objWriter->startElement('numFmt');
    +            $objWriter->writeAttribute('numFmtId', ($pId + 164));
    +            $objWriter->writeAttribute('formatCode', $formatCode);
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Get an array of all styles.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @return \PhpOffice\PhpSpreadsheet\Style\Style[] All styles in PhpSpreadsheet
    +     */
    +    public function allStyles(Spreadsheet $spreadsheet)
    +    {
    +        return $spreadsheet->getCellXfCollection();
    +    }
    +
    +    /**
    +     * Get an array of all conditional styles.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @return Conditional[] All conditional styles in PhpSpreadsheet
    +     */
    +    public function allConditionalStyles(Spreadsheet $spreadsheet)
    +    {
    +        // Get an array of all styles
    +        $aStyles = [];
    +
    +        $sheetCount = $spreadsheet->getSheetCount();
    +        for ($i = 0; $i < $sheetCount; ++$i) {
    +            foreach ($spreadsheet->getSheet($i)->getConditionalStylesCollection() as $conditionalStyles) {
    +                foreach ($conditionalStyles as $conditionalStyle) {
    +                    $aStyles[] = $conditionalStyle;
    +                }
    +            }
    +        }
    +
    +        return $aStyles;
    +    }
    +
    +    /**
    +     * Get an array of all fills.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @return Fill[] All fills in PhpSpreadsheet
    +     */
    +    public function allFills(Spreadsheet $spreadsheet)
    +    {
    +        // Get an array of unique fills
    +        $aFills = [];
    +
    +        // Two first fills are predefined
    +        $fill0 = new Fill();
    +        $fill0->setFillType(Fill::FILL_NONE);
    +        $aFills[] = $fill0;
    +
    +        $fill1 = new Fill();
    +        $fill1->setFillType(Fill::FILL_PATTERN_GRAY125);
    +        $aFills[] = $fill1;
    +        // The remaining fills
    +        $aStyles = $this->allStyles($spreadsheet);
    +        /** @var \PhpOffice\PhpSpreadsheet\Style\Style $style */
    +        foreach ($aStyles as $style) {
    +            if (!isset($aFills[$style->getFill()->getHashCode()])) {
    +                $aFills[$style->getFill()->getHashCode()] = $style->getFill();
    +            }
    +        }
    +
    +        return $aFills;
    +    }
    +
    +    /**
    +     * Get an array of all fonts.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @return Font[] All fonts in PhpSpreadsheet
    +     */
    +    public function allFonts(Spreadsheet $spreadsheet)
    +    {
    +        // Get an array of unique fonts
    +        $aFonts = [];
    +        $aStyles = $this->allStyles($spreadsheet);
    +
    +        /** @var \PhpOffice\PhpSpreadsheet\Style\Style $style */
    +        foreach ($aStyles as $style) {
    +            if (!isset($aFonts[$style->getFont()->getHashCode()])) {
    +                $aFonts[$style->getFont()->getHashCode()] = $style->getFont();
    +            }
    +        }
    +
    +        return $aFonts;
    +    }
    +
    +    /**
    +     * Get an array of all borders.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @return Borders[] All borders in PhpSpreadsheet
    +     */
    +    public function allBorders(Spreadsheet $spreadsheet)
    +    {
    +        // Get an array of unique borders
    +        $aBorders = [];
    +        $aStyles = $this->allStyles($spreadsheet);
    +
    +        /** @var \PhpOffice\PhpSpreadsheet\Style\Style $style */
    +        foreach ($aStyles as $style) {
    +            if (!isset($aBorders[$style->getBorders()->getHashCode()])) {
    +                $aBorders[$style->getBorders()->getHashCode()] = $style->getBorders();
    +            }
    +        }
    +
    +        return $aBorders;
    +    }
    +
    +    /**
    +     * Get an array of all number formats.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @return NumberFormat[] All number formats in PhpSpreadsheet
    +     */
    +    public function allNumberFormats(Spreadsheet $spreadsheet)
    +    {
    +        // Get an array of unique number formats
    +        $aNumFmts = [];
    +        $aStyles = $this->allStyles($spreadsheet);
    +
    +        /** @var \PhpOffice\PhpSpreadsheet\Style\Style $style */
    +        foreach ($aStyles as $style) {
    +            if ($style->getNumberFormat()->getBuiltInFormatCode() === false && !isset($aNumFmts[$style->getNumberFormat()->getHashCode()])) {
    +                $aNumFmts[$style->getNumberFormat()->getHashCode()] = $style->getNumberFormat();
    +            }
    +        }
    +
    +        return $aNumFmts;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Theme.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Theme.php
    new file mode 100644
    index 00000000000..f5f8dc0752d
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Theme.php
    @@ -0,0 +1,846 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +
    +/**
    + * @category   PhpSpreadsheet
    + *
    + * @copyright  Copyright (c) 2006 - 2016 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet)
    + */
    +class Theme extends WriterPart
    +{
    +    /**
    +     * Map of Major fonts to write.
    +     *
    +     * @var array of string
    +     */
    +    private static $majorFonts = [
    +        'Jpan' => 'MS Pゴシック',
    +        'Hang' => '맑은 고딕',
    +        'Hans' => '宋体',
    +        'Hant' => '新細明體',
    +        'Arab' => 'Times New Roman',
    +        'Hebr' => 'Times New Roman',
    +        'Thai' => 'Tahoma',
    +        'Ethi' => 'Nyala',
    +        'Beng' => 'Vrinda',
    +        'Gujr' => 'Shruti',
    +        'Khmr' => 'MoolBoran',
    +        'Knda' => 'Tunga',
    +        'Guru' => 'Raavi',
    +        'Cans' => 'Euphemia',
    +        'Cher' => 'Plantagenet Cherokee',
    +        'Yiii' => 'Microsoft Yi Baiti',
    +        'Tibt' => 'Microsoft Himalaya',
    +        'Thaa' => 'MV Boli',
    +        'Deva' => 'Mangal',
    +        'Telu' => 'Gautami',
    +        'Taml' => 'Latha',
    +        'Syrc' => 'Estrangelo Edessa',
    +        'Orya' => 'Kalinga',
    +        'Mlym' => 'Kartika',
    +        'Laoo' => 'DokChampa',
    +        'Sinh' => 'Iskoola Pota',
    +        'Mong' => 'Mongolian Baiti',
    +        'Viet' => 'Times New Roman',
    +        'Uigh' => 'Microsoft Uighur',
    +        'Geor' => 'Sylfaen',
    +    ];
    +
    +    /**
    +     * Map of Minor fonts to write.
    +     *
    +     * @var array of string
    +     */
    +    private static $minorFonts = [
    +        'Jpan' => 'MS Pゴシック',
    +        'Hang' => '맑은 고딕',
    +        'Hans' => '宋体',
    +        'Hant' => '新細明體',
    +        'Arab' => 'Arial',
    +        'Hebr' => 'Arial',
    +        'Thai' => 'Tahoma',
    +        'Ethi' => 'Nyala',
    +        'Beng' => 'Vrinda',
    +        'Gujr' => 'Shruti',
    +        'Khmr' => 'DaunPenh',
    +        'Knda' => 'Tunga',
    +        'Guru' => 'Raavi',
    +        'Cans' => 'Euphemia',
    +        'Cher' => 'Plantagenet Cherokee',
    +        'Yiii' => 'Microsoft Yi Baiti',
    +        'Tibt' => 'Microsoft Himalaya',
    +        'Thaa' => 'MV Boli',
    +        'Deva' => 'Mangal',
    +        'Telu' => 'Gautami',
    +        'Taml' => 'Latha',
    +        'Syrc' => 'Estrangelo Edessa',
    +        'Orya' => 'Kalinga',
    +        'Mlym' => 'Kartika',
    +        'Laoo' => 'DokChampa',
    +        'Sinh' => 'Iskoola Pota',
    +        'Mong' => 'Mongolian Baiti',
    +        'Viet' => 'Arial',
    +        'Uigh' => 'Microsoft Uighur',
    +        'Geor' => 'Sylfaen',
    +    ];
    +
    +    /**
    +     * Map of core colours.
    +     *
    +     * @var array of string
    +     */
    +    private static $colourScheme = [
    +        'dk2' => '1F497D',
    +        'lt2' => 'EEECE1',
    +        'accent1' => '4F81BD',
    +        'accent2' => 'C0504D',
    +        'accent3' => '9BBB59',
    +        'accent4' => '8064A2',
    +        'accent5' => '4BACC6',
    +        'accent6' => 'F79646',
    +        'hlink' => '0000FF',
    +        'folHlink' => '800080',
    +    ];
    +
    +    /**
    +     * Write theme to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeTheme(Spreadsheet $spreadsheet)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // a:theme
    +        $objWriter->startElement('a:theme');
    +        $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
    +        $objWriter->writeAttribute('name', 'Office Theme');
    +
    +        // a:themeElements
    +        $objWriter->startElement('a:themeElements');
    +
    +        // a:clrScheme
    +        $objWriter->startElement('a:clrScheme');
    +        $objWriter->writeAttribute('name', 'Office');
    +
    +        // a:dk1
    +        $objWriter->startElement('a:dk1');
    +
    +        // a:sysClr
    +        $objWriter->startElement('a:sysClr');
    +        $objWriter->writeAttribute('val', 'windowText');
    +        $objWriter->writeAttribute('lastClr', '000000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:lt1
    +        $objWriter->startElement('a:lt1');
    +
    +        // a:sysClr
    +        $objWriter->startElement('a:sysClr');
    +        $objWriter->writeAttribute('val', 'window');
    +        $objWriter->writeAttribute('lastClr', 'FFFFFF');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:dk2
    +        $this->writeColourScheme($objWriter);
    +
    +        $objWriter->endElement();
    +
    +        // a:fontScheme
    +        $objWriter->startElement('a:fontScheme');
    +        $objWriter->writeAttribute('name', 'Office');
    +
    +        // a:majorFont
    +        $objWriter->startElement('a:majorFont');
    +        $this->writeFonts($objWriter, 'Cambria', self::$majorFonts);
    +        $objWriter->endElement();
    +
    +        // a:minorFont
    +        $objWriter->startElement('a:minorFont');
    +        $this->writeFonts($objWriter, 'Calibri', self::$minorFonts);
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:fmtScheme
    +        $objWriter->startElement('a:fmtScheme');
    +        $objWriter->writeAttribute('name', 'Office');
    +
    +        // a:fillStyleLst
    +        $objWriter->startElement('a:fillStyleLst');
    +
    +        // a:solidFill
    +        $objWriter->startElement('a:solidFill');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:gradFill
    +        $objWriter->startElement('a:gradFill');
    +        $objWriter->writeAttribute('rotWithShape', '1');
    +
    +        // a:gsLst
    +        $objWriter->startElement('a:gsLst');
    +
    +        // a:gs
    +        $objWriter->startElement('a:gs');
    +        $objWriter->writeAttribute('pos', '0');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:tint
    +        $objWriter->startElement('a:tint');
    +        $objWriter->writeAttribute('val', '50000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '300000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:gs
    +        $objWriter->startElement('a:gs');
    +        $objWriter->writeAttribute('pos', '35000');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:tint
    +        $objWriter->startElement('a:tint');
    +        $objWriter->writeAttribute('val', '37000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '300000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:gs
    +        $objWriter->startElement('a:gs');
    +        $objWriter->writeAttribute('pos', '100000');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:tint
    +        $objWriter->startElement('a:tint');
    +        $objWriter->writeAttribute('val', '15000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '350000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:lin
    +        $objWriter->startElement('a:lin');
    +        $objWriter->writeAttribute('ang', '16200000');
    +        $objWriter->writeAttribute('scaled', '1');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:gradFill
    +        $objWriter->startElement('a:gradFill');
    +        $objWriter->writeAttribute('rotWithShape', '1');
    +
    +        // a:gsLst
    +        $objWriter->startElement('a:gsLst');
    +
    +        // a:gs
    +        $objWriter->startElement('a:gs');
    +        $objWriter->writeAttribute('pos', '0');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:shade
    +        $objWriter->startElement('a:shade');
    +        $objWriter->writeAttribute('val', '51000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '130000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:gs
    +        $objWriter->startElement('a:gs');
    +        $objWriter->writeAttribute('pos', '80000');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:shade
    +        $objWriter->startElement('a:shade');
    +        $objWriter->writeAttribute('val', '93000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '130000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:gs
    +        $objWriter->startElement('a:gs');
    +        $objWriter->writeAttribute('pos', '100000');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:shade
    +        $objWriter->startElement('a:shade');
    +        $objWriter->writeAttribute('val', '94000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '135000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:lin
    +        $objWriter->startElement('a:lin');
    +        $objWriter->writeAttribute('ang', '16200000');
    +        $objWriter->writeAttribute('scaled', '0');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:lnStyleLst
    +        $objWriter->startElement('a:lnStyleLst');
    +
    +        // a:ln
    +        $objWriter->startElement('a:ln');
    +        $objWriter->writeAttribute('w', '9525');
    +        $objWriter->writeAttribute('cap', 'flat');
    +        $objWriter->writeAttribute('cmpd', 'sng');
    +        $objWriter->writeAttribute('algn', 'ctr');
    +
    +        // a:solidFill
    +        $objWriter->startElement('a:solidFill');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:shade
    +        $objWriter->startElement('a:shade');
    +        $objWriter->writeAttribute('val', '95000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '105000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:prstDash
    +        $objWriter->startElement('a:prstDash');
    +        $objWriter->writeAttribute('val', 'solid');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:ln
    +        $objWriter->startElement('a:ln');
    +        $objWriter->writeAttribute('w', '25400');
    +        $objWriter->writeAttribute('cap', 'flat');
    +        $objWriter->writeAttribute('cmpd', 'sng');
    +        $objWriter->writeAttribute('algn', 'ctr');
    +
    +        // a:solidFill
    +        $objWriter->startElement('a:solidFill');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:prstDash
    +        $objWriter->startElement('a:prstDash');
    +        $objWriter->writeAttribute('val', 'solid');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:ln
    +        $objWriter->startElement('a:ln');
    +        $objWriter->writeAttribute('w', '38100');
    +        $objWriter->writeAttribute('cap', 'flat');
    +        $objWriter->writeAttribute('cmpd', 'sng');
    +        $objWriter->writeAttribute('algn', 'ctr');
    +
    +        // a:solidFill
    +        $objWriter->startElement('a:solidFill');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:prstDash
    +        $objWriter->startElement('a:prstDash');
    +        $objWriter->writeAttribute('val', 'solid');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:effectStyleLst
    +        $objWriter->startElement('a:effectStyleLst');
    +
    +        // a:effectStyle
    +        $objWriter->startElement('a:effectStyle');
    +
    +        // a:effectLst
    +        $objWriter->startElement('a:effectLst');
    +
    +        // a:outerShdw
    +        $objWriter->startElement('a:outerShdw');
    +        $objWriter->writeAttribute('blurRad', '40000');
    +        $objWriter->writeAttribute('dist', '20000');
    +        $objWriter->writeAttribute('dir', '5400000');
    +        $objWriter->writeAttribute('rotWithShape', '0');
    +
    +        // a:srgbClr
    +        $objWriter->startElement('a:srgbClr');
    +        $objWriter->writeAttribute('val', '000000');
    +
    +        // a:alpha
    +        $objWriter->startElement('a:alpha');
    +        $objWriter->writeAttribute('val', '38000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:effectStyle
    +        $objWriter->startElement('a:effectStyle');
    +
    +        // a:effectLst
    +        $objWriter->startElement('a:effectLst');
    +
    +        // a:outerShdw
    +        $objWriter->startElement('a:outerShdw');
    +        $objWriter->writeAttribute('blurRad', '40000');
    +        $objWriter->writeAttribute('dist', '23000');
    +        $objWriter->writeAttribute('dir', '5400000');
    +        $objWriter->writeAttribute('rotWithShape', '0');
    +
    +        // a:srgbClr
    +        $objWriter->startElement('a:srgbClr');
    +        $objWriter->writeAttribute('val', '000000');
    +
    +        // a:alpha
    +        $objWriter->startElement('a:alpha');
    +        $objWriter->writeAttribute('val', '35000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:effectStyle
    +        $objWriter->startElement('a:effectStyle');
    +
    +        // a:effectLst
    +        $objWriter->startElement('a:effectLst');
    +
    +        // a:outerShdw
    +        $objWriter->startElement('a:outerShdw');
    +        $objWriter->writeAttribute('blurRad', '40000');
    +        $objWriter->writeAttribute('dist', '23000');
    +        $objWriter->writeAttribute('dir', '5400000');
    +        $objWriter->writeAttribute('rotWithShape', '0');
    +
    +        // a:srgbClr
    +        $objWriter->startElement('a:srgbClr');
    +        $objWriter->writeAttribute('val', '000000');
    +
    +        // a:alpha
    +        $objWriter->startElement('a:alpha');
    +        $objWriter->writeAttribute('val', '35000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:scene3d
    +        $objWriter->startElement('a:scene3d');
    +
    +        // a:camera
    +        $objWriter->startElement('a:camera');
    +        $objWriter->writeAttribute('prst', 'orthographicFront');
    +
    +        // a:rot
    +        $objWriter->startElement('a:rot');
    +        $objWriter->writeAttribute('lat', '0');
    +        $objWriter->writeAttribute('lon', '0');
    +        $objWriter->writeAttribute('rev', '0');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:lightRig
    +        $objWriter->startElement('a:lightRig');
    +        $objWriter->writeAttribute('rig', 'threePt');
    +        $objWriter->writeAttribute('dir', 't');
    +
    +        // a:rot
    +        $objWriter->startElement('a:rot');
    +        $objWriter->writeAttribute('lat', '0');
    +        $objWriter->writeAttribute('lon', '0');
    +        $objWriter->writeAttribute('rev', '1200000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:sp3d
    +        $objWriter->startElement('a:sp3d');
    +
    +        // a:bevelT
    +        $objWriter->startElement('a:bevelT');
    +        $objWriter->writeAttribute('w', '63500');
    +        $objWriter->writeAttribute('h', '25400');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:bgFillStyleLst
    +        $objWriter->startElement('a:bgFillStyleLst');
    +
    +        // a:solidFill
    +        $objWriter->startElement('a:solidFill');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:gradFill
    +        $objWriter->startElement('a:gradFill');
    +        $objWriter->writeAttribute('rotWithShape', '1');
    +
    +        // a:gsLst
    +        $objWriter->startElement('a:gsLst');
    +
    +        // a:gs
    +        $objWriter->startElement('a:gs');
    +        $objWriter->writeAttribute('pos', '0');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:tint
    +        $objWriter->startElement('a:tint');
    +        $objWriter->writeAttribute('val', '40000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '350000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:gs
    +        $objWriter->startElement('a:gs');
    +        $objWriter->writeAttribute('pos', '40000');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:tint
    +        $objWriter->startElement('a:tint');
    +        $objWriter->writeAttribute('val', '45000');
    +        $objWriter->endElement();
    +
    +        // a:shade
    +        $objWriter->startElement('a:shade');
    +        $objWriter->writeAttribute('val', '99000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '350000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:gs
    +        $objWriter->startElement('a:gs');
    +        $objWriter->writeAttribute('pos', '100000');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:shade
    +        $objWriter->startElement('a:shade');
    +        $objWriter->writeAttribute('val', '20000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '255000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:path
    +        $objWriter->startElement('a:path');
    +        $objWriter->writeAttribute('path', 'circle');
    +
    +        // a:fillToRect
    +        $objWriter->startElement('a:fillToRect');
    +        $objWriter->writeAttribute('l', '50000');
    +        $objWriter->writeAttribute('t', '-80000');
    +        $objWriter->writeAttribute('r', '50000');
    +        $objWriter->writeAttribute('b', '180000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:gradFill
    +        $objWriter->startElement('a:gradFill');
    +        $objWriter->writeAttribute('rotWithShape', '1');
    +
    +        // a:gsLst
    +        $objWriter->startElement('a:gsLst');
    +
    +        // a:gs
    +        $objWriter->startElement('a:gs');
    +        $objWriter->writeAttribute('pos', '0');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:tint
    +        $objWriter->startElement('a:tint');
    +        $objWriter->writeAttribute('val', '80000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '300000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:gs
    +        $objWriter->startElement('a:gs');
    +        $objWriter->writeAttribute('pos', '100000');
    +
    +        // a:schemeClr
    +        $objWriter->startElement('a:schemeClr');
    +        $objWriter->writeAttribute('val', 'phClr');
    +
    +        // a:shade
    +        $objWriter->startElement('a:shade');
    +        $objWriter->writeAttribute('val', '30000');
    +        $objWriter->endElement();
    +
    +        // a:satMod
    +        $objWriter->startElement('a:satMod');
    +        $objWriter->writeAttribute('val', '200000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:path
    +        $objWriter->startElement('a:path');
    +        $objWriter->writeAttribute('path', 'circle');
    +
    +        // a:fillToRect
    +        $objWriter->startElement('a:fillToRect');
    +        $objWriter->writeAttribute('l', '50000');
    +        $objWriter->writeAttribute('t', '50000');
    +        $objWriter->writeAttribute('r', '50000');
    +        $objWriter->writeAttribute('b', '50000');
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        // a:objectDefaults
    +        $objWriter->writeElement('a:objectDefaults', null);
    +
    +        // a:extraClrSchemeLst
    +        $objWriter->writeElement('a:extraClrSchemeLst', null);
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write fonts to XML format.
    +     *
    +     * @param XMLWriter $objWriter
    +     * @param string $latinFont
    +     * @param array of string                $fontSet
    +     *
    +     * @return string XML Output
    +     */
    +    private function writeFonts($objWriter, $latinFont, $fontSet)
    +    {
    +        // a:latin
    +        $objWriter->startElement('a:latin');
    +        $objWriter->writeAttribute('typeface', $latinFont);
    +        $objWriter->endElement();
    +
    +        // a:ea
    +        $objWriter->startElement('a:ea');
    +        $objWriter->writeAttribute('typeface', '');
    +        $objWriter->endElement();
    +
    +        // a:cs
    +        $objWriter->startElement('a:cs');
    +        $objWriter->writeAttribute('typeface', '');
    +        $objWriter->endElement();
    +
    +        foreach ($fontSet as $fontScript => $typeface) {
    +            $objWriter->startElement('a:font');
    +            $objWriter->writeAttribute('script', $fontScript);
    +            $objWriter->writeAttribute('typeface', $typeface);
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write colour scheme to XML format.
    +     *
    +     * @param XMLWriter $objWriter
    +     *
    +     * @return string XML Output
    +     */
    +    private function writeColourScheme($objWriter)
    +    {
    +        foreach (self::$colourScheme as $colourName => $colourValue) {
    +            $objWriter->startElement('a:' . $colourName);
    +
    +            $objWriter->startElement('a:srgbClr');
    +            $objWriter->writeAttribute('val', $colourValue);
    +            $objWriter->endElement();
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Workbook.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Workbook.php
    new file mode 100644
    index 00000000000..e3ddb03c143
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Workbook.php
    @@ -0,0 +1,426 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\NamedRange;
    +use PhpOffice\PhpSpreadsheet\Shared\Date;
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Spreadsheet;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +class Workbook extends WriterPart
    +{
    +    /**
    +     * Write workbook to XML format.
    +     *
    +     * @param Spreadsheet $spreadsheet
    +     * @param bool $recalcRequired Indicate whether formulas should be recalculated before writing
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeWorkbook(Spreadsheet $spreadsheet, $recalcRequired = false)
    +    {
    +        // Create XML writer
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // workbook
    +        $objWriter->startElement('workbook');
    +        $objWriter->writeAttribute('xml:space', 'preserve');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
    +        $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
    +
    +        // fileVersion
    +        $this->writeFileVersion($objWriter);
    +
    +        // workbookPr
    +        $this->writeWorkbookPr($objWriter);
    +
    +        // workbookProtection
    +        $this->writeWorkbookProtection($objWriter, $spreadsheet);
    +
    +        // bookViews
    +        if ($this->getParentWriter()->getOffice2003Compatibility() === false) {
    +            $this->writeBookViews($objWriter, $spreadsheet);
    +        }
    +
    +        // sheets
    +        $this->writeSheets($objWriter, $spreadsheet);
    +
    +        // definedNames
    +        $this->writeDefinedNames($objWriter, $spreadsheet);
    +
    +        // calcPr
    +        $this->writeCalcPr($objWriter, $recalcRequired);
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write file version.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     */
    +    private function writeFileVersion(XMLWriter $objWriter)
    +    {
    +        $objWriter->startElement('fileVersion');
    +        $objWriter->writeAttribute('appName', 'xl');
    +        $objWriter->writeAttribute('lastEdited', '4');
    +        $objWriter->writeAttribute('lowestEdited', '4');
    +        $objWriter->writeAttribute('rupBuild', '4505');
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write WorkbookPr.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     */
    +    private function writeWorkbookPr(XMLWriter $objWriter)
    +    {
    +        $objWriter->startElement('workbookPr');
    +
    +        if (Date::getExcelCalendar() == Date::CALENDAR_MAC_1904) {
    +            $objWriter->writeAttribute('date1904', '1');
    +        }
    +
    +        $objWriter->writeAttribute('codeName', 'ThisWorkbook');
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write BookViews.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Spreadsheet $spreadsheet
    +     */
    +    private function writeBookViews(XMLWriter $objWriter, Spreadsheet $spreadsheet)
    +    {
    +        // bookViews
    +        $objWriter->startElement('bookViews');
    +
    +        // workbookView
    +        $objWriter->startElement('workbookView');
    +
    +        $objWriter->writeAttribute('activeTab', $spreadsheet->getActiveSheetIndex());
    +        $objWriter->writeAttribute('autoFilterDateGrouping', ($spreadsheet->getAutoFilterDateGrouping() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('firstSheet', $spreadsheet->getFirstSheetIndex());
    +        $objWriter->writeAttribute('minimized', ($spreadsheet->getMinimized() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('showHorizontalScroll', ($spreadsheet->getShowHorizontalScroll() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('showSheetTabs', ($spreadsheet->getShowSheetTabs() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('showVerticalScroll', ($spreadsheet->getShowVerticalScroll() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('tabRatio', $spreadsheet->getTabRatio());
    +        $objWriter->writeAttribute('visibility', $spreadsheet->getVisibility());
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write WorkbookProtection.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Spreadsheet $spreadsheet
    +     */
    +    private function writeWorkbookProtection(XMLWriter $objWriter, Spreadsheet $spreadsheet)
    +    {
    +        if ($spreadsheet->getSecurity()->isSecurityEnabled()) {
    +            $objWriter->startElement('workbookProtection');
    +            $objWriter->writeAttribute('lockRevision', ($spreadsheet->getSecurity()->getLockRevision() ? 'true' : 'false'));
    +            $objWriter->writeAttribute('lockStructure', ($spreadsheet->getSecurity()->getLockStructure() ? 'true' : 'false'));
    +            $objWriter->writeAttribute('lockWindows', ($spreadsheet->getSecurity()->getLockWindows() ? 'true' : 'false'));
    +
    +            if ($spreadsheet->getSecurity()->getRevisionsPassword() != '') {
    +                $objWriter->writeAttribute('revisionsPassword', $spreadsheet->getSecurity()->getRevisionsPassword());
    +            }
    +
    +            if ($spreadsheet->getSecurity()->getWorkbookPassword() != '') {
    +                $objWriter->writeAttribute('workbookPassword', $spreadsheet->getSecurity()->getWorkbookPassword());
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write calcPr.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param bool $recalcRequired Indicate whether formulas should be recalculated before writing
    +     */
    +    private function writeCalcPr(XMLWriter $objWriter, $recalcRequired = true)
    +    {
    +        $objWriter->startElement('calcPr');
    +
    +        //    Set the calcid to a higher value than Excel itself will use, otherwise Excel will always recalc
    +        //  If MS Excel does do a recalc, then users opening a file in MS Excel will be prompted to save on exit
    +        //     because the file has changed
    +        $objWriter->writeAttribute('calcId', '999999');
    +        $objWriter->writeAttribute('calcMode', 'auto');
    +        //    fullCalcOnLoad isn't needed if we've recalculating for the save
    +        $objWriter->writeAttribute('calcCompleted', ($recalcRequired) ? 1 : 0);
    +        $objWriter->writeAttribute('fullCalcOnLoad', ($recalcRequired) ? 0 : 1);
    +        $objWriter->writeAttribute('forceFullCalc', ($recalcRequired) ? 0 : 1);
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write sheets.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeSheets(XMLWriter $objWriter, Spreadsheet $spreadsheet)
    +    {
    +        // Write sheets
    +        $objWriter->startElement('sheets');
    +        $sheetCount = $spreadsheet->getSheetCount();
    +        for ($i = 0; $i < $sheetCount; ++$i) {
    +            // sheet
    +            $this->writeSheet(
    +                $objWriter,
    +                $spreadsheet->getSheet($i)->getTitle(),
    +                ($i + 1),
    +                ($i + 1 + 3),
    +                $spreadsheet->getSheet($i)->getSheetState()
    +            );
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write sheet.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param string $pSheetname Sheet name
    +     * @param int $pSheetId Sheet id
    +     * @param int $pRelId Relationship ID
    +     * @param string $sheetState Sheet state (visible, hidden, veryHidden)
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeSheet(XMLWriter $objWriter, $pSheetname, $pSheetId = 1, $pRelId = 1, $sheetState = 'visible')
    +    {
    +        if ($pSheetname != '') {
    +            // Write sheet
    +            $objWriter->startElement('sheet');
    +            $objWriter->writeAttribute('name', $pSheetname);
    +            $objWriter->writeAttribute('sheetId', $pSheetId);
    +            if ($sheetState != 'visible' && $sheetState != '') {
    +                $objWriter->writeAttribute('state', $sheetState);
    +            }
    +            $objWriter->writeAttribute('r:id', 'rId' . $pRelId);
    +            $objWriter->endElement();
    +        } else {
    +            throw new WriterException('Invalid parameters passed.');
    +        }
    +    }
    +
    +    /**
    +     * Write Defined Names.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeDefinedNames(XMLWriter $objWriter, Spreadsheet $spreadsheet)
    +    {
    +        // Write defined names
    +        $objWriter->startElement('definedNames');
    +
    +        // Named ranges
    +        if (count($spreadsheet->getNamedRanges()) > 0) {
    +            // Named ranges
    +            $this->writeNamedRanges($objWriter, $spreadsheet);
    +        }
    +
    +        // Other defined names
    +        $sheetCount = $spreadsheet->getSheetCount();
    +        for ($i = 0; $i < $sheetCount; ++$i) {
    +            // definedName for autoFilter
    +            $this->writeDefinedNameForAutofilter($objWriter, $spreadsheet->getSheet($i), $i);
    +
    +            // definedName for Print_Titles
    +            $this->writeDefinedNameForPrintTitles($objWriter, $spreadsheet->getSheet($i), $i);
    +
    +            // definedName for Print_Area
    +            $this->writeDefinedNameForPrintArea($objWriter, $spreadsheet->getSheet($i), $i);
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write named ranges.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Spreadsheet $spreadsheet
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeNamedRanges(XMLWriter $objWriter, Spreadsheet $spreadsheet)
    +    {
    +        // Loop named ranges
    +        $namedRanges = $spreadsheet->getNamedRanges();
    +        foreach ($namedRanges as $namedRange) {
    +            $this->writeDefinedNameForNamedRange($objWriter, $namedRange);
    +        }
    +    }
    +
    +    /**
    +     * Write Defined Name for named range.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param NamedRange $pNamedRange
    +     */
    +    private function writeDefinedNameForNamedRange(XMLWriter $objWriter, NamedRange $pNamedRange)
    +    {
    +        // definedName for named range
    +        $objWriter->startElement('definedName');
    +        $objWriter->writeAttribute('name', $pNamedRange->getName());
    +        if ($pNamedRange->getLocalOnly()) {
    +            $objWriter->writeAttribute('localSheetId', $pNamedRange->getScope()->getParent()->getIndex($pNamedRange->getScope()));
    +        }
    +
    +        // Create absolute coordinate and write as raw text
    +        $range = Coordinate::splitRange($pNamedRange->getRange());
    +        $iMax = count($range);
    +        for ($i = 0; $i < $iMax; ++$i) {
    +            $range[$i][0] = '\'' . str_replace("'", "''", $pNamedRange->getWorksheet()->getTitle()) . '\'!' . Coordinate::absoluteReference($range[$i][0]);
    +            if (isset($range[$i][1])) {
    +                $range[$i][1] = Coordinate::absoluteReference($range[$i][1]);
    +            }
    +        }
    +        $range = Coordinate::buildRange($range);
    +
    +        $objWriter->writeRawData($range);
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Defined Name for autoFilter.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Worksheet $pSheet
    +     * @param int $pSheetId
    +     */
    +    private function writeDefinedNameForAutofilter(XMLWriter $objWriter, Worksheet $pSheet, $pSheetId = 0)
    +    {
    +        // definedName for autoFilter
    +        $autoFilterRange = $pSheet->getAutoFilter()->getRange();
    +        if (!empty($autoFilterRange)) {
    +            $objWriter->startElement('definedName');
    +            $objWriter->writeAttribute('name', '_xlnm._FilterDatabase');
    +            $objWriter->writeAttribute('localSheetId', $pSheetId);
    +            $objWriter->writeAttribute('hidden', '1');
    +
    +            // Create absolute coordinate and write as raw text
    +            $range = Coordinate::splitRange($autoFilterRange);
    +            $range = $range[0];
    +            //    Strip any worksheet ref so we can make the cell ref absolute
    +            list($ws, $range[0]) = Worksheet::extractSheetTitle($range[0], true);
    +
    +            $range[0] = Coordinate::absoluteCoordinate($range[0]);
    +            $range[1] = Coordinate::absoluteCoordinate($range[1]);
    +            $range = implode(':', $range);
    +
    +            $objWriter->writeRawData('\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!' . $range);
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write Defined Name for PrintTitles.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Worksheet $pSheet
    +     * @param int $pSheetId
    +     */
    +    private function writeDefinedNameForPrintTitles(XMLWriter $objWriter, Worksheet $pSheet, $pSheetId = 0)
    +    {
    +        // definedName for PrintTitles
    +        if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet() || $pSheet->getPageSetup()->isRowsToRepeatAtTopSet()) {
    +            $objWriter->startElement('definedName');
    +            $objWriter->writeAttribute('name', '_xlnm.Print_Titles');
    +            $objWriter->writeAttribute('localSheetId', $pSheetId);
    +
    +            // Setting string
    +            $settingString = '';
    +
    +            // Columns to repeat
    +            if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet()) {
    +                $repeat = $pSheet->getPageSetup()->getColumnsToRepeatAtLeft();
    +
    +                $settingString .= '\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!$' . $repeat[0] . ':$' . $repeat[1];
    +            }
    +
    +            // Rows to repeat
    +            if ($pSheet->getPageSetup()->isRowsToRepeatAtTopSet()) {
    +                if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet()) {
    +                    $settingString .= ',';
    +                }
    +
    +                $repeat = $pSheet->getPageSetup()->getRowsToRepeatAtTop();
    +
    +                $settingString .= '\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!$' . $repeat[0] . ':$' . $repeat[1];
    +            }
    +
    +            $objWriter->writeRawData($settingString);
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write Defined Name for PrintTitles.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param Worksheet $pSheet
    +     * @param int $pSheetId
    +     */
    +    private function writeDefinedNameForPrintArea(XMLWriter $objWriter, Worksheet $pSheet, $pSheetId = 0)
    +    {
    +        // definedName for PrintArea
    +        if ($pSheet->getPageSetup()->isPrintAreaSet()) {
    +            $objWriter->startElement('definedName');
    +            $objWriter->writeAttribute('name', '_xlnm.Print_Area');
    +            $objWriter->writeAttribute('localSheetId', $pSheetId);
    +
    +            // Print area
    +            $printArea = Coordinate::splitRange($pSheet->getPageSetup()->getPrintArea());
    +
    +            $chunks = [];
    +            foreach ($printArea as $printAreaRect) {
    +                $printAreaRect[0] = Coordinate::absoluteReference($printAreaRect[0]);
    +                $printAreaRect[1] = Coordinate::absoluteReference($printAreaRect[1]);
    +                $chunks[] = '\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!' . implode(':', $printAreaRect);
    +            }
    +
    +            $objWriter->writeRawData(implode(',', $chunks));
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Worksheet.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Worksheet.php
    new file mode 100644
    index 00000000000..78a62e9eca4
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/Worksheet.php
    @@ -0,0 +1,1224 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Cell\Cell;
    +use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    +use PhpOffice\PhpSpreadsheet\RichText\RichText;
    +use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
    +use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
    +use PhpOffice\PhpSpreadsheet\Style\Conditional;
    +use PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column;
    +use PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule;
    +use PhpOffice\PhpSpreadsheet\Worksheet\SheetView;
    +use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet as PhpspreadsheetWorksheet;
    +use PhpOffice\PhpSpreadsheet\Writer\Exception as WriterException;
    +
    +/**
    + * @category   PhpSpreadsheet
    + *
    + * @copyright  Copyright (c) 2006 - 2015 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet)
    + */
    +class Worksheet extends WriterPart
    +{
    +    /**
    +     * Write worksheet to XML format.
    +     *
    +     * @param PhpspreadsheetWorksheet $pSheet
    +     * @param string[] $pStringTable
    +     * @param bool $includeCharts Flag indicating if we should write charts
    +     *
    +     * @throws WriterException
    +     *
    +     * @return string XML Output
    +     */
    +    public function writeWorksheet(PhpspreadsheetWorksheet $pSheet, $pStringTable = null, $includeCharts = false)
    +    {
    +        // Create XML writer
    +        $objWriter = null;
    +        if ($this->getParentWriter()->getUseDiskCaching()) {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
    +        } else {
    +            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
    +        }
    +
    +        // XML header
    +        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
    +
    +        // Worksheet
    +        $objWriter->startElement('worksheet');
    +        $objWriter->writeAttribute('xml:space', 'preserve');
    +        $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/spreadsheetml/2006/main');
    +        $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
    +
    +        $objWriter->writeAttribute('xmlns:xdr', 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing');
    +        $objWriter->writeAttribute('xmlns:x14', 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/main');
    +        $objWriter->writeAttribute('xmlns:mc', 'http://schemas.openxmlformats.org/markup-compatibility/2006');
    +        $objWriter->writeAttribute('mc:Ignorable', 'x14ac');
    +        $objWriter->writeAttribute('xmlns:x14ac', 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac');
    +
    +        // sheetPr
    +        $this->writeSheetPr($objWriter, $pSheet);
    +
    +        // Dimension
    +        $this->writeDimension($objWriter, $pSheet);
    +
    +        // sheetViews
    +        $this->writeSheetViews($objWriter, $pSheet);
    +
    +        // sheetFormatPr
    +        $this->writeSheetFormatPr($objWriter, $pSheet);
    +
    +        // cols
    +        $this->writeCols($objWriter, $pSheet);
    +
    +        // sheetData
    +        $this->writeSheetData($objWriter, $pSheet, $pStringTable);
    +
    +        // sheetProtection
    +        $this->writeSheetProtection($objWriter, $pSheet);
    +
    +        // protectedRanges
    +        $this->writeProtectedRanges($objWriter, $pSheet);
    +
    +        // autoFilter
    +        $this->writeAutoFilter($objWriter, $pSheet);
    +
    +        // mergeCells
    +        $this->writeMergeCells($objWriter, $pSheet);
    +
    +        // conditionalFormatting
    +        $this->writeConditionalFormatting($objWriter, $pSheet);
    +
    +        // dataValidations
    +        $this->writeDataValidations($objWriter, $pSheet);
    +
    +        // hyperlinks
    +        $this->writeHyperlinks($objWriter, $pSheet);
    +
    +        // Print options
    +        $this->writePrintOptions($objWriter, $pSheet);
    +
    +        // Page margins
    +        $this->writePageMargins($objWriter, $pSheet);
    +
    +        // Page setup
    +        $this->writePageSetup($objWriter, $pSheet);
    +
    +        // Header / footer
    +        $this->writeHeaderFooter($objWriter, $pSheet);
    +
    +        // Breaks
    +        $this->writeBreaks($objWriter, $pSheet);
    +
    +        // Drawings and/or Charts
    +        $this->writeDrawings($objWriter, $pSheet, $includeCharts);
    +
    +        // LegacyDrawing
    +        $this->writeLegacyDrawing($objWriter, $pSheet);
    +
    +        // LegacyDrawingHF
    +        $this->writeLegacyDrawingHF($objWriter, $pSheet);
    +
    +        // AlternateContent
    +        $this->writeAlternateContent($objWriter, $pSheet);
    +
    +        $objWriter->endElement();
    +
    +        // Return
    +        return $objWriter->getData();
    +    }
    +
    +    /**
    +     * Write SheetPr.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeSheetPr(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // sheetPr
    +        $objWriter->startElement('sheetPr');
    +        if ($pSheet->getParent()->hasMacros()) {
    +            //if the workbook have macros, we need to have codeName for the sheet
    +            if ($pSheet->hasCodeName() == false) {
    +                $pSheet->setCodeName($pSheet->getTitle());
    +            }
    +            $objWriter->writeAttribute('codeName', $pSheet->getCodeName());
    +        }
    +        $autoFilterRange = $pSheet->getAutoFilter()->getRange();
    +        if (!empty($autoFilterRange)) {
    +            $objWriter->writeAttribute('filterMode', 1);
    +            $pSheet->getAutoFilter()->showHideRows();
    +        }
    +
    +        // tabColor
    +        if ($pSheet->isTabColorSet()) {
    +            $objWriter->startElement('tabColor');
    +            $objWriter->writeAttribute('rgb', $pSheet->getTabColor()->getARGB());
    +            $objWriter->endElement();
    +        }
    +
    +        // outlinePr
    +        $objWriter->startElement('outlinePr');
    +        $objWriter->writeAttribute('summaryBelow', ($pSheet->getShowSummaryBelow() ? '1' : '0'));
    +        $objWriter->writeAttribute('summaryRight', ($pSheet->getShowSummaryRight() ? '1' : '0'));
    +        $objWriter->endElement();
    +
    +        // pageSetUpPr
    +        if ($pSheet->getPageSetup()->getFitToPage()) {
    +            $objWriter->startElement('pageSetUpPr');
    +            $objWriter->writeAttribute('fitToPage', '1');
    +            $objWriter->endElement();
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Dimension.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeDimension(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // dimension
    +        $objWriter->startElement('dimension');
    +        $objWriter->writeAttribute('ref', $pSheet->calculateWorksheetDimension());
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write SheetViews.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeSheetViews(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // sheetViews
    +        $objWriter->startElement('sheetViews');
    +
    +        // Sheet selected?
    +        $sheetSelected = false;
    +        if ($this->getParentWriter()->getSpreadsheet()->getIndex($pSheet) == $this->getParentWriter()->getSpreadsheet()->getActiveSheetIndex()) {
    +            $sheetSelected = true;
    +        }
    +
    +        // sheetView
    +        $objWriter->startElement('sheetView');
    +        $objWriter->writeAttribute('tabSelected', $sheetSelected ? '1' : '0');
    +        $objWriter->writeAttribute('workbookViewId', '0');
    +
    +        // Zoom scales
    +        if ($pSheet->getSheetView()->getZoomScale() != 100) {
    +            $objWriter->writeAttribute('zoomScale', $pSheet->getSheetView()->getZoomScale());
    +        }
    +        if ($pSheet->getSheetView()->getZoomScaleNormal() != 100) {
    +            $objWriter->writeAttribute('zoomScaleNormal', $pSheet->getSheetView()->getZoomScaleNormal());
    +        }
    +
    +        // View Layout Type
    +        if ($pSheet->getSheetView()->getView() !== SheetView::SHEETVIEW_NORMAL) {
    +            $objWriter->writeAttribute('view', $pSheet->getSheetView()->getView());
    +        }
    +
    +        // Gridlines
    +        if ($pSheet->getShowGridlines()) {
    +            $objWriter->writeAttribute('showGridLines', 'true');
    +        } else {
    +            $objWriter->writeAttribute('showGridLines', 'false');
    +        }
    +
    +        // Row and column headers
    +        if ($pSheet->getShowRowColHeaders()) {
    +            $objWriter->writeAttribute('showRowColHeaders', '1');
    +        } else {
    +            $objWriter->writeAttribute('showRowColHeaders', '0');
    +        }
    +
    +        // Right-to-left
    +        if ($pSheet->getRightToLeft()) {
    +            $objWriter->writeAttribute('rightToLeft', 'true');
    +        }
    +
    +        $activeCell = $pSheet->getActiveCell();
    +        $sqref = $pSheet->getSelectedCells();
    +
    +        // Pane
    +        $pane = '';
    +        if ($pSheet->getFreezePane()) {
    +            list($xSplit, $ySplit) = Coordinate::coordinateFromString($pSheet->getFreezePane());
    +            $xSplit = Coordinate::columnIndexFromString($xSplit);
    +            --$xSplit;
    +            --$ySplit;
    +
    +            $topLeftCell = $pSheet->getTopLeftCell();
    +            $activeCell = $topLeftCell;
    +            $sqref = $topLeftCell;
    +
    +            // pane
    +            $pane = 'topRight';
    +            $objWriter->startElement('pane');
    +            if ($xSplit > 0) {
    +                $objWriter->writeAttribute('xSplit', $xSplit);
    +            }
    +            if ($ySplit > 0) {
    +                $objWriter->writeAttribute('ySplit', $ySplit);
    +                $pane = ($xSplit > 0) ? 'bottomRight' : 'bottomLeft';
    +            }
    +            $objWriter->writeAttribute('topLeftCell', $topLeftCell);
    +            $objWriter->writeAttribute('activePane', $pane);
    +            $objWriter->writeAttribute('state', 'frozen');
    +            $objWriter->endElement();
    +
    +            if (($xSplit > 0) && ($ySplit > 0)) {
    +                //    Write additional selections if more than two panes (ie both an X and a Y split)
    +                $objWriter->startElement('selection');
    +                $objWriter->writeAttribute('pane', 'topRight');
    +                $objWriter->endElement();
    +                $objWriter->startElement('selection');
    +                $objWriter->writeAttribute('pane', 'bottomLeft');
    +                $objWriter->endElement();
    +            }
    +        }
    +
    +        // Selection
    +        // Only need to write selection element if we have a split pane
    +        // We cheat a little by over-riding the active cell selection, setting it to the split cell
    +        $objWriter->startElement('selection');
    +        if ($pane != '') {
    +            $objWriter->writeAttribute('pane', $pane);
    +        }
    +        $objWriter->writeAttribute('activeCell', $activeCell);
    +        $objWriter->writeAttribute('sqref', $sqref);
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write SheetFormatPr.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeSheetFormatPr(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // sheetFormatPr
    +        $objWriter->startElement('sheetFormatPr');
    +
    +        // Default row height
    +        if ($pSheet->getDefaultRowDimension()->getRowHeight() >= 0) {
    +            $objWriter->writeAttribute('customHeight', 'true');
    +            $objWriter->writeAttribute('defaultRowHeight', StringHelper::formatNumber($pSheet->getDefaultRowDimension()->getRowHeight()));
    +        } else {
    +            $objWriter->writeAttribute('defaultRowHeight', '14.4');
    +        }
    +
    +        // Set Zero Height row
    +        if ((string) $pSheet->getDefaultRowDimension()->getZeroHeight() == '1' ||
    +            strtolower((string) $pSheet->getDefaultRowDimension()->getZeroHeight()) == 'true') {
    +            $objWriter->writeAttribute('zeroHeight', '1');
    +        }
    +
    +        // Default column width
    +        if ($pSheet->getDefaultColumnDimension()->getWidth() >= 0) {
    +            $objWriter->writeAttribute('defaultColWidth', StringHelper::formatNumber($pSheet->getDefaultColumnDimension()->getWidth()));
    +        }
    +
    +        // Outline level - row
    +        $outlineLevelRow = 0;
    +        foreach ($pSheet->getRowDimensions() as $dimension) {
    +            if ($dimension->getOutlineLevel() > $outlineLevelRow) {
    +                $outlineLevelRow = $dimension->getOutlineLevel();
    +            }
    +        }
    +        $objWriter->writeAttribute('outlineLevelRow', (int) $outlineLevelRow);
    +
    +        // Outline level - column
    +        $outlineLevelCol = 0;
    +        foreach ($pSheet->getColumnDimensions() as $dimension) {
    +            if ($dimension->getOutlineLevel() > $outlineLevelCol) {
    +                $outlineLevelCol = $dimension->getOutlineLevel();
    +            }
    +        }
    +        $objWriter->writeAttribute('outlineLevelCol', (int) $outlineLevelCol);
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Cols.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeCols(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // cols
    +        if (count($pSheet->getColumnDimensions()) > 0) {
    +            $objWriter->startElement('cols');
    +
    +            $pSheet->calculateColumnWidths();
    +
    +            // Loop through column dimensions
    +            foreach ($pSheet->getColumnDimensions() as $colDimension) {
    +                // col
    +                $objWriter->startElement('col');
    +                $objWriter->writeAttribute('min', Coordinate::columnIndexFromString($colDimension->getColumnIndex()));
    +                $objWriter->writeAttribute('max', Coordinate::columnIndexFromString($colDimension->getColumnIndex()));
    +
    +                if ($colDimension->getWidth() < 0) {
    +                    // No width set, apply default of 10
    +                    $objWriter->writeAttribute('width', '9.10');
    +                } else {
    +                    // Width set
    +                    $objWriter->writeAttribute('width', StringHelper::formatNumber($colDimension->getWidth()));
    +                }
    +
    +                // Column visibility
    +                if ($colDimension->getVisible() == false) {
    +                    $objWriter->writeAttribute('hidden', 'true');
    +                }
    +
    +                // Auto size?
    +                if ($colDimension->getAutoSize()) {
    +                    $objWriter->writeAttribute('bestFit', 'true');
    +                }
    +
    +                // Custom width?
    +                if ($colDimension->getWidth() != $pSheet->getDefaultColumnDimension()->getWidth()) {
    +                    $objWriter->writeAttribute('customWidth', 'true');
    +                }
    +
    +                // Collapsed
    +                if ($colDimension->getCollapsed() == true) {
    +                    $objWriter->writeAttribute('collapsed', 'true');
    +                }
    +
    +                // Outline level
    +                if ($colDimension->getOutlineLevel() > 0) {
    +                    $objWriter->writeAttribute('outlineLevel', $colDimension->getOutlineLevel());
    +                }
    +
    +                // Style
    +                $objWriter->writeAttribute('style', $colDimension->getXfIndex());
    +
    +                $objWriter->endElement();
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write SheetProtection.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeSheetProtection(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // sheetProtection
    +        $objWriter->startElement('sheetProtection');
    +
    +        if ($pSheet->getProtection()->getPassword() != '') {
    +            $objWriter->writeAttribute('password', $pSheet->getProtection()->getPassword());
    +        }
    +
    +        $objWriter->writeAttribute('sheet', ($pSheet->getProtection()->getSheet() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('objects', ($pSheet->getProtection()->getObjects() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('scenarios', ($pSheet->getProtection()->getScenarios() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('formatCells', ($pSheet->getProtection()->getFormatCells() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('formatColumns', ($pSheet->getProtection()->getFormatColumns() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('formatRows', ($pSheet->getProtection()->getFormatRows() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('insertColumns', ($pSheet->getProtection()->getInsertColumns() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('insertRows', ($pSheet->getProtection()->getInsertRows() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('insertHyperlinks', ($pSheet->getProtection()->getInsertHyperlinks() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('deleteColumns', ($pSheet->getProtection()->getDeleteColumns() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('deleteRows', ($pSheet->getProtection()->getDeleteRows() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('selectLockedCells', ($pSheet->getProtection()->getSelectLockedCells() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('sort', ($pSheet->getProtection()->getSort() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('autoFilter', ($pSheet->getProtection()->getAutoFilter() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('pivotTables', ($pSheet->getProtection()->getPivotTables() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('selectUnlockedCells', ($pSheet->getProtection()->getSelectUnlockedCells() ? 'true' : 'false'));
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write ConditionalFormatting.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeConditionalFormatting(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // Conditional id
    +        $id = 1;
    +
    +        // Loop through styles in the current worksheet
    +        foreach ($pSheet->getConditionalStylesCollection() as $cellCoordinate => $conditionalStyles) {
    +            foreach ($conditionalStyles as $conditional) {
    +                // WHY was this again?
    +                // if ($this->getParentWriter()->getStylesConditionalHashTable()->getIndexForHashCode($conditional->getHashCode()) == '') {
    +                //    continue;
    +                // }
    +                if ($conditional->getConditionType() != Conditional::CONDITION_NONE) {
    +                    // conditionalFormatting
    +                    $objWriter->startElement('conditionalFormatting');
    +                    $objWriter->writeAttribute('sqref', $cellCoordinate);
    +
    +                    // cfRule
    +                    $objWriter->startElement('cfRule');
    +                    $objWriter->writeAttribute('type', $conditional->getConditionType());
    +                    $objWriter->writeAttribute('dxfId', $this->getParentWriter()->getStylesConditionalHashTable()->getIndexForHashCode($conditional->getHashCode()));
    +                    $objWriter->writeAttribute('priority', $id++);
    +
    +                    if (($conditional->getConditionType() == Conditional::CONDITION_CELLIS || $conditional->getConditionType() == Conditional::CONDITION_CONTAINSTEXT)
    +                        && $conditional->getOperatorType() != Conditional::OPERATOR_NONE) {
    +                        $objWriter->writeAttribute('operator', $conditional->getOperatorType());
    +                    }
    +
    +                    if ($conditional->getConditionType() == Conditional::CONDITION_CONTAINSTEXT
    +                        && $conditional->getText() !== null) {
    +                        $objWriter->writeAttribute('text', $conditional->getText());
    +                    }
    +
    +                    if ($conditional->getStopIfTrue()) {
    +                        $objWriter->writeAttribute('stopIfTrue', '1');
    +                    }
    +
    +                    if ($conditional->getConditionType() == Conditional::CONDITION_CONTAINSTEXT
    +                        && $conditional->getOperatorType() == Conditional::OPERATOR_CONTAINSTEXT
    +                        && $conditional->getText() !== null) {
    +                        $objWriter->writeElement('formula', 'NOT(ISERROR(SEARCH("' . $conditional->getText() . '",' . $cellCoordinate . ')))');
    +                    } elseif ($conditional->getConditionType() == Conditional::CONDITION_CONTAINSTEXT
    +                        && $conditional->getOperatorType() == Conditional::OPERATOR_BEGINSWITH
    +                        && $conditional->getText() !== null) {
    +                        $objWriter->writeElement('formula', 'LEFT(' . $cellCoordinate . ',' . strlen($conditional->getText()) . ')="' . $conditional->getText() . '"');
    +                    } elseif ($conditional->getConditionType() == Conditional::CONDITION_CONTAINSTEXT
    +                        && $conditional->getOperatorType() == Conditional::OPERATOR_ENDSWITH
    +                        && $conditional->getText() !== null) {
    +                        $objWriter->writeElement('formula', 'RIGHT(' . $cellCoordinate . ',' . strlen($conditional->getText()) . ')="' . $conditional->getText() . '"');
    +                    } elseif ($conditional->getConditionType() == Conditional::CONDITION_CONTAINSTEXT
    +                        && $conditional->getOperatorType() == Conditional::OPERATOR_NOTCONTAINS
    +                        && $conditional->getText() !== null) {
    +                        $objWriter->writeElement('formula', 'ISERROR(SEARCH("' . $conditional->getText() . '",' . $cellCoordinate . '))');
    +                    } elseif ($conditional->getConditionType() == Conditional::CONDITION_CELLIS
    +                        || $conditional->getConditionType() == Conditional::CONDITION_CONTAINSTEXT
    +                        || $conditional->getConditionType() == Conditional::CONDITION_EXPRESSION) {
    +                        foreach ($conditional->getConditions() as $formula) {
    +                            // Formula
    +                            $objWriter->writeElement('formula', $formula);
    +                        }
    +                    }
    +
    +                    $objWriter->endElement();
    +
    +                    $objWriter->endElement();
    +                }
    +            }
    +        }
    +    }
    +
    +    /**
    +     * Write DataValidations.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeDataValidations(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // Datavalidation collection
    +        $dataValidationCollection = $pSheet->getDataValidationCollection();
    +
    +        // Write data validations?
    +        if (!empty($dataValidationCollection)) {
    +            $dataValidationCollection = Coordinate::mergeRangesInCollection($dataValidationCollection);
    +            $objWriter->startElement('dataValidations');
    +            $objWriter->writeAttribute('count', count($dataValidationCollection));
    +
    +            foreach ($dataValidationCollection as $coordinate => $dv) {
    +                $objWriter->startElement('dataValidation');
    +
    +                if ($dv->getType() != '') {
    +                    $objWriter->writeAttribute('type', $dv->getType());
    +                }
    +
    +                if ($dv->getErrorStyle() != '') {
    +                    $objWriter->writeAttribute('errorStyle', $dv->getErrorStyle());
    +                }
    +
    +                if ($dv->getOperator() != '') {
    +                    $objWriter->writeAttribute('operator', $dv->getOperator());
    +                }
    +
    +                $objWriter->writeAttribute('allowBlank', ($dv->getAllowBlank() ? '1' : '0'));
    +                $objWriter->writeAttribute('showDropDown', (!$dv->getShowDropDown() ? '1' : '0'));
    +                $objWriter->writeAttribute('showInputMessage', ($dv->getShowInputMessage() ? '1' : '0'));
    +                $objWriter->writeAttribute('showErrorMessage', ($dv->getShowErrorMessage() ? '1' : '0'));
    +
    +                if ($dv->getErrorTitle() !== '') {
    +                    $objWriter->writeAttribute('errorTitle', $dv->getErrorTitle());
    +                }
    +                if ($dv->getError() !== '') {
    +                    $objWriter->writeAttribute('error', $dv->getError());
    +                }
    +                if ($dv->getPromptTitle() !== '') {
    +                    $objWriter->writeAttribute('promptTitle', $dv->getPromptTitle());
    +                }
    +                if ($dv->getPrompt() !== '') {
    +                    $objWriter->writeAttribute('prompt', $dv->getPrompt());
    +                }
    +
    +                $objWriter->writeAttribute('sqref', $coordinate);
    +
    +                if ($dv->getFormula1() !== '') {
    +                    $objWriter->writeElement('formula1', $dv->getFormula1());
    +                }
    +                if ($dv->getFormula2() !== '') {
    +                    $objWriter->writeElement('formula2', $dv->getFormula2());
    +                }
    +
    +                $objWriter->endElement();
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write Hyperlinks.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeHyperlinks(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // Hyperlink collection
    +        $hyperlinkCollection = $pSheet->getHyperlinkCollection();
    +
    +        // Relation ID
    +        $relationId = 1;
    +
    +        // Write hyperlinks?
    +        if (!empty($hyperlinkCollection)) {
    +            $objWriter->startElement('hyperlinks');
    +
    +            foreach ($hyperlinkCollection as $coordinate => $hyperlink) {
    +                $objWriter->startElement('hyperlink');
    +
    +                $objWriter->writeAttribute('ref', $coordinate);
    +                if (!$hyperlink->isInternal()) {
    +                    $objWriter->writeAttribute('r:id', 'rId_hyperlink_' . $relationId);
    +                    ++$relationId;
    +                } else {
    +                    $objWriter->writeAttribute('location', str_replace('sheet://', '', $hyperlink->getUrl()));
    +                }
    +
    +                if ($hyperlink->getTooltip() != '') {
    +                    $objWriter->writeAttribute('tooltip', $hyperlink->getTooltip());
    +                }
    +
    +                $objWriter->endElement();
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write ProtectedRanges.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeProtectedRanges(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        if (count($pSheet->getProtectedCells()) > 0) {
    +            // protectedRanges
    +            $objWriter->startElement('protectedRanges');
    +
    +            // Loop protectedRanges
    +            foreach ($pSheet->getProtectedCells() as $protectedCell => $passwordHash) {
    +                // protectedRange
    +                $objWriter->startElement('protectedRange');
    +                $objWriter->writeAttribute('name', 'p' . md5($protectedCell));
    +                $objWriter->writeAttribute('sqref', $protectedCell);
    +                if (!empty($passwordHash)) {
    +                    $objWriter->writeAttribute('password', $passwordHash);
    +                }
    +                $objWriter->endElement();
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write MergeCells.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeMergeCells(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        if (count($pSheet->getMergeCells()) > 0) {
    +            // mergeCells
    +            $objWriter->startElement('mergeCells');
    +
    +            // Loop mergeCells
    +            foreach ($pSheet->getMergeCells() as $mergeCell) {
    +                // mergeCell
    +                $objWriter->startElement('mergeCell');
    +                $objWriter->writeAttribute('ref', $mergeCell);
    +                $objWriter->endElement();
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write PrintOptions.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writePrintOptions(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // printOptions
    +        $objWriter->startElement('printOptions');
    +
    +        $objWriter->writeAttribute('gridLines', ($pSheet->getPrintGridlines() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('gridLinesSet', 'true');
    +
    +        if ($pSheet->getPageSetup()->getHorizontalCentered()) {
    +            $objWriter->writeAttribute('horizontalCentered', 'true');
    +        }
    +
    +        if ($pSheet->getPageSetup()->getVerticalCentered()) {
    +            $objWriter->writeAttribute('verticalCentered', 'true');
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write PageMargins.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writePageMargins(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // pageMargins
    +        $objWriter->startElement('pageMargins');
    +        $objWriter->writeAttribute('left', StringHelper::formatNumber($pSheet->getPageMargins()->getLeft()));
    +        $objWriter->writeAttribute('right', StringHelper::formatNumber($pSheet->getPageMargins()->getRight()));
    +        $objWriter->writeAttribute('top', StringHelper::formatNumber($pSheet->getPageMargins()->getTop()));
    +        $objWriter->writeAttribute('bottom', StringHelper::formatNumber($pSheet->getPageMargins()->getBottom()));
    +        $objWriter->writeAttribute('header', StringHelper::formatNumber($pSheet->getPageMargins()->getHeader()));
    +        $objWriter->writeAttribute('footer', StringHelper::formatNumber($pSheet->getPageMargins()->getFooter()));
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write AutoFilter.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeAutoFilter(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        $autoFilterRange = $pSheet->getAutoFilter()->getRange();
    +        if (!empty($autoFilterRange)) {
    +            // autoFilter
    +            $objWriter->startElement('autoFilter');
    +
    +            // Strip any worksheet reference from the filter coordinates
    +            $range = Coordinate::splitRange($autoFilterRange);
    +            $range = $range[0];
    +            //    Strip any worksheet ref
    +            list($ws, $range[0]) = PhpspreadsheetWorksheet::extractSheetTitle($range[0], true);
    +            $range = implode(':', $range);
    +
    +            $objWriter->writeAttribute('ref', str_replace('$', '', $range));
    +
    +            $columns = $pSheet->getAutoFilter()->getColumns();
    +            if (count($columns) > 0) {
    +                foreach ($columns as $columnID => $column) {
    +                    $rules = $column->getRules();
    +                    if (count($rules) > 0) {
    +                        $objWriter->startElement('filterColumn');
    +                        $objWriter->writeAttribute('colId', $pSheet->getAutoFilter()->getColumnOffset($columnID));
    +
    +                        $objWriter->startElement($column->getFilterType());
    +                        if ($column->getJoin() == Column::AUTOFILTER_COLUMN_JOIN_AND) {
    +                            $objWriter->writeAttribute('and', 1);
    +                        }
    +
    +                        foreach ($rules as $rule) {
    +                            if (($column->getFilterType() === Column::AUTOFILTER_FILTERTYPE_FILTER) &&
    +                                ($rule->getOperator() === Rule::AUTOFILTER_COLUMN_RULE_EQUAL) &&
    +                                ($rule->getValue() === '')) {
    +                                //    Filter rule for Blanks
    +                                $objWriter->writeAttribute('blank', 1);
    +                            } elseif ($rule->getRuleType() === Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER) {
    +                                //    Dynamic Filter Rule
    +                                $objWriter->writeAttribute('type', $rule->getGrouping());
    +                                $val = $column->getAttribute('val');
    +                                if ($val !== null) {
    +                                    $objWriter->writeAttribute('val', $val);
    +                                }
    +                                $maxVal = $column->getAttribute('maxVal');
    +                                if ($maxVal !== null) {
    +                                    $objWriter->writeAttribute('maxVal', $maxVal);
    +                                }
    +                            } elseif ($rule->getRuleType() === Rule::AUTOFILTER_RULETYPE_TOPTENFILTER) {
    +                                //    Top 10 Filter Rule
    +                                $objWriter->writeAttribute('val', $rule->getValue());
    +                                $objWriter->writeAttribute('percent', (($rule->getOperator() === Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT) ? '1' : '0'));
    +                                $objWriter->writeAttribute('top', (($rule->getGrouping() === Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) ? '1' : '0'));
    +                            } else {
    +                                //    Filter, DateGroupItem or CustomFilter
    +                                $objWriter->startElement($rule->getRuleType());
    +
    +                                if ($rule->getOperator() !== Rule::AUTOFILTER_COLUMN_RULE_EQUAL) {
    +                                    $objWriter->writeAttribute('operator', $rule->getOperator());
    +                                }
    +                                if ($rule->getRuleType() === Rule::AUTOFILTER_RULETYPE_DATEGROUP) {
    +                                    // Date Group filters
    +                                    foreach ($rule->getValue() as $key => $value) {
    +                                        if ($value > '') {
    +                                            $objWriter->writeAttribute($key, $value);
    +                                        }
    +                                    }
    +                                    $objWriter->writeAttribute('dateTimeGrouping', $rule->getGrouping());
    +                                } else {
    +                                    $objWriter->writeAttribute('val', $rule->getValue());
    +                                }
    +
    +                                $objWriter->endElement();
    +                            }
    +                        }
    +
    +                        $objWriter->endElement();
    +
    +                        $objWriter->endElement();
    +                    }
    +                }
    +            }
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write PageSetup.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writePageSetup(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // pageSetup
    +        $objWriter->startElement('pageSetup');
    +        $objWriter->writeAttribute('paperSize', $pSheet->getPageSetup()->getPaperSize());
    +        $objWriter->writeAttribute('orientation', $pSheet->getPageSetup()->getOrientation());
    +
    +        if ($pSheet->getPageSetup()->getScale() !== null) {
    +            $objWriter->writeAttribute('scale', $pSheet->getPageSetup()->getScale());
    +        }
    +        if ($pSheet->getPageSetup()->getFitToHeight() !== null) {
    +            $objWriter->writeAttribute('fitToHeight', $pSheet->getPageSetup()->getFitToHeight());
    +        } else {
    +            $objWriter->writeAttribute('fitToHeight', '0');
    +        }
    +        if ($pSheet->getPageSetup()->getFitToWidth() !== null) {
    +            $objWriter->writeAttribute('fitToWidth', $pSheet->getPageSetup()->getFitToWidth());
    +        } else {
    +            $objWriter->writeAttribute('fitToWidth', '0');
    +        }
    +        if ($pSheet->getPageSetup()->getFirstPageNumber() !== null) {
    +            $objWriter->writeAttribute('firstPageNumber', $pSheet->getPageSetup()->getFirstPageNumber());
    +            $objWriter->writeAttribute('useFirstPageNumber', '1');
    +        }
    +
    +        $getUnparsedLoadedData = $pSheet->getParent()->getUnparsedLoadedData();
    +        if (isset($getUnparsedLoadedData['sheets'][$pSheet->getCodeName()]['pageSetupRelId'])) {
    +            $objWriter->writeAttribute('r:id', $getUnparsedLoadedData['sheets'][$pSheet->getCodeName()]['pageSetupRelId']);
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Header / Footer.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeHeaderFooter(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // headerFooter
    +        $objWriter->startElement('headerFooter');
    +        $objWriter->writeAttribute('differentOddEven', ($pSheet->getHeaderFooter()->getDifferentOddEven() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('differentFirst', ($pSheet->getHeaderFooter()->getDifferentFirst() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('scaleWithDoc', ($pSheet->getHeaderFooter()->getScaleWithDocument() ? 'true' : 'false'));
    +        $objWriter->writeAttribute('alignWithMargins', ($pSheet->getHeaderFooter()->getAlignWithMargins() ? 'true' : 'false'));
    +
    +        $objWriter->writeElement('oddHeader', $pSheet->getHeaderFooter()->getOddHeader());
    +        $objWriter->writeElement('oddFooter', $pSheet->getHeaderFooter()->getOddFooter());
    +        $objWriter->writeElement('evenHeader', $pSheet->getHeaderFooter()->getEvenHeader());
    +        $objWriter->writeElement('evenFooter', $pSheet->getHeaderFooter()->getEvenFooter());
    +        $objWriter->writeElement('firstHeader', $pSheet->getHeaderFooter()->getFirstHeader());
    +        $objWriter->writeElement('firstFooter', $pSheet->getHeaderFooter()->getFirstFooter());
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Breaks.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeBreaks(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // Get row and column breaks
    +        $aRowBreaks = [];
    +        $aColumnBreaks = [];
    +        foreach ($pSheet->getBreaks() as $cell => $breakType) {
    +            if ($breakType == PhpspreadsheetWorksheet::BREAK_ROW) {
    +                $aRowBreaks[] = $cell;
    +            } elseif ($breakType == PhpspreadsheetWorksheet::BREAK_COLUMN) {
    +                $aColumnBreaks[] = $cell;
    +            }
    +        }
    +
    +        // rowBreaks
    +        if (!empty($aRowBreaks)) {
    +            $objWriter->startElement('rowBreaks');
    +            $objWriter->writeAttribute('count', count($aRowBreaks));
    +            $objWriter->writeAttribute('manualBreakCount', count($aRowBreaks));
    +
    +            foreach ($aRowBreaks as $cell) {
    +                $coords = Coordinate::coordinateFromString($cell);
    +
    +                $objWriter->startElement('brk');
    +                $objWriter->writeAttribute('id', $coords[1]);
    +                $objWriter->writeAttribute('man', '1');
    +                $objWriter->endElement();
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +
    +        // Second, write column breaks
    +        if (!empty($aColumnBreaks)) {
    +            $objWriter->startElement('colBreaks');
    +            $objWriter->writeAttribute('count', count($aColumnBreaks));
    +            $objWriter->writeAttribute('manualBreakCount', count($aColumnBreaks));
    +
    +            foreach ($aColumnBreaks as $cell) {
    +                $coords = Coordinate::coordinateFromString($cell);
    +
    +                $objWriter->startElement('brk');
    +                $objWriter->writeAttribute('id', Coordinate::columnIndexFromString($coords[0]) - 1);
    +                $objWriter->writeAttribute('man', '1');
    +                $objWriter->endElement();
    +            }
    +
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write SheetData.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     * @param string[] $pStringTable String table
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeSheetData(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet, array $pStringTable)
    +    {
    +        // Flipped stringtable, for faster index searching
    +        $aFlippedStringTable = $this->getParentWriter()->getWriterPart('stringtable')->flipStringTable($pStringTable);
    +
    +        // sheetData
    +        $objWriter->startElement('sheetData');
    +
    +        // Get column count
    +        $colCount = Coordinate::columnIndexFromString($pSheet->getHighestColumn());
    +
    +        // Highest row number
    +        $highestRow = $pSheet->getHighestRow();
    +
    +        // Loop through cells
    +        $cellsByRow = [];
    +        foreach ($pSheet->getCoordinates() as $coordinate) {
    +            $cellAddress = Coordinate::coordinateFromString($coordinate);
    +            $cellsByRow[$cellAddress[1]][] = $coordinate;
    +        }
    +
    +        $currentRow = 0;
    +        while ($currentRow++ < $highestRow) {
    +            // Get row dimension
    +            $rowDimension = $pSheet->getRowDimension($currentRow);
    +
    +            // Write current row?
    +            $writeCurrentRow = isset($cellsByRow[$currentRow]) || $rowDimension->getRowHeight() >= 0 || $rowDimension->getVisible() == false || $rowDimension->getCollapsed() == true || $rowDimension->getOutlineLevel() > 0 || $rowDimension->getXfIndex() !== null;
    +
    +            if ($writeCurrentRow) {
    +                // Start a new row
    +                $objWriter->startElement('row');
    +                $objWriter->writeAttribute('r', $currentRow);
    +                $objWriter->writeAttribute('spans', '1:' . $colCount);
    +
    +                // Row dimensions
    +                if ($rowDimension->getRowHeight() >= 0) {
    +                    $objWriter->writeAttribute('customHeight', '1');
    +                    $objWriter->writeAttribute('ht', StringHelper::formatNumber($rowDimension->getRowHeight()));
    +                }
    +
    +                // Row visibility
    +                if ($rowDimension->getVisible() == false) {
    +                    $objWriter->writeAttribute('hidden', 'true');
    +                }
    +
    +                // Collapsed
    +                if ($rowDimension->getCollapsed() == true) {
    +                    $objWriter->writeAttribute('collapsed', 'true');
    +                }
    +
    +                // Outline level
    +                if ($rowDimension->getOutlineLevel() > 0) {
    +                    $objWriter->writeAttribute('outlineLevel', $rowDimension->getOutlineLevel());
    +                }
    +
    +                // Style
    +                if ($rowDimension->getXfIndex() !== null) {
    +                    $objWriter->writeAttribute('s', $rowDimension->getXfIndex());
    +                    $objWriter->writeAttribute('customFormat', '1');
    +                }
    +
    +                // Write cells
    +                if (isset($cellsByRow[$currentRow])) {
    +                    foreach ($cellsByRow[$currentRow] as $cellAddress) {
    +                        // Write cell
    +                        $this->writeCell($objWriter, $pSheet, $cellAddress, $aFlippedStringTable);
    +                    }
    +                }
    +
    +                // End row
    +                $objWriter->endElement();
    +            }
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Cell.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     * @param Cell $pCellAddress Cell Address
    +     * @param string[] $pFlippedStringTable String table (flipped), for faster index searching
    +     *
    +     * @throws WriterException
    +     */
    +    private function writeCell(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet, $pCellAddress, array $pFlippedStringTable)
    +    {
    +        // Cell
    +        $pCell = $pSheet->getCell($pCellAddress);
    +        $objWriter->startElement('c');
    +        $objWriter->writeAttribute('r', $pCellAddress);
    +
    +        // Sheet styles
    +        if ($pCell->getXfIndex() != '') {
    +            $objWriter->writeAttribute('s', $pCell->getXfIndex());
    +        }
    +
    +        // If cell value is supplied, write cell value
    +        $cellValue = $pCell->getValue();
    +        if (is_object($cellValue) || $cellValue !== '') {
    +            // Map type
    +            $mappedType = $pCell->getDataType();
    +
    +            // Write data type depending on its type
    +            switch (strtolower($mappedType)) {
    +                case 'inlinestr':    // Inline string
    +                case 's':            // String
    +                case 'b':            // Boolean
    +                    $objWriter->writeAttribute('t', $mappedType);
    +
    +                    break;
    +                case 'f':            // Formula
    +                    $calculatedValue = ($this->getParentWriter()->getPreCalculateFormulas()) ?
    +                        $pCell->getCalculatedValue() : $cellValue;
    +                    if (is_string($calculatedValue)) {
    +                        $objWriter->writeAttribute('t', 'str');
    +                    } elseif (is_bool($calculatedValue)) {
    +                        $objWriter->writeAttribute('t', 'b');
    +                    }
    +
    +                    break;
    +                case 'e':            // Error
    +                    $objWriter->writeAttribute('t', $mappedType);
    +            }
    +
    +            // Write data depending on its type
    +            switch (strtolower($mappedType)) {
    +                case 'inlinestr':    // Inline string
    +                    if (!$cellValue instanceof RichText) {
    +                        $objWriter->writeElement('t', StringHelper::controlCharacterPHP2OOXML(htmlspecialchars($cellValue)));
    +                    } elseif ($cellValue instanceof RichText) {
    +                        $objWriter->startElement('is');
    +                        $this->getParentWriter()->getWriterPart('stringtable')->writeRichText($objWriter, $cellValue);
    +                        $objWriter->endElement();
    +                    }
    +
    +                    break;
    +                case 's':            // String
    +                    if (!$cellValue instanceof RichText) {
    +                        if (isset($pFlippedStringTable[$cellValue])) {
    +                            $objWriter->writeElement('v', $pFlippedStringTable[$cellValue]);
    +                        }
    +                    } elseif ($cellValue instanceof RichText) {
    +                        $objWriter->writeElement('v', $pFlippedStringTable[$cellValue->getHashCode()]);
    +                    }
    +
    +                    break;
    +                case 'f':            // Formula
    +                    $attributes = $pCell->getFormulaAttributes();
    +                    if ($attributes['t'] == 'array') {
    +                        $objWriter->startElement('f');
    +                        $objWriter->writeAttribute('t', 'array');
    +                        $objWriter->writeAttribute('ref', $pCellAddress);
    +                        $objWriter->writeAttribute('aca', '1');
    +                        $objWriter->writeAttribute('ca', '1');
    +                        $objWriter->text(substr($cellValue, 1));
    +                        $objWriter->endElement();
    +                    } else {
    +                        $objWriter->writeElement('f', substr($cellValue, 1));
    +                    }
    +                    if ($this->getParentWriter()->getOffice2003Compatibility() === false) {
    +                        if ($this->getParentWriter()->getPreCalculateFormulas()) {
    +                            if (!is_array($calculatedValue) && substr($calculatedValue, 0, 1) != '#') {
    +                                $objWriter->writeElement('v', StringHelper::formatNumber($calculatedValue));
    +                            } else {
    +                                $objWriter->writeElement('v', '0');
    +                            }
    +                        } else {
    +                            $objWriter->writeElement('v', '0');
    +                        }
    +                    }
    +
    +                    break;
    +                case 'n':            // Numeric
    +                    // force point as decimal separator in case current locale uses comma
    +                    $objWriter->writeElement('v', str_replace(',', '.', $cellValue));
    +
    +                    break;
    +                case 'b':            // Boolean
    +                    $objWriter->writeElement('v', ($cellValue ? '1' : '0'));
    +
    +                    break;
    +                case 'e':            // Error
    +                    if (substr($cellValue, 0, 1) == '=') {
    +                        $objWriter->writeElement('f', substr($cellValue, 1));
    +                        $objWriter->writeElement('v', substr($cellValue, 1));
    +                    } else {
    +                        $objWriter->writeElement('v', $cellValue);
    +                    }
    +
    +                    break;
    +            }
    +        }
    +
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write Drawings.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     * @param bool $includeCharts Flag indicating if we should include drawing details for charts
    +     */
    +    private function writeDrawings(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet, $includeCharts = false)
    +    {
    +        $unparsedLoadedData = $pSheet->getParent()->getUnparsedLoadedData();
    +        $hasUnparsedDrawing = isset($unparsedLoadedData['sheets'][$pSheet->getCodeName()]['drawingOriginalIds']);
    +        $chartCount = ($includeCharts) ? $pSheet->getChartCollection()->count() : 0;
    +        if ($chartCount == 0 && $pSheet->getDrawingCollection()->count() == 0 && !$hasUnparsedDrawing) {
    +            return;
    +        }
    +
    +        // If sheet contains drawings, add the relationships
    +        $objWriter->startElement('drawing');
    +
    +        $rId = 'rId1';
    +        if (isset($unparsedLoadedData['sheets'][$pSheet->getCodeName()]['drawingOriginalIds'])) {
    +            $drawingOriginalIds = $unparsedLoadedData['sheets'][$pSheet->getCodeName()]['drawingOriginalIds'];
    +            // take first. In future can be overriten
    +            $rId = reset($drawingOriginalIds);
    +        }
    +
    +        $objWriter->writeAttribute('r:id', $rId);
    +        $objWriter->endElement();
    +    }
    +
    +    /**
    +     * Write LegacyDrawing.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeLegacyDrawing(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // If sheet contains comments, add the relationships
    +        if (count($pSheet->getComments()) > 0) {
    +            $objWriter->startElement('legacyDrawing');
    +            $objWriter->writeAttribute('r:id', 'rId_comments_vml1');
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    /**
    +     * Write LegacyDrawingHF.
    +     *
    +     * @param XMLWriter $objWriter XML Writer
    +     * @param PhpspreadsheetWorksheet $pSheet Worksheet
    +     */
    +    private function writeLegacyDrawingHF(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        // If sheet contains images, add the relationships
    +        if (count($pSheet->getHeaderFooter()->getImages()) > 0) {
    +            $objWriter->startElement('legacyDrawingHF');
    +            $objWriter->writeAttribute('r:id', 'rId_headerfooter_vml1');
    +            $objWriter->endElement();
    +        }
    +    }
    +
    +    private function writeAlternateContent(XMLWriter $objWriter, PhpspreadsheetWorksheet $pSheet)
    +    {
    +        if (empty($pSheet->getParent()->getUnparsedLoadedData()['sheets'][$pSheet->getCodeName()]['AlternateContents'])) {
    +            return;
    +        }
    +
    +        foreach ($pSheet->getParent()->getUnparsedLoadedData()['sheets'][$pSheet->getCodeName()]['AlternateContents'] as $alternateContent) {
    +            $objWriter->writeRaw($alternateContent);
    +        }
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/WriterPart.php b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/WriterPart.php
    new file mode 100644
    index 00000000000..7119512ce41
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/PhpSpreadsheet/Writer/Xlsx/WriterPart.php
    @@ -0,0 +1,35 @@
    +<?php
    +
    +namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    +
    +abstract class WriterPart
    +{
    +    /**
    +     * Parent Xlsx object.
    +     *
    +     * @var Xlsx
    +     */
    +    private $parentWriter;
    +
    +    /**
    +     * Get parent Xlsx object.
    +     *
    +     * @return Xlsx
    +     */
    +    public function getParentWriter()
    +    {
    +        return $this->parentWriter;
    +    }
    +
    +    /**
    +     * Set parent Xlsx object.
    +     *
    +     * @param Xlsx $pWriter
    +     */
    +    public function __construct(Xlsx $pWriter)
    +    {
    +        $this->parentWriter = $pWriter;
    +    }
    +}
    diff --git a/htdocs/includes/phpoffice/autoloader.php b/htdocs/includes/phpoffice/autoloader.php
    new file mode 100644
    index 00000000000..71e94e9b738
    --- /dev/null
    +++ b/htdocs/includes/phpoffice/autoloader.php
    @@ -0,0 +1,10 @@
    +<?php
    +spl_autoload_register(function ($class_name) {
    +	$preg_match = preg_match('/^PhpOffice\\\PhpSpreadsheet\\\/', $class_name);
    +
    +	if (1 === $preg_match) {
    +		$class_name = preg_replace('/\\\/', '/', $class_name);
    +		$class_name = preg_replace('/^PhpOffice\\/PhpSpreadsheet\\//', '', $class_name);
    +		require_once(__DIR__ . '/PhpSpreadsheet/' . $class_name . '.php');
    +	}
    +});
    diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLERead.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLERead.php
    index 261bdde5812..444d8ec641f 100644
    --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLERead.php
    +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Shared/OLERead.php
    @@ -289,7 +289,6 @@ class PHPExcel_Shared_OLERead {
     
     			$offset += self::PROPERTY_STORAGE_BLOCK_SIZE;
     		}
    -
     	}
     
     	/**
    diff --git a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Chart.php b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Chart.php
    index 4846910fa29..93e85582d5c 100644
    --- a/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Chart.php
    +++ b/htdocs/includes/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007/Chart.php
    @@ -1042,7 +1042,6 @@ class PHPExcel_Writer_Excel2007_Chart extends
         }
     
         $objWriter->endElement();
    -
       }
     
       /**
    @@ -1322,7 +1321,6 @@ class PHPExcel_Writer_Excel2007_Chart extends
           $objWriter->endElement();
         }
         $objWriter->endElement();
    -
       }
     
       /**
    diff --git a/htdocs/includes/restler/framework/Luracast/Restler/explorer/css/screen.css b/htdocs/includes/restler/framework/Luracast/Restler/explorer/css/screen.css
    index dc02468fdc0..ea3a4153c15 100644
    --- a/htdocs/includes/restler/framework/Luracast/Restler/explorer/css/screen.css
    +++ b/htdocs/includes/restler/framework/Luracast/Restler/explorer/css/screen.css
    @@ -1231,7 +1231,7 @@
       cursor: pointer;
     }
     .swagger-section #header {
    -  background-color: #646257;
    +  background-color: rgb(163, 188, 210);
       padding: 14px;
     }
     .swagger-section #input_baseUrl {
    @@ -1278,7 +1278,7 @@
       font-size: 1.5em;
       font-weight: bold;
       text-decoration: none;
    -  background: transparent url(../images/logo_small.png) no-repeat left center;
    +  background: transparent url(../../../../theme/eldy/img/favicon.ico) no-repeat left center;
       padding: 20px 0 20px 40px;
       color: white;
     }
    diff --git a/htdocs/includes/restler/framework/Luracast/Restler/explorer/index.html b/htdocs/includes/restler/framework/Luracast/Restler/explorer/index.html
    index c73f1981cc9..01fb8ee2a0e 100644
    --- a/htdocs/includes/restler/framework/Luracast/Restler/explorer/index.html
    +++ b/htdocs/includes/restler/framework/Luracast/Restler/explorer/index.html
    @@ -3,7 +3,7 @@
     <html>
     <head>
       <meta charset="UTF-8">
    -  <title>Api Explorer</title>
    +  <title>REST API Explorer</title>
       <link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
       <link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
       <link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
    @@ -73,6 +73,7 @@
             docExpansion: "none",
             jsonEditor: false,
             apisSorter: "alpha",
    +        operationsSorter: "alpha",
             defaultModelRendering: 'schema',
             showRequestHeaders: false
           });
    @@ -126,7 +127,7 @@
     <body class="swagger-section">
     <div id='header'>
       <div class="swagger-ui-wrap">
    -    <a id="logo" href="#">API Explorer</a>
    +    <a id="logo" href="#">Dolibarr REST API Explorer</a>
         <form id='api_selector'>
           <div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>
           <div class='input'><input placeholder="DOLAPIKEY" id="input_apiKey" name="apiKey" type="text"/></div>
    diff --git a/htdocs/includes/restler/framework/Luracast/Restler/explorer/swagger-ui.js b/htdocs/includes/restler/framework/Luracast/Restler/explorer/swagger-ui.js
    index fee54e49324..b1c2e3f2767 100644
    --- a/htdocs/includes/restler/framework/Luracast/Restler/explorer/swagger-ui.js
    +++ b/htdocs/includes/restler/framework/Luracast/Restler/explorer/swagger-ui.js
    @@ -1193,7 +1193,7 @@ var reservedApiTags = [
       'path',
       'tag'
     ];
    -var supportedOperationMethods = ['delete', 'get', 'head', 'options', 'patch', 'post', 'put'];
    +var supportedOperationMethods = ['head', 'options', 'get', 'post', 'put', 'patch', 'delete'];
     var SwaggerClient = module.exports = function (url, options) {
       this.authorizations = null;
       this.authorizationScheme = null;
    @@ -26327,4 +26327,4 @@ SwaggerUi.Views.StatusCodeView = Backbone.View.extend({
         }
         return this;
       }
    -});}).call(this);
    \ No newline at end of file
    +});}).call(this);
    diff --git a/htdocs/includes/swiftmailer/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php b/htdocs/includes/swiftmailer/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php
    index e4bf0cc4df9..f3656b35a52 100644
    --- a/htdocs/includes/swiftmailer/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php
    +++ b/htdocs/includes/swiftmailer/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php
    @@ -22,7 +22,8 @@ class NoRFCWarningsValidation extends RFCValidation
                 return false;
             }
     
    -        if (empty($this->getWarnings())) {
    +        $ret = $this->getWarnings();
    +        if (empty($ret)) {
                 return true;
             }
     
    diff --git a/htdocs/includes/swiftmailer/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php b/htdocs/includes/swiftmailer/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php
    index dd270556e8a..4721f0d8c98 100644
    --- a/htdocs/includes/swiftmailer/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php
    +++ b/htdocs/includes/swiftmailer/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php
    @@ -13,10 +13,10 @@ class SpoofCheckValidation implements EmailValidation
          * @var InvalidEmail
          */
         private $error;
    -    
    +
         public function __construct()
         {
    -        if (!class_exists(Spoofchecker::class)) {
    +        if (!extension_loaded('intl')) {
                 throw new \LogicException(sprintf('The %s class requires the Intl extension.', __CLASS__));
             }
         }
    diff --git a/htdocs/includes/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php b/htdocs/includes/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php
    index fbfbceb01d1..e43bd2ed510 100644
    --- a/htdocs/includes/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php
    +++ b/htdocs/includes/swiftmailer/lib/classes/Swift/CharacterStream/ArrayCharacterStream.php
    @@ -172,7 +172,7 @@ class Swift_CharacterStream_ArrayCharacterStream implements Swift_CharacterStrea
             }
             $this->offset += ($i - $this->offset); // Limit function calls
     
    -        return array_merge(...$arrays);
    +        return call_user_func_array('array_merge', $arrays);
         }
     
         /**
    diff --git a/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php b/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php
    index b4a0ddf1224..228946a5ee9 100644
    --- a/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php
    +++ b/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php
    @@ -97,7 +97,7 @@ class Swift_Mime_Headers_ParameterizedHeader extends Swift_Mime_Headers_Unstruct
         {
             $params = $this->getParameters();
     
    -        return $params[$parameter] ?? null;
    +        return isset($params[$parameter]) ? $params[$parameter] : null;
         }
     
         /**
    diff --git a/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/IdGenerator.php b/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/IdGenerator.php
    index 6e98ee8975d..8d9452bd0f0 100644
    --- a/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/IdGenerator.php
    +++ b/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/IdGenerator.php
    @@ -46,7 +46,7 @@ class Swift_Mime_IdGenerator implements Swift_IdGenerator
          */
         public function generateId()
         {
    -        $idLeft = bin2hex(random_bytes(16)); // set 32 hex values
    +        $idLeft = md5(getmypid().'.'.time().'.'.uniqid(mt_rand(), true));
     
             return $idLeft.'@'.$this->idRight;
         }
    diff --git a/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php b/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php
    index 768de07f812..f8667954bcf 100644
    --- a/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php
    +++ b/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/SimpleMessage.php
    @@ -493,7 +493,7 @@ class Swift_Mime_SimpleMessage extends Swift_Mime_MimePart
                 '%[1-5]'
                 );
     
    -        return $priority ?? 3;
    +        return isset($priority) ? $priority : 3;
         }
     
         /**
    diff --git a/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php b/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php
    index 2d1a9b47d56..980f1cedc1c 100644
    --- a/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php
    +++ b/htdocs/includes/swiftmailer/lib/classes/Swift/Mime/SimpleMimeEntity.php
    @@ -92,7 +92,7 @@ class Swift_Mime_SimpleMimeEntity implements Swift_Mime_CharsetObserver, Swift_M
          */
         public function __construct(Swift_Mime_SimpleHeaderSet $headers, Swift_Mime_ContentEncoder $encoder, Swift_KeyCache $cache, Swift_IdGenerator $idGenerator)
         {
    -        $this->cacheKey = bin2hex(random_bytes(16)); // set 32 hex values
    +        $this->cacheKey = md5(getmypid().'.'.time().'.'.uniqid(mt_rand(), true));
             $this->cache = $cache;
             $this->headers = $headers;
             $this->idGenerator = $idGenerator;
    @@ -293,7 +293,7 @@ class Swift_Mime_SimpleMimeEntity implements Swift_Mime_CharsetObserver, Swift_M
         public function setChildren(array $children, $compoundLevel = null)
         {
             // TODO: Try to refactor this logic
    -        $compoundLevel = $compoundLevel ?? $this->getCompoundLevel($children);
    +        $compoundLevel = isset($compoundLevel) ? $compoundLevel : $this->getCompoundLevel($children);
             $immediateChildren = array();
             $grandchildren = array();
             $newContentType = $this->userContentType;
    @@ -420,7 +420,7 @@ class Swift_Mime_SimpleMimeEntity implements Swift_Mime_CharsetObserver, Swift_M
         public function getBoundary()
         {
             if (!isset($this->boundary)) {
    -            $this->boundary = '_=_swift_'.time().'_'.bin2hex(random_bytes(16)).'_=_';
    +            $this->boundary = '_=_swift_'.time().'_'.md5(getmypid().'.'.time().'.'.uniqid(mt_rand(), true)).'_=_';
             }
     
             return $this->boundary;
    @@ -813,7 +813,7 @@ class Swift_Mime_SimpleMimeEntity implements Swift_Mime_CharsetObserver, Swift_M
         {
             $this->headers = clone $this->headers;
             $this->encoder = clone $this->encoder;
    -        $this->cacheKey = bin2hex(random_bytes(16)); // set 32 hex values
    +        $this->cacheKey = md5(getmypid().'.'.time().'.'.uniqid(mt_rand(), true));
             $children = array();
             foreach ($this->children as $pos => $child) {
                 $children[$pos] = clone $child;
    diff --git a/htdocs/includes/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php b/htdocs/includes/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php
    index 9d5feefb92c..745ee879003 100644
    --- a/htdocs/includes/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php
    +++ b/htdocs/includes/swiftmailer/lib/classes/Swift/Plugins/DecoratorPlugin.php
    @@ -159,7 +159,7 @@ class Swift_Plugins_DecoratorPlugin implements Swift_Events_SendListener, Swift_
                 return $this->replacements->getReplacementsFor($address);
             }
     
    -        return $this->replacements[$address] ?? null;
    +        return isset($this->replacements[$address]) ? $this->replacements[$address] : null;
         }
     
         /**
    diff --git a/htdocs/includes/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php b/htdocs/includes/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php
    index eea2648c9e9..e2231151993 100644
    --- a/htdocs/includes/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php
    +++ b/htdocs/includes/swiftmailer/lib/classes/Swift/Signers/SMimeSigner.php
    @@ -278,7 +278,7 @@ class Swift_Signers_SMimeSigner implements Swift_Signers_BodySigner
                 $args[] = $this->extraCerts;
             }
     
    -        if (!openssl_pkcs7_sign(...$args)) {
    +        if (!call_user_func_array('openssl_pkcs7_sign', $args)) {
                 throw new Swift_IoException(sprintf('Failed to sign S/Mime message. Error: "%s".', openssl_error_string()));
             }
     
    diff --git a/htdocs/includes/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php b/htdocs/includes/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php
    index fa5d2110041..7b8608d4a1b 100644
    --- a/htdocs/includes/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php
    +++ b/htdocs/includes/swiftmailer/lib/classes/Swift/Transport/Esmtp/Auth/NTLMAuthenticator.php
    @@ -58,7 +58,7 @@ class Swift_Transport_Esmtp_Auth_NTLMAuthenticator implements Swift_Transport_Es
     
                 // extra parameters for our unit cases
                 $timestamp = func_num_args() > 3 ? func_get_arg(3) : $this->getCorrectTimestamp(bcmul(microtime(true), '1000'));
    -            $client = func_num_args() > 4 ? func_get_arg(4) : random_bytes(8);
    +            $client = func_num_args() > 4 ? func_get_arg(4) : $this->getRandomBytes(8);
     
                 // Message 3 response
                 $this->sendMessage3($response, $username, $password, $timestamp, $client, $agent);
    @@ -548,6 +548,22 @@ class Swift_Transport_Esmtp_Auth_NTLMAuthenticator implements Swift_Transport_Es
             return $byte;
         }
     
    +    /**
    +     * Create random bytes.
    +     *
    +     * @param $length
    +     *
    +     * @return string
    +     */
    +    protected function getRandomBytes($length)
    +    {
    +        $bytes = openssl_random_pseudo_bytes($length, $strong);
    +        if (false !== $bytes && true === $strong) {
    +            return $bytes;
    +        }
    +        throw new RuntimeException('OpenSSL did not produce a secure random number.');
    +    }
    +
         /** ENCRYPTION ALGORITHMS */
     
         /**
    diff --git a/htdocs/includes/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php b/htdocs/includes/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php
    index 7eb7ef33086..56d9c748769 100644
    --- a/htdocs/includes/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php
    +++ b/htdocs/includes/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php
    @@ -208,7 +208,7 @@ class Swift_Transport_EsmtpTransport extends Swift_Transport_AbstractSmtpTranspo
          */
         public function getSourceIp()
         {
    -        return $this->params['sourceIp'] ?? null;
    +        return isset($this->params['sourceIp']) ? $this->params['sourceIp'] : null;
         }
     
         /**
    diff --git a/htdocs/includes/swiftmailer/lib/swiftmailer_generate_mimes_config.php b/htdocs/includes/swiftmailer/lib/swiftmailer_generate_mimes_config.php
    old mode 100755
    new mode 100644
    diff --git a/htdocs/includes/tcpdi/tcpdi_parser.php b/htdocs/includes/tcpdi/tcpdi_parser.php
    index 038994568ac..cdeaf4f94e6 100644
    --- a/htdocs/includes/tcpdi/tcpdi_parser.php
    +++ b/htdocs/includes/tcpdi/tcpdi_parser.php
    @@ -484,7 +484,7 @@ class tcpdi_parser {
     			$v = $sarr[$key];
     			if (($key == '/Type') AND ($v[0] == PDF_TYPE_TOKEN AND ($v[1] == 'XRef'))) {
     				$valid_crs = true;
    -			} elseif (($key == '/Index') AND ($v[0] == PDF_TYPE_ARRAY AND count($v[1] >= 2))) {
    +			} elseif (($key == '/Index') AND ($v[0] == PDF_TYPE_ARRAY AND count($v[1]) >= 2)) {
     				// first object number in the subsection
     				$index_first = intval($v[1][0][1]);
     				// number of entries in the subsection
    diff --git a/htdocs/includes/tecnickcom/tcpdf/tcpdf.php b/htdocs/includes/tecnickcom/tcpdf/tcpdf.php
    index ef411a17dee..3cdfff4f227 100644
    --- a/htdocs/includes/tecnickcom/tcpdf/tcpdf.php
    +++ b/htdocs/includes/tecnickcom/tcpdf/tcpdf.php
    @@ -17783,7 +17783,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
     											// justify block
     											if (!TCPDF_STATIC::empty_string($this->lispacer)) {
     												$this->lispacer = '';
    -												continue;
    +												break;
     											}
     											preg_match('/([0-9\.\+\-]*)[\s]([0-9\.\+\-]*)[\s]([0-9\.\+\-]*)[\s]('.$strpiece[1][0].')[\s](re)([\s]*)/x', $pmid, $xmatches);
     											if (!isset($xmatches[1])) {
    diff --git a/htdocs/index.php b/htdocs/index.php
    index 9ca5585d0ca..1ef48ea9bae 100644
    --- a/htdocs/index.php
    +++ b/htdocs/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2004	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012	Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2015		Marcos García			<marcosgdf@gmail.com>
      *
    @@ -358,7 +358,7 @@ print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
     /*
      * Dolibarr Working Board with weather
      */
    -$showweather=empty($conf->global->MAIN_DISABLE_METEO)?1:0;
    +$showweather=(empty($conf->global->MAIN_DISABLE_METEO) || $conf->global->MAIN_DISABLE_METEO == 2) ? 1 : 0;
     
     //Array that contains all WorkboardResponse classes to process them
     $dashboardlines=array();
    @@ -536,7 +536,7 @@ $boxwork.='</tr>'."\n";
     if ($showweather)
     {
         $boxwork.='<tr class="nohover">';
    -    $boxwork.='<td class="nohover hideonsmartphone center valignmiddle">';
    +    $boxwork.='<td class="nohover'.($conf->global->MAIN_DISABLE_METEO == 2 ?' hideonsmartphone' : '').' center valignmiddle">';
         $text='';
         if ($totallate > 0) $text=$langs->transnoentitiesnoconv("WarningYouHaveAtLeastOneTaskLate").' ('.$langs->transnoentitiesnoconv("NActionsLate",$totallate.(!empty($conf->global->MAIN_USE_METEO_WITH_PERCENTAGE) ? '%' : '')).')';
         else $text=$langs->transnoentitiesnoconv("NoItemLate");
    @@ -552,7 +552,8 @@ if ($showweather)
     $nbworkboardempty=0;
     if (! empty($valid_dashboardlines))
     {
    -	$boxwork.='<tr class="nohover"><td class="tdboxstats nohover flexcontainer centpercent">';
    +	$boxwork.='<tr class="nohover"><td class="tdboxstats nohover flexcontainer centpercent"><div style="display: flex: flex-wrap: wrap">';
    +	
         foreach($valid_dashboardlines as $board)
         {
             if (empty($board->nbtodo)) $nbworkboardempty++;
    @@ -565,6 +566,10 @@ if (! empty($valid_dashboardlines))
             $sep=($conf->dol_use_jmobile?'<br>':' ');
             $boxwork .= '<span class="boxstatstext" title="'.dol_escape_htmltag($board->label).'">'.$board->img.' '.$board->label.'</span><br>';
             $boxwork .= '<a class="valignmiddle dashboardlineindicator" href="'.$board->url.'"><span class="dashboardlineindicator'.(($board->nbtodo == 0)?' dashboardlineok':'').'">'.$board->nbtodo.'</span></a>';
    +        if ($board->total > 0 && ! empty($conf->global->MAIN_WORKBOARD_SHOW_TOTAL_WO_TAX))
    +	{
    +		$boxwork .= '&nbsp;/&nbsp;<a class="valignmiddle dashboardlineindicator" href="'.$board->url.'"><span class="dashboardlineindicator'.(($board->nbtodo == 0)?' dashboardlineok':'').'">'.price($board->total)	.'</span></a>';
    +	}
             $boxwork .= '</div>';
             if ($board->nbtodolate > 0)
             {
    @@ -588,6 +593,8 @@ if (! empty($valid_dashboardlines))
         $boxwork .='<div class="boxstatsindicator thumbstat150 nobold nounderline"><div class="boxstats150empty"></div></div>';
         $boxwork .='<div class="boxstatsindicator thumbstat150 nobold nounderline"><div class="boxstats150empty"></div></div>';
         $boxwork .='<div class="boxstatsindicator thumbstat150 nobold nounderline"><div class="boxstats150empty"></div></div>';
    +    
    +    $boxwork .='</div>';
         $boxwork .='</td></tr>';
     }
     else
    @@ -675,8 +682,8 @@ if ($user->admin && empty($conf->global->MAIN_REMOVE_INSTALL_WARNING))
     
     //print 'mem='.memory_get_usage().' - '.memory_get_peak_usage();
     
    +// End of page
     llxFooter();
    -
     $db->close();
     
     
    @@ -699,15 +706,27 @@ function showWeather($totallate,$text,$options)
     
         $used_conf = !empty($conf->global->MAIN_USE_METEO_WITH_PERCENTAGE) ? 'MAIN_METEO_PERCENTAGE_LEVEL' : 'MAIN_METEO_LEVEL';
     
    -    $level0=$offset;           if (! empty($conf->global->{$used_conf.'0'})) $level0=$conf->global->{$used_conf.'0'};
    -    $level1=$offset+1*$factor; if (! empty($conf->global->{$used_conf.'1'})) $level1=$conf->global->{$used_conf.'1'};
    -    $level2=$offset+2*$factor; if (! empty($conf->global->{$used_conf.'2'})) $level2=$conf->global->{$used_conf.'2'};
    -    $level3=$offset+3*$factor; if (! empty($conf->global->{$used_conf.'3'})) $level3=$conf->global->{$used_conf.'3'};
    +    $level0=$offset;
    +    if (! empty($conf->global->{$used_conf.'0'})) {
    +        $level0=$conf->global->{$used_conf.'0'};
    +    }
    +    $level1=$offset+1*$factor;
    +    if (! empty($conf->global->{$used_conf.'1'})) {
    +        $level1=$conf->global->{$used_conf.'1'};
    +    }
    +    $level2=$offset+2*$factor;
    +    if (! empty($conf->global->{$used_conf.'2'})) {
    +        $level2=$conf->global->{$used_conf.'2'};
    +    }
    +    $level3=$offset+3*$factor;
    +    if (! empty($conf->global->{$used_conf.'3'})) {
    +        $level3=$conf->global->{$used_conf.'3'};
    +    }
     
         if ($totallate <= $level0) $out.=img_weather($text,'weather-clear.png',$options);
    -    if ($totallate > $level0 && $totallate <= $level1) $out.=img_weather($text,'weather-few-clouds.png',$options);
    -    if ($totallate > $level1 && $totallate <= $level2) $out.=img_weather($text,'weather-clouds.png',$options);
    -    if ($totallate > $level2 && $totallate <= $level3) $out.=img_weather($text,'weather-many-clouds.png',$options);
    -    if ($totallate > $level3) $out.=img_weather($text,'weather-storm.png',$options);
    +    elseif ($totallate > $level0 && $totallate <= $level1) $out.=img_weather($text,'weather-few-clouds.png',$options);
    +    elseif ($totallate > $level1 && $totallate <= $level2) $out.=img_weather($text,'weather-clouds.png',$options);
    +    elseif ($totallate > $level2 && $totallate <= $level3) $out.=img_weather($text,'weather-many-clouds.png',$options);
    +    elseif ($totallate > $level3) $out.=img_weather($text,'weather-storm.png',$options);
         return $out;
     }
    diff --git a/htdocs/install/check.php b/htdocs/install/check.php
    index 10ff1b603bb..7eb0bce2dde 100644
    --- a/htdocs/install/check.php
    +++ b/htdocs/install/check.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004-2005  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2005       Marc Barilley / Ocebo   <marc@ocebo.com>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2013-2014  Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2014       Marcos García           <marcosgdf@gmail.com>
      * Copyright (C) 2015-2016  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    @@ -40,7 +40,7 @@ $langs->setDefaultLang($setuplang);
     
     $langs->load("install");
     
    -// Now we load forced value from install.forced.php file.
    +// Now we load forced/pre-set values from install.forced.php file.
     $useforcedwizard=false;
     $forcedfile="./install.forced.php";
     if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
    @@ -49,14 +49,14 @@ if (@file_exists($forcedfile)) {
     	include_once $forcedfile;
     }
     
    -dolibarr_install_syslog("--- check: Dolibarr install/upgrade process started");
    +dolibarr_install_syslog("- check: Dolibarr install/upgrade process started");
     
     
     /*
      *	View
      */
     
    -pHeader('','');     // No next step for navigation buttons. Next step is defined by clik on links.
    +pHeader('','');     // No next step for navigation buttons. Next step is defined by click on links.
     
     
     //print "<br>\n";
    @@ -233,13 +233,13 @@ else
     		else dolibarr_install_syslog("check: failed to create a new file " . $conffile . " into current dir " . getcwd() . ". Please check permissions.", LOG_ERR);
     	}
     
    -	// First install, we can't upgrade
    +	// First install: no upgrade necessary/required
     	$allowupgrade=false;
     }
     
     
     
    -// File is missng and can't be created
    +// File is missing and cannot be created
     if (! file_exists($conffile))
     {
     	print '<img src="../theme/eldy/img/error.png" alt="Error"> '.$langs->trans("ConfFileDoesNotExistsAndCouldNotBeCreated",$conffiletoshow);
    @@ -258,7 +258,7 @@ else
     
     		$allowinstall=0;
     	}
    -	// File exists but can't be modified
    +	// File exists but cannot be modified
     	elseif (!is_writable($conffile))
     	{
     		if ($confexists)
    @@ -294,7 +294,7 @@ else
     	}
     	print "<br>\n";
     
    -	// Requirements ok, we display the next step button
    +	// Requirements met/all ok: display the next step button
     	if ($checksok)
     	{
     		$ok=0;
    @@ -307,7 +307,7 @@ else
     			{
     				if (! file_exists($dolibarr_main_document_root."/core/lib/admin.lib.php"))
     				{
    -				    print '<font class="error">A '.$conffiletoshow.' file exists with a dolibarr_main_document_root to '.$dolibarr_main_document_root.' that seems wrong. Try to fix or remove the '.$conffiletoshow.' file.</font><br>'."\n";
    +                    print '<span class="error">A '.$conffiletoshow.' file exists with a dolibarr_main_document_root to '.$dolibarr_main_document_root.' that seems wrong. Try to fix or remove the '.$conffiletoshow.' file.</span><br>'."\n";
     				    dol_syslog("A '" . $conffiletoshow . "' file exists with a dolibarr_main_document_root to " . $dolibarr_main_document_root . " that seems wrong. Try to fix or remove the '" . $conffiletoshow . "' file.", LOG_WARNING);
     				}
     				else
    @@ -326,7 +326,7 @@ else
                     else $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass);
                 }
     
    -    				// $conf is already instancied inside inc.php
    +    				// $conf already created in inc.php
         				$conf->db->type = $dolibarr_main_db_type;
         				$conf->db->host = $dolibarr_main_db_host;
         				$conf->db->port = $dolibarr_main_db_port;
    @@ -342,7 +342,7 @@ else
     			}
     		}
     
    -		// If a database access is available, we set more variable
    +		// If database access is available, we set more variables
     		if ($ok)
     		{
     			if (empty($dolibarr_main_db_encryption)) $dolibarr_main_db_encryption=0;
    @@ -364,8 +364,8 @@ else
     		// Show title
     		if (! empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ! empty($conf->global->MAIN_VERSION_LAST_INSTALL))
     		{
    -			print $langs->trans("VersionLastUpgrade").': <b><font class="ok">'.(empty($conf->global->MAIN_VERSION_LAST_UPGRADE)?$conf->global->MAIN_VERSION_LAST_INSTALL:$conf->global->MAIN_VERSION_LAST_UPGRADE).'</font></b><br>';
    -			print $langs->trans("VersionProgram").': <b><font class="ok">'.DOL_VERSION.'</font></b>';
    +            print $langs->trans("VersionLastUpgrade").': <b><span class="ok">'.(empty($conf->global->MAIN_VERSION_LAST_UPGRADE)?$conf->global->MAIN_VERSION_LAST_INSTALL:$conf->global->MAIN_VERSION_LAST_UPGRADE).'</span></b><br>';
    +            print $langs->trans("VersionProgram").': <b><span class="ok">'.DOL_VERSION.'</span></b>';
     			//print ' '.img_warning($langs->trans("RunningUpdateProcessMayBeRequired"));
     			print '<br>';
     			print '<br>';
    @@ -375,7 +375,7 @@ else
     		print $langs->trans("InstallEasy")." ";
     		print $langs->trans("ChooseYourSetupMode");
     
    -        print '<br><br>';
    +        print '<br>';
     
     		$foundrecommandedchoice=0;
     
    @@ -383,9 +383,9 @@ else
             $notavailable_choices = array();
     
     		// Show first install line
    -		$choice = '<tr class="listofchoices"><td class="listofchoices nowrap" align="center"><b>'.$langs->trans("FreshInstall").'</b>';
    +        $choice = "\n".'<tr><td class="nowrap center"><b>'.$langs->trans("FreshInstall").'</b>';
     		$choice .= '</td>';
    -		$choice .= '<td class="listofchoices listofchoicesdesc">';
    +        $choice .= '<td class="listofchoicesdesc">';
     		$choice .= $langs->trans("FreshInstallDesc");
     		if (empty($dolibarr_main_db_host))	// This means install process was not run
     		{
    @@ -397,7 +397,7 @@ else
     		}
     
             $choice .= '</td>';
    -        $choice .= '<td class="listofchoices" align="center">';
    +        $choice .= '<td class="center">';
     		if ($allowinstall)
     		{
                 $choice .= '<a class="button" href="fileconf.php?selectlang='.$setuplang.'">'.$langs->trans("Start").'</a>';
    @@ -436,7 +436,9 @@ else
     								array('from'=>'4.0.0', 'to'=>'5.0.0'),
     								array('from'=>'5.0.0', 'to'=>'6.0.0'),
     								array('from'=>'6.0.0', 'to'=>'7.0.0'),
    -								array('from'=>'7.0.0', 'to'=>'8.0.0')
    +								array('from'=>'7.0.0', 'to'=>'8.0.0'),
    +								array('from'=>'8.0.0', 'to'=>'9.0.0'),
    +								array('from'=>'9.0.0', 'to'=>'10.0.0')
     		);
     
     		$count=0;
    @@ -464,7 +466,7 @@ else
     
                 if ($ok)
                 {
    -                if (count($dolibarrlastupgradeversionarray) >= 2)	// If a database access is available and last upgrade version is known
    +                if (count($dolibarrlastupgradeversionarray) >= 2)	// If database access is available and last upgrade version is known
                     {
                         // Now we check if this is the first qualified choice
                         if ($allowupgrade && empty($foundrecommandedchoice) &&
    @@ -476,22 +478,23 @@ else
                         }
                     }
                     else {
    -                    // We can not recommand a choice.
    +                    // We cannot recommend a choice.
                         // A version of install may be known, but we need last upgrade.
                     }
                 }
     
    -            $choice .= '<tr class="listofchoices '.($recommended_choice ? 'choiceselected' : '').'">';
    -            $choice .= '<td class="listofchoices nowrap" align="center"><b>'.$langs->trans("Upgrade").'<br>'.$newversionfrom.$newversionfrombis.' -> '.$newversionto.'</b></td>';
    -            $choice .= '<td class="listofchoices listofchoicesdesc">';
    +            $choice .= "\n".'<tr'.($recommended_choice ? ' class="choiceselected"' : '').'>';
    +            $choice .= '<td class="nowrap center"><b>'.$langs->trans("Upgrade").'<br>'.$newversionfrom.$newversionfrombis.' -> '.$newversionto.'</b></td>';
    +            $choice .= '<td class="listofchoicesdesc">';
                 $choice .= $langs->trans("UpgradeDesc");
     
                 if ($recommended_choice)
                 {
                     $choice .= '<br>';
                     //print $langs->trans("InstallChoiceRecommanded",DOL_VERSION,$conf->global->MAIN_VERSION_LAST_UPGRADE);
    -                $choice .= '<div class="center"><div class="ok">'.$langs->trans("InstallChoiceSuggested").'</div>';
    -                if ($count < count($migarray))	// There is other choices after
    +                $choice .= '<div class="center">';
    +                $choice .=  '<div class="ok">'.$langs->trans("InstallChoiceSuggested").'</div>';
    +                if ($count < count($migarray))	// There are other choices after
                     {
                         print $langs->trans("MigrateIsDoneStepByStep",DOL_VERSION);
                     }
    @@ -499,7 +502,7 @@ else
                 }
     
                 $choice .= '</td>';
    -            $choice .= '<td class="listofchoices" align="center">';
    +            $choice .= '<td class="center">';
     			if ($allowupgrade)
     			{
     				$disabled=false;
    @@ -511,8 +514,14 @@ else
     				{
     					$foundrecommandedchoice = 2;
     				}
    -				if ($disabled) $choice .= '<span class="buttonDisable runupgrade"'.($disabled?' disabled="disabled"':'').' href="#">'.$langs->trans("NotAvailable").'</span>';
    -				else $choice .= '<a class="button runupgrade"'.($disabled?' disabled="disabled"':'').' href="upgrade.php?action=upgrade'.($count<count($migrationscript)?'_'.$versionto:'').'&amp;selectlang='.$setuplang.'&amp;versionfrom='.$versionfrom.'&amp;versionto='.$versionto.'">'.$langs->trans("Start").'</a>';
    +				if ($disabled)
    +                {
    +                    $choice .= '<span class="button">'.$langs->trans("NotAvailable").'</span>';
    +                }
    +				else
    +                {
    +                    $choice .= '<a class="button runupgrade" href="upgrade.php?action=upgrade'.($count<count($migrationscript)?'_'.$versionto:'').'&amp;selectlang='.$setuplang.'&amp;versionfrom='.$versionfrom.'&amp;versionto='.$versionto.'">'.$langs->trans("Start").'</a>';
    +                }
     			}
     			else
     			{
    @@ -536,47 +545,43 @@ else
     		}
     
             // Array of install choices
    +        print"\n";
             print '<table width="100%" class="listofchoices">';
             foreach ($available_choices as $choice) {
                 print $choice;
             }
     
    -        print '</table>';
    +        print '</table>'."\n";
     
             if (count($notavailable_choices)) {
     
    -            print '<br>';
    -            print '<div id="AShowChoices">';
    -            print '<img src="../theme/eldy/img/1downarrow.png"> <a href="#">'.$langs->trans('ShowNotAvailableOptions').'</a>';
    +            print '<br><div id="AShowChoices" style="opacity: 0.5">';
    +            print '<img id="availchoice" src="../theme/eldy/img/1downarrow.png"> '.$langs->trans('ShowNotAvailableOptions').'...';
                 print '</div>';
     
                 print '<div id="navail_choices" style="display:none">';
    -            print '<br>';
    +            print "<br>\n";
                 print '<table width="100%" class="listofchoices">';
                 foreach ($notavailable_choices as $choice) {
                     print $choice;
                 }
     
    -            print '</table>';
    +            print '</table>'."\n";
                 print '</div>';
             }
    -
     	}
    -
     }
     
     print '<script type="text/javascript">
     
    -$("div#AShowChoices a").click(function() {
    +$("div#AShowChoices").click(function() {
     
         $("div#navail_choices").toggle();
     
         if ($("div#navail_choices").css("display") == "none") {
    -        $(this).text("'.$langs->trans('ShowNotAvailableOptions').'");
    -        $(this).parent().children("img").attr("src", "../theme/eldy/img/1downarrow.png");
    +        $(this).text("'.$langs->trans('ShowNotAvailableOptions').'...");
         } else {
    -        $(this).text("'.$langs->trans('HideNotAvailableOptions').'");
    -        $(this).parent().children("img").attr("src", "../theme/eldy/img/1uparrow.png");
    +        $(this).text("'.$langs->trans('HideNotAvailableOptions').'...");
         }
     
     });
    @@ -589,6 +594,5 @@ $(".runupgrade").click(function() {
     
     </script>';
     
    -dolibarr_install_syslog("--- check: end");
    +dolibarr_install_syslog("- check: end");
     pFooter(1);	// Never display next button
    -
    diff --git a/htdocs/install/default.css b/htdocs/install/default.css
    index e23a36ddd21..2e005a30b21 100644
    --- a/htdocs/install/default.css
    +++ b/htdocs/install/default.css
    @@ -1,5 +1,5 @@
    -/* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org> 
    - * Copyright (C) 2009-2017 Laurent Destailleur  <eldy@users.sourceforge.net> 
    +/* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2009-2017 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
    @@ -89,16 +89,16 @@ div.soustitre {
     	body {
     		margin: 15px 4px 4px;
     	}
    -	
    -	input, input[type=text], input[type=password], select, textarea     { 
    -		min-width: 20px; 
    +
    +	input, input[type=text], input[type=password], select, textarea     {
    +		min-width: 20px;
         	min-height: 1.4em;
         	line-height: 1.4em;
         	padding: .4em .1em;
         	border: 1px solid #BBB;
         	/* max-width: inherit; why this ? */
          }
    -     
    +
         .hideonsmartphone { display: none; }
         .noenlargeonsmartphone { width : 50px !important; display: inline !important; }
         .maxwidthonsmartphone { max-width: 100px; }
    @@ -120,13 +120,13 @@ div.soustitre {
         	padding-left: 0;
         	padding-right: 0;
     	}
    -	
    +
     	table.main-inside {
     		padding-left: 1px;
     		padding-right: 1px;
     		line-height: 20px;
     	}
    -	
    +
     	span.titre {
     	    font-size: 90%;
     	    font-weight: normal;
    @@ -146,7 +146,7 @@ input:disabled
     	padding: 0 0 0 0;
     	margin: 0 0 0 0;
     	color: #AAA !important;
    -	cursor: not-allowed !important; 
    +	cursor: not-allowed !important;
     }
     
     input[type=submit] {
    @@ -199,7 +199,7 @@ input:-webkit-autofill {
         -webkit-box-shadow: 0 0 0 50px #FBFFEA inset;
     }
     
    -table.listofchoices, tr.listofchoices, td.listofchoices {
    +table.listofchoices, table.listofchoices tr, table.listofchoices td {
     	border-collapse: collapse;
         padding: 4px;
         color: #000000;
    @@ -207,15 +207,12 @@ table.listofchoices, tr.listofchoices, td.listofchoices {
     	line-height: 18px;
     }
     
    -tr.listofchoices {
    -    height: 42px;	
    -}
     .listofchoicesdesc {
     	color: #999 !important;
     }
     .blinkwait {
     	font-weight: bold;
    -	text-decoration:blink !important;	
    +	text-decoration:blink !important;
     }
     
     .installchoices table tr td  {
    @@ -230,7 +227,7 @@ tr.listofchoices {
     div.ok {
     	color: #114466;
     }
    -font.ok {
    +span.ok {
     	color: #114466;
     }
     
    @@ -238,7 +235,7 @@ font.ok {
     div.warning {
     	color: #777711;
     }
    -font.warning {
    +span.warning {
     	color: #777711;
     }
     
    @@ -249,7 +246,7 @@ div.error {
     	padding: 0.2em 0.2em 0.2em 0;
     	margin: 0.5em 0 0.5em 0;
     }
    -font.error {
    +span.error {
     	color: #550000;
     	font-weight: bold;
     }
    diff --git a/htdocs/install/doctemplates/shipment/template_shipment.odt b/htdocs/install/doctemplates/shipment/template_shipment.odt
    deleted file mode 100755
    index a7076fd0e00..00000000000
    Binary files a/htdocs/install/doctemplates/shipment/template_shipment.odt and /dev/null differ
    diff --git a/htdocs/install/doctemplates/shipments/index.html b/htdocs/install/doctemplates/shipments/index.html
    new file mode 100644
    index 00000000000..e69de29bb2d
    diff --git a/htdocs/install/doctemplates/shipments/template_shipment.odt b/htdocs/install/doctemplates/shipments/template_shipment.odt
    new file mode 100644
    index 00000000000..100afe5dac4
    Binary files /dev/null and b/htdocs/install/doctemplates/shipments/template_shipment.odt differ
    diff --git a/htdocs/install/doctemplates/supplier_proposals/index.html b/htdocs/install/doctemplates/supplier_proposals/index.html
    new file mode 100644
    index 00000000000..e69de29bb2d
    diff --git a/htdocs/install/doctemplates/supplier_proposal/template_supplier_proposal.odt b/htdocs/install/doctemplates/supplier_proposals/template_supplier_proposal.odt
    similarity index 100%
    rename from htdocs/install/doctemplates/supplier_proposal/template_supplier_proposal.odt
    rename to htdocs/install/doctemplates/supplier_proposals/template_supplier_proposal.odt
    diff --git a/htdocs/install/doctemplates/websites/index.html b/htdocs/install/doctemplates/websites/index.html
    new file mode 100644
    index 00000000000..e69de29bb2d
    diff --git a/htdocs/install/doctemplates/websites/website_template-corporate.zip b/htdocs/install/doctemplates/websites/website_template-corporate.zip
    new file mode 100644
    index 00000000000..f4b25d9a69e
    Binary files /dev/null and b/htdocs/install/doctemplates/websites/website_template-corporate.zip differ
    diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php
    index b0affb2218a..5fb832ab8a0 100644
    --- a/htdocs/install/fileconf.php
    +++ b/htdocs/install/fileconf.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
      * Copyright (C) 2004       Sebastien DiCintio      <sdicintio@ressource-toi.org>
    - * Copyright (C) 2005-2011  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2016       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
     /**
      *       \file       htdocs/install/fileconf.php
      *       \ingroup    install
    - *       \brief      Ask all informations required to build Dolibarr htdocs/conf/conf.php file (will be wrote on disk on next page step1)
    + *       \brief      Ask all information required to build Dolibarr htdocs/conf/conf.php file (will be written to disk on next page step1)
      */
     
     include_once 'inc.php';
    @@ -36,10 +36,9 @@ $err=0;
     $setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):(isset($_GET["lang"])?$_GET["lang"]:'auto');
     $langs->setDefaultLang($setuplang);
     
    -$langs->load("install");
    -$langs->load("errors");
    +$langs->loadLangs(array("install", "errors"));
     
    -dolibarr_install_syslog("--- fileconf: entering fileconf.php page");
    +dolibarr_install_syslog("- fileconf: entering fileconf.php page");
     
     // You can force preselected values of the config step of Dolibarr by adding a file
     // install.forced.php into directory htdocs/install (This is the case with some wizard
    @@ -56,7 +55,7 @@ if (! isset($force_install_databaselogin))		$force_install_databaselogin='';
     if (! isset($force_install_databasepass))		$force_install_databasepass='';
     if (! isset($force_install_databaserootlogin))	$force_install_databaserootlogin='';
     if (! isset($force_install_databaserootpass))	$force_install_databaserootpass='';
    -// Now we load forced value from install.forced.php file.
    +// Now we load forced values from install.forced.php file.
     $useforcedwizard=false;
     $forcedfile="./install.forced.php";
     if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";	// Must be after inc.php
    @@ -71,7 +70,7 @@ if (@file_exists($forcedfile)) {
      *	View
      */
     
    -session_start();	// To be able to keep info into session (used for not loosing pass during navigation. pass must not transit throug parmaeters)
    +session_start();	// To be able to keep info into session (used for not losing pass during navigation. pass must not transit through parmaeters)
     
     pHeader($langs->trans("ConfigurationFile"), "step1", "set", "", (empty($force_dolibarr_js_JQUERY)?'':$force_dolibarr_js_JQUERY.'/'), 'main-inside-bis');
     
    @@ -80,7 +79,7 @@ if (! is_writable($conffile))
     {
         print $langs->trans("ConfFileIsNotWritable", $conffiletoshow);
     	dolibarr_install_syslog("fileconf: config file is not writable", LOG_WARNING);
    -	dolibarr_install_syslog("--- fileconf: end");
    +    dolibarr_install_syslog("- fileconf: end");
         pFooter(1,$setuplang,'jscheckparam');
         exit;
     }
    @@ -117,20 +116,18 @@ if (! empty($force_install_message))
     
     	<!-- Documents root $dolibarr_main_document_root -->
     	<tr>
    -	<?php
    -	print '<td class="tdtop label"><b>';
    -	print $langs->trans("WebPagesDirectory");
    -	print "</b></td>";
    -
    +        <td class="label"><label for="main_dir"><b><?php print $langs->trans("WebPagesDirectory"); ?></b></label></td>
    +<?php
     	if (empty($dolibarr_main_url_root)) {
     		$dolibarr_main_document_root = detect_dolibarr_main_document_root();
     	}
     	?>
    -		<td class="label tdtop">
    +		<td class="label">
     			<input type="text"
     			       class="minwidth300"
    -			       value="<?php print $dolibarr_main_document_root ?>"
    -			       name="main_dir"
    +                   id="main_dir"
    +                   name="main_dir"
    +                   value="<?php print $dolibarr_main_document_root ?>"
     				<?php if (!empty($force_install_noedit)) {
     					print ' disabled';
     				} ?>
    @@ -149,19 +146,19 @@ if (! empty($force_install_message))
     
     	<!-- Documents URL $dolibarr_main_data_root -->
     	<tr>
    -		<td class="tdtop label"><b> <?php print $langs->trans("DocumentsDirectory"); ?></b>
    -		</td>
    +		<td class="label"><label for="main_data_dir"><b><?php print $langs->trans("DocumentsDirectory"); ?></b></label></td>
     		<?php
     		$dolibarr_main_data_root = @$force_install_main_data_root;
     		if (empty($dolibarr_main_data_root)) {
     			$dolibarr_main_data_root = detect_dolibarr_main_data_root($dolibarr_main_document_root);
     		}
     		?>
    -		<td class="label tdtop">
    +		<td class="label">
     			<input type="text"
     			       class="minwidth300"
    -			       value="<?php print $dolibarr_main_data_root ?>"
    -			       name="main_data_dir"
    +                   id="main_data_dir"
    +                   name="main_data_dir"
    +                   value="<?php print $dolibarr_main_data_root ?>"
     				<?php if (!empty($force_install_noedit)) {
     					print ' disabled';
     				} ?>
    @@ -174,7 +171,7 @@ if (! empty($force_install_message))
     		?>
     		<ul>
     			<li>/var/lib/dolibarr/documents</li>
    -			<li>C:/My Documents/dolibarr/</li>
    +			<li>C:/My Documents/dolibarr/documents</li>
     		</ul>
     		</td>
     	</tr>
    @@ -186,12 +183,13 @@ if (! empty($force_install_message))
     	}
     	?>
     	<tr>
    -		<td class="tdtop label"><b> <?php echo $langs->trans("URLRoot"); ?></b>
    +        <td class="label"><label for="main_url"><b><?php echo $langs->trans("URLRoot"); ?></b></label>
     		</td>
    -		<td class="tdtop label">
    +		<td class="label">
     			<input type="text"
     			       class="minwidth300"
    -			       name="main_url"
    +			       id="main_url"
    +                   name="main_url"
     			       value="<?php print $dolibarr_main_url_root; ?> "
     				<?php if (!empty($force_install_noedit)) {
     					print ' disabled';
    @@ -202,6 +200,7 @@ if (! empty($force_install_message))
     		<ul>
     			<li>http://localhost/</li>
     			<li>http://www.myserver.com:8180/dolibarr</li>
    +			<li>https://www.myvirtualfordolibarr.com/</li>
     		</ul>
     		</td>
     	</tr>
    @@ -210,10 +209,11 @@ if (! empty($force_install_message))
     	if (! empty($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == 'on') {   // Enabled if the installation process is "https://"
     	    ?>
     	<tr>
    -		<td class="tdtop label"><?php echo $langs->trans("ForceHttps"); ?></td>
    -		<td class="label tdtop">
    -			<input type="checkbox"
    -			       name="main_force_https"
    +                    <td class="label"><label for="main_force_https"><?php echo $langs->trans("ForceHttps"); ?></label></td>
    +                    <td class="label">
    +                        <input type="checkbox"
    +                               id="main_force_https"
    +                               name="main_force_https"
     				<?php if (!empty($force_install_mainforcehttps)) {
     					print ' checked';
     				} ?>
    @@ -239,11 +239,11 @@ if (! empty($force_install_message))
     	</tr>
     
     	<tr>
    -		<td class="label tdtop"><b> <?php echo $langs->trans("DatabaseName"); ?>
    -		</b></td>
    -		<td class="label tdtop">
    -			<input type="text" id="db_name"
    -			       name="db_name"
    +        <td class="label"><label for="db_name"><b><?php echo $langs->trans("DatabaseName"); ?></b></label></td>
    +		<td class="label">
    +			<input type="text"
    +			       id="db_name"
    +                   name="db_name"
     			       value="<?php echo (!empty($dolibarr_main_db_name)) ? $dolibarr_main_db_name : ($force_install_database ? $force_install_database : 'dolibarr'); ?>"
     				<?php if ($force_install_noedit == 2 && $force_install_database !== null) {
     					print ' disabled';
    @@ -262,8 +262,7 @@ if (! empty($force_install_message))
     	?>
     	<tr>
     		<!-- Driver type -->
    -		<td class="tdtop label"><b> <?php echo $langs->trans("DriverType"); ?>
    -		</b></td>
    +		<td class="label"><label for="db_type"><b><?php echo $langs->trans("DriverType"); ?></b></label></td>
     
     		<td class="label">
     		<?php
    @@ -338,10 +337,10 @@ if (! empty($force_install_message))
     	</tr>
     
     	<tr class="hidesqlite">
    -		<td class="tdtop label"><b> <?php echo $langs->trans("DatabaseServer"); ?>
    -		</b></td>
    -		<td class="tdtop label">
    +		<td class="label"><label for="db_host"><b><?php echo $langs->trans("DatabaseServer"); ?></b></label></td>
    +		<td class="label">
     			<input type="text"
    +                   id="db_host"
     			       name="db_host"
     			       value="<?php print (!empty($force_install_dbserver) ? $force_install_dbserver : (!empty($dolibarr_main_db_host) ? $dolibarr_main_db_host : 'localhost')); ?>"
     				<?php if ($force_install_noedit == 2 && $force_install_dbserver !== null) {
    @@ -355,8 +354,8 @@ if (! empty($force_install_message))
     	</tr>
     
     	<tr class="hidesqlite">
    -		<td class="tdtop label"><?php echo $langs->trans("Port"); ?></td>
    -		<td class="tdtop label">
    +        <td class="label"><label for="db_port"><?php echo $langs->trans("Port"); ?></label></td>
    +		<td class="label">
     			<input type="text"
     			       name="db_port"
     			       id="db_port"
    @@ -372,10 +371,10 @@ if (! empty($force_install_message))
     	</tr>
     
     	<tr class="hidesqlite">
    -		<td class="label tdtop"><?php echo $langs->trans("DatabasePrefix"); ?>
    -		</td>
    -		<td class="label tdtop">
    -			<input type="text" id="db_prefix"
    +        <td class="label"><label for="db_prefix"><?php echo $langs->trans("DatabasePrefix"); ?></label></td>
    +		<td class="label">
    +			<input type="text"
    +                   id="db_prefix"
     			       name="db_prefix"
     			       value="<?php echo(!empty($force_install_prefix) ? $force_install_prefix : (!empty($dolibarr_main_db_prefix) ? $dolibarr_main_db_prefix : 'llx_')); ?>"
     				<?php if ($force_install_noedit == 2 && $force_install_prefix !== null) {
    @@ -383,13 +382,12 @@ if (! empty($force_install_message))
     				} ?>
     			>
     		</td>
    -		<td class="comment"><?php echo $langs->trans("DatabasePrefix"); ?></td>
    +		<td class="comment"><?php echo $langs->trans("DatabasePrefixDescription"); ?></td>
     	</tr>
     
     	<tr class="hidesqlite">
    -		<td class="label tdtop"><?php echo $langs->trans("CreateDatabase"); ?>
    -		</td>
    -		<td class="label tdtop">
    +        <td class="label"><label for="db_create_database"><?php echo $langs->trans("CreateDatabase"); ?></label></td>
    +		<td class="label">
     			<input type="checkbox"
     			       id="db_create_database"
     			       name="db_create_database"
    @@ -406,10 +404,10 @@ if (! empty($force_install_message))
     	</tr>
     
     	<tr class="hidesqlite">
    -		<td class="label tdtop"><b><?php echo $langs->trans("Login"); ?></b>
    -		</td>
    -		<td class="label tdtop">
    -			<input type="text" id="db_user"
    +		<td class="label"><label for="db_user"><b><?php echo $langs->trans("Login"); ?></b></label></td>
    +		<td class="label">
    +			<input type="text"
    +                   id="db_user"
     			       name="db_user"
     			       value="<?php print (!empty($force_install_databaselogin)) ? $force_install_databaselogin : $dolibarr_main_db_user; ?>"
     				<?php if ($force_install_noedit == 2 && $force_install_databaselogin !== null) {
    @@ -421,10 +419,10 @@ if (! empty($force_install_message))
     	</tr>
     
     	<tr class="hidesqlite">
    -		<td class="label tdtop"><b><?php echo $langs->trans("Password"); ?></b>
    -		</td>
    -		<td class="label tdtop">
    -			<input type="password" id="db_pass" autocomplete="off"
    +		<td class="label"><label for="db_pass"><b><?php echo $langs->trans("Password"); ?></b></label></td>
    +		<td class="label">
    +			<input type="password"
    +                   id="db_pass" autocomplete="off"
     			       name="db_pass"
     			       value="<?php
     			       // If $force_install_databasepass is on, we don't want to set password, we just show '***'. Real value will be extracted from the forced install file at step1.
    @@ -443,11 +441,11 @@ if (! empty($force_install_message))
     	</tr>
     
     	<tr class="hidesqlite">
    -		<td class="label tdtop"><?php echo $langs->trans("CreateUser"); ?>
    -		</td>
    -		<td class="label tdtop">
    +		<td class="label"><label for="db_create_user"><?php echo $langs->trans("CreateUser"); ?></label></td>
    +		<td class="label">
     			<input type="checkbox"
    -			       id="db_create_user" name="db_create_user"
    +			       id="db_create_user"
    +                   name="db_create_user"
     				<?php if (!empty($force_install_createuser)) {
     					print ' checked';
     				} ?>
    @@ -473,8 +471,8 @@ if (! empty($force_install_message))
     	</tr>
     
     	<tr class="hidesqlite hideroot">
    -		<td class="label tdtop"><b><?php echo $langs->trans("Login"); ?></b></td>
    -		<td class="label tdtop">
    +		<td class="label"><label for="db_user_root"><b><?php echo $langs->trans("Login"); ?></b></label></td>
    +		<td class="label">
     			<input type="text"
     			       id="db_user_root"
     			       name="db_user_root"
    @@ -497,28 +495,27 @@ if (! empty($force_install_message))
     
     	</tr>
     	<tr class="hidesqlite hideroot">
    -		<td class="label tdtop"><b><?php echo $langs->trans("Password"); ?></b>
    -		</td>
    -		<td class="label tdtop">
    +		<td class="label"><label for="db_pass_root"><b><?php echo $langs->trans("Password"); ?></b></label></td>
    +		<td class="label">
     			<input type="password"
     			       autocomplete="off"
     			       id="db_pass_root"
     			       name="db_pass_root"
     			       class="needroot"
     			       value="<?php
    -			       // If $force_install_databaserootpass is on, we don't want to set password here, we just show '***'. Real value will be extracted from the forced install file at step1.
    -			       $autofill = ((!empty($force_install_databaserootpass)) ? str_pad('', strlen($force_install_databaserootpass), '*') : @$db_pass_root);
    -			       if (!empty($dolibarr_main_prod)) {
    -				       $autofill = '';
    -			       }
    -				   // Do not autofill password if instance is a production instance
    -			       if (!empty($_SERVER["SERVER_NAME"]) && !in_array($_SERVER["SERVER_NAME"],
    -					       array('127.0.0.1', 'localhost', 'localhostgit'))
    -			       ) {
    -				       $autofill = '';
    -			       }    // Do not autofill password for remote access
    -			       print dol_escape_htmltag($autofill);
    -			       ?>"
    +			        // If $force_install_databaserootpass is on, we don't want to set password here, we just show '***'. Real value will be extracted from the forced install file at step1.
    +			        $autofill = ((!empty($force_install_databaserootpass)) ? str_pad('', strlen($force_install_databaserootpass), '*') : @$db_pass_root);
    +			        if (!empty($dolibarr_main_prod)) {
    +				        $autofill = '';
    +			        }
    +				    // Do not autofill password if instance is a production instance
    +			        if (!empty($_SERVER["SERVER_NAME"]) && !in_array($_SERVER["SERVER_NAME"],
    +					    array('127.0.0.1', 'localhost', 'localhostgit'))
    +			        ) {
    +				        $autofill = '';
    +			        }    // Do not autofill password for remote access
    +			        print dol_escape_htmltag($autofill);
    +			        ?>"
     				<?php if ($force_install_noedit > 0 && ! empty($force_install_databaserootpass)) {
     					print ' disabled';     // May be removed by javascript
     				} ?>
    @@ -648,5 +645,5 @@ function jscheckparam()
     
     // $db->close();	Not database connexion yet
     
    -dolibarr_install_syslog("--- fileconf: end");
    +dolibarr_install_syslog("- fileconf: end");
     pFooter($err,$setuplang,'jscheckparam');
    diff --git a/htdocs/install/inc.php b/htdocs/install/inc.php
    index 0b924122ebb..54b34b89e8c 100644
    --- a/htdocs/install/inc.php
    +++ b/htdocs/install/inc.php
    @@ -149,7 +149,7 @@ if ($suburi == '/') $suburi = '';   // If $suburi is /, it is now ''
     define('DOL_URL_ROOT', $suburi);    // URL relative root ('', '/dolibarr', ...)
     
     
    -if (empty($conf->file->character_set_client))      	$conf->file->character_set_client="UTF-8";
    +if (empty($conf->file->character_set_client))      	$conf->file->character_set_client="utf-8";
     if (empty($conf->db->character_set))  				$conf->db->character_set='utf8';
     if (empty($conf->db->dolibarr_main_db_collation))  	$conf->db->dolibarr_main_db_collation='utf8_unicode_ci';
     if (empty($conf->db->dolibarr_main_db_encryption)) 	$conf->db->dolibarr_main_db_encryption=0;
    @@ -566,7 +566,7 @@ function detect_dolibarr_main_url_root()
     		$dolibarr_main_url_root = $_SERVER["SERVER_URL"] . $_SERVER["DOCUMENT_URI"];
     	} // If SCRIPT_URI, SERVER_URL, DOCUMENT_URI not defined (Ie: Apache 2.0.44 for Windows)
     	else {
    -		$proto = 'http';
    +        $proto = ( (!empty($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == 'on') || $_SERVER['SERVER_PORT'] == 443) ? 'https' : 'http';
     		if (!empty($_SERVER["HTTP_HOST"])) {
     			$serverport = $_SERVER["HTTP_HOST"];
     		} else {
    diff --git a/htdocs/install/index.php b/htdocs/install/index.php
    index 82dcd87b030..46e60be52ec 100644
    --- a/htdocs/install/index.php
    +++ b/htdocs/install/index.php
    @@ -55,7 +55,7 @@ print '<br><br><div class="center">';
     print '<table>';
     
     print '<tr>';
    -print '<td>'.$langs->trans("DefaultLanguage").' : </td><td align="left">';
    +print '<td>'.$langs->trans("DefaultLanguage").' : </td><td>';
     print $formadmin->select_language('auto','selectlang',1,0,0,1);
     print '</td>';
     print '</tr>';
    diff --git a/htdocs/install/lib/repair.lib.php b/htdocs/install/lib/repair.lib.php
    index 5e81b15ce10..43a6d2bce27 100644
    --- a/htdocs/install/lib/repair.lib.php
    +++ b/htdocs/install/lib/repair.lib.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012 Regis Houssin	<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012 Regis Houssin	<regis.houssin@inodbox.com>
      *
      * 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
    @@ -136,7 +136,6 @@ function clean_data_ecm_directories()
     				$resqlupdate=$db->query($sqlupdate);
     				if (! $resqlupdate) dol_print_error($db,'Failed to update');
     			}
    -
     		}
     	}
     	else dol_print_error($db,'Failed to run request');
    diff --git a/htdocs/install/mysql/data/llx_00_c_country.sql b/htdocs/install/mysql/data/llx_00_c_country.sql
    index 5db58817dd2..0ea1a55d3d3 100644
    --- a/htdocs/install/mysql/data/llx_00_c_country.sql
    +++ b/htdocs/install/mysql/data/llx_00_c_country.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2014 	   Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
     --
    diff --git a/htdocs/install/mysql/data/llx_10_c_regions.sql b/htdocs/install/mysql/data/llx_10_c_regions.sql
    index f6229dda906..4928bfe7856 100644
    --- a/htdocs/install/mysql/data/llx_10_c_regions.sql
    +++ b/htdocs/install/mysql/data/llx_10_c_regions.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2010-2016 Juanjo Menent        <jmenent@2byte.es>
     -- Copyright (C) 2012      Sebastian Neuwert    <sebastian.neuwert@modula71.de>
    @@ -25,8 +25,9 @@
     --
     
     --
    --- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors
    --- de l'install et tous les sigles '--' sont supprimés.
    +-- Do not add comments at the end of the lines, this file is parsed during
    +-- the install and all '--' prefixed texts are are removed.
    +-- Do not concatenate the values in a single query, for the same reason.
     --
     
     --
    @@ -117,8 +118,8 @@ INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) va
     INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) values (  4, 419, '', 0, 'Pais Vasco', 1);
     INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) values (  4, 420, '', 0, 'Otros', 1);
     
    --- Regions Germany (id country=5) 
    -INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) values (  5, 501, '', 0, 'Deutschland', 1); 
    +-- Regions Germany (id country=5)
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) values (  5, 501, '', 0, 'Deutschland', 1);
     
     -- Regions Greece (id_country=102)
     INSERT INTO llx_c_regions ( code_region, fk_pays, cheflieu, tncc, nom, active) values ( 10201, 102, NULL, NULL, 'Αττική', 1);
    @@ -329,5 +330,25 @@ INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) va
     -- Regions Panama (id country=178)
     INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) values (  178, 17801, '', 0, 'Panama', 1);
     
    --- Regions Panama (id country=227)
    +-- Regions United Arab Emirates (rowid country=227)
     INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) values (  227, 22701, '', 0, 'United Arab Emirates', 1);
    +
    +-- Regions Andorra (rowid country=18)
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES (34, 34000, 'AD', NULL, 'Andorra');
    +
    +-- Regions Hungary (rowid country=18)
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES (18, 183100, 'HU31', NULL, 'Northern Hungary');
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES (18, 183200, 'HU32', NULL, 'Northern Great Plain');
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES (18, 183300, 'HU33', NULL, 'Southern Great Plain');
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES (18, 180100, 'HU1',  NULL, 'Central Hungary');
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES (18, 182100, 'HU21', NULL, 'Central Transdanubia');
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES (18, 182200, 'HU22', NULL, 'Western Transdanubia');
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES (18, 182300, 'HU23', NULL, 'Southern Transdanubia');
    +
    +-- Regions Portugal (rowid country=25)
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES (25, 15001, 'PT', NULL, 'Portugal');
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES (25, 15002, 'PT9', NULL, 'Azores-Madeira');
    +
    +-- Regions Slovenia (rowid country=202)
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ('202', '20203', 'SI03', NULL, 'East Slovenia');
    +INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom) VALUES ('202', '20204', 'SI04', NULL, 'West Slovenia');
    diff --git a/htdocs/install/mysql/data/llx_20_c_departements.sql b/htdocs/install/mysql/data/llx_20_c_departements.sql
    index 541aba8a30d..7ed2ed76ac0 100644
    --- a/htdocs/install/mysql/data/llx_20_c_departements.sql
    +++ b/htdocs/install/mysql/data/llx_20_c_departements.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2010-2016 Juanjo Menent        <jmenent@2byte.es>
     -- Copyright (C) 2012 	   Sebastian Neuwert    <sebastian.neuwert@modula71.de>
    @@ -25,9 +25,9 @@
     --
     
     --
    --- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors
    --- de l'install et tous les sigles '--' sont supprimés.
    ---
    +-- Do not put comments at the end of the lines, this file is parsed during
    +-- the install and all '-' prefixed texts are removed.
    +-- Do not concatenate the values in a single query, for the same reason.
     
     --
     -- Departements/Cantons/Provinces
    @@ -571,59 +571,59 @@ insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,no
     insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,nom) values (1401,'AB','',1,'','Alberta');
     insert into llx_c_departements (fk_region, code_departement,cheflieu,tncc,ncc,nom) values (1401,'NL','',1,'','Newfoundland and Labrador');
     
    --- Provinces Spain (id country=4)
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('VI', 419, '', 19, 'ALAVA', 'Álava', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('AB', 404, '', 4, 'ALBACETE', 'Albacete', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('A', 411, '', 11, 'ALICANTE', 'Alicante', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('AL', 401, '', 1, 'ALMERIA', 'Almería', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('AV', 403, '', 3, 'AVILA', 'Avila', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('BA', 412, '', 12, 'BADAJOZ', 'Badajoz', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('PM', 414, '', 14, 'ISLAS BALEARES', 'Islas Baleares', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('B', 406, '', 6, 'BARCELONA', 'Barcelona', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('BU', 403, '', 8, 'BURGOS', 'Burgos', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('CC', 412, '', 12, 'CACERES', 'Cáceres', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('CA', 401, '', 1, 'CADIZ', 'Cádiz', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('CS', 411, '', 11, 'CASTELLON', 'Castellón', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('CR', 404, '', 4, 'CIUDAD REAL', 'Ciudad Real', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('CO', 401, '', 1, 'CORDOBA', 'Córdoba', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('C', 413, '', 13, 'LA CORUÑA', 'La Coruña', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('CU', 404, '', 4, 'CUENCA', 'Cuenca', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('GI', 406, '', 6, 'GERONA', 'Gerona', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('GR', 401, '', 1, 'GRANADA', 'Granada', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('GU', 404, '', 4, 'GUADALAJARA', 'Guadalajara', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SS', 419, '', 19, 'GUIPUZCOA', 'Guipúzcoa', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('H', 401, '', 1, 'HUELVA', 'Huelva', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('HU', 402, '', 2, 'HUESCA', 'Huesca', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('J', 401, '', 1, 'JAEN', 'Jaén', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('LE', 403, '', 3, 'LEON', 'León', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('L', 406, '', 6, 'LERIDA', 'Lérida', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('LO', 415, '', 15, 'LA RIOJA', 'La Rioja', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('LU', 413, '', 13, 'LUGO', 'Lugo', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('M', 416, '', 16, 'MADRID', 'Madrid', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('MA', 401, '', 1, 'MALAGA', 'Málaga', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('MU', 417, '', 17, 'MURCIA', 'Murcia', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('NA', 408, '', 8, 'NAVARRA', 'Navarra', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('OR', 413, '', 13, 'ORENSE', 'Orense', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('O', 418, '', 18, 'ASTURIAS', 'Asturias', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('P', 403, '', 3, 'PALENCIA', 'Palencia', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('GC', 405, '', 5, 'LAS PALMAS', 'Las Palmas', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('PO', 413, '', 13, 'PONTEVEDRA', 'Pontevedra', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SA', 403, '', 3, 'SALAMANCA', 'Salamanca', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('TF', 405, '', 5, 'STA. CRUZ DE TENERIFE', 'Sta. Cruz de Tenerife', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('S', 410, '', 10, 'CANTABRIA', 'Cantabria', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SG', 403, '', 3, 'SEGOVIA', 'Segovia', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SE', 401, '', 1, 'SEVILLA', 'Sevilla', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('SO', 403, '', 3, 'SORIA', 'Soria', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('T', 406, '', 6, 'TARRAGONA', 'Tarragona', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('TE', 402, '', 2, 'TERUEL', 'Teruel', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('TO', 404, '', 5, 'TOLEDO', 'Toledo', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('V', 411, '', 11, 'VALENCIA', 'Valencia', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('VA', 403, '', 3, 'VALLADOLID', 'Valladolid', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('BI', 419, '', 19, 'VIZCAYA', 'Vizcaya', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('ZA', 403, '', 3, 'ZAMORA', 'Zamora', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('Z', 402, '', 1, 'ZARAGOZA', 'Zaragoza', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('CE', 407, '', 7, 'CEUTA', 'Ceuta', 1);
    -INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('ML', 409, '', 9, 'MELILLA', 'Melilla', 1);
    +-- Provinces Spain (id country=4) in order of province (for logical pick list)
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('VI', '419', '01', 19, 'ALAVA', 'Álava');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('AB', '404', '02', 4,  'ALBACETE', 'Albacete');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('A',  '411', '03', 11, 'ALICANTE', 'Alicante');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('AL', '401', '04', 1,  'ALMERIA', 'Almería');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('O',  '418', '33', 18, 'ASTURIAS', 'Asturias');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('AV', '403', '05', 3,  'AVILA', 'Ávila');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('BA', '412', '06', 12, 'BADAJOZ', 'Badajoz');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('B',  '406', '08', 6,  'BARCELONA', 'Barcelona');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('BU', '403', '09', 8,  'BURGOS', 'Burgos');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('CC', '412', '10', 12, 'CACERES', 'Cáceres');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('CA', '401', '11', 1,  'CADIZ', 'Cádiz');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('S',  '410', '39', 10, 'CANTABRIA', 'Cantabria');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('CS', '411', '12', 11, 'CASTELLON', 'Castellón');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('CE', '407', '51', 7,  'CEUTA', 'Ceuta');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('CR', '404', '13', 4,  'CIUDAD REAL', 'Ciudad Real');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('CO', '401', '14', 1,  'CORDOBA', 'Córdoba');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('CU', '404', '16', 4,  'CUENCA', 'Cuenca');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('GI', '406', '17', 6,  'GERONA', 'Gerona');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('GR', '401', '18', 1,  'GRANADA', 'Granada');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('GU', '404', '19', 4,  'GUADALAJARA', 'Guadalajara');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('SS', '419', '20', 19, 'GUIPUZCOA', 'Guipúzcoa');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('H',  '401', '21', 1,  'HUELVA', 'Huelva');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU', '402', '22', 2,  'HUESCA', 'Huesca');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('PM', '414', '07', 14, 'ISLAS BALEARES', 'Islas Baleares');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('J',  '401', '23', 1,  'JAEN', 'Jaén');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('C',  '413', '15', 13, 'LA CORUÑA', 'La Coruña');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('LO', '415', '26', 15, 'LA RIOJA', 'La Rioja');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('GC', '405', '35', 5,  'LAS PALMAS', 'Las Palmas');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('LE', '403', '24', 3,  'LEON', 'León');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('L',  '406', '25', 6,  'LERIDA', 'Lérida');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('LU', '413', '27', 13, 'LUGO', 'Lugo');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('M',  '416', '28', 16, 'MADRID', 'Madrid');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('MA', '401', '29', 1,  'MALAGA', 'Málaga');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('ML', '409', '52', 9,  'MELILLA', 'Melilla');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('MU', '417', '30', 17, 'MURCIA', 'Murcia');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('NA', '408', '31', 8,  'NAVARRA', 'Navarra');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('OR', '413', '32', 13, 'ORENSE', 'Orense');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('P',  '403', '34', 3,  'PALENCIA', 'Palencia');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('PO', '413', '36', 13, 'PONTEVEDRA', 'Pontevedra');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('SA', '403', '37', 3,  'SALAMANCA', 'Salamanca');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('TF', '405', '38', 5,  'STA. CRUZ DE TENERIFE', 'Santa Cruz de Tenerife');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('SG', '403', '40', 3,  'SEGOVIA', 'Segovia');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('SE', '401', '41', 1,  'SEVILLA', 'Sevilla');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('SO', '403', '42', 3,  'SORIA', 'Soria');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('T',  '406', '43', 6,  'TARRAGONA', 'Tarragona');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('TE', '402', '44', 2,  'TERUEL', 'Teruel');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('TO', '404', '45', 5,  'TOLEDO', 'Toledo');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('V',  '411', '46', 11, 'VALENCIA', 'Valencia');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('VA', '403', '47', 3,  'VALLADOLID', 'Valladolid');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('BI', '419', '48', 19, 'VIZCAYA', 'Vizcaya');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('ZA', '403', '49', 3,  'ZAMORA', 'Zamora');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('Z',  '402', '50', 1,  'ZARAGOZA', 'Zaragoza');
     
     -- Provinces Germany (id country=5)
     INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (501,'BW','BADEN-WÜRTTEMBERG','Baden-Württemberg',1); 
    @@ -1538,5 +1538,70 @@ INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc
     INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('AE-6', 22701, '', 0, '', 'Sharjah', 1);
     INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('AE-7', 22701, '', 0, '', 'Umm al-Quwain', 1);
     
    +-- Provinces Andorra (rowid country=34)
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES  ('AD-002', 34000, 'AD100', NULL, NULL, 'Canillo');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES  ('AD-003', 34000, 'AD200', NULL, NULL, 'Encamp');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES  ('AD-004', 34000, 'AD400', NULL, NULL, 'La Massana');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES  ('AD-005', 34000, 'AD300', NULL, NULL, 'Ordino');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES  ('AD-006', 34000, 'AD600', NULL, NULL, 'Sant Julià de Lòria');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES  ('AD-007', 34000, 'AD500', NULL, NULL, 'Andorra la Vella');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES  ('AD-008', 34000, 'AD700', NULL, NULL, 'Escaldes-Engordany');
     
    +-- Provinces Hungary (rowid country=18)
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-BK', 183300, 'HU331', NULL, NULL, 'Bács-Kiskun');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-BA', 182300, 'HU231', NULL, NULL, 'Baranya');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-BE', 183300, 'HU332', NULL, NULL, 'Békés');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-BZ', 183100, 'HU311', NULL, NULL, 'Borsod-Abaúj-Zemplén');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-BU', 180100, 'HU101', NULL, NULL, 'Budapest');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-CS', 183300, 'HU333', NULL, NULL, 'Csongrád');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-FE', 182100, 'HU211', NULL, NULL, 'Fejér');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-GS', 182200, 'HU221', NULL, NULL, 'Győr-Moson-Sopron');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-HB', 183200, 'HU321', NULL, NULL, 'Hajdú-Bihar');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-HE', 183100, 'HU312', NULL, NULL, 'Heves');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-JN', 183200, 'HU322', NULL, NULL, 'Jász-Nagykun-Szolnok');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-KE', 182100, 'HU212', NULL, NULL, 'Komárom-Esztergom');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-NO', 183100, 'HU313', NULL, NULL, 'Nógrád');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-PE', 180100, 'HU102', NULL, NULL, 'Pest');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-SO', 182300, 'HU232', NULL, NULL, 'Somogy');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-SZ', 183200, 'HU323', NULL, NULL, 'Szabolcs-Szatmár-Bereg');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-TO', 182300, 'HU233', NULL, NULL, 'Tolna');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-VA', 182200, 'HU222', NULL, NULL, 'Vas');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-VE', 182100, 'HU213', NULL, NULL, 'Veszprém');
    +INSERT INTO llx_c_departements (code_departement, fk_region, cheflieu, tncc, ncc, nom) VALUES ('HU-ZA', 182200, 'HU223', NULL, NULL, 'Zala');
     
    +-- Provinces (postal districts) Portugal (rowid country=25)
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-AV', NULL, NULL, 'AVEIRO', 'Aveiro');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15002', 'PT-AC', NULL, NULL, 'AZORES', 'Azores');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-BE', NULL, NULL, 'BEJA', 'Beja');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-BR', NULL, NULL, 'BRAGA', 'Braga');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-BA', NULL, NULL, 'BRAGANCA', 'Bragança');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-CB', NULL, NULL, 'CASTELO BRANCO', 'Castelo Branco');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-CO', NULL, NULL, 'COIMBRA', 'Coimbra');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-EV', NULL, NULL, 'EVORA', 'Évora');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-FA', NULL, NULL, 'FARO', 'Faro');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-GU', NULL, NULL, 'GUARDA', 'Guarda');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-LE', NULL, NULL, 'LEIRIA', 'Leiria');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-LI', NULL, NULL, 'LISBON', 'Lisboa');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-AML',NULL, NULL, 'AREA METROPOLITANA LISBOA', 'Área Metropolitana de Lisboa');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15002', 'PT-MA', NULL, NULL, 'MADEIRA', 'Madeira');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-PA', NULL, NULL, 'PORTALEGRE', 'Portalegre');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-PO', NULL, NULL, 'PORTO', 'Porto');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-SA', NULL, NULL, 'SANTAREM', 'Santarém');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-SE', NULL, NULL, 'SETUBAL', 'Setúbal');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-VC', NULL, NULL, 'VIANA DO CASTELO', 'Viana Do Castelo');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-VR', NULL, NULL, 'VILA REAL', 'Vila Real');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('15001', 'PT-VI', NULL, NULL, 'VISEU', 'Viseu');
    +
    +-- Provinces Slovenia (rowid country=202)
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20203', 'SI031', NULL, NULL, 'MURA', 'Mura');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20203', 'SI032', NULL, NULL, 'DRAVA', 'Drava');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20203', 'SI033', NULL, NULL, 'CARINTHIA', 'Carinthia');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20203', 'SI034', NULL, NULL, 'SAVINJA', 'Savinja');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20203', 'SI035', NULL, NULL, 'CENTRAL SAVA', 'Central Sava');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20203', 'SI036', NULL, NULL, 'LOWER SAVA', 'Lower Sava');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20203', 'SI037', NULL, NULL, 'SOUTHEAST SLOVENIA', 'Southeast Slovenia');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20203', 'SI038', NULL, NULL, 'LITTORAL–INNER CARNIOLA', 'Littoral–Inner Carniola');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20204', 'SI041', NULL, NULL, 'CENTRAL SLOVENIA', 'Central Slovenia');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20204', 'SI038', NULL, NULL, 'UPPER CARNIOLA', 'Upper Carniola');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20204', 'SI043', NULL, NULL, 'GORIZIA', 'Gorizia');
    +INSERT INTO llx_c_departements (fk_region, code_departement, cheflieu, tncc, ncc, nom) VALUES ('20204', 'SI044', NULL, NULL, 'COASTAL–KARST', 'Coastal–Karst');
    \ No newline at end of file
    diff --git a/htdocs/install/mysql/data/llx_accounting_abc.sql b/htdocs/install/mysql/data/llx_accounting_abc.sql
    index 9e933816ac5..6e4c62d8228 100644
    --- a/htdocs/install/mysql/data/llx_accounting_abc.sql
    +++ b/htdocs/install/mysql/data/llx_accounting_abc.sql
    @@ -3,10 +3,11 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007      Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2011-2018 Alexandre Spangaro   <aspangaro@zendsi.com>
     -- Copyright (C) 2015-2017 Juanjo Menent        <jmenent@2byte.es>
    +-- Copyright (C) 2018      Abbes bahfir         <dolipar@dolipar.org>
     --
     -- 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
    @@ -29,13 +30,13 @@
     --
     
     
    -INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('VT', 'ACCOUNTING_SELL_JOURNAL',           2, 1, 1);
    -INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('AC', 'ACCOUNTING_PURCHASE_JOURNAL',       3, 1, 1);
    -INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('BQ', 'FinanceJournal',           4, 1, 1);
    -INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('OD', 'ACCOUNTING_MISCELLANEOUS_JOURNAL',          1, 1, 1);
    -INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('AN', 'ACCOUNTING_HAS_NEW_JOURNAL',        9, 1, 1);
    -INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('ER', 'ExpenseReportsJournal', 5, 1, 1);
    -INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('INV', 'InventoryJournal'    , 8, 1, 1);
    +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('VT',  'ACCOUNTING_SELL_JOURNAL',          2, 1, 1);
    +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('AC',  'ACCOUNTING_PURCHASE_JOURNAL',      3, 1, 1);
    +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('BQ',  'FinanceJournal',                   4, 1, 1);
    +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('OD',  'ACCOUNTING_MISCELLANEOUS_JOURNAL', 1, 1, 1);
    +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('AN',  'ACCOUNTING_HAS_NEW_JOURNAL',       9, 1, 1);
    +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('ER',  'ExpenseReportsJournal',            5, 1, 1);
    +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('INV', 'InventoryJournal',                 8, 1, 1);
     
     
     -- Description of chart of account FR PCG99-ABREGE
    @@ -126,3 +127,5 @@ INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUE
     -- Description of chart of account RO RO-BASE
     INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES (  188, 'RO-BASE', 'Plan de conturi romanesc', 1);
     
    +-- Description of chart of account DZ NSCF
    +INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUES (  13, 'NSCF', 'Nouveau système comptable financier', 1);
    diff --git a/htdocs/install/mysql/data/llx_accounting_account_be.sql b/htdocs/install/mysql/data/llx_accounting_account_be.sql
    index 76195e8318f..610913ed36e 100644
    --- a/htdocs/install/mysql/data/llx_accounting_account_be.sql
    +++ b/htdocs/install/mysql/data/llx_accounting_account_be.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2011-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
     --
    diff --git a/htdocs/install/mysql/data/llx_accounting_account_cl.sql b/htdocs/install/mysql/data/llx_accounting_account_cl.sql
    index 76fe278dd0e..3029bc9350d 100644
    --- a/htdocs/install/mysql/data/llx_accounting_account_cl.sql
    +++ b/htdocs/install/mysql/data/llx_accounting_account_cl.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2011-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
     -- Copyright (C) 2017      Juanjo Menent        <jmenent@2byte.es>
    diff --git a/htdocs/install/mysql/data/llx_accounting_account_dk.sql b/htdocs/install/mysql/data/llx_accounting_account_dk.sql
    index 7f707b4c444..f7b3ea7e519 100644
    --- a/htdocs/install/mysql/data/llx_accounting_account_dk.sql
    +++ b/htdocs/install/mysql/data/llx_accounting_account_dk.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2011-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
     --
    diff --git a/htdocs/install/mysql/data/llx_accounting_account_dz.sql b/htdocs/install/mysql/data/llx_accounting_account_dz.sql
    new file mode 100644
    index 00000000000..bdb36303f3a
    --- /dev/null
    +++ b/htdocs/install/mysql/data/llx_accounting_account_dz.sql
    @@ -0,0 +1,838 @@
    +-- Copyright (C) 2018 Abbes Bahfir         <dolipar@dolipar.org>
    +--
    +-- 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +--
    +
    +--
    +-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors
    +-- de l'install et tous les sigles '--' sont supprimés.
    +--
    +
    +-- Descriptif du système comptable financier DZ NSCF
    +-- ID 15000 - 15811
    +-- ADD 1300000 to rowid # Do no remove this comment --
    +
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (17000,'NSCF','CAPIT','XXXXXX','1',0,'Comptes de capitaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15001,'NSCF','CAPIT','XXXXXX','10',17000,'Capital, réserves et assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15002,'NSCF','CAPIT','XXXXXX','101',15001,'Capital émis','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15003,'NSCF','CAPIT','XXXXXX','1011',15002,'Capital souscrit, non appelé','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15004,'NSCF','CAPIT','XXXXXX','1012',15002,'Capital souscrit, appelé, non versé','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15005,'NSCF','CAPIT','XXXXXX','1013',15002,'Capital souscrit, appelé, versé','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15006,'NSCF','CAPIT','XXXXXX','10131',15005,'Capital non amorti','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15007,'NSCF','CAPIT','XXXXXX','10132',15005,'Capital amorti','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15008,'NSCF','CAPIT','XXXXXX','1018',15002,'Capital souscrit, soumis à des réglementations particulières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15009,'NSCF','CAPIT','XXXXXX','103',15001,'Primes liées au capital social','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15010,'NSCF','CAPIT','XXXXXX','1031',15009,'Primes d''émission','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15011,'NSCF','CAPIT','XXXXXX','1032',15009,'Primes de fusion','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15012,'NSCF','CAPIT','XXXXXX','1033',15009,'Primes d''apport','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15013,'NSCF','CAPIT','XXXXXX','1034',15009,'Primes de conversion d''obligations en actions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15014,'NSCF','CAPIT','XXXXXX','104',15001,'Ecart d''évaluation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15015,'NSCF','CAPIT','XXXXXX','105',15001,'Ecart de réévaluation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15016,'NSCF','CAPIT','XXXXXX','1050',15015,'Ecart de réévaluation : Immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15017,'NSCF','CAPIT','XXXXXX','10503',15016,'Ecart de réévaluation : Frais de recherche et de développement immobilisés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15018,'NSCF','CAPIT','XXXXXX','10504',15016,'Ecart de réévaluation : Logiciels informatiques et assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15019,'NSCF','CAPIT','XXXXXX','10505',15016,'Ecart de réévaluation : Concessions et droits similaires, brevets, licences et marques','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15020,'NSCF','CAPIT','XXXXXX','10507',15016,'Ecarts de réévaluation : Fonds commercial – goodwill','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15021,'NSCF','CAPIT','XXXXXX','10508',15016,'Ecart de réévaluation : Immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15022,'NSCF','CAPIT','XXXXXX','1051',15015,'Ecart de réévaluation :Immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15023,'NSCF','CAPIT','XXXXXX','10511',15022,'Ecart de réévaluation : Terrains','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15024,'NSCF','CAPIT','XXXXXX','10512',15022,'Ecart de réévaluation : Agencements et  aménagements de terrains','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15025,'NSCF','CAPIT','XXXXXX','10513',15022,'Ecart de réévaluation : Constructions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15026,'NSCF','CAPIT','XXXXXX','10515',15022,'Ecarts de réévaluation : Installations techniques','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15027,'NSCF','CAPIT','XXXXXX','10518',15022,'Ecart de réévaluation : Autres Immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15028,'NSCF','CAPIT','XXXXXX','1052',15015,'Ecart de réévaluation sur immobilisations financières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15029,'NSCF','CAPIT','XXXXXX','10526',15028,'Ecart de réévaluation : Titres de filiale','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15030,'NSCF','CAPIT','XXXXXX','10527',15028,'Ecart de réévaluation : Autres immobilisations financières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15031,'NSCF','CAPIT','XXXXXX','106',15001,'Réserves','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15032,'NSCF','CAPIT','XXXXXX','1061',15031,'Réserve légale','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15033,'NSCF','CAPIT','XXXXXX','1062',15031,'Réserve statutaire','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15034,'NSCF','CAPIT','XXXXXX','1063',15031,'Réserve ordinaire','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15035,'NSCF','CAPIT','XXXXXX','1064',15031,'Réserve réglementée','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15036,'NSCF','CAPIT','XXXXXX','10641',15035,'Réserve réglementée proprement dits','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15037,'NSCF','CAPIT','XXXXXX','10642',15035,'Plus-values nettes à long terme','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15038,'NSCF','CAPIT','XXXXXX','1068',15031,'Autres réserves','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15039,'NSCF','CAPIT','XXXXXX','107',15001,'Ecart d''équivalence','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15040,'NSCF','CAPIT','XXXXXX','108',15001,'Compte de l''exploitant','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15041,'NSCF','CAPIT','XXXXXX','109',15001,'Capital souscrit - non appelé (Solde débiteur à l''actif du bilan)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15042,'NSCF','CAPIT','XXXXXX','11',17000,'Report à nouveau (solde créditeur ou débiteur)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15043,'NSCF','CAPIT','XXXXXX','110',15042,'Report à nouveau (solde créditeur)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15044,'NSCF','CAPIT','XXXXXX','119',15042,'Report à nouveau (solde débiteur)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15045,'NSCF','CAPIT','XXXXXX','12',17000,'Résultat de l''exercice (bénéfice ou perte)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15046,'NSCF','CAPIT','XXXXXX','120',15045,'Résultat de l''exercice (bénéfice)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15047,'NSCF','CAPIT','XXXXXX','129',15045,'Résultat de l''exercice (perte)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15048,'NSCF','CAPIT','XXXXXX','13',17000,'Produits et charges différés – hors cycle d''exploitation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15049,'NSCF','CAPIT','XXXXXX','131',15048,'Subventions d''équipements','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15050,'NSCF','CAPIT','XXXXXX','1312',15049,'Subventions d''équipements – Transfert gratuit d''immobilisations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15051,'NSCF','CAPIT','XXXXXX','1314',15049,'Subventions d''équipements – Financement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15052,'NSCF','CAPIT','XXXXXX','1319',15049,'Subventions d''investissement inscrites au compte de résultat','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15053,'NSCF','CAPIT','XXXXXX','132',15048,'Autres subventions d''investissements','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15054,'NSCF','CAPIT','XXXXXX','133',15048,'Impôts différés actif','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15055,'NSCF','CAPIT','XXXXXX','134',15048,'Impôts différés passif','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15056,'NSCF','CAPIT','XXXXXX','138',15048,'Autres produits et charges différés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15057,'NSCF','CAPIT','XXXXXX','15',17000,'Provisions pour charges - passifs non courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15058,'NSCF','CAPIT','XXXXXX','153',15057,'Provisions pour pensions et obligations similaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15059,'NSCF','CAPIT','XXXXXX','155',15057,'Provisions pour impôts','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15060,'NSCF','CAPIT','XXXXXX','156',15057,'Provisions pour renouvellement des immobilisations en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15061,'NSCF','CAPIT','XXXXXX','1560',15060,'Provisions pour renouvellement d''immobilisation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15062,'NSCF','CAPIT','XXXXXX','1562',15060,'Provisions pour renouvellement de gisements miniers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15063,'NSCF','CAPIT','XXXXXX','158',15057,'Autres provisions pour charges – passifs non courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15064,'NSCF','CAPIT','XXXXXX','1581',15063,'Provisions réglementées relatives aux immobilisations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15065,'NSCF','CAPIT','XXXXXX','1583',15063,'Provisions pour risques environnementaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15066,'NSCF','CAPIT','XXXXXX','16',17000,'Emprunts et dettes assimilées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15067,'NSCF','CAPIT','XXXXXX','161',15066,'Titres participatifs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15068,'NSCF','CAPIT','XXXXXX','162',15066,'Emprunts obligataires convertibles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15069,'NSCF','CAPIT','XXXXXX','163',15066,'Autres emprunts obligataires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15070,'NSCF','CAPIT','XXXXXX','164',15066,'Emprunts auprès des établissements de crédit','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15071,'NSCF','CAPIT','XXXXXX','165',15066,'Dépôts et cautionnements reçus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15072,'NSCF','CAPIT','XXXXXX','1651',15071,'Dépôts reçus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15073,'NSCF','CAPIT','XXXXXX','1655',15071,'Cautionnements reçus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15074,'NSCF','CAPIT','XXXXXX','167',15066,'Dettes sur contrat de location - financement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15075,'NSCF','CAPIT','XXXXXX','168',15066,'Autres emprunts et dettes assimilées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15076,'NSCF','CAPIT','XXXXXX','1681',15075,'Autres emprunts','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15077,'NSCF','CAPIT','XXXXXX','1682',15075,'Emprunts auprès d''organismes internationaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15078,'NSCF','CAPIT','XXXXXX','1688',15075,'Intérêts courus sur emprunts et dettes assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15079,'NSCF','CAPIT','XXXXXX','169',15066,'Primes de remboursement des obligations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15080,'NSCF','CAPIT','XXXXXX','17',17000,'Dettes rattachées à des participations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15081,'NSCF','CAPIT','XXXXXX','171',15080,'Dettes rattachées à des participations groupe','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15082,'NSCF','CAPIT','XXXXXX','172',15080,'Dettes rattachées à des participations hors groupe','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15083,'NSCF','CAPIT','XXXXXX','173',15080,'Dettes rattachées à des sociétés en participation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15084,'NSCF','CAPIT','XXXXXX','1731',15083,'Principal','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15085,'NSCF','CAPIT','XXXXXX','1738',15083,'Intérêts courus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15086,'NSCF','CAPIT','XXXXXX','178',15080,'Autres dettes rattachées à des participations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15087,'NSCF','CAPIT','XXXXXX','18',17000,'Comptes de liaison des établissements et sociétés en participation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15088,'NSCF','CAPIT','XXXXXX','187',15087,'Biens et prestations de services échangés entre établissements (produits)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15089,'NSCF','CAPIT','XXXXXX','188',15087,'Comptes de liaison entre sociétés en participation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15090,'NSCF','IMMO','XXXXXX','2',0,'COMPTES D''IMMOBILISATIONS','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15091,'NSCF','IMMO','XXXXXX','20',15090,'Immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15092,'NSCF','IMMO','XXXXXX','203',15091,'Frais de développement immobilisables','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15093,'NSCF','IMMO','XXXXXX','204',15091,'Logiciels informatiques et assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15094,'NSCF','IMMO','XXXXXX','205',15091,'Concessions et droits similaires, brevets, licences, marques','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15095,'NSCF','IMMO','XXXXXX','2051',15094,'Logiciels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15096,'NSCF','IMMO','XXXXXX','2052',15094,'Brevets','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15097,'NSCF','IMMO','XXXXXX','2053',15094,'Marques','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15098,'NSCF','IMMO','XXXXXX','2056',15094,'Licence','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15099,'NSCF','IMMO','XXXXXX','2058',15094,'Concession - autres droits similaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15100,'NSCF','IMMO','XXXXXX','207',15091,'Ecart d''acquisition - goodwill','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15101,'NSCF','IMMO','XXXXXX','208',15091,'Autres immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15102,'NSCF','IMMO','XXXXXX','21',15090,'Immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15103,'NSCF','IMMO','XXXXXX','211',15102,'Terrains','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15104,'NSCF','IMMO','XXXXXX','2110',15103,'Terrains de construction et chantiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15105,'NSCF','IMMO','XXXXXX','2111',15103,'Terrains nus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15106,'NSCF','IMMO','XXXXXX','2112',15103,'Terrains aménagés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15107,'NSCF','IMMO','XXXXXX','2114',15103,'Terrains bâtis','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15108,'NSCF','IMMO','XXXXXX','2115',15103,'Carrières et gisements','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15109,'NSCF','IMMO','XXXXXX','2118',15103,'Autres terrains','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15110,'NSCF','IMMO','XXXXXX','212',15102,'Agencements et aménagements de terrains (même ventilation que celle du compte 211)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15111,'NSCF','IMMO','XXXXXX','213',15102,'Constructions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15112,'NSCF','IMMO','XXXXXX','2131',15111,'Bâtiments','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15113,'NSCF','IMMO','XXXXXX','21311',15112,'Bâtiments industriels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15114,'NSCF','IMMO','XXXXXX','21312',15112,'Bâtiments administratifs et commerciaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15115,'NSCF','IMMO','XXXXXX','21318',15112,'Autres ensembles immobiliers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15116,'NSCF','IMMO','XXXXXX','213181',15115,'Affectés aux opérations professionnelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15117,'NSCF','IMMO','XXXXXX','213188',15115,'Affectés aux opérations non professionnelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15118,'NSCF','IMMO','XXXXXX','2135',15111,'Installations générales - agencements - aménagements des constructions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15119,'NSCF','IMMO','XXXXXX','21351',15118,'Installation d''eau','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15120,'NSCF','IMMO','XXXXXX','21352',15118,'Installation d''électricité','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15121,'NSCF','IMMO','XXXXXX','21353',15118,'Installation de gaz','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15122,'NSCF','IMMO','XXXXXX','21354',15118,'Installation de vapeur','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15123,'NSCF','IMMO','XXXXXX','21355',15118,'Installation de protection et de sécurité','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15124,'NSCF','IMMO','XXXXXX','21356',15118,'Installation de télécommunication','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15125,'NSCF','IMMO','XXXXXX','21357',15118,'Installation d''aération, chauffage et climatisation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15126,'NSCF','IMMO','XXXXXX','21358',15118,'Autres agencements et installations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15127,'NSCF','IMMO','XXXXXX','2138',15111,'Ouvrages d''infrastructures','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15128,'NSCF','IMMO','XXXXXX','21381',15127,'Voies de terre','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15129,'NSCF','IMMO','XXXXXX','21382',15127,'Voies de fer','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15130,'NSCF','IMMO','XXXXXX','21383',15127,'Voies d''eau','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15131,'NSCF','IMMO','XXXXXX','21384',15127,'Barrages - puits d''eau','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15132,'NSCF','IMMO','XXXXXX','21385',15127,'Pistes d''aérodromes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15133,'NSCF','IMMO','XXXXXX','215',15102,'Installations techniques, matériel et outillage industriels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15134,'NSCF','IMMO','XXXXXX','2151',15133,'Installations complexes spécialisées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15135,'NSCF','IMMO','XXXXXX','2153',15133,'Installations à caractère spécifique','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15136,'NSCF','IMMO','XXXXXX','2154',15133,'Matériel industriel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15137,'NSCF','IMMO','XXXXXX','2155',15133,'Outillage industriel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15138,'NSCF','IMMO','XXXXXX','2157',15133,'Agencements et aménagements des matériels et outillage industriels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15139,'NSCF','IMMO','XXXXXX','218',15102,'Autres immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15140,'NSCF','IMMO','XXXXXX','2181',15139,'Installations générales, agencements, aménagements divers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15141,'NSCF','IMMO','XXXXXX','2182',15139,'Matériel de transport','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15142,'NSCF','IMMO','XXXXXX','2183',15139,'Matériel de bureau et matériel informatique','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15143,'NSCF','IMMO','XXXXXX','2184',15139,'Mobilier','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15144,'NSCF','IMMO','XXXXXX','2185',15139,'Cheptel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15145,'NSCF','IMMO','XXXXXX','2186',15139,'Emballages récupérables','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15146,'NSCF','IMMO','XXXXXX','22',15090,'Immobilisations mises en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15147,'NSCF','IMMO','XXXXXX','221',15146,'Terrains en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15148,'NSCF','IMMO','XXXXXX','222',15146,'Agencements et aménagements de terrains en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15149,'NSCF','IMMO','XXXXXX','223',15146,'Constructions en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15150,'NSCF','IMMO','XXXXXX','225',15146,'Installations techniques en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15151,'NSCF','IMMO','XXXXXX','228',15146,'Autres immobilisations corporelles en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15152,'NSCF','IMMO','XXXXXX','229',15146,'Droits du concédant','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15153,'NSCF','IMMO','XXXXXX','23',15090,'Immobilisations en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15154,'NSCF','IMMO','XXXXXX','232',15153,'Immobilisations corporelles en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15155,'NSCF','IMMO','XXXXXX','2322',15154,'Agencements et aménagements de Terrains en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15156,'NSCF','IMMO','XXXXXX','2323',15154,'Constructions en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15157,'NSCF','IMMO','XXXXXX','2325',15154,'Installations techniques, matériel et outillage industriels en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15158,'NSCF','IMMO','XXXXXX','2328',15154,'Autres immobilisations corporelles en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15159,'NSCF','IMMO','XXXXXX','237',15153,'Immobilisations incorporelles en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15160,'NSCF','IMMO','XXXXXX','238',15153,'Avances et acomptes versés sur commandes d''immobilisations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15161,'NSCF','IMMO','XXXXXX','2382',15160,'Avances et acomptes versés sur commandes d''immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15162,'NSCF','IMMO','XXXXXX','2387',15160,'Avances et acomptes versés sur commandes d''immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15163,'NSCF','IMMO','XXXXXX','26',15090,'Participations et créances rattachées à des participations (entreprises associées)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15164,'NSCF','IMMO','XXXXXX','261',15163,'Titres de filiales','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15165,'NSCF','IMMO','XXXXXX','2611',15164,'Actions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15166,'NSCF','IMMO','XXXXXX','2618',15164,'Autres titres','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15167,'NSCF','IMMO','XXXXXX','262',15163,'Autres titres de participation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15168,'NSCF','IMMO','XXXXXX','265',15163,'Titres de participation évalués par équivalence','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15169,'NSCF','IMMO','XXXXXX','266',15163,'Créances rattachées à des participations groupe','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15170,'NSCF','IMMO','XXXXXX','2661',15169,'Créances liées à des participations groupe','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15171,'NSCF','IMMO','XXXXXX','2665',15169,'Versements représentatifs d''apports non capitalisés (appel de fonds)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15172,'NSCF','IMMO','XXXXXX','2666',15169,'Avances consolidables','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15173,'NSCF','IMMO','XXXXXX','2668',15169,'Dividendes à percevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15174,'NSCF','IMMO','XXXXXX','267',15163,'Créances rattachées à des participations hors groupe','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15175,'NSCF','IMMO','XXXXXX','2671',15174,'Créances liées à des participations hors groupe','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15176,'NSCF','IMMO','XXXXXX','2675',15174,'Versements représentatifs d''apports non capitalisés (appel de fonds)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15177,'NSCF','IMMO','XXXXXX','2676',15174,'Avances consolidables','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15178,'NSCF','IMMO','XXXXXX','2677',15174,'Autres créances rattachées à des participations hors groupe','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15179,'NSCF','IMMO','XXXXXX','2678',15174,'Dividendes et intérêts à percevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15180,'NSCF','IMMO','XXXXXX','268',15163,'Créances rattachées à des sociétés en participation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15181,'NSCF','IMMO','XXXXXX','2681',15180,'Principal','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15182,'NSCF','IMMO','XXXXXX','2688',15180,'Intérêts courus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15183,'NSCF','IMMO','XXXXXX','269',15163,'Versements restant à effectuer sur titres de participation non libérés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15184,'NSCF','IMMO','XXXXXX','27',15090,'Autres immobilisations financières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15185,'NSCF','IMMO','XXXXXX','271',15184,'Titres immobilisés autres que les titres immobilisés de l''activité de portefeuille','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15186,'NSCF','IMMO','XXXXXX','2711',15185,'Actions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15187,'NSCF','IMMO','XXXXXX','2718',15185,'Autres titres','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15188,'NSCF','IMMO','XXXXXX','272',15184,'Titres représentatifs de droit de créance','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15189,'NSCF','IMMO','XXXXXX','2721',15188,'Obligations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15190,'NSCF','IMMO','XXXXXX','2722',15188,'Bons','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15191,'NSCF','IMMO','XXXXXX','273',15184,'Titres immobilisés de l''activité de portefeuille','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15192,'NSCF','IMMO','XXXXXX','2731',15191,'Actions immobilisées de l''activité de portefeuille','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15193,'NSCF','IMMO','XXXXXX','2732',15191,'Obligations remboursables en actions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15194,'NSCF','IMMO','XXXXXX','2733',15191,'Obligations convertibles en actions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15195,'NSCF','IMMO','XXXXXX','274',15184,'Prêts et créances sur contrat de location – financement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15196,'NSCF','IMMO','XXXXXX','2741',15195,'Prêts participatifs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15197,'NSCF','IMMO','XXXXXX','2742',15195,'Prêts aux associés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15198,'NSCF','IMMO','XXXXXX','2743',15195,'Prêts au personnel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15199,'NSCF','IMMO','XXXXXX','2745',15195,'Créances sur contrat de location - financement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15200,'NSCF','IMMO','XXXXXX','2748',15195,'Autres prêts','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15201,'NSCF','IMMO','XXXXXX','275',15184,'Dépôts et cautionnements versés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15202,'NSCF','IMMO','XXXXXX','2751',15201,'Dépôts','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15203,'NSCF','IMMO','XXXXXX','2755',15201,'Cautionnements','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15204,'NSCF','IMMO','XXXXXX','276',15184,'Autres créances immobilisées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15205,'NSCF','IMMO','XXXXXX','2761',15204,'Créances diverses','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15206,'NSCF','IMMO','XXXXXX','2768',15204,'Intérêts courus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15207,'NSCF','IMMO','XXXXXX','27682',15206,'Autres créances sur titres immobilisés (droit de créance)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15208,'NSCF','IMMO','XXXXXX','27684',15206,'Autres créances sur prêts','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15209,'NSCF','IMMO','XXXXXX','27685',15206,'Autres créances sur dépôts et cautionnements','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15210,'NSCF','IMMO','XXXXXX','27688',15206,'Autres créances sur créances diverses','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15211,'NSCF','IMMO','XXXXXX','279',15184,'Versements restant à effectuer sur titres immobilisés non libérés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15212,'NSCF','IMMO','XXXXXX','28',15090,'Amortissement des immobilisations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15213,'NSCF','IMMO','XXXXXX','280',15212,'Amortissement des immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15214,'NSCF','IMMO','XXXXXX','2803',15213,'Amortissement des frais de recherche et de développement immobilisables','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15215,'NSCF','IMMO','XXXXXX','2804',15213,'Amortissement. des logiciels informatiques et assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15216,'NSCF','IMMO','XXXXXX','2805',15213,'Amortissement concessions et droits similaires, brevets, licences, marques.','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15217,'NSCF','IMMO','XXXXXX','2807',15213,'Amortissement écart d''acquisition - Goodwill','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15218,'NSCF','IMMO','XXXXXX','2808',15213,'Amortissement autres immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15219,'NSCF','IMMO','XXXXXX','281',15212,'Amortissement des immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15220,'NSCF','IMMO','XXXXXX','2812',15219,'Amortissement des agencements et aménagement de terrains','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15221,'NSCF','IMMO','XXXXXX','2813',15219,'Amortissement des constructions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15222,'NSCF','IMMO','XXXXXX','2815',15219,'Amortissement des installations techniques','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15223,'NSCF','IMMO','XXXXXX','2818',15219,'Amortissement des autres immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15224,'NSCF','IMMO','XXXXXX','282',15212,'Amortissement des immobilisations mises en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15225,'NSCF','IMMO','XXXXXX','29',15090,'Pertes de valeur sur immobilisations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15226,'NSCF','IMMO','XXXXXX','290',15225,'Pertes de valeur sur immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15227,'NSCF','IMMO','XXXXXX','2903',15226,'Pertes de valeurs sur frais de recherche et de développement immobilisables','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15228,'NSCF','IMMO','XXXXXX','2904',15226,'Pertes de valeur sur logiciels informatiques et assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15229,'NSCF','IMMO','XXXXXX','2905',15226,'Pertes de valeur sur concessions et droits similaires, brevets, licences, marques.','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15230,'NSCF','IMMO','XXXXXX','2907',15226,'Pertes de valeur sur écart d''acquisition – Goodwill','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15231,'NSCF','IMMO','XXXXXX','2908',15226,'Pertes de valeur sur autres immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15232,'NSCF','IMMO','XXXXXX','291',15225,'Pertes de valeurs sur immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15233,'NSCF','IMMO','XXXXXX','2912',15232,'Pertes de valeur sur agencements et aménagements de terrains','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15234,'NSCF','IMMO','XXXXXX','2913',15232,'Pertes de valeur sur constructions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15235,'NSCF','IMMO','XXXXXX','2915',15232,'Pertes de valeur sur installations techniques','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15236,'NSCF','IMMO','XXXXXX','2918',15232,'Pertes de valeur sur autres immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15237,'NSCF','IMMO','XXXXXX','292',15225,'Pertes de valeur sur immobilisations mises en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15238,'NSCF','IMMO','XXXXXX','293',15225,'Pertes de valeur sur immobilisations en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15239,'NSCF','IMMO','XXXXXX','2931',15238,'Pertes de valeur sur immobilisations corporelles en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15240,'NSCF','IMMO','XXXXXX','2932',15238,'Pertes de valeur sur immobilisations incorporelles en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15241,'NSCF','IMMO','XXXXXX','296',15225,'Pertes de valeur sur participations et créances rattachées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15242,'NSCF','IMMO','XXXXXX','2961',15241,'Pertes de valeur sur titres de filiales','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15243,'NSCF','IMMO','XXXXXX','2962',15241,'Pertes de valeur sur autres formes de participations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15244,'NSCF','IMMO','XXXXXX','2965',15241,'Pertes de valeur sur titres de participations évalués par équivalence','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15245,'NSCF','IMMO','XXXXXX','2966',15241,'Pertes de valeur sur créances rattachées à des participations groupe','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15246,'NSCF','IMMO','XXXXXX','2967',15241,'Pertes de valeur sur créances rattachées à des participations hors groupe','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15247,'NSCF','IMMO','XXXXXX','2968',15241,'Pertes de valeur sur créances rattachées à des sociétés en participations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15248,'NSCF','IMMO','XXXXXX','297',15225,'Pertes de valeur sur autres titres immobilisés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15249,'NSCF','IMMO','XXXXXX','2971',15248,'Pertes de valeur sur titres immobilisés autres que les titres immobilisés autres que TIAP (droits de propriété)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15250,'NSCF','IMMO','XXXXXX','2972',15248,'Pertes de valeur sur titres représentatifs de droit de créance','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15251,'NSCF','IMMO','XXXXXX','2973',15248,'Pertes de valeur sur titres immobilisés de l''activité de portefeuille','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15252,'NSCF','IMMO','XXXXXX','2974',15248,'Pertes de valeur sur contrat de location – financement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15253,'NSCF','IMMO','XXXXXX','2975',15248,'Pertes de valeur sur dépôts et cautionnements versés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15254,'NSCF','IMMO','XXXXXX','2976',15248,'Pertes de valeur sur autres créances immobilisées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15255,'NSCF','IMMO','XXXXXX','298',15225,'Pertes de valeur sur autres instruments financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15256,'NSCF','STOCK','XXXXXX','3',0,'COMPTES DE STOCKS ET ENCOURS','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15257,'NSCF','STOCK','XXXXXX','30',15256,'Stocks de marchandises','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15258,'NSCF','STOCK','XXXXXX','31',15256,'Matières premières et fournitures','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15259,'NSCF','STOCK','XXXXXX','311',15258,'Matières (ou groupe) A','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15260,'NSCF','STOCK','XXXXXX','312',15258,'Matières (ou groupe) B','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15261,'NSCF','STOCK','XXXXXX','313',15258,'Matières ...','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15262,'NSCF','STOCK','XXXXXX','32',15256,'Autres approvisionnements','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15263,'NSCF','STOCK','XXXXXX','321',15262,'Matières consommables','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15264,'NSCF','STOCK','XXXXXX','322',15262,'Fournitures consommables','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15265,'NSCF','STOCK','XXXXXX','326',15262,'Emballages','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15266,'NSCF','STOCK','XXXXXX','3261',15265,'Emballages perdus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15267,'NSCF','STOCK','XXXXXX','3265',15265,'Emballages récupérables non identifiables','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15268,'NSCF','STOCK','XXXXXX','3267',15265,'Emballages à usage mixte','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15269,'NSCF','STOCK','XXXXXX','33',15256,'En-cours de production de biens','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15270,'NSCF','STOCK','XXXXXX','331',15269,'Produits en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15271,'NSCF','STOCK','XXXXXX','335',15269,'Travaux en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15272,'NSCF','STOCK','XXXXXX','34',15256,'En-cours de production de services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15273,'NSCF','STOCK','XXXXXX','341',15272,'Etudes en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15274,'NSCF','STOCK','XXXXXX','345',15272,'Prestations de services en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15275,'NSCF','STOCK','XXXXXX','35',15256,'Stocks de produits','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15276,'NSCF','STOCK','XXXXXX','351',15275,'Produits intermédiaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15277,'NSCF','STOCK','XXXXXX','355',15275,'Produits finis','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15278,'NSCF','STOCK','XXXXXX','358',15275,'Produits résiduels ou matières de récupération','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15279,'NSCF','STOCK','XXXXXX','3581',15278,'Déchets','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15280,'NSCF','STOCK','XXXXXX','3585',15278,'Rebuts','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15281,'NSCF','STOCK','XXXXXX','3586',15278,'Matières de récupération','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15282,'NSCF','STOCK','XXXXXX','36',15256,'Stocks provenant d''immobilisations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15283,'NSCF','STOCK','XXXXXX','37',15256,'Stocks à l''extérieur','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15284,'NSCF','STOCK','XXXXXX','370',15283,'Stocks de marchandises l''extérieur','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15285,'NSCF','STOCK','XXXXXX','3700',15284,'Stocks en cours de route','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15286,'NSCF','STOCK','XXXXXX','3701',15284,'Stocks de marchandises en dépôt à l''extérieur','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15287,'NSCF','STOCK','XXXXXX','3702',15284,'Stocks de marchandises en consignation à l''extérieur','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15288,'NSCF','STOCK','XXXXXX','371',15283,'Stocks de matières premières et fournitures à l''extérieur','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15289,'NSCF','STOCK','XXXXXX','375',15283,'Stocks de produits à l''extérieur','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15290,'NSCF','STOCK','XXXXXX','38',15256,'Achats stockés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15291,'NSCF','STOCK','XXXXXX','380',15290,'Marchandises stockées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15292,'NSCF','STOCK','XXXXXX','381',15290,'Matières premières et fournitures stockées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15293,'NSCF','STOCK','XXXXXX','382',15290,'Autres approvisionnements stockés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15294,'NSCF','STOCK','XXXXXX','39',15256,'Pertes de valeur sur stocks et en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15295,'NSCF','STOCK','XXXXXX','390',15294,'Pertes de valeur sur stocks de marchandises','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15296,'NSCF','STOCK','XXXXXX','391',15294,'Pertes de valeur sur matières premières et fournitures de biens','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15297,'NSCF','STOCK','XXXXXX','392',15294,'Pertes de valeur sur autres approvisionnements','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15298,'NSCF','STOCK','XXXXXX','393',15294,'Pertes de valeur sur en-cours de production de de biens','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15299,'NSCF','STOCK','XXXXXX','394',15294,'Pertes de valeur sur en-cours de production de de services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15300,'NSCF','STOCK','XXXXXX','395',15294,'Pertes de valeur sur stocks de produits','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15301,'NSCF','STOCK','XXXXXX','397',15294,'Pertes de valeur sur stocks à l''extérieur','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15302,'NSCF','THIRDPARTY','XXXXXX','4',0,'COMPTES DE TIERS','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15303,'NSCF','THIRDPARTY','XXXXXX','40',15302,'Fournisseurs et comptes rattachés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15304,'NSCF','THIRDPARTY','XXXXXX','401',15303,'Fournisseurs de stocks et services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15305,'NSCF','THIRDPARTY','XXXXXX','4011',15304,'Fournisseurs - Achats de biens et prestations de services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15306,'NSCF','THIRDPARTY','XXXXXX','4017',15304,'Fournisseurs - Retenues de garantie','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15307,'NSCF','THIRDPARTY','XXXXXX','403',15303,'Fournisseurs - Effets à payer','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15308,'NSCF','THIRDPARTY','XXXXXX','404',15303,'Fournisseurs d''immobilisations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15309,'NSCF','THIRDPARTY','XXXXXX','4041',15308,'Fournisseurs - Achats d''immobilisations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15310,'NSCF','THIRDPARTY','XXXXXX','4047',15308,'Fournisseurs d''immobilisations – Retenues de garantie','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15311,'NSCF','THIRDPARTY','XXXXXX','405',15303,'Fournisseurs d''immobilisations - Effets à payer','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15312,'NSCF','THIRDPARTY','XXXXXX','408',15303,'Fournisseurs - factures non parvenues','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15313,'NSCF','THIRDPARTY','XXXXXX','4081',15312,'Fournisseurs de stocks - Factures non parvenues','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15314,'NSCF','THIRDPARTY','XXXXXX','4084',15312,'Fournisseurs d''immobilisations – Factures non parvenues','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15315,'NSCF','THIRDPARTY','XXXXXX','4088',15312,'Fournisseurs - Intérêts courus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15316,'NSCF','THIRDPARTY','XXXXXX','409',15303,'Fournisseurs débiteurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15317,'NSCF','THIRDPARTY','XXXXXX','4091',15316,'Fournisseurs - Avances et acomptes versés sur commandes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15318,'NSCF','THIRDPARTY','XXXXXX','4096',15316,'Fournisseurs - Créances pour emballages et matériel à rendre ','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15319,'NSCF','THIRDPARTY','XXXXXX','4097',15316,'Fournisseurs - Autres avoirs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15320,'NSCF','THIRDPARTY','XXXXXX','4098',15316,'Rabais, remises, ristournes à obtenir et autres avoirs non encore reçus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15321,'NSCF','THIRDPARTY','XXXXXX','41',15302,'Clients et comptes rattachés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15322,'NSCF','THIRDPARTY','XXXXXX','411',15321,'Clients','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15323,'NSCF','THIRDPARTY','XXXXXX','4111',15322,'Clients - Ventes de biens ou de prestations de services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15324,'NSCF','THIRDPARTY','XXXXXX','4117',15322,'Clients - Retenues de garantie','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15325,'NSCF','THIRDPARTY','XXXXXX','413',15321,'Clients - Effets à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15326,'NSCF','THIRDPARTY','XXXXXX','416',15321,'Clients douteux (litigieux)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15327,'NSCF','THIRDPARTY','XXXXXX','417',15321,'Créances sur travaux ou prestations en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15328,'NSCF','THIRDPARTY','XXXXXX','418',15321,'Clients - Produits non encore facturés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15329,'NSCF','THIRDPARTY','XXXXXX','4181',15328,'Clients - Factures à établir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15330,'NSCF','THIRDPARTY','XXXXXX','4188',15328,'Clients - Intérêts courus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15331,'NSCF','THIRDPARTY','XXXXXX','419',15321,'Clients créditeurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15332,'NSCF','THIRDPARTY','XXXXXX','4191',15331,'Clients - Avances et acomptes reçus sur commandes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15333,'NSCF','THIRDPARTY','XXXXXX','4196',15331,'Clients - Dettes sur emballages et matériels consignés autres avoirs à établir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15334,'NSCF','THIRDPARTY','XXXXXX','4197',15331,'Clients - Autres avoirs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15335,'NSCF','THIRDPARTY','XXXXXX','4198',15331,'Rabais, remises, ristournes à accorder et','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15336,'NSCF','THIRDPARTY','XXXXXX','42',15302,'Personnel et comptes rattachés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15337,'NSCF','THIRDPARTY','XXXXXX','421',15336,'Personnel - Rémunérations dues','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15338,'NSCF','THIRDPARTY','XXXXXX','422',15336,'Fonds des œuvres sociales','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15339,'NSCF','THIRDPARTY','XXXXXX','423',15336,'Participation des salariés aux résultats','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15340,'NSCF','THIRDPARTY','XXXXXX','425',15336,'Personnel - Avances et acomptes accordés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15341,'NSCF','THIRDPARTY','XXXXXX','426',15336,'Personnel - Dépôts reçus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15342,'NSCF','THIRDPARTY','XXXXXX','427',15336,'Personnel - Oppositions sur salaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15343,'NSCF','THIRDPARTY','XXXXXX','428',15336,'Personnel - Charges à payer et produits à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15344,'NSCF','THIRDPARTY','XXXXXX','4286',15343,'Personnel, charges à payer','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15345,'NSCF','THIRDPARTY','XXXXXX','4287',15343,'Personnel, produits à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15346,'NSCF','THIRDPARTY','XXXXXX','43',15302,'Organismes sociaux et comptes rattachés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15347,'NSCF','THIRDPARTY','XXXXXX','431',15346,'Sécurité sociale','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15348,'NSCF','THIRDPARTY','XXXXXX','432',15346,'Autres organismes sociaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15349,'NSCF','THIRDPARTY','XXXXXX','438',15346,'Organismes sociaux - Charges à payer et produits à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15350,'NSCF','THIRDPARTY','XXXXXX','4386',15349,'Organismes sociaux, charges à payer','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15351,'NSCF','THIRDPARTY','XXXXXX','4387',15349,'Organismes sociaux, produits à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15352,'NSCF','THIRDPARTY','XXXXXX','44',15302,'État, collectivités publiques, organismes internationaux et comptes rattachés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15353,'NSCF','THIRDPARTY','XXXXXX','441',15352,'État et collectivités publiques, subventions à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15354,'NSCF','THIRDPARTY','XXXXXX','4411',15353,'Subventions d''investissement à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15355,'NSCF','THIRDPARTY','XXXXXX','4417',15353,'Subventions d''exploitation à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15356,'NSCF','THIRDPARTY','XXXXXX','4418',15353,'Subventions d''équilibre à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15357,'NSCF','THIRDPARTY','XXXXXX','4419',15353,'Avances sur subventions à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15358,'NSCF','THIRDPARTY','XXXXXX','442',15352,'Impôts et taxes recouvrables sur des tiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15359,'NSCF','THIRDPARTY','XXXXXX','443',15352,'Opérations particulières avec l''Etat et les collectivités publiques','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15360,'NSCF','THIRDPARTY','XXXXXX','444',15352,'Etat - Impôts sur les résultats','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15361,'NSCF','THIRDPARTY','XXXXXX','445',15352,'Etat - Taxes sur le chiffre d''affaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15362,'NSCF','THIRDPARTY','XXXXXX','4451',15361,'Taxes sur le chiffre d''affaires à décaisser','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15363,'NSCF','THIRDPARTY','XXXXXX','44511',15362,'T.V.A. à décaisser','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15364,'NSCF','THIRDPARTY','XXXXXX','44518',15362,'Autres taxes assimilées à décaisser','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15365,'NSCF','THIRDPARTY','XXXXXX','4456',15361,'Taxes sur le chiffre d''affaires déductibles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15366,'NSCF','THIRDPARTY','XXXXXX','44562',15365,'T.V.A. sur immobilisations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15367,'NSCF','THIRDPARTY','XXXXXX','44566',15365,'T.V.A. sur autres biens et services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15368,'NSCF','THIRDPARTY','XXXXXX','44567',15365,'Crédit de T.V.A. à reporter','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15369,'NSCF','THIRDPARTY','XXXXXX','4457',15361,'Taxes sur le chiffre d''affaires collectées par l''entreprise','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15370,'NSCF','THIRDPARTY','XXXXXX','44571',15369,'T.V.A. collectée','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15371,'NSCF','THIRDPARTY','XXXXXX','44578',15369,'Autres taxes collectée assimilées à la T.V.A.','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15372,'NSCF','THIRDPARTY','XXXXXX','4458',15361,'Taxes sur le chiffre d''affaires à régulariser ou en attente','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15373,'NSCF','THIRDPARTY','XXXXXX','44586',15372,'Taxes sur le chiffre d''affaires sur factures non parvenues','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15374,'NSCF','THIRDPARTY','XXXXXX','44587',15372,'Taxes sur le chiffre d''affaires sur factures à établir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15375,'NSCF','THIRDPARTY','XXXXXX','446',15352,'Organismes internationaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15376,'NSCF','THIRDPARTY','XXXXXX','447',15352,'Autres impôts, taxes et versements assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15377,'NSCF','THIRDPARTY','XXXXXX','448',15352,'Etat - Charges à payer et produits à recevoir (hors impôts)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15378,'NSCF','THIRDPARTY','XXXXXX','4486',15377,'Etat, charges à payer','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15379,'NSCF','THIRDPARTY','XXXXXX','4487',15377,'Etat, produits à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15380,'NSCF','THIRDPARTY','XXXXXX','4488',15377,'Obligations cautionnées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15381,'NSCF','THIRDPARTY','XXXXXX','45',15302,'Groupe et associés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15382,'NSCF','THIRDPARTY','XXXXXX','451',15381,'Opérations groupe','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15383,'NSCF','THIRDPARTY','XXXXXX','4510',15382,'Groupe, avances accordées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15384,'NSCF','THIRDPARTY','XXXXXX','4511',15382,'Groupe, avances reçues','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15385,'NSCF','THIRDPARTY','XXXXXX','455',15381,'Associés - Comptes courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15386,'NSCF','THIRDPARTY','XXXXXX','4551',15385,'Principal','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15387,'NSCF','THIRDPARTY','XXXXXX','4558',15385,'Intérêts courus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15388,'NSCF','THIRDPARTY','XXXXXX','456',15381,'Associés - Opérations sur le capital','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15389,'NSCF','THIRDPARTY','XXXXXX','4561',15388,'Associés - Comptes d''apport en société','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15390,'NSCF','THIRDPARTY','XXXXXX','45611',15389,'Apports en nature','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15391,'NSCF','THIRDPARTY','XXXXXX','45615',15389,'Apports en numéraire','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15392,'NSCF','THIRDPARTY','XXXXXX','4562',15388,'Apporteurs - Capital appelé, non versé','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15393,'NSCF','THIRDPARTY','XXXXXX','45621',15392,'Actionnaires - Capital souscrit et appelé, non versé','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15394,'NSCF','THIRDPARTY','XXXXXX','45625',15392,'Associés - Capital appelé, non versé','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15395,'NSCF','THIRDPARTY','XXXXXX','4563',15388,'Associés - versements reçus sur augmentation de capital','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15396,'NSCF','THIRDPARTY','XXXXXX','4564',15388,'Associés - Versements anticipés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15397,'NSCF','THIRDPARTY','XXXXXX','4566',15388,'Actionnaires défaillants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15398,'NSCF','THIRDPARTY','XXXXXX','4567',15388,'Associés - Capital à rembourser','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15399,'NSCF','THIRDPARTY','XXXXXX','457',15381,'Associés - Dividendes à payer','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15400,'NSCF','THIRDPARTY','XXXXXX','458',15381,'Associés - Opérations faites en commun ou en groupement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15401,'NSCF','THIRDPARTY','XXXXXX','4581',15400,'Opérations courantes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15402,'NSCF','THIRDPARTY','XXXXXX','4588',15400,'Intérêts courus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15403,'NSCF','THIRDPARTY','XXXXXX','46',15302,'Débiteurs divers et créditeurs divers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15404,'NSCF','THIRDPARTY','XXXXXX','462',15403,'Créances sur cessions d''immobilisations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15405,'NSCF','THIRDPARTY','XXXXXX','464',15403,'Dettes sur acquisitions valeurs mobilières de placement et instruments financiers dérivés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15406,'NSCF','THIRDPARTY','XXXXXX','465',15403,'Créances sur cessions valeurs mobilières de placement et instruments financiers dérivés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15407,'NSCF','THIRDPARTY','XXXXXX','467',15403,'Autres comptes débiteurs ou créditeurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15408,'NSCF','THIRDPARTY','XXXXXX','468',15403,'Diverses charges à payer et produits à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15409,'NSCF','THIRDPARTY','XXXXXX','4686',15408,'Diverses charges à payer','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15410,'NSCF','THIRDPARTY','XXXXXX','4687',15408,'Divers produits à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15411,'NSCF','THIRDPARTY','XXXXXX','47',15302,'Comptes transitoires ou d''attente','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15412,'NSCF','THIRDPARTY','XXXXXX','471',15411,'Compte d''attente 1','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15413,'NSCF','THIRDPARTY','XXXXXX','472',15411,'Compte d''attente 2','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15414,'NSCF','THIRDPARTY','XXXXXX','473',15411,'Compte d''attente 3','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15415,'NSCF','THIRDPARTY','XXXXXX','474',15411,'Compte d''attente 4','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15416,'NSCF','THIRDPARTY','XXXXXX','475',15411,'Compte d''attente 5','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15417,'NSCF','THIRDPARTY','XXXXXX','476',15411,'Différence de conversion - Actif','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15418,'NSCF','THIRDPARTY','XXXXXX','4761',15417,'Diminution des créances','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15419,'NSCF','THIRDPARTY','XXXXXX','4762',15417,'Augmentation des dettes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15420,'NSCF','THIRDPARTY','XXXXXX','4768',15417,'Différences compensées par couverture de change','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15421,'NSCF','THIRDPARTY','XXXXXX','477',15411,'Différences de conversion - Passif','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15422,'NSCF','THIRDPARTY','XXXXXX','4771',15421,'Augmentation des créances','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15423,'NSCF','THIRDPARTY','XXXXXX','4772',15421,'Diminution des dettes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15424,'NSCF','THIRDPARTY','XXXXXX','4778',15421,'Différences compensées par couverture de change','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15425,'NSCF','THIRDPARTY','XXXXXX','478',15411,'Autres comptes transitoires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15426,'NSCF','THIRDPARTY','XXXXXX','48',15302,'Charges ou produits constatés d''avance et provisions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15427,'NSCF','THIRDPARTY','XXXXXX','481',15426,'Provisions, passifs courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15428,'NSCF','THIRDPARTY','XXXXXX','486',15426,'Charges constatées d''avance','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15429,'NSCF','THIRDPARTY','XXXXXX','487',15426,'Produits constatés d''avance','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15430,'NSCF','THIRDPARTY','XXXXXX','49',15302,'Pertes de valeur sur comptes de tiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15431,'NSCF','THIRDPARTY','XXXXXX','491',15430,'Pertes de valeur sur comptes de clients','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15432,'NSCF','THIRDPARTY','XXXXXX','495',15430,'Pertes de valeur sur comptes du groupe et sur associés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15433,'NSCF','THIRDPARTY','XXXXXX','4951',15432,'Pertes de valeur sur comptes du groupe','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15434,'NSCF','THIRDPARTY','XXXXXX','4955',15432,'Pertes de valeur sur comptes courants des associés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15435,'NSCF','THIRDPARTY','XXXXXX','496',15430,'Pertes de valeur sur comptes de débiteurs divers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15436,'NSCF','THIRDPARTY','XXXXXX','4962',15435,'Créances sur cessions d''immobilisations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15437,'NSCF','THIRDPARTY','XXXXXX','4965',15435,'Créances sur cessions de valeurs mobilières de placement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15438,'NSCF','THIRDPARTY','XXXXXX','4967',15435,'Autres comptes débiteurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15439,'NSCF','THIRDPARTY','XXXXXX','498',15430,'Pertes de valeur sur comptes de débiteurs divers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15440,'NSCF','FINAN','XXXXXX','5',0,'COMPTES FINANCIERS','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15441,'NSCF','FINAN','XXXXXX','50',15440,'Valeurs mobilières de placement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15442,'NSCF','FINAN','XXXXXX','501',15441,'Parts dans des entreprises liées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15443,'NSCF','FINAN','XXXXXX','502',15441,'Actions propres','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15444,'NSCF','FINAN','XXXXXX','503',15441,'Autres actions ou titres conférant un droit de propriété','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15445,'NSCF','FINAN','XXXXXX','5031',15444,'Titres cotés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15446,'NSCF','FINAN','XXXXXX','5032',15444,'Titres non cotés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15447,'NSCF','FINAN','XXXXXX','506',15441,'Obligations, bons du Trésor et bons de caisse à court terme','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15448,'NSCF','FINAN','XXXXXX','5061',15447,'Obligations à court termes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15449,'NSCF','FINAN','XXXXXX','5062',15447,'Bons du trésor à court terme','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15450,'NSCF','FINAN','XXXXXX','5063',15447,'Bons de caisse à court terme','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15451,'NSCF','FINAN','XXXXXX','508',15441,'Autres valeurs mobilières de placement et créances assimilées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15452,'NSCF','FINAN','XXXXXX','5088',15451,'Autres valeurs mobilières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15453,'NSCF','FINAN','XXXXXX','5082',15451,'Bons de souscription','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15454,'NSCF','FINAN','XXXXXX','5083',15451,'Intérêts courus sur obligations, bons et valeurs assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15455,'NSCF','FINAN','XXXXXX','509',15441,'Versements restant à effectuer sur valeurs mobilières de placement non libérées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15456,'NSCF','FINAN','XXXXXX','51',15440,'Banques, établissements financiers et assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15457,'NSCF','FINAN','XXXXXX','511',15456,'Valeurs à l''encaissement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15458,'NSCF','FINAN','XXXXXX','5111',15457,'Coupons échus à l''encaissement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15459,'NSCF','FINAN','XXXXXX','5112',15457,'Chèques à encaisser','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15460,'NSCF','FINAN','XXXXXX','5113',15457,'Effets à l''encaissement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15461,'NSCF','FINAN','XXXXXX','5114',15457,'Effets à l''escompte','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15462,'NSCF','FINAN','XXXXXX','5115',15457,'Cartes bancaires à l''encaissement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15463,'NSCF','FINAN','XXXXXX','512',15456,'Banques comptes courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15464,'NSCF','FINAN','XXXXXX','514',15456,'Chèques postaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15465,'NSCF','FINAN','XXXXXX','515',15456,'Caisses du Trésor et des établissements publics','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15466,'NSCF','FINAN','XXXXXX','516',15456,'Sociétés de bourse','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15467,'NSCF','FINAN','XXXXXX','517',15456,'Autres organismes financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15468,'NSCF','FINAN','XXXXXX','518',15456,'Intérêts courus','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15469,'NSCF','FINAN','XXXXXX','5181',15468,'Intérêts courus à payer','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15470,'NSCF','FINAN','XXXXXX','5188',15468,'Intérêts courus à recevoir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15471,'NSCF','FINAN','XXXXXX','519',15456,'Concours bancaires courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15472,'NSCF','FINAN','XXXXXX','5191',15471,'Crédit de mobilisation de créances commerciales (CMCC)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15473,'NSCF','FINAN','XXXXXX','5192',15471,'Crédit documentaire','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15474,'NSCF','FINAN','XXXXXX','5193',15471,'Mobilisation de créances nées à l''étranger','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15475,'NSCF','FINAN','XXXXXX','5198',15471,'Intérêts courus sur concours bancaires courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15476,'NSCF','FINAN','XXXXXX','52',15440,'Instruments de trésorerie','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15477,'NSCF','FINAN','XXXXXX','53',15440,'Caisse','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15478,'NSCF','FINAN','XXXXXX','54',15440,'Régies d''avance et accréditifs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15479,'NSCF','FINAN','XXXXXX','541',15478,'Régie d''avance','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15480,'NSCF','FINAN','XXXXXX','542',15478,'Accréditifs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15481,'NSCF','FINAN','XXXXXX','58',15440,'Virements internes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15482,'NSCF','FINAN','XXXXXX','581',15481,'Virements de fonds','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15483,'NSCF','FINAN','XXXXXX','588',15481,'Autres virements internes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15484,'NSCF','FINAN','XXXXXX','59',15440,'Pertes de valeur des actifs financiers courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15485,'NSCF','FINAN','XXXXXX','591',15484,'Pertes de valeur des dépôts en banque et autres établissements financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15486,'NSCF','FINAN','XXXXXX','594',15484,'Pertes de valeur sur des régies d''avance et accréditifs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15487,'NSCF','EXPENSE','XXXXXX','6',0,'COMPTES DE CHARGES','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15488,'NSCF','EXPENSE','XXXXXX','60',15487,'Achats consommées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15489,'NSCF','EXPENSE','XXXXXX','600',15488,'Achats de marchandises vendues','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15490,'NSCF','EXPENSE','XXXXXX','601',15488,'Matières premières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15491,'NSCF','EXPENSE','XXXXXX','602',15488,'Autres approvisionnements','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15492,'NSCF','EXPENSE','XXXXXX','603',15488,'Variations des stocks ','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15493,'NSCF','EXPENSE','XXXXXX','6030',15492,'Variations des stocks de marchandises','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15494,'NSCF','EXPENSE','XXXXXX','6031',15492,'Variations des stocks de matières premières et fournitures','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15495,'NSCF','EXPENSE','XXXXXX','6032',15492,'Variations des stocks d''autres approvisionnements','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15496,'NSCF','EXPENSE','XXXXXX','604',15488,'Achats d''études  et prestations de services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15497,'NSCF','EXPENSE','XXXXXX','605',15488,'Achats de matériel, équipements et travaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15498,'NSCF','EXPENSE','XXXXXX','607',15488,'Achats non stockés de matière et fournitures','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15499,'NSCF','EXPENSE','XXXXXX','6071',15498,'Fournitures non stockables (eau, énergie)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15500,'NSCF','EXPENSE','XXXXXX','6073',15498,'Fournitures d''entretien et de petit équipement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15501,'NSCF','EXPENSE','XXXXXX','6074',15498,'Fournitures administratives','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15502,'NSCF','EXPENSE','XXXXXX','6078',15498,'Autres matières et fournitures','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15503,'NSCF','EXPENSE','XXXXXX','608',15488,'Frais accessoires sur achats (FAA)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15504,'NSCF','EXPENSE','XXXXXX','609',15488,'Rabais, remises et ristournes obtenus sur achats','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15505,'NSCF','EXPENSE','XXXXXX','61',15487,'Services extérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15506,'NSCF','EXPENSE','XXXXXX','611',15505,'Sous-traitance générale','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15507,'NSCF','EXPENSE','XXXXXX','613',15505,'Locations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15508,'NSCF','EXPENSE','XXXXXX','6132',15507,'Locations immobilières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15509,'NSCF','EXPENSE','XXXXXX','6135',15507,'Locations mobilières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15510,'NSCF','EXPENSE','XXXXXX','6136',15507,'Malis sur emballages','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15511,'NSCF','EXPENSE','XXXXXX','614',15505,'Charges locatives et charges de copropriété','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15512,'NSCF','EXPENSE','XXXXXX','615',15505,'Entretien, réparations et maintenance','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15513,'NSCF','EXPENSE','XXXXXX','6152',15512,'Sur biens immobiliers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15514,'NSCF','EXPENSE','XXXXXX','6155',15512,'Sur biens mobiliers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15515,'NSCF','EXPENSE','XXXXXX','6156',15512,'Maintenance','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15516,'NSCF','EXPENSE','XXXXXX','616',15505,'Primes d''assurances','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15517,'NSCF','EXPENSE','XXXXXX','6161',15516,'Multirisques','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15518,'NSCF','EXPENSE','XXXXXX','6162',15516,'Assurance obligatoire dommage construction','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15519,'NSCF','EXPENSE','XXXXXX','6163',15516,'Assurance-transport','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15520,'NSCF','EXPENSE','XXXXXX','61636',15519,'sur achats','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15521,'NSCF','EXPENSE','XXXXXX','61637',15519,'sur ventes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15522,'NSCF','EXPENSE','XXXXXX','61638',15519,'sur autres biens','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15523,'NSCF','EXPENSE','XXXXXX','6166',15516,'Assurances véhicules','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15524,'NSCF','EXPENSE','XXXXXX','6168',15516,'Autres assurances','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15525,'NSCF','EXPENSE','XXXXXX','617',15505,'Etudes et recherches','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15526,'NSCF','EXPENSE','XXXXXX','618',15505,'Documentation et divers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15527,'NSCF','EXPENSE','XXXXXX','6181',15526,'Documentation générale','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15528,'NSCF','EXPENSE','XXXXXX','6183',15526,'Documentation technique','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15529,'NSCF','EXPENSE','XXXXXX','6185',15526,'Frais de colloques, séminaires, conférences','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15530,'NSCF','EXPENSE','XXXXXX','619',15505,'Rabais, remises et ristournes obtenus sur services extérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15531,'NSCF','EXPENSE','XXXXXX','62',15487,'Autres services extérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15532,'NSCF','EXPENSE','XXXXXX','621',15531,'Personnel extérieur à l''entreprise','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15533,'NSCF','EXPENSE','XXXXXX','6211',15532,'Personnel intérimaire','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15534,'NSCF','EXPENSE','XXXXXX','6214',15532,'Personnel détaché ou prêté à l''entreprise','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15535,'NSCF','EXPENSE','XXXXXX','622',15531,'Rémunérations d''intermédiaires et honoraires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15536,'NSCF','EXPENSE','XXXXXX','6221',15535,'Commissions et courtages sur achats','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15537,'NSCF','EXPENSE','XXXXXX','6222',15535,'Commissions et courtages sur ventes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15538,'NSCF','EXPENSE','XXXXXX','6224',15535,'Rémunérations des transitaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15539,'NSCF','EXPENSE','XXXXXX','6225',15535,'Rémunérations d''affacturage (mémoire)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15540,'NSCF','EXPENSE','XXXXXX','6226',15535,'Honoraires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15541,'NSCF','EXPENSE','XXXXXX','6227',15535,'Frais d''actes et de contentieux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15542,'NSCF','EXPENSE','XXXXXX','6228',15535,'Divers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15543,'NSCF','EXPENSE','XXXXXX','624',15531,'Transports de biens et transports collectifs du personnel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15544,'NSCF','EXPENSE','XXXXXX','6241',15543,'Transports sur achats','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15545,'NSCF','EXPENSE','XXXXXX','6242',15543,'Transports sur ventes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15546,'NSCF','EXPENSE','XXXXXX','6243',15543,'Transports entre établissements ou chantiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15547,'NSCF','EXPENSE','XXXXXX','6244',15543,'Transports administratifs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15548,'NSCF','EXPENSE','XXXXXX','6247',15543,'Transports collectifs du personnel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15549,'NSCF','EXPENSE','XXXXXX','6248',15543,'Divers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15550,'NSCF','EXPENSE','XXXXXX','625',15531,'Déplacements, missions et réceptions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15551,'NSCF','EXPENSE','XXXXXX','6251',15550,'Voyages et déplacements','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15552,'NSCF','EXPENSE','XXXXXX','6255',15550,'Frais de déménagement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15553,'NSCF','EXPENSE','XXXXXX','6256',15550,'Missions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15554,'NSCF','EXPENSE','XXXXXX','6257',15550,'Réceptions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15555,'NSCF','EXPENSE','XXXXXX','626',15531,'Frais postaux et de télécommunications','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15556,'NSCF','EXPENSE','XXXXXX','627',15531,'Services bancaires et assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15557,'NSCF','EXPENSE','XXXXXX','6271',15556,'Frais sur titres (achat, vente, garde)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15558,'NSCF','EXPENSE','XXXXXX','6272',15556,'Commissions et frais sur émission d''emprunts','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15559,'NSCF','EXPENSE','XXXXXX','6275',15556,'Frais sur effets','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15560,'NSCF','EXPENSE','XXXXXX','6276',15556,'Location de coffres','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15561,'NSCF','EXPENSE','XXXXXX','6278',15556,'Autres frais et commissions sur prestations de services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15562,'NSCF','EXPENSE','XXXXXX','628',15531,'Cotisations et divers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15563,'NSCF','EXPENSE','XXXXXX','6281',15562,'Concours divers (cotisations)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15564,'NSCF','EXPENSE','XXXXXX','6284',15562,'Frais de recrutement de personnel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15565,'NSCF','EXPENSE','XXXXXX','629',15531,'Rabais, remises et ristournes obtenus sur autres services extérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15566,'NSCF','EXPENSE','XXXXXX','63',15487,'Charges de personnel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15567,'NSCF','EXPENSE','XXXXXX','631',15566,'Rémunérations du personnel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15568,'NSCF','EXPENSE','XXXXXX','6311',15567,'Salaires, appointements','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15569,'NSCF','EXPENSE','XXXXXX','6312',15567,'Congés payés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15570,'NSCF','EXPENSE','XXXXXX','6313',15567,'Primes et gratifications','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15571,'NSCF','EXPENSE','XXXXXX','6314',15567,'Indemnités et avantages divers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15572,'NSCF','EXPENSE','XXXXXX','6316',15567,'Contributions aux œuvres sociales','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15573,'NSCF','EXPENSE','XXXXXX','634',15566,'Rémunération de l''exploitant individuel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15574,'NSCF','EXPENSE','XXXXXX','635',15566,'Cotisations aux organismes sociaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15575,'NSCF','EXPENSE','XXXXXX','6351',15574,'Cotisations CNAS','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15576,'NSCF','EXPENSE','XXXXXX','6352',15574,'Cotisations aux mutuelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15577,'NSCF','EXPENSE','XXXXXX','6353',15574,'Cotisations aux caisses de retraites','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15578,'NSCF','EXPENSE','XXXXXX','6358',15574,'Cotisations aux autres organismes sociaux (CACOBATH)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15579,'NSCF','EXPENSE','XXXXXX','636',15566,'Charges sociales de l''exploitant individuel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15580,'NSCF','EXPENSE','XXXXXX','637',15566,'Autres charges sociales','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15581,'NSCF','EXPENSE','XXXXXX','6371',15580,'Prestations directes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15582,'NSCF','EXPENSE','XXXXXX','6372',15580,'Versements aux comités d''entreprise et d''établissement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15583,'NSCF','EXPENSE','XXXXXX','6374',15580,'Versements aux autres œuvres sociales','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15584,'NSCF','EXPENSE','XXXXXX','6375',15580,'Médecine du travail, pharmacie','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15585,'NSCF','EXPENSE','XXXXXX','638',15566,'Autres charges de personnel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15586,'NSCF','EXPENSE','XXXXXX','64',15487,'Impôts, taxes et versements assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15587,'NSCF','EXPENSE','XXXXXX','641',15586,'Impôts, taxes et versements assimilés sur rémunérations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15588,'NSCF','EXPENSE','XXXXXX','6411',15587,'Taxe sur les salaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15589,'NSCF','EXPENSE','XXXXXX','6413',15587,'Participation des employeurs à la formation professionnelle','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15590,'NSCF','EXPENSE','XXXXXX','6418',15587,'Autres impôts, taxes et versements assimilés sur rémunérations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15591,'NSCF','EXPENSE','XXXXXX','642',15586,'Impôts et taxes non récupérables sur le chiffre d''affaire','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15592,'NSCF','EXPENSE','XXXXXX','6421',15591,'Taxe sur l''activité professionnelle (TAP)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15593,'NSCF','EXPENSE','XXXXXX','6422',15591,'TVA non récupérable','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15594,'NSCF','EXPENSE','XXXXXX','6423',15591,'Droits de timbre et d''enregistrement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15595,'NSCF','EXPENSE','XXXXXX','6428',15591,'Autres impôts et taxes non récupérables sur le chiffre d''affaire','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15596,'NSCF','EXPENSE','XXXXXX','645',15586,'Autres impôts et taxes (hors impôts sur le résultat)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15597,'NSCF','EXPENSE','XXXXXX','6451',15596,'Taxe foncière','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15598,'NSCF','EXPENSE','XXXXXX','6452',15596,'Taxe d''assainissement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15599,'NSCF','EXPENSE','XXXXXX','6453',15596,'Droits de douane','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15600,'NSCF','EXPENSE','XXXXXX','6454',15596,'Vignettes automobiles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15601,'NSCF','EXPENSE','XXXXXX','6456',15596,'Taxe écologique','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15602,'NSCF','EXPENSE','XXXXXX','6458',15596,'Autres droits et taxes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15603,'NSCF','EXPENSE','XXXXXX','65',15487,'Autres charges opérationnelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15604,'NSCF','EXPENSE','XXXXXX','651',15603,'Redevances pour concessions, brevets, licences, logiciels et accès similaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15605,'NSCF','EXPENSE','XXXXXX','6511',15604,'Redevances pour concessions, brevets, licences, marques, procédés, logiciels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15606,'NSCF','EXPENSE','XXXXXX','6516',15604,'Droits d''auteur et de reproduction','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15607,'NSCF','EXPENSE','XXXXXX','6518',15604,'Autres droits et valeurs similaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15608,'NSCF','EXPENSE','XXXXXX','652',15603,'Moins-values sur sorties d''actifs immobilisés non financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15609,'NSCF','EXPENSE','XXXXXX','653',15603,'Jetons de présence','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15610,'NSCF','EXPENSE','XXXXXX','654',15603,'Pertes sur créances irrécouvrables','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15611,'NSCF','EXPENSE','XXXXXX','6541',15610,'Pertes sur créances de l''exercice','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15612,'NSCF','EXPENSE','XXXXXX','6544',15610,'Pertes sur créances des exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15613,'NSCF','EXPENSE','XXXXXX','655',15603,'Quote-part de résultat sur opérations faites en commun','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15614,'NSCF','EXPENSE','XXXXXX','6551',15613,'Quote-part de résultats de groupement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15615,'NSCF','EXPENSE','XXXXXX','6558',15613,'Amortissements de caducité des immobilisations mises en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15616,'NSCF','EXPENSE','XXXXXX','6559',15613,'Dotations aux provisions des immobilisations mises en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15617,'NSCF','EXPENSE','XXXXXX','656',15603,'Amendes et pénalités, subventions accordées dons et libéralités','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15618,'NSCF','EXPENSE','XXXXXX','6561',15617,'Amendes et pénalité','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15619,'NSCF','EXPENSE','XXXXXX','6562',15617,'Subventions accordées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15620,'NSCF','EXPENSE','XXXXXX','6563',15617,'Dons et libéralités','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15621,'NSCF','EXPENSE','XXXXXX','657',15603,'Charges exceptionnelles de gestion courante','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15622,'NSCF','EXPENSE','XXXXXX','658',15603,'Autres charges de gestion courante','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15623,'NSCF','EXPENSE','XXXXXX','66',15487,'Charges financières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15624,'NSCF','EXPENSE','XXXXXX','661',15623,'Charges d''intérêts','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15625,'NSCF','EXPENSE','XXXXXX','6611',15624,'Intérêts des emprunts et dettes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15626,'NSCF','EXPENSE','XXXXXX','66116',15625,'Intérêts des emprunts et dettes assimilées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15627,'NSCF','EXPENSE','XXXXXX','66117',15625,'Intérêts des emprunts et  dettes rattachées à des participations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15628,'NSCF','EXPENSE','XXXXXX','6615',15624,'Intérêts des comptes courants et des dépôts créditeurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15629,'NSCF','EXPENSE','XXXXXX','6616',15624,'Intérêts bancaires et sur opérations de financement (escompte,…)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15630,'NSCF','EXPENSE','XXXXXX','6617',15624,'Intérêts des obligations cautionnées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15631,'NSCF','EXPENSE','XXXXXX','6618',15624,'Intérêts des autres dettes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15632,'NSCF','EXPENSE','XXXXXX','66181',15631,'Intérêts des dettes commerciales','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15633,'NSCF','EXPENSE','XXXXXX','66188',15631,'Intérêts des dettes diverses','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15634,'NSCF','EXPENSE','XXXXXX','664',15623,'Pertes sur créances liées à des participations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15635,'NSCF','EXPENSE','XXXXXX','665',15623,'Ecarts d''évaluation sur actifs financiers – Moins-values','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15636,'NSCF','EXPENSE','XXXXXX','6651',15635,'Ecarts d''évaluation - moins-values sur des parts dans les entreprises liées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15637,'NSCF','EXPENSE','XXXXXX','6653',15635,'Ecarts d''évaluation - moins-values sur autres titres conférant un droit de propriété','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15638,'NSCF','EXPENSE','XXXXXX','6656',15635,'Ecarts d''évaluation - moins-values sur obligations, bons du trésor et bons de caisse à court terme','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15639,'NSCF','EXPENSE','XXXXXX','6658',15635,'Ecarts d''évaluation - moins-values sur autres valeurs mobilières et autres créances assimilées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15640,'NSCF','EXPENSE','XXXXXX','666',15623,'Pertes de change','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15641,'NSCF','EXPENSE','XXXXXX','667',15623,'Pertes nettes sur cessions d''actifs financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15642,'NSCF','EXPENSE','XXXXXX','6671',15641,'Pertes nettes sur cession des parts dans les entreprises liées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15643,'NSCF','EXPENSE','XXXXXX','6672',15641,'Pertes nettes sur cession d''actions propres','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15644,'NSCF','EXPENSE','XXXXXX','6673',15641,'Pertes nettes sur cession d''autres titres conférant un droit de propriété','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15645,'NSCF','EXPENSE','XXXXXX','6676',15641,'Pertes nettes sur cession d''obligations, bons du trésor et bons de caisse à court terme','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15646,'NSCF','EXPENSE','XXXXXX','6678',15641,'Pertes nettes sur cession des autres valeurs mobilières et autres créances assimilées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15647,'NSCF','EXPENSE','XXXXXX','668',15623,'Autres charges financières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15648,'NSCF','EXPENSE','XXXXXX','67',15487,'Eléments extraordinaires - charges','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15649,'NSCF','EXPENSE','XXXXXX','672',15648,'Valeur résiduelle des immobilisations cédées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15650,'NSCF','EXPENSE','XXXXXX','676',15648,'Charges sur exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15651,'NSCF','EXPENSE','XXXXXX','6760',15650,'Consommations sur exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15652,'NSCF','EXPENSE','XXXXXX','6761',15650,'Services sur exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15653,'NSCF','EXPENSE','XXXXXX','6762',15650,'Autres services sur exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15654,'NSCF','EXPENSE','XXXXXX','6763',15650,'Charges de personnel sur exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15655,'NSCF','EXPENSE','XXXXXX','6764',15650,'Impôts et taxes sur exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15656,'NSCF','EXPENSE','XXXXXX','6765',15650,'Autres charges opérationnelles sur exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15657,'NSCF','EXPENSE','XXXXXX','6766',15650,'Charges financières sur exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15658,'NSCF','EXPENSE','XXXXXX','6768',15650,'Dotations aux amortissements, provisions et pertes de valeurs sur exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15659,'NSCF','EXPENSE','XXXXXX','6769',15650,'Impôts sur les bénéfices sur exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15660,'NSCF','EXPENSE','XXXXXX','678',15648,'Autres éléments extraordinaires - charges','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15661,'NSCF','EXPENSE','XXXXXX','6783',15660,'Malis provenant du rachat par l''entreprise d''actions et obligations émises par elle-même','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15662,'NSCF','EXPENSE','XXXXXX','6788',15660,'Autres charges extraordinaires diverses','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15663,'NSCF','EXPENSE','XXXXXX','68',15487,'Dotations aux amortissements, provisions et pertes de valeur','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15664,'NSCF','EXPENSE','XXXXXX','681',15663,'Dotations aux amortissements, provisions et pertes de valeur, actifs non courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15665,'NSCF','EXPENSE','XXXXXX','6811',15664,'Dotations aux amortissements, provisions et pertes de valeur sur immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15666,'NSCF','EXPENSE','XXXXXX','68111',15665,'Dotations aux amortissements et provisions et pertes de valeur sur immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15667,'NSCF','EXPENSE','XXXXXX','68112',15665,'Pertes de valeur sur immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15668,'NSCF','EXPENSE','XXXXXX','6812',15664,'Dotations aux amortissements, provisions et pertes de valeur sur immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15669,'NSCF','EXPENSE','XXXXXX','68121',15668,'Dotations aux amortissements et provisions et immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15670,'NSCF','EXPENSE','XXXXXX','68122',15668,'Pertes de valeur sur immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15671,'NSCF','EXPENSE','XXXXXX','68123',15668,'Pertes de valeur sur les investissements en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15672,'NSCF','EXPENSE','XXXXXX','68126',15668,'Pertes de valeur sur immobilisations financières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15673,'NSCF','EXPENSE','XXXXXX','682',15663,'Dotations aux amortissements, provisions et pertes de valeur des biens mis en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15674,'NSCF','EXPENSE','XXXXXX','6821',15673,'Dotations aux amortissements, des biens mis en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15675,'NSCF','EXPENSE','XXXXXX','6822',15673,'Dotations aux provisions des biens mis-en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15676,'NSCF','EXPENSE','XXXXXX','6828',15673,'Pertes de valeur des biens mis en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15677,'NSCF','EXPENSE','XXXXXX','685',15663,'Dotations aux amortissements, provisions et pertes de valeur, actifs courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15678,'NSCF','EXPENSE','XXXXXX','6853',15677,'Dotations aux pertes de valeur sur stocks','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15679,'NSCF','EXPENSE','XXXXXX','6854',15677,'Dotations aux pertes de valeur sur créances','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15680,'NSCF','EXPENSE','XXXXXX','6855',15677,'Dotations aux provisions et pertes de valeur sur comptes financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15681,'NSCF','EXPENSE','XXXXXX','686',15663,'Dotations aux amortissements, provisions et pertes de valeur, éléments financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15682,'NSCF','EXPENSE','XXXXXX','6861',15681,'Dotations aux amortissements des primes de remboursement des obligations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15683,'NSCF','EXPENSE','XXXXXX','6865',15681,'Dotations aux provisions pour risques et charges financières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15684,'NSCF','EXPENSE','XXXXXX','6866',15681,'Dotations aux provisions pour dépréciations des éléments financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15685,'NSCF','EXPENSE','XXXXXX','68662',15684,'Dotations aux provisions pour dépréciations des immobilisations financières','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15686,'NSCF','EXPENSE','XXXXXX','68665',15684,'Dotations aux provisions pour les valeurs mobilières de placement','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15687,'NSCF','EXPENSE','XXXXXX','6868',15681,'Autres dotations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15688,'NSCF','EXPENSE','XXXXXX','69',15487,'Impôts sur les résultats et assimilés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15689,'NSCF','EXPENSE','XXXXXX','692',15688,'Imposition différée actif','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15690,'NSCF','EXPENSE','XXXXXX','693',15688,'Imposition différée passif','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15691,'NSCF','EXPENSE','XXXXXX','695',15688,'Impôts sur les bénéfices basés sur les résultats des activités ordinaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15692,'NSCF','EXPENSE','XXXXXX','698',15688,'Autres impôts sur les résultats','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15693,'NSCF','INCOME','XXXXXX','7',0,'COMPTES DE PRODUITS','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15694,'NSCF','INCOME','XXXXXX','70',15693,'Ventes de marchandises et de produits fabriqués, ventes de prestations de services et produits annexes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15695,'NSCF','INCOME','XXXXXX','700',15694,'Ventes de marchandises','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15696,'NSCF','INCOME','XXXXXX','701',15694,'Ventes de produits finis','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15697,'NSCF','INCOME','XXXXXX','702',15694,'Ventes de produits intermédiaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15698,'NSCF','INCOME','XXXXXX','703',15694,'Ventes de produits résiduels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15699,'NSCF','INCOME','XXXXXX','704',15694,'Ventes de travaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15700,'NSCF','INCOME','XXXXXX','705',15694,'Ventes d''études ','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15701,'NSCF','INCOME','XXXXXX','706',15694,'Autres prestations de services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15702,'NSCF','INCOME','XXXXXX','708',15694,'Produits des activités annexes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15703,'NSCF','INCOME','XXXXXX','7081',15702,'Produits des services exploités dans l''intérêt du personnel','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15704,'NSCF','INCOME','XXXXXX','7082',15702,'Commissions et courtages','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15705,'NSCF','INCOME','XXXXXX','7083',15702,'Locations diverses','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15706,'NSCF','INCOME','XXXXXX','7084',15702,'Mise à disposition de personnel facturée','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15707,'NSCF','INCOME','XXXXXX','7085',15702,'Ports et frais accessoires facturés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15708,'NSCF','INCOME','XXXXXX','7086',15702,'Bonis sur reprises d''emballages consignés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15709,'NSCF','INCOME','XXXXXX','7087',15702,'Bonifications obtenues des clients et primes sur ventes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15710,'NSCF','INCOME','XXXXXX','7088',15702,'Autres produits d''activités annexes (cessions d''approvisionnements)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15711,'NSCF','INCOME','XXXXXX','709',15694,'Rabais, remises et ristournes accordés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15712,'NSCF','INCOME','XXXXXX','7090',15711,'R.RR, accordés sur ventes de marchandises','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15713,'NSCF','INCOME','XXXXXX','7091',15711,'R.RR, accordés sur ventes de produits finis','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15714,'NSCF','INCOME','XXXXXX','7092',15711,'R.RR, accordés sur ventes de produits intermédiaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15715,'NSCF','INCOME','XXXXXX','7094',15711,'R.RR, accordés sur ventes de travaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15716,'NSCF','INCOME','XXXXXX','7095',15711,'R.RR, accordés sur ventes d''études ','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15717,'NSCF','INCOME','XXXXXX','7096',15711,'R.RR, accordés sur autres prestations de services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15718,'NSCF','INCOME','XXXXXX','7098',15711,'R.RR, accordés sur produits des activités annexes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15719,'NSCF','INCOME','XXXXXX','72',15693,'Production stockée ou déstockée','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15720,'NSCF','INCOME','XXXXXX','723',15719,'Variation de stocks d''encours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15721,'NSCF','INCOME','XXXXXX','7233',15720,'Variation des en-cours de production de biens','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15722,'NSCF','INCOME','XXXXXX','72331',15721,'Produits en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15723,'NSCF','INCOME','XXXXXX','72335',15721,'Travaux en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15724,'NSCF','INCOME','XXXXXX','7234',15720,'Variation des en-cours de production de services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15725,'NSCF','INCOME','XXXXXX','72341',15724,'Etudes en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15726,'NSCF','INCOME','XXXXXX','72345',15724,'Autres prestations de services en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15727,'NSCF','INCOME','XXXXXX','724',15719,'Variation de stocks de produits','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15728,'NSCF','INCOME','XXXXXX','7241',15727,'Variation de stocks des produits intermédiaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15729,'NSCF','INCOME','XXXXXX','7245',15727,'Variation de stocks des produits finis','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15730,'NSCF','INCOME','XXXXXX','7248',15727,'Variation des stocks des produits résiduels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15731,'NSCF','INCOME','XXXXXX','73',15693,'Production immobilisée','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15732,'NSCF','INCOME','XXXXXX','731',15731,'Production immobilisée d''actifs incorporels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15733,'NSCF','INCOME','XXXXXX','732',15731,'Production immobilisée d''actifs corporels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15734,'NSCF','INCOME','XXXXXX','74',15693,'Subventions d''exploitation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15735,'NSCF','INCOME','XXXXXX','741',15734,'Subventions d''équilibre','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15736,'NSCF','INCOME','XXXXXX','748',15734,'Autres subventions d''exploitation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15737,'NSCF','INCOME','XXXXXX','75',15693,'Autres produits opérationnels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15738,'NSCF','INCOME','XXXXXX','751',15737,'Redevances pour concessions, brevets, licences, logiciels et valeurs similaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15739,'NSCF','INCOME','XXXXXX','7511',15738,'Redevances pour concessions, brevets, licences, logiciels, marques, procédés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15740,'NSCF','INCOME','XXXXXX','7516',15738,'Droits d''auteur et de reproduction','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15741,'NSCF','INCOME','XXXXXX','7518',15738,'Autres droits et valeurs similaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15742,'NSCF','INCOME','XXXXXX','752',15737,'Plus-value sur sortie d''actifs immobilisés non financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15743,'NSCF','INCOME','XXXXXX','753',15737,'Jetons de présence et rémunérations d''administrateurs ou de gérants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15744,'NSCF','INCOME','XXXXXX','754',15737,'Quotes-parts de subventions d''investissements virés au résultat de l''exercice','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15745,'NSCF','INCOME','XXXXXX','755',15737,'Quotes-parts de résultat sur opérations faites en commun','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15746,'NSCF','INCOME','XXXXXX','7551',15745,'Quote-part de perte transférée (comptabilité du gérant)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15747,'NSCF','INCOME','XXXXXX','7555',15745,'Quote-part de bénéfice attribuée (comptabilité des associés non-gérants)','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15748,'NSCF','INCOME','XXXXXX','756',15737,'Rentrées sur créances amorties','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15749,'NSCF','INCOME','XXXXXX','757',15737,'Produits exceptionnels sur opérations de gestion','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15750,'NSCF','INCOME','XXXXXX','758',15737,'Autres produits de gestion courante','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15751,'NSCF','INCOME','XXXXXX','76',15693,'Produits financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15752,'NSCF','INCOME','XXXXXX','761',15751,'Produits des participations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15753,'NSCF','INCOME','XXXXXX','7611',15752,'Revenus des titres de participation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15754,'NSCF','INCOME','XXXXXX','7616',15752,'Revenus sur autres formes de participation','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15755,'NSCF','INCOME','XXXXXX','7617',15752,'Revenus des créances rattachées à des participations','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15756,'NSCF','INCOME','XXXXXX','762',15751,'Revenus des actifs financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15757,'NSCF','INCOME','XXXXXX','7621',15756,'Revenus des titres immobilisés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15758,'NSCF','INCOME','XXXXXX','7626',15756,'Revenus des prêts','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15759,'NSCF','INCOME','XXXXXX','7627',15756,'Revenus des créances immobilisées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15760,'NSCF','INCOME','XXXXXX','763',15751,'Revenus de créances','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15761,'NSCF','INCOME','XXXXXX','7631',15760,'Revenus des créances commerciales','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15762,'NSCF','INCOME','XXXXXX','7638',15760,'Revenus des créances diverses','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15763,'NSCF','INCOME','XXXXXX','765',15751,'Ecart d''évaluation sur actifs financiers - plus values','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15764,'NSCF','INCOME','XXXXXX','766',15751,'Gains de change','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15765,'NSCF','INCOME','XXXXXX','767',15751,'Produits nets sur cessions d''actifs financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15766,'NSCF','INCOME','XXXXXX','7671',15765,'Profits nets sur cession des part dans les entreprises liées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15767,'NSCF','INCOME','XXXXXX','7672',15765,'Profits nets sur cession d''actions propres','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15768,'NSCF','INCOME','XXXXXX','7673',15765,'Profits nets sur cession des autres titres conférant un droit de propriété','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15769,'NSCF','INCOME','XXXXXX','7676',15765,'Profits nets sur cession d''obligations, bons du trésor et bons de caisse à court terme','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15770,'NSCF','INCOME','XXXXXX','7678',15765,'Profits nets sur cession des autres valeurs mobilières et créances assimilées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15771,'NSCF','INCOME','XXXXXX','768',15751,'Autres produits financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15772,'NSCF','INCOME','XXXXXX','77',15693,'Eléments extraordinaires - produits','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15773,'NSCF','INCOME','XXXXXX','770',15772,'Produits sur exercices antérieurs','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15774,'NSCF','INCOME','XXXXXX','7700',15773,'Produits sur exercices antérieurs – ventes de marchandises','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15775,'NSCF','INCOME','XXXXXX','7701',15773,'Produits sur exercices antérieurs – ventes de produits finis','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15776,'NSCF','INCOME','XXXXXX','7702',15773,'Produits sur exercices antérieurs – ventes de produits intermédiaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15777,'NSCF','INCOME','XXXXXX','7703',15773,'Produits sur exercices antérieurs – ventes de produits résiduels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15778,'NSCF','INCOME','XXXXXX','7704',15773,'Produits sur exercices antérieurs – ventes de travaux','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15779,'NSCF','INCOME','XXXXXX','7705',15773,'Produits sur exercices antérieurs – ventes d''études ','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15780,'NSCF','INCOME','XXXXXX','7706',15773,'Produits sur exercices antérieurs – autres prestations de services','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15781,'NSCF','INCOME','XXXXXX','7708',15773,'Produits sur exercices antérieur - ventes de produits des activités annexes','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15782,'NSCF','INCOME','XXXXXX','775',15772,'Produits sur exercices antérieurs - autres produits opérationnels','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15783,'NSCF','INCOME','XXXXXX','7751',15782,'Redevances pour concessions, brevets, licence ; logiciels et valeurs similaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15784,'NSCF','INCOME','XXXXXX','7752',15782,'Plus-values sur sorties d''actifs immobilisés non financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15785,'NSCF','INCOME','XXXXXX','7753',15782,'Jetons de présence et rémunérations d''administrateurs ou de gérants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15786,'NSCF','INCOME','XXXXXX','7754',15782,'Quotes-parts de subventions d''investissements virées au résultat de l''exercice','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15787,'NSCF','INCOME','XXXXXX','7755',15782,'Quotes-parts de résultat sur opérations faites en commun','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15788,'NSCF','INCOME','XXXXXX','7756',15782,'Rentrées sur créances amorties','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15789,'NSCF','INCOME','XXXXXX','7757',15782,'Produits exceptionnels sur opération de gestion','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15790,'NSCF','INCOME','XXXXXX','7759',15782,'Produits sur exercices antérieurs - remboursement des immobilisations expropriées détruites','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15791,'NSCF','INCOME','XXXXXX','778',15772,'Autres éléments extraordinaires - produits','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15792,'NSCF','INCOME','XXXXXX','7783',15791,'Bonis provenant du rachat par l''entreprise d''actions et d''obligations émises par elle-même','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15793,'NSCF','INCOME','XXXXXX','7788',15791,'Autres Produits extraordinaires divers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15794,'NSCF','INCOME','XXXXXX','78',15693,'Reprises sur pertes de valeur et provisions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15795,'NSCF','INCOME','XXXXXX','781',15794,'Reprises d''exploitation sur pertes de valeurs et provisions - actifs non courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15796,'NSCF','INCOME','XXXXXX','7810',15795,'Reprises sur provisions et pertes de valeur des immobilisations incorporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15797,'NSCF','INCOME','XXXXXX','7811',15795,'Reprises sur provisions et pertes de valeur des immobilisations corporelles','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15798,'NSCF','INCOME','XXXXXX','7812',15795,'Reprises sur provisions des immobilisations en concession','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15799,'NSCF','INCOME','XXXXXX','7813',15795,'Reprises sur provisions d''immobilisations en cours','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15800,'NSCF','INCOME','XXXXXX','7816',15795,'Reprise sur pertes de valeur des participations et créances rattachées','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15801,'NSCF','INCOME','XXXXXX','7817',15795,'Reprise sur perte de valeur des autres titres immobilisés','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15802,'NSCF','INCOME','XXXXXX','7818',15795,'Reprise sur pertes de valeur des autres instruments financiers','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15803,'NSCF','INCOME','XXXXXX','785',15794,'Reprises d''exploitation sur pertes de valeur et provisions - actifs courants','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15804,'NSCF','INCOME','XXXXXX','7853',15803,'Reprises sur provisions et pertes de valeur sur les comptes de stocks','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15805,'NSCF','INCOME','XXXXXX','7854',15803,'Reprises sur provisions et pertes de valeur sur les comptes de créances','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15806,'NSCF','INCOME','XXXXXX','7855',15803,'Reprises sur provisions et pertes de valeur sur les comptes de trésorerie','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15807,'NSCF','INCOME','XXXXXX','786',15794,'Reprises financières sur pertes de valeurs et provisions','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15808,'NSCF','INCOME','XXXXXX','7860',15807,'Reprises provisions sur plus-values à réinvestir','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15809,'NSCF','INCOME','XXXXXX','7863',15807,'Reprises provisions sur pensions et obligations similaires','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15810,'NSCF','INCOME','XXXXXX','7865',15807,'Reprises provisions pour impôts','1');
    +INSERT IGNORE INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (15811,'NSCF','INCOME','XXXXXX','7868',15807,'Reprises autres provisions pour charges - passifs non courants','1');
    diff --git a/htdocs/install/mysql/data/llx_accounting_account_es.sql b/htdocs/install/mysql/data/llx_accounting_account_es.sql
    index 3000cef31d2..ef7d5aaa634 100644
    --- a/htdocs/install/mysql/data/llx_accounting_account_es.sql
    +++ b/htdocs/install/mysql/data/llx_accounting_account_es.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2011-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
     --
    diff --git a/htdocs/install/mysql/data/llx_accounting_account_fr.sql b/htdocs/install/mysql/data/llx_accounting_account_fr.sql
    index 68ed8618bc7..ef8ef176597 100644
    --- a/htdocs/install/mysql/data/llx_accounting_account_fr.sql
    +++ b/htdocs/install/mysql/data/llx_accounting_account_fr.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007      Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2011-2017 Alexandre Spangaro   <aspangaro@zendsi.com>
     --
    diff --git a/htdocs/install/mysql/data/llx_c_action_trigger.sql b/htdocs/install/mysql/data/llx_c_action_trigger.sql
    index 35077eb5bc5..d8123d3ca8f 100644
    --- a/htdocs/install/mysql/data/llx_c_action_trigger.sql
    +++ b/htdocs/install/mysql/data/llx_c_action_trigger.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2013  Laurent Destailleur     <eldy@users.sourceforge.net>
     -- Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
     -- Copyright (C) 2004       Guillaume Delecourt     <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2011  Regis Houssin           <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2011  Regis Houssin           <regis.houssin@inodbox.com>
     -- Copyright (C) 2007       Patrick Raguin          <patrick.raguin@gmail.com>
     -- Copyright (C) 2010-2013  Juanjo Menent           <jmenent@2byte.es>
     -- Copyright (C) 2013       Cedric Gross            <c.gross@kreiz-it.fr>
    @@ -36,25 +36,30 @@ delete from llx_c_action_trigger;
     -- actions enabled by default (constant created for that) when we enable module agenda
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('COMPANY_CREATE','Third party created','Executed when a third party is created','societe',1);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('COMPANY_DELETE','Third party deleted','Executed when you delete third party','societe',1);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_VALIDATE','Customer proposal validated','Executed when a commercial proposal is validated','propal',2);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_SENTBYMAIL','Commercial proposal sent by mail','Executed when a commercial proposal is sent by mail','propal',3);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_SIGNED','Customer proposal closed signed','Executed when a customer proposal is closed signed','propal',2);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLOSE_REFUSED','Customer proposal closed refused','Executed when a customer proposal is closed refused','propal',2);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_CLASSIFY_BILLED','Customer proposal set billed','Executed when a customer proposal is set to billed','propal',2);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_VALIDATE','Customer order validate','Executed when a customer order is validated','commande',4);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_CLOSE','Customer order classify delivered','Executed when a customer order is set delivered','commande',5);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_CLASSIFY_BILLED','Customer order classify billed','Executed when a customer order is set to billed','commande',5);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_CANCEL','Customer order canceled','Executed when a customer order is canceled','commande',5);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SENTBYMAIL','Customer order sent by mail','Executed when a customer order is sent by mail ','commande',5);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_DELETE','Customer order deleted','Executed when a customer order is deleted','commande',5);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_VALIDATE','Customer invoice validated','Executed when a customer invoice is approved','facture',6);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_PAYED','Customer invoice payed','Executed when a customer invoice is payed','facture',7);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_CANCEL','Customer invoice canceled','Executed when a customer invoice is conceled','facture',8);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SENTBYMAIL','Customer invoice sent by mail','Executed when a customer invoice is sent by mail','facture',9);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_UNVALIDATE','Customer invoice unvalidated','Executed when a customer invoice status set back to draft','facture',9);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_DELETE','Customer invoice deleted','Executed when a customer invoice is deleted','facture',9);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_VALIDATE','Price request validated','Executed when a commercial proposal is validated','proposal_supplier',10);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_SENTBYMAIL','Price request sent by mail','Executed when a commercial proposal is sent by mail','proposal_supplier',10);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_CLOSE_SIGNED','Price request closed signed','Executed when a customer proposal is closed signed','proposal_supplier',10);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_CLOSE_REFUSED','Price request closed refused','Executed when a customer proposal is closed refused','proposal_supplier',10);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_DELETE','Price request deleted','Executed when a customer proposal delete','proposal_supplier',10);
     --insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_CREATE','Supplier order created','Executed when a supplier order is created','order_supplier',11);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_VALIDATE','Supplier order validated','Executed when a supplier order is validated','order_supplier',12);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_APPROVE','Supplier order request approved','Executed when a supplier order is approved','order_supplier',13);
    @@ -63,15 +68,21 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_REFUSE','Supplier order request refused','Executed when a supplier order is refused','order_supplier',13);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_SENTBYMAIL','Supplier order sent by mail','Executed when a supplier order is sent by mail','order_supplier',14);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_CLASSIFY_BILLED','Supplier order set billed','Executed when a supplier order is set as billed','order_supplier',14);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_DELETE','Supplier order deleted','Executed when a supplier order is deleted','order_supplier',14);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_VALIDATE','Supplier invoice validated','Executed when a supplier invoice is validated','invoice_supplier',15);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_UNVALIDATE','Supplier invoice unvalidated','Executed when a supplier invoice status is set back to draft','invoice_supplier',15);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_PAYED','Supplier invoice payed','Executed when a supplier invoice is payed','invoice_supplier',16);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_SENTBYMAIL','Supplier invoice sent by mail','Executed when a supplier invoice is sent by mail','invoice_supplier',17);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_CANCELED','Supplier invoice cancelled','Executed when a supplier invoice is cancelled','invoice_supplier',17);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_DELETE','Supplier invoice deleted','Executed when a supplier invoice is deleted','invoice_supplier',17);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTRACT_VALIDATE','Contract validated','Executed when a contract is validated','contrat',18);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTRACT_SENTBYMAIL','Contract sent by mail','Executed when a contract is sent by mail','contrat',18);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTRACT_DELETE','Contract deleted','Executed when a contract is deleted','contrat',18);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_VALIDATE','Shipping validated','Executed when a shipping is validated','shipping',20);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_SENTBYMAIL','Shipping sent by mail','Executed when a shipping is sent by mail','shipping',21);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('SHIPPING_DELETE','Shipping sent is deleted','Executed when a shipping is deleted','shipping',21);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECEPTION_VALIDATE','Reception validated','Executed when a reception is validated','reception',22);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('RECEPTION_SENTBYMAIL','Reception sent by mail','Executed when a reception is sent by mail','reception',22);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_VALIDATE','Member validated','Executed when a member is validated','member',22);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_SENTBYMAIL','Mails sent from member card','Executed when you send email from member card','member',23);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_SUBSCRIPTION_CREATE','Member subscribtion recorded','Executed when a member subscribtion is deleted','member',24);
    @@ -84,14 +95,21 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_CLASSIFY_UNBILLED','Intervention set unbilled','Executed when a intervention is set to unbilled (when option FICHINTER_CLASSIFY_BILLED is set)','ficheinter',33);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_REOPEN','Intervention opened','Executed when a intervention is re-opened','ficheinter',34);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_SENTBYMAIL','Intervention sent by mail','Executed when a intervention is sent by mail','ficheinter',35);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_DELETE','Intervention is deleted','Executed when a intervention is deleted','ficheinter',35);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',40);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_DELETE','Product or service deleted','Executed when a product or sevice is deleted','product',42);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expensereport',201);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_PAYED','Expense report billed','Executed when an expense report is set as billed','expensereport',204);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',204);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_VALIDATE','Project validation','Executed when a project is validated','project',141);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROJECT_DELETE','Project deleted','Executed when a project is deleted','project',143);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_CREATE','Ticket created','Executed when a ticket is created','ticket',161);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_MODIFY','Ticket modified','Executed when a ticket is modified','ticket',163);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_DELETE','Ticket deleted','Executed when a ticket is deleted','ticket',164);
     -- actions not enabled by default (no constant created for that) when we enable module agenda 
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',41);
     insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('MEMBER_MODIFY','Member modified','Executed when a member is modified','member',23);
    diff --git a/htdocs/install/mysql/data/llx_c_actioncomm.sql b/htdocs/install/mysql/data/llx_c_actioncomm.sql
    index 6b89ed74dd2..7f7c3d6ea2e 100644
    --- a/htdocs/install/mysql/data/llx_c_actioncomm.sql
    +++ b/htdocs/install/mysql/data/llx_c_actioncomm.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_chargesociales.sql b/htdocs/install/mysql/data/llx_c_chargesociales.sql
    index d598f6fef60..d59e0cbc290 100644
    --- a/htdocs/install/mysql/data/llx_c_chargesociales.sql
    +++ b/htdocs/install/mysql/data/llx_c_chargesociales.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_civilite.sql b/htdocs/install/mysql/data/llx_c_civilite.sql
    index 0d7c0753131..a14e84be27d 100644
    --- a/htdocs/install/mysql/data/llx_c_civilite.sql
    +++ b/htdocs/install/mysql/data/llx_c_civilite.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_currencies.sql b/htdocs/install/mysql/data/llx_c_currencies.sql
    index 5f561f26ba0..8446618e9b5 100644
    --- a/htdocs/install/mysql/data/llx_c_currencies.sql
    +++ b/htdocs/install/mysql/data/llx_c_currencies.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2011 	   Juanjo Menent        <jmenent@2byte.es>
     --
    diff --git a/htdocs/install/mysql/data/llx_c_ecotaxe.sql b/htdocs/install/mysql/data/llx_c_ecotaxe.sql
    index 845ffa1e685..12505ba81c6 100644
    --- a/htdocs/install/mysql/data/llx_c_ecotaxe.sql
    +++ b/htdocs/install/mysql/data/llx_c_ecotaxe.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2018 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2018 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_effectif.sql b/htdocs/install/mysql/data/llx_c_effectif.sql
    index 82302c61a07..6e9bc4ed0e9 100644
    --- a/htdocs/install/mysql/data/llx_c_effectif.sql
    +++ b/htdocs/install/mysql/data/llx_c_effectif.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_email_templates.sql b/htdocs/install/mysql/data/llx_c_email_templates.sql
    index 3d1a1e7c178..0c64fcf7d0d 100644
    --- a/htdocs/install/mysql/data/llx_c_email_templates.sql
    +++ b/htdocs/install/mysql/data/llx_c_email_templates.sql
    @@ -20,13 +20,13 @@
     -- de l'install et tous les sigles '--' sont supprimés.
     --
     
    -INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines) VALUES (0,'banque','thirdparty','',0,null,null,'(YourSEPAMandate)',1,1,0,'__(YourSEPAMandate)__','__(Hello)__,<br><br>\n\n__(FindYourSEPAMandate)__ :<br>\n__MYCOMPANY_NAME__<br>\n__MYCOMPANY_FULLADDRESS__<br><br>\n__(Sincerely)__<br>\n__USER_SIGNATURE__',null);
    +INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines) VALUES (0,'banque','thirdparty','',0,null,null,'(YourSEPAMandate)',1,'$conf->societe->enabled && $conf->banque->enabled && $conf->prelevement->enabled',0,'__(YourSEPAMandate)__','__(Hello)__,<br><br>\n\n__(FindYourSEPAMandate)__ :<br>\n__MYCOMPANY_NAME__<br>\n__MYCOMPANY_FULLADDRESS__<br><br>\n__(Sincerely)__<br>\n__USER_SIGNATURE__',null);
     
     
    -INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnAutoSubscription)'       ,10,1,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipRequestWasReceived)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourMembershipRequestWasReceived)__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 0);
    -INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnMemberValidation)'       ,20,1,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasValidated)__',      '__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourMembershipWasValidated)__<br>__INFOS__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 0);
    -INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnNewSubscription)'        ,30,1,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourSubscriptionWasRecorded)__',     '__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourSubscriptionWasRecorded)__<br>\n\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 1);
    -INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingReminderForExpiredSubscription)',40,1,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(SubscriptionReminderEmail)__',       '__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfSubscriptionReminderEmail)__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 0);
    -INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnCancelation)'            ,50,1,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasCanceled)__',       '__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(YourMembershipWasCanceled)__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 0);
    -INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingAnEMailToMember)'               ,60,1,1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(CardContent)__',                     '__(Hello)__,<br><br>\n\n__(ThisIsContentOfYourCard)__<br>\n__(ID)__ : __ID__<br>\n__(Civiliyty)__ : __MEMBER_CIVILITY__<br>\n__(Firstname)__ : __MEMBER_FIRSTNAME__<br>\n__(Lastname)__ : __MEMBER_LASTNAME__<br>\n__(Fullname)__ : __MEMBER_FULLNAME__<br>\n__(Company)__ : __MEMBER_COMPANY__<br>\n__(Address)__ : __MEMBER_ADDRESS__<br>\n__(Zip)__ : __MEMBER_ZIP__<br>\n__(Town)__ : __MEMBER_TOWN__<br>\n__(Country)__ : __MEMBER_COUNTRY__<br>\n__(Email)__ : __MEMBER_EMAIL__<br>\n__(Birthday)__ : __MEMBER_BIRTH__<br>\n__(Photo)__ : __MEMBER_PHOTO__<br>\n__(Login)__ : __MEMBER_LOGIN__<br>\n__(Password)__ : __MEMBER_PASSWORD__<br>\n__(Phone)__ : __MEMBER_PHONE__<br>\n__(PhonePerso)__ : __MEMBER_PHONEPRO__<br>\n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 0);
    +INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnAutoSubscription)'       ,10,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipRequestWasReceived)__','__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourMembershipRequestWasReceived)__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 0);
    +INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnMemberValidation)'       ,20,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasValidated)__',      '__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourMembershipWasValidated)__<br>__INFOS__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 0);
    +INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnNewSubscription)'        ,30,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourSubscriptionWasRecorded)__',     '__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfYourSubscriptionWasRecorded)__<br>\n\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 1);
    +INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingReminderForExpiredSubscription)',40,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(SubscriptionReminderEmail)__',       '__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(ThisIsContentOfSubscriptionReminderEmail)__<br>\n<br>__ONLINE_PAYMENT_TEXT_AND_URL__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 0);
    +INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingEmailOnCancelation)'            ,50,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(YourMembershipWasCanceled)__',       '__(Hello)__ __MEMBER_FULLNAME__,<br><br>\n\n__(YourMembershipWasCanceled)__<br>\n<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 0);
    +INSERT INTO llx_c_email_templates (entity,module,type_template,lang,private,fk_user,datec,label,position,enabled,active,topic,content,content_lines,joinfiles) VALUES (0,'adherent','member','',0,null,null,'(SendingAnEMailToMember)'               ,60,'$conf->adherent->enabled',1,'[__[MAIN_INFO_SOCIETE_NOM]__] __(CardContent)__',                     '__(Hello)__,<br><br>\n\n__(ThisIsContentOfYourCard)__<br>\n__(ID)__ : __ID__<br>\n__(Civiliyty)__ : __MEMBER_CIVILITY__<br>\n__(Firstname)__ : __MEMBER_FIRSTNAME__<br>\n__(Lastname)__ : __MEMBER_LASTNAME__<br>\n__(Fullname)__ : __MEMBER_FULLNAME__<br>\n__(Company)__ : __MEMBER_COMPANY__<br>\n__(Address)__ : __MEMBER_ADDRESS__<br>\n__(Zip)__ : __MEMBER_ZIP__<br>\n__(Town)__ : __MEMBER_TOWN__<br>\n__(Country)__ : __MEMBER_COUNTRY__<br>\n__(Email)__ : __MEMBER_EMAIL__<br>\n__(Birthday)__ : __MEMBER_BIRTH__<br>\n__(Photo)__ : __MEMBER_PHOTO__<br>\n__(Login)__ : __MEMBER_LOGIN__<br>\n__(Password)__ : __MEMBER_PASSWORD__<br>\n__(Phone)__ : __MEMBER_PHONE__<br>\n__(PhonePerso)__ : __MEMBER_PHONEPRO__<br>\n__(PhoneMobile)__ : __MEMBER_PHONEMOBILE__<br><br>\n__(Sincerely)__<br>__USER_SIGNATURE__',null, 0);
     
    diff --git a/htdocs/install/mysql/data/llx_c_forme_juridique.sql b/htdocs/install/mysql/data/llx_c_forme_juridique.sql
    index 8948984e907..ec8e687203f 100644
    --- a/htdocs/install/mysql/data/llx_c_forme_juridique.sql
    +++ b/htdocs/install/mysql/data/llx_c_forme_juridique.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2010-2016 Juanjo Menent        <jmenent@2byte.es>
     -- Copyright (C) 2012 	   Sebastian Neuwert    <sebastian.neuwert@modula71.de>
    @@ -89,9 +89,9 @@ insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'29','Group
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'31','Personne morale de droit étranger, immatriculée au RCS');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'32','Personne morale de droit étranger, non immatriculée au RCS');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'35','Régime auto-entrepreneur');
    -                                                                     
    +
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'41','Etablissement public ou régie à caractère industriel ou commercial');
    -                                                                     
    +
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'51','Société coopérative commerciale particulière');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'52','Société en nom collectif');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'53','Société en commandite');
    @@ -108,18 +108,18 @@ insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'63','Soci
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'64','Société non commerciale d assurances');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'65','Société civile');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'69','Personnes de droit privé inscrites au RCS');
    -                                                                     
    +
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'71','Administration de l état');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'72','Collectivité territoriale');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'73','Etablissement public administratif');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'74','Personne morale de droit public administratif');
    -                                                                     
    +
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'81','Organisme gérant régime de protection social à adhésion obligatoire');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'82','Organisme mutualiste');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'83','Comité d entreprise');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'84','Organisme professionnel');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'85','Organisme de retraite à adhésion non obligatoire');
    -                                                                     
    +
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'91','Syndicat de propriétaires');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'92','Association loi 1901 ou assimilé');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'93','Fondation');
    @@ -159,6 +159,17 @@ insert into llx_c_forme_juridique (fk_pays, code, libelle) values (5, '506', 'KG
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (5, '507', 'Ltd. - Limited Company');
     insert into llx_c_forme_juridique (fk_pays, code, libelle) values (5, '508', 'OHG - Offene Handelsgesellschaft');
     
    +-- Denmark
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8001', 'Aktieselvskab A/S');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8002', 'Anparts Selvskab ApS');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8003', 'Personlig ejet selvskab');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8004', 'Iværksætterselvskab IVS');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8005', 'Interessentskab I/S');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8006', 'Holdingselskab');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8007', 'Selskab Med Begrænset Hæftelse SMBA');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8008', 'Kommanditselskab K/S');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8009', 'SPE-selskab');
    +
     -- Greece
     INSERT INTO llx_c_forme_juridique (code,fk_pays,libelle,isvatexempted,active) VALUES ('10201',102,'Ατομική επιχείρηση',0,1);
     INSERT INTO llx_c_forme_juridique (code,fk_pays,libelle,isvatexempted,active) VALUES ('10202',102,'Εταιρική  επιχείρηση',0,1);
    @@ -313,4 +324,5 @@ INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (178,
     INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (178, '17802', 'Asociación General', 1);
     INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (178, '17803', 'Sociedad de Responsabilidad Limitada', 1);
     INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (178, '17804', 'Sociedad Civil', 1);
    -INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (178, '17805', 'Sociedad Anónima', 1);
    \ No newline at end of file
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (178, '17805', 'Sociedad Anónima', 1);
    +
    diff --git a/htdocs/install/mysql/data/llx_c_holiday_type.sql b/htdocs/install/mysql/data/llx_c_holiday_type.sql
    index 87eb67be131..64ab84f410f 100644
    --- a/htdocs/install/mysql/data/llx_c_holiday_type.sql
    +++ b/htdocs/install/mysql/data/llx_c_holiday_type.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2012 	   Tommaso Basilici       <t.basilici@19.coop>
     --
    diff --git a/htdocs/install/mysql/data/llx_c_incoterms.sql b/htdocs/install/mysql/data/llx_c_incoterms.sql
    index ad9b09f09fc..3294c8285a3 100644
    --- a/htdocs/install/mysql/data/llx_c_incoterms.sql
    +++ b/htdocs/install/mysql/data/llx_c_incoterms.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_input_method.sql b/htdocs/install/mysql/data/llx_c_input_method.sql
    index 062110f6c43..f3bd0fa6590 100644
    --- a/htdocs/install/mysql/data/llx_c_input_method.sql
    +++ b/htdocs/install/mysql/data/llx_c_input_method.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_input_reason.sql b/htdocs/install/mysql/data/llx_c_input_reason.sql
    index 1188e7b345d..36bc3faec04 100644
    --- a/htdocs/install/mysql/data/llx_c_input_reason.sql
    +++ b/htdocs/install/mysql/data/llx_c_input_reason.sql
    @@ -32,3 +32,4 @@ INSERT INTO llx_c_input_reason (rowid,code,label,active) VALUES ( 8, 'SRC_WOM',
     INSERT INTO llx_c_input_reason (rowid,code,label,active) VALUES ( 9, 'SRC_PARTNER',    'Partner', 1);
     INSERT INTO llx_c_input_reason (rowid,code,label,active) VALUES (10, 'SRC_EMPLOYEE',   'Employee', 1);
     INSERT INTO llx_c_input_reason (rowid,code,label,active) VALUES (11, 'SRC_SPONSORING', 'Sponsorship', 1);
    +INSERT INTO llx_c_input_reason (rowid,code,label,active) VALUES (12, 'SRC_CUSTOMER',   'Incoming contact of a customer', 1);
    diff --git a/htdocs/install/mysql/data/llx_c_paiement.sql b/htdocs/install/mysql/data/llx_c_paiement.sql
    index 2e459cd12a7..b0d9d0ed233 100644
    --- a/htdocs/install/mysql/data/llx_c_paiement.sql
    +++ b/htdocs/install/mysql/data/llx_c_paiement.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_paper_format.sql b/htdocs/install/mysql/data/llx_c_paper_format.sql
    index e88393ddfad..8df46f0d325 100644
    --- a/htdocs/install/mysql/data/llx_c_paper_format.sql
    +++ b/htdocs/install/mysql/data/llx_c_paper_format.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_payment_term.sql b/htdocs/install/mysql/data/llx_c_payment_term.sql
    index 852ff9db4cb..232e0ebc865 100644
    --- a/htdocs/install/mysql/data/llx_c_payment_term.sql
    +++ b/htdocs/install/mysql/data/llx_c_payment_term.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2012 	   Tommaso Basilici       <t.basilici@19.coop>
     --
    diff --git a/htdocs/install/mysql/data/llx_c_propalst.sql b/htdocs/install/mysql/data/llx_c_propalst.sql
    index 908ed48f805..b6d8b7f56e6 100644
    --- a/htdocs/install/mysql/data/llx_c_propalst.sql
    +++ b/htdocs/install/mysql/data/llx_c_propalst.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_prospectlevel.sql b/htdocs/install/mysql/data/llx_c_prospectlevel.sql
    index 6982f2d2d1e..c0bc26d883f 100644
    --- a/htdocs/install/mysql/data/llx_c_prospectlevel.sql
    +++ b/htdocs/install/mysql/data/llx_c_prospectlevel.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_shipment_mode.sql b/htdocs/install/mysql/data/llx_c_shipment_mode.sql
    index 189bd3ea94b..56e8fe68a7e 100644
    --- a/htdocs/install/mysql/data/llx_c_shipment_mode.sql
    +++ b/htdocs/install/mysql/data/llx_c_shipment_mode.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    @@ -29,8 +29,8 @@
     --
     -- Sending method
     --
    -INSERT INTO llx_c_shipment_mode (rowid,code,libelle,description,tracking,active) VALUES (1,'CATCH','At-Store Reclamation','At-Store Reclamation by the customer','',1);
    -INSERT INTO llx_c_shipment_mode (rowid,code,libelle,description,tracking,active) VALUES (2,'TRANS','Generic transporter','Generic transporter','',1);
    +INSERT INTO llx_c_shipment_mode (rowid,code,libelle,description,tracking,active) VALUES (1,'CATCH','In-Store Collection','In-store collection by the customer','',1);
    +INSERT INTO llx_c_shipment_mode (rowid,code,libelle,description,tracking,active) VALUES (2,'TRANS','Courier Service','Courier Service','',1);
     INSERT INTO llx_c_shipment_mode (rowid,code,libelle,description,tracking,active) VALUES (3,'COLSUI','Colissimo Suivi','Colissimo Suivi','http://www.colissimo.fr/portail_colissimo/suivre.do?colispart={TRACKID}',0);
     INSERT INTO llx_c_shipment_mode (rowid,code,libelle,description,tracking,active) VALUES (4,'LETTREMAX','Lettre Max','Courrier Suivi et Lettre Max','',0);
     INSERT INTO llx_c_shipment_mode (rowid,code,libelle,description,tracking,active) VALUES (5,'UPS','UPS','United Parcel Service','http://wwwapps.ups.com/etracking/tracking.cgi?InquiryNumber2=&InquiryNumber3=&tracknums_displayed=3&loc=fr_FR&TypeOfInquiryNumber=T&HTMLVersion=4.0&InquiryNumber22=&InquiryNumber32=&track=Track&Suivi.x=64&Suivi.y=7&Suivi=Valider&InquiryNumber1={TRACKID}',0);
    diff --git a/htdocs/install/mysql/data/llx_c_stcomm.sql b/htdocs/install/mysql/data/llx_c_stcomm.sql
    index e1bf526d489..088be6c83ec 100644
    --- a/htdocs/install/mysql/data/llx_c_stcomm.sql
    +++ b/htdocs/install/mysql/data/llx_c_stcomm.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_tva.sql b/htdocs/install/mysql/data/llx_c_tva.sql
    index 91dbe5c1cf5..17c8b7489ee 100644
    --- a/htdocs/install/mysql/data/llx_c_tva.sql
    +++ b/htdocs/install/mysql/data/llx_c_tva.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2010-2016 Juanjo Menent        <jmenent@2byte.es>
     -- Copyright (C) 2012      Sebastian Neuwert    <sebastian.neuwert@modula71.de>
    diff --git a/htdocs/install/mysql/data/llx_c_type_contact.sql b/htdocs/install/mysql/data/llx_c_type_contact.sql
    index 9a4175bef81..62107525ff9 100644
    --- a/htdocs/install/mysql/data/llx_c_type_contact.sql
    +++ b/htdocs/install/mysql/data/llx_c_type_contact.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_type_container.sql b/htdocs/install/mysql/data/llx_c_type_container.sql
    index 1e915412a12..403ddd8c252 100644
    --- a/htdocs/install/mysql/data/llx_c_type_container.sql
    +++ b/htdocs/install/mysql/data/llx_c_type_container.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_type_fees.sql b/htdocs/install/mysql/data/llx_c_type_fees.sql
    index 752d6a6dd57..d78455e2939 100644
    --- a/htdocs/install/mysql/data/llx_c_type_fees.sql
    +++ b/htdocs/install/mysql/data/llx_c_type_fees.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2017      ATM Consulting       <contact@atm-consulting.fr>
     -- Copyright (C) 2017      Pierre-Henry Favre   <phf@atm-consulting.fr>
    diff --git a/htdocs/install/mysql/data/llx_c_type_resource.sql b/htdocs/install/mysql/data/llx_c_type_resource.sql
    index 8b7ca68ecf8..66480157eef 100644
    --- a/htdocs/install/mysql/data/llx_c_type_resource.sql
    +++ b/htdocs/install/mysql/data/llx_c_type_resource.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_c_typent.sql b/htdocs/install/mysql/data/llx_c_typent.sql
    index 4365a2e99a6..be24586f36d 100644
    --- a/htdocs/install/mysql/data/llx_c_typent.sql
    +++ b/htdocs/install/mysql/data/llx_c_typent.sql
    @@ -3,7 +3,7 @@
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/data/llx_const.sql b/htdocs/install/mysql/data/llx_const.sql
    index 5d3a96d7df2..bca58905104 100644
    --- a/htdocs/install/mysql/data/llx_const.sql
    +++ b/htdocs/install/mysql/data/llx_const.sql
    @@ -3,8 +3,9 @@
     -- Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
     -- Copyright (C) 2004      Guillaume Delecourt  <guillaume.delecourt@opensides.be>
    --- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2007 	   Patrick Raguin       <patrick.raguin@gmail.com>
    +-- Copyright (C) 2019 	   Markus Welters       <markus@welters.de>
     --
     -- 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
    @@ -43,7 +44,7 @@ insert into llx_const (name, value, type, note, visible, entity) values ('SYSLOG
     insert into llx_const (name, value, type, note, visible, entity) values ('SYSLOG_LEVEL','7','chaine','Level of debug info to show',0,0);
     insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_UPLOAD_DOC','2048','chaine','Max size for file upload (0 means no upload allowed)',0,0);
     
    --- Hidden but specific to one entity 
    +-- Hidden but specific to one entity
     insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_ENABLE_OVERWRITE_TRANSLATION','1','chaine','Enable translation overwrite',0,1);
     insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_ENABLE_DEFAULT_VALUES','1','chaine','Enable default value overwrite',0,1);
     insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_MONNAIE','EUR','chaine','Monnaie',0,1);
    diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
    index 48a6b191ebf..d72777db230 100644
    --- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
    +++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
    @@ -66,6 +66,7 @@ INSERT INTO llx_const (name, value, type, note, visible) values (__ENCRYPT('MAIN
     ALTER TABLE llx_accounting_system MODIFY COLUMN pcg_version varchar(32);
     ALTER TABLE llx_accountingaccount MODIFY COLUMN fk_pcg_version varchar(32);
     ALTER TABLE llx_accountingaccount RENAME TO llx_accounting_account;
    +--VPGSQL8.2 ALTER SEQUENCE llx_accountingaccount_rowid_seq RENAME TO llx_accounting_account_rowid_seq;
     ALTER TABLE llx_accounting_account ADD INDEX idx_accounting_account_account_number (account_number);
     
     UPDATE llx_const SET name = __ENCRYPT('ACCOUNTING_EXPORT_PREFIX_SPEC')__ WHERE __DECRYPT('name')__ = 'EXPORT_PREFIX_SPEC';
    diff --git a/htdocs/install/mysql/migration/8.0.0-9.0.0.sql b/htdocs/install/mysql/migration/8.0.0-9.0.0.sql
    new file mode 100644
    index 00000000000..2087e032660
    --- /dev/null
    +++ b/htdocs/install/mysql/migration/8.0.0-9.0.0.sql
    @@ -0,0 +1,267 @@
    +--
    +-- Be carefull to requests order.
    +-- This file must be loaded by calling /install/index.php page
    +-- when current version is 9.0.0 or higher.
    +--
    +-- To restrict request to Mysql version x.y minimum use -- VMYSQLx.y
    +-- To restrict request to Pgsql version x.y minimum use -- VPGSQLx.y
    +-- To rename a table:       ALTER TABLE llx_table RENAME TO llx_table_new;
    +-- To add a column:         ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol;
    +-- To rename a column:      ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60);
    +-- To drop a column:        ALTER TABLE llx_table DROP COLUMN oldname;
    +-- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60);
    +-- To drop a foreign key:   ALTER TABLE llx_table DROP FOREIGN KEY fk_name;
    +-- To create a unique index ALTER TABLE llx_table ADD UNIQUE INDEX uk_table_field (field);
    +-- To drop an index:        -- VMYSQL4.1 DROP INDEX nomindex on llx_table
    +-- To drop an index:        -- VPGSQL8.2 DROP INDEX nomindex
    +-- To make pk to be auto increment (mysql):    -- VMYSQL4.3 ALTER TABLE llx_table CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT;
    +-- To make pk to be auto increment (postgres):
    +-- -- VPGSQL8.2 CREATE SEQUENCE llx_table_rowid_seq OWNED BY llx_table.rowid;
    +-- -- VPGSQL8.2 ALTER TABLE llx_table ADD PRIMARY KEY (rowid);
    +-- -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN rowid SET DEFAULT nextval('llx_table_rowid_seq');
    +-- -- VPGSQL8.2 SELECT setval('llx_table_rowid_seq', MAX(rowid)) FROM llx_table;
    +-- To set a field as NULL:                     -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NULL;
    +-- To set a field as NULL:                     -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL;
    +-- To set a field as NOT NULL:                 -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NOT NULL;
    +-- To set a field as NOT NULL:                 -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET NOT NULL;
    +-- To set a field as default NULL:             -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL;
    +-- Note: fields with type BLOB/TEXT can't have default value.
    +
    +
    +-- Missing in 8.0
    +ALTER TABLE llx_contrat_extrafields ADD INDEX idx_contrat_extrafields (fk_object);
    +ALTER TABLE llx_facture_rec_extrafields ADD INDEX idx_facture_rec_extrafields (fk_object);
    +
    +ALTER TABLE llx_accounting_account DROP FOREIGN KEY fk_accounting_account_fk_pcg_version;
    +ALTER TABLE llx_accounting_account MODIFY COLUMN fk_pcg_version varchar(32) NOT NULL;
    +ALTER TABLE llx_accounting_system MODIFY COLUMN pcg_version varchar(32) NOT NULL;
    +ALTER TABLE llx_accounting_account ADD CONSTRAINT fk_accounting_account_fk_pcg_version    FOREIGN KEY (fk_pcg_version)    REFERENCES llx_accounting_system (pcg_version);
    +
    +ALTER TABLE llx_facture ADD COLUMN module_source varchar(32);
    +ALTER TABLE llx_facture ADD COLUMN pos_source varchar(32);
    +
    +create table llx_facture_rec_extrafields
    +(
    +  rowid                     integer AUTO_INCREMENT PRIMARY KEY,
    +  tms                       timestamp,
    +  fk_object                 integer NOT NULL,
    +  import_key                varchar(14)
    +) ENGINE=innodb;
    +
    +
    +-- For 9.0
    +ALTER TABLE llx_extrafields ADD COLUMN help text NULL;
    +ALTER TABLE llx_extrafields ADD COLUMN totalizable boolean DEFAULT FALSE after list;
    +ALTER TABLE llx_product_fournisseur_price ADD COLUMN desc_fourn text after ref_fourn;
    +
    +
    +ALTER TABLE llx_user ADD COLUMN dateemploymentend date after dateemployment;
    +
    +ALTER TABLE llx_stock_mouvement ADD COLUMN fk_project integer;
    +ALTER TABLE llx_c_action_trigger MODIFY COLUMN elementtype varchar(32);
    +ALTER TABLE llx_c_field_list ADD COLUMN visible tinyint	DEFAULT 1 NOT NULL AFTER search;
    +
    +
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('COMPANY_DELETE','Third party deleted','Executed when you delete third party','societe',1);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_DELETE','Customer order deleted','Executed when a customer order is deleted','commande',5);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_DELETE','Customer invoice deleted','Executed when a customer invoice is deleted','facture',9);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_DELETE','Price request deleted','Executed when a customer proposal delete','proposal_supplier',10);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_DELETE','Supplier order deleted','Executed when a supplier order is deleted','order_supplier',14);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_DELETE','Supplier invoice deleted','Executed when a supplier invoice is deleted','invoice_supplier',17);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTRACT_DELETE','Contract deleted','Executed when a contract is deleted','contrat',18);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_DELETE','Intervention is deleted','Executed when a intervention is deleted','ficheinter',35);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',204);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203);
    +
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8001', 'Aktieselvskab A/S');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8002', 'Anparts Selvskab ApS');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8003', 'Personlig ejet selvskab');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8004', 'Iværksætterselvskab IVS');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8005', 'Interessentskab I/S');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8006', 'Holdingselskab');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8007', 'Selskab Med Begrænset Hæftelse SMBA');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8008', 'Kommanditselskab K/S');
    +INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8009', 'SPE-selskab');
    +
    +ALTER TABLE llx_payment_salary ADD COLUMN ref varchar(30) NULL after rowid;
    +ALTER TABLE llx_payment_salary ADD COLUMN fk_projet integer DEFAULT NULL after amount;
    +
    +ALTER TABLE llx_payment_various ADD COLUMN ref varchar(30) NULL after rowid;
    +
    +ALTER TABLE llx_categorie ADD COLUMN ref_ext varchar(255);
    +
    +ALTER TABLE llx_paiement ADD COLUMN ext_payment_id varchar(128);
    +ALTER TABLE llx_paiement ADD COLUMN ext_payment_site varchar(128);
    +
    +ALTER TABLE llx_societe ADD COLUMN twitter  varchar(255) after skype;
    +ALTER TABLE llx_societe ADD COLUMN facebook varchar(255) after skype;
    +ALTER TABLE llx_societe ADD COLUMN instagram  varchar(255) after skype;
    +ALTER TABLE llx_societe ADD COLUMN snapchat  varchar(255) after skype;
    +ALTER TABLE llx_societe ADD COLUMN googleplus  varchar(255) after skype;
    +ALTER TABLE llx_societe ADD COLUMN youtube  varchar(255) after skype;
    +ALTER TABLE llx_societe ADD COLUMN whatsapp  varchar(255) after skype;
    +
    +ALTER TABLE llx_socpeople ADD COLUMN twitter  varchar(255) after skype;
    +ALTER TABLE llx_socpeople ADD COLUMN facebook varchar(255) after skype;
    +ALTER TABLE llx_socpeople ADD COLUMN instagram  varchar(255) after skype;
    +ALTER TABLE llx_socpeople ADD COLUMN snapchat  varchar(255) after skype;
    +ALTER TABLE llx_socpeople ADD COLUMN googleplus  varchar(255) after skype;
    +ALTER TABLE llx_socpeople ADD COLUMN youtube  varchar(255) after skype;
    +ALTER TABLE llx_socpeople ADD COLUMN whatsapp  varchar(255) after skype;
    +
    +ALTER TABLE llx_adherent ADD COLUMN skype  varchar(255);
    +ALTER TABLE llx_adherent ADD COLUMN twitter  varchar(255);
    +ALTER TABLE llx_adherent ADD COLUMN facebook varchar(255);
    +ALTER TABLE llx_adherent ADD COLUMN instagram  varchar(255);
    +ALTER TABLE llx_adherent ADD COLUMN snapchat  varchar(255);
    +ALTER TABLE llx_adherent ADD COLUMN googleplus  varchar(255);
    +ALTER TABLE llx_adherent ADD COLUMN youtube  varchar(255);
    +ALTER TABLE llx_adherent ADD COLUMN whatsapp  varchar(255);
    +
    +ALTER TABLE llx_user ADD COLUMN skype  varchar(255);
    +ALTER TABLE llx_user ADD COLUMN twitter  varchar(255);
    +ALTER TABLE llx_user ADD COLUMN facebook varchar(255);
    +ALTER TABLE llx_user ADD COLUMN instagram  varchar(255);
    +ALTER TABLE llx_user ADD COLUMN snapchat  varchar(255);
    +ALTER TABLE llx_user ADD COLUMN googleplus  varchar(255);
    +ALTER TABLE llx_user ADD COLUMN youtube  varchar(255);
    +ALTER TABLE llx_user ADD COLUMN whatsapp  varchar(255);
    +
    +
    +ALTER TABLE llx_website CHANGE COLUMN fk_user_create fk_user_creat integer;
    +ALTER TABLE llx_website_page CHANGE COLUMN fk_user_create fk_user_creat integer;
    +
    +ALTER TABLE llx_website ADD COLUMN maincolor varchar(16);
    +ALTER TABLE llx_website ADD COLUMN maincolorbis varchar(16);
    +
    +ALTER TABLE llx_website_page ADD COLUMN image varchar(255);
    +
    +CREATE TABLE llx_takepos_floor_tables(
    +    rowid integer AUTO_INCREMENT PRIMARY KEY,
    +    entity integer DEFAULT 1 NOT NULL,
    +    label varchar(255),
    +    leftpos float,
    +    toppos float,
    +    floor smallint
    +) ENGINE=innodb;
    +
    +
    +UPDATE llx_c_payment_term SET decalage = nbjour, nbjour = 0 where decalage IS NULL AND type_cdr = 2;
    +
    +
    +UPDATE llx_holiday SET ref = rowid WHERE ref IS NULL;
    +
    +
    +-- DROP TABLE llx_emailcollector_emailcollectorfilter;
    +-- DROP TABLE llx_emailcollector_emailcollectoraction;
    +-- DROP TABLE llx_emailcollector_emailcollector;
    +
    +CREATE TABLE llx_emailcollector_emailcollector(
    +        -- BEGIN MODULEBUILDER FIELDS
    +        rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
    +        entity integer DEFAULT 1 NOT NULL,
    +        ref varchar(128) NOT NULL,
    +        label varchar(255),
    +        description text,
    +        host varchar(255),
    +        login varchar(128),
    +        password varchar(128),
    +        source_directory varchar(255) NOT NULL,
    +        target_directory varchar(255),
    +        datelastresult datetime,
    +        codelastresult varchar(16),
    +        lastresult varchar(255),
    +        note_public text,
    +        note_private text,
    +        date_creation datetime NOT NULL,
    +        tms timestamp NOT NULL,
    +        fk_user_creat integer NOT NULL,
    +        fk_user_modif integer,
    +        import_key varchar(14),
    +        status integer NOT NULL
    +        -- END MODULEBUILDER FIELDS
    +) ENGINE=innodb;
    +
    +ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN login varchar(128);
    +ALTER TABLE llx_emailcollector_emailcollector ADD INDEX idx_emailcollector_entity (entity);
    +ALTER TABLE llx_emailcollector_emailcollector ADD INDEX idx_emailcollector_status (status);
    +
    +
    +CREATE TABLE llx_emailcollector_emailcollectorfilter(
    +	-- BEGIN MODULEBUILDER FIELDS
    +	rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
    +	fk_emailcollector INTEGER NOT NULL,
    +	type varchar(128) NOT NULL,
    +	rulevalue varchar(255) NULL,
    +	date_creation datetime NOT NULL,
    +	tms timestamp NOT NULL,
    +	fk_user_creat integer NOT NULL,
    +	fk_user_modif integer,
    +	import_key varchar(14),
    +	status integer NOT NULL
    +	-- END MODULEBUILDER FIELDS
    +) ENGINE=innodb;
    +
    +CREATE TABLE llx_emailcollector_emailcollectoraction(
    +	-- BEGIN MODULEBUILDER FIELDS
    +	rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
    +	fk_emailcollector INTEGER NOT NULL,
    +	type varchar(128) NOT NULL,
    +	actionparam varchar(255) NULL,
    +	date_creation datetime NOT NULL,
    +	tms timestamp NOT NULL,
    +	fk_user_creat integer NOT NULL,
    +	fk_user_modif integer,
    +	position integer DEFAULT 0,
    +	import_key varchar(14),
    +	status integer NOT NULL
    +	-- END MODULEBUILDER FIELDS
    +) ENGINE=innodb;
    +
    +ALTER TABLE llx_emailcollector_emailcollectorfilter ADD INDEX idx_emailcollector_fk_emailcollector (fk_emailcollector);
    +ALTER TABLE llx_emailcollector_emailcollectorfilter ADD CONSTRAINT fk_emailcollectorfilter_fk_emailcollector FOREIGN KEY (fk_emailcollector) REFERENCES llx_emailcollector_emailcollector(rowid);
    +
    +ALTER TABLE llx_emailcollector_emailcollectoraction ADD INDEX idx_emailcollector_fk_emailcollector (fk_emailcollector);
    +ALTER TABLE llx_emailcollector_emailcollectoraction ADD CONSTRAINT fk_emailcollectoraction_fk_emailcollector FOREIGN KEY (fk_emailcollector) REFERENCES llx_emailcollector_emailcollector(rowid);
    +
    +
    +ALTER TABLE llx_emailcollector_emailcollectorfilter ADD UNIQUE INDEX uk_emailcollector_emailcollectorfilter (fk_emailcollector, type, rulevalue);
    +ALTER TABLE llx_emailcollector_emailcollectoraction ADD UNIQUE INDEX uk_emailcollector_emailcollectoraction (fk_emailcollector, type);
    +
    +ALTER TABLE llx_societe_rib ADD COLUMN   comment        varchar(255);
    +ALTER TABLE llx_societe_rib ADD COLUMN   ipaddress      varchar(68);
    +
    +DROP TABLE llx_ticket_logs;
    +
    +
    +CREATE TABLE llx_pos_cash_fence(
    +	rowid INTEGER AUTO_INCREMENT PRIMARY KEY,
    +	entity INTEGER DEFAULT 1 NOT NULL,
    +	ref VARCHAR(64),
    +	label VARCHAR(255),
    +	opening double(24,8) default 0,
    +	cash double(24,8) default 0,
    +	card double(24,8) default 0,
    +	cheque double(24,8) default 0,
    +	status INTEGER,
    +	date_creation DATETIME NOT NULL,
    +	date_valid DATETIME,
    +	day_close INTEGER,
    +	month_close INTEGER,
    +	year_close INTEGER,
    +	posmodule VARCHAR(30),
    +	posnumber VARCHAR(30),
    +	fk_user_creat integer,
    +	fk_user_valid integer,
    +	tms TIMESTAMP NOT NULL,
    +	import_key VARCHAR(14)
    +) ENGINE=innodb;
    +
    +-- VMYSQL4.3 ALTER TABLE llx_accounting_account MODIFY COLUMN account_number varchar(32) NOT NULL;
    +-- VPGSQL8.2 ALTER TABLE llx_accounting_account ALTER COLUMN account_number SET NOT NULL;
    +
    +-- Withdrawals / Prelevements
    +UPDATE llx_const set name = 'PRELEVEMENT_END_TO_END' where name = 'END_TO_END';
    +UPDATE llx_const set name = 'PRELEVEMENT_USTRD' where name = 'USTRD';
    diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql
    new file mode 100644
    index 00000000000..385e13b1905
    --- /dev/null
    +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql
    @@ -0,0 +1,87 @@
    +--
    +-- Be carefull to requests order.
    +-- This file must be loaded by calling /install/index.php page
    +-- when current version is 10.0.0 or higher.
    +--
    +-- To restrict request to Mysql version x.y minimum use -- VMYSQLx.y
    +-- To restrict request to Pgsql version x.y minimum use -- VPGSQLx.y
    +-- To rename a table:       ALTER TABLE llx_table RENAME TO llx_table_new;
    +-- To add a column:         ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol;
    +-- To rename a column:      ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60);
    +-- To drop a column:        ALTER TABLE llx_table DROP COLUMN oldname;
    +-- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60);
    +-- To drop a foreign key:   ALTER TABLE llx_table DROP FOREIGN KEY fk_name;
    +-- To create a unique index ALTER TABLE llx_table ADD UNIQUE INDEX uk_table_field (field);
    +-- To drop an index:        -- VMYSQL4.1 DROP INDEX nomindex on llx_table
    +-- To drop an index:        -- VPGSQL8.2 DROP INDEX nomindex
    +-- To make pk to be auto increment (mysql):    -- VMYSQL4.3 ALTER TABLE llx_table CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT;
    +-- To make pk to be auto increment (postgres):
    +-- -- VPGSQL8.2 CREATE SEQUENCE llx_table_rowid_seq OWNED BY llx_table.rowid;
    +-- -- VPGSQL8.2 ALTER TABLE llx_table ADD PRIMARY KEY (rowid);
    +-- -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN rowid SET DEFAULT nextval('llx_table_rowid_seq');
    +-- -- VPGSQL8.2 SELECT setval('llx_table_rowid_seq', MAX(rowid)) FROM llx_table;
    +-- To set a field as NULL:                     -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NULL;
    +-- To set a field as NULL:                     -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL;
    +-- To set a field as NOT NULL:                 -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NOT NULL;
    +-- To set a field as NOT NULL:                 -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET NOT NULL;
    +-- To set a field as default NULL:             -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL;
    +-- Note: fields with type BLOB/TEXT can't have default value.
    +
    +-- Missing in 9.0
    +
    +CREATE TABLE llx_pos_cash_fence(
    +	rowid INTEGER AUTO_INCREMENT PRIMARY KEY,
    +	entity INTEGER DEFAULT 1 NOT NULL,
    +	ref VARCHAR(64),
    +	label VARCHAR(255),
    +	opening double(24,8) default 0,
    +	cash double(24,8) default 0,
    +	card double(24,8) default 0,
    +	cheque double(24,8) default 0,
    +	status INTEGER,
    +	date_creation DATETIME NOT NULL,
    +	date_valid DATETIME,
    +	day_close INTEGER,
    +	month_close INTEGER,
    +	year_close INTEGER,
    +	posmodule VARCHAR(30),
    +	posnumber VARCHAR(30),
    +	fk_user_creat integer,
    +	fk_user_valid integer,
    +	tms TIMESTAMP NOT NULL,
    +	import_key VARCHAR(14)
    +) ENGINE=innodb;
    +
    +
    +
    +-- For 10.0
    +
    +ALTER TABLE llx_loan ADD COLUMN insurance_amount double(24,8) DEFAULT 0;
    +
    +ALTER TABLE llx_facture DROP INDEX idx_facture_uk_facnumber;
    +ALTER TABLE llx_facture CHANGE facnumber ref VARCHAR(30) NOT NULL;
    +ALTER TABLE llx_facture ADD UNIQUE INDEX uk_facture_ref (ref, entity);
    +
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_CREATE','Ticket created','Executed when a ticket is created','ticket',161);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_MODIFY','Ticket modified','Executed when a ticket is modified','ticket',163);
    +insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('TICKET_DELETE','Ticket deleted','Executed when a ticket is deleted','ticket',164);
    +
    +create table llx_mailing_unsubscribe
    +(
    +  rowid				integer AUTO_INCREMENT PRIMARY KEY,
    +  entity			integer DEFAULT 1 NOT NULL,	         -- multi company id
    +  email				varchar(255),
    +  unsubscribegroup	varchar(128) DEFAULT '',
    +  ip				varchar(128),
    +  date_creat		datetime,                            -- creation date
    +  tms               timestamp
    +)ENGINE=innodb;
    +
    +ALTER TABLE llx_mailing_unsubscribe ADD UNIQUE uk_mailing_unsubscribe(email, entity, unsubscribegroup);
    +
    +ALTER TABLE llx_adherent ADD gender VARCHAR(10);
    +ALTER TABLE llx_subscription ADD fk_type integer(11);
    +
    +-- Add url_id into unique index of bank_url
    +ALTER TABLE llx_bank_url DROP INDEX uk_bank_url;
    +ALTER TABLE llx_bank_url ADD UNIQUE INDEX uk_bank_url (fk_bank, url_id, type);
    diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql
    index 22409441eac..f54523d2230 100755
    --- a/htdocs/install/mysql/migration/repair.sql
    +++ b/htdocs/install/mysql/migration/repair.sql
    @@ -77,14 +77,14 @@ ALTER TABLE llx_propal DROP FOREIGN KEY fk_propal_fk_currency;
     ALTER TABLE llx_commande DROP FOREIGN KEY fk_commande_fk_currency;
     ALTER TABLE llx_facture DROP FOREIGN KEY fk_facture_fk_currency;
     
    -delete from llx_facturedet where fk_facture in (select rowid from llx_facture where facnumber in ('(PROV)','ErrorBadMask'));
    -delete from llx_facture where facnumber in ('(PROV)','ErrorBadMask');
    +delete from llx_facturedet where fk_facture in (select rowid from llx_facture where ref in ('(PROV)','ErrorBadMask'));
    +delete from llx_facture where ref in ('(PROV)','ErrorBadMask');
     delete from llx_commandedet where fk_commande in (select rowid from llx_commande where ref in ('(PROV)','ErrorBadMask'));
     delete from llx_commande where ref in ('(PROV)','ErrorBadMask');
     delete from llx_propaldet where fk_propal in (select rowid from llx_propal where ref in ('(PROV)','ErrorBadMask'));
     delete from llx_propal where ref in ('(PROV)','ErrorBadMask');
    -delete from llx_facturedet where fk_facture in (select rowid from llx_facture where facnumber = '');
    -delete from llx_facture where facnumber = '';
    +delete from llx_facturedet where fk_facture in (select rowid from llx_facture where ref = '');
    +delete from llx_facture where ref = '';
     delete from llx_commandedet where fk_commande in (select rowid from llx_commande where ref = '');
     delete from llx_commande where ref = '';
     delete from llx_propaldet where fk_propal in (select rowid from llx_propal where ref = '');
    diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql
    index 4169b858536..af6cd66826d 100644
    --- a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql
    +++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql
    @@ -22,8 +22,8 @@ CREATE TABLE llx_accounting_bookkeeping
       rowid                 integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
       entity                integer DEFAULT 1 NOT NULL,	-- 					| multi company id
       doc_date              date NOT NULL,				-- FEC:PieceDate
    -  doc_type              varchar(30) NOT NULL,		-- FEC:PieceRef		| facture_client/reglement_client/facture_fournisseur/reglement_fournisseur
    -  doc_ref               varchar(300) NOT NULL,		-- 					| facture_client/reglement_client/... reference number
    +  doc_type              varchar(30) NOT NULL,		-- 					| facture_client/reglement_client/facture_fournisseur/reglement_fournisseur
    +  doc_ref               varchar(300) NOT NULL,		-- FEC:PieceRef		| facture_client/reglement_client/... reference number
       fk_doc                integer NOT NULL,			-- 					| facture_client/reglement_client/... rowid
       fk_docdet             integer NOT NULL,			-- 					| facture_client/reglement_client/... line rowid
       thirdparty_code       varchar(32),                -- Third party code (customer or supplier) when record is saved (may help debug) 
    diff --git a/htdocs/install/mysql/tables/llx_actioncomm.key.sql b/htdocs/install/mysql/tables/llx_actioncomm.key.sql
    index 257eb22a240..71fe3976a81 100644
    --- a/htdocs/install/mysql/tables/llx_actioncomm.key.sql
    +++ b/htdocs/install/mysql/tables/llx_actioncomm.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2005-2017	Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2011		Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011		Regis Houssin		<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_actioncomm.sql b/htdocs/install/mysql/tables/llx_actioncomm.sql
    index 72321e19db5..8aa7fe47f3e 100644
    --- a/htdocs/install/mysql/tables/llx_actioncomm.sql
    +++ b/htdocs/install/mysql/tables/llx_actioncomm.sql
    @@ -1,7 +1,7 @@
     -- ========================================================================
     -- Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2005-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2011      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_adherent.key.sql b/htdocs/install/mysql/tables/llx_adherent.key.sql
    index 2ff771b878c..c875e2cee20 100644
    --- a/htdocs/install/mysql/tables/llx_adherent.key.sql
    +++ b/htdocs/install/mysql/tables/llx_adherent.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2009 Laurent Destailleur <eldy@users.sourceforge.net>
    --- Copyright (C) 2009 Regis Houssin       <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009 Regis Houssin       <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_adherent.sql b/htdocs/install/mysql/tables/llx_adherent.sql
    index 37b01a59dc3..ede4de2e487 100644
    --- a/htdocs/install/mysql/tables/llx_adherent.sql
    +++ b/htdocs/install/mysql/tables/llx_adherent.sql
    @@ -2,7 +2,7 @@
     -- Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
     -- Copyright (C) 2006-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    @@ -30,6 +30,7 @@ create table llx_adherent
       entity           integer DEFAULT 1 NOT NULL,	-- multi company id
       ref_ext          varchar(128),                -- reference into an external system (not used by dolibarr)
     
    +  gender           varchar(10),
       civility         varchar(6),
       lastname         varchar(50),
       firstname        varchar(50),
    @@ -46,7 +47,16 @@ create table llx_adherent
       state_id         integer,
       country          integer,
       email            varchar(255),
    +
       skype            varchar(255),
    +  twitter          varchar(255),                        		--
    +  facebook         varchar(255),                        		--
    +  instagram        varchar(255),                        		--
    +  snapchat         varchar(255),                        		--
    +  googleplus       varchar(255),                        		--
    +  youtube          varchar(255),                        		--
    +  whatsapp         varchar(255),                        		--
    +
       phone            varchar(30),
       phone_perso      varchar(30),
       phone_mobile     varchar(30),
    diff --git a/htdocs/install/mysql/tables/llx_adherent_extrafields.key.sql b/htdocs/install/mysql/tables/llx_adherent_extrafields.key.sql
    index 530bc514c23..6989d271ccc 100644
    --- a/htdocs/install/mysql/tables/llx_adherent_extrafields.key.sql
    +++ b/htdocs/install/mysql/tables/llx_adherent_extrafields.key.sql
    @@ -1,7 +1,7 @@
     -- ===================================================================
     -- Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2011      Laurent Destailleur  <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_adherent_extrafields.sql b/htdocs/install/mysql/tables/llx_adherent_extrafields.sql
    index a4a4851d9a8..3ad91052c24 100644
    --- a/htdocs/install/mysql/tables/llx_adherent_extrafields.sql
    +++ b/htdocs/install/mysql/tables/llx_adherent_extrafields.sql
    @@ -1,7 +1,7 @@
     -- ===================================================================
     -- Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_adherent_type.key.sql b/htdocs/install/mysql/tables/llx_adherent_type.key.sql
    index 870f0f3d5a0..f70280c41c4 100644
    --- a/htdocs/install/mysql/tables/llx_adherent_type.key.sql
    +++ b/htdocs/install/mysql/tables/llx_adherent_type.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2007-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_adherent_type.sql b/htdocs/install/mysql/tables/llx_adherent_type.sql
    index c20eade92d6..88867f9d2ad 100644
    --- a/htdocs/install/mysql/tables/llx_adherent_type.sql
    +++ b/htdocs/install/mysql/tables/llx_adherent_type.sql
    @@ -1,7 +1,7 @@
     -- ===================================================================
     -- Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_bank_account.key.sql b/htdocs/install/mysql/tables/llx_bank_account.key.sql
    index c5f2786fd24..7ef818522a7 100644
    --- a/htdocs/install/mysql/tables/llx_bank_account.key.sql
    +++ b/htdocs/install/mysql/tables/llx_bank_account.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2005      Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_bank_account.sql b/htdocs/install/mysql/tables/llx_bank_account.sql
    index af35fb0eca1..3da5a8d4ec8 100644
    --- a/htdocs/install/mysql/tables/llx_bank_account.sql
    +++ b/htdocs/install/mysql/tables/llx_bank_account.sql
    @@ -1,7 +1,7 @@
     -- =============================================================================
     -- Copyright (C) 2000-2004	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2014	Laurent Destailleur 	<eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2012	Regis Houssin       	<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012	Regis Houssin       	<regis.houssin@inodbox.com>
     -- Copyright (C) 2014		Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_bank_categ.sql b/htdocs/install/mysql/tables/llx_bank_categ.sql
    index f9190f751fd..26b9eab244e 100644
    --- a/htdocs/install/mysql/tables/llx_bank_categ.sql
    +++ b/htdocs/install/mysql/tables/llx_bank_categ.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_bank_url.key.sql b/htdocs/install/mysql/tables/llx_bank_url.key.sql
    index 11a15397cd0..19489b9a31c 100644
    --- a/htdocs/install/mysql/tables/llx_bank_url.key.sql
    +++ b/htdocs/install/mysql/tables/llx_bank_url.key.sql
    @@ -1,5 +1,5 @@
     -- ===================================================================
    --- Copyright (C) 2005-2007 Laurent Destailleur <eldy@users.sourceforge.net>
    +-- Copyright (C) 2005-2019 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
    @@ -17,6 +17,4 @@
     -- ===================================================================
     
     
    -ALTER TABLE llx_bank_url ADD UNIQUE INDEX uk_bank_url (fk_bank,type);
    -
    ---ALTER TABLE llx_bank_url ADD INDEX idx_bank_url_fk_bank (fk_bank);
    \ No newline at end of file
    +ALTER TABLE llx_bank_url ADD UNIQUE INDEX uk_bank_url (fk_bank, url_id, type);
    diff --git a/htdocs/install/mysql/tables/llx_bordereau_cheque.key.sql b/htdocs/install/mysql/tables/llx_bordereau_cheque.key.sql
    index 750b2b60bfc..bc1c2347eca 100644
    --- a/htdocs/install/mysql/tables/llx_bordereau_cheque.key.sql
    +++ b/htdocs/install/mysql/tables/llx_bordereau_cheque.key.sql
    @@ -1,5 +1,5 @@
     -- ============================================================================
    --- Copyright (C) 2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_bordereau_cheque.sql b/htdocs/install/mysql/tables/llx_bordereau_cheque.sql
    index ec400f6cbbd..e0d3209b9ea 100644
    --- a/htdocs/install/mysql/tables/llx_bordereau_cheque.sql
    +++ b/htdocs/install/mysql/tables/llx_bordereau_cheque.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_boxes.key.sql b/htdocs/install/mysql/tables/llx_boxes.key.sql
    index 52e06daf2af..caec9208938 100644
    --- a/htdocs/install/mysql/tables/llx_boxes.key.sql
    +++ b/htdocs/install/mysql/tables/llx_boxes.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2006-2009	Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2006-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2006-2012	Regis Houssin		<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_boxes.sql b/htdocs/install/mysql/tables/llx_boxes.sql
    index 383e1bbcce4..eeb294b5209 100644
    --- a/htdocs/install/mysql/tables/llx_boxes.sql
    +++ b/htdocs/install/mysql/tables/llx_boxes.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
     -- Copyright (C) 2006-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    --- Copyright (C) 2006-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2006-2012	Regis Houssin			<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_boxes_def.key.sql b/htdocs/install/mysql/tables/llx_boxes_def.key.sql
    index ba6c032dbb4..2173504dc26 100644
    --- a/htdocs/install/mysql/tables/llx_boxes_def.key.sql
    +++ b/htdocs/install/mysql/tables/llx_boxes_def.key.sql
    @@ -1,5 +1,5 @@
     -- ============================================================================
    --- Copyright (C) 2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2009 Laurent Destailleur  <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_boxes_def.sql b/htdocs/install/mysql/tables/llx_boxes_def.sql
    index 03016ff9a54..e9fd966fdb7 100644
    --- a/htdocs/install/mysql/tables/llx_boxes_def.sql
    +++ b/htdocs/install/mysql/tables/llx_boxes_def.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2010      Laurent Destailleur  <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_c_action_trigger.key.sql b/htdocs/install/mysql/tables/llx_c_action_trigger.key.sql
    index 182e49fbe6e..3260c01d498 100644
    --- a/htdocs/install/mysql/tables/llx_c_action_trigger.key.sql
    +++ b/htdocs/install/mysql/tables/llx_c_action_trigger.key.sql
    @@ -1,5 +1,5 @@
     -- ============================================================================
    --- Copyright (C) 2011 Regis Houssin	<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011 Regis Houssin	<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_c_action_trigger.sql b/htdocs/install/mysql/tables/llx_c_action_trigger.sql
    index 4f7dbccc786..55e93c9b3d0 100644
    --- a/htdocs/install/mysql/tables/llx_c_action_trigger.sql
    +++ b/htdocs/install/mysql/tables/llx_c_action_trigger.sql
    @@ -1,5 +1,5 @@
     -- ===================================================================
    --- Copyright (C) 2011 Regis Houssin	<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011 Regis Houssin	<regis.houssin@inodbox.com>
     --
     -- 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,7 +22,7 @@
     create table llx_c_action_trigger
     (
       rowid			integer AUTO_INCREMENT PRIMARY KEY,
    -  elementtype	varchar(24) 			NOT NULL,
    +  elementtype	varchar(32) 			NOT NULL,
       code			varchar(32)				NOT NULL,
       label			varchar(128)			NOT NULL,
       description	varchar(255),
    diff --git a/htdocs/install/mysql/tables/llx_c_barcode_type.key.sql b/htdocs/install/mysql/tables/llx_c_barcode_type.key.sql
    index 594298c952c..c87f844574e 100644
    --- a/htdocs/install/mysql/tables/llx_c_barcode_type.key.sql
    +++ b/htdocs/install/mysql/tables/llx_c_barcode_type.key.sql
    @@ -1,5 +1,5 @@
     -- ========================================================================
    --- Copyright (C) 2012	Regis Houssin	<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2012	Regis Houssin	<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_c_barcode_type.sql b/htdocs/install/mysql/tables/llx_c_barcode_type.sql
    index e2eea8d4faf..ad03c14966e 100644
    --- a/htdocs/install/mysql/tables/llx_c_barcode_type.sql
    +++ b/htdocs/install/mysql/tables/llx_c_barcode_type.sql
    @@ -1,5 +1,5 @@
     -- ========================================================================
    --- Copyright (C) 2007-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2007-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2008      Laurent Destailleur  <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_c_currencies.sql b/htdocs/install/mysql/tables/llx_c_currencies.sql
    index ef57ecdccaa..41a1538a002 100644
    --- a/htdocs/install/mysql/tables/llx_c_currencies.sql
    +++ b/htdocs/install/mysql/tables/llx_c_currencies.sql
    @@ -1,6 +1,6 @@
     -- ========================================================================
     -- Copyright (C) 2005	Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2012	Regis Houssin		<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_c_ecotaxe.sql b/htdocs/install/mysql/tables/llx_c_ecotaxe.sql
    index cd67bb34766..96bc5e01285 100644
    --- a/htdocs/install/mysql/tables/llx_c_ecotaxe.sql
    +++ b/htdocs/install/mysql/tables/llx_c_ecotaxe.sql
    @@ -1,5 +1,5 @@
     -- ========================================================================
    --- Copyright (C) 2007-2018	Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2007-2018	Regis Houssin		<regis.houssin@inodbox.com>
     -- Copyright (C) 2009		Laurent Destailleur	<eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_c_field_list.sql b/htdocs/install/mysql/tables/llx_c_field_list.sql
    index b22f98b52ec..44b02c35248 100644
    --- a/htdocs/install/mysql/tables/llx_c_field_list.sql
    +++ b/htdocs/install/mysql/tables/llx_c_field_list.sql
    @@ -1,5 +1,5 @@
     -- ========================================================================
    --- Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2010-2018 Regis Houssin  <regis.houssin@inodbox.com>
     --
     -- 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
    @@ -33,6 +33,7 @@ create table llx_c_field_list
       align			varchar(6)		DEFAULT 'left',				-- align (left,center,right)
       sort			tinyint 		DEFAULT 1  	NOT NULL,		-- add sort field
       search		tinyint 		DEFAULT 0  	NOT NULL,		-- add search field
    +  visible		tinyint			DEFAULT 1	NOT NULL,		-- visibility of field. 0=Never visible, 1=Visible on list and forms, 2=Visible on list only
       enabled       varchar(255)	DEFAULT 1,					-- Condition to show or hide
       rang      	integer 		DEFAULT 0
       
    diff --git a/htdocs/install/mysql/tables/llx_c_paiement.key.sql b/htdocs/install/mysql/tables/llx_c_paiement.key.sql
    index fc8147805ef..cf25e3a6703 100644
    --- a/htdocs/install/mysql/tables/llx_c_paiement.key.sql
    +++ b/htdocs/install/mysql/tables/llx_c_paiement.key.sql
    @@ -1,6 +1,6 @@
     -- ========================================================================
     -- Copyright (C) 2012	Florian Henry	<florian.henry@open-concept.pro>
    --- Copyright (C) 2017	Regis Houssin	<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2017	Regis Houssin	<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_c_paiement.sql b/htdocs/install/mysql/tables/llx_c_paiement.sql
    index 1c26cb7aaeb..9e752b7e186 100644
    --- a/htdocs/install/mysql/tables/llx_c_paiement.sql
    +++ b/htdocs/install/mysql/tables/llx_c_paiement.sql
    @@ -2,7 +2,7 @@
     -- Copyright (C) 2001-2004	Rodolphe Quiedeville		<rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2014	Laurent Destailleur		<eldy@users.sourceforge.net>
     -- Copyright (C) 2014		Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
    --- Copyright (C) 2017		Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2017		Regis Houssin			<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_c_paper_format.sql b/htdocs/install/mysql/tables/llx_c_paper_format.sql
    index be0a57a2319..f0d7a3f14f3 100644
    --- a/htdocs/install/mysql/tables/llx_c_paper_format.sql
    +++ b/htdocs/install/mysql/tables/llx_c_paper_format.sql
    @@ -1,5 +1,5 @@
     -- ========================================================================
    --- Copyright (C) 2007 Regis Houssin <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2007 Regis Houssin <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_c_payment_term.key.sql b/htdocs/install/mysql/tables/llx_c_payment_term.key.sql
    index fc2f49de529..d2cb94aaeb2 100644
    --- a/htdocs/install/mysql/tables/llx_c_payment_term.key.sql
    +++ b/htdocs/install/mysql/tables/llx_c_payment_term.key.sql
    @@ -1,6 +1,6 @@
     -- ========================================================================
     -- Copyright (C) 2012	Florian Henry	<florian.henry@open-concept.pro>
    --- Copyright (C) 2017	Regis Houssin	<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2017	Regis Houssin	<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_c_payment_term.sql b/htdocs/install/mysql/tables/llx_c_payment_term.sql
    index 39ccaa70916..188c2c4f428 100644
    --- a/htdocs/install/mysql/tables/llx_c_payment_term.sql
    +++ b/htdocs/install/mysql/tables/llx_c_payment_term.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2002-2003	Rodolphe Quiedeville		<rodolphe@quiedeville.org>
     -- Copyright (C) 2016		Laurent Destailleur		<eldy@users.sourceforge.net>
    --- Copyright (C) 2017		Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2017		Regis Houssin			<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_c_ziptown.key.sql b/htdocs/install/mysql/tables/llx_c_ziptown.key.sql
    index 9d4ff705d04..a8bc952a160 100644
    --- a/htdocs/install/mysql/tables/llx_c_ziptown.key.sql
    +++ b/htdocs/install/mysql/tables/llx_c_ziptown.key.sql
    @@ -1,5 +1,5 @@
     -- ========================================================================
    --- Copyright (C) 2010 Regis Houssin      <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2010 Regis Houssin      <regis.houssin@inodbox.com>
     -- Copyright (C) 201 Laurent Destailleur <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_c_ziptown.sql b/htdocs/install/mysql/tables/llx_c_ziptown.sql
    index 4b73d308a99..3bc41baacda 100644
    --- a/htdocs/install/mysql/tables/llx_c_ziptown.sql
    +++ b/htdocs/install/mysql/tables/llx_c_ziptown.sql
    @@ -1,5 +1,5 @@
     -- ========================================================================
    --- Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2010 Regis Houssin <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_categorie.key.sql b/htdocs/install/mysql/tables/llx_categorie.key.sql
    index a3c9cf88963..1369378e59f 100644
    --- a/htdocs/install/mysql/tables/llx_categorie.key.sql
    +++ b/htdocs/install/mysql/tables/llx_categorie.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2007-2009	Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_categorie.sql b/htdocs/install/mysql/tables/llx_categorie.sql
    index fe2b03b2429..2b39cf58f7b 100644
    --- a/htdocs/install/mysql/tables/llx_categorie.sql
    +++ b/htdocs/install/mysql/tables/llx_categorie.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2005		Brice Davoleau		<e1davole@iu-vannes.fr>
     -- Copyright (C) 2005		Matthieu Valleton	<mv@seeschloss.org>
    --- Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@capnetworks.com>		
    +-- Copyright (C) 2005-2012	Regis Houssin		<regis.houssin@inodbox.com>		
     -- Copyright (C) 2017       Laurent Destailleur  <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,8 @@ create table llx_categorie
     	rowid 		    integer AUTO_INCREMENT PRIMARY KEY,
     	entity          integer DEFAULT 1 NOT NULL,			-- multi company id
     	fk_parent		integer DEFAULT 0 NOT NULL,
    -	label 		    varchar(180) NOT NULL,				-- category name
    +	label 		    varchar(180) NOT NULL,				-- category ref/name
    +	ref_ext			varchar(255),						-- reference into an external system (not used by dolibarr)
     	type	        tinyint DEFAULT 1 NOT NULL,			-- category type (product, supplier, customer, member)
     	description 	text,								-- description of the category
         color           varchar(8),                         -- color
    diff --git a/htdocs/install/mysql/tables/llx_categorie_fournisseur.key.sql b/htdocs/install/mysql/tables/llx_categorie_fournisseur.key.sql
    index 7293c152b9a..28a2cb6a8d4 100644
    --- a/htdocs/install/mysql/tables/llx_categorie_fournisseur.key.sql
    +++ b/htdocs/install/mysql/tables/llx_categorie_fournisseur.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2012 Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2012 Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2012 Regis Houssin			<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_categorie_fournisseur.sql b/htdocs/install/mysql/tables/llx_categorie_fournisseur.sql
    index 5a270b1fad9..8133aeb8a46 100644
    --- a/htdocs/install/mysql/tables/llx_categorie_fournisseur.sql
    +++ b/htdocs/install/mysql/tables/llx_categorie_fournisseur.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2006 Rodolphe Quiedeville	<rodolphe@quiedeville.org>
     -- Copyright (C) 2012 Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2012 Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2012 Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2012 Juanjo Menent			<jmenent@2byte.es>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_categorie_lang.sql b/htdocs/install/mysql/tables/llx_categorie_lang.sql
    index 34dc0a3406e..ab2fb83405a 100644
    --- a/htdocs/install/mysql/tables/llx_categorie_lang.sql
    +++ b/htdocs/install/mysql/tables/llx_categorie_lang.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2009      Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2014      Jean-François Ferry  <jfefe@aternatik.fr>
     --
    diff --git a/htdocs/install/mysql/tables/llx_chargesociales.sql b/htdocs/install/mysql/tables/llx_chargesociales.sql
    index a22937fa643..e1556689a29 100644
    --- a/htdocs/install/mysql/tables/llx_chargesociales.sql
    +++ b/htdocs/install/mysql/tables/llx_chargesociales.sql
    @@ -1,6 +1,6 @@
     -- ========================================================================
     -- Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2017      Alexandre Spangaro   <aspangaro@zendsi.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_commande.key.sql b/htdocs/install/mysql/tables/llx_commande.key.sql
    index 9134092195b..eece575a238 100644
    --- a/htdocs/install/mysql/tables/llx_commande.key.sql
    +++ b/htdocs/install/mysql/tables/llx_commande.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2006		Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_commande.sql b/htdocs/install/mysql/tables/llx_commande.sql
    index 0b18f46bb51..d0522f7e5e3 100644
    --- a/htdocs/install/mysql/tables/llx_commande.sql
    +++ b/htdocs/install/mysql/tables/llx_commande.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2017      Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
     --
    diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseur.key.sql b/htdocs/install/mysql/tables/llx_commande_fournisseur.key.sql
    index d0d9471278a..89b1096fd8e 100644
    --- a/htdocs/install/mysql/tables/llx_commande_fournisseur.key.sql
    +++ b/htdocs/install/mysql/tables/llx_commande_fournisseur.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2006-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseur.sql b/htdocs/install/mysql/tables/llx_commande_fournisseur.sql
    index 54ad7a33afd..5f26a87734a 100644
    --- a/htdocs/install/mysql/tables/llx_commande_fournisseur.sql
    +++ b/htdocs/install/mysql/tables/llx_commande_fournisseur.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2007-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
     -- Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
     --
    diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.key.sql b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.key.sql
    index ba7c02280ec..369a25f2b32 100644
    --- a/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.key.sql
    +++ b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.key.sql
    @@ -16,4 +16,6 @@
     --
     -- ===================================================================
     
    -ALTER TABLE llx_commande_fournisseur_dispatch ADD INDEX idx_commande_fournisseur_dispatch_fk_commande (fk_commande);
    \ No newline at end of file
    +ALTER TABLE llx_commande_fournisseur_dispatch ADD INDEX idx_commande_fournisseur_dispatch_fk_commande (fk_commande);
    +ALTER TABLE llx_commande_fournisseur_dispatch ADD INDEX idx_commande_fournisseur_dispatch_fk_reception (fk_reception);
    +ALTER TABLE llx_commande_fournisseur_dispatch ADD CONSTRAINT fk_commande_fournisseur_dispatch_fk_reception FOREIGN KEY (fk_reception) REFERENCES llx_reception (rowid);
    \ No newline at end of file
    diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.sql b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.sql
    index 789ec3e7a9b..9a6e05d1af1 100644
    --- a/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.sql
    +++ b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch.sql
    @@ -25,6 +25,8 @@ create table llx_commande_fournisseur_dispatch
       fk_commande    integer,
       fk_product     integer,
       fk_commandefourndet integer,
    +  fk_projet  	 integer  DEFAULT NULL,
    +  fk_reception 	 integer  DEFAULT NULL,
       qty            float,              -- qty
       fk_entrepot    integer,
       fk_user        integer,
    diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch_extrafields.key.sql b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch_extrafields.key.sql
    new file mode 100644
    index 00000000000..c836fbaea6a
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch_extrafields.key.sql
    @@ -0,0 +1,20 @@
    +-- ===================================================================
    +-- Copyright (C) 2015      Claudio Aschieri	<c.aschieri@19.coop>
    +--
    +-- 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +-- ===================================================================
    +
    +
    +ALTER TABLE llx_commande_fournisseur_dispatch_extrafields ADD INDEX idx_commande_fournisseur_dispatch_extrafields (fk_object);
    diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch_extrafields.sql b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch_extrafields.sql
    new file mode 100644
    index 00000000000..f00eabf42fa
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_commande_fournisseur_dispatch_extrafields.sql
    @@ -0,0 +1,25 @@
    +-- ===================================================================
    +-- Copyright (C) 2015      Claudio Aschieri	<c.aschieri@19.coop>
    +--
    +-- 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +-- ===================================================================
    +
    +create table llx_commande_fournisseur_dispatch_extrafields
    +(
    +  rowid            integer AUTO_INCREMENT PRIMARY KEY,
    +  tms              timestamp,
    +  fk_object        integer NOT NULL,    -- object id
    +  import_key       varchar(14)      	-- import key
    +)ENGINE=innodb;
    diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseur_extrafields.sql b/htdocs/install/mysql/tables/llx_commande_fournisseur_extrafields.sql
    index 33d72f3cede..affbc94fc50 100644
    --- a/htdocs/install/mysql/tables/llx_commande_fournisseur_extrafields.sql
    +++ b/htdocs/install/mysql/tables/llx_commande_fournisseur_extrafields.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2007		Laurent Destailleur		<eldy@users.sourceforge.net>
     -- Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
     -- Copyright (C) 2013		Florian HENRY			<florian.henry@open-concept.pro>
    diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.sql b/htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.sql
    index c1ef550b761..a3c2917491c 100644
    --- a/htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.sql
    +++ b/htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2007		Laurent Destailleur		<eldy@users.sourceforge.net>
     -- Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
     -- Copyright (C) 2013		Florian HENRY			<florian.henry@open-concept.pro>
    diff --git a/htdocs/install/mysql/tables/llx_commandedet.key.sql b/htdocs/install/mysql/tables/llx_commandedet.key.sql
    index 21765a6ad1b..4420d968d9a 100644
    --- a/htdocs/install/mysql/tables/llx_commandedet.key.sql
    +++ b/htdocs/install/mysql/tables/llx_commandedet.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2006 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2011 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2012      Cédric Salvador      <csalvador@gpcsolutions.fr>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_commandedet.sql b/htdocs/install/mysql/tables/llx_commandedet.sql
    index 0d6468309f5..f30401304a6 100644
    --- a/htdocs/install/mysql/tables/llx_commandedet.sql
    +++ b/htdocs/install/mysql/tables/llx_commandedet.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2006-2009	Laurent Destailleur		<eldy@users.sourceforge.net>
     -- Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
     -- Copyright (C) 2012      Cédric Salvador      <csalvador@gpcsolutions.fr>
    diff --git a/htdocs/install/mysql/tables/llx_commandedet_extrafields.key.sql b/htdocs/install/mysql/tables/llx_commandedet_extrafields.key.sql
    index 764b39639cf..56da1940fc3 100644
    --- a/htdocs/install/mysql/tables/llx_commandedet_extrafields.key.sql
    +++ b/htdocs/install/mysql/tables/llx_commandedet_extrafields.key.sql
    @@ -1,7 +1,7 @@
     -- ===================================================================
     -- Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2011      Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2013      Florian Henry	<florian.henry@open-concept.pro>
     --
    diff --git a/htdocs/install/mysql/tables/llx_const.sql b/htdocs/install/mysql/tables/llx_const.sql
    index 806a3337291..c27b8c45e9f 100644
    --- a/htdocs/install/mysql/tables/llx_const.sql
    +++ b/htdocs/install/mysql/tables/llx_const.sql
    @@ -2,7 +2,7 @@
     -- Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2003      Jean-Louis Bergamo   <jlb@j1b.org>
     -- Copyright (C) 2008-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_contrat.key.sql b/htdocs/install/mysql/tables/llx_contrat.key.sql
    index 3e95b75c85b..15cdb7161da 100644
    --- a/htdocs/install/mysql/tables/llx_contrat.key.sql
    +++ b/htdocs/install/mysql/tables/llx_contrat.key.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2005 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_contrat.sql b/htdocs/install/mysql/tables/llx_contrat.sql
    index ac6f56631ec..531f96adeb7 100644
    --- a/htdocs/install/mysql/tables/llx_contrat.sql
    +++ b/htdocs/install/mysql/tables/llx_contrat.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2005 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2014 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2014 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_contratdet.key.sql b/htdocs/install/mysql/tables/llx_contratdet.key.sql
    index 6f65271ebb7..e79a3aeea33 100644
    --- a/htdocs/install/mysql/tables/llx_contratdet.key.sql
    +++ b/htdocs/install/mysql/tables/llx_contratdet.key.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2005 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2011 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_deplacement.sql b/htdocs/install/mysql/tables/llx_deplacement.sql
    index 34c4ab103cd..ca58f82a642 100644
    --- a/htdocs/install/mysql/tables/llx_deplacement.sql
    +++ b/htdocs/install/mysql/tables/llx_deplacement.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2003		Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2009-2012	Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009-2012	Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2010		Laurent Destailleur  <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_document_model.key.sql b/htdocs/install/mysql/tables/llx_document_model.key.sql
    index 54f25e2169b..d813b57e1da 100644
    --- a/htdocs/install/mysql/tables/llx_document_model.key.sql
    +++ b/htdocs/install/mysql/tables/llx_document_model.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2007      Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_document_model.sql b/htdocs/install/mysql/tables/llx_document_model.sql
    index 0b93936837e..4092fc0ca43 100644
    --- a/htdocs/install/mysql/tables/llx_document_model.sql
    +++ b/htdocs/install/mysql/tables/llx_document_model.sql
    @@ -1,7 +1,7 @@
     -- ===================================================================
     -- Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2006      Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_don.sql b/htdocs/install/mysql/tables/llx_don.sql
    index a2e39f7039c..82728861fc6 100644
    --- a/htdocs/install/mysql/tables/llx_don.sql
    +++ b/htdocs/install/mysql/tables/llx_don.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2011      Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2015      Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
     --
    diff --git a/htdocs/install/mysql/tables/llx_ecm_directories.key.sql b/htdocs/install/mysql/tables/llx_ecm_directories.key.sql
    index 2e96a5f8e95..1467ae6839e 100644
    --- a/htdocs/install/mysql/tables/llx_ecm_directories.key.sql
    +++ b/htdocs/install/mysql/tables/llx_ecm_directories.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2010	Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2012	Regis Houssin		<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_ecm_directories.sql b/htdocs/install/mysql/tables/llx_ecm_directories.sql
    index 518fdd4c9e1..a956b928ad5 100644
    --- a/htdocs/install/mysql/tables/llx_ecm_directories.sql
    +++ b/htdocs/install/mysql/tables/llx_ecm_directories.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2008-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.key.sql b/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.key.sql
    new file mode 100644
    index 00000000000..56295db116a
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.key.sql
    @@ -0,0 +1,25 @@
    +-- Copyright (C) 2018 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
    +-- the Free Software Foundation, either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program.  If not, see http://www.gnu.org/licenses/.
    +
    +
    +-- BEGIN MODULEBUILDER INDEXES
    +ALTER TABLE llx_emailcollector_emailcollector ADD INDEX idx_emailcollector_entity (entity);
    +ALTER TABLE llx_emailcollector_emailcollector ADD INDEX idx_emailcollector_status (status);
    +-- END MODULEBUILDER INDEXES
    +
    +--ALTER TABLE llx_emailcollector_emailcollector ADD UNIQUE INDEX uk_emailcollector_emailcollector_fieldxyz(fieldx, fieldy);
    +
    +--ALTER TABLE llx_emailcollector_emailcollector ADD CONSTRAINT llx_emailcollector_emailcollector_field_id FOREIGN KEY (fk_field) REFERENCES llx_myotherobject(rowid);
    +
    diff --git a/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.sql b/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.sql
    new file mode 100644
    index 00000000000..0f81df401dc
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_emailcollector_emailcollector.sql
    @@ -0,0 +1,41 @@
    +-- Copyright (C) 2018 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
    +-- the Free Software Foundation, either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program.  If not, see http://www.gnu.org/licenses/.
    +
    +
    +CREATE TABLE llx_emailcollector_emailcollector(
    +        -- BEGIN MODULEBUILDER FIELDS
    +        rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, 
    +        entity integer DEFAULT 1 NOT NULL, 
    +        ref varchar(128) NOT NULL,
    +        label varchar(255), 
    +        description text,
    +        host varchar(255), 
    +        login varchar(128), 
    +        password varchar(128),
    +        source_directory varchar(255) NOT NULL,
    +        target_directory varchar(255),
    +        datelastresult datetime, 
    +        codelastresult varchar(16), 
    +        lastresult varchar(255),
    +        note_public text, 
    +        note_private text, 
    +        date_creation datetime NOT NULL, 
    +        tms timestamp NOT NULL, 
    +        fk_user_creat integer NOT NULL, 
    +        fk_user_modif integer, 
    +        import_key varchar(14), 
    +        status integer NOT NULL
    +        -- END MODULEBUILDER FIELDS
    +) ENGINE=innodb;
    diff --git a/htdocs/install/mysql/tables/llx_emailcollector_emailcollectoraction.key.sql b/htdocs/install/mysql/tables/llx_emailcollector_emailcollectoraction.key.sql
    new file mode 100644
    index 00000000000..ef8a91b5d31
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_emailcollector_emailcollectoraction.key.sql
    @@ -0,0 +1,22 @@
    +-- Copyright (C) ---Put here your own copyright and developer email---
    +--
    +-- 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
    +-- the Free Software Foundation, either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program.  If not, see http://www.gnu.org/licenses/.
    +
    +
    +-- BEGIN MODULEBUILDER INDEXES
    +ALTER TABLE llx_emailcollector_emailcollectoraction ADD INDEX idx_emailcollector_fk_emailcollector (fk_emailcollector);
    +ALTER TABLE llx_emailcollector_emailcollectoraction ADD CONSTRAINT fk_emailcollectoraction_fk_emailcollector FOREIGN KEY (fk_emailcollector) REFERENCES llx_emailcollector_emailcollector(rowid);
    +-- END MODULEBUILDER INDEXES
    +
    +ALTER TABLE llx_emailcollector_emailcollectoraction ADD UNIQUE INDEX uk_emailcollector_emailcollectoraction (fk_emailcollector, type);
    diff --git a/htdocs/install/mysql/tables/llx_emailcollector_emailcollectoraction.sql b/htdocs/install/mysql/tables/llx_emailcollector_emailcollectoraction.sql
    new file mode 100644
    index 00000000000..e0239cf98f6
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_emailcollector_emailcollectoraction.sql
    @@ -0,0 +1,31 @@
    +-- Copyright (C) ---Put here your own copyright and developer email---
    +--
    +-- 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
    +-- the Free Software Foundation, either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program.  If not, see http://www.gnu.org/licenses/.
    +
    +
    +CREATE TABLE llx_emailcollector_emailcollectoraction(
    +	-- BEGIN MODULEBUILDER FIELDS
    +	rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
    +	fk_emailcollector INTEGER NOT NULL,
    +	type varchar(128) NOT NULL, 
    +	actionparam varchar(255) NULL, 
    +	date_creation datetime NOT NULL, 
    +	tms timestamp NOT NULL, 
    +	fk_user_creat integer NOT NULL, 
    +	fk_user_modif integer, 
    +	position integer DEFAULT 0,
    +	import_key varchar(14),
    +	status integer NOT NULL
    +	-- END MODULEBUILDER FIELDS
    +) ENGINE=innodb;
    \ No newline at end of file
    diff --git a/htdocs/install/mysql/tables/llx_emailcollector_emailcollectorfilter.key.sql b/htdocs/install/mysql/tables/llx_emailcollector_emailcollectorfilter.key.sql
    new file mode 100644
    index 00000000000..e0eb095fad1
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_emailcollector_emailcollectorfilter.key.sql
    @@ -0,0 +1,23 @@
    +-- Copyright (C) ---Put here your own copyright and developer email---
    +--
    +-- 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
    +-- the Free Software Foundation, either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program.  If not, see http://www.gnu.org/licenses/.
    +
    +
    +-- BEGIN MODULEBUILDER INDEXES
    +ALTER TABLE llx_emailcollector_emailcollectorfilter ADD INDEX idx_emailcollector_fk_emailcollector (fk_emailcollector);
    +ALTER TABLE llx_emailcollector_emailcollectorfilter ADD CONSTRAINT fk_emailcollectorfilter_fk_emailcollector FOREIGN KEY (fk_emailcollector) REFERENCES llx_emailcollector_emailcollector(rowid);
    +-- END MODULEBUILDER INDEXES
    +
    +ALTER TABLE llx_emailcollector_emailcollectorfilter ADD UNIQUE INDEX uk_emailcollector_emailcollectorfilter (fk_emailcollector, type, rulevalue);
    +
    diff --git a/htdocs/install/mysql/tables/llx_emailcollector_emailcollectorfilter.sql b/htdocs/install/mysql/tables/llx_emailcollector_emailcollectorfilter.sql
    new file mode 100644
    index 00000000000..6312fa5785f
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_emailcollector_emailcollectorfilter.sql
    @@ -0,0 +1,30 @@
    +-- Copyright (C) ---Put here your own copyright and developer email---
    +--
    +-- 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
    +-- the Free Software Foundation, either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program.  If not, see http://www.gnu.org/licenses/.
    +
    +
    +CREATE TABLE llx_emailcollector_emailcollectorfilter(
    +	-- BEGIN MODULEBUILDER FIELDS
    +	rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
    +	fk_emailcollector INTEGER NOT NULL,
    +	type varchar(128) NOT NULL, 
    +	rulevalue varchar(255) NULL, 
    +	date_creation datetime NOT NULL, 
    +	tms timestamp NOT NULL, 
    +	fk_user_creat integer NOT NULL, 
    +	fk_user_modif integer, 
    +	import_key varchar(14), 
    +	status integer NOT NULL
    +	-- END MODULEBUILDER FIELDS
    +) ENGINE=innodb;
    \ No newline at end of file
    diff --git a/htdocs/install/mysql/tables/llx_entrepot.key.sql b/htdocs/install/mysql/tables/llx_entrepot.key.sql
    index 3f9137e57ee..551eeda4e95 100644
    --- a/htdocs/install/mysql/tables/llx_entrepot.key.sql
    +++ b/htdocs/install/mysql/tables/llx_entrepot.key.sql
    @@ -1,5 +1,5 @@
     -- ============================================================================
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_events.sql b/htdocs/install/mysql/tables/llx_events.sql
    index c153522cb09..f906cf0fcbd 100644
    --- a/htdocs/install/mysql/tables/llx_events.sql
    +++ b/htdocs/install/mysql/tables/llx_events.sql
    @@ -1,6 +1,6 @@
     -- ========================================================================
     -- Copyright (C) 2008      Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_expedition.key.sql b/htdocs/install/mysql/tables/llx_expedition.key.sql
    index 736945193ff..d5e041b6cdf 100644
    --- a/htdocs/install/mysql/tables/llx_expedition.key.sql
    +++ b/htdocs/install/mysql/tables/llx_expedition.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2005      Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_expedition.sql b/htdocs/install/mysql/tables/llx_expedition.sql
    index e252783ac94..044f840dc07 100644
    --- a/htdocs/install/mysql/tables/llx_expedition.sql
    +++ b/htdocs/install/mysql/tables/llx_expedition.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2003-2010 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2011-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2012      Juanjo Menent		<jmenent@2byte.es>
     --
    diff --git a/htdocs/install/mysql/tables/llx_expeditiondet.key.sql b/htdocs/install/mysql/tables/llx_expeditiondet.key.sql
    index 5f5b6a08183..9c3cd0aa2e9 100644
    --- a/htdocs/install/mysql/tables/llx_expeditiondet.key.sql
    +++ b/htdocs/install/mysql/tables/llx_expeditiondet.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2005 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2008 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2008 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_expeditiondet.sql b/htdocs/install/mysql/tables/llx_expeditiondet.sql
    index bd05bd08898..54e170d041b 100644
    --- a/htdocs/install/mysql/tables/llx_expeditiondet.sql
    +++ b/htdocs/install/mysql/tables/llx_expeditiondet.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2008 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2008 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2011 Laurent Destailleur  <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_expensereport.key.sql b/htdocs/install/mysql/tables/llx_expensereport.key.sql
    index a7e4fd54425..739caa58432 100644
    --- a/htdocs/install/mysql/tables/llx_expensereport.key.sql
    +++ b/htdocs/install/mysql/tables/llx_expensereport.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2005      Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_export_model.key.sql b/htdocs/install/mysql/tables/llx_export_model.key.sql
    index 53f5efbda52..4e9485f68c4 100644
    --- a/htdocs/install/mysql/tables/llx_export_model.key.sql
    +++ b/htdocs/install/mysql/tables/llx_export_model.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2007-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2007      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2007      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_export_model.sql b/htdocs/install/mysql/tables/llx_export_model.sql
    index eaf11645f83..59bbb34ed19 100644
    --- a/htdocs/install/mysql/tables/llx_export_model.sql
    +++ b/htdocs/install/mysql/tables/llx_export_model.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2001-2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    --- Copyright (C) 2007-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2007-2012	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2011		Laurent Destailleur		<eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_extrafields.key.sql b/htdocs/install/mysql/tables/llx_extrafields.key.sql
    index 90c0174e527..55bfc77b421 100644
    --- a/htdocs/install/mysql/tables/llx_extrafields.key.sql
    +++ b/htdocs/install/mysql/tables/llx_extrafields.key.sql
    @@ -1,5 +1,5 @@
     -- ===================================================================
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2011      Laurent Destailleur  <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_extrafields.sql b/htdocs/install/mysql/tables/llx_extrafields.sql
    index 9acf239ee64..e7ec325d428 100644
    --- a/htdocs/install/mysql/tables/llx_extrafields.sql
    +++ b/htdocs/install/mysql/tables/llx_extrafields.sql
    @@ -1,5 +1,5 @@
     -- ===================================================================
    --- Copyright (C) 2011-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011-2012 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2011-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    @@ -36,7 +36,9 @@ create table llx_extrafields
     	alwayseditable  integer DEFAULT 0,							-- 1 if field can be edited whatever is element status
     	param			text,										-- extra parameters to define possible values of field
     	list			varchar(255) DEFAULT '1',					-- visibility of field. 0=Never visible, 1=Visible on list and forms, 2=Visible on list only. Using a negative value means field is not shown by default on list but can be selected for viewing
    +    totalizable     boolean DEFAULT FALSE,                      -- is extrafield totalizable on list
     	langs			varchar(64),								-- example: fileofmymodule@mymodule
    +	help            text,                                       -- to store help tooltip
     	fk_user_author	integer,									-- user making creation
     	fk_user_modif	integer,	                                -- user making last change
     	datec			datetime,									-- date de creation
    diff --git a/htdocs/install/mysql/tables/llx_facture.key.sql b/htdocs/install/mysql/tables/llx_facture.key.sql
    index b0755bf5d94..caed51240d7 100644
    --- a/htdocs/install/mysql/tables/llx_facture.key.sql
    +++ b/htdocs/install/mysql/tables/llx_facture.key.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    @@ -19,7 +19,7 @@
     -- ============================================================================
     
     
    -ALTER TABLE llx_facture ADD UNIQUE INDEX idx_facture_uk_facnumber (facnumber, entity);
    +ALTER TABLE llx_facture ADD UNIQUE INDEX uk_facture_ref (ref, entity);
     
     ALTER TABLE llx_facture ADD INDEX idx_facture_fk_soc (fk_soc);
     ALTER TABLE llx_facture ADD INDEX idx_facture_fk_user_author (fk_user_author);
    diff --git a/htdocs/install/mysql/tables/llx_facture.sql b/htdocs/install/mysql/tables/llx_facture.sql
    index c0783a7bbd8..8e9ceb48d04 100644
    --- a/htdocs/install/mysql/tables/llx_facture.sql
    +++ b/htdocs/install/mysql/tables/llx_facture.sql
    @@ -1,7 +1,7 @@
     -- ===========================================================================
     -- Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
     -- Copyright (C) 2012      Cédric Salvador      <csalvador@gpcsolutions.fr>
     -- Copyright (C) 2014      Raphaël Doursenaud   <rdoursenaud@gpcsolutions.fr>
    @@ -26,7 +26,7 @@ create table llx_facture
     (
       rowid					integer AUTO_INCREMENT PRIMARY KEY,
     
    -  facnumber				varchar(30)        NOT NULL,			-- invoice reference number
    +  ref				varchar(30)        NOT NULL,			-- invoice reference number
       entity				integer  DEFAULT 1 NOT NULL,			-- multi company id
     
       ref_ext				varchar(255),							-- reference into an external system (not used by dolibarr)
    @@ -63,16 +63,18 @@ create table llx_facture
       fk_user_modif         integer,                                -- user making last change
       fk_user_valid			integer,								-- user validating
     
    +  module_source			varchar(32),							-- name of module when invoice generated by a dedicated module (POS, ...)
    +  pos_source			varchar(32),							-- name of POS station when invoice is generated by a POS module
       fk_fac_rec_source		integer,								-- facture rec source
       fk_facture_source		integer,								-- facture origin if credit notes or replacement invoice
    -  fk_projet				integer DEFAULT NULL,					-- projet auquel est associee la facture
    +  fk_projet				integer DEFAULT NULL,					-- project invoice is linked to
     
       fk_account			integer,								-- bank account
       fk_currency			varchar(3),								-- currency code
       
    -  fk_cond_reglement		integer  DEFAULT 1 NOT NULL,			-- condition de reglement (30 jours, fin de mois ...)
    -  fk_mode_reglement		integer,								-- mode de reglement (Virement, Prelevement)
    -  date_lim_reglement	date,									-- date limite de reglement
    +  fk_cond_reglement		integer  DEFAULT 1 NOT NULL,			-- payment term (30 days, end of month...)
    +  fk_mode_reglement		integer,								-- payment mode (Virement, Prelevement)
    +  date_lim_reglement	date,									-- due date
     
       note_private			text,
       note_public			text,
    diff --git a/htdocs/install/mysql/tables/llx_facture_fourn.key.sql b/htdocs/install/mysql/tables/llx_facture_fourn.key.sql
    index cbea87a398f..7b8dc66c9fa 100644
    --- a/htdocs/install/mysql/tables/llx_facture_fourn.key.sql
    +++ b/htdocs/install/mysql/tables/llx_facture_fourn.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2005-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_facture_fourn.sql b/htdocs/install/mysql/tables/llx_facture_fourn.sql
    index b1329de08ac..36ee0a69f18 100644
    --- a/htdocs/install/mysql/tables/llx_facture_fourn.sql
    +++ b/htdocs/install/mysql/tables/llx_facture_fourn.sql
    @@ -1,7 +1,7 @@
     -- ===========================================================================
     -- Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2007-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2007-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2007-2012 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_facture_rec.key.sql b/htdocs/install/mysql/tables/llx_facture_rec.key.sql
    index 3a41233fa4a..9529695cbe5 100644
    --- a/htdocs/install/mysql/tables/llx_facture_rec.key.sql
    +++ b/htdocs/install/mysql/tables/llx_facture_rec.key.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2006 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_facture_rec.sql b/htdocs/install/mysql/tables/llx_facture_rec.sql
    index dc1343872c7..1add07c6e8c 100644
    --- a/htdocs/install/mysql/tables/llx_facture_rec.sql
    +++ b/htdocs/install/mysql/tables/llx_facture_rec.sql
    @@ -1,7 +1,7 @@
     -- ===========================================================================
     -- Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2012-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
     -- 
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_facturedet.key.sql b/htdocs/install/mysql/tables/llx_facturedet.key.sql
    index f1a7807a910..a0e84034d64 100644
    --- a/htdocs/install/mysql/tables/llx_facturedet.key.sql
    +++ b/htdocs/install/mysql/tables/llx_facturedet.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2005-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2011      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011      Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2012      Cédric Salvador      <csalvador@gpcsolutions.fr>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_facturedet.sql b/htdocs/install/mysql/tables/llx_facturedet.sql
    index bf008d41f03..ac7142c898d 100644
    --- a/htdocs/install/mysql/tables/llx_facturedet.sql
    +++ b/htdocs/install/mysql/tables/llx_facturedet.sql
    @@ -1,7 +1,7 @@
     -- ===================================================================
     -- Copyright (C) 2001-2005	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2005	Laurent Destailleur		<eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
     -- Copyright (C) 2012       Cédric Salvador       <csalvador@gpcsolutions.fr>
     -- Copyright (C) 2014       Raphaël Doursenaud    <rdoursenaud@gpcsolutions.fr>
    diff --git a/htdocs/install/mysql/tables/llx_facturedet_rec.key.sql b/htdocs/install/mysql/tables/llx_facturedet_rec.key.sql
    index 5ce0d0d296b..3facb7ade29 100644
    --- a/htdocs/install/mysql/tables/llx_facturedet_rec.key.sql
    +++ b/htdocs/install/mysql/tables/llx_facturedet_rec.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2005 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2011 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2012 Cedric Salvador      <csalvador@gpcsolutions.fr>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_facturedet_rec.sql b/htdocs/install/mysql/tables/llx_facturedet_rec.sql
    index 341afd0d9ba..ac79dfd891d 100644
    --- a/htdocs/install/mysql/tables/llx_facturedet_rec.sql
    +++ b/htdocs/install/mysql/tables/llx_facturedet_rec.sql
    @@ -2,7 +2,7 @@
     -- Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
     -- Copyright (C) 2009-2014  Laurent Destailleur		<eldy@users.sourceforge.net>
     -- Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
    --- Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2012      Cédric Salvador      <csalvador@gpcsolutions.fr>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_fichinter.sql b/htdocs/install/mysql/tables/llx_fichinter.sql
    index 5bc5741c014..2029e15aff5 100644
    --- a/htdocs/install/mysql/tables/llx_fichinter.sql
    +++ b/htdocs/install/mysql/tables/llx_fichinter.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_fichinter_rec.key.sql b/htdocs/install/mysql/tables/llx_fichinter_rec.key.sql
    new file mode 100644
    index 00000000000..ef164d9f8d0
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_fichinter_rec.key.sql
    @@ -0,0 +1,30 @@
    +-- ============================================================================
    +-- Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    +-- Copyright (C) 2004-2006 Laurent Destailleur  <eldy@users.sourceforge.net>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
    +-- Copyright (C) 2018      Charlene Benke        <charlie@patas-monkey.com>
    +--
    +-- 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +-- ============================================================================
    +
    +
    +ALTER TABLE llx_fichinter_rec ADD UNIQUE INDEX idx_fichinter_rec_uk_titre (titre, entity);
    +
    +ALTER TABLE llx_fichinter_rec ADD INDEX idx_fichinter_rec_fk_soc (fk_soc);
    +ALTER TABLE llx_fichinter_rec ADD INDEX idx_fichinter_rec_fk_user_author (fk_user_author);
    +ALTER TABLE llx_fichinter_rec ADD INDEX idx_fichinter_rec_fk_projet (fk_projet);
    +
    +ALTER TABLE llx_fichinter_rec ADD CONSTRAINT fk_fichinter_rec_fk_user_author    FOREIGN KEY (fk_user_author) REFERENCES llx_user (rowid);
    +ALTER TABLE llx_fichinter_rec ADD CONSTRAINT fk_fichinter_rec_fk_projet         FOREIGN KEY (fk_projet) REFERENCES llx_projet (rowid);
    diff --git a/htdocs/install/mysql/tables/llx_fichinter_rec.sql b/htdocs/install/mysql/tables/llx_fichinter_rec.sql
    new file mode 100644
    index 00000000000..4beea8e2db1
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_fichinter_rec.sql
    @@ -0,0 +1,48 @@
    +-- ===========================================================================
    +-- Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    +-- Copyright (C) 2012-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
    +-- Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
    +-- Copyright (C) 2018      Charlene Benke		    <charlie@patas-monkey.com>
    +-- 
    +-- 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +-- ===========================================================================
    +
    +create table llx_fichinter_rec
    +(
    +	rowid				integer AUTO_INCREMENT PRIMARY KEY,
    +	titre				varchar(50) NOT NULL,
    +	entity				integer DEFAULT 1 NOT NULL,	 -- multi company id
    +	fk_soc				integer DEFAULT NULL,
    +	datec				datetime,  -- date de creation
    +	
    +	fk_contrat			integer DEFAULT 0,          -- contrat auquel est rattache la fiche
    +	fk_user_author		integer,             -- createur
    +	fk_projet			integer,             -- projet auquel est associe la facture
    +	duree				real,                       -- duree totale de l'intervention
    +	description			text,
    +	modelpdf			varchar(50),
    +	note_private		text,
    +	note_public			text,
    +
    +	frequency			integer,					-- frequency (for example: 3 for every 3 month)
    +	unit_frequency		varchar(2) DEFAULT 'm',		-- 'm' for month (date_when must be a day <= 28), 'y' for year, ... 
    +	date_when			datetime DEFAULT NULL,		-- date for next gen (when an invoice is generated, this field must be updated with next date)
    +	date_last_gen		datetime DEFAULT NULL,		-- date for last gen (date with last successfull generation of invoice)
    +	nb_gen_done			integer DEFAULT NULL,		-- nb of generation done (when an invoice is generated, this field must incremented)
    +	nb_gen_max			integer DEFAULT NULL,		-- maximum number of generation
    +	auto_validate		integer NULL DEFAULT NULL	-- statut of the generated intervention
    +
    +)ENGINE=innodb;
    diff --git a/htdocs/install/mysql/tables/llx_fichinterdet.key.sql b/htdocs/install/mysql/tables/llx_fichinterdet.key.sql
    index 4fa7c1f3fa5..3266505fba9 100644
    --- a/htdocs/install/mysql/tables/llx_fichinterdet.key.sql
    +++ b/htdocs/install/mysql/tables/llx_fichinterdet.key.sql
    @@ -1,5 +1,5 @@
     -- ===================================================================
    --- Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2010 Regis Houssin  <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_fichinterdet.sql b/htdocs/install/mysql/tables/llx_fichinterdet.sql
    index 5fcd1b1d524..676dfadbe35 100644
    --- a/htdocs/install/mysql/tables/llx_fichinterdet.sql
    +++ b/htdocs/install/mysql/tables/llx_fichinterdet.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_fichinterdet_rec.sql b/htdocs/install/mysql/tables/llx_fichinterdet_rec.sql
    new file mode 100644
    index 00000000000..40475b80d7d
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_fichinterdet_rec.sql
    @@ -0,0 +1,63 @@
    +-- ===================================================================
    +-- Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    +-- Copyright (C) 2009-2014	Laurent Destailleur		<eldy@users.sourceforge.net>
    +-- Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
    +-- Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@inodbox.com>
    +-- Copyright (C) 2012		Cédric Salvador			<csalvador@gpcsolutions.fr>
    +-- Copyright (C) 2016-2018	Charlene Benke			<charlie@patas-monkey.com>
    +--
    +-- 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +-- ===================================================================
    +
    +create table llx_fichinterdet_rec
    +(
    +	rowid				integer AUTO_INCREMENT PRIMARY KEY,
    +	fk_fichinter		integer NOT NULL,
    +	date				datetime,				-- date de la ligne d'intervention
    +	description			text,					-- description de la ligne d'intervention
    +	duree				integer,				-- duree de la ligne d'intervention
    +	rang				integer DEFAULT 0,		-- ordre affichage sur la fiche
    +	total_ht			DOUBLE(24, 8) NULL DEFAULT NULL,
    +	subprice			DOUBLE(24, 8) NULL DEFAULT NULL,
    +	fk_parent_line		integer NULL DEFAULT NULL,
    +	fk_product			integer NULL DEFAULT NULL,
    +	label				varchar(255) NULL DEFAULT NULL,
    +	tva_tx				DOUBLE(6, 3) NULL DEFAULT NULL,
    +	localtax1_tx		DOUBLE(6, 3) NULL DEFAULT 0,
    +	localtax1_type		VARCHAR(1) NULL DEFAULT NULL,
    +	localtax2_tx		DOUBLE(6, 3) NULL DEFAULT 0,
    +	localtax2_type		VARCHAR(1) NULL DEFAULT NULL,
    +	qty					double NULL DEFAULT NULL,
    +	remise_percent		double NULL DEFAULT 0,
    +	remise				double NULL DEFAULT 0,
    +	fk_remise_except	integer NULL DEFAULT NULL,
    +	price				DOUBLE(24, 8) NULL DEFAULT NULL,
    +	total_tva			DOUBLE(24, 8) NULL DEFAULT NULL,
    +	total_localtax1		DOUBLE(24, 8) NULL DEFAULT 0,
    +	total_localtax2		DOUBLE(24, 8) NULL DEFAULT 0,
    +	total_ttc			DOUBLE(24, 8) NULL DEFAULT NULL,
    +	product_type		INTEGER NULL DEFAULT 0,
    +	date_start			datetime NULL DEFAULT NULL,
    +	date_end			datetime NULL DEFAULT NULL,
    +	info_bits			INTEGER NULL DEFAULT 0,
    +	buy_price_ht		DOUBLE(24, 8) NULL DEFAULT 0,
    +	fk_product_fournisseur_price	integer NULL DEFAULT NULL,
    +	fk_code_ventilation	integer NOT NULL DEFAULT 0,
    +	fk_export_commpta	integer NOT NULL DEFAULT 0,
    +	special_code		integer UNSIGNED NULL DEFAULT 0,
    +	fk_unit				integer NULL DEFAULT NULL,	
    +	import_key			varchar(14) NULL DEFAULT NULL
    +
    +)ENGINE=innodb;
    diff --git a/htdocs/install/mysql/tables/llx_holiday.key.sql b/htdocs/install/mysql/tables/llx_holiday.key.sql
    index 9a1a6ae49e3..6243d1eee56 100644
    --- a/htdocs/install/mysql/tables/llx_holiday.key.sql
    +++ b/htdocs/install/mysql/tables/llx_holiday.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2016	Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2016	Regis Houssin		<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_holiday.sql b/htdocs/install/mysql/tables/llx_holiday.sql
    index f6994810021..47c68647ffb 100644
    --- a/htdocs/install/mysql/tables/llx_holiday.sql
    +++ b/htdocs/install/mysql/tables/llx_holiday.sql
    @@ -32,9 +32,9 @@ date_debut     DATE NOT NULL,
     date_fin       DATE NOT NULL,
     halfday        integer DEFAULT 0,				-- 0=start morning and end afternoon, -1=start afternoon end afternoon, 1=start morning and end morning, 2=start afternoon and end morning
     statut         integer NOT NULL DEFAULT '1',
    -fk_validator   integer NOT NULL,
    -date_valid     DATETIME DEFAULT NULL,
    -fk_user_valid  integer DEFAULT NULL,
    +fk_validator   integer NOT NULL,				-- who should approve
    +date_valid     DATETIME DEFAULT NULL,			-- date approval
    +fk_user_valid  integer DEFAULT NULL,			-- user approval
     date_refuse    DATETIME DEFAULT NULL,
     fk_user_refuse integer DEFAULT NULL,
     date_cancel    DATETIME DEFAULT NULL,
    diff --git a/htdocs/install/mysql/tables/llx_links.sql b/htdocs/install/mysql/tables/llx_links.sql
    index 4d4ab401ba4..7e9fba8e2c5 100644
    --- a/htdocs/install/mysql/tables/llx_links.sql
    +++ b/htdocs/install/mysql/tables/llx_links.sql
    @@ -15,7 +15,7 @@
     -- along with this program. If not, see <http://www.gnu.org/licenses/>.
     --
     --
    --- Actions commerciales
    +-- Table to store external URL links to documents
     -- ========================================================================
     
     create table llx_links
    diff --git a/htdocs/install/mysql/tables/llx_livraison.key.sql b/htdocs/install/mysql/tables/llx_livraison.key.sql
    index f61319640ee..2769ee09c67 100644
    --- a/htdocs/install/mysql/tables/llx_livraison.key.sql
    +++ b/htdocs/install/mysql/tables/llx_livraison.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2005      Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_livraison.sql b/htdocs/install/mysql/tables/llx_livraison.sql
    index 32e9de8b2a7..5f7a6c52ef8 100644
    --- a/htdocs/install/mysql/tables/llx_livraison.sql
    +++ b/htdocs/install/mysql/tables/llx_livraison.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_livraisondet.key.sql b/htdocs/install/mysql/tables/llx_livraisondet.key.sql
    index 5b9b37767eb..f6783d55a04 100644
    --- a/htdocs/install/mysql/tables/llx_livraisondet.key.sql
    +++ b/htdocs/install/mysql/tables/llx_livraisondet.key.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2005 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2008 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2008 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_livraisondet.sql b/htdocs/install/mysql/tables/llx_livraisondet.sql
    index fc0644830c5..cac8819f206 100644
    --- a/htdocs/install/mysql/tables/llx_livraisondet.sql
    +++ b/htdocs/install/mysql/tables/llx_livraisondet.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2008 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2008 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_loan.sql b/htdocs/install/mysql/tables/llx_loan.sql
    index 7277fa85d47..f153e25dd22 100644
    --- a/htdocs/install/mysql/tables/llx_loan.sql
    +++ b/htdocs/install/mysql/tables/llx_loan.sql
    @@ -27,7 +27,9 @@ create table llx_loan
       label							varchar(80) NOT NULL,
       fk_bank						integer,
     
    -  capital						double(24,8) default 0 NOT NULL,
    +  capital						double(24,8) DEFAULT 0 NOT NULL,
    +  insurance_amount				double(24,8) DEFAULT 0,
    +
       datestart						date,
       dateend						date,
       nbterm						real,
    @@ -36,9 +38,9 @@ create table llx_loan
       note_private					text,
       note_public					text,
     
    -  capital_position				double(24,8) default 0,		-- If not a new loan, just have the position of capital
    +  capital_position				double(24,8) DEFAULT 0,		-- If not a new loan, just have the position of capital
       date_position					date,
    -
    +  
       paid							smallint default 0 NOT NULL,
     
       accountancy_account_capital	varchar(32),
    diff --git a/htdocs/install/mysql/tables/llx_localtax.sql b/htdocs/install/mysql/tables/llx_localtax.sql
    index 65c9fbe496b..e1cef882e7c 100644
    --- a/htdocs/install/mysql/tables/llx_localtax.sql
    +++ b/htdocs/install/mysql/tables/llx_localtax.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2011-2014	Juanjo Menent	<jmenent@2byte.es>
    --- Copyright (C) 2011		Regis Houssin	<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011		Regis Houssin	<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_mailing.sql b/htdocs/install/mysql/tables/llx_mailing.sql
    index a365aba0be1..74f022d8887 100644
    --- a/htdocs/install/mysql/tables/llx_mailing.sql
    +++ b/htdocs/install/mysql/tables/llx_mailing.sql
    @@ -1,6 +1,6 @@
     -- ========================================================================
     -- Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_mailing_cibles.sql b/htdocs/install/mysql/tables/llx_mailing_cibles.sql
    index c533eb0ff8a..f7a3c357168 100644
    --- a/htdocs/install/mysql/tables/llx_mailing_cibles.sql
    +++ b/htdocs/install/mysql/tables/llx_mailing_cibles.sql
    @@ -1,7 +1,7 @@
     -- ========================================================================
     -- Copyright (C) 2005		Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2009-2016	Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2011-2012	Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011-2012	Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_mailing_unsubscribe.key.sql b/htdocs/install/mysql/tables/llx_mailing_unsubscribe.key.sql
    new file mode 100644
    index 00000000000..baa74a4d133
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_mailing_unsubscribe.key.sql
    @@ -0,0 +1,20 @@
    +-- ===================================================================
    +-- Copyright (C) 2018 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +-- ===================================================================
    +
    +
    +ALTER TABLE llx_mailing_unsubscribe ADD UNIQUE uk_mailing_unsubscribe(email, entity, unsubscribegroup);
    \ No newline at end of file
    diff --git a/htdocs/install/mysql/tables/llx_mailing_unsubscribe.sql b/htdocs/install/mysql/tables/llx_mailing_unsubscribe.sql
    new file mode 100644
    index 00000000000..743e6ba1220
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_mailing_unsubscribe.sql
    @@ -0,0 +1,30 @@
    +-- ========================================================================
    +-- Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    +-- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
    +--
    +-- 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +-- ========================================================================
    +
    +
    +create table llx_mailing_unsubscribe
    +(
    +  rowid				integer AUTO_INCREMENT PRIMARY KEY,
    +  entity			integer DEFAULT 1 NOT NULL,	         -- multi company id
    +  email				varchar(255),
    +  unsubscribegroup	varchar(128) DEFAULT '',
    +  ip				varchar(128),
    +  date_creat		datetime,                            -- creation date
    +  tms               timestamp
    +)ENGINE=innodb;
    diff --git a/htdocs/install/mysql/tables/llx_menu.key.sql b/htdocs/install/mysql/tables/llx_menu.key.sql
    index f98bb00fae0..53b26de8a04 100644
    --- a/htdocs/install/mysql/tables/llx_menu.key.sql
    +++ b/htdocs/install/mysql/tables/llx_menu.key.sql
    @@ -1,7 +1,7 @@
     -- ========================================================================
     -- Copyright (C) 2007      Patrick Raguin       <patrick.raguin@gmail.com>
     -- Copyright (C) 2005-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_menu.sql b/htdocs/install/mysql/tables/llx_menu.sql
    index 18862ff496a..7cbd86bb1a1 100644
    --- a/htdocs/install/mysql/tables/llx_menu.sql
    +++ b/htdocs/install/mysql/tables/llx_menu.sql
    @@ -1,7 +1,7 @@
     -- ========================================================================
     -- Copyright (C) 2007		Patrick Raguin		<patrick.raguin@gmail.com>
     -- Copyright (C) 2007-2008	Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009-2012	Regis Houssin		<regis.houssin@inodbox.com>
     -- Copyright (C) 2012		Marcos García		<marcosgdf@gmail.com>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_paiement.sql b/htdocs/install/mysql/tables/llx_paiement.sql
    index 2a287ac7e89..9f40cb2cfc9 100644
    --- a/htdocs/install/mysql/tables/llx_paiement.sql
    +++ b/htdocs/install/mysql/tables/llx_paiement.sql
    @@ -1,7 +1,7 @@
     -- ===================================================================
     -- Copyright (C) 2001-2004	Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2004		Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2012		Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2012		Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    @@ -21,7 +21,7 @@
     create table llx_paiement
     (
       rowid            integer AUTO_INCREMENT PRIMARY KEY,
    -  ref              varchar(30) NOT NULL, -- payment reference number
    +  ref              varchar(30) NULL,                    -- payment reference number
       entity           integer   DEFAULT 1 NOT NULL,		-- Multi company id
       datec            datetime,							-- date de creation
       tms              timestamp,
    @@ -31,9 +31,11 @@ create table llx_paiement
       fk_paiement      integer NOT NULL,
       num_paiement     varchar(50),
       note             text,
    +  ext_payment_id   varchar(128),						-- external id of payment (for example Stripe charge id)
    +  ext_payment_site varchar(128),						-- name of external paymentmode (for example 'stripe')
       fk_bank          integer NOT NULL DEFAULT 0,
       fk_user_creat    integer,								-- utilisateur qui a cree l'info
       fk_user_modif    integer,								-- utilisateur qui a modifie l'info
    -  statut           smallint DEFAULT 0 NOT NULL,		-- Satut, 0 ou 1, 1 n'est plus supprimable
    +  statut           smallint DEFAULT 0 NOT NULL,			-- Satut, 0 ou 1, 1 n'est plus supprimable
       fk_export_compta integer DEFAULT 0 NOT NULL			-- fk_export_compta 0 pas exporte
     )ENGINE=innodb;
    diff --git a/htdocs/install/mysql/tables/llx_payment_salary.sql b/htdocs/install/mysql/tables/llx_payment_salary.sql
    index e3bcd0a9c4a..c56e6459aa0 100644
    --- a/htdocs/install/mysql/tables/llx_payment_salary.sql
    +++ b/htdocs/install/mysql/tables/llx_payment_salary.sql
    @@ -19,6 +19,7 @@
     create table llx_payment_salary
     (
       rowid           integer AUTO_INCREMENT PRIMARY KEY,
    +  ref             varchar(30) NOT NULL,       -- payment reference number
       tms             timestamp,
       datec           datetime,                   -- Create date
       fk_user         integer NOT NULL,
    @@ -26,11 +27,12 @@ create table llx_payment_salary
       datev           date,                       -- value date (this field should not be here, only into bank tables)
       salary          double(24,8),               -- salary of user when payment was done
       amount          double(24,8) NOT NULL DEFAULT 0,
    +  fk_projet       integer DEFAULT NULL,
       fk_typepayment  integer NOT NULL,
    -  num_payment     varchar(50),                -- ref
    +  num_payment     varchar(50),                -- num cheque or other
       label           varchar(255),
       datesp          date,                       -- date start period
    -  dateep          date,                       -- date end period    
    +  dateep          date,                       -- date end period
       entity          integer DEFAULT 1 NOT NULL, -- multi company id
       note            text,
       fk_bank         integer,
    diff --git a/htdocs/install/mysql/tables/llx_payment_various.sql b/htdocs/install/mysql/tables/llx_payment_various.sql
    index e719dae7d8c..d3351287e58 100644
    --- a/htdocs/install/mysql/tables/llx_payment_various.sql
    +++ b/htdocs/install/mysql/tables/llx_payment_various.sql
    @@ -19,7 +19,8 @@
     create table llx_payment_various
     (
       rowid                 integer AUTO_INCREMENT PRIMARY KEY,
    -  num_payment           varchar(50),				-- ref
    +  ref                   varchar(30) NOT NULL,       -- payment reference number
    +  num_payment           varchar(50),				-- num cheque or other
       label                 varchar(255),
       tms                   timestamp,
       datec                 datetime,                   -- Create date
    diff --git a/htdocs/install/mysql/tables/llx_pos_cash_fence.sql b/htdocs/install/mysql/tables/llx_pos_cash_fence.sql
    new file mode 100644
    index 00000000000..607060adab6
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_pos_cash_fence.sql
    @@ -0,0 +1,38 @@
    +-- Copyright (C) 2018 Andreu Bisquerra     <jove@bisquerra.com>
    +--
    +-- 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
    +-- the Free Software Foundation, either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program.  If not, see http://www.gnu.org/licenses/.
    +
    +
    +CREATE TABLE llx_pos_cash_fence(
    +	rowid INTEGER AUTO_INCREMENT PRIMARY KEY,
    +	entity INTEGER DEFAULT 1 NOT NULL,
    +	ref VARCHAR(64),
    +	label VARCHAR(255),
    +	opening double(24,8) default 0,
    +	cash double(24,8) default 0,
    +	card double(24,8) default 0,
    +	cheque double(24,8) default 0,
    +	status INTEGER,
    +	date_creation DATETIME NOT NULL,
    +	date_valid DATETIME,
    +	day_close INTEGER,
    +	month_close INTEGER,
    +	year_close INTEGER,
    +	posmodule VARCHAR(30),
    +	posnumber VARCHAR(30),
    +	fk_user_creat integer,
    +	fk_user_valid integer,
    +	tms TIMESTAMP NOT NULL,
    +	import_key VARCHAR(14)
    +) ENGINE=innodb;
    \ No newline at end of file
    diff --git a/htdocs/install/mysql/tables/llx_prelevement_bons.key.sql b/htdocs/install/mysql/tables/llx_prelevement_bons.key.sql
    index 999ddc9a848..29c11790339 100644
    --- a/htdocs/install/mysql/tables/llx_prelevement_bons.key.sql
    +++ b/htdocs/install/mysql/tables/llx_prelevement_bons.key.sql
    @@ -1,5 +1,5 @@
     -- ============================================================================
    --- Copyright (C) 2009 Regis Houssin	<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009 Regis Houssin	<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_prelevement_bons.sql b/htdocs/install/mysql/tables/llx_prelevement_bons.sql
    index 25e9381afe0..b796ffabcd6 100644
    --- a/htdocs/install/mysql/tables/llx_prelevement_bons.sql
    +++ b/htdocs/install/mysql/tables/llx_prelevement_bons.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_product.key.sql b/htdocs/install/mysql/tables/llx_product.key.sql
    index 40b4eb130a9..d339f2082ee 100644
    --- a/htdocs/install/mysql/tables/llx_product.key.sql
    +++ b/htdocs/install/mysql/tables/llx_product.key.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2012      Cédric Salvador      <csalvador@gpcsolutions.fr>
     -- Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
     --
    diff --git a/htdocs/install/mysql/tables/llx_product.sql b/htdocs/install/mysql/tables/llx_product.sql
    index 1e201038122..8569c6e28d2 100755
    --- a/htdocs/install/mysql/tables/llx_product.sql
    +++ b/htdocs/install/mysql/tables/llx_product.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2002-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2008-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
     -- Copyright (C) 2012-2013 Cédric Salvador      <csalvador@gpcsolutions.fr>
     -- Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
    diff --git a/htdocs/install/mysql/tables/llx_product_customer_price.sql b/htdocs/install/mysql/tables/llx_product_customer_price.sql
    index 339de2bb4be..443e48c0f5c 100644
    --- a/htdocs/install/mysql/tables/llx_product_customer_price.sql
    +++ b/htdocs/install/mysql/tables/llx_product_customer_price.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
     -- Copyright (C) 2009-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    --- Copyright (C) 2009-2013	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009-2013	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2012		Juanjo Menent			<jmenent@2byte.es>
     -- Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
     --
    diff --git a/htdocs/install/mysql/tables/llx_product_fournisseur_price.key.sql b/htdocs/install/mysql/tables/llx_product_fournisseur_price.key.sql
    index c290ad5518e..110736718d1 100644
    --- a/htdocs/install/mysql/tables/llx_product_fournisseur_price.key.sql
    +++ b/htdocs/install/mysql/tables/llx_product_fournisseur_price.key.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
     -- Copyright (C) 2005-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    --- Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_product_fournisseur_price.sql b/htdocs/install/mysql/tables/llx_product_fournisseur_price.sql
    index ab2efba1455..940967b13d4 100755
    --- a/htdocs/install/mysql/tables/llx_product_fournisseur_price.sql
    +++ b/htdocs/install/mysql/tables/llx_product_fournisseur_price.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2003		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
     -- Copyright (C) 2009-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    --- Copyright (C) 2009-2013	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009-2013	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2012		Juanjo Menent			<jmenent@2byte.es>
     --
     -- This program is free software; you can redistribute it and/or modify
    @@ -28,6 +28,7 @@ create table llx_product_fournisseur_price
       fk_product			integer,
       fk_soc				integer,
       ref_fourn				varchar(30),
    +  desc_fourn            text,
       fk_availability		integer,	   
       price					double(24,8) DEFAULT 0,		-- price without tax for quantity
       quantity				double,
    diff --git a/htdocs/install/mysql/tables/llx_product_lang.key.sql b/htdocs/install/mysql/tables/llx_product_lang.key.sql
    index 8aa0e8c3280..5c8ab0a5fc9 100644
    --- a/htdocs/install/mysql/tables/llx_product_lang.key.sql
    +++ b/htdocs/install/mysql/tables/llx_product_lang.key.sql
    @@ -1,5 +1,5 @@
     -- ============================================================================
    --- Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2010 Regis Houssin  <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_product_lang.sql b/htdocs/install/mysql/tables/llx_product_lang.sql
    index 7363a65a95c..cbccac26020 100644
    --- a/htdocs/install/mysql/tables/llx_product_lang.sql
    +++ b/htdocs/install/mysql/tables/llx_product_lang.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2009      Laurent Destailleur  <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_product_price.sql b/htdocs/install/mysql/tables/llx_product_price.sql
    index 4e5920e1dff..665470239e7 100755
    --- a/htdocs/install/mysql/tables/llx_product_price.sql
    +++ b/htdocs/install/mysql/tables/llx_product_price.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2002-2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_product_price_by_qty.key.sql b/htdocs/install/mysql/tables/llx_product_price_by_qty.key.sql
    index 56dbfbd1ae0..57426b53d1b 100644
    --- a/htdocs/install/mysql/tables/llx_product_price_by_qty.key.sql
    +++ b/htdocs/install/mysql/tables/llx_product_price_by_qty.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2002-2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
     -- Copyright (C) 2012		Maxime Kohlhaas			<maxime.kohlhaas@atm-consulting.fr>
     --
    diff --git a/htdocs/install/mysql/tables/llx_product_price_by_qty.sql b/htdocs/install/mysql/tables/llx_product_price_by_qty.sql
    index 9dbeb530a34..480b9239407 100644
    --- a/htdocs/install/mysql/tables/llx_product_price_by_qty.sql
    +++ b/htdocs/install/mysql/tables/llx_product_price_by_qty.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2002-2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
     -- Copyright (C) 2012		Maxime Kohlhaas			<maxime.kohlhaas@atm-consulting.fr>
     --
    diff --git a/htdocs/install/mysql/tables/llx_projet.key.sql b/htdocs/install/mysql/tables/llx_projet.key.sql
    index 75ad8cb7fef..b3a18f39b03 100644
    --- a/htdocs/install/mysql/tables/llx_projet.key.sql
    +++ b/htdocs/install/mysql/tables/llx_projet.key.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_projet.sql b/htdocs/install/mysql/tables/llx_projet.sql
    index 8e58f0ad8c8..7216a0f20b1 100644
    --- a/htdocs/install/mysql/tables/llx_projet.sql
    +++ b/htdocs/install/mysql/tables/llx_projet.sql
    @@ -1,6 +1,6 @@
     -- ===========================================================================
     -- Copyright (C) 2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2010 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_projet_task.key.sql b/htdocs/install/mysql/tables/llx_projet_task.key.sql
    index 620bbc17eaa..a64d8395b9f 100644
    --- a/htdocs/install/mysql/tables/llx_projet_task.key.sql
    +++ b/htdocs/install/mysql/tables/llx_projet_task.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2010 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_projet_task.sql b/htdocs/install/mysql/tables/llx_projet_task.sql
    index a7418f2688c..1adc6c6b2b6 100644
    --- a/htdocs/install/mysql/tables/llx_projet_task.sql
    +++ b/htdocs/install/mysql/tables/llx_projet_task.sql
    @@ -1,6 +1,6 @@
     -- ===========================================================================
     -- Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2010 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_propal.key.sql b/htdocs/install/mysql/tables/llx_propal.key.sql
    index 0c202bea2cb..85cd86b70e1 100644
    --- a/htdocs/install/mysql/tables/llx_propal.key.sql
    +++ b/htdocs/install/mysql/tables/llx_propal.key.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2005 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_propal.sql b/htdocs/install/mysql/tables/llx_propal.sql
    index e4c997b940a..d8eee18629b 100644
    --- a/htdocs/install/mysql/tables/llx_propal.sql
    +++ b/htdocs/install/mysql/tables/llx_propal.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2010      Laurent Destailleur  <eldy@users.sourceforge.net>
     -- Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
     --
    diff --git a/htdocs/install/mysql/tables/llx_propaldet.key.sql b/htdocs/install/mysql/tables/llx_propaldet.key.sql
    index 3d3467ea888..f442ad36106 100644
    --- a/htdocs/install/mysql/tables/llx_propaldet.key.sql
    +++ b/htdocs/install/mysql/tables/llx_propaldet.key.sql
    @@ -1,5 +1,5 @@
     -- ===================================================================
    --- Copyright (C) 2009-2011 Regis Houssin  <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009-2011 Regis Houssin  <regis.houssin@inodbox.com>
     -- Copyright (C) 2012      Cédric Salvador      <csalvador@gpcsolutions.fr>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_propaldet.sql b/htdocs/install/mysql/tables/llx_propaldet.sql
    index 283708fd7ce..fdee7a5dcca 100644
    --- a/htdocs/install/mysql/tables/llx_propaldet.sql
    +++ b/htdocs/install/mysql/tables/llx_propaldet.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2002-2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
     -- Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
     -- Copyright (C) 2012      Cédric Salvador      <csalvador@gpcsolutions.fr>
     --
    diff --git a/htdocs/install/mysql/tables/llx_reception.key.sql b/htdocs/install/mysql/tables/llx_reception.key.sql
    new file mode 100644
    index 00000000000..a107c2a7d12
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_reception.key.sql
    @@ -0,0 +1,31 @@
    +-- ===================================================================
    +-- Copyright (C) 2005      Laurent Destailleur  <eldy@users.sourceforge.net>
    +-- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +--
    +-- 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +-- ===================================================================
    +
    +
    +ALTER TABLE llx_reception ADD UNIQUE INDEX idx_reception_uk_ref (ref, entity);
    +
    +ALTER TABLE llx_reception ADD INDEX idx_reception_fk_soc (fk_soc);
    +ALTER TABLE llx_reception ADD INDEX idx_reception_fk_user_author (fk_user_author);
    +ALTER TABLE llx_reception ADD INDEX idx_reception_fk_user_valid (fk_user_valid);
    +ALTER TABLE llx_reception ADD INDEX idx_reception_fk_shipping_method (fk_shipping_method);
    +
    +ALTER TABLE llx_reception ADD CONSTRAINT fk_reception_fk_soc				FOREIGN KEY (fk_soc)			 REFERENCES llx_societe (rowid);
    +ALTER TABLE llx_reception ADD CONSTRAINT fk_reception_fk_user_author		FOREIGN KEY (fk_user_author)	 REFERENCES llx_user (rowid);
    +ALTER TABLE llx_reception ADD CONSTRAINT fk_reception_fk_user_valid 		FOREIGN KEY (fk_user_valid)		 REFERENCES llx_user (rowid);
    +ALTER TABLE llx_reception ADD CONSTRAINT fk_reception_fk_shipping_method 	FOREIGN KEY (fk_shipping_method) REFERENCES llx_c_shipment_mode (rowid);
    diff --git a/htdocs/install/mysql/tables/llx_reception.sql b/htdocs/install/mysql/tables/llx_reception.sql
    new file mode 100644
    index 00000000000..34565f7f29a
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_reception.sql
    @@ -0,0 +1,61 @@
    +-- ===================================================================
    +-- Copyright (C) 2003-2010 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    +-- Copyright (C) 2008-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    +-- Copyright (C) 2012      Juanjo Menent		<jmenent@2byte.es>
    +--
    +-- 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +-- ===================================================================
    +
    +create table llx_reception
    +(
    +  rowid                 integer AUTO_INCREMENT PRIMARY KEY,
    +  tms                   timestamp,
    +  ref                   varchar(30)        NOT NULL,
    +  entity                integer  DEFAULT 1 NOT NULL,	-- multi company id
    +  fk_soc                integer            NOT NULL,
    +  fk_projet  		integer  DEFAULT NULL,
    +  
    +  ref_ext               varchar(30),					-- reference into an external system (not used by dolibarr)
    +  ref_int				varchar(30),					-- reference into an internal system (used by dolibarr to store extern id like paypal info)
    +  ref_supplier          varchar(30),					-- customer number
    +  
    +  date_creation         datetime,						-- date de creation
    +  fk_user_author        integer,						-- author of creation
    +  fk_user_modif         integer,						-- author of last change
    +  date_valid            datetime,						-- date de validation
    +  fk_user_valid         integer,						-- valideur
    +  date_delivery			datetime	DEFAULT NULL,		-- date planned of delivery
    +  date_reception       datetime,						
    +  fk_shipping_method    integer,
    +  tracking_number       varchar(50),
    +  fk_statut             smallint	DEFAULT 0,			-- 0 = draft, 1 = validated, 2 = billed or closed depending on WORKFLOW_BILL_ON_SHIPMENT option
    +  billed                smallint    DEFAULT 0,
    +  
    +  height                float,							-- height
    +  width                 float,							-- with
    +  size_units            integer,						-- unit of all sizes (height, width, depth)
    +  size                  float,							-- depth
    +  weight_units          integer,						-- unit of weight
    +  weight                float,							-- weight
    +  note_private          text,
    +  note_public           text,
    +  model_pdf             varchar(255),
    +  fk_incoterms          integer,						-- for incoterms
    +  location_incoterms    varchar(255),					-- for incoterms
    +  
    +  import_key			varchar(14),
    +  extraparams			varchar(255)							-- for other parameters with json format
    +)ENGINE=innodb;
    diff --git a/htdocs/install/mysql/tables/llx_reception_extrafields.key.sql b/htdocs/install/mysql/tables/llx_reception_extrafields.key.sql
    new file mode 100644
    index 00000000000..f3a35acd8a3
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_reception_extrafields.key.sql
    @@ -0,0 +1,20 @@
    +-- ===================================================================
    +-- Copyright (C) 2015      Claudio Aschieri	<c.aschieri@19.coop>
    +--
    +-- 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +-- ===================================================================
    +
    +
    +ALTER TABLE llx_reception_extrafields ADD INDEX idx_reception_extrafields (fk_object);
    diff --git a/htdocs/install/mysql/tables/llx_reception_extrafields.sql b/htdocs/install/mysql/tables/llx_reception_extrafields.sql
    new file mode 100644
    index 00000000000..7a3126b2015
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_reception_extrafields.sql
    @@ -0,0 +1,26 @@
    +-- ========================================================================
    +-- Copyright (C) 2015      Claudio Aschieri	<c.aschieri@19.coop>
    +--
    +-- 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
    +-- the Free Software Foundation; either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
    +--
    +-- ========================================================================
    +
    +create table llx_reception_extrafields
    +(
    +  rowid                     integer AUTO_INCREMENT PRIMARY KEY,
    +  tms                       timestamp,
    +  fk_object                 integer NOT NULL,
    +  import_key                varchar(14)                          		-- import key
    +) ENGINE=innodb;
    +
    diff --git a/htdocs/install/mysql/tables/llx_rights_def.key.sql b/htdocs/install/mysql/tables/llx_rights_def.key.sql
    index b1d86a0cd04..d68316c7273 100644
    --- a/htdocs/install/mysql/tables/llx_rights_def.key.sql
    +++ b/htdocs/install/mysql/tables/llx_rights_def.key.sql
    @@ -1,5 +1,5 @@
     -- ============================================================================
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_rights_def.sql b/htdocs/install/mysql/tables/llx_rights_def.sql
    index 297772730c7..3de223d1606 100644
    --- a/htdocs/install/mysql/tables/llx_rights_def.sql
    +++ b/htdocs/install/mysql/tables/llx_rights_def.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_societe.sql b/htdocs/install/mysql/tables/llx_societe.sql
    index f1714021fb8..6225ae416e8 100644
    --- a/htdocs/install/mysql/tables/llx_societe.sql
    +++ b/htdocs/install/mysql/tables/llx_societe.sql
    @@ -1,7 +1,7 @@
     -- ========================================================================
     -- Copyright (C) 2000-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2010      Juanjo Menent        <dolibarr@2byte.es>
     -- Copyright (C) 2014      Teddy Andreotti      <125155@supinfo.com>
     -- Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    @@ -50,7 +50,16 @@ create table llx_societe
       fax                      varchar(20),                         		-- fax number
       url                      varchar(255),                        		--
       email                    varchar(128),                        		--
    +  
       skype                    varchar(255),                        		--
    +  twitter                  varchar(255),                        		--
    +  facebook                 varchar(255),                        		--
    +  instagram                varchar(255),                        		--
    +  snapchat                 varchar(255),                        		--
    +  googleplus               varchar(255),                        		--
    +  youtube                  varchar(255),                        		--
    +  whatsapp                 varchar(255),                        		--
    +  
       fk_effectif              integer        DEFAULT 0,            		--
       fk_typent                integer        DEFAULT 0,            		--
       fk_forme_juridique       integer        DEFAULT 0,            		-- juridical status
    diff --git a/htdocs/install/mysql/tables/llx_societe_address.sql b/htdocs/install/mysql/tables/llx_societe_address.sql
    index aa596333b2c..8ae2d07f389 100644
    --- a/htdocs/install/mysql/tables/llx_societe_address.sql
    +++ b/htdocs/install/mysql/tables/llx_societe_address.sql
    @@ -1,6 +1,6 @@
     -- ========================================================================
     -- Copyright (C) 2000-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2013 Houssin Regis        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2013 Houssin Regis        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_societe_remise.sql b/htdocs/install/mysql/tables/llx_societe_remise.sql
    index a9d41fcd502..a94ff35085e 100644
    --- a/htdocs/install/mysql/tables/llx_societe_remise.sql
    +++ b/htdocs/install/mysql/tables/llx_societe_remise.sql
    @@ -1,6 +1,6 @@
     -- ========================================================================
     -- Copyright (C) 2000-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2011-2016 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011-2016 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_societe_remise_supplier.sql b/htdocs/install/mysql/tables/llx_societe_remise_supplier.sql
    index c1b56f225c7..1e3e3edd5fe 100644
    --- a/htdocs/install/mysql/tables/llx_societe_remise_supplier.sql
    +++ b/htdocs/install/mysql/tables/llx_societe_remise_supplier.sql
    @@ -1,6 +1,6 @@
     -- ========================================================================
     -- Copyright (C) 2000-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2011-2016 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011-2016 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_societe_rib.sql b/htdocs/install/mysql/tables/llx_societe_rib.sql
    index 2463378067a..5bfc6d10fd6 100644
    --- a/htdocs/install/mysql/tables/llx_societe_rib.sql
    +++ b/htdocs/install/mysql/tables/llx_societe_rib.sql
    @@ -1,6 +1,6 @@
     -- =============================================================================
     -- Copyright (C) 2000-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2012	   Juanjo Menent        <jmenent@2byte.es>
     -- Copyright (C) 2013      Peter Fontaine       <contact@peterfontaine.fr>
     --
    @@ -41,10 +41,12 @@ create table llx_societe_rib
       proprio        varchar(60),
       owner_address  varchar(255),
       default_rib    smallint NOT NULL DEFAULT 0,
    +  
       -- For BAN direct debit feature  
       rum            varchar(32),	 				-- RUM value to use for SEPA generation
       date_rum		 date,							-- Date of mandate
       frstrecur      varchar(16) default 'FRST',    -- 'FRST' or 'RECUR'
    +  
       --For credit card
       last_four varchar(4),										-- last 4
       card_type varchar(255),									-- card type 'VISA', 'MC' , ...
    @@ -52,6 +54,7 @@ create table llx_societe_rib
       exp_date_month INTEGER,
       exp_date_year INTEGER,
       country_code varchar(10),
    +  
       --For Paypal
       approved INTEGER DEFAULT 0,
       email varchar(255),
    @@ -60,9 +63,12 @@ create table llx_societe_rib
       preapproval_key varchar(255),
       starting_date date,
       total_amount_of_all_payments double(24,8),
    +  
       --For Stripe
       stripe_card_ref varchar(128),								-- 'card_...'
     
    +  comment        varchar(255),
    +  ipaddress      varchar(68),
       status integer NOT NULL DEFAULT 1,						-- 1=ACTIVE, 0=IN_TRASH
       import_key     varchar(14)    -- import key
     )ENGINE=innodb;
    diff --git a/htdocs/install/mysql/tables/llx_socpeople.sql b/htdocs/install/mysql/tables/llx_socpeople.sql
    index 51848b33b48..00456e3ece6 100644
    --- a/htdocs/install/mysql/tables/llx_socpeople.sql
    +++ b/htdocs/install/mysql/tables/llx_socpeople.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2008      Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    @@ -41,10 +41,19 @@ create table llx_socpeople
       phone_mobile		varchar(30),
       fax				varchar(30),
       email				varchar(255),
    +  
       jabberid			varchar(255),
       skype				varchar(255),
    +  twitter			varchar(255),                        		--
    +  facebook			varchar(255),                        		--
    +  instagram                varchar(255),                        		--
    +  snapchat                 varchar(255),                        		--
    +  googleplus               varchar(255),                        		--
    +  youtube                  varchar(255),                        		--
    +  whatsapp                 varchar(255),                        		--
    +  
       photo				varchar(255),
    -  no_email			smallint NOT NULL DEFAULT 0,
    +  no_email			smallint NOT NULL DEFAULT 0,				-- deprecated. Use table llx_mailing_unsubscribe instead
       priv				smallint NOT NULL DEFAULT 0,
       fk_user_creat		integer DEFAULT 0,							-- user qui a creel'enregistrement
       fk_user_modif		integer,
    diff --git a/htdocs/install/mysql/tables/llx_stock_mouvement.sql b/htdocs/install/mysql/tables/llx_stock_mouvement.sql
    index 1e78e7a9820..fdeab913268 100644
    --- a/htdocs/install/mysql/tables/llx_stock_mouvement.sql
    +++ b/htdocs/install/mysql/tables/llx_stock_mouvement.sql
    @@ -33,6 +33,7 @@ create table llx_stock_mouvement
       fk_user_author  integer,							-- Id user making movement
       label           varchar(255),						-- Comment on movement
       inventorycode   varchar(128),						-- Code used to group different movement line into one operation (may be an inventory, a mass picking)
    +  fk_project	  integer,
       fk_origin       integer,
       origintype      varchar(32),
       model_pdf       varchar(255)
    diff --git a/htdocs/install/mysql/tables/llx_subscription.sql b/htdocs/install/mysql/tables/llx_subscription.sql
    index 8d220ed9059..cb53d9405e9 100644
    --- a/htdocs/install/mysql/tables/llx_subscription.sql
    +++ b/htdocs/install/mysql/tables/llx_subscription.sql
    @@ -22,6 +22,7 @@ create table llx_subscription
       tms             timestamp,
       datec           datetime,
       fk_adherent     integer,
    +  fk_type         integer,
       dateadh         datetime,
       datef           date,
       subscription    double(24,8),
    diff --git a/htdocs/install/mysql/tables/llx_supplier_proposaldet.key.sql b/htdocs/install/mysql/tables/llx_supplier_proposaldet.key.sql
    index e6af3c7e515..cb6064c61f2 100644
    --- a/htdocs/install/mysql/tables/llx_supplier_proposaldet.key.sql
    +++ b/htdocs/install/mysql/tables/llx_supplier_proposaldet.key.sql
    @@ -1,5 +1,5 @@
     -- ===================================================================
    --- Copyright (C) 2009-2011 Regis Houssin  <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009-2011 Regis Houssin  <regis.houssin@inodbox.com>
     -- Copyright (C) 2012      Cédric Salvador      <csalvador@gpcsolutions.fr>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_takepos_floor_tables.sql b/htdocs/install/mysql/tables/llx_takepos_floor_tables.sql
    new file mode 100644
    index 00000000000..c8cae17b5a2
    --- /dev/null
    +++ b/htdocs/install/mysql/tables/llx_takepos_floor_tables.sql
    @@ -0,0 +1,26 @@
    +-- Copyright (C) 2018 SuperAdmin
    +--
    +-- 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
    +-- the Free Software Foundation, either version 3 of the License, or
    +-- (at your option) any later version.
    +--
    +-- This program is distributed in the hope that it will be useful,
    +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
    +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +-- GNU General Public License for more details.
    +--
    +-- You should have received a copy of the GNU General Public License
    +-- along with this program.  If not, see http://www.gnu.org/licenses/.
    +
    +
    +CREATE TABLE llx_takepos_floor_tables(
    +    -- BEGIN MODULEBUILDER FIELDS
    +    rowid integer AUTO_INCREMENT PRIMARY KEY,
    +    entity integer DEFAULT 1 NOT NULL,
    +    label varchar(255),
    +    leftpos float,
    +    toppos float,
    +    floor smallint
    +    -- END MODULEBUILDER FIELDS
    +) ENGINE=innodb;
    diff --git a/htdocs/install/mysql/tables/llx_ticket_msg.key.sql b/htdocs/install/mysql/tables/llx_ticket_msg.key.sql
    index 6998b798c84..f6ff6fc5e88 100755
    --- a/htdocs/install/mysql/tables/llx_ticket_msg.key.sql
    +++ b/htdocs/install/mysql/tables/llx_ticket_msg.key.sql
    @@ -14,4 +14,4 @@
     -- You should have received a copy of the GNU General Public License
     -- along with this program.  If not, see <http://www.gnu.org/licenses/>.
     
    -ALTER TABLE llx_ticket_msg ADD CONSTRAINT fk_ticket_msg_fk_track_id FOREIGN KEY (fk_track_id) REFERENCES llx_ticket (track_id);
    +--ALTER TABLE llx_ticket_msg ADD CONSTRAINT fk_ticket_msg_fk_track_id FOREIGN KEY (fk_track_id) REFERENCES llx_ticket (track_id);
    diff --git a/htdocs/install/mysql/tables/llx_tva.sql b/htdocs/install/mysql/tables/llx_tva.sql
    index 34ab53a5b22..56678f4ffa6 100644
    --- a/htdocs/install/mysql/tables/llx_tva.sql
    +++ b/htdocs/install/mysql/tables/llx_tva.sql
    @@ -1,6 +1,6 @@
     -- ===================================================================
     -- Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_user.key.sql b/htdocs/install/mysql/tables/llx_user.key.sql
    index 82d5f28ef06..eaed60a3b0b 100644
    --- a/htdocs/install/mysql/tables/llx_user.key.sql
    +++ b/htdocs/install/mysql/tables/llx_user.key.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2006-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2007      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2007      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_user.sql b/htdocs/install/mysql/tables/llx_user.sql
    index 2ecb52511d4..90dc8a835ef 100644
    --- a/htdocs/install/mysql/tables/llx_user.sql
    +++ b/htdocs/install/mysql/tables/llx_user.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2006-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2007-2013 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2007-2013 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    @@ -49,11 +49,21 @@ create table llx_user
       fk_country        integer        DEFAULT 0,
       birth             date,						-- birthday
       job				varchar(128),
    -  skype             varchar(255),
       office_phone      varchar(20),
       office_fax        varchar(20),
       user_mobile       varchar(20),
       email             varchar(255),
    +  
    +  jabberid			varchar(255),
    +  skype				varchar(255),
    +  twitter			varchar(255),                        		--
    +  facebook			varchar(255),                        		--
    +  instagram                varchar(255),                        		--
    +  snapchat                 varchar(255),                        		--
    +  googleplus               varchar(255),                        		--
    +  youtube                  varchar(255),                        		--
    +  whatsapp                 varchar(255),                        		--
    +  
       signature         text DEFAULT NULL,
       admin             smallint DEFAULT 0,
       module_comm       smallint DEFAULT 1,
    @@ -84,6 +94,7 @@ create table llx_user
       salary			double(24,8),				-- denormalized value coming from llx_user_employment
       salaryextra		double(24,8),				-- denormalized value coming from llx_user_employment
       dateemployment	date,						-- denormalized value coming from llx_user_employment
    +  dateemploymentend	date,						-- denormalized value coming from llx_user_employment
       weeklyhours		double(16,8),				-- denormalized value coming from llx_user_employment
     
       import_key        varchar(14),				-- import key
    diff --git a/htdocs/install/mysql/tables/llx_user_extrafields.key.sql b/htdocs/install/mysql/tables/llx_user_extrafields.key.sql
    index 3c3d6e8df7f..387934ba9be 100644
    --- a/htdocs/install/mysql/tables/llx_user_extrafields.key.sql
    +++ b/htdocs/install/mysql/tables/llx_user_extrafields.key.sql
    @@ -1,7 +1,7 @@
     -- ===================================================================
     -- Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     -- Copyright (C) 2011      Laurent Destailleur  <eldy@users.sourceforge.net>
     --
     -- This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/install/mysql/tables/llx_user_extrafields.sql b/htdocs/install/mysql/tables/llx_user_extrafields.sql
    index 9adb684da1b..b3c47a0cf0d 100644
    --- a/htdocs/install/mysql/tables/llx_user_extrafields.sql
    +++ b/htdocs/install/mysql/tables/llx_user_extrafields.sql
    @@ -1,7 +1,7 @@
     -- ===================================================================
     -- Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
    --- Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_user_param.key.sql b/htdocs/install/mysql/tables/llx_user_param.key.sql
    index 976fea1195b..b37bd16f3f8 100644
    --- a/htdocs/install/mysql/tables/llx_user_param.key.sql
    +++ b/htdocs/install/mysql/tables/llx_user_param.key.sql
    @@ -1,5 +1,5 @@
     -- ============================================================================
    --- Copyright (C) 2009 Regis Houssin <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009 Regis Houssin <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_user_param.sql b/htdocs/install/mysql/tables/llx_user_param.sql
    index 365f49b060d..7738cab93de 100644
    --- a/htdocs/install/mysql/tables/llx_user_param.sql
    +++ b/htdocs/install/mysql/tables/llx_user_param.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_user_rights.key.sql b/htdocs/install/mysql/tables/llx_user_rights.key.sql
    index 8fae1c1a160..51f95566651 100644
    --- a/htdocs/install/mysql/tables/llx_user_rights.key.sql
    +++ b/htdocs/install/mysql/tables/llx_user_rights.key.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
     -- Copyright (C) 2005	Laurent Destailleur		<eldy@users.sourceforge.net>
    --- Copyright (C) 2017	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2017	Regis Houssin			<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_user_rights.sql b/htdocs/install/mysql/tables/llx_user_rights.sql
    index cedfa8a00c9..092243b2c46 100644
    --- a/htdocs/install/mysql/tables/llx_user_rights.sql
    +++ b/htdocs/install/mysql/tables/llx_user_rights.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    --- Copyright (C) 2017	Regis Houssin			<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2017	Regis Houssin			<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_usergroup.key.sql b/htdocs/install/mysql/tables/llx_usergroup.key.sql
    index cc0f28bd9d2..c3ee77bd62e 100644
    --- a/htdocs/install/mysql/tables/llx_usergroup.key.sql
    +++ b/htdocs/install/mysql/tables/llx_usergroup.key.sql
    @@ -1,5 +1,5 @@
     -- ============================================================================
    --- Copyright (C) 2009 Regis Houssin  <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2009 Regis Houssin  <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_usergroup.sql b/htdocs/install/mysql/tables/llx_usergroup.sql
    index f82c21eae87..cde18968d43 100644
    --- a/htdocs/install/mysql/tables/llx_usergroup.sql
    +++ b/htdocs/install/mysql/tables/llx_usergroup.sql
    @@ -1,7 +1,7 @@
     -- ============================================================================
     -- Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
     -- Copyright (C) 2005-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    --- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_usergroup_rights.key.sql b/htdocs/install/mysql/tables/llx_usergroup_rights.key.sql
    index f08a6f62637..88da9c98875 100644
    --- a/htdocs/install/mysql/tables/llx_usergroup_rights.key.sql
    +++ b/htdocs/install/mysql/tables/llx_usergroup_rights.key.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2005	Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2017	Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2017	Regis Houssin		<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_usergroup_rights.sql b/htdocs/install/mysql/tables/llx_usergroup_rights.sql
    index e8a3af37e7c..a139dcc6317 100644
    --- a/htdocs/install/mysql/tables/llx_usergroup_rights.sql
    +++ b/htdocs/install/mysql/tables/llx_usergroup_rights.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2005	Laurent Destailleur	<eldy@users.sourceforge.net>
    --- Copyright (C) 2017	Regis Houssin		<regis.houssin@capnetworks.com>
    +-- Copyright (C) 2017	Regis Houssin		<regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_usergroup_user.key.sql b/htdocs/install/mysql/tables/llx_usergroup_user.key.sql
    index c88ac4004fc..d05b45070d1 100644
    --- a/htdocs/install/mysql/tables/llx_usergroup_user.key.sql
    +++ b/htdocs/install/mysql/tables/llx_usergroup_user.key.sql
    @@ -1,5 +1,5 @@
     -- ============================================================================
    --- Copyright (C) 2011 Regis Houssin  <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011 Regis Houssin  <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_usergroup_user.sql b/htdocs/install/mysql/tables/llx_usergroup_user.sql
    index ce29b211299..335cd58baac 100644
    --- a/htdocs/install/mysql/tables/llx_usergroup_user.sql
    +++ b/htdocs/install/mysql/tables/llx_usergroup_user.sql
    @@ -1,6 +1,6 @@
     -- ============================================================================
     -- Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    --- Copyright (C) 2011 Regis Houssin        <regis.houssin@capnetworks.com>
    +-- Copyright (C) 2011 Regis Houssin        <regis.houssin@inodbox.com>
     --
     -- 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
    diff --git a/htdocs/install/mysql/tables/llx_website.sql b/htdocs/install/mysql/tables/llx_website.sql
    index dd35116a91f..697e76b22a2 100644
    --- a/htdocs/install/mysql/tables/llx_website.sql
    +++ b/htdocs/install/mysql/tables/llx_website.sql
    @@ -24,12 +24,14 @@ CREATE TABLE llx_website
     	entity        integer NOT NULL DEFAULT 1,
     	ref	          varchar(128) NOT NULL,
     	description   varchar(255),
    +	maincolor     varchar(16),
    +	maincolorbis  varchar(16),
     	status		  integer DEFAULT 1,
     	fk_default_home integer, 
     	virtualhost   varchar(255), 
    -    fk_user_create integer,
    -    fk_user_modif  integer,
    -    date_creation  datetime,
    -	tms            timestamp,
    -    import_key     varchar(14)      -- import key	
    +    fk_user_creat integer,
    +    fk_user_modif integer,
    +    date_creation datetime,
    +	tms           timestamp,
    +    import_key    varchar(14)      -- import key	
     ) ENGINE=innodb;
    diff --git a/htdocs/install/mysql/tables/llx_website_page.sql b/htdocs/install/mysql/tables/llx_website_page.sql
    index c795fa254dc..6d32805dc3f 100644
    --- a/htdocs/install/mysql/tables/llx_website_page.sql
    +++ b/htdocs/install/mysql/tables/llx_website_page.sql
    @@ -26,16 +26,17 @@ CREATE TABLE llx_website_page
     	aliasalt      varchar(255),
     	title         varchar(255),						
     	description   varchar(255),						
    +	image         varchar(255),						
     	keywords      varchar(255),
     	lang          varchar(6),
     	fk_page       integer,          
     	htmlheader	  text,
     	content		  mediumtext,		-- text is not enough in size
         status        integer DEFAULT 1,
    -	grabbed_from   varchar(255),
    -    fk_user_create integer,
    -    fk_user_modif  integer,
    -    date_creation  datetime,
    -	tms            timestamp,
    -    import_key     varchar(14)      -- import key
    +	grabbed_from  varchar(255),
    +    fk_user_creat integer,
    +    fk_user_modif integer,
    +    date_creation datetime,
    +	tms           timestamp,
    +    import_key    varchar(14)      -- import key
     ) ENGINE=innodb;
    diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php
    index 1fbda8e8abb..888daa4abe2 100644
    --- a/htdocs/install/repair.php
    +++ b/htdocs/install/repair.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Raphaël Doursenaud   <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -549,11 +549,11 @@ if ($ok && GETPOST('clean_menus','alpha'))
     								dol_print_error($db);
     							}
     							else
    -								print ' - <font class="warning">Cleaned</font>';
    +								print ' - <span class="warning">Cleaned</span>';
     						}
     						else
     						{
    -							print ' - <font class="warning">Canceled (test mode)</font>';
    +							print ' - <span class="warning">Canceled (test mode)</span>';
     						}
     					}
     					else
    @@ -648,7 +648,6 @@ if ($ok && GETPOST('clean_orphelin_dir','alpha'))
                 $object_instance=new ChargeSociales($db);
             }
     
    -        $var=true;
             foreach($filearray as $key => $file)
             {
                 if (!is_dir($file['name'])
    @@ -898,7 +897,6 @@ if ($ok && GETPOST('set_empty_time_spent_amount','alpha'))
         {
             dol_print_error($db);
         }
    -
     }
     
     
    @@ -984,11 +982,11 @@ if ($ok && GETPOST('force_disable_of_modules_not_found','alpha'))
     	                                    dol_print_error($db);
     	                                }
     	                                else
    -	                                    print ' - <font class="warning">Cleaned</font>';
    +	                                    print ' - <span class="warning">Cleaned</span>';
     	                            }
     	                            else
     	                            {
    -	                                print ' - <font class="warning">Canceled (test mode)</font>';
    +	                                print ' - <span class="warning">Canceled (test mode)</span>';
     	                            }
     	                        }
     	                        else
    diff --git a/htdocs/install/step1.php b/htdocs/install/step1.php
    index 2ecc8494ad1..48fdb15b655 100644
    --- a/htdocs/install/step1.php
    +++ b/htdocs/install/step1.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
      * Copyright (C) 2004       Sebastien Di Cintio     <sdicintio@ressource-toi.org>
    - * Copyright (C) 2005-2011  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2015-2016  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -36,9 +36,7 @@ $action=GETPOST('action','aZ09')?GETPOST('action','aZ09'):(empty($argv[1])?'':$a
     $setuplang=GETPOST('selectlang','aZ09',3)?GETPOST('selectlang','aZ09',3):(empty($argv[2])?'auto':$argv[2]);
     $langs->setDefaultLang($setuplang);
     
    -$langs->load("admin");
    -$langs->load("install");
    -$langs->load("errors");
    +$langs->loadLangs(array("admin", "install", "errors"));
     
     // Dolibarr pages directory
     $main_dir = GETPOST('main_dir')?GETPOST('main_dir'):(empty($argv[3])?'':$argv[3]);
    @@ -46,7 +44,7 @@ $main_dir = GETPOST('main_dir')?GETPOST('main_dir'):(empty($argv[3])?'':$argv[3]
     $main_data_dir = GETPOST('main_data_dir') ? GETPOST('main_data_dir') : (empty($argv[4])? ($main_dir . '/documents') :$argv[4]);
     // Dolibarr root URL
     $main_url = GETPOST('main_url')?GETPOST('main_url'):(empty($argv[5])?'':$argv[5]);
    -// Database login informations
    +// Database login information
     $userroot=GETPOST('db_user_root','alpha')?GETPOST('db_user_root','alpha'):(empty($argv[6])?'':$argv[6]);
     $passroot=GETPOST('db_pass_root','none')?GETPOST('db_pass_root','none'):(empty($argv[7])?'':$argv[7]);
     // Database server
    @@ -68,18 +66,18 @@ $main_alt_dir_name = ((GETPOST("main_alt_dir_name",'alpha') && GETPOST("main_alt
     
     session_start();    // To be able to keep info into session (used for not losing password during navigation. The password must not transit through parameters)
     
    -// Save a flag to tell to restore input value if we do back
    +// Save a flag to tell to restore input value if we go back
     $_SESSION['dol_save_pass']=$db_pass;
     //$_SESSION['dol_save_passroot']=$passroot;
     
    -// Now we load forced value from install.forced.php file.
    +// Now we load forced values from install.forced.php file.
     $useforcedwizard=false;
     $forcedfile="./install.forced.php";
     if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
     if (@file_exists($forcedfile)) {
     	$useforcedwizard = true;
     	include_once $forcedfile;
    -	// If forced install is enabled, let's replace post values. These are empty because form fields are disabled.
    +	// If forced install is enabled, replace the post values. These are empty because form fields are disabled.
     	if ($force_install_noedit) {
     		$main_dir = detect_dolibarr_main_document_root();
     		if (!empty($force_install_main_data_root)) {
    @@ -204,7 +202,7 @@ if (! $error) {
         $result=@include_once $main_dir."/core/db/".$db_type.'.class.php';
         if ($result)
         {
    -        // If we ask database or user creation we need to connect as root, so we need root login
    +        // If we require database or user creation we need to connect as root, so we need root login credentials
             if (!empty($db_create_database) && !$userroot) {
                 print '<div class="error">'.$langs->trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$db_name).'</div>';
                 print '<br>';
    @@ -397,7 +395,7 @@ if (! $error && $db->connected && $action == "set")
                 print "<tr><td>".$langs->trans("ErrorDirDoesNotExists",$main_data_dir);
                 print ' '.$langs->trans("YouMustCreateItAndAllowServerToWrite");
                 print '</td><td>';
    -            print '<font class="error">'.$langs->trans("Error").'</font>';
    +            print '<span class="error">'.$langs->trans("Error").'</span>';
                 print "</td></tr>";
                 print '<tr><td colspan="2"><br>'.$langs->trans("CorrectProblemAndReloadPage",$_SERVER['PHP_SELF'].'?testget=ok').'</td></tr>';
                 $error++;
    @@ -420,7 +418,7 @@ if (! $error && $db->connected && $action == "set")
                     }
                 }
     
    -            // Les documents sont en dehors de htdocs car ne doivent pas pouvoir etre telecharges en passant outre l'authentification
    +            // Documents are stored above the web pages root to prevent being downloaded without authentification
                 $dir=array();
                 $dir[] = $main_data_dir."/mycompany";
                 $dir[] = $main_data_dir."/medias";
    @@ -431,7 +429,7 @@ if (! $error && $db->connected && $action == "set")
                 $dir[] = $main_data_dir."/produit";
                 $dir[] = $main_data_dir."/doctemplates";
     
    -            // Boucle sur chaque repertoire de dir[] pour les creer s'ils nexistent pas
    +            // Loop on each directory of dir [] to create them if they do not exist
                 $num=count($dir);
                 for ($i = 0; $i < $num; $i++)
                 {
    @@ -469,7 +467,7 @@ if (! $error && $db->connected && $action == "set")
                     print "<tr><td>".$langs->trans("ErrorDirDoesNotExists",$main_data_dir);
                     print ' '.$langs->trans("YouMustCreateItAndAllowServerToWrite");
                     print '</td><td>';
    -                print '<font class="error">'.$langs->trans("Error").'</font>';
    +                print '<span class="error">'.$langs->trans("Error").'</span>';
                     print "</td></tr>";
                     print '<tr><td colspan="2"><br>'.$langs->trans("CorrectProblemAndReloadPage",$_SERVER['PHP_SELF'].'?testget=ok').'</td></tr>';
                 }
    @@ -485,8 +483,8 @@ if (! $error && $db->connected && $action == "set")
                 		'products' => 'product',
                 		'projects' => 'project',
                 		'proposals' => 'proposal',
    -            		'shipment' => 'shipment',
    -            		'supplier_proposal' => 'supplier_proposal',
    +            		'shipments' => 'shipment',
    +            		'supplier_proposals' => 'supplier_proposal',
                 		'tasks' => 'task_summary',
                 		'thirdparties' => 'thirdparty',
                 		'usergroups' => 'usergroups',
    @@ -518,7 +516,7 @@ if (! $error && $db->connected && $action == "set")
             // Save old conf file on disk
             if (file_exists("$conffile"))
             {
    -            // We must ignore errors as an existing old file may already exists and not be replacable or
    +            // We must ignore errors as an existing old file may already exist and not be replaceable or
                 // the installer (like for ubuntu) may not have permission to create another file than conf.php.
                 // Also no other process must be able to read file or we expose the new file, so content with password.
                 @dol_copy($conffile, $conffile.'.old', '0400');
    @@ -538,7 +536,7 @@ if (! $error && $db->connected && $action == "set")
             print '</td>';
             print '<td><img src="../theme/eldy/img/tick.png" alt="Ok"></td></tr>';
     
    -        // Si creation utilisateur admin demandee, on le cree
    +        // Create database user if requested
             if (isset($db_create_user) && ($db_create_user == "1" || $db_create_user == "on")) {
                 dolibarr_install_syslog("step1: create database user: " . $dolibarr_main_db_user);
     
    @@ -557,7 +555,7 @@ if (! $error && $db->connected && $action == "set")
                     $databasefortest='master';
                 }
     
    -            // Creation handler de base, verification du support et connexion
    +            // Check database connection
     
                 $db=getDoliDBInstance($conf->db->type,$conf->db->host,$userroot,$passroot,$databasefortest,$conf->db->port);
     
    @@ -628,7 +626,7 @@ if (! $error && $db->connected && $action == "set")
                         print '<td><img src="../theme/eldy/img/error.png" alt="Error"></td>';
                         print '</tr>';
     
    -                    // Affiche aide diagnostique
    +                    // warning message due to connection failure
                         print '<tr><td colspan="2"><br>';
                         print $langs->trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$dolibarr_main_db_user,$dolibarr_main_db_host,$userroot);
                         print '<br>';
    @@ -639,10 +637,10 @@ if (! $error && $db->connected && $action == "set")
                         $error++;
                     }
                 }
    -        }   // Fin si "creation utilisateur"
    +        }   // end of user account creation
     
     
    -        // If database creation is asked, we create it
    +        // If database creation was asked, we create it
             if (!$error && (isset($db_create_database) && ($db_create_database == "1" || $db_create_database == "on"))) {
                 dolibarr_install_syslog("step1: create database: " . $dolibarr_main_db_name . " " . $dolibarr_main_db_character_set . " " . $dolibarr_main_db_collation . " " . $dolibarr_main_db_user);
             	$newdb=getDoliDBInstance($conf->db->type,$conf->db->host,$userroot,$passroot,'',$conf->db->port);
    @@ -671,7 +669,7 @@ if (! $error && $db->connected && $action == "set")
                     }
                     else
                     {
    -                    // Affiche aide diagnostique
    +                    // warning message
                         print '<tr><td colspan="2"><br>';
                         print $langs->trans("ErrorFailedToCreateDatabase",$dolibarr_main_db_name).'<br>';
                         print $newdb->lasterror().'<br>';
    @@ -692,7 +690,7 @@ if (! $error && $db->connected && $action == "set")
                     print '<td><img src="../theme/eldy/img/error.png" alt="Error"></td>';
                     print '</tr>';
     
    -                // Affiche aide diagnostique
    +                // warning message
                     print '<tr><td colspan="2"><br>';
                     print $langs->trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$dolibarr_main_db_user,$dolibarr_main_db_host,$userroot);
                     print '<br>';
    @@ -702,7 +700,7 @@ if (! $error && $db->connected && $action == "set")
     
                     $error++;
                 }
    -        }   // Fin si "creation database"
    +        }   // end of create database
     
     
             // We test access with dolibarr database user (not admin)
    @@ -723,7 +721,7 @@ if (! $error && $db->connected && $action == "set")
                     print '<img src="../theme/eldy/img/tick.png" alt="Ok">';
                     print "</td></tr>";
     
    -                // si acces serveur ok et acces base ok, tout est ok, on ne va pas plus loin, on a meme pas utilise le compte root.
    +                // server access ok, basic access ok
                     if ($db->database_selected)
                     {
                         dolibarr_install_syslog("step1: connection to database " . $conf->db->name . " by user " . $conf->db->user . " ok");
    @@ -746,7 +744,7 @@ if (! $error && $db->connected && $action == "set")
                         print '<img src="../theme/eldy/img/error.png" alt="Error">';
                         print "</td></tr>";
     
    -                    // Affiche aide diagnostique
    +                    // warning message
                         print '<tr><td colspan="2"><br>';
                         print $langs->trans('CheckThatDatabasenameIsCorrect',$dolibarr_main_db_name).'<br>';
                         print $langs->trans('IfAlreadyExistsCheckOption').'<br>';
    @@ -766,7 +764,7 @@ if (! $error && $db->connected && $action == "set")
                     print '<img src="../theme/eldy/img/error.png" alt="Error">';
                     print "</td></tr>";
     
    -                // Affiche aide diagnostique
    +                // warning message
                     print '<tr><td colspan="2"><br>';
                     print $langs->trans("ErrorConnection",$conf->db->host,$conf->db->name,$conf->db->user);
                     print $langs->trans('IfLoginDoesNotExistsCheckCreateUser').'<br>';
    @@ -1022,7 +1020,7 @@ function write_conf_file($conffile)
     
     		if (file_exists("$conffile"))
     		{
    -			include $conffile;	// On force rechargement. Ne pas mettre include_once !
    +			include $conffile;	// force config reload, do not put include_once
     			conf($dolibarr_main_document_root);
     
     			print "<tr><td>";
    diff --git a/htdocs/install/step2.php b/htdocs/install/step2.php
    index 30b3ff7d64f..4b12ba49432 100644
    --- a/htdocs/install/step2.php
    +++ b/htdocs/install/step2.php
    @@ -46,8 +46,7 @@ $action=GETPOST('action','aZ09')?GETPOST('action','aZ09'):(empty($argv[1])?'':$a
     $setuplang=GETPOST('selectlang','aZ09',3)?GETPOST('selectlang','aZ09',3):(empty($argv[2])?'auto':$argv[2]);
     $langs->setDefaultLang($setuplang);
     
    -$langs->load("admin");
    -$langs->load("install");
    +$langs->loadLangs(array("admin", "install"));
     
     $choix=0;
     if ($dolibarr_main_db_type == "mysqli") $choix=1;
    @@ -58,7 +57,7 @@ if ($dolibarr_main_db_type == "sqlite3")  $choix=5;
     
     //if (empty($choix)) dol_print_error('','Database type '.$dolibarr_main_db_type.' not supported into step2.php page');
     
    -// Now we load forced value from install.forced.php file.
    +// Now we load forced values from install.forced.php file.
     $useforcedwizard=false;
     $forcedfile="./install.forced.php";
     if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
    @@ -67,7 +66,7 @@ if (@file_exists($forcedfile)) {
     	include_once $forcedfile;
     }
     
    -dolibarr_install_syslog("--- step2: entering step2.php page");
    +dolibarr_install_syslog("- step2: entering step2.php page");
     
     
     /*
    @@ -88,7 +87,7 @@ if ($action == "set")
     {
         print '<h3><img class="valigntextbottom" src="../theme/common/octicons/build/svg/database.svg" width="20" alt="Database"> '.$langs->trans("Database").'</h3>';
     
    -    print '<table cellspacing="0" style="padding: 4px 4px 4px 0px" border="0" width="100%">';
    +    print '<table cellspacing="0" style="padding: 4px 4px 4px 0" border="0" width="100%">';
         $error=0;
     
         $db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
    @@ -237,7 +236,7 @@ if ($action == "set")
                             print "<tr><td>".$langs->trans("CreateTableAndPrimaryKey",$name);
                             print "<br>\n".$langs->trans("Request").' '.$requestnb.' : '.$buffer.' <br>Executed query : '.$db->lastquery;
                             print "\n</td>";
    -                        print '<td><font class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</font></td></tr>';
    +                        print '<td><span class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</span></td></tr>';
                             $error++;
                         }
                     }
    @@ -246,7 +245,7 @@ if ($action == "set")
                 {
                     print "<tr><td>".$langs->trans("CreateTableAndPrimaryKey",$name);
                     print "</td>";
    -                print '<td><font class="error">'.$langs->trans("Error").' Failed to open file '.$dir.$file.'</td></tr>';
    +                print '<td><span class="error">'.$langs->trans("Error").' Failed to open file '.$dir.$file.'</span></td></tr>';
                     $error++;
                     dolibarr_install_syslog("step2: failed to open file " . $dir . $file, LOG_ERR);
                 }
    @@ -384,7 +383,7 @@ if ($action == "set")
                                     print "<tr><td>".$langs->trans("CreateOtherKeysForTable",$name);
                                     print "<br>\n".$langs->trans("Request").' '.$requestnb.' : '.$db->lastqueryerror();
                                     print "\n</td>";
    -                                print '<td><font class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</font></td></tr>';
    +                                print '<td><span class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</span></td></tr>';
                                     $error++;
                                 }
                             }
    @@ -395,7 +394,7 @@ if ($action == "set")
                 {
                     print "<tr><td>".$langs->trans("CreateOtherKeysForTable",$name);
                     print "</td>";
    -                print '<td><font class="error">'.$langs->trans("Error")." Failed to open file ".$dir.$file."</font></td></tr>";
    +                print '<td><span class="error">'.$langs->trans("Error")." Failed to open file ".$dir.$file."</span></td></tr>";
                     $error++;
                     dolibarr_install_syslog("step2: failed to open file " . $dir . $file, LOG_ERR);
                 }
    @@ -417,7 +416,7 @@ if ($action == "set")
          ***************************************************************************************/
         if ($ok && $createfunctions)
         {
    -        // For this file, we use directory according to database type
    +        // For this file, we use a directory according to database type
             if ($choix==1) $dir = "mysql/functions/";
             elseif ($choix==2) $dir = "pgsql/functions/";
             elseif ($choix==3) $dir = "mssql/functions/";
    @@ -473,7 +472,7 @@ if ($action == "set")
                                 print "<tr><td>".$langs->trans("FunctionsCreation");
                                 print "<br>\n".$langs->trans("Request").' '.$requestnb.' : '.$buffer;
                                 print "\n</td>";
    -                            print '<td><font class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</font></td></tr>';
    +                            print '<td><span class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</span></td></tr>';
                                 $error++;
                             }
                         }
    @@ -490,7 +489,6 @@ if ($action == "set")
                     print '<td><img src="../theme/eldy/img/error.png" alt="Error"></td></tr>';
                     $ok = 1 ;
                 }
    -
             }
         }
     
    @@ -594,7 +592,7 @@ if ($action == "set")
                             {
                                 $ok = 0;
                                 $okallfile = 0;
    -                            print '<font class="error">'.$langs->trans("ErrorSQL")." : ".$db->lasterrno()." - ".$db->lastqueryerror()." - ".$db->lasterror()."</font><br>";
    +                            print '<span class="error">'.$langs->trans("ErrorSQL")." : ".$db->lasterrno()." - ".$db->lastqueryerror()." - ".$db->lasterror()."</span><br>";
                             }
                         }
                     }
    @@ -627,7 +625,7 @@ $ret=0;
     if (!$ok && isset($argv[1])) $ret=1;
     dolibarr_install_syslog("Exit ".$ret);
     
    -dolibarr_install_syslog("--- step2: end");
    +dolibarr_install_syslog("- step2: end");
     
     pFooter($ok?0:1,$setuplang);
     
    @@ -635,4 +633,3 @@ if (isset($db) && is_object($db)) $db->close();
     
     // Return code if ran from command line
     if ($ret) exit($ret);
    -
    diff --git a/htdocs/install/step4.php b/htdocs/install/step4.php
    index 92bcb3dc1a7..7a7b4e464fa 100644
    --- a/htdocs/install/step4.php
    +++ b/htdocs/install/step4.php
    @@ -35,8 +35,7 @@ global $langs;
     $setuplang=GETPOST('selectlang','aZ09',3)?GETPOST('selectlang','aZ09',3):(empty($argv[1])?'auto':$argv[1]);
     $langs->setDefaultLang($setuplang);
     
    -$langs->load("admin");
    -$langs->load("install");
    +$langs->loadLangs(array("admin", "install"));
     
     // Now we load forced value from install.forced.php file.
     $useforcedwizard=false;
    @@ -47,7 +46,7 @@ if (@file_exists($forcedfile)) {
     	include_once $forcedfile;
     }
     
    -dolibarr_install_syslog("--- step4: entering step4.php page");
    +dolibarr_install_syslog("- step4: entering step4.php page");
     
     $error=0;
     $ok = 0;
    @@ -74,18 +73,18 @@ print '<h3><img class="valigntextbottom" src="../theme/common/octicons/build/svg
     print $langs->trans("LastStepDesc").'<br><br>';
     
     
    -print '<table cellspacing="0" cellpadding="2" width="100%">';
    +print '<table cellspacing="0" cellpadding="2">';
     
     $db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
     
     if ($db->ok)
     {
    -    print '<tr><td>'.$langs->trans("Login").' :</td><td>';
    -	print '<input name="login" type="text" value="' . (!empty($_GET["login"]) ? GETPOST("login") : (isset($force_install_dolibarrlogin) ? $force_install_dolibarrlogin : '')) . '"' . (@$force_install_noedit == 2 && $force_install_dolibarrlogin !== null ? ' disabled' : '') . '></td></tr>';
    -    print '<tr><td>'.$langs->trans("Password").' :</td><td>';
    -    print '<input type="password" name="pass"></td></tr>';
    -    print '<tr><td>'.$langs->trans("PasswordAgain").' :</td><td>';
    -    print '<input type="password" name="pass_verif"></td></tr>';
    +    print '<tr><td><label for="login">'.$langs->trans("Login").' :</label></td><td>';
    +	print '<input id="login" name="login" type="text" value="' . (!empty($_GET["login"]) ? GETPOST("login") : (isset($force_install_dolibarrlogin) ? $force_install_dolibarrlogin : '')) . '"' . (@$force_install_noedit == 2 && $force_install_dolibarrlogin !== null ? ' disabled' : '') . '></td></tr>';
    +    print '<tr><td><label for="pass">'.$langs->trans("Password").' :</label></td><td>';
    +    print '<input type="password" id="pass" name="pass"></td></tr>';
    +    print '<tr><td><label for="pass_verif">'.$langs->trans("PasswordAgain").' :</label></td><td>';
    +    print '<input type="password" id="pass_verif" name="pass_verif"></td></tr>';
         print '</table>';
     
         if (isset($_GET["error"]) && $_GET["error"] == 1)
    @@ -110,15 +109,13 @@ if ($db->ok)
             print '<div class="error">'.$langs->trans("PleaseTypeALogin").'</div>';
             $error=0;	// We show button
         }
    -
     }
     
    -
     $ret=0;
     if ($error && isset($argv[1])) $ret=1;
     dolibarr_install_syslog("Exit ".$ret);
     
    -dolibarr_install_syslog("--- step4: end");
    +dolibarr_install_syslog("- step4: end");
     
     pFooter($error,$setuplang);
     
    diff --git a/htdocs/install/step5.php b/htdocs/install/step5.php
    index 79fead3c51d..b39f67dd3ba 100644
    --- a/htdocs/install/step5.php
    +++ b/htdocs/install/step5.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2004-2017  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
      * Copyright (C) 2004       Sebastien DiCintio      <sdicintio@ressource-toi.org>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2015-2016  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -23,7 +23,7 @@
     /**
      *       \file      htdocs/install/step5.php
      *       \ingroup   install
    - *       \brief     Last page of upgrade or install process
    + *       \brief     Last page of upgrade / install process
      */
     
     include_once 'inc.php';
    @@ -52,12 +52,12 @@ if (! empty($action) && preg_match('/upgrade/i', $action))	// If it's an old upg
         }
     }
     
    -$langs->load("admin");
    -$langs->load("install");
    +$langs->loadLangs(array("admin", "install"));
     
     $login = GETPOST('login', 'alpha')?GETPOST('login', 'alpha'):(empty($argv[5])?'':$argv[5]);
     $pass = GETPOST('pass', 'alpha')?GETPOST('pass', 'alpha'):(empty($argv[6])?'':$argv[6]);
     $pass_verif = GETPOST('pass_verif', 'alpha')?GETPOST('pass_verif', 'alpha'):(empty($argv[7])?'':$argv[7]);
    +$force_install_lockinstall = (int) (! empty($force_install_lockinstall)?$force_install_lockinstall:(GETPOST('installlock','aZ09')?GETPOST('installlock','aZ09'):(empty($argv[8])?'':$argv[8])));
     
     $success=0;
     
    @@ -67,7 +67,7 @@ if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.fo
     if (@file_exists($forcedfile)) {
     	$useforcedwizard = true;
     	include_once $forcedfile;
    -	// If forced install is enabled, let's replace post values. These are empty because form fields are disabled.
    +	// If forced install is enabled, replace post values. These are empty because form fields are disabled.
     	if ($force_install_noedit == 2) {
     		if (!empty($force_install_dolibarrlogin)) {
     			$login = $force_install_dolibarrlogin;
    @@ -75,16 +75,15 @@ if (@file_exists($forcedfile)) {
     	}
     }
     
    -dolibarr_install_syslog("--- step5: entering step5.php page");
    +dolibarr_install_syslog("- step5: entering step5.php page");
     
     $error=0;
     
    -
     /*
      *	Actions
      */
     
    -// If install, check pass and pass_verif used to create admin account
    +// If install, check password and password_verification used to create admin account
     if ($action == "set") {
     	if ($pass <> $pass_verif) {
     		header("Location: step4.php?error=1&selectlang=$setuplang" . (isset($login) ? '&login=' . $login : ''));
    @@ -394,8 +393,8 @@ if ($action == "set" && $success)
         else
         {
             // If here MAIN_VERSION_LAST_UPGRADE is not empty
    -        print $langs->trans("VersionLastUpgrade").': <b><font class="ok">'.$conf->global->MAIN_VERSION_LAST_UPGRADE.'</font></b><br>';
    -        print $langs->trans("VersionProgram").': <b><font class="ok">'.DOL_VERSION.'</font></b><br>';
    +        print $langs->trans("VersionLastUpgrade").': <b><span class="ok">'.$conf->global->MAIN_VERSION_LAST_UPGRADE.'</span></b><br>';
    +        print $langs->trans("VersionProgram").': <b><span class="ok">'.DOL_VERSION.'</span></b><br>';
             print $langs->trans("MigrationNotFinished").'<br>';
             print "<br>";
     
    @@ -442,8 +441,8 @@ elseif (empty($action) || preg_match('/upgrade/i',$action))
         else
         {
             // If here MAIN_VERSION_LAST_UPGRADE is not empty
    -        print $langs->trans("VersionLastUpgrade").': <b><font class="ok">'.$conf->global->MAIN_VERSION_LAST_UPGRADE.'</font></b><br>';
    -        print $langs->trans("VersionProgram").': <b><font class="ok">'.DOL_VERSION.'</font></b>';
    +        print $langs->trans("VersionLastUpgrade").': <b><span class="ok">'.$conf->global->MAIN_VERSION_LAST_UPGRADE.'</span></b><br>';
    +        print $langs->trans("VersionProgram").': <b><span class="ok">'.DOL_VERSION.'</span></b>';
     
             print "<br>";
     
    @@ -457,17 +456,14 @@ else
         dol_print_error('','step5.php: unknown choice of action');
     }
     
    -
    -
     // Clear cache files
     clearstatcache();
     
    -
     $ret=0;
     if ($error && isset($argv[1])) $ret=1;
     dolibarr_install_syslog("Exit ".$ret);
     
    -dolibarr_install_syslog("--- step5: Dolibarr setup finished");
    +dolibarr_install_syslog("- step5: Dolibarr setup finished");
     
     pFooter(1,$setuplang);
     
    diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php
    index f6e1b535706..14856d8b6b7 100644
    --- a/htdocs/install/upgrade.php
    +++ b/htdocs/install/upgrade.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2015-2016  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -66,10 +66,7 @@ $versionto=GETPOST("versionto",'alpha',3)?GETPOST("versionto",'',3):(empty($argv
     $dirmodule=((GETPOST("dirmodule",'alpha',3) && GETPOST("dirmodule",'alpha',3) != 'ignoredbversion'))?GETPOST("dirmodule",'alpha',3):((empty($argv[3]) || $argv[3] == 'ignoredbversion')?'':$argv[3]);
     $ignoredbversion=(GETPOST('ignoredbversion','alpha',3)=='ignoredbversion')?GETPOST('ignoredbversion','alpha',3):((empty($argv[3]) || $argv[3] != 'ignoredbversion')?'':$argv[3]);
     
    -$langs->load("admin");
    -$langs->load("install");
    -$langs->load("other");
    -$langs->load("errors");
    +$langs->loadLangs(array("admin", "install", "other", "errors"));
     
     if ($dolibarr_main_db_type == "mysqli") $choix=1;
     if ($dolibarr_main_db_type == "pgsql") $choix=2;
    @@ -300,7 +297,7 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09
                 		{
                 			if ($db->lasterrno() != 'DB_ERROR_NOSUCHTABLE')
                 			{
    -            				print '<tr><td colspan="2"><font  class="error">'.$sql.' : '.$db->lasterror()."</font></td></tr>\n";
    +            				print '<tr><td colspan="2"><span class="error">'.$sql.' : '.$db->lasterror()."</font></td></tr>\n";
                 			}
                 		}
                 	}
    diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php
    index 9315769d756..cf6cbf28e45 100644
    --- a/htdocs/install/upgrade2.php
    +++ b/htdocs/install/upgrade2.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005       Marc Barilley / Ocebo   <marc@ocebo.com>
      * Copyright (C) 2005-2018  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2010       Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2015-2016  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
    @@ -73,10 +73,7 @@ $versionfrom=GETPOST("versionfrom",'alpha',3)?GETPOST("versionfrom",'alpha',3):(
     $versionto=GETPOST("versionto",'alpha',3)?GETPOST("versionto",'alpha',3):(empty($argv[2])?'':$argv[2]);
     $enablemodules=GETPOST("enablemodules",'alpha',3)?GETPOST("enablemodules",'alpha',3):(empty($argv[3])?'':$argv[3]);
     
    -$langs->load('admin');
    -$langs->load('install');
    -$langs->load("bills");
    -$langs->load("suppliers");
    +$langs->loadLangs(array("admin", "install", "bills", "suppliers"));
     
     if ($dolibarr_main_db_type == 'mysqli') $choix=1;
     if ($dolibarr_main_db_type == 'pgsql')  $choix=2;
    @@ -204,6 +201,8 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09
             $db->query($sql, 1);
             $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN dateemployment date';
             $db->query($sql, 1);
    +        $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN dateemploymentend date';
    +        $db->query($sql, 1);
             $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN default_range integer';
             $db->query($sql, 1);
             $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user ADD COLUMN default_c_exp_tax_cat integer';
    @@ -216,6 +215,8 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09
             $db->query($sql, 1);
             $sql = 'ALTER TABLE '.MAIN_DB_PREFIX."extrafields ADD COLUMN enabled varchar(255) DEFAULT '1'";
             $db->query($sql, 1);
    +        $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'extrafields ADD COLUMN help text';
    +        $db->query($sql, 1);
             $sql = 'ALTER TABLE '.MAIN_DB_PREFIX.'user_rights ADD COLUMN entity integer DEFAULT 1 NOT NULL';
             $db->query($sql, 1);
     
    @@ -440,6 +441,13 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09
             	migrate_rename_directories($db,$langs,$conf,'/contracts','/contract');
             }
     
    +        // Scripts for 9.0
    +        $afterversionarray=explode('.','8.0.9');
    +        $beforeversionarray=explode('.','9.0.9');
    +        if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0)
    +        {
    +        	migrate_user_photospath();
    +        }
         }
     
     	// Code executed only if migration is LAST ONE. Must always be done.
    @@ -2288,7 +2296,6 @@ function migrate_detail_livraison($db,$langs,$conf)
                         print ". ";
                         $i++;
                     }
    -
                 }
     
                 if ($error == 0)
    @@ -2376,7 +2383,6 @@ function migrate_stocks($db,$langs,$conf)
                     print ". ";
                     $i++;
                 }
    -
             }
     
             if ($error == 0)
    @@ -2631,7 +2637,6 @@ function migrate_restore_missing_links($db,$langs,$conf)
                     //print ". ";
                     $i++;
                 }
    -
             }
             else print $langs->trans('AlreadyDone')."<br>\n";
     
    @@ -2697,7 +2702,6 @@ function migrate_restore_missing_links($db,$langs,$conf)
                     //print ". ";
                     $i++;
                 }
    -
             }
             else
             {
    @@ -2919,9 +2923,9 @@ function migrate_project_task_actors($db,$langs,$conf)
      * @param	Conf		$conf			Object conf
      * @param	string		$table			Table name
      * @param	int			$fk_source		Id of element source
    - * @param	type		$sourcetype		Type of element source
    + * @param	string		$sourcetype		Type of element source
      * @param	int			$fk_target		Id of element target
    - * @param	type		$targettype		Type of element target
    + * @param	string		$targettype		Type of element target
      * @return	void
      */
     function migrate_relationship_tables($db,$langs,$conf,$table,$fk_source,$sourcetype,$fk_target,$targettype)
    @@ -4400,7 +4404,7 @@ function migrate_usergroup_rights_entity($db,$langs,$conf)
      * @param	string		$newname	New name (relative to DOL_DATA_ROOT)
      * @return	void
      */
    -function migrate_rename_directories($db,$langs,$conf,$oldname,$newname)
    +function migrate_rename_directories($db, $langs, $conf, $oldname, $newname)
     {
         dolibarr_install_syslog("upgrade2::migrate_rename_directories");
     
    @@ -4420,69 +4424,65 @@ function migrate_rename_directories($db,$langs,$conf,$oldname,$newname)
      * @param	Conf		$conf		Object conf
      * @return	void
      */
    -function migrate_delete_old_files($db,$langs,$conf)
    +function migrate_delete_old_files($db, $langs, $conf)
     {
    -    $result=true;
    +    $result = true;
     
         dolibarr_install_syslog("upgrade2::migrate_delete_old_files");
     
         // List of files to delete
    -    $filetodeletearray=array(
    -    DOL_DOCUMENT_ROOT.'/core/triggers/interface_demo.class.php',
    -    DOL_DOCUMENT_ROOT.'/core/menus/barre_left/default.php',
    -    DOL_DOCUMENT_ROOT.'/core/menus/barre_top/default.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/modComptabiliteExpert.class.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/modCommercial.class.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/modProduit.class.php',
    -    DOL_DOCUMENT_ROOT.'/phenix/inc/triggers/interface_modPhenix_Phenixsynchro.class.php',
    -    DOL_DOCUMENT_ROOT.'/webcalendar/inc/triggers/interface_modWebcalendar_webcalsynchro.class.php',
    -    DOL_DOCUMENT_ROOT.'/core/triggers/interface_modWebcalendar_Webcalsynchro.class.php',
    -    DOL_DOCUMENT_ROOT.'/core/triggers/interface_modCommande_Ecotax.class.php',
    -    DOL_DOCUMENT_ROOT.'/core/triggers/interface_modCommande_fraisport.class.php',
    -    DOL_DOCUMENT_ROOT.'/core/triggers/interface_modPropale_PropalWorkflow.class.php',
    -    DOL_DOCUMENT_ROOT.'/core/menus/smartphone/iphone.lib.php',
    -    DOL_DOCUMENT_ROOT.'/core/menus/smartphone/iphone_backoffice.php',
    -    DOL_DOCUMENT_ROOT.'/core/menus/smartphone/iphone_frontoffice.php',
    -    DOL_DOCUMENT_ROOT.'/core/menus/standard/auguria_backoffice.php',
    -    DOL_DOCUMENT_ROOT.'/core/menus/standard/auguria_frontoffice.php',
    -    DOL_DOCUMENT_ROOT.'/core/menus/standard/eldy_backoffice.php',
    -    DOL_DOCUMENT_ROOT.'/core/menus/standard/eldy_frontoffice.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/mailings/contacts2.modules.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/mailings/contacts3.modules.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/mailings/contacts4.modules.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/mailings/framboise.modules.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/mailings/dolibarr_services_expired.modules.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/mailings/peche.modules.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/mailings/poire.modules.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/mailings/kiwi.modules.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/facture/pdf_crabe.modules.php',
    -    DOL_DOCUMENT_ROOT.'/core/modules/facture/pdf_oursin.modules.php',
    -
    -    DOL_DOCUMENT_ROOT.'/compta/facture/class/api_invoice.class.php',
    -    DOL_DOCUMENT_ROOT.'/commande/class/api_commande.class.php',
    -    DOL_DOCUMENT_ROOT.'/user/class/api_user.class.php',
    -    DOL_DOCUMENT_ROOT.'/product/class/api_product.class.php',
    -    DOL_DOCUMENT_ROOT.'/societe/class/api_contact.class.php',
    -    DOL_DOCUMENT_ROOT.'/societe/class/api_thirdparty.class.php'
    +    $filetodeletearray = array(
    +        '/core/triggers/interface_demo.class.php',
    +        '/core/menus/barre_left/default.php',
    +        '/core/menus/barre_top/default.php',
    +        '/core/modules/modComptabiliteExpert.class.php',
    +        '/core/modules/modCommercial.class.php',
    +        '/core/modules/modProduit.class.php',
    +        '/core/modules/modSkype.class.php',
    +        '/phenix/inc/triggers/interface_modPhenix_Phenixsynchro.class.php',
    +        '/webcalendar/inc/triggers/interface_modWebcalendar_webcalsynchro.class.php',
    +        '/core/triggers/interface_modWebcalendar_Webcalsynchro.class.php',
    +        '/core/triggers/interface_modCommande_Ecotax.class.php',
    +        '/core/triggers/interface_modCommande_fraisport.class.php',
    +        '/core/triggers/interface_modPropale_PropalWorkflow.class.php',
    +        '/core/menus/smartphone/iphone.lib.php',
    +        '/core/menus/smartphone/iphone_backoffice.php',
    +        '/core/menus/smartphone/iphone_frontoffice.php',
    +        '/core/menus/standard/auguria_backoffice.php',
    +        '/core/menus/standard/auguria_frontoffice.php',
    +        '/core/menus/standard/eldy_backoffice.php',
    +        '/core/menus/standard/eldy_frontoffice.php',
    +        '/core/modules/mailings/contacts2.modules.php',
    +        '/core/modules/mailings/contacts3.modules.php',
    +        '/core/modules/mailings/contacts4.modules.php',
    +        '/core/modules/mailings/framboise.modules.php',
    +        '/core/modules/mailings/dolibarr_services_expired.modules.php',
    +        '/core/modules/mailings/peche.modules.php',
    +        '/core/modules/mailings/poire.modules.php',
    +        '/core/modules/mailings/kiwi.modules.php',
    +        '/core/modules/facture/pdf_crabe.modules.php',
    +        '/core/modules/facture/pdf_oursin.modules.php',
     
    +        '/compta/facture/class/api_invoice.class.php',
    +        '/commande/class/api_commande.class.php',
    +        '/user/class/api_user.class.php',
    +        '/product/class/api_product.class.php',
    +        '/societe/class/api_contact.class.php',
    +        '/societe/class/api_thirdparty.class.php',
    +        '/support/online.php',
         );
     
    -    foreach ($filetodeletearray as $filetodelete)
    -    {
    -        //print '<b>'.$filetodelete."</b><br>\n";
    -        $result=1;
    -        if (file_exists($filetodelete))
    -        {
    -            $result=dol_delete_file($filetodelete,0,0,0,null,true);
    -            if (! $result)
    -            {
    +    foreach ($filetodeletearray as $filetodelete) {
    +        //print '<b>'DOL_DOCUMENT_ROOT.$filetodelete."</b><br>\n";
    +        $result = 1;
    +        if (file_exists(DOL_DOCUMENT_ROOT.$filetodelete)) {
    +            $result = dol_delete_file(DOL_DOCUMENT_ROOT.$filetodelete, 0, 0, 0, null, true, false);
    +            if (! $result) {
                     $langs->load("errors");
    -                print '<div class="error">'.$langs->trans("Error").': '.$langs->trans("ErrorFailToDeleteFile",$filetodelete);
    +                print '<div class="error">'.$langs->trans("Error").': '.$langs->trans("ErrorFailToDeleteFile", DOL_DOCUMENT_ROOT . $filetodelete);
                     print ' '.$langs->trans("RemoveItManuallyAndPressF5ToContinue").'</div>';
    -            }
    -            else
    -			{
    -                //print $langs->trans("FileWasRemoved",$filetodelete);
    +            } else {
    +                //print $langs->trans("FileWasRemoved", $filetodelete).'<br>';
                 }
             }
         }
    @@ -4497,27 +4497,24 @@ function migrate_delete_old_files($db,$langs,$conf)
      * @param	Conf		$conf		Object conf
      * @return	void
      */
    -function migrate_delete_old_dir($db,$langs,$conf)
    +function migrate_delete_old_dir($db, $langs, $conf)
     {
    -    $result=true;
    +    $result = true;
     
         dolibarr_install_syslog("upgrade2::migrate_delete_old_dir");
     
         // List of files to delete
         $filetodeletearray=array(
    -    DOL_DOCUMENT_ROOT.'/core/modules/facture/terre',
    -    DOL_DOCUMENT_ROOT.'/core/modules/facture/mercure'
    +        DOL_DOCUMENT_ROOT.'/core/modules/facture/terre',
    +        DOL_DOCUMENT_ROOT.'/core/modules/facture/mercure',
         );
     
    -    foreach ($filetodeletearray as $filetodelete)
    -    {
    +    foreach ($filetodeletearray as $filetodelete) {
             //print '<b>'.$filetodelete."</b><br>\n";
    -        if (file_exists($filetodelete))
    -        {
    -            $result=dol_delete_dir_recursive($filetodelete);
    +        if (file_exists($filetodelete)) {
    +            $result = dol_delete_dir_recursive($filetodelete);
             }
    -        if (! $result)
    -        {
    +        if (! $result) {
                 $langs->load("errors");
                 print '<div class="error">'.$langs->trans("Error").': '.$langs->trans("ErrorFailToDeleteDir",$filetodelete);
                 print ' '.$langs->trans("RemoveItManuallyAndPressF5ToContinue").'</div>';
    @@ -4822,7 +4819,99 @@ function migrate_reload_menu($db,$langs,$conf,$versionto)
         }
     }
     
    +/**
    + * Migrate file from old path to new one for users
    + *
    + * @return	void
    + */
    +function migrate_user_photospath()
    +{
    +	global $conf, $db, $langs, $user;
     
    +	print '<tr><td colspan="4">';
    +
    +	print '<b>'.$langs->trans('MigrationUserPhotoPath')."</b><br>\n";
    +
    +	include_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
    +	$fuser = new User($db);
    +
    +	if (! is_object($user)) $user = $fuser;	// To avoid error during migration
    +
    +	$sql = "SELECT rowid as uid from ".MAIN_DB_PREFIX."user";	// Get list of all users
    +	$resql = $db->query($sql);
    +	if ($resql)
    +	{
    +		while ($obj = $db->fetch_object($resql))
    +		{
    +			$fuser->fetch($obj->uid);
    +			//echo '<hr>'.$fuser->id.' -> '.$fuser->entity;
    +			$entity = (empty($fuser->entity) ? 1 : $fuser->entity);
    +			if ($entity > 1) {
    +				$dir = DOL_DATA_ROOT . '/' . $entity . '/users';
    +			} else {
    +				$dir = $conf->user->multidir_output[$entity];	// $conf->user->multidir_output[] for each entity is construct by the multicompany module
    +			}
    +
    +			if ($dir)
    +			{
    +				//print "Process user id ".$fuser->id."<br>\n";
    +				$origin = $dir .'/'. get_exdir($fuser->id,2,0,1,$fuser,'user');	// Use old behaviour to get x/y path
    +				$destin = $dir .'/'. $fuser->id;
    +
    +				$origin_osencoded=dol_osencode($origin);
    +
    +				dol_mkdir($destin);
    +
    +				//echo '<hr>'.$origin.' -> '.$destin;
    +				if (dol_is_dir($origin))
    +				{
    +					$handle=opendir($origin_osencoded);
    +			        if (is_resource($handle))
    +			        {
    +			        	while (($file = readdir($handle)) !== false)
    +			    		{
    +			    			if ($file == '.' || $file == '..') continue;
    +
    +			     			if (dol_is_dir($origin.'/'.$file))	// it is a dir (like 'thumbs')
    +			    			{
    +			    				$thumbs = opendir($origin_osencoded.'/'.$file);
    +			    				if (is_resource($thumbs))
    +			        			{
    +				     				dol_mkdir($destin.'/'.$file);
    +				     				while (($thumb = readdir($thumbs)) !== false)
    +					    			{
    +					    				if (! dol_is_file($destin.'/'.$file.'/'.$thumb))
    +					    				{
    +					    					if ($thumb == '.' || $thumb == '..') continue;
    +
    +					    					//print $origin.'/'.$file.'/'.$thumb.' -> '.$destin.'/'.$file.'/'.$thumb.'<br>'."\n";
    +					    					print '.';
    +					    					dol_copy($origin.'/'.$file.'/'.$thumb, $destin.'/'.$file.'/'.$thumb, 0, 0);
    +					    					//var_dump('aaa');exit;
    +					    				}
    +					    			}
    +									// dol_delete_dir($origin.'/'.$file);
    +			        			}
    +			    			}
    +			    			else								// it is a file
    +			    			{
    +			    				if (! dol_is_file($destin.'/'.$file))
    +			    				{
    +			    					//print $origin.'/'.$file.' -> '.$destin.'/'.$file.'<br>'."\n";
    +			    					print '.';
    +			    					dol_copy($origin.'/'.$file, $destin.'/'.$file, 0, 0);
    +			    					//var_dump('eee');exit;
    +			    				}
    +			    			}
    +			    		}
    +			        }
    +				}
    +			}
    +		}
    +	}
    +
    +	print '</td></tr>';
    +}
     
     
     /* A faire egalement: Modif statut paye et fk_facture des factures payes completement
    diff --git a/htdocs/langs/ar_EG/admin.lang b/htdocs/langs/ar_EG/admin.lang
    index b24eb9216d5..e4b07918378 100644
    --- a/htdocs/langs/ar_EG/admin.lang
    +++ b/htdocs/langs/ar_EG/admin.lang
    @@ -8,14 +8,10 @@ SessionId=هوية المتصل
     SessionSaveHandler=معالج لتوفير دورات
     SessionSavePath=موقع تخزين الدورة
     PurgeSessions=انهاء الجلسات
    -NoSessionListWithThisHandler=.الخاص بك لا يسمح بسرد كافة الجلسات على التوالي PHP معالج حفظ الدورات و تكوينها في
     LockNewSessions=اغلاق الدخول للمتصلين الجدد
    -ConfirmLockNewSessions=هل تريد منع اي اتصال جديد للبرنامج منك. فقط المستخدم <b>%s</b> سيكون قادر على الاتصال بعد ذلك
     UnlockNewSessions=الغاء حظر الاتصال
     YourSession=جلستك
    -Sessions=جلسات المستخدمين
     WebUserGroup=مستخدم\\مجموعة خادم الويب
    -NoSessionFound=إن صلاحيات لغة بي اتش بي تمنعك من اظهار الجلسات الحالية. قد تكون الوجهة (<b>%s</b>)محمية
     DBStoringCharset=ضبط الحروف في قاعدة البيانات لحفظ المعلومات
     DBSortingCharset=ضبط الحروف في قاعدة البيانات لحفظ المعلومات
     WarningModuleNotActive=إن الوحدة <b>%s</b> لابد أن تكون مفعلة
    @@ -23,13 +19,12 @@ WarningOnlyPermissionOfActivatedModules=أن الصلاحيات المرتبطة
     DolibarrSetup=تثبيت أو ترقية البرنامج
     InternalUsers=مستخدمون داخليون
     ExternalUsers=مستخدمون خارجيون
    -SetupArea=منطقة التنصيب
     FormToTestFileUploadForm=نموذج تجربة رفع الملفات (تبعا للتنصيب)
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     Module25Name=أمر شراء
     Module25Desc=إدارة أوامر الشراء
     Module700Name=تبرعات
     Module1780Name=الأوسمة/التصنيفات
     Permission81=قراءة أوامر الشراء
    +Audit=Audit
    +LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    diff --git a/htdocs/langs/ar_SA/accountancy.lang b/htdocs/langs/ar_SA/accountancy.lang
    index a97dc05d79a..eac78e42869 100644
    --- a/htdocs/langs/ar_SA/accountancy.lang
    +++ b/htdocs/langs/ar_SA/accountancy.lang
    @@ -38,6 +38,10 @@ GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accountin
     DetailByAccount=Show detail by account
     AccountWithNonZeroValues=Accounts with non zero values
     ListOfAccounts=List of accounts
    +CountriesInEEC=Countries in EEC
    +CountriesNotInEEC=Countries not in EEC
    +CountriesInEECExceptMe=Countries in EEC except %s
    +CountriesExceptMe=All countries except %s
     
     MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
     MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup
    @@ -90,7 +94,7 @@ MenuLoanAccounts=Loan accounts
     MenuProductsAccounts=Product accounts
     ProductsBinding=Products accounts
     Ventilation=Binding to accounts
    -CustomersVentilation=ربط فاتورة الزبون 
    +CustomersVentilation=ربط فاتورة الزبون
     SuppliersVentilation=Vendor invoice binding
     ExpenseReportsVentilation=Expense report binding
     CreateMvts=Create new transaction
    @@ -156,6 +160,7 @@ Docref=مرجع
     LabelAccount=حساب التسمية
     LabelOperation=Label operation
     Sens=السيناتور
    +LetteringCode=Lettering code
     Codejournal=دفتر اليومية
     NumPiece=Piece number
     TransactionNumShort=Num. transaction
    @@ -221,6 +226,7 @@ AutomaticBindingDone=Automatic binding done
     
     ErrorAccountancyCodeIsAlreadyUse=خطأ، لا يمكنك حذف هذا الحساب المحاسبي لأنه مستخدم
     MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s
    +Balancing=Balancing
     FicheVentilation=Binding card
     GeneralLedgerIsWritten=Transactions are written in the Ledger
     GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized.
    @@ -263,6 +269,7 @@ Modelcsv_ebp=Export towards EBP
     Modelcsv_cogilog=Export towards Cogilog
     Modelcsv_agiris=Export towards Agiris
     Modelcsv_configurable=Export Configurable
    +Modelcsv_FEC=Export FEC (Art. L47 A) (Test)
     ChartofaccountsId=Chart of accounts Id
     
     ## Tools - Init accounting account on product / service
    diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang
    index 81ed07f3b3c..69fcc0fe0a2 100644
    --- a/htdocs/langs/ar_SA/admin.lang
    +++ b/htdocs/langs/ar_SA/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=تطويرية
     VersionUnknown=غير معروف
     VersionRecommanded=موصى بها
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=معالج لحفظ الجلسات
     SessionSavePath=جلسة التخزين المحلية
     PurgeSessions=إزالة الجلسات
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=معالج حفظ الجلسة المهيأ في لغة البي إتش بي لا يسمح بسرد كل الجلسات التي تعمل
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=إقفال الإتصالات الجديدة
    -ConfirmLockNewSessions=هل أنت متأكد من أنك تريد تقييد أي اتصال جديد من دوليبار لنفسك. <b>%s</b> المستخدم الوحيد الذي سيتمكن من الإتصال بعد هذه العملية.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=إزالة قفل الإتصال
     YourSession=الجلسة الخاصة بك
    -Sessions=جلسة المستخدمين
    +Sessions=Users sessions
     WebUserGroup=خادم الويب المستخدم / المجموعة
    -NoSessionFound=يبدو أن البي إتش بي الخاص بك لا يسمح بسرد كل الجلسات النشطة. الدليل  (<b>%s</b>) المستخدم لحفظ المراحل قد يكون محمي (على سبيل المثال, محمي من قبل نظام الحماية الخاص ببرنامج التشغيل او لغة البي إتش بي.)
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=الترميز الخاص بقاعدة البيانات لتخزين المعلومات
     DBSortingCharset=الترميز الخاص بقاعدة البيانات لتخزين المعلومات
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=مستخدم خارجي
     InternalUsers=مستخدمين داخليين
     ExternalUsers=مستخدمين خارجيين
     GUISetup=العرض
    -SetupArea=منطقة الإعداد
    +SetupArea=التثبيت
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=نموذج لاختبار تحميل ملف (وفقا لبرنامج الإعداد)
     IfModuleEnabled=ملاحظة : نعم فعالة فقط في حال كان النموذج <b>%s</b> مفعل
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=الكود لا يمكن أن يحتوي على الق
     DisableJavascript=تعطيل جافا سكريبت واياكس وظائف (مستحسن للأعمى شخص أو النص المتصفحات)
     UseSearchToSelectCompanyTooltip=أيضا إذا كان لديك عدد كبير من الأحزاب الثالثة (> 100 000)، يمكنك زيادة السرعة عن طريق وضع COMPANY_DONOTSEARCH_ANYWHERE ثابت إلى 1 في الإعداد، <أخرى. وبعد ذلك البحث أن يقتصر على بداية السلسلة.
     UseSearchToSelectContactTooltip=أيضا إذا كان لديك عدد كبير من الأحزاب الثالثة (> 100 000)، يمكنك زيادة السرعة عن طريق وضع CONTACT_DONOTSEARCH_ANYWHERE ثابت إلى 1 في الإعداد، <أخرى. وبعد ذلك البحث أن يقتصر على بداية السلسلة.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=عدد الحروف لبدء البحث: %s
     NotAvailableWhenAjaxDisabled=غير متوفر عندما يكون أجاكس معطلاً
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=المعاينة غير متاحة
     ThemeCurrentlyActive=الثيم النشط حالياً
     CurrentTimeZone=حسب توقيت خادم البي إتش بي
     MySQLTimeZone=والوقت مسقل (قاعدة بيانات)
    -TZHasNoEffect=يتم تخزين التمور وعاد من قبل خادم قاعدة البيانات كما لو أنها بقيت كسلسلة مرسلة. التوقيت له تأثير فقط عند استخدام UNIX_TIMESTAMP وظيفة (وهذا لا ينبغي أن تستخدم من قبل Dolibarr، لذلك يجب أن يكون TZ قاعدة بيانات أي تأثير، حتى لو تغيرت بعد أن تم إدخال البيانات).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=فراغ
     Table=جدول
     Fields=حقول
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=نشطة
     SetupShort=الإعداد
     OtherOptions=الخيارات الأخرى
    -OtherSetup=الإعدادات الأخرى
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=الفاصلة العشرية
     CurrentValueSeparatorThousand=ألفاصلة الألفية
     Destination=المقصد
     IdModule=ID حدة
     IdPermissions=ضوابط ID
     LanguageBrowserParameter=الوحدة %s
    -LocalisationDolibarrParameters=الوحدات المحلية
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=المنطقة الزمنية للعميل (المستخدم)
     ClientHour=وقت العميل (المستخدم)
     OSTZ=OS المنطقة الزمنية الخادم
    @@ -126,8 +126,8 @@ PHPTZ=المنطقة الزمنية خادم PHP
     DaylingSavingTime=التوقيت الصيفي
     CurrentHour=PHP خادم ساعة
     CurrentSessionTimeOut=إنتها مدة التصفح الحالية
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=اكتشاف تلقائي (لغة المتصفح)
     FeatureDisabledInDemo=الميزة معلطة في العرض التجريبي
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=فقط العناصر من <a href="%s">النماذج المفعلة </a> سوف تظهر.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=جديد
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore ، في السوق الرسمي لتخطيط موارد المؤسسات وحدات Dolibarr / خارجي إدارة علاقات العملاء
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=رابط
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=لا تخزن كلمات السر في قاعدة بيا
     MainDbPasswordFileConfEncrypted=كلمة السر في قاعدة بيانات مشفرة conf.php
     InstrucToEncodePass=لديك كلمة السر المشفرة في ملف <b>conf.php،</b> استبدال الخط <br> <b>$ dolibarr_main_db_pass = "..."؛</b> <br> بواسطة <br> <b>$ dolibarr_main_db_pass = "crypted:٪ ليالي".</b>
     InstrucToClearPass=لديك كلمة مرور فك الشفرة (واضح) في ملف <b>conf.php،</b> استبدال الخط <br> <b>$ dolibarr_main_db_pass = "crypted: ...".</b> <br> بواسطة <br> <b>$ dolibarr_main_db_pass = "%s".</b>
    -ProtectAndEncryptPdfFiles=حماية الملفات ولدت الشعبي (لا recommandd ، تقتحم الجماهيري الشعبي وتوليد)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=ميزة
     DolibarrLicense=الترخيص
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=للمستخدم أو وثائق المطور (الوثيقة، أسئلة وأجوبة ...)، <br> نلقي نظرة على Dolibarr يكي: <br> <b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=عن أي أسئلة أخرى / مساعدة، يمكنك استخدام المنتدى Dolibarr: <br> <b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=هذا المجال يمكن أن تساعدك في الحصول على مساعدة لتقديم خدمات الدعم على Dolibarr.
    -HelpCenterDesc2=جزء من هذه الخدمة متوفرة باللغة <b>الانكليزية فقط.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=الحالية القائمة معالج
     MeasuringUnit=وحدة قياس
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=فترة إشعار
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=بروتوكول نقل البريد الإلكتروني / SMTPS ميناء (افتراضيا في php.ini : <b>٪)</b>
    -MAIN_MAIL_SMTP_SERVER=بروتوكول نقل البريد الإلكتروني / SMTPS المضيف (افتراضيا في php.ini : <b>٪)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=بروتوكول نقل البريد الإلكتروني / SMTPS ميناء (غير محددة في مثل PHP على أنظمة يونكس)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=بروتوكول نقل البريد الإلكتروني / SMTPS المضيف (غير محددة في مثل PHP على أنظمة يونكس)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= إرسال منهجية خفية الكربون نسخة من جميع رسائل البريد الإلكتروني المرسلة إلى
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=طريقة استخدام لإرسال رسائل البريد الإلكتروني
    -MAIN_MAIL_SMTPS_ID=إذا الهوية SMTP التوثيق اللازم
    -MAIN_MAIL_SMTPS_PW=كلمة السر اذا SMTP التوثيق اللازم
    -MAIN_MAIL_EMAIL_TLS= استخدام تلس (خدمة تصميم المواقع) تشفير
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=تعطيل كافة sendings SMS (لأغراض الاختبار أو تجريبية)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=طريقة استخدامه لإرسال الرسائل القصيرة SMS
    -MAIN_MAIL_SMS_FROM=رقم الهاتف المرسل الافتراضي لإرسال الرسائل القصيرة
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=ميزة لا تتوفر على مثل أنظمة يونكس. sendmail برنامج الاختبار الخاص بك محليا.
    -SubmitTranslation=إذا ترجمة لهذه اللغة ليست كاملة أو تجد الأخطاء، يمكنك تصحيح هذا عن طريق تحرير الملفات إلى دليل <b>LANGS /%s</b> وتقديم التغيير إلى www.transifex.com/dolibarr-association/dolibarr/~~V
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=إذا ترجمة لهذه اللغة ليست كاملة أو تجد الأخطاء، يمكنك تصحيح هذا عن طريق تحرير الملفات إلى دليل <b>LANGS /%s</b> وتقديم الملفات التي تم تعديلها على dolibarr.org/forum أو للمطورين على github.com/Dolibarr/dolibarr.
     ModuleSetup=إعداد وحدة
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=أدوات وحدات متعددة
     ModuleFamilyExperimental=نماذج تجريبية
     ModuleFamilyFinancial=الوحدات المالية (المحاسبة / الخزانة)
     ModuleFamilyECM=إدارة المحتوى في المؤسسة
    -ModuleFamilyPortal=المواقع على شبكة الإنترنت وتطبيق مباشر الآخرين
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=واجهات مع الأنظمة الخارجية
     MenuHandlers=قائمة مناولي
     MenuAdmin=قائمة تحرير
    @@ -309,15 +313,15 @@ DoNotUseInProduction=لا تستخدمها مع المنتج
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=الخطوة %s
    -FindPackageFromWebSite=العثور على الحزمة التي توفر ميزة تريد (على سبيل المثال على موقع الويب %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=تحميل الحزمة (على سبيل المثال من الموقع الرسمي على الإنترنت%s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr النسخة الحالية
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= التخزين المؤقت للتأخير في الرد على الصادرات ثانية (0 فارغة أو لا مخبأ)
     DisableLinkToHelpCenter=الاختباء وصلة <b>"هل تحتاج إلى مساعدة أو دعم"</b> على صفحة تسجيل الدخول
     DisableLinkToHelp=إخفاء تصل إلى التعليمات الفورية <b>"٪ ق"</b>
    -AddCRIfTooLong=ليس هناك التفاف تلقائي ، حتى إذا خرج من خط صفحة على وثائق لفترة طويلة جدا ، يجب إضافة حرف إرجاع نفسك في ناحية النص.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=الحد الأدني لمدة
     LanguageFilesCachedIntoShmopSharedMemory=لانغ لتحميل الملفات. في الذاكرة المشتركة
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=أمثلة مع تشغيل الإعداد الحالي
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=قائمة الدلائل المفتوحة قوالب
     ListOfDirectoriesForModelGenODT=قائمة الدلائل التي تحتوي على قوالب ملفات مع شكل المفتوحة. <br><br> ضع هنا المسار الكامل من الدلائل. <br> إضافة إرجاع بين الدليل ايه. <br> لإضافة دليل وحدة GED، أضيف هنا <b>DOL_DATA_ROOT / ECM / yourdirectoryname.</b> <br><br> الملفات في هذه الدلائل يجب أن ينتهي <b>.odt</b> أو <b>.ods.</b>
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=أمثلة على بناء الجملة : <br> ج : mydir \\ <br> / الوطن / mydir <br> DOL_DATA_ROOT / إدارة المحتوى في المؤسسة / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> لمعرفة كيفية إنشاء قوالب المستند ODT، قبل تخزينها في تلك الدلائل، وقراءة وثائق ويكي:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=مفتاح لاستخدام خدمات الشبكة ال
     TestSubmitForm=اختبار شكل مساهمة
     ThisForceAlsoTheme=وسوف تستخدم هذه القائمة أيضا استخدام مدير موضوعه الخاصة بكل ما هو خيار المستخدم. أيضا هذه القائمة مدير متخصصة للهواتف الذكية لا يعمل على جميع الهواتف الذكية. استخدم مدير آخر القائمة إذا واجهت مشاكل في يدكم.
     ThemeDir=جلود دليل
    -ConnectionTimeout=بمناسبه المهلة
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=استجابة مهلة
     SmsTestMessage=رسالة اختبار من __PHONEFROM__ إلى __PHONETO__
     ModuleMustBeEnabledFirst=يجب تمكين <b>وحدة%s</b> أولا إذا كنت تحتاج هذه الميزة.
     SecurityToken=المفتاح لعناوين المواقع الآمنة
    -NoSmsEngine=لا مدير مرسل الرسائل القصيرة المتاحة. لم يتم تثبيت SMS المرسل مع مدير التوزيع الافتراضي (لأنها تعتمد على مورد خارجي)، ولكن يمكنك أن تجد بعض على http://www.dolistore.com
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=يمكنك تعيين كل الخيارات العالمية المتصلة جيل PDF
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=قواعد لتشكيل مربعات العناوين
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=إخفاء وصف المنتجات على لدت PDF
     HideRefOnPDF=المنتجات الجلدية المرجع. ولدت في PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=المعلمات لتأمين عناوين المواق
     SecurityTokenIsUnique=استخدام معلمة securekey فريدة لكل URL
     EnterRefToBuildUrl=أدخل مرجع لكائن %s
     GetSecuredUrl=الحصول على عنوان محسوب
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=معدل ضريبة القيمة المضافة القديم
     NewVATRates=معدل ضريبة القيمة المضافة الجديد
     PriceBaseTypeToChange=تعديل على الأسعار مع القيمة المرجعية قاعدة المعرفة على
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=الرمز السري
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=رابط إلى كائن
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=الوحدة الخارجية - المثبتة في الدليل %s
    -BarcodeInitForThirdparties=الحرف الأول الباركود الشامل لthirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=الحرف الأول الباركود الشامل أو إعادة للمنتجات أو الخدمات
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=قيمة الحرف الأول للسجلات فارغة الصورة٪ المقبلة
     EraseAllCurrentBarCode=محو كل القيم الباركود الحالية
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=وقد أزيلت كل القيم الباركود
    -NoBarcodeNumberingTemplateDefined=تمكين أي قالب الترقيم الباركود في الإعداد وحدة الباركود.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=حقل
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=& مجموعات المستخدمين
    +Module0Name=مجموعات المستخدمين
     Module0Desc=Users / Employees and Groups management
    -Module1Name=أطراف ثالثة
    -Module1Desc=شركات الاتصالات وإدارة
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=التجارية
     Module2Desc=الإدارة التجارية
     Module10Name=المحاسبة
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=مقترحات
     Module20Desc=مقترحات تجارية إدارة
     Module22Name=كتلة بالبريد الإلكتروني
    @@ -495,7 +501,7 @@ Module23Desc=مراقبة استهلاك الطاقة
     Module25Name=طلبات الزبائن
     Module25Desc=طلبات الزبائن إدارة
     Module30Name=فواتير
    -Module30Desc=ويلاحظ اعتماد الفواتير وإدارة العملاء. فواتير إدارة الموردين
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=الموردين
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=مخزون إدارة المنتجات
     Module53Name=الخدمات
     Module53Desc=الخدمات الإدارية
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcodes إدارة
     Module56Name=الخدمات الهاتفية
     Module56Desc=تكامل الخدمات الهاتفية
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=انقر للاتصال
     Module58Desc=ClickToDial التكامل
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=ويلاحظ نفقات رحلات
     Module75Desc=ونفقات الرحلات تلاحظ إدارة
     Module80Name=الإرسال
     Module80Desc=الإرسال وتسليم الأوامر الإدارية
    -Module85Name=المصارف والنقد
    +Module85Name=Banks and Cash
     Module85Desc=إدارة حسابات مصرفية أو نقدا
    -Module100Name=ExternalSite
    -Module100Desc=وتشمل أي موقع خارجي في القوائم Dolibarr ومشاهدته في إطار Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=ساعي البريد ورشفة
     Module105Desc=ساعي البريد أو SPIP واجهة وحدة عضو
     Module200Name=LDAP
    -Module200Desc=دليل LDAP نمازتلا
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke التكامل
     Module240Name=بيانات الصادرات
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=بيانات الاستيراد
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=أعضاء
     Module310Desc=أعضاء إدارة المؤسسة
     Module320Name=تغذية RSS
     Module320Desc=إضافة تغذية RSS داخل الشاشة صفحة Dolibarr
    -Module330Name=العناوين
    -Module330Desc=إدارة العناوين
    -Module400Name=المشاريع / الفرص / يؤدي
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=التكامل Webcalendar
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=قرض
     Module520Desc=إدارة القروض
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=التبرعات
     Module700Desc=التبرعات إدارة
     Module770Name=تقارير المصاريف
    -Module770Desc=إدارة والمطالبة تقارير المصاريف (النقل، وجبة، ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=فرس النبي
    @@ -576,13 +582,13 @@ Module1520Desc=الجيل ثيقة الإلكتروني الشامل
     Module1780Name=الكلمات / فئات
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG المحرر
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=الأسعار الديناميكية
     Module2200Desc=تمكين استخدام تعبيرات الرياضيات للأسعار
     Module2300Name=المهام المجدولة
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=خدمات API / ويب (خادم SOAP)
    @@ -590,16 +596,16 @@ Module2600Desc=تمكين الخدمات API Dolibarr الخادم SOAP توفي
     Module2610Name=خدمات API / ويب (خادم REST)
     Module2610Desc=تمكين الخادم تقديم الخدمات API Dolibarr REST
     Module2660Name=WebServices الدعوة (العميل SOAP)
    -Module2660Desc=تمكين Dolibarr عميل خدمات الويب (يمكن أن تستخدم لدفع البيانات / الطلبات إلى ملقمات الخارجية. أوامر مورد معتمد فقط في الوقت الحالي)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=غرفتر
    -Module2700Desc=استخدام خدمة غرفتر على الانترنت (www.gravatar.com) لإظهار الصورة من المستخدمين / أعضاء (وجدت مع رسائل البريد الإلكتروني الخاصة بهم). في حاجة الى الوصول الى شبكة الانترنت
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=عميل FTP
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP التحويلات Maxmind القدرات
     Module3100Name=سكايب
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=شركة متعددة
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=ترك إدارة الطلبات
    -Module20000Desc=أعلن وتابع الموظفين يترك طلبات
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=الكثير أو الرقم التسلسلي، وتناول الطعام عن طريق وبيع عن طريق إدارة التسجيل على المنتجات
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=نقطة البيع
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=نقاط البيع
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=باي بال
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=المحاسبة (متقدم)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=(يجب أن تكون الطابعة مرئية من الخادم، ويجب أن تكون الكؤوس تركيبها على الخادم) الطباعة مباشرة (دون فتح المستندات) باستخدام واجهة الكؤوس IPP.
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=استطلاع للرأي، أو مسح التصويت
    -Module55000Desc=وحدة لجعل استطلاعات الرأي عبر الإنترنت، والدراسات الاستقصائية أو الأصوات (مثل خربش، الأزرار، Rdvz، ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=هوامش
     Module59000Desc=وحدة لإدارة الهوامش
     Module60000Name=العمولات
     Module60000Desc=وحدة لإدارة اللجان
     Module62000Name=شروط التجارة الدولية
    -Module62000Desc=إضافة ميزات لإدارة شروط التجارة الدولية
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=مصادر
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=قراءة الفواتير
    @@ -651,9 +661,9 @@ Permission32=إنشاء / تعديل المنتجات
     Permission34=حذف المنتجات
     Permission36=انظر / إدارة المنتجات المخفية
     Permission38=منتجات التصدير
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=حذف مشاريع
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=قراءة التدخلات
     Permission62=إنشاء / تعديل التدخلات
    @@ -686,7 +696,7 @@ Permission109=حذف الإرسال
     Permission111=قراءة الحسابات المالية
     Permission112=إنشاء / تعديل أو حذف ، وقارن المعاملات
     Permission113=الحسابات المالية الإعداد (إنشاء وإدارة فئات)
    -Permission114=مصالحة بين المعاملات
    +Permission114=Reconcile transactions
     Permission115=صفقات التصدير وكشوفات الحساب
     Permission116=التحويلات بين الحسابات
     Permission117=إدارة ارسال الشيكات
    @@ -694,15 +704,15 @@ Permission121=قراءة الغير مرتبطة المستخدم
     Permission122=إنشاء / تغيير الغير مرتبطة المستخدم
     Permission125=حذف الغير مرتبطة المستخدم
     Permission126=الصادرات الغير
    -Permission141=قراءة جميع المشاريع والمهام (أيضا مشاريع خاصة وأنا لا اتصال لل)
    -Permission142=إنشاء / تعديل كافة المشاريع والمهام (أيضا مشاريع خاصة وأنا لا اتصال لل)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=حذف جميع المشاريع والمهام (أيضا مشاريع خاصة وأنا لا اتصال لل)
     Permission146=قراءة موفري
     Permission147=قراءة احصائيات
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=قراءة العقود / الاشتراكات
     Permission162=إنشاء / تعديل العقود / الاشتراكات
     Permission163=تفعيل خدمة / الاشتراك عقد
    @@ -725,7 +735,7 @@ Permission187=وثيقة أوامر المورد
     Permission188=المورد إلغاء أوامر
     Permission192=إنشاء خطوط
     Permission193=إلغاء خطوط
    -Permission194=قراءة خطوط باندوتز
    +Permission194=Read the bandwidth lines
     Permission202=إنشاء خط المشترك الرقمي غير المتماثل وصلات
     Permission203=وصلات من أجل أوامر
     Permission204=من أجل وصلات
    @@ -750,12 +760,12 @@ Permission244=انظر محتويات الخفية الفئات
     Permission251=قراءة أخرى للمستخدمين والمجموعات
     PermissionAdvanced251=قراءة المستخدمين الآخرين
     Permission252=قراءة أذونات المستخدمين الآخرين
    -Permission253=تغيير كلمة مرور المستخدمين الآخرين
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=إنشاء / تعديل المستخدمين خارجي / داخلي وأذونات
     Permission254=حذف أو تعطيل المستخدمين الآخرين
     Permission255=إنشاء / تعديل بلده معلومات المستخدم
     Permission256=تعديل بنفسه كلمة المرور
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=قراءة في كاليفورنيا
     Permission272=قراءة الفواتير
     Permission273=قضية الفواتير
    @@ -765,7 +775,7 @@ Permission283=حذف اتصالات
     Permission286=تصدير اتصالات
     Permission291=قراءة التعريفات
     Permission292=مجموعة أذونات على التعريفات
    -Permission293=مصممو الأزياء تعديل الرسوم الجمركية
    +Permission293=Modify customers tariffs
     Permission300=شريط قراءة المدونات
     Permission301=إنشاء / تغيير شريط الرموز
     Permission302=حذف شريط الرموز
    @@ -787,11 +797,9 @@ Permission401=قراءة خصومات
     Permission402=إنشاء / تعديل الخصومات
     Permission403=تحقق من الخصومات
     Permission404=حذف خصومات
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=حذف الرواتب
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=رواتب التصدير
     Permission520=قراءة القروض
     Permission522=إنشاء / تعديل القروض
    @@ -844,8 +852,8 @@ Permission1251=ادارة الدمار الواردات الخارجية الب
     Permission1321=تصدير العملاء والفواتير والمدفوعات والصفات
     Permission1322=Reopen a paid bill
     Permission1421=التصدير طلبات الزبائن وصفاته
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=حذف طلبات الإجازة
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=احتمال المستوى المحتمل
     DictionaryCanton=الدولة / مقاطعة
     DictionaryRegion=المناطق
    @@ -894,7 +902,7 @@ DictionaryVAT=أسعار الضريبة على القيمة المضافة أو
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=شروط الدفع
     DictionaryPaymentModes=وسائل الدفع
    -DictionaryTypeContact=الاتصال / أنواع العناوين
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=ضرائب بيئية (WEEE)
     DictionaryPaperFormat=تنسيقات ورقة
    @@ -908,47 +916,47 @@ DictionarySource=أصل مقترحات / أوامر
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=نماذج للتخطيط للحسابات
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=رسائل البريد الإلكتروني قوالب
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=الوحدات
     DictionaryProspectStatus=حالة التنقيب
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=الوضع فرصة للمشروع / الرصاص
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=الإعداد المحفوظة
     SetupNotSaved=Setup not saved
     BackToModuleList=العودة إلى قائمة الوحدات
    -BackToDictionaryList=العودة إلى قائمة القواميس
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=إدارة الضريبة على القيمة المضافة
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=افتراضي المقترحة 0 ضريبة القيمة المضافة هو الذي يمكن أن يستخدم في حالات مثل الجمعيات والأفراد والشركات الصغيرة où.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=معدل
     LocalTax1IsNotUsed=لا تستخدم الضريبة الثانية
    -LocalTax1IsUsedDesc=استخدام النوع الثاني من الضرائب (باستثناء ضريبة القيمة المضافة)
    -LocalTax1IsNotUsedDesc=لا تستخدم أي نوع آخر من الضرائب (باستثناء ضريبة القيمة المضافة)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=النوع الثاني من الضرائب
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=لا تستخدم الضرائب الثالثة
    -LocalTax2IsUsedDesc=استخدام نوع ثالث من الضرائب (باستثناء ضريبة القيمة المضافة)
    -LocalTax2IsNotUsedDesc=لا تستخدم أي نوع آخر من الضرائب (باستثناء ضريبة القيمة المضافة)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=النوع الثالث من الضريبة
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= إدارة الطاقة المتجددة
    -LocalTax1IsUsedDescES= معدل الطاقة المتجددة بشكل افتراضي عند احتمالات إنشاء ، والفواتير ، وأوامر الخ اتباع القاعدة نشط القياسية : <br> إذا لم تعرض الشركة المصرية للاتصالات لمشتري الطاقة المتجددة ، الطاقة المتجددة بشكل افتراضي = 0. نهاية الحكم. <br> في حال التعرض للمشتري بعد ذلك الطاقة المتجددة الطاقة المتجددة بشكل افتراضي. نهاية الحكم. <br>
    -LocalTax1IsNotUsedDescES= افتراضيا الطاقة المتجددة المقترحة هي 0. نهاية الحكم.
    -LocalTax1IsUsedExampleES= في اسبانيا هم من المهنيين تخضع لبعض المقاطع المحددة للشركة التعليم الصوتي التفاعلي الاسبانية.
    -LocalTax1IsNotUsedExampleES= في اسبانيا هم المهنية والجمعيات وتخضع لقطاعات معينة من شركة التعليم الصوتي التفاعلي الاسبانية.
    -LocalTax2ManagementES= IRPF الإدارة
    -LocalTax2IsUsedDescES= معدل الطاقة المتجددة بشكل افتراضي عند احتمالات إنشاء ، والفواتير ، وأوامر الخ اتباع القاعدة نشط القياسية : <br> إذا لم يتم التعرض للبائع IRPF ، ثم IRPF افتراضيا = 0. نهاية الحكم. <br> في حال التعرض للبائع IRPF ثم IRPF افتراضيا. نهاية الحكم. <br>
    -LocalTax2IsNotUsedDescES= افتراضيا IRPF المقترحة هي 0. نهاية الحكم.
    -LocalTax2IsUsedExampleES= في اسبانيا ، لحسابهم الخاص والمهنيين المستقلين الذين يقدمون الخدمات والشركات الذين اختاروا النظام الضريبي من وحدات.
    -LocalTax2IsNotUsedExampleES= في اسبانيا هم bussines لا تخضع لنظام ضريبي وحدات.
    +LocalTax1ManagementES=إدارة الطاقة المتجددة
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=افتراضيا الطاقة المتجددة المقترحة هي 0. نهاية الحكم.
    +LocalTax1IsUsedExampleES=في اسبانيا هم من المهنيين تخضع لبعض المقاطع المحددة للشركة التعليم الصوتي التفاعلي الاسبانية.
    +LocalTax1IsNotUsedExampleES=في اسبانيا هم المهنية والجمعيات وتخضع لقطاعات معينة من شركة التعليم الصوتي التفاعلي الاسبانية.
    +LocalTax2ManagementES=IRPF الإدارة
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=افتراضيا IRPF المقترحة هي 0. نهاية الحكم.
    +LocalTax2IsUsedExampleES=في اسبانيا ، لحسابهم الخاص والمهنيين المستقلين الذين يقدمون الخدمات والشركات الذين اختاروا النظام الضريبي من وحدات.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=تقارير عن الضرائب المحلية
     CalcLocaltax1=مبيعات - مشتريات
     CalcLocaltax1Desc=وتحسب تقارير الضرائب المحلية مع الفرق بين localtaxes المبيعات والمشتريات localtaxes
    @@ -958,7 +966,9 @@ CalcLocaltax3=مبيعات
     CalcLocaltax3Desc=تقارير الضرائب المحلية هي مجموعه localtaxes المبيعات
     LabelUsedByDefault=العلامة التي يستخدمها التقصير إذا لم يمكن العثور على ترجمة للقانون
     LabelOnDocuments=علامة على وثائق
    -NbOfDays=ملاحظة : من الأيام
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=في نهاية الشهر
     CurrentNext=Current/Next
     Offset=ويقابل
    @@ -984,7 +994,7 @@ DatabaseUser=قاعدة بيانات المستخدم
     DatabasePassword=قاعدة بيانات كلمة السر
     Tables=الجداول
     TableName=اسم الجدول
    -NbOfRecord=ملاحظة : من السجلات
    +NbOfRecord=No. of records
     Host=الخادم
     DriverType=سائق نوع
     SummarySystem=نظام معلومات موجزة
    @@ -996,7 +1006,7 @@ Skin=موضوع الجلد
     DefaultSkin=موضوع التقصير الجلد
     MaxSizeList=الحد الأقصى لطول قائمة
     DefaultMaxSizeList=افتراضي الطول الاقصى للقوائم
    -DefaultMaxSizeShortList=طول الأقصى الافتراضي للقوائم قصيرة (أي في بطاقة العميل)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=رسالة اليوم
     MessageLogin=ادخل صفحة الرسالة
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=دائم البحث عن شكل القائمة اليم
     DefaultLanguage=اللغة الافتراضية لاستخدام (شفرة اللغة)
     EnableMultilangInterface=تتيح واجهة متعددة اللغات
     EnableShowLogo=عرض الشعار على اليسار القائمة
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=اسم
     CompanyAddress=عنوان
     CompanyZip=الرمز البريدي
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=صاحب الحساب المصرفي %s
     BankModuleNotActive=الحسابات المصرفية وحدة لا يمكن
     ShowBugTrackLink=مشاهدة الرابط <strong>"%s"</strong>
     Alerts=تنبيهات
    -DelaysOfToleranceBeforeWarning=محذرا من التأخير قبل التسامح
    -DelaysOfToleranceDesc=تتيح لك هذه الشاشة لتحديد التأخير قبل السماح تنبيه يقال على الشاشة مع picto ٪ ق لكل عنصر في وقت متأخر.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=التسامح التأخير (في يوم) في حالة تأهب على المقترحات المعروضة ليقفل
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=تأخير التسامح (أيام) قبل تنبيه بشأن المقترحات لا توصف
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=تأخير التسامح (في يوم) في حالة تأهب قبل يوم والخدمات لتفعيل
    -Delays_MAIN_DELAY_RUNNING_SERVICES=تأخير التسامح (في أيام) قبل انتهاء حالة التأهب على الخدمات
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=تأخير التسامح (في يوم) في حالة تأهب قبل الموردين على الفواتير غير المدفوعة
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=تأخير التسامح (في يوم) في حالة تأهب قبل العملاء على الفواتير غير المدفوعة
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=تأخير التسامح (في يوم) في حالة تأهب قبل يوم في انتظار التسوية المصرفية
    -Delays_MAIN_DELAY_MEMBERS=تأخير التسامح (في يوم) في حالة تأهب قبل يوم تأخير رسوم العضوية
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=تأخير التسامح (في يوم) في حالة تأهب قبل لإيداع الشيكات للقيام
    -Delays_MAIN_DELAY_EXPENSEREPORTS=تأخير التسامح (بالأيام) قبل حالة تأهب لتقارير النفقات الموافقة
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=القيود الأخرى القائمة في إدارة اختياري البارامترات.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=مراجعة الحسابات الأحداث الأمنية
    -Audit=المراجعة
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=اسم المتصفح
     BrowserOS=متصفح OS
     ListOfSecurityEvents=قائمة الأحداث الأمنية Dolibarr
     SecurityEventsPurged=تطهير الاحداث الامنية
    -LogEventDesc=هنا يمكنك تمكين قطع الأشجار لDolibarr الأحداث الأمنية. يمكن للمشرفين ثم انظر مضمونه عبر <b>نظام</b> القائمة <b>أدوات -- لمراجعة الحسابات.</b> محذرا من أن هذه الميزة يمكن أن تستهلك كمية كبيرة من البيانات في قاعدة البيانات.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=نظام المعلومات المتنوعة المعلومات التقنية تحصل في قراءة فقط وواضحة للمشرفين فقط.
     SystemAreaForAdminOnly=هذا المجال المتاح لمدير المستخدمين فقط. أيا من Dolibarr أذونات يمكن أن تقلل من هذا الحد.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=يمكنك ان تختار كل معلمة إلى Dolibarr هنا الشكل والمظهر
     AvailableModules=Available app/modules
     ToActivateModule=لتفعيل وحدات ، على الإعداد منطقة الصفحة الرئيسية&gt; الإعداد -> الوحدات).
     SessionTimeOut=للمرة الخمسين
    -SessionExplanation=تضمن هذا العدد أن الدورة لن ينتهي قبل هذا التأخير. PHP sessoin ولكن الإدارة لا الكفالة التي دائما تنتهي الدورة بعد هذا التأخير : ويحدث هذا إذا كان نظام لتنظيف مخبأ الدورة الجارية. <br> ملاحظة : مع أي نظام الداخلي PHP عملية تنظيف كل دورة حوالي <b>٪ ق / %s</b> فقط ولكن وصول وصول أدلى به خلال دورات أخرى.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=محفزات متاحة
    -TriggersDesc=يطلق الملفات التي سوف يتم تعديل سلوك Dolibarr العمل نسخها مرة واحدة في الدليل <b>htdocs / تضم / محفزات.</b> ادركوا إجراءات جديدة ، وتفعيله على Dolibarr الأحداث (انشاء الشركة الجديدة ، والمصادقة على الفواتير ،...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=يطلق في هذا الملف من قبل المعوقين لاحقة بين <b>NORUN</b> باسمهم.
     TriggerDisabledAsModuleDisabled=يتسبب في تعطيل هذه الصورة هي وحدة قياسية <b>٪ ق</b> معوقا.
     TriggerAlwaysActive=يطلق في هذا الملف هي حركة دائمة ، وتفعيل ما هي وحدات Dolibarr.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=حدود / الدقيقة الإعداد
    -LimitsDesc=يمكنك تعريف حدود، توضيحات وتحقيق أمثلية المستخدمة من قبل Dolibarr هنا
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=ماكس عشرية لأسعار الوحدات
     MAIN_MAX_DECIMALS_TOT=الحد الأقصى لمجموع أسعار عشرية
     MAIN_MAX_DECIMALS_SHOWN=ماكس عشرية لأسعار تظهر على الشاشة (يضاف هذا العدد <b>بعد...</b> إذا كنت تريد أن <b>ترى...</b> عندما العدد مبتورة عندما تظهر على الشاشة)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=خطوة للتقريب النطاق (للبلدان ال
     UnitPriceOfProduct=صافي سعر وحدة من المنتج
     TotalPriceAfterRounding=إجمالي السعر الصافي / ضريبة القيمة المضافة / ضريبة مدفوع) بعد التقريب
     ParameterActiveForNextInputOnly=معلمة فعالة للمساهمة المقبل فقط
    -NoEventOrNoAuditSetup=لا أمن الحدث وقد سجلت حتى الآن. هذا طبيعي ويمكن مراجعة الحسابات اذا لم يتم تمكين "الإعداد -- الأمن -- مراجعة" الصفحة.
    -NoEventFoundWithCriteria=لا أمن حال تم العثور على مثل هذا البحث criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=انظر الى إرسال البريد الإعداد المحلي
     BackupDesc=لتقديم دعم كامل للDolibarr ، يجب عليك :
     BackupDesc2=حفظ محتويات الدليل وثائق <b>(٪) التي</b> تحتوي على كافة الملفات التي تم تحميلها ولدت (لذلك يشمل جميع ملفات تفريغ تم إنشاؤها في الخطوة 1).
    -BackupDesc3=حفظ محتوى قاعدة البيانات الخاصة بك <b>(%s) في</b> ملف تفريغ. لهذا، يمكنك استخدام مساعد التالي.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=الأرشيف دليل ينبغي أن تحفظ في مكان آمن.
     BackupDescY=وقد ولدت وينبغي التخلص من الملفات المخزنة في مكان آمن.
    -BackupPHPWarning=لا يمكن ضمان الخدمة الاحتياطية مع هذا الأسلوب. يفضل السابق
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Dolibarr لاستعادة النسخ الاحتياطي ، يجب عليك :
    -RestoreDesc2=استعادة ملف أرشيف (ملف مضغوط على سبيل المثال) من دليل الوثائق لاستخراج شجرة من الملفات في وثائق دليل تثبيت Dolibarr جديد أو إلى هذه الوثائق دليل الحالي <b>(%s).</b>
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=استعادة البيانات من ملف تفريغ النسخ الاحتياطي، في قاعدة بيانات التثبيت Dolibarr جديد أو إلى قاعدة البيانات من هذا التثبيت الحالي <b>(%s).</b> تحذير، بمجرد استعادة الانتهاء، يجب عليك استخدام تسجيل الدخول / كلمة المرور، التي كانت موجودة عندما تم النسخ الاحتياطي، والاتصال مرة أخرى. استعادة قاعدة بيانات النسخ الاحتياطي إلى هذا التثبيت الحالي، يمكنك اتباع هذا المساعد.
     RestoreMySQL=استيراد MySQL
     ForcedToByAModule= هذه القاعدة <b>%s</b> الى جانب تفعيل وحدة
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=يجب تشغيل هذا الأ
     YourPHPDoesNotHaveSSLSupport=وظائف خدمة تصميم المواقع لا تتوفر في بي الخاص بك
     DownloadMoreSkins=مزيد من جلود بتحميل
     SimpleNumRefModelDesc=إرجاع الرقم المرجعي مع شكل %s  yymm-NNNN حيث هو YY العام، مم هو الشهر وnnnn هو تسلسل بدون ثقب وبدون إعادة تعيين
    -ShowProfIdInAddress=إظهار رقم حرفي مع عناوين على وثائق
    -ShowVATIntaInAddress=إخفاء ضريبة القيمة المضافة داخل الأسطوانات مع العناوين على الوثائق
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=ترجمة جزئية
    -MAIN_DISABLE_METEO=تعطيل عرض ميتيو
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=اختبار الدخول إلى API
    -ProxyDesc=بعض ملامح Dolibarr في حاجة الى وصول الإنترنت إلى العمل. هنا تعريف المعلمات من أجل هذا. إذا كان الملقم Dolibarr خلف ملقم وكيل، هذه المعايير يقول Dolibarr كيفية الوصول إلى الإنترنت من خلال ذلك.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=وصول خارجي
     MAIN_PROXY_USE=استخدام ملقم وكيل (وصول مباشر إلى غير ذلك الإنترنت)
     MAIN_PROXY_HOST=الاسم / العنوان من ملقم وكيل
     MAIN_PROXY_PORT=المنفذ من ملقم وكيل
     MAIN_PROXY_USER=الدخول لاستخدام الملقم الوكيل
     MAIN_PROXY_PASS=كلمة مرور لاستخدام الملقم الوكيل
    -DefineHereComplementaryAttributes=هنا تعريف جميع atributes، لا تتوفر بالفعل افتراضيا، والتي تريد أن تدعم ل%s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=تكميلية سمات
     ExtraFieldsLines=سمات التكميلية (خطوط)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=سمات التكميلية (خطوط النظام)
     ExtraFieldsSupplierInvoicesLines=سمات التكميلية (خطوط الفاتورة)
     ExtraFieldsThirdParties=سمات التكميلية (مرشحين عن)
    -ExtraFieldsContacts=سمات التكميلية (الاتصال / العنوان)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=سمات التكميلية (عضو)
     ExtraFieldsMemberType=سمات التكميلية (النوع الأعضاء)
     ExtraFieldsCustomerInvoices=سمات التكميلية (الفواتير)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=alphanumericals فقط وشخصيات الحا
     SendmailOptionNotComplete=تحذير، في بعض أنظمة لينكس، لإرسال البريد الإلكتروني من البريد الإلكتروني الخاص بك، يجب أن تنسخ الإعداد تنفيذ conatins الخيار، على درجة البكالوريوس (mail.force_extra_parameters المعلمة في ملف php.ini الخاص بك). إذا كان بعض المستفيدين لم تلقي رسائل البريد الإلكتروني، في محاولة لتعديل هذه المعلمة PHP مع mail.force_extra_parameters =-BA).
     PathToDocuments=الطريق إلى وثائق
     PathDirectory=دليل
    -SendmailOptionMayHurtBuggedMTA=ميزة لإرسال رسائل باستخدام طريقة "البريد PHP مباشرة" سيتم إنشاء رسالة البريد الإلكتروني التي قد لا تحليل بشكل صحيح من قبل بعض ملقمات البريد المستقبلة. النتيجة هي أن بعض رسائل لا يمكن قراءتها من قبل الشعب الذي استضافته تلك البرامج تنصتت. انها حالة لبعض مزودي الانترنت (مثال: أورانج في فرنسا). هذه ليست مشكلة في Dolibarr ولا في PHP ولكن على استقبال خادم البريد. ولكن هل يمكن أن تضيف MAIN_FIX_FOR_BUGGED_MTA الخيار ل1 إلى الإعداد - البعض لتعديل Dolibarr لتجنب ذلك. ومع ذلك، قد تواجه مشكلة مع خوادم أخرى تحترم بدقة المعيار SMTP. الحل الآخر (موصى به) هو استخدام طريقة "مكتبة مأخذ SMTP" الذي لا يوجد لديه عيوب.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=يجب على الأقل تمكين 1 وحدة
    -ClassNotFoundIntoPathWarning=لم يتم العثور على  %s في مسار PHP
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=نعم في الصيف
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=تخزين جلسة المشفرة بواسطة Suhosin
     ConditionIsCurrently=الشرط هو حاليا %s
    -YouUseBestDriver=استخدام سائق %s التي هو أفضل سائق المتاحة حاليا.
    -YouDoNotUseBestDriver=استخدام يوصى قرص٪ s ولكن سائق%s.
    -NbOfProductIsLowerThanNoPb=لديك %s فقط المنتجات / الخدمات إلى قاعدة البيانات. هذا لا يتطلب أي الأمثل معين.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=البحث الأمثل
    -YouHaveXProductUseSearchOptim=لديك منتج %s في قاعدة البيانات. يجب عليك إضافة PRODUCT_DONOTSEARCH_ANYWHERE ثابت إلى 1 في الصفحة الرئيسية الإعداد-أخرى، قصر البحث على بداية السلاسل مما يجعل من الممكن لقاعدة البيانات لاستخدام مؤشر ويجب أن تحصل على استجابة فورية.
    -BrowserIsOK=كنت تستخدم متصفح الويب %s. هذا المتصفح على ما يرام بالنسبة للأمن والأداء.
    -BrowserIsKO=كنت تستخدم متصفح الويب %s ويعرف هذا المتصفح أن يكون خيارا سيئا للأمن والأداء والموثوقية. نحن انصح لك استخدام فايرفوكس، كروم، أوبرا وسفاري.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug غير محملة.
     XCacheInstalled=XCache غير محملة.
    -AddRefInList=عرض العميل / المورد المرجع في قائمة (قائمة أو منسدل اختيار) وأكثر من الارتباط التشعبي. سوف أطراف ثالثة يظهر مع اسم "CC12345 - SC45678 - وcoorp شركة كبيرة"، بدلا من "وcoorp شركة كبيرة".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=طبعة من ميدان%s
     FillThisOnlyIfRequired=مثال: +2 (ملء إلا إذا تعوض توقيت المشاكل من ذوي الخبرة)
     GetBarCode=الحصول على الباركود
     ##### Module password generation
     PasswordGenerationStandard=عودة كلمة سر ولدت الداخلية وفقا لخوارزمية Dolibarr : 8 أحرف مشتركة تتضمن الأرقام والحروف في حرف صغير.
    -PasswordGenerationNone=لا توحي بأي كلمة المرور التي تم إنشاؤها. يجب أن تكتب كلمة المرور في يدويا.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=ترجع كلمة المرور الخاصة بك وفقا لتكوين المعرفة شخصيا.
     SetupPerso=وفقا لتكوين الخاصة بك
     PasswordPatternDesc=وصف نمط كلمة المرور
    @@ -1195,23 +1206,23 @@ UserMailRequired=مطلوب بريد إلكتروني لإنشاء مستخدم
     HRMSetup=HRM وحدة الإعداد
     ##### Company setup #####
     CompanySetup=وحدة الإعداد للشركات
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=وثائق قوالب
    -DocumentModelOdt=توليد وثائق من OpenDocuments القوالب (.ODT أو .ODS ملفات أوفيس، كي أوفيس، برنامج TextEdit، ...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=علامة مائية على مشروع الوثيقة
     JSOnPaimentBill=ميزة تفعيل لتدوين كلمات خطوط المبلغ على شكل دفع
    -CompanyIdProfChecker=المهنية معرف فريد
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=تصدير صلة <b>%s </b> شكل متاح على الوصلة التالية : %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=تصدير صلة <b>%s </b> شكل متاح على ال
     BillsSetup=وحدة إعداد الفواتير
     BillsNumberingModule=الفواتير والقروض وتلاحظ وحدة الترقيم
     BillsPDFModules=فاتورة نماذج الوثائق
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=علما الائتمان
     CreditNotes=ويلاحظ الائتمان
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= إدارة تسجيل الدخول لكل عضو
     AdherentMailRequired=البريد الإلكتروني المطلوب لإنشاء عضو جديد
     MemberSendInformationByMailByDefault=مربع لإرسال الرسائل للأعضاء تأكيدا على افتراضي
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP الإعداد
     LDAPGlobalParameters=المعايير العالمية
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= اختبار البحث LDAP
     LDAPSynchroOK=تزامن اختبار ناجح
     LDAPSynchroKO=فشل تزامن الاختبار
    -LDAPSynchroKOMayBePermissions=تزامن فشل الاختبار. تأكد من أن ارتباط لخادم تهيئتها بشكل صحيح ، ويسمح LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=ربط برنامج التعاون الفني لخادم LDAP ناجحة (٪ ق= خادم بورت= ٪)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=ربط برنامج التعاون الفني لخادم LDAP فشل (خادم ق= ٪ بورت= ٪)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=ربط / Authentificate لخادم LDAP فشل (خادم ق= ٪ بورت= ٪ ق ، ق= ٪ الادارية ، كلمة المرور= ٪)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=خادم LDAP تهيئتها للنسخة 3
     LDAPSetupForVersion2=خادم LDAP لتكوين نسخة 2
     LDAPDolibarrMapping=Dolibarr رسم الخرائط
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=ادخل (سامبا ، activedirectory)
     LDAPFieldLoginSambaExample=مثال ذلك : samaccountname
     LDAPFieldFullname=الاسم الكامل
     LDAPFieldFullnameExample=مثال ذلك : cn
    -LDAPFieldPasswordNotCrypted=كلمة السر لا crypted
    -LDAPFieldPasswordCrypted=كلمة السر crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=مثال ذلك : userPassword
     LDAPFieldCommonNameExample=مثال ذلك : cn
     LDAPFieldName=اسم
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=مثال قيم تهدف <b>لOpenLDAP</b> مع مخططات بعد تحميلها : <b>core.schema ، cosine.schema ، inetorgperson.schema).</b> إذا كنت تستخدم thoose القيم وOpenLDAP تعديل LDAP الخاص بك ملف <b>slapd.conf</b> لجميع مخططات thoose تحميله.
     ForANonAnonymousAccess=لصحتها accès (لكتابة الحصول على سبيل المثال)
     PerfDolibarr=الإعداد أداء / تحسين تقرير
    -YouMayFindPerfAdviceHere=سوف تجد في هذه الصفحة بعض الشيكات أو النصائح المتعلقة بالأداء.
    -NotInstalled=غير مثبتة، لذلك الخادم الخاص بك لا تبطئ من هذا الأمر.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=مخبأ تطبيقي
     MemcachedNotAvailable=لم يتم العثور على مخبأ تطبيقي. يمكنك تحسين الأداء عن طريق تثبيت أعطها مخبأ خادم وحدة قادرة على استخدام هذا الخادم ذاكرة التخزين المؤقت. <br> مزيد من المعلومات هنا <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN.</a> <br> لاحظ أن الكثير من مزود استضافة المواقع لا توفر مثل هذا الخادم ذاكرة التخزين المؤقت.
     MemcachedModuleAvailableButNotSetup=وحدة أعطها لمخبأ تطبيقي وجدت ولكن الإعداد من وحدة ليست كاملة.
     MemcachedAvailableAndSetup=يتم تمكين أعطها حدة مخصصة لاستخدام الخادم أعطها.
     OPCodeCache=مخبأ شفرة التشغيل
    -NoOPCodeCacheFound=لم يتم العثور على مخبأ شفرة التشغيل. قد تكون استخدمت مخبأ شفرة تشغيل آخر من XCache أو eAccelerator (جيد)، قد يكون لم يكن لديك ذاكرة التخزين المؤقت شفرة التشغيل (سيئة جدا).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=مخبأ HTTP للموارد ثابتة (المغلق، IMG، وجافا سكريبت)
     FilesOfTypeCached=يتم التخزين المؤقت الملفات من نوع%s من قبل خادم HTTP
     FilesOfTypeNotCached=لا يتم التخزين المؤقت الملفات من نوع %s  من قبل خادم HTTP
     FilesOfTypeCompressed=يتم ضغط الملفات من نوع %s من قبل خادم HTTP
     FilesOfTypeNotCompressed=لا يتم ضغط الملفات من نوع %s من قبل خادم HTTP
     CacheByServer=ذاكرة التخزين المؤقت من قبل خادم
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=الذاكرة المخبئية من خلال متصفح
     CompressionOfResources=ضغط الردود HTTP
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=مثل هذا الكشف التلقائي غير ممكن مع المتصفحات الحالية
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=المنتجات وحدة الإعداد
     ServiceSetup=خدمات وحدة الإعداد
     ProductServiceSetup=منتجات وخدمات إعداد وحدات
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=الحد الأقصى لعدد من المنتجات في اختيار قوائم المجموعات (0= لا حدود)
    -ViewProductDescInFormAbility=تصور وصف المنتج في أشكال (ما المنبثقة tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=في تنشيط المنتج / الخدمة المرفقة التبويب ملفات خيار دمج المستند المنتج PDF إلى اقتراح PDF دازور إذا كان المنتج / الخدمة في الاقتراح
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=أيضا إذا كان لديك عدد كبير من المنتجات (> 100 000)، يمكنك زيادة السرعة عن طريق وضع PRODUCT_DONOTSEARCH_ANYWHERE ثابت إلى 1 في الإعداد، <أخرى. وبعد ذلك البحث أن يقتصر على بداية السلسلة.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=النوع الافتراضي لاستخدام الباركود للمنتجات
     SetDefaultBarcodeTypeThirdParties=النوع الافتراضي لاستخدام الباركود لأطراف ثالثة
     UseUnits=تحديد وحدة قياس لكمية خلال النظام، الطبعة اقتراح أو فاتورة خطوط
    @@ -1503,7 +1517,7 @@ SendingsSetup=ارسال وحدة الإعداد
     SendingsReceiptModel=ارسال استلام نموذج
     SendingsNumberingModules=Sendings ترقيم الوحدات
     SendingsAbility=أوراق دعم الشحن للشحنات العملاء
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=النص الحر على الشحنات
     ##### Deliveries #####
     DeliveryOrderNumberingModules=تلقي شحنات المنتجات الترقيم وحدة
    @@ -1515,18 +1529,18 @@ AdvancedEditor=محرر متقدم
     ActivateFCKeditor=تفعيل محرر متقدم ل:
     FCKeditorForCompany=WYSIWIG إنشاء / الطبعة شركات ووصف المذكرة
     FCKeditorForProduct=WYSIWIG إنشاء / الطبعة المنتجات / الخدمات ووصف المذكرة
    -FCKeditorForProductDetails=WYSIWIG إنشاء / طبعة من المنتجات تفاصيل الخطوط لجميع الكيانات (المقترحات والأوامر، والفواتير، الخ ...) <font class="warning">تحذير: استخدام هذا الخيار لهذه الحالة على محمل الجد ليس الموصى بها لأنها يمكن أن تخلق مشاكل مع الأحرف الخاصة وصيغة الصفحة عند بناء PDF الملفات.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG إنشاء / الطبعة بالبريد
     FCKeditorForUserSignature=إنشاء WYSIWIG / طبعة التوقيع المستعمل
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=نجح الصدد ولكن قاعدة البيانات لا يبدو أن قاعدة بيانات OSCommerce (%s  الرئيسية غير موجودة في الجدول %s ).
    -OSCommerceTestOk=اتصال الخادم '%s ' على قاعدة البيانات '%s ' مع المستخدم '%s ' النجاح.
    -OSCommerceTestKo1=علاقة الخادم '%s ' تنجح ولكن قاعدة البيانات '%s ' لا يمكن التوصل إليها.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=علاقة الخادم '%s ' مستخدم '%s ' فشلت.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=إذا كنت تستخدم نقاط البيع وحدة (وحدة POS قدمت افتراضيا أو وحدة خارجية أخرى)، قد يتم تجاهل هذا الإعداد من خلال وجهة نظرك من بيع وحدة. تم تصميم معظم نقطة من وحدات المبيعات لخلق الفور فاتورة وانخفاض الأسهم افتراضيا كل ما هي الخيارات المتاحة هنا. لذلك، إذا كنت في حاجة أو ليس لديهم انخفاض الأسهم عند تسجيل بيع من وجهة نظرك من بيع، وتحقق أيضا مجموعة وحدة POS الخاص بك.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=حذف من القائمة
     Menus=القوائم
    @@ -1548,7 +1562,7 @@ DetailRight=حالة رمادية غير مصرح بها للعرض القوائ
     DetailLangs=لانغ لتسمية اسم ملف الترجمة مدونة
     DetailUser=المتدرب / خارجي / الكل
     Target=الهدف
    -DetailTarget=هدف وصلات (_blank كبار فتح نافذة جديدة)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=المستوى (-1 : الأعلى ، 0 : رأس القائمة ،&gt; 0 القائمة والقائمة الفرعية)
     ModifMenu=قائمة التغيير
     DeleteMenu=حذف من القائمة الدخول
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=ومن المقرر ان ضريبة القيمة المضا
     OptionVatDebitOptionDesc=ومن المقرر ان ضريبة القيمة المضافة : <br> -- التسليم / الدفع للسلع <br> -- على الفاتورة (الخصم) للخدمات
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=وقت exigibility VAT افتراضيا وفقا لخيار المختار:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=التسليم
     OnPayment=عن الدفع
     OnInvoice=على فاتورة
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=شراء الحساب. رمز
     AgendaSetup=جدول الأعمال وحدة الإعداد
     PasswordTogetVCalExport=مفتاح ربط تصدير تأذن
     PastDelayVCalExport=لا تصدر الحدث الأكبر من
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=تلقائيا تعيين هذه القيمة الافتراضية لنوع من الحدث إلى الحدث إنشاء النموذج
    -AGENDA_DEFAULT_FILTER_TYPE=تلقائيا تعيين هذا النوع من الأحداث في تصفية بحثا عن عرض جدول الأعمال
    -AGENDA_DEFAULT_FILTER_STATUS=تلقائيا تعيين هذه الحالة مع الأحداث في تصفية بحثا عن عرض جدول الأعمال
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=علامة التبويب التي تريد فتح افتراضيا عند اختيار القائمة جدول الأعمال
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=انقر لإعداد وحدة الاتصال الهاتفي
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=هذه الوحدة تسمح لجعل أرقام هواتف يمكن النقر عليها. وهناك انقر على هذه الأيقونة دعوة تجعل هاتفك إلى الاتصال برقم الهاتف. وهذا يمكن أن تستخدم لاستدعاء نظام مركز الاتصال من Dolibarr يمكن أن نسميه ورقم الهاتف على نظام SIP على سبيل المثال.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=مجرد استخدام الرابط "الهاتف:" على أرقام الهواتف
    -ClickToDialUseTelLinkDesc=استخدام هذا الأسلوب إذا كان المستخدمون يكون الهاتف الرقمي أو واجهة البرامج المثبتة على الكمبيوتر نفسه من المتصفح، ويسمى عند النقر على رابط في المتصفح التي تبدأ ب "الهاتف". إذا كنت في حاجة الى حل خادم الكامل (لا حاجة لتثبيت البرامج المحلية)، يجب عليك تعيين هذا إلى "لا" وملء الحقل التالي.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=نقاط البيع
     CashDeskSetup=مكتب الإعداد وحدة نقدية
    -CashDeskThirdPartyForSell=افتراضي طرف ثالث عام على استخدام لتبيع
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=الحساب النقدي لاستخدامها لتبيع
     CashDeskBankAccountForCheque= حساب لاستخدام لتلقي المدفوعات عن طريق الشيكات
     CashDeskBankAccountForCB= حساب لاستخدام لاستلام المبالغ النقدية عن طريق بطاقات الائتمان
    -CashDeskDoNotDecreaseStock=تعطيل انخفاض الأسهم عندما يتم عمليات بيع من نقاط البيع (إذا كان "لا"، ويتم ذلك انخفاض الأسهم لكل تبيع القيام به من نقاط البيع، ومهما تم تعيين الخيار إلى وحدة المالية).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=قوة وتحد من مستودع لاستخدامها لانخفاض الأسهم
    -StockDecreaseForPointOfSaleDisabled=انخفاض الأسهم من نقاط البيع تعطيل
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=انخفاض الأسهم في POS غير متوافق مع الكثير الإدارة
    -CashDeskYouDidNotDisableStockDecease=أنت لم تقم بتعطيل انخفاض الأسهم عند اتخاذ قرار بيع من نقاط البيع. لذلك لا بد من المستودع.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=إعداد وحدة المرجعية
    -BookmarkDesc=هذا النموذج يسمح لك لإدارة العناوين. يمكنك أيضا إضافة أي Dolibarr اختصارات لصفحات أو مواقع الويب externale على القائمة اليمنى.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=أكبر عدد ممكن من العناوين تظهر في القائمة اليمنى
     ##### WebServices #####
     WebServicesSetup=إعداد وحدة خدمات الويب
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=نموذج متعدد شركة الإعداد
     ##### Suppliers #####
     SuppliersSetup=المورد الإعداد وحدة
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=فواتير الموردين الذين يبلغ عددهم نماذج
     IfSetToYesDontForgetPermission=إذا اخترت نعم، لا تنسى أن توفر الأذونات إلى المجموعات أو المستخدمين المسموح بها للموافقة الثانية
    @@ -1654,7 +1668,7 @@ ProjectsSetup=مشروع إعداد وحدة
     ProjectsModelModule=المشروع نموذج التقرير وثيقة
     TasksNumberingModules=مهام ترقيم وحدة
     TaskModelModule=تقارير المهام ثيقة نموذجية
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=قد تجد خيارات 
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=قائمة الإشعارات ثابت
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=عتبة
     BackupDumpWizard=المعالج لبناء قاعدة بيانات النسخ الاحتياطي ملف تفريغ
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=تثبيت وحدة خارجية من
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=تسليط الضوء على خطوط الجدول عندما يمر تحرك الماوس فوق
     HighlightLinesColor=تسليط الضوء على لون الخط عند تمرير الماوس فوق (الحفاظ فارغة دون تمييز)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=لون الروابط
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=لون الخلفية حتى خطوط الجدول
     MinimumNoticePeriod=الحد الأدنى لمدة إشعار (يجب أن يتم طلب إجازة قبل هذا التأخير)
     NbAddedAutomatically=عدد الأيام تضاف إلى العدادات من المستخدمين (تلقائيا) كل شهر
     EnterAnyCode=يحتوي هذا الحقل على إشارة لتحديد الخط. أدخل أي قيمة من اختيارك، ولكن من دون أحرف خاصة.
    -UnicodeCurrency=أدخل هنا بين الأقواس، وقائمة من عدد البايت التي تمثل رمز العملة. لexemple: ل$، أدخل [36] - للبرازيل R الحقيقي $ [82،36] - ل€، أدخل [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=موقف خط في قوائم السرد
     SellTaxRate=بيع معدل الضريبة
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=إذا كان مزود الخدمة أو النقل تقديم صفحة أو موقع على شبكة الإنترنت للتحقق من حالة الشحن الخاص بك، يمكنك إدخاله هنا. يمكنك استخدام مفتاح {خاصية TrackID} إلى المعلمات URL وبالتالي فإن النظام سوف يحل محله مع دخلت قيمة عدد تتبع المستخدم في بطاقة الشحن.
    -OpportunityPercent=عند إنشاء فرصة، وسوف تعريف المبلغ المقدر للمشروع / الرصاص. وفقا لحالة من فرصة، قد تكون multiplicated هذا المبلغ من قبل هذا المعدل لتقييم كمية العالمي عن فرص الخاص بك قد تولد. القيمة هي في المئة (ما بين 0 و 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=ويكرس هذا السجل القالب الذي عنصر
     TypeOfTemplate=نوع القالب
    -TemplateIsVisibleByOwnerOnly=قالب مرئيا من قبل المالك فقط
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=الإصلاح والوقت
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=مثال على رسالة يمكنك استخدامها ليعلن هذا الإصدار الرئيسي (لا تتردد في استخدامها على مواقع الويب الخاص بك)
     TitleExampleForMaintenanceRelease=مثال على الرسالة التي يمكن استخدامها ليعلن هذا البيان الصيانة (لا تتردد في استخدامها على مواقع الويب الخاص بك)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=عندما خيار "مستوى العديد من الأسعار لكل المنتجات / الخدمات" في وضع التشغيل، يمكنك تحديد أسعار مختلفة (واحد لكل مستوى الأسعار) لكل منتج. لتوفير الوقت، يمكنك الدخول هنا حكم أن يكون السعر لكل مستوى autocalculated وفقا لسعر المستوى الأول، لذلك سيكون لديك للدخول الثمن الوحيد للمستوى الأول على كل منتج. هذه الصفحة هي هنا لتوفر لك الوقت ويمكن أن تكون مفيدة فقط إذا كانت الأسعار الخاص لكل LEVE قريبة إلى المستوى الأول. يمكنك تجاهل هذه الصفحة في معظم الحالات.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=الرمز البريدي
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/ar_SA/banks.lang b/htdocs/langs/ar_SA/banks.lang
    index f4941b1e2f9..0101f4aedb1 100644
    --- a/htdocs/langs/ar_SA/banks.lang
    +++ b/htdocs/langs/ar_SA/banks.lang
    @@ -7,7 +7,7 @@ BankName=اسم المصرف
     FinancialAccount=الحساب
     BankAccount=الحساب المصرفي
     BankAccounts=الحسابات المصرفية
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=عرض الحساب
     AccountRef=مرجع الحساب المالي
     AccountLabel=بطاقة الحساب المالي
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=عنوان الحساب
     BankAccountCountry=بلد حساب
     BankAccountOwner=اسم صاحب الحساب
     BankAccountOwnerAddress=عنوان مالك الحساب
    -RIBControlError=فشل التحقق من سلامة القيم. وهذا يعني أن المعلومات الخاصة برقم الحساب هذا غير كاملة أو خاطئة (راجع البلد والأرقام و إيبان).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=إنشاء حساب
     NewBankAccount=حساب جديد
     NewFinancialAccount=حساب مالي جديد
    @@ -76,6 +76,7 @@ TransactionsToConciliate=قيود للتسويات
     Conciliable=يمكن أن يتم تسويتة
     Conciliate=التسوية
     Conciliation=تسوية
    +SaveStatementOnly=Save statement only
     ReconciliationLate=التسوية في وقت متأخر
     IncludeClosedAccount=وتشمل حسابات مغلقة
     OnlyOpenedAccount=الحسابات المفتوحة فقط
    @@ -104,7 +105,7 @@ SocialContributionPayment=مدفوعات الضرائب الاجتماعية / 
     BankTransfer=حوالة مصرفية
     BankTransfers=حوالات المصرفية
     MenuBankInternalTransfer=حوالة داخلية
    -TransferDesc=التحويل من حساب إلى آخر، سوف يقوم دوليبار بكتابة سجلين (مدين في حساب المصدر و دائن في حساب الهدف، نفس المبلغ (باستثناء العلامة)، سيتم استخدام البطاقة و التاريخ لهذه المعاملة)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=من
     TransferTo=إلى
     TransferFromToDone=التحويل من <b>%s</b>إلى <b>%s</b>من <b>%s</b>%s قد تم تسجيلة.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=هل انت متأكد أنك تريد حذف هذا 
     BankChecks=الشيكات المصرفية
     BankChecksToReceipt=شيكات في انتظار الإيداع
     ShowCheckReceipt=عرض إيصال إيداع شيكات
    -NumberOfCheques=عدد الشيكات
    +NumberOfCheques=No. of check
     DeleteTransaction=حذف المعاملة
     ConfirmDeleteTransaction=هل تريد بالتأكيد حذف هذه المعاملة؟
     ThisWillAlsoDeleteBankRecord=سيؤدي هذا أيضا إلى حذف القيد البنكي الذي تم إنشاؤه
    @@ -135,8 +136,8 @@ BankTransactionLine=قيد البنك
     AllAccounts=All bank and cash accounts
     BackToAccount=عودة إلى الحساب
     ShowAllAccounts=عرض لجميع الحسابات
    -FutureTransaction=المعاملة أجلة. لا يوجد فرصة للتسوية.
    -SelectChequeTransactionAndGenerate=تحديد / تصفية الشيكات ليتم تضمينها في ايصال ايداع الشيكات وانقر على  "إنشاء".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=اختيار كشف الحساب البنكي ذات الصلة مع التسوية. استخدام قيمة رقمية للفرز: شهر سنة أو يوم شهر سنة
     EventualyAddCategory=في نهاية المطاف، حدد الفئة التي لتصنيف السجلات
     ToConciliate=للتسوية؟
    @@ -153,7 +154,7 @@ RejectCheckDate=تاريخ إرجاع الشيك
     CheckRejected=تم إرجاع الشيك
     CheckRejectedAndInvoicesReopened=تم ارجاع الشيك وإعادة فتح الفواتير
     BankAccountModelModule=نماذج مستندات للحسابات البنكية
    -DocumentModelSepaMandate=نموذج تفويض سيبا. مفيدة للبلدان الأوروبية في السوق الأوروبية المشتركة فقط.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=نموذج لطباعة صفحة تحتوي على معلومات BAN .
     NewVariousPayment=مدفوعات متنوعة جديدة
     VariousPayment=مدفوعات متنوعة
    @@ -162,4 +163,5 @@ ShowVariousPayment=عرض الدفعات المتنوعة
     AddVariousPayment=إضافة دفعات متنوعة
     SEPAMandate=SEPA mandate
     YourSEPAMandate=تفويض سيبا الخاص بك
    -FindYourSEPAMandate=هذا هو تفويض سيبا الخاصة بك لتخويل شركتنا لتقديم أمر الخصم المباشر إلى البنك الذي تتعامل معه. شكرا للعودة وقعت (فحص الوثيقة الموقعة) أو إرسالها عن طريق البريد إلى
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/ar_SA/bills.lang b/htdocs/langs/ar_SA/bills.lang
    index ad6cde19245..194e9f2fb71 100644
    --- a/htdocs/langs/ar_SA/bills.lang
    +++ b/htdocs/langs/ar_SA/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=الفاتورة الأولية
     InvoiceProFormaDesc=<b> الفاتورة المبدئية </b> عبارة عن صورة فاتورة حقيقية ولكنها لا تحتوي على قيمة للمحاسبة.
     InvoiceReplacement=استبدال الفاتورة
     InvoiceReplacementAsk=فاتورة استبدال الفاتورة
    -InvoiceReplacementDesc=<b> الفاتورة البديلة</b> يتم استخدامها لإلغاء واستبدال بالكامل الفاتورة التي لا تتضمن أية دفعات عليها. <br> <br> ملاحظة: لا يمكن استبدال سوى الفواتير التي لا تتضمن أية دفعات عليها. إذا لم يتم إغلاق الفاتورة التي استبدلتها بعد، فسيتم إغلاقها تلقائيا إلى "مهمل".
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=ملاحظة ائتمانية
     InvoiceAvoirAsk=ملاحظة ائتمانية لتصحيح الفاتورة
    -InvoiceAvoirDesc=<b> الملاحظة الائتمانية</b> عبارة عن فاتورة سلبية تستخدم لحل حقيقة أن الفاتورة تحتوي على مبلغ يختلف عن المبلغ المدفوع فعلا (لأن العميل دفع مبالغ كبيرة عن طريق الخطأ، أو لن يدفعوا بشكل كامل حيث أنه اعاد بعض المنتجات على سبيل المثال).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=إنشاء الائتمان ملاحظة مع خطوط من الفاتورة الأصلية
     invoiceAvoirWithPaymentRestAmount=إنشاء الائتمان ملاحظة مع المتبقية غير المسددة من الفاتورة الأصلية
     invoiceAvoirLineWithPaymentRestAmount=ملاحظة الائتمان للبقاء المبلغ غير المدفوع
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=تسديدها
     DeletePayment=حذف الدفعة
     ConfirmDeletePayment=هل انت متأكد انك ترغب في حذف هذه الدفعة؟
    -ConfirmConvertToReduc=هل تريد تحويل هذا %s إلى خصم مطلق؟<br> سيتم حفظ المبلغ حتى بين جميع الخصومات، ويمكن استخدامها كخصم لفاتورة الحالية أو المستقبلية لهذا العميل.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=مدفوعات الموردين
     ReceivedPayments=المدفوعات المستلمة
     ReceivedCustomersPayments=المدفوعات المستلمة من العملاء
    -PayedSuppliersPayments=المدفوعات التي دفعت للموردين
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=تلقى مدفوعات عملاء للمصادقة
     PaymentsReportsForYear=تقارير المدفوعات لل%s
     PaymentsReports=تقارير المدفوعات
    @@ -91,8 +91,8 @@ PaymentConditionsShort=شروط الدفع
     PaymentAmount=دفع مبلغ
     ValidatePayment=تحقق من الدفع
     PaymentHigherThanReminderToPay=دفع أعلى من دفع تذكرة
    -HelpPaymentHigherThanReminderToPay=الاهتمام ، على دفع مبلغ واحد أو أكثر من فواتير أعلى من الراحة على الدفع. <br> تعديل الدخول ، تؤكد خلاف ذلك والتفكير في إنشاء الائتمان علما الزائدة وتلقى كل الفواتير الزائدة.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=تصنيف 'مدفوع'
     ClassifyPaidPartially=تصنيف 'مدفوع جزئيا'
     ClassifyCanceled=تصنيف 'المهجورة'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=مغلقة (غير مدفوعة الأجر)
     BillStatusClosedPaidPartially=دفعت (جزئيا)
     BillShortStatusDraft=مسودة
     BillShortStatusPaid=دفع
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=دفع
     BillShortStatusCanceled=المهجورة
     BillShortStatusValidated=صادق
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=مغلقة
     BillShortStatusClosedPaidPartially=دفعت (جزئيا)
     PaymentStatusToValidShort=للمصادقة
    -ErrorVATIntraNotConfigured=Intracommunautary رقم الضريبة على القيمة المضافة لم تحدد بعد
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=لا يعرف طريقة الدفع الافتراضية. الذهاب الى الفاتورة وحدة لتحديد هذا الإعداد.
     ErrorCreateBankAccount=إنشاء حساب مصرفي ، ثم يذهب إلى إعداد فريق من الفاتورة وحدة لتحديد طرق الدفع
     ErrorBillNotFound=فاتورة %s لا يوجد
    -ErrorInvoiceAlreadyReplaced=خطأ ، في محاولة لإثبات صحة فاتورة لتحل محل الفاتورة ٪ s. ولكن هذا قد تم الاستعاضة عن فاتورة ٪ s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=خطأ الخصم المستخدمة بالفعل
     ErrorInvoiceAvoirMustBeNegative=خطأ ، والصحيح يجب أن يكون للفاتورة بمبلغ سلبي
     ErrorInvoiceOfThisTypeMustBePositive=خطأ ، وهذا النوع من فاتورة يجب أن يكون إيجابيا المبلغ
     ErrorCantCancelIfReplacementInvoiceNotValidated=خطأ ، لا يمكن إلغاء الفاتورة التي حلت محلها اخرى الفاتورة التي لا تزال في حالة مشروع
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=من
     BillTo=مشروع قانون ل
     ActionsOnBill=الإجراءات على فاتورة
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=تبقى بدون أجر <b>(%s%s) هو</b> الخصم الممنوح لأنه تم السداد قبل الأجل. I تسوية الضريبة على القيمة المضافة مع ملاحظة الائتمان.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=تبقى بدون أجر <b>(%s%s) هو</b> الخصم الممنوح لأنه تم السداد قبل الأجل. أنا أقبل أن تفقد ضريبة القيمة المضافة على هذا الخصم.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=تبقى بدون أجر <b>(%s%s) هو</b> الخصم الممنوح لأنه تم السداد قبل الأجل. I استرداد ضريبة القيمة المضافة على هذا الخصم دون مذكرة الائتمان.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=العملاء سيئة
     ConfirmClassifyPaidPartiallyReasonProductReturned=المنتجات عاد جزئيا
     ConfirmClassifyPaidPartiallyReasonOther=التخلي عن المبلغ لسبب آخر
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=هذا الخيار ممكن إذا الفاتورة تم تزويد مناسبة. (مثال «فقط الضرائب المقابلة إلى أن الأسعار قد دفعت فعلا تعطي الحقوق لخصم»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=في بعض البلدان ، وهذا الخيار قد يكون ممكنا إلا إذا الفاتورة صحيحة وتتضمن المذكرة.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=استخدام هذا الخيار إذا كان كل ما لا يتناسب مع
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=وهناك <b>سوء العميل</b> عميل التي ترفض سداد ديونه.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=ويستخدم هذا الاختيار عند الدفع ليس كاملا لأن بعض المنتجات أعيدت
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=استخدام هذا الخيار إذا كان كل ما لا يتناسب مع غيرها ، على سبيل المثال في الحالة التالية : <br> -- دفع ليست كاملة لأن بعض المنتجات شحنت العودة <br> -- أهم من المبلغ المطالب به لأن الخصم هو نسيان <br> في جميع الحالات ، والمبالغة في المبلغ المطالب به لا بد من تصحيحه في نظام المحاسبة عن طريق إنشاء الائتمان المذكرة.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=أخرى
     ConfirmClassifyAbandonReasonOtherDesc=هذا الخيار وسوف يستخدم في جميع الحالات الأخرى. على سبيل المثال لأنك من خطة لإقامة استبدال الفاتورة.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=التحقق من صحة الفواتير
     UnvalidateBill=Unvalidate فاتورة
    -NumberOfBills=ملاحظة : من الفواتير
    -NumberOfBillsByMonth=ملحوظة من الفواتير من قبل شهر
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=مبلغ الفواتير
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=كمية من الفواتير من قبل شهر (بعد خصم الضرائب)
     ShowSocialContribution=تظهر الضريبة الاجتماعية / المالية
     ShowBill=وتظهر الفاتورة
    @@ -260,9 +262,9 @@ Repeatables=النماذج
     ChangeIntoRepeatableInvoice=تحويل إلى قالب فاتورة
     CreateRepeatableInvoice=إنشاء فاتورة قالب
     CreateFromRepeatableInvoice=إنشاء من قالب الفاتورة
    -CustomersInvoicesAndInvoiceLines=فواتير العملاء والفواتير 'خطوط
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=العملاء والفواتير والمدفوعات
    -ExportDataset_invoice_1=قائمة العملاء والفواتير والفواتير 'خطوط
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=العملاء والفواتير والمدفوعات
     ProformaBill=Proforma بيل :
     Reduction=تخفيض
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=مشروع قانون معالجة
    -HelpEscompte=هذا الخصم هو الخصم الممنوح للعميل لأن الدفع قبل البعيد.
    -HelpAbandonBadCustomer=هذا المبلغ قد تم التخلي عنها (وذكر أن العملاء سيئة العملاء) ، ويعتبر أحد exceptionnal فضفاضة.
    -HelpAbandonOther=هذا المبلغ قد تم التخلي عنها لأنها كانت خطأ (خطأ أو فاتورة العميل أي بعبارة أخرى على سبيل المثال)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=اجتماعي / ضريبة مالية دفع معرف
     PaymentId=دفع معرف
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=لا فاتورة مختارة
     CloneInvoice=استنساخ الفاتورة
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=العمل والمعوقين بسبب الفاتورة قد استبدل
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=ملاحظة : للمدفوعات
    +DescTaxAndDividendsArea=تقدم هذا المجال ملخص لجميع المبالغ المدفوعة للنفقات الخاصة. يتم تضمين السجلات فقط مع دفع خلال السنة الثابتة هنا.
    +NbOfPayments=No. of payments
     SplitDiscount=انقسام في الخصم
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=مقدار مساهمة كل من جزأين :
    -TotalOfTwoDiscountMustEqualsOriginal=مجموعه جديدتين الخصم يجب أن تكون مساوية للخصم المبلغ الأصلي.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=الفاتورة ذات الصلة
     RelatedBills=الفواتير ذات الصلة
     RelatedCustomerInvoices=فواتير العملاء ذات صلة
     RelatedSupplierInvoices=فواتير الموردين ذات صلة
     LatestRelatedBill=أحدث فاتورة ذات الصلة
    -WarningBillExist=تحذير، واحد أو أكثر من فاتورة موجودة بالفعل
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=دمج أداة PDF
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=الشيكات
     PaymentTypeShortCHQ=الشيكات
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=على خط التسديد
    -PaymentTypeShortVAD=على خط التسديد
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=مسودة
     PaymentTypeFAC=عامل
     PaymentTypeShortFAC=عامل
     BankDetails=التفاصيل المصرفية
     BankCode=رمز المصرف
    -DeskCode=مدونة مكتبية
    +DeskCode=Office code
     BankAccountNumber=رقم الحساب
    -BankAccountNumberKey=مفتاح
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=عدد إيبان
    +IBANNumber=IBAN complete account number
     IBAN=إيبان
     BIC=بيك / سويفت
     BICNumber=بيك / سويفت عدد
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=الدفع عن طريق التحويل عل
     VATIsNotUsedForInvoice=* عدم الفنية للتطبيق ضريبة القيمة المضافة 293B من المجموعة الاستشارية لاندونيسيا
     LawApplicationPart1=من خلال تطبيق القانون 80.335 من 12/05/80
     LawApplicationPart2=البضاعة تظل ملكا لل
    -LawApplicationPart3=البائع إلى حين استكمال صرف
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=ثمنها.
     LimitedLiabilityCompanyCapital=SARL برأس مال
     UseLine=تطبيق
    @@ -463,7 +465,7 @@ Cheques=الشيكات
     DepositId=إيداع معرف
     NbCheque=عدد الشيكات
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=فواتير العملاء استخدام عنوان الاتصال بدلا من التصدي لطرف ثالث كما المتلقية للفواتير
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=وتظهر جميع الفواتير غير المسددة
     ShowUnpaidLateOnly=وتبين في وقت متأخر من الفواتير غير المدفوعة فقط
     PaymentInvoiceRef=دفع فاتورة %s
    @@ -474,21 +476,22 @@ Reported=تأخر
     DisabledBecausePayments=غير ممكن لأن هناك بعض المدفوعات
     CantRemovePaymentWithOneInvoicePaid=تصنيف لا يمكن إزالة الدفع لأنه ليس هناك على الأقل على الفاتورة سيولي
     ExpectedToPay=من المتوقع الدفع
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=سيولي هذا الدفع
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=تصنيف "مدفوع" كل الملاحظات الائتمان تدفع بالكامل مرة أخرى.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=كل فاتورة مع عدم وجود لا تزال لدفع ستغلق تلقائيا إلى &quot;فياض&quot; الوضع.
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=دفع
     ToMakePaymentBack=تسديد
     ListOfYourUnpaidInvoices=قائمة الفواتير غير المسددة
     NoteListOfYourUnpaidInvoices=ملاحظة: تحتوي هذه القائمة على الفواتير الوحيدة لأطراف ثالثة ترتبط لك كممثل بيع.
     RevenueStamp=طوابع الواردات
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=نموذج فاتورة Crabe. نموذج الفاتورة كاملة (دعم الخيار الضريبة على القيمة المضافة ، والخصومات ، وشروط الدفع ، والشعار ، الخ..)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=عودة عدد مع الشكل syymm NNNN عن الفواتير القياسية و٪ syymm-NNNN لتلاحظ الائتمان حيث هو YY العام٪، مم هو الشهر وnnnn هو تسلسل مع أي انقطاع وعدم العودة إلى 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=تم حذف الفاتورة
    diff --git a/htdocs/langs/ar_SA/cashdesk.lang b/htdocs/langs/ar_SA/cashdesk.lang
    index dc042aade07..b99db35c99f 100644
    --- a/htdocs/langs/ar_SA/cashdesk.lang
    +++ b/htdocs/langs/ar_SA/cashdesk.lang
    @@ -1,14 +1,14 @@
     # Language file - Source file is en_US - cashdesk
    -CashDeskMenu=نقطة بيع
    -CashDesk=نقطة بيع
    +CashDeskMenu=نقطة البيع
    +CashDesk=نقطة البيع
     CashDeskBankCash=الحساب المصرفي (نقدا)
     CashDeskBankCB=الحساب المصرفي (بطاقة)
     CashDeskBankCheque=الحساب المصرفي (شيك)
     CashDeskWarehouse=مستودع
     CashdeskShowServices=بيع الخدمات
     CashDeskProducts=المنتجات
    -CashDeskStock=الأوراق المالية
    -CashDeskOn=في
    +CashDeskStock=مخزون
    +CashDeskOn=على
     CashDeskThirdParty=طرف ثالث
     ShoppingCart=عربة التسوق
     NewSell=بيع جديد
    @@ -22,7 +22,7 @@ NoArticle=لا يوجد عناصر
     Identification=التعريف
     Article=عنصر
     Difference=فرق
    -TotalTicket=مجموع التذكرة
    +TotalTicket=إجمالي التذكرة
     NoVAT=ليس هناك ضريبة قيمة مضافة لهذا البيع
     Change=باقي المستلم
     BankToPay=حساب الدفع
    @@ -30,5 +30,15 @@ ShowCompany=عرض الشركة
     ShowStock=عرض المستودع
     DeleteArticle=انقر لإزالة هذا العنصر
     FilterRefOrLabelOrBC=بحث (المرجع / الملصق)
    -UserNeedPermissionToEditStockToUsePos=لقد طلبت أن ينخفض ​​المخزون عند إنشاء الفاتورة، لذلك المستخدم التي يستخدم نقطة البيع يحتاج إلى امتلاك الصلاحيات لتعديل المخزون.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=طابعة إيصال دوليبار
    +PointOfSale=نقاط البيع
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/ar_SA/commercial.lang b/htdocs/langs/ar_SA/commercial.lang
    index fd39ed56f00..14ede956be0 100644
    --- a/htdocs/langs/ar_SA/commercial.lang
    +++ b/htdocs/langs/ar_SA/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=اتصال هاتفي
     ActionAC_FAX=إرسال فاكس
     ActionAC_PROP=إرسال اقتراح
     ActionAC_EMAIL=ارسال بريد الكتروني
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=اجتماعات
     ActionAC_INT=تدخل على الموقع
     ActionAC_FAC=ارسال الفواتير
    @@ -72,8 +73,8 @@ StatusProsp=احتمال وضع
     DraftPropals=صياغة مقترحات تجارية
     NoLimit=لا حدود
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/ar_SA/companies.lang b/htdocs/langs/ar_SA/companies.lang
    index 1e78a09fce3..e225b75e415 100644
    --- a/htdocs/langs/ar_SA/companies.lang
    +++ b/htdocs/langs/ar_SA/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=تحديد طرف ثالث
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=حذف اتصال
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=طرف ثالث جديد
    -MenuNewCustomer=عميل جديد
    -MenuNewProspect=آفاق جديدة
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=فرد جديد
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=إنشاء طرف ثالث
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=طرف ثالث اتصال
     Company=شركة
     CompanyName=اسم الشركة
     AliasNames=الاسم المستعار (التجارية، العلامات التجارية، ...)
    -AliasNameShort=الاسم المستعار
    +AliasNameShort=Alias Name
     Companies=الشركات
    -CountryIsInEEC=البلد داخل المجموعة الاقتصادية الأوروبية
    -ThirdPartyName=اسم طرف ثالث
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=طرف ثالث
    -ThirdParties=أطراف ثالثة
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=آفاق
     ThirdPartyProspectsStats=آفاق
     ThirdPartyCustomers=العملاء
     ThirdPartyCustomersStats=العملاء
     ThirdPartyCustomersWithIdProf12=الزبائن ٪ أو ٪ ق ق
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=طرف ثالث من نوع
    +ThirdPartyType=Type of company
     Individual=فرد
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=الشركة الأم
     Subsidiaries=الشركات التابعة
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=الرمز البريدي
     Town=مدينة
     Web=الويب
     Poste= موقف
    -DefaultLang=اللغة افتراضيا
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=اقتراحات
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=تركيب صالحة
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=هذا العميل قد خصم <b>٪ ق ٪ ٪</b>
     CompanyHasNoRelativeDiscount=هذا العميل ليس لديها النسبية خصم افتراضي
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=ولا يزال هذا العميل الائتمانية ويلاحظ السابقة أو ودائع <b>ل%s ق ٪</b>
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=بلا
    -Supplier=المورد
    +Supplier=Vendor
     AddContact=إنشاء اتصال
     AddContactAddress=إنشاء الاتصال / عنوان
     EditContact=تحرير الاتصال / عنوان
    @@ -303,22 +303,22 @@ AddThirdParty=إنشاء طرف ثالث
     DeleteACompany=حذف شركة
     PersonalInformations=البيانات الشخصية
     AccountancyCode=حساب محاسبي
    -CustomerCode=رمز العميل
    -SupplierCode=Vendor code
    -CustomerCodeShort=كود العميل
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=شفرة الزبون ، فريدة من نوعها لجميع العملاء
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=إذا كان الطرف الثالث هو عميل أو احتمال
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=صحة تسيطر عليها وحدة
    -ThisIsModuleRules=هذه هي قواعد لهذه الوحدة
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=إمكانية الاتصال
     CompanyDeleted=شركة "٪ ل" حذفها من قاعدة البيانات.
     ListOfContacts=قائمة الاتصالات
    -ListOfContactsAddresses=قائمة الأسماء / عناوين
    -ListOfThirdParties=قائمة أطراف ثالثة
    -ShowCompany=Show third party
    +ListOfContactsAddresses=قائمة الاتصالات
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=وتظهر الاتصال
     ContactsAllShort=جميع (بدون فلتر)
     ContactType=نوع الاتصال
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=هذا الاتصال ليست على اتصال في أ
     NoContactForAnyContract=هذا الاتصال ليس أي عقد للاتصال
     NoContactForAnyInvoice=هذا الاتصال ليست على اتصال في أي فاتورة
     NewContact=اتصال جديد
    -NewContactAddress=اسم جديد / عنوان
    +NewContactAddress=New Contact/Address
     MyContacts=اتصالاتي
     Capital=رأس المال
     CapitalOf=ق ٪ من رأس المال
     EditCompany=تحرير الشركة
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=فحص
    -VATIntraCheckDesc=الصلة <b>٪ ق</b> يسمح نسأل الأوروبي من ضريبة القيمة المضافة فاحص الخدمة. خارجي من خدمة الإنترنت ويلزم لهذه الخدمة في العمل.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=فحص Intracomunnautary ضريبة القيمة المضافة على موقع المفوضية الاوروبية
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target=كما يمكنك التحقق يدويا من أوروبا موقع <a href="%s" target="_blank">ق ٪</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=وليس من الممكن التحقق. تأكد من خدمة لا تقدمها دولة عضو (في المائة).
    -NorProspectNorCustomer=ولا آفاق ولا العملاء
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=الموظفون
     ProspectLevelShort=المحتملة
     ProspectLevel=آفاق محتملة
    @@ -387,12 +387,12 @@ ExportCardToFormat=تصدير بطاقة شكل
     ContactNotLinkedToCompany=اتصالات ليست مرتبطة بطرف ثالث
     DolibarrLogin=ادخل Dolibarr
     NoDolibarrAccess=لا Dolibarr الوصول
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=الاتصالات والعقارات
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=مستوى الأسعار
     DeliveryAddress=عنوان التسليم
     AddAddress=أضف معالجة
    @@ -402,16 +402,16 @@ DeleteFile=حذف الملفات
     ConfirmDeleteFile=هل أنت متأكد من أنك تريد حذف هذا الملف؟
     AllocateCommercial=Assigned to sales representative
     Organization=المنظمة
    -FiscalYearInformation=معلومات عن السنة المالية
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=ابتداء من شهر من السنة المالية
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=قائمة التوقعات
    -ListCustomersShort=قائمة العملاء
    -ThirdPartiesArea=أطراف ثالثة، ومنطقة الاتصال
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=مجموع الأطراف الثالثة فريدة من نوعها
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=فتح
     ActivityCeased=مغلق
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=فاتورة المستحق حاليا
     OutstandingBill=ماكس. لمشروع قانون المتميز
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=العميل / المورد مدونة مجانية. هذا القانون يمكن تعديلها في أي وقت.
     ManagingDirectors=مدير (ق) اسم (CEO، مدير، رئيس ...)
     MergeOriginThirdparty=تكرار طرف ثالث (طرف ثالث كنت ترغب في حذف)
     MergeThirdparties=دمج أطراف ثالثة
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/ar_SA/dict.lang b/htdocs/langs/ar_SA/dict.lang
    index 23ebe84ebba..d89839836ac 100644
    --- a/htdocs/langs/ar_SA/dict.lang
    +++ b/htdocs/langs/ar_SA/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=واستمع وجزر ماكدونالد
     CountryVA=الكرسي الرسولي (دولة الفاتيكان)
     CountryHN=هندوراس
     CountryHK=هونج كونج
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=الهند
     CountryID=اندونيسيا
     CountryIR=إيران
    @@ -131,7 +131,7 @@ CountryKI=كيريباس
     CountryKP=كوريا الشمالية
     CountryKR=كوريا الجنوبية
     CountryKW=الكويت
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=لاوس
     CountryLV=لاتفيا
     CountryLB=لبنان
    @@ -160,7 +160,7 @@ CountryMD=مولدافيا
     CountryMN=منغوليا
     CountryMS=مونتسرات
     CountryMZ=موزامبيق
    -CountryMM=Birmania (ميانمار)
    +CountryMM=Myanmar (Burma)
     CountryNA=ناميبيا
     CountryNR=ناورو
     CountryNP=نيبال
    @@ -223,7 +223,7 @@ CountryTO=تونجا
     CountryTT=ترينيداد وتوباغو
     CountryTR=تركيا
     CountryTM=تركمانستان
    -CountryTC=الأتراك وجزر Cailos
    +CountryTC=Turks and Caicos Islands
     CountryTV=توفالو
     CountryUG=أوغندا
     CountryUA=أوكرانيا
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=موريشيوس روبية
     CurrencySingMUR=موريشيوس روبية
     CurrencyNOK=النرويجية بالكرون
    -CurrencySingNOK=الكرونة النرويجية
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=دينار
     CurrencySingTND=الدينار التونسي
     CurrencyUSD=الدولار الأمريكي
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=كلمة الفم
     DemandReasonTypeSRC_PARTNER=شريك
     DemandReasonTypeSRC_EMPLOYEE=الموظف
     DemandReasonTypeSRC_SPONSORING=رعاية
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=شكل 4A0
     PaperFormatEU2A0=شكل 2A0
    diff --git a/htdocs/langs/ar_SA/ecm.lang b/htdocs/langs/ar_SA/ecm.lang
    index 708f22d5a09..0450e0d86f2 100644
    --- a/htdocs/langs/ar_SA/ecm.lang
    +++ b/htdocs/langs/ar_SA/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=ملاحظة : الوثائق في الدليل
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=دليل
     ECMSectionManual=دليل دليل
     ECMSectionAuto=الدليل الآلي
    @@ -34,6 +34,8 @@ ECMDocsByProjects=المستندات المرتبطة بالمشاريع
     ECMDocsByUsers=وثائق مرتبطة المستخدمين
     ECMDocsByInterventions=وثائق مرتبطة بالتدخلات
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=لا الدليل
     ShowECMSection=وتظهر الدليل
     DeleteSection=إزالة الدليل
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/ar_SA/errors.lang b/htdocs/langs/ar_SA/errors.lang
    index 4cf88cd6c6d..c4b4c1cdb59 100644
    --- a/htdocs/langs/ar_SA/errors.lang
    +++ b/htdocs/langs/ar_SA/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat='%s' قيمة له خاطئ تنسيق التاريخ
     ErrorWrongDate=تاريخ غير صحيح!
     ErrorFailedToWriteInDir=لم يكتب في دليل ٪ ق
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=العثور على بريد إلكتروني صحيح لتركيب خطوط ق ٪ في ملف (على سبيل المثال خط ٪ ق= ٪ مع البريد الإلكتروني)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=تتطلب بعض المجالات لم تملأ.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=فشل إنشاء دليل. تأكد من أن خادم الويب المستخدم أذونات لكتابة وثائق Dolibarr في الدليل. إذا تم تمكين المعلم <b>safe_mode</b> على هذا PHP ، تحقق من أن ملفات Dolibarr php تملك لخدمة الويب المستخدم (أو مجموعة).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=يرجى ملء قيمة لقائمة مختارة
     ErrorNoValueForCheckBoxType=يرجى ملء قيمة لقائمة مربع
     ErrorNoValueForRadioType=يرجى ملء قيمة لقائمة الراديو
     ErrorBadFormatValueList=قيمة القائمة لا يمكن أن يكون أكثر من واحد <u>فاصلة:٪ الصورة،</u> ولكن تحتاج إلى واحد على الأقل: مفتاح، قيمة
    -ErrorFieldCanNotContainSpecialCharacters=ميدان <b>٪ ق</b> يجب ألا يحتوي على أحرف خاصة.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=يجب أن لا يحتوي <b>الحقل%s</b> أحرف خاصة، ولا الحروف الكبيرة وليس يمكن أن تحتوي على أرقام فقط.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=أي وحدة المحاسبة وتفعيل
     ErrorExportDuplicateProfil=هذا الاسم الشخصي موجود مسبقا لهذه المجموعة التصدير.
     ErrorLDAPSetupNotComplete=Dolibarr - LDAP المطابقة وليس كاملا.
     ErrorLDAPMakeManualTest=ألف. ldif الملف قد ولدت في الدليل ٪ s. انها محاولة لتحميل يدويا من سطر في الحصول على مزيد من المعلومات عن الأخطاء.
    -ErrorCantSaveADoneUserWithZeroPercentage=لا يمكن انقاذ عمل مع "المركز الخاص لم تبدأ" اذا الحقل "الذي قام به" كما شغلها.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=المرجع المستخدمة لإنشاء موجود بالفعل.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=لا يمكن حذف السجلات. وبالفعل استخدامه أو نشره على كائن آخر.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=يجب عدم تعطيل جافا سكريبت لجعل هذا العمل الميزة. لتمكين / تعطيل جافا سكريبت ، انتقل إلى القائمة الرئيسية -> الإعداد -> العرض.
     ErrorPasswordsMustMatch=ويجب على كلا كلمات المرور المكتوبة تطابق بعضها البعض
    -ErrorContactEMail=وقع خطأ فني. من فضلك، اتصل بمسؤول إلى البريد الإلكتروني بعد <b>%s</b> EN توفير <b>%s</b> رمز الخطأ في رسالتك، أو حتى أفضل من خلال إضافة نسخة شاشة من هذه الصفحة.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=قيمة خاطئة لعدد <b>%s</b> الحقل (قيمة <b>'%s'</b> لا يتطابق <b>%s</b> حكم [رجإكس])
     ErrorFieldValueNotIn=قيمة خاطئة عن رقم <b>الحقل%s</b> (القيمة <b>'٪ ق'</b> ليست قيمة متوفرة في <b>حقل٪ الصورة</b> من <b>الجدول%s)</b>
     ErrorFieldRefNotIn=قيمة خاطئة <b>ل%s</b> عدد حقل <b>('%s</b> &quot;قيمة ليست المرجع <b>%s</b> موجود)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=وكان برنامج مكافحة الفيروس
     ErrorSpecialCharNotAllowedForField=غير مسموح الأحرف الخاصة لحقل "%s"
     ErrorNumRefModel=إشارة إلى وجود قاعدة بيانات (%s) ، وغير متوافق مع هذه القاعدة الترقيم. سجل إزالة أو إعادة تسميته اشارة الى تفعيل هذه الوحدة.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=خطأ في قناع
     ErrorBadMaskFailedToLocatePosOfSequence=خطأ، من دون قناع رقم التسلسل
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=خطأ، قيمة إعادة سيئة
     ErrorMaxNumberReachForThisMask=عدد ماكس متناول هذا القناع
     ErrorCounterMustHaveMoreThan3Digits=يجب أن يكون العداد أكثر من 3 أرقام
     ErrorSelectAtLeastOne=خطأ. حدد واحد على الأقل دخول.
    -ErrorDeleteNotPossibleLineIsConsolidated=حذف غير ممكن لأنه مرتبط سجل إلى transation البنك الذي يتم التصالح
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=يتم تعيين ثلث آخر إلى %s
     ErrorFailedToSendPassword=لم ترسل كلمة السر
     ErrorFailedToLoadRSSFile=فشل في الحصول على آر إس إس. محاولة إضافة MAIN_SIMPLEXMLLOAD_DEBUG ثابت إذا رسائل الخطأ لا توفر ما يكفي من المعلومات.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=لا يستطيع المستخدم الدخول مع <b>
     ErrorLoginHasNoEmail=هذا المستخدم ليس لديه عنوان البريد الإلكتروني. إحباط عملية.
     ErrorBadValueForCode=سيئة قيمة لرمز الحماية. حاول مرة أخرى مع القيمة الجديدة ...
     ErrorBothFieldCantBeNegative=ويمكن لحقول %s و%s لا تكون سلبية
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=كمية لخط في فواتير العملاء لا يمكن أن يكون سلبيا
     ErrorWebServerUserHasNotPermission=<b>%s</b> تستخدم حساب مستخدم لتنفيذ خادم الويب لا يوجد لديه إذن لذلك
     ErrorNoActivatedBarcode=لا يوجد نوع الباركود تفعيلها
    @@ -138,7 +141,7 @@ ErrorBadFormat=شكل سيئة!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=خطأ، وهناك بعض الولادات ترتبط هذه الشحنة. رفض الحذف.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=لا يمكنك حذف دفع تتقاسمها فاتورة واحدة على الأقل مع وضع سيولي
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=لا يمكن تعيين إلى ثابت '٪ ق'
     ErrorPriceExpression2=لا يمكن إعادة تعريف المدمج في وظيفة '٪ ق'
     ErrorPriceExpression3=متغير غير معرف '٪ s' في تعريف الدالة
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=غير متوقع '٪ ق'
     ErrorPriceExpression6=عدد خاطئ من الوسائط (٪ ق معين،٪ المتوقعة الصورة)
     ErrorPriceExpression8=مشغل غير متوقع '٪ ق'
     ErrorPriceExpression9=حدث خطأ غير متوقع
    -ErrorPriceExpression10=Iperator '٪ ق' يفتقر المعامل
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=تتوقع '٪ ق'
     ErrorPriceExpression14=القسمة على صفر
     ErrorPriceExpression17=غير معرف متغير '٪ ق'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=العميل SOAP فشلت مع الخطأ '٪ ق'
     ErrorGlobalVariableUpdater5=لا متغير عمومي مختارة
     ErrorFieldMustBeANumeric=يجب أن يكون <b>حقل٪ الصورة</b> قيمة رقمية
     ErrorMandatoryParametersNotProvided=معيار إلزامي (ق) لم تقدم
    -ErrorOppStatusRequiredIfAmount=قمت بتعيين المبلغ المقدر لهذه الفرصة / الرصاص. لذلك يجب عليك أيضا إدخال مكانتها
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=سيئة تعريف القائمة صفيف في الوحدة واصف (القيمة سيئة لfk_menu مفتاح)
    -ErrorSavingChanges=وقد ocurred لخطأ عند حفظ التغييرات
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=تم تعيين كلمة مرور لهذا العضو. ومع ذلك، تم إنشاء أي حساب المستخدم. لذلك يتم تخزين كلمة المرور هذه ولكن لا يمكن استخدامها للدخول إلى Dolibarr. ويمكن استخدامه من قبل وحدة / واجهة خارجية ولكن إذا كنت لا تحتاج إلى تعريف أي تسجيل دخول أو كلمة المرور لأحد أفراد، يمكنك تعطيل خيار "إدارة تسجيل دخول لكل عضو" من إعداد وحدة الأعضاء. إذا كنت بحاجة إلى إدارة تسجيل الدخول ولكن لا تحتاج إلى أي كلمة المرور، يمكنك الحفاظ على هذا الحقل فارغا لتجنب هذا التحذير. ملاحظة: يمكن أيضا أن تستخدم البريد الإلكتروني لتسجيل الدخول إذا تم ربط عضو إلى المستخدم.
     WarningMandatorySetupNotComplete=لا يتم تعريف معلمات الإعداد إلزامية حتى الآن
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=المرجعية هذا الكتاب أو هذا ا
     WarningPassIsEmpty=تحذير كلمة سر قاعدة بيانات فارغة. هذه هي ثغرة أمنية. يجب عليك أن تضيف كلمة السر الخاصة بك لقاعدة البيانات وتغيير conf.php ليعكس هذا الملف.
     WarningConfFileMustBeReadOnly=انذار ، ملف (التكوين <b>htdocs / أسيوط / conf.php)</b> الخاص يمكن أن تكون الكتابة بواسطة خادم الويب. هذه هي ثغرة أمنية خطيرة. أذونات تعديل على ملف ليكون في وضع القراءة فقط لمستخدم نظام التشغيل المستخدمة من قبل ملقم ويب. إذا كنت تستخدم ويندوز وشكل نسبة الدهون لمدة القرص الخاص بك ، فإنك يجب أن نعرف أن هذا النظام لا يسمح ملف لإضافة الأذونات على الملف ، بحيث لا تكون آمنة تماما.
     WarningsOnXLines=تحذيرات عن مصدر خطوط <b>%s</b>
    -WarningNoDocumentModelActivated=لا يوجد نموذج لجيل وثيقة ، قد تم تنشيط. سيكون نموذج المختار افتراضيا حتى يمكنك التحقق من إعداد وحدة الخاص.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=تحذير، بمجرد الانتهاء من الإعداد، يجب عليك تعطيل تثبيت / الهجرة أدوات بإضافة <b>install.lock</b> الملف إلى <b>الدليل٪ الصورة.</b> في عداد المفقودين هذا الملف هو ثغرة أمنية.
    -WarningUntilDirRemoved=كل التحذيرات الأمنية (مرئية من قبل المستخدمين مشرف فقط) وسوف تبقى نشطة طالما أن الضعف الحالي (أو لم يضف هذا MAIN_REMOVE_INSTALL_WARNING مستمر في الإعداد&gt; الإعداد الأخرى).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=تحذير، ويتم إغلاق حتى إذا قدر يختلف بين عناصر المصدر والهدف. تمكين هذه الميزة بحذر.
     WarningUsingThisBoxSlowDown=تحذير، وذلك باستخدام هذا الإطار تبطئ على محمل الجد كل الصفحات التي تظهر مربع.
     WarningClickToDialUserSetupNotComplete=إعداد المعلومات ClickToDial لالمستخدم الخاص بك ليست كاملة (انظر التبويب ClickToDial على بطاقة المستخدم الخاص بك).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=عدد كبير جدا من البيان
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/ar_SA/help.lang b/htdocs/langs/ar_SA/help.lang
    index 4510c6ed7d6..e4944b4b5b5 100644
    --- a/htdocs/langs/ar_SA/help.lang
    +++ b/htdocs/langs/ar_SA/help.lang
    @@ -1,26 +1,23 @@
     # Dolibarr language file - Source file is en_US - help
    -CommunitySupport=منتدى / الدعم ويكي
    -EMailSupport=رسائل البريد الإلكتروني لدعم
    -RemoteControlSupport=الانترنت في الوقت الحقيقي / النائية الدعم
    -OtherSupport=الدعم الأخرى
    -ToSeeListOfAvailableRessources=للاتصال / انظر الموارد المتاحة :
    +CommunitySupport=منتدى / ويكي الدعم
    +EMailSupport=دعم رسائل البريد الإلكتروني
    +RemoteControlSupport=الوقت الحقيقي عبر الإنترنت / الدعم عن بعد
    +OtherSupport=دعم آخر
    +ToSeeListOfAvailableRessources=للاتصال / الاطلاع على الموارد المتاحة:
     HelpCenter=مركز المساعدة
    -DolibarrHelpCenter=Dolibarr مركز المساعدة والدعم
    -ToGoBackToDolibarr=Otherwise, click <a href=بخلاف ذلك ، انقر <a href="%s">هنا لاستخدام Dolibarr</a>
    -TypeOfSupport=مصدر الدعم
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=المجتمع (مجاني)
    -TypeSupportCommercial=التجارية
    +TypeSupportCommercial=تجاري
     TypeOfHelp=نوع
    -NeedHelpCenter=Need help or support?
    +NeedHelpCenter=هل تحتاج إلى مساعدة أو دعم؟
     Efficiency=الكفاءة
    -TypeHelpOnly=فقط مساعدة
    -TypeHelpDev=+ المساعدة على التنمية
    -TypeHelpDevForm=مساعدة التنمية + + تشكيل
    -ToGetHelpGoOnSparkAngels1=ويمكن أن توفر بعض الشركات سريعة (ما الفورية) ، وزيادة كفاءة شبكة الإنترنت عن طريق دعم السيطرة على جهاز الكمبيوتر الخاص بك. مساعدات من هذا القبيل يمكن الاطلاع على الموقع الإلكتروني <b>ل ٪</b> :
    -ToGetHelpGoOnSparkAngels3=كما يمكنك الذهاب الى قائمة المدربين كل ما هو متاح لDolibarr ، لهذا اضغط على زر
    -ToGetHelpGoOnSparkAngels2=في بعض الأحيان ، لا يوجد أي شركة المتاحة في الوقت الراهن تقوم بإجراء البحث ، لذلك اعتقد تغيير فلتر للبحث عن "توافر جميع". ستتمكن من ارسال المزيد من الطلبات.
    -BackToHelpCenter=Otherwise, click here to go <a href=بخلاف ذلك ، انقر هنا للذهاب <a href="%s">الى الصفحة الرئيسية لمركز المساعدة.</a>
    -LinkToGoldMember=تستطيع الاتصال به من قبل المدرب مختار مسبقا لغتك Dolibarr (٪) عن طريق النقر فوق القطعة له (والحد الاعلى لسعر يتم تحديثها تلقائيا) :
    +TypeHelpOnly=المساعدة فقط
    +TypeHelpDev=مساعدة + التنمية
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=اللغات المدعومة
    -SubscribeToFoundation=مساعدة مشروع Dolibarr، الاشتراك في الجمعية
    -SeeOfficalSupport=للحصول على الدعم Dolibarr الرسمي في لغتك: <br> <b><a href="%s" target="_blank">٪ الصورة</a></b>
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
    +SeeOfficalSupport=للحصول على دعم رسمي من دوليبار بلغتك: <br> <b> <a href="%s" target="_blank"> %s </a></b>
    diff --git a/htdocs/langs/ar_SA/holiday.lang b/htdocs/langs/ar_SA/holiday.lang
    index a98958cb808..4ca03f4f867 100644
    --- a/htdocs/langs/ar_SA/holiday.lang
    +++ b/htdocs/langs/ar_SA/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=أوراق
    -CPTitreMenu=أوراق
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=البيان الشهري
     MenuAddCP=طلب إجازة جديدة
    -NotActiveModCP=يجب تمكين أوراق حدة لمشاهدة هذه الصفحة.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=تقديم طلب إجازة
     DateDebCP=تاريخ البدء
     DateFinCP=نهاية التاريخ
    @@ -15,13 +15,18 @@ ApprovedCP=وافق
     CancelCP=ألغيت
     RefuseCP=رفض
     ValidatorCP=Approbator
    -ListeCP=قائمة الأوراق
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=سيتم مراجعتها من قبل
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=وصف
     SendRequestCP=إنشاء طلب إجازة
     DelayToRequestCP=يجب أن يتم ترك طلبات في <b>اليوم</b> أقل <b>ق٪ (ق)</b> من قبلهم.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=يترك التوازن <b>هو%s</b> أيام.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=يجب تحديد تاريخ انتهاء أكبر من تاريخ البدء.
     ErrorSQLCreateCP=حدث خطأ SQL أثناء إنشاء:
     ErrorIDFicheCP=حدث خطأ غير موجود على طلب الإجازة.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=غير مصرح لك قراءة طلب إجازة هذا.
     InfosWorkflowCP=معلومات سير العمل
     RequestByCP=طلبت
     TitreRequestCP=ترك الطلب
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=عدد أيام عطلة تستهلك
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=تحرير
     DeleteCP=حذف
     ActionRefuseCP=رفض
    @@ -59,6 +71,7 @@ DateRefusCP=تاريخ الرفض
     DateCancelCP=تاريخ الإلغاء
     DefineEventUserCP=تعيين إجازة استثنائية لمستخدم
     addEventToUserCP=تعيين إجازة
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=سبب
     UserCP=مستخدم
     ErrorAddEventToUserCP=حدث خطأ أثناء إضافة إجازة استثنائية.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=تم التحديث بنجاح.
     Module27130Name= إدارة طلبات الإجازة
     Module27130Desc= إدارة طلبات الإجازة
    @@ -94,7 +112,7 @@ NoticePeriod=فترة إشعار
     HolidaysToValidate=التحقق من صحة طلبات الإجازة
     HolidaysToValidateBody=وفيما يلي طلب إجازة للتحقق من صحة
     HolidaysToValidateDelay=وهذا الطلب إجازة أن تتم في غضون أقل من٪ الصورة أيام.
    -HolidaysToValidateAlertSolde=المستخدم الذي جعل هذا ترك reques لم يكن لديك ما يكفي من الأيام المتاحة.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=طلبات إجازة التحقق من صحة
     HolidaysValidatedBody=تم التحقق من صحة طلب إجازة لمدة٪ s إلى٪ s.
     HolidaysRefused=طلب نفى
    @@ -103,4 +121,9 @@ HolidaysCanceled=إلغاء طلب الأوراق
     HolidaysCanceledBody=تم إلغاء طلب إجازة لمدة٪ s إلى٪ s.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=اذهب إلى <strong>الصفحة الرئيسية - إعداد - معاجم - نوع من الأوراق</strong> لإعداد أنواع مختلفة من الأوراق.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/ar_SA/install.lang b/htdocs/langs/ar_SA/install.lang
    index e5c63dd9490..5edd6c149b9 100644
    --- a/htdocs/langs/ar_SA/install.lang
    +++ b/htdocs/langs/ar_SA/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=فقط اتبع التعليمات خطوة بخطوة.
     MiscellaneousChecks=التحقق من الشروط الأساسية
     ConfFileExists=ملف الإعداد <b>%s</b> موجود  مسبقاً
    -ConfFileDoesNotExistsAndCouldNotBeCreated=ملف الإعداد <b>%s</b> مفقود ولا يمكن إنشائه.
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=يمكن إنشاء ملف الإعداد <b>%s</b>
    -ConfFileIsNotWritable=لا يمكن الكتابة الى ملف الإعداد <b>%s</b>. تحقق من الصلاحيات. اذا كان هذا التنصيب هو الأول، تحقق من أن السيرفر قادر ولديه جميع صلاحيات الكتابة والقراءة خلال عملية التنصيب، مثال: (chmod 666) لمستخدمي سيرفرات يونكس.
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=ملف الإعداد <b>%s</b> قابل للكتابة.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=إعادة تحميل جميع المعلومات من ملف الإعداد.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=يدعم هذا الـ PHP ميزة الجلسات الزمنية.
     PHPSupportPOSTGETOk=يدعم هذا الـ PHP وظائف POST و GET.
    -PHPSupportPOSTGETKo=من المحتمل أن نسخة الـ PHP لديك لاتدعم وظائف POST - GET. تحقق من <b>variables_order</b> في ملف php.ini
    -PHPSupportGD=يدعم اصدار الـ PHP هذا وظائف GD الرسومية.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=يدعم هذاا الاصدار من PHP وظائف الترميز UTF8.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=تم إعداد الجلسة الزمنية للذاكرة في  PHP الى <b>%s</b> . من المفترض ان تكون كافية.
    -PHPMemoryTooLow=الحد الأقصى الخاص بك PHP دورة الذاكرة ومن المقرر <b>٪ ق</b> بايت. لهذا ينبغي أن يكون منخفضا جدا. تغيير <b>php.ini</b> وضع <b>memory_limit</b> المعلم إلى ما لا يقل عن <b>٪ ق</b> بايت.
    -Recheck=اضغط هنا لمزيد من الاختبار ذو معنى
    -ErrorPHPDoesNotSupportSessions=PHP تركيب الخاص بك لا يدعم الدورات. هذه الميزة هو مطلوب لجعل العمل Dolibarr. التحقق من اتصالك PHP الإعداد.
    -ErrorPHPDoesNotSupportGD=PHP تركيب الخاص بك لا يدعم وظيفة بيانية ش ج. لا الرسم البياني سيكون متاحا.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=PHP تركيب الخاص بك لا يدعم UTF8 المهام. Dolibarr لا يمكن أن تعمل بشكل صحيح. لحل هذه قبل تثبيت Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=دليل ٪ ق لا يوجد.
    -ErrorGoBackAndCorrectParameters=العودة إلى الوراء وتصحيح الخطأ البارامترات.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=قد تكون لديكم مطبوعة خاطئة قيمة معلمة '٪ ق.
     ErrorFailedToCreateDatabase=فشل إنشاء قاعدة بيانات '٪ ق.
     ErrorFailedToConnectToDatabase=فشل في الاتصال بقاعدة البيانات '٪ ق.
     ErrorDatabaseVersionTooLow=إصدار قاعدة البيانات  (s%) قديمة جدا. مطلوب نسخة s% أو أعلى
     ErrorPHPVersionTooLow=PHP نسخة قديمة جدا. النسخة ٪ ق هو مطلوب.
    -ErrorConnectedButDatabaseNotFound=خادم الصدد الى قاعدة البيانات ولكن النجاح في '٪ ق' لم يتم العثور عليه.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=قاعدة البيانات '٪ ق' موجود بالفعل.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=إذا كان لا وجود قاعدة بيانات ، والتأكد من العودة الخيار "إنشاء قاعدة بيانات".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=إذا كانت قاعدة البيانات موجود بالفعل ، من العودة وإلغاء "إنشاء قاعدة بيانات" الخيار.
    -WarningBrowserTooOld=نسخة قديمة جدا من المتصفح. ننصحك جيدا بترقية متصفحك إلى نسخة حديثة عن فايرفوكس، كروم أو أوبرا
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP الإصدار
     License=الترخيص باستعمال
     ConfigurationFile=ملفات
    @@ -45,22 +45,23 @@ DolibarrDatabase=قاعدة بيانات Dolibarr
     DatabaseType=قاعدة بيانات من نوع
     DriverType=سائق نوع
     Server=الخادم
    -ServerAddressDescription=الملكية الفكرية في اسم أو عنوان خادم قاعدة البيانات ، وعادة 'localhost' عندما يستضيف خادم قاعدة البيانات على نفس الخادم من خدمة الويب
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=قاعدة بيانات الميناء. تبقي فارغة إذا كانت غير معروفة.
     DatabaseServer=خادم قاعدة البيانات
     DatabaseName=اسم قاعدة البيانات
    -DatabasePrefix=قاعدة بيانات بادئة الجدول
    -AdminLogin=ادخل لDolibarr مدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال
    -PasswordAgain=أعد كتابة كلمة المرور مرة ثانية
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Dolibarr كلمة السر لمدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال
     CreateDatabase=إنشاء قاعدة بيانات
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=قاعدة بيانات -- وصول مستخدم الكومبيوتر ذو الصلاحيات العليا
    -CheckToCreateDatabase=المربع إذا كان لا وجود قاعدة بيانات ، ويجب تهيئة. <br> في هذه الحالة ، يجب عليك ملء ادخل كلمة السر لحساب المستعملين المتميزين في أسفل هذه الصفحة.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=ادخل يسمح للمستخدم لإنشاء قواعد بيانات جديدة أو المستخدمين الجدد ، وإذا كانت غير مجدية وقاعدة البيانات وقاعدة البيانات ادخل موجود بالفعل (مثل عندما كنت استضافته استضافة ويب).
    -KeepEmptyIfNoPassword=ترك فارغا إذا لم المستخدم كلمة السر (تجنب هذا؟)
    -SaveConfigurationFile=إنقاذ القيم
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=اتصال الخادم
     DatabaseCreation=إنشاء قاعدة بيانات
     CreateDatabaseObjects=إنشاء قاعدة بيانات الأجسام
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=إنشاء الخارجية مفاتيح الأرقام
     OtherKeysCreation=مفاتيح الخارجية وإنشاء الفهارس
     FunctionsCreation=إنشاء وظائف
     AdminAccountCreation=مدير ادخل إنشاء
    -PleaseTypePassword=الرجاء كتابة كلمة المرور ، وكلمات السر فارغة لا يسمح!
    -PleaseTypeALogin=اكتب من فضلك ادخل!
    -PasswordsMismatch=وتختلف كلمات السر ، يرجى المحاولة مرة أخرى!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=نهاية الإعداد
     SystemIsInstalled=هذا التثبيت الكامل.
     SystemIsUpgraded=وقد تم تطوير Dolibarr بنجاح.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=عليك تكوين Dolibarr لتناسب احتياج
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=الذهاب إلى Dolibarr
     GoToSetupArea=الذهاب إلى Dolibarr (مجال الإعداد)
    -MigrationNotFinished=نسخة من قاعدة البيانات الخاصة بك لا يصل تماما حتى الآن ، لذلك سيكون لديك لتشغيل عملية الترقية مرة أخرى.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=الذهاب لتحديث الصفحة مرة أخرى
     WithNoSlashAtTheEnd=بدون خفض "/" في نهاية
    -DirectoryRecommendation=وrecommanded به لاستخدام دليل خارج الدليل الخاص من صفحات موقعك.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=موجود بالفعل
     DolibarrAdminLogin=ادخل Dolibarr مشرف
    -AdminLoginAlreadyExists=Dolibarr حساب مشرف <b>'٪ ق'</b> موجود بالفعل.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=تحذير ، لأسباب أمنية ، بعد تثبيت أو تحديث كاملة ، يجب إزالة <b>تثبيت أو إعادة تسمية الدليل على install.lock من أجل تجنب استخدام الخبيثة.</b>
    -FunctionNotAvailableInThisPHP=لا تتوفر على هذا PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=اختار الهجرة سكريبت
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=السيناريو تجهيز
     ChooseYourSetupMode=اختر طريقة الإعداد وانقر على "ابدأ"...
     FreshInstall=تركيب جديد
    -FreshInstallDesc=استخدام هذا الأسلوب إذا كان هذا هو أول تركيب. إذا لم يكن هذا الوضع لا يمكن إصلاح تثبيت سابقة غير مكتملة ، ولكن إذا كنت ترغب في تحديث الإصدار الخاص بك ، اختر "ترقية" واسطة.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=ترقية
     UpgradeDesc=استخدام هذه الطريقة إذا كنت قد حلت محل القديمة Dolibarr الملفات من الملفات مع إصدار أحدث. وهذا من شأنه رفع مستوى قاعدة البيانات والبيانات.
     Start=يبدأ
     InstallNotAllowed=الإعداد غير مسموح به <b>conf.php</b> الاذونات
     YouMustCreateWithPermission=يجب إنشاء ملف ق ٪ ومجموعة الكتابة على أذونات لملقم الويب أثناء عملية التثبيت.
    -CorrectProblemAndReloadPage=يرجى تحديد المشكلة والصحافة F5 لإعادة تحميل الصفحة.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=بالفعل هاجر
     DatabaseVersion=قاعدة بيانات النسخة
     ServerVersion=خادم قاعدة البيانات النسخة
     YouMustCreateItAndAllowServerToWrite=يجب إنشاء هذا الدليل ، والسماح لخادم الويب أن يكتبوا فيه.
     DBSortingCollation=طابع الفرز بغية
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=كنت أسأل لإنشاء قاعدة بيانات <b>٪ ق</b> ، ولكن لهذا ، Dolibarr الحاجة الى الاتصال بخادم <b>٪ ق</b> السوبر مع المستخدم أذونات <b>٪ ق.</b>
    -YouAskLoginCreationSoDolibarrNeedToConnect=كنت أسأل لإنشاء قاعدة بيانات ادخل <b>٪ ق</b> ، ولكن لهذا ، Dolibarr الحاجة الى الاتصال بخادم <b>٪ ق</b> السوبر مع أذونات المستخدم <b>٪ ق.</b>
    -BecauseConnectionFailedParametersMayBeWrong=كما فشلت الصدد ، أو استضافة السوبر معالم المستخدم يجب أن يكون على خطأ.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphelins من اكتشاف طريقة الدفع ق ٪
     RemoveItManuallyAndPressF5ToContinue=إزالته يدويا واضغط F5 للمتابعة.
     FieldRenamed=تغيير اسم الحقل
    -IfLoginDoesNotExistsCheckCreateUser=اذا ادخل لا يوجد حتى الآن ، يجب عليك التحقق من خيار "تكوين المستخدم"
    -ErrorConnection=الخادم <b>"٪ ل"</b> اسم قاعدة بيانات <b>"٪ ل"</b> ادخل <b>"٪ ل"</b> أو كلمة سر قاعدة البيانات قد تكون خاطئة أو PHP العميل نسخة قديمة جدا ويمكن مقارنة مع قاعدة البيانات نسخة.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=وأوصت لتثبيت اختيار النسخة <b>٪ المستندات</b> الخاصة بك من النسخة الحالية <b>ل ٪</b>
     InstallChoiceSuggested=<b>اقترح تثبيت اختيار المثبت.</b>
    -MigrateIsDoneStepByStep=النسخة المستهدفة (%s) لديها فجوة من إصدارات عديدة، لذلك تثبيت المعالج سوف يعود تشير إلى الهجرة مرة القادمة سوف يتم الانتهاء من هذا واحد.
    -CheckThatDatabasenameIsCorrect=تأكد من أن اسم قاعدة البيانات <b>"%s"</b> هو الصحيح.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=وإذا كان هذا الاسم هو الصحيح وأنه لا وجود قاعدة بيانات حتى الآن ، ويجب التحقق من خيار "إنشاء قاعدة بيانات".
     OpenBaseDir=بي openbasedir المعلمة
    -YouAskToCreateDatabaseSoRootRequired=يمكنك التحقق من مربع "إنشاء قاعدة بيانات". لهذا ، تحتاج إلى توفير الدخول وكلمة السر من المستعملين المتميزين (الجزء السفلي من النموذج).
    -YouAskToCreateDatabaseUserSoRootRequired=يمكنك التحقق من مربع "إنشاء قاعدة بيانات مالك". لهذا ، تحتاج إلى توفير الدخول وكلمة السر من المستعملين المتميزين (الجزء السفلي من النموذج).
    -NextStepMightLastALongTime=الخطوة الحالية قد تستمر لعدة دقائق. ويرد الرجاء الانتظار حتى الشاشة التالية تماما قبل الشروع في الاستمرار.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=ترحيل الشحن لتخزين طلبات العملاء
     MigrationShippingDelivery=ترقية تخزين الشحن
     MigrationShippingDelivery2=ترقية تخزين الشحن 2
     MigrationFinished=الانتهاء من الهجرة
    -LastStepDesc=<strong>الخطوة الأخيرة</strong> : تعريف المستخدم وكلمة السر هنا كنت تخطط لاستخدامها للاتصال البرمجيات. لا تفقد هذا كما هو حساب لإدارة جميع الآخرين.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=تفعيل وحدة %s
     ShowEditTechnicalParameters=انقر هنا لعرض/تحرير المعلمات المتقدمة (وضع الخبراء)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=إصدار قاعدة البيانات الخاصة بك هي%s.   يوجد بعض الخلل أدى لفقدان بعض البيانات إذا قمت بإجراء تغيير هيكلي على قاعدة البيانات الخاصة بك، مثل كان مطلوبا خلال عملية ترحيل البيانات. لن يسمح لك بترحيل البيانات حتى تقوم بترقية قاعدة البيانات الخاصة بك إلى إصدار أعلى موثوق  (قائمة الاصدارات الموثوقة : %s)
    -KeepDefaultValuesWamp=استخدام معالج الإعداد DoliWamp ، حتى القيم المقترحة هنا بالفعل الأمثل. تغييرها إلا إذا كنت تعرف ما تفعله.
    -KeepDefaultValuesDeb=يمكنك استخدام معالج الإعداد Dolibarr من أوبونتو أو حزمة ديبيان ، لذلك القيم المقترحة هنا هي الأمثل بالفعل. يجب أن تكتمل إلا كلمة السر للمالك قاعدة البيانات لإنشاء. تغيير معلمات أخرى إلا إذا كنت تعرف ما تفعله.
    -KeepDefaultValuesMamp=استخدام معالج الإعداد DoliMamp ، حتى القيم المقترحة هنا بالفعل الأمثل. تغييرها إلا إذا كنت تعرف ما تفعله.
    -KeepDefaultValuesProxmox=يمكنك استخدام معالج إعداد Dolibarr من الأجهزة الظاهرية Proxmox، بحيث يتم تحسين بالفعل القيم المقترحة هنا. تغييرها إلا إذا كنت تعرف ما تفعله.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=بيانات الهجرة لأغراض تجارية اقتراحات
     MigrationInvoice=بيانات الهجرة لعملاء الفواتير
     MigrationContract=بيانات الهجرة للحصول على عقود
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=تحديث ناجحة
     MigrationUpdateFailed=فشلت عملية تحديث
     MigrationRelationshipTables=بيانات الهجرة للجداول العلاقة (%s)
     MigrationPaymentsUpdate=تصحيح بيانات الدفع
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=تصحيح بيانات العقد
     MigrationContractsNumberToUpdate=٪ ق العقد (ق) لتحديث
     MigrationContractsLineCreation=عقد إنشاء خط لعقد المرجع ق ٪
     MigrationContractsNothingToUpdate=لا أكثر مما ينبغي فعله
    -MigrationContractsFieldDontExist=الحقل fk_facture لا وجود بعد الآن. لا يمكن تنفيذ اي شيء.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=عقد فارغ تصحيح التاريخ
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=أي عقد حتى الآن لتصحيح فارغة
     MigrationContractsEmptyCreationDatesNothingToUpdate=إنشاء أي عقد لتصحيح التاريخ
     MigrationContractsInvalidDatesUpdate=سوء قيمة العقد تصحيح التاريخ
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=تسليم تحديث
     MigrationStockDetail=تحديث قيمة المخزون من المنتجات
     MigrationMenusDetail=تحديث القوائم الديناميكية الجداول
     MigrationDeliveryAddress=تتناول آخر التطورات في تسليم شحنات
    -MigrationProjectTaskActors=بيانات الهجرة لllx_projet_task_actors الجدول
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=بيانات fk_user_resp مجال الهجرة من llx_projet لllx_element_contact
     MigrationProjectTaskTime=تحديث الوقت الذي يقضيه في ثوان
     MigrationActioncommElement=تحديث البيانات على الإجراءات
     MigrationPaymentMode=بيانات الهجرة لطريقة الدفع
     MigrationCategorieAssociation=تحديث الفئات
    -MigrationEvents=الترحيل من الأحداث لإضافة مالك الحدث في جدول الاحالة
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=إعادة تحديث الوحدات %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=عرض خيارات غير متوفرة
    -HideNotAvailableOptions=إخفاء خيارات غير متوفرة
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/ar_SA/interventions.lang b/htdocs/langs/ar_SA/interventions.lang
    index 57541e506cc..fccd25e97d5 100644
    --- a/htdocs/langs/ar_SA/interventions.lang
    +++ b/htdocs/langs/ar_SA/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=المداخلات
     InterventionCard=تدخل البطاقة
     NewIntervention=التدخل الجديدة
     AddIntervention=إنشاء التدخل
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=قائمة التدخلات
     ActionsOnFicheInter=إجراءات على التدخل
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=تدخل معرف
    diff --git a/htdocs/langs/ar_SA/languages.lang b/htdocs/langs/ar_SA/languages.lang
    index 7b27cc35010..4519ef6078d 100644
    --- a/htdocs/langs/ar_SA/languages.lang
    +++ b/htdocs/langs/ar_SA/languages.lang
    @@ -1,6 +1,6 @@
     # Dolibarr language file - Source file is en_US - languages
     Language_ar_AR=العربية
    -Language_ar_EG=Arabic (Egypt)
    +Language_ar_EG=العربيه مصر
     Language_ar_SA=العربية
     Language_bn_BD=بنغالي
     Language_bg_BG=البلغارية
    @@ -86,3 +86,4 @@ Language_uz_UZ=الأوزبكي
     Language_vi_VN=الفيتنامية
     Language_zh_CN=الصينية
     Language_zh_TW=الصينية (التقليدية)
    +Language_bh_MY=الماليزية
    diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang
    index 145c38c5039..0ca82c6bec6 100644
    --- a/htdocs/langs/ar_SA/main.lang
    +++ b/htdocs/langs/ar_SA/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=فشل في إرسال البريد (المرسل =٪ ق،
     ErrorFileNotUploaded=ويتم تحميل الملف. تحقق لا يتجاوز هذا الحجم الأقصى المسموح به، أن المساحة الحرة المتوفرة على القرص والتي لا يوجد بالفعل ملف بنفس الاسم في هذا الدليل.
     ErrorInternalErrorDetected=خطأ الكشف عن
     ErrorWrongHostParameter=المعلمة المضيف خاطئة
    -ErrorYourCountryIsNotDefined=لم يتم تعريف بلدك. الذهاب إلى الصفحة الرئيسية الإعداد-تحرير ومشاركة مرة أخرى في النموذج.
    -ErrorRecordIsUsedByChild=فشل في حذف هذا السجل. ويستخدم هذا السجل من قبل واحد على الأقل السجلات التابعة.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=قيمة خاطئة
     ErrorWrongValueForParameterX=قيمة خاطئة للمعلمة٪ الصورة
     ErrorNoRequestInError=أي طلب في الخطأ
    -ErrorServiceUnavailableTryLater=الخدمة غير متوفرة في الوقت الراهن. حاول مجددا لاحقا.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=قيمة مكررة في حقل فريد
    -ErrorSomeErrorWereFoundRollbackIsDone=تم العثور على بعض الأخطاء. نحن التراجع التغييرات.
    -ErrorConfigParameterNotDefined=لم يتم تعريف <b>المعلمة٪ الصورة</b> داخل ملف التكوين Dolibarr <b>conf.php.</b>
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=فشل في العثور على <b>المستخدم٪ الصورة</b> في قاعدة بيانات Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=خطأ، لا معدلات ضريبة القيمة المضافة المحددة للبلد '٪ ق'.
     ErrorNoSocialContributionForSellerCountry=خطأ، لا الاجتماعي / المالي نوع الضرائب المحددة للبلد '٪ ق'.
     ErrorFailedToSaveFile=خطأ، فشل في حفظ الملف.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=غير مصرح لك ان تفعل ذلك.
     SetDate=التاريخ المحدد
     SelectDate=تحديد تاريخ
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=تم تحميل الملف بنجاح
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=يتم اختيار ملف لمرفق ولكن لم تحميلها بعد. انقر على "إرفاق ملف" لهذا الغرض.
    -NbOfEntries=ملحوظة من إدخالات
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=قراءة المساعدة
     RecordSaved=سجل حفظ
    @@ -94,7 +94,7 @@ Undefined=غير محدد
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=أنظر فوق
    -HomeArea=المنطقة الرئيسية
    +HomeArea=الصفحة الرئيسية
     LastConnexion=Latest connection
     PreviousConnexion=الاتصال السابق
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=مغلق
     Closed2=مغلق
     NotClosed=Not closed
     Enabled=تمكين
    +Enable=تمكين
     Deprecated=انتقدت
     Disable=تعطيل
     Disabled=تعطيل
    @@ -153,7 +154,7 @@ Update=تحديث
     Close=إغلاق
     CloseBox=Remove widget from your dashboard
     Confirm=تأكيد
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=حذف
     Remove=إزالة
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=نسخ
     Paste=لصق
     Default=افتراضي
     DefaultValue=القيمة الافتراضية
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=السعر
     PriceCurrency=Price (currency)
     UnitPrice=سعر الوحدة
    @@ -347,7 +348,7 @@ AmountTTCShort=المبلغ (المؤتمر الوطني العراقي. الض
     AmountHT=المبلغ (صافية من الضرائب)
     AmountTTC=المبلغ (المؤتمر الوطني العراقي. الضريبية)
     AmountVAT=مبلغ الضريبة
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=غير قابل للتطبيق
     ActionRunningNotStarted=لبدء
     ActionRunningShort=In progress
     ActionDoneShort=تم الانتهاء من
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=اتصالات لهذا الطرف الثالث
     ContactsAddressesForCompany=اتصالات / عناوين لهذا الطرف الثالث
     AddressesForCompany=عناوين لهذا الطرف الثالث
     ActionsOnCompany=الأحداث حول هذا الطرف الثالث
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=الأحداث عن هذا العضو
     ActionsOnProduct=Events about this product
     NActionsLate=٪ في وقت متأخر الصورة
    @@ -453,8 +455,8 @@ Generate=توليد
     Duration=المدة الزمنية
     TotalDuration=المدة الإجمالية
     Summary=ملخص
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=متاح
     NotYetAvailable=لم تتوفر بعد
    @@ -468,7 +470,7 @@ and=و
     or=أو
     Other=الآخر
     Others=آخرون
    -OtherInformations=المعلومات الأخرى
    +OtherInformations=Other information
     Quantity=كمية
     Qty=الكمية
     ChangedBy=تغيير من قبل
    @@ -506,7 +508,7 @@ None=لا شيء
     NoneF=لا شيء
     NoneOrSeveral=None or several
     Late=متأخر
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=صورة
     Photos=الصور
    @@ -530,18 +532,6 @@ September=سبتمبر
     October=تشرين اول
     November=تشرين الثاني
     December=ديسمبر
    -JanuaryMin=يناير
    -FebruaryMin=فبراير
    -MarchMin=مارس
    -AprilMin=أبريل
    -MayMin=قد
    -JuneMin=يونيو
    -JulyMin=يوليو
    -AugustMin=أغسطس
    -SeptemberMin=سبتمبر
    -OctoberMin=أكتوبر
    -NovemberMin=نوفمبر
    -DecemberMin=ديسمبر
     Month01=كانون الثاني
     Month02=شهر فبراير
     Month03=مارس، يسير، يتقدم
    @@ -646,6 +636,8 @@ SendMail=إرسال بريد إلكتروني
     EMail=البريد الإلكتروني
     NoEMail=أي بريد إلكتروني
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=لا هاتف المحمول
     Owner=مالك
     FollowingConstantsWillBeSubstituted=الثوابت التالية ستكون بديلا المقابلة القيمة.
    @@ -677,7 +669,7 @@ NeverReceived=لم يتلق
     Canceled=ألغى
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=لون
     Documents=ربط الملفات
     Documents2=وثائق
    @@ -716,15 +708,15 @@ Merge=دمج
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=وتظهر الصفحة الرئيسية لطباعة ناحية المحتوى
     MenuManager=مدير القائمة
    -WarningYouAreInMaintenanceMode=انذار ، كنت في وضع الصيانة ، <b>%s</b> الدخول فقط بحيث يتم السماح لاستخدام التطبيق في الوقت الراهن.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=نظام خطأ
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=بطاقة الائتمان
     ValidatePayment=تحقق من الدفع
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=حقول إلزامية مع <b>%s</b>
    -FieldsWithIsForPublic=<b>%s</b> تظهر الحقول التي تحتوي على قائمة العامة للأعضاء. إذا كنت لا تريد هذا ، والتحقق من "العامة" مربع.
    -AccordingToGeoIPDatabase=(وفقا لGeoIP التحويل)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=خط
     NotSupported=غير معتمد
     RequiredField=الحقل مطلوب
    @@ -732,6 +724,8 @@ Result=نتيجة
     ToTest=اختبار
     ValidateBefore=يجب التحقق من صحة البطاقة قبل استخدام هذه الميزة
     Visibility=وضوح
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=خاص
     Hidden=مخفي
     Resources=موارد
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=تصل إلى النظام
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=إنشاء مشروع
     SetToDraft=العودة إلى مشروع
     ClickToEdit=انقر للتحرير
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=بعد يوم
     BySalesRepresentative=بواسطة مندوب مبيعات
     LinkedToSpecificUsers=يرتبط اسم مستخدم معين
     NoResults=لا نتائج
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=ادوات النظام
     ModulesSystemTools=أدوات حدات
     Test=اختبار
     Element=العنصر
     NoPhotoYet=أي صور متوفرة حتى الآن
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=خصم
     from=من عند
     toward=نحو
    @@ -802,7 +798,7 @@ PrintFile=طباعة ملف٪ الصورة
     ShowTransaction=Show entry on bank account
     ShowIntervention=عرض التدخل
     ShowContract=وتظهر العقد
    -GoIntoSetupToChangeLogo=اذهب إلى الصفحة الرئيسية - إعداد - شركة لتغيير شعار أو الذهاب إلى الصفحة الرئيسية - إعداد - عرض للاختباء.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=رفض
     Denied=رفض
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=بإخلاص
     DeleteLine=حذف الخط
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=تصنيف الفواتير
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=التقويم
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=تقرير حساب
     ExpenseReports=تقارير المصاريف
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=الأحداث
    -EMailTemplates=رسائل البريد الإلكتروني قوالب
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=المشروع
     Projects=مشاريع
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=الصلاحيات
     LineNb=Line no.
     IncotermLabel=شروط التجارة الدولية
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=يوم الاثنين
     Tuesday=الثلاثاء
    @@ -927,15 +932,15 @@ SearchIntoInterventions=التدخلات
     SearchIntoContracts=عقود
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=تقارير المصاريف
    -SearchIntoLeaves=أوراق
    +SearchIntoLeaves=Leave
     CommentLink=تعليقات
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=مشاريع مشتركة
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=يتحملها
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=مخصص ل
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/ar_SA/other.lang b/htdocs/langs/ar_SA/other.lang
    index 87a00c00252..f3338b68cdd 100644
    --- a/htdocs/langs/ar_SA/other.lang
    +++ b/htdocs/langs/ar_SA/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=رمز الحماية
     NumberingShort=N°
     Tools=أدوات
     TMenuTools=أدوات
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=عيد ميلاد
     BirthdayDate=Birthday date
     DateToBirth=تاريخ الميلاد
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=رسالة على الصفحة التحقق من صحة الدفع عودة
     MessageKO=رسالة في إلغاء دفع الصفحة عودة
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=تدخل المصادق
    -Notify_FICHINTER_SENTBYMAIL=تدخل ترسل عن طريق البريد
     Notify_ORDER_VALIDATE=التحقق من صحة النظام العميل
     Notify_ORDER_SENTBYMAIL=النظام العميل ترسل عن طريق البريد
     Notify_ORDER_SUPPLIER_SENTBYMAIL=النظام مزود ترسل عن طريق البريد
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=أجل المورد تسجيل
     Notify_ORDER_SUPPLIER_APPROVE=من أجل الموافقة على المورد
     Notify_ORDER_SUPPLIER_REFUSE=من أجل رفض الموردين
     Notify_PROPAL_VALIDATE=التحقق من صحة اقتراح العملاء
    -Notify_PROPAL_CLOSE_SIGNED=propal العملاء مغلقة وقع
    -Notify_PROPAL_CLOSE_REFUSED=propal العملاء مغلقة رفض
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=اقتراح التجارية المرسلة عن طريق البريد
     Notify_WITHDRAW_TRANSMIT=انتقال انسحاب
     Notify_WITHDRAW_CREDIT=انسحاب الائتمان
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=طرف ثالث إنشاء
     Notify_COMPANY_SENTBYMAIL=الرسائل المرسلة من بطاقة طرف ثالث
     Notify_BILL_VALIDATE=فاتورة مصادق
     Notify_BILL_UNVALIDATE=فاتورة العميل unvalidated
    -Notify_BILL_PAYED=دفعت فاتورة العميل
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=فاتورة الزبون إلغاء
     Notify_BILL_SENTBYMAIL=فاتورة الزبون إرسالها عن طريق البريد
     Notify_BILL_SUPPLIER_VALIDATE=فاتورة المورد المصادق
    -Notify_BILL_SUPPLIER_PAYED=دفعت فاتورة المورد
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=فاتورة المورد ترسل عن طريق البريد
     Notify_BILL_SUPPLIER_CANCELED=فاتورة المورد ألغت
     Notify_CONTRACT_VALIDATE=التحقق من صحة العقد
     Notify_FICHEINTER_VALIDATE=التحقق من التدخل
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=تدخل ترسل عن طريق البريد
     Notify_SHIPPING_VALIDATE=التحقق من صحة الشحن
     Notify_SHIPPING_SENTBYMAIL=الشحن ترسل عن طريق البريد
     Notify_MEMBER_VALIDATE=عضو مصدق
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=إنشاء مشروع
     Notify_TASK_CREATE=مهمة إنشاء
     Notify_TASK_MODIFY=تعديل مهمة
     Notify_TASK_DELETE=حذف المهمة
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=انظر إعداد وحدة٪ الصورة
     NbOfAttachedFiles=عدد الملفات المرفقة / وثائق
     TotalSizeOfAttachedFiles=اجمالى حجم الملفات المرفقة / وثائق
     MaxSize=الحجم الأقصى
     AttachANewFile=إرفاق ملف جديد / وثيقة
     LinkedObject=ربط وجوه
    -NbOfActiveNotifications=عدد الإخطارات (ملحوظة من رسائل البريد الإلكتروني المستلم)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>الأستاذ عيد ٪ ق</b> هي المعلومات التي تعتمد على طرف ثالث. <br> على سبيل المثال ، لبلد <b>ق ٪</b> انها رمز <b>٪ ق.</b>
     DolibarrDemo=Dolibarr تخطيط موارد المؤسسات وإدارة علاقات العملاء التجريبي
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=التدخل ٪ ق المصادق
     EMailTextInvoiceValidated=فاتورة ٪ ق المصادق
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=وقد تم اقتراح %s التحقق من صحة.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=وقد تم التحقق من صحة %s النظام.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=من أجل ٪ ق ق ٪ وافقت عليها
     EMailTextOrderRefused=من أجل رفض ق ٪
     EMailTextOrderRefusedBy=من أجل أن ترفض ٪ ق ق ٪
     EMailTextExpeditionValidated=تم التحقق من صحة%s الشحن.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=استيراد مجموعة البيانات
     DolibarrNotification=إشعار تلقائي
     ResizeDesc=أدخل عرض جديدة <b>أو</b> ارتفاع جديد. وستبقى نسبة خلال تغيير حجم...
    @@ -204,7 +214,7 @@ NewLength=عرض جديد
     NewHeight=ارتفاع جديد
     NewSizeAfterCropping=حجم جديد بعد الاقتصاص
     DefineNewAreaToPick=تحديد منطقة جديدة على الصورة لاختيار (اليسار انقر على الصورة ثم اسحب حتى تصل إلى الزاوية المقابلة)
    -CurrentInformationOnImage=معلومات عن الصورة الحالية
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=صورة المحرر
     YouReceiveMailBecauseOfNotification=تلقيت هذه الرسالة لأنه قد تم إضافة البريد الإلكتروني الخاص بك إلى قائمة الأهداف التي يتعين على علم الأحداث ولا سيما في صناعة البرمجيات من %s %s.
     YouReceiveMailBecauseOfNotification2=هذا الحدث هو ما يلي :
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=صادرات المنطقة
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=العنوان
     WEBSITE_DESCRIPTION=الوصف
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/ar_SA/paybox.lang b/htdocs/langs/ar_SA/paybox.lang
    index 8d32deeb39b..75c1a3961bd 100644
    --- a/htdocs/langs/ar_SA/paybox.lang
    +++ b/htdocs/langs/ar_SA/paybox.lang
    @@ -1,38 +1,39 @@
     # Dolibarr language file - Source file is en_US - paybox
     PayBoxSetup=إعداد وحدة PayBox
    -PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target=هذا نموذج للسماح بعرض الصفحات على دفع <a href="http://www.paybox.com" target="_blank">Paybox</a> الواحد. هذه يمكن استخدامها لدفع حر أو لدفع مبلغ معين على وجوه Dolibarr (الفاتورة ، والنظام ،...)
    -FollowingUrlAreAvailableToMakePayments=فيما يلي عناوين المواقع المتاحة لعرض هذه الصفحة زبون لتسديد دفعة Dolibarr على الأجسام
    -PaymentForm=شكل الدفع
    -WelcomeOnPaymentPage=ونحن نرحب على خدمة الدفع عبر الإنترنت
    -ThisScreenAllowsYouToPay=تتيح لك هذه الشاشة إجراء الدفع الإلكتروني إلى ٪ s.
    -ThisIsInformationOnPayment=هذه هي المعلومات عن الدفع للقيام
    +PayBoxDesc=تعرض صفحات نموذج الوحدة هذه الدفعات على <a href="http://www.paybox.com" target="_blank"> Paybox</a> من قبل العملاء. هذا يمكن استخدامها للدفع مجانا أو للدفع على عنصر دوليبار معين (الفاتورة، طلب، ...)
    +FollowingUrlAreAvailableToMakePayments=تتوفر عناوين URL التالية لتقديم صفحة إلى عميل لإجراء دفعة على عناصر دوليبار
    +PaymentForm=نموذج الدفع
    +WelcomeOnPaymentPage=Welcome to our online payment service
    +ThisScreenAllowsYouToPay=هذه الشاشة تسمح لك بإجراء الدفع عبر الإنترنت إلى %s.
    +ThisIsInformationOnPayment=هذه هي معلومات عن الدفع للقيام به
     ToComplete=لإكمال
    -YourEMail=البريد الالكتروني لتأكيد الدفع
    -Creditor=الدائن
    -PaymentCode=دفع رمز
    -PayBoxDoPayment=Pay with Credit or Debit Card (Paybox)
    -ToPay=هل لدفع
    -YouWillBeRedirectedOnPayBox=سوف يتم نقلك على تأمين Paybox لك صفحة لإدخال معلومات بطاقة الائتمان
    +YourEMail=البريد الإلكتروني لتلقي تأكيد الدفع
    +Creditor=دائن
    +PaymentCode=رمز الدفع
    +PayBoxDoPayment=الدفع باستخدام بطاقة الائتمان أو بطاقة السحب الآلي (Paybox)
    +ToPay=القيام بالدفع
    +YouWillBeRedirectedOnPayBox=سيتم إعادة توجيهك على صفحة Paybox الأمنة لإدخال معلومات بطاقة الائتمان الخاصة بك
     Continue=التالي
    -ToOfferALinkForOnlinePayment=عنوان دفع %s
    -ToOfferALinkForOnlinePaymentOnOrder=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم للأمر
    -ToOfferALinkForOnlinePaymentOnInvoice=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم للفاتورة
    -ToOfferALinkForOnlinePaymentOnContractLine=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم للحصول على عقد خط
    -ToOfferALinkForOnlinePaymentOnFreeAmount=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم لمبلغ حرة
    -ToOfferALinkForOnlinePaymentOnMemberSubscription=عنوان الموقع لتقديم الدفع عبر الإنترنت %s واجهة المستخدم للاشتراك عضو
    -YouCanAddTagOnUrl=You can also add url parameter <b>&tag=يمكنك أيضا إضافة رابط المعلم <b>= & علامة</b> على أي من <i><b>قيمة</b></i> تلك عنوان (مطلوب فقط لدفع الحر) الخاصة بك لإضافة تعليق دفع الوسم.
    -SetupPayBoxToHavePaymentCreatedAutomatically=الإعداد الخاص بك مع رابط PayBox <b>٪ ق</b> قد تنشأ تلقائيا عند دفع يصادق عليها paybox.
    -YourPaymentHasBeenRecorded=هذه الصفحة يؤكد أنه قد تم تسجيلها دفعتك. شكرا لك.
    -YourPaymentHasNotBeenRecorded=يمكنك دفع لم يسجل وتم إلغاء الصفقة. شكرا لك.
    -AccountParameter=حساب المعلمات
    -UsageParameter=استخدام المعلمات
    -InformationToFindParameters=مساعدة للعثور على معلومات حسابك %s
    -PAYBOX_CGI_URL_V2=عزيزي من وحدة لدفع CGI Paybox
    +ToOfferALinkForOnlinePayment=عنوان URL للدفع %s
    +ToOfferALinkForOnlinePaymentOnOrder=URL لتقديم واجهة مستخدم الدفع عبر الإنترنت %s لأمر العميل
    +ToOfferALinkForOnlinePaymentOnInvoice=URL لتقديم واجهة مستخدم الدفع عبر الإنترنت %s لفاتورة العميل
    +ToOfferALinkForOnlinePaymentOnContractLine=URL لتقديم %s واجهة مستخدم الدفع عبر الإنترنت لخط العقد
    +ToOfferALinkForOnlinePaymentOnFreeAmount=URL لتقديم واجهة مستخدم الدفع عبر الإنترنت %s مقابل مبلغ مجاني
    +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL لتقديم %s واجهة مستخدم الدفع عبر الإنترنت للحصول على اشتراك عضو
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
    +YouCanAddTagOnUrl=يمكنك أيضا إضافة معلمة عنوان url <b>&tag=<i>value</i></b> إلى أي من عنوان urlهذا (مطلوب فقط للدفع المجاني) لإضافة علامة تعليق الدفع الخاصة بك.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
    +YourPaymentHasBeenRecorded=تؤكد هذه الصفحة أنه قد تم تسجيل دفعتك. شكرا لكم.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
    +AccountParameter=معلمات الحساب
    +UsageParameter=معلمات الاستخدام
    +InformationToFindParameters=مساعدة للعثور على معلومات الحساب الخاص بك %s
    +PAYBOX_CGI_URL_V2=Url من Paybox CGI وحدة للدفع
     VendorName=اسم البائع
    -CSSUrlForPaymentForm=عزيزي ورقة النمط المغلق للنموذج الدفع
    -NewPayboxPaymentReceived=دفع Paybox الجديدة التي وردت
    +CSSUrlForPaymentForm=CSS style sheet url  لنموذج الدفع
    +NewPayboxPaymentReceived=تلقى الدفع Paybox الجديد
     NewPayboxPaymentFailed=دفع Paybox جديد حاول ولكنه فشل
    -PAYBOX_PAYONLINE_SENDEMAIL=البريد الإلكتروني لتحذير بعد دفع (نجاح أو فشل)
    +PAYBOX_PAYONLINE_SENDEMAIL=البريد الإلكتروني للانذار بعد (نجاح أو فشل) الدفع 
     PAYBOX_PBX_SITE=قيمة PBX SITE
     PAYBOX_PBX_RANG=قيمة PBX رانج
     PAYBOX_PBX_IDENTIFIANT=قيمة PBX ID
    diff --git a/htdocs/langs/ar_SA/projects.lang b/htdocs/langs/ar_SA/projects.lang
    index 350872e741f..af686c9ff23 100644
    --- a/htdocs/langs/ar_SA/projects.lang
    +++ b/htdocs/langs/ar_SA/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=وتبين للمشروع
     ShowTask=وتظهر هذه المهمة
     SetProject=وضع المشروع
     NoProject=لا يعرف أو المملوكة للمشروع
    -NbOfProjects=ملاحظة : للمشاريع
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=الوقت الذي تستغرقه
     TimeSpentByYou=الوقت الذي يقضيه من قبلك
     TimeSpentByUser=الوقت الذي يقضيه المستخدم
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=قائمة المقترحات التجارية المرتبطة بالمشروع.
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=قائمة العقود المرتبطة بالمشروع.
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=قائمة التدخلات المرتبطة بالمشروع
    -ListExpenseReportsAssociatedProject=قائمة تقارير المصاريف المرتبطة بالمشروع
    -ListDonationsAssociatedProject=قائمة التبرعات المرتبطة بالمشروع
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=قائمة الإجراءات المرتبطة بالمشروع
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=قائمة الوقت المستهلك في مهام المشروع
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=النشاط على المشروع اليوم
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=ربط طرف ثالث آخر
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=الوقت الذي يقضيه فارغة
     ThisWillAlsoRemoveTasks=وهذا العمل أيضا حذف كافة مهام المشروع <b>(%s</b> المهام في الوقت الحاضر) وجميع المدخلات من الوقت الذي تستغرقه.
    -IfNeedToUseOhterObjectKeepEmpty=إذا كانت بعض الكائنات (فاتورة، والنظام، ...)، الذين ينتمون إلى طرف ثالث آخر، يجب أن تكون مرتبطة بمشروع لإنشاء، والحفاظ على هذا فارغة لديها مشروع كونها متعددة الأطراف الثالثة.
    +IfNeedToUseOtherObjectKeepEmpty=إذا كانت بعض الكائنات (فاتورة، والنظام، ...)، الذين ينتمون إلى طرف ثالث آخر، يجب أن تكون مرتبطة بمشروع لإنشاء، والحفاظ على هذا فارغة لديها مشروع كونها متعددة الأطراف الثالثة.
     CloneProject=استنساخ المشروع
     CloneTasks=استنساخ المهام
     CloneContacts=الاتصالات استنساخ
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=المشروع %s تم تعديلة
     TaskCreatedInDolibarr=مهمة٪ الصورة التي تم إنشاؤها
     TaskModifiedInDolibarr=مهمة٪ الصورة المعدلة
     TaskDeletedInDolibarr=مهمة٪ الصورة حذف
    -OpportunityStatus=الوضع فرصة
    +OpportunityStatus=Lead status
     OpportunityStatusShort=مقابل. الحالة
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=مبلغ فرصة
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=مقابل. كمية
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=مساهم
     SelectElement=حدد العنصر
     AddElement=تصل إلى العنصر
     # Documents models
    -DocumentModelBeluga=قالب مشروع لربط الأشياء نظرة عامة
    -DocumentModelBaleine=مشروع نموذج تقرير عن المهام
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=عبء العمل المخطط لها
     PlannedWorkloadShort=عبء العمل
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=مشاريع مع هذا العضو عن الات
     TasksWithThisUserAsContact=المهام الموكلة إلى هذا المستخدم
     ResourceNotAssignedToProject=لم يتم تعيين إلى المشروع
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=تعيين مهمة بالنسبة لي
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=عين
     ProjectOverview=نظرة عامة
    -ManageTasks=استخدام المشاريع لمتابعة المهام والوقت
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=استخدام مشاريع متابعة القرائن / opportinuties
    -ProjectNbProjectByMonth=ملحوظة من المشاريع التي تم إنشاؤها من قبل شهر
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=كمية الفرص الشهر
    -ProjectWeightedOppAmountOfProjectsByMonth=كمية المرجح الفرص من قبل شهر
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=إحصاءات عن المشاريع / يؤدي
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=المهمة الموكلة. يجب دخول الوقت على هذه المهمة يكون ممكنا.
     IdTaskTime=الوقت مهمة معرف
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=فرص المبلغ الإجمالي
    -OpportunityPonderatedAmount=كمية الفرص المرجحة
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=التنقيب
     OppStatusQUAL=المؤهل العلمى
     OppStatusPROPO=مقترح
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/ar_SA/propal.lang b/htdocs/langs/ar_SA/propal.lang
    index a8f88898022..87bb5e8458d 100644
    --- a/htdocs/langs/ar_SA/propal.lang
    +++ b/htdocs/langs/ar_SA/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=وقعت (لمشروع القانون)
     PropalStatusNotSigned=لم يتم التوقيع (مغلقة)
     PropalStatusBilled=فواتير
     PropalStatusDraftShort=مسودة
    -PropalStatusValidatedShort=التحقق من صحة
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=مغلقة
     PropalStatusSignedShort=وقعت
     PropalStatusNotSignedShort=لم يتم التوقيع
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal ق لم يتم العثور على ٪
     AddToDraftProposals=إضافة إلى صياغة اقتراح
     NoDraftProposals=أي مشاريع اقتراحات
     CopyPropalFrom=اقتراح إنشاء التجارية عن طريق نسخ وجود اقتراح
    -CreateEmptyPropal=إنشاء خاليا التجارية vierge مقترحات أو من قائمة المنتجات / الخدمات
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=تقصير مدة صلاحية اقتراح التجارية (أيام)
    -UseCustomerContactAsPropalRecipientIfExist=استخدام العميل عنوان الاتصال إذا حددت بدلا من التصدي لطرف ثالث حسب الاقتراح المستفيدة معالجة
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=اقتراح استنساخ التجارية
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=اتصل العملاء اقتراح متا
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=اقتراح نموذج كامل (logo...)
    +DocModelCyanDescription=اقتراح نموذج كامل (logo...)
     DefaultModelPropalCreate=إنشاء نموذج افتراضي
     DefaultModelPropalToBill=القالب الافتراضي عند إغلاق الأعمال المقترح (أن الفاتورة)
     DefaultModelPropalClosed=القالب الافتراضي عند إغلاق الأعمال المقترح (فواتير)
    diff --git a/htdocs/langs/ar_SA/stocks.lang b/htdocs/langs/ar_SA/stocks.lang
    index d5cc7856dbd..360c5de5164 100644
    --- a/htdocs/langs/ar_SA/stocks.lang
    +++ b/htdocs/langs/ar_SA/stocks.lang
    @@ -44,7 +44,6 @@ TransferStock=Transfer stock
     MassStockTransferShort=Mass stock transfer
     StockMovement=حركة الأسهم
     StockMovements=تحركات الأسهم
    -LabelMovement=تسمية الحركة
     NumberOfUnit=عدد الوحدات
     UnitPurchaseValue=وحدة سعر الشراء
     StockTooLow=الاسهم منخفضة جدا
    @@ -55,20 +54,20 @@ PMPValueShort=الواب
     EnhancedValueOfWarehouses=قيمة المستودعات
     UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user
     AllowAddLimitStockByWarehouse=Allow to add limit and desired stock per couple (product, warehouse) instead of per product
    -IndependantSubProductStock=الأسهم المنتجات والأوراق المالية subproduct ومستقل
    +IndependantSubProductStock=Product stock and subproduct stock are independent
     QtyDispatched=ارسال كمية
     QtyDispatchedShort=أرسل الكمية
     QtyToDispatchShort=الكمية إلى إيفاد
     OrderDispatch=Item receipts
    -RuleForStockManagementDecrease=حكم لالتلقائي انخفاض إدارة المخزون (النقص اليدوي من الممكن دائما، حتى إذا تم تنشيط قاعدة الانخفاض التلقائي)
    -RuleForStockManagementIncrease=حكم لآلية الزيادة إدارة المخزون (زيادة اليدوية هي دائما ممكنة، حتى إذا تم تنشيط زيادة قاعدة تلقائية)
    -DeStockOnBill=خفض مخزونات حقيقية على فواتير الزبائن / الائتمان التحقق من صحة الملاحظات
    -DeStockOnValidateOrder=خفض مخزونات حقيقية على التحقق من صحة أوامر العملاء
    +RuleForStockManagementDecrease=Choose Rule for automatic stock decrease (manual decrease is always possible, even if an automatic decrease rule is activated)
    +RuleForStockManagementIncrease=Choose Rule for automatic stock increase (manual increase is always possible, even if an automatic increase rule is activated)
    +DeStockOnBill=Decrease real stocks on validation of customer invoice/credit note
    +DeStockOnValidateOrder=Decrease real stocks on validation of customer order
     DeStockOnShipment=انخفاض أسهم حقيقي على التحقق من صحة الشحن
     DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed
    -ReStockOnBill=زيادة المخزون الحقيقي في فواتير الموردين / الائتمان التحقق من صحة الملاحظات
    -ReStockOnValidateOrder=Increase real stocks on purchase orders approbation
    -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods
    +ReStockOnBill=Increase real stocks on validation of supplier invoice/credit note
    +ReStockOnValidateOrder=Increase real stocks on purchase order approval
    +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouse, after supplier order receipt of goods
     OrderStatusNotReadyToDispatch=أمر لم يتم بعد أو لا أكثر من ذلك الوضع الذي يسمح بإرسال من المنتجات في مخازن المخزون.
     StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock
     NoPredefinedProductToDispatch=لا توجد منتجات محددة سلفا لهذا الكائن. لذلك لا إرسال في المخزون المطلوب.
    @@ -130,10 +129,11 @@ RecordMovement=Record transfer
     ReceivingForSameOrder=إيصالات لهذا النظام
     StockMovementRecorded=تحركات الأسهم سجلت
     RuleForStockAvailability=القواعد المتعلقة بمتطلبات الأسهم
    -StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to invoice (check is done on current real stock when adding a line into invoice whatever is rule for automatic stock change)
    -StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change)
    -StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change)
    +StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to invoice (check is done on current real stock when adding a line into invoice whatever the rule for automatic stock change)
    +StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever the rule for automatic stock change)
    +StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever the rule for automatic stock change)
     MovementLabel=تسمية الحركة
    +TypeMovement=Type of movement
     DateMovement=Date of movement
     InventoryCode=حركة المخزون أو كود
     IsInPackage=الواردة في حزمة
    @@ -172,7 +172,7 @@ inventoryDraft=على التوالي
     inventorySelectWarehouse=Warehouse choice
     inventoryConfirmCreate=إنشاء
     inventoryOfWarehouse=Inventory for warehouse : %s
    -inventoryErrorQtyAdd=Error : one quantity is leaser than zero
    +inventoryErrorQtyAdd=Error : one quantity is less than zero
     inventoryMvtStock=By inventory
     inventoryWarningProductAlreadyExists=This product is already into list
     SelectCategory=فئة فلتر
    @@ -195,12 +195,16 @@ AddInventoryProduct=Add product to inventory
     AddProduct=إضافة
     ApplyPMP=Apply PMP
     FlushInventory=Flush inventory
    -ConfirmFlushInventory=Do you confirm this action ?
    +ConfirmFlushInventory=Do you confirm this action?
     InventoryFlushed=Inventory flushed
     ExitEditMode=Exit edition
     inventoryDeleteLine=حذف الخط
     RegulateStock=Regulate Stock
     ListInventory=قائمة
    -StockSupportServices=Stock management support services
    +StockSupportServices=Stock management supports Services
     StockSupportServicesDesc=By default, you can stock only product with type "product". If on, and if module service is on, you can also stock a product with type "service"
     ReceiveProducts=Receive items
    +StockIncreaseAfterCorrectTransfer=Increase by correction/transfer
    +StockDecreaseAfterCorrectTransfer=Decrease by correction/transfer
    +StockIncrease=Stock increase
    +StockDecrease=Stock decrease
    diff --git a/htdocs/langs/ar_SA/website.lang b/htdocs/langs/ar_SA/website.lang
    index 0b9bd8ad92c..0c5ae03969c 100644
    --- a/htdocs/langs/ar_SA/website.lang
    +++ b/htdocs/langs/ar_SA/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=رمز
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=قرأ
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang
    index 9c97645f0a2..c9dd36d00ac 100644
    --- a/htdocs/langs/bg_BG/admin.lang
    +++ b/htdocs/langs/bg_BG/admin.lang
    @@ -1,7 +1,7 @@
     # Dolibarr language file - Source file is en_US - admin
     Foundation=Организация
     Version=Версия
    -Publisher=Publisher
    +Publisher=Издател
     VersionProgram=Версия на програмата
     VersionLastInstall=Първоначално инсталирана версия
     VersionLastUpgrade=Версия на последния ъпгрейд
    @@ -9,39 +9,39 @@ VersionExperimental=Експериментален
     VersionDevelopment=Разработка
     VersionUnknown=Неизвестен
     VersionRecommanded=Препоръчва се
    -FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
    +FileCheck=Проверка за интегритета на файлове
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
    +FileIntegrityIsStrictlyConformedWithReference=Интегритетът на файловете е стриктно съобразен с позоваването.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
    +FileIntegritySomeFilesWereRemovedOrModified=Проверката за цялостта на файловете е неуспешна. Някои файлове бяха променени, премахнати или добавени.
     GlobalChecksum=Global checksum
    -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    -LocalSignature=Embedded local signature (less reliable)
    -RemoteSignature=Remote distant signature (more reliable)
    +MakeIntegrityAnalysisFrom=Извършване на анализ на целостта на файловете на приложението от
    +LocalSignature=Вграден локален подпис (по малко надеждно)
    +RemoteSignature=Отдалечен подпис (по надежден)
     FilesMissing=Missing Files
     FilesUpdated=Updated Files
    -FilesModified=Modified Files
    -FilesAdded=Added Files
    -FileCheckDolibarr=Check integrity of application files
    +FilesModified=Променени файлове
    +FilesAdded=Добавени файлове
    +FileCheckDolibarr=Проверете целостта на файловете на приложението
     AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package
    -XmlNotFound=Xml Integrity File of application not found
    +XmlNotFound=Xml Integrity Файлът на приложението не е намерен
     SessionId=ID на сесията
     SessionSaveHandler=Handler за да запазите сесията
     SessionSavePath=Място за съхранение на сесията
     PurgeSessions=Изчистване на сесиите
     ConfirmPurgeSessions=Сигурни ли сте, че желаете да изчистите всички сесии? Това ще прекъсне всички потребители (освен Вас).
    -NoSessionListWithThisHandler=Запиши сесиен манипулатор конфигурирани във вашата PHP, не позволява да се изброят всички текущи сесии.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Заключване за нови свързвания
    -ConfirmLockNewSessions=Сигурни ли сте, че желаете да ограничите всяка нова връзка Dolibarr за себе си. Само <b>%s</b> потребителят ще бъде в състояние да се свърже след това.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Разрешаване на свързването
     YourSession=Вашата сесия
    -Sessions=Потребителска сесия
    +Sessions=Потребителски сесии
     WebUserGroup=Уеб сървър потребител/група
    -NoSessionFound=PHP изглежда не се допуска да се изброят активни сесии. Directory, използван за записване сесии <b>(%s),</b> могат да бъдат защитени (например чрез разрешения OS или чрез PHP директива open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Кодиране на знаците за съхраняваните данни в базата данни
     DBSortingCharset=Набор от знаци база данни, за да сортирате данните
    -ClientCharset=Client charset
    -ClientSortingCharset=Client collation
    +ClientCharset=Клиентски набор
    +ClientSortingCharset=Сортиране на клиент
     WarningModuleNotActive=Модула <b>%s</b> трябва да бъде включен
     WarningOnlyPermissionOfActivatedModules=Само разрешения, свързани с активирани модули са показани тук. Можете да активирате други модули в страницата Начало->Настройки->Модули.
     DolibarrSetup=Dolibarr инсталиране или обновяване
    @@ -51,13 +51,13 @@ InternalUsers=Вътрешни потребители
     ExternalUsers=Външни потребители
     GUISetup=Екран
     SetupArea=Настройки
    -UploadNewTemplate=Upload new template(s)
    +UploadNewTemplate=Качи нов шаблон(и)
     FormToTestFileUploadForm=Форма за тестване качване на файлове (за настройка)
     IfModuleEnabled=Забележка: Ефективно е само ако модула <b>%s</b> е активиран
     RemoveLock=Премахнете файла <b>%s</b> ако съществува, за да се позволи използването на инструмента за актуализация.
     RestoreLock=Възстановете файла <b>%s,</b> само с права за четене за да се забрани използването на инструмента за актуализация.
     SecuritySetup=Настройки на сигурността
    -SecurityFilesDesc=Define here options related to security about uploading files.
    +SecurityFilesDesc=Определете тук опциите, свързани със сигурността, относно качването на файлове.
     ErrorModuleRequirePHPVersion=Грешка, този модул изисква PHP версия %s или по-висока
     ErrorModuleRequireDolibarrVersion=Грешка, този модул изисква Dolibarr версия %s или по-висока
     ErrorDecimalLargerThanAreForbidden=Грешка, точност по-висока от <b>%s</b> не се поддържа.
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Кода не може да съдържа стойно
     DisableJavascript=Изключете функциите JavaScript и Ajax (Препоръчва се за незрящи и при текстови браузъри)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=NBR от знаци, за да предизвика търсене: %s
     NotAvailableWhenAjaxDisabled=Не е налично, когато Аякс инвалиди
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview не е наличен
     ThemeCurrentlyActive=Тема активни в момента
     CurrentTimeZone=TimeZone PHP (сървър)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Пространство
     Table=Таблица
     Fields=Полетата
    @@ -89,7 +89,7 @@ Mask=Маска
     NextValue=Следваща стойност
     NextValueForInvoices=Следваща стойност (фактури)
     NextValueForCreditNotes=Следваща стойност (кредитни известия)
    -NextValueForDeposit=Next value (down payment)
    +NextValueForDeposit=Следваща стойност (авансово плащане)
     NextValueForReplacements=Next value (replacements)
     MustBeLowerThanPHPLimit=Забележка: PHP ограничава размера на всяко качване на файлове на <b>%s</b> %s, независимо от стойността на този параметър е
     NoMaxSizeByPHPLimit=Забележка: Не срокът се определя в конфигурацията на вашия PHP
    @@ -101,7 +101,7 @@ AntiVirusParam= Още параметри на командния ред
     AntiVirusParamExample= Пример за ClamWin: - база данни = &quot;C: \\ Program Files (x86) \\ ClamWin \\ ИЪ&quot;
     ComptaSetup=Настройка на счетоводния модул
     UserSetup=Настройки за управление на потребителите
    -MultiCurrencySetup=Multi-currency setup
    +MultiCurrencySetup=Настройка на няколко валути
     MenuLimits=Граници и точност
     MenuIdParent=ID майка меню
     DetailMenuIdParent=ID на основното меню (0 за горното меню)
    @@ -111,14 +111,14 @@ NotConfigured=Модула не е конфигуриран
     Active=Активен
     SetupShort=Настройки
     OtherOptions=Други опции
    -OtherSetup=Други настройки
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Десетичен разделител
     CurrentValueSeparatorThousand=Thousand сепаратор
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Параметър %s
    -LocalisationDolibarrParameters=Локализация параметри
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Часова зона на клиента (потребител)
     ClientHour=Час на клиента (потребител)
     OSTZ=Часова зона на Операционната Система
    @@ -126,12 +126,12 @@ PHPTZ=Часова зона на PHP Сървъра
     DaylingSavingTime=Лятното часово време
     CurrentHour=Час на PHP (сървър)
     CurrentSessionTimeOut=Продължителност на текущата сесия
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Джаджа
     Boxes=Джаджи
     MaxNbOfLinesForBoxes=Максимален брой на редовете за джаджи
    -AllWidgetsWereEnabled=All available widgets are enabled
    +AllWidgetsWereEnabled=Всички налични джаджи са активирани
     PositionByDefault=Default order
     Position=Длъжност
     MenusDesc=Мениджърите на менюто определят дали съдържанието на двете ленти с менюта (хоризонтална лента и вертикална лента).
    @@ -151,7 +151,7 @@ PurgeDeleteAllFilesInDocumentsDir=Изтриване на всички файл
     PurgeRunNow=Изчистване сега
     PurgeNothingToDelete=Няма директория или файлове за изтриване.
     PurgeNDirectoriesDeleted=<b>%s</b> изтрити файлове или директории.
    -PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
    +PurgeNDirectoriesFailed=Неуспешно изтриване на файлове или директории от <b> %s </b>.
     PurgeAuditEvents=Поръси всички събития по сигурността
     ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed.
     GenerateBackup=Генериране на бекъп
    @@ -187,36 +187,36 @@ ExtendedInsert=Extended INSERT
     NoLockBeforeInsert=No lock commands around INSERT
     DelayedInsert=Delayed insert
     EncodeBinariesInHexa=Encode binary data in hexadecimal
    -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
    +IgnoreDuplicateRecords=Игнориране на грешки при дублиране на записите (INSERT IGNORE)
     AutoDetectLang=Автоматично (език на браузъра)
     FeatureDisabledInDemo=Feature инвалиди в демо
    -FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +FeatureAvailableOnlyOnStable=Функционалност само налична на официалната стабилна версия.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Показани са само елементи от <a href="%s">активирани модули</a>.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    -ModulesMarketPlaces=Find external app/modules
    -ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
    +ModulesMarketPlaceDesc=Можете да намерите още модули за изтегляне на външни уеб сайтове в интернет ...
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
    +ModulesMarketPlaces=Намери външно приложение/модул
    +ModulesDevelopYourModule=Разработи твое приложение/модул
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Нов
    -FreeModule=Free
    -CompatibleUpTo=Compatible with version %s
    -NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
    -CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s - Max %s).
    -SeeInMarkerPlace=See in Market place
    -Updated=Updated
    -Nouveauté=Novelty
    -AchatTelechargement=Buy / Download
    +FreeModule=Свободно
    +CompatibleUpTo=Съвместим с версия %s
    +NotCompatible=Този модул не изглежда съвместим с Dolibarr %s (Мин. %s - Макс. %s).
    +CompatibleAfterUpdate=Този модул изисква актуализиране на вашия Dolibarr %s (Min %s - Max %s).
    +SeeInMarkerPlace=Вижте "Пазар"
    +Updated=Обновено
    +Nouveauté=Новост
    +AchatTelechargement=Купете / Изтеглете
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, официалният пазар за външни модули за Dolibarr ERP/CRM
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    -DevelopYourModuleDesc=Some solutions to develop your own module...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
    +DevelopYourModuleDesc=Някои решения за разработване на вашия собствен модул ...
     URL=Връзка
    -BoxesAvailable=Widgets available
    -BoxesActivated=Widgets activated
    +BoxesAvailable=Налични джаджи
    +BoxesActivated=Активни джаджи
     ActivateOn=Активиране на
     ActiveOn=Активирана
     SourceFile=Изходният файл
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Да не се магазин ясни пароли в 
     MainDbPasswordFileConfEncrypted=Парола за базата данни, кодирани в conf.php (Активира се препоръчва)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Защита на генерираните PDF файлове (активиран не се препоръчва, почивки поколение на маса PDF)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Особеност
     DolibarrLicense=Лиценз
    @@ -241,58 +241,62 @@ OfficialDemo=Dolibarr онлайн демо
     OfficialMarketPlace=Официален магазин за външни модули/добавки
     OfficialWebHostingService=Препоръчителен уеб хостинг услуги (хостинг в интернет облак)
     ReferencedPreferredPartners=Preferred Partners
    -OtherResources=Other resources
    -ExternalResources=External resources
    -SocialNetworks=Social Networks
    +OtherResources=Други ресурси
    +ExternalResources=Външни ресурси
    +SocialNetworks=Социални мрежи
     ForDocumentationSeeWiki=Документация за потребител или разработчик (Doc, често задавани въпроси ...), <br> можете да намерите в Dolibarr Wiki: <br> <a href="%s" target="_blank"><b>%s</b></a>
     ForAnswersSeeForum=За всякакви други въпроси / Помощ, можете да използвате форума Dolibarr: <br> <a href="%s" target="_blank"><b>%s</b></a>
    -HelpCenterDesc1=Тази област може да ви помогне да получите помощ и поддръжка за Dolibarr.
    -HelpCenterDesc2=Част от тази услуга е достъпна <b>само</b> на <b>английски език.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Текущото меню манипулатор
     MeasuringUnit=Мерна единица
    -LeftMargin=Left margin
    -TopMargin=Top margin
    -PaperSize=Paper type
    -Orientation=Orientation
    -SpaceX=Space X
    -SpaceY=Space Y
    -FontSize=Font size
    -Content=Content
    +LeftMargin=Лява граница
    +TopMargin=Горна граница
    +PaperSize=Тип хартия
    +Orientation=Ориентация
    +SpaceX=Пространство Х
    +SpaceY=Пространство Y
    +FontSize=Размер на шрифта
    +Content=Съдържание
     NoticePeriod=Период на известяване
    -NewByMonth=New by month
    -Emails=Emails
    -EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    -EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Порт (По подразбиране в php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Хост (По подразбиране в php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Порт (Не дефиниран в PHP на Unix подобни системи)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Хост (Не дефиниран в PHP на Unix подобни системи)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Изпрати систематично скрит въглероден копие на всички изпратени имейли
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    -MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Метод за изпращане на имейли
    -MAIN_MAIL_SMTPS_ID=SMTP ID, ако разпознаване, изискван
    -MAIN_MAIL_SMTPS_PW=SMTP парола, ако разпознаване, изискван
    -MAIN_MAIL_EMAIL_TLS= Използване на TLS (SSL) криптиране
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Изключване на всички SMS sendings (за тестови цели или демонстрации)
    +NewByMonth=Ново по месец
    +Emails=Имейли
    +EMailsSetup=Настройка на имейли
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
    +EmailSenderProfiles=Профили на подател на имейли
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
    +MAIN_MAIL_FORCE_SENDTO=Изпратете всички имейли до (вместо реални получатели за целите на теста)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Метод за изпращане на SMS
    -MAIN_MAIL_SMS_FROM=Номер по подразбиране на телефона за изпращане на SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    -UserEmail=User email
    -CompanyEmail=Company email
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
    +UserEmail=Потребителски имейл
    +CompanyEmail=Имейл на фирмата
     FeatureNotAvailableOnLinux=Функцията не е на разположение на Unix подобни системи. Тествайте вашата програма Sendmail на местно ниво.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Настройки на модул
    -ModulesSetup=Modules/Application setup
    +ModulesSetup=Модули / Приложения настройка
     ModuleFamilyBase=Система
     ModuleFamilyCrm=Управление на Връзки с клиенти (CRM)
    -ModuleFamilySrm=Vendor Relation Management (VRM)
    +ModuleFamilySrm=Управление на взаимоотношенията с доставчиците (VRM)
     ModuleFamilyProducts=Управление на продукти
     ModuleFamilyHr=Управление на човешките ресурси
     ModuleFamilyProjects=Проекти / съвместна работа
    @@ -301,31 +305,31 @@ ModuleFamilyTechnic=Mutli модули инструменти
     ModuleFamilyExperimental=Експериментални модули
     ModuleFamilyFinancial=Финансови Модули (Счетоводство/Каса)
     ModuleFamilyECM=Електронно Управление на Съдържанието (ECM)
    -ModuleFamilyPortal=Уеб сайтове и друго фронтално приложение
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Интерфейси със външни системи.
     MenuHandlers=Меню работещи
     MenuAdmin=Menu Editor
     DoNotUseInProduction=Не използвайте на продукшън платформа
    -ThisIsProcessToFollow=This is steps to process:
    -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
    +ThisIsProcessToFollow=Това са стъпки за обработка:
    +ThisIsAlternativeProcessToFollow=Това е алтернатива за ръчно обработване:
     StepNb=Стъпка %s
    -FindPackageFromWebSite=Намери пакет, който осигурява функция искате (например относно официалния уеб сайт %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Текуща версия на Dolibarr
    -CallUpdatePage=Go to the page that updates the database structure and data: %s.
    -LastStableVersion=Latest stable version
    -LastActivationDate=Latest activation date
    +CallUpdatePage=Отворете страницата, която актуализира структурата и данните на базата данни: %s.
    +LastStableVersion=Последна стабилна версия
    +LastActivationDate=Последна дата на активиране
     LastActivationAuthor=Latest activation author
    -LastActivationIP=Latest activation IP
    +LastActivationIP=Последно IP активиране
     UpdateServerOffline=Update server offline
    -WithCounter=Manage a counter
    +WithCounter=Управление на брояч
     GenericMaskCodes=Можете да въведете всяка маска за номериране. В тази маска, могат да се използват следните тагове: <br> <b>{000000}</b> съответства на номер, който се увеличава на всеки %s. Влез като много нули като желаната дължина на брояча. Броячът ще бъде завършен с нули от ляво, за да има колкото се може повече нули като маска. <br> <b>{000000 000}</b> същата като предишната, но компенсира, съответстваща на броя на правото на знака + се прилага започва на първи %s. <br> <b>{000000 @}</b> същата като предишната, но броячът се нулира, когато месеца Х е достигнал (Х между 1 и 12, или 0, за да използвате началото на месеца на фискалната година, определени в вашата конфигурация). Ако тази опция се използва и х е 2 или по-висока, тогава последователност {гг} {mm} или {гггг} {mm} също е задължително. <br> <b>{DD}</b> ден (01 до 31). <br> <b>{Mm}</b> месец (01 до 12). <br> <b>{Гг} {гггг}</b> или <b>{Y}</b> година над 2, 4 или 1 брой. <br>
     GenericMaskCodes2=<b>{cccc}</b> the client code on n characters<br><b>{cccc000}</b> the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.<br><b>{tttt}</b> The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.<br>
     GenericMaskCodes3=Всички други символи на маската ще останат непокътнати. <br> Интервалите не са разрешени. <br>
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Забавяне за кеширане износ отговор в секунда (0 или празно за не кеш)
     DisableLinkToHelpCenter=Скриване на връзката <b>Нуждаете се от помощ или поддръжка</b> от страницата за вход
     DisableLinkToHelp=Скриване на линка към онлайн помощ "<b>%s</b>"
    -AddCRIfTooLong=, Не съществува автоматична опаковане, така че ако линията е на страницата на документи, защото твърде дълго, трябва да се добави знаци за връщане в текстовото поле.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Минимална дължина
     LanguageFilesCachedIntoShmopSharedMemory=Файлове. Lang заредени в споделена памет
    -LanguageFile=Language file
    -ExamplesWithCurrentSetup=Примери с текущата настройка
    +LanguageFile=Езиков файл
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Списък на OpenDocument директории шаблони
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Брой на ODT файлове шаблони, намерени в тези директории
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Примери на синтаксиса: <br> C: \\ mydir <br> / Начало / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> За да разберете как да създадете свои ODT шаблони на документи, преди да ги съхранявате в тези указатели, прочетете уики документация:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,36 +369,36 @@ KeyForWebServicesAccess=Ключът към използване на Web Servic
     TestSubmitForm=Формата на входящ тест
     ThisForceAlsoTheme=Използването на този Menu Manager ще използва своята собствена тема какъвто и да е избор на потребителя. Освен това меню мениджър, специализирана за смартфони не работи върху всички смартфони. Използвайте менюто друг мениджър, ако имате проблеми на твоя.
     ThemeDir=Директория с темите
    -ConnectionTimeout=Connexion изчакване
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Отговор изчакване
     SmsTestMessage=Тест съобщение от __ PHONEFROM__ __ PHONETO__
     ModuleMustBeEnabledFirst=Модул <b>%s</b> трябва да бъде активиран първо ако се нуждаете от тази опция.
     SecurityToken=Ключът за осигуряване на сигурна URL адреси
    -NoSmsEngine=Не изпращач мениджър SMS на разположение. SMS подателя мениджър не са инсталирани по подразбиране разпределение (защото зависи от външен доставчик), но можете да намерите някои по %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Можете да настроите всеки глобални опции, свързани към PDF поколение
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Правила за изграждането на адрес кутии
    -HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
    -PDFRulesForSalesTax=Rules for Sales Tax / VAT
    -PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideAnyVATInformationOnPDF=Скриване на цялата информация, свързана с данък върху продажбите / ДДС върху генерирания PDF файл
    +PDFRulesForSalesTax=Правила за данък върху продажбите / ДДС
    +PDFLocaltax=Правила за %s
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Скриване на продуктите описание на генерирани PDF
     HideRefOnPDF=Скриване на продуктите код. генерирани PDF
    -HideDetailsOnPDF=Hide product lines details on generated PDF
    +HideDetailsOnPDF=Скриване на детайлите на продуктовите линии за генерираните PDF файлове
     PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position
     Library=Библиотека
     UrlGenerationParameters=Параметри за осигуряване на URL адреси
     SecurityTokenIsUnique=Използвайте уникална параметър securekey за всеки URL
     EnterRefToBuildUrl=Въведете справка за обект %s
     GetSecuredUrl=Изчислява URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old ставка на ДДС
     NewVATRates=Нов ставка на ДДС
     PriceBaseTypeToChange=Промяна на цените с база референтна стойност, определена на
     MassConvert=Стартиране маса конвертирате
     String=Низ
     TextLong=Дълъг текст
    -HtmlText=Html text
    +HtmlText=HTML текст
     Int=Цяло число
     Float=Десетично число
     DateAndTime=Дата и час
    @@ -408,20 +412,20 @@ ExtrafieldSelect = Избор лист
     ExtrafieldSelectList = Избор от таблица
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Парола
    -ExtrafieldRadio=Radio buttons (on choice only)
    -ExtrafieldCheckBox=Checkboxes
    -ExtrafieldCheckBoxFromList=Checkboxes from table
    +ExtrafieldRadio=Radio buttons (one choice only)
    +ExtrafieldCheckBox=Полета за отметка
    +ExtrafieldCheckBoxFromList=Отметки от таблицата
     ExtrafieldLink=Link to an object
    -ComputedFormula=Computed field
    +ComputedFormula=Изчислено поле
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpsellist=List of values comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>- idfilter is necessarly a primary int key<br>- filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
     ExtrafieldParamHelpchkbxlst=List of values comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list :<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
     ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax : ObjectName:Classpath<br>Examples :<br>Societe:societe/class/societe.class.php<br>Contact:contact/class/contact.class.php
    -LibraryToBuildPDF=Library used for PDF generation
    +LibraryToBuildPDF=Използвана библиотека за създаване на PDF файлове
     LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)<br>2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)<br>3 : local tax apply on products without vat (localtax is calculated on amount without tax)<br>4 : local tax apply on products including vat (localtax is calculated on amount + main vat)<br>5 : local tax apply on services without vat (localtax is calculated on amount without tax)<br>6 : local tax apply on services including vat (localtax is calculated on amount + tax)
     SMS=SMS
     LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user <strong>%s</strong>
    @@ -429,63 +433,65 @@ RefreshPhoneLink=Обнови връзка
     LinkToTest=Генерирана е връзка за потребител <strong>%s</strong> (натиснете телефонния номер за тест)
     KeepEmptyToUseDefault=Оставете празно за стойност по подразбиране
     DefaultLink=Връзка по подразбиране
    -SetAsDefault=Set as default
    +SetAsDefault=Избери като по-подразбиране
     ValueOverwrittenByUserSetup=Внимание, тази стойност може да бъде презаписана от потребителски настройки (всеки потребител може да зададе собствен натисни-набери адрес)
     ExternalModule=Външен модул - инсталиран в директория %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
    -CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
    +CurrentlyNWithoutBarCode=Понастоящем имате <strong> %s </strong> запис на <strong> %s </strong> %s без дефиниран баркод.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
    -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
    +ConfirmEraseAllCurrentBarCode=Сигурни ли сте че, искате да изтриете всички текущи стойности на баркода?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Пусни кеширането на файла
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
    -NoDetails=No more details in footer
    -DisplayCompanyInfo=Display company address
    -DisplayCompanyManagers=Display manager names
    -DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    -ModuleCompanyCodePanicum=Return an empty accounting code.
    -ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
    +NoDetails=Няма повече подробности в долния колонтитул
    +DisplayCompanyInfo=Показване на фирмения адрес
    +DisplayCompanyManagers=Показване на името на управителя
    +DisplayCompanyInfoAndManagers=Показване на адреса на фирмата и имената на управителя
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
    +ModuleCompanyCodePanicum=Върнете празен код за счетоводство.
    +ModuleCompanyCodeDigitaria=Счетоводният код зависи от кода на контрагента. Кодът се състои от символа "C" на първа позиция, последван от първите 5 знака на кода на Контрагента.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
    -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +UseDoubleApproval=Използвайте одобрение от 3 стъпки, когато сумата (без данък) е по-висока от ...
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
    -ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    -RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +ClickToShowDescription=Кликнете, за да се покаже описание
    +DependsOn=This module needs the module(s)
    +RequiredBy=Този модул се изисква от модул (и)
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +EnableDefaultValues=Разрешете използването на персонализирани стойности по подразбиране
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Област
    -ProductDocumentTemplates=Document templates to generate product document
    -FreeLegalTextOnExpenseReports=Free legal text on expense reports
    -WatermarkOnDraftExpenseReports=Watermark on draft expense reports
    -AttachMainDocByDefault=Set this to 1 if you want to attach main document to email by default (if applicable)
    -FilesAttachedToEmail=Attach file
    -SendEmailsReminders=Send agenda reminders by emails
    -davDescription=Add a component to be a DAV server
    -DAVSetup=Setup of module DAV
    -DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +ProductDocumentTemplates=Шаблони на документи за генериране на продуктов документ
    +FreeLegalTextOnExpenseReports=Безплатен правен текст в отчетите за разходите
    +WatermarkOnDraftExpenseReports=Воден знак за чернови на отчети за разходите
    +AttachMainDocByDefault=Задайте това на 1, ако искате да прикачите основния документ по имейл по подразбиране (ако е приложимо)
    +FilesAttachedToEmail=Прикачите файл
    +SendEmailsReminders=Изпратете напомняния за дневния ред по имейли
    +davDescription=Добавете компонент за DAV сървър
    +DAVSetup=Настройка на модул DAV
    +DAV_ALLOW_PUBLIC_DIR=Разрешаване на публичната директория (директория WebDav, без да е необходима регистрация)
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Потребители и групи
    -Module0Desc=Users / Employees and Groups management
    -Module1Name=Контрагенти
    -Module1Desc=Фирми и управление на контакти
    +Module0Desc=Управление на потребители / служители и групи
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Търговски
     Module2Desc=Търговско управление
     Module10Name=Счетоводство
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Предложения
     Module20Desc=Търговско предложение управление
     Module22Name=Масови имейли
    @@ -495,9 +501,9 @@ Module23Desc=Наблюдение на консумацията на енерг
     Module25Name=Поръчки от клиенти
     Module25Desc=Управление на поръчка на клиента
     Module30Name=Фактури
    -Module30Desc=Фактура и управление на кредитно известие за клиентите. Фактура за управление на доставчици
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Доставчици
    -Module40Desc=Suppliers and purchase management (purchase orders and billing)
    +Module40Desc=Доставчици и управление на покупки (поръчки за покупка и таксуване)
     Module42Name=Debug Logs
     Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes.
     Module49Name=Редактори
    @@ -511,13 +517,13 @@ Module52Desc=Управление на склад (продукти)
     Module53Name=Услуги
     Module53Desc=Управление на услуги
     Module54Name=Договори/Абонаменти
    -Module54Desc=Управление на договори (услуги или абонаменти)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Баркодове
     Module55Desc=Управление на баркод
     Module56Name=Телефония
     Module56Desc=Телефония интеграция
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Интеграция на ClickToDial система (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,47 +534,47 @@ Module75Name=Разход и пътуване бележки
     Module75Desc=Сметка и управление на пътуване бележки
     Module80Name=Превозите
     Module80Desc=Пратки и управление на заповедта за доставяне
    -Module85Name=Банки и пари в брой
    +Module85Name=Banks and Cash
     Module85Desc=Управление на банкови или парични сметки
    -Module100Name=Външен сайт
    -Module100Desc=Този модул зарежда външен уеб сайт или страница във фрейм и създава връзка в менюто на Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Пощальон и СПИП
     Module105Desc=Пощальон или СПИП интерфейс за член модул
     Module200Name=LDAP
    -Module200Desc=LDAP директория за синхронизация
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke интеграция
     Module240Name=Данни износ
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Импортирането на данни
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Членове
     Module310Desc=Управление на членовете на организацията
     Module320Name=RSS емисия
     Module320Desc=Добавяне на RSS емисия в страниците на Dolibarr
    -Module330Name=Отметки
    -Module330Desc=Управление на отметките
    -Module400Name=Проекти/Възможности
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar интеграция
    -Module500Name=Taxes and Special expenses
    -Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
    -Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module500Name=Данъци и специални разходи
    +Module500Desc=Управление на други разходи (ДДС, социални или допълнителни данъци, дивиденти, ...)
    +Module510Name=Плащане на заплатите на служителите
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
    -Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    -Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module600Name=Известия за бизнес събития
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
    +Module610Name=Продуктови варианти
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Дарения
     Module700Desc=Управление на дарения
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    -Module1120Name=Vendor commercial proposal
    -Module1120Desc=Request vendor commercial proposal and prices
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
    +Module1120Name=Търговско предложение на доставчик
    +Module1120Desc=Поискайте търговско предложение и цени от доставчик
     Module1200Name=Богомолка
     Module1200Desc=Mantis интеграция
     Module1520Name=Document Generation
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG редактор
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Планирани задачи
    -Module2300Desc=Scheduled jobs management (alias cron or chrono table)
    -Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2300Desc=Планирано управление на заданията (псевдоним на таблица cron или chrono)
    +Module2400Name=Събития / Дневен ред
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API services (Web services SOAP)
    @@ -590,48 +596,52 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API services (Web services REST)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Активиране на Dolibarr клиент за уеб услуги (Може да бъде използван за изпращане на информация/заявки към външни сървъри. Поръчки от доставчик единствено за момента)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Използвайте онлайн Gravatar услуга (www.gravatar.com), за да покаже снимка на потребители / членове с техните имейли. Нуждаете се от интернет
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Клиент
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP MaxMind реализации възможности
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
    -Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Name=Незаменими архиви
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=ЧР
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Няколко фирми
     Module5000Desc=Позволява ви да управлявате няколко фирми
     Module6000Name=Workflow
     Module6000Desc=Workflow management (automatic creation of object and/or automatic status change)
    -Module10000Name=Websites
    +Module10000Name=Уебсайтове
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    -Module39000Name=Products lots
    +Module20000Desc=Declare and track employees leave requests
    +Module39000Name=Продукти партиди
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Точка на продажбите
    -Module50100Desc=Point of sales module (POS).
    +Module50100Desc=Модул за точка на продажби (POS).
    +Module50150Name=Точка на продажбите
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Полета
     Module59000Desc=Модул за управление на маржовете
     Module60000Name=Комисии
     Module60000Desc=Модул за управление на комисии
    -Module62000Name=Инкотерм
    -Module62000Desc=Добяване на свойства за управление на Инкотерм
    +Module62000Name=Инкотермс
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Ресурси
    -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
    +Module63000Desc=Управлявайте ресурсите (принтери, коли, стая, ...), след което можете да ги споделяте в събитията
     Permission11=Клиентите фактури
     Permission12=Създаване / промяна на фактури на клиентите
     Permission13=Unvalidate клиентите фактури
    @@ -651,10 +661,10 @@ Permission32=Създаване / промяна на продукти
     Permission34=Изтриване на продукти
     Permission36=Преглед / управление на скрити продукти
     Permission38=Износ на продукти
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Изтриване на проекти (общи проекти и проекти съм се с нас за)
    -Permission45=Export projects
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
    +Permission45=Експортиране на проекти
     Permission61=Прочети интервенции
     Permission62=Създаване / промяна на интервенции
     Permission64=Изтриване на интервенции
    @@ -663,7 +673,7 @@ Permission71=Прочети членове
     Permission72=Създаване / промяна на членове
     Permission74=Изтриване на членовете
     Permission75=Setup types of membership
    -Permission76=Export data
    +Permission76=Експортиране на данни
     Permission78=Прочети абонаменти
     Permission79=Създаване/промяна на абонаменти
     Permission81=Клиенти поръчки
    @@ -686,7 +696,7 @@ Permission109=Изтриване sendings
     Permission111=Финансови сметки
     Permission112=Създаване / редакция / изтриване и сравни сделки
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Експортни сделки и извлеченията от сметките
     Permission116=Трансфери между сметки
     Permission117=Управление на проверки за експедиция
    @@ -694,21 +704,21 @@ Permission121=Четене на трети лица, свързани с пот
     Permission122=Създаване / промяна контрагенти, свързани с потребителя
     Permission125=Изтриване на трети лица, свързани с потребителя
     Permission126=Контрагенти за износ
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Прочети доставчици
     Permission147=Прочети статистиката
     Permission151=Read direct debit payment orders
    -Permission152=Create/modify a direct debit payment orders
    +Permission152=Създаване / промяна на нареждания за директен дебит
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
     Permission164=Disable a service/subscription of a contract
     Permission165=Delete contracts/subscriptions
    -Permission167=Export contracts
    +Permission167=Експортиране на договори
     Permission171=Read trips and expenses (yours and your subordinates)
     Permission172=Create/modify trips and expenses
     Permission173=Delete trips and expenses
    @@ -725,7 +735,7 @@ Permission187=Близки поръчки доставчици
     Permission188=Отказ доставчика поръчки
     Permission192=Създаване на линии
     Permission193=Отказ линии
    -Permission194=Прочетете честотна лента линии
    +Permission194=Read the bandwidth lines
     Permission202=Създаване на ADSL връзки
     Permission203=Поръчка връзки поръчки
     Permission204=Поръчка връзки
    @@ -750,12 +760,12 @@ Permission244=Вижте съдържанието на скрити катего
     Permission251=Прочетете други потребители и групи
     PermissionAdvanced251=Прочетете други потребители
     Permission252=Разрешения на други потребители
    -Permission253=Създаване / промяна на други потребители, групи и permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Създаване / промяна на вътрешни / външни потребители и разрешения
     Permission254=Създаване / промяна на външни потребители
     Permission255=Промяна на други потребители парола
     Permission256=Изтрий или забраняване на други потребители
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Прочети CA
     Permission272=Прочети фактури
     Permission273=Издаване на фактури
    @@ -765,7 +775,7 @@ Permission283=Изтриване на контакти
     Permission286=Експортиране на контакти
     Permission291=Прочети тарифи
     Permission292=Задаване на разрешения за тарифите
    -Permission293=Промяна на клиенти тарифи
    +Permission293=Modify customers tariffs
     Permission300=Баркодове
     Permission301=Създаване / промяна на баркодове
     Permission302=Изтриване на баркодове
    @@ -787,11 +797,9 @@ Permission401=Прочети отстъпки
     Permission402=Създаване / промяна на отстъпки
     Permission403=Проверка на отстъпки
     Permission404=Изтриване на отстъпки
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -842,13 +850,13 @@ Permission1236=Експорт на доставни фактури, атрибу
     Permission1237=Експорт на доставни поръчки и техните детайли
     Permission1251=Пусни масов внос на външни данни в базата данни (данни товара)
     Permission1321=Износ на клиентите фактури, атрибути и плащания
    -Permission1322=Reopen a paid bill
    +Permission1322=Отваряне на платена сметка
     Permission1421=Износ на клиентски поръчки и атрибути
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
    -Permission20004=Read all leave requests (even of user not subordinates)
    -Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    +Permission20004=Прочетете всички заявки за отсъствие (дори и на служители който не са ви подчинени)
    +Permission20005=Създаване / промяна на заявки за отсъствие за всички (дори и на потребители, които не са подчинени)
     Permission20006=Admin leave requests (setup and update balance)
     Permission23001=Read Scheduled job
     Permission23002=Create/update Scheduled job
    @@ -860,7 +868,7 @@ Permission2403=Изтрий действия (събития или задачи
     Permission2411=Прочетете действия (събития или задачи) на другите
     Permission2412=Създаване / промяна действия (събития или задачи) на другите
     Permission2413=Изтрий действия (събития или задачи) на другите
    -Permission2414=Export actions/tasks of others
    +Permission2414=Експортни действия / задачи на други
     Permission2501=/ Изтегляне документи
     Permission2502=Изтегляне на документи
     Permission2503=Изпращане или изтриване на документи
    @@ -876,79 +884,79 @@ Permission55002=Create/modify polls
     Permission59001=Read commercial margins
     Permission59002=Define commercial margins
     Permission59003=Read every user margin
    -Permission63001=Read resources
    -Permission63002=Create/modify resources
    -Permission63003=Delete resources
    -Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +Permission63001=Прочетете ресурси
    +Permission63002=Създаване / промяна на ресурси
    +Permission63003=Изтриване на ресурси
    +Permission63004=Свързване на ресурси към събитията от дневния ред
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=State/Cantons
     DictionaryRegion=Regions
     DictionaryCountry=Countries
     DictionaryCurrency=Currencies
    -DictionaryCivility=Personal and professional titles
    -DictionaryActions=Types of agenda events
    +DictionaryCivility=Лични и професионални титли
    +DictionaryActions=Видове събития от дневния ред
     DictionarySocialContributions=Social or fiscal taxes types
     DictionaryVAT=VAT Rates or Sales Tax Rates
    -DictionaryRevenueStamp=Amount of tax stamps
    +DictionaryRevenueStamp=Размер на данъчните печати
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    -DictionaryTypeOfContainer=Type of website pages/containers
    +DictionaryTypeContact=Contacts/addresses types
    +DictionaryTypeOfContainer=Тип страници / контейнери на уебсайтове
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    -DictionaryFormatCards=Cards formats
    -DictionaryFees=Expense report - Types of expense report lines
    +DictionaryFormatCards=Формати на карти
    +DictionaryFees=Отчет за разходите - Видове отчети за разходите
     DictionarySendingMethods=Shipping methods
     DictionaryStaff=Staff
     DictionaryAvailability=Delivery delay
     DictionaryOrderMethods=Ordering methods
     DictionarySource=Origin of proposals/orders
    -DictionaryAccountancyCategory=Personalized groups for reports
    +DictionaryAccountancyCategory=Персонализирани групи за отчети
     DictionaryAccountancysystem=Models for chart of accounts
    -DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryAccountancyJournal=Счетоводни дневници
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    -DictionaryExpenseTaxCat=Expense report - Transportation categories
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
    +DictionaryExpenseTaxCat=Отчет за разходите - Категории транспорт
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup спаси
    -SetupNotSaved=Setup not saved
    +SetupNotSaved=Настройката не е запазена
     BackToModuleList=Обратно към списъка с модули
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=Управление на ДДС
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=По подразбиране предложената ДДС е 0, които могат да бъдат използвани за подобни случаи сдружения, лицата ОУ малките фирми.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Курс
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Управление
    -LocalTax1IsUsedDescES= RE процент по подразбиране при създаването на перспективите, фактури, поръчки и т.н. следват активна стандартното правило: <br> Ако те купувача не се подлага на RE RE по подразбиране = 0. Край на правило. <br> Ако купувачът се подлага на RE RE по подразбиране. Край на правило. <br>
    -LocalTax1IsNotUsedDescES= По подразбиране предложения RE е 0. Край на правило.
    -LocalTax1IsUsedExampleES= В Испания те са професионалисти, подлежащи на някои специфични части на испанската IAE.
    -LocalTax1IsNotUsedExampleES= В Испания те са професионални и общества и при спазване на определени сектори на испанската IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= RE процент по подразбиране при създаването на перспективите, фактури, поръчки и т.н. следват активна стандартното правило: <br> Ако продавачът не се подлага на IRPF, тогава IRPF по подразбиране = 0. Край на правило. <br> Ако продавачът е подложен на IRPF тогава IRPF по подразбиране. Край на правило. <br>
    -LocalTax2IsNotUsedDescES= По подразбиране предложения IRPF е 0. Край на правило.
    -LocalTax2IsUsedExampleES= В Испания, на свободна практика и независими специалисти, които предоставят услуги и фирми, които са избрани на данъчната система от модули.
    -LocalTax2IsNotUsedExampleES= В Испания те са за бизнес, които не подлежат на данъчната система от модули.
    +LocalTax1ManagementES=RE Управление
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=По подразбиране предложения RE е 0. Край на правило.
    +LocalTax1IsUsedExampleES=В Испания те са професионалисти, подлежащи на някои специфични части на испанската IAE.
    +LocalTax1IsNotUsedExampleES=В Испания те са професионални и общества и при спазване на определени сектори на испанската IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=По подразбиране предложения IRPF е 0. Край на правило.
    +LocalTax2IsUsedExampleES=В Испания, на свободна практика и независими специалисти, които предоставят услуги и фирми, които са избрани на данъчната система от модули.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,14 +966,16 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Етикет на документи
    -NbOfDays=Nb дни
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=В края на месеца
    -CurrentNext=Current/Next
    +CurrentNext=Настоящ / Следваща
     Offset=Офсет
     AlwaysActive=Винаги активна
     Upgrade=Обновяване
     MenuUpgrade=Обновяване/Удължаване
    -AddExtensionThemeModuleOrOther=Deploy/install external app/module
    +AddExtensionThemeModuleOrOther=Внедрете / инсталирате външно приложение / модул
     WebServer=Уеб сървър
     DocumentRootServer=Главната директория на уеб сървъра
     DataRootServer=Файлове с данни
    @@ -984,29 +994,29 @@ DatabaseUser=Потребители на бази данни
     DatabasePassword=Database парола
     Tables=Маси
     TableName=Таблица име
    -NbOfRecord=Nb на записите
    +NbOfRecord=No. of records
     Host=Сървър
     DriverType=Шофьор тип
     SummarySystem=Резюме на информационна система
     SummaryConst=Списък на всички параметри за настройка Dolibarr
    -MenuCompanySetup=Company/Organization
    +MenuCompanySetup=Компания / Организация
     DefaultMenuManager= Стандартно меню мениджър
     DefaultMenuSmartphoneManager=Smartphone Menu Manager
     Skin=Кожата тема
     DefaultSkin=Тема по подразбиране
     MaxSizeList=Максимална дължина за списъка
     DefaultMaxSizeList=Макс. дължина за списъци по подразбиране
    -DefaultMaxSizeShortList=Макс. дължина по подразбиране за кратки списъци (т.е. в клиентската карта)  
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Послание на деня
     MessageLogin=Съобщение на страницата за вход
    -LoginPage=Login page
    -BackgroundImageLogin=Background image
    +LoginPage=Входна страница
    +BackgroundImageLogin=Изображение на фона
     PermanentLeftSearchForm=Постоянна форма за търсене в лявото меню
     DefaultLanguage=Език по подразбиране (код на езика)
     EnableMultilangInterface=Разрешаване на многоезичен интерфейс
     EnableShowLogo=Показване на логото в лявото меню
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Компания / Организация
    +CompanyIds=Company/Organization identities
     CompanyName=Име
     CompanyAddress=Адрес
     CompanyZip=П. код
    @@ -1021,55 +1031,55 @@ OwnerOfBankAccount=Собственик на %s банкови сметки
     BankModuleNotActive=Банкови сметки модул не е активиран
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Сигнали
    -DelaysOfToleranceBeforeWarning=Толерантност закъснение преди предупреждение
    -DelaysOfToleranceDesc=Този екран ви позволява да дефинирате толерирани забавяне преди сигнал се съобщава на екрана с %s икони за всяка края на елемент.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Толеранс на изчакване (в дни), преди сигнал за предложения, за да затворите
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Толеранс на изчакване (в дни) преди сигнал за предложения не таксувани
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Толерантност закъснение (в дни), преди сигнал за услуги, за да активирате
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Толерантност закъснение (в дни) преди сигнала за изтекъл срок на годност услуги
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Толерантност закъснение (в дни), преди сигнал за неплатени фактури доставчици
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Закъснение (в дни) преди tolerence сигнал за неплатени фактури на клиенти
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Толерантност закъснение (в дни), преди сигнал за висящи банково извлечение
    -Delays_MAIN_DELAY_MEMBERS=Толерантност закъснение (в дни), преди сигнал за забавено членски внос
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Толерантност закъснение (в дни), преди сигнал за проверки депозит
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Другите записи от менюто управляват допълнителни параметри.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Събития одит на сигурността
    -Audit=Проверка
    -InfoDolibarr=About Dolibarr
    -InfoBrowser=About Browser
    -InfoOS=About OS
    -InfoWebServer=About Web Server
    -InfoDatabase=About Database
    -InfoPHP=About PHP
    -InfoPerf=About Performances
    +Audit=Security events
    +InfoDolibarr=За Dolibarr
    +InfoBrowser=За браузъра
    +InfoOS=За операционната система
    +InfoWebServer=За уеб сървър
    +InfoDatabase=За базата данни
    +InfoPHP=За PHP
    +InfoPerf=За производителността 
     BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=Списък на събитията Dolibarr сигурност
     SecurityEventsPurged=Събития по сигурността прочиства
    -LogEventDesc=Можете да разрешите тук сеч за събития Dolibarr сигурност. Администраторите могат да видите неговото съдържание чрез меню <b>&quot;Системни инструменти - Одит.</b> Внимание, тази функция може да се консумира голямо количество данни в база данни.
    -AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
    +AreaForAdminOnly=Параметрите за настройка могат да се задават само от <b> Администратори </b>.
     SystemInfoDesc=Информационна система Разни техническа информация можете да получите в режим само за четене и видими само за администратори.
     SystemAreaForAdminOnly=Тази област е достъпна само за администратори. Никой не може да промени това ограничение.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    -AccountantFileNumber=File number
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
    +AccountantFileNumber=Номер на файла
     DisplayDesc=От тук можете да изберете параметрите свързани с външния вид на Dolibar
    -AvailableModules=Available app/modules
    +AvailableModules=Налични приложение / модули
     ToActivateModule=За да активирате модули, отидете на настройка пространство (Начало-> Setup-> модули).
     SessionTimeOut=Време за сесията
    -SessionExplanation=Този брой е гаранция, че никога няма да изтекат преди това забавяне на сесията. Но PHP управление на сесии не гаранция, че сесията винаги изтича след това закъснение: Това се случва, ако се изпълнява система за почистване на кеша сесия. <br> Забележка: не конкретна система, вътрешен PHP процес ще почисти сесия всеки за <b>%s / %s</b> достъп, но само по време на достъп от други сесии.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Налични тригери
    -TriggersDesc=Тригерите са файлове, които ще променят поведението на Dolibarr работния процес копират в директорията <b>htdocs / ядро / тригери.</b> Те разбраха нови действия, активирани на събития Dolibarr (създаване на нова компания, фактура валидиране, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Тригерите в този файл са изключени от <b>NORUN</b> наставка в името си.
     TriggerDisabledAsModuleDisabled=Тригерите в този файл са забранени като модул <b>%s</b> е забранено.
     TriggerAlwaysActive=Тригерите в този файл са винаги активни,, каквото са активирани модули Dolibarr.
    @@ -1077,9 +1087,9 @@ TriggerActiveAsModuleActive=Тригерите в този файл са акт
     GeneratedPasswordDesc=Определете тук правилото, което искате да използвате, за да генерира нова парола, ако поискате да има автоматично генерирана парола
     DictionaryDesc=Insert all reference data. You can add your values to the default.
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
    -MiscellaneousDesc=All other security related parameters are defined here.
    +MiscellaneousDesc=Всички останали параметри, свързани със сигурността, са дефинирани тук.
     LimitsSetup=Граници / Прецизно настройване
    -LimitsDesc=Можете да дефинирате ограничения, уточнения и оптимизации, използвани от Dolibarr тук
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Макс знака след десетичната запетая за единичните цени
     MAIN_MAX_DECIMALS_TOT=Макс знака след десетичната запетая за крайни цени
     MAIN_MAX_DECIMALS_SHOWN=Максималният брой десетични числа за цени, показан на екрана <b>(...</b> след тази цифра, ако искате да видите <b>...</b> когато се отрязва номер, когато е показан на екрана)
    @@ -1087,56 +1097,56 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Нетен единичната цена на даден продукт
     TotalPriceAfterRounding=Обща цена (нето / с ДДС / с ДДС) след закръгляване
     ParameterActiveForNextInputOnly=Параметър ефективно само за следващия вход
    -NoEventOrNoAuditSetup=Няма да се иска никакво обезпечение събитие е записано още. Това може да бъде нормално, ако одитът не е разрешена във &quot;Setup - охрана - одит&quot;.
    -NoEventFoundWithCriteria=Няма да се иска никакво обезпечение събитие е за такива критерии за търсене.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Вижте настройка Sendmail
     BackupDesc=За да направите пълно архивно копие на Dolibarr, трябва да:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Архива на директорията трябва да се съхранява на сигурно място.
     BackupDescY=Генерирания дъмп файл трябва да се съхранява на сигурно място.
    -BackupPHPWarning=Backup с този метод не може да бъде гарантирано. Предпочитам предишния
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=За да възстановите резервно копие на Dolibarr, трябва да:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL внос
     ForcedToByAModule= Това правило е принуден да <b>%s</b> от активиран модул
    -PreviousDumpFiles=Generated database backup files
    +PreviousDumpFiles=Генерирани файлове с бекъп на базата данни
     WeekStartOnDay=Първи ден от седмицата
     RunningUpdateProcessMayBeRequired=Продължителност на процеса на актуализация изглежда да се изисква (Програми версия %s различава от %s версия на базата от данни)
     YouMustRunCommandFromCommandLineAfterLoginToUser=Трябва да изпълните тази команда от командния ред след влизане на черупката с потребителски <b>%s</b> или трябва да добавите опцията-W в края на командния ред, за да предоставят <b>%s</b> парола.
     YourPHPDoesNotHaveSSLSupport=SSL функции не са налични във вашата PHP
     DownloadMoreSkins=Изтегляне на повече теми
     SimpleNumRefModelDesc=Върнете референтен номер с формат %syymm-NNNN, където YY е годината, mm е месец и NNNN е последователност без дупка и не нулиране
    -ShowProfIdInAddress=Покажи professionnal номер с адреси на документи
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Частичен превод
    -MAIN_DISABLE_METEO=Изключване метео изглед
    -MeteoStdMod=Standard mode
    -MeteoStdModEnabled=Standard mode enabled
    -MeteoPercentageMod=Percentage mode
    -MeteoPercentageModEnabled=Percentage mode enabled
    -MeteoUseMod=Click to use %s
    +MAIN_DISABLE_METEO=Disable meteorological view
    +MeteoStdMod=Стандартен режим
    +MeteoStdModEnabled=Стандартният режим е активиран
    +MeteoPercentageMod=Процентен режим
    +MeteoPercentageModEnabled=Процентен режим активиран
    +MeteoUseMod=Кликнете, за да използвате %s
     TestLoginToAPI=Тествайте влезете в API
    -ProxyDesc=Някои функции на Dolibarr трябва да имат достъп до Интернет, за да работят. Определете тук параметри за това. Ако сървърът Dolibarr е зад прокси сървър, тези параметри казва Dolibarr как за достъп до интернет през него.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Външен достъп
     MAIN_PROXY_USE=Използване на прокси сървър (иначе директен достъп до интернет)
     MAIN_PROXY_HOST=Име / адрес на прокси сървър
     MAIN_PROXY_PORT=Порт на прокси сървър
     MAIN_PROXY_USER=Влез за да използвате прокси сървър
     MAIN_PROXY_PASS=Парола, за да използвате прокси сървър
    -DefineHereComplementaryAttributes=Определете тук всички atributes, не е налична по подразбиране, и че искате да се поддържа за %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Допълнителни атрибути
     ExtraFieldsLines=Complementary attributes (lines)
    -ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
    +ExtraFieldsLinesRec=Допълнителни атрибути (линии на шаблони на фактури)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    -ExtraFieldsCustomerInvoicesRec=Complementary attributes (templates invoices)
    +ExtraFieldsCustomerInvoicesRec=Допълнителни атрибути (шаблони на фактури)
     ExtraFieldsSupplierOrders=Complementary attributes (orders)
     ExtraFieldsSupplierInvoices=Complementary attributes (invoices)
     ExtraFieldsProject=Complementary attributes (projects)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Внимание, на някои системи Linux, за да изпратите имейл от електронната си поща, Sendmail изпълнение настройка трябва conatins опция-ба (параметър mail.force_extra_parameters във вашия php.ini файл). Ако някои получатели никога не получават имейли, опитайте се да редактирате тази PHP параметър с mail.force_extra_parameters = ба).
     PathToDocuments=Път до документи
     PathDirectory=Директория
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    -TranslationSetup=Setup of translation
    -TranslationKeySearch=Search a translation key or string
    -TranslationOverwriteKey=Overwrite a translation string
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
    +TranslationSetup=Настройване на превода
    +TranslationKeySearch=Търсете ключ за превод или стойност
    +TranslationOverwriteKey=Презапишете стойността за превода
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    -TranslationString=Translation string
    -CurrentTranslationString=Current translation string
    -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
    -NewTranslationStringToShow=New translation string to show
    -OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    -TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
    +TranslationString=Превод на стойността
    +CurrentTranslationString=Настояща стойност на превода
    +WarningAtLeastKeyOrTranslationRequired=Критерият за търсене е необходим най-малко за ключ или стойност на превода
    +NewTranslationStringToShow=Нова преведена стойност, която да се показва
    +OriginalValueWas=Оригиналния превод е презаписан. Първоначалната стойност е: <br> <br> %s
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
    +TotalNumberOfActivatedModules=Активирани приложения / модули: <b> %s </b> / <b> %s </b>
     YouMustEnableOneModule=Трябва да даде възможност на най-малко 1 модул
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Върнете парола, генерирана в съответствие с вътрешен алгоритъм Dolibarr: 8 символа, съдържащи общи цифри и символи с малки.
    -PasswordGenerationNone=Без предлагане на всякакви генерирани пароли. Паролата трябва да се въвежда ръчно.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Връщане на парола съответно вашата лично определена конфигурация.
     SetupPerso=Съответно по вашата конфигурация
     PasswordPatternDesc=Описание на модел за парола
    @@ -1192,26 +1203,26 @@ DisableForgetPasswordLinkOnLogonPage=Да не се показват връзк
     UsersSetup=Потребители модул за настройка
     UserMailRequired=Задължително е въвеждането на имейл при създаване на нов потребител
     ##### HRM setup #####
    -HRMSetup=HRM module setup
    +HRMSetup=Настройка на модула за УЧР
     ##### Company setup #####
     CompanySetup=Фирми модул за настройка
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
    -NotificationsDescUser=* per users, one user at time.
    -NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
    -NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Документи шаблони
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +NotificationsDescUser=* на потребители, по един потребител след друг.
    +NotificationsDescContact=* за контакти на контрагенти (клиенти или доставчици), по един контакт след друг.
    +NotificationsDescGlobal=* или по зададете глобални целеви имейли в страницата за настройка на модули.
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Воден знак върху проект на документ
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Професионална Id уникален
    -MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    -MustBeInvoiceMandatory=Mandatory to validate invoices?
    -TechnicalServicesProvided=Technical services provided
    +CompanyIdProfChecker=Rules for Professional IDs
    +MustBeUnique=Трябва да е уникално?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
    +MustBeInvoiceMandatory=Задължително да валидирате фактурите?
    +TechnicalServicesProvided=Технически услуги предоставени 
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=За износ на линк към <b>%s</b> формат е на разположение на следния линк: %s
    @@ -1219,7 +1230,8 @@ WebCalUrlForVCalExport=За износ на линк към <b>%s</b> форма
     BillsSetup=Фактури модул за настройка
     BillsNumberingModule=Фактури и кредитни известия, номериране модул
     BillsPDFModules=Фактура модели документи
    -PaymentsPDFModules=Payment documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
    +PaymentsPDFModules=Модели на платежни документи
     CreditNote=Кредитно известие
     CreditNotes=Кредитни известия
     ForceInvoiceDate=Принудително датата на фактурата датата на валидиране
    @@ -1230,7 +1242,7 @@ FreeLegalTextOnInvoices=Свободен текст на фактури
     WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty)
     PaymentsNumberingModule=Модел на номериране на плащания
     SuppliersPayment=Плащания към доставчици
    -SupplierPaymentSetup=Suppliers payments setup
    +SupplierPaymentSetup=Настройка за плащанията на доставчиците
     ##### Proposals #####
     PropalSetup=Модул за настройка на търговски предложения
     ProposalsNumberingModules=Търговско предложение за номериране на модули
    @@ -1239,10 +1251,10 @@ FreeLegalTextOnProposal=Свободен текст на търговски пр
     WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty)
     BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal
     ##### SupplierProposal #####
    -SupplierProposalSetup=Price requests vendors module setup
    -SupplierProposalNumberingModules=Price requests vendors numbering models
    -SupplierProposalPDFModules=Price requests vendors documents models
    -FreeLegalTextOnSupplierProposal=Free text on price requests vendors
    +SupplierProposalSetup=Настройка на модула запитване за цена към доставчик
    +SupplierProposalNumberingModules=Запитване за цена към доставчик, модел на номерация.
    +SupplierProposalPDFModules=Запитване за цена към доставчик, модел на документа
    +FreeLegalTextOnSupplierProposal=Свободен текст за запитването за цена към доставчик
     WatermarkOnDraftSupplierProposal=Watermark on draft price requests vendors (none if empty)
     BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request
     WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Питане за Складов източник за поръчка
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Управление на Login за всеки член
     AdherentMailRequired=Задължително е въвеждането на имейл при създаване на нов член
     MemberSendInformationByMailByDefault=Checkbox да изпрати потвърждение поща на членовете (валидиране или нов абонамент) е включена по подразбиране
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Глобални параметри
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Синхронизация тест успешно
     LDAPSynchroKO=Неуспешно синхронизиране тест
    -LDAPSynchroKOMayBePermissions=Неуспешно синхронизиране тест. Уверете се, че свързването със сървъра е конфигуриран правилно и позволява LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP свърже с LDAP сървъра успешни (сървър = %s, Порт = %s)
     LDAPTCPConnectKO=TCP се свърже с LDAP сървъра не успя (Server = %s, Port = %s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Свързване / Authentificate LDAP сървъра се провали (сървър = %s, Port = %s, Admin = %s, парола = %s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP сървър, конфигуриран за версия 3
     LDAPSetupForVersion2=LDAP сървър, конфигуриран за версия 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Вход (самба, activedirectory)
     LDAPFieldLoginSambaExample=Пример: samaccountname
     LDAPFieldFullname=Пълното име
     LDAPFieldFullnameExample=Пример: cn
    -LDAPFieldPasswordNotCrypted=Паролата не криптирани
    -LDAPFieldPasswordCrypted=Парола криптирани
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Пример: userPassword
     LDAPFieldCommonNameExample=Пример: cn
     LDAPFieldName=Име
    @@ -1397,7 +1410,7 @@ LDAPFieldCompanyExample=Пример: о
     LDAPFieldSid=SID
     LDAPFieldSidExample=Пример: objectsid
     LDAPFieldEndLastSubscription=Дата на абонамент края
    -LDAPFieldTitle=Job position
    +LDAPFieldTitle=Длъжност
     LDAPFieldTitleExample=Example: title
     LDAPSetupNotComplete=LDAP настройка не е пълна (отидете на други раздели)
     LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Не администратор или парола. LDAP достъп ще бъдат анонимни и в режим само за четене.
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Примерни стойности са предназначени за <b>OpenLDAP</b> със следните заредени схеми: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Ако използвате thoose ценности и OpenLDAP, променете LDAP <b>slapd.conf</b> конфигурационен файл, за да има всички thoose схеми натоварени.
     ForANonAnonymousAccess=За заверено достъп (достъп за писане например)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    -DefaultSearchFilters=Default search filters
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
    +DefaultSearchFilters=Филтри за търсене по подразбиране
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Настройка на модул Продукти
     ServiceSetup=Услуги модул за настройка
     ProductServiceSetup=Продукти и услуги модули за настройка
     NumberOfProductShowInSelect=Максимален брой продукти в комбинации изберете списъци (0 = без ограничение)
    -ViewProductDescInFormAbility=Визуализация на описания на продукти във формите (в противен случай като изскачащ прозорец подсказка)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Тип баркод по подразбиране за продукти
     SetDefaultBarcodeTypeThirdParties=Тип баркод по подразбиране за контрагенти
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Изпращане модул за настройка
     SendingsReceiptModel=Изпращане получаване модел
     SendingsNumberingModules=Sendings номериране модули
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Продукти доставки получаване номерацията модул
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Разширено редактор
     ActivateFCKeditor=Активирайте разширен редактор за:
     FCKeditorForCompany=WYSIWIG създаване / редактиране на елементи на описание и бележка (с изключение на продукти / услуги)
     FCKeditorForProduct=WYSIWIG създаване / редактиране на продукти / услуги описание и бележка
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG създаване / редактиране на писма
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Връзка успял, но базата данни не изглежда да бъде една база данни на OSCommerce (Ключови %s не е намерен в таблицата %s).
    -OSCommerceTestOk=Връзка към &quot;%s&quot; сървър на &quot;%s&quot; база данни с успешен потребителски %s.
    -OSCommerceTestKo1=Свързване към сървър &quot;%s успее, но база данни&quot; %s &quot;не може да бъде постигнато.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Връзка към сървъра &quot;%s&quot; с потребителя %s &quot;се провали.
     ##### Stock #####
    -StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +StockSetup=Настройка на модул за наличност
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Меню заличават
     Menus=Менюта
    @@ -1548,7 +1562,7 @@ DetailRight=Условие, за да се покаже неразрешени 
     DetailLangs=Lang името на файла за превод на етикета код
     DetailUser=Intern / EXTERN /
     Target=Цел
    -DetailTarget=Цел за връзки (_blank върха отвори в нов прозорец)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1: горното меню, 0: хедър, меню&gt; 0 меню и подменю)
     ModifMenu=Меню промяна
     DeleteMenu=Изтриване на елемент от менюто
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=Се дължи ДДС: <br> - При доставка на
     OptionVatDebitOptionDesc=Се дължи ДДС: <br> - При доставка на стоки (ние използваме датата на фактурата) <br> - По фактура (дебитно) за услуги
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=При доставка
     OnPayment=На плащане
     OnInvoice=На фактура
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Събития и натъкмяване на дневен ред модул
     PasswordTogetVCalExport=, За да разреши износ връзка
     PastDelayVCalExport=Не изнася случай по-стари от
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
    -AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
    +AGENDA_SHOW_LINKED_OBJECT=Показване на свързания обект в изгледа на дневния ред
     ##### Clicktodial #####
     ClickToDialSetup=Кликнете, за да наберете настройка модул
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=Този модул позволява телефонните номера да могат да се кликват. Кликване върху тази икона ще предизвика вашият телефон да набере телефонния номер. Това може да бъде използвано за обаждане към кол център система, която може да набере телефония номер на SIP система например.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Използвайте този метод ако вашите потребители имат софт-телефон или софтуерен интерфейс на същия компютър, на който е браузера, и повиквани с клик на линк във вашия браузер, който започва с "tel:". Ако се нуждаете от пълно сървърно решение (без нужда за локална софтуерна инсталация), трябва да зададете на това "Не" или да попълните следващото поле.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Точка на продажбите
     CashDeskSetup=Точка на продажбите модул за настройка
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Акаунт по подразбиране да се използва за получаване на парични плащания
     CashDeskBankAccountForCheque= Акаунт по подразбиране да се използва за получаване на плащания с чек
     CashDeskBankAccountForCB= Акаунт по подразбиране да се използва за получаване на парични плащания с кредитни карти
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark настройка модул
    -BookmarkDesc=Този модул ви позволява да управлявате отметките. Можете да добавяте преки пътища към страници на Dolibarr или външни уеб сайтове в лявото меню.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Максимален брой отметки, които да се показват в лявото меню
     ##### WebServices #####
     WebServicesSetup=WebServices модул за настройка
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-модул за настройка компания
     ##### Suppliers #####
     SuppliersSetup=Настройка доставчик модул
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,17 +1668,17 @@ ProjectsSetup=Инсталационния проект модул
     ProjectsModelModule=Проект доклади документ модел
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
    -AccountingPeriods=Accounting periods
    +AccountingPeriods=Счетоводни периоди
     AccountingPeriodCard=Accounting period
    -NewFiscalYear=New accounting period
    -OpenFiscalYear=Open accounting period
    -CloseFiscalYear=Close accounting period
    -DeleteFiscalYear=Delete accounting period
    -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period?
    -ShowFiscalYear=Show accounting period
    +NewFiscalYear=Нов счетоводен период
    +OpenFiscalYear=Отворен счетоводен период
    +CloseFiscalYear=Затворен счетоводен период
    +DeleteFiscalYear=Изтри счетоводен период
    +ConfirmDeleteFiscalYear=Сигурни ли сте че искате да изтриете този счетоводен период?
    +ShowFiscalYear=Покажи счетоводен период
     AlwaysEditable=Can always be edited
     MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application)
     NbMajMin=Minimum number of uppercase characters
    @@ -1684,10 +1698,10 @@ ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules
     ExpenseReportNumberingModules=Expense reports numbering module
     NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only.
     YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification".
    -ListOfNotificationsPerUser=List of notifications per user*
    -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
    +ListOfNotificationsPerUser=Списък на известията за потребител *
    +ListOfNotificationsPerUserOrContact=Списък на известията по потребител * или по контакт **
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,13 +1711,14 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Цвят за подчертаване на линията, когато мишката мине отгоре (оставете празно за без подчертаване)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Цвят на връзките
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
     NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes
     BackgroundColor=Background color
     TopMenuBackgroundColor=Background color for Top menu
    -TopMenuDisableImages=Hide images in Top menu
    +TopMenuDisableImages=Скриване на изображения в горното меню
     LeftMenuBackgroundColor=Background color for Left menu
     BackgroundTableTitleColor=Background color for Table title line
     BackgroundTableTitleTextColor=Text color for Table title line
    @@ -1712,92 +1727,128 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    -VisibleEverywhere=Visible everywhere
    -VisibleNowhere=Visible nowhere
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
    +VisibleEverywhere=Вижда се навсякъде
    +VisibleNowhere=Вижда се никъде
     FixTZ=TimeZone fix
     FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced)
     ExpectedChecksum=Expected Checksum
     CurrentChecksum=Current Checksum
    -ForcedConstants=Required constant values
    +ForcedConstants=Изисква постоянни стойности
     MailToSendProposal=Клиентски предложения
     MailToSendOrder=Клиентски поръчки
     MailToSendInvoice=Клиентски фактури
     MailToSendShipment=Превозите
     MailToSendIntervention=Намеси
    -MailToSendSupplierRequestForQuotation=Quotation request
    -MailToSendSupplierOrder=Purchase orders
    -MailToSendSupplierInvoice=Vendor invoices
    +MailToSendSupplierRequestForQuotation=Запитване за оферта
    +MailToSendSupplierOrder=Поръчка
    +MailToSendSupplierInvoice=Фактури на доставчик
     MailToSendContract=Договори
     MailToThirdparty=Контрагенти
     MailToMember=Членове
     MailToUser=Потребители
    -MailToProject=Projects page
    +MailToProject=Страници на проектите
     ByDefaultInList=Показване по подразбиране при показа на списък
    -YouUseLastStableVersion=You use the latest stable version
    +YouUseLastStableVersion=Използвате последната стабилна версия
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=Когато опция "Няколко нива за цени на продукт/услуга" е активирана, можете да определите различни цени (по една на ниво) за всеки продукт. За да спестите време, можете да въведете правило тук да имате цена за всяко ниво автоматично изчислена спрямо цената на първо ниво, така ще трябва да въведете само цена за първо ниво на всеки продукт. Тази страница, за да пести времето ви и може да бъде полезна само ако вашите цени за всяко ниво са относителни спрямо първото ниво. Можете да игнорирате тази страница в повечето случаи.
    -ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
    +ModelModulesProduct=Шаблони на документите за продуктите
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
    -AllPublishers=All publishers
    -UnknownPublishers=Unknown publishers
    -AddRemoveTabs=Add or remove tabs
    -AddDataTables=Add object tables
    -AddDictionaries=Add dictionaries tables
    -AddData=Add objects or dictionaries data
    -AddBoxes=Add widgets
    -AddSheduledJobs=Add scheduled jobs
    -AddHooks=Add hooks
    -AddTriggers=Add triggers
    -AddMenus=Add menus
    -AddPermissions=Add permissions
    -AddExportProfiles=Add export profiles
    -AddImportProfiles=Add import profiles
    -AddOtherPagesOrServices=Add other pages or services
    +AllPublishers=Всички издатели
    +UnknownPublishers=Неизвестни издатели
    +AddRemoveTabs=Добавяне или премахване на раздели
    +AddDataTables=Добавяне на таблици на обекти
    +AddDictionaries=Добавете таблици с речници
    +AddData=Добавете данни за обекти или речници
    +AddBoxes=Добавете джаджи
    +AddSheduledJobs=Добавете насрочени работи
    +AddHooks=Добавете куки
    +AddTriggers=Добавете тригери
    +AddMenus=Добавете менюта
    +AddPermissions=Добавете права
    +AddExportProfiles=Добавете профили за експортиране
    +AddImportProfiles=Добавете профили за импортиране
    +AddOtherPagesOrServices=Добавете други страници или услуги
     AddModels=Add document or numbering templates
    -AddSubstitutions=Add keys substitutions
    -DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +AddSubstitutions=Добавете замествания на клавиши
    +DetectionNotPossible=Откриването не е възможно
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    -BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    -MAIN_PDF_MARGIN_LEFT=Left margin on PDF
    -MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
    -MAIN_PDF_MARGIN_TOP=Top margin on PDF
    -MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    -SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    -SeveralLangugeVariatFound=Several language variants found
    -COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
    +BaseCurrency=Референтна валута на компанията (влезте в настройката на компанията, за да промените това)
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
    +MAIN_PDF_MARGIN_LEFT=Лява граница в PDF
    +MAIN_PDF_MARGIN_RIGHT=Дясна граница в PDF
    +MAIN_PDF_MARGIN_TOP=Горна граница в PDF
    +MAIN_PDF_MARGIN_BOTTOM=Долна граница в PDF
    +NothingToSetup=There is no specific setup to do for this module.
    +SetToYesIfGroupIsComputationOfOtherGroups=Задайте това да, ако тази група е съвкупност от други групи
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +SeveralLangugeVariatFound=Намерени са няколко езикови варианта
    +COMPANY_AQUARIUM_REMOVE_SPECIAL=Премахнете специалните символи
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=П. код
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=Само на малък екран (смартфон)
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/bg_BG/banks.lang b/htdocs/langs/bg_BG/banks.lang
    index fb39f172269..bfb631042ae 100644
    --- a/htdocs/langs/bg_BG/banks.lang
    +++ b/htdocs/langs/bg_BG/banks.lang
    @@ -1,13 +1,13 @@
     # Dolibarr language file - Source file is en_US - banks
     Bank=Банка
    -MenuBankCash=Bank | Cash
    -MenuVariousPayment=Miscellaneous payments
    -MenuNewVariousPayment=New Miscellaneous payment
    +MenuBankCash=Банка | Каса
    +MenuVariousPayment=Разнородни плащания
    +MenuNewVariousPayment=Ново разнородно плащане
     BankName=Име на банката
     FinancialAccount=Сметка
     BankAccount=Банкова сметка
     BankAccounts=Банкови сметки
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Показване на сметка
     AccountRef=Финансова сметка реф.
     AccountLabel=Финансова сметка етикет
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Сметка адрес
     BankAccountCountry=Профил страната
     BankAccountOwner=Името на собственика на сметката
     BankAccountOwnerAddress=Притежател на сметката адрес
    -RIBControlError=Integrity проверка на ценностите се провали. Това означава, информация за номера на тази сметка не са пълни или грешно (проверете страна, номера и IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Създаване на сметка
     NewBankAccount=Нова сметка
     NewFinancialAccount=Нова финансова сметка
    @@ -66,16 +66,17 @@ BankTransactionByCategories=Bank entries by categories
     BankTransactionForCategory=Bank entries for category <b>%s</b>
     RemoveFromRubrique=Премахване на връзката с категория
     RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category?
    -ListBankTransactions=List of bank entries
    +ListBankTransactions=Списък на банкови записи
     IdTransaction=Transaction ID
    -BankTransactions=Bank entries
    -BankTransaction=Bank entry
    -ListTransactions=List entries
    -ListTransactionsByCategory=List entries/category
    -TransactionsToConciliate=Entries to reconcile
    +BankTransactions=Банкови записи
    +BankTransaction=Банков запис
    +ListTransactions=Списък записи
    +ListTransactionsByCategory=Списък записи/категории
    +TransactionsToConciliate=Записи за равнение
     Conciliable=Може да се примири
     Conciliate=Reconcile
     Conciliation=Помирение
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Включват затворени сметки
     OnlyOpenedAccount=Само открити сметки
    @@ -88,7 +89,7 @@ StatusAccountOpened=Отворен
     StatusAccountClosed=Затворен
     AccountIdShort=Номер
     LineRecord=Транзакция
    -AddBankRecord=Add entry
    +AddBankRecord=Добави запис
     AddBankRecordLong=Add entry manually
     Conciliated=Reconciled
     ConciliatedBy=Съгласуват от
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Банков превод
     BankTransfers=Банкови преводи
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=От
     TransferTo=За
     TransferFromToDone=Прехвърлянето от <b>%s</b> на <b>%s</b> на %s <b>%s</b> беше записано.
    @@ -114,14 +115,14 @@ ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt
     DeleteCheckReceipt=Delete this check receipt?
     ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Банката проверява
    -BankChecksToReceipt=Checks awaiting deposit
    +BankChecksToReceipt=Чекове чакащи депозит
     ShowCheckReceipt=Покажи проверете получаване депозит
    -NumberOfCheques=Nb на чек
    -DeleteTransaction=Delete entry
    -ConfirmDeleteTransaction=Are you sure you want to delete this entry?
    -ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    +NumberOfCheques=No. of check
    +DeleteTransaction=Изтри запис
    +ConfirmDeleteTransaction=Сигурни ли сте че искате да изтриете този запис ? 
    +ThisWillAlsoDeleteBankRecord=Това ще изтрие генерирания банков запис
     BankMovements=Движения
    -PlannedTransactions=Planned entries
    +PlannedTransactions=Планирани записи
     Graph=Графики
     ExportDataset_banque_1=Bank entries and account statement
     ExportDataset_banque_2=Deposit slip
    @@ -131,12 +132,12 @@ PaymentNumberUpdateFailed=Плащане брой не може да бъде а
     PaymentDateUpdateSucceeded=Payment date updated successfully
     PaymentDateUpdateFailed=Дата на плащане не може да бъде актуализиран
     Transactions=Сделки
    -BankTransactionLine=Bank entry
    +BankTransactionLine=Банков запис
     AllAccounts=All bank and cash accounts
     BackToAccount=Обратно към сметка
     ShowAllAccounts=Покажи за всички сметки
    -FutureTransaction=Транзакция в FUTUR. Няма начин за помирение.
    -SelectChequeTransactionAndGenerate=Изберете / филтрирате проверки, за да се включи в проверка за получаването на депозит и кликнете върху &quot;Създаване&quot;.
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=В крайна сметка, да посочите категорията, в която да се класифицират записи
     ToConciliate=To reconcile?
    @@ -144,22 +145,23 @@ ThenCheckLinesAndConciliate=След това проверете линии в 
     DefaultRIB=По подразбиране BAN
     AllRIB=Всички BAN
     LabelRIB=BAN Label
    -NoBANRecord=No BAN record
    -DeleteARib=Delete BAN record
    +NoBANRecord=Няма BAN запис
    +DeleteARib=Изтри BAN запис
     ConfirmDeleteRib=Are you sure you want to delete this BAN record?
     RejectCheck=Върнат Чек
     ConfirmRejectCheck=Are you sure you want to mark this check as rejected?
     RejectCheckDate=Дата на която чека е върнат
     CheckRejected=Върнат Чек
     CheckRejectedAndInvoicesReopened=Върнат Чек и отворена фактура
    -BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    -DocumentModelBan=Template to print a page with BAN information.
    +BankAccountModelModule=Документ шаблон за банков акаунт
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
    +DocumentModelBan=Шаблон на който да се принтира страница с BAN информация
     NewVariousPayment=New miscellaneous payments
    -VariousPayment=Miscellaneous payments
    -VariousPayments=Miscellaneous payments
    +VariousPayment=Разнородни плащания
    +VariousPayments=Разнородни плащания
     ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/bg_BG/bills.lang b/htdocs/langs/bg_BG/bills.lang
    index bb6f545a664..a748ccb01b1 100644
    --- a/htdocs/langs/bg_BG/bills.lang
    +++ b/htdocs/langs/bg_BG/bills.lang
    @@ -5,9 +5,9 @@ BillsCustomers=Клиентски фактури
     BillsCustomer=Продажна фактура
     BillsSuppliers=Фактури доставчици
     BillsCustomersUnpaid=Неплатени клиентски фактури
    -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s
    +BillsCustomersUnpaidForCompany=Неплатени клиентски фактури за %s
     BillsSuppliersUnpaid=Неплатени фактури от доставчици
    -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s
    +BillsSuppliersUnpaidForCompany=Неплатени фактури на доставчици за %s
     BillsLate=Забавени плащания
     BillsStatistics=Статистика за продажни фактури
     BillsStatisticsSuppliers=Статистика за доставни фактури
    @@ -17,18 +17,18 @@ DisabledBecauseNotErasable=Disabled because cannot be erased
     InvoiceStandard=Стандартна фактура
     InvoiceStandardAsk=Стандартна фактура
     InvoiceStandardDesc=Тази фактурата е фактура от най-общ вид.
    -InvoiceDeposit=Down payment invoice
    -InvoiceDepositAsk=Down payment invoice
    +InvoiceDeposit=Авансова фактура
    +InvoiceDepositAsk=Авансова фактура
     InvoiceDepositDesc=This kind of invoice is done when a down payment has been received.
     InvoiceProForma=Проформа фактура
     InvoiceProFormaAsk=Проформа фактура
     InvoiceProFormaDesc=<b>Проформа фактура</b> е първообраз на една истинска фактура, но няма счетоводна стойност.
     InvoiceReplacement=Подменяща фактура
     InvoiceReplacementAsk=Фактура подменяща друга фактура
    -InvoiceReplacementDesc=<b>Подменяща фактура</b> се използва, за да отмени и замени напълно фактура, по която няма плащане.<br> <br>Бележка: Само фактури без плащане могат да бъдат заменяни. Ако фактурата която се заменя, все още не е затворена, тя автоматично ще бъде затворена до 'изоставена'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Кредитно известие
     InvoiceAvoirAsk=Кредитно известие за коригиране на фактура
    -InvoiceAvoirDesc=<b>Кредитно известие</b> е отрицателна фактура, използвана за решаване на факта, че фактурата е със сума, която се различава от наистина платената сума (защото клиентът е платил твърде много по грешка, или няма да се изплати напълно, тъй като е върнал някои продукти, например).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Създаване на кредитно известие с редове от оригиналната фактура
     invoiceAvoirWithPaymentRestAmount=Създаване на кредитно известие с неплатения остатък от оригиналната фактура
     invoiceAvoirLineWithPaymentRestAmount=Кредитно известие с неплатен остатък
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Платено обратно
     DeletePayment=Изтрий плащане
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Плащания към доставчици
     ReceivedPayments=Получени плащания
     ReceivedCustomersPayments=Плащания получени от клиенти
    -PayedSuppliersPayments=Плащания направени към доставчици
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Получени плащания от клиенти за валидация
     PaymentsReportsForYear=Отчети за плащания за %s
     PaymentsReports=Отчети за плащания
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Усл.за плащане
     PaymentAmount=Сума за плащане
     ValidatePayment=Валидирай плащане
     PaymentHigherThanReminderToPay=Плащането е по-високо от напомнянето за плащане
    -HelpPaymentHigherThanReminderToPay=Внимание, сумата на плащане на една или повече сметки е по-висока, отколкото останала за плащане част. <br> Редактирайте, или потвърдете, но тогава мислете за създаване на кредитно известие от превишението по всяека надвнесена фактура.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Класифицирай 'Платено'
     ClassifyPaidPartially=Класифицирай 'Платено частично'
     ClassifyCanceled=Класифицирай 'Изоставено'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Затворена (неплатена)
     BillStatusClosedPaidPartially=Платена (частично)
     BillShortStatusDraft=Чернова
     BillShortStatusPaid=Платена
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Платена
     BillShortStatusCanceled=Изоставена
     BillShortStatusValidated=Валидирана
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Затворена
     BillShortStatusClosedPaidPartially=Платена (частично)
     PaymentStatusToValidShort=За валидиране
    -ErrorVATIntraNotConfigured=Вътрешнообщностен номер по ДДС все още не е определен
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Няма дефиниран вид на плащане по подразбиране. Отидидете на модул за настройка на фактури за да се поправи това.
     ErrorCreateBankAccount=Създайте банкова сметка и след това направете настройките в модула за настройка на фактури
     ErrorBillNotFound=Фактура %s не съществува
    -ErrorInvoiceAlreadyReplaced=Грешка, опитвате се да валидирате фактура, която да замени фактура %s. Но тя вече е заменена с фактура %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Грешка, вече се използва отстъпка
     ErrorInvoiceAvoirMustBeNegative=Грешка, коригиращата фактура трябва да има отрицателна сума
     ErrorInvoiceOfThisTypeMustBePositive=Грешка, този тип фактура трябва да има положителна стойност,
     ErrorCantCancelIfReplacementInvoiceNotValidated=Грешка, не може да се анулира фактура, която е била заменена от друга фактура, която все още е в състояние на чернова
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=От
     BillTo=За
     ActionsOnBill=Действия по фактура
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Неплатеният остатък <b>(%s %s)</b> е дадена отстъпка, защото плащането е направено преди срока за плащане. Урегулирам ДДС с кредитно известие.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Неплатеният остатък <b>(%s %s)</b> е дадена отстъпка, защото плащането е направено преди срока за плащане. Приемам да се загуби ДДС по тази отстъпка.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Неплатеният остатък <b>(%s %s)</b> е дадена отстъпка, защото плащането е направено преди срока за плащане Възстановявам ДДС по тази отстъпка без кредитно известие.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Лош клиент
     ConfirmClassifyPaidPartiallyReasonProductReturned=Продукти частично върнати
     ConfirmClassifyPaidPartiallyReasonOther=Сумата е изоставена по друга причина
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Този избор е възможно, ако към фактурата е направен подходящ коментар. (Пример: «Само данъка, съответстваща на цената, която действително е платената дава права на приспадане»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=В някои страни, този избор може да бъде възможен само ако фактурата съдържа правилна бележка.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Използвайте този избор, ако всички други не са подходящи
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Лош клиентът</b> е клиент, който отказва да изплати дълга си.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Този избор се използва, когато плащането не е пълно, тъй като някои от продуктите са били върнати
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Използвайте този избор, ако всички останали не са подходящи, например в следната ситуация:<br>- Непъло плащане, тъй като някои продукти са върнати<br> - Претендираната сума е твърде важна, защото е била забравена отстъпката<br> Във всички случаи, разликата в сумата трябва да бъде коригирана в счетоводната система чрез създаване на кредитно известие.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Друг
     ConfirmClassifyAbandonReasonOtherDesc=Този избор ще бъде използван във всички останали случаи. За пример, защото имате намерение да създадете заменяща фактура.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,16 +201,17 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Валидирай фактура
     UnvalidateBill=Отвалидирай фактура
    -NumberOfBills=Бр. фактури
    -NumberOfBillsByMonth=Бр фактури по месец
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Сума на фактури
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Сума на фактури по месец (без данък)
     ShowSocialContribution=Покажи социален/фискален данък
     ShowBill=Покажи фактура
     ShowInvoice=Покажи фактура
     ShowInvoiceReplace=Покажи заменяща фактура
     ShowInvoiceAvoir=Покажи кредитно известие
    -ShowInvoiceDeposit=Show down payment invoice
    +ShowInvoiceDeposit=Покажи авансова фактура
     ShowInvoiceSituation=Show situation invoice
     ShowPayment=Покажи плащане
     AlreadyPaid=Вече е платена
    @@ -260,9 +262,9 @@ Repeatables=Шаблони
     ChangeIntoRepeatableInvoice=Превърни в шаблон за фактура
     CreateRepeatableInvoice=Създай шаблон за фактура
     CreateFromRepeatableInvoice=Създай от шаблон за фактура
    -CustomersInvoicesAndInvoiceLines=Продажни фактури и фактурни редове
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Продажни фактури и плащания
    -ExportDataset_invoice_1=Списък с продажни фактури и фактурни редове
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Продажни фактури и плащания
     ProformaBill=Проформа фактура:
     Reduction=Намаляване
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Фактурен адрес
    -HelpEscompte=Тази отстъпка е предоставена на клиента, тъй като плащането е извършено преди срока.
    -HelpAbandonBadCustomer=Тази сума е изоставена (клиентът се оказва лош клиент) и се счита като извънредна загуба.
    -HelpAbandonOther=Тази сума е изоставена, тъй като тя е грешка (грешен клиент или фактура, заменен от друг например)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Id за плащане на социален/фискален данък
     PaymentId=Плащане ID
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Не е избрана фактура
     CloneInvoice=Клонирай фактура
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Действието е деактивирано, тъй като фактурата е била заменена
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Бр. на плащанията
    +DescTaxAndDividendsArea=Тази секция представлява обобщение на всички плащания, извършени за специални разходи. Включват се само записи с плащане през фиксираната година.
    +NbOfPayments=No. of payments
     SplitDiscount=Раздели отстъпката на две
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Размер за всяка от двете части:
    -TotalOfTwoDiscountMustEqualsOriginal=Сумата на двете нови отстъпки трябва да е равен на оригиналната сума на отстъпка.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Свързана фактура
     RelatedBills=Свързани фактури
     RelatedCustomerInvoices=Свързани продажни фактури
     RelatedSupplierInvoices=Свързани доставни фактури
     LatestRelatedBill=Последна свързана фактура
    -WarningBillExist=Внимание, една или повече актури вече съществуват
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Инструмент за sliwane на PDF
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Чек
     PaymentTypeShortCHQ=Чек
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=Плащане онлайн
    -PaymentTypeShortVAD=Онлайн
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Чернова
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Банкови данни
     BankCode=Банков код
    -DeskCode=Касов код
    +DeskCode=Office code
     BankAccountNumber=Номер на сметка
    -BankAccountNumberKey=Ключ
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN номер
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT код
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Плащане чрез банков прев
     VATIsNotUsedForInvoice=* Неприложим ДДС, art-293BB от CGI
     LawApplicationPart1=Чрез прилагането на закон 80.335 от 12/05/80
     LawApplicationPart2=стоките остават собственост на
    -LawApplicationPart3=продавача до пълното изплащане на
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=цената им.
     LimitedLiabilityCompanyCapital=SARL със столица
     UseLine=Приложи
    @@ -463,7 +465,7 @@ Cheques=Чекове
     DepositId=Id депозит
     NbCheque=Брой чекове
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Използвай адрес за фактуриране на клиента, вместо адреса на контрагента като получател за фактури
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Покажи всички неплатени фактури
     ShowUnpaidLateOnly=Покажи само неплатените фактури с просрочено плащане
     PaymentInvoiceRef=Платежна фактуре %s
    @@ -474,21 +476,22 @@ Reported=Закъснение
     DisabledBecausePayments=Не е възможно, тъй като има някои плащания
     CantRemovePaymentWithOneInvoicePaid=Не може да се премахне плащането, тъй като има най-малко една фактура, класифицирана като платена
     ExpectedToPay=Очаквано плащане
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Плаща от това плащане
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Класифицирай "Платени" всички кредитни известия изцяло обратно платени.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Всички фактура без остатък за плащане, ще бъдат затворени автоматично със статус "Платени".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Плати
     ToMakePaymentBack=Плати обратно
     ListOfYourUnpaidInvoices=Списък с неплатени фактури
     NoteListOfYourUnpaidInvoices=Бележка: Този списък съдържа само фактури за контрагенти, които са свързани като търговски представители.
     RevenueStamp=Приходен печат
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Фактурен PDF шаблон. Пълен шаблон за фактура (препоръчителен шаблон)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Върнете номер с формат %syymm-nnnn за стандартни фактури и %syymm-nnnn за кредитни известия, където уу е година, mm е месец и NNNN е последователност, без прекъсване и без 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/bg_BG/cashdesk.lang b/htdocs/langs/bg_BG/cashdesk.lang
    index 6360f3557ed..9f64ef2d75a 100644
    --- a/htdocs/langs/bg_BG/cashdesk.lang
    +++ b/htdocs/langs/bg_BG/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Покажи фирмата
     ShowStock=Покажи склад
     DeleteArticle=Кликнете, за да се премахне тази статия
     FilterRefOrLabelOrBC=Търсене (Номер/Заглавие)
    -UserNeedPermissionToEditStockToUsePos=Запитвате за намаляване на стоки при създаване на фактура, така че потребителя използващ ТП трябва да е с привилегии да редактира стоки.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr принтер за квитанции
    +PointOfSale=Точка на продажбите
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/bg_BG/commercial.lang b/htdocs/langs/bg_BG/commercial.lang
    index a84beabe02f..6dae3cae02c 100644
    --- a/htdocs/langs/bg_BG/commercial.lang
    +++ b/htdocs/langs/bg_BG/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Телефонно обаждане
     ActionAC_FAX=Изпращане на факс
     ActionAC_PROP=Изпрати предложение по пощата
     ActionAC_EMAIL=Изпращане на имейл
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Срещи
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Изпращане на клиента фактура по пощата
    @@ -72,8 +73,8 @@ StatusProsp=Prospect статус
     DraftPropals=Проектът на търговски предложения
     NoLimit=Няма лимит
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/bg_BG/companies.lang b/htdocs/langs/bg_BG/companies.lang
    index d67da39c23a..c1b438f6d77 100644
    --- a/htdocs/langs/bg_BG/companies.lang
    +++ b/htdocs/langs/bg_BG/companies.lang
    @@ -2,19 +2,19 @@
     ErrorCompanyNameAlreadyExists=Името на фирмата %s вече съществува. Изберете друго.
     ErrorSetACountryFirst=Първо задайте държава
     SelectThirdParty=Изберете контрагент
    -ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
    +ConfirmDeleteCompany=Сигурни ли сте че искате да изтриете тази компания и цялата наследена информация?
     DeleteContact=Изтриване на контакт/адрес
    -ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=Нов контрагент
    -MenuNewCustomer=Нов клиент
    -MenuNewProspect=Нов потенциален
    -MenuNewSupplier=New vendor
    +ConfirmDeleteContact=Сигурни ли сте че искате да изтриете този контакт и цялата наследена информация?
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Ново физическо лице
    -NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    -CreateDolibarrThirdPartySupplier=Create a third party (vendor)
    +NewCompany=Нова компания (перспектива, клиент, доставчик)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
    +CreateDolibarrThirdPartySupplier=Създаване на контрагент (доставчик)
     CreateThirdPartyOnly=Създаване контрагент
    -CreateThirdPartyAndContact=Create a third party + a child contact
    +CreateThirdPartyAndContact=Създайте контакт на контрагент + дете
     ProspectionArea=Област потенциални
     IdThirdParty=ID на контрагент
     IdCompany=ID на фирма
    @@ -25,39 +25,39 @@ ThirdPartyContact=Контакт/адрес на контрагент
     Company=Фирма
     CompanyName=Име на фирмата
     AliasNames=Друго име (търговско, марка, ...)
    -AliasNameShort=Друго име
    +AliasNameShort=Alias Name
     Companies=Фирми
    -CountryIsInEEC=Държавата е част от Европейската икономическа общност
    -ThirdPartyName=Име на контрагент
    -ThirdPartyEmail=Third party email
    -ThirdParty=Контрагент
    -ThirdParties=Контрагенти
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
    +ThirdPartyEmail=Имейл на контрагент
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Потенциални
     ThirdPartyProspectsStats=Потенциални
     ThirdPartyCustomers=Клиенти
     ThirdPartyCustomersStats=Клиенти
     ThirdPartyCustomersWithIdProf12=Клиентите с %s или %s
    -ThirdPartySuppliers=Vendors
    -ThirdPartyType=Вид на контрагент
    +ThirdPartySuppliers=Доставчици
    +ThirdPartyType=Type of company
     Individual=Частно лице
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Фирма майка
     Subsidiaries=Филиали
    -ReportByMonth=Report by month
    -ReportByCustomers=Report by customer
    +ReportByMonth=Отчет по месец
    +ReportByCustomers=Отчет по клиент
     ReportByQuarter=Отчет по оценка
     CivilityCode=Граждански код
     RegisteredOffice=Седалище
     Lastname=Фамилия
     Firstname=Собствено име
    -PostOrFunction=Job position
    +PostOrFunction=Длъжност
     UserTitle=Звание
    -NatureOfThirdParty=Nature of Third party
    +NatureOfThirdParty=Същност контрагента
     Address=Адрес
     State=Област
    -StateShort=State
    +StateShort=Състояние
     Region=Регион
    -Region-State=Region - State
    +Region-State=Регион - Държава
     Country=Държава
     CountryCode=Код на държавата
     CountryId=ID на държава
    @@ -69,20 +69,20 @@ Chat=Чат
     PhonePro=Сл. телефон
     PhonePerso=Дом. телефон
     PhoneMobile=Моб. телефон
    -No_Email=Refuse mass e-mailings
    +No_Email=Отхвърляне на масови електронни писма
     Fax=Факс
     Zip=Пощенски код
     Town=Град
     Web=Уеб
     Poste= Позиция
    -DefaultLang=Език по подразбиране
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    -VATIsNotUsed=Sales tax is not used
    -CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
    -PaymentBankAccount=Payment bank account
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
    +VATIsNotUsed=Данъкът върху продажбите не се използва
    +CopyAddressFromSoc=Попълнете адрес на контрагента
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
    +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Контрагента е нито клиент, нито доставчик, отстъпки не са на разположение
    +PaymentBankAccount=Разплащателна банкова сметка
     OverAllProposals=Предложения
     OverAllOrders=Поръчки
     OverAllInvoices=Фактури
    @@ -99,9 +99,9 @@ LocalTax2ES=IRPF
     TypeLocaltax1ES=RE тип
     TypeLocaltax2ES=IRPF тип
     WrongCustomerCode=Невалиден код на клиент
    -WrongSupplierCode=Vendor code invalid
    +WrongSupplierCode=Кодът на доставчика е невалиден
     CustomerCodeModel=Образец на код на клиент
    -SupplierCodeModel=Vendor code model
    +SupplierCodeModel=Модел на код на доставчик
     Gencod=Бар код
     ##### Professional ID #####
     ProfId1Short=Проф. номер 1
    @@ -258,8 +258,8 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    -VATIntraShort=Tax ID
    +VATIntra=Sales Tax/VAT ID
    +VATIntraShort=ДДС номер
     VATIntraSyntaxIsValid=Синтаксиса е валиден
     VATReturn=VAT return
     ProspectCustomer=Потенциален / Клиент
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Този клиент има по подразбир
     CompanyHasNoRelativeDiscount=Този клиент няма относителна отстъпка по подразбиране
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Този клиент все още има кредити за <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Няма
    -Supplier=Доставчик
    +Supplier=Vendor
     AddContact=Създай контакт
     AddContactAddress=Създй контакт/адрес
     EditContact=Редактиране на контакт
    @@ -295,7 +295,7 @@ EditContactAddress=Редактиране на контакт/адрес
     Contact=Контакт
     ContactId=Contact id
     ContactsAddresses=Контакти/Адреси
    -FromContactName=Name:
    +FromContactName=Име:
     NoContactDefinedForThirdParty=Няма зададен контакт за тази контрагент
     NoContactDefined=Няма зададен контакт
     DefaultContact=Контакт/адрес по подразбиране
    @@ -303,50 +303,50 @@ AddThirdParty=Създаване контрагент
     DeleteACompany=Изтриване на фирма
     PersonalInformations=Лични данни
     AccountancyCode=Accounting account
    -CustomerCode=Код на клиент
    -SupplierCode=Vendor code
    -CustomerCodeShort=Код на клиента
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Потребителски код, уникален за всички клиенти
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Изисква се, ако контрагентът е клиент или потенциален
    -RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Валидност контролирана от модул
    -ThisIsModuleRules=Това са правила за този модул
    +RequiredIfSupplier=Изисква се, ако контрагента е доставчик
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Потенциален за контакт
     CompanyDeleted=Фирма "%s" е изтрита от базата данни.
     ListOfContacts=Списък на контакти/адреси
     ListOfContactsAddresses=Списък на контакти/адреси
    -ListOfThirdParties=Списък на контрагенти
    -ShowCompany=Show third party
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Покажи контакт
     ContactsAllShort=Всички (без филтър)
     ContactType=Тип на контакт
     ContactForOrders=Контакт за поръчката
    -ContactForOrdersOrShipments=Order's or shipment's contact
    +ContactForOrdersOrShipments=Контакт за поръчки и пратки
     ContactForProposals=Контакт за предложение
     ContactForContracts=Контакт за договор
     ContactForInvoices=Контакт за фактура
     NoContactForAnyOrder=Този контакт не е контакт за поръчка
    -NoContactForAnyOrderOrShipments=This contact is not a contact for any order or shipment
    +NoContactForAnyOrderOrShipments=Този контакт не е контакт за поръчка или пратка
     NoContactForAnyProposal=Този контакт не е контакт за търговско предложение
     NoContactForAnyContract=Този контакт не е контакт за договор
     NoContactForAnyInvoice=Този контакт не е контакт за фактура
     NewContact=Нов контакт
    -NewContactAddress=Нов контакт/адрес
    +NewContactAddress=New Contact/Address
     MyContacts=Моите контакти
     Capital=Капитал
     CapitalOf=Столица на %s
     EditCompany=Редактиране на фирма
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Проверка
    -VATIntraCheckDesc=Връзката <b>%s</b> позволява да се попита Европейската служба за проверка на ДДС. Външен достъп до интернет от сървъра се изисква за тази услуга, за да работи.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Проверете Intracomunnautary VAT на сайта на Европейската комисия
    -VATIntraManualCheck=Можете също да проверите ръчно на европейския уеб сайт <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Проверката не е възможнао. Услугата не се предоставя от държавата-членка (%s).
    -NorProspectNorCustomer=Нито потенциален, нито клиент
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Персонал
     ProspectLevelShort=Потенциален
     ProspectLevel=Потенциален
    @@ -387,48 +387,48 @@ ExportCardToFormat=Износна карта формат
     ContactNotLinkedToCompany=Контактът не е свързан с никой контрагент
     DolibarrLogin=Dolibarr вход
     NoDolibarrAccess=Няма Dolibarr достъп
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Контакти и свойства
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Ценово ниво
     DeliveryAddress=Адрес за доставка
     AddAddress=Добавяне на адрес
    -SupplierCategory=Vendor category
    -JuridicalStatus200=Independent
    +SupplierCategory=Категория доставчик
    +JuridicalStatus200=Независим
     DeleteFile=Изтриване на файл
     ConfirmDeleteFile=Сигурен ли сте, че искате да изтриете този файл?
    -AllocateCommercial=Assigned to sales representative
    +AllocateCommercial=Назначен за търговски представител
     Organization=Организация
    -FiscalYearInformation=Информация за фискалната година
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Начален месец на фискалната година
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    -YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Списък на потенциални
    -ListCustomersShort=Списък на клиенти
    -ThirdPartiesArea=Контрагенти и контакти
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Общо уникални контрагенти
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
    +YouMustCreateContactFirst=За да можете да добавяте известия по имейл, първо трябва да определите контакти с валидни имейли за контрагента
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Отворено
     ActivityCeased=Затворен
    -ThirdPartyIsClosed=Third party is closed
    +ThirdPartyIsClosed=Контрагента е затворена
     ProductsIntoElements=Списък на продуктите/услугите в %s
     CurrentOutstandingBill=Текуща висяща сметка
     OutstandingBill=Макс. за висяща сметка
    -OutstandingBillReached=Max. for outstanding bill reached
    -OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +OutstandingBillReached=Макс. кредитен лимит
    +OrderMinAmount=Минимална сума за поръчка
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Кодът е безплатен. Този код може да бъде променен по всяко време.
     ManagingDirectors=Име на управител(и) (гл. изп. директор, директор, президент...)
     MergeOriginThirdparty=Дублиращ контрагент (контрагентът, който искате да изтриете)
     MergeThirdparties=Сливане на контрагенти
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    -ThirdpartiesMergeSuccess=Third parties have been merged
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
    +ThirdpartiesMergeSuccess=Контрагентите са обединени
     SaleRepresentativeLogin=Login of sales representative
    -SaleRepresentativeFirstname=First name of sales representative
    -SaleRepresentativeLastname=Last name of sales representative
    -ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +SaleRepresentativeFirstname=Име на търговски представител
    +SaleRepresentativeLastname=Фамилно име на търговския представител
    +ErrorThirdpartiesMerge=При изтриването на контрагента възникна грешка. Моля, проверете дневника. Промените са възстановени.
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/bg_BG/dict.lang b/htdocs/langs/bg_BG/dict.lang
    index 366391943a4..b68c6f9793d 100644
    --- a/htdocs/langs/bg_BG/dict.lang
    +++ b/htdocs/langs/bg_BG/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Хърд и Макдоналд
     CountryVA=Светия престол (Ватикана)
     CountryHN=Хондурас
     CountryHK=Хонконг
    -CountryIS=Исландия
    +CountryIS=Iceland
     CountryIN=Индия
     CountryID=Индонезия
     CountryIR=Иран
    @@ -131,7 +131,7 @@ CountryKI=Кирибати
     CountryKP=Северна Корея
     CountryKR=Южна Корея
     CountryKW=Кувейт
    -CountryKG=Киргизтан
    +CountryKG=Kyrgyzstan
     CountryLA=Лао
     CountryLV=Латвия
     CountryLB=Ливан
    @@ -160,7 +160,7 @@ CountryMD=Молдова
     CountryMN=Монголия
     CountryMS=Monserrat
     CountryMZ=Мозамбик
    -CountryMM=Birmania (Мианмар)
    +CountryMM=Myanmar (Burma)
     CountryNA=Намибия
     CountryNR=Науру
     CountryNP=Непал
    @@ -223,7 +223,7 @@ CountryTO=Лека индийска двуколка
     CountryTT=Тринидад и Тобаго
     CountryTR=Турция
     CountryTM=Туркменистан
    -CountryTC=Турците и Cailos острови
    +CountryTC=Turks and Caicos Islands
     CountryTV=Тувалу
     CountryUG=Уганда
     CountryUA=Украйна
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Мавриций рупии
     CurrencySingMUR=Мавриций рупии
     CurrencyNOK=Норвежките Кронес
    -CurrencySingNOK=Норвежка крона
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Тунизийски динара
     CurrencySingTND=Тунизийски динар
     CurrencyUSD=Щатски долари
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Уста на уста
     DemandReasonTypeSRC_PARTNER=Партньор
     DemandReasonTypeSRC_EMPLOYEE=Служител
     DemandReasonTypeSRC_SPONSORING=Спонсорство
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Формат 4A0
     PaperFormatEU2A0=Формат 2A0
    diff --git a/htdocs/langs/bg_BG/ecm.lang b/htdocs/langs/bg_BG/ecm.lang
    index d3101db381e..20b6c024577 100644
    --- a/htdocs/langs/bg_BG/ecm.lang
    +++ b/htdocs/langs/bg_BG/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Брой на документите в директорията
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Директория
     ECMSectionManual=Ръчно създадена директория
     ECMSectionAuto=Автоматично създадена директория
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Документи свързани към проекти
     ECMDocsByUsers=Документи свързани към потребители
     ECMDocsByInterventions=Документи свързани към интервенции
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Не е създадена директория
     ShowECMSection=Покажи директория
     DeleteSection=Изтриване на директория
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/bg_BG/errors.lang b/htdocs/langs/bg_BG/errors.lang
    index 7e5702e9aed..5c41ef094bf 100644
    --- a/htdocs/langs/bg_BG/errors.lang
    +++ b/htdocs/langs/bg_BG/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=&quot;%s&quot; Стойност има грешна дата
     ErrorWrongDate=Датата не е правилна!
     ErrorFailedToWriteInDir=Неуспех при запис в директорията %s
     ErrorFoundBadEmailInFile=Намерени неправилен синтаксис имейл за %s линии във файла (%s например съответствие с имейл = %s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Някои задължителни полета не са запълнени.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Неуспешно създаване на директория. Уверете се, че уеб сървър потребител има разрешение да пишат в Dolibarr документи. Ако параметър <b>safe_mode</b> е разрешен в тази PHP, проверете дали Dolibarr PHP файлове притежава за потребителя на уеб сървъра (или група).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Моля попълнете стойност за сп
     ErrorNoValueForCheckBoxType=Моля попълнете стойност за списък отметки
     ErrorNoValueForRadioType=Моля попълнете стойност за списък радио бутони
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Полеви <b>%s,</b> не трябва да съдържа специални знаци.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Поле <b>%s</b> не трябва да съдържа специални символи, нито главни букви и не може да съдържа само цифри.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Не е активиран модула Счетоводство
     ErrorExportDuplicateProfil=Това име на профил вече съществува за този експортен набор.
     ErrorLDAPSetupNotComplete=Dolibarr LDAP съвпадение не е пълна.
     ErrorLDAPMakeManualTest=. LDIF файл е генериран в директорията %s. Опитайте се да го заредите ръчно от командния ред, за да има повече информация за грешките,.
    -ErrorCantSaveADoneUserWithZeroPercentage=Не може да се запази действието с &quot;статут не е започнал&quot;, ако поле &quot;, направено от&quot; е пълен.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref използван за създаване вече съществува.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Не може да изтрие запис. Той вече е използван или включен в друг обект.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript не трябва да бъдат хората с увреждания да имат тази функция. За да включите / изключите Javascript, отидете в менюто Начало-> Setup-> Display.
     ErrorPasswordsMustMatch=Двете машинописни пароли трябва да съвпадат помежду си
    -ErrorContactEMail=Техническа грешка. Моля, свържете се с администратора след имейл <b>%s</b> EN предоставят на <b>%s</b> код на грешка в съобщението си, или още по-добре чрез добавяне на екран копие на тази страница.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Грешна стойност за номер на полето <b>%s (&quot;%s&quot;</b> стойността не съответства на регулярни изрази върховенството <b>%s)</b>
     ErrorFieldValueNotIn=Грешна стойност за поле номер <b>%s</b> (стойността '<b>%s</b>' не е налична стойност в поле <b>%s</b> на таблицата <b>%s</b>)
     ErrorFieldRefNotIn=Грешна стойност за номер на полето <b>%s (&quot;%s</b> стойност не е <b>%s</b> съществуващия код)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Антивирусна програма не е в
     ErrorSpecialCharNotAllowedForField=Специални знаци не са разрешени за полето &quot;%s&quot;
     ErrorNumRefModel=Позоваване съществува в база данни (%s) и не е съвместим с това правило за номериране. Премахване на запис или преименува препратка към активира този модул.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Грешка на маска
     ErrorBadMaskFailedToLocatePosOfSequence=Грешка, маска без поредния номер
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Грешка, неправилна стойност за
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Броячът трябва да има повече от 3 цифри
     ErrorSelectAtLeastOne=Грешка. Изберете поне един запис.
    -ErrorDeleteNotPossibleLineIsConsolidated=Ненужното не е възможно, тъй като записът е свързана с банкова transation, че е conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s се възлага на друга трета
     ErrorFailedToSendPassword=Не може да се изпрати парола
     ErrorFailedToLoadRSSFile=Не успее да получи RSS Feed. Опитайте се да добавите постоянно MAIN_SIMPLEXMLLOAD_DEBUG ако съобщения за грешки не предоставя достатъчно информация.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Потребителя <b>%s</b> не е намерен.
     ErrorLoginHasNoEmail=Този потребител няма имейл адрес. Процес прекратено.
     ErrorBadValueForCode=Неправилна стойност за код за сигурност. Опитайте отново с нова стойност ...
     ErrorBothFieldCantBeNegative=Полетата %s и %s не може да бъде едновременно отрицателен
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Количество за ред в клиентска фактура не може да бъде отрицателно
     ErrorWebServerUserHasNotPermission=Потребителски акаунт <b>%s</b> използват за извършване на уеб сървър не разполага с разрешение за това
     ErrorNoActivatedBarcode=Не е тип баркод активира
    @@ -138,7 +141,7 @@ ErrorBadFormat=Неправилен формат!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Грешка, има някои доставки свързани към тази пратка. Изтриването е отказано.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Не може да се изтрие плащане споделено от поне една фактура със статус Платена
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Не може да се зададе стойност на константа '%s'
     ErrorPriceExpression2=Не може да се предефинира вградена функция '%s'
     ErrorPriceExpression3=Недефинирана променлива '%s' в дефиницията на функцията
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Неочакван '%s'
     ErrorPriceExpression6=Грешен брой на аргументите (%s са подадени, %s се очакват)
     ErrorPriceExpression8=Неочакван оператор '%s'
     ErrorPriceExpression9=Неочаквана грешка се появи
    -ErrorPriceExpression10=Липсва операнд за оператор '%s'
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Очаква се '%s'
     ErrorPriceExpression14=Деление на нула
     ErrorPriceExpression17=Недефинирана променлива '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP клиента се повреди с греш
     ErrorGlobalVariableUpdater5=Няма избрана глобална променлива
     ErrorFieldMustBeANumeric=Поле <b>%s</b> трябва да бъде числена стойност
     ErrorMandatoryParametersNotProvided=Задължителен параметър(и) не е даден
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=Парола е зададено за този член. Обаче, няма създаден потребителски акаунт. Следователно тази парола е записана, но не може да бъде използвана за влизане в Dolibarr. Може да бъде използвана от външен модул/интерфейс, но ако нямате нужда да определите нито потребителско име нито парола за член, можете да деактивирате тази опция. Ако имате нужда да управлявате потребителско име, но нямата нужда от парола, можете да оставите това поле празно, за да избегнете това предупреждение. Забележка: Имейл също може да бъде използван като потребителско име ако члена с свързан към потребител.
     WarningMandatorySetupNotComplete=Задължителни параметри на настройката все още не са определени
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Отметка с настоящия дял, или
     WarningPassIsEmpty=Внимание, парола за базата данни е празен. Това е дупка в сигурността. Вие трябва да добавите парола за достъп до вашата база данни и промените conf.php файл, за да се отрази това.
     WarningConfFileMustBeReadOnly=Внимание, конфигурационния файл <b>(htdocs / CONF / conf.php)</b> може да бъде заменена от уеб сървъра. Това е сериозна дупка в сигурността. Промяна на разрешения на файл, за да бъде в режим само за четене на потребителя на операционната система, използвани от уеб сървър. Ако използвате Windows и FAT формат за вашия диск, вие трябва да знаете, че тази файлова система не позволява да добавите разрешения на файл, така че не може да бъде напълно безопасен.
     WarningsOnXLines=Предупреждения върху <b>%s</b> линии източници
    -WarningNoDocumentModelActivated=Няма модел, за генерирането на документацията, е бил активиран. Модел ще бъде избра по подразбиране, докато не се провери настройката на модула.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Внимание, след Настройката е приключена, трябва да изключите инсталиране / мигрират инструменти чрез добавяне на файл <b>install.lock</b> в директорията <b>%s.</b> Липсва този файл е дупка в сигурността.
    -WarningUntilDirRemoved=Всички предупреждения относно защитата (видими само от администратори) ще остане активен, докато уязвимост е (или се добавя, че постоянното MAIN_REMOVE_INSTALL_WARNING в Setup-> настройка).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Внимание, затваряне се прави, дори ако сумата се различава между източника и целеви елементи. Активирайте тази функция с повишено внимание.
     WarningUsingThisBoxSlowDown=Предупреждение, използвайки това поле сериозно забавя всички страници, които го показват.
     WarningClickToDialUserSetupNotComplete=Настройките на информацията за ClickToDial за вашия потребител са непълни (вижте таб ClickToDial във вашата потребителска карта).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Прекалено много инфор
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/bg_BG/help.lang b/htdocs/langs/bg_BG/help.lang
    index 23b57d1df7d..ef4733a4662 100644
    --- a/htdocs/langs/bg_BG/help.lang
    +++ b/htdocs/langs/bg_BG/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Онлайн в реално време / дистанци
     OtherSupport=Друга поддръжка
     ToSeeListOfAvailableRessources=За да се свържете/вижте наличните ресурси:
     HelpCenter=Помощен център
    -DolibarrHelpCenter=Dolibarr център за помощ и поддръжка
    -ToGoBackToDolibarr=В противен случай, щракнете <a href="%s">тук, за да използвате Dolibarr</a>
    -TypeOfSupport=Източник на подкрепа
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Общност (безплатно)
     TypeSupportCommercial=Търговски
     TypeOfHelp=Тип
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Ефективност
     TypeHelpOnly=Само помощ
     TypeHelpDev=Помощ + развитие
    -TypeHelpDevForm=Помощ + развитие + Формиране
    -ToGetHelpGoOnSparkAngels1=Някои компании могат да осигурят бързо (по някое време незабавно) и по-ефективни онлайн поддръжка чрез поемането на контрола на вашия компютър. Такива помощници може да се намери на уеб сайта на <b>%s:</b>
    -ToGetHelpGoOnSparkAngels3=Можете също да отидете към списъка на всички налични треньори за Dolibarr за тази цел кликнете върху бутона
    -ToGetHelpGoOnSparkAngels2=Понякога, няма фирма, на разположение в момента, в който търсенето си, така че мислете за промяна на филтъра, за да търсят &quot;всичко наличност&quot;. Вие ще бъдете в състояние да изпрати повече заявки.
    -BackToHelpCenter=В противен случай, натиснете тук, за да отиде <a href="%s">да помогне на центъра начална страница</a> .
    -LinkToGoldMember=Можете да се обадите на треньора, предварително подбрани от Dolibarr за вашия език (%s), като щракнете върху му Widget (статус и максимална цена се актуализира автоматично):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Поддържани езици
    -SubscribeToFoundation=Помогнете на проекта Dolibarr, като се присъедините към фондацията
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=За официална поддръжка на Dolibarr за Вашият език: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/bg_BG/holiday.lang b/htdocs/langs/bg_BG/holiday.lang
    index 8ecb7b74d40..988781d62a8 100644
    --- a/htdocs/langs/bg_BG/holiday.lang
    +++ b/htdocs/langs/bg_BG/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=ЧР
    -Holidays=Отпуски
    -CPTitreMenu=Отпуски
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Месечно извлечение
     MenuAddCP=Нова молба за отпуск
    -NotActiveModCP=Трябва да активирате модула за отпуски, за да видите тази страница.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Кандидатстване за отпуск
     DateDebCP=Начална дата
     DateFinCP=Крайна дата
    @@ -15,13 +15,18 @@ ApprovedCP=Утвърден
     CancelCP=Отменен
     RefuseCP=Отказ
     ValidatorCP=Утвърждаващ
    -ListeCP=Списък на отпуски
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Ще бъде утвърден от
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Описание
     SendRequestCP=Създаване на молба за отпуск
     DelayToRequestCP=Молбите за отпуски трябва да бъдат направени най-малко <b>%s ден(а)</b> преди началната им дата.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Баланса на отпуските е <b>%s</b> дни.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Трябва да изберете крайната дата, по-голяма от началната дата.
     ErrorSQLCreateCP=Възникна SQL грешка по време на създаването:
     ErrorIDFicheCP=Възникна грешка, молбата за отпуск не съществува.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=Не сте упълномощени да четете тази
     InfosWorkflowCP=Информация Workflow
     RequestByCP=По искане на
     TitreRequestCP=Молба за отпуск
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Брой на дните на използваните отпуски
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Редактиране
     DeleteCP=Изтриване
     ActionRefuseCP=Отказване
    @@ -59,6 +71,7 @@ DateRefusCP=Дата на отказ
     DateCancelCP=Дата на анулирането
     DefineEventUserCP=Присвояване изключително отпуск за потребителя
     addEventToUserCP=Присвояване напусне
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Причина
     UserCP=Потребител
     ErrorAddEventToUserCP=Възникна грешка при добавяне на изключително отпуск.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Актуализира се успешно.
     Module27130Name= Управление на молби за отпуск
     Module27130Desc= Управление на молби за отпуск
    @@ -94,7 +112,7 @@ NoticePeriod=Период на известяване
     HolidaysToValidate=Валидиране на молби за отпуск
     HolidaysToValidateBody=Отдолу е молба за отпуск за валидиране
     HolidaysToValidateDelay=Тази молба за отпуск ще се случи в период от по-малко от %s дни.
    -HolidaysToValidateAlertSolde=Потребителя, който е направил тази молба за отпуск няма достатъчно налични дни.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Валидирани молби за отпуск
     HolidaysValidatedBody=Вашата молба за отпуск от %s до %s е била валидирана.
     HolidaysRefused=Молбата отказана
    @@ -103,4 +121,9 @@ HolidaysCanceled=Отказани молби за отпуск
     HolidaysCanceledBody=Вашата молба за отпуск от %s до %s е била отказана.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Отидете на <strong>Начало - Настройки - Речници - Тип на отпуски</strong> за настройка на различните типове на отпуски.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/bg_BG/install.lang b/htdocs/langs/bg_BG/install.lang
    index 3489238388e..29c2e8fa5b6 100644
    --- a/htdocs/langs/bg_BG/install.lang
    +++ b/htdocs/langs/bg_BG/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Просто следвайте инструкциите стъпка по стъпка.
     MiscellaneousChecks=Предпоставки проверка
     ConfFileExists=Конфигурационния файл <b>%s</b> съществува.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Конфигурационния файл <b>%s</b> не съществува и не може да бъде създаден!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Конфигурационния файл <b>%s</b> може да бъде създаден.
    -ConfFileIsNotWritable=<b>%s</b> конфигурационен файл е без права за запис. Проверете правата. При първа инсталация, вашия уеб сървър трябва да бъде настроен с права за запис в този файл по време на процеса на конфигуриране (&quot;chmod 666&quot; за пример на Unix подобна операционна система).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Конфигурационния файл <b>%s</b> е с права за писане.
    -ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Презареждане на цялата информация от конфигурационния файл.
    +ConfFileMustBeAFileNotADir=Конфигурационният файл <b> %s </b> трябва да бъде файл, а не директория.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=PHP поддържа сесии.
     PHPSupportPOSTGETOk=PHP поддържа променливи POST и GET.
    -PHPSupportPOSTGETKo=Възможно е PHP настройките Ви да не поддържат променливи POST и / или GET. Проверете параметър <b>variables_order</b> в php.ini.
    -PHPSupportGD=PHP поддържа GD графични функции.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=PHP поддържа UTF8 функции.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=PHP макс сесия памет е <b>%s.</b> Това трябва да бъде достатъчно.
    -PHPMemoryTooLow=PHP макс сесия памет е настроен на <b>%s</b> байта. Това може да бъде прекалено ниско. Променете <b>php.ini</b> като настроите параметър <b>memory_limit</b> най-малко <b>%s</b> байта.
    -Recheck=Кликнете тук за по-значим тест
    -ErrorPHPDoesNotSupportSessions=Вашата PHP инсталация не поддържа сесии. Тази функция е нужна за правилата работа на Dolibarr. Проверете PHP настройките.
    -ErrorPHPDoesNotSupportGD=Вашата PHP инсталация не поддържа графична функция GD. Графиките няма да бъдат достъпни.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Вашата PHP инсталация не поддържа UTF8 функции. Dolibarr не може да работи правилно. Преконфигурирайте преди да инсталирате Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Директорията %s не съществува.
    -ErrorGoBackAndCorrectParameters=Върни се назад и коригирайте грешните параметри.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Може да сте въвели грешна стойност за параметър '%s'.
     ErrorFailedToCreateDatabase=Неуспешно създаване на базата данни '%s'.
     ErrorFailedToConnectToDatabase=Неуспешна връзка с база данни '%s'.
     ErrorDatabaseVersionTooLow=Версията на базата данни (%s) е твърде стара. Изисква се версия %s или по-нова.
     ErrorPHPVersionTooLow=Версията на PHP е твърде стара. Изисква се версия %s.
    -ErrorConnectedButDatabaseNotFound=Свързването към сървъра е успешено, но базата данни '%s' не е открита.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Базата данни %s вече съществува.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Ако базата данни не съществува, върнете се назад и проверете опцията "Създаване на база данни".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Ако базата данни вече съществува, върнете се обратно и махнете отметката на "Създаване на база данни".
    -WarningBrowserTooOld=Твърде стара версия на браузъра. Надстройването на браузъра ви до последната версия на Firefox, Chrome или Opera е силно препоръчително.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=Версия на PHP
     License=Лиценз за използване
     ConfigurationFile=Конфигурационен файл
    @@ -45,22 +45,23 @@ DolibarrDatabase=База данни на Dolibarr
     DatabaseType=Тип на базата данни
     DriverType=Тип драйвер
     Server=Сървър
    -ServerAddressDescription=Име или IP адрес на сървъра на базата данни, обикновено 'localhost', когато сървъра на базата данни се хоства на същия сървър като уеб сървъра
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Порт на сървъра на базата данни. Оставете празно ако е неизвестно.
     DatabaseServer=Сървър на базата данни
     DatabaseName=Име на базата данни
    -DatabasePrefix=Префикс на таблиците
    -AdminLogin=Идентифициране на собственика на базата данни на Dolibarr.
    -PasswordAgain=Въведете паролата отново
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Парола на собственика на базата данни на Dolibarr.
     CreateDatabase=Създаване на база данни
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Сървър на базата данни - Достъп супер потребител
    -CheckToCreateDatabase=Отметнете ако базата данни не съществува и трябва да бъде създадена. <br> В този случай, трябва да попълните потребителско име/парола за профил на суперпотребител в долната част на тази страница.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Идентифицирането на потребителя му позволява да създава нови бази данни или нови потребители, задължително ако вашата база данни или нейния собственик вече не съществуват.
    -KeepEmptyIfNoPassword=Оставете празно, ако потребителят няма парола (избягвайте това)
    -SaveConfigurationFile=Регистрация на конфигурационния файл
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Свързване със сървъра
     DatabaseCreation=Създаване на база данни
     CreateDatabaseObjects=Създаване на обекти в базата данни
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Създаване на чужди ключове и и
     OtherKeysCreation=Създаване на чужди ключове и индекси
     FunctionsCreation=Създаване на функции
     AdminAccountCreation=Създаване на администраторски профил
    -PleaseTypePassword=Моля, въведете парола, празни пароли не са позволени!
    -PleaseTypeALogin=Моля, въведете име!
    -PasswordsMismatch=Паролите не съвпадат, опитайте отново!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Край на настройкате
     SystemIsInstalled=Инсталирането завърши.
     SystemIsUpgraded=Dolibarr е обновен успешно.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Трябва да конфигурирате Dolibarr
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Отиди на Dolibarr
     GoToSetupArea=Отиди на Dolibarr (област за настройка)
    -MigrationNotFinished=Версията на вашата база данни не е напълно актуална, така че ще трябва отново да стартирате процеса на надграждане.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Отидете отново на страницата за надграждане
     WithNoSlashAtTheEnd=Без наклонена черта "/" в края
    -DirectoryRecommendation=Препоръчва се да използвате директория извън директорията на своите уеб страници.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Вече съществува
     DolibarrAdminLogin=Администраторски вход в Dolibarr
    -AdminLoginAlreadyExists=Администраторския профил за Dolibarr '<b>%s</b>' вече съществува. Върнете се назад, ако искате да създадете друг.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Внимание, от съображения за сигурност, след като ведъж инсталирането или надграждането завърши, за да се избегне ново използване на инструментите за инсталиране, трябва да добавите файл наречен <b>install.lock</b> в директорията с документи на Dolibarr, за да се избегне злонамерена употреба.
    -FunctionNotAvailableInThisPHP=Не е наличено за това PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Изберете скрипт за миграция
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Скрипта обработва
     ChooseYourSetupMode=Изберете режим на настройка и кликнете върху "Начало"...
     FreshInstall=Нова инсталация
    -FreshInstallDesc=Използвайте този режим, ако това е вашето първо инсталиране. Ако това не е така, този режим може да поправи непълна предишна инсталация, но ако искате да надградите вашата версия, изберете режим "Надграждане".
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Надграждане
     UpgradeDesc=Използвайте този режим, ако желаете да замените старите файлове на Dolibarr с файлове от по-нова версия. Това ще обнови вашата база данни и данни.
     Start=Начало
     InstallNotAllowed=Настройката не разрешена поради правата на файла <b>conf.php</b>
     YouMustCreateWithPermission=Трябва да създадете файл %s и да настроите права за запис в него от уеб сървъра по време на процеса на инсталиране.
    -CorrectProblemAndReloadPage=Моля, коригирайте проблема и натиснете F5, за да презаредите страницата.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Вече мигрирахте
     DatabaseVersion=Версия на базата данни
     ServerVersion=Версия на сървъра на базата данни
     YouMustCreateItAndAllowServerToWrite=Трябва да създадете тази директория и да позволите на уеб сървъра да записва в нея.
     DBSortingCollation=Ред за сортиране на символи
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Искате да създадете база данни <b>%s</b>, но за това Dolibarr трябва да се свърже със сървъра <b>%s</b> чрез супер потребителя <b>%s</b>.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Искате да създадете вход за база данни <b>%s</b>, но за това Dolibarr трябва да се свърже със сървъра <b>%s</b> чрез супер потребителя <b>%s</b>.
    -BecauseConnectionFailedParametersMayBeWrong=Тъй като свързването е неуспешно, хоста или параметрите на супер потребителя трябва да са грешни.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans плащане е открито по метода %s
     RemoveItManuallyAndPressF5ToContinue=Премахнете го ръчно и натиснете F5, за да продължите.
     FieldRenamed=Полето е преименувано
    -IfLoginDoesNotExistsCheckCreateUser=Ако все още не съществува вписване, трябва да проверите опцията "Създаване на потребител"
    -ErrorConnection=Сървър "<b>%s</b>", име на база данни "<b>%s</b>", потребител "<b>%s</b>", или парола на базата данни може да са грешни или версията на PHP клиента може да е твърде стара, сравнена с версията на базата данни.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Препоръчителен избор е да инсталирате версия <b>%s</b> от вашата текуща версия <b>%s</b>
     InstallChoiceSuggested=<b>Избор за инсталиране, предложен от инсталатора</b>.
    -MigrateIsDoneStepByStep=Целевата версия (%s) има празнина от няколко версии, така че помощника ще препоръча следваща миграция, след като тази завърши.
    -CheckThatDatabasenameIsCorrect=Уверете се, че името на базата данни "<b>%s</b>" е правилно.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Ако това име е вярно и тази база данни все още не съществува, трябва да проверите опцията "Създаване на база данни".
     OpenBaseDir=Параметър PHP openbasedir
    -YouAskToCreateDatabaseSoRootRequired=Отметнахте "Създаване на база данни". За тази цел, трябва да въведете потребителско име/парола на супер потребител (най-долу на формата).
    -YouAskToCreateDatabaseUserSoRootRequired=Отметнахте "Създаване на собственик на базата данни". За тази цел, трябва да въведете потребителско име/парола на супер потребител (най-долу на формата).
    -NextStepMightLastALongTime=Текущата стъпка може да продължи няколко минути. Моля, изчакайте докато следващия екран се покаже напълно, преди да продължите.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Мигриране на хранилище за пратки на поръчки от клиенти
     MigrationShippingDelivery=Надграждане на хранилище на доставки
     MigrationShippingDelivery2=Надграждане на хранилище на доставки 2
     MigrationFinished=Миграцията завърши
    -LastStepDesc=<strong>Последна стъпка</strong>: Определете тук потребителско име и парола, които планирате да използвате, за да се свързвате със софтуера. Не ги губете, тъй като това е профил за администриране на всички останали.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Активиране на модул %s
     ShowEditTechnicalParameters=Натиснете тук за да покажете/редактирате параметрите за напреднали (експертен режим)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Вашата база данни е с версия %s. Тя има критичен бъг, причинявайки загуба на информация ако направите структурна промяна на вашата база данни, а подобна е задължителна при миграционния процес. Поради тази причина, миграцията не е позволена, докато не обновите вашата база данни до по-нова коригирана версия (списък на познати версии с бъгове: %s)
    -KeepDefaultValuesWamp=Вие използвате помощника за настройка на Dolibarr от DoliWamp, така че стойностите, предложени тук вече са оптимизирани. Променете ги само ако знаете какво правите.
    -KeepDefaultValuesDeb=Вие използвате помощника за настройка на Dolibarr от пакет за Linux (Ubuntu, Debian, Fedora ...), така че стойностите, предложени тук вече са оптимизирани. Само създаването на парола на собственика на базата данни трябва да бъде завършена. Променяйте други параметри, само ако знаете какво правите.
    -KeepDefaultValuesMamp=Вие използвате помощника за настройка на Dolibarr от DoliMamp, така че стойностите, предложени тук вече са оптимизирани. Променете ги само ако знаете какво правите.
    -KeepDefaultValuesProxmox=Вие използвате помощника за настройка на Dolibarr от Proxmox виртуална машина, така че стойностите, предложени тук вече са оптимизирани. Променете ги само ако знаете какво правите.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Миграция на данни за оферти
     MigrationInvoice=Миграция на данни за фактури за клиенти
     MigrationContract=Миграция на данни за договори
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Надграждането е успешно
     MigrationUpdateFailed=Неуспешен процес на надграждане
     MigrationRelationshipTables=Миграция на данни за свързани таблици (%s)
     MigrationPaymentsUpdate=Корекция на данни за плащане
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Корекция на данни в договор
     MigrationContractsNumberToUpdate=%s договор(и) за актуализиране
     MigrationContractsLineCreation=Създаване на ред в договор с реф. %s
     MigrationContractsNothingToUpdate=Няма повече задачи
    -MigrationContractsFieldDontExist=Полето fk_facture вече не съществува. Нищо не може да се направи.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Корекция на празна дата в договор
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Няма празна дата на договор за коригиране
     MigrationContractsEmptyCreationDatesNothingToUpdate=Няма дата за създаване на договор за коригиране
     MigrationContractsInvalidDatesUpdate=Корекция на неправилни дати на договор
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Актуализация на доставката
     MigrationStockDetail=Актуализиране на наличната стойност на продукти
     MigrationMenusDetail=Актуализиране на таблици за динамични менюта
     MigrationDeliveryAddress=Актуализиране на адрес за доставка на пратки,
    -MigrationProjectTaskActors=Миграция на данни за таблицата llx_projet_task_actors
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Миграция на полето fk_user_resp на llx_projet llx_element_contact
     MigrationProjectTaskTime=Актуализация на времето, прекарано в секунда
     MigrationActioncommElement=Актуализиране на данните за действия
     MigrationPaymentMode=Миграция на данни за начин на плащане
     MigrationCategorieAssociation=Миграция на категории
    -MigrationEvents=Миграция на събития за добавяне на собственик на събитие в таблицата за възлагане
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Презареждане на модула %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Показване на недостъпните опции
    -HideNotAvailableOptions=Скриване на недостъпните опции
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/bg_BG/interventions.lang b/htdocs/langs/bg_BG/interventions.lang
    index 23e38911ec7..4d30acac5de 100644
    --- a/htdocs/langs/bg_BG/interventions.lang
    +++ b/htdocs/langs/bg_BG/interventions.lang
    @@ -4,9 +4,10 @@ Interventions=Интервенциите
     InterventionCard=Интервенция карта
     NewIntervention=Нов намеса
     AddIntervention=Създаване на намеса
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Списък на интервенциите
     ActionsOnFicheInter=Действия на интервенцията
    -LastInterventions=Latest %s interventions
    +LastInterventions=Последни %s намеси
     AllInterventions=Всички интервенции
     CreateDraftIntervention=Създаване на проект
     InterventionContact=Интервенция контакт
    @@ -14,12 +15,12 @@ DeleteIntervention=Изтриване на интервенция
     ValidateIntervention=Проверка на интервенция
     ModifyIntervention=Промяна на интервенция
     DeleteInterventionLine=Изтрий ред намеса
    -CloneIntervention=Clone intervention
    -ConfirmDeleteIntervention=Are you sure you want to delete this intervention?
    +CloneIntervention=Клонирай интервенцията
    +ConfirmDeleteIntervention=Наистина ли искате да изтриете тази интервенция?
     ConfirmValidateIntervention=Are you sure you want to validate this intervention under name <b>%s</b>?
    -ConfirmModifyIntervention=Are you sure you want to modify this intervention?
    -ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line?
    -ConfirmCloneIntervention=Are you sure you want to clone this intervention?
    +ConfirmModifyIntervention=Сигурни ли сте че искате да промените тази интервенция
    +ConfirmDeleteInterventionLine=Сигурни ли сте че искате да изтриете този ред от интервенцията
    +ConfirmCloneIntervention=Сигурни ли сте че искате да клонирате тази интервенция
     NameAndSignatureOfInternalContact=Име и подпис на намеса:
     NameAndSignatureOfExternalContact=Име и подпис на клиента:
     DocumentModelStandard=Стандартен документ модел за интервенции
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/bg_BG/main.lang b/htdocs/langs/bg_BG/main.lang
    index e5fc395ca51..1d1a6a40a44 100644
    --- a/htdocs/langs/bg_BG/main.lang
    +++ b/htdocs/langs/bg_BG/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Неуспешно изпращане на имейл (п
     ErrorFileNotUploaded=Файлът не беше качен. Уверете се, че размерът му не надвишава максимално допустимия, че е на разположение свободно пространство на диска и че няма файл със същото име в тази директория.
     ErrorInternalErrorDetected=Открита е грешка
     ErrorWrongHostParameter=Неправилен параметър на сървъра
    -ErrorYourCountryIsNotDefined=Вашата държава не е зададена. Отидете на Начало-Настройки-Промяна, за да я зададете.
    -ErrorRecordIsUsedByChild=Не може да изтриете този запис. Той се използва в други записи.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Грешна стойност
     ErrorWrongValueForParameterX=Грешна стойност за параметър %s
     ErrorNoRequestInError=Няма грешна заявка
    -ErrorServiceUnavailableTryLater=Услугата не е налична в момента. Опитайте отново по-късно.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Дублиране в поле с уникални стойности
    -ErrorSomeErrorWereFoundRollbackIsDone=Открити са някои грешки. Промените са отменени.
    -ErrorConfigParameterNotDefined=Параметърът <b>%s</b> не е дефиниран в конфигурационния файл на Dolibarr <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Не е открит потребител <b>%s</b> в базата данни.
     ErrorNoVATRateDefinedForSellerCountry=Грешка, за държавата '%s' няма дефинирани ДДС ставки.
     ErrorNoSocialContributionForSellerCountry=Грешка, за държава '%s' няма дефинирани ставки за социални осигуровки.
     ErrorFailedToSaveFile=Грешка, неуспешно записване на файл.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Не сте упълномощен да правите това.
     SetDate=Настройка на дата
     SelectDate=Изберете дата
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=Файлът е качен успешно
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=Файлът е избран за прикачване, но все още не е качен. Кликнете върху &quot;Прикачи файл&quot;.
    -NbOfEntries=Брой записи
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Прочетете помощта
     RecordSaved=Записът е съхранен
    @@ -142,6 +142,7 @@ Closed=Затворен
     Closed2=Затворен
     NotClosed=Not closed
     Enabled=Включено
    +Enable=Активирайте
     Deprecated=Остаряло
     Disable=Изключи
     Disabled=Изключено
    @@ -153,7 +154,7 @@ Update=Актуализирай
     Close=Затвари
     CloseBox=Remove widget from your dashboard
     Confirm=Потвърди
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Изтриване
     Remove=Премахване
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Копиране
     Paste=Поставяне
     Default=По подразбиране
     DefaultValue=Стойност по подразбиране
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Цена
     PriceCurrency=Price (currency)
     UnitPrice=Единична цена
    @@ -335,7 +336,7 @@ UnitPriceHT=Единична цена (нето)
     UnitPriceHTCurrency=Unit price (net) (currency)
     UnitPriceTTC=Единична цена
     PriceU=Ед.ц.
    -PriceUHT=Ед.ц. (нето)
    +PriceUHT=Ед. ц. (нето)
     PriceUHTCurrency=U.P (currency)
     PriceUTTC=Ед.ц. (с данък)
     Amount=Сума
    @@ -347,7 +348,7 @@ AmountTTCShort=Сума (с данък)
     AmountHT=Сума (без данък)
     AmountTTC=Сума (с данък)
     AmountVAT=Сума на данък
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,14 +429,15 @@ ActionNotApplicable=Не се прилага
     ActionRunningNotStarted=За започване
     ActionRunningShort=In progress
     ActionDoneShort=Завършено
    -ActionUncomplete=Незавършено
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
    -CompanyFoundation=Company/Organization
    +CompanyFoundation=Компания / Организация
     Accountant=Accountant
     ContactsForCompany=Контакти за този контрагент
     ContactsAddressesForCompany=Контакти/адреси за този контрагент
     AddressesForCompany=Адреси за този контрагент
     ActionsOnCompany=Събития за този контрагент
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Събития за този член
     ActionsOnProduct=Events about this product
     NActionsLate=%s закъснели
    @@ -453,8 +455,8 @@ Generate=Генерирай
     Duration=Продължителност
     TotalDuration=Обща продължителност
     Summary=Резюме
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Налично
     NotYetAvailable=Все още не е налично
    @@ -468,7 +470,7 @@ and=и
     or=или
     Other=Друг
     Others=Други
    -OtherInformations=Друга информация
    +OtherInformations=Other information
     Quantity=Количество
     Qty=К-во
     ChangedBy=Променено от
    @@ -506,7 +508,7 @@ None=Няма
     NoneF=Няма
     NoneOrSeveral=None or several
     Late=Закъснели
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Снимка
     Photos=Снимки
    @@ -530,18 +532,6 @@ September=Септември
     October=Октомври
     November=Ноември
     December=Декември
    -JanuaryMin=Яну
    -FebruaryMin=Фев
    -MarchMin=Мар
    -AprilMin=Апр
    -MayMin=Май
    -JuneMin=Юни
    -JulyMin=Юли
    -AugustMin=Авг
    -SeptemberMin=Сеп
    -OctoberMin=Окт
    -NovemberMin=Ное
    -DecemberMin=Дек
     Month01=Януари
     Month02=Февруари
     Month03=Март
    @@ -646,6 +636,8 @@ SendMail=Изпращане на имейл
     EMail=Имейл
     NoEMail=Няма имейл
     Email=Имейл
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Няма мобилен телефон
     Owner=Собственик
     FollowingConstantsWillBeSubstituted=Следните константи ще бъдат заменени със съответната стойност.
    @@ -677,7 +669,7 @@ NeverReceived=Никога не получено
     Canceled=Отменен
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Цвят
     Documents=Свързани файлове
     Documents2=Документи
    @@ -716,15 +708,15 @@ Merge=Обединяване
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Показване на страница за печат само с основното съдържание
     MenuManager=Меню менажер
    -WarningYouAreInMaintenanceMode=Внимание, вие сте в режим на поддръжка, така че само вход <b>%s</b> се разрешава за използване приложение в момента.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Системна грешка
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Кредитна карта
     ValidatePayment=Валидирай плащане
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Полетата с <b>%s</b> са задължителни
    -FieldsWithIsForPublic=Полетата с <b>%s</b> се показват на публичен списък с членовете. Ако не искате това, отмаркирайте поле "публичен".
    -AccordingToGeoIPDatabase=(Според GeoIP конверсията)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Ред
     NotSupported=Не се поддържа
     RequiredField=Задължително поле
    @@ -732,6 +724,8 @@ Result=Резултат
     ToTest=Тест
     ValidateBefore=Картата трябва да бъде потвърдена, преди да използвате тази функция
     Visibility=Видимост
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Частен
     Hidden=Скрит
     Resources=Ресурси
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Създай чернова
     SetToDraft=Назад към черновата
     ClickToEdit=Кликнете, за да редактирате
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=По ден
     BySalesRepresentative=По търговски представител
     LinkedToSpecificUsers=Свързано с контакт на потребителя
     NoResults=Няма резултати
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=Системни инструменти
     ModulesSystemTools=Модулни инструменти
     Test=Тест
     Element=Елемент
     NoPhotoYet=Все още няма налични снимки
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Удържаем
     from=от
     toward=към
    @@ -802,7 +798,7 @@ PrintFile=Печат на файл %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Покажи намеса
     ShowContract=Покажи договор
    -GoIntoSetupToChangeLogo=Отидете на Начало - Настройки - Фирма/Организация, за да промените логото или отидете на Начало - Настройки- Екран, за да го скриете.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Забрани
     Denied=Забранено
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Искрено
     DeleteLine=Изтриване на линия
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Класифицирай платени
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Календар
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Уеб Сайт
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Уебсайтове
    +WebSiteAccounts=Website accounts
     ExpenseReport=Доклад разходи
     ExpenseReports=Опис разходи
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Събития
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Проект
     Projects=Проекти
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Права
     LineNb=Line no.
     IncotermLabel=Инкотермс
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Понеделник
     Tuesday=Вторник
    @@ -918,24 +923,24 @@ SearchIntoProductsOrServices=Продукти или услуги
     SearchIntoProjects=Проекти
     SearchIntoTasks=Задачи
     SearchIntoCustomerInvoices=Клиентски фактури
    -SearchIntoSupplierInvoices=Vendor invoices
    +SearchIntoSupplierInvoices=Фактури на доставчик
     SearchIntoCustomerOrders=Клиентски поръчки
    -SearchIntoSupplierOrders=Purchase orders
    +SearchIntoSupplierOrders=Поръчка
     SearchIntoCustomerProposals=Клиентски предложения
    -SearchIntoSupplierProposals=Vendor proposals
    +SearchIntoSupplierProposals=Предложения на доставчик
     SearchIntoInterventions=Намеси
     SearchIntoContracts=Договори
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Опис разходи
    -SearchIntoLeaves=Отпуски
    +SearchIntoLeaves=Leave
     CommentLink=Коментари
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Всички
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Платен от
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Възложено на
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/bg_BG/other.lang b/htdocs/langs/bg_BG/other.lang
    index de2d12ca460..a49e2bdc2dc 100644
    --- a/htdocs/langs/bg_BG/other.lang
    +++ b/htdocs/langs/bg_BG/other.lang
    @@ -1,21 +1,21 @@
     # Dolibarr language file - Source file is en_US - other
     SecurityCode=Код за сигурност
    -NumberingShort=N°
    +NumberingShort=№
     Tools=Инструменти
     TMenuTools=Инструменти
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Рожден ден
    -BirthdayDate=Birthday date
    +BirthdayDate=Рожден ден дата
     DateToBirth=Дата на раждане
     BirthdayAlertOn=Известяването за рожден ден е активно
     BirthdayAlertOff=Известяването за рожден ден е неактивно
    -TransKey=Translation of the key TransKey
    -MonthOfInvoice=Month (number 1-12) of invoice date
    -TextMonthOfInvoice=Month (text) of invoice date
    -PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date
    +TransKey=Превод на ключа TransKey
    +MonthOfInvoice=Месец (номер 1-12) от датата на фактурата
    +TextMonthOfInvoice=Месец (текст) на датата на фактурата
    +PreviousMonthOfInvoice=Предишен месец (номер 1-12) от датата на фактурата
     TextPreviousMonthOfInvoice=Previous month (text) of invoice date
     NextMonthOfInvoice=Following month (number 1-12) of invoice date
    -TextNextMonthOfInvoice=Following month (text) of invoice date
    +TextNextMonthOfInvoice=Следващия месец (текст) на датата на фактурата
     ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
     DocFileGeneratedInto=Doc file generated into <b>%s</b>.
     JumpToLogin=Disconnected. Go to login page...
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Съобщение на валидирана страница плащане връщане
     MessageKO=Съобщение за анулиране страница плащане връщане
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Интервенцията е валидирана
    -Notify_FICHINTER_SENTBYMAIL=Интервенцията е изпратена по пощата
     Notify_ORDER_VALIDATE=Поръчка от клиент е валидирана
     Notify_ORDER_SENTBYMAIL=Поръчка от клиент изпратена по пощата
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Доставчик реда, изпратени по пощата
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Поръчка към доставчик е за
     Notify_ORDER_SUPPLIER_APPROVE=Поръчка към доставчик е утвърдена
     Notify_ORDER_SUPPLIER_REFUSE=Поръчка към доставчик е отказана
     Notify_PROPAL_VALIDATE=Предложение към клиент е валидирано
    -Notify_PROPAL_CLOSE_SIGNED=Предложение към клиент затворено подписано
    -Notify_PROPAL_CLOSE_REFUSED=Предложение към клиент затворено отхвърлено
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Търговско предложение, изпратено по пощата
     Notify_WITHDRAW_TRANSMIT=Оттегляне на трансмисия
     Notify_WITHDRAW_CREDIT=Оттегляне на кредит
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Клиентът е сздаден
     Notify_COMPANY_SENTBYMAIL=Пощатата е изпратена от клиентска карта
     Notify_BILL_VALIDATE=Продажната фактура е валидирана
     Notify_BILL_UNVALIDATE=Продажната фактура е не валидирана
    -Notify_BILL_PAYED=Фактурата на клиента е платена
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Доставната фактура е платена
     Notify_BILL_SENTBYMAIL=Доставната фактура е изпратена по пощата
     Notify_BILL_SUPPLIER_VALIDATE=Доставна фактура валидирана
    -Notify_BILL_SUPPLIER_PAYED=Доставчик фактура плаща
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Доставчик фактура, изпратена по пощата
     Notify_BILL_SUPPLIER_CANCELED=Доставната фактура е отказана
     Notify_CONTRACT_VALIDATE=Договор валидирани
     Notify_FICHEINTER_VALIDATE=Интервенция валидирани
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Интервенцията е изпратена по пощата
     Notify_SHIPPING_VALIDATE=Доставка валидирани
     Notify_SHIPPING_SENTBYMAIL=Доставка изпращат по пощата
     Notify_MEMBER_VALIDATE=Члена е приет
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Създаване на проект
     Notify_TASK_CREATE=Задачата е създадена
     Notify_TASK_MODIFY=Задачата е променена
     Notify_TASK_DELETE=Задачата е изтрита
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Вижте настройка на модул %s
     NbOfAttachedFiles=Брой на прикачените файлове/документи
     TotalSizeOfAttachedFiles=Общ размер на прикачените файлове/документи
     MaxSize=Максимален размер
     AttachANewFile=Прикачи нов файл/документ
     LinkedObject=Свързан обект
    -NbOfActiveNotifications=Брой уведомления (брой имейли на получатели)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Проф. Id %s</b> е информация, в зависимост от трета държава, която е страна. <br> Например, за страната <b>%s,</b> това е код <b>%s.</b>
     DolibarrDemo=Dolibarr ERP/CRM демо
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Намесата %s е потвърдена.
     EMailTextInvoiceValidated=Фактура %s е потвърдена.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Предложение %s е потвърдено.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Поръчка %s е потвърдена.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Поръчка %s е одобрена от %s.
     EMailTextOrderRefused=Поръчка %s е отказана.
     EMailTextOrderRefusedBy=Поръчка %s е отказана от %s.
     EMailTextExpeditionValidated=Доставка %s е валидирана.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Импортен набор от данни
     DolibarrNotification=Автоматично уведомяване
     ResizeDesc=Въведете нова ширина <b>ИЛИ</b> нова височина. Съотношението ще се запази по време преоразмеряването...
    @@ -204,7 +214,7 @@ NewLength=Нова ширина
     NewHeight=Нова височина
     NewSizeAfterCropping=Нов размер след изрязване
     DefineNewAreaToPick=Определете нова област на изображението, за да изберете (ляв клик върху изображението, след което плъзнете, докато стигнете до противоположния ъгъл)
    -CurrentInformationOnImage=Този инструмент е създаден, за да ви помогне да изрежете или преоразмерите изображение. Това е информация по текущото редактирано изображение
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Редактор на изображения
     YouReceiveMailBecauseOfNotification=Получавате това съобщение, защото вашият имейл е добавен към списъка с цел информиране за специални събития в %s софтуер на %s.
     YouReceiveMailBecauseOfNotification2=Това събитие е следното:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Секция за експорт
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Заглавие
     WEBSITE_DESCRIPTION=Описание
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/bg_BG/paybox.lang b/htdocs/langs/bg_BG/paybox.lang
    index 1d45efca0a7..aca768e6325 100644
    --- a/htdocs/langs/bg_BG/paybox.lang
    +++ b/htdocs/langs/bg_BG/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Paybox модул за настройка
     PayBoxDesc=В този модул се предлагат страници, които да дават възможност за заплащане на <a href="http://www.paybox.com" target="_blank">Paybox</a> от клиентите. Това може да се използва за плащане или за плащане на даден обект Dolibarr (фактура, поръчка, ...)
     FollowingUrlAreAvailableToMakePayments=Следните интернет адреси са на разположение, за да предложи на клиента да направи плащане по Dolibarr обекти
     PaymentForm=Формуляра за плащане
    -WelcomeOnPaymentPage=Добре дошли на нашия онлайн платежни услуги
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Този екран ви позволи да направите онлайн плащане на %s.
     ThisIsInformationOnPayment=Това е информация за плащане, за да се направи
     ToComplete=За да завършите
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL да предложи %s онлайн
     ToOfferALinkForOnlinePaymentOnContractLine=URL да предложи %s онлайн интерфейс ползвател на платежни за договор линия
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL да предложи %s онлайн интерфейс ползвател на платежни за безплатен сума
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL да предложи %s онлайн интерфейс ползвател на платежни за член абонамент
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Можете също да добавите URL параметър <b>и етикет = <i>стойност</i></b> на която и да е от тези URL (задължително само за безплатно плащане), за да добавите свой ​​собствен етикет за коментар на плащане.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Настройте Paybox с URL <b>%s</b> да има плащане създава автоматично, когато валидирани от Paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Тази страница потвърждава, че плащането е било записано. Благодаря.
    -YourPaymentHasNotBeenRecorded=Плащането не е записана и сделката е била анулирана. Благодаря.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Отчитат параметри
     UsageParameter=Употреба параметри
     InformationToFindParameters=Помощ &quot;, за да намерите информация за %s сметка
    diff --git a/htdocs/langs/bg_BG/projects.lang b/htdocs/langs/bg_BG/projects.lang
    index 01ddfb33433..f225c2c499d 100644
    --- a/htdocs/langs/bg_BG/projects.lang
    +++ b/htdocs/langs/bg_BG/projects.lang
    @@ -3,12 +3,12 @@ RefProject=Реф. проект
     ProjectRef=Проект реф.
     ProjectId=Id на проект
     ProjectLabel=Етикет на проект
    -ProjectsArea=Projects Area
    +ProjectsArea=Проект зона
     ProjectStatus=Статус на проект
     SharedProject=Всички
     PrivateProject=ПРОЕКТА Контакти
     ProjectsImContactFor=Projects I'm explicitely a contact of
    -AllAllowedProjects=All project I can read (mine + public)
    +AllAllowedProjects=Всички проект, който мога да видя(мой и публичен)
     AllProjects=Всички проекти
     MyProjectsDesc=This view is limited to projects you are a contact for
     ProjectsPublicDesc=Този възглед представя всички проекти, по които могат да се четат.
    @@ -18,7 +18,7 @@ ProjectsDesc=Този възглед представя всички проек
     TasksOnProjectsDesc=This view presents all tasks on all projects (your user permissions grant you permission to view everything).
     MyTasksDesc=This view is limited to projects or tasks you are a contact for
     OnlyOpenedProject=Само отворени проекти са видими (планирани проекти или със затворен статус не са видими).
    -ClosedProjectsAreHidden=Closed projects are not visible.
    +ClosedProjectsAreHidden=Затворените проекти не са видими
     TasksPublicDesc=Този възглед представя всички проекти и задачи, които може да чете.
     TasksDesc=Този възглед представя всички проекти и задачи (потребителски разрешения ви даде разрешение да видите всичко).
     AllTaskVisibleButEditIfYouAreAssigned=All tasks for qualified projects are visible, but you can enter time only for task assigned to selected user. Assign task if you need to enter time on it.
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Покажи проект
     ShowTask=Покажи задача
     SetProject=Задайте проект
     NoProject=Нито един проект няма определени или собственост
    -NbOfProjects=Nb на проекти
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Времето, прекарано
     TimeSpentByYou=Време отделено от вас
     TimeSpentByUser=Време отделено от потребител
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Списък на търговските предложения, свързани с проекта
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Списък на договори, свързани с проекта
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Списък на интервенциите, свързани с проекта
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=Списък на даренията асоциирани със този проект
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Списък на събития, свързани с проекта
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=Списък на отделеното време върху задачи на проект
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Дейност върху проект днес
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Свързано с друг контрагент
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Изразходваното време е празна
     ThisWillAlsoRemoveTasks=Това действие ще изтрие всички задачи на проекта <b>(%s</b> задачи в момента) и всички входове на времето, прекарано.
    -IfNeedToUseOhterObjectKeepEmpty=Ако някои обекти (фактура, поръчка, ...), принадлежащи към друга трета страна, трябва да бъдат свързани с проекта за създаване, запазете тази празна да има проект е мулти трети страни.
    +IfNeedToUseOhterObjectKeepEmpty=Ако някои обекти (фактура, поръчка, ...), принадлежащи на друг контрагент, трябва да бъдат свързани с проекта, за да се създаде, запази това празно, за да бъде проектът многостранни.
     CloneProject=Clone проект
     CloneTasks=Клонингите задачи
     CloneContacts=Клонингите контакти
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Задача %s е създадена
     TaskModifiedInDolibarr=Задача %s е променена
     TaskDeletedInDolibarr=Задача %s е изтрита
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Сътрудник
     SelectElement=Избиране на елемент
     AddElement=Линк към елемент
     # Documents models
    -DocumentModelBeluga=Общ преглед на шаблон на проект за свързани обекти
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Планирана работна натовареност
     PlannedWorkloadShort=Работна натовареност
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Проекти с този потребител к
     TasksWithThisUserAsContact=Задачи възложени на този потребител
     ResourceNotAssignedToProject=Не е зададено към проект
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Възлагане на задача към мен
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Възлагане
     ProjectOverview=Общ преглед
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Бр. на създадените проекти по месец
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Статистики за проекти/инициативи
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Задачата е възложена. Въвеждането на време на тази задача би трябвало да е възможно
     IdTaskTime=Ид. време на задача
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Предложение
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/bg_BG/propal.lang b/htdocs/langs/bg_BG/propal.lang
    index 38d32d9cad7..65f4d11a10e 100644
    --- a/htdocs/langs/bg_BG/propal.lang
    +++ b/htdocs/langs/bg_BG/propal.lang
    @@ -15,8 +15,8 @@ ValidateProp=Одобряване на търговско предложение
     AddProp=Създаване на предложение
     ConfirmDeleteProp=Are you sure you want to delete this commercial proposal?
     ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name <b>%s</b>?
    -LastPropals=Latest %s proposals
    -LastModifiedProposals=Latest %s modified proposals
    +LastPropals=Последни %s предложения
    +LastModifiedProposals=Последни %s промени по предложения
     AllPropals=Всички предложения
     SearchAProposal=Търсене предложение
     NoProposal=No proposal
    @@ -33,10 +33,10 @@ PropalStatusSigned=Подписано (нужди фактуриране)
     PropalStatusNotSigned=Не сте (затворен)
     PropalStatusBilled=Таксува
     PropalStatusDraftShort=Проект
    -PropalStatusValidatedShort=Валидирано
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Затворен
     PropalStatusSignedShort=Подписан
    -PropalStatusNotSignedShort=Не сте
    +PropalStatusNotSignedShort=Не е подписано
     PropalStatusBilledShort=Таксува
     PropalsToClose=Търговски предложения, за да го затворите
     PropalsToBill=Подписани търговски предложения законопроект
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s не е намерена
     AddToDraftProposals=Добавяне към черновата на предложение
     NoDraftProposals=Няма чернови на предложения
     CopyPropalFrom=Създаване на търговско предложение копиране съществуващото предложение
    -CreateEmptyPropal=Създаване на празен търговски vierge предложения или от списъка на продуктите / услугите
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default търговски продължителност предложение на валидност (в дни)
    -UseCustomerContactAsPropalRecipientIfExist=Използвайте адрес за контакт на клиента, ако вместо на трета страна адрес като адрес предложение получателя
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone търговско предложение
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Контакт с клиентите сле
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Цялостен модел за предложение (logo. ..)
    +DocModelCyanDescription=Цялостен модел за предложение (logo. ..)
     DefaultModelPropalCreate=Създаване на модел по подразбиране
     DefaultModelPropalToBill=Шаблон по подразбиране, когато се затваря бизнес предложение (да бъде фактурирано)
     DefaultModelPropalClosed=Шаблон по подразбиране, когато се затваря бизнес предложение (не осчетоводено)
    diff --git a/htdocs/langs/bg_BG/website.lang b/htdocs/langs/bg_BG/website.lang
    index ab283f62b5f..0c763410695 100644
    --- a/htdocs/langs/bg_BG/website.lang
    +++ b/htdocs/langs/bg_BG/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Код
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Изтрийте уебсайт
    -ConfirmDeleteWebsite=Сигурни ли сте, че искате да изтриете този уебсайт? Всички негови страници и съдържание ще бъдат премахнати.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
    -WEBSITE_PAGE_EXAMPLE=Web page to use as example
    +WEBSITE_PAGE_EXAMPLE=Уеб страница, която да се използва като пример
     WEBSITE_PAGENAME=Име на страницата
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=Линк към външен CSS файл
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Редактирай CSS или HTML header
    +EditCss=Edit website properties
     EditMenu=Редактирай
     EditMedias=Edit medias
    -EditPageMeta=Редайтирай Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Добави страница/контейнер
    -HomePage=Home Page
    +HomePage=Начална страница
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Преглед на вашият уебсайт %s не е наличен. Първо трябва да добавите страница.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Страницата %s все още няма съдържание, или кеш файла .tpl.php е премахнат. Редактирайте съдържанието на страницата, за да отстраните проблема.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Страница/Контейнер '%s' на уебсайта %s е изтрит
     PageAdded=Страница/Контейнер '%s' добавен
    @@ -36,8 +39,8 @@ ViewPageInNewTab=Покажи страницата в нов прозорец
     SetAsHomePage=Задай като основна страница
     RealURL=Релен URL
     ViewWebsiteInProduction=Покажи уеб сайта използвайки началното URL
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Чета
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/bn_BD/admin.lang b/htdocs/langs/bn_BD/admin.lang
    index d7042e784dc..8d6e8e39b04 100644
    --- a/htdocs/langs/bn_BD/admin.lang
    +++ b/htdocs/langs/bn_BD/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Development
     VersionUnknown=Unknown
     VersionRecommanded=Recommended
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler to save sessions
     SessionSavePath=Storage session localization
     PurgeSessions=Purge of sessions
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Your session
    -Sessions=Users session
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=External user
     InternalUsers=Internal users
     ExternalUsers=External users
     GUISetup=Display
    -SetupArea=Setup area
    +SetupArea=Setup
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=Setup
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposals
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Invoices
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Suppliers
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=State/Province
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Name
     CompanyAddress=Address
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Name
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/bn_BD/banks.lang b/htdocs/langs/bn_BD/banks.lang
    index f83b748598b..4d9affc517a 100644
    --- a/htdocs/langs/bn_BD/banks.lang
    +++ b/htdocs/langs/bn_BD/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Account
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only opened accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/bn_BD/bills.lang b/htdocs/langs/bn_BD/bills.lang
    index 0e8ade2cae5..7aaacf6834a 100644
    --- a/htdocs/langs/bn_BD/bills.lang
    +++ b/htdocs/langs/bn_BD/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment ?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Suppliers payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=Payment amount
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Processed
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Closed
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Other
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/bn_BD/cashdesk.lang b/htdocs/langs/bn_BD/cashdesk.lang
    index 1f51f375e89..353c4ee93ab 100644
    --- a/htdocs/langs/bn_BD/cashdesk.lang
    +++ b/htdocs/langs/bn_BD/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/bn_BD/commercial.lang b/htdocs/langs/bn_BD/commercial.lang
    index efadc44d700..96b8abbb937 100644
    --- a/htdocs/langs/bn_BD/commercial.lang
    +++ b/htdocs/langs/bn_BD/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/bn_BD/companies.lang b/htdocs/langs/bn_BD/companies.lang
    index 584efd135f1..a05659f8eff 100644
    --- a/htdocs/langs/bn_BD/companies.lang
    +++ b/htdocs/langs/bn_BD/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Select a third party
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Delete a contact/address
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New third party
    -MenuNewCustomer=New customer
    -MenuNewProspect=New prospect
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=Company
     CompanyName=Company name
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Companies
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=Third parties
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
     ThirdPartyProspectsStats=Prospects
     ThirdPartyCustomers=Customers
     ThirdPartyCustomersStats=Customers
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Position
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposals
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Supplier
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Delete a company
     PersonalInformations=Personal data
     AccountancyCode=Accounting account
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Staff
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=List of prospects
    -ListCustomersShort=List of customers
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Opened
     ActivityCeased=Closed
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/bn_BD/dict.lang b/htdocs/langs/bn_BD/dict.lang
    index 61a7237f472..ad3a24e12f6 100644
    --- a/htdocs/langs/bn_BD/dict.lang
    +++ b/htdocs/langs/bn_BD/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/bn_BD/ecm.lang b/htdocs/langs/bn_BD/ecm.lang
    index 5200fa30b1d..43ddd3bf36f 100644
    --- a/htdocs/langs/bn_BD/ecm.lang
    +++ b/htdocs/langs/bn_BD/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/bn_BD/errors.lang b/htdocs/langs/bn_BD/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/bn_BD/errors.lang
    +++ b/htdocs/langs/bn_BD/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/bn_BD/help.lang b/htdocs/langs/bn_BD/help.lang
    index 6129cae362d..da776683a6a 100644
    --- a/htdocs/langs/bn_BD/help.lang
    +++ b/htdocs/langs/bn_BD/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Commercial
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/bn_BD/holiday.lang b/htdocs/langs/bn_BD/holiday.lang
    index 1c19d69732a..951af61f273 100644
    --- a/htdocs/langs/bn_BD/holiday.lang
    +++ b/htdocs/langs/bn_BD/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Description
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=Delete
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/bn_BD/install.lang b/htdocs/langs/bn_BD/install.lang
    index fb521c0c085..c92d83988ff 100644
    --- a/htdocs/langs/bn_BD/install.lang
    +++ b/htdocs/langs/bn_BD/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/bn_BD/interventions.lang b/htdocs/langs/bn_BD/interventions.lang
    index 4c93eff9d0d..a130367b14f 100644
    --- a/htdocs/langs/bn_BD/interventions.lang
    +++ b/htdocs/langs/bn_BD/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/bn_BD/main.lang b/htdocs/langs/bn_BD/main.lang
    index 620790c252f..22d9ffdee11 100644
    --- a/htdocs/langs/bn_BD/main.lang
    +++ b/htdocs/langs/bn_BD/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Closed
     Closed2=Closed
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Update
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Other
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tools
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/bn_BD/other.lang b/htdocs/langs/bn_BD/other.lang
    index 8ef8cc30090..021bfe65985 100644
    --- a/htdocs/langs/bn_BD/other.lang
    +++ b/htdocs/langs/bn_BD/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Description
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/bn_BD/paybox.lang b/htdocs/langs/bn_BD/paybox.lang
    index 306aaeec047..0d35ac440fa 100644
    --- a/htdocs/langs/bn_BD/paybox.lang
    +++ b/htdocs/langs/bn_BD/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/bn_BD/projects.lang b/htdocs/langs/bn_BD/projects.lang
    index e04f28689a1..d895f477bd4 100644
    --- a/htdocs/langs/bn_BD/projects.lang
    +++ b/htdocs/langs/bn_BD/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/bn_BD/propal.lang b/htdocs/langs/bn_BD/propal.lang
    index 2a22384d1c5..281a95fc095 100644
    --- a/htdocs/langs/bn_BD/propal.lang
    +++ b/htdocs/langs/bn_BD/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Draft
    -PropalStatusValidatedShort=Validated
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Closed
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/bn_BD/website.lang b/htdocs/langs/bn_BD/website.lang
    index 0f0673e3716..6ae08738815 100644
    --- a/htdocs/langs/bn_BD/website.lang
    +++ b/htdocs/langs/bn_BD/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/bs_BA/admin.lang b/htdocs/langs/bs_BA/admin.lang
    index 744c60fdf7d..e6aba58b947 100644
    --- a/htdocs/langs/bs_BA/admin.lang
    +++ b/htdocs/langs/bs_BA/admin.lang
    @@ -1,7 +1,7 @@
     # Dolibarr language file - Source file is en_US - admin
     Foundation=Fondacija
     Version=Verzija
    -Publisher=Publisher
    +Publisher=Izdavač
     VersionProgram=Verzija programa
     VersionLastInstall=Prvobitno instalirana verzija
     VersionLastUpgrade=Verzija zadnje nadogradnje
    @@ -10,9 +10,9 @@ VersionDevelopment=Razvoj
     VersionUnknown=Nepoznato
     VersionRecommanded=Preporučeno
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Rukovatelj snimanje sesija
     SessionSavePath=Lokalizacija snimanja sesije
     PurgeSessions=Očistiti sesije
     ConfirmPurgeSessions=Da li zaista želite očistiti sve sesije? Ovo će uzrokovati odjavu svih korisnika (osim Vas).
    -NoSessionListWithThisHandler=Rukovatelj snimanja sesija konfigurisan u PHP-u ne dopušta da se prikažu sve pokrenute sesije.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Zaključaj nove konekcije
    -ConfirmLockNewSessions=Da li ste sigurni da želite onemogućiti bilo koju novu Dolibarr konekciju sebi. Nakon toga samo će korisnik <b>%s</b> moći se prijaviti.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Ukloni zaključavanje veze
     YourSession=Vaša sesija
    -Sessions=Korisničke sesije
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Vanjski korisnik
     InternalUsers=Interni korisnici
     ExternalUsers=Vanjski korisnici
     GUISetup=Prikaz
    -SetupArea=Podrčje za postavke
    +SetupArea=Postavke
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Forma za testiranje uploada fajlova (prema postavkama)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kod ne može sadržavati vrijednost 0
     DisableJavascript=Onemogući JavaScript i Ajax funkcije (preporučeno za slijepe osobe ili tekstualne preglednike)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Broj znakova za početak pretrage: %s
     NotAvailableWhenAjaxDisabled=Nije moguće kada je Ajax isključen
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Pretpregled nije moguć
     ThemeCurrentlyActive=Trenutno aktivna tema
     CurrentTimeZone=Vremenska zona PHP (servera)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Razmak
     Table=Tabela
     Fields=Polja
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Aktivan
     SetupShort=Postavke
     OtherOptions=Druge opcije
    -OtherSetup=Ostale postavke
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Odvajanje decimala
     CurrentValueSeparatorThousand=Odvajanje hiljada
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parametar %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Automatsko otkrivanje (jezik preglednika)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Novo
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Postavke modula
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Primjeri sa trenutnim postavkama
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Šifra
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Upozorenje, ova vrijednost se može prebrisati posebnim postavkama korisnika (svaki korisnik može postaviti svoj clicktodial URL)
     ExternalModule=Eksterni moduli - Instalirani u direktorij %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Korisnici i grupe
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Treće stranke
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Poslovno
     Module2Desc=Commercial management
     Module10Name=Računovodstvo
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Prijedlozi
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Fakture
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Dobavljači
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Usluge
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Pošiljke
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Članovi
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Upravljanje bookmark-ima
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donacije
     Module700Desc=Donation management
     Module770Name=Izvještaj o troškovima
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=Kadrovska služba
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Prodajna mjesta
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Prodajna mjesta
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resursi
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Čitanje trećih stranaka vezanih za korisnika
     Permission122=Kreiranje/mijenjati trećih strana vezanih sa korisnika
     Permission125=Brisanje trećih stranaka vezanih za korisnika
     Permission126=Izvoz trećih stranaka
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=Država/Provincija
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Uslovi plaćanja
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Šabloni emaila
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Jedinice
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Postavke snimljene
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Stopa
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Kompanija/organizacija
    +CompanyIds=Company/Organization identities
     CompanyName=Naziv
     CompanyAddress=Adresa
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Upozorenja
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Dopunski atributi
     ExtraFieldsLines=Dopunski atributi (tekstovi)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Dopunski atributi (treća stranka)
    -ExtraFieldsContacts=Dopunski atributi (kontakt/adresa)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Dopunski atributi (član)
     ExtraFieldsMemberType=Dopunske atributa (tip član)
     ExtraFieldsCustomerInvoices=Dopunski atributi (fakture)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Direktorij
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=Možete koristiti driver %s koji je trenutno najbolji.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=Imate samo %s proizvoda/usluga u bazu podataka. To ne zahtijeva posebne optimizacije.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Optimizacija pretraživanja
    -YouHaveXProductUseSearchOptim=Imate %s proizvod u bazu podataka. Trebalo bi dodati konstantu PRODUCT_DONOTSEARCH_ANYWHERE na 1 u Početna-Postavke-Ostalo, ograničavate pretragu na početak  što je moguće za baze podataka za korištenje indeksa i trebali bi dobiti hitnu reakciju.
    -BrowserIsOK=Vi koristite web browser %s. Ovaj browser je ok za sigurnost i performanse.
    -BrowserIsKO=Vi koristite web browser %s. Poznato je da je ovaj broswer loš izbor za sigurnost, performanse i pouzdanost. Mi preporučujemo da koristite Firefox, Chrome, Opera i Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache je učitan.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Primjer: +2 (popuniti samo ako imate problema sa ofsetima vremenskih zona)
     GetBarCode=Preuzeti barkod
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Knjižna obavijest
     CreditNotes=Knjižne obavijesti
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Globalni parametri
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Naziv
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Izvještaj o perfomansama postavki/optimizacije
    -YouMayFindPerfAdviceHere=Na ovoj stranici ćete pronaći neke provjere ili savjete vezane za performanse.
    -NotInstalled=Nije instalirano, tako da vaš server nije usporen ovim.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Aplikativni cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=OPCode cache nije pronađen. Možda koristite drugu OPCode cache pored XCache ili eAccelerator (dobro), možda nemate OPCode cache (jako loše).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache za statičke resurse (css, img, javascript)
     FilesOfTypeCached=Fajlovi tipa %s su keširani na HTTP serveru
     FilesOfTypeNotCached=Fajlovi tipa %s nisu keširani na HTTP serveru
     FilesOfTypeCompressed=Fajlovi tipa %s su kompresovani od strane HTTP servera
     FilesOfTypeNotCompressed=Fajlovi tipa %s nisu kompresovani od strane HTTP servera
     CacheByServer=Keširanje na serveru
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Keširanje u browser-u
     CompressionOfResources=Kompresija HTTP odgovora
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Defaultni tip barkoda koji se koristi za treće stranke
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Za
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Na isporuci
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Prodajna mjesta
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Modul za numerisanje zadataka
     TaskModelModule=Model dokumenta za izvještaj o zadacima
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1735,8 +1750,8 @@ MailToSendInvoice=Fakture kupaca
     MailToSendShipment=Pošiljke
     MailToSendIntervention=Intervencije
     MailToSendSupplierRequestForQuotation=Quotation request
    -MailToSendSupplierOrder=Purchase orders
    -MailToSendSupplierInvoice=Vendor invoices
    +MailToSendSupplierOrder=Narudžbe za nabavku
    +MailToSendSupplierInvoice=Fakture prodavača
     MailToSendContract=Ugovori
     MailToThirdparty=Subjekti
     MailToMember=Članovi
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/bs_BA/banks.lang b/htdocs/langs/bs_BA/banks.lang
    index f15fe0c444a..f5a842294e5 100644
    --- a/htdocs/langs/bs_BA/banks.lang
    +++ b/htdocs/langs/bs_BA/banks.lang
    @@ -7,7 +7,7 @@ BankName=Naziv banke
     FinancialAccount=Račun
     BankAccount=Žiro račun
     BankAccounts=Žiro računi
    -BankAccountsAndGateways=Bankovni računi | Portali
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Prikaži račun
     AccountRef=Finansijski račun ref
     AccountLabel=Naziv za finansijski račun
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Adresa računa
     BankAccountCountry=Zemlja računa
     BankAccountOwner=Ime vlasnika računa
     BankAccountOwnerAddress=Adresa vlasnika računa
    -RIBControlError=Provjera integriteta vrijednosti neuspješna. To znači da podaci za ovaj broj računa nisu tačni ili nepotpuni (provjerite državu, brojeve i IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Kreiraj račun
     NewBankAccount=Novi račun
     NewFinancialAccount=Novi finansijski račun
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Transakcije za izmirivanje
     Conciliable=Može se izmiriti
     Conciliate=Izmiriti
     Conciliation=Podmirivanje
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Kašnjenje s izmirivanjem
     IncludeClosedAccount=Uključiti zatvorene račune
     OnlyOpenedAccount=Samo otvoreni računi
    @@ -104,7 +105,7 @@ SocialContributionPayment=Plaćanje socijalnog/fiskalnog poreza
     BankTransfer=Prenos između banaka
     BankTransfers=Prenosi između banaka
     MenuBankInternalTransfer=Interni transfer
    -TransferDesc=Prebacivanje s jednog računa na drugi, Dolibarr zapisuje dva unosa (potražuje račun sa kojeg se prenosi i duguje ciljni račun. Isti iznos (osim predznaka), oznaka i datum će se koristiti za ovu transakciju)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Od strane
     TransferTo=Prema
     TransferFromToDone=Transfer sa <b>%s</b> na <b>%s</b> u iznosu od <b>%s</b> %s je zapisan.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Da li ste sigurni da želite obrisati ovaj izvod od č
     BankChecks=Bankovni ček
     BankChecksToReceipt=Čekovi koji čekaju na depozit
     ShowCheckReceipt=Prikaži priznanicu depozita čeka
    -NumberOfCheques=Broj čeka
    +NumberOfCheques=No. of check
     DeleteTransaction=Obriši unos
     ConfirmDeleteTransaction=Da li ste sigurni da želite obrisati ovaj unos?
     ThisWillAlsoDeleteBankRecord=Ovim će se također obrisati i generisana bankovna transakcija
    @@ -135,8 +136,8 @@ BankTransactionLine=Bankovna transakcija
     AllAccounts=All bank and cash accounts
     BackToAccount=Nazad na račun
     ShowAllAccounts=Pokaži za sve račune
    -FutureTransaction=Transakcija u budućnosti. Ne može se izmiriti.
    -SelectChequeTransactionAndGenerate=Izaberite/filtrirajte čekove za uključivanje u priznanicu za depozit i kliknite na "Kreiraj".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Izaberite izvod iz banke za izmirivanje. Koristite brojevne vrijednosti koje se mogu sortirati: YYYYMM ili YYYYMMDD
     EventualyAddCategory=Na kraju, navesti kategoriju u koju će se svrstati zapisi
     ToConciliate=Za izmirenje?
    @@ -153,7 +154,7 @@ RejectCheckDate=Datum vraćanja čeka
     CheckRejected=Ček vraćen
     CheckRejectedAndInvoicesReopened=Ček vraćen i fakture ponovno otvorene
     BankAccountModelModule=Šabloni dokumenata za bankovne račune
    -DocumentModelSepaMandate=Šablon za SEPA mandat. Koristan je samo za evropske zemlje članice EU.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Šablon za štampanje stranice sa BAN podacima.
     NewVariousPayment=Novo ostalo plaćanje
     VariousPayment=Razna plaćanja
    @@ -162,4 +163,5 @@ ShowVariousPayment=Pokaži ostala plaćanja
     AddVariousPayment=Dodaj ostala plaćanja
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Vaš SEPA mandat
    -FindYourSEPAMandate=Ovo je vaš SEPA mandat za potvrđivanje vaše kompanije za izradu zahtjeva za direktno plaćanje vašoj banci. Vratite banci potpisan (skeniran potpisan dokument) ili ga pošaljite poštom
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/bs_BA/bills.lang b/htdocs/langs/bs_BA/bills.lang
    index e81b65d16ee..688a74a442e 100644
    --- a/htdocs/langs/bs_BA/bills.lang
    +++ b/htdocs/langs/bs_BA/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Predračun
     InvoiceProFormaDesc=<b>Predračun</b> izgleda isto kao račun, ali nema računovodstvene vrijednosti.
     InvoiceReplacement=Zamjenska faktura
     InvoiceReplacementAsk=Zamjenska faktura za fakturu
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Knjižna obavijest
     InvoiceAvoirAsk=Knjižna obavijest za korekciju računa
    -InvoiceAvoirDesc=<b>Knjižna obavijest</b> je negativni račun, koji se koristi za rješavanje činjenice da računa ima iznos različit od iznosa koji je zaista plaćen (jer je kupac platio greškom više, ili neće da plati ostatak jer je vratio neke robe naprimjer).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=u valuti faktura
     PaidBack=Uplaćeno nazad
     DeletePayment=Obriši uplatu
     ConfirmDeletePayment=Da li ste sigurni da želite obrisati ovu uplatu?
    -ConfirmConvertToReduc=Da li želite ovo %s pretvoriti u apsolutni popust ?<br>Iznos će biti spremljen među sve popuste i može se koristiti kao poput za trenutnu ili neke buduće fakture za ovog kupca.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Uplate dobavljača
     ReceivedPayments=Primljene uplate
     ReceivedCustomersPayments=Primljene uplate od kupaca
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Primljene uplate od kupaca za potvrditi
     PaymentsReportsForYear=Izvještaji o uplatama za %s
     PaymentsReports=Izvještaji o uplatama
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Uslovi plaćanja
     PaymentAmount=Iznos plaćanja
     ValidatePayment=Potvrditi uplatu
     PaymentHigherThanReminderToPay=Uplata viša od zaostalog duga
    -HelpPaymentHigherThanReminderToPay=Upozorenje, plaćanje iznosa jedne ili više faktura je veće od ostatka duga. <br> Izmijenite vaš unos, u suprotnom potvrdite i napravite knjižnu obavijest za višak primljen za svaku više plaćenu fakturu.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Označi kao 'Plaćeno'
     ClassifyPaidPartially=Označi kao 'Djelimično plaćeno'
     ClassifyCanceled=Označi kao 'Otkazano'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Zaključeno (neplaćeno)
     BillStatusClosedPaidPartially=Plaćeno (djelimično)
     BillShortStatusDraft=Uzorak
     BillShortStatusPaid=Plaćeno
    -BillShortStatusPaidBackOrConverted=Refundirano ili preplaćeno
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Plaćeno
     BillShortStatusCanceled=Otkazano
     BillShortStatusValidated=Potvrđeno
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Nije vraćeno
     BillShortStatusClosedUnpaid=Zaključeno
     BillShortStatusClosedPaidPartially=Plaćeno (djelimično)
     PaymentStatusToValidShort=Za potvrdu
    -ErrorVATIntraNotConfigured=PDV broj nije definisan
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Nema definisanog načina plaćanja. Idite u postavke modula faktura da popravite ovo.
     ErrorCreateBankAccount=Napravite bankovni račun, zatim idite u panel postavki modula računa za definiranje načina plaćanja
     ErrorBillNotFound=Faktura %s ne postoji
    -ErrorInvoiceAlreadyReplaced=Greška, pokušavate odobriti fakturu za zamjenu fakture %s. Ali je ona već zamijenjena fakturom %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Greška, popust se već koristi
     ErrorInvoiceAvoirMustBeNegative=Greška, na popravljenem računu mora biti negativni iznos
     ErrorInvoiceOfThisTypeMustBePositive=Greška, ovaj tip fakture mora imati pozitivnu količinu
     ErrorCantCancelIfReplacementInvoiceNotValidated=Greška, ne možete poništiti fakturu koju je zamijenila druga faktura a koja je još u statusu nacrta
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Od
     BillTo=Račun za
     ActionsOnBill=Aktivnosti na fakturi
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=Ova faktura nije potpuno plaćena. Koji su razlozi da zatvorite ovu fakturu?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Loš kupac
     ConfirmClassifyPaidPartiallyReasonProductReturned=Proizvodi djelimično vraćeni
     ConfirmClassifyPaidPartiallyReasonOther=Iznos otkazan zbog drugog razloga
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Ovaj izbor je moguć ako faktura sadrži odgovarajući komentar. (Primjer «Imate pravo na odbitak, samo ako je plaćen porez koji odgovara cijeni»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=U nekim državama je ovaj izbor moguć samo ako faktura sadrži ispravne bilješke
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Koristiti ovaj izbor samo ako nije drugi nije zadovoljavajući
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Loš kupac</b> je kupac koji je odbija platiti svoj dug.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ovaj izbor se koristi kada uplata nije završena zbog povrata nekih proizvoda
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Koristite ovaj izbor ako bilo koji drugi ne odgovara, naprimjer u sljedećoj situaciji:<br>- plaćanje nije izvršeno jer su neki proizvodi vraćeni<br>- iznos je bio reklamiran, jer nije obračunat popust<br>U svim slučajevima, iznos koji je reklamiran mora biti ispravljen u računovodstvenom sistemu kreiranjem knjižne obavijesti.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Ostalo
     ConfirmClassifyAbandonReasonOtherDesc=Ovaj izbor se koristi u svim drugih slučajevima. Naprimjer, zbog toga sto planiranje kreirati zamjensku fakturu.
     ConfirmCustomerPayment=Da li odobravate unos ovo plaćanja za <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Da li odobravate unos ovo plaćanja za <b>%s</b> %s?
     ConfirmValidatePayment=Da li ste sigurni da želite odobriti ovo plaćanje? Poslije toga neće biti moguće izmjene ovog plaćanja.
     ValidateBill=Potvrdi fakturu
     UnvalidateBill=Otkaži potvrdu fakture
    -NumberOfBills=Broj faktura
    -NumberOfBillsByMonth=Broj faktura po mjesecu
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Iznos faktura
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Iznos faktura po mjesecu (bez PDV-a)
     ShowSocialContribution=Pokaži doprinose i poreze
     ShowBill=Prikaži fakturu
    @@ -260,9 +262,9 @@ Repeatables=Šabloni
     ChangeIntoRepeatableInvoice=Pretvori u šablonsku fakturu
     CreateRepeatableInvoice=Napravi šablonsku fakturu
     CreateFromRepeatableInvoice=Napravi od šablonske fakture
    -CustomersInvoicesAndInvoiceLines=Fakture kupaca i tekstovi faktura
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Faktura kupaca i uplate
    -ExportDataset_invoice_1=Lista faktura kupaca i tekstovi faktura
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Faktura kupaca i uplate
     ProformaBill=Predračun:
     Reduction=Snižavanje
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Adresa fakture
    -HelpEscompte=Ovaj popust je odobren za kupca jer je isplata izvršena prije roka.
    -HelpAbandonBadCustomer=Ovaj iznos je otkazan (kupac je loš kupac) i smatra se kao potencijalni gubitak.
    -HelpAbandonOther=Ovaj iznos je otkazan jer je došlo do greške (naprimjer pogrešan kupac ili faktura zamijenjena sa nekom drugom)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=ID uplate
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Nijedna faktura nije odabrana
     CloneInvoice=Kloniraj fakturu
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Akcija onemogućena jer faktura je zamijenjena
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Broj uplate
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Razdvoji popust na dva
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Unesi iznos za svaki od dva dijela:
    -TotalOfTwoDiscountMustEqualsOriginal=Ukupno za dva nova popusta mora biti jednako iznosu originalnog popusta.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Povezana faktura
     RelatedBills=Povezane fakture
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Povezane fakture dobavljača
     LatestRelatedBill=Posljednje povezane fakture
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Ček
     PaymentTypeShortCHQ=Ček
     PaymentTypeTIP=Akreditiv (Akreditivno pismo)
     PaymentTypeShortTIP=Plaćanje akreditivom
    -PaymentTypeVAD=Elektronska uplata
    -PaymentTypeShortVAD=Elektronska uplata
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Povlačenje banke
     PaymentTypeShortTRA=Nacrt
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Podaci o banki
     BankCode=Kod banke
    -DeskCode=Kod blagajne
    +DeskCode=Office code
     BankAccountNumber=Kod računa
    -BankAccountNumberKey=Ključ
    +BankAccountNumberKey=Check digits
     Residence=Nalog za plaćanje
    -IBANNumber=IBAN broj
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT broj
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Plaćanje transferom na žiro računu
     VATIsNotUsedForInvoice=* Nije primjenjiv PDV art-293B CGI
     LawApplicationPart1=Primjenom zakon 80.335 of 12/05/80
     LawApplicationPart2=roba ostaju vlasništvo od 
    -LawApplicationPart3=prodavač do potpunog unovčavanja
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=njihove vrijednosti.
     LimitedLiabilityCompanyCapital=d.o.o. s kapitalom
     UseLine=Primijeniti
    @@ -463,7 +465,7 @@ Cheques=Čekovi
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=Ova %s je konvertirana u %s
    -UsBillingContactAsIncoiveRecipientIfExist=Za pošiljanje računa uporabi naslov kontakta za račune pri kupcu namesto naslova partnerja
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Prikaži sve neplaćene fakture
     ShowUnpaidLateOnly=Prikaži samo zakašnjele neplaćene fakture
     PaymentInvoiceRef=Faktura za plaćanje %s
    @@ -474,21 +476,22 @@ Reported=Odgođeno
     DisabledBecausePayments=Nije moguće jer ima nekoliko uplata
     CantRemovePaymentWithOneInvoicePaid=Ne može se obrisati uplata jer ima bar jedna faktura klasifikovana kao plaćena
     ExpectedToPay=Očekivano plaćanje
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Plaćeno ovom uplatom
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Sve fakture bez preostalog iznosa za uplatu će atuomatski biti zatvorene uz status "Plaćeno".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Platiti
     ToMakePaymentBack=Povrat uplate
     ListOfYourUnpaidInvoices=Lista neplaćenih faktura
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Carinski pečat
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Predloga računa Crabe. Predloga kompletnega računa (Podpora PDV opcije, popusti, pogoji plačila, logo, itd...)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=PDF šablon Crevette za račune. Kompletan šablon za situiranje privremenih situacija
     TerreNumRefModelDesc1=Predlaga številko v formatu %syymm-nnnn za standardne račune in %syymm-nnnn za dobropise kjer je yy leto, mm mesec in nnnn zaporedna broj brez presledkov in večja od 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Red prethodno fakturisanog ne može biti veće ili jedn
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Obriši šablon fakture
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Faktura obrisana
    diff --git a/htdocs/langs/bs_BA/cashdesk.lang b/htdocs/langs/bs_BA/cashdesk.lang
    index ccba7f982f2..12d0f2f3c11 100644
    --- a/htdocs/langs/bs_BA/cashdesk.lang
    +++ b/htdocs/langs/bs_BA/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Prikaži kompaniju
     ShowStock=Prikaži skladište
     DeleteArticle=Klikni da uklonis ovaj proizvod
     FilterRefOrLabelOrBC=Traži (Ref/Oznaku)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Prodajna mjesta
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/bs_BA/commercial.lang b/htdocs/langs/bs_BA/commercial.lang
    index a48ed15e580..d2bc91d438d 100644
    --- a/htdocs/langs/bs_BA/commercial.lang
    +++ b/htdocs/langs/bs_BA/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Status mogućeg klijenta
     DraftPropals=Nacrti poslovnih prijedloga
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/bs_BA/companies.lang b/htdocs/langs/bs_BA/companies.lang
    index a0420a9aace..b042a812045 100644
    --- a/htdocs/langs/bs_BA/companies.lang
    +++ b/htdocs/langs/bs_BA/companies.lang
    @@ -5,14 +5,14 @@ SelectThirdParty=Odaberite subjekt
     ConfirmDeleteCompany=Da li ste sigurni da želite obrisati ovu kompaniju i sve podatke vezane za istu?
     DeleteContact=Obrisati kontakt/uslugu
     ConfirmDeleteContact=Da li ste sigurni da želite obrisati ovaj kontakt i sve podatke vezane za istog?
    -MenuNewThirdParty=Novi subjekt
    -MenuNewCustomer=Novi kupac
    -MenuNewProspect=Novi mogući klijent
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Novo fizičko lice
    -NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    -CreateDolibarrThirdPartySupplier=Create a third party (vendor)
    +NewCompany=Nova kompanija (mogući klijent, kupac, prodavač)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
    +CreateDolibarrThirdPartySupplier=Napravi subjekt (prodavač)
     CreateThirdPartyOnly=Napravi novi subjekt
     CreateThirdPartyAndContact=Napravi subjekt + podređeni kontakt
     ProspectionArea=Područje za moguće kupce
    @@ -25,22 +25,22 @@ ThirdPartyContact=Kontakt/Adresa subjekta
     Company=Kompanija
     CompanyName=Ime kompanije
     AliasNames=Nadimak (komercijalni, trgovačkim, ...)
    -AliasNameShort=Nadimak
    +AliasNameShort=Alias Name
     Companies=Kompanije
    -CountryIsInEEC=Zemlja je unutar Evropske ekonomske zajednice
    -ThirdPartyName=Ime subjekta
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Email treće strane
    -ThirdParty=Subjekt
    -ThirdParties=Subjekti
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Mogući klijenti
     ThirdPartyProspectsStats=Mogući klijenti
     ThirdPartyCustomers=Kupci
     ThirdPartyCustomersStats=Kupci
     ThirdPartyCustomersWithIdProf12=Kupci sa %s ili %s
    -ThirdPartySuppliers=Vendors
    -ThirdPartyType=Tip subjekta
    +ThirdPartySuppliers=Prodavači
    +ThirdPartyType=Type of company
     Individual=Fizičko lice
    -ToCreateContactWithSameName=Automatski pravi kontakt/adresu sa istim informacijama kao i subjekt ispod. U većini slučajeva, čak i kada je subjekt fizička osoba, samo pravljenje subjekta je dovoljno.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Matična kompanija
     Subsidiaries=Podružnice
     ReportByMonth=Izvještaj po mjesecima
    @@ -75,13 +75,13 @@ Zip=Poštanski broj
     Town=Grad
     Web=Web
     Poste= Pozicija
    -DefaultLang=Defaultni jezik
    -VATIsUsed=Porez na promet je obračunat
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Porez na promet nije obračunat
     CopyAddressFromSoc=Popuni adresu sa adresom subjekta
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
    +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Treća strana nije niti dobavljač ni kupac, popusti nisu dostupni
     PaymentBankAccount=Bankovni račun za plaćanje
     OverAllProposals=Prijedlozi
     OverAllOrders=Narudžbe
    @@ -99,9 +99,9 @@ LocalTax2ES=IRPF
     TypeLocaltax1ES=Vrsta RE
     TypeLocaltax2ES=Vrsta IRPF
     WrongCustomerCode=Nevažeća šifra kupca
    -WrongSupplierCode=Vendor code invalid
    +WrongSupplierCode=Nevažeća šifra prodavača
     CustomerCodeModel=Model šifre kupca
    -SupplierCodeModel=Vendor code model
    +SupplierCodeModel=Model šifre prodavača
     Gencod=Barkod
     ##### Professional ID #####
     ProfId1Short=ID broj 1
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=ID poreza na promet
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Porezni ID
     VATIntraSyntaxIsValid=Sintaksa je nevažeća
     VATReturn=Povrat PDV
    @@ -267,15 +267,15 @@ Prospect=Mogući klijent
     CustomerCard=Kartica kupca
     Customer=Kupac
     CustomerRelativeDiscount=Relativni popust kupca
    -SupplierRelativeDiscount=Relative vendor discount
    +SupplierRelativeDiscount=Relativni popust prodavača
     CustomerRelativeDiscountShort=Relativni popust
     CustomerAbsoluteDiscountShort=Fiksni popust
     CompanyHasRelativeDiscount=Ovaj kupca ima defaultni popust od <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Ovaj kupac nema relativnog popusta po defaultu
     HasRelativeDiscountFromSupplier=Imate ugovoreni popust od <b>%s%%</b> od strane ovog dobavljača
     HasNoRelativeDiscountFromSupplier=Nemate ugovoreni relativni popust od ovog dobavljača
    -CompanyHasAbsoluteDiscount=Ovaj kupac ima dostupno odobrenje (Knjižne obavijesti ili avansno plaćanje) za <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=Ovaj kupac ima dostupan diskont (komercijalni, uplaćen avans) za <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Ovaj kupac i dalje ima knjižno odobrenje za <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=Nemate dostupan diskontni popust od ovog dobavljača
     HasAbsoluteDiscountFromSupplier=Imate dostupne popuste (knjižne obavjesti ili avanse) od <b>%s</b> %s od strane ovog dobavljača
    @@ -284,10 +284,10 @@ HasCreditNoteFromSupplier=Imate knjižne obavijesti od <b>%s</b> %s od strane ov
     CompanyHasNoAbsoluteDiscount=Ovaj kupac nema zasluga za popust
     CustomerAbsoluteDiscountAllUsers=Apsolutni popusti kupcima (odobreni od svih korisnika)
     CustomerAbsoluteDiscountMy=Apsolutni popusti kupcima (koje ste vi odobrili)
    -SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
    -SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
    +SupplierAbsoluteDiscountAllUsers=Apsolutni popusti prodavača (uneseni od strane svih korisnika)
    +SupplierAbsoluteDiscountMy=Apsolutni popusti prodavača (uneseni od strane sebe)
     DiscountNone=Ništa
    -Supplier=Dobavljač
    +Supplier=Vendor
     AddContact=Napravi kontakt
     AddContactAddress=Napravi kontakt/adresu
     EditContact=Uredi kontakt
    @@ -303,22 +303,22 @@ AddThirdParty=Napravi novi subjekt
     DeleteACompany=Obrisati kompaniju
     PersonalInformations=Osobni podaci
     AccountancyCode=Računovodstveni račun
    -CustomerCode=Šifra kupca
    -SupplierCode=Vendor code
    -CustomerCodeShort=Šifra kupca
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Šifra kupca, jedinstvena za sve kupce
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Potrebno ako je subjekt kupac ili mogući klijent
    -RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Porvjera valjanosti se kontroliše modulom
    -ThisIsModuleRules=Ovo su pravila za ovaj modul
    +RequiredIfSupplier=Potrebno ako je subjekt prodavač
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Mogući klijent za kontaktirati
     CompanyDeleted=Kompanija"%s" obrisana iz baze podataka
     ListOfContacts=Lista kontakta/adresa
     ListOfContactsAddresses=Lista kontakta/adresa
    -ListOfThirdParties=Lista subjekata
    -ShowCompany=Pokaži subjekt
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Prikaži kontakt
     ContactsAllShort=Svi (bez filtera)
     ContactType=Tip kontakta
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Ovaj kontakt nije kontakt za bilo koji poslovni prijedlo
     NoContactForAnyContract=Ovaj kontakt nije kontakt za bilo koji ugovor
     NoContactForAnyInvoice=Ovaj kontakt nije kontakt za bilo koju fakturu
     NewContact=Novi kontakt
    -NewContactAddress=Novi kontakt/adresa
    +NewContactAddress=New Contact/Address
     MyContacts=Moji kontakti
     Capital=Kapital
     CapitalOf=Kapital od %s
     EditCompany=Uredi kompaniju
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Provjeri
    -VATIntraCheckDesc=Link <b>%s</b> dozvoljava upit za evopski PDV servis za provjeru. Potrebno je imati pristup internetu na serveru za ovu uslugu.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Provjeri PDV broj na stranici Evropske komisije
    -VATIntraManualCheck=Također možete ručno provjeriti sa evropske web stranice <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Provjera nije moguća. Servis za provjeru nije naveden od stran države članice (%s).
    -NorProspectNorCustomer=Niti mogući klijent, niti kupac
    -JuridicalStatus=Pravni status
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Osoblje
     ProspectLevelShort=Potencijal
     ProspectLevel=Potencijal mogućeg klijenta
    @@ -387,31 +387,31 @@ ExportCardToFormat=Izvod podataka u formatu
     ContactNotLinkedToCompany=Kontakt nije povezan sa nekim od subjekata
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=Nema Dolibarr pristupa
    -ExportDataset_company_1=Subjekti (kompanije/fondacije/fizička lica) i svojstva
    -ExportDataset_company_2=Kontakti i osobine
    -ImportDataset_company_1=Subjekti (kompanije/fondacije/fizička lica) i svojstva
    -ImportDataset_company_2=Kontakti/adrese (trećih strana ili ne) i osobine
    -ImportDataset_company_3=Bankovni računi trećih strana
    -ImportDataset_company_4=Predstavnici prodaje/treće strane (dodavanje korisnika predstavnika prodaje kompanijama)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Visina cijene
     DeliveryAddress=Adresa za dostavu
     AddAddress=Dodaj adresu
    -SupplierCategory=Vendor category
    +SupplierCategory=Kategorija prodavača
     JuridicalStatus200=Nezavisni
     DeleteFile=Obriši fajl
     ConfirmDeleteFile=Jeste li sigurni da želite obrisati ovaj fajl?
     AllocateCommercial=Dodijeljen predstavniku prodaje
     Organization=Organizacija
    -FiscalYearInformation=Informacije o fiskalnoj godini
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Početni mjesec fiskalne godine
    -YouMustAssignUserMailFirst=Morate najprije napraviti email za ovog korisnika da biste mogli dodati email notifikacije
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=Da bi mogli dodati e-mail obavještenja, prvo morate definirati kontakte s važećom e-poštom za subjekte
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Lista mogućih klijenata
    -ListCustomersShort=Lista kupaca
    -ThirdPartiesArea=Područje za subjekte i kontakte
    -LastModifiedThirdParties=Zadnjih %s izmijenjenih subjekata
    -UniqueThirdParties=Ukupno unikatnih subjekata
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Otvori
     ActivityCeased=Zatvoreno
     ThirdPartyIsClosed=Subjekat je zatvoren
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Trenutni neplaćeni račun
     OutstandingBill=Max. za neplaćeni račun
     OutstandingBillReached=Dostignut maksimum za neplaćene račune
     OrderMinAmount=Najmanja količina za naručiti
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Ova šifra je slobodna. Ova šifra se može mijenjati bilo kad.
     ManagingDirectors=Ime menadžer(a) (CEO, direktor, predsjednik...)
     MergeOriginThirdparty=Umnoži subjekta (subjekt kojeg želite obrisati)
     MergeThirdparties=Spoji subjekte
    -ConfirmMergeThirdparties=Da li ste sigurni da želite spojiti ovaj subjekt u trenutno prikazani? Svi povezani objekti (fakture, narudžbe, ...) će biti premještene trenutnom subjektu, a zatim će prethodni subjekt biti obrisan.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Treće strane su spojene
     SaleRepresentativeLogin=Pristup za predstavnika prodaje
     SaleRepresentativeFirstname=Ime predstavnika prodaje
     SaleRepresentativeLastname=Prezime predstavnika prodaje
     ErrorThirdpartiesMerge=Nastala je greška pri brisanju treće strane. Molimo vas da provjerite zapisnik. Izmjene su vraćene.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/bs_BA/dict.lang b/htdocs/langs/bs_BA/dict.lang
    index f894c39c279..01423e26514 100644
    --- a/htdocs/langs/bs_BA/dict.lang
    +++ b/htdocs/langs/bs_BA/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Čuo Island i McDonald
     CountryVA=Sveta Stolica (Vatikan State)
     CountryHN=Honduras
     CountryHK=Hongkong
    -CountryIS=Island
    +CountryIS=Iceland
     CountryIN=Indija
     CountryID=Indonezija
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Severna Koreja
     CountryKR=Južna Koreja
     CountryKW=Kuvajt
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Letonija
     CountryLB=Liban
    @@ -160,7 +160,7 @@ CountryMD=Moldavija
     CountryMN=Mongolija
     CountryMS=Monserrat
     CountryMZ=Mozambik
    -CountryMM=Birma (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibija
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad i Tobago
     CountryTR=Turska
     CountryTM=Turkmenistan
    -CountryTC=Turci i Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukrajina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauricijke rupije
     CurrencySingMUR=Mauricijska rupija
     CurrencyNOK=Norveške krune
    -CurrencySingNOK=Norveška kruna
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tuniski dinari
     CurrencySingTND=Tuniski dinar
     CurrencyUSD=Američki dolari
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Riječ usta
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Zaposlenik
     DemandReasonTypeSRC_SPONSORING=Pokroviteljstvo
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/bs_BA/ecm.lang b/htdocs/langs/bs_BA/ecm.lang
    index 5b40d9734ed..ae71bd9dbcc 100644
    --- a/htdocs/langs/bs_BA/ecm.lang
    +++ b/htdocs/langs/bs_BA/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Broj dokumenata u direktoriju
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Direktorij
     ECMSectionManual=Ručni direktorij
     ECMSectionAuto=Automatski direktorij
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Dokumenti vezani za projekte
     ECMDocsByUsers=Dokumenti povezani s korisnicima
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Nema kreiranih direktorija
     ShowECMSection=Prikaži direktorij
     DeleteSection=Ukloni direktorij
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/bs_BA/errors.lang b/htdocs/langs/bs_BA/errors.lang
    index 128da908a0f..6c7a2b80016 100644
    --- a/htdocs/langs/bs_BA/errors.lang
    +++ b/htdocs/langs/bs_BA/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/bs_BA/help.lang b/htdocs/langs/bs_BA/help.lang
    index 1534da0d604..66b83ac1a4a 100644
    --- a/htdocs/langs/bs_BA/help.lang
    +++ b/htdocs/langs/bs_BA/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online uživo / daljinska podrška
     OtherSupport=Druge podrške
     ToSeeListOfAvailableRessources=Za kontaktirati/vidjeti dosupne resurse:
     HelpCenter=Centar za pomoć
    -DolibarrHelpCenter=Dolibarr pomoć u centri za podršku
    -ToGoBackToDolibarr=U suprotnom, klikni <a href="%s">ovdje za korištenje Dolibarr</a>
    -TypeOfSupport=Izvorna podrška
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Zajednica (besplatno)
     TypeSupportCommercial=Poslovno
     TypeOfHelp=Tip
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efikasnost
     TypeHelpOnly=Samo pomoć
     TypeHelpDev=Pomoć + razvoj
    -TypeHelpDevForm=Pomoć + razvoj + formiranje
    -ToGetHelpGoOnSparkAngels1=Neke kompanije mogu omogućiti brzu (nekada i trenutnu) i efikasniju online podršku tako što preuzmu kontrolu nad vašim računarom. Takvu pomoć možete naći na <b>%s</b> web sajtu:
    -ToGetHelpGoOnSparkAngels3=Također možete otići na listu svih dostupnik trenera za Dolibarr, za ovo kliknite na dugme
    -ToGetHelpGoOnSparkAngels2=Ponekad, nema dostupnih kompanija kada tražite, zato razmislite da promijenite filter da tražite "Sva dostupnost". Moći ćete poslati više zahtjeva.
    -BackToHelpCenter=U suprotnom, kliknite ovdje <a href="%s">da idete nazad na centralnu početnu stranicu</a>.
    -LinkToGoldMember=Možete pozvati jednog od unaprijed izabranih Dolibarr trenera za vas jezik (%s) klikom na Widget (statusi i maksimalne cijene su automatski ažurirani)
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Podržani jezici
    -SubscribeToFoundation=Pomozite dolibar projekti, pretplatite se fondaciji
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Za oficijelnu Dolibarr podršku za vaš jezik: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/bs_BA/holiday.lang b/htdocs/langs/bs_BA/holiday.lang
    index e5354131a69..c26603617a9 100644
    --- a/htdocs/langs/bs_BA/holiday.lang
    +++ b/htdocs/langs/bs_BA/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=Kadrovska služba
    -Holidays=Odlasci
    -CPTitreMenu=Odlasci
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Mjesečni izvještaj
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Datum početka
     DateFinCP=Datum završetka
    @@ -15,13 +15,18 @@ ApprovedCP=Odobren
     CancelCP=Otkazan
     RefuseCP=Odbijen
     ValidatorCP=Osoba koja odobrava
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Opis
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Datum završetka mora biti poslije datuma početka.
     ErrorSQLCreateCP=Desila se SQL greška prilikom kreiranja:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Workflow informacija
     RequestByCP=Zahtjev poslao
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Izmjena
     DeleteCP=Obrisati
     ActionRefuseCP=Odbij
    @@ -59,6 +71,7 @@ DateRefusCP=Datum odbijanja
     DateCancelCP=Datum poništavanja
     DefineEventUserCP=Dodijeli izuzetno odsustvo za korisnika
     addEventToUserCP=Dodijeli odsustvo
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Razlog
     UserCP=Korisnik
     ErrorAddEventToUserCP=Došlo je do greške prilikom dodavanja izuzetnog odsustva.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Uspješno ažuriranje.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/bs_BA/install.lang b/htdocs/langs/bs_BA/install.lang
    index 0671dc322e8..d10825f6669 100644
    --- a/htdocs/langs/bs_BA/install.lang
    +++ b/htdocs/langs/bs_BA/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Pratite instrukcije korak po korak.
     MiscellaneousChecks=Provjera preduvjeta
     ConfFileExists=Konfiguracijska datoteka<b>%s</b> postoji.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Konfiguracijska datoteka <b>%s</b> ne postoji i ne može biti napravljena !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Konfiguracijska datoteka <b>%s</b> se može napraviti.
    -ConfFileIsNotWritable=Po konfiguracijskoj datoteci <b>%s</b> se ne može pisati. Provjerite dozvole. Za prvu instalaciju, vaš web server mora dopustiti pisanje u ovu datoteku tokom procesa konfiguracije ("chmod 666" naprimjer na OS poput Unixa).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Konfiguracijska datoteka <b>%s</b> je slobodna za pisanje.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Napuni sve informacije iz konfiguracijske datoteke.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Ovaj PHP podržava sesije.
     PHPSupportPOSTGETOk=Ovaj PHP podržava varijable POST i GET.
    -PHPSupportPOSTGETKo=Moguće je da vaše PHP postavke ne podržavaju varijable POST i/ili GET. Provjerite vaš parametar <b>variables_order</b> u php.ini.
    -PHPSupportGD=Ovaj PHP podržava GD grafičke funkcije.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=Ovaj PHP podržava UTF8 funkcije.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Vaša maksimalna memorija za PHP  sesiju je postavljena na <b>%s</b>. To bi trebalo biti dovoljno.
    -PHPMemoryTooLow=Vaša maks. PHP memorija sesije postavljena je na <b>%s</b> bajta. To je isuviše malo. Promijenite vaš <b>php.ini</b> da parametar <b>memory_limit</b> ima najmanje <b>%s</b> bajta.
    -Recheck=Kliknite ovdje za više značajan test
    -ErrorPHPDoesNotSupportSessions=Vaša PHP instalacija ne podržava sesije. Ova osobina je neophodna da bi Dolibarr uopće radio. Provjerite vašu PHP instalaciju.
    -ErrorPHPDoesNotSupportGD=Vaša PHP instalacija ne podržava grafičku funkciju GD. Neće biti dostupni grafikoni.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Direktorij %s ne postoji.
    -ErrorGoBackAndCorrectParameters=Vratite se nazad i ispravite pogrešne parametre.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Ništa za čišćenje/brisanje
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Premještanje događaja da bi se dodao kontakt događaja u tabelu dodjeljivanja
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/bs_BA/interventions.lang b/htdocs/langs/bs_BA/interventions.lang
    index 21bfcf1c03f..c90c8f4249f 100644
    --- a/htdocs/langs/bs_BA/interventions.lang
    +++ b/htdocs/langs/bs_BA/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Intervencije
     InterventionCard=Kartica intervencija
     NewIntervention=Nova intervencija
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Lista intervencija
     ActionsOnFicheInter=Akcije na intervencijama
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/bs_BA/main.lang b/htdocs/langs/bs_BA/main.lang
    index 5b56fdd4a05..4569aaff71b 100644
    --- a/htdocs/langs/bs_BA/main.lang
    +++ b/htdocs/langs/bs_BA/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Neuspjeh pri slanju maila (pošiljalac=%s, primalac=%s)
     ErrorFileNotUploaded=Datoteka nije postavljena. Provjerite da li joj je veličina iznad dozvoljene, da li ima dovoljno slobodnog mjesta na disku i da li već postoji datoteka istog imena u ovom direktoriju.
     ErrorInternalErrorDetected=Pronađena greška
     ErrorWrongHostParameter=Pogrešan parametar hosta
    -ErrorYourCountryIsNotDefined=Vaša država nije definirana. Idite u postavke Početna-Postavke-Uredi i pošaljite ponovno obrazac.
    -ErrorRecordIsUsedByChild=Neuspjelo brisanje ovog unosa. Ovaj unos je korišten najmanje jednom u drugom podunosu.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Pogrešna vrijednost
     ErrorWrongValueForParameterX=Pogrešna vrijednost za parametar %s
     ErrorNoRequestInError=Nema greške u zahtjevu
    -ErrorServiceUnavailableTryLater=Usluga trenutno nije dostupna. Pokušajte kasnije.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicirana vrijednost u unikatnom polju
    -ErrorSomeErrorWereFoundRollbackIsDone=Pronađene određene greške. Vraćam promjene.
    -ErrorConfigParameterNotDefined=Parametar <b>%s</b> nije definiran unutar Dolibarr konfiguracijske datoteke <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Neuspjelo traženje korisnika <b>%s</b> u Dolibarr bazi podataka.
     ErrorNoVATRateDefinedForSellerCountry=Greška, nije definirana PDV stopa za državu '%s'.
     ErrorNoSocialContributionForSellerCountry=Greška, nisu definirane vrste doprinosa i poreza za državu '%s'.
     ErrorFailedToSaveFile=Greška, neuspjelo spremanje datoteke.
    -ErrorCannotAddThisParentWarehouse=Pokušavate dodati nadređeno skladište koje je već podređeno skladište ovom trenutnom
    -MaxNbOfRecordPerPage=Maks broj unosa po stranici
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Niste ovlašteni da to uradite.
     SetDate=Postavi datum
     SelectDate=Odaberi datum
    @@ -78,10 +78,10 @@ FileRenamed=Datoteka je uspješno preimenovana
     FileGenerated=Datoteka je uspješno generirana
     FileSaved=Datoteka je uspješno spremljena
     FileUploaded=Datoteka je uspješno postavljena
    -FileTransferComplete=Datoteka(e) su uspješno učitane
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=Datoteka(e) uspješno obrisana
     FileWasNotUploaded=Datoteka je odabrana za prilog ali nije još postavljena. Kliknite na "Dodaj datoteku" da bi ste to uradili.
    -NbOfEntries=Broj unosa
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Pročitajte online pomoć (neophodan pristup internetu)
     GoToHelpPage=Pročitaj pomoć
     RecordSaved=Unos spremljen
    @@ -92,9 +92,9 @@ DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr način odobrenja je posta
     Administrator=Administrator
     Undefined=Nedefinirano
     PasswordForgotten=Zaboravljena šifra?
    -NoAccount=No account?
    +NoAccount=Nema računa?
     SeeAbove=Vidi iznad
    -HomeArea=Početno područje
    +HomeArea=Početna
     LastConnexion=Posljednje veze
     PreviousConnexion=Prethodna veza
     PreviousValue=Prethodna vrijednost
    @@ -142,6 +142,7 @@ Closed=Zatvoreno
     Closed2=Zatvoreno
     NotClosed=Nije zatvoreno
     Enabled=Omogućeno
    +Enable=Enable
     Deprecated=Prevaziđeno
     Disable=Isključi
     Disabled=Isključeno
    @@ -153,7 +154,7 @@ Update=Ažuriraj
     Close=Zatvori
     CloseBox=Ukloni kutijicu sa svoje nadzorne ploče
     Confirm=Potvrdi
    -ConfirmSendCardByMail=Da li zaista želiš poslati sadržaj ove kartice mailom za <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Obriši
     Remove=Ukloni
     Resiliate=Deaktiviraj
    @@ -327,7 +328,7 @@ Copy=Kopiraj
     Paste=Zalijepi
     Default=Uobičajeni
     DefaultValue=Uobičajena vrijednost
    -DefaultValues=Podrazumijevane vrijednosti
    +DefaultValues=Default values/filters/sorting
     Price=Cijena
     PriceCurrency=Cijena (valuta)
     UnitPrice=Jedinična cijena
    @@ -347,7 +348,7 @@ AmountTTCShort=Iznos (uklj. PDV)
     AmountHT=Iznos (neto bez PDV)
     AmountTTC=Iznos (uklj. PDV)
     AmountVAT=Iznos poreza
    -MulticurrencyAlreadyPaid=Već plaćeno, orig. valuta
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Ostatak za plaćanje, orig. valuta
     MulticurrencyPaymentAmount=Iznos za plaćanje, orig. valuta
     MulticurrencyAmountHT=Iznos (bez poreza), orig. valuta
    @@ -403,7 +404,7 @@ DefaultTaxRate=Pretpostavljena stopa poreza
     Average=Prosjek
     Sum=Zbir
     Delta=Delta
    -RemainToPay=Remain to pay
    +RemainToPay=Preostalo za platiti
     Module=Modul/aplikacija
     Modules=Moduli/aplikacije
     Option=Opcija
    @@ -416,7 +417,7 @@ Favorite=Omiljeni
     ShortInfo=Info.
     Ref=Ref.
     ExternalRef=Ref. vanjski
    -RefSupplier=Ref. vendor
    +RefSupplier=Ref. prodavača
     RefPayment=Ref. plaćanje
     CommercialProposalsShort=Poslovni prijedlozi
     Comment=Komentar
    @@ -428,7 +429,7 @@ ActionNotApplicable=Nije primjenjivo
     ActionRunningNotStarted=Treba započeti
     ActionRunningShort=U toku
     ActionDoneShort=Završeno
    -ActionUncomplete=Nedovršeno
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Posljednjih %s povezanih događaja
     CompanyFoundation=Kompanija/organizacija
     Accountant=Računovođa
    @@ -436,6 +437,7 @@ ContactsForCompany=Kontakti za ovaj subjekt
     ContactsAddressesForCompany=Kontakti/adrese za ovaj subjekt
     AddressesForCompany=Adrese za ovaj subjekt
     ActionsOnCompany=Događaji o ovom subjektu
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Događaji o ovom članu
     ActionsOnProduct=Događaji o ovom proizvodu
     NActionsLate=%s kasne
    @@ -453,8 +455,8 @@ Generate=Napravi
     Duration=Trajanje
     TotalDuration=Ukupno trajanje
     Summary=Sažetak
    -DolibarrStateBoard=Statistike baze podataka
    -DolibarrWorkBoard=Pregled otvorenih predmeta
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=Nema otvorenih elemenata za obradu
     Available=Dostupno
     NotYetAvailable=Još uvijek nedostupno
    @@ -468,7 +470,7 @@ and=i
     or=ili
     Other=Ostalo
     Others=Drugi
    -OtherInformations=Ostale informacije
    +OtherInformations=Other information
     Quantity=Količina
     Qty=Kol
     ChangedBy=Izmijenio
    @@ -495,7 +497,7 @@ Received=Primljeno
     Paid=Plaćeno
     Topic=Tema
     ByCompanies=Po subjektu
    -ByUsers=By user
    +ByUsers=Po korisniku
     Links=Veze
     Link=Veza
     Rejects=Odbijeno
    @@ -506,8 +508,8 @@ None=Ništa
     NoneF=Ništa
     NoneOrSeveral=Nijedan ili više
     Late=Kasno
    -LateDesc=Kašnjenje za definiranje ako je zapis zakasnio ili nije zavisan u vašem podešenju. Pitajte administratora za promjenu kašnjenja u meniju Početan - Postavke - Upozorenja.
    -NoItemLate=No late item
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
    +NoItemLate=Nema zakašnjelih stavki
     Photo=Slika
     Photos=Slike
     AddPhoto=Dodaj sliku
    @@ -530,18 +532,6 @@ September=septembar
     October=oktobar
     November=novembar
     December=decembar
    -JanuaryMin=jan
    -FebruaryMin=feb
    -MarchMin=mar
    -AprilMin=apr
    -MayMin=maj
    -JuneMin=jun
    -JulyMin=jul
    -AugustMin=aug
    -SeptemberMin=sep
    -OctoberMin=okt
    -NovemberMin=nov
    -DecemberMin=dec
     Month01=Januar
     Month02=februar
     Month03=mart
    @@ -622,9 +612,9 @@ BuildDoc=Napravi dok.
     Entity=Okruženje
     Entities=entiteti
     CustomerPreview=Pregled kupca
    -SupplierPreview=Vendor preview
    +SupplierPreview=Pregled prodavača
     ShowCustomerPreview=Pokaži sažetak kupca
    -ShowSupplierPreview=Show vendor preview
    +ShowSupplierPreview=Pokaži pregled prodavača
     RefCustomer=Ref. kupca
     Currency=valuta
     InfoAdmin=Informacije za administratore
    @@ -646,6 +636,8 @@ SendMail=Pošalji e-mail
     EMail=Email
     NoEMail=nema emaila
     Email=email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Nema broj mobitela
     Owner=Vlasnik
     FollowingConstantsWillBeSubstituted=Sljedeće konstante će se zamijeniti sa odgovarajućim vrijednostima.
    @@ -677,7 +669,7 @@ NeverReceived=Nikad primljeno
     Canceled=Otkazan
     YouCanChangeValuesForThisListFromDictionarySetup=Možete promijeniti vrijednosti na ovom spisku u meniju Postavke-Rječnici
     YouCanChangeValuesForThisListFrom=Možete promijeniti vrijednosti za ovaj spisak u meniju %s
    -YouCanSetDefaultValueInModuleSetup=Možete postaviti podrazumijevane vrijednosti koje će se koristiti pri pravljenju novog zapisa u postavkama modula
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Boja
     Documents=Povezane datoteke
     Documents2=Dokumenti
    @@ -703,7 +695,7 @@ DateOfSignature=Datum potpisa
     HidePassword=Pokaži komandu sa skrivenom šifrom
     UnHidePassword=Pokaži stvarnu komandu sa pokazanom šifrom
     Root=Root
    -Informations=Informacije
    +Informations=Inromacije
     Page=Stranica
     Notes=Napomene
     AddNewLine=Dodaj novi red
    @@ -716,15 +708,15 @@ Merge=Spajanje
     DocumentModelStandardPDF=Standardni šablon PDFa
     PrintContentArea=Pokaži stranicu za štampu glavnog područja
     MenuManager=Upravljanje menijima
    -WarningYouAreInMaintenanceMode=Upozorenje, sada ste u modu za održavanje, tako da samo korisniku <b>%s</b> je dopušteno korištenje aplikacije u ovom trenutku.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Sistemska greška
     CoreErrorMessage=Žao nam je, desila se greška. Kontaktirajte sistemskog administratora da provjeri zapisnik ili onemogući $dolibarr_main_prod=1 za dobijanje više informacija.
     CreditCard=Kreditna kartica
     ValidatePayment=Potvrditi uplatu
     CreditOrDebitCard=Kreditna kartica
     FieldsWithAreMandatory=Polja sa <b>%s</b> su obavezna
    -FieldsWithIsForPublic=Polja sa <b>%s</b> su prikazana na javnom spisku članova. Ako ovo ne želite, deaktivirajte kućicu "javno".
    -AccordingToGeoIPDatabase=(prema GeoIP konverziji)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Red
     NotSupported=Nije podržano
     RequiredField=Obavezno polje
    @@ -732,6 +724,8 @@ Result=Rezultat
     ToTest=Test
     ValidateBefore=Kartica se mora odobriti prije korištenja ove osobine
     Visibility=Vidljivost
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privatno
     Hidden=Sakriveno
     Resources=Resursi
    @@ -750,6 +744,7 @@ LinkTo=Link ka
     LinkToProposal=Link ka prijedlogu
     LinkToOrder=Link ka narudžbi
     LinkToInvoice=Link na fakturu
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link ka narudžbi kupcu
     LinkToSupplierProposal=Link ka ponudi dobavljača
     LinkToSupplierInvoice=Link na fakturu dobavljača
    @@ -758,6 +753,7 @@ LinkToIntervention=Link ka intervencijama
     CreateDraft=Kreiraj nacrt
     SetToDraft=Nazad na nacrt
     ClickToEdit=Klikni za uređivanje
    +ClickToRefresh=Click to refresh
     EditWithEditor=Uredi sa CKUređivačem
     EditWithTextEditor=Uredi sa tekstualnim uređivačem
     EditHTMLSource=Uredi HTML izvor
    @@ -772,14 +768,14 @@ ByDay=Po danu
     BySalesRepresentative=Po predstavniku prodaje
     LinkedToSpecificUsers=Spojeno sa određenim kontaktom korisnika
     NoResults=Nema rezultata
    -AdminTools=Adminski alati
    +AdminTools=Admin Tools
     SystemTools=Sistemski alati
     ModulesSystemTools=Alati modula
     Test=Test
     Element=Element
     NoPhotoYet=Još nema dostupne slike
     Dashboard=Komandna tabla
    -MyDashboard=Moja nadzorna ploča
    +MyDashboard=My Dashboard
     Deductible=Može se odbiti
     from=od
     toward=prema
    @@ -802,7 +798,7 @@ PrintFile=Štampa datoteke %s
     ShowTransaction=Pokaži unos u bankovni račun
     ShowIntervention=Prikaži intervenciju
     ShowContract=Prikaži ugovor
    -GoIntoSetupToChangeLogo=Idite u  Početna - Postavke - Kompanija za promjenu logotipa ili Početna - Postavke - Prikaz za sakrivanje.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Zabrani
     Denied=Zabranjeno
     ListOf=Spisak %s
    @@ -818,12 +814,12 @@ Sincerely=S poštovanjem
     DeleteLine=Obriši red
     ConfirmDeleteLine=Da li ste sigurni da želite obrisati ovaj red?
     NoPDFAvailableForDocGenAmongChecked=Nijedan PDF nije dostupan za kreiranje dokumenata među provjerenim zapisima
    -TooManyRecordForMassAction=Previše zapisa odabrano za masovnu akciju. Akcija je ograničena na spisak od %s zapisa.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=Nijedan zapis nije odabran
     MassFilesArea=Područje za datoteke napravljeno masovnim akcijama
     ShowTempMassFilesArea=Pokaži područje datoteka napravljeno masovnim akcijama
    -ConfirmMassDeletion=Potvrda masovnog brisanja
    -ConfirmMassDeletionQuestion=Da li ste sigurni da želite obrisati %s odabranih zapisa ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Povezani objekti
     ClassifyBilled=Klasificiraj kao fakturisano
     ClassifyUnbilled=Klasificiraj kao nefakturisano
    @@ -841,7 +837,7 @@ Calendar=Kalendar
     GroupBy=Grupiranje po...
     ViewFlatList=Vidi čisti spisak
     RemoveString=Ukloni pojam '%s'
    -SomeTranslationAreUncomplete=Neki jezici su možda djelimično prevedeni ili mogu sadržavati greške. Ako nađete neke, možete popraviti jezičke datoteke tako što ćete ih postaviti na <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direktni link preuzimanja (javni/vanjski)
     DirectDownloadInternalLink=Link direktnog skidanja (morate biti prijavljeni i imati potrebna dopuštenja)
     Download=Skidanje
    @@ -852,25 +848,34 @@ ModuleBuilder=Kreator modula
     SetMultiCurrencyCode=Postavi valutu
     BulkActions=Masovne akcije
     ClickToShowHelp=Klikni za prikaz pomoći
    -WebSite=Veb sajt
    -WebSites=Veb sajtovi
    -WebSiteAccounts=Računi veb sajta
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Izvještaj troškova
     ExpenseReports=Izvještaj o troškovima
     HR=LJR
     HRAndBank=LJR i banka
     AutomaticallyCalculated=Automatski izračunato
     TitleSetToDraft=Nazad na nacrt
    -ConfirmSetToDraft=Da li ste sigurni da želite se vratiti u stanje nacrta?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Uvoz id
     Events=Događaji
    -EMailTemplates=Šabloni emaila
    -FileNotShared=Datoteka nije dijeljena vanjskim korisnicima
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Projekt
     Projects=Projekti
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Dozvole
     LineNb=Red br.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Ponedjeljak
     Tuesday=Utorak
    @@ -918,24 +923,24 @@ SearchIntoProductsOrServices=Proizvodi ili usluge
     SearchIntoProjects=Projekti
     SearchIntoTasks=Zadaci
     SearchIntoCustomerInvoices=Fakture kupaca
    -SearchIntoSupplierInvoices=Vendor invoices
    +SearchIntoSupplierInvoices=Fakture prodavača
     SearchIntoCustomerOrders=Narudžbe kupaca
    -SearchIntoSupplierOrders=Purchase orders
    +SearchIntoSupplierOrders=Narudžbe za nabavku
     SearchIntoCustomerProposals=Ponude kupcima
    -SearchIntoSupplierProposals=Vendor proposals
    +SearchIntoSupplierProposals=Prijedlozi prodavača
     SearchIntoInterventions=Intervencije
     SearchIntoContracts=Ugovori
     SearchIntoCustomerShipments=Slanje kupcu
     SearchIntoExpenseReports=Izvještaj o troškovima
    -SearchIntoLeaves=Odlasci
    +SearchIntoLeaves=Leave
     CommentLink=Komentari
     NbComments=Broj komentara
     CommentPage=Prostor komentara
     CommentAdded=Dodan komentar
     CommentDeleted=Obrisan komentar
     Everybody=Zajednički projekti
    -PayedBy=Platio
    -PayedTo=Plaćeno
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Mjesečno
     Quarterly=Tromjesečno
     Annual=Godišnje
    @@ -944,7 +949,9 @@ Remote=Udaljeni
     LocalAndRemote=Lokalni i udaljeni
     KeyboardShortcut=Prečica na tastaturi
     AssignedTo=Dodijeljeno korisniku
    -Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    -FileSharedViaALink=File shared via a link
    -
    +Deletedraft=Obriši nacrt
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
    +FileSharedViaALink=Datoteka dijeljena preko linka
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventar
    diff --git a/htdocs/langs/bs_BA/other.lang b/htdocs/langs/bs_BA/other.lang
    index f211e34b1ec..f8f63550fb2 100644
    --- a/htdocs/langs/bs_BA/other.lang
    +++ b/htdocs/langs/bs_BA/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Treća stranka kreirana
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Titula
     WEBSITE_DESCRIPTION=Opis
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Linija za uvoz
    diff --git a/htdocs/langs/bs_BA/paybox.lang b/htdocs/langs/bs_BA/paybox.lang
    index 51b83fb3c23..a902d6c7c97 100644
    --- a/htdocs/langs/bs_BA/paybox.lang
    +++ b/htdocs/langs/bs_BA/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/bs_BA/projects.lang b/htdocs/langs/bs_BA/projects.lang
    index b89b8365936..214986151d9 100644
    --- a/htdocs/langs/bs_BA/projects.lang
    +++ b/htdocs/langs/bs_BA/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Prikaži projekt
     ShowTask=Show task
     SetProject=Postavi projekat
     NoProject=Nema definisanog ili vlastitog projekta
    -NbOfProjects=Broj projekata
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Vrijeme provedeno
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Lista poslovnih prijedloga u vezi s projektom
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Lista ugovora u vezi s projektom
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Lista intervencija u vezi s projektom
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Lista događaja u vezi s projektom
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=U vezi sa drugim subjektom
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Vrijeme provedeno je prazno
     ThisWillAlsoRemoveTasks=Ova akcija će također izbrisati sve zadatke projekta (<b>%s</b> zadataka u ovom trenutku) i sve unose provedenog vremena.
    -IfNeedToUseOhterObjectKeepEmpty=Ako neki objekti (faktura, narudžbe, ...), pripadaju drugom subjektu, mora biti u vezi sa projektom za kreiranje, ostavite ovo prazno da bi imali projekat što više subjekata.
    +IfNeedToUseOtherObjectKeepEmpty=Ako neki objekti (faktura, narudžbe, ...), pripadaju drugom subjektu, mora biti u vezi sa projektom za kreiranje, ostavite ovo prazno da bi imali projekat što više subjekata.
     CloneProject=Kloniraj projekat
     CloneTasks=Kloniraj zadatke
     CloneContacts=Kloniraj kontakte
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Povezane stavke
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Prijedlog
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/bs_BA/propal.lang b/htdocs/langs/bs_BA/propal.lang
    index 9e2afa6e4ff..b71736f4358 100644
    --- a/htdocs/langs/bs_BA/propal.lang
    +++ b/htdocs/langs/bs_BA/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Fakturisano
     PropalStatusDraftShort=Nacrt
    -PropalStatusValidatedShort=Potvrđeno
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Zatvoreno
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Kreiraj poslovni prijedlog kopiranje postojećeg prijedloga
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/bs_BA/website.lang b/htdocs/langs/bs_BA/website.lang
    index c1e886b1fbb..7c8d089e492 100644
    --- a/htdocs/langs/bs_BA/website.lang
    +++ b/htdocs/langs/bs_BA/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kod
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Pročitaj
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Računi veb sajta
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang
    index 33480ff64d8..1873e836d5c 100644
    --- a/htdocs/langs/ca_ES/accountancy.lang
    +++ b/htdocs/langs/ca_ES/accountancy.lang
    @@ -36,11 +36,15 @@ AlreadyInGeneralLedger=Registrat en el Llibre Major
     NotYetInGeneralLedger=No s'ha registrat en el Llibre Major
     GroupIsEmptyCheckSetup=El grup està buit, comproveu la configuració del grup de comptabilitat personalitzat
     DetailByAccount=Mostra detalls per compte
    -AccountWithNonZeroValues=Comptes amb valors no nuls
    +AccountWithNonZeroValues=Compte amb valors no nuls
     ListOfAccounts=Llista de comptes
    +CountriesInEEC=Països a la CEE
    +CountriesNotInEEC=Països no integrats a la CEE
    +CountriesInEECExceptMe=Països a la CEE excepte %s
    +CountriesExceptMe=Tots els països, excepte %s
     
     MainAccountForCustomersNotDefined=Compte comptable per a clients no definida en la configuració
    -MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup
    +MainAccountForSuppliersNotDefined=Compte comptable principal per a proveïdors no definit a la configuració
     MainAccountForUsersNotDefined=Compte comptable per a usuaris no de definit en la configuració
     MainAccountForVatPaymentNotDefined=Compte comptable per a IVA no definida en la configuració
     
    @@ -55,10 +59,10 @@ AccountancyAreaDescChartModel=PAS %s: Crear un model de pla de comptes des del m
     AccountancyAreaDescChart=PAS %s: Crear o comprovar el contingut del seu pla de comptes des del menú %s
     
     AccountancyAreaDescVat=PAS %s: Defineix comptes comptables per cada tipus d'IVA. Per això, utilitzeu l'entrada del menú %s.
    -AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
    +AccountancyAreaDescDefault=STEP %s: Definir comptes comptables predeterminats. Per això, utilitzeu l'entrada del menú %s.
     AccountancyAreaDescExpenseReport=PAS %s: Defineix els comptes comptables per defecte per a cada tipus d'informe de despeses. Per això, utilitzeu l'entrada del menú %s.
     AccountancyAreaDescSal=PAS %s: Defineix comptes comptables per defecte per al pagament de salaris. Per això, utilitzeu l'entrada del menú %s.
    -AccountancyAreaDescContrib=PAS %s: Defineix comptes comptables per defecte per despeses especials (impostos diversos). Per això, utilitzeu l'entrada del menú %s.
    +AccountancyAreaDescContrib=PAS %s: defineix comptes de comptabilitat per defecte per a despeses especials (impostos diversos). Per això, utilitzeu l'entrada del menú %s.
     AccountancyAreaDescDonation=PAS %s: Defineix comptes comptables per defecte per a les donacions. Per això, utilitzeu l'entrada del menú %s.
     AccountancyAreaDescMisc=PAS %s: Defineix el compte comptable obligatori per defecte i els comptes comptables per defecte pels assentaments diversos. Per això, utilitzeu l'entrada del menú %s.
     AccountancyAreaDescLoan=PAS %s: Defineix comptes comptables per defecte per als préstecs. Per això, utilitzeu l'entrada del menú %s.
    @@ -156,6 +160,7 @@ Docref=Referència
     LabelAccount=Etiqueta de compte
     LabelOperation=Etiqueta de l'operació
     Sens=Significat
    +LetteringCode=Codi de retolació
     Codejournal=Diari
     NumPiece=Número de peça
     TransactionNumShort=Número de transacció
    @@ -172,7 +177,7 @@ DelYear=Any a eliminar
     DelJournal=Diari per esborrar
     ConfirmDeleteMvt=Això eliminarà totes les línies del Llibre Major de l'any i/o d'un diari específic. Es requereix com a mínim un criteri.
     ConfirmDeleteMvtPartial=Això eliminarà l'assentament del Llibre Major (se suprimiran totes les línies relacionades amb el mateix assentament)
    -FinanceJournal=Finance journal
    +FinanceJournal=Diari de finances
     ExpenseReportsJournal=Informe-diari de despeses
     DescFinanceJournal=Finance journal including all the types of payments by bank account
     DescJournalOnlyBindedVisible=Aquesta és una vista de registres que estan comptabilitzats a un compte comptable i que poden registrar-se al Llibre major.
    @@ -189,7 +194,7 @@ ListeMvts=Llista de moviments
     ErrorDebitCredit=El dèbit i el crèdit no poden tenir valors alhora
     AddCompteFromBK=Afegeix comptes comptables al grup
     ReportThirdParty=Llista el compte del tercer
    -DescThirdPartyReport=Consult here the list of the third party customers and vendors and their accounting accounts
    +DescThirdPartyReport=Consulteu aquí la llista dels clients i proveïdors de tercers i els seus comptes comptables
     ListAccounts=Llistat dels comptes comptables
     UnknownAccountForThirdparty=Compte comptable de tercer desconeguda, utilitzarem %s
     UnknownAccountForThirdpartyBlocking=Compte comptable de tercer desconegut. Error de bloqueig
    @@ -198,7 +203,7 @@ PaymentsNotLinkedToProduct=Pagament no vinculat a cap producte / servei
     
     Pcgtype=Grup de compte
     Pcgsubtype=Subgrup de compte
    -PcgtypeDesc=El grup i el subgrup del compte s'utilitzen com a criteris de "filtre" i "agrupació" predefinits per a alguns informes comptables. Per exemple, "INCOME" o "EXPENSE" s'utilitzen com a grups per als comptes comptables de productes per generar l'informe de despeses/ingressos.
    +PcgtypeDesc=El grup i el subconjunt del compte s'utilitzen com a criteris de "filtre" i "agrupació" predefinits per a alguns informes comptables. Per exemple, "INGRÉS" o "DESPESA" s'utilitzen com a grups per als comptes comptables de productes per generar l'informe de despeses / ingressos.
     
     TotalVente=Total turnover before tax
     TotalMarge=Marge total de vendes
    @@ -209,8 +214,8 @@ DescVentilDoneCustomer=Consulta aquí la llista de línies de factures de client
     DescVentilTodoCustomer=Comptabilitza les línies de factura encara no comptabilitzades amb un compte comptable de producte
     ChangeAccount=Canvia el compte comptable de producte/servei per les línies seleccionades amb el següent compte comptable:
     Vide=-
    -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account
    -DescVentilDoneSupplier=Consult here the list of the lines of invoices vendors and their accounting account
    +DescVentilSupplier=Consulteu aquí la llista de línies de factures del proveïdor vinculades o que encara no estan vinculades a un compte de comptabilitat de producte
    +DescVentilDoneSupplier=Consulteu aquí la llista de les línies de venedors de factures i el seu compte comptable
     DescVentilTodoExpenseReport=Línies d'informes de despeses comptabilitzades encara no comptabilitzades amb un compte comptable de tarifa
     DescVentilExpenseReport=Consulteu aquí la llista de les línies d'informe de despeses vinculada (o no) a un compte comptable corresponent a tarifa
     DescVentilExpenseReportMore=Si tu poses el compte comptable sobre les línies del informe per tipus de despesa, l'aplicació serà capaç de fer tots els vincles entre les línies del informe i els comptes comptables del teu pla comptable, només amb un clic amb el botó <strong>"%s"</strong>. Si el compte no estava al diccionari de tarifes o si encara hi ha línies no vinculades a cap compte, hauràs de fer-ho manualment a partir del menú "<strong>%s</strong>".
    @@ -221,6 +226,7 @@ AutomaticBindingDone=Comptabilització automàtica realitzada
     
     ErrorAccountancyCodeIsAlreadyUse=Error, no pots eliminar aquest compte comptable perquè està en ús
     MvtNotCorrectlyBalanced=Assentament comptabilitzat incorrectament. Deure = %s | Haver = %s
    +Balancing=Saldo
     FicheVentilation=Fitxa de comptabilització
     GeneralLedgerIsWritten=Els assentaments s'han escrit al Llibre Major
     GeneralLedgerSomeRecordWasNotRecorded=Alguns dels assentaments no van poder ser registrats al diari. Si no hi ha cap altre missatge d'error, probablement és perquè ja es van registrar al diari.
    @@ -262,7 +268,8 @@ Modelcsv_quadratus=Exporta cap a Quadratus QuadraCompta
     Modelcsv_ebp=Exporta cap a EBP
     Modelcsv_cogilog=Exporta cap a Cogilog
     Modelcsv_agiris=Exporta a Agiris
    -Modelcsv_configurable=Exportació configurable
    +Modelcsv_configurable=Exporta CSV configurable
    +Modelcsv_FEC=Exportació FEC (Art. L47 A) (prova)
     ChartofaccountsId=Id pla comptable
     
     ## Tools - Init accounting account on product / service
    @@ -296,10 +303,10 @@ BookeppingLineAlreayExists=Les línies ja existeixen en la comptabilitat
     NoJournalDefined=Cap diari definit
     Binded=Línies comptabilitzades
     ToBind=Línies a comptabilitzar
    -UseMenuToSetBindindManualy=No es possible auto-detectar, utilitzeu el menú <a href="%s">%s</a> per fer l'enllaç manualment
    +UseMenuToSetBindindManualy=Línies encara no enllaçades, utilitzeu el menú <a href="%s"> %s </a> per fer l'enllaç manualment
     
     ## Import
    -ImportAccountingEntries=Accounting entries
    +ImportAccountingEntries=Entrades de comptabilitat
     
     WarningReportNotReliable=Avís, aquest informe no està basat en el Llibre Major, de manera que no conté assentaments modificats manualment en el Llibre Major. Si el registre diari està actualitzat, la vista de comptes és més precisa.
     ExpenseReportJournal=Diari d'informe de despeses
    diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang
    index f2360087d78..f6f8b490e30 100644
    --- a/htdocs/langs/ca_ES/admin.lang
    +++ b/htdocs/langs/ca_ES/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Desenvolupament
     VersionUnknown=Desconeguda
     VersionRecommanded=Recomanada
     FileCheck=Comprovador de integritat de arxius
    -FileCheckDesc=Aquesta ferramenta li permet comprobar la integritat dels arxius de l'aplicació, comparant cada arxiu amb els oficials. Es pot utilitzar aquesta ferrametna per detectar si alguns arxius han sigut modificats per un hacker per exemple.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=La integritat dels arxius està estrictament conforme amb la referència.
    -FileIntegrityIsOkButFilesWereAdded=La comprovació de la integritat dels arxius ha resultat exitosa, no obstant s'han afegit alguns arxius nous.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=La comprovació d'integritat d'arxius ha fallat. Alguns arxius han sigut modificats, eliminats o afegits.
     GlobalChecksum=Checksum global
     MakeIntegrityAnalysisFrom=Fer anàlisi de la integritat dels arxius de l'aplicació de
    @@ -30,14 +30,14 @@ SessionSaveHandler=Modalitat de desar sessions
     SessionSavePath=Emmagatzema la localització de les sessions
     PurgeSessions=Purga de sessions
     ConfirmPurgeSessions=Estàs segur de voler purgar totes les sessions? Es desconnectaran tots els usuaris (excepte tu mateix)
    -NoSessionListWithThisHandler=El gestor de període de sessions configurat en la seva PHP no enumera les sessions en curs
    +NoSessionListWithThisHandler=El gestor de sessions configurat al seu PHP no permiteix mostrar les sessions en curs
     LockNewSessions=Bloquejar connexions noves
    -ConfirmLockNewSessions=Esteu segur de voler restringir l'accés a Dolibarr al seu usuari? Només el login< b>%s</b> podrà connectar si confirma.
    +ConfirmLockNewSessions=Esteu segur de voler restringir l'accés a Dolibarr únicament al seu usuari? Només el login <b>%s</b> podrà connectar si confirma.
     UnlockNewSessions=Eliminar bloqueig de connexions
     YourSession=La seva sessió
     Sessions=Sessions d'usuaris
     WebUserGroup=Servidor web usuari/grup
    -NoSessionFound=Sembla que el seu PHP no pot llistar les sessions actives. El directori de salvaguardat de sessions (<b>%s</b>) pot estar protegit (per exemple, pels permisos del sistema operatiu o per la directiva open_basedir del seu PHP)
    +NoSessionFound=Sembla que el seu PHP no pot llistar les sessions actives. El directori de salvaguardat de sessions (<b>%s</b>) pot estar protegit (per exemple, pels permisos del sistema operatiu o per la directiva open_basedir del seu PHP).
     DBStoringCharset=Codificació base de dades per emmagatzematge de dades
     DBSortingCharset=Codificació base de dades per classificar les dades
     ClientCharset=Joc de caràcters del client
    @@ -50,7 +50,7 @@ ExternalUser=Usuari extern
     InternalUsers=Usuaris interns
     ExternalUsers=Usuaris externs
     GUISetup=Entorn
    -SetupArea=Àrea configuració
    +SetupArea=Configuració
     UploadNewTemplate=Carrega nova plantilla(s)
     FormToTestFileUploadForm=Formulari de prova de càrrega de fitxer (segons opcions escollides)
     IfModuleEnabled=Nota: sí només és eficaç si el mòdul <b>%s</b> està activat
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=El codi no pot contenir el valor 0
     DisableJavascript=Desactivar funcions JavaScript i Ajax (Recomanat per a persones cegues o navegadors de text)
     UseSearchToSelectCompanyTooltip=També si tenen un gran número de tercers (> 100.000), pot augmentar la velocitat mitjançant l'estableciement COMPANY_DONOTSEARCH_ANYWHERE amb la constant a 1 a Configuració --> Altres. La cerca serà limitada a la creació de la cadena
     UseSearchToSelectContactTooltip=També si vostè té un gran número de tercers (> 100.000), pot augmentar la velocitat mitjançant l'estableciment. CONTACT_DONOTSEARCH_ANYWHERE amb la constant a 1 a Configuració --> Altres. La cerca serà limitada a la creació de la cadena
    -DelaiedFullListToSelectCompany=Espera abans de pitjar una tecla mentre es carrega el contingut de la llista desplegable de tercers (Això pot incrementar la prestació si tens una llista llarga, però és menys convenient)
    -DelaiedFullListToSelectContact=Espera abans de pitjar una tecla mentre es carrega el contingut de la llista desplegable de contactes (Això pot incrementar la prestació si tens una llista llarga, però és menys convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nombre de caràcters per a desencadenar la cerca: %s
     NotAvailableWhenAjaxDisabled=No disponible quan Ajax estigui desactivat
     AllowToSelectProjectFromOtherCompany=En un document d'un tercer, pots triar un projecte enllaçat a un altre tercer
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Vista prèvia no disponible
     ThemeCurrentlyActive=Tema actualment actiu
     CurrentTimeZone=Fus horari PHP (Servidor)
     MySQLTimeZone=Zona horària MySql (base de dades)
    -TZHasNoEffect=Les dates es guarden i tornen pel servidor de la base de dedes tal com si les haguessin enviat com una cadena. La zona horària només te efecte si s'utilitza la funció UNIX_TIMESTAMP (que no pot ser utilitzada per dolibarr, per el que la zona horària de la base de dades no hauria de tenir efecte, encara que s'hagi canviat després d'introduir les dades).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Àrea
     Table=Taula
     Fields=Camps
    @@ -126,8 +126,8 @@ PHPTZ=Zona horària Servidor PHP
     DaylingSavingTime=Horari d'estiu (usuari)
     CurrentHour=Hora PHP (servidor)
     CurrentSessionTimeOut=Timeout sessió actual
    -YouCanEditPHPTZ=Per establir una zona horària PHP diferent (no és necessari), pots intentar afegir un fitxer .htaccess amb una línia com aquesta "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Avís, al contrari d'altres pantalles, les hores d'aquesta pàgina no són a la vostra zona horària local, sinó a la zona horària del servidor.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Panell
     Boxes=Panells
     MaxNbOfLinesForBoxes=Màxim número de línies per panell
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignorar errors de registres duplicats (INSERT IGNORE)
     AutoDetectLang=Autodetecta (idioma del navegador)
     FeatureDisabledInDemo=Opció deshabilitada en demo
     FeatureAvailableOnlyOnStable=Funcionalitat disponible únicament en versions estables oficials 
    -BoxesDesc=Els panells són components que mostren alguna informació que pots afegir per personalitzar algunes pàgines. Pots triar entre mostrar el panell o no seleccionant la pàgina de destí i fent clic a 'Activa', o fent clic al cubell d'escombraries per desactivar.
    +BoxesDesc=Els panells són components que mostren algunes dades que poden afegir-se per personalitzar algunes pàgines. Pots triar entre mostrar el panell o no seleccionant la pàgina de destí i fent clic a 'Activar', o fent clic en la paperera per desactivar.
     OnlyActiveElementsAreShown=Només els elements de <a href="%s"> mòduls activats</a> són mostrats
    -ModulesDesc=Els mòduls Dolibarr defineixen quina aplicació/característica està habilitada al programari. Algunes aplicacions/mòduls requereixen permisos que has de concedir als usuaris, després d'activar-los. Fes clic al botó d'activació/desactivació per habilitar un mòdul/aplicació.
    +ModulesDesc=Els mòduls/aplicacions determinen quines funcions estan disponibles al programa. Alguns mòduls requereixen permisos que es concedeixen als usuaris després d'activar el mòdul. Feu clic al botó d'encès/apagat (al final de la línia del mòdul) per activar/desactivar un mòdul/aplicació.
     ModulesMarketPlaceDesc=Pots trobar més mòduls per descarregar en pàgines web externes per internet...
    -ModulesDeployDesc=Si els permisos en el seu sistema d'arxius ho permiteixen, pot utilitzar aquesta ferramente per instal·lar un mòdul extern. El mòdul estarà aleshores visible en la pestanya <strong>%s</strong>
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Trobar mòduls/complements externs
     ModulesDevelopYourModule=Desenvolupeu els vostres mòduls/aplicacions
    -ModulesDevelopDesc=Podeu desenvolupar o trobar un soci per desenvolupar per a vostè, el vostre mòdul personalitzat
    -DOLISTOREdescriptionLong=En lloc d'activar el lloc web <a href="https://www.dolistore.com">www.dolistore.com</a> per trobar un mòdul extern, podeu utilitzar aquesta eina incrustada que farà que la cerca en el lloc de mercat extern per a tu (pot ser lent, necessiteu un accés a internet) ...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Nou
     FreeModule=Gratuït
     CompatibleUpTo=Compatible amb la versió %s
    @@ -211,8 +211,8 @@ Nouveauté=Novetat
     AchatTelechargement=Comprar / Descarregar
     GoModuleSetupArea=Per instal·lar un nou mòdul, vaja al àrea de configuració de mòduls en <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, el lloc oficial de mòduls complementaris per Dolibarr ERP / CRM
    -DoliPartnersDesc=Llista d'empreses que proporcionen desenvolupament a mida de mòduls o funcionalitats (Nota: qualsevol empresa amb experiència amb programació PHP pot proporcionar desenvolupament a mida per un projecte de codi obert)
    -WebSiteDesc=Llocs web de referència per trobar més mòduls...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=Llocs web de referència per trobar més mòduls (no core)...
     DevelopYourModuleDesc=Algunes solucions per desenvolupar el vostre propi mòdul...
     URL=Enllaç
     BoxesAvailable=Panells disponibles
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=No emmagatzemar la contrasenya sense xifrar a la base
     MainDbPasswordFileConfEncrypted=Encriptar la contrasenya de la base en l'arxiu conf.php
     InstrucToEncodePass=Per tenir la contrasenya encriptada al fitxer <b>conf.php</b> reemplaça la línia<br><b>$dolibarr_main_db_pass="...";</b><br>per<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Per tenir la contrasenya descodificada en el fitxer de configuració <b> conf.php </b>, reemplaça en aquest fitxer la línia <br><b>$dolibarr_main_db_pass="crypted:..."</b><br> per <br><b>$dolibarr_main_db_pass="%s"</b>
    -ProtectAndEncryptPdfFiles=Protecció i encriptació dels pdf generats
    +ProtectAndEncryptPdfFiles=Protecció i encriptació dels fitxers PDF generats NO es recomana (es trenca la generació massiva de PDF)
     ProtectAndEncryptPdfFilesDesc=La protecció d'un document PDF el manté disponible per llegir i imprimir amb qualsevol navegador PDF. No obstant això, l'edició i la còpia ja no és possible. Tingues en compte que l'ús d'aquesta característica fa que la construcció d'un arxiu PDF fusionat global no funcioni.
     Feature=Funció
     DolibarrLicense=Llicència
    @@ -246,7 +246,7 @@ ExternalResources=Recursos externs
     SocialNetworks=Xarxes socials
     ForDocumentationSeeWiki=Per a la documentació d'usuari, desenvolupador o Preguntes Freqüents (FAQ), consulteu el wiki Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Per altres qüestions o realitzar les seves pròpies consultes, pot utilitzar el fòrum Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=Aquesta àrea et pot ajudar a obtenir un servei de suport de Dolibarr.
    +HelpCenterDesc1=Aquests són alguns recursos per obtenir ajuda i suport amb Dolibarr.
     HelpCenterDesc2=Alguns d'aquests serveis només estan disponibles en <b>anglès</b>.
     CurrentMenuHandler=Gestor de menú
     MeasuringUnit=Unitat de mesura
    @@ -262,27 +262,31 @@ NoticePeriod=Preavís
     NewByMonth=Nou per mes
     Emails=Correus
     EMailsSetup=Configuració de correu
    -EMailsDesc=Aquesta plana permet reescriure els paràmetres del PHP en quan a l'enviament de correus. A la majoria dels casos de sistemes operatius Unix/Linux, la configuració per defecte del PHP és correcta i no calen aquests paràmetres.
    +EMailsDesc=Aquesta pàgina permet reescriure els paràmetres del PHP en quan a l'enviament de correus. A la majoria dels casos, al sistema operatiu Unix/Linux, la configuració per defecte del PHP és correcta i no calen aquests paràmetres.
     EmailSenderProfiles=Perfils de remitents de correus electrònics
     MAIN_MAIL_SMTP_PORT=Port del servidor SMTP (Per defecte a php.ini: <b>%s</b>)
     MAIN_MAIL_SMTP_SERVER=Nom host o ip del servidor SMTP (Per defecte en php.ini: <b>%s</b>)
     MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Port del servidor SMTP (No definit en PHP en sistemes de tipus Unix)
     MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nom servidor o ip del servidor SMTP (No definit en PHP en sistemes de tipus Unix)
    -MAIN_MAIL_EMAIL_FROM=Remitent del correu per a correus automàtics (Valor per defecte a php.ini: <b>1%s</b>)
    -MAIN_MAIL_ERRORS_TO=L'adreça de correu electrònic utilitzada per retornar correus d'error (emprada al camp 'Errors-To' en els correus enviats)
    -MAIN_MAIL_AUTOCOPY_TO= Envia automàticament una còpia oculta de tots els e-mails enviats a
    -MAIN_DISABLE_ALL_MAILS=Deshabilitar l'enviament de tots els correus (per fer proves o en llocs tipus demo)
    +MAIN_MAIL_EMAIL_FROM=E-mail del remitent per e-mails automàtics (valor predeterminat a php.ini: <b> %s</b>)
    +MAIN_MAIL_ERRORS_TO=E-mail a utilitzar per als e-mails de missatges d'error (camp 'Errors-To' als e-mails enviats)
    +MAIN_MAIL_AUTOCOPY_TO= Copia (Bcc) tots els correus enviats a
    +MAIN_DISABLE_ALL_MAILS=Desactiva tot l'enviament de correu electrònic (per a proves o demostracions)
     MAIN_MAIL_FORCE_SENDTO=Envieu tots els correus electrònics a (en lloc de destinataris reals, amb finalitats d'assaig)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Afegir usuaris d'empleats amb correu a la llista de destinataris permesos
    -MAIN_MAIL_SENDMODE=Mètode d'enviament d'e-mails
    -MAIN_MAIL_SMTPS_ID=ID d'autenticació SMTP si es requereix autenticació SMTP
    -MAIN_MAIL_SMTPS_PW=Contrasenya autentificació SMTP si es requereix autenticació SMTP
    -MAIN_MAIL_EMAIL_TLS= Ús d'encriptació TLS (SSL)
    -MAIN_MAIL_EMAIL_STARTTLS= Ús d'encriptació TLS (STARTTLS)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Mètode d'enviament de correu electrònic
    +MAIN_MAIL_SMTPS_ID=ID d'autenticació SMTP (si el servidor requereix autenticació)
    +MAIN_MAIL_SMTPS_PW=Contrasenya SMTP (si el servidor requereix autenticació)
    +MAIN_MAIL_EMAIL_TLS=Utilitza el xifratge TLS (SSL)
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
     MAIN_DISABLE_ALL_SMS=Desactivar globalment tot enviament de SMS (per mode de proves o demo)
     MAIN_SMS_SENDMODE=Mètode d'enviament de SMS
    -MAIN_MAIL_SMS_FROM=Número de telèfon per defecte per als enviaments SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Remitent per defecte per a correus enviats manualment (adreça de correu d'usuari o d'empresa)
    +MAIN_MAIL_SMS_FROM=Número de telèfon del remitent predeterminat per a l'enviament de SMS
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=Correu electrònic de l'usuari
     CompanyEmail=Correu electrònic de l'empresa
     FeatureNotAvailableOnLinux=Funcionalitat no disponible en sistemes Unix. Proveu el seu sendmail localment.
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Utilitats multi-mòduls
     ModuleFamilyExperimental=Mòduls experimentals
     ModuleFamilyFinancial=Mòduls financers (Comptabilitat/tresoreria)
     ModuleFamilyECM=Gestió Electrònica de Documents (GED)
    -ModuleFamilyPortal=Llocs web i altres aplicacions frontals
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfícies amb sistemes externs
     MenuHandlers=Gestors de menú
     MenuAdmin=Editor de menú
    @@ -309,15 +313,15 @@ DoNotUseInProduction=No utilitzar en producció
     ThisIsProcessToFollow=Aquests són els passos per al procés:
     ThisIsAlternativeProcessToFollow=Aquesta és una configuració alternativa per processar manualment:
     StepNb=Pas %s
    -FindPackageFromWebSite=Busca el paquet que t'ofereix les característiques que vols (per exemple en la web oficial %s)
    +FindPackageFromWebSite=Busca el paquet que t'ofereix les característiques que vols (per exemple en la web oficial %s).
     DownloadPackageFromWebSite=Descarrega el paquet (per exemple del lloc web oficial %s).
     UnpackPackageInDolibarrRoot=Descomprimeix els fitxers empaquetats en en el directori del servidor dedicat a Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=Per instal·lar un mòdul extern, descomprimir l'arxiu en el directori del servidor dedicat als mòduls: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
     SetupIsReadyForUse=La instal·lació del mòdul ha finalitzat. No obstant, ha d'habilitar i configurar el mòdul en la seva aplicació, aneu a la pàgina per configurar els mòduls: <a href="%s">%s</a>.
     NotExistsDirect=No s'ha definit el directori arrel alternatiu a un directori existent.<br>
     InfDirAlt=Des de la versió 3, és possible definir un directori arrel alternatiu. Això li permet emmagatzemar, en un directori dedicat, plug-ins i plantilles personalitzades.<br>Només ha de crear un directori a l'arrel de Dolibarr (per exemple: custom).<br>
     InfDirExample=<br>Declareu-lo al fitxer <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>Si aquestes línies ja hi són però comentades amb un "#",  llavors simplement descomenteu-les treient aquest caràcter.
    -YouCanSubmitFile=Per a aquest pas, podeu pujar el fitxer .ZIP del mòdul aquí:
    +YouCanSubmitFile=Alternativament, pots penjar el paquet de fitxers .zip:
     CurrentVersion=Versió actual de Dolibarr
     CallUpdatePage=Ves a la pàgina que actualitza l'estructura de base de dades i les dades: %s
     LastStableVersion=Última versió estable
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Dona un cop d'ull a la wiki per més detalls de tots els actor
     UseACacheDelay= Demora en memòria cau de l'exportació en segons (0 o buit sense memòria)
     DisableLinkToHelpCenter=Amagar l'enllaç "Necessita suport o ajuda" a la pàgina de login
     DisableLinkToHelp=Amaga l'enllaç a l'ajuda en línia "<b>%s</b>"
    -AddCRIfTooLong=No hi ha línies de tall automàtic, de manera que si el text és massa llarg en els documents, cal afegir els seus propis retorns de carro en el text mecanografiat.
    +AddCRIfTooLong=No hi ha línies de tall automátic, així que si el text es massa llarg no es mostrarà en els documents. Per favor afegeix un salt de línia a l'àrea de text si fos necessari.
     ConfirmPurge=Estàs segur de voler realitzar aquesta purga? <br> Això esborrarà definitivament totes les dades dels seus fitxers (àrea GED, arxius adjunts etc.).
     MinLength=Longuitud mínima
     LanguageFilesCachedIntoShmopSharedMemory=arxius .lang en memòria compartida
     LanguageFile=Fitxer d'idioma
    -ExamplesWithCurrentSetup=Exemples amb la configuració activa actual
    +ExamplesWithCurrentSetup=Exemples amb configuració actual
     ListOfDirectories=Llistat de directoris de plantilles OpenDocument
     ListOfDirectoriesForModelGenODT=Llista de directoris que contenen fitxers de plantilles amb format OpenDocument.<br><br>Posa aqui el l'adreça completa dels directoris.<br>Afegeix un "intro" entre cada directori.<br>Per afegir un directori del mòdul GED, afegeix aquí <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Els fitxers d'aquests directoris han de tenir l'extensió <b>.odt</b> o <b>.ods</b>.
    -NumberOfModelFilesFound=Nombre d'arxius de plantilles ODT trobats en aquest(s) directori(s)
    +NumberOfModelFilesFound=Nombre d'arxius de plantilles ODT/ODS trobats en aquest(s) directori(s)
     ExampleOfDirectoriesForModelGen=Exemples de sintaxi:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=Posant les següents etiquetes a la plantilla, obtindrà una substitució amb el valor personalitzat en generar el document:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Crear_un_modelo_de_documento_ODT
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Clau per utilitzar els Web Services (paràmetre "dolibar
     TestSubmitForm=Formulari de proves
     ThisForceAlsoTheme=Utilitzar aquest gestor de menús predetermina també el tema, sigui quina sigui l'elecció de l'usuari. A més, aquest gestor de menús, especial per a smartphones, només funciona en alguns telèfons. Utilitzar un altre gestor Si veieu qualsevol problema.
     ThemeDir=Directori dels temes
    -ConnectionTimeout=Timeout de connexió
    +ConnectionTimeout=Temps d'espera de connexió
     ResponseTimeout=Timeout de resposta
     SmsTestMessage=Missatge de prova de __PHONEFROM__ per __PHONETO__
     ModuleMustBeEnabledFirst=El mòdul "<b>%s</b>" ha d'habilitar-se primer si necessita aquesta funcionalitat.
     SecurityToken=Clau per encriptar urls
    -NoSmsEngine=No hi ha cap gestor d'enviament de SMS. Els gestors d'enviament de SMS no s'instal·len en estàndard (ja que depenen d'un proveïdor), però pot trobar a la plataforma http://www.dolistore.com
    +NoSmsEngine=No hi ha cap gestor d'enviament de SMS. Els gestors d'enviament de SMS no s'instal·len per defecte ja que depenen de cada proveïdor, però pot trobar-los a la plataforma %s
     PDF=PDF
     PDFDesc=Defineix les opcions globals relacionades a la generació de PDF
     PDFAddressForging=Regles de visualització d'adreces
     HideAnyVATInformationOnPDF=Amagar qualsevol informació relacionada amb l'IVA al PDF que es genera
     PDFRulesForSalesTax=Regles per l'IVA
     PDFLocaltax=Regles per %s
    -HideLocalTaxOnPDF=Amagar la tasa %s a la columna d'impostos de venda del pdf
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Amagar descripció dels productes en la generació dels PDF
     HideRefOnPDF=Amagar referència dels productes en la generació dels PDF
     HideDetailsOnPDF=Oculta els detalls de les línies de producte en els PDFs generats
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Llista de selecció
     ExtrafieldSelectList = Llista de selecció de table
     ExtrafieldSeparator=Separador (no és un camp)
     ExtrafieldPassword=Contrasenya
    -ExtrafieldRadio=Botons d'opció (només una opció)
    +ExtrafieldRadio=Botons tipus radio (només una opció)
     ExtrafieldCheckBox=Caselles de verificació
     ExtrafieldCheckBoxFromList=Caselles de verificació des de taula
     ExtrafieldLink=Enllaç a un objecte
     ComputedFormula=Camp calculat
     ComputedFormulaDesc=Podeu introduir aquí una fórmula usant altres propietats d'objecte o qualsevol codi PHP per obtenir un valor calculat dinàmic. Podeu utilitzar qualsevol fórmula compatible amb PHP, inclòs l'operador "?" i els següents objectes globals: <strong> $db, $conf, $langs, $mysoc, $user, $object</strong>. <br><strong> AVÍS</strong>: Només algunes propietats de $object poden estar disponibles. Si necessiteu una propietat que no s'hagi carregat, tan sols busqueu l'objecte en la formula com en el segon exemple. <br> L'ús d'un camp calculat significa que no podeu introduir cap valor des de la interfície. A més, si hi ha un error de sintaxi, la fórmula potser no torni res.  <br><br> Exemple de fórmula: <br> $object->id <10? round($object->id/2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)  <br><br> Exemple de recarrega d'object<br> (($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br> Un altre exemple de fórmula per forçar la càrrega de l'objecte i el seu objecte principal: <br> (($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Mantenir aquest camp buit significa que el valor s'emmagatzema sense xifrar (el camp només ha d'estar amagat amb una estrella sobre la pantalla). <br> Establiu aquí el valor 'auto' per utilitzar la regla de xifrat per defecte per guardar la contrasenya a la base de dades (el valor llegit serà només el "hash", no hi haurà cap manera de recuperar el valor original)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=La llista de valors ha de ser un conjunt de línies amb un par del tipus clau,valor (on la clau no pot ser '0') <br><br> per exemple : <br>clau1,valor1<br>clau2,valor2<br>clau3,valor3<br>...<br><br>Per tenir la llista depenent d'una altra llista d'atributs complementaris: <br>1,valor1|options_<i>codi_llista_pare</i>:clau_pare<br>2,valor2|options_<i>codi_llista_pare</i>:clau_pare <br><br>Per tenir la llista depenent d'una altra llista:<br>1,valor1|<i>codi_llista_pare</i>:clau_pare<br>2,valor2|<i>codi_llista_pare</i>:clau_pare
     ExtrafieldParamHelpcheckbox=La llista de valor ha de ser un conjunt de línies del tipus clau,valor (a on la clau no pot ser '0')<br><br> per exemple : <br>1,valor1<br>2,valor2<br>3,valor3<br>...
     ExtrafieldParamHelpradio=La llista de valor ha de ser un conjunt de línies del tipus clau,valor (a on la clau no pot ser '0')<br><br> per exemple : <br>1,valor1<br>2,valor2<br>3,valor3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Enllaç per defecte
     SetAsDefault=Indica'l com Defecte
     ValueOverwrittenByUserSetup=Atenció: Aquest valor pot ser sobreescrit per un valor específic de la configuració de l'usuari (cada usuari pot tenir la seva pròpia url clicktodial)
     ExternalModule=Mòdul extern - Instal·lat al directori %s
    -BarcodeInitForThirdparties=Inici massiu de codi de barres per tercers
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Inici massiu de codi de barres per productes o serveis
     CurrentlyNWithoutBarCode=Actualment, té <strong>%s</strong> registres a <strong>%s</strong> %s sense codi de barres definit.
     InitEmptyBarCode=Iniciar valor pels %s registres buits
     EraseAllCurrentBarCode=Esborrar tots els valors de codi de barres actuals
     ConfirmEraseAllCurrentBarCode=Esteu segur que voleu esborrar tots els valors de codis de barres actuals?
     AllBarcodeReset=S'han eliminat tots els valors de codi de barres
    -NoBarcodeNumberingTemplateDefined=No hi ha plantilla de codi de barres habilitada a la configuració del mòdul de codi de barres.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Habilita la caché de fitxers
     ShowDetailsInPDFPageFoot=Afegeix més detalls en el peu dels fitxers PDF, com l'adreça de l'empresa, o altres camps (el NIF/CIF, codis professionals, ...).
     NoDetails=No hi ha més detalls en el peu
     DisplayCompanyInfo=Mostra l'adreça de l'empresa
     DisplayCompanyManagers=Mostra el gestor de noms
     DisplayCompanyInfoAndManagers=Mostra l'adreça de l'empresa i els noms del gerència
    -EnableAndSetupModuleCron=Si vols tenir aquesta factura recurrent generada automàticament, el mòdul *%s* s'ha d'habilitar i configurar correctament. D'altra banda, la generació de factures s'ha de fer manualment des d'aquesta plantilla amb el bóto "Crea". Tingues en compte que si actives la generació automàtica, pots continuar generant factures manuals. No és possible la generació de duplicitats pel mateix període. 
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Retorna un codi comptable buit.
     ModuleCompanyCodeDigitaria=El codi comptable depèn del codi del Tercer. El codi està format pel caràcter "C" a la primera posició seguit dels 5 primers caràcters del codi del Tercer.
     Use3StepsApproval=Per defecte, les comandes de compra necessiten ser creades i aprovades per 2 usuaris diferents (el primer pas/usuari és per a crear i un altre pas/usuari per aprovar. Noteu que si un usuari te permisos tant per crear com per aprovar, un sol pas/usuari serà suficient). Amb aquesta opció, tens la possibilitat d'introduir un tercer pas/usuari per a l'aprovació, si l'import es superior a un determinat valor (d'aquesta manera són necessaris 3 passos: 1=validació, 2=primera aprovació i 3=segona aprovació si l'import és suficient).<br>Deixa-ho en blanc si només vols un nivell d'aprovació (2 passos); posa un valor encara que sigui molt baix (0,1) si vols una segona aprovació (3 passos).
     UseDoubleApproval=Utilitza una aprovació en 3 passos quan l'import (sense impostos) sigui més gran que...
    -WarningPHPMail=ADVERTIMENT: sovint és millor configurar correus electrònics de sortida per utilitzar el servidor de correu electrònic del vostre proveïdor en comptes de la configuració predeterminada. Alguns proveïdors de correu electrònic (com Yahoo) no us permeten enviar un correu electrònic des d'un altre servidor que el seu propi servidor. La seva configuració actual utilitza el servidor de l'aplicació per enviar correus electrònics i no el servidor del vostre proveïdor de correu electrònic, de manera que alguns destinataris (el que sigui compatible amb el protocol restrictiu de DMARC), us preguntaran al vostre proveïdor de correu electrònic si poden acceptar el vostre correu electrònic i alguns proveïdors de correu electrònic (com Yahoo) pot respondre "no" perquè el servidor no és un servidor d'ells, així que pocs dels vostres correus electrònics enviats no es poden acceptar (tingueu cura també de la quota d'enviament del vostre proveïdor de correu electrònic). Si el vostre proveïdor de correu electrònic (com Yahoo) té aquesta restricció, heu de canviar la configuració de correu electrònic per triar l'altre mètode "servidor SMTP" i introduir el servidor SMTP i les credencials proporcionades pel vostre proveïdor de correu electrònic (demaneu al proveïdor d'EMail que obtingui credencials SMTP per al vostre compte).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=Si el vostre proveïdor SMTP necessita restringir al client de correu a una adreça IP (és raro), aquesta és la IP de l'agent d'usuari de correu (MUA) per la vostra aplicació ERP CRM: <strong>%s</strong>.
     ClickToShowDescription=Clica per mostrar la descripció
    -DependsOn=Aquest mòdul necesita el/s mòdul/s
    +DependsOn=This module needs the module(s)
     RequiredBy=Aquest mòdul és requerit pel/s mòdul/s
    -TheKeyIsTheNameOfHtmlField=Aquest és el nom del camp HTML. Això necessita tenir coneixements tècnics per llegir el contingut de la pàgina HTML per obtenir el nom clau d'un camp.
    -PageUrlForDefaultValues=Has d'introduir aquí l'URL relatiu de la pàgina. Si inclous paràmetres a l'URL, els valors predeterminats seran efectius si tots els paràmetres s'estableixen en el mateix valor. Exemples:
    -PageUrlForDefaultValuesCreate=<br>Per formulari per crear un nou Tercer, és <strong>%s</strong>,<br>Si voleu un valor per defecte només si la URL conté algun paràmetre, llavors podeu emprar <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>Per la plana que enllista els Tercers, és <strong>%s</strong>,<br>Si voleu un valor per defecte només si la URL conté algun paràmetre, llavors podeu emprar <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Permet l'ús de valors predeterminats personalitzats
    -EnableOverwriteTranslation=Habilita l'ús de la traducció sobreescrita
    -GoIntoTranslationMenuToChangeThis=S'ha trobat una traducció per a la clau amb aquest codi, per tant, per canviar aquest valor, heu d'editar-lo des de  Inici-Configuració-Traducció.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Avís, establir un ordre de classificació predeterminat pot provocar un error tècnic en passar a la pàgina de la llista si el camp és un camp desconegut. Si experimentes aquest error, torna a aquesta pàgina per eliminar l'ordre de classificació predeterminat i restablir el comportament predeterminat.
     Field=Camp
     ProductDocumentTemplates=Plantilles de documents per generar document de producte
    @@ -476,16 +480,18 @@ SendEmailsReminders=Enviar recordatoris d'agenda per correu electrònic
     davDescription=Afegeix un component per ser un servidor DAV
     DAVSetup=Configuració del mòdul DAV
     DAV_ALLOW_PUBLIC_DIR=Habilitar el directori públic (un directori WebDav que no requereix accés amb contrasenya)
    -DAV_ALLOW_PUBLIC_DIRTooltip=El directori públic WebDav és un directori WebDav al qual tothom pot accedir (per llegir i/o escriure), sense necessitat de tenir un compte d'accés amb contrasenya.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Usuaris i grups
     Module0Desc=Gestió d'usuaris / empleats i grups
     Module1Name=Tercers
    -Module1Desc=Gestió d'empreses i contactes (clients, clients potencials...)
    +Module1Desc=Gestió de tercers i contactes (clients, clients potencials...)
     Module2Name=Comercial
     Module2Desc=Gestió comercial
     Module10Name=Comptabilitat
    -Module10Desc=Informes de compatbilitat senzills (diaris, facturació) basats en el contingut a la base de dades. No empra cap taula de llibre major.
    +Module10Desc=Activació d'informes simples de comptabilitat (diaris, vendes) a partir del contingut de la base de dades. No utilitza cap taula de comptabilitat.
     Module20Name=Pressupostos
     Module20Desc=Gestió de pressupostos/propostes comercials
     Module22Name=E-Mailings
    @@ -495,7 +501,7 @@ Module23Desc=Realitza el seguiment del consum d'energies
     Module25Name=Comandes de clients
     Module25Desc=Gestió de comandes de clients
     Module30Name=Factures
    -Module30Desc=Gestió de factures i abonaments de clients. Gestió factures de proveïdors
    +Module30Desc=Gestió de factures i abonaments de clients. Gestió de factures i abonaments de proveïdors
     Module40Name=Proveïdors
     Module40Desc=Gestió de proveïdors i compres (ordres de compra i factures)
     Module42Name=Registre de depuració
    @@ -511,13 +517,13 @@ Module52Desc=Gestió de stocks de productes
     Module53Name=Serveis
     Module53Desc=Gestió de serveis
     Module54Name=Contractes/Subscripcions
    -Module54Desc=Gestió de contractes (serveis o subscripcions diaries)
    +Module54Desc=Gestió de contractes (serveis o subscripcions recurrents)
     Module55Name=Codis de barra
     Module55Desc=Gestió dels codis de barra
     Module56Name=Telefonia
     Module56Desc=Gestió de la telefonia
     Module57Name=Domiciliacions
    -Module57Desc=Gestió de domiciliacions. També inclou generació del fitxer SEPA per als països europeus
    +Module57Desc=Gestió de domiciliacions. També inclou generació del fitxer SEPA per als països europeus.
     Module58Name=ClickToDial
     Module58Desc=Integració amb ClickToDial
     Module59Name=Bookmark4u
    @@ -528,9 +534,9 @@ Module75Name=Notes de despeses i desplaçaments
     Module75Desc=Gestió de les notes de despeses i desplaçaments
     Module80Name=Expedicions
     Module80Desc=Gestió d'expedicions i recepcions
    -Module85Name=Bancs i caixes
    +Module85Name=Bancs i Efectiu
     Module85Desc=Gestió de comptes bancaris o efectiu
    -Module100Name=External site
    +Module100Name=Lloc extern
     Module100Desc=Inclou qualsevol lloc web extern en els menús de Dolibarr, veient-lo en un frame
     Module105Name=Mailman i SPIP
     Module105Desc=Interfície amb Mailman o SPIP pel mòdul de Socis
    @@ -546,27 +552,27 @@ Module310Name=Socis
     Module310Desc=Gestió de socis d'una entitat
     Module320Name=Fils RSS
     Module320Desc=Addició de fils d'informació RSS en les pantalles Dolibarr
    -Module330Name=Bookmarks
    -Module330Desc=Gestió de marcadors
    -Module400Name=Projectes/Oportunitats/Leads
    +Module330Name=Marcadors i dreceres
    +Module330Desc=Crear marcadors, sempre accessibles, a les pàgines internes o externes a les quals accediu sovint
    +Module400Name=Projectes o Oportunitats
     Module400Desc=Gestió de projectes, oportunitats/leads i/o tasques. Pots asignar també qualsevol element (factura, comanda, pressupost, intervenció...) a un projecte i obtindre una vista transversal del projecte.
     Module410Name=Webcalendar
     Module410Desc=Interface amb el calendari webcalendar
     Module500Name=Impostos i despeses especials
     Module500Desc=Gestió d'altres despeses (IVA, IRPF, altres impostos, dividends, ...)
     Module510Name=Pagament de salaris dels empleats
    -Module510Desc=Registre i seguiment del pagament dels salaris dels empleats
    +Module510Desc=Record and track employee payments
     Module520Name=Préstec
     Module520Desc=Gestió de préstecs
     Module600Name=Notificacions sobre events de negoci
    -Module600Desc=Enviar notificacions per correu (arran de cert esdeveniments de negoci) a usuaris (configuració a establir per a cada usuari), a contactes de tercers (configuració a establir per a cada tercer) o a adreces fixes
    -Module600Long=Tingueu en compte que aquest mòdul està dedicat a enviar correus electrònics en temps real quan es produeix un esdeveniment de negoci dedicat. Si cerqueu una característica per enviar recordatoris per correu electrònic dels esdeveniments de l'agenda, aneu a la configuració del mòdul Agenda.
    +Module600Desc=Enviar notificacions per correu arran de cert esdeveniments a usuaris (configuració a establir per a cada usuari), a contactes de tercers (configuració a establir per a cada tercer) o a adreces fixes
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Variants de producte
    -Module610Desc=Permet la creació de variants de producte en funció dels atributs (color, mida, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donacions
     Module700Desc=Gestió de donacions
     Module770Name=Informes de despeses
    -Module770Desc=Informes de despeses de gestió i reclamació (transport, menjar, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Pressupost del proveïdor
     Module1120Desc=Sol·licitar al venedor cotització i preus
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Generació de documents de correu massiu
     Module1780Name=Etiquetes
     Module1780Desc=Crear etiquetes/categories (productes, clients, venedors, contactes o membres)
     Module2000Name=Editor WYSIWYG
    -Module2000Desc=Permet editar algunes àrees de text utilitzant un editor avançat (basat en CKEditor)
    +Module2000Desc=Permetre que els camps de text s'editin mitjançant CKEditor
     Module2200Name=Multi-preus
     Module2200Desc=Activar l'ús d'expressions matemàtiques per als preus
     Module2300Name=Tasques programades
     Module2300Desc=Gestió de tasques programades (alias cron o taula chrono)
     Module2400Name=Esdeveniments/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Seguiu els esdeveniments o cites. Permitir que Dolibarr registri esdeveniments automàtics per tal de realitzar seguiment o registri esdeveniments manuals o reunions. Aquest és el mòdul més important per a una bona gestió de relacions amb clients o proveïdors.
     Module2500Name=SGD / GCE
     Module2500Desc=Sistema de gestió de documents / Gestió de continguts electrònics. Organització automàtica dels vostres documents generats o emmagatzemats. Compartiu-los quan ho necessiteu.
     Module2600Name=Serveis API/WEB (servidor SOAP)
    @@ -590,46 +596,50 @@ Module2600Desc=Habilita el servidor SOAP de Dolibarr que ofereix serveis API
     Module2610Name=Serveis API/WEB (servidor REST)
     Module2610Desc=Habilita el servidor REST de Dolibarr que ofereix serveis API
     Module2660Name=Crida a WebServices (client SOAP)
    -Module2660Desc=Habilitar els serveis de client web de Dolibarr (pot ser utilitzar per gravar dades/sol·licituds de servidors externs. De moment només és suportat en comandes a proveïdors)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Utilitza el servei en línia de Gravatar (www.gravatar.com) per mostrar fotos dels usuaris/socis (que es troben en els seus missatges de correu electrònic). Necessita un accés a Internet
    +Module2700Desc=Utilitza el servei en línia de Gravatar (www.gravatar.com) per mostrar fotos dels usuaris/membres (que es troben en els seus missatges de correu electrònic). Necessita un accés a Internet
     Module2800Desc=Client FTP
     Module2900Name=GeoIPMaxmind
     Module2900Desc=Capacitats de conversió GeoIP Maxmind
     Module3100Name=Skype
     Module3100Desc=Afegeix un botó d'Skype a les fitxes dels usuaris / tercers / contactes / socis
     Module3200Name=Arxius inalterables
    -Module3200Desc=Activa el registre d'alguns esdeveniments de negoci en un registre inalterable. Els esdeveniments s'arxiven en temps real. El registre és una taula d'esdeveniments encadenats que només es poden llegir i exportar. Aquest mòdul pot ser obligatori per a alguns països.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=RRHH
     Module4000Desc=Gestió de recursos humans (gestionar departaments, empleats, contractes i "feelings")
     Module5000Name=Multi-empresa
     Module5000Desc=Permet gestionar diverses empreses
     Module6000Name=Workflow
    -Module6000Desc=Workflow management (automatic creation of object and/or automatic status change)
    +Module6000Desc=Gestió del flux de treball (creació automàtica d'objectes i / o canvi d'estat automàtic)
     Module10000Name=Pàgines web
     Module10000Desc=Crear un portal web amb un editor WYSIWG. Només heu de configurar el vostre servidor web (Apache, Nginx, ...) per apuntar al directori dedicat de Dolibarr per tenir-ho publicat en línia amb el vostre propi domini.
     Module20000Name=Dies lliures
     Module20000Desc=Gestió dels dies lliures dels empleats
     Module39000Name=Lots de productes
     Module39000Desc=Gestió de lots o series, dates de caducitat i venda dels productes
    +Module40000Name=Multidivisa
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Mòdul per oferir una plana de pagament en línia, acceptant pagaments amb targeta de dèbit/crèdit via PayBox. Pot ser emprat per permetre als vostres clients fer pagaments lliures o bé per pagar algun objecte particular del Dolibarr (factura, comanda, etc...)
    +Module50000Desc=Ofereix als clients pagaments en línia via PayBox (targetes de crèdit/dèbit). Això pot ser usat per permetre als seus clients realitzar pagaments lliures o pagaments en un objecte de Dolibarr en particular (factura, comanda...)
     Module50100Name=TPV
     Module50100Desc=Mòdul Terminal Punt Venda (TPV)
    +Module50150Name=Terminals Punt de Venda
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Mòdul per oferir una pàgina de pagament en línia que accepti pagaments mitjançant PayPal (targeta de crèdit o amb crèdit PayPal). Això es pot utilitzar per permetre als vostres clients fer pagaments lliures o el pagament d'un objecte particular de Dolibarr (factura, comanda, ...)
    +Module50200Desc=Ofereix als clients pagaments en línia via PayPal (targetes de crèdit/dèbit). Això pot ser usat per permetre als seus clients realitzar pagaments lliures o pagaments en un objecte de Dolibarr en particular (factura, comanda...)
     Module50400Name=Comptabilitat (avançat)
    -Module50400Desc=Gestió comptable (entrades dobles, suport general i llibres majors auxiliars). Exporta el llibre major en diversos altres formats de programari de comptabilitat.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=L'impressió directa (sense obrir els documents) utilitza l'interfície Cups IPP (L'impressora té que ser visible pel servidor i CUPS té que estar instal·lat en el servidor)
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Enquesta o votació
    -Module55000Desc=Mòdul per crear enquestes o votacions online (com Doodle, Studs, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Marges
     Module59000Desc=Mòdul per gestionar els marges
     Module60000Name=Comissions
     Module60000Desc=Mòdul per gestionar les comissions
    -Module62000Name=Incoterm
    -Module62000Desc=Afegir funcions per gestionar Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Recursos
     Module63000Desc=Gestiona els recursos (impressores, cotxes, habitacions...) que pots compartir en esdeveniments
     Permission11=Consulta factures de client
    @@ -651,7 +661,7 @@ Permission32=Crear/modificar productes
     Permission34=Elimina productes
     Permission36=Veure/gestionar els productes ocults
     Permission38=Exportar productes
    -Permission41=Consulta projectes i tasques (els projectes compartits i els projectes en que sóc el contacte). També pots introduir els temps consumits, per a mi o la meva jerarquia, en tasques asignades (full de temps)
    +Permission41=Llegir projectes i tasques (projectes compartits i projectes dels que sóc contacte). També pot introduir temps consumits, per a mi o els meus subordinats, en tasques assignades (Fulls de temps).
     Permission42=Crea/modifica projectes (projectes compartits i projectes dels que sóc contacte). També pot crear tasques i assignar usuaris a projectes i tasques
     Permission44=Elimina projectes (projectes compartits i projectes dels que en sóc contacte)
     Permission45=Exporta projectes
    @@ -686,7 +696,7 @@ Permission109=Eliminar expedicions
     Permission111=Consultar comptes financers (comptes bancaris, caixes)
     Permission112=Crear/modificar quantitat/eliminar registres bancaris
     Permission113=Configuració de comptes financers (crear i gestionar les categories)
    -Permission114=Reconciliar transaccions
    +Permission114=Reconcilia les transaccions
     Permission115=Exporta transaccions i extractes
     Permission116=Captar transferències entre comptes
     Permission117=Gestionar enviament de xecs
    @@ -725,7 +735,7 @@ Permission187=Tancar comandes a proveïdors
     Permission188=Anul·lar comandes a proveïdors
     Permission192=Crear línies
     Permission193=Cancel·lar línies
    -Permission194=Consultar l'ample de banda de línies
    +Permission194=Llegeix les línies d'ample de banda
     Permission202=Crear connexions ADSL
     Permission203=Realitzar comanda de connexions
     Permission204=Demanar connexions
    @@ -750,7 +760,7 @@ Permission244=Veure contingut de categories ocultes
     Permission251=Consultar altres usuaris
     PermissionAdvanced251=Consultar altres usuaris
     Permission252=Consultar els permisos d'altres usuaris
    -Permission253=Crear/modificar altres usuaris i els seus permisos
    +Permission253=Crea/modifica altres usuaris, grups i permisos
     PermissionAdvanced253=Crear/modificar usuaris interns/externs i els seus permisos
     Permission254=Crea/modifica només usuaris externs
     Permission255=Eliminar o desactivar altres usuaris
    @@ -765,7 +775,7 @@ Permission283=Elimina contactes
     Permission286=Exporta contactes
     Permission291=Consultar tarifes
     Permission292=Indica permisos en les tarifes
    -Permission293=Modificar les tarifes a clients
    +Permission293=Modificar les tarifes de clients
     Permission300=Consultar codis de barra
     Permission301=Crear/modificar codis de barra
     Permission302=Eliminar codi de barra
    @@ -787,11 +797,9 @@ Permission401=Consultar havers
     Permission402=Crear/modificar havers
     Permission403=Validar havers
     Permission404=Eliminar havers
    -Permission501=Consulta els contractes/salaris dels empleats
    -Permission502=Crea/modifica els contractes/salaris dels empleats
    -Permission511=Consulta el pagament dels salaris
    -Permission512=Crea/modifica el pagament dels salaris
    -Permission514=Elimina salaris
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Exportació salaris
     Permission520=Consulta préstecs
     Permission522=Crear/modificar préstecs
    @@ -844,8 +852,8 @@ Permission1251=Llançar les importacions en massa a la base de dades (càrrega d
     Permission1321=Exporta factures de clients, atributs i cobraments
     Permission1322=Reobrir una factura pagada
     Permission1421=Exporta comandes de clients i atributs
    -Permission20001=Consulta els dies de lliure disposició (els propis i els dels teus subordinats)
    -Permission20002=Crea/modifica els teus dies de lliure disposició (els propis i els dels teus subordinats)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Elimina les peticions de dies lliures retribuïts
     Permission20004=Consulta tots els dies de lliure disposició (inclòs els usuaris no subordinats)
     Permission20005=Crea/modifica els dies de lliure disposició per tothom (inclòs els usuaris no subordinats)
    @@ -880,8 +888,8 @@ Permission63001=Consulta recursos
     Permission63002=Crea/modifica recursos
     Permission63003=Elimina recursos
     Permission63004=Enllaça recursos en esdeveniments de l'agenda
    -DictionaryCompanyType=Tipus de tercers
    -DictionaryCompanyJuridicalType=Formes jurídiques de tercers
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Perspectiva nivell client potencial
     DictionaryCanton=Província
     DictionaryRegion=Regions
    @@ -891,10 +899,10 @@ DictionaryCivility=Títols personals i professionals
     DictionaryActions=Tipus d'esdeveniments de l'agenda
     DictionarySocialContributions=Tipus d'impostos varis
     DictionaryVAT=Taxa d'IVA o Impost de vendes
    -DictionaryRevenueStamp=Amount of tax stamps
    +DictionaryRevenueStamp=Imports de segells fiscals
     DictionaryPaymentConditions=Condicions de pagament
     DictionaryPaymentModes=Modes de pagament
    -DictionaryTypeContact=Tipus de contactes/adreces
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Tipus de pàgines web / contenidors
     DictionaryEcotaxe=Barems CEcoParticipación (DEEE)
     DictionaryPaperFormat=Formats paper
    @@ -908,47 +916,47 @@ DictionarySource=Orígens de pressupostos/comandes
     DictionaryAccountancyCategory=Grups personalitzats per informes
     DictionaryAccountancysystem=Models de plans comptables
     DictionaryAccountancyJournal=Diari de comptabilitat
    -DictionaryEMailTemplates=Models d'emails
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Unitats
     DictionaryProspectStatus=Estat del client potencial
    -DictionaryHolidayTypes=Tipus de dies lliures
    -DictionaryOpportunityStatus=Estat de l'oportunitat pel projecte/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Informe de despeses - Categories de transport
     DictionaryExpenseTaxRange=Informe de despeses - Rang per categoria de transport
     SetupSaved=Configuració desada
     SetupNotSaved=Configuració no desada
     BackToModuleList=Retornar llista de mòduls
    -BackToDictionaryList=Tornar a la llista de diccionaris
    -TypeOfRevenueStamp=Type of tax stamp
    +BackToDictionaryList=Back to list of Dictionaries
    +TypeOfRevenueStamp=Tipus de segell fiscal
     VATManagement=Gestió IVA
    -VATIsUsedDesc=El tipus d'IVA proposat per defecte en les creacions de pressupostos, factures, comandes, etc. respon a la següent regla: <br> Si el venedor no està subjecte a IVA, asigna IVA per defecte a 0. Final de regla. <br>Si el país del venedor=país del comprador, asigna per defecte el IVA del producte en el país venut. Final de regla. <br> Si el venedor i comprador resideixen a la Comunitat Europea i els béns venuts són productes de transport (cotxe, vaixell, avió), asigna IVA per defecte a 0 (l'IVA ha de ser pagat pel comprador a la hisenda pública del seu país i no al venedor). Final de regla <br> Si venedor i comprador resideixen a la Comunitat Europea i el comprador no és una empresa, asigna per defecte l'IVA del producte venut. Final de regla. <br> Si el venedor i comprador resideixen a la Comunitat Europea i el comprador és una empresa, asigna per defecte l'IVA 0 Final de regla. <br> En qualsevol altre cas l'IVA proposat per defecte és 0. Final de regla.
    +VATIsUsedDesc=Per defecte quan es creen pressupostos, factures, comandes, etc. el tipus d'IVA segueix la regla estàndard seleccionada:<br>. Si el venedor no està subjecte a IVA, llavors IVA per defecte és 0. Final de la regla<br> Si (el país del venedor = país del comprador), llavors l'IVA per defecte és igual a l'IVA del producte al país del venedor. Fi de la regla. <br>Si el venedor i el comprador són de la Comunitat Europea i els béns són productes de transport (cotxe, vaixell, avió), l'IVA per defecte és 0. Aquesta regla depèn del país del venedor - si us plau consulta el teu assessor comptable. L'IVA ha de ser pagat pel comprador a la hisenda del seu país i no al venedor. Fi de la regla. <br>Si el venedor i el comprador estan tots dos a la Comunitat Europea i el comprador no és una empresa (no té CIF intracomunitari), llavors l'IVA per defecte és l'IVA del país del venedor. Fi de la regla. <br>Si el venedor i el comprador són de la Comunitat Europea i el comprador és una empresa (amb CIF intracomunitari), llavors l'IVA és 0 per defecte. Fi de la regla. <br>En qualsevol altre cas l'IVA proposat per defecte és 0. Fi de la regla.
     VATIsNotUsedDesc=El tipus d'IVA proposat per defecte és 0. Aquest és el cas d'associacions, particulars o algunes petites societats.
    -VATIsUsedExampleFR=A França, es tracta de les societats o organismes que trien un règim fiscal general (General simplificat o General normal), règim en el qual es declara l'IVA.
    +VATIsUsedExampleFR=A França, es tracta de les societats o organismes que trien un règim fiscal general (General simplificat o General normal). Règim en el qual es declara l'IVA.
     VATIsNotUsedExampleFR=A França, es tracta d'associacions exemptes d'IVA o societats, organismes o professions liberals que han triat el règim fiscal de mòduls (IVA en franquícia), pagant un IVA en franquícia sense fer declaració d'IVA. Aquesta elecció fa aparèixer l'anotació "IVA no aplicable - art-293B del CGI" en les factures.
     ##### Local Taxes #####
     LTRate=Tarifa
     LocalTax1IsNotUsed=No subjecte
    -LocalTax1IsUsedDesc=Utilitza un 2n tipus d'impost (diferent de l'IVA)
    -LocalTax1IsNotUsedDesc=No utilitzar un altre tipus d'impost (diferent de l'IVA)
    +LocalTax1IsUsedDesc=Utilitzar un 2on tipus d'impost (diferent de l'IVA)
    +LocalTax1IsNotUsedDesc=No utilitzar un 2on tipus d'impost (diferent de l'IVA)
     LocalTax1Management=2n tipus d'impost
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=No subjecte
    -LocalTax2IsUsedDesc=Utilitza un 3r tipus d'impost (diferent de l'IVA)
    -LocalTax2IsNotUsedDesc=No utilitzar un altre tipus d'impost (diferent de l'IVA)
    +LocalTax2IsUsedDesc=Utilitzar un 3er tipus d'impost (diferent de l'IVA)
    +LocalTax2IsNotUsedDesc=No utilitzar un 3er tipus d'impost (diferent de l'IVA)
     LocalTax2Management=3r tipus d'impost
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= Gestió Recàrrec d'Equivalència
    -LocalTax1IsUsedDescES= El tipus de RE proposat per defecte en les creacions de pressupostos, factures, comandes, etc. Respon a la següent regla:<br>Si el comprador no està subjecte a RE, RE per defecte= 0. Final de regla.<br>Si el comprador està subjecte a RE aleshores s'aplica valor de RE per defecte. Final de regla.<br>
    -LocalTax1IsNotUsedDescES= El tipus de RE proposat per defecte es 0. Final de regla.
    -LocalTax1IsUsedExampleES= A Espanya, es tracta de persones físiques: autònoms subjectes a uns epígrafs concrets de l'IAE.
    -LocalTax1IsNotUsedExampleES= A Espanya, es tracta d'empreses jurídiques: Societats limitades, anònimes, etc. i persones físiques (autònoms) subjectes a certs epígrafs de l'IAE.
    -LocalTax2ManagementES= Gestió IRPF
    -LocalTax2IsUsedDescES= El tipus d'IRPF proposat per defecte en les creacions de pressupostos, factures, comandes, etc. Respon a la següent regla:<br>Si el venedor no està subjecte a IRPF, IRPF per defecte= 0. Final de regla.<br>Si el venedor està subjecte a IRPF aleshores s'aplica valor d'IRPF per defecte. Final de regla.<br>
    -LocalTax2IsNotUsedDescES= El tipus d'IRPF proposat per defecte es 0. Final de regla.
    -LocalTax2IsUsedExampleES= A Espanya, es tracta de persones físiques: autònoms i professionals independents que presten serveis i empreses que han triat el règim fiscal de mòduls.
    -LocalTax2IsNotUsedExampleES= A Espanya, es tracta d'empreses no subjectes al règim fiscal de mòduls.
    +LocalTax1ManagementES=Gestió Recàrrec d'Equivalència
    +LocalTax1IsUsedDescES=El tipus de RE proposat per defecte en les creacions de pressupostos, factures, comandes, etc. Respon a la següent regla:<br>Si el comprador no està subjecte a RE, RE per defecte= 0. Final de regla.<br>Si el comprador està subjecte a RE aleshores s'aplica valor de RE per defecte. Final de regla.<br>
    +LocalTax1IsNotUsedDescES=El tipus de RE proposat per defecte es 0. Final de regla.
    +LocalTax1IsUsedExampleES=A Espanya, es tracta de persones físiques: autònoms subjectes a uns epígrafs concrets de l'IAE.
    +LocalTax1IsNotUsedExampleES=A Espanya, es tracta d'empreses jurídiques: Societats limitades, anònimes, etc. i persones físiques (autònoms) subjectes a certs epígrafs de l'IAE.
    +LocalTax2ManagementES=Gestió IRPF
    +LocalTax2IsUsedDescES=El tipus d'IRPF proposat per defecte en les creacions de pressupostos, factures, comandes, etc. Respon a la següent regla:<br>Si el venedor no està subjecte a IRPF, IRPF per defecte= 0. Final de regla.<br>Si el venedor està subjecte a IRPF aleshores s'aplica valor d'IRPF per defecte. Final de regla.<br>
    +LocalTax2IsNotUsedDescES=El tipus d'IRPF proposat per defecte es 0. Final de regla.
    +LocalTax2IsUsedExampleES=A Espanya, es tracta de persones físiques: autònoms i professionals independents que presten serveis i empreses que han triat el règim fiscal de mòduls.
    +LocalTax2IsNotUsedExampleES=A Espanya, es tracta d'empreses no subjectes al règim fiscal de mòduls.
     CalcLocaltax=Informes d'impostos locals
     CalcLocaltax1=Vendes - Compres
     CalcLocaltax1Desc=Els informes es calculen amb la diferència entre les vendes i les compres
    @@ -958,6 +966,8 @@ CalcLocaltax3=Vendes
     CalcLocaltax3Desc=Els informes es basen en el total de les vendes
     LabelUsedByDefault=Etiqueta utilitzada per defecte si no es troba cap traducció per aquest codi
     LabelOnDocuments=Etiqueta sobre documents
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
     NbOfDays=Nº de dies
     AtEndOfMonth=A final de mes
     CurrentNext=Actual/Següent
    @@ -984,7 +994,7 @@ DatabaseUser=Login de la base de dades
     DatabasePassword=Contrasenya de la base de dades
     Tables=Taules
     TableName=Nom de la taula
    -NbOfRecord=Nº Reg.
    +NbOfRecord=Nº de registres
     Host=Servidor
     DriverType=Tipus de driver
     SummarySystem=Resum de la informació de sistemes Dolibarr
    @@ -996,7 +1006,7 @@ Skin=Tema visual
     DefaultSkin=Tema visual por defecte
     MaxSizeList=Longuitud màxima de llistats
     DefaultMaxSizeList=Longitud màxima per defecte per a les llistes
    -DefaultMaxSizeShortList=Longitud màxima per defecte en llistes curtes (per exemple, en la fitxa de client)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Missatge del dia
     MessageLogin=Missatge del login
     LoginPage=Pàgina de login
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Zona de recerca permanent del menú de l'esquerra
     DefaultLanguage=Idioma per defecte a utilitzar (codi d'idioma)
     EnableMultilangInterface=Activar interface multiidioma
     EnableShowLogo=Mostra el logotip en el menú de l'esquerra
    -CompanyInfo=Informació de l'empresa/organització
    -CompanyIds=Identificació reglamentària
    +CompanyInfo=Empresa/Organització
    +CompanyIds=Identitats d'empresa/organització
     CompanyName=Nom/Raó social
     CompanyAddress=Adreça
     CompanyZip=Codi postal
    @@ -1022,29 +1032,29 @@ BankModuleNotActive=Mòdul comptes bancaris no activat
     ShowBugTrackLink=Mostra l'enllaç "<strong>%s</strong>"
     Alerts=Alertes
     DelaysOfToleranceBeforeWarning=Terminis de tolerància abans d'alerta
    -DelaysOfToleranceDesc=Aquesta pantalla permet configura els terminis de tolerància abans que es alerti amb el símbol %s, sobre cada element en retard.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Tolerància de retard (en dies) abans de l'alerta en esdeveniments planificats (esdevenitments de l'agenda) encara no completats
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolerància de retard (en dies) abans de l'alerta en projectes no tancats a temps.
    -Delays_MAIN_DELAY_TASKS_TODO=Tolerància de retard (en dies) abans de l'alerta en tasques planificades (tasques de projectes) encara no completades
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolerància de retard (en dies) abans de l'alerta en comandes encara no processades
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolerància de retard abans de l'alerta (en dies) sobre pressupostos a tancar
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolerància de retard abans de l'alerta (en dies) sobre pressupostos no facturats
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerància de retard abans de l'alerta (en dies) sobre serveis a activar
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerància de retard abans de l'alerta (en dies) sobre serveis expirats
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerància de retard abans de l'alerta (en dies) sobre factures de proveïdor impagades
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerància de retard abans de l'alerta (en dies) sobre factures a client impagades
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerància de retard abans de l'alerta (en dies) sobre conciliacions bancàries pendents
    -Delays_MAIN_DELAY_MEMBERS=Tolerància de retard abans de l'alerta (en dies) sobre cotitzacions adherents en retard
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerància de retard abans de l'alerta (en dies) sobre xecs a ingressar
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerància de retard (en dies) abans d'alertar d'informes de despeses pendents d'aprovar
    -SetupDescription1=L'àrea de configuració són pels paràmetres de configuració inicials abans de començar a utilitzar Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Les altres entrades de configuració gestionen paràmetres opcionals.
    +DelaysOfToleranceDesc=Aquesta pantalla permet configura els terminis de tolerància abans que s'alerti amb el símbol %s, sobre cada element en retard.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Retard (en dies) sobre esdeveniments planificats (esdeveniments de l'agenda) encara no completats
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Retard abans de l'alerta (en dies) sobre comandes no processades
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Retard abans de l'alerta (en dies) sobre comandes de proveïdor no processades
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Retard abans de l'alerta (en dies) sobre pressupostos a tancar
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Retard abans de l'alerta (en dies) sobre pressupostos no facturats
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Retard abans de l'alerta (en dies) sobre serveis a activar
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Retard abans de l'alerta (en dies) sobre serveis expirats
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Retard abans de l'alerta (en dies) sobre factures de proveïdor impagades
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Altres entrades del menú de configuració proporcionen paràmetres opcionals.
     LogEvents=Auditoria de la seguretat d'esdeveniments
    -Audit=Auditoria
    +Audit=Esdeveniments de seguretat
     InfoDolibarr=Sobre Dolibarr
     InfoBrowser=Sobre el Navegador
     InfoOS=Sobre S.O.
    @@ -1056,20 +1066,20 @@ BrowserName=Nom del navegador
     BrowserOS=S.O. del navegador
     ListOfSecurityEvents=Llistat d'esdeveniments de seguretat Dolibarr
     SecurityEventsPurged=Esdeveniments de seguretat purgats
    -LogEventDesc=Podeu habilitar el registre d'esdeveniments de seguretat Dolibarr aquí. Els administradors poden veure el seu contingut a través de menú <b>Eines del sistema->Auditoria</b>. Atenció, aquesta característica pot consumir una gran quantitat de dades a la base de dades.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Els paràmetres de configuració només poden ser establerts per <b>usuaris administradors</b>.
     SystemInfoDesc=La informació del sistema és informació tècnica accessible només en només lectura als administradors.
     SystemAreaForAdminOnly=Aquesta àrea només és accessible als usuaris de tipus administradors. Cap permís Dolibarr permet estendre el cercle de usuaris autoritzats a aquesta áera.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Editeu en aquesta pàgina tota la informació coneguda sobre el vostre comptable
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=Número de fila
     DisplayDesc=Selecciona els paràmetres relacionats amb l'aparença de Dolibarr
     AvailableModules=Mòduls/complements disponibles
     ToActivateModule=Per activar els mòduls, aneu a l'àrea de Configuració (Inici->Configuració->Mòduls).
     SessionTimeOut=Timeout de sesions
    -SessionExplanation=Assegura que el període de sessions no expirarà abans d'aquest moment. Tanmateix, la gestió del període de sessions de PHP no garanteix que el període de sessions expirar després d'aquest període: Aquest serà el cas si un sistema de neteja del cau de sessions és actiu. <br>Nota: Sense mecanisme especial, el mecanisme intern per netejar el període de sessions de PHP tots els accessos <b>%s /%s</b>, però només al voltant de l'accés d'altres períodes de sessions.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Triggers disponibles
    -TriggersDesc=Els triggers són arxius que modifiquen el comportament del fluxe de treball de Dolibarr un cop s'han copiat a la carpeta <b>htdocs/core/triggers</b>. Realitzen noves accions activades pels esdeveniments de Dolibarr (creació d'empresa, validació factura, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers d'aquest arxiu desactivador pel sufix <b>-NORUN</b> en el nom de l'arxiu.
     TriggerDisabledAsModuleDisabled=Triggers d'aquest arxiu desactivats ja que el mòdul <b>%s</b> no està activat.
     TriggerAlwaysActive=Triggers d'aquest arxiu sempre actius, ja que els mòduls Dolibarr relacionats estan activats
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Afegeix totes les dades de referència. Pots afegir els teus valo
     ConstDesc=Aquesta pàgina et permet editar tots els altres paràmetres no disponibles en les pàgines anteriors. Principalment són paràmetres reservats per desenvolupadors o per casuístiques avançades. Per veure el llistat d'opcions <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">clica aquí</a>.
     MiscellaneousDesc=Tots els altres paràmetres relacionats amb la seguretat es defineixen aqui.
     LimitsSetup=Configuració de límits i precisions
    -LimitsDesc=Podeu definir aquí els límits i precisions utilitzats per Dolibarr
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Decimals màxims per als preus unitaris
     MAIN_MAX_DECIMALS_TOT=Decimals màxims per als preus totals
     MAIN_MAX_DECIMALS_SHOWN=Decimals màxims per als imports mostrats a la pantalla (Posar <b> ...</b> després del màxim si vol veure <b> ...</b> quan el nombre es trunque al mostrar a la pantalla)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Pas de rang d'arrodoniment (per països en què l'arrodon
     UnitPriceOfProduct=Preu unitari sense IVA d'un producte
     TotalPriceAfterRounding=Preu total després de l'arrodoniment
     ParameterActiveForNextInputOnly=Paràmetre efectiu només a partir de les properes sessions
    -NoEventOrNoAuditSetup=No s'han registrat esdeveniments de seguretat. Això pot ser normal si l'auditoria no ha estat habilitat a la pàgina "configuració->seguretat->auditoria".
    -NoEventFoundWithCriteria=No s'han trobat esdeveniments de seguretat per a aquests criteris de cerca.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Veure la configuració local de sendmail
     BackupDesc=Per realitzar una còpia de seguretat completa de Dolibarr, vostè ha de:
     BackupDesc2=Desa el contingut del directori de documents (<b>%s</b>) que conté tots els fitxers carregats i generats (per tant, inclou tots els fitxers de bolcat generats al pas 1)
    -BackupDesc3=Guardar el contingut de la seva base de dades (<b>%s</b>) a un archiu de bolcat. Per aixo pot utilitzar l'asistent a continuació
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=La carpeta arxivada haurà de guardar-se en un lloc segur
     BackupDescY=L'arxiu de bolcat generat haurà de guardar-se en un lloc segur.
    -BackupPHPWarning=La còpia de seguretat no pot ser garantida amb aquest mètode. És preferible utilitzar l'anterior
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Per restaurar una còpia de seguretat de Dolibarr, vostè ha de:
    -RestoreDesc2=Agafar l'arxiu (arxiu zip, per exemple) del directori dels documents i descomprimeix-lo en el directori dels documents d'una nova instal·lació de Dolibarr o a la carpeta dels documents d'aquesta instal·lació (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restaurar l'arxiu del bolcat guardat a la base de dades de la nova instal·lació de Dolibarr o d'aquesta instal·lació (<b>%s</b>). Atenció, una vegada realitzada la restauració, tindra d'utilitzar un login/contrasenya d'administrador existent en el moment de la copia de seguretat per connectar-se. Per restaurar la base de dades de l'instal·lació actual, pot utilitzar l'assistent a continuació.
     RestoreMySQL=Importació MySQL
     ForcedToByAModule= Aquesta regla està forçada a <b>%s</b> per un dels mòduls activats
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Ha d'executar la comanda des d'
     YourPHPDoesNotHaveSSLSupport=Funcions SSL no disponibles al vostre PHP
     DownloadMoreSkins=Més temes per descarregar
     SimpleNumRefModelDesc=Retorna el nombre sota el format %syymm-nnnn on yy és l'any, mm el mes i nnnn un comptador seqüencial sense ruptura i sense tornar a 0
    -ShowProfIdInAddress=Mostrar l'identificador professional en les direccions dels documents
    -ShowVATIntaInAddress=Oculta el NIF intracomunitari en les direccions dels documents
    +ShowProfIdInAddress=Mostra l'id professional amb adreces en els documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Traducció parcial
    -MAIN_DISABLE_METEO=Deshabilitar la vista meteo
    +MAIN_DISABLE_METEO=Desactiva la visualització meteorològica
     MeteoStdMod=Mode estàndard
     MeteoStdModEnabled=Mode estàndard habilitat
     MeteoPercentageMod=Mode percentual
     MeteoPercentageModEnabled=Mode de percentatge activat
     MeteoUseMod=Prèmer per utilitzar %s
     TestLoginToAPI=Comprovar connexió a l'API
    -ProxyDesc=Algunes de les característiques de Dolibarr requereixen que el servidor tingui accés a Internet. Definiu aquí els paràmetres per a aquest accés. Si el servidor està darrere d'un proxy, aquests paràmetres s'indiquen a Dolibarr com passar-ho.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Accés extern
     MAIN_PROXY_USE=Usar un servidor intermediari (si no accés directe a Internet)
     MAIN_PROXY_HOST=Nom/Adreça del servidor proxy
     MAIN_PROXY_PORT=Port del servidor proxy
     MAIN_PROXY_USER=Login del servidor proxy
     MAIN_PROXY_PASS=Contrasenya del servidor proxy
    -DefineHereComplementaryAttributes=Defineix tots els atributs complementaris, no disponibles per defecte, que vols gestionar per %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Atributs complementaris
     ExtraFieldsLines=Atributs complementaris (línies)
     ExtraFieldsLinesRec=Atributs complementaris (línies de plantilles de factures)
     ExtraFieldsSupplierOrdersLines=Atributs complementaris (línies de comanda)
     ExtraFieldsSupplierInvoicesLines=Atributs complementaris (línies de factura)
     ExtraFieldsThirdParties=Atributs complementaris (tercers)
    -ExtraFieldsContacts=Atributs complementaris (contactes/adreçes)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Atributs complementaris (soci)
     ExtraFieldsMemberType=Atributs complementaris (tipus de socis)
     ExtraFieldsCustomerInvoices=Atributs complementaris (factures)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=només caràcters alfanumèrics i en minúscula
     SendmailOptionNotComplete=Atenció, en alguns sistemes Linux, amb aquest mètode d'enviament, per poder enviar mails en nom seu, la configuració de sendmail ha de contenir l'opció <b>-ba</b> (paràmetre <b>mail.force_extra_parameters</b> a l'arxiu <b>php.ini</b>). Si alguns dels seus destinataris no reben els seus missatges, proveu de modificar aquest paràmetre PHP amb <b>mail.force_extra_parameters =-ba </b>.
     PathToDocuments=Rutes d'accés a documents
     PathDirectory=Catàleg
    -SendmailOptionMayHurtBuggedMTA=La funcionalitat d'enviar correus electrònics a través del "correu directe PHP" genera una sol·licitud que poden ser mal interpretats per alguns servidors de correu. Això és tradueix en missatges de correu electrònic illegibles per a les persones allotjades a aquestes plataformes. Aquest és el cas de clients en certs proveïdors de serveis d'internet (Ex: Orange). Això no és un problema ni de Dolibarr ni de PHP, però si del servidor de correu. Encara que, pot agregar la opció MAIN_FIX_FOR_BUGGED_MTA amb el valor 1 a la Configuració -> Varis per tractar que Dolibarr eviti l'error. Un altre solució (recomanada) és utilitzar el mètode d'enviament per SMTP que no té aquest inconvenient.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Configuració de traducció
     TranslationKeySearch=Cerca una clau o cadena de traducció
     TranslationOverwriteKey=Sobreescriu una cadena de traducció
     TranslationDesc=Com configurar l'idioma de visualització de l'aplicació: <br> * Sistema: menú <strong>Inici - Configuració - Entorn</strong> <br> * Per usuari: utilitzeu la pestanya <strong>Configuració de l'entorn d'usuari</strong> a la pestanya d'usuari (feu clic al nom d'usuari a la part superior de la pantalla).
     TranslationOverwriteDesc=També pot reemplaçar cadenes omplint la taula següent. Triï el seu idioma a la llista desplegable "%s", inserta la clau de la traducció a "%s" i la seva nova traducció a "%s"
    -TranslationOverwriteDesc2=Podeu utilitzar un altra pestanya per ajudar a saber quina clau de conversió utilitzar
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Cadena de traducció
     CurrentTranslationString=Cadena de traducció actual
     WarningAtLeastKeyOrTranslationRequired=Es necessita un criteri de cerca com a mínim per cadena o clau de traducció
     NewTranslationStringToShow=Nova cadena de traducció a mostrar
     OriginalValueWas=La traducció original s'ha sobreescrit. El valor original era: <br><br>%s
    -TransKeyWithoutOriginalValue=Has obligat una nova traducció per a la clau de traducció '<strong>%s</strong>' que no existeix en cap fitxer d'idioma
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Mòduls/Aplicacions activats: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Ha d'activar almenys 1 mòdul.
    -ClassNotFoundIntoPathWarning=No s'ha trobat la classe %s en el seu path PHP
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Sí a l'estiu
    -OnlyFollowingModulesAreOpenedToExternalUsers=Només els següents moduls estan oberts a usuaris externs (segons els permisos de cada usuari) i només si tenen permisos:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Emmagatzematge de sessions xifrades per Suhosin
     ConditionIsCurrently=Actualment la condició és %s
    -YouUseBestDriver=Està utilitzant el driver %s, actualment és el millor driver disponible.
    -YouDoNotUseBestDriver=Està utilitzant el driver %s però és recomanat l'ús del driver %s.
    -NbOfProductIsLowerThanNoPb=Té %s productes/serveis a la base de dades. No és necessària cap optimització en particular.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Cerca optimització
    -YouHaveXProductUseSearchOptim=Té %s productes a la base de dades. Hauria afegir la constant PRODUCT_DONOTSEARCH_ANYWHERE a 1 a Inici-Configuració-Varis, limitant la cerca al principi de la cadena que fa possible que la base de dades usi l'índex i s'obtingui una resposta immediata.
    -BrowserIsOK=Utilitza el navegador web %s. Aquest navegador està optimitzat per a la seguretat i el rendiment.
    -BrowserIsKO=Utilitza el navegador web %s. Aquest navegador és una mala opció per a la seguretat, rendiment i fiabilitat. Aconsellem fer servir Firefox, Chrome, Opera o Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug està carregat.
     XCacheInstalled=XCache cau està carregat.
    -AddRefInList=Mostra el codi de client/proveïdor en llistats (selectors o combobox) i en la majoria d'enllaços. Els tercers apareixeran amb el nom "CC12345 - SC45678 - The big company coorp", en comptes de "The big company coorp".
    -AskForPreferredShippingMethod=Pregunta pel mètode d'enviament preferit pels tercers.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edició del camp %s
     FillThisOnlyIfRequired=Exemple: +2 (Completi només si es registre una desviació del temps en l'exportació)
     GetBarCode=Obté el codi de barres
     ##### Module password generation
     PasswordGenerationStandard=Retorna una contrasenya generada per l'algoritme intern Dolibarr: 8 caràcters, números i caràcters en minúscules barrejades.
    -PasswordGenerationNone=No suggerir cap contrassenya generada. La contrassenya s'ha d'escriure manualment.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Retorna una contrasenya d'acord a la seva configuració personalitzada.
     SetupPerso=D'acord a la teva configuració
     PasswordPatternDesc=Descripció patró contrasenya
    @@ -1195,23 +1206,23 @@ UserMailRequired=E-mail necessari per crear un usuari nou
     HRMSetup=Configuració de mòdul de gestió de recursos humans
     ##### Company setup #####
     CompanySetup=Configuració del mòdul empreses
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=La funció de les notificacions permet enviar automàticament un e-mail per alguns esdeveniments de Dolibarr. Els destinataris de les notificacions poden definir-se:
     NotificationsDescUser=* per usuaris, un usuari cada vegada
     NotificationsDescContact=* per contactes de tercers (clients o proveïdors), un contacte cada vegada
     NotificationsDescGlobal=* o definint un destí global de correu electrònic en la pàgina de configuració del mòdul
    -ModelModules=Models de documents
    -DocumentModelOdt=Generació des dels documents amb format OpenDocument (Arxiu .ODT OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Plantilles de documents
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Marca d'aigua en els documents esborrany
     JSOnPaimentBill=Activar funció per autocompletar les línies de pagament a les entrades de pagament
    -CompanyIdProfChecker=Règles sobre els ID professionals
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Ha de ser únic?
    -MustBeMandatory=Obligatori per a crear tercers?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Obligatori per validar factures?
     TechnicalServicesProvided=Prestació de serveis tècnics
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=URL d'origen del servidor %s: %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Un vincle d'exportació del calendari en format <b>%s</b> estarà disponible a la url: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Un vincle d'exportació del calendari en format <b>%s</b>
     BillsSetup=Configuració del mòdul Factures
     BillsNumberingModule=Mòdul de numeració de factures i abonaments
     BillsPDFModules=Models de documents de factures
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Models de documents de pagament
     CreditNote=Abonament
     CreditNotes=Abonaments
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Gestiona un compte d'usuari per a cada soci
     AdherentMailRequired=E-Mail obligatori per crear un nou soci
     MemberSendInformationByMailByDefault=Casella de verificació per enviar un missatge de confirmació als socis (validació o nova subscripció) activada per defecte
     VisitorCanChooseItsPaymentMode=El visitant pot triar entre els modes de pagament disponibles
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=Configuració de LDAP
     LDAPGlobalParameters=Paràmetres globals
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Prova la sincronització del tipus de membre
     LDAPTestSearch= Provar una recerca LDAP
     LDAPSynchroOK=Prova de sincronització realitzada correctament
     LDAPSynchroKO=Prova de sincronització errònia
    -LDAPSynchroKOMayBePermissions=Error de la prova de sincronització. Comproveu que la connexió al servidor sigui correcta i que permet les actualitzacions LDAP
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=Connexió TCP al servidor LDAP efectuada (Servidor=%s, Port=%s)
     LDAPTCPConnectKO=Error de connexió TCP al servidor LDAP (Servidor=%s, Port=%s)
    -LDAPBindOK=Connexió/Autenticació al servidor LDAP aconseguida (Servidor=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Error de connexió/autenticació al servidor LDAP (Servidor=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=Servidor LDAP configurat en versió 3
     LDAPSetupForVersion2=Servidor LDAP configurat en versió 2
     LDAPDolibarrMapping=Mapping Dolibarr
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=Aquesta pàgina us permet definir el nom d'atributs LDAP a
     LDAPDescValues=Els valors d'exemples s'adapten a <b>OpenLDAP</b> amb els schemas carregats: <b>core.schema, cosine.schema, inetorgperson.schema </b>). Si vostè utilitza els a valors suggerits i OpenLDAP, modifiqui el seu fitxer de configuració LDAP <b>slapd.conf </b> per a tenir tots aquests schemas actius.
     ForANonAnonymousAccess=Per un accés autentificat
     PerfDolibarr=Configuració rendiment/informe d'optimització
    -YouMayFindPerfAdviceHere=En aquesta pàgina trobareu diverses proves i consells relacionats amb el rendiment.
    -NotInstalled=No instal·lat, de manera que el servidor no baixa de rendiment amb això.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Aplicació memòria cau
     MemcachedNotAvailable=No s'ha trobat una aplicació de cache. Pot millorar el rendiment instal·lant un cache server Memcached i un mòdul capaç d'utilitzar aquest servidor de cache.<br>Mes informació aquí <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Tingui en compte que alguns hostings no ofereixen servidors cache.
     MemcachedModuleAvailableButNotSetup=Mòdul de memoria cache actiu, però la configuració del mòdul no està completa.
     MemcachedAvailableAndSetup=Modul de memoria cache dedicada a utilitzar el servidor memcached està habilitat.
     OPCodeCache=OPCode memòria cau
    -NoOPCodeCacheFound=No s'ha trobat cap opcode memòria cau. Pot ser que estigui utilitzant un altre opcode com XCache o eAccelerator (millor), o potser no tingui opcode memòria cau (pitjor).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=Memòria cau HTTP per a estadístiques de recursos (css, img, javascript)
     FilesOfTypeCached=Fitxers de tipus %s s'emmagatzemen en memòria cau pel servidor HTTP
     FilesOfTypeNotCached=Fitxers de tipus %s no s'emmagatzemen en memòria cau pel servidor HTTP
     FilesOfTypeCompressed=Fitxers de tipus %s són comprimits pel servidor HTTP
     FilesOfTypeNotCompressed=Fitxers de tipus %s no són comprimits pel servidor HTTP
     CacheByServer=Memòria cau amb el servidor
    -CacheByServerDesc=Per exemple, utilitzant la directiva Apache "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Memòria cau del navegador
     CompressionOfResources=Compressió de les respostes HTTP
    -CompressionOfResourcesDesc=Per exemple, utilitzant la directiva Apache "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=La detecció automàtica no és possible amb els navegadors actuals
    -DefaultValuesDesc=Pots definir/forçar aquí el valor predeterminat que vols obtenir quan crees un registre nou, i/o filtres predeterminats o ordenació quan el teu llistat es registri.
    -DefaultCreateForm=Valors per defecte (en formularis a crear)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Filtres de cerca per defecte
     DefaultSortOrder=Tipus d'ordenació per defecte
     DefaultFocus=Camps d'enfocament per defecte
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Configuració del mòdul Productes
     ServiceSetup=Configuració del mòdul Serveis
     ProductServiceSetup=Configuració dels mòduls Productes i Serveis
     NumberOfProductShowInSelect=Nº de productes màx a les llistes (0= sense límit)
    -ViewProductDescInFormAbility=Visualització de les descripcions dels productes en els formularis
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activa en la pestanya fitxers adjunts de productes/serveis una opció per convinar el document de producte en PDF a un pressupost en PDF (si el producte/servei es troba en el pressupost)
    -ViewProductDescInThirdpartyLanguageAbility=Visualització de les descripcions de productes en l'idioma del tercer
    -UseSearchToSelectProductTooltip=També si vostè té un gran número de productes (> 100.000), pot augmentar la velocitat mitjançant l'estableciment. PRODUCT_DONOTSEARCH_ANYWHERE amb la constant a 1 a Configuració --> Altres. La cerca serà limitada a la creació de la cadena
    -UseSearchToSelectProduct=Espera a que es prema una tecla abans de carregar el contingut de la llista combinada de productes (Açò pot incrementar el rendiment si té un gran nombre de productes)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Tipus de codi de barres utilitzat per defecte per als productes
     SetDefaultBarcodeTypeThirdParties=Tipus de codi de barres utilitzat per defecte per als tercers
     UseUnits=Defineix una unitat de mesura per Quantitats per les línies de pressupostos, comandes o factures.
    @@ -1503,7 +1517,7 @@ SendingsSetup=Configuració del mòdul Expedicions
     SendingsReceiptModel=Model de rebut de lliurament
     SendingsNumberingModules=Mòduls de numeració de notes de lliurament
     SendingsAbility=Suport en fulles d'expedició per entregues de clients
    -NoNeedForDeliveryReceipts=En la majoria dels casos, les notes d'entrega (llista de productes enviats) també actua com a nota de recepció i son firmades per el client. La gestió de les notes de recepció és per tant redundant i rara vegada s'activarà.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Text lliure en els enviaments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Mòdul de numeració de rebut de lliuraments de productes
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Editor avançat
     ActivateFCKeditor=Activar editor avançat per a :
     FCKeditorForCompany=Creació/edició WYSIWIG de la descripció i notes dels tercers
     FCKeditorForProduct=Creació/edició WYSIWIG de la descripció i notes dels productes/serveis
    -FCKeditorForProductDetails=Creació/edició WYSIWIG de les línies de detalls dels productes (comandes, pressupostos, factures, etc.). <font class="warning">Atenció: L'ús d'aquesta opció no és recomanable, ja que pot crear problemes amb els caràcters especials i el formateix de pàgina al generar arxius PDF.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= Creació/edició WYSIWIG dels E-Mails
     FCKeditorForUserSignature=Creació/edició WYSIWIG de la signatura de l'usuari
     FCKeditorForMail=Edició/creació WYSIWIG per tots els e-mails (excepte Eines->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=La connexió s'ha establert, però la base de dades no sembla de OSCommerce.
    -OSCommerceTestOk=La connexió al servidor '%s' sobre la base '%s' per l'usuari '%s' és correcta.
    -OSCommerceTestKo1=La connexió al servidor '%s' s'ha completat però amb la base de dades '%s' no s'ha pogut assolir.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=La connexió al servidor '%s' a la base '%s' per l'usuari '%s' ha estat satisfactòria.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=La connexió al servidor '%s'  per l'usuari '%s' ha fallat.
     ##### Stock #####
     StockSetup=Configuració del mòdul de Estoc
    -IfYouUsePointOfSaleCheckModule=Si utilitza un mòdul de Punt de Venda (mòdul TPV per defecte o un altre mòdul extern), aquesta configuració pot ser ignorada pel seu mòdul de Punt de Venda. La major part de mòduls TPV estan dissenyats per crear immediatament una factura i disminuir l'estoc amb qualsevol d'aquestes opcions. Per tant, si vostè necessita o no disminuir l'estoc en el registre d'una venda del seu punt de venda, controli també la configuració del seu mòdul de TPV.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menú eliminat
     Menus=Menús
    @@ -1548,7 +1562,7 @@ DetailRight=Condició de visualització completa o vidrossa
     DetailLangs=Nom del fitxer Lang pel codi d'etiqueta de traducció
     DetailUser=Intern / Extern / Tots
     Target=Objectiu
    -DetailTarget=Objectiu per enllaços (_blank obre una nova finestra)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Nivell (-1:menú superior, 0:principal, >0 menú y submenú)
     ModifMenu=Modificació del menú
     DeleteMenu=Eliminar entrada de menú
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=La càrrega de l'IVA és: <br>-en l'enviament dels béns (e
     OptionVatDebitOptionDesc=La càrrega de l'IVA és: <br>-en l'enviament dels béns en la pràctica s'usa la data de la factura<br>-sobre la facturació dels serveis
     OptionPaymentForProductAndServices=Base de caixa de productes i serveis
     OptionPaymentForProductAndServicesDesc=L'IVA es deu: <br> - pel pagament de béns <br> - sobre els pagaments per serveis
    -SummaryOfVatExigibilityUsedByDefault=Moment d'exigibilitat per defecte l'IVA per a l'opció escollida:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Al lliurament
     OnPayment=Al pagament
     OnInvoice=A la factura
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Codi comptable compres
     AgendaSetup=Mòdul configuració d'accions i agenda
     PasswordTogetVCalExport=Clau d'autorització vCal export link
     PastDelayVCalExport=No exportar els esdeveniments de més de
    -AGENDA_USE_EVENT_TYPE=Utilitzar tipus d'events (gestionables a Configuració -> Diccionaris -> Tipus d'events d'agenda)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Defineix automàticament aquest valor per defecte pels tipus d'events en el formulari de creació d'events
    -AGENDA_DEFAULT_FILTER_TYPE=Establir per defecte aquest tipus d'esdeveniment en el filtre de cerca en la vista de la agenda
    -AGENDA_DEFAULT_FILTER_STATUS=Establir per defecte aquest estat de esdeveniments en el filtre de cerca en la vista de la agenda
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Establir la pestanya per defecte al seleccionar el menú Agenda
     AGENDA_REMINDER_EMAIL=Activar el recordatori d'esdeveniments <b>per correu electrònic</b> (es pot definir l'opció retard en cada esdeveniment). Nota: el mòdul <strong>%s</strong> ha d'estar habilitat i configurat correctament per tenir un recordatori enviat amb la freqüència correcta.
    -AGENDA_REMINDER_BROWSER=Habilitar un recordatori d'esdeveniment <b>al navegador dels usuaris</b> (quan s'arribi a la data de l'esdeveniment, cada usuari pot rebutjar aquests recordatoris quan li demani confirmació el navegador)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Habilita les notificacions sonores
     AGENDA_SHOW_LINKED_OBJECT=Mostra l'objecte vinculat a la vista d'agenda
     ##### Clicktodial #####
     ClickToDialSetup=Configuració del mòdul Click To Dial
     ClickToDialUrlDesc=Es crida l'URL quan es fa un clic a la imatge miniatura de telèfon. A l'URL, pots utilitzar les etiquetes <br><b>__PHONETO__</b> que serà reemplaçada pel número de telèfon de la persona a trucar <br><b>__PHONEFROM__</b> que serà reemplaçada pel número de telèfon de la persona que truca (el vostre)  <br><b>__LOGIN__</b> que serà reemplaçada pel teu usuari d'inici de clicktodial (definit a la fitxa d'usuari)  <br><b>__PASS__</b> que serà reemplaçada per la contrasenya de clicktodial (definida a la fitxa d'usuari).
    -ClickToDialDesc=Aquest mòdul permet afegir una icona després del número de telèfon de contactes Dolibarr. Un clic en aquesta icona, truca a un servidor amb un URL que s'indica a continuació. Això pot ser usat per anomenar al sistema centre de Dolibarr que pot trucar al número de telèfon en un sistema SIP, per exemple.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Utilitzar sols l'enllaç "tel:" als números de telèfon
    -ClickToDialUseTelLinkDesc=Utilitza aquest mètode si els teus usuaris tenen un softphone o una interfície de software instal·lat en el mateix ordinador del navegador, i et truca quan fas clic en un enllaç del navegador que comença amb "tel:". Si necessites una solució amb un servidor complet (sense necessitat de instal·lació de programari en local), hauries de posar "No" i omplir el següent camp.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=TPV
     CashDeskSetup=Mòdul de configuració Terminal Punt de Venda
    -CashDeskThirdPartyForSell=Tercer genéric a utilitzar per a les vendes
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Compte per defecte a utilitzar pels cobraments en efectiu
     CashDeskBankAccountForCheque= Compte per defecte a utilitzar pels cobraments amb xecs
     CashDeskBankAccountForCB= Compte per defecte a utilitzar pels cobraments amb targeta de crèdit
    -CashDeskDoNotDecreaseStock=Desactivar disminució d'estoc si un venda es realitzada des de un Punt de Venda (si "no", la disminució d'estoc es realitza des del TPV, encara que sigui l'opció indicada en el modul Estoc).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Forçar i restringir el magatzem a usar l'stock a disminuir
    -StockDecreaseForPointOfSaleDisabled=Disminució d'estoc des de TPV descativat
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=La disminució d'estoc en el TPV no es compatible amb la gestió de lots
    -CashDeskYouDidNotDisableStockDecease=Vostè no ha desactivat la disminució d'estoc al fer una venda des del TPV. Així que es requereix un magatzem.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Configuració del mòdul Bookmark
    -BookmarkDesc=Aquest mòdul li permet gestionar els enllaços i accessos directes. També permet afegir qualsevol pàgina de Dolibarr o enllaç web al menú d'accés ràpid de l'esquerra.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Nombre màxim de marcadors que es mostrarà en el menú
     ##### WebServices #####
     WebServicesSetup=Configuració del mòdul webservices
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Mòdul de numeració de rebut de xec
     MultiCompanySetup=Configuració del mòdul Multi-empresa
     ##### Suppliers #####
     SuppliersSetup=Configuració del mòdul Proveïdors
    -SuppliersCommandModel=Plantilla completa de la comanda de compra (logotip ...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Plantilla completa de la factura del proveïdor (logotip ...)
     SuppliersInvoiceNumberingModel=Models de numeració de factures de proveïdor
     IfSetToYesDontForgetPermission=Si esta seleccionat, no oblideu de modificar els permisos en els grups o usuaris per permetre la segona aprovació
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Configuració del mòdul Projectes
     ProjectsModelModule=Model de document per a informes de projectes
     TasksNumberingModules=Mòdul numeració de tasques
     TaskModelModule=Mòdul de documents informes de tasques
    -UseSearchToSelectProject=S'espera a que premeu al menys una tecla per carregar el contingut de la llista desplegable de Projecte (Això incrementa el rendiment en el cas de que hi hagi un nombre llarg de projectes, però és menys convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Períodes comptables
    @@ -1672,7 +1686,7 @@ NbNumMin=Nombre mínim de caràcters numèrics
     NbSpeMin=Nombre mínim de caràcters especials
     NbIteConsecutive=Capacitat màxima per repetir mateixos caràcters
     NoAmbiCaracAutoGeneration=No utilitzar caràcters semblants ("1", "l", "i", "|", "0", "O") per a la generació automàtica
    -SalariesSetup=Configuració dels sous dels mòduls
    +SalariesSetup=Configuració del mòdul de salaris
     SortOrder=Ordre de classificació
     Format=Format
     TypePaymentDesc=0:Forma de pagament de client, 1:Forma de pagament a proveïdor, 2:Mateixa forma de pagament de clients i proveïdors
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Pot trobar opcions per not
     ListOfNotificationsPerUser=Llista de notificacions per usuari*
     ListOfNotificationsPerUserOrContact=Llista de notificacions per usuari* o per contacte**
     ListOfFixedNotifications=Llistat de notificacions fixes
    -GoOntoUserCardToAddMore=Ves a la pestanya "Notificacions" d'un usuari per afegir o eliminar notificacions per usuaris.
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Vagi a la pestanya "Notificacions" d'un contacte de tercers per afegir o eliminar notificacions per contactes/direccions
     Threshold=Valor mínim/llindar
     BackupDumpWizard=Asistent per crear una copia de seguretat de la base de dades
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=La instal·lació de mòduls externs d
     ConfFileMustContainCustom=Per instal·lar o crear un mòdul extern desde l'aplicació es necessita desar els fitxers del mòdul en el directori <strong>%s</strong>. Per permetre a Dolibarr el processament d'aquest directori, has de configurar el teu <strong>conf/conf.php</strong> afegint aquestes 2 línies:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Remarca línies de la taula quan el ratolí passi per sobre
     HighlightLinesColor=Remarca el color de la línia quan el ratolí hi passa per sobre (deixa-ho buit per a no remarcar)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Color del text del títol de la pàgina
     LinkColor=Color dels enllaços
     PressF5AfterChangingThis=Prem CTRL+F5 en el teclat o neteja la memòria cau del navegador després de canviar aquest valor per fer-ho efectiu
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Color de fons per les línies parells de les taules
     MinimumNoticePeriod=Període mínim de notificació (La solicitud de dia lliure serà donada abans d'aquest període)
     NbAddedAutomatically=Número de dies afegits en comptadors d'usuaris (automàticament) cada mes
     EnterAnyCode=Aquest camp conté una referència a un identificador de línia. Introdueix qualsevol valor però sense caràcters especials.
    -UnicodeCurrency=Introduïu aquí entre claus, la llista de nombre de bytes que representen el símbol de moneda. Per Exemple: per $, introdueix [36] - per als reals de Brasil R$ [82,36] - per € , introdueix [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=El color RGB es troba en format HEX, per exemple: FF0000
     PositionIntoComboList=Posició de la línia en llistes combo
     SellTaxRate=Valor de l'IVA
     RecuperableOnly=Sí per l'IVA "No percebut sinó recuperable" dedicat per a algun estat a França. Manteniu el valor "No" en tots els altres casos.
     UrlTrackingDesc=Si el proveïdor o el servei de transport ofereixen una pàgina o un lloc web per comprovar l'estat del teu enviament , pots entrar aquí. Pots utilitzar la tecla {TrackID} en els paràmetres d'URL perquè el sistema ho reemplaçarà amb el valor del número de seguiment de l'usuari utilitzat en la targeta d'embarcament.
    -OpportunityPercent=Quan crees una oportunitat, es defineix un import estimat de projecte. D'acord a l'estat de l'oportunitat, aquest import es pot multiplicar per aquest taxa per avaluar l'import global eventual per totes les oportunitats que es poden generar. El valor és un percentatge (entre o i 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=Aquest registre de plantilla es dedica a quin element
     TypeOfTemplate=Tipus de plantilla
    -TemplateIsVisibleByOwnerOnly=La plantilla és visible només pel propietari
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible arreu
     VisibleNowhere=Visible enlloc
     FixTZ=Fixar zona horaria
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=Estàs utilitzant l'última versió estable
     TitleExampleForMajorRelease=Exemple de missatge que es pot utilitzar per anunciar aquesta actualització de versió (ets lliure d'utilitzar-ho a les teves webs)
     TitleExampleForMaintenanceRelease=Exemple de missatge que es pot utilitzar per anunciar aquesta actualització de manteniment (ets lliure d'utilitzar-ho a les teves webs)
     ExampleOfNewsMessageForMajorRelease=Disponible ERP/CRM Dolibarr %s. La versió %s és una versió major amb un munt de noves característiques, tant per a usuaris com per a desenvolupadors. Es pot descarregar des de la secció de descàrregues del portal https://www.dolibarr.org (subdirectori versions estables). Podeu llegir <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> per veure la llista completa dels canvis.
    -ExampleOfNewsMessageForMaintenanceRelease=Disponible ERP/CRM Dolibarr %s. La versió %s és una versió de manteniment, de manera que només conté correccions d'errors. Recomanem a tothom que usi una versió anterior que actualitzi a aquesta. Com qualsevol versió de manteniment, no hi ha novetats. Es pot descarregar des de la secció de descàrregues del portal https://www.dolibarr.org (subdirectori versions estables subdirectori). Podeu llegir <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> per veure la llista completa dels canvis.
    -MultiPriceRuleDesc=Quan l'opció "Varis nivells de preus per producte/servei" està activada, pots definir diferents preus (un preu per nivell) per cada producte. Per estalviar temps, pots entrar una regla per tenir preu per cada nivell autocalculat d'acord al preu del primer nivell, així només hauràs d'introduir el preu del primer nivell de cada producte. Aquesta pàgina està aqui per estalviar temps i pot ser útil només si els teus preus per cada nivell son relatius al primer nivell. Pots ignorar aquesta pàgina en la majoria dels casos.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Plantilles per documents de productes
    -ToGenerateCodeDefineAutomaticRuleFirst=Per poder generar codis automàticament, primer has de definir un responsable de autodefinir els números del codi de barres.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=Veure * nota per llistat de possibles variables de substitució
     SeeChangeLog=Veure el fitxer ChangeLog (només en anglès)
     AllPublishers=Tots els publicadors
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Afegeix altres pàgines o serveis
     AddModels=Afegeix document o model de numeració
     AddSubstitutions=Afegeix claus de substitució
     DetectionNotPossible=Detecció no possible
    -UrlToGetKeyToUseAPIs=Url per aconseguir l'autenticador que permetrà utilitzar l'API (un cop s'ha rebut es guarda a la taula d'usuaris de la base de dades i s'ha de proporcionar cada cop que crides l'API)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Llistat de APIs disponibles
    -activateModuleDependNotSatisfied=El mòdul "%s" depèn del mòdul "%s" que no s'ha trobat, així que el mòdul "%1$s" pot funcionar de forma incorrecte. Instal·la el mòdul "%2$s" o deshabilita el mòdul "%1$s" si vols estar segur de no tenir cap sorpresa
    -CommandIsNotInsideAllowedCommands=La comanda que intentes executar no es troba en la llista de comandes permeses definides en paràmetres <strong>$dolibarr_main_restrict_os_commands</strong> en el fitxer <strong>conf.php</strong>.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Pàgina de destinació principal
    -SamePriceAlsoForSharedCompanies=Si utilitzes el mòdul Multiempresa, amb l'elecció de "preu únic", el preu serà el mateix per totes les empreses si els productes estan compartits entre elles
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=S'ha activat el mòdul. Els permisos per als mòdul(s) activats es donen només als usuaris administradors. Podria ser necessari concedir permisos a altres usuaris o grups de forma manual si és necessari.
    -UserHasNoPermissions=Aquest usuari no té permisos definits
    -TypeCdr=Utilitze "Cap" si la data de termini de pagament és la data de la factura més un delta en dies (delta és el camp "Nº de dies")<br>Utilitze "A final de mes", si, després del delta, la data ha d'aumentar-se per arribar a final de mes (+ "Offset" opcional en dies)<br>Utilitze "Actual/Següent" per tindre la data de termini de pagament sent el primer N de cada mes (N es guarda en el camp "Nº de dies")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Moneda de referència de l'empresa (entra a la configuració de l'empresa per canviar-la)
    -WarningNoteModuleInvoiceForFrenchLaw=Aquest mòdul %s compleix les lleis franceses (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=Aquest mòdul %s compleix les lleis franceses (Loi Finance 2016) perquè el mòdul Non Reversible Logs s'ha activat automàticament.
    -WarningInstallationMayBecomeNotCompliantWithLaw=Intenta instal·lar el mòdul %s que és un mòdul extern. Activar un mòdul extern significa que confia en l'editor del mòdul i està segur que aquest mòdul no alterarà negativament el comportament de la seva aplicació i compleix les lleis del seu país (%s). Si el mòdul ofereix una característica no legal, es fa responsable de l'ús d'un software il·legal.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Marge esquerre al PDF
     MAIN_PDF_MARGIN_RIGHT=Marge dret al PDF
     MAIN_PDF_MARGIN_TOP=Marge superior al PDF
     MAIN_PDF_MARGIN_BOTTOM=Marge inferior al PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Estableixi a SÍ si aquest grup és un càlcul d'altres grups
    -EnterCalculationRuleIfPreviousFieldIsYes=Introduïu la regla de càlculs si el camp anterior ha estat posat a SÍ (Per exemple 'CODEGRP1 + CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=S'ha trobat diverses variants d'idiomes
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Elimina els caràcters especials
     COMPANY_AQUARIUM_CLEAN_REGEX=Filtre de Regex per netejar el valor (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=Contacte GDPR
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Codi postal
     ##### Resource ####
     ResourceSetup=Configuració del mòdul Recurs
     UseSearchToSelectResource=Utilitza un formulari de cerca per a seleccionar un recurs (millor que una llista desplegable)
     DisabledResourceLinkUser=Desactiva la funció per enllaçar un recurs als usuaris
     DisabledResourceLinkContact=Desactiva la funció per enllaçar un recurs als contactes
     ConfirmUnactivation=Confirma el restabliment del mòdul
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/ca_ES/agenda.lang b/htdocs/langs/ca_ES/agenda.lang
    index c82c124e0f5..edcf0e8063c 100644
    --- a/htdocs/langs/ca_ES/agenda.lang
    +++ b/htdocs/langs/ca_ES/agenda.lang
    @@ -31,14 +31,15 @@ ViewWeek=Vista setmanal
     ViewPerUser=Vista d'usuaris
     ViewPerType=Vista per tipus
     AutoActions= Inclusió automàtica a l'agenda
    -AgendaAutoActionDesc= Defineix aqui els esdeveniments pels que vols que Dolibarr crei automàticament un esdeveniment en l'agenda. Si no hi ha res seleccionat, només les accions manuals s'inclouran registrades i visibles en l'agenda. El registre automàtic d'accions de negoci fetes pels objectes (validació, canvi d'estat) no es desaran.
    -AgendaSetupOtherDesc= Aquesta pàgina permet configurar algunes opcions que permeten exportar una vista de la seva agenda Dolibar a un calendari extern (thunderbird, google calendar, ...)
    +AgendaAutoActionDesc= Aquí pots definir esdeveniments que vols que Dolibarr creï automàticament a Agenda. Si no hi ha res comprovat, només s'inclouran les accions manuals als registres i es mostraran a Agenda. El seguiment automàtic de les accions empresarials realitzades en objectes (validació, canvi d'estat) no es desarà.
    +AgendaSetupOtherDesc= Aquesta pàgina ofereix opcions per permetre l'exportació dels teus esdeveniments Dolibarr a un calendari extern (thunderbird, google calendar, ...)
     AgendaExtSitesDesc=Aquesta pàgina permet configurar calendaris externs per a la seva visualització en l'agenda de Dolibarr.
     ActionsEvents=Esdeveniments per a què Dolibarr crei una acció de forma automàtica
    -EventRemindersByEmailNotEnabled=Els recordatoris d'esdeveniments per correu electrònic no estaven habilitats en la configuració del mòdul d'Agenda.
    +EventRemindersByEmailNotEnabled=Els recordatoris d'esdeveniments per correu electrònic no estaven habilitats en la configuració del mòdul %s.
     ##### Agenda event labels #####
     NewCompanyToDolibarr=Tercer %s creat
     ContractValidatedInDolibarr=Contracte %s validat
    +CONTRACT_DELETEInDolibarr=Contracte %s eliminat
     PropalClosedSignedInDolibarr=Pressupost %s firmat
     PropalClosedRefusedInDolibarr=Pressupost %s rebutjat
     PropalValidatedInDolibarr=Pressupost %s validat
    @@ -53,9 +54,9 @@ MemberValidatedInDolibarr=Soci %s validat
     MemberModifiedInDolibarr=Soci %s modificat
     MemberResiliatedInDolibarr=Membre %s acabat
     MemberDeletedInDolibarr=Soci %s eliminat
    -MemberSubscriptionAddedInDolibarr=Subscription %s for member %s added
    -MemberSubscriptionModifiedInDolibarr=Subscription %s for member %s modified
    -MemberSubscriptionDeletedInDolibarr=Subscription %s for member %s deleted
    +MemberSubscriptionAddedInDolibarr=Subscripció %s per a membre %s, afegida
    +MemberSubscriptionModifiedInDolibarr=Subscripció %s per a membre %s, modificada
    +MemberSubscriptionDeletedInDolibarr=Subscripció %s per a membre %s, eliminada
     ShipmentValidatedInDolibarr=Expedició %s validada
     ShipmentClassifyClosedInDolibarr=Expedició %s classificada com a facturada
     ShipmentUnClassifyCloseddInDolibarr=Expedició %s classificada com a reoberta
    @@ -100,7 +101,7 @@ AgendaUrlOptions3=<b>logina=%s</b> ​​per a restringir insercions a les accio
     AgendaUrlOptionsNotAdmin=<b>logina=!%s</b> ​​per a restringir la producció d'accions que no pertanyen a l'usuari <b>%s</b>.
     AgendaUrlOptions4=<b>logint=%s</b> per a restringir la producció d'accions assignades a l'usuari <b>%s</b> (propietari i altres).
     AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> per a restringir la sortida d'accions associades al projecta <b>PROJECT_ID</b>.
    -AgendaUrlOptionsNotAutoEvent=<b>notactiontype = systemauto</b> per excloure l'acció automàtica.
    +AgendaUrlOptionsNotAutoEvent=<b>notactiontype=systemauto</b> per excloure esdeveniments automàtics.
     AgendaShowBirthdayEvents=Mostra aniversaris dels contactes
     AgendaHideBirthdayEvents=Oculta aniversaris dels contactes
     Busy=Ocupat
    @@ -110,9 +111,9 @@ DefaultWorkingHours=Hores de treball per defecte durant el dia (Exemple: 9-18)
     # External Sites ical
     ExportCal=Exportar calendari
     ExtSites=Calendaris externs
    -ExtSitesEnableThisTool=Mostrar calendaris externs (definint a la configuració global) a l'agenda. No afecta als calendaris externs definits per l'usuari
    +ExtSitesEnableThisTool=Mostra calendaris externs (definit a la configuració global) a Agenda. No afecta els calendaris externs definits pels usuaris.
     ExtSitesNbOfAgenda=Nombre de calendaris
    -AgendaExtNb=Calendar no. %s
    +AgendaExtNb=Calendari núm. %s
     ExtSiteUrlAgenda=Url d'accés a l'arxiu. ical
     ExtSiteNoLabel=Sense descripció
     VisibleTimeRange=Rang de temps visible
    diff --git a/htdocs/langs/ca_ES/banks.lang b/htdocs/langs/ca_ES/banks.lang
    index 102d0c90bbb..410fb07e2e5 100644
    --- a/htdocs/langs/ca_ES/banks.lang
    +++ b/htdocs/langs/ca_ES/banks.lang
    @@ -7,7 +7,7 @@ BankName=Nom del banc
     FinancialAccount=Compte
     BankAccount=Compte bancari
     BankAccounts=Comptes bancaris
    -BankAccountsAndGateways=Comptes bancaris | Passarel·les
    +BankAccountsAndGateways=Banc | Passarel·les
     ShowAccount=Mostrar el compte
     AccountRef=Ref. compte financer
     AccountLabel=Etiqueta compte financer
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Domiciliació de compte
     BankAccountCountry=País del compte
     BankAccountOwner=Nom del titular del compte
     BankAccountOwnerAddress=Direcció del titular del compte
    -RIBControlError=El dígit de control indica que la informació d'aquest compte bancari és incompleta o incorrecta.
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Crear compte
     NewBankAccount=Nou compte
     NewFinancialAccount=Nou compte financer
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Registres a conciliar
     Conciliable=Conciliable
     Conciliate=Conciliar
     Conciliation=Conciliació
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliació tardana
     IncludeClosedAccount=Incloure comptes tancats
     OnlyOpenedAccount=Només comptes oberts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Pagament d'impostos varis
     BankTransfer=Transferència bancària
     BankTransfers=Transferències bancàries
     MenuBankInternalTransfer=Transferència interna
    -TransferDesc=Traspassa d'un compte a un altre, Dolibarr generarà dos registres (dèbit en compte origen i crèdit en compte destí. Per aquesta transacció s'utilitzarà el mateix import (excepte el signe), l'etiqueta i la data).
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=De
     TransferTo=Cap a
     TransferFromToDone=La transferència de <b>%s</b> cap a <b>%s</b> de <b>%s</b> %s s'ha creat.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Vols eliminar aquesta remesa de xec?
     BankChecks=Xec bancari
     BankChecksToReceipt=Xecs en espera de l'ingrés
     ShowCheckReceipt=Mostra la remesa d'ingrés de xec
    -NumberOfCheques=N º de xecs
    +NumberOfCheques=No. of check
     DeleteTransaction=Eliminar registre
     ConfirmDeleteTransaction=Esteu segur de voler eliminar aquesta registre?
     ThisWillAlsoDeleteBankRecord=Açò eliminarà també els registres bancaris generats
    @@ -135,8 +136,8 @@ BankTransactionLine=Registre bancari
     AllAccounts=Tots els comptes bancaris i en efectiu
     BackToAccount=Tornar al compte
     ShowAllAccounts=Mostra per a tots els comptes
    -FutureTransaction=Transacció futura. No és possible conciliar.
    -SelectChequeTransactionAndGenerate=Selecciona/filtra els xecs a incloure en la remesa de xecs a ingressar i fes clic a "Crea".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Selecciona l'estat del compte bancari relacionat amb la conciliació. Utilitza un valor numèric que es pugui ordenar: AAAAMM o AAAAMMDD
     EventualyAddCategory=Eventualment, indiqui una categoria en la qual classificar els registres
     ToConciliate=A conciliar?
    @@ -153,7 +154,7 @@ RejectCheckDate=Data de devolució del xec
     CheckRejected=Xec retornat
     CheckRejectedAndInvoicesReopened=Xec retornat i factures reobertes
     BankAccountModelModule=Plantilles de documents per comptes bancaris
    -DocumentModelSepaMandate=Plantilla per a mandat SEPA. Vàlid només per a països europeus de la CEE.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Plantilla per imprimir una pàgina amb informació BAN
     NewVariousPayment=Nou pagament varis
     VariousPayment=Pagaments varis
    @@ -162,4 +163,5 @@ ShowVariousPayment=Mostra els pagaments varis
     AddVariousPayment=Afegir pagaments extres
     SEPAMandate=Mandat SEPA
     YourSEPAMandate=La vostra ordre SEPA
    -FindYourSEPAMandate=Aquest és la vostra ordre SEPA per autoritzar a la nostra empresa a realitzar un ordre de dèbit directe al vostre banc. Gràcies per retornar-la signada (escanejar el document signat) o envieu-lo per correu a
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/ca_ES/bills.lang b/htdocs/langs/ca_ES/bills.lang
    index c999f9ec359..9e6291ef975 100644
    --- a/htdocs/langs/ca_ES/bills.lang
    +++ b/htdocs/langs/ca_ES/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Factura proforma
     InvoiceProFormaDesc=La <b>factura proforma</b> és la imatge d'una factura definitiva, però que no té cap valor comptable.
     InvoiceReplacement=Factura rectificativa
     InvoiceReplacementAsk=Factura rectificativa de la factura
    -InvoiceReplacementDesc=La <b>factura rectificativa</b> serveix per a cancel·lar i per substituir una factura existent sobre la qual encara no hi ha pagaments.<br> <br>Nota: Només una factura sense cap pagament pot rectificar-se. Si aquesta última no està tancada, passarà automàticament al estat 'abandonada'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Abonament
     InvoiceAvoirAsk=Abonament per factura rectificativa
    -InvoiceAvoirDesc=El <b>abonament</ b> és una factura negativa destinada a compensar un import de factura que difereix de l'import realment pagat (per haver pagat de més o per devolució de productes, per exemple).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Crear abonament amb les línies de la factura d'origen
     invoiceAvoirWithPaymentRestAmount=Crear abonament de la factura pendent de pagament
     invoiceAvoirLineWithPaymentRestAmount=Abonament per a la quantitat restant no pagada
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=en divisa de factures
     PaidBack=Reemborsat
     DeletePayment=Elimina el pagament
     ConfirmDeletePayment=Esteu segur de voler eliminar aquest pagament?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Voleu convertir aquest %s en un descompte absolut? <br> L'import es guardarà entre tots els descomptes i es podria utilitzar com a descompte per a una factura actual o futura per a aquest proveïdor.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Pagaments a proveïdors
     ReceivedPayments=Pagaments rebuts
     ReceivedCustomersPayments=Cobraments rebuts de clients
    -PayedSuppliersPayments=Pagaments pagats als proveïdors
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Cobraments rebuts de client pendents de validar
     PaymentsReportsForYear=Informes de pagaments de %s
     PaymentsReports=Informes de pagaments
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Condicions de pagament
     PaymentAmount=Import pagament
     ValidatePayment=Validar aquest pagament
     PaymentHigherThanReminderToPay=Pagament superior a la resta a pagar
    -HelpPaymentHigherThanReminderToPay=Atenció, l'import del pagament d'una o més factures és superior a la resta a pagar.<br>Corregiu la entrada, en cas contrari, confirmeu i pensi en crear un abonament d'allò percebut en excés per cada factura sobrepagada.
    -HelpPaymentHigherThanReminderToPaySupplier=Atenció, l'import del pagament d'una o més factures és superior al de la resta a pagar. <br> Editeu la vostra entrada, en cas contrari confirmeu i penseu a crear una nota de crèdit de l'excés pagat per cada factura pagada.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classificar 'Pagat'
     ClassifyPaidPartially=Classificar 'Pagat parcialment'
     ClassifyCanceled=Classificar 'Abandonat'
    @@ -107,11 +107,11 @@ SearchACustomerInvoice=Cercar una factura a client
     SearchASupplierInvoice=Cercar una factura de proveïdor
     CancelBill=Anul·lar una factura
     SendRemindByMail=Envia recordatori per e-mail
    -DoPayment=Enter payment
    -DoPaymentBack=Enter refund
    +DoPayment=Afegir pagament
    +DoPaymentBack=Afegir reemborsament
     ConvertToReduc=Marca com a crèdit disponible
    -ConvertExcessReceivedToReduc=Convert excess received into available credit
    -ConvertExcessPaidToReduc=Convert excess paid into available discount
    +ConvertExcessReceivedToReduc=Convertir l'excés rebut en el crèdit disponible
    +ConvertExcessPaidToReduc=Convertir l'excés pagat en descompte disponible
     EnterPaymentReceivedFromCustomer=Afegir cobrament rebut del client
     EnterPaymentDueToCustomer=Fer pagament del client
     DisabledBecauseRemainderToPayIsZero=Desactivar ja que la resta a pagar és 0
    @@ -120,7 +120,7 @@ BillStatus=Estat de la factura
     StatusOfGeneratedInvoices=Estat de factures generades
     BillStatusDraft=Esborrany (a validar)
     BillStatusPaid=Pagada
    -BillStatusPaidBackOrConverted=Credit note refund or marked as credit available
    +BillStatusPaidBackOrConverted=Nota de crèdit reembossada o marcada com a crèdit disponible
     BillStatusConverted=Pagada (llesta per utilitzar-se en factura final)
     BillStatusCanceled=Abandonada
     BillStatusValidated=Validada (a pagar)
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Tancada (pendent de pagament)
     BillStatusClosedPaidPartially=Pagada (parcialment)
     BillShortStatusDraft=Esborrany
     BillShortStatusPaid=Pagada
    -BillShortStatusPaidBackOrConverted=Reemborsada o convertida
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Tractada
     BillShortStatusCanceled=Abandonada
     BillShortStatusValidated=Validada
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=No reemborsat
     BillShortStatusClosedUnpaid=Tancada
     BillShortStatusClosedPaidPartially=Pagada
     PaymentStatusToValidShort=A validar
    -ErrorVATIntraNotConfigured=NIF intracomunitari encara no configurat
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No s'ha definit la forma de pagament per defecte. Ves a la configuració del mòdul Factures per corregir-ho.
     ErrorCreateBankAccount=Crea un compte bancari i després ves al panell de configuració del mòdul Factures per definir les formes de pagament
     ErrorBillNotFound=Factura %s inexistent
    -ErrorInvoiceAlreadyReplaced=Error, vol validar una factura que rectifica la factura %s. Però aquesta última ja està rectificada per la factura %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, el descompte ja s'està utilitzant
     ErrorInvoiceAvoirMustBeNegative=Error, una factura rectificativa ha de tenir un import negatiu
     ErrorInvoiceOfThisTypeMustBePositive=Error, una factura d'aquest tipus ha de tenir un import positiu
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, no és possible cancel·lar una factura que ha estat substituïda per una altra que es troba en l'estat 'esborrany'.
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Aquesta part o una altra ja s'utilitza, de manera que la sèrie de descompte no es pot treure.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Emissor
     BillTo=Enviar a
     ActionsOnBill=Eventos sobre la factura
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Està segur de voler classificar la factura <b>%s</b> co
     ConfirmCancelBill=Està segur de voler anul·lar la factura <b>%s</b>?
     ConfirmCancelBillQuestion=Per quina raó vols classificar aquesta factura com 'abandonada'?
     ConfirmClassifyPaidPartially=Està segur de voler classificar la factura <b>%s</b> com pagada?
    -ConfirmClassifyPaidPartiallyQuestion=Aquesta factura no ha estat totalment pagada. Per què vol classificar-la com a pagada?
    -ConfirmClassifyPaidPartiallyReasonAvoir=La resta a pagar <b>(%s %s)</b> és un descompte atorgat perquè el pagament es va fer abans de temps. Regularitzo l'IVA d'aquest descompte amb un abonament.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=La resta a pagar <b>(%s %s)</b> és un descompte atorgat perquè el pagament es va fer abans de temps.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=La resta a pagar <b>(%s %s)</b> és un descompte acordat després de la facturació. Accepto perdre l'IVA d'aquest descompte
     ConfirmClassifyPaidPartiallyReasonDiscountVat=La resta a pagar <b>(%s %s)</b> és un descompte atorgat perquè el pagament es va fer abans de temps. Recupero l'IVA d'aquest descompte, sense un abonament.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Client morós
     ConfirmClassifyPaidPartiallyReasonProductReturned=Productes retornats en part
     ConfirmClassifyPaidPartiallyReasonOther=D'altra raó
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Aquesta elecció és possible si la seva factura es provingera de la menció adequada. (Exemple: "descompte net d'impostos")
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Aquesta elecció és possible si la seva factura es provingera de la menció adequada. (Exemple: menció per la qual es defineix el descompte o de la classe "només l'impost que correspon al preu efectivament pagat causa dret a deducció")
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Aquesta elecció és l'elecció que s'ha de prendre si les altres no són aplicables
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Un <b>client morós </b> és un client que no vol regularitzar el seu deute.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Aquesta elecció és possible si el cas de pagament incomplet és arran d'una devolució de part dels productes
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Utilitza aquesta opció si totes les altres no et convenen, per exemple en la situació següent:<br>- pagament parcial ja que una partida de productes s'ha tornat<br>- la quantitat reclamada és massa important perquè s'ha oblidat un descompte<br>En tots els casos, la reclamació s'ha de regularitzar mitjançant un abonament.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Altres
     ConfirmClassifyAbandonReasonOtherDesc=Aquesta elecció serà per a qualsevol altre cas. Per exemple arran de la intenció de crear una factura rectificativa.
     ConfirmCustomerPayment=Confirmes aquesta entrada de pagament per a <b>%s</b> %s?
    @@ -203,6 +204,7 @@ UnvalidateBill=Tornar factura a esborrany
     NumberOfBills=Nº de factures
     NumberOfBillsByMonth=Nº de factures per mes
     AmountOfBills=Import de les factures
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Import de les factures per mes (Sense IVA)
     ShowSocialContribution=Mostra els impostos varis
     ShowBill=Veure factura
    @@ -260,9 +262,9 @@ Repeatables=Recurrents
     ChangeIntoRepeatableInvoice=Convertir en recurrent
     CreateRepeatableInvoice=Crear factura recurrent
     CreateFromRepeatableInvoice=Crear des de factura recurrent
    -CustomersInvoicesAndInvoiceLines=Factures a clients i línies de factures
    +CustomersInvoicesAndInvoiceLines=Factures del client i detalls de la factura
     CustomersInvoicesAndPayments=Factures a clients i cobraments
    -ExportDataset_invoice_1=Factures a clients i línies de factura
    +ExportDataset_invoice_1=Factures del client i detalls de la factura
     ExportDataset_invoice_2=Factures a clients i cobraments
     ProformaBill=Factura proforma:
     Reduction=Reducció
    @@ -282,7 +284,7 @@ RelativeDiscount=Descompte relatiu
     GlobalDiscount=Descompte fixe
     CreditNote=Abonament
     CreditNotes=Abonaments
    -CreditNotesOrExcessReceived=Credit notes or excess received
    +CreditNotesOrExcessReceived=Notes de crèdit o excés rebut
     Deposit=Bestreta
     Deposits=Bestretes
     DiscountFromCreditNote=Descompte resultant del abonament %s
    @@ -297,14 +299,14 @@ DiscountType=Tipus de descompte
     NoteReason=Nota/Motiu
     ReasonDiscount=Motiu
     DiscountOfferedBy=Acordat per
    -DiscountStillRemaining=Discounts or credits available
    -DiscountAlreadyCounted=Discounts or credits already consumed
    +DiscountStillRemaining=Descomptes o crèdits disponibles
    +DiscountAlreadyCounted=Descomptes o crèdits ja consumits
     CustomerDiscounts=Descomptes de clients
     SupplierDiscounts=Descomptes dels proveïdors
     BillAddress=Direcció de facturació
    -HelpEscompte=Un <b>descompte</b> és un descompte acordat sobre una factura donada, a un client que va realitzar el seu pagament molt abans del venciment.
    -HelpAbandonBadCustomer=Aquest import es va abandonar (client jutjat com morós) i es considera com una pèrdua excepcional.
    -HelpAbandonOther=Aquest import es va abandonar ja que es tractava d'un error de facturació (mala introducció de dades, factura substituïda per una altra).
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Id. pagament d'impost varis
     PaymentId=ID pagament
     PaymentRef=Ref. pagament
    @@ -321,31 +323,31 @@ InvoiceNotChecked=Cap factura pendent està seleccionada
     CloneInvoice=Clonar factura
     ConfirmCloneInvoice=Vols clonar aquesta factura <b>%s</b>?
     DisabledBecauseReplacedInvoice=Acció desactivada perquè és una factura reemplaçada
    -DescTaxAndDividendsArea=Aquesta àrea presenta un resum de tots els pagaments fets per a despeses especials.  Aquí només s'inclouen registres amb pagament durant l'any fixat.
    +DescTaxAndDividendsArea=Aquesta pantalla resumeix la llista de tots els impostos i les càrregues socials exigides per a un any determinat. La data presa en compte és el període de pagament.
     NbOfPayments=Nº de pagaments
     SplitDiscount=Dividir el dte. en dos
    -ConfirmSplitDiscount=Estàs segur que vols dividir aquest descompte de <b>%s</b> %s en 2 descomptes més baixos?
    -TypeAmountOfEachNewDiscount=Indiqui l'import per a cada part:
    -TotalOfTwoDiscountMustEqualsOriginal=La suma de l'import dels 2 nous descomptes deu ser la mateixa que l'import del descompte a dividir.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Vols eliminar aquest descompte?
     RelatedBill=Factura relacionada
     RelatedBills=Factures relacionades
     RelatedCustomerInvoices=Factures de client relacionades
     RelatedSupplierInvoices=Factures de proveïdor relacionades
     LatestRelatedBill=Última factura relacionada
    -WarningBillExist=Advertència, una o més factures ja existeixen
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Eina de fusió PDF
     AmountPaymentDistributedOnInvoice=Import de pagament distribuït en la factura
    -PaymentOnDifferentThirdBills=Permet fer pagaments en factures de diferents tercers però de la mateixa empresa mare
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Nota de pagament
     ListOfPreviousSituationInvoices=Llista de factures de situació anteriors
     ListOfNextSituationInvoices=Llista de factures de situació següents
    -ListOfSituationInvoices=List of situation invoices
    -CurrentSituationTotal=Total current situation
    -DisabledBecauseNotEnouthCreditNote=To remove a situation invoice from cycle, this invoice's credit note total must cover this invoice total
    -RemoveSituationFromCycle=Remove this invoice from cycle
    -ConfirmRemoveSituationFromCycle=Remove this invoice %s from cycle ?
    -ConfirmOuting=Confirm outing
    +ListOfSituationInvoices=Llista de factures de situació
    +CurrentSituationTotal=Situació actual total
    +DisabledBecauseNotEnouthCreditNote=Per eliminar una factura de situació del cicle, el total de la nota de crèdit d'aquesta factura ha de cobrir aquest total de la factura
    +RemoveSituationFromCycle=Treu aquesta factura del cicle
    +ConfirmRemoveSituationFromCycle=Vols eliminar aquesta factura %s del cicle?
    +ConfirmOuting=Confirma la sortida
     FrequencyPer_d=Cada %s dies
     FrequencyPer_m=Cada %s mesos
     FrequencyPer_y=Cada %s anys
    @@ -394,7 +396,7 @@ PaymentConditionShort14DENDMONTH=14 dies final de mes
     PaymentCondition14DENDMONTH=En els 14 dies següents a final de mes
     FixAmount=Import fixe
     VarAmount=Import variable (%% total)
    -VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s'
    +VarAmountOneLine=Quantitat variable (%% tot.) - 1 línia amb l'etiqueta '%s'
     # PaymentType
     PaymentTypeVIR=Transferència bancària
     PaymentTypeShortVIR=Transferència bancària
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Xec
     PaymentTypeShortCHQ=Xec
     PaymentTypeTIP=TIP (Documents contra pagament)
     PaymentTypeShortTIP=Pagament TIP
    -PaymentTypeVAD=Pagament On Line
    -PaymentTypeShortVAD=Pagament On Line
    +PaymentTypeVAD=Pagament en línia
    +PaymentTypeShortVAD=Pagament en línia
     PaymentTypeTRA=Banc esborrany
     PaymentTypeShortTRA=Esborrany
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Dades bancàries
     BankCode=Codi banc
    -DeskCode=Codi oficina
    +DeskCode=Office code
     BankAccountNumber=Número compte
    -BankAccountNumberKey=D. C.
    +BankAccountNumberKey=Check digits
     Residence=Domiciliació bancària
    -IBANNumber=Codi IBAN
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=Codi BIC/SWIFT
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Pagament mitjançant transferència sobre el
     VATIsNotUsedForInvoice=* IVA no aplicable art-293B del CGI
     LawApplicationPart1=Per aplicació de la llei 80.335 de 12.05.80
     LawApplicationPart2=les mercaderies romanen en propietat de
    -LawApplicationPart3=venedor fins al cobrament de
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=els seus preus
     LimitedLiabilityCompanyCapital=SRL amb capital de
     UseLine=Aplicar
    @@ -463,7 +465,7 @@ Cheques=Xecs
     DepositId=Id. dipòsit
     NbCheque=Número de xecs
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Utilitzar l'adreça del contacte de client de facturació de la factura en comptes de la direcció del tercer com a destinatari de les factures
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Mostrar tots els pendents
     ShowUnpaidLateOnly=Mostrar els pendents en retard només
     PaymentInvoiceRef=Pagament factura %s
    @@ -474,21 +476,22 @@ Reported=Ajornat
     DisabledBecausePayments=No disponible ja que hi ha pagaments
     CantRemovePaymentWithOneInvoicePaid=Eliminació impossible quan hi ha almenys una factura classificada com a pagada.
     ExpectedToPay=Esperant el pagament
    -CantRemoveConciliatedPayment=No es pot eliminar la conciliació de pagament
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Pagada per aquest pagament
    -ClosePaidInvoicesAutomatically=Classificar com "Pagades" totes les factures estàndards, de situació o rectificatives completament pagades.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classifica com "Pagats" tots els abonaments completament reemborsats
    -ClosePaidContributionsAutomatically=Classifica com "Pagades" tots els impostos varis pagats completament.
    -AllCompletelyPayedInvoiceWillBeClosed=Totes les factures amb una resta a pagar 0 seran automàticament tancades a l'estat "Pagada".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pagar
     ToMakePaymentBack=Reemborsar
     ListOfYourUnpaidInvoices=Llistat de factures impagades
     NoteListOfYourUnpaidInvoices=Nota: Aquest llistat només conté factures de tercers que tens enllaçats com a agent comercial.
     RevenueStamp=Timbre fiscal
    -YouMustCreateInvoiceFromThird=Aquesta opció només està disponible al moment de crear una factura des de la llengüeta "client" de tercers
    -YouMustCreateInvoiceFromSupplierThird=Aquesta opció només està disponible quan es crea la factura des de la pestanya "proveïdor" del tercer
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=Primer has de crear una factura estàndard i convertir-la en "plantilla" per crear una nova plantilla de factura
     PDFCrabeDescription=Model de factura complet (model recomanat per defecte)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Plantilla Crevette per factures PDF. Una plantilla de factura completa per factures de situació.
     TerreNumRefModelDesc1=Retorna el nombre sota el format %syymm-nnnn per a les factures i %syymm-nnnn per als abonaments on yy és l'any, mm. el mes i nnnn un comptador seqüencial sense ruptura i sense permanència a 0
     MarsNumRefModelDesc1=Retorna el nombre sota el format %syymm-nnnn per a les factures, %syymm-nnnn per a les factures rectificatives, %syymm-nnnn per a les factures de dipòsit i %syymm-nnnn pels abonaments  on yy és l'any, mm el mes i nnnn un comptador seqüencial sense ruptura i sense retorn a 0
    @@ -513,9 +516,9 @@ SituationAmount=Import (sense IVA) de la factura de situació
     SituationDeduction=Situació d'exportació
     ModifyAllLines=Modificar totes les línies
     CreateNextSituationInvoice=Crea la següent situació
    -ErrorFindNextSituationInvoice=Error unable to find next situation cycle ref
    -ErrorOutingSituationInvoiceOnUpdate=Unable to outing this situation invoice.
    -ErrorOutingSituationInvoiceCreditNote=Unable to outing linked credit note.
    +ErrorFindNextSituationInvoice=Error no es pot trobar el següent cicle de situació ref
    +ErrorOutingSituationInvoiceOnUpdate=No es pot fer aquesta factura de situació
    +ErrorOutingSituationInvoiceCreditNote=No es pot fer cap nota de crèdit vinculada.
     NotLastInCycle=Aquesta factura no és l'última en el cicle i no es pot modificar.
     DisabledBecauseNotLastInCycle=Ja existeix la següent situació.
     DisabledBecauseFinal=Aquesta situació és definitiva.
    @@ -533,7 +536,7 @@ invoiceLineProgressError=El progrés de la línia de factura no pot ser igual o
     updatePriceNextInvoiceErrorUpdateline=Error : actualització de preu en línia de factura : %s
     ToCreateARecurringInvoice=Per crear una factura recurrent d'aquest contracte, primer crea aquesta factura esborrany, després converteix-la en una plantilla de factura i defineix la freqüència per a la generació de factures futures.
     ToCreateARecurringInvoiceGene=Per generar futures factures regulars i manualment, només ves al menú <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=Si necessites tenir cada factura generada automàticament, pregunta a l'administrador per habilitar i configurar el mòdul <strong>%s</strong>. Tingues en compte que ambdós mètodes (manual i automàtic) es poden utilitzar alhora sense risc de duplicats.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Elimina la factura recurrent
     ConfirmDeleteRepeatableInvoice=Vols eliminar la plantilla de factura?
     CreateOneBillByThird=Crea una factura per tercer (per la resta, una factura per comanda)
    @@ -545,4 +548,5 @@ AutoFillDateFrom=Estableix la data d'inici de la línia de serveis amb la data d
     AutoFillDateFromShort=Estableix la data d'inici
     AutoFillDateTo=Estableix la data de finalització de la línia de serveis amb la següent data de la factura
     AutoFillDateToShort=Estableix la data de finalització
    -MaxNumberOfGenerationReached=Max number of gen. reached
    +MaxNumberOfGenerationReached=Nombre màxim de gen. arribat
    +BILL_DELETEInDolibarr=Factura esborrada
    diff --git a/htdocs/langs/ca_ES/boxes.lang b/htdocs/langs/ca_ES/boxes.lang
    index cfb78cb1457..58eb339e45f 100644
    --- a/htdocs/langs/ca_ES/boxes.lang
    +++ b/htdocs/langs/ca_ES/boxes.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - boxes
    -BoxLoginInformation=Informació de inici de sessió
    +BoxLoginInformation=Informació d'inici de sessió
     BoxLastRssInfos=Informació RSS
     BoxLastProducts=Últims %s productes/serveis
     BoxProductsAlertStock=Alertes d'estoc per a productes
    @@ -20,22 +20,22 @@ BoxLastMembers=Últims socis
     BoxFicheInter=Últimes intervencions
     BoxCurrentAccounts=Balanç de comptes oberts
     BoxTitleLastRssInfos=Últimes %s notícies de %s
    -BoxTitleLastProducts=Últims %s productes/serveis modificats
    -BoxTitleProductsAlertStock=Productes en alerta d'estoc
    +BoxTitleLastProducts=Products/Services: latest %s modified
    +BoxTitleProductsAlertStock=Productes: alerta d'estoc
     BoxTitleLastSuppliers=Últims %s proveïdors registrats
    -BoxTitleLastModifiedSuppliers=Últims %s proveïdors modificats
    +BoxTitleLastModifiedSuppliers=Latest %s modified vendors
     BoxTitleLastModifiedCustomers=Últims %s clients modificats
     BoxTitleLastCustomersOrProspects=Últims %s clients o clients potencials
    -BoxTitleLastCustomerBills=Últimes %s factures de client
    -BoxTitleLastSupplierBills=Últimes %s factures de proveïdor
    +BoxTitleLastCustomerBills=Latest %s modified customer invoices
    +BoxTitleLastSupplierBills=Latest %s modified vendor invoices
     BoxTitleLastModifiedProspects=Últims %s clients potencials modificats
    -BoxTitleLastModifiedMembers=Últims %s socis
    +BoxTitleLastModifiedMembers=Últims %s socis modificats
     BoxTitleLastFicheInter=Últimes %s intervencions modificades
    -BoxTitleOldestUnpaidCustomerBills=Les %s factures més antigues a clients pendents de cobrament
    -BoxTitleOldestUnpaidSupplierBills=Les %s factures més antigues de proveïdors pendents de pagament
    -BoxTitleCurrentAccounts=Balanços de comptes oberts
    -BoxTitleLastModifiedContacts=Últims %s contactes/adreces
    -BoxMyLastBookmarks=Els meus últims %s marcadors
    +BoxTitleOldestUnpaidCustomerBills=Customer Invoices: oldest %s unpaid
    +BoxTitleOldestUnpaidSupplierBills=Supplier Invoices: oldest %s unpaid
    +BoxTitleCurrentAccounts=Open Accounts: balances
    +BoxTitleLastModifiedContacts=Contacts/Addresses: latest %s modified
    +BoxMyLastBookmarks=Bookmarks: latest %s modified
     BoxOldestExpiredServices=Serveis antics expirats
     BoxLastExpiredServices=Últims %s contactes amb serveis actius expirats
     BoxTitleLastActionsToDo=Últims %s events a realitzar
    @@ -45,7 +45,7 @@ BoxTitleLastModifiedExpenses=Últimes %s despeses modificades
     BoxGlobalActivity=Activitat global
     BoxGoodCustomers=Bons clients
     BoxTitleGoodCustomers=% bons clients
    -FailedToRefreshDataInfoNotUpToDate=Error al refrescar el fil RSS. L'última vegada que es refrescà correctament va ser: %s
    +FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successful refresh date: %s
     LastRefreshDate=Última data que es va refrescar
     NoRecordedBookmarks=No hi ha marcadors personals.
     ClickToAdd=Faci clic aquí per afegir.
    @@ -65,17 +65,17 @@ NoRecordedContracts=Sense contractes registrats
     NoRecordedInterventions=No hi ha intervencions registrades
     BoxLatestSupplierOrders=Últimes comandes a proveïdors
     NoSupplierOrder=Sense comandes a proveïdors
    -BoxCustomersInvoicesPerMonth=Factures a clients per mes
    -BoxSuppliersInvoicesPerMonth=Factures de proveïdors per mes
    -BoxCustomersOrdersPerMonth=Comandes de clients per mes
    -BoxSuppliersOrdersPerMonth=Comandes a proveïdors per mes
    +BoxCustomersInvoicesPerMonth=Customer Invoices per month
    +BoxSuppliersInvoicesPerMonth=Supplier Invoices per month
    +BoxCustomersOrdersPerMonth=Customer Orders per month
    +BoxSuppliersOrdersPerMonth=Supplier Orders per month
     BoxProposalsPerMonth=Pressupostos per mes
    -NoTooLowStockProducts=Sense productes per sota de l'estoc mínim
    -BoxProductDistribution=Distribució de productes/serveis
    -BoxProductDistributionFor=Distribució de %s per %s
    -BoxTitleLastModifiedSupplierBills=Últimes %s factures de proveïdor modificades
    -BoxTitleLatestModifiedSupplierOrders=Últimes %s comandes de proveïdor modificades
    -BoxTitleLastModifiedCustomerBills=Últimes %s factures de client modificades
    +NoTooLowStockProducts=No products are under the low stock limit
    +BoxProductDistribution=Products/Services Distribution
    +BoxProductDistributionFor=Distribution of %s by %s
    +BoxTitleLastModifiedSupplierBills=Latest %s modified vendors invoices
    +BoxTitleLatestModifiedSupplierOrders=Last %s modified purchase orders
    +BoxTitleLastModifiedCustomerBills=Latest %s modified customers invoices
     BoxTitleLastModifiedCustomerOrders=Últimes %s comandes de client modificades
     BoxTitleLastModifiedPropals=Últims %s pressupostos modificats
     ForCustomersInvoices=Factures a clientes
    diff --git a/htdocs/langs/ca_ES/cashdesk.lang b/htdocs/langs/ca_ES/cashdesk.lang
    index c4909443347..a0636abd90c 100644
    --- a/htdocs/langs/ca_ES/cashdesk.lang
    +++ b/htdocs/langs/ca_ES/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Veure empresa
     ShowStock=Veure magatzem
     DeleteArticle=Feu clic per treure aquest article
     FilterRefOrLabelOrBC=Cerca (Ref/Etiq.)
    -UserNeedPermissionToEditStockToUsePos=Vostè pregunta per disminuir l'estoc en la creació de factures, per aixo l'usuari que utilitzi el TPV ha de tenir permís per editar l'estoc
    +UserNeedPermissionToEditStockToUsePos=Es demana disminuir l'estoc en la creació de la factura, de manera que l'usuari que utilitza el TPV ha de tenir permís per editar l'estoc.
     DolibarrReceiptPrinter=Impressora de tickets de Dolibarr
    +PointOfSale=Terminals Punt de Venda
    +PointOfSaleShort=TPV
    +CloseBill=Tanca el compte
    +Floors=Sales
    +Floor=Sala
    +AddTable=Afegeix taula
    +Place=Lloc
    +TakeposConnectorNecesary=Es requereix el 'connector TakePOS'
    +OrderPrinters=Impressores de comandes
    +SearchProduct=Cerca producte
    diff --git a/htdocs/langs/ca_ES/categories.lang b/htdocs/langs/ca_ES/categories.lang
    index c917e4e1a52..aafb8cee62d 100644
    --- a/htdocs/langs/ca_ES/categories.lang
    +++ b/htdocs/langs/ca_ES/categories.lang
    @@ -16,6 +16,7 @@ MembersCategoriesArea=Àrea d'etiquetes de socis
     ContactsCategoriesArea=Àrea d'etiquetes de contactes
     AccountsCategoriesArea=Àrea d'etiquetes de comptes
     ProjectsCategoriesArea=Àrea d'etiquetes de projectes
    +UsersCategoriesArea=Àrea d'etiquetes d'usuaris
     SubCats=Subcategories
     CatList=Llistat d'etiquetes
     NewCategory=Nova etiqueta
    @@ -60,6 +61,7 @@ MembersCategoriesShort=Etiquetes de socis
     ContactCategoriesShort=Etiquetes de contactes
     AccountsCategoriesShort=Etiquetes de comptes
     ProjectsCategoriesShort=Etiquetes de projectes
    +UsersCategoriesShort=Etiquetes d'usuaris
     ThisCategoryHasNoProduct=Aquesta categoria no conté cap producte.
     ThisCategoryHasNoSupplier=Aquesta categoria no conté cap proveïdor.
     ThisCategoryHasNoCustomer=Aquesta categoria no conté cap client.
    diff --git a/htdocs/langs/ca_ES/commercial.lang b/htdocs/langs/ca_ES/commercial.lang
    index 912d7ac4fb7..56c55021c04 100644
    --- a/htdocs/langs/ca_ES/commercial.lang
    +++ b/htdocs/langs/ca_ES/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Trucada telefònica
     ActionAC_FAX=Envia Fax
     ActionAC_PROP=Envia pressupost per e-mail
     ActionAC_EMAIL=Envia e-mail
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Cita
     ActionAC_INT=Lloc d'intervenció
     ActionAC_FAC=Envia factura de client per e-mail
    @@ -72,8 +73,8 @@ StatusProsp=Estat del pressupost
     DraftPropals=Pressupostos esborrany
     NoLimit=Sense límit
     ToOfferALinkForOnlineSignature=Enllaç per a la signatura en línia
    -WelcomeOnOnlineSignaturePage=Benvingut a la pàgina per acceptar propostes comercials de %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=Aquesta pantalla us permet acceptar i signar, o rebutjar, una cotització / proposta comercial
     ThisIsInformationOnDocumentToSign=Es tracta d'informació sobre el document per acceptar o rebutjar
    -SignatureProposalRef=Signatura de pressupost / proposta comercial %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=La funcionalitat de signatura en línia estava desactivada o bé el document va ser generat abans que fos habilitada la funció
    diff --git a/htdocs/langs/ca_ES/companies.lang b/htdocs/langs/ca_ES/companies.lang
    index ba2bbe7ff74..6b7b230b74e 100644
    --- a/htdocs/langs/ca_ES/companies.lang
    +++ b/htdocs/langs/ca_ES/companies.lang
    @@ -11,7 +11,7 @@ MenuNewProspect=Nou client potencial
     MenuNewSupplier=Nou proveïdor
     MenuNewPrivateIndividual=Nou particular
     NewCompany=Nova empresa (client potencial, client, proveïdor)
    -NewThirdParty=Nou tercer (client potencial, client, proveïdor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Crea un tercer (proveïdor)
     CreateThirdPartyOnly=Crea tercer
     CreateThirdPartyAndContact=Crea un tercer + un contacte fill
    @@ -27,7 +27,7 @@ CompanyName=Raó social
     AliasNames=Àlies (nom comercial, marca, ...)
     AliasNameShort=Nom comercial
     Companies=Empreses
    -CountryIsInEEC=Pais de la Comunitat Econòmica Europea
    +CountryIsInEEC=Country is inside the European Economic Community
     ThirdPartyName=Nom del tercer
     ThirdPartyEmail=Correu electrònic del tercer
     ThirdParty=Tercer
    @@ -38,9 +38,9 @@ ThirdPartyCustomers=Clients
     ThirdPartyCustomersStats=Clients
     ThirdPartyCustomersWithIdProf12=Clients amb %s o %s
     ThirdPartySuppliers=Proveïdors
    -ThirdPartyType=Tipus de tercer
    +ThirdPartyType=Tipus d'empresa
     Individual=Particular
    -ToCreateContactWithSameName=Es crearà un contacte/adreça automàticament amb la mateixa informació que el tercer d'acord amb el propi tercer. En la majoria de casos, fins i tot si el tercer és una persona física, la creació d'un sol tercer ja és suficient.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Seu Central
     Subsidiaries=Filials
     ReportByMonth=Informe per mes
    @@ -76,11 +76,11 @@ Town=Població
     Web=Web
     Poste= Càrrec
     DefaultLang=Idioma per defecte
    -VATIsUsed=IVA està utilitzant-se
    -VATIsUsedWhenSelling=Això defineix si aquest tercer inclou un impost de venda o no quan fa una factura als seus propis clients
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=IVA no està utilitzant-se
     CopyAddressFromSoc=Omple l'adreça amb l'adreça del tercer
    -ThirdpartyNotCustomerNotSupplierSoNoRef=El tercer no és client ni proveïdor, no hi ha objectes vinculats disponibles
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=El tercer no és client ni proveïdor, els descomptes no estan disponibles
     PaymentBankAccount=Compte bancari de pagament
     OverAllProposals=Pressupostos
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=ID IVA
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=ID impost
     VATIntraSyntaxIsValid=Sintaxi vàlida
     VATReturn=Devolució de l'IVA
    @@ -267,15 +267,15 @@ Prospect=Client potencial
     CustomerCard=Fitxa client
     Customer=Client
     CustomerRelativeDiscount=Descompte client relatiu
    -SupplierRelativeDiscount=Relative vendor discount
    +SupplierRelativeDiscount=Descompte relatiu de proveïdor
     CustomerRelativeDiscountShort=Descompte relatiu
     CustomerAbsoluteDiscountShort=Descompte fixe
     CompanyHasRelativeDiscount=Aquest client té un descompte per defecte de <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Aquest client no té descomptes relatius per defecte
     HasRelativeDiscountFromSupplier=Teniu un descompte predeterminat de <b> %s%% </b> d'aquest proveïdor
     HasNoRelativeDiscountFromSupplier=No tens descomptes relatius per defecte d'aquest proveïdor
    -CompanyHasAbsoluteDiscount=Aquest client té descomptes disponibles (notes de crèdit o bestretes) per <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=Aquest client té un descompte disponible (comercial, de pagament) per a <b>%s</b>%s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Aquest client encara té abonaments per <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=No tens crèdit disponible per descomptar d'aquest proveïdor
     HasAbsoluteDiscountFromSupplier=Disposes de descomptes (notes de crèdits o pagaments pendents) per a <b> %s </b> %s d'aquest proveïdor
    @@ -284,10 +284,10 @@ HasCreditNoteFromSupplier=Teniu notes de crèdit per a <b> %s </b> %s d'aquest p
     CompanyHasNoAbsoluteDiscount=Aquest client no té més descomptes fixos disponibles
     CustomerAbsoluteDiscountAllUsers=Descomptes absoluts dels clients (concedits per tots els usuaris)
     CustomerAbsoluteDiscountMy=Descomptes absoluts dels clients (concedits per tu mateix)
    -SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
    -SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
    +SupplierAbsoluteDiscountAllUsers=Descomptes absoluts de proveïdor (introduïts per tots els usuaris)
    +SupplierAbsoluteDiscountMy=Descomptes absoluts del proveïdor (introduït per tu mateix)
     DiscountNone=Cap
    -Supplier=Proveïdor
    +Supplier=Vendor
     AddContact=Crear contacte
     AddContactAddress=Crear contacte/adreça
     EditContact=Editar contacte
    @@ -303,21 +303,21 @@ AddThirdParty=Crea tercer
     DeleteACompany=Eliminar una empresa
     PersonalInformations=Informació personal
     AccountancyCode=Compte comptable
    -CustomerCode=Codi client
    -SupplierCode=Codi del proveïdor
    -CustomerCodeShort=Codi client
    -SupplierCodeShort=Codi del proveïdor
    -CustomerCodeDesc=Codi únic client per a cada client
    -SupplierCodeDesc=Codi de proveïdor, únic per a tots els proveïdors
    +CustomerCode=Codi de client
    +SupplierCode=Codi de proveïdor
    +CustomerCodeShort=Codi de client
    +SupplierCodeShort=Codi de proveïdor
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Requerida si el tercer és un client o client potencial
     RequiredIfSupplier=Obligatori si un tercer és proveïdor
    -ValidityControledByModule=Validació controlada pel mòdul
    -ThisIsModuleRules=Aquesta és la regla per aquest mòdul
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Regles per a aquest mòdul
     ProspectToContact=Client potencial a contactar
     CompanyDeleted=L'empresa "%s" ha estat eliminada
     ListOfContacts=Llistat de contactes
    -ListOfContactsAddresses=Llistat de contactes/adreces
    -ListOfThirdParties=Llistat de tercers
    +ListOfContactsAddresses=Llistat de contactes
    +ListOfThirdParties=Llista de tercers
     ShowCompany=Mostra el tercer
     ShowContact=Mostrar contacte
     ContactsAllShort=Tots (sense filtre)
    @@ -338,15 +338,15 @@ MyContacts=Els meus contactes
     Capital=Capital
     CapitalOf=Capital de %s
     EditCompany=Modificar empresa
    -ThisUserIsNot=Aquest usuari no és un client potencial, ni un client ni un proveïdor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Verificar
    -VATIntraCheckDesc=L'enllaç <b>%s</b> permet consultar el NIF intracomunitari al servei de control europeu. Es requereix accés a internet per a que el servei funcioni.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Verifica el NIF Intracomunitari a la web de la Comissió Europea
    -VATIntraManualCheck=Podeu també fer una verificació manual a la web europea <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Comprovació impossible. El servei de comprovació no és prestat pel país membre (%s).
    -NorProspectNorCustomer=Ni client, ni client potencial
    -JuridicalStatus=Forma legal
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Tipus d'entitat legal
     Staff=Empleats
     ProspectLevelShort=Potencial
     ProspectLevel=Nivell de client potencial
    @@ -387,12 +387,12 @@ ExportCardToFormat=Exporta fitxa a format
     ContactNotLinkedToCompany=Contacte no vinculat a un tercer
     DolibarrLogin=Login usuari
     NoDolibarrAccess=Sense accés d'usuari
    -ExportDataset_company_1=Tercers (empreses/entitats/persones físiques) i propietats
    -ExportDataset_company_2=Contactes de tercers i atributs
    -ImportDataset_company_1=Tercers (empreses/entitats/persones físiques) i propietats
    -ImportDataset_company_2=Contactes/Adreces (de tercers o no) i atributs
    -ImportDataset_company_3=Comptes bancaris de tercers
    -ImportDataset_company_4=Tercers/Comercials (Assigna usuaris comercials a tercers)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Nivell de preus
     DeliveryAddress=Adreça d'enviament
     AddAddress=Afegeix adreça
    @@ -402,16 +402,16 @@ DeleteFile=Elimina el fitxer
     ConfirmDeleteFile=Esteu segur de voler eliminar aquest fitxer?
     AllocateCommercial=Assignat a un agent comercial
     Organization=Organisme
    -FiscalYearInformation=Informació de l'any fiscal
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Mes d'inici d'exercici
    -YouMustAssignUserMailFirst=Has de crear un correu electrònic per aquest usuari abans d'afegir notificacions de correu electrònic per ell.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=Per poder afegir notificacions de correu electrònic, en primer lloc s'ha de definir contactes amb correu electrònic vàlid pel tercer
    -ListSuppliersShort=Llista de proveïdors
    -ListProspectsShort=Llistat de clients potencials
    -ListCustomersShort=Llistat de clients
    -ThirdPartiesArea=Àrea de tercers i contactes
    -LastModifiedThirdParties=Últims %s tercers modificats
    -UniqueThirdParties=Total de tercers únics
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Actiu
     ActivityCeased=Tancat
     ThirdPartyIsClosed=Tercer està tancat
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Factura pendent actual
     OutstandingBill=Max. de factures pendents
     OutstandingBillReached=S'ha arribat al màx. de factures pendents
     OrderMinAmount=Import mínim per comanda
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Codi de client/proveïdor lliure sense verificació. Pot ser modificat en qualsevol moment.
     ManagingDirectors=Nom del gerent(s) (CEO, director, president ...)
     MergeOriginThirdparty=Duplicar tercer (tercer que vols eliminar)
     MergeThirdparties=Fusionar tercers
    -ConfirmMergeThirdparties=Estàs segur que vols fusionar aquest tercer amb l'actual? Tots els objectes relacionats (factures, comandes, ...) seran traslladats al tercer actual, i l'anterior duplicat serà esborrat.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=S'han fusionat els tercers
     SaleRepresentativeLogin=Nom d'usuari de l'agent comercial
     SaleRepresentativeFirstname=Nom de l'agent comercial
     SaleRepresentativeLastname=Cognoms de l'agent comercial
     ErrorThirdpartiesMerge=S'ha produït un error en suprimir els tercers. Verifiqueu el registre. S'han revertit els canvis.
    -NewCustomerSupplierCodeProposed=Nou codi de client o proveïdor proposat en cas de codi duplicat
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/ca_ES/contracts.lang b/htdocs/langs/ca_ES/contracts.lang
    index c4dec160abc..d032d8f8ca1 100644
    --- a/htdocs/langs/ca_ES/contracts.lang
    +++ b/htdocs/langs/ca_ES/contracts.lang
    @@ -67,7 +67,7 @@ CloseService=Finalitzar servei
     BoardRunningServices=Serveis actius expirats
     ServiceStatus=Estat del servei
     DraftContracts=Contractes esborrany
    -CloseRefusedBecauseOneServiceActive=El contracte no pot ser tancat ja que conté almenys un servei obert.
    +CloseRefusedBecauseOneServiceActive=El contracte no es pot tancar ja que almenys hi ha un servei obert
     ActivateAllContracts=Activar totes les línies de contracte
     CloseAllContracts=Tancar tots els serveis
     DeleteContractLine=Eliminar línia de contracte
    @@ -89,6 +89,7 @@ CloneContract=Clona el contracte
     ConfirmCloneContract=Are you sure you want to clone the contract <b>%s</b>?
     LowerDateEndPlannedShort=Baixa data de finalització planificada dels serveis actius 
     SendContractRef=Informació del contracte __REF__
    +OtherContracts=Altres contractes
     ##### Types de contacts #####
     TypeContact_contrat_internal_SALESREPSIGN=Agent comercial signant del contracte
     TypeContact_contrat_internal_SALESREPFOLL=Agent comercial del seguiment del contracte
    diff --git a/htdocs/langs/ca_ES/cron.lang b/htdocs/langs/ca_ES/cron.lang
    index 243a8302d80..4eca72bb589 100644
    --- a/htdocs/langs/ca_ES/cron.lang
    +++ b/htdocs/langs/ca_ES/cron.lang
    @@ -6,13 +6,13 @@ Permission23102 = Crea/modifica la tasca programada
     Permission23103 = Elimina la tasca programada
     Permission23104 = Executa les tasques programades
     # Admin
    -CronSetup= Pàgina de configuració del mòdul - Gestió de tasques planificades
    +CronSetup=Pàgina de configuració del mòdul - Gestió de tasques planificades
     URLToLaunchCronJobs=URL per comprovar i posar en marxa les tasques automàtiques qualificades
     OrToLaunchASpecificJob=O per llançar una tasca específica
     KeyForCronAccess=Codi de seguretat per a la URL de llançament de tasques automàtiques
     FileToLaunchCronJobs=Línia de comando per verificar i executar tasques cron qualificades
     CronExplainHowToRunUnix=A entorns Unix s'ha d'utilitzar la següent entrada crontab per executar la comanda cada 5 minuts
    -CronExplainHowToRunWin=En entorns Microsoft (tm) Windows, pot utilitzar l'eina 'tareas programadas' per executar la comanda cada 5 minuts
    +CronExplainHowToRunWin=On Microsoft(tm) Windows environment you can use Scheduled Task tools to run the command line each 5 minutes
     CronMethodDoesNotExists=La classe %s no conté cap mètode %s
     CronJobDefDesc=Els perfils de tasques programades es defineixen a la fitxa del mòdul descriptor. Quan s'activa el mòdul, es carreguen i estan disponibles per poder administrar les tasques des del menú d'eines d'administració %s.
     CronJobProfiles=Llista de perfils predefinits de tasques programades
    @@ -43,11 +43,7 @@ CronNoJobs=Sense treballs actualment
     CronPriority=Prioritat
     CronLabel=Etiqueta
     CronNbRun=Nº execucions
    -<<<<<<< HEAD
    -CronMaxRun=Max number launch
    -=======
     CronMaxRun=Número màxim d'execucions
    ->>>>>>> branch '7.0' of git@github.com:Dolibarr/dolibarr.git
     CronEach=Tota (s)
     JobFinished=Tasques llançades i finalitzades
     #Page card
    @@ -65,11 +61,11 @@ CronStatusInactiveBtn=Desactivar
     CronTaskInactive=Aquesta tasca es troba desactivada
     CronId=Id
     CronClassFile=Filename with class
    -CronModuleHelp=Nom del directori del mòdul de Dolibarr (també funciona amb mòduls externs). <BR> Per exemple, per cridar al mètode "fetch" de l'objecte Producte de Dolibarr /htdocs/<u>product</u>/class/product.class.php, el valor pel mòdul és <i>product</i>
    -CronClassFileHelp=La ruta relativa i el nom del fitxer a carregar (la ruta és relativa al directori arrel del servidor web). <BR> Per exemple, per cridar al mètode "fetch" de l'objecte Producte de Dolibarr /htdocs/product/class/<u>product.class.php</u>, el valor del nom del fitxer de classe és <i>product/class/product.class.php</i>
    -CronObjectHelp=El nom de l'objecte a carregar. <BR> Per exemple, per cridar al mètode "fetch" de l'objecte Producte de Dolibarr /htdocs/product/class/product.class.php, el valor pel nom del fitxer de classe és <i>Product</i>
    -CronMethodHelp=El mètode d'objecte a cridar. <BR> Per exemple, per cridar al mètode "fetch" de l'objecte Producte de Dolibarr /htdocs/product/class/product.class.php, el valor pel mètode és <i>fetch</i>
    -CronArgsHelp=Els arguments del mètode. <BR> Per exemple, cridar al mètode "fetch" de l'objecte Producte de Dolibarr /htdocs/product/class/product.class.php, el valor dels paràmetres pot ser <br> <i>0, ProductRef</i>
    +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module). <BR> For example to call the fetch method of Dolibarr Product object /htdocs/<u>product</u>/class/product.class.php, the value for module is<br><i>product</i>
    +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory). <BR> For example to call the fetch method of Dolibarr Product object htdocs/product/class/<u>product.class.php</u>, the value for class file name is<br><i>product/class/product.class.php</i>
    +CronObjectHelp=The object name to load. <BR> For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is<br><i>Product</i>
    +CronMethodHelp=The object method to launch. <BR> For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is<br><i>fetch</i>
    +CronArgsHelp=The method arguments. <BR> For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be<br><i>0, ProductRef</i>
     CronCommandHelp=El comando del sistema a executar
     CronCreateJob=Crear nova tasca programada
     CronFrom=De
    @@ -83,5 +79,5 @@ CronCannotLoadObject=El "class file" %s s'ha carregat, però l'objecte %s no s'h
     UseMenuModuleToolsToAddCronJobs=Ves a menú "Inici - Utilitats de sistema - Tasques programades" per veure i editar les tasques programades.
     JobDisabled=Tasca desactivada
     MakeLocalDatabaseDumpShort=Còpia de seguretat de la base de dades local
    -MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql' or 'pgsql'), 1, 'auto' or filename to build, number of backup files to keep
    +MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep
     WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run.
    diff --git a/htdocs/langs/ca_ES/deliveries.lang b/htdocs/langs/ca_ES/deliveries.lang
    index 30b75552453..ccf1f7fdd97 100644
    --- a/htdocs/langs/ca_ES/deliveries.lang
    +++ b/htdocs/langs/ca_ES/deliveries.lang
    @@ -28,3 +28,4 @@ ErrorStockIsNotEnough=No hi ha estoc suficient
     Shippable=Es pot enviar
     NonShippable=No es pot enviar
     ShowReceiving=Mostra el rebut d'entrega
    +NonExistentOrder=Comanda inexistent
    diff --git a/htdocs/langs/ca_ES/dict.lang b/htdocs/langs/ca_ES/dict.lang
    index 2f78416bb81..e135ad8eac8 100644
    --- a/htdocs/langs/ca_ES/dict.lang
    +++ b/htdocs/langs/ca_ES/dict.lang
    @@ -160,7 +160,7 @@ CountryMD=Moldàvia
     CountryMN=Mongòlia
     CountryMS=Monserrat
     CountryMZ=Moçambic
    -CountryMM=Birmània (Myanmar)
    +CountryMM=Myanmar (Birmània)
     CountryNA=Namíbia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinité-et-Tobago
     CountryTR=Turquia
     CountryTM=Turkmenistan
    -CountryTC=Illes Turks i Caicos
    +CountryTC=Illes turques i caicos
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ucraïna
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Rupies mauritanes
     CurrencySingMUR=Rupia mauritana
     CurrencyNOK=Corones noruegues
    -CurrencySingNOK=Corona noruega
    +CurrencySingNOK=Cronas noruegues
     CurrencyTND=TND
     CurrencySingTND=Dinar tunisià
     CurrencyUSD=Dòlars USA
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Boca a boca
     DemandReasonTypeSRC_PARTNER=Soci
     DemandReasonTypeSRC_EMPLOYEE=Empleat
     DemandReasonTypeSRC_SPONSORING=Patrocinador
    +DemandReasonTypeSRC_SRC_CUSTOMER=Contacte entrant d'un client
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/ca_ES/ecm.lang b/htdocs/langs/ca_ES/ecm.lang
    index 53676bb22e7..5bf344575a3 100644
    --- a/htdocs/langs/ca_ES/ecm.lang
    +++ b/htdocs/langs/ca_ES/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nº de documents
    +ECMNbOfDocs=Nº de documents en el directori
     ECMSection=Carpeta
     ECMSectionManual=Carpeta manual
     ECMSectionAuto=Carpeta automàtica
    @@ -34,18 +34,19 @@ ECMDocsByProjects=Documents enllaçats a projectes
     ECMDocsByUsers=Documents referents a usuaris
     ECMDocsByInterventions=Documents relacionats amb les intervencions
     ECMDocsByExpenseReports=Documents relacionats als informes de despeses
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No s'ha creat carpeta
     ShowECMSection=Mostrar carpeta
     DeleteSection=Eliminació carpeta
     ConfirmDeleteSection=Vols eliminar el directori <b>%s</b>?
     ECMDirectoryForFiles=Carpeta relativa per a fitxers
    -CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories
    -CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files
    +CannotRemoveDirectoryContainsFilesOrDirs=L'eliminació no és possible perquè conté alguns fitxers o subdirectoris
    +CannotRemoveDirectoryContainsFiles=L'eliminació no és possible perquè conté alguns fitxers
     ECMFileManager=Explorador de fitxers
     ECMSelectASection=Seleccioneu una carpeta en l'arbre...
     DirNotSynchronizedSyncFirst=Aquest directori sembla que s'ha creat o modificat fora del mòdul ECM. Heu de prémer el botó "Resincronitzar" per sincronitzar el disc i la base de dades per obtenir el contingut d'aquest directori.
     ReSyncListOfDir=Resincronitzar la llista de directoris
     HashOfFileContent=Resum matemàtic ("hash") del contingut del fitxer
    -FileNotYetIndexedInDatabase=Fitxer encara no indexat a la base de dades (intenteu pujant-lo de nou)
    -FileSharedViaALink=Fitxer compartit a través d'un enllaç
     NoDirectoriesFound=No s'han trobat directoris
    +FileNotYetIndexedInDatabase=Fitxer encara no indexat a la base de dades (intenteu pujant-lo de nou)
    diff --git a/htdocs/langs/ca_ES/errors.lang b/htdocs/langs/ca_ES/errors.lang
    index cb7dd9a7e2d..48880963224 100644
    --- a/htdocs/langs/ca_ES/errors.lang
    +++ b/htdocs/langs/ca_ES/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=El valor '%s' té un format de data no reconegut
     ErrorWrongDate=La data no es correcta!
     ErrorFailedToWriteInDir=No es pot escriure a la carpeta %s
     ErrorFoundBadEmailInFile=Trobada sintaxi incorrecta en email a %s línies en fitxer (exemple linia %s amb email=%s)
    -ErrorUserCannotBeDelete=No es pot eliminar l'usuari. És possible que estigui relacionat amb entitats de Dolibarr.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=No s'han indicat alguns camps obligatoris
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Error en la creació d'una carpeta. Comprovi que l'usuari del servidor web té drets d'escriptura en les carpetes de documents de Dolibarr. Si el paràmetre <b>safe_mode</b> està actiu en aquest PHP, Comproveu que els fitxers php dolibarr pertanyen a l'usuari del servidor web.
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Els valors de la llista han de ser indicats
     ErrorNoValueForCheckBoxType=Els valors de la llista de la casella de verificacó han de ser indicats
     ErrorNoValueForRadioType=Els valors de la llista han de ser indicats
     ErrorBadFormatValueList=La llista de valors no pot tenir més d'una coma: <u>%s</u>, però necessita com a mínim una: clau,valor
    -ErrorFieldCanNotContainSpecialCharacters=El camp <b>%s</b> no ha de contenir caràcters especials
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=El camp <b>%s</b> no ha de contenir caràcters especials, ni caràcters en majúscula i no pot contindre només números.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Mòdul de comptabilitat no activat
     ErrorExportDuplicateProfil=El nom d'aquest perfil ja existeix per aquest conjunt d'exportació
     ErrorLDAPSetupNotComplete=La configuració Dolibarr-LDAP és incompleta.
     ErrorLDAPMakeManualTest=S'ha creat un arxiu .ldif a la carpeta %s. Intenta carregar-lo manualment des de la línia de comandes per tenir més informació sobre l'error.
    -ErrorCantSaveADoneUserWithZeroPercentage=No es pot canviar una acció al estat no començada si teniu un usuari realitzant de l'acció.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=La referència utilitzada per a la creació ja existeix
     ErrorPleaseTypeBankTransactionReportName=Si us plau, tecleja el nom del extracte bancari on s'informa del registre (format AAAAMM o AAAAMMDD)
    -ErrorRecordHasChildren=No s'ha pogut eliminar el registre, ja que té alguns registres fills.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=L'objecte té almenys un fill de tipus %s
    -ErrorRecordIsUsedCantDelete=No es pot eliminar el registre. S'està utilitzant o incloent en un altre objecte.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript ha d'estar activat per a que aquesta opció pugui utilitzar-se. Per activar/desactivar JavaScript, ves al menú Inici->Configuració->Entorn.
     ErrorPasswordsMustMatch=Les 2 contrasenyes indicades s'han de correspondre
    -ErrorContactEMail=S'ha produït un error tècnic. Contacti amb l'administrador al e-mail <b>%s</b>, indicant el codi d'error <b>%s</b> en el seu missatge, o pot també adjuntar una còpia de pantalla d'aquesta pàgina.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Valor incorrecte per al camp número <b>%s</b> (el valor '<b>%s</b>' no compleix amb la regla <b>%s</b>)
     ErrorFieldValueNotIn=Valor incorrecte per al camp número <b>%s</b> (el valor '<b>%s</b>' no és un valors disponible en el camp <b>%s</b> de la taula <b>%s</b>)
     ErrorFieldRefNotIn=Valor incorrecte per al camp nombre <b>%s</b> (el valor '<b>%s</b>' no és una referència existent en <b>%s</b>)
    @@ -87,7 +88,8 @@ ErrorsOnXLines=Errors a <b>%s</b> línies font
     ErrorFileIsInfectedWithAVirus=L'antivirus no ha pogut validar aquest arxiu (és probable que estigui infectat per un virus)!
     ErrorSpecialCharNotAllowedForField=Els caràcters especials no són admesos pel camp "%s"
     ErrorNumRefModel=Hi ha una referència a la base de dades (%s) i és incompatible amb aquesta numeració. Elimineu la línia o renomeneu la referència per activar aquest mòdul.
    -ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorQtyTooLowForThisSupplier=Quantitat massa baixa per a aquest proveïdor o sense preu definit en aquest producte per a aquest proveïdor
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=La configuració de mòduls sembla incompleta. Ves a Inici - Configuració - Mòduls a completar.
     ErrorBadMask=Error en la màscara
     ErrorBadMaskFailedToLocatePosOfSequence=Error, sense número de seqüència en la màscara
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, valor de tornada a 0 incorrecte
     ErrorMaxNumberReachForThisMask=Capacitat màxima assolit per aquesta mascara
     ErrorCounterMustHaveMoreThan3Digits=El comptador ha de tenir més de 3 dígits
     ErrorSelectAtLeastOne=Error. Seleccioneu com a mínim una entrada.
    -ErrorDeleteNotPossibleLineIsConsolidated=Eliminació impossible ja que el registre està enllaçat a una transacció bancària conciliada
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s es troba assignat a altre tercer
     ErrorFailedToSendPassword=Error en l'enviament de la contrasenya
     ErrorFailedToLoadRSSFile=Error en la recuperació del flux RSS. Afegiu la constant MAIN_SIMPLEXMLLOAD_DEBUG si el missatge d'error no és molt explícit.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=El compte d'usuari de <b>%s</b> no s'ha trobat.
     ErrorLoginHasNoEmail=Aquest usuari no té e-mail. Impossible continuar.
     ErrorBadValueForCode=Valor incorrecte per codi de seguretat. Torna a intentar-ho amb un nou valor...
     ErrorBothFieldCantBeNegative=Els camps %s i %s no poden ser negatius
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=La quantitat a les línies de factures a clients no poden ser negatives
     ErrorWebServerUserHasNotPermission=El compte d'execució del servidor web <b>%s</b> no disposa dels permisos per això
     ErrorNoActivatedBarcode=No hi ha activat cap tipus de codi de barres
    @@ -138,7 +141,7 @@ ErrorBadFormat=El format és incorrecte!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, aquest soci encara no s'ha enllaçat a un tercer. Enllaça el soci a un tercer existent o crea un tercer nou abans de crear la quota amb factura.
     ErrorThereIsSomeDeliveries=Error, hi ha entrades vinculades a aquest enviament. No es pot eliminar
     ErrorCantDeletePaymentReconciliated=No pot esborrar un pagament que va generar una entrada de banc que va ser conciliada
    -ErrorCantDeletePaymentSharedWithPayedInvoice=No es pot eliminar un pagament de vàries factures amb alguna factura amb l'estat Pagada
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=No es pot assignar a la constant '%s'
     ErrorPriceExpression2=No es pot redefinir la funció incorporada'%s'
     ErrorPriceExpression3=Variable '%s' no definida a la definició de la funció
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=No s'esperava '%s'
     ErrorPriceExpression6=Nombre d'arguments inadequats (%s dades, %s esperats)
     ErrorPriceExpression8=Operador '%s' no esperat
     ErrorPriceExpression9=Ha succeït un error no esperat
    -ErrorPriceExpression10=Operador '%s' no té operant
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=S'esperava '%s'
     ErrorPriceExpression14=Divisió per zero
     ErrorPriceExpression17=Variable '%s' indefinida
    @@ -171,13 +174,13 @@ ErrorGlobalVariableUpdater4=El client SOAP ha fallat amb l'error '%s'
     ErrorGlobalVariableUpdater5=Sense variable global seleccionada
     ErrorFieldMustBeANumeric=El camp <b>%s</b> ha de ser un valor numèric
     ErrorMandatoryParametersNotProvided=Paràmetre/s obligatori/s no definits
    -ErrorOppStatusRequiredIfAmount=S'estableix una quantitat estimada per aquesta oportunitat/prospecte. Així que també has d'introduir el seu estat
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Definició incorrecta del menú Array en el descriptor del mòdul (valor incorrecte per a la clau fk_menu)
    -ErrorSavingChanges=Hi ha hagut un error al salvar els canvis
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=El magatzem és obligatori en la línia a enviar
     ErrorFileMustHaveFormat=El fitxer té format %s
    -ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    +ErrorSupplierCountryIsNotDefined=El país d'aquest proveïdor no està definit. Corregeix-lo primer.
     ErrorsThirdpartyMerge=No es poden combinar els dos registres. Petició cancelada.
     ErrorStockIsNotEnoughToAddProductOnOrder=No hi ha suficient estoc del producte %s per afegir-ho en una nova comanda.
     ErrorStockIsNotEnoughToAddProductOnInvoice=No hi ha suficient estoc del producte %s per afegir-ho en una nova factura.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=No s'ha trobat el fitxer. Pot ser que la clau co
     ErrorProductBarCodeAlreadyExists=El codi de barres de producte %s ja existeix en la referència d'un altre producte.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Tingueu en compte també que no és possible tenir un producte virtual amb auto increment/decrement de subproductes quan almenys un subproducte (o subproducte de subproductes) necessita un número de sèrie/lot.
     ErrorDescRequiredForFreeProductLines=La descripció és obligatòria per a línies amb producte de lliure edició
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=S'ha indicat una contrasenya per aquest soci. En canvi, no s'ha creat cap compte d'usuari, de manera que aquesta contrasenya s'ha desat però no pot ser utilitzada per entrar a Dolibarr. Es pot utilitzar per un mòdul/interfície extern, però si no cal definir cap usuari i contrasenya per un soci, pots deshabilitar la opció "Gestiona l'entrada per tots els socis" des de la configuració del mòdul Socis. Si necessites gestionar una entrada sense contrasenya, pots mantenir aquest camp buit i permetre aquest avís. Nota: El correu electrònic es pot utilitzar per entrar si el soci està enllaçat a un usuarí
     WarningMandatorySetupNotComplete=Els paràmetres obligatoris de configuració no estan encara definits
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Ja existeix un marcador amb aquest títol o aquest
     WarningPassIsEmpty=Atenció: La contrasenya de la base de dades està buida. Això és un forat de seguretat. Cal afegir una contrasenya a la seva base de dades i canviar el seu arxiu conf.php per reflectir això.
     WarningConfFileMustBeReadOnly=Atenció, el seu fitxer (<b>htdocs/conf/conf.php</b>) és accessible en escriptura al servidor web. Això representa un error seriós de seguretat. Modifiqueu els permisos per ser llegit únicament pel compte que executa el servidor Web.Si està executant Windows en undisco amb format FAT, sigui conscient que aquest sistema d'arxius no protegeix els arxius i no ofereix cap solució per reduir els riscos de manipulació d'aquest fitxer.
     WarningsOnXLines=Alertes a <b>%s</b> línies font
    -WarningNoDocumentModelActivated=No hi ha cap model per a la generació del document activat. Es prendrà un model per defecte fins que es configuri el mòdul.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Atenció: Un cop acabada l'instal·lació, han de desactivar les eines d'instal·lació/actualització afegint l'arxiu <b>install.lock</b> al directori <b>%s</b>. L'absència d'aquest imatge mostra una fallada de seguretat.
    -WarningUntilDirRemoved=Aquesta alerta seguirà activa mentre la carpeta existeixi (alerta visible per als usuaris admin solament).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Avís, el tancament és realitzat encara que la quantitat total difereixi entre els elements d'origen i destí. Activi aquesta funcionalitat amb precaució.
     WarningUsingThisBoxSlowDown=Atenció, l'ús d'aquest panell provoca serioses alentiments en les pàgines que mostren aquest panell.
     WarningClickToDialUserSetupNotComplete=La configuració de ClickToDial per al compte d'usuari no està completa (vegeu la pestanya ClickToDial en la seva fitxa d'usuari)
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Massa dades (més de %s línies). Utilitz
     WarningSomeLinesWithNullHourlyRate=Algunes vegades es van registrar per alguns usuaris quan no s'havia definit el seu preu per hora. Es va utilitzar un valor de 0 %s per hora, però això pot resultar una valoració incorrecta del temps dedicat.
     WarningYourLoginWasModifiedPleaseLogin=El teu login s'ha modificat. Per seguretat has de fer login amb el nou login abans de la següent acció.
     WarningAnEntryAlreadyExistForTransKey=Ja existeix una entrada per la clau de traducció d'aquest idioma
    -WarningNumberOfRecipientIsRestrictedInMassAction=Advertència: el nombre de destinataris diferents està limitat a <b>%s</b> quan s'utilitzen les accions massives sobre llistes
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Advertència, la data de la línia no està dins del rang de l'informe de despeses
    diff --git a/htdocs/langs/ca_ES/help.lang b/htdocs/langs/ca_ES/help.lang
    index e76e98004e2..ecc5e1dd719 100644
    --- a/htdocs/langs/ca_ES/help.lang
    +++ b/htdocs/langs/ca_ES/help.lang
    @@ -5,8 +5,8 @@ RemoteControlSupport=Assistència en temps real a distància
     OtherSupport=Altres tipus d'assistència
     ToSeeListOfAvailableRessources=Per contactar/veure els recursos disponibles:
     HelpCenter=Centre  d'assistència
    -DolibarrHelpCenter=Centre de suport i ajuda Dolibarr
    -ToGoBackToDolibarr=D'altra banda, faci clic <a href="%s">aquí per utilitzar Dolibarr</a>
    +DolibarrHelpCenter=Centre d'Ajuda i Suport de Dolibarr
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
     TypeOfSupport=Tipus de suport
     TypeSupportCommunauty=Comunitari (gratuït)
     TypeSupportCommercial=Comercial
    @@ -15,12 +15,9 @@ NeedHelpCenter=Necessites ajuda o suport?
     Efficiency=Eficàcia
     TypeHelpOnly=Només ajuda
     TypeHelpDev=Ajuda+Desenvolupament
    -TypeHelpDevForm=Ajuda+Desenvolupament+Formació
    -ToGetHelpGoOnSparkAngels1=Algunes empreses o independents ofereixen serveis de suport molt ràpid (de vegades d'immediat) i més eficients gràcies a la capacitat de control remot del seu equip per ajudar a diagnosticar i resoldre els seus problemes. Aquesta assistència es pot trobar a la borsa d'assistents de <b>%s</b>:
    -ToGetHelpGoOnSparkAngels3=Per accedir a la recerca de <b>assistents disponibles</b>, feu clic aquí
    -ToGetHelpGoOnSparkAngels2=En ocasions, cap operador es troba disponible en el moment de la seva recerca, no oblideu canviar el criteri de cerca indicant "tots els disponibles". Pot, doncs, posar-se en contacte en diferit.
    -BackToHelpCenter=Sinó, feu clic aquí per <a href="%s"> tornar al centre d'assistència</a>.
    -LinkToGoldMember=En cas contrari, podeu trucar immediatament a un dels assistents preseleccionats per Dolibarr per al seu idioma (%s) fent clic en el seu widget (disponibilitat i tarifa màxima actualitzades automàticament):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Idiomes disponibles
    -SubscribeToFoundation=Ajuda al projecte Dolibarr, adhereix-te a l'associació
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Per suport oficial de Dolibar amb el teu llenguatge:<br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/ca_ES/holiday.lang b/htdocs/langs/ca_ES/holiday.lang
    index f24eaf1d822..6aec4a69a59 100644
    --- a/htdocs/langs/ca_ES/holiday.lang
    +++ b/htdocs/langs/ca_ES/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=RRHH
    -Holidays=Dies lliures
    -CPTitreMenu=Dies lliures
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Estat mensual
     MenuAddCP=Nova petició de dia lliure
    -NotActiveModCP=Ha d'activar el mòdul Dies lliures retribuïts per veure aquesta pàgina
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Realitzar una petició de dies lliures
     DateDebCP=Data inici
     DateFinCP=Data fi
    @@ -15,18 +15,18 @@ ApprovedCP=Aprovada
     CancelCP=Anul·lada
     RefuseCP=Rebutjada
     ValidatorCP=Validador
    -ListeCP=Llista de dies lliures
    +ListeCP=List of leave
     LeaveId=Identificador de baixa
     ReviewedByCP=Serà revisada per
     UserForApprovalID=Usuari per al ID d'aprovació
    -UserForApprovalFirstname=Nom de l'usuari d'aprovació
    -UserForApprovalLastname=Cognom de l'usuari d'aprovació
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
     UserForApprovalLogin=Login de l'usuari d'aprovació
     DescCP=Descripció
     SendRequestCP=Enviar la petició de dies lliures
     DelayToRequestCP=Les peticions de dies lliures s'han de realitzar al menys <b>%s dies</b> abans.
    -MenuConfCP=Saldo de dies lliures
    -SoldeCPUser=El seu saldo de dies lliures es de <b>%s dies</b>
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Ha d'indicar una data de fi superior a la data d'inici.
     ErrorSQLCreateCP=S'ha produït un error de SQL durant la creació:
     ErrorIDFicheCP=S'ha produït un error, aquesta sol·licitud de dies lliures no existeix
    @@ -39,16 +39,10 @@ TypeOfLeaveId=Tipus d'identificador de baixa
     TypeOfLeaveCode=Tipus de codi de baixa
     TypeOfLeaveLabel=Tipus d'etiqueta de baixa
     NbUseDaysCP=Nombre de dies lliures consumits
    -<<<<<<< HEAD
    -NbUseDaysCPShort=Days consumed
    -NbUseDaysCPShortInMonth=Days consumed in month
    -DateStartInMonth=Start date in month
    -=======
     NbUseDaysCPShort=Dies consumits
     NbUseDaysCPShortInMonth=Dies consumits al mes
     DateStartInMonth=Data d'inici al mes
    ->>>>>>> branch '7.0' of git@github.com:Dolibarr/dolibarr.git
    -DateEndInMonth=End date in month
    +DateEndInMonth=Data de finalització al mes
     EditCP=Modificar
     DeleteCP=Eliminar
     ActionRefuseCP=Rebutja
    @@ -103,16 +97,12 @@ AllHolidays=Totes les sol·licituds de permís
     HalfDay=Mig dia
     NotTheAssignedApprover=No sou l'aprovador assignat
     LEAVE_PAID=Vacances pagades
    -<<<<<<< HEAD
    -LEAVE_SICK=Sick leave
    -=======
     LEAVE_SICK=Baixa per enfermetat
    ->>>>>>> branch '7.0' of git@github.com:Dolibarr/dolibarr.git
    -LEAVE_OTHER=Other leave
    +LEAVE_OTHER=Altres sortides
     LEAVE_PAID_FR=Vacances pagades
     ## Configuration du Module ##
    -LastUpdateCP=Última actualització automàtica de reserva de dies lliures
    -MonthOfLastMonthlyUpdate=Mes de l'última actualització automàtica de reserva de dies lliures
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Actualització efectuada correctament.
     Module27130Name= Gestió de dies lliures
     Module27130Desc= Gestió de dies lliures
    @@ -122,7 +112,7 @@ NoticePeriod=Preavís
     HolidaysToValidate=Dies lliures retribuïts a validar
     HolidaysToValidateBody=A continuació trobara una sol·licitud de dies lliures retribuïts per validar
     HolidaysToValidateDelay=Aquesta sol·licitud de dies lliures retribuïts tindrà lloc en un termini de menys de %s dies.
    -HolidaysToValidateAlertSolde=L'usuari que ha realitzat la sol·licitud de dies lliures retribuïts no disposa de suficients dies disponibles
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Dies lliures retribuïts valids
     HolidaysValidatedBody=La seva sol·licitud de dies lliures retribuïts des de el %s al %s ha sigut validada.
     HolidaysRefused=Dies lliures retribuïts denegats
    @@ -131,4 +121,9 @@ HolidaysCanceled=Dies lliures retribuïts cancel·lats
     HolidaysCanceledBody=La seva solicitud de dies lliures retribuïts del %s al %s ha sigut cancel·lada.
     FollowedByACounter=1: Aquest tipus de dia lliure necessita el seguiment d'un comptador. El comptador s'incrementa manualment o automàticament i quan hi ha una petició de dia lliure validada, el comptador es decrementa.<br>0: No seguit per un comptador.
     NoLeaveWithCounterDefined=No s'han definit els tipus de dies lliures que son necessaris per poder seguir-los amb comptador
    -GoIntoDictionaryHolidayTypes=Ves a <strong>Inici - Configuració - Diccionaris - Tipus de dies lliures</strong> per configurar els diferents tipus de dies lliures
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/ca_ES/install.lang b/htdocs/langs/ca_ES/install.lang
    index a1ce071cf25..3db6924016a 100644
    --- a/htdocs/langs/ca_ES/install.lang
    +++ b/htdocs/langs/ca_ES/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Segueix les instruccions pas a pas.
     MiscellaneousChecks=Comprovació dels prerequisits
     ConfFileExists=L'arxiu de configuració <b>%s</b> existeix.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=El fitxer de configuració <b>%s</b> no existeix i no s'ha creat!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=L'arxiu de configuració <b>%s</b> s'ha creat.
    -ConfFileIsNotWritable=L'arxiu de configuració <b>%s</b> no és modificable. Comprova els permisos. Per a una primera instal·lació, el servidor web ha de tenir el dret a modificar aquest fitxer durant el procés de configuració (per exemple "chmod 666" sobre un SO compatible UNIX).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=L'arxiu <b>%s</b> és modificable.
    -ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Recarregar tota la informació de l'arxiu de configuració.
    +ConfFileMustBeAFileNotADir=El fitxer de configuració <b> %s</b> ha de ser un fitxer, no un directori.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Aquest PHP suporta sessions
     PHPSupportPOSTGETOk=Aquest PHP suporta bé les variables POST i GET.
    -PHPSupportPOSTGETKo=És possible que aquest PHP no suport les variables POST i/o GET. Comproveu el paràmetre <b>variables_order</b> del php.ini.
    -PHPSupportGD=Aquest PHP suporta les funcions gràfiques GD.
    -PHPSupportCurl=Aquest PHP suporta Curl.
    -PHPSupportUTF8=Aquest PHP suporta les funcions UTFB.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=Aquest PHP és compatible amb les funcions gràfiques GD.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=Aquest PHP és compatible amb les funcions UTF8.
     PHPMemoryOK=La seva memòria màxima de sessió PHP està definida a <b>%s</b>. Això hauria de ser suficient.
    -PHPMemoryTooLow=La seva memòria màxima de sessió PHP està definida a <b>%s</b> bytes. Això és molt poc. Es recomana modificar el paràmetre <b>memory_limit</b> del seu arxiu <b> php.ini</b> a almenys <b>%s</b> octets.
    -Recheck=Faci clic aquí per realitzar un test més exhaustiu
    -ErrorPHPDoesNotSupportSessions=La seva instal·lació de PHP no suporta les sessions. Aquesta funcionalitat és necessària per fer funcionar a Dolibarr. Comprovi la seva configuració de PHP.
    -ErrorPHPDoesNotSupportGD=Aquest PHP no suporta les funcions gràfiques GD. Cap gràfic estarà disponible.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=La teva instal·lació PHP no soporta Curl.
    -ErrorPHPDoesNotSupportUTF8=Aquest PHP no suporta les funcions UTF8. Resolgui el problema abans d'instal lar Dolibarr ja que no funcionarà correctamete.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=La carpeta <b>%s</b> no existeix o no és accessible.
    -ErrorGoBackAndCorrectParameters=Torna enrera i corregeix els paràmetres incorrectes.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Ha indicat potser un valor incorrecte per al paràmetre '%s'.
     ErrorFailedToCreateDatabase=Error en crear la base de dades '%s'.
     ErrorFailedToConnectToDatabase=Error de connexió a la base de dades '%s'.
     ErrorDatabaseVersionTooLow=Versió de la base de dades (%s) demasiado antigua. massa antiga. Es requereix versió %s o superior.
     ErrorPHPVersionTooLow=Versió del PHP massa antiga. Es requereix versió %s o superior.
    -ErrorConnectedButDatabaseNotFound=La connexió al servidor és correcta però no es troba la base de dades '%s'
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=La base de dades '%s' ja existeix.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base de dades no existeix, torna enrera i activa l'opció "Crear base de dades"
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Si la base de dades ja existeix, torna enrera i desactiva l'opció "Crear base de dades".
    -WarningBrowserTooOld=El seu navegador és molt antic. Es recomana que actualitzeu a una versió recent de Firefox, Chrome o Opera.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=Versió PHP
     License=Llicència d'ús
     ConfigurationFile=Arxiu de configuració
    @@ -45,22 +45,23 @@ DolibarrDatabase=Base de dades Dolibarr
     DatabaseType=Tipus de la base de dades
     DriverType=Tipus del driver
     Server=Servidor
    -ServerAddressDescription=Nom o adreça IP del servidor de base de dades, generalment 'localhost' quan el servidor es troba en la mateixa màquina que el lloc web
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Port del servidor de la base de dades. Deixa-ho en blanc si ho desconeixes.
     DatabaseServer=Servidor de la base de dades
     DatabaseName=Nom de la base de dades
    -DatabasePrefix=Prefixe per a les taules
    -AdminLogin=Usuari de l'administrador de la base de dades Dolibarr.
    -PasswordAgain=Verificació de la contrasenya
    +DatabasePrefix=Prefix en les taules de base de dades
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Contrasenya de l'administrador de la base de dades Dolibarr.
     CreateDatabase=Crear la base de dades
    -CreateUser=Crea el propietari o concedeix-li permís en la base de dades
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Base de dades - Accés super usuari
    -CheckToCreateDatabase=Seleccioneu aquesta opció si la base de dades no existeix i s'ha de crear. En aquest cas, cal indicar usuari/contrasenya de superusuari, més endavant en aquesta pàgina.
    -CheckToCreateUser=Marca la casella de verificació si el propietari de la base de dades no existeix i s'ha de crear, o si existeix, però la base de dades no existeix i els permisos s'han de concedir. <br>En aquest cas, has de triar el seu nom d'usuari i contrasenya i també omplir el nom d'usuari i contrasenya del compte superusuari al final d'aquesta pàgina.  Si aquesta casella no està activada, el propietari de la base de dades i les seves contrasenyes han d'existir.
    -DatabaseRootLoginDescription=Usuari de la base que té els drets de creació de bases de dades o compte per a la base de dades, inútil si la base de dades i el seu usuari ja existeixen (com quan estan en un amfitrió).
    -KeepEmptyIfNoPassword=Deixa-ho en blanc si l'usuari no té contrasenya (evita-ho)
    -SaveConfigurationFile=Gravació del fitxer de configuració
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Connexió al servidor
     DatabaseCreation=Creació de la base de dades
     CreateDatabaseObjects=Creació dels objectes de la base de dades
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Creació de les claus i índexs de la taula %s
     OtherKeysCreation=Creació de les claus i índexs
     FunctionsCreation=Creació de funcions
     AdminAccountCreation=Creació del compte administrador
    -PleaseTypePassword=Indiqui una contrasenya, no s'accepten les contrasenyes buides!
    -PleaseTypeALogin=Indiqui un usuari!
    -PasswordsMismatch=Les contrasenyes no coincideixen, torni a intentar-ho!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Fi de la configuració
     SystemIsInstalled=La instal·lació s'ha finalitzat.
     SystemIsUpgraded=S'ha actualitzat Dolibarr correctament.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Ara ha de configurar Dolibarr segons les seves necessi
     AdminLoginCreatedSuccessfuly=El codi d'usuari administrador de Dolibar '<b>%s</b>' s'ha creat correctament.
     GoToDolibarr=Ves a Dolibarr
     GoToSetupArea=Ves a Dolibarr (àrea de configuració)
    -MigrationNotFinished=La versió de la base de dades encara no està completament a nivell, per la qual cosa haureu de reiniciar una migració.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Ves de nou a la pàgina d'actualització
     WithNoSlashAtTheEnd=Sense el signe "/" al final
    -DirectoryRecommendation=Es recomana posar aquesta carpeta fora de la carpeta de les pàgines web.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Ja existeix
     DolibarrAdminLogin=Login de l'usuari administrador de Dolibarr
    -AdminLoginAlreadyExists=El compte d'administrador Dolibarr '<b>%s</b>' ja existeix. Torna enrera si vols crear un altre.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=No s'ha pogut crear el compte d'administrador de Dolibarr.
    -WarningRemoveInstallDir=Atenció, per raons de seguretat, amb la finalitat de bloquejar un nou ús de les eines d'instal·lació/actualització, és aconsellable crear en el directori arrel de Dolibarr un arxiu anomenat <b>install.lock </b> en només lectura.
    -FunctionNotAvailableInThisPHP=No disponible en aquest PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=No està disponible en aquest PHP
     ChoosedMigrateScript=Elecció de l'script de migració
     DataMigration=Migració de la base de dades (dades)
     DatabaseMigration=Migració de la base de dades (estructura + algunes dades)
     ProcessMigrateScript=Execució del script
     ChooseYourSetupMode=Tria el teu mètode d'instal·lació i fes clic a "Començar"
     FreshInstall=Nova instal·lació
    -FreshInstallDesc=Utilitza aquest mètode si és la teva primera instal·lació. Si no és el cas, aquest mètode pot reparar una instal·lació anterior incompleta, però si vols actualitzar la teva versió anterior, tria el mètode "Actualització"
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Actualització
     UpgradeDesc=Utilitzeu aquest mètode després d'haver actualitzat els fitxers d'una instal·lació Dolibarr antiga pels d'una versió més recent. Aquesta elecció permet posar al dia la base de dades i les seves dades per a aquesta nova versió.
     Start=Començar
     InstallNotAllowed=Instal·lació no autoritzada per els permisos de l'arxiu <b>conf.php</b>
     YouMustCreateWithPermission=Ha de crear un fitxer %s i donar-li els drets d'escriptura al servidor web durant el procés d'instal·lació.
    -CorrectProblemAndReloadPage=Corregiu el problema i <a href="%s"> recarregi la pàgina </a> (Tecla F5).
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Ja migrada
     DatabaseVersion=Versió de la base de dades
     ServerVersion=Versió del servidor de la base de dades
     YouMustCreateItAndAllowServerToWrite=Cal crear aquest expedient i permetre al servidor web escriure en ell
     DBSortingCollation=Ordre de selecció utilitzat per la base de dades
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Ha vollgut crear la base de dades <b>%s</b>, però per a això Dolibarr ha de connectar amb el servidor <b>%s</b> via el superusuari <b>%s</b>.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Ha vollgut crear el login d'accés a la base de dades <b>%s</b>, però per a això Dolibarr ha de connectar amb el servidor <b>%s</b> via el superusuari <b>%s</b>.
    -BecauseConnectionFailedParametersMayBeWrong=La connexió falla, els paràmetres del servidor o el superusuari poden ser incorrectes.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Pagaments orfes detectats pel mètode %s
     RemoveItManuallyAndPressF5ToContinue=Esborreu manualment i premeu F5 per continuar.
     FieldRenamed=Camp renombrat
    -IfLoginDoesNotExistsCheckCreateUser=Si l'login encara no existeix, ha de seleccionar l'opció "Creació de l'usuari"
    -ErrorConnection=El servidor "<b>%s </b>", base de dades "<b>%s</b>", login "<b>%s</b>", o la contrasenya de la base de dades poden ser incorrectes o la versió de PHP molt vella en comparació amb la versió de la base de dades.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Opció recomanada per a instal·lar la versió <b>%s</b> sobre la seva actual versió <b>%s</b>
     InstallChoiceSuggested=<b>Opció suggerida per l'instal·lador</b>.
    -MigrateIsDoneStepByStep=La versió destí (% s) té una diferència de diverses versions, una vegada conclosa aquesta migració, l'instal tornarà a proposar la següent.
    -CheckThatDatabasenameIsCorrect=Comproveu que el nom de la base de dades "<b>%s</b>" és correcte.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Si el nom és correcte i la base de dades no existeix, heu de seleccionar l'opció "Crear la base de dades"
     OpenBaseDir=Paràmetre php openbasedir
    -YouAskToCreateDatabaseSoRootRequired=Ha marcat la casella "Crear la base de dades". Per això, l'usuari/contrasenya del superusuari (al final del formulari) són obligatoris.
    -YouAskToCreateDatabaseUserSoRootRequired=Ha marcat la casella "Crear l'usuari propietari" de la base de dades. Per això, l'usuari/contrasenya del superusuari (al final del formulari) són obligatoris.
    -NextStepMightLastALongTime=El següent pas pot trigar diversos minuts. Després d'haver validat, li agraïm esperi a la completa visualització de la pàgina següent per continuar.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Actualització de les dades de expedicions de comandes de clients
     MigrationShippingDelivery=Actualització de les dades de expedicions
     MigrationShippingDelivery2=Actualització de les dades expedicions 2
     MigrationFinished=Acabada l'actualització
    -LastStepDesc=<strong>Últim pas</strong>: Indiqueu aquí el compte i la contrasenya del primer usuari que fareu servir per connectar-se a l'aplicació. No perdi aquests identificadors, és el compte que permet administrar la resta.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activació del mòdul %s
     ShowEditTechnicalParameters=Premi aquí per veure/editar els paràmetres tècnics (mode expert)
    -WarningUpgrade=Atenció:\nVas fer una còpia de seguretat de la base de dades abans?\nAixò és altament recomanable: per exemple, degut a alguns problemes dels sistemes de base de dades (per exemple mysql versió 5.5.40/41/42/43), alguna dada o taules poden perdre's durant aquest procés, així doncs és molt recomanable tenir un bolcat de la teva base de dades abans de començar la migració.\n\nClica OK per a començar el procés de migració....
    -ErrorDatabaseVersionForbiddenForMigration=La versió de la seva base de dades és %s. Aquesta te un error crític i es poden perdre dades si es fa un canvi a l'estructura de la base de dades i per fer l'actualització necessita fer aquests canvis. Per aquesta raó, la migració no es permetrà fins que s'actualitzi la seva base de dades a una versió estable i/o superior (llista de versions afectades: %s)
    -KeepDefaultValuesWamp=Estàs utilitzant l'assistent d'instal·lació de DoliWamp amb els valors proposats més òptims. Canvia'ls només si estàs segur del que estàs fent.
    -KeepDefaultValuesDeb=Estàs utilitzant l'assistent d'instal·lació Dolibarr d'un paquet Linux (Ubuntu, Debian, Fedora...) amb els valors proposats més òptims. Només cal completar la contrasenya del propietari de la base de dades a crear. Canvia els altres paràmetres només si estàs segur del que estàs fent.
    -KeepDefaultValuesMamp=Estàs utilitzant l'assistent d'instal·lació de DoliMamp amb els valors proposats més òptims. Canvia'ls només si estàs segur del que estàs fent.
    -KeepDefaultValuesProxmox=Estàs utilitzant l'assistent d'instal·lació de Dolibarr des d'una màquina virtual Proxmox amb els valors proposats més òptims. Canvia'ls només si estàs segur del que estàs fent.
    -UpgradeExternalModule=Executa el procés d'actualització dedicat de mòduls externs
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Estableix com a mínim una opció com a paràmetre a l'URL. Per exemple: '... repair.php?standard=confirmed'
     NothingToDelete=Res per netejar / esborrar
     NothingToDo=No hi ha res a fer
    @@ -147,11 +148,11 @@ NothingToDo=No hi ha res a fer
     # upgrade
     MigrationFixData=Correcció de dades desnormalitzades
     MigrationOrder=Migració de dades de les comandes clients
    -MigrationSupplierOrder=Data migration for vendor's orders
    +MigrationSupplierOrder=Migració de dades per a comandes de proveïdors
     MigrationProposal=Migració de dades de pressupostos
     MigrationInvoice=Migració de dades de les factures a clients
     MigrationContract=Migració de dades dels contractes
    -MigrationSuccessfullUpdate=Actualització correcta
    +MigrationSuccessfullUpdate=Actualització finalitzada
     MigrationUpdateFailed=L'actualització ha fallat
     MigrationRelationshipTables=Migració de les taules de relació (%s)
     MigrationPaymentsUpdate=Actualització dels pagaments (vincle nn pagaments-factures)
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Actualització dels contractes sense detalls (gestió d
     MigrationContractsNumberToUpdate=%s contracte(s) a actualitzar
     MigrationContractsLineCreation=Creació linia contracte per contracte Ref. %s
     MigrationContractsNothingToUpdate=No hi ha més contractes (vinculats a un producte) sense línies de detalls que hagin de corregir.
    -MigrationContractsFieldDontExist=Els camps fk_facture no existeixen ja. No hi ha operació pendent.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Actualització de les dades de contractes no indicades
    -MigrationContractsEmptyDatesUpdateSuccess=S'ha fet correctament la correcció de la data buida de contracte
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No hi ha més properes dates de contractes.
     MigrationContractsEmptyCreationDatesNothingToUpdate=No hi ha més properes dates de creació.
     MigrationContractsInvalidDatesUpdate=Actualització dades contracte incorrectes (per contractes amb detall en servei)
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Actualitzar recepcions
     MigrationStockDetail=Actualitzar valor en stock dels productes
     MigrationMenusDetail=Actualització de la taula de menús dinàmics
     MigrationDeliveryAddress=Actualització de les adreces d'enviament en les notes de lliurament
    -MigrationProjectTaskActors=Migració de la taula llx_projet_task_actors
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Migració del camp fk_user_resp de llx_projet a llx_element_contact
     MigrationProjectTaskTime=Actualitza el temps dedicat en segons
     MigrationActioncommElement=Actualització de les dades de accions sobre elements
     MigrationPaymentMode=Actualització de les formes de pagament
     MigrationCategorieAssociation=Actualització de les categories
    -MigrationEvents=Migració d'esdeveniments per afegir propietari a la taula d'asignació
    -MigrationEventsContact=Migració d'esdeveniments per afegir contacte d'esdeveniments a la taula d'assignacions
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Actualitza el valor del camp entity de llx_societe_remise
     MigrationRemiseExceptEntity=Actualitza el valor del camp entity de llx_societe_remise_except
     MigrationUserRightsEntity=Actualitza el valor del camp de l'entitat llx_user_rights
     MigrationUserGroupRightsEntity=Actualitza el valor del camp de l'entitat llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Recarrega el mòdul %s
     MigrationResetBlockedLog=Restablir el mòdul BlockedLog per l'algoritme v7
    -ShowNotAvailableOptions=Mostra opcions no disponibles
    -HideNotAvailableOptions=Amaga opcions no disponibles
    -ErrorFoundDuringMigration=S'ha reportat un error durant el procés de migració, de manera que el proper pas no està disponible. Per ignorar els errors, pots fer <a href="%s">clic aqui</a>, però l'aplicació o algunes funcionalitats podrien no funcionar correctament fins que no es corregeixi.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Fes clic aquí per anar a la teva aplicació
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/ca_ES/interventions.lang b/htdocs/langs/ca_ES/interventions.lang
    index b1ea75c9aa7..9754e2dc548 100644
    --- a/htdocs/langs/ca_ES/interventions.lang
    +++ b/htdocs/langs/ca_ES/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Intervencions
     InterventionCard=Fitxa intervenció
     NewIntervention=Nova intervenció
     AddIntervention=Crea intervenció
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Llistat d'intervencions
     ActionsOnFicheInter=Esdeveniments sobre l'intervenció
     LastInterventions=Últimes %s intervencions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Utilitza la durada dels serveis en les intervenci
     UseDurationOnFichinter=Oculta el camp de durada dels registres d'intervenció
     UseDateWithoutHourOnFichinter=Oculta hores i minuts del camp de dates dels registres d'intervenció
     InterventionStatistics=Estadístiques de intervencions
    -NbOfinterventions=Nº de fitxes de intervenció
    -NumberOfInterventionsByMonth=Nº de fitxes de intervenció per mes (data de validació)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=La quantitat d'intervenció no s'inclou de manera predeterminada en els beneficis (en la majoria dels casos, els fulls de temps s'utilitzen per comptar el temps dedicat). Per incloure'ls, afegiu la opció  PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT amb el valor 1 a Configuració &rarr; Varis.
     ##### Exports #####
     InterId=Id. d'intervenció
    diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang
    index fef9a992d40..e9470b4824c 100644
    --- a/htdocs/langs/ca_ES/main.lang
    +++ b/htdocs/langs/ca_ES/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Error en l'enviament de l'e-mail (emissor =%s, destinatair
     ErrorFileNotUploaded=El fitxer no s'ha pogut transferir
     ErrorInternalErrorDetected=Error detectat
     ErrorWrongHostParameter=Paràmetre Servidor invàlid
    -ErrorYourCountryIsNotDefined=El teu país no està definit. Ves a Inici-Configuració-Edita i omple de nou el formulari
    -ErrorRecordIsUsedByChild=Impossible de suprimir aquest registre. Es sent utilitzat com a pare per almenys un registre fill.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Valor incorrecte
     ErrorWrongValueForParameterX=Valor incorrecte del paràmetre %s
     ErrorNoRequestInError=Cap petició en error
    -ErrorServiceUnavailableTryLater=Servei no disponible actualment. Torni a intentar més tard.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicat en un camp únic
    -ErrorSomeErrorWereFoundRollbackIsDone=S'han trobat alguns errors. Modificacions desfetes.
    -ErrorConfigParameterNotDefined=El paràmetre <b>%s</b> no està definit en el fitxer de configuració Dolibarr <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Impossible trobar l'usuari <b>%s</b> a la base de dades Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Error, cap tipus d'IVA definit per al país '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, cap tipus d'impost varis definit per al país '%s'.
     ErrorFailedToSaveFile=Error, el registre del fitxer ha fallat.
    -ErrorCannotAddThisParentWarehouse=Està intentant afegir un magatzem pare que ja és fill de l'actual
    -MaxNbOfRecordPerPage=Número màxim de registres per pàgina
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=No està autoritzat per fer-ho.
     SetDate=Indica la data
     SelectDate=Seleccioneu una data
    @@ -78,10 +78,10 @@ FileRenamed=L'arxiu s'ha renombrat correctament
     FileGenerated=L'arxiu ha estat generat correctament
     FileSaved=El fitxer s'ha desat correctament
     FileUploaded=L'arxiu s'ha carregat correctament
    -FileTransferComplete=El(s) fitxer(s) s'han carregat correctament
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=El(s) fitxer(s) s'han eliminat correctament
     FileWasNotUploaded=Un arxiu ha estat seleccionat per adjuntar, però encara no ha estat pujat. Feu clic a "Adjuntar aquest arxiu" per a això.
    -NbOfEntries=Nº d'entrades
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Llegeix l'ajuda online (cal tenir accés a internet)
     GoToHelpPage=Consultar l'ajuda
     RecordSaved=Registre guardat
    @@ -94,7 +94,7 @@ Undefined=No definit
     PasswordForgotten=Heu oblidat la contrasenya?
     NoAccount=Cap compte?
     SeeAbove=Esmentar anteriorment
    -HomeArea=Àrea inici
    +HomeArea=Inici
     LastConnexion=Última connexió
     PreviousConnexion=Connexió anterior
     PreviousValue=Valor anterior
    @@ -142,6 +142,7 @@ Closed=Tancat
     Closed2=Tancat
     NotClosed=No tancat
     Enabled=Activat
    +Enable=Activar
     Deprecated=Obsolet
     Disable=Desactivar
     Disabled=Desactivat
    @@ -153,7 +154,7 @@ Update=Modificar
     Close=Tancar
     CloseBox=Elimina el panell de la taula de control
     Confirm=Confirmar
    -ConfirmSendCardByMail=Realment voleu enviar el contingut d'aquesta fitxa per correu a la direcció <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Elimina
     Remove=Retirar
     Resiliate=Dona de baixa
    @@ -327,7 +328,7 @@ Copy=Copiar
     Paste=Pegar
     Default=Defecte
     DefaultValue=Valor per defecte
    -DefaultValues=Valors per defecte
    +DefaultValues=Default values/filters/sorting
     Price=Preu
     PriceCurrency=Preu (moneda)
     UnitPrice=Preu unitari
    @@ -347,7 +348,7 @@ AmountTTCShort=Import
     AmountHT=Base imposable
     AmountTTC=Import total
     AmountVAT=Import IVA
    -MulticurrencyAlreadyPaid=Ja pagat, moneda original
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Pendent de pagar, moneda original
     MulticurrencyPaymentAmount=Import de pagament, moneda original
     MulticurrencyAmountHT=Base imposable, moneda original
    @@ -428,7 +429,7 @@ ActionNotApplicable=No aplicable
     ActionRunningNotStarted=No començat
     ActionRunningShort=En progrés
     ActionDoneShort=Acabat
    -ActionUncomplete=Incomplet
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Darrers %s esdeveniments vinculats
     CompanyFoundation=Empresa/Organització
     Accountant=Comptador
    @@ -436,6 +437,7 @@ ContactsForCompany=Contactes d'aquest tercer
     ContactsAddressesForCompany=Contactes/adreces d'aquest tercer
     AddressesForCompany=Adreces d'aquest tercer
     ActionsOnCompany=Esdeveniments respecte aquest tercer
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Esdeveniments d'aquest soci
     ActionsOnProduct=Esdeveniments sobre aquest producte
     NActionsLate=%s en retard
    @@ -454,7 +456,7 @@ Duration=Duració
     TotalDuration=Duració total
     Summary=Resum
     DolibarrStateBoard=Estadístiques de base de dades
    -DolibarrWorkBoard=Taula de control de indicadors oberts
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=Sense elements oberts per processar
     Available=Disponible
     NotYetAvailable=Encara no disponible
    @@ -468,7 +470,7 @@ and=i
     or=o
     Other=Altres
     Others=Altres
    -OtherInformations=Altres informacions
    +OtherInformations=Altra informació
     Quantity=Quantitat
     Qty=Qt.
     ChangedBy=Modificat per
    @@ -506,8 +508,8 @@ None=Res
     NoneF=Ninguna
     NoneOrSeveral=Cap o diversos
     Late=Retard
    -LateDesc=El retard que defineix si un registre arriba tard o no depèn de la configuració. Pregunti al seu administrador per canviar de retard des del menú Inici - Configuració - Alertes.
    -NoItemLate=No late item
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
    +NoItemLate=No hi ha cap element tardà
     Photo=Foto
     Photos=Fotos
     AddPhoto=Afegir foto
    @@ -530,18 +532,6 @@ September=setembre
     October=octubre
     November=novembre
     December=desembre
    -JanuaryMin=Gen
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Abr
    -MayMin=Mai
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Ago
    -SeptemberMin=Set
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Des
     Month01=gener
     Month02=febrer
     Month03=març
    @@ -646,6 +636,8 @@ SendMail=Envia e-mail
     EMail=Correu electrònic
     NoEMail=Sense correu electrònic
     Email=Correu
    +AlreadyRead=Alreay read
    +NotRead=No llegit
     NoMobilePhone=Sense mòbil
     Owner=Propietari
     FollowingConstantsWillBeSubstituted=Les següents constants seran substituïdes pel seu valor corresponent.
    @@ -677,7 +669,7 @@ NeverReceived=Mai rebut
     Canceled=Anul·lada
     YouCanChangeValuesForThisListFromDictionarySetup=Pots canviar els valors d'aquesta llista des del menú Configuració - Diccionaris
     YouCanChangeValuesForThisListFrom=Pots canviar els valors d'aquesta llista des del menú %s
    -YouCanSetDefaultValueInModuleSetup=Pots indicar el valor per defecte utilitzat en la creació de nous registres en el mòdul de configuració
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Documents
     Documents2=Documents
    @@ -716,15 +708,15 @@ Merge=Fussió
     DocumentModelStandardPDF=Plantilla PDF estàndard
     PrintContentArea=Mostrar pàgina d'impressió de la zona central
     MenuManager=Gestor de menú
    -WarningYouAreInMaintenanceMode=Atenció, està en mode manteniment, així que només el login <b>%s</b> està autoritzat per utilitzar l'aplicació en aquest moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Error del sistema
     CoreErrorMessage=Ho sentim, hi ha un error. Contacti amb el seu administrador del sistema per a comprovar els "logs" o des-habilita $dolibarr_main_prod=1 per a obtenir més informació.
     CreditCard=Targeta de crèdit
     ValidatePayment=Validar aquest pagament
     CreditOrDebitCard=Tarja de crèdit o dèbit
     FieldsWithAreMandatory=Els camps marcats per un <b>%s</b> són obligatoris
    -FieldsWithIsForPublic=Els camps marcats per <b>%s</b> es mostren en la llista pública de socis. Si no voleu veure'ls, desactiveu la casella "públic".
    -AccordingToGeoIPDatabase=(Obtingut per conversió GeoIP)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Línia
     NotSupported=No suportat
     RequiredField=Camp obligatori
    @@ -732,6 +724,8 @@ Result=Resultat
     ToTest=provar
     ValidateBefore=Per poder utilitzar aquesta funció ha de validar la fitxa
     Visibility=Visibilitat
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privat
     Hidden=Memòria cau
     Resources=Recursos
    @@ -750,6 +744,7 @@ LinkTo=Enllaça a
     LinkToProposal=Enllaça a pressupost
     LinkToOrder=Enllaça a comanda
     LinkToInvoice=Enllaça a factura
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Enllaça a comanda de proveïdor
     LinkToSupplierProposal=Enllaça a pressupost de proveïdor
     LinkToSupplierInvoice=Enllaça a factura de proveïdor
    @@ -758,6 +753,7 @@ LinkToIntervention=Enllaça a intervenció
     CreateDraft=Crea esborrany
     SetToDraft=Tornar a redactar
     ClickToEdit=Clic per a editar
    +ClickToRefresh=Click to refresh
     EditWithEditor=Editar amb CKEditor
     EditWithTextEditor=Editar amb l'editor de text
     EditHTMLSource=Editar el codi HTML
    @@ -779,7 +775,7 @@ Test=Prova
     Element=Element
     NoPhotoYet=No hi ha fotografia disponible
     Dashboard=Quadre de comandament
    -MyDashboard=El meu quadre de comandament
    +MyDashboard=El meu tauler
     Deductible=Deduïble
     from=de
     toward=cap a
    @@ -802,7 +798,7 @@ PrintFile=%s arxius a imprimir
     ShowTransaction=Mostra la transacció en el compte bancari
     ShowIntervention=Mostrar intervenció
     ShowContract=Mostrar contracte
    -GoIntoSetupToChangeLogo=Ves a Inici - Configuració - Empresa per canviar el logo o ves a Inici - Configuració - Entorn per ocultar-lo.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Denegar
     Denied=Denegad
     ListOf=Llista de %s
    @@ -822,8 +818,8 @@ TooManyRecordForMassAction=S'ha seleccionat massa registres per a l'acció massi
     NoRecordSelected=No s'han seleccionat registres
     MassFilesArea=Àrea de fitxers generats per accions massives
     ShowTempMassFilesArea=Mostra l'àrea de fitxers generats per accions massives
    -ConfirmMassDeletion=Confirmació d'esborrament massiu
    -ConfirmMassDeletionQuestion=Esteu segur que voleu suprimir el registre seleccionat %s?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Objectes relacionats
     ClassifyBilled=Classificar facturat
     ClassifyUnbilled=Classificar no facturat
    @@ -841,7 +837,7 @@ Calendar=Calendari
     GroupBy=Agrupat per...
     ViewFlatList=Veure llista plana
     RemoveString=Eliminar cadena '%s'
    -SomeTranslationAreUncomplete=Alguns idiomes poden estar traduïts parcialment o poden tenir errors. Si detectes algun, pots corregir els fitxers d'idiomes registrant-te a <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Enllaç de descàrrega directa (públic/extern)
     DirectDownloadInternalLink=Enllaç directe de descàrrega (necessita estar registrat i tenir permisos)
     Download=Descarrega
    @@ -852,25 +848,34 @@ ModuleBuilder=Creador de mòdul
     SetMultiCurrencyCode=Estableix moneda
     BulkActions=Accions massives
     ClickToShowHelp=Fes clic per mostrar l'ajuda desplegable
    -WebSite=Lloc web
    -WebSites=Llocs web
    -WebSiteAccounts=Comptes de lloc web
    +WebSite=Website
    +WebSites=Pàgines web
    +WebSiteAccounts=Website accounts
     ExpenseReport=Informe de despeses
     ExpenseReports=Informes de despeses
     HR=RRHH
     HRAndBank=RRHH i banc
     AutomaticallyCalculated=Calculat automàticament
     TitleSetToDraft=Torna a esborrany
    -ConfirmSetToDraft=Estàs segur que vols tornar a l'estat esborrany?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=ID d'importació
     Events=Esdeveniments
    -EMailTemplates=Models d'emails
    -FileNotShared=Fitxer no compartit amb el públic extern
    +EMailTemplates=Plantilles de correu electrònic
    +FileNotShared=File not shared to external public
     Project=Projecte
     Projects=Projectes
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permisos
     LineNb=Núm. línia
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Dilluns
     Tuesday=Dimarts
    @@ -927,7 +932,7 @@ SearchIntoInterventions=Intervencions
     SearchIntoContracts=Contractes
     SearchIntoCustomerShipments=Enviaments de client
     SearchIntoExpenseReports=Informes de despeses
    -SearchIntoLeaves=Dies lliures
    +SearchIntoLeaves=Leave
     CommentLink=Comentaris
     NbComments=Nombre de comentaris
     CommentPage=Espai de comentaris
    @@ -935,7 +940,7 @@ CommentAdded=Comentari afegit
     CommentDeleted=Comentari suprimit
     Everybody=Projecte compartit
     PayedBy=Pagat per
    -PayedTo=Pagat a
    +PayedTo=Paid to
     Monthly=Mensual
     Quarterly=Trimestral
     Annual=Anual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local i remota
     KeyboardShortcut=Tecla de drecera
     AssignedTo=Assignada a
     Deletedraft=Suprimeix l'esborrany
    -ConfirmMassDraftDeletion=Confirmació d'eliminació massiva d'esborranys
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=Fitxer compartit a través d'un enllaç
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=Actualment esteu en el mode %s "sandbox"
    +Inventory=Inventari
    diff --git a/htdocs/langs/ca_ES/other.lang b/htdocs/langs/ca_ES/other.lang
    index 28d596c64f0..2a9b21a0672 100644
    --- a/htdocs/langs/ca_ES/other.lang
    +++ b/htdocs/langs/ca_ES/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Codi de seguretat
     NumberingShort=N°
     Tools=Utilitats
     TMenuTools=Utilitats
    -ToolsDesc=Aquí es recullen totes les eines diverses que no s'inclouen en altres entrades del menú. <br> <br>Podeu accedir a totes les eines des del menú de l'esquerra.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Aniversari
     BirthdayDate=Data d'aniversari
     DateToBirth=Data de naixement
    @@ -23,7 +23,7 @@ MessageForm=Missatge al formulari de pagament en línia
     MessageOK=Missatge a la pàgina de retorn de pagament confirmat
     MessageKO=Missatge a la pàgina de retorn de pagament cancel·lat
     ContentOfDirectoryIsNotEmpty=El contingut d'aquest directori no és buit.
    -DeleteAlsoContentRecursively=Marqueu de manera recursiva per eliminar tot el contingut
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Any de la data de factura
     PreviousYearOfInvoice=Any anterior de la data de la factura
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Any següent de la data de la factura
     DateNextInvoiceBeforeGen=Data de la propera factura (abans de la generació)
     DateNextInvoiceAfterGen=Data de la propera factura (després de la generació)
     
    -Notify_FICHINTER_ADD_CONTACT=Contacte afegit a la intervenció
    -Notify_FICHINTER_VALIDATE=Validació fitxa intervenció
    -Notify_FICHINTER_SENTBYMAIL=Enviament fitxa intervenció per e-mail
     Notify_ORDER_VALIDATE=Validació comanda client
     Notify_ORDER_SENTBYMAIL=Enviament comanda de client per e-mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Enviament comanda a proveïdor per e-mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Comanda a proveïdor registrada
     Notify_ORDER_SUPPLIER_APPROVE=Aprovació comanda a proveïdor
     Notify_ORDER_SUPPLIER_REFUSE=Comanda a proveïdor rebutjada
     Notify_PROPAL_VALIDATE=Validació pressupost client
    -Notify_PROPAL_CLOSE_SIGNED=Pressupost tancat com a firmat
    -Notify_PROPAL_CLOSE_REFUSED=Pressupost tancat com a rebutjat
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Enviament pressupost per e-mail
     Notify_WITHDRAW_TRANSMIT=Transmissió domiciliació
     Notify_WITHDRAW_CREDIT=Abonament domiciliació
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Tercer creat
     Notify_COMPANY_SENTBYMAIL=E-mails enviats des de la fitxa del tercer
     Notify_BILL_VALIDATE=Validació factura
     Notify_BILL_UNVALIDATE=Devalidació factura a client
    -Notify_BILL_PAYED=Cobrament factura a client
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Cancel·lació factura a client
     Notify_BILL_SENTBYMAIL=Enviament factura a client per e-mail
     Notify_BILL_SUPPLIER_VALIDATE=Validació factura de proveïdor
    -Notify_BILL_SUPPLIER_PAYED=Pagament factura de proveïdor
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Enviament factura de proveïdor per e-mail
     Notify_BILL_SUPPLIER_CANCELED=Factura del proveïdor cancel·lada
     Notify_CONTRACT_VALIDATE=Validació contracte
     Notify_FICHEINTER_VALIDATE=Validació intervenció
    +Notify_FICHINTER_ADD_CONTACT=Contacte afegit a la intervenció
    +Notify_FICHINTER_SENTBYMAIL=Enviament fitxa intervenció per e-mail
     Notify_SHIPPING_VALIDATE=Validació enviament
     Notify_SHIPPING_SENTBYMAIL=Enviament expedició per e-mail
     Notify_MEMBER_VALIDATE=Soci validat
    @@ -71,27 +70,33 @@ Notify_PROJECT_CREATE=Creació d'un projecte
     Notify_TASK_CREATE=Tasca creada
     Notify_TASK_MODIFY=Tasca modificada
     Notify_TASK_DELETE=Tasca eliminada
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Vegi la configuració del mòdul %s
     NbOfAttachedFiles=Número arxius/documents adjunts
     TotalSizeOfAttachedFiles=Mida total dels arxius/documents adjunts
     MaxSize=Tamany màxim
     AttachANewFile=Adjuntar nou arxiu/document
     LinkedObject=Objecte adjuntat
    -NbOfActiveNotifications=Nombre de notificacions (nº de destinataris)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nAquest és un correu electrònic de prova enviat a __EMAIL__.\nLes dues línies estan separades per un salt de línia.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nAquest és un correu electrònic de <b>prova</b> (la paraula prova ha d'estar en negreta). <br> Les dues línies es separen amb un salt de línia. <br> <br> __USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nTrobareu aquí la sol·licitud de cotització __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nTrobareu aquí la comanda __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nTrobareu aquí la nostra comanda __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nTrobareu aquí la factura __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nTrobareu aquí l'enviament __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nTrobareu aquí la intervenció __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
    +PredefinedMailContentLink=Podeu fer clic a l'enllaç següent per fer el pagament si encara no està fet.\n\n%s\n\n
     DemoDesc=Dolibarr és un ERP/CRM per a la gestió de negocis (professionals o associacions), compost de mòduls funcionals independents i opcionals. Una demostració que incloga tots aquests mòduls no té sentit perquè no utilitzarà tots els mòduls al mateix temps. Per això, hi han disponibles diferents tipus de perfils de demostració.
     ChooseYourDemoProfil=Selecciona el perfil de demo que cobreixi millor les teves necessitats...
     ChooseYourDemoProfilMore=o construeix el teu perfil<br>(selecció de mòduls manual)
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Instala o habilita la llibreria GD en la teva instal·lació
     ProfIdShortDesc=<b>Prof Id %s </b> és una informació que depèn del país del tercer. <br>Per exemple, per al país <b>%s</b>, és el codi <b>%s</b>.
     DolibarrDemo=Demo de Dolibarr ERP/CRM
     StatsByNumberOfUnits=Estadístiques de suma quantitat de productes/serveis
    -StatsByNumberOfEntities=Estadístiques en nombre d'entitats referents (nº de factura, o comanda ...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Número de pressupostos
     NumberOfCustomerOrders=Número de comandes de client
     NumberOfCustomerInvoices=Número de factures de client
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Número d'unitats en factures de client
     NumberOfUnitsSupplierProposals=Número d'unitats en pressupostos de proveïdor
     NumberOfUnitsSupplierOrders=Número d'unitats en comandes de proveïdor
     NumberOfUnitsSupplierInvoices=Número d'unitats en factures de proveïdor
    -EMailTextInterventionAddedContact=La nova intervenció %s t'ha sigut assignada.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Fitxa intervenció %s validada
     EMailTextInvoiceValidated=Factura %s validada
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=El pressupost %s que el concerneix ha estat validat.
     EMailTextProposalClosedSigned=La proposta %s s'ha tancat signada.
     EMailTextOrderValidated=La comanda %s que el concerneix ha estat validada.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Comanda %s aprovada per %s
     EMailTextOrderRefused=La comanda %s s'ha rebutjat
     EMailTextOrderRefusedBy=La comanda %s s'ha rebutjat per %s
     EMailTextExpeditionValidated=L'enviament %s ha estat validat.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Lot d'importació (import key)
     DolibarrNotification=Notificació automàtica
     ResizeDesc=Introduïu l'ample <b>O</b> la nova alçada. La relació es conserva en canviar la mida...
    @@ -204,7 +214,7 @@ NewLength=Nou ample
     NewHeight=Nova alçada
     NewSizeAfterCropping=Noves dimensions després de retallar
     DefineNewAreaToPick=Indiqueu la zona d'imatge a conservar (Clic sobre la imatge i arrossegueu fins a la cantonada oposada)
    -CurrentInformationOnImage=Aquesta pàgina us permet canviar la mida o quadrar la imatge. Aquí hi ha informació sobre la imatge que s'està editant
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Editor d'imatge
     YouReceiveMailBecauseOfNotification=Vostè està rebent aquest missatge perquè el seu correu electrònica està subscrit a algunes notificacions automàtiques per informar sobre esdeveniments especials del programa %s de %s.
     YouReceiveMailBecauseOfNotification2=L'esdeveniment en qüestió és el següent:
    @@ -219,7 +229,7 @@ FileIsTooBig=L'arxiu és massa gran
     PleaseBePatient=Preguem esperi uns instants...
     NewPassword=Nova contrasenya
     ResetPassword=Restablir la contrasenya
    -RequestToResetPasswordReceived=A request to change your password has been received.
    +RequestToResetPasswordReceived=S'ha rebut una sol·licitud per canviar la teva contrasenya.
     NewKeyIs=Aquesta és la nova contrasenya per iniciar sessió
     NewKeyWillBe=La seva nova contrasenya per iniciar sessió en el software serà
     ClickHereToGoTo=Clica aquí per anar a %s
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=La teva contrasenya ha de tenir almenys <stron
     YourPasswordHasBeenReset=La teva contrasenya s'ha restablert correctament
     ApplicantIpAddress=Adreça IP del sol·licitant
     SMSSentTo=SMS enviat a %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Àrea d'exportacions
    @@ -248,5 +262,7 @@ WebsiteSetup=Configuració del mòdul de pàgina web
     WEBSITE_PAGEURL=URL de pàgina
     WEBSITE_TITLE=Títol
     WEBSITE_DESCRIPTION=Descripció
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Paraules clau
     LinesToImport=Línies per importar
    diff --git a/htdocs/langs/ca_ES/paybox.lang b/htdocs/langs/ca_ES/paybox.lang
    index 8eed83c2fd4..18653181e2c 100644
    --- a/htdocs/langs/ca_ES/paybox.lang
    +++ b/htdocs/langs/ca_ES/paybox.lang
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL que ofereix una interfície de cobrame
     ToOfferALinkForOnlinePaymentOnContractLine=URL que ofereix una interfície de pagament en línia %s basada en l'import d'una línia de contracte
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL que ofereix una interfície de pagament en línia %s basada en un impport llíure
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL que ofereix una interfície de pagament en línia %s per una quota de soci
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=També pot afegir el paràmetre url <b>&tag=<i>value</i></b> per a qualsevol d'aquestes adreces (obligatori només per al pagament lliure) per veure el seu propi codi de comentari de pagament.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Configureu la vostra url Paybox <b>%s</b> per tal que el pagament es creu automàticament al validar.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Aquesta pàgina confirma que el pagament s'ha registrat correctament. Gràcies.
    -YourPaymentHasNotBeenRecorded=El pagament no ha estat registrat i la transacció ha estat anul·lada. Gràcies.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Paràmetres del compte
     UsageParameter=Paràmetres d'ús
     InformationToFindParameters=Informació per trobar la seva configuració de compte %s
    diff --git a/htdocs/langs/ca_ES/products.lang b/htdocs/langs/ca_ES/products.lang
    index 5b14fd39672..85ecc84693f 100644
    --- a/htdocs/langs/ca_ES/products.lang
    +++ b/htdocs/langs/ca_ES/products.lang
    @@ -17,12 +17,12 @@ Reference=Referència
     NewProduct=Nou producte
     NewService=Nou servei
     ProductVatMassChange=Canvi d'IVA massiu
    -ProductVatMassChangeDesc=Pot utilitzar aquesta pàgina per modificar la tassa d'IVA definida en els productes o serveis d'un valor a un altre. Atenció, ja aquest canvi es realitzara en tota la base de dades.
    +ProductVatMassChangeDesc=Aquesta pàgina es pot utilitzar per modificar un tipus d'IVA definit en productes o serveis d'un valor a un altre. Avís, aquest canvi és global / fet a tota la base de dades.
     MassBarcodeInit=Inicialització massiu de codis de barres
     MassBarcodeInitDesc=Pot utilitzar aquesta pàgina per inicialitzar el codi de barres en els objectes que no tenen un codi de barres definit. Comprovi abans que el mòdul de codis de barres estar ben configurat
     ProductAccountancyBuyCode=Codi comptable (compra)
     ProductAccountancySellCode=Codi comptable (venda)
    -ProductAccountancySellIntraCode=Codi comptable (venda intracomunitària)
    +ProductAccountancySellIntraCode=Codi de comptabilitat (venda intracomunitària)
     ProductAccountancySellExportCode=Codi comptable (exportació de venda)
     ProductOrService=Producte o servei
     ProductsAndServices=Productes i serveis
    @@ -97,8 +97,8 @@ NoteNotVisibleOnBill=Nota (no visible en les factures, pressupostos, etc.)
     ServiceLimitedDuration=Si el servei és de durada limitada:
     MultiPricesAbility=Diversos nivells de preus per producte/servei (cada client està en un nivell)
     MultiPricesNumPrices=Nº de preus
    -AssociatedProductsAbility=Activa la característica per gestionar productes virtuals
    -AssociatedProducts=Productes compostos
    +AssociatedProductsAbility=Activa els productes virtuals (kits)
    +AssociatedProducts=Productes virtuals
     AssociatedProductsNumber=Nº de productes que composen aquest producte
     ParentProductsNumber=Nº de productes que aquest compon
     ParentProducts=Productes pare
    @@ -115,7 +115,7 @@ ErrorAssociationIsFatherOfThis=Un dels productes seleccionats és pare del produ
     DeleteProduct=Eliminar un producte/servei
     ConfirmDeleteProduct=Esteu segur de voler eliminar aquest producte/servei?
     ProductDeleted=El producte/servei "%s" s'ha eliminat de la base de dades.
    -ExportDataset_produit_1=Productes i serveis
    +ExportDataset_produit_1=Productes
     ExportDataset_service_1=Serveis
     ImportDataset_produit_1=Productes
     ImportDataset_service_1=Serveis
    @@ -134,7 +134,7 @@ PredefinedServicesToSell=Serveis predefinits per vendre
     PredefinedProductsAndServicesToSell=Productes/serveis predefinits per vendre
     PredefinedProductsToPurchase=Producte predefinit per comprar
     PredefinedServicesToPurchase=Serveis predefinits per comprar
    -PredefinedProductsAndServicesToPurchase=Productes/serveis predefinits per comprar
    +PredefinedProductsAndServicesToPurchase=Productes / serveis predefinits per comprar
     NotPredefinedProducts=Sense productes/serveis predefinits
     GenerateThumb=Generar l'etiqueta
     ServiceNb=Servei nº %s
    @@ -145,7 +145,7 @@ Finished=Producte fabricat
     RowMaterial=Matèria prima
     CloneProduct=Clonar producte/servei
     ConfirmCloneProduct=Estàs segur que vols clonar el producte o servei <b>%s</b>?
    -CloneContentProduct=Clonar només la informació general del producte/servei
    +CloneContentProduct=Clona tota la informació principal del producte/servei
     ClonePricesProduct=Clonar preus
     CloneCompositionProduct=Clonar productes/serveis compostos
     CloneCombinationsProduct=Clonar variants de producte
    @@ -156,7 +156,7 @@ BuyingPrices=Preus de compra
     CustomerPrices=Preus de client
     SuppliersPrices=Preus de proveïdor
     SuppliersPricesOfProductsOrServices=Preus de proveïdors (productes o serveis)
    -CustomCode=Customs / Commodity / HS code
    +CustomCode=Duana / mercaderia / codi HS
     CountryOrigin=País d'origen
     Nature=Caràcter
     ShortLabel=Etiqueta curta
    @@ -202,7 +202,7 @@ PriceByQuantity=Preus diferents per quantitat
     DisablePriceByQty=Desactivar els preus per quantitat
     PriceByQuantityRange=Rang de quantitats
     MultipriceRules=Regles de nivell de preu
    -UseMultipriceRules=Utilitza les regles de preu per nivell (definit en la configuració del mòdul de productes) per autocalcular preus dels altres nivells en funció del primer nivell
    +UseMultipriceRules=Utilitzeu les regles del segment de preus (definides a la configuració del mòdul de producte) per calcular automàticament els preus de tots els altres segments segons el primer segment
     PercentVariationOver=%% variació sobre %s
     PercentDiscountOver=%% descompte sobre %s
     KeepEmptyForAutoCalculation=Mantingueu-lo buit per obtenir-ho calculat automàticament pel pes o el volum dels productes
    @@ -252,7 +252,7 @@ DefaultPrice=Preu per defecte
     ComposedProductIncDecStock=Incrementar/Disminueix estoc en canviar el seu pare
     ComposedProduct=Sub-producte
     MinSupplierPrice=Preu mínim de compra
    -MinCustomerPrice=Minimum selling price
    +MinCustomerPrice=Preu mínim de venda
     DynamicPriceConfiguration=Configuració de preu dinàmic
     DynamicPriceDesc=A la fitxa de producte, amb aquest mòdul habilitat, haureu de poder establir funcions matemàtiques per calcular els preus dels clients o dels proveïdors. Aquesta funció pot utilitzar tots els operadors matemàtics, algunes constants i variables. Podeu definir aquí les variables que voleu utilitzar i si la variable necessita una actualització automàtica, l'URL externa que s'utilitzarà per demanar a Dolibarr que actualitzi automàticament el valor.
     AddVariable=Afegeix variable
    @@ -293,7 +293,8 @@ ProductSheet=Fulla de producte
     ServiceSheet=Fulla de servei
     PossibleValues=Valors possibles
     GoOnMenuToCreateVairants=Anar al menu %s - %s per preparar variants de l'atribut (com colors, mides, etc...)
    -
    +UseProductFournDesc=Utilitzeu descripcions de proveïdors de productes en documents proveïdors
    +ProductSupplierDescription=Descripció del proveïdor del producte
     #Attributes
     VariantAttributes=Atributs de variants
     ProductAttributes=Atributs de variants per a productes
    @@ -325,10 +326,12 @@ DoNotRemovePreviousCombinations=No borrar variants prèvies
     UsePercentageVariations=Utilitzar variants percentuals
     PercentageVariation=Variant percentual
     ErrorDeletingGeneratedProducts=S'ha produït un error al intentar eliminar les variants existents
    -NbOfDifferentValues=Nº de valors diferents
    +NbOfDifferentValues=Nombre de valors diferents
     NbProducts=Nº de productes
     ParentProduct=Producte pare
     HideChildProducts=Oculta productes variants
    +ShowChildProducts=Mostra variants del producte
    +NoEditVariants=Aneu a la targeta de producte principal i modifiqueu les variacions d'impacte de preus a la pestanya de variants
     ConfirmCloneProductCombinations=Vols copiar totes les variants del producte a l'altre producte pare amb la referència donada?
     CloneDestinationReference=Referència del producte destí
     ErrorCopyProductCombinations=S'ha produït un error al copiar les variants de producte
    diff --git a/htdocs/langs/ca_ES/projects.lang b/htdocs/langs/ca_ES/projects.lang
    index 539a14716c4..be3067cf70f 100644
    --- a/htdocs/langs/ca_ES/projects.lang
    +++ b/htdocs/langs/ca_ES/projects.lang
    @@ -33,8 +33,8 @@ ConfirmDeleteAProject=Vols eliminar aquest projecte?
     ConfirmDeleteATask=Vols eliminar aquesta tasca?
     OpenedProjects=Projectes oberts
     OpenedTasks=Tasques obertes
    -OpportunitiesStatusForOpenedProjects=Import d'oportunitats de projectes oberts per estat
    -OpportunitiesStatusForProjects=Import d'oportunitats de projectes per estat
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Veure projecte
     ShowTask=Veure tasca
     SetProject=Indica el projecte
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Ves al llistat de temps consumit
     GoToListOfTasks=Ves al llistat de tasques
     GoToGanttView=Vés a la vista de Gantt
     GanttView=Vista de Gantt
    -ListProposalsAssociatedProject=Llistat de pressupostos associats al projecte
    -ListOrdersAssociatedProject=Llista de comandes de client associades al projecte
    -ListInvoicesAssociatedProject=Llista de factures de client associades al projecte
    -ListPredefinedInvoicesAssociatedProject=Llista de plantilles de factures de client associat amb el projecte
    -ListSupplierOrdersAssociatedProject=Llista de comandes a proveïdors associades al projecte
    -ListSupplierInvoicesAssociatedProject=Llista de factures a proveïdors associades al projecte
    -ListContractAssociatedProject=Llistatde contractes associats al projecte
    -ListShippingAssociatedProject=Llista d'expedicions associades al projecte
    -ListFichinterAssociatedProject=Llistat d'intervencions associades al projecte
    -ListExpenseReportsAssociatedProject=Llistat d'informes de despeses associades al projecte
    -ListDonationsAssociatedProject=Llistat de donacions associades al projecte
    -ListVariousPaymentsAssociatedProject=Llista de pagaments extres associats al projecte
    -ListActionsAssociatedProject=Llista d'esdeveniments associats al projecte
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=Llistat del temps consumit en tasques d'aquest projecte
     ListTaskTimeForTask=Llista de temps consumit a la tasca
     ActivityOnProjectToday=Activitat en el projecte avui
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Enllaçat a una altra empresa
     TaskIsNotAssignedToUser=Tasca no assignada a l'usuari. Utilitza el botó '<strong>%s</strong>' per assignar una tasca ara.
     ErrorTimeSpentIsEmpty=El temps dedicat està buit
     ThisWillAlsoRemoveTasks=Aquesta operació també destruirà les tasques del projecte (<b>%s</b> tasques en aquest moment) i tots els seus temps dedicats.
    -IfNeedToUseOhterObjectKeepEmpty=Si els elements (factura, comanda, ...) pertanyen a un tercer que no és el seleccionat, havent aquests estar lligats al projecte a crear, deixeu buit per permetre el projecte a multi-tercers.
    +IfNeedToUseOtherObjectKeepEmpty=Si els elements (factura, comanda, ...) pertanyen a un tercer que no és el seleccionat, havent aquests estar lligats al projecte a crear, deixeu buit per permetre el projecte a multi-tercers.
     CloneProject=Clonar el projecte
     CloneTasks=Clonar les tasques
     CloneContacts=Clonar els contactes
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Projecte %s modificat
     TaskCreatedInDolibarr=La tasca %s a sigut creada
     TaskModifiedInDolibarr=La tasca %s a sigut modificada
     TaskDeletedInDolibarr=La tasca %s a sigut eliminada
    -OpportunityStatus=Estat d'oportunitats
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Estat d'oportunitat
    -OpportunityProbability=Probabilitat d'oportunitat
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Probab. d'op.
    -OpportunityAmount=Import d'oportunitats
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Import d'oportunitat
     OpportunityAmountAverageShort=Import d'oportunitat mitjà
     OpportunityAmountWeigthedShort=Import d'oportunitat ponderat
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Participant
     SelectElement=Seleccioni element
     AddElement=Vincular a element
     # Documents models
    -DocumentModelBeluga=Plantilla de projecte per resum d'objectes vinculats
    -DocumentModelBaleine=Plantilla d'informe de projectes per tasques
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Càrrega de treball prevista
     PlannedWorkloadShort=Càrrega de treball
     ProjectReferers=Registres relacionats
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projectes amb aquest usuari com a contacte
     TasksWithThisUserAsContact=Tasques asignades a l'usuari
     ResourceNotAssignedToProject=No assignat a cap projecte
     ResourceNotAssignedToTheTask=No assignat a la tasca
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Temps gastat per
     TasksAssignedTo=Tasques assignades a
     AssignTaskToMe=Assignar-me una tasca
    @@ -189,13 +192,13 @@ AssignTaskToUser=Assigna una tasca a %s
     SelectTaskToAssign=Selecciona una tasca per assignar...
     AssignTask=Assigna
     ProjectOverview=Informació general
    -ManageTasks=Utilitza els projectes per seguir tasques i temps
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Utilitza els projectes per seguir oportunitats
    -ProjectNbProjectByMonth=Nº de projectes creats per mes
    +ProjectNbProjectByMonth=No. of created projects by month
     ProjectNbTaskByMonth=Nº de tasques creades per mes
    -ProjectOppAmountOfProjectsByMonth=Import d'oportunitats per mes
    -ProjectWeightedOppAmountOfProjectsByMonth=Quantitat ponderada d'oportunitats per mes
    -ProjectOpenedProjectByOppStatus=Projectes oberts per estats d'oportunitat
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Estadístiques en projectes/leads
     TasksStatistics=Estadístiques de tasques de projecte/lideratge
     TaskAssignedToEnterTime=Tasca assignada. És possible entrar els temps en aquesta tasca.
    @@ -204,10 +207,11 @@ YouCanCompleteRef=Si vols completar la referència amb més informació (per uti
     OpenedProjectsByThirdparties=Projectes oberts per tercers
     OnlyOpportunitiesShort=Només oportunitats
     OpenedOpportunitiesShort=Oportunitats obertes
    +NotOpenedOpportunitiesShort=Not open leads
     NotAnOpportunityShort=No és una oportunitat
    -OpportunityTotalAmount=Import total d'oportunitats
    -OpportunityPonderatedAmount=Quantitat ponderada d'oportunitats
    -OpportunityPonderatedAmountDesc=Quantitat ponderada d'oportunitats amb probabilitat
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Potencial
     OppStatusQUAL=Qualificació
     OppStatusPROPO=Pressupost
    @@ -227,4 +231,6 @@ AllowCommentOnProject=Permetre comentaris dels usuaris als projectes
     DontHavePermissionForCloseProject=No teniu permisos per tancar el projecte %s
     DontHaveTheValidateStatus=El projecte %s ha de ser obert per tancar
     RecordsClosed=%s projecte(s) tancat(s)
    -SendProjectRef=Information project %s
    +SendProjectRef=Informació del projecte %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/ca_ES/propal.lang b/htdocs/langs/ca_ES/propal.lang
    index a5e056a6f9c..3408e3acefd 100644
    --- a/htdocs/langs/ca_ES/propal.lang
    +++ b/htdocs/langs/ca_ES/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signat (a facturar)
     PropalStatusNotSigned=No signat (tancat)
     PropalStatusBilled=Facturat
     PropalStatusDraftShort=Esborrany
    -PropalStatusValidatedShort=Validat
    +PropalStatusValidatedShort=Validat (obert)
     PropalStatusClosedShort=Tancat
     PropalStatusSignedShort=Signat
     PropalStatusNotSignedShort=No signat
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Pressupost %s inexistent
     AddToDraftProposals=Afegir a pressupost esborrany
     NoDraftProposals=Sense pressupostos esborrany
     CopyPropalFrom=Crea un pressupost per còpia d'un d'existent
    -CreateEmptyPropal=Crea pressupost buit
    +CreateEmptyPropal=Creeu una proposta comercial buida o des de la llista de productes / serveis
     DefaultProposalDurationValidity=Termini de validesa per defecte (en dies)
    -UseCustomerContactAsPropalRecipientIfExist=Utilitzar adreça contacte de seguiment de client definit en comptes de la direcció del tercer com a destinatari dels pressupostos
    +UseCustomerContactAsPropalRecipientIfExist=Utilitzeu el contacte / adreça amb el tipus "proposta de seguiment de contacte" si es defineix en comptes de l'adreça de tercers com a adreça de destinatari de la proposta
     ClonePropal=Clonar pressupost
     ConfirmClonePropal=Estàs segur que vols clonar la proposta comercial <b>%s</b>?
     ConfirmReOpenProp=Estàs segur que vols tornar a obrir la proposta comercial <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Contacte client seguiment pressupost
     TypeContact_propal_external_SHIPPING=Contacte del client pel lliurament
     # Document models
     DocModelAzurDescription=Model de pressupost complet (logo...)
    +DocModelCyanDescription=Model de pressupost complet (logo...)
     DefaultModelPropalCreate=Model per defecte
     DefaultModelPropalToBill=Model per defecte en tancar un pressupost (a facturar)
     DefaultModelPropalClosed=Model per defecte en tancar un pressupost (no facturat)
    diff --git a/htdocs/langs/ca_ES/resource.lang b/htdocs/langs/ca_ES/resource.lang
    index 64a8fd5d1a7..34283f04e1b 100644
    --- a/htdocs/langs/ca_ES/resource.lang
    +++ b/htdocs/langs/ca_ES/resource.lang
    @@ -5,7 +5,7 @@ DeleteResource=Elimina recurs
     ConfirmDeleteResourceElement=Estàs segur de voler eliminar el recurs d'aquest element?
     NoResourceInDatabase=Sense recursos a la base de dades.
     NoResourceLinked=Sense recursos enllaçats
    -
    +ActionsOnResource=Esdeveniments sobre aquest recurs
     ResourcePageIndex=Llistat de recursos
     ResourceSingular=Recurs
     ResourceCard=Fitxa de recurs
    diff --git a/htdocs/langs/ca_ES/stripe.lang b/htdocs/langs/ca_ES/stripe.lang
    index 78119cd6700..bbbd5c48a63 100644
    --- a/htdocs/langs/ca_ES/stripe.lang
    +++ b/htdocs/langs/ca_ES/stripe.lang
    @@ -61,3 +61,4 @@ ConfirmDeleteCard=Estàs segur que vols eliminar aquesta targeta de crèdit o de
     CreateCustomerOnStripe=Crea un client a Stripe
     CreateCardOnStripe=Crea una targeta a Stripe
     ShowInStripe=Mostra a Stripe
    +StripeUserAccountForActions=Compte d'usuari per utilitzar en alguns e-mails de notificació d'esdeveniments Stripe (pagaments Stripe)
    diff --git a/htdocs/langs/ca_ES/suppliers.lang b/htdocs/langs/ca_ES/suppliers.lang
    index c748ed9b7b6..22eef83e987 100644
    --- a/htdocs/langs/ca_ES/suppliers.lang
    +++ b/htdocs/langs/ca_ES/suppliers.lang
    @@ -21,9 +21,9 @@ SupplierPayment=Pagament al proveïdor
     SuppliersArea=Àrea de proveïdors
     RefSupplierShort=Ref. proveïdor
     Availability=Disponibilitat
    -ExportDataset_fournisseur_1=Vendor invoices list and invoice lines
    -ExportDataset_fournisseur_2=Vendor invoices and payments
    -ExportDataset_fournisseur_3=Comandes de compra i línies de comanda
    +ExportDataset_fournisseur_1=Factures de proveïdor i línies de factura
    +ExportDataset_fournisseur_2=Factures i pagaments de proveïdors
    +ExportDataset_fournisseur_3=Comandes de proveïdor i línies de comanda
     ApproveThisOrder=Aprovar aquesta comanda
     ConfirmApproveThisOrder=Vols aprovar la comanda <b>%s</b>?
     DenyingThisOrder=Denegar aquesta comanda
    diff --git a/htdocs/langs/ca_ES/users.lang b/htdocs/langs/ca_ES/users.lang
    index 653167b5de0..370deec44d1 100644
    --- a/htdocs/langs/ca_ES/users.lang
    +++ b/htdocs/langs/ca_ES/users.lang
    @@ -35,7 +35,7 @@ SuperAdministrator=Super Administrador
     SuperAdministratorDesc=Administrador global
     AdministratorDesc=Administrador
     DefaultRights=Permisos per defecte
    -DefaultRightsDesc=Definiu aquí els permisos <b>per defecte</b>, és a dir: els permisos que s'assignaran automàticament a un nou usuari en el moment de la seva creació (Veure la fitxa usuari per canviar els permisos a un usuari existent).
    +DefaultRightsDesc=Defineix aquí els permisos <u>per defecte</u> que es concedeixen automàticament a un usuari <u>nou creat</u> (Ves a la targeta d'usuari per canviar el permís d'un usuari existent).
     DolibarrUsers=Usuaris Dolibarr
     LastName=Cognoms
     FirstName=Nom
    @@ -66,7 +66,7 @@ CreateDolibarrThirdParty=Crea un tercer
     LoginAccountDisableInDolibarr=El compte està desactivat en Dolibarr
     UsePersonalValue=Utilitzar valors personalitzats
     InternalUser=Usuari intern
    -ExportDataset_user_1=Usuaris Dolibarr i propietats
    +ExportDataset_user_1=Usuaris i les seves propietats
     DomainUser=Usuari de domini
     Reactivate=Reactivar
     CreateInternalUserDesc=Aquest formulari permet crear un usuari intern a la teva empresa/organització. Per crear un usuari extern (clients, proveïdors, ...), utilitzeu el botó 'Crea usuari de Dolibarr' a la fitxa de contacte del tercer.
    @@ -108,3 +108,4 @@ UserAccountancyCode=Codi comptable de l'usuari
     UserLogoff=Usuari desconnectat
     UserLogged=Usuari connectat
     DateEmployment=Data d'ocupació
    +DateEmploymentEnd=Data de finalització de l'ocupació
    diff --git a/htdocs/langs/ca_ES/website.lang b/htdocs/langs/ca_ES/website.lang
    index 9c986cc367c..9aa9b25a40a 100644
    --- a/htdocs/langs/ca_ES/website.lang
    +++ b/htdocs/langs/ca_ES/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Codi
    -WebsiteSetupDesc=Crea tantes entrades com número de pàgines web que necessitis. Després ves al menú Pàgines web per editar-les.
    +WebsiteSetupDesc=Creeu aquí els llocs web que voleu utilitzar. A continuació, vagi a menú de llocs web per editar-los.
     DeleteWebsite=Elimina la pàgina web
    -ConfirmDeleteWebsite=Estàs segur de voler elimiar aquesta pàgina web? També s'esborraran totes les pàgines i el seu contingut.
    +ConfirmDeleteWebsite=Està segur que vol eliminar aquest lloc web? Totes les seves pàgines i continguts també seran eliminats.
     WEBSITE_TYPE_CONTAINER=Tipus de pàgina/contenidor
     WEBSITE_PAGE_EXAMPLE=Pàgina web per utilitzar com a exemple
     WEBSITE_PAGENAME=Nom/alies de pàgina
     WEBSITE_ALIASALT=Noms de pàgina alternatius / àlies
    +WEBSITE_ALIASALTDesc=Utilitzeu aquí la llista d'altres noms / àlies, per la qual cosa també es pot accedir a la pàgina amb altres noms / àlies (per exemple, el nom antic després de canviar el nom de l'àlies per mantenir el vincle d'enllaç a l'antic vincle / nom de treball). La sintaxi és: <br> alternativament1, alternativament2, ...
     WEBSITE_CSS_URL=URL del fitxer CSS extern
     WEBSITE_CSS_INLINE=Fitxer de contingut CSS (comú a totes les pàgines)
     WEBSITE_JS_INLINE=Fitxer amb contingut Javascript (comú a totes les pàgines)
     WEBSITE_HTML_HEADER=Afegit a la part inferior de l'encapçalament HTML (comú a totes les pàgines)
     WEBSITE_ROBOT=Fitxer per robots (robots.txt)
    -WEBSITE_HTACCESS=Fitxer .htaccess del lloc web
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=Encapçalament HTML (específic sols per aquesta pàgina)
     PageNameAliasHelp=Nom o àlies de la pàgina. <br> Aquest àlies també s'utilitza per construir un URL de SEO quan el lloc web es llanci des d'un Host Virtual d'un servidor web (com Apache, Nginx...). Utilitzeu el botó "<strong>%s</strong>" per editar aquest àlies.
     EditTheWebSiteForACommonHeader=Nota: si voleu definir un encapçalament personalitzat per a totes les pàgines, editeu el encapçalament al nivell del lloc en comptes de la pàgina/contenidor.
     MediaFiles=Llibreria Media
    -EditCss=Edita l'estil/CSS o la capçalera HTML
    +EditCss=Editar propietats
     EditMenu=Edita menú
     EditMedias=Editar multimèdia
    -EditPageMeta=Edita "meta"
    +EditPageMeta=Editar propietats de pàgina/contenidor
    +EditInLine=Editar en línia
     AddWebsite=Afegir lloc web
     Webpage=Pàgina/contenidor web
     AddPage=Afegeix pàgina/contenidor
     HomePage=Pàgina d'inici
     PageContainer=Pàgina/contenidor
    -PreviewOfSiteNotYetAvailable=La previsualització del teu lloc web <strong>%s</strong> encara no està disponible. Primer has d'afegir una pàgina.
    +PreviewOfSiteNotYetAvailable=Vista prèvia del seu lloc web <strong>%s</strong> encara no està disponible. Primer ha de '<strong>Importar plantilla web</strong>' o sols '<strong>Afegir pàgina/contenidor</strong>'.
     RequestedPageHasNoContentYet=La pàgina sol·licitada amb l'identificador %s encara no té contingut, o el fitxer de memòria cau .tpl.php s'ha eliminat. Edita el contingut de la pàgina per solucionar-ho.
    +SiteDeleted=Lloc web '%s' eliminat
     PageContent=Pàgina/Contenidor
     PageDeleted=Pàgina/Contenidor '%s' del lloc web %s eliminat
     PageAdded=Pàgina/Contenidor '%s' afegit
    @@ -36,8 +39,8 @@ ViewPageInNewTab=Mostra la pàgina en una nova pestanya
     SetAsHomePage=Indica com a Pàgina principal
     RealURL=URL real
     ViewWebsiteInProduction=Mostra la pàgina web utilitzant les URLs d'inici
    -SetHereVirtualHost=Si pots crear, al teu servidor web (Apache, Nginx...), un Host Virtual amb PHP habilitat i un directori Root a <strong>%s</strong><br><br>, llavors introduïu aquí el nom del host virtual que has creat, d'aquesta manera es pot fer una vista prèvia utilitzant aquest accés directe al servidor web, i no només utilitzant el servidor Dolibarr.
    -YouCanAlsoTestWithPHPS=En l'entorn de desenvolupament, és possible que preferiu provar el lloc amb el servidor web incrustat de PHP (requereix PHP 5.5) executant-se<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Comproveu també que l'amfitrió virtual té permisos <strong> %s </strong> en fitxers a <strong> %s </strong>
     ReadPerm=Llegit
     WritePerm=Escriu
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<LI>Vista prèvia %s en una nova pestanya.</LI><br>
     PreviewSiteServedByDolibarr=<u> Previsualitza  %s en una nova pestanya. </li> <br> <br> El servidor %s serà servit pel servidor Dolibarr d'aquesta manera no es necessita instal·la cap servidor web addicional (com ara Apache, Nginx, IIS).<br>L'inconvenient és que l'URL de les pàgines no son amigables i començen per la ruta del vostre Dolibarr. <br>URL servit per Dolibarr:<br><strong> %s </strong> <br> <br> Per utilitzar el vostre propi servidor web extern per a servir a aquest lloc web, creeu un amfitrió ('host') virtual al vostre servidor web que apunti al directori<br><strong> %s </strong><br>, llavors introduïu el nom d'aquest servidor virtual i feu clic a l'altre botó de vista prèvia (botó de 'preview').
     VirtualHostUrlNotDefined=No s'ha definit la URL de l'amfitrió virtual que serveix el servidor web extern
     NoPageYet=Encara sense pàgines
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Ajuda sobre consells de sintaxi específics
     YouCanEditHtmlSourceckeditor=Podeu editar el codi font HTML usant el botó "Codi font" a l'editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> Podeu incloure PHP codi a la font usant les etiquetes ('tags') <strong>&lt;?php ?&gt;</strong>. Les següents variables globals estan disponibles: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> Podeu també incloure contingut de un altre Page/Container amb les següents sintaxis:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> Podeu fer una redirecció a una altra Page/Container amb la següent sintaxis:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> Per a incloure un <strong>enllaç per a descarregar</strong> un fitxer emmagatzemat dins del <strong>documents</strong> directori, utilitza el <strong>document.php</strong> wrapper:<br>Exemple, per a un fitxer dins del documents/ecm (necessita estar 'logged'), la sintaxis és:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>Per a un fitxer dintre de documents/medias (open directory for public access), la sintaxis és:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>Per a un fitxer compartit amb un enllaç compartit (open access using the sharing hash key of file), la sintaxis és:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> Per a incloure una <strong>image</strong> emmagatzemat dintre de <strong>documents</strong> directory, utilitza el <strong>viewimage.php</strong> wrapper:<br>Exemple, per a una imatge dintre de documents/medias (open access), la sintaxis és:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clona la pàgina/contenidor
     CloneSite=Clona el lloc
    -SiteAdded=Lloc web afegit
    +SiteAdded=Website added
     ConfirmClonePage=Introduïu el codi/àlies de la pàgina nova i si és una traducció de la pàgina clonada.
     PageIsANewTranslation=La nova pàgina és una traducció de la pàgina actual?
     LanguageMustNotBeSameThanClonedPage=Cloneu una pàgina com a una traducció. L'idioma de la nova pàgina ha de ser diferent del llenguatge de la pàgina d'origen.
     ParentPageId=ID de la pàgina pare
     WebsiteId=ID del lloc web
     CreateByFetchingExternalPage=Crear una pàgina/contenidor mitjançant l'obtenció del continugt des d'una URL externa ...
    -OrEnterPageInfoManually=O creeu una pàgina buida des de zero ...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Obtenir i crear
    -ExportSite=Exportar el lloc web
    +ExportSite=Exporta la web
    +ImportSite=Import website template
     IDOfPage=Id de la pàgina
     Banner=Bàner
     BlogPost=Publicació del bloc
    -WebsiteAccount=Compte de lloc web
    -WebsiteAccounts=Comptes de lloc web
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Crear un compte de lloc web
     BackToListOfThirdParty=Tornar a la llista de Tercers
     DisableSiteFirst=Deshabilita primer el lloc web
    @@ -73,7 +78,7 @@ AnotherContainer=Un altre contenidor
     WEBSITE_USE_WEBSITE_ACCOUNTS=Activa la taula del compte del lloc web
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Activeu la taula per emmagatzemar comptes del lloc web (login/contrasenya) per a cada lloc web de tercers
     YouMustDefineTheHomePage=Primer heu de definir la pàgina d'inici predeterminada
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Només l'edició de codi HTML és possible quan el contingut s'ha capturat d'un lloc extern
     GrabImagesInto=Agafa també imatges trobades dins del css i a la pàgina.
     ImagesShouldBeSavedInto=Les imatges s'han de desar al directori
    @@ -82,3 +87,9 @@ SubdirOfPage=Subdirectori dedicat a la pàgina
     AliasPageAlreadyExists=Alias de pàgina <strong>%s</strong> ja existeixen
     CorporateHomePage=Pàgina d'inici corporativa
     EmptyPage=Pàgina buida
    +ExternalURLMustStartWithHttp=L'URL externa ha de començar amb http:// o https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/ca_ES/withdrawals.lang b/htdocs/langs/ca_ES/withdrawals.lang
    index 37afcba976a..77c67a26dbb 100644
    --- a/htdocs/langs/ca_ES/withdrawals.lang
    +++ b/htdocs/langs/ca_ES/withdrawals.lang
    @@ -13,7 +13,7 @@ RequestStandingOrderToTreat=Petició per a processar ordres de pagament mitjanç
     RequestStandingOrderTreated=Petició per a processar ordres de pagament mitjançant domiciliació bancària finalitzada
     NotPossibleForThisStatusOfWithdrawReceiptORLine=Encara no és possible. L'estat de la domiciliació ter que ser 'abonada' abans de poder realitzar devolucions a les seves línies
     NbOfInvoiceToWithdraw=Nombre de factures qualificades esperant l'ordre de domiciliació bancària
    -NbOfInvoiceToWithdrawWithInfo=Nombre de factura de client amb pagament per domiciliació bancària havent definit la informació del compte bancari
    +NbOfInvoiceToWithdrawWithInfo=Número de factures del client en espera de domiciliació per a clients que tenen el número de compte definida
     InvoiceWaitingWithdraw=Factura esperant per domiciliació bancària
     AmountToWithdraw=Import a domiciliar
     WithdrawsRefused=Domiciliació bancària refusada
    @@ -26,7 +26,7 @@ LastWithdrawalReceipt=Últims %s rebuts domiciliats
     MakeWithdrawRequest=Fer una petició de pagament per domiciliació bancària
     WithdrawRequestsDone=%s domiciliacions registrades
     ThirdPartyBankCode=Codi banc del tercer
    -NoInvoiceCouldBeWithdrawed=No s'ha domiciliat cap factura amb èxit. Comprova que les factures es troben en empreses amb un BAN vàlid per defecte i que aquest BAN té un RUM amb mode <strong>%s</strong>.
    +NoInvoiceCouldBeWithdrawed=Cap factura s'ha carregat amb èxit. Comproveu que els tercers de les factures tenen un IBAN vàlid i que IBAN té un RUM (Referència de mandat exclusiva) amb mode <strong>%s</strong>.
     ClassCredited=Classificar com "Abonada"
     ClassCreditedConfirm=Esteu segur de voler classificar aquesta domiciliació com abonada al seu compte bancari?
     TransData=Data enviament
    @@ -78,7 +78,7 @@ ThisWillAlsoAddPaymentOnInvoice=Això també registrarà els pagaments a les fac
     StatisticsByLineStatus=Estadístiques per estats de línies
     RUM=UMR
     RUMLong=Referència de mandat única (UMR)
    -RUMWillBeGenerated=If empty, UMR number will be generated once bank account information are saved
    +RUMWillBeGenerated=Si està buit, el número UMR es generarà una vegada que es guardi la informació del compte bancari
     WithdrawMode=Modo de domiciliació bancària (FRST o RECUR)
     WithdrawRequestAmount=Import de la domiciliació
     WithdrawRequestErrorNilAmount=No és possible crear una domiciliació sense import
    @@ -100,12 +100,8 @@ DirectDebitOrderCreated=S'ha creat l'ordre de domiciliació bancària %s
     AmountRequested=Quantitat sol·licitada
     SEPARCUR=SEPA CUR
     SEPAFRST=SEPA FRST
    -<<<<<<< HEAD
    -ExecutionDate=Execution date
    -=======
     ExecutionDate=Data d'execució
    ->>>>>>> branch '7.0' of git@github.com:Dolibarr/dolibarr.git
    -CreateForSepa=Create direct debit file
    +CreateForSepa=Crea un fitxer de domiciliació bancària
     
     ### Notifications
     InfoCreditSubject=Pagament de rebuts domiciliats %s pel banc
    diff --git a/htdocs/langs/ca_ES/workflow.lang b/htdocs/langs/ca_ES/workflow.lang
    index 781ccf16af9..e6162b51e6c 100644
    --- a/htdocs/langs/ca_ES/workflow.lang
    +++ b/htdocs/langs/ca_ES/workflow.lang
    @@ -1,20 +1,20 @@
     # Dolibarr language file - Source file is en_US - workflow
     WorkflowSetup=Configuració del mòdul workflow
    -WorkflowDesc=Aquest mòdul li permet canviar el comportament de les accions automàticament en l'aplicació. De forma predeterminada, el workflow està obert (configuri segons les seves necessitats). Activi les accions automàtiques que li interessin.
    +WorkflowDesc=Aquest mòdul ofereix algunes accions automàtiques. Per defecte, el flux de treball està obert (podeu fer les coses en l'ordre que vulgueu), però aquí podeu activar algunes accions automàtiques.
     ThereIsNoWorkflowToModify=No hi ha modificacions disponibles del fluxe de treball amb els mòduls activats.
     # Autocreate
    -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crea automàticament una comanda de client després d'haver signat un pressupost (la nova comanda tindrà la mateixa quantitat que el pressupost)
    -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crea automàticament una factura del client després d'haver signat un pressupost (la nova factura tindrà la mateixa quantitat que el pressupost)
    +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crea automàticament una comanda de client després d'haver signat un pressupost (la nova comanda tindrà el mateixa import que el pressupost)
    +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crea automàticament una factura del client després d'haver signat un pressupost (la nova factura tindrà el mateixa import que el pressupost)
     descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear automàticament una factura a client després de validar un contracte
    -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crea automàticament una factura de client després de tancar una comanda de client (la nova factura tindrà la mateixa quantitat que la comanda)
    +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crea automàticament una factura de client després de tancar una comanda de client (la nova factura tindrà el mateixa import que la comanda)
     # Autoclassify customer proposal or order
    -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifica els pressupostos vinculats d'origen com a facturats quan la comanda del client es posi com a facturada (i si l'import de la comanda és igual a l'import total dels pressupostos vinculats i signats)
    -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classifica els pressupostos vinculats d'origen com a facturats quan la factura del client es validi (i si l'import de la factura és igual a l'import total dels pressupostos vinculats i signats)
    +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifica el pressupost d'origen com a facturat quan la comanda del client es posi com a facturada (i si l'import de la comanda és igual a l'import total del pressupost signat vinculat)
    +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classifica els pressupostos vinculats d'origen com a facturats quan la factura del client es validi (i si l'import de la factura és igual a l'import total dels pressupostos signats vinculats)
     descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifica les comandes de client vinculades d'origen com a facturades quan la factura del client es validi (i si l'import de la factura és igual a l'import total de les comandes vinculades)
     descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifica les comandes de client vinculades d'origen com a facturades quan la factura del client es posi com a pagada (i si l'import de la factura és igual a l'import total de les comandes vinculades)
    -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classifiqueu com a "Enviada" la comanda de client original enllaçada quan es validi un enviament (sempre que la quantitat d'articles enviada per tots els enviaments sigui la mateixa que la de la comanda)
    +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classifica les comandes vinculades com a enviades quan l'expedició es validi (i si la quantitat enviada per totes les expedicions és igual que la comanda a actualitzar)
     # Autoclassify supplier order
    -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked proposals)
    -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked orders)
    +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classifica el pressupost de proveïdor vinculat com facturat quan la factura de proveïdor és validada (i si l'import de la factura és igual a l'import total del pressupost vinculat)
    +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classifica la comanda de proveïdor vinculada com facturada quan la factura de proveïdor és validada (i si l'import de la factura és igual a l'import total de la comanda vinculada)
     AutomaticCreation=Creació automàtica
     AutomaticClassification=Classificació automàtica
    diff --git a/htdocs/langs/cs_CZ/admin.lang b/htdocs/langs/cs_CZ/admin.lang
    index 7e3d67f2e06..b404b57f460 100644
    --- a/htdocs/langs/cs_CZ/admin.lang
    +++ b/htdocs/langs/cs_CZ/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Vývoj
     VersionUnknown=Neznámý
     VersionRecommanded=Doporučené
     FileCheck=Kontrola integrity souborů
    -FileCheckDesc=Tento nástroj vám umožňuje zkontrolovat integritu souborů a nastavení aplikace a porovnávat jednotlivé soubory s oficiálními. Je také možné zkontrolovat hodnotu některých konstant nastavení. Pomocí tohoto nástroje můžete zjistit, zda některé soubory byly například modifikovány hackerem.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=integrity souborů je přísně přizpůsobena s odkazem.
    -FileIntegrityIsOkButFilesWereAdded=Kontrola souborů integrity prošel, ale byly přidány některé nové soubory.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Kontrola souborů integrity selhal. Některé soubory byly změněny, odstraněny nebo přidány.
     GlobalChecksum=Global kontrolní součet
     MakeIntegrityAnalysisFrom=Udělat analýzu integrity souborů aplikací od
    @@ -30,14 +30,14 @@ SessionSaveHandler=Manipulátor uložených relací
     SessionSavePath=Místo uložení relace
     PurgeSessions=Vyčistit relace
     ConfirmPurgeSessions=Opravdu chcete, vyčistit všechny relace? Tím dojde k odpojení všech přihlášených uživatelů (kromě vás).
    -NoSessionListWithThisHandler=Nastavení Vašeho PHP neumožňuje vypsat běžící relace.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Uzamknout nové spojení
    -ConfirmLockNewSessions=Určitěchcete omezit všechna nová Dolibarr spojení? Pouze uživatel<b>%s</b> bude mít možnost se připojit.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Odstranit zámek spojení
     YourSession=Vaše relace
    -Sessions=Uživatelské relace
    +Sessions=Users sessions
     WebUserGroup=Web server uživatel / skupina
    -NoSessionFound=Nastavení Vašeho PHP Vám neumožňuje výpis aktivních relací. Složka sloužící k uložení relací <b>(%s)</b> může být chráněna (např. nastavením oprávnění OS nebo PHP open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Znaková sada pro databázi s daty
     DBSortingCharset=Znaková sada pro řazení databáze s daty
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Externí uživatel
     InternalUsers=Interní uživatelé
     ExternalUsers=Externí uživatelé
     GUISetup=Zobrazení
    -SetupArea=Modul nastavení
    +SetupArea=Nastavení
     UploadNewTemplate=Nahrát nové šablony
     FormToTestFileUploadForm=Formulář pro testování uploadu souborů (dle nastavení)
     IfModuleEnabled=Poznámka: Ano má efekt pouze tehdy, pokud je aktivní modul <b>%s</b>
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kód nemůže obsahovat hodnotu 0
     DisableJavascript=Vypnout JavaScript a Ajax funkce (Doporučuje se pro nevidomého či textové prohlížeče)
     UseSearchToSelectCompanyTooltip=Také, pokud máte velký počet subjektů (> 100 000), můžete zvýšit rychlost nastavením konstantní COMPANY_DONOTSEARCH_ANYWHERE 1 v Setup-> Ostatní. Vyhledávání pak bude omezena na začátek řetězce.
     UseSearchToSelectContactTooltip=Také, pokud máte velký počet subjektů (> 100 000), můžete zvýšit rychlost nastavením konstantní CONTACT_DONOTSEARCH_ANYWHERE 1 v Setup-> Ostatní. Vyhledávání pak bude omezena na začátek řetězce.
    -DelaiedFullListToSelectCompany=Počkat stisknutí klávesy před vložením obsahu seznamu subjektů combo (To může zvýšit výkon, pokud máte velké množství subjektů, ale je to méně pohodlné)
    -DelaiedFullListToSelectContact=Počkat stisknutí klávesy před vložením obsahu seznamu kontaktů combo (To může zvýšit výkon, pokud máte velký počet kontaktů, ale je to méně pohodlné)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Počet charakterů nutných k spuštění hledání: %s
     NotAvailableWhenAjaxDisabled=Není k dispozici při vypnutém Ajaxu
     AllowToSelectProjectFromOtherCompany=Na dokumentu třetí osoby, mohou vybrat projekt spojený s jinou třetí stranou
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Náhled není k dispozici
     ThemeCurrentlyActive=Téma aktivní
     CurrentTimeZone=Časové pásmo PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Termíny jsou uloženy a vráceny databázového serveru, jako kdyby byly vedeny jako odeslán řetězec. Časové pásmo má vliv pouze při použití funkce UNIX_TIMESTAMP (které by neměly být používány Dolibarr, takže databáze TZ by nemělo mít žádný vliv, i když se změnila po byla zadána data).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Mezera
     Table=Tabulka
     Fields=Pole
    @@ -111,14 +111,14 @@ NotConfigured=Modul/aplikace není nakonfigurován(a)
     Active=Aktivní
     SetupShort=Nastavení
     OtherOptions=Další možnosti
    -OtherSetup=Další nastavení
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Desetinný oddělovač
     CurrentValueSeparatorThousand=Oddělovač tisíců
     Destination=Destinace
     IdModule=Modul ID
     IdPermissions=Oprávnění ID
     LanguageBrowserParameter=Parametr %s
    -LocalisationDolibarrParameters=Lokalizační parametry
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Časové pásmo klienta (uživatele)
     ClientHour=Klientův čas (uživatelův)
     OSTZ=Server OS Časové pásmo
    @@ -126,8 +126,8 @@ PHPTZ=Časové pásmo PHP serveru
     DaylingSavingTime=Letní čas
     CurrentHour=PHP Čas (server)
     CurrentSessionTimeOut=Aktuální časový limit relace
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Boxy
     MaxNbOfLinesForBoxes=Maximální počet řádků pro widgety
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignorovat chyby duplicitních záznamů (INSERT IGNORE)
     AutoDetectLang=Autodetekce (jazyku prohlížeče)
     FeatureDisabledInDemo=Funkce zakázána v demu
     FeatureAvailableOnlyOnStable=Funkce je k dispozici pouze v oficiálních stabilních verzích
    -BoxesDesc=Widgety jsou oblasti obrazovky, které ukazují krátké informace na některých stránkách. Můžete si vybrat mezi zobrazením/schováním boxu zvolením cílové stránky a kliknutím na 'Aktivovat' nebo kliknutím na popelnici ji zakázat.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Pouze prvky z <a href="%s">povolených modulů</a> jsou uvedeny.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Více modulů naleznete ke stažení na externích webových stránkách ...
    -ModulesDeployDesc=Pokud oprávnění na souborovém systému dovolí, můžete použít tento nástroj k nasazení externího modulu. Modul wil pak bude viditelný na kartě <strong> %s </ strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Nový
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=Nasadit / instalovat nový modul, přejděte na nastavení plochy modulu na <a href="%s"> %s </a>.
     DoliStoreDesc=DoliStore, oficiální trh pro download externích modulů Dolibarr ERP / CRM
    -DoliPartnersDesc=Seznam firem poskytujících zakázku vyvinuté moduly nebo funkce (Poznámka: někdo se zkušenostmi v programování v PHP může poskytnout zakázkový vývoj pro open source projekt)
    -WebSiteDesc=Referenční webové stránky, kde naleznete další moduly ...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Odkaz
     BoxesAvailable=widgety k dispozici
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Ukládat hesla v databázi pouze šifrovaně (Doporučen
     MainDbPasswordFileConfEncrypted=Šifrovat přístupové heslo databáze v conf.php (Doporučeno)
     InstrucToEncodePass=Pro uložení zašifrovaného hesla do <b>conf.php</b>, nahraďte řádku <br> <b>$dolibarr_main_db_pass="..."</b> <br> hodnotou <br> <b>$dolibarr_main_db_pass="crypted:%s"</b>
     InstrucToClearPass=Pro uložení nezašifrovaného hesla do <b>conf.php</b>, nahraďte řádku <br> <b>$dolibarr_main_db_pass="crypted:..."</b> <br> hodnotou <br> <b>$dolibarr_main_db_pass="%s"</b>
    -ProtectAndEncryptPdfFiles=Přidat ochranu generovaných souborů PDF (Nedoporučuje se, zablokuje hromadné generování PDF)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Ochrana dokumentů PDF neomezí možnost otevírání dokumentů jakýmkoliv prohlížečem. Nicméně, editace a kopírování přestane být možná. Zapnutím této ochrany přijdete o možnost vytváření kumulovaných PDF (např. nezaplacených faktur)
     Feature=Funkce
     DolibarrLicense=Licence
    @@ -246,8 +246,8 @@ ExternalResources=Cizí zdroje
     SocialNetworks=Sociální sítě
     ForDocumentationSeeWiki=Pro uživatelskou nebo vývojářskou dokumentaci (Doc, FAQs ...) <br> navštivte Dolibarr Wiki: <br> <a href="%s" target="_blank"><b>%s</b></a>
     ForAnswersSeeForum=V případě jakýchkoliv dalších dotazů nebo nápovědy použijte fórum Dolibarr: <br> <a href="%s" target="_blank"><b>%s</b></a>
    -HelpCenterDesc1=Tato oblast slouží k získání nápovědy a podpory systému Dolibarr.
    -HelpCenterDesc2=Některé části této služby jsou k dispozici <b>pouze</b> v <b>angličtině.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Aktuální handler menu
     MeasuringUnit=Měrná jednotka
     LeftMargin=levý okraj
    @@ -262,31 +262,35 @@ NoticePeriod=Výpovědní lhůta
     NewByMonth=New podle měsíce
     Emails=Emaily
     EMailsSetup=Nastavení emailů
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS Port (Výchozí nastavení v php.ini:  <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (Výchozí nastavení v php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS Port (Nedefinováno v PHP na Unixových systémech)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Hosts (Nedefinováno v PHP na Unixových systémech)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Poslat systémovou skrytou kopii všech odeslaných e-mailů na
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Metoda odesílání e-mailů
    -MAIN_MAIL_SMTPS_ID=SMTP ID je-li vyžadováno ověření
    -MAIN_MAIL_SMTPS_PW=SMTP heslo je-li vyžadováno ověření
    -MAIN_MAIL_EMAIL_TLS= Použít TLS (SSL) šifrování
    -MAIN_MAIL_EMAIL_STARTTLS= Použít TLS (STARTTLS) šifrování
    -MAIN_DISABLE_ALL_SMS=Zakázat všechny odesílané SMS (pro testovací účely apod.)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Použitá metoda pro odesílání SMS
    -MAIN_MAIL_SMS_FROM=Výchozí telefonní číslo odesílatele SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=Uživatelský e-mail
     CompanyEmail=email Firma
     FeatureNotAvailableOnLinux=Funkce není k dispozici na Unixových systémech. Otestujte svůj sendmail program lokálně.
    -SubmitTranslation=Pokud překlad pro tento jazyk je neúplný, nebo chybný, můžete jej opravit editací souborů v adresáři <b>langs/%s</b> a předložit změněné soubory na fóru www.dolibarr.org.\n\nAktuální překlady získáte na https://www.transifex.com/dolibarr-association/dolibarr/dashboard/ kde se také můžete po vytvoření účtu na překladech podílet.
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=Pokud překlad pro tento jazyk není úplný nebo najdete chyby, můžete to opravit úpravou souborů do adresáře <b> langs / %s </ b> a odeslat modifikované soubory na stránkách dolibarr.org/forum nebo pro vývojáře na adrese github.com/ Dolibarr / dolibarr.
     ModuleSetup=Nastavení modulu
     ModulesSetup=Nastavení modulu/aplikace
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modulové nastavení
     ModuleFamilyExperimental=Experimentální moduly
     ModuleFamilyFinancial=Finanční moduly (Účetnictví / Finance)
     ModuleFamilyECM=Elektronická správa obsahu (ECM)
    -ModuleFamilyPortal=Webové stránky a další čelní aplikací
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Rozhraní s externími systémy
     MenuHandlers=Menu handlery
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Nepoužívejte ve výrobě
     ThisIsProcessToFollow=Nastaveno na proces:
     ThisIsAlternativeProcessToFollow=Jedná se o alternativní nastavení zpracovávat ručně:
     StepNb=Krok %s
    -FindPackageFromWebSite=Nalezni balíček, obsahující funkci jež chcete (např. na oficiálních stránkách %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download balíčku (například z oficiálních webových stránek %s).
    -UnpackPackageInDolibarrRoot=Rozbalte soubor balíčku do adresáře, vyhrazenému pro externí moduly: <b>%s</b>
    -UnpackPackageInModulesRoot=Nasadit / instalovat externí modul, rozbalit zabalené soubory do adresáře serveru věnovaného modulů: <b> %s </ b>
    -SetupIsReadyForUse=Nasazení modulu je dokončeno. Musíte však povolit a nastavit modul ve své administraci tím, že jdete na stránku nastavení modulů: <a href="%s"> %s </a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=Alternativní kořenový adresář není definován. <br>
     InfDirAlt=Od verze 3 je možné definovat alternativní kořenovou složku. To umožňuje ukládat na stejné místo plug-iny a vlastní šablony. <br> Stačí vytvořit adresář v kořenovém adresáři Dolibarr (např.: custom). <br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr aktuální verze
     CallUpdatePage=Přejděte na stránku, která aktualizuje strukturu databáze a data: %s.
     LastStableVersion=Poslední stabilní verze
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Zpoždění pro ukládání výsledku exportu do mezipaměti v sekundách (0 nebo prázdné pro neukládání)
     DisableLinkToHelpCenter=Skrýt odkaz <b>&quot;Potřebujete pomoc či podporu&quot;</b> na přihlašovací stránce
     DisableLinkToHelp=Skrýt odkaz na on-line nápovědě "<b> %s </ b>"
    -AddCRIfTooLong=Neexistuje žádný automatický balení, takže pokud linka je mimo stránky na dokumentech, protože příliš dlouho, musíte přidat sami návrat vozíku do textového pole.
    -ConfirmPurge=Jste si jisti, že chcete spustit tuto očistu? <br> Toto smaže definitivně všechny datové soubory a nelze je žádným způsobem je obnovit (ECM soubory, přiložené soubory ...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimální délka
     LanguageFilesCachedIntoShmopSharedMemory=Soubory. Lang vložen do sdílené paměti
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Příklady s aktuálním systémem nastavení
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Seznam OpenDocument šablony seznamů
     ListOfDirectoriesForModelGenODT=Seznam adresářů obsahující soubory šablon s formátem OpenDocument <br> <br> Přidejte adresář modulu GED <br> <br> Přidejte adresář modulu GED. > DOL_DATA_ROOT / ecm / yourdirectoryname </ b>. Soubory v těchto adresářích musí končit znakem <b> .odt </ b> nebo <b> .ods </ b>.
    -NumberOfModelFilesFound=Počet ODT / ODS šablony souborů naleznete v těchto adresářích
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Příklady syntaxe: <br> c: \\ mydir <br> / Home / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> Chcete-li vědět, jak vytvořit své ODT šablony dokumentů před jejich uložením do těchto adresářů, přečtěte si wiki dokumentace:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Klíč k použití Web Services (parametr &quot;dolibarr
     TestSubmitForm=Vstup Testovací formulář
     ThisForceAlsoTheme=Pomocí tohoto menu správce bude také používat své vlastní téma, co je podle volby uživatele. Také v tomto menu správce specializuje na chytré telefony není funguje na všech smartphonu. Použijte menu jinou správce, pokud máte problémy na vás.
     ThemeDir=Skins adresář
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Reakce timeout
     SmsTestMessage=Zkušební zpráva od __ PHONEFROM__ do __ PHONETO__
     ModuleMustBeEnabledFirst=Modul <b> %s </ b> musí být napřed povolen, pokud budete potřebovat tuto funkci.
     SecurityToken=Klíč k zabezpečené URL
    -NoSmsEngine=Ne odesílatel SMS manažer k dispozici. SMS odesílatele manažer nejsou nainstalovány s výchozí rozložení (protože závisí na externím dodavatelem), ale můžete najít některé z %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Můžete nastavit každý globální možnosti týkající se generování PDF
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Pravidla se budují adresy boxy
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Skrýt popis produktů z vytvořeného PDF
     HideRefOnPDF=Skrýt produkty čj. na vytvořené PDF
     HideDetailsOnPDF=Skrýt produktové řady podrobnosti o generované PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parametry k zajištění URL
     SecurityTokenIsUnique=Používáme unikátní securekey parametr pro každou adresu URL
     EnterRefToBuildUrl=Zadejte odkaz na objekt %s
     GetSecuredUrl=Získejte vypočtenou URL
    -ButtonHideUnauthorized=Skrýt tlačítka pro uživatele mimo administrátora k neautorizovaným zásahům místo zobrazení zapadlý tlačítek bez funkce
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Staré Sazba DPH
     NewVATRates=Nová sazba DPH
     PriceBaseTypeToChange=Změnit na cenách s hodnotou základního odkazu uvedeného na
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Vyberte seznam
     ExtrafieldSelectList = Vyberte z tabulky
     ExtrafieldSeparator=Oddělovač (není položka)
     ExtrafieldPassword=Heslo
    -ExtrafieldRadio=Přepínače (pouze jedna volba)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Zaškrtávače
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Odkaz na objekt
     ComputedFormula=Vypočtené pole
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Výchozí odkaz
     SetAsDefault=Nastavit jako výchozí
     ValueOverwrittenByUserSetup=Pozor, tato hodnota může být přepsána uživatelem specifické nastavení (každý uživatel může nastavit vlastní clicktodial url)
     ExternalModule=Externí modul - instalován do adresáře %s
    -BarcodeInitForThirdparties=Mass čárový kód init pro thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass init čárový kód nebo reset pro výrobky nebo služby
     CurrentlyNWithoutBarCode=V současné době máte <strong> %s </ strong> záznam na <strong> %s </ strong> %s bez čárového kódu definovaného.
     InitEmptyBarCode=Init hodnota pro příští %s prázdnými záznamů
     EraseAllCurrentBarCode=Vymazat všechny aktuální hodnoty čárových kódů
     ConfirmEraseAllCurrentBarCode=Jste si jisti, že chcete vymazat všechny aktuální hodnoty čárových kódů?
     AllBarcodeReset=Byly odstraněny všechny hodnoty čárových kódů
    -NoBarcodeNumberingTemplateDefined=Žádné šablony číslování čárových kódů aktivované v nastavení modulu čárových kódů.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Aktivovat mezipaměť souborů
     ShowDetailsInPDFPageFoot=Přidat další podrobnosti do zápatí PDF souborů, jako vaše firemní adresy nebo názvy manažer (k dokončení profesionální IDS společnost kapitálové a číslo DPH).
     NoDetails=Žádné další podrobnosti v zápatí
     DisplayCompanyInfo=Zobrazit adresu společnosti
     DisplayCompanyManagers=Jména display manažer
     DisplayCompanyInfoAndManagers=Zobrazte adresu firmy a jména správce
    -EnableAndSetupModuleCron=Chcete-li mít tento opakující faktury soupisky generovány automaticky, modul * %s * musí být povoleno a správně nastaveny. V opačném případě, generování faktur musí být provedeno manuálně z této šablony s tlačítkem * Vytvořit *. Všimněte si, že i když jste povolili automatické generování, stále se můžete bezpečně spustit manuální generaci. Duplikáty generace za stejné období nejsou možné.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=Ve výchozím nastavení musí být nákupní objednávky vytvořeny a schváleny dvěma různými uživateli (jeden krok / uživatel k vytvoření a jeden krok / uživatel ke schválení. Všimněte si, že pokud má uživatel oprávnění k vytvoření a schválení, stačí jeden krok / uživatel) . Touto volbou můžete požádat o zavedení třetího schvalovacího kroku / schválení uživatele, pokud je částka vyšší než určená hodnota (potřebujete tedy 3 kroky: 1 = ověření, 2 = první schválení a 3 = druhé schválení, pokud je dostatečné množství). <br> Pokud je zapotřebí jedno schvalování (2 kroky), nastavte jej na velmi malou hodnotu (0,1), pokud je vždy požadováno druhé schválení (3 kroky).
     UseDoubleApproval=Použijte schválení 3 kroky, kdy částka (bez DPH) je vyšší než ...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Kliknutím zobrazíte popis
    -DependsOn=Tento modul je třeba modul (y)
    +DependsOn=This module needs the module(s)
     RequiredBy=Tento modul je vyžadováno modulu (modulů)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=Překlad byl nalezen na klíče s tímto kódem, takže tuto hodnotu změnit, musíte upravit jej FOM Home-Setup-překlad.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Pole
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Uživatelé a skupiny
     Module0Desc=Uživatelé / zaměstnanci a vedení Skupiny
    -Module1Name=Třetí strany
    -Module1Desc=Firmy a správu kontaktů (zákazníci, vyhlídky ...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Obchodní
     Module2Desc=Obchodní řízení
     Module10Name=Účetnictví
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Návrhy
     Module20Desc=Komerční návrh řízení
     Module22Name=Mass E-mailing
    @@ -495,7 +501,7 @@ Module23Desc=Sledování spotřeby energií
     Module25Name=Zákaznických objednávek
     Module25Desc=Zákazníka řízení
     Module30Name=Faktury
    -Module30Desc=Faktura a dobropis řízení pro zákazníky. Faktura řízení pro dodavatele
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Dodavatelé
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Skladové hospodářství (výrobky)
     Module53Name=Služby
     Module53Desc=Správa služeb
     Module54Name=Smlouvy/Objednávky
    -Module54Desc=Správa smluv (služeb nebo reccuring předplatné)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Čárové kódy
     Module55Desc=Barcode řízení
     Module56Name=Telefonie
     Module56Desc=Telefonie integrace
     Module57Name=Přímé bankovní platební příkazy
    -Module57Desc=Správa platebních příkazů přímého inkasa. Zahrnuje generování souboru SEPA pro evropské země.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integrace ClickToDial systému (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Nákladové a výlet poznámky
     Module75Desc=Náklady a výlet poznámky řízení
     Module80Name=Zásilky
     Module80Desc=Přeprava a dodání účelem řízení
    -Module85Name=Banky a peněžní
    +Module85Name=Banks and Cash
     Module85Desc=Správa bankovních účtech nebo v hotovosti
    -Module100Name=Externí stránky
    -Module100Desc=Tento modul je externí webové stránky nebo stránku do menu Dolibarr a zobrazit ji do rámu Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Pošťák a SPIP
     Module105Desc=Pošťák nebo SPIP rozhraní pro členské modul
     Module200Name=LDAP
    -Module200Desc=LDAP synchronizace adresářů
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integrace
     Module240Name=Exporty dat
    -Module240Desc=Nástroj pro export dat Dolibarr (s asistenty)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Import dat
    -Module250Desc=Nástroj pro import dat v Dolibarr (s asistenty)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Členové
     Module310Desc=Nadace členové vedení
     Module320Name=RSS Feed
     Module320Desc=Přidat RSS kanál uvnitř obrazovek Dolibarr
    -Module330Name=Záložky
    -Module330Desc=Záložky řízení
    -Module400Name=Projekty/Příležitosti/Vedení
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=WebCalendar
     Module410Desc=WebCalendar integrace
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Platba mezd zaměstnanců
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Půjčka
     Module520Desc=Správa úvěrů
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Dary
     Module700Desc=Darování řízení
     Module770Name=Zpráva výdajů
    -Module770Desc=Management a reklamace vyúčtování výdajů (doprava, jídlo, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Hromadná pošta generování dokumentů
     Module1780Name=Tagy/Kategorie
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Umožňují upravit některá textové pole přes pokročilý editor (na základě CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamické ceny
     Module2200Desc=Povolit použití matematických výrazů pro ceny
     Module2300Name=Naplánované úlohy
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Události / Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API / Webové služby (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Povolit Dolibarr SOAP serveru poskytující služby API
     Module2610Name=API / webové služby REST (server)
     Module2610Desc=Povolit služby API serveru poskytující Dolibarr REST
     Module2660Name=Call WebServices (SOAP klient)
    -Module2660Desc=Povolit webové služby klienta Dolibarr (lze použít, aby se zasadila data / žádosti o externí servery. Dodavatel objednávky podporované jen na chvíli)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Pomocí on-line služby (Gravatar www.gravatar.com) ukázat fotku uživatelů / členů (nalezen s jejich e-maily). Potřebujete přístup k internetu
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP klient
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind konverze možnosti
     Module3100Name=Skype
     Module3100Desc=Přidání tlačítka Skype na uživatele /subjekty/ Kontakty / členy karet
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-společnost
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Webové stránky
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Nechte řízení požadavků
    -Module20000Desc=Deklarovat a dodržovat zaměstnanci opustí požadavky
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Šarže nebo sériové číslo, jíst-by a sell-managementem data o produktech
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Bod prodeje
     Module50100Desc=Bod prodejního modulu (POS).
    +Module50150Name=Prodejní místa
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Účetnictví (pokročilé)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Přímý tisk (bez otevření dokumentů) pomocí poháry IPP rozhraní (tiskárna musí být viditelné ze serveru, a CUPS musí být installe na serveru).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Anketa, průzkum nebo hlasování
    -Module55000Desc=Modul pro tvorbu on-line průzkumů a anket (jako Doodle, šroub, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Okraje
     Module59000Desc=Modul pro správu marže
     Module60000Name=Provize
     Module60000Desc=Modul pro správu provize
    -Module62000Name=Incoterm
    -Module62000Desc=Přidat funkce pro správu Incotermu
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Zdroje
     Module63000Desc=Spravovat zdroje (tiskárny, auta, prostor, ...), pak můžete sdílet na akcích
     Permission11=Přečtěte si zákazníků faktury
    @@ -651,9 +661,9 @@ Permission32=Vytvořit / upravit produktů
     Permission34=Odstranit produkty
     Permission36=Viz / správa skryté produkty
     Permission38=Export produktů
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Vytvořit/upravit projekty (společný projekt a projekty Jsem kontakt). Je také možné vytvořit úkoly a přiřazovat uživatelům projekt a úkoly
    -Permission44=Odstranit projektů (společné projekty, projekt a já jsem kontakt pro)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projekty
     Permission61=Přečtěte intervence
     Permission62=Vytvořit / upravit zásahy
    @@ -686,7 +696,7 @@ Permission109=Odstranit sendings
     Permission111=Přečtěte finančních účtů
     Permission112=Vytvořit / upravit / smazat a porovnat transakce
     Permission113=Nastavení finančních účtů (vytváření, správa kategorií)
    -Permission114=Konsolidace transakce
    +Permission114=Reconcile transactions
     Permission115=Vývozních transakcí, a výpisy z účtů
     Permission116=Převody mezi účty
     Permission117=Správa kontroly dispečinku
    @@ -694,15 +704,15 @@ Permission121=Přečtěte třetí strany v souvislosti s uživateli
     Permission122=Vytvořit / modifikovat třetí strany spojené s uživateli
     Permission125=Odstranění třetí strany v souvislosti s uživateli
     Permission126=Export třetí strany
    -Permission141=Přečtěte si všechny projekty a úkoly (také soukromých záměrů nejsem kontaktovat)
    -Permission142=Vytvořit / upravit všechny projekty a úkoly (také na soukromé záměry nejsem v kontaktu pro)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Smazat všechny projekty a úkoly (také soukromé projekty, pro které nejsem kontakt)
     Permission146=Přečtěte si poskytovatelé
     Permission147=Přečtěte si statistiky
     Permission151=Číst přímé debetní platební příkazy
     Permission152=Vytvořit / upravit inkasní příkazy k úhradě
     Permission153=Odeslat / vysílat přímý debetní platební příkazy
    -Permission154=Záznam Credits / odmítá inkasa platebních příkazů
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Přečtené smlouvy/předplatné
     Permission162=Vytvořit / upravit zakázky / předplatné
     Permission163=Aktivace služby / předplatné smlouvy
    @@ -725,7 +735,7 @@ Permission187=Zavřít dodavatelské objednávky
     Permission188=Zrušit dodavatelských objednávek
     Permission192=Vytvořte linky
     Permission193=Zrušit linky
    -Permission194=Přečtěte si šířku pásma, linky
    +Permission194=Read the bandwidth lines
     Permission202=Vytvořte přípojek ADSL
     Permission203=Objednat připojení objednávky
     Permission204=Objednat spoje
    @@ -750,12 +760,12 @@ Permission244=Viz obsah skrytých kategorií
     Permission251=Přečtěte si další uživatele a skupiny
     PermissionAdvanced251=Přečtěte si další uživatele
     Permission252=Přečtěte oprávnění ostatních uživatelů
    -Permission253=Vytvořit / upravit další uživatele, skupiny a permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Vytvořit / upravit interní / externí uživatele a oprávnění
     Permission254=Vytvořit / upravit externí uživatelé pouze
     Permission255=Upravit ostatním uživatelům heslo
     Permission256=Odstranit nebo zakázat ostatním uživatelům
    -Permission262=Rozšířit přístup ke všem subjektům (nejen třetích stran, které uživatel je prodej zástupce). <BR> neúčelné pro externí uživatele (vždy omezeny na sebe k předkládání žádostí, objednávky, faktury, smlouvy atd.) <BR> neúčelné pro projekty (pouze pravidla týkající se oprávnění projektů, viditelnost a přiřazení záležitostí).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Přečtěte CA
     Permission272=Přečtěte si faktury
     Permission273=Vydání faktury
    @@ -765,7 +775,7 @@ Permission283=Odstranění kontaktů
     Permission286=Export kontaktů
     Permission291=Přečtěte tarify
     Permission292=Nastavení oprávnění na sazby
    -Permission293=Upravit zákazníky tarify
    +Permission293=Modify customers tariffs
     Permission300=Přečtěte čárových kódů
     Permission301=Vytvořit / upravit čárových kódů
     Permission302=Odstranit čárových kódů
    @@ -787,11 +797,9 @@ Permission401=Přečtěte slevy
     Permission402=Vytvořit / upravit slevy
     Permission403=Ověřit slevy
     Permission404=Odstranit slevy
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Vytvořit/upravit výplaty mezd
    -Permission514=Smazat platy
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export výplat
     Permission520=Přečtěte si Úvěry
     Permission522=Vytvořit/upravit úvěry
    @@ -844,8 +852,8 @@ Permission1251=Spustit Hmotné dovozy externích dat do databáze (načítání
     Permission1321=Export zákazníků faktury, atributy a platby
     Permission1322=Znovu otevřít placené účet
     Permission1421=Export objednávek zákazníků a atributy
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Smazat žádosti o dovolenou
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=číst zdroje
     Permission63002=Vytvořit / upravit zdroje
     Permission63003=Odstranit zdroje
     Permission63004=Propojení zdroje s Plánem akcí
    -DictionaryCompanyType=Druhy subjektů
    -DictionaryCompanyJuridicalType=Právní formy subjektů
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Potencionální úroveň cílů
     DictionaryCanton=Stát/Okres
     DictionaryRegion=Regiony
    @@ -894,7 +902,7 @@ DictionaryVAT=Sazby DPH nebo daň z prodeje
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Platební podmínky
     DictionaryPaymentModes=Platební režimy
    -DictionaryTypeContact=Typy kontaktů/adres
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Formáty papíru
    @@ -908,47 +916,47 @@ DictionarySource=Původ nabídky/objednávky
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Modely pro účetní osnovy
     DictionaryAccountancyJournal=účetní deníky
    -DictionaryEMailTemplates=E-maily šablony
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Jednotky
     DictionaryProspectStatus=stav prospekce
    -DictionaryHolidayTypes=Typy listů
    -DictionaryOpportunityStatus=Stav příležitost k projektu / olovo
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Nastavení uloženo
     SetupNotSaved=Setup not saved
     BackToModuleList=Zpět na seznam modulů
    -BackToDictionaryList=Zpět k seznamu slovníků
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=DPH řízení
    -VATIsUsedDesc=Ve výchozím nastavení při vytváření vyhlídky, faktury, objednávky atd sazba DPH se řídí pravidlem aktivní standardní:. <br> Je-li prodávající nepodléhá dani z přidané hodnoty, pak výchozí DPH na 0. Konec vlády <br> li (prodejní země = kupovat zemi), pak se DPH standardně rovná DPH výrobku v prodejním zemi. Konec pravidla. <br> Pokud prodávající a kupující jsou oba v Evropském společenství a zboží přepravní zařízení (auto, loď, letadlo), výchozí DPH je 0 (DPH by měla být hradí kupující na customoffice své země, a nikoli na prodávající). Konec pravidla. <br> Pokud prodávající a kupující jsou oba v Evropském společenství a kupující není společnost, pak se DPH prodlením k DPH z prodaného produktu. Konec pravidla. <br> Pokud prodávající a kupující jsou oba v Evropském společenství a kupujícím je společnost, pak je daň 0 ve výchozím nastavení. Konec pravidla. <br> V každém čiš případě navrhované default je DPH = 0. Konec pravidla.
    -VATIsNotUsedDesc=Ve výchozím nastavení je navrhovaná DPH 0, který lze použít v případech, jako je sdružení jednotlivců ou malých podniků.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rychlost
     LocalTax1IsNotUsed=Nepoužívejte druhá daň
    -LocalTax1IsUsedDesc=Použijte druhý typ daně (kromě DPH)
    -LocalTax1IsNotUsedDesc=Nepoužívejte jiný typ daně (kromě DPH)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Druhý typ daně
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Nepoužívejte třetí daň
    -LocalTax2IsUsedDesc=Použijte třetí typ daně (kromě DPH)
    -LocalTax2IsNotUsedDesc=Nepoužívejte jiný typ daně (kromě DPH)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Třetí druh daně
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE řízení
    -LocalTax1IsUsedDescES= RE sazba ve výchozím nastavení při vytváření vyhlídky, faktury, objednávky atd. sledovat aktivní standardní pravidlo: <br> Pokud te Kupující není vystaven RE, RE standardně = 0. Konec vlády. <br> Pokud kupující vystaven RE RE pak ve výchozím nastavení. Konec vlády. <br>
    -LocalTax1IsNotUsedDescES= Ve výchozím nastavení je navrhovaná RE je 0. Konec vlády.
    -LocalTax1IsUsedExampleES= Ve Španělsku jsou profesionálové s výhradou některých specifických částí španělského IAE.
    -LocalTax1IsNotUsedExampleES= Ve Španělsku jsou profesionální a společnosti a za určitých částí španělského IAE.
    -LocalTax2ManagementES= IRPF řízení
    -LocalTax2IsUsedDescES= RE sazba ve výchozím nastavení při vytváření vyhlídky, faktury, objednávky atd. sledovat aktivní standardní pravidlo: <br> Pokud prodávající není vystaven IRPF, pak IRPF standardně = 0. Konec vlády. <br> Je-li prodávající vystaven IRPF pak IRPF ve výchozím nastavení. Konec vlády. <br>
    -LocalTax2IsNotUsedDescES= Ve výchozím nastavení je navrhovaná IRPF je 0. Konec vlády.
    -LocalTax2IsUsedExampleES= Ve Španělsku, na volné noze a nezávislí odborníci, kteří poskytují služby a firmy, kteří se rozhodli daňového systému modulů.
    -LocalTax2IsNotUsedExampleES= Ve Španělsku jsou bussines, které nejsou předmětem daňového systému modulů.
    +LocalTax1ManagementES=RE řízení
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Ve výchozím nastavení je navrhovaná RE je 0. Konec vlády.
    +LocalTax1IsUsedExampleES=Ve Španělsku jsou profesionálové s výhradou některých specifických částí španělského IAE.
    +LocalTax1IsNotUsedExampleES=Ve Španělsku jsou profesionální a společnosti a za určitých částí španělského IAE.
    +LocalTax2ManagementES=IRPF řízení
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Ve výchozím nastavení je navrhovaná IRPF je 0. Konec vlády.
    +LocalTax2IsUsedExampleES=Ve Španělsku, na volné noze a nezávislí odborníci, kteří poskytují služby a firmy, kteří se rozhodli daňového systému modulů.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Zprávy o místních daních
     CalcLocaltax1=Prodej - Nákupy
     CalcLocaltax1Desc=Místní zprávy Daně jsou počítány s rozdílem mezi prodejem localtaxes a localtaxes nákupů
    @@ -958,7 +966,9 @@ CalcLocaltax3=Odbyt
     CalcLocaltax3Desc=Místní taxy zprávy jsou celkové prodeje localtaxes
     LabelUsedByDefault=Label používá ve výchozím nastavení, pokud není překlad lze nalézt kód
     LabelOnDocuments=Štítek na dokumenty
    -NbOfDays=Nb dní
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Na konci měsíce
     CurrentNext=Aktuální / Next
     Offset=Ofset
    @@ -984,7 +994,7 @@ DatabaseUser=Databáze uživatel
     DatabasePassword=Databáze heslo
     Tables=Tabulky
     TableName=Název tabulky
    -NbOfRecord=Nb záznamů
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Typ ovladače
     SummarySystem=Systém souhrn informací
    @@ -996,7 +1006,7 @@ Skin=Skin téma
     DefaultSkin=Default skin téma
     MaxSizeList=Maximální délka seznamu
     DefaultMaxSizeList=Výchozí maximální délka pro seznamy
    -DefaultMaxSizeShortList=Výchozí maximální délka pro krátké seznamy (tj. V kartě zákazníka)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Zpráva dne
     MessageLogin=Přihlašovací stránka zprávu
     LoginPage=přihlašovací stránka
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanentní vyhledávací formulář na levém menu
     DefaultLanguage=Výchozí jazyk používat (kód jazyka)
     EnableMultilangInterface=Povolit vícejazyčné rozhraní
     EnableShowLogo=Zobrazit logo na levém menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Název
     CompanyAddress=Adresa
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Majitel %s bankovních účtů
     BankModuleNotActive=Účty v bankách modul není povolen,
     ShowBugTrackLink=Ukázat odkaz "<strong> %s </ strong>"
     Alerts=Upozornění
    -DelaysOfToleranceBeforeWarning=Tolerance zpoždění před varování
    -DelaysOfToleranceDesc=Tato obrazovka umožňuje definovat tolerovat zpoždění před upozornění je hlášen na obrazovce s %s Piktogram pro každý pozdní prvek.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Tolerance zpoždění (ve dnech) před záznamem o plánovaných akcích (Agenda akce) dosud nerealizovaných
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolerance zpoždění (ve dnech) před záznam o projektu není uzavřeno v čase
    -Delays_MAIN_DELAY_TASKS_TODO=Zpozdit toleranci (ve dnech) před záznamem o plánovaných úkolů (projektové úkoly) dosud nebyly dokončeny
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolerance zpoždění (ve dnech) před záznamem na objednávkách dosud nezpracovaných
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Zpoždění tolerance (ve dnech) před záznam o návrzích zavřete
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Zpoždění tolerance (ve dnech) před záznam o návrzích účtovány
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance zpoždění (ve dnech) před záznam o službách aktivovat
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance zpoždění (ve dnech) před záznam o prošlých služeb
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance zpoždění (ve dnech) před záznam o neuhrazených dodavatelských faktur
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Toleranci zpoždění (ve dnech) před záznam o nezaplacených faktur zákazníka
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance zpoždění (ve dnech) před probíhajícím záznamu o bankovním smíření
    -Delays_MAIN_DELAY_MEMBERS=Tolerance zpoždění (ve dnech) před záznam o zpoždění členského poplatku
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance zpoždění (ve dnech) před pohotovosti pro kontrolu vklad dělat
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance zpoždění (ve dnech) před záznamem pro výkazů o výdajích schválit
    -SetupDescription1=Oblast nastavení je pro počáteční nastavení parametrů ještě před začátkem užívání Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Ostatní položky menu spravovat volitelné parametry.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Události bezpečnostní audit
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=o Dolibarr
     InfoBrowser=O prohlížeči
     InfoOS=o OS
    @@ -1056,20 +1066,20 @@ BrowserName=Název prohlížeče
     BrowserOS=Prohlížeč OS
     ListOfSecurityEvents=Seznam Dolibarr událostí zabezpečení
     SecurityEventsPurged=Bezpečnostní akce očistil
    -LogEventDesc=Můžete povolit zde protokolování událostí Dolibarr zabezpečení. Správci mohou potom vidět jeho obsah pomocí <b>nástrojů systému</b> menu <b>- audit.</b> Pozor, tato funkce může spotřebovat velké množství dat v databázi.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=Systémové informace je různé technické informace získáte v režimu pouze pro čtení a viditelné pouze pro správce.
     SystemAreaForAdminOnly=Tato oblast je k dispozici pro správce uživatele. Žádný z Dolibarr oprávnění může snížit tento limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Můžete si vybrat každý parametr týkající se vzhledu Dolibarr a cítit se zde
     AvailableModules=Available app/modules
     ToActivateModule=Pro aktivaci modulů, přejděte na nastavení prostoru (Domů-&gt; Nastavení-&gt; Modules).
     SessionTimeOut=Time out na zasedání
    -SessionExplanation=Toto číslo zaručeno, že relace nikdy nevyprší před tímto zpožděním, pokud relace čistič se provádí vnitřní čištění relace PHP (a nic jiného). Vnitřní PHP zasedání čistší není zárukou, že relace vyprší právě po této doby. Jeho platnost skončí poté, co toto zpoždění, a když relace čistič běžel, takže každý <b>%s / %s</b> přístup, ale pouze v případě přístupu ze strany jiných relacích. <br> Poznámka: na některých serverech s vnějším mechanismem relace čištění (cron pod Debian, Ubuntu ...), může být zničena relace po dobu definovanou výchozí <strong>session.gc_maxlifetime,</strong> bez ohledu na to, co je zadaná hodnota.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Dostupné spouštěče
    -TriggersDesc=Triggery jsou soubory, které se změní chování Dolibarr workflow jednou zkopírován do adresáře <b>htdocs / jádro / spouštěče.</b> Uvědomili si nové akce, aktivní na akcích Dolibarr (nová společnost stvoření, faktura validace, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Trigger v tomto souboru jsou <b>zakázána-NoRun</b> přípona ve svém názvu.
     TriggerDisabledAsModuleDisabled=Trigger v tomto souboru jsou zakázány jako modul <b>%s</b> je zakázáno.
     TriggerAlwaysActive=Trigger v tomto souboru jsou vždy aktivní, ať už jsou aktivované Dolibarr moduly.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Vložit všechny referenční data. Můžete přidat své hodnoty
     ConstDesc=Na této stránce můžete upravovat všechny ostatní parametry které nejsou k dispozici v předchozích stránkách. Ty jsou většinou vyhrazeny parametry pro vývojáře a pokročilé řešení problémů. Pro seznam možnosti <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site-otevře v novém window" target="_blank"> kontrole zde </ a>.
     MiscellaneousDesc=Všechny ostatní parametry spojené s bezpečností definujete zde.
     LimitsSetup=Limity / Přesné nastavení
    -LimitsDesc=Můžete definovat limity, upřesnění a optimalizace používané Dolibarr zde
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max desetinná pro jednotkových cen
     MAIN_MAX_DECIMALS_TOT=Max desetinná místa pro celkové ceny
     MAIN_MAX_DECIMALS_SHOWN=Max desetinná pro ceny zobrazeny na obrazovce (Přidat <b>...</b> po této řady, chcete-li vidět <b>...</b> když je číslo zkrácena při zobrazení na obrazovce)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Krok zaokrouhlování (pro země, kde se zaokrouhlení pr
     UnitPriceOfProduct=Čistá jednotková cena produktu
     TotalPriceAfterRounding=Celková cena (bez DPH / s DPH / s DPH) po zaokrouhlení
     ParameterActiveForNextInputOnly=Parametr efektivní pro další vstup pouze
    -NoEventOrNoAuditSetup=Žádná událost zabezpečení byl zaznamenán ještě. To může být normální, pokud audit nebyl povolen &quot;Nastavení - Zabezpečení - auditu&quot; stránky.
    -NoEventFoundWithCriteria=Žádná událost zabezpečení byl nalezen na těchto vyhledávacích kritérii.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Podívejte se na místní sendmail nastavení
     BackupDesc=Chcete-li provést kompletní zálohu Dolibarr, musíte:
     BackupDesc2=Uložte obsah adresáře dokumentů (<b> %s </ b>), který obsahuje všechny nahrané a generované soubory (tedy obsahuje všechny soubory výpisu generovaných v kroku 1).
    -BackupDesc3=Uložte obsah databáze <b>(%s),</b> do souboru výpisu. K tomu můžete použít následující asistenta.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archivní adresář by měl být skladován na bezpečném místě.
     BackupDescY=Vygenerovaný soubor výpisu by měl být skladován na bezpečném místě.
    -BackupPHPWarning=Záloha nemůže být garantováno s touto metodou. Preferuji předchozí
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Chcete-li obnovit zálohu Dolibarr, musíte:
    -RestoreDesc2=Obnovit archivní soubor (soubor zip například) z adresáře dokumentů extrahovat strom souborů v dokumentech adresáři nového zařízení Dolibarr nebo do tohoto aktuálních dokumentech directoy <b>(%s).</b>
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Obnovení dat, ze záložního souboru výpisu, do databáze nové instalace Dolibarr nebo do databáze tohoto stávající instalace <b>(%s).</b> Varování, po obnovení je dokončeno, musíte použít login / heslo, které existovaly, když byla provedena záloha, se znovu připojit. Chcete-li obnovit záložní databázi do této stávající instalace, můžete sledovat tento asistenta.
     RestoreMySQL=MySQL import
     ForcedToByAModule= Toto pravidlo je nucen <b>%s</b> aktivovaným modulem
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Je nutné spustit tento příka
     YourPHPDoesNotHaveSSLSupport=SSL funkce není k dispozici ve vašem PHP
     DownloadMoreSkins=Další skiny ke stažení
     SimpleNumRefModelDesc=Vrací referenční číslo ve formátu nnnn-%syymm kde yy je rok, MM je měsíc a nnnn je sekvence bez otvoru a bez resetu
    -ShowProfIdInAddress=Zobrazit professionnal id s adresami na dokumenty
    -ShowVATIntaInAddress=Skrýt DPH Intra num s adresami na dokumentech
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Částečný překlad
    -MAIN_DISABLE_METEO=Zakázat meteo názor
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Otestujte přihlásit do API
    -ProxyDesc=Některé funkce Dolibarr musí mít přístup na internet k práci. Definujte zde parametry pro toto. Pokud je server Dolibarr je za proxy serverem, tyto parametry Dolibarr říká, jak se k internetu přes něj.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Externí přístup
     MAIN_PROXY_USE=Použití proxy serveru (jinak přímý přístup k internetu)
     MAIN_PROXY_HOST=Jméno / adresa proxy serveru
     MAIN_PROXY_PORT=Port proxy serveru
     MAIN_PROXY_USER=Přihlásit se použít proxy server
     MAIN_PROXY_PASS=Heslo používat proxy server
    -DefineHereComplementaryAttributes=Definujte zde všechny atributy, které ještě nejsou k dispozici ve výchozím nastavení, a že chcete být podporovány %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Doplňkové atributy
     ExtraFieldsLines=Doplňkové atributy (linky)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Doplňkové atributy (objednávka linky)
     ExtraFieldsSupplierInvoicesLines=Doplňkové atributy (linky faktura)
     ExtraFieldsThirdParties=Doplňkové atributy (thirdparty)
    -ExtraFieldsContacts=Doplňkové atributy (kontakt / adresa)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Doplňkové atributy (člen)
     ExtraFieldsMemberType=Doplňkové atributy (člen typ)
     ExtraFieldsCustomerInvoices=Doplňkové atributy (faktury)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=pouze alfanumerické znaky s malými písmeny b
     SendmailOptionNotComplete=Upozornění na některých operačních systémech Linux, posílat e-maily z vašeho e-mailu, musíte sendmail provedení instalace obsahuje volbu-BA (parametr mail.force_extra_parameters do souboru php.ini). Pokud někteří příjemci nikdy přijímat e-maily, zkuste upravit tento parametr společně s PHP mail.force_extra_parameters =-BA).
     PathToDocuments=Cesta k dokumentům
     PathDirectory=Adresář
    -SendmailOptionMayHurtBuggedMTA=Funkce se odesílat e-maily pomocí metody "PHP mail direct" bude generovat e-mailové zprávy, které by mohly být není správně analyzovat některými dostávají poštovní servery. Výsledkem je, že některé maily nelze číst lidé hostovaných těmito platformami odposloucháván. To je případ některých poskytovatelů služeb Internetu (Ex: Orange ve Francii). To není problém do Dolibarr ani do PHP, ale na přijímání e-mailový server. Můžete však přidat možnost MAIN_FIX_FOR_BUGGED_MTA do 1 do nastavení - jiné upravovat Dolibarr k tomu nedošlo. Nicméně, může dojít k problému s jinými servery, které respektují přísně standard SMTP. Jiné řešení (doporučeno), je použít metodu "SMTP socket knihovnu", které nemá žádné nevýhody.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Nastavení překladu
     TranslationKeySearch=Hledat klíč překlad nebo řetězec
     TranslationOverwriteKey=Přepsat překlad řetězec
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=Můžete také přepsat řetězce čerpacích následující tabulky. Vyberte si svůj jazyk „%s“ rozbalené, vložte klíč řetězec překlad do „%s“ a svým novým překladem do „%s“
    -TranslationOverwriteDesc2=Můžete použít kartu další, které vám pomohou vědět, klíč překlad používat
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=překlad string
     CurrentTranslationString=Aktuální překladový řetězec
     WarningAtLeastKeyOrTranslationRequired=A kritéria vyhledávání je zapotřebí alespoň na klíče nebo překladu řetězce
     NewTranslationStringToShow=Nový překlad řetězec ukázat
     OriginalValueWas=Původní překlad je přepsán. Původní hodnota byla: <br> %s
    -TransKeyWithoutOriginalValue=nucen vám nový překlad pro klíč překladu ‚<strong> %s </ strong>‘, která nemá v žádném jazykové soubory nejsou existuje
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Musíte povolit alespoň jeden modul
    -ClassNotFoundIntoPathWarning=Třída %s nenašli cestu do PHP
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Ano v létě
    -OnlyFollowingModulesAreOpenedToExternalUsers=Všimněte si, pouze tyto moduly jsou otevřeny pro externí uživatele (ať mají povolení těchto uživatelů) a pouze tehdy, pokud bylo uděleno oprávnění:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Úložiště relace šifrována Suhosin
     ConditionIsCurrently=Podmínkou je v současné době %s
    -YouUseBestDriver=Pomocí ovladače %s, že je nejlepší řidič současné době k dispozici.
    -YouDoNotUseBestDriver=Můžete použít disk %s, ale ovladač %s je doporučen.
    -NbOfProductIsLowerThanNoPb=Máte jen %s produktů / služeb do databáze. To však není nutné žádné zvláštní optimalizace.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Optimalizace pro vyhledávače
    -YouHaveXProductUseSearchOptim=Máte %s produkt do databáze. Měli byste přidat konstantní PRODUCT_DONOTSEARCH_ANYWHERE do 1 do Home-Nastavení-Ostatní, můžete omezit vyhledávání na začátku řetězce, která umožňují pro databáze používat index, a vy byste měli dostat okamžitou odpověď.
    -BrowserIsOK=Používáte %s webovém prohlížeči. Tento prohlížeč je v pořádku pro bezpečnost a výkon.
    -BrowserIsKO=Používáte %s webovém prohlížeči. Tento prohlížeč je známo, že špatná volba pro bezpečnost, výkon a spolehlivost. Jsme Doporučuji vám používat Firefox, Chrome, Operu nebo Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=Xdebug je načten.
     XCacheInstalled=XCache načten.
    -AddRefInList=Displej zákazník / dodavatel ref do seznamu (vyberte seznam nebo ComboBox) a většina z hypertextový odkaz. Třetí strany budou zobrazí s názvem "CC12345 - SC45678 - Velké firmy coorp", namísto "The velké společnosti coorp".
    -AskForPreferredShippingMethod=Požádat o přednostní způsob odeslání pro subjekty
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Editace položky %s
     FillThisOnlyIfRequired=Příklad: 2 (vyplnit pouze v případě časové pásmo kompenzovat problémy jsou zkušení)
     GetBarCode=Získat čárový kód
     ##### Module password generation
     PasswordGenerationStandard=Zpět heslo generované podle interního algoritmu Dolibarr: 8 znaků obsahující sdílené čísla a znaky malými písmeny.
    -PasswordGenerationNone=Nenaznačují žádnou vygenerované heslo. Heslo musí být zadány ručně.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Vrátit hesla dle Vašeho osobně definované konfiguraci.
     SetupPerso=Podle konfigurace
     PasswordPatternDesc=Popis popisu hesla
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail nutné vytvořit nového uživatele
     HRMSetup=setup HRM Modul
     ##### Company setup #####
     CompanySetup=Firmy modul nastavení
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=E-maily oznámení funkce vám umožní tiše odesílat automatické poštu, pro některé události Dolibarr. Cíle oznámení mohou být definovány:
     NotificationsDescUser=* Uživatelé na jeden uživatel v čase.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* Nebo nastavením globálních cílových e-mailů na stránce nastavení modulu.
    -ModelModules=Dokumenty šablony
    -DocumentModelOdt=Generování dokumentů z OpenDocuments šablon (. ODT nebo ODS. Soubory OpenOffice, KOffice, TextEdit, ...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Vodoznak na návrhu dokumentu
     JSOnPaimentBill=Aktivovat funkci pro automatické vyplňování platebních řádků na formuláři platby
    -CompanyIdProfChecker=Pravidla pro profesionální IDs
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Musí být jedinečný?
    -MustBeMandatory=Povinné k vytvoření subjektu?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Povinné ověřování faktur?
     TechnicalServicesProvided=Technické služby poskytované
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Export odkaz na <b>%s</b> formátu je k dispozici na následujícím odkazu: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Export odkaz na <b>%s</b> formátu je k dispozici na nás
     BillsSetup=Faktury modul nastavení
     BillsNumberingModule=Faktury a dobropisy číslování modelu
     BillsPDFModules=Fakturační doklady modely
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Vzory platebních dokumentů
     CreditNote=Dobropis
     CreditNotes=Dobropisy
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Správa Přihlášení pro každého člena
     AdherentMailRequired=EMail nutné vytvořit nového člena
     MemberSendInformationByMailByDefault=Zaškrtávací políčko poslat mailem potvrzení členům (validace nebo nové předplatné) je ve výchozím nastavení
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=Nastavení LDAP
     LDAPGlobalParameters=Globální parametry
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Testování vyhledávání LDAP
     LDAPSynchroOK=Synchronizace zkouška úspěšná
     LDAPSynchroKO=Nepodařilo synchronizace testu
    -LDAPSynchroKOMayBePermissions=Nepodařilo synchronizace test. Zkontrolujte, zda je přípojka na server je správně nakonfigurován a umožňuje LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP připojení k LDAP serveru (Server úspěšných = %s, %s port =)
     LDAPTCPConnectKO=TCP připojení k LDAP serveru selhalo (Server = %s, Port = %s)
    -LDAPBindOK=Připojení/Autentifikace k LDAP serveru úspěšná (Server =%s, Port =%s Admin =%s, Heslo =%s)
    -LDAPBindKO=Připojit / Authentificate k LDAP serveru selhalo (Server = %s, Port = %s, Admin = %s, Password = %s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server je nakonfigurován pro verzi 3
     LDAPSetupForVersion2=LDAP server je nakonfigurován pro verzi 2
     LDAPDolibarrMapping=Dolibarr mapování
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Přihlášení (samba, activedirectory)
     LDAPFieldLoginSambaExample=Příklad: sAMAccountName
     LDAPFieldFullname=Celé jméno
     LDAPFieldFullnameExample=Příklad: cn
    -LDAPFieldPasswordNotCrypted=Heslo není šifrovaných
    -LDAPFieldPasswordCrypted=Heslo šifrovaných
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Příklad: userPassword
     LDAPFieldCommonNameExample=Příklad: cn
     LDAPFieldName=Název
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Ukázkové hodnoty jsou určeny pro <b>OpenLDAP</b> s následujícími načtených schémat: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Pokud používáte thoose hodnoty a OpenLDAP, upravovat vaše LDAP konfigurační soubor <b>slapd.conf</b> mít všechny thoose schémata načíst.
     ForANonAnonymousAccess=Pro ověřený přístup (pro přístup pro zápis například)
     PerfDolibarr=Výkon Nastavení / optimalizace zpráva
    -YouMayFindPerfAdviceHere=Najdete na této stránce nějaké kontroly nebo rad týkajících se výkonnosti.
    -NotInstalled=Ne, takľe není váš server zpomalit tím.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Aplikačních mezipaměti
     MemcachedNotAvailable=Žádné applicative mezipaměti nalezen. Můžete zvýšit výkon instalací Memcached mezipaměti serveru a modul schopný použít tento mezipaměti serveru. <br> Více informací zde <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a> . <br> Všimněte si, že spousta poskytovatele web hosting neposkytuje takovou mezipaměti serveru.
     MemcachedModuleAvailableButNotSetup=Modul Memcached pro aplikační mezipaměť nalezen, ale nastavení modulu není kompletní.
     MemcachedAvailableAndSetup=Modul Memcached určené k použití Memcached serveru je povoleno.
     OPCodeCache=Opcode mezipaměti
    -NoOPCodeCacheFound=Žádné opcode nalezená keš. Může být použít další opcode paměť než XCache nebo eAccelerator (dobré), může být, že nemáte opcode cache (velmi špatně).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache pro statické zdroje (css, img, javascript)
     FilesOfTypeCached=Soubory typu %s jsou ukládány do mezipaměti serveru HTTP
     FilesOfTypeNotCached=Soubory typu %s nejsou ukládány do mezipaměti serveru HTTP
     FilesOfTypeCompressed=Soubory typu %s jsou zkomprimovány serveru HTTP
     FilesOfTypeNotCompressed=Soubory typu %s nekomprimuje serveru HTTP
     CacheByServer=Cache serverem
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache v prohlížeči
     CompressionOfResources=Komprese odpovědí HTTP
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Taková automatická detekce není možné u současných prohlížečů
    -DefaultValuesDesc=Můžete definovat / sílu zde výchozí hodnotu, kterou chcete získat, když si vytvořit nový rekord, a / nebo défaut filtry nebo pořadí řazení, když váš seznam záznamů.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Výchozí vyhledávací filtry
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Produkty modul nastavení
     ServiceSetup=Služby modul nastavení
     ProductServiceSetup=Produkty a služby moduly nastavení
     NumberOfProductShowInSelect=Maximální počet výrobků ve komba vyberte seznamy (0 = bez omezení)
    -ViewProductDescInFormAbility=Vizualizace popisy produktů ve formách (jinak jako vyskakovací bublině)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Aktivovat v servisním / Attached kartě výrobku Soubory možnost sloučit produkt PDF dokument k návrhu PDF Azur-li výrobek / služba je v návrhu
    -ViewProductDescInThirdpartyLanguageAbility=Vizualizace popisů výrobků v jazyce subjektu
    -UseSearchToSelectProductTooltip=Také pokud máte velký počet produktů (> 100 000), můžete zvýšit rychlost nastavením konstantního PRODUCT_DONOTSEARCH_ANYWHERE na 1 v položce Setup-> Other. Hledání bude omezeno na začátek řetězce.
    -UseSearchToSelectProduct=Počkat stisknutí klávesy před vložením obsahu seznamu produktů combo (To může zvýšit výkon, pokud máte velké množství výrobků, ale je to méně pohodlné)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Výchozí typ čárového kódu použít pro produkty
     SetDefaultBarcodeTypeThirdParties=Výchozí typ čárového kódu použít k třetím osobám
     UseUnits=Vymezují měrnou jednotku pro Množství v průběhu objednávky, návrh nebo faktura linky edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Odeslání Nastavení modulu
     SendingsReceiptModel=Odeslání stvrzenky modelu
     SendingsNumberingModules=Sendings číslování moduly
     SendingsAbility=Podpora zásilka listy pro dodávky zákazníkům
    -NoNeedForDeliveryReceipts=Ve většině případů, dodacích listů jsou používány i jako listů pro dodávky zákazníkům (seznam produktů pro odeslání) a listů, které jsou přijímány a podepsané zákazníkem. Takže dodávky produktů příjmy je duplicitní funkce a je zřídka aktivován.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Volný text o přepravě
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Produkty dodávky příjem číslování modul
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Rozšířené editor
     ActivateFCKeditor=Aktivace pokročilé editor pro:
     FCKeditorForCompany=WYSIWIG vytvoření / edici prvky popisu a poznámka (s výjimkou výrobků / služeb)
     FCKeditorForProduct=WYSIWIG vytvoření / edice produktů / služeb popis a poznámky
    -FCKeditorForProductDetails=WYSIWIG tvorba / vydání z výrobků Detaily linky pro všechny subjekty (návrhy, objednávky, faktury, atd ...). <font class="warning">Upozornění: Použití této možnosti pro tento případ je vážně nedoporučuje, protože to může způsobit problémy se speciálními znaky a formátování stránky při vytváření PDF soubory.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG vytvoření / edice pro hromadné eMailings (Nástroje-&gt; e-mailem)
     FCKeditorForUserSignature=WYSIWIG vytvoření / edice uživatelského podpisu
     FCKeditorForMail=Vytvoření WYSIWIG / edition pro veškerou poštu (s výjimkou Nástroje-> e-mailem)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Připojení úspěšné, ale databáze nevypadá, že databáze OsCommerce (Klíčové %s nenašli v tabulce %s).
    -OSCommerceTestOk=Připojení k serveru &quot;%s&quot; na databázi &quot;%s&quot; s úspěšní uživatel &quot;%s.
    -OSCommerceTestKo1=Připojení k &quot;%s&quot; serveru úspěšná, ale databáze &quot;%s&quot; by nebylo možno dosáhnout.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Připojení k serveru "% s" na databázi '% s' s uživatelem '% s' je úspěšné.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Připojení k serveru &quot;%s&quot; s uživatelem &quot;%s 'se nezdařilo.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=Pokud použijete místě prodeje (POS modulu modulu stanoveného ve výchozím nebo jiným externím modulu), může být toto nastavení ignorováno vaší místě prodeje modulu. Most na prodejních místech moduly jsou navrženy tak, aby vytvořit ihned fakturu a snížit zásoby standardně bez ohledu jsou možnosti zde. Takže, pokud potřebujete mít či nemít pokles zásoby při registraci prodat ze svého Point of Sale, zkontrolujte také váš POS modul nastavit.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu smazán
     Menus=Nabídky
    @@ -1548,7 +1562,7 @@ DetailRight=Podmínka pro zobrazení neoprávněným šedé menu
     DetailLangs=Lang název souboru pro překlad kódu štítek
     DetailUser=Interní / Externí / All
     Target=Cíl
    -DetailTarget=Cíl pro odkazy (_blank nahoře otevře nové okno)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Úroveň (-1: hlavní menu, 0: header menu&gt; 0 Menu a dílčí menu)
     ModifMenu=Menu změna
     DeleteMenu=Smazat položku nabídky
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=DPH je splatná: <br> - Na dobírku za zboží (používám
     OptionVatDebitOptionDesc=DPH je splatná: <br> - Na dobírku za zboží (používáme data vystavení faktury) <br> - Na fakturu (debetní) na služby
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Čas DPH exigibility standardně dle zvolené varianty:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Na dobírku
     OnPayment=Na zaplacení
     OnInvoice=Na faktuře
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Nákup účet. kód
     AgendaSetup=Akce a agenda Nastavení modulu
     PasswordTogetVCalExport=Klíč povolit export odkaz
     PastDelayVCalExport=Neexportovat události starší než
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Nastaví automaticky tuto výchozí hodnotu pro typ akce do akce vytvářet formuláře
    -AGENDA_DEFAULT_FILTER_TYPE=Nastavit automaticky tento typ události do vyhledávacího filtru pohledu agendy
    -AGENDA_DEFAULT_FILTER_STATUS=Nastavit automaticky tento stav pro události do vyhledávacího filtru pohledu agendy
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Karta, kterou chcete otevřít ve výchozím nastavení při výběru v menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Povolit zvukové upozornění
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Klikněte pro Dial Nastavení modulu
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=Tento modul umožňuje kliknutí na telefonní číslo. Kliknutím na tuto ikonu bude volat, aby váš telefon pro volání na telefonní číslo. Toho lze využít k volání call centra systému z Dolibarr které mohou volat na telefonní číslo SIP systému, například.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Na telefonních číslech použijte pouze odkaz "tel:"
    -ClickToDialUseTelLinkDesc=Tuto metodu použijte, pokud uživatelé mají softwarový telefon nebo softwarové rozhraní nainstalován na stejném počítači, než prohlížeče, a volal, když kliknete na odkaz ve vašem prohlížeči, které začínají „tel“. Pokud potřebujete komplexní řešení serveru (bez nutnosti lokální instalace softwaru), musíte toto nastavit na „Ne“ a vyplňte následující pole.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Bod prodeje
     CashDeskSetup=Místě prodeje modulu nastavení
    -CashDeskThirdPartyForSell=Výchozí obecná třetí strana použitá pro prodej
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Výchozí účet použít pro příjem plateb v hotovosti
     CashDeskBankAccountForCheque= Výchozí účet použít pro příjem plateb šekem
     CashDeskBankAccountForCB= Výchozí účet použít pro příjem plateb prostřednictvím kreditní karty
    -CashDeskDoNotDecreaseStock=Zakážete pokles akcií, pokud je prodej uskutečněn z prodejního místa (pokud je to "ne", u každého prodeje provedeného z POS se sníží akcie, ať už je nastavena volba do modulu Akcie).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Vynutit a omezit sklad používat pro pokles zásob
    -StockDecreaseForPointOfSaleDisabled=Sklad pokles od Point of Sale zakázán
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Sklad pokles POS není kompatibilní s řízením šarží
    -CashDeskYouDidNotDisableStockDecease=Jste nezakázali nutnosti snížení při provádění sell od Point of Sale. Takže je zapotřebí sklad.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Záložka Nastavení modulu
    -BookmarkDesc=Tento modul umožňuje spravovat záložky. Můžete také přidat zástupce pro všechny Dolibarr stránky nebo externale webových stránek na vašem levém menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximální počet záložek zobrazí v levém menu
     ##### WebServices #####
     WebServicesSetup=Webservices modul nastavení
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Zkontrolujte, zda příjmy číslování modul
     MultiCompanySetup=Společnost Multi-modul nastavení
     ##### Suppliers #####
     SuppliersSetup=Dodavatel modul nastavení
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Dodavatelských faktur číslování modelů
     IfSetToYesDontForgetPermission=Pokud je nastaveno na ano, nezapomeňte poskytnout oprávnění skupiny nebo uživatele povolených pro druhou schválení
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Projekt modul nastavení
     ProjectsModelModule=Projekt zprávy Vzor dokladu
     TasksNumberingModules=Úkoly číslování modul
     TaskModelModule=Úkoly zprávy Vzor dokladu
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=účetní období
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Můžete najít možnosti
     ListOfNotificationsPerUser=Seznam oznámení na uživatele *
     ListOfNotificationsPerUserOrContact=Seznam oznámení na jednoho uživatele * nebo na kontakt **
     ListOfFixedNotifications=Seznam pevných oznámení
    -GoOntoUserCardToAddMore=Přejít na záložku „oznámení“ o uživateli přidat nebo odebrat oznámení pro uživatele
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Přejít na záložku „Oznámení“ třetí strany přidat nebo odebrat oznámení pro kontakty / adresy
     Threshold=Práh
     BackupDumpWizard=Průvodce vybudovat záložní databázi soubor s výpisem
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Instalace externí modul z aplikace by
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Označte řádky tabulky, když tah myš vynechá
     HighlightLinesColor=Zvýrazněte barvu čáry, když myší prochází (držte prázdné, aby nebylo zvýrazněno)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Barva odkazů
     PressF5AfterChangingThis=Stisknutím klávesy CTRL + F5 na klávesnici nebo vymazat mezipaměť prohlížeče Po změně této hodnoty, aby bylo účinné
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=barva pozadí pro sudé řádky tabulky
     MinimumNoticePeriod=Minimální výpovědní lhůta (Vaše žádost dovolená musí být provedeno před tímto zpožděním)
     NbAddedAutomatically=Počet dnů, přidány do čítače uživatelů (automaticky) každý měsíc
     EnterAnyCode=Toto pole obsahuje odkaz k identifikaci řádku. Zadat libovolnou hodnotu dle vlastního výběru, ale bez speciálních znaků.
    -UnicodeCurrency=mezi závorkami, seznam počtu bajtů, které představují symbol měny zadejte zde. Pro exemple: za $, zadejte [36] - pro Brazílii real R $ [82,36] - pro €, zadejte [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=RGB barva je ve formátu HEX, např. FF0000
     PositionIntoComboList=Postavení linky do seznamů combo
     SellTaxRate=Prodej sazba daně
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=V případě, že poskytovatel nebo dopravy nabízejí stránky nebo webové stránky, zkontrolovat stav vašeho dopravou, můžete ji zadat zde. Můžete použít tlačítko {} TrackID do parametrů URL, takže systém bude jej nahradit hodnota sledovací číslo uživatele uzavřela odeslání karty.
    -OpportunityPercent=Při vytváření příležitostí, budete definoval odhadované částky projektu / olovo. V závislosti na stavu příležitosti, může být tato částka vícenásobných tímto tempem zhodnotit celkovou částku všechny své možnosti, může generovat. Hodnota je procento (mezi 0 a 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=Tento záznam šablona je určena ke kterému element
     TypeOfTemplate=Typ šablony
    -TemplateIsVisibleByOwnerOnly=Šablona je viditelná pouze vlastníkovi
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=Používáte nejnovější stabilní verzi
     TitleExampleForMajorRelease=Příklad zprávy, kterou lze použít k oznámit tuto hlavní verzi (bez obav používat na svých webových stránkách)
     TitleExampleForMaintenanceRelease=Příklad zprávy, kterou lze použít k oznámit toto uvolnění do provozu (bez obav používat na svých webových stránkách)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP a CRM %s je k dispozici. Verze %s je hlavní verze s mnoha novými funkcemi pro uživatele i vývojáře. Můžete jej stáhnout z oblasti stahování https://www.dolibarr.org portálu (podadresář Stable verze). Pro úplný seznam změn můžete přečíst <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a>.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s je k dispozici. Verze %s je verze údržby, takže obsahuje pouze opravy o chybách. Doporučujeme všem používáte starší verzi pro upgrade na tento jeden. Jako každá vydání údržby, žádné nové funkce, ani změna struktury dat je přítomna v této verzi. Můžete si jej stáhnout z stažení části https://www.dolibarr.org portál (podadresář stabilní verze). Můžete si přečíst <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a> Úplný seznam změn.
    -MultiPriceRuleDesc=Když volba „Několik úroveň cen za produkt / službu“ zapnutá, můžete definovat různé ceny (jeden na cenové hladině) pro každý výrobek. Chcete-li ušetřit čas, můžete zadat zde vládnout mít cenu pro každou úroveň autocalculated podle ceny první úrovni, takže budete muset zadat pouze cenu pro první stupeň na každém výrobku. Tato stránka je zde, aby vám ušetří čas a může být užitečná pouze v případě, ceny pro každou Leve jsou vzhledem k první úrovni. Můžete ignorovat tato stránka ve většině případů.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Šablony pro dokumenty produktů
    -ToGenerateCodeDefineAutomaticRuleFirst=Aby bylo možné automaticky generovat kódy, musíte nejprve definovat správce na auto definovat číslo čárového kódu.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=Viz * Poznámka k seznamu možných substitučních proměnných
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=Všichni majitelé stránek
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Přidávat další stránky nebo služby
     AddModels=Přidat dokument nebo číslování šablony
     AddSubstitutions=Přidat klíče substituce
     DetectionNotPossible=Detekce není možná
    -UrlToGetKeyToUseAPIs=Url dostat tokenu používat API (jednou známka byla obdržena je uložena na uživatele databáze tabulce a musí být k dispozici na každé volání API)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Seznam dostupných rozhraní API
    -activateModuleDependNotSatisfied=Modul „%s“ závisí na modulu „%s“, který chybí, takže modul „%1$s“ nemusí fungovat correclty. Prosím, nainstalujte modul „%2$s“ nebo zakázat modul „%1$s“, pokud chcete být v bezpečí z jakéhokoliv překvapení
    -CommandIsNotInsideAllowedCommands=Příkaz pokusu o spuštění není uvnitř seznam povolených příkazů definovaných v parametru <strong> $ dolibarr_main_restrict_os_commands </ strong> do <strong> conf.php </ strong> souboru.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=vstupní stránka
    -SamePriceAlsoForSharedCompanies=Pokud použijete multicompany modul, s volbou „Single cen“, bude cena by také být stejná pro všechny společnosti, pokud výrobky jsou sdíleny mezi prostředími
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Modul byl aktivován. Oprávnění pro aktivovaný modul (y) byly dány pouze pro uživatele admin. Možná budete muset udělit oprávnění pro ostatní uživatele nebo skupiny ručně v případě potřeby.
    -UserHasNoPermissions=Tento uživatel nemá žádné oprávnění definované
    -TypeCdr=Použijte „Žádný“ v případě, že datum platebního termínu je datum faktury plus delta ve dnech (delta je pole „Nb dnů“) <br> použití „Na konci měsíce“, pokud se po delty, musí být datum zvýšena se dostanete na konec měsíce (+ volitelná „Offset“ ve dnech) <br> použití „Current / Next“ mít platební termín datum jako první n-tého v měsíci (N se uloží do pole „Nb dnů“)
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Referenční měna společnosti (jít do nastavení firmy to změnit)
    -WarningNoteModuleInvoiceForFrenchLaw=Tento modul %s je v souladu s francouzskými zákony (Loi finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Konfigurace modulu Zdroje
     UseSearchToSelectResource=Použijte vyhledávací formulář k výběru zdroje (spíše než rozevírací seznam).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/cs_CZ/banks.lang b/htdocs/langs/cs_CZ/banks.lang
    index 4137ec59e87..510c283a6a3 100644
    --- a/htdocs/langs/cs_CZ/banks.lang
    +++ b/htdocs/langs/cs_CZ/banks.lang
    @@ -7,7 +7,7 @@ BankName=Název banky
     FinancialAccount=Účet
     BankAccount=Bankovní účet
     BankAccounts=Bankovní účty
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Ukázat účet
     AccountRef=Finanční účet ref
     AccountLabel=Štítek finančního účtu
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Účetní adresa
     BankAccountCountry=Účet země
     BankAccountOwner=Název majitele účtu
     BankAccountOwnerAddress=Adresa majitele účtu
    -RIBControlError=Kontrola integrity hodnot selhala. To znamená, že informace v tomto čísle účtu nejsou úplné nebo špatné (Zkontrolujte zemi, čísla a IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Vytvořit účet
     NewBankAccount=Nový účet
     NewFinancialAccount=Nový finanční účet
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Může být porovnáno
     Conciliate=Porovnat
     Conciliation=Porovnání
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Zahrnout uzavřené účty
     OnlyOpenedAccount=Pouze otevřené účty
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bankovní převod
     BankTransfers=Bankovní převody
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Z
     TransferTo=Na
     TransferFromToDone=Převod z <b>%s</b> na <b>%s</b> %s <b>%s</b> byl zaznamenán.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bankovní šeky
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Zobrazit příjmový vklad šeku
    -NumberOfCheques=Nb šeky
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Zpět na účet
     ShowAllAccounts=Zobrazit pro všechny účty
    -FutureTransaction=Transakce v budoucnosti.  Žádný způsob, jak porovnat.
    -SelectChequeTransactionAndGenerate=Výběr/filtr kontrol zahrnujících příjem šekových vkladů, a klikněte na "Vytvořit".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Vyberte si výpis z účtu v souvislosti s porovnáváním. Použijte tříditelnou číselnou hodnotu: YYYYMM nebo YYYYMMDD
     EventualyAddCategory=Eventuelně upřesněte kategorii, ve které chcete klasifikovat záznamy
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/cs_CZ/bills.lang b/htdocs/langs/cs_CZ/bills.lang
    index 0f36ffaeb7b..09be777bf24 100644
    --- a/htdocs/langs/cs_CZ/bills.lang
    +++ b/htdocs/langs/cs_CZ/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma faktura
     InvoiceProFormaDesc=<b>Proforma faktura</b> je obraz skutečné faktury, ale nemá účetní hodnotu.
     InvoiceReplacement=Náhradní faktura
     InvoiceReplacementAsk=Náhradní faktura faktury
    -InvoiceReplacementDesc=<b>Náhradní faktura</b> se používá ke zrušení a nahrazení neuhrazené a vrácené faktury. <br><br> Poznámka: Pouze neuhrazená faktura může být nahrazena. Pokud není uzavřena, bude automaticky nastavena jako  'opuštěná '.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Dobropis
     InvoiceAvoirAsk=Opravit fakturu na dobropis
    -InvoiceAvoirDesc=<b>Dobropis</b> je negativní faktura řešící skutečnost, že na původní faktuře je částka, které se liší od částky skutečně vyplacené. (zákazník zaplatil více omylem, nebo nezaplatil vše, protože například vrátil některé produkty).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Vytvořit dobropis s linkami od počátku faktury
     invoiceAvoirWithPaymentRestAmount=Vytvořit dobropis se zbývající neuhrazenou původní fakturou
     invoiceAvoirLineWithPaymentRestAmount=Dobropis na zbývající nezaplacené částky
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=V faktur měně
     PaidBack=Navrácené
     DeletePayment=Odstranit platby
     ConfirmDeletePayment=Jste si jisti, že chcete smazat tuto platbu?
    -ConfirmConvertToReduc=Chcete převést tento %s do absolutního slevou? <br> částka bude tak možné uložit mezi všemi slevy a mohl by být použit jako sleva na současný nebo budoucí faktury pro tohoto zákazníka.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Platby dodavatelům
     ReceivedPayments=Přijaté platby
     ReceivedCustomersPayments=Platby přijaté od zákazníků
    -PayedSuppliersPayments=Platby uhrazené dodavatelům
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Ověřené přijaté platby od zákazníků
     PaymentsReportsForYear=Zprávy o platbách pro %s
     PaymentsReports=Zprávy o platbách
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Platební podmínky
     PaymentAmount=Částka platby
     ValidatePayment=Ověření platby
     PaymentHigherThanReminderToPay=Platba vyšší než upomínka k zaplacení
    -HelpPaymentHigherThanReminderToPay=Pozor, výše platby z jednoho nebo více účtů je vyšší než v zůstatku. <br> Upravte položky nebo potvrďte a připravte vytvoření dobropisu přeplatku přijatého pro každou fakturu.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Klasifikace 'Zaplaceno'
     ClassifyPaidPartially=Klasifikace 'Částečně uhrazeno'
     ClassifyCanceled=Klasifikace 'Opuštěné'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Uzavřeno (neuhrazené)
     BillStatusClosedPaidPartially=Placeno (částečně)
     BillShortStatusDraft=Návrh
     BillShortStatusPaid=Placeno
    -BillShortStatusPaidBackOrConverted=Vrácení nebo převedeny
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Placeno
     BillShortStatusCanceled=Opuštěno
     BillShortStatusValidated=Ověřeno
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=nevrací
     BillShortStatusClosedUnpaid=Zavřeno
     BillShortStatusClosedPaidPartially=Placeno (částečně)
     PaymentStatusToValidShort=Chcete-li ověřit
    -ErrorVATIntraNotConfigured=Intracommunautary DIČ zatím není definováno
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Není definován žádný výchozí platební režim. Přejděte do modulu nastavení faktur a opravte to.
     ErrorCreateBankAccount=Vytvořte si bankovní účet a pak přejděte do modulu nastavení faktur a nadefinujte platební režimy
     ErrorBillNotFound=Faktura %s neexistuje
    -ErrorInvoiceAlreadyReplaced=Chyba při pokusu o ověření faktury a nahrazení fakturou %s. Ta byla již nahrazena fakturou %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Chyba, sleva byla již použita
     ErrorInvoiceAvoirMustBeNegative=Chyba, správná faktura musí mít zápornou částku
     ErrorInvoiceOfThisTypeMustBePositive=Chyba, tento typ faktury musí mít kladnou částku
     ErrorCantCancelIfReplacementInvoiceNotValidated=Chyba, nelze zrušit, pokud faktura, která byla nahrazena jinou fakturu je stále ve stavu návrhu
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Z
     BillTo=Na
     ActionsOnBill=Akce na faktuře
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Jste si jisti, že chcete změnit fakturu <b>%s</b> do s
     ConfirmCancelBill=Jste si jisti, že chcete zrušit fakturu <b>%s?</b>
     ConfirmCancelBillQuestion=Proč chcete klasifikovat fakturu jako 'opuštěnou' ?
     ConfirmClassifyPaidPartially=Jste si jisti, že chcete změnit fakturu <b>%s</b> do stavu uhrazeno?
    -ConfirmClassifyPaidPartiallyQuestion=Tato faktura nebyla zaplacena úplně. Z jakých důvodů chcete uzavřít tuto fakturu?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Zbývající neuhrazené <b>(%s %s),</b> je poskytnutá sleva, protože platba byla provedena před termínem splatnosti. Opravte částku DPH  dobropisem.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Zbývající neuhrazené <b>(%s %s),</b> je poskytnutá sleva, protože platba byla provedena před termínem splatnosti. Souhlasím se ztrátou DPH z této slevy.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Zbývající neuhrazené <b>(%s %s),</b> je poskytnutá sleva, protože platba byla provedena před termínem splatnosti. Vrátím zpět DPH na této slevě bez dobropisu
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Špatný zákazník
     ConfirmClassifyPaidPartiallyReasonProductReturned=Produkty částečně vrácené
     ConfirmClassifyPaidPartiallyReasonOther=Částka opuštěná jiného důvodu
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Tato volba je možná, pokud faktura byla opatřena vhodným komentářem. (Příklad: "Pouze daň odpovídající ceně, která byla skutečně zaplacena dává práva na odpočet")
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=V některých zemích je tato volba možná pouze tehdy, pokud faktura obsahuje správnou poznámku.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Použijte tuto volbu, pokud všechny ostatní volby nelze použít
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Špatný zákazník</b> je zákazník, který odmítá zaplatit svůj dluh.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Tato volba se používá když platba není kompletní, protože některé z výrobků byly vráceny
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Použijte tuto volbu, pokud se všechny ostatní nehodí, například v následujících situacích: <br> - Platba není kompletní, protože některé výrobky byly vráceny <br> - Nárokovaná částka je příliš důležitá, protože sleva nebyla uplatněna <br> Ve všech případech, kdy se částka liší od nárokované, musí být provedena oprava v systému evidence vytvořením dobropisu.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Ostatní
     ConfirmClassifyAbandonReasonOtherDesc=Tato volba se používá ve všech ostatních případech. Například proto, že máte v plánu vytvořit nahrazující fakturu.
     ConfirmCustomerPayment=Potvrdíte tento vstup platby pro <b> %s </ b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Potvrdíte tento vstup platby pro <b> %s </ b> %s?
     ConfirmValidatePayment=Jste si jisti, že chcete ověřit tuto platbu? Po ověření platby už nebudete moci provést žádnou změnu.
     ValidateBill=Ověřit fakturu
     UnvalidateBill=Neověřit fakturu
    -NumberOfBills=Nb faktur
    -NumberOfBillsByMonth=Nb faktury měsíce
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Částka faktur
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Čýstka faktur měsíčně (bez daně)
     ShowSocialContribution=Ukázat společenský / fiskální daň
     ShowBill=Zobrazit fakturu
    @@ -260,9 +262,9 @@ Repeatables=Šablony
     ChangeIntoRepeatableInvoice=Převést do šablony faktury
     CreateRepeatableInvoice=Vytvořit šablonu faktury
     CreateFromRepeatableInvoice=Vytvořit ze šablony faktury
    -CustomersInvoicesAndInvoiceLines=Zákaznické faktury a linky faktur
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Zákaznické faktury a platby
    -ExportDataset_invoice_1=Zákaznické faktury a seznam linek faktur
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Zákaznické faktury a platby
     ProformaBill=Proforma účet:
     Reduction=Snížení
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Účetní adresa
    -HelpEscompte=Tato sleva je sleva poskytnuta zákazníkovi, protože jeho platba byla provedena před termínem splatnosti.
    -HelpAbandonBadCustomer=Tato částka byla opuštěna (zákazník řekl, aby byl špatný zákazník) a je považována za výjimečně volnou.
    -HelpAbandonOther=Tato částka byla opuštěna, protože došlo k chybě (například špatný zákazník nebo faktura nahrazena jinou)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Sociální / fiskální odvod id
     PaymentId=ID platby
     PaymentRef=Platba ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Není vybrána žádná faktura
     CloneInvoice=Kopírovat fakturu
     ConfirmCloneInvoice=Jste si jisti, že chcete kopírovat tuto fakturu <b> %s </ b>?
     DisabledBecauseReplacedInvoice=Akce zakázána, protože faktura byla nahrazena
    -DescTaxAndDividendsArea=Tato oblast představuje souhrn všech plateb za zvláštní výdaje. Nahrávat pouze s platbou v průběhu stanoveného období jsou zde zahrnuty.
    -NbOfPayments=Nějaké platby
    +DescTaxAndDividendsArea=Tato oblast představuje souhrn všech plateb za zvláštní výdaje. Zde jsou zahrnuty pouze záznamy s platbou v průběhu účetního roku.
    +NbOfPayments=No. of payments
     SplitDiscount=Rozdělit slevu na dvě
    -ConfirmSplitDiscount=Jste si jisti, že chcete rozdělit tuto slevu ve výši <b> %s </ b> %s do 2 nižších slev?
    -TypeAmountOfEachNewDiscount=Vstupní hodnota pro každou ze dvou částí:
    -TotalOfTwoDiscountMustEqualsOriginal=Celkem dvě nové slevy musí být rovny původní částce slevy.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Jste si jisti, že chcete odstranit tuto slevu?
     RelatedBill=Související faktura
     RelatedBills=Související faktury
     RelatedCustomerInvoices=Související faktury zákazníka
     RelatedSupplierInvoices=Související faktury dodavatele
     LatestRelatedBill=Nejnovější související faktura
    -WarningBillExist=Varování, jedna nebo více faktur již existují
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Nástroj pro spojení PDF
     AmountPaymentDistributedOnInvoice=Výše platby distribuován na faktuře
    -PaymentOnDifferentThirdBills=Povolit platby na různých subjektů účty, ale stejnou mateřskou společností
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=platba poznámka
     ListOfPreviousSituationInvoices=Seznam předchozí situace faktur
     ListOfNextSituationInvoices=Seznam dalších situace faktur
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Kontrola
     PaymentTypeShortCHQ=Kontrola
     PaymentTypeTIP=TIP (Documents za úplatu)
     PaymentTypeShortTIP=TIP Platba
    -PaymentTypeVAD=On line platba
    -PaymentTypeShortVAD=On line platby
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=šek
     PaymentTypeShortTRA=Návrh
     PaymentTypeFAC=Faktor
     PaymentTypeShortFAC=Faktor
     BankDetails=Bankovní spojení
     BankCode=Kód banky
    -DeskCode=Desk kód
    +DeskCode=Office code
     BankAccountNumber=Číslo účtu
    -BankAccountNumberKey=Klíč
    +BankAccountNumberKey=Check digits
     Residence=Inkaso
    -IBANNumber=IBAN
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT číslo
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Platba převodem na bankovní účet
     VATIsNotUsedForInvoice=* Nepoužije DPH art-293B CGI
     LawApplicationPart1=Návrhem zákona 80,335 z 12.05.80
     LawApplicationPart2=Zboží zůstává majetkem
    -LawApplicationPart3=prodávajícího až do úplného zaplacení
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=jejich cena.
     LimitedLiabilityCompanyCapital=SARL s kapitálem
     UseLine=Aplikovat
    @@ -463,7 +465,7 @@ Cheques=Kontroly
     DepositId=id vklad
     NbCheque=Počet kontrol
     CreditNoteConvertedIntoDiscount=Tento %s byl převeden na %s
    -UsBillingContactAsIncoiveRecipientIfExist=Použijte zákaznickou fakturační kontaktní adresu namísto adresy třetích stran jako příjemce pro faktury
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Zobrazit všechny neuhrazené faktury
     ShowUnpaidLateOnly=Zobrazit jen pozdní neuhrazené faktury
     PaymentInvoiceRef=Platba faktury %s
    @@ -474,21 +476,22 @@ Reported=Zpožděný
     DisabledBecausePayments=Není možné, protože jsou zde některé platby
     CantRemovePaymentWithOneInvoicePaid=Nelze odstranit platbu protože je k dispozici alespoň jedna faktura označená jako zaplacená
     ExpectedToPay=Očekávaná platba
    -CantRemoveConciliatedPayment=Není možné odstranit smířil platby
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Uhrazeno touto platbou
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Označit jako "Placeno" všechny dobropisy zcela splaceny.
    -ClosePaidContributionsAutomatically=Klasifikovat „Paid“ všechny sociální nebo fiskální příspěvky v plné výši.
    -AllCompletelyPayedInvoiceWillBeClosed=Všechny faktury s žádnými dalšími platbami bude automaticky uzavřeny ve stavu "Placené".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Zaplatit
     ToMakePaymentBack=Vrátit
     ListOfYourUnpaidInvoices=Seznam nezaplacených faktur
     NoteListOfYourUnpaidInvoices=Poznámka: Tento seznam obsahuje pouze faktury pro třetí strany které jsou propojeny na obchodního zástupce.
     RevenueStamp=Kolek
    -YouMustCreateInvoiceFromThird=Tato možnost je dostupná pouze při vytváření faktury ze záložky "zákazníka" z subjektu
    -YouMustCreateInvoiceFromSupplierThird=Tato možnost je k dispozici pouze při vytváření faktury na kartě „dodavatele“ subjektu
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=Musíte nejprve vytvořit standardní fakturu a převést ji do „šablony“ pro vytvoření nové šablony faktury
     PDFCrabeDescription= PDF šablona faktur Crabe. Kompletní šablona faktury (doporučená šablona)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Faktura PDF šablony Crevette. Kompletní fakturu šablona pro situace faktur
     TerreNumRefModelDesc1=Vrátí číslo ve formátu %s yymm-nnnn pro standardní faktury a %s yymm-nnnn pro dobropisy, kde yy je rok, mm je měsíc a nnnn je sekvence bez přerušení a bez návratu k 0
     MarsNumRefModelDesc1=Vrátí číslo s formát %syymm-nnnn pro standardní faktury, %syymm-nnnn náhradních faktur, %syymm-nnnn pro akontace faktur a %syymm-nnnn pro dobropisy, kde yy je rok, MM měsíc a nnnn je sekvence bez přestávky a ne vrátí do polohy 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Faktura pokrok linka nemůže být větší než nebo r
     updatePriceNextInvoiceErrorUpdateline=Chyba: aktualizace cen na faktuře řádku: %s
     ToCreateARecurringInvoice=Chcete-li vytvořit opakující faktury pro tuto smlouvu, nejprve vytvořit tento návrh fakturu, pak převést jej do šablony faktury a definovat frekvenci pro generování budoucích fakturách.
     ToCreateARecurringInvoiceGene=S cílem vytvořit budoucí faktury pravidelně ručně, stačí jít nabídce <strong> %s - %s - %s </ strong>.
    -ToCreateARecurringInvoiceGeneAuto=Potřebujete-li mít takové faktury generované automaticky, zeptejte se svého správce povolit a instalační modul <strong> %s </ strong>. Všimněte si, že obě metody (manuální a automatické) mohou být použity společně s žádným rizikem duplikace.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Odstranit šablonu faktury
     ConfirmDeleteRepeatableInvoice=Jsou vaše jisti, že chcete smazat šablonu faktury?
     CreateOneBillByThird=Vytvořte jednu fakturu za subjekt (jinak, jedna faktura na objednávku)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=faktura smazána
    diff --git a/htdocs/langs/cs_CZ/cashdesk.lang b/htdocs/langs/cs_CZ/cashdesk.lang
    index 58974243786..9799ffc6459 100644
    --- a/htdocs/langs/cs_CZ/cashdesk.lang
    +++ b/htdocs/langs/cs_CZ/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Zobrazit společnost
     ShowStock=Zobrazit skladiště
     DeleteArticle=Klepnutím odeberete tento článek
     FilterRefOrLabelOrBC=Vyhledávání (Ref./Štítekl)
    -UserNeedPermissionToEditStockToUsePos=Ptáte se na snížení zásoby na vytvořené faktuře, ale uživatel, který používá POS musí mít oprávnění k úpravám zásob.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Prodejní místa
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/cs_CZ/commercial.lang b/htdocs/langs/cs_CZ/commercial.lang
    index 95d6bff2b0e..122411355f2 100644
    --- a/htdocs/langs/cs_CZ/commercial.lang
    +++ b/htdocs/langs/cs_CZ/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefonní hovor
     ActionAC_FAX=Odeslat fax
     ActionAC_PROP=Poslat e-mailem návrh
     ActionAC_EMAIL=Odeslat e-mail
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Schůze
     ActionAC_INT=Intervence na místě
     ActionAC_FAC=Poslat zákazníkovi fakturu poštou
    @@ -72,8 +73,8 @@ StatusProsp=Stav cíle
     DraftPropals=Navrhnout obchodní návrhy
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/cs_CZ/companies.lang b/htdocs/langs/cs_CZ/companies.lang
    index 4d11e09ad0e..49356dda4ce 100644
    --- a/htdocs/langs/cs_CZ/companies.lang
    +++ b/htdocs/langs/cs_CZ/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Vyberte třetí stranu
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Smazat kontakt/adresu
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=Nová třetí strana
    -MenuNewCustomer=Nový zákazník
    -MenuNewProspect=Nový cíl
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Nová soukromá osoba
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create thirdpary
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Kontakty/adresy třetí strany
     Company=Společnost
     CompanyName=Název společnosti
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Společnosti
    -CountryIsInEEC=Země je uvnitř Evropského hospodářského společenství
    -ThirdPartyName=Název třetí strany
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Třetí strana
    -ThirdParties=Třetí strany
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Cíle
     ThirdPartyProspectsStats=Cíle
     ThirdPartyCustomers=Zákazníci
     ThirdPartyCustomersStats=Zákazníci
     ThirdPartyCustomersWithIdProf12=Zákazníci s %s nebo %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Typ třetí strany
    +ThirdPartyType=Type of company
     Individual=Soukromá osoba
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Mateřská společnost
     Subsidiaries=Dceřiné společnosti
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=PSČ
     Town=Město
     Web=Web
     Poste= Pozice
    -DefaultLang=Výchozí jazyk
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Total proposals
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntaxe je správná
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Tento zákazník má výchozí slevu <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Tento zákazník nemá výchozí relativní slevu
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=Tento zákazník stále má diskontní úvěry nebo zálohy na <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Tento zákazník stále má dobropisy na <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Nikdo
    -Supplier=Dodavatel
    +Supplier=Vendor
     AddContact=Vytvořit kontakt
     AddContactAddress=Vytvořit kontakt/adresu
     EditContact=Upravit kontakt
    @@ -303,22 +303,22 @@ AddThirdParty=Vytvořit třetí stranu
     DeleteACompany=Odstranit společnost
     PersonalInformations=Osobní údaje
     AccountancyCode=Účetní účet
    -CustomerCode=Kód zákazníka
    -SupplierCode=Vendor code
    -CustomerCodeShort=Kód zákazníka
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Zákaznický kód, jedinečný pro všechny zákazníky
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Požadováno, pokud třetí strana je zákazník či cíl
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Platnost řízena modulem
    -ThisIsModuleRules=Toto jsou pravidla pro tento modul
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Cíl ke kontaktování
     CompanyDeleted=Společnost %s odstraněna z databáze.
     ListOfContacts=Seznam kontaktů/adres
    -ListOfContactsAddresses=Seznam kontaktů / adres
    -ListOfThirdParties=Seznam třetích stran
    -ShowCompany=Show third party
    +ListOfContactsAddresses=Seznam kontaktů/adres
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Zobrazit kontakt
     ContactsAllShort=Vše (Bez filtru)
     ContactType=Typ kontaktu
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Tento kontakt není přiřazen k žádné obchodní nab
     NoContactForAnyContract=Tento kontakt není přiřazen k žádné smlouvě
     NoContactForAnyInvoice=Tento kontakt není přiřazen k žádné faktuře
     NewContact=Nový kontakt
    -NewContactAddress=Nový kontakt/adresa
    +NewContactAddress=New Contact/Address
     MyContacts=Moje kontakty
     Capital=Hlavní město
     CapitalOf=Hlavní město %s
     EditCompany=Upravit společnost
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Kontrola
    -VATIntraCheckDesc=Odkaz <b>%s</b> umožňuje zkontrolovat DIČ/VAT. Je potřeba přístup k internetu.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Kontrola VAT na stránkách Evropské Komise
    -VATIntraManualCheck=Můžete také zkontrolovat ručně na evropských stránkách <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Kontrola není možná. Služba není členským státem poskytována (%s).
    -NorProspectNorCustomer=Ani cíl, ani zákazník
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Zaměstnanci
     ProspectLevelShort=Potenciální
     ProspectLevel=Potenciální cíl
    @@ -387,12 +387,12 @@ ExportCardToFormat=Exportovat kartu do formátu
     ContactNotLinkedToCompany=Kontakt není spojen s žádnou třetí stranou
     DolibarrLogin=Přihlášení do Dolibarru
     NoDolibarrAccess=Žádný přístup k Dolibarr
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Kontakty a vlastnosti
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Cenová hladina
     DeliveryAddress=Doručovací adresa
     AddAddress=Přidat adresu
    @@ -402,16 +402,16 @@ DeleteFile=Smazat soubor
     ConfirmDeleteFile=Jste si jisti, že chcete smazat tento soubor?
     AllocateCommercial=Assigned to sales representative
     Organization=Organizace
    -FiscalYearInformation=Informace o fiskálním roce
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Počáteční měsíc fiskálního roku
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Seznam cílů
    -ListCustomersShort=Seznam zákazníků
    -ThirdPartiesArea=Kontakty třetích stran
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Celkem unikátních třetích stran
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Otevřeno
     ActivityCeased=Uzavřeno
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Momentální nezaplacený účet
     OutstandingBill=Max. za nezaplacený účet
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Kód je volný. Tento kód lze kdykoli změnit.
     ManagingDirectors=Jméno vedoucího (CEO, ředitel, předseda ...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/cs_CZ/dict.lang b/htdocs/langs/cs_CZ/dict.lang
    index ef8e714862a..a3256701b6d 100644
    --- a/htdocs/langs/cs_CZ/dict.lang
    +++ b/htdocs/langs/cs_CZ/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heardův ostrov a McDonaldovy
     CountryVA=Vatikán (Svatý stolec)
     CountryHN=Honduras
     CountryHK=Hongkong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=Indie
     CountryID=Indonésie
     CountryIR=Írán
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Severní Korea
     CountryKR=Jižní Korea
     CountryKW=Kuvajt
    -CountryKG=Kyrgyzstán
    +CountryKG=Kyrgyzstan
     CountryLA=Laos
     CountryLV=Lotyšsko
     CountryLB=Libanon
    @@ -160,7 +160,7 @@ CountryMD=Moldavsko
     CountryMN=Mongolsko
     CountryMS=Monserrat
     CountryMZ=Mosambik
    -CountryMM=Barma (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibie
     CountryNR=Nauru
     CountryNP=Nepál
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad a Tobago
     CountryTR=Turecko
     CountryTM=Turkmenistán
    -CountryTC=Turks a Cailos ostrovy
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukrajina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauricius rupie
     CurrencySingMUR=Mauricius rupie
     CurrencyNOK=Norské koruny
    -CurrencySingNOK=Norská koruna
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tuniských dinárů
     CurrencySingTND=Tuniský dinár
     CurrencyUSD=Dolary
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Dané slovo
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Zaměstnanec
     DemandReasonTypeSRC_SPONSORING=Sponzoring
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Formát 4A0
     PaperFormatEU2A0=Formát 2A0
    diff --git a/htdocs/langs/cs_CZ/ecm.lang b/htdocs/langs/cs_CZ/ecm.lang
    index 364e8c97546..d180702cbee 100644
    --- a/htdocs/langs/cs_CZ/ecm.lang
    +++ b/htdocs/langs/cs_CZ/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Množství dokumentů v adresáři
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Adresář
     ECMSectionManual=Manuální adresář
     ECMSectionAuto=Automatický adresář
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Dokumenty související s projekty
     ECMDocsByUsers=Dokumenty spojené s uživateli
     ECMDocsByInterventions=Dokumenty spojené s intervencemi
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Nevytvořený adresář
     ShowECMSection=Zobrazit adresář
     DeleteSection=Odstraňte adresář
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/cs_CZ/errors.lang b/htdocs/langs/cs_CZ/errors.lang
    index 140f376fa82..c3b61105e57 100644
    --- a/htdocs/langs/cs_CZ/errors.lang
    +++ b/htdocs/langs/cs_CZ/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Hodnota &quot;%s&quot; má nesprávný formát data
     ErrorWrongDate=Datum není správné!
     ErrorFailedToWriteInDir=Nepodařilo se zapsat do adresáře %s
     ErrorFoundBadEmailInFile=Nalezeno nesprávné email syntaxe %s řádků v souboru (%s příklad souladu s emailem = %s)
    -ErrorUserCannotBeDelete=Uživatel nemůže být odstraněn. Může být, že je spojena s Dolibarr entity.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Některé požadované pole se nevyplňuje.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Nepodařilo se vytvořit adresář. Ujistěte se, že webový server má uživatel oprávnění k zápisu do adresáře dokumentů Dolibarr. Pokud je parametr <b>safe_mode</b> je povoleno na tomto PHP, zkontrolujte, zda Dolibarr php soubory, vlastní pro uživatele webového serveru (nebo skupina).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Vyplňte, prosím, hodnotu seznamu vyberte
     ErrorNoValueForCheckBoxType=Vyplňte, prosím, hodnotu checkbox seznamu
     ErrorNoValueForRadioType=Prosím vyplňte hodnotu pro rozhlasové seznamu
     ErrorBadFormatValueList=Hodnota Seznam nemůže mít více než jednu čárku: <u> %s </ u>, ale potřebují alespoň jednu možnost: klíč, hodnota
    -ErrorFieldCanNotContainSpecialCharacters=Terénní <b>%s</b> nesmí obsahuje speciální znaky.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Pole <b> %s </ b> nesmí obsahovat speciální znaky, ani na velká písmena a nesmí obsahovat pouze čísla.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Ne účetnictví modul aktivován
     ErrorExportDuplicateProfil=Tento název profilu již existuje pro tento export sady.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP shoda není úplná.
     ErrorLDAPMakeManualTest=. LDIF soubor byl vytvořen v adresáři %s. Zkuste načíst ručně z příkazového řádku získat více informací o chybách.
    -ErrorCantSaveADoneUserWithZeroPercentage=Nelze uložit akci s &quot;Statut nezačal&quot;, pokud pole &quot;provádí&quot; je také vyplněna.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref používá pro tvorbu již existuje.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Nepodařilo se odstranit záznam, protože má nějaké Childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Nelze odstranit záznam. Ten se již používá, nebo je zahrnut do jiných objektů.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript musí být vypnuta, že tato funkce pracovat. Chcete-li povolit / zakázat Javascript, přejděte do nabídky Home-&gt; Nastavení-&gt; Zobrazení.
     ErrorPasswordsMustMatch=Oba napsaný hesla se musí shodovat se navzájem
    -ErrorContactEMail=Technické chybě. Prosím, obraťte se na správce, aby e-mailovou <b>%s</b> en poskytovat <b>%s</b> kód chyby ve zprávě, nebo ještě lépe přidáním obrazovky kopii této stránky.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Chybná hodnota <b>%s</b> číslo pole (hodnota <b>&quot;%s</b> 'neodpovídá regex pravidel <b>%s)</b>
     ErrorFieldValueNotIn=Chybná hodnota <b>%s</b> číslo pole (hodnota <b>&quot;%s</b> 'není dostupná hodnota do pole <b>%s</b> stolních <b>%s)</b>
     ErrorFieldRefNotIn=Chybná hodnota <b>%s</b> číslo pole (hodnota <b>&quot;%s&quot;</b> není <b>%s</b> stávající ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Antivirový program nebyl schopen ověřit soubor
     ErrorSpecialCharNotAllowedForField=Speciální znaky nejsou povoleny pro pole &quot;%s&quot;
     ErrorNumRefModel=Existuje odkaz do databáze (%s) a není kompatibilní s tímto pravidlem číslování. Odebrat záznam nebo přejmenovat odkaz na aktivaci tohoto modulu.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Nastavení modulu jeví nekompletní. Jdi domů - Nastavení - Moduly dokončit.
     ErrorBadMask=Chyba na masku
     ErrorBadMaskFailedToLocatePosOfSequence=Chyba maska ​​bez pořadovým číslem
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Chyba, špatná hodnota po resetu
     ErrorMaxNumberReachForThisMask=Maximální počet dosah této masce
     ErrorCounterMustHaveMoreThan3Digits=Počítadlo musí mít více než 3 číslice
     ErrorSelectAtLeastOne=Chyba. Vyberte alespoň jednu položku.
    -ErrorDeleteNotPossibleLineIsConsolidated=Odstranění není možné, protože záznam je spojena s bankovním transakčního který smířil
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s je přiřazen do jiné třetí
     ErrorFailedToSendPassword=Nepodařilo se odeslat heslo
     ErrorFailedToLoadRSSFile=Nedokáže dostat RSS feed. Zkuste přidat konstantní MAIN_SIMPLEXMLLOAD_DEBUG případě chybových hlášení neposkytuje dostatek informací.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Uživatel s přihlášením <b>%s</b> nebyl nalezen.
     ErrorLoginHasNoEmail=Tento uživatel nemá žádnou e-mailovou adresu. Proces přerušena.
     ErrorBadValueForCode=Bad hodnota bezpečnostního kódu. Zkuste to znovu s novou hodnotou ...
     ErrorBothFieldCantBeNegative=Pole %s a %s nemohou být negativní
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Množství pro linku do odběratelských faktur nemůže být záporná
     ErrorWebServerUserHasNotPermission=Uživatelský účet <b>%s</b> použít ke spuštění webový server nemá oprávnění pro které
     ErrorNoActivatedBarcode=Žádný čárový kód aktivován typ
    @@ -138,7 +141,7 @@ ErrorBadFormat=Špatný formát!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Chyba Tento člen zatím není spojen s žádným subjektem. Spojovací člen ke stávajícímu subjektu nebo vytvořit nový subjekt před vytvořením odběru s fakturou.
     ErrorThereIsSomeDeliveries=Chyba, existuje nějaké dodávky spojené s touto přepravou. Odstranění zamítnuto. Máte smůlu ....
     ErrorCantDeletePaymentReconciliated=Nelze odstranit platbu, který generovaný položku banky, který byl odsouhlasen
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Nelze odstranit platbu sdílejí alespoň jednu fakturu se statusem platí
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Nelze přiřadit k neustálému ‚%s‘
     ErrorPriceExpression2=Nelze předefinovat vestavěnou funkci ‚%s‘
     ErrorPriceExpression3=Nedefinovaná proměnná ‚%s‘ v definici funkce
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Nečekané ‚%s‘ Kdo by to byl řekl .....
     ErrorPriceExpression6=Nesprávný počet argumentů (%s uvedeny, %s očekávaný) Argumentujte lépe !!!!
     ErrorPriceExpression8=Neočekávaný operátor '%s'
     ErrorPriceExpression9=Došlo k neočekávané chybě. Poklekněte a poručte svou duši bohu ....
    -ErrorPriceExpression10=Iperator '%s' chybí operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Očekával ‚%s‘
     ErrorPriceExpression14=Dělíte nulou!! To si snad fakt děláte srandu .....
     ErrorPriceExpression17=Nedefinovaná proměnná ‚%s‘
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP klient se nezdařilo s chybou ‚%s‘
     ErrorGlobalVariableUpdater5=Žádné globální proměnná vybraná
     ErrorFieldMustBeANumeric=Pole <b> %s </ b> musí být číselná hodnota
     ErrorMandatoryParametersNotProvided=Povinné parametr (y) není k dispozici
    -ErrorOppStatusRequiredIfAmount=Nastavíte odhadovanou částku za tuto příležitost / olovo. Takže musíte zadat svůj status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definice Array Menu V modulu popisovač (špatná hodnota za klíčový fk_menu)
    -ErrorSavingChanges=Došlo k ocurred při ukládání změn
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Sklad je zapotřebí na lince na dopravu
     ErrorFileMustHaveFormat=Soubor musí mít formát %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=Heslo bylo nastaveno pro tohoto člena. Nicméně, žádný uživatelský účet byl vytvořen. Takže toto heslo uloženo, ale nemůže být použit pro přihlášení do Dolibarr. Může být použit externí modulu / rozhraní, ale pokud nepotřebujete definovat libovolné přihlašovací jméno ani heslo pro členem, můžete možnost vypnout „Správa přihlášení pro každého člena“ z nastavení člen modulu. Pokud potřebujete ke správě přihlášení, ale nepotřebují žádné heslo, můžete mít toto pole prázdné, aby se zabránilo toto upozornění. Poznámka: E-mail může být také použit jako přihlášení v případě, že člen je připojen k uživateli.
     WarningMandatorySetupNotComplete=Povinné parametry jsou dosud stanoveny
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Záložka s tímto názvem, nebo tento cíl (URL) j
     WarningPassIsEmpty=Pozor, databáze je heslo prázdné. Toto je bezpečnostní díra. Měli byste přidat heslo do databáze a změnit svůj conf.php souboru v tomto smyslu.
     WarningConfFileMustBeReadOnly=Pozor, může váš konfigurační soubor <b>(htdocs / conf / conf.php)</b> musí být přepsány webovém serveru. To je vážná bezpečnostní díra. Změnit oprávnění k souboru, který chcete v režimu pouze pro čtení pro uživatele operačního systému používaného webového serveru. Pokud používáte systém Windows a FAT formát disku, musíte vědět, že je souborový systém neumožňuje přidat oprávnění na souboru, takže nemůže být zcela bezpečný.
     WarningsOnXLines=Upozornění na <b>%s</b> zdrojovém záznamu (s)
    -WarningNoDocumentModelActivated=Žádný model, pro generování dokumentů, byl aktivován. Bude model zvolil jako výchozí, dokud zkontrolovat nastavení modulu.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Pozor, po dokončení nastavení, musíte zakázat instalaci / stěhovat nástroje přidáním souboru do adresáře <b>install.lock %s.</b> Chybějící tento obrázek je bezpečnostní díra.
    -WarningUntilDirRemoved=Všechny bezpečnostní pokyny (viditelné admin uživatele) zůstane aktivní tak dlouho, dokud chyba je přítomna (nebo konstantní MAIN_REMOVE_INSTALL_WARNING se přidá Nastavení-&gt; Ostatní nastavení).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Pozor, zavírání se provádí, i když částka liší zdrojových a cílových prvků. Povolte tuto funkci se zvýšenou opatrností.
     WarningUsingThisBoxSlowDown=Upozornění Při použití tohoto políčka zpomalit vážně všechny stránky zobrazující krabici.
     WarningClickToDialUserSetupNotComplete=Nastavení ClickToDial informací pro uživatele si nejsou kompletní (viz tab ClickToDial na vaše uživatelské karty).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Příliš mnoho dat (více než %s linek)
     WarningSomeLinesWithNullHourlyRate=Někdy byly zaznamenány u některých uživatelů, zatímco jejich hodinová sazba nebyla definována. Hodnota 0 %s za hodinu byl použit, ale to může mít za následek nesprávné oceňování času stráveného.
     WarningYourLoginWasModifiedPleaseLogin=Vaše přihlašovací byla upravena. Z bezpečnostních účel budete muset přihlásit pomocí nových přihlašovacích údajů před další akci.
     WarningAnEntryAlreadyExistForTransKey=Položka již existuje pro překladatelské klíč pro tento jazyk
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/cs_CZ/help.lang b/htdocs/langs/cs_CZ/help.lang
    index 4ed8ab1fd2a..b3a7854a279 100644
    --- a/htdocs/langs/cs_CZ/help.lang
    +++ b/htdocs/langs/cs_CZ/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real-time vzdálená podpora
     OtherSupport=Další podpora
     ToSeeListOfAvailableRessources=Pro kontaktování/zobrazení dostupných zdrojů:
     HelpCenter=Centrum nápovědy
    -DolibarrHelpCenter=Centrum nápovědy a podpory Dolibarr
    -ToGoBackToDolibarr=Jinak klikněte <a href="%s">zde pro použití Dolibarr</a>
    -TypeOfSupport=Zdroj podpory
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Komunita (zdarma)
     TypeSupportCommercial=Obchodní
     TypeOfHelp=Typ
    @@ -15,12 +15,9 @@ NeedHelpCenter=Potřebujete pomoc nebo podporu?
     Efficiency=Účinnost
     TypeHelpOnly=Pouze nápověda
     TypeHelpDev=Nápověda + Development
    -TypeHelpDevForm=Nápověda + Development + Formace
    -ToGetHelpGoOnSparkAngels1=Některé společnosti mohou poskytnout rychlou (někdy okamžitou) a efektivnější online podporu tím, že převezme kontrolu nad Vaším počítačem. Tyto pomocníky lze nalézt na internetových stránkách <b>%s:</b>
    -ToGetHelpGoOnSparkAngels3=Můžete také přejít na seznam všech dostupných trenérů systému Dolibarr, kliknutím na tlačítko
    -ToGetHelpGoOnSparkAngels2=Někdy není žádná společnost k dispozici v okamžiku Vašeho vyhledávání, popřemýšlejte tedy o změně Vašeho filtru na vyhledání "Všech dostupných". Budete mít možnost zaslat více požadavků.
    -BackToHelpCenter=V opačném případě, klikněte <a href="%s"> zde pro skok zpět na domácí stránku help centra</a>.
    -LinkToGoldMember=Můžete zavolat pouze jednomu z trenérů1 Dolibarru kliknutím na jeho Widget (stav a maximální cena automaticky aktualizována):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Podporované jazyky
    -SubscribeToFoundation=Pomozte projektu Dolibarr přihlášením do nadace
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Pro oficiální support Dolibarru ve Vaší zemi: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/cs_CZ/holiday.lang b/htdocs/langs/cs_CZ/holiday.lang
    index c6ddaa398a5..91e1d72c0d0 100644
    --- a/htdocs/langs/cs_CZ/holiday.lang
    +++ b/htdocs/langs/cs_CZ/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Dovolená
    -CPTitreMenu=Dovolená
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Měsíční výkaz
     MenuAddCP=New leave request
    -NotActiveModCP=Musíte povolit modul dovolená pro zobrazení této stránky.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Požádejte o dovolenou
     DateDebCP=Datum zahájení
     DateFinCP=Datum ukončení
    @@ -15,13 +15,18 @@ ApprovedCP=Schválený
     CancelCP=Zrušený
     RefuseCP=Odmínutý
     ValidatorCP=Schválil
    -ListeCP=Seznam dovolených
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Bude přezkoumána
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Popis
     SendRequestCP=Vytvořit požadavek na dovolenou
     DelayToRequestCP=Požadavek na dovolenou musí být zadán nejméně <b>%s den(y)</b> před termínem.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Zbývající dovolená je <b>%s</b> dnů.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Musíte vybrat koncové datum větší než datum zahájení.
     ErrorSQLCreateCP=SQL chyba při tvorbě:
     ErrorIDFicheCP=Došlo k chybě, požadavek dovolené neexistuje.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=Nemáte oprávnění číst tuto žádost o dovolenou
     InfosWorkflowCP=Průběh informací
     RequestByCP=Požádané
     TitreRequestCP=Nechat žádost
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Počet dní vyčerpané dovolené
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Upravit
     DeleteCP=Vymazat
     ActionRefuseCP=Odmítnout
    @@ -59,6 +71,7 @@ DateRefusCP=Datum odmítnutí
     DateCancelCP=Datum zrušení
     DefineEventUserCP=Přiřadit výjimečnou dovolenou pro uživatele
     addEventToUserCP=Přiřadit dovolenou
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Důvod
     UserCP=Uživatel
     ErrorAddEventToUserCP=Došlo k chybě při přidávání požadavku na výjimečnou dovolenou.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Aktualizováno úspěšně.
     Module27130Name= Správa žádostí o dovolenou
     Module27130Desc= Správa požadavků dovolené
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Ověření žádosti o dovolenou
     HolidaysToValidateBody=Níže je požadavek na ověření dovolené
     HolidaysToValidateDelay=Tento požadavek dovolené proběhne ve lhůtě kratší než %s dní.
    -HolidaysToValidateAlertSolde=Uživatel, který vytvořil tento požadavek na dovolenou nemá k dispozici dostatek dní.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Ověřené žádosti dovolené
     HolidaysValidatedBody=Vaše žádost o dovolenou %s do %s byla ověřena.
     HolidaysRefused=Požadavek zamítnut
    @@ -103,4 +121,9 @@ HolidaysCanceled=Zrušené požadavky na dovolenou
     HolidaysCanceledBody=Vaše žádost o dovolenou pro %s na %s byla zrušena.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/cs_CZ/install.lang b/htdocs/langs/cs_CZ/install.lang
    index 0b57a2b96c9..65c9d87cb6a 100644
    --- a/htdocs/langs/cs_CZ/install.lang
    +++ b/htdocs/langs/cs_CZ/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Stačí sledovat instrukce krok za krokem.
     MiscellaneousChecks=Kontrola prerekvizit
     ConfFileExists=Konfigurační soubor <b>%s</b> existuje.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=<b>%s</b> Konfigurační soubor neexistuje a nemohl být vytvořen!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=<b>%s</b> Konfigurační soubor byl vytvořen.
    -ConfFileIsNotWritable=Konfigurační soubor <b>%s</b> není zapisovatelný. Zkontrolujte oprávnění. Při první instalaci musí mít Váš server právo zápisu do tohoto souboru.
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Konfigurační soubor <b>%s</b> je zapisovatelný.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Aktualizuj všechny informace z konfiguračního souboru.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Tato PHP instalace podporuje relace.
     PHPSupportPOSTGETOk=Tato PHP instalace podporuje proměnné POST a GET.
    -PHPSupportPOSTGETKo=Je možné, že vaše instalace PHP nepodporuje proměnné POST a/nebo GET. Zkontrolujte parametr <b>variables_order</b> ve Vašem php.ini.
    -PHPSupportGD=Tato PHP instalace podporuje GD grafické funkce.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=Tato PHP instalace podporuje UTF8 funkce.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Maximální velikost relace je nastavena na <b>%s.</b> To by mělo stačit.
    -PHPMemoryTooLow=Maximální velikost relace je nastavena na <b>%s</b> bajtů. To bohužel nestačí. Zvyšte svůj parametr <b>memory_limit</b> ve Vašem <b>php.ini</b> na minimální velikost <b>%s</b> bajtů.
    -Recheck=Klikněte zde pro více vypovídající test
    -ErrorPHPDoesNotSupportSessions=Vaše PHP instalace nepodporuje relace. Tato funkce je nutná, pro správnou funkčnost Dolibarr. Zkontrolujte Vaše PHP nastavení.
    -ErrorPHPDoesNotSupportGD=Tato PHP instalace nepodporuje GD grafické funkce. Žádný graf nebude k dispozici.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Tato PHP instalace nepodporuje UTF8 funkce. Tato funkce je nutná, pro správnou funkčnost Dolibarr. Zkontrolujte Vaše PHP nastavení.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Adresář %s neexistuje.
    -ErrorGoBackAndCorrectParameters=Jděte zpět a opravte špatné parametry.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Možná jste zadali nesprávnou hodnotu pro parametr '%s'.
     ErrorFailedToCreateDatabase=Nepodařilo se vytvořit databázi '%s'.
     ErrorFailedToConnectToDatabase=Nepodařilo se připojit k databázi '%s'.
     ErrorDatabaseVersionTooLow=Verze databáze (%s) je příliš stará a vetchá. Je potřeba omladit na verzi databáze alespoň %s.
     ErrorPHPVersionTooLow=Tato verze PHP je příliš stará. Verze %s je potřeba.
    -ErrorConnectedButDatabaseNotFound=Připojení k serveru bylo úspěšné, ale databáze '%s' nebyla nalezena.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Databáze '%s' již existuje.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Pokud databáze neexistuje, vraťte se zpět a zaškrtněte volbu "Vytvořit databázi".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Pokud databáze již existuje, vraťte se zpět a zrušte zaškrtnutí políčka "Vytvořit databázi".
    -WarningBrowserTooOld=Verze Vašeho prohlížeče je příliš stará. Silně doporučujeme aktualizovat na nejnovější verzi Firefox, Chrome nebo Opery.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP verze
     License=Používá licenci
     ConfigurationFile=Konfigurační soubor
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr databáze
     DatabaseType=Typ databáze
     DriverType=Typ ovladače
     Server=Server
    -ServerAddressDescription=Jméno nebo IP adresa databázového serveru, obvykle 'localhost', když je databázový server umístěn na stejném serveru jako web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Port databázového serveru. Ponechte prázdné, pokud jej neznáte.
     DatabaseServer=Databázový server
     DatabaseName=Název databáze
    -DatabasePrefix=Prefix tabulek v databázi
    -AdminLogin=Přihlášení pro vlastníka databáze Dolibarr.
    -PasswordAgain=Heslo znovu
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Heslo pro vlastníka databáze Dolibarr.
     CreateDatabase=Vytvořit databázi
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Databázový server - přístup Superuser
    -CheckToCreateDatabase=Zaškrtněte, pokud databáze neexistuje a musí být vytvořena. <br> V takovém případě budete muset zadat přihlašovací jméno / heslo pro superuživatele účtu v dolní části stránky.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Přihlášení uživatele oprávněného vytvářet nové databáze nebo nové uživatele, povinné, pokud vaše databáze nebo její majitel doposud neexistuje.
    -KeepEmptyIfNoPassword=Ponechte prázdné, pokud uživatel nemá heslo (nedoporučeno)
    -SaveConfigurationFile=Uložit hodnoty
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Připojení k serveru
     DatabaseCreation=Vytvoření databáze
     CreateDatabaseObjects=Tvorba databázových objektů
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Vytvořit cizí klíče a indexy pro tabulku %s
     OtherKeysCreation=Cizí klíče a tvorba indexů
     FunctionsCreation=Vytváření funkcí
     AdminAccountCreation=Vytváření přístupových údajů administrátora
    -PleaseTypePassword=Prosím zadejte heslo, prázdné heslo není dovoleno!
    -PleaseTypeALogin=Prosím zadejte přihlašovací údaje!
    -PasswordsMismatch=Hesla se liší, zkuste to znovu!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Konec nastavení
     SystemIsInstalled=Tato instalace je dokončena.
     SystemIsUpgraded=Dolibarr byl úspěšně aktualizován.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Je třeba nastavit Dolibarr aby vyhovoval vašim potř
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Přejít na Dolibarr
     GoToSetupArea=Přejít na Dolibarr (Oblast Nastavení)
    -MigrationNotFinished=Verze Vaší databáze není zcela aktuální, budete muset spustit aktualizaci znovu.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Přejít znovu na aktualizační stránku
     WithNoSlashAtTheEnd=Bez lomítka "/" na konci
    -DirectoryRecommendation=Je doporučeno použít adresář mimo adresáře webových stránek.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Již existuje
     DolibarrAdminLogin=Login Dolibarr administrátora
    -AdminLoginAlreadyExists=Účet administrátora Dolibarru '<b>%s</b>' již existuje. Běžte zpět, pro vytvoření jiného.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Pozor, z bezpečnostních důvodů po dokončení instalace či upgradu je potřeba zabránit opětovnému spuštění instalace. Přidejte soubor s názvem <b>install.lock</b> do adresáře document Dolibarr, aby jste zabránili nebezpečnému spuštění.
    -FunctionNotAvailableInThisPHP=Není k dispozici na této instalaci PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Vyberte migrační skript
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Skript běží
     ChooseYourSetupMode=Vyberte si režim instalace a klepněte na tlačítko "Start"...
     FreshInstall=Nová instalace
    -FreshInstallDesc=Tento režim použijte, pokud je to vaše první instalace. Pokud ne, můžete v tomto režimu opravit neúplnou předchozí instalaci. Pokud chcete upgradovat Vaší verzi, vyberte režim "Aktualizace"
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Aktualizace
     UpgradeDesc=Tento režim použijte, pokud jste přepsali staré Dolibarr soubory novějšími. Tím dojde k aktualizace databáze a dat.
     Start=Start
     InstallNotAllowed=Instalace není povolena oprávněním <b>conf.php</b>
     YouMustCreateWithPermission=Vytvořte soubor %s a nastavte mu oprávnění k zápisu webovým serverem během instalace.
    -CorrectProblemAndReloadPage=Opravte problém a stiskněte klávesu F5 pro obnovení stránky.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Už migrováno
     DatabaseVersion=Verze databáze
     ServerVersion=Verze databázového serveru
     YouMustCreateItAndAllowServerToWrite=Vytvořte tento adresář a nastavte mu oprávnění k zápisu webovým serverem během instalace.
     DBSortingCollation=Způsob řazení
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Pro Váš dotaz vytvoření databáze <b>%s,</b> se musí Dolibarr připojit k serveru <b>%s</b> s oprávněním super-usera <b>%s.</b>
    -YouAskLoginCreationSoDolibarrNeedToConnect=Pro Váš dotaz vytvoření databázového loginu <b>%s,</b> se musí Dolibarr připojit k serveru <b>%s</b> s oprávněním super-usera <b>%s.</b>
    -BecauseConnectionFailedParametersMayBeWrong=Jelikož se připojení nezdařilo, parametry host či super-user jsou zadány chybně.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Oprhans-platba detekována metodou %s
     RemoveItManuallyAndPressF5ToContinue=Odstraňte ručně a pokračujte stisknutím klávesy F5.
     FieldRenamed=Pole přejmenováno
    -IfLoginDoesNotExistsCheckCreateUser=Pokud login doposud neexistuje, je potřeba zašktrnout volbu "Vytvořit uživatele"
    -ErrorConnection=Server "<b>%s</b>", název databáze "<b>%s</b>", login "<b>%s</b>" nebo heslo databáze je uvedeno špatně, případně verze PHP klienta může být příliš stará oproti verzi databáze.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Doporučená instalace verze <b>%s</b> z Vaší verze <b>%s</b>
     InstallChoiceSuggested=<b>Volba instalace navržená instalátorem</b>
    -MigrateIsDoneStepByStep=Cílová verze (%s) má odskok mnoha verzí, takže průvodce instalací se po dokončení migrace vrátí s doporučením na odskok na další migraci.
    -CheckThatDatabasenameIsCorrect=Zkontrolujte, zda název databáze "<b>%s</b>" je správný.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Pokud je toto správný název a databáze dosud neexistuje, zkontrolujte volbu "Vytvořit databázi".
     OpenBaseDir=PHP openbasedir parametr
    -YouAskToCreateDatabaseSoRootRequired=Zaškrtli jste "Vytvořit databázi". Pro to je potřeba vyplnit login/heslo super-usera (vespod formuláře).
    -YouAskToCreateDatabaseUserSoRootRequired=Zaškrtli jste "Vytvořit vlastníka databáze". Pro to je potřeba vyplnit login/heslo super-usera (vespod formuláře).
    -NextStepMightLastALongTime=Aktuální krok může trvat několik minut. Před dalším pokračováním prosím počkejte na zobrazení další obrazovky.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrace přepravy úložiště zákaznických objednávek
     MigrationShippingDelivery=Aktualizace úložiště přepravy
     MigrationShippingDelivery2=Aktualizace úložiště přepravy 2
     MigrationFinished=Migrace dokončena
    -LastStepDesc=<strong>Poslední krok:</strong> Definujte zde přihlašovací jméno a heslo které budete používat pro připojení k softwaru. Toto heslo neztraťte - jedná se o jediný administrátorský účet.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Aktivace modulu %s
     ShowEditTechnicalParameters=Klikněte zde pro zobrazení / editaci pokročilých parametrů (pro experty)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Vaše verze databáze  je %s. Ta bohužel obsahuje kritickou chybu mající zásadní vliv na ztrátu dat, pokud provedete změnu struktury ve vaší databázi, stejně jako je to vyžadováno v procesu migrace. Z tohoto důvodu nebude migrace povolena, dokud neprovedete upgrade databáze na vyšší fixní verzi (seznam známých chybných verzí: %s)
    -KeepDefaultValuesWamp=Používáte instalaci Dolibarr pomocí DoliWamp, tedy tyto hodnoty jsou již optimalizované pro Váš stroj. Změňte je pouze tehdy, pokud víte přesně co děláte.
    -KeepDefaultValuesDeb=Používáte instalaci Dolibarr z Linux-ového balíčku (Ubuntu, Debian, Fedora ...), takže tyto hodnoty jsou již optimalizovány pro Váš stroj. Vyplňte pouze heslo vlastníka databáze. Ostatní parametry měňte jen pokud skutečně víte co děláte.
    -KeepDefaultValuesMamp=Používáte instalaci Dolibarr pomocí DoliMamp, takže tyto hodnoty jsou již optimalizovány pro Váš stroj. Parametry měňte jen pokud skutečně víte co děláte.
    -KeepDefaultValuesProxmox=Používáte instalaci Dolibarr pomocí Proxmox, takže tyto hodnoty jsou již optimalizovány pro Váš stroj. Parametry měňte jen pokud skutečně víte co děláte.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Migrace dat komerčních návrhů
     MigrationInvoice=Migrace dat zákaznických faktur
     MigrationContract=Migrace dat smluv
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Aktualizace úspěšná
     MigrationUpdateFailed=Proces aktualizace selhal
     MigrationRelationshipTables=Migrace dat relačního schématu tabulek (%s)
     MigrationPaymentsUpdate=Oprava platebních dat
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Oprava smluvních dat
     MigrationContractsNumberToUpdate=%s smlouva(y) k aktualizaci
     MigrationContractsLineCreation=Vytvořte řádky pro smlouvu %s
     MigrationContractsNothingToUpdate=Žádné další úkoly
    -MigrationContractsFieldDontExist=Pole fk_facture už neexistuje. Žádné další úkoly.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Oprava prázdného data smlouvy
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Žádné prázdné datum smlouvy k opravě
     MigrationContractsEmptyCreationDatesNothingToUpdate=Žádné prázdné smluvní datum k opravě
     MigrationContractsInvalidDatesUpdate=Oprava chybné hodnoty data smlouvy
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Aktualizace příjmu
     MigrationStockDetail=Aktualizace stavu zásob produktu
     MigrationMenusDetail=Aktualizace dynamických menu tabulky
     MigrationDeliveryAddress=Aktualizovat doručovací adresu nákladů
    -MigrationProjectTaskActors=Migrace dat tabulky llx_projet_task_actors
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Migrace dat pole fk_user_resp llx_projet na llx_element_contact
     MigrationProjectTaskTime=Čas aktualizace v sekundách
     MigrationActioncommElement=Aktualizovat údaje na činnostech
     MigrationPaymentMode=Migrace dat platebního režimu
     MigrationCategorieAssociation=Migrace kategorií
    -MigrationEvents=Migrace událostí přidá vlastníka události do přiřazené tabulky
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Načíst modul %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Ukázat nedostupné možnosti
    -HideNotAvailableOptions=Skrýt nedostupné možnosti
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/cs_CZ/interventions.lang b/htdocs/langs/cs_CZ/interventions.lang
    index 6e1f8553d2c..23b0245bb65 100644
    --- a/htdocs/langs/cs_CZ/interventions.lang
    +++ b/htdocs/langs/cs_CZ/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Intervence
     InterventionCard=Karta intervence
     NewIntervention=Nová intervence
     AddIntervention=Vytvořit intervenci
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Seznam intervencí
     ActionsOnFicheInter=Akce zaměřené na intervenci
     LastInterventions=Nejnovější %s intervence
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Doba použití služby pro zásahy generovaných
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistiky intervencí
    -NbOfinterventions=Nb intervenčních karet
    -NumberOfInterventionsByMonth=Nb intervenčních karet měsíce (datum schválení)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=intervence id
    diff --git a/htdocs/langs/cs_CZ/main.lang b/htdocs/langs/cs_CZ/main.lang
    index b17c1c9ab8d..d17e43e482e 100644
    --- a/htdocs/langs/cs_CZ/main.lang
    +++ b/htdocs/langs/cs_CZ/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Nepodařilo se odeslat poštu (odesílatel=%s, příjemce=
     ErrorFileNotUploaded=Soubor nebyl nahrán. Zkontrolujte, zda velikost nepřesahuje maximální povolenou, že je volné místo na disku a že se v adresáři nenachází soubor se stejným názvem.
     ErrorInternalErrorDetected=Byla zjištěna chyba
     ErrorWrongHostParameter=Chybný parametr host
    -ErrorYourCountryIsNotDefined=Vaše země není definována. Přejděte na Domů-Nastavení-Úpravy a odešlete formulář znovu.
    -ErrorRecordIsUsedByChild=Nepodařilo se smazat tento záznam. Tento záznam je používán minimálně jedním vnořeným záznamem.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Chybná hodnota
     ErrorWrongValueForParameterX=Chybná hodnota parametru %s
     ErrorNoRequestInError=Žádný chybný požadavek
    -ErrorServiceUnavailableTryLater=Služba momentálně není k dispozici. Zkuste to znovu později.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicitní hodnota v poli
    -ErrorSomeErrorWereFoundRollbackIsDone=Byly nalezeny nějaké chyby. Veškeré změny budou zpětně vráceny.
    -ErrorConfigParameterNotDefined=Parametr <b>%s</b> není definován v konfiguračním souboru Dolibarr <b>conf.php.</b>
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Nepodařilo se najít uživatele <b>%s</b> v databázi Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Chyba, pro zemi '%s' nejsou definovány žádné sazby DPH.
     ErrorNoSocialContributionForSellerCountry=Chyba, žádná společenská / daně typ fiskální definován pro země ‚%s‘.
     ErrorFailedToSaveFile=Chyba, nepodařilo se uložit soubor.
    -ErrorCannotAddThisParentWarehouse=Snažíte se přidat nadřazené sklad, který je již dítě aktuálního
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Nejste oprávněni k tomu, že.
     SetDate=Nastavení datumu
     SelectDate=Výběr datumu
    @@ -78,10 +78,10 @@ FileRenamed=Soubor byl úspěšně přejmenován
     FileGenerated=Soubor byl úspěšně vygenerován
     FileSaved=The file was successfully saved
     FileUploaded=Soubor byl úspěšně nahrán
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=Soubor vybrán pro připojení, ale ještě nebyl nahrán. Klikněte na "Přiložit soubor".
    -NbOfEntries=Počet záznamů
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Přečtěte si online nápovědu (přístup k internetu je potřeba)
     GoToHelpPage=Přečíst nápovědu
     RecordSaved=Záznam uložen
    @@ -94,7 +94,7 @@ Undefined=Nedefinováno
     PasswordForgotten=Zapomněli jste heslo?
     NoAccount=No account?
     SeeAbove=Viz výše
    -HomeArea=Hlavní oblast
    +HomeArea=Domů
     LastConnexion=poslední připojení
     PreviousConnexion=Předchozí připojení
     PreviousValue=Předchozí hodnota
    @@ -142,6 +142,7 @@ Closed=Zavřeno
     Closed2=Zavřeno
     NotClosed=není uzavřen
     Enabled=Povoleno
    +Enable=Umožnit
     Deprecated=Zastaralá
     Disable=Zakázat
     Disabled=Invalidní
    @@ -153,7 +154,7 @@ Update=Aktualizovat
     Close=Zavřít
     CloseBox=Odebrat widget z panelu
     Confirm=Potvrdit
    -ConfirmSendCardByMail=Opravdu chcete poslat obsah této karty mailem na <b>%s?</b>
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Vymazat
     Remove=Odstranit
     Resiliate=přerušit
    @@ -327,7 +328,7 @@ Copy=Kopírovat
     Paste=Vložit
     Default=Standardní
     DefaultValue=Výchozí hodnota
    -DefaultValues=výchozí hodnoty
    +DefaultValues=Default values/filters/sorting
     Price=Cena
     PriceCurrency=Price (currency)
     UnitPrice=Jednotková cena
    @@ -347,7 +348,7 @@ AmountTTCShort=Částka (vč. DPH)
     AmountHT=Částka (bez DPH)
     AmountTTC=Částka (vč. DPH)
     AmountVAT=Částka daně
    -MulticurrencyAlreadyPaid=Platba již byla zaplacena, původní měna
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=I nadále platit, původní měnu
     MulticurrencyPaymentAmount=Výše platby, původní měna
     MulticurrencyAmountHT=Částka (po zdanění), původní měně
    @@ -428,7 +429,7 @@ ActionNotApplicable=Nevztahuje se
     ActionRunningNotStarted=Chcete-li začít
     ActionRunningShort=probíhá
     ActionDoneShort=Ukončený
    -ActionUncomplete=Nekompletní
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Kontakty pro tuto třetí stranu
     ContactsAddressesForCompany=Kontakty/adresy pro tuto třetí stranu
     AddressesForCompany=Adresy pro tuto třetí stranu
     ActionsOnCompany=Akce u této třetí strany
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Akce u tohoto uživatele
     ActionsOnProduct=Events about this product
     NActionsLate=%s pozdě
    @@ -453,8 +455,8 @@ Generate=Generovat
     Duration=Trvání
     TotalDuration=Celková doba trvání
     Summary=Shrnutí
    -DolibarrStateBoard=Statistika databází
    -DolibarrWorkBoard=Plocha pracovních úkolů
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No otevřel prvek zpracovávat
     Available=Dostupný
     NotYetAvailable=Zatím není k dispozici
    @@ -468,7 +470,7 @@ and=a
     or=nebo
     Other=Ostatní
     Others=Ostatní
    -OtherInformations=Ostatní informace
    +OtherInformations=Jiná informace
     Quantity=Množství
     Qty=Množství
     ChangedBy=Změnil
    @@ -506,7 +508,7 @@ None=Nikdo
     NoneF=Nikdo
     NoneOrSeveral=Žádný nebo několik
     Late=Pozdě
    -LateDesc=Zpoždění se definovat, zda záznam je pozdě, nebo ne, závisí na vašem nastavení. Požádejte svého administrátora pro změnu zpoždění z menu Home - nastavení - Výstrahy.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Obrázek
     Photos=Obrázky
    @@ -530,18 +532,6 @@ September=Září
     October=Říjen
     November=Listopad
     December=Prosinec
    -JanuaryMin=Leden
    -FebruaryMin=Únor
    -MarchMin=Březen
    -AprilMin=Duben
    -MayMin=Květen
    -JuneMin=Červen
    -JulyMin=Červenec
    -AugustMin=Srpen
    -SeptemberMin=Září
    -OctoberMin=Říjen
    -NovemberMin=Listopad
    -DecemberMin=Prosince
     Month01=Leden
     Month02=Únor
     Month03=Březen
    @@ -646,6 +636,8 @@ SendMail=Odeslat e-mail
     EMail=E-mailem
     NoEMail=Žádný e-mail
     Email=E-mail
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Žádné telefonní číslo
     Owner=Majitel
     FollowingConstantsWillBeSubstituted=Následující konstanty budou nahrazeny odpovídající hodnotou.
    @@ -677,7 +669,7 @@ NeverReceived=Nikdy nedostal
     Canceled=Zrušený
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=Můžete nastavit výchozí hodnotu použitou při vytváření nového záznamu do nastavení modulu
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Barva
     Documents=Připojené soubory
     Documents2=Dokumenty
    @@ -716,15 +708,15 @@ Merge=Spojit
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Zobrazit stránku pro tisk hlavní obsahové části
     MenuManager=Manager nabídky
    -WarningYouAreInMaintenanceMode=Pozor, jste v režimu údržby, jen pro přihlášené <b>%s</b> je dovoleno v tuto chvíli používat aplikace.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Systémová chyba
     CoreErrorMessage=Je nám líto, došlo k chybě. Obraťte se na správce systému a zkontrolujte protokoly nebo zakázat $ dolibarr_main_prod=1 pro získání více informací.
     CreditCard=Kreditní karta
     ValidatePayment=Ověření platby
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Pole označená * jsou povinná <b>%s</b>
    -FieldsWithIsForPublic=Pole s <b>%s</b> jsou uvedeny na veřejném seznamu členů. Pokud si to nepřejete, zaškrtněte "veřejný" box.
    -AccordingToGeoIPDatabase=(Podle GeoIP konverze)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Linka
     NotSupported=Není podporováno
     RequiredField=Povinné pole
    @@ -732,6 +724,8 @@ Result=Výsledek
     ToTest=Test
     ValidateBefore=Karta musí být ověřena před použitím této funkce
     Visibility=Viditelnost
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Soukromý
     Hidden=Skrytý
     Resources=Zdroje
    @@ -750,6 +744,7 @@ LinkTo=odkaz na
     LinkToProposal=Odkaz na návrh
     LinkToOrder=Odkaz na objednávku
     LinkToInvoice=Odkaz na fakturu
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Odkaz na dodavatele objednávku
     LinkToSupplierProposal=Odkaz na návrh dodavatele
     LinkToSupplierInvoice=Odkaz na dodavatelské faktury
    @@ -758,6 +753,7 @@ LinkToIntervention=Odkaz na intervenci
     CreateDraft=Vytvořte návrh
     SetToDraft=Zrušit návrh
     ClickToEdit=Klepnutím lze upravit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=Podle dne
     BySalesRepresentative=Podle obchodního zástupce
     LinkedToSpecificUsers=Souvisí s konkrétním uživatelem kontaktu
     NoResults=Žádné výsledky
    -AdminTools=admin nástroje
    +AdminTools=Admin Tools
     SystemTools=Systémové nástroje
     ModulesSystemTools=Moduly nástrojů
     Test=Test
     Element=Prvek
     NoPhotoYet=Momentálně žádné fotografie k dispozici
     Dashboard=Plocha
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Spoluúčast
     from=z
     toward=k
    @@ -802,7 +798,7 @@ PrintFile=Tisk souboru %s
     ShowTransaction=Ukázat záznam o bankovním účtu
     ShowIntervention=Zobrazit intervenci
     ShowContract=Zobrazit smlouvu
    -GoIntoSetupToChangeLogo=Jděte na Domů-Nastavení-Společnost pro změnu loga, nebo je v nastavení skryjte.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Odmítnout
     Denied=Odmítnuto
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=S pozdravem
     DeleteLine=Odstranění řádku
     ConfirmDeleteLine=Jste si jisti, že chcete smazat tento řádek?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=Nevybrán žádný záznam
     MassFilesArea=Plocha pro soubory postavený masových akcí
     ShowTempMassFilesArea=Show area souborů postavený masových akcí
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Související objekty
     ClassifyBilled=Označit jako účtováno
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Kalendář
     GroupBy=Skupina vytvořená...
     ViewFlatList=Zobrazit seznam plochý
     RemoveString=Odstraňte řetězec ‚%s‘
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Stažení
    @@ -852,25 +848,34 @@ ModuleBuilder=module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Hromadné akce
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Webová stránka
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Webové stránky
    +WebSiteAccounts=Website accounts
     ExpenseReport=Zpráva výdaje
     ExpenseReports=Zpráva výdajů
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Události
    -EMailTemplates=E-maily šablony
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Projekt
     Projects=Projekty
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Oprávnění
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Pondělí
     Tuesday=Úterý
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Intervence
     SearchIntoContracts=Smlouvy
     SearchIntoCustomerShipments=zásilky zákazník
     SearchIntoExpenseReports=Zpráva výdajů
    -SearchIntoLeaves=Dovolená
    +SearchIntoLeaves=Leave
     CommentLink=Komentáře
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Všichni
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Placeno
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Přiřazeno
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/cs_CZ/other.lang b/htdocs/langs/cs_CZ/other.lang
    index 376ae1c207e..fad89925f19 100644
    --- a/htdocs/langs/cs_CZ/other.lang
    +++ b/htdocs/langs/cs_CZ/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Bezpečnostní kód
     NumberingShort=N°
     Tools=Nástroje
     TMenuTools=Nástroje
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Narozeniny
     BirthdayDate=datum narozenin
     DateToBirth=Datum narození
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Návratová stránka se zprávou o schválení platby
     MessageKO=Návratová stránka se zprávou o zrušení platby
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Přidá kontakt intervence
    -Notify_FICHINTER_VALIDATE=Intervence ověřena
    -Notify_FICHINTER_SENTBYMAIL=Intervence přes mail
     Notify_ORDER_VALIDATE=Objednávka zákazníka ověřena
     Notify_ORDER_SENTBYMAIL=Zákaznická objednávka zaslaná na mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Dodavatelská objednávka zaslaná e.mailem
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Dodavatelská objednávka uložena
     Notify_ORDER_SUPPLIER_APPROVE=Objednávka dodavatele schválena
     Notify_ORDER_SUPPLIER_REFUSE=Objednávka dodavatele odmítnuta
     Notify_PROPAL_VALIDATE=Nabídka zákazníka ověřena
    -Notify_PROPAL_CLOSE_SIGNED=Zákazník propal uzavřel podpisem
    -Notify_PROPAL_CLOSE_REFUSED=Zákazník propal zavřenýma odmítl
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Komerční návrh zaslán e-mailem
     Notify_WITHDRAW_TRANSMIT=Stažení převodu
     Notify_WITHDRAW_CREDIT=Stažení kreditu
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Třetí strana vytvořena
     Notify_COMPANY_SENTBYMAIL=Maily odeslané z karty třetí strany
     Notify_BILL_VALIDATE=Faktura zákazníka ověřena
     Notify_BILL_UNVALIDATE=Faktura zákazníka neověřena
    -Notify_BILL_PAYED=Zákaznická faktura zaplacena
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Zákaznická faktura zrušena
     Notify_BILL_SENTBYMAIL=Zákaznická faktura zaslaná e-mailem
     Notify_BILL_SUPPLIER_VALIDATE=Dodavatelská faktura ověřena
    -Notify_BILL_SUPPLIER_PAYED=Dodavatelská faktura zaplacena
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Dodavatelská faktura zaslaná e-mailem
     Notify_BILL_SUPPLIER_CANCELED=Dodavatelská faktura zrušena
     Notify_CONTRACT_VALIDATE=Smlouva ověřena
     Notify_FICHEINTER_VALIDATE=Intervence ověřena
    +Notify_FICHINTER_ADD_CONTACT=Přidá kontakt intervence
    +Notify_FICHINTER_SENTBYMAIL=Intervence přes mail
     Notify_SHIPPING_VALIDATE=Doprava ověřena
     Notify_SHIPPING_SENTBYMAIL=Doprava odeslána mailem
     Notify_MEMBER_VALIDATE=Uživatel ověřen
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Vytvoření projektu
     Notify_TASK_CREATE=Úkol vytvořen
     Notify_TASK_MODIFY=Úkol upraven
     Notify_TASK_DELETE=Úkol smazán
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Viz nastavení modulu %s
     NbOfAttachedFiles=Počet připojených souborů/dokumentů
     TotalSizeOfAttachedFiles=Celková velikost připojených souborů/dokumentů
     MaxSize=Maximální velikost
     AttachANewFile=Připojte nový soubor/dokument
     LinkedObject=Propojený objekt
    -NbOfActiveNotifications=Počet hlášení (několik z příjemců e-mailů)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr je kompaktní ERP/CRM systém, který se  skládá z více funkčních modulů. Demo, které obsahuje všechny moduly vám nepředstaví všechny možnosti, protože v reálné situaci všechny moduly najednou používat nebudete. Pro lepší a snadnější seznámení s celým systémem máte k dispozici několik demo profilů lépe vystihujících vaše požadavky. 
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Nainstalujte nebo povolte GD knihovnu ve vaší PHP pro vyu
     ProfIdShortDesc=<b>Prof Id %s</b> je informace v závislosti na třetích stranách země. <br> Například pro země <b>%s,</b> je to kód <b>%s.</b>
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=New intervention %s byla přiřazena k vám.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Zásah %s byl ověřen.
     EMailTextInvoiceValidated=Faktura %s byla ověřena.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Nabídka %s byla ověřena.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Objednávka %s byla ověřena.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Objednávka %s byla schválena %s.
     EMailTextOrderRefused=Objednávka %s byla zamítnuta.
     EMailTextOrderRefusedBy=Objednávka %s byla odmítnuta podle %s.
     EMailTextExpeditionValidated=Přeprava %s byla ověřena.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Import souboru dat
     DolibarrNotification=Automatické upozornění
     ResizeDesc=Zadejte novou šířku <b>nebo</b> novou výšku. Poměry budou uchovávány při změně velikosti ...
    @@ -204,7 +214,7 @@ NewLength=Nová šířka
     NewHeight=Nová výška
     NewSizeAfterCropping=Nová velikost po ořezu
     DefineNewAreaToPick=Definujte novou oblast obrázku pro jeho vložení klikněte (levým tlačítkem myši na obrázek a pak táhněte, dokud se nedostanete na protější roh)
    -CurrentInformationOnImage=Tento nástroj byl navržen tak, aby vám pomohl změnit velikost nebo oříznout obrázek. Toto je informace o aktuálním editovaném obrázku
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Editor obrázků
     YouReceiveMailBecauseOfNotification=Tato zpráva se zobrazí, protože Váš e-mail byl přidán na seznam cílů, které mají být informovány o jednotlivých akcích na %s softwaru %s.
     YouReceiveMailBecauseOfNotification2=Tato akce je následující:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exportní plocha
    @@ -248,5 +262,7 @@ WebsiteSetup=Nastavení webových stránek modulu
     WEBSITE_PAGEURL=URL stránky
     WEBSITE_TITLE=Titul
     WEBSITE_DESCRIPTION=Popis
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Klíčová slova
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/cs_CZ/paybox.lang b/htdocs/langs/cs_CZ/paybox.lang
    index af97270c3bd..a6da89f3606 100644
    --- a/htdocs/langs/cs_CZ/paybox.lang
    +++ b/htdocs/langs/cs_CZ/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Nastavení modulu PayBox
     PayBoxDesc=Tento modul nabízejí stránky, které umožní platby na <a href="http://www.paybox.com" target="_blank">Paybox</a> zákazníky. Toho lze využít pro volnou platbu nebo platbu na určitý objekt Dolibarr (faktury, objednávky, ...)
     FollowingUrlAreAvailableToMakePayments=Přes URL jsou k dispozici nabízené stránky, které zákazníkovi umožní provést platbu na Dolibarr objektech
     PaymentForm=Formulář platby
    -WelcomeOnPaymentPage=Vítáme Vás na naší on-line platební službě
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Tato obrazovka vám umožní provést on-line platbu %s.
     ThisIsInformationOnPayment=Jsou zde informace o provedené platbě
     ToComplete=Chcete-li dokončit
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL nabízí %s on-line platební uživate
     ToOfferALinkForOnlinePaymentOnContractLine=URL nabízí %s on-line platební uživatelské rozhraní pro řádky smluv
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL nabízí %s on-line platební uživatelské rozhraní pro volnou částku
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL nabízí %s on-line platební uživatelské rozhraní pro členské předplatné
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Můžete také přidat parametr URL <b>&tag = <i>hodnota</i></b> na některou z těchto URL (nutné pouze pro volné platby) a přidat vlastní komentář platby.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Nastavte si PayBox s url <b>%s</b> pro možnost vytvoření automaticky při ověřeí Payboxu.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Tato stránka potvrzuje, že platba byla zaznamenána. Děkuju.
    -YourPaymentHasNotBeenRecorded=Vaše platba nebyla zaznamenána a transakce byla zrušena. Děkuju.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Parametry účtu
     UsageParameter=Použité parametry
     InformationToFindParameters=Pomozte najít %s informace o účtu
    diff --git a/htdocs/langs/cs_CZ/projects.lang b/htdocs/langs/cs_CZ/projects.lang
    index e5d06e2bc7b..a3f37512d6e 100644
    --- a/htdocs/langs/cs_CZ/projects.lang
    +++ b/htdocs/langs/cs_CZ/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Opravdu chcete tento projekt smazat?
     ConfirmDeleteATask=Jste si jisti, že chcete smazat tento úkol?
     OpenedProjects=otevřené projekty
     OpenedTasks=otevřené úkoly
    -OpportunitiesStatusForOpenedProjects=Příležitosti množství otevřených projektů stavu
    -OpportunitiesStatusForProjects=Příležitosti počet projektů podle stavu
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Zobrazit projekt
     ShowTask=Zobrazit úkol
     SetProject=Nastavit projekt
     NoProject=Žádný projekt nedefinován či vlastněn
    -NbOfProjects=Počet projektů
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Strávený čas
     TimeSpentByYou=Váš strávený čas
     TimeSpentByUser=Čas strávený uživatelem
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Přejít na seznam času spotřebovaného
     GoToListOfTasks=Přejít na seznam úkolů
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Seznam obchodních návrhů spojených s projektem
    -ListOrdersAssociatedProject=Seznam zákaznických objednávek související s projektem
    -ListInvoicesAssociatedProject=Seznam zákaznických faktur souvisejících s projektem
    -ListPredefinedInvoicesAssociatedProject=Seznam předpřipravených zákaznických faktur spojených s projektem
    -ListSupplierOrdersAssociatedProject=Seznam dodavatelských objednávek souvisejících s projektem
    -ListSupplierInvoicesAssociatedProject=Seznam dodavatelských faktur spojených s projektem
    -ListContractAssociatedProject=Seznam zakázek souvisejících s projektem
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Seznam zákroků spojených s projektem
    -ListExpenseReportsAssociatedProject=Seznam vyúčtování výdajů souvisejících s projektem
    -ListDonationsAssociatedProject=Seznam darů spojených s projektem
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Seznam událostí spojených s projektem
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=Seznam času spotřebována na úkolech projektu
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Aktivita na projektu dnes
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Připojené k jiné třetí straně
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Čas strávený je prázdný
     ThisWillAlsoRemoveTasks=Tato akce rovněž odstraní všechny úkoly projektu (<b>%s</b> úkolů v tuto chvíli) a všechny strávené časy vstupující do projektu.
    -IfNeedToUseOhterObjectKeepEmpty=Pokud je k projektu třeba připojit některé objekty jiných třetích stran (faktury, objednávky, ...), ponechte toto prázdné (projekt bude moci obsahovat více třetích stran)
    +IfNeedToUseOtherObjectKeepEmpty=Pokud je k projektu třeba připojit některé objekty jiných třetích stran (faktury, objednávky, ...), ponechte toto prázdné (projekt bude moci obsahovat více třetích stran)
     CloneProject=Duplikovat projekt
     CloneTasks=Duplikovat úkoly
     CloneContacts=Duplikovat kontakty
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Projekt %s modifikované
     TaskCreatedInDolibarr=Úkol %s vytvořen
     TaskModifiedInDolibarr=Úkol %s upraven
     TaskDeletedInDolibarr=Úkol %s smazán
    -OpportunityStatus=stav příležitost
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. postavení
    -OpportunityProbability=příležitost pravděpodobnost
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=množství příležitostí
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. množství
     OpportunityAmountAverageShort=Průměrná Opp. množství
     OpportunityAmountWeigthedShort=Vážený Opp. množství
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Přispěvatel
     SelectElement=Vyberte prvek
     AddElement=Odkaz na prvek
     # Documents models
    -DocumentModelBeluga=Šablona projektu pro přehled propojených objektů
    -DocumentModelBaleine=Projekt zpráva šablony pro úkoly
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Plánované vytížení
     PlannedWorkloadShort=Pracovní zátěž
     ProjectReferers=Související zboží
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projekty s tímto uživatelem jako kontakt
     TasksWithThisUserAsContact=Úkoly přidělené tomuto uživateli
     ResourceNotAssignedToProject=Není přiřazen k projektu
     ResourceNotAssignedToTheTask=Není přiřazen k úkolu
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Úkolům, které jsou
     AssignTaskToMe=Přiřadit úkol mně
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Přiřadit
     ProjectOverview=Přehled
    -ManageTasks=Projektově řídit úkoly a čas
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Projektově řídit tuhy / opportinuties
    -ProjectNbProjectByMonth=Nb vytvořených projektů měsíc
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Množství příležitostí podle měsíce
    -ProjectWeightedOppAmountOfProjectsByMonth=Vážené příležitostí v jednotlivých měsících
    -ProjectOpenedProjectByOppStatus=Otevřít projekt / vedení podle stavu příležitosti
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistiky týkající se projektů / vodičů
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Úkol přidělen. Zadání času na tomto úkolu by mělo být možné.
     IdTaskTime=Doba úkol Id
     YouCanCompleteRef=Chcete-li doplnit ref některé informace (použít jej jako vyhledávací filtry), doporučujeme přidat znak - aby se oddělil, takže automatické číslování bude fungovat správně pro další projekty. Například %s-ABC. Můžete také preferovat přidání vyhledávacích klíčů do štítku. Nejlepším postupem může být přidání specializovaného pole, nazývaného také doplňkové atributy.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=pouze příležitosti
    -OpenedOpportunitiesShort=otevřené příležitosti
    -NotAnOpportunityShort=Není to příležitost
    -OpportunityTotalAmount=Příležitosti celková částka
    -OpportunityPonderatedAmount=Příležitosti vážené
    -OpportunityPonderatedAmountDesc=Příležitosti vážené s pravděpodobností
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospektiva
     OppStatusQUAL=Kvalifikace
     OppStatusPROPO=Nabídka
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/cs_CZ/propal.lang b/htdocs/langs/cs_CZ/propal.lang
    index 0160f9b3731..6d06197dbad 100644
    --- a/htdocs/langs/cs_CZ/propal.lang
    +++ b/htdocs/langs/cs_CZ/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Podpis (potřeba fakturace)
     PropalStatusNotSigned=Nejste přihlášen (uzavřený)
     PropalStatusBilled=Účtováno
     PropalStatusDraftShort=Návrh
    -PropalStatusValidatedShort=Ověřeno
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Zavřeno
     PropalStatusSignedShort=Podepsaný
     PropalStatusNotSignedShort=Nepodepsaný
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s nebyl nalezen
     AddToDraftProposals=Přidat do předlohy nabídky
     NoDraftProposals=Žádné návrhy nabídek
     CopyPropalFrom=Vytvořit obchodní nabídku zkopírováním existující nabídky
    -CreateEmptyPropal=Vytvořte prázdnou obchodní nabídku z šablony nebo ze seznamu produktů/služeb
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Doba platnosti výchozí obchodní nabídky (ve dnech)
    -UseCustomerContactAsPropalRecipientIfExist=Použití kontaktní adresy zákazníka, je-li definována místo třetí stranou jako adresa příjemce nabídky
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Kopírovat obchodní nabídku
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Kontakt se zákazníkem pro následující
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Kompletní šablona nabídky (logo. ..)
    +DocModelCyanDescription=Kompletní šablona nabídky (logo. ..)
     DefaultModelPropalCreate=Tvorba z výchozí šablony
     DefaultModelPropalToBill=Výchozí šablona při uzavírání obchodní nabídky (bude se fakturovat)
     DefaultModelPropalClosed=Výchozí šablona při uzavírání obchodní nabídky (nevyfakturované)
    diff --git a/htdocs/langs/cs_CZ/website.lang b/htdocs/langs/cs_CZ/website.lang
    index d5b6d19be42..e57e06906c9 100644
    --- a/htdocs/langs/cs_CZ/website.lang
    +++ b/htdocs/langs/cs_CZ/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kód
    -WebsiteSetupDesc=Vytvořte zde tolik vstupů jako množství různých webových stránek, které potřebujete. Pak přejděte do nabídky webové stránky na jejich editaci.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Odstranit web
    -ConfirmDeleteWebsite=Jste si jisti, že chcete smazat tuto webovou stránku? Všechny stránky a obsah budou odstraněny.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Název stránky / alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL externího souboru CSS
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=knihovna multimédií
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Úprava menu
     EditMedias=Edit medias
    -EditPageMeta=Editovat Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Ukázky vaše webové stránky <strong> %s </ strong> ještě nejsou k dispozici. Musíte nejprve přidat stránku.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=Zobrazit stránku v nové kartě
     SetAsHomePage=Nastavit jako domovskou stránku
     RealURL=real URL
     ViewWebsiteInProduction=Pohled webové stránky s použitím domácí adresy URL
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Číst
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang
    index f788c0f02c0..4ebd376e215 100644
    --- a/htdocs/langs/da_DK/admin.lang
    +++ b/htdocs/langs/da_DK/admin.lang
    @@ -2,22 +2,22 @@
     Foundation=Grundlag
     Version=Version
     Publisher=Forlægger
    -VersionProgram=Version program
    +VersionProgram=Programversion
     VersionLastInstall=Første installationsversion
     VersionLastUpgrade=Nyeste version
     VersionExperimental=Eksperimentel
     VersionDevelopment=Udvikling
     VersionUnknown=Ukendt
     VersionRecommanded=Anbefalet
    -FileCheck=Filer integritet checker
    -FileCheckDesc=Dette værktøj giver dig mulighed for at kontrollere filernes integritet og opsætning af din ansøgning, sammenligne hver fil med de officielle. Værdien af ​​nogle opsætningskonstanter kan også kontrolleres. Du kan bruge dette værktøj til at opdage, om nogle filer blev ændret af en hacker for eksempel.
    +FileCheck=Filer integritet test
    +FileCheckDesc=Dette værktøj giver dig mulighed for at kontrollere filernes integritet og opsætningen af ​​din program del, sammenligne hver fil med den officielle. Værdien af ​​nogle opsætnings værdier kan også kontrolleres. Du kan bruge dette værktøj til at opdage, om nogle filer blev ændret af en hacker, som eksempel.
     FileIntegrityIsStrictlyConformedWithReference=Filernes integritet er nøje i overensstemmelse med referencen.
    -FileIntegrityIsOkButFilesWereAdded=Filters integritetskontrol er gået, men nogle nye filer blev tilføjet.
    +FileIntegrityIsOkButFilesWereAdded=Filters integritetskontrol er udført, men nogle nye filer er blevet tilføjet.
     FileIntegritySomeFilesWereRemovedOrModified=Filer integritetskontrol er mislykket. Nogle filer blev ændret, fjernet eller tilføjet.
     GlobalChecksum=Globalt checksum
     MakeIntegrityAnalysisFrom=Gør integritetsanalyse af applikationsfiler fra
     LocalSignature=Indlejret lokal signatur (mindre pålidelig)
    -RemoteSignature=Fjern fjern signatur (mere pålidelig)
    +RemoteSignature=Lang distance signatur (mere pålidelig)
     FilesMissing=Manglende filer
     FilesUpdated=Opdaterede filer
     FilesModified=Ændrede filer
    @@ -26,37 +26,37 @@ FileCheckDolibarr=Kontroller integriteten af ​​applikationsfiler
     AvailableOnlyOnPackagedVersions=Den lokale fil for integritetskontrol er kun tilgængelig, når applikationen er installeret fra en officiel pakke
     XmlNotFound=Xml Integrity File af applikation ikke fundet
     SessionId=Session ID
    -SessionSaveHandler=Handler for at gemme sessioner
    -SessionSavePath=Storage session localization
    -PurgeSessions=Purge af sessioner
    +SessionSaveHandler="Handler" for at gemme sessioner
    +SessionSavePath=Opbevaring af sessionslokalisering
    +PurgeSessions=Udrensning af sessioner
     ConfirmPurgeSessions=Vil du virkelig slette alle sessioner? Dette vil slette alle bruger (bortset fra dig selv)
    -NoSessionListWithThisHandler=Gem session handler konfigureret i din PHP tillader ikke at liste alle kørende sessioner.
    +NoSessionListWithThisHandler=Save session handler konfigureret i dit PHP tillader ikke at notere alle løbende sessioner.
     LockNewSessions=Lås nye forbindelser
    -ConfirmLockNewSessions=Er du sikker på du vil begrænse enhver ny Dolibarr forbindelse til dig selv. Kun brugeren <b>%s</b> vil være i stand til at forbinde efter denne.
    -UnlockNewSessions=Fjern forbindelsen lås
    +ConfirmLockNewSessions=Er du sikker på, at du vil begrænse enhver ny Dolibarr-forbindelse til dig selv? Kun bruger <b>%s</b> kan derefter oprette forbindelse.
    +UnlockNewSessions=Fjern forbindelseslås
     YourSession=Din session
    -Sessions=Brugere session
    +Sessions=Brugersessioner
     WebUserGroup=Webserver bruger / gruppe
    -NoSessionFound=Din PHP synes ikke muligt at liste aktive sessioner. Directory bruges til at gemme sessioner <b>(%s)</b> kan være beskyttet (For eksempel ved at OS tilladelser eller PHP direktiv open_basedir).
    +NoSessionFound=Dit PHP tillader ikke optagelse af aktive sessioner. Den mappe, der bruges til at gemme sessioner (<b> %s </b>), kan være beskyttet (For eksempel ved brug af operativsystemer eller ved PHP-direktivet open_basedir).
     DBStoringCharset=Database charset til at gemme data
    -DBSortingCharset=Database charset at sortere data
    +DBSortingCharset=Database charset for at sortere data
     ClientCharset=Klient karaktersæt
     ClientSortingCharset=Kunden sortering
     WarningModuleNotActive=<b>Modul %s</b> skal være aktiveret
    -WarningOnlyPermissionOfActivatedModules=Kun tilladelser i forbindelse med aktiveret moduler er vist her. Du kan aktivere andre moduler i opsætningsskærmens - Modul side.
    +WarningOnlyPermissionOfActivatedModules=Kun tilladelser i forbindelse med aktiveret moduler er vist her. Du kan aktivere andre moduler i Hjem->Indstillinger-Moduler.
     DolibarrSetup=Dolibarr setup
     InternalUser=Intern bruger
     ExternalUser=Ekstern bruger
     InternalUsers=Interne brugere
     ExternalUsers=Eksterne brugere
     GUISetup=Udseende
    -SetupArea=Opsætning
    +SetupArea=Indstillinger
     UploadNewTemplate=Upload nye skabeloner
    -FormToTestFileUploadForm=Form til test-fil upload (ifølge setup)
    +FormToTestFileUploadForm=Formular til test af fil upload (ifølge opsætning)
     IfModuleEnabled=Note: ja er kun effektivt, hvis <b>modul %s</b> er aktiveret
     RemoveLock=Fjern <b>fil %s,</b> hvis det er oprettet for at tillade opdateringen værktøj.
     RestoreLock=Erstatte en <b>fil %s</b> med læse tilladelse kun på filen for at deaktivere enhver brug af værktøj.
    -SecuritySetup=Sikkerhed setup
    +SecuritySetup=Sikkerhedsopsætning
     SecurityFilesDesc=Definer her muligheder relateret til sikkerhed om upload af filer.
     ErrorModuleRequirePHPVersion=Fejl, dette modul kræver PHP version %s eller højere
     ErrorModuleRequireDolibarrVersion=Fejl, dette modul kræver Dolibarr version %s eller højere
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kode kan ikke indeholde værdien 0
     DisableJavascript=Deaktiver JavaScript og Ajax-funktioner (Anbefales til blinde personer eller tekstbrowsere)
     UseSearchToSelectCompanyTooltip=Også hvis du har et stort antal tredjeparter (> 100 000), kan du øge hastigheden ved at indstille konstant COMPANY_DONOTSEARCH_ANYWHERE til 1 i Setup-> Other. Søgningen er så begrænset til starten af ​​strengen.
     UseSearchToSelectContactTooltip=Også hvis du har et stort antal tredjeparter (> 100 000), kan du øge hastigheden ved at indstille konstant CONTACT_DONOTSEARCH_ANYWHERE til 1 i Setup-> Other. Søgningen er så begrænset til starten af ​​strengen.
    -DelaiedFullListToSelectCompany=Vent på, at du trykker på en tast, inden du lægger indholdet af tredjeparts kombinationsliste op (Dette kan øge ydeevnen, hvis du har et stort antal tredjeparter, men det er mindre praktisk)
    -DelaiedFullListToSelectContact=Vent, tryk på en tast, inden du lægger indholdet på kontaktkombinationen op (Dette kan øge ydeevnen, hvis du har et stort antal kontakter, men det er mindre praktisk)
    +DelaiedFullListToSelectCompany=Vent, indtil der trykkes på en nøgle, inden du læser indholdet i kombinationslisten fra tredjepart. <br> Dette kan øge ydeevnen, hvis du har et stort antal tredjeparter, men det er mindre praktisk.
    +DelaiedFullListToSelectContact=Vent, indtil der trykkes på en tast, inden du lægger indholdet på kontakt-kombinationsliste. <br> Dette kan øge ydeevnen, hvis du har et stort antal kontakter, men det er mindre praktisk)
     NumberOfKeyToSearch=NBR af tegn til at udløse søgning: %s
     NotAvailableWhenAjaxDisabled=Ikke tilgængelige, når Ajax handicappede
     AllowToSelectProjectFromOtherCompany=På tredjeparts dokument kan man vælge et projekt knyttet til en anden tredjepart
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview ikke tilgængeligt
     ThemeCurrentlyActive=Tema aktuelt aktive
     CurrentTimeZone=Aktuelle tidszone
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Datoer gemmes og returneres af databaseserveren som om de blev holdt som sendt streng. Tidszonen har kun virkning, når du bruger UNIX_TIMESTAMP-funktionen (det bør ikke bruges af Dolibarr, så databasen TZ skal ikke have nogen effekt, selvom den er ændret efter indtastning af data).
    +TZHasNoEffect=Datoer gemmes og returneres af databaseserveren som om de blev holdt som sendt streng. Tidszonen har kun virkning, når du bruger UNIX_TIMESTAMP-funktionen (som ikke skal bruges af Dolibarr, så databasen TZ skal ikke have nogen effekt, selvom den er ændret efter indtastning af data).
     Space=Space
     Table=Tabel
     Fields=Områder
    @@ -100,7 +100,7 @@ AntiVirusCommandExample= Eksempel på ClamWin: c: \\ Program Files (x86) \\ Clam
     AntiVirusParam= Flere parametre på kommandolinjen
     AntiVirusParamExample= Eksempel for ClamWin: - database = "C: \\ Programmer (x86) \\ ClamWin \\ lib"
     ComptaSetup=Opsætning af regnskabsmodul
    -UserSetup=Brugernes forvaltning setup
    +UserSetup=Brugerstyring opsætning
     MultiCurrencySetup=Multi-valuta opsætning
     MenuLimits=Grænseværdier og nøjagtighed
     MenuIdParent=Moderselskab menuen ID
    @@ -109,16 +109,16 @@ DetailPosition=Sorter antallet at definere menuen holdning
     AllMenus=Alle
     NotConfigured=Modul/Applikation ikke konfigureret
     Active=Aktiv
    -SetupShort=Setup
    +SetupShort=Opsætning
     OtherOptions=Andre valgmuligheder
    -OtherSetup=Andre indstillinger
    +OtherSetup=Andet opsætning
     CurrentValueSeparatorDecimal=Decimalseparator
     CurrentValueSeparatorThousand=Tusind separator
     Destination=Bestemmelsessted
     IdModule=Modul ID
     IdPermissions=Tilladelses ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Lokalisering parametre
    +LocalisationDolibarrParameters=Oversættelsesparametre
     ClientTZ=Kunden Tidszone (bruger)
     ClientHour=Kunden Tid (bruger)
     OSTZ=Server OS Tids Zone
    @@ -126,8 +126,8 @@ PHPTZ=Tidszone Server PHP
     DaylingSavingTime=Sommertid (bruger)
     CurrentHour=Nuværende time
     CurrentSessionTimeOut=Aktuelle session timeout
    -YouCanEditPHPTZ=For at indstille en anden PHP-tidszone (ikke påkrævet) kan du prøve at tilføje en fil .htaccess med en linje som denne "SetEnv TZ Europe / Paris"
    -HoursOnThisPageAreOnServerTZ=Advarsel, i modsætning til andre skærmbilleder, er timer på denne side ikke i din lokale tidszone, men for serverens tidszone.
    +YouCanEditPHPTZ=Hvis du vil indstille en anden PHP-tidszone (ikke nødvendig), kan du prøve at tilføje en .htaccess-fil med en linje som denne "SetEnv TZ Europe / Paris"
    +HoursOnThisPageAreOnServerTZ=Advarsel, i modsætning til andre skærmbilleder, er timer på denne side ikke i din lokale tidszone, men i serverens tidszone.
     Box=Boks
     Boxes=Bokse
     MaxNbOfLinesForBoxes=Max antal linjer til widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignorer fejl pga. Dubletter  (INSERT IGNORE)
     AutoDetectLang=Autodetect (browsersprog)
     FeatureDisabledInDemo=Funktionen slået fra i demo
     FeatureAvailableOnlyOnStable=Funktionen er kun tilgængelig på officielle stabile versioner
    -BoxesDesc="Bokse" er skærm komponenter, der viser et stykke af oplysninger om nogle sider. Du kan vælge mellem at få vist feltet eller ikke ved at vælge aktiv side og klikke på 'Aktiver', eller ved at klikke på skraldespanden for at deaktivere den.
    +BoxesDesc=Widgets er komponenter, der viser nogle oplysninger, som du kan tilføje for at tilpasse nogle sider. Du kan vælge mellem at vise widgeten eller ej ved at vælge målside og klikke på 'Aktiver' eller ved at klikke på papirkurven for at deaktivere den.
     OnlyActiveElementsAreShown=Kun elementer fra de <a href="%s">aktiverede moduler</a> er vist.
    -ModulesDesc=Dolibarr moduler definere, hvilke funktioner er aktiveret i softwaren. Nogle moduler kræver tilladelser skal du give brugere, efter at have aktiveret modul.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Du kan finde flere moduler som kan downloades på eksterne hjemmesider på internettet ...
    -ModulesDeployDesc=Hvis tilladelser på dit filsystem tillader det, kan du bruge dette værktøj til at installere et eksternt modul. Modulet vil så være synligt på fanen <strong> %s </ strong>.
    +ModulesDeployDesc=Hvis tilladelser i dit filsystem tillader det, kan du bruge dette værktøj til at installere et eksternt modul. Modulet vil så være synligt på fanen <strong> %s</strong>.
     ModulesMarketPlaces=Finde eksterne app/moduler
     ModulesDevelopYourModule=Udvikle din egen app / moduler
    -ModulesDevelopDesc=Du kan udvikle eller finde en partner til at udvikle til dig, dit personlige modul
    -DOLISTOREdescriptionLong=I stedet for at aktivere <a href="https://www.dolistore.com"> www.dolistore.com </a> websitet for at finde et eksternt modul, kan du bruge dette indlejrede værktøj, der vil gøre søgningen på eksternt marked for dig (kan være langsom, brug for internetadgang) ...
    +ModulesDevelopDesc=Du kan også udvikle dit eget modul eller finde en partner til at udvikle en til dig.
    +DOLISTOREdescriptionLong=I stedet for at aktivere <a href="https://www.dolistore.com"> www.dolistore.com </a> websitet for at finde et eksternt modul, kan du bruge dette indlejrede værktøj, der vil udføre søgningen på eksternt marked for dig (kan være langsom, brug for internetadgang) ...
     NewModule=Ny
     FreeModule=Gratis
     CompatibleUpTo=Kompatibel med version %s
    @@ -211,8 +211,8 @@ Nouveauté=Nyhed
     AchatTelechargement=Køb / Download
     GoModuleSetupArea=For at aktivere/installere et nyt modul, skal du gå opsætning af moduler her <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore den officielle markedsplads for Dolibarr ERP / CRM eksterne moduler
    -DoliPartnersDesc=Liste over virksomheder, der leverer specialudviklede moduler eller funktioner (Bemærk: Alle som har erfaring med PHP-programmering kan levere brugerdefineret udvikling til et open source-projekt)
    -WebSiteDesc=Reference hjemmesider for at finde flere moduler...
    +DoliPartnersDesc=Liste over virksomheder, der leverer specialudviklede moduler eller funktioner. <br> Bemærk: Da Dolibarr er en open source-applikation, kan <i> hvem som helst </i>, der har erfaring med PHP-programmering udvikle et modul.
    +WebSiteDesc=Eksterne websites til flere (tredjeparts) tillægsmoduler ...
     DevelopYourModuleDesc=Nogle løsninger til at udvikle dit eget modul ...
     URL=Link
     BoxesAvailable=Bokse til rådighed
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Må ikke gemme adgangskoder i klar i databasen
     MainDbPasswordFileConfEncrypted=Database adgangskode krypteres i conf.php
     InstrucToEncodePass=At have en adgangskode, der er kodet ind <b>conf.php</b> - fil, i stedet for linje <br><b>$dolibarr_main_db_pass="...";</b><br>Med<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=At have password afkodes (clear) i <b>conf.php</b> - fil, i stedet for linje <br><b>$dolibarr_main_db_pass="krypteret:...";</b><br><br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Beskyttelse af genereret pdf-filer (ikke recommandd, pauser masse pdf generation)
    +ProtectAndEncryptPdfFiles=Beskyttelse af genererede PDF-filer IKKE anbefalet (hindrer masse-PDF-generering)
     ProtectAndEncryptPdfFilesDesc=Beskyttelse af et PDF-dokument, holder den til rådighed til at læse og udskrive PDF-browser. Men, redigering og kopiering er ikke længere muligt. Bemærk, at ved hjælp af denne funktion er det ikke muligt at opbygge en/flere globalt flettede Pdf-filer.
     Feature=Funktion
     DolibarrLicense=Licens
    @@ -246,8 +246,8 @@ ExternalResources=Eksterne ressourcer
     SocialNetworks=Sociale netværk
     ForDocumentationSeeWiki=For brugerens eller bygherren dokumentation (doc, FAQs ...), <br> tage et kig på Dolibarr Wiki: <br> <a href="%s" target="_blank"><b> %s</b></a>
     ForAnswersSeeForum=For alle andre spørgsmål / hjælpe, kan du bruge Dolibarr forum: <br> <a href="%s" target="_blank"><b> %s</b></a>
    -HelpCenterDesc1=Dette område kan hjælpe dig med at få en supportfunktion på Dolibarr.
    -HelpCenterDesc2=En del af denne tjeneste er tilgængelig <b>på engelsk</b>.
    +HelpCenterDesc1=Her er nogle ressourcer til at få hjælp og support med Dolibarr.
    +HelpCenterDesc2=Nogle af disse ressourcer er kun tilgængelige i <b> engelsk </b>.
     CurrentMenuHandler=Aktuel menu handleren
     MeasuringUnit=Måleenhed
     LeftMargin=Venstre margen
    @@ -262,33 +262,37 @@ NoticePeriod=Notice period
     NewByMonth=Ny efter måned
     Emails=E-Post
     EMailsSetup=E-post sætop
    -EMailsDesc=Denne side giver dig mulighed for at overskrive dine PHP parametre for e-mails afsendelse. I de fleste tilfælde på Unix / Linux OS, din PHP opsætning er korrekt, og disse parametre er nytteløs.
    +EMailsDesc=Denne side giver dig mulighed for at tilsidesætte dine standard PHP-parametre til afsendelse af e-mails. I de fleste tilfælde på Unix / Linux OS er PHP-opsætningen korrekt, og disse parametre er unødvendige.
     EmailSenderProfiles=E-mails afsender profiler
    -MAIN_MAIL_SMTP_PORT=SMTP Port (som standard i <b>php.ini: %s)</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP Host (Som standard i <b>php.ini: %s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP Port (Ikke defineret i PHP på Unix-lignende systemer)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP Host (Ikke defineret i PHP på Unix-lignende systemer)
    -MAIN_MAIL_EMAIL_FROM=Afsenders e-mail for automatisk e-mails (Som standard i php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=E-mail navn, der bruges til at returnere e-mails (felter 'Fejl-til' i sendte e-mails)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematisk en skjult carbon-kopi af alle sendte e-mails til
    -MAIN_DISABLE_ALL_MAILS=Deaktiver alle de e-mails sendings (til testformål eller demoer)
    +MAIN_MAIL_SMTP_PORT=SMTP / SMTPS-port (standardværdi i php.ini: <b> %s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS-vært (standardværdi i php.ini: <b> %s </b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS Port (Ikke defineret i PHP på Unix-lignende systemer)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (Ikke defineret i PHP på Unix-lignende systemer)
    +MAIN_MAIL_EMAIL_FROM=Afsender-e-mail til automatiske e-mails (standardværdi i php.ini: <b> %s </b>)
    +MAIN_MAIL_ERRORS_TO=E-mail, der bruges til at returnere e-mails ved fejl ('Errors-To' headeren)
    +MAIN_MAIL_AUTOCOPY_TO= Kopier (Bcc) alle sendte e-mails til
    +MAIN_DISABLE_ALL_MAILS=Deaktiver al e-mail afsendelse (til testformål eller demoer)
     MAIN_MAIL_FORCE_SENDTO=Sende alle e-mails til (i stedet for rigtige modtagere, til testformål)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Tilføj medarbejdere med e-mail til tilladte destinationer liste
    -MAIN_MAIL_SENDMODE=Metode til at bruge til at sende e-mails
    -MAIN_MAIL_SMTPS_ID=SMTP ID hvis påkrævet
    -MAIN_MAIL_SMTPS_PW=SMTP Password hvis påkrævet
    -MAIN_MAIL_EMAIL_TLS= Brug TLS (SSL) kryptering
    -MAIN_MAIL_EMAIL_STARTTLS= Brug TLS (STARTTLS) kryptere
    -MAIN_DISABLE_ALL_SMS=Deaktiver alle SMS sendings (til testformål eller demoer)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Tilføj medarbejderbrugere med e-mail i listen over tilladte modtagere
    +MAIN_MAIL_SENDMODE=E-mail-sendemetode
    +MAIN_MAIL_SMTPS_ID=SMTP ID (hvis afsendelse af server kræver godkendelse)
    +MAIN_MAIL_SMTPS_PW=SMTP-adgangskode (hvis afsendelse af server kræver godkendelse)
    +MAIN_MAIL_EMAIL_TLS=Brug TLS (SSL) kryptering
    +MAIN_MAIL_EMAIL_STARTTLS=Brug TLS (STARTTLS) kryptering
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Deaktiver al sms-afsendelse (til testformål eller demoer)
     MAIN_SMS_SENDMODE=Metode til at bruge til at sende SMS
    -MAIN_MAIL_SMS_FROM=Standard afsenderens telefonnummer til afsendelse af SMS'er
    -MAIN_MAIL_DEFAULT_FROMTYPE=Afsender e-mail som standard til manuelle afsendelser (bruger e-mail eller firma email)
    +MAIN_MAIL_SMS_FROM=Standard afsender-telefonnummer til sms-afsendelse
    +MAIN_MAIL_DEFAULT_FROMTYPE=Standard afsender email til manuel afsendelse (Bruger e-mail eller Firma email)
     UserEmail=Bruger e-mail
     CompanyEmail=Firmaets e-mail
     FeatureNotAvailableOnLinux=Funktionen ikke til rådighed på Unix-lignende systemer. Test din sendmail program lokalt.
    -SubmitTranslation=Hvis oversættelse til dette sprog ikke er fuldstændig, eller finder du fejl, kan du rette dette ved at redigere filer i mappen<b> langs/%s</b>, og send din ændring www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=Hvis oversættelse til dette sprog ikke er komplet, eller du finder fejl, kan du rette op ved at redigere filer i mappen <b>langs /%s</b> og indsende din ændring via www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=Hvis oversættelsen for dette sprog ikke er færdigt, eller du finder fejl, kan du rette dette ved at redigere filer i mappen <b> langs / %s </b> og indsende ændrede filer på dolibarr.org/forum eller til udviklere på github.com/ Dolibarr / Dolibarr.
    -ModuleSetup=Modul setup
    +ModuleSetup=Modulopsætning
     ModulesSetup=Moduler / Applikation sætop
     ModuleFamilyBase=System
     ModuleFamilyCrm=Kunderelationsstyring (CRM)
    @@ -301,23 +305,23 @@ ModuleFamilyTechnic=Multi-moduler værktøjer
     ModuleFamilyExperimental=Eksperimentel moduler
     ModuleFamilyFinancial=Finansielle moduler (regnskab/økonomi)
     ModuleFamilyECM=ECM
    -ModuleFamilyPortal=Websteder og anden frontal applikation
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Grænseflader med eksterne systemer
     MenuHandlers=Menu håndterer
    -MenuAdmin=Menu editor
    +MenuAdmin=Rediger menuen
     DoNotUseInProduction=Må ikke anvendes i produktion
     ThisIsProcessToFollow=Dette er trin til at behandle:
     ThisIsAlternativeProcessToFollow=Dette er et alternativt setup til at behandle manuelt:
     StepNb=Trin %s
    -FindPackageFromWebSite=Find en pakke, der giver funktion, du ønsker (for eksempel på web site %s).
    +FindPackageFromWebSite=Find en pakke, der indeholder funktioner, du ønsker (f.eks. På den officielle hjemmeside %s).
     DownloadPackageFromWebSite=Download-pakke (for eksempel fra officielle hjemmeside %s ).
    -UnpackPackageInDolibarrRoot=Udpakning af pakkede filer til directory server, der er dedikeret til Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=For at installere / installere et eksternt modul skal du pakke de pakkede filer ud i serverkataloget dedikeret til moduler: <b> %s </ b>
    -SetupIsReadyForUse=Modul-implementering er færdig. Du skal dog aktivere og opsætning af modulet i din ansøgning ved at gå på den side, til opsætning af moduler: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Udpak / pakk de pakkede filer ud i serverkataloget dedikeret til Dolibarr: <b> %s </b>
    +UnpackPackageInModulesRoot=Hvis du vil installere / installere et eksternt modul, skal du pakke / pakke de pakkede filer ud i serverkataloget dedikeret til eksterne moduler: <br> <b> %s </ b>
    +SetupIsReadyForUse=Modulets implementering er afsluttet. Du skal dog aktivere og opsætte modulet i din ansøgning ved at gå til sideopsætningsmodulerne: <a href="%s"> %s </a>.
     NotExistsDirect=Den alternative rodmappen er ikke defineret til en eksisterende mappe.<br>
     InfDirAlt=Siden version 3, er det muligt at definere en alternativ root directory. Dette giver dig mulighed for at gemme, til en dedikeret mappe, plugins og tilpassede skabeloner.<br / >du skal Bare oprette en mappe i roden af Dolibarr (f.eks: brugerdefineret).<br>
     InfDirExample=<br / >Derefter erklære, at det i filen <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br> Hvis disse linier er kommenteret med "#", for at aktivere dem, skal du udkommentere blot ved at fjerne " # " - tegnet.
    -YouCanSubmitFile=Til dette trin, kan du indsende den .zip-fil af modul-pakke her :
    +YouCanSubmitFile=Alternativt kan du uploade modulet .zip-filpakke:
     CurrentVersion=Dolibarr aktuelle version
     CallUpdatePage=Gå til den side, der opdaterer databasen struktur og data: %s
     LastStableVersion=Seneste stabile version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Se på wiki-siden for en komplet liste over alle aktører og d
     UseACacheDelay= Forsinkelse for caching eksport svar i sekunder (0 eller tomme for ikke cache)
     DisableLinkToHelpCenter=Skjul linket <b>"Har du brug for hjælp eller støtte"</b> på loginsiden
     DisableLinkToHelp=Skjul link til online hjælp "<b>%s</b>\\
    -AddCRIfTooLong=Der er ingen automatisk indpakning, så hvis linje er ude af side om dokumenter, fordi alt for længe, skal du tilføje dig transport afkast i textarea.
    -ConfirmPurge=Er du sikker på du ønsker at udføre denne udrensning?<br>Dette vil slette absolut alle dine data, filer, med ingen måde til at genoprette dem (ECM-filer, vedhæftede filer...).
    +AddCRIfTooLong=Der er ingen automatisk tekstindpakning, tekst, der er for lang, vises ikke på dokumenter. Tilføj venligst vognretur i tekstområdet, hvis det er nødvendigt.
    +ConfirmPurge=Er du sikker på, at du vil udføre denne udrensning? <br> Dette vil permanent slette alle dine datafiler på ingen måde for at gendanne dem (ECM-filer, vedhæftede filer ...).
     MinLength=Mindste længde
     LanguageFilesCachedIntoShmopSharedMemory=Filer. Lang lastet i delt hukommelse
     LanguageFile=Sprogfil
    -ExamplesWithCurrentSetup=Eksempler med den nuværende kører setup
    +ExamplesWithCurrentSetup=Eksempler med den nuværende konfiguration
     ListOfDirectories=Liste over OpenDocument-skabeloner mapper
     ListOfDirectoriesForModelGenODT=Liste over mapper, som indeholder skabeloner filer med OpenDocument format.<br><br>her fulde sti til mapper.<br>Føjer vognretur mellem eah mappe.<br / >for At tilføje en mappe af GED modul, tilføje her <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Filer i disse mapper skal ende med <b>.odt</b> eller <b>.ods</b>.
    -NumberOfModelFilesFound=Antallet af ODT/ODS skabeloner findes filer i disse mapper
    +NumberOfModelFilesFound=Antal ODT / ODS-template filer, der findes i disse mapper
     ExampleOfDirectoriesForModelGen=Eksempler på syntaks: <br> c: \\ mydir <br> / Home / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> At vide hvordan du opretter dine odt dokumentskabeloner, før gemme dem i disse mapper, skal du læse wiki dokumentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,14 +369,14 @@ KeyForWebServicesAccess=Key til at bruge Web Services (parameter &quot;dolibarrk
     TestSubmitForm=Input test formular
     ThisForceAlsoTheme=Med denne menu manager vil også bruge sit eget tema, hvad der er brugerens valg. Også denne menu manager specialiseret for smartphones ikke virker på alle smartphone. Brug en anden menu chef, hvis du oplever problemer på din.
     ThemeDir=Skins mappe
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Svar timeout
     SmsTestMessage=Test besked fra __ PHONEFROM__ til __ PHONETO__
     ModuleMustBeEnabledFirst=Modul <b>%s</b> skal være aktiveret, hvis du har brug for denne funktion.
     SecurityToken=Nøglen til sikker URL'er
    -NoSmsEngine=Ingen SMS-afsender leder til rådighed. SMS-afsender leder ikke er installeret med standard fordeling (fordi de er afhængig af en ekstern leverandør), men du kan finde nogle på http://www.dolistore.com
    +NoSmsEngine=Ingen SMS afsender manager tilgængelig. En SMS-afsender manager er ikke installeret med standardfordelingen, fordi de afhænger af en ekstern leverandør, men du kan finde nogle på %s
     PDF=PDF
    -PDFDesc=Du kan indstille hvert globale muligheder i forbindelse med PDF-generation
    +PDFDesc=Du kan indstille hver global løsning relateret til PDF-generationen
     PDFAddressForging=Regler, Forge Adresse kasser
     HideAnyVATInformationOnPDF=Skjul alle oplysninger relateret til Salgs moms på genereret PDF
     PDFRulesForSalesTax=Regler for salgs moms
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parametre for at sikre URL'er
     SecurityTokenIsUnique=Brug en unik securekey parameter for hver enkelt webadresse
     EnterRefToBuildUrl=Indtast reference for objekter %s
     GetSecuredUrl=Få beregnet URL
    -ButtonHideUnauthorized=Skjule knapperne til ikke-admin-brugere for uautoriserede handlinger i stedet for at vise nedtonet handicappede knapper
    +ButtonHideUnauthorized=Skjul knapper til brugere uden for administrasjon for uautoriserede handlinger i stedet for at vise gråaktiverede knapper
     OldVATRates=Gammel momssats
     NewVATRates=Ny momssats
     PriceBaseTypeToChange=Rediger priser med basisreferenceværdi defineret på
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Vælg liste
     ExtrafieldSelectList = Vælg fra tabellen
     ExtrafieldSeparator=Separator (ikke et felt)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio-knapper (på valg)
    +ExtrafieldRadio=Radio knapper (kun ét valg)
     ExtrafieldCheckBox=Afkrydsningsfelterne
     ExtrafieldCheckBoxFromList=Afkrydsningsfelter fra bordet
     ExtrafieldLink=Link til et objekt
     ComputedFormula=Beregnet felt
     ComputedFormulaDesc=Du kan indtaste her en formel ved hjælp af andre egenskaber af objekt eller en hvilken som helst PHP-kodning for at få en dynamisk beregningsværdi. Du kan bruge alle PHP-kompatible formler, herunder "?" betingelsesoperatør og følgende globale objekt: <br><strong> $ db, $ conf, $ langs, $ mysoc, $ bruger, $ objekt </strong>. <strong> ADVARSEL </strong>: Kun nogle egenskaber på $ objekt kan være tilgængeligt. Hvis du har brug for egenskaber, der ikke er indlæst, skal du bare hente objektet i din formel som i andet eksempel. <br> Ved at bruge et beregnet felt betyder det, at du ikke kan indtaste dig selv nogen værdi fra interface. Hvis der også er en syntaksfejl, kan formlen ikke returnere noget. <br> <br> Eksempel på formel: <br> $ objekt-> id <10? runde ($ objekt-> id / 2, 2): ($ objekt-> id + 2 * $ bruger-> id) * (int) substr ($ mysoc-> zip, 1, 2) <br> <br> Eksempel på genindlæsning af objekt <br> (($ reloadedobj = ny Societe ($ db)) && ($ reloadedobj-> hent ($ obj-> id? $ Obj-> id: ($ obj-> rowid? $ Obj-> rowid: $ object-> id))> 0))? $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> kapital / 5: '-1' <br> <br> Andet eksempel på formel for at tvinge belastning af objekt og dets overordnede objekt: <br> (($ reloadedobj = ny opgave ($ db)) && ($ reloadedobj-> hent ($ objekt-> id)> 0) && ($ secondloadedobj = nyt projekt ($ db)) && ($ secondloadedobj-> hente ($ reloadedobj-> fk_project )> 0))? $ secondloadedobj-> ref: 'Forældreprojekt ikke fundet'
    -ExtrafieldParamHelpPassword=Hold dette felt tomt, betyder værdien gemmes uden kryptering (feltet skal kun være skjult med stjerne på skærmen). <br>Angiv her værdien 'auto' for at bruge standard krypteringsregel til at gemme adgangskode til database ( Så aflæses hash værdien kun og det er ikke muligt at genoprette oprindelig værdi)
    +ExtrafieldParamHelpPassword=Blankt felt her betyder, at denne værdi vil blive gemt uden kryptering (feltet skal kun være skjult med stjerne på skærmen). <br> Vælg 'auto' for at bruge standardkrypteringsreglen til at gemme adgangskoden til databasen (så vil værdien gemmes som en en-vejs hash uden mulighed at hente den oprindelige værdi)
     ExtrafieldParamHelpselect=Liste over værdier, der skal være linjer med format nøgle,værdi (hvor nøglen ikke kan være '0')<br / ><br / > for eksempel : <br>1,værdi1<br>2,værdi2<br>code3,værdi3<br>...<br><br>for at få listen, afhængigt af anden supplerende attributliste :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>for at få listen afhængig af en anden liste :<br>1,værdi1|<i>parent_list_code</i>:parent_key<br>2,værdi2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=Liste over værdier, der skal være linjer med format nøgle,værdi (hvor nøglen ikke kan være '0')<br / ><br / > for eksempel : <br>1,værdi1<br>2,værdi2<br>3,værdi3<br>...
     ExtrafieldParamHelpradio=Liste over værdier, der skal være linjer med format nøgle,værdi (hvor nøglen ikke kan være '0')<br / ><br / > for eksempel : <br>1,værdi1<br>2,værdi2<br>3,værdi3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Standard link
     SetAsDefault=Indstillet som standard
     ValueOverwrittenByUserSetup=Advarsel, denne værdi kan blive overskrevet af bruger-specifik opsætning (hver bruger kan indstille sin egen clicktodial url)
     ExternalModule=Eksternt modul - Installeret i mappe %s
    -BarcodeInitForThirdparties=Mass barcode init for tredjeparter
    +BarcodeInitForthird-parties=Mass barcode init for tredjepart
     BarcodeInitForProductsOrServices=Mass barcode init eller nulstil for produkter eller tjenester
     CurrentlyNWithoutBarCode=I øjeblikket har du <strong> %s </strong> post på <strong> %s </strong> %s uden stregkode defineret.
     InitEmptyBarCode=Initværdi for næste %s tomme poster
     EraseAllCurrentBarCode=Slet alle aktuelle stregkodeværdier
     ConfirmEraseAllCurrentBarCode=Er du sikker på, at du vil slette alle nuværende stregkodeværdier?
     AllBarcodeReset=Alle stregkodsværdier er blevet fjernet
    -NoBarcodeNumberingTemplateDefined=Ingen nummerering stregkode skabelon aktiveret til stregkode modul opsætning.
    +NoBarcodeNumberingTemplateDefined=Ingen nummerering stregkode skabelon aktiveret i stregkode modul opsætning.
     EnableFileCache=Aktivér filcache
     ShowDetailsInPDFPageFoot=Tilføj flere detaljer i footer af PDF-filer, som din virksomhedsadresse eller administrationsnavne (for at udfylde professionelle ids, firmakapital og momsnummer).
     NoDetails=Ikke flere detaljer i footer
     DisplayCompanyInfo=Vis firmaadresse
     DisplayCompanyManagers=Vis administrationsnavne
     DisplayCompanyInfoAndManagers=Vis firmaadresse og ledelsens navne
    -EnableAndSetupModuleCron=Hvis du vil have denne tilbagevendende faktura, der genereres automatisk, skal modul * %s * være aktiveret og korrekt opsat. Ellers skal generering af fakturaer udføres manuelt fra denne skabelon med knappen * Opret *. Bemærk, at selvom du aktiverede automatisk generation, kan du stadig sikkert starte den manuelle generation. Duplikater generation i samme periode er ikke mulig.
    -ModuleCompanyCodeCustomerAquarium=%s efterfulgt af tredjepartskode for en kunde regnskabskode
    -ModuleCompanyCodeSupplierAquarium=%s efterfulgt af tredjeparts leverandør kode for en leverandør regnskabskode
    +EnableAndSetupModuleCron=Hvis du vil have denne tilbagevendende faktura genereret automatisk, skal modul * %s * være aktiveret og korrekt konfigureret. Ellers skal generering af fakturaer udføres manuelt fra denne skabelon ved hjælp af knappen * Opret *. Bemærk, at selvom du aktiverede automatisk generation, kan du stadig sikkert starte den manuelle generation. Generering af duplikater i samme periode er ikke mulig.
    +ModuleCompanyCodeCustomerAquarium=%s efterfulgt af kundekode for en kunderegnskabskode
    +ModuleCompanyCodeSupplierAquarium=%s efterfulgt af leverandør kode for en leverandør regnskabskode
     ModuleCompanyCodePanicum=Returner en tom regnskabskode.
     ModuleCompanyCodeDigitaria=Regnskabskode afhænger tredjepartskode. Koden er sammensat af tegnet "C" som første tegn efterfulgt af de første 5 bogstaver af tredjepartskoden.
    -Use3StepsApproval=Som standard skal indkøbsordrer oprettes og godkendes af 2 forskellige brugere (et trin / bruger til oprettelse og et trin / bruger at godkende. Bemærk at hvis brugeren har begge tilladelser til at oprette og godkende, er et trin / bruger tilstrækkeligt) . Du kan spørge med denne mulighed for at indføre et tredje trin / brugergodkendelse, hvis mængden er højere end en dedikeret værdi (så 3 trin vil være nødvendige: 1 = validering, 2 = første godkendelse og 3 = anden godkendelse, hvis mængden er tilstrækkelig). <br> Indstil dette til tomt, hvis en godkendelse (2 trin) er tilstrækkelig, angiv den til en meget lav værdi (0,1), hvis der kræves en anden godkendelse (3 trin).
    +Use3StepsApproval=Som standard skal indkøbsordrer oprettes og godkendes af 2 forskellige brugere (et trin / bruger til oprettelse og et trin / bruger at godkende. Bemærk at hvis brugeren har begge tilladelser til at oprette og godkende, er et trin / bruger tilstrækkeligt) . Du kan spørge med denne mulighed for at indføre et tredje trin / brugergodkendelse, hvis mængden er højere end en dedikeret værdi (så 3 trin vil være nødvendige: 1 = bekræftelse, 2 = første godkendelse og 3 = anden godkendelse, hvis mængden er tilstrækkelig). <br> Indstil dette til tomt, hvis en godkendelse (2 trin) er tilstrækkelig, angiv den til en meget lav værdi (0,1), hvis der kræves en anden godkendelse (3 trin).
     UseDoubleApproval=Brug en 3-trins godkendelse, når beløbet (uden skat) er højere end ...
    -WarningPHPMail=ADVARSEL: Det er ofte bedre at opsætte udgående e-mails for at bruge e-mail-serveren hos din udbyder i stedet for standardopsætningen. Nogle email-udbydere (som Yahoo) tillader dig ikke at sende en mail fra en anden server end deres egen server. Din nuværende opsætning bruger serveren til applikationen til at sende e-mail og ikke din e-mail-udbyders server, så nogle modtagere (den, der er kompatibel med den restriktive DMARC-protokol), vil spørge din e-mail-udbyder, hvis de kan acceptere din e-mail og nogle emailudbydere (som Yahoo) kan svare "nej", fordi serveren ikke er en server af dem, så få af dine sendte e-mails muligvis ikke accepteres (vær også opmærksom på din e-mail-udbyder at sende kvote). <br> Hvis din e-mail-udbyder Yahoo) har denne begrænsning, du skal ændre Email setup for at vælge den anden metode "SMTP server" og indtaste SMTP serveren og legitimationsoplysninger fra din e-mail-udbyder (spørg din e-mail-udbyder for at få SMTP-legitimationsoplysninger til din konto).
    +WarningPHPMail=ADVARSEL: Det er ofte bedre at opsætte udgående e-mails for at bruge e-mail-serveren hos din udbyder i stedet for standardopsætningen. Nogle email-udbydere (som Yahoo) tillader dig ikke at sende en mail fra en anden server end deres egen server. Din nuværende opsætning bruger serveren til applikationen til at sende e-mail og ikke din e-mail-udbyder, så nogle modtagere (den, der er kompatibel med den restriktive DMARC-protokol), vil spørge din e-mail-udbyder, hvis de kan acceptere din e-mail og nogle emailudbydere (som Yahoo) kan svare "nej", fordi serveren ikke er deres, så få af dine sendte e-mails muligvis ikke accepteres (pas også på din e-mail-udbyders sendekvote). <br> Hvis din e-mail-udbyder (som Yahoo) har Denne begrænsning, du skal ændre Email setup for at vælge den anden metode "SMTP server" og indtaste SMTP serveren og legitimationsoplysninger fra din e-mail-udbyder (spørg din e-mail-udbyder for at få SMTP-legitimationsoplysninger for din konto).
     WarningPHPMail2=Hvis din e-mail SMTP udbyder skal begrænse e-mail klienten til nogle IP-adresser (meget sjælden), er dette IP-adressen til e-mail bruger agenten (MUA) til din ERP CRM-applikation: <strong> %s </strong>.
     ClickToShowDescription=Klik for at vise beskrivelse
     DependsOn=Dette modul har brug for modulet / modulerne
     RequiredBy=Dette modul er påkrævet efter modul (er)
    -TheKeyIsTheNameOfHtmlField=Dette er navnet på HTML-feltet. Dette skal have tekniske knowledges til at læse indholdet af HTML-siden for at få nøglenavnet på et felt.
    -PageUrlForDefaultValues=Du skal indtaste her den relative url på siden. Hvis du indbefatter parametre i URL, vil standardværdierne være effektive, hvis alle parametre er indstillet til samme værdi. Eksempler:
    -PageUrlForDefaultValuesCreate=<br> For formular til oprettelse af en ny tredjepart er det <strong> %s </strong>, <br> Hvis du kun vil have standardværdi, hvis url har nogle parametre, kan du bruge <strong> %s </strong>
    -PageUrlForDefaultValuesList=<br> For en side, der viser tredjeparter, er det <strong> %s </strong>, <br> Hvis du kun vil have standardværdi, hvis url har nogle parametre, kan du bruge <strong> %s </strong>
    +TheKeyIsTheNameOfHtmlField=Dette er navnet på HTML-feltet. Teknisk viden er nødvendig for at læse indholdet af HTML-siden for at få nøglenavnet på et felt.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Aktivér brug af personlige standardværdier
    -EnableOverwriteTranslation=Aktivér brug af overskrivet oversættelse
    -GoIntoTranslationMenuToChangeThis=Der er fundet en oversættelse for nøglen med denne kode, så for at ændre denne værdi skal du redigere den fra Home-Setup-translation.
    +EnableOverwriteTranslation=Aktivér brug af overskrevet oversættelse
    +GoIntoTranslationMenuToChangeThis=Der er fundet en oversættelse for nøglen med denne kode. For at ændre denne værdi skal du redigere den fra Hjem-Indstillinger-oversættelse.
     WarningSettingSortOrder=Advarsel, indstilling af en standard sorteringsrækkefølge kan medføre en teknisk fejl, når du går på listesiden, hvis feltet er et ukendt felt. Hvis du oplever en sådan fejl, skal du komme tilbage til denne side for at fjerne standard sorteringsrækkefølgen og gendanne standardadfærd.
     Field=Field
     ProductDocumentTemplates=Dokumentskabeloner til generering af produktdokument
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send dagsorden påmindelser via e-mails
     davDescription=Tilføj en komponent til at være en DAV-server
     DAVSetup=Opstilling af modul DAV
     DAV_ALLOW_PUBLIC_DIR=Aktivér det offentlige bibliotek (WebDav bibliotek uden login)
    -DAV_ALLOW_PUBLIC_DIRTooltip=WebDAV biblioteket er en WebDAV mappe, som alle kan få adgang til (i læse- og skrivefunktion), uden at skulle have / bruge en eksisterende login / adgangskonto.
    +DAV_ALLOW_PUBLIC_DIRTooltip=WebDav-biblioteket er et WebDAV-bibliotek, som alle kan få adgang til (i læse- og skrivefunktion), uden at skulle have / bruge en eksisterende login / adgangskonto.
    +DAV_ALLOW_ECM_DIR=Aktivér roddirektøren for DMS / ECM-modulet (login påkrævet)
    +DAV_ALLOW_ECM_DIRTooltip=Rotmappen, hvor alle filer uploades manuelt, når du bruger DMS / ECM-modulet. Ligesom til funktionen fra webgrænsefladen, skal du have et gyldigt login / adgangskode med tilladte tilladelser for at få adgang til det.
     # Modules
     Module0Name=Brugere og grupper
     Module0Desc=Brugere / Medarbejdere og Grupper management
    -Module1Name=Tredjemand
    -Module1Desc=Virksomheder og kontakter "forvaltning
    +Module1Name=Tredjeparter
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Tilbud
     Module2Desc=Tilbudshåndtering
     Module10Name=Regnskab
    -Module10Desc=Enkelte regnskabsrapporter (Kassekladde, omsætning) baseret på databaseindhold. Bruger ikke nogen kontoplan.
    +Module10Desc=Enkelte regnskabsrapporter (tidsskrifter, omsætning) baseret på databaseindhold. Bruger ikke nogen oversigtstabel.
     Module20Name=Tilbud
     Module20Desc=Tilbudshåndtering
     Module22Name=E-mails
    @@ -495,13 +501,13 @@ Module23Desc=Overvågning af forbruget af energi
     Module25Name=Kundeordrer
     Module25Desc=Kundeordrestyring
     Module30Name=Fakturaer
    -Module30Desc=Fakturaer og kreditnotaer 'forvaltning for kunderne. Faktura 'forvaltning for leverandører
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Leverandører
     Module40Desc=Leverandører og indkøbs styring (købsordrer og fakturering)
     Module42Name=Debug Logs
     Module42Desc=Logning faciliteter (fil, syslog, ...). Disse logs er for teknisk/debug formål.
    -Module49Name=Redaktion
    -Module49Desc=Editors' ledelse
    +Module49Name=Tekstredigeringsværktøjer
    +Module49Desc=Indstillinger for tekstredigeringsværktøjer
     Module50Name=Varer
     Module50Desc=Varestyring
     Module51Name=Masseforsendelser
    @@ -511,62 +517,62 @@ Module52Desc=Lagerstyring (varer)
     Module53Name=Ydelser
     Module53Desc=Styring af ydelser
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Styring af kontrakter (tjenester eller reccuring abonnementer)
    +Module54Desc=Forvaltning af kontrakter (tjenester eller tilbagevendende abonnementer)
     Module55Name=Stregkoder
    -Module55Desc=Stregkoder 'ledelse
    +Module55Desc=Stregkoder administration
     Module56Name=Telefoni
     Module56Desc=Telefoni integration
     Module57Name="Direkte bank" betaling ordrer
    -Module57Desc=Håndtering af betaling via "Direkte Debitering" ordrer. Det omfatter generation af SEPA-fil for de europæiske lande.
    +Module57Desc=Forvaltning af ordrer med direkte debitering. Det omfatter generering af SEPA-fil for europæiske lande.
     Module58Name=ClickToDial
     Module58Desc=ClickToDial integration
     Module59Name=Bookmark4u
     Module59Desc=Tilføj funktion til at generere Bookmark4u konto fra en Dolibarr konto
     Module70Name=Interventioner
    -Module70Desc=Interventioner "forvaltning
    +Module70Desc=Interventioner administration
     Module75Name=Udgifter og ture noter
    -Module75Desc=Udgifter og ture noter 'ledelse
    +Module75Desc=Udgifter/Rejse bilag administration
     Module80Name=Sendings
    -Module80Desc=Sendings og levering ordrer 'ledelse
    -Module85Name=Banker og penge
    -Module85Desc=Forvaltning af bank-eller kontokurantkonti
    -Module100Name=ExternalSite
    -Module100Desc=Medtag eventuelle eksterne web site i Dolibarr menuer og se det i en Dolibarr ramme
    +Module80Desc=Forsendelse/Levering administration
    +Module85Name=Banker og kontanter
    +Module85Desc=Forvaltning af bank/kontant konti
    +Module100Name=Eksternt websted
    +Module100Desc=Tilføj ekstern hjemmeside-link til Dolibarr menuer for at se det i en Dolibarr ramme
     Module105Name=Mailman og Sip
     Module105Desc=Mailman eller SPIP interface til medlem-modul
     Module200Name=LDAP
    -Module200Desc=LDAP directory synkronisering
    +Module200Desc=LDAP-katalogsynkronisering
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data eksport
    -Module240Desc=Værktøj til at eksportere Dolibarr data (med assistenter)
    +Module240Desc=Værktøj til at eksportere Dolibarr-data (med hjælp)
     Module250Name=Data import
    -Module250Desc=Værktøj til at importere data ind i Dolibarr (med assistenter)
    +Module250Desc=Værktøj til at importere data til Dolibarr (med hjælp)
     Module310Name=Medlemmer
     Module310Desc=Instituttets medlemmer forvaltning
     Module320Name=RSS Feed
     Module320Desc=Tilføj RSS feed inde Dolibarr skærmen sider
    -Module330Name=Bogmærker
    -Module330Desc=Bogmærker forvaltning
    -Module400Name=Projekter/Muligheder/Kundeemner
    -Module400Desc=Ledelse af projekter, muligheder/kundeemner og/eller opgaver. Du kan også tildele et element (faktura, ordre, forslag, intervention, ...) til et projekt og få et tværgående udsigt fra projektet udsigt.
    +Module330Name=Bogmærker og genveje
    +Module330Desc=Opret genveje, der altid er tilgængelige, til de interne eller eksterne sider, som du ofte har adgang til
    +Module400Name=Projekter eller Potentielle kunder
    +Module400Desc=Forvaltning af projekter, ledere / muligheder og / eller opgaver. Du kan også tildele et element (faktura, ordre, forslag, intervention, ...) til et projekt og få et tværgående billede fra projektvisningen.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Skatter og særlige omkostninger
     Module500Desc=Opsætning af andre udgifter (salgsafgifter, sociale eller skattemæssige skatter, udbytte, ...)
     Module510Name=Betaling af medarbejderløn
    -Module510Desc=Optag og følg betalingen af ​​dine medarbejderlønninger
    +Module510Desc=Optag og spørg medarbejderbetalinger
     Module520Name=Loan
     Module520Desc=Forvaltning af lån
     Module600Name=Notifikationer om forretningshændelser
    -Module600Desc=Send e-Mail meddelelser (udløst af nogle forretningsmæssige begivenheder) til brugere (setup, der er defineret på hver enkelt bruger), til tredjepart kontakter (setup, der er defineret på hver tredje part) eller til en standart e-mails
    -Module600Long=Bemærk, at dette modul er dedikeret til at sende real-time e-mails, når der sker en dedikeret forretningshændelse. Hvis du leder efter en funktion til at sende påmindelser via e-mail til dine agendahændelser, skal du gå ind i opsætningen af ​​modulets dagsorden.
    +Module600Desc=Send e-mail-meddelelser udløst af en forretningsbegivenhed, for brugere (opsætning defineret på hver bruger), tredjeparts kontakter (opsætning defineret på hver tredjepart) eller til definerede e-mails
    +Module600Long=Bemærk, at dette modul sender e-mails i realtid, når en bestemt forretningsbegivenhed opstår. Hvis du leder efter en funktion til at sende e-mail påmindelser af dagsordensbegivenheder, skal du gå ind i opsætningen af ​​modulets dagsorden.
     Module610Name=Produkt Varianter
    -Module610Desc=Giver mulighed for oprettelse af produkter-variant baseret på egenskaber (farve, størrelse, ...)
    +Module610Desc=Oprettelse af produktvarianter (farve, størrelse osv.)
     Module700Name=Donationer
     Module700Desc=Gaver 'ledelse
     Module770Name=Udgiftsrapporter
    -Module770Desc=Forvaltning og krav om udgiftsrapporter (transport, måltid, ...)
    +Module770Desc=Administrer og gør krav på omkostningsrapporter (transport, måltid, ...)
     Module1120Name=Forhandler kommercielt forslag
     Module1120Desc=Forespørg levenrandør om indkøbsordre og priser
     Module1200Name=Mantis
    @@ -575,14 +581,14 @@ Module1520Name=Dokumentgenerering
     Module1520Desc=Massemail dokumentgenerering
     Module1780Name=Tags/Categories
     Module1780Desc=Opret tags/kategori (produkter, kunder, leverandører, kontakter eller medlemmer)
    -Module2000Name=FCKeditor
    -Module2000Desc=Giver mulighed for at redigere nogle tekst-området ved hjælp af en avanceret editor (Baseret på CKEditor)
    +Module2000Name=WYSIWYG tekstredigeringsværktøj
    +Module2000Desc=Tillad, at tekstfelter redigeres ved hjælp af CKEditor
     Module2200Name=Dynamiske Priser
     Module2200Desc=Aktivér brugen af ​​matematiske udtryk til priser
     Module2300Name=Scheduled jobs
     Module2300Desc=Planlagte job management (alias cron eller chrono tabel)
     Module2400Name=Begivenheder/tidsplan
    -Module2400Desc=Følg færdige og kommende begivenheder. Lad applikation logge automatisk begivenheder til sporingsformål eller optage manuelle begivenheder eller rendez-vous. Dette er det vigtigste vigtige modul for en god kunde- eller leverandørrelationsstyring.
    +Module2400Desc=Spor begivenheder. Lad Dolibarr logge automatisk hændelser til sporingsformål eller optage manuelle hændelser eller møder. Dette er hovedmodulet for god kunde- eller leverandørrelationsstyring.
     Module2500Name=DMS / ECM
     Module2500Desc=Dokument Management System / Esdh. Automatisk organisering af dit genereret eller lagrede dokumenter. Dele dem, når du har brug for.
     Module2600Name=API/webservices (SOAP-server)
    @@ -590,16 +596,16 @@ Module2600Desc=Aktivere Dolibarr SOAP-server, der leverer API service
     Module2610Name=API / Web-tjenester (REST-server)
     Module2610Desc=Aktivér Dolibarr REST-serveren, der leverer API-tjenester
     Module2660Name=Ring til webservices (SOAP-klient)
    -Module2660Desc=Aktivér Dolibarr web services klienten (Kan bruges til at skubbe data / forespørgsler til eksterne servere. Leverandør ordrer understøttes kun for øjeblikket)
    +Module2660Desc=Aktivér Dolibarr web services klienten (Kan bruges til at skubbe data / anmodninger til eksterne servere. Kun Leverandør ordrer understøttes for øjeblikket.)
     Module2700Name=Gravatar
    -Module2700Desc=Brug online Gravatar service (www.gravatar.com) for at vise foto af brugere / medlemmer (fundet med deres e-mails). Har brug for en internetadgang
    +Module2700Desc=Brug online Gravatar service (www.gravatar.com) for at vise foto af brugere / medlemmer (fundet med deres e-mails). Kræver internetadgang
     Module2800Desc=FTP Klient
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind konverteringer kapaciteter
     Module3100Name=Skype
     Module3100Desc=Tilføj en Skype-knap til brugere / tredjeparter / kontakter / medlemskort
     Module3200Name=Uændrede arkiver
    -Module3200Desc=Aktiver log af nogle forretningsbegivenheder i en uforanderlig logfil. Begivenheder arkiveres i realtid. Loggen er en tabel med sammenkædede begivenheder, som kun kan læses og eksporteres. Dette modul kan være obligatorisk for nogle lande.
    +Module3200Desc=Aktivér en uforanderlig log over forretningsbegivenheder. Begivenheder arkiveres i realtid. Loggen er et skrivebeskyttet bord af kæden, der kan eksporteres. Dette modul kan være obligatorisk for nogle lande.
     Module4000Name=HRM
     Module4000Desc=Human resources management (forvaltningen af ​​afdelingen, medarbejderkontrakter og følelser)
     Module5000Name=Multi-selskab
    @@ -609,39 +615,43 @@ Module6000Desc=Workflow management (automatisk oprettelse af objekt og/eller aut
     Module10000Name=websteder
     Module10000Desc=Opret offentlige websteder med en WYSIWG editor. Du skal bare konfigurere din webserver (Apache, Nginx, ...) for at pege på den dedikerede Dolibarr-mappe for at få den online på internettet med dit eget domænenavn.
     Module20000Name=Forespørgselsstyring
    -Module20000Desc=Erklære og følge medarbejdere forespørgelse
    +Module20000Desc=Indtast og følg medarbejderes afspaseringsanmodninger
     Module39000Name=Produkter masser
     Module39000Desc=Parti- eller serienummer, spisesteder og salgsdato-ledelse på produkter
    +Module40000Name=Multicurrency
    +Module40000Desc=Brug alternative valutaer i priser og dokumenter
     Module50000Name=PAYBOX
    -Module50000Desc=Modul til at tilbyde en online-betalings side til at acceptere betalinger via PayPal (kreditkort-eller PayPal-kredit). Dette kan bruges til at give dine kunder en mulighed for at foretage betalinger eller til betaling på en særlig Dolibarr objekt (faktura, ordre, ...)
    +Module50000Desc=Tilbyde kunder en PayBox online betalingsside (kredit / betalingskort). Dette kan bruges til at give dine kunder mulighed for at foretage gratis betalinger eller til betaling på et bestemt Dolibarr-objekt (faktura, ordre, ...)
     Module50100Name=Kasseapparat
     Module50100Desc=Kasseapparats modul (POS)
    +Module50150Name=Kasseapparat
    +Module50150Desc=Salgsmodul (Touch Screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Modul til at tilbyde en online-betalings side til at acceptere betalinger via PayPal (kreditkort-eller PayPal-kredit). Dette kan bruges til at give dine kunder en mulighed for at foretage betalinger eller til betaling på en særlig Dolibarr objekt (faktura, ordre, ...)
    +Module50200Desc=Tilbyde kunder en PayPal online betalingsside (PayPal-konto eller kredit / betalingskort). Dette kan bruges til at give dine kunder mulighed for at foretage gratis betalinger eller til betaling på et bestemt Dolibarr-objekt (faktura, ordre, ...)
     Module50400Name=Regnskab (avanceret)
    -Module50400Desc=Regnskabs administration (dobbelt posteringer, kontoplan og extra bogføring). Eksporter bogholdriet i andre software formater.
    +Module50400Desc=Regnskabsadministration (dobbelt poster, støtte generel og ekstra ledger). Eksporter højboksen i flere andre regnskabsmæssige softwareformater.
     Module54000Name=PrintIPP
    -Module54000Desc=Direkte udskrivning (uden at åbne dokumenterne) ved hjælp af IPP-konnektorens kopper (Printeren skal være synlig fra serveren, og CUPS skal installeres på serveren).
    +Module54000Desc=Direkte udskrivning (uden at åbne dokumenterne) ved hjælp af IPP-konnektorer (Printer skal være synlig fra serveren, og CUPS skal installeres på serveren).
     Module55000Name=Afstemning, Undersøgelse eller Afstemning
    -Module55000Desc=Modul til online undersøgelser, undersøgelser eller stemmer (som Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Modul til at oprette online undersøgelser, undersøgelser eller stemmer (som Doodle, Studs, Rdvz, ...)
     Module59000Name=Margin
     Module59000Desc=Modul til at styre avancer
     Module60000Name=Kommissioner
     Module60000Desc=Modul til at håndtere Kommissioner
    -Module62000Name=Incoterm
    -Module62000Desc=Tilføj funktioner til at administrere Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Tilføj funktioner til at administrere Incoterms
     Module63000Name=Ressourcer
     Module63000Desc=Administrer ressourcer (printere, biler, rum, ...), så kan du dele i begivenheder
     Permission11=Læs fakturaer
     Permission12=Opret/rediger kundefakturaer
     Permission13=Unvalidate fakturaer
    -Permission14=Valider fakturaer
    +Permission14=Bekræft fakturaer
     Permission15=Send fakturaer via e-mail
     Permission16=Opret betalinger for fakturaer
     Permission19=Slet fakturaer
     Permission21=Læs tilbud
     Permission22=Opret/rediger tilbud
    -Permission24=Valider tilbud
    +Permission24=Bekræft tilbud
     Permission25=Send tilbud
     Permission26=Luk tilbud
     Permission27=Slet tilbud
    @@ -651,9 +661,9 @@ Permission32=Opret/rediger varer/ydelser
     Permission34=Slet varer/ydelser
     Permission36=Se/administrer skjulte varer
     Permission38=Eksportere produkter
    -Permission41=Opret/rediger projekter (delte projekter og projekter jeg er kontaktperson for). Kan også oprette opgaver og tildele brugere projekter og opgaver
    -Permission42=Opret/rediger projekter (delte projekter og projekter jeg er kontaktperson for). Kan også oprette opgaver og tildele brugere projekter og opgaver
    -Permission44=Slet projekter
    +Permission41=Læs projekter og opgaver (delt projekt og projekter jeg er kontakt til). Kan også indtaste tidskrævet, for mig eller mit hierarki, på tildelte opgaver (Tidsskema)
    +Permission42=Opret / rediger projekter (delt projekt og projekter jeg er kontakt til). Kan også oprette opgaver og tildele brugere projekt og opgaver
    +Permission44=Slet projekter (delte projekter og projekter jeg er kontaktperson for)
     Permission45=Eksport projekter
     Permission61=Læs interventioner
     Permission62=Opret/rediger indgreb
    @@ -668,7 +678,7 @@ Permission78=Læs abonnementer
     Permission79=Opret/rediger abonnementer
     Permission81=Læs kundernes ordrer
     Permission82=Opret/rediger kundeordrer
    -Permission84=Validere kundernes ordrer
    +Permission84=Bekræfte kundernes ordrer
     Permission86=Send kundernes ordrer
     Permission87=Luk kunderne ordrer
     Permission88=Annuller kundernes ordrer
    @@ -680,13 +690,13 @@ Permission94=Eksporter skatter/afgifter
     Permission95=Læs rapporter
     Permission101=Læs sendings
     Permission102=Opret/rediger forsendelser
    -Permission104=Valider forsendelser
    +Permission104=Bekræft forsendelser
     Permission106=Eksporter forsendelser
     Permission109=Slet forsendelser
     Permission111=Læs finanskonti
     Permission112=Opret/rediger/slet og sammenlign transaktioner
     Permission113=Opsæt finanskonti (opret, håndter kategorier)
    -Permission114=Afstemme transaktioner
    +Permission114=Afstem transaktioner
     Permission115=Eksporttransaktioner og kontoudtog
     Permission116=Overførsler mellem konti
     Permission117=Administrer checks lastfordelingen
    @@ -694,15 +704,15 @@ Permission121=Læs tredjemand knyttet til brugerens
     Permission122=Opret/rediger tredjeparter knyttet til brugeren
     Permission125=Slet tredjemand knyttet til brugerens
     Permission126=Eksporter tredjemand
    -Permission141=Læs alle projekter og opgaver (også private projekter, jeg ikke har kontakt til)
    -Permission142=Opret/rediger alle projekter og opgaver (også private projekter, jeg ikke har kontakt til)
    +Permission141=Læs alle projekter og opgaver (også private projekter jeg er ikke kontakt til)
    +Permission142=Opret / rediger alle projekter og opgaver (også private projekter jeg er ikke kontakt til)
     Permission144=Slet alle projekter og opgaver (også private projekter, jeg ikke har kontakt til)
     Permission146=Læs udbydere
     Permission147=Læs statistikinterval
     Permission151=Læs "direkte debitering" ordrer
     Permission152=Oprette/ændre en betaling med "direkte debitering" ordrer
     Permission153=Sende/Overføre betaling via "direkte debitering" ordrer
    -Permission154=Registere Kreditter/Afvisninger af en betaling med "direkte debitering" ordrer
    +Permission154=Optag kreditter / Afslag på ordrer med direkte debitering
     Permission161=Læs kontrakter/abonnement
     Permission162=Opret / ændre kontrakter/abonnement
     Permission163=Aktivering af en tjeneste/abonnement af en kontrakt,
    @@ -717,7 +727,7 @@ Permission178=Eksport rejser og udgifter
     Permission180=Læs leverandører
     Permission181=Læs leverandør ordrer
     Permission182=Opret/rediger leverandørordrer
    -Permission183=Valider leverandør ordrer
    +Permission183=Bekræft leverandør ordrer
     Permission184=Godkend leverandør ordrer
     Permission185=Bestille eller afbestille leverandør ordrer
     Permission186=Modtag leverandør ordrer
    @@ -734,11 +744,11 @@ Permission206=Læs tilslutninger
     Permission211=Læs Telefoni
     Permission212=Ordrelinjer
     Permission213=Aktivér linje
    -Permission214=Setup Telefoni
    -Permission215=Setup udbydere
    +Permission214=Opsætningstelefoni
    +Permission215=Opsætningsudbydere
     Permission221=Læs emailings
     Permission222=Opret/rediger e-mails (emne, modtagere ...)
    -Permission223=Valider emailings (tillader afsendelse)
    +Permission223=Bekræft emailings (tillader afsendelse)
     Permission229=Slet emailings
     Permission237=Se modtagere og info
     Permission238=Send e-mails manuelt
    @@ -750,12 +760,12 @@ Permission244=Se indholdet af den skjulte kategorier
     Permission251=Læs andre brugere og grupper
     PermissionAdvanced251=Læse andre brugere
     Permission252=Opret / ændre andre brugere, grupper og yours permisssions
    -Permission253=Opret/rediger andre brugere, grupper og tilladelser
    +Permission253=Opret / rediger andre brugere, grupper og tilladelser
     PermissionAdvanced253=Opret/rediger interne/eksterne brugere og tilladelser
     Permission254=Opret/rediger kun eksterne brugere
     Permission255=Opret/rediger anden brugers adgangskode
     Permission256=Ændre sin egen adgangskode
    -Permission262=Udvide adgang til alle tredjeparter (ikke kun tredjeparter, der bruger et salg, repræsentant).<br / >Ikke er effektiv til eksterne brugere (altid begrænset til sig selv til forslag, ordrer, fakturaer, kontrakter, osv.).<br / >Ikke er effektiv til projekter (kun regler om projektet tilladelser, synlighed og assignement spørgsmål).
    +Permission262=Udvid adgang til alle tredjeparter (ikke kun tredjeparter, som bruger er salgsrepræsentant). <br> Ikke effektiv for eksterne brugere (altid begrænset til sig selv for forslag, ordrer, fakturaer, kontrakter mv.). <br>Effektiv til projekter (kun regler om projekttilladelser, synlighed og opgaver).
     Permission271=Læs CA
     Permission272=Læs fakturaer
     Permission273=Udsteder fakturaer
    @@ -765,7 +775,7 @@ Permission283=Slet kontakter
     Permission286=Eksporter kontaktpersoner
     Permission291=Læs takster
     Permission292=Angive tilladelser på de tariffer
    -Permission293=Rediger kundernes takster
    +Permission293=Ændre i kundernes takster
     Permission300=Læs stregkoder
     Permission301=Opret/rediger stregkoder
     Permission302=Slet stregkoder
    @@ -785,13 +795,11 @@ Permission354=Slet eller deaktivere grupper
     Permission358=Eksport brugere
     Permission401=Læs rabatter
     Permission402=Opret/rediger rabatter
    -Permission403=Valider rabatter
    +Permission403=Bekræft rabatter
     Permission404=Slet rabatter
    -Permission501=Læs medarbejderkontrakter / lønninger
    -Permission502=Opret / modificere medarbejderkontrakter / lønninger
    -Permission511=Læs betaling af lønninger
    -Permission512=Opret / modificer betaling af løn
    -Permission514=Slet lønninger
    +Permission511=Læs lønudbetalinger
    +Permission512=Opret / modificer lønudbetalinger
    +Permission514=Slet betaling af lønninger
     Permission517=Eksport lønninger
     Permission520=Læs lån
     Permission522=Opret / modificer lån
    @@ -820,12 +828,12 @@ Permission1004=Læs bestand bevægelser
     Permission1005=Opret/rediger lagerændringer
     Permission1101=Læs levering ordrer
     Permission1102=Opret/rediger leveringsordrer
    -Permission1104=Valider levering ordrer
    +Permission1104=Bekræft levering ordrer
     Permission1109=Slet levering ordrer
     Permission1181=Læs leverandører
     Permission1182=Læs leverandør ordrer
     Permission1183=Opret/rediger leverandørordrer
    -Permission1184=Valider leverandør ordrer
    +Permission1184=Bekræft leverandør ordrer
     Permission1185=Godkend leverandør ordrer
     Permission1186=Bestil leverandør ordrer
     Permission1187=Anerkende modtagelsen af leverandør ordrer
    @@ -835,7 +843,7 @@ Permission1201=Få resultatet af en eksport
     Permission1202=Opret/rediger en eksport
     Permission1231=Læs leverandør fakturaer
     Permission1232=Opret/rediger leverandørfakturaer
    -Permission1233=Valider leverandør fakturaer
    +Permission1233=Bekræft leverandør fakturaer
     Permission1234=Slet leverandør fakturaer
     Permission1235=Send leverandørfakturaer via e-mail
     Permission1236=Eksporter leverandør fakturaer, attributter og betalinger
    @@ -844,8 +852,8 @@ Permission1251=Kør massen import af eksterne data i databasen (data belastning)
     Permission1321=Eksporter kunde fakturaer, attributter og betalinger
     Permission1322=Genåb en betalt regning
     Permission1421=Eksporter kundens ordrer og attributter
    -Permission20001=Læs anmodninger om orlov (dine blade og din underordnede)
    -Permission20002=Opret/rediger dine anmodninger om orlov (dine blade og din underordnede)
    +Permission20001=Læs anmodninger om orlov (din orlov og din underordnede)
    +Permission20002=Opret / rediger dine anmodninger om orlov (din orlov og din underordnede)
     Permission20003=Slet permitteringsforespørgsler
     Permission20004=Læs alle orlovs forespørgsler (selv om bruger ikke er underordnede)
     Permission20005=Opret / modtag anmodninger om orlov for alle (selv af bruger ikke underordnede)
    @@ -864,7 +872,7 @@ Permission2414=Eksporter handlinger / opgaver af andre
     Permission2501=Læse dokumenter
     Permission2502=Indsend eller slette dokumenter
     Permission2503=Indsend eller slette dokumenter
    -Permission2515=Setup dokumenter abonnentfortegnelser
    +Permission2515=Opsæt dokumentdokumenter
     Permission2801=Brug FTP-klient i læsemodus (kun gennemse og download)
     Permission2802=Brug FTP-klient i skrivefunktion (slet eller upload filer)
     Permission50101=Brug salgssted
    @@ -882,7 +890,7 @@ Permission63003=Slet ressourcer
     Permission63004=Link ressourcer til begivenheder i tidsplan
     DictionaryCompanyType=Typer af tredjeparter
     DictionaryCompanyJuridicalType=Juridiske former for tredjeparter
    -DictionaryProspectLevel=Prospect potentielle niveau
    +DictionaryProspectLevel=Kundepotentialeniveau
     DictionaryCanton=Stat/provins
     DictionaryRegion=Regioner
     DictionaryCountry=Lande
    @@ -894,7 +902,7 @@ DictionaryVAT=Momssatser
     DictionaryRevenueStamp=Skattefrihedsbeløb
     DictionaryPaymentConditions=Betalingsbetingelser
     DictionaryPaymentModes=Betalingsformer
    -DictionaryTypeContact=Kontakt/adresse-typer
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type af hjemmesider/containere
     DictionaryEcotaxe=Miljøafgift (WEEE)
     DictionaryPaperFormat=Papir formater
    @@ -908,47 +916,47 @@ DictionarySource=Oprindelse af tilbud/ordrer
     DictionaryAccountancyCategory=Personlige grupper til rapporter
     DictionaryAccountancysystem=Modeller til kontoplan
     DictionaryAccountancyJournal=Kontokladder
    -DictionaryEMailTemplates=E-mail skabeloner
    +DictionaryEMailTemplates=Email skabeloner
     DictionaryUnits=Enheder
    -DictionaryProspectStatus=Prospektionsstatus
    -DictionaryHolidayTypes=Typer af blade
    -DictionaryOpportunityStatus=Opportunity status for projekt / bly
    +DictionaryProspectStatus=Status på potentielle kunder
    +DictionaryHolidayTypes=Typer af orlov
    +DictionaryOpportunityStatus=Ledestatus for projekt / bly
     DictionaryExpenseTaxCat=Udgiftsrapport - Transportkategorier
     DictionaryExpenseTaxRange=Omkostningsrapport - Område efter transportkategori
    -SetupSaved=Setup gemt
    +SetupSaved=Opsætning gemt
     SetupNotSaved=Opsætning er ikke gemt
     BackToModuleList=Tilbage til moduler liste
    -BackToDictionaryList=Tilbage til liste over ordbøger
    +BackToDictionaryList=Tilbage til listen over ordbøger
     TypeOfRevenueStamp=Afgifts type
    -VATManagement=Momshåndtering
    -VATIsUsedDesc=Når der oprettes tilbud, fakturaer, ordrer osv., bruges som standard følgende regler for moms:<br>• Hvis sælger ikke er momspligtig, benyttes momssatsen 0.<br>• Hvis afsenderlandet er det samme som modtagerlandet, benyttes momssatsen for varen i afsenderlandet.<br>• Hvis både sælger og køber befinder sig i EU, og det drejer sig om fysiske varer, benyttes momssatsen 0. (Det forventes at køber betaler momsen i det modtagende land).<br>• Hvis både sælger og køber befinder sig i EU, og køber er en privatperson, benyttes momssatsen for varen i afsenderlandet.<br>• Hvis både sælger og køber befinder sig i EU, og køber er et firma, benyttes momssatsen 0.<br>• I alle andre tilfælde benyttes momssatsen 0.
    -VATIsNotUsedDesc=Som standard benyttes momssatsen 0. Dette anvendes til regnskab for foreninger, enkeltpersoner eller virksomheder med lav omsætning (under 50.000 kr).
    -VATIsUsedExampleFR=I Frankrig betyder det, at virksomheder eller organisationer har et rigtigt finanssystem (forenklet reel eller normal reel). Et system, hvor moms er angivet.
    -VATIsNotUsedExampleFR=I Frankrig betyder det foreninnger, der ikke er momsregistrerede, eller virksomheder, organisationer eller liberale erhverv, der har valgt mikrovirksomhedens skatteordning (moms i franchise) og betalt en franchise-moms uden momsangivelse. Dette valg vil vise referencen "Ikke gældende moms - art-293B af CGI" på fakturaer.
    +VATManagement=Moms sats bestemmelse
    +VATIsUsedDesc=Som standard ved oprettelse af emner, fakturaer, ordrer mv. Følger Moms satsen den aktive standardregel:\nHvis sælgeren ikke er underlagt moms, så sælges afgiften til 0. Slut på regel. Hvis sælgeren er sælger, er Moms som standard lig med moms satsen for produktet i sælgerens land. Slut på regel. Hvis sælger og køber begge er i Det Europæiske Fællesskab, og varer er transportrelaterede produkter (transport, fragt, flyselskab), er standard moms satsen 0. Denne regel er afhængig af sælgerens land - kontakt venligst din revisor. momsen skal betales af køberen til deres toldsted i deres land og ikke til sælgeren. Slut af regel. Hvis sælger og køber begge er i Det Europæiske Fællesskab, og køberen ikke er et selskab (med et registreret momsregistreringsnummer inden for Fællesskabet), så er moms satsen som standard til moms satsen af ​​sælgerens land. Slut på regel. Hvis sælger og køber begge er i Det Europæiske Fællesskab, og køberen er et firma (med et registreret international CVR nummer), så er salgsafgiften 0 som standard. Slut på regel. I ethvert andet tilfælde er den foreslåede standard moms sats = 0. Slut på regel.\n
    +VATIsNotUsedDesc=Den foreslåede Momssatser er som standard 0, som kan bruges til sager som foreninger, enkeltpersoner eller små virksomheder.
    +VATIsUsedExampleFR=I Frankrig betyder det, at virksomheder eller organisationer har et rigtigt finanssystem (forenklet reel eller normal reel). Et system, hvor salgsafgift er erklæret.
    +VATIsNotUsedExampleFR=I Frankrig betyder det foreninger, der ikke er angivet Salgsskat, eller selskaber, organisationer eller liberale erhverv, der har valgt mikrovirksomhedens skattesystem (Salgsskat i franchise) og betalt en franchise Salgsskat uden nogen Salgsskatteangivelse. Dette valg vil vise referencen "Ikke gældende salgsafgift - art-293B af CGI" på fakturaer.
     ##### Local Taxes #####
     LTRate=Hyppighed
     LocalTax1IsNotUsed=Brug ikke anden skat
    -LocalTax1IsUsedDesc=Brug en anden type skat (bortset fra moms)
    -LocalTax1IsNotUsedDesc=Brug ikke anden form for skat (bortset fra moms)
    +LocalTax1IsUsedDesc=Brug en anden type afgift (bortset fra den første)
    +LocalTax1IsNotUsedDesc=Brug ikke anden type afgift (bortset fra den første)
     LocalTax1Management=Anden type skat
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Brug ikke tredje skat
    -LocalTax2IsUsedDesc=Brug en tredje type skat (bortset fra moms)
    -LocalTax2IsNotUsedDesc=Brug ikke anden form for skat (bortset fra moms)
    +LocalTax2IsUsedDesc=Brug en tredje type afgift (bortset fra den første)
    +LocalTax2IsNotUsedDesc=Brug ikke anden type afgift (bortset fra den første)
     LocalTax2Management=Tredje type skat
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= RE sats som standard, når du opretter udsigter, fakturaer, ordrer mv følge de aktive standard regel: <br> Hvis te køber ikke udsættes for RE, RE som standard = 0. Slut på reglen. <br> Hvis køberen er underkastet RE derefter RE som standard. Slut på reglen. <br>
    -LocalTax1IsNotUsedDescES= Som standard den foreslåede RE er 0. Slut på reglen.
    -LocalTax1IsUsedExampleES= I Spanien er professionelle underlagt nogle specifikke dele af den spanske IAE.
    -LocalTax1IsNotUsedExampleES= I Spanien er professionelle og samfund og på visse dele af den spanske IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= RE sats som standard, når du opretter udsigter, fakturaer, ordrer mv følge de aktive standard regel: <br> Hvis sælgeren ikke er udsat for IRPF, så IRPF som standard = 0. Slut på reglen. <br> Hvis sælgeren er underkastet IRPF derefter IRPF som standard. Slut på reglen. <br>
    -LocalTax2IsNotUsedDescES= Som standard den foreslåede IRPF er 0. Slut på reglen.
    -LocalTax2IsUsedExampleES= I Spanien, freelancere og selvstændige, der leverer tjenesteydelser og virksomheder, der har valgt at skattesystemet i de moduler.
    -LocalTax2IsNotUsedExampleES= I Spanien er bussines ikke underlagt skattesystemet i moduler.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=RE-satsen som standard ved oprettelse af potentielle kunder, fakturaer, ordrer mv. Følger den aktive standardregel: <br> Hvis køberen ikke er udsat for RE, RE som standard = 0. Slut på regel. <br> Hvis køberen udsættes for RE, så er RE som standard. Slut på regel. <br>
    +LocalTax1IsNotUsedDescES=Som standard den foreslåede RE er 0. Slut på reglen.
    +LocalTax1IsUsedExampleES=I Spanien er professionelle underlagt nogle specifikke dele af den spanske IAE.
    +LocalTax1IsNotUsedExampleES=I Spanien er professionelle og samfund og på visse dele af den spanske IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=IRPF-kursen som standard ved oprettelse af emner. fakturaer, ordrer mv. Følger den aktive standardregel: Hvis sælgeren ikke er underlagt IRPF, skal IRPF som standard = 0. Slut på regel. Hvis sælgeren udsættes for IRPF, så er IRPF som standard. Slut på regel.
    +LocalTax2IsNotUsedDescES=Som standard den foreslåede IRPF er 0. Slut på reglen.
    +LocalTax2IsUsedExampleES=I Spanien, freelancere og selvstændige, der leverer tjenesteydelser og virksomheder, der har valgt at skattesystemet i de moduler.
    +LocalTax2IsNotUsedExampleES=I Spanien er de virksomheder, der ikke er underlagt skattesystemer for moduler.
     CalcLocaltax=Rapporter om lokale skatter
     CalcLocaltax1=Salg - Køb
     CalcLocaltax1Desc=Lokale skatter rapporter beregnes med forskellen mellem localtaxes salg og localtaxes køb
    @@ -958,7 +966,9 @@ CalcLocaltax3=Salg
     CalcLocaltax3Desc=Lokale skatter rapporter er det samlede salg af localtaxes
     LabelUsedByDefault=Etiket, som bruges som standard, hvis ingen oversættelse kan findes for kode
     LabelOnDocuments=Etiketten på dokumenter
    -NbOfDays=Nb dage
    +LabelOrTranslationKey=Etiket eller oversættelsestast
    +ValueOfConstantKey=Value of constant
    +NbOfDays=Antal dage
     AtEndOfMonth=Ved udgangen af måneden
     CurrentNext=Aktuel / Næste
     Offset=Offset
    @@ -984,11 +994,11 @@ DatabaseUser=Database bruger
     DatabasePassword=Database password
     Tables=Tabeller
     TableName=Tabel navn
    -NbOfRecord=Nb af optegnelser
    +NbOfRecord=Antal poster
     Host=Server
     DriverType=Driver type
     SummarySystem=System oplysninger resumé
    -SummaryConst=Liste over alle Dolibarr setup parametre
    +SummaryConst=Liste over alle Dolibarr opsætningsparametre
     MenuCompanySetup=Virksomhed/Organisation
     DefaultMenuManager= Standard menuhåndtering
     DefaultMenuSmartphoneManager=Smartphone menu manager
    @@ -996,7 +1006,7 @@ Skin=Hud tema
     DefaultSkin=Default skin tema
     MaxSizeList=Maks. længde for liste
     DefaultMaxSizeList=Standard maks længde for lister
    -DefaultMaxSizeShortList=Standard maks længde for korte lister (dvs. i kundekort)
    +DefaultMaxSizeShortList=Standard max længde for korte lister (dvs. i kundekort)
     MessageOfDay=Budskab om dagen
     MessageLogin=Loginsiden besked
     LoginPage=Login side
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Faste search form på venstre menu
     DefaultLanguage=Standard sprog til brug (sprog code)
     EnableMultilangInterface=Aktiver flersproget grænseflade
     EnableShowLogo=Vis logo på venstre menu
    -CompanyInfo=Virksomhed/organisation information
    -CompanyIds=Virksomhed/organisation identiteter
    +CompanyInfo=Virksomhed/Organisation
    +CompanyIds=Virksomhed / Organisations identiteter
     CompanyName=Navn
     CompanyAddress=Adresse
     CompanyZip=Postnummer
    @@ -1019,32 +1029,32 @@ DoNotSuggestPaymentMode=Ikke tyder
     NoActiveBankAccountDefined=Ingen aktiv bankkonto defineret
     OwnerOfBankAccount=Ejer af bankkonto %s
     BankModuleNotActive=Bankkonti modul er ikke aktiveret
    -ShowBugTrackLink=Vis link "<strong> %s </ strong>"
    +ShowBugTrackLink=Vis link "<strong> %s </strong>"
     Alerts=Indberetninger
    -DelaysOfToleranceBeforeWarning=Tolerance forsinkelser før advarsel
    -DelaysOfToleranceDesc=Dette skærmbillede giver dig mulighed for at definere tolereres forsinkelser før en indberetning er rapporteret på skærmen med picto %s for hver sent element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Tolerance for forsinkelse (i dage) før alarm for ikke-gennemførte planlagte begivenheder (i tidsplanen)
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Forsinkelsestolerance (i dage) før advarsel om projekt ikke lukket i tide
    -Delays_MAIN_DELAY_TASKS_TODO=Forsinkelsestolerance (i dage) før advarsel om planlagte opgaver (projektopgaver) er endnu ikke gennemført
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Forsinkelsestolerance (i dage) før varsel om ordrer, der ikke er behandlet endnu
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Tilladt forsinkelse (i dage) før varsel om købsordrer, der ikke er behandlet endnu
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (i dage) inden indberetning om forslag til at lukke
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (i dage) inden indberetning om forslag ikke faktureret
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance forsinkelse (i dage) før alarm om tjenesteydelser for at aktivere
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance forsinkelse (i dage) inden indberetning om udløb tjenester
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance forsinkelse (i dage) inden indberetning om ubetalte leverandør fakturaer
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerance forsinkelse (i dage) inden indberetning om ubetalte klient fakturaer
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance forsinkelse (i dage) inden indberetning om verserende bank forsoning
    -Delays_MAIN_DELAY_MEMBERS=Tolerance forsinkelse (i dag), inden indberetning om forsinket medlemskab gebyr
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance forsinkelse (i dage) før alarm for checks depositum til at gøre
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance forsinkelse (i dage) før advarsel for udgiftsrapporter at godkende
    -SetupDescription1=Opsætningsmenuen bruges, før du går i gang med Dolibarr.
    -SetupDescription2=De to obligatoriske opsætningsstrin er følgende trin (de to første indgange i den venstre opsætningsmenu):
    -SetupDescription3=Indstillinger i menuen <a href="%s"> %s -> %s </a>. Dette trin er påkrævet, fordi det definerer data, der bruges på Dolibarr-skærmbillederne, for at tilpasse softwareens standardadfærd (for f.eks. Landrelaterede funktioner).
    -SetupDescription4=Indstillinger i menuen <a href="%s"> %s -> %s </a>. Dette trin er påkrævet, fordi Dolibarr ERP/CRM er en samling af flere moduler/applikationer, alle mere eller mindre uafhængige. Nye funktioner tilføjes til menuer for hvert modul, du aktiverer.
    -SetupDescription5=Andre menupunkter styrer valgfrie parametre.
    +DelaysOfToleranceBeforeWarning=Forsinkelser, før der vises en advarsel
    +DelaysOfToleranceDesc=Denne skærm giver dig mulighed for at definere forsinkelsen, før en advarsel rapporteres på skærmen med et %s ikon for hvert forsinket element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Forsinkelse (i dage) før advarsel om planlagte arrangementer (agendahændelser), der endnu ikke er afsluttet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Forsinkelse (i dage) før advarsel om projekt ikke lukket i tide
    +Delays_MAIN_DELAY_TASKS_TODO=Forsinkelse (i dage) før advarsel om planlagte opgaver (projektopgaver) er endnu ikke gennemført
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Forsinkelse (i dage) før advarsel om ordrer, der ikke er behandlet endnu
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Forsinkelse (i dage) før varsel om købsordrer, der ikke er behandlet endnu
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Forsinkelse (i dage) før advarsel om forslag til at lukke
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Forsinkelse (i dage) før advarsel om forslag, der ikke faktureres
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Forsinkelse (i dage) før advarsel om tjenester, der skal aktiveres
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Forsinkelse (i dage) før advarsel om udløbne tjenester
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Forsinkelse (i dage) før advarsel om ubetalte leverandørfakturaer
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Forsinkelse (i dage) før advarsel om ubetalte klientfakturaer
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Forsinkelse (i dage) før advarsel om afventer bankafstemning
    +Delays_MAIN_DELAY_MEMBERS=Forsinkelse (i dage) før advarsel om forsinket medlemsgebyr
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Forsinkelse (i dage) før varsel for check depositum at gøre
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Forsinkelse (i dage) før advarsel for udgiftsrapporter at godkende
    +SetupDescription1=Før du begynder at bruge Dolibarr, skal nogle indledende parametre defineres og moduler aktiveres / konfigureres.
    +SetupDescription2=De obligatoriske opsætningsstrin er de 2 første trin i opsætningsmenuen, nemlig:
    +SetupDescription3=<a href="%s"> %s -> %s </a> <br> Grundlæggende parametre, der bruges til at tilpasse Dolibarrs standardadfærd (f.eks. for landrelaterede funktioner).
    +SetupDescription4=<a href="%s"> %s -> %s </a> <br> Dolibarr ERP / CRM er en samling af mange moduler / applikationer, alle mere eller mindre uafhængige. Modulerne, der er relevante for dine behov, skal aktiveres og konfigureres. Nye emner / valgmuligheder tilføjes til menuer med aktivering af et modul.
    +SetupDescription5=Andre opsætningsmenuposter indeholder valgfrie parametre.
     LogEvents=Sikkerhed revision arrangementer
    -Audit=Audit
    +Audit=Sikkerhedshændelser
     InfoDolibarr=Om Dolibarr
     InfoBrowser=Om Browser
     InfoOS=Om OS
    @@ -1056,49 +1066,49 @@ BrowserName=Browser navn
     BrowserOS=Browser OS
     ListOfSecurityEvents=Liste over Dolibarr sikkerhed begivenheder
     SecurityEventsPurged=Sikkerhed begivenheder renset
    -LogEventDesc=Du kan gøre det muligt at logge for Dolibarr sikkerhed begivenheder her. Administratorer kan derefter se dens indhold via menuen <b>Systemværktøjer - Revision.</b> Advarsel, denne funktion kan forbruge en stor mængde data i databasen.
    -AreaForAdminOnly=Opsætningsparametre kan kun indstilles af <b> administratorbrugere </ b>.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
    +AreaForAdminOnly=Opsætningsparametre kan kun indstilles af <b> administratorbrugere</b>.
     SystemInfoDesc=System oplysninger er diverse tekniske oplysninger du får i read only mode og synlig kun for administratorer.
     SystemAreaForAdminOnly=Dette område er til rådighed for administratoren brugere. Ingen af de Dolibarr permissions kan reducere denne grænse.
    -CompanyFundationDesc=Rediger på denne side alle kendte oplysninger om firmaet eller stiftelsen, du skal administrere (For dette, klik på "%s" eller "%s" knappen nederst på siden)
    -AccountantDesc=Rediger på denne side alle kendte oplysninger om din revisor/bogholder
    +CompanyFundationDesc=Rediger virksomhedens / enhedens oplysninger. Klik på "%s" eller "%s" knappen nederst på siden.
    +AccountantDesc=Rediger oplysningerne om din revisor / bogholder
     AccountantFileNumber=Fil nummer
     DisplayDesc=Du kan vælge hver parameter i forbindelse med Dolibarr udseende og stemning her
     AvailableModules=Tilgængelige app / moduler
     ToActivateModule=For at  aktivere moduler, skal du gå til Opsætning (Hjem->Opsætning->Moduler).
     SessionTimeOut=Time out for session
    -SessionExplanation=Dette nummer garanti for, at samlingen vil aldrig udløber før denne forsinkelse. Men PHP sessoin forvaltning ikke garanterer, at sessionen altid udløber efter denne forsinkelse: Dette sker, hvis et system til at rengøre cache session kører. <br> Bemærk: uden nogen særlig ordning, intern PHP proces vil rengøre møde hvert <b>ca %s / %s</b> adgang, men kun under adgangen foretaget af andre sessioner.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Ledige udløser
    -TriggersDesc=Udløser er filer, der vil ændre adfærd Dolibarr workflow gang kopieres til den mappe <b>htdocs / includes / udløser.</b> De realiserede nye projekter, der aktiveres på Dolibarr begivenheder (oprettelsen af nye virksomheder, faktura validering, ...).
    +TriggersDesc=Udløsere er filer, der vil ændre opførelsen af ​​Dolibarr workflow en gang kopieret til mappen <b> htdocs / core / triggers </b>. De indser nye handlinger, der aktiveres på Dolibarr events (ny oprettelse af firmaer, faktura bekræftelse, ...).
     TriggerDisabledByName=Udløser i denne fil er slået <b>fra-NoRun</b> suffikset i deres navn.
     TriggerDisabledAsModuleDisabled=Udløser i denne fil er slået fra som <b>modul %s</b> er slået fra.
     TriggerAlwaysActive=Udløser i denne fil er altid aktive, uanset hvad er det aktiverede Dolibarr moduler.
     TriggerActiveAsModuleActive=Udløser i denne fil er aktive som <b>modul %s</b> er aktiveret.
     GeneratedPasswordDesc=Definer her som regel, du vil bruge til at generere nye adgangskode, hvis du beder om at få automatisk genereret adgangskode
     DictionaryDesc=Indsæt alle referencedata. Du kan tilføje dine værdier til standardværdien.
    -ConstDesc=På denne side kan du redigere alle andre parametre, der ikke er tilgængelige på tidligere sider. Disse er for det meste forbeholdt parametre til udviklere eller avanceret fejlfinding. For en liste over muligheder <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site-åbner i et nyt vindue" target="_blank"> check her </ a>.
    +ConstDesc=På denne side kan du redigere alle andre parametre, der ikke er tilgængelige på tidligere sider. Disse er for det meste parametre forbeholdt  udviklere eller avanceret fejlfinding. For en liste over muligheder <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">tjek her</a>.
     MiscellaneousDesc=Alle andre sikkerhedsrelaterede parametre er defineret her.
    -LimitsSetup=Grænseværdier / Precision setup
    -LimitsDesc=Du kan definere grænser, præciseringer og optimeringer bruges af Dolibarr her
    +LimitsSetup=Grænser / Præcisionsopsætning
    +LimitsDesc=Du kan definere grænser, præcisioner og optimeringer, der bruges af Dolibarr her
     MAIN_MAX_DECIMALS_UNIT=Maks. decimaler for enhedspriser
     MAIN_MAX_DECIMALS_TOT=Maks. decimaler for totalpriser
     MAIN_MAX_DECIMALS_SHOWN=Maks. decimaler for priser vist på skærmen. (Tilføj <b>...</b> efter dette tal, hvis du vil se <b>...</b>, når den viste pris er afrundet).
    -MAIN_ROUNDING_RULE_TOT=Trin for afrunding (i lande, hvor afrunding sker trinvist. For eksempel angives 0,05, når afrunding sker i trin af 0,05)
    +MAIN_ROUNDING_RULE_TOT=Trin for afrunding (i lande, hvor afrunding sker med basen 10. For eksempel angives 0,05, når afrunding sker i trin af 0,05)
     UnitPriceOfProduct=Netto enhedspris for en vare
     TotalPriceAfterRounding=Samlet pris (netto/moms/inkl. moms) efter afrunding
     ParameterActiveForNextInputOnly=Parameter effektive for næste input kun
    -NoEventOrNoAuditSetup=Ingen sikkerhed tilfælde er blevet registreret endnu. Dette kan være normal, hvis revision ikke er blevet aktiveret på "setup - sikkerhed - revision" side.
    -NoEventFoundWithCriteria=Ingen sikkerhed tilfælde er fundet for sådanne søgefelter.
    -SeeLocalSendMailSetup=Se din lokale sendmail setup
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=Der er ikke fundet nogen sikkerhedshændelse for disse søgekriterier.
    +SeeLocalSendMailSetup=Se din lokale sendmail opsætning
     BackupDesc=Hvis du vil foretage en komplet sikkerhedskopi af Dolibarr, skal du:
    -BackupDesc2=Gem indholdet af dokumentmappe (<b> %s </ b>), der indeholder alle uploadede og genererede filer (Så det indeholder alle dump filer genereret i trin 1).
    -BackupDesc3=Gem indholdet af din database (<b> %s </ b>) i en dumpfil. Til dette kan du bruge følgende assistent.
    +BackupDesc2=Gem indholdet af dokumentmappe (<b> %s </b>), der indeholder alle uploadede og genererede filer (Så det indeholder alle dump filer genereret i trin 1).
    +BackupDesc3=Gem indholdet af din database (<b> %s </b>) i en dumpfil. Til dette kan du bruge følgende assistent.
     BackupDescX=Arkiveret mappe skal opbevares på et sikkert sted.
     BackupDescY=De genererede dump fil bør opbevares på et sikkert sted.
    -BackupPHPWarning=Sikkerhedskopiering kan ikke garanteres med denne metode. Foretrækker den forrige
    +BackupPHPWarning=Backup kan ikke garanteres med denne metode. Forrige anbefalet.
     RestoreDesc=At genskabe en Dolibarr sikkerhedskopi, skal du:
    -RestoreDesc2=Gendan arkivfil (f.eks. Zip-fil) i dokumentmappen for at udtrække træet i filer i dokumentmappen af ​​en ny Dolibarr-installation eller i dette nuværende dokument directoy (<b> %s </ b>).
    -RestoreDesc3=Gendan data, fra en sikkerhedskopieringsfil, til databasen for den nye Dolibarr-installation eller i databasen for denne nuværende installation (<b> %s </ b>). Advarsel, når genoprettelsen er færdig, skal du bruge et login / password, der eksisterede, da sikkerhedskopiering blev foretaget for at oprette forbindelse igen. For at gendanne en backup database til denne nuværende installation, kan du følge denne assistent.
    +RestoreDesc2=Gendan arkivfil (f.eks. Zip-fil) i dokumentmappen for at udtrække træ af filer i dokumentmappen af ​​en ny Dolibarr-installation eller til denne nuværende dokumentmappe (<b> %s </b>).
    +RestoreDesc3=Gendan data, fra en sikkerhedskopieringsfil, til databasen for den nye Dolibarr-installation eller i databasen for denne nuværende installation (<b> %s </b>). Advarsel, når genoprettelsen er færdig, skal du bruge et login / password, der eksisterede, da sikkerhedskopiering blev foretaget for at oprette forbindelse igen. For at gendanne en backup database til denne nuværende installation, kan du følge denne assistent.
     RestoreMySQL=MySQL import
     ForcedToByAModule= Denne regel er tvunget til <b>at %s</b> ved en aktiveret modul
     PreviousDumpFiles=Genererede database backup filer
    @@ -1106,33 +1116,33 @@ WeekStartOnDay=Første dag i ugen
     RunningUpdateProcessMayBeRequired=Kørsel opgraderingen processen synes at være nødvendig (Programmer version %s adskiller sig fra database version %s)
     YouMustRunCommandFromCommandLineAfterLoginToUser=Du skal køre denne kommando fra kommandolinjen efter login til en shell med brugerens <b>%s.</b>
     YourPHPDoesNotHaveSSLSupport=SSL-funktioner ikke er tilgængelige i dit PHP
    -DownloadMoreSkins=Mere skind til download
    +DownloadMoreSkins=Find flere skind på Dolistore.com
     SimpleNumRefModelDesc=Retur referencenummer med format %syymm-nnnn hvor yy er året, mm er måned og nnnn er en sekvens uden hul og uden reset
    -ShowProfIdInAddress=Vis Professionel id med adresser på dokumenter
    -ShowVATIntaInAddress=Skjul moms Intra num med adresser på dokumenter
    +ShowProfIdInAddress=Vis professionelt id med adresser på dokumenter
    +ShowVATIntaInAddress=Skjul moms-nummer inden for Fællesskabet med adresser på dokumenter
     TranslationUncomplete=Delvis oversættelse
    -MAIN_DISABLE_METEO=Deaktiver Meteo udsigt
    +MAIN_DISABLE_METEO=Deaktiver meteorologisk visning
     MeteoStdMod=Standard-tilstand aktiveret
     MeteoStdModEnabled=Standard-tilstand aktiveret
     MeteoPercentageMod=Procentdel tilstand
     MeteoPercentageModEnabled=Procentdel tilstand aktiveret
     MeteoUseMod=Klik for at redigere %s
     TestLoginToAPI=Test logge på API
    -ProxyDesc=Nogle funktioner i Dolibarr nødt til at have en Internet adgang til arbejde. Definer her parametre for denne. Hvis Dolibarr serveren er bag en proxy server, disse parametre fortæller Dolibarr hvordan man adgang til internettet via den.
    +ProxyDesc=Nogle funktioner i Dolibarr kræver internetadgang for at fungere korrekt. Definer her parametrene for dette. Hvis Dolibarr-serveren ligger bag en proxyserver, fortæller disse parametre Dolibarr, hvordan man får adgang til internettet via den.
     ExternalAccess=Ekstern adgang
     MAIN_PROXY_USE=Brug en proxy-server (ellers direkte adgang til internettet)
     MAIN_PROXY_HOST=Navn / adresse proxy-server
     MAIN_PROXY_PORT=Port of proxy-server
     MAIN_PROXY_USER=Log ind for at bruge proxyserveren
     MAIN_PROXY_PASS=Adgangskode for at bruge proxyserveren
    -DefineHereComplementaryAttributes=Definer her alle atributes, der ikke allerede findes som standard, og at du ønsker at blive understøttet for %s.
    +DefineHereComplementaryAttributes=Definer eventuelle attributter, der ikke allerede er tilgængelige som standard, som du vil blive understøttet for %s her.
     ExtraFields=Supplerende egenskaber
     ExtraFieldsLines=Supplerende attributter (linjer)
     ExtraFieldsLinesRec=Supplerende attributter (skabeloner faktura linjer)
     ExtraFieldsSupplierOrdersLines=Supplerende attributter (ordrelinjer)
     ExtraFieldsSupplierInvoicesLines=Supplerende attributter (faktura linjer)
     ExtraFieldsThirdParties=Supplerende attributter (tredjepart)
    -ExtraFieldsContacts=Supplerende attributter (kontakt / adresse)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Supplerende attributter (medlem)
     ExtraFieldsMemberType=Supplerende attributter (medlemstype)
     ExtraFieldsCustomerInvoices=Supplerende attributter (fakturaer)
    @@ -1143,86 +1153,88 @@ ExtraFieldsProject=Supplerende attributter (projekter)
     ExtraFieldsProjectTask=Supplerende attributter (opgaver)
     ExtraFieldHasWrongValue=Attribut %s har en forkert værdi.
     AlphaNumOnlyLowerCharsAndNoSpace=kun alfanumeriske og små bogstaver uden plads
    -SendmailOptionNotComplete=Advarsel, på nogle Linux-systemer, for at sende e-mails fra din e-mail, sendmail udførelse opsætning skal conatins option-ba (parameter mail.force_extra_parameters i din php.ini fil). Hvis nogle modtagere aldrig modtage e-mails, så prøv at redigere denne PHP parameter med mail.force_extra_parameters =-ba).
    +SendmailOptionNotComplete=Advarsel til anvendere af sendmail i Linux-system: Hvis nogle modtagere aldrig modtager e-mails, skal du prøve at redigere denne PHP-parameter med mail.force_extra_parameters = -ba i din php.ini-fil.
     PathToDocuments=Sti til dokumenter
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Funktion til at sende mails ved hjælp af metoden "PHP mail direct" genererer en mailbesked, der muligvis ikke analyseres korrekt af nogle modtagende mail-servere. Resultatet er, at nogle mails ikke kan læses af folk, der er vært for disse "bug'ed" platforme. Det er tilfældet for nogle internetudbydere (Ex: Orange i Frankrig). Dette er ikke et problem i Dolibarr eller i PHP, men på modtagende mail server. Du kan dog tilføje option MAIN_FIX_FOR_BUGGED_MTA til 1 i setup - andet for at ændre Dolibarr for at undgå dette. Du kan dog opleve problemer med andre servere, der overholder strengt SMTP-standarden. Den anden løsning (anbefales) er at bruge metoden "SMTP socket library", der ikke har nogen ulemper.
    +SendmailOptionMayHurtBuggedMTA=Funktion til at sende mails ved hjælp af metode "PHP mail direct" genererer en mailbesked, der muligvis ikke analyseres korrekt af nogle modtagende mail-servere. Resultatet er, at nogle mails ikke kan læses af folk, der er vært for disse bugged platforme. Dette er tilfældet for nogle internetudbydere (Ex: Orange i Frankrig). Dette er ikke et problem med Dolibarr eller PHP, men med den modtagende mail server. Du kan dog tilføje en mulighed MAIN_FIX_FOR_BUGGED_MTA til 1 i Setup - Other for at ændre Dolibarr for at undgå dette. Du kan dog opleve problemer med andre servere, der strengt bruger SMTP-standarden. Den anden løsning (anbefales) er at bruge metoden "SMTP socket library", som ikke har nogle ulemper.
     TranslationSetup=Opsætning af oversættelse
     TranslationKeySearch=Søg en oversættelsestast eller streng
     TranslationOverwriteKey=Overskriv en oversættelsestreng
     TranslationDesc=Sådan indstilles det viste applikationssprog: <br> * Systemwide: menu <strong> Hjem - Opsætning - Visning </strong> <br> * Per bruger: Brug fanen <strong> Brugerdisplay opsætning </strong> klik på brugernavn (øverst på skærmen).
     TranslationOverwriteDesc=Du kan også tilsidesætte strenge, der fylder nedenstående tabel. Vælg dit sprog fra "%s" dropdown, indsæt oversættelsestastens streng i "%s" og din nye oversættelse til "%s"
    -TranslationOverwriteDesc2=Du kan bruge den anden fane til at hjælpe dig med at kende oversættelsessnøglen til brug
    +TranslationOverwriteDesc2=Du kan bruge den anden fane til at hjælpe dig med at vide, hvilken oversættelsessnøgle der skal bruges
     TranslationString=Oversættelsestreng
     CurrentTranslationString=Nuværende oversættelsestreng
     WarningAtLeastKeyOrTranslationRequired=Et søgekriterium kræves i det mindste for nøgle- eller oversættelsestreng
     NewTranslationStringToShow=Ny oversættelsestreng, der skal vises
     OriginalValueWas=Den oprindelige oversættelse overskrives. Oprindelig værdi var: <br> <br> %s
    -TransKeyWithoutOriginalValue=Du har tvunget en ny oversættelse til oversættelsessnøglen '<strong> %s </strong>', der ikke findes i nogen sprogfiler
    +TransKeyWithoutOriginalValue=Du har tvinget en ny oversættelse til oversættelsessnøglen '<strong> %s </ strong>', der ikke findes i nogen sprogfiler
     TotalNumberOfActivatedModules=Aktiveret applikation / moduler: <b> %s </b> / <b> %s </b>
     YouMustEnableOneModule=Du skal i det mindste aktivere 1 modul
     ClassNotFoundIntoPathWarning=Klasse %s ikke fundet i PHP-sti
     YesInSummer=Ja om sommeren
    -OnlyFollowingModulesAreOpenedToExternalUsers=Bemærk, at kun følgende moduler åbnes for eksterne brugere (uanset tilladelse fra sådanne brugere) og kun hvis tilladelser blev givet:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Bemærk, at kun følgende moduler åbnes for eksterne brugere (uanset tilladelser fra sådanne brugere) og kun hvis der gives tilladelser:
     SuhosinSessionEncrypt=Sessionsopbevaring krypteret af Suhosin
     ConditionIsCurrently=Tilstanden er i øjeblikket %s
    -YouUseBestDriver=Du bruger driveren %s, der er den bedste driver til rådighed i øjeblikket.
    -YouDoNotUseBestDriver=Du bruger drev %s men driver %s anbefales.
    +YouUseBestDriver=Du bruger driveren %s, som er den bedste driver til rådighed i øjeblikket.
    +YouDoNotUseBestDriver=Du bruger driveren %s, men driveren %s anbefales.
     NbOfProductIsLowerThanNoPb=Du har kun %s produkter / tjenester i databasen. Dette kræver ikke nogen særlig optimering.
     SearchOptim=Søg optimering
    -YouHaveXProductUseSearchOptim=Du har %s produkt i database. Du skal tilføje den konstante PRODUCT_DONOTSEARCH_ANYWHERE til 1 i Home-Setup-Other, du begrænser søgningen til begyndelsen af ​​strenge, der gør det muligt for databasen at bruge indeks, og du skal få et øjeblikkeligt svar.
    +YouHaveXProductUseSearchOptim=Du har %s produkter i databasen. Du skal tilføje den konstante PRODUCT_DONOTSEARCH_ANYWHERE til 1 i Home-Setup-Other. Begræns søgningen til begyndelsen af ​​strenge, der gør det muligt for databasen at bruge indekser, og du bør få et øjeblikkeligt svar.
     BrowserIsOK=Du bruger browseren %s. Denne browser er ok for sikkerhed og ydeevne.
    -BrowserIsKO=Du bruger browseren %s. Denne browser er kendt for at være et dårligt valg for sikkerhed, ydeevne og pålidelighed. Vi anbefaler dig at bruge Firefox, Chrome, Opera eller Safari.
    +BrowserIsKO=Du bruger browseren %s. Denne browser er kendt for at være et dårligt valg for sikkerhed, ydeevne og pålidelighed. Vi anbefaler at bruge Firefox, Chrome, Opera eller Safari.
     XDebugInstalled=XDebug er indlæst.
     XCacheInstalled=XCache er indlæst.
    -AddRefInList=Vis kunde / leverandør ref til liste (vælg liste eller combobox) og det meste af hyperlink. Tredjeparter vil fremkomme med navnet "CC12345 - SC45678 - Det store selskab coorp", i stedet for "The big company coorp".
    -AskForPreferredShippingMethod=Anmod om foretrukket afsendelsesmetode for tredjeparter.
    +AddRefInList=Vis kunde / leverandør ref. info liste (vælg liste eller combobox) og det meste af hyperlink. <br> Tredjeparter vil blive vist med et navneformat af "CC12345 - SC45678 - The Big Company corp." i stedet for "The Big Company Corp".
    +AddAdressInList=Vis kunde / leverandør adresse info liste (vælg liste eller combobox) <br> Tredjeparter vil fremkomme med et navneformat af "The Big Company Corp." - 21 Jump Street 123456 Big Town - USA "i stedet for" The Big Company Corp ".
    +AskForPreferredShippingMethod=Anmod om en foretrukket forsendelsesmetode for tredjeparter.
     FieldEdition=Område udgave %s
     FillThisOnlyIfRequired=Eksempel: +2 (kun udfyld hvis problemer med tidszoneforskydning opstår)
     GetBarCode=Få stregkode
     ##### Module password generation
     PasswordGenerationStandard=Returnere en adgangskode, der genereres i henhold til interne Dolibarr algoritme: 8 tegn indeholder delt tal og tegn med små bogstaver.
    -PasswordGenerationNone=Foreslå ikke nogen genereret adgangskode. Adgangskoden skal indtastes manuelt.
    +PasswordGenerationNone=Foreslå ikke en genereret adgangskode. Adgangskoden skal indtastes manuelt.
     PasswordGenerationPerso=Ret en adgangskode i overensstemmelse med din personligt definerede konfiguration.
     SetupPerso=Ifølge din konfiguration
     PasswordPatternDesc=Beskrivelse af adgangskodemønster
     ##### Users setup #####
     RuleForGeneratedPasswords=Regel at generere foreslået passwords
     DisableForgetPasswordLinkOnLogonPage=Ikke viser linket "Glem adgangskode" på loginsiden
    -UsersSetup=Brugere modul opsætning
    +UsersSetup=Opsætning af brugermodul
     UserMailRequired=EMail forpligtet til at oprette en ny bruger
     ##### HRM setup #####
     HRMSetup=HRM modul opsætning
     ##### Company setup #####
    -CompanySetup=Selskaber modul opsætning
    -CompanyCodeChecker=Modul til tredjeparts kodegenerering og -kontrol (kunde eller leverandør)
    -AccountCodeManager=Modul til generering af regnskabskode (kunde eller sælger)
    +CompanySetup=Opsætning af firmamoduler
    +CompanyCodeChecker=Valg til automatisk generering af kunde / leverandørkoder
    +AccountCodeManager=Valg til automatisk generering af kunde / leverandørregnskabskoder
     NotificationsDesc=E-mail-meddelelsesfunktionen giver dig mulighed for lydløst at sende automatisk mail til nogle Dolibarr-arrangementer. Mål for meddelelser kan defineres:
     NotificationsDescUser=* pr. bruger, en bruger til tiden.
     NotificationsDescContact=* pr. tredjeparts kontakter (kunder eller leverandører), en kontakt ad gangen.
     NotificationsDescGlobal=* eller ved at indstille globale målemails i modulopsætningssiden.
    -ModelModules=Dokumenter skabeloner
    -DocumentModelOdt=Generer dokumenter fra OpenDocuments skabeloner (.ODT eller .ODS filer til OpenOffice, KOffice, TextEdit, ...)
    +ModelModules=Dokumentskabeloner
    +DocumentModelOdt=Generer dokumenter fra OpenDocument skabeloner (.ODT / .ODS filer fra LibreOffice, OpenOffice, KOffice, TextEdit, ...)
     WatermarkOnDraft=Vandmærke på udkast til et dokument
     JSOnPaimentBill=Aktivér funktion for at autofyldte betalingslinjer på betalingsformular
    -CompanyIdProfChecker=Professionel Id unikke
    +CompanyIdProfChecker=Regler for professionelle id'er
     MustBeUnique=Skal være unikt?
    -MustBeMandatory=Obligatorisk at oprette tredjeparter?
    -MustBeInvoiceMandatory=Obligatorisk at validere fakturaer?
    +MustBeMandatory=Obligatorisk at oprette tredjeparter (hvis momsnummer eller type af virksomhed er defineret)?
    +MustBeInvoiceMandatory=Obligatorisk at bekræfte fakturaer?
     TechnicalServicesProvided=Tekniske ydelser
     #####DAV #####
    -WebDAVSetupDesc=Dette er linkene for at få adgang til WebDAV-biblioteket. Den indeholder en "offentlig" dir, der er åben for enhver bruger, der kender webadressen (hvis adgang til offentlig adgang er tilladt) og en "privat" mappe, der har brug for en eksisterende loginkonto / adgangskode for at få adgang til.
    +WebDAVSetupDesc=Dette er linkene for at få adgang til WebDAV-biblioteket. Den indeholder en "offentlig" dir, der er åben for enhver bruger, der kender webadressen (hvis adgang til offentlig adgang er tilladt) og en "privat" mappe, der har brug for en eksisterende loginkonto / adgangskode for at få adgang.
     WebDavServer=Rod URL af %s server: %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=En eksportgaranti link <b>til %s</b> format er tilgængelig på følgende link: %s
     ##### Invoices #####
    -BillsSetup=Fakturaer modul opsætning
    +BillsSetup=Opsætning af fakturamodul
     BillsNumberingModule=Fakturaer og kreditnotaer nummerressourcer modul
     BillsPDFModules=Faktura dokumenter modeller
    +BillsPDFModulesAccordindToInvoiceType=Faktura dokumenter modeller efter faktura type
     PaymentsPDFModules=Betalingsdokumenter modeller
    -CreditNote=Credit note
    -CreditNotes=Credit noter
    -ForceInvoiceDate=Force fakturadatoen til validering dato
    +CreditNote=Kreditnota
    +CreditNotes=Kreditnotaer
    +ForceInvoiceDate=Force fakturadatoen til bekræftelse dato
     SuggestedPaymentModesIfNotDefinedInInvoice=Foreslåede betalinger tilstand på fakturaen som standard, hvis ikke defineret for faktura
     SuggestPaymentByRIBOnAccount=Foreslå betaling af trække på grund
     SuggestPaymentByChequeToAddress=Foreslå checkudbetaling til
    @@ -1249,7 +1261,7 @@ WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Anmode om lagerkilde for ordre
     ##### Suppliers Orders #####
     BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Anmode om købskonto bestemmelsessted
     ##### Orders #####
    -OrdersSetup=Ordrer «forvaltning setup
    +OrdersSetup=Ordrer forvaltning sætup
     OrdersNumberingModules=Ordrer nummerressourcer moduler
     OrdersModelModule=Bestil dokumenter modeller
     FreeLegalTextOnOrders=Fri tekst om ordrer
    @@ -1257,7 +1269,7 @@ WatermarkOnDraftOrders=Vandmærke på udkast til ordrer (ingen hvis tom)
     ShippableOrderIconInList=Tilføj et ikon i ordrer liste, der angiver, om ordren kan overføres
     BANK_ASK_PAYMENT_BANK_DURING_ORDER=Anmode om bestilling af bankkonto
     ##### Interventions #####
    -InterventionsSetup=Interventioner modul opsætning
    +InterventionsSetup=Opsætning af interventionsmodul
     FreeLegalTextOnInterventions=Fri tekst om intervention dokumenter
     FicheinterNumberingModules=Intervention nummerressourcer moduler
     TemplatePDFInterventions=Intervention kortet dokumenter modeller
    @@ -1269,12 +1281,13 @@ TemplatePDFContracts=Kontrakter dokumenterer modeller
     FreeLegalTextOnContracts=Fri tekst på kontrakter
     WatermarkOnDraftContractCards=Vandmærke på udkast til kontrakter (ingen hvis tom)
     ##### Members #####
    -MembersSetup=Medlemmer modul opsætning
    +MembersSetup=Opsætning af medlemsmodul
     MemberMainOptions=Standardmuligheder
     AdherentLoginRequired= Administrere et login for hvert medlem
    -AdherentMailRequired=E-Mail kræves til at oprette et nyt medlem
    +AdherentMailRequired=E-Mail kræves for at oprette en ny medlem
     MemberSendInformationByMailByDefault=Checkbox til at sende mail bekræftelse til medlemmerne er slået til som standard
     VisitorCanChooseItsPaymentMode=Besøgende kan vælge mellem tilgængelige betalingsformer
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP-opsætning
     LDAPGlobalParameters=Globale parametre
    @@ -1327,7 +1340,7 @@ LDAPMemberObjectClassListExample=Liste over objectClass definere record attribut
     LDAPMemberTypeDn=Dolibarr medlemmer typer DN
     LDAPMemberTypepDnExample=Komplet DN (ex: ou=medlemstype,dc=eksempel,dc=com)
     LDAPMemberTypeObjectClassList=Liste over objectClass
    -LDAPMemberTypeObjectClassListExample=Liste over objectClass definere record attributter (ex: top, groupOfUniqueNames)
    +LDAPMemberTypeObjectClassListExample=Liste over attributter definerede i objektClass (fx: top, groupOfUniqueNames)
     LDAPUserObjectClassList=Liste over objectClass
     LDAPUserObjectClassListExample=Liste over objectClass definere record attributter (ex: top, inetOrgPerson eller toppen, bruger Active Directory)
     LDAPGroupObjectClassList=Liste over objectClass
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test medlem type synkronisering
     LDAPTestSearch= Test en LDAP-søgning
     LDAPSynchroOK=Synkronisering test vellykket
     LDAPSynchroKO=Mislykket synkronisering test
    -LDAPSynchroKOMayBePermissions=Mislykket synkronisering test. Kontroller, at forbindelse til serveren er konfigureret korrekt og tillader LDAP udpates
    +LDAPSynchroKOMayBePermissions=Fejl ved synkroniseringstest. Kontroller, at forbindelsen til serveren er korrekt konfigureret og tillader LDAP-opdateringer
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=TCP forbindelse til LDAP-serveren vellykket (Server= %s, Port= %s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=TCP forbindelse til LDAP-serveren mislykkedes (Server= %s, Port= %s)
    -LDAPBindOK=Forbind / Autentificer til LDAP-server succesfuld (Server = %s, Port = %s, Admin = %s, Password = %s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=Slut / Authentificate til LDAP-serveren mislykkedes (Server= %s, Port= %s, Admin= %s, Password= %s)
    +LDAPBindOK=Forbind / godkend til LDAP-server succesfuldt (Server = %s, Port = %s, Admin = %s, Password = %s)
    +LDAPBindKO=Forbind / godkend til LDAP-server mislykkedes (Server = %s, Port = %s, Admin = %s, Password = %s)
     LDAPSetupForVersion3=LDAP-server er konfigureret til version 3
     LDAPSetupForVersion2=LDAP-server er konfigureret til version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Eksempel: samaccountname
     LDAPFieldFullname=Fornavn Navn
     LDAPFieldFullnameExample=Eksempel: cn
    -LDAPFieldPasswordNotCrypted=Password ikke krypteret
    -LDAPFieldPasswordCrypted=Kodeord krypteret
    +LDAPFieldPasswordNotCrypted=Adgangskode er ikke krypteret
    +LDAPFieldPasswordCrypted=Adgangskode er krypteret
     LDAPFieldPasswordExample=Eksempel: userPassword
     LDAPFieldCommonNameExample=Eksempel: cn
     LDAPFieldName=Navn
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=Denne side giver dig mulighed for at definere LDAP attribut
     LDAPDescValues=Eksempel værdier er konstrueret til <b>OpenLDAP</b> med følgende lastes skemaer: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Hvis du bruger thoose værdier og OpenLDAP, ændre din LDAP konfigurationsfil <b>slapd.conf</b> at få alle thoose skemaer indlæses.
     ForANonAnonymousAccess=For en autentificeret adgang (for en skriveadgangen for eksempel)
     PerfDolibarr=Prestationsopsætning / optimeringsrapport
    -YouMayFindPerfAdviceHere=På denne side finder du nogle checks eller råd vedrørende performance.
    +YouMayFindPerfAdviceHere=Denne side giver nogle checks eller råd vedrørende performance.
     NotInstalled=Ikke installeret, så din server er ikke bremset af dette.
     ApplicativeCache=Applikationsbuffer
     MemcachedNotAvailable=Ingen applikationsbuffer fundet. Du kan forbedre ydeevnen ved at installere en cache-server Memcached og et modul, der kan bruge denne cache-server. <br> Mere information her <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN"> http: //wiki.dolibarr.org/index.php/Module_MemCached_EN </a>. <br> Bemærk, at en masse web hosting udbyder ikke giver sådan cache server.
     MemcachedModuleAvailableButNotSetup=Modul memcached for applikationscache fundet, men opsætning af modul er ikke komplet.
     MemcachedAvailableAndSetup=Modul memcached dedikeret til brug memcached server er aktiveret.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=Ingen OPCode cache fundet. Måtte du bruge en anden OPCode cache end XCache eller eAccelerator (god), du har muligvis ikke OPCode cache (meget dårlig).
    +NoOPCodeCacheFound=Ingen OPCode cache fundet. Måske bruger du en OPCode cache andet end XCache eller eAccelerator (god), eller måske har du ikke OPCode cache (meget dårlig).
     HTTPCacheStaticResources=HTTP-cache for statiske ressourcer (css, img, javascript)
     FilesOfTypeCached=Filer af typen %s caches af HTTP-serveren
     FilesOfTypeNotCached=Filer af typen %s caches ikke af HTTP-serveren
     FilesOfTypeCompressed=Filer af typen %s komprimeres af HTTP-serveren
     FilesOfTypeNotCompressed=Filer af typen %s komprimeres ikke af HTTP-serveren
     CacheByServer=Cache af server
    -CacheByServerDesc=For eksempel med Apache-direktivet "ExpiresByType image / gif A2592000"
    +CacheByServerDesc=For eksempel ved hjælp af Apache-direktivet "ExpiresByType image / gif A2592000"
     CacheByClient=Cache via browser
     CompressionOfResources=Kompression af HTTP-reaktioner
    -CompressionOfResourcesDesc=For eksempel ved brug af Apache-direktivet "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For eksempel ved hjælp af Apache-direktivet "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=En sådan automatisk detektering er ikke mulig med de aktuelle browsere
    -DefaultValuesDesc=Du kan definere / tvinge her standardværdien, du vil have, når du opretter en ny post, og / eller defaut filtre eller sorteringsrækkefølge, når din listeoptagelse.
    -DefaultCreateForm=Standardværdier (på formularer, der skal oprettes)
    +DefaultValuesDesc=Her kan du definere / tvinge den standardværdi, du vil have, når du opretter en ny post, og / eller standardfiltre eller sorteringsrækkefølge, når din liste registreres.
    +DefaultCreateForm=Standardværdier (for at oprette på formularer)
     DefaultSearchFilters=Standard søgefiltre
     DefaultSortOrder=Standard sorteringsordrer
     DefaultFocus=Standardfokusfelter
    +DefaultMandatory=Obligatoriske formularer
     ##### Products #####
     ProductSetup=Opsætning af varemodul
    -ServiceSetup=Services modul opsætning
    +ServiceSetup=Installation af servicemoduler
     ProductServiceSetup=Opsætning af Varer/ydelser-modul
     NumberOfProductShowInSelect=Maks. antal varer i listen med muligheder til varekombinationer (0 = ingen grænse)
    -ViewProductDescInFormAbility=Visualisering af varebeskrivelser i formularerne (ellers som popup-værktøjstip)
    +ViewProductDescInFormAbility=Vis produktbeskrivelser i formularer (ellers som popup-værktøjstip)
     MergePropalProductCard=Aktivér i produkt / tjeneste Vedhæftede filer fanen en mulighed for at fusionere produkt PDF-dokument til forslag PDF azur hvis produkt / tjeneste er i forslaget
    -ViewProductDescInThirdpartyLanguageAbility=Visualisering af varebeskrivelser på tredjeparts sprog
    +ViewProductDescInThirdpartyLanguageAbility=Vis produktbeskrivelser på tredjeparts sprog
     UseSearchToSelectProductTooltip=Også hvis du har et stort antal produkter (> 100 000), kan du øge hastigheden ved at indstille konstant PRODUCT_DONOTSEARCH_ANYWHERE til 1 i Setup-> Other. Søgningen er så begrænset til starten af ​​strengen.
    -UseSearchToSelectProduct=Vent, tryk på en tast, inden du lægger indholdet på produkt kombinationslisten op (Dette kan øge ydeevnen, hvis du har et stort antal produkter, men det er mindre praktisk)
    +UseSearchToSelectProduct=Vent, indtil du trykker på en tast, inden du læser indholdet af produktkombinationslisten (dette kan øge ydeevnen, hvis du har et stort antal produkter, men det er mindre praktisk)
     SetDefaultBarcodeTypeProducts=Standard stregkodetype, der skal bruges til varer
     SetDefaultBarcodeTypeThirdParties=Default stregkode type bruge til tredjemand
     UseUnits=Definer en måleenhed for mængde under bestilling, forslag eller faktura linjer udgave
    @@ -1450,7 +1464,7 @@ ProductCodeChecker= Modul til generering af varekode og kontrol (vare eller ydel
     ProductOtherConf= Vare/ydelse-konfiguration
     IsNotADir=er ikke en mappe!
     ##### Syslog #####
    -SyslogSetup=Syslog modul opsætning
    +SyslogSetup=Log-modul opsætning
     SyslogOutput=Log output
     SyslogFacility=Facility
     SyslogLevel=Niveau
    @@ -1462,10 +1476,10 @@ CompressSyslogs=Komprimering og backup af fejlfindingslogfiler (genereret af mod
     SyslogFileNumberOfSaves=Log backups
     ConfigureCleaningCronjobToSetFrequencyOfSaves=Konfigurer rengøringsplanlagt job for at indstille log backupfrekvens
     ##### Donations #####
    -DonationsSetup=Donation modul opsætning
    +DonationsSetup=Indstilling af donationsmodul
     DonationsReceiptModel=Skabelon for donationen modtagelse
     ##### Barcode #####
    -BarcodeSetup=Barcode setup
    +BarcodeSetup=Stregkode opsætning
     PaperFormatModule=Print format modul
     BarcodeEncodeModule=Barcode encoding type
     CodeBarGenerator=Stregkode generator
    @@ -1485,12 +1499,12 @@ BarCodeNumberManager=Manager til automatisk definere stregkode numre
     ##### Prelevements #####
     WithdrawalsSetup=Opsætning af modul Betalingsordrer til "direkte debitering"
     ##### ExternalRSS #####
    -ExternalRSSSetup=Eksterne RSS import setup
    +ExternalRSSSetup=Ekstern import af RSS-import
     NewRSS=Ny RSS Feed
     RSSUrl=RSS-URL
     RSSUrlExample=Et interessant RSS-feed
     ##### Mailing #####
    -MailingSetup=Emailing modul opsætning
    +MailingSetup=Opsætning af EMail-modul
     MailingEMailFrom=Afsender E-mail (Fra) for e-mails sendt med e-mail-modulet
     MailingEMailError=Retur EMail (Fejl-til) for e-mails med fejl
     MailingDelay=Sekunder for at vente efter at sende næste besked
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sender modul opsætning
     SendingsReceiptModel=Afsendelse modtagelsen model
     SendingsNumberingModules=Sendings nummerering moduler
     SendingsAbility=Support forsendelsesark til kundeleverancer
    -NoNeedForDeliveryReceipts=I de fleste tilfælde anvendes skibsark både som ark til kundeleverancer (liste over produkter, der skal sendes) og ark, der er modtaget og underskrevet af kunden. Så produktleverancer kvitteringer er en duplikeret funktion og er sjældent aktiveret.
    +NoNeedForDeliveryReceipts=I de fleste tilfælde anvendes forsendelsesark både som ark til kundeleverancer (liste over produkter, der skal sendes) og ark, der modtages og underskrives af kunden. Kvitteringen for produktleverancer er derfor en duplikeret funktion og aktiveres sjældent.
     FreeLegalTextOnShippings=Fri tekst på forsendelser
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Modul til kvitteringsnumre for varelevering
    @@ -1511,22 +1525,22 @@ DeliveryOrderModel=Model for kvitteringsnumre for varelevering
     DeliveriesOrderAbility=Tilbyd kvitteringer for varelevering
     FreeLegalTextOnDeliveryReceipts=Fri tekst om levering kvitteringer
     ##### FCKeditor #####
    -AdvancedEditor=Avanceret editor
    +AdvancedEditor=Avanceret tekstredigeringsværktøj
     ActivateFCKeditor=Aktivér FCKeditor for:
     FCKeditorForCompany=WYSIWIG oprettelse/redigering af beskrivelseselementer og noter (undtagen varer/ydelser)
     FCKeditorForProduct=WYSIWIG oprettelse/redigering af beskrivelse/noter for varer/ydelser
    -FCKeditorForProductDetails=WYSIWIG oprettelse / udgave af produkter detaljer linjer for alle enheder (forslag, ordrer, fakturaer osv. ..). <font class = "warning"> Advarsel: Brug af denne indstilling til denne sag anbefales ikke alvorligt, da det kan skabe problemer med specialtegn og sideformatering, når du bygger PDF-filer. </font>
    +FCKeditorForProductDetails=WYSIWIG oprettelse / udgave af produkter detaljer linjer for alle enheder (forslag, ordrer, fakturaer osv. ..). <font class="warning">Advarsel: Aktivering af denne indstilling anbefales ikke, da det kan skabe problemer med specialtegn og sideformatering, når du bygger PDF-filer.</font>
     FCKeditorForMailing= WYSIWIG oprettelsen / udgave af postforsendelser
     FCKeditorForUserSignature=WYSIWIG oprettelse / udgave af bruger signatur
     FCKeditorForMail=WYSIWIG oprettelse / udgave for al mail (undtagen Værktøjer-> eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Forbindelsesstyring lykkedes, men databasen ikke ser sig at være et osCommerce database (Key %s blev ikke fundet i tabel %s).
    -OSCommerceTestOk=Forbindelse til server ' %s' på database' %s' med brugeren ' %s' succes.
    -OSCommerceTestKo1=Forbindelse til server ' %s' lykkes men database' %s' kunne ikke være nået.
    +OSCommerceErrorConnectOkButWrongDatabase=Forbindelse lykkedes, men databasen synes ikke at være en OSCommerce-database (Nøgle %s ikke fundet i tabel %s).
    +OSCommerceTestOk=Forbindelse til server '%s' på databasen '%s' med bruger '%s' vellykket.
    +OSCommerceTestKo1=Forbindelse til serveren '%s' lykkedes, men databasen '%s' kunne ikke nås.
     OSCommerceTestKo2=Forbindelse til server ' %s' med brugeren' %s' mislykkedes.
     ##### Stock #####
     StockSetup=Opsætning af lagermodul
    -IfYouUsePointOfSaleCheckModule=Hvis du bruger et Point of Sale-modul (POS-modul, der leveres som standard eller et andet eksternt modul), kan denne opsætning ignoreres af dit Point of Sale-modul. Det meste af salgsmodulerne er designet til at skabe øjeblikkelig en faktura og reducere lager som standard, hvad der er muligheder her. Så hvis du har brug for eller ikke har et lagerfald, når du registrerer et salg fra dit Point of Sale, skal du også kontrollere dit POS-modul oprettet.
    +IfYouUsePointOfSaleCheckModule=Hvis du bruger standardmodulet (POS) som standard eller et eksternt modul, kan denne opsætning ignoreres af dit POS-modul. De fleste POS-moduler er som standard designet til at oprette en faktura med det samme og reducere lager uanset valgmulighederne her. Så hvis du har brug for eller ikke har et lagerfald, når du registrerer et salg fra din POS, skal du også kontrollere din POS-modulopsætning.
     ##### Menu #####
     MenuDeleted=Menu slettet
     Menus=Menuer
    @@ -1548,7 +1562,7 @@ DetailRight=Betingelse for at vise uautoriserede grå menuer
     DetailLangs=Lang filnavn for etiketten kode oversættelse
     DetailUser=Praktikant / Eksterne / Alle
     Target=Mål
    -DetailTarget=Mål for links (_blank toppen åbne et nyt vindue)
    +DetailTarget=Mål for links (_blank top åbner et nyt vindue)
     DetailLevel=Niveau (-1: top menu, 0: header menuen&gt; 0 menu og sub-menuen)
     ModifMenu=Menu ændre
     DeleteMenu=Slet menuen indrejse
    @@ -1556,14 +1570,14 @@ ConfirmDeleteMenu=Er du sikker på, at du vil slette menuindgangen <b> %s </b>?
     FailedToInitializeMenu=Kunne ikke initialisere menuen
     ##### Tax #####
     TaxSetup=Opsætning af modul til skatter/afgifter.
    -OptionVatMode=Mulighed d'exigibilit de TVA
    +OptionVatMode=Moms skyldig
     OptionVATDefault=Standardbasis
     OptionVATDebitOption=Periodiseringsgrundlag
     OptionVatDefaultDesc=Moms skyldes: <br> - Om levering / betaling for varer <br> - Bestemmelser om betalinger for tjenester
     OptionVatDebitOptionDesc=Moms skyldes: <br> - Om levering / betaling for varer <br> - På fakturaen (debet) for tjenesteydelser
     OptionPaymentForProductAndServices=Kontantgrundlag for produkter og tjenesteydelser
     OptionPaymentForProductAndServicesDesc=Moms skyldes: <br> - ved betaling for varer <br> - på betalinger for tjenesteydelser
    -SummaryOfVatExigibilityUsedByDefault=Tid for moms eksigibilitet som standard i henhold til den valgte mulighed:
    +SummaryOfVatExigibilityUsedByDefault=Tid for momsberettigelse som standard i henhold til den valgte mulighed:
     OnDelivery=Om levering
     OnPayment=Om betaling
     OnInvoice=På fakturaen
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Indkøbskonto. kode
     AgendaSetup=Opsætning af modul for begivenheder og tidsplan
     PasswordTogetVCalExport=Nøglen til at tillade eksport link
     PastDelayVCalExport=Må ikke eksportere begivenhed ældre end
    -AGENDA_USE_EVENT_TYPE=Brug begivenhedstyper (styret til menuopsætning -> Ordbøger -> Type agendahændelser)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Brug automatisk denne type begivenhed ved oprettelse af en begivenhed
    -AGENDA_DEFAULT_FILTER_TYPE=Brug automatisk denne type begivenhed i søgefilteret for tidsplansvisning
    -AGENDA_DEFAULT_FILTER_STATUS=Brug automatisk denne type status i søgefilteret for tidsplansvisning
    +AGENDA_USE_EVENT_TYPE=Brug begivenhedstyper (styret i menuopsætning -> Ordbøger -> Type agendahændelser)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Indstil denne standardværdi automatisk for type begivenhed i begivenhedsoprettelsesformular
    +AGENDA_DEFAULT_FILTER_TYPE=Indstil denne type begivenhed automatisk i søgefilter i dagsordblik
    +AGENDA_DEFAULT_FILTER_STATUS=Indstil denne status automatisk for begivenheder i søgefilter i dagsordblik
     AGENDA_DEFAULT_VIEW=Hvilket faneblad, der skal åbnes som standard, når menuen Tidsplan vælges
     AGENDA_REMINDER_EMAIL=Aktivér hændelsespåmindelse <b> via e-mails </b> (påmindelsesindstilling / forsinkelse kan defineres på hver hændelse). Bemærk: Modul <strong> %s </strong> skal være aktiveret og korrekt konfigureret for at få påmindelse sendt med den korrekte frekvens.
    -AGENDA_REMINDER_BROWSER=Aktivér hændelsespåmindelse <b> på brugerens browser </b> (når hændelsesdatoen er nået, kan hver bruger nægte dette fra browserbekræftelsesspørgsmålet)
    +AGENDA_REMINDER_BROWSER=Aktivér hændelsespåmindelse <b> på brugerens browser </ b> (når hændelsesdatoen er nået, kan hver bruger nægte dette fra browserbekræftelsesspørgsmålet)
     AGENDA_REMINDER_BROWSER_SOUND=Aktivér lydmeddelelse
     AGENDA_SHOW_LINKED_OBJECT=Vis linkede objekter i tidsplanvisning
     ##### Clicktodial #####
    -ClickToDialSetup=Klik for at ringe modul opsætning
    +ClickToDialSetup=Opsætning af Klik-for-at-ringe-modulet
     ClickToDialUrlDesc=Url kaldes, når man klikke på telefon billed. I URL kan du bruge tags <br> <b> __ PHONETO __ </b>, der vil blive erstattet med telefonnummeret til den person, der skal ringe <br> <b> __ PHONEFROM __ </b>, der vil blive erstattet med telefonnummeret til opkaldet person (din) <br> <b> __ LOGIN __ </b>, der vil blive erstattet med clicktodial login (defineret på brugerkort) <br> <b> __ PASS __ </b>, der vil blive erstattet med clicktodial adgangskode (defineret på bruger kort).
    -ClickToDialDesc=Dette modul gør det muligt at få telefonnumre klikbare. Et klik på dette ikon vil ringe, gør din telefon til at ringe til telefonnummeret. Dette kan bruges til at ringe til et callcenter-system fra Dolibarr, som f.eks. Kan ringe til telefonnummeret på et SIP-system.
    +ClickToDialDesc=Dette modul gør det muligt at få telefonnumre klikbare. Et klik på dette ikon vil ringe ring dit telefonnummer. Dette kan bruges til at ringe til et callcenter-system fra Dolibarr, som f.eks. Kan ringe til telefonnummeret på et SIP-system.
     ClickToDialUseTelLink=Brug kun et link "tel:" på telefonnumre
    -ClickToDialUseTelLinkDesc=Brug denne metode, hvis dine brugere har en softphone eller en software-grænseflade installeret på samme computer end browseren, og kaldes, når du klikker på et link i din browser, der starter med "tel:". Hvis du har brug for en fuld serverløsning (uden brug af lokal softwareinstallation), skal du indstille dette til "Nej" og udfylde næste felt.
    +ClickToDialUseTelLinkDesc=Brug denne metode, hvis dine brugere har en softphone eller en software-grænseflade installeret på samme computer som browseren, og kaldes, når du klikker på et link i din browser, der starter med "tel:". Hvis du har brug for en fuld serverløsning (uden brug af lokal softwareinstallation), skal du indstille dette til "Nej" og udfylde næste felt.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of salg
    -CashDeskSetup=Cash desk modul opsætning
    +CashDeskSetup=Opsætning af salgsmodul
     CashDeskThirdPartyForSell=Standard generisk tredjepart til brug for salg
     CashDeskBankAccountForSell=Cash konto til brug for sælger
     CashDeskBankAccountForCheque= Konto til at bruge til at modtage betalinger med check
     CashDeskBankAccountForCB= Konto til at bruge til at modtage kontant betaling ved kreditkort
    -CashDeskDoNotDecreaseStock=Deaktiver lagerbeholdningen, når et salg er lavet fra Point of Sale (hvis "nej", lagernedgang er udført for hvert salg lavet fra POS, uanset hvad der er indstillet i modul lager).
    +CashDeskDoNotDecreaseStock=Deaktiver lagerbeholdningen, når et salg er udført fra Point of Sale (hvis "nej", lagernedgang er udført for hvert salg udført fra POS, uanset optionen i modul lager).
     CashDeskIdWareHouse=Force og begrænse lageret til brug for lagernedgang
    -StockDecreaseForPointOfSaleDisabled=Lagernedgang fra Point of Sale deaktiveret
    +StockDecreaseForPointOfSaleDisabled=Lagernedgang fra salgssted deaktiveret
     StockDecreaseForPointOfSaleDisabledbyBatch=Lagernedgang i POS er ikke kompatibel med massehåndtering
    -CashDeskYouDidNotDisableStockDecease=Du har ikke deaktiveret lagernedgang, når du sælger fra Point of Sale. Så et lager er påkrævet.
    +CashDeskYouDidNotDisableStockDecease=Du har ikke deaktiveret lagernedgang, når du sælger fra Point of Sale. Derfor er et lager påkrævet.
     ##### Bookmark #####
    -BookmarkSetup=Bogmærkemodulet setup
    -BookmarkDesc=Dette modul giver dig mulighed for at håndtere bogmærker. Du kan også tilføje genveje til enhver Dolibarr sider eller externale websteder på din venstre menu.
    +BookmarkSetup=Bogmærke modul opsætning
    +BookmarkDesc=Dette modul giver dig mulighed for at styre bogmærker. Du kan også tilføje genveje til Dolibarr-sider eller eksterne websteder på din venstre menu.
     NbOfBoomarkToShow=Maksimalt antal bogmærker til at vise i venstre menu
     ##### WebServices #####
     WebServicesSetup=Webservices modul opsætning
    @@ -1625,7 +1639,7 @@ OnlyActiveElementsAreExposed=Kun elementer fra aktiverede moduler er udsat
     ApiKey=Nøgle til API
     WarningAPIExplorerDisabled=API-udforskeren er blevet deaktiveret. API-explorer er ikke forpligtet til at levere API-tjenester. Det er et værktøj for udvikleren at finde / test REST API'er. Hvis du har brug for dette værktøj, skal du gå i setup af modul API REST for at aktivere det.
     ##### Bank #####
    -BankSetupModule=Bank modul opsætning
    +BankSetupModule=Opsætning af bankmodul
     FreeLegalTextOnChequeReceipts=Fri tekst på check kvitteringer
     BankOrderShow=Vis rækkefølgen af ​​bankkonti for lande, der anvender &quot;detaljeret bank nummer&quot;
     BankOrderGlobal=General
    @@ -1634,15 +1648,15 @@ BankOrderES=Spansk
     BankOrderESDesc=Spansk display for
     ChequeReceiptsNumberingModule=Kontroller kvitterings nummereringsmodul
     ##### Multicompany #####
    -MultiCompanySetup=Multi-selskab modul opsætning
    +MultiCompanySetup=Opsætning af multi-selskabsmodul
     ##### Suppliers #####
    -SuppliersSetup=Leverandør modul opsætning
    -SuppliersCommandModel=Komplet skabelon af prchase-ordre (logo ...)
    +SuppliersSetup=Opsætning af leverandørmodul
    +SuppliersCommandModel=Komplet skabelon for indkøbsordre (logo ...)
     SuppliersInvoiceModel=Fuldstændig skabelon af leverandørfaktura (logo ...)
     SuppliersInvoiceNumberingModel=Leverandør faktura nummerering modeller
     IfSetToYesDontForgetPermission=Hvis du er indstillet til ja, glem ikke at give tilladelser til grupper eller brugere tilladt til anden godkendelse
     ##### GeoIPMaxmind #####
    -GeoIPMaxmindSetup=GeoIP Maxmind modul opsætning
    +GeoIPMaxmindSetup=Opsætning af GeoIP Maxmind-modul
     PathToGeoIPMaxmindCountryDataFile=Sti til fil indeholdende Maxmind ip til oversættelse af land. <br> Eksempler: <br> /usr/local/share/GeoIP/GeoIP.dat <br> /usr/share/GeoIP/GeoIP.dat
     NoteOnPathLocation=Bemærk, at din ip til land datafil skal være inde en mappe din PHP kan læse (Check din PHP open_basedir setup og filsystem tilladelser).
     YouCanDownloadFreeDatFileTo=Du kan downloade en <b>gratis demo version</b> af Maxmind GeoIP land fil på %s.
    @@ -1650,11 +1664,11 @@ YouCanDownloadAdvancedDatFileTo=Du kan også downloade en mere <b>komplet versio
     TestGeoIPResult=Test af en konvertering IP -> land
     ##### Projects #####
     ProjectsNumberingModules=Projekter nummerering modul
    -ProjectsSetup=Project modul opsætning
    +ProjectsSetup=Opsætning af projektmodul
     ProjectsModelModule=Projekt rapport dokument model
     TasksNumberingModules=Opgaver nummereringsmodul
     TaskModelModule=Opgaver rapporterer dokumentmodel
    -UseSearchToSelectProject=Vent på at trykke på en tast, inden du lægger indholdet på projektkombinationslisten (Dette kan øge ydeevnen, hvis du har et stort antal projekter, men det er mindre praktisk)
    +UseSearchToSelectProject=Vent, indtil der trykkes på en tast, inden du læser indholdet på projektkombinationslisten. <br> Dette kan forbedre ydeevnen, hvis du har et stort antal projekter, men det er mindre praktisk.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Regnskabsperioder
    @@ -1687,8 +1701,8 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Du kan finde muligheder fo
     ListOfNotificationsPerUser=Liste over meddelelser pr. Bruger *
     ListOfNotificationsPerUserOrContact=Liste over meddelelser pr. Bruger * eller pr. Kontakt **
     ListOfFixedNotifications=Liste over faste meddelelser
    -GoOntoUserCardToAddMore=Gå på fanen "Notifikationer" for en bruger for at tilføje eller fjerne underretninger for brugere
    -GoOntoContactCardToAddMore=Gå på fanen "Notifikationer" fra en tredjepart for at tilføje eller fjerne meddelelser for kontakter / adresser
    +GoOntoUserCardToAddMore=Gå til fanen "Notifikationer" for en bruger for at tilføje eller fjerne underretninger for brugere
    +GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Grænseværdi
     BackupDumpWizard=Guiden til at opbygge database backup dump fil
     SomethingMakeInstallFromWebNotPossible=Installation af eksternt modul er ikke muligt fra webgrænsefladen af ​​følgende årsag:
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Installation af eksternt modul fra app
     ConfFileMustContainCustom=Installation eller opbygning af et eksternt modul fra applikationen skal gemme modulfilerne i mappen <strong> %s </strong>. Hvis du vil have denne mappe behandlet af Dolibarr, skal du konfigurere din <strong> conf / conf.php </strong> for at tilføje de to direktelinjer: <br> <strong> $ dolibarr_main_url_root_alt = '/ custom'; </strong> <br> <strong> $ dolibarr_main_document_root_alt = '%s /custom'; </strong>
     HighlightLinesOnMouseHover=Fremhæv tabel linjer, når musen flytter passerer over
     HighlightLinesColor=Fremhæv farve på linjen, når musen passerer over (hold tom for ingen fremhævning)
    +HighlightLinesChecked=Fremhæv farve på linjen, når den er markeret (hold tom for ingen fremhævning)
     TextTitleColor=Tekstfarve på sidetitel
     LinkColor=Farve af links
     PressF5AfterChangingThis=Tryk på CTRL + F5 på tastaturet eller ryd din browserens cache efter at have ændret denne værdi for at få den effektiv
    @@ -1718,7 +1733,7 @@ PositionIntoComboList=Linjens placering i kombinationslister
     SellTaxRate=Salgsskattesats
     RecuperableOnly=Ja for moms "Ikke opfattet, men genoprettelig" dedikeret til nogle stater i Frankrig. Hold værdi til "Nej" i alle andre tilfælde.
     UrlTrackingDesc=Hvis leverandøren eller transporttjenesten tilbyder en side eller et websted for at kontrollere status for din forsendelse, kan du indtaste det her. Du kan bruge nøglen {TRACKID} til URL-parametre, så systemet vil erstatte det med værdien af ​​sporingsnummerbrugeren, der er indtastet på forsendelseskort.
    -OpportunityPercent=Når du opretter en mulighed, definerer du en anslået mængde projekt / bly. Ifølge muligheden for muligheden kan dette beløb multipliceres med denne sats for at vurdere det globale beløb, som alle dine muligheder kan generere. Værdien er procent (mellem 0 og 100).
    +OpportunityPercent=Når du opretter en bly, definerer du en anslået mængde projekt / bly. Ifølge status for bly kan dette beløb multipliceres med denne sats for at vurdere det globale beløb, som alle dine muligheder kan generere. Værdien er procent (mellem 0 og 100).
     TemplateForElement=Denne skabelon rekord er dedikeret til hvilket element
     TypeOfTemplate=Type skabelon
     TemplateIsVisibleByOwnerOnly=Skabelon er kun synlig for ejeren
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=Du bruger den seneste stabile version
     TitleExampleForMajorRelease=Eksempel på besked, du kan bruge til at annoncere denne store udgivelse (brug det gratis at bruge det på dine websteder)
     TitleExampleForMaintenanceRelease=Eksempel på besked, du kan bruge til at annoncere denne vedligeholdelsesudgivelse (lad det være gratis at bruge det på dine websteder)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s er tilgængelig. Version %s er en stor udgivelse med mange nye funktioner til både brugere og udviklere. Du kan downloade det fra downloadområdet på https://www.dolibarr.org portal (underkatalog Stable versioner). Du kan læse <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a> for en komplet liste over ændringer.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s er tilgængelig. Version %s er en vedligeholdelsesversion, så den indeholder kun fejlrettelser af fejl. Vi anbefaler, at alle bruger en ældre version for at opgradere til denne. Som enhver vedligeholdelsesfrigivelse findes ingen nye funktioner eller ændringer i datastruktur til denne version. Du kan downloade det fra downloadområdet på https://www.dolibarr.org portal (underkatalog Stable versioner). Du kan læse <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a> for en komplet liste over ændringer.
    -MultiPriceRuleDesc=Når valgmuligheden "Flere prisniveauer pr. Produkt / service" er tændt, kan du definere forskellige priser (et pr. Prisniveau) for hvert produkt. For at spare tid, kan du indtaste her regel for at få prisen for hvert niveau autokalculeret i henhold til prisen på første niveau, så du skal kun indtaste prisen for første niveau på hvert produkt. Denne side er her for at spare dig tid og kan kun være nyttig, hvis dine priser for hver leve er i forhold til første niveau. Du kan ignorere denne side i de fleste tilfælde.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s er tilgængelig. Version %s er en vedligeholdelsesversion, så den indeholder kun fejlrettelser af fejl. Vi anbefaler, at alle bruger en ældre version for at opgradere til denne. Som enhver vedligeholdelsesfrigivelse findes ingen nye funktioner eller datastrukturændringer i denne version. Du kan downloade det fra downloadområdet på https://www.dolibarr.org portal (underkatalog Stable versioner). Du kan læse <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a> for en komplet liste over ændringer.
    +MultiPriceRuleDesc=Når valgmuligheden "Flere prisniveauer per produkt / service" er aktiveret, kan du definere forskellige priser (en per prisniveau) for hvert produkt. For at spare tid, kan du her indtaste en regel for at få en pris for hvert niveau autokalculeret i henhold til prisen på første niveau, så du skal kun angive en pris for første niveau på hvert produkt. Denne side er her for at spare dig tid og kan kun være nyttig, hvis dine priser for hvert niveau er i forhold til første niveau. Du kan ignorere denne side i de fleste tilfælde.
     ModelModulesProduct=Skabeloner til produktdokumenter
    -ToGenerateCodeDefineAutomaticRuleFirst=For at kunne generere automatisk koder skal du først definere en manager til automatisk definere stregkode nummer.
    +ToGenerateCodeDefineAutomaticRuleFirst=For at kunne generere koder automatisk skal du først definere en manager til automatisk definere stregkode nummer.
     SeeSubstitutionVars=Se * note for liste over mulige substitutionsvariabler
     SeeChangeLog=Se ChangeLog-fil (kun engelsk)
     AllPublishers=Alle udgivere
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Tilføj andre sider eller tjenester
     AddModels=Tilføj dokument eller nummereringsskabeloner
     AddSubstitutions=Tilføj nøglesubstitutioner
     DetectionNotPossible=Detektion er ikke muligt
    -UrlToGetKeyToUseAPIs=Url for at få token til at bruge API (en gang token er blevet modtaget, gemmes den på databasebrugertabellen og skal angives på hvert API-opkald)
    +UrlToGetKeyToUseAPIs=Url for at få token til at bruge API (når token er blevet modtaget, gemmes den i databasens brugertabel og skal anvendes ved hvert API-opkald)
     ListOfAvailableAPIs=Liste over tilgængelige API'er
     activateModuleDependNotSatisfied=Modul "%s" afhænger af modulet "%s", der mangler, så modulet "%1$s" fungerer muligvis ikke korrekt. Venligst installer modul "%2$s" eller deaktiver modul "%1$s" hvis du vil være sikker fra enhver overraskelse
    -CommandIsNotInsideAllowedCommands=Kommandoen du forsøger at køre er ikke inde i listen over tilladte kommandoer defineret i parameter <strong> $ dolibarr_main_restrict_os_commands </strong> til <strong> conf.php </strong> -filen.
    +CommandIsNotInsideAllowedCommands=Kommandoen du forsøger at køre er ikke på listen over tilladte kommandoer defineret i parameter <strong> $ dolibarr_main_restrict_os_commands </ strong> i filen <strong> conf.php </ strong>.
     LandingPage=Destinationsside
     SamePriceAlsoForSharedCompanies=Hvis du bruger et multimediemodul med valget "Single price", vil prisen også være den samme for alle virksomheder, hvis produkterne deles mellem miljøer
     ModuleEnabledAdminMustCheckRights=Modulet er blevet aktiveret. Tilladelser til aktiverede moduler blev kun givet til admin-brugere. Du kan muligvis give tilladelse til andre brugere eller grupper manuelt, hvis det er nødvendigt.
    -UserHasNoPermissions=Denne bruger har ingen tilladelse defineret
    -TypeCdr=Brug "Ingen", hvis betalingsdatoen er fakturadato plus et delta i dage (delta er feltet "Nb dage") <br> Brug "Ved slutningen af ​​måneden", hvis datoen efter deltaet skal hæves for at nå udgangen af ​​måneden (+ et valgfrit "Offset" i dage) <br> Brug "Nuværende / Næste" for at have betalingsfristen den første Nth af måneden (N er gemt i feltet "Nb dage")
    +UserHasNoPermissions=Denne bruger har ingen tilladelser defineret
    +TypeCdr=Brug "Ingen", hvis betalingsdatoen er faktura dato plus et delta i dage (delta er feltet "%s") <br> Brug "Ved slutningen af ​​måneden", hvis, efter deltaet, skal datoen hæves for at nå frem til slutningen af ​​måneden (+ en valgfri "%s" i dage) <br> Brug "Nuværende / Næste" for at have betalingsfristen den første Nth af måneden efter deltaet (delta er feltet "%s", N er gemt i feltet "%s")
     BaseCurrency=Referencens valuta af virksomheden (gå i setup af firma for at ændre dette)
     WarningNoteModuleInvoiceForFrenchLaw=Dette modul %s er i overensstemmelse med franske love (Loi Finance 2016).
     WarningNoteModulePOSForFrenchLaw=Dette modul %s er i overensstemmelse med franske love (Loi Finance 2016), fordi modul Non Reversible Logs automatisk aktiveres.
    -WarningInstallationMayBecomeNotCompliantWithLaw=Du forsøger at installere modulet %s, der er et eksternt modul. Aktivering af et eksternt modul betyder, at du har tillid til udgiveren af ​​modulet, og du er sikker på at dette modul ikke ændrer din ansøgning adfærd negativt og er i overensstemmelse med lovene i dit land (%s). Hvis modulet medfører en ikke-juridisk funktion, bliver du ansvarlig for brugen af ​​en ikke-lovlig software.
    +WarningInstallationMayBecomeNotCompliantWithLaw=Du forsøger at installere modul %s, der er et eksternt modul. Aktivering af et eksternt modul betyder, at du har tillid til udgiveren af ​​det pågældende modul, og at du er sikker på, at dette modul ikke har negativ indflydelse på din applikations adfærd og er i overensstemmelse med lovene i dit land (%s). Hvis modulet introducerer en ulovlig funktion, bliver du ansvarlig for brugen af ​​ulovlig software.
     MAIN_PDF_MARGIN_LEFT=Venstre margin på PDF
     MAIN_PDF_MARGIN_RIGHT=Højre margin på PDF
     MAIN_PDF_MARGIN_TOP=Top margin på PDF
     MAIN_PDF_MARGIN_BOTTOM=Bundmargen på PDF
    +NothingToSetup=Der er ingen specifik opsætning at gøre for dette modul.
     SetToYesIfGroupIsComputationOfOtherGroups=Indstil dette til ja, hvis denne gruppe er en beregning af andre grupper
    -EnterCalculationRuleIfPreviousFieldIsYes=Indtast beregningsregel hvis tidligere felt blev indstillet til Ja (for eksempel 'CODEGRP1 + CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Indtast beregningsregel, hvis tidligere felt blev sat til Ja (For eksempel 'CODEGRP1 + CODEGRP2')
     SeveralLangugeVariatFound=Flere sprogvarianter fundet
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Fjern specialtegn
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter til ren værdi (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR-kontakt
    -GDPRContactDesc=Hvis du opbevarer data om europæiske virksomheder / borgere, kan du gemme den kontaktperson der er ansvarlig for databeskyttelsesforordningen
    +GDPRContact=Databeskyttelsesansvarlig (DPO, Data Privacy eller GDPR-kontakt)
    +GDPRContactDesc=Hvis du gemmer data om europæiske virksomheder / borgere, kan du gemme den kontaktperson, der er ansvarlig for den generelle databeskyttelsesforordning her
    +HelpOnTooltip=Hjælpetekst til at vise på værktøjstip
    +HelpOnTooltipDesc=Indsæt tekst eller en oversættelsessnøgle her for at teksten skal vises på et værktøjstip, når dette felt vises i en formular
    +YouCanDeleteFileOnServerWith=Du kan slette denne fil på server med kommandolinje: <br> %s
    +ChartLoaded=Kort over konto indlæst
    +SocialNetworkSetup=Opsætning af modul Sociale netværk
    +EnableFeatureFor=Aktivér funktioner til <strong> %s </ strong>
    +VATIsUsedIsOff=Bemærk: Muligheden for at bruge salgsafgift eller moms er blevet indstillet til <strong> Fra </ strong> i menuen %s - %s, så Salgsskat eller moms, der anvendes, vil altid være 0 til salg.
    +SwapSenderAndRecipientOnPDF=Byt afsender og modtageradresse på PDF
    +FeatureSupportedOnTextFieldsOnly=Advarsel, funktion understøttes kun på tekstfelter
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Sidste resultat
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Postnummer
     ##### Resource ####
     ResourceSetup=Konfiguration du modul Ressource
     UseSearchToSelectResource=Brug en søgeformular til at vælge en ressource (i stedet for en rullemenu).
     DisabledResourceLinkUser=Deaktiver funktion for at forbinde en ressource til brugere
     DisabledResourceLinkContact=Deaktiver funktion for at forbinde en ressource til kontakter
     ConfirmUnactivation=Bekræft modul reset
    +OnMobileOnly=Kun på lille skærm (smartphone)
    +DisableProspectCustomerType=Deaktiver "Emner + Kunder" tredjeparts type (så tredjepart skal være Emner eller Kunder, men kan ikke begge)
    diff --git a/htdocs/langs/da_DK/banks.lang b/htdocs/langs/da_DK/banks.lang
    index 61d883cc743..858dbbb1705 100644
    --- a/htdocs/langs/da_DK/banks.lang
    +++ b/htdocs/langs/da_DK/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank navn
     FinancialAccount=Konto
     BankAccount=Bankkonto
     BankAccounts=Bankkonti
    -BankAccountsAndGateways=Bankkonti | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Vis konto
     AccountRef=Finansiel konto ref
     AccountLabel=Finansiel konto etiket
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Konto adresse
     BankAccountCountry=Konto land
     BankAccountOwner=Konto ejer navn
     BankAccountOwnerAddress=Konto ejer adresse
    -RIBControlError=Integritetscheck af værdier fejler. Det betyder, at oplysninger til dette kontonummer ikke er fuldstændige eller forkerte (check land, numre og IBAN).
    +RIBControlError=Integritetscheck af værdier fejler. Det betyder, at oplysningerne for dette kontonummer er ufuldstændige eller forkerte (tjek land, numre og IBAN).
     CreateAccount=Opret konto
     NewBankAccount=Ny konto
     NewFinancialAccount=Ny finansiel konto
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Linjer til afsteming
     Conciliable=Kan afstemmes
     Conciliate=Afstem
     Conciliation=Afstemning
    +SaveStatementOnly=Gem kun udsagn
     ReconciliationLate=Afstemning sent
     IncludeClosedAccount=Inkluder lukkede konti
     OnlyOpenedAccount=Kun åbne konti
    @@ -104,19 +105,19 @@ SocialContributionPayment=Social / skattemæssig skat betaling
     BankTransfer=bankoverførsel
     BankTransfers=Bankoverførsler
     MenuBankInternalTransfer=Intern overførsel
    -TransferDesc=Overførsel fra en konto til en anden, vil Dolibarr skrive to poster (en debitering i kildekonto og en kredit i målkonto. Det samme beløb (undtagen tegn), etiket og dato vil blive brugt til denne transaktion)
    +TransferDesc=Overførsel fra en konto til en anden, Dolibarr vil skrive to poster (en debitering i kildekonto og en kredit i målkonto). Det samme beløb (uden fortegn), etiket og dato vil blive brugt til denne transaktion)
     TransferFrom=Fra
     TransferTo=Til
     TransferFromToDone=En overførsel fra <b> %s </b> til <b> %s </b> af <b> %s </b> %s er blevet optaget.
     CheckTransmitter=Transmitter
     ValidateCheckReceipt=Bekræft denne kvitteringskvittering?
    -ConfirmValidateCheckReceipt=Er du sikker på at du vil validere denne kvittering for kvittering, vil der ikke blive foretaget nogen ændring, når dette er gjort?
    +ConfirmValidateCheckReceipt=Er du sikker på at du vil bekræfte denne kvittering for kvittering, vil der ikke blive foretaget nogen ændring, når dette er gjort?
     DeleteCheckReceipt=Slet denne kvittering for kvittering?
     ConfirmDeleteCheckReceipt=Er du sikker på, at du vil slette denne kvittering for kvittering?
     BankChecks=Bankcheck
     BankChecksToReceipt=Checks venter depositum
     ShowCheckReceipt=Vis check depositum kvittering
    -NumberOfCheques=Nb af kontrol
    +NumberOfCheques=Antal tjek
     DeleteTransaction=Slet indtastning
     ConfirmDeleteTransaction=Er du sikker på, at du vil slette denne post?
     ThisWillAlsoDeleteBankRecord=Dette vil også slette genereret bankindtastning
    @@ -135,7 +136,7 @@ BankTransactionLine=Bank post
     AllAccounts=Alle bank- og kontantekonti
     BackToAccount=Tilbage til konto
     ShowAllAccounts=Vis for alle konti
    -FutureTransaction=Transaktion i fremtiden. Ingen måde at forligne.
    +FutureTransaction=Transaktion i fremtiden. Ingen måde at forene.
     SelectChequeTransactionAndGenerate=Vælg / filtrer checks for at inkludere i kontokortet og klik på "Opret".
     InputReceiptNumber=Vælg kontoudskrift relateret til forliget. Brug en sorterbar numerisk værdi: ÅÅÅÅMM eller ÅÅÅÅMMDD
     EventualyAddCategory=Til sidst skal du angive en kategori, hvor klasserne skal klassificeres
    @@ -153,7 +154,7 @@ RejectCheckDate=Dato checken blev returneret
     CheckRejected=Tjek tilbage
     CheckRejectedAndInvoicesReopened=Tjek tilbage, og fakturaer genåbnes
     BankAccountModelModule=Dokumentskabeloner til bankkonti
    -DocumentModelSepaMandate=Skabelon af SEPA mandat. Nyttige til europæiske lande kun i EØF.
    +DocumentModelSepaMandate=Skabelon af SEPA mandat. Nyttig til europæiske lande kun i EØF.
     DocumentModelBan=Skabelon til at udskrive en side med BAN-oplysninger.
     NewVariousPayment=Nye diverse betalinger
     VariousPayment=Diverse betalinger
    @@ -162,4 +163,5 @@ ShowVariousPayment=Vis diverse betalinger
     AddVariousPayment=Tilføj diverse betalinger
     SEPAMandate=SEPA mandat
     YourSEPAMandate=Dit SEPA mandat
    -FindYourSEPAMandate=Dette er dit SEPA-mandat til at give vores firma tilladelse til at foretage en direkte debitering til din bank. Takket være returnering er det underskrevet (scan af det underskrevne dokument) eller sendt det pr. Mail til
    +FindYourSEPAMandate=Dette er dit SEPA-mandat til at give vores firma tilladelse til at foretage en direkte debitering til din bank. Ret det underskrevet (scan af det underskrevne dokument) eller send det pr. Mail til
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/da_DK/bills.lang b/htdocs/langs/da_DK/bills.lang
    index fc2a4f88f0e..033afd95e9b 100644
    --- a/htdocs/langs/da_DK/bills.lang
    +++ b/htdocs/langs/da_DK/bills.lang
    @@ -24,11 +24,11 @@ InvoiceProForma=Proformafaktura
     InvoiceProFormaAsk=Proformafaktura
     InvoiceProFormaDesc=<b>Proformafakturaen</b> ligner en ægte faktura, men har ingen regnskabsmæssig værdi.
     InvoiceReplacement=Erstatningsfaktura.
    -InvoiceReplacementAsk=Erstatningsfaktura som faktura
    -InvoiceReplacementDesc=<b> Erstatningsfaktura </b> bruges til at annullere og erstatte en faktura uden betaling allerede modtaget. <br> <br> Bemærk! Kun fakturaer uden betaling på det kan erstattes. Hvis fakturaen du udskifter endnu ikke er lukket, lukkes den automatisk for at "forladt".
    +InvoiceReplacementAsk=Erstatningsfaktura for faktura
    +InvoiceReplacementDesc=<b>Erstatningsfaktura</b> bruges til at annullere og erstatte en faktura uden modtaget betaling . <br> <br> Bemærk! Kun fakturaer uden betaling på det kan erstattes. Hvis fakturaen du udskifter endnu ikke er lukket, lukkes den automatisk for at "forladt".
     InvoiceAvoir=Kreditnota
     InvoiceAvoirAsk=Kreditnota til korrektion af faktura
    -InvoiceAvoirDesc=<b>Kreditnotaen</b> er en negativ faktura, der benyttes for at løse, at en faktura lyder på et beløb, der adskiller sig fra det beløb, der reelt skal betales (fordi kunden har betalt for meget ved en fejl, eller f.eks. har returneret nogle varer).
    +InvoiceAvoirDesc=<b>Kreditnotaer</b> er en negativ faktura, der bruges til at korrigere det faktum, at en faktura har et beløb, som adskiller sig fra det beløb, der virkelig er betalt (f.eks. kunden betalte for meget ved en fejl eller vil ikke betale hele beløbet siden den returnerede nogle produkter).
     invoiceAvoirWithLines=Opret kreditnota med linjer fra oprindelsesfakturaen
     invoiceAvoirWithPaymentRestAmount=Opret kreditnota med resterende ubetalte oprindelsesfaktura
     invoiceAvoirLineWithPaymentRestAmount=Kreditnota for resterende ubetalte beløb
    @@ -66,8 +66,8 @@ paymentInInvoiceCurrency=i fakturaer valuta
     PaidBack=Tilbagebetalt
     DeletePayment=Slet betaling
     ConfirmDeletePayment=Er du sikker på, at du vil slette denne betaling?
    -ConfirmConvertToReduc=Ønsker du at konvertere denne %s til en absolut rabat? <br> Beløbet vil således blive gemt blandt alle rabatter og kunne bruges som rabat for en nuværende eller en fremtidig faktura for denne kunde.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Ønsker du at konvertere denne %s til en absolut rabat? <br> Beløbet vil blive gemt blandt alle rabatter og kan fremover bruges som rabat for en nuværende eller en fremtidig faktura for denne kunde.
    +ConfirmConvertToReducSupplier=Ønsker du at konvertere denne %s til en absolut rabat? <br> Beløbet vil blive gemt blandt alle rabatter og kan bruges som rabat for en nuværende eller en fremtidig faktura for denne leverandør.
     SupplierPayments=Leverandørbetalinger
     ReceivedPayments=Modtagne betalinger
     ReceivedCustomersPayments=Modtagne kundebetalinger
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Betalingsbetingelser
     PaymentAmount=Betalingsbeløb
     ValidatePayment=Godkend betaling
     PaymentHigherThanReminderToPay=Betaling højere end betalingspåmindelse
    -HelpPaymentHigherThanReminderToPay=Bemærk at indbetalingsbeløbet af en eller flere regninger er højere end restbeløbet. <br> Ret beløbet eller godkend og påtænk at oprette en kreditnota lydende på det overskydende beløb.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Vær opmærksom på, at betalingsbeløbet på en eller flere regninger er højere end det udestående beløb, der skal betales. <br> Rediger din post, ellers bekræft og overvej at oprette en kreditnote for det overskydende beløb, der er modtaget for hver overbetalt faktura.
    +HelpPaymentHigherThanReminderToPaySupplier=Vær opmærksom på, at betalingsbeløbet på en eller flere regninger er højere end det udestående beløb, der skal betales. <br> Rediger din post, ellers bekræft og overvej at oprette en kreditnota for det overskydende beløb, der betales for hver overbetalt faktura.
     ClassifyPaid=Klassificer som "Betalt"
     ClassifyPaidPartially=Klassificer som "Delvist betalt"
     ClassifyCanceled=Klassificer som "Tabt"
    @@ -109,19 +109,19 @@ CancelBill=Annuller en faktura
     SendRemindByMail=Send påmindelse via e-mail
     DoPayment=Angiv betaling
     DoPaymentBack=Angiv tilbagebetaling
    -ConvertToReduc=Mark as credit available
    -ConvertExcessReceivedToReduc=Convert excess received into available credit
    -ConvertExcessPaidToReduc=Convert excess paid into available discount
    +ConvertToReduc=Markér som kredit tilgængelig
    +ConvertExcessReceivedToReduc=Konverter overskud modtaget til ledig kredit
    +ConvertExcessPaidToReduc=Konverter overskud betalt til ledig rabat
     EnterPaymentReceivedFromCustomer=Angive betaling modtaget fra kunden
     EnterPaymentDueToCustomer=Opret påmindelse til kunde
     DisabledBecauseRemainderToPayIsZero=Deaktiveret, da restbeløbet er nul
     PriceBase=Basispris
     BillStatus=Fakturastatus
     StatusOfGeneratedInvoices=Status for genererede fakturaer
    -BillStatusDraft=Udkast (skal valideres)
    +BillStatusDraft=Udkast (skal bekræftes)
     BillStatusPaid=Betalt
    -BillStatusPaidBackOrConverted=Credit note refund or marked as credit available
    -BillStatusConverted=Paid (ready for consumption in final invoice)
    +BillStatusPaidBackOrConverted=Kreditnota restitution eller markeret som kredit tilgængelig
    +BillStatusConverted=Betalt (klar til forbrug i slutfaktura)
     BillStatusCanceled=Tabt
     BillStatusValidated=Godkendt (skal betales)
     BillStatusStarted=Startet
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Lukket (ubetalte)
     BillStatusClosedPaidPartially=Betalt (delvis)
     BillShortStatusDraft=Udkast
     BillShortStatusPaid=Betalt
    -BillShortStatusPaidBackOrConverted=Tilbagebetal eller konverter
    +BillShortStatusPaidBackOrConverted=Refunderet eller konverteret
    +Refunded=refunderet
     BillShortStatusConverted=Betalt
     BillShortStatusCanceled=Tabt
     BillShortStatusValidated=Godkendt
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Ikke refunderet
     BillShortStatusClosedUnpaid=Lukket
     BillShortStatusClosedPaidPartially=Betalt (delvis)
     PaymentStatusToValidShort=Skal godkendes
    -ErrorVATIntraNotConfigured=Momsregistreringsnummer endnu ikke defineret
    +ErrorVATIntraNotConfigured=Momsnummer i Fællesskabet endnu ikke defineret
     ErrorNoPaiementModeConfigured=Ingen standardbetalingsmetode defineret. Gå til opsætning for fakturamodul for at rette dette.
    -ErrorCreateBankAccount=Opret en bankkonto, og derefter gå til Setup panel af faktura modul til at definere betalingsformer
    +ErrorCreateBankAccount=Opret en bankkonto, og gå derefter til Opsætningspanel i Faktura-modul for at definere betalingsformer
     ErrorBillNotFound=Faktura %s findes ikke
    -ErrorInvoiceAlreadyReplaced=Fejl, du forsøger at validere en faktura, der skal erstatte faktura %s. Men denne er allerede blevet erstattet af faktura %s.
    +ErrorInvoiceAlreadyReplaced=Fejl, du forsøgte at bekræfte en faktura for at erstatte faktura %s. Men denne er allerede erstattet af faktura %s.
     ErrorDiscountAlreadyUsed=Fejl, rabat allerede brugt
     ErrorInvoiceAvoirMustBeNegative=Fejl, korrekt faktura skal have et negativt beløb
     ErrorInvoiceOfThisTypeMustBePositive=Fejl, denne type faktura skal have et positivt beløb
     ErrorCantCancelIfReplacementInvoiceNotValidated=Fejl, kan ikke annullere en faktura, som er blevet erstattet af en anden faktura, der stadig har status som udkast
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Denne del eller en anden er allerede brugt, så rabat serien kan ikke fjernes.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Denne del eller en anden er allerede brugt, så rabatserier kan ikke fjernes.
     BillFrom=Fra
     BillTo=Til
     ActionsOnBill=Handlinger for faktura
    @@ -179,30 +180,31 @@ ConfirmClassifyPaidBill=Er du sikker på, at du vil ændre fakturaen <b> %s </b>
     ConfirmCancelBill=Er du sikker på, at du vil annullere fakturaen <b> %s </b>?
     ConfirmCancelBillQuestion=Hvorfor vil du klassificere denne faktura 'forladt'?
     ConfirmClassifyPaidPartially=Er du sikker på, at du vil ændre fakturaen <b> %s </b> til betalte status?
    -ConfirmClassifyPaidPartiallyQuestion=Denne faktura er ikke blevet betalt helt. Hvad er årsager til at du lukker denne faktura?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Resterende ubetalte <b> (%s %s) </b> er en rabat tildelt, fordi betaling blev foretaget før sigt. Jeg regulerer momsen med en kreditnota.
    +ConfirmClassifyPaidPartiallyQuestion=Denne faktura er ikke blevet betalt helt. Hvad er årsagen til at lukke denne faktura?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Resterende ubetalte <b>(%s %s)</b> er en rabat tildelt, fordi betaling blev foretaget i fortid. Jeg regulerer momsen med en kreditnota.
     ConfirmClassifyPaidPartiallyReasonDiscount=Resterende ubetalte <b> (%s %s) </b> er en rabat tildelt, fordi betaling blev foretaget før sigt.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Resterende ubetalte <b> (%s %s) </b> er en rabat tildelt, fordi betaling blev foretaget før sigt. Jeg accepterer at miste momsen på denne rabat.
    -ConfirmClassifyPaidPartiallyReasonDiscountVat=Resterende ubetalte <b> (%s %s) </b> er en rabat tildelt, fordi betaling blev foretaget før sigt. Jeg inddriver momsen på denne rabat uden en kreditnota.
    +ConfirmClassifyPaidPartiallyReasonDiscountVat=Resterende ubetalte <b>(%s %s)</b> er en rabat tildelt, fordi betaling blev foretaget i fortid. Jeg inddriver momsen på denne rabat uden en kreditnota.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Dårlig kunde
     ConfirmClassifyPaidPartiallyReasonProductReturned=Varer delvist returneret
     ConfirmClassifyPaidPartiallyReasonOther=Beløb opgives for andre grunde
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Dette valg er muligt, hvis din faktura er blevet forsynet med passende kommentar. (Eksempel «Kun den afgift, der svarer til den pris, der rent faktisk var blevet betalt giver ret til fradrag»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=I nogle lande, dette valg kan kun mulig, hvis din faktura indeholder korrekte note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Dette valg er muligt, hvis din faktura er blevet forsynet med passende kommentarer. (Eksempel «Kun skatten svarende til den pris, der faktisk er betalt giver ret til fradrag«)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=I nogle lande kan dette valg kun være muligt, hvis din faktura indeholder korrekte noter.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Brug dette valg, hvis alle andre ikke passer
     ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=En <b>dårlig kunde</b> er en kunde, der nægter at betale sin gæld.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Dette valg bruges, når betalingen ikke er færdig, fordi nogle af varerne blev returneret
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Brug dette valg, hvis alle andre ikke passer, for eksempel i følgende situation: <br> - betaling ikke fuldført, fordi nogle varer blev sendt tilbage <br> - beløb for højt, fordi en rabat blev glemt <br> I alle tilfælde skal det overskydende beløb korrigeres i regnskabssystemet ved at oprette en kreditnota.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Brug dette valg hvis alle andre ikke er egnede, for eksempel i følgende situation: <br> - Betaling ikke fuldført, fordi nogle produkter blev sendt tilbage <br> - Beløb hævdede for vigtigt, fordi en rabat blev glemt <br> I alle tilfælde beløb Overskud skal korrigeres i regnskabssystemet ved at oprette en kreditnota.
     ConfirmClassifyAbandonReasonOther=Anden
     ConfirmClassifyAbandonReasonOtherDesc=Dette valg vil blive anvendt i alle andre tilfælde. For eksempel fordi du har planer om at oprette en erstatning faktura.
    -ConfirmCustomerPayment=Bekræfter du denne betalings for <b> %s </b> %s?
    -ConfirmSupplierPayment=Bekræfter du denne betalingsindgang for <b> %s </b> %s?
    -ConfirmValidatePayment=Er du sikker på, at du vil validere denne betaling? Ingen ændring kan foretages, når betalingen er valideret.
    +ConfirmCustomerPayment=Bekræfter du denne betaling for <b> %s </b> %s?
    +ConfirmSupplierPayment=Bekræfter du denne betalings form for <b> %s </b> %s?
    +ConfirmValidatePayment=Er du sikker på, at du vil bekræfte denne betaling? Ingen ændring kan foretages, når betalingen er bekræftet.
     ValidateBill=Godkend fakturaen
     UnvalidateBill=Fjern godkendelse af faktura
     NumberOfBills=Antal fakturaer
    -NumberOfBillsByMonth=Antal fakturaer månedsvis
    +NumberOfBillsByMonth=Antal fakturaer pr. Måned
     AmountOfBills=Mængden af fakturaer
    +AmountOfBillsHT=Fakturabeløb (ekskl. Skat)
     AmountOfBillsByMonthHT=Mængden af ​​fakturaer efter måned (ekskl. moms)
     ShowSocialContribution=Vis skat/afgift
     ShowBill=Vis faktura
    @@ -222,7 +224,7 @@ RemainderToPayBack=Resterende beløb at refundere
     Rest=Verserende
     AmountExpected=Fordret beløb
     ExcessReceived=Overskud modtaget
    -ExcessPaid=Excess paid
    +ExcessPaid=Overskydende betalt
     EscompteOffered=Rabat (betaling før sigt)
     EscompteOfferedShort=Discount
     SendBillRef=Indsendelse af faktura %s
    @@ -240,7 +242,7 @@ SendReminderBillByMail=Send påmindelse via e-mail
     RelatedCommercialProposals=Relaterede tilbud
     RelatedRecurringCustomerInvoices=Tilknyttede tilbagevendende kundefaktuaer
     MenuToValid=På gyldige
    -DateMaxPayment=Betaling på grund af
    +DateMaxPayment=Betaling forfalder den
     DateInvoice=Fakturadato
     DatePointOfTax=Momsbetaling
     NoInvoice=Ingen faktura
    @@ -260,9 +262,9 @@ Repeatables=Skabeloner
     ChangeIntoRepeatableInvoice=Konverter til fakturaskabelon
     CreateRepeatableInvoice=Opret fakturaskabelon
     CreateFromRepeatableInvoice=Opret fra fakturaskabelon
    -CustomersInvoicesAndInvoiceLines=Kundefakturaer og fakturalinjer
    +CustomersInvoicesAndInvoiceLines=Kundefakturaer og faktura detaljer
     CustomersInvoicesAndPayments=Kundefakturaer og betalinger
    -ExportDataset_invoice_1=Liste over kundefakturaer og fakturalinjer
    +ExportDataset_invoice_1=Kundefakturaer og faktura detaljer
     ExportDataset_invoice_2=Kundefakturaer og betalinger
     ProformaBill=Proforma Bill:
     Reduction=Reduktion
    @@ -282,29 +284,29 @@ RelativeDiscount=Relativ rabat
     GlobalDiscount=Global rabat
     CreditNote=Kreditnota
     CreditNotes=Kredit noter
    -CreditNotesOrExcessReceived=Credit notes or excess received
    +CreditNotesOrExcessReceived=Kreditnotaer eller overskud modtaget
     Deposit=Forskudsbetaling
     Deposits=Indbetalinger
     DiscountFromCreditNote=Discount fra kreditnota %s
     DiscountFromDeposit=Indbetalinger på faktura %s
    -DiscountFromExcessReceived=Payments in excess of invoice %s
    -DiscountFromExcessPaid=Payments in excess of invoice %s
    -AbsoluteDiscountUse=Denne form for kredit kan bruges på faktura før dens validering
    -CreditNoteDepositUse=Faktura skal valideres for at bruge denne type kreditter
    +DiscountFromExcessReceived=Betalinger ud over faktura %s
    +DiscountFromExcessPaid=Betalinger ud over faktura %s
    +AbsoluteDiscountUse=Denne form for kredit kan bruges på faktura før dens bekræftelse
    +CreditNoteDepositUse=Faktura skal bekræftes for at bruge denne type kreditter
     NewGlobalDiscount=Ny discount
     NewRelativeDiscount=Ny relativ discount
    -DiscountType=Discount type
    +DiscountType=Rabat type
     NoteReason=Bemærk / Grund
     ReasonDiscount=Årsag
     DiscountOfferedBy=Ydet af
    -DiscountStillRemaining=Discounts or credits available
    -DiscountAlreadyCounted=Discounts or credits already consumed
    -CustomerDiscounts=Customer discounts
    -SupplierDiscounts=Vendors discounts
    +DiscountStillRemaining=Rabatter eller kreditter til rådighed
    +DiscountAlreadyCounted=Rabatter eller kreditter, der allerede er forbrugt
    +CustomerDiscounts=Kunderabatter
    +SupplierDiscounts=Leverandører rabatter
     BillAddress=Faktura adresse
    -HelpEscompte=Denne rabat er en rabat, der ydes til kunden, fordi dens paiement blev foretaget før sigt.
    -HelpAbandonBadCustomer=Dette beløb er blevet opgivet (kunde siges at være en dårlig kunde) og betragtes som en exceptionnal løs.
    -HelpAbandonOther=Dette beløb er blevet opgivet, da det var en fejl (forkert kunde eller faktura erstattes af en anden for eksempel)
    +HelpEscompte=Denne rabat er en rabat til kunden, fordi betaling blev foretaget før forfaldsdatoen.
    +HelpAbandonBadCustomer=Dette beløb er blevet opgivet (kunden lader til at være en dårlig kunde) og betragtes som et usædvanligt tab.
    +HelpAbandonOther=Dette beløb er blevet opgivet, da det var en fejl (forkert kunde eller faktura erstattet af en anden for eksempel)
     IdSocialContribution=Vis ID for skat/afgift
     PaymentId=Betaling id
     PaymentRef=Betalings ref.
    @@ -321,31 +323,31 @@ InvoiceNotChecked=Ingen valgt faktura
     CloneInvoice=Klon faktura
     ConfirmCloneInvoice=Er du sikker på, at du vil klone denne faktura <b> %s </b>?
     DisabledBecauseReplacedInvoice=Aktion handicappede, fordi fakturaen er blevet erstattet
    -DescTaxAndDividendsArea=Dette område præsenterer et resumé af alle betalinger foretaget til særlige udgifter. Kun posten med betaling i det faste år er inkluderet her.
    -NbOfPayments=Nb af betalinger
    +DescTaxAndDividendsArea=Dette område præsenterer et resumé af alle betalinger foretaget til særlige udgifter. Kun poster med betaling i det faste år er inkluderet her.
    +NbOfPayments=Antal betalinger
     SplitDiscount=Split rabat i to
    -ConfirmSplitDiscount=Er du sikker på, at du vil opdele denne rabat på <b>%s</b> %s i 2 lavere rabatter?
    -TypeAmountOfEachNewDiscount=Input beløb for hver af to dele:
    -TotalOfTwoDiscountMustEqualsOriginal=Summen af to nye rabatter skal svare til det oprindelige rabatbeløb.
    +ConfirmSplitDiscount=Er du sikker på, at du vil opdele denne rabat på <b> %s </b> %s i 2 mindre rabatter?
    +TypeAmountOfEachNewDiscount=Indgangsbeløb for hver af to dele:
    +TotalOfTwoDiscountMustEqualsOriginal=Samlet to nye rabatter skal svare til det oprindelige rabatbeløb.
     ConfirmRemoveDiscount=Er du sikker på at du vil fjerne denne rabat?
     RelatedBill=Relaterede faktura
     RelatedBills=Relaterede fakturaer
     RelatedCustomerInvoices=Tilknyttede kundefakturaer
     RelatedSupplierInvoices=Relaterede leverandørfakturaer
     LatestRelatedBill=Seneste relaterede faktura
    -WarningBillExist=Advarsel, der findes en eller flere fakturaer
    +WarningBillExist=Advarsel, der findes allerede en eller flere fakturaer
     MergingPDFTool=Sammenlægning af PDF-værktøj
     AmountPaymentDistributedOnInvoice=Betalingsbeløb fordelt på faktura
    -PaymentOnDifferentThirdBills=Tillad betalinger på forskellige tredjeparts regninger, men samme moderselskab
    +PaymentOnDifferentThirdBills=Tillad betaling på forskellige tredjeparts regninger, men samme moderselskab
     PaymentNote=Betalingsnota
     ListOfPreviousSituationInvoices=Liste over tidligere status fakturaer
     ListOfNextSituationInvoices=Liste over næste status fakturaer
    -ListOfSituationInvoices=List of situation invoices
    -CurrentSituationTotal=Total current situation
    -DisabledBecauseNotEnouthCreditNote=To remove a situation invoice from cycle, this invoice's credit note total must cover this invoice total
    -RemoveSituationFromCycle=Remove this invoice from cycle
    -ConfirmRemoveSituationFromCycle=Remove this invoice %s from cycle ?
    -ConfirmOuting=Confirm outing
    +ListOfSituationInvoices=Liste over situationsfakturaer
    +CurrentSituationTotal=Samlet nuværende situation
    +DisabledBecauseNotEnouthCreditNote=For at fjerne en faktura fra cyklus skal fakturaens kreditnota dække hele fakturaen
    +RemoveSituationFromCycle=Fjern denne faktura fra cyklus
    +ConfirmRemoveSituationFromCycle=Fjern denne faktura %s fra cyklus?
    +ConfirmOuting=Bekræft udflugt
     FrequencyPer_d=Hver %s dage
     FrequencyPer_m=Hver %s måneder
     FrequencyPer_y=Hver %s år
    @@ -355,10 +357,10 @@ NextDateToExecution=Dato for næste faktura generation
     NextDateToExecutionShort=Dato næste gener.
     DateLastGeneration=Dato for seneste generation
     DateLastGenerationShort=Dato seneste gener.
    -MaxPeriodNumber=Max number of invoice generation
    -NbOfGenerationDone=Number of invoice generation already done
    -NbOfGenerationDoneShort=Number of generation done
    -MaxGenerationReached=Maximum number of generations reached
    +MaxPeriodNumber=Maks antal fakturagenerering
    +NbOfGenerationDone=Antal fakturagenerering allerede udført
    +NbOfGenerationDoneShort=Antal genererede færdigheder
    +MaxGenerationReached=Maksimalt antal generationer nået
     InvoiceAutoValidate=Validér fakturaer automatisk
     GeneratedFromRecurringInvoice=Genereret fra skabelon tilbagevendende faktura %s
     DateIsNotEnough=Dato er endnu ikke nået
    @@ -394,7 +396,7 @@ PaymentConditionShort14DENDMONTH=14 dage i slutningen af ​​måneden
     PaymentCondition14DENDMONTH=Inden for 14 dage efter slutningen af ​​måneden
     FixAmount=Ret beløb
     VarAmount=Variabel mængde (%% tot.)
    -VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s'
    +VarAmountOneLine=Variabel mængde (%% tot.) - 1 linje med etiket '%s'
     # PaymentType
     PaymentTypeVIR=Bankoverførsel
     PaymentTypeShortVIR=Bankoverførsel
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Dokumenter mod betaling)
     PaymentTypeShortTIP=TIP Betaling
    -PaymentTypeVAD=Online betaling
    -PaymentTypeShortVAD=Online betaling
    +PaymentTypeVAD=Netbetailng
    +PaymentTypeShortVAD=Netbetailng
     PaymentTypeTRA=Bankudkast
     PaymentTypeShortTRA=Udkast til
     PaymentTypeFAC=Faktor
     PaymentTypeShortFAC=Faktor
     BankDetails=Bankoplysninger
     BankCode=Bankkode
    -DeskCode=Skrivebord kode
    +DeskCode=Kontorkode
     BankAccountNumber=Kontonummer
    -BankAccountNumberKey=Nøgle
    +BankAccountNumberKey=Tjek cifre
     Residence="Direkte debit"
    -IBANNumber=IBAN-nummer
    +IBANNumber=Komplet IBAN kontonummer
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=BIC / SWIFT-nummer
    @@ -436,7 +438,7 @@ NetToBePaid=Netto, at betale
     PhoneNumber=Tlf
     FullPhoneNumber=Telefon
     TeleFax=Fax
    -PrettyLittleSentence=Accepter betalingsbeløbene grund af checks udstedt i mit navn, som et medlem af et regnskabssystem sammenslutning godkendt af skatteadministration.
    +PrettyLittleSentence=Accept the amount of payments due by checks issued in my name as a Member of an accounting association approved by the Fiscal Administration.
     IntracommunityVATNumber=Inden for antallet af moms
     PaymentByChequeOrderedTo=Checkbetaling (inkl. moms) skal stiles til %s
     PaymentByChequeOrderedToShort=Checkbetaling (inkl. moms) skal stiles til
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Betaling ved overførsel på følgende bankko
     VATIsNotUsedForInvoice=* Ikke gældende moms kunst-293B af CGI
     LawApplicationPart1=Ved anvendelse af loven 80.335 af 12/05/80
     LawApplicationPart2=varerne forbliver ejendom
    -LawApplicationPart3=sælgeren, indtil den fuldstændige indkassere af
    +LawApplicationPart3=Sælgeren indtil fuld betaling af
     LawApplicationPart4=deres pris.
     LimitedLiabilityCompanyCapital=SARL med Capital af
     UseLine=Ansøge
    @@ -463,32 +465,33 @@ Cheques=Checks
     DepositId=Id depositum
     NbCheque=Antal checks
     CreditNoteConvertedIntoDiscount=Dette %s er blevet konverteret til %s
    -UsBillingContactAsIncoiveRecipientIfExist=Brug kundens kontakt-adresse fra faktura i stedet for tredjepartsadresse som modtager for fakturaer
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Vis alle ubetalte fakturaer
     ShowUnpaidLateOnly=Vis sent unpaid faktura kun
     PaymentInvoiceRef=Betaling faktura %s
     ValidateInvoice=Validér faktura
    -ValidateInvoices=Valider fakturaer
    +ValidateInvoices=Bekræft fakturaer
     Cash=Kontanter
     Reported=Forsinket
     DisabledBecausePayments=Ikke muligt da der er nogle betalinger
     CantRemovePaymentWithOneInvoicePaid=Kan ikke fjerne betaling, da der er mindst en faktura, der er klassificeret som betalt
     ExpectedToPay=Forventet betaling
    -CantRemoveConciliatedPayment=Kan ikke fjerne udlignet betaling
    +CantRemoveConciliatedPayment=Kan ikke fjerne afstemt betaling
     PayedByThisPayment=Betalt med denne betaling
    -ClosePaidInvoicesAutomatically=Klassificer "Betalt" alle standard-, forskuds- eller udskiftningsfakturaer, der er fuldt ud betalt.
    +ClosePaidInvoicesAutomatically=Klassificer "Betalt" alle standard-, nedbetalings- eller udskiftningsfakturaer, der betales helt.
     ClosePaidCreditNotesAutomatically=Klassificer "Betalt" alle kreditnotaer, der er fuldt ud betalt tilbage.
    -ClosePaidContributionsAutomatically=Marker alle ydelser af skat/afgift som "Betalt"
    -AllCompletelyPayedInvoiceWillBeClosed=Alle fakturaer med et restbeløb på nul, vil automatisk blive lukket med status "Betalt".
    +ClosePaidContributionsAutomatically=Klassificer "Betalt" alle sociale eller skattemæssige bidrag fuldt ud betalt.
    +AllCompletelyPayedInvoiceWillBeClosed=Alle fakturaer uden restbeløbet vil automatisk lukkes med status "Betalt".
     ToMakePayment=Betale
     ToMakePaymentBack=Tilbagebetalt
     ListOfYourUnpaidInvoices=Liste over ubetalte fakturaer
     NoteListOfYourUnpaidInvoices=Bemærk: Denne liste indeholder kun fakturaer til tredjeparter, som du er knyttet til som salgsrepræsentant.
     RevenueStamp=Indtægtsstempel
    -YouMustCreateInvoiceFromThird=Denne mulighed er kun tilgængelig, når du opretter faktura fra fanen "kunde" hos tredjepart
    -YouMustCreateInvoiceFromSupplierThird=Denne mulighed er kun tilgængelig, når du opretter faktura fra fanen "leverandør" af tredjepart
    +YouMustCreateInvoiceFromThird=Denne indstilling er kun tilgængelig, når du opretter fakturaer fra fanen "kunde" af tredjepart
    +YouMustCreateInvoiceFromSupplierThird=Denne mulighed er kun tilgængelig, når du opretter fakturaer fra fanen "leverandør" af tredjepart
     YouMustCreateStandardInvoiceFirstDesc=Du skal først oprette en standardfaktura og konvertere den til "skabelon" for at oprette en ny skabelonfaktura
     PDFCrabeDescription=Faktura model Crabe. En fuldstændig faktura model (Support moms option, rabatter, betalinger betingelser, logo, etc. ..)
    +PDFSpongeDescription=Faktura PDF skabelon opsætning. En komplet faktura skabelon
     PDFCrevetteDescription=Faktura PDF skabelon Crevette. En komplet faktura skabelon for kontoudtog
     TerreNumRefModelDesc1=Retur nummer med format %syymm-nnnn for standard faktura og %syymm-nnnn for kreditnoter hvor du er år, mm er måned og nnnn er en sekvens uden pause og ingen tilbagevenden til 0
     MarsNumRefModelDesc1=Retur nummer med format %syymm-nnnn for standardfakturaer, %syymm-nnnn for udskiftningsfakturaer, %syymm-nnnn til fakturaer med forskud og %syymm-nnnn for kreditnoter hvor du er år, mm er måned og nnnn er en sekvens uden pause og nej vende tilbage til 0
    @@ -513,13 +516,13 @@ SituationAmount=Kontoudtog beløb (netto)
     SituationDeduction=Kontoudtog udtræk
     ModifyAllLines=Rediger alle linjer
     CreateNextSituationInvoice=Opret næste situation
    -ErrorFindNextSituationInvoice=Error unable to find next situation cycle ref
    -ErrorOutingSituationInvoiceOnUpdate=Unable to outing this situation invoice.
    -ErrorOutingSituationInvoiceCreditNote=Unable to outing linked credit note.
    +ErrorFindNextSituationInvoice=Fejl kunne ikke finde næste situation cyklus ref
    +ErrorOutingSituationInvoiceOnUpdate=Kan ikke udlade denne situation faktura.
    +ErrorOutingSituationInvoiceCreditNote=Kan ikke udveksle tilknyttet kreditnota.
     NotLastInCycle=Denne faktura er ikke den seneste i cyklus og må ikke ændres.
     DisabledBecauseNotLastInCycle=Den næste situation eksisterer allerede.
     DisabledBecauseFinal=Denne situation er endelig.
    -situationInvoiceShortcode_AS=AS
    +situationInvoiceShortcode_AS=A/S
     situationInvoiceShortcode_S=S
     CantBeLessThanMinPercent=Værdien kan ikke være mindre end dets værdi i den foregående situation.
     NoSituations=Ingen åbne situationer
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Faktura linje fremskridt kan ikke være større end ell
     updatePriceNextInvoiceErrorUpdateline=Fejl: opdateringspris på faktura linje: %s
     ToCreateARecurringInvoice=For at oprette en tilbagevendende faktura for denne kontrakt skal du først oprette dette udkast faktura og derefter konvertere det til en faktura skabelon og definere hyppigheden for generering af fremtidige fakturaer.
     ToCreateARecurringInvoiceGene=For at generere fremtidige fakturaer regelmæssigt og manuelt, skal du bare gå i menuen <strong> %s - %s - %s </strong>.
    -ToCreateARecurringInvoiceGeneAuto=Hvis du har brug for at generere sådanne fakturaer automatisk, så spørg administratoren om at aktivere og opsætte modulet <strong> %s </strong>. Bemærk at begge metoder (manuel og automatisk) kan bruges sammen med ingen risiko for overlapning.
    +ToCreateARecurringInvoiceGeneAuto=Hvis du skal generere sådanne fakturaer automatisk, skal du bede din administrator om at aktivere og opsætte modulet <strong> %s </ strong>. Bemærk at begge metoder (manuel og automatisk) kan bruges sammen med ingen risiko for overlapning.
     DeleteRepeatableInvoice=Slet fakturaskabelon
     ConfirmDeleteRepeatableInvoice=Er du sikker på, at du vil slette fakturaenskabelon?
     CreateOneBillByThird=Opret en faktura pr. Tredjepart (ellers en faktura pr. Ordre)
    @@ -541,8 +544,9 @@ BillCreated=%s regning(er) oprettet
     StatusOfGeneratedDocuments=Status for dokument generering
     DoNotGenerateDoc=Generer ikke dokument fil
     AutogenerateDoc=Auto generere dokument fil
    -AutoFillDateFrom=Set start date for service line with invoice date
    -AutoFillDateFromShort=Set start date
    -AutoFillDateTo=Set end date for service line with next invoice date
    -AutoFillDateToShort=Set end date
    -MaxNumberOfGenerationReached=Max number of gen. reached
    +AutoFillDateFrom=Indstil startdato for servicelinje med fakturadato
    +AutoFillDateFromShort=Indstil startdato
    +AutoFillDateTo=Indstil slutdato for servicelinje med næste faktura dato
    +AutoFillDateToShort=Indstil slutdato
    +MaxNumberOfGenerationReached=Maks antal gener. nået
    +BILL_DELETEInDolibarr=Faktura slettet
    diff --git a/htdocs/langs/da_DK/cashdesk.lang b/htdocs/langs/da_DK/cashdesk.lang
    index aa99a009866..73fdfff42a8 100644
    --- a/htdocs/langs/da_DK/cashdesk.lang
    +++ b/htdocs/langs/da_DK/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Vis virksomhed
     ShowStock=Vis lager
     DeleteArticle=Klik for at fjerne denne artikel
     FilterRefOrLabelOrBC=Søg (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=Du beder om at reducere lageret ved fakturaoprettelse, så brugeren, der bruger kasseapparatet, skal have tilladelse til at redigere lager.
    +UserNeedPermissionToEditStockToUsePos=Du beder om at reducere lager på fakturaoprettelse, så brugere, der anvender POS, skal have tilladelse til at ændre i varelageret.
     DolibarrReceiptPrinter=Dolibarr kvitteringsprinter
    +PointOfSale=Kasseapparat
    +PointOfSaleShort=POS
    +CloseBill=Luk Bill
    +Floors=Gulve
    +Floor=Etage
    +AddTable=Tilføj bord
    +Place=Placere
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Bestil printere
    +SearchProduct=Søg produkt
    diff --git a/htdocs/langs/da_DK/commercial.lang b/htdocs/langs/da_DK/commercial.lang
    index 2fa192efe4b..a7cf1c21954 100644
    --- a/htdocs/langs/da_DK/commercial.lang
    +++ b/htdocs/langs/da_DK/commercial.lang
    @@ -3,8 +3,8 @@ Commercial=Tilbud
     CommercialArea=Tilbudsområde
     Customer=Kunde
     Customers=Kunder
    -Prospect=Emne
    -Prospects=Emner
    +Prospect=Potentiel kunde
    +Prospects=Potentielle kunder
     DeleteAction=Slet en begivenhed
     NewAction=Ny begivenhed
     AddAction=Opret begivenhed
    @@ -26,8 +26,8 @@ SalesRepresentativeFollowUp=Salg repræsentant (opfølgning)
     SalesRepresentativeSignature=Salgsrepræsentant (underskrift)
     NoSalesRepresentativeAffected=Ingen specifik salgsrepræsentant tildelt
     ShowCustomer=Vis kunde
    -ShowProspect=Vis emne
    -ListOfProspects=Liste over emner
    +ShowProspect=Vis potentiel kunde
    +ListOfProspects=Liste over potentielle kunder
     ListOfCustomers=Liste over kunder
     LastDoneTasks=Senest %s gennemførte opgaver
     LastActionsToDo=Ældste %s udestående opgaver
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefonopkald
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send tilbud via e-mail
     ActionAC_EMAIL=Send e-mail
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Møder
     ActionAC_INT=Fremmøde på stedet
     ActionAC_FAC=Send kundefaktura via e-mail
    @@ -60,20 +61,20 @@ ActionAC_CLO=Luk
     ActionAC_EMAILING=Send masse e-mail
     ActionAC_COM=Send kundeordre med posten
     ActionAC_SHIP=Send forsendelse med posten
    -ActionAC_SUP_ORD=Send purchase order by mail
    -ActionAC_SUP_INV=Send vendor invoice by mail
    +ActionAC_SUP_ORD=Send indkøbsordre via post
    +ActionAC_SUP_INV=Send sælgerfaktura pr. Post
     ActionAC_OTH=Andet
     ActionAC_OTH_AUTO=Automatisk oprettede begivenheder
     ActionAC_MANUAL=Manuelt oprettede begivenheder
     ActionAC_AUTO=Automatisk oprettede begivenheder
     ActionAC_OTH_AUTOShort=Auto
     Stats=Salgsstatistik
    -StatusProsp=Status for emne
    +StatusProsp=Status på potentielle kunder status
     DraftPropals=Udkast for tilbud
     NoLimit=Ingen grænse
     ToOfferALinkForOnlineSignature=Link til online signatur
    -WelcomeOnOnlineSignaturePage=Velkommen på siden for at acceptere kommercielle forslag fra %s
    +WelcomeOnOnlineSignaturePage=Velkommen til siden for at acceptere kommercielle forslag fra %s
     ThisScreenAllowsYouToSignDocFrom=Denne skærm giver dig mulighed for at acceptere og underskrive eller nægte et tilbud / kommercielt forslag
     ThisIsInformationOnDocumentToSign=Dette er oplysninger om dokumentet for at acceptere eller afvise
    -SignatureProposalRef=Undertegnelse af tilbud / kommercielt forslag %s
    +SignatureProposalRef=Underskrift af tilbud / kommercielt forslag %s
     FeatureOnlineSignDisabled=Funktion til online-signering deaktiveret eller dokument genereret, før funktionen blev aktiveret
    diff --git a/htdocs/langs/da_DK/companies.lang b/htdocs/langs/da_DK/companies.lang
    index bbf4a493320..91dae5884fe 100644
    --- a/htdocs/langs/da_DK/companies.lang
    +++ b/htdocs/langs/da_DK/companies.lang
    @@ -7,15 +7,15 @@ DeleteContact=Slet en kontakt/adresse
     ConfirmDeleteContact=Er du sikker på, at du vil slette denne kontakt og alle arvede oplysninger?
     MenuNewThirdParty=Ny tredjepart
     MenuNewCustomer=Ny kunde
    -MenuNewProspect=Nyt emne
    +MenuNewProspect=Ny potentiel kunde
     MenuNewSupplier=Ny leverandør
     MenuNewPrivateIndividual=Ny privatperson
    -NewCompany=Nyt selskab (mulighed, kunde, levenrandør)
    -NewThirdParty=Ny tredjepart (mulighed, kunde, levenrandør)
    +NewCompany=Nyt selskab (potentielle kunder, kunde, leverandør)
    +NewThirdParty=Ny tredjepart (potentielle kunder, kunde, leverandør)
     CreateDolibarrThirdPartySupplier=Opret en tredjepart (levenrandør)
     CreateThirdPartyOnly=Opret tredjepart
     CreateThirdPartyAndContact=Opret en tredjepart + en børnekontakt
    -ProspectionArea=Prospektering område
    +ProspectionArea=Prospekteringsområde
     IdThirdParty=Id tredjepart
     IdCompany=CVR
     IdContact=Kontakt-ID
    @@ -25,28 +25,28 @@ ThirdPartyContact=Kontakt for tredjepart
     Company=Firma
     CompanyName=Firmanavn
     AliasNames=Alias ​​navn (kommerciel, varemærke, ...)
    -AliasNameShort=Alias ​​navn
    +AliasNameShort=Alias ​​Navn
     Companies=Selskaber
    -CountryIsInEEC=Landet er inde i Det Europæiske Økonomiske Fællesskab
    -ThirdPartyName=Tredjeparts navn
    +CountryIsInEEC=Landet er inden for Det Europæiske Økonomiske Fællesskab
    +ThirdPartyName=Navn på tredjepart
     ThirdPartyEmail=Tredjeparts email
    -ThirdParty=Tredjepart
    -ThirdParties=Tredjepart
    -ThirdPartyProspects=Emner
    -ThirdPartyProspectsStats=Emner
    +ThirdParty=Tredje part
    +ThirdParties=Tredje partier
    +ThirdPartyProspects=Potentielle kunder
    +ThirdPartyProspectsStats=Potentielle kunder
     ThirdPartyCustomers=Kunder
     ThirdPartyCustomersStats=Kunder
     ThirdPartyCustomersWithIdProf12=Kunder med %s eller %s
     ThirdPartySuppliers=Leverandører
    -ThirdPartyType=Tredjepart type
    +ThirdPartyType=Virksomhedstype
     Individual=Privatperson
    -ToCreateContactWithSameName=Vil automatisk oprette en kontakt / adresse med samme oplysninger end tredjepart under tredjepart. I de fleste tilfælde er det nok, selvom din tredjepart er et fysisk menneske, at skabe en tredjepart alene.
    +ToCreateContactWithSameName=Vil oprette en tredjepart og en tilknyttet kontakt / adresse med samme information som tredjeparten. I de fleste tilfælde er det nok, selvom din tredjepart er en fysisk person, at skabe en tredjepart alene.
     ParentCompany=Moderselskab
     Subsidiaries=Datterselskaber
     ReportByMonth=Rapport pr. Måned
     ReportByCustomers=Rapport af kunde
     ReportByQuarter=Rapport fra kvartal
    -CivilityCode=Høfligt kode
    +CivilityCode=Civility code
     RegisteredOffice=Hjemsted
     Lastname=Efternavn
     Firstname=Fornavn
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=By
     Web=Web
     Poste= Position
    -DefaultLang=Sprog som standard
    -VATIsUsed=Salgsmoms anvendes
    -VATIsUsedWhenSelling=Dette definerer, hvis denne tredjepart indeholder en salgsafgift eller ej, når den foretager en faktura til sine egne kunder
    +DefaultLang=Sprogstandard
    +VATIsUsed=Anvendt moms
    +VATIsUsedWhenSelling=Dette definerer, om denne tredjepart indeholder en salgsafgift eller ej, når den foretager en faktura til sine egne kunder
     VATIsNotUsed=Salgsmoms anvendes ikke
     CopyAddressFromSoc=Fyld adresse med tredjepartsadresse
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Tredjepart er hverken kunde eller leverandør, ingen tilgængelige henvisningsobjekter
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Tredjepart hverken kunde eller leverandør, ingen tilgængelige henvisende objekter
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Tredjepart er hverken kunde eller leverandør, rabatter er ikke tilgængelige
     PaymentBankAccount=Betaling bankkonto
     OverAllProposals=Tilbud
    @@ -258,12 +258,12 @@ ProfId1DZ=RC
     ProfId2DZ=Kunst.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Salgsmoms ID
    +VATIntra=Momsnummer
     VATIntraShort=Skatte ID
     VATIntraSyntaxIsValid=Syntaks er gyldigt
     VATReturn=Moms returnering
    -ProspectCustomer=Emne / kunde
    -Prospect=Emne
    +ProspectCustomer=Status på potentielle kunder / kunde
    +Prospect=Potentiel kunde
     CustomerCard=Customer Card
     Customer=Kunde
     CustomerRelativeDiscount=Relativ kunde rabat
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Denne kunde har en rabat <b>på %s%%</b>
     CompanyHasNoRelativeDiscount=Denne kunde har ingen relativ discount som standard
     HasRelativeDiscountFromSupplier=Du har en standardrabat på <b> %s%% </b> fra denne leverandør
     HasNoRelativeDiscountFromSupplier=Du har ingen standard relativ rabat fra denne leverandør
    -CompanyHasAbsoluteDiscount=Denne kunde har rabat til rådighed (kredit noter eller nedbetalinger) for <b> %s </b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=Denne kunde har rabat til rådighed (kommerciel, nedbetalinger) til <b> %s </ b> %s
    +CompanyHasAbsoluteDiscount=Denne kunde har rabatter til rådighed (kreditnotaer eller nedbetalinger) for <b>%s</b>%s
    +CompanyHasDownPaymentOrCommercialDiscount=Denne kunde har rabat til rådighed (kommercielle, nedbetalinger) til <b> %s </ b> %s
     CompanyHasCreditNote=Denne kunde har stadig kreditnotaer <b>for %s %s</b>
     HasNoAbsoluteDiscountFromSupplier=Du har ingen rabatkredit tilgængelig hos denne leverandør
     HasAbsoluteDiscountFromSupplier=Du har rabatter til rådighed (krediter noter eller forudbetalinger) for <b> %s </b> %s fra denne leverandør
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolutte kunderabatter (givet af dig selv)
     SupplierAbsoluteDiscountAllUsers=Absolutte leverandørrabatter (indtastet af alle brugere)
     SupplierAbsoluteDiscountMy=Absolutte leverandørrabatter (indtastet af dig selv)
     DiscountNone=Ingen
    -Supplier=Leverandør
    +Supplier=Sælger
     AddContact=Opret kontakt
     AddContactAddress=Opret kontakt/adresse
     EditContact=Rediger kontakt
    @@ -304,16 +304,16 @@ DeleteACompany=Slet et selskab
     PersonalInformations=Personoplysninger
     AccountancyCode=Regnskabskonto
     CustomerCode=Kundekode
    -SupplierCode=Leverandør kode
    +SupplierCode=Leverandørkode
     CustomerCodeShort=Kundekode
     SupplierCodeShort=Leverandør kode
     CustomerCodeDesc=Kundekode, unik for alle kunder
     SupplierCodeDesc=Leverandørkode, unik for alle leverandører
    -RequiredIfCustomer=Påkrævet, hvis tredjepart er en kunde eller et emne
    +RequiredIfCustomer=Påkrævet, hvis tredjepart er kunde eller kunde
     RequiredIfSupplier=Påkrævet, hvis tredjepart er en sælger
    -ValidityControledByModule=Gyldighed kontrolleres af modul
    -ThisIsModuleRules=Dette er reglerne for dette modul
    -ProspectToContact=Emne at kontakte
    +ValidityControledByModule=Gyldighedsstyret af modulet
    +ThisIsModuleRules=Regler for dette modul
    +ProspectToContact=Potentiel kunde til kontakt
     CompanyDeleted=Company " %s" slettet fra databasen.
     ListOfContacts=Liste over kontakter/adresser
     ListOfContactsAddresses=Liste over kontakter/adresser
    @@ -333,29 +333,29 @@ NoContactForAnyProposal=Denne kontakt er ikke tilknyttet noget tilbud
     NoContactForAnyContract=Denne kontakt er ikke tilknyttet nogen kontrakt
     NoContactForAnyInvoice=Denne kontakt er ikke tilknyttet nogen faktura
     NewContact=Ny kontakt
    -NewContactAddress=Ny kontakt/adresse
    +NewContactAddress=Ny kontakt / adresse
     MyContacts=Mine kontakter
     Capital=Egenkapital
     CapitalOf=Egenkapital på %s
     EditCompany=Rediger virksomhed
    -ThisUserIsNot=Denne bruger er ikke en kunde, kunde eller leverandør
    +ThisUserIsNot=Denne bruger er ikke en potentiel kunde, kunde eller leverandør
     VATIntraCheck=Kontrollere
    -VATIntraCheckDesc=<b>Linket %s</b> tillader at anmode Den Europæiske moms Kontrolprogram service. En ekstern adgang til internettet fra server er påkrævet til denne tjeneste for at arbejde.
    +VATIntraCheckDesc=Linket <b> %s </b> bruger den europæiske momscheckertjeneste (VIES). En ekstern internetadgang fra serveren er nødvendig for at denne service skal fungere.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Tjek momsen for det indre marked på Europa-Kommissionens hjemmeside
    -VATIntraManualCheck=Du kan også kontrollere manuelt fra europæisk hjemmeside <a href="%s" target="_blank">%s</a>
    -ErrorVATCheckMS_UNAVAILABLE=Check ikke mulig. Check-tjenesten er ikke fastsat af medlemslandet ( %s).
    -NorProspectNorCustomer=Hverken emne eller kunde
    -JuridicalStatus=Selskabsform
    +VATIntraCheckableOnEUSite=Kontroller moms inden for Fællesskabet på Kommissionens websted
    +VATIntraManualCheck=Du kan også tjekke manuelt på Europa-Kommissionens websted <a href="%s" target="_blank"> %s </a>
    +ErrorVATCheckMS_UNAVAILABLE=Kontrol er ikke muligt. Denne service leveres ikke af medlemsstaten (%s).
    +NorProspectNorCustomer=Ikke potentiel kunde eller kunde
    +JuridicalStatus=Juridisk enhedstype
     Staff=Personale
     ProspectLevelShort=Potentiale
    -ProspectLevel=Emne potentiale
    +ProspectLevel=Kundepotentiale
     ContactPrivate=Privat
     ContactPublic=Delt
     ContactVisibility=Synlighed
     ContactOthers=Andre
     OthersNotLinkedToThirdParty=Andre, som ikke er knyttet til en tredjepart
    -ProspectStatus=Emne status
    +ProspectStatus=Status på potentielle kunde
     PL_NONE=Ingen
     PL_UNKNOWN=Ukendt
     PL_LOW=Lav
    @@ -381,18 +381,18 @@ ChangeNeverContacted=Ændre status til 'Aldrig kontaktet'
     ChangeToContact=Skift status til 'Skal Kontaktes'
     ChangeContactInProcess=Ændre status til 'Kontakt i gang'
     ChangeContactDone=Ændre status til 'Er kontaktet'
    -ProspectsByStatus=Emne ved status
    +ProspectsByStatus=Potentielle kunder efter status
     NoParentCompany=Ingen
     ExportCardToFormat=Eksporter kort til format
     ContactNotLinkedToCompany=Kontakt ikke knyttet til nogen tredjepart
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=Ingen Dolibarr adgang
    -ExportDataset_company_1=Tredjeparter (Virksomheder / fonde / fysiske personer) og opsætning
    -ExportDataset_company_2=Kontakter og egenskaber
    -ImportDataset_company_1=Tredjeparter (Virksomheder / fonde / fysiske personer) og opsætning
    -ImportDataset_company_2=Kontakter / Adresser (fra tredjeparter eller ej) og attributter
    -ImportDataset_company_3=Bankregnskaber for tredjeparter
    -ImportDataset_company_4=Tredjeparter / Salgspersoner (Tildel salgsrepræsentanters brugere til virksomheder)
    +ExportDataset_company_1=Tredjeparter (virksomheder / fonde / fysiske personer) og deres egenskaber
    +ExportDataset_company_2=Kontakter og deres egenskaber
    +ImportDataset_company_1=Tredjeparter (virksomheder / fonde / fysiske personer) og deres egenskaber
    +ImportDataset_company_2=Kontakter / Adresser og attributter
    +ImportDataset_company_3=Tredjeparts bankregnskaber
    +ImportDataset_company_4=Tredjeparter - salgsrepræsentanter (tildele selskaber / brugere til virksomheder)
     PriceLevel=Prisniveau
     DeliveryAddress=Leveringsadresse
     AddAddress=Tilføj adresse
    @@ -402,16 +402,16 @@ DeleteFile=Slet fil
     ConfirmDeleteFile=Er du sikker på du vil slette denne fil?
     AllocateCommercial=Tildelt til en salgsrepræsentant
     Organization=Organisationen
    -FiscalYearInformation=Oplysninger om regnskabssår
    +FiscalYearInformation=Skatteår
     FiscalMonthStart=Første måned i regnskabsåret
    -YouMustAssignUserMailFirst=Du skal først oprette e-mail til denne bruger for at kunne tilføje e-mail-meddelelser til ham.
    +YouMustAssignUserMailFirst=Du skal oprette en email til denne bruger, før du kan tilføje en e-mail-besked.
     YouMustCreateContactFirst=For at kunne tilføje e-mail-meddelelser skal du først definere kontakter med gyldige e-mails til tredjepart
     ListSuppliersShort=Liste over leverandører
    -ListProspectsShort=Liste over emner
    +ListProspectsShort=Liste over potentielle kunder
     ListCustomersShort=Liste over kunder
    -ThirdPartiesArea=Tredjeparter og kontakter
    -LastModifiedThirdParties=Seneste %s ændrede tredjeparter
    -UniqueThirdParties=Unikke tredjeparter i alt
    +ThirdPartiesArea=Tredjeparter / Kontakter
    +LastModifiedThirdParties=Sidste %s modificerede tredjeparter
    +UniqueThirdParties=Samlet antal tredjeparter
     InActivity=Åben
     ActivityCeased=Lukket
     ThirdPartyIsClosed=Tredjepart er lukket
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Udestående faktura i øjeblikket
     OutstandingBill=Maks. for udstående faktura
     OutstandingBillReached=Maks. for udestående regning nået
     OrderMinAmount=Minimumsbeløb for ordre
    -MonkeyNumRefModelDesc=Returner nummer med format %syymm-nnnn for kundekode og %syymm-nnnn for leverandør kode hvor det er år, mm er måned og nnnn er en sekvens uden pause og ingen tilbagevenden til 0.
    +MonkeyNumRefModelDesc=Ret et nummer med formatet %syymm-nnnn til kundekode og %syymm-nnnn for leverandørkoden, hvor du er år, mm er måned og nnnn er en sekvens uden pause og ingen tilbagevenden til 0.
     LeopardNumRefModelDesc=Kunde / leverandør-koden er ledig. Denne kode kan til enhver tid ændres.
     ManagingDirectors=Leder(e) navne (CEO, direktør, chef...)
     MergeOriginThirdparty=Duplicate tredjepart (tredjepart, du vil slette)
     MergeThirdparties=Flet tredjeparter
    -ConfirmMergeThirdparties=Er du sikker på, at du vil fusionere denne tredjepart i den nuværende? Alle linkede objekter (fakturaer, ordrer, ...) vil blive flyttet til den aktuelle tredjepart, og tredjepartet vil blive slettet.
    +ConfirmMergeThirdparties=Er du sikker på, at du vil fusionere denne tredjepart i den nuværende? Alle linkede objekter (fakturaer, ordrer, ...) flyttes til den aktuelle tredjepart, og tredjepart vil blive slettet.
     ThirdpartiesMergeSuccess=Tredjeparter er blevet fusioneret
     SaleRepresentativeLogin=Login af salgsrepræsentant
     SaleRepresentativeFirstname=Fornavn på salgsrepræsentant
     SaleRepresentativeLastname=Efternavn på salgsrepræsentant
     ErrorThirdpartiesMerge=Der opstod en fejl ved sletning af tredjeparter. Kontroller loggen. Ændringer er blevet vendt tilbage.
    -NewCustomerSupplierCodeProposed=Ny kunde- eller sælgerkode foreslået på to eksemplarer
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/da_DK/dict.lang b/htdocs/langs/da_DK/dict.lang
    index 2d4fd9c9da8..5cdc71c8abc 100644
    --- a/htdocs/langs/da_DK/dict.lang
    +++ b/htdocs/langs/da_DK/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard-og McDonald
     CountryVA=Pavestolen (Vatikanstaten)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Island
     CountryIN=Indien
     CountryID=Indonesien
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Nordkorea
     CountryKR=Sydkorea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kirgisistan
     CountryLA=Lao
     CountryLV=Letland
     CountryLB=Libanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongoliet
     CountryMS=Montserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad og Tobago
     CountryTR=Tyrkiet
     CountryTM=Turkmenistan
    -CountryTC=Turks-og Cailos Øer
    +CountryTC=Turks og Caicosøerne
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/da_DK/ecm.lang b/htdocs/langs/da_DK/ecm.lang
    index 78ceaa171c2..0525e241c0c 100644
    --- a/htdocs/langs/da_DK/ecm.lang
    +++ b/htdocs/langs/da_DK/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb af dokumenter i biblioteket
    +ECMNbOfDocs=Antal dokumenter i mappen
     ECMSection=Directory
     ECMSectionManual=Manual bibliotek
     ECMSectionAuto=Automatisk bibliotek
    @@ -34,18 +34,19 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Ingen mappe oprettet
     ShowECMSection=Vis mappe
     DeleteSection=Fjern mappe
     ConfirmDeleteSection=Can you confirm you want to delete the directory <b>%s</b>?
     ECMDirectoryForFiles=Relativ mappe for filer
    -CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories
    -CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files
    +CannotRemoveDirectoryContainsFilesOrDirs=Fjernelse ikke mulig, fordi den indeholder nogle filer eller undermapper
    +CannotRemoveDirectoryContainsFiles=Fjernelse ikke mulig, fordi den indeholder nogle filer
     ECMFileManager=Filhåndtering
    -ECMSelectASection=Select a directory in the tree...
    +ECMSelectASection=Vælg en mappe i træet ...
     DirNotSynchronizedSyncFirst=Denne mappe synes at være oprettet eller ændret uden for ECM-modulet. Du skal klikke på "Resync" knappen først for at synkronisere disk og database for at få indhold i denne mappe.
     ReSyncListOfDir=Resync liste over mapper
     HashOfFileContent=Hash af fil indhold
    -FileNotYetIndexedInDatabase=Filen er endnu ikke indekseret i database (prøv at genoplaste den)
    -FileSharedViaALink=Fil deles via et link
     NoDirectoriesFound=Ingen mapper fundet
    +FileNotYetIndexedInDatabase=Filen er endnu ikke indekseret i database (prøv at genoplaste den)
    diff --git a/htdocs/langs/da_DK/errors.lang b/htdocs/langs/da_DK/errors.lang
    index 3278c73c5f9..5e79fc6291c 100644
    --- a/htdocs/langs/da_DK/errors.lang
    +++ b/htdocs/langs/da_DK/errors.lang
    @@ -32,9 +32,9 @@ ErrorBarCodeRequired=Bar code required
     ErrorCustomerCodeAlreadyUsed=Kundekoden anvendes allerede
     ErrorBarCodeAlreadyUsed=Bar code already used
     ErrorPrefixRequired=Prefix kræves
    -ErrorBadSupplierCodeSyntax=Bad syntax for vendor code
    -ErrorSupplierCodeRequired=Vendor code required
    -ErrorSupplierCodeAlreadyUsed=Vendor code already used
    +ErrorBadSupplierCodeSyntax=Dårlig syntax for leverandør kode
    +ErrorSupplierCodeRequired=Leverandørkode kræves
    +ErrorSupplierCodeAlreadyUsed=Leverandørkode allerede brugt
     ErrorBadParameters=Bad parametre
     ErrorBadValueForParameter=Wrong value '%s' for parameter '%s'
     ErrorBadImageFormat=Image file has not a supported format (Your PHP does not support functions to convert images of this format)
    @@ -42,12 +42,12 @@ ErrorBadDateFormat=Værdi '%s' har forkert datoformat
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Det lykkedes ikke at skrive i mappen %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=Fundet forkerte e-mail-syntaks for %s linjer i filen (f.eks line %s med email= %s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=Bruger kan ikke slettes. Måske er det forbundet med Dolibarr enheder.
     ErrorFieldsRequired=Nogle krævede felter ikke var fyldt.
    -ErrorSubjectIsRequired=The email topic is required
    +ErrorSubjectIsRequired=Emne er påkrævet
     ErrorFailedToCreateDir=Det lykkedes ikke at oprette en mappe. Kontroller, at web-serveren bruger har tilladelse til at skrive i Dolibarr dokumenter bibliotek. Hvis parameter <b>safe_mode</b> er aktiveret på dette PHP, kontrollere, at Dolibarr php filer ejer til web-serveren bruger (eller gruppe).
     ErrorNoMailDefinedForThisUser=Ingen e-mail defineret for denne bruger
    -ErrorFeatureNeedJavascript=Denne funktion skal have Javascript skal aktiveres for at arbejde. Ændre dette i opsætningen - displayet.
    +ErrorFeatureNeedJavascript=Denne funktion kræver, at javascript aktiveres for at fungere. Skift dette i setup - display.
     ErrorTopMenuMustHaveAParentWithId0=En menu af type 'Top' kan ikke have en forælder menuen. Sæt 0 i moderselskabet menu eller vælge en menu af typen »Venstre«.
     ErrorLeftMenuMustHaveAParentId=En menu af typen »Venstre« skal have en forælder id.
     ErrorFileNotFound=Filen blev ikke fundet (Forkert sti, forkerte tilladelser eller adgang nægtet ved openbasedir parameter)
    @@ -65,44 +65,46 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=<b>Felt %s</b> må ikke indeholder specialtegn.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=Feltet <b> %s </ b> må ikke indeholde specialtegn.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=Feltet <b> %s </ b> må ikke indeholde specialtegn eller store bogstaver og må ikke indeholde kun tal.
    +ErrorFieldMustHaveXChar=Feltet <b> %s </ b> skal have mindst %s tegn.
     ErrorNoAccountancyModuleLoaded=Intet regnskabsmodul aktiveret
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matchende er ikke komplet.
     ErrorLDAPMakeManualTest=A. LDIF-fil er blevet genereret i mappen %s. Prøv at indlæse den manuelt fra kommandolinjen for at få flere informationer om fejl.
    -ErrorCantSaveADoneUserWithZeroPercentage=Kan ikke gemme en aktion med "vedtægt ikke startes", hvis feltet "udført af" er også fyldt.
    +ErrorCantSaveADoneUserWithZeroPercentage=Kan ikke gemme en handling med "status ikke startet", hvis feltet "udført af" også er udfyldt.
     ErrorRefAlreadyExists=Ref bruges til oprettelse eksisterer allerede.
    -ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorPleaseTypeBankTransactionReportName=Indtast venligst kontoudskriftsnavnet, hvor indgangen skal rapporteres (Format YYYYMM eller YYYYMMDD)
    +ErrorRecordHasChildren=Kunne ikke slette rekord, da det har nogle børneposter.
     ErrorRecordHasAtLeastOneChildOfType=Objektet har mindst et under objekt af type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    -ErrorModuleRequireJavascript=Javascript skal ikke være deaktiveret for at have denne funktion virker. For at aktivere / deaktivere Javascript, gå til menu Home-> Setup-> Display.
    +ErrorRecordIsUsedCantDelete=Kan ikke slette rekord. Den er allerede brugt eller inkluderet i et andet objekt.
    +ErrorModuleRequireJavascript=Javascript må ikke være deaktiveret for at få denne funktion til at fungere. For at aktivere / deaktivere Javascript, skal du gå til menuen Home-> Setup-> Display.
     ErrorPasswordsMustMatch=Begge har skrevet passwords skal matche hinanden
    -ErrorContactEMail=En teknisk fejl opstod. Kontakt venligst administrator til at følge e-mail <b>%s</b> da give fejlkoder <b>%s</b> i din besked, eller endnu bedre ved at tilføje en skærm kopi af denne side.
    +ErrorContactEMail=Der opstod en teknisk fejl. Kontakt administratoren til følgende e-mail <b> %s </ b> og giv fejlkoden <b> %s </ b> i din besked eller tilføj en skærmkopi af denne side.
     ErrorWrongValueForField=Forkert værdi for felt nummer <b>%s</b> (værdi <b>'%s'</b> passer ikke regex regel <b>%s)</b>
     ErrorFieldValueNotIn=Forkert værdi for feltnummer <b>%s</b> (value <b>&quot;%s&quot;</b> er ikke en værdi, der i felt <b>%s</b> af tabel <b>%s)</b>
     ErrorFieldRefNotIn=Forkert værdi for feltnummer <b>%s</b> (værdien <b>'%s'</b> er ikke en <b>%s</b> eksisterende ref)
     ErrorsOnXLines=Fejl på <b>%s</b> kildelinjer
    -ErrorFileIsInfectedWithAVirus=Det antivirusprogram var ikke i stand til at validere filen (filen kan være inficeret med en virus)
    +ErrorFileIsInfectedWithAVirus=Det antivirusprogram var ikke i stand til at bekræfte filen (filen kan være inficeret med en virus)
     ErrorSpecialCharNotAllowedForField=Specialtegn er ikke tilladt for feltet "%s"
     ErrorNumRefModel=En henvisning findes i databasen (%s) og er ikke kompatible med denne nummerering regel. Fjern optage eller omdøbt henvisning til aktivere dette modul.
    -ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
    +ErrorQtyTooLowForThisSupplier=Mængden er for lav til denne sælger eller ingen pris er defineret på dette produkt for denne leverandør
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
    +ErrorModuleSetupNotComplete=Opsætning af modul ser ud til at være ufuldstændigt. Gå på Home - Setup - Moduler, der skal udfyldes.
     ErrorBadMask=Fejl på maske
     ErrorBadMaskFailedToLocatePosOfSequence=Fejl, maske uden loebenummeret
     ErrorBadMaskBadRazMonth=Fejl, dårlig reset værdi
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Fejl. Vælg mindst én post.
    -ErrorDeleteNotPossibleLineIsConsolidated=Sletning ikke muligt, fordi posten er forbundet med en banktransaktion, der er afstemt
    +ErrorDeleteNotPossibleLineIsConsolidated=Slet ikke muligt, fordi rekord er knyttet til en banktransaktion, der er forliget
     ErrorProdIdAlreadyExist=%s er tildelt til et andet tredjeland
     ErrorFailedToSendPassword=Det lykkedes ikke at sende password
     ErrorFailedToLoadRSSFile=Ikke formår at få RSS-feed. Prøv at tilføje konstant MAIN_SIMPLEXMLLOAD_DEBUG hvis fejlmeddelelser ikke giver nok information.
     ErrorForbidden=Access denied.<br>You try to access to a page, area or feature of a disabled module or without being in an authenticated session or that is not allowed to your user.
     ErrorForbidden2=Tilladelse til dette login kan defineres af din Dolibarr administrator fra menuen %s-> %s.
     ErrorForbidden3=Det ser ud til, at Dolibarr ikke bruges gennem en godkendt session. Se på Dolibarr installationsdokumentation for at vide mere om, hvordan man administrerer godkendelser (htaccess, mod_auth eller andet ...).
    -ErrorNoImagickReadimage=Funktion imagick_readimage er ikke fundet i denne PHP. Intet eksempel kan være til rådighed. Administratorer kan deaktivere denne fane fra menuen Setup - Display.
    +ErrorNoImagickReadimage=Class Imagick findes ikke i dette PHP. Ingen forhåndsvisning kan være tilgængelig. Administratorer kan deaktivere denne fane fra menuen Setup - Display.
     ErrorRecordAlreadyExists=Optag allerede findes
     ErrorLabelAlreadyExists=Denne etiket eksisterer allerede
     ErrorCantReadFile=Kunne ikke læse filen ' %s'
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Bruger med <b>login %s</b> kunne ikke findes.
     ErrorLoginHasNoEmail=Denne bruger har ingen e-mail-adresse. Processen afbrydes.
     ErrorBadValueForCode=Bad værdi former for kode. Prøv igen med en ny værdi ...
     ErrorBothFieldCantBeNegative=Fields %s og %s kan ikke være både negative
    +ErrorFieldCantBeNegativeOnInvoice=Felt <strong> %s </ strong> kan ikke være negativt på denne type faktura. Hvis du vil tilføje en rabat linje, skal du først oprette rabatten med link %s på skærmen og anvende den på faktura. Du kan også bede din administrator om at indstille option FACTURE_ENABLE_NEGATIVE_LINES til 1 for at gendanne gammel adfærd.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Brugerkonto <b>%s</b> anvendes til at udføre web-server har ikke tilladelse til at
     ErrorNoActivatedBarcode=Ingen stregkode aktiveret typen
    @@ -127,7 +130,7 @@ ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP
     ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base
     ErrorNewValueCantMatchOldValue=New value can't be equal to old one
     ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process.
    -ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check database server is running (for example, with mysql/mariadb, you can launch it from command line with 'sudo service mysql start').
    +ErrorToConnectToMysqlCheckInstance=Forbindelse til database fejler. Check databaseserveren kører (for eksempel med mysql / mariadb kan du starte det fra kommandolinjen med 'sudo service mysql start').
     ErrorFailedToAddContact=Failed to add contact
     ErrorDateMustBeBeforeToday=The date cannot be greater than today
     ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode.
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Kan ikke slette en betaling deles af mindst én faktura med status Betalt
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operatør '%s' mangler operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,13 +174,13 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=Der er opstået en fejl, når ændringerne gemmes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
    -ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    +ErrorSupplierCountryIsNotDefined=Land for denne sælger er ikke defineret. Rett dette først.
     ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled.
     ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order.
     ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice.
    @@ -187,7 +190,7 @@ ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'.
     ErrorModuleNotFound=File of module was not found.
     ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s)
     ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s)
    -ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s)
    +ErrorFieldAccountNotDefinedForLine=Værdi for regnskabskonto ikke defineret for linjen (%s)
     ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s
     ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information.
     ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed.
    @@ -197,18 +200,19 @@ ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (<st
     ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
     ErrorNoWarehouseDefined=Error, no warehouses defined.
     ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
    -ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
    -ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Massvalidering er ikke mulig, når indstillingen for at øge/reducere lager er indstillet på denne handling (du skal validere en for en, så du kan definere lageret for at øge / formindske)
    -ErrorObjectMustHaveStatusDraftToBeValidated=Objekt %s skal have status 'Udkast', der skal valideres.
    -ErrorObjectMustHaveLinesToBeValidated=Objekt %s skal have linjer, der skal valideres.
    -ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Kun validerede fakturaer kan sendes ved hjælp af massearrangementet Send via email.
    +ErrorTooManyErrorsProcessStopped=For mange fejl. Processen blev stoppet.
    +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Massbekræftelse er ikke mulig, når indstillingen for at øge/reducere lager er indstillet på denne handling (du skal bekræfte en for en, så du kan definere lageret for at øge / formindske)
    +ErrorObjectMustHaveStatusDraftToBeValidated=Objekt %s skal have status 'Udkast', der skal bekræftes.
    +ErrorObjectMustHaveLinesToBeValidated=Objekt %s skal have linjer, der skal bekræftes.
    +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Kun bekræftede fakturaer kan sendes ved hjælp af massearrangementet Send via email.
     ErrorChooseBetweenFreeEntryOrPredefinedProduct=Du skal vælge, om artiklen er en foruddefineret vare eller ej
     ErrorDiscountLargerThanRemainToPaySplitItBefore=Den rabat, du forsøger at anvende, er større end det der forblive at betale. Opdel rabatten i 2 mindre rabatter før.
     ErrorFileNotFoundWithSharedLink=Filen blev ikke fundet. Det kan være, at dele nøglen blev ændret eller filen blev fjernet for nylig.
     ErrorProductBarCodeAlreadyExists=Produktets stregkode %s eksisterer allerede på en anden produktreference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Bemærk også, at brug af virtuelt produkt med automatisk forøgelse / nedsættelse af underprodukter ikke er mulig, når mindst et underprodukt (eller underprodukt af underprodukter) har brug for et serienummer / parti nummer.
    -ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorDescRequiredForFreeProductLines=Beskrivelse er obligatorisk for linjer med gratis produkt
    +ErrorAPageWithThisNameOrAliasAlreadyExists=Siden / beholderen <strong> %s </ strong> har samme navn eller alternativt alias som den, du forsøger at bruge
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Obligatoriske installationsparametre er endnu ikke defineret
    @@ -217,17 +221,17 @@ WarningBookmarkAlreadyExists=Et bogmærke med denne titel eller dette mål (URL)
     WarningPassIsEmpty=Advarsel, database password er tomt. Det er en sikkerheds hul. Du skal tilføje en adgangskode til din database og ændre din conf.php fil for at afspejle dette.
     WarningConfFileMustBeReadOnly=Advarsel, config fil <b>(htdocs / conf / conf.php)</b> kan din blive overskrevet af den web-server. Dette er en alvorlig sikkerhedsrisiko hul. Rediger tilladelserne til filen skal være i read only mode i operativsystemet bruger bruges af web-serveren. Hvis du bruger Windows og FAT format til din disk, skal du vide, at denne fil systemet ikke lader til at tilføje tilladelser på filen, kan så ikke helt sikker.
     WarningsOnXLines=Advarsler om <b>%s</b> kildelinjer
    -WarningNoDocumentModelActivated=Ingen model, for dokument generation, er blevet aktiveret. En model vil være choosed som standard, indtil du tjekke din modul opsætning.
    -WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=Denne advarsel vil forblive aktiv, så længe denne mappe er til stede (vises kun til admin-brugere).
    +WarningNoDocumentModelActivated=Ingen model til dokumentgenerering er blevet aktiveret. En model vælges som standard, indtil du tjekker din modulopsætning.
    +WarningLockFileDoesNotExists=Advarsel, når installationen er færdig, skal du deaktivere installerings- / migreringsværktøjer ved at tilføje en fil <b> install.lock</b>i mappen <b>%s</b>. Mangler denne fil er det et sikkerhedshul.
    +WarningUntilDirRemoved=Alle sikkerhedsadvarsler (kun synlige for adminbrugere) forbliver aktive, så længe sårbarheden er til stede (eller den konstante MAIN_REMOVE_INSTALL_WARNING er tilføjet i Setup-> Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
    -WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    +WarningClickToDialUserSetupNotComplete=Opsætning af ClickToDial-oplysninger til din bruger er ikke komplet (se fanen ClickToDial på dit brugerkort).
     WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers.
     WarningPaymentDateLowerThanInvoiceDate=Betalingsdato (%s) er tidligere end faktura dato (%s) for faktura %s.
     WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit.
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Advarsel, antallet af forskellige modtagere er begrænset til <b> %s </b>, når du bruger bulkhandlingerne på lister
    -WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    +WarningNumberOfRecipientIsRestrictedInMassAction=Advarsel, antallet af forskellige modtagere er begrænset til <b> %s </ b>, når du bruger massehandlingerne på lister
    +WarningDateOfLineMustBeInExpenseReportRange=Advarsel, datoen for linjen ligger ikke inden for udgiftsrapporten
    diff --git a/htdocs/langs/da_DK/help.lang b/htdocs/langs/da_DK/help.lang
    index 2a4f59d723b..a7bf29c88c2 100644
    --- a/htdocs/langs/da_DK/help.lang
    +++ b/htdocs/langs/da_DK/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online realtid / fjernsupport
     OtherSupport=Anden support
     ToSeeListOfAvailableRessources=Til at kontakte / se tilgængelige ressourcer:
     HelpCenter=Hjælp
    -DolibarrHelpCenter=Dolibarr Hjælp og support
    -ToGoBackToDolibarr=Ellers klik <a href="%s">her for at bruge Dolibarr</a>
    -TypeOfSupport=Kilde til støtte
    +DolibarrHelpCenter=Dolibarr Hjælp og supportcenter
    +ToGoBackToDolibarr=Ellers <a href="%s"> Klik her for at fortsætte med at bruge Dolibarr </a>.
    +TypeOfSupport=Type af støtte
     TypeSupportCommunauty=Fællesskab (fri)
     TypeSupportCommercial=Tilbud
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Effektivitet
     TypeHelpOnly=Hjælp kun
     TypeHelpDev=Hjælp + Udvikling
    -TypeHelpDevForm=Hjælp + Development + Formation
    -ToGetHelpGoOnSparkAngels1=Nogle virksomheder kan give en hurtig (engang øjeblikkelig) og mere effektiv online support ved at tage kontrol over computeren. Sådanne hjælpere kan findes <b>på %s</b> hjemmeside:
    -ToGetHelpGoOnSparkAngels3=Du kan også gå til listen over alle tilgængelige coaches for Dolibarr, for dette skal du klikke på knappen
    -ToGetHelpGoOnSparkAngels2=Sommetider er der ingen virksomhed til rådighed på det tidspunkt, du gør din søgning, så tror at ændre filteret til at se for "alle tilgængelighed". Du vil være i stand til at sende flere anmodninger.
    -BackToHelpCenter=Ellers klik her for at gå <a href="%s">tilbage til Hjælp startside.</a>
    -LinkToGoldMember=Du kan ringe til en af ​​de træner, der er valgt af Dolibarr for dit sprog (%s) ved at klikke på Widget (status og maksimumspris opdateres automatisk):
    +TypeHelpDevForm=Hjælp + Udvikling + Træning
    +BackToHelpCenter=Ellers <a href="%s"> gå tilbage til Hjemmesiden til Hjælpecenter </a>.
    +LinkToGoldMember=Du kan ringe til en af ​​de undervisere, der er valgt af Dolibarr for dit sprog (%s) ved at klikke på deres Widget (status og maksimumspris opdateres automatisk):
     PossibleLanguages=Understøttede sprog
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Hjælp Dolibarr-projektet, abonner på fundamentet
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/da_DK/holiday.lang b/htdocs/langs/da_DK/holiday.lang
    index 477a20d890d..2ed8bb645e6 100644
    --- a/htdocs/langs/da_DK/holiday.lang
    +++ b/htdocs/langs/da_DK/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Forlade
    +CPTitreMenu=Forlade
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=Du skal aktivere modulet Forlad for at se denne side.
     AddCP=Make a leave request
     DateDebCP=Startdato
     DateFinCP=Slutdato
    @@ -15,13 +15,18 @@ ApprovedCP=Godkendt
     CancelCP=Aflyst
     RefuseCP=Afviste
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=Liste over orlov
    +LeaveId=Forlad ID
     ReviewedByCP=Will be reviewed by
    +UserForApprovalID=Bruger til godkendelses-id
    +UserForApprovalFirstname=Fornavn af godkendelsesbruger
    +UserForApprovalLastname=Efternavn af godkendelsesbruger
    +UserForApprovalLogin=Login af godkendelse bruger
     DescCP=Beskrivelse
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Udgiftsbalance
    +SoldeCPUser=Forløbsbalancen er <b> %s </ b> dage.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type orlov ID
    +TypeOfLeaveCode=Type orlovskode
    +TypeOfLeaveLabel=Orlovsetikettype
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Dage forbrugt
    +NbUseDaysCPShortInMonth=Dage indtages i måneden
    +DateStartInMonth=Startdato i måned
    +DateEndInMonth=Slutdato i måned
     EditCP=Redigér
     DeleteCP=Slet
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=Du er ikke den tildelte godkendende
     MotifCP=Årsag
     UserCP=Bruger
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -79,12 +92,17 @@ HolidaysCancelation=Leave request cancelation
     EmployeeLastname=Employee last name
     EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
    -LastHolidays=Latest %s leave requests
    -AllHolidays=All leave requests
    -
    +LastHolidays=Seneste %s forlade anmodninger
    +AllHolidays=Alle anmodninger om orlov
    +HalfDay=Halv dag
    +NotTheAssignedApprover=Du er ikke den tildelte godkendende
    +LEAVE_PAID=Betalt ferie
    +LEAVE_SICK=Sygeorlov
    +LEAVE_OTHER=Anden orlov
    +LEAVE_PAID_FR=Betalt ferie
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Seneste automatiske opdatering af orlovallokering
    +MonthOfLastMonthlyUpdate=Måned for seneste automatiske opdatering af tilladelse til orlov
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Gå ind i <strong> Hjem - Opsætning - Ordbøger - Typen af ​​orlov </ strong> for at opsætte de forskellige typer blade.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/da_DK/install.lang b/htdocs/langs/da_DK/install.lang
    index b38323998a0..b83f36fb97b 100644
    --- a/htdocs/langs/da_DK/install.lang
    +++ b/htdocs/langs/da_DK/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Bare følg instruktionerne trin for trin.
     MiscellaneousChecks=Forudsætninger check
     ConfFileExists=<b>Konfigurationsfil %s</b> eksisterer.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=<b>Konfigurationsfil %s</b> eksisterer ikke og kunne ikke oprettes!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Konfigurationsfilen <b> %s </ b> eksisterer ikke og kunne ikke oprettes!
     ConfFileCouldBeCreated=<b>Konfigurationsfil %s</b> kunne oprettes.
    -ConfFileIsNotWritable=<b>Konfigurationsfil %s</b> er ikke skrivbar. Check permissions. For første installation, webserveren skal ydes for at kunne skrive i denne fil under konfigurationen ( "chmod 666" for eksempel på Unix-lignende OS).
    +ConfFileIsNotWritable=Konfigurationsfilen <b> %s </ b> kan ikke skrives. Tjek tilladelser. Til første installation skal din webserver være i stand til at skrive i denne fil under konfigurationsprocessen ("chmod 666" for eksempel på et Unix-lignende OS).
     ConfFileIsWritable=<b>Konfigurationsfil %s</b> er skrivbar.
    -ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Genindlæs alle oplysninger fra konfigurationsfilen.
    +ConfFileMustBeAFileNotADir=Konfigurationsfil <b> %s </b>skal være en fil, ikke en mappe.
    +ConfFileReload=Genindlæsning af parametre fra konfigurationsfilen.
     PHPSupportSessions=Denne PHP understøtter sessioner.
     PHPSupportPOSTGETOk=Denne PHP understøtter variablerne POST og GET.
    -PHPSupportPOSTGETKo=Det er muligt, at din PHP-opsætning ikke understøtter variablerne POST og/eller GET. Tjek din parameter <b>variables_order</b> i php.ini.
    -PHPSupportGD=Denne PHP understøtter GD grafiske funktioner.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=Denne PHP understøtter UTF8 funktioner.
    +PHPSupportPOSTGETKo=Det er muligt, at din PHP opsætning ikke understøtter variabler POST og / eller GET. Kontroller parameteren <b> variables_order </ b> i php.ini.
    +PHPSupportGD=Dette PHP understøtter GD grafiske funktioner.
    +PHPSupportCurl=Dette PHP understøtter Curl.
    +PHPSupportUTF8=Dette PHP understøtter UTF8 funktioner.
     PHPMemoryOK=Din PHP max session hukommelse er sat <b>til %s.</b> Dette skulle være nok.
    -PHPMemoryTooLow=Din PHP max session hukommelse er sat <b>til %s</b> bytes. Dette skulle være for lav. Skift din <b>php.ini</b> at indstille <b>memory_limit</b> parameter til <b>mindst %s</b> bytes.
    -Recheck=Klik her for en mere significative test
    -ErrorPHPDoesNotSupportSessions=Din PHP-installation understøtter ikke sessioner. Denne funktion er nødvendig for at få Dolibarr til at fungere. Tjek din PHP-opsætning.
    -ErrorPHPDoesNotSupportGD=Din PHP-installation understøtter ikke den grafiske funktion GD. Ingen grafer vil være til rådighed.
    +PHPMemoryTooLow=Din PHP max-sessionshukommelse er indstillet til <b> %s </ b> bytes. Dette er for lavt. Skift din <b> php.ini </ b> for at indstille parameteren <b> memory_limit </ b> til mindst <b> %s </ b> bytes.
    +Recheck=Klik her for en mere detaljeret test
    +ErrorPHPDoesNotSupportSessions=Din PHP-installation understøtter ikke sessioner. Denne funktion er nødvendig for at tillade Dolibarr at arbejde. Tjek din PHP opsætning og tilladelser i sessions biblioteket.
    +ErrorPHPDoesNotSupportGD=Din PHP-installation understøtter ikke GD grafiske funktioner. Ingen grafer vil være tilgængelige.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Din PHP-installation understøtter ikke UTF8-funktioner. Dolibarr kan ikke fungere korrekt. Løs dette før du installerer Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Din PHP-installation understøtter ikke UTF8-funktioner. Dolibarr kan ikke fungere korrekt. Løs dette inden du installerer Dolibarr.
     ErrorDirDoesNotExists=Directory %s ikke eksisterer.
    -ErrorGoBackAndCorrectParameters=Gå tilbage og ret forkerte parametre.
    +ErrorGoBackAndCorrectParameters=Gå tilbage og kontroller / korrigér parametrene.
     ErrorWrongValueForParameter=Du kan have indtastet en forkert værdi for parameter ' %s'.
     ErrorFailedToCreateDatabase=Kunne ikke oprette databasen ' %s'.
     ErrorFailedToConnectToDatabase=Det lykkedes ikke at oprette forbindelse til databasen ' %s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version for gammel. Version %s er påkrævet.
    -ErrorConnectedButDatabaseNotFound=Forbindelsen til serveren vellykket men database ' %s' blev ikke fundet.
    +ErrorConnectedButDatabaseNotFound=Forbindelse til server succesfuld men database '%s' ikke fundet.
     ErrorDatabaseAlreadyExists=Database ' %s' eksisterer allerede.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Hvis databasen ikke findes, gå tilbage og tjek valgmulighed "Opret database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=Hvis databasen ikke findes, skal du gå tilbage og kontrollere indstillingen "Opret database".
     IfDatabaseExistsGoBackAndCheckCreate=Hvis database findes allerede, gå tilbage og fjern markeringen "Opret database" valgmulighed.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version af browser er for gammel. Opgradering af din browser til en nyere version af Firefox, Chrome eller Opera anbefales stærkt.
     PHPVersion=PHP Version
     License=Bruger licens
     ConfigurationFile=Opsætningsfil
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Navn eller IP-adresse til database-serveren, som normalt 'localhost', når database-serveren er hostet på samme server end webserver
    +ServerAddressDescription=Navn eller ip-adresse til databaseserveren. Normalt 'localhost', når databaseserveren er hostet på den samme server som webserveren.
     ServerPortDescription=Database serverport. Opbevar tomme hvis ukendt.
     DatabaseServer=Database server
     DatabaseName=Database navn
    -DatabasePrefix=Database prefix table
    -AdminLogin=Log ind for Dolibarr database administrator. Hold tomme, hvis du slutter i anonym
    -PasswordAgain=Gentag adgangskode en anden gang
    +DatabasePrefix=Database tabel præfiks
    +DatabasePrefixDescription=Database tabel præfiks. Hvis tom, er standardindstillingen llx_.
    +AdminLogin=Brugerkonto til Dolibarr database ejer.
    +PasswordAgain=Skriv password bekræftelse igen
     AdminPassword=Adgangskode til Dolibarr database administrator. Hold tomme, hvis du slutter i anonym
     CreateDatabase=Opret database
    -CreateUser=Opret ejer eller give ham tilladelse til database
    +CreateUser=Opret brugerkonto eller give tilladelse til brugerkonto på Dolibarr-databasen
     DatabaseSuperUserAccess=Database - SuperUser adgang
    -CheckToCreateDatabase=Afkrydsningsfelt, hvis databasen ikke eksisterer og skal være oprettet. <br> I dette tilfælde skal du udfylde login / password for SuperUser konto nederst på denne side.
    -CheckToCreateUser=Afkrydsningsfelt, hvis databasen ejer ikke eksisterer og skal oprettes, eller hvis den findes, men databasen ikke eksisterer og tilladelser skal gives. <br> I dette tilfælde skal du vælge login og adgangskode og også udfylde login / adgangskode for superbrugerkontoen nederst på denne side. Hvis dette felt ikke er markeret, skal ejerdatabasen og dets adgangskoder eksistere.
    -DatabaseRootLoginDescription=Log ind på den bruger lov til at oprette nye databaser eller nye brugere, ubrugelige, hvis din database og din database login findes allerede (ligesom når du er vært ved en web hosting provider).
    -KeepEmptyIfNoPassword=Efterlad tom, hvis brugeren ikke har nogen adgangskode (undgå dette)
    -SaveConfigurationFile=Gem værdier
    +CheckToCreateDatabase=Marker afkrydsningsfeltet, hvis databasen ikke eksisterer endnu, og så skal der oprettes. <br> I dette tilfælde skal du også udfylde brugernavnet og adgangskoden til superbrugerkontoen nederst på denne side.
    +CheckToCreateUser=Markér afkrydsningsfeltet, hvis: <br> databasens brugerkonto endnu ikke eksisterer, og så skal der oprettes, eller <br> hvis brugerkontoen findes, men databasen ikke eksisterer, og der skal gives tilladelser. <br> I dette tilfælde, Du skal indtaste brugerkontoen og adgangskoden og <b> også </ b> superbrugerkontonavnet og adgangskoden nederst på denne side. Hvis denne boks ikke er markeret, skal database ejer og adgangskode allerede eksistere.
    +DatabaseRootLoginDescription=Superuser kontonavn (for at oprette nye databaser eller nye brugere), obligatorisk, hvis databasen eller dens ejer ikke allerede eksisterer.
    +KeepEmptyIfNoPassword=Forlad tom, hvis superbrugeren ikke har noget kodeord (IKKE anbefalet)
    +SaveConfigurationFile=Gem parametre til
     ServerConnection=Serverforbindelse
     DatabaseCreation=Database skabelse
     CreateDatabaseObjects=Database-objekter skabelse
    @@ -71,75 +72,75 @@ CreateOtherKeysForTable=Opret udenlandske nøgler og indekser for tabel %s
     OtherKeysCreation=Udenlandske nøgler og indekserer skabelse
     FunctionsCreation=Funktioner skabelse
     AdminAccountCreation=Administrator login skabelse
    -PleaseTypePassword=Indtast en adgangskode, tomme adgangskoder er ikke tilladt!
    -PleaseTypeALogin=Indtast et login!
    -PasswordsMismatch=Passwords er forskellig, prøv igen!
    -SetupEnd=Slutningen af setup
    +PleaseTypePassword=Indtast venligst et kodeord, tomme adgangskoder er ikke tilladt!
    +PleaseTypeALogin=Indtast venligst et login!
    +PasswordsMismatch=Adgangskoder adskiller sig, prøv igen!
    +SetupEnd=Afslutningen af ​​opsætningen
     SystemIsInstalled=Denne installationen er færdig.
     SystemIsUpgraded=Dolibarr er blevet opgraderet med succes.
     YouNeedToPersonalizeSetup=Du er nødt til at konfigurere Dolibarr at matche dine behov (udseende, funktioner, ...). For at gøre dette, skal du følge nedenstående link:
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Gå til Dolibarr
     GoToSetupArea=Gå til Dolibarr (opsætning)
    -MigrationNotFinished=Versionen af din database er ikke helt up to date, så du bliver nødt til at køre opgraderingen igen.
    +MigrationNotFinished=Databaseversionen er ikke helt opdateret: Kør opgraderingsprocessen igen.
     GoToUpgradePage=Gå til opgradere siden igen
     WithNoSlashAtTheEnd=Uden skråstreg "/" i slutningen
    -DirectoryRecommendation=Det er opfordres der til at bruge en mappe uden for din mappe på dine websider.
    +DirectoryRecommendation=Det anbefales at bruge en mappe uden for websiderne.
     LoginAlreadyExists=Allerede findes
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administratorkonto <b>' %s'</b> eksisterer allerede.
    +AdminLoginAlreadyExists=Dolibarr administratorkonto '<b> %s </ b>' eksisterer allerede. Gå tilbage, hvis du vil oprette en anden.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Advarsel, af sikkerhedshensyn, når de installerer eller opgraderer er færdig, bør du fjerne <b>installationen mappe eller omdøbe den til install.lock for at undgå sin ondsindet brug.</b>
    -FunctionNotAvailableInThisPHP=Ikke til rådighed på dette PHP
    +WarningRemoveInstallDir=Advarsel af sikkerhedshensyn, når installationen eller opgraderingen er færdig, skal du tilføje en fil kaldet <b> install.lock </ b> i Dolibarr-dokumentmappen for at forhindre utilsigtet / ondsindet brug af installationsværktøjerne igen.
    +FunctionNotAvailableInThisPHP=Ikke tilgængelig i dette PHP
     ChoosedMigrateScript=Valgt migrere script
    -DataMigration=Database migration (data)
    -DatabaseMigration=Database migration (structure + some data)
    +DataMigration=Databasemigration (data)
    +DatabaseMigration=Databasemigration (struktur + nogle data)
     ProcessMigrateScript=Script forarbejdning
     ChooseYourSetupMode=Vælg din opsætning mode, og klik på "Start" ...
     FreshInstall=Frisk installation
    -FreshInstallDesc=Brug denne tilstand, hvis dette er din første installation. Hvis ikke, denne tilstand kan reparere en tidligere ufuldstændige installere, men hvis du ønsker at opgradere din version, kan du vælge "Opdater"-tilstand.
    +FreshInstallDesc=Brug denne tilstand, hvis dette er din første installation. Hvis ikke, kan denne tilstand reparere en ufuldstændig tidligere installation. Hvis du vil opgradere din version, skal du vælge "Opgrader" -tilstand.
     Upgrade=Upgrade
     UpgradeDesc=Brug denne tilstand, hvis du har erstattet gamle Dolibarr filer med filerne fra en nyere version. Dette vil opgradere din database og data.
     Start=Start
     InstallNotAllowed=Setup ikke tilladt ved <b>conf.php</b> tilladelser
     YouMustCreateWithPermission=Du skal oprette fil %s og sæt skrive tilladelser på det for web server under installere proces.
    -CorrectProblemAndReloadPage=Ret problemet og tryk F5 for at genindlæse siden.
    +CorrectProblemAndReloadPage=Ret venligst problemet, og tryk på F5 for at genindlæse siden.
     AlreadyDone=Allerede migreret
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=Du skal oprette denne mappe og giver mulighed for at web-serveren til at skrive i den.
     DBSortingCollation=Tegn sortering orden
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Du beder om at oprette <b>databasen %s,</b> men for dette, Dolibarr behovet for at oprette forbindelse til <b>serveren %s</b> med <b>superbruger %s</b> tilladelser.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Du beder om at oprette database <b>login %s,</b> men for dette, Dolibarr behovet for at oprette forbindelse til <b>serveren %s</b> med <b>superbruger %s</b> tilladelser.
    -BecauseConnectionFailedParametersMayBeWrong=Som forbindelse mislykkedes, vært eller superbruger parametre skal være forkerte.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=Du har valgt at oprette database <b> %s </ b>, men Dolibarr skal tilslutte til server <b> %s </ b> med superbruger <b> %s </ b> tilladelser.
    +YouAskLoginCreationSoDolibarrNeedToConnect=Du har valgt at oprette databasebruger <b> %s </ b>, men Dolibarr skal tilslutte til serveren <b> %s </ b> med superbrugerne <b> %s </ b> tilladelser.
    +BecauseConnectionFailedParametersMayBeWrong=Databaseforbindelsen mislykkedes: Værts- eller superbrugerparametrene skal være forkerte.
     OrphelinsPaymentsDetectedByMethod=Orphelins betaling opdaget ved metoden %s
     RemoveItManuallyAndPressF5ToContinue=Fjern det manuelt, og tryk på F5 for at fortsætte.
     FieldRenamed=Felt omdøbt
    -IfLoginDoesNotExistsCheckCreateUser=Hvis login ikke findes endnu, skal du kontrollere option "Opret bruger"
    -ErrorConnection=Server <b>" %s",</b> databasenavn <b>" %s"</b> login <b>" %s",</b> eller database password kan være forkerte eller PHP klientversionen kan være for gammel i forhold til database version.
    +IfLoginDoesNotExistsCheckCreateUser=Hvis brugeren ikke eksisterer endnu, skal du kontrollere indstillingen "Opret bruger"
    +ErrorConnection=Server "<b> %s </ b>", databasens navn "<b> %s </ b>", log ind "<b> %s </ b>", eller databaseadgangskoden kan være forkert, eller PHP-klientversionen kan være for gammel i forhold til databaseversionen.
     InstallChoiceRecommanded=Anbefalet valg til at installere version <b>%s</b> fra din nuværende version <b>%s</b>
     InstallChoiceSuggested=<b>Installer valg foreslået af installationsprogrammet.</b>
    -MigrateIsDoneStepByStep=De målrettede version (%s) har et efterslæb på flere versioner, så installere guiden vil komme tilbage, der tyder på næste migration, når denne ene vil være færdig.
    -CheckThatDatabasenameIsCorrect=Kontroller, at databasen navnet <b>"%s"</b> er korrekt.
    +MigrateIsDoneStepByStep=Den målrettede version (%s) har et hul i flere versioner. Installationsguiden kommer tilbage for at foreslå en yderligere migrering, når denne er færdig.
    +CheckThatDatabasenameIsCorrect=Kontroller, at databasenavnet "<b> %s </ b>" er korrekt.
     IfAlreadyExistsCheckOption=Hvis dette navn er korrekte, og at databasen ikke findes endnu, skal du kontrollere indstillingen "Opret database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=Du har markeret afkrydsningsfeltet "Opret database". Til dette skal du give login / password på superbruger (i bunden af skemaet).
    -YouAskToCreateDatabaseUserSoRootRequired=Du har markeret afkrydsningsfeltet "Opret database ejer". Til dette skal du give login / password på superbruger (i bunden af skemaet).
    -NextStepMightLastALongTime=Nuværende trin kan vare flere minutter. Vent venligst indtil det næste skærmbillede vises helt, før du fortsætter.
    +YouAskToCreateDatabaseSoRootRequired=Du har markeret feltet "Opret database". Til dette skal du give login / adgangskode til superbrugeren (bunden af ​​formularen).
    +YouAskToCreateDatabaseUserSoRootRequired=Du har markeret afkrydsningsfeltet "Opret database ejer". Til dette skal du give login / adgangskode til superbrugeren (bunden af ​​formularen).
    +NextStepMightLastALongTime=Det nuværende trin kan tage flere minutter. Vent venligst, indtil næste skærm vises helt, inden du fortsætter.
     MigrationCustomerOrderShipping=Migræne shipping for kundeordrer opbevaring
     MigrationShippingDelivery=Opgrader opbevaring af skibsfart
     MigrationShippingDelivery2=Opgrader opbevaring af shipping 2
     MigrationFinished=Migrationen er afsluttet
    -LastStepDesc=<strong>Sidste trin:</strong> Definer her login og adgangskode, du planlægger at bruge til at oprette forbindelse til software. Må ikke løse dette, da det er den konto, at administrere alle andre.
    +LastStepDesc=<strong> Sidste trin </ strong>: Definer her login og adgangskode, du vil bruge til at oprette forbindelse til Dolibarr. <b> Mist ikke dette, da det er masterkontoen at administrere alle andre / ekstra brugerkonti. </ b>
     ActivateModule=Aktiver modul %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=Du bruger DoliWamp opsætningsguiden, så værdier foreslås her allerede er optimeret. Ændre dem kun, hvis du ved hvad du gør.
    -KeepDefaultValuesDeb=Du bruger Dolibarr opsætningsguiden fra en Ubuntu eller Debian-pakke, så værdier, der foreslås her, er allerede optimeret. Kun den password i databasen ejeren for at oprette skal udfyldes. Ændre andre parametre kun hvis du ved hvad du gør.
    -KeepDefaultValuesMamp=Du bruger DoliMamp opsætningsguiden, så værdier foreslås her allerede er optimeret. Ændre dem kun, hvis du ved hvad du gør.
    -KeepDefaultValuesProxmox=Du bruger Dolibarr opsætningsguiden fra en Proxmox virtual appliance, så værdier, der foreslås her, allerede er optimeret. Skift dem kun hvis du ved hvad du gør.
    -UpgradeExternalModule=Kør dedikeret opgradering af eksterne moduler
    +WarningUpgrade=Advarsel:\nKørte du først en database backup?\nDette anbefales stærkt. Dataforløb (på grund af f.eks. Fejl i mysql version 5.5.40 / 41/42/43) kan være mulig under denne proces, så det er vigtigt at tage en komplet dump af din database, før du starter en migrering.\n\nKlik på OK for at starte overførselsprocessen ...
    +ErrorDatabaseVersionForbiddenForMigration=Din database version er %s. Det har en kritisk fejl, der muliggør datatab, hvis du foretager strukturelle ændringer i din database, som det kræves af migrationsprocessen. Af hans grund vil migrering ikke blive tilladt, før du opgraderer din database til et lag (patched) version (liste over kendte buggy versioner: %s)
    +KeepDefaultValuesWamp=Du brugte Dolibarr installationsguiden fra DoliWamp, så de her foreslåede værdier er allerede optimeret. Skift kun dem, hvis du ved hvad du laver.
    +KeepDefaultValuesDeb=Du brugte Dolibarr installationsguiden fra en Linux-pakke (Ubuntu, Debian, Fedora ...), så de her foreslåede værdier er allerede optimeret. Kun adgangskoden til databaseejeren til oprettelse skal indtastes. Skift kun andre parametre, hvis du ved hvad du gør.
    +KeepDefaultValuesMamp=Du brugte Dolibarr installationsguiden fra DoliMamp, så de her foreslåede værdier er allerede optimeret. Skift kun dem, hvis du ved hvad du laver.
    +KeepDefaultValuesProxmox=Du brugte Dolibarr installationsguiden fra et Proxmox virtuelt apparat, så de her foreslåede værdier er allerede optimeret. Skift kun dem, hvis du ved hvad du laver.
    +UpgradeExternalModule=Kør dedikeret opgraderingsproces af eksternt modul
     SetAtLeastOneOptionAsUrlParameter=Indstil mindst én mulighed som en parameter i URL. For eksempel: '... repair.php? Standard = bekræftet'
     NothingToDelete=Intet at rengøre / slette
     NothingToDo=Ingenting at lave
    @@ -147,11 +148,11 @@ NothingToDo=Ingenting at lave
     # upgrade
     MigrationFixData=Fix for denormalized data
     MigrationOrder=Data migration for kundernes ordrer
    -MigrationSupplierOrder=Data migration for vendor's orders
    +MigrationSupplierOrder=Datamigrering for sælgerens ordrer
     MigrationProposal=Datamigration for tilbud
     MigrationInvoice=Data migration til kundernes fakturaer
     MigrationContract=Data migration for kontrakter
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade vellykket
     MigrationUpdateFailed=Mislykket Opgraderingsprocessen
     MigrationRelationshipTables=Data migration for forholdet tabeller (%s)
     MigrationPaymentsUpdate=Betaling data korrektion
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Kontrakt data korrektion
     MigrationContractsNumberToUpdate=%s kontrakt (er) for at opdatere
     MigrationContractsLineCreation=Opret kontrakt linje for kontrakten ref %s
     MigrationContractsNothingToUpdate=Ikke flere ting at gøre
    -MigrationContractsFieldDontExist=Felt fk_facture ikke eksisterer længere. Intet at gøre.
    +MigrationContractsFieldDontExist=Feltfk_facture eksisterer ikke længere. Ingenting at lave.
     MigrationContractsEmptyDatesUpdate=Kontrakt tomme dato korrektion
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Kontrakt tom datakorrektion udført med succes
     MigrationContractsEmptyDatesNothingToUpdate=Ingen kontrakt tomme tidspunkt til at korrigere
     MigrationContractsEmptyCreationDatesNothingToUpdate=Ingen kontrakt oprettelsesdato at korrigere
     MigrationContractsInvalidDatesUpdate=Bad valørdato kontrakt korrektion
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Levering opdatering
     MigrationStockDetail=Update materiel værdi af produkter
     MigrationMenusDetail=Update dynamiske menuer tabeller
     MigrationDeliveryAddress=Update leverings adresse i forsendelser
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors tabel
    +MigrationProjectTaskActors=Dataoverførsel til tabel llx_projet_task_actors
     MigrationProjectUserResp=Data migration inden fk_user_resp af llx_projet til llx_element_contact
     MigrationProjectTaskTime=Update tid i sekunder
     MigrationActioncommElement=Opdatere data om tiltag
     MigrationPaymentMode=Data migration for betaling mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration af begivenheder, så begivenhedsejeren tilføjes tildelingstabel
    -MigrationEventsContact=Migration af begivenheder for at tilføje eventkontakt i tildelingstabel
    +MigrationEvents=Migrering af begivenheder for at tilføje eventejeren til opgavetabellen
    +MigrationEventsContact=Migration af begivenheder for at tilføje eventkontakt til opgavebord
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
    -MigrationUserRightsEntity=Update entity field value of llx_user_rights
    -MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserRightsEntity=Opdater enhedens feltværdi af llx_user_rights
    +MigrationUserGroupRightsEntity=Opdater enhedens feltværdi af llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Nulstil modul BlockedLog for v7 algoritme
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    -ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ShowNotAvailableOptions=Vis utilgængelige muligheder
    +HideNotAvailableOptions=Skjul utilgængelige muligheder
    +ErrorFoundDuringMigration=Fejl (er) blev rapporteret under migrationsprocessen, så næste trin er ikke tilgængeligt. For at ignorere fejl kan du <a href="%s"> klikke her </a>, men programmet eller nogle funktioner fungerer muligvis ikke korrekt, før fejlene er løst.
    +YouTryInstallDisabledByDirLock=Programmet forsøgte at opgradere selv, men installerings- / opgraderingssiderne er blevet deaktiveret for sikkerhed (mappen omdøbes med .lock-suffix). <br>
    +YouTryInstallDisabledByFileLock=Programmet forsøgte at opgradere selv, men installerings- / opgraderingssiderne er blevet deaktiveret for sikkerhed (ved at der findes en låsfil <strong> install.lock </ strong> i dolibarr-dokumenter-mappen). <br>
    +ClickHereToGoToApp=Klik her for at gå til din ansøgning
    +ClickOnLinkOrRemoveManualy=Klik på følgende link. Hvis du altid ser den samme side, skal du fjerne / omdøbe filen install.lock i dokumentmappen.
    diff --git a/htdocs/langs/da_DK/interventions.lang b/htdocs/langs/da_DK/interventions.lang
    index 8978ffa6768..550b1da839a 100644
    --- a/htdocs/langs/da_DK/interventions.lang
    +++ b/htdocs/langs/da_DK/interventions.lang
    @@ -3,64 +3,65 @@ Intervention=Intervention
     Interventions=Interventioner
     InterventionCard=Intervention kortet
     NewIntervention=Ny intervention
    -AddIntervention=Create intervention
    +AddIntervention=Opret indgreb
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Liste over interventioner
     ActionsOnFicheInter=Handlinger om intervention
    -LastInterventions=Latest %s interventions
    +LastInterventions=Seneste %s indgreb
     AllInterventions=Alle interventioner
     CreateDraftIntervention=Opret udkast
     InterventionContact=Intervention kontakt
     DeleteIntervention=Slet intervention
    -ValidateIntervention=Valider intervention
    +ValidateIntervention=Bekræft intervention
     ModifyIntervention=Rediger indgreb
     DeleteInterventionLine=Slet intervention linje
    -CloneIntervention=Clone intervention
    -ConfirmDeleteIntervention=Are you sure you want to delete this intervention?
    -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name <b>%s</b>?
    -ConfirmModifyIntervention=Are you sure you want to modify this intervention?
    -ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line?
    -ConfirmCloneIntervention=Are you sure you want to clone this intervention?
    +CloneIntervention=Klon indgreb
    +ConfirmDeleteIntervention=Er du sikker på, at du vil slette dette indgreb?
    +ConfirmValidateIntervention=Er du sikker på, at du vil bekræfte dette indgreb under navnet <b> %s </b>?
    +ConfirmModifyIntervention=Er du sikker på, at du vil ændre dette indgreb?
    +ConfirmDeleteInterventionLine=Er du sikker på, at du vil slette denne indgrebslinje?
    +ConfirmCloneIntervention=Er du sikker på, at du vil klone dette indgreb?
     NameAndSignatureOfInternalContact=Navn og underskrift for at gribe ind:
     NameAndSignatureOfExternalContact=Navn og underskrift af kunde:
     DocumentModelStandard=Standard dokument model for indgreb
    -InterventionCardsAndInterventionLines=Interventions and lines of interventions
    +InterventionCardsAndInterventionLines=Indgreb og linjer af indgreb
     InterventionClassifyBilled=Klassificere &quot;Billed&quot;
    -InterventionClassifyUnBilled=Classify "Unbilled"
    -InterventionClassifyDone=Classify "Done"
    +InterventionClassifyUnBilled=Klassificer "Ikke faktureret"
    +InterventionClassifyDone=Klassificer "Udført"
     StatusInterInvoiced=Billed
    -SendInterventionRef=Submission of intervention %s
    -SendInterventionByMail=Send intervention by Email
    -InterventionCreatedInDolibarr=Intervention %s created
    -InterventionValidatedInDolibarr=Intervention %s valideret
    -InterventionModifiedInDolibarr=Intervention %s modified
    -InterventionClassifiedBilledInDolibarr=Intervention %s set as billed
    -InterventionClassifiedUnbilledInDolibarr=Intervention %s set as unbilled
    +SendInterventionRef=Indsend indgreb %s
    +SendInterventionByMail=Send indlæg via e-mail
    +InterventionCreatedInDolibarr=Et indgreb %s er oprettet
    +InterventionValidatedInDolibarr=Intervention %s bekræftet
    +InterventionModifiedInDolibarr=Ingreb %s ændret
    +InterventionClassifiedBilledInDolibarr=Indgreb %s indstillet til fakturering
    +InterventionClassifiedUnbilledInDolibarr=Indgreb %s angivet som ikke faktureret
     InterventionSentByEMail=Intervention %s sendt via e-mail
    -InterventionDeletedInDolibarr=Intervention %s deleted
    -InterventionsArea=Interventions area
    -DraftFichinter=Draft interventions
    +InterventionDeletedInDolibarr=Indgreb %s er slettet
    +InterventionsArea=Ingrebsområde
    +DraftFichinter=Udkast til indgreb
     LastModifiedInterventions=Latest %s modified interventions
    -FichinterToProcess=Interventions to process
    +FichinterToProcess=Indgreb til behandling
     ##### Types de contacts #####
     TypeContact_fichinter_external_CUSTOMER=Opfølgning kunde kontakt
     # Modele numérotation
    -PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card
    -PrintProductsOnFichinterDetails=interventions generated from orders
    -UseServicesDurationOnFichinter=Use services duration for interventions generated from orders
    -UseDurationOnFichinter=Hides the duration field for intervention records
    -UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
    -InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    -AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
    +PrintProductsOnFichinter=Udskriv også linjer af typen "produkt" (ikke kun tjenester) på ingreb kortet
    +PrintProductsOnFichinterDetails=Et indgreb genereret af ordrer
    +UseServicesDurationOnFichinter=Brug servicevarighed for indgreb genereret fra ordrer
    +UseDurationOnFichinter=Skjuler varighedsfeltet for indgrebsposter
    +UseDateWithoutHourOnFichinter=Skjuler timer og minutter fra datofeltet for indgrebsoptegnelser
    +InterventionStatistics=Statistikker af indgreb
    +NbOfinterventions=Antal interventionskort
    +NumberOfInterventionsByMonth=Antal interventionskort efter måned (dato for bekræftelse)
    +AmountOfInteventionNotIncludedByDefault=Indgreb beløb er ikke medtaget som standard i overskud (i de fleste tilfælde benyttes tidsskemaer til at tælle tid). Tilføj valgmulighed PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT til 1 i home setup-andre for at inkludere dem.
     ##### Exports #####
    -InterId=Intervention id
    -InterRef=Intervention ref.
    -InterDateCreation=Date creation intervention
    -InterDuration=Duration intervention
    -InterStatus=Status intervention
    -InterNote=Note intervention
    -InterLineId=Line id intervention
    -InterLineDate=Line date intervention
    -InterLineDuration=Line duration intervention
    -InterLineDesc=Line description intervention
    +InterId=Indgrebs id
    +InterRef=Indgreb ref.
    +InterDateCreation=Dato oprettelse for indgreb
    +InterDuration=Varighed af indgreb
    +InterStatus=Status
    +InterNote=Bemærk indgreb
    +InterLineId=Line id indgreb
    +InterLineDate=Linje dato indgreb
    +InterLineDuration=Linje varighed indgreb
    +InterLineDesc=Line beskrivelse af ingreb
    diff --git a/htdocs/langs/da_DK/main.lang b/htdocs/langs/da_DK/main.lang
    index 44f3c22b759..e80fded081a 100644
    --- a/htdocs/langs/da_DK/main.lang
    +++ b/htdocs/langs/da_DK/main.lang
    @@ -24,8 +24,8 @@ FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p
     FormatDateHourTextShort=%d %b %Y %H:%M
     FormatDateHourText=%d %B %Y %H:%M
     DatabaseConnection=Database forbindelse
    -NoTemplateDefined=Ingen skabelon til rådighed for denne e-mail-type
    -AvailableVariables=Tilgængelige substitutionsvariabler
    +NoTemplateDefined=Ingen skabelon til rådighed for denne Email-type
    +AvailableVariables=Tilgængelige erstatnings variabler
     NoTranslation=Ingen oversættelse
     Translation=Oversættelse
     NoRecordFound=Ingen poster fundet
    @@ -34,8 +34,8 @@ NotEnoughDataYet=Ikke nok data
     NoError=Ingen fejl
     Error=Fejl
     Errors=Fejl
    -ErrorFieldRequired=Felt ' %s' er påkrævet
    -ErrorFieldFormat=Felt ' %s' har en dårlig værdi
    +ErrorFieldRequired=Felt '%s' er påkrævet
    +ErrorFieldFormat=Felt '%s' har en forkert værdi
     ErrorFileDoesNotExists=Fil %s ikke eksisterer
     ErrorFailedToOpenFile=Kunne ikke åbne filen %s
     ErrorCanNotCreateDir=Kan ikke oprette dir %s
    @@ -43,68 +43,68 @@ ErrorCanNotReadDir=Kan ikke læse dir %s
     ErrorConstantNotDefined=Parameter %s ikke defineret
     ErrorUnknown=Ukendt fejl
     ErrorSQL=SQL Fejl
    -ErrorLogoFileNotFound=Logo fil ' %s' blev ikke fundet
    -ErrorGoToGlobalSetup=Go to 'Company/Organization' setup to fix this
    -ErrorGoToModuleSetup=Gå til Modul setup at rette dette
    -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=Det lykkedes ikke at sende e-mails (afsender= %s, receiver= %s)
    -ErrorFileNotUploaded=Filen blev ikke uploadet. Kontroller, at størrelse ikke overstiger den maksimalt tilladte, at den frie plads der er til rådighed på disken, og at der ikke allerede en fil med samme navn i denne mappe.
    +ErrorLogoFileNotFound=Logo fil '%s' blev ikke fundet
    +ErrorGoToGlobalSetup=Gå til 'Firma/Organisation' opsætning for at rette dette
    +ErrorGoToModuleSetup=Gå til modulopsætning for at rette dette
    +ErrorFailedToSendMail=Det lykkedes ikke at sende Email (sender=%s, receiver= %s)
    +ErrorFileNotUploaded=Filen blev ikke uploadet. Kontroller, at størrelse ikke overstiger det maksimalt tilladte, at den frie plads der er til rådighed på disken, og at der ikke allerede en fil med samme navn i denne mappe.
     ErrorInternalErrorDetected=Fejl opdaget
     ErrorWrongHostParameter=Forkert vært parameter
    -ErrorYourCountryIsNotDefined=Deres land er ikke defineret. Gå til Forside-Setup-Edit og post igen form.
    -ErrorRecordIsUsedByChild=Det lykkedes ikke at slette denne rekord. Denne registrering anvendes af mindst på barnet registre.
    +ErrorYourCountryIsNotDefined=Dit land er ikke defineret. Gå til Hjem-Indstillinger-Rediger og send formularen igen.
    +ErrorRecordIsUsedByChild=Kunne ikke slette denne post. Denne post bruges af mindst en børnepost.
     ErrorWrongValue=Forkert værdi
     ErrorWrongValueForParameterX=Forkert værdi for parameter %s
    -ErrorNoRequestInError=Ingen anmodning ved en fejl
    -ErrorServiceUnavailableTryLater=Tjenesten er ikke tilgængelig for øjeblikket. Prøv igen senere.
    +ErrorNoRequestInError=Ingen anmodning ved fejl
    +ErrorServiceUnavailableTryLater=Tjenesten er ikke tilgængelig i øjeblikket. Prøv igen senere.
     ErrorDuplicateField=Dobbelt værdi i et unikt område
    -ErrorSomeErrorWereFoundRollbackIsDone=Nogle fejl blev fundet. Vi rollback ændringer.
    -ErrorConfigParameterNotDefined=<b>Parameter %s</b> er ikke defineret inde Dolibarr konfigurationsfil <b>conf.php.</b>
    +ErrorSomeErrorWereFoundRollbackIsDone=Nogle fejl blev fundet. Ændringer er blevet rullet tilbage.
    +ErrorConfigParameterNotDefined=Parameter <b> %s </ b> er ikke defineret i Dolibarr config fil <b> conf.php </ b>.
     ErrorCantLoadUserFromDolibarrDatabase=Kunne ikke finde <b>bruger %s</b> i Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Fejl, der ikke momssatser defineret for land ' %s'.
     ErrorNoSocialContributionForSellerCountry=Fejl, ingen type af skatter/afgifter defineret for landet '%s'.
     ErrorFailedToSaveFile=Fejl, kunne ikke gemme filen.
    -ErrorCannotAddThisParentWarehouse=Du forsøger at tilføje et forældrelager, som allerede er et barn i den nuværende
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=Du forsøger at tilføje et forældrelager, som allerede er et barn af en nuværende
    +MaxNbOfRecordPerPage=Maks antal poster pr. Side
     NotAuthorized=Du har ikke tilladelse til at gøre det.
     SetDate=Indstil dato
     SelectDate=Vælg en dato
     SeeAlso=Se også %s
     SeeHere=Se her
     ClickHere=Klik her
    -Here=Here
    -Apply=ansøge
    +Here=Her
    +Apply=Ansøge
     BackgroundColorByDefault=Standard baggrundsfarve
     FileRenamed=Filen blev omdøbt
     FileGenerated=Filen blev genereret
     FileSaved=Filen er blevet gemt
     FileUploaded=Filen blev uploadet
    -FileTransferComplete=File(s) er blevet uploadet
    -FilesDeleted=Fil (er), der er slettet korrekt
    -FileWasNotUploaded=En fil er valgt for udlæg, men endnu ikke var uploadet. Klik på "Vedhæft fil" for dette.
    -NbOfEntries=Nb af tilmeldinger
    -GoToWikiHelpPage=Læs online hjælp (med adgang til Internettet er nødvendig)
    -GoToHelpPage=Læs hjælpe
    -RecordSaved=Optag gemt
    +FileTransferComplete=Fil (er) uploadet succesfuldt
    +FilesDeleted=Fil(er), der er slettet korrekt
    +FileWasNotUploaded=En fil er valgt som vedhæng, men endnu ikke uploadet. Klik på "Vedhæft fil" for dette.
    +NbOfEntries=Antal indgange
    +GoToWikiHelpPage=Læs online hjælp (Adgang til Internettet er nødvendig)
    +GoToHelpPage=Læs hjælp
    +RecordSaved=Data gemt
     RecordDeleted=Post slettet
     LevelOfFeature=Niveau funktionsliste
     NotDefined=Ikke defineret
    -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode er sat til <b>%s</b> i konfigurationsfilen <b>conf.php</b>.<br>Dette betyder, at adgangskoden database er ekstern i forhold til Dolibarr, så ændrer dette felt har ingen effekt.
    +DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode er sat til <b>%s</b> i konfigurationsfilen <b>conf.php</b>.<br>Dette betyder, at adgangskoden databasen er ekstern i forhold til Dolibarr, så ændrer dette felt har ingen effekt.
     Administrator=Administrator
    -Undefined=Undefined
    +Undefined=Undefineret
     PasswordForgotten=Har du glemt dit kodeord ?
    -NoAccount=No account?
    +NoAccount=Ingen konto?
     SeeAbove=Se ovenfor
     HomeArea=Hjem
     LastConnexion=Seneste forbindelse
     PreviousConnexion=Forrige forbindelse
     PreviousValue=Tidligere værdi
    -ConnectedOnMultiCompany=Connected på enhed
    -ConnectedSince=Connected siden
    -AuthenticationMode=Autentificeringstilstand
    +ConnectedOnMultiCompany=Forbind til enhed
    +ConnectedSince=Forbundet siden
    +AuthenticationMode=Autentificerings tilstand
     RequestedUrl=Angivne URL
    -DatabaseTypeManager=Database type manager
    -RequestLastAccessInError=Seneste database adgang anmodning fejl
    -ReturnCodeLastAccessInError=Vende tilbage kode for seneste database adgang anmodning fejl
    +DatabaseTypeManager=Database type opsætning
    +RequestLastAccessInError=Seneste database adgang forspørelses fejl
    +ReturnCodeLastAccessInError=Retur kode for seneste fejl i database forspørgelse
     InformationLastAccessInError=Information efter seneste database adgang anmodning fejl
     DolibarrHasDetectedError=Dolibarr har opdaget en teknisk fejl
     YouCanSetOptionDolibarrMainProdToZero=Du kan læse logfil eller sæt indstillingen $ dolibarr_main_prod til '0' i din config-fil for at få flere oplysninger.
    @@ -142,6 +142,7 @@ Closed=Lukket
     Closed2=Lukket
     NotClosed=Ikke lukket
     Enabled=Aktiveret
    +Enable=Aktiver
     Deprecated=Underkendt
     Disable=Deaktivere
     Disabled=Deaktiveret
    @@ -153,17 +154,17 @@ Update=Opdatering
     Close=Luk
     CloseBox=Fjern widget fra dit dashboard
     Confirm=Bekræft
    -ConfirmSendCardByMail=Ønsker du virkelig at sende indhold af dette kort pr. Mail til <b> %s </b>?
    +ConfirmSendCardByMail=Vil du virkelig sende indholdet af dette kort pr. Mail til <b> %s </ b>?
     Delete=Slet
     Remove=Fjerne
     Resiliate=Afslutte
     Cancel=Annuller
    -Modify=Gem
    +Modify=Ret
     Edit=Redigér
    -Validate=Validate
    -ValidateAndApprove=Validere og Godkende
    -ToValidate=At validere
    -NotValidated=Ikke valideret
    +Validate=Godkend
    +ValidateAndApprove=Bekræfte og godkende
    +ToValidate=Skal godkendes
    +NotValidated=Ikke godkendt
     Save=Gem
     SaveAs=Gem som
     TestConnection=Test forbindelse
    @@ -182,13 +183,13 @@ SearchOf=Søg
     Valid=Gyldig
     Approve=Godkend
     Disapprove=Afvist
    -ReOpen=Re-Open
    +ReOpen=Genåbne
     Upload=Send fil
     ToLink=Link
     Select=Vælg
     Choose=Vælge
    -Resize=Resize
    -ResizeOrCrop=Resize or Crop
    +Resize=Tilpasse størrelsen
    +ResizeOrCrop=Tilpasse størrelsen eller Beskær
     Recenter=Recenter
     Author=Forfatter
     User=Bruger
    @@ -196,8 +197,8 @@ Users=Brugere
     Group=Gruppe
     Groups=Grupper
     NoUserGroupDefined=Ingen brugergruppe definéret
    -Password=Password
    -PasswordRetype=Gentag dit password
    +Password=Kodeord
    +PasswordRetype=Gentag dit kodeord
     NoteSomeFeaturesAreDisabled=Bemærk, at en masse funktioner / moduler er slået fra i denne demonstration.
     Name=Navn
     Person=Person
    @@ -212,7 +213,7 @@ Code=Kode
     Type=Type
     Language=Sprog
     MultiLanguage=Multi-sprog
    -Note=Note
    +Note=Nota
     Title=Titel
     Label=Label
     RefOrLabel=Ref. eller etiket
    @@ -227,18 +228,18 @@ About=Om
     Number=Antal
     NumberByMonth=Antal efter måned
     AmountByMonth=Beløb efter måned
    -Numero=Numero
    -Limit=Limit
    +Numero=Nummer
    +Limit=Grænseværdi
     Limits=Grænseværdier
     Logout=Log ud
    -NoLogoutProcessWithAuthMode=Ingen applicative afbryd funktion med authentication mode <b>%s</b>
    -Connection=Login
    +NoLogoutProcessWithAuthMode=Ingen applikations afbrydelses funktion med autentificeringstilstand <b>%s</b>
    +Connection=Logind
     Setup=Opsætning
     Alert=Alarm
     MenuWarnings=Indberetninger
     Previous=Forrige
     Next=Næste
    -Cards=Postkort
    +Cards=Kort
     Card=Kort
     Now=Nu
     HourStart=Start time
    @@ -253,25 +254,25 @@ DateCreationShort=Creat. dato
     DateModification=Ændringsdatoen
     DateModificationShort=Modif. dato
     DateLastModification=Seneste ændring dato
    -DateValidation=Validering dato
    +DateValidation=Bekræftelsesdato
     DateClosing=Udløbsdato
     DateDue=Forfaldsdag
     DateValue=Valørdato
     DateValueShort=Valørdato
     DateOperation=Operation dato
    -DateOperationShort=OPE. Dato
    -DateLimit=Limit dato
    +DateOperationShort=Opret. Dato
    +DateLimit=Grænse dato
     DateRequest=Anmodning dato
     DateProcess=Proces dato
     DateBuild=Rapport genereret den
     DatePayment=Dato for betaling
    -DateApprove=Godkendelse af dato
    -DateApprove2=Godkendelse af dato (anden godkendelse)
    +DateApprove=Godkendelsesdato
    +DateApprove2=Godkendelse af dato (Anden godkendelse)
     RegistrationDate=Registrerings dato
     UserCreation=Oprettelsesbruger
     UserModification=Modifikation bruger
    -UserValidation=Valideringsbruger
    -UserCreationShort=Creat. bruger
    +UserValidation=Bruger som bekræftet
    +UserCreationShort=Opret. bruger
     UserModificationShort=Modif. bruger
     UserValidationShort=Gyldig. bruger
     DurationYear=år
    @@ -303,87 +304,87 @@ Yesterday=I går
     Tomorrow=I morgen
     Morning=Morgen
     Afternoon=Eftermiddag
    -Quadri=Quadri
    +Quadri=Kvatal
     MonthOfDay=Måned fra den dato
    -HourShort=H
    -MinuteShort=mn
    +HourShort=T
    +MinuteShort=min
     Rate=Hyppighed
    -CurrencyRate=Valutaomregningskurs
    +CurrencyRate=Valuta omregningskurs
     UseLocalTax=Incl. Moms
     Bytes=Bytes
     KiloBytes=Kilobyte
     MegaBytes=Megabyte
     GigaBytes=Gigabyte
     TeraBytes=Terabyte
    -UserAuthor=Bruger af oprettelsen
    -UserModif=Bruger af sidste opdatering
    +UserAuthor=Oprettet af bruger
    +UserModif=Bruger som sidst opdateret
     b=b.
     Kb=Kb
     Mb=Mb
     Gb=Gb
     Tb=Tb
    -Cut=Skære
    +Cut=Klip
     Copy=Kopier
    -Paste=Paste
    +Paste=Klister
     Default=Standard
     DefaultValue=Standardværdi
    -DefaultValues=Standardværdier
    +DefaultValues=Standardværdier / filtre / sortering
     Price=Pris
    -PriceCurrency=Price (currency)
    +PriceCurrency=Pris (valuta)
     UnitPrice=Enhedspris
     UnitPriceHT=Enhedspris (netto)
    -UnitPriceHTCurrency=Unit price (net) (currency)
    +UnitPriceHTCurrency=Enhedspris (netto) (valuta)
     UnitPriceTTC=Enhedspris
    -PriceU=UP
    -PriceUHT=UP (netto)
    -PriceUHTCurrency=Brutto (beløb)
    +PriceU=Salgspris
    +PriceUHT=Salgspris (netto)
    +PriceUHTCurrency=Salgspris (Valuta)
     PriceUTTC=Brutto(Inkl.Moms)
     Amount=Beløb
     AmountInvoice=Fakturabeløbet
    -AmountInvoiced=Amount invoiced
    +AmountInvoiced=Beløb faktureres
     AmountPayment=Indbetalingsbeløb
     AmountHTShort=Beløb (netto)
     AmountTTCShort=Beløb (inkl. moms)
     AmountHT=Beløb (ekskl. moms)
     AmountTTC=Beløb (inkl. moms)
    -AmountVAT=Beløb moms
    -MulticurrencyAlreadyPaid=Allerede betalt, oprindelig valuta
    -MulticurrencyRemainderToPay=Forblive at betale, original valuta
    +AmountVAT=Momsbeløb
    +MulticurrencyAlreadyPaid=Allerede betalt, original valuta
    +MulticurrencyRemainderToPay=Manglene betaling , original valuta
     MulticurrencyPaymentAmount=Betalingsbeløb, oprindelig valuta
     MulticurrencyAmountHT=Beløb (Ex. Moms), oprindelig valuta 
     MulticurrencyAmountTTC=Beløb (inkl. Moms), oprindelig valuta
    -MulticurrencyAmountVAT=Beløb i Moms, oprindelige valuta
    -AmountLT1=Beløb afgift 2
    -AmountLT2=Beløb afgift 3
    +MulticurrencyAmountVAT=Momsbeløb, oprindelige valuta
    +AmountLT1=Momsbeløb 2
    +AmountLT2=Momsbeløb 3
     AmountLT1ES=Beløb RE
     AmountLT2ES=Beløb IRPF
     AmountTotal=Beløb i alt
     AmountAverage=Gennemsnitligt beløb
    -PriceQtyMinHT=Pris mindsteantal (inkl. moms)
    -PriceQtyMinHTCurrency=Price quantity min. (net of tax) (currency)
    -Percentage=Pourcentage
    +PriceQtyMinHT=Pris mindste antal (Ex. moms)
    +PriceQtyMinHTCurrency=Pris mængde min. (Ex. Moms) (valuta)
    +Percentage=Procent
     Total=I alt
    -SubTotal=I alt
    -TotalHTShort=I alt (netto)
    -TotalHTShortCurrency=I alt (netto)
    -TotalTTCShort=I alt (inkl. moms)
    +SubTotal=Sum
    +TotalHTShort=I alt (Netto)
    +TotalHTShortCurrency=I alt (Netto i valuta)
    +TotalTTCShort=I alt (Inkl. moms)
     TotalHT=I alt (Ex. moms)
    -TotalHTforthispage=Beløb (ekskl. moms) for denne side
    +TotalHTforthispage=Beløb (Ex. Moms) for denne side
     Totalforthispage=I alt for denne side
    -TotalTTC=I alt (inkl. moms)
    -TotalTTCToYourCredit=I alt (inkl. moms) til dit kredit
    +TotalTTC=I alt (Inkl. Moms)
    +TotalTTCToYourCredit=I alt (Inkl. Moms) til din kredit
     TotalVAT=Moms i alt
     TotalVATIN=IGST i alt
    -TotalLT1=Total moms 2
    +TotalLT1=Total Moms 2
     TotalLT2=Total Moms 3
     TotalLT1ES=RE i alt
     TotalLT2ES=IRPF i alt
     TotalLT1IN=I alt CGST
     TotalLT2IN=I alt SGST
    -HT=Ekskl. moms
    -TTC=Inkl. moms
    -INCVATONLY=Inc. moms
    -INCT=Inc. Alle skatter 
    +HT=Ekskl. Moms
    +TTC=Inkl. Moms
    +INCVATONLY=Inkl. Moms
    +INCT=Inkl. Alle skatter 
     VAT=Moms
     VATIN=IGST
     VATs=Salgs Moms
    @@ -397,16 +398,16 @@ LT2ES=IRPF
     LT1IN=CGST
     LT2IN=SGST
     VATRate=Momssats
    -VATCode=Tax Rate code
    -VATNPR=Tax Rate NPR
    -DefaultTaxRate=Standardskattesats
    +VATCode=Moms kode
    +VATNPR=Moms NPR
    +DefaultTaxRate=Standards Moms sats
     Average=Gennemsnit
     Sum=Sum
     Delta=Delta
    -RemainToPay=Remain to pay
    +RemainToPay=Manglende betaling
     Module=Modul/Applikation
    -Modules=Moduler/applikationer
    -Option=Option
    +Modules=Moduler/Applikationer
    +Option=Valgmulighed
     List=Liste
     FullList=Fuldstændig liste
     Statistics=Statistik
    @@ -416,7 +417,7 @@ Favorite=Favorite
     ShortInfo=Info.
     Ref=Ref.
     ExternalRef=Ref. extern
    -RefSupplier=Ref. vendor
    +RefSupplier=Ref. sælger
     RefPayment=Ref. betaling
     CommercialProposalsShort=Tilbud
     Comment=Kommentar
    @@ -427,22 +428,23 @@ ActionsDoneShort=Gjort
     ActionNotApplicable=Ikke relevant
     ActionRunningNotStarted=Ikke startet
     ActionRunningShort=I gang
    -ActionDoneShort=Finished
    -ActionUncomplete=Uafsluttet
    +ActionDoneShort=Færdig
    +ActionUncomplete=Ufuldstændig
     LatestLinkedEvents=Seneste %s linkede begivenheder
    -CompanyFoundation=Virksomhed / organisation
    -Accountant=Accountant
    +CompanyFoundation=Virksomhed/Organisation
    +Accountant=Revisor
     ContactsForCompany=Kontakter for denne tredjepart
     ContactsAddressesForCompany=Kontakter/adresser for denne tredjepart
     AddressesForCompany=Adresse for denne tredjepart
     ActionsOnCompany=Begivenheder for denne tredjepart
    -ActionsOnMember=Begivenheder for dette medlem
    +ActionsOnContact=Events about this contact/address
    +ActionsOnMember=Begivenheder for denne medlem
     ActionsOnProduct=Begivenheder omkring dette produkt
     NActionsLate=%s sent
    -ToDo=Udestående
    -Completed=Completed
    +ToDo=At gøre
    +Completed=Afsluttet
     Running=I gang
    -RequestAlreadyDone=Anmodning allerede er registreret
    +RequestAlreadyDone=Anmodning allerede registreret
     Filter=Filter
     FilterOnInto=Søgekriterier '<strong> %s </strong>' i felter %s
     RemoveFilter=Fjern filter
    @@ -453,11 +455,11 @@ Generate=Generer
     Duration=Varighed
     TotalDuration=Varighed i alt
     Summary=Resumé
    -DolibarrStateBoard=Database statistik
    -DolibarrWorkBoard=Åbne poster instrumentbræt
    +DolibarrStateBoard=Database Statistik
    +DolibarrWorkBoard=Afventer varer
     NoOpenedElementToProcess=Intet åbnet element til behandling
     Available=Tilgængelig
    -NotYetAvailable=Endnu ikke tilgængelig
    +NotYetAvailable=Ikke tilgængelig endnu 
     NotAvailable=Ikke til rådighed
     Categories=Tags/kategorier
     Category=Tags/kategori
    @@ -468,7 +470,7 @@ and=og
     or=eller
     Other=Anden
     Others=Andre
    -OtherInformations=Andre informationer
    +OtherInformations=Anden information
     Quantity=Antal
     Qty=Qty
     ChangedBy=Ændret af
    @@ -481,12 +483,12 @@ ResultKo=Fejl
     Reporting=Rapportering
     Reportings=Rapportering
     Draft=Udkast
    -Drafts=Drafts
    +Drafts=Udkast
     StatusInterInvoiced=
    -Validated=Valideret
    -Opened=Åbent
    +Validated=Godkendt
    +Opened=Åben
     New=Ny
    -Discount=Discount
    +Discount=Rabat
     Unknown=Ukendt
     General=Almindelige
     Size=Størrelse
    @@ -495,7 +497,7 @@ Received=Modtaget
     Paid=Betales
     Topic=Emne
     ByCompanies=Tredjeparter
    -ByUsers=By user
    +ByUsers=Af bruger
     Links=Links
     Link=Link
     Rejects=Afviser
    @@ -505,19 +507,19 @@ Datas=Oplysningerne
     None=Ingen
     NoneF=Ingen
     NoneOrSeveral=Ingen eller flere
    -Late=Sen
    -LateDesc=Forsinkelse om at definere, om en optegnelse er forsinket eller ikke, afhænger af dit opsætning. Bed din administrator om at ændre forsinkelsen fra menuen Hjem - Opsætning - Advarsler.
    -NoItemLate=No late item
    +Late=Sent
    +LateDesc=Forsinkelsen for at definere, om en post er forsinket eller ej, afhænger af dit opsæt. Bed din administrator om at ændre forsinkelsen fra menuen Hjem - Opsætning - Advarsler.
    +NoItemLate=Ingen forsinket vare
     Photo=Billede
     Photos=Billeder
     AddPhoto=Tilføj billede
     DeletePicture=Billede slette
     ConfirmDeletePicture=Bekræft billed sletning?
     Login=Login
    -LoginEmail=Login (email)
    -LoginOrEmail=Login eller Email
    +LoginEmail=Logind (email)
    +LoginOrEmail=Logind eller Email
     CurrentLogin=Nuværende login
    -EnterLoginDetail=Indtast loginoplysninger
    +EnterLoginDetail=Indtast logind oplysninger
     January=Januar
     February=Februar
     March=Marts
    @@ -530,42 +532,30 @@ September=September
     October=Oktober
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=Maj
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Okt
    -NovemberMin=Nov
    -DecemberMin=Dec
    -Month01=januar
    -Month02=februar
    -Month03=marts
    -Month04=april
    -Month05=maj
    -Month06=juni
    -Month07=juli
    -Month08=august
    -Month09=september
    -Month10=oktober
    -Month11=november
    -Month12=december
    -MonthShort01=jan
    -MonthShort02=feb
    -MonthShort03=mar
    -MonthShort04=apr
    -MonthShort05=maj
    -MonthShort06=jun
    -MonthShort07=jul
    -MonthShort08=aug
    -MonthShort09=sep
    -MonthShort10=okt
    -MonthShort11=nov
    -MonthShort12=dec
    +Month01=Januar
    +Month02=Februar
    +Month03=Marts
    +Month04=April
    +Month05=Maj
    +Month06=Juni
    +Month07=Juli
    +Month08=August
    +Month09=September
    +Month10=Oktober
    +Month11=November
    +Month12=December
    +MonthShort01=Jan
    +MonthShort02=Feb
    +MonthShort03=Mar
    +MonthShort04=Apr
    +MonthShort05=Maj
    +MonthShort06=Jun
    +MonthShort07=Jul
    +MonthShort08=Aug
    +MonthShort09=Sep
    +MonthShort10=Okt
    +MonthShort11=Nov
    +MonthShort12=Dec
     MonthVeryShort01=J
     MonthVeryShort02=F
     MonthVeryShort03=M
    @@ -579,7 +569,7 @@ MonthVeryShort10=O
     MonthVeryShort11=N
     MonthVeryShort12=D
     AttachedFiles=Vedhæftede filer og dokumenter
    -JoinMainDoc=Tilmeld dig hoveddokumentet
    +JoinMainDoc=Tilmeld dig til hoveddokument
     DateFormatYYYYMM=ÅÅÅÅ-MM
     DateFormatYYYYMMDD=ÅÅÅÅ-MM-DD
     DateFormatYYYYMMDDHHMM=ÅÅÅÅ-MM-DD HH: SS
    @@ -593,9 +583,9 @@ Legend=Legend
     Fill=Udfyld
     Reset=Nulstil
     File=Fil
    -Files=Files
    +Files=Filer
     NotAllowed=Ikke tilladt
    -ReadPermissionNotAllowed=Læs tilladelse ikke tilladt
    +ReadPermissionNotAllowed=Læsetilladelse ikke tilladt
     AmountInCurrency=Beløb i %s valuta
     Example=Eksempel
     Examples=Eksempler
    @@ -621,11 +611,11 @@ Warnings=Advarsler
     BuildDoc=Build Dok
     Entity=Enhed
     Entities=Enheder
    -CustomerPreview=Forhåndsvisning for kunde
    -SupplierPreview=Vendor preview
    -ShowCustomerPreview=Vis forhåndsvisning for kunde
    -ShowSupplierPreview=Show vendor preview
    -RefCustomer=Ref. kunde
    +CustomerPreview=Forhåndsvisning til kunde
    +SupplierPreview=Forhandler forhåndsvisning
    +ShowCustomerPreview=Vis forhåndsvisning til kunde
    +ShowSupplierPreview=Vis sælger forhåndsvisning
    +RefCustomer=Ref. Kunde
     Currency=Valuta
     InfoAdmin=Oplysninger til administratorer
     Undo=Fortryd
    @@ -634,21 +624,23 @@ ExpandAll=Udvid alle
     UndoExpandAll=Fortryd udvide
     SeeAll=Se alt
     Reason=Årsag
    -FeatureNotYetSupported=Feature endnu ikke understøttet
    +FeatureNotYetSupported=Funktion endnu ikke understøttet
     CloseWindow=Luk vindue
    -Response=Response
    +Response=Responds
     Priority=Prioritet
    -SendByMail=Send via e-mail
    -MailSentBy=E-mail sendt fra
    -TextUsedInTheMessageBody=Email organ
    -SendAcknowledgementByMail=Send bekræftelses e-mail
    -SendMail=Send email
    -EMail=E-mail
    -NoEMail=Ingen e-mail
    +SendByMail=Send via Email
    +MailSentBy=Email sendt fra
    +TextUsedInTheMessageBody=Email indhold
    +SendAcknowledgementByMail=Send bekræftelses Email
    +SendMail=Send Email
    +EMail=Email
    +NoEMail=Ingen Email
     Email=EMail
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Ingen mobil telefon
     Owner=Ejer
    -FollowingConstantsWillBeSubstituted=Efter konstanterne skal erstatte med tilsvarende værdi.
    +FollowingConstantsWillBeSubstituted=Følgende konstanterne skal erstatte med tilsvarende værdi.
     Refresh=Opdatér
     BackToList=Tilbage til listen
     GoBack=Gå tilbage
    @@ -657,18 +649,18 @@ CanBeModifiedIfKo=Kan ændres, hvis ikke gyldigt
     ValueIsValid=Værdi er gyldigt
     ValueIsNotValid=Værdien er ikke gyldig
     RecordCreatedSuccessfully=Optag oprettet med succes
    -RecordModifiedSuccessfully=Optag modificerede held
    +RecordModifiedSuccessfully=Ændring gennemført med succes
     RecordsModified=%s  optag ændret
     RecordsDeleted=%s post slettet
     AutomaticCode=Automatisk kode
    -FeatureDisabled=Feature handicappede
    +FeatureDisabled=Modul slået fra
     MoveBox=Flyt box
     Offered=Fri
     NotEnoughPermissions=Du har ikke tilladelse til denne handling
     SessionName=Session navn
     Method=Metode
     Receive=Modtag
    -CompleteOrNoMoreReceptionExpected=Komplet eller intet mere forventet
    +CompleteOrNoMoreReceptionExpected=Komplet eller intet mere at forvente
     ExpectedValue=Forventet værdi
     CurrentValue=Nuværende værdi
     PartialWoman=Delvis
    @@ -677,16 +669,16 @@ NeverReceived=Aldrig modtaget
     Canceled=Annulleret
     YouCanChangeValuesForThisListFromDictionarySetup=Du kan ændre værdier for denne liste fra menuen Opsætning - Ordbøger
     YouCanChangeValuesForThisListFrom=Du kan ændre værdierne for denne liste fra menuen %s
    -YouCanSetDefaultValueInModuleSetup=Du kan indstille standard værdi, der bruges, når du opretter en ny post i modul opsætning
    -Color=Color
    -Documents=Linkede filer
    +YouCanSetDefaultValueInModuleSetup=Du kan indstille standardværdien, der bruges, når du opretter en ny post i modulopsætningen
    +Color=Farve
    +Documents=Tilknyttet filer
     Documents2=Dokumenter
    -UploadDisabled=Upload handicappede
    +UploadDisabled=Upload deaktiveret
     MenuAccountancy=Regnskab
     MenuECM=Dokumenter
     MenuAWStats=AWStats
     MenuMembers=Medlemmer
    -MenuAgendaGoogle=Google tidsplan
    +MenuAgendaGoogle=Google dagsorden
     ThisLimitIsDefinedInSetup=Dolibarr grænse (Menu hjemme-setup-sikkerhed): %s Kb, PHP grænse: %s Kb
     NoFileFound=Ingen dokumenter gemt i denne mappe
     CurrentUserLanguage=Valgt sprog
    @@ -694,17 +686,17 @@ CurrentTheme=Nuværende tema
     CurrentMenuManager=Aktuel menuhåndtering
     Browser=Browser
     Layout=Layout
    -Screen=skærm
    -DisabledModules=Handikappede moduler
    +Screen=Skærm
    +DisabledModules=Deaktive moduler
     For=For
    -ForCustomer=For kunder
    +ForCustomer=Til kunder
     Signature=Underskrift
     DateOfSignature=Dato for underskrift
     HidePassword=Vis kommandoen med adgangskode skjulte
     UnHidePassword=Vis reelle kommandoen med klare adgangskode
    -Root=Rot
    -Informations=Informations
    -Page=Page
    +Root=Rod
    +Informations=Information
    +Page=Side
     Notes=Noter
     AddNewLine=Tilføj ny linje
     AddFile=Tilføj fil
    @@ -712,26 +704,28 @@ FreeZone=Ingen registrerede varer/ydelser
     FreeLineOfType=Ikke en foruddefineret indlæg af type
     CloneMainAttributes=Klon formål med sine vigtigste attributter
     PDFMerge=PDF Sammenflet
    -Merge=Merge
    +Merge=Sammeflet
     DocumentModelStandardPDF=Standard PDF-skabelon
     PrintContentArea=Vis side for at udskrive hovedindhold område
     MenuManager=Menuhåndtering
    -WarningYouAreInMaintenanceMode=Advarsel, du er i en vedligeholdelses mode, så kun login <b>%s</b> er tilladt at bruge ansøgningen på i øjeblikket.
    +WarningYouAreInMaintenanceMode=Advarsel, du er i vedligeholdelsestilstand, så kun login <b> %s </ b> har lov til at bruge programmet på dette tidspunkt.
     CoreErrorTitle=Systemfejl
     CoreErrorMessage=Beklager, der opstod en fejl. Kontakt systemadministratoren for at kontrollere logfilerne eller deaktivere $dolibarr_main_prod=1 for at få flere oplysninger.
     CreditCard=Kreditkort
     ValidatePayment=Godkend betaling
    -CreditOrDebitCard=Credit or debit card
    +CreditOrDebitCard=Kredit- eller betalingskort
     FieldsWithAreMandatory=Felter med <b>%s</b> er obligatoriske
    -FieldsWithIsForPublic=Felter med <b>%s</b> er vist på offentlig liste over medlemmer. Hvis du ikke ønsker dette, se "offentlige" boks.
    -AccordingToGeoIPDatabase=(Ifølge GeoIP konvertering)
    -Line=Line
    +FieldsWithIsForPublic=Felter med <b> %s </ b> vises i den offentlige liste over medlemmer. Hvis du ikke vil have det, skal du fjerne markeringen i feltet "offentlig".
    +AccordingToGeoIPDatabase=(ifølge GeoIP konvertering)
    +Line=Linje
     NotSupported=Ikke understøttet
     RequiredField=Obligatorisk felt
     Result=Resultat
     ToTest=Test
    -ValidateBefore=Kortet skal være valideret, før du bruger denne funktion
    +ValidateBefore=Kortet skal være bekræftet, før du bruger denne funktion
     Visibility=Synlighed
    +Totalizable=Totalizable
    +TotalizableDesc=Dette felt kan totaliseres i listen
     Private=Private
     Hidden=Skjulte
     Resources=Ressourcer
    @@ -741,23 +735,25 @@ Before=Før
     After=Efter
     IPAddress=IP-adressen
     Frequency=Frekvens
    -IM=Instant messaging
    +IM=Instant besked
     NewAttribute=Ny attribut
     AttributeCode=Attribut koden
    -URLPhoto=Url af foto / logo
    +URLPhoto=Url af foto/logo
     SetLinkToAnotherThirdParty=Link til en anden tredjepart
     LinkTo=Link til
     LinkToProposal=Link til forslag
     LinkToOrder=Link til ordre
     LinkToInvoice=Link til faktura
    +LinkToTemplateInvoice=Link til skabelonfaktura
     LinkToSupplierOrder=Link til leverandørordre
    -LinkToSupplierProposal=Link til leverandørforslag
    -LinkToSupplierInvoice=Link til leverandørfaktura
    +LinkToSupplierProposal=Link til leverandør forslag
    +LinkToSupplierInvoice=Link til leverandør faktura
     LinkToContract=Link til kontrakt
     LinkToIntervention=Link til intervention
     CreateDraft=Opret udkast
     SetToDraft=Tilbage til udkast
     ClickToEdit=Klik for at redigere
    +ClickToRefresh=Click to refresh
     EditWithEditor=Rediger med CKEditor
     EditWithTextEditor=Rediger med tekst editor
     EditHTMLSource=Rediger HTML-kilde
    @@ -772,20 +768,20 @@ ByDay=Dag
     BySalesRepresentative=Salgsrepræsentant
     LinkedToSpecificUsers=Linked til en bestemt bruger kontakt
     NoResults=Ingen resultater
    -AdminTools=Administrative værktøjer
    +AdminTools=Admin Tools
     SystemTools=Systemværktøjer
     ModulesSystemTools=Modul værktøjer
     Test=Test
     Element=Element
    -NoPhotoYet=Inge billeder til rådighed
    +NoPhotoYet=Ingen billeder til rådighed
     Dashboard=Instrumentbræt
    -MyDashboard=Mit kontrolpanel
    +MyDashboard=Mit Dashboard
     Deductible=Fradragsberettigede
     from=fra
     toward=mod
     Access=Adgang
     SelectAction=Vælg handling
    -SelectTargetUser=Vælg målbruger / medarbejder
    +SelectTargetUser=Vælg målbruger/medarbejder
     HelpCopyToClipboard=Brug Ctrl+C for at kopiere til udklipsholderen
     SaveUploadedFileWithMask=Gem filen på serveren med navnet "<strong>%s</strong>" (ellers "%s")
     OriginFileName=Orginal filnavn
    @@ -794,7 +790,7 @@ SetBankAccount=Definér bankkonto
     AccountCurrency=Konto møntsort
     ViewPrivateNote=Vis noter
     XMoreLines=%s linje(r) skjult
    -ShowMoreLines=Vis flere / færre linjer
    +ShowMoreLines=Vis flere/færre linjer
     PublicUrl=Offentlige URL
     AddBox=Tilføj box
     SelectElementAndClick=Vælg et element og klik på %s
    @@ -802,9 +798,9 @@ PrintFile=Print fil %s
     ShowTransaction=Vis indlæg på bankkonto
     ShowIntervention=Vis indgreb
     ShowContract=Vis kontrakt
    -GoIntoSetupToChangeLogo=Gå ind i Home - Setup - Firma for at skifte logo eller gå ind i Home - Setup - Display for at skjule.
    +GoIntoSetupToChangeLogo=Gå til Home - Setup - Firma for at skifte logo eller gå til Hjem - Setup - Display for at skjule.
     Deny=Nægte
    -Denied=Denied
    +Denied=Nægtet
     ListOf=Liste over %s
     ListOfTemplates=Liste over skabeloner
     Gender=Køn
    @@ -815,34 +811,34 @@ Mandatory=Obligatorisk
     Hello=Hallo
     GoodBye=Farvel
     Sincerely=Med venlig hilsen
    -DeleteLine=Slet linie
    +DeleteLine=Slet linje
     ConfirmDeleteLine=Er du sikker på, at du vil slette denne linje?
    -NoPDFAvailableForDocGenAmongChecked=Der var ikke nogen PDF til dokumentgenerering blandt kontrollerede poster
    -TooManyRecordForMassAction=For mange poster valgt til massehandling. Handlingen er begrænset til en liste over %s rekord.
    +NoPDFAvailableForDocGenAmongChecked=Der var ikke nogen PDF til dokument generering blandt kontrollerede poster
    +TooManyRecordForMassAction=For mange poster valgt til massehandling. Handlingen er begrænset til en liste over %s poster.
     NoRecordSelected=Ingen rekord valgt
     MassFilesArea=Område for filer opbygget af massehandlinger
     ShowTempMassFilesArea=Vis område af filer bygget af massehandlinger
    -ConfirmMassDeletion=Bulk slet bekræftelse
    +ConfirmMassDeletion=Masse slette bekræftelse
     ConfirmMassDeletionQuestion=Er du sikker på, at du vil slette den %s valgte post?
     RelatedObjects=Relaterede objekter
     ClassifyBilled=Klassificere faktureret
    -ClassifyUnbilled=Classify unbilled
    +ClassifyUnbilled=Klassificer Ikke faktureret
     Progress=Fremskridt
     FrontOffice=Forreste kontor
     BackOffice=Back office
     View=Udsigt
    -Export=Export
    +Export=Eksport
     Exports=Eksporter
     ExportFilteredList=Eksporter filtreret liste
     ExportList=Eksportliste
    -ExportOptions=Eksportindstillinger
    +ExportOptions=Eksport indstillinger
     Miscellaneous=Diverse
     Calendar=Kalender
     GroupBy=Gruppér efter
     ViewFlatList=Se flad liste
     RemoveString=Fjern streng '%s'
    -SomeTranslationAreUncomplete=Nogle sprog kan oversættes delvis eller kan indeholde fejl. Hvis du registrerer noget, kan du rette sprogfiler, der registrerer dig til <a href="https://transifex.com/projects/p/dolibarr/" target="_blank"> https://transifex.com/projects/p/ Dolibarr / </a>.
    -DirectDownloadLink=Direkte download link (offentlig / ekstern)
    +SomeTranslationAreUncomplete=Nogle af de sprog, der tilbydes, kan kun oversættes eller måske indeholde fejl. Hjælp venligst med at korrigere dit sprog ved at registrere dig på <a href="https://transifex.com/projects/p/dolibarr/" target="_blank"> https://transifex.com/projects/p/dolibarr/ </a> at tilføje dine forbedringer.
    +DirectDownloadLink=Direkte download link (offentlig/ekstern)
     DirectDownloadInternalLink=Direkte download link (skal logges og har brug for tilladelser)
     Download=Hent
     DownloadDocument=Hent dokument
    @@ -850,11 +846,11 @@ ActualizeCurrency=Opdater valutakurs
     Fiscalyear=Regnskabsår
     ModuleBuilder=Modulbygger
     SetMultiCurrencyCode=Indstil valuta
    -BulkActions=Bulk handlinger
    -ClickToShowHelp=Klik for at vise værktøjstiphjælp
    +BulkActions=Masse handlinger
    +ClickToShowHelp=Klik for at vise værktøjs tips
     WebSite=Internet side
    -WebSites=Websteder
    -WebSiteAccounts=Webstedkonti
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Udgiftsrapport
     ExpenseReports=Udgiftsrapporter
     HR=HR
    @@ -864,13 +860,22 @@ TitleSetToDraft=Gå tilbage til udkast
     ConfirmSetToDraft=Er du sikker på, at du vil gå tilbage til Udkast status?
     ImportId=Import id
     Events=Begivenheder
    -EMailTemplates=E-mail skabeloner
    +EMailTemplates=Email skabeloner
     FileNotShared=Filen er ikke delt til ekstern offentlighed
     Project=Projekt
     Projects=Projekter
    +LeadOrProject=Bly | Projekt
    +LeadsOrProjects=Potentielle kunder | Projekter
    +Lead=At føre
    +Leads=Potentielle kunder
    +ListOpenLeads=Liste åbne ledninger
    +ListOpenProjects=Liste åbne projekter
    +NewLeadOrProject=Ny ledelse eller projekt
     Rights=Tilladelser
    -LineNb=Line no.
    -IncotermLabel=Incoterms
    +LineNb=Linje nr.
    +IncotermLabel=Inkassovilkor
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Mandag
     Tuesday=Tirsdag
    @@ -879,13 +884,13 @@ Thursday=Torsdag
     Friday=Fredag
     Saturday=Lørdag
     Sunday=Søndag
    -MondayMin=Mo
    -TuesdayMin=Tu
    -WednesdayMin=Vi
    -ThursdayMin=Th
    -FridayMin=Fr
    -SaturdayMin=Sa
    -SundayMin=Su
    +MondayMin=Man
    +TuesdayMin=Tir
    +WednesdayMin=Ons
    +ThursdayMin=Tor
    +FridayMin=Fre
    +SaturdayMin=Lør
    +SundayMin=Søn
     Day1=Mandag
     Day2=Tirsdag
     Day3=Onsdag
    @@ -895,13 +900,13 @@ Day6=Lørdag
     Day0=Søndag
     ShortMonday=M
     ShortTuesday=T
    -ShortWednesday=W
    +ShortWednesday=O
     ShortThursday=T
     ShortFriday=F
    -ShortSaturday=S
    +ShortSaturday=L
     ShortSunday=S
    -SelectMailModel=Vælg en e-mail-skabelon
    -SetRef=Sæt ref
    +SelectMailModel=Vælg en Email-skabelon
    +SetRef=Sæt ref.
     Select2ResultFoundUseArrows=Nogle resultater fundet. Brug pilene til at vælge.
     Select2NotFound=Intet resultat fundet
     Select2Enter=Gå ind
    @@ -917,17 +922,17 @@ SearchIntoUsers=Brugere
     SearchIntoProductsOrServices=Produkter eller tjenester
     SearchIntoProjects=Projekter
     SearchIntoTasks=Opgaver
    -SearchIntoCustomerInvoices=Kundefakturaer
    -SearchIntoSupplierInvoices=Leverandørfakturaer
    +SearchIntoCustomerInvoices=Kunde fakturaer
    +SearchIntoSupplierInvoices=Leverandør fakturaer
     SearchIntoCustomerOrders=Kundeordrer
     SearchIntoSupplierOrders=Indkøbsordre
     SearchIntoCustomerProposals=Kundeforslag
    -SearchIntoSupplierProposals=Vendor proposals
    +SearchIntoSupplierProposals=Forhandler forslag
     SearchIntoInterventions=Interventioner
     SearchIntoContracts=Kontrakter
     SearchIntoCustomerShipments=Kundeforsendelser
     SearchIntoExpenseReports=Udgiftsrapporter
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Forlade
     CommentLink=Kommentarer
     NbComments=Antal kommentarer
     CommentPage=Kommentarer plads
    @@ -936,15 +941,17 @@ CommentDeleted=Kommentar slettet
     Everybody=Fælles projekt
     PayedBy=Betalt af
     PayedTo=Betalt til
    -Monthly=Monthly
    -Quarterly=Quarterly
    -Annual=Annual
    -Local=Local
    -Remote=Remote
    -LocalAndRemote=Local and Remote
    -KeyboardShortcut=Keyboard shortcut
    +Monthly=Månedlige
    +Quarterly=Kvartalsvis
    +Annual=Årligt
    +Local=Lokal
    +Remote=Fjern
    +LocalAndRemote=Lokal og Ekstern
    +KeyboardShortcut=Tastaturgenvej
     AssignedTo=Tildelt til
    -Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    -FileSharedViaALink=File shared via a link
    -
    +Deletedraft=Slet udkast
    +ConfirmMassDraftDeletion=Udkast til masse slette bekræftelse
    +FileSharedViaALink=Fil deles via et link
    +SelectAThirdPartyFirst=Vælg en tredjepart først ...
    +YouAreCurrentlyInSandboxMode=Du er i øjeblikket i %s "sandbox" -tilstanden
    +Inventory=Beholdning
    diff --git a/htdocs/langs/da_DK/other.lang b/htdocs/langs/da_DK/other.lang
    index 7a7f292814c..c6804ae04e2 100644
    --- a/htdocs/langs/da_DK/other.lang
    +++ b/htdocs/langs/da_DK/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Sikkerhedskode
     NumberingShort=N °
     Tools=Værktøj
     TMenuTools=Værktøjer
    -ToolsDesc=Alle diverse værktøjer, der ikke er medtaget i andre menuposter, er samlet her. <br> <br> Alle værktøjerne kan nås i menuen til venstre.
    +ToolsDesc=Alle værktøjer, der ikke er inkluderet i andre menupunkter, er grupperet her. <br> Alle værktøjerne er tilgængelige via menuen til venstre.
     Birthday=Fødselsdag
     BirthdayDate=Fødselsdato
     DateToBirth=Dato for fødsel
    @@ -20,10 +20,10 @@ ZipFileGeneratedInto=Zip-fil genereret til <b> %s </ b>.
     DocFileGeneratedInto=Doc-fil genereret til <b> %s </ b>.
     JumpToLogin=Afbrudt. Gå til login side ...
     MessageForm=Besked på online betalingsformular
    -MessageOK=Besked på validerede betaling tilbage side
    +MessageOK=Besked på bekræftede betaling tilbage side
     MessageKO=Besked om annulleret betaling tilbage side
    -ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +ContentOfDirectoryIsNotEmpty=Indholdet af denne mappe er ikke tomt.
    +DeleteAlsoContentRecursively=Check for at slette alt indhold rekursivt
     
     YearOfInvoice=År for faktura dato
     PreviousYearOfInvoice=Tidligere års faktura dato
    @@ -31,38 +31,37 @@ NextYearOfInvoice=Følgende års faktura dato
     DateNextInvoiceBeforeGen=Dato for næste faktura (før generation)
     DateNextInvoiceAfterGen=Dato for næste faktura (efter generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Tilføjet kontakt til intervention
    -Notify_FICHINTER_VALIDATE=Valider intervention
    -Notify_FICHINTER_SENTBYMAIL=Intervention sendt via post
    -Notify_ORDER_VALIDATE=Kundeordre valideret
    +Notify_ORDER_VALIDATE=Kundeordre bekræftet
     Notify_ORDER_SENTBYMAIL=Kundens ordre sendes med posten
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Leverandør orden sendt med posten
     Notify_ORDER_SUPPLIER_VALIDATE=Leverandør ordre registreret
     Notify_ORDER_SUPPLIER_APPROVE=Leverandør for godkendt
     Notify_ORDER_SUPPLIER_REFUSE=Leverandør For nægtes
     Notify_PROPAL_VALIDATE=Tilbud godkendt
    -Notify_PROPAL_CLOSE_SIGNED=Kunde propal lukket underskrevet
    -Notify_PROPAL_CLOSE_REFUSED=Kunde propal lukket nægtet
    +Notify_PROPAL_CLOSE_SIGNED=Kundeforslag er lukket underskrevet
    +Notify_PROPAL_CLOSE_REFUSED=Kundeforslag afsluttet afslået
     Notify_PROPAL_SENTBYMAIL=Tilbud sendt med posten
     Notify_WITHDRAW_TRANSMIT=Transmission tilbagetrækning
     Notify_WITHDRAW_CREDIT=Credit tilbagetrækning
     Notify_WITHDRAW_EMIT=Isue tilbagetrækning
     Notify_COMPANY_CREATE=Tredjeparts oprettet
     Notify_COMPANY_SENTBYMAIL=Mails sendt fra tredjepartskort
    -Notify_BILL_VALIDATE=Valider regningen
    +Notify_BILL_VALIDATE=Bekræft regningen
     Notify_BILL_UNVALIDATE=Kundefaktura ugyldiggjort
    -Notify_BILL_PAYED=Kundens faktura betales
    +Notify_BILL_PAYED=Kundefaktura udbetalt
     Notify_BILL_CANCEL=Kundefaktura aflyst
     Notify_BILL_SENTBYMAIL=Kundens faktura sendes med posten
    -Notify_BILL_SUPPLIER_VALIDATE=Leverandør faktura valideret
    -Notify_BILL_SUPPLIER_PAYED=Leverandør faktura betales
    +Notify_BILL_SUPPLIER_VALIDATE=Leverandør faktura bekræftet
    +Notify_BILL_SUPPLIER_PAYED=Leverandør faktura betalt
     Notify_BILL_SUPPLIER_SENTBYMAIL=Leverandør faktura tilsendt med posten
     Notify_BILL_SUPPLIER_CANCELED=Leverandør faktura annulleret
    -Notify_CONTRACT_VALIDATE=Kontrakt valideret
    -Notify_FICHEINTER_VALIDATE=Intervention valideret
    -Notify_SHIPPING_VALIDATE=Forsendelse valideret
    +Notify_CONTRACT_VALIDATE=Kontrakt bekræftet
    +Notify_FICHEINTER_VALIDATE=Intervention bekræftet
    +Notify_FICHINTER_ADD_CONTACT=Tilføjet kontakt til intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sendt via post
    +Notify_SHIPPING_VALIDATE=Forsendelse bekræftet
     Notify_SHIPPING_SENTBYMAIL=Shipping sendes med posten
    -Notify_MEMBER_VALIDATE=Medlem valideret
    +Notify_MEMBER_VALIDATE=Medlem bekræftet
     Notify_MEMBER_MODIFY=Medlem ændret
     Notify_MEMBER_SUBSCRIPTION=Medlem abonnerer
     Notify_MEMBER_RESILIATE=Medlem afsluttet
    @@ -71,27 +70,33 @@ Notify_PROJECT_CREATE=Projektoprettelse
     Notify_TASK_CREATE=Opgave oprettet
     Notify_TASK_MODIFY=Opgave ændret
     Notify_TASK_DELETE=Opgave slettet
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Se opsætning af modul %s
     NbOfAttachedFiles=Antal vedhæftede filer / dokumenter
     TotalSizeOfAttachedFiles=Samlede størrelse på vedhæftede filer / dokumenter
     MaxSize=Maksimumstørrelse
     AttachANewFile=Vedhæfte en ny fil / dokument
     LinkedObject=Linket objekt
    -NbOfActiveNotifications=Antal meddelelser (nb modtager e-mails)
    +NbOfActiveNotifications=Antal meddelelser (nr. Modtagers e-mails)
     PredefinedMailTest=__(Hej)__\nDette er en testpost sendt til __EMAIL__.\nDe to linjer er adskilt af en vognretur.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hej)__\nDette er en <b> test </ b> mail (ordtesten skal være fed skrift). De to linjer er adskilt af en vognretur. <br> <br> __USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hej)__\n\nHer finder du prisforespørgsel __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hej)__\n\nHer finder du ordren __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hej)__\n\nHer finder du vores ordre __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hej)__\n\nHer finder du fakturaen __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hej)__\n\nHer finder du forsendelsen __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hej)__\n\nHer finder du interventionen __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hej)__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hej)__\n\nVenligst find vedlagte faktura __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hej)__\n\nVi vil gerne advare dig om, at fakturaen __REF__ tilsyneladende ikke er blevet betalt. Fakturaen er vedlagt som en påmindelse.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hej)__\n\nSe venligst vedhæftet kommercielt forslag __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hej)__\n\nVenligst find vedlagt prisforespørgsel __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hej)__\n\nSe venligst vedhæftet ordre __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hej)__\n\nVenligst find vedlagt vores ordre __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hej)__\n\nVenligst find vedlagte faktura __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hej)__\n\nSe venligst vedhæftet fragt __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hej)__\n\nVenligst find vedhæftet intervention __REF__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hej)__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hej)__\n\n\n__ (Sincerely) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
    +PredefinedMailContentLink=Du kan klikke på linket herunder for at foretage din betaling, hvis den ikke allerede er færdig.\n\n%s\n\n
     DemoDesc=Dolibarr er en kompakt ERP / CRM, der understøtter flere forretningsmoduler. En demo, der viser alle moduler, giver ingen mening, da dette scenario aldrig forekommer (flere hundrede tilgængelige). Så flere demo profiler er tilgængelige.
     ChooseYourDemoProfil=Vælg den demoprofil, der passer bedst til dine behov ...
     ChooseYourDemoProfilMore=... eller bygg din egen profil <br> (manuel modulvalg)
    @@ -107,12 +112,12 @@ ValidatedBy=Attesteret af %s
     ClosedBy=Lukket af %s
     CreatedById=Bruger id, der oprettede
     ModifiedById=Bruger id, der lavede den seneste ændring
    -ValidatedById=Bruger id, der er valideret
    +ValidatedById=Bruger id, der er bekræftet
     CanceledById=Bruger id, der annulleret
     ClosedById=Bruger id, der lukket
     CreatedByLogin=Bruger login, der oprettes
     ModifiedByLogin=Bruger login, som lavede den seneste ændring
    -ValidatedByLogin=Bruger login, der valideres
    +ValidatedByLogin=Bruger login, der bekræftes
     CanceledByLogin=Bruger login, der blev annulleret
     ClosedByLogin=Bruger login som lukket
     FileWasRemoved=Fil blev slettet
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Installer eller aktiver GD bibliotek på din PHP installatio
     ProfIdShortDesc=<b>Prof Id %s</b> er en information afhængigt tredjepart land. <br> For eksempel, for <b>land %s,</b> er det <b>kode %s.</b>
     DolibarrDemo=Dolibarr ERP / CRM demo
     StatsByNumberOfUnits=Statistikker for summen af ​​produkter / tjenester
    -StatsByNumberOfEntities=Statistikker i antal henvisende enheder (nb faktura eller ordre ...)
    +StatsByNumberOfEntities=Statistik i antal henvisende enheder (faktura nummer, eller rækkefølge ...)
     NumberOfProposals=Antal forslag
     NumberOfCustomerOrders=Antal kundeordrer
     NumberOfCustomerInvoices=Antal kundefakturaer
    @@ -185,18 +190,23 @@ NumberOfUnitsCustomerInvoices=Antal enheder på kundefakturaer
     NumberOfUnitsSupplierProposals=Antal enheder på leverandørforslag
     NumberOfUnitsSupplierOrders=Antal enheder på leverandørordrer
     NumberOfUnitsSupplierInvoices=Antal enheder på leverandørfakturaer
    -EMailTextInterventionAddedContact=En nyintervention %s er blevet tildelt dig.
    -EMailTextInterventionValidated=Intervention %s valideret
    -EMailTextInvoiceValidated=Faktura %s valideret
    +EMailTextInterventionAddedContact=En ny intervention %s er blevet tildelt dig.
    +EMailTextInterventionValidated=Intervention %s bekræftet
    +EMailTextInvoiceValidated=Faktura %s bekræftet
    +EMailTextInvoicePayed=Fakturaen %s er blevet betalt.
     EMailTextProposalValidated=Tilbuddet %s er ikke godkendt.
     EMailTextProposalClosedSigned=Forslaget %s er blevet lukket underskrevet.
    -EMailTextOrderValidated=Ordren %s er blevet valideret.
    +EMailTextOrderValidated=Ordren %s er blevet bekræftet.
     EMailTextOrderApproved=Bestil %s godkendt
     EMailTextOrderValidatedBy=Ordren %s er optaget af %s.
     EMailTextOrderApprovedBy=Bestil %s er godkendt af %s
     EMailTextOrderRefused=Bestil %s nægtet
     EMailTextOrderRefusedBy=Bestil %s afvises af %s
    -EMailTextExpeditionValidated=Forsendelsen %s er blevet valideret.
    +EMailTextExpeditionValidated=Forsendelsen %s er blevet bekræftet.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Indførsel datasæt
     DolibarrNotification=Automatisk anmeldelse
     ResizeDesc=Indtast nye bredde <b>OR</b> ny højde. Ratio vil blive holdt i resizing ...
    @@ -204,7 +214,7 @@ NewLength=Ny bredde
     NewHeight=Ny højde
     NewSizeAfterCropping=Ny størrelse efter beskæring
     DefineNewAreaToPick=Definer et nyt område på billedet for at vælge (til venstre klik på billedet og derefter trække, indtil du når det modsatte hjørne)
    -CurrentInformationOnImage=Informationer om aktuelle billede
    +CurrentInformationOnImage=Dette værktøj er designet til at hjælpe dig med at ændre størrelse eller beskære et billede. Dette er oplysningerne om det aktuelle redigerede billede
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=Du modtager denne besked fordi din e-mail er blevet føjet til listen over modtagere, der skal informeres om bestemte begivenheder i %s software %s.
     YouReceiveMailBecauseOfNotification2=Denne begivenhed er følgende:
    @@ -217,13 +227,13 @@ StartUpload=Start upload
     CancelUpload=Annuller upload
     FileIsTooBig=Filer er for store
     PleaseBePatient=Vær tålmodig ...
    -NewPassword=New password
    +NewPassword=Nyt kodeord
     ResetPassword=Nulstille kodeord
    -RequestToResetPasswordReceived=A request to change your password has been received.
    +RequestToResetPasswordReceived=En anmodning om at ændre dit kodeord er blevet modtaget.
     NewKeyIs=Dette er dine nye nøgler til login
     NewKeyWillBe=Din nye nøgle til login til software vil være
     ClickHereToGoTo=Klik her for at gå til %s
    -YouMustClickToChange=Du skal dog først klikke på følgende link for at validere denne adgangskode ændring
    +YouMustClickToChange=Du skal dog først klikke på følgende link for at bekræfte denne adgangskode ændring
     ForgetIfNothing=Hvis du ikke har anmodet om denne ændring, skal du bare glemme denne email. Dine legitimationsoplysninger holdes sikre.
     IfAmountHigherThan=Hvis beløb højere end <strong> %s </ strong>
     SourcesRepository=Repository for kilder
    @@ -234,7 +244,11 @@ PermissionsDelete=Tilladelser fjernet
     YourPasswordMustHaveAtLeastXChars=Dit kodeord skal have mindst <strong> %s </ strong> tegn
     YourPasswordHasBeenReset=Dit kodeord er nulstillet
     ApplicantIpAddress=Ansøgerens IP-adresse
    -SMSSentTo=SMS sent to %s
    +SMSSentTo=SMS sendt til %s
    +MissingIds=Mangler ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Eksport område
    @@ -248,5 +262,7 @@ WebsiteSetup=Opsætning af modulets hjemmeside
     WEBSITE_PAGEURL=URL til side
     WEBSITE_TITLE=Titel
     WEBSITE_DESCRIPTION=Beskrivelse
    +WEBSITE_IMAGE=Billede
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=nøgleord
    -LinesToImport=Lines to import
    +LinesToImport=Linjer at importere
    diff --git a/htdocs/langs/da_DK/paybox.lang b/htdocs/langs/da_DK/paybox.lang
    index cba36d2f7d5..79a1257db9e 100644
    --- a/htdocs/langs/da_DK/paybox.lang
    +++ b/htdocs/langs/da_DK/paybox.lang
    @@ -3,15 +3,15 @@ PayBoxSetup=PayBox modul opsætning
     PayBoxDesc=Dette modul tilbyder sider at muliggøre betaling på <a href="http://www.paybox.com" target="_blank">Paybox</a> af kunderne. Dette kan bruges til en gratis betaling eller til en betaling på en bestemt Dolibarr genstand (faktura, ordre, ...)
     FollowingUrlAreAvailableToMakePayments=Følgende webadresser findes til at tilbyde en side til en kunde for at foretage en indbetaling på Dolibarr objekter
     PaymentForm=Betaling form
    -WelcomeOnPaymentPage=Velkommen på vores online betalingstjenesten
    +WelcomeOnPaymentPage=Velkommen til vores online betalingstjeneste
     ThisScreenAllowsYouToPay=Dette skærmbillede giver dig mulighed for at foretage en online-betaling til %s.
     ThisIsInformationOnPayment=Dette er informationer om betaling for at gøre
     ToComplete=For at fuldføre
     YourEMail=E-mail til bekræftelse af betaling,
     Creditor=Kreditor
     PaymentCode=Betaling kode
    -PayBoxDoPayment=Pay with Credit or Debit Card (Paybox)
    -ToPay=Må betaling
    +PayBoxDoPayment=Betal med kredit eller betalingskort (Paybox)
    +ToPay=Udfør betaling
     YouWillBeRedirectedOnPayBox=Du bliver omdirigeret om sikret Paybox siden til input du kreditkort informationer
     Continue=Næste
     ToOfferALinkForOnlinePayment=URL til %s betaling
    @@ -19,20 +19,21 @@ ToOfferALinkForOnlinePaymentOnOrder=URL til at tilbyde en %s online betaling bru
     ToOfferALinkForOnlinePaymentOnInvoice=URL til at tilbyde en %s online betaling brugergrænseflade til en faktura
     ToOfferALinkForOnlinePaymentOnContractLine=URL til at tilbyde en %s online betaling brugergrænseflade til en kontrakt linje
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL til at tilbyde en %s online betaling brugergrænseflade til et frit beløb
    -ToOfferALinkForOnlinePaymentOnMemberSubscription=URL til at tilbyde en %s online betaling brugergrænseflade til et medlem abonnement
    +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL for at tilbyde en %s netbetalingsbrugergrænseflade via abonnement
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Du kan også tilføje webadresseparameter <b>& tag= <i>værdi</i></b> til nogen af disse URL (kræves kun for fri betaling) for at tilføje din egen betaling kommentere tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Opret din PayBox med <b>url %s</b> for at få betaling oprettes automatisk, når valideret af paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Opsæt din Paybox med url <b> %s </ b> for at få betaling oprettet automatisk, når den er godkendt af Paybox.
     YourPaymentHasBeenRecorded=Denne side bekræfter, at din betaling er registreret. Tak.
    -YourPaymentHasNotBeenRecorded=Du betalingen ikke er blevet registreret, og transaktionen er blevet aflyst. Tak.
    +YourPaymentHasNotBeenRecorded=Din betaling er IKKE blevet registreret, og transaktionen er blevet annulleret. Tak skal du have.
     AccountParameter=Konto parametre
     UsageParameter=Usage parametre
     InformationToFindParameters=Hjælp til at finde din %s kontooplysninger
     PAYBOX_CGI_URL_V2=URL PAYBOX CGI-modul til betaling
     VendorName=Navn på leverandør
     CSSUrlForPaymentForm=CSS stylesheet url til indbetalingskort
    -NewPayboxPaymentReceived=New Paybox payment received
    -NewPayboxPaymentFailed=New Paybox payment tried but failed
    -PAYBOX_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or failed)
    -PAYBOX_PBX_SITE=Value for PBX SITE
    -PAYBOX_PBX_RANG=Value for PBX Rang
    -PAYBOX_PBX_IDENTIFIANT=Value for PBX ID
    +NewPayboxPaymentReceived=Ny Paybox modtaget
    +NewPayboxPaymentFailed=Ny Paybox betaling forsøgt men mislykkedes
    +PAYBOX_PAYONLINE_SENDEMAIL=E-mail for at advare efter en betaling (succes eller mislykket)
    +PAYBOX_PBX_SITE=Værdi for PBX SITE
    +PAYBOX_PBX_RANG=Værdi for PBX Rang
    +PAYBOX_PBX_IDENTIFIANT=Værdi for PBX ID
    diff --git a/htdocs/langs/da_DK/projects.lang b/htdocs/langs/da_DK/projects.lang
    index b7dbaf6ec59..2d25aecbcc7 100644
    --- a/htdocs/langs/da_DK/projects.lang
    +++ b/htdocs/langs/da_DK/projects.lang
    @@ -10,13 +10,13 @@ PrivateProject=Projekt kontakter
     ProjectsImContactFor=Projekter Jeg er udtrykkeligt en kontaktperson af
     AllAllowedProjects=Alt projekt jeg kan læse (mine + offentlige)
     AllProjects=Alle projekter
    -MyProjectsDesc=This view is limited to projects you are a contact for
    +MyProjectsDesc=Denne oversigt er begrænset til projekter, du er kontakt til
     ProjectsPublicDesc=Dette synspunkt præsenterer alle projekter du får lov til at læse.
     TasksOnProjectsPublicDesc=Denne visning præsenterer alle opgaver på projekter, som du må læse.
     ProjectsPublicTaskDesc=Dette synspunkt præsenterer alle projekter og opgaver, som du får lov til at læse.
     ProjectsDesc=Dette synspunkt præsenterer alle projekter (din brugertilladelser give dig tilladelse til at se alt).
     TasksOnProjectsDesc=Denne visning præsenterer alle opgaver på alle projekter (dine brugerrettigheder giver dig tilladelse til at se alt).
    -MyTasksDesc=This view is limited to projects or tasks you are a contact for
    +MyTasksDesc=Denne oversigt er begrænset til projekter eller opgaver, som du er kontakt til
     OnlyOpenedProject=Kun åbne projekter er synlige (projekter i udkast eller lukket status er ikke synlige).
     ClosedProjectsAreHidden=Afsluttede projekter er ikke synlige.
     TasksPublicDesc=Dette synspunkt præsenterer alle projekter og opgaver, som du får lov til at læse.
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Er du sikker på, at du vil slette dette projekt?
     ConfirmDeleteATask=Er du sikker på, at du vil slette denne opgave?
     OpenedProjects=Åbne projekter
     OpenedTasks=Åbn opgaver
    -OpportunitiesStatusForOpenedProjects=Muligheder Antal åbne projekter efter status
    -OpportunitiesStatusForProjects=Muligheder antal projekter efter status
    +OpportunitiesStatusForOpenedProjects=Leder mængden af ​​åbne projekter efter status
    +OpportunitiesStatusForProjects=Leder mængden af ​​projekter efter status
     ShowProject=Vis projekt
     ShowTask=Vis opgave
     SetProject=Indstil projekt
     NoProject=Intet projekt defineret
    -NbOfProjects=Nb af projekter
    -NbOfTasks=Nb af opgaver
    +NbOfProjects=Antal projekter
    +NbOfTasks=Antal opgaver
     TimeSpent=Tid brugt
     TimeSpentByYou=Tid brugt af dig
     TimeSpentByUser=Tid brugt af brugeren
    @@ -55,7 +55,7 @@ TasksOnOpenedProject=Opgaver på åbne projekter
     WorkloadNotDefined=Arbejdsbyrden er ikke defineret
     NewTimeSpent=Tid brugt
     MyTimeSpent=Min tid
    -BillTime=Bill the time spent
    +BillTime=Fakturer tidsforbruget
     Tasks=Opgaver
     Task=Opgave
     TaskDateStart=Opgave startdato
    @@ -77,23 +77,24 @@ Time=Tid
     ListOfTasks=Liste over opgaver
     GoToListOfTimeConsumed=Gå til listen over tid forbrugt
     GoToListOfTasks=Gå til listen over opgaver
    -GoToGanttView=Go to Gantt view
    +GoToGanttView=Gå til Gantt visning
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Liste over tilbud forbundet med projektet
    -ListOrdersAssociatedProject=Liste over kundeordrer i forbindelse med projektet
    -ListInvoicesAssociatedProject=Liste over kundefakturaer i forbindelse med projektet
    -ListPredefinedInvoicesAssociatedProject=Liste over fakturaer til kundemaler i forbindelse med projektet
    -ListSupplierOrdersAssociatedProject=Liste over leverandørordrer i forbindelse med projektet
    -ListSupplierInvoicesAssociatedProject=Liste over leverandørfakturaer knyttet til projektet
    -ListContractAssociatedProject=Liste over kontrakter i forbindelse med projektet
    -ListShippingAssociatedProject=Liste over afskibninger i forbindelse med projektet
    -ListFichinterAssociatedProject=Liste over interventioner i forbindelse med projektet
    -ListExpenseReportsAssociatedProject=Liste over udgiftsrapporter tilknyttet projektet
    -ListDonationsAssociatedProject=Liste over donationer i forbindelse med projektet
    -ListVariousPaymentsAssociatedProject=Liste over diverse betalinger forbundet med projektet
    -ListActionsAssociatedProject=Liste over begivenheder i forbindelse med projektet
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=Liste over tid, der indtages på projektets opgaver
    -ListTaskTimeForTask=List of time consumed on task
    +ListTaskTimeForTask=Liste over tid forbrugt på opgaven
     ActivityOnProjectToday=Aktivitet på projektet i dag
     ActivityOnProjectYesterday=Aktivitet på projektet i går
     ActivityOnProjectThisWeek=Aktivitet på projektet i denne uge
    @@ -101,12 +102,12 @@ ActivityOnProjectThisMonth=Aktivitet på projektet i denne måned
     ActivityOnProjectThisYear=Aktivitet på projektet i år
     ChildOfProjectTask=Barn af projekt / opgave
     ChildOfTask=Opgavebarn
    -TaskHasChild=Task has child
    +TaskHasChild=Opgave har barn
     NotOwnerOfProject=Ikke ejer af denne private projekt
     AffectedTo=Påvirkes i
     CantRemoveProject=Dette projekt kan ikke fjernes, da det er der henvises til nogle andre objekter (faktura, ordrer eller andet). Se referers fane.
     ValidateProject=Validér projet
    -ConfirmValidateProject=Er du sikker på, at du vil validere dette projekt?
    +ConfirmValidateProject=Er du sikker på, at du vil bekræfte dette projekt?
     CloseAProject=Luk projekt
     ConfirmCloseAProject=Er du sikker på at du vil lukke dette projekt?
     AlsoCloseAProject=Luk også projektet (hold det åbent, hvis du stadig skal følge produktionsopgaverne på det)
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Knyttet til tredjemand
     TaskIsNotAssignedToUser=Opgave ikke tildelt brugeren. Brug knappen '<strong> %s </ strong>' for at tildele opgaven nu.
     ErrorTimeSpentIsEmpty=Tilbragte Tiden er tom
     ThisWillAlsoRemoveTasks=Denne handling vil også slette alle opgaver i projektet <b>(%s</b> opgaver i øjeblikket), og alle indgange af tid.
    -IfNeedToUseOhterObjectKeepEmpty=Hvis nogle objekter (faktura, ordre, ...), der tilhører en anden tredjepart, skal knyttet til projektet for at skabe, holde denne tomme for at få projektet er flere tredjeparter.
    +IfNeedToUseOtherObjectKeepEmpty=Hvis nogle objekter (faktura, ordre, ...), der tilhører en anden tredjepart, skal knyttet til projektet for at skabe, holde denne tomme for at få projektet er flere tredjeparter.
     CloneProject=Klonprojekt
     CloneTasks=Klonopgaver
     CloneContacts=Klon kontakter
    @@ -141,16 +142,16 @@ ProjectReportDate=Skift opgaver datoer i henhold til ny projekt startdato
     ErrorShiftTaskDate=Det er umuligt at skifte arbejdsdato i henhold til ny projekt startdato
     ProjectsAndTasksLines=Projekter og opgaver
     ProjectCreatedInDolibarr=Projekt %s oprettet
    -ProjectValidatedInDolibarr=Project %s validated
    +ProjectValidatedInDolibarr=Projekt %s bekræftet
     ProjectModifiedInDolibarr=Projekt %s ændret
     TaskCreatedInDolibarr=Opgave %s oprettet
     TaskModifiedInDolibarr=Opgave %s ændret
     TaskDeletedInDolibarr=Opgave %s slettet
    -OpportunityStatus=Mulighed for status
    +OpportunityStatus=Lederstatus
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Muligheds sandsynlighed
    +OpportunityProbability=Ledsandsynlighed
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Mulighed beløb
    +OpportunityAmount=Blybeløb
     OpportunityAmountShort=Opp. beløb
     OpportunityAmountAverageShort=Gennemsnitlig oppe. beløb
     OpportunityAmountWeigthedShort=Vægtet oppe. beløb
    @@ -167,12 +168,13 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Bidragyder
     SelectElement=Vælg element
     AddElement=Link til element
     # Documents models
    -DocumentModelBeluga=Projektskabelon for oversigt over objekter
    -DocumentModelBaleine=Projektrapport skabelon til opgaver
    +DocumentModelBeluga=Projektdokumentskabelon for oversigt over objekter
    +DocumentModelBaleine=Projektdokumentskabelon til opgaver
    +DocumentModelTimeSpent=Projektrapport skabelon for brugt tid
     PlannedWorkload=Planlagt arbejdsbyrde
     PlannedWorkloadShort=arbejdsbyrde
     ProjectReferers=Relaterede emner
    -ProjectMustBeValidatedFirst=Projektet skal valideres først
    +ProjectMustBeValidatedFirst=Projektet skal bekræftes først
     FirstAddRessourceToAllocateTime=Tildel en brugerressource til opgaven for at allokere tid
     InputPerDay=Indgang pr. Dag
     InputPerWeek=Indgang pr. Uge
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projekter med denne bruger som kontaktperson
     TasksWithThisUserAsContact=Opgaver tildelt denne bruger
     ResourceNotAssignedToProject=Ikke tildelt til projekt
     ResourceNotAssignedToTheTask=Ikke tildelt opgaven
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Tid brugt af
     TasksAssignedTo=Opgaver tildelt
     AssignTaskToMe=Tildel opgave til mig
    @@ -189,26 +192,27 @@ AssignTaskToUser=Tildel opgave til %s
     SelectTaskToAssign=Vælg opgave for at tildele ...
     AssignTask=Tildel
     ProjectOverview=Oversigt
    -ManageTasks=Brug projekter til at følge opgaver og tid
    -ManageOpportunitiesStatus=Brug projekter til at følge leads / opportunuties
    -ProjectNbProjectByMonth=Nb af oprettede projekter pr. Måned
    -ProjectNbTaskByMonth=Nb af oprettede opgaver efter måned
    -ProjectOppAmountOfProjectsByMonth=Antal muligheder pr. Måned
    -ProjectWeightedOppAmountOfProjectsByMonth=Vægtet antal muligheder pr. Måned
    -ProjectOpenedProjectByOppStatus=Åbn projekt / led efter mulighedstilstand
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
    +ManageOpportunitiesStatus=Brug projekter til at følge potentielle kunder / nye salgsmuligheder
    +ProjectNbProjectByMonth=Antal oprettet projekter pr. Måned
    +ProjectNbTaskByMonth=Antal oprettet opgaver efter måned
    +ProjectOppAmountOfProjectsByMonth=Mængden af ​​kundeemner pr. Måned
    +ProjectWeightedOppAmountOfProjectsByMonth=Vægtet antal kundeemner pr. Måned
    +ProjectOpenedProjectByOppStatus=Åbn projekt / bly med blystatus
     ProjectsStatistics=Statistik over projekter / ledere
     TasksStatistics=Statistik over projekt / hovedopgaver
     TaskAssignedToEnterTime=Opgave tildelt. Indtastning af tid på denne opgave skal være muligt.
     IdTaskTime=Id opgave tid
     YouCanCompleteRef=Hvis du vil udfylde referencen med nogle oplysninger (for at bruge den som søgefiltre), anbefales det at tilføje et tegn til at adskille det, så den automatiske nummerering fungerer stadig korrekt for de næste projekter. For eksempel %s-ABC. Du kan også foretrække at tilføje søge nøgler til etiket. Men bedste praksis kan være at tilføje et dedikeret felt, også kaldet komplementære attributter.
     OpenedProjectsByThirdparties=Åbne projekter af tredjeparter
    -OnlyOpportunitiesShort=Kun muligheder
    -OpenedOpportunitiesShort=Åben muligheder
    -NotAnOpportunityShort=Ikke en mulighed
    -OpportunityTotalAmount=Muligheder samlede beløb
    -OpportunityPonderatedAmount=Muligheder vægtet beløb
    -OpportunityPonderatedAmountDesc=Muligheder beløbet vægtet med sandsynlighed
    -OppStatusPROSP=prospektering
    +OnlyOpportunitiesShort=Kun fører
    +OpenedOpportunitiesShort=Åbne kundeemner
    +NotOpenedOpportunitiesShort=Ikke åbne ledninger
    +NotAnOpportunityShort=Ikke en ledelse
    +OpportunityTotalAmount=Samlet antal ledere
    +OpportunityPonderatedAmount=Vægtet antal ledninger
    +OpportunityPonderatedAmountDesc=Potentielle kunder beløbet vægtet med sandsynlighed
    +OppStatusPROSP=Prospection
     OppStatusQUAL=Kvalifikation
     OppStatusPROPO=Tilbud
     OppStatusNEGO=negociation
    @@ -220,11 +224,13 @@ AllowToLinkFromOtherCompany=Tillad at linke projekt fra andet firma <br> <br> <u
     LatestProjects=Seneste %s projekter
     LatestModifiedProjects=Seneste %s ændrede projekter
     OtherFilteredTasks=Andre filtrerede opgaver
    -NoAssignedTasks=No assigned tasks (assign project/tasks the current user from the top select box to enter time on it)
    +NoAssignedTasks=Ingen tildelte opgaver (tildel projekt / opgaver den aktuelle bruger fra den øverste valgboks for at indtaste tid på den)
     # Comments trans
     AllowCommentOnTask=Tillad brugernes kommentarer til opgaver
     AllowCommentOnProject=Tillad brugernes kommentarer til projekter
    -DontHavePermissionForCloseProject=You do not have permissions to close the project %s
    -DontHaveTheValidateStatus=The project %s must be open to be closed
    -RecordsClosed=%s project(s) closed
    -SendProjectRef=Information project %s
    +DontHavePermissionForCloseProject=Du har ikke tilladelser til at lukke projektet %s
    +DontHaveTheValidateStatus=Projektet %s skal være åbent for at blive lukket
    +RecordsClosed=%s projekt (er) lukket
    +SendProjectRef=Informationsprojekt %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Modul 'Betaling af lønninger til medarbejdere' skal være i stand til at definere medarbejder timeprisen for at få tiden brugt til at blive værdieret
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/da_DK/propal.lang b/htdocs/langs/da_DK/propal.lang
    index 5f495cdafa9..32737446bff 100644
    --- a/htdocs/langs/da_DK/propal.lang
    +++ b/htdocs/langs/da_DK/propal.lang
    @@ -9,7 +9,7 @@ PdfCommercialProposalTitle=Tilbud
     ProposalCard=Oversigt over tilbud
     NewProp=Nye tilbud
     NewPropal=Nyt tilbud
    -Prospect=Prospect
    +Prospect=Potentiel kunde
     DeleteProp=Slet tilbud
     ValidateProp=Godkend tilbud
     AddProp=Opret tilbud
    @@ -33,7 +33,7 @@ PropalStatusSigned=Underskrevet (til bill)
     PropalStatusNotSigned=Ikke underskrevet (lukket)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Udkast
    -PropalStatusValidatedShort=valideret
    +PropalStatusValidatedShort=Bekræftet (åben)
     PropalStatusClosedShort=Lukket
     PropalStatusSignedShort=Underskrevet
     PropalStatusNotSignedShort=Ikke underskrevet
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s blev ikke fundet
     AddToDraftProposals=Tilføj skabelon
     NoDraftProposals=Ingen skabeloner
     CopyPropalFrom=Opret tilbud ved at kopiere eksisterende tilbud
    -CreateEmptyPropal=Opret tomt tilbud eller fra listen med varer/ydelser
    +CreateEmptyPropal=Opret tomt kommercielt forslag eller fra listen over produkter / tjenester
     DefaultProposalDurationValidity=Standard gyldighedstid for tilbud (i dage)
    -UseCustomerContactAsPropalRecipientIfExist=Brug kundens kontaktadresse, hvis defineret i stedet for tredjepart-adresse som modtageradresse for tilbud
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Klon tilbud
     ConfirmClonePropal=Er du sikker på, du vil klone tilbuddet <b>%s</b>?
     ConfirmReOpenProp=Er du sikker på du vil genåbne tilbuddet <b>%s</b>?
    @@ -75,9 +75,10 @@ AvailabilityTypeAV_1M=1 måned
     TypeContact_propal_internal_SALESREPFOLL=Repræsentant for opfølgning af tilbud
     TypeContact_propal_external_BILLING=Kundefaktura kontakt
     TypeContact_propal_external_CUSTOMER=Kundekontakt for opfølgning af tilbud
    -TypeContact_propal_external_SHIPPING=Customer contact for delivery
    +TypeContact_propal_external_SHIPPING=Kundekontakt for levering
     # Document models
     DocModelAzurDescription=En komplet tilbudskabelon (logo. ..)
    +DocModelCyanDescription=En komplet tilbudskabelon (logo. ..)
     DefaultModelPropalCreate=Oprettelse af skabelon
     DefaultModelPropalToBill=Skabelon, der skal benyttes, når et tilbud lukkes (med fakturering)
     DefaultModelPropalClosed=Skabelon, der skal benyttes, når et tilbud lukkes (uden fakturering)
    diff --git a/htdocs/langs/da_DK/website.lang b/htdocs/langs/da_DK/website.lang
    index 3e1955ef236..e8d3a98377d 100644
    --- a/htdocs/langs/da_DK/website.lang
    +++ b/htdocs/langs/da_DK/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kode
    -WebsiteSetupDesc=Opret her så meget adgang som antallet af forskellige hjemmesider, du har brug for. Gå derefter ind i menuen Websites for at redigere dem.
    +WebsiteSetupDesc=Opret her de websteder, du vil bruge. Gå derefter ind i menuen Websites for at redigere dem.
     DeleteWebsite=Slet websted
    -ConfirmDeleteWebsite=Er du sikker på, at du vil slette dette websted. Alle dens sider og indhold vil også blive fjernet.
    +ConfirmDeleteWebsite=Er du sikker på, at du vil slette dette websted? Alle dens sider og indhold vil også blive fjernet.
     WEBSITE_TYPE_CONTAINER=Type side / container
    -WEBSITE_PAGE_EXAMPLE=Web page to use as example
    +WEBSITE_PAGE_EXAMPLE=Webside til brug som eksempel
     WEBSITE_PAGENAME=Sidens navn / alias
    -WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALT=Alternative sidenavne / aliaser
    +WEBSITE_ALIASALTDesc=Brug her en liste over andre navne / aliaser, så siden kan også fås ved hjælp af disse andre navne / aliaser (for eksempel det gamle navn efter omdøbning af aliaset for at holde tilbagekobling på gamle link / navnearbejde). Syntaks er: <br> alternativnavn1, alternativnavn2, ...
     WEBSITE_CSS_URL=URL for ekstern CSS-fil
     WEBSITE_CSS_INLINE=CSS-fil indhold (fælles for alle sider)
     WEBSITE_JS_INLINE=Javascript fil indhold (fælles for alle sider)
     WEBSITE_HTML_HEADER=Tilføjelse nederst på HTML-overskrift (fælles for alle sider)
     WEBSITE_ROBOT=Robotfil (robots.txt)
    -WEBSITE_HTACCESS=Websted. Htaccess-fil
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML-overskrift (kun for denne side)
     PageNameAliasHelp=Navnet eller aliaset på siden. <br> Dette alias bruges også til at oprette en SEO-URL, når webstedet er kørt fra en virtuel vært på en webserver (som Apacke, Nginx, ...). Brug knappen "<strong> %s </strong>" for at redigere dette alias.
     EditTheWebSiteForACommonHeader=Bemærk: Hvis du vil definere en personlig "Header" for alle sider, skal du redigere din "Header" på website niveau i stedet for på siden / containeren.
     MediaFiles=Mediebibliotek
    -EditCss=Rediger Style / CSS eller HTML header
    +EditCss=Rediger webstedets egenskaber
     EditMenu=Rediger menu
     EditMedias=Rediger medier
    -EditPageMeta=Rediger Meta
    +EditPageMeta=Rediger side / container egenskaber
    +EditInLine=Rediger inline
     AddWebsite=Tilføj hjemmeside
     Webpage=Webside / container
     AddPage=Tilføj side / container
     HomePage=Hjemmeside
     PageContainer=Side / beholder
    -PreviewOfSiteNotYetAvailable=Forhåndsvisning af dit websted <strong> %s </strong> endnu ikke tilgængeligt. Du skal først tilføje en side.
    +PreviewOfSiteNotYetAvailable=Forhåndsvisning af dit websted <strong> %s </ strong> endnu ikke tilgængeligt. Du skal først <strong> Importer en fuld hjemmeside skabelon </ strong> 'eller bare <strong> Tilføj en side / container </ strong>'.
     RequestedPageHasNoContentYet=Den ønskede side med id %s har intet indhold endnu, eller cache-filen .tpl.php blev fjernet. Rediger indholdet på siden for at løse dette.
    +SiteDeleted=Webstedet '%s' slettet
     PageContent=Side / Indhold
     PageDeleted=Side / Indenhold '%s' af hjemmesiden %s slettet
     PageAdded=Side / Indhold '%s' tilføjet
    @@ -36,49 +39,57 @@ ViewPageInNewTab=Se side i ny fane
     SetAsHomePage=Angiv som hjemmeside
     RealURL=Rigtig webadresse
     ViewWebsiteInProduction=Se websitet ved hjælp af hjemmesider
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    -CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
    +SetHereVirtualHost=<u> Brug med Apache / NGinx /...</ u> <br> Hvis du kan oprette en dedikeret Virtual Host med PHP aktiveret og en Root-mappe på din webserver (Apache, Nginx, ...) <br> <strong> %s </ strong> Skriv derefter her det virtuelle værtsnavn, du har oprettet, så forhåndsvisningen kan også gøres ved hjælp af denne dedikerede webserveradgang i stedet for kun at bruge Dolibarr-serveren.
    +YouCanAlsoTestWithPHPS=<u> Brug med PHP-integreret server </ u> <br> På udvikler miljø kan du helst prøve webstedet med den indbyggede PHP-server (PHP 5.5 påkrævet) ved at køre <br> <strong> php -S 0.0. 0,0: 8080 -t %s </ strong>
    +CheckVirtualHostPerms=Kontroller også, at den virtuelle vært har tilladelse <strong> %s </strong> på filer til <br> <strong> %s</strong>
     ReadPerm=Læs
    -WritePerm=Write
    -PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
    -PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
    +WritePerm=Skriv
    +PreviewSiteServedByWebServer=<u> Se %s i en ny fane. </u> <br> <br> %s vil blive serveret af en ekstern webserver (som Apache, Nginx, IIS). Du skal installere og konfigurere denne server før du peger på biblioteket: <br> <strong> %s </strong> <br> URL serveret af ekstern server: <br> <strong> %s </strong>
    +PreviewSiteServedByDolibarr=<u> Preview %s i en ny fane. </ u> <br> <br> %s vil blive serveret af Dolibarr server, så det behøver ikke nogen ekstra webserver (som Apache, Nginx, IIS), der skal installeres. < br> Ubelejligt er, at webadressen på sider ikke er brugervenlige og begynder med din Dolibarr-sti. <br> URL betjent af Dolibarr: <br> <strong> %s </ strong> <br> <br> Sådan bruger du din egen ekstern webserver til at tjene dette websted, opret en virtuel vært på din webserver, der peger på biblioteket <br> <strong> %s </ strong>, og indtast derefter navnet på denne virtuelle server og klik på den anden preview-knap .
     VirtualHostUrlNotDefined=URL til den virtuelle vært, der serveres af en ekstern webserver, der ikke er defineret
     NoPageYet=Ingen sider endnu
    +YouCanCreatePageOrImportTemplate=Du kan oprette en ny side eller importere en fuld hjemmeside skabelon
     SyntaxHelp=Hjælp til specifikke syntax tips
     YouCanEditHtmlSourceckeditor=Du kan redigere HTML-kildekode ved hjælp af knappen "Kilde" i editoren.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Klon side / container
     CloneSite=Klon website
    -SiteAdded=Websted tilføjet
    +SiteAdded=Website added
     ConfirmClonePage=Indtast venligst kode / alias for ny side, og hvis det er en oversættelse af den klonede side.
     PageIsANewTranslation=Den nye side er en oversættelse af den aktuelle side?
     LanguageMustNotBeSameThanClonedPage=Du klon en side som en oversættelse. Sproget på den nye side skal være anderledes end sproget på kildesiden.
     ParentPageId=Forældre side id
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Opret side / container ved at hente side fra ekstern webadresse ...
    -OrEnterPageInfoManually=Eller opret en tom side fra bunden ...
    +OrEnterPageInfoManually=Eller opret side fra bunden eller fra en sideskabelon ...
     FetchAndCreate=Hent og Opret
    -ExportSite=Eksport sted
    +ExportSite=Eksporter hjemmeside
    +ImportSite=Importer websider skabelon
     IDOfPage=Side Id
     Banner=Banner
     BlogPost=Blogindlæg
    -WebsiteAccount=Websted konto
    -WebsiteAccounts=Webstedkonti
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Opret websitet konto
     BackToListOfThirdParty=Tilbage til listen for tredjepart
     DisableSiteFirst=Deaktiver hjemmesiden først
     MyContainerTitle=Min hjemmeside titel
     AnotherContainer=En anden beholder
    -WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
    -WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
    -YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    -OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
    -GrabImagesInto=Grab also images found into css and page.
    -ImagesShouldBeSavedInto=Images should be saved into directory
    -WebsiteRootOfImages=Root directory for website images
    -SubdirOfPage=Sub-directory dedicated to page
    -AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
    -CorporateHomePage=Corporate Home page
    -EmptyPage=Empty page
    +WEBSITE_USE_WEBSITE_ACCOUNTS=Aktivér webstedets kontobord
    +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Aktivér tabellen til at gemme websitekonti (login / pass) for hver hjemmeside / tredjepart
    +YouMustDefineTheHomePage=Du skal først definere standard startside
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
    +OnlyEditionOfSourceForGrabbedContent=Kun udgave af HTML-kilde er mulig, når indhold blev taget fra et eksternt websted
    +GrabImagesInto=Grib også billeder fundet i css og side.
    +ImagesShouldBeSavedInto=Billeder skal gemmes i biblioteket
    +WebsiteRootOfImages=Rodbibliotek for website billeder
    +SubdirOfPage=Underkatalog dedikeret til side
    +AliasPageAlreadyExists=Alias ​​side <strong> %s </strong>eksisterer allerede
    +CorporateHomePage=Firmahjemmeside
    +EmptyPage=Tom side
    +ExternalURLMustStartWithHttp=Ekstern webadresse skal starte med http: // eller https: //
    +ZipOfWebsitePackageToImport=Zip-fil af webstedspakke
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Intern webadresse for siden
    +ThisPageIsTranslationOf=Denne side / container er oversættelse af
    +ThisPageHasTranslationPages=Denne side / container har oversættelse
    diff --git a/htdocs/langs/de_AT/admin.lang b/htdocs/langs/de_AT/admin.lang
    index c68572335ca..80b7bd81fc3 100644
    --- a/htdocs/langs/de_AT/admin.lang
    +++ b/htdocs/langs/de_AT/admin.lang
    @@ -4,18 +4,15 @@ VersionDevelopment=Entwickler
     SessionId=Sitzungsnummer
     SessionSaveHandler=Sessionmanager
     YourSession=Ihre Anmeldung
    -Sessions=Benutzeranmeldung
     InternalUser=interner Nutzer
     ExternalUser=externer Nutzer
     InternalUsers=interne Nutzer
     ExternalUsers=externe Nutzer
     GUISetup=Anischt
    -SetupArea=Einstellungen
     NextValue=Nächste Wert
     AntiVirusCommandExample=Beispiel für ClamWin: c:\\Program Files (x86)\\ClamWin\\bin\\clamscan.exe <br>Beispiel für ClamAV: /usr/bin/clamscan
     AntiVirusParamExample=Beispiel für ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
     ImportMySqlDesc=Zum Wiederherstellen einer Sicherungsdatei müssen Sie folgenden Befehl über die Kommandozeile ausführen:
    -NumberOfModelFilesFound=Anzahl der in diesen Verzeichnissen gefundenen .odt-Dokumentvorlagen
     Module50Name=Produkte und Services
     Module53Name=Dienstleistung
     Module53Desc=Services-Verwaltung
    @@ -23,9 +20,8 @@ Module70Name=Eingriffe
     Module70Desc=Eingriffsverwaltung
     Module80Name=Sendungen
     Module310Desc=Mitgliederverwaltun
    -Module330Name=Lesezeichen
    -Module330Desc=Bookmarks-Verwaltung
     Module50100Name=Kassa
    +Module50150Name=Kassa
     Permission31=Produkte/Services einsehen
     Permission32=Produkte/Services erstellen/bearbeiten
     Permission34=Produkte/Services löschen
    @@ -37,7 +33,6 @@ Permission67=Eingriffe exportieren
     Permission172=Reisen löschen
     Permission192=Leitungen anlegen
     Permission193=Leitungen verwerfen
    -Permission194=Breitbandverbindungen einsehen
     Permission202=ADSL-Anschlüsse anlegen
     Permission203=Anschlussbestellungen übermitteln
     Permission204=Anschlussbestellungen
    @@ -49,7 +44,6 @@ Permission213=Leitungen aktivieren
     Permission214=Telefonie einstellen
     Permission215=Anbieter einstellen
     Permission252=Andere Benutzer und Gruppen erstellen/bearbeiten (inkl. Rechteverwaltung)
    -Permission253=Passwörter anderer Benutzer ändern
     Permission254=Andere Benutzer löschen oder deaktivieren
     Permission255=Eigene Benutzereinstellungen setzen/bearbeiten
     Permission256=Eigenes Passwort ändern
    @@ -73,7 +67,6 @@ Permission2411=Maßnahmen (Termine oder Aufgaben) Anderer einsehen
     Permission2412=Maßnahmen (Termine oder Aufgaben) Anderer erstellen/bearbeiten
     Permission2413=Maßnahmen (Termine oder Aufgaben) Anderer löschen
     Permission2501=Dokumente hochladen oder löschen
    -VATIsNotUsedDesc=Die vorgeschlagene MwSt. ist standardmäßig 0 für alle Fälle wie Stiftungen, Einzelpersonen oder Kleinunternehmen-
     VirtualServerName=Virtual Server Name
     PhpWebLink=Php Web-Link
     Server=Host
    @@ -89,17 +82,12 @@ DefaultSkin=Standardoberfläche
     DefaultLanguage=Standardsprache (Sprachcode)
     EnableShowLogo=Logo über dem linken Menüs anzeigen
     CompanyCurrency=Firmenwährung
    -DelaysOfToleranceBeforeWarning=Verspätungstoleranz vor Benachrichtigungen
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Verzögerungstoleranz (in Tagen) vor  Benachrichtigung über zu aktivierende Services
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Verzögerungstoleranz (in Tagen) vor Benachrichtigung zu überfälligen Services
    -DocumentModelOdt=Erstellen von Dokumentvorlagen im OpenDocuments-Format (.odt-Dateien für OpenOffice, KOffice, TextEdit, ...)
     WatermarkOnDraftInvoices=Wasserzeichen auf Rechnungsentwürfen (alle, falls leer)
     WatermarkOnDraftProposal=Wasserzeichen für Angebotsentwürfe (alle, falls leer)
     WatermarkOnDraftOrders=Wasserzeichen zu den Entwürfen von Aufträgen (alle, wenn leer)
     InterventionsSetup=Eingriffsmoduleinstellungen
     FreeLegalTextOnInterventions=Freier Rechtstext für Eingriffe
     WatermarkOnDraftInterventionCards=Wasserzeichen auf Intervention Karte Dokumente (alle, wenn leer)
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
     ClickToDialSetup=Click-to-Dial-Moduleinstellungen
     PathToGeoIPMaxmindCountryDataFile=Pfad zur Datei mit Maxmind IP to Country Übersetzung. <br> Beispiel: / usr / local / share / GeoIP / GeoIP.dat
     MailToSendShipment=Sendungen
    diff --git a/htdocs/langs/de_AT/agenda.lang b/htdocs/langs/de_AT/agenda.lang
    index 54235c2b65e..978befe9040 100644
    --- a/htdocs/langs/de_AT/agenda.lang
    +++ b/htdocs/langs/de_AT/agenda.lang
    @@ -1,7 +1,6 @@
     # Dolibarr language file - Source file is en_US - agenda
     Actions=Termine
     LocalAgenda=interner Kalender
    -Events=Termine
     EventsNb=Anzahl der Termine
     ListOfActions=Terminliste
     EventOnFullDay=Terminliste
    diff --git a/htdocs/langs/de_AT/banks.lang b/htdocs/langs/de_AT/banks.lang
    index 26b7f27a744..78f8663fd90 100644
    --- a/htdocs/langs/de_AT/banks.lang
    +++ b/htdocs/langs/de_AT/banks.lang
    @@ -4,6 +4,7 @@ BankAccount=Kontonummer
     BankAccounts=Kontonummern
     AccountRef=Referenznummer
     CashAccount=Kassa
    +CashAccounts=Kassen
     CurrentAccounts=Bargeldkonten
     BankBalance=Saldo
     BalanceMinimalAllowed=minimaler Saldo
    @@ -22,11 +23,8 @@ BankAccountDomiciliation=Konto-Adresse
     LabelBankCashAccount=Bank- oder Kassabezeichnung
     BankType0=Sparkonto\n
     BankType2=Kassa
    -Account=Kontonummer
     IncludeClosedAccount=Geschlossene konten miteinbeziehen
     StatusAccountClosed=geschlossen
     WithdrawalPayment=Widerrufsrecht Zahlung
     ShowCheckReceipt=Zeige überprüfen Einzahlungsbeleg
     Graph=Grafik
    -FutureTransaction=Transaction in futur. Kein Weg zu versöhnen.
    -SelectChequeTransactionAndGenerate=Select / Filter prüft, in die Scheckeinreichung Erhalt gehören und klicken Sie auf &quot;Erstellen&quot;.
    diff --git a/htdocs/langs/de_AT/categories.lang b/htdocs/langs/de_AT/categories.lang
    index 39e26fbf16b..6daa1c3efb2 100644
    --- a/htdocs/langs/de_AT/categories.lang
    +++ b/htdocs/langs/de_AT/categories.lang
    @@ -1,3 +1,2 @@
     # Dolibarr language file - Source file is en_US - categories
     CategoryExistsAtSameLevel=Gleichnamige Kategorie auf diesem Level gefunden
    -DeleteFromCat=Aus dieser Kategorie entfernen
    diff --git a/htdocs/langs/de_AT/companies.lang b/htdocs/langs/de_AT/companies.lang
    index 6563ebabda4..9340f2ca758 100644
    --- a/htdocs/langs/de_AT/companies.lang
    +++ b/htdocs/langs/de_AT/companies.lang
    @@ -7,9 +7,6 @@ Web=Webadresse
     LocalTax1IsUsedES=RE wird
     LocalTax2IsUsedES=IRPF verwendet wird
     ProfId1AR=Prof Id 1 (CUIL)
    -CustomerCode=Kunden-Code
    -CustomerCodeShort=Kunden-Code
     CapitalOf=Hauptstadt von %s
    -NorProspectNorCustomer=Weder Lead noch Kunde
     OthersNotLinkedToThirdParty=Andere, nicht mit einem Partner verknüpfte
     ActivityCeased=geschlossen
    diff --git a/htdocs/langs/de_AT/errors.lang b/htdocs/langs/de_AT/errors.lang
    index c12f8165eaf..38ccb0624ac 100644
    --- a/htdocs/langs/de_AT/errors.lang
    +++ b/htdocs/langs/de_AT/errors.lang
    @@ -4,4 +4,3 @@ ErrorBadUrl=Url %s ist ungültig
     ErrorRecordNotFound=Eintrag nicht gefunden.
     ErrorCashAccountAcceptsOnlyCashMoney=Dies ist ein Bargeldkonto (Kassa) und akzeptiert deshalb nur Bargeldtransaktionen.
     ErrorCustomerCodeAlreadyUsed=Diese Kunden Nr. ist bereits vergeben.
    -WarningUntilDirRemoved=Diese Warnung bleibt so lange aktiv, wie dieses Verzeichnis existiert (nur für Administratoren).
    diff --git a/htdocs/langs/de_AT/help.lang b/htdocs/langs/de_AT/help.lang
    deleted file mode 100644
    index f4f55ee6209..00000000000
    --- a/htdocs/langs/de_AT/help.lang
    +++ /dev/null
    @@ -1,2 +0,0 @@
    -# Dolibarr language file - Source file is en_US - help
    -ToGetHelpGoOnSparkAngels1=Einige Unternehmen bieten eine schnelle (manchmal prompte) und effiziente Online-Unterstützung durch Fernwartung Ihres Computers. Solche Helfer finden Sie auf dieser Website <b>%s</b>
    diff --git a/htdocs/langs/de_AT/other.lang b/htdocs/langs/de_AT/other.lang
    index aeece62e0e6..b53f81005e3 100644
    --- a/htdocs/langs/de_AT/other.lang
    +++ b/htdocs/langs/de_AT/other.lang
    @@ -1,6 +1,5 @@
     # Dolibarr language file - Source file is en_US - other
     DateToBirth=Geburtstdatum
    -Notify_FICHINTER_VALIDATE=Intervention validiert
     Notify_ORDER_SENTBYMAIL=Kunden bestellen per Post geschickt
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Lieferant Bestellung per Post geschickt
     Notify_ORDER_SUPPLIER_VALIDATE=Lieferanten, um validierte
    @@ -9,7 +8,6 @@ Notify_WITHDRAW_TRANSMIT=Transmission Rückzug
     Notify_WITHDRAW_CREDIT=Kreditkarten Rückzug
     Notify_WITHDRAW_EMIT=Isue Rückzug
     Notify_COMPANY_CREATE=Dritter erstellt
    -Notify_BILL_PAYED=Kunden Rechnung bezahlt
     Notify_BILL_CANCEL=Kunden Rechnung storniert
     Notify_BILL_SENTBYMAIL=Kunden Rechnung per Post geschickt
     Notify_BILL_SUPPLIER_VALIDATE=Lieferantenrechnung validiert
    diff --git a/htdocs/langs/de_AT/products.lang b/htdocs/langs/de_AT/products.lang
    index 9b23a8fba00..3957c4a86c0 100644
    --- a/htdocs/langs/de_AT/products.lang
    +++ b/htdocs/langs/de_AT/products.lang
    @@ -19,7 +19,6 @@ SellingPriceHT=Verkaufspreis (netto)
     SellingPriceTTC=Verkaufspreis (brutto)
     MinPrice=Preisuntergrenze
     CantBeLessThanMinPrice=Der aktuelle Verkaufspreis unterschreitet die Preisuntergrenze dieses Produkts (%s ohne MwSt.)
    -ContractStatusClosed=geschlossen
     NoMatchFound=Keine Treffer gefunden
     ProductAssociationList=Liste der verknüpften Produkte/Services: Name des Produkts/des Service (Stückzahl)
     DeleteProduct=Produkt/Service löschen
    diff --git a/htdocs/langs/de_AT/projects.lang b/htdocs/langs/de_AT/projects.lang
    index fa099cac87c..e9fac6a0992 100644
    --- a/htdocs/langs/de_AT/projects.lang
    +++ b/htdocs/langs/de_AT/projects.lang
    @@ -7,7 +7,6 @@ TasksDesc=Diese Ansicht zeigt alle Aufgaben (Ihre Benutzerberechtigung erlaubt I
     NoProject=Kein Projekt definiert
     RefTask=Aufgaben Nr.
     MyActivities=Meine Tätigkeiten
    -ListFichinterAssociatedProject=Liste der mit diesem Projekt verknüpften Eingriffe
     CloseAProject=Schließe Projekt
     ReOpenAProject=Öffne Projekt
     DoNotShowMyTasksOnly=Zeige auch die Aufgaben Anderer
    diff --git a/htdocs/langs/de_CH/admin.lang b/htdocs/langs/de_CH/admin.lang
    index b31fcfa9eba..76c9f612a90 100644
    --- a/htdocs/langs/de_CH/admin.lang
    +++ b/htdocs/langs/de_CH/admin.lang
    @@ -8,8 +8,6 @@ AvailableOnlyOnPackagedVersions=Die lokale Datei für die Integritätsprüfung i
     XmlNotFound=Xml Integritätsdatei der Anwendung ​​nicht gefunden
     SessionSaveHandler=Handler für Sitzungsspeicherung
     ConfirmPurgeSessions=Wollen Sie wirklich alle Sessions beenden ? Dadurch werden alle Benutzer getrennt (ausser Ihnen)
    -NoSessionListWithThisHandler=Anzeige der aktiven Sitzungen mit Ihrer PHP-Konfiguration nicht möglich.
    -ConfirmLockNewSessions=Möchten Sie wirklich alle Sitzungen bis auf Ihre eigene blocken? Nur Benutzer <b>%s</b> kann danach noch eine Verbindung aufbauen.
     ClientCharset=Benutzer-Zeichensatz
     FormToTestFileUploadForm=Formular für das Testen von Datei-Uplads (je nach Konfiguration)
     SecurityFilesDesc=Sicherheitseinstellungen für den Dateiupload definieren.
    @@ -20,8 +18,6 @@ Dictionary=Wörterbücher
     ErrorCodeCantContainZero=Code darf keinen Wert 0 enthalten
     UseSearchToSelectCompanyTooltip=Wenn Sie eine grosse Anzahl von Geschäftspartnern (> 100'000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante COMPANY_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings.
     UseSearchToSelectContactTooltip=Wenn Sie eine grosse Anzahl von Kontakten (> 100.000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante CONTACT_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings.
    -DelaiedFullListToSelectCompany=Warte auf Tastendruck, bevor der Inhalt der Partner-Combo-Liste geladen wird (Dies kann die Leistung verbessern, wenn Sie eine grosse Anzahl von Partnern haben).
    -DelaiedFullListToSelectContact=Warte auf Tastendruck, bevor der Inhalt der Kontakt-Combo-Liste geladen wird (Dies kann die Leistung verbessern, wenn Sie eine grosse Anzahl von Kontakten haben).
     AllowToSelectProjectFromOtherCompany=Erlaube bei den Elementen eines Partners, die Projekte von anderen Partnern zu verlinken
     Space=Raum
     MustBeLowerThanPHPLimit=Hinweis: Ihre PHP-Einstellungen beschränken die Grösse für Dateiuploads auf <b>%s</b>%s
    @@ -45,45 +41,38 @@ ConfirmPurgeAuditEvents=Möchten Sie wirklich alle Sicherheitsereignisse lösche
     ExportMethod=Export-Methode
     ImportMethod=Import-Methode
     IgnoreDuplicateRecords=Fehler durch doppelte Zeilen ignorieren (INSERT IGNORE)
    -BoxesDesc=Boxen sind auf manchen Seiten angezeigte Informationsbereiche. Sie können die Anzeige einer Box einstellen, indem Sie auf die Zielseite klicken und 'Aktivieren' wählen. Zum Ausblenden einer Box klicken Sie einfach auf den Papierkorb.
    -ModulesDesc=Die Module bestimmen, welche Funktionalität in Dolibarr verfügbar ist. Manche Module erfordern zusätzliche Berechtigungen, welche den Benutzern zugewiesen werden muss, nachdem das Modul aktiviert wurde. \nKlicken Sie auf die Schaltfläche on/off, um ein Modul/Anwendung zu aktivieren.
     ModulesMarketPlaceDesc=Sie finden weitere Module auf externen Websites
     ModulesDevelopYourModule=Entwicklen Sie Ihre eigenes Modul/Anwendung
     FreeModule=Kostenlose Module
     NotCompatible=Dieses Modul scheint nicht mit Ihrer Dolibarr Version %s (Min %s - Max %s) kompatibel zu sein.
     CompatibleAfterUpdate=Dieses Modul benötigt eine Update Ihrer Dolibarr Version %s (Min %s - Max %s).
     SeeInMarkerPlace=Siehe im Marktplatz
    -DoliPartnersDesc=Unternehmensliste, die Zusatzmodule oder Funktionen entwicklen können. (Hinweis: Alle Entwickler mit PHP Kentinissen können Dolibarr erweitern)
    -WebSiteDesc=Webseite für die Suche nach weiteren Modulen
     DevelopYourModuleDesc=Einige Lösungen um Ihr eigenes Modul zu entwickeln...
     BoxesActivated=Aktivierte Boxen
     OfficialWebSite=Offizielle Website
     ReferencedPreferredPartners=Bevorzugte Geschäftspartner
     ForAnswersSeeForum=Für alle anderen Fragen / Hilfe, können Sie die Dolibarr Forum: <br> <a href="%s" target="_blank"><b> %s</b></a>
    -HelpCenterDesc1=In diesem Bereich können Sie sich ein Hilfe-Support-Service auf Dolibarr.
     MeasuringUnit=Masseinheit
    -MAIN_MAIL_SMTP_PORT=SMTP-Port (standardmässig in der php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP-Host (standardmässig in php.ini: <b>%s</b>)
    -MAIN_MAIL_EMAIL_FROM=E-Mail-Absender für automatisch erzeugte Mails (standardmässig in php.ini: <b>%s</b>)
    -MAIN_MAIL_EMAIL_STARTTLS=TLS (STARTTLS) Verschlüsselung verwenden
    -SubmitTranslation=Wenn die Übersetzung der Sprache unvollständig ist oder wenn Sie Fehler finden, können Sie können Sie die entsprechenden Sprachdateien im Verzeichnis <b>langs/%s</b> korrigieren und und anschliessend Ihre Änderungen unter  www.transifex.com/dolibarr-association/dolibarr/ teilen.
    +MAIN_MAIL_FORCE_SENDTO=Sende alle Emails an diese Adresse zum Test (statt an die echten Empfänger)
     SubmitTranslationENUS=Sollte die Übersetzung für eine Sprache nicht vollständig sein oder Fehler beinhalten, können Sie die entsprechenden Sprachdateien im Verzeichnis <b>langs/%s</b>  bearbeiten und anschliessend Ihre Änderungen an dolibarr.org/forum oder für Entwickler auf github.com/Dolibarr/dolibarr. übertragen.
     ModuleFamilyCrm=Kundenverwaltung (CRM)
    +InfDirExample=<br>Dann deklariere in <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>\n"#" heisst, die Variablen sind auskommentiert und werden nicht berücksichtigt.\nEntferne einfach "#", um die Variablen scharf zu schalten.
     CallUpdatePage=Zur Aktualisierung der Daten und der Datenbankstruktur gehen Sie zur Seite %s.
     GenericMaskCodes=Sie können ein beliebiges Numerierungsschema wählen. Dieses Schema könnte z.B. so aussehen:<br><b>{000000}</b> steht für eine 6-stellige Nummer, die sich bei jedem neuen %s automatisch erhöht. Wählen Sie die Anzahl der Nullen je nach gewünschter Nummernlänge. Der Zähler füllt sich automatisch bis zum linken Ende mit Nullen um das gewünschte Format abzubilden. <br><b>{000000+000}</b> führt zu einem ähnlichen Ergebnis, allerdings mit einem Wertsprung in Höhe des Werts rechts des Pluszeichens, der beim ersten %s angewandt wird. <br><b>{000000@x}</b> wie zuvor, jedoch stellt sich der Zähler bei Erreichen des Monats x (zwischen 1 und 12) automatisch auf 0 zurück. Ist diese Option gewählt und x hat den Wert 2 oder höher, ist die Folge {mm}{yy} or {mm}{yyyy} ebenfalls erfoderlich. <br><b>{dd}</b> Tag (01 bis 31).<br><b>{mm}</b> Monat (01 bis 12).<br><b>{yy}</b>, <b>{yyyy}</b> or <b>{y}</b> Jahreszahl 1-, 2- oder 4-stellig. <br>
     GenericMaskCodes2=<b>{cccc}</b> der Kunden-Code mit n Zeichen<br><b>{cccc000}</b> der Kunden-Code mit n Zeichen, gefolgt von der dem Kunden zugeordneten Partner ID. Dieser Zähler wird gleichzeitig mit dem Globalen Zähler zurückgesetzt.<br><b>{tttt}</b> Die Partner ID mit n Zeichen (siehe unter Einstellungen->Stammdaten->Arten von Partnern). Wenn diese Option aktiv ist, wird für jede Partnerart ein separater Zähler geführt.<br>
     GenericMaskCodes4b=<u>Beispiel für Dritte erstellt am 2007-03-01:</u> <br>
     UMaskExplanation=Über diesen Parameter können Sie die standardmässigen Dateiberechtigungen für vom System erzeugte/verwaltete Inhalte festlegen. <br>Erforderlich ist ein Oktalwert (0666 bedeutet z.B. Lesen und Schreiben für alle). <br>Auf Windows-Umgebungen haben diese Einstellungen keinen Effekt.
    -ConfirmPurge=Möchten Sie wirklich endgültig löschen?<br> Alle Dateien werden unwiderbringlich gelöscht (Attachments, Angebote, Rechnungen usw.)
    +SeeWikiForAllTeam=Für die ganze Liste aller Rollen und Ihrer Organisation besuchst du die Wikiseiten.
     DescWeather=Die folgenden Diagramme werden auf der Übersicht Startseite angezeigt, wenn die entsprechenden Toleranzwerte erreicht werden:
    -HideLocalTaxOnPDF=Unterdrücke %s Satz in der PDF Steuerspalte
    +HideAnyVATInformationOnPDF=Verstecke MWST - Informationen im PDF.
    +PDFRulesForSalesTax=Regeln für die MWST
     HideDetailsOnPDF=Unterdrücke Produktzeilen in generierten PDF
     PlaceCustomerAddressToIsoLocation=ISO Position für die Kundenadresse verwenden
    -ButtonHideUnauthorized=Buttons für Nicht-Admins ausblenden anstatt ausgrauen?
     OldVATRates=Alter MwSt. Satz
     NewVATRates=Neuer MwSt. Satz
    +HtmlText=HTML
     Float=Gleitkommazahl
    -ExtrafieldRadio=Radio Button (Nur eine Auswahl möglich)
    +ComputedFormulaDesc=Du kannst hier Formeln mit weiteren Objekteigenschaften oder in PHP eingeben, um dynamisch berechnete Werte zu generieren. Alle PHP konformen Formeln sind erlaubt inkl dem Operator "?:" und folgende globale Objekte:<strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>Obacht</strong>: Vielleicht sind nur einige Eigenschaften von $object verfügbar. Wenn dir eine Objekteigenschaft fehlt, packe das gesamte Objekt einfach in deine Formel, wie im Beispiel zwei.<br>"Computed field" heisst, du kannst nicht selber Werte eingeben. Wenn Syntakfehler vorliegen, liefert die Formel ggf. gar nichts retour.<br><br>Ein Formelbeispiel:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Beispiel zum Neuladen eines Objektes<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Eine Weitere Variante zum erzwungenen Neuladen des Objekts und seiner Eltern:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Übergeordnetes Projekt nicht gefunden...'
     LibraryToBuildPDF=Verwendete Bibliothek zur PDF-Erzeugung
     SetAsDefault=Als Standard definieren
     ConfirmEraseAllCurrentBarCode=Wirklich alle aktuellen Barcode-Werte löschen?
    @@ -91,28 +80,18 @@ DisplayCompanyManagers=Anzeige der Namen der Geschäftsführung
     Use3StepsApproval=Standardmässig, Einkaufsaufträge müssen durch zwei unterschiedlichen Benutzer erstellt und freigegeben werden (ein Schritt/Benutzer zum Erstellen und ein Schritt/Benutzer für die Freigabe). Beachten Sie, wenn ein Benutzer beide Rechte hat - zum Erstellen und Freigeben, dann reicht ein Benutzer für diesen Vorgang. Optional können Sie einen zusätzlichen Schritt/User für die Freigabe einrichten, wenn der Betrag einen bestimmten dedizierten Wert übersteigt (wenn der Betrag höher wird, werden 3 Stufen notwendig: 1=Validierung, 2=erste Freigabe und 3=Gegenfreigabe.<br>Lassen Sie das Feld leer, wenn eine Freigabe (2 Schritte) ausreicht; tragen Sie einen sehr niedrigen Wert (0.1) ein, wenn eine zweite Freigabe notwendig ist.
     UseDoubleApproval=3-fach Verarbeitungsschritte verwenden, wenn der Betrag (ohne Steuer) höher ist als ...
     ClickToShowDescription=Klicken um die Beschreibung zu sehen
    -DependsOn=Dieses Modul benötigt die folgenden Module
    -PageUrlForDefaultValues=Hier muss die relative URL der Seite eingetragen werden. Wenn Parameter in der URL angegeben werden, dann werden alle Vorgabewerte auf den gleichen Wert gesetzt. Beispiele:
    -GoIntoTranslationMenuToChangeThis=Eine Übersetzung wurde für diesen Schlüssel gefunden, um die Übersetzung anzupassen, gehen Sie ins Menü "Home->Setup->Überseztungen"
     WarningSettingSortOrder=Warnung: Änderungen an der Standardsortierreihenfolge können zu Fehlern führen, falls das betreffende Feld nicht vorhanden ist. Falls dies passiert, entfernen sie das betreffende Feld oder stellen die den Defaultwert wieder her.
     AttachMainDocByDefault=Setzen Sie diesen Wert auf 1, wenn Sie das Hauptdokument standardmässig per E-Mail anhängen möchten (falls zutreffend).
    -Module1Name=Geschäftspartner
     Module1Desc=Geschäftspartner- und Kontakteverwaltung (Kunden, Leads, ...)
     Module20Desc=Angeboteverwaltung
     Module49Desc=Bearbeiterverwaltung
     Module70Name=Arbeitseinsätze
     Module80Name=Auslieferungen
    -Module240Desc=Werkzeug zum Datenexport (mit Assistent)
    -Module250Desc=Werkzeug zum Dateninport (mit Assistent)
    -Module330Name=Lesezeichen
    -Module330Desc=Lesezeichenverwaltung
     Module1200Desc=Mantis-Integation
    -Module2000Desc=Texte mit dem WYSIWYG Editor bearbeiten (Basierend auf CKEditor)
     Module3100Desc=Skypebutton bei Kontakten / Drittparteien / Mitgliedern hinzufügen
     Module50100Desc=Kassenmodul
     Module63000Desc=Resourcen verwalten(Drucker, Autos, Räume,...) diese können dann im Kalender verwendet werden
     Permission26=Angebote schliessen
    -Permission44=Projekte und Aufgaben löschen (gemeinsame Projekte und Projekte, in welchen ich Ansprechpartner bin)
     Permission61=Leistungen ansehen
     Permission62=Leistungen erstellen/bearbeiten
     Permission64=Interventionen löschen
    @@ -134,29 +113,14 @@ Permission525=Darlehens-rechner
     Permission1188=Lieferantenbestellungen schliessen
     Permission2414=Aktionen und Aufgaben anderer exportieren
     Permission59002=Gewinspanne definieren
    -DictionaryCompanyType=Geschäftspartnertyp
    -DictionaryCompanyJuridicalType=Gesellschafts- und Unternehmensformen
     DictionaryCivility=Anrede Bezeichnungen
     DictionaryActions=Arten von Kalenderereignissen
     DictionaryVAT=MwSt.-Sätze
    -DictionaryEMailTemplates=Textvorlagen für Emails
    -DictionaryHolidayTypes=Absenzarten
     SetupSaved=Setup gespeichert
    -BackToDictionaryList=Zurück zur Wörterbuchübersicht
    -VATManagement=MwSt-Verwaltung
    -VATIsUsedDesc=Der standardmässige MwSt.-Satz für die Erstellung von Leads, Rechnungen, Bestellungen, etc. folgt der folgenden, aktiven Regel:<br>Ist der Verkäufer mehrwertsteuerpflichtig, ist die MwSt. standardmässig 0. Ende der Regel.<br>Ist das Verkaufsland gleich dem Einkaufsland, ist die MwSt. standardmässig die MwSt. des Produkts im Verkaufsland. Ende der Regel. <br>Sind Verkäufer und Käufer beide aus Europäischen Mitgliedsstaaten und die Produkte physisch transportfähig (Auto, Schiff, Flugzeug), ist die MwSt. standardmässig 0. (Die MwSt. sollte durch den Käufer beim eigenen Zollamt entrichtet werden, nicht durch den Verkäufer. Ende der Regel.<br>Sind Verkäufer und Käufer beide aus Europäischen Mitgliedsstaaten, der Käufer jedoch kein Unternehmen so ist die MwSt. standardmässig die MwSt. des verkauften Produkts. Ende der Regel.<br>Sind Verkäufer und Käufer beide Unternehmen im Europäischen Gemeinschaftsraum, so ist die MwSt. standardmässig 0. Ende der Regel.<br>Trifft keine der obigen Regeln zu, ist die MwSt. standardmässig 0.
    -VATIsNotUsedDesc=Die vorgeschlagene MwSt. ist standardmässig 0 für alle Fälle wie Stiftungen, Einzelpersonen oder Kleinunternehmen.
    -LocalTax1IsUsedDescES=Die RE Rate standardmässig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel: <br> Wenn te Käufer ist nicht unterworfen RE, RE standardmässig = 0 ist. Ende der Regel. <br> Ist der Käufer unterzogen, um dann die RE RE standardmässig. Ende der Regel. <br>
     LocalTax1IsNotUsedDescES=Standardmässig werden die vorgeschlagenen RE 0 ist. Ende der Regel.
    -LocalTax2IsUsedDescES=Die RE Rate standardmässig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel: <br> Ist der Verkäufer nicht zu IRPF ausgesetzt, dann durch IRPF default = 0. Ende der Regel. <br> Ist der Verkäufer zur IRPF dann der Einkommenssteuer unterworfen standardmässig. Ende der Regel. <br>
     LocalTax2IsNotUsedDescES=Standardmässig werden die vorgeschlagenen IRPF 0 ist. Ende der Regel.
    -LocalTax2IsNotUsedExampleES=In Spanien sind sie bussines nicht der Steuer unterliegen System von Modulen.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Verzögerungstoleranz (in Tagen) vor Warnung für nicht erledigte Ereignisse
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Verzögerungstoleranz (in Tagen) vor Warnung für nicht fristgerecht geschlossene Projekte
    -Delays_MAIN_DELAY_TASKS_TODO=Verzögerungstoleranz (in Tagen) vor Warnung für nicht erledigte Projektaufgaben
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Verzögerungstoleranz (in Tagen), vor Warnung für nicht bearbeitete Bestellungen
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Verzögerungstoleranz (in Tagen) vor  Warnung für abzuschliessende Angebote
    -SetupDescription1=Der Setupbereich erlaubt das konfigurieren ihrer Dolibarr Installation vor der ersten Verwendung.
    +MenuCompanySetup=Firma / Organisation
    +CompanyInfo=Firma / Organisation
     InfoDolibarr=Infos Dolibarr
     InfoBrowser=Infos Browser
     InfoOS=Infos OS
    @@ -164,7 +128,6 @@ InfoWebServer=Infos Webserver
     InfoDatabase=Infos Datenbank
     InfoPHP=Infos PHP
     SystemAreaForAdminOnly=Dieser Bereich steht ausschliesslich Administratoren zur Verfügung. Keine der Benutzerberechtigungen kann dies ändern.
    -TriggersDesc=Trigger sind Dateien, die nach einem Kopieren in das Verzeichnis <b>htdocs/core/triggers</b> das Workflow-Verhalten des Systems beeinflussen. Diese stellen neue, mit Systemereignissen verbundene, Ereignisse dar (Neuer Geschäftspartner angelegt, Rechnung freigegeben, ...).
     TriggerDisabledByName=Trigger in dieser Datei sind durch das <b>-NORUN</b>-Suffix in ihrem Namen deaktviert.
     DictionaryDesc=Definieren Sie hier alle Defaultwerte. Sie können die vordefinierten Werte mit ihren eigenen ergänzen.
     ConstDesc=Diese Seite erlaubt es alle anderen Parameter einzustellen, die auf den vorherigen Seiten nicht verfügbar sind. Dies sind meist reservierte Parameter für Entwickler oder für die erweiterte Fehlersuche. Für eine Liste von Optionen <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="externe Seite - öffnet sich in einem neuen Fenster" target="_blank"> hier überprüfen  </a>.
    @@ -172,20 +135,13 @@ MiscellaneousDesc=Alle anderen sicherheitsrelevanten Parameter werden hier defin
     MAIN_ROUNDING_RULE_TOT=Rundungseinstellung (Für Länder in denen nicht auf 10er basis Gerundet wird. zB. 0.05 damit in 0.05 Schritten gerundet wirb)
     TotalPriceAfterRounding=Gesamtpreis (Netto/MwSt./Brutto) gerundet
     NoEventOrNoAuditSetup=Keine sicherheitsrelevanten Protokollereignisse. Überprüfen Sie die Aktivierung dieser Funktionen unter 'Einstellunge-Sicherheit-Protokoll'.
    -RestoreDesc2=Wiederherstellung von Archive Datei (zip Datei zum Beispiel)\nvom documents Verzeichnis um den documents Datei-Baum im documents verzeichnis in eine neue Dolibarr Installation oder in ein bestehendes Dolibarr Verzeichnis (<b>%s</b>).
     PreviousDumpFiles=generierte Databank Backup Dateien
     DownloadMoreSkins=Weitere grafische Oberflächen/Themes herunterladen
    -ShowVATIntaInAddress=Ausblenden MwSt. Nummer in Adressen auf Dokumenten.
     MeteoStdMod=Standard Modus
    -DefineHereComplementaryAttributes=Definieren Sie hier alle Attribute, die nicht standardmässig vorhanden sind, und in %s unterstützt werden sollen.
     ExtraFieldsSupplierOrdersLines=Ergänzende Attribute (in Bestellungszeile)
     ExtraFieldsThirdParties=Ergänzende Attribute (Geschäftspartner)
     SendmailOptionNotComplete=Achtung, auf einigen Linux-Systemen, E-Mails von Ihrem E-Mail zu senden, sendmail Ausführung Setup muss conatins Option-ba (Parameter mail.force_extra_parameters in Ihre php.ini-Datei). Wenn einige Empfänger niemals E-Mails erhalten, versuchen, diese Parameter mit PHP mail.force_extra_parameters =-ba) zu bearbeiten.
    -AddRefInList=Darstellung Kunden- /Lieferanten- Nr. in Listen (Listbox oder ComboBox) und die meisten von Hyperlinks. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Bevorzugte Kontaktmethode bei Partnern fragen.
    -PasswordGenerationNone=Keine automatische Passwortvorschläge, das Passwort muss manuell eingegeben werden.
     HRMSetup=HRM Modul Einstellungen
    -CompanyIdProfChecker=Berufs-Identifikation einzigartige
     SuggestPaymentByRIBOnAccount=Zahlung per Lastschrift vorschlagen
     SuggestPaymentByChequeToAddress=Zahlung per Scheck vorschlagen
     SupplierPaymentSetup=Lieferantenzahlungen einrichten
    @@ -213,23 +169,15 @@ MemcachedNotAvailable=Kein Cache Anwendung gefunden. \nSie können die Leistung
     MemcachedModuleAvailableButNotSetup=Module memcached für applicative Cache gefunden, aber Setup-Modul ist nicht vollständig.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled..
     ServiceSetup=Leistungen Modul Setup
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Wenn Sie eine grosse Anzahl von Produkten (> 100.000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante PRODUCT_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings.
     SetDefaultBarcodeTypeThirdParties=Standard-Barcode-Typ für Geschäftspartner
     UseUnits=Definieren Sie eine Masseinheit für die Menge während der Auftrags-, Auftragsbestätigungs- oder Rechnungszeilen-Ausgabe
     ErrorUnknownSyslogConstant=Konstante %s ist nicht als Protkoll-Konstante definiert
     FCKeditorForCompany=WYSIWIG Erstellung/Bearbeitung der Firmennformationen und Notizen (ausser Produkte/Services)
     FCKeditorForMail=WYSIWYG Erstellung/Bearbeitung für gesamte Mail (ausser Werkzeuge->Massenmaling)
    -IfYouUsePointOfSaleCheckModule=Wenn Sie ein Point of Sale-Modul (POS-Modul Standard oder andere externe POS-Module) verwenden, kann diese Einstellung von Ihrem Point Of Sale-Modul übersteuert werden. \nDie meisten POS -Module wurden entwickelt, um sofort eine Rechnung zu erstellen und das Lager standardmässig zu verringern, egal welche Optionen hier ausgewählt wurde. \nAlso, wenn Sie während einem Verkauf einen Lagerabgang in Ihrem Point of Sale möchten oder nicht, so müssen sie auch die Konfiguration des POS-Modules überprüfen.
     DetailTitre=Menübezeichner oder Bezeichnungs-Code für Übersetzung
     DetailLangs=Sprachdateiname für Bezeichnungsübersetzung
     OptionVatMode=MwSt. fällig
    -SummaryOfVatExigibilityUsedByDefault=Standardmässiger Zeitpunkt der MwSt.-Fälligkeit in Abhängigkeit zur derzeit gewählten Option:
    -ClickToDialUseTelLinkDesc=Verwenden Sie diese Methode wenn ein Softphone oder eine andere Telefonielösung auf dem Computer ist. Es wird ein "tel:" Link generiert. Wenn Sie eine Serverbasierte Lösung benötigen, setzen Sie dieses Feld auf Nein und geben die notwendigen Daten im nächsten Feld ein.
    -CashDeskThirdPartyForSell=Standardgeschäftspartner für Kassenverkäufe
    -StockDecreaseForPointOfSaleDisabled=Lagerrückgang bei Verwendung von Point of Sale deaktivert
     BookmarkSetup=Lesezeichenmoduleinstellungen
    -BookmarkDesc=Dieses Modul ermöglicht die Verwaltung von Lesezeichen. Ausserdem können Sie hiermit Verknüpfungen zu internen und externen Seiten im linken Menü anlegen.
     NbOfBoomarkToShow=Maximale Anzeigeanzahl Lesezeichen im linken Menü
     ApiSetup=API-Modul-Setup
     ChequeReceiptsNumberingModule=Checknumerierungsmodul
    @@ -244,7 +192,6 @@ MailToSendProposal=Angebote Kunde
     MailToSendIntervention=Arbeitseinsätze
     MailToThirdparty=Geschäftspartner
     ModelModulesProduct=Vorlage für Produktdokumente
    -ToGenerateCodeDefineAutomaticRuleFirst=Um automatisch Barcodenummern zu generieren, muss zuerst ein Nummerierungmodul im Barcodemodul definiert werden.
     SeeSubstitutionVars=Siehe * für eine Liste der Verfügbaren Variablen
     AddRemoveTabs=Tab hinzufügen oder entfernen
     AddBoxes=Box hinzufügen
    @@ -259,5 +206,3 @@ AddOtherPagesOrServices=Andere Seite oder Dienst hinzufügen
     AddModels=Dokument- oder Nummerierungvorlage hinzufügen
     AddSubstitutions=Schlüsselersatzwerte hinzufügen
     ListOfAvailableAPIs=Liste der verfügbaren API's
    -activateModuleDependNotSatisfied=Modul "%s" hängt vom Modul "%s" ab, welches fehlt. Dadurch funktioniert Modul "%1$s" vermutlich nicht richtig. Installieren Sie sicherheitshalber zuerst das Modul "%2$s" oder deaktivieren Sie das Modul "%1$s"
    -CommandIsNotInsideAllowedCommands=Das Kommando ist nicht in der Liste der erlaubten Kommandos, die unter <strong>$dolibarr_main_restrict_os_commands</strong> in der Datei <strong>conf.php</strong> definiert sind.
    diff --git a/htdocs/langs/de_CH/agenda.lang b/htdocs/langs/de_CH/agenda.lang
    index e2a0bfdcccd..07ad040a915 100644
    --- a/htdocs/langs/de_CH/agenda.lang
    +++ b/htdocs/langs/de_CH/agenda.lang
    @@ -10,7 +10,6 @@ AgendaAutoActionDesc=Definieren Sie hier Ereignisse für die Dolibarr einen Kale
     ShipmentValidatedInDolibarr=Versand %s in Dolibarr geprüft
     OrderCanceledInDolibarr=Auftrag storniert %s
     ShippingSentByEMail=Lieferung %s per Email versendet
    -InterventionSentByEMail=Intervention %s gesendet via E-Mail
     AgendaHideBirthdayEvents=Geburtstage von Kontakten verstecken
     DateActionBegin=Beginnzeit des Ereignis
     DateStartPlusOne=Anfangsdatum + 1 Stunde
    diff --git a/htdocs/langs/de_CH/banks.lang b/htdocs/langs/de_CH/banks.lang
    index c95bf26189d..2004152c911 100644
    --- a/htdocs/langs/de_CH/banks.lang
    +++ b/htdocs/langs/de_CH/banks.lang
    @@ -4,6 +4,7 @@ BankAccounts=Kontenübersicht
     AccountRef=Konto-Referenz
     AccountLabel=Kontobezeichnung
     CashAccount=Kasse
    +CashAccounts=Kassen
     BankBalanceBefore=Bilanz vor
     BankBalanceAfter=Bilanz nach
     AllTime=Vom start
    diff --git a/htdocs/langs/de_CH/companies.lang b/htdocs/langs/de_CH/companies.lang
    index 244a92b0f58..e949f4d3b90 100644
    --- a/htdocs/langs/de_CH/companies.lang
    +++ b/htdocs/langs/de_CH/companies.lang
    @@ -1,6 +1,5 @@
     # Dolibarr language file - Source file is en_US - companies
     SelectThirdParty=Wähle einen Geschäftspartner
    -MenuNewThirdParty=Neuer Geschäftspartner
     CreateThirdPartyOnly=Geschäftspartner erstellen
     IdThirdParty=Geschäftspartner ID
     IdCompany=Unternehmens ID
    @@ -8,10 +7,6 @@ IdContact=Kontakt ID
     ThirdPartyContacts=Geschäftspartner-Kontakte
     ThirdPartyContact=Geschäftspartner-Kontakt
     AliasNames=Alias-Name (Geschäftsname, Marke, ...)
    -ThirdPartyName=Name des Geschäftspartners
    -ThirdParty=Geschäftspartner
    -ThirdParties=Geschäftspartner
    -ThirdPartyType=Typ des Geschäftspartners
     PostOrFunction=Position
     PhoneShort=Telefon
     No_Email=Keine E-Mail-Kampagnen
    @@ -69,10 +64,7 @@ ContactId=Kontakt ID
     NoContactDefinedForThirdParty=Für diesen Geschäftspartner ist kein Kontakt eingetragen
     NoContactDefined=Kein Kontakt vorhanden
     AddThirdParty=Geschäftspartner erstellen
    -CustomerCode=Kunden-Nummer
    -CustomerCodeShort=Kunden-Nr.
     RequiredIfCustomer=Erforderlich falls Geschäftspartner Kunde oder Interessent ist
    -ListOfThirdParties=Liste der Geschäftspartner
     ShowContact=Zeige Kontaktangaben
     ContactForOrdersOrShipments=Bestellungs- oder Lieferkontakt
     ContactForProposals=Offertskontakt
    @@ -81,8 +73,6 @@ NoContactForAnyOrderOrShipments=Dieser Kontakt ist kein Kontakt für eine Bestel
     NoContactForAnyProposal=Kein Kontakt für Offerte
     NoContactForAnyContract=Kein Kontakt für Verträge
     NoContactForAnyInvoice=Dieser Kontakt ist kein Kontakt für jegliche Rechnung
    -VATIntraCheckableOnEUSite=Überprüfen Sie Intrakommunale MwSt-Website der Europäischen Kommission
    -VATIntraManualCheck=Sie können die Überprüfung auch manuell durchführen <a href="%s" target=Sie können auch manuell die eruopäische Website <a href="%s" target="_blank">%s</a> befragen
     OthersNotLinkedToThirdParty=Andere, nicht mit einem Geschäftspartner verknüpfte Projekte
     TE_GROUP=Grossunternehmen
     ContactNotLinkedToCompany=Kontakt keinem Geschäftspartner zugeordnet
    @@ -91,10 +81,7 @@ ConfirmDeleteFile=Sind Sie sicher dass Sie diese Datei löschen möchten?
     AllocateCommercial=Vertriebsmitarbeiter zuweisen
     Organization=Organisation
     FiscalMonthStart=Ab Monat des Geschäftsjahres
    -YouMustAssignUserMailFirst=Um E-Mail Benachrichtigungen für diesen Benutzer hinzuzufügen müssen Sie zuerst eine Emailadresse beim Benutzer definieren.
     YouMustCreateContactFirst=Sie müssen erst E-Mail-Kontakte beim Geschäftspartner anlegen, um E-Mail-Benachrichtigungen hinzufügen zu können.
    -ThirdPartiesArea=Geschäftspartner- und Kontaktbereich
    -LastModifiedThirdParties=Letzte %s bearbeitete Geschäftspartner
     InActivity=Offen
     OutstandingBillReached=Kreditlimit erreicht
     MergeOriginThirdparty=Geschäftspartner duplizieren (Geschäftspartner, den Sie löschen möchten)
    diff --git a/htdocs/langs/de_CH/errors.lang b/htdocs/langs/de_CH/errors.lang
    index 7eec7013d05..98499bb7706 100644
    --- a/htdocs/langs/de_CH/errors.lang
    +++ b/htdocs/langs/de_CH/errors.lang
    @@ -1,14 +1,13 @@
     # Dolibarr language file - Source file is en_US - errors
     ErrorBadValueForParamNotAString=Ungültiger Wert für ihre Parameter. Das passiert normalerweise, wenn die Übersetzung fehlt.
    +ErrorFailToRenameFile=Konnte die Datei <b>'%s'</b> nicht in <b>'%s'</b> umzubenennen.
     ErrorBadThirdPartyName=Der für den Geschäftspartner eingegebene Name ist ungültig.
     ErrorBadValueForParameter=Ungültiger Wert '%s' für Parameter '%s'
    -ErrorUserCannotBeDelete=Benutzer kann nicht gelöscht werden. Eventuell ist er noch mit Einträgen verknüpft.
     ErrorFieldsRequired=Ein oder mehrere erforderliche Felder wurden nicht ausgefüllt-
     ErrorFileSizeTooLarge=Die Grösse der gewählten Datei übersteigt den zulässigen Maximalwert.
     ErrorSizeTooLongForIntType=Die Grösse überschreitet das Maximum für den Typ 'int' (%s Ziffern maximal)
     ErrorSizeTooLongForVarcharType=Die Grösse überschreitet das Maximum für den Typ 'string' (%s Zeichen maximal)
     ErrorNoValueForCheckBoxType=Bitte Wert für Checkbox-Liste eingeben
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Das Feld <b>%s</b> darf keine Sonderzeichen, Grossbuchstaben und Zahlen enthalten.
     ErrorModuleSetupNotComplete=Das Setup des Moduls scheint unvollständig zu sein. Führen Sie nochmal das Setup aus um das Modul zu vervollständigen.
     ErrorMaxNumberReachForThisMask=Maximum Grösse für diese Maske erreicht
     ErrorProdIdAlreadyExist=%s wurde bereits einem Geschäftspartner zugewiesen
    @@ -19,6 +18,5 @@ ErrorFileMustHaveFormat=Datei muss das Format %s haben
     ErrorsThirdpartyMerge=Die zwei Einträge können nicht zusammengeführt werden. Aktion abgebrochen.
     WarningBookmarkAlreadyExists=Ein Lesezeichen mit diesem Titel oder Ziel (URL) existiert bereits.
     WarningPassIsEmpty=Warnung: Derzeit ist kein Datenbankpasswort gesetzt. Dies ist eine Sicherheitslücke. Konfigurieren Sie ehestmöglich ein Passwort für den Datenbankzugriff und passen Sie Ihre conf.php entsprechend an.
    -WarningNoDocumentModelActivated=Für das Erstellen von Dokumenten ist keine Vorlage gewählt. Eine Vorlage wird standardmässig ausgewählt, bis Sie die Moduleinstellungen angepasst haben.
     WarningSomeLinesWithNullHourlyRate=Einige Zeiten wurden durch Benutzer erfasst bei denen der Stundenansatz nicht definiert war. Ein Stundenansatz von 0 %s pro Stunde wird verwendet, was aber Fehlerhafte Zeitauswertungen zur Folge haben kann.
     WarningYourLoginWasModifiedPleaseLogin=Ihr Login wurde verändert. Aus Sicherheitsgründen müssen sie sich vor der nächsten Aktion neu anmelden.
    diff --git a/htdocs/langs/de_CH/help.lang b/htdocs/langs/de_CH/help.lang
    index 82480e7b0e3..a4483cd8984 100644
    --- a/htdocs/langs/de_CH/help.lang
    +++ b/htdocs/langs/de_CH/help.lang
    @@ -4,4 +4,3 @@ DolibarrHelpCenter=Hilfe-und Supportcenter
     ToGoBackToDolibarr=Klicken Sie hier um zum System <a href="%s">zurückzukehren</a>
     TypeHelpOnly=Ausschliesslich Hilfe
     TypeHelpDevForm=Hilfe, Entwicklung & Bildung
    -ToGetHelpGoOnSparkAngels2=Gelegentlich ist zum Zeitpunkt Ihrer Suche vielleicht kein Geschäftspartner verfügbar. Denken Sie daran, den Filter auf "Alle verfügbaren" zu setzen. So können Sie mehr Anfragen stellen.
    diff --git a/htdocs/langs/de_CH/interventions.lang b/htdocs/langs/de_CH/interventions.lang
    index 513b4dc96d7..2b891f1576e 100644
    --- a/htdocs/langs/de_CH/interventions.lang
    +++ b/htdocs/langs/de_CH/interventions.lang
    @@ -1,39 +1,59 @@
     # Dolibarr language file - Source file is en_US - interventions
     Intervention=Arbeitseinsatz
     Interventions=Arbeitseinsätze
    -InterventionCard=Kundeneinsatz
    +InterventionCard=Einsatzkarte
     NewIntervention=Neuer Einsatz
     AddIntervention=Einsatz erstellen
    -ListOfInterventions=Liste der Einsätze
    -ActionsOnFicheInter=Aktionen zum Eingriff
    +ListOfInterventions=Liste der Arbeitseinsätze
    +ActionsOnFicheInter=Aktionen zum Einsatz
     LastInterventions=Letzte %s Einsätze
     AllInterventions=Alle Einsätze
    +CreateDraftIntervention=Einsatzentwurf erstellen
    +InterventionContact=Einsatzkontakte / -adressen
     DeleteIntervention=Einsatz löschen
     ValidateIntervention=Einsatz freigeben
    -ModifyIntervention=Geänderte Eingriff
    -DeleteInterventionLine=Eingriffszeile löschen
    +ModifyIntervention=Ändere Einsatz
    +DeleteInterventionLine=Einsatzposition löschen
     CloneIntervention=Einsatz duplizieren
    +ConfirmDeleteIntervention=Bist du sicher, dass du diesen Arbeitseinsatz löschen willst?
    +ConfirmValidateIntervention=Bist du sicher, dass du den Arbeitseinsatz <b>%s</b> freigeben willst?
    +ConfirmModifyIntervention=Bist du sicher, dass du diesen Arbeitseinsatz ändern willst?
    +ConfirmDeleteInterventionLine=Bist du sicher, dass du diese Einsatzposition löschen willst?
    +ConfirmCloneIntervention=Bist du sicher, dass du diesen Einsatz duplizieren willst?
    +NameAndSignatureOfInternalContact=Name und Unterschrift des Mitarbeiters
    +NameAndSignatureOfExternalContact=Name und Unterschrift des Kunden
     DocumentModelStandard=Standard-Dokumentvorlage für Arbeitseinsätze
    -InterventionCardsAndInterventionLines=Einsatzkarte und Einsatzzeilen
    -SendInterventionRef=Einreichung von Eingriffen %s
    -SendInterventionByMail=Eingriff per E-Mail versenden
    -InterventionCreatedInDolibarr=Eingriff %s erstellt
    -InterventionValidatedInDolibarr=Eingriff %s freigegeben
    -InterventionModifiedInDolibarr=Eingriff %s geändert
    -InterventionClassifiedBilledInDolibarr=Eingriff %s als verrechnet eingestuft
    -InterventionClassifiedUnbilledInDolibarr=Eingriff %s als nicht verrechnet eingestuft
    -InterventionDeletedInDolibarr=Eingriff %s gelöscht
    -InterventionsArea=Arbeitseinsätze Übersicht
    -DraftFichinter=Kundeneinsätze Entwürfe
    -LastModifiedInterventions=%s zuletzt bearbietet Einsätze
    -PrintProductsOnFichinter=Drucke auch Produkte (Nicht nur Leistungen) auf Eingriffskarten
    -PrintProductsOnFichinterDetails=Interventionen von Bestellungen generiert
    -InterventionStatistics=Statistik der Einsätze
    -NbOfinterventions=Anzahl Einsatzkarten
    -NumberOfInterventionsByMonth=Anzahl Einsatzkarten pro Monat (Nach Freigabedatum)
    +InterventionCardsAndInterventionLines=Einsatz und Einsatzpositionen
    +InterventionClassifyBilled=Auf "verrechnet" setzten
    +InterventionClassifyUnBilled=Auf "nicht verrechnet" setzen
    +InterventionClassifyDone=Auf "erledigt" setzen
    +StatusInterInvoiced=Verrechnet
    +SendInterventionRef=Einsatz %s einreichen
    +SendInterventionByMail=Einsatz per E-Mail versenden
    +InterventionCreatedInDolibarr=Einsatz %s erstellt
    +InterventionValidatedInDolibarr=Einsatz %s freigegeben
    +InterventionModifiedInDolibarr=Einsatz %s geändert
    +InterventionClassifiedBilledInDolibarr=Einsatz %s auf "verrechnet" gesetzt
    +InterventionClassifiedUnbilledInDolibarr=Einsatz %s auf "nicht verrechnet" gesetzt.
    +InterventionDeletedInDolibarr=Einsatz %s gelöscht
    +InterventionsArea=Arbeitseinsätze
    +DraftFichinter=Einsatzentwürfe
    +LastModifiedInterventions=Die %s zuletzt bearbeitete Einsätze
    +FichinterToProcess=Durchzuführende Einsätze
    +PrintProductsOnFichinter=Drucke auch Produkte (Nicht nur Leistungen) auf Einsatzkarten
    +PrintProductsOnFichinterDetails=Über Bestellungen generierte Einsätze
    +UseServicesDurationOnFichinter=Benutze Servicezeiten für Arbeitseinsätze aus Bestellungen
    +UseDurationOnFichinter=Versteckt das Feld "Dauer" auf der Einsatzkarte
    +UseDateWithoutHourOnFichinter=Versteckt Stunden und Minuten im Datumsfeld von Einsatzkarten
    +InterventionStatistics=Einsatzstatistik
    +AmountOfInteventionNotIncludedByDefault=Der Aufwand für Einsätze ist im Normalfall nicht im Profit eingerechnet. Meistens wird das über die Zeiterfassung geregelt.\nDamit die Einsatz - Aufwände im Profit sichtbar werden, fügst du Unter Einstellungen -> Weitere Einstellungen die Option 'PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT' hinzu und setzest diese auf den Wert 1
     InterId=Einsatz ID
     InterRef=Einsatz Ref.
     InterDateCreation=Erstellungsdatum Einsatz
     InterDuration=Dauer Arbeitseinsatz
    -InterStatus=Einsatz Status
    +InterStatus=Einsatzstatus
     InterNote=Einsatzbeschreibung
    +InterLineId=ID der Einsatzposition
    +InterLineDate=Datum der Einsatzposition
    +InterLineDuration=Dauer der Einsatzposition
    +InterLineDesc=Beschreibung der Einsatzposition
    diff --git a/htdocs/langs/de_CH/main.lang b/htdocs/langs/de_CH/main.lang
    index d99a7bb54a2..fb6d7d9959d 100644
    --- a/htdocs/langs/de_CH/main.lang
    +++ b/htdocs/langs/de_CH/main.lang
    @@ -19,41 +19,96 @@ FormatDateHourShort=%d.%m.%Y %H:%M
     FormatDateHourSecShort=%d.%m.%Y %H:%M:%S
     FormatDateHourTextShort=%d %b %Y %H:%M
     FormatDateHourText=%d %B %Y %H:%M
    +NoTemplateDefined=Für diesen Emailtyp habe ich keine Vorlage..
     AvailableVariables=Verfügbare Ersatzvariablen
    +NoRecordDeleted=Es wurde kein Datensatz gelöscht
     NotEnoughDataYet=Nicht genügend Daten
    -ErrorCanNotCreateDir=Kann Verzeichnis %s nicht erstellen
    -ErrorFileNotUploaded=Die Datei konnte nicht hochgeladen werden. Stellen Sie sicher dass die Dateigrösse nicht den gesetzten Maximalwert übersteigt, das Zielverzeichnis über genügend freien Speicherplatz verfügt und noch keine Datei mit gleichem Namen existiert.
    -ErrorRecordIsUsedByChild=Kann diesen Eintrag nicht löschen. Dieser Eintrag wird von mindestens einem untegeordneten Datensatz verwendet.
    +NoError=Kein Fehler
    +ErrorFieldRequired=Das Feld '%s' musst du ausfüllen.
    +ErrorFieldFormat=Der Wert im Feld '%s' ist nicht erlaubt
    +ErrorFileDoesNotExists=Hoppla, die Datei %s habe ich nirgends gefunden...
    +ErrorFailedToOpenFile=Ich kann die Datei %s nicht öffnen...
    +ErrorCanNotCreateDir=Ich kann das Verzeichnis %s nicht erstellen...
    +ErrorCanNotReadDir=Ich kann im Verzeichnis %s nicht lesen...
    +ErrorConstantNotDefined=Der Parameter %s wurde nicht definiert.
    +ErrorUnknown=Oha - es ist ein unbekannter Fehler aufgetreten...
    +ErrorSQL=SQL - Fehler
    +ErrorLogoFileNotFound=Ich kann die Logodatei '%s' nicht finden...
    +ErrorGoToGlobalSetup=Bitte behebe das unter Einstellungen -> Firma / Organisation
    +ErrorGoToModuleSetup=Bitte wechsle zu den Einstellungen des Moduls, um das Problem zu beheben.
    +ErrorFailedToSendMail=Ich kann die Email von %s an %s nicht verschicken...
    +ErrorFileNotUploaded=Ich konnte die Datei nicht hochladen. Prüfe, ob Sie zu gross ist, ob der Speicher im Zielverzeichnis voll ist, oder nicht bereits eine Datei mit gleichem Namen dort liegt.
    +ErrorInternalErrorDetected=Oha, es ist ein Fehler aufgetreten...
    +ErrorWrongHostParameter=Der Host Parameter ist leider ungültig
    +ErrorWrongValue=Der Wert ist ungültig...
    +ErrorWrongValueForParameterX=Der Wert des Parameters %s ist leider ungültig.
     ErrorDuplicateField=Dieser Wert ist nicht einzigartig (schon vorhanden)
    -ErrorSomeErrorWereFoundRollbackIsDone=Einige Fehler wurden gefunden. Änderungen rückgängig gemacht.
     ErrorCantLoadUserFromDolibarrDatabase=Kann Benutzer <b>%s</b> nicht aus der Systemdatenbank laden.
     ErrorNoSocialContributionForSellerCountry=Fehler, keine Definition für Sozialabgaben/Steuerwerte definiert für Land '%s'.
    +FileRenamed=Datei erfolgreich umbenannt
    +FileGenerated=Datei erfolgreich erzeugt
    +FileSaved=Datei erfolgreich gespeichert
    +FilesDeleted=Daten erfolgreich gelöscht
     GoToWikiHelpPage=Onlinehilfe (Internetzugang notwendig)
    +DolibarrInHttpAuthenticationSoPasswordUseless=Der Dolibarr Authentifizierungsmodus steht auf <b>%s</b> in der Konfigurationsdatei. Das heisst, dass Änderungen in diesem Feld keine Auswirkung haben werden, weil die Passwort - Datenbank ausserhalb der Dolibarr - Umgebung liegt.
    +PasswordForgotten=Hast du dein Passwort vergessen?
    +NoAccount=Ich habe kein Benutzerkonto
    +LastConnexion=Zuletzt gesehen am:
    +AuthenticationMode=Authentifizierungsmodus
    +RequestedUrl=Angeforderte URL
     RequestLastAccessInError=Letzter Datenbankfehler
     ReturnCodeLastAccessInError=Rückgabewert des letzten Datenbankfehlers
     InformationLastAccessInError=Informationen zum letzten Datenbankfehler
    +YouCanSetOptionDolibarrMainProdToZero=Für weitere Informationen schaust du in der Logdatei nach, oder setzest in der Konfigurationsdatei die Option $dolibarr_main_prod auf '0'.
    +InformationToHelpDiagnose=Diese Informationen helfen dir bei der Fehlersuche. Wenn du das nicht mehr sehen möchtest, setze in der Konfigurationsdatei die Option $dolibarr_main_prod auf '1'.
     MediaBrowser=Mediabrowser
    +SelectedPeriod=Gewählter Zeitraum
    +PreviousPeriod=Vorangegangener Zeitraum
    +NotClosed=Nicht geschlossen
     AddToDraft=Zu Entwurf hinzufügen
     Close=Schliessen
     CloseBox=Box vom Startbildschirm entfernen
    +Resiliate=Abschliessen
     ValidateAndApprove=Freigeben und bestätigen
    +NotValidated=Nicht validiert
    +Hide=Verbergen
     Valid=Freigabe
    +ResizeOrCrop=Skalieren oder Beschneiden
    +NewObject=Erzeuge %s
    +Model=Dokumentenvorlage
    +DefaultModel=Standardvorlage
     Connection=Anmeldung
     DateToday=Aktuelles Datum
     DateStart=Startdatum
     DateEnd=Enddatum
     DateModificationShort=Änd.Datum
    +DateLastModification=Zuletzt geändert am
     DateClosing=Schliessungsdatum
     DateOperationShort=Ausf.Datum
    +RegistrationDate=Benutzer registriert am
    +UserCreation=Benutzer erzeugt am
    +UserModification=Zuletzt bearbeitet am
    +UserValidation=Benutzer validieren
    +UserCreationShort=Neu
    +UserModificationShort=Ändern
    +UserValidationShort=Validieren
     MinuteShort=min
    +CurrencyRate=Wechselkurs
    +UserAuthor=Erstellt von
    +UserModif=Zuletzt geändert durch
    +PriceCurrency=Währung
    +UnitPriceHTCurrency=Nettopreis
     PriceUTTC=E.P. (inkl. Steuern)
    +AmountInvoiced=Verrechneter Betrag
     AmountHT=Betrag (exkl. MwSt.)
     AmountVAT=MwSt.-Betrag
    +MulticurrencyRemainderToPay=Offener Betrag in Originalwährung
     MulticurrencyAmountHT=Nettobetrag, in Währung
     MulticurrencyAmountTTC=Bruttobetrag, in Währung
     MulticurrencyAmountVAT=Steuerbetrag, in Währung
     AmountLT1=MwSt.-Betrag 2
     AmountLT2=MwSt.-Betrag 3
    +PriceQtyMinHTCurrency=Staffelpreise in Originalwährung
     Percentage=Prozentangabe
     TotalHTShortCurrency=Totalbetrag (In Währung)
     TotalTTCShort=Totalbetrag (inkl. MwSt.)
    @@ -64,57 +119,142 @@ TotalTTCToYourCredit=Bruttosumme
     TotalVAT=MwSt.
     TotalLT1=Gesamte MwSt. 2
     TotalLT2=Gesamte MwSt. 3
    +INCVATONLY=Inkl MWST
    +INCT=Inkl alle Steuern
     VAT=MwSt.
    +VATINs=IGST
    +LT1=MWST Satz 2
    +LT1Type=MWST 2 Typ
    +LT2=MWST Satz 3
    +LT2Type=MWST 3 Typ
    +VATCode=MWST Code
    +VATNPR=NPR Steuersatz
    +DefaultTaxRate=Standard Steuersatz
    +RemainToPay=Offener Betrag
    +Module=Modul / Applikation
    +Modules=Module / Applikationen
     Ref=Nummer
    +RefSupplier=Lieferantennummer
     RefPayment=Zahlungs-Nr.
     ActionsToDo=unvollständige Ereignisse
     ActionsToDoShort=Zu erledigen
     ActionRunningNotStarted=Nicht begonnen
    +ActionRunningShort=In Bearbeitung
    +LatestLinkedEvents=Die neuesten %s verknüpften Vorgänge
    +CompanyFoundation=Firma / Organisation
    +Accountant=Berater
     ContactsForCompany=Ansprechpartner/Adressen dieses Geschäftspartners
     ContactsAddressesForCompany=Ansprechpartner / Adressen zu diesem Geschäftspartner
     AddressesForCompany=Adressen für den Geschäftspartner
     ActionsOnCompany=Ereignisse zu diesem Geschäftspartner
    +ActionsOnProduct=Vorgänge zu diesem Produkt
     ToDo=Zu erledigen
    +Running=In Bearbeitung
     Generate=Erstelle
    +NoOpenedElementToProcess=Keine offenen Aktionen
    +OtherInformations=Weitere Informationen
     Refused=zurückgewiesen
     Validated=Freigegeben
     Opened=Offen
     Size=Grösse
    +OriginalSize=Originalgrösse
     ByCompanies=Von Geschäftspartnern
    -LateDesc=Die anzahl Tage die einen Datensatz verspätet markiert, hängt von ihren Einstellungen ab. Fragen sie den Administrator umd die Einstellung unter Home-Setup-Alerts zu ändern.
    +ByUsers=Nach Benutzer
    +NoneOrSeveral=Keine oder einige
    +NoItemLate=Es gibt keine verspätete Artikel
    +LoginEmail=Benutzer Email - Adresse
    +LoginOrEmail=Benutzername oder Email - Adresse
    +EnterLoginDetail=Gib die Zugangsdaten ein
    +JoinMainDoc=Führe das Hauptdokument zusammen.
     Keyword=Stichwort
    +Origin=Herkunft
     NbOfThirdParties=Anzahl der Geschäftspartner
     NbOfObjectReferers=Anzahl verknüpfter Objekte
     Referers=Verknüpfte Objekte
     Uncheck=nicht gewählt
    +ShowSupplierPreview=Zeige Vorschau
    +SeeAll=Zeige alles an
     CloseWindow=Fenster schliessen
     SendAcknowledgementByMail=Bestätigungsemail senden
     NoMobilePhone=Kein Mobiltelefon
    -YouCanSetDefaultValueInModuleSetup=Standardwerte für neue Datensätzen können im Modulsetup eingestellt werden
    +ValueIsNotValid=Der Wert ist leider ungültig.
    +RecordCreatedSuccessfully=Eintrag erfolgreich erstellt
    +RecordsModified=%s Einträge geändert
    +RecordsDeleted=%s Einträge gelöscht
    +CompleteOrNoMoreReceptionExpected=Vollständig oder keine Aktionen mehr erwartet
    +YouCanChangeValuesForThisListFromDictionarySetup=Du kannst die Werte für diese Liste in Einstellungen -> Wörterbücher anpassen.
    +YouCanChangeValuesForThisListFrom=Du kannst die Werte für diese Liste im Menu %s einstellen.
     CurrentTheme=Aktuelle Oberfläche
    +DateOfSignature=Unterschriftsdatum
    +FreeZone=Nicht hinterlegte Position vom Typ
    +FreeLineOfType=Nicht hinterlegte Position vom Typ
    +DocumentModelStandardPDF=Standardvorlage (PDF)
    +CoreErrorMessage=Hoppla, es ist ein Fehler aufgetreten. Dein Administrator kann mehr herausfinden, indem er die Logdateien durchgeht (oder in der Systemkonfiguration $dolibarr_main_prod auf '0' setzen)
     CreditCard=Kreditkarte
    -FieldsWithIsForPublic=Felder mit <b>%s</b> sind für Mitglieder öffentlich sichtbar. Über die "Öffentlich"-Checkbox können Sie dies ändern.
    +CreditOrDebitCard=Kredit- oder Debitkarte
    +LinkToProposal=Verknüpftes Angebot
    +LinkToInvoice=Verknüpfte Rechnung
    +LinkToSupplierOrder=Verknüpfte Lieferantenbestellung
    +LinkToSupplierProposal=Verknüpftes Lieferantenangebot
    +LinkToSupplierInvoice=Verknüpfte Lieferantenrechnung
    +LinkToContract=Verknüpfter Vertrag
    +LinkToIntervention=Verknüpfter Arbeitseinsatz
    +EditWithTextEditor=Mit Nur-Text Editor bearbeiten
    +EditHTMLSource=HTML Quelltext bearbeiten
     ByMonthYear=Von Monat / Jahr
    -AdminTools=Adminwerkzeuge
     SelectAction=Aktion auswählen
    +SelectTargetUser=Wähle den Benutzer / Mitarbeiter
    +ShowMoreLines=Mehr oder weniger Positionen anzeigen
    +SelectElementAndClick=Wähle etwas aus und klicke dann auf %s
    +ShowTransaction=Zeige die Transaktion auf dem zugehörigen Bankkonto.
     ShowIntervention=Zeige Kundeneinsatz
    +ListOf=Liste der %s
    +GoodBye=Auf Wiedersehen!
     Sincerely=Mit freundlichen Grüssen
    +ConfirmDeleteLine=Willst du diese Position wirklich löschen?
    +NoPDFAvailableForDocGenAmongChecked=Für die gewählten Einträge kann ich kein Dokument erstellen, weil die PDFs dazu fehlen.
    +TooManyRecordForMassAction=Zu viele Datensätze für Massenaktion ausgewählt. Die Aktion ist auf maximal %s Datensätze limitiert.
    +NoRecordSelected=Hoppla, du hast keine Einträge ausgewählt...
     MassFilesArea=Bereich für Dateien, die durch Massenaktionen erstellt werden
     ShowTempMassFilesArea=Bereich für Dateien anzeigen, die durch Massenaktionen erstellt wurden
     ClassifyBilled=Verrechnet
    +ClassifyUnbilled=Auf "Nicht verrechnet" setzen
     Progress=Fortschritt
     BackOffice=Dolibarr
    +ExportFilteredList=Exportiere gefilterte Positionen
    +ExportList=Exportiere Positionen
     Calendar=Kalender
    -WebSite=Website
    +GroupBy=Sortieren nach
    +ViewFlatList=Einfache Liste anzeigen
    +RemoveString=Entferne die Zeichenfolge '%s'
    +DirectDownloadLink=Direkter externer Downloadlink
    +DirectDownloadInternalLink=Direkter Downloadlink, wenn eingeloggt und die Rechte vorhanden sind.
    +ActualizeCurrency=Aktualisiere Währung
    +SetMultiCurrencyCode=Setze Währung
    +BulkActions=Stapelverarbeitungen
    +ClickToShowHelp=Clicke hier für Kontexthilfe.
    +WebSiteAccounts=Webseitenkonten
     ExpenseReports=Spesenrapporte
    -EMailTemplates=Textvorlagen für Emails
    +AutomaticallyCalculated=Automatisch generiert
    +TitleSetToDraft=In Entwurfsstatus setzen
    +LineNb=Position Nr.
     ShortTuesday=D
     ShortWednesday=M
     ShortThursday=D
    +SelectMailModel=Wähle deine Email - Vorlage
    +Select2ResultFoundUseArrows=Ich habe mehrere Resultate gefunden - wähle mit den Pfeiltasten aus.
     Select2Enter=Eingabe
    +Select2MoreCharactersMore=<strong>Suchsyntax:</strong><br><kbd><strong> |</strong></kbd><kbd> OR</kbd> (a|b)<br><kbd><strong>*</strong></kbd><kbd> Alle Zeichen</kbd> (a*b)<br><kbd><strong>^</strong></kbd><kbd> Beginnt mit</kbd> (^ab)<br><kbd><strong>$</strong></kbd><kbd> Endet mit</kbd> (ab$)<br>
     SearchIntoThirdparties=Geschäftspartner
     SearchIntoCustomerProposals=Angebote Kunde
     SearchIntoInterventions=Arbeitseinsätze
     SearchIntoCustomerShipments=Kundenlieferungen
     SearchIntoExpenseReports=Spesenrapporte
    -SearchIntoLeaves=Ferien
    +NbComments=Anzahl Kommentare
    +CommentPage=Kommentare
    +CommentDeleted=Kommentar entfernt
    +Quarterly=Vierteljährlich
    +Remote=Entfernt
    +LocalAndRemote=Lokal und Entfernt
    +KeyboardShortcut=Tastaturkürzel
    +Deletedraft=Lösche den Entwurf
    diff --git a/htdocs/langs/de_CH/other.lang b/htdocs/langs/de_CH/other.lang
    index 6f70fab1b47..ddcebd06927 100644
    --- a/htdocs/langs/de_CH/other.lang
    +++ b/htdocs/langs/de_CH/other.lang
    @@ -1,11 +1,10 @@
     # Dolibarr language file - Source file is en_US - other
     NumberingShort=Nr
     MessageKO=Nachrichtenseite für abgebrochene Zahlung
    -Notify_FICHINTER_ADD_CONTACT=Kontakt zu Einsatz hinzugefügt
    -Notify_FICHINTER_VALIDATE=Eingriff freigegeben
    -Notify_FICHINTER_SENTBYMAIL=Service per E-Mail versendet
     Notify_COMPANY_SENTBYMAIL=Von Geschäftspartner-Karte gesendete Mails
     Notify_FICHEINTER_VALIDATE=Eingriff freigegeben
    +Notify_FICHINTER_ADD_CONTACT=Kontakt zu Einsatz hinzugefügt
    +Notify_FICHINTER_SENTBYMAIL=Service per E-Mail versendet
     TotalSizeOfAttachedFiles=Gesamtgrösse der angehängten Dateien/Dokumente
     MaxSize=Maximalgrösse
     ChooseYourDemoProfil=Bitte wählen Sie das Demo-Profil das Ihrem Einsatzgebiet am ehesten entspricht
    @@ -15,7 +14,6 @@ FeaturesSupported=Unterstützte Funktionen
     SizeUnitfoot=Fuss
     EnableGDLibraryDesc=Für den Einsatz dieser Option installieren, bzw. aktivieren Sie bitte die GD-Library.
     ProfIdShortDesc=<b>Prof ID %s</b> dient zur Speicherung landesabhängiger Geschäftspartnerdaten. <br> Für das Land <b>%s</b> ist dies beispielsweise Code <b>%s</b>.
    -EMailTextInterventionAddedContact=Ein neuer Einsatz %s wurde ihnen zugeteilt.
     EMailTextInterventionValidated=Service %s wurde freigegeben
     NewSizeAfterCropping=Neue Grösse nach dem Zuschneiden
     DefineNewAreaToPick=Definieren Sie einen neuen Bereich innerhalb des Bildes (Klicken Sie mit der linken Maustaste auf das Bild und halten Sie bis zur gegenüberligenden Ecke)
    diff --git a/htdocs/langs/de_CH/projects.lang b/htdocs/langs/de_CH/projects.lang
    index 0db8351335a..4d83b17d2bd 100644
    --- a/htdocs/langs/de_CH/projects.lang
    +++ b/htdocs/langs/de_CH/projects.lang
    @@ -8,7 +8,6 @@ TimeSpentByYou=Dein Zeitaufwand
     MyProjectsArea=Mein Projektbereich
     GoToListOfTimeConsumed=Zur Stundenaufwandsliste wechseln
     GoToListOfTasks=Zur Aufgabenliste gehen
    -ListFichinterAssociatedProject=Liste Eingriffe, die mit diesem Projekt verknüpft sind
     ChildOfProjectTask=Kindelement von Projekt/Aufgabe
     CloseAProject=Projekt schliessen
     ProjectsDedicatedToThisThirdParty=Mit diesem Geschäftspartner verknüpfte Projekte
    @@ -17,4 +16,3 @@ ThisWillAlsoRemoveTasks=Diese Aktion löscht ebenfalls alle Aufgaben zum Projekt
     CloneTaskFiles=Aufgabe (n) clonen beigetreten Dateien (falls Aufgabe (n) geklont)
     ProjectReferers=Verknüpfte Objekte
     ResourceNotAssignedToTheTask=Nicht der Aufgabe zugewiesen
    -OpportunityPonderatedAmount=Verkaufschancen geschätzer Betrag
    diff --git a/htdocs/langs/de_CH/propal.lang b/htdocs/langs/de_CH/propal.lang
    index 340b40282f5..a20eea1d33d 100644
    --- a/htdocs/langs/de_CH/propal.lang
    +++ b/htdocs/langs/de_CH/propal.lang
    @@ -7,6 +7,5 @@ DefaultProposalDurationValidity=Standardmässige Gültigkeitsdatuer (Tage)
     UseCustomerContactAsPropalRecipientIfExist=Falls vorhanden die Adresse des Kundenkontakts statt des Geschäftspartners verwenden
     AvailabilityPeriod=Verfügbarkeitszeitraum
     SetAvailability=Verfügbarkeitszeitraum definieren
    -TypeContact_propal_external_CUSTOMER=Kundenkontakt für Angebot
     DefaultModelPropalToBill=Standard-Template, wenn Sie ein Angebot schliessen wollen (zur Verrechung)
     DefaultModelPropalClosed=Standard-Template, wenn sie ein Angebot schliessen wollen (ohne Rechnung)
    diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang
    index d9314912660..5141a39d95d 100644
    --- a/htdocs/langs/de_DE/admin.lang
    +++ b/htdocs/langs/de_DE/admin.lang
    @@ -12,7 +12,7 @@ VersionRecommanded=Empfohlen
     FileCheck=Dateien Integritätsprüfung
     FileCheckDesc=Dieses Tool ermöglicht es Ihnen, die Integrität von Dateien und das Setup der Anwendung zu überprüfen, indem jede Datei mit den offiziellen Versionen verglichen wird. Der Wert einiger Setup-Konstanten kann auch überprüft werden. Sie können dieses Tool z.B. verwenden, um festzustellen, ob Dateien von einem Hacker geändert wurden.
     FileIntegrityIsStrictlyConformedWithReference=Datei-Integrität entspricht genau der Referenz.
    -FileIntegrityIsOkButFilesWereAdded=Datei-Integrität bestätigt, allerdings wurden zusätzliche Dateien gefunden.
    +FileIntegrityIsOkButFilesWereAdded=Die Dateiintegritätsprüfung wurde bestanden, jedoch wurden einige neue Dateien hinzugefügt.
     FileIntegritySomeFilesWereRemovedOrModified=Datei-Integrität konnte NICHT bestätigt werden. Dateien wurden modifiziert, entfernt oder zugefügt.
     GlobalChecksum=globale Prüfsumme
     MakeIntegrityAnalysisFrom=Mache Integrität Analyse von Anwendungsdateien aus
    @@ -30,12 +30,12 @@ SessionSaveHandler=Session Handler
     SessionSavePath=Pfad für Sitzungsdatenspeicherung
     PurgeSessions=Bereinigung von Sessions
     ConfirmPurgeSessions=Wollen Sie wirklich alle Sitzungen beenden ? Dadurch werden alle Benutzer getrennt (ausser Ihnen)
    -NoSessionListWithThisHandler=Anzeige aller aktiven Sitzungen mit Ihrer PHP-Konfiguration nicht möglich.
    +NoSessionListWithThisHandler=Anzeige der aktiven Sitzungen mit Ihrer PHP-Konfiguration nicht möglich. 
     LockNewSessions=Keine neuen Sitzungen zulassen
     ConfirmLockNewSessions=Möchten Sie wirklich alle Sitzungen bis auf Ihre eigene blockieren? Nur Benutzer <b>%s</b> kann danach noch eine Verbindung aufbauen.
     UnlockNewSessions=Sperrung neuer Sitzungen aufheben
     YourSession=Ihre Sitzung
    -Sessions=Benutzer-Sessions
    +Sessions=Benutzersitzungen
     WebUserGroup=WebServer Benutzer/Gruppen
     NoSessionFound=Ihre PHP -Konfiguration scheint keine Liste aktiver Sitzungen zuzulassen. Eventuell ist die Speicherung im Verzeichnis (<b>%s</b>) aktiviert und fehlerhafte Dateizugriffsberechtigungen blockieren den Zugriff (z.B. open_basedir-Beschränkungen).
     DBStoringCharset=Zeichensatz der Datenbank-Speicherung
    @@ -50,7 +50,7 @@ ExternalUser=Externer Benutzer
     InternalUsers=Interne Benutzer
     ExternalUsers=Externe Benutzer
     GUISetup=Anzeige
    -SetupArea=Einstellungen - Übersicht
    +SetupArea=Einstellungen
     UploadNewTemplate=Neue Vorlage(n) hochladen
     FormToTestFileUploadForm=Formular für das Testen von Datei-Uploads (je nach Konfiguration)
     IfModuleEnabled=Anmerkung: Ist nur wirksam wenn Modul <b>%s</b> aktiviert ist
    @@ -69,7 +69,7 @@ DisableJavascript=JavaScript- und Ajax-Funktionen deaktivieren (empfohlen für B
     UseSearchToSelectCompanyTooltip=Wenn Sie eine große Anzahl von Partnern (> 100.000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante COMPANY_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings.
     UseSearchToSelectContactTooltip=Wenn Sie eine große Anzahl von Kontakten (> 100.000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante CONTACT_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings.
     DelaiedFullListToSelectCompany=Warte auf Tastendruck, bevor der Inhalt der Partner-Combo-Liste geladen wird (Dies kann die Leistung verbessern, wenn Sie eine große Anzahl von Partnern haben).
    -DelaiedFullListToSelectContact=Warte auf Tastendruck, bevor der Inhalt der Kontakt-Combo-Liste geladen wird (Dies kann die Leistung verbessern, wenn Sie eine große Anzahl von Kontakten haben).
    +DelaiedFullListToSelectContact=Warte auf Tastendruck, bevor der Inhalt der Partner-Combo-Liste geladen wird (Dies kann die Leistung verbessern, wenn Sie eine große Anzahl von Partnern haben).
     NumberOfKeyToSearch=Anzahl der Buchstaben um eine Suche auszulösen: %s
     NotAvailableWhenAjaxDisabled=Nicht verfügbar, wenn Ajax deaktiviert
     AllowToSelectProjectFromOtherCompany=Bei den Elementen eines Partners, ist es möglich Projekte von anderen Partnern zu verlinken
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Vorschau nicht verfügbar
     ThemeCurrentlyActive=derzeit aktivierte grafische Oberfläche
     CurrentTimeZone=Aktuelle Zeitzone des PHP-Servers
     MySQLTimeZone=Aktuelle Zeitzone von MySql (Datenbank)
    -TZHasNoEffect=Daten werden vom Datenbank-Server gespeichert und zurückgeliefert, als würde der eingegebene String abgelegt werden. Die Zeitzone hat nur dann eine Auswirkung, wenn die UNIX_TIMESTAMP-Funktion benutzt wird (Dolibarr nutzt diese nicht, daher sollte die Datenbank-TZ keine Rolle spielen, selbst wenn diese nach Dateneingabe geändert wird).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Platz
     Table=Tabelle
     Fields=Felder
    @@ -126,8 +126,8 @@ PHPTZ=Zeitzone der PHP-Version
     DaylingSavingTime=Sommerzeit (Benutzer)
     CurrentHour=PHP-Zeit (Server)
     CurrentSessionTimeOut=Aktuelle Session timeout
    -YouCanEditPHPTZ=Um eine andere PHP-Zeitzone zu setzen (nicht erforderlich), können Sie eine .htaccess-Datei mit einer Zeile wie  "SetEnv TZ Europe / Paris" erstellen.
    -HoursOnThisPageAreOnServerTZ=Warnung: Im Gegensatz zu anderen Darstellungen, sind Stunden auf dieser Seite nicht in Ihrer lokalen Zeitzone, sondern in der Zeitzone des Servers.
    +YouCanEditPHPTZ=Um eine andere PHP Zeitzone einzustellen (optional), ist es auch möglich eine Zeile, bspw. "SetEnv TZ Europe/Paris", in der Datei .htaccess hinzuzufügen.
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Box
     Boxes=Boxen
     MaxNbOfLinesForBoxes=Maximale Zeilenanzahl in Boxen\n
    @@ -191,28 +191,28 @@ IgnoreDuplicateRecords=Doppelte Zeilen Fehler ignorieren (INSERT IGNORE)
     AutoDetectLang=Automatische Erkennung (Browser-Sprache)
     FeatureDisabledInDemo=Funktion in der Demoversion deaktiviert
     FeatureAvailableOnlyOnStable=Diese Funktion steht nur in offiziellen stabilen Versionen zur Verfügung
    -BoxesDesc=Boxen sind auf einigen Seiten angezeigte Informationsbereiche. Sie können die Anzeige einer Box einstellen, indem Sie auf die Zielseite klicken und 'Aktivieren' wählen. Zum Ausblenden einer Box klicken Sie einfach auf den Papierkorb.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Nur Elemente aus <a href="%s">aktiven Module</a> werden angezeigt.
    -ModulesDesc=Die Module bestimmen, welche Funktionalität in Dolibarr verfügbar ist. Manche Module erfordern zusätzlich Berechtigungen die Benutzern zugewiesen werden muss, nachdem das Modul aktiviert wurde. \nKlicken Sie auf die Schaltfläche on/off, um ein Modul/Anwendung zu aktivieren.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Sie finden weitere Module auf externen Web-Sites...
    -ModulesDeployDesc=Wenn die Rechte Ihres Dateisystems es zulassen, können Sie mit diesem Werkzeug ein externes Modul installieren. Es wird dann im Reiter <strong>%s</strong> erscheinen.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Suche externe Module
     ModulesDevelopYourModule=Eigene App/Modul entwickeln
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=Sie können ihre eigenen Module programmieren oder einen Partner finden der die Module für sie programmiert
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Neu
     FreeModule=Frei
     CompatibleUpTo=Kompatibel mit Version %s
    -NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
    -CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s - Max %s).
    +NotCompatible=Dieses Modul scheint nicht mit Ihrere Dolibarr Version %skompatibel zu sein. (Min %s - Max %s).
    +CompatibleAfterUpdate=Dieses Modul benötigt ein Upgrade Ihrere Dolibarr Installation %s ( Min %s - Max %s).
     SeeInMarkerPlace=Siehe Marktplatz
     Updated=Aktualisiert
     Nouveauté=Neuheit
     AchatTelechargement=Kaufen / Herunterladen
     GoModuleSetupArea=Um ein neues Modul zu installieren, gehen Sie auf die Modul-Setup Seite <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, der offizielle Marktplatz für dolibarr Module/Erweiterungen
    -DoliPartnersDesc=Firmenliste die Kundenspezifische Module oder Funktionen entwickeln. (Hinweis: Jedermann mit PHP Erfahrung kann Kundenspezifische Funktionen für Opensource Projekte Entwickeln)
    -WebSiteDesc=Anbieter für weitere Module...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=Externe Webseiten mit zusätzlichen Add-on (nicht zum Grundumfang gehörend) Modulen ...
     DevelopYourModuleDesc=Lösungen um eigene Module zu entwickeln...
     URL=Link
     BoxesAvailable=Verfügbare Boxen
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Passwörter in der Datenbank nicht im Klartext speichern
     MainDbPasswordFileConfEncrypted=Datenbankpasswort in der Konfigurationsdatei verschlüsselt speichern (Empfohlene Einstellung)
     InstrucToEncodePass=Um das Kennwort in der Konfigurationsdatei <b>conf.php</b> verschlüsselt zu speichern, ersetzen Sie die Zeile <br><b>$dolibarr_main_db_pass="...";</b><br>durch<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Um das Kennwort unverschlüsselt (im Klartext) in der Konfigurationsdatei <b>conf.php</b> zu speichern, ersetzen Sie die Zeile<br><b>$dolibarr_main_db_pass="crypted:...";</b><br>durch<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=PDF-Dokumentschutz aktivieren (Die Aktivierung ist nicht empfohlen, weil dadurch die Stapelerzeugung von PDFs nicht mehr funktioniert)
    +ProtectAndEncryptPdfFiles=Dokumentenschutz für erzeugte PDFs - wird NICHT empfohlen (verhindert die Stapelerzeugung von PDFs)
     ProtectAndEncryptPdfFilesDesc=Die Aktivierung des PDF-Dokumentschutzes erhält die Lesbarkeit und Druckfähigkeit des Dokuments, Bearbeitung und Kopien sind jedoch nicht mehr möglich. Bitte beachten Sie, dass nach Aktivierung dieser Funktion auch die Stapelverarbeitung von PDF-Dokumenten (z.B. alle offenen Rechnungen zusammenführen) nicht mehr funktioniert.
     Feature=Funktion
     DolibarrLicense=Lizenz
    @@ -246,8 +246,8 @@ ExternalResources=Externe Resourcen
     SocialNetworks=Soziale Netzwerke
     ForDocumentationSeeWiki=Für Benutzer-und Entwickler-Dokumentation (DOC, ...), FAQs <br> Werfen Sie einen Blick auf die Dolibarr Wiki: <br> <a href="%s" target="_blank"><b> %s</b></a>
     ForAnswersSeeForum=Für alle anderen Fragen, können Sie das Dolibarr Forum: <br> <a href="%s" target="_blank"><b> %s</b></a> benutzen.
    -HelpCenterDesc1=In diesem Bereich erwartet Sie eine Übersicht von Hilfe und Support-Services für Dolibarr.
    -HelpCenterDesc2=Ein Teil dieses Dienstes sind <b>nur</b> in <b>Englisch</b> verfügbar.
    +HelpCenterDesc1=Hier finden Sie eine Übersicht mit einigen Angeboten für Hilfe und Support-Leistungen zu Dolibarr. 
    +HelpCenterDesc2=Einige dieser Angebote sind nur in <b>Englisch</b> verfügbar. 
     CurrentMenuHandler=Aktuelle Menü-Handler
     MeasuringUnit=Maßeinheit
     LeftMargin=Linker Rand
    @@ -262,23 +262,27 @@ NoticePeriod=Kündigungsfrist
     NewByMonth=Neu nach Monat
     Emails=E-Mail
     EMailsSetup=E-Mail Einstellungen
    -EMailsDesc=Auf dieser Seite können Sie Ihre PHP-Parameter für den E-Mail-Versand überschreiben. In den meisten Unix/Linux-Umgebungen mit korrekter PHP-Konfiguration sind diese Einstellungen nutzlos.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Absenderprofil
    -MAIN_MAIL_SMTP_PORT=SMTP-Port (standardmäßig in der php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP-Host (standardmäßig in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT=SMTP(S)-Port  (Standardeintrag in der php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP(S)-Host (Standardeintrag in der php.ini: <b>%s</b>)
     MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS-Port (nicht in PHP definiert in Unix-Umgebungen)
     MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP-Host (nicht in PHP definiert auf Unix-Umgebungen)
    -MAIN_MAIL_EMAIL_FROM=E-Mail-Absender für automatisch erzeugte Mails (standardmäßig in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Senden Sie automatisch eine Blindkopie aller gesendeten Mails an
    -MAIN_DISABLE_ALL_MAILS=Alle E-Mail-Funktionen deaktivieren (für Test- oder Demozwecke)
    -MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Methode zum Senden von E-Mails
    -MAIN_MAIL_SMTPS_ID=SMTP ID, wenn Authentifizierung erforderlich
    -MAIN_MAIL_SMTPS_PW=SMTP Passwort, wenn Authentifizierung erforderlich
    -MAIN_MAIL_EMAIL_TLS= TLS (SSL)-Verschlüsselung verwenden
    -MAIN_MAIL_EMAIL_STARTTLS= TLS (STARTTLS)-Verschlüsselung verwenden
    +MAIN_MAIL_EMAIL_FROM=Absender Email für automatische Emails (Standardwert in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Blindkopie (Bcc) aller gesendeten Emails an
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
    +MAIN_MAIL_FORCE_SENDTO=Sende alle E-Mails an (Anstelle der echten Empfänger, zu Testzwecken)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Sendemethode für Emails
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=TLS (SSL) Verschlüsselung verwenden
    +MAIN_MAIL_EMAIL_STARTTLS=TLS (STARTTLS)-Verschlüsselung verwenden
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
     MAIN_DISABLE_ALL_SMS=Alle SMS-Funktionen abschalten (für Test- oder Demozwecke)
     MAIN_SMS_SENDMODE=Methode zum Senden von SMS
     MAIN_MAIL_SMS_FROM=Standard Versendetelefonnummer der SMS-Funktion
    @@ -292,7 +296,7 @@ ModuleSetup=Moduleinstellung
     ModulesSetup=Modul-/Applikationseinstellung
     ModuleFamilyBase=System
     ModuleFamilyCrm=Kunden-Beziehungs-Management (CRM)
    -ModuleFamilySrm=Vendor Relation Management (VRM)
    +ModuleFamilySrm=Verkäufermanagement (VRM)
     ModuleFamilyProducts=Produktverwaltung (WW)
     ModuleFamilyHr=Personalverwaltung (PM)
     ModuleFamilyProjects=Projektverwaltung/Zusammenarbeit
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-Module Werkzeuge
     ModuleFamilyExperimental=Experimentelle Module
     ModuleFamilyFinancial=Finanzmodule (Rechnungswesen/Finanzen)
     ModuleFamilyECM=Inhaltsverwaltung (ECM)
    -ModuleFamilyPortal=Websites und weitere Frontal-Anwendung
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Schnittstellen zu externen Systemen
     MenuHandlers=Menü-Handler
     MenuAdmin=Menü-Editor
    @@ -312,12 +316,12 @@ StepNb=Schritt %s
     FindPackageFromWebSite=Finden Sie ein Paket, das die gewünschten Funktionen beinhaltet (zum Beispiel auf der offiziellen Website %s).
     DownloadPackageFromWebSite=Installationspaket herunterladen (z.B. von offizieller Webseite %s).
     UnpackPackageInDolibarrRoot=Entpacke die Paketdatei in das Dolibarr Serververzeichnis für externe Module: <b>%s</b>
    -UnpackPackageInModulesRoot=Um eine externes Modul bereit zu stellen, entpacken Sie die gepackten Dateien in das Serververzeichnis für Module: <b>%s</b>
    -SetupIsReadyForUse=Modul-Installation abgeschlossen, es muss aber noch aktiviert und konfiguriert werden: <a href="%s">%s</a>.
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=Das alternative Stammverzeichnis ist nicht zu einem existierenden Verzeichnis definiert.<br>
     InfDirAlt=Seit Version 3 ist es möglich, ein alternatives Stammverzeichnis anzugeben. Dies ermöglicht, Erweiterungen und eigene Templates am gleichen Ort zu speichern.<br>Erstellen Sie einfach ein Verzeichis im Hauptverzeichnis von Dolibarr an (z.B. "custom").<br>
     InfDirExample=<br>Danach in der Datei <strong>conf.php</strong> deklarieren<br> $dolibarr_main_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>Wenn diese Zeilen mit "#" auskommentiert sind, um sie zu aktivieren, einfach das Zeichen "#" entfernen.
    -YouCanSubmitFile=In diesen Schritt können Sie die .zip-Datei des Modul-Pakets auswählen:
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Aktuelle dolibarr-Version
     CallUpdatePage=Zur Aktualisierung der Daten und Datenbankstrukturen zur Seite %s gehen.
     LastStableVersion=Letzte stabile Version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Werfen Sie einen Blick auf die Wiki-Seite für eine vollständ
     UseACacheDelay= Verzögerung für den Export der Cache-Antwort in Sekunden (0 oder leer für kein Caching)
     DisableLinkToHelpCenter=Link mit "<b>Benötigen Sie Hilfe oder Unterstützung</b>" auf der Anmeldeseite ausblenden
     DisableLinkToHelp=Link zur Online-Hilfe "<b>%s</b>" ausblenden
    -AddCRIfTooLong=Kein automatischer Zeilenumbruch. Entsprechend müssen Sie, falls die Länge Ihrer Zeilen die Dokumentenbreite übersteigt, manuelle Zeilenschaltungen im Textbereich einfügen.
    -ConfirmPurge=Möchten Sie wirklich endgültig löschen ?<br> Alle Dateien werden unwiderbringlich gelöscht (Attachments, Angebote, Rechnungen usw.)
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Mindestlänge
     LanguageFilesCachedIntoShmopSharedMemory=.lang-Sprachdateien in gemeinsamen Cache geladen
     LanguageFile=Sprachdatei
    -ExamplesWithCurrentSetup=Beispiele mit der derzeitigen Systemkonfiguration
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Liste der OpenDocument-Vorlagenverzeichnisse
     ListOfDirectoriesForModelGenODT=Liste der Verzeichnisse mit Vorlagendateien mit OpenDocument-Format.<br><br>Fügen Sie hier den vollständigen Pfad der Verzeichnisse ein.<br>Trennen Sie jedes Verzeichnis mit einer Zeilenschaltung<br>Verzeichnisse des ECM-Moduls fügen Sie z.B. so ein <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br> Dateien in diesen Verzeichnissen müssen mit <b>.odt</b>  oder <b>.ods</b> enden.
    -NumberOfModelFilesFound=Anzahl der in diesen Verzeichnissen gefundenen .odt/.ods-Dokumentvorlagen
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Beispiele für Syntax:<br>c:\\mydir<br>/Home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>Lesen Sie die Wiki Dokumentation um zu wissen, wie Sie Ihre odt Dokumentenvorlage erstellen, bevor Sie diese in den Kategorien speichern:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -370,14 +374,14 @@ ResponseTimeout=Antwort Timeout
     SmsTestMessage=Test Nachricht von __PHONEFROM__ zu __PHONETO__
     ModuleMustBeEnabledFirst=Modul <b>%s</b> muss aktiviert sein wenn Sie dieses Feature benötigen.
     SecurityToken=Schlüssel um die URLs zu entschlüsseln
    -NoSmsEngine=Kein SMS Sende Manager verfügbar. SMS Sende Manager sind nicht installiert (weil diese von externen Lieferanten abhängig sind) aber Sie können welche auf http://www.dolistore.com finden.
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Sie können jede globale Optionen im Zusammenhang mit der PDF-Erzeugung einstellen
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Regeln zum Formen der Adresse-Boxen
    -HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
    +HideAnyVATInformationOnPDF=Alle Informationen zu Steuern und MWSt in generierten PDB ausblenden
     PDFRulesForSalesTax=Regeln für Umsatzsteuer / MwSt.
     PDFLocaltax=Regeln für %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Unterdrücke Produktbeschreibungen in generierten PDF
     HideRefOnPDF=Unterdrücke Produkt-Referenzen in generierten PDF
     HideDetailsOnPDF=Unterdrücke Produktdetailzeilen in generierten PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameter zum Sichern von URLs
     SecurityTokenIsUnique=Verwenden Sie einen eindeutigen Sicherheitsschlüssel für jede URL
     EnterRefToBuildUrl=Geben Sie eine Referenz für das Objekt %s ein
     GetSecuredUrl=Holen der berechneten URL
    -ButtonHideUnauthorized=Buttons für Nicht-Admins ausblenden anstatt auszugrauen ?
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Alter USt.-Satz
     NewVATRates=Neuer USt.-Satz
     PriceBaseTypeToChange=Ändern Sie den Basispreis definierte nach
    @@ -413,14 +417,14 @@ ExtrafieldCheckBox=Kontrollkästchen
     ExtrafieldCheckBoxFromList=Kontrollkästchen aus Tabelle
     ExtrafieldLink=Verknüpftes Objekt
     ComputedFormula=Berechnetes Feld
    -ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    -ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
    +ComputedFormulaDesc=Hier kann eine Formler hinterlegt werden die andere Eigenschaften von Objekten oder PHP Code um dynamischen Werte zu berechnen. Jede PHP kompatible Syntax, inklusive der "?" Bedingung und den folgenden globalen Objekten: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong> können verwendet werden.<br><strong>WARNUNG</strong>: Nur bestimte Eigenschaften der Objekte können verfügbar sein. Falls eine nicht geladene Eigenschaft notwendig ist, kann das Objekt selbst geladen werden, wie im zweiten Beispiel.<br>Bei der Verwendung von berechneten Feldern kann der Benutzer keine eigenen Werte eingeben. Zudem, wenn es einen Syntaxfehler gibt, kann es sein dass die Formel keinen Wert zurückgibt.<br><br>Beispielformel:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Beispiel um ein Objekt erneut zu laden<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Weiteres Beispiel um ein Objekt und das Vaterobjekt zu laden:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
    +ExtrafieldParamHelpselect=Parameterlisten müssen das Format Schlüssel,Wert haben (Der Schlüssel kann nicht '0' sein)<br><br> zum Beispiel:<br>1,Wert1<br>2,Wert2<br>3,Wert3<br>...<br><br>Um die Liste in Abhängigkeit zu einer anderen zu haben:<br>1,Wert1|options_<i>parent_list_code</i>:parent_key<br>2,Wert2|options_<i>parent_list_code</i>:parent_key<br><br>Um Listen in Abhängigkeit zu anderen listen zu haben: <br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=Die Liste muss im Format: Schlüssel, Wert sein (wobei der Schlüssel nicht '0' sein kann) <br> <br> zum Beispiel: <br> 1, Wert1 <br> 2, Wert2 <br> 3, Wert3 <br> ...
     ExtrafieldParamHelpradio=Die Liste muss im Format: Schlüssel, Wert sein (wobei der Schlüssel nicht '0' sein kann) <br> <br> zum Beispiel: <br> 1, Wert1 <br> 2, Wert2 <br> 3, Wert3 <br> ...
    -ExtrafieldParamHelpsellist=List of values comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>- idfilter is necessarly a primary int key<br>- filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    -ExtrafieldParamHelpchkbxlst=List of values comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list :<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax : ObjectName:Classpath<br>Examples :<br>Societe:societe/class/societe.class.php<br>Contact:contact/class/contact.class.php
    +ExtrafieldParamHelpsellist=Die Parameterliste stammt aus einer Tabelle<br>Syntax: \ntable_name: label_field: id_field::filter<br>Beispiel: c_typent: libelle:id::filter<br><br>Filter kann ein einfacher Test sein (z.B. active=1) um nur aktive Werte anzuzeigen<br>Benutzen Sie $ID$  für die ID des aktuellen Objekts im Filter<br>Benutzen Sie $SEL$<br>Wenn Sie ein SELECT<br>Benutzen Sie zur Abfrage von Extra-Feldern(Attributen) die extra.fieldcode = ... \n(wo Feldcode ist der Code von extrafield)<br><br>um auf einer anderen komplementären Attributliste, die Liste zu haben je c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter<br>um die Liste zu haben, auf einer anderen Liste abhängig:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter\n
    +ExtrafieldParamHelpchkbxlst=Die Parameterliste stammt aus einer Tabelle <br>:\nSyntax:  table_name:label_field:id_field::filter<br>\nBeispiele: c_typent:libelle:id::filter<br><br> der Filter kann ein einfacher Test sein(z.B. aktiv=1) um nur die aktiven Werte zu zeigen.<br>\nBenutzen Sie $ID$ um die ID des aktuellen Objekts im Filter zu nutzen<br>\nUm ein SELECT in einem Filter zu verwenden, verwenden Sie $SEL$ <br>\nUm in der Abfrage die zusätzlichen Attribute zu filtern, verwenden Sie den Syntax \nextra.fieldcode=... (fieldcode bezeichnet den Feldcode des zusätzlichen Feldes)<br><br>eine Liste abhängig von einem anderen zusätzlichen Attribute anzuzeigen<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter \n<br><br>Um eine Liste anzuzeigen auf einer anderen Liste je <br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    +ExtrafieldParamHelplink=Parameter müssen folgendes Format haben: ObjektName:Klassenpfad<br>Syntax: ObjektName:Klassenpfad<br> Beispiele:<br>Societe:societe/class/societe.class.php<br>Contact:contact/class/contact.class.php
     LibraryToBuildPDF=Bibliothek zum erstellen von PDF
     LocalTaxDesc=In einigen Ländern gelten zwei oder drei Steuern auf jeder Rechnungszeile. Wenn dies der Fall ist, wählen Sie den Typ für die zweite und dritte Steuer und den Steuersatz. Mögliche Arten sind: <br> 1: Ortsteuer gelten für Produkte und Dienstleistungen, ohne Mehrwertsteuer (Ortssteuer wird ohne Berücksichtigung der MwSt berechnet) <br> 2: Ortssteuer gilt für Produkte und Dienstleistungen mit Mehrwertsteuer (Ortssteuer wird mit Berücksichtigung det MwSt berechnet) <br> 3: Ortstaxe gilt für Produkte ohne Mehrwertsteuer (Ortssteuer wird ohne Berücksichtigung der MwSt berechnet) <br> 4: Ortssteuer gilt für Produkte, mit Mehrwertsteuer (Ortssteuer wird mit Berücksichtigung der MwSt berechnet) <br> 5: Ortssteuer gilt für Dienstleistungen, ohne Mehrwertsteuer (Ortssteuer wird ohne Berücksichtigung der MwSt berechnet) <br> 6: Ortssteuer gilt für Dienstleistungen mit Mehrwertsteuer (Ortssteuer wird mit Berücksichtigung der MwSt berechnet)
     SMS=SMS
    @@ -432,39 +436,39 @@ DefaultLink=Standardlink
     SetAsDefault=Als Standard setzen
     ValueOverwrittenByUserSetup=Achtung, dieser Wert kann durch den Benutzer überschrieben werden (jeder kann seine eigene ClickToDial-URL setzen)
     ExternalModule=Externes Modul - im Verzeichnis %s installiert
    -BarcodeInitForThirdparties=Alle Strichcodes für Drittanbieter initialisieren
    +BarcodeInitForthird-parties=Alle Strichcodes für Drittanbieter initialisieren
     BarcodeInitForProductsOrServices=Alle Strichcodes für Produkte oder Services initialisieren oder zurücksetzen
     CurrentlyNWithoutBarCode=Zur Zeit gibt es <strong>%s</strong> Datensätze in <strong>%s</strong> %s ohne Barcode.
     InitEmptyBarCode=Startwert für die nächsten %s leeren Datensätze
     EraseAllCurrentBarCode=Alle aktuellen Barcode-Werte löschen
     ConfirmEraseAllCurrentBarCode=Wirklich alle aktuellen Barcode-Werte löschen
     AllBarcodeReset=Alle Barcode-Werte wurden entfernt
    -NoBarcodeNumberingTemplateDefined=Im Barcode-Modul wurde kein Numerierungs-Schema aktiviert.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Dateicache aktivieren
     ShowDetailsInPDFPageFoot=Mehr Detailinfos im PDF Fussbereich anzeigen, wie z.B. Ihre Firmenadresse, oder CEO Name (Zusätzlich zur Firmennummer, Firmenart und MWSt Nummer).
     NoDetails=Keine weiteren Details in der Fusszeile
     DisplayCompanyInfo=Firmenadresse anzeigen
     DisplayCompanyManagers=Anzeige Namen der Geschäftsführung
     DisplayCompanyInfoAndManagers=Firmenanschrift und Managernamen anzeigen
    -EnableAndSetupModuleCron=Um wiederkehrende Rechnungen automatisch zu generieren, muss Modul *%s* aktiviert und korrekt eingerichtet sein. Ansonsten müssen die Rechnungen via *Erstellen* Knopf auf dieser Vorlage erstellt werden. Auch wenn die Rechnungen automatisch generiert werden, können trotzdem noch manuelle Rechnungen erstellt werden. Die Perioden werden nicht doppelt in Rechnung gestellt.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Leeren Kontierungscode zurückgeben.
    -ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
    +ModuleCompanyCodeDigitaria=Kontierungscode hängt vom Partnercode ab. Der Code setzt sich aus dem Buchstaben 'C' und den ersten 5 Stellen des Partnercodes zusammen.
     Use3StepsApproval=Standardmäßig, Einkaufsaufträge müssen durch zwei unterschiedlichen Benutzer erstellt und freigegeben werden (ein Schritt/Benutzer zu erstellen und ein Schritt/Benutzer für die Freigabe). Beachten Sie wenn ein Benutzer beide Rechte hat - zum erstellen und freigeben, dann reicht ein Benutzer für diesen Vorgang. Optional können Sie ein zusätzlicher Schritt/User für die Freigabe einrichten, wenn der Betrag einen bestimmten dedizierten Wert übersteigt (wenn der Betrag übersteigt wird, werden 3 Stufen notwendig: 1=Validierung, 2=erste Freigabe und 3=Gegenfreigabe.<br>Lassen Sie den Feld leer wenn eine Freigabe (2 Schritte) ausreicht; Tragen Sie einen sehr niedrigen Wert (0.1) wenn eine zweite Freigabe notwendig ist.
     UseDoubleApproval=3-Fach Verarbeitungsschritte verwenden wenn der Betrag (ohne Steuer) höher ist als ...
    -WarningPHPMail=WARNUNG: Es ist oft besser, für ausgehende E-Mails den E-Mail-Server Ihres Providers anstatt des Standardservers zu verwenden. Einige E-Mail-Provider (wie Yahoo) erlauben Ihnen nicht, eine E-Mail von einem anderen Server als ihrem eigenen Server zu senden. Ihre aktuelle Konfiguration verwendet den Server der Anwendung zum Senden von E-Mails und nicht den Server Ihres E-Mail-Providers. Daher werden einige Empfänger (die mit dem restriktiven DMARC-Protokoll kompatibel sind) Ihren E-Mail-Provider fragen, ob sie Ihre E-Mail annehmen können. Einige Provider (wie Yahoo) werden dann mit "Nein" antworten, weil der Server nicht ihrer ist. Also könnte es sein, dass einige Ihrer gesendeten E-Mails nicht akzeptiert werden (beachten Sie auch die E-Mail-Quota ihres Providers). <br>Wenn Ihr Provider (wie Yahoo) diese Einschränkung hat, müssen Sie das E-Mail-Setup ändern, und die andere Methode "SMTP-Server" auszuwählen und den SMTP-Server mit den von Ihrem E-Mail-Anbieter bereitgestellten Anmeldeinformationen einrichten (fragen Sie Ihren E-Mail-Provider nach SMTP-Zugangsdaten für Ihr Konto).
    -WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
    +WarningPHPMail2=Falls Ihm E-Mailprovider den Zugriff für den Emailclient auf eine IP Adresse einschränken muss (Sehr selten), dann ist dies die IP Adresse für ihr ERP CRM System: <strong>%s</strong>.
     ClickToShowDescription=Klicke um die Beschreibung zu sehen
     DependsOn=Diese Modul benötigt die folgenden Module
     RequiredBy=Diese Modul wird durch folgende Module verwendet
    -TheKeyIsTheNameOfHtmlField=Das ist der Name des HTML Feldes. Sie benötigen HTML Kenntnisse um den Namen des Feldes aus der HTML Seite zu ermitteln.
    -PageUrlForDefaultValues=Hier muss die relative URL der Seite eingegeben werden. Wenn Parameter in der URL angegeben werden, dann werden alle Vorgabewerte auf den gleichen Wert gesetzt. Beispiele:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Persönliche Standardwerte erlauben
    -EnableOverwriteTranslation=Aktiviere die Verwendung von übersteuerten Übersetzungen
    -GoIntoTranslationMenuToChangeThis=Eine Übersetzung wurde für diesen Schlüssel gefunden, um die Übersetzung anzupassen, gehen Sie in Menü "Home->Setup->Überseztungen"
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warnung: Änderung an der Standardsortierreihenfolge können zu Fehlern führen, falls das betreffende Feld nicht vohanden ist. Falls dies passiert, entfernen sie das betreffende Feld oder stellen die den Defaultwert wieder her.
     Field=Feld
     ProductDocumentTemplates=Dokumentvorlagen zur Erstellung von Produktdokumenten
    @@ -473,19 +477,21 @@ WatermarkOnDraftExpenseReports=Wasserzeichen auf Entwurf von Ausgabenbelegen
     AttachMainDocByDefault=Setzen Sie diesen Wert auf 1, wenn Sie das Hauptdokument standardmäßig per E-Mail anhängen möchten (falls zutreffend).
     FilesAttachedToEmail=Datei hinzufügen
     SendEmailsReminders=Erinnerung per E-Mail versenden
    -davDescription=Add a component to be a DAV server
    -DAVSetup=Setup of module DAV
    -DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +davDescription=Komponente hinzufügen damit der DAV Server aktiviert wird
    +DAVSetup=DAV Modul einrichten
    +DAV_ALLOW_PUBLIC_DIR=Öffentliches Webdav Verzeichnis aktivieren (WebDav Verzeichenis ohne Login)
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Benutzer und Gruppen
    +Module0Name=Benutzer & Gruppen
     Module0Desc=Benutzer / Mitarbeiter und Gruppen Administration
     Module1Name=Partner
    -Module1Desc=Partner- und Kontakteverwaltung
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Vertrieb
     Module2Desc=Vertriebsverwaltung
     Module10Name=Buchhaltung
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Angebote
     Module20Desc=Angebotsverwaltung
     Module22Name=E-Mail-Kampagnen
    @@ -495,9 +501,9 @@ Module23Desc=Überwachung des Energieverbrauchs
     Module25Name=Kundenaufträge
     Module25Desc=Kundenauftragsverwaltung
     Module30Name=Rechnungen
    -Module30Desc=Rechnungs- und Gutschriftsverwaltung für Kunden. Rechnungsverwaltung für Lieferanten
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Lieferanten
    -Module40Desc=Suppliers and purchase management (purchase orders and billing)
    +Module40Desc=Lieferanten und Einkaufsverwaltung (Bestellungen und Lieferantenrechnungen)
     Module42Name=Debug Logs
     Module42Desc=Protokollierungsdienste (Syslog). Diese Logs dienen der Fehlersuche/Analyse.
     Module49Name=Bearbeiter
    @@ -511,13 +517,13 @@ Module52Desc=Produktbestandsverwaltung
     Module53Name=Leistungen
     Module53Desc=Leistungs-Verwaltung
     Module54Name=Verträge/Abonnements
    -Module54Desc=Vertragsverwaltung (Services oder sich wiederholende Abos)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode-Verwaltung
     Module56Name=Telefonie
     Module56Desc=Telefonie-Integration
     Module57Name=Bestellung mit Zahlart Lastschrift
    -Module57Desc=Verwaltung von Lastschrift-Bestellungen. Inklusive SEPA Erzeugung für EU Länder.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=ClickToDial-Integration
     Module59Name=Bookmark4u
    @@ -528,108 +534,112 @@ Module75Name=Spesen- und Reiseaufzeichnungen
     Module75Desc=Reise- und Fahrtspesenverwaltung
     Module80Name=Lieferungen
     Module80Desc=Versand und Lieferauftragsverwaltung
    -Module85Name=Banken und Kassen
    +Module85Name=Bank | Kassa
     Module85Desc=Verwaltung von Bank- oder Bargeldkonten
    -Module100Name=Externe Website
    -Module100Desc=Erlaubt die Einbindung einer externen Website in die Menüs von dolibarr und die Anzeige der Seite innerhalb eines Frames
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman und SPIP
     Module105Desc=Mailman oder SPIP Schnittstelle für die Mitgliedsmodul
     Module200Name=LDAP
    -Module200Desc=LDAP-Verzeichnissynchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke-Integration
     Module240Name=Daten Exporte
    -Module240Desc=Datenexport-Werkzeug (mit einem Assistenten)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Daten Importe
    -Module250Desc=Werkzeug zum Datenimport (mit Assistenten)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Mitglieder
     Module310Desc=Management von Mitglieder einer Stiftung/Vereins
     Module320Name=RSS Feed
     Module320Desc=RSS-Feed-Bildschirm innerhalb des Systems anzeigen
    -Module330Name=Favoriten
    -Module330Desc=Verwalten von Favoriten
    -Module400Name=Projekte / Chancen / Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Lesezeichen und Kurzbefehle
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projekte | Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webkalender
     Module410Desc=Webkalenderintegration
     Module500Name=Steuern und Sonderausgaben
    -Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
    +Module500Desc=Verwalten von weiteren Ausgaben (Steuern, Sozialabgaben, Dividenden, ...)
     Module510Name=Lohnzahlungen
    -Module510Desc=Verwaltung der Angestellten-Löhne und -Zahlungen
    +Module510Desc=Record and track employee payments
     Module520Name=Darlehen
     Module520Desc=Verwaltung von Darlehen
     Module600Name=Benachrichtigungen bei Geschäftsereignissen
    -Module600Desc=Email-Benachrichtigung (ausgelößt durch einige Ereignisse) zu Benutzern (seperate Einstellungen je Benutzer), Partner-Kontakte (seperate Einstellung für jeden Partner) oder festen Email-Adressen.
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Produkt Varianten
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Spenden
     Module700Desc=Spendenverwaltung
     Module770Name=Spesenabrechnungen
    -Module770Desc=Management und Reporting von Reise- und Spesenabrechnungen (Transport, Essen, ...)
    -Module1120Name=Vendor commercial proposal
    -Module1120Desc=Request vendor commercial proposal and prices
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
    +Module1120Name=Lieferantenangebot
    +Module1120Desc=Anfordern von Lieferanten-Angeboten und Preise
     Module1200Name=Mantis
     Module1200Desc=Mantis-Integration
     Module1520Name=Dokumente erstellen
     Module1520Desc=Mailings Dokumente erstellen
     Module1780Name=Kategorien/#tags
    -Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
    +Module1780Desc=Kategorien/Tags erstellen (Produkte, Kunden, Lieferanten, Kontakte oder Mitglieder)
     Module2000Name=FCKeditor
    -Module2000Desc=Bearbeitung von machen Textbereichen mit erweiterten Editor (basierend auf CKEditor) erlauben
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamische Preise
     Module2200Desc=Mathematische Ausdrücke für Preise aktivieren
     Module2300Name=Geplante Aufträge
     Module2300Desc=Verwaltung geplanter Aufgaben (Cron oder chrono Tabelle)
     Module2400Name=Ereignisse/Termine
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / CMS
    -Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
    +Module2500Desc=Speicherung und Verteilung von Dokumenten. Automatische organisation der generierten oder gespeicherten Dokumente. Teilen Sie sie bei Bedarf.
     Module2600Name=API/Webservice (SOAP Server)
     Module2600Desc=Aktivieren Sie Dolibarr SOAP Server,  unterstütztes API-Service.
     Module2610Name=API/Web Services (REST Server)
     Module2610Desc=Aktiviere der Dolibarr REST Serverdienst
     Module2660Name=WebServices aufrufen (SOAP Client)
    -Module2660Desc=Web Service Client von Dolibarr aktivieren (Kann benutzt werde, um Daten/anfragen zu externen Servern zu verschicken. Momentan ist das nur für Bestellungen vorgesehen).
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Verwenden Sie den online Gravatar-Dienst (www.gravatar.com) für die Anzeige von Benutzer- und Mitgliederbildern (Zuordnung über E-Mail-Adressen). Hierfür benötigen Sie eine aktive Internetverbindung
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP-Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind Konvertierung
     Module3100Name=Skype
     Module3100Desc=Skype-Button zu Karten von Benutzer-/Partner-/Kontakt-/Mitglieder-Karten hinzufügen
     Module3200Name=Unveränderliche Archive
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=PV
     Module4000Desc=Personalverwaltung
     Module5000Name=Mandantenfähigkeit
     Module5000Desc=Ermöglicht Ihnen die Verwaltung mehrerer Firmen
     Module6000Name=Workflow
    -Module6000Desc=Workflow management (automatic creation of object and/or automatic status change)
    +Module6000Desc=Workflow Management (Automaitische Erstellung von Objekten und/oder automatische Statusaktualisierungen)
     Module10000Name=Webseiten
    -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
    +Module10000Desc=Erstelle öffentliche Webseiten mit dem WYSIWYG-Editor.\nDer Webserver (Apache, Nginx, ...) muss auf das Dolibarrverzeichnis verweisen damit ein eigener Domainname verwendet werden kann.
     Module20000Name=Urlaubsantrags-Verwaltung
    -Module20000Desc=Definieren und beobachten sie die Urlaubsanträge Ihrer Angestellten.
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Produkt Chargen
     Module39000Desc=Chargen oder Seriennummer, Haltbarkeitsdatum und Verfallsdatum Management für Produkte
    +Module40000Name=Mehrere Währungen
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Modul um Onlinezahlungen von Debit/Kreditkarten via PayBox entgegennehmen. Ihre Kunden können damit freie Zahlungen machen, oder Dolibarr Objekte (Rechnungen, Bestelltungen...) bezahlen
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Kasse
     Module50100Desc=Modul Point of Sale (POS)\n
    +Module50150Name=Kassen
    +Module50150Desc=Kassenmodul
     Module50200Name=Paypal
    -Module50200Desc=Modul um Online Zahlungen via PayPal entgegenzunehmen. Ihre Kunden können damit freie Zahlungen machen, oder Dolibarr Objekte (Rechnungen, Bestelltungen...) bezahlen
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Buchhaltung (erweitert)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direktdruck (ohne die Dokumente zu öffnen) mittels CUPS IPP (Drucker muss vom Server aus sichtbar sein und auf dem Server muss CUPS installiert sein)
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Befragung, Umfrage oder Abstimmung
    -Module55000Desc=Modul zur Online-Umfragen, Umfragen oder Abstimmungen zu machen (wie Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Gewinnspannen
     Module59000Desc=Modul zur Verwaltung von Gewinnspannen
     Module60000Name=Kommissionen
     Module60000Desc=Modul zur Verwaltung von Kommissionen
    -Module62000Name=Incoterm
    -Module62000Desc=Funktion hinzufügen um Incoterms zu verwalten
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Ressourcen
     Module63000Desc=Verwalte Ressourcen (Drucker, Fahrzeuge, Räume, etc.) für Ereignisse.
     Permission11=Rechnungen einsehen
    @@ -651,9 +661,9 @@ Permission32=Produkte/Leistungen erstellen/bearbeiten
     Permission34=Produkte/Leistungen löschen
     Permission36=Projekte/Leistungen exportieren
     Permission38=Produkte exportieren
    -Permission41=Projekte und Aufgaben lesen (Geteilte Projekte und Projekte in denen ich Kontakt bin).  Es kann auch Zeitaufwand auf zugewiesenen Aufgaben oder via Hierarchie gebucht werden.
    -Permission42=Erstellen und Ändern von Projekten (geteilte Projekte und solche, in denen ich Kontakt bin). Kann auch Aufgaben erstellen und Benutzer dem Projekt und den Aufgaben zuweisen.
    -Permission44=Projekte und Aufgaben löschen (gemeinsame Projekte und Projekte in welchen ich Ansprechpartner bin)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Projekte exportieren
     Permission61=Serviceaufträge ansehen
     Permission62=Serviceaufträge erstellen/bearbeiten
    @@ -686,7 +696,7 @@ Permission109=Sendungen löschen
     Permission111=Finanzkonten einsehen
     Permission112=Transaktionen erstellen/ändern/löschen und vergleichen
     Permission113=Einstellungen Finanzkonten (erstellen, Kategorien verwalten)
    -Permission114=Transaktionen ausgleichen
    +Permission114=Reconcile transactions
     Permission115=Transaktionen und Kontoauszüge exportieren
     Permission116=Transfers zwischen Konten
     Permission117=Scheckeinlösungen verwalten
    @@ -694,15 +704,15 @@ Permission121=Mit Benutzer verbundene Partner einsehen
     Permission122=Mit Benutzer verbundene Partner erstellen/bearbeiten
     Permission125=Mit Benutzer verbundene Partner löschen
     Permission126=Partner exportieren
    -Permission141=Alle Projekte und Aufgaben lesen (Auch private Projekte in denen ich nicht Kontakt bin)
    -Permission142=Projekte und Aufgaben erstellen und ändern (Auch private Projekte in denen ich nicht Kontakt bin)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Löschen Sie alle Projekte und Aufgaben (einschließlich privater Projekte in denen ich kein Kontakt bin)
     Permission146=Lieferanten einsehen
     Permission147=Statistiken einsehen
     Permission151=Bestellung mit Zahlart Lastschrift
     Permission152=Lastschriftaufträge erstellen/bearbeiten
     Permission153=Bestellungen mit Zahlart Lastschrift übertragen
    -Permission154=Lastschriftaufträge genehmigen/ablehnen
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Verträge/Abonnements einsehen
     Permission162=Verträge/Abonnements erstellen/bearbeiten
     Permission163=Service/Abonnement in einem Vertrag aktivieren
    @@ -725,7 +735,7 @@ Permission187=Lieferantenbestellungen schließen
     Permission188=Lieferantenbestellungen stornieren
     Permission192=Leitungen erstellen
     Permission193=Zeilen stornieren
    -Permission194=Leitungen einsehen
    +Permission194=Read the bandwidth lines
     Permission202=ADSL Verbindungen erstellen
     Permission203=Verbindungen zwischen Bestellungen
     Permission204=Bestell-Verbindungen
    @@ -750,12 +760,12 @@ Permission244=Inhalte versteckter Kategorien einsehen
     Permission251=Andere Benutzer und Gruppen einsehen
     PermissionAdvanced251=Andere Benutzer einsehen
     Permission252=Berechtigungen andere Benutzer einsehen
    -Permission253=Andere Benutzer und Gruppen erstellen/bearbeiten (inkl. Rechteverwaltung)
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Andere interne/externe Benutzer und Gruppen erstellen/bearbeiten (inkl. Rechteverwaltung)
     Permission254=Nur externe Benutzer erstellen/bearbeiten
     Permission255=Andere Passwörter ändern
     Permission256=Andere Benutzer löschen oder deaktivieren
    -Permission262=Zugang auf alle Partner erweitern (Nicht nur  Partner wo der Benutzer der Handelsvertreter ist) <br>Nicht wirksam für externe Nutzer (Immer beschränkt auf sich selbst für Angebote, Bestellungen, Rechnungen, Verträge, etc).<br>Nicht wirksam für Projekte(Nur Regeln für Projektberechtigungen, Sichtbarkeits- und Zuordnungsfragen)
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Rechnungen anzeigen
     Permission273=Ausgabe Rechnungen
    @@ -765,7 +775,7 @@ Permission283=Kontakte löschen
     Permission286=Kontakte exportieren
     Permission291=Tarife einsehen
     Permission292=Berechtigungen der Tarife einstellen
    -Permission293=Kundentarife ändern
    +Permission293=Modify customers tariffs
     Permission300=Barcodes einsehen
     Permission301=Barcodes erstellen/bearbeiten
     Permission302=Barcodes löschen
    @@ -787,11 +797,9 @@ Permission401=Rabatte einsehen
     Permission402=Rabatte erstellen/bearbeiten
     Permission403=Rabatte freigeben
     Permission404=Rabatte löschen
    -Permission501=Mitarbeiter Verträge und Löhne einlesen
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Lohnzahlungen einlesen
    -Permission512=Lohnzahlungen erstellen/bearbeiten
    -Permission514=Löhne löschen
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Löhne exportieren
     Permission520=Darlehen einsehen
     Permission522=Darlehen erstellen/bearbeiten
    @@ -844,8 +852,8 @@ Permission1251=Massenimports von externen Daten ausführen (data load)
     Permission1321=Kundenrechnungen, -attribute und -zahlungen exportieren
     Permission1322=Eine bezahlte Rechnung wieder öffnen
     Permission1421=Exportieren von Kundenaufträge und Attribute
    -Permission20001=Urlaubsanträge einsehen (eigene und die der Untergebenen) 
    -Permission20002=Urlaubsanträge anlegen/verändern (eigene und die der Untergebenen)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Urlaubsanträge löschen
     Permission20004=Alle Urlaubsanträge einsehen (von allen Benutzern einschließlich der nicht Untergebenen)
     Permission20005=Urlaubsanträge anlegen/verändern (von allen Benutzern einschließlich der nicht Untergebenen)
    @@ -880,8 +888,8 @@ Permission63001=Ressourcen anzeigen
     Permission63002=Ressource erstellen/bearbeiten
     Permission63003=Ressource löschen
     Permission63004=Verbinden von  Ressourcen zu Ereignissen
    -DictionaryCompanyType=Arten von Partnern
    -DictionaryCompanyJuridicalType=Rechtsformen von Partnern
    +DictionaryCompanyType=Art des Partners
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Potenzialstufen von Geschäftsaussicht
     DictionaryCanton=Bundesländer/Provinzen/Kantone
     DictionaryRegion=Regionen
    @@ -891,11 +899,11 @@ DictionaryCivility=Anreden und Titel
     DictionaryActions=Typen von Kalender Ereignissen
     DictionarySocialContributions=Arten von Sozialabgaben/Unternehmenssteuern
     DictionaryVAT=USt.-Sätze
    -DictionaryRevenueStamp=Amount of tax stamps
    +DictionaryRevenueStamp=Steuermarken Beträge
     DictionaryPaymentConditions=Zahlungsbedingungen
     DictionaryPaymentModes=Zahlungsarten
    -DictionaryTypeContact=Kontaktarten
    -DictionaryTypeOfContainer=Type of website pages/containers
    +DictionaryTypeContact=Contacts/addresses types
    +DictionaryTypeOfContainer=Art der Webseite Seiten/Container
     DictionaryEcotaxe=Ökosteuern (WEEE)
     DictionaryPaperFormat=Papierformate
     DictionaryFormatCards=Karten Formate
    @@ -908,47 +916,47 @@ DictionarySource=Quelle der Angebote/Aufträge
     DictionaryAccountancyCategory=Personalisierte Gruppen für Berichte
     DictionaryAccountancysystem=Kontenplan Modul
     DictionaryAccountancyJournal=Buchhaltungsjournale
    -DictionaryEMailTemplates=Textvorlagen für E-Mails
    +DictionaryEMailTemplates=Emailvorlagen
     DictionaryUnits=Einheiten
     DictionaryProspectStatus=Geschäftsanbahnungsarten
     DictionaryHolidayTypes=Urlaubsarten
     DictionaryOpportunityStatus=Verkaufschancen für Projekt/Lead
     DictionaryExpenseTaxCat=Spesenbericht - Mobilität
    -DictionaryExpenseTaxRange=Expense report - Range by transportation category
    +DictionaryExpenseTaxRange=Spesenreport - Bereich pro Transportkategorie
     SetupSaved=Einstellungen gespeichert
     SetupNotSaved=Einstellungen nicht gespeichert
     BackToModuleList=Zurück zur Modulübersicht
    -BackToDictionaryList=Zurück zur der Stammdatenübersicht
    -TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=USt-Verwaltung
    -VATIsUsedDesc=Beim Erstellen von Leads, Rechnungen, Bestellungen, etc. wird folgende Regel zum Berechnen des USt.-Satz verwendet:<br>Wenn der Verkäufer nicht der MwSt. unterliegt, wird ein MwSt. Satz von 0 verwendet. Ende der Regel.<br>Wenn Verkäufer- und Käufer-Land identisch sind, wird der MwSt. Satz des Produktes verwendet. Ende der Regel.<br>Wenn Verkäufer und Käufer beide in der EU sind und es sich um Transportprodukte (Autos, Schiffe, Flugzeuge) handelt, wird ein MwSt. Satz von 0 verwendet. (Die MwSt. muss durch den Käufer in seinem Land abgerechnet werden). Ende der Regel.<br>Wenn Verkäufer und Käufer beide in der EU sind und der Käufer kein Unternehmen ist, dann wird der MwSt. Satz des Produktes verwendet.<br>Wenn Verkäufer und Käufer beide in der EU sind, und der Käufer ein Unternehen ist, dann wird ein MwSt. Satz von 0 verwendet. Ende der Regel.<br>In allen andere Fällen wird ein MwSt. Satz von 0 vorgeschlagen. Ende der Regel.
    -VATIsNotUsedDesc=Die vorgeschlagene USt. ist standardmäßig 0 für alle Fälle wie Stiftungen, Einzelpersonen oder Kleinunternehmen.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +BackToDictionaryList=Back to list of Dictionaries
    +TypeOfRevenueStamp=Art der Steuermarke
    +VATManagement=MwSt-Verwaltung
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Zweite Steuer nicht nutzen
    -LocalTax1IsUsedDesc=Benutzen sie eine zweite Art von Steuer (andere als Mehrwertsteuer)
    -LocalTax1IsNotUsedDesc=Benutzen sie keine andere Art von Steuer (anders als Mehrwertsteuer)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Zweite Steuer-Art
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Dritte Steuer nicht nutzen
    -LocalTax2IsUsedDesc=Benutzen Sie eine dritte Art von Steuer (anders als Mehrwertsteuer)
    -LocalTax2IsNotUsedDesc=Benutzen sie keine andere Art von Steuer (anders als Mehrwertsteuer)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Dritte Steuer-Art
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= Die RE Rate standardmäßig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel: <br> Wenn te Käufer ist nicht unterworfen RE, RE standardmäßig = 0 ist. Ende der Regel. <br> Ist der Käufer unterzogen, um dann die RE RE standardmäßig. Ende der Regel. <br>
    -LocalTax1IsNotUsedDescES= Standardmäßig werden die vorgeschlagenen RE 0 ist. Ende der Regel.
    -LocalTax1IsUsedExampleES= In Spanien sind sie Profis unterliegen bestimmten Abschnitten der spanischen IAE.
    -LocalTax1IsNotUsedExampleES= In Spanien sind sie professionelle und Gesellschaften und vorbehaltlich bestimmter Abschnitte der spanischen IAE.
    -LocalTax2ManagementES= EKSt. Management
    -LocalTax2IsUsedDescES= Die RE Rate standardmäßig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel: <br> Unterliegt der Verkäufer nicht IRPF, dann ist IRPF standardmäßig 0. Ende der Regel. <br> Ist der Verkäufer zur IRPF dann der Einkommenssteuer unterworfen standardmäßig. Ende der Regel. <br>
    -LocalTax2IsNotUsedDescES= Standardmäßig werden die vorgeschlagenen IRPF 0 ist. Ende der Regel.
    -LocalTax2IsUsedExampleES= In Spanien, Freiberufler und unabhängigen Fachleuten, die ihre Dienstleistungen und Unternehmen, die das Steuersystem von Modulen gewählt haben.
    -LocalTax2IsNotUsedExampleES= In Spanien sind dies Firmen, die nicht der Steuer-System aller Module unterliegen.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Standardmäßig werden die vorgeschlagenen RE 0 ist. Ende der Regel.
    +LocalTax1IsUsedExampleES=In Spanien sind sie Profis unterliegen bestimmten Abschnitten der spanischen IAE.
    +LocalTax1IsNotUsedExampleES=In Spanien sind sie professionelle und Gesellschaften und vorbehaltlich bestimmter Abschnitte der spanischen IAE.
    +LocalTax2ManagementES=EKSt. Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Standardmäßig werden die vorgeschlagenen IRPF 0 ist. Ende der Regel.
    +LocalTax2IsUsedExampleES=In Spanien, Freiberufler und unabhängigen Fachleuten, die ihre Dienstleistungen und Unternehmen, die das Steuersystem von Modulen gewählt haben.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Berichte über lokale Steuern
     CalcLocaltax1=Sales - Käufe
     CalcLocaltax1Desc=Lokale Steuer-Reports werden mit der Differenz von lokalen Verkaufs- und Einkaufs-Steuern berechnet
    @@ -958,7 +966,9 @@ CalcLocaltax3=Verkauf
     CalcLocaltax3Desc=Lokale Steuer-Reports sind die Summe der lokalen Steuern auf Verkäufe
     LabelUsedByDefault=Bezeichnung wird verwendet falls keine Übersetzung für den Code vorhanden ist.
     LabelOnDocuments=Bezeichnung auf Dokumenten
    -NbOfDays=Anzahl der Tage
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Am Ende des Monats
     CurrentNext=Aktueller/ Nächster
     Offset=Wertsprung
    @@ -984,7 +994,7 @@ DatabaseUser=DB Benutzername
     DatabasePassword=DB Passwort
     Tables=Tabellen
     TableName=Tabellenname
    -NbOfRecord=Anzahl der Einträge
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Treiber Typ
     SummarySystem=Zusammenfassung der Systeminformationen
    @@ -996,7 +1006,7 @@ Skin=grafische Oberfläche
     DefaultSkin=Standardvorlage grafische Oberfläche
     MaxSizeList=Maximale Listenlänge
     DefaultMaxSizeList=Voreinstellung maximale Anzahl Zeilen für Listen
    -DefaultMaxSizeShortList=Standard für maximale Länge bei kurzen Listen (z.B. Kundenkarte)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Nachricht des Tages
     MessageLogin=Nachricht auf der Anmeldeseite
     LoginPage=Anmeldeseite
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Ständiges Suchfeld auf der linken Seite
     DefaultLanguage=Standardsprache der Anwendung (Sprachcode)
     EnableMultilangInterface=Mehrsprachigkeit aktivieren
     EnableShowLogo=Logo über dem linken Menü anzeigen
    -CompanyInfo=Information über die Firma/Institution
    -CompanyIds=Firmen-/Stiftungs-IDs
    +CompanyInfo=Firma oder Institution
    +CompanyIds=Company/Organization identities
     CompanyName=Firmenname
     CompanyAddress=Firmenadresse
     CompanyZip=Postleitzahl
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Kontoinhaber %s
     BankModuleNotActive=Finanzkontenmodul nicht aktiv
     ShowBugTrackLink=Zeige Link  <strong>%s</strong>
     Alerts=Benachrichtigungen
    -DelaysOfToleranceBeforeWarning=Verzögerungstoleranz vor Warnung
    -DelaysOfToleranceDesc=Hier können Sie die Verspätungstoleranz einstellen, bevor eine Benachrichtigung auf dem Bildschirm für jedes verspätete Element mit dem Symbol %s ausgegeben wird.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Verzögerungstoleranz (in Tagen) vor Warnung für noch nicht erledigte geplante Ereignisse (Kalenderereignisse)
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Verzögerungstoleranz (in Tagen) vor Warnungen für nicht rechtzeitig geschlossene Projekte
    -Delays_MAIN_DELAY_TASKS_TODO=Verzögerungstoleranz (in Tagen) vor Warnung für noch nicht erledigte, geplante Aufgaben (Projektaufgaben)
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Verzögerungstoleranz (in Tagen) vor  Warnung für noch nicht bearbeitete Bestellungen
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Verzögerungstoleranz (in Tagen) vor  Warnung für abzuschließende Angebote
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Verzögerungstoleranz (in Tagen) vor Warnung für nicht in Rechnung gestellte Angebote
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Verzögerungstoleranz (in Tagen) vor Warnung für zu aktivierende Leistungen
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Verzögerungstoleranz (in Tagen) vor Warnung für überfällige Vertrags-Leistungen
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über unbezahlte Lieferantenrechnungen
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über unbezahlte Kundenrechnungen
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über Bankkontenabgleich
    -Delays_MAIN_DELAY_MEMBERS=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über verspätete Mitgliedsbeiträge
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Verzögerungstoleranz (in Tagen) vor der Benachrichtigung über einzulösende Schecks
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Toleranz in Tagen vor der Benachrichtigung zur Genehmigung einer Spesenabrechnung
    -SetupDescription1=Die Einstellungsübersicht dient zum initialen Einrichten before mit der Verwendung von Dolibarr begonnen wird.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Andere Einträge verwalten optionale Parameter.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Protokollierte Ereignisse
    -Audit=Protokoll
    +Audit=Security events
     InfoDolibarr=Über Dolibarr
     InfoBrowser=Über Webbrowser
     InfoOS=Betriebsysteminfos
    @@ -1056,20 +1066,20 @@ BrowserName=Browser Name
     BrowserOS=Betriebssystem des Browsers
     ListOfSecurityEvents=Liste der sicherheitsrelevanten Ereignisse
     SecurityEventsPurged=Security-Ereignisse gelöscht
    -LogEventDesc=Hier können Sie die Protokollierungseinstellungen für sicherheitsrelevante Ereignisse anpassen. Administratoren können die entsprechenden Inhalte unter <b>Systemwerkzeuge-Protokoll</b> einsehen. Achtung: Diese Funktion kann zu erhöhtem Datenaufkommen in der Datenbank führen.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Einstellungen können nur durch </b>Administratoren</b> verändert werden.
     SystemInfoDesc=Verschiedene systemrelevante, technische Informationen - Lesemodus und nur für Administratoren sichtbar.
     SystemAreaForAdminOnly=Dieser Bereich steht ausschließlich Administratoren zur Verfügung. Keine der Benutzerberechtigungen kann dies ändern.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    -AccountantFileNumber=File number
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
    +AccountantFileNumber=Dateinummer
     DisplayDesc=Hier können Sie die Oberfläche, sowie das allgemeine 'Look and Feel' des Systems anpassen
     AvailableModules=Verfügbare Module
     ToActivateModule=Zum Aktivieren von Modulen gehen Sie zu Start->Einstellungen->Module
     SessionTimeOut=Sitzungszeitbegrenzung
    -SessionExplanation=Dieser Wert garantiert, dass eine Sitzung nie vor Zeitablauf beendet wird. Die PHP-Sitzungsverwaltung garantiert jedoch nicht, dass eine Sitzung wirklich nach Ablauf dieser Zeit beendet wird. Hierzu kann es kommen, wenn ein System zur Sitzungscache-Bereinigung im Einsatz ist.<br>Hinweis: ohne spezielles System wird PHP die Sitzung nach etwa <b>%s/%s</b> beenden - allerdings erst nach dem Start einer anderen Sitzung.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Verfügbare Trigger
    -TriggersDesc=Trigger sind Dateien, die nach einem Kopieren in das Verzeichnis <b>htdocs/core/triggers</b> das Workflow-Verhalten des Systems beeinflussen. Diese stellen neue, mit Systemereignissen verbundene, Ereignisse dar (Neuer Partner angelegt, Rechnung freigegeben, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Trigger in dieser Datei sind durch das <b>-NORUN</b>-Suffix in ihrem Namen deaktiviert.
     TriggerDisabledAsModuleDisabled=Trigger in dieser Datei sind durch das übergeordnete Modul <b>%s</b> deaktiviert.
     TriggerAlwaysActive=Trigger in dieser Datei sind unabhängig der Modulkonfiguration immer aktiviert.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Alle Standardwerte einfügen. Sie können eigene Werte zu den Sta
     ConstDesc=Diese Seite erlaubt es alle anderen Parameter einzustellen, die auf den vorherigen Seiten nicht verfügbar sind. Dies sind meist reservierte Parameter für Entwickler oder für die erweiterte Fehlersuche. Für eine Liste von Optionen <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank"> hier überprüfen </a>.
     MiscellaneousDesc=Alle anderen sicherheitsrelevanten Parameter werden hier eingestellt.
     LimitsSetup=Limits und Genauigkeit Einstellungen
    -LimitsDesc=Hier können Sie Grenzwerte, Genauigkeitseinstellungen und das Rundungsverhalten einstellen.
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Dezimalstellen max. für Stückpreise
     MAIN_MAX_DECIMALS_TOT=Dezimalstellen max. für Gesamtsummen
     MAIN_MAX_DECIMALS_SHOWN=Dezimalstellen max. für auf dem Bildschirm angezeigte Preise (Fügen Sie <b>...</b> nach dieser Nummer ein, wenn Sie <b>...</b> sehen wollen, falls ein Bildschirmpreis abgeschnitten wurde.
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Rundungseinstellung (Für Länder in denen nicht auf 10er
     UnitPriceOfProduct=Nettostückpreis
     TotalPriceAfterRounding=Gesamtpreis (Netto/USt./Brutto) gerundet
     ParameterActiveForNextInputOnly=Die Einstellungen werden erst bei der nächsten Eingabe wirksam
    -NoEventOrNoAuditSetup=Keine sicherheitsrelevanten Protokollereignisse. Überprüfen Sie die Aktivierung dieser Funktionen unter 'Einstellungen-Sicherheit-Protokoll'.
    -NoEventFoundWithCriteria=Kein sicherheitsrelevantes Protokollereignis zu Ihren Suchkriterien gefunden
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Lokale sendmail-Einstellungen anzeigen
     BackupDesc=Um eine vollständige Systemsicherung durchzuführen müssen Sie:
     BackupDesc2=Sichern des Dokumenten-Verzeichnis (<b>%s</b>;) welches alle hochgeladenen und erzeugten Dateien enthält (dies beinhaltet alle Dump-Dateien die in Schritt 1 erzeugt wurden).
    -BackupDesc3=Sicherung der Datenbank  (<b>%s</b>) über Dump-Befehl anlegen. Dafür können Sie folgende Assistenten verwenden.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Bewahren Sie die archivierten Verzeichnisse an einem sicheren Ort auf.
     BackupDescY=Bewahren Sie den Datenbank-Dump an einem sicheren Ort auf.
    -BackupPHPWarning=Datensicherung kann mit dieser Methode nicht garantiert werden. Bevorzugen Sie die vorherige.
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Um eine Systemsicherung wiederherzustellen, müssen Sie:
    -RestoreDesc2=Wiederherstellung der Archivdatei des Dokumentenverzeichnis (zum Beispiel zip-Datei) um den Datei-Baum im Dokumentenverzeichnis einer neuen Dolibarr Installation oder in ein bestehendes Dolibarr Verzeichnis (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=* Die Datenbanksicherung aus dem Dump in eine neue Dolibarr-Installation oder das bestehende System (<b>%s</b>) zurückspielen. Achtung: Nach Beendigung dieses Vorganges müssen Sie sich mit dem Benutzernamen/Passwort-Paar zum Zeitpunkt der Sicherung am System anmelden. Zur Wiederherstellung der Datenbank steht Ihnen der folgende Assistent zur Verfügung:
     RestoreMySQL=MySQL Import
     ForcedToByAModule= Diese Regel wird <b>%s</b> durch ein aktiviertes Modul aufgezwungen
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Diesen Befehl müssen Sie auf d
     YourPHPDoesNotHaveSSLSupport=Ihre PHP-Konfiguration unterstützt keine SSL-Verschlüsselung
     DownloadMoreSkins=Weitere grafische Oberflächen herunterladen
     SimpleNumRefModelDesc=Liefere eine Nummer im Format %syymm-nnnn zurück, wobei YY für das Jahr, MM für das Monat und nnnn für eine 4-stellige, nicht unterbrochene Zahlensequenz steht
    -ShowProfIdInAddress=Zeige professionnal ID mit Adressen auf Dokumente
    -ShowVATIntaInAddress=Ausblenden UID Nummer in Adressen auf Dokumenten.
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Teilweise Übersetzung
    -MAIN_DISABLE_METEO=Deaktivere Wetteransicht
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standart Modus
     MeteoStdModEnabled=Standardmodus aktiviert
     MeteoPercentageMod=Prozentmodus
     MeteoPercentageModEnabled=Prozentmodus aktiviert
     MeteoUseMod=Ancklicken um %s zu verwenden
     TestLoginToAPI=Testen Sie sich anmelden, um API
    -ProxyDesc=Einige Features von Dolibarr müssen einen Internet-Zugang zu Arbeit haben. Definieren Sie hier Parameter für diese. Wenn die Dolibarr Server hinter einem Proxy-Server, erzählt jene Parameter Dolibarr wie man Internet über ihn zugreifen.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Externer Zugriff
     MAIN_PROXY_USE=Verwenden Sie einen Proxy-Server (sonst direkten Zugang zum Internet)
     MAIN_PROXY_HOST=Name / Anschrift des Proxy-Servers
     MAIN_PROXY_PORT=Port of Proxy-Server
     MAIN_PROXY_USER=Passwort an, um den Proxy-Server verwenden
     MAIN_PROXY_PASS=Kennwort ein, um den Proxy-Server verwenden
    -DefineHereComplementaryAttributes=Definieren Sie hier alle Attribute, die nicht standardmäßig vorhanden sind, und in %s unterstützt werden sollen.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Ergänzende Attribute
     ExtraFieldsLines=Ergänzende Attribute (Zeilen)
     ExtraFieldsLinesRec=Zusätzliche Attribute (Rechnungsvorlage, Zeilen)
     ExtraFieldsSupplierOrdersLines=Ergänzende Attribute (in Bestellposition)
     ExtraFieldsSupplierInvoicesLines=Ergänzende Attribute (in Rechnungszeile)
     ExtraFieldsThirdParties=Ergänzende Attribute (Partner)
    -ExtraFieldsContacts=Ergänzende Attribute (Kontakt)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Ergänzende Attribute (Mitglied)
     ExtraFieldsMemberType=Ergänzende Attribute (Mitglied)
     ExtraFieldsCustomerInvoices=Ergänzende Attribute (Rechnungen)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=nur Kleinbuchstaben und Zahlen, keine Leerzeich
     SendmailOptionNotComplete=Achtung: Auf einigen Linux-Systemen muss die Einrichtung von sendmail die Option -ba ethalten, um E-Mail versenden zu können (Parameter mail.force_extra_parameters in der php.ini-Datei). Wenn einige Empfänger niemals E-Mails erhalten, verändern Sie den PHP Parameter folgendermaßen mail.force_extra_parameters =-ba.
     PathToDocuments=Dokumentenpfad
     PathDirectory=Verzeichnispfad
    -SendmailOptionMayHurtBuggedMTA=Feature-Mails mit der Methode "PHP mail direkt" senden generiert eine Mail-Nachricht, die nicht korrekt möglicherweise von einigen Mail-Servern empfangen analysiert werden. Ergebnis ist, dass manche Mails nicht von Menschen, die von thoose abgehört Plattformen gehostet gelesen werden. Es ist bei einigen Internet-Providern (Ex: Orange in Frankreich). Dies ist nicht ein Problem in Dolibarr noch in PHP aber auf empfangende Mail-Server. Sie können jedoch hinzuzufügen MAIN_FIX_FOR_BUGGED_MTA Option auf 1 in die Setup - andere zu Dolibarr ändern, um dies zu vermeiden. Sie können jedoch Probleme mit anderen Servern, dass die Achtung streng dem SMTP-Standard zu erleben. Die andere Lösung (empfohlen) ist es, die Methode "SMTP-Socket-Bibliothek", die keine Nachteile hat benutzen.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Konfiguration der Übersetzung
     TranslationKeySearch=Übersetzungsschlüssel oder -Zeichenkette suchen
     TranslationOverwriteKey=Überschreiben der Übersetzung
    -TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
    +TranslationDesc=Wie die angezeigte Sprache gewählt wird <br>*Systemweit: Menu <strong>Start - Einstellungen - Anzeige</strong><br>* Pro Benutzer: <strong>Benutzeroberfläche</strong>-Registerkarte der Benutzerkarte (Klicken Sie auf den Benutzernamen am oberen Bildschirmrand).
     TranslationOverwriteDesc=Sie können Zeichenketten durch Füllen der folgenden Tabelle überschreiben. Wählen Sie Ihre Sprache aus dem "%s" Drop-Down und tragen Sie den Schlüssel in "%s" und Ihre neue Übersetzung in "%s" ein.
    -TranslationOverwriteDesc2=Sie können die andere Registerkarte verwenden, um Ihnen zu helfen, den Übersetzungsschlüssel zu verwenden
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Übersetzung Zeichenkette
     CurrentTranslationString=Aktuelle Übersetzung
     WarningAtLeastKeyOrTranslationRequired=Es sind mindestens ein Suchkriterium erforderlich für eine Schlüssel- oder Übersetzungszeichenfolge
     NewTranslationStringToShow=Neue Übersetzungen anzeigen
     OriginalValueWas=Original-Übersetzung überschrieben. Der frühere Wert war:<br><br>%s
    -TransKeyWithoutOriginalValue=Sie haben den Überstzungsschlüssel '<strong>%s</strong>' erstellt, der in keiner Sprachdatei existiert.
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Aktivierte Anwendungen/Module: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Sie müssen mindestens 1 Modul aktivieren
    -ClassNotFoundIntoPathWarning=Klasse %s nicht innerhalb PHP-Pfad gefunden
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Ja im Sommer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Hinweis: Nur die folgenden Module sind für externe Nutzer verfügbar (unabhängig von der Berechtigung dieser Benutzer), und das auch nur, wenn die Rechte zugeteilt wurden:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Sitzungsspeicher durch Suhosin verschlüsselt
     ConditionIsCurrently=Einstellung ist aktuell %s
    -YouUseBestDriver=Sie verwenden den Treiber %s, dies ist derzeit der beste verfügbare.
    -YouDoNotUseBestDriver=Sie verwenden Treiber %s, aber der Treiber %s wird empfohlen.
    -NbOfProductIsLowerThanNoPb=Sie haben nur %s Produkte/Leistungen in der Datenbank. Daher ist keine bestimmte Optimierung erforderlich.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Such Optimierung
    -YouHaveXProductUseSearchOptim=Sie haben %s Produkte/Leistungen in die Datenbank. Sie sollten die Konstante PRODUCT_DONOTSEARCH_ANYWHERE auf 1 unter  Start-Einstellungen-Andere Einstellungen hinzufügen, wodurch das Suchlimit in der Datenbank von  Anfang des Strings möglich gemacht wird,  und der Index verwendet wird, dadurch sollten sie sofort Antwort auf Ihre suche bekommen.
    -BrowserIsOK=Sie benutzen den Webbrowser %s. Dieser ist hinsichtlich Sicherheit und Leistung ok.
    -BrowserIsKO=Sie benutzen den Webbrowser %s. Dieser ist bekannt für Sicherheitsprobleme, schlechte Leistung und Zuverlässigkeit. Wir empfehlen Ihnen, Firefox, Chrome, Opera oder Safari zu nutzen.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug installiert.
     XCacheInstalled=XCache installiert.
    -AddRefInList=Darstellung Kunden- /Lieferanten- Nr. in Listen (Listbox oder ComboBox) und die meisten von Hyperlinks. Partner erscheinen mit dem namen "CC12345 - SC45678 - Grosse Firma AG" anstelle von "Grosse Firma AG".
    -AskForPreferredShippingMethod=Bervorzugte Liefermethode für Partner fragen
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Bearbeitung von Feld %s
     FillThisOnlyIfRequired=Beispiel: +2 (nur ausfüllen, wenn Sie Probleme mit der Zeitzone haben)
     GetBarCode=Erhalten Sie einen Barcode
     ##### Module password generation
     PasswordGenerationStandard=Generiere ein Passwort nach dem internen Systemalgorithmus: 8 Zeichen, Zahlen und Kleinbuchstaben.
    -PasswordGenerationNone=Schlagen Sie kein generiertes Passwort vor. Passwörter sollten manuell eingegeben werden.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Ein Passwort entsprechend der persönlich definierten Konfiguration zurückgeben.
     SetupPerso=Nach Ihrer Konfiguration
     PasswordPatternDesc=Beschreibung für Passwortmuster
    @@ -1195,30 +1206,31 @@ UserMailRequired=Für das Erstellen eines neuen Benutzers ist dessen E-Mail-Adre
     HRMSetup=PV Modul Einstellungen
     ##### Company setup #####
     CompanySetup=Unternehmenseinstellungen
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=Die Funktion der E-Mail-Benachrichtigung erlaubt Ihnen den stillen und automatischen Versand von E-Mails zu einigen Dolibarr-Ereignissen. Folgende Ziele können definiert werden:
     NotificationsDescUser=* pro Benutzer, ein Benutzer pro mal
    -NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
    +NotificationsDescContact=* pro Partnerkontakte (Kunden oder Lieferanten), ein Kontakt pro mal
     NotificationsDescGlobal=* oder duch setzten der globalen E-Mailziele im Modulsetup
    -ModelModules=Dokumentvorlagenmodul
    -DocumentModelOdt=Erstellen von Dokumentvorlagen im OpenDocuments-Format (.odt- oder .ods-Dateien für OpenOffice, KOffice, TextEdit, ...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Wasserzeichen auf Entwurf
     JSOnPaimentBill=Feature aktivieren, um Zahlungs-Zeilen in Zahlungs-Formularen automatisch zu füllen
    -CompanyIdProfChecker=Regeln für Identifikationsnummern
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Muss es eindeutig sein ?
    -MustBeMandatory=Erforderlich zur Anlage von Partnern ?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Erforderlich, um Rechnungen freizugeben ?
     TechnicalServicesProvided=Technische Unterstützung durch
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    -WebDavServer=Root URL of %s server : %s
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
    +WebDavServer=Root URL von %s Server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Ein Eportlink für das Format <b>%s</b> findet sich unter folgendem Link: %s
     ##### Invoices #####
     BillsSetup=Rechnungsmoduleinstellungen
     BillsNumberingModule=Rechnungs- und Gutschriftsnumerierungsmodul
     BillsPDFModules=PDF-Rechnungsvorlagen
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Zahlungsvorlagen
     CreditNote=Gutschrift
     CreditNotes=Gutschriften
    @@ -1239,15 +1251,15 @@ FreeLegalTextOnProposal=Freier Rechtstext auf Angeboten
     WatermarkOnDraftProposal=Wasserzeichen auf Angebots-Entwurf (keines, falls leer)
     BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Fragen Sie nach dem Bankkonto bei einem Angebot
     ##### SupplierProposal #####
    -SupplierProposalSetup=Price requests vendors module setup
    -SupplierProposalNumberingModules=Price requests vendors numbering models
    -SupplierProposalPDFModules=Price requests vendors documents models
    -FreeLegalTextOnSupplierProposal=Free text on price requests vendors
    -WatermarkOnDraftSupplierProposal=Watermark on draft price requests vendors (none if empty)
    +SupplierProposalSetup=Einrichtung des Moduls für Preisanfragen bei Lieferanten
    +SupplierProposalNumberingModules=Modell zu Numerierung von Preisanfragen für Lieferanten
    +SupplierProposalPDFModules=Modell für Dokumente von Preisanfragen für Lieferanten
    +FreeLegalTextOnSupplierProposal=Freier Text auf Preisanfragen bei Lieferanten
    +WatermarkOnDraftSupplierProposal=Wasserzeichen auf vorbereiteten Preisanfrage für Lieferanten (leerlassen für kein Wasserzeichen)
     BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Frage nach Bankkonto für Preisanfragen
     WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Frage nach Lager für Aufträge
     ##### Suppliers Orders #####
    -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order
    +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Frage nach der Ziel-Bankverbindung der Lieferantenbestellung
     ##### Orders #####
     OrdersSetup=Bestellverwaltungseinstellungen
     OrdersNumberingModules=Bestellnumerierungs-Module
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Verwalten Sie eine Anmeldung für jedes Mitglied
     AdherentMailRequired=Für das Anlegen eines neuen Mitglieds ist eine E-Mail-Adresse erforderlich
     MemberSendInformationByMailByDefault=Das Kontrollkästchen für den automatischen Mail-Bestätigungsversand an Mitglieder (bei Freigabe oder neuem Abonnement) ist standardmäßig aktiviert
     VisitorCanChooseItsPaymentMode=Besucher können zwischen den verfügbaren Zahlungsarten wählen
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP-Einstellungen
     LDAPGlobalParameters=Globale LDAP-Parameter
    @@ -1292,7 +1305,7 @@ LDAPSynchronizeUsers=dolibarr-Benutzer mit LDAP synchronisieren
     LDAPSynchronizeGroups=dolibarr-Gruppen mit LDAP synchronisieren
     LDAPSynchronizeContacts=dolibarr-Kontakte mit LDAP synchronisieren
     LDAPSynchronizeMembers=dolibarr-Stiftungsmitglieder mit LDAP synchronisieren
    -LDAPSynchronizeMembersTypes=Organization of foundation's members types in LDAP
    +LDAPSynchronizeMembersTypes=Verwalten der Mitgliedsarten via LDAP
     LDAPPrimaryServer=Primärer LDAP-Server
     LDAPSecondaryServer=Sekundärer LDAP-Server
     LDAPServerPort=Server-Port
    @@ -1346,7 +1359,7 @@ LDAPSynchroKO=Synchronisationstest fehlgeschlagen
     LDAPSynchroKOMayBePermissions=Synchronisationstest fehlgeschlagen. Überprüfen Sie die richtige Konfiguration der Serververbindung und die Erlaubnis für LDAP-Updates
     LDAPTCPConnectOK=TCP-Verbindung zum LDAP-Server erfolgreich (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP-Verbindung zum LDAP-Server fehlgeschlagen (Server= %s, Port= %s)
    -LDAPBindOK=Verbindung/Authentifizierung am LDAP-Server erfolgreich (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPBindKO=Verbindung/Authentifizierung am LDAP-Server fehlgeschlagen (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP-Server für Version 3 konfiguriert
     LDAPSetupForVersion2=LDAP-Server für Version 2 konfiguriert
    @@ -1405,7 +1418,7 @@ LDAPDescContact=Auf dieser Seite definieren Sie die LDAP-Attribute im LDAP-Baum
     LDAPDescUsers=Auf dieser Seite definieren Sie die LDAP-Attribute im LDAP-Baum für jeden Datensatz zu dolibarr-Benutzern.
     LDAPDescGroups=Auf dieser Seite definieren Sie die LDAP-Attribute im LDAP-Baum für jeden Datensatz zu dolibarr-Gruppen.
     LDAPDescMembers=Auf dieser Seite definieren Sie die LDAP-Attribute im LDAP-Baum für jeden Datensatz zu dolibarr-Mitgliedern.
    -LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members types.
    +LDAPDescMembersTypes=Auf dieser Seiten kann man die LDAP Attributnamen aus dem LDAP System für alle Daten im Dolibarr System einstellen.
     LDAPDescValues=Die Beispielwerte für <b>OpenLDAP</b> verfügen über folgende Muster: <b>core.schema, cosine.schema, inetorgperson.schema</b>. Wenn Sie diese Werte für OpenLDAP verwenden möchten, passen Sie bitte die LDAP-Konfigurationsdatei <b>slapd.conf</b> entsprechend an, damit all diese Muster geladen werden.
     ForANonAnonymousAccess=Für einen authentifizierten Zugang (z.B. für Schreibzugriff)
     PerfDolibarr=Leistungs-Einstellungen/Optimierungsreport
    @@ -1433,6 +1446,7 @@ DefaultCreateForm=Vorgabewerte für neue Einträge
     DefaultSearchFilters=Standard Suchfilter
     DefaultSortOrder=Standardsortierreihenfolge
     DefaultFocus=Standardfokusfeld
    +DefaultMandatory=Formularfelder die ausgefüllt werden müssen
     ##### Products #####
     ProductSetup=Produktmoduleinstellungen
     ServiceSetup=Modul Leistungen - Einstellungen
    @@ -1441,7 +1455,7 @@ NumberOfProductShowInSelect=Max. Anzahl der Produkte in Mehrfachauswahllisten (0
     ViewProductDescInFormAbility=Anzeige der Produktbeschreibungen in Formularen (sonst als ToolTip-  Popup)
     MergePropalProductCard=Aktivieren einer Option unter Produkte/Leistungen  Registerkarte verknüpfte Dateien, um Produkt-PDF-Dokumente um Angebots PDF azur zusammenzuführen, wenn Produkte/Leistungen in dem Angebot sind.
     ViewProductDescInThirdpartyLanguageAbility=Anzeige der Produktbeschreibungen in der Sprache des Partners
    -UseSearchToSelectProductTooltip=Wenn Sie eine große Anzahl von Produkten (> 100.000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante PRODUCT_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings.
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectProduct=Warte auf Tastendruck, bevor der Inhalt der Produkt-Combo-Liste geladen wird (Dies kann die Leistung verbessern, wenn Sie eine große Anzahl von Produkten haben).
     SetDefaultBarcodeTypeProducts=Standard-Barcode-Typ für Produkte
     SetDefaultBarcodeTypeThirdParties=Standard-Barcode-Typ für Partner
    @@ -1458,9 +1472,9 @@ SyslogFilename=Dateiname und-pfad
     YouCanUseDOL_DATA_ROOT=Sie können DOL_DATA_ROOT/dolibarr.log als Protokolldatei in Ihrem Dokumentenverzeichnis verwenden. Bei Bedarf können Sie auch den Pfad der Datei anpassen.
     ErrorUnknownSyslogConstant=Konstante %s ist nicht als Protokoll-Konstante definiert
     OnlyWindowsLOG_USER=Windows unterstützt nur LOG_USER
    -CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug)
    -SyslogFileNumberOfSaves=Log backups
    -ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency
    +CompressSyslogs=Komprimierung von Datensicherung- und Debuglogs (Generiert durch das Logmodul)
    +SyslogFileNumberOfSaves=Backuplogs
    +ConfigureCleaningCronjobToSetFrequencyOfSaves=Konfigurieren Sie einen geplanten Job um die Logbackups zu automatisieren
     ##### Donations #####
     DonationsSetup=Spendenmoduleinstellungen
     DonationsReceiptModel=Vorlage für Spendenquittungen
    @@ -1525,8 +1539,8 @@ OSCommerceTestOk=Verbindung zum Server '%s' für Datenbank '%s' mit Benutzer '%s
     OSCommerceTestKo1=Verbindung zum Server '%s' erfolgreich, aber Datenbank '%s' konnte nicht erreicht werden.
     OSCommerceTestKo2=Verbindung zum Server '%s' mit dem Benutzer '%s' fehlgeschlagen.
     ##### Stock #####
    -StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=Wenn Sie ein Point of Sale-Modul (POS-Modul Standard oder andere externe POS-Module) verwenden, kann diese Einstellung von Ihrem Point Of Sale-Modul übersteuert werden. \nDie meisten POS -Module wurden entwickelt, um sofort eine Rechnung zu erstellen und das Lager standardmäßig zu verringern, egal welche Optionen hier ausgewählt wurde. \nAlso, wenn Sie während einem Verkauf einen Lagerabgang in Ihrem Point of Sale möchten oder nicht, so müssen sie auch die Konfiguration des POS-Modules überprüfen.
    +StockSetup=Warenlager-Modul Einstellungen
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menü gelöscht
     Menus=Menüs
    @@ -1561,9 +1575,9 @@ OptionVATDefault=Standardbasis
     OptionVATDebitOption=Rückstellungsbasis
     OptionVatDefaultDesc=Mehrwertsteuerschuld entsteht: <br>- Bei Lieferung/Zahlung für Waren<br>- Bei Zahlung für Leistungen
     OptionVatDebitOptionDesc=Mehrwertsteuerschuld entsteht: <br>- Bei Lieferung/Zahlung für Waren<br>- Bei Rechnungslegung (Lastschrift) für Dienstleistungen
    -OptionPaymentForProductAndServices=Cash basis for products and services
    -OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Standardmäßiger Zeitpunkt der USt.-Fälligkeit in Abhängigkeit zur derzeit gewählten Option:
    +OptionPaymentForProductAndServices=Cashbasis für Produkte und Dienstleistungen
    +OptionPaymentForProductAndServicesDesc=USt is fällig: <br>- Bei Bezahlung von Waren<br>- Bei Bezahlung von Dienstleistungen
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Bei Lieferung
     OnPayment=Bei Zahlung
     OnInvoice=Bei Rechnungslegung
    @@ -1580,13 +1594,13 @@ AccountancyCodeBuy=Einkaufskonto-Code
     AgendaSetup=Aufgaben/Termine-Modul Einstellungen
     PasswordTogetVCalExport=Passwort für den VCal-Export
     PastDelayVCalExport=Keine Termine exportieren die älter sind als
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Diesen Standardwert automatisch als Ereignistyp im  Ereignis Erstell-Formular verwenden.
    -AGENDA_DEFAULT_FILTER_TYPE=Diesen Ereignistyp automatisch in den Suchfilter für die Agenda-Ansicht übernehmen
    -AGENDA_DEFAULT_FILTER_STATUS=Diesen Ereignisstatus automatisch in den Suchfilter für die Agenda-Ansicht übernehmen
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Welchen Reiter möchten Sie beim Öffnen der Agenda automatisch anzeigen
    -AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_EMAIL=Aktiviere Terminbenachrichtigungen <b>via E-Mail</b> (Die Benachrichtigungszeit/Frequenz kann auf dem jeweiligen Termin eingestellt werden). Info: Modul <strong>%s</strong> muss aktiviert und richtig konfiguriert sein, damit die Erinnerungen korrekt versendet werden können.
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Aktiviere Tonbenachrichtigung
     AGENDA_SHOW_LINKED_OBJECT=Verknüpfte Objekte in Agenda anzeigen
     ##### Clicktodial #####
    @@ -1606,7 +1620,7 @@ CashDeskDoNotDecreaseStock=Deaktiviere Lagerabgangsbuchung wenn ein Verkauf auf
     CashDeskIdWareHouse=Lager für Entnahmen festlegen und und erzwingen
     StockDecreaseForPointOfSaleDisabled=Lagerrückgang bei Verwendung von Point of Sale deaktiviert
     StockDecreaseForPointOfSaleDisabledbyBatch=Lagerrückgang in POS-Modul ist noch nicht mit dem Chargen- /Seriennummern Management kompatibel.
    -CashDeskYouDidNotDisableStockDecease=Sie haben die Reduzierung der Lagerbestände nicht deaktiviert, wenn Sie einen Verkauf auf dem  POS durchführen.\nAuch ist ein Lager/Standort notwendig.
    +CashDeskYouDidNotDisableStockDecease=Sie haben die Reduzierung der Lagerbestände nicht deaktiviert, wenn Sie einen Verkauf auf dem  Point of Sale durchführen.\nAuch ist ein Lager/Standort notwendig.
     ##### Bookmark #####
     BookmarkSetup=Favoriten-Moduleinstellungen
     BookmarkDesc=Dieses Modul ermöglicht die Verwaltung von Favoriten. Außerdem können Sie hiermit Verknüpfungen zu internen und externen Seiten im linken Menü anlegen.
    @@ -1637,8 +1651,8 @@ ChequeReceiptsNumberingModule=Checknummerierungsmodul
     MultiCompanySetup=Einstellungen des Modul Mandanten
     ##### Suppliers #####
     SuppliersSetup=Lieferantenmoduleinstellungen
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    -SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
    +SuppliersCommandModel=Vollständige Vorlage für Lieferantenbestellungen (Logo, ...)
    +SuppliersInvoiceModel=Vollständige Vorlage der Lieferantenrechnung (logo. ..)
     SuppliersInvoiceNumberingModel=Lieferantenrechnungen Zähl-Modell
     IfSetToYesDontForgetPermission=Wenn auf Ja gesetzt, vergessen Sie nicht, die Berechtigungen den dafür erlaubten Gruppen oder Benutzern auch das Recht für die zweite Zustimmung zu geben.
     ##### GeoIPMaxmind #####
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Projekteinstellungenmodul
     ProjectsModelModule=Projektvorlagenmodul
     TasksNumberingModules=Modul zur Numerierung von Aufgaben
     TaskModelModule=Vorlage für Arbeitsberichte
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Warte auf Tastendruck, bevor der Inhalt der Partner-Combo-Liste geladen wirdv<br> (Dies kann die Leistung verbessern, wenn Sie eine große Anzahl von Partnern haben, verschlechtert aber die Nutzungsfreundlichkeit).
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Buchhaltungs Perioden
    @@ -1675,12 +1689,12 @@ NoAmbiCaracAutoGeneration=Verwende keine mehrdeutigen Zeichen ("1", "l", "i", "|
     SalariesSetup=Einstellungen des Gehaltsmodul
     SortOrder=Sortierreihenfolge
     Format=Format
    -TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers and vendors payment type
    +TypePaymentDesc=0:Kundenzahlungsart, 1:Lieferantenzahlungsart, 2:Sowohl Kunden- als auch Lieferanten-Zahlungsart
     IncludePath=Include-Pfad (in Variable '%s' definiert)
     ExpenseReportsSetup=Einstellungen des Moduls Spesenabrechnung
     TemplatePDFExpenseReports=Dokumentvorlagen zur Erstellung einer Spesenabrechnung
     ExpenseReportsIkSetup=Einstellungen des Spesenmoduls - Meilenindex
    -ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules
    +ExpenseReportsRulesSetup=Setup des Moduls Spesen - Regeln
     ExpenseReportNumberingModules=Nummerierung Spesenabrechnungen
     NoModueToManageStockIncrease=Kein Modul zur automatische Bestandserhöhung ist aktiviert. Lager Bestandserhöhung kann nur durch manuelle Eingabe erfolgen.
     YouMayFindNotificationsFeaturesIntoModuleNotification=Sie können Optionen für E-Mail-Benachrichtigungen von Aktivierung und Konfiguration des Moduls "Benachrichtigung" finden.
    @@ -1697,7 +1711,8 @@ InstallModuleFromWebHasBeenDisabledByFile=Installieren von externen Modul aus de
     ConfFileMustContainCustom=Um ein externes Modul zu erstellen oder installieren, müssen die Dateien im Verzeichnis <strong>%s</strong> gespeichert werden. Damit dieses Verzeichnis durch Dolibarr verwendet wird, muss in den Einstellungen <strong>conf/conf.php</strong> die folgenden beiden Zeilen hinzugefügt werden:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Zeilen hervorheben bei Mouseover
     HighlightLinesColor=Farbe der Zeile hervorheben, wenn die Maus darüberfährt (leer lassen, um den Effekt zu deaktivieren)
    -TextTitleColor=Text color of Page title
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
    +TextTitleColor=Farbe des Seitenkopfs
     LinkColor=Farbe für Hyperlinks
     PressF5AfterChangingThis=Drücken Sie CTRL+F5 auf der Tastatur oder löschen Sie Ihren Browser-Cache, nachdem dem Sie diesen Wert geändert haben, damit die Änderung wirksam wird
     NotSupportedByAllThemes=Funktioniert mit dem Standard-Designvorlagen: wird möglicherweise nicht von externen Designvorlagen unterstützt
    @@ -1706,22 +1721,22 @@ TopMenuBackgroundColor=Hintergrundfarbe für Hauptmenü
     TopMenuDisableImages=Symbole im oberen Menü ausblenden.
     LeftMenuBackgroundColor=Hintergrundfarbe für Menü Links
     BackgroundTableTitleColor=Hintergrundfarbe für Titelzeilen in Tabellen
    -BackgroundTableTitleTextColor=Text color for Table title line
    +BackgroundTableTitleTextColor=Textfarbe für Tabellen Titelzeile
     BackgroundTableLineOddColor=Hintergrundfarbe für ungerade Tabellenzeilen
     BackgroundTableLineEvenColor=Hintergrundfarbe für gerade Tabellenzeilen
     MinimumNoticePeriod=Kündigungsfrist (Ihre Kündigung muss vor dieser Zeit erfolgen)
     NbAddedAutomatically=Anzahl Tage die den Benutzern jeden Monat (automatisch) hinzuaddiert werden
     EnterAnyCode=Dieses Feld enthält eine Referenz um die Zeile zu identifizieren. Geben Sie einen beliebigen Wert ohne Sonderzeichen ein.
    -UnicodeCurrency=Fügen sie zwischen den eckigen Klammern die Unicode Zeichenwerte für das Währungssymbol ein. Beispiele: Für $ den Wert [36], für brasilianische Real R$ [82,36], für € den Wert [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=Die RGB Farben sind im Hexformat, zB. FF0000
     PositionIntoComboList=Zeilenposition in der Combo-Listen
     SellTaxRate=Mehrwertsteuersatz
     RecuperableOnly=Ja für USt. "Wahrgenommene nicht Erstattungsfähig" für einige Regionen in Frankreich. Nein für alle anderen Fälle.
     UrlTrackingDesc=Falls der Liefer- bzw. Transportdienst eine Website für die Statusüberprüfung anbietet, kann die URL hier angegeben werden. Sie können die Zeichenfolge {TRACKID}  in URL-Parameter verwenden,  damit das System den Wert von Tracking-Nummer des Benutzers in die Lieferkarte ersetzen kann.
    -OpportunityPercent=Wenn Sie eine Verkaufschance erfassen, wird ein geschätzter Betrag an einem Projekt / Lead definiert. Entsprechend der Chance kann diese Menge durch diese Rate multipliziert werden, um die Gesamtmenge, die alle ihre Möglichkeiten erzeugen, generieren kann. Ist der Prozentwert (zwischen 0 und 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=Diese Vorlage gehört zu diesem Element
     TypeOfTemplate=Type der Vorlage
    -TemplateIsVisibleByOwnerOnly=Vorlage ist nur vom Besitzer sichtbar
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Überall sichtbar
     VisibleNowhere=Nirgendwo sichtbar
     FixTZ=Zeitzonen-Korrektur
    @@ -1734,23 +1749,23 @@ MailToSendOrder=Kundenaufträge
     MailToSendInvoice=Kundenrechnungen
     MailToSendShipment=Lieferungen
     MailToSendIntervention=Serviceaufträge
    -MailToSendSupplierRequestForQuotation=Quotation request
    -MailToSendSupplierOrder=Purchase orders
    -MailToSendSupplierInvoice=Vendor invoices
    +MailToSendSupplierRequestForQuotation=Offertanfrage
    +MailToSendSupplierOrder=Lieferantenbestellungen
    +MailToSendSupplierInvoice=Lieferantenrechnungen
     MailToSendContract=Verträge
     MailToThirdparty=Partner
     MailToMember=Mitglieder
     MailToUser=Benutzer
    -MailToProject=Projects page
    +MailToProject=Projektseiten
     ByDefaultInList=Standardanzeige als Listenansicht
     YouUseLastStableVersion=Sie verwenden die letzte stabile Version
     TitleExampleForMajorRelease=Beispielnachricht, die Sie nutzen können, um eine Hauptversion anzukündigen. Sie können diese auf Ihrer Website verwenden.
     TitleExampleForMaintenanceRelease=Beispielnachricht, die Sie nutzen können, um ein Wartungsupdate anzukündigen. Sie können diese auf Ihrer Website verwenden.
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s ist verfügbar. Version %s ist eine Hauptversion mit vielen neuen Features für Benutzer und Entwickler. Sie können die Version aus dem Downloadbereich des Portals http://www.dolibarr.org laden (Unterverzeichnis "stabile Versionen"). Lesen Sie die komplette Liste der <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">Änderungen</a>.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s ist verfügbar. Version %s ist ein Wartungsupdate , das Fehlerbereinigungen enthält. Es wird allen Nutzern einer älteren Version empfohlen, auf diese zu wechseln. Wie bei jedem Wartungsupdate sind keinen neuen Features oder Änderungen in den Datenstrukturen enthalten. Sie können die Version aus dem Downloadbereich des Portals http://www.dolibarr.org laden (Unterverzeichnis "stabile Versionen"). Lesen Sie die komplette Liste der <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">Änderungen</a>.
    -MultiPriceRuleDesc=Wenn die Option "mehrere Preisebenen pro Artikel/Dienstleistung" aktiviert ist, können Sie verschiedene Preis (einen pro Ebene) für jeden artikel definieren. Um Zeit zu sparen, können Sie eine Regel anlegen, mit der der Preis pro Ebene automatisch anhand des Preise in der ersten Ebene kalkuliert wird, so dass Sie nur einen Preis in der ersten Ebene eingeben müssen. Diese Seite kann Ihnen nur Zeit sparen und nützlich sein, wenn die Preise anderer Ebenen vom Preis der ersten Ebene abhängig sind. Ansonsten können Sie diese Seite ignorieren.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Vorlagen für Produktdokumente
    -ToGenerateCodeDefineAutomaticRuleFirst=Um Barcode automatisch zu erstellen, müssen Sie zuerst einen Manager definieren, der die Barcode-Nummern erstellt.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=Siehe * für einen Liste möglicher Ersetzungsvariablen
     SeeChangeLog=Siehe ChangeLog-Datei (nur Englisch)
     AllPublishers=Alle Verfasser
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Andere Seiten oder Dienste hinzufügen
     AddModels=Dokumente oder Nummerierungsvorlagen hinzufügen
     AddSubstitutions=Ersatzwerte hinzufügen
     DetectionNotPossible=Erkennung nicht möglich
    -UrlToGetKeyToUseAPIs=URL um ein Token für die API Nutzung zu erhalten (Erhaltene Token werden in der Benutzertabelle gespeichert und bei jedem Zugriff validiert)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Liste von verfügbaren APIs
    -activateModuleDependNotSatisfied=Modul "%s" benötigt Modul "%s" welches fehlt, dadurch funktioniert Modul "%1$s" möglicherweise nicht korrekt. Installieren Sie Modul "%2$s" oder deaktivieren Sie Modul "%1$s" um auf der sicheren Seite zu sein
    -CommandIsNotInsideAllowedCommands=Das Kommando ist nicht in der Liste der erlaubten Kommandos, definiert in <strong>$dolibarr_main_restrict_os_commands</strong> in der <strong>conf.php</strong> Datei.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Einstiegsseite
    -SamePriceAlsoForSharedCompanies=Wenn Sie das Mehrfirmenmodul mit der Einstellung "Einzelner Preis" verwenden, dann ist der Preis für die Produkte identisch, die zwischen den Unternehmen geteilt werden.
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Das Modul wurde aktiviert. Rechte wurden nur Admin-Benutzern gewährt. Wenn nötig, müssen Sie anderen Benutzern oder Gruppen Rechte manuell zuweisen.
    -UserHasNoPermissions=Dieser Benutzer hat keine Rechte
    -TypeCdr=Verwenden Sie „Nein“, wenn das Datum der Zahlungsfrist ist das Rechnungsdatum plus ein Delta in Tagen (Delta ist die „Anzahl der Tage“) <br> Use „Am Ende des Monats“, wenn nach dem Delta das Datum muss bis zum Ende des Monats erhöht werden (+ ein „Offset“ optional Tage) <br> „Aktueller/ Nächster“, um das Datum der Zahlungsfrist verwenden ist der erste n-ten Tag des Monats nach (N ist in der „Anzahl der Tage“ Feld gespeichert)
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Basiswährung des Unternehmens (Kann in den Unternehmenseinstellungen verändert werden)
    -WarningNoteModuleInvoiceForFrenchLaw=Dieses Modul %s erfüllt die Französische Gesetzgebung (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=Modul %s entspricht der französischen Gesetzgebung (Loi Finance 2016) weil das Modul "Unveränderbare Logs" automatisch aktiviert wird.
    -WarningInstallationMayBecomeNotCompliantWithLaw=Sie versuchen das externe Modul %s zu installieren. Mit der Aktivierung eines externen Moduls vertrauen sie dem Herausgeber des Moduls und sind sicher, dass das System weiterhin die Gesetze Ihres Landes (%s) erfüllt. Falls das Modul Funktionalität bietet die in Ihrem Land nicht erlaubt sind, dann sind Sie Verantwortlich dass diese nicht genutzt werden.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Linker Rand im PDF
     MAIN_PDF_MARGIN_RIGHT=Rechter Rand im PDF
     MAIN_PDF_MARGIN_TOP=Oberer Rand im PDF
     MAIN_PDF_MARGIN_BOTTOM=Unterer Rand im PDF
    -SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    -SeveralLangugeVariatFound=Several language variants found
    -COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
    -COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +NothingToSetup=There is no specific setup to do for this module.
    +SetToYesIfGroupIsComputationOfOtherGroups=Setzen Sie dieses Fehld auf Ja, wenn diese Gruppe eine Berechnung von anderen Gruppen ist
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +SeveralLangugeVariatFound=Mehrere Sprachvarianten gefunden
    +COMPANY_AQUARIUM_REMOVE_SPECIAL=Sonderzeichen entfernen
    +COMPANY_AQUARIUM_CLEAN_REGEX=Regexfilter um die Werte zu Bereinigen (COMPANY_AQUARIUM_CLEAN_REGEX)
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Einstellungen des Moduls Soziale Medien (Social Networks)
    +EnableFeatureFor=Aktiviere Features für <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Vertauschen von Absender- und Empfängeradresse im PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=PLZ
     ##### Resource ####
     ResourceSetup=Konfiguration des Modul Ressourcen
     UseSearchToSelectResource=Verwende ein Suchformular um eine Ressource zu wählen (eher als eine Dropdown-Liste) zu wählen.
     DisabledResourceLinkUser=Funktion deaktivieren, um eine Ressource mit Benutzern zu verknüpfen
     DisabledResourceLinkContact=Funktion deaktivieren, um eine Ressource mit Kontakten zu verknüpfen
     ConfirmUnactivation=Modul zurücksetzen bestätigen
    +OnMobileOnly=Nur auf kleinen Bildschirmen (Smartphones)
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/de_DE/banks.lang b/htdocs/langs/de_DE/banks.lang
    index 253ced36e39..60356a5fa76 100644
    --- a/htdocs/langs/de_DE/banks.lang
    +++ b/htdocs/langs/de_DE/banks.lang
    @@ -1,6 +1,6 @@
     # Dolibarr language file - Source file is en_US - banks
     Bank=Bank
    -MenuBankCash=Bank | Cash
    +MenuBankCash=Bank | Bargeld
     MenuVariousPayment=Sonstige Zahlungen
     MenuNewVariousPayment=Neue sonstige Zahlung
     BankName=Name der Bank
    @@ -12,7 +12,7 @@ ShowAccount=Zeige Konto
     AccountRef=Buchhaltungs-Konto Nr.
     AccountLabel=Buchhaltungs-Konto Nr.
     CashAccount=Konto Kassa
    -CashAccounts=Kassen
    +CashAccounts=Bargeldkonten
     CurrentAccounts=Girokonten
     SavingAccounts=Sparkonten
     ErrorBankLabelAlreadyExists=Kontenbezeichnung existiert bereits
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Kontoadresse
     BankAccountCountry=Bankkonto Land
     BankAccountOwner=Kontoinhaber
     BankAccountOwnerAddress=Kontoinhaber-Adresse
    -RIBControlError=Prüfung auf Vollständigkeit fehlgeschlagen. Informationen zu Bankkonto sind nicht vollständig oder falsch (Land überprüfen, Zahlen und IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Konto erstellen
     NewBankAccount=Neues Konto
     NewFinancialAccount=Neues Finanzkonto
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Transaktionen zum ausgleichen
     Conciliable=kann ausgeglichen werden
     Conciliate=Ausgleichen
     Conciliation=Ausgleich
    +SaveStatementOnly=Nur Buchung speichern
     ReconciliationLate=Zahlungsausgleich spät
     IncludeClosedAccount=Geschlossene Konten miteinbeziehen
     OnlyOpenedAccount=Nur offene Konten
    @@ -104,7 +105,7 @@ SocialContributionPayment=Zahlung von Sozialabgaben/Steuern
     BankTransfer=Kontentransfer
     BankTransfers=Kontentransfers
     MenuBankInternalTransfer=interner Transfer
    -TransferDesc=Von einem zum anderen Konto übertragen. Dolibarr wird zwei Buchungen erstellen - Debit in der Quell- und Credit im Zielkonto. (Identischer Betrag (bis auf das Vorzeichen), Beschreibung und Datum werden benutzt)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Von
     TransferTo=An
     TransferFromToDone=Eine Überweisung <b>von %s nach %s iHv %s %s</b> wurde verbucht.
    @@ -132,11 +133,11 @@ PaymentDateUpdateSucceeded=Zahlungsdatum erforlgreich aktualisiert
     PaymentDateUpdateFailed=Zahlungsdatum konnte nicht aktualisiert werden
     Transactions=Transaktionen
     BankTransactionLine=Bank-Transaktionen
    -AllAccounts=All bank and cash accounts
    +AllAccounts=Alle Finanzkonten
     BackToAccount=Zurück zum Konto
     ShowAllAccounts=Alle Finanzkonten
    -FutureTransaction=Zukünftige Transaktionen.
    -SelectChequeTransactionAndGenerate=Schecks auswählen/filtern um Sie in den Einzahlungsbeleg zu integrieren und auf "Erstellen" klicken.
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Wählen Sie den Kontoauszug  der mit der Zahlung übereinstimmt. Verwenden Sie einen sortierbaren numerischen Wert: YYYYMM oder YYYYMMDD
     EventualyAddCategory=Wenn möglich Kategorie angeben, in der die Daten eingeordnet werden
     ToConciliate=auszugleichen ?
    @@ -153,7 +154,7 @@ RejectCheckDate=Datum an dem der Scheck zurückgewiesen wurde
     CheckRejected=Scheck zurückgewiesen
     CheckRejectedAndInvoicesReopened=Scheck zurückgewiesen und Rechnungen wieder geöffnet
     BankAccountModelModule=Dokumentvorlagen für Bankkonten
    -DocumentModelSepaMandate=Vorlage für SEPA Mandate. Nur sinnvoll in Ländern der EU.
    +DocumentModelSepaMandate=Vorlage für SEPA Mandate. Nur sinnvoll in EU Ländern.
     DocumentModelBan=Template für den Druck von Seiten mit Bankkonto-Nummern Eintrag.
     NewVariousPayment=Neue sonstige Zahlungen
     VariousPayment=Sonstige Zahlungen
    @@ -162,4 +163,5 @@ ShowVariousPayment=Zeige sonstige Zahlungen
     AddVariousPayment=Sonstige Zahlung hinzufügen
     SEPAMandate=SEPA Mandat
     YourSEPAMandate=Ihr SEPA-Mandat
    -FindYourSEPAMandate=Dies ist Ihr SEPA-Auftrag, um unser Unternehmen zu autorisieren, einen Lastschriftauftrag an Ihre Bank zu erteilen. Bitte senden Sie dieses Formular unterschrieben an uns zurück (Scan des signierten Dokuments per Email) oder senden Sie es per Post an
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/de_DE/bills.lang b/htdocs/langs/de_DE/bills.lang
    index f457d28fef1..4d139451fe2 100644
    --- a/htdocs/langs/de_DE/bills.lang
    +++ b/htdocs/langs/de_DE/bills.lang
    @@ -11,7 +11,7 @@ BillsSuppliersUnpaidForCompany=Unbezahlte Lieferantenrechnungen für %s
     BillsLate=Verspätete Zahlungen
     BillsStatistics=Statistik Kundenrechnungen
     BillsStatisticsSuppliers=Statistik Lieferantenrechnungen
    -DisabledBecauseDispatchedInBookkeeping=Deaktiviert da die Rechnung schon in die Buchhaltung übernommen wurde
    +DisabledBecauseDispatchedInBookkeeping=Deaktiviert, da die Rechnung schon in die Buchhaltung übernommen wurde
     DisabledBecauseNotLastInvoice=Deaktiviert da die Rechnung nicht gelöscht werden kann. Es wurden schon Rechnungen nach dieser Rechnung erstellt, so dass die Nummerierung nicht fortlaufend wäre.
     DisabledBecauseNotErasable=Deaktiviert, da löschen nicht möglich
     InvoiceStandard=Standardrechnung
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma-Rechnung
     InvoiceProFormaDesc=Die <b>Proforma-Rechnung</b> ist das Abbild einer echten Rechnung, hat aber keinen buchhalterischen Wert.
     InvoiceReplacement=Ersatzrechnung
     InvoiceReplacementAsk=Ersatzrechnung für Rechnung
    -InvoiceReplacementDesc=<b>Ersatzrechnungen</b> dienen dem Storno und vollständigen Ersatz einer Rechnung ohne bereits erfolgtem Zahlungseingang. <br><br> Hinweis: Rechnungen mit Zahlungseingang können nicht ersetzt werden. Falls noch nicht geschlossen, werden ersetzte Rechnungen automatisch als 'Aufgegeben geschlossen' markiert.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Gutschrift
     InvoiceAvoirAsk=Gutschrift zur Rechnungskorrektur
    -InvoiceAvoirDesc=Eine <b>Gutschrift</b> ist eine negative Rechnung zur Begleichung von Wertdifferenzen zwischen Rechnungssummen und Zahlungseingängen (Zuviel bezahlt oder mangelhafte Lieferung).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Neue Gutschrift mit den Positionen der Ursprungs-Rechnung
     invoiceAvoirWithPaymentRestAmount=Gutschrift über den Restbetrag der Originalrechnung erstellen
     invoiceAvoirLineWithPaymentRestAmount=Gutschrift über den Restbetrag der Originalrechnung
    @@ -66,8 +66,8 @@ paymentInInvoiceCurrency=in Rechnungswährung
     PaidBack=Zurück bezahlt
     DeletePayment=Lösche Zahlung
     ConfirmDeletePayment=Möchten Sie diese Zahlung wirklich löschen?
    -ConfirmConvertToReduc=Möchten Sie dieses %s in einen absoluten Rabatt konvertieren? <br> Der Betrag wird so unter allen Rabatten gespeichert und kann als Rabatt für ein aktuelle oder zukünftige Rechnung für diese Kunden verwendet werden.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Lieferantenzahlungen
     ReceivedPayments=Erhaltene Zahlungen
     ReceivedCustomersPayments=Erhaltene Anzahlungen von Kunden
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Zahlungsziel
     PaymentAmount=Zahlungsbetrag
     ValidatePayment=Zahlung freigeben
     PaymentHigherThanReminderToPay=Zahlungsbetrag übersteigt Zahlungserinnerung
    -HelpPaymentHigherThanReminderToPay=Achtung, der Zahlungsbetrag einer oder mehrerer Rechnungen ist höher als der offene Restbetrag.<br>Bearbeiten Sie Ihre Eingabe oder bestätigen Sie die Überzahlung und erstellen Sie ggf eine Gutschrift für jede überzahlte Rechnung.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Als 'bezahlt' markieren
     ClassifyPaidPartially=Als 'teilweise bezahlt' markieren
     ClassifyCanceled=Rechnung 'aufgegeben'
    @@ -109,9 +109,9 @@ CancelBill=Rechnung stornieren
     SendRemindByMail=Zahlungserinnerung per E-Mail versenden
     DoPayment=Zahlung eingeben
     DoPaymentBack=Rückerstattung eingeben
    -ConvertToReduc=Mark as credit available
    -ConvertExcessReceivedToReduc=Convert excess received into available credit
    -ConvertExcessPaidToReduc=Convert excess paid into available discount
    +ConvertToReduc=Markieren als "Guthaben verfügbar"
    +ConvertExcessReceivedToReduc=Zuviel erhalterner Betrag in Guthaben umwandeln
    +ConvertExcessPaidToReduc=Zuviel bezahlter Betrag in Rabatt umwandeln
     EnterPaymentReceivedFromCustomer=Geben Sie die vom Kunden erhaltene Zahlung ein
     EnterPaymentDueToCustomer=Kundenzahlung fällig stellen
     DisabledBecauseRemainderToPayIsZero=Deaktiviert, da Zahlungserinnerung auf null steht
    @@ -120,7 +120,7 @@ BillStatus=Rechnung Status
     StatusOfGeneratedInvoices=Status der erstellten Rechnungen
     BillStatusDraft=Entwurf (freizugeben)
     BillStatusPaid=Bezahlt
    -BillStatusPaidBackOrConverted=Credit note refund or marked as credit available
    +BillStatusPaidBackOrConverted=Gutschrift oder als Guthaben markiert
     BillStatusConverted=Bezahlt (in der Schlussrechnung zu verarbeiten)
     BillStatusCanceled=Aufgegeben
     BillStatusValidated=Freigegeben (zu bezahlen)
    @@ -132,6 +132,7 @@ BillStatusClosedPaidPartially=Bezahlt (teilweise)
     BillShortStatusDraft=Entwurf
     BillShortStatusPaid=Bezahlt
     BillShortStatusPaidBackOrConverted=Rückerstattet oder umgewandelt
    +Refunded=Rückerstattet
     BillShortStatusConverted=Bezahlt
     BillShortStatusCanceled=Storniert
     BillShortStatusValidated=Freigegeben
    @@ -145,7 +146,7 @@ ErrorVATIntraNotConfigured=Intrakommunale UID-Nr. noch nicht definiert
     ErrorNoPaiementModeConfigured=Keine standardmäßige Zahlungsart definiert. Beheben Sie diesen Fehler in den Einstellungen des Rechnungsmoduls.
     ErrorCreateBankAccount=Legen Sie ein Bankkonto an und definieren Sie anschließend die Zahlungsarten in den Einstellungen des Rechnungsmoduls.
     ErrorBillNotFound=Rechnung %s existiert nicht
    -ErrorInvoiceAlreadyReplaced=Fehler: Sie versuchen eine Ersatzrechnung für Rechnung %s freizugeben. Diese wurde allerdings bereits durch Rechnung %s ersetzt.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Fehler: Dieser Rabatt ist bereits verbraucht.
     ErrorInvoiceAvoirMustBeNegative=Fehler: Gutschriften verlangen nach einem negativen Rechnungsbetrag
     ErrorInvoiceOfThisTypeMustBePositive=Fehler: Rechnungen dieses Typs verlangen nach einem positiven Rechnungsbetrag
    @@ -179,7 +180,7 @@ ConfirmClassifyPaidBill=Möchten Sie die Rechnung <b>%s</b> wirklich als 'bezahl
     ConfirmCancelBill=Möchten sie die Rechnung <b>%s</b> wirklich stornieren?
     ConfirmCancelBillQuestion=Möchten Sie diesen Sozialbeitrag wirklich als 'abgebrochen' markieren?
     ConfirmClassifyPaidPartially=Möchten Sie die Rechnung <b>%s</b> wirklich als 'bezahlt' markieren?
    -ConfirmClassifyPaidPartiallyQuestion=Diese Rechnung wurde noch nicht vollständig bezahlt. Warum möchten Sie diese Rechnung als erledigt bestätigen ?
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
     ConfirmClassifyPaidPartiallyReasonAvoir=Der offene Zahlbetrag <b>( %s %s)</b> resultiert aus einem gewährten Skonto. Zur Korrektur der USt. wird eine Gutschrift angelegt.
     ConfirmClassifyPaidPartiallyReasonDiscount=Unbezahlter Rest <b>(%s %s)</b> ist gewährter Rabatt / Skonto.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Der offene Zahlbetrag <b>( %s %s)</b> resultiert aus einem gewährten Skonto. Ich akzeptiere den Verlust der USt. aus diesem Rabatt.
    @@ -187,12 +188,12 @@ ConfirmClassifyPaidPartiallyReasonDiscountVat=Der offene Zahlbetrag <b>( %s %s)<
     ConfirmClassifyPaidPartiallyReasonBadCustomer=schlechter Zahler
     ConfirmClassifyPaidPartiallyReasonProductReturned=Produkte teilweise retourniert
     ConfirmClassifyPaidPartiallyReasonOther=Betrag aus anderen Gründen uneinbringlich
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Diese Wahl ist möglich, wenn Sie Ihre Rechnung mit passenden Kommentar versehen sein. (Beispiel «Nur die Steuer entsprechend dem Preis, der gezahlt worden tatsächlich gibt Rechte an Abzug»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Diese Option steht Ihnen nur dann offen, falls Ihre Rechnung einen entsprechenden Vermerk enthält. (Beispiel: Nur der tatsächlich bezahlte Preis ist abzugsfähig)
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Mit dieser Wahl, wenn alle anderen nicht passt
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Unter <b>Kundenverschulden</b> fallen vor allem Zahlungsunwilligkeit-, bzw. -unfähigkeit (Insolvenz).
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Wählen Sie diese Option, falls die Zahlungsdifferenz aus Warenrücksendungen resultiert.
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Wählen Sie diese Option, falls keine der anderen zutrifft: <br> - Mangelhafte oder falsche Lieferung <br> - Forderung auf Grund vergessenen Rabatts zu hoch <br> Korrigieren Sie in jedem Fall das Rechnungswesen über eine entsprechende Gutschrift.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Andere
     ConfirmClassifyAbandonReasonOtherDesc=Wählen Sie diese Option in allen anderen Fällen, z.B. wenn Sie planen, eine Ersatzrechnung anzulegen.
     ConfirmCustomerPayment=Bestätigen Sie diesen Zahlungseingang für <b>%s</b>, %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Bestätigen Sie diesen Zahlungseingang für <b>%s</b>, %s
     ConfirmValidatePayment=Zahlung wirklich annehmen? Eine Änderung ist anschließend nicht mehr möglich.
     ValidateBill=Rechnung freigeben
     UnvalidateBill=Ungültige Rechnung
    -NumberOfBills=Anzahl der Rechnungen
    +NumberOfBills=Anzahl Rechnungen
     NumberOfBillsByMonth=Anzahl Rechnungen pro Monat
     AmountOfBills=Anzahl der Rechnungen
    +AmountOfBillsHT=Rechnungsbetrag (Netto ohne Steuern)
     AmountOfBillsByMonthHT=Gesamtbetrag Rechnungen pro Monat (inkl. Steuern)
     ShowSocialContribution=Zeige Sozialabgaben/Unternehmenssteuer
     ShowBill=Zeige Rechnung
    @@ -260,9 +262,9 @@ Repeatables=Vorlagen
     ChangeIntoRepeatableInvoice=erzeuge Rechnungsvorlage
     CreateRepeatableInvoice=Rechnungs-Vorlage erstellen
     CreateFromRepeatableInvoice=Aus Rechnungs-Vorlage erzeugen
    -CustomersInvoicesAndInvoiceLines=Kundenrechnungen und -positionen
    +CustomersInvoicesAndInvoiceLines=Kundenrechnungen und -details
     CustomersInvoicesAndPayments=Kundenrechnungen und -zahlungen
    -ExportDataset_invoice_1=Kundenrechnungen und -positionen
    +ExportDataset_invoice_1=Kundenrechnungen und -details
     ExportDataset_invoice_2=Kundenrechnungen und -zahlungen
     ProformaBill=Proforma-Rechnung:
     Reduction=Ermäßigung
    @@ -282,13 +284,13 @@ RelativeDiscount=Relativer Rabatt
     GlobalDiscount=Rabattregel
     CreditNote=Gutschrift
     CreditNotes=Gutschriften
    -CreditNotesOrExcessReceived=Credit notes or excess received
    +CreditNotesOrExcessReceived=Gutschriften / erh. Überschuss
     Deposit=Anzahlung
     Deposits=Anzahlungen
     DiscountFromCreditNote=Rabatt aus Gutschrift %s
     DiscountFromDeposit=Anzahlung für Rechnung %s
    -DiscountFromExcessReceived=Payments in excess of invoice %s
    -DiscountFromExcessPaid=Payments in excess of invoice %s
    +DiscountFromExcessReceived=Überzahlungen der Rechnung %s empfangen
    +DiscountFromExcessPaid=Überzahlungen der Rechnung %s empfangen
     AbsoluteDiscountUse=Diese Art von Guthaben kann verwendet werden auf der Rechnung vor der Validierung
     CreditNoteDepositUse=Die Rechnung muss bestätigt werden, um Gutschriften zu erstellen
     NewGlobalDiscount=Neue Rabattregel
    @@ -297,14 +299,14 @@ DiscountType=Rabatt Typ
     NoteReason=Anmerkung/Begründung
     ReasonDiscount=Rabattgrund
     DiscountOfferedBy=Rabatt angeboten von
    -DiscountStillRemaining=Discounts or credits available
    -DiscountAlreadyCounted=Discounts or credits already consumed
    -CustomerDiscounts=Customer discounts
    -SupplierDiscounts=Vendors discounts
    +DiscountStillRemaining=Rabatte oder Gutschriften verfügbar
    +DiscountAlreadyCounted=Rabatte oder Gutschriften  bereits berücksichtigt
    +CustomerDiscounts=Kundenrabatte
    +SupplierDiscounts=Lieferantenrabatte
     BillAddress=Rechnungsanschrift
    -HelpEscompte=Bei diesem Rabatt handelt es sich um einen Skonto.
    -HelpAbandonBadCustomer=Dieser Betrag wurde aufgegeben (Kundenverschulden) ist als uneinbringlich zu werten.
    -HelpAbandonOther=Dieser Betrag wurde auf Grund eines Fehlers aufgegeben (falsche Rechnung oder an falschen Kunden)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=Dieser Betrag wurde auf Grund eines Fehlers aufgegeben (z.B. falscher Kunde oder Ersatzrechnung erstellt)
     IdSocialContribution=Sozialabgaben/Unternehmenssteuer Zahlungs-ID
     PaymentId=Zahlung id
     PaymentRef=Zahlung Nr.
    @@ -321,31 +323,31 @@ InvoiceNotChecked=Keine Rechnung ausgewählt
     CloneInvoice=Rechnung duplizieren
     ConfirmCloneInvoice=Möchten Sie diese Rechnung <b>%s</b> wirklich duplizieren?
     DisabledBecauseReplacedInvoice=Aktion unzulässig, da die betreffende Rechnung ersetzt wurde
    -DescTaxAndDividendsArea=Dieser Bereich zeigt eine Zusammenfassung aller Zahlungen auf spezielle Ausgaben. Nur Zeilen mit Zahlungen in dem Geschäftsjahr werden angezeigt.
    -NbOfPayments=Anzahl der Zahlungen
    +DescTaxAndDividendsArea=Dieser Bereich stellt eine Übersicht aller Zahlungen für sonstige Ausgaben dar. Nur Datensätze mit Zahlung im festgelegten Jahr sind enthalten.
    +NbOfPayments=Anzahl Zahlungen
     SplitDiscount=Rabatt in zwei aufteilen
    -ConfirmSplitDiscount=Möchten Sie wirklich den Rabatt von  <b>%s</b> %s in zwei kleinere Rabatte aufteilen ?
    -TypeAmountOfEachNewDiscount=Geben Sie den Betrag für jeden der zwei Teile ein:
    -TotalOfTwoDiscountMustEqualsOriginal=Summe der beiden neuen Rabatte muss gleich dem ursprünglichen Rabattbetrag sein.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Geben Sie den Betrag für jeden der beiden Teile ein:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Sind Sie sicher, dass sie diesen Rabatt löschen wollen?
     RelatedBill=Ähnliche Rechnung
     RelatedBills=Ähnliche Rechnungen
     RelatedCustomerInvoices=Ähnliche Kundenrechnungen
     RelatedSupplierInvoices=Ähnliche Lieferantenrechnungen
     LatestRelatedBill=Letzte ähnliche Rechnung
    -WarningBillExist=Achtung, es existiert bereits mindestens eine Rechnung
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=PDF zusammenführen
     AmountPaymentDistributedOnInvoice=Zahlungsbetrag verteilt auf Rechnung
     PaymentOnDifferentThirdBills=Erlaube Zahlungen für Rechnungen an verschiedene Partner der selben Firma.
     PaymentNote=Zahlungshinweis
     ListOfPreviousSituationInvoices=Liste der vorherigen Fortschrittsrechnungen
     ListOfNextSituationInvoices=Liste der nächsten Fortschrittsrechnungen
    -ListOfSituationInvoices=List of situation invoices
    -CurrentSituationTotal=Total current situation
    -DisabledBecauseNotEnouthCreditNote=To remove a situation invoice from cycle, this invoice's credit note total must cover this invoice total
    -RemoveSituationFromCycle=Remove this invoice from cycle
    -ConfirmRemoveSituationFromCycle=Remove this invoice %s from cycle ?
    -ConfirmOuting=Confirm outing
    +ListOfSituationInvoices=Liste der Rechnungssituationen
    +CurrentSituationTotal=Total Rechnungssituationen
    +DisabledBecauseNotEnouthCreditNote=Um eine Rechnungssitzuation von diesem Zyklus auszuschliessen, muss das Guthabentotal den Rechnungsbetrag abdecken
    +RemoveSituationFromCycle=Diese Rechnung aus diesem Rechnugslauf ausschliessen
    +ConfirmRemoveSituationFromCycle=Diese Rechnung %s aus diesem Rechnungslauf ausschliessen?
    +ConfirmOuting=Auslassen bestätigen
     FrequencyPer_d=alle %s Tage
     FrequencyPer_m=Alle %s Monate
     FrequencyPer_y=Alle %s Jahre
    @@ -355,10 +357,10 @@ NextDateToExecution=Datum der nächsten Rechnungserstellung
     NextDateToExecutionShort=Datum nächste Generierung
     DateLastGeneration=Datum der letzten Generierung
     DateLastGenerationShort=Datum letzte Generierung
    -MaxPeriodNumber=Max number of invoice generation
    -NbOfGenerationDone=Number of invoice generation already done
    -NbOfGenerationDoneShort=Number of generation done
    -MaxGenerationReached=Maximum number of generations reached
    +MaxPeriodNumber=Höchten Nummer des Rechnungslaufes
    +NbOfGenerationDone=Rechnungslauf für diese Nummer schon durchgeführt
    +NbOfGenerationDoneShort=Anzahl Generationen durchgeführt
    +MaxGenerationReached=Max. Anzahl Generierungen erreicht
     InvoiceAutoValidate=Rechnungen automatisch freigeben
     GeneratedFromRecurringInvoice=Erstelle wiederkehrende Rechnung %s aus Vorlage
     DateIsNotEnough=Datum noch nicht erreicht
    @@ -394,7 +396,7 @@ PaymentConditionShort14DENDMONTH=14 Tage nach Monatsende
     PaymentCondition14DENDMONTH=Innerhalb von 14 Tagen nach Monatsende
     FixAmount=Fester Betrag
     VarAmount=Variabler Betrag (%% tot.)
    -VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s'
    +VarAmountOneLine=Variabler Betrag (%% Total) -1 Position mit Label '%s'
     # PaymentType
     PaymentTypeVIR=Banküberweisung
     PaymentTypeShortVIR=Banküberweisung
    @@ -408,8 +410,8 @@ PaymentTypeCHQ=Scheck
     PaymentTypeShortCHQ=Scheck
     PaymentTypeTIP=Banküberweisung (Dokument gegen Zahlung)
     PaymentTypeShortTIP=Banküberweisung
    -PaymentTypeVAD=Online-Zahlung
    -PaymentTypeShortVAD=Online-Zahlung
    +PaymentTypeVAD=Online Zahlung
    +PaymentTypeShortVAD=Online Zahlung
     PaymentTypeTRA=Scheck
     PaymentTypeShortTRA=Scheck
     PaymentTypeFAC=Nachnahme
    @@ -418,9 +420,9 @@ BankDetails=Bankverbindung
     BankCode=Bankleitzahl
     DeskCode=Desk-Code
     BankAccountNumber=Kontonummer
    -BankAccountNumberKey=Schlüssel
    +BankAccountNumberKey=Prüfziffer
     Residence=Lastschrift
    -IBANNumber=IBAN-Nummer
    +IBANNumber=Ganze IBAN Kontonummer
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC Code
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Zahlung per Überweisung auf folgendes Konto
     VATIsNotUsedForInvoice=* Nicht für USt-art-CGI-293B
     LawApplicationPart1=Durch die Anwendung des Gesetzes 80,335 von 12/05/80
     LawApplicationPart2=Die Ware bleibt Eigentum
    -LawApplicationPart3=des Verkäufers bis zur vollständigen Bezahlung
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=des Preises.
     LimitedLiabilityCompanyCapital=SARL mit einem Kapital von
     UseLine=Übernehmen
    @@ -463,7 +465,7 @@ Cheques=Schecks
     DepositId=Scheck Nr.
     NbCheque=Schecknummer
     CreditNoteConvertedIntoDiscount=Diese Gutschrift %s wurde in %s umgewandelt
    -UsBillingContactAsIncoiveRecipientIfExist=Verwenden Sie Kunden Abrechnung Kontakt-Adresse anstelle von Dritten als Empfänger-Adresse für Rechnungen
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Zeige alle unbezahlten Rechnungen
     ShowUnpaidLateOnly=Zeige nur verspätete unbezahlte Rechnung
     PaymentInvoiceRef=Die Zahlung der Rechnung %s
    @@ -474,21 +476,22 @@ Reported=Verzögert
     DisabledBecausePayments=Nicht möglich, da es Zahlungen gibt
     CantRemovePaymentWithOneInvoicePaid=Die Zahlung kann nicht entfernt werden, da es mindestens eine Rechnung gibt, die als bezahlt markiert ist
     ExpectedToPay=Erwartete Zahlung
    -CantRemoveConciliatedPayment=Zugeordnete Zahlung kann nicht gelöscht werden.
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=mit dieser Zahlung beglichen
    -ClosePaidInvoicesAutomatically=Markiert alle Standard-, Anzahlungs- oder Ersatzrechnungen als "bezahlt", wenn diese vollständig beglichen sind.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Markiert alle Gutschriften als "bezahlt", wenn diese vollständig beglichen sind.
    -ClosePaidContributionsAutomatically=Vollständig beglichenen Sozialabgaben oder Steuerbeträge als "bezahlt" kennzeichnen.
    -AllCompletelyPayedInvoiceWillBeClosed=Alle Rechnungen ohne ausstehende Zahlungen werden automatisch geschlossen und als "bezahlt" markiert.
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Bezahlen
     ToMakePaymentBack=Rückzahlung
     ListOfYourUnpaidInvoices=Liste aller unbezahlten Rechnungen
     NoteListOfYourUnpaidInvoices=Bitte beachten: Diese Liste enthält nur Rechnungen an Partner, bei denen Sie als Vertreter angegeben sind.
     RevenueStamp=Steuermarke
    -YouMustCreateInvoiceFromThird=Diese Option ist nur verfügbar beim erstellen von Rechnungen aus dem Kundenbereich
    -YouMustCreateInvoiceFromSupplierThird=Diese Option ist nur verfügbar beim erstellen von Rechnungen aus dem Bereich Lieferanten in den Partnern
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=Zuerst muss eine Standardrechnung erstellt werden, dies kann dann in eine neue Rechnungsvorlage konvertiert werden
     PDFCrabeDescription=Rechnungs-Modell Crabe. Eine vollständige Rechnung (Empfohlene Vorlage)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=PDF Rechnungsvorlage Crevette. Vollständige Rechnungsvolage für normale Rechnungen
     TerreNumRefModelDesc1=Liefert eine Nummer mit dem Format %syymm-nnnn für Standard-Rechnungen und %syymm-nnnn für Gutschriften, wobei yy=Jahr, mm=Monat und nnnn eine lückenlose Folge ohne Überlauf auf 0 ist
     MarsNumRefModelDesc1=Liefere Nummer im Format  %syymm-nnnn für Standardrechnungen %syymm-nnnn für Ersatzrechnung,  %syymm-nnnn für Anzahlungsrechnung und %syymm-nnnn für Gutschriften wobei  yy Jahr, mm Monat und nnnn eine laufende Nummer ohne Unterbrechung und ohne Rückkehr zu 0 ist.
    @@ -513,9 +516,9 @@ SituationAmount=Situation Rechnungsbetrag (ohne USt.)
     SituationDeduction=Situation Subtraktion
     ModifyAllLines=Bearbeite alle Zeilen
     CreateNextSituationInvoice=Erstelle nächsten Fortschritt-Rechnung
    -ErrorFindNextSituationInvoice=Error unable to find next situation cycle ref
    -ErrorOutingSituationInvoiceOnUpdate=Unable to outing this situation invoice.
    -ErrorOutingSituationInvoiceCreditNote=Unable to outing linked credit note.
    +ErrorFindNextSituationInvoice=Fehler Kann die nächste Situation im Zyklus nicht finden
    +ErrorOutingSituationInvoiceOnUpdate=Kann diese Situationsrechnung nicht ausschliessen.
    +ErrorOutingSituationInvoiceCreditNote=Kann dies verknüpfte Gutschrift nicht ausschliessen.
     NotLastInCycle=Diese Rechnung ist nicht die letzte im Zyklus und darf nicht geändert werden.
     DisabledBecauseNotLastInCycle=Die nächste Situation existiert bereits.
     DisabledBecauseFinal=Dieser Status ist endgültig.
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Fortschritt der Rechnungsposition kann nicht größer o
     updatePriceNextInvoiceErrorUpdateline=Fehler: Preis der Rechnungsposition %s aktualisieren
     ToCreateARecurringInvoice=Um eine wiederkehrende Rechnung für diesen Vertrag zu erstellen, legen Sie zuerst einen Rechnungsentwurf an, wandeln diesen dann in eine Rechnungsvorlage um und definieren die Häufigkeit der Erstellung der zukünftigen Rechnungen.
     ToCreateARecurringInvoiceGene=Um zukünftige Rechnungen regelmäßig und manuell zu erstellen, rufen Sie das Menü <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=Wollen Sie diese Rechnungen automatisch generieren lassen, fragen Sie Ihren Administrator das Modul <strong>%s</strong> zu aktivieren und einzurichten. Sie können beide Methoden (manuell und automatisch) ohne Risiko von doppelten Rechnungen zusammen verwenden.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Rechnungs-Template löschen
     ConfirmDeleteRepeatableInvoice=Möchten Sie diese Rechnungsvorlage wirklich löschen?
     CreateOneBillByThird=Erstelle eine Rechnung pro Partner (andernfalls, eine Rechnung pro Bestellung)
    @@ -541,8 +544,9 @@ BillCreated=%s Rechnung(en) erstellt
     StatusOfGeneratedDocuments=Status der Dokumentenerstellung
     DoNotGenerateDoc=Dokumentdatei nicht erstellen
     AutogenerateDoc=Dokumentdatei automatisch erstellen
    -AutoFillDateFrom=Set start date for service line with invoice date
    +AutoFillDateFrom=Startdatum der Dienstleistung auf das Rechnungsdatum setzen
     AutoFillDateFromShort=Legen Sie das Startdatum fest
    -AutoFillDateTo=Set end date for service line with next invoice date
    -AutoFillDateToShort=Set end date
    -MaxNumberOfGenerationReached=Max number of gen. reached
    +AutoFillDateTo=Enddatum der Dienstleistung auf das Rechnungsdatum setzen
    +AutoFillDateToShort=Enddatum festlegen
    +MaxNumberOfGenerationReached=Maximal Anzahl Generierungen erreicht
    +BILL_DELETEInDolibarr=Rechnung gelöscht
    diff --git a/htdocs/langs/de_DE/cashdesk.lang b/htdocs/langs/de_DE/cashdesk.lang
    index 39b5daa27d3..37ace689d44 100644
    --- a/htdocs/langs/de_DE/cashdesk.lang
    +++ b/htdocs/langs/de_DE/cashdesk.lang
    @@ -1,6 +1,6 @@
     # Language file - Source file is en_US - cashdesk
     CashDeskMenu=POS Kasse
    -CashDesk=Kasse
    +CashDesk=Verkaufsstelle
     CashDeskBankCash=Bankkonto (Bargeld)
     CashDeskBankCB=Bankkonto (Kartenzahlung)
     CashDeskBankCheque=Bankkonto(Scheckzahlung)
    @@ -30,5 +30,15 @@ ShowCompany=Zeige Unternehmen
     ShowStock=Zeige Lager
     DeleteArticle=Klicken, um diesen Artikel zu entfernen
     FilterRefOrLabelOrBC=Suche (Art-Nr./Name)
    -UserNeedPermissionToEditStockToUsePos=Sie bitten, ab dem Rechnungserstellung zu verringern, so dass Benutzer, die POS verwenden müssen, um die Erlaubnis, Lager zu bearbeiten.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Quittungsdrucker
    +PointOfSale=Kassen
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Etage
    +AddTable=Tisch hinzufügen
    +Place=Platz
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Bondrucker
    +SearchProduct=Produkt suchen
    diff --git a/htdocs/langs/de_DE/commercial.lang b/htdocs/langs/de_DE/commercial.lang
    index 8c85297f506..a6bff185467 100644
    --- a/htdocs/langs/de_DE/commercial.lang
    +++ b/htdocs/langs/de_DE/commercial.lang
    @@ -1,16 +1,16 @@
     # Dolibarr language file - Source file is en_US - commercial
    -Commercial=Vertrieb
    +Commercial=Einkauf | Vertrieb
     CommercialArea=Vertrieb - Übersicht
     Customer=Kunde
     Customers=Kunden
     Prospect=Lead
     Prospects=Leads
     DeleteAction=Löschen eines Ereignis
    -NewAction=Neue/r Termin/Aufgabe
    +NewAction=erstelle Termin/Aufgabe
     AddAction=Termin/Aufgabe erstellen
     AddAnAction=Erstelle Termin/Aufgabe
     AddActionRendezVous=erstelle Termin
    -ConfirmDeleteAction=Möchten Sie diese Veranstaltung wirklich löschen ?
    +ConfirmDeleteAction=Dieses Ereignis wirklich löschen ?
     CardAction=Ereignis - Karte
     ActionOnCompany=Verknüpftes Unternehmen
     ActionOnContact=Verknüpfter Kontakt
    @@ -38,7 +38,7 @@ SendPropalRef=Einreichung der Angebote %s
     SendOrderRef=Einreichung der Bestellung %s
     StatusNotApplicable=Nicht anwendbar
     StatusActionToDo=Zu erledigen
    -StatusActionDone=Abgeschlossen
    +StatusActionDone=erledigt
     StatusActionInProcess=In Bearbeitung
     TasksHistoryForThisContact=Ereignisse zu diesem Kontakt
     LastProspectDoNotContact=Nicht kontaktieren
    @@ -52,16 +52,17 @@ ActionAC_TEL=Anruf
     ActionAC_FAX=Fax versenden
     ActionAC_PROP=Angebot senden
     ActionAC_EMAIL=E-Mail senden
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Termine
     ActionAC_INT=Serviceaufträge vor Ort
     ActionAC_FAC=Kundenrechnung senden
    -ActionAC_REL=Kundenrechnung senden(Erinnerung)
    -ActionAC_CLO=Schließen
    +ActionAC_REL=Kundenrechnung senden  (Erinnerung)
    +ActionAC_CLO=schließen
     ActionAC_EMAILING=E-Mail-Kampagne starten
     ActionAC_COM=Sende Bestellung per Post
     ActionAC_SHIP=Lieferschein senden
    -ActionAC_SUP_ORD=Send purchase order by mail
    -ActionAC_SUP_INV=Send vendor invoice by mail
    +ActionAC_SUP_ORD=Lieferantenbestellung per E-Mail versenden
    +ActionAC_SUP_INV=Lieferanten-Rechnung per E-Mail versenden
     ActionAC_OTH=Sonstiges
     ActionAC_OTH_AUTO=Automatisch eingefügte Ereignisse
     ActionAC_MANUAL=Manuell eingefügte Ereignisse
    @@ -72,8 +73,8 @@ StatusProsp=Lead Status
     DraftPropals=Entworfene Angebote
     NoLimit=Kein Limit
     ToOfferALinkForOnlineSignature=Link zur Onlinesignatur
    -WelcomeOnOnlineSignaturePage=Wilkommen auf der Seite um die Angebote von %s zu akzeptieren
    +WelcomeOnOnlineSignaturePage=Wilkommen auf der Seite um Angebote von %s zu akzeptieren
     ThisScreenAllowsYouToSignDocFrom=Auf dieser Seite können Angebote akzeptiert und unterschreiben oder ablehnt werden
     ThisIsInformationOnDocumentToSign=Information zum Dokument zum Akzeptieren oder Ablehnen
     SignatureProposalRef=Unterschrift des Angebotes %s
    -FeatureOnlineSignDisabled=Onlineunterschrift ist deaktiviert oder das Dokument wurde erstellt, bevor dieses Funktion aktiviert wurde
    +FeatureOnlineSignDisabled=Onlineunterschrift ist deaktiviert oder das Dokument wurde erstellt, bevor diese Funktion aktiviert wurde
    diff --git a/htdocs/langs/de_DE/companies.lang b/htdocs/langs/de_DE/companies.lang
    index 856871fe635..51e9d405440 100644
    --- a/htdocs/langs/de_DE/companies.lang
    +++ b/htdocs/langs/de_DE/companies.lang
    @@ -8,11 +8,11 @@ ConfirmDeleteContact=Möchten Sie diesen Partner und alle damit verbundenen Info
     MenuNewThirdParty=Neuer Partner
     MenuNewCustomer=Neuer Kunde
     MenuNewProspect=Neuer Lead
    -MenuNewSupplier=New vendor
    +MenuNewSupplier=Neuer Lieferant
     MenuNewPrivateIndividual=Neue Privatperson
    -NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    -CreateDolibarrThirdPartySupplier=Create a third party (vendor)
    +NewCompany=Neue Firma  (Interessent, Kunde, Lieferant)
    +NewThirdParty=Neuer Partner (Interessent, Kunde, Lieferant)
    +CreateDolibarrThirdPartySupplier=Neuen Lieferanten erstellen 
     CreateThirdPartyOnly=Partner erstellen
     CreateThirdPartyAndContact=Neuen Partner und Unteradresse erstellen
     ProspectionArea=Übersicht Geschäftsanbahnung
    @@ -37,14 +37,14 @@ ThirdPartyProspectsStats=Leads
     ThirdPartyCustomers=Kunden
     ThirdPartyCustomersStats=Kunden
     ThirdPartyCustomersWithIdProf12=Kunden mit %s oder %s
    -ThirdPartySuppliers=Vendors
    +ThirdPartySuppliers=Lieferanten
     ThirdPartyType=Typ des Partners
     Individual=Privatperson
    -ToCreateContactWithSameName=Erzeugt automatisch einen Kontakt/Adresse mit der gleichen Information wie der Partner unter dem Partner. In den meisten Fällen, auch wenn Ihr Prtner eine natürliche Person ist, reicht nur die Anlage eines Partners
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Muttergesellschaft
     Subsidiaries=Tochtergesellschaften
    -ReportByMonth=Report by month
    -ReportByCustomers=Report by customer
    +ReportByMonth=Bericht nach Monat
    +ReportByCustomers=Bericht nach Kunden
     ReportByQuarter=Bericht Quartal
     CivilityCode=Anrede
     RegisteredOffice=Firmensitz
    @@ -77,11 +77,11 @@ Web=Web
     Poste= Posten
     DefaultLang=Standard-Sprache
     VATIsUsed=inkl. MwSt.
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +VATIsUsedWhenSelling=Dies definiert ob dieser Partner Steuern auf der Rechnung an seine eigenen Kunden ausweist oder nicht
     VATIsNotUsed=exkl. MwSt.
     CopyAddressFromSoc=Anschriften zu diesem Partner
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Partner ist weder Kunde noch Lieferant, keine verbundenen Objekte
    +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Partner ist weder Kunde noch Lieferant, Rabatte sind nicht verfügbar
     PaymentBankAccount=Bankkonto für Zahlungen
     OverAllProposals=Angebote
     OverAllOrders=Bestellungen
    @@ -99,9 +99,9 @@ LocalTax2ES=EKSt.
     TypeLocaltax1ES=RE Typ
     TypeLocaltax2ES=EKSt. Typ
     WrongCustomerCode=Kundencode ungültig
    -WrongSupplierCode=Vendor code invalid
    +WrongSupplierCode=Lieferantennummer ist ungültig
     CustomerCodeModel=Kundencode-Modell
    -SupplierCodeModel=Vendor code model
    +SupplierCodeModel=Lieferantennummern-Modell
     Gencod=Barcode
     ##### Professional ID #####
     ProfId1Short=Prof. ID 1
    @@ -261,31 +261,31 @@ ProfId4DZ=Kundenidentifikationsnummer
     VATIntra=Umsatzsteuer ID
     VATIntraShort=Steuer ID
     VATIntraSyntaxIsValid=Die Syntax ist gültig
    -VATReturn=VAT return
    +VATReturn=Mehrwertsteuererstattung
     ProspectCustomer=Lead / Kunde
     Prospect=Lead
     CustomerCard=Kunden - Karte
     Customer=Kunde
     CustomerRelativeDiscount=Kundenrabatt relativ
    -SupplierRelativeDiscount=Relative vendor discount
    +SupplierRelativeDiscount=Relativer Lieferantenrabatt
     CustomerRelativeDiscountShort=Rabatt relativ
     CustomerAbsoluteDiscountShort=Rabatt absolut
     CompanyHasRelativeDiscount=Dieser Kunde hat einen Rabatt <b>von %s%%</b>
     CompanyHasNoRelativeDiscount=Dieser Kunde hat standardmäßig keinen relativen Rabatt
    -HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
    -HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=Dieser Kunde hat noch ein Guthaben (Gutschrift oder Überzahlung) über <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=Für diesen Kunden existieren Rabatte (Anzahlungen) für <b>%s</b>%s
    +HasRelativeDiscountFromSupplier=Sie haben einen Standardrabatt von <b>%s%%</b> bei diesem Lieferanten
    +HasNoRelativeDiscountFromSupplier=Sie haben keinen relativen Rabatt bei diesem Lieferanten
    +CompanyHasAbsoluteDiscount=Dieser Kunde hat ein Guthaben verfügbar (Gutschriften oder Anzahlungen) für <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=Dieser Kunde hat ein Guthaben verfügbar (Gutschriften oder Anzahlungen) für<b>%s</b> %s
     CompanyHasCreditNote=Dieser Kunde hat noch Gutschriften <b>über %s %s</b>
    -HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
    -HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    -HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for <b>%s</b> %s from this supplier
    -HasCreditNoteFromSupplier=You have credit notes for <b>%s</b> %s from this supplier
    +HasNoAbsoluteDiscountFromSupplier=Sie haben keinen Gutschschriften von diesen Lieferanten verfügbar
    +HasAbsoluteDiscountFromSupplier=Sie haben Rabatte (Gutschrift / Vorauszahlung) über <b>%s</b>%s bei diesem Lieferanten verfügbar
    +HasDownPaymentOrCommercialDiscountFromSupplier=Sie haben Rabatte (Restguthaben / Vorauszahlung) über <b>%s</b>%s bei diesem Lieferanten verfügbar
    +HasCreditNoteFromSupplier=Sie haben Gutschriften über <b>%s</b>%s bei diesem Lieferanten verfügbar
     CompanyHasNoAbsoluteDiscount=Dieser Kunde hat keine Rabattgutschriften zur Verfügung
    -CustomerAbsoluteDiscountAllUsers=Absolute customer discounts (granted by all users)
    -CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
    -SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
    -SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
    +CustomerAbsoluteDiscountAllUsers=Absolute Kundenrabatte (von allen Nutzern gewährte)
    +CustomerAbsoluteDiscountMy=Absolute Kundenrabatte (Durch sie persönlich gewährt)
    +SupplierAbsoluteDiscountAllUsers=Absolute Lieferantenrabatte (von allen Benutzern erfasst)
    +SupplierAbsoluteDiscountMy=Absolute Lieferantenrabatte (durch sie erfasst)
     DiscountNone=Keine
     Supplier=Lieferant
     AddContact=Kontakt erstellen
    @@ -304,19 +304,19 @@ DeleteACompany=Löschen eines Unternehmens
     PersonalInformations=Persönliche Daten
     AccountancyCode=Buchhaltungskonto
     CustomerCode=Kundennummer
    -SupplierCode=Vendor code
    +SupplierCode=Lieferantennummer
     CustomerCodeShort=Kundennummer
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Kunden-Code, einzigartig für alle Kunden
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +SupplierCodeShort=Lieferantennummer
    +CustomerCodeDesc=Kundennummer, eindeutig über alle Kunden
    +SupplierCodeDesc=Lieferantennummer, eindeutig über alle Lieferanten
     RequiredIfCustomer=Erforderlich falls Partner Kunde oder Interessent ist
    -RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Gültigkeit überwacht von Modul
    -ThisIsModuleRules=Regeln dieses Moduls
    +RequiredIfSupplier=Erforderlich falls Partner Lieferant ist
    +ValidityControledByModule=Gültigkeit kontrolliert von Modul
    +ThisIsModuleRules=Regeln für dieses Modul
     ProspectToContact=Lead zu kontaktieren
     CompanyDeleted=Firma "%s" aus der Datenbank gelöscht.
     ListOfContacts=Liste der Kontakte
    -ListOfContactsAddresses=Liste der Ansprechpartner/Adressen
    +ListOfContactsAddresses=Liste der Kontakte
     ListOfThirdParties=Liste der Partner
     ShowCompany=Partner zeigen
     ShowContact=Kontakt  anzeigen
    @@ -338,14 +338,14 @@ MyContacts=Meine Kontakte
     Capital=Kapital
     CapitalOf=Stammkapital: %s
     EditCompany=Unternehmen bearbeiten
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=Dieser Benutzer ist kein Interessent, Kunde oder Lieferant
     VATIntraCheck=Prüfen
    -VATIntraCheckDesc=Der Link <b>%s</b> erlaubt eine Anfrage am Europäischen Mehrwertsteuer-Check-Service. Ein externer Zugang zum Internet-Server ist für diesen Dienst erforderlich.
    +VATIntraCheckDesc=Der Link <b>%s</b> erlaubt eine Anfrage am Europäischen Mehrwertsteuer-Check-Service. Ein Internetzugang ist für diesen Dienst erforderlich.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
     VATIntraCheckableOnEUSite=Überprüfen Sie Intrakommunale USt-Website der Europäischen Kommission
     VATIntraManualCheck=Sie können die Überprüfung auch manuell auf der Internetseite der Europäische Kommission durchführen: <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Anfrage nicht möglich. Überprüfungsdienst wird vom Mitgliedsland nicht angeboten (%s).
    -NorProspectNorCustomer=kein Kunde, kein Lead
    +NorProspectNorCustomer=Nicht Interessent oder Kunde
     JuridicalStatus=Rechtsform
     Staff=Mitarbeiterzahl
     ProspectLevelShort=Potenzial
    @@ -387,31 +387,31 @@ ExportCardToFormat=Karte in Format exportieren
     ContactNotLinkedToCompany=Kontakt keinem Partner zugeordnet
     DolibarrLogin=Dolibarr-Benutzername
     NoDolibarrAccess=Kein Zugang
    -ExportDataset_company_1=Partner und Eigenschaften
    -ExportDataset_company_2=Kontakte und Eigenschaften
    -ImportDataset_company_1=Partner und Eigenschaften
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Dritte / Außendienstmitarbeiter (Zuweisen von Außendienstmitarbeitern zu Unternehmen)
    +ExportDataset_company_1=Partner (Firmen/Stiftungen/Natürliche Personen) und ihre Eigenschaften
    +ExportDataset_company_2=Kontakte und ihre Eigenschaften
    +ImportDataset_company_1=Partner (Firmen/Stiftungen/Natürliche Personen) und ihre Eigenschaften
    +ImportDataset_company_2=Kontakte/Adressen und Attribute
    +ImportDataset_company_3=Bankkonten des Partners
    +ImportDataset_company_4=Partner - Außendienstmitarbeiter (Zuweisen von Außendienstmitarbeitern zu Unternehmen)
     PriceLevel=Preisstufe
     DeliveryAddress=Lieferadresse
     AddAddress=Adresse hinzufügen
    -SupplierCategory=Vendor category
    +SupplierCategory=Lieferantenkategorie
     JuridicalStatus200=Unabhängig
     DeleteFile=Datei löschen
     ConfirmDeleteFile=Möchten Sie diese Datei wirklich löschen?
     AllocateCommercial=Dem Vertriebsmitarbeiter zugewiesen
     Organization=Partner
    -FiscalYearInformation=Informationen über das Geschäftsjahr
    +FiscalYearInformation=Geschäftsjahr
     FiscalMonthStart=Erster Monat des Geschäftsjahres
     YouMustAssignUserMailFirst=Sie müssen zunächst eine E-Mail-Adresse für diesen Benutzer anlegen, um E-Mail-Benachrichtigungen zu ermöglichen.
     YouMustCreateContactFirst=Um E-mail-Benachrichtigungen anlegen zu können, müssen Sie zunächst einen Kontakt mit gültiger Email-Adresse zum Partner hinzufügen.
    -ListSuppliersShort=List of vendors
    +ListSuppliersShort=Liste der Lieferanten
     ListProspectsShort=Liste der Leads
     ListCustomersShort=Liste der Kunden
    -ThirdPartiesArea=Partner- und Kontaktbereich
    +ThirdPartiesArea=Partner und Kontakte
     LastModifiedThirdParties=%s zuletzt bearbeitete Partner
    -UniqueThirdParties=Gesamte Anzahl der Kontakte
    +UniqueThirdParties=Gesamte Anzahl Partner
     InActivity=Geöffnet
     ActivityCeased=Inaktiv
     ThirdPartyIsClosed=Partner ist geschlossen
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Aktuell ausstehende Rechnung
     OutstandingBill=Max. für ausstehende Rechnung
     OutstandingBillReached=Kreditlimite erreicht
     OrderMinAmount=Mindestbestellwert
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Gibt Zahlen mit dem Format %syymm-nnnn für die Kundennummer und %syymm-nnnn für die Lieferantennummer zurück, wobei yy Jahr, mm Monat und nnnn ununterbrochene Zahlenfolge ohne 0 ist.
     LeopardNumRefModelDesc=Kunden / Lieferanten-Code ist frei. Dieser Code kann jederzeit geändert werden.
     ManagingDirectors=Name(n) des/der Manager (CEO, Direktor, Geschäftsführer, ...)
     MergeOriginThirdparty=Partner duplizieren (Partner den Sie löschen möchten)
     MergeThirdparties=Partner zusammenlegen
    -ConfirmMergeThirdparties=Möchten Sie wirklich diesen Partner mit dem Aktuellen zusammenführen? Alle verbundenen Objekte (Rechnungen, Aufträge, ...) werden mit dem Aktuellen zusammengeführt, dann wird der Partner gelöscht werden.
    -ThirdpartiesMergeSuccess=Third parties have been merged
    +ConfirmMergeThirdparties=Möchten Sie wirklich diesen Partner mit dem aktuellen Partner zusammenführen? Alle verbundenen Objekte (Rechnungen, Aufträge, ...) werden mit dem aktuellen Partner zusammengeführt, dann wird der Partner gelöscht werden.
    +ThirdpartiesMergeSuccess=Partner wurden zusammengelegt
     SaleRepresentativeLogin=Login des Vertriebsmitarbeiters
     SaleRepresentativeFirstname=Vorname des Vertreter
     SaleRepresentativeLastname=Nachname des Vertreter
    -ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +ErrorThirdpartiesMerge=Es gab einen Fehler beim Löschen des Partners. Bitte Details sind im Prokoll zu finden. Die Löschung wurden rückgängig gemacht.
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/de_DE/dict.lang b/htdocs/langs/de_DE/dict.lang
    index 7be111dc08c..8facb478666 100644
    --- a/htdocs/langs/de_DE/dict.lang
    +++ b/htdocs/langs/de_DE/dict.lang
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Nordkorea
     CountryKR=Südkorea
     CountryKW=Kuwait
    -CountryKG=Kirgisien
    +CountryKG=Kirgisistan
     CountryLA=Laos
     CountryLV=Lettland
     CountryLB=Libanon
    @@ -160,7 +160,7 @@ CountryMD=Moldavien
     CountryMN=Mongolei
     CountryMS=Montserrat
     CountryMZ=Mosambik
    -CountryMM=Myanmar
    +CountryMM=Mianmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -277,7 +277,7 @@ CurrencySingMGA=Madagassisches Ariary
     CurrencyMUR=Mauritius Rupien
     CurrencySingMUR=Mauritius Rupie
     CurrencyNOK=Norwegische Kronen
    -CurrencySingNOK=Norwegische Krone
    +CurrencySingNOK=Norwegische Kronen
     CurrencyTND=Tunesischer Dinar
     CurrencySingTND=Tunesische Dinar
     CurrencyUSD=US Dollar
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Mund-zu-Mund-Propaganda
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Angestellter
     DemandReasonTypeSRC_SPONSORING=Sponsoring
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/de_DE/ecm.lang b/htdocs/langs/de_DE/ecm.lang
    index ebdd567ea31..976e09fdf1d 100644
    --- a/htdocs/langs/de_DE/ecm.lang
    +++ b/htdocs/langs/de_DE/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Anzahl Dokumente im Verzeichnis
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Verzeichnis
     ECMSectionManual=Manueller Ordner
     ECMSectionAuto=Automatischer Ordner
    @@ -17,7 +17,7 @@ ECMCreationUser=Autor
     ECMArea=DMS/CMS Bereich
     ECMAreaDesc=Das ECM (Electronic Content Management)-System erlaubt Ihnen das Speichern, Teilen und rasche Auffinden von Dokumenten.
     ECMAreaDesc2=* In den automatischen Verzeichnissen werden die vom System erzeugten Dokumente abgelegt. <br> * Die manuellen Verzeichnisse können Sie selbst verwalten und zusätzliche nicht direkt zuordenbare Dokument hinterlegen.
    -ECMSectionWasRemoved=Ordner <b>%s</b> wurde gelöscht.
    +ECMSectionWasRemoved=Verzeichnis <b>%s</b> wurde gelöscht.
     ECMSectionWasCreated=Verzeichnis <b>%s</b> wurde erstellt.
     ECMSearchByKeywords=Suche nach Stichwörtern
     ECMSearchByEntity=Suche nach Objekt
    @@ -34,18 +34,19 @@ ECMDocsByProjects=Mit Projekten verknüpfte Dokumente
     ECMDocsByUsers=Mit Benutzern verknüpfte Dokumente
     ECMDocsByInterventions=Mit Serviceaufträgen verknüpfte Dokumente
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Noch kein Ordner erstellt
     ShowECMSection=Ordner anzeigen
     DeleteSection=Verzeichnis löschen
     ConfirmDeleteSection=Möchten Sie dieses Verzeichnis <b>%s</b> wirklich löschen?
     ECMDirectoryForFiles=Relatives Verzeichnis für Dateien
    -CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories
    -CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files
    +CannotRemoveDirectoryContainsFilesOrDirs=Entfernen nicht möglich, da es Dateien oder Unterverzeichnisse enthält
    +CannotRemoveDirectoryContainsFiles=Entfernen nicht möglich, da es Dateien enthält
     ECMFileManager=Dateiverwaltung
     ECMSelectASection=Wähle einen Ordner aus der Baumansicht...
     DirNotSynchronizedSyncFirst=Dieses Verzeichnis scheint außerhalb des ECM Moduls erstellt oder verändert worden zu sein. Sie müssten auf den "Aktualisieren"-Button klicken, um den Inhalt der Festplatte mit der Datenbank zu synchronisieren.
     ReSyncListOfDir=Liste der Verzeichnisse nochmals synchronisieren
     HashOfFileContent=Hashwert der Datei
    -FileNotYetIndexedInDatabase=Datei noch nicht in Datenbank indiziert (Datei nochmals hochladen)
    -FileSharedViaALink=Datei via Link geteilt
     NoDirectoriesFound=Keine Verzeichnisse gefunden
    +FileNotYetIndexedInDatabase=Datei noch nicht in Datenbank indiziert (Datei nochmals hochladen)
    diff --git a/htdocs/langs/de_DE/errors.lang b/htdocs/langs/de_DE/errors.lang
    index 3e3bc2089ad..f9bfc74f99d 100644
    --- a/htdocs/langs/de_DE/errors.lang
    +++ b/htdocs/langs/de_DE/errors.lang
    @@ -12,7 +12,7 @@ ErrorGroupAlreadyExists=Gruppe %s existiert bereits.
     ErrorRecordNotFound=Eintrag wurde nicht gefunden.
     ErrorFailToCopyFile=Konnte die Datei <b>'%s'</b> nicht nach <b>'%s'</b> kopieren.
     ErrorFailToCopyDir=Konnte Verzeichnis '<b>%s</b>' nicht nach '<b>%s</b>' kopieren.
    -ErrorFailToRenameFile=Konnte die Datei <b>'%s'</b> nicht in <b>'%s'</b> umzubenennen.
    +ErrorFailToRenameFile=Konnte die Datei <b>'%s'</b> nicht in <b>'%s'</b> umbenennen.
     ErrorFailToDeleteFile=Fehler beim Löschen der Datei '<b>%s</b>'.
     ErrorFailToCreateFile=Fehler beim Erstellen der Datei '<b>%s</b>'.
     ErrorFailToRenameDir=Fehler beim Umbenennen des Verzeichnisses '<b>%s</b>' in '<b>%s</b>'.
    @@ -32,9 +32,9 @@ ErrorBarCodeRequired=Barcode erforderlich
     ErrorCustomerCodeAlreadyUsed=Diese Kunden-Nr. ist bereits vergeben.
     ErrorBarCodeAlreadyUsed=Barcode wird bereits verwendet
     ErrorPrefixRequired=Präfix erforderlich
    -ErrorBadSupplierCodeSyntax=Bad syntax for vendor code
    -ErrorSupplierCodeRequired=Lieferantennummer nötig 
    -ErrorSupplierCodeAlreadyUsed=Vendor code already used
    +ErrorBadSupplierCodeSyntax=Ungültige Syntax für Lieferantennummer.
    +ErrorSupplierCodeRequired=Lieferantennummer notwendig
    +ErrorSupplierCodeAlreadyUsed=Lieferanten Nr. bereits vergeben.
     ErrorBadParameters=Ungültige Werte
     ErrorBadValueForParameter=Ungültiger Wert '%s' für Paramter '%s'
     ErrorBadImageFormat=Bildformat nicht unsterstützt (Ihr PHP hat keine Konvertierungsfunktion für dieses Format)
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Eintrag '%s' hat falsche Datumsformat
     ErrorWrongDate=Falsches Datum!
     ErrorFailedToWriteInDir=Fehler beim Schreiben in das Verzeichnis %s
     ErrorFoundBadEmailInFile=Ungültige E-Mail-Adresse in %s Zeilen der Datei gefunden (z.B. Zeile %s mit E-Mail=%s)
    -ErrorUserCannotBeDelete=Dieser Benutzer kann nicht gelöscht werden. Eventuell ist er noch mit einem Partner verknüpft.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Ein oder mehrere erforderliche Felder wurden nicht ausgefüllt.
     ErrorSubjectIsRequired=Der E-Mailbetreff ist notwendig
     ErrorFailedToCreateDir=Fehler beim Erstellen eines Verzeichnisses. Vergewissern Sie sich, dass der Webserver-Benutzer Schreibberechtigungen für das Dokumentverzeichnis des Systems besitzt. Bei aktiviertem <b>safe_mode</b> sollten die Systemdateien den Webserver-Benutzer oder die -Gruppe als Besitzer haben.
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Bitte Wert für Auswahlliste eingeben
     ErrorNoValueForCheckBoxType=Bitte Wert für Kontrollkästchen-Liste eingeben
     ErrorNoValueForRadioType=Bitte Wert für Radiobutton-Liste eingeben
     ErrorBadFormatValueList=Die Listewerte kann nicht mehr als ein Komma:<u>%s</u> , muss jedoch mindestens einen Schlüssel, Wert beinhalten
    -ErrorFieldCanNotContainSpecialCharacters=Das Feld <b>%s</b> darf keine Sonderzeichen enthalten.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Das Feld <b>%s</b> darf keine Sonderzeichen, Großbuchstaben und Zahlen enthalten.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Kein Buchhaltungsmodul aktiviert
     ErrorExportDuplicateProfil=Dieser Profilname existiert bereits für dieses Exportprofil.
     ErrorLDAPSetupNotComplete=Der LDAP-Abgleich für dieses System ist nicht vollständig eingerichtet.
     ErrorLDAPMakeManualTest=Eine .ldif-Datei wurde im Verzeichnis %s erstellt. Laden Sie diese Datei von der Kommandozeile aus um mehr Informationen über Fehler zu erhalten.
    -ErrorCantSaveADoneUserWithZeroPercentage=Ereignisse können nicht mit Status "Nicht begonnen" gespeichert werden, wenn das Feld "Erledigt durch" ausgefüllt ist.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Die Nr. für den Erstellungsvorgang ist bereits vergeben
     ErrorPleaseTypeBankTransactionReportName=Geben Sie den Kontoauszug an, in dem die Zahlung enthalten ist (Format JJJJMM oder JJJJMMTT)
    -ErrorRecordHasChildren=Kann diesen Eintrag nicht löschen. Dieser Eintrag wird von mindestens einem untergeordneten Datensatz verwendet.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Objekt hat mindestens einen Untereintrag vom Typ %s
    -ErrorRecordIsUsedCantDelete=Eintrag kann nicht gelöscht werden. Er wird bereits benutzt oder ist in einem anderen Objekt enthalten.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Diese Funktion erfordert aktiviertes JavaScript. Aktivieren/deaktivieren können Sie Javascript im Menü Start-> Einstellungen->Anzeige.
     ErrorPasswordsMustMatch=Die eingegebenen Passwörter müssen identisch sein.
    -ErrorContactEMail=Ein technischer Fehler ist aufgetreten. Bitte kontaktieren Sie Ihren Administrator unter der folgenden E-Mail-Adresse <b>%s</b> und fügen Sie den Fehlercode <b>%s</b> in Ihrer Nachricht ein, oder (noch besser) fügen Sie einen Screenshot dieser Seite als Anhang bei.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Falscher Wert für Feld Nr. <b>%s</b> (Wert '<b>%s</b>' passt nicht zur Regex-Regel <b>%s</b>)
     ErrorFieldValueNotIn=Nicht korrekter Wert für das Feld Nummer <b>%s</b> (Wert '<b>%s</b>' ist kein verfügbarer Wert im Feld <b>%s</b> der Tabelle <b>%s</b>)
     ErrorFieldRefNotIn=Falscher Wert für Feldnummer <b>%s</b> (für den Wert <b>'%s'</b> besteht keine <b>%s</b> Referenz)
    @@ -87,7 +88,8 @@ ErrorsOnXLines=Fehler in <b>%s</b> Quellzeilen
     ErrorFileIsInfectedWithAVirus=Der Virenschutz konnte diese Datei nicht freigeben (eventuell ist diese mit einem Virus infiziert)
     ErrorSpecialCharNotAllowedForField=Sonderzeichen sind im Feld '%s' nicht erlaubt
     ErrorNumRefModel=Es besteht ein Bezug zur Datenbank (%s) der mit dieser Numerierungsfolge nicht kompatibel ist. Entfernen Sie den Eintrag oder benennen Sie den Verweis um, um dieses Modul zu aktivieren.
    -ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorQtyTooLowForThisSupplier=Menge zu klein für diesen Lieferanten oder kein Einstandspreis für diesen Lieferanten definiert
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Das Setup des Moduls ist unvollständig. Gehen Sie zu Home - Einstellungen - Module um die Einstellungen zu vervollständigen.
     ErrorBadMask=Fehler auf der Maske
     ErrorBadMaskFailedToLocatePosOfSequence=Fehler, Maske ohne fortlaufende Nummer
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Fehler, falscher Reset-Wert
     ErrorMaxNumberReachForThisMask=Maximum Größe für diese Maske erreicht
     ErrorCounterMustHaveMoreThan3Digits=Zähler muss mehr als 3 Stellen haben
     ErrorSelectAtLeastOne=Fehler. Wählen Sie mindestens einen Eintrag.
    -ErrorDeleteNotPossibleLineIsConsolidated=Löschen nicht möglich, da der Datensatz mit einer Banktransaktion verbunden ist.
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s wurde bereits einem Partner zugewiesen
     ErrorFailedToSendPassword=Fehler beim Zusenden des Passworts
     ErrorFailedToLoadRSSFile=RSS-Feeds welche Fehler erhalten. Versuchen Sie die Konstante 'MAIN_SIMPLEXMLLOAD_DEBUG' hinzufügen, wenn die Fehlermeldungen nicht genügend Informationen enthält.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Benutzer mit Anmeldung <b>%s</b> konnte nicht gefunden w
     ErrorLoginHasNoEmail=Dieser Benutzer hat keine E-Mail-Adresse. Prozess abgebrochen.
     ErrorBadValueForCode=Unzulässiger Code-Wert. Versuchen Sie es mit einem anderen Wert erneut...
     ErrorBothFieldCantBeNegative=Die Felder %s und %s können nicht gleichzeitig negativ sein
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Mengen in Kundenrechnungen dürfen nicht negativ sein
     ErrorWebServerUserHasNotPermission=Der Benutzerkonto <b>%s</b> wurde verwendet um auf dem Webserver etwas auszuführen, hat aber keine Rechte dafür.
     ErrorNoActivatedBarcode=Kein Barcode aktiviert
    @@ -138,7 +141,7 @@ ErrorBadFormat=Falsches Format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Fehler: Dieses Mitglied ist noch nicht mit einem Partner verbunden. Verknüpfen Sie das Mitglied zuerst mit einem vorhandenen Partner oder legen Sie einen neuen an, bevor Sie ein Abonnement mit Rechnung erstellen.
     ErrorThereIsSomeDeliveries=Fehler: Es sind noch Auslieferungen zu diesen Versand vorhanden. Löschen deshalb nicht möglich.
     ErrorCantDeletePaymentReconciliated=Eine Zahlung, deren Bank-Transaktion schon abgeglichen wurde, kann nicht gelöscht werden
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Eine Zahlung, die zu mindestens einer als bezahlt markierten Rechnung gehört, kann nicht entfernt werden
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Zur Konstanten '%s' kann nicht zugewiesen werden
     ErrorPriceExpression2=Die eingebaute Funktion '%s' kann nicht neu definiert werden
     ErrorPriceExpression3=Nicht definierte Variable '%s' in Funktionsdefinition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5='%s' unerwartet
     ErrorPriceExpression6=Falsche Anzahl Argumente (%s angegeben, %s erwartet)
     ErrorPriceExpression8=Unerwarteter operator '%s'
     ErrorPriceExpression9=Ein unerwarteter Fehler ist aufgetreten
    -ErrorPriceExpression10=Operand fehlt bei Operator '%s' 
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11='%s' erwartet
     ErrorPriceExpression14=Division durch Null
     ErrorPriceExpression17=Nicht definierte Variable '%s
    @@ -171,13 +174,13 @@ ErrorGlobalVariableUpdater4=SOAP Client fehlgeschlagen mit Fehler '%s'
     ErrorGlobalVariableUpdater5=Keine globale Variable ausgewählt
     ErrorFieldMustBeANumeric=Feld <b>%s</b> muss ein numerischer Wert sein
     ErrorMandatoryParametersNotProvided=Erforderliche(r) Parameter wird nicht angeboten
    -ErrorOppStatusRequiredIfAmount=Sie legen einen geschätzten Betrag für diese Verkaufschance/Lead erfasst. Deshalb müssen Sie auch den Status eingeben
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Moduldeskriptor für Klasse %s konnte nicht geladen werden
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Falsche Definition von Menü Array in  Module Descriptor (falscher Wert für den Key  fk_menu)
    -ErrorSavingChanges=Beim Speichern der Änderungen trat ein Fehler auf
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Lager in der Zeile ist für die Lieferung notwendig
     ErrorFileMustHaveFormat=Die Datei muss das Format %s haben.
    -ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    +ErrorSupplierCountryIsNotDefined=Land für diesen Lieferanten ist nicht definiert. Muss zuerst korrigiert werden.
     ErrorsThirdpartyMerge=Fehler beim Zusammenführen der beiden Einträge. Die Anforderung wurde abgebrochen.
     ErrorStockIsNotEnoughToAddProductOnOrder=Nicht genug Bestand von Produkt %s, um es einem neuen Auftrag zuzufügen.
     ErrorStockIsNotEnoughToAddProductOnInvoice=Nicht genug Bestand von Produkt %s, um es einer neuen Rechnung zuzufügen.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=Datei nicht gefunden. Eventuell wurde der Sharek
     ErrorProductBarCodeAlreadyExists=Der Produktbarcode %sexistiert schon bei einer anderen Produktreferenz
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Das verwenden von virtuellen Produkten welche den Lagerbestand von Unterprodukten verändern ist nicht möglich, wenn ein Unterprodukt (Oder Unter-Unterprodukt) eine Seriennummer oder Chargennummer benötigt.
     ErrorDescRequiredForFreeProductLines=Beschreibung ist erforderlich für freie Produkte
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=Es wurde ein Passwort für dieses Mitglied vergeben, aber kein Benutzer erstellt. Das Passwort wird gespeichert, aber kann nicht für die Anmeldung an Dolibarr verwendet werden. Es kann von einem externen Modul/einer Schnittstelle verwendet werden, aber wenn Sie kein Login oder Passwort für dieses Mitglied definiert müssen, können Sie die Option "Login für jedes Mitglied verwalten" in den Mitgliedseinstellungen deaktivieren. Wenn Sie ein Login aber kein Passwort benötige, lassen Sie dieses Feld leer, um diese Meldung zu deaktivieren. Anmerkung: Die E-Mail-Adresse kann auch zur Anmeldung verwendet werden, wenn das Mitglied mit einem Benutzer verbunden wird.
     WarningMandatorySetupNotComplete=Zwingend notwendige Parameter sind noch nicht definiert
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Ein Favorit mit diesem Titel oder dieser Adresse ex
     WarningPassIsEmpty=Warnung: Derzeit ist kein Datenbankpasswort gesetzt. Dies ist eine Sicherheitslücke. Konfigurieren Sie schnellstmöglich ein Passwort für den Datenbankzugriff und passen Sie Ihre conf.php entsprechend an.
     WarningConfFileMustBeReadOnly=Achtung: Die Konfigurationsdatei (<b>htdocs/conf/conf.php</b>) kann von Ihrem Webserver überschrieben werden. Dies ist eine ernstzunehmende Sicherheitslücke. Ändern Sie den Zugriff schnellstmöglich auf reinen Lesezugriff. Wenn Sie Windows und das FAT-Format für Ihre Festplatte nutzen, seien Sie sich bitte bewusst dass dieses Format keine individuellen Dateiberechtigungen unterstützt und so auch nicht völlig sicher ist,
     WarningsOnXLines=Warnhinweise in <b>%s</b> Quellzeilen
    -WarningNoDocumentModelActivated=Für das Erstellen von Dokumenten ist keine Vorlage gewählt. Eine Vorlage wird standardmäßig ausgewählt, bis Sie die Moduleinstellungen angepasst haben.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warnung, nachdem das Setup abgeschlossen ist, müssen Sie die Installations- und Migrations-Tools deaktivieren. Dazu fügen Sie die Datei <b>install.lock</b> in dem Verzeichnis <b>%s</b> hinzu. Das fehlen dieser Datei stellt eine Sicherheitslücke dar.
    -WarningUntilDirRemoved=Diese Warnung bleibt so lange bestehen, bis die Sicherheitslücke geschlossen wurde (nur für Administratoren sichtbar).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Achtung: es wird auch dann geschlossen, wenn der Betrag zwischen Quelle und Ziel unterschiedlich ist. Aktivieren Sie dieses Feature mit Bedacht.
     WarningUsingThisBoxSlowDown=Warnung: Der Einsatz dieser Box verlangsamt sämtliche Seiten mit dieser Box spürbar.
     WarningClickToDialUserSetupNotComplete=Die ClickToDial-Informationen für Ihren Benutzer sind nicht vollständig (siehe Registerkarte ClickToDial auf Ihrer Benutzerkarte).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Zu viele Ergebnisse (mehr als %s Zeilen).
     WarningSomeLinesWithNullHourlyRate=Einige erfasste Zeiten wurden von Benutzern erfasst bei denen der Stundensatz undefiniert war. Ein Stundenansatz von 0 %s pro Stunde wurde verwendet, was eine fehlerhafte Zeitauswertungen zur Folge haben kann.
     WarningYourLoginWasModifiedPleaseLogin=Ihr Login wurde verändert. Aus Sicherheitsgründen müssen Sie sich vor der nächsten Aktion mit Ihrem neuen Login anmelden.
     WarningAnEntryAlreadyExistForTransKey=Eine Übersetzung für diesen Übersetzungsschlüssel existiert schon für diese Sprache
    -WarningNumberOfRecipientIsRestrictedInMassAction=Achtung, die Anzahl unterschiedlicher Empfänger ist auf <b>%s</b> begrenzt, wenn sie Massenaktionen auf dieser Liste verwenden
    -WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
    +WarningDateOfLineMustBeInExpenseReportRange=Das Datum dieser Positionszeile ist ausserhalb der Datumsspanne dieser Spesenabrechnung
    diff --git a/htdocs/langs/de_DE/help.lang b/htdocs/langs/de_DE/help.lang
    index 7d93a8c6bfe..740c521309f 100644
    --- a/htdocs/langs/de_DE/help.lang
    +++ b/htdocs/langs/de_DE/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Fernwartungs-Support
     OtherSupport=Weitere Unterstützung
     ToSeeListOfAvailableRessources=Hier sehen Sie die verfügbaren Ressourcen:
     HelpCenter=Hilfe-Center
    -DolibarrHelpCenter=Hilfe- und Supportcenter
    -ToGoBackToDolibarr=Andernfalls klicken Sie <a href="%s">hier um zum System</a> zurückzukehren
    -TypeOfSupport=Support-Typ
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (kostenlos)
     TypeSupportCommercial=Kommerzieller Support
     TypeOfHelp=Hilfe-Typ
    @@ -15,12 +15,9 @@ NeedHelpCenter=Benötigen Sie Hilfe oder Unterstützung?
     Efficiency=Effizienz
     TypeHelpOnly=Ausschließlich Hilfe
     TypeHelpDev=Hilfe & Entwicklung
    -TypeHelpDevForm=Hilfe&Entwicklung&Ausbildung
    -ToGetHelpGoOnSparkAngels1=Einige Unternehmen bieten eine schnelle (manchmal prompte) und effiziente Online-Unterstützung durch Fernwartung. Solche Helfer finden Sie auf dieser Website <b>%s</b>
    -ToGetHelpGoOnSparkAngels3=Über einen Klick auf diese Schaltfläche erhalten Sie eine Liste aller verfügbaren Trainer für das System
    -ToGetHelpGoOnSparkAngels2=Gelegentlich ist zum Zeitpunkt Ihrer Suche vielleicht kein Partner verfügbar. Denken Sie daran, den Filter auf "Alle verfügbaren" zu setzen. So können Sie mehr Anfragen stellen.
    -BackToHelpCenter=Klicken Sie hier um zur <a href="%s">Hilfeseite</a> zurückzukehren.
    -LinkToGoldMember=Sie können einen, vom System für Ihre Sprache (%s) automatisch ausgewählten, Trainer über einen Klick auf sein Widget kontaktieren (Status und Maximalpreis aktualisieren sich automatisch):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Unterstützte Sprachen
    -SubscribeToFoundation=Helfen auch Sie dem Dolibarr Projekt und unterstützen uns mit einer Abo-Spende.
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Für offizielle Dolibarr Unterstützung in Ihrer Sprache: br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/de_DE/holiday.lang b/htdocs/langs/de_DE/holiday.lang
    index 0714b729c3f..4a458b7f9d3 100644
    --- a/htdocs/langs/de_DE/holiday.lang
    +++ b/htdocs/langs/de_DE/holiday.lang
    @@ -4,7 +4,7 @@ Holidays=Urlaub
     CPTitreMenu=Urlaub
     MenuReportMonth=Monatsaufstellung
     MenuAddCP=Neuer Urlaubsantrag
    -NotActiveModCP=Sie müssen das Urlaubsmodul aktivieren um diese Seite zu sehen.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Erstellen Sie ein Urlaubs-Antrag
     DateDebCP=Urlaubsbeginn
     DateFinCP=Urlaubsende
    @@ -15,18 +15,18 @@ ApprovedCP=genehmigt
     CancelCP=Storniert
     RefuseCP=abgelehnt
     ValidatorCP=Genehmiger
    -ListeCP=Urlaubsliste
    +ListeCP=List of leave
     LeaveId=Urlaubs ID
     ReviewedByCP=Wird geprüft von
     UserForApprovalID=Benutzer für die Genehmigungs-ID
    -UserForApprovalFirstname=Vorname des Genehmigers
    -UserForApprovalLastname=Nachname des Genehmigers
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
     UserForApprovalLogin=Login des Genehmigers
     DescCP=Beschreibung
     SendRequestCP=Erstelle Urlaubs-Antrag
     DelayToRequestCP=Urlaubsanträge müssen mindestens <b>%s Tage</b> im voraus gestellt werden.
    -MenuConfCP=Summe der Abwesenheitsanträge
    -SoldeCPUser=Urlaubssaldo ist <b>%s</b> Tage.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Sie müssen ein Urlaubsende-Datum wählen, dass nach dem Urlaubsbeginn-Datum liegt.
     ErrorSQLCreateCP=Ein SQL Fehler trat auf bei der Erstellung von:
     ErrorIDFicheCP=Fehler aufgetreten: der Urlaubsantrag existiert nicht.
    @@ -39,10 +39,10 @@ TypeOfLeaveId=Art der Urlaubs-ID
     TypeOfLeaveCode=Art des Urlaubscodes
     TypeOfLeaveLabel=Art des Urlaubslabels
     NbUseDaysCP=Anzahl von konsumierten Tagen des Urlaubs
    -NbUseDaysCPShort=Days consumed
    -NbUseDaysCPShortInMonth=Days consumed in month
    -DateStartInMonth=Start date in month
    -DateEndInMonth=End date in month
    +NbUseDaysCPShort=Tage verbraucht
    +NbUseDaysCPShortInMonth=Tage im Monat verbraucht
    +DateStartInMonth=Startdatum im Monat
    +DateEndInMonth=Enddatum im Monat
     EditCP=Bearbeiten
     DeleteCP=Lösche Gruppe
     ActionRefuseCP=Ablehnen
    @@ -98,11 +98,11 @@ HalfDay=Halber Tag
     NotTheAssignedApprover=Sie sind nicht der zugeordnete Genehmiger
     LEAVE_PAID=bezahlter Urlaub
     LEAVE_SICK=Krankheitstag
    -LEAVE_OTHER=Other leave
    +LEAVE_OTHER=Andere Gründe
     LEAVE_PAID_FR=bezahlter Urlaub
     ## Configuration du Module ##
    -LastUpdateCP=Letzte automatische Aktualisierung der Urlaubstage
    -MonthOfLastMonthlyUpdate=Monat der letzten Aktualisierung der Urlaubstage
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Erfolgreich bearbeitet.
     Module27130Name= Verwaltung von Urlaubsanträgen
     Module27130Desc= Verwaltung von Urlaubsanträgen
    @@ -112,7 +112,7 @@ NoticePeriod=Kündigungsfrist
     HolidaysToValidate=Genehmige Urlaubsanträge
     HolidaysToValidateBody=Es folgt ein Urlaubsantrag zur Freigabe
     HolidaysToValidateDelay=Dieser Urlaub wird in weniger als %s Tagen stattfinden.
    -HolidaysToValidateAlertSolde=Der Ersteller dieses Urlaubsantrags besitzt nicht mehr genügend verfügbare Tage.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Genehmigte Urlaubsanträge
     HolidaysValidatedBody=Ihr Antrag auf Urlaub von %s bis %s wurde bewilligt.
     HolidaysRefused=Anfrage abgelehnt
    @@ -121,4 +121,9 @@ HolidaysCanceled=stornierter Urlaubsantrag
     HolidaysCanceledBody=Ihr Urlaubsantrag von %s bis %s wurde storniert.
     FollowedByACounter=1: Diese Art von Antrag muss mit einem Zähler versehen werden. Der Zähler wird manuell oder automatisch erhöht und verringert, wenn der Urlaubsantrag geprüft wurde.<br>0: nicht mit einem Zähler versehen
     NoLeaveWithCounterDefined=Es gibt keine definierten Antragsarten , die mit einem Zähler versehen werden müssen.
    -GoIntoDictionaryHolidayTypes=Öffnen Sie das Menü <strong>Start - Einstellungen - Stammdaten - Arten des Urlaubs </strong> um die verschiedene Urlaubsarten zu konfigurieren.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/de_DE/install.lang b/htdocs/langs/de_DE/install.lang
    index 4c828c1eaef..2c16132a064 100644
    --- a/htdocs/langs/de_DE/install.lang
    +++ b/htdocs/langs/de_DE/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Beachten Sie einfach die folgenden Schritte.
     MiscellaneousChecks=Systemvoraussetzungen prüfen
     ConfFileExists=Die Konfigurationsdatei <b>%s</b> ist vorhanden.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Die Konfigurationsdatei <b>%s</b> ist nicht vorhanden und konnte auch nicht erstellt werden!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Die Konfigurationsdatei <b>%s</b> wurde erfolgreich erstellt.
    -ConfFileIsNotWritable=Die Konfigurationsdatei <b>%s</b> ist nicht beschreibbar. Bitte überprüfen Sie die Dateizugriffsrechte. Für die Erstinstallation muss Ihr Webserver in die Konfigurationsdatei schreiben können, setzen Sie die Dateiberechtigungen entsprechend (z.B. mittels "chmod 666" auf Unix-Betriebssystemen).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Die Konfigurationsdatei <b>%s</b> ist beschreibbar.
     ConfFileMustBeAFileNotADir=Die Konfigurationsdatei <b> %s </b> muss eine Datei und kein Verzeichnis sein.
    -ConfFileReload=Alle Information aus der Konfigurationsdatei laden.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Ihre PHP-Konfiguration unterstützt Sessions.
     PHPSupportPOSTGETOk=Ihre PHP unterstützt GET und POST Variablen.
    -PHPSupportPOSTGETKo=Ihre PHP-Konfiguration scheint GET- und/oder POST-Variablen nicht zu unterstützen. Überprüfen Sie in der php.ini den Parameter <b>variables_order</b>.
    -PHPSupportGD=Ihre PHP-Konfiguration unterstützt grafische Funktionen mittels GD.
    -PHPSupportCurl=PHP unterstützt die Erweiterung Curl
    -PHPSupportUTF8=Ihre PHP-Konfiguration unterstützt UTF8-Funktionen.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=Dieses PHP unterstützt GD grafische Funktionen.
    +PHPSupportCurl=Dieses PHP unterstützt Curl.
    +PHPSupportUTF8=Dieses PHP unterstützt UTF8-Funktionen.
     PHPMemoryOK=Die Sitzungsspeicherbegrenzung ihrer PHP-Konfiguration steht auf <b>%s</b>. Dies sollte ausreichend sein.
    -PHPMemoryTooLow=Die Sitzungsspeicherbegrenzung ihrer PHP-Konfiguration steht auf <b>%s</b> Bytes. Dies ist nicht ausreichend. Ändern Sie in Ihrer <b>php.ini</b> den Parameter <b>memory_limit</b> auf mindestens <b>%s</b> Bytes.
    -Recheck=Voraussetzungen erneut prüfen
    -ErrorPHPDoesNotSupportSessions=Ihre PHP-Installation unterstützt keine Sitzungen. Diese Funktion ist für das Arbeiten mit dolibarr erforderlich. Bitte überprüfen Sie Ihre PHP-Konfiguration.
    -ErrorPHPDoesNotSupportGD=Ihre PHP-Installation unterstützt keine grafischen Funktion mittels GD. Ihnen stehen dadurch keine Diagramme zur Verfügung.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Ihre PHP-Version unterstützt die Erweiterung Curl nicht
    -ErrorPHPDoesNotSupportUTF8=Ihre PHP-Installation unterstützt keine UTF8-Funktionen. Dies könnte die korrekte Funktionsweise von dolibarr behindern und Sie sollten dieses Problem vor der Installation beheben.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Das Verzeichnis %s existiert nicht.
    -ErrorGoBackAndCorrectParameters=Gehen Sie zurück und korrigieren Sie die ungültigen Parameter.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Sie haben einen falschen Wert für den Parameter '%s' eingegeben.
     ErrorFailedToCreateDatabase=Fehler beim Erstellen der Datenbank '%s'.
     ErrorFailedToConnectToDatabase=Es konnte keine Verbindung zur Datenbank ' %s'.
     ErrorDatabaseVersionTooLow=Die Version ihrer Datenbank (%s) ist veraltet. Sie benötigen mindestens Version %s .
     ErrorPHPVersionTooLow=Ihre PHP-Version ist veraltet. Sie benötigen mindestens Version %s .
    -ErrorConnectedButDatabaseNotFound=Die Verbindung zum Server wurde erfolgreich hergestellt, die Datenbank '%s' jedoch nicht gefunden.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Eine Datenbank mit dem Namen '%s' existiert bereits.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Sollte die Datenbank noch nicht existieren, gehen Sie bitte zurück und aktivieren Sie das Kontrollkästchen "Datenbank erstellen".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Sollte die Datenbank bereits existieren, gehen Sie bitte zurück und deaktivieren Sie das Kontrollkästchen "Datenbank erstellen".
    -WarningBrowserTooOld=Sie verwenden eine zu alte Version des Browsers. Installieren Sie die aktuelle Version  Ihres Browser (Empfehlung: Firefox, Chrome oder Opera).
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP-Version
     License=Lizenzverwendung
     ConfigurationFile=Konfigurationsdatei
    @@ -45,22 +45,23 @@ DolibarrDatabase=dolibarr-Datenbank
     DatabaseType=Datenbanktyp
     DriverType=Art des Treibers
     Server=Server
    -ServerAddressDescription=Name oder IP-Adresse des Datenbankservers, in der Regel ist dies "localhost" (Datenbank und Webserver liegen auf demselben Server).
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Datenbankserver-Port. Lassen Sie dieses Feld im Zweifel leer.
     DatabaseServer=Datenbankserver
     DatabaseName=Name der Datenbank
    -DatabasePrefix=Präfix für die Tabellen der Datenbank
    -AdminLogin=Administrator Benutzername für Dolibarr Datenbank
    -PasswordAgain=Passwort wiederholen
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Passwort des dolibarr-Datenbankadministrators
     CreateDatabase=Datenbank erstellen
    -CreateUser=Erzeuge Besitzer oder erteile dem Benutzer Berechtigung für die Datenbank
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Datenbankserver - Superadministrator-Zugriff
    -CheckToCreateDatabase=Aktivieren Sie dieses Kontrollkästchen, falls Sie noch keine Datenbank angelegt haben und diese im Zuge der Installation erstellt werden soll.<br>Hierfür müssen Sie Benutzername und Passwort des Datenbank-Superusers am Ende der Seite angeben.
    -CheckToCreateUser=Aktivieren Sie dieses Kontrollkästchen, falls Sie noch keinen Datenbankbenutzer angelegt haben und dieser im Zuge der Installation erstellt werden soll.<br>Hierfür müssen Sie Benutzername und Passwort des Datenbank-Superusers am Ende der Seite angeben. Wenn dies nicht angekreuzt ist, müssen Datenbankeigentümer und Passwort schon existieren.
    -DatabaseRootLoginDescription=Anmeldedaten des Datenbank-Superusers zur Erstellung neuer Datenbanken und -benutzer. Sollten diese bereits existieren (z.B. weil Ihre Website bei einem Hosting-Provider liegt), ist diese Option nutzlos.
    -KeepEmptyIfNoPassword=Leer lassen wenn der Benutzer kein Passwort hat (nicht empfohlen)
    -SaveConfigurationFile=Konfigurationsdatei wird gespeichert
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Serververbindung
     DatabaseCreation=Erstellung der Datenbank
     CreateDatabaseObjects=Anlegen der Datenbankobjekte
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Erstellen der Fremdschlüssel und Indizes für Tabelle %
     OtherKeysCreation=Erstellen der Fremdschlüssel und Indizes
     FunctionsCreation=Erstellen der Funktionen
     AdminAccountCreation=Erstellen des Administrationskontos
    -PleaseTypePassword=Bitte geben Sie ein Passwort ein. Leere Passwörter sind unzulässig.
    -PleaseTypeALogin=Bitte geben Sie einen Benutzernamen ein.
    -PasswordsMismatch=Die eingegebenen Passwörter unterscheiden sich. Bitte versuchen Sie es erneut!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Ende der Erstkonfiguration
     SystemIsInstalled=Die Installation wurde erfolgreich abgeschlossen.
     SystemIsUpgraded=Der Aktualisierungsvorgang wurde erfolgreich abgeschlossen.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Nun sollten Sie dolibarr an Ihre Bedürfnisse anpassen
     AdminLoginCreatedSuccessfuly=Dolibarr Administrator login '<b>%s</b>' erfolgreich erstellt.
     GoToDolibarr=Zu dolibarr wechseln
     GoToSetupArea=Zu den dolibarr-Einstellungen
    -MigrationNotFinished=Ihre Datenbankversion ist nicht auf dem neuesten Stand, bitte wiederholen Sie den Aktualisierungsvorgang.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Noch einmal zur Aktualisierungsseite
     WithNoSlashAtTheEnd=Ohne Schrägstrich "/" am Ende
    -DirectoryRecommendation=Es empfiehlt sich die Verwendung eines Ordners außerhalb Ihres Webverzeichnisses.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Dieser Benutzername ist bereits vergeben
     DolibarrAdminLogin=Anmeldung für dolibarr-Administrator
    -AdminLoginAlreadyExists=Ein Administratorkonto namens '<b>%s</b>' ist bereits vorhanden.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Fehler beim erstellen des Dolibarr Administrator Kontos.
    -WarningRemoveInstallDir=Aus Sicherheitsgründen sollten Sie nach abgeschlossenem Installations-/Aktualisierungsvorgang das Installationsverzeichnis (<b>install</b>) löschen oder in "install.lock" umbenennen.
    -FunctionNotAvailableInThisPHP=Diese Funktion steht in Ihrer PHP-Version nicht zur Verfügung.
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Migrationsskript auswählen
     DataMigration=Datenbankmigration (Daten)
     DatabaseMigration=Datenbankmigration (Struktur + einige Daten)
     ProcessMigrateScript=Script-Verarbeitung
     ChooseYourSetupMode=Wählen Sie Ihre Installationsart und klicken Sie anschließend auf "Start"...
     FreshInstall=Neue Installation
    -FreshInstallDesc=Verwenden Sie diesen Modus für Erstinstallationen. Sie können damit auch frühere, unvollständige Installationen reparieren. Für eine Aktualisierung Ihres Systems wählen Sie bitte den Installationstyp "Aktualisierung".
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Aktualisierung
     UpgradeDesc=Verwenden Sie diesen Modus zum Ersetzen Ihrer bisherigen Dateien durch eine neuere Version. Dieser Vorgang beinhaltet eine Aktualisierung Ihrer Datenbank und -daten.
     Start=Start
     InstallNotAllowed=Die in der Konfigurationsdatei <b>conf.php</b> gesetzten Berechtigungen verhindern eine Ausführung des Installationsvorganges.
     YouMustCreateWithPermission=Für den Installationsvorgang erstellen Sie bitte die Datei %s und machen Sie diese für Ihren Webserver beschreibbar.
    -CorrectProblemAndReloadPage=Bitte beheben Sie das Problem und klicken Sie anschließend auf F5 um die Seite neu zu laden.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Migration bereits durchgeführt
     DatabaseVersion=Datenbankversion
     ServerVersion=Version des Datenbankservers
     YouMustCreateItAndAllowServerToWrite=Bitte erstellen Sie dieses Verzeichnis und machen Sie dieses für Ihren Webserver beschreibbar.
     DBSortingCollation=Reihenfolge der Zeichensortierung
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Sie möchten die Datenbank <b>%s</b> erstellen. Hierfür benötigt dolibarr eine Verbindung zum Server <b>%s</b> mit den Berechtigungen des Super-Users %s.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Sie möchten den Datenbankbenutzer <b>%s</b> erstellen. Hierfür benötigt dolibarr eine Verbindung zum Server <b>%s</b> mit den Berechtigungen des Super-Users %s.
    -BecauseConnectionFailedParametersMayBeWrong=Der Verbindungsaufbau ist fehlgeschlagen. Bitte überprüfen Sie die Einstellungen des Servers und Super-User-Zugangs.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Verwaiste Zahlung gefunden durch Methode %s
     RemoveItManuallyAndPressF5ToContinue=Bitte manuell entfernen und F5 drücken um fortzufahren.
     FieldRenamed=Feld umbenannt
    -IfLoginDoesNotExistsCheckCreateUser=Sollte der Benutzer noch nicht existieren, müssen Sie das Kontrollkästchen "Benutzer erstellen" aktivieren
    -ErrorConnection=Server <b>%s</b>', Datenbank '<b>%s</b>', Benutzer '<b>%s</b>' oder Datenbankpasswort scheinen falsch zu sein. Eventuell verhindert auch eine veraltete PHP- oder Datenbankversion den korrekten Verbindungsaufbau.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Es empfiehlt sich eine Aktualisierung auf Version <b>%s</b>. Ihre aktuelle Version ist <b>%s</b>.
     InstallChoiceSuggested=<b>Vom Installationsassistenten vorgeschlagene Wahl.</b>
    -MigrateIsDoneStepByStep=Die gewählte Version (%s) hat ein Lücke von mehrerer Versionen. Der Installationsassistent wird sich wieder melden, um die nächste Migration vorzuschlagen. Dies geschieht bis zur endgültigen Fertigstellung.
    -CheckThatDatabasenameIsCorrect=Bitte überprüfen Sie die Schreibweise des Datenbanknamens "<b>%s</b>".
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Sollte dieser Name korrekt und die Datenbank noch nicht vorhanden sein, aktivieren Sie bitte das Kontrollkästchen "Datenbank erstellen".
     OpenBaseDir=PHP openbasedir Einstellungen
    -YouAskToCreateDatabaseSoRootRequired=Sie haben die Option "Datenbank erstellen" ausgewählt. Hierfür müssen Sie Benutzername und Passwort des Datenbank-Super-Users in das untenstehende Formular eintragen.
    -YouAskToCreateDatabaseUserSoRootRequired=Sie haben die Option "Datenbankbenutzer erstellen" ausgewählt. Hierfür müssen Sie Benutzername und Passwort des Datenbank-Super-Users in das untenstehende Formular eintragen.
    -NextStepMightLastALongTime=Der aktuelle Vorgang kann mehrere Minuten dauern. Holen Sie sich eine frische Tasse Kaffee, oder nutzen Sie die Gelegenheit für eine Rauchpause. Warten Sie jedoch bitte in jedem Fall, bis der nächste Bildschirm vollständig angezeigt wird, bevor Sie fortfahren.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Kundenauftragslieferung aktualisieren
     MigrationShippingDelivery=Aktualisiere die Speicherung von Lieferungen (Versandart?)
     MigrationShippingDelivery2=Aktualisiere die Speicherung von Lieferungen 2 (Versandart 2?)
     MigrationFinished=Migration abgeschlossen
    -LastStepDesc=<strong>Letzter Schritt</strong>: Legen Sie Ihr Logo und das Passwort fest, welches Sie für dolibarr verwenden möchten. Verlieren Sie diese Administrator-Passwort nicht, da es der "Generalschlüssel" ist.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Aktivieren von Modul %s
     ShowEditTechnicalParameters=Hier klicken um erweiterte Funktionen zu zeigen/bearbeiten (Expertenmodus)
    -WarningUpgrade=Warnung:\nHaben Sie ein Datenbank Backup erstellt ?\nDurch Bugs in Datenbank Systemen (zum Beispiel MySQL 5.5.40/42/42/43) könnten einige Daten oder Tabellen während des Prozesses verloren gehen.\nDeshlab ist es dringend empfohlen, einen kompletten Dump der Datenbank vor dem Start der Migration anzulegen !\n\nKlicke OK um die Migration zu starten...
    -ErrorDatabaseVersionForbiddenForMigration=Die Version Ihres Datenbankmanager ist %s.\nDies ist einen kritischer Bug welcher zu Datenverlust führen kann, wenn Sie die Struktur der Datenbank wie vom Migrationsprozess erforderlich  ändern. Aus diesem Grund, ist die Migration nicht erlaubt bevor der Datenbankmanager auf eine später Version aktualisiert wurde (Liste betroffener Versionen %s )
    -KeepDefaultValuesWamp=Wenn Sie den DoliWamp-Installationsassistent verwenden, werden hier bereits Werte vorgeschlagen. Bitte nehmen Sie nur Änderungen vor wenn Sie wissen was Sie tun.
    -KeepDefaultValuesDeb=Sie verwenden den Dolibarr-Installationsassistenten in einer Linux Umgebung (Ubuntu, Debian, Fedor...), entsprechend sind hier bereits Werte vorgeschlagenen. Sie müssen lediglich das Passwort des anzulegenden Datenbankbenutzers angeben. Bitte nehmen Sie nur Änderungen vor wenn Sie wissen was Sie tun.
    -KeepDefaultValuesMamp=Sie verwenden den DoliMamp-Installationsassistent, entsprechend werden hier bereits Werte vorgeschlagen. Bitte nehmen Sie nur Änderungen vor wenn Sie wissen was Sie tun.
    -KeepDefaultValuesProxmox=Sie verwenden den Dolibarr Installationsassistenten einer Proxmox "virtual appliance". Die hier vorgeschlagenen Werte sind bereits optimiert. Bitte nehmen Sie nur Änderungen vor wenn Sie wissen was Sie tun.
    -UpgradeExternalModule=Dedizierten Upgradeprozess für externe Module ausführen
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Zumindest eine Option für die URL Argumente ist notwendig. z.B. '...repair.php?standard=confirmed'
     NothingToDelete=Nichts zu säubern / zu löschen
     NothingToDo=Keine Aufgaben zum erledigen
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Vertragsdatenkorrektur
     MigrationContractsNumberToUpdate=%s Vertrag/Verträge zu aktualisieren
     MigrationContractsLineCreation=Erstelle Vertragszeile für Vertrag Nr. %s
     MigrationContractsNothingToUpdate=Keine weiteren Schritte.
    -MigrationContractsFieldDontExist=Feld fk_facture existiert nicht mehr. Keine weiteren Schritte.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Korrektur nicht gesetzter Vertragsdaten
    -MigrationContractsEmptyDatesUpdateSuccess=Leere Vertragsdatum eroflgreich korrigiert
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Kein nicht gesetztes Vertragsdatum zur Korrektur
     MigrationContractsEmptyCreationDatesNothingToUpdate=Kein Vertragserstellungsdatum zur Korrektur
     MigrationContractsInvalidDatesUpdate=Korrektur ungültiger Vertragsdaten
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Aktualisiere Lieferungen
     MigrationStockDetail=Aktualisiere den Lagerbestand von Produkten
     MigrationMenusDetail=Tabellen der dynamischen Menüs aktualisieren
     MigrationDeliveryAddress=Update Lieferadresse in Versand
    -MigrationProjectTaskActors=Datenmigration für llx_projet_task_actors Tabelle
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Datenmigration des Feldes fk_user_resp von llx_projet nach llx_element_contact
     MigrationProjectTaskTime=Aktualisiere aufgewandte Zeit (in Sekunden)
     MigrationActioncommElement=Aktualisiere die Termine/Aufgaben
     MigrationPaymentMode=Migration der Daten für die Zahlungsart
     MigrationCategorieAssociation=Migration von Kategorien
    -MigrationEvents=Ereignisse migrierern, um den Besitzer des Ereignisses der Zuordnungstabelle hinzuzufügen
    -MigrationEventsContact=Migration der Ereignisse um die Kontaktinformationen in die Zuweisungstabelle hinzuzufügen
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Aktualisieren Sie den Wert des Feld "entity" der Tabelle "llx_societe_remise"
     MigrationRemiseExceptEntity=Aktualisieren Sie den Wert des Feld "entity" der Tabelle "llx_societe_remise_except"
     MigrationUserRightsEntity=Aktualisieren Sie den Wert des Feld "entity" der Tabelle "llx_user_rights"
     MigrationUserGroupRightsEntity=Aktualisieren Sie den Wert des Feld "entity" der Tabelle "llx_usergroup_rights"
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Neu Laden von Modul %s
     MigrationResetBlockedLog=Modul BlockedLog für v7 Algorithmus zurücksetzen
    -ShowNotAvailableOptions=Nicht verfügbare Optionen anzeigen
    -HideNotAvailableOptions=Nicht verfügbare Optionen ausblenden
    -ErrorFoundDuringMigration=Während der Migration ist ein Fehler aufgetaucht, dadurch ist der nächste Schritt nicht verfügbar. Sie können <a href="%s">hier cklicken</a> um den Fehler zu ignorieren, aber die Anwendung oder manche Features werden unter Umständen nicht richtig funktionieren, solange der Fehler nicht behoben wurde.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    -ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
    +ClickHereToGoToApp=Hier klicken um zu Ihrer Anwendung zu kommen
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/de_DE/interventions.lang b/htdocs/langs/de_DE/interventions.lang
    index c2fc9d029a9..cec0695f56d 100644
    --- a/htdocs/langs/de_DE/interventions.lang
    +++ b/htdocs/langs/de_DE/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Serviceaufträge
     InterventionCard=Serviceauftrag - Karte
     NewIntervention=Neuer Serviceauftrag
     AddIntervention=Serviceauftrag erstellen
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Liste der Serviceaufträge
     ActionsOnFicheInter=Aktionen zum Serviceauftrag
     LastInterventions=%s neueste Serviceaufträge
    @@ -16,7 +17,7 @@ ModifyIntervention=Ändere Serviceauftrag
     DeleteInterventionLine=Serviceauftragsposition löschen
     CloneIntervention=Serviceauftrag duplizieren
     ConfirmDeleteIntervention=Möchten Sie diesen Serviceauftrag wirklich löschen?
    -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name <b>%s</b>?
    +ConfirmValidateIntervention=Sind Sie sicher, dass Sie diese Intervention unter dem Namen <b>%s</b> validieren wollen?
     ConfirmModifyIntervention=Möchten sie diesen Serviceauftrag wirklich ändern?
     ConfirmDeleteInterventionLine=Möchten Sie diese Vertragsposition wirklich löschen?
     ConfirmCloneIntervention=Möchten Sie diesen Serviceauftrag wirklich duplizieren?
    diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang
    index b04057e1b96..6f562fbcf90 100644
    --- a/htdocs/langs/de_DE/main.lang
    +++ b/htdocs/langs/de_DE/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Fehler beim Senden der E-Mail (Absender=%s, Empfänger=%s)
     ErrorFileNotUploaded=Die Datei konnte nicht hochgeladen werden. Stellen Sie sicher dass die Dateigröße nicht den gesetzten Maximalwert übersteigt, das Zielverzeichnis über genügend freien Speicherplatz verfügt und noch keine Datei mit gleichem Namen existiert.
     ErrorInternalErrorDetected=Interner Fehler entdeckt
     ErrorWrongHostParameter=Ungültige Host-Parameter
    -ErrorYourCountryIsNotDefined=Ihr Land ist nicht definiert. Bitte vervollständigen Sie das Profil unter Start - Einstellungen - Firma/Stiftung
    -ErrorRecordIsUsedByChild=Kann diesen Eintrag nicht löschen. Dieser Eintrag wird von mindestens einem untergeordneten Datensatz verwendet.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Ungültiger Wert
     ErrorWrongValueForParameterX=Ungültiger Wert für den Parameter %s
     ErrorNoRequestInError=Keine Anfrage im Fehler
    -ErrorServiceUnavailableTryLater=Dieser Service steht derzeit nicht zur Verfügung. Bitte versuchen Sie es später erneut.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Dieser Wert ist schon vorhanden (Das Feld erfordert einen einzigartigen Wert)
    -ErrorSomeErrorWereFoundRollbackIsDone=Einige Fehler wurden gefunden. Änderungen werden rückgängig gemacht.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> innerhalb der Konfigurationsdatei <b>conf.php.</b> nicht definiert.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Benutzer <b>%s</b> in der Dolibarr-Datenbank nicht gefunden
     ErrorNoVATRateDefinedForSellerCountry=Fehler, keine MwSt.-Sätze für Land  '%s' definiert.
     ErrorNoSocialContributionForSellerCountry=Fehler, Sozialabgaben/Steuerwerte für Land '%s' nicht definiert.
     ErrorFailedToSaveFile=Fehler, konnte Datei nicht speichern.
    -ErrorCannotAddThisParentWarehouse=Sie versuchen ein HauptLager hinzuzufügen, das bereits ein Unterlager von dem aktuellen Lagerort ist 
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Sie haben keine Berechtigung dazu.
     SetDate=Datum
     SelectDate=Wählen Sie ein Datum
    @@ -78,10 +78,10 @@ FileRenamed=Datei wurde erfolgreich unbenannt
     FileGenerated=Die Datei wurde erfolgreich erstellt
     FileSaved=Die Datei wurde erfolgreich gespeichert
     FileUploaded=Datei wurde erfolgreich hochgeladen
    -FileTransferComplete=Datei(en) wurde(n) erfolgreich hochgeladen
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=Datei(en) erfolgreich gelöscht
     FileWasNotUploaded=Ein Dateianhang wurde gewählt aber noch nicht hochgeladen. Klicken Sie auf "Datei anhängen" um den Vorgang zu starten.
    -NbOfEntries=Anzahl der Einträge
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Onlinehilfe lesen (Internetzugang notwendig)
     GoToHelpPage=Hilfe lesen
     RecordSaved=Eintrag gespeichert
    @@ -92,9 +92,9 @@ DolibarrInHttpAuthenticationSoPasswordUseless=Der Dolibarr Authentifizierungsmod
     Administrator=Administrator
     Undefined=Nicht definiert
     PasswordForgotten=Passwort vergessen?
    -NoAccount=No account?
    +NoAccount=Kein Konto?
     SeeAbove=Siehe oben
    -HomeArea=Startseite
    +HomeArea=Start
     LastConnexion=Letzte Verbindung
     PreviousConnexion=Letzte Anmeldung
     PreviousValue=Vorheriger Wert
    @@ -142,6 +142,7 @@ Closed=Geschlossen
     Closed2=Geschlossen
     NotClosed=nicht geschlossen
     Enabled=Aktiviert
    +Enable=Aktivieren
     Deprecated=Veraltet
     Disable=Deaktivieren
     Disabled=Deaktiviert
    @@ -153,7 +154,7 @@ Update=Aktualisieren
     Close=Schließen
     CloseBox=Box vom Ihrer Startseite entfernen
     Confirm=Bestätigen
    -ConfirmSendCardByMail=Möchten Sie die Inhalte dieser Karteikarte per E-Mail an <b>%s</b> senden?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Löschen
     Remove=Entfernen
     Resiliate=aufheben
    @@ -188,7 +189,7 @@ ToLink=Link
     Select=Wählen Sie
     Choose=Wählen
     Resize=Skalieren
    -ResizeOrCrop=Resize or Crop
    +ResizeOrCrop=Grösse ändern oder zuschneiden
     Recenter=Zentrieren
     Author=Autor
     User=Benutzer
    @@ -327,12 +328,12 @@ Copy=Kopieren
     Paste=Einfügen
     Default=Standard
     DefaultValue=Standardwert
    -DefaultValues=Standardwert
    +DefaultValues=Default values/filters/sorting
     Price=Preis
     PriceCurrency=Preis (Währung)
     UnitPrice=Stückpreis
     UnitPriceHT=Stückpreis (netto)
    -UnitPriceHTCurrency=Unit price (net) (currency)
    +UnitPriceHTCurrency=Stückpreis (Netto) (Währung)
     UnitPriceTTC=Stückpreis (brutto)
     PriceU=VP
     PriceUHT=VP (netto)
    @@ -347,7 +348,7 @@ AmountTTCShort=Bruttobetrag
     AmountHT=Betrag (exkl. USt.)
     AmountTTC=Bruttobetrag
     AmountVAT=USt.-Betrag
    -MulticurrencyAlreadyPaid=Bereits bezahlte, Originalwährung
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Noch zu bezahlen, Originalwährung
     MulticurrencyPaymentAmount=Zahlungsbetrag, Originalwährung
     MulticurrencyAmountHT=Betrag (Netto), Originalwährung
    @@ -360,7 +361,7 @@ AmountLT2ES=Betrag IRPF
     AmountTotal=Gesamtbetrag
     AmountAverage=Durchschnittsbetrag
     PriceQtyMinHT=Mindestmengenpreis (netto)
    -PriceQtyMinHTCurrency=Price quantity min. (net of tax) (currency)
    +PriceQtyMinHTCurrency=Mindestpreis pro Menge (Netto) (Währung)
     Percentage=Prozentsatz
     Total=Gesamt
     SubTotal=Zwischensumme
    @@ -428,7 +429,7 @@ ActionNotApplicable=Nicht anwendbar
     ActionRunningNotStarted=zu beginnen
     ActionRunningShort=in Bearbeitung
     ActionDoneShort=Abgeschlossen
    -ActionUncomplete=unvollständig
    +ActionUncomplete=Unvollständig
     LatestLinkedEvents=Neueste %s verknüpfte Ereignisse
     CompanyFoundation=Firma oder Institution
     Accountant=Buchhalter
    @@ -436,6 +437,7 @@ ContactsForCompany=Ansprechpartner/Adressen dieses Partners
     ContactsAddressesForCompany=Ansprechpartner / Adressen zu diesem Partner
     AddressesForCompany=Anschriften zu diesem Partner
     ActionsOnCompany=Ereignisse zu diesem Partner
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Aktionen zu diesem Mitglied
     ActionsOnProduct=Ereignisse zu diesem Produkt
     NActionsLate=%s verspätet
    @@ -454,7 +456,7 @@ Duration=Dauer
     TotalDuration=Gesamtdauer
     Summary=Zusammenfassung
     DolibarrStateBoard=Datenbank Statistik
    -DolibarrWorkBoard=Aufgabenübersicht
    +DolibarrWorkBoard=Ausstehend
     NoOpenedElementToProcess=Kein Element zum Verarbeiten geöffnet
     Available=Verfügbar
     NotYetAvailable=Noch nicht verfügbar
    @@ -495,7 +497,7 @@ Received=Erhalten
     Paid=Bezahlt
     Topic=Thema
     ByCompanies=Von Partnern
    -ByUsers=By user
    +ByUsers=Durch Benutzer
     Links=Links
     Link=Link
     Rejects=Ablehnungen
    @@ -506,8 +508,8 @@ None=Keine
     NoneF=Keine
     NoneOrSeveral=Keine oder mehrere
     Late=Verspätet
    -LateDesc=Verzögerung, die definiert, ob ein Datensatz spät ist oder nicht von der Einrichtung abhängig ist. Fragen Sie den Administrator, die Verzögerung im Menü Startseite - Einrichtung - Alarme
    -NoItemLate=No late item
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
    +NoItemLate=Keine späten Einträge
     Photo=Bild
     Photos=Bilder
     AddPhoto=Bild hinzufügen
    @@ -530,18 +532,6 @@ September=September
     October=Oktober
     November=November
     December=Dezember
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=Mai
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Okt
    -NovemberMin=Nov
    -DecemberMin=Dez
     Month01=Januar
     Month02=Februar
     Month03=März
    @@ -622,9 +612,9 @@ BuildDoc=Erstelle Doc
     Entity=Entität
     Entities=Entitäten
     CustomerPreview=Kundenvorschau
    -SupplierPreview=Vendor preview
    +SupplierPreview=Lieferantenvorschau
     ShowCustomerPreview=Zeige Kundenvorschau
    -ShowSupplierPreview=Show vendor preview
    +ShowSupplierPreview=Zeige Lieferantenvorschau
     RefCustomer=Ihr Zeichen
     Currency=Währung
     InfoAdmin=Hinweise für Administratoren
    @@ -646,6 +636,8 @@ SendMail=sende E-Mail
     EMail=E-Mail
     NoEMail=Keine E-Mail
     Email=E-Mail
    +AlreadyRead=Alreay read
    +NotRead=Nicht gelesen
     NoMobilePhone=Kein Handy
     Owner=Eigentümer
     FollowingConstantsWillBeSubstituted=Nachfolgende Konstanten werden durch entsprechende Werte ersetzt.
    @@ -677,7 +669,7 @@ NeverReceived=Nie erhalten
     Canceled=Storniert
     YouCanChangeValuesForThisListFromDictionarySetup=Sie können die Listenoptionen in den Wörterbuch-Einstellungen anpassen
     YouCanChangeValuesForThisListFrom=Werte für diese Liste können im Menü %s bearbeitet werden
    -YouCanSetDefaultValueInModuleSetup=Sie können den Standardwert verwendet setzen, wenn ein neuer Datensatz in der Modulkonfiguration erstellt wird
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Farbe
     Documents=Verknüpfte Dokumente
     Documents2=Dokumente
    @@ -703,7 +695,7 @@ DateOfSignature=Datum der Unterzeichnung
     HidePassword=Sichere Passworteingabe (Zeichen nicht angezeigt)
     UnHidePassword=Passwort in Klartext anzeigen
     Root=Stammordner
    -Informations=Informationen
    +Informations=Information
     Page=Seite
     Notes=Hinweise
     AddNewLine=Neue Zeile hinzufügen
    @@ -716,15 +708,15 @@ Merge=Verbinden
     DocumentModelStandardPDF=Standard PDF Vorlage
     PrintContentArea=Zeige Druckansicht für Seiteninhalt
     MenuManager=Menüverwaltung
    -WarningYouAreInMaintenanceMode=Achtung: Die Anwendung befindet sich im Wartungsmodus und kann derzeit nur von Benutzer <b>%s</b> verwendet werden.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Systemfehler
     CoreErrorMessage=Leider ist ein Fehler aufgetreten. Wenden Sie sich an Ihren Systemadministrator, um die Logs zu überprüfen oder deaktivieren Sie die Option $dolibarr_main_prod=1 für weitere Informationen.
     CreditCard=Kredit - Karte
     ValidatePayment=Zahlung freigeben
     CreditOrDebitCard=Kreditkarte
     FieldsWithAreMandatory=Felder mit <b>%s</b> sind Pflichtfelder
    -FieldsWithIsForPublic=Felder mit <b>%s</b> werden auf die öffentlich sichtbare Mitgliederliste angezeigt. Deaktivieren Sie bitte den "Öffentlich"-Kontrollkästchen wenn das nicht möchten.\n
    -AccordingToGeoIPDatabase=(nach GeoIP-Auflösung)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Zeile
     NotSupported=Nicht unterstützt
     RequiredField=Pflichtfeld
    @@ -732,6 +724,8 @@ Result=Ergebnis
     ToTest=Test
     ValidateBefore=Vor Verwendung dieser Funktion müssen Sie die Karte überprüfen
     Visibility=Sichtbarkeit
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privat
     Hidden=Versteckt
     Resources=Ressourcen
    @@ -750,6 +744,7 @@ LinkTo=Link zu
     LinkToProposal=Link zu Angebot
     LinkToOrder=Link zur Bestellung
     LinkToInvoice=Link zur Rechnung
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link zur Lieferentenbestellung
     LinkToSupplierProposal=Link zum Lieferantenangebot
     LinkToSupplierInvoice=Link zur Lieferantenrechnung
    @@ -758,6 +753,7 @@ LinkToIntervention=Link zu Arbeitseinsatz
     CreateDraft=Entwurf erstellen
     SetToDraft=Auf Entwurf zurücksetzen
     ClickToEdit=Klicken zum Bearbeiten
    +ClickToRefresh=Click to refresh
     EditWithEditor=Mit CKEditor bearbeiten
     EditWithTextEditor=Mit Texteditor bearbeiten
     EditHTMLSource=HTML-Code bearbeiten
    @@ -772,7 +768,7 @@ ByDay=Bei Tag
     BySalesRepresentative=Nach Vertriebsmitarbeiter
     LinkedToSpecificUsers=Mit Kontakt verknüpft
     NoResults=Keine Ergebnisse
    -AdminTools=Administratorwerkzeuge
    +AdminTools=Admin-Tools
     SystemTools=Systemwerkzeuge
     ModulesSystemTools=Module Hilfsprogramme
     Test=Testen
    @@ -802,7 +798,7 @@ PrintFile=Drucke Datei %s
     ShowTransaction=Transaktion auf Bankkonto anzeigen
     ShowIntervention=Zeige Serviceauftrag
     ShowContract=Zeige Vertrag
    -GoIntoSetupToChangeLogo=Gehen Sie zu Start - Einstellungen - Firma/Stiftung um das Logo zu ändern oder gehen Sie in Start -> Einstellungen -> Anzeige um es zu verstecken.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=ablehnen
     Denied=abgelehnt
     ListOf=Liste von %s
    @@ -818,12 +814,12 @@ Sincerely=Mit freundlichen Grüßen
     DeleteLine=Zeile löschen
     ConfirmDeleteLine=Möchten Sie diese Zeile wirklich löschen?
     NoPDFAvailableForDocGenAmongChecked=In den selektierten Datensätzen war kein PDF zur Erstellung der Dokumente vorhanden.
    -TooManyRecordForMassAction=Zu viele Datensätze für Massenaktion ausgewählt. Solche Aktionen sind auf maximal %s Zeilen beschränkt.
    +TooManyRecordForMassAction=Zu viele Einträge für Massenaktion selektiert. Die Aktion ist auf eine Liste von %s Einträgen beschränkt.
     NoRecordSelected=Kein Datensatz ausgewählt
     MassFilesArea=Bereich für Dateien aus Massenaktionen
     ShowTempMassFilesArea=Bereich für Dateien aus Massenaktionen zeigen
    -ConfirmMassDeletion=MassenLöschbestätigung
    -ConfirmMassDeletionQuestion=Möchten Sie den/die %s ausgewählten Datensatz wirklich löschen?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Verknüpfte Objekte
     ClassifyBilled=Als verrechnet markieren
     ClassifyUnbilled=als "nicht berechnet" markieren
    @@ -841,7 +837,7 @@ Calendar=Terminkalender
     GroupBy=Gruppiere nach ...
     ViewFlatList=Listenansicht zeigen
     RemoveString=Entfernen Sie die Zeichenfolge '%s'
    -SomeTranslationAreUncomplete=Einige Sprachen sind nur teilweise übersetzt oder enthalten Fehler. Wenn Sie dies feststellen, können Sie die Übersetzungen unter <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a> \nverbessern bzw. ergänzen.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direkter Download Link
     DirectDownloadInternalLink=Direkter Download-Link (muss angemeldet sein und benötigt Berechtigungen)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Modul-Generator
     SetMultiCurrencyCode=Währung festlegen
     BulkActions=Massenaktionen
     ClickToShowHelp=Klicken um die Tooltiphilfe anzuzeigen
    -WebSite=Webseite
    -WebSites=Internetseiten
    -WebSiteAccounts=Website-Konten
    +WebSite=Website
    +WebSites=Webseiten
    +WebSiteAccounts=Website accounts
     ExpenseReport=Spesenabrechnung
     ExpenseReports=Spesenabrechnungen
     HR=Personalabteilung
     HRAndBank=HR und Bank
     AutomaticallyCalculated=Automatisch berechnet
     TitleSetToDraft=Zurück zu Entwurf gehen
    -ConfirmSetToDraft=Wirklich zurück zum Entwurfstatus gehen?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import ID
     Events=Ereignisse
     EMailTemplates=Textvorlagen für E-Mails
    -FileNotShared=Datei nicht öffentlich zugänglich
    +FileNotShared=File not shared to external public
     Project=Projekt
     Projects=Projekte
    +LeadOrProject=Anfrage | Projekt
    +LeadsOrProjects=Anfragen | Projekte
    +Lead=Anfrage
    +Leads=Anfragen
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Berechtigungen
     LineNb=Zeilennummer
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Montag
     Tuesday=Dienstag
    @@ -918,24 +923,24 @@ SearchIntoProductsOrServices=Produkte oder Dienstleistungen
     SearchIntoProjects=Projekte
     SearchIntoTasks=Aufgaben
     SearchIntoCustomerInvoices=Kundenrechnungen
    -SearchIntoSupplierInvoices=Vendor invoices
    +SearchIntoSupplierInvoices=Lieferantenrechnungen
     SearchIntoCustomerOrders=Kundenaufträge
    -SearchIntoSupplierOrders=Purchase orders
    +SearchIntoSupplierOrders=Lieferantenbestellungen
     SearchIntoCustomerProposals=Kunden Angebote
    -SearchIntoSupplierProposals=Vendor proposals
    +SearchIntoSupplierProposals=Lieferantenangebote
     SearchIntoInterventions=Serviceaufträge
     SearchIntoContracts=Verträge
     SearchIntoCustomerShipments=Kunden Lieferungen
     SearchIntoExpenseReports=Spesenabrechnungen
    -SearchIntoLeaves=Urlaube
    +SearchIntoLeaves=Urlaub
     CommentLink=Kommentare
     NbComments=Anzahl der Kommentare
     CommentPage=Kommentare Leerzeichen
     CommentAdded=Kommentar hinzugefügt
     CommentDeleted=Kommentar gelöscht
     Everybody=Jeder
    -PayedBy=Bezahlt durch
    -PayedTo=Bezahlt an
    +PayedBy=Einbezahlt von
    +PayedTo=Bezahlt
     Monthly=Monatlich
     Quarterly=Quartalsweise
     Annual=Jährlich
    @@ -944,7 +949,9 @@ Remote=Remote
     LocalAndRemote=Lokal und Remote
     KeyboardShortcut=Tastaur Kürzel
     AssignedTo=Zugewiesen an
    -Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +Deletedraft=Entwurf löschen
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=Datei via Link geteilt
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=Sie befinden sich derzeit im %s "Sandbox" -Modus
    +Inventory=Inventur
    diff --git a/htdocs/langs/de_DE/other.lang b/htdocs/langs/de_DE/other.lang
    index 514d7ed7c60..d4cfa4feab6 100644
    --- a/htdocs/langs/de_DE/other.lang
    +++ b/htdocs/langs/de_DE/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Sicherheitsschlüssel
     NumberingShort=Nr.
     Tools=Hilfsprogramme
     TMenuTools=Hilfsprogramme
    -ToolsDesc=Alle sonstigen Hilfsprogramme, die nicht in anderen Menü-Einträgen enthalten sind, werden hier zusammengefasst. <br><br>Alle Hilfsprogramme können über das linke Menü erreicht werden.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Geburtstag
     BirthdayDate=Geburtstag
     DateToBirth=Geburtsdatum
    @@ -22,8 +22,8 @@ JumpToLogin=Abgemeldet. Zur Anmeldeseite...
     MessageForm=Mitteilung im Onlinezahlungsformular
     MessageOK=Nachrichtenseite für bestätigte Zahlung
     MessageKO=Nachrichtenseite für stornierte Zahlung
    -ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +ContentOfDirectoryIsNotEmpty=Dieses Verzeichnis ist nicht leer.
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Jahr der Rechnung
     PreviousYearOfInvoice=Vorangehendes Jahr des Rechnungsdatums
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Folgendes Jahr des Rechnungsdatums
     DateNextInvoiceBeforeGen=Datum der nächsten Rechnung (Vor Generierung)
     DateNextInvoiceAfterGen=Datum der nächsten Rechnung (Nach Generierung)
     
    -Notify_FICHINTER_ADD_CONTACT=Kontakt zum Serviceauftrag hinzufügen
    -Notify_FICHINTER_VALIDATE=Serviceauftrag freigegeben
    -Notify_FICHINTER_SENTBYMAIL=Serviceauftrag per E-Mail versendet
     Notify_ORDER_VALIDATE=Kundenauftrag freigegeben
     Notify_ORDER_SENTBYMAIL=Kundenauftrag mit E-Mail versendet
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Lieferantenbestellung per E-Mail zugestellt
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=freigegebene Lieferantenbestellung
     Notify_ORDER_SUPPLIER_APPROVE=Lieferantenbestellung freigegeben
     Notify_ORDER_SUPPLIER_REFUSE=Lieferantenbestellung abgelehnt
     Notify_PROPAL_VALIDATE=Angebot freigegeben
    -Notify_PROPAL_CLOSE_SIGNED=geschlossene Verkäufe  Signiert Angebote
    -Notify_PROPAL_CLOSE_REFUSED=Geschlossene Verkäufe Angebot abgelehnt
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Angebot mit E-Mail gesendet
     Notify_WITHDRAW_TRANSMIT=Transaktion zurückziehen
     Notify_WITHDRAW_CREDIT=Kreditkarten Rücknahme
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Durch Dritte erstellt
     Notify_COMPANY_SENTBYMAIL=Von Partnern gesendete Mails
     Notify_BILL_VALIDATE=Rechnung freigegeben
     Notify_BILL_UNVALIDATE=Rechnung nicht freigegeben
    -Notify_BILL_PAYED=Kundenrechnung bezahlt
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Kundenrechnung storniert
     Notify_BILL_SENTBYMAIL=Kundenrechnung per E-Mail zugestellt
     Notify_BILL_SUPPLIER_VALIDATE=Lieferantenrechnung bestätigen
    -Notify_BILL_SUPPLIER_PAYED=Lieferantenrechnung bezahlt
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Lieferantenrechnung mit E-Mail versendet
     Notify_BILL_SUPPLIER_CANCELED=Lieferantenrechnung storniert
     Notify_CONTRACT_VALIDATE=Vertrag gültig
     Notify_FICHEINTER_VALIDATE=Serviceauftrag freigegeben
    +Notify_FICHINTER_ADD_CONTACT=Kontakt zum Serviceauftrag hinzufügen
    +Notify_FICHINTER_SENTBYMAIL=Serviceauftrag per E-Mail versendet
     Notify_SHIPPING_VALIDATE=Versand freigegeben
     Notify_SHIPPING_SENTBYMAIL=Versanddaten mit E-Mail versendet
     Notify_MEMBER_VALIDATE=Mitglied bestätigt
    @@ -71,27 +70,33 @@ Notify_PROJECT_CREATE=Projekt-Erstellung
     Notify_TASK_CREATE=Aufgabe erstellt
     Notify_TASK_MODIFY=Aufgabe geändert
     Notify_TASK_DELETE=Aufgabe gelöscht
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Finden Sie im Modul-Setup %s
     NbOfAttachedFiles=Anzahl der angehängten Dateien/Dokumente
     TotalSizeOfAttachedFiles=Gesamtgröße der angehängten Dateien/Dokumente
     MaxSize=Maximalgröße
     AttachANewFile=Neue Datei/Dokument anhängen
     LinkedObject=Verknüpftes Objekt
    -NbOfActiveNotifications= Anzahl Benachrichtigungen ( Anz.  E-Mail Empfänger)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nDas ist ein Test-Mail gesendet an __EMAIL__.\nDie beiden Zeilen sind durch einem Zeilenumbruch getrennt.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=Dies ist ein <b>Test</b> Mail (das Wort Test muss in Fettschrift erscheinen). <br> Die beiden Zeilen sollten durch einen Zeilenumbruch getrennt sein.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nHier die gewünschte Preisauskunft __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nBitte entnehmen Sie dem Anhang die Bestellung __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nBitte entnehmen Sie dem Anhang unsere Bestellung __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nAnbei erhalten Sie die Rechnung __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nAls Anlage erhalten Sie unsere Lieferung __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nAnbei finden Sie den Serviceauftrag __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
    +PredefinedMailContentLink=Sie können den folgenden Link anklicken um die Zahlung auszuführen, falls sie noch nicht getätigt wurde.\n\n%s\n\n
     DemoDesc=Dolibarr ist eine Management-Software die mehrere Business-Module anbietet. Eine Demo, die alle Module beinhaltet ist nicht sinnvoll , weil der Fall nie existiert (Hunderte von verfügbaren Module). Es stehen auch einige Demo-Profile Typen zur Verfügung.
     ChooseYourDemoProfil=Bitte wählen Sie das Demo-Profil das Ihrem Anwendgsfall am ehesten entspricht
     ChooseYourDemoProfilMore=...oder bauen Sie Ihr eigenes Profil <br> (manuelle Auswahl der Module)
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Installiere oder aktiviere die GD Bibliothek in der PHP Inst
     ProfIdShortDesc=<b>Prof ID %s</b> dient zur Speicherung landesabhängiger Partnerdaten. <br> Für das Land <b>%s</b> ist dies beispielsweise Code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM-Demo
     StatsByNumberOfUnits=Statistik zu den Totalstückzahlen Produkte/Dienstleistungen
    -StatsByNumberOfEntities=Statistik der Zahl der referenzierten Entitäten (Anzahl Rechnungen, Bestellungen, ...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Anzahl Angebote
     NumberOfCustomerOrders=Anzahl Kundenbestellungen
     NumberOfCustomerInvoices=Anzahl Kundenrechnungen
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Anzahl von Einheiten in Kundenrechnungen
     NumberOfUnitsSupplierProposals=Anzahl von Einheiten in Lieferantenangeboten
     NumberOfUnitsSupplierOrders=Anzahl von Einheiten in Lieferantenbestellungen
     NumberOfUnitsSupplierInvoices=Anzahl von Einheiten in Lieferantenrechnungen
    -EMailTextInterventionAddedContact=Ein neuer Serviceauftrag %s wurde Ihnen zugewiesen.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Serviceauftrag %s wurde freigegeben
     EMailTextInvoiceValidated=Rechnung %s wurde freigegeben
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Angebot %s wurde freigegeben
     EMailTextProposalClosedSigned=Das Angebot %s wurde unterschrieben.
     EMailTextOrderValidated=Bestellung %s wurde freigegeben
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Bestellung %s wurde von %s genehmigt
     EMailTextOrderRefused=Bestellung %s wurde abgelehnt
     EMailTextOrderRefusedBy=Bestellung %s wurde von %s abgelehnt
     EMailTextExpeditionValidated=Der Versand %s wurde freigegeben.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Import Datensatz
     DolibarrNotification=Automatische Benachrichtigung
     ResizeDesc=Bitte geben Sie eine neue Breite <b>oder</b> Höhe ein. Das Verhältnis wird während des Zuschneidens erhalten...
    @@ -204,7 +214,7 @@ NewLength=Neue Breite
     NewHeight=Neue Höhe
     NewSizeAfterCropping=Neue Größe nach dem Zuschneiden
     DefineNewAreaToPick=Definieren Sie einen neuen Bereich innerhalb des Bildes (Klicken Sie mit der linken Maustaste auf das Bild und halten Sie bis zur gegenüberliegenden Ecke)
    -CurrentInformationOnImage=Dieses Werzeug hilft Ihnen beim Skalieren und Zuschneiden von Bildern. Diese Informationen existieren derzeit zur Bilddatei
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Bildbearbeitung
     YouReceiveMailBecauseOfNotification=Sie erhalten diese Nachricht, weil Ihre E-Mail-Adresse zur Liste der zu benachrichtigenden Kontakte für %s von %s hinzugefügt wurde.
     YouReceiveMailBecauseOfNotification2=Sie erhalten dieses Mail aufgrund folgender Benachrichtigung:
    @@ -217,9 +227,9 @@ StartUpload=Hochladen starten
     CancelUpload=Hochladen abbrechen
     FileIsTooBig=Dateien sind zu groß
     PleaseBePatient=Bitte haben Sie ein wenig Geduld ...
    -NewPassword=New password
    +NewPassword=Neue Kennwort
     ResetPassword=Kennwort zurücksetzen
    -RequestToResetPasswordReceived=A request to change your password has been received.
    +RequestToResetPasswordReceived=Eine Anfrage zur Änderung Ihres Passwortes erhalten.
     NewKeyIs=Dies sind Ihre neuen Anmeldedaten
     NewKeyWillBe=Ihr neuer Anmeldeschlüssel für die Software ist
     ClickHereToGoTo=Hier klicken für %s
    @@ -233,8 +243,12 @@ PermissionsAdd=Berechtigungen hinzugefügt
     PermissionsDelete=Berechtigungen entfernt
     YourPasswordMustHaveAtLeastXChars=Ihr Passwort muss mindestens <strong> %s </strong> Zeichen enthalten
     YourPasswordHasBeenReset=Ihr Passwort wurde zurückgesetzt
    -ApplicantIpAddress=IP address of applicant
    -SMSSentTo=SMS sent to %s
    +ApplicantIpAddress=IP Adresse des Antragstellers
    +SMSSentTo=SMS an %s gesendet
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exportübersicht
    @@ -248,5 +262,7 @@ WebsiteSetup=Einrichtung der Modul-Website
     WEBSITE_PAGEURL=URL der Seite
     WEBSITE_TITLE=TItel
     WEBSITE_DESCRIPTION=Beschreibung
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Schlüsselwörter
    -LinesToImport=Lines to import
    +LinesToImport=Positionen zum importieren
    diff --git a/htdocs/langs/de_DE/paybox.lang b/htdocs/langs/de_DE/paybox.lang
    index 7b02bb6b49c..0a4fa7bd690 100644
    --- a/htdocs/langs/de_DE/paybox.lang
    +++ b/htdocs/langs/de_DE/paybox.lang
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL um Ihren Kunden eine %s Online-Bezahls
     ToOfferALinkForOnlinePaymentOnContractLine=URL um Ihren Kunden eine %s Online-Bezahlseite für Vertragspositionen anzubieten
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL um Ihren Kunden eine %s Online-Bezahlseite für frei wählbare Beträge anzubieten
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL um Ihren Mitgliedern eine %s Online-Bezahlseite für Mitgliedsbeiträge
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Sie können auch den URL-Parameter <b>&tag=<i>value</i></b> an eine beliebige dieser URLs anhängen (erforderlich nur bei der freien Zahlung) um einen eigenen Zahlungskommentar hinzuzufügen.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Richten Sie PayBox mit der URL <b>%s</b> ein, um nach Freigabe durch PayBox automatisch eine Zahlung anzulegen.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Hiermit Bestätigen wir, dass die Zahlung ausgeführt wurde. Vielen Dank.
    -YourPaymentHasNotBeenRecorded=Ihre Zahlung wurde NICHT aufgezeichnet und die Transaktion wurde storniert. Vielen Dank.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Konto Parameter
     UsageParameter=Einsatzparameter
     InformationToFindParameters=Hilfe für das Finden der %s Kontoinformationen
    diff --git a/htdocs/langs/de_DE/projects.lang b/htdocs/langs/de_DE/projects.lang
    index 6aaef1d7850..9143f765c89 100644
    --- a/htdocs/langs/de_DE/projects.lang
    +++ b/htdocs/langs/de_DE/projects.lang
    @@ -10,14 +10,14 @@ PrivateProject=Projektkontakte
     ProjectsImContactFor=Projekte bei denen ich ein direkter Kontakt bin
     AllAllowedProjects=Alle Projekte die ich sehen kann (Eigene + Öffentliche)
     AllProjects=Alle Projekte
    -MyProjectsDesc=This view is limited to projects you are a contact for
    +MyProjectsDesc=Diese Ansicht ist beschränkt auf Projekte bei denen Sie als Ansprechpartner eingetragen sind.
     ProjectsPublicDesc=Diese Ansicht zeigt alle Projekte, für die Sie zum Lesen berechtigt sind.
     TasksOnProjectsPublicDesc=Diese Ansicht zeigt alle Aufgaben der Projekte, für die Sie zum Lesen berechtigt sind.
     ProjectsPublicTaskDesc=Diese Ansicht ist beschränkt auf Projekt und Aufgaben bei welchen Sie über Leserechte verfügen.
     ProjectsDesc=Es werden alle Projekte angezeigt (Ihre Berechtigungen berechtigt Sie alle Projekte zu sehen).
     TasksOnProjectsDesc=Es werden alle Aufgaben angezeigt (Ihre Berechtigungen berechtigt Sie alles zu sehen).
    -MyTasksDesc=This view is limited to projects or tasks you are a contact for
    -OnlyOpenedProject=Nur offene Projekte sind sichtbar. (Projekte im Status Entwurf oder Geschlossen sind nicht sichtbar)
    +MyTasksDesc=Diese Ansicht ist beschränkt asuf Projekte oder Aufgaben bei denen Sie als Ansprechspartner eingetragen sind
    +OnlyOpenedProject=Nur offene Projekte sind sichtbar. (Projekte mit dem Status Entwurf oder Geschlossen sind nicht sichtbar)
     ClosedProjectsAreHidden=Abgeschlossene Projekte werden nicht angezeigt.
     TasksPublicDesc=Diese Ansicht ist beschränkt auf Projekt und Aufgaben bei welchen Sie über Leserechte verfügen.
     TasksDesc=Diese Ansicht zeigt alle Projekte und Aufgaben (Ihre Benutzerberechtigungen berechtigt Sie alles zu sehen).
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Sind Sie sicher, dass diese Vertragsposition löschen woll
     ConfirmDeleteATask=Sind Sie sicher, dass diese Aufgabe löschen wollen?
     OpenedProjects=Offene Projekte
     OpenedTasks=Offene Aufgaben
    -OpportunitiesStatusForOpenedProjects=Betrag Verkaufschancen offene Projekt nach Status
    -OpportunitiesStatusForProjects=Betrag Verkaufschancen pro Projekt nach Status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Zeige Projekt
     ShowTask=Zeige Aufgabe
     SetProject=Projekt setzen
     NoProject=Kein Projekt definiert oder keine Rechte
    -NbOfProjects=Anzahl der Projekte
    -NbOfTasks=Anzahl Aufgaben
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Zeitaufwand
     TimeSpentByYou=Ihr Zeitaufwand
     TimeSpentByUser=Zeitaufwand von Benutzer ausgegeben
    @@ -55,7 +55,7 @@ TasksOnOpenedProject=Aufgaben in offenen Projekten
     WorkloadNotDefined=Arbeitsaufwand nicht definiert
     NewTimeSpent=Zeitaufwände
     MyTimeSpent=Mein Zeitaufwand
    -BillTime=Bill the time spent
    +BillTime=Zeitaufwand verrechnen
     Tasks=Aufgaben
     Task=Aufgabe
     TaskDateStart=Startdatum der Aufgabe
    @@ -77,23 +77,24 @@ Time=Zeitaufwand
     ListOfTasks=Aufgabenliste
     GoToListOfTimeConsumed=Liste der verwendeten Zeit aufrufen
     GoToListOfTasks=Liste der Aufgaben aufrufen
    -GoToGanttView=Go to Gantt view
    +GoToGanttView=Zur Gantansicht
     GanttView=Gantt-Diagramm
    -ListProposalsAssociatedProject=Liste Angebote, die mit diesem Projekt verknüpft sind
    -ListOrdersAssociatedProject=Liste der mit diesem Projekt verbundenen Kunden-Bestellungen
    -ListInvoicesAssociatedProject=Liste der mit diesem Projekt verbundenen Kunden-Rechnungen
    -ListPredefinedInvoicesAssociatedProject=Liste von Rechnungsvorlagen, die mit diesem Projekt verknüpft sind.
    -ListSupplierOrdersAssociatedProject=Liste der mit diesem Projekt verbundenen Lieferantenbestellungen
    -ListSupplierInvoicesAssociatedProject=Liste der mit diesem Projekt verbundenen Lieferantenrechnungen
    -ListContractAssociatedProject=Liste Verträge, die mit diesem Projekt verknüpft sind
    -ListShippingAssociatedProject=Liste der Lieferungen zu diesem Projekt
    -ListFichinterAssociatedProject=Liste der Serviceaufträge, die mit diesem Projekt verknüpft sind
    -ListExpenseReportsAssociatedProject=Liste Spesenabrechnungen, die mit diesem Projekt verknüpft sind
    -ListDonationsAssociatedProject=Liste Spenden, die mit diesem Projekt verknüpft sind
    -ListVariousPaymentsAssociatedProject=Liste der sonstigen mit dem Projekt verbundenen Zahlungen
    -ListActionsAssociatedProject=Liste Ereignisse, die mit diesem Projekt verknüpft sind
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=Liste mit Zeitaufwand der Projektaufgaben
    -ListTaskTimeForTask=List of time consumed on task
    +ListTaskTimeForTask=Zeitaufwand auf Aufgaben
     ActivityOnProjectToday=Projektaktivitäten von heute
     ActivityOnProjectYesterday=Projektaktivitäten von gestern
     ActivityOnProjectThisWeek=Projektaktivitäten dieser Woche
    @@ -101,7 +102,7 @@ ActivityOnProjectThisMonth=Projektaktivitäten dieses Monats
     ActivityOnProjectThisYear=Projektaktivitäten dieses Jahres
     ChildOfProjectTask=Subelemente des Projekts/Aufgabe
     ChildOfTask=Kindelement der Aufgabe
    -TaskHasChild=Task has child
    +TaskHasChild=Aufgabe hat eine Unteraufgabe
     NotOwnerOfProject=Nicht Eigner des privaten Projekts
     AffectedTo=Zugewiesen an
     CantRemoveProject=Löschen des Projekts auf Grund verbundener Elemente (Rechnungen, Bestellungen oder andere) nicht möglich. Näheres finden Sie unter dem Reiter Bezugnahmen.
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Mit Partner verknüpft
     TaskIsNotAssignedToUser=Aufgabe ist keinem Benutzer zugeteilt. Verwenden Sie den Knopf '<strong>%s</strong>' um die Aufgabe jetzt zuzuweisen.
     ErrorTimeSpentIsEmpty=Zeitaufwand ist leer
     ThisWillAlsoRemoveTasks=Diese Aktion löscht ebenfalls alle Aufgaben zum Projekt (<b>%s</b> aktuelle Aufgaben) und alle Zeitaufwände.
    -IfNeedToUseOhterObjectKeepEmpty=Wenn einige Zuordnungen (Rechnung, Bestellung, ...), einem Dritten gehören, müssen Sie erst alle mit dem Projekt verbinden, damit das Projekt auch Dritten zugänglich ist .
    +IfNeedToUseOtherObjectKeepEmpty=Wenn einige Zuordnungen (Rechnung, Bestellung, ...), einem Dritten gehören, müssen Sie erst alle mit dem Projekt verbinden, damit das Projekt auch Dritten zugänglich ist .
     CloneProject=Dupliziere Projekt
     CloneTasks=Dupliziere Aufgaben
     CloneContacts=Dupliziere Kontakte
    @@ -141,16 +142,16 @@ ProjectReportDate=Passe Aufgaben-Datum dem neuen Projekt-Startdatum an
     ErrorShiftTaskDate=Es ist nicht möglich, das Aufgabendatum dem neuen Projektdatum anzupassen
     ProjectsAndTasksLines=Projekte und Aufgaben
     ProjectCreatedInDolibarr=Projekt %s erstellt
    -ProjectValidatedInDolibarr=Project %s validated
    +ProjectValidatedInDolibarr=Projekt %s validiert
     ProjectModifiedInDolibarr=Projekt %s geändert
     TaskCreatedInDolibarr=Aufgabe %s erstellt
     TaskModifiedInDolibarr=Aufgabe %s geändert
     TaskDeletedInDolibarr=Aufgabe %s gelöscht
    -OpportunityStatus=Verkaufschance Status
    +OpportunityStatus=Status / Chancen Lead
     OpportunityStatusShort=Chance Status
    -OpportunityProbability=Wahrscheinlichkeit Verkaufschance
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Wahrscheinlichkeit Verkaufschance
    -OpportunityAmount=Verkaufschance Betrag
    +OpportunityAmount=Wert/Betrag für Lead
     OpportunityAmountShort=Chance Betrag
     OpportunityAmountAverageShort=Durchschnittsbetrag Chance
     OpportunityAmountWeigthedShort=Gewichtete Erfolgschance
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Mitwirkender
     SelectElement=Element wählen
     AddElement=Mit Element verknüpfen
     # Documents models
    -DocumentModelBeluga=Bericht Vorlage für verknüpfte Objekte-Übersicht
    -DocumentModelBaleine=Projektberichtsvorlage für Aufgaben
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Geplante Auslastung
     PlannedWorkloadShort=Arbeitsaufwand
     ProjectReferers=Verknüpfte Einträge
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projekte mit diesem Anwender als Kontakt
     TasksWithThisUserAsContact=Aufgaben zugeordnet zu diesem Anwender
     ResourceNotAssignedToProject=Zugewiesen zu Projekt
     ResourceNotAssignedToTheTask=nicht der Aufgabe zugewiesen
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Zeitaufwand durch
     TasksAssignedTo=Aufgabe zugewiesen an
     AssignTaskToMe=Aufgabe mir selbst zuweisen
    @@ -189,25 +192,26 @@ AssignTaskToUser=Aufgabe an %s zuweisen
     SelectTaskToAssign=Zuzuweisende Aufgabe auswählen...
     AssignTask=Zuweisen
     ProjectOverview=Projekt-Übersicht
    -ManageTasks=Verwende Projekte um Aufgaben und Zeitaufwand zu verwalten
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Verwende Projekte um Leads und Chancen zu verwalten
    -ProjectNbProjectByMonth=Anzahl der Projekte pro Monat
    -ProjectNbTaskByMonth=Anzahl erstellter Projekte pro Monat
    -ProjectOppAmountOfProjectsByMonth=Betrag der Verkaufschancen pro Monat
    -ProjectWeightedOppAmountOfProjectsByMonth=gewichteter Betrag der Verkaufschancen pro Monat
    -ProjectOpenedProjectByOppStatus=Offene Projekte/Verkaufschancen nach Status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistik über Projekte und Leads
     TasksStatistics=Statistik über Projekte und Lead Aufgaben
     TaskAssignedToEnterTime=Aufgabe zugewiesen. Eingabe der Zeit zu diese Aufgabe sollte möglich sein.
     IdTaskTime=ID Zeit Aufgabe
     YouCanCompleteRef=Wenn Sie die Referenz mit Infromationen vervollständigen möchten (um diese als Suchfilter zu verwenden), wird empfohlen ein Trennzeichen einzusetzen, damit den Nummernkreis der zukünftigen Projekten weiterhin korrekt funktioniert. Zum Beispiel  %s-ABC. Sie können aber auch in den Label Suchbegriffe hinzufügen. Ein bewährtes Verfahren besteht darin, ein dedizierter Feld einzufügen, bekannt unter dem Begriff ergänzenden Attributen.
     OpenedProjectsByThirdparties=Offene Projekte nach Partner
    -OnlyOpportunitiesShort=nur Verkaufschancen
    -OpenedOpportunitiesShort=Offene Verkaufschancen
    -NotAnOpportunityShort=keine Verkaufschance
    -OpportunityTotalAmount=Verkaufschancen Gesamtbetrag
    -OpportunityPonderatedAmount=Verkaufschancen geschätzter Betrag
    -OpportunityPonderatedAmountDesc=Betrag der Verkaufschance gewichtet nach Wahrscheinlichkeit
    +OnlyOpportunitiesShort=nur Leads/Verkaufschancen
    +OpenedOpportunitiesShort=offene Verkaufschancen
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Gesamtbetrag Leads/Verkaufschancen
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Geschäftsanbahnung
     OppStatusQUAL=Qualifikation
     OppStatusPROPO=Angebot
    @@ -220,11 +224,13 @@ AllowToLinkFromOtherCompany=Projekt von anderem Unternehmen verknüpfen lassen <
     LatestProjects=%s neueste Projekte
     LatestModifiedProjects=Neueste %s modifizierte Projekte
     OtherFilteredTasks=Andere gefilterte Aufgaben
    -NoAssignedTasks=No assigned tasks (assign project/tasks the current user from the top select box to enter time on it)
    +NoAssignedTasks=Keine zugewiesenen Aufgaben (ordnen Sie sich das Projekt / Aufgaben aus dem oberen Auswahlfeld zu, um Zeitaufwand einzugeben)
     # Comments trans
     AllowCommentOnTask=Alle Benutzerkommentare zur Aufgabe
     AllowCommentOnProject=Benutzer dürfen Projekte kommentieren
    -DontHavePermissionForCloseProject=You do not have permissions to close the project %s
    -DontHaveTheValidateStatus=The project %s must be open to be closed
    -RecordsClosed=%s project(s) closed
    -SendProjectRef=Information project %s
    +DontHavePermissionForCloseProject=Sie haben nicht die Berechtigung das Projekt %s zu schliessen
    +DontHaveTheValidateStatus=Projekt %smuss offen sein, damit es geschlossen werden kann
    +RecordsClosed=%s Projekt(e) geschlossen
    +SendProjectRef=Informationen zu Projekt %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/de_DE/propal.lang b/htdocs/langs/de_DE/propal.lang
    index 8caf8ba14e7..7ec7aa277d9 100644
    --- a/htdocs/langs/de_DE/propal.lang
    +++ b/htdocs/langs/de_DE/propal.lang
    @@ -20,20 +20,20 @@ LastModifiedProposals=Letzte %s bearbeitete Angebote
     AllPropals=Alle Angebote
     SearchAProposal=Angebot suchen
     NoProposal=Kein Entwurf
    -ProposalsStatistics=Angebote Statistiken
    +ProposalsStatistics=Angebote - Statistiken
     NumberOfProposalsByMonth=Anzahl pro Monat
     AmountOfProposalsByMonthHT=Betrag pro Monat (nach Steuern)
     NbOfProposals=Anzahl der Angebote
     ShowPropal=Zeige Angebot
     PropalsDraft=Entwürfe
    -PropalsOpened=Geöffnet
    +PropalsOpened=geöffnet
     PropalStatusDraft=Entwurf (freizugeben)
     PropalStatusValidated=Freigegeben (Angebot wieder geöffnet)
     PropalStatusSigned=Unterzeichnet (ist zu verrechnen)
     PropalStatusNotSigned=Nicht unterzeichnet (geschlossen)
     PropalStatusBilled=Verrechnet
     PropalStatusDraftShort=Entwurf
    -PropalStatusValidatedShort=Bestätigt
    +PropalStatusValidatedShort=Bestätigt (offen)
     PropalStatusClosedShort=Geschlossen
     PropalStatusSignedShort=Unterzeichnet
     PropalStatusNotSignedShort=Nicht unterzeichnet
    @@ -55,7 +55,7 @@ NoDraftProposals=Keine Angebotsentwürfe
     CopyPropalFrom=Erstelle neues Angebot durch Kopieren eines vorliegenden Angebots
     CreateEmptyPropal=Erstelle leeres Angebot oder aus der Liste der Produkte/Leistungen
     DefaultProposalDurationValidity=Standardmäßige Gültigkeitsdauer (Tage)
    -UseCustomerContactAsPropalRecipientIfExist=Falls vorhanden die Adresse des Partnerkontakts statt der Partneradresse verwenden
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Angebot duplizieren
     ConfirmClonePropal=Sind Sie sicher, dass Sie dieses Angebot <b>%s</b> duplizieren möchten?
     ConfirmReOpenProp=Sind Sie sicher, dass Sie dieses Angebot <b>%s</b> wieder öffnen möchten ?
    @@ -74,10 +74,11 @@ AvailabilityTypeAV_1M=1 Monat
     ##### Types de contacts #####
     TypeContact_propal_internal_SALESREPFOLL=Vertreter für Angebot
     TypeContact_propal_external_BILLING=Kontakt für Kundenrechnungen
    -TypeContact_propal_external_CUSTOMER=Partnerkontakt für Angebot
    -TypeContact_propal_external_SHIPPING=Customer contact for delivery
    +TypeContact_propal_external_CUSTOMER=Kundenkontakt für Angebot
    +TypeContact_propal_external_SHIPPING=Kundenkontakt für Lieferung
     # Document models
     DocModelAzurDescription=Eine vollständige Angebotsvorlage (Logo, uwm.)
    +DocModelCyanDescription=Eine vollständige Angebotsvorlage (Logo, uwm.)
     DefaultModelPropalCreate=Erstellung Standardvorlage
     DefaultModelPropalToBill=Standard-Template, wenn Sie ein Angebot schließen wollen (zur Verrechung)
     DefaultModelPropalClosed=Standard Schablone wenn sie ein Geschäftsangebot schließen wollen. (ohne Rechnung)
    diff --git a/htdocs/langs/de_DE/website.lang b/htdocs/langs/de_DE/website.lang
    index 60f33ee68d1..52d4665d097 100644
    --- a/htdocs/langs/de_DE/website.lang
    +++ b/htdocs/langs/de_DE/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Erstellen Sie hier für jede benötigte Website einen Eintrag. Gehen Sie anschließend in das Menü Websites zur Bearbeitung.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Website löschen
    -ConfirmDeleteWebsite=Möchten Sie diese Website wirklich löschen? Alle Seiten inkl. Inhalt werden auch gelöscht.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Art der Seite/Containers
    -WEBSITE_PAGE_EXAMPLE=Web page to use as example
    +WEBSITE_PAGE_EXAMPLE=Seite die als Beispiel verwendet werden soll
     WEBSITE_PAGENAME=Seitenname/Alias
    -WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALT=Alternative Seitennamen/Aliase
    +WEBSITE_ALIASALTDesc=Liste mit einem anderen Namen/Alias verwenden, damit diese Seite auch von anderen Namen/Alias verwendet werden kann (z.B. die alte Seiten URL damit die alten Links noch funktionieren). Syntax: <br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL der externen CSS-Datei
     WEBSITE_CSS_INLINE=CSS-Dateiinhalt (für alle Seiten gleich)
     WEBSITE_JS_INLINE=Javascript-Dateiinhalt (für alle Seiten gleich)
    -WEBSITE_HTML_HEADER=Diesen Code am Schluss des HTML Headers anhängen (Für alle Seiten gleich)
    +WEBSITE_HTML_HEADER=Diesen Code am Schluss des HTML Headers anhängen (für alle Seiten gleich)
     WEBSITE_ROBOT=Roboterdatei (robots.txt)
    -WEBSITE_HTACCESS=Website .htaccess-Datei
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML Header (Nur für diese Seite)
     PageNameAliasHelp=Name oder Alias der Seite. <br>Dieser Alias wird auch zum erstellen einer SEO URL verwendet, wenn die Webseite auf einem Virtuellen Webserver läuft. Verwenden Sie der Button "<strong>%s</strong>" um den Alias zu ändern.
     EditTheWebSiteForACommonHeader=Hinweis: Um einen personalisierten Header für alles Seiten zu erstellen, muss der Header auf Site-Level bearbeitet werden, anstelle auf Seiten/Containerebene.
     MediaFiles=Medienbibliothek
    -EditCss=Bearbeiten Sie Style / CSS oder HTML-Header
    +EditCss=Edit website properties
     EditMenu=Menü bearbeiten
     EditMedias=Medien bearbeiten
    -EditPageMeta=Meta bearbeiten
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Website hinzufügen
     Webpage=Webseite / Container
     AddPage=Seite/Container hinzufügen
     HomePage=Startseite
     PageContainer=Seite / Container
    -PreviewOfSiteNotYetAvailable=Vorschau ihrer Webseite <strong>%s</strong> noch nicht Verfügbar. Zuerst muss eine Seite hinzugefügt werden.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Die Seite mit id %s hat keinen Inhalt oder die Cachedatei .tpl.php wurde gelöscht. Editieren Sie den Inhalt der Seite um das Problem zu lösen.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Seite / Container 
     PageDeleted=Seite / Container '%s' der Website %s gelöscht
     PageAdded=Seite / Container '%s' hinzugefügt
    @@ -36,49 +39,57 @@ ViewPageInNewTab=Seite in neuem Tab anzeigen
     SetAsHomePage=Als Startseite festlegen
     RealURL=Echte URL
     ViewWebsiteInProduction=Anzeige der Webseite über die Startseite\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nüber die URL der Homepage
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    -CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +CheckVirtualHostPerms=Kontrolliere dass auch der Virtuelle Host die <strong>%s</strong> Berechtigung für die die Dateien in <br><strong>%s</strong> hat
     ReadPerm=Lesen
    -WritePerm=Write
    -PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
    -PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
    -VirtualHostUrlNotDefined=URL des virtuellen Hosts, der von einem externen Webserver bedient wird, ist nicht definiert
    +WritePerm=Schreiben
    +PreviewSiteServedByWebServer=Die <u>Vorschau %s in einem neuen Tab</u><br><br>%s wird durch einen externen Webserver (Wie Apache, Nginx, IIS) ausgeliefert. Dieser Server muss installiert und eingerichtet sein, bevor Sie den Verzeichnis <br><strong>%s</strong> anzeigen können.<br> URL, die von dem externen Server bereitgestellt wird: <br><strong>%s</strong>
    +PreviewSiteServedByDolibarr=<u>Vorschau %sin neuem Tab. <br><br>%s wird durch den Dolibarr Server so bereit gestellt, dass kein zusätzlicher Webserver (Wie Apache, Nginx, IIS) notwendig ist. <br>Dadurch erhalten die Seiten URL's, die nicht Benutzerfreundlich sind und der Pfad beginnt mit ihrer Dolibarr Installation.<br> Durch Dolibarr bereit gestellte URL: <br><strong>%s</strong><br><br>Um Ihren eigenen externen Webserver für diese Website zu verwenden, erstellen Sie einen virtuellen Host auf Ihrem Webserver, der auf das Verzeichnis <br><strong>%s</strong>zeigt<br>. Vorschau durch Klick auf den anderen Vorschaubutton.
    +VirtualHostUrlNotDefined=Die URL des virtuellen Hosts, der von einem externen Webserver bereit gestellt wird, ist nicht definiert
     NoPageYet=Noch keine Seiten
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Hilfe zu bestimmten Syntaxtipps
     YouCanEditHtmlSourceckeditor=Sie können den HTML-Quellcode über die Schaltfläche "Quelle" im Editor bearbeiten.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Seite klonen
     CloneSite=Seite klonen
    -SiteAdded=Website hinzugefügt
    +SiteAdded=Website added
     ConfirmClonePage=Bitte geben Sie den Code / Alias ​​einer neuen Seite ein und ob es sich um eine Übersetzung der geklonten Seite handelt.
     PageIsANewTranslation=Die neue Seite ist eine Übersetzung der aktuellen Seite?
     LanguageMustNotBeSameThanClonedPage=Sie klonen eine Seite als Übersetzung. Die Sprache der neuen Seite muss sich von der Sprache der Quellseite unterscheiden.
     ParentPageId=ID der übergeordneten Seite
     WebsiteId=Website-ID
     CreateByFetchingExternalPage=Erstellen Sie eine Seite / einen Container, indem Sie die Seite von einer externen URL abrufen ...
    -OrEnterPageInfoManually=Oder leere Seite von Grund auf erstellen ...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Abrufen und erstellen
    -ExportSite=Website exportieren
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=ID der Seite
     Banner=Banner
     BlogPost=Blog Eintrag
    -WebsiteAccount=Website-Konto
    -WebsiteAccounts=Website-Konten
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Erstellen Sie ein Website-Konto
     BackToListOfThirdParty=Zurück zur Liste für Drittanbieter
     DisableSiteFirst=Webseite zuerst deaktivieren
     MyContainerTitle=Titel der Webseite
     AnotherContainer=Ein weiterer Container
    -WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
    -WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
    -YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    -OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
    -GrabImagesInto=Grab also images found into css and page.
    -ImagesShouldBeSavedInto=Images should be saved into directory
    -WebsiteRootOfImages=Root directory for website images
    -SubdirOfPage=Sub-directory dedicated to page
    -AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
    -CorporateHomePage=Corporate Home page
    -EmptyPage=Empty page
    +WEBSITE_USE_WEBSITE_ACCOUNTS=Benutzertabelle für Webseite aktivieren
    +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Aktiviere die Benutzertabelle um Webseitenlogins (Login/Kennwort) für alle Webseiten / Partner
    +YouMustDefineTheHomePage=Zuerst muss die Startseite definiert sein
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
    +OnlyEditionOfSourceForGrabbedContent=Der HTML Code kann nur editiert werden, wenn der Inhalt von einer externen Site geladen wurde
    +GrabImagesInto=Auch Bilder aus CSS und Seite übernehmen
    +ImagesShouldBeSavedInto=Bilder sollten im Verzeichnis gespeichert werden
    +WebsiteRootOfImages=Hauptververzeichnis für Websitebilder
    +SubdirOfPage=Unterverzeichnis für die Seite
    +AliasPageAlreadyExists=Alisseite <strong>%s</strong> existiert schon
    +CorporateHomePage=Firmenwebseite
    +EmptyPage=Leere Seite
    +ExternalURLMustStartWithHttp=Externe URL muss mit http:// oder https:// beginnen
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang
    index 9815e8ce767..ea9cb578f32 100644
    --- a/htdocs/langs/el_GR/admin.lang
    +++ b/htdocs/langs/el_GR/admin.lang
    @@ -1,7 +1,7 @@
     # Dolibarr language file - Source file is en_US - admin
     Foundation=Οργανισμός
     Version=Έκδοση
    -Publisher=Publisher
    +Publisher=Εκδότης
     VersionProgram=Έκδοση Προγράμματος
     VersionLastInstall=Αρχική έκδοση εγκατάστασης
     VersionLastUpgrade=Έκδοση Τελευταίας Ενημέρωσης
    @@ -9,35 +9,35 @@ VersionExperimental=Πειραματική
     VersionDevelopment=Υπό ανάπτυξη
     VersionUnknown=Άγνωστη
     VersionRecommanded=Προτεινόμενη
    -FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
    -GlobalChecksum=Global checksum
    -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    -LocalSignature=Embedded local signature (less reliable)
    -RemoteSignature=Remote distant signature (more reliable)
    +FileCheck=Έλεγχος ακεραιότητας αρχείων
    +FileCheckDesc=Αυτό το εργαλείο σάς επιτρέπει να ελέγχετε την ακεραιότητα των αρχείων και τη ρύθμιση της εφαρμογής σας, συγκρίνοντας κάθε αρχείο με το επίσημο. Μπορεί επίσης να ελεγχθεί η τιμή ορισμένων σταθερών ρύθμισης. Μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για να ανιχνεύσετε αν ορισμένα αρχεία έχουν τροποποιηθεί από έναν χάκερ, για παράδειγμα.
    +FileIntegrityIsStrictlyConformedWithReference=Η ακεραιότητα των αρχείων είναι αυστηρά σύμφωνη με την αναφορά.
    +FileIntegrityIsOkButFilesWereAdded=Ο έλεγχος ακεραιότητας αρχείων ολοκληρώθηκε επιτυχώς, ωστόσο κάποια νέα αρχεία έχουν προστεθεί.
    +FileIntegritySomeFilesWereRemovedOrModified=Ο έλεγχος ακεραιότητας αρχείων απέτυχε. Κάποια αρχεία έχουν τροποποιηθεί, απουσιάζουν ή έχουν προστεθεί.
    +GlobalChecksum=Συνολικό άθροισμα ελέγχου
    +MakeIntegrityAnalysisFrom=Κάντε ανάλυση ακεραιότητας των αρχείων εφαρμογών από το
    +LocalSignature=Ενσωματωμένη τοπική υπογραφή (λιγότερο αξιόπιστη)
    +RemoteSignature=Εξωτερική απομακρυσμένη υπογραφή (πιο αξιόπιστη)
     FilesMissing=Αρχεία που λείπουν
     FilesUpdated=Ενημερωμένα αρχεία
    -FilesModified=Modified Files
    -FilesAdded=Added Files
    -FileCheckDolibarr=Check integrity of application files
    -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package
    -XmlNotFound=Xml Integrity File of application not found
    +FilesModified=Τροποποιημένα αρχεία
    +FilesAdded=Προστέθηκε αρχεία
    +FileCheckDolibarr=Ελέγξτε την ακεραιότητα των αρχείων εφαρμογών
    +AvailableOnlyOnPackagedVersions=Το τοπικό αρχείο για τον έλεγχο της ακεραιότητας είναι διαθέσιμο μόνο όταν η εφαρμογή εγκαθίσταται από ένα επίσημο πακέτο
    +XmlNotFound=Το Xml αρχείο ακεραιότητας της εφαρμογής δεν βρέθηκε
     SessionId=ID Συνόδου
     SessionSaveHandler=Φορέας χειρισμού αποθήκευσης συνεδριών
     SessionSavePath=Αποθήκευση τοπικής προσαρμογής συνεδρίας
     PurgeSessions=Διαγραφή συνόδων
     ConfirmPurgeSessions=Είστε σίγουροι πως θέλετε να διαγράψετε όλες τις συνεδρίες; Αυτό θα αποσυνδέσει όλους τους χρήστες (εκτός από εσάς).
    -NoSessionListWithThisHandler=Ο Φορέας χειρισμού αποθήκευσης συνεδριών που έχει διαμορφωθεί στο PHP σας δεν επιτρέπει καταχώρηση όλων των τρέχοντων συνεδριών.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Κλειδώστε τις νέες συνδέσεις
    -ConfirmLockNewSessions=Είστε σίγουροι ότι θέλετε να περιορίσετε κάθε νέα σύνδεση Dolibarr για τον εαυτό σας. Μόνο ο χρήστης <b>%s</b>  θα είναι σε θέση να συνδεθεί μετά από αυτό.
    +ConfirmLockNewSessions=Είστε βέβαιοι ότι θέλετε να περιορίσετε οποιαδήποτε νέα σύνδεση Dolibarr στον εαυτό σας; Μόνο ο χρήστης <b> %s </b> θα μπορεί να συνδεθεί μετά από αυτό.
     UnlockNewSessions=Κατάργηση κλειδώματος σύνδεσης
     YourSession=Η σύνοδος σας
    -Sessions=Σύνοδοι χρηστών
    +Sessions=Συνεδρίες χρηστών
     WebUserGroup=Χειριστής/Ομάδα Διακομιστή Web
    -NoSessionFound=Το PHP σας δεν επιτρέπει την καταγραφή όλων των ενεργοποιημένων συνεδριών.  Ο κατάλογος που χρησιμοποιείται για να αποθηκεύετε συνεδρίες (<b>%s</b>) πιθανόν προστατεύεται (Για παράδειγμα, από OS άδειες ή από οδηγίες PHP open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Σύνολο χαρακτήρων βάσης δεδομένων για την αποθήκευση δεδομένων
     DBSortingCharset=Σετ χαρακτήρων βάσης δεδομένων για ταξινόμηση δεδομένων
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Εξωτερικός χρήστης
     InternalUsers=Εσωτερικοί χρήστες
     ExternalUsers=Εξωτερικοί χρήστες
     GUISetup=Εμφάνιση
    -SetupArea=Περιοχή ρύθμισης
    +SetupArea=Ρύθμιση
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Έντυπο για να ελέγξετε το αρχείο μεταφόρτωσης (ανάλογα με τις ρυθμίσεις)
     IfModuleEnabled=Σημείωση: ναι, είναι αποτελεσματική μόνο αν το module <b>%s</b> είναι ενεργοποιημένο
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Ο κώδικας δεν μπορεί να περιέχ
     DisableJavascript=Απενεργοποίηση της Java ακολουθίας και των Ajax  λειτουργιών (Προτείνεται για χρήση από άτομα με προβλήματα όρασης ή φυλλομετρητές κειμένου)
     UseSearchToSelectCompanyTooltip=Επίσης, αν έχετε ένα μεγάλο αριθμό Πελ./Προμ. (> 100 000), μπορείτε να αυξήσετε την ταχύτητα με τον καθορισμό της σταθερά COMPANY_DONOTSEARCH_ANYWHERE σε 1 στο Setup->Other. Η αναζήτηση στη συνέχεια θα περιορίζεται από την έναρξη της σειράς.
     UseSearchToSelectContactTooltip=Επίσης, αν έχετε ένα μεγάλο αριθμό Πελ./Προμ. (> 100 000), μπορείτε να αυξήσετε την ταχύτητα με τον καθορισμό της σταθερά COMPANY_DONOTSEARCH_ANYWHERE σε 1 στο Setup->Other. Η αναζήτηση στη συνέχεια θα περιορίζεται από την έναρξη της σειράς.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Πλήθος χαρακτήρων για να ξεκινήσει η αναζήτηση: %s
     NotAvailableWhenAjaxDisabled=Δεν είναι διαθέσιμο όταν η Ajax είναι απενεργοποιημένη
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Η προ επισκόπηση δεν είναι διαθέ
     ThemeCurrentlyActive=Θεματική Επι του Παρόντος Ενεργή
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (βάση δεδομένων)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Κενό
     Table=Πίνακας
     Fields=Πεδία
    @@ -111,14 +111,14 @@ NotConfigured=Το ένθεμα/εφαρμογή δεν έχει ρυθμιστ
     Active=Ενεργό
     SetupShort=Ρύθμιση
     OtherOptions=Άλλες Επιλογές
    -OtherSetup=Άλλες Ρυθμίσεις
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Διαχωριστικό Δεκαδικών
     CurrentValueSeparatorThousand=Διαχωριστικό Χιλιάδων
     Destination=Προορισμός
     IdModule=Module ID
     IdPermissions=Δικαιώματα ID
     LanguageBrowserParameter=Παράμετρος %s
    -LocalisationDolibarrParameters=Παράμετροι τοπικών ρυθμίσεων
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Ζώνη Ώρας χρήστη (χρήστης)
     ClientHour=Ωρα χρήστη (χρήστης)
     OSTZ=OS Time Zone του διακομιστή 
    @@ -126,8 +126,8 @@ PHPTZ=Ζώνη Ώρας PHP server
     DaylingSavingTime=Η θερινή ώρα (χρήστη)
     CurrentHour=PHP server hour
     CurrentSessionTimeOut=Χρονικό όριο περιόδου λειτουργίας τρέχουσας συνοδού
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Μέγιστο πλήθος γραμμών για τα widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Αυτόματη Ανίχνευση (γλώσσα φυλλομετρητή)
     FeatureDisabledInDemo=Δυνατότητα απενεργοποίησης στο demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Μόνο στοιχεία από <a href="%s">ενεργοποιημένα modules</a> προβάλλονται.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Νέο
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=Το DoliStore, είναι η επίσημη περιοχή για να βρείτε εξωτερικά modules για το Dolibarr ERP/CRM
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Σύνδεσμος
     BoxesAvailable=Διαθέσιμα Widgets
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Μην αποθηκεύετε αποκρυπτογραφ
     MainDbPasswordFileConfEncrypted=Ο κωδικός της βάσης δεδομένων να είναι κρυπτογραφημένος στο conf.php (προτείνεται να είναι ενεργό)
     InstrucToEncodePass=Για κρυπτογραφημένο κωδικό στο αρχείο <b>conf.php</b>, κάντε αντικατάσταση στη γραμμή <br><b>$dolibarr_main_db_pass="...";</b><br>με<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Προστασία παραγόμενων αρχείων pdf (Η ενεργοποίηση ΔΕΝ προτείνεται, χαλάει την μαζική δημιουργία pdf)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Χαρακτηριστικό
     DolibarrLicense=Άδεια χρήσης
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=Για την τεκμηρίωση χρήστη ή προγραμματιστή  (Doc, FAQs...),<br>ρίξτε μια ματιά στο Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Για οποιαδήποτε άλλη ερώτηση/βοήθεια, μπορείτε να χρησιμοποιήσετε το forum του Dolibarr:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=Αυτή η περιοχή μπορεί να σας βοηθήσει να αποκτήσετε υπηρεσίες βοήθειας στο Dolibarr.
    -HelpCenterDesc2=Κάποια κομμάτια αυτής της υπηρεσίας είναι διαθέσιμα <b> μόνο στα αγγλικά</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Τρέχον μενού
     MeasuringUnit=Μονάδα μέτρησης
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=Θύρα SMTP/SMTPS (Προεπιλογή στο php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (Προεπιλογή στο php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Θύρα SMTP/SMTPS (Δεν καθορίζεται στην PHP σε συστήματα Unix)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Δεν καθορίζεται στην PHP σε συστήματα Unix)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Να αποστέλλονται κρυφά αντίγραφα των απεσταλμένων emails στο
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Μέθοδος που χρησιμοποιείτε για αποστολή EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID αν απαιτείται πιστοποίηση
    -MAIN_MAIL_SMTPS_PW=Κωδικός SMTP αν απαιτείται πιστοποίηση
    -MAIN_MAIL_EMAIL_TLS= Χρησιμοποιήστε TLS (SSL) κωδικοποίηση
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Απενεργοποίηση όλων των αποστολών SMS (για λόγους δοκιμής ή demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Μέθοδος που θέλετε να χρησιμοποιηθεί για την αποστολή SMS
    -MAIN_MAIL_SMS_FROM=Προεπιλεγμένος αριθμός τηλεφώνου αποστολέα για την αποστολή SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Αυτή η λειτουργία δεν είναι διαθέσιμη σε συστήματα Unix like. Δοκιμάστε το πρόγραμμα sendmail τοπικά.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Διαχείριση Αρθρώματος
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Εργαλεία πολλαπλών modules
     ModuleFamilyExperimental=Πειραματικά modules
     ModuleFamilyFinancial=Χρηματοοικονομικά Modules (Λογιστική/Χρηματοοικονομικά)
     ModuleFamilyECM=Διαχείριση Ηλεκτρονικού Περιεχομένου (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Διαχειριστές μενού
     MenuAdmin=Επεξεργαστής μενού
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Να μην χρησιμοποιείται για παρα
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Βήμα %s
    -FindPackageFromWebSite=Βρείτε ένα πακέτο που να παρέχει την λειτουργία που επιθυμείτε (για παράδειγμα στο επίσημο %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Λήψη πακέτου (για παράδειγμα από την επίσημη ιστοσελίδα %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Έκδοση Dolibarr
     CallUpdatePage=Μετάβαση στη σελίδα ενημέρωσης της δομής της βάσης δεδομένων και των δεδομένων: %s.
     LastStableVersion=Τελευταία σταθερή έκδοση
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Καθυστέρηση για την τοποθέτηση απόκρισης εξαγωγής στην προσωρινή μνήμη σε δευτερόλεπτα (0 ή άδεια για μη χρήση προσωρινής μνήμης)
     DisableLinkToHelpCenter=Αποκρύψτε τον σύνδεσμο "<b>Αναζητήστε βοήθεια ή υποστήριξη</b>" στην σελίδα σύνδεσης
     DisableLinkToHelp=Απόκρυψη του συνδέσμου online βοήθεια "<b>%s</b>"
    -AddCRIfTooLong=Δεν υπάρχει αυτόματη αναδίπλωση κειμένου.  Αν η γραμμή σας δεν χωράει στην σελίδα των εγγράφων επειδή είναι πολύ μεγάλη, θα πρέπει να προσθέσετε μόνοι σας χαρακτήρες αλλαγής γραμμής carriage return στην περιοχή κειμένου.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Ελάχιστο μήκος
     LanguageFilesCachedIntoShmopSharedMemory=Τα αρχεία τύπου .lang έχουν φορτωθεί στην κοινόχρηστη μνήμη
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Παραδείγματα με την τωρινή διαμόρφωση
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Λίστα φακέλων προτύπων OpenDocument
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Αριθμός αρχείων προτύπων ODT/ODS που βρέθηκαν σε αυτούς τους φακέλους
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Παραδείγματα σύνταξης:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>Για να μάθετε πως να δημιουργήσετε τα δικά σας αρχεία προτύπων, πριν τα αποθηκεύσετε σε αυτούς τους φακέλους, διαβάστε την τεκμηρίωση στο wiki:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Φόρμα δοκιμής εισαγωγής δεδομένων
     ThisForceAlsoTheme=Αυτός ο τροποποιητής μενού χρησιμοποιεί το δικό του θέμα όποιο θέμα και να έχει επιλέξει ο χρήστης.  Επίσης, αυτό το πρόγραμμα διαχείρισης μενού που ειδικεύεται στις κινητές συσκευές δεν δουλεύει σε όλα τα smartphone. Χρησιμοποιήσετε κάποιον άλλο διαχειριστή μενού αν αντιμετωπίζετε προβλήματα στο δικό σας.
     ThemeDir=Φάκελος skins
    -ConnectionTimeout=Λήξη σύνδεσης
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Λήξη χρόνου αναμονής απάντησης
     SmsTestMessage=Δοκιμαστικό μήνυμα από __PHONEFROM__ να __PHONETO__
     ModuleMustBeEnabledFirst=Το άρθρωμα <b>%s</b> πρέπει να ενεργοποιηθεί πρώτα εάν χρειάζεστε συτή τη λειτουργία.
     SecurityToken=Security Token
    -NoSmsEngine=Δεν υπάρχει πρόγραμμα αποστολής SMS διαθέσιμο. Τα προγράμματα αποστολής SMS δεν εγκαθίστανται με την διανομή από προεπιλογή (επειδή εξαρτώνται από εξωτερικούς προμηθευτές) αλλά μπορείτε να βρείτε κάποια διαθέσιμα προγράμματα στο %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Μπορείτε να ρυθμίσετε κάθε κεντρική επιλογή που σχετίζεται με τη δημιουργία PDF
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Κανόνες για να δημιουργηθούν διευθύνσεις
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Απόκρυψη περιγραφών προϊόντων στα δημιουργηθέντα PDF
     HideRefOnPDF=Απόκρυψη αναφοράς προϊόντος στα δημιουργηθέντα PDF
     HideDetailsOnPDF=Απόκρυψη λεπτομερειών προϊόντων στα δημιουργηθέντα PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Παράμετροι για δημιουργία ασφ
     SecurityTokenIsUnique=Χρησιμοποιήστε μια μοναδική παράμετρο securekey για κάθε διεύθυνση URL
     EnterRefToBuildUrl=Εισάγετε αναφοράς για %s αντικείμενο
     GetSecuredUrl=Πάρτε υπολογιζόμενο URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Παλιός συντελεστής ΦΠΑ
     NewVATRates=Νέος συντελεστής ΦΠΑ
     PriceBaseTypeToChange=Τροποποίηση τιμών με βάση την τιμή αναφοράς όπως ρυθμίστηκε στο
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Επιλογή από λίστα
     ExtrafieldSelectList = Επιλογή από πίνακα
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Συνθηματικό
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Προεπιλεγμένος σύνδεσμος
     SetAsDefault=Ορισμός ως προεπιλογή
     ValueOverwrittenByUserSetup=Προσοχή, αυτή η τιμή μπορεί να αντικατασταθεί από επιλογή του χρήστη (ο κάθε χρήστης μπορεί να κάνει τον δικό του σύνδεσμο clicktodial)
     ExternalModule=Εξωτερικό module - Εγκατεστημένο στον φάκελο %s
    -BarcodeInitForThirdparties=Όγκος barcode init για Πέλ./Πρόμ.
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Όγκος barcode init ή επαναφορά για προϊόντα ή υπηρεσίες
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init τιμή για τις επόμενες %s άδειες καταχωρήσεις
     EraseAllCurrentBarCode=Διαγραφή όλων των τρεχουσών τιμών barcode
     ConfirmEraseAllCurrentBarCode=Είστε σίγουροι ότι θέλετε να διαγράψετε όλες τις τρέχουσες τιμές barcode;
     AllBarcodeReset=Όλες οι τιμές barcode έχουν αφαιρεθεί
    -NoBarcodeNumberingTemplateDefined=Δεν υπάρχει πρότυπο για barcode αρίθμηση ενεργοποιημένη στο module barcode
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Εμφάνιση διεύθυνσης επιχείρησης
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Χρήστες & Ομάδες
    +Module0Name=Χρήστες και Ομάδες
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Στοιχεία
    -Module1Desc=Διαχείριση εταιρειών και επαφών (πελάτες, πιθανοί πελάτες...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Εμπορικό
     Module2Desc=Εμπορική διαχείριση
     Module10Name=Λογιστική
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Προτάσεις
     Module20Desc=Διαχείριση προσφορών
     Module22Name=Μαζική αποστολή e-mail
    @@ -495,7 +501,7 @@ Module23Desc=Παρακολούθηση κατανάλωσης ενέργεια
     Module25Name=Παραγγελίες πελάτη
     Module25Desc=Διαχείριση παραγγελιών πελατών
     Module30Name=Τιμολόγια
    -Module30Desc=Τιμολόγιο και πιστωτικό τιμολόγιο διαχείρισης για τους πελάτες. Τιμολόγιο διαχείρισης για τους προμηθευτές
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Προμηθευτές
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Διαχείριση αποθεμάτων (προϊόντων)
     Module53Name=Υπηρεσίες
     Module53Desc=Διαχείριση υπηρεσιών
     Module54Name=Συμβάσεις/Συνδρομές
    -Module54Desc=Διαχείριση συμβολαίων (υπηρεσιών ή ανανεώσιμων συνδρομών)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Διαχείριση barcode
     Module56Name=Τηλεφωνία
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Ενοποίηση ενός συστήματος ClickToDial (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Σημειώσεις εξόδων και ταξιδιών
     Module75Desc=Διαχείριση σημειώσεων εξόδων και ταξιδιών
     Module80Name=Αποστολές
     Module80Desc=Διαχείριση αποστολών και εντολών παράδοσης
    -Module85Name=Τράπεζες και μετρητά
    +Module85Name=Banks and Cash
     Module85Desc=Διαχείριση τραπεζών και λογαριασμών μετρητών
    -Module100Name=Εξωτερική ιστοσελίδα
    -Module100Desc=Αυτό το module περιέχει μία εξωτερική ιστοσελίδα ή site μέσα από το μενού του Dolibarr  για να προβληθεί μέσω ενός παραθύρου Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman και SIP
     Module105Desc=Mailman ή SPIP διεπαφή για ενότητα μέλος
     Module200Name=LDAP
    -Module200Desc=Συγχρονισμός LDAP directory
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=Διεπαφή PostNuke
     Module240Name=Εξαγωγές δεδομένων
    -Module240Desc=Εργαλείο για την εξαγωγή δεδομένων του Dolibarr (με βοήθεια)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Εισαγωγές δεδομένων
    -Module250Desc=Εργαλείο για την εισαγωγή δεδομένων στο Dolibarr (με βοήθεια)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Μέλη
     Module310Desc=Διαχείριση μελών οργανισμού
     Module320Name=RSS Feed
     Module320Desc=Εισαγωγή RSS feed εντός των σελίδων του Dolibarr
    -Module330Name=Σελιδοδείκτες
    -Module330Desc=Διαχείριση σελιδοδεικτών
    -Module400Name=Έργα/Ευκαιρίες/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Ημερολόγιο ιστού
     Module410Desc=Διεπαφή ημερολογίου ιστού
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Δάνειο
     Module520Desc=Διαχείριση δανείων
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Δωρεές
     Module700Desc=Donation management
     Module770Name=Αναφορές εξόδων
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Δημιουργία εγγράφου για μαζικά mail
     Module1780Name=Ετικέτες/Κατηγορίες
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Δυναμικές Τιμές
     Module2200Desc=Ενεργοποιήστε τη χρήση των μαθηματικών εκφράσεων για τις τιμές
     Module2300Name=Προγραμματισμένες εργασίες
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Ενεργοποιήστε το Dolibarr web services client (Μπορεί να χρησιμοποιηθεί για την προώθηση των δεδομένων/αιτήσεις σε εξωτερικούς διακομιστές. Μόνο Παραγγελίες προμηθευτών υποστηρίζονται προς το παρόν)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Αφήστε τη διαχείριση των ερωτήσεων
    -Module20000Desc=Δηλώστε και παρακολουθήστε τις αιτήσεις αδειών των εργαζομένων
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Σημείο Πωλήσεων
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Σημείο πωλήσεων
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Λογιστική (για προχωρημένους)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Απευθείας εκτύπωση (χωρίς να ανοίξετε τα έγγραφα) χρησιμοποιώντας Cups IPP διασύνδεση (Ο Εκτυπωτής πρέπει να είναι ορατός από τον server, και το CUPS πρέπει να έχει εγκατασταθεί στο server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Δημοσκόπηση, έρευνα ή ψηφοφορία
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Περιθώρια
     Module59000Desc=Πρόσθετο για την διαχείριση των περιθωρίων
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Διεθνείς Εμπορικός Όρος
    -Module62000Desc=Προσθέστε δυνατότητες για τη διαχείριση του Διεθνή Εμπορικού Όρου
    +Module62000Name=Διεθνείς Εμπορικοί Όροι
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Πόροι
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Εξαγωγή έργων
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Εγκατάσταση χρηματοοικονομικών λογαριασμών (δημιουργία, διαχείριση κατηγοριών)
    -Permission114=Συμφιλιώνει τις συναλλαγές
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Διαβάστε συμβάσεις/συνδρομές
     Permission162=Δημιουργία/τροποποίηση συμβολαίων/συνδρομών
     Permission163=Ενεργοποίηση υπηρεσίας/συνδρομής ενός συμβολαίου
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Διαγραφή επαφών
     Permission286=Εξαγωγή επαφών
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Διαγραφή μισθών
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Εξαγωγή μισθών
     Permission520=Ανάγνωση δανείων
     Permission522=Δημιουργία/μεταβολή δανείων
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Διαγραφή των αιτήσεων άδειας
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Προοπτική δυνητικό επίπεδο
     DictionaryCanton=Πολιτεία/Επαρχία
     DictionaryRegion=Περιοχές
    @@ -894,7 +902,7 @@ DictionaryVAT=Τιμές ΦΠΑ ή φόρου επί των πωλήσεων
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Όροι πληρωμής
     DictionaryPaymentModes=Τρόποι πληρωμής
    -DictionaryTypeContact=Τύποι Επικοινωνίας/Διεύθυνση
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Οικολογικός φόρος (ΑΗΗΕ)
     DictionaryPaperFormat=Μορφές χαρτιού
    @@ -908,47 +916,47 @@ DictionarySource=Προέλευση των προτάσεων/παραγγελι
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Μοντέλα λογιστικού σχεδίου
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Πρότυπα email
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Μονάδες
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Οι ρυθμίσεις αποθηκεύτηκαν
     SetupNotSaved=Setup not saved
     BackToModuleList=Πίσω στη λίστα με τα modules
    -BackToDictionaryList=Επιστροφή στη λίστα λεξικών
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=Διαχείριση Φ.Π.Α.
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Τιμή
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Αναφορές για τοπικούς φόρους
     CalcLocaltax1=Πωλήσεις - Αγορές
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Πωλήσεις
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Ετικέτα στα έγγραφα
    -NbOfDays=Πλήθος Ημερών
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Στο τέλος του μήνα
     CurrentNext=Current/Next
     Offset=Απόκλιση
    @@ -984,7 +994,7 @@ DatabaseUser=Χρήστης ΒΔ
     DatabasePassword=Συνθηματικό ΒΔ
     Tables=Πίνακες
     TableName=Όνομα Πίνακα
    -NbOfRecord=Πλήθος Εγγραφών
    +NbOfRecord=No. of records
     Host=Διακομιστής
     DriverType=Driver type
     SummarySystem=Σύνοψη πληροφοριών συστήματος
    @@ -996,7 +1006,7 @@ Skin=Θέμα
     DefaultSkin=Προκαθορισμένο Θέμα
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Προεπιλεγμένο μέγιστο μέγεθος για λίστες
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Μήνυμα της ημέρας
     MessageLogin=Μήνυμα σελίδας εισόδου
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Προκαθορισμένη Γλώσσα (κωδ. γλώσσας)
     EnableMultilangInterface=Ενεργοποίησ πολυγλωσσικού περιβάλλοντος
     EnableShowLogo=Εμφάνιση λογότυπου στο αριστερό μενού
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Όνομα
     CompanyAddress=Διεύθυνση
     CompanyZip=Τ.Κ.
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Ιδιοκτήτης του λογαριασμού τράπε
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Εμφάνιση συνδέσμου link <strong>%s</strong>
     Alerts=Συναγερμοί
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Ιστορικό εισόδου χρηστών
    +Audit=Security events
     InfoDolibarr=Πληροφορίες Dolibarr
     InfoBrowser=Πληροφορίες Φυλλομετρητή
     InfoOS=Πληροφορίες ΛΣ
    @@ -1056,20 +1066,20 @@ BrowserName=Όνομα φυλλομετρητή
     BrowserOS=Λειτουργικό σύστημα φυλλομετρητή
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Συμβάντα ασφαλείας εξαγνίζονται
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Χρήση Δεκαδικών ψηφίων στις τιμές ειδών
     MAIN_MAX_DECIMALS_TOT=μέγιστος αριθμός δεκαδικών στη συνολική πληρωτέα τιμή
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Καθαρή τιμή επί του προϊόντος
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Ημιτελής μεταγλώττιση
    -MAIN_DISABLE_METEO=Απενεργοποίηση Meteo θέα
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Δοκιμή για να συνδεθείτε API
    -ProxyDesc=Μερικά χαρακτηριστικά του Dolibarr πρέπει να έχουν πρόσβαση στο Internet στην εργασία. Ορίστε εδώ τις παραμέτρους για αυτό. Εάν ο διακομιστής Dolibarr είναι πίσω από ένα διακομιστή μεσολάβησης, οι παράμετροι αυτές λέει Dolibarr τον τρόπο πρόσβασης στο Internet μέσω αυτού.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Εξωτερική πρόσβαση
     MAIN_PROXY_USE=Χρησιμοποιήστε ένα διακομιστή μεσολάβησης (αλλιώς άμεση πρόσβαση στο διαδίκτυο)
     MAIN_PROXY_HOST=Ονοματεπώνυμο / διεύθυνση του διακομιστή μεσολάβησης
     MAIN_PROXY_PORT=Λιμάνι του διακομιστή μεσολάβησης
     MAIN_PROXY_USER=Σύνδεση για να χρησιμοποιήσετε το διακομιστή μεσολάβησης
     MAIN_PROXY_PASS=Κωδικός πρόσβασης για να χρησιμοποιήσετε το διακομιστή μεσολάβησης
    -DefineHereComplementaryAttributes=Ορίστε εδώ όλα τα χαρακτηριστικά, δεν είναι ήδη διαθέσιμη από προεπιλογή, και ότι θέλετε να υποστηριχθούν για %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Συμπληρωματικά χαρακτηριστικά
     ExtraFieldsLines=Συμπληρωματικά χαρακτηριστικά (σειρές)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Συμπληρωματικές ιδιότητες (τιμολόγια)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=μόνο αλφαριθμητικά και πε
     SendmailOptionNotComplete=Προσοχή, σε μερικά συστήματα Linux, για να στείλετε e-mail από το e-mail σας, το sendmail εγκατάστασης εκτέλεση πρέπει conatins επιλογή-βα (mail.force_extra_parameters παράμετρος σε php.ini αρχείο σας). Αν δεν ορισμένοι παραλήπτες λαμβάνουν μηνύματα ηλεκτρονικού ταχυδρομείου, προσπαθήστε να επεξεργαστείτε αυτή την PHP με την παράμετρο-mail.force_extra_parameters = βα).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Εγκατάσταση της μετάφρασης
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=Μπορείτε να χρησιμοποιήσετε το πρόγραμμα οδήγησης %s που είναι καλύτερος οδηγός που διατίθεται σήμερα.
    -YouDoNotUseBestDriver=Μπορείτε να χρησιμοποιήσετε τη μονάδα %s αλλά ο οδηγός %s προτείνετε.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Βελτιστοποίηση αναζήτησης
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=Xdebug είναι φορτωμένο.
     XCacheInstalled=XCache είναι φορτωμένο.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Έκδοση στο πεδίο %s
     FillThisOnlyIfRequired=Παράδειγμα: +2 (συμπληρώστε μόνο αν ζώνη ώρας αντισταθμίσουν τα προβλήματα για προβλήματα που προέκυψαν)
     GetBarCode=Πάρτε barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Να μην προτείνεται η δημιουργία κωδικού. Ο κωδικός πρέπει να πληκτρολογηθεί με το χέρι.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Ρυθμίσεις αρθρώματος Εταιριών
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Πρότυπα εγγράφων
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Ενεργοποιήστε τη δυνατότητα να συμπληρώνει αυτόματα τις γραμμές πληρωμής σε έντυπο πληρωμής
    -CompanyIdProfChecker=Επαγγελματική ταυτότητα μοναδική
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Τιμολόγια και πιστωτικά τιμολόγια μοντέλο αρίθμησης
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Πιστωτικό τιμολόγιο
     CreditNotes=Πιστωτικά τιμολόγια
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Διαχείριση μιας Σύνδεση για κά
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Σύνδεση/έλεγχος ταυτότητας με το διακομιστή LDAP επιτυχή (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Name
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Επιδόσεις ρύθμισης/βελτιστοποίηση της αναφοράς
    -YouMayFindPerfAdviceHere=Θα βρείτε σε αυτή τη σελίδα ορισμένους ελέγχους ή συμβουλές που σχετίζονται με την απόδοση.
    -NotInstalled=Δεν έχει εγκατασταθεί, οπότε ο server σας δεν έχει επιβραδυνθεί από αυτό.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Εφαρμογή Cache
     MemcachedNotAvailable=Δεν βρέθηκε applicative προσωρινή μνήμη. Μπορείτε να βελτιώσετε την απόδοση με την εγκατάσταση ενός Memcached διακομιστή προσωρινής μνήμης και ένα module θα είναι σε θέση να χρησιμοποίηση το διακομιστή προσωρινής μνήμης.<br>Περισσότερες πληροφορίες εδώ <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Σημειώστε ότι πολλοί πάροχοι web hosting δεν παρέχουν διακομιστή cache.
     MemcachedModuleAvailableButNotSetup=Το module memcached για εφαρμογή cache βρέθηκε, αλλά η εγκατάσταση του module δεν είναι πλήρης.
     MemcachedAvailableAndSetup=Το module memcache προορίζεται για χρήση memcached του διακομιστή όταν είναι ενεργοποιημένη.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Αρχεία τύπου %s αποθηκεύονται προσωρινά από το διακομιστή HTTP
     FilesOfTypeNotCached=Αρχεία τύπου %s δεν αποθηκεύονται προσωρινά από το διακομιστή HTTP
     FilesOfTypeCompressed=Τα αρχεία τύπου %s συμπιέζονται από το διακομιστή HTTP
     FilesOfTypeNotCompressed=Αρχεία τύπου %s δεν συμπιέζονται από το διακομιστή HTTP
     CacheByServer=Cache από τον server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache από τον browser
     CompressionOfResources=Συμπίεση HTTP απαντήσεων
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Μια τέτοια αυτόματη ανίχνευση δεν είναι δυνατόν με τα τρέχουσα προγράμματα περιήγησης
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Υπηρεσίες εγκατάστασης μονάδας
     ProductServiceSetup=Προϊόντα και Υπηρεσίες εγκατάστασης μονάδων
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Επίσης, αν έχετε ένα μεγάλο αριθμό προϊόντων (> 100 000), μπορείτε να αυξήσετε την ταχύτητα με τον καθορισμό της σταθερά PRODUCT_DONOTSEARCH_ANYWHERE σε 1 στο Setup->Other.  αναζήτηση στη συνέχεια θα περιορίζεται από την έναρξη της σειράς.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Σας αποστολές αρίθμησης ενοτήτων
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Ελεύθερο κείμενο για τις μεταφορές
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Εξελιγμένο πρόγραμμα επεξεργασίας
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Σύνδεση με τον διακομιστή '%s' στη βάση δεδομένων '%s' με το χρήστη '%s' είναι επιτυχείς.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Χρόνος της καταλληλότητας του ΦΠΑ εξ ορισμού ανάλογα την επιλογή:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Κατά την αποστολή
     OnPayment=Κατά την πληρωμή
     OnInvoice=Κατά την έκδοση τιμ/γίου
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Ρυθμίστε αυτόματα αυτό το είδος της εκδήλωσης στο φίλτρο αναζήτησης του προβολή ατζέντας
    -AGENDA_DEFAULT_FILTER_STATUS=Ορίστε αυτό το καθεστώς για τα γεγονότα στο φίλτρο αναζήτησης της προβολής ατζέντας
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Ποια καρτέλα θέλετε να ανοίξετε από προεπιλογή κατά την επιλογή του μενού Ατζέντα
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Σημείο Πωλήσεων
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Προεπιλογή γενικός Πελ./Προμ. να χρησιμοποιηθεί για Πωλήσεις
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Αναγκαστικός περιορισμός αποθήκης για μείωση των αποθεμάτων
    -StockDecreaseForPointOfSaleDisabled=Μείωση αποθέματος από Point Of Sale απενεργοποιημένο
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=Δεν έχετε απενεργοποιήσει μείωση των αποθεμάτων κατά την πραγματοποίηση μιας πώλησης από το σημείο πώλησης "POS". Μια αποθήκη είναι απαραίτητη.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Εργασίες αριθμοδότησης μονάδας
     TaskModelModule=Εργασίες υπόδειγμα εγγράφου αναφορών
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=Λίστα ειδοποιήσεων ανά χρήστη*
     ListOfNotificationsPerUserOrContact=Λίστα ειδοποιήσεων ανά χρήστη* ή ανά επαφή**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Χρώμα σε συνδέσμους
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Χρώμα φόντου για τις άρτιες
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Θέση γραμμής σε σύνθετο πλαίσιο
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Τύπος πρότυπου
    -TemplateIsVisibleByOwnerOnly=Το πρότυπο είναι ορατό μόνο από τον κάτοχο
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Σελίδα στόχος
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/el_GR/banks.lang b/htdocs/langs/el_GR/banks.lang
    index 84d9972c966..825a7b02c8d 100644
    --- a/htdocs/langs/el_GR/banks.lang
    +++ b/htdocs/langs/el_GR/banks.lang
    @@ -7,7 +7,7 @@ BankName=Όνομα Τράπεζας
     FinancialAccount=Λογαριασμός
     BankAccount=Τραπεζικός Λογαριασμός
     BankAccounts=Τραπεζικοί Λογαριασμοί
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Εμφάνιση λογαριασμού
     AccountRef=Αναγνωριστικό Λογιστικού Λογαριασμού
     AccountLabel=Ετικέτα Λογιστικού Λογαριασμού
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Πάγια Εντολή
     BankAccountCountry=Χώρα λογαριασμού
     BankAccountOwner=Ιδιοκτήτης Λογαριασμού
     BankAccountOwnerAddress=Διεύθυνση Ιδιοκτήτη
    -RIBControlError=Ο έλεγχος ακεραιότητας των τιμών απέτυχε. Αυτό σημαίνει ότι οι πληροφορίες του λογαριασμού δεν είναι επαρκείς ή είναι λανθασμένες (ελέγξτε χώρα, αριθμό και IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Δημιουργία Λογαριασμού
     NewBankAccount=Νέος Λογαριασμός
     NewFinancialAccount=Νέος Λογιστικός Λογαριασμός
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Μπορεί να πραγματοποιηθεί
     Conciliate=Πραγματοποίηση Συναλλαγής
     Conciliation=Πραγματοποίηση Συναλλαγής
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Συμπερίληψη Κλειστών Λογαριασμών
     OnlyOpenedAccount=Μόνο ανοικτούς λογαριασμούς
    @@ -104,7 +105,7 @@ SocialContributionPayment=Σίγουρα θέλετε να μαρκάρετε α
     BankTransfer=Τραπεζική Μεταφορά
     BankTransfers=Τραπεζικές Μεταφορές
     MenuBankInternalTransfer=Εσωτερική μεταφορά
    -TransferDesc=Μεταφορά από ένα λογαριασμό σε κάποιον άλλο, το Dolibarr θα δημιουργήσει δύο εγγραφές (μία χρέωση στον λογαριασμό προέλευσης και μία πίστωση στον λογαριασμό στόχο. Το ίδιο ποσό (εκτός του προσήμου), αναφορά και ημερομηνία θα χρησιμοποιηθούν για αυτή την συναλλαγή)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Από
     TransferTo=Προς
     TransferFromToDone=Η μεταφορά από <b>%s</b> στον <b>%s</b> του <b>%s</b> %s έχει καταγραφεί.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Είστε σίγουροι πως θέλετε να 
     BankChecks=Τραπεζικές Επιταγές
     BankChecksToReceipt=Επιταγές που αναμένουν κατάθεση
     ShowCheckReceipt=Ελέγξτε την απόδειξη κατάθεσης
    -NumberOfCheques=Πλήθος Επιταγών
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Επιστροφή στον λογαριασμό
     ShowAllAccounts=Εμφάνιση Όλων των Λογαριασμών
    -FutureTransaction=Συναλλαγή στο μέλλον. Δεν υπάρχει τρόπος συμβιβασμού.
    -SelectChequeTransactionAndGenerate=Επιλέξτε/φίλτρο ελέγχου για να συμπεριληφθεί στην απόδειξη κατάθεσης και κάντε κλικ στο "Δημιουργία".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Επιλέξτε την κατάσταση των τραπεζών που συνδέονται με τη διαδικασία συνδιαλλαγής. Χρησιμοποιήστε μια σύντομη αριθμητική τιμή όπως: YYYYMM ή YYYYMMDD
     EventualyAddCategory=Τέλος, καθορίστε μια κατηγορία στην οποία θα ταξινομηθούν οι εγγραφές
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Ημερομηνία ελέγχου επιστροφής
     CheckRejected=Ελέγξτε την επιστροφή
     CheckRejectedAndInvoicesReopened=Ελέγξτε την επιστροφή και ξανά ανοίξτε τα τιμολόγια
     BankAccountModelModule=Πρότυπα εγγράφων για τραπεζικούς λογαριασμούς
    -DocumentModelSepaMandate=Πρότυπο SEPA. Χρήσιμο μόνο για κράτη μέλη της Ευρωζώνης.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Πρότυπο για εκτύπωση σελίδας με πληροφορίες BAN.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/el_GR/bills.lang b/htdocs/langs/el_GR/bills.lang
    index a927f6294c6..9bed2cae9ba 100644
    --- a/htdocs/langs/el_GR/bills.lang
    +++ b/htdocs/langs/el_GR/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Προτιμολόγιο
     InvoiceProFormaDesc=Το <b>Προτιμολόγιο</b> είναι η εικόνα ενός πραγματικού τιμολογίου, χωρίς όμως να έχει χρηματική αξία
     InvoiceReplacement=Τιμολόγιο Αντικατάστασης
     InvoiceReplacementAsk=Αντικατάσταση τιμολογίου με
    -InvoiceReplacementDesc=<b>Τιμολόγιο αντικατάστασης</b> χρησιμοποιείται για να ακυρώσει και να αντικαταστήσει πλήρως ένα απλήρωτο τιμολόγιο.<br><br>Σημείωση: Μόνο τα τιμολόγια χωρίς καμία πληρωμή μπορούν να αντικατασταθούν. Εάν το τιμολόγιο που θα αντικατασταθεί δεν έχει κλείσει, θα κλείσει αυτόματα και θα σημειωθεί «εγκαταλειμμένο».
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Πιστωτικό τιμολόγιο
     InvoiceAvoirAsk=Πιστωτικό τιμολόγιο για την διόρθωση τιμολογίου
    -InvoiceAvoirDesc=Το <b>πιστωτικό τιμολόγιο</b>είναι ένα αρνητικό τιμολόγιο που χρησιμοποιείτε για να λύσει τη κατάσταση κατά την οποία το σύνολο του τιμολογίου διαφέρει από το σύνολο της πραγματικής πληρωμής (ίσως επειδή ο πελάτης πλήρωσε περισσότερα -- από λάθος, ή επειδή πλήρωσε λιγότερα και επέστρεψε κάποια προϊόντα).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Δημιουργία Πιστωτικού τιμολογίου με γραμμές από το τιμολόγιο προέλευσης.
     invoiceAvoirWithPaymentRestAmount=Δημιουργήστε Πιστωτικό Τιμολόγιο με το υπόλοιπο πριν από την καταβολή του τιμολογίου
     invoiceAvoirLineWithPaymentRestAmount=Πιστωτικό τιμολόγιο για το υπολειπόμενο ανεξόφλητο ποσό
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Διαγραφή Πληρωμής
     ConfirmDeletePayment=Είστε σίγουροι ότι θέλετε να διαγράψετε την πληρωμή;
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Πληρωμές Προμηθευτών
     ReceivedPayments=Ληφθείσες Πληρωμές
     ReceivedCustomersPayments=Ληφθείσες Πληρωμές από πελάτες
    -PayedSuppliersPayments=Οι πληρωμές που καταβάλλονται σε προμηθευτές
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Ληφθείσες Πληρωμές από πελάτες προς έγκριση
     PaymentsReportsForYear=Αναφορές Πληρωμών για %s
     PaymentsReports=Αναφορές Πληρωμών
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Όροι πληρωμής
     PaymentAmount=Σύνολο πληρωμής
     ValidatePayment=Επικύρωση πληρωμής
     PaymentHigherThanReminderToPay=Η πληρωμή είναι μεγαλύτερη από το υπόλοιπο
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Χαρακτηρισμός ως 'Πληρωμένο''
     ClassifyPaidPartially=Χαρακτηρισμός ως 'Μη Εξοφλημένο'
     ClassifyCanceled=Χαρακτηρισμός ως 'Εγκαταλελειμμένο'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Κλειστό (απλήρωτο)
     BillStatusClosedPaidPartially=Πληρωμένο (μερικώς)
     BillShortStatusDraft=Πρόχειρο
     BillShortStatusPaid=Πληρωμένο
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Επεξεργάστηκε
     BillShortStatusCanceled=Εγκαταλελειμμένο
     BillShortStatusValidated=Επικυρωμένο
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Κλειστό
     BillShortStatusClosedPaidPartially=Πληρωμένο (μερικώς)
     PaymentStatusToValidShort=Προς επικύρωση
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Το τιμολόγιο %s δεν υπάρχει
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Από
     BillTo=Στοιχεία Πελάτη
     ActionsOnBill=Ενέργειες στο τιμολόγιο
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Παραμένουν απλήρωτα <b>(%s %s)</b> έχει μια έκπτωση που χορηγήθηκε επειδή η πληρωμή έγινε πριν από την περίοδο. Έχει τακτοποιηθεί το ΦΠΑ με πιστωτικό τιμολόγιο.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Παραμένουν απλήρωτα <b>(%s %s)</b> έχει μια έκπτωση που χορηγήθηκε επειδή η πληρωμή έγινε πριν από την περίοδο. Δέχομαι να χάσω το ΦΠΑ για την έκπτωση αυτή.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Παραμένουν απλήρωτα <b>(%s %s)</b> έχει μια έκπτωση που χορηγήθηκε επειδή η πληρωμή έγινε πριν από την περίοδο. Έχω την επιστροφή του ΦΠΑ για την έκπτωση αυτή χωρίς πιστωτικό τιμολόγιο.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Κακός πελάτης
     ConfirmClassifyPaidPartiallyReasonProductReturned=Τα προϊόντα επιστράφηκαν μερικώς
     ConfirmClassifyPaidPartiallyReasonOther=Ποσό εγκαταλελειμμένο για άλλους λόγους
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Επιλέξτε αυτή την επιλογή αν οι υπόλοιπες δεν ταιριάζουν
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Ένας <b>κακός πελάτης</b>είναι ένας πελάτης που αρνείται να ξεπληρώσει το χρέος του.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Άλλος
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Επικύρωση τιμολογίου
     UnvalidateBill=Μη επαληθευμένο τιμολόγιο
    -NumberOfBills=Πλήθος τιμολογίων
    -NumberOfBillsByMonth=Πλήθος τιμολογίων ανά μήνα
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Ποσό τιμολογίων
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Ποσό των τιμολογίων ανά μήνα (μετά από φόρους)
     ShowSocialContribution=Εμφάνιση κοινωνικών εισφορών / Φορολογικά
     ShowBill=Εμφάνιση τιμολογίου
    @@ -260,9 +262,9 @@ Repeatables=Πρώτυπα
     ChangeIntoRepeatableInvoice=Μετατροπή σε πρότυπο τιμολόγιο
     CreateRepeatableInvoice=Δημιουργία πρότυπο τιμολόγιο
     CreateFromRepeatableInvoice=Δημιουργία από πρότυπο τιμολόγιο
    -CustomersInvoicesAndInvoiceLines=Τιμολόγια πελάτη και γραμμές τιμολογίου
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Πληρωμές και τιμολόγια πελατών
    -ExportDataset_invoice_1=Λίστα Τιμολλογίων πελάτη και γραμμών τιμολογίου
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Πληρωμές και τιμολόγια πελατών
     ProformaBill=Proforma Bill:
     Reduction=Μείωση
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Διεύθυνση χρέωσης
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Κοινωνική εισφορά / Φορολογικά id πληρωμής
     PaymentId=Κωδ. Πληρωμής
     PaymentRef=Αναφ. πληρωμής
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Δεν έχει επιλεγεί τιμολόγιο
     CloneInvoice=Κλωνοποίηση τιμολογίου
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Αριθμός πληρωμών
    +DescTaxAndDividendsArea=Αυτή η περιοχή παρουσιάζει μια σύνοψη όλων των πληρωμών που γίνονται για ειδικά έξοδα. Μόνο εγγραφές με πληρωμή κατά τη διάρκεια του ημερολογιακού έτους περιλαμβάνονται εδώ.
    +NbOfPayments=No. of payments
     SplitDiscount=Χωρισμός έκπτωσης σε δύο μέρη
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Εισαγωγή συνόλου για καθένα από τα δύο μέρη:
    -TotalOfTwoDiscountMustEqualsOriginal=Το σύνολο των δύο νέων τμημάτων πρέπει να είναι ίσο με την αρχική έκπτωση
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Σχετιζόμενο τιμολόγιο
     RelatedBills=Σχετιζόμενα τιμολόγια
     RelatedCustomerInvoices=Σχετικά τιμολόγια πελατών
     RelatedSupplierInvoices=Σχετικά τιμολόγια προμηθευτών
     LatestRelatedBill=Τελευταίο σχετικό τιμολόγιο
    -WarningBillExist=Προσοχή, ένα ή περισσότερα τιμολόγια υπάρχουν ήδη
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Συγχώνευση εργαλείο PDF
     AmountPaymentDistributedOnInvoice=Ποσό πληρωμής κατανεμημένο στο τιμολόγιο
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Σημείωση πληρωμής
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Επιταγή
     PaymentTypeShortCHQ=Επιταγή
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line πληρωμή
    -PaymentTypeShortVAD=On line πληρωμή
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Πρόχειρο
     PaymentTypeFAC=Παράγοντας
     PaymentTypeShortFAC=Παράγοντας
     BankDetails=Πληροφορίες τράπεζας
     BankCode=Κωδικός τράπεζας
    -DeskCode=Κωδικός γραφείου
    +DeskCode=Office code
     BankAccountNumber=Αριθμός Λογαριασμού
    -BankAccountNumberKey=Κωδ.
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=Αριθμός IBAN
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Πληρωμή με έμβασμα στον 
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=τα εμπορεύματα παραμένουν στην κυριότητα του
    -LawApplicationPart3=του πωλητή μέχρι την πλήρη εξαργύρωση
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=η τιμή τους.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Εφαρμογή
    @@ -463,7 +465,7 @@ Cheques=Επιταγές
     DepositId=Id Κατάθεση
     NbCheque=Αριθμός επιταγών
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Χρησιμοποιήστε πελάτη διεύθυνση επικοινωνίας χρέωσης αντί των Πελ./Προμ. διεύθυνση για τα τιμολόγια
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Εμφάνιση όλων των απλήρωτων τιμολογίων
     ShowUnpaidLateOnly=Εμφάνιση μόνο των καθυστερημένων απλήρωτων τιμολογίων
     PaymentInvoiceRef=Πληρωμή τιμολογίου %s
    @@ -474,21 +476,22 @@ Reported=Με καθυστέρηση
     DisabledBecausePayments=Δεν είναι δυνατόν, δεδομένου ότι υπάρχουν ορισμένες πληρωμές
     CantRemovePaymentWithOneInvoicePaid=Δεν μπορείτε να καταργήσετε τη πληρωμή, δεδομένου ότι υπάρχει τουλάχιστον ένα τιμολόγιο που έχει χαρακτηριστεί σαν πληρωμένο
     ExpectedToPay=Αναμενόμενη Πληρωμή
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Πληρωθείτε αυτό το ποσό
    -ClosePaidInvoicesAutomatically=Κατατάσσουν "Καταβάλλονται" όλα τα στάνταρ, κατάσταση ή την αντικατάσταση των τιμολογίων βαρύνει εξ ολοκλήρου.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Ταξινομήσει τα "Πληρωμένα" όλα τα πιστωτικά τιμολόγια που καταβάλλονται εξ ολοκλήρου πίσω.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Όλα τα τιμολόγια χωρίς υπόλοιπο για πληρωμή θα κλείσουν αυτόματα σε κατάσταση "Πληρωμένα".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Πληρωμή
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=Κατάλογος των απλήρωτων τιμολογίων
     NoteListOfYourUnpaidInvoices=Σημείωση: Αυτή η λίστα περιέχει μόνο τα τιμολόγια για λογαριασμό Πελ./Προμ. που συνδέονται με τον εκπρόσωπο πώλησης.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Τιμολόγιο πρότυπο PDF Crabe. Ένα πλήρες πρότυπο τιμολογίου (συνιστώμενο πρότυπο)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Επιστρέψετε αριθμό με μορφή %syymm-nnnn για τυπικά τιμολόγια και %syymm-nnnn για πιστωτικά τιμολόγια όπου yy είναι το έτος, mm είναι ο μήνας και nnnn είναι μια ακολουθία αρίθμησης χωρίς διάλειμμα και χωρίς επιστροφή στο 0
     MarsNumRefModelDesc1=Επιστρέφει αριθμό με μορφή %syymm-nnnn για τυπικά τιμολόγια, %syymm-nnnn για τα τιμολόγια αντικατάστασης, %syymm-nnnn για τα τιμολόγια των καταθέσεων και %syymm-nnnn για πιστωτικά σημειώματα όπου yy είναι το έτος, mm είναι μήνας και nnnn είναι μια ακολουθία χωρίς διακοπή και χωρίς επιστροφή σε 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Σφάλμα : ενημέρωση τιμής στη γραμμή τιμολογίου : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Το τιμολόγιο διαγράφηκε
    diff --git a/htdocs/langs/el_GR/cashdesk.lang b/htdocs/langs/el_GR/cashdesk.lang
    index 9292e676d05..500e6e5bb8f 100644
    --- a/htdocs/langs/el_GR/cashdesk.lang
    +++ b/htdocs/langs/el_GR/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Εμφάνιση εταιρείας
     ShowStock=Εμφάνιση αποθήκης
     DeleteArticle=Κάντε κλικ για να καταργήσετε αυτό το προϊόν
     FilterRefOrLabelOrBC=Αναζήτηση (Κωδ. / Ετικέτα)
    -UserNeedPermissionToEditStockToUsePos=Θα ζητήσει να μειώσει το απόθεμα κατά την δημιουργία του τιμολογίου, έτσι ώστε ο χρήστης που χρησιμοποιεί το POS να χρειάζεται να έχει άδεια για να επεξεργαστείτε το απόθεμα.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr εκτυπωτής αποδείξεων
    +PointOfSale=Σημείο πωλήσεων
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/el_GR/commercial.lang b/htdocs/langs/el_GR/commercial.lang
    index fcd6f86ea4e..76ce0ba49a9 100644
    --- a/htdocs/langs/el_GR/commercial.lang
    +++ b/htdocs/langs/el_GR/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Τηλεφώνημα
     ActionAC_FAX=Αποστολή FAX
     ActionAC_PROP=Αποστολή προσφορας με email
     ActionAC_EMAIL=Αποστολή email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Συναντήσεις
     ActionAC_INT=Παρέμβαση on site
     ActionAC_FAC=Αποστολή Τιμολογίου στον πελάτη με email
    @@ -72,8 +73,8 @@ StatusProsp=Κατάσταση προοπτικής
     DraftPropals=Σχέδιο εμπορικών προσφορών
     NoLimit=Κανένα όριο
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/el_GR/companies.lang b/htdocs/langs/el_GR/companies.lang
    index ef61b1842c5..85e04b4456e 100644
    --- a/htdocs/langs/el_GR/companies.lang
    +++ b/htdocs/langs/el_GR/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Επιλέξτε ένα Πελ./Προμ.
     ConfirmDeleteCompany=Είστε σίγουροι ότι θέλετε να διαγράψετε την εταιρία και όλες τις σχετικές πληροφορίες;
     DeleteContact=Διαγραφή προσώπου επικοινωνίας
     ConfirmDeleteContact=Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την επαφή και όλες τις πληροφορίες της;
    -MenuNewThirdParty=Νέα εγγραφή
    -MenuNewCustomer=Νέος Πελάτης
    -MenuNewProspect=Νέα Προοπτική
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Νέος Ιδιώτης
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create thirdpary
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Αντιπρόσωπος στοιχείου
     Company=Εταιρία
     CompanyName=Όνομα εταιρίας
     AliasNames=Ψευδώνυμο (εμπορικό, εμπορικό σήμα, ...)
    -AliasNameShort=Ψευδώνυμο
    +AliasNameShort=Alias Name
     Companies=Εταιρίες
    -CountryIsInEEC=Η χώρα βρίσκετε στην Ε.Ε.
    -ThirdPartyName=Όνομα Πελ./Προμ.
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Λογαριασμοί
    -ThirdParties=Πελ./Προμ.
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Προοπτικές
     ThirdPartyProspectsStats=Προοπτικές
     ThirdPartyCustomers=Πελάτες
     ThirdPartyCustomersStats=Πελάτες
     ThirdPartyCustomersWithIdProf12=Πελάτες με %s ή %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Τύπος Πελ./Προμ.
    +ThirdPartyType=Type of company
     Individual=Ιδιώτης
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Γονική εταιρία
     Subsidiaries=Θυγατρικές
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Ταχ. Κώδικας
     Town=Πόλη
     Web=Ιστοσελίδα
     Poste= Θέση
    -DefaultLang=Γλώσσα
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Total proposals
    @@ -258,10 +258,10 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Το συντακτικό είναι έγκυρο
    -VATReturn=VAT return
    +VATReturn=Επιστροφή ΦΠΑ
     ProspectCustomer=Προοπτική / Πελάτης
     Prospect=Προοπτική
     CustomerCard=Καρτέλα Πελάτη
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer still has discount credits for <b>%s %s</b>
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Ο πελάτης εξακολουθεί να έχει πιστωτικά τιμολόγια για <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Καμία
    -Supplier=Προμηθευτής
    +Supplier=Vendor
     AddContact=Δημιουργία επαφής
     AddContactAddress=Δημιουργία επαφής/διεύθυνση
     EditContact=Επεξεργασία επαφής
    @@ -303,22 +303,22 @@ AddThirdParty=Δημιουργήστε Πελ./Προμ.
     DeleteACompany=Διαγραφή εταιρίας
     PersonalInformations=Προσωπικά δεδομένα
     AccountancyCode=Λογιστική λογαριασμού
    -CustomerCode=Κωδικός Πελάτη
    -SupplierCode=Vendor code
    -CustomerCodeShort=Κωδικός Πελάτη
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Κωδικός πελάτη, μοναδικός για όλους τους πελάτες
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Απαιτείται αν το στοιχείο είναι πελάτης ή προοπτική
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Η εγκυρότητα καθορίζεται από το άρθρωμα
    -ThisIsModuleRules=Κανόνες αρθρώματος
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Προοπτική σε Επαφή
     CompanyDeleted="%s" διαγράφηκε από την βάση δεδομένων
     ListOfContacts=Λίστα αντιπροσώπων
    -ListOfContactsAddresses=Κατάλογος των επαφών/διευθύνσεων
    -ListOfThirdParties=Λίστα στοιχείων
    -ShowCompany=Show third party
    +ListOfContactsAddresses=Λίστα αντιπροσώπων
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Εμφάνιση Προσώπου Επικοινωνίας
     ContactsAllShort=Όλα (Χωρίς Φίλτρο)
     ContactType=Τύπος αντιπροσώπου επικοινωνίας
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Αυτός ο αντιπρόσωπος δεν αντισ
     NoContactForAnyContract=Αυτός ο αντιπρόσωπος δεν αντιστοιχεί σε  κανένα συμβόλαιο
     NoContactForAnyInvoice=Αυτός ο αντιπρόσωπος δεν αντιστοιχεί σε  κανένα τιμολόγιο
     NewContact=Νέος αντιπρόσωπος επικοινωνίας
    -NewContactAddress=Νέα επαφή/διεύθυνση
    +NewContactAddress=New Contact/Address
     MyContacts=Αντιπρόσωποι επικοινωνίας
     Capital=Κεφάλαιο
     CapitalOf=Capital of %s
     EditCompany=Επεξεργασία Εταιρίας
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Έλεγχος
    -VATIntraCheckDesc=Ο σύνδεσμος <b>%s</b> σας επιτρέπει να επικοινωνήσετε τον ευρωπαϊκό οργανισμό ελέγχου ΑΦΜ. Απαιτείται σύνδεση με το Internet.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Ούτε προοπτική ούτε πελάτης
    -JuridicalStatus=Νομικό καθεστώς
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Προσωπικό
     ProspectLevelShort=Δυναμική
     ProspectLevel=Δυναμική προοπτικής
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Ο αντιπρόσωπος δεν αντιστοιχεί σε κάποιο στοιχείο
     DolibarrLogin=Είσοδος Dolibarr
     NoDolibarrAccess=Χωρίς πρόσβαση στο Dolibarr
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Αντιπρόσωποι και ιδιότητες
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Επίπεδο τιμής
     DeliveryAddress=Διεύθυνση αποστολής
     AddAddress=Δημιουργία διεύθυνσης
    @@ -402,16 +402,16 @@ DeleteFile=Διαγραφή Αρχείου
     ConfirmDeleteFile=Είστε σίγουροι ότι θέλετε να διαγράψετε το αρχείο;
     AllocateCommercial=Έχει αποδοθεί σε αντιπρόσωπο πωλήσεων
     Organization=Οργανισμός
    -FiscalYearInformation=Πληροφορίες Οικονομικού Έτους
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Μήνας Εκκίνησης Οικονομικού Έτους
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Λίστα Προοπτικών
    -ListCustomersShort=Λίστα Πελατών
    -ThirdPartiesArea=Περιοχή Πελ./Προμ. και επαφών
    -LastModifiedThirdParties=Τελευταία %s τροποποιημένα στοιχεία
    -UniqueThirdParties=Σύνολο μοναδικών Πελ./Προμ.
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Ανοίξτε
     ActivityCeased=Κλειστό
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Τρέχον εκκρεμείς λογαριασμός
     OutstandingBill=Μέγιστο. για εκκρεμείς λογαριασμό
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Customer/supplier code is free. This code can be modified at any time.
     ManagingDirectors=Διαχειριστής (ες) ονομασία (CEO, διευθυντής, πρόεδρος ...)
     MergeOriginThirdparty=Διπλότυπο Πελ./Προμ. ( Πελ./Προμ. θέλετε να διαγραφεί)
     MergeThirdparties=Συγχώνευση  Πελ./Προμ.
    -ConfirmMergeThirdparties=Είστε σίγουροι ότι θέλετε να εισάγεται τα στοιχεία αυτού του Πελ./Προμ. στον υπάρχον; Όλα τα συνδεδεμένα πεδία (Τιμολόγια, Παραγγελίες, ....) θα μετακινηθούν στον υπάρχον Πελ./Προμ., και έπειτα αυτός ο Πελ./Προμ. θα διαγραφεί.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/el_GR/dict.lang b/htdocs/langs/el_GR/dict.lang
    index 1b10a64cfd6..ed08791d549 100644
    --- a/htdocs/langs/el_GR/dict.lang
    +++ b/htdocs/langs/el_GR/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Χονγκ Κονγκ
    -CountryIS=Ισλανδία
    +CountryIS=Iceland
     CountryIN=Ινδία
     CountryID=Ινδονησία
     CountryIR=Ιράν
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Βόρεια Κορέα
     CountryKR=Νότια Κορέα
     CountryKW=Κουβέιτ
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Λάτβια
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Τόνγκα
     CountryTT=Trinidad and Tobago
     CountryTR=Τουρκία
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Ουγκάντα
     CountryUA=Ουκρανία
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/el_GR/ecm.lang b/htdocs/langs/el_GR/ecm.lang
    index ca19c547e78..17590e0b196 100644
    --- a/htdocs/langs/el_GR/ecm.lang
    +++ b/htdocs/langs/el_GR/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Έγγραφα που συνδέονται με σχέδια
     ECMDocsByUsers=Έγγραφα που συνδέονται με χρήστες
     ECMDocsByInterventions=Έγγραφα που συνδέονται με τις παρεμβάσεις
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Δεν δημιουργήθηκε φάκελος
     ShowECMSection=Εμφάνιση φακέλου
     DeleteSection=Διαγραφή φακέλου
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/el_GR/errors.lang b/htdocs/langs/el_GR/errors.lang
    index dd51f028504..ef526c8a27a 100644
    --- a/htdocs/langs/el_GR/errors.lang
    +++ b/htdocs/langs/el_GR/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Η τιμή «%s« δεν έχει σωστή μορφή ημ
     ErrorWrongDate=Η ημερομηνία δεν είναι σωστή!
     ErrorFailedToWriteInDir=Αποτυχία εγγραφής στον %s φάκελο
     ErrorFoundBadEmailInFile=Βρέθηκε εσφαλμένη σύνταξη e-mail για %s γραμμές στο αρχείο (%s γραμμή παράδειγμα με e-mail = %s)
    -ErrorUserCannotBeDelete=Ο χρήστης δεν μπορεί να διαγραφεί. Μπορεί να σχετίζεται με οντότητες του Dolibarr.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Ορισμένα από τα απαιτούμενα πεδία δεν έχουν συμπληρωθεί.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Αποτυχία δημιουργίας φακέλου. Βεβαιωθείτε ότι ο Web server χρήστης έχει δικαιώματα να γράψει στο φάκελο εγγράφων του Dolibarr. Αν η <b>safe_mode</b> παράμετρος είναι ενεργοποιημένη για την PHP, ελέγξτε ότι τα αρχεία php του Dolibarr ανήκουν στον web server χρήστη (ή ομάδα).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Παρακαλούμε συμπληρώστε τιμή
     ErrorNoValueForCheckBoxType=Παρακαλούμε συμπληρώστε τιμή για την λίστα επιλογής
     ErrorNoValueForRadioType=Παρακαλούμε συμπληρώστε τιμή για την λίστα επιλογής μίας επιλογής
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Το πεδίο <b>%s</b> δεν πρέπει να περιέχει ειδικούς χαρακτήρες.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Δεν έχει ενεργοποιηθεί λογιστική μονάδα
     ErrorExportDuplicateProfil=Αυτό το όνομα προφίλ υπάρχει ήδη για αυτό το σύνολο των εξαγωγών.
     ErrorLDAPSetupNotComplete=Η αντιστοίχιση Dolibarr-LDAP δεν είναι πλήρης.
     ErrorLDAPMakeManualTest=Ένα αρχείο. Ldif έχει δημιουργηθεί στον φάκελο %s. Προσπαθήστε να το φορτώσετε χειροκίνητα από την γραμμή εντολών για να έχετε περισσότερες πληροφορίες σχετικά με τα σφάλματα.
    -ErrorCantSaveADoneUserWithZeroPercentage=Δεν μπορεί να σώσει μια ενέργεια με &quot;δεν statut ξεκίνησε&quot; αν πεδίο &quot;γίνεται από&quot; είναι επίσης γεμάτη.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Κωδικός που χρησιμοποιείται για τη δημιουργία ήδη υπάρχει.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Δεν είναι δυνατή η διαγραφή της εγγραφής.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Η Javascript πρέπει να είναι άτομα με ειδικές ανάγκες να μην έχουν αυτή τη δυνατότητα εργασίας. Για να ενεργοποιήσετε / απενεργοποιήσετε το Javascript, πηγαίνετε στο μενού Home-> Setup-> Εμφάνιση.
     ErrorPasswordsMustMatch=Και οι δύο πληκτρολογήσει τους κωδικούς πρόσβασης πρέπει να ταιριάζουν μεταξύ τους
    -ErrorContactEMail=Ένα τεχνικό σφάλμα. Παρακαλούμε, επικοινωνήστε με τον διαχειριστή για μετά <b>%s</b> email en παρέχουν την <b>%s</b> κωδικό σφάλματος στο μήνυμά σας, ή ακόμα καλύτερα με την προσθήκη ενός αντιγράφου της οθόνης αυτής της σελίδας.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Λάθος τιμή για <b>%s</b> αριθμό τομέα <b>(«%s»</b> τιμή δεν ταιριάζει regex <b>%s</b> κανόνα)
     ErrorFieldValueNotIn=Λάθος τιμή για <b>%s</b> αριθμό τομέα <b>(«%s»</b> τιμή δεν είναι μια τιμή διαθέσιμη σε <b>%s</b> τομέα της <b>%s</b> πίνακα)
     ErrorFieldRefNotIn=Λάθος τιμή για τον αριθμό <b>%s</b> τομέα <b>(«%s»</b> τιμή δεν είναι <b>%s</b> υφιστάμενων ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Το πρόγραμμα προστασίας απ
     ErrorSpecialCharNotAllowedForField=Ειδικοί χαρακτήρες δεν επιτρέπονται για το πεδίο &quot;%s&quot;
     ErrorNumRefModel=Μια αναφορά υπάρχει στη βάση δεδομένων (%s) και δεν είναι συμβατές με αυτόν τον κανόνα αρίθμηση. Αφαιρέστε το αρχείο ή μετονομαστεί αναφοράς για να ενεργοποιήσετε αυτή την ενότητα.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Σφάλμα στην μάσκα
     ErrorBadMaskFailedToLocatePosOfSequence=Σφάλμα, μάσκα χωρίς τον αύξοντα αριθμό
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Σφάλμα, κακή αξία επαναφορά
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Ο μετρητής πρέπει να έχει περισσότερα από 3 ψηφία
     ErrorSelectAtLeastOne=Σφάλμα. Επιλέξτε τουλάχιστον μία είσοδο.
    -ErrorDeleteNotPossibleLineIsConsolidated=Διαγραφή δεν είναι δυνατόν λόγω εγγραφή συνδέεται με μια τράπεζα transation που συμβιβασμό
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s έχει ανατεθεί σε άλλη τρίτη
     ErrorFailedToSendPassword=Αποτυχία αποστολής κωδικού
     ErrorFailedToLoadRSSFile=Αποτυγχάνει να πάρει RSS feed. Προσπαθήστε να προσθέσετε σταθερή MAIN_SIMPLEXMLLOAD_DEBUG εάν τα μηνύματα λάθους δεν παρέχει αρκετές πληροφορίες.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Χρήστης με <b>%s</b> login δεν θα μπορ
     ErrorLoginHasNoEmail=Αυτός ο χρήστης δεν έχει τη διεύθυνση ηλεκτρονικού ταχυδρομείου. Επεξεργασία ματαιώθηκε.
     ErrorBadValueForCode=Κακό αξία για τον κωδικό ασφαλείας. Δοκιμάστε ξανά με νέα τιμή ...
     ErrorBothFieldCantBeNegative=Πεδία %s %s και δεν μπορεί να είναι τόσο αρνητικές όσο
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Η ποσότητα στην γραμμή στα τιμολόγια των πελατών δεν μπορεί να είναι αρνητική
     ErrorWebServerUserHasNotPermission=Λογαριασμό χρήστη <b>%s</b> χρησιμοποιείται για την εκτέλεση του web server δεν έχει άδεια για τη συγκεκριμένη
     ErrorNoActivatedBarcode=Δεν ενεργοποιείται τύπου barcode
    @@ -138,7 +141,7 @@ ErrorBadFormat=Κακή μορφή!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Σφάλμα υπάρχουν κάποιες παραδόσεις που συνδέονται με την εν λόγω αποστολή. Η διαγραφή απορρίφθηκε.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Δεν μπορείτε να διαγράψετε μια πληρωμή που σχετίζεται με ένα τουλάχιστον τιμολόγιο με καθεστώς πληρωμένο
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Αδύνατη η ανάθεση στην σταθερά '%s'
     ErrorPriceExpression2=Αδυναμία επαναπροσδιορισμού ενσωματωμένης λειτουργίας '%s'
     ErrorPriceExpression3=Μη ορισμένη μεταβλητή '%s' στον ορισμό συνάρτησης
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Μη αναμενόμενο '%s'
     ErrorPriceExpression6=Λάθος αριθμός παραμέτρων (%s δόθηκαν, %s αναμενώμενα)
     ErrorPriceExpression8=Μη αναμενόμενος τελεστής '%s'
     ErrorPriceExpression9=Μη αναμενόμενο σφάλμα
    -ErrorPriceExpression10=Λείπει ο τελεστής '%s'
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Περιμένει '%s'
     ErrorPriceExpression14=Διαίρεση με το μηδέν
     ErrorPriceExpression17=Μη ορισμένη μεταβλητή '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Το πεδίο  <b>%s</b> πρέπει να περιέχει αριθμητική τιμή
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Ένας σελιδοδείκτης με αυτόν
     WarningPassIsEmpty=Προειδοποίηση, password της βάσης δεδομένων είναι άδειο. Αυτή είναι μια τρύπα ασφαλείας. Θα πρέπει να προσθέσετε έναν κωδικό πρόσβασης στη βάση δεδομένων σας και να αλλάξετε conf.php αρχείο σας για να εκφραστεί αυτό.
     WarningConfFileMustBeReadOnly=Προειδοποίηση, config αρχείο σας <b>(htdocs / conf / conf.php)</b> μπορούν να αντικατασταθούν από τον web server. Αυτό είναι ένα σοβαρό κενό ασφαλείας. Τροποποιήστε τα δικαιώματα στο αρχείο για να είναι σε λειτουργία μόνο για ανάγνωση για τη λειτουργία των χρηστών του συστήματος που χρησιμοποιείται από τον διακομιστή Web. Εάν χρησιμοποιείτε Windows και μορφή FAT για το δίσκο σας, πρέπει να ξέρετε ότι αυτό το σύστημα αρχείων δεν επιτρέπει να προσθέσετε δικαιώματα στο αρχείο, οπότε δεν μπορεί να είναι απολύτως ασφαλής.
     WarningsOnXLines=Προειδοποιήσεις στα <b>%s</b> γραμμές κώδικα
    -WarningNoDocumentModelActivated=Κανένα μοντέλο, για την παραγωγή εγγράφων, έχει ενεργοποιηθεί. Ένα μοντέλο θα είναι επιλεγμένο από προεπιλογή μέχρι να ελέγξετε την εγκατάσταση μονάδας σας.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=Όλες οι προειδοποιήσεις ασφαλείας (ορατό από το admin χρήστες μόνο) θα παραμείνει ενεργό για όσο διάστημα η ευπάθεια είναι παρούσα (ή ότι η συνεχής MAIN_REMOVE_INSTALL_WARNING προστίθεται στο Setup-> Άλλες setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/el_GR/help.lang b/htdocs/langs/el_GR/help.lang
    index 3cc437c8d5d..b0b3bc78c54 100644
    --- a/htdocs/langs/el_GR/help.lang
    +++ b/htdocs/langs/el_GR/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Συνδεδεμένοι πραγματικό χρόνο /
     OtherSupport=Άλλες υποστήριξη
     ToSeeListOfAvailableRessources=Για να επικοινωνήσετε / δείτε τους διαθέσιμους πόρους:
     HelpCenter=Κέντρο Βοήθειας
    -DolibarrHelpCenter=Dolibarr Κέντρο Βοήθειας και Υποστήριξης
    -ToGoBackToDolibarr=Διαφορετικά, κάντε κλικ <a href="%s">εδώ για να χρησιμοποιήσετε Dolibarr</a>
    -TypeOfSupport=Πηγή της υποστήριξης
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Κοινότητα (δωρεάν)
     TypeSupportCommercial=Εμπορική
     TypeOfHelp=Τύπος
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Αποδοτικότητα
     TypeHelpOnly=Βοήθεια μόνο
     TypeHelpDev=Βοήθεια + Ανάπτυξη
    -TypeHelpDevForm=Βοήθεια + + Σύσταση Ανάπτυξης
    -ToGetHelpGoOnSparkAngels1=Ορισμένες εταιρείες μπορεί να παρέχουν μια γρήγορη (άμεση κάποτε) και πιο αποτελεσματική online υποστήριξη, αναλαμβάνοντας τον έλεγχο του υπολογιστή σας. Οι βοηθοί μπορούν να βρεθούν στην ιστοσελίδα <b>%s:</b>
    -ToGetHelpGoOnSparkAngels3=Μπορείτε επίσης να πάτε στη λίστα όλων των διαθέσιμων προπονητών για Dolibarr, γι 'αυτό κάντε κλικ στο κουμπί
    -ToGetHelpGoOnSparkAngels2=Μερικές φορές, δεν υπάρχει καμία εταιρεία που ήταν διαθέσιμα τη στιγμή που κάνετε την αναζήτησή σας, οπότε σκεφτείτε να αλλάξετε το φίλτρο για να ψάξουν για &quot;όλα τα διαθεσιμότητα&quot;. Θα είναι σε θέση να στείλει περισσότερα αιτήματα.
    -BackToHelpCenter=Διαφορετικά, κάντε κλικ εδώ για να πάτε <a href="%s">πίσω για να βοηθήσει το κέντρο αρχική σελίδα</a> .
    -LinkToGoldMember=Μπορείτε να καλέσετε ένα από τα πούλμαν που έχουν επιλέξει Dolibarr για τη γλώσσα σας (%s) κάνοντας κλικ Widget του (κατάσταση και μέγιστη τιμή ενημερώνονται αυτόματα):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Υποστηριζόμενες γλώσσες
    -SubscribeToFoundation=Για βοήθεια του έργου Dolibarr, εγγραφείτε στο ίδρυμα
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Για την επίσημη υποστήριξη Dolibarr στη γλώσσα σας: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/el_GR/holiday.lang b/htdocs/langs/el_GR/holiday.lang
    index 24fff5af365..e43fb094c36 100644
    --- a/htdocs/langs/el_GR/holiday.lang
    +++ b/htdocs/langs/el_GR/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Άδειες
    -CPTitreMenu=Άδειες
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Μηνιαία αναφορά
     MenuAddCP=Αίτηση νέας αποχώρησης
    -NotActiveModCP=Θα πρέπει να ενεργοποιήσετε τις Άδειες module για να δείτε αυτή τη σελίδα.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Κάντε αίτηση άδειας
     DateDebCP=Ημερ. έναρξης
     DateFinCP=Ημερ. τέλους
    @@ -15,13 +15,18 @@ ApprovedCP=Εγκεκριμένο
     CancelCP=Ακυρώθηκε
     RefuseCP=Απόρριψη
     ValidatorCP=Έγκριση
    -ListeCP=Λίστα των αδειών
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Θα πρέπει να επανεξεταστεί από
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Περιγραφή
     SendRequestCP=Δημιουργήστε το αίτημα άδειας
     DelayToRequestCP=Tα αιτήματα πρέπει να γίνονται τουλάχιστον <b>%s ημέρα(ες)</b> πριν από τις.
    -MenuConfCP=Ισορροπία αδειών
    -SoldeCPUser=Η ισορροπία των αδειών είναι <b>%s</b> ημέρες.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Πρέπει να επιλέξετε μια ημερομηνία λήξης μεγαλύτερη από την ημερομηνία έναρξης.
     ErrorSQLCreateCP=Παρουσιάστηκε σφάλμα στην SQL κατά τη διάρκεια της δημιουργίας:
     ErrorIDFicheCP=Παρουσιάστηκε σφάλμα, η αίτηση άδειας δεν υπάρχει.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=Δεν έχετε άδεια για να διαβάσετε αυ
     InfosWorkflowCP=Πληροφορίες για την ροή εργασιών
     RequestByCP=Ζητήθηκε από
     TitreRequestCP=Αφήστε το αίτημα
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Αριθμός των ημερών για τις άδειες που καταναλώνεται
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Επεξεργασία
     DeleteCP=Διαγραφή
     ActionRefuseCP=Απορρίφθηκε
    @@ -59,6 +71,7 @@ DateRefusCP=Ημερομηνία της άρνησης
     DateCancelCP=Ημερομηνία της ακύρωσης
     DefineEventUserCP=Αναθέστε μια έκτακτη άδεια για έναν χρήστη
     addEventToUserCP=Αφήστε την ανάθεση
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Λόγος
     UserCP=Χρήστης
     ErrorAddEventToUserCP=Παρουσιάστηκε σφάλμα κατά την προσθήκη τις έκτακτης άδειας.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Ενημερώθηκε με επιτυχία.
     Module27130Name= Διαχείριση των αιτήσεων αδειών
     Module27130Desc= Διαχείριση των αιτήσεων αδειών
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Επικύρωση των αιτήσεων για τις άδειες
     HolidaysToValidateBody=Παρακάτω είναι ένα αίτημα άδειας για την επικύρωση
     HolidaysToValidateDelay=Αυτή η αίτηση αδείας θα πραγματοποιηθεί εντός προθεσμίας μικρότερης των %s ημερών.
    -HolidaysToValidateAlertSolde=Ο χρήστης που έκανε αυτό το αίτημα δεν έχει αρκετές διαθέσιμες ημέρες.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Επικυρώθηκαν οι αιτήσεις άδειας
     HolidaysValidatedBody=Η αίτηση αδείας %s στο %s έχει επικυρωθεί.
     HolidaysRefused=Αίτηση αρνήθηκε
    @@ -103,4 +121,9 @@ HolidaysCanceled=Ακυρώθηκε το αίτημα αδείας
     HolidaysCanceledBody=Η αίτηση αδείας σας για %s στο %s έχει ακυρωθεί.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/el_GR/install.lang b/htdocs/langs/el_GR/install.lang
    index abac0b9205b..8810046bc38 100644
    --- a/htdocs/langs/el_GR/install.lang
    +++ b/htdocs/langs/el_GR/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Απλά ακολουθήστε τις οδηγίες βήμα προς βήμα.
     MiscellaneousChecks=Ελέγχος Προαπαιτούμενων
     ConfFileExists=Το αρχείο ρυθμίσεων <b>%s</b> υπάρχει.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Το αρχείο ρυθμίσεων <b>%s</b> δεν υπάρχει και δεν μπορεί να δημιουργηθεί!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Το αρχείο ρυθμίσεων <b>%s</b>θα μπορούσε να δημιουργηθεί.
    -ConfFileIsNotWritable=Το αρχείο ρυθμίσεων <b>%s</b> δεν είναι εγγράψιμο. Ελέγξτε τις άδειες. Για πρώτη εγκατάσταση, ο web server σας θα πρέπει να έχει άδεια για να μπορεί να εγγράφει σε αυτό το αρχείο κατά την διάρκεια της διαδικασίας ρύθμισης. (Π.χ. "chmod 666" σε ένα ΛΣ τύπου Unix).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Το αρχείο ρυθμίσεων <b>%s</b> είναι εγγράψιμο.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Φορτώσετε εκ νέου όλες τις πληροφορίες από το αρχείο ρυθμίσεων.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Η PHP υποστηρίζει συνεδρίες.
     PHPSupportPOSTGETOk=Η PHP υποστηρίζει μεταβλητές POST και GET.
    -PHPSupportPOSTGETKo=Είναι πιθανόν ότι οι ρυθμίσεις σας PHP δεν υποστηρίζουν τις μεταβλητές POST και/ή GET. Ελέγξτε την παράμετρο <b>variables_order</b> στο php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=Η php υποστηρίζει Curl
    -PHPSupportUTF8=Αυτή η PHP υποστηρίζει UTF8 λειτουργίες.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Η εγκατάσταση της php δεν υποστηρίζει Curl
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Κατάλογος %s δεν υπάρχει.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Απέτυχε η δημιουργία της βάσης δεδομένων '%s'.
     ErrorFailedToConnectToDatabase=Απέτυχε η σύνδεση με τη βάση δεδομένων '%s'.
     ErrorDatabaseVersionTooLow=Η έκδοση της βάσης δεδομένων (%s), είναι πολύ παλιά. %s Έκδοση ή μεγαλύτερη απαιτείται.
     ErrorPHPVersionTooLow=Έκδοση της PHP είναι πολύ παλιά.  Έκδοση %s απαιτείται
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Η βάση δεδομένων '%s' υπάρχει ήδη.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Πάρα πολύ παλιά έκδοση του προγράμματος περιήγησης. Αναβάθμιση του προγράμματος περιήγησης σας σε μια πρόσφατη έκδοση του Firefox, Chrome ή Opera συστήνεται.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=Έκδοση PHP
     License=Χρήση άδειας
     ConfigurationFile=Αρχείο ρυθμίσεων
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr βάση δεδομένων
     DatabaseType=Τύπος βάσης δεδομένων
     DriverType=Τύπος Driver
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Θύρα του διακομιστή βάσης δεδομένων. Αφήστε το πεδίο κενό αν δεν το γνωρίζετε.
     DatabaseServer=Server της βάσης δεδομένων
     DatabaseName=Όνομα της βάσης δεδομένων
    -DatabasePrefix=Πρόθεμα πίνακα της βάσης δεδομένων
    -AdminLogin=Είσοδος ιδιοκτήτη της βάσης δεδομένων Dolibarr.
    -PasswordAgain=Ξαναγράψτε τον κωδικό
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Κωδικός ιδιοκτήτη της βάσης δεδομένων Dolibarr.
     CreateDatabase=Δημιουργία βάσης δεδομένων
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, useless if your database and your database login already exists (like when you're hosted by a web hosting provider).
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Αποθήκευση τιμών
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Σύνδεση με το διακομιστή
     DatabaseCreation=Δημιουργία βάσης δεδομένων
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Επιτυχής δημουργία  σύνδεσης του διαχειριστή '<b>%s</b>' στο Dolibarr
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Αποτυχία δημιουργίας λογαριασμού διαχειριστή του Dolibarr.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should remove the <b>install<b> directory or rename it to <b>install.lock</b> in order to avoid its malicious use.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=Η στοχευμένη έκδοση (%s) έχει ένα κενό διάφορες εκδόσεις, ώστε να εγκαταστήσετε οδηγός θα επανέλθει στο επόμενο μετανάστευση προτείνουμε μια φορά αυτό θα τελειώσει.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Μετανάστευση τελειώσει
    -LastStepDesc=<strong>Τελευταίο βήμα:</strong> Καθορίστε εδώ login και password που σκοπεύετε να χρησιμοποιήσετε για να συνδεθείτε με το λογισμικό. Να μην χάσετε αυτή, όπως είναι ο λογαριασμός για να επιτρέψει να διαχειριστεί όλες τις άλλες.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Ενεργοποίηση %s ενότητα
     ShowEditTechnicalParameters=Κάντε κλικ εδώ για να δείτε/επεξεργαστείτε προηγμένες παραμέτρους (κατάσταση έμπειρου χρήστη)
    -WarningUpgrade=Προσοχή:\nΔημιουργήσατε αντίγραφο της βάσης δεδομένων;\nΑυτό συνιστάται: για παράδειγμα, εξ αιτίας μερικών σφαλμάτων στα συστήματα των βάσεων δεδομένων (για παράδειγμα έκδοση mysql  5.5.40/41/42/43), κάποια δεδομένα ή πίνακες ενδεχομένως να χαθούν κατά τη διάρκεια αυτής της εργασίας, οπότε  συνιστάται να έχετε ένα πλήρες αντίγραφο της βάσης δεδομένων προτού ξεκινήσετε τη μεταφορά δεδομένων.\n\n\nΚάντε Click στο OK για να ξεκινήση η διαδικασία..\n
    -ErrorDatabaseVersionForbiddenForMigration=Η έκδοση της βάσης δεδομένων είναι %s. Περιέχει κρίσιμο σφάλμα μπορεί να οδηγεί σε απώλεια δεδομένων σε περίπτωση αλλαγής της δομής της βάσης δεδομένων, όπως απαιτείται κατά την διαδικασία μεταφοράς. Για αυτό το λόγο, η μεταφορά της βάσης δεδομένων δε θα είναι επιτρεπτή μέχρι την αναβάθμισή της νεότερη και διορθωμένη έκδοση (λίστα γνωστών εκδόσεων με σφάλματα: %s)
    -KeepDefaultValuesWamp=Χρησιμοποιείτε τον οδηγό εγκατάστασης του Dolibarr από το DoliWamp, οπότε οι προτεινόμενες ρυθμίσεις είναι ήδη προεπιλεγμένες. Αλλάξτε τις μόνο σε περίπτωση που γνωρίζετε ακριβώς τι κάνετε.
    -KeepDefaultValuesDeb=Χρησιμοποιείτε τον οδηγό εγκατάστασης του Dolibarr από ένα πακέτο Linux (Ubuntu, Debian, Fedora...), οπότε οι προτεινόμενες ρυθμίσεις είναι ήδη προεπιλεγμένες. Μόνο ο κωδικός του ιδιοκτήτη της βάσης δεδομένων που θα δημιουργηθεί πρέπει να συμπληρωθεί. Αλλάξτε τις υπόλοιπες παραμέτρους μόνο σε περίπτωση που γνωρίζετε ακριβώς τι κάνετε.
    -KeepDefaultValuesMamp=Χρησιμοποιείτε τον οδηγό εγκατάστασης του Dolibarr από το DoliMamp, οπότε οι προτεινόμενες ρυθμίσεις είναι ήδη προεπιλεγμένες. Αλλάξτε τις μόνο σε περίπτωση που γνωρίζετε ακριβώς τι κάνετε.
    -KeepDefaultValuesProxmox=Χρησιμοποιείτε τον οδηγό εγκατάστασης του Dolibarr από μία εικονική συσκευή Proxmox, οπότε οι προτεινόμενες ρυθμίσεις είναι ήδη προεπιλεγμένες. Αλλάξτε τις μόνο σε περίπτωση που γνωρίζετε ακριβώς τι κάνετε.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Επιτυχής αναβάθμιση
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Επιτυχής διόρθωση κενής ημερομηνίας συμβολαίου
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Ενημέρωση στοιχεία για τις δράσεις
     MigrationPaymentMode=Η μεταφορά δεδομένων για την κατάσταση πληρωμής
     MigrationCategorieAssociation=Μετακίνηση των κατηγοριών
    -MigrationEvents=Μετακίνηση γεγονότων για να προσθέσετε ιδιοκτήτη γεγονότων σε πίνακα εκχώρησης
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Ενημέρωση φορέα τιμών πεδίου στον πίνακα llx_societe_remise
     MigrationRemiseExceptEntity=Ενημέρωση φορέα τιμών πεδίου στον πίνακα llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Επαναφόρτωση ενθεμάτων %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Εμφάνιση μη διαθέσιμων επιλογών
    -HideNotAvailableOptions=Απόκρυψη μη μη διαθέσιμων επιλογών
    -ErrorFoundDuringMigration=Αναφέρθηκε σφάλμα κατά τη διαδικασία μεταφοράς, οπότε το επόμενο βήμα δεν είναι δυνατό. Για να αγνοήστε το σφάλμα, μπορείτε να <a href="%s">πατήσετε εδώ</a>, αλλά η εφαρμογή ή κάποιες λειτουργείες μπορεί να μην λειτουργού σωστά μέχρι να διορθωθεί.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/el_GR/interventions.lang b/htdocs/langs/el_GR/interventions.lang
    index 68f806912aa..f4e5510e6e1 100644
    --- a/htdocs/langs/el_GR/interventions.lang
    +++ b/htdocs/langs/el_GR/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Παρεμβάσεις
     InterventionCard=Καρτέλα παρέμβασης
     NewIntervention=Νέα παρέμβαση
     AddIntervention=Δημιουργία παρέμβασης
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Λίστα παρεμβάσεων
     ActionsOnFicheInter=Δράσεις για την παρέμβαση
     LastInterventions=Τελευταίες %s παρεμβάσεις
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Στατιστικά παρεμβάσεων
    -NbOfinterventions=Αρ. καρτών παρέμβασης
    -NumberOfInterventionsByMonth=Αρ. καρτών παρέμβασης  ανά μήνα (ημερομηνία επικύρωσης)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Κωδ παρέμβασης
    diff --git a/htdocs/langs/el_GR/main.lang b/htdocs/langs/el_GR/main.lang
    index 83e30ee288c..a6a087898e8 100644
    --- a/htdocs/langs/el_GR/main.lang
    +++ b/htdocs/langs/el_GR/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Αποτυχία αποστολής mail (αποστολέ
     ErrorFileNotUploaded=Το αρχείο δεν φορτώθηκε. Βεβαιωθείτε ότι το μέγεθος δεν υπερβαίνει το μέγιστο επιτρεπόμενο όριο, ότι υπάρχει διαθέσιμος χώρος στο δίσκο και ότι δεν υπάρχει ήδη ένα αρχείο με το ίδιο όνομα σε αυτόν τον κατάλογο.
     ErrorInternalErrorDetected=Εντοπίστηκε Σφάλμα
     ErrorWrongHostParameter=Λάθος παράμετρος διακομιστή
    -ErrorYourCountryIsNotDefined=Η χώρα σας δεν ορίστηκε. Πηγαίνεται στις Ρυθμίσεις - Εταιρία και ρυθμίστε την
    -ErrorRecordIsUsedByChild=Αποτυχία διαγραφής εγγραφής. Η εγγραφή χρησιμοποιείται από τουλάχιστον μια θυγατρική εγγραφή
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Εσφαλμένη Τιμή
     ErrorWrongValueForParameterX=Εσφαλμένη Τιμή για την παράμετρο %s
     ErrorNoRequestInError=Δεν υπάρχει αίτημα στο Σφάλμα
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Διπλόεγγραφή (Διπλή τιμή σε πεδίο με ξεχωριστές τιμές)
    -ErrorSomeErrorWereFoundRollbackIsDone=Εμφανίστηκαν λάθη. Όλες οι αλλαγές θα αναιρεθούν
    -ErrorConfigParameterNotDefined=Η παράμετρος <b>%s</b> δεν είναι καθορισμένη στο αρχείο ρυθμίσεων του Dolibarr <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Αποτυχία εύρεσης του χρήστη <b>%s</b> στην βάση δεδομένων του Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Σφάλμα, δεν ορίστηκαν ποσοστά φόρων για την χώρα  '%s'.
     ErrorNoSocialContributionForSellerCountry=Σφάλμα, καμία κοινωνική εισφορά / φόροι ορίζονται για τη χώρα '%s'.
     ErrorFailedToSaveFile=Σφάλμα, αποτυχία αποθήκευσης αρχείου
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Δεν έχετε εξουσιοδότηση για να το πραγματοποιήσετε
     SetDate=Ορισμός ημερομηνίας
     SelectDate=Επιλέξτε μια ημερομηνία
    @@ -78,10 +78,10 @@ FileRenamed=Το αρχείο μετονομάστηκε με επιτυχία
     FileGenerated=Το αρχείο δημιουργήθηκε με επιτυχία
     FileSaved=The file was successfully saved
     FileUploaded=Το αρχείο ανέβηκε με επιτυχία
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=Επιλέχθηκε ένα αρχείο για επισύναψη, αλλά δεν έχει μεταφερθεί ακόμη. Πατήστε στο "Επισύναψη Αρχείου".
    -NbOfEntries=Πλήθος εγγραφών
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Online βοήθεια (απαιτείται σύνδεση στο internet)
     GoToHelpPage=Βοήθεια
     RecordSaved=Η εγγραφή αποθηκεύτηκε
    @@ -142,6 +142,7 @@ Closed=Κλειστή
     Closed2=Κλειστή
     NotClosed=Not closed
     Enabled=Ενεργή
    +Enable=Ενεργοποίηση
     Deprecated=Παρωχημένο
     Disable=Απενεργοποίηση
     Disabled=Ανενεργή
    @@ -153,7 +154,7 @@ Update=Ανανέωση
     Close=Κλείσιμο
     CloseBox=Remove widget from your dashboard
     Confirm=Επιβεβαίωση
    -ConfirmSendCardByMail=Είστε σίγουροι πως θέλετε να στείλετε το περιεχόμενο αυτής της κάρτας με email στο <b>%s</b>;
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Διαγραφή
     Remove=Απομάκρυνση
     Resiliate=Τερματισμός
    @@ -327,7 +328,7 @@ Copy=Αντιγραφή
     Paste=Επικόλληση
     Default=Προκαθορ.
     DefaultValue=Προκαθορισμένη Τιμή
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Τιμή
     PriceCurrency=Price (currency)
     UnitPrice=Τιμή Μονάδος
    @@ -347,7 +348,7 @@ AmountTTCShort=Ποσό (με Φ.Π.Α.)
     AmountHT=Ποσό (χ. Φ.Π.Α.)
     AmountTTC=Ποσό (με Φ.Π.Α.)
     AmountVAT=Ποσό Φόρου
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Ποσό (χωρίς φόρους), αρχικό νόμισμα
    @@ -428,7 +429,7 @@ ActionNotApplicable=Δεν ισχύει
     ActionRunningNotStarted=Δεν έχουν ξεκινήσει
     ActionRunningShort=Σε εξέλιξη
     ActionDoneShort=Ολοκληρωμένες
    -ActionUncomplete=Μη ολοκληρωμένη
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Επαφές για αυτό το στοιχείο
     ContactsAddressesForCompany=Επαφές/Διευθύνσεις για αυτό το στοιχείο.
     AddressesForCompany=Διευθύνσεις για αυτό τον Πελ./Προμ.
     ActionsOnCompany=Ενέργειες για αυτό το στοιχείο
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Εκδηλώσεις σχετικά με αυτό το μέλος
     ActionsOnProduct=Events about this product
     NActionsLate=%s καθυστερ.
    @@ -453,8 +455,8 @@ Generate=Δημιουργία
     Duration=Διάρκεια
     TotalDuration=Συνολική Διάρκεια
     Summary=Σύνοψη
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Σε διάθεση
     NotYetAvailable=Δεν είναι ακόμη σε διάθεση
    @@ -468,7 +470,7 @@ and=και
     or=ή
     Other=Άλλο
     Others=Άλλα-οι
    -OtherInformations=Άλλες Πληροφορίες
    +OtherInformations=Other information
     Quantity=Ποσότητα
     Qty=Ποσ.
     ChangedBy=Τροποποιήθηκε από
    @@ -495,7 +497,7 @@ Received=Παραλήφθηκε
     Paid=Πληρωμές
     Topic=Αντικείμενο
     ByCompanies=Ανά στοιχείο
    -ByUsers=By user
    +ByUsers=Ανα χρήστη
     Links=Σύνδεσμοι
     Link=Σύνδεσμος
     Rejects=Απορρίψεις
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Καθυστερ.
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Φωτογραφία
     Photos=Φωτογραφίες
    @@ -530,18 +532,6 @@ September=Σεπτέμβριος
     October=Οκτώβριος
     November=Νοέμβριος
     December=Δεκέμβριος
    -JanuaryMin=Ιαν
    -FebruaryMin=Φεβ
    -MarchMin=Μαρ
    -AprilMin=Απρ
    -MayMin=Μάι
    -JuneMin=Ιούν
    -JulyMin=Ιούλ
    -AugustMin=Αύγ
    -SeptemberMin=Σεπ
    -OctoberMin=Οκτ
    -NovemberMin=Νοέ
    -DecemberMin=Δεκ
     Month01=Ιανουάριος
     Month02=Φεβρουάριος
     Month03=Μάρτιος
    @@ -646,6 +636,8 @@ SendMail=Αποστολή email
     EMail=E-mail
     NoEMail=Χωρίς email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Χωρείς κινητό τηλέφωνο
     Owner=Ιδιοκτήτης
     FollowingConstantsWillBeSubstituted=Οι ακόλουθες σταθερές θα αντικαταστασθούν με τις αντίστοιχες τιμές
    @@ -677,7 +669,7 @@ NeverReceived=Δεν παραλήφθηκε
     Canceled=Ακυρώθηκε
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=Μπορείτε να ορίσετε την προεπιλεγμένη τιμή που θα χρησιμοποιείται κατά τη δημιουργία μίας νέας εγγραφής στις ρυθμίσεις του module
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Χρώμα
     Documents=Συνδεδεμένα Αρχεία
     Documents2=Έγγραφα
    @@ -716,15 +708,15 @@ Merge=Ενσωμάτωση
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Εμγάνιση σελίδας για εκτύπωση
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Σφάλμα συστήματος
     CoreErrorMessage=Λυπούμαστε, παρουσιάστηκε ένα σφάλμα. Επικοινωνήστε με το διαχειριστή του συστήματος σας για να ελέγξετε τα αρχεία καταγραφής ή να απενεργοποιήστε το $ dolibarr_main_prod = 1 για να πάρετε περισσότερες πληροφορίες.
     CreditCard=Πιστωτική Κάρτα
     ValidatePayment=Επικύρωση πληρωμής
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Τα πεδία <b>%s</b> είναι υποχρεωτικά
    -FieldsWithIsForPublic=Τα πεδία με <b>%s</b> εμφανίζονται στην δημόσια λίστα των μελών. Αν δεν επιθυμείτε κάτι τέτοιο αποεπιλέξτε την επιλογή "Δημόσιο".
    -AccordingToGeoIPDatabase=(σύμφωνα με το GeoIP)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Γραμμή
     NotSupported=Χωρίς Υποστήριξη
     RequiredField=Απαιτούμενο Πεδίο
    @@ -732,6 +724,8 @@ Result=Αποτέλεσμα
     ToTest=Δοκιμή
     ValidateBefore=Η καρτέλα πρέπει να επικυρωθεί πριν χρησιμοποιήσετε αυτή τη δυνατότητα
     Visibility=Ορατότητα
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Προσωπικό
     Hidden=Κρυφό
     Resources=Πόροι
    @@ -750,6 +744,7 @@ LinkTo=Σύνδεση σε
     LinkToProposal=Σύνδεση σε προσφορά
     LinkToOrder=Σύνδεση με παραγγελία
     LinkToInvoice=Σύνδεση σε τιμολόγιο
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Σύνδεση σε παραγγελία προμηθευτή
     LinkToSupplierProposal=Σύνδεση σε προσφορά προμηθευτή
     LinkToSupplierInvoice=Σύνδεση σε τιμολόγιο προμηθευτή
    @@ -758,6 +753,7 @@ LinkToIntervention=Σύνδεση σε παρέμβαση
     CreateDraft=Δημιουργία σχεδίου
     SetToDraft=Επιστροφή στο προσχέδιο
     ClickToEdit=Κάντε κλικ για να επεξεργαστείτε
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=Μέχρι την ημέρα
     BySalesRepresentative=Με τον αντιπρόσωπο πωλήσεων
     LinkedToSpecificUsers=Συνδέεται με μια συγκεκριμένη επαφή χρήστη
     NoResults=Δεν υπάρχουν αποτελέσματα
    -AdminTools=Εργαλεία διαχειριστή
    +AdminTools=Admin Tools
     SystemTools=Εργαλεία συστήματος
     ModulesSystemTools=Εργαλεία πρόσθετων
     Test=Δοκιμή
     Element=Στοιχείο
     NoPhotoYet=Δεν υπαρχουν διαθεσημες φωτογραφίες ακόμα
     Dashboard=Πίνακας ελέγχου 
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Εκπίπτουν
     from=από
     toward=προς
    @@ -802,7 +798,7 @@ PrintFile=Εκτύπωση του αρχείου %s
     ShowTransaction=Εμφάνιση καταχώρισης σε τραπεζικό λογαριασμό
     ShowIntervention=Εμφάνιση παρέμβασης
     ShowContract=Εμφάνιση συμβολαίου
    -GoIntoSetupToChangeLogo=Πηγαίνετε Αρχική - Ρυθμίσεις - Εταιρία να αλλάξει το λογότυπο ή πηγαίνετε Αρχική - Ρυθμίσεις - Προβολή για απόκρυψη.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Άρνηση
     Denied=Άρνηση
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Ειλικρινώς
     DeleteLine=Διαγραφή γραμμής
     ConfirmDeleteLine=Είστε σίγουρος ότι θέλετε να διαγράψετε αυτή τη γραμμή;
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=Δεν έχει επιλεγεί εγγραφή
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Σχετικά Αντικείμενα
     ClassifyBilled=Χαρακτηρισμός ως τιμολογημένο
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Ημερολόγιο
     GroupBy=Ομαδοποίηση κατά...
     ViewFlatList=Προβολή λίστας
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Ιστοτοπός
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Αναφορά εξόδων
     ExpenseReports=Αναφορές εξόδων
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Ενέργειες
    -EMailTemplates=Πρότυπα email
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Έργο
     Projects=Έργα
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Άδειες
     LineNb=Line no.
     IncotermLabel=Διεθνείς Εμπορικοί Όροι
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Δευτέρα
     Tuesday=Τρίτη
    @@ -927,7 +932,7 @@ SearchIntoInterventions=Παρεμβάσεις
     SearchIntoContracts=Συμβόλαια
     SearchIntoCustomerShipments=Αποστολές Πελάτη
     SearchIntoExpenseReports=Αναφορές εξόδων
    -SearchIntoLeaves=Άδειες
    +SearchIntoLeaves=Leave
     CommentLink=Σχόλια
     NbComments=Number of comments
     CommentPage=Comments space
    @@ -935,7 +940,7 @@ CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Όλοι
     PayedBy=Πληρώθηκε από
    -PayedTo=Payed to
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Ανάθεση σε
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/el_GR/other.lang b/htdocs/langs/el_GR/other.lang
    index 26b075d8b34..75a7503bb30 100644
    --- a/htdocs/langs/el_GR/other.lang
    +++ b/htdocs/langs/el_GR/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Κωδικός ασφαλείας
     NumberingShort=N°
     Tools=Εργαλεία
     TMenuTools=Εργαλεία
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Γενέθλια
     BirthdayDate=Ημερομηνία γενεθλίων
     DateToBirth=Ημερομηνία γεννήσεως
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Μήνυμα για την επικυρωμένη σελίδα επιστροφή πληρωμής
     MessageKO=Μήνυμα για την ακύρωση σελίδα επιστροφή πληρωμής
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Προσθήκη επαφής στην παρέμβαση
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Παρέμβαση αποστέλλεται μέσω ταχυδρομείου
     Notify_ORDER_VALIDATE=Η παραγγελία πελάτη επικυρώθηκε
     Notify_ORDER_SENTBYMAIL=Για πελατών αποστέλλονται με το ταχυδρομείο
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Για Προμηθευτής σταλούν ταχυδρομικώς
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Παραγγελία του προμηθευτή
     Notify_ORDER_SUPPLIER_APPROVE=Η παραγγελία προμηθευτή εγγρίθηκε
     Notify_ORDER_SUPPLIER_REFUSE=Η παραγγελία προμηθευτή απορρίφθηκε
     Notify_PROPAL_VALIDATE=Η εμπ. πρόταση πελάτη επικυρώθηκε
    -Notify_PROPAL_CLOSE_SIGNED=Προσφορά πελατών έκλεισε έχει υπογραφεί
    -Notify_PROPAL_CLOSE_REFUSED=Προσφορά πελατών έκλεισε απορρίφθηκε
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Εμπορικές προτάσεις που αποστέλλονται ταχυδρομικώς
     Notify_WITHDRAW_TRANSMIT=Μετάδοση απόσυρση
     Notify_WITHDRAW_CREDIT=Πιστωτικές απόσυρση
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Τρίτο κόμμα δημιουργήθηκε
     Notify_COMPANY_SENTBYMAIL=Μηνύματα που αποστέλλονται από την κάρτα Πελ./Προμ.
     Notify_BILL_VALIDATE=Το τιμολόγιο πελάτη επικυρώθηκε
     Notify_BILL_UNVALIDATE=Τιμολόγιο του Πελάτη μη επικυρωμένο
    -Notify_BILL_PAYED=Τιμολογίου Πελατών payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Τιμολογίου Πελατών ακυρώσεις
     Notify_BILL_SENTBYMAIL=Τιμολογίου Πελατών σταλούν ταχυδρομικώς
     Notify_BILL_SUPPLIER_VALIDATE=Τιμολόγιο Προμηθευτή επικυρωθεί
    -Notify_BILL_SUPPLIER_PAYED=Τιμολόγιο Προμηθευτή payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Τιμολόγιο Προμηθευτή σταλούν ταχυδρομικώς
     Notify_BILL_SUPPLIER_CANCELED=Το τιμολόγιο του προμηθευτή ακυρώθηκε
     Notify_CONTRACT_VALIDATE=Επικυρωμένη σύμβαση
     Notify_FICHEINTER_VALIDATE=Επικυρωθεί Παρέμβαση
    +Notify_FICHINTER_ADD_CONTACT=Προσθήκη επαφής στην παρέμβαση
    +Notify_FICHINTER_SENTBYMAIL=Παρέμβαση αποστέλλεται μέσω ταχυδρομείου
     Notify_SHIPPING_VALIDATE=Αποστολή επικυρωθεί
     Notify_SHIPPING_SENTBYMAIL=Αποστολές αποστέλλονται με το ταχυδρομείο
     Notify_MEMBER_VALIDATE=Επικυρωθεί μέλη
    @@ -71,24 +70,29 @@ Notify_PROJECT_CREATE=Δημιουργία έργου
     Notify_TASK_CREATE=Η εργασία δημιουργήθηκε
     Notify_TASK_MODIFY=Η εργασία τροποποιήθηκε
     Notify_TASK_DELETE=Η εργασία διαγράφηκε
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Δείτε την ρύθμιση του module %s
     NbOfAttachedFiles=Πλήθος επισυναπτώμενων αρχείων/εγγράφων
     TotalSizeOfAttachedFiles=Συνολικό μέγεθος επισυναπτώμενων αρχείων/εγγράφων
     MaxSize=Μέγιστο μέγεθος
     AttachANewFile=Επισύναψη νέου αρχείου/εγγράφου
     LinkedObject=Συνδεδεμένα αντικείμενα
    -NbOfActiveNotifications=Αριθμός κοινοποιήσεων (Αριθμός emails παραλήπτη)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
    @@ -172,7 +176,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Καθ %s ταυτότητα</b> είναι μια ενημερωτική ανάλογα με τρίτη χώρα μέρος. <br> Για παράδειγμα, για <b>%s</b> χώρα, είναι <b>%s</b> κώδικα.
     DolibarrDemo=Dolibarr ERP / CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +189,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=Μια νέα παρέμβαση %s έχει ανατεθεί σε εσάς
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Η %s παρέμβαση έχει επικυρωθεί.
     EMailTextInvoiceValidated=Το τιμολόγιο %s έχει επικυρωθεί.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Η %s πρόταση έχει επικυρωθεί.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Η σειρά %s έχει επικυρωθεί.
    @@ -197,6 +202,10 @@ EMailTextOrderApprovedBy=Η σειρά %s έχει εγκριθεί από %s.
     EMailTextOrderRefused=Η σειρά %s έχει απορριφθεί.
     EMailTextOrderRefusedBy=Η σειρά %s έχει απορριφθεί από %s.
     EMailTextExpeditionValidated=Η αποστολη %s  έχει επικυρωθεί.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Η εισαγωγή των δεδομένων που
     DolibarrNotification=Αυτόματη ειδοποίηση
     ResizeDesc=Εισάγετε το νέο πλάτος <b>ή το</b> νέο ύψος. Λόγος θα διατηρηθούν κατά τη διάρκεια της αλλαγής μεγέθους ...
    @@ -204,7 +213,7 @@ NewLength=Νέο βάρος
     NewHeight=Νέο ύψος
     NewSizeAfterCropping=Νέο μέγεθος μετά το ψαλίδισμα
     DefineNewAreaToPick=Ορίστε νέα περιοχή στην εικόνα για να πάρει (αριστερό κλικ στην εικόνα στη συνέχεια σύρετε μέχρι να φτάσετε στην απέναντι γωνία)
    -CurrentInformationOnImage=Το εργαλείο αυτό σχεδιάστηκε για να σας βοηθήσει να αλλάξετε το μέγεθος ή την καλλιέργεια μιας εικόνας. Πρόκειται για πληροφορίες σχετικά με τις τρέχουσες επεξεργασμένη εικόνα
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Επεξεργαστής εικόνας
     YouReceiveMailBecauseOfNotification=Αυτό το μήνυμα επειδή το email σας έχει προστεθεί στη λίστα των στόχων που πρέπει να ενημερώνεται για συγκεκριμένα γεγονότα σε %s λογισμικό της %s.
     YouReceiveMailBecauseOfNotification2=Το γεγονός είναι το ακόλουθο:
    @@ -235,6 +244,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +261,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=Σύνδεσμος URL της σελίδας
     WEBSITE_TITLE=Τίτλος
     WEBSITE_DESCRIPTION=Περιγραφή
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Λέξεις κλειδιά
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/el_GR/paybox.lang b/htdocs/langs/el_GR/paybox.lang
    index 40f9ec273a7..20d737872ff 100644
    --- a/htdocs/langs/el_GR/paybox.lang
    +++ b/htdocs/langs/el_GR/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Paybox μονάδα ρύθμισης
     PayBoxDesc=Αυτή η ενότητα παρέχει τις σελίδες για να καταστεί δυνατή πληρωμή <a href="http://www.paybox.com" target="_blank">Paybox</a> από τους πελάτες. Αυτό μπορεί να χρησιμοποιηθεί για μια ελεύθερη πληρωμής ή πληρωμή σε ένα συγκεκριμένο αντικείμενο του Dolibarr (τιμολόγιο, ώστε, ...)
     FollowingUrlAreAvailableToMakePayments=Μετά από τις διευθύνσεις URL είναι διαθέσιμοι να προσφέρουν μια σελίδα σε έναν πελάτη να προβεί σε πληρωμή σε Dolibarr αντικείμενα
     PaymentForm=Έντυπο πληρωμής
    -WelcomeOnPaymentPage=Καλώς ήρθατε στην online υπηρεσία πληρωμών μας
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Αυτή η οθόνη σας επιτρέπει να κάνετε μια online πληρωμή %s.
     ThisIsInformationOnPayment=Πρόκειται για πληροφορίες σχετικά με την πληρωμή να γίνει
     ToComplete=Για να ολοκληρώσετε
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL για να προσφέρει μια
     ToOfferALinkForOnlinePaymentOnContractLine=URL για να προσφέρει μια %s online διεπαφή χρήστη πληρωμή για μια γραμμή σύμβαση
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL για να προσφέρει μια %s online διεπαφή χρήστη πληρωμή για ένα ελεύθερο ποσό
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL για να προσφέρει μια %s online διεπαφή χρήστη πληρωμή για μια συνδρομή μέλους
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Μπορείτε επίσης να προσθέσετε την παράμετρο url <b>&amp; tag = <i>αξία</i></b> σε κανένα από αυτά τα URL (απαιτείται μόνο για την ελεύθερη πληρωμής) για να προσθέσετε το δικό σας σχόλιο ετικέτα πληρωμής.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Ρύθμιση Paybox σας με <b>%s</b> url να έχουν πληρωμής δημιουργείται αυτόματα όταν επικυρωθεί από paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Η σελίδα αυτή επιβεβαιώνει ότι η πληρωμή σας έχει καταγραφεί. Σας ευχαριστώ.
    -YourPaymentHasNotBeenRecorded=Η πληρωμή σας δεν έχει καταγραφεί και η συναλλαγή έχει ακυρωθεί. Σας ευχαριστώ.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Παράμετροι λογαριασμού
     UsageParameter=Παράμετροι χρήσης
     InformationToFindParameters=Βοήθεια για να βρείτε %s τα στοιχεία του λογαριασμού σας
    diff --git a/htdocs/langs/el_GR/projects.lang b/htdocs/langs/el_GR/projects.lang
    index b75b790a269..5347965bff4 100644
    --- a/htdocs/langs/el_GR/projects.lang
    +++ b/htdocs/langs/el_GR/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Ανοιχτά έργα
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Εμφάνιση έργου
     ShowTask=Εμφάνιση Εργασίας
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Αριθμός έργων
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Χρόνος που δαπανήθηκε
     TimeSpentByYou=Χρόνος που δαπανάται από εσάς
     TimeSpentByUser=Χρόνος που δαπανάται από τον χρήστη
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Κατάλογος των εμπορικών προτάσεων που σχετίζονται με το έργο
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Κατάλογος των συμβάσεων που συνδέονται με το έργο
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Κατάλογος των παρεμβάσεων που σχετίζονται με το έργο
    -ListExpenseReportsAssociatedProject=Λίστα αναφορών των δαπανών που σχετίζονται με το έργο
    -ListDonationsAssociatedProject=Λίστα των δωρεών που σχετίζονται με το έργο
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Κατάλογος των εκδηλώσεων που σχετίζονται με το έργο
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Συνδέεται με άλλο τρίτο μέρος
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Χρόνος που δαπανάται είναι άδειο
     ThisWillAlsoRemoveTasks=Αυτή η ενέργεια θα διαγράψει επίσης όλα τα καθήκοντα του έργου <b>(%s</b> καθηκόντων προς το παρόν) και όλες οι είσοδοι του χρόνου.
    -IfNeedToUseOhterObjectKeepEmpty=Εάν ορισμένα αντικείμενα (τιμολόγιο, προκειμένου, ...), που ανήκουν σε άλλο τρίτο μέρος, πρέπει να συνδέεται με το έργο να δημιουργήσει, διατηρήσει αυτό το κενό να έχει το έργο να είναι πολλαπλών τρίτους.
    +IfNeedToUseOtherObjectKeepEmpty=Εάν ορισμένα αντικείμενα (τιμολόγιο, προκειμένου, ...), που ανήκουν σε άλλο τρίτο μέρος, πρέπει να συνδέεται με το έργο να δημιουργήσει, διατηρήσει αυτό το κενό να έχει το έργο να είναι πολλαπλών τρίτους.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Εργασία %s δημιουργήθηκε
     TaskModifiedInDolibarr=Εργασία %s τροποποιήθηκε
     TaskDeletedInDolibarr=Εργασία %s διαγράφηκε
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Συνεισφέρων
     SelectElement=Επιλέξτε το στοιχείο
     AddElement=Σύνδεση με το στοιχείο
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Σχέδιο φόρτου εργασίας
     PlannedWorkloadShort=Φόρτος εργασίας
     ProjectReferers=Σχετικά αντικείμενα
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Ανάθεση εργασίας σε εμένα
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Ανάθεση
     ProjectOverview=Επισκόπηση
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Μόνο ευκαιρίες
    -OpenedOpportunitiesShort=Ανοιχτές ευαιρίες
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Πρόταση
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/el_GR/propal.lang b/htdocs/langs/el_GR/propal.lang
    index 24a2fe50590..0f5d537ad71 100644
    --- a/htdocs/langs/el_GR/propal.lang
    +++ b/htdocs/langs/el_GR/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Υπογραφή (ανάγκες χρέωσης)
     PropalStatusNotSigned=Δεν έχει υπογραφεί (κλειστό)
     PropalStatusBilled=Χρεώνεται
     PropalStatusDraftShort=Προσχέδιο
    -PropalStatusValidatedShort=Επικυρώθηκε
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Κλειστό
     PropalStatusSignedShort=Υπογραφή
     PropalStatusNotSignedShort=Δεν έχει υπογραφεί
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Η Προσφορά %s δεν βρέθηκε
     AddToDraftProposals=Προσθήκη στο σχέδιο Προσφοράς
     NoDraftProposals=Δεν υπάρχουν σχέδια Προσφορών
     CopyPropalFrom=Δημιουργία Προσφοράς με την αντιγραφή υφιστάμενης Προσφοράς
    -CreateEmptyPropal=Δημιουργία κενών Προσφορών ή από την λίστα των προϊόντων / υπηρεσιών
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Προεπιλογή διάρκεια Προσφοράς ισχύος (σε ημέρες)
    -UseCustomerContactAsPropalRecipientIfExist=Χρησιμοποιήστε διεύθυνση επικοινωνίας του πελάτη, εάν αυτή ορίζεται αντί του ΠΕΛ./ΠΡΟΜ. διεύθυνση ως διεύθυνση παραλήπτη Προσφοράς
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Κλώνος Προσφοράς
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Πελάτης επαφή που παρακ
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Ένα πλήρες μοντέλο Προσφοράς (logo. ..)
    +DocModelCyanDescription=Ένα πλήρες μοντέλο Προσφοράς (logo. ..)
     DefaultModelPropalCreate=Δημιουργία προεπιλεγμένων μοντέλων
     DefaultModelPropalToBill=Προεπιλεγμένο πρότυπο όταν κλείνει μια Προσφορά (να τιμολογηθεί)
     DefaultModelPropalClosed=Προεπιλεγμένο πρότυπο όταν κλείνει μια Προσφορά (ατιμολόγητη)
    diff --git a/htdocs/langs/el_GR/website.lang b/htdocs/langs/el_GR/website.lang
    index 4c1415912ee..9d37e72b45b 100644
    --- a/htdocs/langs/el_GR/website.lang
    +++ b/htdocs/langs/el_GR/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Κώδικας
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Διαγραφή ιστοχώρου
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Βιβλιοθήκη πολυμέσων
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Επεξεργασία μενού
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Η προεπισκόπιση της ιστοσελίδας σας <strong>%s</strong> δεν είναι δυνατή. Πρέπει πρώτα να προσθέσετε μια σελίδα.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=Προβολή σελίδας σε νέα καρτέλα
     SetAsHomePage=Ορισμός σαν αρχική σελίδα
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Ανάγνωση
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/en_AU/admin.lang b/htdocs/langs/en_AU/admin.lang
    index 59efa529c01..fbd93559c94 100644
    --- a/htdocs/langs/en_AU/admin.lang
    +++ b/htdocs/langs/en_AU/admin.lang
    @@ -1,16 +1,6 @@
     # Dolibarr language file - Source file is en_US - admin
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     OldVATRates=Old GST rate
     NewVATRates=New GST rate
     DictionaryVAT=GST Rates or Sales Tax Rates
    -VATManagement=GST Management
    -VATIsNotUsedDesc=By default the proposed GST rate is 0 which can be used for cases like associations, individuals and small companies.
    -LocalTax1IsUsedDesc=Use a second type of tax (other than GST)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than GST)
    -LocalTax2IsUsedDesc=Use a third type of tax (other than GST)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than GST)
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
     OptionVatMode=GST due
     LinkColor=Colour of links
    diff --git a/htdocs/langs/en_AU/banks.lang b/htdocs/langs/en_AU/banks.lang
    index 3a409c94893..3746466ea96 100644
    --- a/htdocs/langs/en_AU/banks.lang
    +++ b/htdocs/langs/en_AU/banks.lang
    @@ -1,9 +1,6 @@
     # Dolibarr language file - Source file is en_US - banks
     BankChecks=Bank cheques
     ShowCheckReceipt=Show cheque deposit receipt
    -NumberOfCheques=Nb of cheque
    -FutureTransaction=Transaction in future. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the cheque deposit receipt and click on "Create".
     RejectCheck=Cheque returned
     RejectCheckDate=Date the cheque was returned
     CheckRejected=Cheque returned
    diff --git a/htdocs/langs/en_AU/compta.lang b/htdocs/langs/en_AU/compta.lang
    index ff183175110..8498a092945 100644
    --- a/htdocs/langs/en_AU/compta.lang
    +++ b/htdocs/langs/en_AU/compta.lang
    @@ -9,8 +9,6 @@ CheckReceiptShort=Cheque deposit
     NewCheckDeposit=New cheque deposit
     DateChequeReceived=Cheque received date
     NbOfCheques=Nb of cheques
    -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on actual payments made even if they are not yet accounted in Ledger.
    -SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even if they are not yet accounted in Ledger.
     RulesResultDue=- It includes outstanding invoices, expenses, GST, donations whether they are paid or not. Is also includes paid salaries.<br>- It is based on the validation date of invoices and GST and on the due date for expenses. For salaries defined with Salary module, the value date of payment is used.
     RulesResultInOut=- It includes the real payments made on invoices, expenses, GST and salaries. <br>- It is based on the payment dates of the invoices, expenses, GST and salaries. The donation date for donation.
     VATReportByCustomersInInputOutputMode=Report by the customer GST collected and paid
    diff --git a/htdocs/langs/en_CA/admin.lang b/htdocs/langs/en_CA/admin.lang
    index a1d35f5ea7d..3973e5e4c22 100644
    --- a/htdocs/langs/en_CA/admin.lang
    +++ b/htdocs/langs/en_CA/admin.lang
    @@ -1,12 +1,4 @@
     # Dolibarr language file - Source file is en_US - admin
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
    -VATManagement=GST Management
    -LocalTax1IsUsedDesc=Use a second tax (PST)
    -LocalTax1IsNotUsedDesc=Do not use second tax (PST)
     LocalTax1Management=PST Management
    -LocalTax2IsNotUsedDesc=Do not use second tax (PST)
     CompanyZip=Postal code
     LDAPFieldZip=Postal code
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang
    index c2ed9bc8e13..d5046722e24 100644
    --- a/htdocs/langs/en_GB/admin.lang
    +++ b/htdocs/langs/en_GB/admin.lang
    @@ -4,10 +4,6 @@ VersionProgram=Program Version
     VersionLastInstall=Version Initially Installed
     SessionSavePath=Storage session localisation
     PurgeSessions=Purge sessions
    -NoSessionListWithThisHandler=The Saved session handler configured in your PHP does not allow listing of all running sessions.
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connections to yourself. Only user <b>%s</b> will be able to connect after that.
    -Sessions=User session
    -NoSessionFound=Your PHP does not allow listing active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules on the Home->Setup->Modules page.
     RestoreLock=Restore file <b>%s</b>, with read permission only, to disable any usage of the update tool.
     ErrorModuleRequirePHPVersion=Error: This module requires PHP version %s or higher
    @@ -19,8 +15,6 @@ DisableJavascript=Disable JavaScript and Ajax functions (Recommended for a blind
     NumberOfKeyToSearch=Number of characters to trigger search: %s
     MustBeLowerThanPHPLimit=Note: Your PHP limits each files upload size to <b>%s</b> %s, whatever you enter here
     MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to prevent any uploads)
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
     CurrentValueSeparatorThousand=Thousands separator
     PositionByDefault=Default position
     MenusDesc=Menu managers set the content of the two menu bars (horizontal and vertical).
    @@ -32,39 +26,23 @@ ImportMySqlDesc=To import a backup file, you must use the mysql command from the
     ImportPostgreSqlDesc=To import a backup file, you must use the pg_restore command from the command line:
     FileNameToGenerate=File name to be generated
     CommandsToDisableForeignKeysForImportWarning=This is mandatory if you want to restore your sql dumps later
    -BoxesDesc=Widgets are components showing information that you can add to personalise some pages. You can choose between either showing the widget or not by selecting the target page and clicking 'Activate'. Clicking the dustbin will disable it.
    -ModulesDesc=Dolibarr modules define which applications or features are enabled in the software. Some applications and modules require permissions you must grant to users after activating it. Click on the 'on/off' button to enable or disable a particular module or application.
     ModulesMarketPlaceDesc=You can find more modules to download from external websites on the Internet...
     ModulesMarketPlaces=Find external applications and modules
     AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is enabled
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>with<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>with<br><b>$dolibarr_main_db_pass="%s";</b>
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying the document is no longer possible. Note: Using this feature disables your ability to build global merged PDFs.
    -HelpCenterDesc1=This area can access a support service on Dolibarr.
    -HelpCenterDesc2=Some parts of this service are available in <b>english only</b>.
     MeasuringUnit=Measurement unit
    -EMailsDesc=This page allows you to overwrite your PHP parameters for sending emails. In most cases on a Unix/Linux OS, your PHP setup is correct and these parameters are unnecessary.
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined in PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined in PHP on Unix like systems)
    -MAIN_MAIL_AUTOCOPY_TO=Systematically send a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all email postings (for test purposes or demos)
    -MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    -MAIN_DISABLE_ALL_SMS=Disable all SMS postings (for test purposes or demos)
    -MAIN_MAIL_SMS_FROM=Default sender telephone number for SMS posting
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +MAIN_MAIL_AUTOCOPY_TO=Copy (Cc) all sent emails to
     ModuleFamilyCrm=Customer Relations Management (CRM)
     ModuleFamilyProducts=Product Management (PM)
     ModuleFamilyHr=Human Resources Management (HR)
     ModuleFamilyTechnic=Multi-module tools
     ThisIsProcessToFollow=These are steps to process:
    -FindPackageFromWebSite=Find a package that provides the features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download a package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the compressed files into the server directory dedicated to Dolibarr: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however, enable and then setup the modules in your application. Go to the setup page for these modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined in an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, in a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines start with a "#", they are comments. To enable them, just remove the "#" character and save the file.
    -YouCanSubmitFile=For this step, you can upload the .zip file of module package here :
     GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:<br><b>{000000}</b> corresponds to a number which will be incremented on each %s. Enter as many zeros to the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask. <br><b>{000000+000}</b> same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s. <br><b>{000000@x}</b> same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required. <br><b>{dd}</b> day (01 to 31).<br><b>{mm}</b> month (01 to 12).<br><b>{yy}</b>, <b>{yyyy}</b> or <b>{y}</b> year over 2, 4 or 1 numbers. <br>
     GenericMaskCodes2=<b>{cccc}</b> the client code is n characters<br><b>{cccc000}</b> the client code of n characters is followed by a counter dedicated per customer. This counter dedicated per customer is reset at same time as the global counter.<br><b>{tttt}</b> The code of third party type of n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.<br>
     GenericMaskCodes4a=<u>Example of the 99th %s of the third party TheCompany, with date 2007-01-31:</u><br>
    @@ -72,17 +50,11 @@ GenericMaskCodes4b=<u>Example of third party created on 2007-03-01:</u><br>
     GenericMaskCodes4c=<u>Example of product created on 2007-03-01:</u><br>
     GenericNumRefModelDesc=Returns a customisable number according to a defined mask.
     UMaskExplanation=This parameter allows you to define permissions set by default on files created by Dolibarr on server (during upload for example).<br>It must be the octal value (for example, 0666 means read and write for everyone).<br>This parameter is useless on a Windows server.
    -AddCRIfTooLong=There is no automatic text wrapping. If lines of text extend off the page in your documents, you must insert carriage returns where appropriate to break lines in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will definitely delete  all your data files with no way to restore them (ECM files, attached files...).
     ListOfDirectories=List of OpenDocument template directories
     ListOfDirectoriesForModelGenODT=List of directories containing template files in OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between each directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS template files found in those directories
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To learn how to create your .odt document templates, before storing them in those directories, read wiki documentation:
     DescWeather=The following pictures will be shown on the dashboard when the number of late actions reaches the following values:
     ThisForceAlsoTheme=This menu manager will use its own theme irrespective of user choice. This menu manager is also specialised for some but not all, smartphones. Use another menu manager if you experience problems with yours.
    -ConnectionTimeout=Connection timeout
    -Module330Desc=Bookmark management
     Module50200Name=PayPal
     Permission300=Read barcodes
     Permission301=Create/modify barcodes
    @@ -90,6 +62,4 @@ Permission302=Delete barcodes
     DictionaryAccountancyJournal=Finance journals
     CompanyZip=Postcode
     LDAPFieldZip=Postcode
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
     GenbarcodeLocation=Barcode generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".<br>For example: /usr/local/bin/genbarcode
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to automatically generate codes, you must first set a rule to define the barcode number.
    diff --git a/htdocs/langs/en_GB/banks.lang b/htdocs/langs/en_GB/banks.lang
    index 6bc449c5864..240839e6bea 100644
    --- a/htdocs/langs/en_GB/banks.lang
    +++ b/htdocs/langs/en_GB/banks.lang
    @@ -1,11 +1,7 @@
     # Dolibarr language file - Source file is en_US - banks
    -RIBControlError=Integrity check of values fails. This means the account details are incomplete or wrong (check country, numbers and IBAN).
     CheckTransmitter=Drawer
     BankChecks=Bank cheques
     ShowCheckReceipt=Show cheque deposit receipt
    -NumberOfCheques=No. of cheques
    -FutureTransaction=Transaction in future: cannot be reconciled
    -SelectChequeTransactionAndGenerate=Select/filter cheques to include in the cheque deposit receipt, then click "Create".
     InputReceiptNumber=Identify the bank statement to reconcile. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Specify a category in which to classify the records, if required
     ThenCheckLinesAndConciliate=Select the lines shown on the bank statement and click
    diff --git a/htdocs/langs/en_GB/compta.lang b/htdocs/langs/en_GB/compta.lang
    index d8dff1d8689..48f980f4449 100644
    --- a/htdocs/langs/en_GB/compta.lang
    +++ b/htdocs/langs/en_GB/compta.lang
    @@ -6,5 +6,3 @@ NewCheckDepositOn=Create receipt for deposit to account: %s
     NoWaitingChecks=No cheques awaiting deposit.
     DateChequeReceived=Cheque reception date
     NbOfCheques=Number of cheques
    -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on actual payments made even if they are not yet accounted in Ledger.
    -SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even if they are not yet accounted in Ledger.
    diff --git a/htdocs/langs/en_GB/main.lang b/htdocs/langs/en_GB/main.lang
    index f6f528c8777..5617fe77778 100644
    --- a/htdocs/langs/en_GB/main.lang
    +++ b/htdocs/langs/en_GB/main.lang
    @@ -19,15 +19,10 @@ FormatDateHourShort=%d/%m/%Y %H:%M
     FormatDateHourSecShort=%d/%m/%Y %H:%M:%S
     FormatDateHourTextShort=%d %b %Y %H:%M
     FormatDateHourText=%d %B %Y %H:%M
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and modify the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorNoVATRateDefinedForSellerCountry=Error, no VAT rates defined for country '%s'.
     NotAuthorized=You are not authorised to do that.
     BackgroundColorByDefault=Default background colour
     FileWasNotUploaded=A file is selected for attachment but has not yet been uploaded. Click on "Attach file" for this.
    -NbOfEntries=Number of entries
     PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to <b>%s</b> decimal places.
     Resiliate=Deactivate
     SaveAs=Save as
    @@ -40,13 +35,8 @@ TTC=Inc. VAT
     VAT=VAT
     VATRate=VAT Rate
     Favorite=Favourite
    -ActionUncomplete=Incomplete
     GeneratedOn=Built on %s
    -OtherInformations=Other information
     Canceled=Cancelled
     Color=Colour
    -Informations=Information
    -AccordingToGeoIPDatabase=(according to GeoIP lookup)
     NoPhotoYet=No picture available yet
    -WebSite=Website
     SearchIntoSupplierProposals=Vendor quotes
    diff --git a/htdocs/langs/en_GB/users.lang b/htdocs/langs/en_GB/users.lang
    index c38e02240f5..b54b55fab56 100644
    --- a/htdocs/langs/en_GB/users.lang
    +++ b/htdocs/langs/en_GB/users.lang
    @@ -12,7 +12,5 @@ PermissionInheritedFromAGroup=Permission granted through inherited rights from o
     UserWillBeInternalUser=Created user will be an internal user (because they are not linked to a particular third party)
     UserWillBeExternalUser=Created user will be an external user (because they are linked to a particular third party)
     NewUserPassword=Password changed for %s
    -NbOfUsers=No. of users
    -NbOfPermissions=No. of permissions
     ExpectedWorkedHours=Expected hours worked per week
     ColorUser=Colour for the user
    diff --git a/htdocs/langs/en_IN/admin.lang b/htdocs/langs/en_IN/admin.lang
    index 1e94b9bd629..623af356da5 100644
    --- a/htdocs/langs/en_IN/admin.lang
    +++ b/htdocs/langs/en_IN/admin.lang
    @@ -1,7 +1,4 @@
     # Dolibarr language file - Source file is en_US - admin
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     Module20Name=Quotations
     Module20Desc=Management of quotations
     Permission21=Read quotations
    @@ -16,6 +13,4 @@ ProposalsNumberingModules=Quotation numbering models
     ProposalsPDFModules=Quotation documents models
     FreeLegalTextOnProposal=Free text on quotations
     WatermarkOnDraftProposal=Watermark on draft quotations (none if empty)
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (quotations, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
     MailToSendProposal=Customer quotations
    diff --git a/htdocs/langs/en_IN/compta.lang b/htdocs/langs/en_IN/compta.lang
    index 8ef2e8a50d2..6e6975592c2 100644
    --- a/htdocs/langs/en_IN/compta.lang
    +++ b/htdocs/langs/en_IN/compta.lang
    @@ -1,4 +1,2 @@
     # Dolibarr language file - Source file is en_US - compta
    -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on actual payments made even if they are not yet accounted in Ledger.
    -SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even if they are not yet accounted in Ledger.
     ProposalStats=Statistics on quotations
    diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang
    index 5ff295e38db..144caf49dde 100644
    --- a/htdocs/langs/en_US/accountancy.lang
    +++ b/htdocs/langs/en_US/accountancy.lang
    @@ -30,19 +30,25 @@ OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to an acco
     OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to an accounting account
     OtherInfo=Other information
     DeleteCptCategory=Remove accounting account from group
    -ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
    +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group?
     JournalizationInLedgerStatus=Status of journalization
     AlreadyInGeneralLedger=Already journalized in ledgers
     NotYetInGeneralLedger=Not yet journalized in ledgers
     GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accounting group
     DetailByAccount=Show detail by account
    -AccountWithNonZeroValues=Accounts with non zero values
    +AccountWithNonZeroValues=Accounts with non-zero values
     ListOfAccounts=List of accounts
    +CountriesInEEC=Countries in EEC
    +CountriesNotInEEC=Countries not in EEC
    +CountriesInEECExceptMe=Countries in EEC except %s
    +CountriesExceptMe=All countries except %s
    +AccountantFiles=Export accounting documents
     
     MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
     MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup
     MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
     MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
    +MainAccountForSubscriptionPaymentNotDefined=Main accounting account for subscription payment not defined in setup
     
     AccountancyArea=Accounting area
     AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
    @@ -54,19 +60,20 @@ AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal
     AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s
     AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s
     
    -AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s.    
    +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s.
     AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
     AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s.
    -AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.    
    -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.    
    +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
    +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s.
     AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
    +AccountancyAreaDescSubscription=STEP %s: Define default accounting accounts for member subscription. For this, use the menu entry %s.
     AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
    -AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. 
    +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
     AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s.
     AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
     
     AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s.
    -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu <strong>%s</strong>, and click into button <strong>%s</strong>. 
    +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu <strong>%s</strong>, and click into button <strong>%s</strong>.
     AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports.
     
     AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future.
    @@ -100,7 +107,7 @@ WriteBookKeeping=Journalize transactions in Ledger
     Bookkeeping=Ledger
     AccountBalance=Account balance
     ObjectsRef=Source object ref
    -CAHTF=Total purchase supplier before tax
    +CAHTF=Total purchase vendor before tax
     TotalExpenseReport=Total expense report
     InvoiceLines=Lines of invoices to bind
     InvoiceLinesDone=Bound lines of invoices
    @@ -122,15 +129,15 @@ NotVentilatedinAccount=Not bound to the accounting account
     XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
     XLineFailedToBeBinded=%s products/services were not bound to any accounting account
     
    -ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
    +ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended: 50)
     ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements
     ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements
     
     ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50)
     ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50)
     ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen)
    -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen)
    -ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero.
    +ACCOUNTING_LENGTH_AACCOUNT=Length of the third-party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen)
    +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zeros at the end of an accounting account. Needed by some countries (like Switzerland). If set to off (default), you can set the following two parameters to ask the application to add virtual zeros.
     BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account
     ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal
     
    @@ -144,6 +151,7 @@ ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal
     ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transfer
     ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait
     DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations
    +ADHERENT_SUBSCRIPTION_ACCOUNTINGACCOUNT=Accounting account to register subscriptions
     
     ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (used if not defined in the product sheet)
     ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet)
    @@ -156,12 +164,13 @@ Docref=Reference
     LabelAccount=Label account
     LabelOperation=Label operation
     Sens=Sens
    +LetteringCode=Lettering code
     Codejournal=Journal
     NumPiece=Piece number
     TransactionNumShort=Num. transaction
     AccountingCategory=Personalized groups
     GroupByAccountAccounting=Group by accounting account
    -AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports.  
    +AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports.
     ByAccounts=By accounts
     ByPredefinedAccountGroups=By predefined groups
     ByPersonalizedAccountGroups=By personalized groups
    @@ -170,7 +179,7 @@ NotMatch=Not Set
     DeleteMvt=Delete Ledger lines
     DelYear=Year to delete
     DelJournal=Journal to delete
    -ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required.
    +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criterion is required.
     ConfirmDeleteMvtPartial=This will delete the transaction from the Ledger (all lines related to same transaction will be deleted)
     FinanceJournal=Finance journal
     ExpenseReportsJournal=Expense reports journal
    @@ -182,38 +191,38 @@ ProductAccountNotDefined=Account for product not defined
     FeeAccountNotDefined=Account for fee not defined
     BankAccountNotDefined=Account for bank not defined
     CustomerInvoicePayment=Payment of invoice customer
    -ThirdPartyAccount=Third party account
    +ThirdPartyAccount=Third-party account
     NewAccountingMvt=New transaction
     NumMvts=Numero of transaction
     ListeMvts=List of movements
     ErrorDebitCredit=Debit and Credit cannot have a value at the same time
    -AddCompteFromBK=Add accounting accounts to the group 
    -ReportThirdParty=List third party account
    -DescThirdPartyReport=Consult here the list of the third party customers and vendors and their accounting accounts
    +AddCompteFromBK=Add accounting accounts to the group
    +ReportThirdParty=List third-party account
    +DescThirdPartyReport=Consult here the list of third-party customers and vendors and their accounting accounts
     ListAccounts=List of the accounting accounts
    -UnknownAccountForThirdparty=Unknown third party account. We will use %s
    -UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
    -UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unknown third party account and waiting account not defined. Blocking error
    +UnknownAccountForThirdparty=Unknown third-party account. We will use %s
    +UnknownAccountForThirdpartyBlocking=Unknown third-party account. Blocking error
    +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unknown third-party account and waiting account not defined. Blocking error
     PaymentsNotLinkedToProduct=Payment not linked to any product / service
     
     Pcgtype=Group of account
     Pcgsubtype=Subgroup of account
    -PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criterias for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
    +PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
     
     TotalVente=Total turnover before tax
     TotalMarge=Total sales margin
     
     DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account
    -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on product/service cards or if you still has some lines not bound to an account, you will have to make a manual binding from the menu "<strong>%s</strong>".  
    +DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "<strong>%s</strong>".
     DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account
     DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account
     ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account:
     Vide=-
     DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account
    -DescVentilDoneSupplier=Consult here the list of the lines of invoices vendors and their accounting account
    +DescVentilDoneSupplier=Consult here the list of the lines of vendor invoices and their accounting account
     DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account
     DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account
    -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on fees dictionary or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".  
    +DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on fees dictionary or if you still have some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
     DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account
     
     ValidateHistory=Bind Automatically
    @@ -221,6 +230,7 @@ AutomaticBindingDone=Automatic binding done
     
     ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
     MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s
    +Balancing=Balancing
     FicheVentilation=Binding card
     GeneralLedgerIsWritten=Transactions are written in the Ledger
     GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized.
    @@ -232,7 +242,7 @@ NotYetAccounted=Not yet accounted in ledger
     
     ## Admin
     ApplyMassCategories=Apply mass categories
    -AddAccountFromBookKeepingWithNoCategories=Available acccount not yet in a personalized group
    +AddAccountFromBookKeepingWithNoCategories=Available account not yet in a personalized group
     CategoryDeleted=Category for the accounting account has been removed
     AccountingJournals=Accounting journals
     AccountingJournal=Accounting journal
    @@ -248,21 +258,24 @@ AccountingJournalType8=Inventory
     AccountingJournalType9=Has-new
     ErrorAccountingJournalIsAlreadyUse=This journal is already use
     AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu <b>%s</b> - <b>%s</b>
    +NumberOfAccountancyEntries=Number of entries
    +NumberOfAccountancyMovements=Number of movements
     
     ## Export
     ExportDraftJournal=Export draft journal
     Modelcsv=Model of export
     Selectmodelcsv=Select a model of export
     Modelcsv_normal=Classic export
    -Modelcsv_CEGID=Export towards CEGID Expert Comptabilité
    -Modelcsv_COALA=Export towards Sage Coala
    -Modelcsv_bob50=Export towards Sage BOB 50
    -Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution
    -Modelcsv_quadratus=Export towards Quadratus QuadraCompta
    -Modelcsv_ebp=Export towards EBP
    -Modelcsv_cogilog=Export towards Cogilog
    -Modelcsv_agiris=Export towards Agiris
    -Modelcsv_configurable=Export Configurable
    +Modelcsv_CEGID=Export for CEGID Expert Comptabilité
    +Modelcsv_COALA=Export for Sage Coala
    +Modelcsv_bob50=Export for Sage BOB 50
    +Modelcsv_ciel=Export for Sage Ciel Compta or Compta Evolution
    +Modelcsv_quadratus=Export for Quadratus QuadraCompta
    +Modelcsv_ebp=Export for EBP
    +Modelcsv_cogilog=Export for Cogilog
    +Modelcsv_agiris=Export for Agiris
    +Modelcsv_configurable=Export CSV Configurable
    +Modelcsv_FEC=Export FEC (Art. L47 A) (Test)
     ChartofaccountsId=Chart of accounts Id
     
     ## Tools - Init accounting account on product / service
    @@ -292,7 +305,7 @@ ErrorNoAccountingCategoryForThisCountry=No accounting account group available fo
     ErrorInvoiceContainsLinesNotYetBounded=You try to journalize some lines of the invoice <strong>%s</strong>, but some other lines are not yet bounded to accounting account. Journalization of all invoice lines for this invoice are refused.
     ErrorInvoiceContainsLinesNotYetBoundedShort=Some lines on invoice are not bound to accounting account.
     ExportNotSupported=The export format setuped is not supported into this page
    -BookeppingLineAlreayExists=Lines already existing into bookeeping
    +BookeppingLineAlreayExists=Lines already existing into bookkeeping
     NoJournalDefined=No journal defined
     Binded=Lines bound
     ToBind=Lines to bind
    @@ -301,6 +314,6 @@ UseMenuToSetBindindManualy=Lines not yet bound, use menu <a href="%s">%s</a> to
     ## Import
     ImportAccountingEntries=Accounting entries
     
    -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
    +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
     ExpenseReportJournal=Expense Report Journal
     InventoryJournal=Inventory Journal
    diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
    index cbe085f3149..3540f3f9567 100644
    --- a/htdocs/langs/en_US/admin.lang
    +++ b/htdocs/langs/en_US/admin.lang
    @@ -9,10 +9,10 @@ VersionExperimental=Experimental
     VersionDevelopment=Development
     VersionUnknown=Unknown
     VersionRecommanded=Recommended
    -FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheck=Fileset Integrity Checks
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to determine if any files have been modified (e.g by a hacker).
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -23,21 +23,21 @@ FilesUpdated=Updated Files
     FilesModified=Modified Files
     FilesAdded=Added Files
     FileCheckDolibarr=Check integrity of application files
    -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package 
    +AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when the application is installed from an official package
     XmlNotFound=Xml Integrity File of application not found
     SessionId=Session ID
     SessionSaveHandler=Handler to save sessions
    -SessionSavePath=Storage session localization
    +SessionSavePath=Session save location
     PurgeSessions=Purge of sessions
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that. 
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Your session
    -Sessions=Users session
    +Sessions=Users Sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP configuration seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) may be protected (for example by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,12 +50,12 @@ ExternalUser=External user
     InternalUsers=Internal users
     ExternalUsers=External users
     GUISetup=Display
    -SetupArea=Setup area
    +SetupArea=Setup
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    -RemoveLock=Remove file <b>%s</b> if it exists to allow usage of the update tool.
    -RestoreLock=Restore file <b>%s</b>, with read permission only, to disable any usage of update tool.
    +RemoveLock=Remove/rename file <b>%s</b> if it exists, to allow usage of the Update/Install tool.
    +RestoreLock=Restore file <b>%s</b>, with read permission only, to disable any further use of the Update/Install tool.
     SecuritySetup=Security setup
     SecurityFilesDesc=Define here options related to security about uploading files.
     ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). 
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -91,14 +91,14 @@ NextValueForInvoices=Next value (invoices)
     NextValueForCreditNotes=Next value (credit notes)
     NextValueForDeposit=Next value (down payment)
     NextValueForReplacements=Next value (replacements)
    -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to <b>%s</b> %s, whatever this parameter's value is
    +MustBeLowerThanPHPLimit=Note: <b>your</b> PHP configuration currently limits the maximum filesize for upload to <b>%s</b> %s, irrespective of the value of this parameter
     NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration
     MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload)
     UseCaptchaCode=Use graphical code (CAPTCHA) on login page
     AntiVirusCommand= Full path to antivirus command
    -AntiVirusCommandExample= Example for ClamWin: c:\Progra~1\ClamWin\bin\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    +AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
     AntiVirusParam= More parameters on command line
    -AntiVirusParamExample= Example for ClamWin: --database="C:\Program Files (x86)\ClamWin\lib"
    +AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
     ComptaSetup=Accounting module setup
     UserSetup=User management setup
     MultiCurrencySetup=Multi-currency setup
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=Setup
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,11 +126,11 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
    -MaxNbOfLinesForBoxes=Max number of lines for widgets
    +MaxNbOfLinesForBoxes=Max. number of lines for widgets
     AllWidgetsWereEnabled=All available widgets are enabled
     PositionByDefault=Default order
     Position=Position
    @@ -141,13 +141,13 @@ LangFile=.lang file
     System=System
     SystemInfo=System information
     SystemToolsArea=System tools area
    -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for.
    +SystemToolsAreaDesc=This area provides administration functions. Use the menu to choose the required feature.
     Purge=Purge
    -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
    +PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not normally necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
     PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
     PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
     PurgeDeleteTemporaryFilesShort=Delete temporary files
    -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
    +PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory: <b>%s</b>.<br>This will delete all generated documents related to elements (third parties, invoices etc...), files uploaded into the ECM module, database backup dumps and temporary files.
     PurgeRunNow=Purge now
     PurgeNothingToDelete=No directory or files to delete.
     PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
    @@ -160,16 +160,16 @@ Restore=Restore
     RunCommandSummary=Backup has been launched with the following command
     BackupResult=Backup result
     BackupFileSuccessfullyCreated=Backup file successfully generated
    -YouCanDownloadBackupFile=Generated files can now be downloaded
    +YouCanDownloadBackupFile=The generated file can now be downloaded
     NoBackupFileAvailable=No backup files available.
     ExportMethod=Export method
     ImportMethod=Import method
     ToBuildBackupFileClickHere=To build a backup file, click <a href="%s">here</a>.
    -ImportMySqlDesc=To import a backup file, you must use mysql command from command line:
    +ImportMySqlDesc=To import a MySQL backup file, you may use phpMyAdmin via your hosting or use the mysql command from the Command line.<br>For example:
     ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line:
     ImportMySqlCommand=%s %s < mybackupfile.sql
     ImportPostgreSqlCommand=%s %s mybackupfile.sql
    -FileNameToGenerate=File name to generate
    +FileNameToGenerate=Filename for backup:
     Compression=Compression
     CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import
     CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later
    @@ -184,22 +184,22 @@ AddDropTable=Add DROP TABLE command
     ExportStructure=Structure
     NameColumn=Name columns
     ExtendedInsert=Extended INSERT
    -NoLockBeforeInsert=No lock commands around INSERT 
    +NoLockBeforeInsert=No lock commands around INSERT
     DelayedInsert=Delayed insert
     EncodeBinariesInHexa=Encode binary data in hexadecimal
     IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -208,11 +208,11 @@ CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s
     SeeInMarkerPlace=See in Market place
     Updated=Updated
     Nouveauté=Novelty
    -AchatTelechargement=Buy / Download 
    -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
    +AchatTelechargement=Buy / Download
    +GoModuleSetupArea=To deploy/install a new module, go to the Module setup area: <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -225,29 +225,29 @@ Required=Required
     UsedOnlyWithTypeOption=Used by some agenda option only
     Security=Security
     Passwords=Passwords
    -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended)
    -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
    +DoNotStoreClearPassword=Encrypt passwords stored in database (NOT as plain-text). It is strongly recommended to activate this option.
    +MainDbPasswordFileConfEncrypted=Encrypt database password stored in conf.php. It is strongly recommended to activate this option.
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protect generated PDF files. This is NOT recommended as it breaks bulk PDF generation.
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
     Developpers=Developers/contributors
    -OfficialWebSite=Dolibarr international official web site
    +OfficialWebSite=Dolibarr official web site
     OfficialWebSiteLocal=Local web site (%s)
    -OfficialWiki=Dolibarr documentation on Wiki
    +OfficialWiki=Dolibarr documentation / Wiki
     OfficialDemo=Dolibarr online demo
     OfficialMarketPlace=Official market place for external modules/addons
     OfficialWebHostingService=Referenced web hosting services (Cloud hosting)
     ReferencedPreferredPartners=Preferred Partners
     OtherResources=Other resources
    -ExternalResources=External resources
    +ExternalResources=External Resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,38 +262,42 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
    -CompanyEmail=Company email
    +CompanyEmail=Company Email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If the translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
     ModuleFamilyBase=System
    -ModuleFamilyCrm=Customer Relation Management (CRM)
    -ModuleFamilySrm=Vendor Relation Management (VRM)
    -ModuleFamilyProducts=Products Management (PM)
    +ModuleFamilyCrm=Customer Relationship Management (CRM)
    +ModuleFamilySrm=Vendor Relationship Management (VRM)
    +ModuleFamilyProducts=Product Management (PM)
     ModuleFamilyHr=Human Resource Management (HR)
     ModuleFamilyProjects=Projects/Collaborative work
     ModuleFamilyOther=Other
    @@ -301,25 +305,25 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
     DoNotUseInProduction=Do not use in production
    -ThisIsProcessToFollow=This is steps to process:
    +ThisIsProcessToFollow=Upgrade procedure:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    -DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +FindPackageFromWebSite=Find a package that provides the features you need (for example on the official web site %s).
    +DownloadPackageFromWebSite=Download package (for example from the official web site %s).
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into your Dolibarr server directory: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
    -CallUpdatePage=Go to the page that updates the database structure and data: %s.
    +CallUpdatePage=Browse to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
     LastActivationDate=Latest activation date
     LastActivationAuthor=Latest activation author
    @@ -333,7 +337,7 @@ GenericMaskCodes4a=<u>Example on the 99th %s of the third party TheCompany, with
     GenericMaskCodes4b=<u>Example on third party created on 2007-03-01:</u><br>
     GenericMaskCodes4c=<u>Example on product created on 2007-03-01:</u><br>
     GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100@1}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b><br><b>IN{yy}{mm}-{0000}-{t}</b> will give <b>IN0701-0099-A</b> if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI'
    -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. 
    +GenericNumRefModelDesc=Returns a customizable number according to a defined mask.
     ServerAvailableOnIPOrPort=Server is available at address <b>%s</b> on port <b>%s</b>
     ServerNotAvailableOnIPOrPort=Server is not available at address <b>%s</b> on port <b>%s</b>
     DoTestServerAvailability=Test server connectivity
    @@ -343,55 +347,55 @@ ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each ye
     ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask.
     UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system.
     UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).<br>It must be the octal value (for example, 0666 means read and write for everyone).<br>This parameter is useless on a Windows server.
    -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organization
    +SeeWikiForAllTeam=Take a look at the Wiki page for a list of contributors and their organization
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...). 
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
    -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>. 
    +ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
     NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
    -FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation: 
    +ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
    +FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
     FirstnameNamePosition=Position of Name/Lastname
    -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values:
    +DescWeather=The following images will be shown on the dashboard when the number of late actions reach the following values:
     KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices)
     TestSubmitForm=Input test form
    -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. 
    +ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever the user choice. Also this menu manager specialized for smartphones does not work on all smartphone. Use another menu manager if you experience problems with yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external vendor, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    -PDFAddressForging=Rules to forge address boxes
    -HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
    +PDFDesc=Global options for PDF generation.
    +PDFAddressForging=Rules for address boxes
    +HideAnyVATInformationOnPDF=Hide all information related to Sales Tax / VAT
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    -HideDescOnPDF=Hide products description on generated PDF
    -HideRefOnPDF=Hide products ref. on generated PDF
    -HideDetailsOnPDF=Hide product lines details on generated PDF
    +HideLocalTaxOnPDF=Hide %s rate in column Tax Sale
    +HideDescOnPDF=Hide products description
    +HideRefOnPDF=Hide products ref.
    +HideDetailsOnPDF=Hide product lines details
     PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position
     Library=Library
     UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    -MassConvert=Launch mass convert
    +MassConvert=Launch bulk conversion
     String=String
     TextLong=Long text
     HtmlText=Html text
    @@ -408,21 +412,21 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
    -ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    -ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
    -ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    -ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    -ExtrafieldParamHelpsellist=List of values comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>- idfilter is necessarly a primary int key<br>- filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    -ExtrafieldParamHelpchkbxlst=List of values comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list :<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax : ObjectName:Classpath<br>Examples :<br>Societe:societe/class/societe.class.php<br>Contact:contact/class/contact.class.php
    +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref: 'Parent project not found'
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
    +ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list:<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list:<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
    +ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>3,value3<br>...
    +ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>3,value3<br>...
    +ExtrafieldParamHelpsellist=List of values comes from a table<br>Syntax: table_name:label_field:id_field::filter<br>Example: c_typent:libelle:id::filter<br><br>- idfilter is necessarly a primary int key<br>- filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    +ExtrafieldParamHelpchkbxlst=List of values comes from a table<br>Syntax: table_name:label_field:id_field::filter<br>Example: c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    +ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax: ObjectName:Classpath<br>Examples:<br>Societe:societe/class/societe.class.php<br>Contact:contact/class/contact.class.php
     LibraryToBuildPDF=Library used for PDF generation
    -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)<br>2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)<br>3 : local tax apply on products without vat (localtax is calculated on amount without tax)<br>4 : local tax apply on products including vat (localtax is calculated on amount + main vat)<br>5 : local tax apply on services without vat (localtax is calculated on amount without tax)<br>6 : local tax apply on services including vat (localtax is calculated on amount + tax)
    +LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are:<br>1: local tax apply on products and services without vat (localtax is calculated on amount without tax)<br>2: local tax apply on products and services including vat (localtax is calculated on amount + main tax)<br>3: local tax apply on products without vat (localtax is calculated on amount without tax)<br>4: local tax apply on products including vat (localtax is calculated on amount + main vat)<br>5: local tax apply on services without vat (localtax is calculated on amount without tax)<br>6: local tax apply on services including vat (localtax is calculated on amount + tax)
     SMS=SMS
     LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user <strong>%s</strong>
     RefreshPhoneLink=Refresh link
    @@ -432,40 +436,40 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the Barcode module setup.
     EnableFileCache=Enable file cache
    -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
    -NoDetails=No more details in footer
    +ShowDetailsInPDFPageFoot=Add more details into footer, such as company address or manager names (in addition to professional ids, company capital and VAT number).
    +NoDetails=No additional details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
     EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
     ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by vendor code for a vendor accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
    -ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.  
    -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.  
    +ModuleCompanyCodeDigitaria=Accounting code depends on third-party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third-party code.
    +Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not theirs, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider.
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    -WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. 
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new third party, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that lists third parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use a path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +EnableDefaultValues=Enable customization of default values
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
    +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
     FreeLegalTextOnExpenseReports=Free legal text on expense reports
    @@ -473,53 +477,53 @@ WatermarkOnDraftExpenseReports=Watermark on draft expense reports
     AttachMainDocByDefault=Set this to 1 if you want to attach main document to email by default (if applicable)
     FilesAttachedToEmail=Attach file
     SendEmailsReminders=Send agenda reminders by emails
    -davDescription=Add a component to be a DAV server
    +davDescription=Setup a WebDAV server
     DAVSetup=Setup of module DAV
    -DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    -DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    -DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
    +DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDAV directory - no login required)
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDAV public directory is a WebDAV directory anybody can access (in read and write mode), with no authorization required (login/password account).
    +DAV_ALLOW_ECM_DIR=Enable the private directory (root directory of the DMS/ECM module - login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Similarly as access from the web interface, you will need a valid login/password with adecuate permissions to access it.
     # Modules
     Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposals
     Module20Desc=Commercial proposal management
    -Module22Name=Mass E-mailings
    -Module22Desc=Mass E-mailing management
    +Module22Name=Mass Emailings
    +Module22Desc=Manage bulk emailing
     Module23Name=Energy
     Module23Desc=Monitoring the consumption of energies
    -Module25Name=Customer Orders
    -Module25Desc=Customer order management
    +Module25Name=Sales Orders
    +Module25Desc=Sales order management
     Module30Name=Invoices
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    -Module40Name=Suppliers
    -Module40Desc=Suppliers and purchase management (purchase orders and billing)
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
    +Module40Name=Vendors
    +Module40Desc=Vendors and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
     Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes.
     Module49Name=Editors
     Module49Desc=Editor management
     Module50Name=Products
    -Module50Desc=Product management
    +Module50Desc=Management of Products
     Module51Name=Mass mailings
     Module51Desc=Mass paper mailing management
     Module52Name=Stocks
    -Module52Desc=Stock management (products)
    +Module52Desc=Stock management (for products only)
     Module53Name=Services
    -Module53Desc=Service management
    +Module53Desc=Management of Services
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
    -Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Name=Bank Direct Debit payments
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -529,62 +533,62 @@ Module70Desc=Intervention management
     Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
    -Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and Cash
    +Module80Desc=Shipments and delivery note management
    +Module85Name=Banks & Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add a link to an external website as a main menu icon. Website is shown in a frame in the Dolibarr page.
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
     Module240Desc=Tool to export Dolibarr data (with assistants)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistants)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
    -Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module320Desc=Add a RSS feed to Dolibarr pages
    +Module330Name=Bookmarks & Shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
    -Module500Name=Taxes and Special expenses
    +Module500Name=Taxes & Special Expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
    -Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    -Module520Name=Loan
    +Module510Name=Salaries
    +Module510Desc=Record and track employee payments
    +Module520Name=Loans
     Module520Desc=Management of loans
    -Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Name=Notifications
    +Module600Desc=Send email notifications triggered by a business event: per user (setup defined on each user), per third-party contacts (setup defined on each third party) or by specific emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders for agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
    -Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    -Module1120Name=Vendor commercial proposal
    +Module770Name=Expense Reports
    +Module770Desc=Manage expense reports claims (transportation, meal, ...)
    +Module1120Name=Vendor Commercial Proposals
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
     Module1200Desc=Mantis integration
     Module1520Name=Document Generation
    -Module1520Desc=Mass mail document generation
    +Module1520Desc=Mass email document generation
     Module1780Name=Tags/Categories
    -Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
    +Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited/formatted using CKEditor (html)
     Module2200Name=Dynamic Prices
    -Module2200Desc=Enable the usage of math expressions for prices
    +Module2200Desc=Use maths expressions for auto-generation of prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Log automatic events for tracking purposes or record manual events or meetings. This is the principal module for good Customer or Vendor Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -592,16 +596,14 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) 
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Purchase orders are currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
    -Module3100Name=Skype
    -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,31 +611,37 @@ Module5000Desc=Allows you to manage multiple companies
     Module6000Name=Workflow
     Module6000Desc=Workflow management (automatic creation of object and/or automatic status change)
     Module10000Name=Websites
    -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
    -Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    -Module39000Name=Products lots
    -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module10000Desc=Create websites (public) with a WYSIWYG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the internet with your own domain name.
    +Module20000Name=Leave Request Management
    +Module20000Desc=Define and track employee leave requests
    +Module39000Name=Product Lots
    +Module39000Desc=Lots, serial numbers, eat-by/sell-by date management for products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    -Module50100Name=Point of sales
    -Module50100Desc=Point of sales module (POS).
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...)
    +Module50100Name=POS SimplePOS
    +Module50100Desc=Point of Sale module SimplePOS (simple POS).
    +Module50150Name=POS TakePOS
    +Module50150Desc=Point of Sale module TakePOS (touchscreen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...)
    +Module50300Name=Stripe
    +Module50300Desc=Offer customers a Stripe online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Create online polls, surveys or votes (like Doodle, Studs, RDVz etc...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
    -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
    +Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events
     Permission11=Read customer invoices
     Permission12=Create/modify customer invoices
     Permission13=Unvalidate customer invoices
    @@ -653,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -688,46 +696,46 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
    -Permission117=Manage cheques dispatching
    +Permission117=Manage checks dispatching
     Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects for which I am not a contact)
    +Permission142=Create/modify all projects and tasks (also private projects for which I am not a contact)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
     Permission164=Disable a service/subscription of a contract
     Permission165=Delete contracts/subscriptions
     Permission167=Export contracts
    -Permission171=Read trips and expenses (yours and your subordinates) 
    +Permission171=Read trips and expenses (yours and your subordinates)
     Permission172=Create/modify trips and expenses
     Permission173=Delete trips and expenses
    -Permission174=Read all trips and expenses 
    +Permission174=Read all trips and expenses
     Permission178=Export trips and expenses
     Permission180=Read suppliers
    -Permission181=Read supplier orders
    -Permission182=Create/modify supplier orders
    -Permission183=Validate supplier orders
    -Permission184=Approve supplier orders
    -Permission185=Order or cancel supplier orders
    -Permission186=Receive supplier orders
    -Permission187=Close supplier orders
    -Permission188=Cancel supplier orders
    +Permission181=Read purchase orders
    +Permission182=Create/modify purchase orders
    +Permission183=Validate purchase orders
    +Permission184=Approve purchase orders
    +Permission185=Order or cancel purchase orders
    +Permission186=Receive purchase orders
    +Permission187=Close purchase orders
    +Permission188=Cancel purchase orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -752,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties for which that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -767,10 +775,10 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    -Permission300=Read bar codes
    -Permission301=Create/modify bar codes
    -Permission302=Delete bar codes
    +Permission293=Modify customer's tariffs
    +Permission300=Read barcodes
    +Permission301=Create/modify barcodes
    +Permission302=Delete barcodes
     Permission311=Read services
     Permission312=Assign service/subscription to contract
     Permission331=Read bookmarks
    @@ -806,7 +814,7 @@ Permission538=Export services
     Permission701=Read donations
     Permission702=Create/modify donations
     Permission703=Delete donations
    -Permission771=Read expense reports (yours and your subordinates) 
    +Permission771=Read expense reports (yours and your subordinates)
     Permission772=Create/modify expense reports
     Permission773=Delete expense reports
     Permission774=Read all expense reports (even for user not subordinates)
    @@ -823,29 +831,29 @@ Permission1102=Create/modify delivery orders
     Permission1104=Validate delivery orders
     Permission1109=Delete delivery orders
     Permission1181=Read suppliers
    -Permission1182=Read supplier orders
    -Permission1183=Create/modify supplier orders
    -Permission1184=Validate supplier orders
    -Permission1185=Approve supplier orders
    -Permission1186=Order supplier orders
    -Permission1187=Acknowledge receipt of supplier orders
    -Permission1188=Delete supplier orders
    -Permission1190=Approve (second approval) supplier orders
    +Permission1182=Read purchase orders
    +Permission1183=Create/modify purchase orders
    +Permission1184=Validate purchase orders
    +Permission1185=Approve purchase orders
    +Permission1186=Order purchase orders
    +Permission1187=Acknowledge receipt of purchase orders
    +Permission1188=Delete purchase orders
    +Permission1190=Approve (second approval) purchase orders
     Permission1201=Get result of an export
     Permission1202=Create/Modify an export
    -Permission1231=Read supplier invoices
    -Permission1232=Create/modify supplier invoices
    -Permission1233=Validate supplier invoices
    -Permission1234=Delete supplier invoices
    -Permission1235=Send supplier invoices by email
    -Permission1236=Export supplier invoices, attributes and payments
    -Permission1237=Export supplier orders and their details
    +Permission1231=Read vendor invoices
    +Permission1232=Create/modify vendor invoices
    +Permission1233=Validate vendor invoices
    +Permission1234=Delete vendor invoices
    +Permission1235=Send vendor invoices by email
    +Permission1236=Export vendor invoices, attributes and payments
    +Permission1237=Export purchase orders and their details
     Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
    -Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission1421=Export sales orders and attributes
    +Permission20001=Read leave requests (your leave and those of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and those of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -867,7 +875,7 @@ Permission2503=Submit or delete documents
     Permission2515=Setup documents directories
     Permission2801=Use FTP client in read mode (browse and download only)
     Permission2802=Use FTP client in write mode (delete or upload files)
    -Permission50101=Use Point of sales
    +Permission50101=Use Point of Sale
     Permission50201=Read transactions
     Permission50202=Import transactions
     Permission54001=Print
    @@ -880,74 +888,75 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    -DictionaryProspectLevel=Prospect potential level
    -DictionaryCanton=State/Province
    +DictionaryCompanyType=Third-Party Types
    +DictionaryCompanyJuridicalType=Third-Party Legal Entities
    +DictionaryProspectLevel=Prospect potential
    +DictionaryCanton=States/Provinces
     DictionaryRegion=Regions
     DictionaryCountry=Countries
     DictionaryCurrency=Currencies
    -DictionaryCivility=Personal and professional titles
    +DictionaryCivility=Honorifics
     DictionaryActions=Types of agenda events
    -DictionarySocialContributions=Social or fiscal taxes types
    +DictionarySocialContributions=Types of social or fiscal taxes
     DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
    -DictionaryPaymentConditions=Payment terms
    -DictionaryPaymentModes=Payment modes
    +DictionaryPaymentConditions=Payment Terms
    +DictionaryPaymentModes=Payment Modes
     DictionaryTypeContact=Contact/Address types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    -DictionaryFormatCards=Cards formats
    +DictionaryFormatCards=Card formats
     DictionaryFees=Expense report - Types of expense report lines
     DictionarySendingMethods=Shipping methods
    -DictionaryStaff=Staff
    +DictionaryStaff=No. of Employees
     DictionaryAvailability=Delivery delay
     DictionaryOrderMethods=Ordering methods
     DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
    -DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryProspectStatus=Prospect status
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
    -BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to list of Dictionaries
    +BackToModuleList=Back to Module list
    +BackToDictionaryList=Back to Dictionaries list
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sales Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sales Tax rate follows the active standard rule:<br>If the seller is not subject to Sales tax, then Sales tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sales tax by default equals the Sales tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default VAT is 0. This rule is dependant on the seller's country - please consult with your accountant. The VAT should be paid by the buyer to the customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community VAT number) then the VAT defaults to the VAT rate of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community VAT number), then the VAT is 0 by default. End of rule.<br>In any other case the proposed default is Sales tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sales tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sales tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sales tax in franchise) and paid a franchise Sales tax without any Sales tax declaration.  This choice will display the reference "Non applicable Sales tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -957,7 +966,8 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -LabelOrTranslationKey=Label or translation key 
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
     NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
    @@ -996,17 +1006,17 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
     BackgroundImageLogin=Background image
     PermanentLeftSearchForm=Permanent search form on left menu
    -DefaultLanguage=Default language to use (language code)
    -EnableMultilangInterface=Enable multilingual interface
    +DefaultLanguage=Default language
    +EnableMultilangInterface=Enable multilanguage support
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Name
     CompanyAddress=Address
     CompanyZip=Zip
    @@ -1021,28 +1031,28 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delay before displaying a warning alert for:
    +DelaysOfToleranceDesc=Set the delay before an alert icon %s is shown onscreen for the late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Planned events (agenda events) not completed
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Planned task (project tasks) not completed
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Order not processed
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Purchase order not processed
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Proposal not closed
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Proposal not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Service to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Expired service
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Unpaid vendor invoice
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Unpaid customer invoice
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Check deposit not done
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Expense report to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The following two sections are mandatory (the two first entries in the Setup menu):
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries manage optional parameters.
     LogEvents=Security audit events
     Audit=Audit
     InfoDolibarr=About Dolibarr
    @@ -1056,83 +1066,83 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=Enable logging for specific security events. Administrators the log via menu <b>%s - %s</b>. Warning, this feature can generate a large amount of data in the database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
    -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +SystemAreaForAdminOnly=This area is available to administrator users only. Dolibarr user permissions cannot change this restriction.
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
    -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
    +DisplayDesc=Parameters affecting the look and behaviour of Dolibarr can be modified here.
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here. 
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
     TriggerActiveAsModuleActive=Triggers in this file are active as module <b>%s</b> is enabled.
    -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password
    +GeneratedPasswordDesc=Choose the method to be used for auto-generated passwords.
     DictionaryDesc=Insert all reference data. You can add your values to the default.
    -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
    +ConstDesc=This page allows you to edit (override) parameters not available in other pages. These are mostly reserved parameters for developers/advanced troubleshooting. For a full list of the parameters available <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">see here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
    -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
    -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps)
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
    +MAIN_MAX_DECIMALS_UNIT=Max. decimals for unit prices
    +MAIN_MAX_DECIMALS_TOT=Max. decimals for total prices
    +MAIN_MAX_DECIMALS_SHOWN=Max. decimals for prices <b>shown on screen</b>. Add an ellipsis <b>...</b> after this parameter (e.g. "2...") if you want to see "<b>...</b>" suffixed to the truncated price.
    +MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something other than base 10. For example, put 0.05 if rounding is done by 0.05 steps)
     UnitPriceOfProduct=Net unit price of a product
    -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
    +TotalPriceAfterRounding=Total price (excl/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been logged. This is normal if Audit has not been enabled in the "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
    -BackupDesc=To make a complete backup of Dolibarr, you must:
    -BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    -BackupDescX=Archived directory should be stored in a secure place.
    +BackupDesc=A <b>complete</b> backup of a Dolibarr installation requires two steps.
    +BackupDesc2=Backup the contents of the "documents" directory (<b>%s</b>) containing all uploaded and generated files. This will also include all the dump files generated in Step 1.
    +BackupDesc3=Backup the structure and contents of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
    +BackupDescX=The archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    -RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
    +RestoreDesc=To restore a Dolibarr backup, two steps are required.
    +RestoreDesc2=Restore the backup file (zip file for example) of the "documents" directory to a new Dolibarr installation or into this current documents directory (<b>%s</b>).
    +RestoreDesc3=Restore the database structure and data from a backup dump file into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once the restore is complete, you must use a login/password, that existed from the backup time/installation to connect again.<br>To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    -PreviousDumpFiles=Generated database backup files
    -WeekStartOnDay=First day of week 
    -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s)
    +PreviousDumpFiles=Existing backup files
    +WeekStartOnDay=First day of the week
    +RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Program version %s differs from Database version %s)
     YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user <b>%s</b> or you must add -W option at end of command line to provide <b>%s</b> password.
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
    -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is sequential with no reset
    +ShowProfIdInAddress=Show professional id with addresses
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. 
    -ExternalAccess=External access
    -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
    -MAIN_PROXY_HOST=Name/Address of proxy server
    -MAIN_PROXY_PORT=Port of proxy server
    -MAIN_PROXY_USER=Login to use the proxy server
    -MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +ProxyDesc=Some features of Dolibarr require internet access. Define here the internet connection parameters such as access through a proxy server if necessary.
    +ExternalAccess=External/Internet Access
    +MAIN_PROXY_USE=Use a proxy server (otherwise access is direct to the internet)
    +MAIN_PROXY_HOST=Proxy server: Name/Address
    +MAIN_PROXY_PORT=Proxy server: Port
    +MAIN_PROXY_USER=Proxy server: Login/User
    +MAIN_PROXY_PASS=Proxy server: Password
    +DefineHereComplementaryAttributes=Define here any additional/custom attributes that you want to be included for: %s
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
    -ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsThirdParties=Complementary attributes (third party)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,91 +1156,93 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
    -TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
    +TranslationDesc=How to set the display language:<br>* Default/Systemwide: menu <strong>Home -> Setup -> Display</strong><br>* Per user: Click on the username at the top of the screen and modify the <strong>User Display Setup</strong> tab on the user card.
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are available to external users (irrespective of the permissions of such users) and only if permissions are granted:<br>
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver currently available.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    -AskForPreferredShippingMethod=Ask for preferred sending method for Third Parties.
    +AddRefInList=Display Customer/Vendor ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Vendor adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
     ##### Users setup #####
    -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords
    -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page
    +RuleForGeneratedPasswords=Rules to generate and validate passwords
    +DisableForgetPasswordLinkOnLogonPage=Do not show the "Password Forgotten" link on the Login page
     UsersSetup=Users module setup
    -UserMailRequired=EMail required to create a new user
    +UserMailRequired=Email required to create a new user
     ##### HRM setup #####
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Options for automatic generation of customer/supplier codes
    -AccountCodeManager=Options for automatic generation of customer/supplier accounting codes
    -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
    -NotificationsDescUser=* per users, one user at time.
    -NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
    -NotificationsDescGlobal=* or by setting global target emails in module setup page.
    +CompanyCodeChecker=Options for automatic generation of customer/vendor codes
    +AccountCodeManager=Options for automatic generation of customer/vendor accounting codes
    +NotificationsDesc=Email notifications can be sent automatically for some Dolibarr events.<br>Recipients of notifications can be defined:
    +NotificationsDescUser=* per user, one user at a time.
    +NotificationsDescContact=* per third-party contacts (customers or vendors), one contact at a time.
    +NotificationsDescGlobal=* or by setting global email addresses in this setup page.
     ModelModules=Document Templates
     DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
     CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
    +MustBeMandatory=Mandatory to create third parties (if VAT number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    -WebDavServer=Root URL of %s server : %s
    +WebDAVSetupDesc=This is the link to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that needs an existing login account/password for access.
    +WebDavServer=Root URL of %s server: %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
     ##### Invoices #####
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
     ForceInvoiceDate=Force invoice date to validation date
     SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice
    -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account
    -SuggestPaymentByChequeToAddress=Suggest payment by cheque to
    +SuggestPaymentByRIBOnAccount=Suggest payment by withdrawal on account
    +SuggestPaymentByChequeToAddress=Suggest payment by check to
     FreeLegalTextOnInvoices=Free text on invoices
     WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty)
     PaymentsNumberingModule=Payments numbering model
    -SuppliersPayment=Suppliers payments
    -SupplierPaymentSetup=Suppliers payments setup
    +SuppliersPayment=Vendor payments
    +SupplierPaymentSetup=Vendor payments setup
     ##### Proposals #####
     PropalSetup=Commercial proposals module setup
     ProposalsNumberingModules=Commercial proposal numbering models
    @@ -1239,17 +1251,17 @@ FreeLegalTextOnProposal=Free text on commercial proposals
     WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty)
     BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal
     ##### SupplierProposal #####
    -SupplierProposalSetup=Price requests vendors module setup
    -SupplierProposalNumberingModules=Price requests vendors numbering models
    -SupplierProposalPDFModules=Price requests vendors documents models
    -FreeLegalTextOnSupplierProposal=Free text on price requests vendors
    -WatermarkOnDraftSupplierProposal=Watermark on draft price requests vendors (none if empty)
    +SupplierProposalSetup=Price requests suppliers module setup
    +SupplierProposalNumberingModules=Price requests suppliers numbering models
    +SupplierProposalPDFModules=Price requests suppliers documents models
    +FreeLegalTextOnSupplierProposal=Free text on price requests suppliers
    +WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty)
     BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request
     WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order
     ##### Suppliers Orders #####
     BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order
     ##### Orders #####
    -OrdersSetup=Order management setup
    +OrdersSetup=Sales Orders management setup
     OrdersNumberingModules=Orders numbering models
     OrdersModelModule=Order documents models
     FreeLegalTextOnOrders=Free text on orders
    @@ -1272,9 +1284,10 @@ WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty)
     MembersSetup=Members module setup
     MemberMainOptions=Main options
     AdherentLoginRequired= Manage a Login for each member
    -AdherentMailRequired=EMail required to create a new member
    +AdherentMailRequired=Email required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
    -VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +VisitorCanChooseItsPaymentMode=Visitor can choose from available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by email</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to send reminders.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1296,7 +1309,7 @@ LDAPSynchronizeMembersTypes=Organization of foundation's members types in LDAP
     LDAPPrimaryServer=Primary server
     LDAPSecondaryServer=Secondary server
     LDAPServerPort=Server port
    -LDAPServerPortExample=Default port : 389
    +LDAPServerPortExample=Default port: 389
     LDAPServerProtocolVersion=Protocol version
     LDAPServerUseTLS=Use TLS
     LDAPServerUseTLSExample=Your LDAP server use TLS
    @@ -1343,59 +1356,59 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
     LDAPLdapMapping=LDAP Mapping
     LDAPFieldLoginUnix=Login (unix)
    -LDAPFieldLoginExample=Example : uid
    +LDAPFieldLoginExample=Example: uid
     LDAPFilterConnection=Search filter
    -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson)
    +LDAPFilterConnectionExample=Example: &(objectClass=inetOrgPerson)
     LDAPFieldLoginSamba=Login (samba, activedirectory)
    -LDAPFieldLoginSambaExample=Example : samaccountname
    +LDAPFieldLoginSambaExample=Example: samaccountname
     LDAPFieldFullname=Full name
    -LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    -LDAPFieldPasswordExample=Example : userPassword
    -LDAPFieldCommonNameExample=Example : cn
    +LDAPFieldFullnameExample=Example: cn
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
    +LDAPFieldPasswordExample=Example: userPassword
    +LDAPFieldCommonNameExample=Example: cn
     LDAPFieldName=Name
    -LDAPFieldNameExample=Example : sn
    +LDAPFieldNameExample=Example: sn
     LDAPFieldFirstName=First name
    -LDAPFieldFirstNameExample=Example : givenName
    +LDAPFieldFirstNameExample=Example: givenName
     LDAPFieldMail=Email address
    -LDAPFieldMailExample=Example : mail
    +LDAPFieldMailExample=Example: mail
     LDAPFieldPhone=Professional phone number
    -LDAPFieldPhoneExample=Example : telephonenumber
    +LDAPFieldPhoneExample=Example: telephonenumber
     LDAPFieldHomePhone=Personal phone number
    -LDAPFieldHomePhoneExample=Example : homephone
    +LDAPFieldHomePhoneExample=Example: homephone
     LDAPFieldMobile=Cellular phone
    -LDAPFieldMobileExample=Example : mobile
    +LDAPFieldMobileExample=Example: mobile
     LDAPFieldFax=Fax number
    -LDAPFieldFaxExample=Example : facsimiletelephonenumber
    +LDAPFieldFaxExample=Example: facsimiletelephonenumber
     LDAPFieldAddress=Street
    -LDAPFieldAddressExample=Example : street
    +LDAPFieldAddressExample=Example: street
     LDAPFieldZip=Zip
    -LDAPFieldZipExample=Example : postalcode
    +LDAPFieldZipExample=Example: postalcode
     LDAPFieldTown=Town
    -LDAPFieldTownExample=Example : l
    +LDAPFieldTownExample=Example: l
     LDAPFieldCountry=Country
     LDAPFieldDescription=Description
    -LDAPFieldDescriptionExample=Example : description
    +LDAPFieldDescriptionExample=Example: description
     LDAPFieldNotePublic=Public Note
    -LDAPFieldNotePublicExample=Example : publicnote
    +LDAPFieldNotePublicExample=Example: publicnote
     LDAPFieldGroupMembers= Group members
    -LDAPFieldGroupMembersExample= Example : uniqueMember
    +LDAPFieldGroupMembersExample= Example: uniqueMember
     LDAPFieldBirthdate=Birthdate
     LDAPFieldCompany=Company
    -LDAPFieldCompanyExample=Example : o
    +LDAPFieldCompanyExample=Example: o
     LDAPFieldSid=SID
    -LDAPFieldSidExample=Example : objectsid
    +LDAPFieldSidExample=Example: objectsid
     LDAPFieldEndLastSubscription=Date of subscription end
     LDAPFieldTitle=Job position
     LDAPFieldTitleExample=Example: title
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
    -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server. 
    +MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). 
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers 
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. 
    -DefaultCreateForm=Default values (on forms to create)
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
    +TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    +DefaultValuesDesc=Here you may define the default value you wish to use when creating a new record, and/or default filters or the sort order when you list records.
    +DefaultCreateForm=Default values (to use on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
    -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +NumberOfProductShowInSelect=Maximum number of products to show in combo select lists (0=no limit)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise shown in a tooltip popup)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the language of the third party
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1458,7 +1472,7 @@ SyslogFilename=File name and path
     YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file.
     ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant
     OnlyWindowsLOG_USER=Windows only supports LOG_USER
    -CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug) 
    +CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug)
     SyslogFileNumberOfSaves=Log backups
     ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency
     ##### Donations #####
    @@ -1479,11 +1493,11 @@ BarcodeDescC39=Barcode of type C39
     BarcodeDescC128=Barcode of type C128
     BarcodeDescDATAMATRIX=Barcode of type Datamatrix
     BarcodeDescQRCODE=Barcode of type QR code
    -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".<br>For example: /usr/local/bin/genbarcode 
    +GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".<br>For example: /usr/local/bin/genbarcode
     BarcodeInternalEngine=Internal engine
     BarCodeNumberManager=Manager to auto define barcode numbers
     ##### Prelevements #####
    -WithdrawalsSetup=Setup of module Direct debit payment orders
    +WithdrawalsSetup=Setup of module Direct Debit payments
     ##### ExternalRSS #####
     ExternalRSSSetup=External RSS imports setup
     NewRSS=New RSS Feed
    @@ -1491,19 +1505,19 @@ RSSUrl=RSS URL
     RSSUrlExample=An interesting RSS feed
     ##### Mailing #####
     MailingSetup=EMailing module setup
    -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module
    -MailingEMailError=Return EMail (Errors-to) for emails with errors
    +MailingEMailFrom=Sender email (From) for emails sent by emailing module
    +MailingEMailError=Return Email (Errors-to) for emails with errors
     MailingDelay=Seconds to wait after sending next message
     ##### Notification #####
    -NotificationSetup=EMail notification module setup
    -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications
    -FixedEmailTarget=Fixed email target
    +NotificationSetup=Email Notification module setup
    +NotificationEMailFrom=Sender email (From) for emails sent by the Notifications module
    +FixedEmailTarget=Recipient
     ##### Sendings #####
    -SendingsSetup=Sending module setup
    +SendingsSetup=Shipping module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,13 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
    -##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1557,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1556,14 +1565,14 @@ ConfirmDeleteMenu=Are you sure you want to delete menu entry <b>%s</b>?
     FailedToInitializeMenu=Failed to initialize menu
     ##### Tax #####
     TaxSetup=Taxes, social or fiscal taxes and dividends module setup
    -OptionVatMode=VAT due 
    +OptionVatMode=VAT due
     OptionVATDefault=Standard basis
     OptionVATDebitOption=Accrual basis
    -OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on payments for services
    -OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
    +OptionVatDefaultDesc=VAT is due:<br>- on delivery of goods (based on invoice date)<br>- on payments for services
    +OptionVatDebitOptionDesc=VAT is due:<br>- on delivery of goods (based on invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: 
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1575,41 +1584,41 @@ InvoiceDateUsed=Invoice date used
     YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organization), so there is no VAT options to setup.
     AccountancyCode=Accounting Code
     AccountancyCodeSell=Sale account. code
    -AccountancyCodeBuy=Purchase account. code 
    +AccountancyCodeBuy=Purchase account. code
     ##### Agenda #####
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module makea phone numbers clickable links. A click on the icon will make your phone call the number. This can be used to call a call-center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    -##### Point Of Sales (CashDesk) #####
    -CashDesk=Point of sales
    -CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +##### Point Of Sale (CashDesk) #####
    +CashDesk=Point of Sale
    +CashDeskSetup=Point of Sales module setup
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
    -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
    +CashDeskBankAccountForCheque= Default account to use to receive payments by check
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
    +StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with module Serial/Lot management (currently active) so stock decrease is disabled.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1623,23 +1632,23 @@ ApiProductionMode=Enable production mode (this will activate use of a cache for
     ApiExporerIs=You can explore and test the APIs at URL
     OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed
     ApiKey=Key for API
    -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. 
    +WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it.
     ##### Bank #####
     BankSetupModule=Bank module setup
    -FreeLegalTextOnChequeReceipts=Free text on cheque receipts
    +FreeLegalTextOnChequeReceipts=Free text on check receipts
     BankOrderShow=Display order of bank accounts for countries using "detailed bank number"
     BankOrderGlobal=General
     BankOrderGlobalDesc=General display order
     BankOrderES=Spanish
     BankOrderESDesc=Spanish display order
    -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
    +ChequeReceiptsNumberingModule=Check Receipts Numbering Module
     ##### Multicompany #####
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
    -SuppliersSetup=Supplier module setup
    +SuppliersSetup=Vendor module setup
     SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
    -SuppliersInvoiceNumberingModel=Supplier invoices numbering models
    +SuppliersInvoiceNumberingModel=Vendor invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
     ##### GeoIPMaxmind #####
     GeoIPMaxmindSetup=GeoIP Maxmind module setup
    @@ -1675,7 +1684,7 @@ NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","
     SalariesSetup=Setup of module salaries
     SortOrder=Sort order
     Format=Format
    -TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers and vendors payment type 
    +TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers and suppliers payment type
     IncludePath=Include path (defined into variable %s)
     ExpenseReportsSetup=Setup of module Expense Reports
     TemplatePDFExpenseReports=Document templates to generate expense report document
    @@ -1683,20 +1692,21 @@ ExpenseReportsIkSetup=Setup of module Expense Reports - Milles index
     ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules
     ExpenseReportNumberingModules=Expense reports numbering module
     NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only.
    -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification".
    +YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for email notifications by enabling and configuring the module "Notification".
     ListOfNotificationsPerUser=List of notifications per user*
    -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
    -ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +ListOfNotificationsPerUserOrContact=List of notifications (events) available per user* or per contact**
    +ListOfFixedNotifications=List of Fixed Notifications
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
    -BackupDumpWizard=Wizard to build database backup dump file
    +BackupDumpWizard=Wizard to build the backup file
     SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason:
    -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. 
    +SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is a manual process only a privileged user may perform.
     InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file <strong>%s</strong> to allow this feature.
    -ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong> 
    +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1722,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
    -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +UrlTrackingDesc=If the provider or transport service offers a page or web site to check the status of your shipments, you may enter it here. You can use the key {TRACKID} in the URL parameters so the system will replace it with the tracking number the user entered into the shipment card.
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of the lead, this amount may be multiplied by this rate to evaluate a total amount all your leads may generate. Value is a percentage (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1730,7 +1740,7 @@ ExpectedChecksum=Expected Checksum
     CurrentChecksum=Current Checksum
     ForcedConstants=Required constant values
     MailToSendProposal=Customer proposals
    -MailToSendOrder=Customer orders
    +MailToSendOrder=Sales orders
     MailToSendInvoice=Customer invoices
     MailToSendShipment=Shipments
     MailToSendIntervention=Interventions
    @@ -1747,10 +1757,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so contains only bug fixes. We recommend all users to upgrade to this version. A maintenance release does not introduce new features or changes to the database. You may download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read the <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several levels of prices per product/service" is enabled, you can define different prices (one per price level) for each product. To save you time, here you may enter a rule to autocalculate a price for each level based on the price of the first level, so you will have to only enter a price for the first level for each product. This page is designed to save you time but ia useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto-define the barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,35 +1781,76 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) 
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). 
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. 
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    -NothingToSetup=There is no specific setup to do for this module.
    +NothingToSetup=There is no specific setup required for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=Privacy Policies or GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    -YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizens, you can name the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show in a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on the server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use Sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sales tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only. Also an URL parameter action=create or action=edit must be set OR page name must end with 'new.php' to trigger this feature.
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some records automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collection for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfully processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and third party if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load third party from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load third party from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
    +MainMenuCode=Menu entry code (mainmenu)
    +ECMAutoTree=Show automatic ECM tree
    +OperationParamDesc=Define values to use for action, or how to extract values. For example:<br>VALUE:abc<br>REGEX:SUBJECT:([^\s]*)<br>REGEX:BODY:My company name is\s([^\s]*)
    +OpeningHours=Opening hours
    +OpeningHoursDesc=Enter here the regular opening hours of your company.
     ##### Resource ####
    -ResourceSetup=Configuration du module Resource 
    +ResourceSetup=Configuration of Resource module
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    +MAIN_OPTIMIZEFORTEXTBROWSER=Simplify interface for blind person
    +MAIN_OPTIMIZEFORTEXTBROWSERDesc=Enable this option if you are a blind person, or if you use the application from a text browser like Lynx or Links.
    \ No newline at end of file
    diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang
    index 4a7ab99ca77..a38f3d23932 100644
    --- a/htdocs/langs/en_US/agenda.lang
    +++ b/htdocs/langs/en_US/agenda.lang
    @@ -1,12 +1,12 @@
    -# Dolibarr language file - Source file is en_US - agenda 
    +# Dolibarr language file - Source file is en_US - agenda
     IdAgenda=ID event
     Actions=Events
     Agenda=Agenda
     TMenuAgenda=Agenda
     Agendas=Agendas
     LocalAgenda=Internal calendar
    -ActionsOwnedBy=Event owned by 
    -ActionsOwnedByShort=Owner 
    +ActionsOwnedBy=Event owned by
    +ActionsOwnedByShort=Owner
     AffectedTo=Assigned to
     Event=Event
     Events=Events
    @@ -31,14 +31,15 @@ ViewWeek=Week view
     ViewPerUser=Per user view
     ViewPerType=Per type view
     AutoActions= Automatic filling
    -AgendaAutoActionDesc= Define here events for which you want Dolibarr to create automatically an event in agenda. If nothing is checked, only manual actions will be included in logged and visible into agenda. Automatic tracking of business actions done on objects (validation, status change) will not be saved. 
    -AgendaSetupOtherDesc= This page provides options to allow export of your Dolibarr events into an external calendar (thunderbird, google calendar, ...)
    +AgendaAutoActionDesc= Here you may define events which you want Dolibarr to create automatically  in Agenda. If nothing is checked, only manual actions will be included in logs and displayed in Agenda. Automatic tracking of business actions done on objects (validation, status change) will not be saved.
    +AgendaSetupOtherDesc= This page provides options to allow the export of your Dolibarr events into an external calendar (Thunderbird, Google Calendar etc...)
     AgendaExtSitesDesc=This page allows to declare external sources of calendars to see their events into Dolibarr agenda.
     ActionsEvents=Events for which Dolibarr will create an action in agenda automatically
     EventRemindersByEmailNotEnabled=Event reminders by email was not enabled into %s module setup.
     ##### Agenda event labels #####
     NewCompanyToDolibarr=Third party %s created
     ContractValidatedInDolibarr=Contract %s validated
    +CONTRACT_DELETEInDolibarr=Contract %s deleted
     PropalClosedSignedInDolibarr=Proposal %s signed
     PropalClosedRefusedInDolibarr=Proposal %s refused
     PropalValidatedInDolibarr=Proposal %s validated
    @@ -59,6 +60,7 @@ MemberSubscriptionDeletedInDolibarr=Subscription %s for member %s deleted
     ShipmentValidatedInDolibarr=Shipment %s validated
     ShipmentClassifyClosedInDolibarr=Shipment %s classified billed
     ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened
    +ShipmentBackToDraftInDolibarr=Shipment %s go back to draft status
     ShipmentDeletedInDolibarr=Shipment %s deleted
     OrderCreatedInDolibarr=Order %s created
     OrderValidatedInDolibarr=Order %s validated
    @@ -68,15 +70,15 @@ OrderBilledInDolibarr=Order %s classified billed
     OrderApprovedInDolibarr=Order %s approved
     OrderRefusedInDolibarr=Order %s refused
     OrderBackToDraftInDolibarr=Order %s go back to draft status
    -ProposalSentByEMail=Commercial proposal %s sent by EMail
    -ContractSentByEMail=Contract %s sent by EMail
    -OrderSentByEMail=Customer order %s sent by EMail
    -InvoiceSentByEMail=Customer invoice %s sent by EMail
    -SupplierOrderSentByEMail=Supplier order %s sent by EMail
    -SupplierInvoiceSentByEMail=Supplier invoice %s sent by EMail
    -ShippingSentByEMail=Shipment %s sent by EMail
    +ProposalSentByEMail=Commercial proposal %s sent by email
    +ContractSentByEMail=Contract %s sent by email
    +OrderSentByEMail=Sales order %s sent by email
    +InvoiceSentByEMail=Customer invoice %s sent by email
    +SupplierOrderSentByEMail=Purchase order %s sent by email
    +SupplierInvoiceSentByEMail=Vendor invoice %s sent by email
    +ShippingSentByEMail=Shipment %s sent by email
     ShippingValidated= Shipment %s validated
    -InterventionSentByEMail=Intervention %s sent by EMail
    +InterventionSentByEMail=Intervention %s sent by email
     ProposalDeleted=Proposal deleted
     OrderDeleted=Order deleted
     InvoiceDeleted=Invoice deleted
    @@ -91,6 +93,9 @@ EXPENSE_REPORT_REFUSEDInDolibarr=Expense report %s refused
     PROJECT_CREATEInDolibarr=Project %s created
     PROJECT_MODIFYInDolibarr=Project %s modified
     PROJECT_DELETEInDolibarr=Project %s deleted
    +TICKET_CREATEInDolibarr=Ticket %s created
    +TICKET_MODIFYInDolibarr=Ticket %s modified
    +TICKET_DELETEInDolibarr=Ticket %s deleted
     ##### End agenda events #####
     AgendaModelModule=Document templates for event
     DateActionStart=Start date
    @@ -110,7 +115,7 @@ DefaultWorkingHours=Default working hours in day (Example: 9-18)
     # External Sites ical
     ExportCal=Export calendar
     ExtSites=Import external calendars
    -ExtSitesEnableThisTool=Show external calendars (defined into global setup) into agenda. Does not affect external calendars defined by users.
    +ExtSitesEnableThisTool=Show external calendars (defined in global setup) in Agenda. Does not affect external calendars defined by users.
     ExtSitesNbOfAgenda=Number of calendars
     AgendaExtNb=Calendar no. %s
     ExtSiteUrlAgenda=URL to access .ical file
    diff --git a/htdocs/langs/en_US/assets.lang b/htdocs/langs/en_US/assets.lang
    index 0f955fe19ce..6fb40755fdb 100644
    --- a/htdocs/langs/en_US/assets.lang
    +++ b/htdocs/langs/en_US/assets.lang
    @@ -22,7 +22,14 @@ AccountancyCodeAsset = Accounting code (asset)
     AccountancyCodeDepreciationAsset = Accounting code (depreciation asset account)
     AccountancyCodeDepreciationExpense = Accounting code (depreciation expense account)
     NewAssetType=New asset type
    +AssetsTypeSetup=Asset type setup
    +AssetTypeModified=Asset type modified
    +AssetType=Asset type
     AssetsLines=Assets
    +DeleteType=Delete
    +DeleteAnAssetType=Delete an asset type
    +ConfirmDeleteAssetType=Are you sure you want to delete this asset type?
    +ShowTypeCard=Show type '%s'
     
     # Module label 'ModuleAssetsName'
     ModuleAssetsName = Assets
    @@ -35,7 +42,7 @@ ModuleAssetsDesc = Assets description
     AssetsSetup = Assets setup
     Settings = Settings
     AssetsSetupPage = Assets setup page
    -ExtraFieldsAssetsType = Complementary attributes (Assets type)
    +ExtraFieldsAssetsType = Complementary attributes (Asset type)
     AssetsType=Asset type
     AssetsTypeId=Asset type id
     AssetsTypeLabel=Asset type label
    diff --git a/htdocs/langs/en_US/banks.lang b/htdocs/langs/en_US/banks.lang
    index c62dc0498e0..ae62cfcb755 100644
    --- a/htdocs/langs/en_US/banks.lang
    +++ b/htdocs/langs/en_US/banks.lang
    @@ -1,6 +1,6 @@
     # Dolibarr language file - Source file is en_US - banks
     Bank=Bank
    -MenuBankCash=Bank | Cash
    +MenuBankCash=Banks | Cash
     MenuVariousPayment=Miscellaneous payments
     MenuNewVariousPayment=New Miscellaneous payment
     BankName=Bank name
    @@ -30,7 +30,7 @@ AllTime=From start
     Reconciliation=Reconciliation
     RIB=Bank Account Number
     IBAN=IBAN number
    -BIC=BIC/SWIFT number
    +BIC=BIC/SWIFT code
     SwiftValid=BIC/SWIFT valid
     SwiftVNotalid=BIC/SWIFT not valid
     IbanValid=BAN valid
    @@ -42,11 +42,11 @@ AccountStatementShort=Statement
     AccountStatements=Account statements
     LastAccountStatements=Last account statements
     IOMonthlyReporting=Monthly reporting
    -BankAccountDomiciliation=Account address
    +BankAccountDomiciliation=Bank address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values failed. This means the information for this account number is not complete or is incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -97,14 +98,14 @@ BankLineConciliated=Entry reconciled
     Reconciled=Reconciled
     NotReconciled=Not reconciled
     CustomerInvoicePayment=Customer payment
    -SupplierInvoicePayment=Supplier payment
    +SupplierInvoicePayment=Vendor payment
     SubscriptionPayment=Subscription payment
     WithdrawalPayment=Withdrawal payment
     SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Future transaction. Unable to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,7 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to 
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automatically fill the field 'number of bank statement' with last statement number when making reconciliation
    +CashControl=POS cash fence
    +NewCashFence=New cash fence
    diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang
    index fae0f88fcc5..9f7975dcad9 100644
    --- a/htdocs/langs/en_US/bills.lang
    +++ b/htdocs/langs/en_US/bills.lang
    @@ -3,14 +3,14 @@ Bill=Invoice
     Bills=Invoices
     BillsCustomers=Customer invoices
     BillsCustomer=Customer invoice
    -BillsSuppliers=Supplier invoices
    +BillsSuppliers=Vendor invoices
     BillsCustomersUnpaid=Unpaid customer invoices
     BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s
    -BillsSuppliersUnpaid=Unpaid supplier invoices
    -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s
    +BillsSuppliersUnpaid=Unpaid vendor invoices
    +BillsSuppliersUnpaidForCompany=Unpaid vendors invoices for %s
     BillsLate=Late payments
     BillsStatistics=Customers invoices statistics
    -BillsStatisticsSuppliers=Suppliers invoices statistics
    +BillsStatisticsSuppliers=Vendors invoices statistics
     DisabledBecauseDispatchedInBookkeeping=Disabled because invoice was dispatched into bookkeeping
     DisabledBecauseNotLastInvoice=Disabled because invoice is not erasable. Some invoices were recorded after this one and it will create holes in the counter.
     DisabledBecauseNotErasable=Disabled because cannot be erased
    @@ -25,12 +25,12 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
    -invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice 
    +invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
     ReplaceInvoice=Replace invoice %s
     ReplacementInvoice=Replacement invoice
    @@ -41,7 +41,7 @@ CorrectionInvoice=Correction invoice
     UsedByInvoice=Used to pay invoice %s
     ConsumedBy=Consumed by
     NotConsumed=Not consumed
    -NoReplacableInvoice=No replacable invoices
    +NoReplacableInvoice=No replaceable invoices
     NoInvoiceToCorrect=No invoice to correct
     InvoiceHasAvoir=Was source of one or several credit notes
     CardBill=Invoice card
    @@ -53,9 +53,9 @@ InvoiceLine=Invoice line
     InvoiceCustomer=Customer invoice
     CustomerInvoice=Customer invoice
     CustomersInvoices=Customers invoices
    -SupplierInvoice=Supplier invoice
    -SuppliersInvoices=Suppliers invoices
    -SupplierBill=Supplier invoice
    +SupplierInvoice=Vendor invoice
    +SuppliersInvoices=Vendors invoices
    +SupplierBill=Vendor invoice
     SupplierBills=suppliers invoices
     Payment=Payment
     PaymentBack=Payment back
    @@ -66,33 +66,33 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    -SupplierPayments=Suppliers payments
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor.
    +SupplierPayments=Vendor payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to vendors
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
     PaymentsAlreadyDone=Payments already done
     PaymentsBackAlreadyDone=Payments back already done
     PaymentRule=Payment rule
    -PaymentMode=Payment type
    +PaymentMode=Payment Type
     PaymentTypeDC=Debit/Credit Card
     PaymentTypePP=PayPal
    -IdPaymentMode=Payment type (id)
    -CodePaymentMode=Payment type (code)
    -LabelPaymentMode=Payment type (label)
    -PaymentModeShort=Payment type
    -PaymentTerm=Payment term
    -PaymentConditions=Payment terms
    -PaymentConditionsShort=Payment terms
    +IdPaymentMode=Payment Type (id)
    +CodePaymentMode=Payment Type (code)
    +LabelPaymentMode=Payment Type (label)
    +PaymentModeShort=Payment Type
    +PaymentTerm=Payment Term
    +PaymentConditions=Payment Terms
    +PaymentConditionsShort=Payment Terms
     PaymentAmount=Payment amount
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -104,9 +104,9 @@ AddBill=Create invoice or credit note
     AddToDraftInvoices=Add to draft invoice
     DeleteBill=Delete invoice
     SearchACustomerInvoice=Search for a customer invoice
    -SearchASupplierInvoice=Search for a supplier invoice
    +SearchASupplierInvoice=Search for a vendor invoice
     CancelBill=Cancel an invoice
    -SendRemindByMail=Send reminder by EMail
    +SendRemindByMail=Send reminder by email
     DoPayment=Enter payment
     DoPaymentBack=Enter refund
     ConvertToReduc=Mark as credit available
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Paid
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Closed
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    -ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
    -ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
    +ErrorNoPaiementModeConfigured=No default payment type defined. Go to Invoice module setup to fix this.
    +ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment types
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -162,15 +163,15 @@ NewBill=New invoice
     LastBills=Latest %s invoices
     LatestTemplateInvoices=Latest %s template invoices
     LatestCustomerTemplateInvoices=Latest %s customer template invoices
    -LatestSupplierTemplateInvoices=Latest %s supplier template invoices
    +LatestSupplierTemplateInvoices=Latest %s vendor template invoices
     LastCustomersBills=Latest %s customer invoices
    -LastSuppliersBills=Latest %s supplier invoices
    +LastSuppliersBills=Latest %s vendor invoices
     AllBills=All invoices
     AllCustomerTemplateInvoices=All template invoices
     OtherBills=Other invoices
     DraftBills=Draft invoices
     CustomersDraftInvoices=Customer draft invoices
    -SuppliersDraftInvoices=Supplier draft invoices
    +SuppliersDraftInvoices=Vendor draft invoices
     Unpaid=Unpaid
     ConfirmDeleteBill=Are you sure you want to delete this invoice?
     ConfirmValidateBill=Are you sure you want to validate this invoice with reference <b>%s</b>?
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason for closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
    -ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note. 
    +ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Other
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -203,6 +204,7 @@ UnvalidateBill=Unvalidate invoice
     NumberOfBills=No. of invoices
     NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -245,11 +247,11 @@ DateInvoice=Invoice date
     DatePointOfTax=Point of tax
     NoInvoice=No invoice
     ClassifyBill=Classify invoice
    -SupplierBillsToPay=Unpaid supplier invoices
    +SupplierBillsToPay=Unpaid vendor invoices
     CustomerBillsUnpaid=Unpaid customer invoices
     NonPercuRecuperable=Non-recoverable
    -SetConditions=Set payment terms
    -SetMode=Set payment mode
    +SetConditions=Set Payment Terms
    +SetMode=Set Payment Type
     SetRevenuStamp=Set revenue stamp
     Billed=Billed
     RecurringInvoices=Recurring invoices
    @@ -266,9 +268,9 @@ ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    -ReductionShort=Reduc.
    +ReductionShort=Disc.
     Reductions=Reductions
    -ReductionsShort=Reduc.
    +ReductionsShort=Disc.
     Discounts=Discounts
     AddDiscount=Create discount
     AddRelativeDiscount=Create relative discount
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payments during the fixed year are included here.
     NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount. 
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into two smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=The total of the two new discounts must be equal to the original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
    -RelatedSupplierInvoices=Related supplier invoices
    +RelatedSupplierInvoices=Related vendor invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -344,7 +346,7 @@ ListOfSituationInvoices=List of situation invoices
     CurrentSituationTotal=Total current situation
     DisabledBecauseNotEnouthCreditNote=To remove a situation invoice from cycle, this invoice's credit note total must cover this invoice total
     RemoveSituationFromCycle=Remove this invoice from cycle
    -ConfirmRemoveSituationFromCycle=Remove this invoice %s from cycle ? 
    +ConfirmRemoveSituationFromCycle=Remove this invoice %s from cycle ?
     ConfirmOuting=Confirm outing
     FrequencyPer_d=Every %s days
     FrequencyPer_m=Every %s months
    @@ -355,7 +357,7 @@ NextDateToExecution=Date for next invoice generation
     NextDateToExecutionShort=Date next gen.
     DateLastGeneration=Date of latest generation
     DateLastGenerationShort=Date latest gen.
    -MaxPeriodNumber=Max number of invoice generation
    +MaxPeriodNumber=Max. number of invoice generation
     NbOfGenerationDone=Number of invoice generation already done
     NbOfGenerationDoneShort=Number of generation done
     MaxGenerationReached=Maximum number of generations reached
    @@ -392,7 +394,7 @@ PaymentConditionShort14D=14 days
     PaymentCondition14D=14 days
     PaymentConditionShort14DENDMONTH=14 days of month-end
     PaymentCondition14DENDMONTH=Within 14 days following the end of the month
    -FixAmount=Fix amount
    +FixAmount=Fixed amount
     VarAmount=Variable amount (%% tot.)
     VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s'
     # PaymentType
    @@ -408,22 +410,22 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Branch code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    -Residence=Direct debit
    -IBANNumber=IBAN number
    +BankAccountNumberKey=Checksum
    +Residence=Address
    +IBANNumber=IBAN account number
     IBAN=IBAN
     BIC=BIC/SWIFT
    -BICNumber=BIC/SWIFT number
    +BICNumber=BIC/SWIFT code
     ExtraInfos=Extra infos
     RegulatedOn=Regulated on
     ChequeNumber=Check N°
    @@ -436,34 +438,34 @@ NetToBePaid=Net to be paid
     PhoneNumber=Tel
     FullPhoneNumber=Telephone
     TeleFax=Fax
    -PrettyLittleSentence=Accept the amount of payments due by checks issued in my name as a Member of an accounting association approved by the Fiscal Administration.  
    -IntracommunityVATNumber=Intracommunity number of VAT
    -PaymentByChequeOrderedTo=Check payment (including tax) are payable to %s send to
    -PaymentByChequeOrderedToShort=Check payment (including tax) are payable to
    +PrettyLittleSentence=Accept the amount of payments due by checks issued in my name as a Member of an accounting association approved by the Fiscal Administration.
    +IntracommunityVATNumber=Intra-Community VAT ID
    +PaymentByChequeOrderedTo=Check payments (including tax) are payable to %s, send to
    +PaymentByChequeOrderedToShort=Check payments (incl. tax) are payable to
     SendTo=sent to
    -PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank account
    +PaymentByTransferOnThisBankAccount=Payment by transfer to the following bank account
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
     UseDiscount=Use discount
     UseCredit=Use credit
     UseCreditNoteInInvoicePayment=Reduce amount to pay with this credit
    -MenuChequeDeposits=Checks deposits
    +MenuChequeDeposits=Check Deposits
     MenuCheques=Checks
    -MenuChequesReceipts=Checks receipts
    +MenuChequesReceipts=Check receipts
     NewChequeDeposit=New deposit
    -ChequesReceipts=Checks receipts
    -ChequesArea=Checks deposits area
    -ChequeDeposits=Checks deposits
    +ChequesReceipts=Check receipts
    +ChequesArea=Check deposits area
    +ChequeDeposits=Check deposits
     Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third-party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down-payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoices with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating an invoice from tab "Customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating an invoice from tab "Vendor" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -499,10 +502,10 @@ TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer i
     TypeContact_facture_external_BILLING=Customer invoice contact
     TypeContact_facture_external_SHIPPING=Customer shipping contact
     TypeContact_facture_external_SERVICE=Customer service contact
    -TypeContact_invoice_supplier_internal_SALESREPFOLL=Representative following-up supplier invoice
    -TypeContact_invoice_supplier_external_BILLING=Supplier invoice contact
    -TypeContact_invoice_supplier_external_SHIPPING=Supplier shipping contact
    -TypeContact_invoice_supplier_external_SERVICE=Supplier service contact
    +TypeContact_invoice_supplier_internal_SALESREPFOLL=Representative following-up vendor invoice
    +TypeContact_invoice_supplier_external_BILLING=Vendor invoice contact
    +TypeContact_invoice_supplier_external_SHIPPING=Vendor shipping contact
    +TypeContact_invoice_supplier_external_SERVICE=Vendor service contact
     # Situation invoices
     InvoiceFirstSituationAsk=First situation invoice
     InvoiceFirstSituationDesc=The <b>situation invoices</b> are tied to situations related to a progression, for example the progression of a construction. Each situation is tied to an invoice.
    @@ -527,13 +530,13 @@ InvoiceSituationLast=Final and general invoice
     PDFCrevetteSituationNumber=Situation N°%s
     PDFCrevetteSituationInvoiceLineDecompte=Situation invoice - COUNT
     PDFCrevetteSituationInvoiceTitle=Situation invoice
    -PDFCrevetteSituationInvoiceLine=Situation N°%s : Inv. N°%s on %s
    +PDFCrevetteSituationInvoiceLine=Situation N°%s: Inv. N°%s on %s
     TotalSituationInvoice=Total situation
     invoiceLineProgressError=Invoice line progress can't be greater than or equal to the next invoice line
    -updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
    +updatePriceNextInvoiceErrorUpdateline=Error: update price on invoice line: %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both methods (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/en_US/blockedlog.lang b/htdocs/langs/en_US/blockedlog.lang
    index fa56db7eed6..6cc85024843 100644
    --- a/htdocs/langs/en_US/blockedlog.lang
    +++ b/htdocs/langs/en_US/blockedlog.lang
    @@ -1,15 +1,15 @@
     BlockedLog=Unalterable Logs
     Field=Field
    -BlockedLogDesc=This module tracks some events into an unalterable log (that you can't modify once recorded) into a block chain, in real time. This module provides compatibility with requirements of laws of some countries (like France with the law Finance 2016 - Norme NF535).
    +BlockedLogDesc=This module tracks some events into an unalterable log (that you can't modify once recorded) into a block chain, in real time. This module provides compatibility with requirements of laws of some countries (like France with the law Finance 2016 - Norme NF525).
     Fingerprints=Archived events and fingerprints
    -FingerprintsDesc=This is the tool to browse or extract the unalterable logs. Unalterable logs are generated and archived locally into a dedicated table, in real time when you record a business event. You can use this tool to export this archive and save it into an external support (some countries, like France, ask you do it every year). Note that, there is no feature to purge this log and every change tried to be done directly into this log (by a hacker for example) will be reported with a non valid fingerprint. If you really need to purge this table because you used your application for a demo/test purpose and want to clean your data to start your production, you can ask your reseller or integrator to reset your database (all your data will be removed).  
    +FingerprintsDesc=This is the tool to browse or extract the unalterable logs. Unalterable logs are generated and archived locally into a dedicated table, in real time when you record a business event. You can use this tool to export this archive and save it into an external support (some countries, like France, ask that you do it every year). Note that, there is no feature to purge this log and every change tried to be done directly into this log (by a hacker for example) will be reported with a non-valid fingerprint. If you really need to purge this table because you used your application for a demo/test purpose and want to clean your data to start your production, you can ask your reseller or integrator to reset your database (all your data will be removed).
     CompanyInitialKey=Company initial key (hash of genesis block)
     BrowseBlockedLog=Unalterable logs
     ShowAllFingerPrintsMightBeTooLong=Show all archived logs (might be long)
    -ShowAllFingerPrintsErrorsMightBeTooLong=Show all non valid archive logs (might be long)
    +ShowAllFingerPrintsErrorsMightBeTooLong=Show all non-valid archive logs (might be long)
     DownloadBlockChain=Download fingerprints
    -KoCheckFingerprintValidity=Archived log is not valid. It means someone (a hacker ?) has modified some datas of this archived log after it was recorded, or has erased the previous archived record (check that line with previous # exists).
    -OkCheckFingerprintValidity=Archived log is valid. It means all data on this line were not modified and record follow the previous one.
    +KoCheckFingerprintValidity=Archived log entry is not valid. It means someone (a hacker?) has modified some data of this re after it was recorded, or has erased the previous archived record (check that line with previous # exists).
    +OkCheckFingerprintValidity=Archived log record is valid. The data on this line was not modified and the entry follows the previous one.
     OkCheckFingerprintValidityButChainIsKo=Archived log seems valid compared to previous one but the chain was corrupted previously.
     AddedByAuthority=Stored into remote authority
     NotAddedByAuthorityYet=Not yet stored into remote authority
    @@ -22,8 +22,8 @@ logPAYMENT_CUSTOMER_CREATE=Customer payment created
     logPAYMENT_CUSTOMER_DELETE=Customer payment logical deletion
     logDONATION_PAYMENT_CREATE=Donation payment created
     logDONATION_PAYMENT_DELETE=Donation payment logical deletion
    -logBILL_PAYED=Customer invoice payed
    -logBILL_UNPAYED=Customer invoice set unpayed
    +logBILL_PAYED=Customer invoice paid
    +logBILL_UNPAYED=Customer invoice set unpaid
     logBILL_VALIDATE=Customer invoice validated
     logBILL_SENTBYMAIL=Customer invoice send by mail
     logBILL_DELETE=Customer invoice logically deleted
    @@ -32,9 +32,10 @@ logMODULE_SET=Module BlockedLog was enabled
     logDON_VALIDATE=Donation validated
     logDON_MODIFY=Donation modified
     logDON_DELETE=Donation logical deletion
    -logMEMBER_SUBSCRIPTION_CREATE=Member subcription created
    -logMEMBER_SUBSCRIPTION_MODIFY=Member subcription modified
    -logMEMBER_SUBSCRIPTION_DELETE=Member subcription logical deletion
    +logMEMBER_SUBSCRIPTION_CREATE=Member subscription created
    +logMEMBER_SUBSCRIPTION_MODIFY=Member subscription modified
    +logMEMBER_SUBSCRIPTION_DELETE=Member subscription logical deletion
    +logCASHCONTROL_VALIDATE=Cash fence recording
     BlockedLogBillDownload=Customer invoice download
     BlockedLogBillPreview=Customer invoice preview
     BlockedlogInfoDialog=Log Details
    @@ -46,8 +47,8 @@ logDOC_DOWNLOAD=Download of a validated document in order to print or send
     DataOfArchivedEvent=Full datas of archived event
     ImpossibleToReloadObject=Original object (type %s, id %s) not linked (see 'Full datas' column to get unalterable saved data)
     BlockedLogAreRequiredByYourCountryLegislation=Unalterable Logs module may be required by the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they can not be validated by a tax audit.
    -BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Unalterable Logs module was activated because of the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they can not be validated by a tax audit.
    +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Unalterable Logs module was activated because of the legislation of your country. Disabling this module may render any future transactions invalid with respect to the law and the use of legal software as they cannot be validated by a tax audit.
     BlockedLogDisableNotAllowedForCountry=List of countries where usage of this module is mandatory (just to prevent to disable the module by error, if your country is in this list, disable of module is not possible without editing this list first. Note also that enabling/disabling this module will keep a track into the unalterable log).
    -OnlyNonValid=Non valid
    -TooManyRecordToScanRestrictFilters=Too many record to scan/analyze. Please restrict list with more restrictive filters.
    +OnlyNonValid=Non-valid
    +TooManyRecordToScanRestrictFilters=Too many records to scan/analyze. Please restrict list with more restrictive filters.
     RestrictYearToExport=Restrict month / year to export
    diff --git a/htdocs/langs/en_US/bookmarks.lang b/htdocs/langs/en_US/bookmarks.lang
    index 9d2003f34d3..5330ab6e87c 100644
    --- a/htdocs/langs/en_US/bookmarks.lang
    +++ b/htdocs/langs/en_US/bookmarks.lang
    @@ -6,15 +6,15 @@ ListOfBookmarks=List of bookmarks
     EditBookmarks=List/edit bookmarks
     NewBookmark=New bookmark
     ShowBookmark=Show bookmark
    -OpenANewWindow=Open a new window
    -ReplaceWindow=Replace current window
    -BookmarkTargetNewWindowShort=New window
    -BookmarkTargetReplaceWindowShort=Current window
    -BookmarkTitle=Bookmark title
    +OpenANewWindow=Open a new tab
    +ReplaceWindow=Replace current tab
    +BookmarkTargetNewWindowShort=New tab
    +BookmarkTargetReplaceWindowShort=Current tab
    +BookmarkTitle=Bookmark name
     UrlOrLink=URL
     BehaviourOnClick=Behaviour when a bookmark URL is selected
     CreateBookmark=Create bookmark
    -SetHereATitleForLink=Set a title for the bookmark
    -UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL
    -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if linked page must open in new window or not
    +SetHereATitleForLink=Set a name for the bookmark
    +UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external/absolute link (https://URL) or an internal/relative link (/DOLIBARR_ROOT/htdocs/...)
    +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if the linked page should open in the current tab or a new tab
     BookmarksManagement=Bookmarks management
    diff --git a/htdocs/langs/en_US/boxes.lang b/htdocs/langs/en_US/boxes.lang
    index 152a6eccce5..db9eec32831 100644
    --- a/htdocs/langs/en_US/boxes.lang
    +++ b/htdocs/langs/en_US/boxes.lang
    @@ -1,18 +1,18 @@
     # Dolibarr language file - Source file is en_US - boxes
     BoxLoginInformation=Login Information
    -BoxLastRssInfos=Rss information
    -BoxLastProducts=Latest %s products/services
    +BoxLastRssInfos=RSS Information
    +BoxLastProducts=Latest %s Products/Services
     BoxProductsAlertStock=Stock alerts for products
     BoxLastProductsInContract=Latest %s contracted products/services
    -BoxLastSupplierBills=Latest supplier invoices
    -BoxLastCustomerBills=Latest customer invoices
    +BoxLastSupplierBills=Latest Vendor invoices
    +BoxLastCustomerBills=Latest Customer invoices
     BoxOldestUnpaidCustomerBills=Oldest unpaid customer invoices
    -BoxOldestUnpaidSupplierBills=Oldest unpaid supplier invoices
    +BoxOldestUnpaidSupplierBills=Oldest unpaid vendor invoices
     BoxLastProposals=Latest commercial proposals
     BoxLastProspects=Latest modified prospects
     BoxLastCustomers=Latest modified customers
     BoxLastSuppliers=Latest modified suppliers
    -BoxLastCustomerOrders=Latest customer orders
    +BoxLastCustomerOrders=Latest sales orders
     BoxLastActions=Latest actions
     BoxLastContracts=Latest contracts
     BoxLastContacts=Latest contacts/addresses
    @@ -20,22 +20,22 @@ BoxLastMembers=Latest members
     BoxFicheInter=Latest interventions
     BoxCurrentAccounts=Open accounts balance
     BoxTitleLastRssInfos=Latest %s news from %s
    -BoxTitleLastProducts=Products/Services: latest %s modified
    +BoxTitleLastProducts=Products/Services: last %s modified
     BoxTitleProductsAlertStock=Products: stock alert
     BoxTitleLastSuppliers=Latest %s recorded suppliers
    -BoxTitleLastModifiedSuppliers=Suppliers: latest %s modified
    -BoxTitleLastModifiedCustomers=Customers: latest %s modified
    +BoxTitleLastModifiedSuppliers=Vendors: last %s modified
    +BoxTitleLastModifiedCustomers=Customers: last %s modified
     BoxTitleLastCustomersOrProspects=Latest %s customers or prospects
    -BoxTitleLastCustomerBills=Latest %s modified customer invoices
    -BoxTitleLastSupplierBills=Latest %s modified supplier invoices
    -BoxTitleLastModifiedProspects=Latest %s modified prospects
    -BoxTitleLastModifiedMembers=Latest %s modified members
    +BoxTitleLastCustomerBills=Latest %s Customer invoices
    +BoxTitleLastSupplierBills=Latest %s Vendor invoices
    +BoxTitleLastModifiedProspects=Prospects: last %s modified
    +BoxTitleLastModifiedMembers=Latest %s members
     BoxTitleLastFicheInter=Latest %s modified interventions
     BoxTitleOldestUnpaidCustomerBills=Customer Invoices: oldest %s unpaid
    -BoxTitleOldestUnpaidSupplierBills=Supplier Invoices: oldest %s unpaid
    +BoxTitleOldestUnpaidSupplierBills=Vendor Invoices: oldest %s unpaid
     BoxTitleCurrentAccounts=Open Accounts: balances
    -BoxTitleLastModifiedContacts=Contacts/Addresses: latest %s modified
    -BoxMyLastBookmarks=Bookmarks: latest %s
    +BoxTitleLastModifiedContacts=Contacts/Addresses: last %s modified
    +BoxMyLastBookmarks=Bookmarks: last %s
     BoxOldestExpiredServices=Oldest active expired services
     BoxLastExpiredServices=Latest %s oldest contacts with active expired services
     BoxTitleLastActionsToDo=Latest %s actions to do
    @@ -45,38 +45,38 @@ BoxTitleLastModifiedExpenses=Latest %s modified expense reports
     BoxGlobalActivity=Global activity (invoices, proposals, orders)
     BoxGoodCustomers=Good customers
     BoxTitleGoodCustomers=%s Good customers
    -FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successfull refresh date: %s
    +FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successful refresh date: %s
     LastRefreshDate=Latest refresh date
     NoRecordedBookmarks=No bookmarks defined.
     ClickToAdd=Click here to add.
     NoRecordedCustomers=No recorded customers
     NoRecordedContacts=No recorded contacts
     NoActionsToDo=No actions to do
    -NoRecordedOrders=No recorded customer orders
    +NoRecordedOrders=No recorded sales orders
     NoRecordedProposals=No recorded proposals
     NoRecordedInvoices=No recorded customer invoices
     NoUnpaidCustomerBills=No unpaid customer invoices
    -NoUnpaidSupplierBills=No unpaid supplier invoices
    -NoModifiedSupplierBills=No recorded supplier invoices
    +NoUnpaidSupplierBills=No unpaid vendor invoices
    +NoModifiedSupplierBills=No recorded vendor invoices
     NoRecordedProducts=No recorded products/services
     NoRecordedProspects=No recorded prospects
     NoContractedProducts=No products/services contracted
     NoRecordedContracts=No recorded contracts
     NoRecordedInterventions=No recorded interventions
    -BoxLatestSupplierOrders=Latest supplier orders
    -NoSupplierOrder=No recorded supplier order
    +BoxLatestSupplierOrders=Latest purchase orders
    +NoSupplierOrder=No recorded purchase order
     BoxCustomersInvoicesPerMonth=Customer Invoices per month
    -BoxSuppliersInvoicesPerMonth=Supplier Invoices per month
    -BoxCustomersOrdersPerMonth=Customer Orders per month
    -BoxSuppliersOrdersPerMonth=Supplier Orders per month
    +BoxSuppliersInvoicesPerMonth=Vendor Invoices per month
    +BoxCustomersOrdersPerMonth=Sales Orders per month
    +BoxSuppliersOrdersPerMonth=Vendor Orders per month
     BoxProposalsPerMonth=Proposals per month
     NoTooLowStockProducts=No products are under the low stock limit
     BoxProductDistribution=Products/Services Distribution
     BoxProductDistributionFor=Distribution of %s by %s
    -BoxTitleLastModifiedSupplierBills=Latest %s modified vendors invoices
    -BoxTitleLatestModifiedSupplierOrders=Last %s modified purchase orders
    -BoxTitleLastModifiedCustomerBills=Latest %s modified customers invoices
    -BoxTitleLastModifiedCustomerOrders=Latest %s modified customer orders
    +BoxTitleLastModifiedSupplierBills=Vendor Invoices: last %s modified
    +BoxTitleLatestModifiedSupplierOrders=Vendor Orders: last %s modified
    +BoxTitleLastModifiedCustomerBills=Customer Invoices: last %s modified
    +BoxTitleLastModifiedCustomerOrders=Sales Orders: last %s modified
     BoxTitleLastModifiedPropals=Latest %s modified proposals
     ForCustomersInvoices=Customers invoices
     ForCustomersOrders=Customers orders
    diff --git a/htdocs/langs/en_US/cashdesk.lang b/htdocs/langs/en_US/cashdesk.lang
    index 1f51f375e89..ce9940bccde 100644
    --- a/htdocs/langs/en_US/cashdesk.lang
    +++ b/htdocs/langs/en_US/cashdesk.lang
    @@ -30,5 +30,23 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of Sale
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    +Receipt=Receipt
    +Header=Header
    +Footer=Footer
    +AmountAtEndOfPeriod=Amount at end of period (day, month or year)
    +TheoricalAmount=Theorical amount
    +RealAmount=Real amount
    +CashFenceDone=Cash fence done for the period
    +NbOfInvoices=Nb of invoices
    \ No newline at end of file
    diff --git a/htdocs/langs/en_US/categories.lang b/htdocs/langs/en_US/categories.lang
    index ee019d0ebbb..eb34e302cad 100644
    --- a/htdocs/langs/en_US/categories.lang
    +++ b/htdocs/langs/en_US/categories.lang
    @@ -10,7 +10,7 @@ modify=modify
     Classify=Classify
     CategoriesArea=Tags/Categories area
     ProductsCategoriesArea=Products/Services tags/categories area
    -SuppliersCategoriesArea=Suppliers tags/categories area
    +SuppliersCategoriesArea=Vendors tags/categories area
     CustomersCategoriesArea=Customers tags/categories area
     MembersCategoriesArea=Members tags/categories area
     ContactsCategoriesArea=Contacts tags/categories area
    @@ -32,7 +32,7 @@ WasAddedSuccessfully=<b>%s</b> was added successfully.
     ObjectAlreadyLinkedToCategory=Element is already linked to this tag/category.
     ProductIsInCategories=Product/service is linked to following tags/categories
     CompanyIsInCustomersCategories=This third party is linked to following customers/prospects tags/categories
    -CompanyIsInSuppliersCategories=This third party is linked to following suppliers tags/categories
    +CompanyIsInSuppliersCategories=This third party is linked to following vendors tags/categories
     MemberIsInCategories=This member is linked to following members tags/categories
     ContactIsInCategories=This contact is linked to following contacts tags/categories
     ProductHasNoCategory=This product/service is not in any tags/categories
    @@ -48,14 +48,14 @@ ContentsNotVisibleByAllShort=Contents not visible by all
     DeleteCategory=Delete tag/category
     ConfirmDeleteCategory=Are you sure you want to delete this tag/category?
     NoCategoriesDefined=No tag/category defined
    -SuppliersCategoryShort=Suppliers tag/category
    +SuppliersCategoryShort=Vendors tag/category
     CustomersCategoryShort=Customers tag/category
     ProductsCategoryShort=Products tag/category
     MembersCategoryShort=Members tag/category
    -SuppliersCategoriesShort=Suppliers tags/categories
    +SuppliersCategoriesShort=Vendors tags/categories
     CustomersCategoriesShort=Customers tags/categories
     ProspectsCategoriesShort=Prospects tags/categories
    -CustomersProspectsCategoriesShort=Cust./Prosp. categories
    +CustomersProspectsCategoriesShort=Cust./Prosp. tags/categories
     ProductsCategoriesShort=Products tags/categories
     MembersCategoriesShort=Members tags/categories
     ContactCategoriesShort=Contacts tags/categories
    @@ -63,14 +63,14 @@ AccountsCategoriesShort=Accounts tags/categories
     ProjectsCategoriesShort=Projects tags/categories
     UsersCategoriesShort=Users tags/categories
     ThisCategoryHasNoProduct=This category does not contain any product.
    -ThisCategoryHasNoSupplier=This category does not contain any supplier.
    +ThisCategoryHasNoSupplier=This category does not contain any vendor.
     ThisCategoryHasNoCustomer=This category does not contain any customer.
     ThisCategoryHasNoMember=This category does not contain any member.
     ThisCategoryHasNoContact=This category does not contain any contact.
     ThisCategoryHasNoAccount=This category does not contain any account.
     ThisCategoryHasNoProject=This category does not contain any project.
     CategId=Tag/category id
    -CatSupList=List of supplier tags/categories
    +CatSupList=List of vendor tags/categories
     CatCusList=List of customer/prospect tags/categories
     CatProdList=List of products tags/categories
     CatMemberList=List of members tags/categories
    diff --git a/htdocs/langs/en_US/commercial.lang b/htdocs/langs/en_US/commercial.lang
    index 47c5d8646ba..44e78324abf 100644
    --- a/htdocs/langs/en_US/commercial.lang
    +++ b/htdocs/langs/en_US/commercial.lang
    @@ -52,13 +52,14 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
     ActionAC_REL=Send customer invoice by mail (reminder)
     ActionAC_CLO=Close
     ActionAC_EMAILING=Send mass email
    -ActionAC_COM=Send customer order by mail
    +ActionAC_COM=Send sales order by mail
     ActionAC_SHIP=Send shipping by mail
     ActionAC_SUP_ORD=Send purchase order by mail
     ActionAC_SUP_INV=Send vendor invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome to the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    -FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled  
    \ No newline at end of file
    +SignatureProposalRef=Signature of quote/commercial proposal %s
    +FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang
    index 78762e542e2..99c1c12f781 100644
    --- a/htdocs/langs/en_US/companies.lang
    +++ b/htdocs/langs/en_US/companies.lang
    @@ -7,7 +7,7 @@ DeleteContact=Delete a contact/address
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
     MenuNewThirdParty=New Third Party
     MenuNewCustomer=New Customer
    -MenuNewProspect=Nnew Prospect
    +MenuNewProspect=New Prospect
     MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    @@ -20,16 +20,17 @@ IdThirdParty=Id third party
     IdCompany=Company Id
     IdContact=Contact Id
     Contacts=Contacts/Addresses
    -ThirdPartyContacts=Third party contacts
    -ThirdPartyContact=Third party contact/address
    +ThirdPartyContacts=Third-party contacts
    +ThirdPartyContact=Third-party contact/address
     Company=Company
     CompanyName=Company name
     AliasNames=Alias name (commercial, trademark, ...)
     AliasNameShort=Alias Name
     Companies=Companies
     CountryIsInEEC=Country is inside the European Economic Community
    -ThirdPartyName=Third Party Name
    -ThirdPartyEmail=Third party email
    +PriceFormatInCurrentLanguage=Price format in current language
    +ThirdPartyName=Third-Party Name
    +ThirdPartyEmail=Third-party Email
     ThirdParty=Third Party
     ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
    @@ -38,9 +39,9 @@ ThirdPartyCustomers=Customers
     ThirdPartyCustomersStats=Customers
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Type of company
    +ThirdPartyType=Third-Party Type
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will automatically create a contact/address with same information as the third party under the third party. In most cases, even if your third party is a physical person, creating a third party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -69,7 +70,7 @@ Chat=Chat
     PhonePro=Prof. phone
     PhonePerso=Pers. phone
     PhoneMobile=Mobile
    -No_Email=Refuse mass e-mailings
    +No_Email=Refuse bulk emailings
     Fax=Fax
     Zip=Zip Code
     Town=City
    @@ -79,9 +80,9 @@ DefaultLang=Language default
     VATIsUsed=Sales tax used
     VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
    -CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
    +CopyAddressFromSoc=Copy address from Third-Party details
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
    +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor vendor, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposals
     OverAllOrders=Orders
    @@ -102,7 +103,7 @@ WrongCustomerCode=Customer code invalid
     WrongSupplierCode=Vendor code invalid
     CustomerCodeModel=Customer code model
     SupplierCodeModel=Vendor code model
    -Gencod=Bar code
    +Gencod=Barcode
     ##### Professional ID #####
     ProfId1Short=Prof. id 1
     ProfId2Short=Prof. id 2
    @@ -258,8 +259,8 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    -VATIntraShort=Tax ID
    +VATIntra=Intra-Community VAT ID
    +VATIntraShort=EU VAT ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
     ProspectCustomer=Prospect / Customer
    @@ -272,22 +273,22 @@ CustomerRelativeDiscountShort=Relative discount
     CustomerAbsoluteDiscountShort=Absolute discount
     CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
    -HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
    -HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this vendor
    +HasNoRelativeDiscountFromSupplier=You have no default relative discount from this vendor
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
    -HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
    -HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    -HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for <b>%s</b> %s from this supplier
    -HasCreditNoteFromSupplier=You have credit notes for <b>%s</b> %s from this supplier
    +HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this vendor
    +HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this vendor
    +HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for <b>%s</b> %s from this vendor
    +HasCreditNoteFromSupplier=You have credit notes for <b>%s</b> %s from this vendor
     CompanyHasNoAbsoluteDiscount=This customer has no discount credit available
     CustomerAbsoluteDiscountAllUsers=Absolute customer discounts (granted by all users)
     CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Vendor
    +Vendor=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -311,8 +312,8 @@ CustomerCodeDesc=Customer Code, unique for all customers
     SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    @@ -340,14 +341,14 @@ CapitalOf=Capital of %s
     EditCompany=Edit company
     ThisUserIsNot=This user is not a prospect, customer nor vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The VAT ID must include the country prefix. The link <b>%s</b> uses the European VAT checker service (VIES) which requires internet access from the Dolibarr server.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check the intra-Community VAT ID on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    -Staff=Staff
    +NorProspectNorCustomer=Not prospect, nor customer
    +JuridicalStatus=Legal Entity Type
    +Staff=Employees
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
     ContactPrivate=Private
    @@ -368,7 +369,7 @@ TE_MEDIUM=Medium company
     TE_ADMIN=Governmental
     TE_SMALL=Small company
     TE_RETAIL=Retailer
    -TE_WHOLE=Wholetailer
    +TE_WHOLE=Wholesaler
     TE_PRIVATE=Private individual
     TE_OTHER=Other
     StatusProspect-1=Do not contact
    @@ -389,11 +390,12 @@ DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
     ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
     ExportDataset_company_2=Contacts and their properties
    -ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    -ImportDataset_company_2=Contacts/Addresses and attributes
    -ImportDataset_company_3=Bank accounts of Third Parties
    -ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
    -PriceLevel=Price level
    +ImportDataset_company_1=Third Parties and their properties
    +ImportDataset_company_2=Third-Parties additional contacts/addresses and attributes
    +ImportDataset_company_3=Third-Parties Bank accounts
    +ImportDataset_company_4=Third-Parties Sales representatives (assign sales representatives/users to companies)
    +PriceLevel=Price Level
    +PriceLevelLabels=Price Level Labels
     DeliveryAddress=Delivery address
     AddAddress=Add address
     SupplierCategory=Vendor category
    @@ -402,9 +404,9 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
     ListSuppliersShort=List of Vendors
     ListProspectsShort=List of Prospects
    @@ -420,15 +422,22 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or Vendor code already used, a new code is suggested
    +#Imports
    +PaymentTypeCustomer=Payment Type - Customer
    +PaymentTermsCustomer=Payment Terms - Customer
    +PaymentTypeSupplier=Payment Type - Vendor
    +PaymentTermsSupplier=Payment Term - Vendor
    +MulticurrencyUsed=Use Multicurrency
    +MulticurrencyCurrency=Currency
    \ No newline at end of file
    diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang
    index ba36f59ba4a..c6c3921edea 100644
    --- a/htdocs/langs/en_US/compta.lang
    +++ b/htdocs/langs/en_US/compta.lang
    @@ -6,12 +6,12 @@ OptionMode=Option for accountancy
     OptionModeTrue=Option Incomes-Expenses
     OptionModeVirtual=Option Claims-Debts
     OptionModeTrueDesc=In this context, the turnover is calculated over payments (date of payments). The validity of the figures is assured only if the book-keeping is scrutinized through the input/output on the accounts via invoices.
    -OptionModeVirtualDesc=In this context, the turnover is calculated over invoices (date of validation). When these invoices are due, whether they have been paid or not, they are listed in the turnover output. 
    +OptionModeVirtualDesc=In this context, the turnover is calculated over invoices (date of validation). When these invoices are due, whether they have been paid or not, they are listed in the turnover output.
     FeatureIsSupportedInInOutModeOnly=Feature only available in CREDITS-DEBTS accountancy mode (See Accountancy module configuration)
     VATReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using rules defined by Tax module setup.
     LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using rules defined by Company setup.
     Param=Setup
    -RemainingAmountPayment=Amount payment remaining :
    +RemainingAmountPayment=Amount payment remaining:
     Account=Account
     Accountparent=Parent account
     Accountsparent=Parent accounts
    @@ -29,7 +29,7 @@ BalanceBefore=Balance (before)
     Balance=Balance
     Debit=Debit
     Credit=Credit
    -Piece=Accounting Doc. 
    +Piece=Accounting Doc.
     AmountHTVATRealReceived=Net collected
     AmountHTVATRealPaid=Net paid
     VATToPay=Tax sales
    @@ -82,7 +82,7 @@ AccountancyTreasuryArea=Billing and payment area
     NewPayment=New payment
     Payments=Payments
     PaymentCustomerInvoice=Customer invoice payment
    -PaymentSupplierInvoice=Vendor invoice payment
    +PaymentSupplierInvoice=vendor invoice payment
     PaymentSocialContribution=Social/fiscal tax payment
     PaymentVat=VAT payment
     ListPayment=List of payments
    @@ -113,7 +113,7 @@ ShowVatPayment=Show VAT payment
     TotalToPay=Total to pay
     BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted ascending on %s and filtered for 1 bank account
     CustomerAccountancyCode=Customer accounting code
    -SupplierAccountancyCode=Vendor accounting code
    +SupplierAccountancyCode=vendor accounting code
     CustomerAccountancyCodeShort=Cust. account. code
     SupplierAccountancyCodeShort=Sup. account. code
     AccountNumber=Account number
    @@ -154,20 +154,20 @@ AnnualSummaryInputOutputMode=Balance of income and expenses, annual summary
     AnnualByCompanies=Balance of income and expenses, by predefined groups of account
     AnnualByCompaniesDueDebtMode=Balance of income and expenses, detail by predefined groups, mode <b>%sClaims-Debts%s</b> said <b>Commitment accounting</b>.
     AnnualByCompaniesInputOutputMode=Balance of income and expenses, detail by predefined groups, mode <b>%sIncomes-Expenses%s</b> said <b>cash accounting</b>.
    -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on actual payments made, if they are not yet accounted in Ledger.
    -SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even, if they are not yet accounted in Ledger.
    +SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on actual payments made even if they are not yet accounted in Ledger.
    +SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even if they are not yet accounted in Ledger.
     SeeReportInBookkeepingMode=See <b>%sBookeeping report%s</b> for a calculation on <b>Bookkeeping Ledger table</b>
     RulesAmountWithTaxIncluded=- Amounts shown are with all taxes included
     RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whether they are paid or not. Is also includes paid salaries.<br>- It is based on the validation date of invoices and VAT and on the due date for expenses. For salaries defined with Salary module, the value date of payment is used.
     RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries. <br>- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation.
    -RulesCADue=- It includes the client's due invoices whether they are paid or not. <br>- It is based on the validation date of these invoices.<br>
    -RulesCAIn=- It includes all the effective payments of invoices received from clients.<br>- It is based on the payment date of these invoices<br>
    +RulesCADue=- It includes the customer's due invoices whether they are paid or not. <br>- It is based on the validation date of these invoices.<br>
    +RulesCAIn=- It includes all the effective payments of invoices received from customers.<br>- It is based on the payment date of these invoices<br>
     RulesCATotalSaleJournal=It includes all credit lines from the Sale journal.
     RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME"
     RulesResultBookkeepingPredefined=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME"
     RulesResultBookkeepingPersonalized=It show record in your Ledger with accounting accounts <b>grouped by personalized groups</b>
     SeePageForSetup=See menu <a href="%s">%s</a> for setup
    -DepositsAreNotIncluded=- Down payment invoices are nor included
    +DepositsAreNotIncluded=- Down payment invoices are not included
     DepositsAreIncluded=- Down payment invoices are included
     LT1ReportByCustomers=Report tax 2 by third party
     LT2ReportByCustomers=Report tax 3 by third party
    @@ -191,7 +191,7 @@ RulesVATInProducts=- For material assets, the report includes the VAT received o
     RulesVATDueServices=- For services, the report includes VAT invoices due, paid or not, based on the invoice date.
     RulesVATDueProducts=- For material assets, the report includes the VAT invoices, based on the invoice date.
     OptionVatInfoModuleComptabilite=Note: For material assets, it should use the date of delivery to be more fair.
    -ThisIsAnEstimatedValue=This is a preview, based on business events and not from the final ledger table, so final results may differ from this preview values 
    +ThisIsAnEstimatedValue=This is a preview, based on business events and not from the final ledger table, so final results may differ from this preview values
     PercentOfInvoice=%%/invoice
     NotUsedForGoods=Not used on goods
     ProposalStats=Statistics on proposals
    @@ -203,7 +203,7 @@ ToDispatch=To dispatch
     ThirdPartyMustBeEditAsCustomer=Third party must be defined as a customer
     SellsJournal=Sales Journal
     PurchasesJournal=Purchases Journal
    -DescSellsJournal=Sales Journal 
    +DescSellsJournal=Sales Journal
     DescPurchasesJournal=Purchases Journal
     InvoiceRef=Invoice ref.
     CodeNotDef=Not defined
    @@ -220,7 +220,7 @@ LinkedOrder=Link to order
     Mode1=Method 1
     Mode2=Method 2
     CalculationRuleDesc=To calculate total VAT, there is two methods:<br>Method 1 is rounding vat on each line, then summing them.<br>Method 2 is summing all vat on each line, then rounding result.<br>Final result may differs from few cents. Default mode is mode <b>%s</b>.
    -CalculationRuleDescSupplier=According to supplier, choose appropriate method to apply same calculation rule and get same result expected by your supplier.
    +CalculationRuleDescSupplier=According to vendor, choose appropriate method to apply same calculation rule and get same result expected by your vendor.
     TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover collected per product is not available. This report is only available for turnover invoiced.
     TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced.
     CalculationMode=Calculation mode
    @@ -229,9 +229,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used
     ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup)
     ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
     ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
    -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
    +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined.
     ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties
    -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
    +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated vendor accounting account on third party is not defined.
     CloneTax=Clone a social/fiscal tax
     ConfirmCloneTax=Confirm the clone of a social/fiscal tax
     CloneTaxForNextMonth=Clone it for next month
    @@ -248,7 +248,7 @@ ErrorBankAccountNotFound=Error: Bank account not found
     FiscalPeriod=Accounting period
     ListSocialContributionAssociatedProject=List of social contributions associated with the project
     DeleteFromCat=Remove from accounting group
    -AccountingAffectation=Accounting assignement
    +AccountingAffectation=Accounting assignment
     LastDayTaxIsRelatedTo=Last day of period the tax is related to
     VATDue=Sale tax claimed
     ClaimedForThisPeriod=Claimed for the period
    diff --git a/htdocs/langs/en_US/contracts.lang b/htdocs/langs/en_US/contracts.lang
    index d2a03f64935..b4e8d7c96d9 100644
    --- a/htdocs/langs/en_US/contracts.lang
    +++ b/htdocs/langs/en_US/contracts.lang
    @@ -67,7 +67,7 @@ CloseService=Close service
     BoardRunningServices=Expired running services
     ServiceStatus=Status of service
     DraftContracts=Drafts contracts
    -CloseRefusedBecauseOneServiceActive=Contract can't be closed as ther is at least one open service on it
    +CloseRefusedBecauseOneServiceActive=Contract can't be closed as there is at least one open service on it
     ActivateAllContracts=Activate all contract lines
     CloseAllContracts=Close all contract lines
     DeleteContractLine=Delete a contract line
    diff --git a/htdocs/langs/en_US/cron.lang b/htdocs/langs/en_US/cron.lang
    index 704b852e138..26e125c820b 100644
    --- a/htdocs/langs/en_US/cron.lang
    +++ b/htdocs/langs/en_US/cron.lang
    @@ -11,11 +11,11 @@ URLToLaunchCronJobs=URL to check and launch qualified cron jobs
     OrToLaunchASpecificJob=Or to check and launch a specific job
     KeyForCronAccess=Security key for URL to launch cron jobs
     FileToLaunchCronJobs=Command line to check and launch qualified cron jobs
    -CronExplainHowToRunUnix=On Unix environment you should use the following crontab entry to run the command line each 5 minutes 
    -CronExplainHowToRunWin=On Microsoft(tm) Windows environement you can use Scheduled task tools to run the command line each 5 minutes
    +CronExplainHowToRunUnix=On Unix environment you should use the following crontab entry to run the command line each 5 minutes
    +CronExplainHowToRunWin=On Microsoft(tm) Windows environment you can use Scheduled Task tools to run the command line each 5 minutes
     CronMethodDoesNotExists=Class %s does not contains any method %s
     CronJobDefDesc=Cron job profiles are defined into the module descriptor file. When module is activated, they are loaded and available so you can administer the jobs from the admin tools menu %s.
    -CronJobProfiles=List of predefined cron job profiles 
    +CronJobProfiles=List of predefined cron job profiles
     # Menu
     EnabledAndDisabled=Enabled and disabled
     # Page list
    @@ -43,7 +43,7 @@ CronNoJobs=No jobs registered
     CronPriority=Priority
     CronLabel=Label
     CronNbRun=No. launches
    -CronMaxRun=Max number launch
    +CronMaxRun=Maximum number of launches
     CronEach=Every
     JobFinished=Job launched and finished
     #Page card
    @@ -61,11 +61,11 @@ CronStatusInactiveBtn=Disable
     CronTaskInactive=This job is disabled
     CronId=Id
     CronClassFile=Filename with class
    -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module). <BR> For exemple to call the fetch method of Dolibarr Product object /htdocs/<u>product</u>/class/product.class.php, the value for module is<br><i>product</i>
    -CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory). <BR> For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/<u>product.class.php</u>, the value for class file name is<br><i>product/class/product.class.php</i>
    -CronObjectHelp=The object name to load. <BR> For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is<br><i>Product</i>
    -CronMethodHelp=The object method to launch. <BR> For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is<br><i>fetch</i>
    -CronArgsHelp=The method arguments. <BR> For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be<br><i>0, ProductRef</i>
    +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module). <BR> For example to call the fetch method of Dolibarr Product object /htdocs/<u>product</u>/class/product.class.php, the value for module is<br><i>product</i>
    +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory). <BR> For example to call the fetch method of Dolibarr Product object htdocs/product/class/<u>product.class.php</u>, the value for class file name is<br><i>product/class/product.class.php</i>
    +CronObjectHelp=The object name to load. <BR> For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is<br><i>Product</i>
    +CronMethodHelp=The object method to launch. <BR> For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is<br><i>fetch</i>
    +CronArgsHelp=The method arguments. <BR> For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be<br><i>0, ProductRef</i>
     CronCommandHelp=The system command line to execute.
     CronCreateJob=Create new Scheduled Job
     CronFrom=From
    diff --git a/htdocs/langs/en_US/deliveries.lang b/htdocs/langs/en_US/deliveries.lang
    index 7e39f48ea55..778cb3332ad 100644
    --- a/htdocs/langs/en_US/deliveries.lang
    +++ b/htdocs/langs/en_US/deliveries.lang
    @@ -17,14 +17,15 @@ DeliveryNotValidated=Delivery not validated
     StatusDeliveryCanceled=Canceled
     StatusDeliveryDraft=Draft
     StatusDeliveryValidated=Received
    -# merou PDF model						   
    -NameAndSignature=Name and Signature : 
    +# merou PDF model
    +NameAndSignature=Name and Signature:
     ToAndDate=To___________________________________ on ____/_____/__________
     GoodStatusDeclaration=Have received the goods above in good condition,
    -Deliverer=Deliverer : 
    +Deliverer=Deliverer:
     Sender=Sender
     Recipient=Recipient
     ErrorStockIsNotEnough=There's not enough stock
     Shippable=Shippable
     NonShippable=Not Shippable
     ShowReceiving=Show delivery receipt
    +NonExistentOrder=Nonexistent order
    diff --git a/htdocs/langs/en_US/dict.lang b/htdocs/langs/en_US/dict.lang
    index bb79cd59d7d..ad3a24e12f6 100644
    --- a/htdocs/langs/en_US/dict.lang
    +++ b/htdocs/langs/en_US/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -295,7 +295,7 @@ CurrencyCentINR=paisa
     CurrencyCentSingINR=paise
     CurrencyThousandthSingTND=thousandth
     #### Input reasons #####
    -DemandReasonTypeSRC_INTE=Internetaaa
    +DemandReasonTypeSRC_INTE=Internet
     DemandReasonTypeSRC_CAMP_MAIL=Mailing campaign
     DemandReasonTypeSRC_CAMP_EMAIL=EMailing campaign
     DemandReasonTypeSRC_CAMP_PHO=Phone campaign
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    @@ -354,4 +355,4 @@ ExpAuto13PCV=13 CV and more
     ExpCyclo=Capacity lower to 50cm3
     ExpMoto12CV=Motorbike 1 or 2 CV
     ExpMoto345CV=Motorbike 3, 4 or 5 CV
    -ExpMoto5PCV=Motorbike 5 CV and more
    \ No newline at end of file
    +ExpMoto5PCV=Motorbike 5 CV and more
    diff --git a/htdocs/langs/en_US/donations.lang b/htdocs/langs/en_US/donations.lang
    index 748057cc9cc..5edc8d62033 100644
    --- a/htdocs/langs/en_US/donations.lang
    +++ b/htdocs/langs/en_US/donations.lang
    @@ -27,7 +27,7 @@ IConfirmDonationReception=The recipient declare reception, as a donation, of the
     MinimumAmount=Minimum amount is  %s
     FreeTextOnDonations=Free text to show in footer
     FrenchOptions=Options for France
    -DONATION_ART200=Show article 200 from CGI if you are concerned 
    +DONATION_ART200=Show article 200 from CGI if you are concerned
     DONATION_ART238=Show article 238 from CGI if you are concerned
     DONATION_ART885=Show article 885 from CGI if you are concerned
     DonationPayment=Donation payment
    diff --git a/htdocs/langs/en_US/ecm.lang b/htdocs/langs/en_US/ecm.lang
    index 1c89de928ca..369ac6dfdfa 100644
    --- a/htdocs/langs/en_US/ecm.lang
    +++ b/htdocs/langs/en_US/ecm.lang
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to vendor proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang
    index 25a5344ff62..b869847efb6 100644
    --- a/htdocs/langs/en_US/errors.lang
    +++ b/htdocs/langs/en_US/errors.lang
    @@ -4,7 +4,7 @@
     NoErrorCommitIsDone=No error, we commit
     # Errors
     ErrorButCommitIsDone=Errors found but we validate despite this
    -ErrorBadEMail=EMail %s is wrong
    +ErrorBadEMail=Email %s is wrong
     ErrorBadUrl=Url %s is wrong
     ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing.
     ErrorLoginAlreadyExists=Login %s already exists.
    @@ -23,14 +23,14 @@ ErrorFailToGenerateFile=Failed to generate file '<b>%s</b>'.
     ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type.
     ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only.
     ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different.
    -ErrorBadThirdPartyName=Bad value for third party name
    +ErrorBadThirdPartyName=Bad value for third-party name
     ErrorProdIdIsMandatory=The %s is mandatory
     ErrorBadCustomerCodeSyntax=Bad syntax for customer code
    -ErrorBadBarCodeSyntax=Bad syntax for bar code. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned.
    +ErrorBadBarCodeSyntax=Bad syntax for barcode. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned.
     ErrorCustomerCodeRequired=Customer code required
    -ErrorBarCodeRequired=Bar code required
    +ErrorBarCodeRequired=Barcode required
     ErrorCustomerCodeAlreadyUsed=Customer code already used
    -ErrorBarCodeAlreadyUsed=Bar code already used
    +ErrorBarCodeAlreadyUsed=Barcode already used
     ErrorPrefixRequired=Prefix required
     ErrorBadSupplierCodeSyntax=Bad syntax for vendor code
     ErrorSupplierCodeRequired=Vendor code required
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,38 +65,39 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
    -ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD) 
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    -ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
    -ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
    -ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    -ErrorsOnXLines=Errors on <b>%s</b> source record(s)
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
    +ErrorWrongValueForField=Field <b>%s</b>: '<b>%s</b>' does not match regex rule <b>%s</b>
    +ErrorFieldValueNotIn=Field <b>%s</b>: '<b>%s</b>' is not a value found in field <b>%s</b> of <b>%s</b>
    +ErrorFieldRefNotIn=Field <b>%s</b>: '<b>%s</b>' is not a <b>%s</b> existing ref
    +ErrorsOnXLines=%s errors found
     ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the file (file might be infected by a virus)
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
    -ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    -ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
    +ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this vendor
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created because of too-low quantities
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
     ErrorBadMaskBadRazMonth=Error, bad reset value
    -ErrorMaxNumberReachForThisMask=Max number reach for this mask
    +ErrorMaxNumberReachForThisMask=Maximum number reached for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -116,7 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    -ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour. 
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> cannot be negative on this type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to the invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to allow the old behaviour. 
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -140,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -149,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -173,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter it's status.
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -198,38 +199,42 @@ ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong
     ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (<strong>%s</strong>) does not match expected name syntax: <strong>%s</strong>
     ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
     ErrorNoWarehouseDefined=Error, no warehouses defined.
    -ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. 
    +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
     ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
     ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
     ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
     ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
    -ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action. 
    +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action.
     ErrorChooseBetweenFreeEntryOrPredefinedProduct=You must choose if article is a predefined product or not
     ErrorDiscountLargerThanRemainToPaySplitItBefore=The discount you try to apply is larger than remain to pay. Split the discount in 2 smaller discounts before.
     ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was modified or file was removed recently.
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of accounts. If few accounts were not loaded, you can still enter them manually.
    +ErrorBadSyntaxForParamKeyForContent=Bad syntax for param keyforcontent. Must have a value starting with %s or %s
    +ErrorVariableKeyForContentMustBeSet=Error, the constant with name %s (with text content to show) or %s (with external url to show) must be set.
     # Warnings
    -WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.  
    +WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
     WarningSafeModeOnCheckExecDir=Warning, PHP option <b>safe_mode</b> is on so command must be stored inside a directory declared by php parameter <b>safe_mode_exec_dir</b>.
     WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) already exists.
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    -WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole. 
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
    +WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable the installation/migration tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Omitting the creation of this file is a grave security risk.
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
     WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers.
    -WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s. 
    -WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. 
    +WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s.
    +WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit.
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    -WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    \ No newline at end of file
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
    +WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    +WarningProjectClosed=Project is closed. You must re-open it first.
    \ No newline at end of file
    diff --git a/htdocs/langs/en_US/exports.lang b/htdocs/langs/en_US/exports.lang
    index 093b4f4b46c..2ee374ee670 100644
    --- a/htdocs/langs/en_US/exports.lang
    +++ b/htdocs/langs/en_US/exports.lang
    @@ -7,17 +7,17 @@ ExportableDatas=Exportable dataset
     ImportableDatas=Importable dataset
     SelectExportDataSet=Choose dataset you want to export...
     SelectImportDataSet=Choose dataset you want to import...
    -SelectExportFields=Choose fields you want to export, or select a predefined export profile
    -SelectImportFields=Choose source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile:
    +SelectExportFields=Choose the fields you want to export, or select a predefined export profile
    +SelectImportFields=Choose the source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile:
     NotImportedFields=Fields of source file not imported
     SaveExportModel=Save your selections as an export profile/template (for reuse).
     SaveImportModel=Save this import profile (for reuse) ...
     ExportModelName=Export profile name
    -ExportModelSaved=Export profile saved under name <b>%s</b>.
    +ExportModelSaved=Export profile saved as <b>%s</b>.
     ExportableFields=Exportable fields
     ExportedFields=Exported fields
     ImportModelName=Import profile name
    -ImportModelSaved=Import profile saved under name <b>%s</b>.
    +ImportModelSaved=Import profile saved as <b>%s</b>.
     DatasetToExport=Dataset to export
     DatasetToImport=Import file into dataset
     ChooseFieldsOrdersAndTitle=Choose fields order...
    @@ -44,7 +44,7 @@ LineDescription=Description of line
     LineUnitPrice=Unit price of line
     LineVATRate=VAT Rate of line
     LineQty=Quantity for line
    -LineTotalHT=Amount net of tax for line
    +LineTotalHT=Amount excl. tax for line
     LineTotalTTC=Amount with tax for line
     LineTotalVAT=Amount of VAT for line
     TypeOfLineServiceOrProduct=Type of line (0=product, 1=service)
    @@ -68,7 +68,7 @@ FieldsTarget=Targeted fields
     FieldTarget=Targeted field
     FieldSource=Source field
     NbOfSourceLines=Number of lines in source file
    -NowClickToTestTheImport=Check the import setup you defined (check if you must omit the header lines, or these will be flagged as errors in the following simulation).<br>Click on the "<b>%s</b>" button to run a check of the file structure/contents and simulate the import process.<br><b>No data will be changed in your database</b>.
    +NowClickToTestTheImport=Check that the file format (field and string delimiters) of your file matches the options shown and that you have omitted the header line, or these will be flagged as errors in the following simulation.<br>Click on the "<b>%s</b>" button to run a check of the file structure/contents and simulate the import process.<br><b>No data will be changed in your database</b>.
     RunSimulateImportFile=Run Import Simulation
     FieldNeedSource=This field requires data from the source file
     SomeMandatoryFieldHaveNoSource=Some mandatory fields have no source from data file
    @@ -78,30 +78,30 @@ SelectAtLeastOneField=Switch at least one source field in the column of fields t
     SelectFormat=Choose this import file format
     RunImportFile=Import Data
     NowClickToRunTheImport=Check the results of the import simulation. Correct any errors and re-test.<br>When the simulation reports no errors you may proceed to import the data into the database.
    -DataLoadedWithId=All data will be loaded with the following import id: <b>%s</b> to enable a search on this set of data in case of discovering problems in the future.
    +DataLoadedWithId=The imported data will have an additional field in each database table with this import id: <b>%s</b>, to allow it to be searchable in the case of investigating a problem related to this import.
     ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field <b>%s</b>.
     TooMuchErrors=There are still <b>%s</b> other source lines with errors but output has been limited.
     TooMuchWarnings=There are still <b>%s</b> other source lines with warnings but output has been limited.
     EmptyLine=Empty line (will be discarded)
    -CorrectErrorBeforeRunningImport=You must first correct all errors before running definitive import.
    -FileWasImported=File was imported with number <b>%s</b>. 
    -YouCanUseImportIdToFindRecord=You can find all imported record in your database by filtering on field <b>import_key='%s'</b>.
    +CorrectErrorBeforeRunningImport=You <b>must</b> correct all errors <b>before</b> running the definitive import.
    +FileWasImported=File was imported with number <b>%s</b>.
    +YouCanUseImportIdToFindRecord=You can find all the imported records in your database by filtering on field <b>import_key='%s'</b>.
     NbOfLinesOK=Number of lines with no errors and no warnings: <b>%s</b>.
     NbOfLinesImported=Number of lines successfully imported: <b>%s</b>.
     DataComeFromNoWhere=Value to insert comes from nowhere in source file.
     DataComeFromFileFieldNb=Value to insert comes from field number <b>%s</b> in source file.
    -DataComeFromIdFoundFromRef=Value that comes from field number <b>%s</b> of source file will be used to find id of parent object to use (So the objet <b>%s</b> that has the ref. from source file must exists into Dolibarr).
    -DataComeFromIdFoundFromCodeId=Code that comes from field number <b>%s</b> of source file will be used to find id of parent object to use (So the code from source file must exists into dictionary <b>%s</b>). Note that if you know id, you can also use it into source file instead of code. Import should work in both cases. 
    +DataComeFromIdFoundFromRef=Value that comes from field number <b>%s</b> of source file will be used to find the id of the parent object to use (so the object <b>%s</b> that has the ref. from source file must exist in the database).
    +DataComeFromIdFoundFromCodeId=Code that comes from field number <b>%s</b> of source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary <b>%s</b>). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases.
     DataIsInsertedInto=Data coming from source file will be inserted into the following field:
    -DataIDSourceIsInsertedInto=The id of parent object found using the data in source file, will be inserted into the following field:
    +DataIDSourceIsInsertedInto=The id of parent object was found using the data in the source file, will be inserted into the following field:
     DataCodeIDSourceIsInsertedInto=The id of parent line found from code, will be inserted into following field:
     SourceRequired=Data value is mandatory
     SourceExample=Example of possible data value
     ExampleAnyRefFoundIntoElement=Any ref found for element <b>%s</b>
     ExampleAnyCodeOrIdFoundIntoDictionary=Any code (or id) found into dictionary <b>%s</b>
    -CSVFormatDesc=<b>Comma Separated Value</b> file format (.csv).<br>This is a text file format where fields are separated by separator [ %s ]. If separator is found inside a field content, field is rounded by round character [ %s ]. Escape character to escape round character is [ %s ].
    -Excel95FormatDesc=<b>Excel</b> file format (.xls)<br>This is native Excel 95 format (BIFF5).
    -Excel2007FormatDesc=<b>Excel</b> file format (.xlsx)<br>This is native Excel 2007 format (SpreadsheetML).
    +CSVFormatDesc=<b>Comma Separated Value</b> file format (.csv).<br>This is a text file format where fields are separated by a separator [ %s ]. If separator is found inside a field content, field is rounded by round character [ %s ]. Escape character to escape round character is [ %s ].
    +Excel95FormatDesc=<b>Excel</b> file format (.xls)<br>This is the native Excel 95 format (BIFF5).
    +Excel2007FormatDesc=<b>Excel</b> file format (.xlsx)<br>This is the native Excel 2007 format (SpreadsheetML).
     TsvFormatDesc=<b>Tab Separated Value</b> file format (.tsv)<br>This is a text file format where fields are separated by a tabulator [tab].
     ExportFieldAutomaticallyAdded=Field <b>%s</b> was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ).
     CsvOptions=CSV format options
    @@ -109,16 +109,16 @@ Separator=Field Separator
     Enclosure=String Delimiter
     SpecialCode=Special code
     ExportStringFilter=%% allows replacing one or more characters in the text
    -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day<br>YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days<br> > YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days<br> < YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days
    +ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: filters by one year/month/day<br>YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD: filters over a range of years/months/days<br> > YYYY, > YYYYMM, > YYYYMMDD: filters on all following years/months/days<br> < YYYY, < YYYYMM, < YYYYMMDD: filters on all previous years/months/days
     ExportNumericFilter=NNNNN filters by one value<br>NNNNN+NNNNN filters over a range of values<br>< NNNNN filters by lower values<br>> NNNNN filters by higher values
     ImportFromLine=Import starting from line number
     EndAtLineNb=End at line number
    -ImportFromToLine=Limit range (from - to) eg. to omit header line
    -SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines
    -KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file
    -SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt
    +ImportFromToLine=Limit range (From - To) eg. <b>to omit header line(s)</b>
    +SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines.<br>If the header lines are NOT omitted, this will result in multiple errors in the Import Simulation.
    +KeepEmptyToGoToEndOfFile=Keep this field empty to process all lines to the end of the file.
    +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for an UPDATE import
     UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert)
    -NoUpdateAttempt=No update attempt was performed, only insert 
    +NoUpdateAttempt=No update attempt was performed, only insert
     ImportDataset_user_1=Users (employees or not) and properties
     ComputedField=Computed field
     ## filters
    diff --git a/htdocs/langs/en_US/externalsite.lang b/htdocs/langs/en_US/externalsite.lang
    index afec761f5fe..da4853df0df 100644
    --- a/htdocs/langs/en_US/externalsite.lang
    +++ b/htdocs/langs/en_US/externalsite.lang
    @@ -2,4 +2,4 @@
     ExternalSiteSetup=Setup link to external website
     ExternalSiteURL=External Site URL
     ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly.
    -ExampleMyMenuEntry=My menu entry
    \ No newline at end of file
    +ExampleMyMenuEntry=My menu entry
    diff --git a/htdocs/langs/en_US/ftp.lang b/htdocs/langs/en_US/ftp.lang
    index d6b9d2ca070..81b3d319341 100644
    --- a/htdocs/langs/en_US/ftp.lang
    +++ b/htdocs/langs/en_US/ftp.lang
    @@ -2,13 +2,13 @@
     FTPClientSetup=FTP Client module setup
     NewFTPClient=New FTP connection setup
     FTPArea=FTP Area
    -FTPAreaDesc=This screen show you content of a FTP server view
    -SetupOfFTPClientModuleNotComplete=Setup of FTP client module seems to be not complete
    +FTPAreaDesc=This screen shows a view of an FTP server.
    +SetupOfFTPClientModuleNotComplete=The setup of the FTP client module seems to be incomplete
     FTPFeatureNotSupportedByYourPHP=Your PHP does not support FTP functions
     FailedToConnectToFTPServer=Failed to connect to FTP server (server %s, port %s)
     FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with defined login/password
     FTPFailedToRemoveFile=Failed to remove file <b>%s</b>.
    -FTPFailedToRemoveDir=Failed to remove directory <b>%s</b> (Check permissions and that directory is empty).
    +FTPFailedToRemoveDir=Failed to remove directory <b>%s</b>: check permissions and that the directory is empty.
     FTPPassiveMode=Passive mode
    -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu...
    +ChooseAFTPEntryIntoMenu=Choose a FTP site from the menu...
     FailedToGetFile=Failed to get files %s
    \ No newline at end of file
    diff --git a/htdocs/langs/en_US/help.lang b/htdocs/langs/en_US/help.lang
    index 2ddbc51ce3a..048de16d3c0 100644
    --- a/htdocs/langs/en_US/help.lang
    +++ b/htdocs/langs/en_US/help.lang
    @@ -1,13 +1,13 @@
     # Dolibarr language file - Source file is en_US - help
     CommunitySupport=Forum/Wiki support
     EMailSupport=Emails support
    -RemoteControlSupport=Online real time / remote support
    +RemoteControlSupport=Online real-time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
    -HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +HelpCenter=Help Center
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Commercial
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button 
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/en_US/holiday.lang b/htdocs/langs/en_US/holiday.lang
    index eca2bbdfe46..b3084a7557c 100644
    --- a/htdocs/langs/en_US/holiday.lang
    +++ b/htdocs/langs/en_US/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,18 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
     LeaveId=Leave ID
     ReviewedByCP=Will be approved by
     UserForApprovalID=User for approval ID
    -UserForApprovalFirstname=Firstname of approval user
    -UserForApprovalLastname=Lastname of approval user
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
     UserForApprovalLogin=Login of approval user
     DescCP=Description
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -85,7 +85,7 @@ NewSoldeCP=New Balance
     alreadyCPexist=A leave request has already been done on this period.
     FirstDayOfHoliday=First day of vacation
     LastDayOfHoliday=Last day of vacation
    -BoxTitleLastLeaveRequests=Latest %s modified leave requests 
    +BoxTitleLastLeaveRequests=Latest %s modified leave requests
     HolidaysMonthlyUpdate=Monthly update
     ManualUpdate=Manual update
     HolidaysCancelation=Leave request cancelation
    @@ -101,8 +101,8 @@ LEAVE_SICK=Sick leave
     LEAVE_OTHER=Other leave
     LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -112,13 +112,18 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    -HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason :
    +HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason:
     HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    \ No newline at end of file
    diff --git a/htdocs/langs/en_US/hrm.lang b/htdocs/langs/en_US/hrm.lang
    index 3889c73dbbb..12bb1592cbc 100644
    --- a/htdocs/langs/en_US/hrm.lang
    +++ b/htdocs/langs/en_US/hrm.lang
    @@ -5,7 +5,7 @@ Establishments=Establishments
     Establishment=Establishment
     NewEstablishment=New establishment
     DeleteEstablishment=Delete establishment
    -ConfirmDeleteEstablishment=Are-you sure to delete this establishment?
    +ConfirmDeleteEstablishment=Are you sure you wish to delete this establishment?
     OpenEtablishment=Open establishment
     CloseEtablishment=Close establishment
     # Dictionary
    diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang
    index 00d4be864ff..e89257002a4 100644
    --- a/htdocs/langs/en_US/install.lang
    +++ b/htdocs/langs/en_US/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again. 
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    -MigrationCustomerOrderShipping=Migrate shipping for customer orders storage 
    -MigrationShippingDelivery=Upgrade storage of shipping 
    -MigrationShippingDelivery2=Upgrade storage of shipping 2 
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
    +MigrationCustomerOrderShipping=Migrate shipping for sales orders storage
    +MigrationShippingDelivery=Upgrade storage of shipping
    +MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s) 
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
    -MigrationPaymentMode=Data migration for payment mode
    +MigrationPaymentMode=Data migration for payment type
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    \ No newline at end of file
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/en_US/interventions.lang b/htdocs/langs/en_US/interventions.lang
    index 604d51c41b9..2025fb03181 100644
    --- a/htdocs/langs/en_US/interventions.lang
    +++ b/htdocs/langs/en_US/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -20,8 +21,8 @@ ConfirmValidateIntervention=Are you sure you want to validate this intervention
     ConfirmModifyIntervention=Are you sure you want to modify this intervention?
     ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line?
     ConfirmCloneIntervention=Are you sure you want to clone this intervention?
    -NameAndSignatureOfInternalContact=Name and signature of intervening :
    -NameAndSignatureOfExternalContact=Name and signature of customer :
    +NameAndSignatureOfInternalContact=Name and signature of intervening:
    +NameAndSignatureOfExternalContact=Name and signature of customer:
     DocumentModelStandard=Standard document model for interventions
     InterventionCardsAndInterventionLines=Interventions and lines of interventions
     InterventionClassifyBilled=Classify "Billed"
    @@ -29,13 +30,13 @@ InterventionClassifyUnBilled=Classify "Unbilled"
     InterventionClassifyDone=Classify "Done"
     StatusInterInvoiced=Billed
     SendInterventionRef=Submission of intervention %s
    -SendInterventionByMail=Send intervention by Email
    +SendInterventionByMail=Send intervention by email
     InterventionCreatedInDolibarr=Intervention %s created
     InterventionValidatedInDolibarr=Intervention %s validated
     InterventionModifiedInDolibarr=Intervention %s modified
     InterventionClassifiedBilledInDolibarr=Intervention %s set as billed
     InterventionClassifiedUnbilledInDolibarr=Intervention %s set as unbilled
    -InterventionSentByEMail=Intervention %s sent by EMail
    +InterventionSentByEMail=Intervention %s sent by email
     InterventionDeletedInDolibarr=Intervention %s deleted
     InterventionsArea=Interventions area
     DraftFichinter=Draft interventions
    diff --git a/htdocs/langs/en_US/languages.lang b/htdocs/langs/en_US/languages.lang
    index a062883d667..99c9b6486e0 100644
    --- a/htdocs/langs/en_US/languages.lang
    +++ b/htdocs/langs/en_US/languages.lang
    @@ -86,3 +86,4 @@ Language_uz_UZ=Uzbek
     Language_vi_VN=Vietnamese
     Language_zh_CN=Chinese
     Language_zh_TW=Chinese (Traditional)
    +Language_bh_MY=Malay
    diff --git a/htdocs/langs/en_US/ldap.lang b/htdocs/langs/en_US/ldap.lang
    index 67824ccd237..8b6f0864215 100644
    --- a/htdocs/langs/en_US/ldap.lang
    +++ b/htdocs/langs/en_US/ldap.lang
    @@ -16,7 +16,7 @@ LDAPFieldFirstSubscriptionAmount=First subscription amount
     LDAPFieldLastSubscriptionDate=Latest subscription date
     LDAPFieldLastSubscriptionAmount=Latest subscription amount
     LDAPFieldSkype=Skype id
    -LDAPFieldSkypeExample=Example : skypeName
    +LDAPFieldSkypeExample=Example: skypeName
     UserSynchronized=User synchronized
     GroupSynchronized=Group synchronized
     MemberSynchronized=Member synchronized
    @@ -24,4 +24,4 @@ MemberTypeSynchronized=Member type synchronized
     ContactSynchronized=Contact synchronized
     ForceSynchronize=Force synchronizing Dolibarr -> LDAP
     ErrorFailedToReadLDAP=Failed to read LDAP database. Check LDAP module setup and database accessibility.
    -PasswordOfUserInLDAP=Password of user in LDAP
    \ No newline at end of file
    +PasswordOfUserInLDAP=Password of user in LDAP
    diff --git a/htdocs/langs/en_US/link.lang b/htdocs/langs/en_US/link.lang
    index 77a1814f1ca..fdcf07aeff4 100644
    --- a/htdocs/langs/en_US/link.lang
    +++ b/htdocs/langs/en_US/link.lang
    @@ -7,4 +7,4 @@ ErrorFileNotLinked=The file could not be linked
     LinkRemoved=The link %s has been removed
     ErrorFailedToDeleteLink= Failed to remove link '<b>%s</b>'
     ErrorFailedToUpdateLink= Failed to update link '<b>%s</b>'
    -URLToLink=URL to link
    \ No newline at end of file
    +URLToLink=URL to link
    diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang
    index 23fc671e9b1..b055b38268a 100644
    --- a/htdocs/langs/en_US/mails.lang
    +++ b/htdocs/langs/en_US/mails.lang
    @@ -15,10 +15,10 @@ MailToUsers=To user(s)
     MailCC=Copy to
     MailToCCUsers=Copy to users(s)
     MailCCC=Cached copy to
    -MailTopic=EMail topic
    +MailTopic=Email topic
     MailText=Message
     MailFile=Attached files
    -MailMessage=EMail body
    +MailMessage=Email body
     ShowEMailing=Show emailing
     ListOfEMailings=List of emailings
     NewMailing=New emailing
    @@ -33,7 +33,7 @@ ValidMailing=Valid emailing
     MailingStatusDraft=Draft
     MailingStatusValidated=Validated
     MailingStatusSent=Sent
    -MailingStatusSentPartialy=Sent partialy
    +MailingStatusSentPartialy=Sent partially
     MailingStatusSentCompletely=Sent completely
     MailingStatusError=Error
     MailingStatusNotSent=Not sent
    @@ -45,7 +45,7 @@ MailingStatusReadAndUnsubscribe=Read and unsubscribe
     ErrorMailRecipientIsEmpty=Email recipient is empty
     WarningNoEMailsAdded=No new Email to add to recipient's list.
     ConfirmValidMailing=Are you sure you want to validate this emailing?
    -ConfirmResetMailing=Warning, by reinitializing emailing <b>%s</b>, you will allow resending this email in a mass mailing. Are you sure you this is what you want to do?
    +ConfirmResetMailing=Warning, by re-initializing emailing <b>%s</b>, you will allow the re-sending this email in a bulk mailing. Are you sure you want to do this?
     ConfirmDeleteMailing=Are you sure you want to delete this emailing?
     NbOfUniqueEMails=No. of unique emails
     NbOfEMails=No. of EMails
    @@ -57,7 +57,7 @@ YouCanAddYourOwnPredefindedListHere=To create your email selector module, see ht
     EMailTestSubstitutionReplacedByGenericValues=When using test mode, substitutions variables are replaced by generic values
     MailingAddFile=Attach this file
     NoAttachedFiles=No attached files
    -BadEMail=Bad value for EMail
    +BadEMail=Bad value for Email
     CloneEMailing=Clone Emailing
     ConfirmCloneEMailing=Are you sure you want to clone this emailing?
     CloneContent=Clone message
    @@ -66,24 +66,24 @@ DateLastSend=Date of latest sending
     DateSending=Date sending
     SentTo=Sent to <b>%s</b>
     MailingStatusRead=Read
    -YourMailUnsubcribeOK=The email <b>%s</b>  is correctly unsubcribe from mailing list
    -ActivateCheckReadKey=Key used to encrypt URL used for "Read Receipt" and "Unsubcribe" feature
    -EMailSentToNRecipients=EMail sent to %s recipients.
    -EMailSentForNElements=EMail sent for %s elements.
    +YourMailUnsubcribeOK=The email <b>%s</b>  is correctly unsubscribe from mailing list
    +ActivateCheckReadKey=Key used to encrypt URL used for "Read Receipt" and "Unsubscribe" feature
    +EMailSentToNRecipients=Email sent to %s recipients.
    +EMailSentForNElements=Email sent for %s elements.
     XTargetsAdded=<b>%s</b> recipients added into target list
    -OnlyPDFattachmentSupported=If the PDF documents were already generated for the objects to send, they will be attached to email. If not, no email will be sent (also, note that only pdf documents are supported as attachment in mass sending in this version).
    +OnlyPDFattachmentSupported=If the PDF documents were already generated for the objects to send, they will be attached to email. If not, no email will be sent (also, note that only pdf documents are supported as attachments in mass sending in this version).
     AllRecipientSelected=The recipients of the %s record selected (if their email is known).
     GroupEmails=Group emails
     OneEmailPerRecipient=One email per recipient (by default, one email per record selected)
    -WarningIfYouCheckOneRecipientPerEmail=Warning, if you check this box, it means only one email will be sent for several different record selected, so, if your message contains substitution variables that refers to data of a record, it becomes not possible to replace them. 
    -ResultOfMailSending=Result of mass EMail sending
    +WarningIfYouCheckOneRecipientPerEmail=Warning, if you check this box, it means only one email will be sent for several different record selected, so, if your message contains substitution variables that refers to data of a record, it becomes not possible to replace them.
    +ResultOfMailSending=Result of mass Email sending
     NbSelected=No. selected
     NbIgnored=No. ignored
     NbSent=No. sent
     SentXXXmessages=%s message(s) sent.
     ConfirmUnvalidateEmailing=Are you sure you want to change email <b>%s</b> to draft status?
     MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters
    -MailingModuleDescContactsByCompanyCategory=Contacts by third party category
    +MailingModuleDescContactsByCompanyCategory=Contacts by third-party category
     MailingModuleDescContactsByCategory=Contacts by categories
     MailingModuleDescContactsByFunction=Contacts by position
     MailingModuleDescEmailsFromFile=Emails from file
    @@ -105,7 +105,7 @@ SearchAMailing=Search mailing
     SendMailing=Send emailing
     SentBy=Sent by
     MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients:
    -MailingNeedCommand2=You can however send them online by adding parameter MAILING_LIMIT_SENDBYWEB with value of max number of emails you want to send by session. For this, go on Home - Setup - Other. 
    +MailingNeedCommand2=You can however send them online by adding parameter MAILING_LIMIT_SENDBYWEB with value of max number of emails you want to send by session. For this, go on Home - Setup - Other.
     ConfirmSendingEmailing=If you want to send emailing directly from this screen, please confirm you are sure you want to send emailing now from your browser ?
     LimitSendingEmailing=Note: Sending of emailings from web interface is done in several times for security and timeout reasons, <b>%s</b> recipients at a time for each sending session.
     TargetsReset=Clear list
    @@ -119,9 +119,9 @@ YouCanUseCommaSeparatorForSeveralRecipients=You can use the <b>comma</b> separat
     TagCheckMail=Track mail opening
     TagUnsubscribe=Unsubscribe link
     TagSignature=Signature of sending user
    -EMailRecipient=Recipient EMail
    -TagMailtoEmail=Recipient EMail (including html "mailto:" link)
    -NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile. 
    +EMailRecipient=Recipient Email
    +TagMailtoEmail=Recipient Email (including html "mailto:" link)
    +NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile.
     # Module Notifications
     Notifications=Notifications
     NoNotificationsWillBeSent=No email notifications are planned for this event and company
    @@ -133,27 +133,27 @@ ListOfNotificationsDone=List all email notifications sent
     MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing.
     MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter <strong>'%s'</strong> to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature.
     MailSendSetupIs3=If you have any questions on how to setup your SMTP server, you can ask to %s.
    -YouCanAlsoUseSupervisorKeyword=You can also add the keyword <strong>__SUPERVISOREMAIL__</strong> to have email being sent to the supervisor of user (works only if an email is defined for this supervisor) 
    +YouCanAlsoUseSupervisorKeyword=You can also add the keyword <strong>__SUPERVISOREMAIL__</strong> to have email being sent to the supervisor of user (works only if an email is defined for this supervisor)
     NbOfTargetedContacts=Current number of targeted contact emails
     UseFormatFileEmailToTarget=Imported file must have format <strong>email;name;firstname;other</strong>
     UseFormatInputEmailToTarget=Enter a string with format <strong>email;name;firstname;other</strong>
     MailAdvTargetRecipients=Recipients (advanced selection)
     AdvTgtTitle=Fill input fields to preselect the third parties or contacts/addresses to target
    -AdvTgtSearchTextHelp=Use %% as magic caracters. For exemple to find all item like <b>jean, joe, jim</b>, you can input <b>j%%</b>, you can also use ; as separator for value, and use ! for except this value. For exemple  <b>jean;joe;jim%%;!jimo;!jima%</b> will target all jean, joe, start with jim but not jimo and not everythnig taht start by jima 
    +AdvTgtSearchTextHelp=Use %% as wildcards. For example to find all item like <b>jean, joe, jim</b>, you can input <b>j%%</b>, you can also use ; as separator for value, and use ! for except this value. For example  <b>jean;joe;jim%%;!jimo;!jima%</b> will target all jean, joe, start with jim but not jimo and not everything that starts with jima
     AdvTgtSearchIntHelp=Use interval to select int or float value
     AdvTgtMinVal=Minimum value
     AdvTgtMaxVal=Maximum value
     AdvTgtSearchDtHelp=Use interval to select date value
     AdvTgtStartDt=Start dt.
     AdvTgtEndDt=End dt.
    -AdvTgtTypeOfIncudeHelp=Target Email of third party and email of contact of the third party, or just third party email or just contact email
    +AdvTgtTypeOfIncudeHelp=Target Email of third party and email of contact of the third party, or just third-party email or just contact email
     AdvTgtTypeOfIncude=Type of targeted email
     AdvTgtContactHelp=Use only if you target contact into "Type of targeted email"
     AddAll=Add all
     RemoveAll=Remove all
     ItemsCount=Item(s)
     AdvTgtNameTemplate=Filter name
    -AdvTgtAddContact=Add emails according to criterias
    +AdvTgtAddContact=Add emails according to criteria
     AdvTgtLoadFilter=Load filter
     AdvTgtDeleteFilter=Delete filter
     AdvTgtSaveFilter=Save filter
    @@ -166,4 +166,4 @@ InGoingEmailSetup=Incoming email setup
     OutGoingEmailSetupForEmailing=Outgoing email setup (for mass emailing)
     DefaultOutgoingEmailSetup=Default outgoing email setup
     Information=Information
    -ContactsWithThirdpartyFilter=Contacts avec filtre client
    +ContactsWithThirdpartyFilter=Contacts with third-party filter
    diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
    index b52301bd3fe..4dc4d5d512c 100644
    --- a/htdocs/langs/en_US/main.lang
    +++ b/htdocs/langs/en_US/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in the Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a existing warehouse
    +MaxNbOfRecordPerPage=Max. number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,7 +78,7 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
     NbOfEntries=No. of entries
    @@ -86,6 +86,7 @@ GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
     RecordDeleted=Record deleted
    +RecordGenerated=Record generated
     LevelOfFeature=Level of features
     NotDefined=Not defined
     DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to <b>%s</b> in configuration file <b>conf.php</b>.<br>This means that the password database is external to Dolibarr, so changing this field may have no effect.
    @@ -95,8 +96,8 @@ PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
     HomeArea=Home
    -LastConnexion=Latest connection
    -PreviousConnexion=Previous connection
    +LastConnexion=Last login
    +PreviousConnexion=Previous login
     PreviousValue=Previous value
     ConnectedOnMultiCompany=Connected on environment
     ConnectedSince=Connected since
    @@ -118,7 +119,7 @@ PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit
     DoTest=Test
     ToFilter=Filter
     NoFilter=No filter
    -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay.
    +WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance time.
     yes=yes
     Yes=Yes
     no=no
    @@ -154,7 +155,7 @@ Update=Update
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -169,7 +170,7 @@ Save=Save
     SaveAs=Save As
     TestConnection=Test connection
     ToClone=Clone
    -ConfirmClone=Choose data you want to clone :
    +ConfirmClone=Choose data you want to clone:
     NoCloneOptionsSpecified=No data to clone defined.
     Of=of
     Go=Go
    @@ -184,7 +185,7 @@ Valid=Valid
     Approve=Approve
     Disapprove=Disapprove
     ReOpen=Re-Open
    -Upload=Send file
    +Upload=Upload
     ToLink=Link
     Select=Select
     Choose=Choose
    @@ -232,7 +233,7 @@ Numero=Number
     Limit=Limit
     Limits=Limits
     Logout=Logout
    -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode <b>%s</b> 
    +NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode <b>%s</b>
     Connection=Login
     Setup=Setup
     Alert=Alert
    @@ -332,8 +333,8 @@ DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    -UnitPriceHT=Unit price (net)
    -UnitPriceHTCurrency=Unit price (net) (currency)
    +UnitPriceHT=Unit price (excl.)
    +UnitPriceHTCurrency=Unit price (excl.) (currency)
     UnitPriceTTC=Unit price
     PriceU=U.P.
     PriceUHT=U.P. (net)
    @@ -343,15 +344,15 @@ Amount=Amount
     AmountInvoice=Invoice amount
     AmountInvoiced=Amount invoiced
     AmountPayment=Payment amount
    -AmountHTShort=Amount (net)
    +AmountHTShort=Amount (excl.)
     AmountTTCShort=Amount (inc. tax)
    -AmountHT=Amount (net of tax)
    +AmountHT=Amount (excl. tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
    -MulticurrencyAmountHT=Amount (net of tax), original currency
    +MulticurrencyAmountHT=Amount (excl. tax), original currency
     MulticurrencyAmountTTC=Amount (inc. of tax), original currency
     MulticurrencyAmountVAT=Amount tax, original currency
     AmountLT1=Amount tax 2
    @@ -360,16 +361,16 @@ AmountLT1ES=Amount RE
     AmountLT2ES=Amount IRPF
     AmountTotal=Total amount
     AmountAverage=Average amount
    -PriceQtyMinHT=Price quantity min. (net of tax)
    -PriceQtyMinHTCurrency=Price quantity min. (net of tax) (currency)
    +PriceQtyMinHT=Price quantity min. (excl. tax)
    +PriceQtyMinHTCurrency=Price quantity min. (excl. tax) (currency)
     Percentage=Percentage
     Total=Total
     SubTotal=Subtotal
    -TotalHTShort=Total (net)
    -TotalHTShortCurrency=Total (net in currency)
    +TotalHTShort=Total (excl.)
    +TotalHTShortCurrency=Total (excl. in currency)
     TotalTTCShort=Total (inc. tax)
    -TotalHT=Total (net of tax)
    -TotalHTforthispage=Total (net of tax) for this page
    +TotalHT=Total (excl. tax)
    +TotalHTforthispage=Total (excl. tax) for this page
     Totalforthispage=Total for this page
     TotalTTC=Total (inc. tax)
     TotalTTCToYourCredit=Total (inc. tax) to your credit
    @@ -381,7 +382,7 @@ TotalLT1ES=Total RE
     TotalLT2ES=Total IRPF
     TotalLT1IN=Total CGST
     TotalLT2IN=Total SGST
    -HT=Net of tax
    +HT=Excl. tax
     TTC=Inc. tax
     INCVATONLY=Inc. VAT
     INCT=Inc. all taxes
    @@ -429,14 +430,15 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
     ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
    -ActionsOnCompany=Events about this third party
    +ActionsOnCompany=Events for this third party
    +ActionsOnContact=Events for this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -445,7 +447,7 @@ Completed=Completed
     Running=In progress
     RequestAlreadyDone=Request already recorded
     Filter=Filter
    -FilterOnInto=Search criteria '<strong>%s</strong>' into fields %s 
    +FilterOnInto=Search criteria '<strong>%s</strong>' into fields %s
     RemoveFilter=Remove filter
     ChartGenerated=Chart generated
     ChartNotGenerated=Chart not generated
    @@ -455,7 +457,7 @@ Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
     DolibarrStateBoard=Database Statistics
    -DolibarrWorkBoard=Pending Items
    +DolibarrWorkBoard=Open Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -469,7 +471,7 @@ and=and
     or=or
     Other=Other
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -507,7 +509,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=An item is defined as Delayed as per the system configuration in menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -531,18 +533,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -639,14 +629,16 @@ FeatureNotYetSupported=Feature not yet supported
     CloseWindow=Close window
     Response=Response
     Priority=Priority
    -SendByMail=Send by EMail
    +SendByMail=Send by email
     MailSentBy=Email sent by
     TextUsedInTheMessageBody=Email body
     SendAcknowledgementByMail=Send confirmation email
     SendMail=Send email
    -EMail=E-mail
    +Email=Email
     NoEMail=No email
     Email=Email
    +AlreadyRead=Already read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -659,8 +651,9 @@ ValueIsValid=Value is valid
     ValueIsNotValid=Value is not valid
     RecordCreatedSuccessfully=Record created successfully
     RecordModifiedSuccessfully=Record modified successfully
    -RecordsModified=%s record modified
    -RecordsDeleted=%s record deleted
    +RecordsModified=%s record(s) modified
    +RecordsDeleted=%s record(s) deleted
    +RecordsGenerated=%s record(s) generated
     AutomaticCode=Automatic code
     FeatureDisabled=Feature disabled
     MoveBox=Move widget
    @@ -671,14 +664,14 @@ Method=Method
     Receive=Receive
     CompleteOrNoMoreReceptionExpected=Complete or nothing more expected
     ExpectedValue=Expected Value
    -CurrentValue=Current Value
    +CurrentValue=Current value
     PartialWoman=Partial
     TotalWoman=Total
     NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -704,28 +697,29 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
     AddFile=Add file
     FreeZone=Not a predefined product/service
    -FreeLineOfType=Not a predefined entry of type
    +FreeLineOfType=Free-text item, type:
     CloneMainAttributes=Clone object with its main attributes
    +ReGeneratePDF=Re-generate PDF
     PDFMerge=PDF Merge
     Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode: only login <b>%s</b> is allowed to use the application in this mode.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -733,6 +727,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -752,14 +748,15 @@ LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
     LinkToTemplateInvoice=Link to template invoice
    -LinkToSupplierOrder=Link to supplier order
    -LinkToSupplierProposal=Link to supplier proposal
    -LinkToSupplierInvoice=Link to supplier invoice
    +LinkToSupplierOrder=Link to purchase order
    +LinkToSupplierProposal=Link to vendor proposal
    +LinkToSupplierInvoice=Link to vendor invoice
     LinkToContract=Link to contract
     LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -804,7 +801,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -820,12 +817,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Bulk Delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record(s)?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -843,7 +840,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>. 
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -854,25 +851,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
     EMailTemplates=Email templates
    -FileNotShared=File not shared to exernal public
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Vendor lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -921,7 +927,7 @@ SearchIntoProjects=Projects
     SearchIntoTasks=Tasks
     SearchIntoCustomerInvoices=Customer invoices
     SearchIntoSupplierInvoices=Vendor invoices
    -SearchIntoCustomerOrders=Customer orders
    +SearchIntoCustomerOrders=Sales orders
     SearchIntoSupplierOrders=Purchase orders
     SearchIntoCustomerProposals=Customer proposals
     SearchIntoSupplierProposals=Vendor proposals
    @@ -929,15 +935,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -947,6 +953,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
     SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/en_US/margins.lang b/htdocs/langs/en_US/margins.lang
    index b9d52dcfdc6..d4545b8e75f 100644
    --- a/htdocs/langs/en_US/margins.lang
    +++ b/htdocs/langs/en_US/margins.lang
    @@ -31,7 +31,7 @@ MARGIN_TYPE=Buying/Cost price suggested by default for margin calculation
     MargeType1=Margin on Best vendor price
     MargeType2=Margin on Weighted Average Price (WAP)
     MargeType3=Margin on Cost Price
    -MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card<br>* Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best supplier price if WAP not yet defined<br>* Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best supplier price if WAP not yet defined
    +MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card<br>* Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best vendor price if WAP not yet defined<br>* Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best vendor price if WAP not yet defined
     CostPrice=Cost price
     UnitCharges=Unit charges
     Charges=Charges
    @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value
     markRateShouldBeLesserThan100=Mark rate should be lower than 100
     ShowMarginInfos=Show margin infos
     CheckMargins=Margins detail
    -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between third parties and sale representatives to calculate the margin of each sale representative. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative).
    +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between third parties and sale representatives to calculate the margin of each sale representative. Because some thirdparties may not have any dedicated sale representative and some third parties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative).
    diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang
    index b74ad44b45f..d93d329ab23 100644
    --- a/htdocs/langs/en_US/members.lang
    +++ b/htdocs/langs/en_US/members.lang
    @@ -6,7 +6,7 @@ Member=Member
     Members=Members
     ShowMember=Show member card
     UserNotLinkedToMember=User not linked to a member
    -ThirdpartyNotLinkedToMember=Third-party not linked to a member
    +ThirdpartyNotLinkedToMember=Third party not linked to a member
     MembersTickets=Members Tickets
     FundationMembers=Foundation members
     ListOfValidatedPublicMembers=List of validated public members
    @@ -33,7 +33,7 @@ DateSubscription=Subscription date
     DateEndSubscription=Subscription end date
     EndSubscription=End subscription
     SubscriptionId=Subscription id
    -MemberId=Member id 
    +MemberId=Member id
     NewMember=New member
     MemberType=Member type
     MemberTypeId=Member type id
    @@ -61,17 +61,17 @@ ConfirmDeleteMemberType=Are you sure you want to delete this member type?
     MemberTypeDeleted=Member type deleted
     MemberTypeCanNotBeDeleted=Member type can not be deleted
     NewSubscription=New subscription
    -NewSubscriptionDesc=This form allows you to record your subscription as a new member of the foundation. If you want to renew your subscription (if already a member), please contact foundation board instead by email %s. 
    +NewSubscriptionDesc=This form allows you to record your subscription as a new member of the foundation. If you want to renew your subscription (if already a member), please contact foundation board instead by email %s.
     Subscription=Subscription
     Subscriptions=Subscriptions
     SubscriptionLate=Late
     SubscriptionNotReceived=Subscription never received
     ListOfSubscriptions=List of subscriptions
    -SendCardByMail=Send card by Email
    +SendCardByMail=Send card by email
     AddMember=Create member
     NoTypeDefinedGoToSetup=No member types defined. Go to menu "Members types"
     NewMemberType=New member type
    -WelcomeEMail=Welcome e-mail
    +WelcomeEMail=Welcome email
     SubscriptionRequired=Subscription required
     DeleteType=Delete
     VoteAllowed=Vote allowed
    @@ -88,7 +88,7 @@ ConfirmDeleteSubscription=Are you sure you want to delete this subscription?
     Filehtpasswd=htpasswd file
     ValidateMember=Validate a member
     ConfirmValidateMember=Are you sure you want to validate this member?
    -FollowingLinksArePublic=The following links are open pages not protected by any Dolibarr permission. They are not formated pages, provided as example to show how to list members database. 
    +FollowingLinksArePublic=The following links are open pages not protected by any Dolibarr permission. They are not formatted pages, provided as example to show how to list members database.
     PublicMemberList=Public member list
     BlankSubscriptionForm=Public self-subscription form
     BlankSubscriptionFormDesc=Dolibarr can provide you a public URL/website to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form may also be automatically provided.
    @@ -115,7 +115,7 @@ SendingReminderForExpiredSubscription=Sending reminder for expired subscriptions
     SendingEmailOnCancelation=Sending email on cancelation
     # Topic of email templates
     YourMembershipRequestWasReceived=Your membership was received.
    -YourMembershipWasValidated=Your membership was validated 
    +YourMembershipWasValidated=Your membership was validated
     YourSubscriptionWasRecorded=Your new subscription was recorded
     SubscriptionReminderEmail=Subscription reminder
     YourMembershipWasCanceled=Your membership was canceled
    @@ -124,16 +124,16 @@ CardContent=Content of your member card
     ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.<br><br>
     ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:<br><br>
     ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.<br><br>
    -ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or is already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you can make a renewal of it.<br><br>
    -ThisIsContentOfYourCard=This is a remind of the information we get about you. Feel free to contact us if something looks wrong.<br><br> 
    -DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the e-mail received in case of auto-inscription of a guest
    -DescADHERENT_AUTOREGISTER_NOTIF_MAIL=E-mail received in case of auto-inscription of a guest
    -DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Template Email to use to send email to a member on member autosubscription
    -DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Template EMail to use to send email to a member on member validation
    -DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Template Email to use to send email to a member on new subscription recording
    -DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Template Email to use to send email remind when subscription is about to expire
    -DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Template Email to use to send email to a member on member cancelation
    -DescADHERENT_MAIL_FROM=Sender EMail for automatic emails
    +ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or has already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you will renew it.<br><br>
    +ThisIsContentOfYourCard=This is a summary of the information we have about you. Please contact us if anything is incorrect.<br><br> 
    +DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the email received in case of auto-inscription of a guest
    +DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Email received in case of auto-inscription of a guest
    +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Email template to use to send email to a member on member autosubscription
    +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Email template to use to send email to a member on member validation
    +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Email template to use to send email to a member on new subscription recording
    +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Email template to use to send email reminder when subscription is about to expire
    +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Email template to use to send email to a member on member cancelation
    +DescADHERENT_MAIL_FROM=Sender Email for automatic emails
     DescADHERENT_ETIQUETTE_TYPE=Format of labels page
     DescADHERENT_ETIQUETTE_TEXT=Text printed on member address sheets
     DescADHERENT_CARD_TYPE=Format of cards page
    diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang
    index 6638e1fa674..6aef75a5746 100644
    --- a/htdocs/langs/en_US/modulebuilder.lang
    +++ b/htdocs/langs/en_US/modulebuilder.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - loan
    -ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
    +ModuleBuilderDesc=This tool must be used by only by experienced users or developers. It gives you utilities to build or edit your own module.<br>Documentation for alternative <a href="%s" target="_blank">manual development is here</a>.
     EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
     EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
     ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
     ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong>
    -ModuleBuilderDesc4=A module is detected as 'editable' when the file <strong>%s</strong> exists in root of module directory 
    +ModuleBuilderDesc4=A module is detected as 'editable' when the file <strong>%s</strong> exists in root of module directory
     NewModule=New module
     NewObject=New object
     ModuleKey=Module key
    @@ -13,7 +13,7 @@ ModuleInitialized=Module initialized
     FilesForObjectInitialized=Files for new object '%s' initialized
     FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
     ModuleBuilderDescdescription=Enter here all general information that describe your module.
    -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
    +ModuleBuilderDescspecifications=You can enter here a detailed description of the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommended to use Asciidoc format (comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown).
     ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
     ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
     ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
    @@ -21,12 +21,12 @@ ModuleBuilderDesctriggers=This is the view of triggers provided by your module.
     ModuleBuilderDeschooks=This tab is dedicated to hooks.
     ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets.
     ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file.
    -EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost !
    -EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost !
    +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: ALL files of module AND structured data and documentation will be deleted!
    +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be deleted!
     DangerZone=Danger zone
     BuildPackage=Build package/documentation
     BuildDocumentation=Build documentation
    -ModuleIsNotActive=This module was not activated yet. Go into %s to make it live or click here:
    +ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here:
     ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
     DescriptionLong=Long description
     EditorName=Name of editor
    @@ -47,9 +47,9 @@ RegenerateClassAndSql=Erase and regenerate class and sql files
     RegenerateMissingFiles=Generate missing files
     SpecificationFile=File with business rules
     LanguageFile=File for language
    -ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
    +ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong>? This will change code in PHP class but also remove column from table definition of object.
     NotNull=Not NULL
    -NotNullDesc=1=Set database to NOT NULL. -1=Allow null values and force value to NULL if empty ('' or 0). 
    +NotNullDesc=1=Set database to NOT NULL. -1=Allow null values and force value to NULL if empty ('' or 0).
     SearchAll=Used for 'search all'
     DatabaseIndex=Database index
     FileAlreadyExists=File %s already exists
    @@ -66,7 +66,7 @@ PageForLib=File for PHP libraries
     SqlFileExtraFields=Sql file for complementary attributes
     SqlFileKey=Sql file for keys
     AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
    -UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
    +UseAsciiDocFormat=You can use Markdown format, but it is recommended to use Asciidoc format (omparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
     IsAMeasure=Is a measure
     DirScanned=Directory scanned
     NoTrigger=No trigger
    @@ -74,10 +74,11 @@ NoWidget=No widget
     GoToApiExplorer=Go to API explorer
     ListOfMenusEntries=List of menu entries
     ListOfPermissionsDefined=List of defined permissions
    +SeeExamples=See examples here
     EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION)
     VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only. Using a negative value means field is not shown by default on list but can be selected for viewing)
    -IsAMeasureDesc=Can the value of field be cumulated to get a total into list ? (Examples: 1 or 0)
    -SearchAllDesc=Is the field used to make a search from the quick search tool ? (Examples: 1 or 0)
    +IsAMeasureDesc=Can the value of field be cumulated to get a total into list? (Examples: 1 or 0)
    +SearchAllDesc=Is the field used to make a search from the quick search tool? (Examples: 1 or 0)
     SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax.
     LanguageDefDesc=Enter in this files, all the key and the translation for each language file.
     MenusDefDesc=Define here the menus provided by your module (once defined, they are visible into the menu editor %s)
    @@ -87,11 +88,15 @@ TriggerDefDesc=Define in the trigger file the code you want to execute for each
     SeeIDsInUse=See IDs in use in your installation
     SeeReservedIDsRangeHere=See range of reserved IDs
     ToolkitForDevelopers=Toolkit for Dolibarr developers
    -TryToUseTheModuleBuilder=If you have knowledge in SQL and PHP, you can try to use the native module builder wizard. Just enable the module and use the wizard by clicking the <span class="fa fa-bug"></span> on the top right menu. Warning: This is a developer feature, bad use may breaks your application.
    +TryToUseTheModuleBuilder=If you have knowledge of SQL and PHP, you may use the native module builder wizard.<br>Enable the module <strong>%s</strong> and use the wizard by clicking the <span class="fa fa-bug"></span> on the top right menu.<br>Warning: This is an advanced developer feature, do <b>not</b> experiment on your production site!
     SeeTopRightMenu=See <span class="fa fa-bug"></span> on the top right menu
     AddLanguageFile=Add language file
     YouCanUseTranslationKey=You can use here a key that is the translation key found into language file (see tab "Languages")
     DropTableIfEmpty=(Delete table if empty)
     TableDoesNotExists=The table %s does not exists
     TableDropped=Table %s deleted
    -InitStructureFromExistingTable=Build the structure array string of an existing table 
    \ No newline at end of file
    +InitStructureFromExistingTable=Build the structure array string of an existing table
    +UseAboutPage=Disable the about page
    +UseDocFolder=Disable the documentation folder
    +UseSpecificReadme=Use a specific ReadMe
    +RealPathOfModule=Real path of module
    diff --git a/htdocs/langs/en_US/multicurrency.lang b/htdocs/langs/en_US/multicurrency.lang
    index 0da2ee58b60..47c5590b862 100644
    --- a/htdocs/langs/en_US/multicurrency.lang
    +++ b/htdocs/langs/en_US/multicurrency.lang
    @@ -3,18 +3,18 @@ MultiCurrency=Multi currency
     ErrorAddRateFail=Error in added rate
     ErrorAddCurrencyFail=Error in added currency
     ErrorDeleteCurrencyFail=Error delete fail
    -multicurrency_syncronize_error=Synchronisation error: %s
    -MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate 
    -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
    +multicurrency_syncronize_error=Synchronization error: %s
    +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use the date of the document to find the currency rate, instead of using the latest known rate
    +multicurrency_useOriginTx=When an object is created from another, keep the original rate from the source object (otherwise use the latest known rate)
     CurrencyLayerAccount=CurrencyLayer API
    -CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br>Get your <b>API key</b><br>If you use a free account you can't change the <b>currency source</b> (USD by default)<br>But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br><br>You are limited at 1000 synchronizations per month 
    +CurrencyLayerAccount_help_to_synchronize=You must create an account on their website to use this functionality.<br>Get your <b>API key</b>.<br>If you use a free account you can't change the <b>currency source</b> (USD by default).<br>If your main currency is not USD you can use the <b>alternate currency source</b> to force your main currency.<br><br>You are limited to 1000 synchronizations per month.
     multicurrency_appId=API key
     multicurrency_appCurrencySource=Currency source
     multicurrency_alternateCurrencySource=Alternate currency source
     CurrenciesUsed=Currencies used
    -CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you <b>proposals</b>, <b>orders</b>, etc.
    +CurrenciesUsed_help_to_add=Add the different currencies and rates you need to use on your <b>proposals</b>, <b>orders</b> etc.
     rate=rate
     MulticurrencyReceived=Received, original currency
    -MulticurrencyRemainderToTake=Remaining amout, original currency
    +MulticurrencyRemainderToTake=Remaining amount, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
    -AmountToOthercurrency=Amount To (in currency of receiving account)
    \ No newline at end of file
    +AmountToOthercurrency=Amount To (in currency of receiving account)
    diff --git a/htdocs/langs/en_US/oauth.lang b/htdocs/langs/en_US/oauth.lang
    index cafca379f6f..ce02c4e23d8 100644
    --- a/htdocs/langs/en_US/oauth.lang
    +++ b/htdocs/langs/en_US/oauth.lang
    @@ -1,8 +1,8 @@
     # Dolibarr language file - Source file is en_US - oauth
    -ConfigOAuth=Oauth Configuration
    -OAuthServices=OAuth services
    +ConfigOAuth=OAuth Configuration
    +OAuthServices=OAuth Services
     ManualTokenGeneration=Manual token generation
    -TokenManager=Token manager
    +TokenManager=Token Manager
     IsTokenGenerated=Is token generated ?
     NoAccessToken=No access token saved into local database
     HasAccessToken=A token was generated and saved into local database
    @@ -11,8 +11,8 @@ ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %
     TokenDeleted=Token deleted
     RequestAccess=Click here to request/renew access and receive a new token to save
     DeleteAccess=Click here to delete token
    -UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider:
    -ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication.
    +UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credentials with your OAuth provider:
    +ListOfSupportedOauthProviders=Enter the credentials provided by your OAuth2 provider. Only supported OAuth2 providers are listedd here. These services may be used by other modules that need OAuth2 authentication.
     OAuthSetupForLogin=Page to generate an OAuth token
     SeePreviousTab=See previous tab
     OAuthIDSecret=OAuth ID and Secret
    @@ -20,11 +20,11 @@ TOKEN_REFRESH=Token Refresh Present
     TOKEN_EXPIRED=Token expired
     TOKEN_EXPIRE_AT=Token expire at
     TOKEN_DELETE=Delete saved token
    -OAUTH_GOOGLE_NAME=Oauth Google service
    -OAUTH_GOOGLE_ID=Oauth Google Id
    -OAUTH_GOOGLE_SECRET=Oauth Google Secret
    -OAUTH_GOOGLE_DESC=Go on <a class="notasortlink" href="https://console.developers.google.com/" target="_blank">this page</a> then "Credentials" to create Oauth credentials
    -OAUTH_GITHUB_NAME=Oauth GitHub service
    -OAUTH_GITHUB_ID=Oauth GitHub Id
    -OAUTH_GITHUB_SECRET=Oauth GitHub Secret
    -OAUTH_GITHUB_DESC=Go on <a class="notasortlink" href="https://github.com/settings/developers" target="_blank">this page</a> then "Register a new application" to create Oauth credentials
    +OAUTH_GOOGLE_NAME=OAuth Google service
    +OAUTH_GOOGLE_ID=OAuth Google Id
    +OAUTH_GOOGLE_SECRET=OAuth Google Secret
    +OAUTH_GOOGLE_DESC=Go to <a class="notasortlink" href="https://console.developers.google.com/" target="_blank">this page</a> then "Credentials" to create OAuth credentials
    +OAUTH_GITHUB_NAME=OAuth GitHub service
    +OAUTH_GITHUB_ID=OAuth GitHub Id
    +OAUTH_GITHUB_SECRET=OAuth GitHub Secret
    +OAUTH_GITHUB_DESC=Go to <a class="notasortlink" href="https://github.com/settings/developers" target="_blank">this page</a> then "Register a new application" to create OAuth credentials
    diff --git a/htdocs/langs/en_US/opensurvey.lang b/htdocs/langs/en_US/opensurvey.lang
    index 0203bf74b28..c4554a7a76c 100644
    --- a/htdocs/langs/en_US/opensurvey.lang
    +++ b/htdocs/langs/en_US/opensurvey.lang
    @@ -11,7 +11,7 @@ PollTitle=Poll title
     ToReceiveEMailForEachVote=Receive an email for each vote
     TypeDate=Type date
     TypeClassic=Type standard
    -OpenSurveyStep2=Select your dates amoung the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it
    +OpenSurveyStep2=Select your dates among the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it
     RemoveAllDays=Remove all days
     CopyHoursOfFirstDay=Copy hours of first day
     RemoveAllHours=Remove all hours
    @@ -19,7 +19,7 @@ SelectedDays=Selected days
     TheBestChoice=The best choice currently is
     TheBestChoices=The best choices currently are
     with=with
    -OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line. 
    +OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.
     CommentsOfVoters=Comments of voters
     ConfirmRemovalOfPoll=Are you sure you want to remove this poll (and all votes)
     RemovePoll=Remove poll
    @@ -49,7 +49,7 @@ votes=vote(s)
     NoCommentYet=No comments have been posted for this poll yet
     CanComment=Voters can comment in the poll
     CanSeeOthersVote=Voters can see other people's vote
    -SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format :<br>- empty,<br>- "8h", "8H" or "8:00" to give a meeting's start hour,<br>- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,<br>- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes.
    +SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format:<br>- empty,<br>- "8h", "8H" or "8:00" to give a meeting's start hour,<br>- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,<br>- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes.
     BackToCurrentMonth=Back to current month
     ErrorOpenSurveyFillFirstSection=You haven't filled the first section of the poll creation
     ErrorOpenSurveyOneChoice=Enter at least one choice
    @@ -58,4 +58,4 @@ MoreChoices=Enter more choices for the voters
     SurveyExpiredInfo=The poll has been closed or voting delay has expired.
     EmailSomeoneVoted=%s has filled a line.\nYou can find your poll at the link: \n%s
     ShowSurvey=Show survey
    -UserMustBeSameThanUserUsedToVote=You must have voted and use the same user name that the one used to vote, to post a comment
    \ No newline at end of file
    +UserMustBeSameThanUserUsedToVote=You must have voted and use the same user name that the one used to vote, to post a comment
    diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang
    index 94ed74acb4e..1f53d0c050a 100644
    --- a/htdocs/langs/en_US/orders.lang
    +++ b/htdocs/langs/en_US/orders.lang
    @@ -16,14 +16,14 @@ MakeOrder=Make order
     SupplierOrder=Purchase order
     SuppliersOrders=Purchase orders
     SuppliersOrdersRunning=Current purchase orders
    -CustomerOrder=Customer Order
    -CustomersOrders=Customer Orders
    -CustomersOrdersRunning=Current customer orders
    -CustomersOrdersAndOrdersLines=Customer orders and order details
    -OrdersDeliveredToBill=Customer orders delivered to bill
    -OrdersToBill=Customer orders delivered
    -OrdersInProcess=Customer orders in process
    -OrdersToProcess=Customer orders to process
    +CustomerOrder=Sales Order
    +CustomersOrders=Sales Orders
    +CustomersOrdersRunning=Current sales orders
    +CustomersOrdersAndOrdersLines=Sales orders and order details
    +OrdersDeliveredToBill=Sales orders delivered to bill
    +OrdersToBill=Sales orders delivered
    +OrdersInProcess=Sales orders in process
    +OrdersToProcess=Sales orders to process
     SuppliersOrdersToProcess=Purchase orders to process
     StatusOrderCanceledShort=Canceled
     StatusOrderDraftShort=Draft
    @@ -56,7 +56,7 @@ StatusOrderReceivedAll=All products received
     ShippingExist=A shipment exists
     QtyOrdered=Qty ordered
     ProductQtyInDraft=Product quantity into draft orders
    -ProductQtyInDraftOrWaitingApproved=Product quantity into draft or approved orders, not yet ordered 
    +ProductQtyInDraftOrWaitingApproved=Product quantity into draft or approved orders, not yet ordered
     MenuOrdersToBill=Orders delivered
     MenuOrdersToBill2=Billable orders
     ShipProduct=Ship product
    @@ -76,8 +76,8 @@ OrdersOpened=Orders to process
     NoDraftOrders=No draft orders
     NoOrder=No order
     NoSupplierOrder=No purchase order
    -LastOrders=Latest %s customer orders
    -LastCustomerOrders=Latest %s customer orders
    +LastOrders=Latest %s sales orders
    +LastCustomerOrders=Latest %s sales orders
     LastSupplierOrders=Latest %s purchase orders
     LastModifiedOrders=Latest %s modified orders
     AllOrders=All orders
    @@ -85,10 +85,10 @@ NbOfOrders=Number of orders
     OrdersStatistics=Order's statistics
     OrdersStatisticsSuppliers=Purchase order statistics
     NumberOfOrdersByMonth=Number of orders by month
    -AmountOfOrdersByMonthHT=Amount of orders by month (net of tax)
    +AmountOfOrdersByMonthHT=Amount of orders by month (excl. tax)
     ListOfOrders=List of orders
     CloseOrder=Close order
    -ConfirmCloseOrder=Are you sure you want to set this order to deliverd? Once an order is delivered, it can be set to billed.
    +ConfirmCloseOrder=Are you sure you want to set this order to delivered? Once an order is delivered, it can be set to billed.
     ConfirmDeleteOrder=Are you sure you want to delete this order?
     ConfirmValidateOrder=Are you sure you want to validate this order under name <b>%s</b>?
     ConfirmUnvalidateOrder=Are you sure you want to restore order <b>%s</b> to draft status?
    @@ -112,15 +112,15 @@ UserWithApproveOrderGrant=Users granted with "approve orders" permission.
     PaymentOrderRef=Payment of order %s
     CloneOrder=Clone order
     ConfirmCloneOrder=Are you sure you want to clone this order <b>%s</b>?
    -DispatchSupplierOrder=Receiving supplier order %s
    +DispatchSupplierOrder=Receiving purchase order %s
     FirstApprovalAlreadyDone=First approval already done
     SecondApprovalAlreadyDone=Second approval already done
     SupplierOrderReceivedInDolibarr=Purchase Order %s received %s
    -SupplierOrderSubmitedInDolibarr=Purchase Order %s submited
    +SupplierOrderSubmitedInDolibarr=Purchase Order %s submitted
     SupplierOrderClassifiedBilled=Purchase Order %s set billed
     OtherOrders=Other orders
     ##### Types de contacts #####
    -TypeContact_commande_internal_SALESREPFOLL=Representative following-up customer order
    +TypeContact_commande_internal_SALESREPFOLL=Representative following-up sales order
     TypeContact_commande_internal_SHIPPING=Representative following-up shipping
     TypeContact_commande_external_BILLING=Customer invoice contact
     TypeContact_commande_external_SHIPPING=Customer shipping contact
    @@ -136,23 +136,24 @@ Error_OrderNotChecked=No orders to invoice selected
     # Order modes (how we receive order). Not the "why" are keys stored into dict.lang
     OrderByMail=Mail
     OrderByFax=Fax
    -OrderByEMail=EMail
    +OrderByEMail=Email
     OrderByWWW=Online
     OrderByPhone=Phone
     # Documents models
     PDFEinsteinDescription=A complete order model (logo...)
    +PDFEratostheneDescription=A complete order model (logo...)
     PDFEdisonDescription=A simple order model
     PDFProformaDescription=A complete proforma invoice (logo…)
     CreateInvoiceForThisCustomer=Bill orders
     NoOrdersToInvoice=No orders billable
    -CloseProcessedOrdersAutomatically=Classify "Processed" all selected orders. 
    +CloseProcessedOrdersAutomatically=Classify "Processed" all selected orders.
     OrderCreation=Order creation
     Ordered=Ordered
     OrderCreated=Your orders have been created
     OrderFail=An error happened during your orders creation
     CreateOrders=Create orders
     ToBillSeveralOrderSelectCustomer=To create an invoice for several orders, click first onto customer, then choose "%s".
    -OptionToSetOrderBilledNotEnabled=Option (from module Workflow) to set order to 'Billed' automatically when invoice is validated is off, so you will have to set status of order to 'Billed' manually.  
    +OptionToSetOrderBilledNotEnabled=Option (from module Workflow) to set order to 'Billed' automatically when invoice is validated is off, so you will have to set status of order to 'Billed' manually.
     IfValidateInvoiceIsNoOrderStayUnbilled=If invoice validation is 'No', the order will remain to status 'Unbilled' until the invoice is validated.
     CloseReceivedSupplierOrdersAutomatically=Close order to "%s" automatically if all products are received.
    -SetShippingMode=Set shipping mode
    \ No newline at end of file
    +SetShippingMode=Set shipping mode
    diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang
    index f6bb3e76e95..1e3d95e4a3f 100644
    --- a/htdocs/langs/en_US/other.lang
    +++ b/htdocs/langs/en_US/other.lang
    @@ -20,10 +20,10 @@ ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
     DocFileGeneratedInto=Doc file generated into <b>%s</b>.
     JumpToLogin=Disconnected. Go to login page...
     MessageForm=Message on online payment form
    -MessageOK=Message on validated payment return page
    -MessageKO=Message on canceled payment return page
    +MessageOK=Message on the return page for a validated payment
    +MessageKO=Message on the return page for a canceled payment
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,18 +31,15 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
    -Notify_ORDER_VALIDATE=Customer order validated
    -Notify_ORDER_SENTBYMAIL=Customer order sent by mail
    -Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    -Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
    -Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
    -Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
    +Notify_ORDER_VALIDATE=Sales order validated
    +Notify_ORDER_SENTBYMAIL=Sales order sent by mail
    +Notify_ORDER_SUPPLIER_SENTBYMAIL=Purchase order sent by email
    +Notify_ORDER_SUPPLIER_VALIDATE=Purchase order recorded
    +Notify_ORDER_SUPPLIER_APPROVE=Purchase order approved
    +Notify_ORDER_SUPPLIER_REFUSE=Purchase order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
    -Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    -Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
    -Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
    +Notify_BILL_SUPPLIER_VALIDATE=Vendor invoice validated
    +Notify_BILL_SUPPLIER_PAYED=Vendor invoice paid
    +Notify_BILL_SUPPLIER_SENTBYMAIL=Vendor invoice sent by mail
    +Notify_BILL_SUPPLIER_CANCELED=Vendor invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,6 +70,10 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
    @@ -80,16 +83,18 @@ LinkedObject=Linked object
     NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached \n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to remind you that the invoice  __REF__ seems to have not been paid. A copy of the invoice is attached as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find commercial proposal __REF__ attached \n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find price request __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find order __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find our order __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find invoice __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find shipping __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find intervention __REF__ attached\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -174,30 +179,34 @@ DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
     StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
    -NumberOfCustomerOrders=Number of customer orders
    +NumberOfCustomerOrders=Number of sales orders
     NumberOfCustomerInvoices=Number of customer invoices
    -NumberOfSupplierProposals=Number of supplier proposals
    -NumberOfSupplierOrders=Number of supplier orders
    -NumberOfSupplierInvoices=Number of supplier invoices
    +NumberOfSupplierProposals=Number of vendor proposals
    +NumberOfSupplierOrders=Number of purchase orders
    +NumberOfSupplierInvoices=Number of vendor invoices
     NumberOfUnitsProposals=Number of units on proposals
    -NumberOfUnitsCustomerOrders=Number of units on customer orders
    +NumberOfUnitsCustomerOrders=Number of units on sales orders
     NumberOfUnitsCustomerInvoices=Number of units on customer invoices
    -NumberOfUnitsSupplierProposals=Number of units on supplier proposals
    -NumberOfUnitsSupplierOrders=Number of units on supplier orders
    -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +NumberOfUnitsSupplierProposals=Number of units on vendor proposals
    +NumberOfUnitsSupplierOrders=Number of units on purchase orders
    +NumberOfUnitsSupplierInvoices=Number of units on vendor invoices
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
    -EMailTextInvoiceValidated=The invoice %s has been validated.
    -EMailTextInvoicePayed=The invoice %s has been payed.
    -EMailTextProposalValidated=The proposal %s has been validated.
    -EMailTextProposalClosedSigned=The proposal %s has been closed signed.
    -EMailTextOrderValidated=The order %s has been validated.
    -EMailTextOrderApproved=The order %s has been approved.
    -EMailTextOrderValidatedBy=The order %s has been recorded by %s.
    -EMailTextOrderApprovedBy=The order %s has been approved by %s.
    -EMailTextOrderRefused=The order %s has been refused.
    -EMailTextOrderRefusedBy=The order %s has been refused by %s.
    -EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextInvoiceValidated=Invoice %s has been validated.
    +EMailTextInvoicePayed=Invoice %s has been paid.
    +EMailTextProposalValidated=Proposal %s has been validated.
    +EMailTextProposalClosedSigned=Proposal %s has been closed signed.
    +EMailTextOrderValidated=Order %s has been validated.
    +EMailTextOrderApproved=Order %s has been approved.
    +EMailTextOrderValidatedBy=Order %s has been recorded by %s.
    +EMailTextOrderApprovedBy=Order %s has been approved by %s.
    +EMailTextOrderRefused=Order %s has been refused.
    +EMailTextOrderRefusedBy=Order %s has been refused by %s.
    +EMailTextExpeditionValidated=Shipping %s has been validated.
    +EMailTextExpenseReportValidated=Expense report %s has been validated.
    +EMailTextExpenseReportApproved=Expense report %s has been approved.
    +EMailTextHolidayValidated=Leave request %s has been validated.
    +EMailTextHolidayApproved=Leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -205,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -236,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -249,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Description
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/en_US/paybox.lang b/htdocs/langs/en_US/paybox.lang
    index e87c7058121..269242b910b 100644
    --- a/htdocs/langs/en_US/paybox.lang
    +++ b/htdocs/langs/en_US/paybox.lang
    @@ -15,15 +15,16 @@ ToPay=Do payment
     YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information
     Continue=Next
     ToOfferALinkForOnlinePayment=URL for %s payment
    -ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order
    +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a sales order
     ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment, user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox. 
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has NOT been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    @@ -32,7 +33,7 @@ VendorName=Name of vendor
     CSSUrlForPaymentForm=CSS style sheet url for payment form
     NewPayboxPaymentReceived=New Paybox payment received
     NewPayboxPaymentFailed=New Paybox payment tried but failed
    -PAYBOX_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or failed)
    +PAYBOX_PAYONLINE_SENDEMAIL=Email notification after payment attempt (success or fail)
     PAYBOX_PBX_SITE=Value for PBX SITE
     PAYBOX_PBX_RANG=Value for PBX Rang
    -PAYBOX_PBX_IDENTIFIANT=Value for PBX ID
    \ No newline at end of file
    +PAYBOX_PBX_IDENTIFIANT=Value for PBX ID
    diff --git a/htdocs/langs/en_US/paypal.lang b/htdocs/langs/en_US/paypal.lang
    index ad8b9612935..51e98ccc8a2 100644
    --- a/htdocs/langs/en_US/paypal.lang
    +++ b/htdocs/langs/en_US/paypal.lang
    @@ -1,25 +1,25 @@
     # Dolibarr language file - Source file is en_US - paypal
     PaypalSetup=PayPal module setup
    -PaypalDesc=This module offer pages to allow payment on <a href="http://www.paypal.com" target="_blank">PayPal</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
    -PaypalOrCBDoPayment=Pay with Paypal (Credit Card or Paypal)
    -PaypalDoPayment=Pay with Paypal
    +PaypalDesc=This module allows payment by customers via <a href="http://www.paypal.com" target="_blank">PayPal</a>. This can be used for a ad-hoc payment or for a payment related to a Dolibarr object (invoice, order, ...)
    +PaypalOrCBDoPayment=Pay with PayPal (Credit Card or PayPal)
    +PaypalDoPayment=Pay with PayPal
     PAYPAL_API_SANDBOX=Mode test/sandbox
     PAYPAL_API_USER=API username
     PAYPAL_API_PASSWORD=API password
     PAYPAL_API_SIGNATURE=API signature
     PAYPAL_SSLVERSION=Curl SSL Version
    -PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Offer payment "integral" (Credit card+Paypal) or "Paypal" only
    +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Offer "integral" payment (Credit card+PayPal) or "PayPal" only
     PaypalModeIntegral=Integral
     PaypalModeOnlyPaypal=PayPal only
    -ONLINE_PAYMENT_CSS_URL=Optionnal URL of CSS style sheet on online payment page
    +ONLINE_PAYMENT_CSS_URL=Optional URL of CSS stylesheet on online payment page
     ThisIsTransactionId=This is id of transaction: <b>%s</b>
    -PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail
    +PAYPAL_ADD_PAYMENT_URL=Include the PayPal payment url when you send a document by email
     YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
     NewOnlinePaymentReceived=New online payment received
     NewOnlinePaymentFailed=New online payment tried but failed
    -ONLINE_PAYMENT_SENDEMAIL=EMail to warn after a payment (success or not)
    +ONLINE_PAYMENT_SENDEMAIL=Email address for notifications after each payment attempt (for success and fail)
     ReturnURLAfterPayment=Return URL after payment
    -ValidationOfOnlinePaymentFailed=Validation of online payment failed 
    +ValidationOfOnlinePaymentFailed=Validation of online payment failed
     PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error
     SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed.
     DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed.
    @@ -28,8 +28,8 @@ ShortErrorMessage=Short Error Message
     ErrorCode=Error Code
     ErrorSeverityCode=Error Severity Code
     OnlinePaymentSystem=Online payment system
    -PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode)
    -PaypalImportPayment=Import Paypal payments
    +PaypalLiveEnabled=PayPal "live" mode enabled (otherwise test/sandbox mode)
    +PaypalImportPayment=Import PayPal payments
     PostActionAfterPayment=Post actions after payments
     ARollbackWasPerformedOnPostActions=A rollback was performed on all Post actions. You must complete post actions manually if they are necessary.
    -ValidationOfPaymentFailed=Validation of payment has failed
    \ No newline at end of file
    +ValidationOfPaymentFailed=Validation of payment has failed
    diff --git a/htdocs/langs/en_US/printing.lang b/htdocs/langs/en_US/printing.lang
    index e8349453247..16494583550 100644
    --- a/htdocs/langs/en_US/printing.lang
    +++ b/htdocs/langs/en_US/printing.lang
    @@ -2,7 +2,7 @@
     Module64000Name=Direct Printing
     Module64000Desc=Enable Direct Printing System
     PrintingSetup=Setup of Direct Printing System
    -PrintingDesc=This module adds a Print button to send documents directly to a printer (without opening document into an application) with various module.
    +PrintingDesc=This module adds a Print button to various modules to allow documents to be printed directly to a printer without needing to open the document in another application.
     MenuDirectPrinting=Direct Printing jobs
     DirectPrint=Direct print
     PrintingDriverDesc=Configuration variables for printing driver.
    @@ -19,7 +19,7 @@ UserConf=Setup per user
     PRINTGCP_INFO=Google OAuth API setup
     PRINTGCP_AUTHLINK=Authentication
     PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token
    -PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print.
    +PrintGCPDesc=This driver allows sending documents directly to a printer using Google Cloud Print.
     GCP_Name=Name
     GCP_displayName=Display Name
     GCP_Id=Printer Id
    @@ -27,7 +27,7 @@ GCP_OwnerName=Owner Name
     GCP_State=Printer State
     GCP_connectionStatus=Online State
     GCP_Type=Printer Type
    -PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed.
    +PrintIPPDesc=This driver allows sending of documents directly to a printer. It requires a Linux system with CUPS installed.
     PRINTIPP_HOST=Print server
     PRINTIPP_PORT=Port
     PRINTIPP_USER=Login
    @@ -46,7 +46,7 @@ IPP_Device=Device
     IPP_Media=Printer media
     IPP_Supported=Type of media
     DirectPrintingJobsDesc=This page lists printing jobs found for available printers.
    -GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret.
    +GoogleAuthNotConfigured=Google OAuth has not been setup. Enable module OAuth and set a Google ID/Secret.
     GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth.
     PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print.
     PrintingDriverDescprintipp=Configuration variables for printing driver Cups.
    diff --git a/htdocs/langs/en_US/productbatch.lang b/htdocs/langs/en_US/productbatch.lang
    index f0eafc807cf..54270c4a23b 100644
    --- a/htdocs/langs/en_US/productbatch.lang
    +++ b/htdocs/langs/en_US/productbatch.lang
    @@ -21,4 +21,4 @@ ProductDoesNotUseBatchSerial=This product does not use lot/serial number
     ProductLotSetup=Setup of module lot/serial
     ShowCurrentStockOfLot=Show current stock for couple product/lot
     ShowLogOfMovementIfLot=Show log of movements for couple product/lot
    -StockDetailPerBatch=Stock detail per lot
    \ No newline at end of file
    +StockDetailPerBatch=Stock detail per lot
    diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang
    index 88d06eb9939..5c1242a4181 100644
    --- a/htdocs/langs/en_US/products.lang
    +++ b/htdocs/langs/en_US/products.lang
    @@ -16,13 +16,13 @@ Create=Create
     Reference=Reference
     NewProduct=New product
     NewService=New service
    -ProductVatMassChange=Mass VAT change
    -ProductVatMassChangeDesc=This page can be used to modify a VAT rate defined on products or services from a value to another. Warning, this change is done on all database.
    +ProductVatMassChange=Global VAT Update
    +ProductVatMassChangeDesc=This tool updates the VAT rate defined on <b><u>ALL</u></b> products and services!
     MassBarcodeInit=Mass barcode init
     MassBarcodeInitDesc=This page can be used to initialize a barcode on objects that does not have barcode defined. Check before that setup of module barcode is complete.
     ProductAccountancyBuyCode=Accounting code (purchase)
     ProductAccountancySellCode=Accounting code (sale)
    -ProductAccountancySellIntraCode=Accounting code (sale intra-community)
    +ProductAccountancySellIntraCode=Accounting code (sale intra-Community)
     ProductAccountancySellExportCode=Accounting code (sale export)
     ProductOrService=Product or Service
     ProductsAndServices=Products and Services
    @@ -36,16 +36,16 @@ ServicesOnSaleOnly=Services for sale only
     ServicesOnPurchaseOnly=Services for purchase only
     ServicesNotOnSell=Services not for sale and not for purchase
     ServicesOnSellAndOnBuy=Services for sale and for purchase
    -LastModifiedProductsAndServices=Latest %s modified products/services
    +LastModifiedProductsAndServices=Last %s modified products/services
     LastRecordedProducts=Latest %s recorded products
     LastRecordedServices=Latest %s recorded services
     CardProduct0=Product card
     CardProduct1=Service card
     Stock=Stock
    -Stocks=Stocks
    +Stocks=Stocks and location (warehouse) of products
     Movements=Movements
    -Sell=Sales
    -Buy=Purchases
    +Sell=Sell
    +Buy=Purchase
     OnSell=For sale
     OnBuy=For purchase
     NotOnSell=Not for sale
    @@ -60,16 +60,16 @@ ProductStatusNotOnBuyShort=Not for purchase
     UpdateVAT=Update vat
     UpdateDefaultPrice=Update default price
     UpdateLevelPrices=Update prices for each level
    -AppliedPricesFrom=Applied prices from
    +AppliedPricesFrom=Applied from
     SellingPrice=Selling price
    -SellingPriceHT=Selling price (net of tax)
    +SellingPriceHT=Selling price (excl. tax)
     SellingPriceTTC=Selling price (inc. tax)
    -CostPriceDescription=This price (net of tax) can be used to store the average amount this product cost to your company. It may be any price you calculate yourself, for example from the average buying price plus average production and distribution cost.
    +CostPriceDescription=This price field (excl. tax) can be used to store the average amount this product costs to your company. It may be any price you calculate yourself, for example from the average buying price plus average production and distribution cost.
     CostPriceUsage=This value could be used for margin calculation.
     SoldAmount=Sold amount
     PurchasedAmount=Purchased amount
     NewPrice=New price
    -MinPrice=Min. selling price
    +MinPrice=Min. sell price
     EditSellingPriceLabel=Edit selling price label
     CantBeLessThanMinPrice=The selling price can't be lower than minimum allowed for this product (%s without tax). This message can also appears if you type a too important discount.
     ContractStatusClosed=Closed
    @@ -77,8 +77,8 @@ ErrorProductAlreadyExists=A product with reference %s already exists.
     ErrorProductBadRefOrLabel=Wrong value for reference or label.
     ErrorProductClone=There was a problem while trying to clone the product or service.
     ErrorPriceCantBeLowerThanMinPrice=Error, price can't be lower than minimum price.
    -Suppliers=Suppliers
    -SupplierRef=Supplier's product ref.
    +Suppliers=Vendors
    +SupplierRef=Vendor SKU
     ShowProduct=Show product
     ShowService=Show service
     ProductsAndServicesArea=Product and Services area
    @@ -87,7 +87,7 @@ ServicesArea=Services area
     ListOfStockMovements=List of stock movements
     BuyingPrice=Buying price
     PriceForEachProduct=Products with specific prices
    -SupplierCard=Supplier card
    +SupplierCard=Vendor card
     PriceRemoved=Price removed
     BarCode=Barcode
     BarcodeType=Barcode type
    @@ -95,7 +95,7 @@ SetDefaultBarcodeType=Set barcode type
     BarcodeValue=Barcode value
     NoteNotVisibleOnBill=Note (not visible on invoices, proposals...)
     ServiceLimitedDuration=If product is a service with limited duration:
    -MultiPricesAbility=Several segment of prices per product/service (each customer is in one segment)
    +MultiPricesAbility=Multiple price segments per product/service (each customer is in one price segment)
     MultiPricesNumPrices=Number of prices
     AssociatedProductsAbility=Activate virtual products (kits)
     AssociatedProducts=Virtual products
    @@ -109,7 +109,7 @@ CategoryFilter=Category filter
     ProductToAddSearch=Search product to add
     NoMatchFound=No match found
     ListOfProductsServices=List of products/services
    -ProductAssociationList=List of products/services that are component of this virtual product/package
    +ProductAssociationList=List of products/services that are component(s) of this virtual product/kit
     ProductParentList=List of virtual products/services with this product as a component
     ErrorAssociationIsFatherOfThis=One of selected product is parent with current product
     DeleteProduct=Delete a product/service
    @@ -122,19 +122,19 @@ ImportDataset_service_1=Services
     DeleteProductLine=Delete product line
     ConfirmDeleteProductLine=Are you sure you want to delete this product line?
     ProductSpecial=Special
    -QtyMin=Minimum Qty
    -PriceQtyMin=Price for this min. qty (w/o discount)
    -PriceQtyMinCurrency=Price for this min. qty (w/o discount) (currency)
    -VATRateForSupplierProduct=VAT Rate (for this supplier/product)
    -DiscountQtyMin=Default discount for qty
    -NoPriceDefinedForThisSupplier=No price/qty defined for this supplier/product
    -NoSupplierPriceDefinedForThisProduct=No supplier price/qty defined for this product
    -PredefinedProductsToSell=Predefined products to sell
    -PredefinedServicesToSell=Predefined services to sell 
    +QtyMin=Min. purchase quantity
    +PriceQtyMin=Equivalent/calculated price
    +PriceQtyMinCurrency=Price (currency) for this qty. (no discount)
    +VATRateForSupplierProduct=VAT Rate (for this vendor/product)
    +DiscountQtyMin=Discount for this qty.
    +NoPriceDefinedForThisSupplier=No price/qty defined for this vendor/product
    +NoSupplierPriceDefinedForThisProduct=No vendor price/qty defined for this product
    +PredefinedProductsToSell=Predefined Product
    +PredefinedServicesToSell=Predefined Service
     PredefinedProductsAndServicesToSell=Predefined products/services to sell
     PredefinedProductsToPurchase=Predefined product to purchase
     PredefinedServicesToPurchase=Predefined services to purchase
    -PredefinedProductsAndServicesToPurchase=Predefined products/services to puchase
    +PredefinedProductsAndServicesToPurchase=Predefined products/services to purchase
     NotPredefinedProducts=Not predefined products/services
     GenerateThumb=Generate thumb
     ServiceNb=Service #%s
    @@ -145,7 +145,7 @@ Finished=Manufactured product
     RowMaterial=Raw Material
     CloneProduct=Clone product or service
     ConfirmCloneProduct=Are you sure you want to clone product or service <b>%s</b>?
    -CloneContentProduct=Clone all main informations of product/service
    +CloneContentProduct=Clone all main information of product/service
     ClonePricesProduct=Clone prices
     CloneCompositionProduct=Clone packaged product/service
     CloneCombinationsProduct=Clone product variants
    @@ -154,11 +154,11 @@ NewRefForClone=Ref. of new product/service
     SellingPrices=Selling prices
     BuyingPrices=Buying prices
     CustomerPrices=Customer prices
    -SuppliersPrices=Supplier prices
    -SuppliersPricesOfProductsOrServices=Supplier prices (of products or services)
    +SuppliersPrices=Vendor prices
    +SuppliersPricesOfProductsOrServices=Vendor prices (of products or services)
     CustomCode=Customs / Commodity / HS code
     CountryOrigin=Origin country
    -Nature=Nature
    +Nature=Product Type (material/finished)
     ShortLabel=Short label
     Unit=Unit
     p=u.
    @@ -202,7 +202,7 @@ PriceByQuantity=Different prices by quantity
     DisablePriceByQty=Disable prices by quantity
     PriceByQuantityRange=Quantity range
     MultipriceRules=Price segment rules
    -UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment
    +UseMultipriceRules=Use price segment rules (defined into product module setup) to auto calculate prices of all other segments according to first segment
     PercentVariationOver=%% variation over %s
     PercentDiscountOver=%% discount over %s
     KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products
    @@ -218,43 +218,43 @@ Quarter1=1st. Quarter
     Quarter2=2nd. Quarter
     Quarter3=3rd. Quarter
     Quarter4=4th. Quarter
    -BarCodePrintsheet=Print bar code
    -PageToGenerateBarCodeSheets=With this tool, you can print sheets of bar code stickers. Choose format of your sticker page, type of barcode and value of barcode, then click on button <b>%s</b>.
    +BarCodePrintsheet=Print barcode
    +PageToGenerateBarCodeSheets=With this tool, you can print sheets of barcode stickers. Choose format of your sticker page, type of barcode and value of barcode, then click on button <b>%s</b>.
     NumberOfStickers=Number of stickers to print on page
     PrintsheetForOneBarCode=Print several stickers for one barcode
     BuildPageToPrint=Generate page to print
     FillBarCodeTypeAndValueManually=Fill barcode type and value manually.
     FillBarCodeTypeAndValueFromProduct=Fill barcode type and value from barcode of a product.
     FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party.
    -DefinitionOfBarCodeForProductNotComplete=Definition of type or value of bar code not complete for product %s.
    -DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of bar code non complete for third party %s.
    -BarCodeDataForProduct=Barcode information of product %s :
    -BarCodeDataForThirdparty=Barcode information of third party %s :
    +DefinitionOfBarCodeForProductNotComplete=Definition of type or value of barcode not complete for product %s.
    +DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of barcode non complete for third party %s.
    +BarCodeDataForProduct=Barcode information of product %s:
    +BarCodeDataForThirdparty=Barcode information of third party %s:
     ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values)
     PriceByCustomer=Different prices for each customer
     PriceCatalogue=A single sell price per product/service
    -PricingRule=Rules for sell prices
    +PricingRule=Rules for selling prices
     AddCustomerPrice=Add price by customer
     ForceUpdateChildPriceSoc=Set same price on customer subsidiaries
     PriceByCustomerLog=Log of previous customer prices
     MinimumPriceLimit=Minimum price can't be lower then %s
    -MinimumRecommendedPrice=Minimum recommended price is : %s
    +MinimumRecommendedPrice=Minimum recommended price is: %s
     PriceExpressionEditor=Price expression editor
     PriceExpressionSelected=Selected price expression
     PriceExpressionEditorHelp1="price = 2 + 2" or "2 + 2" for setting the price. Use ; to separate expressions
     PriceExpressionEditorHelp2=You can access ExtraFields with variables like <b>#extrafield_myextrafieldkey#</b> and global variables with <b>#global_mycode#</b>
    -PriceExpressionEditorHelp3=In both product/service and supplier prices there are these variables available:<br><b>#tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min#</b>
    -PriceExpressionEditorHelp4=In product/service price only: <b>#supplier_min_price#</b><br>In supplier prices only: <b>#supplier_quantity# and #supplier_tva_tx#</b>
    +PriceExpressionEditorHelp3=In both product/service and vendor prices there are these variables available:<br><b>#tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min#</b>
    +PriceExpressionEditorHelp4=In product/service price only: <b>#supplier_min_price#</b><br>In vendor prices only: <b>#supplier_quantity# and #supplier_tva_tx#</b>
     PriceExpressionEditorHelp5=Available global values:
     PriceMode=Price mode
     PriceNumeric=Number
     DefaultPrice=Default price
     ComposedProductIncDecStock=Increase/Decrease stock on parent change
    -ComposedProduct=Sub-product
    +ComposedProduct=Child products
     MinSupplierPrice=Minimum buying price
     MinCustomerPrice=Minimum selling price
     DynamicPriceConfiguration=Dynamic price configuration
    -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value.
    +DynamicPriceDesc=You may define mathematical formulae to calculate Customer or Vendor prices. Such formulas can use all mathematical operators, some constants and variables. You can define here the variables you wish to use. If the variable needs an automatic update, you may define the external URL to allow Dolibarr to update the value automatically.
     AddVariable=Add Variable
     AddUpdater=Add Updater
     GlobalVariables=Global variables
    @@ -269,7 +269,7 @@ GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.c
     UpdateInterval=Update interval (minutes)
     LastUpdated=Latest update
     CorrectlyUpdated=Correctly updated
    -PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is 
    +PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is
     PropalMergePdfProductChooseFile=Select PDF files
     IncludingProductWithTag=Including product/service with tag
     DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer
    @@ -277,7 +277,7 @@ WarningSelectOneDocument=Please select at least one document
     DefaultUnitToShow=Unit
     NbOfQtyInProposals=Qty in proposals
     ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view...
    -ProductsOrServicesTranslations=Products or services translation
    +ProductsOrServicesTranslations=Products/Services translations
     TranslatedLabel=Translated label
     TranslatedDescription=Translated description
     TranslatedNote=Translated notes
    @@ -292,8 +292,9 @@ SubProduct=Sub product
     ProductSheet=Product sheet
     ServiceSheet=Service sheet
     PossibleValues=Possible values
    -GoOnMenuToCreateVairants=Go on menu %s - %s to prepare attribute variants (like colors, size, ...) 
    -
    +GoOnMenuToCreateVairants=Go on menu %s - %s to prepare attribute variants (like colors, size, ...)
    +UseProductFournDesc=Use vendor descriptions of products in vendor documents
    +ProductSupplierDescription=Vendor description for the product
     #Attributes
     VariantAttributes=Variant attributes
     ProductAttributes=Variant attributes for products
    @@ -329,6 +330,8 @@ NbOfDifferentValues=No. of different values
     NbProducts=No. of products
     ParentProduct=Parent product
     HideChildProducts=Hide variant products
    +ShowChildProducts=Show variant products
    +NoEditVariants=Go to Parent product card and edit variants price impact in the variants tab
     ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference?
     CloneDestinationReference=Destination product reference
     ErrorCopyProductCombinations=There was an error while copying the product variants
    diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang
    index 5c66e298fe8..e2d6d87838c 100644
    --- a/htdocs/langs/en_US/projects.lang
    +++ b/htdocs/langs/en_US/projects.lang
    @@ -7,7 +7,7 @@ ProjectsArea=Projects Area
     ProjectStatus=Project status
     SharedProject=Everybody
     PrivateProject=Project contacts
    -ProjectsImContactFor=Projects I'm explicitely a contact of 
    +ProjectsImContactFor=Projects for I am explicitly a contact
     AllAllowedProjects=All project I can read (mine + public)
     AllProjects=All projects
     MyProjectsDesc=This view is limited to projects you are a contact for
    @@ -33,8 +33,8 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
    @@ -56,6 +56,7 @@ WorkloadNotDefined=Workload not defined
     NewTimeSpent=Time spent
     MyTimeSpent=My time spent
     BillTime=Bill the time spent
    +BillTimeShort=Bill time
     Tasks=Tasks
     Task=Task
     TaskDateStart=Task start date
    @@ -79,19 +80,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of sales orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of purchase orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of vendor invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -125,10 +127,10 @@ TaskRessourceLinks=Contacts task
     ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party
     NoTasks=No tasks for this project
     LinkedToAnotherCompany=Linked to other third party
    -TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now. 
    +TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,14 +148,14 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    -OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    -OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    -OpportunityAmountShort=Opp. amount
    -OpportunityAmountAverageShort=Average Opp. amount
    -OpportunityAmountWeigthedShort=Weighted Opp. amount
    +OpportunityStatus=Lead status
    +OpportunityStatusShort=Lead status
    +OpportunityProbability=Lead probability
    +OpportunityProbabilityShort=Lead probab.
    +OpportunityAmount=Lead amount
    +OpportunityAmountShort=Lead amount
    +OpportunityAmountAverageShort=Average lead amount
    +OpportunityAmountWeigthedShort=Weighted lead amount
     WonLostExcluded=Won/Lost excluded
     ##### Types de contacts #####
     TypeContact_project_internal_PROJECTLEADER=Project leader
    @@ -183,6 +185,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -190,25 +193,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
     ProjectNbProjectByMonth=No. of created projects by month
     ProjectNbTaskByMonth=No. of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -217,11 +221,11 @@ OppStatusPENDING=Pending
     OppStatusWON=Won
     OppStatusLOST=Lost
     Budget=Budget
    -AllowToLinkFromOtherCompany=Allow to link project from other company<br><br><u>Supported values :</u><br>- Keep empty: Can link any project of the company (default)<br>- "all" : Can link any projects, even project of other companies<br>- A list of thirdparty id separated with commas : Can link all projects of these thirdparty defined (Example : 123,4795,53)<br>
    +AllowToLinkFromOtherCompany=Allow to link project from other company<br><br><u>Supported values:</u><br>- Keep empty: Can link any project of the company (default)<br>- "all": Can link any projects, even projects of other companies<br>- A list of third-party ids separated by commas: can link all projects of these third partys (Example: 123,4795,53)<br>
     LatestProjects=Latest %s projects
     LatestModifiedProjects=Latest %s modified projects
     OtherFilteredTasks=Other filtered tasks
    -NoAssignedTasks=No assigned tasks (assign project/tasks the current user from the top select box to enter time on it)
    +NoAssignedTasks=No assigned tasks found (assign project/tasks to the current user from the top select box to enter time on it)
     # Comments trans
     AllowCommentOnTask=Allow user comments on tasks
     AllowCommentOnProject=Allow user comments on projects
    @@ -229,4 +233,6 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    -ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Salaries' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is required
    +TimeSpentInvoiced=Time spent billed
    \ No newline at end of file
    diff --git a/htdocs/langs/en_US/propal.lang b/htdocs/langs/en_US/propal.lang
    index 3552076a4e7..44da81357ef 100644
    --- a/htdocs/langs/en_US/propal.lang
    +++ b/htdocs/langs/en_US/propal.lang
    @@ -22,7 +22,7 @@ SearchAProposal=Search a proposal
     NoProposal=No proposal
     ProposalsStatistics=Commercial proposal's statistics
     NumberOfProposalsByMonth=Number by month
    -AmountOfProposalsByMonthHT=Amount by month (net of tax)
    +AmountOfProposalsByMonthHT=Amount by month (excl. tax)
     NbOfProposals=Number of commercial proposals
     ShowPropal=Show proposal
     PropalsDraft=Drafts
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,8 +78,9 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
     ProposalCustomerSignature=Written acceptance, company stamp, date and signature
    -ProposalsStatisticsSuppliers=Supplier proposals statistics 
    +ProposalsStatisticsSuppliers=Vendor proposals statistics
    diff --git a/htdocs/langs/en_US/receptions.lang b/htdocs/langs/en_US/receptions.lang
    new file mode 100644
    index 00000000000..7fd8ba25202
    --- /dev/null
    +++ b/htdocs/langs/en_US/receptions.lang
    @@ -0,0 +1,42 @@
    +# Dolibarr language file - Source file is en_US - receptions
    +RefReception=Ref. reception
    +Reception=Reception
    +Receptions=Receptions
    +AllReceptions=All Receptions
    +Reception=Reception
    +Receptions=Receptions
    +ShowReception=Show Receptions
    +ReceptionsArea=Receptions area
    +ListOfReceptions=List of receptions
    +ReceptionMethod=Reception method
    +LastReceptions=Latest %s receptions
    +StatisticsOfReceptions=Statistics for receptions
    +NbOfReceptions=Number of receptions
    +NumberOfReceptionsByMonth=Number of receptions by month
    +ReceptionCard=Reception card
    +NewReception=New reception
    +CreateReception=Create reception
    +QtyInOtherReceptions=Qty in other receptions
    +OtherReceptionsForSameOrder=Other receptions for this order
    +ReceptionsAndReceivingForSameOrder=Receptions and receipts for this order
    +ReceptionsToValidate=Receptions to validate
    +StatusReceptionCanceled=Canceled
    +StatusReceptionDraft=Draft
    +StatusReceptionValidated=Validated (products to ship or already shipped)
    +StatusReceptionProcessed=Processed
    +StatusReceptionDraftShort=Draft
    +StatusReceptionValidatedShort=Validated
    +StatusReceptionProcessedShort=Processed
    +ReceptionSheet=Reception sheet
    +ConfirmDeleteReception=Are you sure you want to delete this reception?
    +ConfirmValidateReception=Are you sure you want to validate this reception with reference <b>%s</b>?
    +ConfirmCancelReception=Are you sure you want to cancel this reception?
    +StatsOnReceptionsOnlyValidated=Statistics conducted on receptions only validated. Date used is date of validation of reception (planed delivery date is not always known).
    +SendReceptionByEMail=Send reception by email
    +SendReceptionRef=Submission of reception %s
    +ActionsOnReception=Events on reception
    +ReceptionCreationIsDoneFromOrder=For the moment, creation of a new reception is done from the order card.
    +ReceptionLine=Reception line
    +ProductQtyInReceptionAlreadySent=Product quantity from open sales order already sent
    +ProductQtyInSuppliersReceptionAlreadyRecevied=Product quantity from open supplier order already received
    +ValidateOrderFirstBeforeReception=You must first validate the order before being able to make receptions.
    \ No newline at end of file
    diff --git a/htdocs/langs/en_US/resource.lang b/htdocs/langs/en_US/resource.lang
    index 5a907f6ba23..33a5046e006 100644
    --- a/htdocs/langs/en_US/resource.lang
    +++ b/htdocs/langs/en_US/resource.lang
    @@ -5,7 +5,7 @@ DeleteResource=Delete resource
     ConfirmDeleteResourceElement=Confirm delete the resource for this element
     NoResourceInDatabase=No resource in database.
     NoResourceLinked=No resource linked
    -
    +ActionsOnResource=Events about this resource
     ResourcePageIndex=Resources list
     ResourceSingular=Resource
     ResourceCard=Resource card
    diff --git a/htdocs/langs/en_US/salaries.lang b/htdocs/langs/en_US/salaries.lang
    index 432ab894040..1e3607ce7cc 100644
    --- a/htdocs/langs/en_US/salaries.lang
    +++ b/htdocs/langs/en_US/salaries.lang
    @@ -1,18 +1,19 @@
     # Dolibarr language file - Source file is en_US - salaries
     SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
    -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
    +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accounting account on user is not defined.
     SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments
     Salary=Salary
     Salaries=Salaries
     NewSalaryPayment=New salary payment
    +AddSalaryPayment=Add salary payment
     SalaryPayment=Salary payment
     SalariesPayments=Salaries payments
     ShowSalaryPayment=Show salary payment
     THM=Average hourly rate
     TJM=Average daily rate
     CurrentSalary=Current salary
    -THMDescription=This value may be used to calculate cost of time consumed on a project entered by users if module project is used
    -TJMDescription=This value is currently as information only and is not used for any calculation
    +THMDescription=This value may be used to calculate the cost of time consumed on a project entered by users if module project is used
    +TJMDescription=This value is currently for information only and is not used for any calculation
     LastSalaries=Latest %s salary payments
     AllSalaries=All salary payments
    -SalariesStatistics=Statistiques salaires
    \ No newline at end of file
    +SalariesStatistics=Salary statistics
    diff --git a/htdocs/langs/en_US/sendings.lang b/htdocs/langs/en_US/sendings.lang
    index b8474775e75..ede7fea87b7 100644
    --- a/htdocs/langs/en_US/sendings.lang
    +++ b/htdocs/langs/en_US/sendings.lang
    @@ -46,17 +46,17 @@ DateDeliveryPlanned=Planned date of delivery
     RefDeliveryReceipt=Ref delivery receipt
     StatusReceipt=Status delivery receipt
     DateReceived=Date delivery received
    -SendShippingByEMail=Send shipment by EMail
    +SendShippingByEMail=Send shipment by email
     SendShippingRef=Submission of shipment %s
     ActionsOnShipping=Events on shipment
     LinkToTrackYourPackage=Link to track your package
     ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card.
     ShipmentLine=Shipment line
    -ProductQtyInCustomersOrdersRunning=Product quantity into open customer orders
    +ProductQtyInCustomersOrdersRunning=Product quantity into open sales orders
     ProductQtyInSuppliersOrdersRunning=Product quantity into open purchase orders
    -ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent
    -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received
    -NoProductToShipFoundIntoStock=No product to ship found into warehouse <b>%s</b>. Correct stock or go back to choose another warehouse. 
    +ProductQtyInShipmentAlreadySent=Product quantity from open sales order already sent
    +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open purchase order already received
    +NoProductToShipFoundIntoStock=No product to ship found in warehouse <b>%s</b>. Correct stock or go back to choose another warehouse.
     WeightVolShort=Weight/Vol.
     ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments.
     
    @@ -69,4 +69,4 @@ SumOfProductWeights=Sum of product weights
     
     # warehouse details
     DetailWarehouseNumber= Warehouse details
    -DetailWarehouseFormat= W:%s (Qty : %d)
    +DetailWarehouseFormat= W:%s (Qty: %d)
    diff --git a/htdocs/langs/en_US/sms.lang b/htdocs/langs/en_US/sms.lang
    index b333d7887bb..055085eb16a 100644
    --- a/htdocs/langs/en_US/sms.lang
    +++ b/htdocs/langs/en_US/sms.lang
    @@ -1,9 +1,9 @@
     # Dolibarr language file - Source file is en_US - sms
     Sms=Sms
    -SmsSetup=Sms setup
    -SmsDesc=This page allows you to define globals options on SMS features
    +SmsSetup=SMS setup
    +SmsDesc=This page allows you to define global options on SMS features
     SmsCard=SMS Card
    -AllSms=All SMS campains
    +AllSms=All SMS campaigns
     SmsTargets=Targets
     SmsRecipients=Targets
     SmsRecipient=Target
    @@ -13,20 +13,20 @@ SmsTo=Target
     SmsTopic=Topic of SMS
     SmsText=Message
     SmsMessage=SMS Message
    -ShowSms=Show Sms
    -ListOfSms=List SMS campains
    -NewSms=New SMS campain
    -EditSms=Edit Sms
    +ShowSms=Show SMS
    +ListOfSms=List SMS campaigns
    +NewSms=New SMS campaign
    +EditSms=Edit SMS
     ResetSms=New sending
    -DeleteSms=Delete Sms campain
    -DeleteASms=Remove a Sms campain
    -PreviewSms=Previuw Sms
    -PrepareSms=Prepare Sms
    -CreateSms=Create Sms
    -SmsResult=Result of Sms sending
    -TestSms=Test Sms
    -ValidSms=Validate Sms
    -ApproveSms=Approve Sms
    +DeleteSms=Delete SMS campaign
    +DeleteASms=Remove a SMS campaign
    +PreviewSms=Previuw SMS
    +PrepareSms=Prepare SMS
    +CreateSms=Create SMS
    +SmsResult=Result of SMS sending
    +TestSms=Test SMS
    +ValidSms=Validate SMS
    +ApproveSms=Approve SMS
     SmsStatusDraft=Draft
     SmsStatusValidated=Validated
     SmsStatusApproved=Approved
    @@ -35,7 +35,7 @@ SmsStatusSentPartialy=Sent partially
     SmsStatusSentCompletely=Sent completely
     SmsStatusError=Error
     SmsStatusNotSent=Not sent
    -SmsSuccessfulySent=Sms correctly sent (from %s to %s)
    +SmsSuccessfulySent=SMS correctly sent (from %s to %s)
     ErrorSmsRecipientIsEmpty=Number of target is empty
     WarningNoSmsAdded=No new phone number to add to target list
     ConfirmValidSms=Do you confirm validation of this campaign?
    @@ -44,8 +44,8 @@ NbOfSms=No. of phone numbers
     ThisIsATestMessage=This is a test message
     SendSms=Send SMS
     SmsInfoCharRemain=No. of remaining characters
    -SmsInfoNumero= (international format ie : +33899701761)
    +SmsInfoNumero= (international format i.e.: +33899701761)
     DelayBeforeSending=Delay before sending (minutes)
     SmsNoPossibleSenderFound=No sender available. Check setup of your SMS provider.
     SmsNoPossibleRecipientFound=No target available. Check setup of your SMS provider.
    -DisableStopIfSupported=Disable STOP message (if supported) 
    +DisableStopIfSupported=Disable STOP message (if supported)
    diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang
    index da00add3711..f49b38fe760 100644
    --- a/htdocs/langs/en_US/stocks.lang
    +++ b/htdocs/langs/en_US/stocks.lang
    @@ -3,9 +3,9 @@ WarehouseCard=Warehouse card
     Warehouse=Warehouse
     Warehouses=Warehouses
     ParentWarehouse=Parent warehouse
    -NewWarehouse=New warehouse / Stock area
    +NewWarehouse=New Warehouse / Stock Location
     WarehouseEdit=Modify warehouse
    -MenuNewWarehouse=New warehouse
    +MenuNewWarehouse=New Warehouse
     WarehouseSource=Source warehouse
     WarehouseSourceNotDefined=No warehouse defined,
     AddWarehouse=Create warehouse
    @@ -46,7 +46,6 @@ TransferStock=Transfer stock
     MassStockTransferShort=Mass stock transfer
     StockMovement=Stock movement
     StockMovements=Stock movements
    -LabelMovement=Movement label
     NumberOfUnit=Number of units
     UnitPurchaseValue=Unit purchase price
     StockTooLow=Stock too low
    @@ -56,21 +55,21 @@ PMPValue=Weighted average price
     PMPValueShort=WAP
     EnhancedValueOfWarehouses=Warehouses value
     UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user
    -AllowAddLimitStockByWarehouse=Allow to add limit and desired stock per couple (product, warehouse) instead of per product
    -IndependantSubProductStock=Product stock and subproduct stock are independant
    +AllowAddLimitStockByWarehouse=Manage also values for minimum and desired stock per pairing (product-warehouse) in addition to values per product
    +IndependantSubProductStock=Product stock and subproduct stock are independent
     QtyDispatched=Quantity dispatched
     QtyDispatchedShort=Qty dispatched
     QtyToDispatchShort=Qty to dispatch
     OrderDispatch=Item receipts
    -RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated)
    -RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated)
    -DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation
    -DeStockOnValidateOrder=Decrease real stocks on customers orders validation
    +RuleForStockManagementDecrease=Choose Rule for automatic stock decrease (manual decrease is always possible, even if an automatic decrease rule is activated)
    +RuleForStockManagementIncrease=Choose Rule for automatic stock increase (manual increase is always possible, even if an automatic increase rule is activated)
    +DeStockOnBill=Decrease real stocks on validation of customer invoice/credit note
    +DeStockOnValidateOrder=Decrease real stocks on validation of sales order
     DeStockOnShipment=Decrease real stocks on shipping validation
     DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed
    -ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation
    -ReStockOnValidateOrder=Increase real stocks on purchase orders approbation
    -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods
    +ReStockOnBill=Increase real stocks on validation of vendor invoice/credit note
    +ReStockOnValidateOrder=Increase real stocks on purchase order approval
    +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouse, after purchase order receipt of goods
     OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses.
     StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock
     NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required.
    @@ -78,12 +77,12 @@ DispatchVerb=Dispatch
     StockLimitShort=Limit for alert
     StockLimit=Stock limit for alert
     StockLimitDesc=(empty) means no warning.<br>0 can be used for a warning as soon as stock is empty.
    -PhysicalStock=Physical stock
    +PhysicalStock=Physical Stock
     RealStock=Real Stock
    -RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. 
    -RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this):
    +RealStockDesc=Physical/real stock is the stock currently in the warehouses.
    +RealStockWillAutomaticallyWhen=The real stock will be modified according to this rule (as defined in the Stock module):
     VirtualStock=Virtual stock
    -VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...)
    +VirtualStockDesc=Virtual stock is the calculated stock available once all open/pending actions (that affect stocks) are closed (purchase orders received, sales orders shipped etc.)
     IdWarehouse=Id warehouse
     DescWareHouse=Description warehouse
     LieuWareHouse=Localisation warehouse
    @@ -103,7 +102,7 @@ ThisWarehouseIsPersonalStock=This warehouse represents personal stock of %s %s
     SelectWarehouseForStockDecrease=Choose warehouse to use for stock decrease
     SelectWarehouseForStockIncrease=Choose warehouse to use for stock increase
     NoStockAction=No stock action
    -DesiredStock=Desired optimal stock
    +DesiredStock=Desired Stock
     DesiredStockDesc=This stock amount will be the value used to fill the stock by replenishment feature.
     StockToBuy=To order
     Replenishment=Replenishment
    @@ -116,13 +115,13 @@ CurentSelectionMode=Current selection mode
     CurentlyUsingVirtualStock=Virtual stock
     CurentlyUsingPhysicalStock=Physical stock
     RuleForStockReplenishment=Rule for stocks replenishment
    -SelectProductWithNotNullQty=Select at least one product with a qty not null and a supplier
    +SelectProductWithNotNullQty=Select at least one product with a qty not null and a vendor
     AlertOnly= Alerts only
     WarehouseForStockDecrease=The warehouse <b>%s</b> will be used for stock decrease
     WarehouseForStockIncrease=The warehouse <b>%s</b> will be used for stock increase
     ForThisWarehouse=For this warehouse
    -ReplenishmentStatusDesc=This is a list of all products with a stock lower than desired stock (or lower than alert value if checkbox "alert only" is checked). Using the checkbox, you can create supplier orders to fill the difference.
    -ReplenishmentOrdersDesc=This is a list of all open supplier orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here.
    +ReplenishmentStatusDesc=This is a list of all products with a stock lower than desired stock (or lower than alert value if checkbox "alert only" is checked). Using the checkbox, you can create purchase orders to fill the difference.
    +ReplenishmentOrdersDesc=This is a list of all open purchase orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here.
     Replenishments=Replenishments
     NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s)
     NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s)
    @@ -132,24 +131,25 @@ RecordMovement=Record transfer
     ReceivingForSameOrder=Receipts for this order
     StockMovementRecorded=Stock movements recorded
     RuleForStockAvailability=Rules on stock requirements
    -StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to invoice (check is done on current real stock when adding a line into invoice whatever is rule for automatic stock change)
    -StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change)
    -StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change)
    +StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to invoice (check is done on current real stock when adding a line into invoice whatever the rule for automatic stock change)
    +StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever the rule for automatic stock change)
    +StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever the rule for automatic stock change)
     MovementLabel=Label of movement
    +TypeMovement=Type of movement
     DateMovement=Date of movement
     InventoryCode=Movement or inventory code
     IsInPackage=Contained into package
    -WarehouseAllowNegativeTransfer=Stock can be negative 
    +WarehouseAllowNegativeTransfer=Stock can be negative
     qtyToTranferIsNotEnough=You don't have enough stock from your source warehouse and your setup does not allow negative stocks.
     ShowWarehouse=Show warehouse
     MovementCorrectStock=Stock correction for product %s
     MovementTransferStock=Stock transfer of product %s into another warehouse
     InventoryCodeShort=Inv./Mov. code
    -NoPendingReceptionOnSupplierOrder=No pending reception due to open supplier order
    +NoPendingReceptionOnSupplierOrder=No pending reception due to open purchase order
     ThisSerialAlreadyExistWithDifferentDate=This lot/serial number (<strong>%s</strong>) already exists but with different eatby or sellby date (found <strong>%s</strong> but you enter <strong>%s</strong>).
     OpenAll=Open for all actions
     OpenInternal=Open only for internal actions
    -UseDispatchStatus=Use a dispatch status (approve/refuse) for product lines on supplier order reception
    +UseDispatchStatus=Use a dispatch status (approve/refuse) for product lines on purchase order reception
     OptionMULTIPRICESIsOn=Option "several prices per segment" is on. It means a product has several selling price so value for sell can't be calculated
     ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock correctly created
     ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated
    @@ -173,16 +173,16 @@ inventoryValidate=Validated
     inventoryDraft=Running
     inventorySelectWarehouse=Warehouse choice
     inventoryConfirmCreate=Create
    -inventoryOfWarehouse=Inventory for warehouse : %s
    -inventoryErrorQtyAdd=Error : one quantity is leaser than zero
    +inventoryOfWarehouse=Inventory for warehouse: %s
    +inventoryErrorQtyAdd=Error: one quantity is less than zero
     inventoryMvtStock=By inventory
     inventoryWarningProductAlreadyExists=This product is already into list
     SelectCategory=Category filter
    -SelectFournisseur=Supplier filter
    -inventoryOnDate=Inventory 
    -INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory
    +SelectFournisseur=Vendor filter
    +inventoryOnDate=Inventory
    +INVENTORY_DISABLE_VIRTUAL=Virtual product (kit): do not decrement stock of a child product
     INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found
    -INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock movement have date of inventory
    +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock movement has date of inventory
     inventoryChangePMPPermission=Allow to change PMP value for a product
     ColumnNewPMP=New unit PMP
     OnlyProdsInStock=Do not add product without stock
    @@ -197,12 +197,16 @@ AddInventoryProduct=Add product to inventory
     AddProduct=Add
     ApplyPMP=Apply PMP
     FlushInventory=Flush inventory
    -ConfirmFlushInventory=Do you confirm this action ?
    +ConfirmFlushInventory=Do you confirm this action?
     InventoryFlushed=Inventory flushed
     ExitEditMode=Exit edition
     inventoryDeleteLine=Delete line
     RegulateStock=Regulate Stock
     ListInventory=List
    -StockSupportServices=Stock management support services
    -StockSupportServicesDesc=By default, you can stock only product with type "product". If on, and if module service is on, you can also stock a product with type "service"
    -ReceiveProducts=Receive items
    \ No newline at end of file
    +StockSupportServices=Stock management supports Services
    +StockSupportServicesDesc=By default, you can stock only products of type "product". You may also stock a product of type "service" if both module Services and this option are enabled.
    +ReceiveProducts=Receive items
    +StockIncreaseAfterCorrectTransfer=Increase by correction/transfer
    +StockDecreaseAfterCorrectTransfer=Decrease by correction/transfer
    +StockIncrease=Stock increase
    +StockDecrease=Stock decrease
    diff --git a/htdocs/langs/en_US/stripe.lang b/htdocs/langs/en_US/stripe.lang
    index ecd176a0ae7..d45a768ff39 100644
    --- a/htdocs/langs/en_US/stripe.lang
    +++ b/htdocs/langs/en_US/stripe.lang
    @@ -1,6 +1,6 @@
     # Dolibarr language file - Source file is en_US - stripe
     StripeSetup=Stripe module setup
    -StripeDesc=Module to offer an online payment page accepting payments with Credit/Debit card via <a href="http://www.stripe.com" target="_blank">Stripe</a>. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +StripeDesc=Offer customers a Stripe online payment page for payments with credit/cebit cards via <a href="http://www.stripe.com" target="_blank">Stripe</a>. This can be used to allow your customers to make ad-hoc payments or for payments related to a particular Dolibarr object (invoice, order, ...)
     StripeOrCBDoPayment=Pay with credit card or Stripe
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    @@ -9,20 +9,20 @@ ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
     YourEMail=Email to receive payment confirmation
    -STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not)
    +STRIPE_PAYONLINE_SENDEMAIL=Email notification after a payment attempt (success or fail)
     Creditor=Creditor
     PaymentCode=Payment code
     StripeDoPayment=Pay with Credit or Debit Card (Stripe)
     YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information
     Continue=Next
     ToOfferALinkForOnlinePayment=URL for %s payment
    -ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order
    +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a sales order
     ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url <b>%s</b> to have payment created automatically when validated by Stripe. 
    +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url <b>%s</b> to have payment created automatically when validated by Stripe.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    @@ -60,4 +60,5 @@ DeleteACard=Delete Card
     ConfirmDeleteCard=Are you sure you want to delete this Credit or Debit card?
     CreateCustomerOnStripe=Create customer on Stripe
     CreateCardOnStripe=Create card on Stripe
    -ShowInStripe=Show in Stripe
    \ No newline at end of file
    +ShowInStripe=Show in Stripe
    +StripeUserAccountForActions=User account to use for email notification of some Stripe events (Stripe payouts)
    diff --git a/htdocs/langs/en_US/supplier_proposal.lang b/htdocs/langs/en_US/supplier_proposal.lang
    index ef2e7242e31..501b6d907e3 100644
    --- a/htdocs/langs/en_US/supplier_proposal.lang
    +++ b/htdocs/langs/en_US/supplier_proposal.lang
    @@ -1,6 +1,6 @@
     # Dolibarr language file - Source file is en_US - supplier_proposal
     SupplierProposal=Vendor commercial proposals
    -supplier_proposalDESC=Manage price requests to vendors
    +supplier_proposalDESC=Manage price requests to suppliers
     SupplierProposalNew=New price request
     CommRequest=Price request
     CommRequests=Price requests
    diff --git a/htdocs/langs/en_US/suppliers.lang b/htdocs/langs/en_US/suppliers.lang
    index ac5102323d9..b69b11272b4 100644
    --- a/htdocs/langs/en_US/suppliers.lang
    +++ b/htdocs/langs/en_US/suppliers.lang
    @@ -1,4 +1,4 @@
    -# Dolibarr language file - Source file is en_US - suppliers
    +# Dolibarr language file - Source file is en_US - vendors
     Suppliers=Vendors
     SuppliersInvoice=Vendor invoice
     ShowSupplierInvoice=Show Vendor Invoice
    @@ -15,7 +15,7 @@ SomeSubProductHaveNoPrices=Some sub-products have no price defined
     AddSupplierPrice=Add buying price
     ChangeSupplierPrice=Change buying price
     SupplierPrices=Vendor prices
    -ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s
    +ReferenceSupplierIsAlreadyAssociatedWithAProduct=This vendor reference is already associated with a product: %s
     NoRecordedSuppliers=No vendor recorded
     SupplierPayment=Vendor payment
     SuppliersArea=Vendor area
    @@ -35,13 +35,13 @@ ListOfSupplierProductForSupplier=List of products and prices for vendor <b>%s</b
     SentToSuppliers=Sent to vendors
     ListOfSupplierOrders=List of purchase orders
     MenuOrdersSupplierToBill=Purchase orders to invoice
    -NbDaysToDelivery=Delivery delay in days
    -DescNbDaysToDelivery=The biggest deliver delay of the products from this order
    +NbDaysToDelivery=Delivery delay (days)
    +DescNbDaysToDelivery=The longest delivery delay of the products from this order
     SupplierReputation=Vendor reputation
     DoNotOrderThisProductToThisSupplier=Do not order
    -NotTheGoodQualitySupplier=Wrong quality
    +NotTheGoodQualitySupplier=Low quality
     ReputationForThisProduct=Reputation
     BuyerName=Buyer name
     AllProductServicePrices=All product / service prices
    -AllProductReferencesOfSupplier=All product / service references of supplier
    +AllProductReferencesOfSupplier=All product / service references of vendor
     BuyingPriceNumShort=Vendor prices
    diff --git a/htdocs/langs/en_US/ticket.lang b/htdocs/langs/en_US/ticket.lang
    index d8f1137b7af..1a9e4ca232d 100644
    --- a/htdocs/langs/en_US/ticket.lang
    +++ b/htdocs/langs/en_US/ticket.lang
    @@ -25,7 +25,7 @@ Permission56001=See tickets
     Permission56002=Modify tickets
     Permission56003=Delete tickets
     Permission56004=Manage tickets
    -Permission56005=See tickets of all third parties (not effective for external users, always be limited to the thirdparty they depend on)
    +Permission56005=See tickets of all third parties (not effective for external users, always be limited to the third party they depend on)
     
     TicketDictType=Tickets type
     TicketDictCategory=Tickets categories
    @@ -115,14 +115,14 @@ TicketsShowCompanyLogo=Display the logo of the company in the public interface
     TicketsShowCompanyLogoHelp=Enable this option to hide the logo of the main company in the pages of the public interface
     TicketsEmailAlsoSendToMainAddress=Also send notification to main email address
     TicketsEmailAlsoSendToMainAddressHelp=Enable this option to send an email to "Notification email from" address (see setup below)
    -TicketsLimitViewAssignedOnly=Restrict the display to tickets assigned to the current user (not effective for external users, always be limited to the thirdparty they depend on)
    +TicketsLimitViewAssignedOnly=Restrict the display to tickets assigned to the current user (not effective for external users, always be limited to the third party they depend on)
     TicketsLimitViewAssignedOnlyHelp=Only tickets assigned to the current user will be visible. Does not apply to a user with tickets management rights.
     TicketsActivatePublicInterface=Activate public interface
     TicketsActivatePublicInterfaceHelp=Public interface allow any visitors to create tickets.
     TicketsAutoAssignTicket=Automatically assign the user who created the ticket
     TicketsAutoAssignTicketHelp=When creating a ticket, the user can be automatically assigned to the ticket.
     TicketNumberingModules=Tickets numbering module
    -TicketNotifyTiersAtCreation=Notify thirdparty at creation
    +TicketNotifyTiersAtCreation=Notify third party at creation
     
     #
     # Index & list page
    @@ -138,7 +138,7 @@ TicketStatByStatus=Tickets by status
     #
     # Ticket card
     #
    -Ticket=Incident ticket
    +Ticket=Ticket
     TicketCard=Ticket card
     CreateTicket=Create ticket
     EditTicket=Edit ticket
    @@ -203,7 +203,7 @@ TicketTimeToRead=Time elapsed before read
     TicketContacts=Contacts ticket
     TicketDocumentsLinked=Documents linked to ticket
     ConfirmReOpenTicket=Confirm reopen this ticket ?
    -TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticket with the subject %s :
    +TicketMessageMailIntroAutoNewPublicMessage=A new message was posted on the ticket with the subject %s:
     TicketAssignedToYou=Ticket assigned
     TicketAssignedEmailBody=You have been assigned the ticket #%s by %s
     MarkMessageAsPrivate=Mark message as private
    @@ -212,13 +212,13 @@ TicketEmailOriginIssuer=Issuer at origin of the tickets
     InitialMessage=Initial Message
     LinkToAContract=Link to a contract
     TicketPleaseSelectAContract=Select a contract
    -UnableToCreateInterIfNoSocid=Can not create an intervention when no third party are defined
    +UnableToCreateInterIfNoSocid=Can not create an intervention when no third party is defined
     TicketMailExchanges=Mail exchanges
     TicketInitialMessageModified=Initial message modified
     TicketMessageSuccesfullyUpdated=Message successfully updated
     TicketChangeStatus=Change status
    -TicketConfirmChangeStatus=Confirm the status change : %s ?
    -TicketLogStatusChanged=Status changed : %s to %s
    +TicketConfirmChangeStatus=Confirm the status change: %s ?
    +TicketLogStatusChanged=Status changed: %s to %s
     TicketNotNotifyTiersAtCreate=Not notify company at create
     Unread=Unread
     
    @@ -229,7 +229,7 @@ TicketLogMesgReadBy=Ticket read by %s
     NoLogForThisTicket=No log for this ticket yet
     TicketLogAssignedTo=Ticket assigned to %s
     TicketAssignedButLogActionNotSaved=Ticket assigned but no log saved !
    -TicketLogPropertyChanged=Change classification : from %s to %s
    +TicketLogPropertyChanged=Change classification: from %s to %s
     TicketLogClosedBy=Ticket closed by %s
     TicketLogProgressSetTo=Progress change to %s percent
     TicketLogReopen=Ticket re-opened
    @@ -249,7 +249,7 @@ TicketNewEmailSubjectCustomer=New support ticket
     TicketNewEmailBody=This is an automatic email to confirm you have registered a new ticket.
     TicketNewEmailBodyCustomer=This is an automatic email to confirm a new ticket has just been created into your account.
     TicketNewEmailBodyInfosTicket=Information for monitoring the ticket
    -TicketNewEmailBodyInfosTrackId=Ticket tracking number : %s
    +TicketNewEmailBodyInfosTrackId=Ticket tracking number: %s
     TicketNewEmailBodyInfosTrackUrl=You can view the progress of the ticket by clicking the link above.
     TicketNewEmailBodyInfosTrackUrlCustomer=You can view the progress of the ticket in the specific interface by clicking the following link
     TicketEmailPleaseDoNotReplyToThisEmail=Please do not reply directly to this email! Use the link to reply into the interface.
    @@ -258,15 +258,15 @@ TicketPublicPleaseBeAccuratelyDescribe=Please accurately describe the problem. P
     TicketPublicMsgViewLogIn=Please enter ticket tracking ID
     TicketTrackId=Tracking ID
     OneOfTicketTrackId=One of yours tracking ID
    -ErrorTicketNotFound=Ticket with tracking ID %s not found !
    +ErrorTicketNotFound=Ticket with tracking ID %s not found!
     Subject=Subject
     ViewTicket=View ticket
     ViewMyTicketList=View my ticket list
    -ErrorEmailMustExistToCreateTicket=Error : email address not found in our database
    +ErrorEmailMustExistToCreateTicket=Error: email address not found in our database
     TicketNewEmailSubjectAdmin=New ticket created
    -TicketNewEmailBodyAdmin=<p>Ticket has just been created with ID #%s, see informations :</p>
    +TicketNewEmailBodyAdmin=<p>Ticket has just been created with ID #%s, see information:</p>
     SeeThisTicketIntomanagementInterface=See ticket in management interface
    -TicketPublicInterfaceForbidden=Access for this area : forbidden
    +TicketPublicInterfaceForbidden=Access for this area: forbidden
     
     # notifications
     TicketNotificationEmailSubject=Ticket %s updated
    @@ -274,8 +274,9 @@ TicketNotificationEmailBody=This is an automatic message to notify you that tick
     TicketNotificationRecipient=Notification recipient
     TicketNotificationLogMessage=Log message
     TicketNotificationEmailBodyInfosTrackUrlinternal=View ticket into interface
    -TicketNotificationNumberEmailSent=Notification email sent : %s
    +TicketNotificationNumberEmailSent=Notification email sent: %s
     
    +ActionsOnTicket=Events on ticket
     
     #
     # Boxes
    diff --git a/htdocs/langs/en_US/trips.lang b/htdocs/langs/en_US/trips.lang
    index 0f9fcac1d02..2ede3bc474e 100644
    --- a/htdocs/langs/en_US/trips.lang
    +++ b/htdocs/langs/en_US/trips.lang
    @@ -33,7 +33,7 @@ ExpenseReportCanceledMessage=The expense report %s was canceled.<br> - User: %s<
     ExpenseReportPaid=An expense report was paid
     ExpenseReportPaidMessage=The expense report %s was paid.<br> - User: %s<br> - Paid by: %s<br>Click here to show the expense report: %s
     TripId=Id expense report
    -AnyOtherInThisListCanValidate=Person to inform for validation. 
    +AnyOtherInThisListCanValidate=Person to inform for validation.
     TripSociete=Information company
     TripNDF=Informations expense report
     PDFStandardExpenseReports=Standard template to generate a PDF document for expense report
    @@ -154,4 +154,4 @@ nolimitbyEX_EXP=by line (no limitation)
     
     CarCategory=Category of car
     ExpenseRangeOffset=Offset amount: %s
    -RangeIk=Mileage range
    \ No newline at end of file
    +RangeIk=Mileage range
    diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang
    index 20c3e90ae41..862d137a510 100644
    --- a/htdocs/langs/en_US/users.lang
    +++ b/htdocs/langs/en_US/users.lang
    @@ -12,7 +12,7 @@ PasswordChangedTo=Password changed to: %s
     SubjectNewPassword=Your new password for %s
     GroupRights=Group permissions
     UserRights=User permissions
    -UserGUISetup=User display setup
    +UserGUISetup=User Display Setup
     DisableUser=Disable
     DisableAUser=Disable a user
     DeleteUser=Delete
    @@ -34,8 +34,8 @@ ListOfUsers=List of users
     SuperAdministrator=Super Administrator
     SuperAdministratorDesc=Global administrator
     AdministratorDesc=Administrator
    -DefaultRights=Default permissions
    -DefaultRightsDesc=Define here <u>default</u> permissions that are automatically granted to a <u>new created</u> user (Go on user card to change permission of an existing user).
    +DefaultRights=Default Permissions
    +DefaultRightsDesc=Define here the <u>default</u> permissions that are automatically granted to a <u>new</u> user (to modify permissions for existing users, go to the user card).
     DolibarrUsers=Dolibarr users
     LastName=Last name
     FirstName=First name
    @@ -69,8 +69,8 @@ InternalUser=Internal user
     ExportDataset_user_1=Users and their properties
     DomainUser=Domain user %s
     Reactivate=Reactivate
    -CreateInternalUserDesc=This form allows you to create an user internal to your company/organization. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card.
    -InternalExternalDesc=An <b>internal</b> user is a user that is part of your company/organization.<br>An <b>external</b> user is a customer, supplier or other.<br><br>In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display)
    +CreateInternalUserDesc=This form allows you to create an internal user in your company/organization. To create an external user (customer, vendor etc.  ..), use the button 'Create Dolibarr User' from that third-party's contact card.
    +InternalExternalDesc=An <b>internal</b> user is a user that is part of your company/organization.<br>An <b>external</b> user is a customer, vendor or other.<br><br>In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display)
     PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group.
     Inherited=Inherited
     UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party)
    @@ -107,5 +107,5 @@ DisabledInMonoUserMode=Disabled in maintenance mode
     UserAccountancyCode=User accounting code
     UserLogoff=User logout
     UserLogged=User logged
    -DateEmployment=Date of Employment
    -DateEmploymentEnd=End date of Employment
    \ No newline at end of file
    +DateEmployment=Employment Start Date
    +DateEmploymentEnd=Employment End Date
    diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang
    index 21935b5dae0..a1619ee8df6 100644
    --- a/htdocs/langs/en_US/website.lang
    +++ b/htdocs/langs/en_US/website.lang
    @@ -1,8 +1,8 @@
    -# Dolibarr language file - Source file is en_US - website 
    +# Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. 
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
    @@ -13,22 +13,24 @@ WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
    -EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.   
    +EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -37,44 +39,46 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
     PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
    -PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.  
    +PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
    -YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor. 
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
     MyContainerTitle=My web site title
     AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
    -WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
    +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / third party
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved for experienced users. Depending on the complexity of source page, the result of importation may differ from the original. Also if the source page uses common CSS styles or conflicting javascript, it may break the look or features of the Website editor when working on this page. This method is a quicker way to create a page but it is recommended to create your new page from scratch or from a suggested page template.<br>Note also that edits of HTML source will be possible when page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -83,4 +87,10 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    -ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    \ No newline at end of file
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is a translation of
    +ThisPageHasTranslationPages=This page/container has translation
    +NoWebSiteCreateOneFirst=No website has been created yet. Create one first.
    diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang
    index fa02317b321..e5e1aa71891 100644
    --- a/htdocs/langs/en_US/withdrawals.lang
    +++ b/htdocs/langs/en_US/withdrawals.lang
    @@ -18,15 +18,15 @@ InvoiceWaitingWithdraw=Invoice waiting for direct debit
     AmountToWithdraw=Amount to withdraw
     WithdrawsRefused=Direct debit refused
     NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request.
    -ResponsibleUser=Responsible user
    +ResponsibleUser=User Responsible
     WithdrawalsSetup=Direct debit payment setup
     WithdrawStatistics=Direct debit payment statistics
     WithdrawRejectStatistics=Direct debit payment reject statistics
     LastWithdrawalReceipt=Latest %s direct debit receipts
     MakeWithdrawRequest=Make a direct debit payment request
     WithdrawRequestsDone=%s direct debit payment requests recorded
    -ThirdPartyBankCode=Third party bank code
    -NoInvoiceCouldBeWithdrawed=No invoice withdrawed with success. Check that invoices are on companies with a valid default BAN and that BAN has a RUM with mode <strong>%s</strong>.
    +ThirdPartyBankCode=Third-party bank code
    +NoInvoiceCouldBeWithdrawed=No invoice debited successfully. Check that invoices are on companies with a valid IBAN and that IBAN has a UMR (Unique Mandate Reference) with mode <strong>%s</strong>.
     ClassCredited=Classify credited
     ClassCreditedConfirm=Are you sure you want to classify this withdrawal receipt as credited on your bank account?
     TransData=Transmission date
    @@ -50,7 +50,7 @@ StatusMotif0=Unspecified
     StatusMotif1=Insufficient funds
     StatusMotif2=Request contested
     StatusMotif3=No direct debit payment order
    -StatusMotif4=Customer Order
    +StatusMotif4=Sales Order
     StatusMotif5=RIB unusable
     StatusMotif6=Account without balance
     StatusMotif7=Judicial Decision
    @@ -61,12 +61,12 @@ CreateAll=Create direct debit file (all)
     CreateGuichet=Only office
     CreateBanque=Only bank
     OrderWaiting=Waiting for treatment
    -NotifyTransmision=Withdrawal Transmission 
    +NotifyTransmision=Withdrawal Transmission
     NotifyCredit=Withdrawal Credit
     NumeroNationalEmetter=National Transmitter Number
     WithBankUsingRIB=For bank accounts using RIB
     WithBankUsingBANBIC=For bank accounts using IBAN/BIC/SWIFT
    -BankToReceiveWithdraw=Bank account to receive direct debit
    +BankToReceiveWithdraw=Receiving Bank Account
     CreditDate=Credit on
     WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported)
     ShowWithdraw=Show Withdraw
    @@ -78,22 +78,22 @@ ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and w
     StatisticsByLineStatus=Statistics by status of lines
     RUM=UMR
     RUMLong=Unique Mandate Reference
    -RUMWillBeGenerated=If empty, UMR number will be generated once bank account information are saved
    +RUMWillBeGenerated=If empty, a UMR (Unique Mandate Reference) will be generated once the bank account information is saved.
     WithdrawMode=Direct debit mode (FRST or RECUR)
    -WithdrawRequestAmount=Amount of Direct debit request: 
    +WithdrawRequestAmount=Amount of Direct debit request:
     WithdrawRequestErrorNilAmount=Unable to create direct debit request for empty amount.
     SepaMandate=SEPA Direct Debit Mandate
     SepaMandateShort=SEPA Mandate
     PleaseReturnMandate=Please return this mandate form by email to %s or by mail to
     SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank.
     CreditorIdentifier=Creditor Identifier
    -CreditorName=Creditor’s Name
    +CreditorName=Creditor Name
     SEPAFillForm=(B) Please complete all the fields marked *
     SEPAFormYourName=Your name
     SEPAFormYourBAN=Your Bank Account Name (IBAN)
     SEPAFormYourBIC=Your Bank Identifier Code (BIC)
     SEPAFrstOrRecur=Type of payment
    -ModeRECUR=Reccurent payment
    +ModeRECUR=Recurring payment
     ModeFRST=One-off payment
     PleaseCheckOne=Please check one only
     DirectDebitOrderCreated=Direct debit order %s created
    @@ -102,8 +102,12 @@ SEPARCUR=SEPA CUR
     SEPAFRST=SEPA FRST
     ExecutionDate=Execution date
     CreateForSepa=Create direct debit file
    +ICS=Creditor Identifier CI
    +END_TO_END="EndToEndId" SEPA XML tag - Unique id assigned per transaction
    +USTRD="Unstructured" SEPA XML tag
    +ADDDAYS=Add days to Execution Date
     
    -### Notifications 
    +### Notifications
     InfoCreditSubject=Payment of direct debit payment order %s by the bank
     InfoCreditMessage=The direct debit payment order %s has been paid by the bank<br>Data of payment: %s
     InfoTransSubject=Transmission of direct debit payment order %s to bank
    diff --git a/htdocs/langs/en_US/workflow.lang b/htdocs/langs/en_US/workflow.lang
    index ed19a531c07..be126eef0f4 100644
    --- a/htdocs/langs/en_US/workflow.lang
    +++ b/htdocs/langs/en_US/workflow.lang
    @@ -1,20 +1,20 @@
    -# Dolibarr language file - Source file is en_US - workflow 
    +# Dolibarr language file - Source file is en_US - workflow
     WorkflowSetup=Workflow module setup
    -WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in.
    +WorkflowDesc=This module provides some automatic actions. By default, the workflow is open (you can do things in the order you want) but here you can activate some automatic actions.
     ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules.
     # Autocreate
    -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal)
    -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
    +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a sales order after a commercial proposal is signed (the new order will have same amount as the proposal)
    +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (the new invoice will have same amount as the proposal)
     descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated
    -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
    +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a sales order is closed (the new invoice will have same amount as the order)
     # Autoclassify customer proposal or order
    -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals)
    -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals)
    -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
    -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
    -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source customer order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update)
    -# Autoclassify supplier order
    -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked proposals)
    -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked orders)
    +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when sales order is set to billed (and if the amount of the order is the same as the total amount of the signed linked proposal)
    +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the signed linked proposal)
    +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order)
    +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source sales order as billed when customer invoice is set to paid (and if the amount of the invoice is the same as the total amount of the linked order)
    +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source sales order as shipped when a shipment is validated (and if the quantity shipped by all shipments is the same as in the order to update)
    +# Autoclassify purchase order
    +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked proposal)
    +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order as billed when vendor invoice is validated (and if the amount of the invoice is the same as the total amount of the linked order)
     AutomaticCreation=Automatic creation
    -AutomaticClassification=Automatic classification
    \ No newline at end of file
    +AutomaticClassification=Automatic classification
    diff --git a/htdocs/langs/es_AR/admin.lang b/htdocs/langs/es_AR/admin.lang
    deleted file mode 100644
    index 790d1e6cd7b..00000000000
    --- a/htdocs/langs/es_AR/admin.lang
    +++ /dev/null
    @@ -1,5 +0,0 @@
    -# Dolibarr language file - Source file is en_US - admin
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    diff --git a/htdocs/langs/es_BO/admin.lang b/htdocs/langs/es_BO/admin.lang
    deleted file mode 100644
    index 790d1e6cd7b..00000000000
    --- a/htdocs/langs/es_BO/admin.lang
    +++ /dev/null
    @@ -1,5 +0,0 @@
    -# Dolibarr language file - Source file is en_US - admin
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    diff --git a/htdocs/langs/es_CL/admin.lang b/htdocs/langs/es_CL/admin.lang
    index 8afcfd78a60..a40e99a796c 100644
    --- a/htdocs/langs/es_CL/admin.lang
    +++ b/htdocs/langs/es_CL/admin.lang
    @@ -4,9 +4,7 @@ VersionLastInstall=Versión de instalación inicial
     VersionLastUpgrade=Versión de actualización más reciente.
     VersionUnknown=Desconocido
     VersionRecommanded=Recomendado
    -FileCheckDesc=Esta herramienta le permite verificar la integridad de los archivos y la configuración de su aplicación, comparando cada archivo con los archivos oficiales. El valor de algunas constantes de configuración también puede verificarse. Puede usar esta herramienta para detectar si algunos archivos fueron modificados por un hacker, por ejemplo.
     FileIntegrityIsStrictlyConformedWithReference=La integridad de los archivos está estrictamente conformada con la referencia.
    -FileIntegrityIsOkButFilesWereAdded=La verificación de integridad de archivos ha pasado, sin embargo, se agregaron algunos archivos nuevos.
     FileIntegritySomeFilesWereRemovedOrModified=La verificación de la integridad de los archivos ha fallado. Algunos archivos fueron modificados, eliminados o agregados.
     MakeIntegrityAnalysisFrom=Haga un análisis de integridad de los archivos de la aplicación desde
     LocalSignature=Firma local incorporada (menos confiable)
    @@ -20,20 +18,16 @@ SessionId=ID de sesión
     SessionSaveHandler=Handler para guardar sesiones
     SessionSavePath=Localización de la sesión de almacenamiento
     ConfirmPurgeSessions=¿De verdad quieres purgar todas las sesiones? Esto desconectará a todos los usuarios (excepto usted).
    -NoSessionListWithThisHandler=Guardar el controlador de sesión configurado en su PHP no permite listar todas las sesiones en ejecución.
    -ConfirmLockNewSessions=¿Seguro que quieres restringir cualquier conexión nueva de Dolibarr contigo mismo? Solo el usuario <b>%s</b> podrá conectarse después de aplicar.
     UnlockNewSessions=Eliminar bloqueo de conexión
     YourSession=Tu sesión
    -Sessions=Sesión de usuarios
     WebUserGroup=Usuario / grupo del servidor web
    -NoSessionFound=Parece que su PHP no permite listar sesiones activas. El directorio utilizado para guardar sesiones (<b>%s</b>) puede estar protegido (por ejemplo, por permisos del sistema operativo o por la directiva PHP open_basedir).
     DBStoringCharset=Juego de caracteres de base de datos para almacenar datos
     DBSortingCharset=Juego de caracteres de base de datos para ordenar los datos
     WarningModuleNotActive=El módulo <b>%s</b> debe estar habilitado.
     WarningOnlyPermissionOfActivatedModules=Aquí solo se muestran los permisos relacionados con los módulos activados. Puede activar otros módulos en la página Inicio-> Configuración-> Módulos.
     DolibarrSetup=Instalación o actualización de Dolibarr
     GUISetup=Visualización
    -SetupArea=Área de configuración
    +SetupArea=Configurar
     UploadNewTemplate=Cargar nueva plantilla (s)
     FormToTestFileUploadForm=Formulario para probar la carga del archivo (según la configuración)
     IfModuleEnabled=Nota: sí es efectivo solo si el módulo <b>%s</b> está habilitado
    @@ -49,8 +43,6 @@ ErrorReservedTypeSystemSystemAuto=El valor 'sistema' y 'systemauto' para el tipo
     DisableJavascript=Deshabilite las funciones de JavaScript y Ajax (recomendado para navegadores ciegos o de texto)
     UseSearchToSelectCompanyTooltip=Además, si tiene un gran número de terceros (> 100 000), puede aumentar la velocidad estableciendo constante COMPANY_DONOTSEARCH_ANYWHERE en 1 en Configuración-> Otro. La búsqueda se limitará al inicio de la cadena.
     UseSearchToSelectContactTooltip=Además, si tiene un gran número de terceros (> 100 000), puede aumentar la velocidad estableciendo CONTACT_DONOTSEARCH_ANYWHERE constante en 1 en Configuración-> Otro. La búsqueda se limitará al inicio de la cadena.
    -DelaiedFullListToSelectCompany=Espere a que presione una tecla antes de cargar el contenido de la lista combinada de terceros (Esto puede aumentar el rendimiento si tiene una gran cantidad de terceros, pero es menos conveniente)
    -DelaiedFullListToSelectContact=Espere a que presione una tecla antes de cargar el contenido de la lista combinada de contactos (Esto puede aumentar el rendimiento si tiene una gran cantidad de contactos, pero es menos conveniente)
     NumberOfKeyToSearch=Número de caracteres para activar la búsqueda: %s
     NotAvailableWhenAjaxDisabled=No disponible cuando Ajax está deshabilitado
     AllowToSelectProjectFromOtherCompany=En el documento de un tercero, puede elegir un proyecto vinculado a otro tercero
    @@ -59,7 +51,6 @@ UsePreviewTabs=Usa pestañas de vista previa
     ShowPreview=Mostrar vista previa
     CurrentTimeZone=TimeZone PHP (servidor)
     MySQLTimeZone=TimeZone MySql (base de datos)
    -TZHasNoEffect=Las fechas son almacenadas y devueltas por el servidor de la base de datos como si se mantuvieran como cadenas enviadas. La zona horaria tiene efecto solo cuando se utiliza la función UNIX_TIMESTAMP (que Dolibarr no debe usar, por lo que la base de datos TZ no debería tener ningún efecto, incluso si se cambió después de que se ingresaron los datos).
     Space=Espacio
     NextValue=Siguiente valor
     NextValueForInvoices=Siguiente valor (facturas)
    @@ -71,9 +62,7 @@ NoMaxSizeByPHPLimit=Nota: no hay límite establecido en su configuración de PHP
     MaxSizeForUploadedFiles=Tamaño máximo para los archivos cargados (0 para no permitir ninguna carga)
     UseCaptchaCode=Use el código gráfico (CAPTCHA) en la página de inicio de sesión
     AntiVirusCommand=Ruta completa al comando de antivirus
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
     AntiVirusParam=Más parámetros en la línea de comando
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
     ComptaSetup=Configuración del módulo de contabilidad
     UserSetup=Configuración de administración de usuario
     MultiCurrencySetup=Configuración multimoneda
    @@ -83,7 +72,6 @@ DetailPosition=Ordenar número para definir la posición del menú
     AllMenus=Todo
     NotConfigured=Módulo / Aplicación no configurada
     SetupShort=Configurar
    -OtherSetup=Otra configuración
     CurrentValueSeparatorThousand=Mil separadores
     Destination=Destino
     IdModule=ID del módulo
    @@ -96,8 +84,6 @@ PHPTZ=Servidor PHP Zona horaria
     DaylingSavingTime=Horario de verano
     CurrentHour=Tiempo de PHP (servidor)
     CurrentSessionTimeOut=Tiempo de espera actual de la sesión
    -YouCanEditPHPTZ=Para configurar una zona horaria de PHP diferente (no requerida), puede intentar agregar un archivo .htaccess con una línea como esta "SetEnv TZ Europe / Paris"
    -HoursOnThisPageAreOnServerTZ=Advertencia, a diferencia de otras pantallas, las horas en esta página no están en su zona horaria local, sino en la zona horaria del servidor.
     MaxNbOfLinesForBoxes=Número máximo de líneas para widgets
     PositionByDefault=Orden predeterminada
     MenusDesc=Los administradores de menú establecen el contenido de las dos barras de menú (horizontal y vertical).
    @@ -143,21 +129,15 @@ IgnoreDuplicateRecords=Ignorar errores de registro duplicado (INSERTAR IGNORAR)
     AutoDetectLang=Autodetectar (idioma del navegador)
     FeatureDisabledInDemo=Característica deshabilitada en demostración
     FeatureAvailableOnlyOnStable=Característica solo disponible en versiones estables oficiales
    -BoxesDesc=Los widgets son componentes que muestran cierta información que puede agregar para personalizar algunas páginas. Puede elegir entre mostrar el widget o no seleccionando la página de destino y haciendo clic en 'Activar', o haciendo clic en el cubo de basura para desactivarlo.
     OnlyActiveElementsAreShown=Solo se muestran los elementos de los <a href="%s"> módulos habilitados </a>.
    -ModulesDesc=Los módulos de Dolibarr definen qué aplicación / función está habilitada en el software. Algunas aplicaciones / módulos requieren permisos que debe otorgar a los usuarios después de activarlos. Haga clic en el botón activar / desactivar para habilitar un módulo / aplicación.
    -ModulesDeployDesc=Si los permisos en su sistema de archivos lo permiten, puede usar esta herramienta para implementar un módulo externo. El módulo será visible en la pestaña <strong>%s</strong>.
     ModulesMarketPlaces=Buscar aplicaciones / módulos externos
     ModulesDevelopYourModule=Desarrolla tu propia aplicación / módulos
    -ModulesDevelopDesc=Puede desarrollar o encontrar un socio para desarrollar para usted, su módulo personalizado
    -DOLISTOREdescriptionLong=En lugar de activar el <a href="https://www.dolistore.com"> sitio web de www.dolistore.com </a> para encontrar un módulo externo, puede usar esta herramienta incrustada que hará que la búsqueda en el mercado externo para usted (puede ser lento, necesita un acceso a internet) ...
     NotCompatible=Este módulo no parece compatible con su Dolibarr %s (Min. %s - Max. %s).
     CompatibleAfterUpdate=Este módulo requiere una actualización de su Dolibarr %s (Min. %s - Max. %s).
     SeeInMarkerPlace=Ver en Market place
     AchatTelechargement=Compra / Descarga
     GoModuleSetupArea=Para implementar / instalar un nuevo módulo, vaya al área de configuración del Módulo en <a href="%s"> %s </a>.
     DoliStoreDesc=DoliStore, el mercado oficial para los módulos externos Dolibarr ERP / CRM
    -DoliPartnersDesc=Lista de compañías que ofrecen módulos o características personalizadas (Nota: cualquier persona con experiencia en programación PHP puede proporcionar desarrollo personalizado para un proyecto de código abierto)
     URL=Enlazar
     BoxesAvailable=Widgets disponibles
     BoxesActivated=Widgets activados
    @@ -170,7 +150,6 @@ DoNotStoreClearPassword=No almacene contraseñas claras en la base de datos, per
     MainDbPasswordFileConfEncrypted=Contraseña de la base de datos encriptada en conf.php (Activada recomendada)
     InstrucToEncodePass=Para codificar la contraseña en el archivo <b>conf.php</b>, reemplace la línea <br><b>$dolibarr_main_db_pass="..."; </b><br>por<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Para decodificar la contraseña (elimina) en el archivo <b>conf.php</b>, reemplace la línea <br><b>$dolibarr_main_db_pass="crypted: ...";</b><br>por<br><b>$dolibarr_main_db_pass="%s"; </b>
    -ProtectAndEncryptPdfFiles=Protección de archivos pdf generados (NO activado activado, rompe generación masiva de pdf)
     ProtectAndEncryptPdfFilesDesc=La protección de un documento PDF lo mantiene disponible para leer e imprimir con cualquier navegador PDF. Sin embargo, la edición y copia ya no es posible. Tenga en cuenta que el uso de esta característica hace que la creación de un archivo PDF global fusionado no funcione.
     Feature=Característica
     Developpers=Desarrolladores / contribuyentes
    @@ -182,39 +161,20 @@ OfficialWebHostingService=Servicios de alojamiento web a los que se hace referen
     ReferencedPreferredPartners=Socios Preferidos
     ForDocumentationSeeWiki=Para documentación del usuario o desarrollador (Doc, Preguntas frecuentes ...), <br> echa un vistazo a la Wiki de Dolibarr: <br> <b> <a href="%s" target="_blank"> %s </a></b>
     ForAnswersSeeForum=Para cualquier otra pregunta/ayuda, puede utilizar el foro de Dolibarr: <br> <b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=Esta área puede ayudarlo a obtener un servicio de ayuda de Ayuda en Dolibarr.
    -HelpCenterDesc2=Alguna parte de este servicio está disponible <b>solo en inglés</b>.
     CurrentMenuHandler=Manejador de menú actual
     SpaceX=Espacio X
     SpaceY=Espacio Y
     Emails=Correos electrónicos
     EMailsSetup=Configuración de correos electrónicos
    -EMailsDesc=Esta página le permite sobrescribir sus parámetros de PHP para el envío de correos electrónicos. En la mayoría de los casos, en el sistema operativo Unix / Linux, su configuración de PHP es correcta y estos parámetros son inútiles.
     EmailSenderProfiles=Perfiles de remitentes de correos electrónicos
    -MAIN_MAIL_SMTP_PORT=Puerto SMTP/SMTPS (por defecto en php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=Servidor SMTP/SMTP (por defecto en php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Puerto SMTP / SMTPS (no definido en PHP en sistemas tipo Unix)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Servidor SMTP / SMTPS (no definido en PHP en sistemas tipo Unix)
    -MAIN_MAIL_EMAIL_FROM=Correo electrónico remitente para correos electrónicos automáticos (por defecto en php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail utilizado para los correos electrónicos de devoluciones de errores (campos 'Errores-Para' en los correos electrónicos enviados)
    -MAIN_MAIL_AUTOCOPY_TO=Envíe sistemáticamente una copia oculta de todos los correos electrónicos enviados a
    -MAIN_DISABLE_ALL_MAILS=Deshabilitar todos los envíos de correos electrónicos (para propósitos de prueba o demostraciones)
     MAIN_MAIL_FORCE_SENDTO=Enviar todos los correos electrónicos a (en lugar de destinatarios reales, para fines de prueba)
    -MAIN_MAIL_SENDMODE=Método a usar para enviar correos electrónicos
    -MAIN_MAIL_SMTPS_ID=SMTP ID si se requiere autenticación
    -MAIN_MAIL_SMTPS_PW=Contraseña SMTP si se requiere autenticación
    -MAIN_MAIL_EMAIL_TLS=Use el cifrado TLS (SSL)
    -MAIN_MAIL_EMAIL_STARTTLS=Utilice el cifrado TLS (STARTTLS)
    -MAIN_DISABLE_ALL_SMS=Deshabilitar todos los envíos de SMS (para propósitos de prueba o demostraciones)
     MAIN_SMS_SENDMODE=Método a usar para enviar SMS
    -MAIN_MAIL_SMS_FROM=Número de teléfono del remitente predeterminado para el envío de SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Correo electrónico del remitente por defecto para envíos manuales (correo electrónico del usuario o correo electrónico de la empresa)
     UserEmail=Correo electrónico del usuario
     CompanyEmail=Correo de la empresa
     FeatureNotAvailableOnLinux=Característica no disponible en sistemas como Unix. Pruebe su programa sendmail localmente.
    -SubmitTranslation=Si la traducción de este idioma no está completa o si encuentra errores, puede corregir esto editando archivos en el directorio <b>langs/%s</b> y envíe su cambio a www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=Si la traducción de este idioma no está completa o si encuentra errores, puede corregir esto editando archivos en el directorio <b>langs /%s</b> y enviando archivos modificados en dolibarr.org/forum o para desarrolladores en github.com/Dolibarr/dolibarr.
     ModulesSetup=Módulos / configuración de la aplicación
    +ModuleFamilySrm=Gestión de relaciones con proveedores (VRM)
     ModuleFamilyProjects=Proyectos / trabajo colaborativo
     ModuleFamilyTechnic=Herramientas de varios módulos
     ModuleFamilyFinancial=Módulos financieros (Contabilidad / Tesorería)
    @@ -225,15 +185,10 @@ MenuHandlers=Controladores de menú
     MenuAdmin=Editor de menú
     ThisIsProcessToFollow=Estos son los pasos para procesar:
     ThisIsAlternativeProcessToFollow=Esta es una configuración alternativa para procesar manualmente:
    -FindPackageFromWebSite=Encuentre un paquete que proporcione la característica que desea (por ejemplo, en el sitio web oficial %s).
     DownloadPackageFromWebSite=Descargar el paquete (por ejemplo, desde el sitio web oficial %s).
    -UnpackPackageInDolibarrRoot=Extraiga los archivos empaquetados en el directorio del servidor dedicado a Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=Para implementar/instalar un módulo externo, descomprima los archivos empaquetados en el directorio del servidor dedicado a los módulos: <b>%s</b>
    -SetupIsReadyForUse=La implementación del módulo ha finalizado. Sin embargo, debe habilitar y configurar el módulo en su aplicación yendo a la página para configurar los módulos: <a href="%s"> %s </a>.
     NotExistsDirect=El directorio raíz alternativo no está definido en un directorio existente. <br>
     InfDirAlt=Desde la versión 3, es posible definir un directorio raíz alternativo. Esto le permite almacenar, en un directorio dedicado, complementos y plantillas personalizadas. <br> Simplemente cree un directorio en la raíz de Dolibarr (p. Ej .: personalizado). <br>
     InfDirExample=<br>Entonces, declare en el archivo <strong>conf.php</strong><br> $dolibarr_main_url_root_alt = '/ custom'<br>$ dolibarr_main_document_root_alt = '/path/of /dolibarr/htdocs /custom' <br> Si estas líneas se comentan con "#", para habilitarlas, simplemente elimine el comentario del carácter "#".
    -YouCanSubmitFile=Para este paso, puede enviar el archivo .zip del paquete de módulo aquí:
     CallUpdatePage=Vaya a la página que actualiza la estructura de la base de datos y los datos: %s.
     LastActivationIP=Última activación IP
     UpdateServerOffline=Servidor de actualización fuera de línea
    @@ -259,15 +214,10 @@ SeeWikiForAllTeam=Echa un vistazo a la página wiki para ver una lista completa
     UseACacheDelay=Retardo para la respuesta de exportación en caché en segundos (0 o vacío para no caché)
     DisableLinkToHelpCenter=Ocultar enlace "<b>Necesita ayuda o soporte</b>" en la página de inicio de sesión
     DisableLinkToHelp=Ocultar link para ayuda online "<b>%s</b>"
    -AddCRIfTooLong=No hay ajuste automático, por lo que si la línea está fuera de página en los documentos porque es demasiado larga, debe agregar los retornos de carro en el área de texto.
    -ConfirmPurge=¿Estás seguro de que deseas ejecutar esta purga? <br> Esto eliminará definitivamente todos tus archivos de datos sin forma de restaurarlos (archivos ECM, archivos adjuntos ...).
     MinLength=Longitud mínima
     LanguageFilesCachedIntoShmopSharedMemory=Archivos .lang cargados en la memoria compartida
    -ExamplesWithCurrentSetup=Ejemplos con la configuración de ejecución actual
     ListOfDirectories=Lista de directorios de plantillas de OpenDocument
     ListOfDirectoriesForModelGenODT=Lista de directorios que contienen archivos de plantillas con formato OpenDocument.<br><br>Ponga aquí la ruta completa de directorios.<br>Agregue un retorno de carro entre cada directorio.<br>Para agregar un directorio del módulo GED, agregue aquí <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>. <br><br>Los archivos en esos directorios deben terminar con <b>.odt</b> o <b>.ods</b>.
    -NumberOfModelFilesFound=Número de archivos de plantillas ODT / ODS encontrados en esos directorios
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> Para saber cómo crear sus plantillas de documento Odt, antes de almacenarlas en esos directorios, lea la documentación wiki:
     FirstnameNamePosition=Posición del nombre / apellido
     DescWeather=Las siguientes imágenes se mostrarán en el tablero cuando el número de acciones tardías alcance los siguientes valores:
    @@ -275,17 +225,13 @@ KeyForWebServicesAccess=Clave para usar los servicios web (parámetro "dolibarrk
     TestSubmitForm=Formulario de prueba de entrada
     ThisForceAlsoTheme=El uso de este administrador de menú también usará su propio tema, cualquiera que sea la elección del usuario. Además, este administrador de menú especializado para teléfonos inteligentes no funciona en todos los teléfonos inteligentes. Use otro administrador de menú si tiene problemas en el suyo.
     ThemeDir=Directorio de pieles
    -ConnectionTimeout=Tiempo de espera de conexión
     ResponseTimeout=Tiempo de espera de respuesta
     SmsTestMessage=Mensaje de prueba de __PHONEFROM__ a __PHONETO__
     ModuleMustBeEnabledFirst=El módulo <b>%s</b> debe estar habilitado primero si necesitas esta característica.
     SecurityToken=Clave para asegurar URLs
    -NoSmsEngine=No hay un administrador de envío de SMS disponible. SMS sender manager no están instalados con distribución predeterminada (porque dependen de un proveedor externo) pero puede encontrar algunos en %s
    -PDFDesc=Puede establecer cada opción global relacionada con la generación de PDF
     PDFAddressForging=Reglas para forjar cuadros de direcciones
     HideAnyVATInformationOnPDF=Ocultar toda la información relacionada con Impuesto a las ventas / IVA en PDF generado
     PDFRulesForSalesTax=Reglas para el impuesto a las ventas / IVA
    -HideLocalTaxOnPDF=Ocultar %s tasa en venta de impuestos en la columna de PDF
     HideDescOnPDF=Ocultar la descripción de productos en PDF generado
     HideRefOnPDF=Ocultar REF. de productos en PDF generado
     HideDetailsOnPDF=Ocultar detalles de líneas de productos en PDF generado
    @@ -295,7 +241,6 @@ UrlGenerationParameters=Parámetros para asegurar URLs
     SecurityTokenIsUnique=Use un parámetro de clave segura único para cada URL
     EnterRefToBuildUrl=Ingrese la referencia para el objeto %s
     GetSecuredUrl=Obtener URL calculado
    -ButtonHideUnauthorized=Ocultar botones a usuarios que no son administradores para acciones no autorizadas en lugar de mostrar botones desactivados en gris
     OldVATRates=Tasa de IVA anterior
     NewVATRates=Nueva tasa de IVA
     PriceBaseTypeToChange=Modificar en precios con el valor de referencia base definido en
    @@ -307,13 +252,11 @@ Boolean=Boolean (una casilla de verificación)
     ExtrafieldSelect =Seleccionar lista
     ExtrafieldSelectList =Seleccionar de la mesa
     ExtrafieldSeparator=Separador (no un campo)
    -ExtrafieldRadio=Botones de opción (solo a elección)
     ExtrafieldCheckBox=Casillas de verificación
     ExtrafieldCheckBoxFromList=Casillas de verificación de la mesa
     ExtrafieldLink=Enlace a un objeto
     ComputedFormula=Campo computado
     ComputedFormulaDesc=Puede ingresar aquí una fórmula usando otras propiedades del objeto o cualquier código PHP para obtener un valor calculado dinámico. Puede usar cualquier fórmula compatible con PHP, incluido el "?" operador de condición y objeto global siguiente: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>. <br><strong> ADVERTENCIA</strong>: solo algunas propiedades de $object puede estar disponible. Si necesita propiedades no cargadas, simplemente busque el objeto en su fórmula como en el segundo ejemplo. <br> Usar un campo calculado significa que no puede ingresar ningún valor desde la interfaz. Además, si hay un error de sintaxis, la fórmula puede devolver nada. <br><br>Ejemplo de fórmula: <br>$object-> id <10? round ($ object-> id / 2, 2): ($ object-> id + 2 * $ user-> id) * (int) substr ($ mysoc-> zip, 1, 2) <br><br>Ejemplo para recargar objeto<br> (($reloadedobj = new Societe ($db)) && ($reloadedobj-> fetch ($obj-> id? $Obj-> id: ($obj-> rowid? $Obj-> rowid: $ object-> id))> 0))? $reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1'<br><br>Otro ejemplo de fórmula para forzar la carga del objeto y su objeto principal: <br> (($reloadedobj = new task ($ db)) && ($ reloadedobj-> fetch ($ object-> id)> 0) && ($ secondloadedobj = new Project ($ db)) && ($secondloadedobj-> fetch ($reloadedobj-> fk_project )> 0))? $secondloadedobj-> ref: 'Proyecto principal no encontrado'
    -ExtrafieldParamHelpPassword=Mantenga este campo vacío significa que el valor se almacenará sin cifrado (el campo debe estar solo oculto con estrella en la pantalla). Establezca aquí el valor 'automático' para usar la regla de cifrado predeterminada para guardar la contraseña en la base de datos (entonces el valor leído será el solo hash, no hay forma de recuperar el valor original)
     ExtrafieldParamHelpselect=La lista de valores debe ser líneas con formato clave, valor (donde la clave no puede ser '0')<br><br> por ejemplo: <br>1, valor1<br>2, valor2<br>código3, valor3<br>...<br><br>Para que la lista dependa de otra lista de atributos complementarios: <br> 1, valor1 | opciones_ <i>parent_list_code</i>: parent_key<br>2, value2 | options_<i>parent_list_code</i>:parent_key <br><br>Para que la lista dependa de otra lista: <br>1, value1 | <i>parent_list_code</i> :parent_key <br>2,value2|<i> parent_list_code</i> :parent_key
     ExtrafieldParamHelpcheckbox=La lista de valores debe ser líneas con formato clave, valor (donde la clave no puede ser '0') <br> <br> por ejemplo: <br> 1, valor1 <br> 2, valor2 <br> 3, valor3 <br> ...
     ExtrafieldParamHelpradio=La lista de valores debe ser líneas con formato clave, valor (donde la clave no puede ser '0')<br><br>por ejemplo: <br>1, valor1<br>2, valor2<br>3, valor3<br> ...
    @@ -329,44 +272,32 @@ KeepEmptyToUseDefault=Manténgalo vacío para usar el valor predeterminado
     DefaultLink=Enlace predeterminado
     ValueOverwrittenByUserSetup=Advertencia, este valor puede ser sobrescrito por la configuración específica del usuario (cada usuario puede establecer su propia URL de clicktodial)
     ExternalModule=Módulo externo: instalado en el directorio %s
    -BarcodeInitForThirdparties=Código de barras masivo init para terceros
     BarcodeInitForProductsOrServices=Inicialización o reinicio masivo del código de barras para productos o servicios
     CurrentlyNWithoutBarCode=Actualmente, tiene <strong>%s</strong> registros en <strong>%s</strong> %s sin código de barras definido.
     InitEmptyBarCode=Valor inicial para los próximos %s registros vacíos
     EraseAllCurrentBarCode=Borrar todos los valores actuales del código de barras
     ConfirmEraseAllCurrentBarCode=¿Seguro que quieres borrar todos los valores actuales del código de barras?
     AllBarcodeReset=Todos los valores del código de barras han sido eliminados
    -NoBarcodeNumberingTemplateDefined=No hay ninguna plantilla de código de barras habilitada en la configuración del módulo de código de barras.
     ShowDetailsInPDFPageFoot=Agregue más detalles en el pie de página de los archivos PDF, como la dirección de su empresa o los nombres de los administradores (para completar los ID profesionales, el capital de la empresa y el número de IVA).
     NoDetails=No hay más detalles en el pie de página
     DisplayCompanyManagers=Mostrar nombres de administrador
     DisplayCompanyInfoAndManagers=Mostrar los nombres de administrador y dirección de la compañía
    -EnableAndSetupModuleCron=Si desea que esta factura recurrente sea generada automáticamente, el módulo *%s* debe estar habilitado y configurado correctamente. De lo contrario, la generación de facturas se debe hacer manualmente desde esta plantilla con el botón * Crear *. Tenga en cuenta que incluso si activó la generación automática, puede iniciar de forma segura la generación manual. La generación de duplicados para el mismo período no es posible.
    -ModuleCompanyCodeCustomerAquarium=%s seguido por un código de cliente externo para un código de contabilidad del cliente
    -ModuleCompanyCodeSupplierAquarium=%s seguido por un código de proveedor externo para un código de contabilidad de proveedor
     ModuleCompanyCodePanicum=Devuelve un código de contabilidad vacío.
     ModuleCompanyCodeDigitaria=El código de contabilidad depende del código de un tercero. El código se compone del carácter "C" en la primera posición seguido de los primeros 5 caracteres del código de terceros.
     Use3StepsApproval=De forma predeterminada, los pedidos de compra deben ser creados y aprobados por 2 usuarios diferentes (un paso / usuario para crear y un paso / usuario para aprobar. Tenga en cuenta que si el usuario tiene ambos permisos para crear y aprobar, un paso / usuario será suficiente) . Puede solicitar con esta opción que presente un tercer paso / aprobación del usuario, si el monto es mayor que un valor dedicado (por lo que se necesitarán 3 pasos: 1 = validación, 2 = primera aprobación y 3 = segunda aprobación si el monto es suficiente). <br> Configure esto como vacío si una aprobación (2 pasos) es suficiente, configúrelo a un valor muy bajo (0.1) si siempre se requiere una segunda aprobación (3 pasos).
     UseDoubleApproval=Utilice una aprobación de 3 pasos cuando la cantidad (sin impuestos) sea más alta que ...
    -WarningPHPMail=ADVERTENCIA: a menudo es mejor configurar los correos electrónicos salientes para usar el servidor de correo electrónico de su proveedor en lugar de la configuración predeterminada. Algunos proveedores de correo electrónico (como Yahoo) no le permiten enviar un correo electrónico desde otro servidor que no sea su propio servidor. Su configuración actual utiliza el servidor de la aplicación para enviar correos electrónicos y no el servidor de su proveedor de correo electrónico, por lo que algunos destinatarios (el compatible con el restrictivo protocolo DMARC) le preguntarán a su proveedor de correo electrónico si pueden aceptar su correo electrónico y algunos proveedores de correo electrónico. (como Yahoo) puede responder "no" porque el servidor no es un servidor de ellos, por lo que es posible que no se acepten algunos de sus correos electrónicos enviados (tenga cuidado también con la cuota de envío de su proveedor de correo electrónico). Si su proveedor de correo electrónico (como Yahoo) tiene esta restricción, debe cambiar Configuración de correo electrónico para elegir el otro método "Servidor SMTP" e ingresar el servidor SMTP y las credenciales proporcionadas por su proveedor de correo electrónico (solicite a su proveedor de correo electrónico que obtenga las credenciales SMTP para su cuenta).
    +WarningPHPMail2=Si su proveedor SMTP de correo electrónico necesita restringir el cliente de correo electrónico a algunas direcciones IP (muy raras), esta es la dirección IP del agente de usuario de correo (MUA) para su aplicación ERP CRM: <strong> %s </ strong>.
     ClickToShowDescription=Haga clic para mostrar la descripción
    -DependsOn=Este módulo necesita el módulo (s)
     RequiredBy=Este módulo es requerido por el módulo (s)
    -TheKeyIsTheNameOfHtmlField=Este es el nombre del campo HTML. Esta necesidad de tener conocimientos técnicos para leer el contenido de la página HTML para obtener el nombre clave de un campo.
    -PageUrlForDefaultValues=Debes ingresar aquí la url relativa de la página. Si incluye parámetros en la URL, los valores predeterminados serán efectivos si todos los parámetros tienen el mismo valor. Ejemplos:
     PageUrlForDefaultValuesCreate=<br>Para que la forma de crear un nuevo tercero, es <strong>%s</strong>,<br>. Si desea valor predeterminado solo si url tiene algún parámetro, puede usar <strong>%s</strong>.
    -PageUrlForDefaultValuesList=<br>Para la página que enumera terceros, es<strong>%s</strong>,<br>. Si desea valor predeterminado solo si url tiene algún parámetro, puede usar <strong>%s</strong>
    -GoIntoTranslationMenuToChangeThis=Se ha encontrado una traducción para la clave con este código, así que para cambiar este valor, debe editarlo desde Home-Setup-translation.
     WarningSettingSortOrder=Advertencia: establecer un orden de clasificación predeterminado puede dar como resultado un error técnico al ir a la página de la lista si el campo es un campo desconocido. Si experimenta dicho error, vuelva a esta página para eliminar el orden de clasificación predeterminado y restablecer el comportamiento predeterminado.
     ProductDocumentTemplates=Plantillas de documentos para generar documentos de productos
     FreeLegalTextOnExpenseReports=Texto legal gratuito en informes de gastos
     WatermarkOnDraftExpenseReports=Marca de agua en los borradores de informes de gastos
     AttachMainDocByDefault=Establezca esto en 1 si desea adjuntar el documento principal al correo electrónico de forma predeterminada (si corresponde)
    -DAV_ALLOW_PUBLIC_DIRTooltip=El directorio público de WebDav es un directorio WebDAV al que todos pueden acceder (en modo lectura y escritura), sin necesidad de tener / usar una cuenta de inicio de sesión / contraseña existente.
     Module0Desc=Gestión de usuarios / empleados y grupos
     Module1Desc=Empresas y gestión de contactos (clientes, prospectos ...)
     Module2Desc=Administración comercial
    -Module10Desc=Informes contables simples (diarios, rotación) basados ​​en el contenido de la base de datos. No usa ninguna tabla de contabilidad.
     Module20Name=Cotizaciones
     Module20Desc=Gestión de cotizaciones/propuestas comerciales
     Module22Name=E-mailings masivos
    @@ -375,6 +306,7 @@ Module23Desc=Monitoreo del consumo de energías
     Module25Desc=Gestión de pedidos del cliente
     Module30Name=Facturas
     Module30Desc=Gestión de facturas y notas de crédito para clientes. Gestión de facturas para proveedores
    +Module40Desc=Proveedores y gestión de compras (órdenes de compra y facturación)
     Module42Desc=Instalaciones de registro (archivo, syslog, ...). Dichos registros son para fines técnicos / de depuración.
     Module49Desc=Gestión del editor
     Module50Desc=Gestión de producto
    @@ -382,11 +314,9 @@ Module51Name=Envíos masivos
     Module51Desc=Gerencia de correo de papel en masa
     Module52Desc=Gestión de stock (productos)
     Module53Desc=Gestión De Servicios
    -Module54Desc=Gestión de contratos (servicios o suscripciones de reconexión)
     Module55Desc=Gestión del código de barras
     Module56Desc=Integración de telefonía
     Module57Name=Ordenes de pago bancarias directas
    -Module57Desc=Gestión de órdenes de pago de débito directo. Incluye generación de archivo SEPA para países europeos.
     Module58Desc=Integración de un sistema ClickToDial (Asterisk, ...)
     Module59Desc=Agregar función para generar una cuenta de Bookmark4u desde una cuenta de Dolibarr
     Module70Desc=Gestión de intervención
    @@ -395,70 +325,50 @@ Module75Desc=Gestión de gastos y viajes
     Module80Name=Envíos
     Module80Desc=Gestión de envíos y entrega
     Module85Desc=Gestión de cuentas bancarias o de efectivo
    -Module100Name=Sitio externo
    -Module100Desc=Este módulo incluye un sitio web externo o una página en los menús de Dolibarr y lo visualiza en un marco de Dolibarr
     Module105Desc=Mailman o interfaz SPIP para el módulo miembro
    -Module200Desc=Sincronización de directorios LDAP
     Module210Desc=Integración PostNuke
     Module240Name=Exportación de datos
    -Module240Desc=Herramienta para exportar datos de Dolibarr (con asistentes)
     Module250Name=Importaciones de datos
    -Module250Desc=Herramienta para importar datos en Dolibarr (con asistentes)
     Module310Desc=Gestión de miembros de la Fundación
     Module320Desc=Agregar fuente RSS dentro de las páginas de pantalla de Dolibarr
    -Module400Name=Proyectos / Oportunidades / Leads
    -Module400Desc=Gestión de proyectos, oportunidades / clientes potenciales y / o tareas. También puede asignar cualquier elemento (factura, orden, propuesta, intervención, ...) a un proyecto y obtener una vista transversal desde la vista del proyecto.
     Module410Desc=Integración de Webcalendar
    +Module500Desc=Gestión de otros gastos (impuestos a la venta, impuestos sociales o fiscales, dividendos, ...)
     Module510Name=Pago de los salarios de los empleados
    -Module510Desc=Registre y siga el pago de los salarios de sus empleados
     Module520Name=Préstamo
     Module520Desc=Gestión de préstamos
     Module600Name=Notificaciones sobre eventos comerciales
    -Module600Desc=Enviar notificaciones de correo electrónico (activadas por algunos eventos comerciales) a los usuarios (configuración definida en cada usuario), a contactos de terceros (configuración definida en cada tercero) o a correos electrónicos fijos
    -Module600Long=Tenga en cuenta que este módulo está dedicado a enviar correos electrónicos en tiempo real cuando ocurre un evento comercial dedicado. Si está buscando una función para enviar recordatorios por correo electrónico de los eventos de su agenda, vaya a la configuración del módulo Agenda.
     Module770Name=Reporte de gastos
    -Module770Desc=Informes de gestión y reclamación de gastos (transporte, comida, ...)
     Module1120Name=Propuesta comercial del vendedor
    +Module1120Desc=Solicitar propuesta comercial del vendedor y precios
     Module1200Desc=Integración Mantis
     Module1520Name=Generación de documentos
     Module1520Desc=Generación masiva de documentos de correo
     Module1780Name=Etiquetas / Categorías
     Module1780Desc=Crear etiquetas / categoría (productos, clientes, proveedores, contactos o miembros)
    -Module2000Desc=Permitir editar un área de texto usando un editor avanzado (Basado en CKEditor)
     Module2200Desc=Permitir el uso de expresiones matemáticas para los precios
     Module2300Name=Trabajos programados
     Module2300Desc=Gestión programada de trabajos (alias cron o crono tabla)
     Module2400Name=Eventos / Agenda
    -Module2400Desc=Siga los eventos hechos y venideros. Deje que la aplicación registre los eventos automáticos con fines de seguimiento o registre eventos manuales o rendez-vous. Este es el principal módulo importante para una buena gestión de relaciones con clientes o proveedores.
     Module2500Desc=Sistema de gestión de documentos / gestión electrónica de contenidos. Organización automática de sus documentos generados o almacenados. Compártelos cuando lo necesites.
     Module2600Name=API / servicios web (servidor SOAP)
     Module2600Desc=Habilite el servidor Dolibarr SOAP que proporciona servicios de API
     Module2610Name=API / servicios web (servidor REST)
     Module2610Desc=Habilite el servidor REST Dolibarr proporcionando servicios API
     Module2660Name=Llamar a WebServices (cliente SOAP)
    -Module2660Desc=Habilite el cliente de servicios web Dolibarr (se puede usar para enviar datos / solicitudes a servidores externos. Pedidos a proveedores admitidos solo por el momento)
    -Module2700Desc=Use el servicio Gravatar en línea (www.gravatar.com) para mostrar la foto de los usuarios / miembros (que se encuentra con sus correos electrónicos). Necesita un acceso a internet
     Module2900Desc=Capacidades de conversiones GeoIP Maxmind
     Module3100Desc=Agregar un botón de Skype a los usuarios / terceros / contactos / tarjetas de miembros
    -Module3200Desc=Active el registro de algunos eventos comerciales en un registro inalterable. Los eventos se archivan en tiempo real. El registro es una tabla de eventos encadenados que solo se puede leer y exportar. Este módulo puede ser obligatorio para algunos países.
     Module4000Desc=Gestión de recursos humanos (gestión del departamento, contratos de empleados y sentimientos)
     Module5000Name=Multi-compañía
     Module5000Desc=Le permite administrar múltiples compañías
    +Module6000Desc=Gestión de flujo de trabajo (creación automática de objeto y / o cambio de estado automático)
     Module10000Desc=Crea sitios web públicos con un editor WYSIWG. Simplemente configure su servidor web (Apache, Nginx, ...) para que apunte al directorio dedicado de Dolibarr para tenerlo en línea en Internet con su propio nombre de dominio.
     Module20000Name=Administración de peticiones días libres
    -Module20000Desc=Declarar y seguir a los empleados deja las solicitudes
     Module39000Desc=Número de lote o de serie, administración de la fecha de caducidad y de vencimiento en los productos
    -Module50000Desc=Módulo para ofrecer una página de pago en línea que acepta pagos con tarjeta de crédito / débito a través de PayBox. Esto se puede usar para permitir que sus clientes realicen pagos gratuitos o para un pago en un objeto Dolibarr en particular (factura, orden, ...)
     Module50100Name=Puntos de venta
     Module50100Desc=Módulo de punto de venta (POS).
    -Module50200Desc=Módulo para ofrecer una página de pago en línea que acepta pagos con PayPal (tarjeta de crédito o crédito de PayPal). Esto se puede usar para permitir que sus clientes realicen pagos gratuitos o para un pago en un objeto Dolibarr en particular (factura, orden, ...)
    -Module50400Desc=Gestión contable (entradas dobles, libros auxiliares generales y auxiliares). Exporte el libro de contabilidad en varios otros formatos de software de contabilidad.
    -Module54000Desc=Impresión directa (sin abrir los documentos) utilizando la interfaz Cups IPP (la impresora debe estar visible desde el servidor, y las CUPS deben estar instaladas en el servidor).
     Module55000Name=Encuesta, encuesta o voto
    -Module55000Desc=Módulo para hacer sondeos, encuestas o votaciones en línea (como Doodle, Studs, Rdvz, ...)
     Module59000Desc=Módulo para administrar márgenes
     Module60000Desc=Módulo para gestionar comisiones
    -Module62000Desc=Agregue funciones para administrar Incoterm
     Module63000Desc=Administre los recursos (impresoras, automóviles, habitaciones, ...) que luego puede compartir en eventos
     Permission11=Lea las facturas de los clientes
     Permission12=Crear/modificar facturas de clientes
    @@ -476,9 +386,6 @@ Permission27=Eliminar cotizaciones
     Permission28=Exportar las cotizaciones
     Permission31=Leer productos
     Permission36=Ver / administrar productos ocultos
    -Permission41=Leer proyectos y tareas (proyecto compartido y proyectos para los que estoy en contacto). También puede ingresar el tiempo consumido, para mí o mi jerarquía, en las tareas asignadas (parte de horas)
    -Permission42=Crear/modificar proyectos (proyectos y proyectos compartidos para los que soy contacto). También puede crear tareas y asignar usuarios a proyectos y tareas
    -Permission44=Eliminar proyectos (proyectos compartidos y proyectos para los que soy contacto)
     Permission45=Proyectos de exportación
     Permission61=Leer intervenciones
     Permission67=Intervenciones de exportación
    @@ -501,7 +408,6 @@ Permission109=Eliminar envíos
     Permission111=Leer cuentas financieras
     Permission112=Crear/modificar / eliminar y comparar transacciones
     Permission113=Configurar cuentas financieras (crear, administrar categorías)
    -Permission114=Conciliar transacciones
     Permission115=Exportar transacciones y estados de cuenta
     Permission116=Transferencias entre cuentas
     Permission117=Administrar el envío de cheques
    @@ -509,15 +415,12 @@ Permission121=Leer terceros vinculados al usuario
     Permission122=Crear/modificar terceros vinculados al usuario
     Permission125=Eliminar terceros vinculados al usuario
     Permission126=Exportar terceros
    -Permission141=Lee todos los proyectos y tareas (también proyectos privados para los que no estoy en contacto)
    -Permission142=Crear/modificar todos los proyectos y tareas (también proyectos privados para los que no estoy en contacto)
     Permission144=Eliminar todos los proyectos y tareas (también proyectos privados para los que no estoy en contacto)
     Permission146=Leer proveedores
     Permission147=Leer estadísticas
     Permission151=Lea las órdenes de pago de débito directo
     Permission152=Crear/modificar una orden de pago de débito directo
     Permission153=Enviar / Transmitir órdenes de pago de débito directo
    -Permission154=Registro de créditos / rechazos de órdenes de pago de débito directo
     Permission161=Leer contratos/suscripciones
     Permission163=Activar un servicio / suscripción de un contrato
     Permission164=Deshabilitar un servicio / suscripción de un contrato
    @@ -533,7 +436,6 @@ Permission183=Validar órdenes de proveedor
     Permission185=Ordene o cancele pedidos a proveedores
     Permission186=Reciba pedidos a proveedores
     Permission188=Cancelar pedidos a proveedores
    -Permission194=Lee las líneas de bandwith
     Permission203=Ordenar pedidos de conexiones
     Permission204=Solicitar conexiones
     Permission205=Gestionar las conexiones
    @@ -554,18 +456,15 @@ Permission244=Ver los contenidos de las categorías ocultas
     Permission251=Leer otros usuarios y grupos
     PermissionAdvanced251=Leer otros usuarios
     Permission252=Permisos de lectura de otros usuarios
    -Permission253=Crear/modificar otros usuarios, grupos y permisos
     PermissionAdvanced253=Crear/modificar usuarios y permisos internos / externos
     Permission254=Crear/modificar solo usuarios externos
     Permission256=Eliminar o deshabilitar a otros usuarios
    -Permission262=Ampliar el acceso a todos los terceros (no solo a terceros que el usuario sea un representante de ventas). No es efectivo para usuarios externos (siempre se limitan a ellos mismos para propuestas, pedidos, facturas, contratos, etc.). No es efectivo para proyectos (solo reglas sobre permisos de proyecto, visibilidad y asuntos de asignación).
     Permission271=Lee CA
     Permission272=Leer facturas
     Permission273=Emitir facturas
     Permission281=Leer contactos
     Permission291=Tarifas de lectura
     Permission292=Establecer permisos sobre las tarifas
    -Permission293=Modificar las tarifas de los clientes
     Permission300=Leer códigos de barras
     Permission302=Eliminar códigos de barras
     Permission311=Leer Servicios
    @@ -581,10 +480,6 @@ Permission401=Leer descuentos
     Permission402=Crear/modificar descuentos
     Permission403=Validar descuentos
     Permission404=Eliminar descuentos
    -Permission501=Leer contratos/salarios de empleados
    -Permission502=Crear/modificar contratos/salarios de empleados
    -Permission511=Leer el pago de los salarios
    -Permission512=Crear/modificar el pago de los salarios
     Permission517=Salarios de exportación
     Permission520=Leer préstamos
     Permission522=Crear/modificar préstamos
    @@ -625,8 +520,6 @@ Permission1251=Ejecutar las importaciones masivas de datos externos en la base d
     Permission1321=Exportar facturas, atributos y pagos de clientes
     Permission1322=Reabrir una factura paga
     Permission1421=Exportar pedidos y atributos de los clientes
    -Permission20001=Lea las solicitudes de ausencia (sus hojas y la de sus subordinados)
    -Permission20002=Crea / modifica tus solicitudes de ausencia (las tuyas se van y la de tus subordinados)
     Permission20003=Eliminar solicitudes de permiso
     Permission20004=Lea todas las solicitudes de licencia (incluso del usuario no subordinado)
     Permission20005=Crear / modificar solicitudes de abandono para todos (incluso para usuarios no subordinados)
    @@ -648,12 +541,11 @@ Permission50202=Transacciones de importación
     Permission54001=Impresión
     Permission59003=Lea cada margen de usuario
     Permission63004=Enlace de recursos a eventos de la agenda
    -DictionaryCompanyJuridicalType=Formas legales de terceros
     DictionaryProspectLevel=Nivel de potencial prospectivo
     DictionaryCanton=Estado / Provincia
     DictionaryVAT=Tipos de IVA o tasas de impuestos a las ventas
    +DictionaryRevenueStamp=Cantidad de estampillas fiscales
     DictionaryPaymentConditions=Términos de pago
    -DictionaryTypeContact=Tipo de contacto / dirección
     DictionaryTypeOfContainer=Tipo de páginas web / contenedores
     DictionaryEcotaxe=Ecotax (RAEE)
     DictionaryFormatCards=Formatos de tarjetas
    @@ -665,38 +557,23 @@ DictionarySource=Origen de las propuestas / órdenes
     DictionaryAccountancyCategory=Grupos personalizados para informes
     DictionaryAccountancysystem=Modelos para el cuadro de cuentas
     DictionaryAccountancyJournal=Libros contables
    -DictionaryEMailTemplates=Plantillas de correos electrónicos
     DictionaryProspectStatus=Estado de prospección
    -DictionaryHolidayTypes=Tipos de Vacaciones
    -DictionaryOpportunityStatus=Estado de oportunidad para el proyecto / plomo
    -VATManagement=Gestión del IVA
    -VATIsUsedDesc=Por defecto cuando se crean prospectos, facturas, pedidos, etc., la tasa del IVA sigue la regla del estándar activo: <br> Si el vendedor no está sujeto al IVA, entonces el IVA predeterminado es 0. Fin de la regla. <br> Si el (país de venta = país de compra), entonces el IVA por defecto es igual al IVA del producto en el país de venta. Fin de la regla <br> Si el vendedor y el comprador pertenecen a la Comunidad Europea y los productos son de transporte (automóvil, barco, avión), el IVA por defecto es 0 (el comprador debe pagar el IVA a la oficina de su país y no a la vendedor). Fin de la regla. <br> Si el vendedor y el comprador están en la Comunidad Europea y el comprador no es una empresa, entonces el IVA se convierte por defecto en el IVA del producto vendido. Fin de la regla. <br> Si el vendedor y el comprador están en la Comunidad Europea y el comprador es una empresa, entonces el IVA es 0 por defecto. Fin de la regla. <br> En cualquier otro caso, el valor predeterminado propuesto es el IVA = 0. Fin de la regla
    -VATIsNotUsedDesc=Por defecto, el IVA propuesto es 0, que puede utilizarse para casos como asociaciones, particulares o pequeñas empresas.
    -VATIsUsedExampleFR=En Francia, significa empresas u organizaciones que tienen un sistema fiscal real (real simplificado real o real). Un sistema en el que se declara el IVA.
    -VATIsNotUsedExampleFR=En Francia, significa las asociaciones que no están declaradas con IVA o las empresas, organizaciones o profesiones liberales que han elegido el sistema fiscal de microempresas (IVA en franquicia) y pagaron una franquicia con IVA sin ninguna declaración de IVA. Esta elección mostrará la referencia "IVA no aplicable - art-293B de CGI" en las facturas.
    +TypeOfRevenueStamp=Tipo de sello fiscal
     LocalTax1IsNotUsed=No use el segundo impuesto
    -LocalTax1IsUsedDesc=Use un segundo tipo de impuesto (que no sea el IVA)
    -LocalTax1IsNotUsedDesc=No use otro tipo de impuesto (que no sea el IVA)
     LocalTax1Management=Segundo tipo de impuesto
     LocalTax2IsNotUsed=No use el tercer impuesto
    -LocalTax2IsUsedDesc=Use un tercer tipo de impuesto (que no sea el IVA)
    -LocalTax2IsNotUsedDesc=No use otro tipo de impuesto (que no sea el IVA)
     LocalTax2Management=Tercer tipo de impuesto
    -LocalTax1IsUsedDescES=La tasa de RE por defecto cuando se crean prospectos, facturas, pedidos, etc. sigue la regla estándar activa: <br> Si el comprador no está sujeto a RE, RE por defecto = 0. Fin de la regla. <br> Si el comprador está sujeto a RE, entonces el RE está predeterminado. Fin de la regla. <br>
     LocalTax1IsNotUsedDescES=Por defecto, la RE propuesta es 0. Fin de la regla.
     LocalTax1IsUsedExampleES=En España son profesionales sujetos a algunas secciones específicas del IAE español.
     LocalTax1IsNotUsedExampleES=En España son profesionales y sociedades y están sujetas a ciertas secciones del IAE español.
    -LocalTax2IsUsedDescES=La tasa de RE por defecto cuando se crean prospectos, facturas, pedidos, etc. sigue la regla estándar activa: <br> Si el vendedor no está sujeto a IRPF, entonces el IRPF por defecto es igual a 0. Fin de la regla. <br> Si el vendedor está sujeto a IRPF, entonces el IRPF por defecto. Fin de la regla. <br>
     LocalTax2IsNotUsedDescES=Por defecto, el IRPF propuesto es 0. Fin de la regla.
     LocalTax2IsUsedExampleES=En España, autónomos y profesionales independientes que prestan servicios y empresas que han elegido el sistema impositivo de los módulos.
    -LocalTax2IsNotUsedExampleES=En España son negocios no sujetos a un sistema impositivo de módulos.
     CalcLocaltax=Informes sobre impuestos locales
     CalcLocaltax1Desc=Los informes de impuestos locales se calculan con la diferencia entre las ventas locales y las compras locales.
     CalcLocaltax2Desc=Los informes de impuestos locales son el total de compras de impuestos locales
     CalcLocaltax3Desc=Los informes de impuestos locales son el total de las ventas de impuestos locales
     LabelUsedByDefault=Etiqueta usada por defecto si no se puede encontrar traducción para el código
     LabelOnDocuments=Etiqueta en documentos
    -NbOfDays=N° de días
     AtEndOfMonth=Al final del mes
     CurrentNext=Actual / Siguiente
     Offset=Compensar
    @@ -711,7 +588,6 @@ DatabasePort=Puerto de base
     DatabaseUser=Usuario de la base
     DatabasePassword=Contraseña de la base
     Tables=Mesas
    -NbOfRecord=N° de registros
     DriverType=Tipo de controlador
     SummarySystem=Resumen de información del sistema
     SummaryConst=Lista de todos los parámetros de configuración de Dolibarr
    @@ -722,42 +598,18 @@ Skin=Tema de la piel
     DefaultSkin=Tema predeterminado de la piel
     MaxSizeList=Longitud máxima para la lista
     DefaultMaxSizeList=Longitud máxima predeterminada para las listas
    -DefaultMaxSizeShortList=Longitud máxima predeterminada para listas cortas (es decir, en la tarjeta de cliente)
     MessageLogin=Mensaje de la página de inicio
     LoginPage=Página de inicio de sesión
     PermanentLeftSearchForm=Formulario de búsqueda permanente en el menú de la izquierda
    -DefaultLanguage=Lenguaje predeterminado para usar (código de idioma)
     EnableMultilangInterface=Habilitar interfaz multilingüe
     EnableShowLogo=Mostrar logo en el menú de la izquierda
    -CompanyInfo=Información de la empresa / organización
    -CompanyIds=Identidades de empresa / organización
    -CompanyName=Nombre
    +CompanyInfo=Empresa / Organización
     CompanyCurrency=Moneda principal
     DoNotSuggestPaymentMode=No sugiera
     NoActiveBankAccountDefined=No se definió una cuenta bancaria activa
     OwnerOfBankAccount=Propietario de la cuenta bancaria %s
     BankModuleNotActive=Módulo de cuentas bancarias no habilitado
     ShowBugTrackLink=Mostrar  el link "<strong>%s</strong>"
    -DelaysOfToleranceBeforeWarning=La tolerancia se retrasa antes de la advertencia
    -DelaysOfToleranceDesc=Esta pantalla le permite definir los retrasos tolerados antes de que se notifique una alerta en la pantalla con el picto %s para cada elemento retrasado.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Tolerancia de retraso (en días) antes de la alerta sobre eventos planeados (eventos de la agenda) aún no completada
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolerancia de retraso (en días) antes de que la alerta en el proyecto no se cierre a tiempo
    -Delays_MAIN_DELAY_TASKS_TODO=Tolerancia de retraso (en días) antes de la alerta en las tareas planificadas (tareas del proyecto) aún no completada
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolerancia de retardo (en días) antes de la alerta en pedidos no procesados ​​todavía
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolerancia de retraso antes de la alerta (en días) sobre cotizaciones a cerrar
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolerancia de retraso antes de la alerta (en días) sobre cotizaciones no facturadas
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Retraso de tolerancia (en días) antes de la alerta en los servicios para activar
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Retraso de tolerancia (en días) antes de la alerta en servicios caducados
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Retraso de tolerancia (en días) antes de la alerta en las facturas pendientes de pago del proveedor
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Retraso de tolerancia (en días) antes de la alerta en las facturas pendientes de pago del cliente
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Retraso de tolerancia (en días) antes de la alerta en conciliación bancaria pendiente
    -Delays_MAIN_DELAY_MEMBERS=Retraso en la tolerancia (en días) antes de la alerta en la cuota de membresía demorada
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Retraso de tolerancia (en días) antes de la alerta para depósitos de cheques para hacer
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Retraso de tolerancia (en días) antes de la alerta para que los informes de gastos aprueben
    -SetupDescription1=El área de configuración es para los parámetros iniciales de configuración antes de comenzar a usar Dolibarr.
    -SetupDescription3=Configuración en el menú <a href="%s"> %s -> %s </a>. Este paso es necesario porque define los datos utilizados en las pantallas de Dolibarr para personalizar el comportamiento predeterminado del software (por ejemplo, para las características relacionadas con el país).
    -SetupDescription4=Configuración en el menú <a href="%s"> %s -> %s </a>. Este paso es necesario porque Dolibarr ERP / CRM es una colección de varios módulos / aplicaciones, todos más o menos independientes. Las nuevas funciones se agregan a los menús para cada módulo que active.
    -SetupDescription5=Otras entradas de menú administran parámetros opcionales.
     LogEvents=Eventos de auditoría de seguridad
     InfoDolibarr=Sobre Dolibarr
     InfoBrowser=Acerca del navegador
    @@ -768,18 +620,15 @@ InfoPerf=Sobre representaciones
     BrowserOS=Sistema operativo del navegador
     ListOfSecurityEvents=Lista de eventos de seguridad de Dolibarr
     LogEventDesc=Puede habilitar aquí el registro de eventos de seguridad de Dolibarr. Los administradores pueden ver su contenido a través del menú <b>Herramientas del sistema - Auditoría</b>. Advertencia, esta característica puede consumir una gran cantidad de datos en la base de datos.
    -AreaForAdminOnly=Los <b> usuarios administradores </ b> solo pueden configurar los parámetros de configuración.
    +AreaForAdminOnly=Los parámetros de configuración solo pueden modificarse por <b>usuarios administradores</b>.
     SystemInfoDesc=La información del sistema es información técnica miscelánea que obtienes en modo solo lectura y visible solo para los administradores.
     SystemAreaForAdminOnly=Esta área está disponible solo para usuarios administradores. Ninguno de los permisos de Dolibarr puede reducir este límite.
    -AccountantDesc=Edite en esta página toda la información conocida sobre su contador / tenedor de libros
     AccountantFileNumber=Número de expediente
     DisplayDesc=Puede elegir cada parámetro relacionado con el aspecto y la sensación de Dolibarr aquí
     AvailableModules=Aplicación / módulos disponibles
     ToActivateModule=Para activar los módulos, vaya al Área de configuración (Inicio-> Configuración-> Módulos).
     SessionTimeOut=Tiempo de espera para la sesión
    -SessionExplanation=Este número garantiza que la sesión nunca caducará antes de este delay , si el limpiador de sesión se realiza mediante el limpiador interno de sesiones PHP (y nada más). El limpiador interno de sesiones PHP no garantiza que la sesión caduque justo después de este retraso. Caducará, después de este retraso, y cuando se ejecute el limpiador de sesión, por lo que cada <b>%s/%s</b>acceso, pero solo durante el acceso realizado por otras sesiones.<br>Nota: en algunos servidores con un mecanismo de limpieza de sesión externo (cron en debian , ubuntu ...), las sesiones se pueden destruir después de un período definido por el valor predeterminado <strong>session.gc_maxlifetime</strong>, sin importar el valor ingresado aquí.
     TriggersAvailable=Disparadores disponibles
    -TriggersDesc=Los desencadenantes son archivos que modificarán el comportamiento del flujo de trabajo de Dolibarr una vez copiados en el directorio <b> htdocs / core / triggers </ b>. Se dieron cuenta de nuevas acciones, activadas en eventos Dolibarr (creación de nueva empresa, validación de factura, ...).
     TriggerDisabledByName=Los desencadenantes en este archivo están deshabilitados por el sufijo <b> -NORUN </ b> en su nombre.
     TriggerDisabledAsModuleDisabled=Los disparadores en este archivo están deshabilitados ya que el módulo <b>%s</b> está deshabilitado.
     TriggerAlwaysActive=Los activadores en este archivo están siempre activos, cualesquiera que sean los módulos Dolibarr activados.
    @@ -789,7 +638,6 @@ DictionaryDesc=Inserta todos los datos de referencia. Puede agregar sus valores
     ConstDesc=Esta página le permite editar todos los demás parámetros no disponibles en páginas anteriores. Estos son principalmente parámetros reservados para desarrolladores o resolución avanzada de problemas. Para obtener una lista de opciones <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">revise aquí</a>.
     MiscellaneousDesc=Todos los demás parámetros relacionados con la seguridad se definen aquí.
     LimitsSetup=Límites / configuración de precisión
    -LimitsDesc=Puede definir los límites, las precisiones y las optimizaciones utilizadas por Dolibarr aquí
     MAIN_MAX_DECIMALS_UNIT=Máximos decimales para precios unitarios
     MAIN_MAX_DECIMALS_TOT=Máximos decimales para los precios totales
     MAIN_MAX_DECIMALS_SHOWN=Máximos de decimales para los precios mostrados en la pantalla (Agregue <b> ... </ b> después de este número si desea ver <b> ... </ b> cuando el número se trunca cuando se muestra en la pantalla)
    @@ -798,16 +646,12 @@ UnitPriceOfProduct=Precio unitario neto de un producto
     TotalPriceAfterRounding=Precio total (impuesto neto / IVA / IVA) después del redondeo
     ParameterActiveForNextInputOnly=Parámetro efectivo solo para la siguiente entrada
     NoEventOrNoAuditSetup=Aún no se ha registrado ningún evento de seguridad. Esto puede ser normal si la auditoría no se ha habilitado en la página "configuración - seguridad - auditoría".
    -NoEventFoundWithCriteria=No se ha encontrado ningún evento de seguridad para tales criterios de búsqueda.
     SeeLocalSendMailSetup=Consulte su configuración de sendmail local
     BackupDesc=Para hacer una copia de seguridad completa de Dolibarr, debes:
     BackupDesc2=Guarde el contenido del directorio de documentos (<b>%s</b>) que contiene todos los archivos cargados y generados (por lo que incluye todos los archivos de volcado generados en el paso 1).
    -BackupDesc3=Guarde el contenido de su base de datos (<b>%s</b>) en un archivo de volcado. Para esto, puede usar el siguiente asistente.
     BackupDescX=El directorio archivado debe almacenarse en un lugar seguro.
     BackupDescY=El archivo de volcado generado debe almacenarse en un lugar seguro.
    -BackupPHPWarning=La copia de seguridad no se puede garantizar con este método. Prefiero el anterior
     RestoreDesc=Para restaurar una copia de seguridad de Dolibarr, debe:
    -RestoreDesc2=Restaure el archivo de almacenamiento (archivo zip, por ejemplo) del directorio de documentos para extraer el árbol de archivos en el directorio de documentos de una nueva instalación de Dolibarr o en el directorio de documentos actuales (<b>%s</b>).
     RestoreDesc3=Restaure los datos, desde un archivo de volcado de respaldo, en la base de datos de la nueva instalación de Dolibarr o en la base de datos de esta instalación actual (<b>%s</b>). Advertencia, una vez que finaliza la restauración, debe usar un inicio de sesión / contraseña, que existía cuando se realizó la copia de seguridad, para conectarse de nuevo. Para restaurar una base de datos de respaldo en esta instalación actual, puede seguir a este asistente.
     RestoreMySQL=Importación de MySQL
     ForcedToByAModule=Esta regla es forzada a <b>%s</b> por un módulo activado
    @@ -817,25 +661,19 @@ RunningUpdateProcessMayBeRequired=Parece que es necesario ejecutar el proceso de
     YouMustRunCommandFromCommandLineAfterLoginToUser=Debe ejecutar este comando desde la línea de comando después de iniciar sesión en un shell con el usuario <b>%s</b> o debe agregar la opción -W al final de la línea de comandos para proporcionar una contraseña de <b>%s</b>.
     DownloadMoreSkins=Más pieles para descargar
     SimpleNumRefModelDesc=Devuelve el número de referencia con el formato %syymm-nnnn donde yy es año, mm es mes y nnnn es una secuencia sin saltos ni reinicio
    -ShowProfIdInAddress=Mostrar id. Profesional con direcciones en documentos
    -ShowVATIntaInAddress=Ocultar IVA Intra num con direcciones en documentos
    -MAIN_DISABLE_METEO=Desactivar vista meteo
     MeteoStdMod=Modo estandar
     MeteoUseMod=Haz clic para usar %s
     TestLoginToAPI=Prueba de inicio de sesión a la API
    -ProxyDesc=Algunas características de Dolibarr necesitan tener acceso a Internet para funcionar. Define aquí los parámetros para esto. Si el servidor de Dolibarr está detrás de un servidor Proxy, esos parámetros le dicen a Dolibarr cómo acceder a Internet a través de él.
     MAIN_PROXY_USE=Use un servidor proxy (de lo contrario, acceso directo a internet)
     MAIN_PROXY_HOST=Nombre / dirección del servidor proxy
     MAIN_PROXY_USER=Inicie sesión para usar el servidor proxy
     MAIN_PROXY_PASS=Contraseña para usar el servidor proxy
    -DefineHereComplementaryAttributes=Defina aquí todos los atributos, que aún no están disponibles de manera predeterminada, y que desea que sean compatibles con %s.
     ExtraFields=Atributos complementarios
     ExtraFieldsLines=Atributos complementarios (líneas)
     ExtraFieldsLinesRec=Atributos complementarios (líneas plantillas de facturas)
     ExtraFieldsSupplierOrdersLines=Atributos complementarios (líneas de pedido)
     ExtraFieldsSupplierInvoicesLines=Atributos complementarios (líneas de factura)
     ExtraFieldsThirdParties=Atributos complementarios (terceros)
    -ExtraFieldsContacts=Atributos complementarios (contacto/dirección)
     ExtraFieldsMember=Atributos complementarios (miembro)
     ExtraFieldsMemberType=Atributos complementarios (tipo de miembro)
     ExtraFieldsCustomerInvoices=Atributos complementarios (facturas)
    @@ -848,13 +686,11 @@ ExtraFieldHasWrongValue=El atributo %s tiene un valor incorrecto.
     AlphaNumOnlyLowerCharsAndNoSpace=solo caracteres alfanuméricos y minúsculas sin espacio
     SendmailOptionNotComplete=Advertencia, en algunos sistemas Linux, para enviar correos electrónicos desde su correo electrónico, la configuración de ejecución de sendmail debe contener la opción -ba (parámetro mail.force_extra_parameters en su archivo php.ini). Si algunos destinatarios nunca reciben correos electrónicos, intente editar este parámetro de PHP con mail.force_extra_parameters = -ba).
     PathToDocuments=Camino a los documentos
    -SendmailOptionMayHurtBuggedMTA=Característica para enviar correos electrónicos utilizando el método "PHP mail direct" generará un mensaje de correo que algunos servidores de correo de recepción podrían no analizar correctamente. El resultado es que algunos correos electrónicos no pueden ser leídos por las personas alojadas en esas plataformas con errores. Es el caso de algunos proveedores de Internet (por ejemplo, Orange en Francia). Esto no es un problema para Dolibarr ni para PHP, sino para recibir el servidor de correo. Sin embargo, puede agregar la opción MAIN_FIX_FOR_BUGGED_MTA a 1 en configuración - otra para modificar Dolibarr para evitar esto. Sin embargo, puede experimentar problemas con otros servidores que respetan estrictamente el estándar SMTP. La otra solución (recomendada) es utilizar el método "Biblioteca de socket SMTP" que no tiene inconvenientes.
     TranslationSetup=Configuración de la traducción
     TranslationKeySearch=Buscar una clave o cadena de traducción
     TranslationOverwriteKey=Sobrescribir una cadena de traducción
     TranslationDesc=Cómo configurar el idioma de la aplicación que se muestra: <br> * Systemwide: menú <strong> Inicio - Configuración - Pantalla </ strong> <br> * Por usuario: use la pestaña <strong> Configuración de visualización del usuario </ strong> en la tarjeta de usuario ( haga clic en el nombre de usuario en la parte superior de la pantalla).
     TranslationOverwriteDesc=También puede anular cadenas que llenan la siguiente tabla. Elija su idioma del menú desplegable "%s", inserte la cadena de clave de traducción en "%s" y su nueva traducción en "%s"
    -TranslationOverwriteDesc2=Puede usar la otra pestaña para ayudarlo a saber qué clave de traducción usar
     TranslationString=Cadena de traducción
     CurrentTranslationString=Cadena de traducción actual
     WarningAtLeastKeyOrTranslationRequired=Se requiere un criterio de búsqueda al menos para la cadena clave o de traducción
    @@ -862,23 +698,12 @@ NewTranslationStringToShow=Nueva cadena de traducción para mostrar
     OriginalValueWas=La traducción original se sobrescribe. El valor original fue: <br> <br> %s
     TotalNumberOfActivatedModules=Aplicaciones/módulos activos: <b>%s</b>/<b>%s</b>
     YouMustEnableOneModule=Debe al menos habilitar 1 módulo
    -ClassNotFoundIntoPathWarning=Clase %s no encontrada en la ruta de PHP
    -OnlyFollowingModulesAreOpenedToExternalUsers=Tenga en cuenta que solo los siguientes módulos están abiertos a usuarios externos (cualquiera que sea el permiso de dichos usuarios) y solo si se otorgaron permisos:
     SuhosinSessionEncrypt=Almacenamiento de sesión cifrado por Suhosin
     ConditionIsCurrently=La condición es actualmente %s
    -YouUseBestDriver=Utiliza el controlador %s que es el mejor controlador disponible actualmente.
    -YouDoNotUseBestDriver=Utiliza la unidad %s pero se recomienda el controlador %s.
    -NbOfProductIsLowerThanNoPb=Solo tiene %s productos / servicios en la base de datos. Esto no requiere ninguna optimización particular.
     SearchOptim=Optimización de búsqueda
    -YouHaveXProductUseSearchOptim=Tienes %s producto en la base de datos. Debe agregar la constante PRODUCT_DONOTSEARCH_ANYWHERE a 1 en Home-Setup-Other, limita la búsqueda al comienzo de las cadenas, haciendo posible que la base de datos use el índice y debería obtener una respuesta inmediata.
    -BrowserIsOK=Está utilizando el navegador web %s. Este navegador está bien para la seguridad y el rendimiento.
    -BrowserIsKO=Está utilizando el navegador web %s. Se sabe que este navegador es una mala opción para la seguridad, el rendimiento y la fiabilidad. Le recomendamos utilizar Firefox, Chrome, Opera o Safari.
     XCacheInstalled=XCache está cargado.
    -AddRefInList=Muestre la referencia del cliente / proveedor en la lista (seleccione la lista o el cuadro combinado) y la mayor parte del hipervínculo. Los terceros aparecerán con el nombre "CC12345 - SC45678 - La gran empresa coorp", en lugar de "La gran compañía coorp".
    -AskForPreferredShippingMethod=Pregunte por el método de envío preferido para terceros.
     FillThisOnlyIfRequired=Ejemplo: +2 (llenar solo si se experimentan problemas de compensación de zona horaria)
     PasswordGenerationStandard=Devuelve una contraseña generada de acuerdo con el algoritmo interno de Dolibarr: 8 caracteres que contienen números compartidos y caracteres en minúscula.
    -PasswordGenerationNone=No sugiera ninguna contraseña generada. La contraseña debe escribirse manualmente.
     PasswordGenerationPerso=Devuelve una contraseña de acuerdo a tu configuración definida personalmente.
     SetupPerso=De acuerdo con tu configuración
     PasswordPatternDesc=Descripción del patrón de contraseña
    @@ -888,16 +713,10 @@ UsersSetup=Configuración del módulo de usuarios
     UserMailRequired=Se requiere correo electrónico para crear un nuevo usuario
     HRMSetup=Configuración del módulo RRHH
     CompanySetup=Configuración del módulo de empresas
    -CompanyCodeChecker=Módulo para la generación y verificación de código de terceros (cliente o proveedor)
    -AccountCodeManager=Módulo para la generación de códigos de contabilidad (cliente o proveedor)
     NotificationsDesc=La función de notificaciones de Correo Electrónico le permite enviar correos automáticos en silencio para algunos eventos de Dolibarr. Los objetivos de las notificaciones se pueden definir:
     NotificationsDescGlobal=* o estableciendo correos electrónicos de objetivos globales en la página de configuración del módulo.
    -ModelModules=Plantillas de documentos
    -DocumentModelOdt=Genere documentos a partir de plantillas de OpenDocuments (archivos .ODT o .ODS para OpenOffice, KOffice, TextEdit, ...)
     WatermarkOnDraft=Marca de agua en el borrador del documento
     JSOnPaimentBill=Activar la función para completar automáticamente las líneas de pago en forma de pago
    -CompanyIdProfChecker=Reglas sobre Ids profesionales
    -MustBeMandatory=Obligatorio para crear terceros?
     MustBeInvoiceMandatory=Obligatorio para validar facturas?
     TechnicalServicesProvided=Servicios técnicos proporcionados
     WebDavServer=URL raíz del servidor %s: %s
    @@ -991,11 +810,8 @@ LDAPTestSynchroMemberType=Pruebe la sincronización del tipo de miembro
     LDAPTestSearch=Pruebe una búsqueda LDAP
     LDAPSynchroOK=Prueba de sincronización exitosa
     LDAPSynchroKO=Prueba de sincronización fallida
    -LDAPSynchroKOMayBePermissions=Prueba de sincronización fallida. Verifique que la conexión al servidor esté configurada correctamente y permita que udpates LDAP
     LDAPTCPConnectOK=Conexión TCP al servidor LDAP exitosa (Servidor = %s, Puerto = %s)
     LDAPTCPConnectKO=No se pudo conectar TCP al servidor LDAP (Servidor = %s, Puerto = %s)
    -LDAPBindOK=Connect / Authentificate al servidor LDAP exitoso (Servidor = %s, Puerto = %s, Admin = %s, Contraseña = %s)
    -LDAPBindKO=Error de conexión / autentificación al servidor LDAP (Servidor = %s, Puerto = %s, Admin = %s, Contraseña = %s)
     LDAPSetupForVersion3=Servidor LDAP configurado para la versión 3
     LDAPSetupForVersion2=Servidor LDAP configurado para la versión 2
     LDAPDolibarrMapping=Mapas de Dolibarr
    @@ -1005,7 +821,6 @@ LDAPFieldLoginExample=Ejemplo: uid
     LDAPFilterConnectionExample=Ejemplo: & (objectClass = inetOrgPerson)
     LDAPFieldLoginSambaExample=Ejemplo: samaccountname
     LDAPFieldFullnameExample=Ejemplo: cn
    -LDAPFieldPasswordNotCrypted=La contraseña no está encriptada
     LDAPFieldPasswordExample=Ejemplo: userPassword
     LDAPFieldCommonNameExample=Ejemplo: cn
     LDAPFieldNameExample=Ejemplo: sn
    @@ -1040,37 +855,27 @@ LDAPDescMembers=Esta página le permite definir el nombre de los atributos LDAP
     LDAPDescValues=Los valores de ejemplo están diseñados para <b> OpenLDAP </ b> con los siguientes esquemas cargados: <b> core.schema, cosine.schema, inetorgperson.schema </ b>). Si usa estos valores y OpenLDAP, modifique su archivo de configuración de LDAP <b> slapd.conf </ b> para que se carguen todos estos esquemas.
     ForANonAnonymousAccess=Para un acceso autenticado (para un acceso de escritura, por ejemplo)
     PerfDolibarr=Configuración de rendimiento / informe de optimización
    -YouMayFindPerfAdviceHere=Encontrará en esta página algunos controles o consejos relacionados con el rendimiento.
    -NotInstalled=No está instalado, por lo que su servidor no se ralentiza con esto.
     ApplicativeCache=Caché aplicable
     MemcachedNotAvailable=No se encontró caché aplicativo. Puede mejorar el rendimiento instalando un servidor de caché Memcached y un módulo capaz de usar este servidor de caché. Más información aquí <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN"> http: //wiki.dolibarr.org/index.php/Module_MemCached_EN </a>. <br> Tenga en cuenta que muchos proveedores de alojamiento web no proporcionan dicho servidor de caché.
     MemcachedModuleAvailableButNotSetup=El módulo memcached para la memoria caché aplicativa se encuentra pero la configuración del módulo no está completa.
     MemcachedAvailableAndSetup=El módulo memcached dedicado a usar el servidor memcached está habilitado.
     OPCodeCache=Caché OPCode
    -NoOPCodeCacheFound=No se encontró caché OPCode. Puede ser que use otro caché OPCode que XCache o eAccelerator (bueno), puede ser que no tenga caché OPCode (muy malo).
     HTTPCacheStaticResources=Caché HTTP para recursos estáticos (css, img, javascript)
     FilesOfTypeCached=Los archivos del tipo %s están en caché en el servidor HTTP
     FilesOfTypeNotCached=El servidor HTTP no almacena en caché los archivos del tipo %s
     FilesOfTypeCompressed=Los archivos del tipo %s están comprimidos por el servidor HTTP
     FilesOfTypeNotCompressed=Los archivos del tipo %s no son comprimidos por el servidor HTTP
     CacheByServer=Caché por servidor
    -CacheByServerDesc=Por ejemplo, usando la directiva Apache "ExpiresByType image / gif A2592000"
     CacheByClient=Caché por navegador
     CompressionOfResources=Compresión de respuestas HTTP
    -CompressionOfResourcesDesc=Por ejemplo, usando la directiva Apache "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Tal detección automática no es posible con los navegadores actuales
    -DefaultValuesDesc=Puede definir / forzar aquí el valor predeterminado que desea obtener cuando cree un nuevo registro, y / o altere los filtros u ordene el orden cuando el registro de su lista.
     DefaultSearchFilters=Filtros de búsqueda predeterminados
     DefaultSortOrder=Ordenar por defecto
     ProductSetup=Configuración del módulo de productos
     ServiceSetup=Configuración del módulo de servicios
     ProductServiceSetup=Configuración de módulos de productos y servicios
     NumberOfProductShowInSelect=Número máximo de productos en listas de selección de combos (0 = sin límite)
    -ViewProductDescInFormAbility=Visualización de descripciones de productos en los formularios (de lo contrario, como información emergente emergente)
     MergePropalProductCard=Activar en el producto / servicio pestaña Archivos adjuntos una opción para combinar el documento PDF del producto con la propuesta PDF azur si el producto / servicio figura en la propuesta
    -ViewProductDescInThirdpartyLanguageAbility=Visualización de descripciones de productos en el idioma de terceros
    -UseSearchToSelectProductTooltip=Además, si tiene una gran cantidad de productos (> 100 000), puede aumentar la velocidad estableciendo PRODUCT_DONOTSEARCH_ANYWHERE constante en 1 en Configuración-> Otro. La búsqueda se limitará al inicio de la cadena.
    -UseSearchToSelectProduct=Espere a que presione una tecla antes de cargar el contenido de la lista combinada de productos (Esto puede aumentar el rendimiento si tiene una gran cantidad de productos, pero es menos conveniente)
     SetDefaultBarcodeTypeProducts=Tipo de código de barras predeterminado para usar en productos
     SetDefaultBarcodeTypeThirdParties=Tipo de código de barras predeterminado para usar con terceros
     UseUnits=Defina una unidad de medida para Cantidad durante la orden, propuesta o edición de líneas de factura
    @@ -1117,7 +922,6 @@ NotificationEMailFrom=Remitente correo electrónico (desde) para correos electr
     SendingsSetup=Configuración del módulo de envío
     SendingsReceiptModel=Modelo de recibo de envío
     SendingsNumberingModules=Módulos de numeración de los mensajes
    -NoNeedForDeliveryReceipts=En la mayoría de los casos, las hojas de envío se utilizan como hojas para entregas a clientes (lista de productos a enviar) y hojas que el cliente recibe y firma. Por lo tanto, los recibos de entregas de productos son una característica duplicada y rara vez se activan.
     DeliveryOrderNumberingModules=Módulo de numeración de recibos de entregas de productos
     DeliveryOrderModel=Modelo de recepción de entregas de productos
     DeliveriesOrderAbility=Productos de soporte recibos de entregas
    @@ -1125,16 +929,11 @@ FreeLegalTextOnDeliveryReceipts=Texto libre en recibos de entrega
     ActivateFCKeditor=Activa el editor avanzado para:
     FCKeditorForCompany=Creación / edición WYSIWIG de descripción y nota de elementos (excepto productos / servicios)
     FCKeditorForProduct=WYSIWIG creación / edición de productos / servicios descripción y nota
    -FCKeditorForProductDetails=Creación/edición WYSIWIG de las líneas de detalle de los productos (en pedidos, cotizaciones, facturas, etc.)
     FCKeditorForMailing=Creación / edición WYSIWIG para eMailings masivos (Herramientas-> eMailing)
     FCKeditorForUserSignature=Creación / edición WYSIWIG de la firma del usuario
     FCKeditorForMail=Creación / edición WYSIWIG para todo el correo (excepto Herramientas-> correo electrónico)
    -OSCommerceErrorConnectOkButWrongDatabase=La conexión se realizó correctamente pero la base de datos no parece ser una base de datos de OSCommerce (la clave %s no se encuentra en la tabla %s).
    -OSCommerceTestOk=Conexión al servidor '%s' en la base de datos '%s' con el usuario '%s' exitoso.
    -OSCommerceTestKo1=La conexión al servidor '%s' tuvo éxito pero no se pudo alcanzar la base de datos '%s'.
     OSCommerceTestKo2=La conexión al servidor '%s' con el usuario '%s' falló.
     StockSetup=Configuración del módulo de stock
    -IfYouUsePointOfSaleCheckModule=Si usa un módulo de punto de venta (el módulo POS se proporciona por defecto u otro módulo externo), su configuración puede ser ignorada por su módulo de punto de venta. La mayoría de los módulos de puntos de venta están diseñados para crear inmediatamente una factura y disminuir el stock por defecto, sean cuales sean las opciones aquí. Por lo tanto, si necesita o no tiene una disminución de stock al registrar una venta desde su Punto de venta, verifique también la configuración de su módulo POS.
     MenuDeleted=Menú borrado
     NotTopTreeMenuPersonalized=Menús personalizados no vinculados a una entrada del menú superior
     Menu=Selección de menú
    @@ -1152,7 +951,6 @@ DetailRight=Condición para mostrar menús grises no autorizados
     DetailLangs=Nombre de archivo Lang para la traducción del código de etiqueta
     DetailUser=Pasante / Externo / Todos
     Target=Objetivo
    -DetailTarget=Objetivo para enlaces (_blank top abrir una nueva ventana)
     DetailLevel=Nivel (-1: menú superior, 0: menú del encabezado,> 0 menú y submenú)
     ModifMenu=Cambio de menú
     ConfirmDeleteMenu=¿Seguro que quieres eliminar la entrada del menú <b>%s</b>?
    @@ -1163,7 +961,6 @@ OptionVATDebitOption=Devengo
     OptionVatDefaultDesc=El IVA es pagadero: <br> - a la entrega de los bienes (utilizamos la fecha de la factura) <br> - en los pagos por los servicios
     OptionVatDebitOptionDesc=El IVA es pagadero: <br> - a la entrega de los bienes (utilizamos la fecha de la factura) <br> - en la factura (débito) de los servicios
     OptionPaymentForProductAndServicesDesc=El IVA es pagadero: <br> - en el pago de bienes<br> - en los pagos por servicios
    -SummaryOfVatExigibilityUsedByDefault=Tiempo de exigibilidad del IVA por defecto según la opción elegida:
     OnPayment=En pago
     SupposedToBePaymentDate=Fecha de pago utilizada
     SupposedToBeInvoiceDate=Fecha de la factura utilizada
    @@ -1171,38 +968,25 @@ Buy=Comprar
     Sell=Vender
     InvoiceDateUsed=Fecha de la factura utilizada
     YourCompanyDoesNotUseVAT=Su empresa ha sido definida para no usar el IVA (Inicio - Configuración - Compañía / Organización), por lo que no hay opciones de IVA para configurar.
    -AccountancyCode=Código de contabilidad
     AccountancyCodeSell=Cuenta de venta. código
     AccountancyCodeBuy=Cuenta de compra código
     AgendaSetup=Configuración del módulo de eventos y agenda
     PasswordTogetVCalExport=Clave para autorizar el enlace de exportación
     PastDelayVCalExport=No exportar evento más antiguo que
    -AGENDA_USE_EVENT_TYPE=Usar tipos de eventos (gestionados en el menú Configuración -> Diccionarios -> Tipo de eventos de la agenda)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Establezca automáticamente este valor predeterminado para el tipo de evento en forma de evento creado
    -AGENDA_DEFAULT_FILTER_TYPE=Establecer automáticamente este tipo de evento en el filtro de búsqueda de la vista de agenda
    -AGENDA_DEFAULT_FILTER_STATUS=Establecer automáticamente este estado para los eventos en el filtro de búsqueda de la vista de agenda
     AGENDA_DEFAULT_VIEW=¿Qué pestaña desea abrir de forma predeterminada al seleccionar el menú Agenda?
     AGENDA_REMINDER_EMAIL=Habilite el recordatorio de eventos <b>por correo electrónico</b>  (la opción recordar/demorar se puede definir en cada evento). Nota: El módulo <strong>%s</strong> debe estar habilitado y configurado correctamente para que el recordatorio se envíe con la frecuencia correcta.
    -AGENDA_REMINDER_BROWSER=Habilite el recordatorio de eventos <b> en el navegador de los usuarios </ b> (cuando se llega a la fecha del evento, cada usuario puede rechazarlo de la pregunta de confirmación del navegador)
     AGENDA_REMINDER_BROWSER_SOUND=Habilitar notificación de sonido
     AGENDA_SHOW_LINKED_OBJECT=Mostrar objeto vinculado en la vista de agenda
     ClickToDialUrlDesc=Se llama a Url cuando se hace clic en el picto de un teléfono. En la URL, puede usar etiquetas <br> <b> __ PHONETO __ </ b> que se reemplazarán por el número de teléfono de la persona a quien llamar <br> <b> __ PHONEFROM __ </ b> que se reemplazará por el número de teléfono de la llamada persona (suya) <br> <b> __ LOGIN __ </ b> que se reemplazará con clicktodial de inicio de sesión (definido en la tarjeta de usuario) <br> <b> __ PASS __ </ b> que se reemplazará con clicktodial contraseña (definida en usuario tarjeta).
    -ClickToDialDesc=Este módulo permite hacer clic en los números de teléfono. Un clic en este ícono lo llamará para que su teléfono llame al número de teléfono. Esto se puede utilizar para llamar a un sistema de centro de llamadas de Dolibarr que puede llamar al número de teléfono en un sistema SIP, por ejemplo.
     ClickToDialUseTelLink=Use solo un enlace "tel:" en los números de teléfono
    -ClickToDialUseTelLinkDesc=Utilice este método si sus usuarios tienen un softphone o una interfaz de software instalados en la misma computadora que el navegador, y haga clic cuando hace clic en un enlace en su navegador que comienza con "tel:". Si necesita una solución de servidor completa (no necesita instalación de software local), debe configurar esto en "No" y completar el siguiente campo.
     CashDesk=Puntos de venta
     CashDeskSetup=Configuración del módulo de punto de venta
    -CashDeskThirdPartyForSell=Tercera parte genérica predeterminada para usar para vender
     CashDeskBankAccountForSell=Cuenta predeterminada para usar para recibir pagos en efectivo
     CashDeskBankAccountForCheque=Cuenta predeterminada para usar para recibir pagos con cheque
     CashDeskBankAccountForCB=Cuenta predeterminada para usar para recibir pagos con tarjeta de crédito
    -CashDeskDoNotDecreaseStock=Inhabilite la disminución de stock cuando se realiza una venta desde el punto de venta (si se realiza "no", se realiza una disminución de stock por cada venta realizada desde el punto de venta, cualquiera que sea la opción configurada en el stock del módulo).
     CashDeskIdWareHouse=Fuerce y restrinja el almacén para utilizarlo en la disminución de existencias
    -StockDecreaseForPointOfSaleDisabled=Disminución de stock desde el punto de venta deshabilitado
     StockDecreaseForPointOfSaleDisabledbyBatch=La disminución de stock en POS no es compatible con la administración de lotes
    -CashDeskYouDidNotDisableStockDecease=No inhabilitó la disminución de stock al realizar una venta desde el punto de venta. Entonces se requiere un almacén.
     BookmarkSetup=Configuración del módulo marcador
    -BookmarkDesc=Este módulo te permite administrar marcadores. También puede agregar accesos directos a cualquier página de Dolibarr o sitios web externos en el menú de la izquierda.
     NbOfBoomarkToShow=Número máximo de marcadores para mostrar en el menú de la izquierda
     WebServicesSetup=Configuración del módulo de servicios web
     WebServicesDesc=Al habilitar este módulo, Dolibarr se convierte en un servidor de servicios web para proporcionar servicios web diversos.
    @@ -1220,7 +1004,6 @@ BankOrderESDesc=Orden de exhibición en español
     ChequeReceiptsNumberingModule=Compruebe el módulo de numeración de recibos
     MultiCompanySetup=Configuración de módulo multi-compañía
     SuppliersSetup=Configuración del módulo de proveedor
    -SuppliersCommandModel=Plantilla completa de orden de compra (logo ...)
     SuppliersInvoiceModel=Plantilla completa de la factura del proveedor (logotipo ...)
     SuppliersInvoiceNumberingModel=Modelos de numeración de facturas de proveedores
     IfSetToYesDontForgetPermission=Si se establece en sí, no se olvide de proporcionar permisos a los grupos o usuarios permitidos para la segunda aprobación
    @@ -1234,7 +1017,6 @@ ProjectsSetup=Configuración del módulo de proyecto
     ProjectsModelModule=Modelo de documento de informes de proyecto
     TasksNumberingModules=Módulo de numeración de tareas
     TaskModelModule=Tareas informa el modelo del documento
    -UseSearchToSelectProject=Espere a que presione una tecla antes de cargar el contenido de la lista combinada del proyecto (Esto puede aumentar el rendimiento si tiene una gran cantidad de proyectos, pero es menos conveniente)
     AccountingPeriodCard=Período contable
     NewFiscalYear=Nuevo período contable
     OpenFiscalYear=Período contable abierto
    @@ -1249,6 +1031,7 @@ NoAmbiCaracAutoGeneration=No utilice caracteres ambiguos ("1", "l", "i", "|", "0
     SalariesSetup=Configuración de los salarios del módulo
     SortOrder=Orden de clasificación
     Format=Formato
    +TypePaymentDesc=0: tipo de pago del cliente, 1: tipo de pago del proveedor, 2: tipo de pago de clientes y proveedores
     IncludePath=Incluir ruta (definida en la variable %s)
     ExpenseReportsSetup=Configuración del módulo Informes de gastos
     TemplatePDFExpenseReports=Plantillas de documentos para generar el documento de informe de gastos
    @@ -1258,8 +1041,6 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Puede encontrar opciones p
     ListOfNotificationsPerUser=Lista de notificaciones por usuario *
     ListOfNotificationsPerUserOrContact=Lista de notificaciones por usuario * o por contacto **
     ListOfFixedNotifications=Lista de notificaciones fijas
    -GoOntoUserCardToAddMore=Vaya a la pestaña "Notificaciones" de un usuario para agregar o eliminar notificaciones para los usuarios
    -GoOntoContactCardToAddMore=Vaya a la pestaña "Notificaciones" de un tercero para agregar o eliminar notificaciones de contactos/direcciones
     Threshold=Límite
     BackupDumpWizard=Asistente para compilar un archivo de volcado de copia de seguridad
     SomethingMakeInstallFromWebNotPossible=La instalación del módulo externo no es posible desde la interfaz web por el siguiente motivo:
    @@ -1281,15 +1062,12 @@ BackgroundTableLineEvenColor=Color de fondo para líneas de mesas uniformes
     MinimumNoticePeriod=Periodo de preaviso mínimo (Su solicitud de ausencia debe hacerse antes de este retraso)
     NbAddedAutomatically=Cantidad de días añadidos a los contadores de usuarios (automáticamente) cada mes
     EnterAnyCode=Este campo contiene una referencia para identificar la línea. Ingrese cualquier valor de su elección, pero sin caracteres especiales.
    -UnicodeCurrency=Ingrese aquí entre llaves, lista de números de bytes que representan el símbolo de moneda. Por ejemplo: para $, ingrese [36] - para Brasil real R $ [82,36] - para €, ingrese [8364]
     ColorFormat=El color RGB está en formato HEX, por ejemplo: FF0000
     PositionIntoComboList=Posición de la línea en listas combinadas
     SellTaxRate=Tasa de impuesto a la venta
     RecuperableOnly=Sí para el IVA "No percibido pero recuperable" dedicado para un estado en Francia. Mantenga el valor en "No" en todos los demás casos.
     UrlTrackingDesc=Si el proveedor o servicio de transporte ofrece una página o sitio web para verificar el estado de su envío, puede ingresarlo aquí. Puede usar la clave {TRACKID} en los parámetros de URL para que el sistema la reemplace con el valor del usuario del número de seguimiento ingresado en la tarjeta de envío.
    -OpportunityPercent=Cuando crea una oportunidad, definirá una cantidad estimada de proyecto / lead. De acuerdo con el estado de oportunidad, esta cantidad puede multiplicarse por esta tasa para evaluar la cantidad global que todas sus oportunidades pueden generar. El valor es por ciento (entre 0 y 100).
     TemplateForElement=Este registro de plantilla está dedicado a qué elemento
    -TemplateIsVisibleByOwnerOnly=La plantilla solo es visible por el propietario
     VisibleNowhere=Visible en ninguna parte
     FillFixTZOnlyIfRequired=Ejemplo: +2 (llenar solo si se experimentó un problema)
     ExpectedChecksum=Suma de comprobación esperada
    @@ -1306,10 +1084,7 @@ YouUseLastStableVersion=Usas la última versión estable
     TitleExampleForMajorRelease=Ejemplo de mensaje que puede usar para anunciar esta versión principal (no dude en utilizarla en sus sitios web)
     TitleExampleForMaintenanceRelease=Ejemplo de mensaje que puede usar para anunciar esta versión de mantenimiento (no dude en utilizarla en sus sitios web)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s está disponible. La versión %s es una versión importante con muchas características nuevas para usuarios y desarrolladores. Puede descargarlo desde el área de descarga del portal https://www.dolibarr.org (versiones estables del subdirectorio). Puede leer <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a> para obtener la lista completa de cambios.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s está disponible. La versión %s es una versión de mantenimiento, por lo que solo contiene correcciones de errores. Recomendamos a todos los que usen una versión anterior actualizar a esta. Como cualquier versión de mantenimiento, no hay nuevas características ni cambios en la estructura de datos en esta versión. Puede descargarlo desde el área de descarga del portal https://www.dolibarr.org (versiones estables del subdirectorio). Puede leer <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a> para obtener la lista completa de cambios.
    -MultiPriceRuleDesc=Cuando la opción "Varios niveles de precios por producto / servicio" está activada, puede definir diferentes precios (uno por nivel de precio) para cada producto. Para ahorrarle tiempo, puede ingresar aquí la regla para que el precio de cada nivel se calcule automáticamente según el precio del primer nivel, por lo que tendrá que ingresar solo el precio del primer nivel en cada producto. Esta página está aquí para ahorrarle tiempo y puede ser útil solo si sus precios para cada nivel son relativos al primer nivel. Puede ignorar esta página en la mayoría de los casos.
     ModelModulesProduct=Plantillas para documentos de productos
    -ToGenerateCodeDefineAutomaticRuleFirst=Para poder generar códigos automáticamente, primero debe definir un administrador para definir automáticamente el número de código de barras.
     SeeSubstitutionVars=Ver * nota para la lista de posibles variables de sustitución
     AllPublishers=Todos los editores
     AddRemoveTabs=Agregar o eliminar pestañas
    @@ -1328,21 +1103,12 @@ AddOtherPagesOrServices=Agregar otras páginas o servicios
     AddModels=Agregar documento o plantillas de numeración
     AddSubstitutions=Añadir sustituciones de teclas
     DetectionNotPossible=La detección no es posible
    -UrlToGetKeyToUseAPIs=URL para obtener token para utilizar API (una vez que se ha recibido el token, se guarda en la tabla de usuario de la base de datos y se debe proporcionar en cada llamada de API)
     ListOfAvailableAPIs=Lista de API disponibles
    -activateModuleDependNotSatisfied=El módulo "%s" depende del módulo "%s" que falta, por lo que el módulo "%1$s" puede no funcionar correctamente. Instale el módulo "%2$s" o deshabilite el módulo "%1$s" si quiere estar a salvo de cualquier sorpresa
    -CommandIsNotInsideAllowedCommands=El comando que intenta ejecutar no está dentro de la lista de comandos permitidos definidos en el parámetro <strong>$dolibarr_main_restrict_os_commands</strong> en el archivo <strong>conf.php</strong>.
     LandingPage=Página de destino
    -SamePriceAlsoForSharedCompanies=Si utiliza un módulo multicompañía, con la opción "precio único", el precio también será el mismo para todas las empresas si los productos se comparten entre entornos
     ModuleEnabledAdminMustCheckRights=Módulo ha sido activado. Los permisos para los módulos activados se otorgaron solo a los usuarios administradores. Es posible que deba otorgar permisos a otros usuarios o grupos manualmente si es necesario.
    -UserHasNoPermissions=Este usuario no tiene permiso definido
    -TypeCdr=Use "Ninguno" si la fecha del plazo de pago es la fecha de la factura más un delta en días (delta es el campo "N° de días") <br> Utilice "Al final del mes" si, después del delta, la fecha debe aumentarse para llegar al final del mes (+ un "Offset" opcional en días) <br> Utilice "Current / Next" para que la fecha del plazo de pago sea la primera Nth del mes (N se almacena en el campo "N° of days")
     BaseCurrency=Moneda de referencia de la empresa (entre en la configuración de la empresa para cambiar esto)
    -WarningNoteModulePOSForFrenchLaw=Este módulo %s cumple con las leyes francesas (Loi Finance 2016) porque el módulo Registros no reversibles se activa automáticamente.
    -WarningInstallationMayBecomeNotCompliantWithLaw=Intenta instalar el módulo %s que es un módulo externo. Activar un módulo externo significa que confía en el editor del módulo y está seguro de que este módulo no altera negativamente el comportamiento de su aplicación y cumple con las leyes de su país (%s). Si el módulo trae una característica no legal, usted se convierte en responsable del uso de un software no legal.
     SetToYesIfGroupIsComputationOfOtherGroups=Establezca esto en sí si este grupo es un cálculo de otros grupos
     SeveralLangugeVariatFound=Varias variantes de lenguaje encontradas
    -GDPRContactDesc=Si almacena datos sobre empresas / ciudadanos europeos, puede almacenar aquí el contacto responsable del Reglamento general de protección de datos
     ResourceSetup=Recurso de configuración del módulo
     UseSearchToSelectResource=Use un formulario de búsqueda para elegir un recurso (en lugar de una lista desplegable).
     DisabledResourceLinkUser=Deshabilitar característica para vincular un recurso a los usuarios
    diff --git a/htdocs/langs/es_CL/agenda.lang b/htdocs/langs/es_CL/agenda.lang
    index e77382bd868..e16e293a8d9 100644
    --- a/htdocs/langs/es_CL/agenda.lang
    +++ b/htdocs/langs/es_CL/agenda.lang
    @@ -52,7 +52,6 @@ SupplierOrderSentByEMail=Pedido del proveedor %s enviado por EMail
     SupplierInvoiceSentByEMail=Factura del proveedor %s enviado por EMail
     ShippingSentByEMail=Envío %s enviado por EMail
     ShippingValidated=Envío %s validado
    -InterventionSentByEMail=Intervención %s enviado por EMail
     ProposalDeleted=Propuesta eliminada
     OrderDeleted=Orden eliminada
     InvoiceDeleted=Factura borrada
    diff --git a/htdocs/langs/es_CL/banks.lang b/htdocs/langs/es_CL/banks.lang
    index 0737ac77fb4..cd9413f895f 100644
    --- a/htdocs/langs/es_CL/banks.lang
    +++ b/htdocs/langs/es_CL/banks.lang
    @@ -1,9 +1,9 @@
     # Dolibarr language file - Source file is en_US - banks
    +MenuBankCash=Banco | Efectivo
     MenuVariousPayment=Pagos diversos
     MenuNewVariousPayment=Nuevo pago misceláneo
     BankAccount=cuenta bancaria
     BankAccounts=Cuentas bancarias
    -BankAccountsAndGateways=Cuentas bancarias | Puertas de enlace
     AccountRef=Ref de cuenta financiera
     AccountLabel=Etiqueta de cuenta financiera
     CashAccount=Cuenta de efectivo
    @@ -28,7 +28,6 @@ AccountStatementShort=Declaración
     AccountStatements=Estados de cuenta
     LastAccountStatements=Últimos estados de cuenta
     IOMonthlyReporting=Informes mensuales
    -RIBControlError=La verificación de integridad de los valores falla. Esto significa que la información para este número de cuenta no está completa o es incorrecta (ver país, números e IBAN).
     CreateAccount=Crear una cuenta
     MenuNewFinancialAccount=Nueva cuenta financiera
     EditFinancialAccount=Editar cuenta
    @@ -66,13 +65,11 @@ AddBankRecord=Añadir entrada
     AddBankRecordLong=Agregar entrada manualmente
     DateConciliating=Fecha de conciliación
     BankLineConciliated=Entrada reconciliada
    -CustomerInvoicePayment=Pago del Cliente
     SupplierInvoicePayment=Pago del proveedor
     WithdrawalPayment=Pago de retiros
     SocialContributionPayment=Pago de impuestos sociales/fiscales
     BankTransfer=transferencia bancaria
     BankTransfers=transferencias bancarias
    -TransferDesc=Transferencia de una cuenta a otra, Dolibarr escribirá dos registros (un débito en la cuenta de origen y un crédito en la cuenta de destino. Se usará la misma cantidad (excepto el signo), la etiqueta y la fecha para esta transacción)
     TransferTo=A
     TransferFromToDone=Una transferencia de <b>%s</b> a <b>%s</b> de <b>%s</b> %s ha sido grabada.
     CheckTransmitter=Transmisor
    @@ -83,7 +80,6 @@ ConfirmDeleteCheckReceipt=¿Seguro que quieres eliminar este recibo de cheque?
     BankChecks=Cheques bancarios
     BankChecksToReceipt=Cheques en espera de depósito
     ShowCheckReceipt=Mostrar recibo de depósito de cheques
    -NumberOfCheques=N° de cheque
     DeleteTransaction=Eliminar la entrada
     ConfirmDeleteTransaction=¿Seguro que quieres eliminar esta entrada?
     ThisWillAlsoDeleteBankRecord=Esto también eliminará la entrada bancaria generada
    @@ -97,8 +93,7 @@ PaymentDateUpdateSucceeded=Fecha de pago actualizada con éxito
     PaymentDateUpdateFailed=La fecha de pago no se pudo actualizar
     Transactions=Actas
     BankTransactionLine=Entrada bancaria
    -FutureTransaction=Transacción en futur. No hay manera de conciliar.
    -SelectChequeTransactionAndGenerate=Seleccione / filtro de cheques para incluir en el recibo de depósito de cheque y haga clic en "Crear".
    +AllAccounts=Todas las cuentas bancarias y de efectivo
     InputReceiptNumber=Elija el extracto bancario relacionado con la conciliación. Use un valor numérico ordenable: AAAAMM o AAAAMMDD
     EventualyAddCategory=Eventualmente, especifique una categoría en la cual clasificar los registros
     ToConciliate=¿Para reconciliar?
    @@ -110,12 +105,11 @@ ConfirmDeleteRib=¿Seguro que quieres eliminar este registro de BAN?
     ConfirmRejectCheck=¿Seguro que quieres marcar este cheque como rechazado?
     RejectCheckDate=Fecha en que se devolvió el cheque
     BankAccountModelModule=Plantillas de documentos para cuentas bancarias
    -DocumentModelSepaMandate=Plantilla del mandato SEPA. Útil para países europeos en EEC solamente.
     DocumentModelBan=Plantilla para imprimir una página con información de BAN.
     NewVariousPayment=Nuevos pagos misceláneos
     VariousPayment=Pagos diversos
     VariousPayments=Pagos diversos
     ShowVariousPayment=Mostrar pagos diversos
     AddVariousPayment=Agregar pagos diversos
    +SEPAMandate=Mandato de la SEPA
     YourSEPAMandate=Su mandato de SEPA
    -FindYourSEPAMandate=Este es su mandato de SEPA para autorizar a nuestra empresa a realizar un pedido de débito directo a su banco. Gracias a devolverlo firmado (escaneo del documento firmado) o enviado por correo a
    diff --git a/htdocs/langs/es_CL/bills.lang b/htdocs/langs/es_CL/bills.lang
    index 60c7428c075..e1da06b40d4 100644
    --- a/htdocs/langs/es_CL/bills.lang
    +++ b/htdocs/langs/es_CL/bills.lang
    @@ -230,8 +230,6 @@ AddCreditNote=Crear nota de crédito
     ShowDiscount=Mostrar descuento
     ShowReduc=Muestra la deducción
     GlobalDiscount=Descuento global
    -CreditNote=Nota de crédito
    -CreditNotes=Notas de crédito
     Deposit=Pago inicial
     Deposits=Bajo pago
     DiscountFromCreditNote=Descuento de la nota de crédito %s
    @@ -256,7 +254,6 @@ IdSocialContribution=Identificación de pago de impuesto social / fiscal
     PaymentId=Identificación de pago
     PaymentRef=Pago ref.
     InvoiceId=Id de factura
    -InvoiceRef=Factura ref.
     InvoiceDateCreation=Fecha de creación de la factura
     InvoiceStatus=Estado de la factura
     InvoiceNote=Nota de factura
    @@ -325,8 +322,6 @@ PaymentTypeShortPRE=Orden de pago de débito
     PaymentTypeCB=Tarjeta de crédito
     PaymentTypeShortCB=Tarjeta de crédito
     PaymentTypeTIP=TIP (Documentos contra pago)
    -PaymentTypeVAD=Pago en línea
    -PaymentTypeShortVAD=Pago en línea
     PaymentTypeTRA=giro bancario
     BankDetails=Detalles del banco
     BankCode=codigo bancario
    diff --git a/htdocs/langs/es_CL/companies.lang b/htdocs/langs/es_CL/companies.lang
    index 81b3e831919..ad25154bf97 100644
    --- a/htdocs/langs/es_CL/companies.lang
    +++ b/htdocs/langs/es_CL/companies.lang
    @@ -5,11 +5,8 @@ SelectThirdParty=Seleccione un tercero
     ConfirmDeleteCompany=¿Está seguro de que desea eliminar esta empresa y toda la información heredada?
     DeleteContact=Eliminar un contacto/dirección
     ConfirmDeleteContact=¿Está seguro de que desea eliminar este contacto y toda la información heredada?
    -MenuNewProspect=Nuevo prospecto
    -MenuNewSupplier=Nuevo vendedor
     MenuNewPrivateIndividual=Nueva privada individual
     NewCompany=Nueva compañía (prospecto, cliente, vendedor)
    -NewThirdParty=Nuevo tercero (prospecto, cliente, proveedor)
     CreateDolibarrThirdPartySupplier=Crear un tercero (vendedor)
     CreateThirdPartyOnly=Crear un tercero
     CreateThirdPartyAndContact=Crear un tercero + un contacto infantil
    @@ -21,17 +18,13 @@ Contacts=Contactos/Direcciones
     ThirdPartyContacts=Contactos de terceros
     ThirdPartyContact=Contacto / dirección de terceros
     AliasNames=Nombre de alias (comercial, marca registrada, ...)
    -AliasNameShort=Alias
     Companies=Compañías
    -CountryIsInEEC=El país está dentro de la Comunidad Económica Europea
    -ThirdPartyName=Nombre de tercero
     ThirdPartyEmail=Correo electrónico de terceros
     ThirdPartyProspects=Perspectivas
     ThirdPartyProspectsStats=Perspectivas
     ThirdPartyCustomersWithIdProf12=Clientes con %s o %s
     ThirdPartySuppliers=Vendedores
     Individual=Individuo privado
    -ToCreateContactWithSameName=Creará automáticamente un contacto / dirección con la misma información que un tercero bajo el tercero. En la mayoría de los casos, incluso si su tercero es una persona física, crear un tercero solo es suficiente.
     ParentCompany=Empresa matriz
     Subsidiaries=Subsidiarias
     CivilityCode=Código de civilidad
    @@ -47,9 +40,9 @@ PhonePerso=Pers. teléfono
     No_Email=Rechazar correos electrónicos masivos
     Town=Ciudad
     Poste=Posición
    -VATIsUsed=Impuesto a las ventas se utiliza
     VATIsNotUsed=Impuesto a las ventas no se utiliza
     CopyAddressFromSoc=Rellenar dirección con dirección de tercero
    +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Tercero, ni cliente ni proveedor, los descuentos no están disponibles
     OverAllProposals=Cotizaciones
     OverAllSupplierProposals=Peticiones de precio
     LocalTax1IsUsed=Use el segundo impuesto
    @@ -86,12 +79,10 @@ ProfId4PT=Prof Id 4 (Conservatorio)
     ProfId2TN=Prof Id 2 (matrícula fiscal)
     ProfId3TN=Prof Id 3 (código de Douane)
     ProfId1US=Id del profesor (FEIN)
    -VATIntra=ID de impuesto a las ventas
     VATIntraShort=Identificación del impuesto
     VATIntraSyntaxIsValid=La sintaxis es valida
     VATReturn=Devolución del IVA
     ProspectCustomer=Prospecto/Cliente
    -Prospect=Prospectar
     CustomerCard=Tarjeta Cliente
     CustomerRelativeDiscount=Descuento relativo del cliente
     SupplierRelativeDiscount=Descuento relativo del vendedor
    @@ -99,8 +90,6 @@ CustomerAbsoluteDiscountShort=Descuento absoluto
     CompanyHasNoRelativeDiscount=Este cliente no tiene descuento relativo por defecto
     HasRelativeDiscountFromSupplier=Tiene un descuento predeterminado de <b> %s%% </ b> de este proveedor
     HasNoRelativeDiscountFromSupplier=No tiene descuento relativo predeterminado de este proveedor
    -CompanyHasAbsoluteDiscount=Este cliente tiene descuento disponible (notas de crédito o pagos anticipados) por <b>%s</b>%s
    -CompanyHasDownPaymentOrCommercialDiscount=Este cliente tiene descuento disponible (pagos iniciales, comerciales) para <b>%s</b>%s
     CompanyHasCreditNote=Este cliente todavía tiene notas de crédito por <b>%s</b>%s
     HasNoAbsoluteDiscountFromSupplier=No tiene crédito de descuento disponible de este proveedor
     HasAbsoluteDiscountFromSupplier=Tiene descuentos disponibles (notas de créditos o anticipos) para <b> %s </ b> %s de este proveedor
    @@ -109,6 +98,8 @@ HasCreditNoteFromSupplier=Tiene notas de crédito para <b> %s </ b> %s de este p
     CompanyHasNoAbsoluteDiscount=Este cliente no tiene crédito de descuento disponible
     CustomerAbsoluteDiscountAllUsers=Descuentos absolutos de clientes (concedidos por todos los usuarios)
     CustomerAbsoluteDiscountMy=Descuentos absolutos de clientes (otorgados por usted)
    +SupplierAbsoluteDiscountAllUsers=Descuentos absolutos de proveedores (ingresados ​​por todos los usuarios)
    +SupplierAbsoluteDiscountMy=Descuentos absolutos de proveedores (ingresados ​​por usted mismo)
     AddContactAddress=Crear contacto / dirección
     EditContactAddress=Editar contacto / dirección
     ContactId=ID de contacto
    @@ -116,22 +107,12 @@ NoContactDefinedForThirdParty=Sin contacto definido para este tercero
     NoContactDefined=Sin contacto definido
     DefaultContact=Contacto / dirección predeterminados
     AddThirdParty=Crear un tercero
    -CustomerCode=Código de cliente
    -SupplierCode=Código de proveedor
    -CustomerCodeShort=Código de cliente
    -SupplierCodeShort=Código de proveedor
    -CustomerCodeDesc=Código de cliente, único para todos los clientes
    -SupplierCodeDesc=Código de proveedor, único para todos los proveedores
     RequiredIfCustomer=Obligatorio si un tercero es un cliente o prospecto
     RequiredIfSupplier=Requerido si un tercero es un vendedor
    -ValidityControledByModule=Validez controlada por módulo
    -ThisIsModuleRules=Estas son las reglas para este módulo
     ProspectToContact=Perspectiva de contactar
     CompanyDeleted=La compañía "%s" eliminada de la base de datos.
     ListOfContacts=Lista de contactos/direcciones
     ListOfContactsAddresses=Lista de contactos/direcciones
    -ListOfThirdParties=Lista de terceros
    -ShowCompany=Mostrar un tercero
     ContactsAllShort=Todo (Sin filtro)
     ContactType=Tipo de Contacto
     ContactForOrders=Contacto de la orden
    @@ -145,13 +126,8 @@ NoContactForAnyProposal=Este contacto no es contacto de ninguna cotización
     NoContactForAnyContract=Este contacto no es un contacto para ningún contrato
     NoContactForAnyInvoice=Este contacto no es un contacto para ninguna factura
     EditCompany=Editar empresa
    -ThisUserIsNot=Este usuario no es un cliente potencial, ni un proveedor
     VATIntraCheck=Cheque
    -VATIntraCheckDesc=El enlace <b>%s</b> permite preguntar al servicio europeo de verificación de IVA. Se requiere un acceso externo a Internet desde el servidor para que este servicio funcione.
    -VATIntraCheckableOnEUSite=Consultar el IVA intracomunitario en el sitio de la comisión europea
    -VATIntraManualCheck=También puede verificar manualmente desde el sitio web europeo <a href="%s" target="_blank"> %s </a>
     ErrorVATCheckMS_UNAVAILABLE=No es posible comprobar. El servicio de verificación no proporcionado por el estado miembro  (%s).
    -NorProspectNorCustomer=Ni prospecto, ni cliente
     Staff=Personal
     ProspectLevel=Potencial prospectivo
     OthersNotLinkedToThirdParty=Otros, no vinculados a un tercero
    @@ -177,25 +153,14 @@ ExportCardToFormat=Exportar la tarjeta al formato
     ContactNotLinkedToCompany=Contacto no vinculado a ningún tercero
     DolibarrLogin=Ingreso Dolibbarr
     NoDolibarrAccess=Sin acceso a Dolibarr
    -ExportDataset_company_1=Terceros (Empresas / fundaciones / personas físicas) y propiedades
    -ExportDataset_company_2=Contactos y propiedades
    -ImportDataset_company_1=Terceros (Empresas / fundaciones / personas físicas) y propiedades
    -ImportDataset_company_2=Contactos / Direcciones (de terceros o no) y atributos
    -ImportDataset_company_4=Terceros / representantes de ventas (asignar usuarios de representantes de ventas a las empresas)
     DeliveryAddress=Dirección de entrega
     SupplierCategory=Categoría del vendedor
     DeleteFile=Borrar archivo
     ConfirmDeleteFile=¿Seguro que quieres eliminar este archivo?
     AllocateCommercial=Asignado al representante de ventas
     Organization=Organización
    -FiscalYearInformation=Información sobre el año fiscal
     FiscalMonthStart=Mes de inicio del año fiscal
    -YouMustAssignUserMailFirst=Primero debe crear un correo electrónico para este usuario para poder agregar notificaciones de correos electrónicos para él.
     YouMustCreateContactFirst=Para poder agregar notificaciones por correo electrónico, primero debe definir contactos con correos electrónicos válidos para el tercero
    -ListSuppliersShort=Lista de proveedores
    -ListProspectsShort=Lista de prospectos
    -ListCustomersShort=Lista de clientes
    -ThirdPartiesArea=Terceros y área de contacto
     InActivity=Abierto
     ThirdPartyIsClosed=Tercero está cerrado
     ProductsIntoElements=Lista de productos / servicios en %s
    @@ -203,14 +168,11 @@ CurrentOutstandingBill=Factura pendiente actual
     OutstandingBill=Max. por factura pendiente
     OutstandingBillReached=Max. por la factura pendiente alcanzado
     OrderMinAmount=Monto mínimo para la orden
    -MonkeyNumRefModelDesc=Devuelva el número con el formato %syymm-nnnn para el código del cliente y %syymm-nnnn para el código del proveedor donde yy es año, mm es mes y nnnn es una secuencia sin interrupción y sin retorno a 0.
     LeopardNumRefModelDesc=El código es libre. Este código se puede modificar en cualquier momento.
     ManagingDirectors=Nombre del gerente (CEO, director, presidente ...)
     MergeOriginThirdparty=Tercero duplicado (tercero que desea eliminar)
    -ConfirmMergeThirdparties=¿Estás seguro de que deseas fusionar a este tercero en el actual? Todos los objetos vinculados (facturas, pedidos, ...) se moverán al tercero actual, luego se eliminará el tercero.
     ThirdpartiesMergeSuccess=Los terceros se han fusionado
     SaleRepresentativeLogin=Inicio de sesión del representante de ventas
     SaleRepresentativeFirstname=Nombre del representante de ventas
     SaleRepresentativeLastname=Apellido del representante de ventas
     ErrorThirdpartiesMerge=Hubo un error al eliminar los terceros. Por favor revise el registro. Los cambios han sido revertidos.
    -NewCustomerSupplierCodeProposed=Nuevo código de cliente o proveedor sugerido en código duplicado
    diff --git a/htdocs/langs/es_CL/interventions.lang b/htdocs/langs/es_CL/interventions.lang
    index c9f94d2bd0b..0456e818956 100644
    --- a/htdocs/langs/es_CL/interventions.lang
    +++ b/htdocs/langs/es_CL/interventions.lang
    @@ -34,8 +34,6 @@ TypeContact_fichinter_external_CUSTOMER=Seguimiento de contacto con el cliente
     PrintProductsOnFichinter=Imprima también líneas de tipo "producto" (no solo servicios) en la tarjeta de intervención
     PrintProductsOnFichinterDetails=intervenciones generadas a partir de órdenes
     UseServicesDurationOnFichinter=Usar la duración de los servicios para las intervenciones generadas a partir de órdenes
    -NbOfinterventions=N° de tarjetas de intervención
    -NumberOfInterventionsByMonth=Número de tarjetas de intervención por mes (fecha de validación)
     AmountOfInteventionNotIncludedByDefault=La cantidad de intervención no se incluye por defecto en los beneficios (en la mayoría de los casos, las hojas de tiempo se utilizan para contar el tiempo invertido). Agregue la opción PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT a 1 en home-setup-other para incluirlos.
     InterId=Id de intervención
     InterRef=Intervención ref.
    diff --git a/htdocs/langs/es_CL/main.lang b/htdocs/langs/es_CL/main.lang
    index 6c2991575d2..9bb6dd7f295 100644
    --- a/htdocs/langs/es_CL/main.lang
    +++ b/htdocs/langs/es_CL/main.lang
    @@ -36,20 +36,13 @@ ErrorGoToModuleSetup=Ir a la configuración del módulo para arreglar esto
     ErrorFailedToSendMail=Error al enviar el correo (remitente = %s, receptor = %s)
     ErrorFileNotUploaded=El archivo no fue cargado. Compruebe que el tamaño no exceda el máximo permitido, que el espacio libre esté disponible en el disco y que no haya un archivo con el mismo nombre en este directorio.
     ErrorWrongHostParameter=Parámetro de host incorrecto
    -ErrorYourCountryIsNotDefined=Tu país no está definido. Vaya a Inicio-Configuración-Editar y publique nuevamente el formulario.
    -ErrorRecordIsUsedByChild=Error al eliminar este registro Este registro es utilizado por al menos un registro de niño.
     ErrorWrongValueForParameterX=Valor incorrecto para el parámetro %s
     ErrorNoRequestInError=Sin solicitud por error
    -ErrorServiceUnavailableTryLater=Servicio no disponible por el momento. Inténtalo más tarde.
     ErrorDuplicateField=Duplicar valor en un campo único
    -ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Revertimos los cambios.
    -ErrorConfigParameterNotDefined=El parámetro <b>%s</b> no está definido en el archivo de configuración <b>conf.php</b> Dolibarr.
     ErrorCantLoadUserFromDolibarrDatabase=Falló al encontrar el usuario <b>%s</b> en la base de datos Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Error, sin tasas de IVA definidas para el país '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, ningún tipo de impuestos sociales/fiscales definidos para el país '%s'.
     ErrorFailedToSaveFile=Error, no se pudo guardar el archivo.
    -ErrorCannotAddThisParentWarehouse=Está intentando agregar un almacén principal que ya es hijo de uno actual
    -MaxNbOfRecordPerPage=Número máximo de registro por página
     NotAuthorized=Usted no está autorizado a hacer eso.
     SetDate=Establece la fecha
     SeeAlso=Véase también %s
    @@ -61,10 +54,8 @@ FileRenamed=El archivo fue renombrado con éxito
     FileGenerated=El archivo fue generado con éxito
     FileSaved=El archivo se guardó con éxito
     FileUploaded=El archivo se cargó correctamente
    -FileTransferComplete=Archivo (s) fue cargado con éxito
     FilesDeleted=Archivo eliminado con éxito
     FileWasNotUploaded=Se seleccionó un archivo para el archivo adjunto pero aún no se cargó. Haga clic en "Adjuntar archivo" para esto.
    -NbOfEntries=N de entradas
     GoToWikiHelpPage=Lea la ayuda en línea (se necesita acceso a Internet)
     GoToHelpPage=Leer la ayuda
     RecordDeleted=Registro borrado
    @@ -72,8 +63,8 @@ LevelOfFeature=Nivel de características
     DolibarrInHttpAuthenticationSoPasswordUseless=El modo de autenticación Dolibarr está configurado en <b>%s</b> en el archivo de configuración <b>conf.php</b>.<br> Esto significa que la base de datos de contraseñas es externa a Dolibarr, por lo que cambiar este campo puede no tener efecto.
     Undefined=Indefinido
     PasswordForgotten=¿Contraseña olvidada?
    +NoAccount=Sin cuenta?
     SeeAbove=Véase más arriba
    -HomeArea=Área de inicio
     PreviousConnexion=Conexión previa
     PreviousValue=Valor anterior
     ConnectedOnMultiCompany=Conectado al entorno
    @@ -101,7 +92,6 @@ AddLink=Agregar enlace
     AddToDraft=Agregar al borrador
     Update=Actualizar
     CloseBox=Retire el widget de su tablero de instrumentos
    -ConfirmSendCardByMail=¿Realmente quieres mandar el contenido de esta tarjeta al email <b>%s</b>?
     Delete=Borrar
     Remove=retirar
     Resiliate=Terminar
    @@ -168,7 +158,6 @@ Mb=megabyte
     Tb=Tuberculosis
     Copy=Dupdo
     Default=Defecto
    -DefaultValues=Valores predeterminados
     UnitPriceHT=Precio unitario (neto)
     UnitPriceHTCurrency=Precio unitario (neto) (moneda)
     UnitPriceTTC=Precio unitario
    @@ -185,7 +174,6 @@ AmountTTCShort=Monto (IVA inc.)
     AmountHT=Monto (neto de impuestos)
     AmountTTC=Monto (impuesto inc.)
     AmountVAT=IVA
    -MulticurrencyAlreadyPaid=Ya pagó, moneda original
     MulticurrencyRemainderToPay=Permanecer en el pago, moneda original
     MulticurrencyPaymentAmount=Importe del pago, moneda original
     MulticurrencyAmountHT=Importe (neto de impuestos), moneda original
    @@ -231,7 +219,7 @@ Module=Módulo / Aplicación
     Modules=Módulos / Aplicaciones
     FullList=Lista llena
     ExternalRef=Ref. externo
    -RefSupplier=Árbitro. vendedor
    +RefSupplier=Ref. vendedor
     CommercialProposalsShort=Cotizaciones
     ActionsToDo=Eventos para hacer
     ActionsToDoShort=Que hacer
    @@ -252,8 +240,6 @@ Filter=Filtrar
     FilterOnInto=Criterio de búsqueda '<strong>%s</strong>' en los campos %s
     ChartGenerated=Gráfico generado
     GeneratedOn=Construir en %s
    -DolibarrStateBoard=Estadísticas en Base de Datos
    -DolibarrWorkBoard=Tablero de items pendientes
     NoOpenedElementToProcess=Sin elemento abierto para procesar
     NotYetAvailable=No disponible aún
     Categories=Etiquetas / categorías
    @@ -273,7 +259,7 @@ Preview=Previsualizar
     NextStep=Próximo paso
     None=Ninguna
     Late=Tarde
    -LateDesc=Demora para definir si un registro está retrasado o no depende de su configuración. Pídale a su administrador que cambie la demora desde el menú Inicio - Configuración - Alertas.
    +NoItemLate=No hay artículo tarde
     Photo=Imagen
     Photos=Imágenes
     ConfirmDeletePicture=Confirmar eliminación de imagen?
    @@ -284,7 +270,6 @@ CurrentLogin=Inicio de sesión actual
     EnterLoginDetail=Ingrese los detalles de inicio
     May=Mayo
     December=diciembre
    -MayMin=Mayo
     Month05=Mayo
     MonthShort01=Ene
     MonthShort04=Abr
    @@ -350,7 +335,6 @@ Receive=Recibir
     CompleteOrNoMoreReceptionExpected=Completo o nada más esperado
     YouCanChangeValuesForThisListFromDictionarySetup=Puede cambiar los valores para esta lista desde el menú Configuración - Diccionarios
     YouCanChangeValuesForThisListFrom=Puede cambiar los valores para esta lista desde el menú %s
    -YouCanSetDefaultValueInModuleSetup=Puede establecer el valor predeterminado utilizado al crear un nuevo registro en la configuración del módulo
     Documents=Archivos
     UploadDisabled=Carga inhabilitada
     MenuAgendaGoogle=Agenda de Google
    @@ -361,7 +345,6 @@ Layout=Diseño
     For=por
     ForCustomer=Para el cliente
     UnHidePassword=Mostrar comando real con contraseña clara
    -Informations=Informaciones
     AddNewLine=Agregar nueva línea
     AddFile=Agregar archivo
     FreeZone=No es un producto / servicio predefinido
    @@ -371,11 +354,8 @@ Merge=Unir
     DocumentModelStandardPDF=Plantilla PDF estándar
     PrintContentArea=Mostrar página para imprimir área de contenido principal
     MenuManager=Administrador de menú
    -WarningYouAreInMaintenanceMode=Advertencia, se encuentra en modo de mantenimiento, por lo que solo se puede iniciar sesión con <b>%s</b> en este momento.
     CoreErrorMessage=Disculpe, ocurrió un error. Póngase en contacto con el administrador del sistema para verificar los registros o deshabilitar $ dolibarr_main_prod = 1 para obtener más información.
     FieldsWithAreMandatory=Campos con <b>%s</b> son obligatorios
    -FieldsWithIsForPublic=Los campos con <b>%s</b> se muestran en la lista pública de miembros. Si no quiere esto, no marque la casilla "pública".
    -AccordingToGeoIPDatabase=(según la conversión GeoIP)
     RequiredField=campo requerido
     ToTest=Prueba
     ValidateBefore=La tarjeta debe ser validada antes de usar esta característica
    @@ -404,7 +384,6 @@ ByTown=Por la ciudad
     BySalesRepresentative=Por representante de ventas
     LinkedToSpecificUsers=Vinculado a un contacto de usuario particular
     NoResults=No hay resultados
    -AdminTools=Herramientas de administración
     SystemTools=Herramientas del sistema
     ModulesSystemTools=Herramientas de módulos
     NoPhotoYet=No hay fotos disponibles todavía
    @@ -420,7 +399,6 @@ AddBox=Agregar caja
     SelectElementAndClick=Seleccione un elemento y haga clic en %s
     PrintFile=Imprimir archivo %s
     ShowTransaction=Mostrar entrada en cuenta bancaria
    -GoIntoSetupToChangeLogo=Vaya a Inicio - Configuración - Compañía para cambiar el logotipo o vaya a Inicio - Configuración - Pantalla para ocultar.
     Deny=Negar
     Denied=Negado
     ListOfTemplates=Lista de plantillas
    @@ -430,11 +408,8 @@ Sincerely=Sinceramente
     DeleteLine=Eliminar línea
     ConfirmDeleteLine=¿Estás seguro de que deseas eliminar esta línea?
     NoPDFAvailableForDocGenAmongChecked=No hay PDF disponible para la generación de documentos entre el registro verificado
    -TooManyRecordForMassAction=Demasiados registros seleccionados para acción masiva. La acción está restringida a una lista de %s registro.
     NoRecordSelected=Ningún registro seleccionado
     MassFilesArea=Área para archivos creados por acciones masivas
    -ConfirmMassDeletion=Confirmación de eliminación masiva
    -ConfirmMassDeletionQuestion=¿Seguro que quieres eliminar el registro %s seleccionado?
     ClassifyBilled=Clasificar pago
     ClassifyUnbilled=Clasificar sin facturar
     FrontOffice=Oficina frontal
    @@ -443,7 +418,6 @@ ExportList=Lista de exportación
     Miscellaneous=Diverso
     GroupBy=Agrupar por...
     RemoveString=Eliminar la cadena '%s'
    -SomeTranslationAreUncomplete=Algunos idiomas pueden traducirse parcialmente o contener errores. Si detecta alguno, puede corregir los archivos de idioma que se registran en <a href="https://transifex.com/projects/p/dolibarr/" target="_blank"> https://transifex.com/projects/p/ dolibarr / </a>.
     DirectDownloadLink=Enlace de descarga directa (público / externo)
     DirectDownloadInternalLink=Enlace de descarga directa (debe registrarse y necesita permisos)
     DownloadDocument=Descargar documento
    @@ -455,10 +429,7 @@ ExpenseReports=Reporte de gastos
     HR=HORA
     HRAndBank=Recursos Humanos y Banco
     TitleSetToDraft=Volver al borrador
    -ConfirmSetToDraft=¿Estás seguro de que quieres volver al estado de Borrador?
     ImportId=Importar identificación
    -EMailTemplates=Plantillas de correos electrónicos
    -FileNotShared=Archivo no compartido para el público externo
     LineNb=Line no
     Monday=lunes
     Tuesday=martes
    @@ -466,8 +437,6 @@ Thursday=jueves
     Friday=viernes
     Saturday=sábado
     Sunday=domingo
    -MondayMin=Mes
    -WednesdayMin=Nosotros
     Day1=lunes
     Day2=martes
     Day4=jueves
    @@ -491,9 +460,7 @@ SearchIntoCustomerProposals=Propuestas de clientes
     SearchIntoSupplierProposals=Propuestas del vendedor
     SearchIntoCustomerShipments=Envíos de clientes
     SearchIntoExpenseReports=Reporte de gastos
    -SearchIntoLeaves=Vacaciones
     NbComments=Numero de comentarios
     CommentAdded=Comentario agregado
     Everybody=Todos
     AssignedTo=Asignado a
    -ConfirmMassDraftDeletion=Borrador de confirmación de eliminación masiva
    diff --git a/htdocs/langs/es_CL/members.lang b/htdocs/langs/es_CL/members.lang
    index e9de73ff99f..974e25135ed 100644
    --- a/htdocs/langs/es_CL/members.lang
    +++ b/htdocs/langs/es_CL/members.lang
    @@ -144,7 +144,6 @@ MembersByNature=Esta pantalla muestra estadísticas de los miembros por naturale
     MembersByRegion=Esta pantalla muestra estadísticas de los miembros por región.
     VATToUseForSubscriptions=Tipo de IVA para suscripciones
     NoVatOnSubscription=Sin TVA para suscripciones
    -MEMBER_PAYONLINE_SENDEMAIL=Correo electrónico a utilizar para recibir una advertencia por correo electrónico cuando Dolibarr reciba una confirmación de un pago validado para una suscripción (Ejemplo: paymentdone@example.com)
     ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Producto utilizado para la línea de suscripción en la factura: %s
     SubscriptionRecorded=Suscripción grabada
     NoEmailSentToMember=No se envió ningún correo electrónico al miembro
    diff --git a/htdocs/langs/es_CL/orders.lang b/htdocs/langs/es_CL/orders.lang
    index a151781cc48..d83a1561aa4 100644
    --- a/htdocs/langs/es_CL/orders.lang
    +++ b/htdocs/langs/es_CL/orders.lang
    @@ -56,7 +56,6 @@ AddToDraftOrders=Añadir a orden de borrador
     OrdersOpened=Órdenes para procesar
     NoDraftOrders=No hay borradores de pedidos
     NoOrder=Sin orden
    -NoSupplierOrder=Sin orden de compra
     LastOrders=Últimas %s pedidos de clientes
     LastCustomerOrders=Últimas %s pedidos de clientes
     LastSupplierOrders=Últimas %s órdenes de compra
    diff --git a/htdocs/langs/es_CL/other.lang b/htdocs/langs/es_CL/other.lang
    index 4f83154f0ca..de6d52694bf 100644
    --- a/htdocs/langs/es_CL/other.lang
    +++ b/htdocs/langs/es_CL/other.lang
    @@ -3,7 +3,6 @@ SecurityCode=Código de seguridad
     NumberingShort=NORTE
     Tools=Herramientas
     TMenuTools=Herramientas
    -ToolsDesc=Aquí se recopilan todas las herramientas diversas que no están incluidas en otras entradas del menú. <br><br>Todas las herramientas se pueden obtener en el menú de la izquierda.
     Birthday=Cumpleaños
     BirthdayAlertOn=alerta de cumpleaños activa
     BirthdayAlertOff=alerta de cumpleaños inactiva
    @@ -16,13 +15,9 @@ DocFileGeneratedInto=Archivo de documento generado en <b>%s</b>.
     MessageOK=Mensaje en la página de devolución de pago validada
     MessageKO=Mensaje en la página de devolución de pago cancelado
     ContentOfDirectoryIsNotEmpty=El contenido de este directorio no está vacío.
    -DeleteAlsoContentRecursively=Compruebe para eliminar todo el contenido recursiveley
     YearOfInvoice=Año de la fecha de factura
     PreviousYearOfInvoice=Año anterior de la fecha de facturación
     NextYearOfInvoice=El año siguiente a la fecha de la factura
    -Notify_FICHINTER_ADD_CONTACT=Contacto agregado a la intervención
    -Notify_FICHINTER_VALIDATE=Intervención validada
    -Notify_FICHINTER_SENTBYMAIL=Intervención enviada por correo
     Notify_ORDER_VALIDATE=Pedido del cliente validado
     Notify_ORDER_SENTBYMAIL=Pedido del cliente enviado por correo
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Pedido del proveedor enviado por correo
    @@ -30,8 +25,6 @@ Notify_ORDER_SUPPLIER_VALIDATE=Orden del proveedor registrada
     Notify_ORDER_SUPPLIER_APPROVE=Pedido del proveedor aprobado
     Notify_ORDER_SUPPLIER_REFUSE=Orden del proveedor rechazada
     Notify_PROPAL_VALIDATE=Validación cotización cliente
    -Notify_PROPAL_CLOSE_SIGNED=Cliente propal cerrado firmado
    -Notify_PROPAL_CLOSE_REFUSED=Cliente propal cerrado rechazado
     Notify_PROPAL_SENTBYMAIL=Envío cotización por e-mail
     Notify_WITHDRAW_TRANSMIT=Retirada de transmisión
     Notify_WITHDRAW_CREDIT=Retiro de crédito
    @@ -40,14 +33,14 @@ Notify_COMPANY_CREATE=Tercero creado
     Notify_COMPANY_SENTBYMAIL=Correos enviados desde una tarjeta de terceros
     Notify_BILL_VALIDATE=Factura del cliente validada
     Notify_BILL_UNVALIDATE=Factura del cliente sin validar
    -Notify_BILL_PAYED=Factura del cliente pagado
     Notify_BILL_CANCEL=Factura del cliente cancelada
     Notify_BILL_SENTBYMAIL=Factura del cliente enviada por correo
     Notify_BILL_SUPPLIER_VALIDATE=Factura del proveedor validada
    -Notify_BILL_SUPPLIER_PAYED=Factura del proveedor pagado
     Notify_BILL_SUPPLIER_SENTBYMAIL=Factura del proveedor enviada por correo
     Notify_CONTRACT_VALIDATE=Contrato validado
     Notify_FICHEINTER_VALIDATE=Intervención validada
    +Notify_FICHINTER_ADD_CONTACT=Contacto agregado a la intervención
    +Notify_FICHINTER_SENTBYMAIL=Intervención enviada por correo
     Notify_SHIPPING_VALIDATE=Envío validado
     Notify_SHIPPING_SENTBYMAIL=Envío enviado por correo
     Notify_MEMBER_VALIDATE=Miembro validado
    @@ -61,15 +54,8 @@ TotalSizeOfAttachedFiles=Tamaño total de los archivos / documentos adjuntos
     MaxSize=Talla máxima
     AttachANewFile=Adjunte un nuevo archivo / documento
     LinkedObject=Objeto vinculado
    -NbOfActiveNotifications=Número de notificaciones (N° de correos electrónicos de destinatarios)
     PredefinedMailTest=__(Hola)__\nEste es un correo de prueba enviado a __EMAIL__.\nLas dos líneas están separadas por un retorno de carro.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hola)__\nEste es un correo de <b> prueba </b> (la palabra prueba debe estar en negrita). <br> Las dos líneas están separadas por un retorno de carro. <br> <br> __USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hola)__\n\nAquí encontrará la solicitud de precio __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hola)__\n\nAquí encontrará el orden __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hola)__\n\nAquí encontrará nuestro pedido __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hola)__\n\nAquí encontrará la factura __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hola)__\n\nAquí encontrará el envío __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hola)__\n\nAquí encontrará la intervención __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
     DemoDesc=Dolibarr es un ERP / CRM compacto que admite varios módulos comerciales. Una demostración que muestra todos los módulos no tiene sentido ya que este escenario nunca ocurre (varios cientos disponibles). Entonces, varios perfiles de demostración están disponibles.
     ChooseYourDemoProfilMore=... o crea tu propio perfil <br> (selección manual del módulo)
     DemoFundation=Administrar miembros de una fundación
    @@ -107,7 +93,6 @@ EnableGDLibraryDesc=Instale o habilite la biblioteca de GD en su instalación de
     ProfIdShortDesc=<b>Prof Id %s</b> es una información que depende del país de un tercero. <br> Por ejemplo, para el país <b>%s</b>, es el código<b>%s</b>.
     DolibarrDemo=Demo de Dolibarr ERP / CRM
     StatsByNumberOfUnits=Estadísticas para suma de cantidad de productos / servicios
    -StatsByNumberOfEntities=Estadísticas en número de entidades remitentes (N° de factura, u orden ...)
     NumberOfProposals=Número de propuestas
     NumberOfCustomerInvoices=Número de facturas de clientes
     NumberOfSupplierProposals=Número de propuestas de proveedores
    @@ -119,7 +104,6 @@ NumberOfUnitsCustomerInvoices=Número de unidades en las facturas de los cliente
     NumberOfUnitsSupplierProposals=Número de unidades en propuestas de proveedores
     NumberOfUnitsSupplierOrders=Número de unidades en pedidos a proveedores
     NumberOfUnitsSupplierInvoices=Número de unidades en las facturas del proveedor
    -EMailTextInterventionAddedContact=Se le ha asignado una nueva intervención %s.
     EMailTextInterventionValidated=La intervención %s ha sido validada.
     EMailTextInvoiceValidated=La factura %s ha sido validada.
     EMailTextProposalValidated=La cotización %s que le concierne ha sido validado.
    @@ -133,7 +117,6 @@ ImportedWithSet=Conjunto de datos de importación
     ResizeDesc=Ingrese un nuevo ancho <b> O </ b> nueva altura. La relación se mantendrá durante el cambio de tamaño ...
     NewSizeAfterCropping=Nuevo tamaño después del recorte
     DefineNewAreaToPick=Defina una nueva área en la imagen para elegir (haga clic con el botón izquierdo en la imagen y luego arrastre hasta que llegue a la esquina opuesta)
    -CurrentInformationOnImage=Esta herramienta fue diseñada para ayudarlo a cambiar el tamaño o recortar una imagen. Esta es información sobre la imagen editada actual
     YouReceiveMailBecauseOfNotification=Usted recibe este mensaje porque su correo electrónico ha sido agregado a la lista de objetivos para ser informado de eventos particulares en el software %s de %s.
     YouReceiveMailBecauseOfNotification2=Este evento es el siguiente:
     ThisIsListOfModules=Esta es una lista de módulos preseleccionados por este perfil de demostración (solo los módulos más comunes son visibles en esta demostración). Edítelo para tener una demostración más personalizada y haga clic en "Comenzar".
    @@ -145,6 +128,7 @@ CancelUpload=Cancelar carga
     FileIsTooBig=Los archivos son demasiado grandes
     PleaseBePatient=Por favor sea paciente...
     ResetPassword=Restablecer la contraseña
    +RequestToResetPasswordReceived=Se recibió una solicitud para cambiar su contraseña.
     NewKeyIs=Estas son sus nuevas claves para iniciar sesión
     NewKeyWillBe=Su nueva clave para iniciar sesión en el software será
     ClickHereToGoTo=Haga clic aquí para ir a %s
    diff --git a/htdocs/langs/es_CL/projects.lang b/htdocs/langs/es_CL/projects.lang
    index 8210d3ff1e0..a816959e177 100644
    --- a/htdocs/langs/es_CL/projects.lang
    +++ b/htdocs/langs/es_CL/projects.lang
    @@ -21,14 +21,9 @@ OnlyYourTaskAreVisible=Solo las tareas asignadas a ti son visibles. Asigna la ta
     ProjectCategories=Etiquetas / categorías de proyecto
     ConfirmDeleteAProject=¿Seguro que quieres eliminar este proyecto?
     ConfirmDeleteATask=¿Seguro que quieres eliminar esta tarea?
    -OpportunitiesStatusForOpenedProjects=Cantidad de oportunidades de proyectos abiertos por estado
    -OpportunitiesStatusForProjects=Cantidad de oportunidades de proyectos por estado
     ShowProject=Mostrar proyecto
    -ShowTask=Mostrar tarea
     SetProject=Establecer proyecto
     NoProject=Ningún proyecto definido o propiedad
    -NbOfProjects=N° de proyectos
    -NbOfTasks=N° de tareas
     TimeSpentByYou=Tiempo pasado por ti
     TimeSpentByUser=Tiempo dedicado por el usuario
     TimesSpent=Tiempo dedicado
    @@ -51,18 +46,6 @@ ListOfTasks=Lista de tareas
     GoToListOfTimeConsumed=Ir a la lista de tiempo consumido
     GoToListOfTasks=Ir a la lista de tareas
     GoToGanttView=Ve a la vista de Gantt
    -ListProposalsAssociatedProject=Listado de cotizaciones asociadas al proyecto
    -ListOrdersAssociatedProject=Lista de pedidos de clientes asociados con el proyecto
    -ListInvoicesAssociatedProject=Lista de facturas de clientes asociadas con el proyecto
    -ListPredefinedInvoicesAssociatedProject=Lista de plantillas de facturas de cliente asociadas al proyecto
    -ListSupplierOrdersAssociatedProject=Lista de pedidos a proveedores asociados con el proyecto
    -ListSupplierInvoicesAssociatedProject=Lista de facturas de proveedores asociadas con el proyecto
    -ListContractAssociatedProject=Lista de contratos asociados con el proyecto
    -ListShippingAssociatedProject=Lista de envíos asociados con el proyecto
    -ListFichinterAssociatedProject=Lista de intervenciones asociadas con el proyecto
    -ListExpenseReportsAssociatedProject=Lista de informes de gastos asociados con el proyecto
    -ListDonationsAssociatedProject=Lista de donaciones asociadas con el proyecto
    -ListActionsAssociatedProject=Lista de eventos asociados con el proyecto
     ListTaskTimeUserProject=Lista de tiempo consumido en las tareas del proyecto
     ListTaskTimeForTask=Lista de tiempo consumido en la tarea
     ActivityOnProjectToday=Actividad en proyecto hoy
    @@ -91,7 +74,7 @@ LinkedToAnotherCompany=Vinculado a otro tercero
     TaskIsNotAssignedToUser=Tarea no asignada al usuario. Use el botón '<strong>%s</strong>' para asignar la tarea ahora.
     ErrorTimeSpentIsEmpty=El tiempo pasado está vacío
     ThisWillAlsoRemoveTasks=Esta acción también borrara todo las tareas del proyecto (<b>%s</b> tareas al momento) y todas las entradas de tiempo consumido.
    -IfNeedToUseOhterObjectKeepEmpty=Si algunos objetos (factura, orden, ...), pertenecen a otro tercero, deben estar vinculados al proyecto para crear, manténgalos vacíos para que el proyecto sea de varios terceros.
    +IfNeedToUseOtherObjectKeepEmpty=Si algunos objetos (factura, orden, ...), pertenecen a otro tercero, deben estar vinculados al proyecto para crear, manténgalos vacíos para que el proyecto sea de varios terceros.
     CloneProject=Proyecto clon
     CloneTasks=Clonar tareas
     CloneContacts=Clon contactos
    @@ -106,8 +89,6 @@ TaskCreatedInDolibarr=Tarea %s creada
     TaskModifiedInDolibarr=Tarea %s modificada
     TaskDeletedInDolibarr=Tarea %s eliminada
     OpportunityStatusShort=Opp. estado
    -OpportunityProbability=Probabilidad de oportunidad
    -OpportunityAmount=Cantidad de oportunidad
     OpportunityAmountShort=Opp. cantidad
     OpportunityAmountAverageShort=Opp promedio cantidad
     OpportunityAmountWeigthedShort=Opp ponderado cantidad
    @@ -122,8 +103,6 @@ TypeContact_project_task_internal_TASKCONTRIBUTOR=Colaborador
     TypeContact_project_task_external_TASKCONTRIBUTOR=Colaborador
     SelectElement=Seleccionar elemento
     AddElement=Enlace al elemento
    -DocumentModelBeluga=Plantilla de proyecto para vista general de objetos vinculados
    -DocumentModelBaleine=Plantilla de informe de proyecto para tareas
     PlannedWorkload=Carga de trabajo planificada
     ProjectReferers=Artículos relacionados
     ProjectMustBeValidatedFirst=El proyecto debe ser validado primero
    @@ -133,24 +112,13 @@ TimeSpentBy=Tiempo consumido por
     AssignTaskToMe=Asignarme una tarea
     AssignTaskToUser=Asignar tarea a %s
     SelectTaskToAssign=Seleccionar tarea para asignar ...
    -ProjectOverview=Visión de conjunto
    -ManageTasks=Usa proyectos para seguir tareas y tiempo
     ManageOpportunitiesStatus=Usa proyectos para seguir leads / opportinuties
    -ProjectNbProjectByMonth=Número de proyectos creados por mes
    -ProjectNbTaskByMonth=Número de tareas creadas por mes
    -ProjectOppAmountOfProjectsByMonth=Cantidad de oportunidades por mes
    -ProjectWeightedOppAmountOfProjectsByMonth=Cantidad ponderada de oportunidades por mes
    -ProjectOpenedProjectByOppStatus=Abrir proyecto / conducir por estado de oportunidad
     ProjectsStatistics=Estadísticas de proyectos / leads
     TasksStatistics=Estadísticas sobre proyectos/tareas principales
     TaskAssignedToEnterTime=Tarea asignada Ingresar el tiempo en esta tarea debería ser posible.
     IdTaskTime=Tiempo de la tarea de identificación
     YouCanCompleteRef=Si desea completar la referencia con cierta información (para utilizarla como filtros de búsqueda), se recomienda agregar un carácter para separarla, por lo que la numeración automática seguirá funcionando correctamente para los próximos proyectos. Por ejemplo %s-ABC. También puede preferir agregar claves de búsqueda en la etiqueta. Pero la mejor práctica puede ser agregar un campo dedicado, también llamado atributos complementarios.
     OpenedProjectsByThirdparties=Proyectos abiertos por terceros
    -OnlyOpportunitiesShort=Solo oportunidades
    -OpportunityTotalAmount=Cantidad total de oportunidades
    -OpportunityPonderatedAmount=Cantidad ponderada de oportunidades
    -OpportunityPonderatedAmountDesc=Cantidad de oportunidades ponderada con probabilidad
     OppStatusQUAL=Calificación
     OppStatusPROPO=Cotización
     AllowToLinkFromOtherCompany=Permitir vincular proyecto de otra empresa<br><br><u>Valores admitidos: </u><br> - Mantener vacío: puede vincular cualquier proyecto de la empresa (predeterminado)<br> - "todo": puede vincular cualquier proyecto, incluso proyecto de otras empresas<br> - Una lista de identificación de terceros separada por comas: puede vincular todos los proyectos de estos terceros definidos (Ejemplo: 123,4795,53)<br>
    diff --git a/htdocs/langs/es_CL/stocks.lang b/htdocs/langs/es_CL/stocks.lang
    index fe8f71f5b08..3ec3de75e9f 100644
    --- a/htdocs/langs/es_CL/stocks.lang
    +++ b/htdocs/langs/es_CL/stocks.lang
    @@ -13,7 +13,6 @@ CancelSending=Cancelar el envío
     StocksByLotSerial=Stock por lote/serie
     ErrorWarehouseRefRequired=Se requiere el nombre de referencia del almacén
     ListOfWarehouses=Lista de almacenes
    -ListOfStockMovements=Lista de movimientos de stock
     ListOfInventories=Lista de inventarios
     MovementId=Identificación del movimiento
     StockMovementForId=ID de movimiento %d
    @@ -29,7 +28,6 @@ StockTransfer=Transferencia de acciones
     MassStockTransferShort=Transferencia stock en masa
     StockMovement=Movimiento de valores
     StockMovements=Movimientos de acciones
    -LabelMovement=Etiqueta de movimiento
     NumberOfUnit=Número de unidades
     StockTooLow=Stock demasiado bajo
     StockLowerThanLimit=Stock inferior al límite de alerta (%s)
    diff --git a/htdocs/langs/es_CO/admin.lang b/htdocs/langs/es_CO/admin.lang
    index a2e54cdcb94..a652afe7502 100644
    --- a/htdocs/langs/es_CO/admin.lang
    +++ b/htdocs/langs/es_CO/admin.lang
    @@ -9,20 +9,15 @@ SessionSaveHandler=Manejador para grabar sesiones
     SessionSavePath=Ubicación de almacenamiento de sesión
     PurgeSessions=Limpiado de sesiones
     ConfirmPurgeSessions=¿Realmente quiere eliminar todas las sesiones? Ésto desconectará todos los usuarios (excepto a usted).
    -NoSessionListWithThisHandler=El manejador para grabar sesiones configurado en su PHP no permite listar todas las sesiones activas.
     LockNewSessions=Bloquear conexiones nuevas
    -ConfirmLockNewSessions=¿Está seguro que desea restringir solo a usted cualquier conexión nueva a Dolibarr? Solo el usuario <b>%s</b> podrá conectarse después de esto.
     UnlockNewSessions=Eliminar el bloqueo de conexión
    -Sessions=La sesión de usuarios
     WebUserGroup=Grupo/Usuario del servidor web
    -NoSessionFound=Al parecer su PHP no permite listar las sesiones activas. La directiva usada para grabar sesiones (<b>%s</b>) parece estar protegida (Por ejemplo, por permisos del SO o por la directiva PHP open_basedir).
     DBStoringCharset=Conjunto de caracteres de la base de datos para almacenar datos
     DBSortingCharset=Conjunto de caracteres para organizar datos
     WarningModuleNotActive=El módulo <b>%s</b> debe estar activo
     WarningOnlyPermissionOfActivatedModules=Solo los permisos relacionados a los modulos activos se muestran acá. Puede activar otros modulos en la página Inicio->Configuración->Módulos.
     DolibarrSetup=Instalación o actualización de Dolibarr
     GUISetup=Mostrar
    -SetupArea=Área de configuración
     FormToTestFileUploadForm=Formulario para probar la importación de archivos (según configuración)
     IfModuleEnabled=Nota: solo aplica el SI en caso de que el modulo <b>%s</b> esté activo
     RemoveLock=Eliminar el archivo <b>%s</b> solo en caso de existir para permitir el uso de la herramienta actualizar.
    @@ -61,7 +56,6 @@ DetailMenuIdParent=ID de un menú principal (dejar vacío para menú superior)
     DetailPosition=Organizar número para definir la posición del menú
     AllMenus=Todo
     SetupShort=Configuración
    -OtherSetup=Otra configuración
     CurrentValueSeparatorDecimal=Separador de decimales
     CurrentValueSeparatorThousand=Separador de miles
     LanguageBrowserParameter=Parámetro %s
    @@ -72,8 +66,5 @@ PHPTZ=Zona Hora del servidor PHP
     DaylingSavingTime=Horario de verano
     CurrentHour=Hora del PHP (servidor)
     Position=Puesto
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     DictionaryCanton=Departamento
     LTRate=Tipo
    -CompanyName=Nombre
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    diff --git a/htdocs/langs/es_CO/banks.lang b/htdocs/langs/es_CO/banks.lang
    index 5fe75379d11..902359fcfb0 100644
    --- a/htdocs/langs/es_CO/banks.lang
    +++ b/htdocs/langs/es_CO/banks.lang
    @@ -1,3 +1,8 @@
     # Dolibarr language file - Source file is en_US - banks
    +BankAccounts=cuentas bancarias
    +BankBalance=Equilibrar
     StatusAccountOpened=Activo
     StatusAccountClosed=Cerrado
    +SocialContributionPayment=Pago de impuestos sociales / fiscales
    +BankTransfer=transferencia bancaria
    +TransferTo=A
    diff --git a/htdocs/langs/es_CO/companies.lang b/htdocs/langs/es_CO/companies.lang
    index 250bb5bb7c3..c6db4aa2a7a 100644
    --- a/htdocs/langs/es_CO/companies.lang
    +++ b/htdocs/langs/es_CO/companies.lang
    @@ -1,12 +1,13 @@
     # Dolibarr language file - Source file is en_US - companies
     ConfirmDeleteContact=Está seguro de borrar este contacto y todas la información relacionada?
    +NewCompany=Nueva compañía (prospecto, cliente, vendedor)
    +CreateDolibarrThirdPartySupplier=Crear un tercero (vendedor)
     ParentCompany=Sede principal
     Subsidiaries=Sucursales
     RegisteredOffice=Domicilio principal
     State=Departamento
     PhonePerso=Teléf. personal
     No_Email=Rechazar correos de cadena
    -VATIsUsed=Sujeto a IVA
     VATIsNotUsed=No sujeto a IVA
     ProfId1AT=Id prof. 1 (USt.-IdNr)
     ProfId2AT=Id prof. 2 (USt.-Nr)
    @@ -15,11 +16,6 @@ ProfId2CO=Identificación (CC, NIT, CE)
     ProfId3CO=CIIU
     CompanyHasCreditNote=Este cliente tiene <b>%s %s</b> anticipos disponibles
     NoContactForAnyProposal=Este contacto no es contacto de ningúna cotización
    -VATIntraCheckDesc=El link <b>%s</b> permite consultar al servicio RUES el NIT. Se requiere acceso a internet para que el servicio funcione
     VATIntraCheckURL=http://www.rues.org.co/RUES_Web/Consultas#tabs-3
    -VATIntraCheckableOnEUSite=Verificar en la web
    -VATIntraManualCheck=Puede también realizar una verificación manual en la web <a href="%s" target="_blank">%s</a>
    -ExportDataset_company_2=Contactos de terceros y atributos
     ConfirmDeleteFile=¿Está seguro que quiere eliminar este archivo?
    -ThirdPartiesArea=Área Terceros
     ManagingDirectors=Administrador(es) (CEO, gerente, director, presidente, etc.)
    diff --git a/htdocs/langs/es_CO/main.lang b/htdocs/langs/es_CO/main.lang
    index 900a3db52b8..8b0649a08bb 100644
    --- a/htdocs/langs/es_CO/main.lang
    +++ b/htdocs/langs/es_CO/main.lang
    @@ -21,7 +21,6 @@ FormatDateHourTextShort=%d %b %Y %H:%M
     FormatDateHourText=%d %B %Y %H:%M
     NoRecordFound=No se encontraron registros
     ErrorFileNotUploaded=El archivo no se transifirió. Compruebe que el tamaño no supere el máximo permitido, el espacio libre disponible en el disco y que no hay un archivo con el mismo nombre en el directorio destino.
    -ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Modificaciones sin aplicar.
     SeeHere=Ver aquí
     FileWasNotUploaded=Un archivo ha sido seleccionado para adjuntarlo, pero aún no se ha subido. Haga clic en "Adjuntar este archivo".
     SeeAbove=Ver arriba
    diff --git a/htdocs/langs/es_DO/admin.lang b/htdocs/langs/es_DO/admin.lang
    index d7037ec6bab..cacb957bc9f 100644
    --- a/htdocs/langs/es_DO/admin.lang
    +++ b/htdocs/langs/es_DO/admin.lang
    @@ -1,22 +1,11 @@
     # Dolibarr language file - Source file is en_US - admin
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     OldVATRates=Tasa de ITBIS antigua
     NewVATRates=Tasa de ITBIS nueva
     Permission91=Consultar impuestos e ITBIS
     Permission92=Crear/modificar impuestos e ITBIS
     Permission93=Eliminar impuestos e ITBIS
     DictionaryVAT=Tasa de ITBIS (Impuesto sobre ventas en EEUU)
    -VATManagement=Gestión ITBIS
    -VATIsNotUsedDesc=El tipo de ITBIS propuesto por defecto es 0. Este es el caso de asociaciones, particulares o algunas pequeñas sociedades.
    -LocalTax1IsUsedDesc=Uso de un 2º tipo de impuesto (Distinto del ITBIS)
    -LocalTax1IsNotUsedDesc=No usar un 2º tipo de impuesto (Distinto del ITBIS)
    -LocalTax2IsNotUsedDesc=No usar un 2º tipo de impuesto (Distinto del ITBIS)
     UnitPriceOfProduct=Precio unitario sin ITBIS de un producto
    -ShowVATIntaInAddress=Ocultar el identificador ITBIS en las direcciones de los documentos
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
     OptionVatMode=Opción de carga de ITBIS
     OptionVatDefaultDesc=La carga del ITBIS es: <br>-en el envío de los bienes (en la práctica se usa la fecha de la factura)<br>-sobre el pago por los servicios
     OptionVatDebitOptionDesc=La carga del ITBIS es: <br>-en el envío de los bienes (en la práctica se usa la fecha de la factura)<br>-sobre la facturación de los servicios
    -SummaryOfVatExigibilityUsedByDefault=Tiempo de exigibilidad de ITBIS por defecto según la opción eligida
    diff --git a/htdocs/langs/es_EC/admin.lang b/htdocs/langs/es_EC/admin.lang
    index 7ed9732c760..b5be72a7b68 100644
    --- a/htdocs/langs/es_EC/admin.lang
    +++ b/htdocs/langs/es_EC/admin.lang
    @@ -4,8 +4,6 @@ VersionLastInstall=Versión de instalación inicial
     VersionLastUpgrade=Actualización de la versión más reciente
     VersionUnknown=Desconocido
     VersionRecommanded=Recomendado
    -FileCheckDesc=Esta herramienta le permite comprobar la integridad de los archivos y la configuración de la aplicación, la comparación de cada archivo con las oficiales. Valor de algunas constantes de configuración pueden ser también verificados. Puede utilizar esta herramienta para detectar si algunos archivos fueron modificados por un hacker por ejemplo.
    -FileIntegrityIsOkButFilesWereAdded=La comprobación de integridad de archivos ha pasado, sin embargo, se han añadido algunos archivos nuevos.
     FileIntegritySomeFilesWereRemovedOrModified=La comprobación de integridad de archivos ha fallado. Algunos archivos fueron modificados, eliminados o añadidos.
     GlobalChecksum=Verificación global
     MakeIntegrityAnalysisFrom=Hacer análisis de la integridad de los archivos de la aplicación de
    @@ -20,19 +18,15 @@ SessionId=ID de sesión
     SessionSaveHandler=Manejador para guardar sesiones
     SessionSavePath=Localización del almacenamiento de las sesiones
     ConfirmPurgeSessions=Es lo que realmente desea purgar todas las sesiones? Esto desconectará todos los usuarios (excepto usted mismo).
    -NoSessionListWithThisHandler=Guardar controlador de sesión configurado en su PHP no permite la lista de todas las sesiones en ejecución.
    -ConfirmLockNewSessions=¿Está seguro de que desea restringir cualquier conexión Dolibarr nueva a sí mismo. Solo el usuario <b>%s</b> podrá conectarse después de eso.
     UnlockNewSessions=Quitar el bloqueo de conexión
    -Sessions=Sesión de usuarios
     WebUserGroup=Usuario/grupo del servidor web
    -NoSessionFound=Su PHP parece no permitir la lista de sesiones activas. El directorio utilizado para guardar las sesiones (<b>%s</b>) puede estar protegido (por ejemplo, por los permisos del sistema operativo o por la directiva PHP open_basedir).
     DBStoringCharset=Conjunto de caracteres de base de datos para almacenar datos
     DBSortingCharset=Conjunto de caracteres de base de datos para ordenar los datos
     ClientSortingCharset=Intercalación de clientes
     WarningModuleNotActive=Módulo <b>%s</b> debe estar habilitado
     WarningOnlyPermissionOfActivatedModules=Solamente los permisos relacionados con los módulos activados se muestran aquí. Puede activar otros módulos desde: Inicio-> Configuración-> Página Módulos.
     DolibarrSetup=Dolibarr instalar o actualizar
    -SetupArea=Area de configuración
    +SetupArea=Configurar
     UploadNewTemplate=Subir nueva(s) plantilla(s)
     FormToTestFileUploadForm=Formulario para probar la carga del archivo (según la configuración)
     IfModuleEnabled=Nota: si es efectivo sólo si el módulo <b>%s</b> está activado
    @@ -48,8 +42,6 @@ ErrorReservedTypeSystemSystemAuto=El valor 'sistema' y 'sistemamauto' esta reser
     DisableJavascript=Desactivar las funciones JavaScript y Ajax (Recomendado para navegadores de texto o personas ciegas)
     UseSearchToSelectCompanyTooltip=Además, si usted tiene un gran número de clientes (> 100 000), puede aumentar la velocidad estableciendo COMPANY_DONOTSEARCH_ANYWHERE constante en 1 en: Configuración-> Otros. La búsqueda se limitará entonces al inicio de la cadena.
     UseSearchToSelectContactTooltip=Además, si tiene un gran número de clientes (> 100 000), puede aumentar la velocidad estableciendo constante CONTACT_DONOTSEARCH_ANYWHERE en 1 en: Configuración-> Otros. La búsqueda se limitará entonces al inicio de la cadena.
    -DelaiedFullListToSelectCompany=Espere a que presione una tecla antes de cargar el contenido de la lista combinada de clientes (Esto puede aumentar el rendimiento si tiene un gran número de clientes, pero es menos conveniente)
    -DelaiedFullListToSelectContact=Espere que presione una tecla antes de cargar el contenido de la lista de contactos (Esto puede aumentar el rendimiento si tiene un gran número de contactos, pero es menos conveniente)
     NumberOfKeyToSearch=Número de caracteres para activar la búsqueda: %s
     NotAvailableWhenAjaxDisabled=No disponible cuando Ajax esta inhabilitado
     AllowToSelectProjectFromOtherCompany=En el documento de un cliente, puede elegir un proyecto vinculado a otro cliente
    @@ -58,7 +50,6 @@ UsePreviewTabs=Usar pestañas de vista previa
     ShowPreview=Mostrar vista previa
     CurrentTimeZone=Zona horaria PHP (servidor)
     MySQLTimeZone=Zona horaria MySQL (base de datos)
    -TZHasNoEffect=Las fechas son almacenadas y devueltas por el servidor de base de datos como si estuvieran guardadas como cadena enviada. La zona horaria sólo tiene efecto cuando se utiliza la función UNIX_TIMESTAMP (que no debe ser utilizada por Dolibarr, por lo que la base de datos TZ no debería tener ningún efecto, incluso si se modificó después de introducir los datos).
     Space=Espacio
     Index=Indice
     NextValue=siguiente valor
    @@ -82,7 +73,6 @@ DetailPosition=Orden por número para definir la posición del menú
     AllMenus=Todas
     NotConfigured=Módulo/aplicación no está configurado
     SetupShort=Configurar
    -OtherSetup=Otras configuraciones
     CurrentValueSeparatorThousand=separador de miles
     Destination=Destino
     IdModule=Módulo de Identificación
    @@ -94,8 +84,6 @@ OSTZ=Zona horaria del servidor
     PHPTZ=Zona horaria del servidor PHP
     DaylingSavingTime=Horario de verano
     CurrentSessionTimeOut=Tiempo de espera de la sesión actual
    -YouCanEditPHPTZ=Para establecer una zona horaria diferente PHP (no es obligatorio), se puede tratar de añadir un archivo .htaccess con una línea como esta "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Advertencia, al contrario de otras pantallas, las horas de esta página no se encuentran en su zona horaria local, sino en la zona horaria del servidor.
     MaxNbOfLinesForBoxes=Número máximo de líneas para los widgets
     PositionByDefault=Orden predeterminada
     MenusDesc=Los administradores de menús establecen el contenido de las dos barras de menú (horizontal y vertical).
    @@ -145,14 +133,9 @@ IgnoreDuplicateRecords=Ignorar los errores de registro duplicado (INSERT IGNORE)
     AutoDetectLang=Detección automática (idioma del navegador)
     FeatureDisabledInDemo=Función desactivada en demostración
     FeatureAvailableOnlyOnStable=Característica sólo está disponible en las versiones oficiales estables
    -BoxesDesc=Los widgets son componentes que muestran algunos datos que se pueden agregar para personalizar algunas páginas. Puede elegir entre mostrar el widget o no mediante la selección de la página de destino y haciendo clic en 'Activar', o haciendo clic en el cubo de basura para desactivarlo.
     OnlyActiveElementsAreShown=Solo se muestran elementos de <a href="%s">módulos habilitados</a> are shown.
    -ModulesDesc=Los módulos Dolibarr definen qué aplicación / función está habilitada en el software. Algunas aplicaciones / módulos requieren permisos que debe otorgar a los usuarios, después de activarlos. Haga clic en el botón on / off para activar un módulo / aplicación.
    -ModulesDeployDesc=Si los permisos de su sistema de archivos lo permiten, puede utilizar esta herramienta para implementar un módulo externo. El módulo estará entonces visible en la pestaña  <strong>%s</strong>.
     ModulesMarketPlaces=Buscar aplicaciones/módulos externos
     ModulesDevelopYourModule=Desarrolle su propia aplicación/módulos
    -ModulesDevelopDesc=Usted puede desarrollar o encontrar un socio para desarrollar para usted, su módulo personalizado
    -DOLISTOREdescriptionLong=En lugar de cambiar al sitio web <a href="https://www.dolistore.com">www.dolistore.com</a> para encontrar un módulo externo, puede utilizar esta herramienta incluida que hará la búsqueda en el mercado externo por usted (puede ser lento, necesita un acceso a Internet) ...
     CompatibleUpTo=Compatible con la versión 1%s
     NotCompatible=Este módulo no parece compatible con su Dolibarr %s (Min %s - Max%s).
     CompatibleAfterUpdate=Este módulo requiere una actualización de su Dolibarr %s (Min%s - Max%s).
    @@ -160,7 +143,6 @@ SeeInMarkerPlace=Ver en el mercado
     AchatTelechargement=Comprar / Descargar
     GoModuleSetupArea=Para implementar / instalar un nuevo módulo, vaya al área de configuración del módulo en <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, el mercado oficial de módulos externos ERP/CRM de Dolibarr
    -DoliPartnersDesc=Lista de las empresas que ofrecen módulos o funciones desarrolladas a medida (Nota: cualquier persona con experiencia en programación PHP puede proporcionar desarrollos a medida para un proyecto de código abierto)
     BoxesAvailable=Widgets disponibles
     BoxesActivated=Widgets activados
     ActiveOn=Activado en
    @@ -172,7 +154,6 @@ DoNotStoreClearPassword=No almacene las contraseñas en la base de datos, pero a
     MainDbPasswordFileConfEncrypted=Contraseña de base de datos cifrada en conf.php (activada recomendado)
     InstrucToEncodePass=Para que la contraseña se codifique en el archivo <b>conf.php</b>, reemplazar la línea <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Para que la contraseña se descodifique (borrar) en el archivo <b>conf.php</b>, reemplazar la línea <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protección de archivos generados en pdf (Activado NO recomendado, rompe la generación de pdf en masa)
     ProtectAndEncryptPdfFilesDesc=La protección de un documento PDF lo mantiene disponible para leer e imprimir con cualquier navegador PDF. Sin embargo, la edición y la copia ya no son posibles. Tenga en cuenta que el uso de esta característica hace que la creación de un conjunto global de PDF no funcione.
     Feature=Característica
     Developpers=Desarrolladores/colaboradores
    @@ -184,42 +165,23 @@ ReferencedPreferredPartners=Socios Preferidos
     SocialNetworks=Redes Sociales
     ForDocumentationSeeWiki=Para la documentación del usuario o del desarrollador (Doc, Preguntas Frecuentes...),<br>Eche un vistazo a la Wiki Dolibarr:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Para cualquier otra pregunta/ayuda, puede utilizar el foro Dolibarr:<br><b><a href="%s" target="_blank">%s</a></b
    -HelpCenterDesc1=Esta área le puede ayudar a obtener un servicio de ayuda de Dolibarr.
    -HelpCenterDesc2=Una parte de este servicio está disponible en <b>Inglés solamente</b>.
     CurrentMenuHandler=Controlador de menús actual
     SpaceX=Espacio X
     SpaceY=Espacio Y
     NoticePeriod=Periodo de notificación
     Emails=Correos electrónicos
     EMailsSetup=Configuración de correo electrónico
    -EMailsDesc=Esta página le permite sobrescribir los parámetros de PHP para el envío de correos electrónicos. En la mayoría de los casos en Unix OS/Linux, la configuración de PHP es correcta y estos parámetros son inútiles.
     EmailSenderProfiles=Perfiles de remitentes de correos electrónicos
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS puerto (Por defecto en php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/Host SMTPS (Por defecto en php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS puerto (No está definido en PHP en sistemas Unix)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (No está definido en PHP en sistemas Unix)
    -MAIN_MAIL_EMAIL_FROM=Dirección electróica del remitente para correos electrónicos automáticos (por defecto en php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Correo electrónico utilizado para los correos electrónicos devueltos con errores (campos 'Errores-Para' en los correos electrónicos enviados)
    -MAIN_MAIL_AUTOCOPY_TO=Enviar sistemáticamente una copia carbon oculta (CCO) de todos los correos enviados a
    -MAIN_DISABLE_ALL_MAILS=Desactivar todos los envíos de correo electrónico (con fines de prueba o demos)
     MAIN_MAIL_FORCE_SENDTO=Enviar todos los correos electrónicos a (en lugar de destinatarios reales, para fines de prueba)
    -MAIN_MAIL_SENDMODE=Método a utilizar para enviar mensajes de correo electrónico
    -MAIN_MAIL_SMTPS_ID=ID de SMTP si se requiere autenticación
    -MAIN_MAIL_SMTPS_PW=Contraseña SMTP si se necesita autenticación
    -MAIN_MAIL_EMAIL_TLS=Usar cifrado TLS (SSL)
    -MAIN_MAIL_EMAIL_STARTTLS=Usar cifrado TLS (STARTTLS)
    -MAIN_DISABLE_ALL_SMS=Desactivar todos los envíos de SMS (con fines de prueba o demos)
     MAIN_SMS_SENDMODE=Método a utilizar para enviar SMS
    -MAIN_MAIL_SMS_FROM=Número de teléfono del remitente predeterminado para el envío de SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Correo electrónico del remitente por defecto para envíos manuales (correo electrónico del usuario o correo electrónico de la empresa)
     UserEmail=Correo electrónico del usuario
     CompanyEmail=Correo de la empresa
     FeatureNotAvailableOnLinux=Característica no disponible en sistemas Unix. Comprobar el programa Sendmail localmente.
    -SubmitTranslation=Si la traducción para este idioma no es completo o presente errores, puede corregir esto mediante la edición de archivos en el directorio <b>langs/%s</b> y presentar su cambio a www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=Si la traducción para este idioma no es completo o presente errores, puede corregir esto editando los archivos en el directorio <b>langs/%s</b> y enviar archivos modificados a dolibarr.org/forum o para los desarrolladores en github.com / Dolibarr / Dolibarr.
     ModuleSetup=Módulo de configuración
     ModulesSetup=Módulos de configuración/Aplicación
     ModuleFamilyCrm=Gestión de Relaciones con el Cliente (CRM)
    +ModuleFamilySrm=Gestión de relaciones con proveedores (GRP)
     ModuleFamilyHr=Gestión de Recursos Humanos (RRHH)
     ModuleFamilyProjects=Proyectos/trabajo colaborativo
     ModuleFamilyTechnic=Herramientas multi-módulos
    @@ -232,15 +194,10 @@ MenuAdmin=Editor de menús
     DoNotUseInProduction=No utilizar en producción
     ThisIsProcessToFollow=Esto es pasos a procesar:
     ThisIsAlternativeProcessToFollow=Esta es una configuración alternativa para procesar manualmente:
    -FindPackageFromWebSite=Encontrar un paquete que proporciona la función que desea (por ejemplo, en el sitio web oficial de %s).
     DownloadPackageFromWebSite=Descargar paquete (por ejemplo, desde el sitio web oficial de %s).
    -UnpackPackageInDolibarrRoot=Descomprimir los archivos empaquetados en el directorio de servidor dedicado a Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=Para implementar/instalar un módulo externo, descomprimir los archivos empaquetados en el directorio del servidor dedicado a los módulos: <b>%s</b>
    -SetupIsReadyForUse=La implementación del módulo está terminada. Sin embargo, debe habilitar y configurar el módulo en su aplicación, vaya a la página para configurar los módulos: <a href="%s">%s</a>.
     NotExistsDirect=El directorio raíz alternativo no está definido en un directorio existente.<br>
     InfDirAlt=Desde la versión 3, es posible definir un directorio raíz alternativo. Esto le permite almacenar, en un directorio dedicado, plug-ins y plantillas personalizadas.<br>Sólo cree un directorio en la raíz de Dolibarr (por ejemplo: personalizado).<br>
     InfDirExample=<br>Entonces declare en el fichero <strong>conf.php </strong><br>$dolibarr_main_url_root_alt='/custom'<br> $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br> Si estas líneas se comentan con "#", para habilitarlas, basta con retirar el comentario al eliminar el carácter "#".
    -YouCanSubmitFile=Para este paso, puede enviar el archivo .zip del paquete de módulos aquí:
     CurrentVersion=Dolibarr versión actual
     CallUpdatePage=Vaya a la página que actualiza la estructura y los datos de la base de datos: %s.
     LastStableVersion=La última versión estable
    @@ -268,14 +225,10 @@ UMaskExplanation=Este parámetro le permite definir los permisos establecidos de
     SeeWikiForAllTeam=Echa un vistazo a la página wiki para ver una lista completa de todos los actores y su organización
     UseACacheDelay=Retardo para el almacenamiento en caché de la respuesta de exportación en segundos (0 o vacío para no caché)
     DisableLinkToHelpCenter=Ocultar enlace "<b>Necesita ayuda o soporte</b>" en la página de inicio de sesión
    -AddCRIfTooLong=No hay envoltura automática, por lo que si la línea está fuera de la página de los documentos porque es demasiado larga, debe agregar devoluciones de carro en la zona de texto.
    -ConfirmPurge=¿Seguro que desea ejecutar esta purga?<br>Esto eliminará definitivamente todos los archivos de datos y no hay forma de restaurarlos (ECM archivos, archivos adjuntos ...).
     MinLength=Longitud mínima
     LanguageFilesCachedIntoShmopSharedMemory=Archivos .lang cargados en la memoria compartida
    -ExamplesWithCurrentSetup=Ejemplos con la configuración actual en ejecución
     ListOfDirectories=Lista de directorios plantillas OpenDocument
     ListOfDirectoriesForModelGenODT=Lista de directorios que contienen archivos de plantillas con formato OpenDocument.<br><br> Ponga aquí la ruta completa de los directorios.<br> Agregue un transporte entre cada directorio.<br> Para añadir un directorio del módulo GED, añádalo aquí <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br> Los archivos de esos directorios deben finalizar con <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Número de archivos de plantillas ODT/ODS que se encuentran en esos directorios
     FollowingSubstitutionKeysCanBeUsed=<br>Para saber cómo crear sus plantillas de documentos ODT, antes de guardarlos en esos directorios, leer la documentación wiki:
     FirstnameNamePosition=Posición del Nombre / Apellido
     DescWeather=Las siguientes imágenes se mostrarán en el tablero cuando el número de acciones tardías alcance los siguientes valores:
    @@ -283,17 +236,13 @@ KeyForWebServicesAccess=Clave para utilizar Servicios Web (parámetro "dolibarrk
     TestSubmitForm=Formulario de prueba de entrada
     ThisForceAlsoTheme=El uso de este administrador de menús también utilizará su propio tema, sea cual sea la elección del usuario. También este administrador de menús especializado para smartphones no funciona en todos los teléfonos inteligentes. Utilice otro administrador de menús si experimenta problemas en la suya.
     ThemeDir=Directorio de Skins
    -ConnectionTimeout=Tiempo de espera de conexión
     ResponseTimeout=Tiempo de espera de respuesta
     SmsTestMessage=Mensaje de prueba desde __PHONEFROM__ a __PHONETO__
     ModuleMustBeEnabledFirst=Módulo <b>%s</b> debe estar habilitado primero si necesita esta función.
     SecurityToken=Clave para proteger las URL
    -NoSmsEngine=No hay gestor de envío de SMS disponible. El gestor de envío de SMS no está instalado con la distribución predeterminada (porque depende de un proveedor externo), pero puede encontrar algunos en %s
    -PDFDesc=Puede configurar cada opción globales relacionados con la generación de PDF
     PDFAddressForging=Reglas para forjar cuadros de direcciones
     HideAnyVATInformationOnPDF=Ocultar toda la información relacionada con Impuesto a las ventas / IVA en PDF generado
     PDFRulesForSalesTax=Reglas para el impuesto a las ventas / IVA
    -HideLocalTaxOnPDF=Ocultar tarifa de %s en la columna de impuestos de la columna de PDF
     HideDescOnPDF=Ocultar la descripción de los productos en el PDF generado
     HideRefOnPDF=Ocultar referencia de productos en PDF generado
     HideDetailsOnPDF=Ocultar líneas de productos en PDF generado detalles
    @@ -302,7 +251,6 @@ Library=Biblioteca
     UrlGenerationParameters=Parámetros para asegurar URL
     SecurityTokenIsUnique=Utilice un parámetro de SecureKey único para cada URL
     GetSecuredUrl=Obtener URL calculada
    -ButtonHideUnauthorized=Ocultar botones para usuarios no administradores para acciones no autorizadas en lugar de mostrar los botones desactivados en gris
     OldVATRates=Antigua tasa de IVA
     NewVATRates=Nueva tasa de IVA
     PriceBaseTypeToChange=Modificar los precios con el valor base de referencia definido en
    @@ -314,13 +262,11 @@ Boolean=Boolean (una casilla de verificación)
     ExtrafieldSelect =Seleccionar lista
     ExtrafieldSelectList =Seleccionear tabla
     ExtrafieldSeparator=Separador (no un campo)
    -ExtrafieldRadio=Botones de opción (en la única opción)
     ExtrafieldCheckBox=Casillas de verificación
     ExtrafieldCheckBoxFromList=Casillas de verificación de la tabla
     ExtrafieldLink=Enlace a un objeto
     ComputedFormula=Campo calculado
     ComputedFormulaDesc=Puede introducir aquí una fórmula utilizando otras propiedades de objeto o cualquier código PHP para obtener un valor calculado dinámico. Puede utilizar cualquier fórmula compatible con PHP, incluyendo el "?" Operador de condición y objeto global siguiente: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Sólo algunas propiedades de $object puede estar disponible. Si necesita propiedades no cargadas, solo busque el objeto en su fórmula como en el segundo ejemplo.<br> Utilizando un campo computado significa que no puede ingresar ningún valor de la interfaz. Además, si hay un error de sintaxis, la fórmula no puede devolver nada.<br><br> Ejemplo de fórmula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br> Ejemplo para volver a cargar el objeto<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br> Otro ejemplo de fórmula para forzar la carga del objeto y su objeto primario:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Proyecto principal no encontrado'
    -ExtrafieldParamHelpPassword=Mantener este campo vacío significa que el valor se almacenará sin encriptación (el campo debe estar oculto con estrella en la pantalla). <br>Establezca aquí valor 'automático' para usar la regla de encriptación predeterminada para guardar la contraseña en la base de datos (entonces la lectura de valor será solo hash, no hay forma de recuperar el valor original)
     ExtrafieldParamHelpselect=La lista de valores debe ser líneas con clave de formato, valor (donde la clave no puede ser '0')<br><br> por ejemplo: <br>1,valor1<br>2,valor2<br> código3,valor3<br>... <br><br>Para que la lista dependa de otra lista de atributos complementarios: <br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>Para que la lista dependa de otra lista:<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=La lista de valores debe ser líneas con la clave de formato, valor (donde la clave no puede ser '0')<br><br> por ejemplo: <br>1,valor1<br>2,valor2<br>3,valor3<br>...
     ExtrafieldParamHelpradio=La lista de valores debe ser líneas con la clave de formato, valor (donde la clave no puede ser '0')<br><br> por ejemplo: <br>1,valor1<br>2,valor2<br>3,valor3<br>...
    @@ -334,46 +280,33 @@ RefreshPhoneLink=Actualizar enlace
     LinkToTest=hacer clic en enlace generado para el usuario <strong>% s </ strong> (haga clic en el número de teléfono para probar)
     KeepEmptyToUseDefault=Dejar en blanco para usar valor predeterminado
     ValueOverwrittenByUserSetup=Advertencia, este valor puede ser sobrescrito por la configuración específica del usuario (cada usuario puede establecer su propia URL de clicktodial)
    -BarcodeInitForThirdparties=Init código de barras masivo para clientes / proveedores
     BarcodeInitForProductsOrServices=Init de código de barras masivo o restablecimiento de productos o servicios
     CurrentlyNWithoutBarCode=Actualmente, tiene <strong>%s</strong> registrado en <strong>%s</strong>%s sin código de barras definido.
     InitEmptyBarCode=init valor para el siguiente %s registro vacío
     EraseAllCurrentBarCode=Borrar todos los valores de códigos de barras actuales
     ConfirmEraseAllCurrentBarCode=¿Está seguro de que desea borrar todos los valores de códigos de barras actuales?
     AllBarcodeReset=Todos los valores de código de barras se han eliminado
    -NoBarcodeNumberingTemplateDefined=No se ha habilitado la plantilla de código de barras de numeración en la configuración del módulo de código de barras.
     ShowDetailsInPDFPageFoot=Añada más detalles al pie de los archivos PDF, como la dirección de su empresa o los nombres de los administradores (para completar los identificadores profesionales, el capital de la empresa y el número de IVA).
     NoDetails=No hay más detalles en el pie de página
     DisplayCompanyInfo=Mostrar la dirección de la empresa
     DisplayCompanyManagers=Mostrar nombres de administradores
     DisplayCompanyInfoAndManagers=Mostrar la dirección de la empresa y los nombres de los administradores
    -EnableAndSetupModuleCron=Si desea que esta factura recurrente se genere automáticamente, el módulo *%s* Debe estar habilitado y configurado correctamente. De lo contrario, la generación de facturas se debe hacer manualmente desde esta plantilla con el botón *Crear*. Tenga en cuenta que, aunque haya habilitado la generación automática, puede iniciar la generación manual de forma segura. No es posible la generación de duplicados para el mismo período.
    -ModuleCompanyCodeCustomerAquarium=%s seguido de un código de cliente externo para un código de contabilidad del cliente
    -ModuleCompanyCodeSupplierAquarium=%s seguido de un código de proveedor externo para un código de contabilidad de proveedor
     ModuleCompanyCodePanicum=Devolver un código de contabilidad vacío.
     ModuleCompanyCodeDigitaria=El código de contabilidad depende del código de un cliente/proveedor. El código está compuesto por el carácter "C" en la primera posición seguido por los primeros 5 caracteres del código de cliente/proveedor.
     Use3StepsApproval=De forma predeterminada, las órdenes de compra deben ser creadas y aprobadas por dos usuarios diferentes (un paso/usuario para crear y un paso/usuario para aprobar.) Nota: si el usuario tiene permiso para crear y aprobar, un paso/usuario será suficiente). Puede pedir con esta opción introducir una tercera aprobación de paso/usuario, si la cantidad es mayor que un valor dedicado (por lo que serán necesarios 3 pasos: 1= validación, 2= primera aprobación y 3= segunda aprobación si la cantidad es suficiente).<br> Establezca esto en blanco para una aprobación (2 pasos) es suficiente, establezca un valor muy bajo (0.1) si se requiere una segunda aprobación (3 pasos).
     UseDoubleApproval=Utilice una aprobación de 3 pasos cuando la cantidad (sin impuestos) es mayor que ...
    -WarningPHPMail=ADVERTENCIA: Es mejor configurar los correos electrónicos salientes para usar el servidor de correo electrónico de su proveedor en lugar de la configuración predeterminada. Algunos proveedores de correo electrónico (como Yahoo) no le permiten enviar un correo electrónico desde otro servidor que no sea su propio servidor. Su configuración actual utiliza el servidor de la aplicación para enviar correos electrónicos y no el servidor de su proveedor de correo electrónico, por lo que algunos destinatarios (el compatible con el restrictivo protocolo DMARC) le preguntarán a su proveedor de correo electrónico si pueden aceptar su correo electrónico y algunos proveedores de correo electrónico. (como Yahoo) puede responder "no" porque el servidor no es un servidor de ellos, por lo que es posible que no se acepten algunos de sus correos electrónicos enviados (tenga cuidado también con la cuota de envío de su proveedor de correo electrónico). <br> Si su proveedor de correo electrónico (como Yahoo) tiene esta restricción, debe cambiar la Configuración de correo electrónico para elegir el otro método "Servidor SMTP" e ingresar el servidor SMTP y las credenciales provistas por su proveedor de correo electrónico (solicite a su proveedor de correo electrónico que le envíen las credenciales SMTP para su cuenta).
    +WarningPHPMail2=Si su proveedor SMTP de correo electrónico necesita restringir el cliente de correo electrónico a algunas direcciones IP (muy raras), esta es la dirección IP del usuario de correo (MUA) para su aplicación ERP CRM: <strong>%s</strong>.
     ClickToShowDescription=Haga clic para mostrar la descripción
    -DependsOn=Este módulo necesita el módulo(s)
     RequiredBy=Este módulo es necesario por el módulo(s)
    -TheKeyIsTheNameOfHtmlField=Este es el nombre del campo HTML. Esta necesario tener conocimientos técnicos para leer el contenido de la página HTML para obtener el nombre de la clave de un campo.
    -PageUrlForDefaultValues=Debe ingresar aquí la URL relativa de la página. Si incluye parámetros en URL, los valores predeterminados serán efectivos si todos los parámetros están configurados con el mismo valor. Ejemplos:
     PageUrlForDefaultValuesCreate=<br>Para el formulario para crear un nuevo cliente/proveedor, es <strong>1%s</strong>,<br>Si queremos que el valor predeterminado sólo si URL tiene algún parámetro, podemos utilizar <strong>1%s</strong>
    -PageUrlForDefaultValuesList=<br>Para el formulario para crear un nuevo cliente/proveedor, es <strong>1%s</strong>,<br>Si queremos que el valor predeterminado sólo si URL tiene algún parámetro, podemos utilizar <strong>1%s</strong>
    -GoIntoTranslationMenuToChangeThis=Se ha encontrado una traducción para la clave con este código, por lo que para cambiar este valor, debe editarlo desde Inicio-Configuración-traducción.
     WarningSettingSortOrder=Advertencia, establecer un orden predeterminado puede resultar en un error técnico al pasar a la página de lista si el campo es un campo desconocido. Si experimenta este error, vuelva a esta página para eliminar el orden predeterminado y restaurar el comportamiento predeterminado.
     ProductDocumentTemplates=Plantillas para generar documento de producto
     FreeLegalTextOnExpenseReports=Texto legal gratuita en los informes de gastos
     WatermarkOnDraftExpenseReports=Marca de agua en informes de gastos preliminares
     AttachMainDocByDefault=Configúrelo en 1 si desea adjuntar el documento principal al correo electrónico de forma predeterminada (si corresponde)
    -Module0Name=Usuarios & Grupos
     Module0Desc=Gestión de Usuarios / Empleados y Grupos
    -Module1Name=Clientes / Proveedores
     Module1Desc=Empresas y gestión de contactos (clientes, prospectos ...)
     Module2Desc=Administración comercial
    -Module10Desc=Informes contables simples (diarios, rotación) basados en el contenido de la base de datos. No usa ninguna tabla de contabilidad.
     Module20Name=Propuestas
     Module20Desc=Gestión de propuestas comerciales
     Module22Name=E-mailings masivos
    @@ -383,6 +316,7 @@ Module25Name=Pedidos de los clientes
     Module25Desc=Administración de pedidos de clientes
     Module30Name=Facturas
     Module30Desc=Gestión de facturas y notas de crédito para clientes. Gestión de facturas para proveedores
    +Module40Desc=Proveedores y gestión de compras (órdenes de compra y facturación)
     Module42Desc=Instalaciones de registro (archivo, syslog,...). Dichos registros son para propósitos técnicos/depuración.
     Module49Desc=Administración del editor
     Module50Desc=Administración de producto
    @@ -392,12 +326,10 @@ Module52Name=Existencias
     Module52Desc=Administración de existencias (productos)
     Module53Desc=Administración de Servicios
     Module54Name=Contratos / Suscripciones
    -Module54Desc=Administración de contratos (servicios o suscripciones recurrentes)
     Module55Desc=Administración de código de barras
     Module56Name=Telefonos
     Module56Desc=Integración de telefonos
     Module57Name=Ordenes de pago bancarias directas
    -Module57Desc=Administración de órdenes de pago de débito directo. Incluye generación de archivo de la SEPA para los países europeos.
     Module58Desc=Integración de un sistema ClickToDial (Asterisk, ...)
     Module59Desc=Añadir función para generar cuenta Bookmark4u desde una cuenta de Dolibarr
     Module70Desc=Administración de la intervención
    @@ -405,78 +337,56 @@ Module75Name=Gastos y notas de viaje
     Module75Desc=Administración de gasto y notas de viaje
     Module80Name=Envíos
     Module80Desc=Administración de envíos y pedidos de entrega
    -Module85Name=Bancos y efectivo
     Module85Desc=Gestión de cuentas bancarias o en efectivo
    -Module100Name=Sitio externo
    -Module100Desc=Este módulo incluye un sitio web externo o página en los menús de Dolibarr y verla en un marco de Dolibarr
     Module105Desc=Interfaz de Mailman o SPIP para el módulo miembro
    -Module200Desc=Sincronización de directorios LDAP
     Module210Desc=Integración PostNuke
     Module240Name=Exportar datos
    -Module240Desc=Herramienta para exportar los datos de Dolibarr (con asistentes)
     Module250Name=Importar datos
    -Module250Desc=Herramienta para importar datos en Dolibarr (con asistentes)
     Module310Desc=Administración de miembros de la Fundación
     Module320Name=RSS
     Module320Desc=Añadir RSS dentro de las páginas de Dolibarr
    -Module330Desc=Administración de marcadores
    -Module400Name=Proyectos / Oportunidades / Prospectos
    -Module400Desc=198/5000\nGestión de proyectos, oportunidades/clientes potenciales y/o tareas. También puede asignar cualquier elemento (factura, orden, propuesta, intervención, ...) a un proyecto y obtener una vista transversal desde la vista del proyecto.
     Module410Name=Calendario web
     Module410Desc=Integración calendario web
    +Module500Desc=Gestión de otros gastos (impuestos a la venta, impuestos sociales o fiscales, dividendos, ...)
     Module510Name=Pago de salarios de empleados
    -Module510Desc=Registre y siga el pago de los salarios de empleado
     Module520Name=Préstamo
     Module520Desc=Gestión de préstamos
     Module600Name=Notificaciones sobre eventos empresariales
    -Module600Desc=Enviar notificaciones por correo electrónico (activadas por algunos eventos empresariales) a los usuarios (configuración definida en cada usuario), a contactos de cliente/proveedor (configuración definida en cada cliente/proveedor) o a correos electrónicos fijos
    -Module600Long=Tenga en cuenta que este módulo está dedicado a enviar mensajes de correo electrónico en tiempo real cuando se produce un evento de negocio dedicado. Si está buscando una función para enviar recordatorios por correo electrónico de los eventos de su agenda, vaya a la configuración del módulo Agenda.
     Module700Desc=Administración de donaciones
     Module770Name=Reporte de gastos
    -Module770Desc=Administración y reposición de informes de gastos (transporte, comida, ...)
     Module1120Name=Propuesta comercial del vendedor
    +Module1120Desc=Solicitar propuesta comercial del vendedor y precios
     Module1200Desc=Integración Mantis
     Module1520Name=Generación de documentos
     Module1780Name=Etiquetas / Categorías
    -Module1780Desc=Crear etiquetas/categoría (productos, clientes, proveedores, contactos o miembros)
    -Module2000Desc=Permitir editar algún área de texto usando un editor avanzado (Basado en CKEditor)
     Module2200Desc=Habilitar el uso de expresiones matemáticas para los precios
     Module2300Name=Trabajos programados
     Module2300Desc=Gestión de trabajos programados (alias cron o chrono table)
     Module2400Name=Eventos / Agenda
    -Module2400Desc=Siga los eventos realizados y próximos. Deje que la aplicación registre los eventos automáticos con fines de seguimiento o registre eventos manuales o citas. Este es el módulo principal para una buena gestión de relaciones con clientes o proveedores.
     Module2500Desc=Sistema de gestión de documentos / gestión electrónica de contenidos. Organización automática de sus documentos generados o almacenados. Compártelos cuando lo necesites.
     Module2600Name=API / Servicios Web (servidor SOAP)
     Module2600Desc=Habilitar el servidor SOAP de Dolibarr que proporciona servicios API
     Module2610Name=API / Servicios Web (servidor REST)
     Module2610Desc=Habilitar el servidor REST de Dolibarr que proporciona servicios API
     Module2660Name=WebServices de llamadas (cliente SOAP)
    -Module2660Desc=Habilitar el cliente de servicios web de Dolibarr (Puede ser utilizado para enviar datos / solicitudes a servidores externos, pedidos de proveedores soportados sólo por el momento)
    -Module2700Desc=Utilice el servicio Gravatar en línea (www.gravatar.com) para mostrar la foto de los usuarios/miembros (que se encuentran con sus correos electrónicos). Necesita un acceso a Internet
     Module2900Desc=Capacidades de conversiones GeoIP Maxmind
     Module3100Desc=Agregar un botón de Skype a usuarios / cliente / proveedor / contactos / tarjetas de miembros
    -Module3200Desc=Active el registro de algunos eventos comerciales en un registro inalterable. Los eventos se archivan en tiempo real. El registro es una tabla de eventos encadenados que solo se puede leer y exportar. Este módulo puede ser obligatorio para algunos países.
     Module4000Desc=Administración de recursos humanos (administración del departamento, los contratos y los sentimientos de los empleados)
     Module5000Desc=Permite gestionar múltiples empresas
     Module6000Name=Flujo de Trabajo
    +Module6000Desc=Gestión de flujo de trabajo (creación automática de objeto y/o cambio de estado automático)
     Module10000Name=Sitios Web
     Module10000Desc=Cree sitios web públicos con un editor WYSIWYG. Simplemente configure su servidor web (Apache, Nginx, ...) para que apunte al directorio dedicado de Dolibarr para tenerlo en línea en Internet con su propio nombre de dominio.
     Module20000Name=Administración de solicitudes de permisos
    -Module20000Desc=Declare y siga las solicitudes de los empleados
     Module39000Desc=Administración de lotes o numeros de series, fechas de caducidad y venta de los productos
     Module50000Name=Paybox
    -Module50000Desc=Módulo para ofrecer una página de pago en línea que acepta pagos con tarjeta de crédito/débito a través de PayBox. Esto se puede usar para permitir que sus clientes realicen pagos gratuitos o para un pago en un objeto Dolibarr en particular (factura, orden, ...)
     Module50100Name=Puntos de venta
     Module50100Desc=Módulo punto de venta (POS).
    -Module50200Desc=Módulo para ofrecer una página de pago en línea que acepta pagos con PayPal (tarjeta de crédito o crédito de PayPal). Esto se puede usar para permitir que sus clientes realicen pagos gratuitos o para un pago en un objeto Dolibarr en particular (factura, orden, ...)
    +Module50150Name=Puntos de venta
     Module50400Name=Contabilidad (avanzado)
    -Module50400Desc=Gestión contable (entradas dobles, libros auxiliares generales y auxiliares). Exporte el libro de contabilidad en otros formatos de software de contabilidad.
    -Module54000Desc=Impresión directa (sin abrir los documentos) utilizando la interfaz Cups IPP (La impresora debe estar visible desde el servidor y CUPS debe instalarse en el servidor).
     Module55000Name=Sondeo, encuesta o votación
    -Module55000Desc=Módulo para hacer sondeos en línea, encuestas o votaciones (como Doodle, Pasadores, Rdvz, ...)
     Module59000Desc=Módulo para administración los márgenes
     Module60000Desc=Módulo para gestionar las comisiones
    -Module62000Desc=Añadir características para administrar Incoterm
     Module63000Desc=Administrar los recursos (impresoras, automóviles, habitación, ...) se puede compartir en eventos
     Permission11=Leer facturas de clientes
     Permission12=Crear / modificar facturas de clientes
    @@ -495,9 +405,6 @@ Permission28=Exportar propuestas comerciales
     Permission31=Lee productos
     Permission32=Crear / modificar productos
     Permission36=Ver / gestionar productos ocultos
    -Permission41=Leer proyectos y tareas (proyecto compartido y proyectos para los que estoy en contacto). También puede ingresar tiempo consumido, para mí o mi jerarquía, en las tareas asignadas (Hoja de Horario)
    -Permission42=Crear / modificar proyectos (proyecto compartido y proyectos para los que estoy en contacto). También puede crear tareas y asignar usuarios al proyecto y tareas
    -Permission44=Eliminar proyectos (proyecto compartido y proyectos para los que estoy en contacto)
     Permission61=Leer intervenciones
     Permission62=Crear / modificar intervenciones
     Permission71=Leer miembros
    @@ -525,15 +432,12 @@ Permission121=Leer cliente / proveedor vinculados al usuario
     Permission122=Crear / modificar cliente / proveedor vinculados al usuario
     Permission125=Eliminar cliente / proveedor vinculados al usuario
     Permission126=Exportar cliente / proveedor
    -Permission141=Leer todos los proyectos y tareas (también proyectos privados en los que no estoy en contacto)
    -Permission142=Crear / modificar todos los proyectos y tareas (también proyectos privados en los que no estoy en contacto)
     Permission144=Eliminar todos los proyectos y tareas (también proyectos privados en los que no estoy en contacto)
     Permission146=Leer proveedores
     Permission147=Leer estadísticas
     Permission151=Leer órdenes de pago por débito directo
     Permission152=Crear / modificar órdenes de pago por débito directo
     Permission153=Enviar / transmitir órdenes de pago por débito directo
    -Permission154=Créditos de grabación / rechazos de órdenes de pago por débito directo
     Permission161=Leer contratos / suscripciones
     Permission162=Crear / modificar contratos / suscripciones
     Permission163=Habilitar un servicio / suscripción de un contrato
    @@ -553,7 +457,6 @@ Permission184=Aprobar pedidos de proveedores
     Permission185=Solicitar o cancelar pedidos de proveedores
     Permission187=Cerrar pedidos de proveedores
     Permission188=Cancelar pedidos de proveedores
    -Permission194=Leer líneas de ancho de banda
     Permission203=Ordenar pedidos de conexión
     Permission204=Ordene conexiones
     Permission205=Administrar conexiones
    @@ -575,11 +478,9 @@ Permission244=Ver contenido de las categorías ocultas
     Permission251=Leer otros usuarios y grupos
     PermissionAdvanced251=Leer otros usuarios
     Permission252=Leer permisos de otros usuarios
    -Permission253=Crear / modificar otros usuarios, grupos y permisssions
     PermissionAdvanced253=Crear / modificar usuarios internos / externos y permisos
     Permission254=Crear / modificar sólo usuarios externos
     Permission255=Modificar contraseña de otro usuario
    -Permission262=Ampliar el acceso a todos los cliente/proveedor (no sólo a cliente/proveedor que el usuario es un representante de venta).<br>No es efectivo para los usuarios externos (siempre limitado a ellos mismos para las propuestas, pedidos, facturas, contratos, etc).<br>No es efectivo para proyectos (sólo reglas sobre permisos de proyecto, visibilidad y asignación).
     Permission271=Leer CA
     Permission272=Leer facturas
     Permission273=Emitir facturas
    @@ -587,7 +488,6 @@ Permission281=Leer contactos
     Permission282=Crear / modificar contactos
     Permission291=Leer tarifas
     Permission292=Establecer permisos en las tarifas
    -Permission293=Modificar las tarifas de los clientes
     Permission300=Leer códigos de barras
     Permission301=Crear / modificar códigos de barras
     Permission302=Borrar códigos de barras
    @@ -604,10 +504,6 @@ Permission401=Leer descuentos
     Permission402=Crear / modificar descuentos
     Permission403=Validar descuentos
     Permission404=Eliminar descuentos
    -Permission501=Lea contratos / salarios de los empleados
    -Permission502=Crear / modificar contratos de empleados / salarios
    -Permission511=Leer pago de salarios
    -Permission512=Crear / modificar salarios
     Permission520=Leer Préstamos
     Permission522=Crear / modificar préstamos
     Permission524=Eliminar préstamos
    @@ -652,8 +548,6 @@ Permission1237=Exportar órdenes de proveedores y sus detalles
     Permission1251=Ejecutar importaciones masivas de datos externos en la base de datos (carga de datos)
     Permission1321=Exportar facturas, atributos y pagos de clientes
     Permission1421=Exportar pedidos y atributos de clientes
    -Permission20001=Lea las solicitudes de permiso (sus hojas y la de sus subordinados)
    -Permission20002=Crea/modifica las solicitudes de permiso (las suyas y las de sus subordinados)
     Permission20003=Eliminar solicitudes de licencia / permiso
     Permission20004=Lea todas las solicitudes de permiso (incluso del usuario no subordinado)
     Permission20005=Crear/modificar solicitudes de permiso para todos (incluso para usuarios no subordinados)
    @@ -680,14 +574,12 @@ Permission59003=Leer todos los márgenes de usuario
     Permission63001=leer recursos
     Permission63002=Crear / modificar recursos
     Permission63004=Enlazar los recursos con los eventos de la agenda
    -DictionaryCompanyType=Tipos de cliente/proveedor
    -DictionaryCompanyJuridicalType=Formas legales de cliente/proveedor
     DictionaryProspectLevel=Nivel potencial de la perspectiva
     DictionaryCanton=Estado / Provincia
     DictionaryActions=Tipos de eventos de agenda
     DictionaryVAT=Tarifas de IVA o impuestos de IVA
    +DictionaryRevenueStamp=Cantidad de impuestos fiscales
     DictionaryPaymentConditions=Términos de pago
    -DictionaryTypeContact=Tipos de contacto / dirección
     DictionaryTypeOfContainer=Tipo de páginas web/contenedores
     DictionaryFormatCards=Formatos de tarjetas
     DictionaryFees=Informe de gastos: tipos de líneas de informe de gastos
    @@ -698,40 +590,25 @@ DictionarySource=Origen de las propuestas / pedidos
     DictionaryAccountancyCategory=Grupos personalizados para informes
     DictionaryAccountancysystem=Modelos para el plan de cuentas
     DictionaryAccountancyJournal=Diarios / libros de contabilidad
    -DictionaryEMailTemplates=Plantillas de correo electrónico
     DictionaryProspectStatus=Estado de la prospección
    -DictionaryHolidayTypes=Tipos de hojas
    -DictionaryOpportunityStatus=Estado de la oportunidad del proyecto
    -VATManagement=Administración del IVA
    -VATIsUsedDesc=Por defecto al crear prospectos, facturas, órdenes, etc la tasa de IVA sigue la regla estándar activa: <br>Si el vendedor no está sujeto al IVA, entonces el IVA por defecto es 0. Fin de la regla. <br>Si el (país vendedor = país comprador), entonces el IVA por defecto es igual al IVA del producto en el país vendedor. Fin de la regla. <br>Si el vendedor y el comprador están en la Comunidad Europea y los bienes son productos de transporte (automóvil, barco, avión), el IVA por defecto es 0 (el IVA debe ser pagado por el comprador a la aduana de su país y no al vendedor). Fin de la regla. <br>Si el vendedor y el comprador están en la Comunidad Europea y el comprador no es una empresa, entonces el IVA por defecto es el IVA del producto vendido. Fin de la regla. <br>Si el vendedor y el comprador están en la Comunidad Europea y el comprador es una empresa, entonces el IVA es 0 por defecto. Fin de la regla.<br>En cualquier otro caso, el impuesto por defecto es IVA = 0. Fin de la regla.
    -VATIsNotUsedDesc=Por defecto, el IVA propuesto es 0, que puede utilizarse para casos como asociaciones, particulares o pequeñas empresas.
    -VATIsUsedExampleFR=En Francia, significa empresas u organizaciones que tienen un sistema fiscal real (simplificado real o real). Un sistema en el que se declara el IVA.
    -VATIsNotUsedExampleFR=En Francia, significa las asociaciones que no están declaradas con IVA o las empresas, organizaciones o profesiones liberales que han elegido el sistema fiscal de microempresas (IVA en franquicia) y pagaron una franquicia con IVA sin ninguna declaración de IVA. Esta elección mostrará la referencia "IVA no aplicable - art-293B de CGI" en las facturas.
    +TypeOfRevenueStamp=Tipo de impuesto fiscal
     LTRate=Tarifa
     LocalTax1IsNotUsed=No utilice el segundo impuesto
    -LocalTax1IsUsedDesc=Utilizar un segundo tipo de impuesto (distinto del IVA)
    -LocalTax1IsNotUsedDesc=No utilice otro tipo de impuesto (distinto del IVA)
     LocalTax1Management=Segundo tipo de impuesto
     LocalTax2IsNotUsed=No utilice tercer impuestos
    -LocalTax2IsUsedDesc=Utilizar un tercer tipo de impuesto (distinto del IVA)
    -LocalTax2IsNotUsedDesc=No utilice otro tipo de impuesto (distintos del IVA)
     LocalTax2Management=Tercer tipo de impuesto
     LocalTax1ManagementES=Administración RE
    -LocalTax1IsUsedDescES=La tasa de RE por defecto al crear prospectos, facturas, órdenes, etc seguir la norma estándar activa:<br>Si el comprador no está sujeto a RE, RE por defecto=0. Fin de la regla.<br>Si el comprador está sujeto a RE, entonces el RE por defecto. Fin de la regla.<br>
     LocalTax1IsNotUsedDescES=Por defecto, el RE propuesto es 0. Fin de la regla.
     LocalTax1IsUsedExampleES=En España son profesionales sujetos a algunas secciones específicas del IAE español.
     LocalTax1IsNotUsedExampleES=En España son profesionales y sociedades y están sujetos a ciertas secciones del IAE español.
     LocalTax2ManagementES=Administración IRPF
    -LocalTax2IsUsedDescES=La tasa de RE por defecto al crear prospectos, facturas, órdenes, etc., seguir la norma estándar activa:<br>Si el vendedor no está sujeto a IRPF, entonces IRPF por defecto=0. Fin de la regla.<br>Si el vendedor está sujeto al IRPF entonces el IRPF por defecto. Fin de la regla.<br>
     LocalTax2IsNotUsedDescES=Por defecto, el IRPF propuesto es 0. Fin de la regla.
     LocalTax2IsUsedExampleES=En España, freelancers y profesionales independientes que prestan servicios y empresas que han elegido el sistema tributario de módulos.
    -LocalTax2IsNotUsedExampleES=En España son negocios no sujetos al sistema tributario de módulos.
     CalcLocaltax=Informes sobre impuestos locales
     CalcLocaltax1Desc=Los informes de impuestos locales se calculan con la diferencia entre las compras de impuestos locales y las compras de impuestos locales
     CalcLocaltax2Desc=Los informes de Impuestos locales son el total de compras de impuestos locales
     LabelUsedByDefault=Etiqueta que se utiliza por defecto si no se encuentra traducción para el código
     LabelOnDocuments=Etiqueta en los documentos
    -NbOfDays=Nb de días
     AtEndOfMonth=Al final del mes
     CurrentNext=Actual / Siguiente
     Offset=Compensar
    @@ -744,7 +621,6 @@ DataRootServer=Directorio de archivos de datos
     PhpWebLink=Enlace Web-Php
     DatabaseServer=Host de base de datos
     DatabaseUser=Usuario de la base de datos
    -NbOfRecord=Nb de registros
     DriverType=Tipo de controlador
     SummarySystem=Resumen de información del sistema
     SummaryConst=Lista de todos los parámetros de configuración de Dolibarr
    @@ -754,13 +630,11 @@ Skin=Tema
     DefaultSkin=Tema por defecto
     MaxSizeList=Longitud máxima de la lista
     DefaultMaxSizeList=Longitud máxima predeterminada para las listas
    -DefaultMaxSizeShortList=Longitud máxima predeterminada para listas cortas (es decir, en la tarjeta del cliente)
     MessageLogin=Mensaje de la página de inicio de sesión
     LoginPage=Página de inicio de sesión
     PermanentLeftSearchForm=Formulario de búsqueda permanente en el menú de la izquierda
     DefaultLanguage=Idioma predeterminado a utilizar (código de idioma)
     EnableMultilangInterface=Habilitar interfaz multilingüe
    -CompanyIds=Identidades de empresa/organización
     CompanyName=Nombre
     CompanyZip=Código Postal
     CompanyTown=Ciudad
    @@ -768,26 +642,6 @@ CompanyCurrency=Moneda principal
     DoNotSuggestPaymentMode=No sugiera
     OwnerOfBankAccount=Dueño de una cuenta bancaria %s
     BankModuleNotActive=Módulo cuentas bancarias no habilitado
    -DelaysOfToleranceBeforeWarning=Tolerancia de retrasos antes de la advertencia
    -DelaysOfToleranceDesc=Esta pantalla le permite definir los retrasos tolerados antes de que se muestre una alerta en la pantalla con picto %s para cada elemento tardío.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Tolerancia de demora (en días) antes de la alerta sobre los eventos planificados (eventos de la agenda) aún no terminados
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolerancia de retardo (en días) antes de la alerta en el proyecto no cerrado en el tiempo
    -Delays_MAIN_DELAY_TASKS_TODO=Tolerancia de retardo (en días) antes de la alerta sobre las tareas planificadas (tareas del proyecto) aún no finalizadas
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolerancia de retardo (en días) antes de la alerta en pedidos no procesados todavía
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolerancia de retardo (en días) antes de la alerta sobre las propuestas para cerrar
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolerancia de retardo (en días) antes de la alerta sobre propuestas no facturadas
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Retardo de tolerancia (en días) antes de la alerta de servicios para activar
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Retardo de tolerancia (en días) antes de la alerta en servicios expirados
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Retardo de tolerancia (en días) antes de la alerta en facturas de proveedores no pagadas
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Retardo de tolerancia (en días) antes de la alerta en facturas de clientes no pagadas
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Retardo de tolerancia (en días) antes de la alerta de reconciliación bancaria pendiente
    -Delays_MAIN_DELAY_MEMBERS=Retardo de tolerancia (en días) antes de la alerta de cuota de membresía retrasada
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Demora de la tolerancia (en días) antes de la alerta para cheques de depósito para hacer
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Retardo de tolerancia (en días) antes de la alerta para que los informes de gastos aprueben
    -SetupDescription1=El área de configuración es para los parámetros de configuración inicial antes de comenzar a utilizar Dolibarr.
    -SetupDescription3=Configuraciones en el menú <a href="%s">%s -> %s</a>. Este paso es necesario porque define los datos utilizados en las pantallas de Dolibarr para personalizar el comportamiento predeterminado del software (por ejemplo, para las características relacionadas con el país).
    -SetupDescription4=Configuraciones en el menú <a href="%s">%s -> %s</a>. Este paso es necesario porque Dolibarr ERP/CRM es una colección de varios módulos/aplicaciones, todos más o menos independientes. Las nuevas funciones se agregan a los menús para cada módulo que active.
    -SetupDescription5=Otras entradas de menú controlan los parámetros opcionales.
     LogEvents=Eventos de auditoría de seguridad
     InfoBrowser=Acerca del navegador
     InfoOS=Acerca del OS
    @@ -798,15 +652,12 @@ LogEventDesc=Puede activar aquí el registro de eventos de seguridad de Dolibarr
     AreaForAdminOnly=Los parámetros de configuración sólo pueden ser establecidos por <b>usuarios de administrador</b>.
     SystemInfoDesc=La información del sistema es información técnica diversa que se obtiene en modo de sólo lectura y visible sólo para los administradores.
     SystemAreaForAdminOnly=Esta área está disponible sólo para usuarios de administrador. Ninguno de los permisos de Dolibarr puede reducir este límite.
    -AccountantDesc=Edite en esta página toda la información conocida sobre su contador
     AccountantFileNumber=Número de expediente
     DisplayDesc=Puede elegir cada parámetro relacionado con el aspecto de Dolibarr aquí
     AvailableModules=Aplicaciones/módulos disponibles
     ToActivateModule=Para activar los módulos, vaya al área de configuración (Inicio-> Configuración-> Módulos).
     SessionTimeOut=Tiempo de espera para la sesión
    -SessionExplanation=Este número garantiza que la sesión nunca expirará antes de este retraso, si el limpiador de sesiones se realiza mediante el limpiador interno de sesión de PHP (y nada más). El limpiador interno de sesión de PHP no garantiza que la sesión caduque justo después de este retraso. Expirará, después de este retraso, y cuando se ejecute el limpiador de sesión, por lo que cada acceso <b>%s/%s</b>, Pero sólo durante el acceso realizado por otras sesiones.<br>Nota: en algunos servidores con un mecanismo de limpieza de sesión externo (cron en debian, ubuntu ...), Las sesiones se pueden destruir después de un período definido por el valor predeterminado <strong>session.gc_maxlifetime</strong>, sin importar el valor introducido aquí.
     TriggersAvailable=Desencadenantes disponibles
    -TriggersDesc=Los desencadenantes son archivos que modifican el comportamiento del flujo de trabajo de Dolibarr una vez copiado en el directorio <b>htdocs/core/triggers</b>. Realizan nuevas acciones, activadas en eventos Dolibarr (creación de nuevas empresas, validación de facturas, ...).
     TriggerDisabledByName=Los desencadenantes de este archivo se deshabilitan con el sufijo <b>-NORUN</b> en su nombre.
     TriggerDisabledAsModuleDisabled=Los desencadenadores de este archivo están deshabilitados, ya que el módulo <b>%s</b> está deshabilitado.
     TriggerAlwaysActive=Los desencadenadores de este archivo están siempre activos, independientemente de los módulos Dolibarr activados.
    @@ -816,7 +667,6 @@ DictionaryDesc=Insertar todos los datos de referencia. Puede agregar sus valores
     ConstDesc=Esta página le permite editar todos los demás parámetros no disponibles en las páginas anteriores. Estos son en su mayoría parámetros reservados para desarrolladores o solución avanzada de problemas. Para obtener una lista de opciones <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options"title=" Sitio Externo - se abre en una nueva ventana " target="_blank">marque aquí</a>.
     MiscellaneousDesc=Aquí se definen todos los demás parámetros relacionados con la seguridad.
     LimitsSetup=Límites / Precisión configuración
    -LimitsDesc=Usted puede definir los límites, las precisiones y las optimizaciones usadas por Dolibarr aquí
     MAIN_MAX_DECIMALS_UNIT=Máximo de decimales para precios unitarios
     MAIN_MAX_DECIMALS_TOT=Máximo de decimales para precios totales
     MAIN_MAX_DECIMALS_SHOWN=Máximo de decimales para los precios mostrados en la pantalla (Add <b>...</b> después de este número si desea ver <b>...</b> cuando el número se trunca cuando se muestra en la pantalla)
    @@ -825,15 +675,11 @@ UnitPriceOfProduct=Precio unitario neto de un producto
     TotalPriceAfterRounding=Precio total (IVA neto) después del redondeo
     ParameterActiveForNextInputOnly=Parámetro efectivo sólo para la siguiente entrada
     NoEventOrNoAuditSetup=Todavía no se ha registrado ningún evento de seguridad. Esto puede ser normal si la auditoría no se ha habilitado en la página "configuración - seguridad - auditoría".
    -NoEventFoundWithCriteria=No se ha encontrado ningún evento de seguridad para dichos criterios de búsqueda.
     SeeLocalSendMailSetup=Ver configuración de sendmail local
     BackupDesc=Para hacer una copia de seguridad completa de Dolibarr, usted debe:
     BackupDesc2=Guardar el contenido del directorio de documentos (<b>% s </ b>) que contiene todos los archivos subidos y generados (por lo que incluye todos los archivos de volcado generados en el paso 1).
    -BackupDesc3=Guardar el contenido de su base de datos (<b>%s</b>) en un archivo de volcado. Para ello, puede utilizar el siguiente asistente.
     BackupDescX=El directorio archivado debe ser almacenado en un lugar seguro.
     BackupDescY=El archivo de volcado generado se debe almacenar en un lugar seguro.
    -BackupPHPWarning=No se puede garantizar la copia de seguridad con este método. Prefiero uno anterior
    -RestoreDesc2=Restaurar el archivo (archivo zip por ejemplo) del directorio de documentos para extraer el árbol de archivos en el directorio de documentos de una nueva instalación de Dolibarr o en el directorio de documentos actual (<b>%s</b>).
     RestoreDesc3=Restaure los datos, desde un archivo de volcado de copia de seguridad, en la base de datos de la nueva instalación de Dolibarr o en la base de datos de esta instalación actual (<b>%s</b>). Advertencia, una vez finalizada la restauración, debe utilizar un nombre de usuario / contraseña, que existía cuando se realizó la copia de seguridad, para conectarse de nuevo. Para restaurar una base de datos de copia de seguridad en esta instalación actual, puede seguir este asistente.
     RestoreMySQL=Importación de MySQL
     ForcedToByAModule=Esta regla se ve forzada a <b>%s</b> por un módulo activado
    @@ -843,26 +689,20 @@ RunningUpdateProcessMayBeRequired=La ejecución del proceso de actualización es
     YouMustRunCommandFromCommandLineAfterLoginToUser=Debe ejecutar este comando desde la línea de comandos después de iniciar sesión en un shell con el usuario <b>%s</b> o debe agregar la opción -W al final de la línea de comandos para proporcionar la contraseña <b>%s</b>.
     YourPHPDoesNotHaveSSLSupport=funciones SSL no disponibles en su PHP
     SimpleNumRefModelDesc=Devuelve el número de referencia con el formato %syymm-nnnn donde yy es año, mm es mes y nnnn es una secuencia sin agujero y sin reiniciar
    -ShowProfIdInAddress=Mostrar identificación profesional con direcciones en documentos
    -ShowVATIntaInAddress=Ocultar IVA Intra num con direcciones en documentos
    -MAIN_DISABLE_METEO=Desactivar vista meteo
     MeteoPercentageMod=Modo porcentual
     MeteoPercentageModEnabled=Modo de porcentaje habilitado
     MeteoUseMod=Haga clic para usar%s
     TestLoginToAPI=Prueba de acceso a la API
    -ProxyDesc=Algunas características de Dolibarr necesitan tener acceso a Internet para trabajar. Defina aquí los parámetros para esto. Si el servidor de Dolibarr está detrás de un servidor proxy, dichos parámetros le indicarán a Dolibarr cómo acceder a Internet a través de él.
     MAIN_PROXY_USE=Utilizar un servidor proxy (de lo contrario acceso directo a Internet)
     MAIN_PROXY_HOST=Nombre / Dirección del servidor proxy
     MAIN_PROXY_USER=Inicie sesión para utilizar el servidor proxy
     MAIN_PROXY_PASS=Contraseña para utilizar el servidor proxy
    -DefineHereComplementaryAttributes=Defina aquí todos los atributos, que ya no están disponibles de forma predeterminada y que desea que sean compatible con %s.
     ExtraFields=Atributos complementarios
     ExtraFieldsLines=Atributos complementarios (líneas)
     ExtraFieldsLinesRec=Atributos complementarios (plantillas de líneas de facturas)
     ExtraFieldsSupplierOrdersLines=Atributos complementarios (líneas de pedido)
     ExtraFieldsSupplierInvoicesLines=Atributos complementarios (líneas de factura)
     ExtraFieldsThirdParties=Atributos complementarios (cliente/proveedor)
    -ExtraFieldsContacts=Atributos complementarios (contacto/dirección)
     ExtraFieldsMember=Atributos complementarios (miembro)
     ExtraFieldsMemberType=Atributos complementarios (tipo de miembro)
     ExtraFieldsCustomerInvoices=Atributos complementarios (facturas)
    @@ -875,40 +715,26 @@ ExtraFieldHasWrongValue=Atributo %s tiene un valor incorrecto.
     AlphaNumOnlyLowerCharsAndNoSpace=Sólo caracteres alfanuméricos y minúsculas sin espacio
     SendmailOptionNotComplete=Advertencia, en algunos sistemas Linux, para enviar correo electrónico desde su correo electrónico, la configuración de ejecución de sendmail debe incluir la opción -ba (parámetro mail.force_extra_parameters en su archivo php.ini). Si algunos destinatarios nunca reciben correos electrónicos, intente editar este parámetro PHP con mail.force_extra_parameters = -ba).
     PathToDocuments=Ruta de acceso a los documentos
    -SendmailOptionMayHurtBuggedMTA=Función para enviar correos usando el método "PHP mail direct" generará un mensaje de correo que puede no ser analizado correctamente por algunos servidores de correo de recepción. El resultado es que algunos correos no pueden ser leídos por personas alojadas en esas plataformas. Es el caso de algunos proveedores de Internet (por ejemplo: Orange en Francia). Esto no es un problema en Dolibarr ni en PHP sino en el servidor de correo. Sin embargo, puede agregar la opción MAIN_FIX_FOR_BUGGED_MTA a 1 en (configuración – otro) para modificar Dolibarr y evitar esto. Sin embargo, puede experimentar problemas con otros servidores que respetan estrictamente el estándar SMTP. La otra solución (recomendada) es utilizar el método "SMTP socket library" que no tiene inconvenientes.
     TranslationSetup=Configuración de la traducción
     TranslationKeySearch=Buscar una clave o cadena de traducción
     TranslationOverwriteKey=Sobrescribir una cadena de traducción
     TranslationDesc=Cómo configurar el idioma de la aplicación: <br> * Systemwide: menú <strong>Inicio - Configuración - Pantalla</strong><br> * Por usuario: utilice la <strong>pestaña de configuración de visualización</strong>del usuario en la tarjeta de usuario (haga clic en username en la parte superior de la pantalla).
     TranslationOverwriteDesc=También puede reemplazar cadenas de llenado de la siguiente tabla. Cambiar la lengua del menú desplegable "% s", insertar la cadena de clave traducción a "% s" y su nueva traducción a "% s"
    -TranslationOverwriteDesc2=Puede utilizar la otra pestaña para ayudarle a saber la clave de traducción que desea utilizar
     TranslationString=Cadena de traducción
     CurrentTranslationString=Cadena de traducción actual
     WarningAtLeastKeyOrTranslationRequired=Se requiere un criterio de búsqueda al menos para la clave o cadena de traducción
     NewTranslationStringToShow=Nueva cadena de traducción para mostrar
     OriginalValueWas=La traducción original se sobrescribe. El valor original fue: <br><br>%s
    -TransKeyWithoutOriginalValue=Forzó una nueva traducción para la clave de traducción '<strong>% s </ strong>' que no existe en ningún archivo de idioma
     TotalNumberOfActivatedModules=Aplicación activada / módulos: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Debe activar al menos 1 módulo
    -ClassNotFoundIntoPathWarning=Clase %s no encontrada en el path de PHP
     YesInSummer=Si en verano
    -OnlyFollowingModulesAreOpenedToExternalUsers=Tenga en cuenta que sólo los siguientes módulos se abren a usuarios externos (lo que es permiso de dichos usuarios) y sólo si se concedieron permisos:
     SuhosinSessionEncrypt=Almacenamiento de sesión cifrado por Suhosin
     ConditionIsCurrently=Condición actual %s
    -YouUseBestDriver=Utiliza el controlador %s que es el mejor controlador disponible actualmente.
    -YouDoNotUseBestDriver=Se utiliza la unidad %s, pero se recomienda el controlador %s.
    -NbOfProductIsLowerThanNoPb=Sólo tiene %s productos / servicios en la base de datos. Esto no requiere ninguna optimización en particular.
     SearchOptim=Optimización de la búsqueda
    -YouHaveXProductUseSearchOptim=Tienes %s producto en la base de datos. Debe agregar la constante PRODUCT_DONOTSEARCH_ANYWHERE a 1 en Inicio-Configuración-Otros, se limita la búsqueda al principio de las cadenas haciendo posible que la base de datos utilice el índice y debe obtener una respuesta inmediata.
    -BrowserIsOK=Está utilizando el navegador web %s. Este navegador está bien para la seguridad y el rendimiento.
    -BrowserIsKO=Está utilizando el navegador web %s. Este navegador es conocido por ser una mala elección para la seguridad, el rendimiento y la fiabilidad. Recomendamos que utilices Firefox, Chrome, Opera o Safari.
     XCacheInstalled=XCache está cargado.
    -AddRefInList=Pantalla de cliente / ref proveedor en la lista (lista o cuadro combinado seleccionar) y la mayoría de hipervínculo. Los terceros se aparece con el nombre "CC12345 - SC45678 - La gran coorp empresa", en lugar de "La gran coorp empresa".
    -AskForPreferredShippingMethod=Pedir Método de envio preferido para cliente/proveedor.
     FieldEdition=Edición del campo% s
     FillThisOnlyIfRequired=Ejemplo: +2 (llenar sólo si se experimentan problemas de compensación de zona horaria)
     PasswordGenerationStandard=Devuelve una contraseña generada de acuerdo con el algoritmo interno de Dolibarr: 8 caracteres que contengan números y caracteres en minúsculas, compartidos.
    -PasswordGenerationNone=No sugiera ninguna contraseña generada. La contraseña debe escribirse manualmente.
     PasswordGenerationPerso=Devuelva una contraseña de acuerdo con su configuración personal definida previamente.
     SetupPerso=Según su configuración
     PasswordPatternDesc=Descripción del patrón de contraseña
    @@ -918,17 +744,11 @@ UsersSetup=Configuración de módulos de usuario
     UserMailRequired=Se requiere correo electrónico para crear un nuevo usuario
     HRMSetup=Configuración del módulo de RRHH (Recursos Humanos)
     CompanySetup=Configuración del módulo de empresas
    -CompanyCodeChecker=Módulo para la generación y verificación de código de terceros (cliente o proveedor)
    -AccountCodeManager=Módulo para la generación de códigos de contabilidad (cliente o proveedor)
     NotificationsDesc=La función de notificaciones de EMails le permite enviar en forma silenciosa el correo automático, para algunos eventos de Dolibarr. Los destinos de las notificaciones se pueden definir:
     NotificationsDescUser=* Por usuarios, un usuario a la vez.
     NotificationsDescGlobal=* O estableciendo mensajes de destino globales en la página de configuración del módulo.
    -ModelModules=Plantillas de documentos
    -DocumentModelOdt=Generar documentos desde plantillas OpenDocuments (archivos .ODT o .ODS para OpenOffice, KOffice, TextEdit, ...)
     WatermarkOnDraft=Marca de agua en el documento preliminar
     JSOnPaimentBill=Activar función para llenar automáticamente las líneas de pago en el formulario de pago
    -CompanyIdProfChecker=Reglas de identificación profesional
    -MustBeMandatory=¿Obligatorio crear cliente/proveedor?
     MustBeInvoiceMandatory=¿Es obligatorio validar facturas?
     WebDavServer=URL raíz del %s servidor: %s
     WebCalUrlForVCalExport=Un enlace de exportación al formato <b>%s</b> está disponible en el siguiente enlace: %s
    @@ -1029,11 +849,8 @@ LDAPTestSynchroMemberType=Prueba de tipo de miembro de sincronización
     LDAPTestSearch=Prueba de una búsqueda LDAP
     LDAPSynchroOK=Prueba de sincronización satisfactoria
     LDAPSynchroKO=Prueba de sincronización fallida
    -LDAPSynchroKOMayBePermissions=Error en la prueba de sincronización. Compruebe que la conexión con el servidor está configurada correctamente y permite actualizaciones LDAP
     LDAPTCPConnectOK=TCP se conecta al servidor LDAP con éxito (Servidor =%s, Puerto =%s)
     LDAPTCPConnectKO=Error de conexión TCP al servidor LDAP (Servidor =%s, Puerto =%s)
    -LDAPBindOK=Conectar / Autenticar al servidor LDAP con éxito (Servidor =%s, Puerto =%s, Admin =%s, Contraseña =%s)
    -LDAPBindKO=Error de conexión / autenticación al servidor LDAP (Servidor =%s, Puerto =%s, Admin =%s, Contraseña =%s)
     LDAPSetupForVersion3=Servidor LDAP configurado para la versión 3
     LDAPSetupForVersion2=Servidor LDAP configurado para la versión 2
     LDAPDolibarrMapping=Mapeo Dolibarr
    @@ -1080,35 +897,26 @@ LDAPDescMembersTypes=Esta página le permite definir el nombre de los atributos
     LDAPDescValues=Los valores de ejemplo están diseñados para <b>OpenLDAP</b> con los siguientes esquemas cargados: <b>core.schema, cosine.schema, inetorgperson.schema</b>). Si usa los valores thoose y OpenLDAP, modifique su archivo de configuración LDAP <b>slapd.conf</b> para que todos los esquemas se carguen.
     ForANonAnonymousAccess=Para un acceso autenticado (por ejemplo, para un acceso de escritura)
     PerfDolibarr=Configuración del rendimiento / optimización del informe
    -YouMayFindPerfAdviceHere=Encontrará en esta página algunas marcas o consejos relacionados con el rendimiento.
    -NotInstalled=No está instalado, por lo que su servidor no es lento por esto.
     ApplicativeCache=Caché aplicable
     MemcachedNotAvailable=No se encontró caché de aplicaciones. Puede mejorar el rendimiento mediante la instalación de un servidor de caché Memcached y un módulo capaz de utilizar este servidor de caché.<br>Más información aquí <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Tenga en cuenta que una gran cantidad de proveedor de alojamiento web no proporciona este servidor de caché.
     MemcachedModuleAvailableButNotSetup=Módulo memcached para caché de aplicaciones encontrado, pero la configuración del módulo no está completa.
     MemcachedAvailableAndSetup=El módulo memcached dedicado a utilizar el servidor memcached está habilitado.
     OPCodeCache=Caché OPCode
    -NoOPCodeCacheFound=No se encontró ninguna caché OPCode. Puede ser que utilice otro caché OPCode XCache o eAccelerator (bueno), puede ser que no tiene caché OPCode (muy malo).
     HTTPCacheStaticResources=Caché HTTP para recursos estáticos (css, img, javascript)
     FilesOfTypeCached=Los archivos del tipo %s son almacenados en caché por el servidor HTTP
     FilesOfTypeNotCached=Los archivos del tipo %s no se almacenan en caché por el servidor HTTP
     FilesOfTypeCompressed=Los archivos del tipo %s están comprimidos por el servidor HTTP
     FilesOfTypeNotCompressed=Los archivos del tipo %s no están comprimidos por el servidor HTTP
     CacheByServer=Caché por servidor
    -CacheByServerDesc=Por ejemplo, utilizando la directiva Apache "ExpiresByType image / gif A2592000"
     CacheByClient=Caché por navegador
     TestNotPossibleWithCurrentBrowsers=Tal detección automática no es posible con los navegadores actuales
    -DefaultValuesDesc=Puede definir / forzar aquí el valor predeterminado que desea obtener cuando cree un nuevo registro y/o defina filtros o ordenes de clasificación cuando su registro de lista.
     DefaultSearchFilters=Filtros de búsqueda predeterminados
     DefaultSortOrder=Ordenes de clasificación por defecto
     ProductSetup=Configuración del módulo de productos
     ServiceSetup=Configuración del módulo de servicios
     ProductServiceSetup=Configuración de módulos de productos y servicios
     NumberOfProductShowInSelect=Número máximo de productos en listas de selección combinadas (0=sin límite)
    -ViewProductDescInFormAbility=Visualización de las descripciones de los productos en los formularios (de lo contrario como información emergente)
     MergePropalProductCard=Activar en la ficha Archivos adjuntos de producto / servicio una opción para fusionar el documento PDF del producto con la propuesta PDF azur si el producto / servicio está en la propuesta
    -ViewProductDescInThirdpartyLanguageAbility=Visualización de descripciones de productos en el idioma de cliente / proveedor
    -UseSearchToSelectProductTooltip=Además, si tiene un gran número de productos (> 100 000), puede aumentar la velocidad estableciendo la constante PRODUCT_DONOTSEARCH_ANYWHERE en 1 en Configuración-> Otros. La búsqueda se limitará entonces al inicio de la cadena.
    -UseSearchToSelectProduct=Espere a que presione una tecla antes de cargar el contenido de la lista de combo del producto (Esto puede aumentar el rendimiento si tiene un gran número de productos, pero es menos conveniente)
     SetDefaultBarcodeTypeProducts=Tipo de código de barras predeterminado para utilizar en los productos
     SetDefaultBarcodeTypeThirdParties=Tipo de código de barras predeterminado que se utiliza para cliente / proveedor
     UseUnits=Definir una unidad de medida para Cantidad durante la edición de líneas de pedido, propuesta o factura
    @@ -1158,7 +966,6 @@ SendingsSetup=Configuración del módulo de envío
     SendingsReceiptModel=Modelo de envío de recibos
     SendingsNumberingModules=Módulos de numeración de envíos
     SendingsAbility=Soporte de hojas de envío para entregas de clientes
    -NoNeedForDeliveryReceipts=En la mayoría de los casos, las hojas de envío se utilizan tanto como hojas para entregas del cliente (lista de productos para enviar) y hojas que se reciben y firman por el cliente. Así que los recibos de entregas de productos son una característica duplicada y rara vez se activan.
     DeliveryOrderNumberingModules=Módulo de numeración de recibos de entregas de productos
     DeliveryOrderModel=Modelo de recibos de entregas de productos
     DeliveriesOrderAbility=Soporte de productos entregados recibos
    @@ -1166,16 +973,11 @@ FreeLegalTextOnDeliveryReceipts=Texto libre en los recibos de entrega
     ActivateFCKeditor=Activar editor avanzado para:
     FCKeditorForCompany=WYSIWIG creación / edición de elementos descripción y nota (excepto productos / servicios)
     FCKeditorForProduct=WYSIWIG creación / edición de productos / servicios descripción y nota
    -FCKeditorForProductDetails=WYSIWIG creación / edición de líneas de detalles de productos para todas las entidades (propuestas, pedidos, facturas, etc ...). <Font class="warning">Advertencia: No es recomendable utilizar esta opción para este caso, ya que puede crear problemas con caracteres especiales y formateo de páginas al crear archivos PDF.</Font>
     FCKeditorForMailing= WYSIWIG creación / edición para eMailings masivos (Herramientas->eMailing)
     FCKeditorForUserSignature=WYSIWIG creación / edición de firma de usuario
     FCKeditorForMail=WYSIWIG Creación / edición para todo el correo (excepto Herramientas->eMailing)
    -OSCommerceErrorConnectOkButWrongDatabase=La conexión tuvo éxito pero la base de datos no parece ser una base de datos OSCommerce (clave %s no encontrada en la tabla %s).
    -OSCommerceTestOk=Conexión al servidor '%s' en la base de datos '%s' con el usuario '%s' exitoso.
    -OSCommerceTestKo1=Conexión al servidor '%s' tuvo éxito, pero no se pudo acceder a la base de datos '%s'.
     OSCommerceTestKo2=Conexión al servidor '%s' con el usuario '%s' falló.
     StockSetup=Configuración del módulo de stock/inventario
    -IfYouUsePointOfSaleCheckModule=Si utiliza un módulo de punto de venta (módulo POS proporcionado por defecto u otro módulo externo), esta configuración puede ser ignorada por su módulo de punto de venta. La mayoría de los módulos de punto de venta están diseñados para crear inmediatamente una factura y disminuir el stock por defecto, cualesquiera sean las opciones aquí. Por lo tanto, si necesita o no tener una disminución de existencias al registrar una venta desde su punto de venta, compruebe también que el módulo de POS este configurado.
     NotTopTreeMenuPersonalized=Menús personalizados no vinculados a una entrada de menú superior
     Menu=Selección del menú
     MenuHandler=Manejador de menús
    @@ -1190,7 +992,6 @@ DetailEnabled=Condición para mostrar o no la entrada
     DetailRight=Condición para mostrar menús grises no autorizados
     DetailLangs=Nombre de archivo Lang para la traducción de código de etiqueta
     Target=Objetivo
    -DetailTarget=Objetivo de los enlaces (_blank top abrir una nueva ventana)
     DetailLevel=Nivel (-1: menú superior, 0: menú del encabezado,> 0 menú y submenú)
     ModifMenu=Cambio de menús
     DeleteMenu=Borrar entrada de menú
    @@ -1202,7 +1003,6 @@ OptionVATDebitOption=Base de devengo
     OptionVatDefaultDesc=El IVA se debe:<br>- en la entrega de mercancías (que utilizamos la fecha de factura)<br>- en los pagos por servicios
     OptionVatDebitOptionDesc=El IVA se debe:<br>- en la entrega de las mercancías (utilizamos la fecha de factura)<br>- en la factura (débito) de los servicios
     OptionPaymentForProductAndServicesDesc=El IVA es pagadero: <br> - en el pago de los bienes <br> - en los pagos por servicios
    -SummaryOfVatExigibilityUsedByDefault=Tiempo de exigibilidad del IVA por defecto según la opción elegida:
     OnDelivery=En entrega
     OnPayment=En pago
     OnInvoice=En factura
    @@ -1218,33 +1018,21 @@ AccountancyCodeBuy=Cuenta de compra. código
     AgendaSetup=Eventos y configuración del módulo de agenda
     PasswordTogetVCalExport=Clave para autorizar enlace de exportación
     PastDelayVCalExport=No exportar eventos más antiguos de
    -AGENDA_USE_EVENT_TYPE=Utilice los tipos de eventos (administrados en el menú Configuración -> Diccionarios -> Tipo de eventos del programa)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Establecer automáticamente este valor predeterminado para el tipo de evento en el formulario de creación de eventos
    -AGENDA_DEFAULT_FILTER_TYPE=Establecer automáticamente este tipo de eventos en el filtro de búsqueda de la vista de agenda
    -AGENDA_DEFAULT_FILTER_STATUS=Establecer automáticamente este estado para eventos en el filtro de búsqueda de la vista de agenda
     AGENDA_DEFAULT_VIEW=Qué pestaña desea abrir de forma predeterminada al seleccionar el menú Agenda
     AGENDA_REMINDER_EMAIL=Habilite el recordatorio de eventos <b>por correo electrónico</b> (la opción recordar/demora se puede definir en cada evento). Nota: El módulo <strong>%s</strong> debe estar habilitado y configurado correctamente para enviar un recordatorio a la frecuencia correcta.
    -AGENDA_REMINDER_BROWSER=Habilite el recordatorio de eventos <b>en el navegador de los usuarios</b> (cuando se llega a la fecha del evento, cada usuario puede rechazarlo de la pregunta de confirmación del navegador)
     AGENDA_REMINDER_BROWSER_SOUND=Habilitar la notificación de sonido
     AGENDA_SHOW_LINKED_OBJECT=Mostrar objeto vinculado en la vista de agenda
     ClickToDialSetup=Configuración del módulo - Click To Dial
     ClickToDialUrlDesc=URL llamado cuando se hace clic en el icono de teléfono. En URL, puede usar las etiquetas<br><b>__PHONETO__</b> que se reemplazarán con el número de teléfono de la persona a quien llamar<br><b>__PHONEFROM__</b> que será reemplazado por el número de teléfono de la persona que llama (suyo)<br><b>__LOGIN__</b> que se reemplazará con el inicio de sesión de “click to dial” (definido en la tarjeta de usuario)<br><b>__PASS__</b> que se reemplazará con la contraseña de “click to dial” (definida en el usuario tarjeta).
    -ClickToDialDesc=Este módulo permite hacer clic en los números de teléfono. Un clic en este icono llamará a su teléfono para llamar al número de teléfono. Esto se puede utilizar para llamar a un sistema de centro de llamadas de Dolibarr que puede llamar al número de teléfono en un sistema SIP, por ejemplo.
     ClickToDialUseTelLink=Utilice sólo un enlace "tel:" en los números de teléfono
    -ClickToDialUseTelLinkDesc=Utilice este método si sus usuarios tienen un softphone o una interfaz de software instalados en el mismo equipo que el navegador y se llaman cuando hace clic en un enlace de su navegador que comienza con "tel:". Si necesita una solución de servidor completa (no necesita instalación de software local), debe establecer esto en "No" y rellenar el siguiente campo.
     CashDesk=Puntos de venta
     CashDeskSetup=Configuración del módulo de punto de venta
    -CashDeskThirdPartyForSell=Predeterminado genérico de clientes/proveedores utilizado para vender
     CashDeskBankAccountForSell=Cuenta predeterminada para recibir pagos en efectivo
     CashDeskBankAccountForCheque=Cuenta predeterminada para recibir pagos por cheque
     CashDeskBankAccountForCB=Cuenta predeterminada para recibir pagos con tarjetas de crédito
    -CashDeskDoNotDecreaseStock=Inhabilitar la disminución de existencias cuando se realiza una venta desde el punto de venta (si "no", la disminución de existencias se realiza para cada venta realizada desde POS, independientemente de la opción establecida en el módulo Stock).
     CashDeskIdWareHouse=Forzar y restringir el almacén a utilizar para la disminución de existencias
    -StockDecreaseForPointOfSaleDisabled=Disminución de existencias desde el punto de venta desactivado
     StockDecreaseForPointOfSaleDisabledbyBatch=La disminución de stock en POS no es compatible con la gestión de lotes
    -CashDeskYouDidNotDisableStockDecease=No desactivó la disminución de existencias al realizar una venta desde el punto de venta. Así que un almacén es necesario.
     BookmarkSetup=Configuración del módulo de marcadores
    -BookmarkDesc=Este módulo le permite administrar marcadores. También puede añadir accesos directos a cualquier página de Dolibarr o sitios web externos en su menú de la izquierda.
     NbOfBoomarkToShow=Número máximo de marcadores que se mostrarán en el menú de la izquierda
     WebServicesSetup=Configuración del módulo Webservices
     WebServicesDesc=Al habilitar este módulo, Dolibarr se convierte en un servidor de servicio web para proporcionar diversos servicios web.
    @@ -1262,7 +1050,6 @@ BankOrderESDesc=Orden de exhibición en español
     ChequeReceiptsNumberingModule=Módulo de numeración de recibos de cheques
     MultiCompanySetup=Configuración del módulo de varias empresas
     SuppliersSetup=Configuración del módulo de proveedores
    -SuppliersCommandModel=Plantilla completa de orden de compra (logo ...)
     SuppliersInvoiceModel=Plantilla completa de la factura del proveedor (logo ...)
     SuppliersInvoiceNumberingModel=Modelos de numeración de facturas de proveedores
     IfSetToYesDontForgetPermission=Si se establece en sí, no olvide proporcionar permisos a grupos o usuarios permitidos para la segunda aprobación
    @@ -1276,7 +1063,6 @@ ProjectsSetup=Configuración del módulo de proyecto
     ProjectsModelModule=Modelo de documento de informes de proyectos
     TasksNumberingModules=Módulo de numeración de tareas
     TaskModelModule=Modelo de documento de informes de tareas
    -UseSearchToSelectProject=Utilice los campos de autocompletado para elegir el proyecto (en lugar de utilizar un cuadro de lista)
     AccountingPeriods=Períodos contables
     AccountingPeriodCard=Período contable
     NewFiscalYear=Nuevo período contable
    @@ -1293,6 +1079,7 @@ NoAmbiCaracAutoGeneration=No utilice caracteres ambiguos ("1", "l", "i", "|", "0
     SalariesSetup=Configuración del módulo de los salarios
     SortOrder=Orden de clasificación
     Format=Formato
    +TypePaymentDesc=0:Tipo de pago del cliente, 1:Tipo de pago del proveedor, 2:Tipo de pago de clientes y proveedores
     IncludePath=Incluir ruta (definida en la variable %s)
     ExpenseReportsSetup=Configuración del módulo Informes de gastos
     TemplatePDFExpenseReports=Plantillas para generar el documento de informe de gastos
    @@ -1301,8 +1088,6 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Puede encontrar opciones p
     ListOfNotificationsPerUser=Lista de notificaciones por usuario*
     ListOfNotificationsPerUserOrContact=Lista de notificaciones por usuario* o por contacto**
     ListOfFixedNotifications=Lista de notificaciones fijas
    -GoOntoUserCardToAddMore=Vaya a la pestaña "Notificaciones" de un usuario para agregar o eliminar notificaciones para los usuarios
    -GoOntoContactCardToAddMore=Vaya a la pestaña "Notificaciones" de un cliente/proveedor para agregar o eliminar notificaciones de contactos / direcciones
     Threshold=Límite
     BackupDumpWizard=Asistente para crear archivo de volcado de copia de seguridad de base de datos
     SomethingMakeInstallFromWebNotPossible=La instalación del módulo externo no es posible desde la interfaz web por el siguiente motivo:
    @@ -1323,13 +1108,10 @@ BackgroundTableLineOddColor=Color de fondo para líneas de tabla impares
     BackgroundTableLineEvenColor=Color de fondo para líneas de tabla pares
     MinimumNoticePeriod=Período mínimo de notificación (Su solicitud de permiso debe ser hecha antes de este retraso)
     NbAddedAutomatically=Número de días añadidos a los contadores de usuarios (automáticamente) cada mes
    -UnicodeCurrency=Introduzca aquí entre llaves, lista de número de bytes que representan el símbolo de moneda. Por ejemplo: por $, escriba [36] - para Brasil real R $ [82,36] - por €, ingrese [8364]
     ColorFormat=El color RGB está en formato HEX, por ejemplo: FF0000
     SellTaxRate=Tasa de venta
     RecuperableOnly=Sí por IVA "No percibido pero recuperable" dedicado a algún estado en Francia. Mantenga el valor de "No" en todos los demás casos.
     UrlTrackingDesc=Si el proveedor o el servicio de transporte ofrecen una página o un sitio web para comprobar el estado de su envío, puede ingresarlo aquí. Puede usar la clave {TRACKID} en los parámetros de URL para que el sistema lo reemplace con el valor del número de seguimiento ingresado por el usuario en la tarjeta de envío.
    -OpportunityPercent=Cuando crea una oportunidad, definirá una cantidad estimada de proyecto / dirigir. De acuerdo con el estado de oportunidad, esta cantidad puede ser multiplicada por esta tasa para evaluar la cantidad global de todas sus oportunidades pueden generar. El valor es el porcentaje (entre 0 y 100).
    -TemplateIsVisibleByOwnerOnly=La plantilla es visible solo por el propietario
     VisibleNowhere=Visible en ninguna parte
     FixTZ=Fijar la zona horaria
     FillFixTZOnlyIfRequired=Ejemplo: +2 (relleno sólo si el problema ha sido experimentado)
    @@ -1348,10 +1130,7 @@ YouUseLastStableVersion=Utiliza la última versión estable
     TitleExampleForMajorRelease=Ejemplo de mensaje que puede usar para anunciar esta versión principal (siéntase libre de usarla en sus sitios web)
     TitleExampleForMaintenanceRelease=Ejemplo de mensaje que puede utilizar para anunciar esta versión de mantenimiento (siéntase libre de usarla en sus sitios web)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s está disponible. La versión %s es un lanzamiento importante con muchas nuevas características tanto para usuarios como para desarrolladores. Puede descargarlo desde el área de descarga del portal https://www.dolibarr.org (subdirectorio Versiones estables). Puede leer <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> para obtener la lista completa de cambios.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s está disponible. La versión %s es una versión de mantenimiento, por lo que sólo contiene correcciones de errores. Recomendamos que todos usen una versión anterior para actualizar a ésta. Como cualquier versión de mantenimiento, no hay nuevas características, ni cambio de estructura de datos está presente en esta versión. Puede descargarlo desde el área de descarga del portal https://www.dolibarr.org (subdirectorio Versiones estables). Puede leer <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> para obtener la lista completa de cambios.
    -MultiPriceRuleDesc=Cuando la opción "Varios niveles de precios por producto / servicio" está activada, puede definir diferentes precios (uno por nivel de precio) para cada producto. Para ahorrar tiempo, puede ingresar aquí la regla para que el precio de cada nivel se calcule automáticamente según el precio del primer nivel, por lo que tendrá que ingresar sólo el precio del primer nivel de cada producto. Esta página está aquí para ahorrar tiempo y sólo puede ser útil si sus precios para cada nivel son relativos al primer nivel. Puede ignorar esta página en la mayoría de los casos.
     ModelModulesProduct=Plantillas para documentos de producto
    -ToGenerateCodeDefineAutomaticRuleFirst=Para poder generar códigos automáticamente, primero debe definir un administrador para definir automáticamente el número de código de barras.
     SeeSubstitutionVars=Ver * nota para la lista de posibles variables de sustitución
     SeeChangeLog=Consulte el archivo ChangeLog (solo en inglés)
     AllPublishers=Todos los editores
    @@ -1371,21 +1150,11 @@ AddOtherPagesOrServices=Añadir otras páginas o servicios
     AddModels=Agregar plantillas de documento o de numeración
     AddSubstitutions=Agregar sustituciones de claves
     DetectionNotPossible=La detección no es posible
    -UrlToGetKeyToUseAPIs=Url para obtener un token para usar la API (una vez que se ha recibido el token, se guarda en la tabla de usuario de la base de datos y se debe proporcionar en cada llamada a la API)
     ListOfAvailableAPIs=Lista de APIs disponibles
    -activateModuleDependNotSatisfied=El módulo "%s" depende del módulo "%s" que falta, por lo que el módulo "%1$s" puede no funcionar correctamente. Instale el módulo "%2$s" o deshabilite el módulo "%1$s" si desea estar a salvo de cualquier sorpresa
    -CommandIsNotInsideAllowedCommands=El comando que intenta ejecutar no está dentro de la lista de comandos permitidos definidos en el parámetro <strong>$dolibarr_main_restrict_os_commands</strong> en el archivo <strong>conf.php</strong>.
     LandingPage=Página de destino
    -SamePriceAlsoForSharedCompanies=Si utiliza un módulo multicompany, con la opción "Precio único", el precio será igual para todas las empresas si los productos son compartidos entre entornos
     ModuleEnabledAdminMustCheckRights=El módulo se ha activado. Los permisos para módulo(s) activado(s) se dieron sólo a usuarios admin. Es posible que deba conceder permisos a otros usuarios o grupos manualmente si es necesario.
    -UserHasNoPermissions=Este usuario no tiene permiso definido
    -TypeCdr=Utilice "Ninguno" si la fecha de pago es la fecha de factura más (+) un delta en días (delta es el campo "Nb de días")<br>Utilice "Al final del mes", si, después del delta, La fecha debe ser aumentada para llegar al final del mes (+ un "Offset" opcional en días) )<br>Use " Actual / Siguiente" para que la fecha del plazo de pago sea el primer Nth del mes (N se almacena en el campo "Nb de días")
    -WarningNoteModulePOSForFrenchLaw=Este módulo %s cumple con las leyes francesas (Loi Finance 2016) porque el módulo registros no reversibles se activa automáticamente.
    -WarningInstallationMayBecomeNotCompliantWithLaw=Intenta instalar el módulo %s que es un módulo externo. La activación de un módulo externo significa que confía en el editor del módulo y está seguro de que este módulo no altera negativamente el comportamiento de su aplicación y es compatible con las leyes de su país (%s). Si el módulo trae una característica no legal, usted se hace responsable del uso de un software no legal.
     SetToYesIfGroupIsComputationOfOtherGroups=Establezca esto en "sí" si este grupo es un cálculo de otros grupos
    -EnterCalculationRuleIfPreviousFieldIsYes=Ingrese regla de cálculo si el campo anterior se estableció en Sí (por ejemplo, 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Algunas variantes de lenguaje encontradas
    -GDPRContactDesc=Si almacena datos sobre empresas/ciudadanos Europeos, puede almacenar aquí el contacto responsable del Reglamento General de Protección de Datos
     ResourceSetup=Configuración del módulo Recurso
     DisabledResourceLinkUser=Deshabilitar característica para vincular un recurso a los usuarios
     DisabledResourceLinkContact=Deshabilitar característica para vincular un recurso a contactos
    diff --git a/htdocs/langs/es_EC/main.lang b/htdocs/langs/es_EC/main.lang
    index 7268d5df4df..d391ac58b14 100644
    --- a/htdocs/langs/es_EC/main.lang
    +++ b/htdocs/langs/es_EC/main.lang
    @@ -36,20 +36,13 @@ ErrorFailedToSendMail=No se pudo enviar el correo (emisor= %s, receptor= %s)
     ErrorFileNotUploaded=El archivo no se ha subido. Compruebe que el tamaño no exceda el máximo permitido, el espacio libre disponible en el disco y que no hay ya un archivo con el mismo nombre en este directorio.
     ErrorInternalErrorDetected=Detectado un error
     ErrorWrongHostParameter=Parámetro host incorrecto
    -ErrorYourCountryIsNotDefined=Su país no está definido. Ir a Inicio-Configuración-Edit y vuelva a publicar el formulario.
    -ErrorRecordIsUsedByChild=No se ha podido eliminar este registro. Este registro se utiliza por lo menos un registro secundario.
     ErrorWrongValueForParameterX=valor incorrecto para el parámetro %s
     ErrorNoRequestInError=Ninguna solicitud por error
    -ErrorServiceUnavailableTryLater=El servicio no está disponible por el momento. Inténtelo de nuevo más tarde.
     ErrorDuplicateField=Valor duplicado en un campo único
    -ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Revertiremos los cambios.
    -ErrorConfigParameterNotDefined=Parámetro <b>%s</b> no está definido dentro de archivo de configuración Dolibarr <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=No se pudo encontrar el usuario <b>%s</b> en la base de datos Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Error, no hay tipos de IVA definidos para el país '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no hay ningun tipo de impuesto fiscal definido para el país '%s'.
     ErrorFailedToSaveFile=Error, Error al guardar el archivo.
    -ErrorCannotAddThisParentWarehouse=Está intentando agregar un almacén padre que ya es un hijo de uno actual
    -MaxNbOfRecordPerPage=Número máximo de registro por página
     NotAuthorized=No está autorizado para hacer eso.
     SetDate=Establecer fecha
     SeeHere=Mire aquí
    @@ -58,17 +51,15 @@ BackgroundColorByDefault=Color de fondo por defecto
     FileRenamed=El archivo se cambió de nombre correctamente.
     FileGenerated=El archivo se generó correctamente
     FileSaved=El archivo se ha guardado correctamente
    -FileTransferComplete=Archivo(s) cargados correctamente
     FilesDeleted=Archivo(s) eliminados correctamente
     FileWasNotUploaded=Se ha seleccionado un archivo para adjuntarlo, pero todavía no se ha cargado. Haga clic en "Adjuntar archivo" para hacerlo.
    -NbOfEntries=Número de entradas
     GoToWikiHelpPage=Lea la ayuda en línea (acceso a Internet es necesario)
     GoToHelpPage=Leer la ayuda
     DolibarrInHttpAuthenticationSoPasswordUseless=El modo de autenticación Dolibarr está configurado en <b>%s</b> en el archivo de configuración <b>conf.php</b>. <br> Esto significa que la base de datos de contraseñas es externa a Dolibarr, por lo que cambiar este campo puede no tener efecto.
     Undefined=Indefinido
     PasswordForgotten=¿Contraseña olvidada?
    +NoAccount=Sin cuenta?
     SeeAbove=Véase más arriba
    -HomeArea=Área de inicio
     PreviousValue=Valor anterior
     ConnectedOnMultiCompany=Conectado en ambiente
     AuthenticationMode=Modo de autenticación
    @@ -91,6 +82,7 @@ Period=Período
     PeriodEndDate=Fecha de finalización del período
     NotClosed=No se ha cerrado
     Enabled=Habilitado
    +Enable=Habilitar
     Disable=Inhabilitar
     Disabled=Inhabilitado
     AddLink=Agregar enlace
    @@ -99,7 +91,6 @@ AddToDraft=Añadir a redactar
     Update=Actualizar
     Close=Cerrado
     CloseBox=Retire widget desde su panel de control
    -ConfirmSendCardByMail=Es lo que realmente desea enviar el contenido de esta carta por correo a <b>%s</b>?
     Delete=Borrar
     Remove=retirar
     Resiliate=Terminar
    @@ -167,7 +158,6 @@ UseLocalTax=Incluye impuestos
     Gb=GB
     Default=Predeterminados
     DefaultValue=Valor predeterminado
    -DefaultValues=Valores predeterminados
     UnitPriceHT=Precio unitario (neto)
     UnitPriceHTCurrency=Precio unitario (neto) (moneda)
     UnitPriceTTC=Precio unitario
    @@ -184,7 +174,6 @@ AmountTTCShort=Valor (inc. IVA)
     AmountHT=Valor (neto de impuestos)
     AmountTTC=Valor (inc. IVA)
     AmountVAT=Impuesto sobre el Valor
    -MulticurrencyAlreadyPaid=Ya pagado, moneda de origen
     MulticurrencyRemainderToPay=Seguir pagando, moneda de origen
     MulticurrencyPaymentAmount=Monto a pagar, moneda de origen
     MulticurrencyAmountHT=Valor (neto de impuestos), moneda de origen
    @@ -256,13 +245,10 @@ RemoveFilter=Retirar filtro
     ChartGenerated=Gráfico generado
     ChartNotGenerated=Gráfico no genera
     GeneratedOn=Construir el %s
    -DolibarrStateBoard=Estadísticas de la base de datos
    -DolibarrWorkBoard=Abrir el tablero de artículos
     NoOpenedElementToProcess=Ningún elemento abierto para procesar
     NotYetAvailable=No disponible aún
     Categories=Etiquetas/categorías
     Category=Etiquetas/categoría
    -OtherInformations=Otra informacion
     ChangedBy=Cambiado por
     ResultKo=Fallo
     Reporting=Informes
    @@ -275,7 +261,7 @@ Preview=Vista Previa
     NextStep=Próximo paso
     None=Ninguna
     Late=Tarde
    -LateDesc=Retardo para definir si un registro es tarde o no depende de la configuración. Pregunte a su administrador para cambiar de retardo desde el menú Inicio - Configuración - Alertas.
    +NoItemLate=No hay artículo tarde
     Photo=Imagen
     Photos=Imágenes
     DeletePicture=Borrar imagen
    @@ -295,7 +281,6 @@ August=Agosto
     September=Septiembre
     October=Octubre
     November=Noviembre
    -MayMin=Mayo
     Month01=Enero
     Month02=Febrero
     Month03=Marzo
    @@ -360,6 +345,7 @@ SendMail=Enviar correo electrónico
     EMail=Correo electrónico
     NoEMail=Sin correo electrónico
     Email=Correo electrónico
    +NotRead=No leer
     NoMobilePhone=No hay teléfono móvil
     FollowingConstantsWillBeSubstituted=Las siguientes constantes serán reemplazados con el valor correspondiente.
     BackToList=Volver a la lista
    @@ -380,7 +366,6 @@ Receive=Recibir
     CompleteOrNoMoreReceptionExpected=Completa o nada más esperada
     YouCanChangeValuesForThisListFromDictionarySetup=Puede cambiar los valores para esta lista de menú de Configuración - Diccionarios
     YouCanChangeValuesForThisListFrom=Puede cambiar los valores para esta lista de menú %s
    -YouCanSetDefaultValueInModuleSetup=Se puede establecer el valor predeterminado que se utiliza cuando se crea un nuevo registro en la configuración del módulo
     Documents=Archivos enlazados
     UploadDisabled=Carga inhabilitada
     MenuAgendaGoogle=Agenda de google
    @@ -392,7 +377,6 @@ For=Por
     ForCustomer=Para el cliente
     HidePassword=Mostrar comando con la contraseña oculta
     UnHidePassword=Mostrar comando real con contraseña clara
    -Informations=informaciones
     AddFile=Agregar archivo
     FreeZone=No es un producto/servicio predefinido
     FreeLineOfType=No es una entrada predefinida de tipo
    @@ -402,11 +386,8 @@ Merge=Combinar
     DocumentModelStandardPDF=Plantilla PDF estándar
     PrintContentArea=Mostrar la página para imprimir el área de contenido principal
     MenuManager=Administrador de menús
    -WarningYouAreInMaintenanceMode=Advertencia, está en un modo de mantenimiento, por lo que sólo se permite el acceso <b>%s</b> a la aplicación en este momento.
     CoreErrorMessage=Disculpe, ocurrió un error. Póngase en contacto con el administrador del sistema para comprobar los registros o desactivar $dolibarr_main_prod=1 para obtener más información.
     FieldsWithAreMandatory=Los campos con <b>%s</b> son obligatorios
    -FieldsWithIsForPublic=Los campos con <b>%s</b> se muestran en la lista pública de miembros. Si no lo desea, marque la casilla "público".
    -AccordingToGeoIPDatabase=(Según la conversión GeoIP)
     RequiredField=Campo requerido
     ToTest=Prueba
     ValidateBefore=La tarjeta debe ser validado antes de usar esta función
    @@ -433,7 +414,6 @@ ByTown=por ciudad
     BySalesRepresentative=Por representante de ventas
     LinkedToSpecificUsers=Enlace a un contacto de usuario en particular
     NoResults=No hay resultados
    -AdminTools=Herramientas de administración
     SystemTools=Herramientas del sistema
     ModulesSystemTools=Módulos de herramientas
     NoPhotoYet=No hay imagenes disponibles todavía
    @@ -449,7 +429,6 @@ SelectElementAndClick=Seleccione un elemento y haga clic en %s
     PrintFile=Imprimir archivo %s
     ShowTransaction=Mostrar entrada en la cuenta bancaria
     ShowIntervention=Mostrar la intervención
    -GoIntoSetupToChangeLogo=Vaya a Inicio-Configuración - Empresa para cambiar el logotipo o entrar en Inicio-Configuración-Mostrar para ocultar.
     Deny=Negar
     Denied=Negado
     ListOfTemplates=Lista de plantillas
    @@ -458,19 +437,15 @@ ViewList=Vista de la lista
     Sincerely=Sinceramente
     DeleteLine=Borrar línea
     NoPDFAvailableForDocGenAmongChecked=No hay PDF disponibles para la generación de documentos entre el registro guardado
    -TooManyRecordForMassAction=Demasiados registros seleccionados para la acción masiva. La acción está restringida a una lista de %s registros.
     NoRecordSelected=Ningún registro seleccionado
     MassFilesArea=Área para archivos construidos por acciones masivas
     ShowTempMassFilesArea=Mostrar área de archivos creados por acciones masivas
    -ConfirmMassDeletion=Confirmación de eliminación masiva
    -ConfirmMassDeletionQuestion=¿Seguro que quieres eliminar el %s registro seleccionado?
     ClassifyBilled=Clasificar facturas
     ClassifyUnbilled=Clasificar sin facturar
     ExportFilteredList=Exportar lista filtrada
     ExportList=Exportar lista
     Miscellaneous=Varios
     GroupBy=Agrupar por...
    -SomeTranslationAreUncomplete=Algunos idiomas pueden traducirse parcialmente o pueden contener errores. Si detecta alguno, puede arreglar archivos de idioma que se registren en <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
     DirectDownloadLink=Enlace de descarga directa (público/externo)
     DownloadDocument=Descargar documento
     ActualizeCurrency=Actualizar tipo de cambio
    @@ -481,9 +456,6 @@ ExpenseReport=Informe de gastos
     ExpenseReports=Reporte de gastos
     HRAndBank=HR y Banco
     TitleSetToDraft=Volver al borrador
    -ConfirmSetToDraft=¿Seguro que desea volver al estado de borrador?
    -EMailTemplates=Plantillas de correo electrónico
    -FileNotShared=Archivo no compartido con público externo
     LineNb=Número de línea
     MondayMin=Lun
     TuesdayMin=Mar
    @@ -510,8 +482,7 @@ SearchIntoCustomerProposals=Propuestas de clientes
     SearchIntoSupplierProposals=Propuestas del vendedor
     SearchIntoCustomerShipments=Envíos de clientes
     SearchIntoExpenseReports=Reporte de gastos
    -SearchIntoLeaves=Hojas
     CommentPage=Espacio para comentarios
     Everybody=Todos
     AssignedTo=Asignado a
    -ConfirmMassDraftDeletion=Confirmación de eliminación masiva
    +YouAreCurrentlyInSandboxMode=Actualmente estás en el modo%s "sandbox"
    diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang
    index 20cf51ae95f..e66bcace056 100644
    --- a/htdocs/langs/es_ES/accountancy.lang
    +++ b/htdocs/langs/es_ES/accountancy.lang
    @@ -38,6 +38,10 @@ GroupIsEmptyCheckSetup=El grupo está vacío, compruebe la configuración de gru
     DetailByAccount=Ver detalles por cuenta
     AccountWithNonZeroValues=Cuentas con valores no cero
     ListOfAccounts=Lista de cuentas
    +CountriesInEEC=Países en la CEE
    +CountriesNotInEEC=Países no incluidos en la CEE
    +CountriesInEECExceptMe=Países en la CEE excepto %s
    +CountriesExceptMe=Todos los países excepto %s
     
     MainAccountForCustomersNotDefined=Cuenta contable para clientes no definida en la configuración
     MainAccountForSuppliersNotDefined=Cuenta contable para proveedores no definida en la configuración
    @@ -55,7 +59,7 @@ AccountancyAreaDescChartModel=PASO %s: Crear un modelo de plan general contable
     AccountancyAreaDescChart=PASO %s: Crear o comprobar el contenido de su plan general contable desde el menú %s
     
     AccountancyAreaDescVat=PASO %s: Defina las cuentas contables para cada tasa de IVA. Para ello puede usar el menú %s.
    -AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
    +AccountancyAreaDescDefault=PASO %s: Defina las cuentas contables predeterminadas. Para ello puede utilizar el menú %s.
     AccountancyAreaDescExpenseReport=PASO %s: Defina las cuentas contables para los informes de gastos. Para ello puede utilizar el menú %s.
     AccountancyAreaDescSal=PASO %s: Defina las cuentas contables para los pagos de salarios. Para ello puede utilizar el menú %s.
     AccountancyAreaDescContrib=PASO %s: Defina las cuentas contables de los gastos especiales (impuestos varios). Para ello puede utilizar el menú %s.
    @@ -156,6 +160,7 @@ Docref=Referencia
     LabelAccount=Descripción
     LabelOperation=Etiqueta operación
     Sens=Sentido
    +LetteringCode=Cogido de letras
     Codejournal=Diario
     NumPiece=Apunte
     TransactionNumShort=Núm. transacción
    @@ -221,6 +226,7 @@ AutomaticBindingDone=Vinculación automática finalizada
     
     ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta ya que está siendo usada
     MvtNotCorrectlyBalanced=Asiento contabilizado incorrectamente. Debe=%s. Haber=%s
    +Balancing=Saldo
     FicheVentilation=Ficha contable
     GeneralLedgerIsWritten=Transacciones escritas en el Libro Mayor
     GeneralLedgerSomeRecordWasNotRecorded=Algunas de las operaciones no pueden contabilizarse. Si no hay otro mensaje de error, es probable que ya estén contabilizadas.
    @@ -262,7 +268,8 @@ Modelcsv_quadratus=Exportar hacia Quadratus QuadraCompta
     Modelcsv_ebp=Exportar a EBP
     Modelcsv_cogilog=Eportar a Cogilog
     Modelcsv_agiris=Exportar a Agiris
    -Modelcsv_configurable=Exportación configurable
    +Modelcsv_configurable=Exportación CSV Configurable
    +Modelcsv_FEC=Exportación FEC (Art. L47 A) (Prueba)
     ChartofaccountsId=Id plan contable
     
     ## Tools - Init accounting account on product / service
    diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang
    index 89b8247f846..9b4cfb9b724 100644
    --- a/htdocs/langs/es_ES/admin.lang
    +++ b/htdocs/langs/es_ES/admin.lang
    @@ -10,7 +10,7 @@ VersionDevelopment=Desarrollo
     VersionUnknown=Desconocida
     VersionRecommanded=Recomendada
     FileCheck=Comprobador de integridad de archivos
    -FileCheckDesc=Esta herramienta le permite comprobar la integridad de los archivos de la aplicación, comparando cada archivo con los oficiales. Se puede utilizar esta herramienta para detectar si algunos archivos fueron modificados por un hacker por ejemplo.
    +FileCheckDesc=Esta herramienta le permite verificar la integridad de los archivos y la configuración de su aplicación, comparando cada archivo con los oficiales. También se puede verificar el valor de algunas constantes de configuración. Se puede utilizar esta herramienta para detectar si algunos archivos fueron modificados por un hacker por ejemplo.
     FileIntegrityIsStrictlyConformedWithReference=La integridad de los archivos se ajusta estrictamente a la referencia.
     FileIntegrityIsOkButFilesWereAdded=La comprobación de la integridad de los archivos ha resultado exitosa, sin embargo se han agregado algunos archivos nuevos.
     FileIntegritySomeFilesWereRemovedOrModified=La comprobación de integridad de archivos ha fallado. Algunos archivos fueron modificados, eliminados o agregados.
    @@ -30,14 +30,14 @@ SessionSaveHandler=Modalidad de salvaguardado de sesiones
     SessionSavePath=Localización salvaguardado de sesiones
     PurgeSessions=Purga de sesiones
     ConfirmPurgeSessions=¿Realmente desea purgar todas las sesiones? Esto desconectará todos los usuarios (excepto a si mismo).
    -NoSessionListWithThisHandler=El gestor de período de sesiones configurado en su PHP no enumera las sesiones en curso
    +NoSessionListWithThisHandler=El gestor de sesiones configurado en su PHP no permite mostrar las sesiones en curso
     LockNewSessions=Bloquear nuevas conexiones
    -ConfirmLockNewSessions=¿Está seguro de querer restringir el acceso a Dolibarr a su usuario? Solamente el login <b>%s</b> podrá conectarse si confirma.
    +ConfirmLockNewSessions=¿Está seguro de querer restringir el acceso a Dolibarr únicamente a su usuario? Solamente el login <b>%s</b> podrá conectarse si confirma.
     UnlockNewSessions=Eliminar bloqueo de conexiones
     YourSession=Su sesión
     Sessions=Sesiones de usuarios
     WebUserGroup=Servidor web usuario/grupo
    -NoSessionFound=Parece que su PHP no puede listar las sesiones activas. El directorio utilizado para el guardado de sesiones (<b>%s</b>) puede estar protegido (por ejemplo, por los permisos del sistema operativo o por la directiva open_basedir de su PHP).
    +NoSessionFound=Parece que su PHP no puede listar las sesiones activas. El directorio de salvaguardado de sesiones (<b>%s</b>) puede estar protegido (por ejemplo, por los permisos del sistema operativo o por la directiva open_basedir de su PHP).
     DBStoringCharset=Codificación de la base de datos para el almacenamiento de datos
     DBSortingCharset=Codificación de la base de datos para clasificar los datos
     ClientCharset=Juego de caracteres del cliente
    @@ -50,7 +50,7 @@ ExternalUser=Usuario externo
     InternalUsers=Usuarios internos
     ExternalUsers=Usuarios externos
     GUISetup=Entorno
    -SetupArea=Área configuración
    +SetupArea=Configuración
     UploadNewTemplate=Nueva(s) plantilla(s) actualizada(s)
     FormToTestFileUploadForm=Formulario de prueba de subida de archivo (según opciones elegidas)
     IfModuleEnabled=Nota: sólo es eficaz si el módulo <b>%s</b> está activado
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=El código no puede contener el valor 0
     DisableJavascript=Deshabilitar Javascript y funciones Ajax (Recomendado para personas ciegas o navegadores de texto)
     UseSearchToSelectCompanyTooltip=También si tiene un gran número de terceros (> 100 000), puede aumentar la velocidad mediante el establecimiento COMPANY_DONOTSEARCH_ANYWHERE constante a 1 en Configuración-> Otros. La búsqueda será limitada a la creación de cadena.
     UseSearchToSelectContactTooltip=También si usted tiene un gran número de terceros (> 100 000), puede aumentar la velocidad mediante el establecimiento CONTACT_DONOTSEARCH_ANYWHERE constante a 1 en Configuración-> Otros. La búsqueda será limitada a la creación de cadena.
    -DelaiedFullListToSelectCompany=Esperar a que presione una tecla antes de cargar el contenido de la lista combinada de terceros (Esto puede incrementar el rendimiento si tiene un gran número de terceros) 
    -DelaiedFullListToSelectContact=Esperar a que presione una tecla antes de cargar el contenido de la lista combinada de contactos (Esto puede incrementar el rendimiento si tiene un gran número de contactos) 
    +DelaiedFullListToSelectCompany=Esperar a que presione una tecla antes de cargar el contenido de la lista combinada de terceros <br>Esto puede incrementar el rendimiento si tiene un gran número de terceros, pero es menos conveniente.
    +DelaiedFullListToSelectContact=Esperar a que presione una tecla antes de cargar el contenido de la lista combinada de contactos. <br> Esto puede incrementar el rendimiento si tiene un gran número de contactos, pero es menos conveniente.
     NumberOfKeyToSearch=Nº de caracteres para desencadenar la búsqueda: %s
     NotAvailableWhenAjaxDisabled=No disponible cuando Ajax esté desactivado
     AllowToSelectProjectFromOtherCompany=En un documento de un tercero, puede elegir un proyecto vinculado a otro tercero
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Vista previa no disponible
     ThemeCurrentlyActive=Tema actualmente activo
     CurrentTimeZone=Zona horaria PHP (Servidor)
     MySQLTimeZone=Zona horaria MySql (base de datos)
    -TZHasNoEffect=Las fechas se guardan y devuelven por el servidor de base de datos tal y como si se las hubieran enviado como una cadena. La zona horaria solamente tiene efecto si se usa la función UNIX_TIMESTAMP (que no debe ser usada por dolibarr, por lo que la zona horaria de la base de datos no debe tener efecto, aunque se haya cambiado después de introducir los datos).
    +TZHasNoEffect=Las fechas se guardan y devueltas por el servidor de base de datos tal y como si se las hubieran enviado como una cadena. La zona horaria solamente tiene efecto si se usa la función UNIX_TIMESTAMP (que no debe ser usada por Dolibarr, por lo que la zona horaria de la base de datos no debe tener efecto, aunque se haya cambiado después de introducir los datos).
     Space=Área
     Table=Tabla
     Fields=Campos
    @@ -111,7 +111,7 @@ NotConfigured=Módulo/Aplicación no configurado
     Active=Activo
     SetupShort=Config.
     OtherOptions=Otras opciones
    -OtherSetup=Varios
    +OtherSetup=Otras configuraciones
     CurrentValueSeparatorDecimal=Separador decimal
     CurrentValueSeparatorThousand=Separador miles
     Destination=destino
    @@ -126,8 +126,8 @@ PHPTZ=Zona horaria Servidor PHP
     DaylingSavingTime=Horario de verano (usuario)
     CurrentHour=Hora PHP (servidor)
     CurrentSessionTimeOut=Timeout sesión actual
    -YouCanEditPHPTZ=Para definir una zona horaria PHP diferente (no es necesario), pruebe a añadir un archivo .htacces con una línea como esta "SetEnvTZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Atención, al contrario de otras pantallas, las horas de esta página no se encuentran en su zona horaria local, sino en la zona horaria del servidor
    +YouCanEditPHPTZ=Para definir una zona horaria PHP diferente (no es necesario), pruebe a añadir un archivo .htacces con una línea como esta "SetEnvTZ Europe/Madrid"
    +HoursOnThisPageAreOnServerTZ=Atención, al contrario de otras pantallas, las horas de esta página no se encuentran en su zona horaria local, sino en la zona horaria del servidor.
     Box=Panel
     Boxes=Paneles
     MaxNbOfLinesForBoxes=Número máximo de líneas para paneles
    @@ -193,13 +193,13 @@ FeatureDisabledInDemo=Opción deshabilitada en demo
     FeatureAvailableOnlyOnStable=Funcionaliad disponible únicamente en versiones oficiales estables
     BoxesDesc=Los paneles son componentes que muestran algunos datos que pueden añadirse para personalizar algunas páginas. Puede elegir entre mostrar o no el panel mediante la selección de la página de destino y haciendo clic en 'Activar', o haciendo clic en la papelera para desactivarlo.
     OnlyActiveElementsAreShown=Sólo los elementos de <a href="%s">módulos activados</a> son mostrados.
    -ModulesDesc=Los módulos de Dolibarr definen qué funcionalidad está habilitada en el software. Algunos módulos requieren permisos que se deben conceder a los usuarios después de activar el módulo. Haga clic en el botón de encendido/apagado para activar un módulo/función.
    +ModulesDesc=Los módulos/aplicaciones definen qué funcionalidad está habilitada en el software. Algunos módulos requieren permisos que se deben conceder a los usuarios después de activar el módulo. Haga clic en el botón de encendido/apagado (al final de la línea del módulo) para activar/desactivar un módulo/aplicación.
     ModulesMarketPlaceDesc=Puede encontrar más módulos para descargar en sitios web externos en Internet ...
     ModulesDeployDesc=Si los permisos en su sistema de archivos lo permiten, puede utilizar esta herramienta para instalar un módulo externo. El módulo estará entonces visible en la pestaña <strong>%s</strong>.
     ModulesMarketPlaces=Buscar módulos externos...
     ModulesDevelopYourModule=Desarrolle sus propios módulos
     ModulesDevelopDesc=Usted puede desarrollar o encontrar un socio para que le desarrolle su módulo personalizado
    -DOLISTOREdescriptionLong=En lugar de activar el sitio web <a href="https://www.dolistore.com">www.dolistore.com</a> para encontrar un módulo externo, puede utilizar esta herramienta incrustada que hará que la búsqueda en la tienda para usted (puede ser lento, es necesario acceso a Internet) ...
    +DOLISTOREdescriptionLong=En lugar de ir al sitio web <a href="https://www.dolistore.com">www.dolistore.com</a> para encontrar un módulo externo, puede utilizar esta herramienta incorporada que hará la búsqueda en la tienda por usted (puede ser lento, es necesario acceso a Internet)...
     NewModule=Nuevo
     FreeModule=Gratis
     CompatibleUpTo=Compatible con la versión %s
    @@ -211,8 +211,8 @@ Nouveauté=Novedad
     AchatTelechargement=Comprar/Descargar
     GoModuleSetupArea=Para instalar un nuevo módulo, vaya al área de configuración de módulos en <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, el sitio oficial de módulos complementarios y para Dolibarr ERP/CRM
    -DoliPartnersDesc=Lista de empresas que ofrecen módulos y desarrollos a medida (Nota: cualquier persona con experiencia en programación PHP puede ofrecer desarrollos a medida para un proyecto de código abierto)
    -WebSiteDesc=Sitios web de referencia para encontrar más módulos ...
    +DoliPartnersDesc=Lista de empresas que ofrecen módulos y desarrollos a medida.<br> Nota: dado que Dolibarr es una aplicación de código abierto, <i>cualquier persona</i> con experiencia en programación PHP puede desarrollar un módulo.
    +WebSiteDesc=Sitios web de referencia para encontrar más módulos (no core)...
     DevelopYourModuleDesc=Algunas soluciones para desarrollar su propio módulo ...
     URL=Enlace
     BoxesAvailable=Paneles disponibles
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=No almacenar la contraseña sin cifrar en la base
     MainDbPasswordFileConfEncrypted=Encriptar la contraseña de la base en el archivo conf.php
     InstrucToEncodePass=Para tener la contraseña codificada en el archivo <b>conf.php</b>, reemplace la línea <br><b>$dolibarr_main_db_pass = "...";</b><br>por<br> <b>$dolibarr_main_db_pass = "crypted:%s";</b>
     InstrucToClearPass=Para tener la contraseña decodificada (visible) en el archivo <b>conf.php</b>, reemplace la línea <br><b>$dolibarr_main_db_pass = "crypted:...";</b><br>por<br><b>$dolibarr_main_db_pass = "%s";</b>
    -ProtectAndEncryptPdfFiles=Protección y encriptación de los pdf generados
    +ProtectAndEncryptPdfFiles=Protección y encriptación de los ficheros PDF NO está recomendado (puede fallar la generación de PDF en masa)
     ProtectAndEncryptPdfFilesDesc=La protección de un documento PDF lo mantiene disponible para leer e imprimir con cualquier navegador PDF. Sin embargo, la edición y la copia no son posibles. Tenga en cuenta que el uso de esta característica hace que la creación global de un conjunto de PDFs no funcione.
     Feature=Función
     DolibarrLicense=Licencia
    @@ -246,8 +246,8 @@ ExternalResources=Recursos externos
     SocialNetworks=Redes sociales
     ForDocumentationSeeWiki=Para la documentación de usuario, desarrollador o Preguntas Frecuentes (FAQ), consulte el wiki Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Para otras cuestiones o realizar sus propias consultas, puede utilizar el foro Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=Esta aplicación, independiente de Dolibarr, le permite ayudarle a obtener un servicio de soporte de Dolibarr.
    -HelpCenterDesc2=Algunos de estos servicios sólo están disponibles en <b>inglés</b>.
    +HelpCenterDesc1=Aquí hay algunos recursos para obtener ayuda y soporte de Dolibarr
    +HelpCenterDesc2=Algunos de estos recursos sólo están disponibles en <b>inglés</b>.
     CurrentMenuHandler=Gestor de menú
     MeasuringUnit=Unidad de medida
     LeftMargin=Margen izquierdo
    @@ -262,23 +262,27 @@ NoticePeriod=Plazo de aviso
     NewByMonth=Nuevo por mes
     Emails=E-Mails
     EMailsSetup=Configuración e-mails
    -EMailsDesc=Esta página le permite sobrescribir sus parámetros de PHP para el envío de correos electrónicos. En la mayoría de los casos, en el sistema operativo Unix/Linux, su configuración de PHP es correcta y estos parámetros son inútiles.
    +EMailsDesc=Esta página le permite sobrescribir sus parámetros de PHP para el envío de correos electrónicos. En la mayoría de los casos, en el sistema operativo Unix/Linux, su configuración de PHP es correcta y estos parámetros son innecesarios.
     EmailSenderProfiles=Perfiles de remitentes de e-mails
     MAIN_MAIL_SMTP_PORT=Puerto del servidor SMTP (Por defecto en php.ini: <b>%s</b>)
     MAIN_MAIL_SMTP_SERVER=Nombre host o ip del servidor SMTP (Por defecto en php.ini: <b>%s</b>)
     MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Puerto del servidor SMTP (No definido en PHP en sistemas de tipo Unix)
     MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nombre servidor o ip del servidor SMTP (No definido en PHP en sistemas de tipo Unix)
     MAIN_MAIL_EMAIL_FROM=E-mail del remitente para e-mails automáticos (por defecto en php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=E-mail a usar para los e-mails de error enviados
    -MAIN_MAIL_AUTOCOPY_TO= Enviar automáticamente copia oculta de los e-mails enviados a
    +MAIN_MAIL_ERRORS_TO=E-mail a usar para los e-mails de error enviados (campo 'Errors-To' en los emails enviados)
    +MAIN_MAIL_AUTOCOPY_TO= Enviar copia oculta (Bcc) de todos los emails enviados a
     MAIN_DISABLE_ALL_MAILS=Deshabilitar todos los envíos de e-mail (para propósitos de prueba o demostraciones)
     MAIN_MAIL_FORCE_SENDTO=Enviar todos los e-mails a (en lugar de destinatarios reales, para pruebas)
     MAIN_MAIL_ENABLED_USER_DEST_SELECT=Añadir usuarios de empleados con e-mail a la lista de destinatarios permitidos
     MAIN_MAIL_SENDMODE=Método de envío de e-mails
    -MAIN_MAIL_SMTPS_ID=ID de autentificación SMTP  si se requiere autenticación SMTP
    -MAIN_MAIL_SMTPS_PW=Contraseña autentificación SMTP si se requiere autentificación SMTP
    -MAIN_MAIL_EMAIL_TLS= Uso de encriptación TLS (SSL)
    -MAIN_MAIL_EMAIL_STARTTLS= Uso de encriptación TLS (STARTTLS)
    +MAIN_MAIL_SMTPS_ID=ID de autentificación SMTP  (si el servidor requiere autenticación)
    +MAIN_MAIL_SMTPS_PW=Contraseña SMTP (si el servidor requiere autentificación)
    +MAIN_MAIL_EMAIL_TLS=Usar encriptación TLS (SSL)
    +MAIN_MAIL_EMAIL_STARTTLS=Uso de encriptación TLS (STARTTLS)
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Usar DKIM para generar firma de e-mail
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Dominio de e-mail para usar con dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Nombre del selector dkim
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Clave privada para la firma dkim
     MAIN_DISABLE_ALL_SMS=Desactivar globalmente todo envío de SMS (para modo de pruebas o demo)
     MAIN_SMS_SENDMODE=Método de envío de SMS
     MAIN_MAIL_SMS_FROM=Número de teléfono por defecto para los envíos SMS
    @@ -309,15 +313,15 @@ DoNotUseInProduction=No usar en producción
     ThisIsProcessToFollow=Estos son los pasos para proceder:
     ThisIsAlternativeProcessToFollow=Este es una configuración alternativa para procesar manualmente:
     StepNb=Paso %s
    -FindPackageFromWebSite=Buscar el paquete que responde a su necesidad (por ejemplo en el sitio web %s)
    +FindPackageFromWebSite=Buscar el paquete que proporciona la funcionalidad que necesita (por ejemplo en el sitio web oficial %s)
     DownloadPackageFromWebSite=Descargue el paquete (por ejemplo desde el sitio web oficial %s).
     UnpackPackageInDolibarrRoot=Descomprimir los archivos comprimidos en el directorio del servidor dedicado a Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=Para instalar un módulo externo, descomprima el archivo en el directorio del servidor dedicado a los módulos: <b>%s</b>
    -SetupIsReadyForUse=La instalación del módulo ha concluido. Sin embargo, debe habilitar y configurar el módulo en su aplicación, vaya a la página para configurar los módulos: <a href="%s">%s</a>.
    +UnpackPackageInModulesRoot=Para instalar un módulo externo, descomprima el archivo en el directorio del servidor dedicado a los módulos externos: <br><b>%s</b>
    +SetupIsReadyForUse=La instalación del módulo ha concluido. Sin embargo, debe habilitar y configurar el módulo en su aplicación, yendo a la página para configurar los módulos: <a href="%s">%s</a>.
     NotExistsDirect=El directorio raíz alternativo no está configurado en un directorio existente.<br>
     InfDirAlt=Desde la versión 3, es posible definir un directorio raíz alternativo. Esto le permite almacenar, en un directorio dedicado, plug-ins y plantillas personalizadas.<br>Sólo cree un directorio en la raíz de Dolibarr (por ejemplo: custom).<br>
     InfDirExample=<br>Luego indíquelo en el archivo <strong>conf.php</strong><br> $ dolibarr_main_url_root_alt = 'http://miservidor /custom'<br>$ dolibarr_main_document_root_alt = '/ruta/de/dolibarr/htdocs/custom '<br>Si estas líneas se encuentran comentadas con "#", para habilitarlas, basta con descomentar eliminando el carácter "#".
    -YouCanSubmitFile=En este paso, puede enviar su archivo del módulo aquí:
    +YouCanSubmitFile=Alternativamente, puedes subir el módulo .zip comprimido:
     CurrentVersion=Versión actual de Dolibarr
     CallUpdatePage=Ir a la página de actualización de la estructura de la base de datos y sus datos: %s.
     LastStableVersion=Última versión estable
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Vea el wiki para más detalles de todos los actores y de su or
     UseACacheDelay= Demora en caché de la exportación en segundos (0 o vacio sin caché)
     DisableLinkToHelpCenter=Ocultar el enlace "¿Necesita soporte o ayuda?" en la página de login
     DisableLinkToHelp=Ocultar enlace a la ayuda en línea "<b>%s</b>"
    -AddCRIfTooLong=No hay líneas de corte automático, de modo que si el texto es demasiado largo en los documentos, debe agregar sus propios retornos de carro en el texto mecanografiado.
    -ConfirmPurge=¿Está seguro de querer realizar esta purga?<br>Esto borrará definitivamente todos los datos de sus archivos (área GED, archivos adjuntos etc.).
    +AddCRIfTooLong=No hay líneas de corte automático, de modo que si el texto es demasiado largo no se mostrará en los documentos. Por favor añada un salto de línea en el área de texto si fuese necesario.
    +ConfirmPurge=¿Está seguro de querer realizar esta purga?<br>Esto borrará definitivamente todos los datos de sus archivos (área GED, archivos adjuntos...).
     MinLength=Longuitud mínima
     LanguageFilesCachedIntoShmopSharedMemory=archivos .lang en memoria compartida
     LanguageFile=Archivo de idioma
    -ExamplesWithCurrentSetup=Ejemplos con la configuración activa actual
    +ExamplesWithCurrentSetup=Ejemplos con la configuración actual
     ListOfDirectories=Listado de directorios de plantillas OpenDocument
     ListOfDirectoriesForModelGenODT=Listado de directorios que contienen las plantillas de archivos con el formato OpenDocument.<br>Ponga aquí la ruta completa de directorios.<br>Añada un retorno de carro entre cada directorio<br> Para agregar un directorio del módulo GED, agregue aquí <b>DOL_DATA_ROOT/ecm/sunombrededirectorio.</b><br><br>Los archivos de esos directorios deben terminar con <b>.odt</b> o <b>.ods</b>.
    -NumberOfModelFilesFound=Número de archivos de plantillas ODT encontrados en este/estos directorio(s)
    +NumberOfModelFilesFound=Número de archivos de plantillas ODT/ODS encontrados en estos directorios
     ExampleOfDirectoriesForModelGen=Ejemplos de sintaxis:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=Colocando los siguientes tags en la plantilla, obtendrá una sustitución con el valor personalizado al generar el documento:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Crear_un_modelo_de_documento_ODT
    @@ -370,14 +374,14 @@ ResponseTimeout=Timeout de respuesta
     SmsTestMessage=Mensaje de prueba de __PHONEFROM__ para __PHONETO__
     ModuleMustBeEnabledFirst=El módulo <b>%s</b> debe ser activado antes si necesita esta funcionalidad.
     SecurityToken=Clave para encriptar urls
    -NoSmsEngine=No hay disponible ningún gestor de envío de SMS. Los gestores de envío de SMS no se instalan por defecto ya que dependen de cada proveedor, sin embargo puede encontrarlos en la plataforma %s.
    +NoSmsEngine=No hay disponible ningún gestor de envío de SMS. Los gestores de envío de SMS no se instalan por defecto ya que dependen de cada proveedor, sin embargo puede encontrarlos en la plataforma %s
     PDF=PDF
     PDFDesc=Puede definir aquí las opciones globales para la generación de los PDF
     PDFAddressForging=Reglas de visualización de direcciones
     HideAnyVATInformationOnPDF=Ocultar toda la información relacionada con el IVA en la generación de los PDF
     PDFRulesForSalesTax=Reglas de IVA
     PDFLocaltax=Reglas para %s
    -HideLocalTaxOnPDF=Ocultar %s tasa en la columna de impuestos del pdf
    +HideLocalTaxOnPDF=Ocultar la tasa %s en la columna de impuestos del pdf
     HideDescOnPDF=Ocultar descripción de los productos en la generación de los PDF
     HideRefOnPDF=Ocultar referencia de los productos en la generación de los PDF
     HideDetailsOnPDF=Ocultar detalles de las líneas en la generación de los PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Seguridad de las URLs
     SecurityTokenIsUnique=¿Usar un parámetro securekey único para cada URL?
     EnterRefToBuildUrl=Introduzca la referencia del objeto %s
     GetSecuredUrl=Obtener la URL calculada
    -ButtonHideUnauthorized=Ocultar a los usuarios no administradores los botones de acciones no autorizadas en vez de mostrarlos atenuados
    +ButtonHideUnauthorized=Ocultar botones de acciones no autorizadas a los usuarios no administradores en vez de mostrarlos atenuados
     OldVATRates=Tasa de IVA antigua
     NewVATRates=Tasa de IVA nueva
     PriceBaseTypeToChange=Cambiar el precio cuya referencia de base es
    @@ -408,7 +412,7 @@ ExtrafieldSelect = Lista de selección
     ExtrafieldSelectList = Lista desde una tabla
     ExtrafieldSeparator=Separador (No es un campo)
     ExtrafieldPassword=Contraseña
    -ExtrafieldRadio=Botón de selección excluyente
    +ExtrafieldRadio=Botón tipo radio (solo uno seleccionado)
     ExtrafieldCheckBox=Casilla de verificación
     ExtrafieldCheckBoxFromList=Casilla de selección de tabla
     ExtrafieldLink=Objeto adjuntado
    @@ -432,7 +436,7 @@ DefaultLink=Enlace por defecto
     SetAsDefault=Establecer por defecto
     ValueOverwrittenByUserSetup=Atención: Este valor puede ser sobreescrito por un valor específico de la configuración del usuario (cada usuario puede tener su propia url clicktodial)
     ExternalModule=Módulo externo - Instalado en el directorio %s
    -BarcodeInitForThirdparties=Inicio masivo de código de barras para terceros
    +BarcodeInitForthird-parties=Inicialización masiva de códigos de barras para terceros
     BarcodeInitForProductsOrServices=Inicio masivo de código de barras para productos o servicios
     CurrentlyNWithoutBarCode=Actualmente tiene <strong>%s</strong> registros de <strong>%s</strong> %s sin código de barras definido.
     InitEmptyBarCode=Iniciar valor para los %s registros vacíos
    @@ -446,9 +450,9 @@ NoDetails=No hay más detalles al pie de página
     DisplayCompanyInfo=Mostrar dirección de la empresa
     DisplayCompanyManagers=Mostrar nombres de los gestores
     DisplayCompanyInfoAndManagers=Mostrar dirección de la empresa y nombres de los gestores
    -EnableAndSetupModuleCron=Si desea tener esta factura recurrente para generarla automáticamente, el módulo *%s* debe estar activado y configurado correctamente. De lo contrario, la generación de facturas debe hacerse manualmente desde esta plantilla con el botón  *Crear*. Tenga en cuenta que incluso si se habilita la generación automática, todavía puede lanzarla generación manual. No es posible la generación de duplicados para el mismo período.
    -ModuleCompanyCodeCustomerAquarium=%s seguido por un código de cliente  para código de contabilidad
    -ModuleCompanyCodeSupplierAquarium=%s seguido por un código de proveedor  para código de contabilidad
    +EnableAndSetupModuleCron=Si desea que esta factura recurrente se generare automáticamente, el módulo *%s* debe estar activado y configurado correctamente. De lo contrario, la generación de facturas debe hacerse manualmente desde esta plantilla con el botón  *Crear*. Tenga en cuenta que incluso si se habilita la generación automática, todavía puede lanzar la generación manual. No es posible la generación de duplicados para el mismo período.
    +ModuleCompanyCodeCustomerAquarium=%s seguido por un código de cliente para código de contabilidad de cliente
    +ModuleCompanyCodeSupplierAquarium=%s seguido por un código de proveedor  para código de contabilidad de proveedor
     ModuleCompanyCodePanicum=Devuelve un código contable vacío.
     ModuleCompanyCodeDigitaria=El código contable depende del código de tercero. El código está formado por carácter ' C ' en primera posición seguido de los 5 primeros caracteres del código tercero.
     Use3StepsApproval=De forma predeterminada, los pedidos a proveedor deben ser creados y aprobados por 2 usuarios diferentes (un paso/usuario para crear y un paso/usuario para aprobar. Tenga en cuenta que si el usuario tiene tanto el permiso para crear y aprobar, un paso usuario será suficiente) . Puede pedir con esta opción introducir una tercera etapa de aprobación/usuario, si la cantidad es superior a un valor específico (por lo que serán necesarios 3 pasos: 1 validación, 2=primera aprobación y 3=segunda aprobación si la cantidad es suficiente).<br>Deje vacío si una aprobación (2 pasos) es suficiente, si se establece en un valor muy bajo (0,1) se requiere siempre una segunda aprobación (3 pasos).
    @@ -456,15 +460,15 @@ UseDoubleApproval=Usar 3 pasos de aprobación si el importe (sin IVA) es mayor q
     WarningPHPMail=ADVERTENCIA: A menudo es mejor configurar el email para usar el servidor de tu proveedor en lugar de la configuración por defecto. Algunos proveedores de correo electrónico (como Yahoo) no le permiten enviar un e-mail desde otro servidor que no sea el servidor de Yahoo. Tu configuración actual usa el servidor de la aplicación para enviar emails y no el servidor de tu proveedor de correo, así que algunos destinatarios (aquellos compatibles con el protocolo restrictivo DMARC), preguntarán a tu proveedor de correo si pueden aceptar el correo y otros proveedores (como Yahoo) pueden responder "no" porque el servidor no es uno de sus servidores, así que tus correos enviados pueden no ser aceptados (vigila también la cuota de envío de tu servidor de correo). <br>Si su proveedor de correo electrónico (como Yahoo) tiene esta restricción, debe cambiar la configuración de e-mail para elegir el método "servidor SMTP" y introducir el servidor SMTP y credenciales proporcionadas por su proveedor de correo electrónico (pregunte a su proveedor de correo electrónico las credenciales SMTP para su cuenta).
     WarningPHPMail2=Si su proveedor SMTP de correo electrónico necesita restringir el cliente de correo electrónico a algunas direcciones IP (muy raro), esta es la dirección IP de su aplicación ERP CRM: <strong>%s</strong>.
     ClickToShowDescription=Clic para ver la descripción
    -DependsOn=Este módulo necesita los módulos
    +DependsOn=Este módulo necesita el módulo(s)
     RequiredBy=Este módulo es requerido por los módulos
    -TheKeyIsTheNameOfHtmlField=La clave es el nombre del campo HTML. es necesario tener conocimientos técnicos para leer el contenido de la página HTML para obtener el nombre clave de un campo.
    -PageUrlForDefaultValues=Debe introducir aquí la URL relativa de la página. Si incluye parámetros en URL, los valores predeterminados serán efectivos si todos los parámetros están configurados con el mismo valor. Ejemplos:
    -PageUrlForDefaultValuesCreate=<br> Para que el formulario cree un nuevo tercero, es <strong> %s</strong>, <br> Si queremos que el valor predeterminado sea sólo una url con algún parámetro, podemos usar <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>Para la página que lista terceros, es <strong>%s</strong>,<br>si queremos que el valor predeterminado sea sólo una url con algún parámetro, podemos usar <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=Este es el nombre del del campo HTML. Son necesarios tener conocimientos técnicos para leer el contenido de la página HTML para obtener el nombre clave de un campo.
    +PageUrlForDefaultValues=Debe introducir aquí la URL relativa de la página. Si incluye parámetros en la URL, los valores predeterminados serán efectivos si todos los parámetros están configurados con el mismo valor.
    +PageUrlForDefaultValuesCreate=<br> Ejemplo: <br> Para el formulario para crear un nuevo tercero, es <strong> %s </strong>. <br> Para la URL de los módulos externos instalados en el directorio custom, no incluya "custom/", así que use la ruta como <strong> mymodule/mypage.php </strong> y no custom/mymodule/mypage.php. <br> Si desea un valor predeterminado solo si la url tiene algún parámetro, puede usar <strong> %s</strong>
    +PageUrlForDefaultValuesList=<br> Ejemplo: <br> Para la página que lista a terceros, es <strong> %s </strong>. <br> Para la URL de los módulos externos instalados en el directorio custom, no incluya "custom/" así que use la ruta como <strong> mymodule/mypagelist.php </strong> y no custom/mymodule/mypagelist.php. <br> Si desea un valor predeterminado solo si url tiene algún parámetro, puede usar <strong> %s</strong>
     EnableDefaultValues=Habilitar el uso de valores predeterminados personalizados
     EnableOverwriteTranslation=Habilitar el uso de la traducción sobrescrita
    -GoIntoTranslationMenuToChangeThis=Se ha encontrado una traducción para la clave con este código, por lo que para cambiar este valor, debe editarlo desde Inicio-Configuración-Traducción.
    +GoIntoTranslationMenuToChangeThis=Se ha encontrado una traducción para la clave con este código. Para cambiar este valor, debe editarlo desde Inicio-Configuración-Traducción.
     WarningSettingSortOrder=Atención, establecer un orden predeterminado puede resultar en un error técnico al pasar a la página de lista si un campo es un campo desconocido. Si experimenta un error de este tipo, vuelva a esta página para eliminar el orden predeterminado y restaurar el comportamiento predeterminado.
     Field=Campo
     ProductDocumentTemplates=Plantillas de documentos para generar documento de producto
    @@ -477,15 +481,17 @@ davDescription=Agregue un componente para ser un servidor DAV
     DAVSetup=Configuración del módulo DAV
     DAV_ALLOW_PUBLIC_DIR=Habilite el directorio público (directorio WebDav sin necesidad de iniciar sesión)
     DAV_ALLOW_PUBLIC_DIRTooltip=El directorio público de WebDav es un directorio WebDAV al que todos pueden acceder (en modo lectura y escritura), sin necesidad de tener/usar una cuenta de inicio de sesión/contraseña existente.
    +DAV_ALLOW_ECM_DIR=Activar el directorio raíz del módulo GED (autentificación requerida)
    +DAV_ALLOW_ECM_DIRTooltip=El directorio raíz donde se cargan manualmente todos los archivos cuando se utiliza el módulo GED. Al igual que para la función de la interfaz web, necesitará un nombre de usuario/contraseña válido con permisos adecuados para acceder a ella.
     # Modules
     Module0Name=Usuarios y grupos
     Module0Desc=Gestión de Usuarios / Empleados y grupos
     Module1Name=Terceros
    -Module1Desc=Gestión de terceros (empresas, particulares) y contactos
    +Module1Desc=Gestión de terceros y contactos (clientes, clientes potenciales...)
     Module2Name=Comercial
     Module2Desc=Gestión comercial
     Module10Name=Contabilidad
    -Module10Desc=Activación de informes simples de contabilidad (diarios, ventas) basados en el contenido de la base de datos. Sin desgloses.
    +Module10Desc=Activación de informes simples de contabilidad (diarios, ventas) basados en el contenido de la base de datos. No utiliza ninguna tabla de contabilidad.
     Module20Name=Presupuestos
     Module20Desc=Gestión de presupuestos/propuestas comerciales
     Module22Name=E-Mailings
    @@ -495,7 +501,7 @@ Module23Desc=Realiza el seguimiento del consumo de energías
     Module25Name=Pedidos de clientes
     Module25Desc=Gestión de pedidos de clientes
     Module30Name=Facturas y abonos
    -Module30Desc=Gestión de facturas y abonos a clientes. Gestión facturas de proveedores
    +Module30Desc=Gestión de facturas y abonos a clientes. Gestión facturas y abonos de proveedores
     Module40Name=Proveedores
     Module40Desc=Proveedores y gestión de compras (pedidos de compra y facturación)
     Module42Name=Registros de depuración
    @@ -546,27 +552,27 @@ Module310Name=Miembros
     Module310Desc=Gestión de miembros de una asociación
     Module320Name=Hilos RSS
     Module320Desc=Adición de hilos de información RSS en las pantallas Dolibarr
    -Module330Name=Marcadores
    -Module330Desc=Gestión de marcadores
    -Module400Name=Proyectos/Oportunidades/Leads
    -Module400Desc=Gestión de proyectos, oportunidades/leads o tareas, Puede asignar cualquier elemento (factura, pedido, presupuesto, intervención...) a un proyecto y obtener una vista transversal del proyecto
    +Module330Name=Marcadores y atajos
    +Module330Desc=Crear marcadores, siempre accesibles, a páginas internas o externas a las que suele acceder
    +Module400Name=Proyectos u Oportunidades
    +Module400Desc=Gestión de proyectos, oportunidades/leads y/o tareas. También puedes asignar cualquier elemento (factura, pedido, presupuesto, intervención...) a un proyecto y obtener una vista transversal del proyecto
     Module410Name=Webcalendar
     Module410Desc=Interfaz con el calendario Webcalendar
     Module500Name=Impuestos y gastos especiales
    -Module500Desc=Gestión de gastos especiales (impuestos, gastos sociales, dividendos)
    +Module500Desc=Gestión de gastos especiales (impuestos, gastos sociales, dividendos...)
     Module510Name=Pago de salarios
    -Module510Desc=Registro y seguimiento del pago de los salarios de su empleado
    +Module510Desc=Registro y seguimiento del pago de los salarios de sus empleados
     Module520Name=Crédito
     Module520Desc=Gestión de créditos
     Module600Name=Notificaciones
    -Module600Desc=Enviar notificaciones por e-mail (desencadenados por algunos eventos) a los usuarios (configuración definida para cada usuario), los contactos de terceros (configuración definida en cada tercero) o e-mails fijos
    -Module600Long=Tenga en cuenta que este módulo está dedicado a enviar mensajes de e-mail en tiempo real cuando se produce un evento. Si está buscando una función para enviar recordatorios por e-mail de los eventos de su agenda, vaya a la configuración del módulo Agenda.
    +Module600Desc=Enviar notificaciones por e-mail desencadenados por algunos eventos a los usuarios (configuración definida para cada usuario), los contactos de terceros (configuración definida en cada tercero) o e-mails definidos
    +Module600Long=Tenga en cuenta que este módulo envía mensajes de e-mail en tiempo real cuando se produce un evento. Si está buscando una función para enviar recordatorios por e-mail de los eventos de su agenda, vaya a la configuración del módulo Agenda.
     Module610Name=Variantes de productos
    -Module610Desc=Permite la creación de variantes de productos en función de los atributos (color, tamaño, ...)
    +Module610Desc=Permite la creación de variantes de productos (color, talla, etc.)
     Module700Name=Donaciones
     Module700Desc=Gestión de donaciones
     Module770Name=Informes de gastos
    -Module770Desc=Gestión de informes de gastos (transporte, dietas, etc.)
    +Module770Desc=Gestión de informes de gastos (transporte, dietas...)
     Module1120Name=Presupuesto de proveedor
     Module1120Desc=Solicitud presupuesto y precios a proveedor
     Module1200Name=Mantis
    @@ -574,15 +580,15 @@ Module1200Desc=Interfaz con el sistema de seguimiento de incidencias Mantis
     Module1520Name=Generación Documento
     Module1520Desc=Generación de documentos de correo masivo
     Module1780Name=Etiquetas/Categorías
    -Module1780Desc=Crear etiquetas/Categoría(Productos, clientes,proveedores,contactos y miembros)
    +Module1780Desc=Crear etiquetas/categoría (productos, clientes, proveedores, contactos o miembros)
     Module2000Name=Editor WYSIWYG
    -Module2000Desc=Permite la edición de un área de texto con un editor avanzado (Basado en CKEditor)
    +Module2000Desc=Permite la edición de un área de texto usando CKEditor
     Module2200Name=Precios dinámicos
     Module2200Desc=Activar el uso de expresiones matemáticas para precios
     Module2300Name=Tareas programadas
     Module2300Desc=Gestión del Trabajo programado (alias cron)
     Module2400Name=Eventos/Agenda
    -Module2400Desc=Siga los eventos o citas. Registre eventos manuales en las agendas o deje a la aplicación registrar eventos automáticos para fines de seguimiento. Este es un módulo importante para una buena gestión de relaciones con clientes o proveedores.
    +Module2400Desc=Siga los eventos o citas. Deje que Dolibarr registre eventos automáticos a fin de realizar seguimiento o registre eventos manuales o reuniones. Este es el módulo más importante para una buena gestión de relaciones con clientes o proveedores.
     Module2500Name=GED / SGD
     Module2500Desc=Sistema de Gestión de Documentos / Gestión Electrónica de Contenidos. Organización automática de sus documentos generados o almacenados. Compártalos cuando lo necesite.
     Module2600Name=API/Servicios web (servidor SOAP)
    @@ -590,34 +596,38 @@ Module2600Desc=Habilitar los servicios Dolibarr SOAP proporcionando servicios AP
     Module2610Name=API/Servicios web (servidor REST)
     Module2610Desc=Habilitar los servicios Dolibarr REST proporcionando servicios API
     Module2660Name=Llamada Webservices (Cliente SOAP)
    -Module2660Desc=Habilitar los web services de Dolibarr (puede ser utilizado para grabar datos/solicitudes de servidores externos. De momento solo se soporta pedidos a proveedor)
    +Module2660Desc=Habilitar los servicios web de Dolibarr (puede ser utilizado para grabar datos/solicitudes de servidores externos. De momento solo se soporta pedidos a proveedor)
     Module2700Name=Gravatar
    -Module2700Desc=Utiliza el servicio en línea de Gravatar (www.gravatar.com) para mostrar fotos de los usuarios/miembros (que se encuentran en sus mensajes de correo electrónico). Necesita un acceso a Internet
    +Module2700Desc=Utiliza el servicio en línea de Gravatar (www.gravatar.com) para mostrar fotos de los usuarios/miembros (que se encuentran en sus correos electrónicos). Necesita un acceso a Internet
     Module2800Desc=Cliente FTP
     Module2900Name=GeoIPMaxmind
     Module2900Desc=Capacidades de conversión GeoIP Maxmind
     Module3100Name=Skype
     Module3100Desc=Añadir un botón Skype en las fichas de usuarios/terceros/contactos/miembros
     Module3200Name=Archivos inalterables
    -Module3200Desc=Activar el registro de algunos eventos empresariales en un registro no reversible. Los eventos se archivan en tiempo real. El registro es una tabla de sucesos encadenados que se pueden leer y exportar. Este módulo puede ser obligatorio en algunos países.
    +Module3200Desc=Activar el registro inalterable de eventos empresariales. Los eventos se archivan en tiempo real. El registro es una tabla de sucesos encadenados que se pueden leer y exportar. Este módulo puede ser obligatorio en algunos países.
     Module4000Name=RRHH
     Module4000Desc=Departamento de Recursos Humanos (gestión del departamento, contratos de empleados)
     Module5000Name=Multi-empresa
     Module5000Desc=Permite gestionar varias empresas
     Module6000Name=Flujo de trabajo
    -Module6000Desc=Workflow management (automatic creation of object and/or automatic status change)
    +Module6000Desc=Gestión de flujos de trabajo (creación automática de objeto y/o cambio de estado automático)
     Module10000Name=Sitios web
     Module10000Desc=Cree sitios web públicos con un editor WYSIWYG. Configure el servidor web (Apache, Nginx,...) para que apunte al directorio dedicado para tenerlo en línea en Internet.
     Module20000Name=Gestión de días libres retribuidos
    -Module20000Desc=Gestión de los días libres retribuidos de los empleados
    +Module20000Desc=Gestión de los días libres de los empleados
     Module39000Name=Lotes de productos
     Module39000Desc=Gestión de lotes o series, fechas de caducidad y venta de los productos
    +Module40000Name=Multimoneda
    +Module40000Desc=Usa divisas alternativas en precios y documentos
     Module50000Name=PayBox
    -Module50000Desc=Módulo para ofrecer pagos online aceptando pagos con tarjeta de Débito/Crédito via PayBox. Esto puede ser usado para permitir a tus clientes realizar pagos libres o pagos en un objeto de Dolibarr en particular (factura, pedido...)
    +Module50000Desc=Ofrece a los clientes pagos online vía PayBox (tarjetas de crédito/débito). Esto puede ser usado para permitir a sus clientes realizar pagos libres o pagos en un objeto de Dolibarr en particular (factura, pedido...)
     Module50100Name=TPV
     Module50100Desc=Módulo punto de venta (TPV)
    +Module50150Name=Terminales Punto de Venta
    +Module50150Desc=Módulo punto de venta (Pantalla táctil TPV)
     Module50200Name=Paypal
    -Module50200Desc=Módulo para ofrecer pagos online aceptando pagos utilizando PayPal (tarjeta de crédito o crédito PayPal). Esto puede ser usado para permitir a tus clientes realizar pagos libres o pagos en un objeto de Dolibarr en particular (factura, pedido...)
    +Module50200Desc=Ofrece a los clientes pagos online  vía PayPal (cuenta PayPal o tarjetas de crédito/débito). Esto puede ser usado para permitir a sus clientes realizar pagos libres o pagos en un objeto de Dolibarr en particular (factura, pedido...)
     Module50400Name=Contabilidad (avanzada)
     Module50400Desc=Gestión contable (doble partida, libros generales y auxiliares). Exporte a varios formatos de software de contabilidad.
     Module54000Name=PrintIPP
    @@ -628,7 +638,7 @@ Module59000Name=Márgenes
     Module59000Desc=Módulo para gestionar los márgenes de beneficio
     Module60000Name=Comisiones
     Module60000Desc=Módulo para gestionar las comisiones de venta
    -Module62000Name=Incoterm
    +Module62000Name=Incoterms
     Module62000Desc=Añade funciones para gestionar Incoterm
     Module63000Name=Recursos
     Module63000Desc=Gestionar recursos (impresoras, automóviles, salas, ...) puede compartirlos en  los eventos
    @@ -651,9 +661,9 @@ Permission32=Crear/modificar productos
     Permission34=Eliminar productos
     Permission36=Ver/gestionar los productos ocultos
     Permission38=Exportar productos
    -Permission41=Leer proyectos y tareas (proyectos compartidos y proyectos de los que soy contacto). También puede introducir tiempos consumidos en tareas asignadas (Hojas de tiempo).
    +Permission41=Leer proyectos y tareas (proyectos compartidos y proyectos de los que soy contacto). También puede introducir tiempos consumidos, para mí o mis subordinados, en tareas asignadas (Hojas de tiempo).
     Permission42=Crear/modificar proyectos (proyectos compartidos y proyectos de los que soy contacto). También puede crear tareas y asignar usuarios a proyectos y tareas
    -Permission44=Eliminar proyectos y tareas (compartidos o soy contacto)
    +Permission44=Eliminar proyectos (compartidos o soy contacto)
     Permission45=Exportar proyectos
     Permission61=Consultar intervenciones
     Permission62=Crear/modificar intervenciones
    @@ -750,12 +760,12 @@ Permission244=Ver contenido de categorías ocultas
     Permission251=Consultar otros usuarios
     PermissionAdvanced251=Consultar otros usuarios
     Permission252=Consultar los permisos de otros usuarios
    -Permission253=Crear/modificar otros usuarios y sus permisos
    +Permission253=Crear/modificar otros usuarios, grupos y permisos
     PermissionAdvanced253=Crear/modificar usuarios internos/externos y sus permisos
     Permission254=Crear/modificar únicamente usuarios externos
     Permission255=Modificar la contraseña de otros usuarios
     Permission256=Eliminar o desactivar otros usuarios
    -Permission262=Ampliar el acceso a todos los terceros (no sólo a los terceros que el usuario es comercial).<br>No efectivo para usuarios externos (Solamente usuarios internos. Los externos están limitados a ellos mismos para presupuestos, facturas, contratos, etc.).<br>No efectivo para proyectos (solamente permisos de visión y asignación de los proyectos).
    +Permission262=Ampliar el acceso a todos los terceros (no sólo a los terceros que el usuario es comercial).<br>No efectivo para usuarios externos (siempre están limitados a sus propios presupuestos, facturas, contratos, etc.).<br>No efectivo para proyectos (solamente permisos de visión y asignación de los proyectos).
     Permission271=Consultar el CA
     Permission272=Consultar las facturas
     Permission273=Emitir las facturas
    @@ -787,11 +797,9 @@ Permission401=Consultar haberes
     Permission402=Crear/modificar haberes
     Permission403=Validar haberes
     Permission404=Eliminar haberes
    -Permission501=Consultar contratos/salarios de empleados
    -Permission502=Crear/modificar contratos/salarios del empleado
     Permission511=Consultar pagos de salarios
     Permission512=Crear/modificar pagos de salarios
    -Permission514=Eliminar salarios
    +Permission514=Eliminar pagos de salarios
     Permission517=Exportar salarios
     Permission520=Consultar Créditos
     Permission522=Crear/modificar Créditos
    @@ -844,11 +852,11 @@ Permission1251=Lanzar las importaciones en masa a la base de datos (carga de dat
     Permission1321=Exportar facturas a clientes, campos adicionales y cobros
     Permission1322=Reabrir una factura pagada
     Permission1421=Exportar pedidos de clientes y campos adicionales
    -Permission20001=Leer peticiones días retribuidos (suyos y subordinados)
    -Permission20002=Crear/modificar peticiones días retribuidos (suyos y subordinados)
    +Permission20001=Leer peticiones días retribuidos (suyos y de sus subordinados)
    +Permission20002=Crear/modificar peticiones días retribuidos (suyos y de sus subordinados)
     Permission20003=Eliminar peticiones de días retribuidos
     Permission20004=Leer todas las peticiones de días retribuidos (incluso no subordinados)
    -Permission20005=Crear/modificar las peticiones de días retribuidos (incluso no subordinados)
    +Permission20005=Crear/modificar las peticiones de días retribuidos para todos (incluso no subordinados)
     Permission20006=Administrar días retribuidos (configuración y actualización de balance)
     Permission23001=Consultar Trabajo programado
     Permission23002=Crear/actualizar Trabajo programado
    @@ -911,8 +919,8 @@ DictionaryAccountancyJournal=Diarios contables
     DictionaryEMailTemplates=Plantillas E-Mails
     DictionaryUnits=Unidades
     DictionaryProspectStatus=Estado cliente potencial
    -DictionaryHolidayTypes=Tipos de honorarios
    -DictionaryOpportunityStatus=Estado de oportunidad para el proyecto/lead
    +DictionaryHolidayTypes=Tipos de vacaciones
    +DictionaryOpportunityStatus=Estado de oportunidad para el proyecto/oportunidad
     DictionaryExpenseTaxCat=Informe de gastos - Categorías de transporte
     DictionaryExpenseTaxRange=Informe de gastos - Rango por categoría de transporte
     SetupSaved=Configuración guardada
    @@ -921,9 +929,9 @@ BackToModuleList=Volver a la lista de módulos
     BackToDictionaryList=Volver a la lista de diccionarios
     TypeOfRevenueStamp=Tipos de sellos fiscales
     VATManagement=Gestión IVA
    -VATIsUsedDesc=Por defecto cuando se crean presupuestos, facturas, pedidos, etc. el tipo de IVA sigue la regla estándar seleccionada: <br>. Si el vendedor no está sujeto a IVA, entonces IVA por defecto es 0. Fin de la regla <br> Si el país del vendedor =  país del comprador, entonces el IVA por defecto es igual al IVA del producto en el país del vendedor. Fin de la regla. <br> Si el vendedor y el comprador son de la Comunidad Europea y los bienes son productos de transporte (coche, barco, avión), el IVA por defecto es 0 (El IVA debe ser pagado por el comprador a la hacienda de su país y no al vendedor). Fin de la regla. <br> Si el vendedor y el comprador están ambos en la Comunidad Europea y el comprador no es una empresa, entonces el IVA por defecto es el IVA del producto vendido. Fin de la regla. <br> Si el vendedor y el comprador son de la Comunidad Europea y el comprador es una empresa, entonces el IVA es 0 por defecto. Fin de la regla. <br> En cualquier otro caso el IVA propuesto por defecto es 0. Fin de la regla.
    +VATIsUsedDesc=Por defecto cuando se crean presupuestos, facturas, pedidos, etc. el tipo de IVA sigue la regla estándar seleccionada: <br>. Si el vendedor no está sujeto a IVA, entonces IVA por defecto es 0. Fin de la regla <br>Si (el país del vendedor =  país del comprador), entonces el IVA por defecto es igual al IVA del producto en el país del vendedor. Fin de la regla. <br>Si el vendedor y el comprador son de la Comunidad Europea y los bienes son productos de transporte (coche, barco, avión), el IVA por defecto es 0. Esta regla depende del país del vendedor - por favor consulta tu asesor contable. El IVA debe ser pagado por el comprador a la hacienda de su país y no al vendedor. Fin de la regla.<br> Si el vendedor y el comprador están ambos en la Comunidad Europea y el comprador no es una empresa (no tiene CIF intracomunitario), entonces el IVA por defecto es el IVA del país del vendedor. Fin de la regla. <br> Si el vendedor y el comprador son de la Comunidad Europea y el comprador es una empresa (con CIF intracomunitario), entonces el IVA es 0 por defecto. Fin de la regla.<br> En cualquier otro caso el IVA propuesto por defecto es 0. Fin de la regla.
     VATIsNotUsedDesc=El tipo de IVA propuesto por defecto es 0. Este es el caso de asociaciones, particulares o algunas pequeñas sociedades.
    -VATIsUsedExampleFR=En Francia, se trata de las sociedades u organismos que eligen un régimen fiscal general (General simplificado o General normal), régimen en el cual se declara el IVA.
    +VATIsUsedExampleFR=En Francia, se trata de las sociedades u organismos que eligen un régimen fiscal general (General simplificado o General normal). Régimen en el cual se declara el IVA.
     VATIsNotUsedExampleFR=En Francia, se trata de asociaciones exentas de IVA o sociedades, organismos o profesiones liberales que han elegido el régimen fiscal de módulos (IVA en franquicia), pagando un IVA en franquicia sin hacer declaración de IVA. Esta elección hace aparecer la anotación  "IVA no aplicable - art-293B del CGI" en las facturas.
     ##### Local Taxes #####
     LTRate=Tasa
    @@ -935,20 +943,20 @@ LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=No sujeto
     LocalTax2IsUsedDesc=Uso de un 3er. tipo de impuesto (Distinto del IVA)
    -LocalTax2IsNotUsedDesc=No usar un 3er. tipo de impuesto (Distinto del IVA)
    +LocalTax2IsNotUsedDesc=No usar un 3er tipo de impuesto (Distinto del IVA)
     LocalTax2Management=Gestión 3er. tipo de impuesto
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= Gestión RE
    -LocalTax1IsUsedDescES= El tipo de RE propuesto por defecto en las creaciones de presupuestos, facturas, pedidos, etc. Responde a la siguiente regla:<br>Si el comprador no está sujeto a RE, RE por defecto=0. Final de regla.<br>Si el comprador está sujeto a RE entonces se aplica valor de RE por defecto. Final de regla.<br>
    -LocalTax1IsNotUsedDescES= El tipo de RE propuesto por defecto es 0. Final de regla.
    -LocalTax1IsUsedExampleES= En España, se trata de personas físicas: autónomos sujetos a unos epígrafes concretos del IAE.
    -LocalTax1IsNotUsedExampleES= En España, se trata de empresas jurídicas: Sociedades limitadas, anónimas, etc. y personas físicas (autónomos) sujetos a ciertos epígrafes del IAE.
    -LocalTax2ManagementES= Gestión IRPF
    -LocalTax2IsUsedDescES= El tipo de IRPF propuesto por defecto en las creaciones de presupuestos, facturas, pedidos, etc. Responde a la siguiente regla:<br>Si el vendedor no está sujeto a IRPF, IRPF por defecto=0. Final de regla.<br>Si el vendedor está sujeto a IRPF entonces se aplica valor de IRPF por defecto. Final de regla.<br>
    -LocalTax2IsNotUsedDescES= El tipo de IRPF propuesto por defecto es 0. Final de regla.
    -LocalTax2IsUsedExampleES= En España, se trata de personas físicas: autónomos y profesionales independientes que prestan servicios y empresas que han elegido el régimen fiscal de módulos.
    -LocalTax2IsNotUsedExampleES= En España, se trata de empresas no sujetas al régimen fiscal de módulos.
    +LocalTax1ManagementES=Gestión RE
    +LocalTax1IsUsedDescES=El tipo de RE propuesto por defecto en las creaciones de presupuestos, facturas, pedidos, etc. Responde a la siguiente regla:<br>Si el comprador no está sujeto a RE, RE por defecto=0. Final de regla.<br>Si el comprador está sujeto a RE entonces se aplica valor de RE por defecto. Final de regla.<br>
    +LocalTax1IsNotUsedDescES=El tipo de RE propuesto por defecto es 0. Final de regla.
    +LocalTax1IsUsedExampleES=En España, se trata de personas físicas: autónomos sujetos a unos epígrafes concretos del IAE.
    +LocalTax1IsNotUsedExampleES=En España, se trata de empresas jurídicas: Sociedades limitadas, anónimas, etc. y personas físicas (autónomos) sujetos a ciertos epígrafes del IAE.
    +LocalTax2ManagementES=Gestión IRPF
    +LocalTax2IsUsedDescES=El tipo de IRPF propuesto por defecto en las creaciones de presupuestos, facturas, pedidos, etc. Responde a la siguiente regla:<br>Si el vendedor no está sujeto a IRPF, IRPF por defecto=0. Final de regla.<br>Si el vendedor está sujeto a IRPF entonces se aplica valor de IRPF por defecto. Final de regla.<br>
    +LocalTax2IsNotUsedDescES=El tipo de IRPF propuesto por defecto es 0. Final de regla.
    +LocalTax2IsUsedExampleES=En España, se trata de personas físicas: autónomos y profesionales independientes que prestan servicios y empresas que han elegido el régimen fiscal de módulos.
    +LocalTax2IsNotUsedExampleES=En España, se trata de empresas no sujetas al régimen fiscal de módulos.
     CalcLocaltax=Informes de impuestos locales
     CalcLocaltax1=Ventas - Compras
     CalcLocaltax1Desc=Los informes se calculan con la diferencia entre las ventas y las compras
    @@ -958,6 +966,8 @@ CalcLocaltax3=Ventas
     CalcLocaltax3Desc=Los informes se basan en el total de las ventas
     LabelUsedByDefault=Etiqueta que se utilizará si no se encuentra traducción para este código
     LabelOnDocuments=Etiqueta sobre documentos
    +LabelOrTranslationKey=Clave de traducción o cadena
    +ValueOfConstantKey=Valor de la constante
     NbOfDays=Nº de días
     AtEndOfMonth=A fin de mes
     CurrentNext=Actual/Siguiente
    @@ -984,7 +994,7 @@ DatabaseUser=Login de la base de datos
     DatabasePassword=Contraseña de la base de datos
     Tables=Tablas
     TableName=Nombre de la tabla
    -NbOfRecord=Nº Reg.
    +NbOfRecord=Nº de registros
     Host=Servidor
     DriverType=Tipo de driver
     SummarySystem=Resumen de la información de sistemas Dolibarr
    @@ -996,7 +1006,7 @@ Skin=Tema visual
     DefaultSkin=Tema visual por defecto
     MaxSizeList=Longitud máxima de listados
     DefaultMaxSizeList=Longitud máxima de registros en listados
    -DefaultMaxSizeShortList=Longitud máxima de registros en listados
    +DefaultMaxSizeShortList=Longitud máxima de registros en listados cortos (por ejemplo en ficha cliente)
     MessageOfDay=Mensaje del día
     MessageLogin=Mensaje del login
     LoginPage=Página de login
    @@ -1005,7 +1015,7 @@ PermanentLeftSearchForm=Zona de búsqueda permanente del menú izquierdo
     DefaultLanguage=Idioma por defecto a utilizar (código idioma)
     EnableMultilangInterface=Activar interfaz multi-idioma
     EnableShowLogo=Mostrar el logotipo en el menú de la izquierda
    -CompanyInfo=Información de la empresa/organización
    +CompanyInfo=Empresa/Organización
     CompanyIds=Identificación de la empresa/organización
     CompanyName=Nombre/Razón social
     CompanyAddress=Dirección
    @@ -1023,25 +1033,25 @@ ShowBugTrackLink=Mostrar enlace "<strong>%s</strong>"
     Alerts=Alertas
     DelaysOfToleranceBeforeWarning=Plazos de tolerancia antes de alerta
     DelaysOfToleranceDesc=Esta pantalla permite configura los plazos de tolerancia antes de que se alerte con el símbolo %s, sobre cada elemento en retraso.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Tolerancia de retraso (en días) sobre eventos planificados (eventos de la agnda) todavía no completados
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolerancia de retraso antes de la alerta (en días) sobre proyectos no cerrados a tiempo
    -Delays_MAIN_DELAY_TASKS_TODO=Tolerancia de retraso (en días) sobre tareas planificadas (tareas de proyectos) todavía no completadas
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolerancia de retraso antes de la alerta (en días) sobre pedidos no procesados
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Tolerancia de retraso (en días) sobre pedidos a proveedor no procesados
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolerancia de retraso antes de la alerta (en días) sobre presupuestos a cerrar
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolerancia de retraso antes de la alerta (en días) sobre presupuestos no facturados
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerancia de retraso antes de la alerta (en días) sobre servicios a activar
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerancia de retraso antes de la alerta (en días) sobre servicios expirados
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerancia de retraso antes de la alerta (en días) sobre facturas de proveedor impagadas
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerancia de retraso antes de la alerta (en días) sobre facturas a cliente impagadas
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerancia de retraso antes de la alerta (en días) sobre conciliaciones bancarias pendientes
    -Delays_MAIN_DELAY_MEMBERS=Tolerancia de retraso entes de la alerta  (en días) sobre cotizaciones adherentes en retraso
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancia de retraso entes de la alerta  (en días) sobre cheques a ingresar
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerancia de retraso entes de la alerta  (en días) sobre gastos a aprobar
    -SetupDescription1=El área de configuración sirve para configurar los parámetros antes de empezar a usar Dolibarr
    -SetupDescription2=Los dos pasos de configuración obligatorios son los siguientes (las dos primeras entradas en el menú de configuración izquierdo):
    -SetupDescription3=Los parámetros de configuración del menú <a href="%s">%s->%s</a> son necesarios ya que los datos presentados se utilizan en las pantallas Dolibarr y para personalizar el comportamiento por defecto del software (para funciones relacionadas con el país, por ejemplo).
    -SetupDescription4=Los parámetros de configuración del menú <a href="%s">%s -> %s</a> son necesarios porque Dolibarr es un ERP/CRM una colección de varios módulos, todos más o menos independientes. Se añadirán nuevas funcionalidades a los menús por cada módulo que se active.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Retraso (en días) sobre eventos planificados (eventos de la agenda) todavía no completados
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Retraso antes de la alerta (en días) sobre proyectos no cerrados a tiempo
    +Delays_MAIN_DELAY_TASKS_TODO=Retraso (en días) sobre tareas planificadas (tareas de proyectos) todavía no completadas
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Retraso antes de la alerta (en días) sobre pedidos no procesados
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Retraso antes de la alerta (en días) sobre pedidos a proveedores no procesados
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Retraso antes de la alerta (en días) sobre presupuestos a cerrar
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Retraso antes de la alerta (en días) sobre presupuestos no facturados
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Retraso antes de la alerta (en días) sobre servicios a activar
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Retraso antes de la alerta (en días) sobre servicios expirados
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Retraso antes de la alerta (en días) sobre facturas de proveedor impagadas
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Retraso antes de la alerta (en días) sobre facturas a cliente impagadas
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Retraso antes de la alerta (en días) sobre conciliaciones bancarias pendientes
    +Delays_MAIN_DELAY_MEMBERS=Retraso antes de la alerta  (en días) sobre cotizaciones de miembros en retraso
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Retraso entes de la alerta  (en días) sobre cheques a ingresar
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Retraso entes de la alerta  (en días) sobre informes de gastos a aprobar
    +SetupDescription1=Antes de comenzar a usar Dolibarr, se deben definir algunos parámetros iniciales y habilitar/configurar los módulos.
    +SetupDescription2=Los pasos de configuración obligatorios son los 2 primeros pasos en el menú de configuración, a saber:
    +SetupDescription3=Los parámetros del menú <a href="%s">%s->%s</a> <br>Parámetros básicos para personalizar el comportamiento por defecto de Dolibarr (por ejemplo características relacionadas con el país)
    +SetupDescription4=<a href="%s">%s -> %s</a> <br>Dolibarr ERP/CRM es una colección de varios módulos, todos más o menos independientes. Los módulos relevantes para tus necesidades deben ser activados y configurados. Se añadirán nuevas funcionalidades a los menús por cada módulo que se active.
     SetupDescription5=Las otras entradas de configuración gestionan parámetros opcionales.
     LogEvents=Auditoría de la seguridad de eventos
     Audit=Auditoría
    @@ -1056,20 +1066,20 @@ BrowserName=Nombre del navegador
     BrowserOS=S.O. del navegador
     ListOfSecurityEvents=Listado de eventos de seguridad Dolibarr
     SecurityEventsPurged=Eventos de seguridad purgados
    -LogEventDesc=Puede habilitar el registro de eventos de seguridad Dolibarr aquí. Los administradores pueden ver su contenido a través de menú <b>Herramientas del sistema - Auditoría</b>.Atención, esta característica puede consumir una gran cantidad de datos en la base de datos.
    +LogEventDesc=Puede habilitar el registro de eventos de seguridad aquí. Los administradores pueden ver su contenido a través de menú <b>%s-%s</b>.Atención, esta característica puede consumir una gran cantidad de datos en la base de datos.
     AreaForAdminOnly=Los parámetros de configuración solamente pueden ser tratados por <b>usuarios administrador</b>
     SystemInfoDesc=La información del sistema es información técnica accesible solamente en solo lectura a los administradores.
     SystemAreaForAdminOnly=Esta área solo es accesible a los usuarios de tipo administradores. Ningún permiso Dolibarr permite extender el círculo de usuarios autorizados a esta área.
    -CompanyFundationDesc=Edite en esta página toda la información conocida de la empresa o institución que necesita gestionar (Para ello haga clic en el botón "%s" o "%s" a pié de página)
    -AccountantDesc=Edite en esta página toda la información conocida de su contable/auditor
    +CompanyFundationDesc=Edite la información de la empresa o institución. Haga clic en el botón "%s" o "%s" a pié de página
    +AccountantDesc=Edite los detalles de su contable/auditor
     AccountantFileNumber=Número de archivo
     DisplayDesc=Puede encontrar aquí todos los parámetros relacionados con la apariencia de Dolibarr
     AvailableModules=Módulos disponibles
     ToActivateModule=Para activar los módulos, vaya al área de Configuración (Inicio->Configuración->Módulos).
     SessionTimeOut=Timeout de sesiones
    -SessionExplanation=Asegura que el período de sesiones no expirará antes de este momento. Sin embargo, la gestión del período de sesiones de PHP no garantiza que el período de sesiones expira después de este período: Este será el caso si un sistema de limpieza del caché de sesiones es activo. <br> Nota: Sin mecanismo especial, el mecanismo interno para limpiar el período de sesiones de PHP todos los accesos <b>%s/%s</b>, pero sólo en torno al acceso de otros períodos de sesiones.
    +SessionExplanation=Este número garantiza que la sesión nunca caducará antes de este retraso, si el limpiador de sesión se realiza mediante un limpiador de sesión interno de PHP (y nada más). El limpiador interno de sesiones de PHP no garantiza que la sesión caduque después de este retraso. Expirará, después de este retraso, y cuando se ejecute el limpiador de sesiones, por lo que cada acceso <b> %s/%s </b>, pero solo durante el acceso realizado por otras sesiones (si el valor es 0, significa que la limpieza de sesiones solo se realiza por un proceso externo). <br> Nota: en algunos servidores con un mecanismo externo de limpieza de sesión (cron bajo debian, ubuntu...), las sesiones se pueden destruir después de un período definido por una configuración externa, sin importar el valor introducido aquí
     TriggersAvailable=Triggers disponibles
    -TriggersDesc=Los triggers son archivos que, une vez depositados en el directorio <b>htdocs/core/triggers</b>, modifican el comportamiento del workflow de Dolibarr. Realizan acciones suplementarias, desencadenadas por los eventos Dolibarr (creación de empresa, validación factura, cierre contrato, etc).
    +TriggersDesc=Los triggers son archivos que, une vez copiados en el directorio <b>htdocs/core/triggers</b>, modifican el comportamiento del workflow de Dolibarr. Realizan acciones suplementarias, desencadenadas por los eventos Dolibarr (creación de empresa, validación factura...).
     TriggerDisabledByName=Triggers de este archivo desactivados por el sufijo <b>-NORUN</b> en el nombre del archivo.
     TriggerDisabledAsModuleDisabled=Triggers de este archivo desactivados ya que el módulo <b>%s</b> no está activado.
     TriggerAlwaysActive=Triggers de este archivo siempre activos, ya que los módulos Dolibarr relacionados están activados
    @@ -1087,7 +1097,7 @@ MAIN_ROUNDING_RULE_TOT=Salto de rango de redondeo (para países donde el redonde
     UnitPriceOfProduct=Precio unitario sin IVA de un producto
     TotalPriceAfterRounding=Precio total después del redondeo
     ParameterActiveForNextInputOnly=Parámetro efectivo solamente a partir de las próximas sesiones
    -NoEventOrNoAuditSetup=No se han registrado eventos de seguridad. Esto puede ser normal si la auditoría no ha sido habilitada en la página "configuración->seguridad->auditoría".
    +NoEventOrNoAuditSetup=No se han registrado eventos de seguridad todavía. Esto puede ser normal si la auditoría no ha sido habilitada en la página "Configuración->Seguridad->Auditoría".
     NoEventFoundWithCriteria=No se han encontrado eventos de seguridad para tales criterios de búsqueda.
     SeeLocalSendMailSetup=Ver la configuración local de sendmail
     BackupDesc=Para realizar una copia de seguridad completa de Dolibarr, usted debe:
    @@ -1109,7 +1119,7 @@ YourPHPDoesNotHaveSSLSupport=Funciones SSL no disponibles en su PHP
     DownloadMoreSkins=Más temas para descargar
     SimpleNumRefModelDesc=Devuelve el número bajo el formato %syymm-nnnn donde yy es el año, mm el mes y nnnn un contador secuencial sin ruptura y sin volver a 0
     ShowProfIdInAddress=Mostrar el identificador profesional en las direcciones de los documentos
    -ShowVATIntaInAddress=Ocultar el identificador IVA en las direcciones de los documentos
    +ShowVATIntaInAddress=Ocultar el CIF intracomunitario en las direcciones de los documentos
     TranslationUncomplete=Traducción parcial
     MAIN_DISABLE_METEO=Deshabilitar la vista meteorológica
     MeteoStdMod=Modo estándar
    @@ -1118,7 +1128,7 @@ MeteoPercentageMod=Modo de porcentaje
     MeteoPercentageModEnabled=Modo Porcentaje habilitado
     MeteoUseMod=Clic para usar %s
     TestLoginToAPI=Comprobar conexión a la API
    -ProxyDesc=Algunas de las características de Dolibarr requieren que el servidor tenga acceso a Internet. Defina aqui los parámetros para dicho acceso. Si el servidor está detrás de un proxy, estos parámetros indican a Dolibarr cómo pasarlo.
    +ProxyDesc=Algunas de las características de Dolibarr requieren que el servidor tenga acceso a Internet. Defina aquí los parámetros para dicho acceso. Si el servidor está detrás de un proxy, estos parámetros indican a Dolibarr cómo acceder a internet a través de él.
     ExternalAccess=Acceso externo
     MAIN_PROXY_USE=Usar un servidor proxy (si no acceso directo a Internet)
     MAIN_PROXY_HOST=Nombre/Dirección del servidor proxy
    @@ -1152,7 +1162,7 @@ TranslationKeySearch=Buscar una clave de traducción o cadena
     TranslationOverwriteKey=Sobreescribir una cadena traducida
     TranslationDesc=Cómo se establece el idioma de la aplicación a usar: :<br>* Sistema: menu <strong>Inicio - Configuración - Entorno</strong><br>* Por usario: pestaña <strong>Interfaz usuario</strong> de la ficha del usuario (clic en el nombre de usuario en la parte superior de la pantalla).
     TranslationOverwriteDesc=También puede reemplazar cadenas llenando la tabla siguiente. Elija su idioma en la lista desplegable "%s",  inserte la clave de la traducción en "%s" y su nueva traducción en "%s"
    -TranslationOverwriteDesc2=Puede utilizar otra pestaña para ayudarle a saber clave a utilizar
    +TranslationOverwriteDesc2=Puede utilizar la otra pestaña para ayudarle a saber la clave a utilizar
     TranslationString=Cadena traducida
     CurrentTranslationString=Cadena traducida actual
     WarningAtLeastKeyOrTranslationRequired=Se necesita un criterio de búsqueda al menos por cadena de clave o traducción
    @@ -1163,7 +1173,7 @@ TotalNumberOfActivatedModules=Número total de módulos activados: <b>%s</b> / <
     YouMustEnableOneModule=Debe activar al menos un módulo.
     ClassNotFoundIntoPathWarning=No se ha encontrado la clase %s en su path PHP
     YesInSummer=Sí en verano
    -OnlyFollowingModulesAreOpenedToExternalUsers=Atención: únicamente los módulos siguientes están disponibles a usuarios externos (sea cual sea el permiso de dichos usuarios):
    +OnlyFollowingModulesAreOpenedToExternalUsers=Atención: únicamente los módulos siguientes están disponibles a usuarios externos (sea cual sea el permiso de dichos usuarios) y solo si se otorgan permisos:
     SuhosinSessionEncrypt=Almacenamiento de sesiones cifradas por Suhosin
     ConditionIsCurrently=Actualmente la condición es %s
     YouUseBestDriver=Está usando el driver %s, actualmente es el mejor driver disponible.
    @@ -1175,7 +1185,8 @@ BrowserIsOK=Usa el navegador web %s. Este navegador está optimizado para la seg
     BrowserIsKO=Usa el navegador web %s.  Este navegador es una mala opción para la seguridad, rendimiento y fiabilidad. Aconsejamos utilizar Firefox, Chrome, Opera o Safari.
     XDebugInstalled=XDebug está cargado.
     XCacheInstalled=XCache está cargado
    -AddRefInList=Mostrar código de cliente/proveedor en los listados (y selectores) y enlaces. Los terceros aparecerán con el nombre "CC12345 - SC45678 - The big company coorp", en lugar de "The big company coorp".
    +AddRefInList=Mostrar código de cliente/proveedor en los listados (y selectores) y enlaces.<br>Los terceros aparecerán con el nombre "CC12345 - SC45678 - The big company coorp", en lugar de "The big company coorp".
    +AddAdressInList=Mostrar la dirección del cliente/proveedor en los listados (y selectores) <br>Los terceros aparecerán con el nombre "The big company coorp - 21 jump street 123456 Big town - USA ", en lugar de "The big company coorp".
     AskForPreferredShippingMethod=Consultar por el método preferido de envío a terceros.
     FieldEdition=Edición del campo %s
     FillThisOnlyIfRequired=Ejemplo: +2 (Complete sólo si se registra una desviación del tiempo en la exportación)
    @@ -1195,19 +1206,19 @@ UserMailRequired=E-Mail necesario para crear un usuario nuevo
     HRMSetup=Setup del módulo RRHH
     ##### Company setup #####
     CompanySetup=Configuración del módulo terceros
    -CompanyCodeChecker=Módulo de generación y control de los códigos de terceros (clientes/proveedores)
    -AccountCodeManager=Módulo de generación de los códigos contables (clientes/proveedores)
    +CompanyCodeChecker=Opciones para la generación automática de códigos de clientes / proveedores.
    +AccountCodeManager=Opciones para la generación automática de cuentas contables de clientes / proveedores.
     NotificationsDesc=Las notificaciones por e-mail le permite enviar silenciosamente e-mails  automáticos, para algunos eventos Dolibarr. Se pueden definir los destinatarios:
     NotificationsDescUser=* por usuarios, un usuario a la vez.
     NotificationsDescContact=* por contactos de terceros (clientes o proveedores), un contacto a la vez.
     NotificationsDescGlobal=* o configurando destinatarios globlalmente en la configuración del módulo.
    -ModelModules=Modelos de documentos
    -DocumentModelOdt=Generación desde los documentos OpenDocument (Archivo .ODT OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Plantillas de documentos
    +DocumentModelOdt=Generación desde los documentos OpenDocument (Archivo .ODT / .ODS de LibreOffice, OpenOffice, KOffice, TextEdit...)
     WatermarkOnDraft=Marca de agua en los documentos borrador
     JSOnPaimentBill=Activar función para autocompletar las líneas de pago en la entrada de pagos
     CompanyIdProfChecker=Reglas sobre los ID profesionales
     MustBeUnique=¿Debe ser único?
    -MustBeMandatory=¿Obligatorio para crear terceros?
    +MustBeMandatory=¿Obligatorio para crear terceros (si el CIF o tipo de compañía definido)?
     MustBeInvoiceMandatory=¿Obligatorio para validar facturas?
     TechnicalServicesProvided=Servicios técnicos prestados
     #####DAV #####
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Un vínculo de exportación del calendario en formato <b>
     BillsSetup=Configuración del módulo Facturas
     BillsNumberingModule=Módulo de numeración de facturas y abonos
     BillsPDFModules=Modelo de documento de facturas
    +BillsPDFModulesAccordindToInvoiceType=Modelos de documentos de facturas según tipo de factura
     PaymentsPDFModules=Modelo de documentos de pago
     CreditNote=Abono
     CreditNotes=Abonos
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Gestionar un login para cada miembro
     AdherentMailRequired=E-Mail obligatorio para crear un miembro nuevo
     MemberSendInformationByMailByDefault=Casilla de verificación para enviar el correo de confirmación (validación ó nueva cotización) a los miembros es por defecto "sí"
     VisitorCanChooseItsPaymentMode=El visitante puede elegir entre los modos de pago disponibles
    +MEMBER_REMINDER_EMAIL=Habilitar recordatorio de eventos <b>por e-mail</b> de suscripciones expiradas. Nota: El módulo <strong>%s</strong> debe estar habilitado y configurado correctamente para que el recordatorio se envíe.
     ##### LDAP setup #####
     LDAPSetup=Configuración del módulo LDAP
     LDAPGlobalParameters=Parámetros globales
    @@ -1429,20 +1442,21 @@ CompressionOfResources=Compresión de las respuestas HTTP
     CompressionOfResourcesDesc=Por ejemplo, utilizando la directiva Apache "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=La detección automática no es posible con el navegador actual
     DefaultValuesDesc=Puede definir/forzar aquí el valor predeterminado que desea obtener cuando cree un nuevo registro y/o defina filtros u ordenaciones en sus registros de listados.
    -DefaultCreateForm=Valores predeterminados (en formularios para crear)
    +DefaultCreateForm=Valores predeterminados (en formularios de creación)
     DefaultSearchFilters=Filtros de búsqueda por defecto
     DefaultSortOrder=Ordenaciones por defecto
     DefaultFocus=Campos de enfoque predeterminados
    +DefaultMandatory=Campos obligatorios
     ##### Products #####
     ProductSetup=Configuración del módulo Productos
     ServiceSetup=Configuración del módulo Servicios
     ProductServiceSetup=Configuración de los módulos Productos y Servicios
     NumberOfProductShowInSelect=Nº de productos máx. en las listas (0=sin límite)
    -ViewProductDescInFormAbility=Visualización de las descripciones de los productos en los formularios
    +ViewProductDescInFormAbility=Visualización de las descripciones de los productos en los formularios (en caso contrario como tooltip)
     MergePropalProductCard=Activar en el producto/servicio la pestaña Documentos una opción para fusionar documentos PDF de productos al presupuesto PDF azur si el producto/servicio se encuentra en el presupuesto
     ViewProductDescInThirdpartyLanguageAbility=Visualización de las descripciones de productos en el idioma del tercero
    -UseSearchToSelectProductTooltip=También si usted tiene una gran cantidad de producto (> 100 000), puede aumentar la velocidad mediante el establecimiento PRODUCT_DONOTSEARCH_ANYWHERE constante a 1 en Configuración-> Otros. La búsqueda será limitada a la creación de cadena.
    -UseSearchToSelectProduct=Esperar a que presione una tecla antes de cargar el contenido de la lista combinada de productos (Esto puede incrementar el rendimiento si tiene un gran número de productos) 
    +UseSearchToSelectProductTooltip=También si usted tiene una gran cantidad de producto (> 100 000), puede aumentar la velocidad mediante el establecimiento PRODUCT_DONOTSEARCH_ANYWHERE constante a 1 en Configuración-> Otros. La búsqueda será limitada al inicio de la cadena.
    +UseSearchToSelectProduct=Esperar a que presione una tecla antes de cargar el contenido de la lista combinada de productos (Esto puede incrementar el rendimiento si tiene un gran número de productos, pero es menos conveniente) 
     SetDefaultBarcodeTypeProducts=Tipo de código de barras utilizado por defecto para los productos
     SetDefaultBarcodeTypeThirdParties=Tipo de código de barras utilizado por defecto para los terceros
     UseUnits=Definir una unidad de medida para la Cantidad en la edición de líneas de pedidos, presupuetos o facturas
    @@ -1520,9 +1534,9 @@ FCKeditorForMailing= Creación/edición WYSIWIG de los E-Mails (Utilidades->E-Ma
     FCKeditorForUserSignature=Creación/edición WYSIWIG de la firma de usuarios
     FCKeditorForMail=Creación/edición WYSIWIG de todos los e-mails ( excepto Utilidades->E-Mailings)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=La conexión se ha establecido, pero la base de datos no parece de OSCommerce.
    -OSCommerceTestOk=La conexión al servidor '%s' sobre la base '%s' por el usuario '%s' es correcta.
    -OSCommerceTestKo1=La conexión al servidor '%s' sobre la base '%s' por el usuario '%s' no se pudo efectuar.
    +OSCommerceErrorConnectOkButWrongDatabase=La conexión se ha establecido, pero la base de datos no parece de OSCommerce. (la clave %s no se encuentra en la tabla %s).
    +OSCommerceTestOk=Conectado correctamente al servidor '%s', base de datos '%s', usuario '%s'.
    +OSCommerceTestKo1=La conexión al servidor '%s' ha sido correcta pero sobre la base de datos '%s' no se pudo efectuar.
     OSCommerceTestKo2=La conexión al servidor '%s' por el usuario '%s' ha fallado.
     ##### Stock #####
     StockSetup=Configuración del módulo Almacenes
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=La carga del IVA es: <br>-en el envío de los bienes (en la
     OptionVatDebitOptionDesc=La carga del IVA es: <br>-en el envío de los bienes (en la práctica se usa la fecha de la factura)<br>-sobre la facturación de los servicios
     OptionPaymentForProductAndServices=Base de efectivo para productos y servicios
     OptionPaymentForProductAndServicesDesc=La carga del IVA es: <br>-en el pago de los bienes <br>-sobre el pago por los servicios
    -SummaryOfVatExigibilityUsedByDefault=Tiempo de exigibilidad de IVA por defecto según la opción eligida
    +SummaryOfVatExigibilityUsedByDefault=Tiempo de exigibilidad de IVA por defecto según la opción elegida:
     OnDelivery=En la entrega
     OnPayment=En el pago
     OnInvoice=En la factura
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Configuración del módulo Proyectos
     ProjectsModelModule=Modelo de documento para informes de proyectos
     TasksNumberingModules=Módulo numeración de tareas
     TaskModelModule=Módulo de documentos informes de tareas
    -UseSearchToSelectProject=Espere a cargar el contenido de la lista de proyectos antes de pulsar una tecla (Esto puede aumentar el rendimiento si tiene una gran cantidad de proyectos, pero es menos conveniente)
    +UseSearchToSelectProject=Esperar a que presione una tecla antes de cargar el contenido de la lista combinada de proyectos. <br> Esto puede incrementar el rendimiento si tiene un gran número de proyectos, pero es menos conveniente.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Periodos contables
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=La instalación de módulos externos d
     ConfFileMustContainCustom=La instalación o construcción de un módulo externo desde la aplicación necesita guardar los archivos del módulo en el directorio <strong>%s</strong>. Para que este directorio sea procesado por Dolibarr, debe configurar su <strong>conf/conf.php</strong> para agregar las 2 líneas de directiva: <br><strong>$dolibarr_main_url_root_alt = '/custom';</strong><br><strong> $dolibarr_main_document_root_alt = '%s/custom';</strong>
     HighlightLinesOnMouseHover=Resaltar líneas de los listados cuando el ratón pasa por encima de ellas
     HighlightLinesColor=Resalta el color de la línea cuando el ratón pasa por encima (mantener vacío para no resaltar)
    +HighlightLinesChecked=Resalta el color de la línea cuando el ratón pasa por encima (mantener vacío para no resaltar)
     TextTitleColor=Color para la página de título
     LinkColor=Color para los enlaces
     PressF5AfterChangingThis=Para que sea eficaz el cambio, presione CTRL+F5 en el teclado o borre la memoria caché del navegador después de cambiar este valor
    @@ -1779,7 +1794,7 @@ LandingPage=Landing page
     SamePriceAlsoForSharedCompanies=Si se utiliza un módulo multi-empresa, con la opción "precio único", el precio será el mismo para todas las empresas si los productos son compartidos entre ellas
     ModuleEnabledAdminMustCheckRights=El módulo ha sido activado. Los permisos para los módulos activados se dan solamente a los usuarios administradores. Deberá otorgar permisos manualmente a otros usuarios si es necesario.
     UserHasNoPermissions=Este usuario no tiene permisos definidos
    -TypeCdr=Use "Ninguno" si la fecha del plazo de pago es la fecha de factura más un delta en días (delta es el campo "Nº de días")<br>Use "A final de mes", si, después del delta, la fecha debe aumentarse para llegar al final del mes (+ opcional "Offset" en días)<br>Use "Actual/Siguiente" para tener la fecha del plazo de pago sea el primer N de cada mes (N se almacena en el campo "Nº de días")
    +TypeCdr=Use "Ninguno" si la fecha del plazo de pago es la fecha de factura más un delta en días (delta es el campo "%s")<br>Use "A final de mes", si, después del delta, la fecha debe aumentarse para llegar al final del mes (+ opcional "%s" en días)<br>Use "Actual/Siguiente" para tener la fecha del plazo de pago sea el primer N de cada mes (el campo delta "%s", N se almacena en el campo "%s")
     BaseCurrency=Moneda de referencia de la empresa (entrar en la configuración de la empresa para cambiar esto)
     WarningNoteModuleInvoiceForFrenchLaw=Este módulo %s cumple con las leyes francesas (Loi Finance 2016).
     WarningNoteModulePOSForFrenchLaw=Este módulo %s cumple con las leyes francesas (Loi Finance 2016) porque el módulo Non Reversible Logs se activa automáticamente.
    @@ -1788,16 +1803,52 @@ MAIN_PDF_MARGIN_LEFT=Margen izquierdo en PDF
     MAIN_PDF_MARGIN_RIGHT=Margen derecho en PDF
     MAIN_PDF_MARGIN_TOP=Margen superior en PDF
     MAIN_PDF_MARGIN_BOTTOM=Margen inferior en PDF
    +NothingToSetup=No hay ninguna configuración a realizar en este módulo.
     SetToYesIfGroupIsComputationOfOtherGroups=Establezca esto a sí si este grupo es un cálculo de otros grupos
     EnterCalculationRuleIfPreviousFieldIsYes=Ingrese regla de cálculo si el campo anterior se estableció en Sí (por ejemplo, 'CODEGRP1 + CODEGRP2')
     SeveralLangugeVariatFound=Varias variantes de idioma encontradas
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Eliminar caracteres especiales
     COMPANY_AQUARIUM_CLEAN_REGEX=Filtro Regex para limpiar el valor (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=Contacto GDPR
    +GDPRContact=Oficina Protección de datos (DPO, Políticas de privacidad o contacto GDPR)
     GDPRContactDesc=Si almacena datos sobre empresas/ciudadanos europeos, puede almacenar aquí el contacto responsable del Reglamento general de protección de datos
    +HelpOnTooltip=Texto de ayuda a mostrar en la ventana emergente
    +HelpOnTooltipDesc=Coloque aquí un texto o una clave de traducción para mostrar información emergente cuando este campo aparezca en un formulario
    +YouCanDeleteFileOnServerWith=Puede eliminar este archivo del servidor con la línea de comandos: <br> %s
    +ChartLoaded=Plan contable cargado
    +SocialNetworkSetup=Configuración del módulo de redes sociales.
    +EnableFeatureFor=Habilitar funciones para <strong> %s </strong>
    +VATIsUsedIsOff=Nota: La opción de usar el IVA se ha establecido como <strong>Desactivado</strong> en el menú %s - %s, por lo que el IVA usado siempre será 0 para las ventas.
    +SwapSenderAndRecipientOnPDF=Intercambiar dirección de remitente y destinatario en PDF
    +FeatureSupportedOnTextFieldsOnly=Advertencia, función compatible solo en campos de texto
    +EmailCollector=Recolector de correo
    +EmailCollectorDescription=Añade una tarea programada y una página de configuración para escanear los buzones de e-mail con regularidad (utilizando el protocolo IMAP) y registra los e-mails recibidos en su aplicación, en el lugar correcto y/o crea registros automáticamente (como leads).
    +NewEmailCollector=Nuevo recolector de e-mail
    +EMailHost=Host del servidor de e-mail IMAP
    +MailboxSourceDirectory=Directorio fuente del buzón
    +MailboxTargetDirectory=Directorio de destino del buzón
    +EmailcollectorOperations=Operaciones a realizar por el colector
    +CollectNow=Recoger ahora
    +DateLastResult=Fecha de la última recogida
    +LastResult=Ultimo resultado
    +EmailCollectorConfirmCollectTitle=Confirmación recolección e-mail
    +EmailCollectorConfirmCollect=¿Desea ejecutar la recolección de este recolector ahora?
    +NoNewEmailToProcess=No hay e-mails nuevos (filtros coincidentes) para procesar
    +NothingProcessed=Nada hecho
    +XEmailsDoneYActionsDone=%s e-mails analizados, %s e-mails procesados ​​con éxito (para %s registro/acciones realizadas) por el recolector
    +RecordEvent=Registro de evento de email
    +CreateLeadAndThirdParty=Crear lead (y tercero si es necesario)
    +CodeLastResult=Código de resultado de la última recogida
    +NbOfEmailsInInbox=Número de emails en el directorio fuente
    +LoadThirdPartyFromName=Cargar terceros a partir del nombre (solo cargar)
    +LoadThirdPartyFromNameOrCreate=Cargar terceros a partir del nombre (crear si no se encuentra)
    +WithDolTrackingID=Dolibarr Tracking ID encontrado
    +WithoutDolTrackingID=Dolibarr Tracking ID no encontrado
    +FormatZip=Código postal
     ##### Resource ####
     ResourceSetup=Configuración del módulo Recursos
     UseSearchToSelectResource=Utilice un formulario de búsqueda para elegir un recurso (en lugar de una lista desplegable).
     DisabledResourceLinkUser=Desactivar funcionalidad de enlazar recursos a usuarios
     DisabledResourceLinkContact=Desactivar funcionalidad de enlazar recurso a contactos
     ConfirmUnactivation=Confirme el restablecimiento del módulo
    +OnMobileOnly=Sólo en pantalla pequeña (smartphone)
    +DisableProspectCustomerType=Deshabilitar el tipo de tercero "Cliente Potencial/Cliente" (por lo tanto, el tercero debe ser Cliente Potencial o Cliente pero no pueden ser ambos)
    diff --git a/htdocs/langs/es_ES/agenda.lang b/htdocs/langs/es_ES/agenda.lang
    index 72cb945c46a..a5fca1abe74 100644
    --- a/htdocs/langs/es_ES/agenda.lang
    +++ b/htdocs/langs/es_ES/agenda.lang
    @@ -32,13 +32,14 @@ ViewPerUser=Vista por usuario
     ViewPerType=Vista por tipo
     AutoActions= Inclusión automática en la agenda
     AgendaAutoActionDesc= Defina aquí los eventos que desea que Dolibarr cree automáticamente como evento en la agenda. Si no selecciona nada solamente serán visibles en la agenda las acciones manuales. No se guardará el seguimiento automático de las acciones comerciales realizadas sobre los objetos (validación, cambio de estado).
    -AgendaSetupOtherDesc= Esta página le permite configurar algunas opciones que permiten exportar una vista de su agenda Dolibar a un calendario externo (thunderbird, google calendar, ...)
    +AgendaSetupOtherDesc= Esta página le permite configurar algunas opciones que permiten exportar una vista de su agenda Dolibar a un calendario externo (thunderbird, google calendar...)
     AgendaExtSitesDesc=Esta página le permite configurar calendarios externos para su visualización en la agenda de Dolibarr.
     ActionsEvents=Eventos para que Dolibarr cree un evento en la agenda de forma automática
    -EventRemindersByEmailNotEnabled=Los recordatorios de eventos por e.mail no se habilitaron en la configuración del módulo Agenda.
    +EventRemindersByEmailNotEnabled=Los recordatorios de eventos por e-mail no se activaron en la configuración del módulo %s.
     ##### Agenda event labels #####
     NewCompanyToDolibarr=Tercero %s creado
     ContractValidatedInDolibarr=Contrato %s validado
    +CONTRACT_DELETEInDolibarr=Contrato %s eliminado
     PropalClosedSignedInDolibarr=Presupuesto %s firmado
     PropalClosedRefusedInDolibarr=Presupuesto %s rechazado
     PropalValidatedInDolibarr=Presupuesto %s validado
    @@ -112,7 +113,7 @@ ExportCal=Exportar calendario
     ExtSites=Calendarios externos
     ExtSitesEnableThisTool=Mostrar calendarios externos (definido en la configuración global) en la agenda. No afecta a los calendarios externos definidos por los usuarios
     ExtSitesNbOfAgenda=Número de calendarios
    -AgendaExtNb=Calendar no. %s
    +AgendaExtNb=Calendario nº %s
     ExtSiteUrlAgenda=Url de acceso al archivo .ical
     ExtSiteNoLabel=Sin descripción
     VisibleTimeRange=Rango de tiempo visible
    diff --git a/htdocs/langs/es_ES/banks.lang b/htdocs/langs/es_ES/banks.lang
    index e5e289f0c4b..1931e2ced91 100644
    --- a/htdocs/langs/es_ES/banks.lang
    +++ b/htdocs/langs/es_ES/banks.lang
    @@ -7,7 +7,7 @@ BankName=Nombre del banco
     FinancialAccount=Cuenta
     BankAccount=Cuenta bancaria
     BankAccounts=Cuentas Bancarias
    -BankAccountsAndGateways=Cuentas bancarias | Gateways
    +BankAccountsAndGateways=Cuentas bancarias | Pasarelas
     ShowAccount=Mostrar cuenta
     AccountRef=Ref. cuenta financiera
     AccountLabel=Etiqueta cuenta financiera
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Registros a conciliar
     Conciliable=Conciliable
     Conciliate=Conciliar
     Conciliation=Conciliación
    +SaveStatementOnly=Guardar solo extracto
     ReconciliationLate=Conciliación tardía
     IncludeClosedAccount=Incluir cuentas cerradas
     OnlyOpenedAccount=Solamente cuentas abiertas
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=¿Está seguro de querer eliminar esta remesa?
     BankChecks=Cheques
     BankChecksToReceipt=Cheques en espera de depositar
     ShowCheckReceipt=Mostrar remesa
    -NumberOfCheques=Nº de cheques
    +NumberOfCheques=Nº Cheque
     DeleteTransaction=Eliminar registro
     ConfirmDeleteTransaction=¿Está seguro de querer eliminar este registro?
     ThisWillAlsoDeleteBankRecord=Esto también eliminará el registro bancario
    @@ -132,7 +133,7 @@ PaymentDateUpdateSucceeded=Fecha de pago actualizada correctamente
     PaymentDateUpdateFailed=Fecha de pago no pudo ser modificada
     Transactions=Transacciones
     BankTransactionLine=Registro bancario
    -AllAccounts=All bank and cash accounts
    +AllAccounts=Todas las cuentas bancarias/de caja
     BackToAccount=Volver a la cuenta
     ShowAllAccounts=Mostrar para todas las cuentas
     FutureTransaction=Transacción futura. No es posible conciliar.
    @@ -153,7 +154,7 @@ RejectCheckDate=Fecha de devolución del cheque
     CheckRejected=Cheque devuelto
     CheckRejectedAndInvoicesReopened=Cheque devuelto y facturas reabiertas
     BankAccountModelModule=Modelos de documentos para cuentas bancarias
    -DocumentModelSepaMandate=Plantilla de mandato SEPA, usable únicamente para paises miembros de la UEE
    +DocumentModelSepaMandate=Plantilla de mandato SEPA. Útil únicamente para países miembros de la UEE
     DocumentModelBan=Plantilla para imprimir una página con la información IBAN.
     NewVariousPayment=Nuevo pago varios
     VariousPayment=Pagos varios
    @@ -163,3 +164,5 @@ AddVariousPayment=Añadir pagos varios
     SEPAMandate=Mandato SEPA
     YourSEPAMandate=Su mandato SEPA
     FindYourSEPAMandate=Este es su mandato SEPA para autorizar a nuestra empresa a realizar un petición de débito directo a su banco. Gracias por devolverlo firmado (escaneo del documento firmado) o enviado por correo a
    +BankAccountReleveModule=Module Bank statement
    +AutoReportLastAccountStatement=Automatic report account stament
    diff --git a/htdocs/langs/es_ES/bills.lang b/htdocs/langs/es_ES/bills.lang
    index 13234f0e7f7..5e52c2f4618 100644
    --- a/htdocs/langs/es_ES/bills.lang
    +++ b/htdocs/langs/es_ES/bills.lang
    @@ -67,7 +67,7 @@ PaidBack=Reembolsado
     DeletePayment=Eliminar el pago
     ConfirmDeletePayment=¿Está seguro de querer eliminar este pago?
     ConfirmConvertToReduc=¿Desea convertir este %s en un descuento absoluto?<br>El importe se guardará entre todos los descuentos y podría utilizarse como descuento para una factura actual o futura para este cliente.
    -ConfirmConvertToReducSupplier=¿Desea convertir este %s en un descuento absoluto?<br>El importe se guardará entre todos los descuentos y podría utilizarse como descuento para una factura actual o futura para este cliente.
    +ConfirmConvertToReducSupplier=¿Desea convertir este %s en un descuento absoluto?<br>El importe se guardará entre todos los descuentos y podría utilizarse como descuento para una factura actual o futura para este proveedor.
     SupplierPayments=Pagos a proveedores
     ReceivedPayments=Pagos recibidos
     ReceivedCustomersPayments=Pagos recibidos de cliente
    @@ -107,11 +107,11 @@ SearchACustomerInvoice=Buscar una factura a cliente
     SearchASupplierInvoice=Buscar una factura de proveedor
     CancelBill=Anular una factura
     SendRemindByMail=Enviar recordatorio
    -DoPayment=Ingresar pago
    -DoPaymentBack=Ingresar reembolso
    -ConvertToReduc=Convertir en reducción futura
    -ConvertExcessReceivedToReduc=Convert excess received into available credit
    -ConvertExcessPaidToReduc=Convert excess paid into available discount
    +DoPayment=Añadir pago
    +DoPaymentBack=Añadir reembolso
    +ConvertToReduc=Convertir en crédito disponible
    +ConvertExcessReceivedToReduc=Convertir lo recibido en exceso en crédito disponible
    +ConvertExcessPaidToReduc=Convertir lo recibido en exceso en descuento disponible
     EnterPaymentReceivedFromCustomer=Añadir pago recibido de cliente
     EnterPaymentDueToCustomer=Realizar pago de abonos al cliente
     DisabledBecauseRemainderToPayIsZero=Desactivado ya que el resto a pagar es 0
    @@ -132,6 +132,7 @@ BillStatusClosedPaidPartially=Cerrada (pagada parcialmente)
     BillShortStatusDraft=Borrador
     BillShortStatusPaid=Pagada
     BillShortStatusPaidBackOrConverted=Reembolsada o convertida
    +Refunded=Reembolsada
     BillShortStatusConverted=Tratada
     BillShortStatusCanceled=Abandonada
     BillShortStatusValidated=Validada
    @@ -141,7 +142,7 @@ BillShortStatusNotRefunded=No reembolsada
     BillShortStatusClosedUnpaid=Cerrada (pte. pago)
     BillShortStatusClosedPaidPartially=Cerrada (pago parcial)
     PaymentStatusToValidShort=A validar
    -ErrorVATIntraNotConfigured=Número de IVA intracomunitario aún no configurado
    +ErrorVATIntraNotConfigured=Número de CIF intracomunitario aún no configurado
     ErrorNoPaiementModeConfigured=No hay definido modo de pago por defecto. Corregir desde el módulo factura
     ErrorCreateBankAccount=Crear una cuenta bancaria y después en la configuración del módulo factura definir los modos de pago
     ErrorBillNotFound=Factura %s inexistente
    @@ -188,7 +189,7 @@ ConfirmClassifyPaidPartiallyReasonBadCustomer=Cliente moroso
     ConfirmClassifyPaidPartiallyReasonProductReturned=Productos devueltos en parte
     ConfirmClassifyPaidPartiallyReasonOther=Por otra razón
     ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Esta elección es posible si su factura se proveyera de la mención adecuada. (Ejemplo: "descuento neto de impuestos")
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Esta elección es posible si su factura se proveyera de la mención adecuada. (Ejemplo: mención por la que se define el descuento o de la clase "solamente el impuesto que corresponde al precio efectivamente pagado causa derecho a deducción")
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=En algunos países, esta opción podría ser posible solo si su factura contiene notas correctas.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Esta elección es la elección que debe tomarse si las otras no son aplicables
     ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Un <b>cliente moroso</b> es un cliente que no quiere regularizar su deuda.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Esta elección es posible si el caso de pago incompleto es a raíz de una devolución de parte de los productos
    @@ -203,6 +204,7 @@ UnvalidateBill=Devolver factura a borrador
     NumberOfBills=Nº de facturas
     NumberOfBillsByMonth=Nº de facturas por mes
     AmountOfBills=Importe de las facturas
    +AmountOfBillsHT=Importe de las facturas (Sin IVA)
     AmountOfBillsByMonthHT=Importe de las facturas por mes (Sin IVA)
     ShowSocialContribution=Ver tasa social/fiscal
     ShowBill=Ver factura
    @@ -262,7 +264,7 @@ CreateRepeatableInvoice=Crear plantilla de factura
     CreateFromRepeatableInvoice=Crear desde plantilla de factura
     CustomersInvoicesAndInvoiceLines=Facturas a clientes y líneas de facturas
     CustomersInvoicesAndPayments=Facturas a clientes y pagos
    -ExportDataset_invoice_1=Facturas a clientes y líneas de factura
    +ExportDataset_invoice_1=Facturas a clientes y líneas de facturas
     ExportDataset_invoice_2=Facturas a clientes y pagos
     ProformaBill=Factura pro-forma:
     Reduction=Reducción
    @@ -282,7 +284,7 @@ RelativeDiscount=Descuento relativo
     GlobalDiscount=Descuento fijo
     CreditNote=Abono
     CreditNotes=Abonos
    -CreditNotesOrExcessReceived=Credit notes or excess received
    +CreditNotesOrExcessReceived=Notas de crédito o exceso recibido
     Deposit=Anticipo
     Deposits=Anticipos
     DiscountFromCreditNote=Descuento resultante del abono %s
    @@ -302,7 +304,7 @@ DiscountAlreadyCounted=Descuentos ya consumidos
     CustomerDiscounts=Descuentos a clientes
     SupplierDiscounts=Descuentos de proveedores
     BillAddress=Dirección de facturación
    -HelpEscompte=Un <b>descuento</b> es un descuento acordado sobre una factura dada, a un cliente que realizó su pago mucho antes del vencimiento.
    +HelpEscompte=Este descuento es un descuento otorgado al cliente porque el pago se realizó antes del plazo.
     HelpAbandonBadCustomer=Este importe se abandonó (cliente juzgado como moroso) y se considera como una pérdida excepcional.
     HelpAbandonOther=Este importe se abandonó este importe ya que se trataba de un error de facturación (mala introducción de datos, factura sustituida por otra).
     IdSocialContribution=Id pago tasa social/fiscal
    @@ -394,7 +396,7 @@ PaymentConditionShort14DENDMONTH=14 días fin de mes
     PaymentCondition14DENDMONTH=14 días a fin de més
     FixAmount=Importe fijo
     VarAmount=Importe variable (%% total)
    -VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s'
    +VarAmountOneLine=Cantidad variable (%% tot.) - 1 línea con la etiqueta '%s'
     # PaymentType
     PaymentTypeVIR=Transferencia bancaria
     PaymentTypeShortVIR=Transferencia bancaria
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Cheque
     PaymentTypeShortCHQ=Cheque
     PaymentTypeTIP=TIP (Titulo interbancario de pago)
     PaymentTypeShortTIP=Pago TIP
    -PaymentTypeVAD=Pago On Line
    -PaymentTypeShortVAD=Pago On Line
    +PaymentTypeVAD=Pago en línea
    +PaymentTypeShortVAD=Pago en línea
     PaymentTypeTRA=Banco borrador
     PaymentTypeShortTRA=Borrador
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Datos bancarios
     BankCode=Código banco
    -DeskCode=Cód. sucursal
    +DeskCode=Código de oficina
     BankAccountNumber=Número cuenta
    -BankAccountNumberKey=D. C.
    +BankAccountNumberKey=DC
     Residence=Ingreso en cuenta
    -IBANNumber=Código IBAN
    +IBANNumber=Número de cuenta IBAN completo
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=Código BIC/SWIFT
    @@ -463,7 +465,7 @@ Cheques=Cheques
     DepositId=Id. depósito
     NbCheque=Número de cheques
     CreditNoteConvertedIntoDiscount=Este %s ha sido convertido en %s
    -UsBillingContactAsIncoiveRecipientIfExist=Utilizar la dirección del contacto de cliente de facturación de la factura en vez de la dirección del tercero como destinatario de las facturas
    +UsBillingContactAsIncoiveRecipientIfExist=Usar contacto/dirección de tipo 'contacto facturación' en lugar de la dirección del tercero como destinatario de las facturas
     ShowUnpaidAll=Mostrar todos los pendientes
     ShowUnpaidLateOnly=Mostrar los pendientes en retraso solamente
     PaymentInvoiceRef=Pago factura %s
    @@ -476,7 +478,7 @@ CantRemovePaymentWithOneInvoicePaid=Eliminación imposible cuando existe al meno
     ExpectedToPay=Esperando el pago
     CantRemoveConciliatedPayment=No se puede eliminar un pago conciliado
     PayedByThisPayment=Pagada por este pago
    -ClosePaidInvoicesAutomatically=Clasificar como "Pagadas" las facturas, facturas de situación y facturas rectificativas completamente pagadas.
    +ClosePaidInvoicesAutomatically=Clasificar como "Pagadas" las facturas, anticipos y facturas rectificativas completamente pagadas.
     ClosePaidCreditNotesAutomatically=Clasificar automáticamente como "Pagados" los abonos completamente reembolsados
     ClosePaidContributionsAutomatically=Clasificar como "Pagadas" todas las tasas fiscales o sociales completamente pagadas
     AllCompletelyPayedInvoiceWillBeClosed=Todas las facturas con un resto a pagar 0 serán automáticamente cerradas al estado "Pagada".
    @@ -489,6 +491,7 @@ YouMustCreateInvoiceFromThird=Esta opción solo está disponible al crear una fa
     YouMustCreateInvoiceFromSupplierThird=Esta opción solo está disponible al crear una factura desde la pestaña 'proveedor' en terceros
     YouMustCreateStandardInvoiceFirstDesc=Tiene que crear una factura estandar antes de convertirla a "plantilla" para crear una nueva plantilla de factura
     PDFCrabeDescription=Modelo de factura completo (modelo recomendado por defecto)
    +PDFSpongeDescription=Modelo de factura Esponja. Una plantilla de factura completa.
     PDFCrevetteDescription=Modelo PDF de factura Crevette. Un completo modelo de facturas de situación
     TerreNumRefModelDesc1=Devuelve el número bajo el formato %syymm-nnnn para las facturas, %syymm-nnnn para las facturas rectificativas y %syymm-nnnn para los abonos donde yy es el año, mm. el mes y nnnn un contador secuencial sin ruptura y sin permanencia a 0
     MarsNumRefModelDesc1=Devuelve el número bajo el formato %syymm-nnnn para las facturas, %syymm-nnnn para las facturas rectificativas, %syymm-nnnn para los anticipos y %syymm-nnnn para los abonos donde yy es el año, mm. el mes y nnnn un contador secuencial sin ruptura y sin permanencia a 0
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Definir fecha de inicio
     AutoFillDateTo=Establecer fecha de finalización para la línea de servicio con la próxima fecha de facturación
     AutoFillDateToShort=Definir fecha de finalización
     MaxNumberOfGenerationReached=Máximo número de generaciones alcanzado
    +BILL_DELETEInDolibarr=Factura eliminada
    diff --git a/htdocs/langs/es_ES/cashdesk.lang b/htdocs/langs/es_ES/cashdesk.lang
    index 326ccef53bb..b7a6ce7bd04 100644
    --- a/htdocs/langs/es_ES/cashdesk.lang
    +++ b/htdocs/langs/es_ES/cashdesk.lang
    @@ -32,3 +32,16 @@ DeleteArticle=Haga clic para quitar este artículo
     FilterRefOrLabelOrBC=Búsqueda (Ref/Etiq.)
     UserNeedPermissionToEditStockToUsePos=Ha configurado el decremento de stock en la creación de facturas, por lo que el usuario que utilice el TPV deberá tener permiso para editar stock.
     DolibarrReceiptPrinter=Impresora de tickets Dolibarr
    +PointOfSale=Terminales Punto de Venta
    +PointOfSaleShort=TPV
    +CloseBill=Cerrar factura
    +Floors=Pisos
    +Floor=Piso
    +AddTable=Agregar tabla
    +Place=Lugar
    +TakeposConnectorNecesary='Conector TakePOS' requerido
    +OrderPrinters=Impresoras de pedidos
    +SearchProduct=Buscar producto
    +Receipt=Comprobante
    +Header=Cabecera
    +Footer=Pie de página
    diff --git a/htdocs/langs/es_ES/categories.lang b/htdocs/langs/es_ES/categories.lang
    index 9a1a71d28c7..b3277599027 100644
    --- a/htdocs/langs/es_ES/categories.lang
    +++ b/htdocs/langs/es_ES/categories.lang
    @@ -16,6 +16,7 @@ MembersCategoriesArea=Área etiquetas/categorías Miembros
     ContactsCategoriesArea=Área etiquetas/categorías de contactos
     AccountsCategoriesArea=Área categorías contables
     ProjectsCategoriesArea=Área etiquetas/categorías Proyectos
    +UsersCategoriesArea=Área etiquetas/categorías Usuarios
     SubCats=Subcategorías
     CatList=Listado de etiquetas/categorías
     NewCategory=Nueva etiqueta/categoría
    @@ -54,12 +55,13 @@ MembersCategoryShort=Etiquetas/categorías de miembros
     SuppliersCategoriesShort=Etiquetas/categorías de proveedores
     CustomersCategoriesShort=Etiquetas/categorías de clientes
     ProspectsCategoriesShort=Etiquetas/categorías clientes potenciales
    -CustomersProspectsCategoriesShort=Categorías clientes
    +CustomersProspectsCategoriesShort=Categorias clientes/potenciales
     ProductsCategoriesShort=Etiquetas/categorías de productos
     MembersCategoriesShort=Etiquetas/categorías de miembros
     ContactCategoriesShort=Etiquetas/categorías de contactos
     AccountsCategoriesShort=Categorías contables
     ProjectsCategoriesShort=Etiquetas/categorías de Proyectos
    +UsersCategoriesShort=Área etiquetas/categorías Usuarios
     ThisCategoryHasNoProduct=Esta categoría no contiene ningún producto.
     ThisCategoryHasNoSupplier=Esta categoría no contiene ningún proveedor.
     ThisCategoryHasNoCustomer=Esta categoría no contiene ningún cliente.
    @@ -85,4 +87,4 @@ CategorieRecursivHelp=Si está activado, el producto se enlazará a la categorí
     AddProductServiceIntoCategory=Añadir el siguiente producto/servicio
     ShowCategory=Mostrar etiqueta/categoría
     ByDefaultInList=Por defecto en lista
    -ChooseCategory=Choose category
    +ChooseCategory=Elija una categoría
    diff --git a/htdocs/langs/es_ES/commercial.lang b/htdocs/langs/es_ES/commercial.lang
    index 94a6697ec05..5fe49a5b4f4 100644
    --- a/htdocs/langs/es_ES/commercial.lang
    +++ b/htdocs/langs/es_ES/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Llamada telefónica
     ActionAC_FAX=Envío Fax
     ActionAC_PROP=Envío presupuesto por correo
     ActionAC_EMAIL=Envío E-Mail
    +ActionAC_EMAIL_IN=Recepción de Email
     ActionAC_RDV=Cita
     ActionAC_INT=Intervención in situ
     ActionAC_FAC=Envío factura a cliente por correo
    @@ -61,7 +62,7 @@ ActionAC_EMAILING=Envío mailing masivo
     ActionAC_COM=Envío pedido de cliente por correo
     ActionAC_SHIP=Envío expedición por correo
     ActionAC_SUP_ORD=Envío pedido a proveedor por correo
    -ActionAC_SUP_INV=Envío de factura de proveedor por correo
    +ActionAC_SUP_INV=Envío factura de proveedor por correo
     ActionAC_OTH=Otra
     ActionAC_OTH_AUTO=Eventos creados automáticamente
     ActionAC_MANUAL=Eventos creados manualmente
    diff --git a/htdocs/langs/es_ES/companies.lang b/htdocs/langs/es_ES/companies.lang
    index 4ff958a006c..a3a48e6fc56 100644
    --- a/htdocs/langs/es_ES/companies.lang
    +++ b/htdocs/langs/es_ES/companies.lang
    @@ -12,7 +12,7 @@ MenuNewSupplier=Nuevo proveedor
     MenuNewPrivateIndividual=Nuevo particular
     NewCompany=Nueva empresa (cliente potencial, cliente, proveedor)
     NewThirdParty=Nuevo tercero (cliente potencial, cliente, proveedor)
    -CreateDolibarrThirdPartySupplier=Crear tercero (proveedor)
    +CreateDolibarrThirdPartySupplier=Crear un tercero (proveedor)
     CreateThirdPartyOnly=Crear tercero
     CreateThirdPartyAndContact=Crear un tercero + un contacto
     ProspectionArea=Área de prospección
    @@ -27,7 +27,7 @@ CompanyName=Razón social
     AliasNames=Apodo (comercial, marca registrada, ...)
     AliasNameShort=Apodo
     Companies=Empresas
    -CountryIsInEEC=País de la Comunidad Económica Europea
    +CountryIsInEEC=País dentro de la Comunidad Económica Europea
     ThirdPartyName=Nombre del tercero
     ThirdPartyEmail=E-mail tercero
     ThirdParty=Tercero
    @@ -40,7 +40,7 @@ ThirdPartyCustomersWithIdProf12=Clientes con %s ó %s
     ThirdPartySuppliers=Proveedores
     ThirdPartyType=Tipo de tercero
     Individual=Particular
    -ToCreateContactWithSameName=Creará automáticamente un contacto físico con la misma información. en la mayoría de casos. En la mayoría de los casos, incluso si el tercero es una persona física, la creación de un tercero por sí solo es suficiente.
    +ToCreateContactWithSameName=Creará automáticamente un contacto/dirección en el tercero con la misma información que el tercero. En la mayoría de los casos, aunque el tercero sea una persona física, creando solo el tercero será suficiente.
     ParentCompany=Sede central
     Subsidiaries=Filiales
     ReportByMonth=Informe por mes
    @@ -76,12 +76,12 @@ Town=Población
     Web=Web
     Poste= Puesto
     DefaultLang=Idioma por defecto
    -VATIsUsed=IVA está siendo usado
    -VATIsUsedWhenSelling=Esto define si este tercero incluye IVA o no cuando realiza una factura a sus propios clientes.
    +VATIsUsed=Sujeto a IVA
    +VATIsUsedWhenSelling=Esto define si este tercero incluye un impuesto a la venta o no cuando realiza una factura a sus propios clientes
     VATIsNotUsed=IVA no está siendo usado
     CopyAddressFromSoc=Copiar dirección de la empresa
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Tercero ni cliente ni proveedor, no hay objetos de referencia disponibles
    -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Tercero ni cliente ni proveedor, los descuentos no están disponibles.
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Tercero que no es cliente ni proveedor, sin objetos referenciados
    +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Tercero que no es cliente ni proveedor, descuentos no disponibles
     PaymentBankAccount=Cuenta bancaria de pago
     OverAllProposals=Presupuestos
     OverAllOrders=Pedidos
    @@ -275,7 +275,7 @@ CompanyHasNoRelativeDiscount=Este cliente no tiene descuentos relativos por defe
     HasRelativeDiscountFromSupplier=Tiene un descuento predeterminado de <b> %s%%</b> en este proveedor
     HasNoRelativeDiscountFromSupplier=No tiene descuento relativo predeterminado en este proveedor
     CompanyHasAbsoluteDiscount=Este cliente tiene <b>%s %s</b> en descuentos (abonos o anticipos) disponibles
    -CompanyHasDownPaymentOrCommercialDiscount=Este cliente tiene descuentos disponibles (abonos, comerciales) para <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=Este cliente tiene descuentos disponibles (anticipos, comerciales) para <b>%s</b> %s
     CompanyHasCreditNote=Este cliente tiene <b>%s %s</b> en anticipos disponibles
     HasNoAbsoluteDiscountFromSupplier=No tiene crédito de descuento disponible en este proveedor
     HasAbsoluteDiscountFromSupplier=Tiene descuentos disponibles (notas de créditos o anticipos) para <b> %s </b> %s en este proveedor
    @@ -285,7 +285,7 @@ CompanyHasNoAbsoluteDiscount=Este cliente no tiene más descuentos fijos disponi
     CustomerAbsoluteDiscountAllUsers=Descuentos fijos a clientes (acordado por todos los usuarios)
     CustomerAbsoluteDiscountMy=Descuentos fijos a clientes (acordados personalmente)
     SupplierAbsoluteDiscountAllUsers=Descuentos fijos de proveedores (acordado por todos los usuarios)
    -SupplierAbsoluteDiscountMy=Descuentos fijos a proveedores (acordados personalmente)
    +SupplierAbsoluteDiscountMy=Descuentos fijos de proveedores (acordados personalmente)
     DiscountNone=Ninguna
     Supplier=Proveedor
     AddContact=Crear contacto
    @@ -305,18 +305,18 @@ PersonalInformations=Información personal
     AccountancyCode=Cuenta contable
     CustomerCode=Código cliente
     SupplierCode=Código proveedor
    -CustomerCodeShort=Código cliente
    -SupplierCodeShort=Código proveedor
    -CustomerCodeDesc=Código único cliente para cada cliente
    -SupplierCodeDesc=Código único proveedor para cada proveedor
    +CustomerCodeShort=Cód. cliente
    +SupplierCodeShort=Cód. proveedor
    +CustomerCodeDesc=Código cliente, único para todos los clientes
    +SupplierCodeDesc=Código proveedor, único para todos los proveedores
     RequiredIfCustomer=Requerida si el tercero es un cliente o cliente potencial
     RequiredIfSupplier=Requerida si el tercero es un proveedor
     ValidityControledByModule=Validación controlada por el módulo
    -ThisIsModuleRules=Esta es la regla para este módulo
    +ThisIsModuleRules=Reglas para este módulo.
     ProspectToContact=Cliente potencial a contactar
     CompanyDeleted=La empresa "%s" ha sido eliminada
     ListOfContacts=Listado de contactos
    -ListOfContactsAddresses=Listado de contactos/direcciones
    +ListOfContactsAddresses=Listado de contactos
     ListOfThirdParties=Listado de terceros
     ShowCompany=Mostrar tercero
     ShowContact=Mostrar contacto
    @@ -333,17 +333,17 @@ NoContactForAnyProposal=Este contacto no es contacto de ningún presupuesto
     NoContactForAnyContract=Este contacto no es contacto de ningún contrato
     NoContactForAnyInvoice=Este contacto no es contacto de ninguna factura
     NewContact=Nuevo contacto
    -NewContactAddress=Nuevo contacto/dirección
    +NewContactAddress=Nuevo Contacto/Dirección
     MyContacts=Mis contactos
     Capital=Capital
     CapitalOf=Capital de %s
     EditCompany=Modificar empresa
    -ThisUserIsNot=Este usuario no es ni cliente potencial ni cliente ni proveedor
    +ThisUserIsNot=Este usuario no es ni un cliente potencial, ni un cliente, ni un proveedor
     VATIntraCheck=Verificar
    -VATIntraCheckDesc=El link <b>%s</b> permite consultar al servicio europeo de control de números de IVA intracomunitario. Se requiere acceso a internet para que el servicio funcione
    +VATIntraCheckDesc=El enlace <b>%s</b> permite consultar al servicio europeo de control de números de IVA intracomunitario (VIES). Se requiere acceso a internet para que el servicio funcione.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Verificar en la web de la Comisión Europea
    -VATIntraManualCheck=Puede también realizar una verificación manual en la web europea <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Verificar el CIF/NIF intracomunitario en la web de la Comisión Europea
    +VATIntraManualCheck=Puede también realizar una verificación manual en la web de la comisión europea <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Comprobación imposible. El servicio de comprobación no es prestado por el país país miembro (%s).
     NorProspectNorCustomer=Ni cliente, ni cliente potencial
     JuridicalStatus=Forma jurídica
    @@ -388,15 +388,15 @@ ContactNotLinkedToCompany=Contacto no vinculado a un tercero
     DolibarrLogin=Login usuario
     NoDolibarrAccess=Sin acceso de usuario
     ExportDataset_company_1=Terceros (Empresas / asociaciones / particulares) y propiedades
    -ExportDataset_company_2=Contactos de terceros y campos adicionales
    +ExportDataset_company_2=Contactos y sus propiedades
     ImportDataset_company_1=Terceros (Empresas / asociaciones / particulares) y propiedades
    -ImportDataset_company_2=Contactos/Direcciones (de terceros o no) y campos adicionales
    +ImportDataset_company_2=Contactos/Direcciones y campos adicionales
     ImportDataset_company_3=Cuentas bancarias de terceros
    -ImportDataset_company_4=Terceros/Comerciales (Asigna usuarios comerciales a terceros)
    +ImportDataset_company_4=Terceros/Comerciales (Asigna comerciales/usuarios a terceros)
     PriceLevel=Nivel de precios
     DeliveryAddress=Dirección de envío
     AddAddress=Añadir dirección
    -SupplierCategory=Categoría proveedor
    +SupplierCategory=Categoría de proveedor
     JuridicalStatus200=Independiente
     DeleteFile=Eliminación de un archivo
     ConfirmDeleteFile=¿Está seguro de querer eliminar este archivo?
    @@ -404,7 +404,7 @@ AllocateCommercial=Asignado a comercial
     Organization=Organismo
     FiscalYearInformation=Información del año fiscal
     FiscalMonthStart=Mes de inicio de ejercicio
    -YouMustAssignUserMailFirst=Primero debe indicar un e-mail para este usuario para poder añadirlo en e-mails de notificaciones.
    +YouMustAssignUserMailFirst=Primero debes asignar un e-mail para este usuario para poder añadirlo en notificaciones de e-mail.
     YouMustCreateContactFirst=Para poder añadir notificaciones por e-mail, primero debe definir contactos con e-mails válidos en el tercero
     ListSuppliersShort=Listado de proveedores
     ListProspectsShort=Listado de clientes potenciales
    @@ -420,7 +420,7 @@ CurrentOutstandingBill=Riesgo alcanzado
     OutstandingBill=Importe máximo para facturas pendientes
     OutstandingBillReached=Importe máximo para facturas pendientes
     OrderMinAmount=Importe mínimo para pedido
    -MonkeyNumRefModelDesc=Devuelve un número con formato %syymm-nnnn para el código del cliente y %syymm-nnnn para el código del proveedor donde yy es año, mm es mes y nnnn es una secuencia sin interrupción y sin retorno a 0.
    +MonkeyNumRefModelDesc=Devuelve un número bajo el formato %syymm-nnnn para los códigos de clientes y %syymm-nnnn para los códigos de los proveedores, donde yy es el año, mm el mes y nnnn un contador secuencial sin ruptura y sin volver a 0.
     LeopardNumRefModelDesc=Código de cliente/proveedor libre sin verificación. Puede ser modificado en cualquier momento.
     ManagingDirectors=Administrador(es) (CEO, director, presidente, etc.)
     MergeOriginThirdparty=Tercero duplicado (tercero que debe eliminar)
    @@ -431,4 +431,4 @@ SaleRepresentativeLogin=Inicio de sesión del comercial
     SaleRepresentativeFirstname=Nombre del comercial
     SaleRepresentativeLastname=Apellidos del comercial
     ErrorThirdpartiesMerge=Se produjo un error al eliminar los terceros. Por favor, compruebe el log. Los cambios han sido anulados.
    -NewCustomerSupplierCodeProposed=Nuevo código de cliente o proveedor sugerido duplicado
    +NewCustomerSupplierCodeProposed=Código de cliente o proveedor ya utilizado, se sugiere un nuevo código
    diff --git a/htdocs/langs/es_ES/compta.lang b/htdocs/langs/es_ES/compta.lang
    index 748f5e762ff..f926fc7eed0 100644
    --- a/htdocs/langs/es_ES/compta.lang
    +++ b/htdocs/langs/es_ES/compta.lang
    @@ -19,8 +19,8 @@ Income=Ingresos
     Outcome=Gastos
     MenuReportInOut=Resultado / Ejercicio
     ReportInOut=Resultado / Ejercicio
    -ReportTurnover=Turnover invoiced
    -ReportTurnoverCollected=Turnover collected
    +ReportTurnover=Volumen de ventas emitidas
    +ReportTurnoverCollected=Volumen de ventas cobradas
     PaymentsNotLinkedToInvoice=Pagos vinculados a ninguna factura, por lo que ninguún tercero
     PaymentsNotLinkedToUser=Pagos no vinculados a un usuario
     Profit=Beneficio
    @@ -38,7 +38,7 @@ VATToCollect=IVA compras
     VATSummary=Balance de IVA
     VATBalance=Balance de IVA
     VATPaid=IVA Pagado
    -LT1Summary=Saldo IRPF
    +LT1Summary=Resumen RE
     LT2Summary=Resumen de IRPF
     LT1SummaryES=Balance del RE
     LT2SummaryES=Balance de IRPF
    @@ -78,7 +78,7 @@ MenuNewSocialContribution=Nueva tasa
     NewSocialContribution=Nueva tasa social/fiscal
     AddSocialContribution=Añadir tasa social/fiscal
     ContributionsToPay=Tasas sociales/fiscales a pagar
    -AccountancyTreasuryArea=Billing and payment area
    +AccountancyTreasuryArea=Área facturación y pagos
     NewPayment=Nuevo pago
     Payments=Pagos
     PaymentCustomerInvoice=Cobro factura a cliente
    @@ -118,9 +118,9 @@ CustomerAccountancyCodeShort=Cód. cuenta cliente
     SupplierAccountancyCodeShort=Cód. cuenta proveedor
     AccountNumber=Número de cuenta
     NewAccountingAccount=Nueva cuenta
    -Turnover=Turnover invoiced
    -TurnoverCollected=Turnover collected
    -SalesTurnoverMinimum=Minimum turnover
    +Turnover=Volumen de ventas emitidas
    +TurnoverCollected=Volumen de ventas cobradas
    +SalesTurnoverMinimum=Volumen de ventas mínimo
     ByExpenseIncome=Por gastos e ingresos
     ByThirdParties=Por tercero
     ByUserAuthorOfInvoice=Por autor de la factura
    @@ -140,9 +140,9 @@ ConfirmDeleteSocialContribution=¿Está seguro de querer eliminar este pago de t
     ExportDataset_tax_1=tasas sociales y fiscales y pagos
     CalcModeVATDebt=Modo <b>%sIVA sobre facturas emitidas%s</b>.
     CalcModeVATEngagement=Modo <b>%sIVA sobre facturas cobradas%s</b>.
    -CalcModeDebt=Analysis of known recorded invoices even if they are not yet accounted in ledger.
    -CalcModeEngagement=Analysis of known recorded payments, even if they are not yet accounted in Ledger.
    -CalcModeBookkeeping=Análisis de datos <b>registrados en la tabla Libro mayor</b>
    +CalcModeDebt=Análisis de facturas registradas conocidas incluso si aún no se encuentran contabilizadas en el libro mayor.
    +CalcModeEngagement=Análisis de los pagos registrados conocidos, incluso si aún no se encuentran contabilizados en el Libro mayor.
    +CalcModeBookkeeping=Análisis de los datos registrados en el Libro mayor
     CalcModeLT1= Modo <b>%sRE facturas a clientes - facturas de proveedores%s</b>
     CalcModeLT1Debt=Modo <b>%sRE en facturas a clientes%s</b>
     CalcModeLT1Rec= Modo <b>%sRE en facturas de proveedores%s</b>
    @@ -154,9 +154,9 @@ AnnualSummaryInputOutputMode=Resumen anual del balance de ingresos y gastos
     AnnualByCompanies=Balance de ingresos y gastos, por grupos de cuenta predefinidos
     AnnualByCompaniesDueDebtMode=Balance de ingresos y gastos, desglosado por terceros, en modo<b>%sCréditos-Deudas%s</b> llamada <b>contabilidad de compromiso</b>.
     AnnualByCompaniesInputOutputMode=Balance de ingresos y gastos, desglosado por terceros, en modo <b>%sIngresos-Gastos%s</b> llamada <b>contabilidad de caja</b>.
    -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on actual payments made even if they are not yet accounted in Ledger.
    -SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even if they are not yet accounted in Ledger.
    -SeeReportInBookkeepingMode=See <b>%sBookeeping report%s</b> for a calculation on <b>Bookkeeping Ledger table</b>
    +SeeReportInInputOutputMode=Consulte %sanálisis de pagos%s para obtener un cálculo de los pagos efectuados, incluso si aún no se han contabilizado en el Libro mayor.
    +SeeReportInDueDebtMode=Consulte %sanálisis de facturas %s para un cálculo basado en facturas registradas conocidas, incluso si aún no se han contabilizado en Libro mayor.
    +SeeReportInBookkeepingMode=Consulte el <b>%sInforme de facturación%s</b> para realizar un cálculo en la <b>Tabla Libro mayor</b>
     RulesAmountWithTaxIncluded=- Los importes mostrados son con todos los impuestos incluídos.
     RulesResultDue=- Incluye las facturas pendientes, los gastos, el IVA,  las donaciones pagadas o no. También se incluyen los salarios pagados.<br>- Se basa en la fecha de la validación de las facturas e IVA y en la fecha de vencimiento de los gastos. Para los salarios definidos con el módulo de Salarios, se usa la fecha de valor del pago.
     RulesResultInOut=- Incluye los pagos realizados sobre las facturas, las gastos y el IVA. <br>- Se basa en las fechas de pago de las facturas, gastos e IVA. La fecha de donación para las donaciones
    @@ -169,10 +169,10 @@ RulesResultBookkeepingPersonalized=Muestra un registro en su libro mayor con cue
     SeePageForSetup=Vea el menú <a href="%s">%s</a> para configurarlo
     DepositsAreNotIncluded=- Las facturas de anticipo no están incluidas
     DepositsAreIncluded=- Las facturas de anticipo están incluidas
    -LT1ReportByCustomers=Informe por terceros del RE
    +LT1ReportByCustomers=Informe por tercero del RE
     LT2ReportByCustomers=Informe por tercero del IRPF
    -LT1ReportByCustomersES=Informe de RE por terceros
    -LT2ReportByCustomersES=Informe por tercero del IRPF
    +LT1ReportByCustomersES=Informe de RE por tercero
    +LT2ReportByCustomersES=Informe de IRPF por tercero del
     VATReport=Informe IVA
     VATReportByPeriods=Informe de IVA por período
     VATReportByRates=Informe de impuestos por tasa
    @@ -221,16 +221,16 @@ Mode1=Método 1
     Mode2=Método 2
     CalculationRuleDesc=Para calcular el IVA total hay 2 métodos:<br>El método 1 consiste en redondear el IVA en cada línea y luego sumarlo .<br>El método 2 consiste en sumar el IVA de cada línea y luego redondear el resultado.<br>El resultado final puede variar unos céntimos. El modo por defecto es el método <b>%s</b>.
     CalculationRuleDescSupplier=Según el proveedor, elija el método adecuado para aplicar misma regla de cálculo y obtener el resultado esperado por su proveedor.
    -TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover collected per product is not available. This report is only available for turnover invoiced.
    -TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced.
    +TurnoverPerProductInCommitmentAccountingNotRelevant=El informe del volumen de ventas cobradas por producto no está disponible. Este informe solo está disponible para el volumen de ventas emitidas.
    +TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=El informe Volumen de ventas cobradas por tasa de impuesto no está disponible. Este informe solo está disponible para volumen de ventas emitidas.
     CalculationMode=Modo de cálculo
     AccountancyJournal=Código contable diario
     ACCOUNTING_VAT_SOLD_ACCOUNT=Cuenta contable por defecto para el IVA de ventas (usado si no se define en el diccionario de IVA)
     ACCOUNTING_VAT_BUY_ACCOUNT=Cuenta contable por defecto para el IVA de compras (usado si no se define en el diccionario de IVA)
     ACCOUNTING_VAT_PAY_ACCOUNT=Código contable por defecto para el pago de IVA
    -ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta contable a usar para clientes
    +ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta contable usada para clientes
     ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de terceros para el relleno del Libro Mayor,  o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del tercero
    -ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta contable usada para los terceros
    +ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta contable usada para proveedores
     ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de terceros para el relleno del Libro Mayor, o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del tercero
     CloneTax=Clonar una tasa social/fiscal
     ConfirmCloneTax=Confirmar la clonación de una tasa social/fiscal
    @@ -254,6 +254,6 @@ VATDue=Impuesto reclamado
     ClaimedForThisPeriod=Reclamado para el período
     PaidDuringThisPeriod=Pagado durante este período
     ByVatRate=Por tasa de impuesto
    -TurnoverbyVatrate=Turnover invoiced by sale tax rate
    -TurnoverCollectedbyVatrate=Turnover collected by sale tax rate
    +TurnoverbyVatrate=Volumen de ventas emitidas por tipo de impuesto
    +TurnoverCollectedbyVatrate=Volumen de ventas cobradas por tipo de impuesto
     PurchasebyVatrate=Compra por tasa de impuestos
    diff --git a/htdocs/langs/es_ES/cron.lang b/htdocs/langs/es_ES/cron.lang
    index da8ac9c00aa..50497ad0b98 100644
    --- a/htdocs/langs/es_ES/cron.lang
    +++ b/htdocs/langs/es_ES/cron.lang
    @@ -64,7 +64,7 @@ CronClassFile=Nombre de archivo con clase
     CronModuleHelp=Nombre del directorio del módulo Dolibarr (también funciona con módulos externos). <BR> Por ejemplo, para realizar un fetch del objeto Product /htdocs/<u>product</u>/class/product.class.php, el valor del módulo es <i>product</i>
     CronClassFileHelp=El nombre del archivo a cargar (la ruta es relativa al directorio raiz del servidor web). <BR> Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/<u>product.class.php</u>, el valor del nombre del archivo de la clase es <i>product.class.php</i>
     CronObjectHelp=El nombre del objeto a cargar. <BR> Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, el valor del nombre de la clase es <i>Product</i>
    -CronMethodHelp=El método del objeto a lanzar. <BR> Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, el valor del método es <i>fecth</i>
    +CronMethodHelp=El método del objeto a lanzar. <BR> Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, el valor del método es <i>fetch</i>
     CronArgsHelp=Los argumentos del método. <BR> Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, los valores pueden ser <i>0, ProductRef</i>
     CronCommandHelp=El comando en línea del sistema a ejecutar.
     CronCreateJob=Crear nueva tarea programada
    diff --git a/htdocs/langs/es_ES/dict.lang b/htdocs/langs/es_ES/dict.lang
    index c034f2f530b..09aa139c04a 100644
    --- a/htdocs/langs/es_ES/dict.lang
    +++ b/htdocs/langs/es_ES/dict.lang
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Corea del Norte
     CountryKR=Corea del Sur
     CountryKW=Kuwait
    -CountryKG=Kirguistán
    +CountryKG=Kirguizstán
     CountryLA=Laos
     CountryLV=Letonia
     CountryLB=Líbano
    @@ -160,7 +160,7 @@ CountryMD=Moldavia
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Birmania)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Rupias mauritanas
     CurrencySingMUR=Rupia mauritana
     CurrencyNOK=Coronas noruegas
    -CurrencySingNOK=Corona noruega
    +CurrencySingNOK=Coronas noruegas
     CurrencyTND=Dinares tunecinos
     CurrencySingTND=Dinar tunecino
     CurrencyUSD=Dólares USA
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Boca a boca
     DemandReasonTypeSRC_PARTNER=Socio
     DemandReasonTypeSRC_EMPLOYEE=Empleado
     DemandReasonTypeSRC_SPONSORING=Patrocinador
    +DemandReasonTypeSRC_SRC_CUSTOMER=Contacto entrante de un cliente
     #### Paper formats ####
     PaperFormatEU4A0=Formato 4A0
     PaperFormatEU2A0=Formato 2A0
    diff --git a/htdocs/langs/es_ES/ecm.lang b/htdocs/langs/es_ES/ecm.lang
    index 9c8bacea31b..fb443e7bd8c 100644
    --- a/htdocs/langs/es_ES/ecm.lang
    +++ b/htdocs/langs/es_ES/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nº de documentos
    +ECMNbOfDocs=Nº de documentos en el directorio
     ECMSection=Directorio
     ECMSectionManual=Directorio manual
     ECMSectionAuto=Directorio automático
    @@ -34,18 +34,19 @@ ECMDocsByProjects=Documentos enlazados a proyectos
     ECMDocsByUsers=Documentos enlazados a usuarios
     ECMDocsByInterventions=Documentos enlazados a intervenciones
     ECMDocsByExpenseReports=Documentos enlazados a informes de gastos
    +ECMDocsByHolidays=Documentos vinculados a días libres
    +ECMDocsBySupplierProposals=Documentos vinculados a presupuestos de proveedores.
     ECMNoDirectoryYet=No se ha creado el directorio
     ShowECMSection=Mostrar directorio
     DeleteSection=Eliminación directorio
     ConfirmDeleteSection=¿Está seguro de querer eliminar el directorio <b>%s</b>?
     ECMDirectoryForFiles=Directorio relativo para archivos
    -CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories
    -CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files
    +CannotRemoveDirectoryContainsFilesOrDirs=No se puede eliminar porque contiene archivos o subdirectorios
    +CannotRemoveDirectoryContainsFiles=No se puede eliminar porque contiene archivos
     ECMFileManager=Explorador de archivos
     ECMSelectASection=Seleccione un directorio en el árbol de la izquierda
     DirNotSynchronizedSyncFirst=Este directorio fue creado o modificado fuera del módulo GED. Haga clic en el botón "Actualizar" para resincronizar la información del disco y la base  de datos para ver el contenido de ese directorio.
     ReSyncListOfDir=Resincronizar la lista de directorios
     HashOfFileContent=Hash de contenido de archivo
    -FileNotYetIndexedInDatabase=Archivo aún no indexado en la base de datos (intente volver a cargarlo)
    -FileSharedViaALink=Archivo compartido a través de un enlace
     NoDirectoriesFound=No se encontraron directorios
    +FileNotYetIndexedInDatabase=Archivo aún no indexado en la base de datos (intente volver a cargarlo)
    diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang
    index 422ee5c7fc8..4a7422082c2 100644
    --- a/htdocs/langs/es_ES/errors.lang
    +++ b/htdocs/langs/es_ES/errors.lang
    @@ -32,9 +32,9 @@ ErrorBarCodeRequired=Código de barras requerido
     ErrorCustomerCodeAlreadyUsed=Código de cliente ya utilizado
     ErrorBarCodeAlreadyUsed=El código de barras ya está siendo utilizado
     ErrorPrefixRequired=Prefijo obligatorio
    -ErrorBadSupplierCodeSyntax=La sintaxis del código de proveedor es incorrecta
    -ErrorSupplierCodeRequired=Código de proveedor obligatorio
    -ErrorSupplierCodeAlreadyUsed=Código de cliente ya utilizado
    +ErrorBadSupplierCodeSyntax=La sintaxis del código proveedor es incorrecta
    +ErrorSupplierCodeRequired=Código proveedor obligatorio
    +ErrorSupplierCodeAlreadyUsed=Código de proveedor ya utilizado
     ErrorBadParameters=Parámetros incorrectos
     ErrorBadValueForParameter=valor '%s' incorrecto para el parámetro '%s'
     ErrorBadImageFormat=El archivo de imagen es de un formato no soportado (Su PHP no soporta las funciones de conversión de este formato de imagen)
    @@ -67,6 +67,7 @@ ErrorNoValueForRadioType=Los valores de la lista deben ser indicados
     ErrorBadFormatValueList=El valor de la lista no puede tener más de una coma: <u>%s</u>, pero es necesaria al menos una: clave,valor
     ErrorFieldCanNotContainSpecialCharacters=El campo <b>%s</b> no debe contener carácteres especiales
     ErrorFieldCanNotContainSpecialNorUpperCharacters=El campo <b>%s</b> no debe contener carácteres especiales, ni caracteres en mayúsculas y no puede contener sólo números
    +ErrorFieldMustHaveXChar=El campo <b> %s </b> debe tener al menos %s caracteres.
     ErrorNoAccountancyModuleLoaded=Módulo de contabilidad no activado
     ErrorExportDuplicateProfil=El nombre de este perfil ya existe para este conjunto de exportación
     ErrorLDAPSetupNotComplete=La configuración Dolibarr-LDAP es incompleta.
    @@ -87,7 +88,8 @@ ErrorsOnXLines=Errores en <b>%s</b> líneas fuente
     ErrorFileIsInfectedWithAVirus=¡El antivirus no ha podido validar este archivo (es probable que esté infectado por un virus)!
     ErrorSpecialCharNotAllowedForField=Los caracteres especiales no son admitidos por el campo "%s"
     ErrorNumRefModel=Hay una referencia en la base de datos (%s) y es incompatible con esta numeración. Elimine la línea o renombre la referencia para activar este módulo.
    -ErrorQtyTooLowForThisSupplier=Cantidad demasiado baja para este proveedor o ningún precio definido en este producto para este proveedor
    +ErrorQtyTooLowForThisSupplier=Cantidad insuficiente para este proveedor
    +ErrorOrdersNotCreatedQtyTooLow=Algunos pedidos no se han creado debido a una cantidad demasiado baja
     ErrorModuleSetupNotComplete=La configuración del módulo parece incompleta. Vaya a Inicio - Configuración - Módulos para completarla.
     ErrorBadMask=Error en la máscara
     ErrorBadMaskFailedToLocatePosOfSequence=Error, sin número de secuencia en la máscara
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=La cuenta de usuario de <b>%s</b> no se ha encontrado.
     ErrorLoginHasNoEmail=Este usuario no tiene e-mail. Imposible continuar.
     ErrorBadValueForCode=Valor incorrecto para el código. Vuelva a intentar con un nuevo valor...
     ErrorBothFieldCantBeNegative=Los campos %s y %s no pueden ser negativos
    +ErrorFieldCantBeNegativeOnInvoice=El campo <strong> %s </strong> no puede ser negativo en este tipo de factura. Si desea agregar una línea de descuento, primero cree el descuento con el enlace %s en la pantalla y aplíquelo a la factura. También puede pedir a su administrador que establezca la opción FACTURE_ENABLE_NEGATIVE_LINES en 1 para restaurar el comportamiento anterior.
     ErrorQtyForCustomerInvoiceCantBeNegative=Las cantidades en las líneas de facturas a clientes no pueden ser negativas
     ErrorWebServerUserHasNotPermission=La cuenta de ejecución del servidor web <b>%s</b> no dispone de los permisos para esto
     ErrorNoActivatedBarcode=No hay activado ningún tipo de código de barras
    @@ -138,7 +141,7 @@ ErrorBadFormat=¡El formato es erróneo!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, este miembro aún no está enlazado a un tercero. Enlace el miembro a un tercero existente o cree un tercero nuevo antes de crear la suscripción con la factura.
     ErrorThereIsSomeDeliveries=Error, hay entregas vinculadas a este envío. No se puede eliminar.
     ErrorCantDeletePaymentReconciliated=No se puede eliminar un registro bancario que esté conciliado
    -ErrorCantDeletePaymentSharedWithPayedInvoice=No se puede eliminar un pago de varias factura con alguna factura con estado Pagada
    +ErrorCantDeletePaymentSharedWithPayedInvoice=No se puede eliminar un pago de varias facturas con alguna factura con estado Pagada
     ErrorPriceExpression1=No se puede asignar a la constante '%s'
     ErrorPriceExpression2=No se puede redefinir la función incorporada '%s'
     ErrorPriceExpression3=Variable '%s' no definida en la definición de la función
    @@ -171,13 +174,13 @@ ErrorGlobalVariableUpdater4=El cliente SOAP ha fallado con el error '%s'
     ErrorGlobalVariableUpdater5=Sin variable global seleccionada
     ErrorFieldMustBeANumeric=El campo <b>%s</b> debe contener un valor numérico
     ErrorMandatoryParametersNotProvided=Los parámetro(s) obligatorio(s) no están todavía definidos
    -ErrorOppStatusRequiredIfAmount=Ha indicado un importe estimado para esta oportunidad/lead. Debe indicar también su estado
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Error al cargar el descriptor de clase del módulo %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Definición incorrecta de la matriz de menú en el descriptor del módulo (valor incorrecto para la clave fk_menu)
     ErrorSavingChanges=Ha ocurrido un error al guardar los cambios
     ErrorWarehouseRequiredIntoShipmentLine=El almacén es obligatorio en la línea a enviar
     ErrorFileMustHaveFormat=El archivo debe tener el formato %s
    -ErrorSupplierCountryIsNotDefined=El país para este proveedor no está definido. Corrija esto primero.
    +ErrorSupplierCountryIsNotDefined=El país de este proveedor no está definido, corríjalo en su ficha
     ErrorsThirdpartyMerge=No se han podido fusionar los dos registros. Petición cancelada. 
     ErrorStockIsNotEnoughToAddProductOnOrder=No hay stock suficiente del producto %s para añadirlo a un nuevo pedido.
     ErrorStockIsNotEnoughToAddProductOnInvoice=No hay stock suficiente del producto %s para añadirlo a una nueva factura.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=Archivo no encontrado. Puede ser que la clave co
     ErrorProductBarCodeAlreadyExists=El código de barras del producto %s ya existe en otra referencia de producto.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Tenga en cuenta también que no es posible utilizar productos virtuales para aumentar/disminuir automáticamente subproductos cuando al menos un subproducto (o subproducto de subproductos) necesita un número de serie/lote.
     ErrorDescRequiredForFreeProductLines=La descripción es obligatoria para las líneas libres
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=La página/contenedor <strong>%s</strong> tiene el mismo nombre o alias alternativo que el que intenta utilizar
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=Se fijó una contraseña para este miembro. Sin embargo, no se ha creado ninguna cuenta de usuario. Así que esta contraseña no se puede utilizar para acceder a Dolibarr. Puede ser utilizada por un módulo/interfaz externo, pero si no necesitar definir accesos de un miembro, puede desactivar la opción "Administrar un inicio de sesión para cada miembro" en la configuración del módulo miembros. Si necesita administrar un inicio de sesión, pero no necesita ninguna contraseña, puede dejar este campo vacío para evitar esta advertencia. Nota: También puede usarse el correo electrónico como inicio de sesión si el miembro está vinculada a un usuario.
     WarningMandatorySetupNotComplete=Los parámetros obligatorios de configuración no están todavía definidos
    diff --git a/htdocs/langs/es_ES/help.lang b/htdocs/langs/es_ES/help.lang
    index 064d8382d7d..8c1d9c59b6b 100644
    --- a/htdocs/langs/es_ES/help.lang
    +++ b/htdocs/langs/es_ES/help.lang
    @@ -6,7 +6,7 @@ OtherSupport=Otros tipos de asistencia
     ToSeeListOfAvailableRessources=Para contactar/ver los recursos disponibles:
     HelpCenter=Centro de asistencia
     DolibarrHelpCenter=Centro de soporte y ayuda Dolibarr
    -ToGoBackToDolibarr=Haga clic <a href="%s">aquí para utilizar Dolibarr</a>
    +ToGoBackToDolibarr=De lo contrario, <a href="%s">haga clic aquí para continuar usando Dolibarr</a>.
     TypeOfSupport=Tipo de soporte
     TypeSupportCommunauty=Comunitario (gratuito)
     TypeSupportCommercial=Comercial
    @@ -16,11 +16,8 @@ Efficiency=Eficacia
     TypeHelpOnly=Sólamente ayuda
     TypeHelpDev=Ayuda+Desarrollo
     TypeHelpDevForm=Ayuda+Desarrollo+Formación
    -ToGetHelpGoOnSparkAngels1=Algunas empresas o independientes ofrecen servicios de apoyo muy rápido (a veces de inmediato) y más eficientes gracias a la capacidad de control remoto de su equipo para ayudar a diagnosticar y resolver sus problemas. Esta asistencia se puede encontrar en la bolsa de asistentes de <b>%s</b>:
    -ToGetHelpGoOnSparkAngels3=Para acceder a la búsqueda de <b>asistentes disponibles</b>, haga clic aquí
    -ToGetHelpGoOnSparkAngels2=En ocasiones, ningún operador se encuentra disponible en el momento de su búsqueda, no olvide cambiar los criterios de búsqueda indicando "todos los disponibles". Puede, entonces, ponerse en contacto en diferido.
    -BackToHelpCenter=Sino, haga clic aquí para <a href="%s"> volver al centro de asistencia</a>.
    -LinkToGoldMember=En caso contrario, puede llamar inmediatamente a uno de los asistentes preseleccionados por Dolibarr para su idioma (%s) haciendo clic en su widget (disponibilidad y tarifa máxima actualizadas automáticamente):
    +BackToHelpCenter=De lo contrario, <a href="%s">vuelva a la página de inicio del Centro de ayuda</a>.
    +LinkToGoldMember=Puede llamar a uno de los formadores preseleccionados por Dolibarr para su idioma (%s) haciendo clic en su Widget (el estado y el precio máximo se actualizan automáticamente):
     PossibleLanguages=Idiomas disponibles
     SubscribeToFoundation=Ayude al proyecto Dolibarr, adhiérase a la asociación Dolibarr
     SeeOfficalSupport=Para obtener soporte oficial Dolibarr en su idioma: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/es_ES/holiday.lang b/htdocs/langs/es_ES/holiday.lang
    index 98959df18b2..c66e6c7122c 100644
    --- a/htdocs/langs/es_ES/holiday.lang
    +++ b/htdocs/langs/es_ES/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=RRHH
    -Holidays=Días libres
    -CPTitreMenu=Días libres
    +Holidays=Día libre
    +CPTitreMenu=Día libre
     MenuReportMonth=Estado mensual
     MenuAddCP=Nueva petición de vacaciones
    -NotActiveModCP=Debe activar el módulo Días libres retribuidos para ver esta página
    +NotActiveModCP=Debe activar el módulo Días libres para ver esta página
     AddCP=Realizar una petición de días libres
     DateDebCP=Fecha inicio
     DateFinCP=Fecha fin
    @@ -25,7 +25,7 @@ UserForApprovalLogin=Inicio de sesión de usuario de aprobación
     DescCP=Descripción
     SendRequestCP=Enviar la petición de días libres
     DelayToRequestCP=Las peticiones de días libres deben realizarse al menos <b>%s días</b> antes.
    -MenuConfCP=Balance de vacaciones
    +MenuConfCP=Balance de días libres
     SoldeCPUser=Su saldo de días libres es de <b>%s días</b>.
     ErrorEndDateCP=Debe indicar una fecha de fin superior a la fecha de inicio.
     ErrorSQLCreateCP=Se ha producido un error de SQL durante la creación :
    @@ -101,8 +101,8 @@ LEAVE_SICK=Baja por enfermedad
     LEAVE_OTHER=Otra petición
     LEAVE_PAID_FR=Vacación
     ## Configuration du Module ##
    -LastUpdateCP=Última actualización automática de días retribuidos
    -MonthOfLastMonthlyUpdate=Mes de la última actualización automática de días retribuidos
    +LastUpdateCP=Última actualización automática de días libres
    +MonthOfLastMonthlyUpdate=Mes de la última actualización automática de días libres
     UpdateConfCPOK=Actualización efectuada correctamente.
     Module27130Name= Gestión de los días libres
     Module27130Desc= Gestión de días libres
    @@ -112,7 +112,7 @@ NoticePeriod=Plazo de aviso
     HolidaysToValidate=Días libres retribuidos a validar
     HolidaysToValidateBody=A continuación encontrará una solicitud de días libres retribuidos para validar
     HolidaysToValidateDelay=Esta solicitud de días libres retribuidos tendrá lugar en un plazo de menos de %s días.
    -HolidaysToValidateAlertSolde=El usuario que ha realizado la solicitud de días libres retribuidos no dispone de suficientes días disponibles.
    +HolidaysToValidateAlertSolde=El usuario que ha realizado la solicitud de días retribuidos no dispone de suficientes días disponibles.
     HolidaysValidated=Días libres retribuidos validados
     HolidaysValidatedBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido validada.
     HolidaysRefused=Días libres retribuidos denegados
    @@ -121,4 +121,9 @@ HolidaysCanceled=Días libres retribuidos cancelados
     HolidaysCanceledBody=Su solicitud de días libres retribuidos desde el %s al %s ha sido cancelada.
     FollowedByACounter=1: Este tipo de día retribuido necesita ser seguido por un contador. El contador se incrementa de forma manual o automáticamente y cuando se valida una solicitud, el contador disminuye.<br> 0: No es seguido por un contador.
     NoLeaveWithCounterDefined=No hay ningún tipo de peticiones definidas que deben ser seguidas por un contador
    -GoIntoDictionaryHolidayTypes=Vaya a <strong>Inicio - Configuración - Diccionarios - Tipos de vacaciones </strong> para configurar los diferentes tipos.
    +GoIntoDictionaryHolidayTypes=Vaya a <strong>Inicio - Configuración - Diccionarios - Tipos de días libres </strong> para configurar los diferentes tipos.
    +HolidaySetup=Configuración del módulo Días libres
    +HolidaysNumberingModules=Modelos de numeración de petición de días libres
    +TemplatePDFHolidays=Plantilla PDF para petición de días libres
    +FreeLegalTextOnHolidays=Texto libre en el PDF
    +WatermarkOnDraftHolidayCards=Marca de agua en las peticiones de días libres
    diff --git a/htdocs/langs/es_ES/install.lang b/htdocs/langs/es_ES/install.lang
    index e04d87cb352..605c6f1fbb4 100644
    --- a/htdocs/langs/es_ES/install.lang
    +++ b/htdocs/langs/es_ES/install.lang
    @@ -17,7 +17,7 @@ PHPSupportUTF8=Este PHP soporta las funciones UTF8.
     PHPMemoryOK=Su memoria máxima de sesión PHP esta definida a <b>%s</b>. Esto debería ser suficiente.
     PHPMemoryTooLow=Su memoria máxima de sesión PHP está definida en <b>%s</b> bytes. Esto es muy poco. Se recomienda modificar el parámetro <b>memory_limit</b> de su archivo <b>php.ini</b> a por lo menos <b>%s</b> bytes.
     Recheck=Haga click aquí para realizar un test más exhaustivo
    -ErrorPHPDoesNotSupportSessions=Su instalación PHP no soporta las sesiones. Esta funcionalidad es necesaria para hacer funcionar a Dolibarr. Compruebe su configuración de PHP.
    +ErrorPHPDoesNotSupportSessions=Su instalación PHP no soporta las sesiones. Esta funcionalidad es necesaria para hacer funcionar a Dolibarr. Compruebe su configuración de PHP y los permisos del directorio de sesiones.
     ErrorPHPDoesNotSupportGD=Este PHP no soporta las funciones gráficas GD. Ningún gráfico estará disponible.
     ErrorPHPDoesNotSupportCurl=Su PHP no soporta Curl.
     ErrorPHPDoesNotSupportUTF8=Este PHP no soporta las funciones UTF8. Resuelva el problema antes de instalar Dolibarr ya que no podrá funcionar correctamente.
    @@ -50,17 +50,18 @@ ServerPortDescription=Puerto del servidor de la base de datos. Dejar en blanco s
     DatabaseServer=Servidor de la base de datos
     DatabaseName=Nombre de la base de datos
     DatabasePrefix=Prefijo para las tablas
    -AdminLogin=Usuario del administrador de la base de datos Dolibarr. Deje vacío si se conecta en anonymous
    +DatabasePrefixDescription=Prefijo de tabla de base de datos. Si está vacío, el valor predeterminado es llx_.
    +AdminLogin=Usuario del administrador de la base de datos Dolibarr.
     PasswordAgain=Verificación de la contraseña
     AdminPassword=Contraseña del administrador de la base de datos Dolibarr. Deje vacío si se conecta en anonymous
     CreateDatabase=Crear la base de datos
     CreateUser=Crear propietario o concederle permiso en la base de datos
     DatabaseSuperUserAccess=Base de datos - Acceso super usuario
    -CheckToCreateDatabase=Seleccione esta opción si la base de datos no existe y debe crearse. En este caso, es necesario indicar usuario/contraseña del superusuario más adelante en esta página.
    -CheckToCreateUser=Seleccione esta opción si el propietario de la base de datos no existe y debe ser creado, o si existe pero la base de datos no existe y se deben conceder permisos.<br> En este caso, debes elegir el login y contraseña y también rellenar el login/contraseña para la cuenta de superusuario en la parte inferior de esta página. Si esta opción no está seleccionada, el propietario de la base de datos y su contraseña deben existir.
    -DatabaseRootLoginDescription=Usuario de la base que tiene los derechos de creación de bases de datos o cuenta para la base de datos, inútil si la base de datos y su usuario ya existen (como cuando están en un anfitrión).
    -KeepEmptyIfNoPassword=Deje vacío si el usuario no tiene contraseña
    -SaveConfigurationFile=Grabación del archivo de configuración
    +CheckToCreateDatabase=Seleccione esta opción si la base de datos no existe y debe crearse.<br>En este caso, es necesario indicar usuario/contraseña del superusuario más adelante en esta página.
    +CheckToCreateUser=Seleccione esta opción si: <br>el usuario de la base de datos aún no existe y, por lo tanto, debe crearse, o<br>si el usuario existe pero la base de datos no existe y se deben otorgar permisos.<br>En este caso, debe ingresar la cuenta de usuario y la contraseña, y <b>también</b> el nombre de la cuenta del superusuario y la contraseña en la parte inferior de esta página. Si esta opción no está marcada, el propietario de la base de datos y la contraseña ya deben existir.
    +DatabaseRootLoginDescription=Nombre de la cuenta de superusuario (para crear nuevas bases de datos o nuevos usuarios), obligatorio si la base de datos o su propietario aún no existen.
    +KeepEmptyIfNoPassword=Deje vacío si el usuario no tiene contraseña (NO recomendado)
    +SaveConfigurationFile=Guardando parámetros para
     ServerConnection=Conexión al servidor
     DatabaseCreation=Creación de la base de datos
     CreateDatabaseObjects=Creación de los objetos de la base de datos
    @@ -81,15 +82,15 @@ YouNeedToPersonalizeSetup=Ahora debe configurar Dolibarr según sus necesidades
     AdminLoginCreatedSuccessfuly=Inicio de sesión del administrador de Dolibarr  '<b>%s</b>' creado correctamente
     GoToDolibarr=Acceso a Dolibarr
     GoToSetupArea=Acceso a Dolibarr (área de configuración)
    -MigrationNotFinished=La versión de su base de datos aún no está completamente a nivel, por lo que tendrá que reiniciar una migración.
    +MigrationNotFinished=La versión de la base de datos no está completamente actualizada: vuelva a ejecutar el proceso de actualización.
     GoToUpgradePage=Acceder a la página de migración de nuevo
     WithNoSlashAtTheEnd=Sin el signo "/" al final
    -DirectoryRecommendation=Se recomienda poner este directorio fuera del directorio de las páginas web.
    +DirectoryRecommendation=Se recomienda utilizar un directorio fuera de las páginas web.
     LoginAlreadyExists=Ya existe
     DolibarrAdminLogin=Login del usuario administrador de Dolibarr
     AdminLoginAlreadyExists=La cuenta de administrador Dolibarr '<b>%s</b>' ya existe. Vuelva atrás si desea crear otra.
     FailedToCreateAdminLogin=No se pudo crear la cuenta de administrador Dolibarr.
    -WarningRemoveInstallDir=Atención, por razones de seguridad, con el fin de bloquear un nuevo uso de las herramientas de instalación/actualización, es aconsejable crear en el directorio raíz de Dolibarr un archivo llamado <b>install.lock</b> en solo lectura.
    +WarningRemoveInstallDir=Atención, por razones de seguridad, con el fin de bloquear un nuevo uso de las herramientas de instalación/actualización, es aconsejable crear en el directorio de documentos de Dolibarr un archivo llamado <b>install.lock</b> en solo lectura para prevenir el uso accidental/malicioso de las herramientas de instalación nuevamente.
     FunctionNotAvailableInThisPHP=No disponible en este PHP
     ChoosedMigrateScript=Elección del script de migración
     DataMigration=Migración de los datos (datos)
    @@ -103,19 +104,19 @@ UpgradeDesc=Utilice este método después de haber actualizado los archivos de u
     Start=Empezar
     InstallNotAllowed=Instalación no autorizada por los permisos del archivo <b>conf.php</b>
     YouMustCreateWithPermission=Debe crear un archivo %s y darle los derechos de escritura al servidor web durante el proceso de instalación.
    -CorrectProblemAndReloadPage=Corrija el problema y <a href="%s">recargue la página</a> (Tecla F5).
    +CorrectProblemAndReloadPage=Por favor, solucione el problema y presione F5 para volver a cargar la página.
     AlreadyDone=Ya migrada
     DatabaseVersion=Versión de la base de datos
     ServerVersion=Versión del servidor de la base de datos
     YouMustCreateItAndAllowServerToWrite=Debe crear este directorio y permitir al servidor web escribir en él.
     DBSortingCollation=Orden de selección utilizado para la base de datos
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Quiso crear la base de datos <b>%s</b>, pero para ello Dolibarr debe conectarse con el servidor <b>%s</b> vía el superusuario <b>%s</b>.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Quiso crear el login de acceso a la base de datos <b>%s</b>, pero para ello Dolibarr debe conectarse con el servidor <b>%s</b> via el superusuario <b>%s</b>.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=Quiso crear la base de datos <b>%s</b>, pero para ello Dolibarr debe conectarse con el servidor <b>%s</b> mediante el superusuario <b>%s</b>.
    +YouAskLoginCreationSoDolibarrNeedToConnect=Quiso crear la base de datos <b>%s</b>, pero para ello Dolibarr debe conectarse con el servidor <b>%s</b> mediante el superusuario <b>%s</b>.
     BecauseConnectionFailedParametersMayBeWrong=La conexión falla, los parámetros del servidor o el superusuario pueden ser incorrectos.
     OrphelinsPaymentsDetectedByMethod=Pagos huérfanos detectados por el método %s
     RemoveItManuallyAndPressF5ToContinue=Suprimalo manualmente y pulse F5 para continuar.
     FieldRenamed=Campo renombrado
    -IfLoginDoesNotExistsCheckCreateUser=Si el login aún no existe, debe seleccionar la opción "Creación del usuario"
    +IfLoginDoesNotExistsCheckCreateUser=Si el usuario aún no existe, debe seleccionar la opción "Creación del usuario"
     ErrorConnection=El servidor "<b>%s</b>", base de datos "<b>%s</b>", login "<b>%s</b>", o la contraseña de la base de datos pueden ser incorrectos o la versión de PHP muy vieja en comparación con la versión de la base de datos.
     InstallChoiceRecommanded=Opción recomendada para instalar la versión <b>%s</b> sobre su actual versión <b>%s</b>
     InstallChoiceSuggested=<b>Opción sugerida por el instalador</b>.
    @@ -124,21 +125,21 @@ CheckThatDatabasenameIsCorrect=Compruebe que el nombre de la base de datos "<b>%
     IfAlreadyExistsCheckOption=Si el nombre es correcto y la base de datos no existe, debe seleccionar la opción "Crear la base de datos"
     OpenBaseDir=Parámetro php openbasedir
     YouAskToCreateDatabaseSoRootRequired=Ha marcado la casilla "Crear la base de datos". Para ello, el usuario/contraseña del superusuario (al final del formulario) son obligatorios.
    -YouAskToCreateDatabaseUserSoRootRequired=Ha marcado la casilla "Crear el usuario propietario" de la base de datos. Para ello, el usuario/contraseña del superusuario (al final del formulario) son obligatorios.
    +YouAskToCreateDatabaseUserSoRootRequired=Ha marcado la opción "Crear el usuario propietario" de la base de datos. Para ello, el usuario/contraseña del superusuario (al final del formulario) son obligatorios.
     NextStepMightLastALongTime=El siguiente paso puede tardar varios minutos. Después de haber validado, le agradecemos espere a la completa visualización de la página siguiente para continuar.
     MigrationCustomerOrderShipping=Actualización de los datos de expediciones de pedidos de clientes
     MigrationShippingDelivery=Actualización de los datos de expediciones
     MigrationShippingDelivery2=Actualización de los datos de expediciones 2
     MigrationFinished=Actualización terminada
    -LastStepDesc=<strong>Último paso</strong>: Indique aquí la cuenta y la contraseña del primer usuario que usted utilizará para conectarse a la aplicación. No pierda estos identificadores, es la cuenta que permite administrar el resto.
    +LastStepDesc=<strong>Último paso</strong>: Indique aquí el usuario y la contraseña que utilizará para conectarse a la aplicación. <b>No pierda estos identificadores, es la cuenta que permite administrar el resto</b>.
     ActivateModule=Activación del módulo %s
     ShowEditTechnicalParameters=Pulse aquí para ver/editar los parámetros técnicos (modo experto)
    -WarningUpgrade=Advertencia: \\\n¿Ha realizado una copia de seguridad de su base de datos antes? \\\nEsto es altamente recomendado: por ejemplo, debido a algunos errores en los sistemas de bases de datos (por ejemplo MySQL versión 5.5.40/41/42/43), algunos datos o tablas pueden perderse durante este proceso, por lo que es altamente recomendado tener un volcado completo de la base de datos antes de iniciar la actualización.\\\n\\\nHaga clic en Aceptar para iniciar el proceso de actualización...
    +WarningUpgrade=Advertencia: \\\n¿Ha realizado una copia de seguridad de su base de datos antes? \\\nEsto es altamente recomendado: por ejemplo, debido a algunos errores en los sistemas de bases de datos (por ejemplo MySQL versión 5.5.40/41/42/43), algunos datos o tablas pueden perderse durante este proceso, por lo que es altamente recomendado tener un volcado completo de la base de datos antes de iniciar la actualización.\n\nHaga clic en Aceptar para iniciar el proceso de actualización...
     ErrorDatabaseVersionForbiddenForMigration=Su versión de base de datos es la %s. Tiene un error crítico que hace que pierda los datos si cambia la estructura de la base de datos, como esto es necesario para el proceso de actualización, este no se va a realizar hasta que actualice su base de datos a una versión mayor con el error subsanado (listado de versiones conocidas con este error: %s)
    -KeepDefaultValuesWamp=Está utilizando el asistente de instalación DoliWamp, los valores propuestos aquí están optimizados. Cambielos solamente si está seguro de ello.
    -KeepDefaultValuesDeb=Está utilizando el asistente de instalación Dolibarr de un paquete Linux (Ubuntu, Debian, Fedora...), los valores propuestos aquí están optimizados. Sólo será necesaria la contraseña del propietario de la base de datos a crear. Cambie la otra información sólamente si está seguro de ello.
    -KeepDefaultValuesMamp=Está utilizando el asistente de instalación DoliMamp, los valores propuestos aquí están optimizados. Cambielos solamente si está seguro de ello.
    -KeepDefaultValuesProxmox=Está utilizando el asistente de instalación Dolibarr desde una máquina virtual Proxmox, los valores propuestos aquí están optimizados. Cambielos solamente si está seguro de ello.
    +KeepDefaultValuesWamp=Está utilizando el asistente de instalación DoliWamp, los valores propuestos aquí están optimizados. Cámbielos solamente si está seguro de ello.
    +KeepDefaultValuesDeb=Está utilizando el asistente de instalación Dolibarr de un paquete Linux (Ubuntu, Debian, Fedora...), los valores propuestos aquí están optimizados. Sólo será necesaria la contraseña del propietario de la base de datos a crear. Cambie la otra información solamente si está seguro de ello.
    +KeepDefaultValuesMamp=Está utilizando el asistente de instalación DoliMamp, los valores propuestos aquí están optimizados. Cámbielos solamente si está seguro de ello.
    +KeepDefaultValuesProxmox=Está utilizando el asistente de instalación Dolibarr desde una máquina virtual Proxmox, los valores propuestos aquí están optimizados. Cámbielos solamente si está seguro de ello.
     UpgradeExternalModule=Ejecutar proceso dedicado para actualizar módulos externos
     SetAtLeastOneOptionAsUrlParameter=Establezca al menos una opción como parámetro en URL. Por ejemplo: '... repair.php?standard=confirmed'
     NothingToDelete=Nada para limpiar/eliminar
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Migración de datos de los pedidos a proveedores
     MigrationProposal=Migración de datos de presupuestos
     MigrationInvoice=Migración de datos de las facturas a clientes
     MigrationContract=Migración de datos de los contratos
    -MigrationSuccessfullUpdate=Actualización con éxito
    +MigrationSuccessfullUpdate=Actualización finalizada
     MigrationUpdateFailed=La actualización ha fallado
     MigrationRelationshipTables=Migración de las tablas de relación (%s)
     MigrationPaymentsUpdate=Actualización de los pagos (vínculo n-n pagos-facturas)
    @@ -193,18 +194,19 @@ MigrationProjectTaskTime=Actualización de tiempo dedicado en segundos
     MigrationActioncommElement=Actualización de los datos de acciones sobre elementos
     MigrationPaymentMode=Actualización de los modos de pago
     MigrationCategorieAssociation=Actualización de las categorías
    -MigrationEvents=Migración de eventos para agregar propietario de evento en la tabla de asignacion
    +MigrationEvents=Migración de eventos para agregar propietario de evento en la tabla de asignación
     MigrationEventsContact=Migración de eventos para agregar contacto de evento en la tabla de asignación
     MigrationRemiseEntity=Actualizando el campo entity de llx_societe_remise
     MigrationRemiseExceptEntity=Actualizando el campo entity de llx_societe_remise_except
     MigrationUserRightsEntity=Actualizando el campo entity de llx_user_rights
     MigrationUserGroupRightsEntity=Actualizando el campo entity de llx_usergroup_rights
    +MigrationUserPhotoPath=Migración de la ruta de las fotos para los usuarios
     MigrationReloadModule=Recargar módulo %s
     MigrationResetBlockedLog=Restablecer el módulo BlockedLog para el algoritmo v7
     ShowNotAvailableOptions=Mostrar opciones no disponibles
     HideNotAvailableOptions=Ocultar opciones no disponibles
     ErrorFoundDuringMigration=Se ha producido un error durante el proceso de migración, por lo que el siguiente paso no está disponible. Para ignorar errores puede <a href="%s">hacer clic aquí</a>, pero la aplicación a algunas funcionalidades pueden no funcionar correctamente mientras no se arregle el problema.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    -ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +YouTryInstallDisabledByDirLock=La aplicación intenta instalar la actualización, pero las páginas de instalación/actualización se han desactivado por razones de seguridad (el nombre del directorio se ha cambiado con el sufijo .lock). <br>
    +YouTryInstallDisabledByFileLock=La aplicación intenta instalar la actualización, pero las páginas de instalación/actualización se han desactivado por razones de seguridad (mediante el archivo de bloqueo <strong>install.lock</strong> del directorio de documentos de dolibarr). <br>
    +ClickHereToGoToApp=Haga clic aquí para ir a su aplicación
    +ClickOnLinkOrRemoveManualy=Haga clic en el siguiente enlace y si siempre llega a esta página, debe eliminar manualmente el archivo install.lock del directorio de documentos
    diff --git a/htdocs/langs/es_ES/interventions.lang b/htdocs/langs/es_ES/interventions.lang
    index faa4d1bcc67..f78e697eb88 100644
    --- a/htdocs/langs/es_ES/interventions.lang
    +++ b/htdocs/langs/es_ES/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Intervenciones
     InterventionCard=Ficha intervención
     NewIntervention=Nueva intevención
     AddIntervention=Crear intervención
    +ChangeIntoRepeatableIntervention=Cambiar a intervención repetible.
     ListOfInterventions=Listado de intervenciones
     ActionsOnFicheInter=Eventos sobre la intervención
     LastInterventions=Últimas %s intervenciones
    diff --git a/htdocs/langs/es_ES/languages.lang b/htdocs/langs/es_ES/languages.lang
    index ec9b14b68fc..82cedefa998 100644
    --- a/htdocs/langs/es_ES/languages.lang
    +++ b/htdocs/langs/es_ES/languages.lang
    @@ -86,3 +86,4 @@ Language_uz_UZ=Uzbeco
     Language_vi_VN=Vietnamita
     Language_zh_CN=Chino
     Language_zh_TW=Chino (Tradicional)
    +Language_bh_MY=Malayo
    diff --git a/htdocs/langs/es_ES/mails.lang b/htdocs/langs/es_ES/mails.lang
    index ad93ddbb2d8..d46afa5b25f 100644
    --- a/htdocs/langs/es_ES/mails.lang
    +++ b/htdocs/langs/es_ES/mails.lang
    @@ -11,9 +11,9 @@ MailFrom=Remitente
     MailErrorsTo=Errores a
     MailReply=Responder a
     MailTo=Destinatario(s)
    -MailToUsers=To user(s)
    +MailToUsers=A usuario(s)
     MailCC=Copia a
    -MailToCCUsers=Copy to users(s)
    +MailToCCUsers=Copia a usuario(s)
     MailCCC=Adjuntar copia a
     MailTopic=Asunto del e-mail
     MailText=Mensaje
    @@ -66,7 +66,7 @@ DateLastSend=Fecha del último envío
     DateSending=Fecha envío
     SentTo=Enviado a <b>%s</b>
     MailingStatusRead=Leido
    -YourMailUnsubcribeOK=El correo electrónico <b>%s</b> es correcta desuscribe.
    +YourMailUnsubcribeOK=El e-mail <b>%s</b> ha sido dado de baja correctamente de la lista de correo
     ActivateCheckReadKey=Clave usada para cifrar la URL utilizada para la función de "Darse de baja"
     EMailSentToNRecipients=E-Mail enviado a %s destinatarios.
     EMailSentForNElements=E-Mail enviado a %s elementos.
    @@ -166,4 +166,4 @@ InGoingEmailSetup=Configuración del correo entrante
     OutGoingEmailSetupForEmailing=Configuración de correo saliente (para correo masivo)
     DefaultOutgoingEmailSetup=Configuración de correo saliente predeterminada
     Information=Información
    -ContactsWithThirdpartyFilter=Contacts avec filtre client
    +ContactsWithThirdpartyFilter=Contactos con filtro de terceros.
    diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang
    index f7607480a89..2d63474b8bf 100644
    --- a/htdocs/langs/es_ES/main.lang
    +++ b/htdocs/langs/es_ES/main.lang
    @@ -55,7 +55,7 @@ ErrorRecordIsUsedByChild=Imposible de suprimir este registro. Esta siendo utiliz
     ErrorWrongValue=Valor incorrecto
     ErrorWrongValueForParameterX=Valor incorrecto del parámetro %s
     ErrorNoRequestInError=Ninguna petición en error
    -ErrorServiceUnavailableTryLater=Servicio no disponible actualmente. Vuélvalo a intentar más tarde.
    +ErrorServiceUnavailableTryLater=Servicio no disponible actualmente. Inténtelo de nuevo más tarde.
     ErrorDuplicateField=Duplicado en un campo único
     ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Modificaciones deshechas.
     ErrorConfigParameterNotDefined=El parámetro <b>%s</b> no está definido en el archivo de configuración Dolibarr <b>conf.php</b>.
    @@ -78,7 +78,7 @@ FileRenamed=El archivo ha sido renombrado correctamente
     FileGenerated=el archivo ha sido generado correctamente
     FileSaved=El fichero ha sido guardado correctamente
     FileUploaded=El archivo se ha subido correctamente
    -FileTransferComplete=Fichero(s) cargados correctamente
    +FileTransferComplete=Archivo(s) cargado(s) correctamente
     FilesDeleted=Fichero(s) eliminados correctamente
     FileWasNotUploaded=Un archivo ha sido seleccionado para adjuntarlo, pero aún no se ha subido. Haga clic en "Adjuntar este archivo" para ello.
     NbOfEntries=Nº de entradas
    @@ -94,7 +94,7 @@ Undefined=No definido
     PasswordForgotten=¿Olvidó su contraseña?
     NoAccount=¿Sin cuenta?
     SeeAbove=Mencionado anteriormente
    -HomeArea=Área inicio
    +HomeArea=Inicio
     LastConnexion=Última conexión
     PreviousConnexion=Conexión anterior
     PreviousValue=Valor previo
    @@ -142,6 +142,7 @@ Closed=Cerrado
     Closed2=Cerrado
     NotClosed=No cerrado
     Enabled=Activado
    +Enable=Activo
     Deprecated=Obsoleto
     Disable=Desactivar
     Disabled=Desactivado
    @@ -153,7 +154,7 @@ Update=Modificar
     Close=Cerrar
     CloseBox=Eliminar panel de su  tablero
     Confirm=Confirmar
    -ConfirmSendCardByMail=¿Quiere enviar el contenido de esta ficha por e-mail a la dirección <b>%s</b>?
    +ConfirmSendCardByMail=¿Quiere enviar el contenido de esta ficha por e-mail a <b>%s</b>?
     Delete=Eliminar
     Remove=Retirar
     Resiliate=Cancelar
    @@ -327,7 +328,7 @@ Copy=Copiar
     Paste=Pegar
     Default=Predeterminado
     DefaultValue=Valor por defecto
    -DefaultValues=Valores por defecto
    +DefaultValues=Valores/filtros/ordenación por defecto
     Price=Precio
     PriceCurrency=Precio (moneda)
     UnitPrice=Precio unitario
    @@ -403,7 +404,7 @@ DefaultTaxRate=Tasa de impuesto por defecto
     Average=Media
     Sum=Suma
     Delta=Diferencia
    -RemainToPay=Queda per pagar
    +RemainToPay=Queda por pagar
     Module=Módulo
     Modules=Módulos
     Option=Opción
    @@ -436,6 +437,7 @@ ContactsForCompany=Contactos de este tercero
     ContactsAddressesForCompany=Contactos/direcciones de este tercero
     AddressesForCompany=Direcciones de este tercero
     ActionsOnCompany=Eventos respecto a este tercero
    +ActionsOnContact=Eventos sobre este contacto/dirección
     ActionsOnMember=Eventos respecto a este miembro
     ActionsOnProduct=Eventos sobre este producto
     NActionsLate=%s en retraso
    @@ -453,8 +455,8 @@ Generate=Generar
     Duration=Duración
     TotalDuration=Duración total
     Summary=Resumen
    -DolibarrStateBoard=Estadísticas
    -DolibarrWorkBoard=Indicadores de trabajo
    +DolibarrStateBoard=Estadísticas de la base de datos
    +DolibarrWorkBoard=Items pendientes
     NoOpenedElementToProcess=Sin elementos a procesar
     Available=Disponible
     NotYetAvailable=Aún no disponible
    @@ -468,7 +470,7 @@ and=y
     or=o
     Other=Otro
     Others=Otros
    -OtherInformations=Otras informaciones
    +OtherInformations=Otra información
     Quantity=Cantidad
     Qty=Cant.
     ChangedBy=Modificado por
    @@ -507,7 +509,7 @@ NoneF=Ninguna
     NoneOrSeveral=Ninguno o varios
     Late=Retraso
     LateDesc=El retraso que indica si un registro lleva retraso o no depende de la configuración. Pregunte a su administrador para cambiar el retraso desde el menú Inicio - Configuración - Alertas.
    -NoItemLate=No late item
    +NoItemLate=Sin items en retraso
     Photo=Foto
     Photos=Fotos
     AddPhoto=Añadir foto
    @@ -530,18 +532,6 @@ September=septiembre
     October=octubre
     November=noviembre
     December=Diciembre
    -JanuaryMin=Ene
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Abr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Ago
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dic
     Month01=enero
     Month02=febrero
     Month03=marzo
    @@ -646,6 +636,8 @@ SendMail=Enviar e-mail
     EMail=E-mail
     NoEMail=Sin e-mail
     Email=Correo
    +AlreadyRead=Ya leído
    +NotRead=No lleído
     NoMobilePhone=Sin teléfono móvil
     Owner=Propietario
     FollowingConstantsWillBeSubstituted=Las siguientes constantes serán substituidas por su valor correspondiente.
    @@ -724,7 +716,7 @@ ValidatePayment=Validar pago
     CreditOrDebitCard=Tarjeta de crédito o débito
     FieldsWithAreMandatory=Los campos marcados por un <b>%s</b> son obligatorios
     FieldsWithIsForPublic=Los campos marcados por <b>%s</b> se mostrarán en la lista pública de miembros. Si no desea verlos, desactive la casilla "público".
    -AccordingToGeoIPDatabase=(Obtenido por conversión GeoIP)
    +AccordingToGeoIPDatabase=(obtenido por conversión GeoIP)
     Line=Línea
     NotSupported=No soportado
     RequiredField=Campo obligatorio
    @@ -732,6 +724,8 @@ Result=Resultado
     ToTest=Probar
     ValidateBefore=Para poder usar esta función debe validarse la ficha
     Visibility=Visibilidad
    +Totalizable=Totalizable
    +TotalizableDesc=Este campo es totalizable en los listados
     Private=Privado
     Hidden=Caché
     Resources=Recursos
    @@ -750,6 +744,7 @@ LinkTo=Enlazar a
     LinkToProposal=Enlazar a pedido
     LinkToOrder=Enlazar a pedido
     LinkToInvoice=Enlazar a factura
    +LinkToTemplateInvoice=Enlazar a plantilla de factura
     LinkToSupplierOrder=Enlazar a pedido a proveedor
     LinkToSupplierProposal=Enlazar a presupuesto de proveedor
     LinkToSupplierInvoice=Enlazar a factura de proveedor
    @@ -758,6 +753,7 @@ LinkToIntervention=Enlazar a intervención
     CreateDraft=Crear borrador
     SetToDraft=Volver a borrador
     ClickToEdit=Clic para editar
    +ClickToRefresh=Clic para actualizar
     EditWithEditor=Editar con CKEditor
     EditWithTextEditor=Editar con editor de texto
     EditHTMLSource=Editar código HTML
    @@ -772,14 +768,14 @@ ByDay=Por día
     BySalesRepresentative=Por comercial
     LinkedToSpecificUsers=Enlazado a un contacto de usuario particular
     NoResults=Ningún resultado
    -AdminTools=Utilidades administración
    +AdminTools=Herramientas de administración
     SystemTools=Utilidades sistema
     ModulesSystemTools=Utilidades módulos
     Test=Prueba
     Element=Elemento
     NoPhotoYet=No hay fotografía disponible
     Dashboard=Tablero
    -MyDashboard=Mi tablero
    +MyDashboard=Mi panel de control
     Deductible=Deducible
     from=de
     toward=hacia
    @@ -818,12 +814,12 @@ Sincerely=Atentamente
     DeleteLine=Eliminación de línea
     ConfirmDeleteLine=¿Está seguro de querer eliminar esta línea?
     NoPDFAvailableForDocGenAmongChecked=Sin PDF disponibles para la generación de documentos entre los registros seleccionados
    -TooManyRecordForMassAction=Demasiados registros seleccionados para la acción masiva. La acción está restringida a un listado de %s registros.
    +TooManyRecordForMassAction=Demasiados registros seleccionardos para la acción masiva. La acción está restringida a un listado de %s registros.
     NoRecordSelected=Sin registros seleccionados
     MassFilesArea=Área de archivos generados por acciones masivas
     ShowTempMassFilesArea=Mostrar área de archivos generados por acciones masivas
    -ConfirmMassDeletion=Confirmación de borrado en lote
    -ConfirmMassDeletionQuestion=Esta seguro que quiere supprimir el/los %s registro(s) seleccionado(s) ?
    +ConfirmMassDeletion=Confirmación borrado en masa
    +ConfirmMassDeletionQuestion=¿Estás seguro que quieres eliminar los %s registro(s) seleccionado(s)?
     RelatedObjects=Objetos relacionados
     ClassifyBilled=Clasificar facturado
     ClassifyUnbilled=Clasificar no facturado
    @@ -841,7 +837,7 @@ Calendar=Calendario
     GroupBy=Agrupado por...
     ViewFlatList=Ver lista plana
     RemoveString=Eliminar cadena '%s'
    -SomeTranslationAreUncomplete=Algunos idiomas pueden estar parcialmente traducidos o pueden contener errores. Si detecta algunos, puede arreglar los archivos de idiomas registrándose en <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Algunos de los idiomas ofrecidos pueden estar parcialmente traducidos o pueden contener errores. Si detecta algunos, puede corregir los archivos de idiomas registrándose en <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">http://transifex.com/projects/p/dolibarr/</a>.
     DirectDownloadLink=Enlace de descarga directa
     DirectDownloadInternalLink=Enlace de descarga directa (necesita estar registrado y necesita permisos)
     Download=Descargar
    @@ -864,13 +860,22 @@ TitleSetToDraft=Devolver a borrador
     ConfirmSetToDraft=¿Está seguro de querer devolver al estado Borrador?
     ImportId=ID de importación
     Events=Eventos
    -EMailTemplates=Plantillas E-Mails
    +EMailTemplates=Plantillas Email
     FileNotShared=Archivo no compartido a público externo
     Project=Proyecto
     Projects=Proyectos
    +LeadOrProject=Oportunidad | Proyecto
    +LeadsOrProjects=Oportunidades | Proyectos
    +Lead=Oportunidad
    +Leads=Oportunidades
    +ListOpenLeads=Lista oportunidades abiertas
    +ListOpenProjects=Lista proyectos abiertos
    +NewLeadOrProject=Nueva oportunidad o proyecto
     Rights=Permisos
     LineNb=Línea
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Letras del cliente
    +TabLetteringSupplier=Letras del proveedor
     # Week day
     Monday=Lunes
     Tuesday=Martes
    @@ -927,7 +932,7 @@ SearchIntoInterventions=Intervenciones
     SearchIntoContracts=Contratos
     SearchIntoCustomerShipments=Envíos a clientes
     SearchIntoExpenseReports=Informes de gastos
    -SearchIntoLeaves=Permisos
    +SearchIntoLeaves=Día libre
     CommentLink=Comentarios
     NbComments=Número de comentarios
     CommentPage=Espacio de comentarios
    @@ -945,6 +950,8 @@ LocalAndRemote=Local y remoto
     KeyboardShortcut=Atajo de teclado
     AssignedTo=Asignada a
     Deletedraft=Eliminar borrador
    -ConfirmMassDraftDeletion=Confirmación de borrado de borradores en lote
    +ConfirmMassDraftDeletion=Confirmación de borrado de borradores en masa
     FileSharedViaALink=Archivo compartido a través de un enlace
    -
    +SelectAThirdPartyFirst=Selecciona un tercero primero...
    +YouAreCurrentlyInSandboxMode=Actualmente se encuentra en el modo %s "sandbox"
    +Inventory=Inventario
    diff --git a/htdocs/langs/es_ES/members.lang b/htdocs/langs/es_ES/members.lang
    index 0ba42342885..e284a793d26 100644
    --- a/htdocs/langs/es_ES/members.lang
    +++ b/htdocs/langs/es_ES/members.lang
    @@ -88,7 +88,7 @@ ConfirmDeleteSubscription=¿Está seguro de querer eliminar esta afiliación?
     Filehtpasswd=Archivo htpasswd
     ValidateMember=Validar un miembro
     ConfirmValidateMember=¿Está seguro de querer validar a este miembro?
    -FollowingLinksArePublic=Los vínculos siguientes son páginas accesibles a todos y no protegidas por ninguna habilitación Dolibarr.
    +FollowingLinksArePublic=Los siguientes enlaces son páginas abiertas que no están protegidas por ningún permiso de Dolibarr. No son páginas con formato, se proporcionan como ejemplo para mostrar cómo enumerar la base de datos de miembros.
     PublicMemberList=Listado público de miembros
     BlankSubscriptionForm=Formulario público de auto-inscripción
     BlankSubscriptionFormDesc=Dolibarr puede proporcionar una página pública para que los visitantes externos puedan solicitar afiliarse. Si se encuentra activo un módulo de pago en línea, se propondrá automáticamente un formulario de pago.
    @@ -111,7 +111,7 @@ SendingAnEMailToMember=Enviar e-mail de información al miembro
     SendingEmailOnAutoSubscription=Enviar E-Mail en una auto-inscripción
     SendingEmailOnMemberValidation=Enviar E-Mail en la validación de un nuevo miembro
     SendingEmailOnNewSubscription=Enviar E-Mail en una nueva suscripción
    -SendingReminderForExpiredSubscription=Sending reminder for expired subscriptions
    +SendingReminderForExpiredSubscription=Enviar un recordatorio para suscripción caducada
     SendingEmailOnCancelation=Enviar E-Mail en una cancelación
     # Topic of email templates
     YourMembershipRequestWasReceived=Su membresía fue recibida.
    @@ -124,7 +124,7 @@ CardContent=Contenido de su ficha de miembro
     ThisIsContentOfYourMembershipRequestWasReceived=Queremos informarle que se ha solicitado una nueva membresía. <br> <br>
     ThisIsContentOfYourMembershipWasValidated=Queremos hacerle saber que su membresía fue validada con la siguiente información: <br> <br>
     ThisIsContentOfYourSubscriptionWasRecorded=Queremos informarle que su nueva suscripción fue grabada. <br> <br>
    -ThisIsContentOfSubscriptionReminderEmail=Queremos informarle que su nueva suscripción está a punto de expirar.  Esperamos que pueda renovarla<br><br>
    +ThisIsContentOfSubscriptionReminderEmail=Queremos informarle que su nueva suscripción está a punto o ha expirado  (__MEMBER_LAST_SUBSCRIPTION_DATE_END__).  Esperamos que pueda renovarla<br><br>
     ThisIsContentOfYourCard=Este es un recordatorio de la información que obtenemos sobre usted. No dude en contactar con nosotros si algo le parece incorrecto.<br><br>
     DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Asunto del e-mail recibido en caso de auto-inscripción de un invitado
     DescADHERENT_AUTOREGISTER_NOTIF_MAIL=E-mail recibido en caso de auto-inscripción de un invitado
    @@ -188,11 +188,10 @@ MembersByNature=Esta pantalla presenta una estadística del número de miembros
     MembersByRegion=Esta pantalla presenta una estadística del número de miembros por región
     VATToUseForSubscriptions=Tasa de IVA para las afiliaciones
     NoVatOnSubscription=Sin IVA para en las afiliaciones
    -MEMBER_PAYONLINE_SENDEMAIL=E-mail a usar para alertas de e-mail cuando Dolibarr reiba una confirmación de pago validado para una subscripción (por ejemplo: paymentdone@example.com)
     ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Producto usado para las suscripciones en línea en facturas: %s
     NameOrCompany=Nombre o Empresa
     SubscriptionRecorded=Suscripción guardada
     NoEmailSentToMember=No se envió ningún e-mail al miembro
     EmailSentToMember=E-Mail enviado al miembro a %s
     SendReminderForExpiredSubscriptionTitle=Enviar un recordatorio por E-Mail para la suscripción expirada
    -SendReminderForExpiredSubscription=Enviar recordatorio por e-mail a los miembros cuando la suscripción esté a punto de caducar (el parámetro es el número de días antes del final de la suscripción para enviar el recordatorio)
    +SendReminderForExpiredSubscription=Enviar recordatorio por e-mail a los miembros cuando la suscripción esté a punto de caducar (el parámetro es el número de días antes del final de la suscripción para enviar el recordatorio. Puede ser una lista de días separados por un punto y coma, por ejemplo, '10; 5; 0; -5 ')
    diff --git a/htdocs/langs/es_ES/modulebuilder.lang b/htdocs/langs/es_ES/modulebuilder.lang
    index 1f8f53879ca..c0c8b091ab0 100644
    --- a/htdocs/langs/es_ES/modulebuilder.lang
    +++ b/htdocs/langs/es_ES/modulebuilder.lang
    @@ -13,7 +13,7 @@ ModuleInitialized=Módulo inicializado
     FilesForObjectInitialized=Ficheros para el nuevo objeto '%s' inicializado
     FilesForObjectUpdated=Ficheros del objeto '%s' actualizado (ficheros .sql y fichero .class.php)
     ModuleBuilderDescdescription=Introduzca aquí toda la información general que describa su módulo
    -ModuleBuilderDescspecifications=Puedes introducir aquí un texto largo para describir las especificaciones de tu módulo que no estén estructuradas en otras pestañas. Así que tienes al alcance de la mano todas las reglas para desarrollar. Asimismo, este texto se incluirá en la documentación generada (ver última pestaña). Puede utilizar el formato Markdown, pero se recomienda usar el formato Asciidoc (Comparación entre .md y .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
    +ModuleBuilderDescspecifications=Puede introducir aquí un texto largo para describir las especificaciones de su módulo que no estén estructuradas en otras pestañas. Así que tiene al alcance de la mano todas las reglas para desarrollar. Asimismo, este texto se incluirá en la documentación generada (ver última pestaña). Puede utilizar el formato Markdown, pero se recomienda usar el formato Asciidoc (Comparación entre .md y .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
     ModuleBuilderDescobjects=Define aquí los objetos que deseas gestionar con tu módulo. Se creará una clase CRUD DAO, archivos SQL, página para listar el registro de objetos, para crear/editar/ver un registro y una API.
     ModuleBuilderDescmenus=Esta pestaña está dedicada a definir entradas de menú proporcionadas por su módulo.
     ModuleBuilderDescpermissions=Esta pestaña está dedicada a definir los nuevos permisos que desea proporcionar con su módulo.
    @@ -21,12 +21,12 @@ ModuleBuilderDesctriggers=Esta es la vista de triggers proporcionada por tu mód
     ModuleBuilderDeschooks=Esta pestaña está dedicada a los hooks.
     ModuleBuilderDescwidgets=Esta pestaña está dedicada a administrar/crear widgets.
     ModuleBuilderDescbuildpackage=Puedes generar aquí un archivo comprimido "listo para distribuir" (un archivo .zip normalizado) de tu módulo y un archivo de documentación "listo para distribuir". Simplemente haga clic en el botón para crear el paquete o el archivo de documentación.
    -EnterNameOfModuleToDeleteDesc=Puedes eliminar tu módulo. ATENCIÓN: Todos los ficheros del módulo pero también los datos estructurados y la documentación será eliminada definitivamente!
    -EnterNameOfObjectToDeleteDesc=Puedes eliminar un objeto. ATENCIÓN: Todos los ficheros relacionados con el objeto serán eliminados!
    +EnterNameOfModuleToDeleteDesc=Puede eliminar su módulo. ATENCIÓN: ¡Todos los ficheros del módulo pero también los datos estructurados y la documentación será eliminada definitivamente!
    +EnterNameOfObjectToDeleteDesc=Puede eliminar un objeto. ATENCIÓN: ¡Todos los ficheros relacionados con el objeto serán eliminados!
     DangerZone=Zona peligrosa
     BuildPackage=Generar paquete/documentación
     BuildDocumentation=Generar documentación
    -ModuleIsNotActive=Este módulo no ha sido activado todavía. Ve a %s para activarlo o pulse aquí:
    +ModuleIsNotActive=Este módulo no ha sido activado todavía. Vaya a %s para activarlo o pulse aquí:
     ModuleIsLive=Este módulo ha sido activado. Cualquier cambio en él puede romper una característica activa actual.
     DescriptionLong=Descripción larga
     EditorName=Nombre del editor
    @@ -47,7 +47,7 @@ RegenerateClassAndSql=Borrar y regenerar archivos de clase y sql
     RegenerateMissingFiles=Generar archivos no encontrados
     SpecificationFile=Fichero con las reglas de negocio
     LanguageFile=Archivo para el idioma
    -ConfirmDeleteProperty=¿Estás seguro que quieres eliminar la propiedad <strong>%s</strong>? Esto cambiará código en la clase PHP pero también eliminará la columna de la definición de la tabla del objeto.
    +ConfirmDeleteProperty=¿Está seguro de querer eliminar la propiedad <strong>%s</strong>? Esto cambiará código en la clase PHP pero también eliminará la columna de la definición de la tabla del objeto.
     NotNull=No NULL
     NotNullDesc=1=Establecer la base de datos en NOT NULL. -1=Permitir valores nulos y forzar valor a NULL si está vacío ('' o 0).
     SearchAll=Usada para 'buscar todo'
    @@ -66,7 +66,7 @@ PageForLib=Archivo para bibliotecas PHP
     SqlFileExtraFields=Archivo Sql para atributos complementarios
     SqlFileKey=Fichero Sql de claves
     AnObjectAlreadyExistWithThisNameAndDiffCase=Un objeto ya existe con este nombre y un caso diferente
    -UseAsciiDocFormat=Puedes utilizar el formato Markdown, pero se recomienda usar el formato Asciidoc (Comparación entre .md y .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
    +UseAsciiDocFormat=Puede usar el formato Markdown, pero se recomienda usar el formato Asciidoc (Comparación entre .md y .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
     IsAMeasure=Es una medida
     DirScanned=Directorio analizado
     NoTrigger=No hay trigger
    @@ -74,7 +74,7 @@ NoWidget=No hay widget
     GoToApiExplorer=Ir al Explorador de API
     ListOfMenusEntries=Lista de entradas de menú
     ListOfPermissionsDefined=Listado de permisos definidos
    -SeeExamples=See examples here
    +SeeExamples=Vea ejemplos aquí
     EnabledDesc=Condición para tener este campo activo (Ejemplos: 1 o $conf->global->MYMODULE_MYOPTION)
     VisibleDesc=¿Es el campo visible? (Ejemplos: 0=Nunca visible, 1=Visible en listado y  en formularios creación /actualización/visualización, 2=Visible en listado solamente, 3=Visible en formularios creación /actualización/visualización. Usar un valor negativo significa que no se muestra el campo predeterminado en el listado pero se puede seleccionar para verlo)
     IsAMeasureDesc=¿Se puede acumular el valor del campo para obtener un total en el listado? (Ejemplos: 1 o 0)
    @@ -88,7 +88,7 @@ TriggerDefDesc=Defina en el archivo trigger el código que desea ejecutar para c
     SeeIDsInUse=Ver IDs en uso en su instalación
     SeeReservedIDsRangeHere=Ver rango de IDs reservados
     ToolkitForDevelopers=Herramientas para desarrolladores de Dolibarr
    -TryToUseTheModuleBuilder=Si tiene conocimientos en SQL y PHP, puede intentar utilizar el asistente nativo de creación de módulos. Simplemente active el módulo y use el asistente haciendo clic <span class="fa fa-bug"></span>en  en el menú superior derecho. Advertencia: esta es una funcionalidad para desarrolladores, un uso inadecuado puede romper su aplicación.
    +TryToUseTheModuleBuilder=Si tiene conocimientos de SQL y PHP, puede usar el asistente del creador de módulos nativo. <br> Active el módulo <strong> %s </strong> y use el asistente haciendo clic en <span class = "fa fa-bug"> </span> en el menú superior derecho. <br> Advertencia: esta es una función avanzada para desarrolladores, ¡no experimente <b> no </b> en su sitio de producción!
     SeeTopRightMenu=Ver <span class="fa fa-bug"></span> en el menú superior derecho
     AddLanguageFile=Añadir archivo de idioma
     YouCanUseTranslationKey=Aquí puede usar una clave que es la clave de traducción encontrada en el archivo de idioma (ver pestaña "Idiomas")
    @@ -96,6 +96,7 @@ DropTableIfEmpty=(Eliminar tabla si está vacía)
     TableDoesNotExists=La tabla %s no existe
     TableDropped=Tabla %s eliminada
     InitStructureFromExistingTable=Construir la estructura de array de una tabla existente
    -UseAboutPage=Disallow the about page
    -UseDocFolder=Disallow the documentation folder
    -UseSpecificReadme=Use a specific ReadMe
    +UseAboutPage=Desactivar la página acerca de
    +UseDocFolder=Desactivar directorio de documentación
    +UseSpecificReadme=Usar un archivo Léame específico
    +RealPathOfModule=Ruta real del módulo
    diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang
    index acdc769a7c5..d0705b6e5f7 100644
    --- a/htdocs/langs/es_ES/other.lang
    +++ b/htdocs/langs/es_ES/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Código seguridad
     NumberingShort=Nº
     Tools=Utilidades
     TMenuTools=Utilidades
    -ToolsDesc=Todas las utilidades que no están incluidas en otras entradas del menú se encuentran aquí.<br><br>Están disponibles en el menú de la izquierda.
    +ToolsDesc=Todas las utilidades que no están incluidas en otras entradas del menú se encuentran aquí.<br>Están disponibles en el menú de la izquierda.
     Birthday=Aniversario
     BirthdayDate=Fecha de cumpleaños
     DateToBirth=Fecha de nacimiento
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Mes siguiente de la fecha de la factura
     DateNextInvoiceBeforeGen=Fecha de la próxima factura (antes de la generación)
     DateNextInvoiceAfterGen=Fecha de la próxima factura (después de la generación)
     
    -Notify_FICHINTER_ADD_CONTACT=Contacto añadido a intervención
    -Notify_FICHINTER_VALIDATE=Validación ficha intervención
    -Notify_FICHINTER_SENTBYMAIL=Envío ficha de intervención por e-mail
     Notify_ORDER_VALIDATE=Validación pedido cliente
     Notify_ORDER_SENTBYMAIL=Envío pedido de cliente por e-mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Envío pedido a proveedor por e-mail
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Creación tercero
     Notify_COMPANY_SENTBYMAIL=Correos enviados desde la ficha del tercero
     Notify_BILL_VALIDATE=Validación factura
     Notify_BILL_UNVALIDATE=Devalidación factura a cliente
    -Notify_BILL_PAYED=Cobro factura a cliente
    +Notify_BILL_PAYED=Factura del cliente pagada
     Notify_BILL_CANCEL=Cancelación factura a cliente
     Notify_BILL_SENTBYMAIL=Envío factura a cliente por e-mail
     Notify_BILL_SUPPLIER_VALIDATE=Validación factura de proveedor
    -Notify_BILL_SUPPLIER_PAYED=Pago factura de proveedor
    +Notify_BILL_SUPPLIER_PAYED=Factura del proveedor pagada
     Notify_BILL_SUPPLIER_SENTBYMAIL=Envío factura de proveedor por e-mail
     Notify_BILL_SUPPLIER_CANCELED=Factura del proveedor cancelada
     Notify_CONTRACT_VALIDATE=Validación contrato
     Notify_FICHEINTER_VALIDATE=Validación intervención
    +Notify_FICHINTER_ADD_CONTACT=Contacto añadido a intervención
    +Notify_FICHINTER_SENTBYMAIL=Envío ficha de intervención por e-mail
     Notify_SHIPPING_VALIDATE=Validación envío
     Notify_SHIPPING_SENTBYMAIL=Envío expedición por e-mail
     Notify_MEMBER_VALIDATE=Validación miembro
    @@ -71,6 +70,10 @@ Notify_PROJECT_CREATE=Creación de proyecto
     Notify_TASK_CREATE=Tarea creada
     Notify_TASK_MODIFY=Tarea modificada
     Notify_TASK_DELETE=Tarea eliminada
    +Notify_EXPENSE_REPORT_VALIDATE=Informe de gastos validado (se requiere aprobación)
    +Notify_EXPENSE_REPORT_APPROVE=Informe de gastos aprobado
    +Notify_HOLIDAY_VALIDATE=Petición días libres validada (se requiere aprobación)
    +Notify_HOLIDAY_APPROVE=Petición días libres aprobada
     SeeModuleSetup=Vea la configuración del módulo %s
     NbOfAttachedFiles=Número archivos/documentos adjuntos
     TotalSizeOfAttachedFiles=Tamaño total de los archivos/documentos adjuntos
    @@ -80,18 +83,20 @@ LinkedObject=Objeto adjuntado
     NbOfActiveNotifications=Número de notificaciones (nº de destinatarios)
     PredefinedMailTest=__(Hello)__\nEste es un correo de prueba enviado a __EMAIL__.\nLas dos líneas están separadas por un retorno de carro.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nEste es un correo de <b> prueba</b> (la palabra prueba debe estar en negrita). <br> Las dos líneas están separadas por un retorno de carro. <br> <br> __USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hola)__\n\nNos ponemos en contacto con usted para facilitarle el presupuesto __PREF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hola)__\n\nNos ponemos en contacto con usted para facilitarle nuestra solicitud de presupuesto __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hola)__\n\nNos ponemos en contacto con usted para facilitarle el pedido __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hola)__\n\nNos ponemos en contacto con usted para facilitarle nuestro pedido __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hola)__\n\nNos ponemos en contacto con usted para facilitarle la factura __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hola)__\n\nNos ponemos en contacto con usted para facilitarle el envío __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hola)__\n\nNos ponemos en contacto con usted para facilitarle la intervención __REF__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hola)__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nAquí encontrará la factura __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nNos gustaría advertirle que la factura __REF__ parece no ser pagada. Así que le enviamos de nuevo la factura en el archivo adjunto, como un recordatorio.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nNos ponemos en contacto con usted para facilitarle el presupuesto __PREF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nNos ponemos en contacto con usted para facilitarle el presupuesto __PREF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nNos ponemos en contacto con usted para facilitarle el presupuesto __PREF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nNos ponemos en contacto con usted para facilitarle el presupuesto __PREF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nNos ponemos en contacto con usted para facilitarle el presupuesto __PREF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nNos ponemos en contacto con usted para facilitarle el presupuesto __PREF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nNos ponemos en contacto con usted para facilitarle el presupuesto __PREF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hola)__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hola)__\n\n\n__(Sinceramente)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
    +PredefinedMailContentLink=Puede hacer clic en el siguiente enlace para realizar su pago, si aún no lo ha hecho.\n\n%s\n\n
     DemoDesc=Dolibarr es un ERP/CRM para la gestión de negocios (profesionales o asociaciones), compuesto de módulos funcionales independientes y opcionales. Una demostración que incluya todos estos módulos no tiene sentido porque no utilizará todos los módulos. Además, tiene disponibles varios tipos de perfiles de demostración.
     ChooseYourDemoProfil=Elija el perfil de demostración que mejor se adapte a sus necesidades ...
     ChooseYourDemoProfilMore=... o construya su perfil<br>(modo de selección manual)
    @@ -198,6 +203,10 @@ EMailTextOrderApprovedBy=Pedido %s aprobado por %s
     EMailTextOrderRefused=Pedido %s rechazado
     EMailTextOrderRefusedBy=Pedido %s rechazado por %s
     EMailTextExpeditionValidated=El envío %s ha sido validado.
    +EMailTextExpenseReportValidated=El informe de gastos %s ha sido validado.
    +EMailTextExpenseReportApproved=El informe de gastos %s ha sido aprobado.
    +EMailTextHolidayValidated=La petición de lías libres %s ha sido validada.
    +EMailTextHolidayApproved=La petición de lías libres %s ha sido aprobada.
     ImportedWithSet=Lote de importación (import key)
     DolibarrNotification=Notificación automática
     ResizeDesc=Introduzca el nuevo ancho <b>O</b> la nueva altura. La relación se conserva al cambiar el tamaño ...
    @@ -205,7 +214,7 @@ NewLength=Nuevo ancho
     NewHeight=Nueva altura
     NewSizeAfterCropping=Nuevas dimensiones después de recortar
     DefineNewAreaToPick=Establezca la zona de imagen a conservar (clic izquierdo sobre la imagen y arrastre hasta la esquina opuesta)
    -CurrentInformationOnImage=Esta página le permite cambiar el tamaño o cuadrar la imagen. Aquí hay información sobre la imagen que se está editando
    +CurrentInformationOnImage=Esta herramienta le permite cambiar el tamaño o cuadrar la imagen. Aquí hay información sobre la imagen que se está editando
     ImageEditor=Editor de imagen
     YouReceiveMailBecauseOfNotification=Usted está recibiendo este mensaje porque su correo electrónico está suscrito a algunas notificaciones automáticas para informarle acerca de eventos especiales del programa %s de %s.
     YouReceiveMailBecauseOfNotification2=El evento en cuestión es el siguiente:
    @@ -236,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Su contraseña debe contener al menos <strong>
     YourPasswordHasBeenReset=Su contraseña ha sido restablecida con éxito
     ApplicantIpAddress=Dirección IP del solicitante
     SMSSentTo=SMS enviado a %s
    +MissingIds=IDs no encontrados
    +ThirdPartyCreatedByEmailCollector=Tercero creado por el recolector de e-mails del ID de e-mail %s
    +ContactCreatedByEmailCollector=Contacto/dirección creada por el recolector de e-mails del ID de e-mail %s
    +ProjectCreatedByEmailCollector=Proyecto creado por el recolector de e-mails del ID de e-mail %s
     
     ##### Export #####
     ExportsArea=Área de exportaciones
    @@ -249,5 +262,7 @@ WebsiteSetup=Configuración del módulo website
     WEBSITE_PAGEURL=URL de la página
     WEBSITE_TITLE=Título
     WEBSITE_DESCRIPTION=Descripción
    +WEBSITE_IMAGE=Imagen
    +WEBSITE_IMAGEDesc=Ruta relativa de las imágenes. Puede mantenerla vacío, ya que rara vez se usa (puede ser usada por el contenido dinámico para mostrar una vista previa de una lista de publicaciones de blog).
     WEBSITE_KEYWORDS=Claves
     LinesToImport=Líneas a importar
    diff --git a/htdocs/langs/es_ES/paybox.lang b/htdocs/langs/es_ES/paybox.lang
    index e63f4a194c5..7bfc70a0603 100644
    --- a/htdocs/langs/es_ES/paybox.lang
    +++ b/htdocs/langs/es_ES/paybox.lang
    @@ -20,6 +20,7 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL que ofrece una interfaz de pago en lí
     ToOfferALinkForOnlinePaymentOnContractLine=URL que ofrece una interfaz de pago en línea %s basada en el importe de una línea de contrato
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL que ofrece una interfaz de pago en línea %s basada en un importe libre
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL que ofrece una interfaz de pago en línea %s basada en la cotización de un miembro
    +ToOfferALinkForOnlinePaymentOnDonation=URL para pfrecer un %s interfaz de usuario para un pago o donació online
     YouCanAddTagOnUrl=También puede añadir el parámetro url <b>&tag=<i>value</i></b>  para cualquiera de estas direcciones (obligatorio solamente para el pago libre) para ver su propio código de comentario de pago.
     SetupPayBoxToHavePaymentCreatedAutomatically=Configure su url PayBox <b>%s</b> para que el pago se cree automáticamente al validar.
     YourPaymentHasBeenRecorded=Esta página confirma que su pago se ha registrado correctamente. Gracias.
    diff --git a/htdocs/langs/es_ES/products.lang b/htdocs/langs/es_ES/products.lang
    index def354ead7b..dfcce57e708 100644
    --- a/htdocs/langs/es_ES/products.lang
    +++ b/htdocs/langs/es_ES/products.lang
    @@ -17,12 +17,12 @@ Reference=Referencia
     NewProduct=Nuevo producto
     NewService=Nuevo servicio
     ProductVatMassChange=Cambio de IVA masivo
    -ProductVatMassChangeDesc=Puede usar esta página para modificar la tasa de IVA definida en los productos o servicios de un valor a otro. Tenga cuidado, este cambio  se realizará en toda la base de datos.
    +ProductVatMassChangeDesc=Esta página le permite cambiar el tipo de IVA definido en  los productos o servicios de un valor a otro. Tenga en cuenta que el cambio se lleva a cabo en masa sobre toda la base de datos.
     MassBarcodeInit=Inicialización masiva de códigos de barra
     MassBarcodeInitDesc=Puede usar esta página para inicializar el código de barras en los objetos que no tienen un código de barras definido. Compruebe antes que el módulo de códigos de barras esté configurado correctamente.
     ProductAccountancyBuyCode=Código contable (compras)
     ProductAccountancySellCode=Código contable (ventas)
    -ProductAccountancySellIntraCode=Código de contabilidad (venta intracomunitaria)
    +ProductAccountancySellIntraCode=Código contable (venta intracomunitaria)
     ProductAccountancySellExportCode=Código de contabilidad (venta de exportación)
     ProductOrService=Producto o servicio
     ProductsAndServices=Productos y servicios
    @@ -97,7 +97,7 @@ NoteNotVisibleOnBill=Nota (no visible en las facturas, presupuestos, etc.)
     ServiceLimitedDuration=Si el servicio es de duración limitada :
     MultiPricesAbility=Varios segmentos de precios por producto/servicio (cada cliente está en un segmento)
     MultiPricesNumPrices=Nº de precios
    -AssociatedProductsAbility=Activar funcionalidad de gestión de productos virtuales
    +AssociatedProductsAbility=Activar productos compuestos (kits)
     AssociatedProducts=Productos compuestos
     AssociatedProductsNumber=Nº de productos que componen este producto
     ParentProductsNumber=Nº de productos que este producto compone
    @@ -252,7 +252,7 @@ DefaultPrice=Precio por defecto
     ComposedProductIncDecStock=Incrementar/Decrementar stock al cambiar su padre
     ComposedProduct=Sub-producto
     MinSupplierPrice=Precio mínimo de compra
    -MinCustomerPrice=Minimum selling price
    +MinCustomerPrice=Precio de venta mínimo
     DynamicPriceConfiguration=Configuración de precio dinámico
     DynamicPriceDesc=En la ficha de producto, con este módulo activado, debería ser capaz de establecer funciones matemáticas para calcular los precios de cliente o proveedor. Esta función puede utilizar todos los operadores matemáticos, algunas constantes y variables. Puede definir aquí las variables que desea utilizar y si la variable necesita una actualización automática, la URL externa que debe utilizarse para pedirle a Dolibarr que actualice automáticamente el valor.
     AddVariable=Añadir variable
    @@ -293,7 +293,8 @@ ProductSheet=Hoja de producto
     ServiceSheet=Hoja de servicio
     PossibleValues=Valores posibles
     GoOnMenuToCreateVairants=Vaya al menú %s - %s para preparar variantes de atributos (como colores, tamaño, ...)
    -
    +UseProductFournDesc=Usar las descripciones de los productos de los proveedores en los documentos del proveedor.
    +ProductSupplierDescription=Descripción del proveedor para el producto.
     #Attributes
     VariantAttributes=Atributos de variantes
     ProductAttributes=Atributos de variantes para productos
    @@ -329,6 +330,8 @@ NbOfDifferentValues=Nº de valores diferentes
     NbProducts=Nº de productos
     ParentProduct=Producto padre
     HideChildProducts=Ocultar productos hijos
    +ShowChildProducts=Mostrara variantes de productos
    +NoEditVariants=Vaya a la ficha del producto padre y edite el impacto del precio de las variantes en la pestaña de variantes
     ConfirmCloneProductCombinations=¿Desea copiar todas las variantes del producto al producto con la referencia dada?
     CloneDestinationReference=Referencia de producto de destino
     ErrorCopyProductCombinations=Se ha producido un error al copiar las variantes de producto
    diff --git a/htdocs/langs/es_ES/projects.lang b/htdocs/langs/es_ES/projects.lang
    index 6c97e4fb36c..6f6d19a6ac2 100644
    --- a/htdocs/langs/es_ES/projects.lang
    +++ b/htdocs/langs/es_ES/projects.lang
    @@ -77,7 +77,7 @@ Time=Tiempo
     ListOfTasks=Listado de tareas
     GoToListOfTimeConsumed=Ir al listado de tiempos consumidos
     GoToListOfTasks=Ir al listado de tareas
    -GoToGanttView=Go to Gantt view
    +GoToGanttView=Ir a la vista de Gantt
     GanttView=Vista de Gantt
     ListProposalsAssociatedProject=Listado de presupuestos asociados al proyecto
     ListOrdersAssociatedProject=Listado de pedidos de clientes asociados al proyecto
    @@ -86,12 +86,13 @@ ListPredefinedInvoicesAssociatedProject=Listado de facturas predefinidas asociad
     ListSupplierOrdersAssociatedProject=Listado de pedidos a proveedor asociados al proyecto
     ListSupplierInvoicesAssociatedProject=Listado de facturas de proveedores asociadas al proyecto
     ListContractAssociatedProject=Listado de contratos asociados al proyecto
    -ListShippingAssociatedProject=Listado de envíos asociados a este proyecto
    +ListShippingAssociatedProject=Listado de envíos asociados al proyecto
     ListFichinterAssociatedProject=Listado de intervenciones asociadas al proyecto
     ListExpenseReportsAssociatedProject=Listado de informes de gastos asociados al proyecto
     ListDonationsAssociatedProject=Listado de donaciones asociadas al proyecto
    -ListVariousPaymentsAssociatedProject=Lista de pagos diversos asociados con el proyecto
    -ListActionsAssociatedProject=Lista de eventos asociados al proyecto
    +ListVariousPaymentsAssociatedProject=Lista de pagos diversos asociados al proyecto
    +ListSalariesAssociatedProject=Listado de pagos de salarios asociados al proyecto
    +ListActionsAssociatedProject=Listado de eventos asociados al proyecto
     ListTaskTimeUserProject=Listado de tiempos en tareas del proyecto
     ListTaskTimeForTask=Listado de tiempos en tareas
     ActivityOnProjectToday=Actividad en el proyecto hoy
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Enlazado a otra empresa
     TaskIsNotAssignedToUser=Tarea no asignada al usuario. Use el botón '<strong>%s</strong>' para asignar la tarea.
     ErrorTimeSpentIsEmpty=No se ha establecido el tiempo consumido
     ThisWillAlsoRemoveTasks=Esta operación también destruirá las tareas del proyecto (<b>%s</b> tareas) y sus tiempos dedicados.
    -IfNeedToUseOhterObjectKeepEmpty=Si los elementos (factura, pedido, ...) pertenecen a un tercero que no és el seleccionado, debiendo estos estar ligados al proyecto a crear, déjelo vacío para permitir el proyecto a multi-terceros.
    +IfNeedToUseOtherObjectKeepEmpty=Si los elementos (factura, pedido, ...) pertenecen a un tercero que no és el seleccionado, debiendo estos estar ligados al proyecto a crear, déjelo vacío para permitir el proyecto a multi-terceros.
     CloneProject=Clonar el proyecto
     CloneTasks=Clonar las tareas
     CloneContacts=Clonar los contactos
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Proyecto %s modificado
     TaskCreatedInDolibarr=La tarea %s fue creada
     TaskModifiedInDolibarr=La tarea %s fue modificada
     TaskDeletedInDolibarr=La tarea %s fue eliminada
    -OpportunityStatus=Estado de oportunidad
    +OpportunityStatus=Estado oportunidades
     OpportunityStatusShort=Estado oportunidad
     OpportunityProbability=Probabilidad de oportunidades
     OpportunityProbabilityShort=Prob. Opor.
    -OpportunityAmount=Importe Oportunidad
    +OpportunityAmount=Importe oportunidad
     OpportunityAmountShort=Importe oportunidad
     OpportunityAmountAverageShort=Importe medio oportunidad
     OpportunityAmountWeigthedShort=Importe ponderado oportunidad
    @@ -169,6 +170,7 @@ AddElement=Vincular a elmento
     # Documents models
     DocumentModelBeluga=Plantilla de proyecto de resumen objetos vinculados
     DocumentModelBaleine=Plantilla de informe del proyecto para tareas
    +DocumentModelTimeSpent=Plantilla de informe de proyecto para el tiempo dedicado
     PlannedWorkload=Carga de trabajo prevista
     PlannedWorkloadShort=Carga de trabajo
     ProjectReferers=Items relacionados
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Proyectos con este usuario como contacto
     TasksWithThisUserAsContact=Tareas asignadas a este usuario
     ResourceNotAssignedToProject=No asignado al proyecto
     ResourceNotAssignedToTheTask=No asignado a la tarea
    +NoUserAssignedToTheProject=Ningún usuario asignado a este proyecto
     TimeSpentBy=Tiempo dedicado por
     TasksAssignedTo=Tareas asignadas a
     AssignTaskToMe=Asignarme tarea
    @@ -202,12 +205,13 @@ TaskAssignedToEnterTime=Tarea asignada. Debería poder introducir tiempos en est
     IdTaskTime=Id
     YouCanCompleteRef=Si desea completar la referencia con alguna información (para usarlo como filtros de búsqueda), se recomienda añadir un caracter - para separarlo, la numeración automática seguirá funcionando correctamente para los próximos proyectos. Por ejemplo %s-ABC. También puede preferir añadir claves de búsqueda en la etiqueta. Pero la mejor práctica puede ser añadir un campo dedicado, también llamados atributos adicionales.
     OpenedProjectsByThirdparties=Proyectos abiertos de terceros
    -OnlyOpportunitiesShort=Solamente oportunidades
    +OnlyOpportunitiesShort=Sólo oportunidades
     OpenedOpportunitiesShort=Oportunidades abiertas
    +NotOpenedOpportunitiesShort=Sin oportunidades abiertas
     NotAnOpportunityShort=No es una oportunidad
    -OpportunityTotalAmount=Importe total oportunidades
    -OpportunityPonderatedAmount=Importe medio oportunidades
    -OpportunityPonderatedAmountDesc=Importe ponderado oportunidades con probabilidad
    +OpportunityTotalAmount=Importe total de oportunidades
    +OpportunityPonderatedAmount=Importe medio de oportunidades
    +OpportunityPonderatedAmountDesc=Importe medio oportunidades con probabilidad
     OppStatusPROSP=Prospección
     OppStatusQUAL=Cualificación
     OppStatusPROPO=Presupuesto
    @@ -227,4 +231,6 @@ AllowCommentOnProject=Permitir comentarios de los usuarios en los proyectos
     DontHavePermissionForCloseProject=No tienes permisos para cerrar el proyecto %s
     DontHaveTheValidateStatus=El proyecto %s debe estar abierto para ser cerrado
     RecordsClosed=%s proyecto(s) cerrado(s)
    -SendProjectRef=Information project %s
    +SendProjectRef=Acerca del proyecto %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Debe activarse el módulo 'Pago de salarios de los empleados'  para poder definir el precio por hora de los empleados y poder valorar el tiempo empleado
    +NewTaskRefSuggested=Referencia de tarea ya utilizada, se sugiere una nueva referencia de tarea
    diff --git a/htdocs/langs/es_ES/propal.lang b/htdocs/langs/es_ES/propal.lang
    index 9da5dcc64d7..b46a7a1d8e5 100644
    --- a/htdocs/langs/es_ES/propal.lang
    +++ b/htdocs/langs/es_ES/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Firmado (a facturar)
     PropalStatusNotSigned=No firmado (cerrado)
     PropalStatusBilled=Facturado
     PropalStatusDraftShort=Borrador
    -PropalStatusValidatedShort=Validado
    +PropalStatusValidatedShort=Validado (abierto)
     PropalStatusClosedShort=Cerrado
     PropalStatusSignedShort=Firmado
     PropalStatusNotSignedShort=No firmado
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Presupuesto %s inexistente
     AddToDraftProposals=Añadir a presupuesto borrador
     NoDraftProposals=Sin presupuestos borrador
     CopyPropalFrom=Crear presupuesto por copia de uno existente
    -CreateEmptyPropal=Crear presupuesto vacío
    +CreateEmptyPropal=Crear propuesta comercial vacía o desde lista de productos/servicios.
     DefaultProposalDurationValidity=Plazo de validez por defecto (en días)
    -UseCustomerContactAsPropalRecipientIfExist=Utilizar dirección contacto de seguimiento de cliente definido en vez de la dirección del tercero como destinatario de los presupuestos
    +UseCustomerContactAsPropalRecipientIfExist=Utilizar dirección del contacto de seguimiento de cliente definido, en vez de la dirección del tercero como destinatario de los presupuestos
     ClonePropal=Clonar presupuesto
     ConfirmClonePropal=¿Está seguro de querer clonar el presupuesto <b>%s</b>?
     ConfirmReOpenProp=¿Está seguro de querer reabrir el presupuesto <b>%s</b>?
    @@ -75,9 +75,10 @@ AvailabilityTypeAV_1M=1 mes
     TypeContact_propal_internal_SALESREPFOLL=Comercial seguimiento presupuesto
     TypeContact_propal_external_BILLING=Contacto cliente de facturación presupuesto
     TypeContact_propal_external_CUSTOMER=Contacto cliente seguimiento presupuesto
    -TypeContact_propal_external_SHIPPING=Customer contact for delivery
    +TypeContact_propal_external_SHIPPING=Contacto cliente para envíos
     # Document models
     DocModelAzurDescription=Modelo de presupuesto completo (logo...)
    +DocModelCyanDescription=Modelo de presupuesto completo (logo...)
     DefaultModelPropalCreate=Modelo por defecto
     DefaultModelPropalToBill=Modelo por defecto al cerrar un presupuesto (a facturar)
     DefaultModelPropalClosed=Modelo por defecto al cerrar un presupuesto (no facturado)
    diff --git a/htdocs/langs/es_ES/resource.lang b/htdocs/langs/es_ES/resource.lang
    index 2f4732d7b90..2b2feb78181 100644
    --- a/htdocs/langs/es_ES/resource.lang
    +++ b/htdocs/langs/es_ES/resource.lang
    @@ -5,7 +5,7 @@ DeleteResource=Eliminar recurso
     ConfirmDeleteResourceElement=¿Está seguro de querer eliminar el recurso de este elemento?
     NoResourceInDatabase=Sin recursos en la base de datos.
     NoResourceLinked=Sin recursos enlazados
    -
    +ActionsOnResource=Eventos sobre este recurso
     ResourcePageIndex=Listado de recursos
     ResourceSingular=Recurso
     ResourceCard=Ficha recurso
    diff --git a/htdocs/langs/es_ES/sendings.lang b/htdocs/langs/es_ES/sendings.lang
    index 35d24ddfb34..e65604aae05 100644
    --- a/htdocs/langs/es_ES/sendings.lang
    +++ b/htdocs/langs/es_ES/sendings.lang
    @@ -52,8 +52,8 @@ ActionsOnShipping=Eventos sobre la expedición
     LinkToTrackYourPackage=Enlace para el seguimento de su paquete
     ShipmentCreationIsDoneFromOrder=De momento, la creación de una nueva expedición se realiza desde la ficha de pedido.
     ShipmentLine=Línea de expedición
    -ProductQtyInCustomersOrdersRunning=Cantidad de producto en pedidos de clientes abiertos
    -ProductQtyInSuppliersOrdersRunning=Cantidad de producto en pedidos a proveedores abiertos
    +ProductQtyInCustomersOrdersRunning=Cantidad en pedidos de clientes abiertos
    +ProductQtyInSuppliersOrdersRunning=Cantidad en pedidos a proveedores abiertos
     ProductQtyInShipmentAlreadySent=Ya ha sido enviada la cantidad del producto del pedido de cliente abierto
     ProductQtyInSuppliersShipmentAlreadyRecevied=Cantidad en pedidos a proveedores ya recibidos
     NoProductToShipFoundIntoStock=Sin stock disponible en el almacén <b>%s</b>. Corrija el stock o vuelva atrás para seleccionar otro almacén.
    diff --git a/htdocs/langs/es_ES/stocks.lang b/htdocs/langs/es_ES/stocks.lang
    index 46e6f9217ee..8b5c2c33dad 100644
    --- a/htdocs/langs/es_ES/stocks.lang
    +++ b/htdocs/langs/es_ES/stocks.lang
    @@ -44,7 +44,6 @@ TransferStock=Transferir stock
     MassStockTransferShort=Transferencia de stock en masa
     StockMovement=Movimiento de stock
     StockMovements=Movimientos de stock
    -LabelMovement=Etiqueta del movimiento
     NumberOfUnit=Número de piezas
     UnitPurchaseValue=Precio de compra unitario
     StockTooLow=Stock insuficiente
    @@ -67,8 +66,8 @@ DeStockOnValidateOrder=Decrementar los stocks físicos sobre los pedidos de clie
     DeStockOnShipment=Decrementar stock real en la validación de envíos
     DeStockOnShipmentOnClosing=Decrementar stock real en el cierre del envío
     ReStockOnBill=Incrementar los stocks físicos sobre las facturas/abonos de proveedores
    -ReStockOnValidateOrder=Incrementa los stocks físicos en la aprobación de pedidos a proveedor
    -ReStockOnDispatchOrder=Incrementa los stocks físicos en el desglose manual de la recepción de los pedidos a proveedores en los almacenes
    +ReStockOnValidateOrder=Incrementar los stocks físicos en la aprobación de pedidos a proveedores
    +ReStockOnDispatchOrder=Incrementa los stocks físicos en el desglose manual de la recepción de los pedidos a proveedores
     OrderStatusNotReadyToDispatch=El pedido aún no está o no tiene un estado que permita un desglose de stock.
     StockDiffPhysicTeoric=Motivo de la diferencia entre valores físicos y teóricos
     NoPredefinedProductToDispatch=No hay productos predefinidos en este objeto. Por lo tanto no se puede realizar un desglose de stock.
    @@ -134,6 +133,7 @@ StockMustBeEnoughForInvoice=El nivel de stock debe ser suficiente para añadir e
     StockMustBeEnoughForOrder=El nivel de stock debe ser suficiente para añadir el producto/servicio al pedido (se realiza comprobación del stock real actual al agregar una línea en el pedido según las reglas del módulo stocks)
     StockMustBeEnoughForShipment= El nivel de stock debe ser suficiente para añadir el producto/servicio en el envío (se realiza comprobación del stock real actual al agregar una línea en el envío según las reglas del módulo stocks)
     MovementLabel=Etiqueta del movimiento
    +TypeMovement=Tipo de movimiento
     DateMovement=Fecha de movimiento
     InventoryCode=Movimiento o código de inventario
     IsInPackage=Contenido en el paquete
    @@ -201,6 +201,10 @@ ExitEditMode=Salir
     inventoryDeleteLine=Eliminación de línea
     RegulateStock=Regular stock
     ListInventory=Listado
    -StockSupportServices=Servicios de apoyo a la gestión de stocks
    +StockSupportServices=La gestión de stock soporta Servicios
     StockSupportServicesDesc=Por defecto sólo puede almacenar el producto con el tipo "producto". Si está activado y si el servicio de módulo está activado, también puede almacenar un producto con el tipo "servicio"
     ReceiveProducts=Recibir artículos
    +StockIncreaseAfterCorrectTransfer=Incremento por corrección/transferencia
    +StockDecreaseAfterCorrectTransfer=Decremento por corrección/transferencia
    +StockIncrease=Incremento de stock
    +StockDecrease=Decremento de stock
    diff --git a/htdocs/langs/es_ES/users.lang b/htdocs/langs/es_ES/users.lang
    index 85570ab8898..c41e993f8df 100644
    --- a/htdocs/langs/es_ES/users.lang
    +++ b/htdocs/langs/es_ES/users.lang
    @@ -35,7 +35,7 @@ SuperAdministrator=Super Administrador
     SuperAdministratorDesc=Administrador global
     AdministratorDesc=Administrador
     DefaultRights=Permisos por defecto
    -DefaultRightsDesc=Defina aquí los permisos <b>por defecto</b>, es decir: los permisos que se asignarán automáticamente a un nuevo usuario en el momento de su creación (Ver la ficha usuario para cambiar los permisos a un usuario existente).
    +DefaultRightsDesc=Defina aquí los permisos <u>por defecto</u>, es decir: los permisos que se asignarán automáticamente a un <u>nuevo</u> usuario en el momento de su creación (Ver la ficha usuario para cambiar los permisos a un usuario existente).
     DolibarrUsers=Usuarios Dolibarr
     LastName=Apellidos
     FirstName=Nombre
    @@ -48,7 +48,7 @@ PasswordChangeRequest=Solicitud para cambiar la contraseña de <b>%s</b>
     PasswordChangeRequestSent=Petición de cambio de contraseña para <b>%s</b> enviada a <b>%s</b>.
     ConfirmPasswordReset=Confirmar restablecimiento de contraseña
     MenuUsersAndGroups=Usuarios y grupos
    -LastGroupsCreated=Latest %s groups created
    +LastGroupsCreated=Últimos %s grupos creados
     LastUsersCreated=Últimos %s usuarios creados
     ShowGroup=Ver grupo
     ShowUser=Ver usuario
    @@ -66,7 +66,7 @@ CreateDolibarrThirdParty=Crear un tercero
     LoginAccountDisableInDolibarr=La cuenta está desactivada en Dolibarr
     UsePersonalValue=Utilizar valores personalizados
     InternalUser=Usuario interno
    -ExportDataset_user_1=Usuarios Dolibarr y campos adicionales
    +ExportDataset_user_1=Usuarios y sus propiedades.
     DomainUser=Usuario de dominio
     Reactivate=Reactivar
     CreateInternalUserDesc=Este formulario le permite crear un usuario interno para su empresa/organización. Para crear un usuario externo (cliente, proveedor, etc), use el botón "Crear una cuenta de usuario" desde una ficha de un contacto del tercero.
    @@ -108,3 +108,4 @@ UserAccountancyCode=Código contable usuario
     UserLogoff=Usuario desconectado
     UserLogged=Usuario conectado
     DateEmployment=Fecha de contratación
    +DateEmploymentEnd=Fecha de baja
    diff --git a/htdocs/langs/es_ES/website.lang b/htdocs/langs/es_ES/website.lang
    index bda2c9cd750..d14f606b40a 100644
    --- a/htdocs/langs/es_ES/website.lang
    +++ b/htdocs/langs/es_ES/website.lang
    @@ -1,12 +1,13 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Código
    -WebsiteSetupDesc=Cree aquí tanto la entrada como el número de diferentes sitios web que necesita. Entonces entre en el menú de sitios web para editarlos.
    +WebsiteSetupDesc=Cree aquí los sitios web que necesite. Entonces entre en el menú de sitios web para editarlos.
     DeleteWebsite=Eliminar sitio web
     ConfirmDeleteWebsite=¿Está seguro de querer eliminar este sitio web? Todas las páginas y contenido también sera eliminado
     WEBSITE_TYPE_CONTAINER=Tipo de página/contenedor
     WEBSITE_PAGE_EXAMPLE=Página web para usar como ejemplo
     WEBSITE_PAGENAME=Nombre/alias página
     WEBSITE_ALIASALT=Nombres de página/alias alternativos
    +WEBSITE_ALIASALTDesc=Utilice aquí la lista de otros nombres/alias para que también se pueda acceder a la página usando estos otros nombres/alias (por ejemplo, el nombre anterior después de cambiar el nombre del alias para mantener el enlace posterior en funcionamiento). La sintaxis es: <br> alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL del fichero CSS externo
     WEBSITE_CSS_INLINE=Contenido del archivo CSS (común a todas las páginas)
     WEBSITE_JS_INLINE=Contenido del archivo Javascript (común a todas las páginas)
    @@ -17,17 +18,19 @@ HtmlHeaderPage=Encabezado HTML (específico de esta página solamente)
     PageNameAliasHelp=Nombre o alias de la página.<br>Este alias es utilizado también para construir una URL SEO cuando el website sea lanzado desde un Host Virtual de un servidor (como Apache, Nginx...). Usar el botón "<strong>%s</strong>" para editar este alias.
     EditTheWebSiteForACommonHeader=Nota: Si desea definir un encabezado personalizado para todas las páginas, edite el encabezado en el nivel del sitio en lugar de en la página/contenedor.
     MediaFiles=Librería de medios
    -EditCss=Editar Estilo/CSS o cabecera HTML
    +EditCss=Editar propiedades
     EditMenu=Editar menu
     EditMedias=Editar los medios
    -EditPageMeta=Editar Meta
    +EditPageMeta=Editar propiedades de página/contenedor
    +EditInLine=Editar en línea
     AddWebsite=Añadir sitio web
     Webpage=Página web/Contenedor
     AddPage=Añadir página/contenedor
     HomePage=Página de inicio
     PageContainer=Página/contenedor
    -PreviewOfSiteNotYetAvailable=Vista previa de su sitio web <strong>%s</strong> todavía no disponible. Debe de añadir primero una página.
    +PreviewOfSiteNotYetAvailable=La vista previa de su sitio web <strong>%s</strong> aún no está disponible. Primero debe '<strong>Importar una plantilla de sitio web completa</strong>' o simplemente '<strong>Agregar una página/contenedor</strong>'.
     RequestedPageHasNoContentYet=La página pedida con id %s todavía no tiene contenido, o cache file.tpl.php ha sido eliminado. Editar el contenido de la página para resolverlo.
    +SiteDeleted=Sitio web '%s' eliminado
     PageContent=Página/Contenedor
     PageDeleted=Página/Contenedor '%s' o sitio web %s eliminado
     PageAdded=Página/Contenedor '%s' añadido
    @@ -36,7 +39,7 @@ ViewPageInNewTab=Ver página en una pestaña nueva
     SetAsHomePage=Establecer como Página de inicio
     RealURL=URL Real
     ViewWebsiteInProduction=Ver sitio web usando la URL de inicio
    -SetHereVirtualHost=Si tu puedes crear, en tu servidor web (Apache, Nginx...), un Host Virtual con PHP activado y un directorio Root en <br><strong>%s</strong> <br>introduce aquí el nombre del host virtual que has creado, así que la previsualización puede verse usando este acceso directo al servidor, y no solo usando el servidor de Dolibarr
    +SetHereVirtualHost=Si puede crear, en su servidor web (Apache, Nginx...), un Host Virtual con PHP activado y un directorio Root en <br><strong>%s</strong> <br>introduzca aquí el nombre del host virtual que ha creado, así que la previsualización puede verse usando este acceso directo al servidor, y no solo usando el servidor de Dolibarr
     YouCanAlsoTestWithPHPS=En el entorno de desarrollo, es posible que prefiera probar el sitio con el servidor web incrustado de PHP (se requiere PHP 5.5) ejecutando <br><strong> php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Compruebe también que el host virtual tiene <strong>%s</strong> en archivos en <strong>%s</strong>
     ReadPerm=Leido
    @@ -45,6 +48,7 @@ PreviewSiteServedByWebServer=<u>Vista previa de %s en una nueva pestaña.</u> <b
     PreviewSiteServedByDolibarr=<u>Vista previa %s en una nueva pestaña.</u> <br> <br> El %s será servido por el servidor de Dolibarr por lo que no necesita instalar ningún servidor web extra (como Apache, Nginx, IIS). <br> El inconveniente es que la URL de las páginas no amigables y comienzan con la ruta de su Dolibarr. <br> URL que sirve Dolibarr: <br><strong>%s</strong>   <br> <br>Para utilizar su propio servidor web externo para servir esta web, cree un host virtual en su servidor web que apunte al directorio<br> <strong>%s</strong><br> luego escriba el nombre de este servidor virtual y haga clic en el otro botón de vista previa.
     VirtualHostUrlNotDefined=URL del Host Virtual servido por un servidor externo no definido
     NoPageYet=No hay páginas todavía
    +YouCanCreatePageOrImportTemplate=Puede crear una nueva página o importar una plantilla de sitio web completa
     SyntaxHelp=Ayuda en la sintaxis del código
     YouCanEditHtmlSourceckeditor=Puede editar código fuente HTML utilizando el botón "Origen" en el editor.
     YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> Puede incluir código PHP en este fuente usando los tags <strong>&lt;?php ?&gt;</strong>. Dispone de estas variables globales: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> También puede incluir contenido de otra Página/Contenedor con la siguiente sintaxis:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-download"></span> Para incluir un <strong>enlace para descargar</strong> un archivo guardado en el directorio <strong>documents</strong>, use el wrapper <strong>document.php</strong> :<br>Por ejemplo, para un archivo de documents/ecm (es necesario estar logueado), la sintaxis:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>Para un archivo de into documents/medias (directorio abierto para acceso público), la sintaxis es:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>Para un archivo compartido mediante un enlace compartido (acceso abierto utilizando la clave hash para compartir del archivo), la sintaxis es:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> Para incluir una <strong>imagen</strong> guardada en el directorio <strong>documents</strong> , use el wrapper <strong>viewimage.php</strong> :<br>Ejemplo para una imagen de documents/medias (acceso abierto), la sintaxis es:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    @@ -59,7 +63,8 @@ WebsiteId=ID del sitio web
     CreateByFetchingExternalPage=Crear página/contenedor mediante la búsqueda de la página de la URL externa ...
     OrEnterPageInfoManually=O crear una página vacía desde cero ...
     FetchAndCreate=Buscar y crear
    -ExportSite=Exportar sitio
    +ExportSite=Exportar sitio web
    +ImportSite=Importar plantilla de sitio web
     IDOfPage=Id de la página
     Banner=Banner
     BlogPost=Entrada en el blog
    @@ -73,7 +78,7 @@ AnotherContainer=Otro contenedor
     WEBSITE_USE_WEBSITE_ACCOUNTS=Habilitar tabla de cuentas del sitio web
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Habilitar tabla para almacenar cuentas del sitio web (inicio de sesión/contraseña) para cada sitio web/tercero
     YouMustDefineTheHomePage=Antes debe definir la página de inicio por defecto
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Atención: la creación de una página web mediante la importación de una página web externa está reservada para usuarios experimentados. Dependiendo de la complejidad de la página de origen, el resultado de la importación puede diferir una vez importado del original. Además, si la página de origen utiliza un estilo CSS común o un javascript no compatible, puede interrumpir el aspecto o las características del editor del sitio web al trabajar en esta página. Este método es una forma más rápida de tener una página, pero se recomienda crear su nueva página desde cero o desde una plantilla de página sugerida.<br>También tenga en cuenta que solo será posible la edición de código HTML cuando el contenido de una página se haya inicializado al agarrar desde una página externa (el editor "en línea" NO estará disponible)
     OnlyEditionOfSourceForGrabbedContent=Nota: solo será posible editar una fuente HTML cuando el contenido de una página se integre utilizando una página externa
     GrabImagesInto=Obtener también imágenes encontradas en css y página.
     ImagesShouldBeSavedInto=Las imágenes deben guardarse en el directorio
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directorio dedicado a la página
     AliasPageAlreadyExists=Ya existe el alias de página <strong>%s</strong>
     CorporateHomePage=Página de inicio corporativa
     EmptyPage=Página vacía
    +ExternalURLMustStartWithHttp=La URL externa debe comenzar con http:// o https://
    +ZipOfWebsitePackageToImport=Archivo zip del paquete de sitio web
    +ShowSubcontainers=Incluir contenido dinámico
    +InternalURLOfPage=URL interna de la página
    +ThisPageIsTranslationOf=Esta página/contenedor es traducción de
    +ThisPageHasTranslationPages=Esta página/contenedor tiene traducción
    diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang
    index 1fe9b2ac842..33d57ef30e5 100644
    --- a/htdocs/langs/es_MX/admin.lang
    +++ b/htdocs/langs/es_MX/admin.lang
    @@ -1,23 +1,25 @@
     # Dolibarr language file - Source file is en_US - admin
     VersionProgram=Versión del programa
    +FileCheck=Comprobar integridad de archivos
    +FileCheckDesc=Esta herramienta le permite verificar la integridad de los archivos y la configuración de su aplicación, comparando cada archivo con los archivos oficiales. El valor de algunas constantes de configuración también pueden verificarse. Puede usar esta herramienta para detectar si algunos archivos fueron modificados por un hacker, por ejemplo.
    +FileIntegrityIsStrictlyConformedWithReference=La integridad de los archivos está estrictamente conformada con la referencia.
    +FileIntegrityIsOkButFilesWereAdded=La verificación de integridad de los archivos ha pasado, sin embargo, se han agregado algunos archivos nuevos.
    +FileIntegritySomeFilesWereRemovedOrModified=La verificación de integridad de los archivos ha fallado. Algunos archivos fueron modificados, eliminados o agregados.
    +GlobalChecksum=Checksum global
    +MakeIntegrityAnalysisFrom=Hacer análisis de integridad de los archivos de la aplicación de
     SessionId=ID de sesión
     SessionSaveHandler=Modalidad para guardar sesiones
     SessionSavePath=Ubicación de la sesión guardada
     PurgeSessions=Depuración de sesiones
     ConfirmPurgeSessions=¿Realmente desea depurar todas las sesiónes? Esto desconectara a todos los usuarios (excepto usted).
    -NoSessionListWithThisHandler=El controlador configurado para guardar sesion en tu PHP no permite listar todas las sesiones ejecutandose.
    -ConfirmLockNewSessions=¿Seguro que deseas restringir cualquier nueva conexión Dolibarr? Solamente el usuario <b>%s</b> será capaz de conectarse después de esto.
     UnlockNewSessions=Remover bloqueo de conexión
     YourSession=Tu sesión
    -Sessions=Sesión de usuarios
     WebUserGroup=Usuario/Grupo del servidor web
    -NoSessionFound=Tu PHP parece no permitir listar sesiones activas. El directorio usado para guardar las sesiones (<b>%s</b>) puede estar protegido (Por ejemplo, por permisos del SO o por la directiva open_basedir de PHP).
     DBStoringCharset=Charset de la base de datos para almacenar información
     DBSortingCharset=Charset de la base para ordenar información
     WarningModuleNotActive=El módulo <b>%s</b> debe estar habilitado
     WarningOnlyPermissionOfActivatedModules=Sólo los permisos relacionados a los módulos activados son mostrados aquí. Puedes activar otros módulos en la página Inicio->Configuración->Módulos
     DolibarrSetup=Instalación o actualización de Dolibarr
    -SetupArea=Área de configuración
     UploadNewTemplate=Subir nueva(s) plantilla(s)
     FormToTestFileUploadForm=Formulario para probar la carga de archivos (según la configuración)
     IfModuleEnabled=Nota: sí es efectivo sólo si el módulo <b>%s</b> está activado
    @@ -57,10 +59,8 @@ DetailPosition=Clasificar cantidad para definir posición del menú
     AllMenus=Todo
     NotConfigured=Modulo/Aplicación no configurado
     SetupShort=Configuración
    -OtherSetup=Otra configuración
     CurrentValueSeparatorThousand=Separador millar
     LanguageBrowserParameter=Parámetro %s
    -LocalisationDolibarrParameters=Parametros de localización
     ClientTZ=Zona Horaria cliente (usuario)
     OSTZ=Servidor OS Zona Horaria
     PHPTZ=Servidor PHP Zona Horaria
    @@ -106,9 +106,7 @@ AddDropTable=Agregar comando DROP TABLE
     NameColumn=Nombre de columnas
     EncodeBinariesInHexa=Convertir datos binarios en hexadecimal
     OnlyActiveElementsAreShown=Solo elementos de <a href="%s">\nmodulos habilitados</a> son\n mostrados.
    -ModulesDesc=Módulos Dolibarr definen que\naplicación/característica esta habilitada en\nel programa. Algunas\naplicaciónes/módulos requieren\npermisos que tu debes otorgar a\nusuarios, despues de activarlos.\nHaz click en el botón on/off para habilitar un\nmódulo/aplicación.
     ModulesMarketPlaceDesc=Tu puedes encontrar mas módulos para descargar en sitios web externos en el Internet
    -WebSiteDesc=Sitios web de consulta para encontrar mas módulos...
     URL=Vínculo
     ActivateOn=Activar
     ActiveOn=Activado
    @@ -120,22 +118,16 @@ OfficialWebSite=Sitio web oficial Dolibarr Internacional
     OfficialWiki=Documentación Dolibarr en Wiki
     OfficialDemo=Dolibarr demo en línea
     LastActivationIP=IP de activación más reciente
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     WarningSettingSortOrder=Advertencia, establecer un orden predeterminado puede resultar en un error técnico al pasar a la página de lista si "campo" es un campo desconocido. Si experimenta un error de este tipo, vuelva a esta página para eliminar el orden predeterminado y restaurar el comportamiento predeterminado.
     Module20Name=Propuestas
     Module30Name=Facturas
     Module770Name=Reporte de gastos
    -Module62000Desc=Añadir característica(s) para administrar Incoterm
     DictionaryCanton=Estado/Provincia
     DictionaryAccountancyJournal=Diarios de contabilidad
     Upgrade=Actualizar
    -CompanyName=Nombre
     LDAPFieldFirstName=Nombre(s)
    -CacheByServerDesc=Por ejemplo, utilizando la directiva Apache "ExpiresByType image/gif A2592000"
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
     AGENDA_SHOW_LINKED_OBJECT=Mostrar objeto vinculado en la vista de agenda
     ConfFileMustContainCustom=Instalar o construir un módulo externo desde la aplicación necesita guardar los archivos del módulo en el directorio <strong> %s </strong>. Para que este directorio sea procesado por Dolibarr, debe configurar su <strong> conf/conf.php </strong> para agregar las 2 líneas de directiva: <strong> $dolibarr_main_url_root_alt='/custom'; </strong> <br> <strong> $dolibarr_main_document_root_alt='%s/custom'; </strong>
     MailToSendProposal=Propuestas de clientes
     MailToSendOrder=Pedidos de los clientes
     MailToSendInvoice=Facturas de clientes
    -WarningNoteModulePOSForFrenchLaw=Este módulo %s es compatible con las leyes francesas (Loi Finance 2016) porque el módulo Non Reversible Logs se activa automáticamente.
    diff --git a/htdocs/langs/es_MX/banks.lang b/htdocs/langs/es_MX/banks.lang
    index 60345a1ec6e..c2ea66eabab 100644
    --- a/htdocs/langs/es_MX/banks.lang
    +++ b/htdocs/langs/es_MX/banks.lang
    @@ -17,7 +17,6 @@ AccountStatementShort=Estado
     AccountStatements=Estados de cuenta
     LastAccountStatements=Últimos estados de cuenta
     IOMonthlyReporting=Reporte mensual
    -RIBControlError=Falló la comprobación de integridad de los valores. Esto significa que la información para éste número de cuenta está incompleta o incorrecta (compruebe el país, números y CLABE).
     MenuNewFinancialAccount=Nueva cuenta financiera
     EditFinancialAccount=Editar cuenta
     LabelBankCashAccount=Etiqueta de cuenta o caja
    @@ -47,10 +46,8 @@ AddBankRecord=Añadir entrada
     AddBankRecordLong=Añadir entrada manualmente
     DateConciliating=Fecha de conciliación
     BankLineConciliated=Entrada reconciliada
    -CustomerInvoicePayment=Pago de cliente
     WithdrawalPayment=Pago de retiro
     SocialContributionPayment=Pago de impuesto social/fiscal
    -TransferDesc=Transferencia de una cuenta a otra, Dolibarr escribirá dos registros (un débito en la cuenta de origen y un crédito en la cuenta de destino, para esta transacción se utilizará la misma cantidad (excepto signo), etiqueta y fecha)
     TransferFromToDone=La transferencia de <b>%s</b> hacia <b>%s</b> de <b>%s</b> %s ha sido registrada.
     ValidateCheckReceipt=¿Validar este recibo de cheque?
     ConfirmValidateCheckReceipt=¿Está seguro de que desea validar este recibo de cheques, ningún cambio será posible una vez hecho esto?
    @@ -58,7 +55,6 @@ DeleteCheckReceipt=¿Eliminar este recibo de cheque?
     BankChecks=Cheques bancarios
     BankChecksToReceipt=Cheques en espera de depósito
     ShowCheckReceipt=Mostrar recibo de depósito de cheque
    -NumberOfCheques=Número de cheque
     DeleteTransaction=Eliminar la entrada
     ExportDataset_banque_2=Ficha de depósito
     TransactionOnTheOtherAccount=Transacción en la otra cuenta
    @@ -67,8 +63,6 @@ PaymentNumberUpdateFailed=Número de pago no se pudo actualizar
     PaymentDateUpdateSucceeded=Fecha de pago actualizada con éxito
     PaymentDateUpdateFailed=La fecha de pago no se pudo actualizar
     ShowAllAccounts=Mostrar todas las cuentas
    -FutureTransaction=Transacción futura. No hay manera de conciliar.
    -SelectChequeTransactionAndGenerate=Seleccione/filtre los cheques a incluir en el recibo de depósito de cheque y haga clic en "Crear".
     InputReceiptNumber=Seleccione el estado de cuenta bancaria relacionado con la conciliación. Utilice un valor numérico ordenable: AAAAMM o AAAAMMDD
     EventualyAddCategory=Eventualmente, especifique una categoría en la que clasificar los registros
     ThenCheckLinesAndConciliate=A continuación, compruebe las líneas presentes en el estado de cuenta bancaria y haga clic
    diff --git a/htdocs/langs/es_MX/bills.lang b/htdocs/langs/es_MX/bills.lang
    index bc4047a4106..1bcc2895f3f 100644
    --- a/htdocs/langs/es_MX/bills.lang
    +++ b/htdocs/langs/es_MX/bills.lang
    @@ -45,7 +45,6 @@ BillTo=Hacia
     StandingOrder=Orden de domiciliación bancaria
     SupplierBillsToPay=Facturas de proveedores no pagadas
     CustomerBillsUnpaid=Facturas de clientes no pagadas
    -CreditNote=Nota de crédito
     ReasonDiscount=Razón
     PaymentTypeCB=Tarjeta de crédito
     PaymentTypeShortCB=Tarjeta de crédito
    diff --git a/htdocs/langs/es_MX/companies.lang b/htdocs/langs/es_MX/companies.lang
    index 7c8f3679e88..3563b8eb803 100644
    --- a/htdocs/langs/es_MX/companies.lang
    +++ b/htdocs/langs/es_MX/companies.lang
    @@ -13,11 +13,7 @@ Contacts=Contactos/Direcciones
     ThirdPartyContacts=Contactos de terceros
     ThirdPartyContact=Contacto/Dirección de tercero
     AliasNames=Nombre simple (comercial, marca registrada, ...)
    -AliasNameShort=Nombre simple
    -CountryIsInEEC=El país está dentro de la Comunidad Económica Europea
    -ThirdPartyName=Nombre de tercero
     ThirdPartyCustomersWithIdProf12=Clientes con %s o %s
    -ToCreateContactWithSameName=Creará automáticamente un contacto/dirección con la misma información en tercero. En la mayoría de los casos, incluso si su tercero es una persona física, la creación de un tercero solo es suficiente.
     ParentCompany=Empresa matriz
     ReportByQuarter=Reporte por tasa
     CivilityCode=Código de civilidad
    @@ -98,7 +94,6 @@ CustomerRelativeDiscount=Descuento relativo del cliente
     CustomerAbsoluteDiscountShort=Descuento absoluto
     CompanyHasRelativeDiscount=Éste cliente tiene un descuento por defecto de <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Este cliente no tiene ningún descuento relativo por defecto
    -CompanyHasAbsoluteDiscount=Este cliente tiene descuento disponible (notas de crédito o anticipos) para <b> %s </b> %s
     CompanyHasCreditNote=Este cliente aún tiene notas de crédito por <b>%s</b> %s
     CompanyHasNoAbsoluteDiscount=Este cliente no tiene descuentos fijos disponibles
     DiscountNone=Ninguno
    @@ -108,21 +103,15 @@ NoContactDefined=No hay contacto definido
     DefaultContact=Contacto/dirección por defecto
     DeleteACompany=Eliminar empresa
     PersonalInformations=Datos personales
    -CustomerCode=Código de cliente
    -CustomerCodeShort=Código de cliente
    -CustomerCodeDesc=Código de cliente, único para todos los clientes
     RequiredIfCustomer=Requerido si el tercero es un cliente o cliente potencial
     CompanyDeleted=Empresa "%s" eliminada de la base de datos.
     ListOfContacts=Lista de contactos/direcciones
     ListOfContactsAddresses=Lista de contactos/direcciones
    -ListOfThirdParties=Lista de terceros
     ContactsAllShort=Todos (Sin filtro)
     ContactForOrdersOrShipments=Contacto de la orden o del envío
     ContactForInvoices=Contacto de facturación
     NoContactForAnyOrderOrShipments=Este contacto no es un contacto para cualquier pedido o envío
     EditCompany=Editar empresa
    -VATIntraCheckDesc=El enlace <b>%s</b> permite consultar al servicio de control de números de IVA intracomunitario. Se requiere acceso a Internet desde el servidor para que este servicio funcione.
    -VATIntraManualCheck=También puedes verificar manualmente desde el sitio web europeo <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=No es posible realizar la verificación. El servicio de comprobación no es prestado por el país miembro (%s).
     OthersNotLinkedToThirdParty=Otros, no vinculado a un tercero
     ProspectStatus=Estatus del cliente potencial
    @@ -138,27 +127,18 @@ ChangeContactInProcess=Cambiar estado a 'Contacto en proceso'
     ChangeContactDone=Cambiar estado a 'Contacto realizado'
     NoParentCompany=Ninguno
     DolibarrLogin=Login de usuario
    -ExportDataset_company_1=Terceros (Empresas / fundaciones / personas físicas) y propiedades
    -ExportDataset_company_2=Contactos y propiedades
    -ImportDataset_company_1=Terceros (Empresas / fundaciones / personas físicas) y propiedades
     DeleteFile=Borrar archivo
     ConfirmDeleteFile=¿Seguro que quieres borrar este archivo?
     AllocateCommercial=Asignado al representante de ventas
     Organization=Organización
    -FiscalYearInformation=Información sobre el año fiscal
     FiscalMonthStart=Més de inicio del año fiscal
    -YouMustAssignUserMailFirst=Debe crear un correo electrónico para este usuario primero para poder agregar notificaciones de correo electrónico para él.
     YouMustCreateContactFirst=Para poder agregar notificaciones por correo electrónico, primero debe definir contactos con correos electrónicos válidos para el tercero
    -ListProspectsShort=Lista de clientes potenciales
    -ListCustomersShort=Lista de clientes
    -ThirdPartiesArea=Terceros y área de contacto
     InActivity=Abierta
     OutstandingBillReached=Max. para la cuenta pendiente alcanzada
     LeopardNumRefModelDesc=El código es libre. Este código puede ser modificado en cualquier momento.
     ManagingDirectors=Administrador(es) (CEO, Director, Presidente...)
     MergeOriginThirdparty=Tercero duplicado (tercero que deseas eliminar)
     MergeThirdparties=Combinar terceros
    -ConfirmMergeThirdparties=¿Está seguro de que desea combinar este tercero en el actual? Todos los objetos enlazados (facturas, pedidos, ...) se moverán a terceros actuales, y luego se eliminará el tercero.
     SaleRepresentativeLogin=Inicio de sesión del representante de ventas
     SaleRepresentativeFirstname=Nombre del representante de ventas
     SaleRepresentativeLastname=Apellido del representante de ventas
    diff --git a/htdocs/langs/es_MX/main.lang b/htdocs/langs/es_MX/main.lang
    index 022f780c2e4..5d9a6b2fcda 100644
    --- a/htdocs/langs/es_MX/main.lang
    +++ b/htdocs/langs/es_MX/main.lang
    @@ -29,14 +29,9 @@ ErrorGoToModuleSetup=Vaya a la configuración de Módulo para solucionar esto
     ErrorFailedToSendMail=Falló el envío del correo electrónico (remitente=%s, destinatario=%s)
     ErrorFileNotUploaded=El archivo no fue transferido. Revise que el tamaño no exceda el máximo permitido, que haya espacio disponible suficiente en disco y que no exista algún archivo con el mismo nombre en el mismo directorio.
     ErrorWrongHostParameter=Parámetro de servidor inválido
    -ErrorYourCountryIsNotDefined=Tu país no está definido. Corrígelo en Inicio-Configuración-Empresa/institución-Editar.
    -ErrorRecordIsUsedByChild=Falló la eliminación de este registro. Este registro está siendo utilizado por al menos un registro hijo
     ErrorWrongValue=Valor erróneo
     ErrorWrongValueForParameterX=Valor erróneo para el parámetro %s
    -ErrorServiceUnavailableTryLater=El servicio no está disponible por el momento. Intente de nuevo más tarde.
     ErrorDuplicateField=Valor duplicado en un campo único
    -ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Modificaciones revertidas.
    -ErrorConfigParameterNotDefined=El parámetro <b>%s</b> no está definido dentro del archivo de configuración de Dolibarr <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Imposible encontrar al usuario <b>%s</b> en la base de datos de Dolibarr
     ErrorNoVATRateDefinedForSellerCountry=Error, no se ha definido tasa para el IVA del país '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no hay tipos de impuestos sociales/fiscales definidos para el país '%s'.
    @@ -45,10 +40,8 @@ SetDate=Ajustar fecha
     SeeHere=Mira aquí
     BackgroundColorByDefault=Color de fondo por defecto
     FileWasNotUploaded=Un archivo fue seleccionado para adjuntar, sin embargo, no ha sido cargado aún. De clic en "Adjuntar archivo" para éllo.
    -NbOfEntries=Número de entradas
     LevelOfFeature=Nivel de características
     NotDefined=No definido
    -HomeArea=Área de Inicio
     PreviousConnexion=Conexión Anterior
     ConnectedOnMultiCompany=Conectado a la entidad
     DatabaseTypeManager=Administrador de tipo de base de datos
    @@ -150,7 +143,6 @@ Login=Inicio de sesión
     CurrentLogin=Inicio de sesión actual
     May=Mayo
     December=diciembre
    -MayMin=Mayo
     Month05=Mayo
     MonthShort01=Ene
     MonthShort04=Abr
    @@ -174,7 +166,6 @@ NoExample=Ningún ejemplo
     FindBug=Reportar un bug
     NbOfLines=Número de líneas
     DateFrom=Desde %s
    -Check=Cheque
     Uncheck=Desmarcar
     Internals=Interno
     Externals=Externo
    @@ -215,17 +206,13 @@ DisabledModules=Módulos deshabilitados
     ForCustomer=Para el cliente
     HidePassword=Mostrar comando con la contraseña oculta
     UnHidePassword=Mostrar comando real mostrando la contraseña
    -Informations=Informaciones
     AddFile=Agregar archivo
     CloneMainAttributes=Clonar objeto con sus principales atributos
     PDFMerge=Unir PDF
     Merge=Unir
     PrintContentArea=Mostrar la página para imprimir el área de contenido principal
     MenuManager=Administrar menú
    -WarningYouAreInMaintenanceMode=Advertencia, usted está en un modo de mantenimiento, solamente se permite el uso de la aplicación con el login <b>%s</b>
     FieldsWithAreMandatory=Los campos con <b>%s</b> son obligatorios
    -FieldsWithIsForPublic=Los campos con <b>%s</b> se muestran en la lista pública de miembros. Si usted no desea esto, desmarque la casilla "público".
    -AccordingToGeoIPDatabase=(de acuerdo con la conversión GeoIP)
     RequiredField=Campo requerido
     ValidateBefore=La tarjeta debe ser validada antes de usar esta característica
     Hidden=Oculto
    @@ -242,7 +229,6 @@ ByTown=Por municipio
     BySalesRepresentative=Por representante de ventas
     LinkedToSpecificUsers=Vinculado a un usuario de contacto determinado
     NoResults=No hay resultados
    -AdminTools=Herramientas de Administración
     SystemTools=Herramientas de sistema
     ModulesSystemTools=Módulos de herramientas
     Test=Probar
    @@ -256,7 +242,6 @@ SetBankAccount=Definir Cuenta Bancaria
     XMoreLines=%s línea(s) oculta(s)
     PublicUrl=URL Pública
     AddBox=Añade una caja
    -GoIntoSetupToChangeLogo=Ve a Inicio - Configuración - Empresa para cambiar el logo o ve a Inicio - Configuración - Vista para ocultarlo.
     Denied=Denegado
     ListOfTemplates=Lista de plantillas
     Gender=Género
    @@ -294,5 +279,4 @@ SearchIntoCustomerInvoices=Facturas de clientes
     SearchIntoCustomerOrders=Pedidos de los clientes
     SearchIntoCustomerProposals=Propuestas de clientes
     SearchIntoExpenseReports=Reporte de gastos
    -SearchIntoLeaves=Licencias
     AssignedTo=Asignado a
    diff --git a/htdocs/langs/es_MX/products.lang b/htdocs/langs/es_MX/products.lang
    index 020764ca7f6..7577107fe4e 100644
    --- a/htdocs/langs/es_MX/products.lang
    +++ b/htdocs/langs/es_MX/products.lang
    @@ -1,7 +1,6 @@
     # Dolibarr language file - Source file is en_US - products
     ProductId=ID de producto / servicio
     CantBeLessThanMinPrice=El precio de venta no puede ser inferior al mínimo permitido para este producto (%s sin impuestos). Este mensaje también puede aparecer si escribe un descuento demasiado importante.
    -ContractStatusClosed=Cerrada
     ErrorProductBadRefOrLabel=Valor incorrecto para referencia o etiqueta.
     ProductsAndServicesArea=Área de productos y servicios
     ProductsArea=Área de producto
    diff --git a/htdocs/langs/es_MX/stocks.lang b/htdocs/langs/es_MX/stocks.lang
    index 07ee78f0dea..6b99216feac 100644
    --- a/htdocs/langs/es_MX/stocks.lang
    +++ b/htdocs/langs/es_MX/stocks.lang
    @@ -1,5 +1,4 @@
     # Dolibarr language file - Source file is en_US - stocks
    -Stock=stock
     Location=Ubicación
     inventoryEdit=Editar
     inventoryDeleteLine=Borrar línea
    diff --git a/htdocs/langs/es_PA/admin.lang b/htdocs/langs/es_PA/admin.lang
    index 0cc8933bca1..75e885f430e 100644
    --- a/htdocs/langs/es_PA/admin.lang
    +++ b/htdocs/langs/es_PA/admin.lang
    @@ -1,6 +1,2 @@
     # Dolibarr language file - Source file is en_US - admin
     VersionUnknown=Desconocido
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    diff --git a/htdocs/langs/es_PE/admin.lang b/htdocs/langs/es_PE/admin.lang
    index 1e3c901bcd5..299ae2a6312 100644
    --- a/htdocs/langs/es_PE/admin.lang
    +++ b/htdocs/langs/es_PE/admin.lang
    @@ -1,15 +1,9 @@
     # Dolibarr language file - Source file is en_US - admin
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     Permission91=Consultar impuestos e IGV
     Permission92=Crear/modificar impuestos e IGV
     Permission93=Eliminar impuestos e IGV
     DictionaryVAT=Tasa de IGV (Impuesto sobre ventas en EEUU)
    -VATManagement=Gestión IGV
    -VATIsNotUsedDesc=El tipo de IGV propuesto por defecto es 0. Este es el caso de asociaciones, particulares o algunas pequeñas sociedades.
     UnitPriceOfProduct=Precio unitario sin IGV de un producto
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
     OptionVatMode=Opción de carga de IGV
     OptionVatDefaultDesc=La carga del IGV es: <br>-en el envío de los bienes (en la práctica se usa la fecha de la factura)<br>-sobre el pago por los servicios
     OptionVatDebitOptionDesc=La carga del IGV es: <br>-en el envío de los bienes (en la práctica se usa la fecha de la factura)<br>-sobre la facturación de los servicios
    diff --git a/htdocs/langs/es_PE/main.lang b/htdocs/langs/es_PE/main.lang
    index 679279a459d..b2dc338cb21 100644
    --- a/htdocs/langs/es_PE/main.lang
    +++ b/htdocs/langs/es_PE/main.lang
    @@ -19,6 +19,7 @@ FormatDateHourShort=%d/%m/%Y %H:%M
     FormatDateHourSecShort=%d/%m/%Y %H:%M:%S
     FormatDateHourTextShort=%d %b %Y %H:%M
     FormatDateHourText=%d %B %Y %H:%M
    +Enable=Activado
     Disable=Inhabilitar
     Close=Cerrado
     AmountVAT=Importe IGV
    @@ -29,3 +30,4 @@ VAT=IGV
     VATRate=Tasa IGV
     Drafts=Borrador
     Opened=Abrir
    +NotRead=Sin leer
    diff --git a/htdocs/langs/es_PY/admin.lang b/htdocs/langs/es_PY/admin.lang
    deleted file mode 100644
    index 790d1e6cd7b..00000000000
    --- a/htdocs/langs/es_PY/admin.lang
    +++ /dev/null
    @@ -1,5 +0,0 @@
    -# Dolibarr language file - Source file is en_US - admin
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    diff --git a/htdocs/langs/es_VE/admin.lang b/htdocs/langs/es_VE/admin.lang
    index 20ee7042b7e..2a2ba3bc3bb 100644
    --- a/htdocs/langs/es_VE/admin.lang
    +++ b/htdocs/langs/es_VE/admin.lang
    @@ -2,9 +2,9 @@
     VersionLastInstall=Versión de instalación inicial
     VersionLastUpgrade=Última actualización de la versión
     ConfirmPurgeSessions=¿De verdad quieres purgar todas las sesiones? Esto desconectará a todos los usuarios (excepto a usted).
    +SetupArea=Parametrizaje
     NotConfigured=Módulo / Aplicación no configurada
     ModuleFamilyCrm=Gestión cliente (CRM)
    -Module2660Desc=Habilitar los servicios web cliente de Dolibarr (puede ser utilizado para grabar datos/solicitudes de servidores externos. De momento solo se soporta pedidos a proveedor)
     Permission254=Modificar la contraseña de otros usuarios
     Permission255=Eliminar o desactivar otros usuarios
     Permission256=Consultar sus permisos
    @@ -14,13 +14,11 @@ Permission1421=Exportar pedidos de clientes y atributos
     Permission20003=Eliminar peticiones de días libres retribuidos
     Permission2402=Crear/eliminar acciones (eventos o tareas) vinculadas a su cuenta
     Permission2403=Modificar acciones (eventos o tareas) vinculadas a su cuenta
    -DefineHereComplementaryAttributes=Defina aquí la lista de atributos adicionales, no disponibles por defecto, y que desea gestionar para %s.
     ExtraFields=Atributos adicionales
     ExtraFieldsLines=Atributos adicionales (líneas)
     ExtraFieldsSupplierOrdersLines=Atributos complementarios (líneas de pedido)
     ExtraFieldsSupplierInvoicesLines=Atributos complementarios (líneas de factura)
     ExtraFieldsThirdParties=Atributos adicionales (terceros)
    -ExtraFieldsContacts=Atributos adicionales (contactos/direcciones)
     ExtraFieldsMember=Atributos adicionales (miembros)
     ExtraFieldsMemberType=Atributos adicionales  (tipos de miembros)
     ExtraFieldsCustomerInvoices=Atributos adicionales (facturas a clientes)
    @@ -32,4 +30,3 @@ ExtraFieldHasWrongValue=El atributo %s tiene un valor no válido
     LDAPMemberObjectClassListExample=Lista de ObjectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory)
     LDAPUserObjectClassListExample=Lista de ObjectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory)
     LDAPContactObjectClassListExample=Lista de objectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory)
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    diff --git a/htdocs/langs/es_VE/companies.lang b/htdocs/langs/es_VE/companies.lang
    index b39081379b2..93ac64371ec 100644
    --- a/htdocs/langs/es_VE/companies.lang
    +++ b/htdocs/langs/es_VE/companies.lang
    @@ -1,5 +1,4 @@
     # Dolibarr language file - Source file is en_US - companies
    -CountryIsInEEC=Venezuela
     OverAllSupplierProposals=Solicitudes de precios
     LocalTax1IsUsed=Sujeto
     LocalTax2IsUsed=Sujeto
    @@ -19,10 +18,6 @@ ProfId1HN=-
     ProfId2MX=Registro Patronal IVSS
     ProfId3MX=-
     CompanyHasCreditNote=Este cliente tiene <b>%s %s</b> anticipos disponibles
    -VATIntraCheckDesc=El link <b>%s</b> permite consultar al SENIAT el RIF. Se requiere acceso a internet para que el servicio funcione
     VATIntraCheckURL=http://contribuyente.seniat.gob.ve/BuscaRif/BuscaRif.jsp
    -VATIntraCheckableOnEUSite=Verificar en la web del SENIAT
    -VATIntraManualCheck=Puede también realizar una verificación manual en la página del SENIAT <a href="%s" target="_blank">%s</a>
     ContactOthers=Otra
    -ExportDataset_company_2=Contactos de terceros y atributos
     InActivity=Abierta
    diff --git a/htdocs/langs/es_VE/main.lang b/htdocs/langs/es_VE/main.lang
    index a0aed660c7d..8dd07d39592 100644
    --- a/htdocs/langs/es_VE/main.lang
    +++ b/htdocs/langs/es_VE/main.lang
    @@ -39,4 +39,3 @@ Progress=Progresión
     Export=Exportación
     ExpenseReports=Gastos
     SearchIntoExpenseReports=Gastos
    -SearchIntoLeaves=Días libres
    diff --git a/htdocs/langs/es_VE/projects.lang b/htdocs/langs/es_VE/projects.lang
    deleted file mode 100644
    index 8fd41c4e71b..00000000000
    --- a/htdocs/langs/es_VE/projects.lang
    +++ /dev/null
    @@ -1,2 +0,0 @@
    -# Dolibarr language file - Source file is en_US - projects
    -DocumentModelBaleine=Plantilla de informe tareas del Proyecto
    diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang
    index 6366677a0b2..1361a6d3459 100644
    --- a/htdocs/langs/et_EE/admin.lang
    +++ b/htdocs/langs/et_EE/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Arendusversioon
     VersionUnknown=Teadmata
     VersionRecommanded=Soovitatav
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Sessioonide töötleja
     SessionSavePath=Salvestuse sessiooni lokaliseerimine
     PurgeSessions=Sessioonide tühjendamine
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Sinu PHP seadistusfailis seadistatud sessioonide töötleja ei võimalda käimasolevatest sessioonidest nimekirja loomist.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Keela uued ühendused
    -ConfirmLockNewSessions=Kas oled kindel, et soovid uusi Dolibarri ühendusi lubada ainult enda kasutajale? Pärast seda toimingut saab sisse logida vaid kasutaja <b>%s</b>.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Luba uued ühendused
     YourSession=Sinu sessioon
    -Sessions=Kasutajate sessioonid
    +Sessions=Users sessions
     WebUserGroup=Veebiserveri kasutaja/grupp
    -NoSessionFound=Tundub, et PHP ei luba luua aktiivsete sessioonide nimekirja. Sessioonide salvestamiseks kasutatav kaust  <b>(%s)</b> võib olla kaitstud (näiteks operatsioonisüsteemi õigustega või PHP direktiiviga open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Märgistik, mida kasutatakse andmete salvestamiseks andmebaasi
     DBSortingCharset=Märgistik, mida kasutada andmete sorteerimiseks andmebaasis
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Väline kasutaja
     InternalUsers=Sisemised kasutajad
     ExternalUsers=Välised kasutajad
     GUISetup=Kuva
    -SetupArea=Seadistamise ala
    +SetupArea=Seadistamine
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Failide üleslaadimise teistimiseks kasutatav vorm (vastavalt seadistustele)
     IfModuleEnabled=Märkus: jah töötab vaid siis, kui moodul <b>%s</b> on sisse lülitatud.
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kood ei või sisaldada väärtust 0
     DisableJavascript=Lülita JavaScripti ja Ajaxi funktsioonid välja (soovitatav vaegnägijate või tekstibrauserite jaoks)
     UseSearchToSelectCompanyTooltip=Suure kolmandate isikute arvu korral (> 100 000) saab kiiruse suurendamiseks seadistada Seadistamine->Muu menüüs konstandi COMPANY_DONOTSEARCH_ANYWHERE väärtuseks 1. Sellisel juhul piirdub otsing sõne algusega.
     UseSearchToSelectContactTooltip=Suure kolmandate isikute arvu korral (> 100 000) saab kiiruse suurendamiseks seadistada Seadistamine->Muu menüüs konstandi CONTACT_DONOTSEARCH_ANYWHERE väärtuseks 1. Sellisel juhul piirdub otsing sõne algusega.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Sisestatud märkide arv otsingu käivitamiseks: %s
     NotAvailableWhenAjaxDisabled=Ei ole saadaval, kui Ajax on välja lülitatud
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Eelvaade pole saadaval
     ThemeCurrentlyActive=Hetkel kasutatav teema
     CurrentTimeZone=PHP ajavöönd (serveri ajavöönd)
     MySQLTimeZone=MySQLi (andmebaasi) ajavöönd
    -TZHasNoEffect=Andmebaasiserver säilitab ja tagastab kuupäevi sisestatud sõnena. Ajavöönd omab mõju vaid UNIX_TIMESTAMP funktsiooni kasutamisel (mida Dolibarr ei tohiks kasutada, seega ei tohiks andmebaasi ajavöönd omada mitte mingit mõju isegi pärast seda, kui ajavööndit muudetakse pärast andmete sisestamist)
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Ruum
     Table=Tabel
     Fields=Väljad
    @@ -111,14 +111,14 @@ NotConfigured=Moodul/Rakendus pole veel seadistatud
     Active=Aktiivne
     SetupShort=Seadistamine
     OtherOptions=Muud seaded
    -OtherSetup=Muud seadistused
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Kümnendkoha eraldaja
     CurrentValueSeparatorThousand=Tuhandete eraldaja
     Destination=Sihtkoht
     IdModule=Mooduli ID
     IdPermissions=Kasutajaõiguste ID
     LanguageBrowserParameter=Parameeter %s
    -LocalisationDolibarrParameters=Lokaliseerimise parameetrid
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Kliendi ajavöönd (kasutaja)
     ClientHour=Kliendi aeg (kasutaja)
     OSTZ=Serveri operatsioonisüsteemi ajavöönd
    @@ -126,8 +126,8 @@ PHPTZ=Time Zone PHP server
     DaylingSavingTime=Suveaeg
     CurrentHour=Tund PHP (server)
     CurrentSessionTimeOut=Praeguse sessiooni aegumine
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Vidin
     Boxes=Vidinad
     MaxNbOfLinesForBoxes=Vidinate maksimaalne ridade arv
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignoreeri duplikaatkirjete põhjustatud vead (INSERT IGNO
     AutoDetectLang=Tuvasta automaatselt (brauseri keel)
     FeatureDisabledInDemo=Demoversioonis blokeeritud funktsionaalsus
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Kastid on ekraani ala, mis näitavad mõnedel lehekülgedel mingit infot. Kasti näitamise saab sisse või välja lülitada, valides soovitud lehe ning klõpsates nupul 'Aktiveeri' või klõpsates prügikastil selle välja lülitamiseks.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Näidatakse ainult elemente <a href="%s">sisse lülitatud moodulitest</a>.
    -ModulesDesc=Dolibarri moodulid määravad, millist funktsionaalsust tarkvara võimaldab. Mõned moodulite puhul tuleb pärast mooduli sisse lülitamist lubada kasutajatele nende kasutamine. Klõpsa sisse/välja nupul "Staatus" veerus, et moodulit/funktsionaalsust sisse lülitada.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Alla laadimiseks leiad rohkem mooduleid Internetist.
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Otsi katsetuskärgus rakendusi/mooduleid
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Uus
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore on ametlik Dolibarr ERP/CRM moodulite müümiseks kasutatav koht
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Saadaolevad vidinad
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Ära säilita paroole andmebaasis avatud tekstis, vaid a
     MainDbPasswordFileConfEncrypted=Andmebaasi parool on conf.php failis krüpteeritud (soovitatav aktiveeritud).
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Automaatselt loodud PDF failide kaitse (soovitatav välja lülitatud, kuna vastasel juhul ei tööta PDFide hulgi loomine)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Funktsionaalsus
     DolibarrLicense=Litsents
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=Kasutaja või arendaja dokumentatsiooni (KKK jms) võid leida<br>ametlikust Dolibarri Wikist:<br><a href="%s" target="_blank"><b>%s</b></a>
     ForAnswersSeeForum=Muude küsimuste või abi küsimise tarbeks saab kasutada Dolibarri foorumit:<br><a href="%s" target="_blank"><b>%s</b></a>
    -HelpCenterDesc1=See ala võib aidata saada Dolibarri tugiteenust.
    -HelpCenterDesc2=Mõned osad sellest teenusest on saadaval <b>ainult inglise keeles</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Praegune menüü töötleja
     MeasuringUnit=Mõõtühik
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=E-postid
     EMailsSetup=E-posti seadistamine
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS port (vaikimisi php.ini failis: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS host (vaikimisi php.ini failis: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS port (pole Unix laadsetel süsteemidel PHPs määratletud)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS host (pole Unix laadsetel süsteemidel PHPs määratletud)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Saada kõigist saadetud kirjadest automaatselt pimekoopia aadressile
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=E-kirjade saatmiseks kasutatav meetod
    -MAIN_MAIL_SMTPS_ID=SMTP kasutaja, kui autentimine on nõutud
    -MAIN_MAIL_SMTPS_PW=SMTP parool, kui autentimine on nõutud
    -MAIN_MAIL_EMAIL_TLS= Kasuta TLS (SSL) krüpteerimist
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Keela SMSide saatmine (testimise või demo paigaldused)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=SMSi saatmiseks kasutatav meetod
    -MAIN_MAIL_SMS_FROM=Vaikimisi määratud saatja telefoninumber SMSide saatmiseks
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Funktsionaalsus pole kasutatav Unixi laadsel süsteemil. Kontrolli oma sendmail programmi seadistust.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Moodulite seadistamine
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multimoodulite tööriistad
     ModuleFamilyExperimental=Eksperimentaalsed moodulid
     ModuleFamilyFinancial=Finantsmoodulid (raamatupidamine/rahahaldus)
     ModuleFamilyECM=Dokumendihaldus (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menüüde töötlejad
     MenuAdmin=Menüü toimeti
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Ära kasuta tootmispaigaldustes
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Samm %s
    -FindPackageFromWebSite=Leia pakett, mis võimaldab soovitud funktsionaalsuse (näiteks ametlikul veebilehel %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarri praegune versioo
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Viimane stabiilne versioon
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Eksportimise vastuse vahemällu salvestamise viivitus (0 või tühi vahemälu mitte kasutamiseks)
     DisableLinkToHelpCenter=Peida link "<b>Vajad abi või tuge</b>" sisselogimise lehel
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=Automaatselt ei murta ridu, seega peab dokumentide koostamisel lehe piiridest väljuva pika rea murdmiseks ise tekstikasti reavahetusi sisestama.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimaalne pikkus
     LanguageFilesCachedIntoShmopSharedMemory=Jagatud mällu laetud .lang failid
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Praegu töötava seadistusega näited
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=OpenDocument mallide kaustad
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Nendes kaustades leitud ODT/ODS mallide arv
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Süntaksi näited:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>Enne dokumendimallide loomist loe wikis olevat dokumentatsiooni:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Veebiteenuste kasutamise võti (parameeter "dolibarrkey"
     TestSubmitForm=Sisestamise testimiseks mõeldud vorm
     ThisForceAlsoTheme=Selle menüühalduri kasutamisel kasutatakse ka kasutaja valitud oma teemat. Nutitelefonide jaoks mõeldud menüühaldur ei tööta kõigil nutitelefonidel. Kasuta mõnda muud menüühaldurit, kui hetkel kasutuses olevaga esineb tõrkeid.
     ThemeDir=Kestade kataloog
    -ConnectionTimeout=Ühenduse aegumine
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Vastuse aegumine
     SmsTestMessage=Test sõnum __TELEFONIST__TELEFONI__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=URLide kaitsmiseks kasutatav võti
    -NoSmsEngine=Ühtki SMSi saatmise haldurit pole võimalik kasutada. SMSi saatmise haldurid ei ole vaikepaigalduses kaasas (kuna nad sõltuvad välisest teenusepakkujast), kuid mõningaid võib leida aadressil %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Siit saab määratleda üldised PDFide loomise seaded
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Aadressikastide loomise reeglid
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Peida loodud PDFis toodete kirjeldused
     HideRefOnPDF=Peida loodud PDFis toodete viited
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=URLide turvamise parameetrid
     SecurityTokenIsUnique=Kasuta iga URLi jaoks unikaalset turvalise võtme parameetrit
     EnterRefToBuildUrl=Sisesta viide objektile %s
     GetSecuredUrl=Saada arvutatud URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Vana käibemaksumäär
     NewVATRates=Uus käibemaksumäär
     PriceBaseTypeToChange=Muuda hindadel, mille baasväärtus on defineeritud kui
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Valikute nimekiri
     ExtrafieldSelectList = Vali tabelist
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Salasõna
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Vaikimisi link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Hoiatus: kasutaja võib selle väärtuse üle kirjutada oma seadetega (iga kasutaja saab määratleda isikliku clicktodial URLi)
     ExternalModule=Väline moodul - paigaldatud kausta %s
    -BarcodeInitForThirdparties=Kolmandate isikute jaoks vöötkoodide massiline loomine
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Toodete/teenuste jaoks massiline vöötkoodide loomine või lähtestamine
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Järgmise %s tühja kirje lähtestamise väärtus
     EraseAllCurrentBarCode=Kustuta kõik hetkel kasutatavad vöötkoodide väärtused
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=Kõik triipkoodi väärtused on eemaldatud
    -NoBarcodeNumberingTemplateDefined=Vöötkoodide mooduli seadistuses pole määratletud ühtki vöötkoodide numeratsiooni malli
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Väli
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Kasutajad ja grupid
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Kolmandad isikud
    -Module1Desc=Ettevõtete ja kontaktide haldamine (kliendid, huvilised)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Äritegevus
     Module2Desc=Äritegevuse seadistamine
     Module10Name=Raamatupidamine
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Pakkumised
     Module20Desc=Pakkumiste haldamine
     Module22Name=Masspostitus
    @@ -495,7 +501,7 @@ Module23Desc=Energiatarbimise järelevalve
     Module25Name=Klientide tellimused
     Module25Desc=Klientide tellimuste haldamine
     Module30Name=Arved
    -Module30Desc=Klientide müügi- ja kreeditarvete haldamine. Hankijate arvete haldamine.
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Hankijad
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Ladude haldamine (tooted)
     Module53Name=Teenused
     Module53Desc=Teenuste haldamine
     Module54Name=Lepingud/Tellimused
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Vöötkoodid
     Module55Desc=Vöötkoodide haldamine
     Module56Name=Telefonitehnika
     Module56Desc=Telefonitehnika integratsioon
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=ClickToDial süsteemiga (Asterisk jne) integreerimine
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Kulud ja lähetused
     Module75Desc=Kulude ja lähetuste haldamine
     Module80Name=Saadetised
     Module80Desc=Saadetiste ja saatelehtede haldamine
    -Module85Name=Pangad ja raha
    +Module85Name=Banks and Cash
     Module85Desc=Panga- ja kassakontode haldamine
    -Module100Name=Väline veebileht
    -Module100Desc=See moodul lisab välise veebilehe Dolibarri menüüdesse ning võimaldab selle kasutamise Dolibarri raamis
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman ja SPIP
     Module105Desc=Mailman või SPIP liides liikme mooduli jaoks
     Module200Name=LDAP
    -Module200Desc=LDAP kausta sünkroniseerimine
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integratsioon
     Module240Name=Andmete eksport
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Andmete import
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Liikmed
     Module310Desc=Ühenduse liikmete haldamine
     Module320Name=RSS voog
     Module320Desc=Lisa RSS voog Dolibarri lehtedele
    -Module330Name=Järjehoidjad
    -Module330Desc=Järjehoidjate haldamine
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=WebCalendari integratsioon
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Annetused
     Module700Desc=Annetuste haldamine
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Sildid/kategooriad
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG toimeti
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Plaanitud käivitused
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Lülita sisse Dolibarri SOAPi server API võimaldamiseks
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Kasuta Gravatar (www.gravatar.com) teenust, et näidata kasutajate/liikmete pilte (loodud nende e-posti aadresside põhjal). Vajab Interneti ligipääsu.
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP klient
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind konverteerimise võimekus
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=Personalihaldus
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-ettevõte
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Puhkusetaotluste haldamine
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Kassa
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Kassa
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Marginaalid
     Module59000Desc=Marginaalide haldamise moodu
     Module60000Name=Komisjonitasu
     Module60000Desc=Komisjonitasude haldamise moodu
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Ressursid
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Müügiarvete vaatamine
    @@ -651,9 +661,9 @@ Permission32=Toodete loomine/muutmine
     Permission34=Toodete kustutamine
     Permission36=Peidetud toodete vaatamine/haldamine
     Permission38=Toodete eksport
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Projektide kustutamine (jagatud projekt ja projektid, mille kontaktiks on kasutaja)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Sekkumiste vaatamine
     Permission62=Sekkumiste loomine/muutmine
    @@ -686,7 +696,7 @@ Permission109=Saatmiste kustutamine
     Permission111=Finantskontode vaatamine
     Permission112=Tehingute loomine/muutmine/kustutamine ja võrdlemine
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Tehingute ja kontosaldode ekspor
     Permission116=Kontode vahelised kanded
     Permission117=Tšekkide saatmise haldamine
    @@ -694,15 +704,15 @@ Permission121=Kasutajaga seotud kolmandate isikute vaatamine
     Permission122=Kasutajaga seotud kolmandate isikute loomine/muutmine
     Permission125=Kasutajaga seotud kolmandate isikute kustutamine
     Permission126=Kolmandate isikute eksport
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Pakkujate vaatamine
     Permission147=Statistika vaatamine
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Ostutellimuste sulgemine
     Permission188=Ostutellimuste tühistamine
     Permission192=Ridade loomine
     Permission193=Ridade kustutamine
    -Permission194=Ribalaiuse ridade vaatamine
    +Permission194=Read the bandwidth lines
     Permission202=ADSL-ühenduste loomine
     Permission203=Ühendustellimuste tellimine
     Permission204=Ühenduste tellimine
    @@ -750,12 +760,12 @@ Permission244=Peidetud kategooriate sisu vaatamine
     Permission251=Teiste kasutajate ja gruppide vaatamine
     PermissionAdvanced251=Teiste kasutajate vaatamine
     Permission252=Teiste kasutajate õiguste vaatamine
    -Permission253=Teiste kasutajate, gruppide ja õiguste loomine/muutmine
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Väliste ja sisemiste kasutajate ja õiguste loomine/muutmine
     Permission254=Ainult väliste kasutajate loomine/muutmine
     Permission255=Teiste kasutajate paroolide muutmine
     Permission256=Teiste kasutajate kustutamine või keelamine
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=CA vaatamine
     Permission272=Arvete vaatamine
     Permission273=Arvete väljastamine
    @@ -765,7 +775,7 @@ Permission283=Kontaktide kustutamine
     Permission286=Kontaktide ekspor
     Permission291=Tariifide vaatamine
     Permission292=Tariifide õiguste seadmine
    -Permission293=Klientide tariifide muutmine
    +Permission293=Modify customers tariffs
     Permission300=Vöötkoodide vaatamine
     Permission301=Vöötkoodide loomine/muutmine
     Permission302=Vöötkoodide kustutamine
    @@ -787,11 +797,9 @@ Permission401=Allahindluste vaatamine
     Permission402=Allahindluste loomine/muutmine
     Permission403=Allahindluste kinnitamine
     Permission404=Allahindluste kustutamine
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Palkade kustutamine
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Palkade eksportimine
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Väliste andmete massiline import andmebaasi (andmete laadimine)
     Permission1321=Müügiarvete, atribuutide ja maksete eksport
     Permission1322=Reopen a paid bill
     Permission1421=Müügitellimuste ja atribuutide eksport
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Huvilise huvitatuse tase
     DictionaryCanton=Osariik/provints
     DictionaryRegion=Piirkonnad
    @@ -894,7 +902,7 @@ DictionaryVAT=Käibe- või müügimaksumäärad
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Maksetingimused
     DictionaryPaymentModes=Maksmine režiimid
    -DictionaryTypeContact=Kontakti/Aadressi tüübid
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ökomaks (WEEE)
     DictionaryPaperFormat=Paberiformaadid
    @@ -908,47 +916,47 @@ DictionarySource=Pakkumiste/tellimuste päritolu
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Kontoplaani mudelid
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Ühikud
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Seadistused salvestatud
     SetupNotSaved=Setup not saved
     BackToModuleList=Tagasi moodulite nimekirja
    -BackToDictionaryList=Tagasi sõnastike nimekirja
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=Käibemaksu haldamine
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=Vaikimisi pakutakse käibemaksumääraks 0, mida kasutavad näiteks mittetulundusühingud, eraisikud või väikesed ettevõtted.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Määr
     LocalTax1IsNotUsed=Ära kasuta teist maksu
    -LocalTax1IsUsedDesc=Kasuta teist liiki maksu (mitte KM)
    -LocalTax1IsNotUsedDesc=Ära kasuta teist liiki maksu (mitte KM)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Teist liiki maks
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Ära kasuta kolmandat maksu
    -LocalTax2IsUsedDesc=Kasuta kolmandat liiki maksu (mitte KM)
    -LocalTax2IsNotUsedDesc=Ära kasuta ühtki muud liiki maksu (mitte KM)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Kolmandat liiki maks
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE haldamine
    -LocalTax1IsUsedDescES= Pakkumiste, arvete, tellimuste jne loomisel kasutatav RE vaikimisi määr järgib aktiivset standardreeglit:<br>Kui ostja ei ole RE kohuslane, siis on RE vaikimisi 0. Reegli lõpp.<br>Kui ostja on RE kohuslane, siis on RE vaikimisi määraga. Reegli lõpp.<br>
    -LocalTax1IsNotUsedDescES= Vaikimisi pakutud RE on 0. Reegli lõpp.
    -LocalTax1IsUsedExampleES= Hispaanias on tegu spetsialistidega, kellele kohalduvad mõned Hispaania IAE spetsiifilised osad.
    -LocalTax1IsNotUsedExampleES= Hispaanias on nad spetsialistid ja organisatsioonid, kellele kohalduvad mõningad Hispaania IAE spetsiifilised osad.
    -LocalTax2ManagementES= IRPF haldamine
    -LocalTax2IsUsedDescES= Pakkumiste, arvete, tellimuste jne loomisel kasutatav RE vaikimisi määr järgib aktiivset standardreeglit:<br>Kui müüja ei ole IRPF kohuslane, siis on IRPF vaikimisi 0. Reegli lõpp.<br>Kui müüja on IRPF kohuslane, siis on IRPF vaikimisi määraga. Reegli lõpp.<br>
    -LocalTax2IsNotUsedDescES= Vaikimisi pakutud IRPF on 0. Reegli lõpp.
    -LocalTax2IsUsedExampleES= Hispaanias on nad vabakutselised ja spetsialistid, kes pakuvad teenuseid ja ettevõtted, kes on valinud moodulipõhise maksusüsteemi.
    -LocalTax2IsNotUsedExampleES= Hispaanias on nad ettevõtted, kes ei kasuta moodulipõhist maksusüsteemi.
    +LocalTax1ManagementES=RE haldamine
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Vaikimisi pakutud RE on 0. Reegli lõpp.
    +LocalTax1IsUsedExampleES=Hispaanias on tegu spetsialistidega, kellele kohalduvad mõned Hispaania IAE spetsiifilised osad.
    +LocalTax1IsNotUsedExampleES=Hispaanias on nad spetsialistid ja organisatsioonid, kellele kohalduvad mõningad Hispaania IAE spetsiifilised osad.
    +LocalTax2ManagementES=IRPF haldamine
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Vaikimisi pakutud IRPF on 0. Reegli lõpp.
    +LocalTax2IsUsedExampleES=Hispaanias on nad vabakutselised ja spetsialistid, kes pakuvad teenuseid ja ettevõtted, kes on valinud moodulipõhise maksusüsteemi.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Müügid - Ostud
     CalcLocaltax1Desc=Kohalike maksude aruannete arvutamiseks kasutatakse kohalike maksude müügi ja kohalike maksude ostude vahet
    @@ -958,7 +966,9 @@ CalcLocaltax3=Müügid
     CalcLocaltax3Desc=Kohalike maksude aruanded on kohalike maksude müükide summas
     LabelUsedByDefault=Vaikimisi kasutatav silt, kui koodile ei leitud tõlke vastet
     LabelOnDocuments=Dokumentide silt
    -NbOfDays=Päevade arv
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Kuu lõpus
     CurrentNext=Current/Next
     Offset=Nihe
    @@ -984,7 +994,7 @@ DatabaseUser=Andmebaasi kasutaja
     DatabasePassword=Andmebaasi parool
     Tables=Tabelid
     TableName=Tabeli nimi
    -NbOfRecord=Kirjete arv
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Draiveri tüüp
     SummarySystem=Süsteemiinfo kokkuvõte
    @@ -996,7 +1006,7 @@ Skin=Kesta kujundus
     DefaultSkin=Vaikimisi kesta kujundus
     MaxSizeList=Nimekirja maksimaalne pikkus
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Päeva sõnu
     MessageLogin=Sisselogimise lehe sõnu
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Vasakus menüüs on alati otsingu vorm
     DefaultLanguage=Vaikimisi kasutatav keel (keele kood)
     EnableMultilangInterface=Luba mitmekeelne liides
     EnableShowLogo=Näita vasakul menüüs logo
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Nimi
     CompanyAddress=Aadress
     CompanyZip=Postiindeks
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Pangakonto %s omani
     BankModuleNotActive=Pangakontode moodul pole sisse lülitatud
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Häired
    -DelaysOfToleranceBeforeWarning=Hilinemiste viivitus enne hoiatuse näitamist
    -DelaysOfToleranceDesc=See ekraan võimaldab määratleda lubatud hilinemist lubatud enne hoiatuskasti näitamist ekraanil pildiga %s iga hilinenud elemendi kohta.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Hilinemise viivitus (päevades) enne hoiatust sulgemata pakkumiste kohta
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Hilinemise viivitus (päevades) enne hoiatust pakkumiste kohta, mille eest ei ole arvet esitatud
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Hilinemise viivitus (päevades) enne hoiatust aktiveerimata teenuste kohta
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Hilinemise viivitus (päevades) enne hoiatust aegunud teenuste kohta
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Hilinemise viivitus (päevades) enne hoiatust maksmata ostuarvete kohta
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Hilinemise viivitus (päevades) enne hoiatust maksmata müügiarvete kohta
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Hilinemise viivitus (päevades) enne hoiatust ootel panga ühildamiste kohta
    -Delays_MAIN_DELAY_MEMBERS=Hilinemise viivitus (päevades) enne hoiatust hilinenud liikmetasude kohta
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Hilinemise viivitus (päevades) enne hoiatust deponeerimata tšekkide kohta
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Teised menüükanded haldavad muid parameetreid
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Sündmuste turvaaudit
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Sirvija nimi
     BrowserOS=Sirvija operatsioonisüsteem
     ListOfSecurityEvents=Dolibarri turvasündmuste nimekiri
     SecurityEventsPurged=Turvasündmused tühjendatud
    -LogEventDesc=Siin saab sisse lülitada Dolibarri turvalisusega seotud sündmuste logimise. Administraatorid saavad seejärel vajaliku info kätte menüüst <b>Süsteemi tööristad - Audit</b>. Hoiatus: see võib võtta andmebaasis palju ruumi.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=Süsteemi info sisaldab mitmesugust tehnilist infot, mida ei saa muuta ning mis on nähtav vaid administraatoritele.
     SystemAreaForAdminOnly=Sellele alale saavad ligi ainult administraatorid. Ükski Dolibarri õigus ei saa seda piirangut eemaldada.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Siit saab muuta iga parameetrit, mis on seotud Dolibarri kujundusega
     AvailableModules=Available app/modules
     ToActivateModule=Moodulite aktiveerimiseks mine süsteemi seadistusesse (Kodu->Seadistamine->Moodulid).
     SessionTimeOut=Sessiooni aegumise aeg
    -SessionExplanation=Juhul, kui sessioone puhastab PHP sisemine sessioonide puhastaja (ja mitte miski muu), siis see arv garanteerib, et sessioonid ei aegu mitte kunagi enne seda viivitust. PHP sisemine sessioonide puhastaja ei garanteeri sessioonide kohest lõpetamist pärast seda aega. Sessioon aegub pärast määratletud aega järgmisel sessioonipuhastuse käivitusel, seega igal <b>%s/%s</b> ligipääsul, aga ainult teiste sessioonide poolt tehtud ligipääsul.<br>Märkus: mõnedel serveritel, mis kasutavad väliseid sessioonide puhastamise vahendeid (nt Debiani või Ubuntu süsteemidel cron), saab hoolimata siin määratletud väärtusest sessioone lõpetada pärast <strong>session.gc_maxlifetime</strong> väärtust.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Saadaval olevad trigerid
    -TriggersDesc=Trigerid on failid, mis muudavad Dolibarri töövoogu. Trigerite kasutamiseks peab nad kopeerima kausta <b>htdocs/core/triggers</b>. Trigerid realiseerivad uusi tegevusi, mis aktiveeritakse Dolibarri sündmuste puhul (uue ettevõtte loomine, arve kinnitamine jne).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Selles failis olevaid trigereid saab blokeerida <b>-NORUN</b> sufiksiga nende nimes.
     TriggerDisabledAsModuleDisabled=Selles failis olevad trigerid on blokeeritud, kuna moodul <b>%s</b> on blokeeritud.
     TriggerAlwaysActive=Selles failis olevad trigerid on alati aktiivsed hoolimata aktiveeritud Dolibarri moodulitest.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Piiride/täpsuse seadistamine
    -LimitsDesc=Siin saab määratleda Dolibarri poolt kasutatavad piirid, täpsuse ja optimeerimised
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Maks kümnendkohti ühikuhindades
     MAIN_MAX_DECIMALS_TOT=Maks kümnendkohti kogusummades
     MAIN_MAX_DECIMALS_SHOWN=Max kümnendkohti ekraanil näidatavate hindade jaoks (lisa <b>...</b> pärast seda parameetrit, kui tahad, et arvude kärpimisel näidatakse nendel järel <b>...</b>)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Toote neto ühikuhind
     TotalPriceAfterRounding=Koguhind (neto/km/km-ga) pärast ümardamist
     ParameterActiveForNextInputOnly=Parameeter kehtib vaid järgmise sisestuse ajal
    -NoEventOrNoAuditSetup=Ühtki turvasündmust pole veel salvestatud. See on täiesti tavaline, kui auditeerimist pole veel "Seadistamine->Turvalisus->Audit" lehelt sisse lülitatud.
    -NoEventFoundWithCriteria=Selliste otsingutingimustega ei leitud ühtkik turvasündmust.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Vaata oma kohaliku sendmaili seadistust
     BackupDesc=Dolibarrist täieliku varukoopia tegemiseks pead:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Arhiveeritud kausta peaks säilitama turvalises kohas.
     BackupDescY=Loodud tõmmisfaili peaks säilitama turvalises kohas.
    -BackupPHPWarning=Antud meetodi abil ei saa garanteerida varukoopia loomist, eelistan eelmist meetodit.
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Dolibarri varukoopiast taastamiseks peate:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQLi import
     ForcedToByAModule= Aktiveeritud moodul on antud reegli väärtuseks sundinud <b>%s</b>
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Antud käsu peab käivitama kä
     YourPHPDoesNotHaveSSLSupport=Antud PHP ei võimalda SSL funktsioone
     DownloadMoreSkins=Veel alla laetavaid kujundusi
     SimpleNumRefModelDesc=Tagast viitenumbri kujul %syymm-nnnn kus yy on aasta, mm on kuu ja nnnn on vahedeta jada, mida ei nullita.
    -ShowProfIdInAddress=Näita dokumentidel registreerimisnumbrit koos aadressidega
    -ShowVATIntaInAddress=Peida dokumentidel KMKR number koos aadressidega
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Osaline tõlge
    -MAIN_DISABLE_METEO=Keela meteo vaade
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Testi API sisse logimist
    -ProxyDesc=Teatud Dolibarri funktsioonid vajavad töötamiseks ligipääsu Internetile. Antud lehel saad määratleda selleks tarvilikke parameetreid. Need parameetrid annavad Dolibarrile info, kuidas kasutada Interneti läbi puhverserveri e proxy.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Väline juurdepääs
     MAIN_PROXY_USE=Kasuta puherverserverit (muul juhul otseühendus Internetiga)
     MAIN_PROXY_HOST=Puhverserveri nimi/aadress
     MAIN_PROXY_PORT=Puhverserveri port
     MAIN_PROXY_USER=Puhverserveri kasutajanimi
     MAIN_PROXY_PASS=Puhverserveri salasõna
    -DefineHereComplementaryAttributes=Määratle siin kõik %s toetamiseks vajalikud atribuudid, mis ei ole vaikimisi saadaval.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Täiendavad atribuudid
     ExtraFieldsLines=Lisaatribuudid (read)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Täiendavad atribuudid (thirdparty e kolmas isik)
    -ExtraFieldsContacts=Täiendavad atribuudid (contact/address e kontakt/aadress)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Täiendavad atribuudid (member e liige)
     ExtraFieldsMemberType=Täiendavad atribuudid (member type e liikme liik)
     ExtraFieldsCustomerInvoices=Täiendavad atribuudid (arved)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=ainult tühikuteta väikesed tähed ja numbrid
     SendmailOptionNotComplete=Hoiatus: mõnedel Linuxi süsteemidel peab e-kirja saatmiseks sendmaili käivitamise seadistus sisaldama võtit -ba (php.ini failis parameeter mail.force_extra_parameters). Kui mõned adressaadid ei saa kunagi kirju kätte, siis proovi parameetri väärtust mail.force_extra_parameters = -ba
     PathToDocuments=Dokumentide rada
     PathDirectory=Kaust
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Pead vähemalt 1 mooduli sisse lülitama
    -ClassNotFoundIntoPathWarning=Klassi %s ei ole PHP rajas
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Suviti 'jah'
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Sessiooni andmehoidla krüpteeritud Suhosini poolt
     ConditionIsCurrently=Olek on hetkel %s
    -YouUseBestDriver=Kasutad draiverit %s, mis on hetkel saadaolevatest parim.
    -YouDoNotUseBestDriver=Kasutad draiverit %s, kuid soovitatav on kasutada draiverit %s.
    -NbOfProductIsLowerThanNoPb=Andmebaasis on vaid %s toodet/teenust. See ei nõua mingit erilist optimeerimist.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Otsingu optimeerimine
    -YouHaveXProductUseSearchOptim=Andmebaasis on %s toodet. Peaksid lisama konstandi PRODUCT_DONOTSEARCH_ANYWHERE väärtusega 1 Kodu->Seadistamine->Muu paneeli, et piirata otsing sõne algusesse ning võimaldada andmebaasil indeksite kasutamine kohese vastuse saamiseks.
    -BrowserIsOK=Kasutad brauserit %s, mis on nii turvalisuse kui jõudluse suhtes OK.
    -BrowserIsKO=Kasutad brauserit %s. See brauser on tuntud halva turvalisuse, jõudluse ja usaldusväärsuse poolest. Soovtitame kasutada Firefoxi, Chromei, Operat või Safarit.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug on laetud.
     XCacheInstalled=XCache on laetud.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Välja %s muutmine
     FillThisOnlyIfRequired=Näide: +2 (täida vaid siis, kui koged ajavööndi nihkega probleeme)
     GetBarCode=Hangi triipkood
     ##### Module password generation
     PasswordGenerationStandard=Tagastab parooli, mis vastab Dolibarri sisemisele algoritmile: 8 tähemärki pikk ja koosneb väikestest tähtedest ja numbritest.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=Uue kasutaja loomiseks on vajalik e-posti aadress
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Ettevõtete mooduli seadistamine
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Dokumendimallid
    -DocumentModelOdt=Loo dokumendid OpenDocument mallidest (.ODT või .ODS failid OpenOffices, KOffices, TextEditis jne)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Mustandi vesimärk
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Registreerimisnumbrite reeglid
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Eksportimise link <b>%s</b> formaati on saadaval järgmisel aadressil: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Eksportimise link <b>%s</b> formaati on saadaval järgmis
     BillsSetup=Arvete mooduli seadistamine
     BillsNumberingModule=Arvete ja kreeditarvete numeratsiooni mudel
     BillsPDFModules=Arve dokumentide mudelid
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Kreeditarve
     CreditNotes=Kreeditarved
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Halda iga liikme kasutajanime
     AdherentMailRequired=Uue liikme loomisel on kohustuslik lisada e-posti aadress
     MemberSendInformationByMailByDefault=Liikmetele e-kirja kinnituse saatmise (kinnitamise või uue tellimuse puhul) märkeruut on vaikimisi valitud
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP seadistamine
     LDAPGlobalParameters=Üldised parameetrid
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Testi LDAPi otsingut
     LDAPSynchroOK=Sünkroniseerimise testimine edukas
     LDAPSynchroKO=Sünkroniseerimise testimine ebaõnnestus
    -LDAPSynchroKOMayBePermissions=Sünkroniseerimise test ebaõnnestus. Kontrolli, et ühendus serveriga on õigestu seadistatud ning et LDAPi uuendused on lubatud
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP ühendust LDAPi serveriga õnnestus (server=%s, port=%s)
     LDAPTCPConnectKO=TCP ühendust LDAPi serveriga ebaõnnestus (server=%s, port=%s)
    -LDAPBindOK=LDAP serveriga ühendamine/autentimine õnnestus (Server=%s, Port=%s, Admin=%s, Parool=%s)
    -LDAPBindKO=LDAPi serveriga ühendumine/autentimine ebaõnnestus (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAPi server seadistatud versioonile 3
     LDAPSetupForVersion2=LDAPi server seadistatud versioonile 2
     LDAPDolibarrMapping=Dolibarri kaardistus
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Kasutajanimi (samba, activedirectory)
     LDAPFieldLoginSambaExample=Näide: samaccountname
     LDAPFieldFullname=Täielik nimi
     LDAPFieldFullnameExample=Näide: cn
    -LDAPFieldPasswordNotCrypted=Krüpteerimata salasõna
    -LDAPFieldPasswordCrypted=Krüpteeritud salasõna
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Näide: kasutajaParool
     LDAPFieldCommonNameExample=Näide: cn
     LDAPFieldName=Nimi
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Näiteväärtused on mõeldud <b>OpenLDAP</b> tarbeks koos järgnevate laetud skeemidega: <b>core.schema, cosine.schema, inetorgperson.schema</b>). Kui kasutad neid väärtusi ja OpenLDAPi, siis muuda LDAPi seadistusfaili <b>slapd.conf</b> kõigi nende skeemide laadimiseks.
     ForANonAnonymousAccess=Autenditud ligipääsu jaoks (näiteks kirjutusõiguse jaoks)
     PerfDolibarr=Jõudluse seadistamise/optimeerimise aruanne
    -YouMayFindPerfAdviceHere=Sellelt lehelt leiad mõningaid jõudlusega seotud kontrolle või nõuandeid.
    -NotInstalled=Pole paigaldatud, seega ei aegusta serverit.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Rakenduse vahemälu
     MemcachedNotAvailable=Puhvermälu ei leitud. Jõudluse suurendamiseks paigalda puhverserver Memcached ja selle kasutamist võimaldav moodul.<br>Rohkem infot siit <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Pane tähele, et paljud veebimajutused sellist serverit teenusena ei paku.
     MemcachedModuleAvailableButNotSetup=Puhvri jaoks kasutatav moodul memcached on olemas, kuid mooduli seadistamine on lõpuni viimata
     MemcachedAvailableAndSetup=Memcached serverit kasutav memcached moodul on sisse lülitatud.
     OPCodeCache=OPCode vahemälu
    -NoOPCodeCacheFound=OPCode vahemälu ei leitud. Võib-olla kasutada mõnda muud OPCode vahemälu peale XCache või eAcceleratori (hea), aga võib-olla ei ole OPCode vahemälu kasutusel (väga halb).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP vahemälu staatiliste ressursside jaoks (CSS, pildid, JavaScript)
     FilesOfTypeCached=%s tüüpi failid hoiab HTTP server vahemälus
     FilesOfTypeNotCached=%s tüüpi faile ei hoia HTTP server vahemälus
     FilesOfTypeCompressed=%s tüüpi faile pakib HTTP server kokk
     FilesOfTypeNotCompressed=%s tüüpi faile ei paki HTTP server kokk
     CacheByServer=Serveri vahemäl
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Brauseri vahemälu
     CompressionOfResources=HTTP vastuste kokku pakkimine
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Toodete mooduli seadistamine
     ServiceSetup=Teenuste mooduli seadistamine
     ProductServiceSetup=Toodete ja teenuste mooduli seadistamine
     NumberOfProductShowInSelect=Maksimaalne toodete arv liitbokside nimekirjades (0=piirangut ei ole)
    -ViewProductDescInFormAbility=Toodete kirjelduste visualiseerimine vormides (hüpikaknas)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Suure toodete arvu korral (> 100 000) saab kiiruse suurendamiseks seadistada Seadistamine->Muu menüüs konstandi PRODUCT_DONOTSEARCH_ANYWHERE väärtuseks 1. Sellisel juhul piirdub otsing sõne algusega.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Vaikimisi vöötkoodi tüüp toodetel
     SetDefaultBarcodeTypeThirdParties=Vaikimisi vöötkoodi tüüpi kolmandatel isikutel
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Saatmiste mooduli seadistamine
     SendingsReceiptModel=Saatekviitungi mudel
     SendingsNumberingModules=Saatmiste numeratsiooni moodulid
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Saatedokumentide numeratsiooni moodul
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Keerulisem toimeti
     ActivateFCKeditor=Aktiveeri keerulisem toimeti järgmistel lehtedel:
     FCKeditorForCompany=WYSIWIG loomine/muutmine elementide kirjeldustes ja märkustes (välja arvatud tooted/teenused)
     FCKeditorForProduct=WYSIWIG loomine/muutmine toodete/teenuste kirjeldustes ja märkustes
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG loomine/muutmine masspostitusel (Tööriistad->E-kirjad)
     FCKeditorForUserSignature=WYSIWIG loomine/muutmine kasutaja allkirjas
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Ühendumine õnnestus, aga andmebaas ei paista olevat OSCommercei andmebaas (võtit %s ei olnud tabelis %s).
    -OSCommerceTestOk=Ühendumine serveri '%s' andmebaasiga '%s' kasutajga '%s' õnnestus.
    -OSCommerceTestKo1=Ühendumine serveriga '%s' õnnestus, kuid andmebaasi '%s' ei õnnestunud kätte saada.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Ühendus serveri '%s' andmebaasiga '%s' kasutajanimega '%s' õnnestus.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Ühendumine serveriga '%s' kasutajaga '%s' ebaõnnestus.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menüü kustutatud
     Menus=Menüüd
    @@ -1548,7 +1562,7 @@ DetailRight=Volitamata hallide menüüde näitamise tingimus
     DetailLangs=Keelefaili nimi siltide koodide tõlke jaoks
     DetailUser=Sisemine/Välimine/Kõik
     Target=Sihtmärk
    -DetailTarget=Linkide sihtmärk (_blank avab uue akna)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Tase (-1: ülemine menüü, 0: päise menüü, >0 menüü ja alammenüü)
     ModifMenu=Menüü muutmine
     DeleteMenu=Kustuta menüükanne
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=KM on tingitud:<br>- kaupade üleandmisel (arve kuupäev)<b
     OptionVatDebitOptionDesc=KM on tingitud:<br>- kaupade üleandmisel (arve kuupäev)<br>- arve esitamisel (deebet) teenuste eest
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Käibemaksu kõlbulikuks arvestamise vaikimisi aeg vastavalt määratletud seadetele:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Üleandmisel
     OnPayment=Maksmisel
     OnInvoice=Arve esitamisel
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Ostukonto kood
     AgendaSetup=Tegevuste ja päevakava mooduli seadistamine
     PasswordTogetVCalExport=Ekspordilingi autoriseerimise võti
     PastDelayVCalExport=Ära ekspordi tegevusi, mis on vanemad kui
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Seda liiki sündmus lisatakse automaatselt vaate otsingufiltrisse
    -AGENDA_DEFAULT_FILTER_STATUS=Seda liiki tegevuse staatus lisatakse automaatselt päevakava otsingufiltrisse
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Vaikimisi avatav sakk päevakava avamisel
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial mooduli seadistamine
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Müügikoht
     CashDeskSetup=Müügikoha mooduli seadistamine
    -CashDeskThirdPartyForSell=Vaikimisi kasutatav kolmas isik müümisel
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Sularahamaksete vastu võtmiseks kasutatav konto
     CashDeskBankAccountForCheque= Tšekimaksete vastu võtmiseks kasutatav konto
     CashDeskBankAccountForCB= Krediitkaardimaksete vastu võtmiseks kasutatav konto
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Järjehoidjate mooduli seadistamine
    -BookmarkDesc=See moodul võimaldab Sul hallata järjehoidjaid. Samuti võib vasakusse menüüsse lisada lühiteid suvalistele Dolibarri lehtedele või välistele lehtedele.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maksimaalne vasakus menüüs näidatav järjehoidjate arv
     ##### WebServices #####
     WebServicesSetup=Veebiteenuste mooduli seadistamine
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Mitme ettevõtte mooduli seadistamine
     ##### Suppliers #####
     SuppliersSetup=Hankijate mooduli seadistamine
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Ostuarvete numeratsiooni mudel
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Projektide mooduli seadistamine
     ProjectsModelModule=Projektiaruannete dokumendi mudel
     TasksNumberingModules=Ülesannete numeratsiooni moodu
     TaskModelModule=Ülesannete aruande dokumendi mudel
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=Ajavööndi parandus
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Postiindeks
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/et_EE/banks.lang b/htdocs/langs/et_EE/banks.lang
    index 255d02951c3..8a259c319af 100644
    --- a/htdocs/langs/et_EE/banks.lang
    +++ b/htdocs/langs/et_EE/banks.lang
    @@ -7,7 +7,7 @@ BankName=Panga nimi
     FinancialAccount=Konto
     BankAccount=Pangakonto
     BankAccounts=Pangakontod
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Finantskonto viide
     AccountLabel=Finantskonto silt
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Konto aadress
     BankAccountCountry=Konto riik
     BankAccountOwner=Konto omaniku nimi
     BankAccountOwnerAddress=Konto omaniku aadress
    -RIBControlError=Väärtuste terviklikkuse kontroll luhtus. Sisestatud kontonumber on vigane või kehtetu (kontrolli üle riik, numbrid ja IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Loo uus konto
     NewBankAccount=Uus konto
     NewFinancialAccount=Uus finantskonto
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Saab viia vastavusse
     Conciliate=Vii vastavusse
     Conciliation=Vastavusse viimine
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Sh suletud tehingute summad
     OnlyOpenedAccount=Ainult avatud tehingud
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Pangaülekanne
     BankTransfers=Pangaülekanded
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Kust
     TransferTo=Kuhu
     TransferFromToDone=Kanne kontolt <b>%s</b> kontole <b>%s</b> väärtuses <b>%s</b> %s on registreeritud.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Pangatšekid
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Näita tšeki deponeerimise kviitungit
    -NumberOfCheques=Tšekkide arv
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Tagasi konto juurde
     ShowAllAccounts=Näita kõigil kontodel
    -FutureTransaction=Tehing toimub tulevikus, ajaline ühitamine pole võimalik.
    -SelectChequeTransactionAndGenerate=Vali välja tšekid, mida lisada tšeki deponeerimise kinnitusse ning klõpsa "Loo" nupul.
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Lõpuks vali kategooria, mille alla kanded klassifitseerida
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/et_EE/bills.lang b/htdocs/langs/et_EE/bills.lang
    index eabdb32fb5a..58c42d84e56 100644
    --- a/htdocs/langs/et_EE/bills.lang
    +++ b/htdocs/langs/et_EE/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma arve
     InvoiceProFormaDesc=<b>Proforma arve</b> on õige arve kujuga, kuid ei oma raamatupidamislikku tähendust.
     InvoiceReplacement=Parandusarve
     InvoiceReplacementAsk=Parandusarve asendab arve
    -InvoiceReplacementDesc=<b>Asendusarvet</b> kasutatakse tasumata arve tühistamiseks ja asendamiseks. <br><br> Tähelepanu: ainult tasumata arveid saab asendada.  Kui asendatav arve pole juba suletud, siis see suletakse automaatselt ja märgitakse tühistatuks.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Kreeditarve
     InvoiceAvoirAsk=Kreeditarve parandab arve
    -InvoiceAvoirDesc=<b>Kreeditarve</b> on negatiivne arve, mida kasutatakse sellise probleemi lahendamiseks, kus arve summa ja reaalselt tasutud summa erinevad (kuna klient maksis ekslikult liiga palju või ei maksnud kõike ära, kuna ta tagastas mõned tooted).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Loo kreeditarve algse arve ridade põhjal
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Tagasi makstud
     DeletePayment=Kustuta makse
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Hankijate maksed
     ReceivedPayments=Laekunud maksed
     ReceivedCustomersPayments=Klientidelt laekunud maksed
    -PayedSuppliersPayments=Hankijatele sooritatud maksed
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Klientidelt laekunud maksed, mida kinnitada
     PaymentsReportsForYear=Maksete aruanded %s jaoks
     PaymentsReports=Maksete aruanded
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Maksetingimused
     PaymentAmount=Makse summa
     ValidatePayment=Kinnita makse
     PaymentHigherThanReminderToPay=Makse on suurem, kui makstava summa jääk
    -HelpPaymentHigherThanReminderToPay=Tähelepanu, ühe või rohkema arve makse summa on kõrgem kui makstava summa jääk.<br>Muuda oma kannet või muul juhul kinnita see ja mõtle iga enammakstud arvega seotud kreeditarve loomisele.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Liigita 'Makstud'
     ClassifyPaidPartially=Liigita 'Osaliselt makstud'
     ClassifyCanceled=Liigita 'Hüljatud'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Suletud (maksmata)
     BillStatusClosedPaidPartially=Makstud (osaliselt)
     BillShortStatusDraft=Mustand
     BillShortStatusPaid=Makstud
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Makstud
     BillShortStatusCanceled=Hüljatud
     BillShortStatusValidated=Kinnitatud
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Suletud
     BillShortStatusClosedPaidPartially=Makstud (osaliselt)
     PaymentStatusToValidShort=Kinnitada
    -ErrorVATIntraNotConfigured=Ühendusesisest KM numbrit pole veel määratletud
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Vaikimisi makseviisi pole määratletud. Mine mooduli Arved seadistusse selle parandamiseks.
     ErrorCreateBankAccount=Loo pangakonto ja seejärel mine Arved mooduli seadistuspaneeli makseviiside määratlemiseks.
     ErrorBillNotFound=Arvet %s ei ole
    -ErrorInvoiceAlreadyReplaced=Viga: proovid kinnitada arvet arve %s asendamiseks, aga see on juba asendatud arvega %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Viga: allahindlust on juba kasutatud
     ErrorInvoiceAvoirMustBeNegative=Viga: õige arve peab olema negatiivse summaga
     ErrorInvoiceOfThisTypeMustBePositive=Viga: sellist tüüpi arve peab olema positiivse summaga
     ErrorCantCancelIfReplacementInvoiceNotValidated=Viga: ei saa tühistada arvet, mis on asendatud arvega, mis on veel mustandi staatuses
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Kellelt
     BillTo=Kellele
     ActionsOnBill=Tegevused arvel
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Halb klient
     ConfirmClassifyPaidPartiallyReasonProductReturned=Tooted osaliselt tagastatud
     ConfirmClassifyPaidPartiallyReasonOther=Summa hüljatud muul põhjusel
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=See valik on võimalik, kui arvele on lisatud sobiv kommentaar. (Näiteks: «Ainult tegelikult makstud hinnale vastav maks annab õiguse mahaarvamiseks»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Mõnedes riikides võib see valik võimalik olla vaid siis, kui arve sisaldab õiget märkust.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Kasuta seda valikut, kui ükski muu ei sobi
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Halb klient</b> on klient, kes keeldub oma võla maksmisest.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Seda valikut kasutatakse siis, kui tegu on mittetäieliku maksega, kuna osa kaupa tagastati
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Kasuta seda valikut, kui ükski muu ei sobi, näiteks järgmises olukorras:<br>- makse ei ole täielik, kuna osa kaupa saadeti tagasi<br>- summa on liiga tähtis, kuna unustati rakendada allahindlust<br>Kõikidel juhtudel tuleb enam makstud summa raamatupidamises korrigeerida kreeditarve abil.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Muu
     ConfirmClassifyAbandonReasonOtherDesc=Seda valikut kasutatakse kõigil muudel juhtudel. Näiteks siis, kui plaanid kasutada arve asendamist.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Kinnita arve
     UnvalidateBill=Muuda arve lahtiseks
    -NumberOfBills=Arveid
    -NumberOfBillsByMonth=Arveid kuus
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Arvete summa
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Arvete summa kuus (maksudeta)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Näita arvet
    @@ -260,9 +262,9 @@ Repeatables=Mallid
     ChangeIntoRepeatableInvoice=Muuda arve malliks
     CreateRepeatableInvoice=Loo arve mall
     CreateFromRepeatableInvoice=Loo arve mallist
    -CustomersInvoicesAndInvoiceLines=Müügiarved ja arvete read
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Müügiarved ja maksed
    -ExportDataset_invoice_1=Müügiarvete nimekiri ja arvete read
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Müügiarved ja maksed
     ProformaBill=Proforma arve:
     Reduction=Vähendus
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Arve aadress
    -HelpEscompte=Kliendile anti see soodustus, kuna ta maksis enne tähtaega.
    -HelpAbandonBadCustomer=Sellest summast on loobutud (kuna tegu olevat halva kliendiga) ning on loetud erandlikuks kaotuseks.
    -HelpAbandonOther=Sellest summast on loobutud, kuna tegu oli veaga (näiteks: vale klient või arve on asendatud teisega).
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Makse ID
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Ühtki arvet pole valitud
     CloneInvoice=Klooni arve
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Tegevus blokeeritud, kuna arve on asendatud
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Maksete arv
    +DescTaxAndDividendsArea=Siin on näidatud kõikide kulude eest sooritatud maksete ülevaade. Näidatakse vaid kandeid, millega seotud makse on sooritatud määratud aastal.
    +NbOfPayments=No. of payments
     SplitDiscount=Jaota allahindlus kaheks
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Sisesta kahe erineva osa summad:
    -TotalOfTwoDiscountMustEqualsOriginal=Kahe uue allahindluse summa peab olema võrdne vana allahindluse summaga.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Seotud arve
     RelatedBills=Seotud arved
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Tšekk
     PaymentTypeShortCHQ=Tšekk
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On-line makse
    -PaymentTypeShortVAD=On-line makse
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Mustand
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Pangarekvisiidid
     BankCode=Panga kood
    -DeskCode=Laua kood
    +DeskCode=Office code
     BankAccountNumber=Konto number
    -BankAccountNumberKey=Võti
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Tasumine ülekandega järgmisele pangakontole
     VATIsNotUsedForInvoice=* Ei kohaldata käibemaksu art-293B CGI
     LawApplicationPart1=Seaduse 80.335 kuupäeval 12/05/80 kohaldamisega
     LawApplicationPart2=kaup jääb varaks
    -LawApplicationPart3=müüja kuni täieliku tasumiseni
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=oma hind.
     LimitedLiabilityCompanyCapital=SARL kapitaliga
     UseLine=Rakenda
    @@ -463,7 +465,7 @@ Cheques=Tšekid
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Kasuta arvete saatmiseks kliendi arveaadressi kolmanda isiku aadressi asemel
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Näita kõiki maksmata arved
     ShowUnpaidLateOnly=Näita ainult hilinenud maksmata arveid
     PaymentInvoiceRef=Tasumine arvel %s
    @@ -474,21 +476,22 @@ Reported=Hilinenud
     DisabledBecausePayments=Pole võimalik, kuna on mõningaid makseid
     CantRemovePaymentWithOneInvoicePaid=Ei saa makset eemaldada, kuna vähemalt üks arve on märgitud makstuks
     ExpectedToPay=Oodatud makse
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Makstud selle maksega
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Liigita kõik täielikult tagasi makstud kreeditarved makstuks.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Kõik arved, mille kohta ei ole makstavat jääki, märgitakse makstuks.
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Maksa
     ToMakePaymentBack=Maksa tagasi
     ListOfYourUnpaidInvoices=Maksmata arvete nimekiri
     NoteListOfYourUnpaidInvoices=Märkus: see nimekiri sisaldab vaid nende kolmandate isikute arveid, kelle jaoks Sa oled märgitud müügiesindajaks.
     RevenueStamp=Maksumärk
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=PDF mall Crabe arvete jaoks. Täielik arve mall (soovitatav mall).
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Tagastab numbri formaadiga %syymm-nnnn tavaliste arvete jaoks ja %syymm-nnnn kreeditarvete jaoks, kus yy on aasta, mm on kuu ja nnnn on katkestusteta jada, mis ei lähe kunagi 0 tagasi.
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/et_EE/cashdesk.lang b/htdocs/langs/et_EE/cashdesk.lang
    index 4c6bb1acc1e..e0989ae0bd1 100644
    --- a/htdocs/langs/et_EE/cashdesk.lang
    +++ b/htdocs/langs/et_EE/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Näita ettevõtet
     ShowStock=Näita ladu
     DeleteArticle=Klõpsa selle artikli eemaldamiseks
     FilterRefOrLabelOrBC=Otsi (viide/nimi)
    -UserNeedPermissionToEditStockToUsePos=Hetkeseadistuste järgi vähendatakse laoseisu arve loomisel, seega peab kassa kasutajal olema õigus laoseisu muutmiseks.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Kassa
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/et_EE/commercial.lang b/htdocs/langs/et_EE/commercial.lang
    index 9f2d984aae7..fc16424b5a1 100644
    --- a/htdocs/langs/et_EE/commercial.lang
    +++ b/htdocs/langs/et_EE/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefonikõne
     ActionAC_FAX=Saada faks
     ActionAC_PROP=Saada pakkumine e-postiga
     ActionAC_EMAIL=Saada e-kiri
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Koosolekud
     ActionAC_INT=Sekkumine koha peal
     ActionAC_FAC=Saada kliendi arve posti teel
    @@ -72,8 +73,8 @@ StatusProsp=Huviliste staatus
     DraftPropals=Mustandi staatuses olevad pakkumised
     NoLimit=Piirangut pole
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/et_EE/companies.lang b/htdocs/langs/et_EE/companies.lang
    index 6922c531961..316db9e838d 100644
    --- a/htdocs/langs/et_EE/companies.lang
    +++ b/htdocs/langs/et_EE/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Vali kolmas isik
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Kustuta kontakt/aadress
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=Uus kolmas isik
    -MenuNewCustomer=Uus klient
    -MenuNewProspect=Uus huviline
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Uus eraisik
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Uus kolmas isik
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Kolmanda isiku kontakt/aadress
     Company=Ettevõte
     CompanyName=Ettevõtte nimi
     AliasNames=Hüüdnimi (ärinimi, kaubamärk, ...)
    -AliasNameShort=Hüüdnimi
    +AliasNameShort=Alias Name
     Companies=Ettevõtted
    -CountryIsInEEC=Riik on Euroopa Majandusühenduse liige
    -ThirdPartyName=Kolmanda isiku nimi
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Kolmas isik
    -ThirdParties=Kolmandad isikud
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Huvilised
     ThirdPartyProspectsStats=Huvilised
     ThirdPartyCustomers=Kliendid
     ThirdPartyCustomersStats=Kliendid
     ThirdPartyCustomersWithIdProf12=Klient koos %s või %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Kolmanda isiku tüüp
    +ThirdPartyType=Type of company
     Individual=Eraisik
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Emaettevõte
     Subsidiaries=Tütarettevõtted
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Postiindeks
     Town=Linn
     Web=Veeb
     Poste= Ametikoht
    -DefaultLang=Vaikimisi keel
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Pakkumised
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Süntaks on kehtiv
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Sellel kliendil on vaikimisi allahindlus <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Sellel kliendil pole vaikimisi allahindlust
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Kliendil on kreeditarveid <b>%s %s</b> väärtuses
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Pole
    -Supplier=Hankija
    +Supplier=Vendor
     AddContact=Uus kontakt
     AddContactAddress=Uus kontakt/aadress
     EditContact=Muuda kontakti
    @@ -303,22 +303,22 @@ AddThirdParty=Uus kolmas isik
     DeleteACompany=Kustuta ettevõte
     PersonalInformations=Isikuandmed
     AccountancyCode=Accounting account
    -CustomerCode=Kliendi kood
    -SupplierCode=Vendor code
    -CustomerCodeShort=Kliendi kood
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Kliendi kood, igale kliendile unikaalne
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Nõutud, kui kolmas isik on klient või huviline
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Kehtivust kontrollib moodul
    -ThisIsModuleRules=Reeglid sellele moodulile
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Huviline, kellega ühendust võtta
     CompanyDeleted=Ettevõte &quot;%s&quot; on andmebaasist kustutatud.
     ListOfContacts=Kontaktide/aadresside nimekiri
     ListOfContactsAddresses=Kontaktide/aadresside nimekiri
    -ListOfThirdParties=Kolmandate isikute nimekiri
    -ShowCompany=Show third party
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Näita kontakti
     ContactsAllShort=Kõik (filtrita)
     ContactType=Kontakti liik
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=See kontakt ei ole ühegi pakkumisega seotud
     NoContactForAnyContract=See kontakt ei ole ühegi lepinguga seotud
     NoContactForAnyInvoice=See kontakt ei ole ühegi arvega seotud
     NewContact=Uus kontaktisik
    -NewContactAddress=Uus kontakt/aadress
    +NewContactAddress=New Contact/Address
     MyContacts=Minu kontaktid
     Capital=Kapital
     CapitalOf=%s kapital
     EditCompany=Muuda ettevõtet
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Kontrolli
    -VATIntraCheckDesc=Link <b>%s</b> võimaldab kasutada Euroopa käibemaksuregistri kontrollija teenust. Veebiserverile peab olema lubatud Interneti teenuse kasutamine.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Kontrolli Intracomunnautary VAT Euroopa komisjoni lehelt
    -VATIntraManualCheck=Seda võib käsitsi kontrollida Euroopa veebilehel <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Kontrollida pole võimalik. Kontrolli, et liikmesriik (%s) võimaldab teenust kasutada.
    -NorProspectNorCustomer=Pole huviline ega klient
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Personal
     ProspectLevelShort=Potentsiaalne
     ProspectLevel=Huvilise potentsiaal
    @@ -387,12 +387,12 @@ ExportCardToFormat=Ekspordi kaart formaati
     ContactNotLinkedToCompany=Kontakt ole seotud ühegi kolmanda isikuga
     DolibarrLogin=Dolibarri kasutaja
     NoDolibarrAccess=Dolibarri ligipääs puudub
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Kontaktid ja omadused
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Hinnatase
     DeliveryAddress=Tarneaadress
     AddAddress=Lisa aadress
    @@ -402,16 +402,16 @@ DeleteFile=Kustuta fail
     ConfirmDeleteFile=Oled sa kindel, et soovid selle faili kustutada?
     AllocateCommercial=Assigned to sales representative
     Organization=Organisatsioon
    -FiscalYearInformation=Majandusaasta informatsioon
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Majandusaasta esimene kuu
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Huviliste nimekiri
    -ListCustomersShort=Klientide nimekiri
    -ThirdPartiesArea=Kolmandate isikute ja kontaktide ala
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Kokku unikaalseid kolmandaid isikuid
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Ava
     ActivityCeased=Suletud
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Hetkel maksmata summa
     OutstandingBill=Suurim võimalik maksmata arve
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Kood on vaba, seda saab igal ajal muuta.
     ManagingDirectors=Haldaja(te) nimi (CEO, direktor, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/et_EE/dict.lang b/htdocs/langs/et_EE/dict.lang
    index e72204f69d8..ee56d2b3da7 100644
    --- a/htdocs/langs/et_EE/dict.lang
    +++ b/htdocs/langs/et_EE/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island ja McDonald
     CountryVA=Vatikan (Püha Tool)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Island
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indoneesia
     CountryIR=Iraan
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Põhja-Korea
     CountryKR=Lõuna-Korea
     CountryKW=Kuveit
    -CountryKG=Kõrgõzstan
    +CountryKG=Kyrgyzstan
     CountryLA=Laos
     CountryLV=Läti
     CountryLB=Liibanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongoolia
     CountryMS=Monserrat
     CountryMZ=Mosambiik
    -CountryMM=Birma (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namiibia
     CountryNR=Nauru
     CountryNP=Nepaal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad ja Tobago
     CountryTR=Türgi
     CountryTM=Türkmenistan
    -CountryTC=Turks ja Cailos saared
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritiuse ruupia
     CurrencySingMUR=Mauritiuse ruupia
     CurrencyNOK=Norra kroonid
    -CurrencySingNOK=Norra kroon
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tuneesia dinaarid
     CurrencySingTND=Tuneesia dinaar
     CurrencyUSD=USA dollarid
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Suusõnaline
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Töötaja
     DemandReasonTypeSRC_SPONSORING=Sponsorlus
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=4A0 formaat
     PaperFormatEU2A0=2A0 formaat
    diff --git a/htdocs/langs/et_EE/ecm.lang b/htdocs/langs/et_EE/ecm.lang
    index 4e3f49f469d..4e49c8f289b 100644
    --- a/htdocs/langs/et_EE/ecm.lang
    +++ b/htdocs/langs/et_EE/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Dokumente kaustas
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Kaust
     ECMSectionManual=Kaust käsitsi
     ECMSectionAuto=Kaust automaatselt
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Projektidega seotud dokumendid
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Ühtki kausta pole loodud
     ShowECMSection=Näita kausta
     DeleteSection=Eemalda kaust
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/et_EE/errors.lang b/htdocs/langs/et_EE/errors.lang
    index 692d1a573b3..a1998490bce 100644
    --- a/htdocs/langs/et_EE/errors.lang
    +++ b/htdocs/langs/et_EE/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Väärtus '%s' on vales kuupäeva vormingus
     ErrorWrongDate=Kuupäev pole korrektne!
     ErrorFailedToWriteInDir=Ei suutnud kirjutada kausta %s
     ErrorFoundBadEmailInFile=Failis on %s real ebaõige e-posti aadressi süntaks (näiteks on rida %s aadress=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Mõned nõutud väljad on täitmata.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Kausta loomine ebaõnnestus. Kontrolli, et veebiserveri kasutajal on piisavalt õigusi Dolibarri dokumentide kausta kirjutamiseks. Kui PHP <b>safe_mode</b> parameeter on sisse lülitatud, siis kontrolli, et veebiserveri kasutaja (või grupp) on Dolibarri PHP failide omanik.
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Palun sisesta nimekirja väärtused
     ErrorNoValueForCheckBoxType=Palun sisesta märkenuppude väärtused
     ErrorNoValueForRadioType=Palun sisesta raadionuppude väärtused
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Väli <b>%s</b> ei tohi sisaldada erisümboleid.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Ühtki raamatupidamise moodulit pole aktiveeritud
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP sobitamine ei ole täielik.
     ErrorLDAPMakeManualTest=Kausta %s on loodud .ldif fail. Vigade kohta lisainfo saamiseks proovi selle käsitsi käsurealt laadimist.
    -ErrorCantSaveADoneUserWithZeroPercentage=Ülesanne, mille staatuseks on 'Alustamata' ei saa salvestada, kui väli "Tegevuse teinud isik" on samuti täidetud.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Loomiseks kasutatav viide on juba olemas.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Selle võimaluse töötamiseks peab JavaScript olema sisse lülitatud. JavaScripti sisse või välja lülitamiseks kasuta menüüd Kodu->Seadistamine->Kuva.
     ErrorPasswordsMustMatch=Sisestatud paroolid peavad klappima
    -ErrorContactEMail=Tekkis tehniline viga. Palun võta ühendust oma administraatoriga e-posti aadressil <b>%s</b> ning lisa sõnumisse vea kood <b>%s</b> või veel parem oleks lisada sõnumisse antud lehe kuvatõmmis.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Väli number <b>%s</b> sisaldab vale väärtust (väärtus'<b>%s</b>' ei sobi regulaaravaldisega <b>%s</b>)
     ErrorFieldValueNotIn=Väli number <b>%s</b> sisaldab vale väärtust (väärtus '<b>%s</b>' ei sobi välja <b>%s</b> tüübiga tabelis <b>%s</b>)
     ErrorFieldRefNotIn=Väli number <b>%s</b> sisaldab vale väärtust (väärtus '<b>%s</b>' ei ole üksuse <b>%s</b> olemasolev viide)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Antiviiruse programm ei suutnud faili valideerida
     ErrorSpecialCharNotAllowedForField="%s" väljal ei ole erisümbolid lubatud
     ErrorNumRefModel=Andmebaasi viide on juba olemas (%s) ja ei ole kooskõlas antud numeratsiooni reegliga. Kustuta kirje või nimeta viide ümber antud mooduli aktiveerimiseks.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Maski viga
     ErrorBadMaskFailedToLocatePosOfSequence=Viga: mask on järjekorranumbrita
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Viga: halb lähteväärtus
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Viga: vali vähemalt üks sissekanne
    -ErrorDeleteNotPossibleLineIsConsolidated=Kustutamine ei ole võimalik, kuna kirje on seotud juba vastavusse viidud pangaülekandega
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s on määratud muule kolmandale isikule
     ErrorFailedToSendPassword=Parooli saatmine ebaõnnestus
     ErrorFailedToLoadRSSFile=RSS voo saamine ebaõnnestus. Proovi konstandi MAIN_SIMPLEXMLLOAD_DEBUG lisamist, kui veateated ei anna piisavalt infot
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Kasutajanime <b>%s</b> ei leitud.
     ErrorLoginHasNoEmail=Antud kasutajal ei ole e-posti aadressi. Protsess katkestatud.
     ErrorBadValueForCode=Turvakoodi halb väärtus. Proovi uuesti...
     ErrorBothFieldCantBeNegative=Mõlemad väljad %s ja %s ei saa olla negatiivse väärtusega
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Veebiserveri käivitamiseks kasutataval kontrol <b>%s</b> ei ole selleks õigusi
     ErrorNoActivatedBarcode=Ühtki vöötkoodi tüüpi pole aktiveeritud
    @@ -138,7 +141,7 @@ ErrorBadFormat=Vigane vorming!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Kohustuslikud seadistusparameetrid on määratlemata
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Selle nimega või lingiga (URL) järjehoidja on jub
     WarningPassIsEmpty=Hoiatus: andmebaasi parool on tühi. Tegu on turvaauguga. Andmebaasile peaks lisama parooli ja conf.php failis andmebaasi parooli muutma.
     WarningConfFileMustBeReadOnly=Hoiatus: seadistuste fail (<b>htdocs/conf/conf.php</b>) on veebiserveri poolt ülekirjutatav. Tegu on tõsise turvaauguga. Muuda faili ligipääsuõigusi niimoodi, et veebiserveri poolt kasutataval operatsioonisüsteemi kasutajal on vaid lugemisõigused. Kui kasutad Windowsi operatsioonisüsteemi FAT-failisüsteemiga, siis tea, et see failisüsteem ei luba failide ligipääsuõigusi ning ei ole seega turvaline.
     WarningsOnXLines=<b>%s</b> lähtekirjega on seotud hoiatus(ed)
    -WarningNoDocumentModelActivated=Ühtki dokumentide loomise malli pole aktiveeritud. Mooduli seadistuse muutmiseni kasutatakse vaikimisi malli
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Hoiatus: kui paigaldamine on lõpetatud, pead paigaldamise/migreerimise tööriistad keelama, lisades faili <b>install.lock</b> kausta <b>%s</b>. Selle faili loomata jätmine on turvarisk.
    -WarningUntilDirRemoved=Kõik turvahoiatused (nähtavad vaid administraatorile) jäävad aktiivseks senikaua, kuni turvarisk on eemaldatud (või konstant MAIN_REMOVE_INSTALL_WARNING lisatakse Seadistamine->Muud seadistused alla).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Hoiatus: sulgemine toimub isegi siis, kui lähte- ja sihtelementide summa erineb. Lülita see funktsioon sisse ainult siis, kui tead, mida teed.
     WarningUsingThisBoxSlowDown=Hoiatus: selle kasti kasutamine muudab kõik seda kasti kasutavad lehed märgatavalt aeglaseks.
     WarningClickToDialUserSetupNotComplete=Sinu kasutaja ClickToDial info seadistamine ei ole lõpetatud (vaata oma kasutaja kaardi ClickToDial sakki).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/et_EE/help.lang b/htdocs/langs/et_EE/help.lang
    index 4cb2f989aca..888a44b15e6 100644
    --- a/htdocs/langs/et_EE/help.lang
    +++ b/htdocs/langs/et_EE/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online reaalaja/kaudtoe tugi
     OtherSupport=Muu tugi
     ToSeeListOfAvailableRessources=Kontakteerumiseks/saadaval olevate ressursside nägemiseks:
     HelpCenter=Abiinfo
    -DolibarrHelpCenter=Dolibarri abi ja tugikeskus
    -ToGoBackToDolibarr=Muul juhul klõpsa Dolibarri kasutamiseks <a href="%s">siia</a>
    -TypeOfSupport=Toe allikas
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Kogukond (tasuta)
     TypeSupportCommercial=Äriline
     TypeOfHelp=Liik
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Tõhusus
     TypeHelpOnly=Ainult abi
     TypeHelpDev=Abi+Arendus
    -TypeHelpDevForm=Abi+Arendus+Rakendamine
    -ToGetHelpGoOnSparkAngels1=Mõned ettevõtted pakuvad kiiret (vahepeal kohest) ja tõhusat online abi arvutit juhtides. Neid ettevõtteid leiab  <b>%s</b> veebilehelt:
    -ToGetHelpGoOnSparkAngels3=Samuti võid kasutada kõigi saadavalolevate Dolibarri koolitajate nimekirja, selleks klõpsa nupule
    -ToGetHelpGoOnSparkAngels2=Vahepeal ei ole otsingu tegemise hetkel ühtki ettevõtet saadaval, seega võid kasutada filtrit "kõik saadval", et rohkemate ettevõtete järele pärida.
    -BackToHelpCenter=Muul juhul klõpsa <a href="%s">siia, et minna tagasi abiinfo kodulehele</a>.
    -LinkToGoldMember=Võid helistada ühele Dolibarri poolt eelvalitud koolitajale Sinu keele (%s) jaoks tema vidinal klõpsates (staatust ja maksimaalset hinda uuendatakse automaatselt):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Toetatud keeled
    -SubscribeToFoundation=Aita Dolibarri projekti, liitu sihtasutusega
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Ametlikuks Dolibarri toeks Sinu keeles: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/et_EE/holiday.lang b/htdocs/langs/et_EE/holiday.lang
    index 3e92f4d40a1..f810d3a8825 100644
    --- a/htdocs/langs/et_EE/holiday.lang
    +++ b/htdocs/langs/et_EE/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=Personalihaldus
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Kuu aruanne
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Alguskuupäev
     DateFinCP=Lõppkuupäev
    @@ -15,13 +15,18 @@ ApprovedCP=Heaks kiidetud
     CancelCP=Tühistatud
     RefuseCP=Keeldutud
     ValidatorCP=Heaks kiitja
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Kirjeldus
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Lõppkuupäev peab olema alguskuupäevast suurem.
     ErrorSQLCreateCP=Loomisel tekkis SQLi viga:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Informatsiooni töövoog
     RequestByCP=Taotles
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Muuda
     DeleteCP=Kustuta
     ActionRefuseCP=Keeldu
    @@ -59,6 +71,7 @@ DateRefusCP=Keeldumise kuupäev
     DateCancelCP=Tühistamise kuupäev
     DefineEventUserCP=Määra kasutajale erakorraline puhkus
     addEventToUserCP=Määra puhkus
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Põhjus
     UserCP=Kasutaja
     ErrorAddEventToUserCP=Erakorralise puhkuse lisamisel tekkis viga
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Edukalt uuendatud.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/et_EE/install.lang b/htdocs/langs/et_EE/install.lang
    index 7da4352d7df..f54e9f01eaf 100644
    --- a/htdocs/langs/et_EE/install.lang
    +++ b/htdocs/langs/et_EE/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Palun järgige samm-sammult antavaid juhiseid.
     MiscellaneousChecks=Eelduste kontroll
     ConfFileExists=Seadistusfail <b>%s</b> on juba olemas.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Seadistusfaili <b>%s</b> pole olemas ning selle koostamine ebaõnnestus!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Seadistusfaili <b>%s</b> loomine on võimalik.
    -ConfFileIsNotWritable=Seadistusfailil <b>%s</b> puudub kirjutamise õigus. Palun kontrolli õigusi. Esmapaigalduseks peab veebiserver saama sellesse faili seadistamise ajal kirjutada (näiteks &quot;chmod 666&quot; Unixi laadsetel operatsioonisüsteemidel).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Seadistusfail <b>%s</b> on kirjutatav.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Lae kogu informatsioon seadistusfailist uuesti.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Antud PHP toetab sessioone.
     PHPSupportPOSTGETOk=Antud PHP toetab POST ja GET muutujaid.
    -PHPSupportPOSTGETKo=On võimalik, et antud PHP seadistus ei toeta POST ja/või GET muutujaid. Kontrolli php.ini failis parameetri <b>variables_order</b> väärtust.
    -PHPSupportGD=Antud PHP toetab GD graafilisi funktsioone.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=Antud PHP toetab UTF8 funktsioone.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Antud PHP poolt kasutatav sessiooni maksimaalne mälu on <b>%s</b>. See peaks olema piisav.
    -PHPMemoryTooLow=PHP poolt kasutatav sessiooni maksimaalne mälu on <b>%s</b> baiti, mis on tõenäoselt liiga madal. Muuda <b>php.ini</b> failis <b>memory_limit</b> parameetrit vähemalt <b>%s</b> baidi suuruseks.
    -Recheck=Klõpsa siia põhjalikumaks testiks
    -ErrorPHPDoesNotSupportSessions=Antud PHP paigaldus ei toeta sessioone. Dolibarri töötamiseks peavad sessioonid olema võimaldatud. Kontrolli oma PHP paigaldust.
    -ErrorPHPDoesNotSupportGD=Antud PHP paigaldus ei toeta GD graafilisi funktsioone. Ühtki graafikut ei saa kasutada.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Antud PHP paigaldus ei toeta UTF8 funktsioone. Dolibarr ei saa korralikult töötada. Palun lahenda see probleem enne Dolibarri paigaldamist.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Kausta %s ei ole olemas.
    -ErrorGoBackAndCorrectParameters=Mine tagasi ja parandada valed parameetrid.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Parameetri &quot;%s&quot; väärtus on ilmselt valesti sisestatud.
     ErrorFailedToCreateDatabase=Ei suutnud luua andmebaasi '%s &quot;.
     ErrorFailedToConnectToDatabase=Ei suutnud ühenduda andmebaasiga &quot;%s&quot;.
     ErrorDatabaseVersionTooLow=Andmebaasi versioon (%s) on liiga vana. Vaja on versiooni %s või kõrgemat.
     ErrorPHPVersionTooLow=PHP versioon on liiga vana. Vaja on versiooni %s.
    -ErrorConnectedButDatabaseNotFound=Ühendus serveriga oli edukas, kuid andmebaasi &quot;%s&quot; ei leitud.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Andmebaas '%s &quot; on juba olemas.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Kui andmebaasi ei ole, mine tagasi ja märgista &quot;Loo andmebaas&quot;.
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Kui andmebaas on juba olemas, mine tagasi ja võta märge &quot;Loo andmebaas&quot; maha.
    -WarningBrowserTooOld=Liiga vana versiooni brauser. Brauseri uuendamine hiljutisele Firefoxi, Chromei või Opera versioonile on soovitav.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP versioon
     License=Kasutab litsentsi
     ConfigurationFile=Seadistusfail
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarri andmebaas
     DatabaseType=Andmebaasi tüüp
     DriverType=Draiveri tüüp
     Server=Server
    -ServerAddressDescription=Andmebaasi serveri nimi või IP-aadress. Kui andmebaasiserver ja veebiserver on hostitud samas serveris, siis on see tavaliselt 'localhost'.
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Andmebaasi serveri port. Jäta tühjaks, kui see on teadmata.
     DatabaseServer=Andmebaasi server
     DatabaseName=Andmebaasi nimi
    -DatabasePrefix=Andmebaasi tabeli prefiks
    -AdminLogin=Dolibarri andmebaasi omaniku kasutajanimi.
    -PasswordAgain=Korda parooli
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Dolibarri andmebaasi omaniku parool.
     CreateDatabase=Loo andmebaas
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Andmebaasi server - administraatori ligipääs
    -CheckToCreateDatabase=Märgista ruut, kui andmebaasi ei ole veel olemas ja see tuleb luua. <br>Sellisel juhul tuleb antud lehe alumises osas täita andmebaasi administraatori kasutajanimi ja parool.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Kui andmebaasi või selle omanikku ei ole olemas, peab siia sisestama sellise kasutaja kasutajanime, kellel on lubatud luua uusi andmebaase või kasutajaid.
    -KeepEmptyIfNoPassword=Jäta tühjaks, kui kasutajal pole parooli (väldi seda)
    -SaveConfigurationFile=Salvesta väärtused
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Serveri ühendus
     DatabaseCreation=Andmebaasi loomine
     CreateDatabaseObjects=Andmebaasi objektide loomine
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Loo välisvõtmed ja indeksid tabelile %s
     OtherKeysCreation=Välisvõtmete ja indeksite loomine
     FunctionsCreation=Funktsioonide loomine
     AdminAccountCreation=Administraatori kasutaja loomine
    -PleaseTypePassword=Palun sisesta parool, tühjad paroolid ei ole lubatud!
    -PleaseTypeALogin=Palun sisesta kasutajanimi!
    -PasswordsMismatch=Paroolid erinevad, palun proovi uuesti!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Paigaldamise lõpp
     SystemIsInstalled=Paigaldamine lõpetatud.
     SystemIsUpgraded=Dolibarr on edukalt uuendatud.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Dolibarri peab muutma oma vajadustele vastavaks (väli
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Mine Dolibarri
     GoToSetupArea=Mine Dolibarri (seadistusala)
    -MigrationNotFinished=Andmebaasi versioon ei ole täielikult ajakohane, seega pead uuendusprotsessi uuesti käivitama.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Mine uuesti uuenduste lehele
     WithNoSlashAtTheEnd=Lõpus oleva kaldkriipsuta "/"
    -DirectoryRecommendation=Soovitav on kasutada kausta, mis asub väljaspool veebilehtede säilitamise kausta.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=On juba olemas
     DolibarrAdminLogin=Dolibarri administraatori kasutajanimi
    -AdminLoginAlreadyExists=Dolibarri administraatori konto '<b>%s</b>' on juba olemas. Mine tagasi eelmisele lehele lisakasutaja loomiseks.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Hoiatus: turvalisuse huvides tuleb pärast paigaldus- või uuendusprotsessi lõpetamist lisada Dolibarri dokumentide kausta fail nimega <b>install.lock</b>. See keelab paigaldusutiliitide kasutamise, et keegi ei saaks neid pahatahtlikel eesmärkidel kasutada.
    -FunctionNotAvailableInThisPHP=Pole saadaval antud PHP paigaldusel
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Vali migratsiooni skript
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Skripti töötlemine
     ChooseYourSetupMode=Vali paigalduse režiim ja klõpsa "Start" nupule...
     FreshInstall=Värske paigaldus
    -FreshInstallDesc=Esmapaigalduse puhul kasuta seda režiimi. Muul juhul saab antud režiimi abil parandada lõpuni viimata paigaldust. Versiooni uuendamiseks vali "Uuenda" režiim.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Uuenda
     UpgradeDesc=Kasuta seda režiimi, kui tahad vanad Dolibarri failid asendada uuema versiooni failidega. See uuendab andmebaasi ja andmed.
     Start=Alusta
     InstallNotAllowed=<b>conf.php</b> failiga on paigaldus keelatud
     YouMustCreateWithPermission=Pead looma faili %s ning andma veebiserverile paigaldamisprotsessi ajaks kirjutamise õigused.
    -CorrectProblemAndReloadPage=Palun lahenda probleem ja vajuta F5 lehe värskendamiseks.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Juba migreeritud
     DatabaseVersion=Andmebaasi versioo
     ServerVersion=Andmebaasiserveri versioon
     YouMustCreateItAndAllowServerToWrite=Pead looma selle kausta ning võimaldama veebiserveril sinna kirjutada.
     DBSortingCollation=Tähtede järgi sorteerimise järjekord
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Määrasid andmebaasi <b>%s</b> loomise, kuid selleks on Dolibarril vaja ühenduda serveriga <b>%s</b> juurkasutaja <b>%s</b> õigustes.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Määrasid andmebaasi kasutaja <b>%s</b> loomise, kuid selleks on Dolibarril vaja ühenduda serveriga <b>%s</b> juurkasutaja <b>%s</b> õigustes.
    -BecauseConnectionFailedParametersMayBeWrong=Kuna ühenduse saamine ebaõnnestus, peavad hosti või juurkasutaja parameetrid valed olema.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Meetod %s avastas hüljatud makseid.
     RemoveItManuallyAndPressF5ToContinue=Eemaldada käsitsi ja vajuta jätkamiseks F5.
     FieldRenamed=Väli ümber nimetatud
    -IfLoginDoesNotExistsCheckCreateUser=Kui antud kasutajat ei ole, siis pead märgistama kasti &quot;Loo kasutaja&quot;
    -ErrorConnection=Server <b>&quot;%s&quot;</b>, andmebaasi nimi <b>&quot;%s&quot;</b>, kasutajanimi <b>&quot;%s&quot;</b> või andmebaasi parool võib olla vale või PHP kliendi versioon võib olla liiga vana andmebaasi versiooni suhtes.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Soovitatav valik on paigaldada versioon <b>%s</b> praeguse versiooni <b>%s</b> asemele
     InstallChoiceSuggested=<b>Installerija poolt soovitatav paigaldusvalik</b>
    -MigrateIsDoneStepByStep=Sihitud versiooniga (%s) on praegusega mitmeversiooniline vahe, seega soovitab paigaldusabimees pärast praeguse migratsiooni lõppu järgmise migratsiooni.
    -CheckThatDatabasenameIsCorrect=Kontrolli, et andmebaasi nimi <b>&quot;%s&quot;</b> on õige.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Kui nimi on õige ja andmebaasi pole veel loodud, siis pead märgistama kasti "Loo andmebaas".
     OpenBaseDir=PHP openbasedir parameeter
    -YouAskToCreateDatabaseSoRootRequired=Märgistasid kasti &quot;Loo andmebaas&quot;. Selle jaoks pead sisestama juurkasutaja kasutajanime ja parooli (vormi alumises osas).
    -YouAskToCreateDatabaseUserSoRootRequired=Märgistasid kasti &quot;Loo andmebaasi omanik&quot;. Selle jaoks pead sisestama juurkasutaja kasutajanime ja parooli (vormi alumises osas).
    -NextStepMightLastALongTime=Praegune samm võib kesta mitu minutit. Palun oota enne jätkamist seni, kuni järgmine ekraan on täielikult laetud.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migreeri saadetiste andmesalv
     MigrationShippingDelivery=Uuenda saadetiste andmesalv
     MigrationShippingDelivery2=Uuenda saadetiste andmesalv 2
     MigrationFinished=Migreerimine lõpetatud
    -LastStepDesc=<strong>Viimane samm:</strong> Määra siin tarkvaraga ühendumiseks kasutatav kasutajanimi ja parool. Hoia neid alles, kuna selle kontoga saab administreerida kõiki teisi kasutajaid.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Aktiveeri moodul %s
     ShowEditTechnicalParameters=Klõpsa siia lisaparameetrite näitamiseks/muutmiseks (spetsialisti režiim)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Sinu andmebaasi versioon on %s. Selles versioonis on tõsine puuk, mis põhjustab andmebaasi struktuuri muutmisel andmekadu, nagu seda teeb migratsiooni protsess. Seega ei ole migratsioon lubatud seni, kuni uuendad oma andmebaasi parandustega versioonile (teadaolevate vigaste versioonide nimekiri: %s)
    -KeepDefaultValuesWamp=Kasutad DoliWampist pärit Dolibarri paigaldusabimeest, seega on siin pakutud väärtused juba optimeeritud. Muuda neid vaid siis, kui tead täpselt, mida teed.
    -KeepDefaultValuesDeb=Kasutad Linuxi (Ubuntu, Debian, Fedora, ...) pakist pärit Dolibarri paigaldusabimeest, seega on siin pakutud väärtused juba optimeeritud. Pead sisestama vaid loodava andmebaasi omaniku parooli. Muuda teisi parameetreid vaid siis, kui tead täpselt, mida teed.
    -KeepDefaultValuesMamp=Kasutad DoliMampist pärit Dolibarri paigaldusabimeest, seega on siin pakutud väärtused juba optimeeritud. Muuda neid vaid siis, kui tead täpselt, mida teed.
    -KeepDefaultValuesProxmox=Kasutad Proxmoxi virtuaalrakendusest pärit Dolibarri paigaldusabimeest, seega on siin pakutud väärtused juba optimeeritud. Muuda neid vaid siis, kui tead täpselt, mida teed.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Pakkumiste andmete migreerimine
     MigrationInvoice=Müügiarvete andmete migreerimine
     MigrationContract=Lepingute andmete migreerimine
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Uuendamine edukalt lõpetatud
     MigrationUpdateFailed=Uuendamine ebaõnnestus
     MigrationRelationshipTables=Relatsioonide jaoks kasutatavate tabelite andmete migreerimine (%s)
     MigrationPaymentsUpdate=Makseandmete parandamine
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Lepingute andmete parandamine
     MigrationContractsNumberToUpdate=%s leping(ut) uuendada
     MigrationContractsLineCreation=Loo lepingu rida lepingule viitega %s
     MigrationContractsNothingToUpdate=Kõik tegevused lõpetatud
    -MigrationContractsFieldDontExist=Välja fk_facture ei kasutata enam. Tegevused lõpetatud.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Lepingutel olevate tühjade kuupäevade korrigeerimine.
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Lepingutel pole tühje kuupäevi, mida parandada.
     MigrationContractsEmptyCreationDatesNothingToUpdate=Lepingute loomise kuupäevi pole vaja parandada
     MigrationContractsInvalidDatesUpdate=Vigaste kuupäevadega lepingute parandamine
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Saadetise uuendamine
     MigrationStockDetail=Uuenda toodete laoväärtusi
     MigrationMenusDetail=Uuenda dünaamiliste menüüde tabelid
     MigrationDeliveryAddress=Uuenda saadetiste kohaletoimetamise aadresse
    -MigrationProjectTaskActors=Andmete migratsioon llx_projet_task_actors tabelile
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Andmete migratsiooni väli fk_user_resp tabelis llx_projet tabeliga llx_element_contact
     MigrationProjectTaskTime=Uuendamiseks kulutatud aeg sekundites
     MigrationActioncommElement=Uuenda tegevuste andmec
     MigrationPaymentMode=Maksete režiimi andmete migreerimine
     MigrationCategorieAssociation=Kategooriate migreerimine
    -MigrationEvents=Sündmuste migreerimine sündmuse omaniku lisamiseks seoste tabelisse
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Näita mitte saadaval olevaid lisavalikuid
    -HideNotAvailableOptions=Peida mitte saadaval olevad lisavalikud
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/et_EE/interventions.lang b/htdocs/langs/et_EE/interventions.lang
    index 3351e4953de..6fcfc995d21 100644
    --- a/htdocs/langs/et_EE/interventions.lang
    +++ b/htdocs/langs/et_EE/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Sekkumised
     InterventionCard=Sekkumise kaart
     NewIntervention=Uus sekkumine
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Sekkumiste nimekiri
     ActionsOnFicheInter=Sekkumise tegevused
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/et_EE/main.lang b/htdocs/langs/et_EE/main.lang
    index 6009bcbf141..154c432e179 100644
    --- a/htdocs/langs/et_EE/main.lang
    +++ b/htdocs/langs/et_EE/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=E-kirja saatmine ebaõnnestus (saatja = %s, vastuvõtja =
     ErrorFileNotUploaded=Ei õnnestunud faili üles laadida. Kontrolli järgmist: fail ei ületa lubatud suurust, serveri kettal on vaba ruumi ning sama nimega faili ei oleks samas kaustas.
     ErrorInternalErrorDetected=Tuvastati viga
     ErrorWrongHostParameter=Vigane hosti parameeter
    -ErrorYourCountryIsNotDefined=Hetkel kasutuses olev riik on määratlemata. Mine Kodu-Paigaldus-Muuda ja postita vorm uuesti.
    -ErrorRecordIsUsedByChild=Kirje kustutamine ebaõnnestus. Antud kirje on seotud vähemalt ühe tütarkirjega.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Vigane väärtus
     ErrorWrongValueForParameterX=Parameetrile %s on omistatud vigane väärtus
     ErrorNoRequestInError=Veas puudub päring
    -ErrorServiceUnavailableTryLater=Teenus ei ole hetkel kättesaadav. Palun proovi hiljem uuesti.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Unikaalsust nõudval väljal on dubleeritud väärtus
    -ErrorSomeErrorWereFoundRollbackIsDone=Töö käigus tekkisid mõned vead. Tehtud muudatused on tühistatud.
    -ErrorConfigParameterNotDefined=Parameeter <b>%s</b> ei ole Dolibarri seadistusfailis <b>conf.php</b> määratletud.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Kasutajat <b>%s</b> ei leitud Dolibarri andmebaasist.
     ErrorNoVATRateDefinedForSellerCountry=Viga: riigi '%s' jaoks ei ole käibemaksumäärasid määratletud.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Viga: faili salvestamine ebaõnnestus.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Sea kuupäev
     SelectDate=Vali kuupäev
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=Fail on edukalt üles laetud
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=Fail on valitud manustamiseks, kuid on veel üles laadimata. Klõpsa &quot;Lisa fail&quot; nupul selle lisamiseks.
    -NbOfEntries=Kannete arv
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Loe abi
     RecordSaved=Kirje salvestatud
    @@ -94,7 +94,7 @@ Undefined=Määratlemata
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=Vt eespool
    -HomeArea=Kodu ala
    +HomeArea=Kodu
     LastConnexion=Latest connection
     PreviousConnexion=Eelmine sisselogimine
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Suletud
     Closed2=Suletud
     NotClosed=Not closed
     Enabled=Lubatud
    +Enable=Lülita sisse
     Deprecated=Vananenud
     Disable=Keela
     Disabled=Keelatud
    @@ -153,7 +154,7 @@ Update=Uuenda
     Close=Sulge
     CloseBox=Remove widget from your dashboard
     Confirm=Kinnita
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Kustuta
     Remove=Eemalda
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Kopeeri
     Paste=Kleebi
     Default=Vaikimisi
     DefaultValue=Vaikeväärtus
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Hind
     PriceCurrency=Price (currency)
     UnitPrice=Ühiku hind
    @@ -347,7 +348,7 @@ AmountTTCShort=Summa (koos km-ga)
     AmountHT=Summa (maksudeta)
     AmountTTC=Summa (koos km-ga)
     AmountVAT=Maksu summa
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Ei ole kohaldatav
     ActionRunningNotStarted=Alustada
     ActionRunningShort=In progress
     ActionDoneShort=Lõpetatud
    -ActionUncomplete=Lõpuni viimata
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Selle kolmanda isikuga seotud kontaktid
     ContactsAddressesForCompany=Selle kolmanda isikuga seotud kontaktid/aadressid
     AddressesForCompany=Selle kolmanda isikuga seotud aadressid
     ActionsOnCompany=Selle kolmanda isikuga seotud tegevused
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Selle liikmega seotud tegevused
     ActionsOnProduct=Events about this product
     NActionsLate=%s hiljaks jäänud
    @@ -453,8 +455,8 @@ Generate=Loo
     Duration=Kestus
     TotalDuration=Kogukestus
     Summary=Kokkuvõte
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Saadaval
     NotYetAvailable=Pole veel saadaval
    @@ -468,7 +470,7 @@ and=ja
     or=või
     Other=Muu
     Others=Teised
    -OtherInformations=Muu informatsioon
    +OtherInformations=Other information
     Quantity=Kogus
     Qty=Kogus
     ChangedBy=Muutis
    @@ -506,7 +508,7 @@ None=Puudub
     NoneF=Puudub
     NoneOrSeveral=None or several
     Late=Hilja
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Pilt
     Photos=Pildid
    @@ -530,18 +532,6 @@ September=September
     October=Oktoober
     November=November
     December=Detsember
    -JanuaryMin=jaan
    -FebruaryMin=veebr
    -MarchMin=märts
    -AprilMin=apr
    -MayMin=mai
    -JuneMin=juuni
    -JulyMin=juuli
    -AugustMin=aug
    -SeptemberMin=sept
    -OctoberMin=okt
    -NovemberMin=nov
    -DecemberMin=dets
     Month01=jaanuar
     Month02=veebruar
     Month03=märts
    @@ -646,6 +636,8 @@ SendMail=Saada e-kiri
     EMail=E-mail
     NoEMail=E-posti aadress puudub
     Email=E-post
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Mobiiltelefon puudub
     Owner=Omanik
     FollowingConstantsWillBeSubstituted=Järgnevad konstandid asendatakse vastavate väärtustega.
    @@ -677,7 +669,7 @@ NeverReceived=Pole vastu võetud
     Canceled=Tühistatud
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Värv
     Documents=Seotud failid
     Documents2=Dokumendid
    @@ -716,15 +708,15 @@ Merge=Ühendamine
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Kuva leht lehe sisu printimiseks
     MenuManager=Menüü haldaja
    -WarningYouAreInMaintenanceMode=Hoiatus: hooldusrežiim on aktiivne, praegu on rakendusele ligipääs vaid kasutajal <b>%s</b>.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Süsteemi viga
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Krediitkaart
     ValidatePayment=Kinnita makse
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Väljad omadusega <b>%s</b> on kohustuslikud
    -FieldsWithIsForPublic=Väljad <b>%s</b> omadusega kuvatakse avalikus liikmete nimekirjas. Kui soovid seda välja lülitada, võta märge maha "avalik" kastilt.
    -AccordingToGeoIPDatabase=(vastavalt GeoIP andmebaasi teisendusele)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Rida
     NotSupported=Ei ole toetatud
     RequiredField=Kohustuslik väli
    @@ -732,6 +724,8 @@ Result=Tulemus
     ToTest=Test
     ValidateBefore=Enne selle funktsiooni kasutamist peab kaart olema valideeritud
     Visibility=Nähtavus
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privaatne
     Hidden=Peidetud
     Resources=Ressursid
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Viide tellimusele
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Loo mustand
     SetToDraft=Tagasi mustandiks
     ClickToEdit=Klõpsa muutmiseks
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=päeva järgi
     BySalesRepresentative=Müügiesindaja järgi
     LinkedToSpecificUsers=Seostatud kindla kasutaja kontaktiga
     NoResults=Vasteid ei leitud
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=Süsteemi tööriistad
     ModulesSystemTools=Moodulite tööriistad
     Test=Test
     Element=Element
     NoPhotoYet=Pildid puuduvad
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Maha arvatav
     from=alates
     toward=kuni
    @@ -802,7 +798,7 @@ PrintFile=Prindi fail %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Näita sekkumist
     ShowContract=Näita lepingut
    -GoIntoSetupToChangeLogo=Mine Kodu - Seadistamine - Ettevõte logo muutmiseks või mine Kodu - Seadistamine - Kuva logo peitmiseks.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Lükka tagasi
     Denied=Tagasi lükatud
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Kustuta rida
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Liigita arve esitatud
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Kalender
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Tegevused
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Projekt
     Projects=Projektid
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Õigused
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Esmaspäev
     Tuesday=Teisipäev
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Sekkumised
     SearchIntoContracts=Lepingud
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Kommentaarid
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Kõik
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Mõjutatud isik
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/et_EE/other.lang b/htdocs/langs/et_EE/other.lang
    index 9eed5ac17b1..ae98e6e4940 100644
    --- a/htdocs/langs/et_EE/other.lang
    +++ b/htdocs/langs/et_EE/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Turvakood
     NumberingShort=N°
     Tools=Tööriistad
     TMenuTools=Tööriistad
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Sünnipäev
     BirthdayDate=Birthday date
     DateToBirth=Sünniaeg
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Kinnitatud makse lehel olev sõnum
     MessageKO=Tühistatud makse lehel olev sõnum
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Sekkumine kinnitatud
    -Notify_FICHINTER_SENTBYMAIL=Sekkumine saadetud postiga
     Notify_ORDER_VALIDATE=Müügitellimus kinnitatud
     Notify_ORDER_SENTBYMAIL=Müügitellimus saadetud postiga
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Ostutellimus saadetud postiga
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Ostutellimus heaks kiidetud
     Notify_ORDER_SUPPLIER_REFUSE=Ostutellimus tagasi lükatud
     Notify_PROPAL_VALIDATE=Müügipakkumine kinnitatud
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Müügipakkumine saadetud postiga
     Notify_WITHDRAW_TRANSMIT=Tehingu väljamakse
     Notify_WITHDRAW_CREDIT=Krediidi väljamakse
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Kolmas isik loodud
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Müügiarve kinnitatud
     Notify_BILL_UNVALIDATE=Müügiarve avatud
    -Notify_BILL_PAYED=Müügiarve tasutud
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Müügiarve tühistatud
     Notify_BILL_SENTBYMAIL=Müügiarve saadetud postiga
     Notify_BILL_SUPPLIER_VALIDATE=Ostuarve kinnitatud
    -Notify_BILL_SUPPLIER_PAYED=Ostuarve makstud
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Ostuarve saadetud postiga
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Leping kinnitatud
     Notify_FICHEINTER_VALIDATE=Sekkumine kinnitatud
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Sekkumine saadetud postiga
     Notify_SHIPPING_VALIDATE=Saatmine kinnitatud
     Notify_SHIPPING_SENTBYMAIL=Saatmine saadetud postiga
     Notify_MEMBER_VALIDATE=Liige kinnitatud
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Manusena lisatud faile/dokumente
     TotalSizeOfAttachedFiles=Manusena lisatud failide/dokumentide kogusuurus
     MaxSize=Maksimaalne suurus
     AttachANewFile=Manusta uus fail/dokument
     LinkedObject=Seostatud objekt
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Reg kood %s</b> on info, mis sõltub kolmanda isiku riigist.<br>Näiteks riigi <b>%s</b> puhul on see kood <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Sekkumine %s on kinnitatud.
     EMailTextInvoiceValidated=Arve %s on kinnitatud.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Pakkumine %s on kinnitatud.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Tellimus %s on kinnitatud.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Tellimuse %s kiitis %s heaks
     EMailTextOrderRefused=Tellimus %s on tagasi lükatud.
     EMailTextOrderRefusedBy=Tellimuse %s lükkas %s tagasi
     EMailTextExpeditionValidated=Saadetis %s on kinnitatud.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Andmekogu import
     DolibarrNotification=Automaatne teavitamine
     ResizeDesc=Sisesta uus laius <b>VÕI</b> uus kõrgus. Suuruse muutmise käigus säilitatakse kõrguse ja laiuse suhe...
    @@ -204,7 +214,7 @@ NewLength=Uus laius
     NewHeight=Uus kõrgus
     NewSizeAfterCropping=Uus suurus pärast lõikamist
     DefineNewAreaToPick=Määratle valitav uus ala pildil (vasak klõps pildil, siis lohista vastasnurka jõudmiseni)
    -CurrentInformationOnImage=See tööriist loodi selleks, et aidata sul pildi suurust muuta või pilti lõigata. Siin on info hetkel muudetava pildi kohta
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Pildiredkator
     YouReceiveMailBecauseOfNotification=Antud sõnum saadeti sulle sellepärast, et sinu e-posti aadress on lisatud teavitatavate nimekirja, keda teatatakse automaatselt %s tarkvaras toimuvatest %s organisatsiooni sündmustest.
     YouReceiveMailBecauseOfNotification2=Antud tegevus on järgmine:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Ekspordi ala
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Tiitel
     WEBSITE_DESCRIPTION=Kirjeldus
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/et_EE/paybox.lang b/htdocs/langs/et_EE/paybox.lang
    index b77a0f2267e..721018fe62a 100644
    --- a/htdocs/langs/et_EE/paybox.lang
    +++ b/htdocs/langs/et_EE/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox mooduli seadistamine
     PayBoxDesc=See moodul võimaldab klientidel makseid sooritada <a href="http://www.paybox.com" target="_blank">Payboxi</a> lehel. Seda võib kasutada tavalise maksena või maksena teatud Dolibarri objektidel (arved, tellimused jne)
     FollowingUrlAreAvailableToMakePayments=Dolibarri objektide põhjal maksete sooritamiseks on klientidele pakkuda järgnevate lehtede URLid:
     PaymentForm=Maksmise vorm
    -WelcomeOnPaymentPage=Tere tulemast meie online makseteenusesse
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=See ekraan võimaldab teil teha online-makseid üksusele %s.
     ThisIsInformationOnPayment=See on makse sooritamise info
     ToComplete=Lõpuni viia
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=Müügiarve eest maksmiseks kasutatava %s
     ToOfferALinkForOnlinePaymentOnContractLine=Lepingu rea eest maksmiseks kasutatava %s online makseteenuse URL
     ToOfferALinkForOnlinePaymentOnFreeAmount=Vaba rea eest maksmiseks kasutatava %s online makseteenuse URL
     ToOfferALinkForOnlinePaymentOnMemberSubscription=Liikmemaksu eest maksmiseks kasutatava %s online makseteenuse URL
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Samuti võid lisa URL parameetri <b>&tag=<i>value</i></b> igale nendest URLidest (nõutud vaid vaba makse jaoks) oma loodud makse kommentaari sildi jaoks.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Seadista oma PayBox URLiga <b>%s</b> makse automaatseks loomiseks, kui PayBox on selle kinnitanud.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=See lehekülg kinnitab, et makse on registreeritud. Täname!
    -YourPaymentHasNotBeenRecorded=Makset ei ole registreeritud ja tehing on tühistatud. Täname!
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Konto parameetrid
     UsageParameter=Kasutamise parameetrid
     InformationToFindParameters=Abi %s konto info leidmiseks
    diff --git a/htdocs/langs/et_EE/projects.lang b/htdocs/langs/et_EE/projects.lang
    index 6608c1fa194..06c1a964580 100644
    --- a/htdocs/langs/et_EE/projects.lang
    +++ b/htdocs/langs/et_EE/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Kuva projekt
     ShowTask=Näita ülesannet
     SetProject=Määra projekt
     NoProject=Ühtki projekti pole määratletud või ei oma ühtki projekt
    -NbOfProjects=Projekte
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Aega kulutatud
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Antud projektiga seotud pakkumised
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Antud projektiga seotud lepingute nimekiri
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Antud projektiga seotud sekkumiste nimekiri
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Antud projektiga seotud tegevuste nimekiri
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Seotud muu kolmanda isikuga
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Kulutatud aeg on tüh
     ThisWillAlsoRemoveTasks=See kustutab ka kõik projekti ülesanded (hetkel <b>%s</b> ülesannet) ja kõik kulutatud aja sisestused.
    -IfNeedToUseOhterObjectKeepEmpty=Kui mingid projekti loomiseks vajalikud objektid (arve, tellimus jne) kuuluvad mõnele muule kolmandale isikule, siis jäta see tühjaks, et oleks projekti võimalik siduda mitme kolmanda isikuga.
    +IfNeedToUseOtherObjectKeepEmpty=Kui mingid projekti loomiseks vajalikud objektid (arve, tellimus jne) kuuluvad mõnele muule kolmandale isikule, siis jäta see tühjaks, et oleks projekti võimalik siduda mitme kolmanda isikuga.
     CloneProject=Klooni projekt
     CloneTasks=Klooni ülesanded
     CloneContacts=Klooni kontaktid
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Ülesanne %s on loodud
     TaskModifiedInDolibarr=Ülesannet %s on muudetud
     TaskDeletedInDolibarr=Ülesanne %s on kustutatud
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Toetaja
     SelectElement=Vali element
     AddElement=Seosta elemendiga
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planeeritav koormus
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Pakkumine
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/et_EE/propal.lang b/htdocs/langs/et_EE/propal.lang
    index 5d8cb34b3e9..6917dcf28ca 100644
    --- a/htdocs/langs/et_EE/propal.lang
    +++ b/htdocs/langs/et_EE/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Allkirjastatud (vaja arve esitada)
     PropalStatusNotSigned=Allkirjastamata (suletud)
     PropalStatusBilled=Arve esitatud
     PropalStatusDraftShort=Mustand
    -PropalStatusValidatedShort=Kinnitatud
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Suletud
     PropalStatusSignedShort=Allkirjastatud
     PropalStatusNotSignedShort=Allkirjastamata
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Pakkumist %s ei leitud
     AddToDraftProposals=Lisa pakkumise mustandisse
     NoDraftProposals=Pakkumise mustandeid ei ole
     CopyPropalFrom=Loo pakkumine olemasoleva pakkumise kopeerimise teel
    -CreateEmptyPropal=Loo tühje pakkumisi, mis on puhtad või toodete/teenuste nimekirja põhjal
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Pakkumise kehtivus vaikimisi (päevades)
    -UseCustomerContactAsPropalRecipientIfExist=Kasuta pakkumise saaja aadressina kolmanda isiku aadressi asemel kontaktaadressi, kui see on määratletud
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Klooni pakkumine
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Kliendi kontakt pakkumise järelkaja jaoks
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Pakkumise täielik mudel (logo jne)
    +DocModelCyanDescription=Pakkumise täielik mudel (logo jne)
     DefaultModelPropalCreate=Vaikimisi mudeli loomine
     DefaultModelPropalToBill=Vaikimisi mall pakkumise sulgemiseks (arve esitada)
     DefaultModelPropalClosed=Vaikimisi mall pakkumise sulgemiseks (arvet ei esitata)
    diff --git a/htdocs/langs/et_EE/website.lang b/htdocs/langs/et_EE/website.lang
    index 6e11d8873be..742f58bede9 100644
    --- a/htdocs/langs/et_EE/website.lang
    +++ b/htdocs/langs/et_EE/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kood
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Loe
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/eu_ES/admin.lang b/htdocs/langs/eu_ES/admin.lang
    index 2a3e3059af1..c08a199c770 100644
    --- a/htdocs/langs/eu_ES/admin.lang
    +++ b/htdocs/langs/eu_ES/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Garapena
     VersionUnknown=Ezezaguna
     VersionRecommanded=Gomendatua
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Kudeatzailea sesioak gordetzeko
     SessionSavePath=Sesio biltegiaren kokapena
     PurgeSessions=Sesio garbiketa
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Konexio berriak blokeatu
    -ConfirmLockNewSessions=Ziur zaude, blokeatu nahi dituzula zure dolibarr-eko konexio berriak. Bakarrik <b>%s</b> erabiltzaileak, konexioa burutu ahal izango du honen ondorioz.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Konexioaren blokeoa kendu
     YourSession=Zure sesioa
    -Sessions=Erabiltzaileen sesioa
    +Sessions=Users sessions
     WebUserGroup=Web-zerbitzariaren erabiltzailea/taldea
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Kanpoko erabiltzailea
     InternalUsers=Barneko erabiltzaileak
     ExternalUsers=Kanpoko erabiltzaileak
     GUISetup=Itxura
    -SetupArea=Setup area
    +SetupArea=Konfigurazioa
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kodeak ezin du 0 balioa izan
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Ajax ezgaituta dagoenean ez dago erabilgarri
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Aurreikuspena ez dago eskuragarri
     ThemeCurrentlyActive=Aktibatuta dagoen gaia
     CurrentTimeZone=TimeZone PHP (zerbitzaria)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Taula
     Fields=Eremuak
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Aktibo
     SetupShort=Konfigurazioa
     OtherOptions=Beste aukerak
    -OtherSetup=Beste konfigurazioa
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Bereizle hamartarra
     CurrentValueSeparatorThousand=Milakoen bereizlea
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=%s parametroa
    -LocalisationDolibarrParameters=Lokalizazio parametroak
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Denbora (zerbitzaria)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Berez antzeman (nabigatzailean hizkuntza)
     FeatureDisabledInDemo=Demo-an ezgaitutako aukera
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Esteka
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Aukera
     DolibarrLicense=Lizentzia
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Neurri-unitatea
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS ataka (berez php.ini fitxategian adierazita: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS zerbitzaria (berez php.ini fitxategian adierazita: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID-a autentifikazio behar bada
    -MAIN_MAIL_SMTPS_PW=SMTP parahitza autentifikazioa behar bada
    -MAIN_MAIL_EMAIL_TLS= TLS (SSL) enkriptazioa erabili
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=SMS-ak bidaltzeko erabiliko den modua
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Moduluaren konfigurazioa
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Modulu-anitzen tresnak
     ModuleFamilyExperimental=Modulu esperimentalak
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu maneiatzailea
     MenuAdmin=Menu editorea
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=%s pausua
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr-en uneko bertsioa
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Gutxieneko luzeera
     LanguageFilesCachedIntoShmopSharedMemory=.lang fitxategiak memoria partekatuan kargatu dira
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Gaien kokapena
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Erantzuteko denbora-muga
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=%s objektuen erreferentzia sartu
     GetSecuredUrl=Kalkulatutako URL-a hartu
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Aukeren zerrenda
     ExtrafieldSelectList = Taulatik aukeratu
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Pasahitza
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Erabiltzaileak & Taldeak
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Komertziala
     Module2Desc=Kudeaketa komertziala
     Module10Name=Kontabilitatea
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposamenak
     Module20Desc=Proposamen komertzialak kudeatzea
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Bezeroen Eskaerak
     Module25Desc=Bezeroen eskaerak kudeatzea
     Module30Name=Fakturak
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Hornitzaileak
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock-ak kudeatzea (produktuak)
     Module53Name=Zerbitzuak
     Module53Desc=Zerbitzuak kudeatzea
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barra-kodeak
     Module55Desc=Barra-kodeak kudeatzea
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Bidalketak
     Module80Desc=Bidalketa eta banaketa eskerak kudeatzea
    -Module85Name=Bankuak eta eskudirua
    +Module85Name=Banks and Cash
     Module85Desc=Banku edo eskudiru kontuak kudeatzea
    -Module100Name=Kanpoko tokia
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman eta SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP direktorioa sinkronizatzea
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integrazioa
     Module240Name=Daten esportazioa
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Daten inportazioa
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Kideak
     Module310Desc=Foundation members management
     Module320Name=RSS kanala
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Laster-markak
    -Module330Desc=Laster-marken kudeaketa
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Web-egutegia
     Module410Desc=Web-egutegiaren integrazioa
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Diru-emateak
     Module700Desc=Diru-emateak kudeatzea
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editorea
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Bezeroa
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Marjinak
     Module59000Desc=Marjinak kudeatzeko modulua
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Bezeroen fakturak ikusi
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Produktuak ezabatu
     Permission36=See/manage hidden products
     Permission38=Produktuak esportatu
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=State/Province
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=BEZ-a kudeatzea
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Izena
     CompanyAddress=Address
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Kide bakoitzarentzat Sarrera bat kudeatu
     AdherentMailRequired=Kide berria sortzeko e-posta beharrezkoa da
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP konfigurazioa
     LDAPGlobalParameters=Parametro orokorrak
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Izena
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/eu_ES/banks.lang b/htdocs/langs/eu_ES/banks.lang
    index df45008a7c2..6d2f6f8dc4b 100644
    --- a/htdocs/langs/eu_ES/banks.lang
    +++ b/htdocs/langs/eu_ES/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Account
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/eu_ES/bills.lang b/htdocs/langs/eu_ES/bills.lang
    index 56180c5d0f9..8490071a747 100644
    --- a/htdocs/langs/eu_ES/bills.lang
    +++ b/htdocs/langs/eu_ES/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Ordainketa ezabatu
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Hornitzaileei ordainketak
     ReceivedPayments=Jasotako ordainketak
     ReceivedCustomersPayments=Bezeroen jasotako ordainketak
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Balidatu beharreko bezeroen jasotako ordainketak
     PaymentsReportsForYear=%s ordainketen txostena
     PaymentsReports=Ordainketen txostena
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=Ordainketaren zenbatekoa
     ValidatePayment=Ordainketak balioztatu
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Paid
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Closed
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bezero txarra
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Besteak
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Faktura balioztatu
     UnvalidateBill=Faktura baliogabeta
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Faktura kopurua
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Faktura erakutsi
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/eu_ES/cashdesk.lang b/htdocs/langs/eu_ES/cashdesk.lang
    index 2c1117431d2..e2cd012998e 100644
    --- a/htdocs/langs/eu_ES/cashdesk.lang
    +++ b/htdocs/langs/eu_ES/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/eu_ES/commercial.lang b/htdocs/langs/eu_ES/commercial.lang
    index 694e5f8f987..b906dc8f734 100644
    --- a/htdocs/langs/eu_ES/commercial.lang
    +++ b/htdocs/langs/eu_ES/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Proiektuaren egoera
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/eu_ES/companies.lang b/htdocs/langs/eu_ES/companies.lang
    index b9501126d3a..c5f4853274a 100644
    --- a/htdocs/langs/eu_ES/companies.lang
    +++ b/htdocs/langs/eu_ES/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Select a third party
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Delete a contact/address
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New third party
    -MenuNewCustomer=New customer
    -MenuNewProspect=New prospect
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=Erakundea
     CompanyName=Company name
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Companies
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=Third parties
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
     ThirdPartyProspectsStats=Prospects
     ThirdPartyCustomers=Customers
     ThirdPartyCustomersStats=Customers
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Posizioa
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposamenak
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Hornitzailea
    +Supplier=Vendor
     AddContact=Kontaktua sortu
     AddContactAddress=Kontua/helbidea sortu
     EditContact=Kontaktua editatu
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Delete a company
     PersonalInformations=Personal data
     AccountancyCode=Accounting account
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Staff
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=List of prospects
    -ListCustomersShort=List of customers
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Open
     ActivityCeased=Closed
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/eu_ES/dict.lang b/htdocs/langs/eu_ES/dict.lang
    index fc5f4cb803c..b57cc3a7ea1 100644
    --- a/htdocs/langs/eu_ES/dict.lang
    +++ b/htdocs/langs/eu_ES/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukrania
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US dolarrak
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Langilea
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/eu_ES/ecm.lang b/htdocs/langs/eu_ES/ecm.lang
    index 5200fa30b1d..43ddd3bf36f 100644
    --- a/htdocs/langs/eu_ES/ecm.lang
    +++ b/htdocs/langs/eu_ES/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/eu_ES/errors.lang b/htdocs/langs/eu_ES/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/eu_ES/errors.lang
    +++ b/htdocs/langs/eu_ES/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/eu_ES/help.lang b/htdocs/langs/eu_ES/help.lang
    index 7ac144a89b2..3a719cd8324 100644
    --- a/htdocs/langs/eu_ES/help.lang
    +++ b/htdocs/langs/eu_ES/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Komertziala
     TypeOfHelp=Mota
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/eu_ES/holiday.lang b/htdocs/langs/eu_ES/holiday.lang
    index c373d3154d2..6ba427aa3b6 100644
    --- a/htdocs/langs/eu_ES/holiday.lang
    +++ b/htdocs/langs/eu_ES/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Deskribapena
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Editatu
     DeleteCP=Ezabatu
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=Erabiltzailea
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/eu_ES/install.lang b/htdocs/langs/eu_ES/install.lang
    index fb521c0c085..c92d83988ff 100644
    --- a/htdocs/langs/eu_ES/install.lang
    +++ b/htdocs/langs/eu_ES/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/eu_ES/interventions.lang b/htdocs/langs/eu_ES/interventions.lang
    index 4c93eff9d0d..a130367b14f 100644
    --- a/htdocs/langs/eu_ES/interventions.lang
    +++ b/htdocs/langs/eu_ES/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/eu_ES/main.lang b/htdocs/langs/eu_ES/main.lang
    index 28dfdbd078c..7a3e3190a38 100644
    --- a/htdocs/langs/eu_ES/main.lang
    +++ b/htdocs/langs/eu_ES/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Closed
     Closed2=Closed
     NotClosed=Not closed
     Enabled=Gaituta
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Berritu
     Close=Itxi
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Ezabatu
     Remove=Kendu
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Prezioa
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Besteak
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Irudia
     Photos=Irudiak
    @@ -530,18 +532,6 @@ September=Iraila
     October=Urria
     November=Azaroa
     December=Abendua
    -JanuaryMin=Urt
    -FebruaryMin=Ots
    -MarchMin=Mar
    -AprilMin=Api
    -MayMin=Mai
    -JuneMin=Eka
    -JulyMin=Uzt
    -AugustMin=Abu
    -SeptemberMin=Ira
    -OctoberMin=Urr
    -NovemberMin=Aza
    -DecemberMin=Abe
     Month01=Urtarrila
     Month02=Otsaila
     Month03=Martxoa
    @@ -646,6 +636,8 @@ SendMail=e-posta bidali
     EMail=E-mail
     NoEMail=No email
     Email=E-posta
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Informazioa
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Ordainketak balioztatu
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=Sistemaren tresnak
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Egutegia
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Gertaerak
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Proiektuak
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Baimenak
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Kontratuak
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/eu_ES/other.lang b/htdocs/langs/eu_ES/other.lang
    index 9485b1c7709..82abec228c5 100644
    --- a/htdocs/langs/eu_ES/other.lang
    +++ b/htdocs/langs/eu_ES/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Deskribapena
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/eu_ES/paybox.lang b/htdocs/langs/eu_ES/paybox.lang
    index 74409da05ce..531838580ac 100644
    --- a/htdocs/langs/eu_ES/paybox.lang
    +++ b/htdocs/langs/eu_ES/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/eu_ES/projects.lang b/htdocs/langs/eu_ES/projects.lang
    index ea77b367d8b..3297258089d 100644
    --- a/htdocs/langs/eu_ES/projects.lang
    +++ b/htdocs/langs/eu_ES/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/eu_ES/propal.lang b/htdocs/langs/eu_ES/propal.lang
    index 8cf3a68167a..c258381ea85 100644
    --- a/htdocs/langs/eu_ES/propal.lang
    +++ b/htdocs/langs/eu_ES/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Draft
    -PropalStatusValidatedShort=Validated
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Closed
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/eu_ES/website.lang b/htdocs/langs/eu_ES/website.lang
    index bd74a3bdf89..a343af8c7d9 100644
    --- a/htdocs/langs/eu_ES/website.lang
    +++ b/htdocs/langs/eu_ES/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kodea
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang
    index f5614dc4842..f69f459b813 100644
    --- a/htdocs/langs/fa_IR/admin.lang
    +++ b/htdocs/langs/fa_IR/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=توسعه
     VersionUnknown=ناشناخته
     VersionRecommanded=توصیه شده
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=هندلر برای صرفه جویی در جلسات
     SessionSavePath=محلی سازی را وارد نمایید و ذخیره سازی
     PurgeSessions=پاکسازی جلسات
     ConfirmPurgeSessions=آيا واقعاً می‌خواهيد تمام جلسات پاک شود؟ در اين حالت اتصال همه کاربران قطع می شود (بجز خودتان)
    -NoSessionListWithThisHandler=کنترل جویی در هزینه را وارد نمایید پیکربندی در PHP شما اجازه نمی دهد که لیست تمام جلسات در حال اجرا.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=قفل کردن ارتباطات جدید
    -ConfirmLockNewSessions=آیا مطمئن هستید که می خواهید برای محدود کردن هر اتصال جدید Dolibarr به خودتان. تنها <b>کاربر٪ s را</b> قادر پس از آن برای اتصال خواهد بود.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=حذف قفل اتصال
     YourSession=نشست شما
    -Sessions=کاربران را وارد نمایید
    +Sessions=Users sessions
     WebUserGroup=کاربر وب سرور / گروه
    -NoSessionFound=PHP شما به نظر می رسد اجازه نمی دهد به لیست نمود. دایرکتوری استفاده می شود برای صرفه جویی در جلسات <b>(٪ ها)</b> ممکن است از آن محافظت شود (به عنوان مثال، با مجوز OS یا با PHP open_basedir باشد بخشنامه).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=پایگاه داده مجموعه کاراکتر برای ذخیره داده ها
     DBSortingCharset=مجموعه نویسه پایگاه داده به مرتب سازی داده ها
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=کاربر خارجی
     InternalUsers=کاربران داخلی
     ExternalUsers=کاربران خارجی
     GUISetup=نمایش
    -SetupArea=منطقه راه اندازی
    +SetupArea=برپایی
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=فرم برای تست آپلود فایل (با توجه به راه اندازی)
     IfModuleEnabled=توجه داشته باشید: بله موثر است تنها در صورتی که <b>بخش٪ s</b> فعال است
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=کد می تواند مقدار 0 را شامل نمی
     DisableJavascript=توابع غیر فعال کردن جاوا اسکریپت و آژاکس (توصیه شده برای فرد نابینا یا مرورگرهای متنی)
     UseSearchToSelectCompanyTooltip=همچنین اگر شما تعداد زیادی از اشخاص ثالث (> 100 000)، شما می توانید سرعت با تنظیم COMPANY_DONOTSEARCH_ANYWHERE ثابت به 1 در راه اندازی-> دیگر افزایش دهد. جست و جو خواهد شد و سپس محدود به شروع از رشته است.
     UseSearchToSelectContactTooltip=همچنین اگر شما تعداد زیادی از اشخاص ثالث (> 100 000)، شما می توانید سرعت با تنظیم CONTACT_DONOTSEARCH_ANYWHERE ثابت به 1 در راه اندازی-> دیگر افزایش دهد. جست و جو خواهد شد و سپس محدود به شروع از رشته است.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=اسمشو نبر از شخصیت های به ماشه جستجو:٪ s را
     NotAvailableWhenAjaxDisabled=در دسترس نیست زمانی که آژاکس غیر فعال است
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=پیش بازی در دسترس نیست
     ThemeCurrentlyActive=تم در حال حاضر فعال
     CurrentTimeZone=منطقه زمانی PHP (سرور)
     MySQLTimeZone=خروجی منطقه زمانی (پایگاه داده)
    -TZHasNoEffect=تاریخ های ذخیره شده و بازگردانده شده توسط سرور پایگاه داده به عنوان اگر آنها به عنوان رشته ارسال شده نگهداری شدند. منطقه زمانی اثر تنها زمانی که با استفاده از تابع UNIX_TIMESTAMP (که باید توسط Dolibarr استفاده نمی شود، بنابراین پایگاه داده TZ باید اثر ندارد حتی اگر پس از داده های وارد شده را تغییر داده اند،).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=فضا
     Table=جدول
     Fields=زمینه
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=فعال
     SetupShort=برپایی
     OtherOptions=گزینه های دیگر
    -OtherSetup=دیگر راه اندازی
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=جداکننده دهدهی
     CurrentValueSeparatorThousand=هزار جدا
     Destination=مقصد
     IdModule=ماژول ID
     IdPermissions=مجوز های ID
     LanguageBrowserParameter=پارامتر٪ بازدید کنندگان
    -LocalisationDolibarrParameters=پارامترهای محلی سازی
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=کارفرما منطقه زمان (کاربر)
     ClientHour=زمان مشتری (کاربر)
     OSTZ=سرور OS منطقه زمان
    @@ -126,8 +126,8 @@ PHPTZ=PHP سرور منطقه زمان
     DaylingSavingTime=نور روز صرفه جویی در زمان
     CurrentHour=PHP زمان (سرور)
     CurrentSessionTimeOut=فاصله را وارد نمایید کنونی
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=آشکارسازی خودکار (زبان مرورگر)
     FeatureDisabledInDemo=از ویژگی های غیر فعال در نسخه ی نمایشی
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=تنها عناصر از <a href="%s">ماژول های فعال</a> نمایش داده می شود.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=جدید
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore، محل رسمی بازار برای ماژول های خارجی Dolibarr ERP / CRM
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=پیوند
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=آیا بدون رمز عبور روشن ذخیره در
     MainDbPasswordFileConfEncrypted=رمز عبور پایگاه داده را در conf.php رمز شده (فعال توصیه می شود)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=حفاظت از فایل های پی دی اف ایجاد شده (فعال توصیه نمی شود، می شکند نسل پی دی اف توده)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=خصیصه
     DolibarrLicense=پروانه
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=برای کاربر و یا اسناد و مدارک توسعه (دکتر، پرسش و ...)، <br> نگاهی به Dolibarr ویکی: <br> <a href="%s" target="_blank"><b>از٪ s</b></a>
     ForAnswersSeeForum=برای هر گونه سوال / کمک های دیگر، شما می توانید انجمن Dolibarr استفاده کنید: <br> <a href="%s" target="_blank"><b>از٪ s</b></a>
    -HelpCenterDesc1=این منطقه می تواند به شما کمک کند برای دریافت خدمات پشتیبانی راهنما در Dolibarr.
    -HelpCenterDesc2=بخشی از این سرویس <b>تنها</b> در <b>انگلیسی</b> موجود است.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=منو کنترل کنونی
     MeasuringUnit=اندازه گیری واحد
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS بندر (به طور پیش فرض در فایل php.ini <b>اجرا:٪ بازدید کنندگان)</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS میزبان (به طور پیش فرض در فایل php.ini <b>اجرا:٪ بازدید کنندگان)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS بندر (به PHP بر روی یونیکس تعریف نشده مانند سیستم)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS هاست (به PHP بر روی یونیکس تعریف نشده مانند سیستم)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= ارسال سیستماتیک مخفی کربن کپی از همه ایمیل های ارسال شده به
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=روش استفاده برای ارسال ایمیل
    -MAIN_MAIL_SMTPS_ID=SMTP ID اگر احراز هویت مورد نیاز
    -MAIN_MAIL_SMTPS_PW=SMTP رمز عبور در صورت احراز هویت مورد نیاز
    -MAIN_MAIL_EMAIL_TLS= استفاده از TLS (SSL) رمزگذاری
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=غیر فعال کردن همه sendings SMS (برای تست و یا دموی)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=روش استفاده برای ارسال SMS
    -MAIN_MAIL_SMS_FROM=شماره تلفن پیش فرض فرستنده برای ارسال SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=این قابلیت وجود ندارد در یونیکس مانند سیستم های. تست برنامه در Sendmail خود را به صورت محلی.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=ماژول راه اندازی
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=چند ماژول ابزار
     ModuleFamilyExperimental=ماژول های تجربی
     ModuleFamilyFinancial=ماژول های مالی (حسابداری / خزانه داری)
     ModuleFamilyECM=مدیریت محتوا الکترونیکی (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=گرداننده منو
     MenuAdmin=ویرایشگر منو
    @@ -309,15 +313,15 @@ DoNotUseInProduction=آیا در استفاده از تولید نیست
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=مرحله٪ s را
    -FindPackageFromWebSite=پیدا کردن یک بسته است که ویژگی فراهم می کند شما می خواهید (به عنوان مثال در وب سایت رسمی٪ بازدید کنندگان).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=نسخه فعلی Dolibarr
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= تاخیر برای ذخیره پاسخ صادرات در ثانیه (0 یا خالی بدون هیچ کش)
     DisableLinkToHelpCenter=مخفی کردن لینک <b>"آیا نیازمند کمک و یا حمایت"</b> در صفحه ورود
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=هیچ بسته بندی اتوماتیک وجود دارد، بنابراین اگر خط از صفحه در اسناد به دلیل بیش از حد طولانی، شما باید خودتان بازده حمل در ناحیه ی متن اضافه کنید.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=حداقل طول
     LanguageFilesCachedIntoShmopSharedMemory=فایل های. زبان بارگذاری شده در حافظه به اشتراک گذاشته شده
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=به عنوان مثال با راه اندازی فعلی در حال اجرا
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=فهرست دایرکتوری قالب مستندات باز
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=تعداد ODT / ODS فایل های قالب که در آن دایرکتوری
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=نمونه هایی از سینتکس: <br> c: \\ mydir <br> / صفحه اصلی / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> بدانید که چگونه برای ایجاد خود را از قالب سند ODT، قبل از ذخیره سازی آنها را در آن دایرکتوری ها، به عنوان خوانده شده اسناد ویکی:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=کلیدی برای استفاده از خدمات وب
     TestSubmitForm=فرم آزمون ورودی
     ThisForceAlsoTheme=با استفاده از این مدیر منو نیز تم خاص خود را از هر چه به انتخاب کاربر می باشد. همچنین این مدیریت منو های تخصصی برای گوشی های هوشمند می کند بر روی تمام گوشی های هوشمند کار می کند نیست. استفاده از مدیریت منو یکی دیگر از صورت بروز مشکل در شما باشد.
     ThemeDir=دایرکتوری پوسته
    -ConnectionTimeout=فاصله وابستگی
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=تایم پاسخ
     SmsTestMessage=پیام تست از __ PHONEFROM__ به __ PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=کلیدی برای ایمن سازی آدرس ها
    -NoSmsEngine=بدون SMS مدیر فرستنده در دسترس است. مدیر فرستنده SMS با توزیع به طور پیش فرض نصب نشده است (به این دلیل که یک تامین کننده خارجی بستگی دارد) اما شما می توانید برخی از٪ s را پیدا
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=شما می توانید هر یک از گزینه های جهانی مربوط به نسل PDF مجموعه
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=قوانین برای ایجاد جعبه آدرس
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=پنهان کردن محصولات توضیحات در تولید PDF
     HideRefOnPDF=پنهان کردن محصولات کد عکس. در تولید PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=پارامترهای به امن آدرس
     SecurityTokenIsUnique=استفاده از یک پارامتر securekey منحصر به فرد برای هر URL
     EnterRefToBuildUrl=مرجع را برای شی از٪ s
     GetSecuredUrl=دریافت URL محاسبه
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=قدیمی نرخ مالیات بر ارزش افزوده
     NewVATRates=نرخ مالیات بر ارزش افزوده جدید
     PriceBaseTypeToChange=تغییر در قیمت با ارزش پایه مرجع تعریف شده در
    @@ -408,13 +412,13 @@ ExtrafieldSelect = لیست انتخاب کنید
     ExtrafieldSelectList = انتخاب از جدول
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=رمز عبور
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=لینک پیش فرض
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=اخطار، این مقدار ممکن است با راه اندازی خاص کاربر رونویسی (هر کاربر می تواند آدرس clicktodial خود تنظیم)
     ExternalModule=ماژول های خارجی - نصب به شاخه٪ s
    -BarcodeInitForThirdparties=init انجام بارکد جمعی برای thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=init انجام بارکد جرم یا تنظیم مجدد برای محصولات یا خدمات
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=ارزش init انجام برای٪ بعدی پرونده خالی
     EraseAllCurrentBarCode=پاک کردن همه ارزش بارکد فعلی
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=همه مقادیر بارکد حذف شده اند
    -NoBarcodeNumberingTemplateDefined=بدون قالب بارکد شماره فعال به راه اندازی ماژول بارکد.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=رشته
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=کاربران و گروه های
    +Module0Name=کاربران و گروهها
     Module0Desc=Users / Employees and Groups management
    -Module1Name=احزاب سوم
    -Module1Desc=شرکت ها و مدیریت تماس (مشتریان، چشم انداز ...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=تجاری
     Module2Desc=مدیریت بازرگانی
     Module10Name=حسابداری
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=پیشنهادات
     Module20Desc=مدیریت طرح های تجاری
     Module22Name=توده E-نامههای پستی
    @@ -495,7 +501,7 @@ Module23Desc=نظارت بر مصرف انرژی
     Module25Name=سفارشات مشتری
     Module25Desc=مدیریت سفارش مشتری
     Module30Name=صورت حساب
    -Module30Desc=فاکتور و مدیریت توجه داشته باشید اعتباری برای مشتریان. مدیریت فاکتور برای تامین کنندگان
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=تولید کنندگان
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=مدیریت انبار (محصول)
     Module53Name=خدمات
     Module53Desc=مدیریت خدمات
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=بارکد
     Module55Desc=مدیریت بارکد
     Module56Name=تلفن
     Module56Desc=یکپارچه سازی تلفن
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=کلیک برای تماس
     Module58Desc=یکپارچه سازی سیستم ClickToDial (ستاره، ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=هزینه و سفر یادداشت ها
     Module75Desc=مدیریت هزینه و سفر یادداشت ها
     Module80Name=حمل و نقل
     Module80Desc=حمل و نقل و مدیریت سفارش تحویل
    -Module85Name=بانک ها و پول نقد
    +Module85Name=Banks and Cash
     Module85Desc=مدیریت بانک و یا پول نقد حساب
    -Module100Name=سایت خارجی
    -Module100Desc=این ماژول شامل وب سایت های خارجی و یا صفحه را به منوهای Dolibarr و مشاهده آن را به یک قاب Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=پستچی و SPIP
     Module105Desc=پستچی و یا رابط SPIP برای ماژول عضو
     Module200Name=LDAP
    -Module200Desc=هماهنگ سازی دایرکتوری LDAP
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=ادغام PostNuke
     Module240Name=صادرات داده ها
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=واردات داده ها
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=کاربران
     Module310Desc=مدیریت اعضای بنیاد
     Module320Name=خوراک RSS
     Module320Desc=اضافه کردن خوراک RSS در داخل صفحات صفحه نمایش Dolibarr
    -Module330Name=بوک مارک ها
    -Module330Desc=مدیریت بوک مارک ها
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=ادغام Webcalendar
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=کمک های مالی
     Module700Desc=مدیریت کمک مالی
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=اخوندک
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=ویرایشگر WYSIWYG
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=قیمت های پویا.
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=شغل برنامه ریزی
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar در
    -Module2700Desc=استفاده از سرویس آنلاین Gravatar در (www.gravatar.com) برای نشان دادن عکس از کاربران / کاربران (که با ایمیل های خود را). نیاز به دسترسی به اینترنت
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP کارفرما
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP با Maxmind قابلیت تبدیل
     Module3100Name=اسکایپ
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=چند شرکت
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=خزانه
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=نقطه ای از فروش
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=نقطه ای از فروش
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=پی پال
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=حاشیه
     Module59000Desc=ماژول برای مدیریت حاشیه
     Module60000Name=کمیسیون ها
     Module60000Desc=ماژول برای مدیریت کمیسیون
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=منابع
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=خوانده شده فاکتورها مشتری
    @@ -651,9 +661,9 @@ Permission32=ایجاد / تغییر محصول
     Permission34=حذف محصول
     Permission36=مشاهده / مدیریت محصولات مخفی
     Permission38=محصولات صادراتی
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=حذف پروژه (پروژه مشترک و پروژه های I تماس با هستم)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=خوانده شده مداخله
     Permission62=ایجاد / تغییر مداخلات
    @@ -686,7 +696,7 @@ Permission109=حذف sendings
     Permission111=دفعات بازدید: حساب های مالی
     Permission112=ایجاد / تغییر / حذف و مقایسه معاملات
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=معاملات صادرات و اظهارات حساب کاربری
     Permission116=نقل و انتقالات بین حساب
     Permission117=مدیریت چک اعزام
    @@ -694,15 +704,15 @@ Permission121=خوانده شده اشخاص ثالث مرتبط به کاربر
     Permission122=ایجاد / تغییر اشخاص ثالث مرتبط به کاربر
     Permission125=حذف اشخاص ثالث مرتبط به کاربر
     Permission126=صادرات اشخاص ثالث
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=خوانده شده ارائه دهندگان
     Permission147=دفعات بازدید: آمار
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=نزدیک سفارشات کالا
     Permission188=لغو سفارشات کالا
     Permission192=ایجاد خطوط
     Permission193=لغو خطوط
    -Permission194=دفعات بازدید: خطوط پهنای باند
    +Permission194=Read the bandwidth lines
     Permission202=ایجاد اتصالات ADSL
     Permission203=سفارشات اتصالات منظور
     Permission204=اتصالات منظور
    @@ -750,12 +760,12 @@ Permission244=مشاهده محتویات دسته بندی های مخفی
     Permission251=خوانده شده کاربران و گروه های دیگر
     PermissionAdvanced251=خوانده شده کاربران دیگر
     Permission252=خوانده شده مجوز از کاربران دیگر
    -Permission253=ایجاد / تغییر دیگر کاربران، گروه ها و permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=ایجاد / تغییر کاربران خارجی / داخلی و مجوز
     Permission254=ایجاد / تغییر کاربران خارجی فقط
     Permission255=تغییر دیگر کاربران رمز عبور
     Permission256=حذف و یا کاربران دیگر را غیر فعال کنید
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=خوانده شده CA
     Permission272=خوانده شده فاکتورها
     Permission273=صورت حساب شماره
    @@ -765,7 +775,7 @@ Permission283=حذف اطلاعات تماس
     Permission286=تماس با صادرات
     Permission291=خوانده شده تعرفه ها
     Permission292=اجازه انتخاب در تعرفه ها
    -Permission293=تغییر مشتریان تعرفه ها
    +Permission293=Modify customers tariffs
     Permission300=دفعات بازدید: بارکد
     Permission301=ایجاد / تغییر کدهای نوار
     Permission302=حذف کدهای نوار
    @@ -787,11 +797,9 @@ Permission401=خوانده شده تخفیف
     Permission402=ایجاد / اصلاح تخفیف
     Permission403=اعتبار تخفیف
     Permission404=حذف تخفیف
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=حذف حقوق
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=حقوق صادرات
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=اجرای واردات انبوه از داده های خارج
     Permission1321=فاکتورها صادرات به مشتریان، ویژگی ها و پرداخت ها
     Permission1322=Reopen a paid bill
     Permission1421=سفارشات صادرات مشتری و ویژگی های
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=سطح بالقوه چشم انداز
     DictionaryCanton=ایالت / استان
     DictionaryRegion=مناطق
    @@ -894,7 +902,7 @@ DictionaryVAT=نرخ مالیات بر ارزش افزوده و یا فروش ن
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=شرایط پرداخت
     DictionaryPaymentModes=حالت های پرداخت
    -DictionaryTypeContact=انواع تماس / آدرس
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=فرمت مقاله
    @@ -908,47 +916,47 @@ DictionarySource=منبع از پیشنهادات / سفارشات
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=مدل برای نمودار حساب
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=الگوهای ایمیل
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=واحد
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=راه اندازی نجات داد
     SetupNotSaved=Setup not saved
     BackToModuleList=بازگشت به لیست ماژول ها
    -BackToDictionaryList=برگشت به فهرست واژه نامه ها
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=مدیریت مالیات بر ارزش افزوده
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=به طور پیش فرض مالیات بر ارزش افزوده ارائه شده است 0 که می تواند برای موارد مانند ارتباط استفاده می شود، افراد عضو جدید می توانید شرکت های کوچک است.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=نرخ
     LocalTax1IsNotUsed=آیا مالیات دوم استفاده نکنید
    -LocalTax1IsUsedDesc=استفاده از نوع دوم از مالیات (به غیر از مالیات بر ارزش افزوده)
    -LocalTax1IsNotUsedDesc=آیا نوع دیگری از مالیات (به غیر از مالیات بر ارزش افزوده) استفاده کنید
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=نوع دوم از مالیات
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=آیا مالیات سوم استفاده کنید
    -LocalTax2IsUsedDesc=استفاده از یک نوع سوم از مالیات (به غیر از مالیات بر ارزش افزوده)
    -LocalTax2IsNotUsedDesc=آیا نوع دیگری از مالیات (به غیر از مالیات بر ارزش افزوده) استفاده کنید
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=نوع سوم از مالیات
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE مدیریت
    -LocalTax1IsUsedDescES= نرخ RE به طور پیش فرض هنگام ایجاد چشم انداز، فاکتورها، سفارشات و غیره پیروی از قانون استاندارد های فعال: <br> اگر ته خریدار است قرار نیست که دوباره، RE طور پیش فرض = 0. پایان حکومت. <br> اگر خریدار است در معرض RE سپس RE به طور پیش فرض. پایان حکومت. <br>
    -LocalTax1IsNotUsedDescES= به طور پیش فرض RE پیشنهادی 0. پایان حکومت است.
    -LocalTax1IsUsedExampleES= در اسپانیا آنها حرفه ای موضوع را به برخی از بخش های خاصی از IAE اسپانیایی می باشد.
    -LocalTax1IsNotUsedExampleES= در اسپانیا آنها حرفه ای و جوامع و موضوع را به بخش های خاصی از IAE اسپانیایی می باشد.
    -LocalTax2ManagementES= مدیریت IRPF
    -LocalTax2IsUsedDescES= نرخ RE به طور پیش فرض هنگام ایجاد چشم انداز، فاکتورها، سفارشات و غیره پیروی از قانون استاندارد های فعال: <br> اگر فروشنده به IRPF به طور پیش فرض = 0 قرار نیست، پس IRPF. پایان حکومت. <br> اگر فروشنده در معرض IRPF سپس IRPF به طور پیش فرض. پایان حکومت. <br>
    -LocalTax2IsNotUsedDescES= به طور پیش فرض IRPF پیشنهاد 0. پایان حکومت است.
    -LocalTax2IsUsedExampleES= در اسپانیا، مترجمان آزاد و مستقل حرفه ای که ارائه خدمات و شرکت های که انتخاب کرده اند نظام مالیاتی از ماژول های.
    -LocalTax2IsNotUsedExampleES= در اسپانیا آنها bussines به سیستم مالیاتی از ماژول های موضوع نیست.
    +LocalTax1ManagementES=RE مدیریت
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=به طور پیش فرض RE پیشنهادی 0. پایان حکومت است.
    +LocalTax1IsUsedExampleES=در اسپانیا آنها حرفه ای موضوع را به برخی از بخش های خاصی از IAE اسپانیایی می باشد.
    +LocalTax1IsNotUsedExampleES=در اسپانیا آنها حرفه ای و جوامع و موضوع را به بخش های خاصی از IAE اسپانیایی می باشد.
    +LocalTax2ManagementES=مدیریت IRPF
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=به طور پیش فرض IRPF پیشنهاد 0. پایان حکومت است.
    +LocalTax2IsUsedExampleES=در اسپانیا، مترجمان آزاد و مستقل حرفه ای که ارائه خدمات و شرکت های که انتخاب کرده اند نظام مالیاتی از ماژول های.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=فروش - خرید
     CalcLocaltax1Desc=گزارش مالیات های محلی با تفاوت بین localtaxes فروش و localtaxes خرید محاسبه
    @@ -958,7 +966,9 @@ CalcLocaltax3=فروش
     CalcLocaltax3Desc=گزارش مالیات های محلی هستند که مجموع localtaxes فروش
     LabelUsedByDefault=برچسب استفاده می شود به طور پیش فرض اگر هیچ ترجمه ای برای کد یافت
     LabelOnDocuments=برچسب در اسناد
    -NbOfDays=Nb در روز
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=در پایان ماه
     CurrentNext=Current/Next
     Offset=افست
    @@ -984,7 +994,7 @@ DatabaseUser=کاربر پایگاه داده
     DatabasePassword=رمز عبور پایگاه داده
     Tables=جداول
     TableName=نام جدول
    -NbOfRecord=Nb و سوابق
    +NbOfRecord=No. of records
     Host=سرور
     DriverType=نوع درایور
     SummarySystem=سیستم خلاصه اطلاعات
    @@ -996,7 +1006,7 @@ Skin=تم پوست
     DefaultSkin=پیش فرض پوست
     MaxSizeList=حداکثر طول برای لیست
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=پیام روز
     MessageLogin=ارسال صفحه ورود
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=فرم جستجو دائمی در منوی سمت چپ
     DefaultLanguage=زبان پیش فرض برای استفاده از (زبان)
     EnableMultilangInterface=فعال کردن رابط کاربری چند زبانه
     EnableShowLogo=نمایش لوگو را در منوی سمت چپ
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=نام
     CompanyAddress=نشانی
     CompanyZip=زیپ
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=صاحب حساب بانکی از٪ s
     BankModuleNotActive=ماژول حساب بانکی فعال نیست
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=تصویر، موسیقی
    -DelaysOfToleranceBeforeWarning=تاخیر تحمل قبل از هشدار دهنده
    -DelaysOfToleranceDesc=این صفحه نمایش به شما اجازه تعریف تاخیر قابل تحمل قبل از یک هشدار بر روی صفحه نمایش با picto٪ برای هر یک از عناصر در اواخر گزارش شده است.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=تحمل (در روز) تاخیر قبل از آماده باش در طرح به بستن
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=تحمل (در روز) تاخیر قبل از آماده باش در طرح های ثبت شده در صورتحساب ندارد
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=تاخیر تحمل (در روز) قبل از آماده باش در خدمات را به فعال
    -Delays_MAIN_DELAY_RUNNING_SERVICES=تاخیر تحمل (در روز) قبل از هشدار در مورد خدمات منقضی شده
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=تاخیر تحمل (در روز) قبل از آماده باش در فاکتورها منبع پرداخت نشده
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence تاخیر (در روز) قبل از آماده باش در صورت حساب مشتری پرداخت نشده
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=تاخیر تحمل (در روز) قبل از آماده باش در انتظار آشتی بانکی
    -Delays_MAIN_DELAY_MEMBERS=تاخیر تحمل (در روز) قبل از آماده باش در حق عضویت به تاخیر افتاد
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=تاخیر تحمل (در روز) قبل از آماده باش برای چک سپرده به انجام
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=دیگر نوشته های منو مدیریت پارامتر اختیاری دارد.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=رویدادهای ممیزی امنیت
    -Audit=ممیزی
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=نام مرورگر
     BrowserOS=مرورگر OS
     ListOfSecurityEvents=فهرست حوادث امنیتی Dolibarr
     SecurityEventsPurged=رویدادهای امنیتی پاکسازی
    -LogEventDesc=شما می توانید در اینجا قادر به ورود به سیستم برای رویدادهای امنیتی Dolibarr. <b>حسابرسی -</b> مدیران پس از آن می توانید مطالب خود را از طریق <b>ابزارهای سیستم</b> منو را ببینید. اخطار، این ویژگی می تواند مقدار زیادی از داده ها در پایگاه داده مصرف می کند.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=اطلاعات سیستم اطلاعات فنی موارد دیگر شما در حالت فقط خواندنی و قابل مشاهده فقط برای مدیران دریافت می باشد.
     SystemAreaForAdminOnly=این منطقه در دسترس است فقط برای کاربران مدیر سیستم باشد. هیچ یک از مجوز Dolibarr می تواند از این حد کاهش دهد.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=شما می توانید هر پارامتر مربوط به نگاه Dolibarr را انتخاب کنید و احساس می کنید در اینجا
     AvailableModules=Available app/modules
     ToActivateModule=برای فعال کردن ماژول ها، رفتن در منطقه راه اندازی (صفحه اصلی> راه اندازی-> ماژول).
     SessionTimeOut=وقت برای جلسه
    -SessionExplanation=این تضمین تعدادی است که در جلسه پیش از این هرگز این تاخیر منقضی خواهد شد، اگر پاک کن جلسه توسط داخلی PHP پاک کن را وارد نمایید (و هیچ چیز دیگری) انجام می شود. داخلی پاک کننده را وارد نمایید PHP می کند گارانتی نیست که جلسه درست بعد از این تاخیر به پایان می رسد. این منقضی خواهد شد، پس از این تاخیر، و هنگامی که پاک کن را وارد نمایید به این صورت اجرا می شود، بنابراین هر <b>از٪ s /٪ دسترسی</b> است، اما تنها در دسترسی ساخته شده توسط جلسات دیگر. <br> توجه: در برخی از سرویس دهنده با یک مکانیزم خارجی تمیز کردن را وارد نمایید (cron را تحت اوبونتو ...)، جلسات می تواند پس از یک دوره تعریف شده توسط <strong>session.gc_maxlifetime</strong> به طور پیش فرض از بین برده، بدون توجه به آنچه ارزش در اینجا وارد شده است.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=محرک های موجود
    -TriggersDesc=باعث فایل است که رفتار جریان کار Dolibarr یک بار به <b>htdocs</b> دایرکتوری <b>/ هسته / محرک های</b> کپی شده تغییر می باشد. آنها اقدامات جدید، فعال در حوادث Dolibarr (خلق جدید شرکت، اعتبار صورتحساب، ...) متوجه شدم.
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=راه اندازی در این فایل ها <b>توسط-NORUN</b> پسوند در نام آنها غیر فعال است.
     TriggerDisabledAsModuleDisabled=راه اندازی در این فایل ها غیر فعال هستند به عنوان <b>بخش٪ s</b> غیر فعال است.
     TriggerAlwaysActive=راه اندازی در این فایل همیشه فعال، هر آنچه که می ماژول های Dolibarr فعال می شود.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=محدوده / راه اندازی دقیق
    -LimitsDesc=شما می توانید محدودیت، دقت و بهینه سازی استفاده شده توسط Dolibarr در اینجا تعریف
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=حداکثر اعشار برای قیمت واحد
     MAIN_MAX_DECIMALS_TOT=حداکثر اعشار برای کل قیمت
     MAIN_MAX_DECIMALS_SHOWN=حداکثر اعشار برای قیمت نشان داده شده بر روی صفحه نمایش (اضافه کردن <b>...</b> بعد از این شماره اگر شما می خواهید برای دیدن <b>...</b> وقتی که تعداد ناقص است که بر روی صفحه نمایش نشان داده شده است)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=قیمت واحد خالص محصول
     TotalPriceAfterRounding=قیمت کل (خالص مالیاتی / مالیات بر ارزش افزوده / نرم) پس از گرد کردن
     ParameterActiveForNextInputOnly=پارامتر برای ورودی بعدی موثر تنها
    -NoEventOrNoAuditSetup=هیچ رویداد امنیتی ثبت نشده است. این می تواند طبیعی اگر ممیزی شده است در "راه اندازی - امنیتی - حسابرسی" فعال نیست صفحه.
    -NoEventFoundWithCriteria=هیچ رویداد امنیتی شده است برای چنین معیارهای جستجو در بر داشت.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=مشاهده راه اندازی از sendmail محلی خود
     BackupDesc=برای ایجاد یک پشتیبان کامل از Dolibarr، شما باید:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=دایرکتوری آرشیو شده باید در یک مکان امن ذخیره می شود.
     BackupDescY=فایل روگرفت تولید باید در یک مکان امن ذخیره می شود.
    -BackupPHPWarning=پشتیبان گیری می توانید با این روش نمی توان guaranted. ترجیح می دهند قبل
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=برای بازگرداندن یک نسخه پشتیبان تهیه Dolibarr، شما باید:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=واردات خروجی زیر
     ForcedToByAModule= این قانون توسط یک ماژول فعال <b>به٪ s</b> اجباری
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=شما باید این دستو
     YourPHPDoesNotHaveSSLSupport=توابع SSL در PHP شما موجود نیست
     DownloadMoreSkins=پوسته های بیشتر برای دانلود
     SimpleNumRefModelDesc=بازگرداندن شماره مرجع با فرمت٪ syymm-NNNN که در آن YY سال است، میلی متر در ماه است و NNNN دنباله بدون سوراخ و بدون تنظیم مجدد است
    -ShowProfIdInAddress=نمایش شناسه professionnal با آدرس در اسناد
    -ShowVATIntaInAddress=مخفی کردن مالیات بر ارزش افزوده تعداد داخل با آدرس در اسناد
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=ترجمه جزئی
    -MAIN_DISABLE_METEO=غیر فعال کردن دیدگاه هواشناسی
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=ورود به سیستم تست به API
    -ProxyDesc=برخی از ویژگی های Dolibarr نیاز به دسترسی به اینترنت به کار می کنند. تعریف در اینجا پارامتر ها را برای این. اگر سرور Dolibarr است در پشت یک پروکسی سرور، این پارامترها Dolibarr می گوید که چگونه برای دسترسی به اینترنت از طریق آن.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=دسترسی خارجی
     MAIN_PROXY_USE=استفاده از یک پروکسی سرور (دسترسی در غیر این صورت مستقیم به اینترنت)
     MAIN_PROXY_HOST=نام / آدرس پروکسی سرور
     MAIN_PROXY_PORT=بندر از پروکسی سرور
     MAIN_PROXY_USER=ورود به استفاده از پروکسی سرور
     MAIN_PROXY_PASS=رمز عبور به استفاده از پروکسی سرور
    -DefineHereComplementaryAttributes=تعریف در اینجا تمام صفات، در حال حاضر به طور پیش فرض در دسترس نیست، و این که شما می خواهید برای٪ s پشتیبانی می شود.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=ویژگی های مکمل
     ExtraFieldsLines=ویژگی های مکمل (خط)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=ویژگی های مکمل (thirdparty)
    -ExtraFieldsContacts=ویژگی های مکمل (تماس / آدرس)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=ویژگی های مکمل (عضو)
     ExtraFieldsMemberType=ویژگی های مکمل (نوع عضو)
     ExtraFieldsCustomerInvoices=ویژگی های مکمل (فاکتورها)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=فقط alphanumericals و شخصیت های ح
     SendmailOptionNotComplete=اخطار، در برخی از سیستم های لینوکس، برای ارسال ایمیل از ایمیل شما، از sendmail باید راه اندازی حکم اعدام گزینه-BA (mail.force_extra_parameters پارامتر به یک فایل php.ini خود را). اگر برخی از دریافت کنندگان هرگز ایمیل های دریافت، سعی کنید به ویرایش این پارامتر PHP با mail.force_extra_parameters =-BA).
     PathToDocuments=مسیر اسناد
     PathDirectory=دایرکتوری
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=شما باید حداقل قادر می سازد 1 ماژول
    -ClassNotFoundIntoPathWarning=کلاس٪ s ​​را به مسیر PHP یافت نشد
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=بله در فصل تابستان
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=ذخیره سازی جلسه رمز شده توسط Suhosin
     ConditionIsCurrently=وضعیت در حال حاضر از٪ s
    -YouUseBestDriver=شما با استفاده از راننده٪ است که بهترین راننده های موجود در حال حاضر.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=شما فقط٪ محصولات / خدمات را به پایگاه داده باشد. این به این مورد نیاز هر بهینه سازی خاص است.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=بهینه سازی جستجو
    -YouHaveXProductUseSearchOptim=شما محصول٪ s را به پایگاه داده باشد. شما باید PRODUCT_DONOTSEARCH_ANYWHERE ثابت تا 1 را به خانه، راه اندازی، دیگر اضافه کنید، شما جستجو را محدود به ابتدای رشته های ساخت ممکن است برای پایگاه داده برای استفاده از شاخص و شما باید پاسخ فوری دریافت کنید.
    -BrowserIsOK=شما با استفاده از مرورگر وب از٪ s. این مرورگر خوب برای امنیت و عملکرد است.
    -BrowserIsKO=شما با استفاده از مرورگر وب از٪ s. این مرورگر شناخته شده است به یک انتخاب بد برای امنیت، عملکرد و قابلیت اطمینان. ما recommand شما را به استفاده از فایرفاکس، کروم، اپرا و یا سافاری.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug بارگذاری شده است.
     XCacheInstalled=XCache بارگذاری شده است.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=نسخه فیلد٪ s
     FillThisOnlyIfRequired=به عنوان مثال: +2 (را پر کنید فقط اگر منطقه زمانی جبران مشکلات با تجربه هستند)
     GetBarCode=دریافت بارکد
     ##### Module password generation
     PasswordGenerationStandard=بازگشت یک کلمه عبور تولید شده با توجه به الگوریتم Dolibarr داخلی: 8 کاراکتر شامل اعداد مشترک و شخصیت در حروف کوچک.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=ایمیل مورد نیاز برای ایجاد یک کارب
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=راه اندازی ماژول شرکت
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=اسناد قالب
    -DocumentModelOdt=تولید اسناد از OpenDocuments قالب (. ODT و یا فایل های ODS برای آفیس اپن سورس کنند، KOffice، TextEdit، ...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=تعیین میزان مد آب در پیش نویس سند
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=قوانین در حرفه شناسه
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=لینک صادرات به <b>فرمت٪ s</b> در لینک زیر موجود است:٪ s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=لینک صادرات به <b>فرمت٪ s</b> در لی
     BillsSetup=راه اندازی ماژول فاکتورها
     BillsNumberingModule=فاکتورها و یادداشت های اعتباری مدل شماره
     BillsPDFModules=اسناد فاکتور مدل
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=توجه داشته باشید اعتباری
     CreditNotes=یادداشت های اعتباری
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= مدیریت ورود برای هر عضو
     AdherentMailRequired=ایمیل مورد نیاز برای ایجاد یک عضو جدید
     MemberSendInformationByMailByDefault=جعبه برای ارسال از تایید پست الکترونیکی به کاربران (اعتبار سنجی و یا اشتراک جدید) است به صورت پیش فرض
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP راه اندازی
     LDAPGlobalParameters=پارامترهای جهانی
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= تست یک جستجوی LDAP
     LDAPSynchroOK=آزمون موفقیت آمیز هماهنگ سازی
     LDAPSynchroKO=آزمون هماهنگ سازی ناموفق
    -LDAPSynchroKOMayBePermissions=آزمون هماهنگ سازی شکست خورده است. بررسی کنید که اتصال به سرور به درستی پیکربندی شده و اجازه می دهد تا udpates LDAP
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP اتصال به سرور LDAP موفق (سرور =٪ S، بندر =٪ بازدید کنندگان)
     LDAPTCPConnectKO=TCP اتصال به سرور LDAP شکست خورده (سرور =٪ S، بندر =٪ بازدید کنندگان)
    -LDAPBindOK=به سرور LDAP اتصال / Authentificate موفق (سرور =٪ S، بندر =٪ S، مدیر =٪ ثانیه، رمز عبور =٪ بازدید کنندگان)
    -LDAPBindKO=به سرور LDAP اتصال / Authentificate شکست خورده (سرور =٪ S، بندر =٪ S، مدیر =٪ ثانیه، رمز عبور =٪ بازدید کنندگان)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=سرور LDAP پیکربندی از نسخه 3
     LDAPSetupForVersion2=سرور LDAP پیکربندی شده برای نسخه 2
     LDAPDolibarrMapping=نقشه برداری Dolibarr
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=ورود (سامبا، با Active Directory)
     LDAPFieldLoginSambaExample=به عنوان مثال: samaccountname
     LDAPFieldFullname=نام و نام خانوادگی
     LDAPFieldFullnameExample=به عنوان مثال: را انتخاب نمایید:
    -LDAPFieldPasswordNotCrypted=رمز عبور crypted نمی
    -LDAPFieldPasswordCrypted=رمز عبور crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=به عنوان مثال: userPassword
     LDAPFieldCommonNameExample=به عنوان مثال: را انتخاب نمایید:
     LDAPFieldName=نام
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=ارزش به عنوان مثال برای <b>OpenLDAP</b> با زیر طرحواره لود طراحی: <b>core.schema، cosine.schema، inetorgperson.schema).</b> اگر شما استفاده از thoose ارزش ها و OpenLDAP، تغییر پیکربندی LDAP فایل <b>slapd.conf</b> خود را به تمام طرحواره thoose لود می شود.
     ForANonAnonymousAccess=برای دسترسی تصدیق (برای دسترسی به عنوان مثال)
     PerfDolibarr=گزارش راه اندازی عملکرد / بهینه سازی
    -YouMayFindPerfAdviceHere=شما در این صفحه برخی از چک و یا توصیه های مربوط به عملکرد پیدا کنید.
    -NotInstalled=نصب نشده است، به طوری که سرور شما توسط این نمی کند.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=کش کاربردی
     MemcachedNotAvailable=بدون کش عملی در بر داشت. شما می توانید عملکرد با نصب کش Memcached سرور و ماژول قادر به استفاده از این کش سرور را بالا ببرد. <br> اطلاعات بیشتر در اینجا <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a> . <br> توجه داشته باشید که بسیاری از ارائه دهنده خدمات میزبانی وب چنین کش سرور ارائه نمی دهد.
     MemcachedModuleAvailableButNotSetup=ماژول memcached برای ذخیره سازی عملی در بر داشت اما راه اندازی ماژول کامل نیست.
     MemcachedAvailableAndSetup=memcached ماژول اختصاص داده شده به استفاده از سرور memcached را فعال کنید.
     OPCodeCache=کش شناسنده
    -NoOPCodeCacheFound=بدون کش شناسنده یافت. ممکن است شما با استفاده از یکی دیگر از کش شناسنده از XCache یا eAccelerator (خوب)، ممکن است شما کش شناسنده (خیلی بد) ندارد.
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=کش HTTP برای منابع استاتیک (css، img، جاوا اسکریپت)
     FilesOfTypeCached=فایل های از نوع٪ s را با HTTP سرور ذخیره سازی
     FilesOfTypeNotCached=فایل های از نوع٪ s را با HTTP سرور کش نشده
     FilesOfTypeCompressed=فایل های از نوع٪ s را با HTTP سرور فشرده
     FilesOfTypeNotCompressed=فایل های از نوع٪ s را با HTTP سرور فشرده نیست
     CacheByServer=کش سرور
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=کش شده توسط مرورگر
     CompressionOfResources=فشرده سازی از پاسخهای HTTP
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=راه اندازی ماژول محصولات
     ServiceSetup=راه اندازی خدمات ماژول
     ProductServiceSetup=راه اندازی محصولات و خدمات ماژول ها
     NumberOfProductShowInSelect=تعداد حداکثر از محصولات در combos را از لیست انتخاب کنید (0 = بدون محدودیت)
    -ViewProductDescInFormAbility=تجسم از توصیف محصول در اشکال (در غیر این صورت به عنوان دوست پنجره)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=همچنین اگر شما تعداد زیادی از محصول (> 100 000)، شما می توانید سرعت با تنظیم PRODUCT_DONOTSEARCH_ANYWHERE ثابت به 1 در راه اندازی-> دیگر افزایش دهد. جست و جو خواهد شد و سپس محدود به شروع از رشته است.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=فرض نوع بارکد استفاده برای محصولات
     SetDefaultBarcodeTypeThirdParties=فرض نوع بارکد استفاده برای اشخاص ثالث
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=در حال ارسال راه اندازی ماژول
     SendingsReceiptModel=ارسال مدل رسید
     SendingsNumberingModules=Sendings تعداد ماژول ها
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=محصولات تحویل رسید ماژول شماره
    @@ -1515,18 +1529,18 @@ AdvancedEditor=ویرایشگر پیشرفته
     ActivateFCKeditor=فعال کردن ویرایشگر پیشرفته برای:
     FCKeditorForCompany=ایجاد WYSIWIG / نسخه عناصر توضیحات و توجه داشته باشید (به جز محصولات / خدمات)
     FCKeditorForProduct=ایجاد WYSIWIG / نسخه از محصولات / خدمات شرح و توجه داشته باشید
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= ایجاد WYSIWIG / نسخه برای eMailings جرم (ابزار> ایمیل)
     FCKeditorForUserSignature=ایجاد WYSIWIG / نسخه از امضای کاربر
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=اتصال موفق پایگاه داده اما به نظر نمی آید که یک پایگاه داده آهنگ تولد (٪ بازدید کنندگان کلیدی در جدول٪ s را یافت نشد).
    -OSCommerceTestOk=اتصال به سرور '٪ s' را در پایگاه داده '٪ s' را با کاربر '٪ s' موفق.
    -OSCommerceTestKo1=اتصال به کارگزار «٪ s 'موفق اما پایگاه داده'٪ s 'را نمی تواند رسید.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=اتصال به سرور '٪ s' را در پایگاه داده '٪ s' را با کاربر '٪ s' موفقیت آمیز.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=اتصال به کارگزار «٪ s 'با کاربر'٪ s 'شکست خورده است.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=منوی حذف
     Menus=منوها
    @@ -1548,7 +1562,7 @@ DetailRight=وضعیت برای نمایش منوها خاکستری غیر مج
     DetailLangs=نام فایل زبان برای ترجمه کد برچسب
     DetailUser=کارورز / خارج / همه
     Target=هدف
    -DetailTarget=هدف در پیوندهای (_blank بالا باز کردن یک پنجره جدید)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=سطح (-1: منوی بالای صفحه، 0: منو هدر،> 0 منو و زیر منو)
     ModifMenu=تغییر منو
     DeleteMenu=حذف ورود به منو
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=مالیات بر ارزش افزوده است به دلی
     OptionVatDebitOptionDesc=مالیات بر ارزش افزوده است به دلیل: <br> - تحویل کالا (ما استفاده از تاریخ فاکتور) <br> - در فاکتور (بدهی) برای خدمات
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=زمان exigibility مالیات بر ارزش افزوده به طور پیش فرض با توجه به گزینه انتخاب شده:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=در هنگام تحویل
     OnPayment=در پرداخت
     OnInvoice=در هنگام قبض
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=خرید حساب. رمز
     AgendaSetup=رویدادها و برنامه راه اندازی ماژول
     PasswordTogetVCalExport=کلیدی به اجازه لینک صادرات
     PastDelayVCalExport=آیا رویداد صادرات و نه بزرگتر از
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=تنظیم به صورت خودکار این نوع از رویداد را به فیلتر جستجو از نظر دستور کار
    -AGENDA_DEFAULT_FILTER_STATUS=تنظیم به صورت خودکار این وضعیت رویدادی به فیلتر جستجو از نظر دستور کار
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=کدام زبانه می خواهید برای باز کردن به طور پیش فرض هنگام انتخاب دستور کار منو
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=کلیک کنید تا شماره گیری راه اندازی ماژول
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=نقطه ای از فروش
     CashDeskSetup=نقطه ای از راه اندازی ماژول فروش
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=پیش فرض حساب استفاده برای دریافت پرداخت های نقدی
     CashDeskBankAccountForCheque= پیش فرض حساب استفاده برای دریافت پرداخت توسط چک
     CashDeskBankAccountForCB= پیش فرض حساب استفاده برای دریافت پرداخت توسط کارت های اعتباری
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=راه اندازی ماژول چوب الف
    -BookmarkDesc=این ماژول به شما اجازه مدیریت بوک مارک ها. شما همچنین می توانید کلید های میانبر برای هر صفحه Dolibarr و یا وب سایت های externale در منوی سمت چپ خود را اضافه کنید.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=بیشترین تعداد بوک مارک های به نمایش در منو سمت چپ
     ##### WebServices #####
     WebServicesSetup=راه اندازی ماژول Webservices
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=چند شرکت نصب ماژول
     ##### Suppliers #####
     SuppliersSetup=تامین کننده راه اندازی ماژول
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=فاکتورها تامین کننده شماره مدل
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=راه اندازی ماژول پروژه
     ProjectsModelModule=گزارش پروژه مدل سند
     TasksNumberingModules=ماژول وظایف شماره
     TaskModelModule=گزارش کارهای سند مدل
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=ثابت منطقه زمانی
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=زیپ
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/fa_IR/banks.lang b/htdocs/langs/fa_IR/banks.lang
    index 8db4ed8c266..74533e317b4 100644
    --- a/htdocs/langs/fa_IR/banks.lang
    +++ b/htdocs/langs/fa_IR/banks.lang
    @@ -7,7 +7,7 @@ BankName=نام بانک
     FinancialAccount=حساب
     BankAccount=حساب بانکی
     BankAccounts=حسابهای بانکی
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=نيازمندی های حساب مالی شخص
     AccountLabel=برچسب حساب مالی
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=آدرس حساب
     BankAccountCountry=کشور حساب
     BankAccountOwner=نام صاحب حساب
     BankAccountOwnerAddress=حساب آدرس صاحب
    -RIBControlError=کنترل یکپارچگی از ارزش مواجه شد. این به این معنی اطلاعات برای این شماره حساب است کامل و یا اشتباه نیست (چک کشور، اعداد و IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=ایجاد حساب کاربری
     NewBankAccount=حساب کاربری جدید
     NewFinancialAccount=الحساب المالي الجديد
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=می توان آشتی
     Conciliate=وفق دادن
     Conciliation=مصالحه
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=شامل حساب های بسته شده
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=انتقال بانک
     BankTransfers=نقل و انتقالات بانکی
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=از
     TransferTo=به
     TransferFromToDone=ونقل من هناك إلى ٪ <b>٪ ق ق ق ٪</b> ٪ وقد سجلت ق.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=چک های بانکی
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=نمایش چک دریافت سپرده
    -NumberOfCheques=Nb در چک
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=برگشت به حساب
     ShowAllAccounts=نمایش برای همه حساب ها
    -FutureTransaction=معامله در futur. هیچ راهی برای مصالحه.
    -SelectChequeTransactionAndGenerate=انتخاب چک / فیلتر به چک دریافت سپرده شامل و کلیک بر روی "ایجاد".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=در نهایت، تعیین یک دسته بندی است که در آن برای طبقه بندی پرونده
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/fa_IR/bills.lang b/htdocs/langs/fa_IR/bills.lang
    index 11e30d192d4..c8a92d600c1 100644
    --- a/htdocs/langs/fa_IR/bills.lang
    +++ b/htdocs/langs/fa_IR/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=فاکتورمقدماتی
     InvoiceProFormaDesc=<b>فاکتور را</b> یک تصویر از یک فاکتور درست است اما هیچ ارزش حسابداری.
     InvoiceReplacement=فاکتور تعویض
     InvoiceReplacementAsk=فاکتور جایگزین برای فاکتور
    -InvoiceReplacementDesc=<b>فاکتور جایگزین</b> استفاده شده است به لغو و جایگزین به طور کامل صورت حساب بدون پرداخت در حال حاضر دریافت. <br><br> نکته: فقط فاکتورها بدون پرداخت بر روی آن را می توان جایگزین کرد. اگر صورت حساب را عوض کنید هنوز بسته نشده است، آن را به طور خودکار به "رها" بسته است.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=توجه داشته باشید اعتباری
     InvoiceAvoirAsk=توجه داشته باشید اعتباری برای اصلاح صورت حساب
    -InvoiceAvoirDesc=<b>توجه داشته باشید اعتباری</b> فاکتور منفی استفاده می شود برای حل این واقعیت است که فاکتور دارای مقدار است که از مقدار واقعا پرداخت می شود، متفاوت است (به دلیل مشتری های خطا بیش از حد پرداخت می شود، و یا به طور کامل پرداخت می شود چرا که او بازگشت برخی از محصولات به عنوان مثال) است.
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=ایجاد اعتبار توجه با خطوط از فاکتور مبدا
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=پرداخت به عقب
     DeletePayment=حذف پرداخت
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=تولید کنندگان پرداخت
     ReceivedPayments=دریافت پرداخت
     ReceivedCustomersPayments=پرداخت دریافت از مشتریان
    -PayedSuppliersPayments=پرداخت غیر انتفایی به تامین کنندگان
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=مشتریان دریافت پرداخت ها به اعتبار
     PaymentsReportsForYear=گزارش پرداخت برای٪ s
     PaymentsReports=گزارش پرداخت
    @@ -91,8 +91,8 @@ PaymentConditionsShort=شرایط پرداخت
     PaymentAmount=مقدار پرداخت
     ValidatePayment=اعتبار پرداخت
     PaymentHigherThanReminderToPay=پرداخت بالاتر از یادآوری به پرداخت
    -HelpPaymentHigherThanReminderToPay=توجه، مقدار پرداخت یک یا چند صورت حساب بالاتر از بقیه به پرداخت است. <br> ویرایش ورود خود را، در غیر این صورت تایید و فکر می کنم در مورد ایجاد توجه داشته باشید اعتباری بیش از حد دریافت شده در هر فاکتورها پرداخت.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=طبقه بندی 'پرداخت'
     ClassifyPaidPartially=طبقه بندی 'پرداخت تا حدی'
     ClassifyCanceled=طبقه بندی 'رها'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=بسته (بدون حقوق)
     BillStatusClosedPaidPartially=پرداخت (تا حدی)
     BillShortStatusDraft=پیش نویس
     BillShortStatusPaid=پرداخت
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=پرداخت
     BillShortStatusCanceled=متروک
     BillShortStatusValidated=اعتبار
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=بسته
     BillShortStatusClosedPaidPartially=پرداخت (تا حدی)
     PaymentStatusToValidShort=به اعتبار
    -ErrorVATIntraNotConfigured=تعداد مالیات بر ارزش افزوده Intracommunautary هنوز تعریف نشده
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=بدون حالت پرداخت به طور پیش فرض تعریف شده است. برو به نصب ماژول فاکتور به رفع این.
     ErrorCreateBankAccount=ایجاد یک حساب بانکی، سپس به پنل راه اندازی ماژول فاکتور به تعریف حالت های پرداخت
     ErrorBillNotFound=فاکتور٪ s وجود ندارد
    -ErrorInvoiceAlreadyReplaced=خطا، شما سعی می کنید به اعتبار صورتحساب به جای صورتحساب٪ است. اما این یکی در حال حاضر توسط فاکتور٪ s را جایگزین کرد.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=خطا، تخفیف ویژه در حال حاضر استفاده می شود
     ErrorInvoiceAvoirMustBeNegative=خطا، فاکتور صحیح باید یک مقدار منفی داشته
     ErrorInvoiceOfThisTypeMustBePositive=خطا، این نوع از فاکتور باید یک مقدار مثبت
     ErrorCantCancelIfReplacementInvoiceNotValidated=خطا، می تواند یک فاکتور است که توسط فاکتور دیگری است که هنوز هم در وضعیت پیش نویس جایگزین لغو کنید
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=از
     BillTo=به
     ActionsOnBill=عملیات در فاکتور
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=مشتری بد
     ConfirmClassifyPaidPartiallyReasonProductReturned=محصولات نیمه بازگشت
     ConfirmClassifyPaidPartiallyReasonOther=میزان دلیل دیگر رها
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=این انتخاب ممکن است اگر صورت حساب خود را با نظر مناسب ارائه شده است. (به عنوان مثال «تنها مالیات مربوط به قیمت است که در واقع پرداخت شده است را می دهد حقوق به کسر»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=در برخی از کشورها، این انتخاب ممکن است تنها اگر صورت حساب خود شامل توجه داشته باشید درست است.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=با استفاده از این انتخاب اگر تمام دیگر مناسب نیست
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>مشتری بد</b> یک مشتری که به پرداخت بدهی خود امتناع است.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=این گزینه استفاده می شود که پرداخت کامل نیست چرا که برخی از محصولات بازگردانده شدند
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=با استفاده از این انتخاب اگر تمام دیگر مناسب نیست، به عنوان مثال در شرایط زیر است: <br> - پرداخت کامل نیست چرا که برخی از محصولات پشت حمل می شد <br> - مقدار بیش از حد مهم است ادعا کرد به دلیل تخفیف به فراموشی سپرده شد <br> در همه موارد، مقدار بیش از حد ادعا باید در سیستم حسابداری با ایجاد یک یادداشت اعتباری را اصلاح کرد.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=دیگر
     ConfirmClassifyAbandonReasonOtherDesc=این انتخاب خواهد شد در تمام موارد دیگر استفاده می شود. به عنوان مثال دلیل این که شما برنامه ریزی برای ایجاد یک فاکتور جایگزین.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=اعتبار فاکتور
     UnvalidateBill=فاکتور Unvalidate
    -NumberOfBills=Nb و از فاکتورها
    -NumberOfBillsByMonth=Nb و از فاکتورها در ماه
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=مقدار فاکتورها
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=مقدار فاکتورها توسط ماه (خالص از مالیات)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=نمایش فاکتور
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=صورت حساب مشتری و خطوط صورت حساب را
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=صورت حساب مشتری و پرداخت
    -ExportDataset_invoice_1=فهرست فاکتورها مشتری و خطوط صورت حساب را
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=صورت حساب مشتری و پرداخت
     ProformaBill=PROFORMA بیل:
     Reduction=کاهش
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=آدرس بیل
    -HelpEscompte=این تخفیف تخفیف اعطا شده به مشتری است، زیرا پرداخت آن قبل از واژه ساخته شده است.
    -HelpAbandonBadCustomer=این مقدار متوقف شده (مشتری گفته می شود یک مشتری بد) است و به عنوان یک شل استثنایی در نظر گرفته.
    -HelpAbandonOther=این مقدار متوقف شده از آن خطا بود (مشتری اشتباه و یا فاکتور های دیگر به عنوان مثال به جای)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=شناسه پرداخت
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=بدون فاکتور انتخاب شده
     CloneInvoice=فاکتور کلون
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=اقدام غیر فعال به دلیل فاکتور جایگزین شده است
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb و پرداخت
    +DescTaxAndDividendsArea=این منطقه خلاصه ای از تمام پرداخت های ساخته شده برای مصارف خاص است. تنها پرونده با پرداخت در طول سال ثابت هستند در اینجا گنجانده شده است.
    +NbOfPayments=No. of payments
     SplitDiscount=تخفیف تقسیم در دو
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=مقدار ورودی برای هر یک از دو بخش است:
    -TotalOfTwoDiscountMustEqualsOriginal=مجموع دو تخفیف های جدید باید به مقدار تخفیف اصلی برابر باشد.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=فاکتور های مرتبط
     RelatedBills=فاکتورها مرتبط
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=بررسی
     PaymentTypeShortCHQ=بررسی
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=در پرداخت خط
    -PaymentTypeShortVAD=در پرداخت خط
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=پیش نویس
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=اطلاعات بانکی
     BankCode=کد بانک
    -DeskCode=کد میز
    +DeskCode=Office code
     BankAccountNumber=شماره حساب
    -BankAccountNumberKey=کلید
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=شماره IBAN
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=BIC / تعداد SWIFT
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=پرداخت از طریق انتقال در
     VATIsNotUsedForInvoice=* مالیات بر ارزش افزوده غیر قابل اجرا هنر 293B از CGI
     LawApplicationPart1=با استفاده از قانون 80.335 از 12/05/80
     LawApplicationPart2=کالا باقی می ماند دارایی
    -LawApplicationPart3=فروشنده تا تجاری کامل
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=قیمت خود را.
     LimitedLiabilityCompanyCapital=SARL با سرمایه از
     UseLine=درخواست
    @@ -463,7 +465,7 @@ Cheques=چک
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=استفاده از حسابداری و مدیریت مشتری آدرس تماس به جای آدرس شخص ثالث به عنوان دریافت کننده برای صورت حساب
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=نمایش همه فاکتورها پرداخت نشده
     ShowUnpaidLateOnly=نمایش فاکتورها اواخر سال پرداخت نشده و تنها
     PaymentInvoiceRef=پرداخت صورتحساب از٪ s
    @@ -474,21 +476,22 @@ Reported=به تاخیر افتاده
     DisabledBecausePayments=ممکن نیست زیرا بعضی از پرداخت وجود دارد
     CantRemovePaymentWithOneInvoicePaid=آیا می توانم پرداخت را حذف کنید از حداقل یک فاکتور طبقه بندی شده پرداخت می شود وجود دارد
     ExpectedToPay=پرداخت مورد انتظار
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=پرداخت شده توسط این پرداخت
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=طبقه بندی "پرداخت" تمام یادداشت های اعتباری به طور کامل دوباره پرداخت می شود.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=همه فاکتور بدون باقی می ماند به پرداخت به طور خودکار به وضعیت "پرداخت" بسته است.
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=پرداخت
     ToMakePaymentBack=پرداخت
     ListOfYourUnpaidInvoices=فهرست فاکتورها پرداخت نشده
     NoteListOfYourUnpaidInvoices=توجه: این لیست فقط شامل صورت حساب برای اشخاص ثالث به شما به عنوان یک نماینده فروش مرتبط است.
     RevenueStamp=تمبر درآمد
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=فاکتور PDF قالب Crabe. قالب فاکتور کامل (قالب توصیه می شود)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=تعداد بازگشت با فرمت٪ syymm-NNNN برای فاکتورها استاندارد و٪ syymm-NNNN برای یادداشت های اعتباری که در آن YY سال است، میلی متر در ماه است و NNNN دنباله بدون استراحت و بدون بازگشت به 0 است
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/fa_IR/cashdesk.lang b/htdocs/langs/fa_IR/cashdesk.lang
    index 7f3c5e3d4fd..67936820791 100644
    --- a/htdocs/langs/fa_IR/cashdesk.lang
    +++ b/htdocs/langs/fa_IR/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=نمایش شرکت
     ShowStock=نمایش انبار
     DeleteArticle=برای حذف این مقاله کلیک کنید
     FilterRefOrLabelOrBC=جستجو (کد عکس / برچسب)
    -UserNeedPermissionToEditStockToUsePos=از شما خواسته شده تا موجودی انبار را هنگام ایجاد فاکتور کاهش دهید، بنابراین کاربری که از POS استفاده می کند می بایست اجازه ویرایش انبار را داشته باشد.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=نقطه ای از فروش
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/fa_IR/commercial.lang b/htdocs/langs/fa_IR/commercial.lang
    index 5f357b8e982..5b3c0791bdb 100644
    --- a/htdocs/langs/fa_IR/commercial.lang
    +++ b/htdocs/langs/fa_IR/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=تلفن تماس
     ActionAC_FAX=ارسال فکس
     ActionAC_PROP=ارسال پیشنهاد از طریق پست
     ActionAC_EMAIL=ارسال ایمیل
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=جلسات
     ActionAC_INT=مداخله در سایت
     ActionAC_FAC=ارسال صورت حساب به مشتری از طریق پست
    @@ -72,8 +73,8 @@ StatusProsp=وضعیت چشم انداز
     DraftPropals=طرح تجاری پیش نویس
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/fa_IR/companies.lang b/htdocs/langs/fa_IR/companies.lang
    index e5c540124da..abcf66f09fd 100644
    --- a/htdocs/langs/fa_IR/companies.lang
    +++ b/htdocs/langs/fa_IR/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=انتخاب شخص ثالث
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=حذف یک تماس / آدرس
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=شخص ثالث جدید
    -MenuNewCustomer=مشتری جدید
    -MenuNewProspect=چشم انداز جدید
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=فردی خصوصی جدید
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=شخص ثالث تماس با ما / آدرس
     Company=شرکت
     CompanyName=نام شرکت
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=شرکت
    -CountryIsInEEC=کشور است در داخل جامعه اقتصادی اروپا
    -ThirdPartyName=نام و نام خانوادگی شخص ثالث
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=شخص ثالث
    -ThirdParties=احزاب سوم
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=چشم انداز
     ThirdPartyProspectsStats=چشم انداز
     ThirdPartyCustomers=مشتریان
     ThirdPartyCustomersStats=مشتریان
     ThirdPartyCustomersWithIdProf12=مشتریان با٪ s یا٪ s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=نوع شخص ثالث
    +ThirdPartyType=Type of company
     Individual=فردی خصوصی
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=شرکت مادر
     Subsidiaries=شرکتهای تابعه
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=کد پستی
     Town=شهرستان
     Web=وب سایت
     Poste= درجه
    -DefaultLang=زبان پیش فرض
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=پیشنهادات
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=نحو معتبر است
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=این مشتری است تخفیف به طور پی
     CompanyHasNoRelativeDiscount=این مشتری ندارد تخفیف نسبی به طور پیش فرض
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=این مشتری هنوز یادداشت های اعتباری <b>برای٪ s٪</b> s را
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=هیچ یک
    -Supplier=تامین کننده
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=ویرایش مخاطب
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=حذف یک شرکت
     PersonalInformations=اطلاعات شخصی
     AccountancyCode=حساب حسابداری
    -CustomerCode=کد مشتری
    -SupplierCode=Vendor code
    -CustomerCodeShort=کد مشتری
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=کد مشتری، منحصر به فرد برای همه مشتریان
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=در صورتیکه شخص ثالث یک مشتری و یا چشم انداز است
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=اعتبار کنترل های ماژول
    -ThisIsModuleRules=این قوانین برای این ماژول است
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=چشم انداز تماس
     CompanyDeleted=شرکت "٪ s" را حذف از پایگاه داده.
     ListOfContacts=لیست مخاطبین / آدرس
     ListOfContactsAddresses=لیست مخاطبین / آدرس
    -ListOfThirdParties=فهرست اشخاص ثالث
    -ShowCompany=Show third party
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=نمایش تماس
     ContactsAllShort=همه (بدون فیلتر)
     ContactType=تماس با نوع
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=این تماس یک تماس برای هر پیشنها
     NoContactForAnyContract=این تماس یک تماس برای هر قرارداد
     NoContactForAnyInvoice=این تماس یک تماس برای هر فاکتور نمی
     NewContact=تماس جدید
    -NewContactAddress=تماس جدید / آدرس
    +NewContactAddress=New Contact/Address
     MyContacts=مخاطبین من
     Capital=سرمایه
     CapitalOf=سرمایه از٪ s
     EditCompany=ویرایش شرکت
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=تصفیه
    -VATIntraCheckDesc=لینک <b>از٪ s</b> اجازه می دهد تا به درخواست سرویس جستجوگر مالیات بر ارزش افزوده اروپا. دسترسی به اینترنت خارجی را از سرور مورد نیاز است برای این سرویس به کار می کنند.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=ورود به Intracomunnautary مالیات بر ارزش افزوده در سایت کمیسیون اروپا
    -VATIntraManualCheck=شما همچنین می توانید به صورت دستی از اروپا وب سایت بررسی <a href="%s" target="_blank">از٪ s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=ورود امکان پذیر نیست. خدمات تصفیه توسط دولت عضو (٪ بازدید کنندگان) ارائه نشده است.
    -NorProspectNorCustomer=و نه چشم انداز، و نه مشتری
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=کارکنان
     ProspectLevelShort=پتانسیل
     ProspectLevel=بالقوه چشم انداز
    @@ -387,12 +387,12 @@ ExportCardToFormat=کارت صادرات به فرمت
     ContactNotLinkedToCompany=تماس با به هر شخص ثالث مرتبط نیست
     DolibarrLogin=ورود Dolibarr
     NoDolibarrAccess=بدون دسترسی Dolibarr
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=اطلاعات تماس و خواص
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=سطح قیمت
     DeliveryAddress=آدرس تحویل
     AddAddress=اضافه کردن آدرس
    @@ -402,16 +402,16 @@ DeleteFile=حذف فایل
     ConfirmDeleteFile=آیا مطمئن هستید که می خواهید این فایل را حذف کنید؟
     AllocateCommercial=Assigned to sales representative
     Organization=سازمان
    -FiscalYearInformation=اطلاعات در سال مالی
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=شروع ماه از سال مالی
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=فهرست چشم انداز
    -ListCustomersShort=فهرست مشتریان
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=مجموع اشخاص ثالث منحصر به فرد
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=باز
     ActivityCeased=بسته
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=لایحه برجسته کنونی
     OutstandingBill=حداکثر. برای لایحه برجسته
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=کد آزاد است. این کد را می توان در هر زمان تغییر یافتهاست.
     ManagingDirectors=مدیر (بازدید کنندگان) نام (مدیر عامل شرکت، مدیر، رئيس جمهور ...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/fa_IR/dict.lang b/htdocs/langs/fa_IR/dict.lang
    index be678a6bd65..585a88e51e6 100644
    --- a/htdocs/langs/fa_IR/dict.lang
    +++ b/htdocs/langs/fa_IR/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=جزیره هرد و مک دونالد
     CountryVA=مقدس (شهر واتیکان)
     CountryHN=هندوراس
     CountryHK=هنگ کنگ
    -CountryIS=ایسلند
    +CountryIS=Iceland
     CountryIN=هندوستان
     CountryID=اندونزی
     CountryIR=ایران
    @@ -131,7 +131,7 @@ CountryKI=کیریباتی
     CountryKP=کره شمالی
     CountryKR=کره جنوبی
     CountryKW=کویت
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=لائوس
     CountryLV=لتونی
     CountryLB=لبنان
    @@ -160,7 +160,7 @@ CountryMD=مولدووا
     CountryMN=مغولستان
     CountryMS=Monserrat از
     CountryMZ=موزامبیک
    -CountryMM=Birmania (میانمار)
    +CountryMM=Myanmar (Burma)
     CountryNA=نامیبیا
     CountryNR=نائورو
     CountryNP=نپال
    @@ -223,7 +223,7 @@ CountryTO=تونگا
     CountryTT=ترینیداد و توباگو
     CountryTR=بوقلمون
     CountryTM=ترکمنستان
    -CountryTC=جزایر ترک و Cailos
    +CountryTC=Turks and Caicos Islands
     CountryTV=تووالو
     CountryUG=اوگاندا
     CountryUA=اوکراین است
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=روپیه موریس
     CurrencySingMUR=روپیه موریس
     CurrencyNOK=krones نروژی
    -CurrencySingNOK=کرون نروژی
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=دینار تونس
     CurrencySingTND=دینار تونس
     CurrencyUSD=دلار آمریکا
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=دهان به دهان
     DemandReasonTypeSRC_PARTNER=شریک
     DemandReasonTypeSRC_EMPLOYEE=کارمند
     DemandReasonTypeSRC_SPONSORING=ضمانت
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=نوع 4A0
     PaperFormatEU2A0=نوع 2A0
    diff --git a/htdocs/langs/fa_IR/ecm.lang b/htdocs/langs/fa_IR/ecm.lang
    index 9cb9e2cf546..72c710e913f 100644
    --- a/htdocs/langs/fa_IR/ecm.lang
    +++ b/htdocs/langs/fa_IR/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb و اسناد در دایرکتوری
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=دایرکتوری
     ECMSectionManual=دایرکتوری دستی
     ECMSectionAuto=دایرکتوری ها به صورت خودکار
    @@ -34,6 +34,8 @@ ECMDocsByProjects=اسناد مربوط به پروژه
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=بدون دایرکتوری ایجاد شده
     ShowECMSection=نمایش دایرکتوری
     DeleteSection=حذف دایرکتوری
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/fa_IR/errors.lang b/htdocs/langs/fa_IR/errors.lang
    index 89754d79012..e7d07cafaea 100644
    --- a/htdocs/langs/fa_IR/errors.lang
    +++ b/htdocs/langs/fa_IR/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=مقدار «٪ s 'است قالب تاریخ اشتباه
     ErrorWrongDate=تاریخ صحیح نمی باشد!
     ErrorFailedToWriteInDir=برای نوشتن در پوشه٪ s شکست خورد
     ErrorFoundBadEmailInFile=یافت نحو ایمیل نادرست برای٪ s خط در فایل (به عنوان مثال خط٪ با ایمیل =٪ بازدید کنندگان)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=برخی از زمینه های مورد نیاز است نه شد.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=برای ایجاد یک دایرکتوری شکست خورده است. بررسی کنید که کاربر وب سرور دارای مجوز به ارسال به Dolibarr دایرکتوری اسناد. اگر <b>safe_mode</b> پارامتر در این PHP را فعال کنید، بررسی کنید که فایل های پی اچ پی Dolibarr صاحب به کاربر وب سرور (یا گروه).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=لطفا ارزش برای انتخاب لیست را
     ErrorNoValueForCheckBoxType=لطفا ارزش برای استخراج را پر کنید
     ErrorNoValueForRadioType=لطفا ارزش برای فهرست های رادیویی را پر کنید
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=<b>٪</b> درست <b>ها</b> باید شامل کاراکترهای خاص نیست.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=بدون ماژول حسابداری فعال
     ErrorExportDuplicateProfil=این نام مشخصات در حال حاضر برای این مجموعه صادرات وجود دارد.
     ErrorLDAPSetupNotComplete=تطبیق Dolibarr-LDAP کامل نیست.
     ErrorLDAPMakeManualTest=فایل LDIF. شده است در شاخه٪ s تولید می شود. سعی کنید به آن بار دستی از خط فرمان به کسب اطلاعات بیشتر در مورد خطا است.
    -ErrorCantSaveADoneUserWithZeroPercentage=آیا می توانم اقدام با "statut آغاز شده است" اگر درست "انجام شده توسط" نیز پر را نجات دهد.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=کد عکس مورد استفاده برای ایجاد وجود دارد.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=می توانید ضبط را حذف کنید. این است که در حال حاضر به شی دیگر استفاده می شود و یا گنجانده شده است.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=جاوا اسکریپت نمی باید غیر فعال شود که این ویژگی کار. برای فعال کردن / غیر فعال کردن جاوا اسکریپت، رفتن به منو صفحه اصلی> راه اندازی> نمایش.
     ErrorPasswordsMustMatch=هر دو کلمه عبور تایپ شده باید با یکدیگر مطابقت
    -ErrorContactEMail=یک خطای فنی رخ داد. لطفا، با مدیر سایت تماس به زیر ایمیل <b>از٪ s</b> EN ارائه کد <b>خطا٪ s</b> در پیام خود، و یا حتی بهتر با اضافه کردن یک کپی روی صفحه نمایش از این صفحه.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=ارزش اشتباه برای تعداد <b>فیلد٪ s</b> (مقدار <b>«٪ s» به</b> عبارت منظم حکومت <b>از٪ s</b> مطابقت ندارد)
     ErrorFieldValueNotIn=ارزش اشتباه برای تعداد <b>فیلد٪ s</b> (مقدار <b>«٪ s»</b> است مقدار موجود در <b>فیلد٪ s را</b> از <b>جدول٪ نیست)</b>
     ErrorFieldRefNotIn=ارزش اشتباه برای تعداد <b>فیلد٪ s</b> (مقدار <b>«٪ s»</b> است <b>از٪ s</b> کد عکس موجود نیست)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=برنامه آنتی ویروس قادر به ا
     ErrorSpecialCharNotAllowedForField=شخصیت های ویژه برای رشته "٪ s" مجاز نیست
     ErrorNumRefModel=مرجع به پایگاه داده وجود دارد (٪ s) و سازگار با این قانون شماره نیست. حذف رکورد و یا مرجع تغییر نام داد و به این ماژول را فعال کنید.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=خطا در ماسک
     ErrorBadMaskFailedToLocatePosOfSequence=خطا، ماسک بدون شماره ترتیب
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=خطا، مقدار تنظیم مجدد بد
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=خطا. حداقل یک ورودی را انتخاب کنید.
    -ErrorDeleteNotPossibleLineIsConsolidated=حذف ممکن نیست چون رکورد به یک transation بانکی است که با آشتی خاتمه نیافت مرتبط
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=٪ s را به یک سوم دیگر اختصاص داده
     ErrorFailedToSendPassword=برای ارسال رمز عبور ناموفق
     ErrorFailedToLoadRSSFile=نتواند به دریافت خوراک RSS. سعی کنید برای اضافه کردن MAIN_SIMPLEXMLLOAD_DEBUG ثابت اگر پیغام خطا می کند اطلاعات کافی را فراهم نمی کند.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=کاربر با ورود <b>به٪ s را</b> می تو
     ErrorLoginHasNoEmail=این کاربر هیچ آدرس ایمیل. فرآیند سقط شده.
     ErrorBadValueForCode=ارزش بد برای کد امنیتی. دوباره سعی کنید با ارزش جدید ...
     ErrorBothFieldCantBeNegative=زمینه های٪ s و٪ s نمی تواند هر دو منفی
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=حساب <b>کاربری٪ s را</b> برای اجرای وب سرور بدون اجازه که
     ErrorNoActivatedBarcode=بدون بارکد از نوع فعال
    @@ -138,7 +141,7 @@ ErrorBadFormat=فرمت بد!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=خطا، برخی از زایمان مرتبط با این حمل و نقل وجود دارد. حذف خودداری کرد.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=پارامترهای راه اندازی اجباری هنوز تعریف نشده
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=چوب الف با این عنوان و یا این
     WarningPassIsEmpty=هشدار، رمز عبور پایگاه داده خالی است. این یک حفره امنیتی است. شما باید یک رمز عبور را به پایگاه داده خود اضافه کنید و تغییر فایل conf.php خود را به منعکس کننده این.
     WarningConfFileMustBeReadOnly=اخطار، فایل پیکربندی خود را <b>(htdocs / کنفرانس / conf.php)</b> می تواند توسط وب سرور رونویسی. این یک حفره امنیتی جدی است. تغییر مجوز فایل را در حالت فقط خواندنی است برای کاربر سیستم عامل های استفاده شده توسط وب سرور. در صورت استفاده از ویندوز و FAT فرمت برای هارد دیسک شما، شما باید بدانید که این فایل سیستم اجازه نمی دهد برای اضافه کردن مجوز در فایل، بنابراین نمی تواند به طور کامل امن است.
     WarningsOnXLines=اخطار <b>در٪ s را</b> ثبت منبع (ها)
    -WarningNoDocumentModelActivated=بدون مدل، برای تولید سند، فعال شده است. یک مدل خواهد شد به طور پیش فرض انتخاب تا زمانی که شما راه اندازی ماژول خود را چک کنید.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=اخطار، یک بار نصب به پایان رسید، شما باید با اضافه کردن یک <b>install.lock</b> فایل به <b>شاخه٪ s</b> غیر فعال کردن نصب / مهاجرت ابزار. گمشده این فایل یک حفره امنیتی است.
    -WarningUntilDirRemoved=تمام هشدارهای امنیتی (قابل مشاهده توسط کاربران مدیر تنها) خواهد فعال تا زمانی که آسیب پذیری وجود داشته باشد باقی می ماند (و یا که MAIN_REMOVE_INSTALL_WARNING ثابت است در راه اندازی-> دیگر تنظیمات اضافه شده است).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=هشدار، بسته شدن انجام می شود حتی اگر مقدار بین منبع و مقصد عناصر متفاوت است. فعال کردن این ویژگی با احتیاط.
     WarningUsingThisBoxSlowDown=اخطار، با استفاده از این جعبه کاهش سرعت به طور جدی تمام صفحات نشان دادن جعبه.
     WarningClickToDialUserSetupNotComplete=راه اندازی از اطلاعات ClickToDial برای کاربر شما کامل نیست (ClickToDial زبانه دیدن بر روی کارت کاربر خود را).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/fa_IR/help.lang b/htdocs/langs/fa_IR/help.lang
    index 21f7a537bc1..73fa11ad0b1 100644
    --- a/htdocs/langs/fa_IR/help.lang
    +++ b/htdocs/langs/fa_IR/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=زمان واقعی آنلاین / پشتیبانی از ر
     OtherSupport=پشتیبانی دیگر
     ToSeeListOfAvailableRessources=برای تماس / نگاه کنید به منابع در دسترس:
     HelpCenter=مرکز راهنما
    -DolibarrHelpCenter=کمک Dolibarr و پشتیبانی مرکز
    -ToGoBackToDolibarr=در غیر این صورت، با کلیک <a href="%s">در اینجا به استفاده از Dolibarr</a>
    -TypeOfSupport=منبع پشتیبانی
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=ارتباطات (رایگان)
     TypeSupportCommercial=تجاری
     TypeOfHelp=نوع
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=بهره وری
     TypeHelpOnly=راهنما تنها
     TypeHelpDev=راهنما + توسعه
    -TypeHelpDevForm=سازند راهنما + توسعه +
    -ToGetHelpGoOnSparkAngels1=برخی از شرکت ها می توانند پشتیبانی آنلاین سریع (گاهی اوقات فوری) و کارآمد تر با در نظر گرفتن کنترل کامپیوتر شما را فراهم کنند. این کمک کننده ها را می توان <b>در٪ بازدید کنندگان</b> وب سایت یافت:
    -ToGetHelpGoOnSparkAngels3=شما همچنین می توانید به لیستی از تمام مربیان برای Dolibarr بروید، برای این کار با کلیک بر روی دکمه
    -ToGetHelpGoOnSparkAngels2=گاهی اوقات، هیچ شرکت های موجود در حال حاضر شما می توانید جستجوی خود را وجود دارد، بنابراین فکر می کنم برای تغییر فیلتر برای "همه در دسترس بودن" است. شما قادر به ارسال درخواست بیشتر خواهد شد.
    -BackToHelpCenter=در غیر این صورت، در اینجا کلیک کنید برای رفتن <a href="%s">به عقب برای کمک به صفحه اصلی مرکز</a> .
    -LinkToGoldMember=شما می توانید یکی از مربی های Dolibarr برای زبان خود را (از٪ s) با کلیک کردن ویجت خود (وضعیت و حداکثر قیمت ها به طور خودکار به روز رسانی) از پیش انتخاب شده تماس بگیرید:
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=زبانهای پشتیبانی شده
    -SubscribeToFoundation=کمک به پروژه Dolibarr، مشترک به پایه و اساس
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=برای حمایت Dolibarr رسمی در زبان شما: <br> <a href="%s" target="_blank"><b>از٪ s</b></a>
    diff --git a/htdocs/langs/fa_IR/holiday.lang b/htdocs/langs/fa_IR/holiday.lang
    index cdf39db949a..d25e68be23d 100644
    --- a/htdocs/langs/fa_IR/holiday.lang
    +++ b/htdocs/langs/fa_IR/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=بیانیه ماهانه
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=تاریخ شروع
     DateFinCP=تاریخ پایان
    @@ -15,13 +15,18 @@ ApprovedCP=تایید شده
     CancelCP=لغو شد
     RefuseCP=رد
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=توصیف
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=شما باید تاریخ پایان بیشتر از تاریخ شروع انتخاب کنید.
     ErrorSQLCreateCP=خطای SQL در ایجاد رخ داده است:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=گردش کار اطلاعات
     RequestByCP=درخواست شده توسط
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=ویرایش
     DeleteCP=حذف کردن
     ActionRefuseCP=رد کردن
    @@ -59,6 +71,7 @@ DateRefusCP=تاریخ امتناع
     DateCancelCP=عضویت لغو
     DefineEventUserCP=اختصاص مرخصی استثنایی برای کاربر
     addEventToUserCP=اختصاص مرخصی
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=دلیل
     UserCP=کاربر
     ErrorAddEventToUserCP=در حالی که با اضافه کردن مرخصی استثنایی خطایی رخ داد.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=به روز رسانی با موفقیت.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/fa_IR/install.lang b/htdocs/langs/fa_IR/install.lang
    index 6e21b063868..f12cf21f309 100644
    --- a/htdocs/langs/fa_IR/install.lang
    +++ b/htdocs/langs/fa_IR/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=لطفا دستورالعمل‌ها را گام به گام اجرا کنید. 
     MiscellaneousChecks=بررسی پیش‌نیازها 
     ConfFileExists=فایل پیکربندی <b>%s</b> موجود است
    -ConfFileDoesNotExistsAndCouldNotBeCreated=فایل <b>پیکربندی٪ s</b> وجود ندارد و نمی توان آن را!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=فایل <b>پیکربندی٪ s را</b> می تواند ایجاد شود.
    -ConfFileIsNotWritable=فایل <b>پیکربندی٪ است</b> قابل نوشتن نیست. مجوز بررسی کنید. برای اولین بار نصب کنید، وب سرور شما باید اعطا می شود که قادر به ارسال این فایل در فرایند پیکربندی (به عنوان مثال در یونیکس مانند سیستم عامل "سطح دسترسی 666").
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=فایل <b>پیکربندی٪ s</b> قابل نوشتن است.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=بازنگری تمام اطلاعات از فایل پیکربندی.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=این جلسات PHP پشتیبانی می کند.
     PHPSupportPOSTGETOk=این PHP پشتیبانی از متغیر های POST و GET.
    -PHPSupportPOSTGETKo=این امکان وجود دارد راه اندازی PHP شما از متغیر های POST پشتیبانی نمی کند و / یا. بررسی کنید <b>variables_order</b> پارامتر خود را در php.ini.
    -PHPSupportGD=این GD پشتیبانی از PHP توابع گرافیکی.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=این پشتیبانی از PHP توابع UTF8.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=PHP حداکثر شما حافظه جلسه <b>به٪ s</b> تنظیم شده است. این باید به اندازه کافی باشد.
    -PHPMemoryTooLow=PHP حداکثر شما حافظه را وارد نمایید <b>به٪ s</b> بایت تنظیم شده است. این باید بسیار کم باشد. تغییر <b>فایل php.ini</b> خود را به تنظیم پارامتر <b>memory_limit را</b> به <b>حداقل٪ s</b> بایت.
    -Recheck=برای تست نشانگر بیشتر اینجا را کلیک کنید
    -ErrorPHPDoesNotSupportSessions=نصب و راه اندازی PHP شما جلسات را پشتیبانی نمی کند. این ویژگی مورد نیاز است تا Dolibarr کار. راه اندازی PHP خود را چک کنید.
    -ErrorPHPDoesNotSupportGD=نصب و راه اندازی PHP شما از عملکرد گرافیکی GD پشتیبانی نمی کند. بدون نمودار در دسترس خواهد بود.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=نصب و راه اندازی PHP شما توابع UTF8 را پشتیبانی نمی کند. Dolibarr نمی تواند به درستی کار می کنند. حل این قبل از نصب Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=شاخه٪ s وجود ندارد.
    -ErrorGoBackAndCorrectParameters=برو به عقب و اصلاح پارامترهای اشتباه است.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=شما ممکن است یک مقدار اشتباه برای پارامتر '٪ s' را تایپ.
     ErrorFailedToCreateDatabase=برای ایجاد پایگاه داده '٪ s »شکست خورد.
     ErrorFailedToConnectToDatabase=برای اتصال به پایگاه داده '٪ s »شکست خورد.
     ErrorDatabaseVersionTooLow=نسخه پایگاه داده (٪ بازدید کنندگان) خیلی قدیمی است. نسخه٪ s یا بالاتر مورد نیاز است.
     ErrorPHPVersionTooLow=نسخه PHP خیلی قدیمی است. نسخه٪ s مورد نیاز است.
    -ErrorConnectedButDatabaseNotFound=اتصال به موفق سرور، اما پایگاه داده '٪ s' یافت نشد.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=پایگاه داده '٪ s' از قبل وجود دارد.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=اگر پایگاه داده وجود دارد، به عقب برگردید و گزینه تیک بزنید "ایجاد پایگاه داده".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=اگر پایگاه داده در حال حاضر وجود دارد، بازگشت و تیک گزینه "ایجاد پایگاه داده" گزینه است.
    -WarningBrowserTooOld=نسخه خیلی قدیمی از مرورگر. به روز رسانی مرورگر خود را به آخرین ورژن فایرفاکس، کروم و اپرا است که به شدت توصیه.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP نسخه
     License=با استفاده از مجوز
     ConfigurationFile=فایل پیکربندی
    @@ -45,22 +45,23 @@ DolibarrDatabase=پایگاه داده Dolibarr
     DatabaseType=نوع پایگاه داده
     DriverType=نوع درایور
     Server=سرور
    -ServerAddressDescription=نام یا آدرس آی پی برای سرور پایگاه داده، معمولا "localhost را 'زمانی که سرور پایگاه داده است در همان سرور از وب سرور میزبانی
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=پایگاه داده پورت سرور. خالی اگر ناشناخته نگه دارید.
     DatabaseServer=بانک اطلاعات سرور
     DatabaseName=نام پایگاه داده
    -DatabasePrefix=پایگاه داده جدول پیشوند
    -AdminLogin=ورود برای صاحب پایگاه داده Dolibarr.
    -PasswordAgain=تکرار گذرواژه بار دوم
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=رمز عبور برای صاحب پایگاه داده Dolibarr.
     CreateDatabase=ایجاد پایگاه داده
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=بانک اطلاعات سرور - دسترسی به کاربران بالاتر را میدهد
    -CheckToCreateDatabase=جعبه چک کنید اگر پایگاه داده وجود ندارد و باید ایجاد شود. <br> در این مورد، شما باید وارد شوید / رمز عبور برای نام کاربر مدیر در پایین این صفحه را پر کنید.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=ورود از کاربر مجاز به ایجاد پایگاه داده جدید و یا کاربران جدید، اجباری اگر بانک اطلاعاتی شما و یا صاحب آن می کند در حال حاضر وجود ندارد.
    -KeepEmptyIfNoPassword=دیدگاهتان را خالی اگر کاربر هیچ رمز عبور (جلوگیری از این)
    -SaveConfigurationFile=صرفه جویی در مقدار
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=اتصال به سرور
     DatabaseCreation=ایجاد پایگاه داده
     CreateDatabaseObjects=اشیاء پایگاه داده ایجاد
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=ایجاد کلید های خارجی و شاخص برا
     OtherKeysCreation=کلید های خارجی و شاخص ایجاد
     FunctionsCreation=ایجاد توابع
     AdminAccountCreation=ایجاد ورود مدیر
    -PleaseTypePassword=لطفا رمز عبور را تایپ کنید، کلمه عبور خالی امکان پذیر نیست!
    -PleaseTypeALogin=لطفا وارد شوید و تایپ کنید!
    -PasswordsMismatch=کلمات عبور متفاوت، لطفا دوباره سعی کنید!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=پایان از راه اندازی
     SystemIsInstalled=این نصب کامل شده است.
     SystemIsUpgraded=Dolibarr با موفقیت به روز رسانی شده است.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=شما نیاز به پیکربندی Dolibarr را ب
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=برو به Dolibarr
     GoToSetupArea=برو به Dolibarr (منطقه راه اندازی)
    -MigrationNotFinished=نسخه از پایگاه داده خود را به طور کامل به روز نیست، بنابراین شما باید برای اجرای عملیات ارتقا دوباره.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=برو به ارتقاء دوباره صفحه
     WithNoSlashAtTheEnd=بدون اسلش "/" در انتهای
    -DirectoryRecommendation=این است توصیه به استفاده از یک دایرکتوری در خارج از دایرکتوری خود را از صفحات وب خود را.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=در حال حاضر وجود دارد
     DolibarrAdminLogin=Dolibarr مدیر در انجمن
    -AdminLoginAlreadyExists=حساب مدیر Dolibarr <b>'٪ s' از</b> قبل وجود دارد. برو به عقب، اگر شما می خواهید برای ایجاد یک دیگر.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=اخطار، به دلایل امنیتی، پس از نصب و یا ارتقا کامل است، برای جلوگیری از استفاده از ابزار را دوباره نصب کنید، شما باید یک فایل <b>install.lock</b> به دایرکتوری سند Dolibarr نام اضافه، به منظور جلوگیری از سوء استفاده از آن را.
    -FunctionNotAvailableInThisPHP=در این پی اچ پی در دسترس نیست
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=را انتخاب کنید اسکریپت مهاجرت
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=پردازش اسکریپت
     ChooseYourSetupMode=حالت راه اندازی خود را انتخاب کنید و دکمه "شروع" ...
     FreshInstall=تازه نصب
    -FreshInstallDesc=با استفاده از این حالت اگر اولین بار از این شما نصب می شود. اگر نه، این حالت می تواند تعمیر نصب قبلی ناقص، اما اگر شما می خواهید برای ارتقاء نسخه خود را، را انتخاب کنید "به روز رسانی" حالت.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=به روز رسانی
     UpgradeDesc=با استفاده از این حالت اگر شما فایل های قدیمی Dolibarr با فایل ها از یک نسخه جدیدتر جایگزین شده است. این پایگاه داده ها و اطلاعات خود را ارتقا دهید.
     Start=شروع
     InstallNotAllowed=راه اندازی شده توسط مجوز <b>conf.php</b> مجاز نیست
     YouMustCreateWithPermission=شما باید فایل٪ s و مجوز نوشتن در آن را برای وب سرور ایجاد در طول فرایند نصب کنید.
    -CorrectProblemAndReloadPage=لطفا مشکل را رفع و F5 را فشار دهید به بارگذاری مجدد صفحه.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=در حال حاضر مهاجرت
     DatabaseVersion=بانک اطلاعات نسخه
     ServerVersion=نسخه سرور پایگاه داده
     YouMustCreateItAndAllowServerToWrite=شما باید این پوشه ایجاد کنید و اجازه می دهد برای وب سرور برای ارسال به آن.
     DBSortingCollation=شخصیت منظور مرتب سازی
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=از شما درخواست برای ایجاد پایگاه <b>داده٪ است،</b> اما برای این، Dolibarr نیاز به اتصال <b>به٪ s</b> سرور با مجوز فوق العاده <b>کاربر٪ s را.</b>
    -YouAskLoginCreationSoDolibarrNeedToConnect=از شما درخواست برای ایجاد پایگاه داده ورود <b>به٪ s را،</b> اما برای این، Dolibarr نیاز به اتصال <b>به٪ s</b> سرور با مجوز فوق العاده <b>کاربر٪ s را.</b>
    -BecauseConnectionFailedParametersMayBeWrong=به عنوان اتصال، میزبان یا پارامترهای کاربر فوق العاده باید اشتباه باشد.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=یتیمان پرداخت شناسایی شده با استفاده از روش از٪ s
     RemoveItManuallyAndPressF5ToContinue=حذف آن دستی و F5 را فشار دهید تا ادامه خواهد داد.
     FieldRenamed=درست است تغییر نام داد
    -IfLoginDoesNotExistsCheckCreateUser=اگر وارد کند وجود دارد نشده است، شما باید گزینه را تیک "ایجاد کاربر"
    -ErrorConnection=سرور <b>"٪ s"،</b> نام پایگاه داده <b>"٪ s"،</b> برای ورود اینجا <b>"٪ s"،</b> و یا رمز عبور پایگاه داده ممکن است اشتباه باشد و یا نسخه PHP مشتری ممکن است خیلی قدیمی در مقایسه با نسخه پایگاه داده باشد.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=توصیه می شود انتخاب به نصب <b>نسخه٪ s از</b> نسخه فعلی خود را <b>از٪ s</b>
     InstallChoiceSuggested=<b>نصب انتخاب پیشنهاد شده توسط نصب.</b>
    -MigrateIsDoneStepByStep=نسخه هدف قرار دادند (٪ بازدید کنندگان) دارای یک شکاف از چندین نسخه، پس از نصب ویزارد باز خواهد گشت تا نشان می دهد مهاجرت بعدی یک بار این یکی تمام می شود.
    -CheckThatDatabasenameIsCorrect=بررسی کنید که نام پایگاه داده <b>"٪ s"</b> درست است.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=اگر این نام درست است و پایگاه داده هنوز وجود ندارد، شما باید گزینه "ایجاد پایگاه داده" تیک بزنید.
     OpenBaseDir=پارامتر PHP openbasedir
    -YouAskToCreateDatabaseSoRootRequired=شما چک باکس "ایجاد پایگاه داده". برای این کار، شما نیاز به ارائه ورود / رمز عبور کاربر مدیر (پایین فرم).
    -YouAskToCreateDatabaseUserSoRootRequired=شما چک باکس "ایجاد صاحب پایگاه داده". برای این کار، شما نیاز به ارائه ورود / رمز عبور کاربر مدیر (پایین فرم).
    -NextStepMightLastALongTime=مرحله کنونی ممکن است چند دقیقه طول بکشد. لطفا صبر کنید تا صفحه بعدی به طور کامل قبل از ادامه نشان داده شده است.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=مهاجرت حمل و نقل برای سفارشات مشتری ذخیره سازی
     MigrationShippingDelivery=به روز رسانی ذخیره سازی حمل و نقل
     MigrationShippingDelivery2=به روز رسانی ذخیره سازی حمل و نقل 2
     MigrationFinished=مهاجرت به پایان رسید
    -LastStepDesc=<strong>آخرین مرحله:</strong> تعریف اینجا کاربری و رمز عبور شما قصد استفاده برای اتصال به نرم افزار. آیا این شل نیست آن را به عنوان حساب به اداره همه دیگران است.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=فعال بخش٪ s
     ShowEditTechnicalParameters=برای نشان دادن پارامترهای پیشرفته / ویرایش اینجا را کلیک کنید (حالت کارشناسی)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=شما با استفاده از جادوگر در راه اندازی Dolibarr از DoliWamp، بنابراین مقادیر ارائه شده در اینجا در حال حاضر بهینه شده است. تغییر آنها را تنها در صورتی شما می دانید آنچه شما انجام دهد.
    -KeepDefaultValuesDeb=شما با استفاده از جادوگر Dolibarr راه اندازی از یک بسته لینوکس (اوبونتو، دبیان، فدورا ...)، بنابراین مقادیر ارائه شده در اینجا در حال حاضر بهینه شده است. تنها رمز صاحب پایگاه داده برای ایجاد باید پر شوند. تغییر پارامترهای دیگر تنها در صورتی شما می دانید آنچه شما انجام دهد.
    -KeepDefaultValuesMamp=شما با استفاده از جادوگر در راه اندازی Dolibarr از DoliMamp، بنابراین مقادیر ارائه شده در اینجا در حال حاضر بهینه شده است. تغییر آنها را تنها در صورتی شما می دانید آنچه شما انجام دهد.
    -KeepDefaultValuesProxmox=شما با استفاده از جادوگر در راه اندازی Dolibarr از یک دستگاه مجازی بورس، بنابراین مقادیر ارائه شده در اینجا در حال حاضر بهینه شده است. تغییر آنها را تنها در صورتی شما می دانید آنچه شما انجام دهد.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=مهاجرت داده ها برای طرح های تجاری
     MigrationInvoice=اطلاعات مهاجرت برای صورت حساب مشتری
     MigrationContract=اطلاعات مهاجرت برای قرارداد
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=به روز رسانی موفق
     MigrationUpdateFailed=روند ارتقاء شکست خورده
     MigrationRelationshipTables=مهاجرت به داده ها برای جداول رابطه (٪ بازدید کنندگان)
     MigrationPaymentsUpdate=پرداخت اصلاح داده ها
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=قرارداد اصلاح داده ها
     MigrationContractsNumberToUpdate=٪ s در قرارداد (ها) برای به روز رسانی
     MigrationContractsLineCreation=ایجاد خط قرارداد برای قرارداد کد عکس از٪ s
     MigrationContractsNothingToUpdate=هیچ چیز بیشتری برای انجام
    -MigrationContractsFieldDontExist=fk_facture درست می کند وجود دارد نیست. هیچ چیز به انجام.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=قرارداد تصحیح تاریخ خالی
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=بدون قرارداد تاریخ خالی برای اصلاح
     MigrationContractsEmptyCreationDatesNothingToUpdate=تاریخ ایجاد قرارداد برای اصلاح
     MigrationContractsInvalidDatesUpdate=تاریخ مقدار بد اصلاح قرارداد
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=به روز رسانی تحویل
     MigrationStockDetail=به روز رسانی ارزش سهام از محصولات
     MigrationMenusDetail=به روز رسانی جداول منوهای پویا
     MigrationDeliveryAddress=آدرس تحویل به روز رسانی در محموله
    -MigrationProjectTaskActors=اطلاعات مهاجرت برای llx_projet_task_actors جدول
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=اطلاعات مهاجرت درست است fk_user_resp از llx_projet به llx_element_contact
     MigrationProjectTaskTime=زمان به روز رسانی صرف در ثانیه
     MigrationActioncommElement=به روز کردن اطلاعات در مورد اقدامات
     MigrationPaymentMode=اطلاعات مهاجرت برای حالت پرداخت
     MigrationCategorieAssociation=مهاجرت از دسته
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=نمایش گزینه های در دسترس نیست
    -HideNotAvailableOptions=پنهان کردن گزینه های در دسترس نیست
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/fa_IR/interventions.lang b/htdocs/langs/fa_IR/interventions.lang
    index 2d331676a61..f9b902d1c89 100644
    --- a/htdocs/langs/fa_IR/interventions.lang
    +++ b/htdocs/langs/fa_IR/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=مداخلات
     InterventionCard=کارت مداخله
     NewIntervention=مداخله های جدید
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=فهرست مداخلات
     ActionsOnFicheInter=عملیات مداخله
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/fa_IR/main.lang b/htdocs/langs/fa_IR/main.lang
    index 3982487d683..8c0f619faa4 100644
    --- a/htdocs/langs/fa_IR/main.lang
    +++ b/htdocs/langs/fa_IR/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=برای ارسال ایمیل (فرستنده =٪ S، گ
     ErrorFileNotUploaded=فایل آپلود نشد. بررسی کنید که اندازه حداکثر مجاز تجاوز نمی کند، که فضای خالی موجود بر روی دیسک است و در حال حاضر وجود دارد یک فایل با همین نام در این شاخه.
     ErrorInternalErrorDetected=خطا در شناسایی
     ErrorWrongHostParameter=پارامتر میزبان اشتباه است
    -ErrorYourCountryIsNotDefined=کشور شما تعریف نشده است. برو به خانه، راه اندازی، ویرایش و ارسال دوباره فرم.
    -ErrorRecordIsUsedByChild=این رکورد را حذف کنید شکست خورده است. این رکورد توسط حداقل یک پرونده کودک استفاده می شود.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=ارزش اشتباه است
     ErrorWrongValueForParameterX=ارزش اشتباه برای پارامتر از٪ s
     ErrorNoRequestInError=بدون درخواست در خطا
    -ErrorServiceUnavailableTryLater=خدمات برای لحظه ای در دسترس نیست. بعدا دوباره سعی کنید.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=مقدار تکراری در یک فیلد منحصر به فرد
    -ErrorSomeErrorWereFoundRollbackIsDone=برخی از خطاهای یافت شد. ما عقبگرد تغییرات.
    -ErrorConfigParameterNotDefined=<b>پارامتر٪ s</b> در داخل Dolibarr فایل پیکربندی <b>conf.php</b> تعریف نشده است.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=برای پیدا کردن <b>کاربر٪ s در</b> پایگاه داده Dolibarr شکست خورده است.
     ErrorNoVATRateDefinedForSellerCountry=خطا، هیچ نرخ مالیات بر ارزش افزوده تعریف شده برای این کشور شد '٪ s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=خطا، موفق به صرفه جویی در فایل.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=تاریخ تنظیم
     SelectDate=یک تاریخ را انتخاب کنید
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=فایل با موفقیت آپلود شد
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=فایل برای پیوست انتخاب شده، اما هنوز ارسال نشده. بر روی "فایل ضمیمه" برای این کلیک کنید.
    -NbOfEntries=Nb و از نوشته
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=خوانده شده راهنما
     RecordSaved=رکورد ذخیره شده
    @@ -94,7 +94,7 @@ Undefined=تعریف نشده
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=در بالا مشاهده کنید
    -HomeArea=منطقه خانه
    +HomeArea=خانه
     LastConnexion=Latest connection
     PreviousConnexion=ارتباط قبلی
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=بسته
     Closed2=بسته
     NotClosed=Not closed
     Enabled=فعال بودن
    +Enable=قادر ساختن
     Deprecated=توصیه
     Disable=از کار انداختن
     Disabled=غیر فعال
    @@ -153,7 +154,7 @@ Update=به روز رسانی
     Close=نزدیک
     CloseBox=Remove widget from your dashboard
     Confirm=تکرار
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=حذف کردن
     Remove=برداشتن
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=نسخه
     Paste=خمیر
     Default=پیش فرض
     DefaultValue=ارزش قرار دادی
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=قیمت
     PriceCurrency=Price (currency)
     UnitPrice=قیمت واحد
    @@ -347,7 +348,7 @@ AmountTTCShort=مقدار (مالیات شرکت)
     AmountHT=مقدار (خالص از مالیات)
     AmountTTC=مقدار (مالیات شرکت)
     AmountVAT=مالیات بر مقدار
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=قابل اجرا نیست
     ActionRunningNotStarted=برای شروع
     ActionRunningShort=In progress
     ActionDoneShort=در دست اجرا
    -ActionUncomplete=ناقص
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=اطلاعات تماس این شخص ثالث
     ContactsAddressesForCompany=تماس / آدرس برای این شخص ثالث
     AddressesForCompany=آدرس برای این شخص ثالث
     ActionsOnCompany=رویدادها در مورد این شخص ثالث
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=رویدادها در مورد این عضو
     ActionsOnProduct=Events about this product
     NActionsLate=٪ s در اواخر
    @@ -453,8 +455,8 @@ Generate=تولید
     Duration=مدت
     TotalDuration=مدت زمان کل
     Summary=خلاصه
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=در دسترس
     NotYetAvailable=هنوز در دسترس نیست
    @@ -468,7 +470,7 @@ and=و
     or=یا
     Other=دیگر
     Others=دیگران
    -OtherInformations=سایر اطلاعات
    +OtherInformations=Other information
     Quantity=مقدار
     Qty=تعداد
     ChangedBy=تغییر توسط
    @@ -506,7 +508,7 @@ None=هیچ یک
     NoneF=هیچ یک
     NoneOrSeveral=None or several
     Late=دیر
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=تصویر
     Photos=تصاویر
    @@ -530,18 +532,6 @@ September=سپتامبر
     October=اکتبر
     November=نوامبر
     December=دسامبر
    -JanuaryMin=ژان
    -FebruaryMin=فوریه
    -MarchMin=ضایع کردن
    -AprilMin=آوریل
    -MayMin=مه
    -JuneMin=ژوئن
    -JulyMin=ژوئیه
    -AugustMin=اوت
    -SeptemberMin=سپتامبر
    -OctoberMin=اکتبر
    -NovemberMin=نوامبر
    -DecemberMin=دسامبر
     Month01=ژانویه
     Month02=فوریه
     Month03=مارس
    @@ -646,6 +636,8 @@ SendMail=ارسال ایمیل
     EMail=E-mail
     NoEMail=بدون پست الکترونیک
     Email=پست الکترونیک
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=موبایل ممنوع
     Owner=مالک
     FollowingConstantsWillBeSubstituted=ثابت های زیر را با مقدار متناظر جایگزین شده است.
    @@ -677,7 +669,7 @@ NeverReceived=هرگز دریافت
     Canceled=لغو شد
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=رنگ
     Documents=فایل های مرتبط
     Documents2=اسناد
    @@ -716,15 +708,15 @@ Merge=ادغام کردن
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=نمایش صفحه به چاپ منطقه محتوای اصلی
     MenuManager=مدیریت منو
    -WarningYouAreInMaintenanceMode=اخطار، شما در یک حالت تعمیر و نگهداری می باشد، بنابراین تنها ورود <b>به٪ s را</b> مجاز به استفاده از نرم افزار در حال حاضر.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=خطای سیستم
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=کارت های اعتباری
     ValidatePayment=اعتبار پرداخت
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=زمینه <b>با٪ s</b> الزامی است
    -FieldsWithIsForPublic=مواردی که <b>با٪ s را</b> در لیست عمومی کاربران نشان داده شده است. اگر شما این کار را می خواهید نیست، چک کردن جعبه "عمومی".
    -AccordingToGeoIPDatabase=(با توجه به تبدیل GeoIP با)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=خط
     NotSupported=پشتیبانی نمی شود
     RequiredField=زمینه مورد نیاز
    @@ -732,6 +724,8 @@ Result=نتیجه
     ToTest=تست
     ValidateBefore=کارت باید قبل از استفاده از این ویژگی معتبر
     Visibility=دید
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=خصوصی
     Hidden=پنهان
     Resources=منابع
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=ایجاد پیش نویس
     SetToDraft=Back to draft
     ClickToEdit=برای ویرایش کلیک کنید
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=به روز
     BySalesRepresentative=با نمایندگی فروش
     LinkedToSpecificUsers=لینک به تماس با کاربر خاص
     NoResults=هیچ نتیجه ای
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=ابزار های سیستم
     ModulesSystemTools=ماژول ابزار
     Test=تست
     Element=عنصر
     NoPhotoYet=بدون ورود دست هنوز
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=مالیات پذیر
     from=از
     toward=نسبت به
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=نمایش مداخله
     ShowContract=نمایش قرارداد
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=حذف خط
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=طبقه بندی صورتحساب
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=تقویم
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=رویدادها
    -EMailTemplates=الگوهای ایمیل
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=پروژه
     Projects=پروژه ها
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=مجوز
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=دوشنبه
     Tuesday=سهشنبه
    @@ -927,15 +932,15 @@ SearchIntoInterventions=مداخلات
     SearchIntoContracts=قراردادها
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=نظرات
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=هر کسی
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=واگذار شده به
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/fa_IR/other.lang b/htdocs/langs/fa_IR/other.lang
    index 2f18cd41b67..66dbb8f8061 100644
    --- a/htdocs/langs/fa_IR/other.lang
    +++ b/htdocs/langs/fa_IR/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=کد امنیتی
     NumberingShort=N°
     Tools=ابزار
     TMenuTools=ابزار ها
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=جشن تولد
     BirthdayDate=Birthday date
     DateToBirth=تاریخ تولد
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=پیام در اعتبار صفحه بازگشت پرداخت
     MessageKO=پیام در لغو صفحه بازگشت پرداخت
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=مداخله اعتبار
    -Notify_FICHINTER_SENTBYMAIL=مداخله با پست
     Notify_ORDER_VALIDATE=سفارش مشتری معتبر
     Notify_ORDER_SENTBYMAIL=سفارش مشتری با پست
     Notify_ORDER_SUPPLIER_SENTBYMAIL=منظور تامین کننده با پست
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=منظور تامین کننده تایید
     Notify_ORDER_SUPPLIER_REFUSE=منظور تامین کننده خودداری کرد
     Notify_PROPAL_VALIDATE=پیشنهاد به مشتری اعتبار
    -Notify_PROPAL_CLOSE_SIGNED=propal با مشتری بسته امضا
    -Notify_PROPAL_CLOSE_REFUSED=propal با مشتری بسته خودداری کرد
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=پیشنهاد تجاری با پست
     Notify_WITHDRAW_TRANSMIT=خروج خطوط انتقال
     Notify_WITHDRAW_CREDIT=خروج اعتباری
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=شخص ثالث ایجاد شده
     Notify_COMPANY_SENTBYMAIL=ایمیل های فرستاده شده از کارت شخص ثالث
     Notify_BILL_VALIDATE=صورت حساب به مشتری اعتبار
     Notify_BILL_UNVALIDATE=صورت حساب به مشتری unvalidated
    -Notify_BILL_PAYED=صورت حساب به مشتری غیر انتفایی
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=صورت حساب به مشتری لغو
     Notify_BILL_SENTBYMAIL=صورت حساب به مشتری با پست
     Notify_BILL_SUPPLIER_VALIDATE=فاکتور تامین کننده معتبر
    -Notify_BILL_SUPPLIER_PAYED=فاکتور تامین کننده غیر انتفایی
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=فاکتور تامین کننده با پست
     Notify_BILL_SUPPLIER_CANCELED=فاکتور تامین کننده لغو
     Notify_CONTRACT_VALIDATE=قرارداد معتبر
     Notify_FICHEINTER_VALIDATE=مداخله اعتبار
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=مداخله با پست
     Notify_SHIPPING_VALIDATE=حمل و نقل معتبر
     Notify_SHIPPING_SENTBYMAIL=حمل و نقل با پست
     Notify_MEMBER_VALIDATE=کاربران معتبر
    @@ -71,24 +70,29 @@ Notify_PROJECT_CREATE=ایجاد پروژه
     Notify_TASK_CREATE=وظیفه ایجاد
     Notify_TASK_MODIFY=وظیفه اصلاح شده
     Notify_TASK_DELETE=وظیفه حذف
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=تعداد فایل های پیوست / اسناد
     TotalSizeOfAttachedFiles=اندازه کل فایل های پیوست / اسناد
     MaxSize=حداکثر اندازه
     AttachANewFile=ضمیمه کردن فایل جدید / سند
     LinkedObject=شی مرتبط
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
    @@ -172,7 +176,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>پروفسور کد از٪ s</b> اطلاعات بسته به کشور های شخص ثالث است. <br> به عنوان مثال، برای <b>کشور٪، این کد٪ بازدید کنندگان</b> است.
     DolibarrDemo=Dolibarr ERP / CRM نسخه ی نمایشی
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +189,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=مداخله٪ s را دارای اعتبار بوده است.
     EMailTextInvoiceValidated=صورتحساب٪ s را دارای اعتبار بوده است.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=این پیشنهاد از٪ s دارای اعتبار بوده است.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=منظور از٪ s دارای اعتبار بوده است.
    @@ -197,6 +202,10 @@ EMailTextOrderApprovedBy=منظور از٪ s شده توسط٪ s تایید شد
     EMailTextOrderRefused=منظور از٪ s رد شده است.
     EMailTextOrderRefusedBy=منظور از٪ s شده توسط٪ s خودداری کرد.
     EMailTextExpeditionValidated=حمل و نقل از٪ s دارای اعتبار بوده است.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=واردات مجموعه داده
     DolibarrNotification=اطلاع رسانی به صورت خودکار
     ResizeDesc=عرض جدید <b>OR</b> ارتفاع جدید را وارد کنید. نسبت در طول تغییر اندازه نگه داشته ...
    @@ -204,7 +213,7 @@ NewLength=عرض جدید
     NewHeight=ارتفاع جدید
     NewSizeAfterCropping=اندازه های جدید پس از برداشت
     DefineNewAreaToPick=تعریف منطقه جدید روی تصویر انتخاب کنید (کلیک چپ بر روی تصویر بکشید تا زمانی که شما رسیدن به گوشه مقابل)
    -CurrentInformationOnImage=این ابزار برای کمک به شما برای تغییر اندازه و یا برش یک تصویر طراحی شده است. این اطلاعات بر روی تصویر ویرایش شده در حال حاضر است
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=ویرایشگر تصویر
     YouReceiveMailBecauseOfNotification=شما این پیام را دریافت خواهید کرد چرا که ایمیل شما به لیست از اهداف به حوادث خاص به٪ نرم افزار از٪ s را مطلع اضافه شده است.
     YouReceiveMailBecauseOfNotification2=این رویداد به شرح زیر است:
    @@ -235,6 +244,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=منطقه صادرات
    @@ -248,5 +261,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=عنوان
     WEBSITE_DESCRIPTION=توصیف
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/fa_IR/paybox.lang b/htdocs/langs/fa_IR/paybox.lang
    index a7a99980a7f..2357f0c102e 100644
    --- a/htdocs/langs/fa_IR/paybox.lang
    +++ b/htdocs/langs/fa_IR/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=راه اندازی ماژول خزانه
     PayBoxDesc=این ماژول صفحات پیشنهاد به اجازه پرداخت در <a href="http://www.paybox.com" target="_blank">خزانه</a> شده توسط مشتریان. این می تواند برای پرداخت رایگان و پرداخت در یک شیء خاص Dolibarr استفاده می شود (فاکتور، سفارش، ...)
     FollowingUrlAreAvailableToMakePayments=از آدرس های زیر در دسترس است به ارائه یک صفحه به مشتریان به پرداخت در اشیاء Dolibarr است
     PaymentForm=فرم پرداخت
    -WelcomeOnPaymentPage=در سرویس پرداخت آنلاین ما خوش آمدید
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=این صفحه نمایش به شما اجازه ایجاد پرداخت آنلاین به٪ s.
     ThisIsInformationOnPayment=این اطلاعات در پرداخت به انجام است
     ToComplete=برای تکمیل
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL برای ارائه٪ رابط کار
     ToOfferALinkForOnlinePaymentOnContractLine=URL برای ارائه٪ رابط کاربری پرداخت آنلاین برای قرارداد خط
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL برای ارائه٪ رابط کاربری پرداخت آنلاین برای مقدار رایگان
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL برای ارائه٪ رابط کاربری پرداخت آنلاین برای به اشتراک عضو
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=شما همچنین می توانید پارامتر URL <b>و برچسب = <i>مقدار</i></b> را به هر یک از این URL (فقط برای پرداخت رایگان مورد نیاز) برای اضافه کردن خود برچسب توضیحات پرداخت خود اضافه کنید.
    -SetupPayBoxToHavePaymentCreatedAutomatically=راه اندازی خزانه خود را با <b>آدرس٪ s را</b> به پرداخت زمانی که توسط خزانه اعتبار به طور خودکار ساخته.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=این صفحه تایید می کند که پرداخت شما ثبت شده است. متشکرم.
    -YourPaymentHasNotBeenRecorded=شما پرداخت ثبت شده است نیست و معامله لغو شده است. متشکرم.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=پارامترهای حساب
     UsageParameter=پارامترهای طریقه استفاده
     InformationToFindParameters=کمک برای پیدا کردن٪ شما اطلاعات حساب
    diff --git a/htdocs/langs/fa_IR/projects.lang b/htdocs/langs/fa_IR/projects.lang
    index 971df275cb8..164e6aae16b 100644
    --- a/htdocs/langs/fa_IR/projects.lang
    +++ b/htdocs/langs/fa_IR/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=نمایش پروژه
     ShowTask=نمایش کار
     SetProject=تنظیم پروژه
     NoProject=هیچ پروژه تعریف شده و یا متعلق به
    -NbOfProjects=Nb در پروژه
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=زمان صرف شده
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=فهرست طرح تجاری مرتبط با پروژه
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=فهرست قرارداد در ارتباط با پروژه
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=فهرست مداخلات مرتبط با پروژه
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=فهرست رویدادی به این پروژه
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=لینک به دیگر شخص ثالث
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=مدت زمان صرف شده خالی است
     ThisWillAlsoRemoveTasks=این کار همچنین تمام کارهای پروژه <b>(وظایف٪ s</b> در حال حاضر) حذف و تمام ورودی ها از زمان صرف شده.
    -IfNeedToUseOhterObjectKeepEmpty=اگر برخی از اشیاء (فاکتور، سفارش، ...)، متعلق به شخص ثالث دیگری، باید به این پروژه برای ایجاد، نگه داشتن این خالی به این پروژه که احزاب چند سوم مرتبط است.
    +IfNeedToUseOtherObjectKeepEmpty=اگر برخی از اشیاء (فاکتور، سفارش، ...)، متعلق به شخص ثالث دیگری، باید به این پروژه برای ایجاد، نگه داشتن این خالی به این پروژه که احزاب چند سوم مرتبط است.
     CloneProject=پروژه کلون
     CloneTasks=وظایف کلون
     CloneContacts=تماس با کلون
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=وظیفه٪ s را ایجاد
     TaskModifiedInDolibarr=وظیفه٪ s تغییر
     TaskDeletedInDolibarr=وظیفه٪ s را حذف
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=شرکت کننده
     SelectElement=انتخاب عنصر
     AddElement=لینک به عنصر
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=حجم کار برنامه ریزی شده
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=پیشنهاد
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/fa_IR/propal.lang b/htdocs/langs/fa_IR/propal.lang
    index fce5360e22c..f597d370923 100644
    --- a/htdocs/langs/fa_IR/propal.lang
    +++ b/htdocs/langs/fa_IR/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=امضا (نیازهای حسابداری و مدیریت)
     PropalStatusNotSigned=امضا نشده (بسته شده)
     PropalStatusBilled=ثبت شده در صورتحساب یا لیست
     PropalStatusDraftShort=پیش نویس
    -PropalStatusValidatedShort=اعتبار
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=بسته
     PropalStatusSignedShort=امضاء شده
     PropalStatusNotSignedShort=امضا نشده
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal٪ s را یافت نشد
     AddToDraftProposals=اضافه کردن به پیش نویس پیشنهاد
     NoDraftProposals=بدون پیش نویس پیشنهادات
     CopyPropalFrom=ایجاد طرح های تجاری با کپی کردن طرح های موجود
    -CreateEmptyPropal=ایجاد خالی طرح تجاری vierge و یا از لیست محصولات / خدمات
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=پیش فرض طول مدت اعتبار پیشنهاد های تجاری (در روز)
    -UseCustomerContactAsPropalRecipientIfExist=اگر به جای آدرس شخص ثالث به عنوان آدرس دریافت کننده پیشنهاد تعریف شده استفاده از آدرس ارتباط با مشتری
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=پیشنهاد تجاری کلون
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=تماس با مشتری را در پی ب
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=یک مدل پیشنهاد کامل (logo. ..)
    +DocModelCyanDescription=یک مدل پیشنهاد کامل (logo. ..)
     DefaultModelPropalCreate=ایجاد مدل پیش فرض
     DefaultModelPropalToBill=قالب پیش فرض هنگام بستن یک طرح کسب و کار (به صورتحساب می شود)
     DefaultModelPropalClosed=قالب پیش فرض هنگام بستن یک طرح کسب و کار (unbilled)
    diff --git a/htdocs/langs/fa_IR/website.lang b/htdocs/langs/fa_IR/website.lang
    index 5115f976cbd..c8f34712da7 100644
    --- a/htdocs/langs/fa_IR/website.lang
    +++ b/htdocs/langs/fa_IR/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=رمز
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=خواندن
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang
    index d5506e794b7..dffbf08c96e 100644
    --- a/htdocs/langs/fi_FI/admin.lang
    +++ b/htdocs/langs/fi_FI/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Kehitys
     VersionUnknown=Tuntematon
     VersionRecommanded=Suositeltava
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler tallentaa istuntojen
     SessionSavePath=Varasto istuntojakson localization
     PurgeSessions=Tuhoa istuntoja
     ConfirmPurgeSessions=Haluatko varmasti poistii kaikki istunnot? Tämä katkaisee istunnot jokaiselta käyttäjältä (paitsi itseltäsi).
    -NoSessionListWithThisHandler=Tallenna istunto handler konfiguroitu PHP ei ole mahdollista luetella kaikkia lenkkivaatteita.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lukitse uusia yhteyksiä
    -ConfirmLockNewSessions=Oletko varma että haluat rajoittaa uusia Dolibarr yhteys itse. Vain käyttäjä <b>%s</b> voi kytkeä sen jälkeen.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Poista yhteys lukko
     YourSession=Istuntosi
    -Sessions=Käyttäjät istunto
    +Sessions=Users sessions
     WebUserGroup=Web-palvelimen käyttäjä / ryhmä
    -NoSessionFound=PHP näyttää voida luetella aktiivisten istuntojen. Directory käyttää tallentaa istuntoja <b>(%s)</b> voidaan suojata (Jos esimerkiksi OS luvat tai PHP direktiivi open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset tallentaa tiedot
     DBSortingCharset=Database charset lajitella tiedot
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Ulkoinen käyttäjä
     InternalUsers=Sisäiset käyttäjät
     ExternalUsers=Ulkopuoliset käyttäjät
     GUISetup=Näyttö
    -SetupArea=Asetusalue
    +SetupArea=Asetukset
     UploadNewTemplate=Päivitä uusi pohja(t)
     FormToTestFileUploadForm=Lomake testata tiedostonlähetyskiintiö (mukaan setup)
     IfModuleEnabled=Huomaa: kyllä on tehokas vain, jos <b>moduuli %s</b> on käytössä
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Koodi ei voi sisältää arvoa 0
     DisableJavascript=Poista käytöstä JavaScript ja Ajax funktiot (Suositeltu näkövammaisille ja tekstiselaimille)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr merkkien laukaista haku: %s
     NotAvailableWhenAjaxDisabled=Ole käytettävissä, kun Ajax vammaisten
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Esikatselu ei ole käytettävissä
     ThemeCurrentlyActive=Teema on tällä hetkellä aktiivinen
     CurrentTimeZone=Nykyinen aikavyöhyke
     MySQLTimeZone=Aikavyöhyke MySql (tietokanta)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Taulu
     Fields=Kentät
    @@ -111,14 +111,14 @@ NotConfigured=Moduulia/Applikaatiota ei ole määritetty
     Active=Aktiivinen
     SetupShort=Asetukset
     OtherOptions=Muut valinnat
    -OtherSetup=Muut asetukset
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Desimaalierotin
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Määränpää
     IdModule=Moduuli ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parametri %s
    -LocalisationDolibarrParameters=Lokalisointi parametrit
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Asiakkaan aikavyöhyke (käyttäjä)
     ClientHour=Asiakkaan aikavyöhyke (käyttäjä)
     OSTZ=Palvelimen OS aikavyöhyke
    @@ -126,8 +126,8 @@ PHPTZ=Aikavyöhyke Server PHP
     DaylingSavingTime=Kesäaika (käyttäjä)
     CurrentHour=Nykyinen tunti
     CurrentSessionTimeOut=Nykyinen istunnon aikakatkaisun
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgetit
     MaxNbOfLinesForBoxes=Rivien maksimimäärä widgeteille
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ohita duplikaatti virheet (VALITSE OHITA)
     AutoDetectLang=Automaatti tunnistus (selaimen kieli)
     FeatureDisabledInDemo=Ominaisuus on poistettu käytöstä demossa
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Löydä ulkoisia app/moduuleja
     ModulesDevelopYourModule=Kehitä oma app/moduuli
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Uusi
     FreeModule=Ilmainen
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Osta / Lataa
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, virallinen markkinapaikka Dolibarr ERP / CRM ulkoisten moduulien
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Linkki
     BoxesAvailable=Widgetit saatavilla
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Onko mitään salasanoja vuonna selväksi tietokantaan
     MainDbPasswordFileConfEncrypted=Tietokannan salasana salattu conf.php
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Suojaaminen syntyy pdf-tiedostoja (ei recommandd, taukoja massa pdf sukupolvi)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Ominaisuus
     DolibarrLicense=Lisenssi
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Sosiaaliset verkostot
     ForDocumentationSeeWiki=Käyttäjälle tai kehittäjän dokumentaatio (doc, FAQs ...), <br> katsoa, että Dolibarr Wiki: <br> <a href="%s" target="_blank"><b> %s</b></a>
     ForAnswersSeeForum=Muita kysymyksiä / apua, voit käyttää Dolibarr foorumilla: <br> <a href="%s" target="_blank"><b> %s</b></a>
    -HelpCenterDesc1=Tämä alue voi auttaa sinua saamaan tukea palvelua Dolibarr.
    -HelpCenterDesc2=Osa tätä palvelua on saatavilla <b>vain Englanti.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Nykyinen valikko handler
     MeasuringUnit=Mittayksikkö
     LeftMargin=Vasen marginaali
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Sähköpostit
     EMailsSetup=Sähköpostien asetukset
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP-portti (oletusarvoisesti <b>php.ini: %s)</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP Host (oletusarvoisesti <b>php.ini: %s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP-portti (Ei määritelty osaksi PHP Unix-koneissa)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP Host (Ei määritelty osaksi PHP Unix-koneissa)
    -MAIN_MAIL_EMAIL_FROM=Lähettäjä sähköposti automaattisille sähköpostiviesteille (Oletuksena php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Lähetä järjestelmällisesti piilotettu hiili-kopio kaikki lähetetyt sähköpostit
    -MAIN_DISABLE_ALL_MAILS=Poista käytöstä kaikki sähköpostiviestin lähetykset (testaus tarkoituksiin tai demoihin)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Käyttömenetelmä sähköposteja lähettäessä
    -MAIN_MAIL_SMTPS_ID=SMTP tunnus, jos vaaditaan
    -MAIN_MAIL_SMTPS_PW=SMTP Salasana jos vaaditaan
    -MAIN_MAIL_EMAIL_TLS= Käytä TLS (SSL) salausta
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Poista kaikki SMS-lähetysten (testitarkoituksiin tai demot)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Käyttömenetelmä tekstiviestejä lähettäessä
    -MAIN_MAIL_SMS_FROM=Vakio lähettäjän puhelinnumero tekstiviestien lähetykseen
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=Käyttäjän sähköposti
     CompanyEmail=Yrityksen sähköposti
     FeatureNotAvailableOnLinux=Ominaisuus ei ole Unix-koneissa. Testaa sendmail ohjelmaa paikallisesti.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Moduuli asetukset
     ModulesSetup=Moduulit/Applikaatio asetukset
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules työkalut
     ModuleFamilyExperimental=Kokeellinen modules
     ModuleFamilyFinancial=Talouden Moduulit (Kirjanpito / Rahoitus)
     ModuleFamilyECM=Sisällönhallinta (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Valikko käsitteleville
     MenuAdmin=Valikko editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Älä käytä tuotannossa
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Vaihe %s
    -FindPackageFromWebSite=Etsi paketti, joka sisältää haluamasi toiminnon (esimerkiksi www-sivuston %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr nykyinen versio
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Viimeisin vakaa versio
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Viive cashing vienti vastehuippu sekuntia (0 tai tyhjä ei välimuisti)
     DisableLinkToHelpCenter=Piilota linkki <b>"Tarvitsetko apua tai tukea"</b> on kirjautumissivulla
     DisableLinkToHelp=Piilota linkki online apuun "<b>%s</b>"
    -AddCRIfTooLong=Ei ole automaattinen rivitys, joten jos linja on poissa sivu asiakirjoja, koska liian pitkä, sinun on lisättävä itse kuljetukseen tuotot ovat textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Vähimmäispituus
     LanguageFilesCachedIntoShmopSharedMemory=Tiedostot. Lang ladattu jaettua muistia
     LanguageFile=Kielitiedosto
    -ExamplesWithCurrentSetup=Esimerkkejä nykyisellä asetuksella
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Luettelo OpenDocument malleja hakemistoja
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Esimerkkejä syntaksin: <br> c: \\ mydir <br> / Home / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> Jos haluat tietää, miten voit luoda odt asiakirjamalleja, ennen kuin laitat ne näistä hakemistoista, lue wiki dokumentaatio:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Avain käyttää Web Services (parametri &quot;dolibarrk
     TestSubmitForm=Tulo testi lomake
     ThisForceAlsoTheme=Tämän valikon avulla manageri käyttää myös oma teemansa mikä on käyttäjän valinta. Myös tämä valikko johtaja erikoistunut älypuhelimiin ei toimi kaikille älypuhelimeen. Käytä toista valikonhallinta jos ongelmia on sinun.
     ThemeDir=Skins hakemisto
    -ConnectionTimeout=Connexion aikakatkaisu
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response aikakatkaisu
     SmsTestMessage=Test viesti __ PHONEFROM__ ja __ PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Avain turvallinen URL
    -NoSmsEngine=Ei SMS lähettäjän Manager. SMS lähettäjä johtaja ei ole asennettu oletuksena jakelussa (koska ne riippuu ulkopuolinen toimittaja), mutta voit löytää siitä http://www.dolistore.com
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Voit määrittää kunkin globaalin liittyviä vaihtoehtoja PDF sukupolvi
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Säännöt luoda osoitteeseen laatikot
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Piilota tuotekuvaukset syntyvässä PDF -tiedostossa
     HideRefOnPDF=Piilota tuotteiden viitteet syntyvässä PDF - tiedostossa
     HideDetailsOnPDF=Piilota tuote rivitiedot syntyvässä PDF -tiedostossa
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parametrit turvata URL
     SecurityTokenIsUnique=Käytä ainutlaatuinen securekey parametri jokaiselle URL
     EnterRefToBuildUrl=Kirjoita viittaus objektin %s
     GetSecuredUrl=Hanki lasketaan URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Vanha ALV prosentti
     NewVATRates=Uusi ALV prosentti
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Valitse lista
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Salasana
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Valintaruudut
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Oletuslinkki
     SetAsDefault=Aseta oletukseksi
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Poista kaikki nykyiset viivakoodi arvot
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=Kaikki viivakoodi arvot on poistettu
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Näytä yrityksen osoitetiedot
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Klikkaa näyttääksesi kuvaus
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Kenttä
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Lähetä asialista muistutus sähköpostilla
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Käyttäjät & ryhmät
     Module0Desc=Käyttäjien / Työntekijöiden ja ryhmien hallinta
    -Module1Name=Ulkopuoliset sidosryhmät
    -Module1Desc=Yrityksien ja yhteystietojen hallinnointi (asiakkaat, prospektit...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Kaupalliset
     Module2Desc=Kaupallinen hallinnointi
     Module10Name=Kirjanpito
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Ehdotukset
     Module20Desc=Kaupalliset ehdotuksia hallinto -
     Module22Name=Massa sähköpostitus
    @@ -495,7 +501,7 @@ Module23Desc=Seuranta kulutus energialähteiden
     Module25Name=Asiakastilaukset
     Module25Desc=Asiakastilausten hallinnointi
     Module30Name=Laskut
    -Module30Desc=Laskut ja hyvityslaskut hallinto-asiakkaille. Laskut hallinto-toimittajille
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Tavarantoimittajat
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logit
    @@ -511,13 +517,13 @@ Module52Desc=Varastojen hallinnan tuotteet
     Module53Name=Palvelut
     Module53Desc=Palvelut hallinto
     Module54Name=Sopimukset/Tilaukset
    -Module54Desc=Hallinnoi Sopimukset (palvelut tai toistuvat tilaukset)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Viivakoodi
     Module55Desc=Viivakoodien hallinnointi
     Module56Name=Puhelimet
     Module56Desc=Puhelimet yhdentyminen
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=ClickToDial yhdentyminen
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Kulut ja matka muistiinpanot
     Module75Desc=Kulut ja matkat muistiinpanojen hallinnointi
     Module80Name=Lähetykset
     Module80Desc=Lähetys ja toimitus tilauksien hallinnointi
    -Module85Name=Pankit ja käteinen
    +Module85Name=Banks and Cash
     Module85Desc=Pankkitilien ja käteistilien hallinnointi
    -Module100Name=ExternalSite
    -Module100Desc=Sisälly erillisiä web sivuston Dolibarr valikot ja tarkastella sen Dolibarr runko
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman ja SIP
     Module105Desc=Mailman tai spip liitäntä jäsen moduuli
     Module200Name=LDAP
    -Module200Desc=LDAP-hakemiston synkronointi
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke yhdentyminen
     Module240Name=Tietojen vienti
    -Module240Desc=Työkalu Dolibarr tietojen vientiin (avustuksella)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Tietojen tuonti
    -Module250Desc=Työkalu Dolibarr tietojen tuontiin (avustuksella)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Jäsenet
     Module310Desc=Säätiön jäsenten hallintaan
     Module320Name=RSS Feed
     Module320Desc=Lisää RSS-syöte sisällä Dolibarr näytön sivuilla
    -Module330Name=Kirjanmerkit
    -Module330Desc=Kirjanmerkkien hallinta
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar yhdentyminen
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Suoritus työntekijöiden palkoista
    -Module510Desc=Tallenna ja seuraa suorituksia työntekijöiden palkoista
    +Module510Desc=Record and track employee payments
     Module520Name=Laina
     Module520Desc=Lainojen hallinnointi
     Module600Name=Ilmoitukset liiketapahtumista
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Lahjoitukset
     Module700Desc=Lahjoituksien hallinnointi
     Module770Name=Kuluraportit
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Massa sähköposti dokumentin luominen
     Module1780Name=Merkit/Kategoriat
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=FCKeditor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynaamiset Hinnat
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Ajastetut työt
     Module2300Desc=Ajastettujen töiden hallinnointi (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Käytä online Gravatar palvelu (www.gravatar.com) näyttää kuvan käyttäjät / jäsenet (löytyi niiden sähköpostit). Tarvitsetko internetyhteys
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Ohjelma
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind tulokset valmiuksia
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=Henkilöstöhallinta
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-yhtiö
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Nettisivut
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Kassa
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of myynnin
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Kirjanpito (edistynyt)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=Tulosta IPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Vaalit, Kysely vai Äänestys
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Katteet
     Module59000Desc=Moduuli katteiden hallintaan
     Module60000Name=Komissiot
     Module60000Desc=Moduuli komissioiden hallintaan
    -Module62000Name=Incoterm
    -Module62000Desc=Lisää Incoterm ominaisuuksia
    +Module62000Name=Incoterm-ehdot
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resurssit
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Lue laskut
    @@ -651,9 +661,9 @@ Permission32=Luoda / muuttaa tuotetta / palvelua
     Permission34=Poista tuotteita / palveluita
     Permission36=Vienti tuotteet / palvelut
     Permission38=Vie tuotteita
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Poista hankkeiden
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Vie Projektit
     Permission61=Lue interventioiden
     Permission62=Luoda / muuttaa interventioiden
    @@ -686,7 +696,7 @@ Permission109=Poista sendings
     Permission111=Lue tilinpäätös
     Permission112=Luoda / muuttaa / poistaa ja vertailla liiketoimet
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Vientitoimien ja tiliotteita
     Permission116=Siirrot tilien välillä
     Permission117=Hallitse sekkien lähettämistä
    @@ -694,15 +704,15 @@ Permission121=Lue kolmannen osapuolen liittyy käyttäjän
     Permission122=Luoda / muuttaa kolmansien osapuolten liittyy käyttäjän
     Permission125=Poista kolmansien osapuolten liittyy käyttäjän
     Permission126=Vienti kolmansiin osapuoliin
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Lue tarjoajien
     Permission147=Lue stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Sulje toimittaja tilaukset
     Permission188=Peruuta toimittaja tilaukset
     Permission192=Luo rivit
     Permission193=Peruuta rivit
    -Permission194=Lue kaistanleveys linjat
    +Permission194=Read the bandwidth lines
     Permission202=Luo ADSL-liittymien
     Permission203=Tilaa yhteydet tilaukset
     Permission204=Tilaa yhteydet
    @@ -750,12 +760,12 @@ Permission244=Katso sisältö piilotetut luokat
     Permission251=Lue muiden käyttäjien ja ryhmien
     PermissionAdvanced251=Lukea muiden käyttäjien
     Permission252=Luoda / muuttaa muille käyttäjille, ja sinun permisssions
    -Permission253=Muokata muiden käyttäjien salasana
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Luo / muokkaa sisäiset / ulkoiset käyttäjät ja käyttöoikeudet
     Permission254=Poista tai poistaa muiden käyttäjien
     Permission255=Luoda / muuttaa omaa käyttäjän tiedot
     Permission256=Muokkaa oma salasana
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Lue CA
     Permission272=Lue laskut
     Permission273=Laskutuksen
    @@ -765,7 +775,7 @@ Permission283=Poista yhteystietoja
     Permission286=Vie yhteystietoja
     Permission291=Lue tariffit
     Permission292=Aseta oikeudet tariffien
    -Permission293=Muokka makuun tariffit
    +Permission293=Modify customers tariffs
     Permission300=Lue viivakoodin
     Permission301=Luoda / muuttaa viivakoodin
     Permission302=Poista viivakoodin
    @@ -787,11 +797,9 @@ Permission401=Lue alennukset
     Permission402=Luoda / muuttaa alennukset
     Permission403=Validate alennukset
     Permission404=Poista alennukset
    -Permission501=Lue työntekijän sopimukset/palkat
    -Permission502=Luo / muuta työntekijän sopimuksia / palkkoja
    -Permission511=Lue Palkkojen Suoritukset
    -Permission512=Luo/muokkaa Palkkojen Suoritus
    -Permission514=Poista palkat
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Vie palkat
     Permission520=Lue Lainat
     Permission522=Luo/muokkaa Lainat
    @@ -844,8 +852,8 @@ Permission1251=Suorita massa tuonnin ulkoisten tiedot tietokantaan (tiedot kuorm
     Permission1321=Vienti asiakkaan laskut, ominaisuudet ja maksut
     Permission1322=Avaa uudelleen maksettu lasku
     Permission1421=Vienti asiakkaan tilaukset ja attribuutit
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Sidosryhmä tyypit
    -DictionaryCompanyJuridicalType=Sidostyhmän oikeudellinen muoto
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Esitetilaus mahdolliset tasolla
     DictionaryCanton=Valtio / Lääni
     DictionaryRegion=Alueiden
    @@ -894,7 +902,7 @@ DictionaryVAT=Alv
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Maksuehdot
     DictionaryPaymentModes=Maksutavat
    -DictionaryTypeContact=Yhteystiedot tyypit
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ympäristöveron (WEEE)
     DictionaryPaperFormat=Paper tiedostomuodot
    @@ -908,47 +916,47 @@ DictionarySource=Alkuperä ehdotusten / tilaukset
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Kirjanpitotilityypit
    -DictionaryEMailTemplates=Sähköposti pohjat
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Yksiköt
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup tallennettu
     SetupNotSaved=Asetuksia ei tallennettu
     BackToModuleList=Palaa moduulien luetteloon
    -BackToDictionaryList=Palaa sanakirjat luettelo
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=Alv Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=Oletusarvon ehdotettu alv on 0, jota voidaan käyttää tapauksissa, kuten yhdistysten, yksityishenkilöiden tai pieniä yrityksiä.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Kurssi
     LocalTax1IsNotUsed=Älä käytä toista veroa
    -LocalTax1IsUsedDesc=Käytä toisen tyyppistä veroa (muu kuin ALV)
    -LocalTax1IsNotUsedDesc=Älä käytä toisen tyyppistä veroa (muu kuin ALV)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Toisen tyyppinen vero
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Älä käytä kolmatta veroa
    -LocalTax2IsUsedDesc=Käytä kolmannen tyyppistä veroa (muu kuin ALV)
    -LocalTax2IsNotUsedDesc=Älä käytä muun tyyppistä veroa (muu kuin ALV)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Kolmannen tyypin vero
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE hallinta
    -LocalTax1IsUsedDescES= RE määrä oletuksena luodessasi näkymiä, laskuja, tilauksia jne seuraa aktiivisesti vakiokäytäntönä: <br> Jos te ostaja ei kohdistu RE-RE oletusarvoisesti = 0. Loppu sääntö. <br> Jos ostaja joutuu RE sitten RE oletusarvoisesti. Loppu sääntö. <br>
    -LocalTax1IsNotUsedDescES= Oletuksena ehdotettu RE 0. Loppu sääntö.
    -LocalTax1IsUsedExampleES= Espanjassa he ovat ammattilaisia sovelletaan tiettyjä osia Espanjan IEA.
    -LocalTax1IsNotUsedExampleES= Espanjassa he ovat ammattitaitoisia ja yhteiskunnan tietyin osa Espanjan IEA.
    -LocalTax2ManagementES= IRPF hallinta
    -LocalTax2IsUsedDescES= RE määrä oletuksena luodessasi näkymiä, laskuja, tilauksia jne seuraa aktiivisesti vakiokäytäntönä: <br> Jos myyjä ei kohdistu IRPF sitten IRPF oletusarvoisesti = 0. Loppu sääntö. <br> Jos myyjä joutuu IRPF sitten IRPF oletusarvoisesti. Loppu sääntö. <br>
    -LocalTax2IsNotUsedDescES= Oletuksena ehdotettu IRPF on 0. Loppu sääntö.
    -LocalTax2IsUsedExampleES= Espanjassa, freelancer ja itsenäisten ammatinharjoittajien, jotka tarjoavat palveluja ja yrityksiä, jotka ovat valinneet verojärjestelmän moduuleja.
    -LocalTax2IsNotUsedExampleES= Espanjassa niitä bussines ei veroteta järjestelmän moduulit.
    +LocalTax1ManagementES=RE hallinta
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Oletuksena ehdotettu RE 0. Loppu sääntö.
    +LocalTax1IsUsedExampleES=Espanjassa he ovat ammattilaisia sovelletaan tiettyjä osia Espanjan IEA.
    +LocalTax1IsNotUsedExampleES=Espanjassa he ovat ammattitaitoisia ja yhteiskunnan tietyin osa Espanjan IEA.
    +LocalTax2ManagementES=IRPF hallinta
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Oletuksena ehdotettu IRPF on 0. Loppu sääntö.
    +LocalTax2IsUsedExampleES=Espanjassa, freelancer ja itsenäisten ammatinharjoittajien, jotka tarjoavat palveluja ja yrityksiä, jotka ovat valinneet verojärjestelmän moduuleja.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Raportit paikallisista veroista
     CalcLocaltax1=Myynnit - Ostot
     CalcLocaltax1Desc=Paikallisten Verojen raportit on laskettu paikallisverojen myyntien ja ostojen erotuksena
    @@ -958,7 +966,9 @@ CalcLocaltax3=Myynti
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label käyttää oletusarvoisesti, jos ei ole käännös löytyy koodi
     LabelOnDocuments=Label asiakirjoihin
    -NbOfDays=Nb päivää
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Kuukauden lopussa
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Tietokantakäyttäjien
     DatabasePassword=Tietokannan salasana
     Tables=Taulukot
     TableName=Taulukko nimi
    -NbOfRecord=Nb tietueista
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver tyyppi
     SummarySystem=System Information summary
    @@ -996,7 +1006,7 @@ Skin=Ihon teema
     DefaultSkin=Oletus ihon teema
     MaxSizeList=Max pituus luettelo
     DefaultMaxSizeList=Oletus luettelon maksimipituuteen
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Kirjoita viesti
     LoginPage=Kirjautumissivu
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Pysyvä hakulomake vasemmassa valikossa
     DefaultLanguage=Oletuskieltä käyttää (kieli-koodi)
     EnableMultilangInterface=Ota monikielinen käyttöliittymä
     EnableShowLogo=Show logo vasemmalla valikossa
    -CompanyInfo=Yritys/Organisaatio tiedot
    -CompanyIds=Yritys/Organisaatio identiteetit
    +CompanyInfo=Yritys/Organisaatio
    +CompanyIds=Company/Organization identities
     CompanyName=Nimi
     CompanyAddress=Osoite
     CompanyZip=Postinumero
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Omistajan pankkitilille %s
     BankModuleNotActive=Pankkitilit moduuli ei ole käytössä
     ShowBugTrackLink=Näytä linkki "<strong>%s</strong>"
     Alerts=Vahtipalvelu
    -DelaysOfToleranceBeforeWarning=Suvaitsevaisuus viivästyksellä ennen varoitus
    -DelaysOfToleranceDesc=Tässä näytössä voidaan määrittää siedetty viivästyksiä, ennen kuin hälytys on raportoitu näytön kanssa picto %s kunkin myöhään elementti.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Viive toleranssi (päivinä) ennen varoituskynnysten ehdotuksista lopettaa
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Viive toleranssi (päivinä) ennen varoituskynnysten ehdotuksista ei laskuteta
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Suvaitsevaisuus viive (päivinä) ennen varoituskynnysten palveluista aktivoida
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Suvaitsevaisuus viive (päivinä) ennen kuin hälytys on lakannut palvelut
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Suvaitsevaisuus viive (päivinä) ennen varoituskynnysten Palkattoman toimittajan laskut
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Suvaitsevaisuus viive (päivinä) ennen varoituskynnysten Palkattoman asiakkaan laskut
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Suvaitsevaisuus viive (päivinä) ennen kuin hälytys on vireillä pankki sovinnon
    -Delays_MAIN_DELAY_MEMBERS=Suvaitsevaisuus viive (päivinä) ennen ilmoituksen myöhästymisestä jäsenmaksu
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Suvaitsevaisuus viive (päivinä) ennen varoituksena sekit tallettaa tehdä
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Muut valikkoon rivit hallita valinnaisia parametrejä.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security Audit tapahtumat
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=Tietoja Dolibarrista
     InfoBrowser=Tietoja selaimesta
     InfoOS=Tietoja OS
    @@ -1056,20 +1066,20 @@ BrowserName=Selaimen nimi
     BrowserOS=Selaimen OS
     ListOfSecurityEvents=Luettelo Dolibarr turvallisuus tapahtumat
     SecurityEventsPurged=Turvallisuus tapahtumia puhdistettava
    -LogEventDesc=Voit ottaa loki Dolibarr turvallisuus tapahtumia täältä. Järjestelmänvalvojat voivat sitten nähdä sen sisällön kautta valikosta <b>System tools - Audit.</b> Varoitus, tämä ominaisuus voi kuluttaa suuren määrän tietoa tietokannasta.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=Järjestelmän tiedot ovat erinäiset tekniset tiedot saavat lukea vain tila ja näkyvissä vain järjestelmänvalvojat.
     SystemAreaForAdminOnly=Tämä alue on käytettävissä järjestelmänvalvojan käyttäjät vain. Ei mikään Dolibarr käyttöoikeudet voidaan vähentää tätä rajaa.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Voit valita kunkin parametrin yhteydessä Dolibarr näyttävät ja tuntuvat täällä
     AvailableModules=Saatavilla olevat app/moduulit
     ToActivateModule=Aktivoi moduulit, mennä setup-alueella.
     SessionTimeOut=Aika pois istunnosta
    -SessionExplanation=Tämä määrä taata, että istunto ei koskaan pääty ennen tätä viivästystä. Mutta PHP sessoin johto ei takeet siitä, että istunto aina päättyy sen jälkeen, kun tämä viive: Tämä ongelma ilmenee, jos järjestelmä puhdistaa välimuisti istunto on käynnissä. <br> Huom: ilman erityistä järjestelmää, sisäisen PHP prosessi puhtaan istuntoonsa joka <b>noin %s / %s,</b> mutta ainoastaan pääsy tehdään muissa istunnoissa.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Saatavilla laukaisimet
    -TriggersDesc=Käynnistäjät ovat tiedostoja, joka muuttaa käyttäytymistä Dolibarr työnkulun kerran kopioidaan hakemistoon <b>htdocs / includes / aiheuttajia.</b> He ymmärsivät uusia toimia, aktivoitu Dolibarr tapahtumia (uuden yrityksen perustamiseen, laskun validointi, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Käynnistäjät tässä tiedosto on poistettu, <b>joita-NORUN</b> suffix heidän nimissään.
     TriggerDisabledAsModuleDisabled=Käynnistäjät tähän tiedostoon pois päältä kuin <b>moduuli %s</b> on poistettu käytöstä.
     TriggerAlwaysActive=Käynnistäjät tässä tiedosto on aina aktiivinen, mikä on aktivoitu Dolibarr moduulit.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=Kaikki turvallisuuteen liittyvät parametrit määritetään täällä.
     LimitsSetup=Rajat / Precision setup
    -LimitsDesc=Voit määrittää rajat, täsmennyksiä ja optimisations käyttää Dolibarr tästä
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max desimaalitarkkuuksia yksikkökohtaiseen hinnat
     MAIN_MAX_DECIMALS_TOT=Max desimaalitarkkuuksia kokonaistyöllisyyttä hinnat
     MAIN_MAX_DECIMALS_SHOWN=Max desimaalitarkkuuksia hinnat näkyvät näytöllä (Lisää <b>...</b> sen jälkeen, kun tämä numero, jos haluat nähdä <b>...</b> kun numero on katkaistu, kun näkyy näytössä)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net yksikköhinta tuotteen
     TotalPriceAfterRounding=Kokonaishinta (netto / vat / sis. alv) pyöristämisen jälkeen
     ParameterActiveForNextInputOnly=Parametri tehokas Seuraavan vain tuloa
    -NoEventOrNoAuditSetup=O turvallisuus tapahtuma on kirjattu vielä. Tämä voi olla normaali, jos tarkastusta ei ole käytössä "setup - turvallisuus - audit"-sivulla.
    -NoEventFoundWithCriteria=O turvallisuus tapauksessa on todettu tällaisen haun criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Katso paikallisen sendmail setup
     BackupDesc=Voit tehdä täydellinen varmuuskopio Dolibarr sinun tulee:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Arkistoidut hakemistossa on säilytettävä turvallisessa paikassa.
     BackupDescY=Luotu dump tiedosto on säilytettävä turvallisessa paikassa.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Jos haluat palauttaa Dolibarr varmuuskopio, sinun täytyy:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL vienti
     ForcedToByAModule= Tämä sääntö on <b>pakko %s</b> on aktivoitu moduuli
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Sinun on suoritettava tämä ko
     YourPHPDoesNotHaveSSLSupport=SSL toimintoja ei saatavilla PHP
     DownloadMoreSkins=Lisää nahat ladata
     SimpleNumRefModelDesc=Palaa viitenumero muodossa %syymm-nnnn jossa yy on vuosi, MM kuukautta ja nnnn on sekvenssiin reikä ja ilman nollaa
    -ShowProfIdInAddress=Näytä ammattijärjestöt id osoitteiden kanssa asiakirjojen
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Osittainen käännös
    -MAIN_DISABLE_METEO=Poista Meteo näkymä
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standardi tila
     MeteoStdModEnabled=Standardi tila aktivoitu
     MeteoPercentageMod=Prosenttitila
     MeteoPercentageModEnabled=Prosenttitila käytössä
     MeteoUseMod=Klikkaa käyttääksesi %s
     TestLoginToAPI=Testaa kirjautua API
    -ProxyDesc=Jotkin Dolibarr on oltava Internet-työhön. Määritä tässä parametrit tästä. Jos Dolibarr palvelin on välityspalvelimen takana, näiden parametrien kertoo Dolibarr miten Internetin kautta läpi.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Ulkoinen pääsy
     MAIN_PROXY_USE=Käytä välityspalvelinta (muuten suora pääsy Internetiin)
     MAIN_PROXY_HOST=Nimi / osoite välityspalvelimen
     MAIN_PROXY_PORT=Satama välityspalvelinta
     MAIN_PROXY_USER=Kirjaudu käyttää välityspalvelinta
     MAIN_PROXY_PASS=Salasana käyttää välityspalvelinta
    -DefineHereComplementaryAttributes=Määritä tässä kaikki atributes, jo ole oletuksena, ja että haluat tuettava %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Täydentävät ominaisuudet
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Varoitus, joissakin Linux-järjestelmissä, lähettää sähköpostia sähköpostisi, sendmail toteuttaminen setup on conatins optio-ba (parametri mail.force_extra_parameters tulee php.ini tiedosto). Jos jotkut vastaanottajat eivät koskaan vastaanottaa sähköposteja, yrittää muokata tätä PHP parametrin mail.force_extra_parameters =-ba).
     PathToDocuments=Polku asiakirjoihin
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Käännöksen asetukset
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Sinulla pitää olla ainakin 1 moduuli käytössä
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Hakuoptimointi
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug ladattu
     XCacheInstalled=XCache ladattu
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Alalla painos %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Hanki viivakoodi
     ##### Module password generation
     PasswordGenerationStandard=Palauta salasana luodaan mukaan sisäinen Dolibarr algoritmi: 8 merkkiä sisältävät jaettua numerot ja merkit pieniä.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=Sähköposti Vaaditaan Luo uusi käyttäjä
     HRMSetup=Henkilöstöhallinta moduulin asetukset
     ##### Company setup #####
     CompanySetup=Yritykset moduulin asetukset
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Asiakirjat mallit
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Vesileima asiakirjaluonnos
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Ammatillinen tunnus ainutlaatuinen
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Täytyy olla uniikki?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=<b>Vienti-yhteys %s-muodossa</b> on saatavilla seuraavasta linkistä: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=<b>Vienti-yhteys %s-muodossa</b> on saatavilla seuraavast
     BillsSetup=Laskut moduulin asetukset
     BillsNumberingModule=Laskut ja hyvityslaskut numerointiin moduuli
     BillsPDFModules=Laskun asiakirjojen malleja
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Menoilmoitus
     CreditNotes=Hyvityslaskuja
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Hallitse Sisään jokaiselle jäsenelle
     AdherentMailRequired=EMail tarvitse luoda uuden jäsenen
     MemberSendInformationByMailByDefault=Checkbox lähettää vahvistusviestin jäsenille on oletusarvoisesti
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP-asetukset
     LDAPGlobalParameters=Global parametrit
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synkronointi testi onnistunut
     LDAPSynchroKO=Epäonnistui synkronointi testi
    -LDAPSynchroKOMayBePermissions=Epäonnistui synkronointi testi. Tarkista, että connexion palvelimelle on määritetty oikein ja mahdollistaa LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=TCP yhteyden LDAP-palvelin onnistunut (Server= %s, Port= %s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=TCP yhteyden LDAP-palvelimeen ei onnistunut (Server= %s, Port= %s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=Yhdistä / Authentificate on LDAP-palvelimeen ei onnistunut (Server= %s, Port= %s, Admin= %s, salasana= %s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP-palvelin määritetty versio 3
     LDAPSetupForVersion2=LDAP-palvelin määritetty versio 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Esimerkki: samaccountname
     LDAPFieldFullname=Etunimi Nimi
     LDAPFieldFullnameExample=Esimerkki: cn
    -LDAPFieldPasswordNotCrypted=Salasana ei crypted
    -LDAPFieldPasswordCrypted=Salasana crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Esimerkki: userPassword
     LDAPFieldCommonNameExample=Esimerkki: cn
     LDAPFieldName=Nimi
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Esimerkki arvot on suunniteltu <b>OpenLDAP</b> kanssa seuraavat ladattu kaavat: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Jos käytät thoose arvot ja OpenLDAP, muokata LDAP config file <b>slapd.conf</b> on kaikki thoose kaavat ladattu.
     ForANonAnonymousAccess=Jotta autentikoitu acces (for a kirjoitusoikeuksia esimerkiksi)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Oletus hakusuodattimet
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Tuotteet Moduuli setup
     ServiceSetup=Services-moduuli asennus
     ProductServiceSetup=Tuotteet ja palvelut moduulien asennus
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=Max numero tuotteiden yhdistelmät valitse listat (0= ei ylärajaa)
    -ViewProductDescInFormAbility=Visualisointi tuotteen kuvaukset lomakkeiden (toisin kuin popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Oletus viivakoodi tyyppi käyttää tuotteita
     SetDefaultBarcodeTypeThirdParties=Oletus viivakoodi tyyppi käyttämään kolmansien osapuolten
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Lähetysvalinnat-moduulin asetukset
     SendingsReceiptModel=Lähettävä vastaanottanut malli
     SendingsNumberingModules=Lähetysten numerointi moduulit
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Vapaa sana lähetyksissä
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Tuotteiden toimitukset vastaanottamisesta numerointiin moduuli
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Kehittynyt editori
     ActivateFCKeditor=Ota FCKeditor varten:
     FCKeditorForCompany=WYSIWIG luominen / painos yritysten kuvaus ja huomaa
     FCKeditorForProduct=WYSIWIG luominen / painos tuotteiden / palvelujen kuvaus ja huomaa
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG luominen / painos postitusten
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Yhteys onnistunut mutta tietokanta ei näytä olevan OSCommerce tietokanta (Key %s ei löydy taulukossa %s).
    -OSCommerceTestOk=Yhteys palvelimeen ' %s' on tietokanta' %s' kanssa käyttäjä ' %s' onnistunut.
    -OSCommerceTestKo1=Yhteys palvelimeen ' %s' onnistua mutta tietokanta' %s' ei tavoitettu.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Yhteys palvelimeen ' %s' kanssa käyttäjä' %s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Valikko poistettu
     Menus=Menut
    @@ -1548,7 +1562,7 @@ DetailRight=Ehto näyttö luvattoman harmaa valikot
     DetailLangs=Lang tiedoston nimen etiketti koodin käännös
     DetailUser=Intern / avun / Kaikki
     Target=Kohde
    -DetailTarget=Tavoite vuodelle linkkejä (_blank alkuun avata uuteen ikkunaan)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Tasolla (-1: ylävalikosta 0: header-valikko&gt; 0-valikon ja alivalikon)
     ModifMenu=Valikko muutos
     DeleteMenu=Poista Valikosta
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=Arvonlisävero on maksettava: <br> - Toimituksen / maksuja
     OptionVatDebitOptionDesc=Arvonlisävero on maksettava: <br> - Toimituksen / maksuja tavaroista <br> - Laskulla (debet) ja palvelut
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Toimituksen
     OnPayment=Maksu
     OnInvoice=Käytössä lasku
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Ostojen tili
     AgendaSetup=Toimet ja esityslistan moduulin asetukset
     PasswordTogetVCalExport=Avain sallia viennin linkki
     PastDelayVCalExport=Älä viedä tapauksessa vanhempia kuin
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Ota käyttöön ilmoitusäänet
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Napsauttamalla Dial-moduulin asetukset
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of myynti
     CashDeskSetup=Kassa-moduulin asetukset
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Rahat tilille käyttää myy
     CashDeskBankAccountForCheque= Tilin käyttö vastaanottaa maksuja sekillä
     CashDeskBankAccountForCB= Tilin käyttö voidaan saada käteismaksujen luottokorttia
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Kirjanmerkin moduulin asetukset
    -BookmarkDesc=Tämän moduulin avulla voit hallita kirjanmerkkejä. Voit myös lisätä linkkejä mihin tahansa Dolibarr sivuja tai externale webbisivuilta vasemmalla valikossa.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Enimmäismäärä kirjanmerkit näytetään vasemmanpuoleisessa valikossa
     ##### WebServices #####
     WebServicesSetup=Webservices moduulin asetukset
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-yhtiö moduulin asetukset
     ##### Suppliers #####
     SuppliersSetup=Toimittajan moduuli setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Hankkeen moduuli setup
     ProjectsModelModule=Hankkeen raportti asiakirjan malli
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Tilikaudet
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Linkkien värit
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Myyti veroprosentti
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Näkyvillä kaikkialla
     VisibleNowhere=Visible nowhere
     FixTZ=Aikavyöhyke korjaus
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Mallipohjat tuoteiden liitteille
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Luettelo saatavilla olevista API:sta
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=PDF:n vasen marginaali
     MAIN_PDF_MARGIN_RIGHT=PDF:n oikea marginaali
     MAIN_PDF_MARGIN_TOP=PDF:n ylämarginaali
     MAIN_PDF_MARGIN_BOTTOM=PDF:n alamarginaali
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Postinumero
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/fi_FI/banks.lang b/htdocs/langs/fi_FI/banks.lang
    index c26e2203480..8bd40de387b 100644
    --- a/htdocs/langs/fi_FI/banks.lang
    +++ b/htdocs/langs/fi_FI/banks.lang
    @@ -7,7 +7,7 @@ BankName=Pankin nimi
     FinancialAccount=Tili
     BankAccount=Pankkitili
     BankAccounts=Pankkitilit
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Näytä tili
     AccountRef=Rahoitustase viite
     AccountLabel=Rahoitustase etiketti
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Tilin osoite
     BankAccountCountry=Tilin maa
     BankAccountOwner=Tilinomistajan nimi
     BankAccountOwnerAddress=Tilinomistajan osoite
    -RIBControlError=Eheydentarkistus arvojen epäonnistuu. Tämä tarkoittaa tiedoista tilinumero eivät ole täydellisiä tai väärin (tarkista maassa, numerot ja IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Luo tili
     NewBankAccount=Uusi tili
     NewFinancialAccount=New rahoitustili
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Täsmäytettävät tapahtumat
     Conciliable=Conciliable
     Conciliate=Sovita
     Conciliation=Yhteensovita
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Täsmäytys myöhässä
     IncludeClosedAccount=Sisällytä suljettu tilit
     OnlyOpenedAccount=Vain avoimet tilit
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal veron maksu
     BankTransfer=Pankkisiirto
     BankTransfers=Pankkisiirrot
     MenuBankInternalTransfer=Sisäinen siirto
    -TransferDesc=Siirto tililtä toiselle. Dolibarr luo molemmille tileille kirjaukset (debet lähdetilille ja kredit vastaanottavalle tilille) samalla summalla (ainoastaan etumerkki muuttuu). Päivämäärää ja nimikettä käytetään myös tässä tapahtumassa.
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Mistä
     TransferTo=mihin
     TransferFromToDone=A <b>siirtää %s %s %s%</b> s on tallennettu.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Haluatko varmasti poistaa tämän sekkikuitin?
     BankChecks=Pankkisekit
     BankChecksToReceipt=Talletusta odottavat shekit
     ShowCheckReceipt=Näytä tarkistaa Talletus kuitti
    -NumberOfCheques=Nb Sekkien
    +NumberOfCheques=No. of check
     DeleteTransaction=Poista merkintä
     ConfirmDeleteTransaction=Haluatko varmasti poistaa tämän merkinnän?
     ThisWillAlsoDeleteBankRecord=Tämä poistaa myös luodun pankkimerkinnän
    @@ -135,8 +136,8 @@ BankTransactionLine=Pankkimerkintä
     AllAccounts=All bank and cash accounts
     BackToAccount=Takaisin tiliin
     ShowAllAccounts=Näytä kaikki tilit
    -FutureTransaction=Tapahtuma on tulevaisuudessa. Ei soviteltavissa.
    -SelectChequeTransactionAndGenerate=Valitse / suodattaa tarkastuksiin sisällyttää osaksi tarkastus talletuksen vastaanottamisesta ja klikkaa &quot;Luo&quot;.
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Valitse tämän täsmäytyksen tiliote. Käytä lajiteltavaa numeroarvoa: YYYYMM tai YYYYMMDD
     EventualyAddCategory=Määritä luokka johon tiedot luokitellaan
     ToConciliate=Täsmäytä?
    @@ -153,7 +154,7 @@ RejectCheckDate=Shekin palautumispäivä
     CheckRejected=Shekki palautunut
     CheckRejectedAndInvoicesReopened=Shekki palautunut ja lasku avautunut uudelleen
     BankAccountModelModule=Pankkitilien dokumenttimallit
    -DocumentModelSepaMandate=SEPA valtuuden malli. Käyttökelpoinen vain EEC alueen valtioissa
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=BAN tiedon sisältävä tulostusmalli
     NewVariousPayment=Uudet muut maksut
     VariousPayment=Muut maksut
    @@ -162,4 +163,5 @@ ShowVariousPayment=Näytä muut maksut
     AddVariousPayment=Lisää muita maksuja
     SEPAMandate=SEPA mandate
     YourSEPAMandate=SEPA-toimeksiantonne
    -FindYourSEPAMandate=Tämä on SEPA-valtuutuksesi valtuuttaa yhtiömme suorittamaan suoraveloitusjärjestelyt pankillesi. Palautathan sen allekirjoitettuna (skannattuna allekirjoitettu asiakirja) tai lähettä sen postitse osoitteeseen
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/fi_FI/bills.lang b/htdocs/langs/fi_FI/bills.lang
    index 7215e0c70c9..8713bee26aa 100644
    --- a/htdocs/langs/fi_FI/bills.lang
    +++ b/htdocs/langs/fi_FI/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma lasku
     InvoiceProFormaDesc=<b>Proforma lasku</b> on todellinen lasku, mutta sillä ei ole kirjanpidollista arvoa.
     InvoiceReplacement=Korvaava lasku
     InvoiceReplacementAsk=Laskun korvaava lasku
    -InvoiceReplacementDesc=<b>Hyvityslasku</b> käytetään peruuttamaan ja korvaamaan täysin lasku jonka maksua ei ole vielä saatu. <br><br> Huomaa: Vain lasku ilman maksua voidaan hyvittää. Jos sitä ei ole suljettu, se on automaattisesti suljettu "hylätyksi".
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Menoilmoitus
     InvoiceAvoirAsk=Menoilmoitus korjata laskun
    -InvoiceAvoirDesc=<b>Luoton merkintä</b> on negatiivinen lasku käytetään ratkaista se, että lasku on määrä, joka on erilainen kuin määrä todella maksetaan (koska asiakas maksanut liikaa virheitä, tai ei maksanut kokonaan, koska hän palasi joitakin tuotteita esimerkiksi). <br><br> Huomautus: Alkuperäinen lasku on jo päättynyt ( "maksetaan" tai "maksetaan osittain"), jonka avulla luodaan menoilmoitus sitä.
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Takaisin maksu
     DeletePayment=Poista maksu
     ConfirmDeletePayment=Oletko varma, että haluat poistaa tämän suorituksen?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Tavarantoimittajat maksut
     ReceivedPayments=Vastaanotetut maksut
     ReceivedCustomersPayments=Saatujen maksujen asiakkaille
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Vastatut asiakkaiden maksut validoida
     PaymentsReportsForYear=Maksut raportteja %s
     PaymentsReports=Maksut raportit
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Maksuehdot
     PaymentAmount=Maksusumma
     ValidatePayment=Vahvista maksu
     PaymentHigherThanReminderToPay=Maksu korkeampi kuin muistutus maksaa
    -HelpPaymentHigherThanReminderToPay=Huomio, maksusumman yhden tai useamman laskut on korkeampi kuin muualla maksamaan. <br> Muokkaa merkintä, muuten vahvistaa ja mieti luoda menoilmoitus sen ylittävältä osalta saatu kunkin overpaid laskut.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Luokittele "Maksettu"
     ClassifyPaidPartially=Luokittele "Osittain maksettu"
     ClassifyCanceled=Luokittele "Hylätty"
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Suljettu (palkaton)
     BillStatusClosedPaidPartially=Maksanut (osittain)
     BillShortStatusDraft=Vedos
     BillShortStatusPaid=Maksetaan
    -BillShortStatusPaidBackOrConverted=Hyvitetty tai vaihdettu
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Maksetut
     BillShortStatusCanceled=Hylätty
     BillShortStatusValidated=Validoidut
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Suljettu
     BillShortStatusClosedPaidPartially=Maksanut (osittain)
     PaymentStatusToValidShort=Validoida
    -ErrorVATIntraNotConfigured=Intracommunautary alv-numero ei vielä määritelty
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=N: o oletusmaksutapa tilassa määritelty. Siirry Kauppalaskuilmoituksessa moduuli valinnaksi korjata.
     ErrorCreateBankAccount=Luo pankkitiliä, siirry Setup paneeli Kauppalaskuilmoituksessa moduuli määritellä maksutavat
     ErrorBillNotFound=Lasku %s ei ole olemassa
    -ErrorInvoiceAlreadyReplaced=Virhe, kun yrität validoida lasku korvata lasku %s. Mutta tässä on jo korvattu laskun %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Virhe, alennus jo käytössä
     ErrorInvoiceAvoirMustBeNegative=Virhe, oikea lasku on negatiivinen määrä
     ErrorInvoiceOfThisTypeMustBePositive=Virhe, tällainen lasku on myönteinen määrä
     ErrorCantCancelIfReplacementInvoiceNotValidated=Virhe ei voi peruuttaa laskun, joka on korvattu toisella laskun, joka on vielä luonnosvaiheessa asema
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Laskuttaja
     BillTo=Vastaanottaja
     ActionsOnBill=Toimet lasku
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Huono asiakas
     ConfirmClassifyPaidPartiallyReasonProductReturned=Tuotteet osittain palautettu
     ConfirmClassifyPaidPartiallyReasonOther=Määrä luovuttamiseen muu syy
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Tämä valinta on mahdollinen, jos lasku on toimitettu sopiva kommentti. (Esimerkki "Vain vero vastaa hintaa, joka on tosiasiallisesti maksettu antaa oikeuksia vähennys»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Joissakin maissa tämä valinta voisi olla mahdollista vain, jos lasku sisältää oikea merkintä.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Käytä tätä vaihtoehtoa, jos kaikki muut ei sovi
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Huono asiakas</b> on asiakas, jotka kieltäytyvät maksaa hänen velkansa.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Tämä valinta on käytössä, kun maksua ei ole täydellinen, koska jotkut tuotteet on palautettu
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Käytä tätä vaihtoehtoa, jos kaikki muut ei sovi, esimerkiksi seuraavassa tilanteessa: <br> - Maksua ei ole täydellinen, koska jotkut tuotteet on lastattu takaisin <br> - Määrä väitti liian tärkeää, koska alennus oli unohtanut <br> Kaikissa tapauksissa, määrä yli-väitti on korjattava kirjanpidon järjestelmän luomalla menoilmoitus.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Muu
     ConfirmClassifyAbandonReasonOtherDesc=Tämä valinta voidaan käyttää kaikissa muissa tapauksissa. Esimerkiksi koska aiot luoda korvaa laskun.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate lasku
     UnvalidateBill=Unvalidate lasku
    -NumberOfBills=Nb laskuista
    -NumberOfBillsByMonth=Nb laskuista kuukausittain
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Määrä laskuista
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Määrä laskut kuukausittain (verojen jälkeen)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Näytä lasku
    @@ -260,9 +262,9 @@ Repeatables=Pohjat
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Asiakas laskut ja laskujen "linjat
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Asiakas laskut ja maksut
    -ExportDataset_invoice_1=Asiakas laskujen luettelo ja laskut "linjat
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Asiakas laskut ja maksut
     ProformaBill=Proforma Bill:
     Reduction=Alennusprosentti
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill osoite
    -HelpEscompte=Tämä alennus on alennus myönnetään asiakas, koska sen paiement tehtiin ennen aikavälillä.
    -HelpAbandonBadCustomer=Tämä määrä on luovuttu (asiakas sanoi olla huono asiakas), ja se on pidettävä exceptionnal väljä.
    -HelpAbandonOther=Tämä määrä on luovuttu, koska se oli virhe (väärä asiakas-tai laskunumeroa korvata toinen esimerkki)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Maksu-id
     PaymentRef=Maksuviite
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Ei laskun valittu
     CloneInvoice=Klooni lasku
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Toimi vammaisten koska lasku on korvattu
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb maksujen
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split edullisista kahdessa
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input määrä kunkin kahteen osaan:
    -TotalOfTwoDiscountMustEqualsOriginal=Yhteensä kaksi uutta alennus on oltava alkuperäinen alennuksen määrästä.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related lasku
     RelatedBills=Related laskut
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Varoitus, yksi tai useampi lasku jo olemassa
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Summa on jaettu laskulla
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Maksuviesti
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Cheque
     PaymentTypeShortCHQ=Cheque
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=Rivillä maksu
    -PaymentTypeShortVAD=Rivillä maksu
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Luonnos
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Pankkitiedot
     BankCode=Pankin koodi
    -DeskCode=Työpöytä-koodi
    +DeskCode=Office code
     BankAccountNumber=Tilinumero
    -BankAccountNumberKey=Avain
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN-numero
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=BIC / SWIFT-numero
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Maksu tilisiirrolla käyttäen näitä tiliti
     VATIsNotUsedForInvoice=* Ei sovelleta alv taide-293B CGI
     LawApplicationPart1=Soveltamalla lain 80.335 tehty 12/05/80
     LawApplicationPart2=tavaroiden omistusoikeus säilyy
    -LawApplicationPart3=myyjän kunnes täydellinen lunastaminen ja
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=niiden hinta.
     LimitedLiabilityCompanyCapital=SARL, pääoma
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Sekit
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Käytä asiakkaiden laskutus osoite sijaan kolmannen osapuolen osoite vastaanottajalle laskut
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Näytä kaikki maksamattomat laskut
     ShowUnpaidLateOnly=Näytä myöhään unpaid laskun vain
     PaymentInvoiceRef=Maksu laskun %s
    @@ -474,21 +476,22 @@ Reported=Myöhässä
     DisabledBecausePayments=Ole mahdollista, koska on olemassa joitakin maksuja
     CantRemovePaymentWithOneInvoicePaid=Ei voi poistaa maksua koska siellä on ainakin laskulla luokiteltu maksanut
     ExpectedToPay=Odotettu maksu
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Maksanut tämän maksun
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Kaikki lasku ilman jää maksaa automaattisesti suljettu tila &quot;maksanut&quot;.
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Maksa
     ToMakePaymentBack=Takaisin maksu
     ListOfYourUnpaidInvoices=Luettelo maksamattomista laskuista
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Laskun malli Crabe. Täydellinen laskun malli (Tuki alv vaihtoehto, alennukset, maksut edellytykset, logo, jne. ..)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Poista laskupohja
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/fi_FI/cashdesk.lang b/htdocs/langs/fi_FI/cashdesk.lang
    index 518e606ab96..cdb672b7dfb 100644
    --- a/htdocs/langs/fi_FI/cashdesk.lang
    +++ b/htdocs/langs/fi_FI/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Näytä yrityksen
     ShowStock=Näytä varasto
     DeleteArticle=Poista napsauttamalla tämän artikkelin
     FilterRefOrLabelOrBC=Etsi (Viite/Otsikko)
    -UserNeedPermissionToEditStockToUsePos=Haluat vähentää varastosaldoa laskun luonnin yhteydessä. POS käyttäjä tarvitsee oikeudet muokata varastoa.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr kuittitulostin
    +PointOfSale=Point of myynnin
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/fi_FI/commercial.lang b/htdocs/langs/fi_FI/commercial.lang
    index 6c0fc65e9bd..ae5cd735982 100644
    --- a/htdocs/langs/fi_FI/commercial.lang
    +++ b/htdocs/langs/fi_FI/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Puhelinsoitto
     ActionAC_FAX=Lähetä faksi
     ActionAC_PROP=Lähetä tarjous sähköpostilla
     ActionAC_EMAIL=Lähetä sähköpostiviesti
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Kokoukset
     ActionAC_INT=Väliintulo paikanpäällä
     ActionAC_FAC=Lähetä laskutustietosi
    @@ -72,8 +73,8 @@ StatusProsp=Mahdollisuuden tila
     DraftPropals=Tarjousluonnos
     NoLimit=Rajoittamaton
     ToOfferALinkForOnlineSignature=Linkki sähköiseen allekirjoitukseen
    -WelcomeOnOnlineSignaturePage=Tervetuloa tarjouspyyntö hyväksymis sivulle %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=Tämä näyttö sallii sinun hyväksyvän ja allekirjoittavan, tai hylkäävän, lainauksen/tarjouspyynnön
     ThisIsInformationOnDocumentToSign=Tämä on informaatiota dokumentistä hyväksymiseksi tai hylkäämiseksi
    -SignatureProposalRef=Tarjouksen/ehdotuksen %s allekirjoitus
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Sähköinen allekirjoitus on poissa käytöstä tai dokumentti on luotu ennen sen käyttöönottoa
    diff --git a/htdocs/langs/fi_FI/companies.lang b/htdocs/langs/fi_FI/companies.lang
    index 163a429db9f..007dd506a46 100644
    --- a/htdocs/langs/fi_FI/companies.lang
    +++ b/htdocs/langs/fi_FI/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Valitse sidosryhmä
     ConfirmDeleteCompany=Haluatko varmasti poistaa tämän yrityksen ja kaikki siitä johdetut tiedot?
     DeleteContact=Poista yhteystieto
     ConfirmDeleteContact=Haluatko varmasti poistaa tämän yhteystiedon ja kaikki siitä johdetut tiedot?
    -MenuNewThirdParty=Uusi sidosryhmä
    -MenuNewCustomer=Uusi asiakas
    -MenuNewProspect=Uusi prospekti
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Uusi yksityishenkilö
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Luo sidosryhmä
     CreateThirdPartyAndContact=Luo sidosryhmä + ala yhteystieto
    @@ -25,22 +25,22 @@ ThirdPartyContact=Sidosryhmän yhteystiedot/osoitteet
     Company=Yritys
     CompanyName=Yrityksen nimi
     AliasNames=Lisänimi (tuotenimi, brändi, ...)
    -AliasNameShort=Lisänimi
    +AliasNameShort=Alias Name
     Companies=Yritykset
    -CountryIsInEEC=Maa kuuluu EU:hun
    -ThirdPartyName=Sidosryhmän nimi
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Sidosryhmän sähköposti
    -ThirdParty=Sidosryhmä
    -ThirdParties=Sidosryhmät
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospektit
     ThirdPartyProspectsStats=Näkymät
     ThirdPartyCustomers=Asiakkaat
     ThirdPartyCustomersStats=Asiakkaat
     ThirdPartyCustomersWithIdProf12=Asiakkaat, joilla on %s tai %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Sidosryhmän tyyppi
    +ThirdPartyType=Type of company
     Individual=Yksityishenkilö
    -ToCreateContactWithSameName=Luo automaattisesti yhteystiedot/osoitteen sidosryhmän tiedoilla sidosryhmän alaisuuteen. Yleensä, vaikka sidosryhmä olisi henkilö, pelkkä sidosryhmän luominen riittää.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Emoyhtiö
     Subsidiaries=Tytäryhtiöt
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Postinumero
     Town=Postitoimipaikka
     Web=Kotisivut
     Poste= Asema
    -DefaultLang=Oletuskieli
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Täytä osoite käyttäen sidosryhmän osoitetta
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Maksunt pankkitili
     OverAllProposals=Ehdotukset
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntaksi on voimassa
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Tällä asiakkaalla on oletusalennus<b> %s%%</b>
     CompanyHasNoRelativeDiscount=Tällä asiakkaalla ei ole suhteellista alennusta oletuksena
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=Tällä asiakkaalla on alennuksia saatavilla (luottoa tai hyvityksiä) <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Tällä asiakkaalla on vielä luottomerkintöjä <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Ei mitään
    -Supplier=Toimittaja
    +Supplier=Vendor
     AddContact=Luo yhteystiedot
     AddContactAddress=Luo yhteystiedot/osoite
     EditContact=Muokkaa yhteystiedot / osoite
    @@ -303,22 +303,22 @@ AddThirdParty=Luo sidosryhmä
     DeleteACompany=Poista yritys
     PersonalInformations=Henkilötiedot
     AccountancyCode=Kirjanpito tili
    -CustomerCode=Asiakas-koodi
    -SupplierCode=Vendor code
    -CustomerCodeShort=Asiakas-koodi
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Asiakas koodi ainutlaatuinen kaikille asiakkaille
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Vaaditaan, jos kolmas osapuoli on asiakas tai mahdollisuus
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Voimassaolo hallinnassa moduuli
    -ThisIsModuleRules=Tämä on säännöt tämän moduulin
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Esitetilaus yhteyttä
     CompanyDeleted=Yritys " %s" poistettu tietokannasta.
     ListOfContacts=Luettelo yhteystiedot
    -ListOfContactsAddresses=Yhteystietojen/osoitteiden luettelo
    -ListOfThirdParties=Luettelo kolmansien osapuolten
    -ShowCompany=Näytä sidosryhmä
    +ListOfContactsAddresses=Luettelo yhteystiedot
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Näytä yhteystiedot
     ContactsAllShort=Kaikki (Ei suodatinta)
     ContactType=Yhteystiedon tyyppi
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Tämä yhteys ei ole yhteyttä mihinkään kaupalliseen
     NoContactForAnyContract=Tämä yhteys ei ole yhteyttä mihinkään sopimukseen
     NoContactForAnyInvoice=Tämä yhteys ei ole yhteyttä mihinkään lasku
     NewContact=Uusi yhteystieto
    -NewContactAddress=Uusi yhteystieto/osoite
    +NewContactAddress=New Contact/Address
     MyContacts=Omat yhteystiedot
     Capital=Pääoma
     CapitalOf=Pääoma of %s
     EditCompany=Muokkaa yritystä
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Shekki
    -VATIntraCheckDesc=<b>Linkkiä %s</b> sallii pyytää Euroopan alv checker palveluun. Ulkoisen Internet-palvelimelta vaaditaan tätä palvelua työtä.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Tarkista yhteisömyynnin ALV Euroopan komission Internet-sivustolla
    -VATIntraManualCheck=Voit myös tarkistaa manuaalisesti euroopan nettisivuilta <a href="%s" target="_blank">www-sivuston %s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Tarkista ole mahdollista. Tarkista palvelu ei toimiteta jäsenvaltion ( %s).
    -NorProspectNorCustomer=Eikä näköpiirissä, eikä asiakkaan
    -JuridicalStatus=Yhtiömuoto
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Henkilökunta
     ProspectLevelShort=Potenttiaali
     ProspectLevel=Prospekti potentiaali
    @@ -387,12 +387,12 @@ ExportCardToFormat=Vienti kortin muodossa
     ContactNotLinkedToCompany=Yhteystiedot eivät liity minkään kolmannen osapuolen
     DolibarrLogin=Dolibarr sisäänkirjoittautumissivuksesi
     NoDolibarrAccess=Ei Dolibarr pääsyä
    -ExportDataset_company_1=Sidosryhmät (Yritykset / säätiöt / ihmiset) ja ominaisuudet
    -ExportDataset_company_2=Yhteystiedot ja ominaisuudet
    -ImportDataset_company_1=Sidosryhmät (Yritykset / säätiöt / ihmiset) ja ominaisuudet
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Hintataso
     DeliveryAddress=Toimitusosoite
     AddAddress=Lisää osoite
    @@ -402,16 +402,16 @@ DeleteFile=Poista tiedosto
     ConfirmDeleteFile=Oletko varma, että haluat poistaa tämän tiedoston?
     AllocateCommercial=Liitä myyntiedustajaan
     Organization=Organisaatio
    -FiscalYearInformation=Tilivuoden tiedot
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Tilivuoden aloitus kuukausi
    -YouMustAssignUserMailFirst=Tälle käyttäjälle täytyy luoda sähköpostiosoite  jotta sähköpostimuistutukset voidaan ottaa käyttöön
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=Voidaksesi lisätä sähköposti muistutukset, täytyy ensin täyttää yhteystiedot sidosryhmän oikealla sähköpostiosoitteella
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Luettelo prospektit
    -ListCustomersShort=Luettelo asiakkaat
    -ThirdPartiesArea=Sidosryhmät ja yhteystiedot
    -LastModifiedThirdParties=Viimeisimmät %s muokattua sidosryhmää
    -UniqueThirdParties=Yhteensä ainutlaatuinen kolmannen osapuolen
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Avoinna
     ActivityCeased=Kiinni
     ThirdPartyIsClosed=Sidosryhmä on suljettu
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Avoin lasku
     OutstandingBill=Avointen laskujen enimmäismäärä
     OutstandingBillReached=Avointen laskujen enimmäismäärä saavutettu
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Asiakas / toimittaja-koodi on maksuton. Tämä koodi voidaan muuttaa milloin tahansa.
     ManagingDirectors=Johtajien nimet (TJ, johtaja, päällikkö...)
     MergeOriginThirdparty=Monista sidosryhmä (sidosryhmä jonka haluat poistaa)
     MergeThirdparties=Yhdistä sidosryhmät
    -ConfirmMergeThirdparties=Haluatko varmasti yhdistää tämän sidosryhmän nykyiseen? Kaikki yhdistetyt tiedot (laskut, tilaukset, ...) siirretään nykyiselle sidosryhmälle jolloin voit poistaa vastaavan sidosryhmän.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Myyntiedustajan kirjautuminen
     SaleRepresentativeFirstname=Myyntiedustajan etunimi
     SaleRepresentativeLastname=Myyntiedustajan sukunimi
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/fi_FI/dict.lang b/htdocs/langs/fi_FI/dict.lang
    index 1090a8676bf..f3431ecf235 100644
    --- a/htdocs/langs/fi_FI/dict.lang
    +++ b/htdocs/langs/fi_FI/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard ja McDonald
     CountryVA=Pyhä istuin (Vatikaanivaltio)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=Intia
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Pohjois-Korea
     CountryKR=Etelä-Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lathia
     CountryLV=Latvia
     CountryLB=Libanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Montserrat
     CountryMZ=Mosambik
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad ja Tobago
     CountryTR=Turkki
     CountryTM=Turkmenistan
    -CountryTC=Turks-ja Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupia
     CurrencySingMUR=Mauritius rupia
     CurrencyNOK=Norja Krones
    -CurrencySingNOK=Norja kruunu
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=TND
     CurrencySingTND=Tunisian dinaari
     CurrencyUSD=Dollaria Yhdysvaltain
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Suusanallisesti
     DemandReasonTypeSRC_PARTNER=Kumppani
     DemandReasonTypeSRC_EMPLOYEE=Työntekijä
     DemandReasonTypeSRC_SPONSORING=Sponsorointisuhde
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Muoto 4A0
     PaperFormatEU2A0=Muoto 2A0
    diff --git a/htdocs/langs/fi_FI/ecm.lang b/htdocs/langs/fi_FI/ecm.lang
    index 48bf507d62a..a2b191e12b3 100644
    --- a/htdocs/langs/fi_FI/ecm.lang
    +++ b/htdocs/langs/fi_FI/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Asiakirjojen määrä hakemistossa
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Hakemisto
     ECMSectionManual=Manuaalinen hakemisto
     ECMSectionAuto=Automaattinen hakemisto
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Projekteihin liittyvät asiakirjat
     ECMDocsByUsers=Käyttäjiin liittyvät asiakirjat
     ECMDocsByInterventions=Väliintuloon liittyvät asiakirjat
     ECMDocsByExpenseReports=Kuluraportteihin liittyvät asiakirjat
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Hakemistoa ei luotu
     ShowECMSection=Näytä hakemisto
     DeleteSection=Poista hakemisto
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/fi_FI/errors.lang b/htdocs/langs/fi_FI/errors.lang
    index d593ce66c6f..cb3e50b2421 100644
    --- a/htdocs/langs/fi_FI/errors.lang
    +++ b/htdocs/langs/fi_FI/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Arvo &quot;%s&quot; on väärä päivämäärä muoto
     ErrorWrongDate=Päivämäärä ei ole oikein!
     ErrorFailedToWriteInDir=Epäonnistui kirjoittaa hakemistoon %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=Löytyi virheellinen sähköposti syntaksi %s rivit tiedoston (esimerkiksi rivi %s email= %s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Jotkin vaaditut kentät eivät ole täytetty.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Luominen epäonnistui hakemiston. Tarkista, että Web-palvelin käyttäjällä on oikeudet kirjoittaa Dolibarr asiakirjat hakemistoon. Jos parametri <b>safe_mode</b> on käytössä tämän PHP, tarkista, että Dolibarr php tiedostot omistaa web-palvelimen käyttäjä (tai ryhmä).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=<b>Kenttä %s</b> ei saa sisältää erikoismerkkejä.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=O kirjanpito moduuli aktivoitu
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP yhteensovitus ei ole täydellinen.
     ErrorLDAPMakeManualTest=A. LDIF tiedosto on luotu hakemistoon %s. Yritä ladata se manuaalisesti komentoriviltä on enemmän tietoa virheitä.
    -ErrorCantSaveADoneUserWithZeroPercentage=Ei voi tallentaa toimia "statut ole käynnistetty", jos alalla "tehtävä" on myös täytettävä.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref käytetään luomista jo olemassa.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript ei saa keskeytyä, on tämä ominaisuus toimii. Ottaa käyttöön / poistaa Javascript, mene menu Koti-> Asetukset-> Näyttö.
     ErrorPasswordsMustMatch=Molemmat kirjoittaa salasanat on vastattava toisiaan
    -ErrorContactEMail=Tekninen virhe. Ota yhteys järjestelmänvalvojaan jälkeen sähköpostin <b>%s</b> en antaa virhekoodi <b>%s</b> viesti, tai jopa paremmin lisäämällä näytön kopion tästä sivusta.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Väärä arvo kentän numero <b>%s</b> (arvo <b>"%s"</b> ei vastaa regex sääntö <b>%s)</b>
     ErrorFieldValueNotIn=Väärä arvo kentän numero <b>%s</b> (arvo <b>&quot;%s&quot;</b> ei ole arvoa käytettävissä tulee kenttään <b>%s</b> taulukon <b>%s)</b>
     ErrorFieldRefNotIn=Väärä arvo kentän numero <b>%s</b> (arvo <b>&quot;%s&quot;</b> ei <b>%s</b> olemassa ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Virustentorjuntaohjelma ei voinut tarkistaa tiedos
     ErrorSpecialCharNotAllowedForField=Erikoismerkkejä ei sallita kentän "%s"
     ErrorNumRefModel=Viittaus olemassa otetaan tietokantaan (%s) ja ei ole yhteensopiva tämän numeroinnin sääntöä. Poista levy tai nimen viittaus aktivoida tämän moduulin.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Virhe naamio
     ErrorBadMaskFailedToLocatePosOfSequence=Virhe, maski ilman järjestysnumeroa
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Virhe, huono palautus arvo
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Valitse ainakin yksi merkintä.
    -ErrorDeleteNotPossibleLineIsConsolidated=Poistaminen ei ole mahdollista, koska levy on sidottu pankin transation joka sovitelleet
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s on siirretty toiseen kolmanteen
     ErrorFailedToSendPassword=Epäonnistui lähettää salasana
     ErrorFailedToLoadRSSFile=Ei saada RSS-syötteen. Yritä lisätä jatkuvasti MAIN_SIMPLEXMLLOAD_DEBUG jos virheilmoituksia ei ole tarpeeksi tietoa.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Käyttäjälle <b>sisäänkirjoittautumissivuksesi %s</b
     ErrorLoginHasNoEmail=Tämä käyttäjä ei ole sähköpostiosoitetta. Process aborted.
     ErrorBadValueForCode=Bad arvotyypeillä koodin. Yritä uudelleen uuteen arvoon ...
     ErrorBothFieldCantBeNegative=Kentät %s ja %s voi olla sekä kielteisiä
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Käyttäjätili <b>%s</b> käyttää myös toteuttaa web-palvelimella ei ole lupaa, että
     ErrorNoActivatedBarcode=Ei viivakoodin tyyppi aktivoitu
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Odottamaton virhe '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Odottamaton operaatio '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP ohjelma epäonnistui virheellä '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=Tiedoston on oltava formaatissa %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Kirjanmerkki tämän otsikon tai tämän tavoitteen
     WarningPassIsEmpty=Varoitus, tietokannan salasana on tyhjä. Tämä on turvallisuus reikään. Sinun tulisi lisätä salasanan tietokantaan ja muuttaa conf.php tiedosto vastaavasti.
     WarningConfFileMustBeReadOnly=Varoitus, config tiedosto <b>(htdocs / conf / conf.php)</b> voidaan korvata jonka web-palvelin. Tämä on vakava tietoturva-aukko. Muokkaa käyttöoikeuksia tiedoston luettavaksi vain tila-käyttöjärjestelmän käyttäjä käyttää Web-palvelimeen. Jos käytät Windows ja FAT oman levy, sinun täytyy tietää, että tämä tiedostojärjestelmä ei mahdollista lisätä käyttöoikeuksia tiedostoon, joten ei voi olla täysin turvallista.
     WarningsOnXLines=Varoitukset <b>%s</b> lähde linjat
    -WarningNoDocumentModelActivated=Ei mallia, dokumenttien tuotanto, on aktivoitu. Mallia valitsi oletuksena kunnes olet tarkistanut moduuli setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=Tämä varoitus pysyy aktiivisena niin kauan kuin tähän hakemistoon on läsnä (Näkyy vain admin-käyttäjät).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/fi_FI/help.lang b/htdocs/langs/fi_FI/help.lang
    index 8f0e787f74b..9221906d555 100644
    --- a/htdocs/langs/fi_FI/help.lang
    +++ b/htdocs/langs/fi_FI/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online reaaliajassa / etätuki
     OtherSupport=Muut tuet
     ToSeeListOfAvailableRessources=Voit ottaa yhteyttä / nähdä käytettävissä olevat varat:
     HelpCenter=Ohjekeskukseen
    -DolibarrHelpCenter=Dolibarr apua ja tukea keskus
    -ToGoBackToDolibarr=Muuten napsauta <a href="%s">tästä käyttää Dolibarr</a>
    -TypeOfSupport=Tuen lähde
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Yhteisössä (vapaa)
     TypeSupportCommercial=Kaupalliset
     TypeOfHelp=Tyyppi
    @@ -15,12 +15,9 @@ NeedHelpCenter=Tarvitsetko apua tai tukea?
     Efficiency=Tehokkuus
     TypeHelpOnly=Ohje vain
     TypeHelpDev=Ohje + kehittämisen
    -TypeHelpDevForm=Ohje + Development + Formation
    -ToGetHelpGoOnSparkAngels1=Jotkin yritykset voivat tarjota nopea (joskus välittömästi) ja tehokkaampaa online tukea ottamalla tietokoneen. Tällainen avustushenkilöstö <b>löytyy %s</b> www-sivusto:
    -ToGetHelpGoOnSparkAngels3=Voit myös mennä luettelo kaikista käytettävissä valmentajia varten Dolibarr, tästä klikkaamalla painiketta
    -ToGetHelpGoOnSparkAngels2=Joskus ei ole yhtiön käytettävissä tällä hetkellä teet haun, niin mielestäni muuttaa suodattimen etsiä "kaikkien saatavilla". Voit lähettää lisää pyyntöjä.
    -BackToHelpCenter=Muussa tapauksessa, klikkaa tästä ja mennä <a href="%s">takaisin ohjekeskukseen kotisivu.</a>
    -LinkToGoldMember=Voit soittaa yksi valmentaja valittua on Dolibarr for your language ( %s) napsauttamalla hänen Widget (status ja enimmäishinta päivittyvät automaattisesti):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Tuetut kielet
    -SubscribeToFoundation=Auta Dolibarr projektia, tilaa 
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Virallinen Dolibarr tuki omalla kielellä: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/fi_FI/holiday.lang b/htdocs/langs/fi_FI/holiday.lang
    index c421c02c9be..07d67b83096 100644
    --- a/htdocs/langs/fi_FI/holiday.lang
    +++ b/htdocs/langs/fi_FI/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
    -HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +HRM=Henkilöstöhallinta
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Aloituspäivämäärä
     DateFinCP=Lopetuspäivä
    @@ -15,13 +15,18 @@ ApprovedCP=Hyväksytty
     CancelCP=Peruttu
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Kuvaus
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Muokkaa
     DeleteCP=Poistaa
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Syy
     UserCP=Käyttäjä
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/fi_FI/install.lang b/htdocs/langs/fi_FI/install.lang
    index 53f91c364dc..79203deaa05 100644
    --- a/htdocs/langs/fi_FI/install.lang
    +++ b/htdocs/langs/fi_FI/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Seuraa ohjeita askel askeleelta.
     MiscellaneousChecks=Ehtojen tarkistus
     ConfFileExists=Asetustiedosto <b>%s</b> on olemassa.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Asetustiedostoa <b>%s</b> ei ole olemassa, ja sitä ei voi luoda!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Asetustiedosto <b>%s</b> voitaisiin luoda.
    -ConfFileIsNotWritable=Asetustiedosto <b>%s</b> ei ole kirjoitettavissa. Tarkista käyttöoikeudet. Ensimmäistä kertaa asennettaessa, verkkopalvelimesi on annettava kirjoituslupa tämän asetusprosessin aikana asennus ( esimerkiksi "chmod 666"  Unix tyylisisä OSsiessa).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration <b>file %s</b> on kirjoitettavissa.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Uudelleen lataa kaikki tiedot asetustiedostosta.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Tämä PHP tukee istuntoja.
     PHPSupportPOSTGETOk=Tämä PHP tukee muuttujat POST ja GET.
    -PHPSupportPOSTGETKo=On mahdollista, sinun PHP asennusohjelma ei tue muuttujat POST tai GET. Tarkista parametri <b>variables_order</b> vuonna php.ini.
    -PHPSupportGD=Tämä PHP tukea GD graafisia toimintoja.
    -PHPSupportCurl=Tämä PHP tukee Curl.
    -PHPSupportUTF8=Tämä PHP tukea UTF8 toimintoja.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Sinun PHP max istuntojakson muisti on <b>asetettu %s.</b> Tämän pitäisi olla tarpeeksi.
    -PHPMemoryTooLow=Sinun PHP max istuntojakson muisti on <b>asetettu %s</b> tavua. Tämä olisi liian alhainen. Change your <b>php.ini</b> asettaa <b>memory_limit</b> parametri <b>vähintään %s</b> tavua.
    -Recheck=Click here for a enemmän significative testi
    -ErrorPHPDoesNotSupportSessions=Sinun PHP asennus ei tue istunnoissa. Tämä ominaisuus on velvollisuus tehdä Dolibarr toimi. Tarkista PHP-asetukset.
    -ErrorPHPDoesNotSupportGD=Sinun PHP asennus ei tue graafisia toiminto GD. N: o kaavio on saatavilla.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Sinun PHP asennuksesi ei tue Curl.
    -ErrorPHPDoesNotSupportUTF8=Sinun PHP asennus ei tue UTF8 toimintoja. Dolibarr ei toimi oikein. Ratkaise tämä ennen asennusta Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Hakemiston %s ei ole olemassa.
    -ErrorGoBackAndCorrectParameters=Siirry taaksepäin ja korjata väärin parametrit.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Olet ehkä kirjoittanut väärän arvon parametri ' %s'.
     ErrorFailedToCreateDatabase=Luominen epäonnistui tietokanta ' %s'.
     ErrorFailedToConnectToDatabase=Epäonnistui muodostaa tietokanta ' %s'.
     ErrorDatabaseVersionTooLow=Tietokannan versio (%s) on liian vanha. Versio %s tai korkeampi on tarpeen.
     ErrorPHPVersionTooLow=PHP versio liian vanha. Versio %s on tarpeen.
    -ErrorConnectedButDatabaseNotFound=Yhteys palvelimeen onnistunut mutta tietokantaan %s ei löydy.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database ' %s' on jo olemassa.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Jos tietokanta ei ole, palaa takaisin ja tarkistaa vaihtoehto "Luo tietokanta".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Jos tietokanta on jo olemassa, mene takaisin ja poista "Luo tietokanta" vaihtoehto.
    -WarningBrowserTooOld=Selaimesi versio on liian vanha. Selaimen päivitys tuoreimpaan versioon on suositeltavaa. Suosittelemme selaimeksi Firefoxia, Chromea tai Operaa.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Käyttämällä lisenssi
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Tietokannan tyyppi
     DriverType=Driver tyyppi
     Server=Server
    -ServerAddressDescription=Nimi tai IP-osoite tietokanta palvelimelle, yleensä "localhost", kun tietokanta-palvelimen isännöidään samalla palvelimella kuin web-palvelin
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Tietokanta-palvelimen portti. Pidä tyhjä, jos tuntematon.
     DatabaseServer=Database Server
     DatabaseName=Tietokannan nimi
    -DatabasePrefix=Tietokanta etuliite pöytä
    -AdminLogin=Kirjautumistunnuksen Dolibarr tietokannan ylläpitäjä. Pidä tyhjä jos kytket nimettömässä
    -PasswordAgain=Kirjoita salasana uudelleen toisen kerran
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Salasana Dolibarr tietokannan ylläpitäjä. Pidä tyhjä jos kytket nimettömässä
     CreateDatabase=Luo tietokanta
    -CreateUser=Luo omistaja tai anna hänelle pääsyoikeus tietokantaan
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Tietokanta - SuperUser pääsy
    -CheckToCreateDatabase=Valintaruutu, jos tietokanta ei ole olemassa, ja ne on luotu. <br> Tässä tapauksessa sinun täytyy täyttää tunnus / salasana SuperUser huomioon alareunassa tällä sivulla.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Kirjaudu että käyttäjä voi luoda uusia tietokantoja tai uusia käyttäjiä, hyödytön, jos tietokanta ja tietokanta on jo olemassa (kuten silloin, kun olet isännöi Web hosting-palvelujen tarjoaja).
    -KeepEmptyIfNoPassword=Jätä tyhjä, jos käyttäjä ei ole salasanaa (välttää)
    -SaveConfigurationFile=Tallenna arvot
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Palvelinyhteys
     DatabaseCreation=Tietokannan luominen
     CreateDatabaseObjects=Tietokannan objektien luominen
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Luo ulko avaimet ja hakemistot pöytä %s
     OtherKeysCreation=Ulko-avaimet ja hakemistot luominen
     FunctionsCreation=Toiminnot luominen
     AdminAccountCreation=Administrator sisäänkirjoittautumissivuksesi luominen
    -PleaseTypePassword=Kirjoita salasana, tyhjät salasanat eivät ole sallittuja!
    -PleaseTypeALogin=Kirjoita kirjautumisen!
    -PasswordsMismatch=Salasanat vaihtelee, yritä uudelleen!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=Tämä asennus on valmis.
     SystemIsUpgraded=Dolibarr on päivitetty onnistuneesti.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr vastaamaan tarpeisiin (
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Siirry Dolibarr
     GoToSetupArea=Siirry Dolibarr (setup-alue)
    -MigrationNotFinished=Version tietokanta ei ole täysin ajan tasalla, joten sinun täytyy suorittaa päivityksen uudelleen.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Siirry päivittää sivu uudelleen
     WithNoSlashAtTheEnd=Ilman kauttaviivalla "/" lopussa
    -DirectoryRecommendation=On recommanded käyttää hakemiston ulkopuolella teidän hakemistoon verkkosivuja.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=On jo olemassa
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr järjestelmänvalvojan tili <b>' %s'</b> on jo olemassa.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Dolibarr ylläpitokäyttäjän luominen epäonnistui
    -WarningRemoveInstallDir=Varoitus, turvallisuussyistä, kun asennus tai päivitys on valmis, poista <b>asennus hakemistoon tai nimetä sen install.lock välttämiseksi sen ilkivaltaisten käyttöä.</b>
    -FunctionNotAvailableInThisPHP=Ei saatavana tämän PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Valittu siirtyä script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script käsittely
     ChooseYourSetupMode=Valitse setup-tilaan ja klikkaa "Käynnistä" ...
     FreshInstall=Tuore asentaa
    -FreshInstallDesc=Käytä tätä tilaa, jos tämä on ensimmäinen asentaa. Jos ei, tämän voi korjata edellisen epätäydellinen asentaa, mutta jos haluat päivittää version, valitse "Päivitä"-tilassa.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Päivitys
     UpgradeDesc=Käytä tätä tilaa, jos sinulla on korvattu vanha Dolibarr tiedostoja tiedostot uudemmalla versiolla. Tämä päivittää tietokantaan ja tietoja.
     Start=Alku
     InstallNotAllowed=Asennusohjelma ei sallita <b>conf.php</b> käyttöoikeudet
     YouMustCreateWithPermission=Sinun on luotava tiedosto %s ja asettaa kirjoittaa oikeudet sen Web-palvelimen aikana asentaa prosessiin.
    -CorrectProblemAndReloadPage=Korjaa ongelma ja paina F5-näppäintä reload sivulla.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Jo siirtynyt
     DatabaseVersion=Database versio
     ServerVersion=Database Server versio
     YouMustCreateItAndAllowServerToWrite=Sinun on luotava tähän hakemistoon ja mahdollistaa web-palvelin voi kirjoittaa sitä.
     DBSortingCollation=Luonne lajittelu jotta
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Te kysytte luoda <b>tietokanta %s,</b> mutta tästä Dolibarr tarvitse liittää <b>palvelimeen %s</b> Super <b>käyttäjän %s</b> käyttöoikeudet.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Te kysytte luoda tietokanta <b>sisäänkirjoittautumissivuksesi %s,</b> mutta tästä Dolibarr tarvitse liittää <b>palvelimeen %s</b> Super <b>käyttäjän %s</b> käyttöoikeudet.
    -BecauseConnectionFailedParametersMayBeWrong=Kuten yhteys epäonnistui, isännän tai super käyttäjä parametrit on väärässä.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphelins maksu havaittu menetelmä %s
     RemoveItManuallyAndPressF5ToContinue=Poistaa sen manuaalisesti ja paina F5 jatkaa.
     FieldRenamed=Kenttä uudelleennimetty
    -IfLoginDoesNotExistsCheckCreateUser=Jos kirjautuminen ei ole vielä, sinun täytyy tarkistaa vaihtoehto "Luo käyttäjä"
    -ErrorConnection=Server <b>" %s"</b> Tietokannan nimi <b>" %s",</b> login <b>" %s",</b> tai tietokannan salasana olla väärässä tai PHP asiakkaan versio voi olla liian vanha verrattuna tietokannan versiota.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Suositeltava valinta asentaa version <b>%s</b> nykyisestä versiosta <b>%s</b>
     InstallChoiceSuggested=<b>Asenna valinta ehdotti installer.</b>
    -MigrateIsDoneStepByStep=Kohdistettu versio (%s) on rako useita versioita, joten ohjatun asennuksen palaa ehdottaa ensi muuttoliikkeen kerran tämä valmistuu.
    -CheckThatDatabasenameIsCorrect=Tarkista, että tietokannan nimi <b>"%s"</b> on oikea.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Jos tämä nimi on oikea ja että tietokanta ei ole vielä olemassa, sinun täytyy tarkistaa vaihtoehto "Luo tietokanta".
     OpenBaseDir=PHP openbasedir parametri
    -YouAskToCreateDatabaseSoRootRequired=Olet ruudun "Luo tietokanta". Tätä varten sinun pitää / salasana on pääkäyttäjän (pohjan muoto).
    -YouAskToCreateDatabaseUserSoRootRequired=Olet ruudun "Luo tietokanta omistaja". Tätä varten sinun pitää / salasana on pääkäyttäjän (pohjan muoto).
    -NextStepMightLastALongTime=Nykyinen vaihe saattaa kestää useita minuutteja. Odota, kunnes seuraava näyttö näkyy kokonaan ennen kuin jatkat.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Siirrä toimituskuluja asiakastilausten varastointi
     MigrationShippingDelivery=Päivitä varastointi merenkulun
     MigrationShippingDelivery2=Päivitä varastointi merenkulun 2
     MigrationFinished=Muuttoliike valmis
    -LastStepDesc=<strong>Viimeinen askel:</strong> Määritä tässä käyttäjätunnuksen ja salasanan aiot käyttää yhteyden ohjelmisto. Älä löysä tämä on tilin hallinnoida kaikkia muita.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Aktivoi moduuli %s
     ShowEditTechnicalParameters=Klikkaa tästä näyttääksesi/muuttaaksesi edistyneemmät parametrit (asiantuntija tila)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=Voit käyttää DoliWamp ohjattua, joten arvojen suhteen täällä on jo optimoitu. Muuttaa vain, jos tiedät mitä teet.
    -KeepDefaultValuesDeb=Voit käyttää Dolibarr ohjatun peräisin Ubuntu tai Debian-pakettien, joten ehdottamat arvot tässä on jo optimoitu. Vain salasanan tietokannan omistajan luoda on täytettävä. Muuta muut parametrit vain, jos tiedät mitä teet.
    -KeepDefaultValuesMamp=Voit käyttää DoliMamp ohjattua, joten arvojen suhteen täällä on jo optimoitu. Muuttaa vain, jos tiedät mitä teet.
    -KeepDefaultValuesProxmox=Käytät Dolibarr ohjatun päässä Proxmox virtuaalinen laite, joten ehdotetut arvot tässä on jo optimoitu. Muuta niitä vain, jos tiedät mitä teet.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Tietojen siirtäminen kaupallisiin ehdotuksia
     MigrationInvoice=Tietojen siirtäminen asiakkaiden laskut
     MigrationContract=Tietojen siirtäminen sopimusten
    -MigrationSuccessfullUpdate=Päivitys onnistui
    +MigrationSuccessfullUpdate=Päivitys onnistunut
     MigrationUpdateFailed=Epäonnistui päivitysprosessi
     MigrationRelationshipTables=Tiedot maahanmuuton suhteen taulukot (%s)
     MigrationPaymentsUpdate=Maksu tietojen korjaus
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Sopimus tietojen korjaus
     MigrationContractsNumberToUpdate=%s sopimuksen (t) päivitys
     MigrationContractsLineCreation=Luo sopimus linja sopimustavaroiden ref %s
     MigrationContractsNothingToUpdate=Ei enää Muistettavaa
    -MigrationContractsFieldDontExist=Kenttä fk_facture ei ole enää. Mitään ei tehdä.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Sopimus tyhjä päivämäärä korjaus
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Mitään sopimusta ei tyhjä päivämäärä korjata
     MigrationContractsEmptyCreationDatesNothingToUpdate=Mitään sopimusta ei luontipäivämäärä korjata
     MigrationContractsInvalidDatesUpdate=Bad arvopäivä sopimuksen korjaus
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Toimitus päivitys
     MigrationStockDetail=Päivitä varastossa tuotteiden arvosta
     MigrationMenusDetail=Päivitä dynaaminen valikot taulukot
     MigrationDeliveryAddress=Päivitä toimitusosoite kuljetusta
    -MigrationProjectTaskActors=Tiedot maahanmuuton llx_projet_task_actors taulukko
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Tietojen siirtäminen alalla fk_user_resp ja llx_projet on llx_element_contact
     MigrationProjectTaskTime=Päivitä aika sekunneissa
     MigrationActioncommElement=Päivitä tiedot toimista
     MigrationPaymentMode=Tiedot muuttoliike maksua tilassa
     MigrationCategorieAssociation=Kategorioiden siirto 
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Lataa uudelleen moduuli %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Näytä ei saatavilla olevat valinnat
    -HideNotAvailableOptions=Piilota ei saatavilla olevat valinnat
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/fi_FI/interventions.lang b/htdocs/langs/fi_FI/interventions.lang
    index ac9517af499..1b5072e0d44 100644
    --- a/htdocs/langs/fi_FI/interventions.lang
    +++ b/htdocs/langs/fi_FI/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Interventio-kortti
     NewIntervention=Uusi
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Luettelo interventioiden
     ActionsOnFicheInter=Toimia interventio
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/fi_FI/main.lang b/htdocs/langs/fi_FI/main.lang
    index 973e4b7867a..a711cc2dab9 100644
    --- a/htdocs/langs/fi_FI/main.lang
    +++ b/htdocs/langs/fi_FI/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=Failed to send ma
     ErrorFileNotUploaded=Tiedosto ei ole ladattu. Tarkista, että koko ei ylitä suurinta sallittua, että vapaata tilaa on käytettävissä levyllä ja että siellä ei ole jo tiedoston samalla nimellä tähän hakemistoon.
     ErrorInternalErrorDetected=Virhe havaittu
     ErrorWrongHostParameter=Väärä vastaanottavan parametri
    -ErrorYourCountryIsNotDefined=Oma maa ei ole määritelty. Siirry Home-Setup-Edit ja sen jälkeen uudelleen muodossa.
    -ErrorRecordIsUsedByChild=Epäonnistui poistaa tämän tietueen. Tämä rekisteri on käytössä ainakin lapsen kirjaa.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Väärä arvo
     ErrorWrongValueForParameterX=Väärä arvo parametri %s
     ErrorNoRequestInError=N: o pyynnöstä virhe
    -ErrorServiceUnavailableTryLater=Palvelu ei ole tällä hetkellä ole käytettävissä. Yritä myöhemmin uudelleen.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Päällekkäinen arvo ainutlaatuisella alalla
    -ErrorSomeErrorWereFoundRollbackIsDone=Joitakin virheitä ei löytynyt. Meidän palautus muutoksia.
    -ErrorConfigParameterNotDefined=<b>Parametri %s</b> ei ole määritelty sisällä Dolibarr config file <b>conf.php.</b>
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Ei onnistunut löytämään <b>käyttäjän %s</b> Dolibarr tietokantaan.
     ErrorNoVATRateDefinedForSellerCountry=Virhe ei alv määritellään maa ' %s'.
     ErrorNoSocialContributionForSellerCountry=Virhe, ei sosiaalisia tai fiskaalisia verotyyppejä, jotka on määritelty maata "%s" varten.
     ErrorFailedToSaveFile=Virhe, ei tallenna tiedosto.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Oikeutesi ei riitä tähän toimintoon
     SetDate=Aseta päivä
     SelectDate=Valitse päivä
    @@ -78,10 +78,10 @@ FileRenamed=Tiedosto on uudelleen nimetty onnistuneesti
     FileGenerated=Tiedosto luotiin onnistuneesti
     FileSaved=Tiedosto tallennettiin onnistuneesti
     FileUploaded=Tiedosto on siirretty onnistuneesti
    -FileTransferComplete=Tiedosto(t) ladattiin onnistuneesti
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=Tiedosto(t) poistettiin onnistuneesti
     FileWasNotUploaded=Tiedosto on valittu liite mutta ei ollut vielä ladattu. Klikkaa "Liitä tiedosto" tätä.
    -NbOfEntries=Huom Merkintöjen
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Lue online-ohjeet (tarvitaan Internet-yhteys)
     GoToHelpPage=Lue auttaa
     RecordSaved=Record tallennettu
    @@ -94,7 +94,7 @@ Undefined=Määrittelemätön
     PasswordForgotten=Unohditko salasanasi?
     NoAccount=No account?
     SeeAbove=Katso edellä
    -HomeArea=Etusivu alue
    +HomeArea=Koti
     LastConnexion=Viimeisin yhteys
     PreviousConnexion=Edellinen yhteydessä
     PreviousValue=Edellinen arvo
    @@ -142,6 +142,7 @@ Closed=Suljettu
     Closed2=Suljettu
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Käytöstä poistettu
     Disable=Poistaa käytöstä
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Päivittää
     Close=Sulje
     CloseBox=Poista widgetti kojelaudaltasi
     Confirm=Vahvista
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Poistaa
     Remove=Poistaa
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Kopioi
     Paste=Liitä
     Default=Oletus
     DefaultValue=Oletusarvo
    -DefaultValues=Oletusarvot
    +DefaultValues=Default values/filters/sorting
     Price=Hinta
     PriceCurrency=Price (currency)
     UnitPrice=Yksikköhinta
    @@ -347,7 +348,7 @@ AmountTTCShort=Määrä (sis. alv)
     AmountHT=Määrä (ilman veroja)
     AmountTTC=Määrä (sis. alv)
     AmountVAT=Verot
    -MulticurrencyAlreadyPaid=Maksettu jo, alkuperäinen valuutta
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Maksua avoimena, alkuperäinen valuutta
     MulticurrencyPaymentAmount=Suorituksen summa, alkuperäinen valuutta
     MulticurrencyAmountHT=Summa (veroton), alkuperäisessä valuutassa
    @@ -428,7 +429,7 @@ ActionNotApplicable=Ei sovelleta
     ActionRunningNotStarted=Aloitetaan
     ActionRunningShort=Käsittelyssä
     ActionDoneShort=Päättetty
    -ActionUncomplete=Keskeneräinen
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Yritys/Organisaatio
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Sidosryhmien yhteystiedot
     ContactsAddressesForCompany=Sidosryhmien kontaktit/osoitteet
     AddressesForCompany=Sidosryhmien osoitteet
     ActionsOnCompany=Sidosryhmien tapahtumat
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Jäsenen tapahtumat
     ActionsOnProduct=Tapahtumat tästä tuotteesta
     NActionsLate=%s myöhässä
    @@ -453,8 +455,8 @@ Generate=Luo
     Duration=Kesto
     TotalDuration=Kokonaiskesto
     Summary=Yhteenveto
    -DolibarrStateBoard=Tietokannan tilastot
    -DolibarrWorkBoard=Avoimet työtehtävät
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=Ei avattuja elementtejä prosessissa
     Available=Saatavissa
     NotYetAvailable=Ei vielä saatavilla
    @@ -468,7 +470,7 @@ and=ja
     or=tai
     Other=Muu
     Others=Muut
    -OtherInformations=Muut tiedot
    +OtherInformations=Other information
     Quantity=Määrä
     Qty=Kpl
     ChangedBy=Muuttanut
    @@ -506,7 +508,7 @@ None=Ei mitään
     NoneF=Ei mitään
     NoneOrSeveral=Ei yhtään tai useita
     Late=Myöhässä
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Kuva
     Photos=Kuvat
    @@ -530,18 +532,6 @@ September=Syyskuu
     October=Lokakuu
     November=Marraskuu
     December=Joulukuu
    -JanuaryMin=Tammikuu
    -FebruaryMin=Helmikuu
    -MarchMin=Maaliskuu
    -AprilMin=Huhtikuu
    -MayMin=Toukokuu
    -JuneMin=Kesäkuu
    -JulyMin=Heinäkuu
    -AugustMin=Elokuu
    -SeptemberMin=Syyskuu
    -OctoberMin=Lokakuu
    -NovemberMin=Marraskuu
    -DecemberMin=Joulukuu
     Month01=tammikuu
     Month02=helmikuu
     Month03=maaliskuu
    @@ -646,6 +636,8 @@ SendMail=Lähetä sähköpostia
     EMail=Sähköposti
     NoEMail=Ei sähköpostia
     Email=Sähköposti
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Ei matkapuhelinta
     Owner=Omistaja
     FollowingConstantsWillBeSubstituted=Seuraavat vakiot voidaan korvata ja vastaava arvo.
    @@ -677,7 +669,7 @@ NeverReceived=Ei ole saapunut
     Canceled=Peruutettu
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=Oletusarvon uudelle luotavalle tietueelle voi määrittää modulin asetuksista
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Väri
     Documents=Linkitettyjä tiedostoja
     Documents2=Asiakirjat
    @@ -703,7 +695,7 @@ DateOfSignature=Allekirjoituksen päivämäärä
     HidePassword=Näytä komento salasana piilotettuna
     UnHidePassword=Näytä todellinen komento salasana näkyen
     Root=Juuri
    -Informations=Informaatiot
    +Informations=Information
     Page=Sivu
     Notes=Huomiot
     AddNewLine=Lisää uusi rivi
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standardi PDF pohja
     PrintContentArea=Näytä sivu tulostaa päävalikkoon alue
     MenuManager=Valikkomanageri
    -WarningYouAreInMaintenanceMode=Varoitus, olet ylläpitotilassa, joten vain kirjautunut <b>%s</b> saa käyttää hakemuksen tällä hetkellä.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Järjestelmävirhe
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Luottokortti
     ValidatePayment=Vahvista maksu
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Tähdellä <b>%s</b> ovat pakollisia
    -FieldsWithIsForPublic=Tähdellä <b>%s</b> näkyvät julkisessa jäsenluettelossa. Jos et halua tätä, poista valinta "julkinen"-kentästä.
    -AccordingToGeoIPDatabase=(Mukaan GeoIP muuntaminen)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Rivi
     NotSupported=Ei tuettu
     RequiredField=Pakollinen kenttä
    @@ -732,6 +724,8 @@ Result=Tulos
     ToTest=Testi
     ValidateBefore=Kortti on vahvistettava ennen toiminnon käyttöä
     Visibility=Näkyvyys
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Yksityinen
     Hidden=Kätketty
     Resources=Resurssit
    @@ -750,6 +744,7 @@ LinkTo=Linkki
     LinkToProposal=Linkki Tarjoukseen
     LinkToOrder=Linkki Tilauksiin
     LinkToInvoice=Linkki Laskuihin
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Linkki Toimittaja tilauksiin
     LinkToSupplierProposal=Linkki Toimittaja tarjouksiin
     LinkToSupplierInvoice=Linkki Toimittaja laskuihin
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Luo luonnos
     SetToDraft=Palaa luonnokseen
     ClickToEdit=Klikkaa muokataksesi
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=Päivän mukaan
     BySalesRepresentative=Myyntiedustajittain
     LinkedToSpecificUsers=Linkitetty käyttäjätietoon
     NoResults=Ei tuloksia
    -AdminTools=Ylläpidon työkalut
    +AdminTools=Admin Tools
     SystemTools=Kehitysresurssit
     ModulesSystemTools=Moduuli työkalut
     Test=Testi
     Element=Osa
     NoPhotoYet=Ei kuvaa saatavilla vielä
     Dashboard=Kojelauta
    -MyDashboard=Minun kojelauta
    +MyDashboard=My Dashboard
     Deductible=Omavastuu
     from=mistä
     toward=eteenpäin
    @@ -802,7 +798,7 @@ PrintFile=Tulosta tiedostoon %s
     ShowTransaction=Näytä pankkitilin kirjaus
     ShowIntervention=Näytä interventio
     ShowContract=Näytä sopimus
    -GoIntoSetupToChangeLogo=Vaihtaaksesi logoa mene Home - Setup - Company tai Home - Setup - Display poistaaksesi
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Kiellä
     Denied=Kielletty
     ListOf=Luettelo %s
    @@ -818,12 +814,12 @@ Sincerely=Vilpittömästi
     DeleteLine=Poista rivi
     ConfirmDeleteLine=Halutako varmasti poistaa tämän rivin?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=Tallennusta ei ole valittu
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Luokittele laskutetaan
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Kalenteri
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Suora latauslinkki (julkinen/ulkoinen)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Lataa
    @@ -852,25 +848,34 @@ ModuleBuilder=Moduuli Rakentaja
     SetMultiCurrencyCode=Aseta valuutta
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Nettisivu
    +WebSite=Website
     WebSites=Nettisivut
    -WebSiteAccounts=Web site accounts
    +WebSiteAccounts=Website accounts
     ExpenseReport=Kustannusraportti
     ExpenseReports=Kuluraportit
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automaattisesti laskettu
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Vie ID
     Events=Tapahtumat
    -EMailTemplates=Sähköposti pohjat
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Hanke
     Projects=Projektit
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Oikeudet
     LineNb=Line no.
     IncotermLabel=Incoterm-ehdot
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Maanantai
     Tuesday=Tiistai
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Sopimukset
     SearchIntoCustomerShipments=Asiakas lähetykset
     SearchIntoExpenseReports=Kuluraportit
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Kommentit
     NbComments=Kommenttien määrä
     CommentPage=Comments space
     CommentAdded=Kommentti lisätty
     CommentDeleted=Kommentti poistettu
     Everybody=Yhteiset hanke
    -PayedBy=Maksanut
    -PayedTo=Maksettu
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Vaikuttaa
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/fi_FI/other.lang b/htdocs/langs/fi_FI/other.lang
    index 021b4b712bd..bf459454ba0 100644
    --- a/htdocs/langs/fi_FI/other.lang
    +++ b/htdocs/langs/fi_FI/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Suojakoodi
     NumberingShort=N°
     Tools=Työkalut
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Syntymäpäivä
     BirthdayDate=Birthday date
     DateToBirth=Päiväys syntyvyyden
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Viesti on validoitu maksun tuotto sivu
     MessageKO=Viesti on peruutettu maksun tuotto sivu
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Validate interventioelimen
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Asiakas tilaa validoitu
     Notify_ORDER_SENTBYMAIL=Asiakas tilaa postitse
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Toimittaja jotta postitse
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Toimittaja jotta hyväksytty
     Notify_ORDER_SUPPLIER_REFUSE=Toimittaja jotta evätty
     Notify_PROPAL_VALIDATE=Asiakas ehdotus validoidaan
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Kaupallinen ehdotus lähetetään postitse
     Notify_WITHDRAW_TRANSMIT=Vaihteisto peruuttaminen
     Notify_WITHDRAW_CREDIT=Luotto peruuttaminen
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Kolmannen osapuolen luotu
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Validate bill
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Asiakas laskun maksanut
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Asiakas lasku peruutettu
     Notify_BILL_SENTBYMAIL=Asiakkaan lasku lähetetään postitse
     Notify_BILL_SUPPLIER_VALIDATE=Toimittaja laskun validoitu
    -Notify_BILL_SUPPLIER_PAYED=Toimittaja laskun maksanut
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Toimittaja lasku lähetetään postitse
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Sopimus validoitu
     Notify_FICHEINTER_VALIDATE=Intervention validoitu
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Toimitus validoitu
     Notify_SHIPPING_SENTBYMAIL=Toimitus postitse
     Notify_MEMBER_VALIDATE=Jäsen validoitu
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Numero liitettyjen tiedostojen / asiakirjat
     TotalSizeOfAttachedFiles=Kokonaiskoosta liitettyjen tiedostojen / asiakirjat
     MaxSize=Enimmäiskoko
     AttachANewFile=Liitä uusi tiedosto / asiakirjan
     LinkedObject=Linkitettyä objektia
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> on tietojen mukaan kolmannen osapuolen maassa. <br> Esimerkiksi <b>maa %s,</b> se <b>koodi %s.</b>
     DolibarrDemo=Dolibarr ERP / CRM-demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Väliintulo %s validoitava
     EMailTextInvoiceValidated=Lasku %s validoitava
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Ehdotus %s on hyväksytty.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Jotta %s on hyväksytty.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Tilaa %s hyväksynyt %s
     EMailTextOrderRefused=Tilaa %s evätty
     EMailTextOrderRefusedBy=Tilaa %s hylätty %s
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Tuonti tietokokonaisuutta
     DolibarrNotification=Automaattinen ilmoitus
     ResizeDesc=Kirjoita uusi leveys <b>tai</b> uusien korkeus. Suhde pidetään ajan kokoa ...
    @@ -204,7 +214,7 @@ NewLength=Uusi leveys
     NewHeight=Uusi korkeus
     NewSizeAfterCropping=Uusi koko jälkeen rajaus
     DefineNewAreaToPick=Määritä uusi alue kuvasta valita (vasemmalla klikkaa kuvaa vetämällä kunnes tulet päinvastainen kulma)
    -CurrentInformationOnImage=Tiedot ajankohtaisista kuva
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Kuvankäsittelyohjelmassa
     YouReceiveMailBecauseOfNotification=Saat tämän viestin koska sähköpostiosoitteesi on lisätty luetteloon tavoitteet ilmoitetaan erityisesti tapahtumien osaksi %s ohjelmisto %s.
     YouReceiveMailBecauseOfNotification2=Tämä tapahtuma on seuraava:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Vienti alueen
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Titteli
     WEBSITE_DESCRIPTION=Kuvaus
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/fi_FI/paybox.lang b/htdocs/langs/fi_FI/paybox.lang
    index 614de447f2c..061793ca5a8 100644
    --- a/htdocs/langs/fi_FI/paybox.lang
    +++ b/htdocs/langs/fi_FI/paybox.lang
    @@ -3,14 +3,14 @@ PayBoxSetup=PayBox moduulin asetukset
     PayBoxDesc=Tämä moduuli tarjota sivuja, jotta maksua <a href="http://www.paybox.com" target="_blank">Paybox</a> asiakkaat. Tätä voidaan käyttää vapaa-maksun tai maksaa tietyn Dolibarr objektin (lasku-, tilaus-, ...)
     FollowingUrlAreAvailableToMakePayments=Seuraavat URL-osoitteet ovat käytettävissä tarjota sivu asiakas tehdä maksua Dolibarr esineitä
     PaymentForm=Maksu-muodossa
    -WelcomeOnPaymentPage=Tervetuloa verkkomaksupalveluumme
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Tässä näytössä voit tehdä online-maksu %s.
     ThisIsInformationOnPayment=Tämä on informations maksua tehdä
     ToComplete=Saattamaan
     YourEMail=Sähköposti maksupyyntö vahvistus
     Creditor=Velkoja
     PaymentCode=Maksu-koodi
    -PayBoxDoPayment=Pay with Credit or Debit Card (Paybox)
    +PayBoxDoPayment=Maksa luotto tai debit kortilla (Paybox)
     ToPay=Ei maksua
     YouWillBeRedirectedOnPayBox=Sinut ohjataan on turvattu Paybox sivu tuloliittimeen voit luottokortin tiedot
     Continue=Seuraava
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL tarjota %s online maksu käyttöliitty
     ToOfferALinkForOnlinePaymentOnContractLine=URL tarjota %s online maksu käyttöliittymän sopimuksen linjan
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL tarjota %s online maksu käyttöliittymän vapaa määrä
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL tarjota %s online maksu käyttöliittymän jäsen tilaus
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Voit myös lisätä URL-parametrin <b>& tag= <i>arvo</i></b> mille tahansa niistä URL (vaaditaan ainoastaan ilmaiseksi maksu) lisätään oma maksu kommentoida tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Määritä oman PayBox kanssa <b>url %s</b> on maksu luodaan automaattisesti, kun validoinut paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Tämä sivu vahvistaa, että maksu on kirjattu. Kiitos.
    -YourPaymentHasNotBeenRecorded=Et maksua ei ole kirjattu, ja kauppa on peruutettu. Kiitos.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Tilin parametrit
     UsageParameter=Käyttöparametrien
     InformationToFindParameters=Auta löytää %s tilitiedot
    diff --git a/htdocs/langs/fi_FI/projects.lang b/htdocs/langs/fi_FI/projects.lang
    index 44aa47f6f7a..720a7a4b65d 100644
    --- a/htdocs/langs/fi_FI/projects.lang
    +++ b/htdocs/langs/fi_FI/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Näytä hankkeen
     ShowTask=Näytä tehtävä
     SetProject=Aseta hankkeen
     NoProject=Ei hanke määritellään
    -NbOfProjects=Nb hankkeiden
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Käytetty aika
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Luettelot kaupallisen ehdotuksia hankkeeseen liittyvät
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Luettelo sopimukset hankkeeseen liittyvät
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Luettelo toimien hankkeeseen liittyvän
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Luettelo toimia, jotka liittyvät hankkeen
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Liittyy muihin kolmannen osapuolen
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Käytetty aika on tyhjä
     ThisWillAlsoRemoveTasks=Tämä toiminto poistaa myös kaikki tehtävät projektin <b>(%s</b> tehtävät tällä hetkellä) ja kaikki panokset käytetty aika.
    -IfNeedToUseOhterObjectKeepEmpty=Jos jotkin esineet (lasku, tilaus, ...), jotka kuuluvat toiselle kolmannelle osapuolelle, on liityttävä hankkeeseen luoda, pitää tämä tyhjä saada hanke on multi kolmansille osapuolille.
    +IfNeedToUseOtherObjectKeepEmpty=Jos jotkin esineet (lasku, tilaus, ...), jotka kuuluvat toiselle kolmannelle osapuolelle, on liityttävä hankkeeseen luoda, pitää tämä tyhjä saada hanke on multi kolmansille osapuolille.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Avustaja
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Liittyvät tuotteet
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Ehdotus
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/fi_FI/propal.lang b/htdocs/langs/fi_FI/propal.lang
    index df4f10ce5fa..e7aa7bc8a5b 100644
    --- a/htdocs/langs/fi_FI/propal.lang
    +++ b/htdocs/langs/fi_FI/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Allekirjoitettu (laskuttaa)
     PropalStatusNotSigned=Ei ole kirjautunut (suljettu)
     PropalStatusBilled=Laskutetun
     PropalStatusDraftShort=Vedos
    -PropalStatusValidatedShort=Hyväksytty
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Suljettu
     PropalStatusSignedShort=Allekirjoitettu
     PropalStatusNotSignedShort=Ei ole kirjautunut
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s ei löydy
     AddToDraftProposals=Lisää tarjousluonnos
     NoDraftProposals=Ei tarjousluonnoksia
     CopyPropalFrom=Luo tarjous kopioimalla olemassa oleva tarjous pohjaksi
    -CreateEmptyPropal=Luo tyhjä tarjous vierge tai luettelo tuotteet / palvelut
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Tarjouksen oletus voimassaolo (päivinä)
    -UseCustomerContactAsPropalRecipientIfExist=Käytä asiakkaan yhteystiedot, jos se on määritetty sijaan kolmannen osapuolen osoite ehdotus vastaanottajan osoite
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Klooni kaupallinen ehdotus
     ConfirmClonePropal=Haluatko varmasti monistaa tarjouksen <b>%s</b>?
     ConfirmReOpenProp=Haluatko varmasti avata uudestaan tarjouksen <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Asiakkaan yhteystiedot tarjouksen seurantaa
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Kokonainen tarjouspohja (logo...)
    +DocModelCyanDescription=Kokonainen tarjouspohja (logo...)
     DefaultModelPropalCreate=Oletusmallin luonti
     DefaultModelPropalToBill=Oletus pohja suljettavalle tarjoukselle (laskutukseen)
     DefaultModelPropalClosed=Oletus pohja suljettavalla tarjoukselle (laskuttamaton)
    diff --git a/htdocs/langs/fi_FI/website.lang b/htdocs/langs/fi_FI/website.lang
    index fc43a07e324..25540b60bc5 100644
    --- a/htdocs/langs/fi_FI/website.lang
    +++ b/htdocs/langs/fi_FI/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Koodi
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Luettu
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/fr_BE/admin.lang b/htdocs/langs/fr_BE/admin.lang
    index aa389328b18..4a6114a0d1a 100644
    --- a/htdocs/langs/fr_BE/admin.lang
    +++ b/htdocs/langs/fr_BE/admin.lang
    @@ -5,26 +5,18 @@ VersionRecommanded=Recommandée
     SessionId=ID de session
     SessionSaveHandler=Gestionnaire de sessions
     PurgeSessions=Nettoyage des sessions
    -NoSessionListWithThisHandler=Le gestionnaire de sessions configuré dans votre PHP ne permet pas de faire la liste des sessions existantes.
     LockNewSessions=Bloquer les nouvelles connexions
    -ConfirmLockNewSessions=Êtes-vous certain de vouloir restreindre toute nouvelle connexion à vous seul? Seul l'utilisateur <b>%s</b> pourra se connecter après cela.
     UnlockNewSessions=Éliminer le blocage des connexions
     WebUserGroup=Utilisateur/groupe du serveur web
    -NoSessionFound=Votre configuration PHP ne semble pas permettre de faire une liste des sessions actives. Le répertoire utilisé pour stocker les sessions (<b>%s</b>) pourrait être protégé (par exemple, par des permissions du système d'exploitation ou par la directive PHP open_basedir).
     DBStoringCharset=Codification de caractères de base de données pour stocker les données
     DBSortingCharset=Codification de caractères de base de données pour trier les données
     WarningModuleNotActive=Le module <b>%s</b> doit être activé
     WarningOnlyPermissionOfActivatedModules=Seules les permissions liées à des modules activés sont montrées ici. Vous pouvez activer d'autres modules sur la page Accueil->Configuration->Modules.
    -SetupArea=Zone de configuration
     FormToTestFileUploadForm=Formulaire pour tester l'upload de fichiers (selon la configuration)
     IfModuleEnabled=Note: oui ne fonctionne que si le module <b>%s</b> est activé
     RemoveLock=Supprimez le fichier <b>%s</b> s'il existe pour autoriser l'utilisation de l'outil de mise à jour.
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     Module20Name=Propales
     Module30Name=Factures
     DictionaryPaymentConditions=Conditions de paiement
     SuppliersPayment=Paiements fournisseurs
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
     Target=Objectif
    diff --git a/htdocs/langs/fr_BE/bills.lang b/htdocs/langs/fr_BE/bills.lang
    index 8fe53169113..bb84bd2017d 100644
    --- a/htdocs/langs/fr_BE/bills.lang
    +++ b/htdocs/langs/fr_BE/bills.lang
    @@ -16,7 +16,6 @@ UsedByInvoice=Utilisée pour payer la facture %s
     PredefinedInvoices=Factures prédéfinies
     SupplierBills=factures fournisseurs
     Payment=Paiement
    -Payments=Paiements
     DeletePayment=Supprimer paiement
     SupplierPayments=Paiements fournisseurs
     ReceivedPayments=Paiements reçus
    @@ -43,8 +42,6 @@ EscompteOfferedShort=Ristourne
     Discounts=Ristournes
     AddDiscount=Créer ristourne
     ShowDiscount=Visualiser le crédit
    -CreditNote=Note de crédit
    -CreditNotes=Notes de crédit
     DiscountFromCreditNote=Remise issue de la note de crédit %s
     PaymentTypeLIQ=En espèces
     PaymentTypeShortLIQ=En espèces
    diff --git a/htdocs/langs/fr_BE/compta.lang b/htdocs/langs/fr_BE/compta.lang
    index 488b53843a6..a4ec8230e86 100644
    --- a/htdocs/langs/fr_BE/compta.lang
    +++ b/htdocs/langs/fr_BE/compta.lang
    @@ -1,5 +1,3 @@
     # Dolibarr language file - Source file is en_US - compta
    -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on actual payments made even if they are not yet accounted in Ledger.
    -SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even if they are not yet accounted in Ledger.
     Dispatched=Envoyé
     ToDispatch=Envoyer
    diff --git a/htdocs/langs/fr_CA/admin.lang b/htdocs/langs/fr_CA/admin.lang
    index a7fdc2395cd..a66102ceb59 100644
    --- a/htdocs/langs/fr_CA/admin.lang
    +++ b/htdocs/langs/fr_CA/admin.lang
    @@ -3,9 +3,7 @@ Publisher=Éditeur
     VersionLastInstall=Version d'installation initiale
     VersionLastUpgrade=Version de la dernière mise à jour
     FileCheck=Vérificateur d'intégrité des fichiers
    -FileCheckDesc=Cet outil vous permet de vérifier l'intégrité des fichiers et la configuration de votre application, en comparant chaque fichier avec les officiels. La valeur de certaines constantes d'installation peut également être vérifiée. Vous pouvez utiliser cet outil pour détecter si certains fichiers ont été modifiés par un pirate informatique par exemple.
     FileIntegrityIsStrictlyConformedWithReference=L'intégrité des fichiers est strictement conforme à la référence.
    -FileIntegrityIsOkButFilesWereAdded=La vérification de l'intégrité des fichiers s'est écoulée, mais certains nouveaux fichiers ont été ajoutés.
     FileIntegritySomeFilesWereRemovedOrModified=La vérification de l'intégrité des fichiers a échoué. Certains fichiers ont été modifiés, supprimés ou ajoutés.
     GlobalChecksum=Somme de contrôle globale
     MakeIntegrityAnalysisFrom=Effectuer une analyse d'intégrité des fichiers d'application de
    @@ -16,17 +14,14 @@ FileCheckDolibarr=Vérifier l'intégrité des fichiers d'application
     AvailableOnlyOnPackagedVersions=Le fichier local pour la vérification de l'intégrité n'est disponible que lorsque l'application est installée à partir d'un paquet officiel
     XmlNotFound=Xml Integrity Fichier de l'application introuvable
     ConfirmPurgeSessions=Voulez-vous vraiment purger toutes les sessions? Cela déconnectera tous les utilisateurs (sauf vous).
    -WebUserGroup=Utilisateur/groupe du serveur Web
     ClientCharset=Encodage Client
    +SetupArea=Paramétrage
     UploadNewTemplate=Télécharger un nouveau modèle (s)
     SecurityFilesDesc=Définissez ici les options liées à la sécurité concernant le téléchargement de fichiers.
    -DelaiedFullListToSelectCompany=Attendez que vous appuyez sur une touche avant de charger le contenu de la liste des combinaisons de tiers (cela peut augmenter les performances si vous avez un grand nombre de tiers, mais cela est moins pratique)
    -DelaiedFullListToSelectContact=Attendez que vous appuyez sur une touche avant de charger le contenu de la liste des contacts combinés (Cela peut augmenter les performances si vous avez un grand nombre de contacts, mais cela est moins pratique)
     AllowToSelectProjectFromOtherCompany=Sur le document d'un tiers, peut choisir un projet lié à un autre tiers
     NextValueForDeposit=Valeur suivante (acompte)
     MultiCurrencySetup=Configuration multi-devises
     NotConfigured=Module / Application non configuré
    -HoursOnThisPageAreOnServerTZ=Avertissement, contrairement à d'autres écrans, les heures sur cette page ne sont pas dans votre fuseau horaire local, mais pour le fuseau horaire du serveur.
     MaxNbOfLinesForBoxes=Nombre maximum de lignes pour les widgets
     AllWidgetsWereEnabled=Tous les widgets disponibles sont activés
     MenusDesc=Les gestionnaires de menu définissent le contenu des deux barres de menus (horizontales et verticales).
    @@ -40,21 +35,15 @@ PurgeNDirectoriesFailed=Impossible de supprimer <b>%s</b> fichiers ou les réper
     ConfirmPurgeAuditEvents=Êtes-vous sûr de vouloir purger tous les événements de sécurité? Tous les journaux de sécurité seront supprimés, aucune autre donnée ne sera supprimée.
     IgnoreDuplicateRecords=Ignorer les erreurs d'enregistrement en double (INSERT IGNORE)
     FeatureAvailableOnlyOnStable=La fonctionnalité est uniquement disponible sur les versions officielles stables
    -BoxesDesc=Les widgets sont des composants montrant des informations que vous pouvez ajouter pour personnaliser certaines pages. Vous pouvez choisir entre afficher le widget ou non en sélectionnant la page cible et en cliquant sur 'Activer', ou en cliquant sur la poubelle pour la désactiver.
     ModulesMarketPlaceDesc=Vous pouvez trouver plus de modules à télécharger sur des sites Web externes sur Internet ...
    -ModulesDeployDesc=Si les autorisations sur votre système de fichiers le permettent, vous pouvez utiliser cet outil pour déployer un module externe. Le module sera alors visible sur l'onglet <strong>%s</strong>.
     ModulesMarketPlaces=Trouver des applications / modules externes
     ModulesDevelopYourModule=Développez votre propre application / modules
    -ModulesDevelopDesc=Vous pouvez développer ou trouver un partenaire pour développer pour vous, votre module personnalisé
    -DOLISTOREdescriptionLong=Au lieu d'activer le site web <a href="https://www.dolistore.com">www.dolistore.com</a> pour trouver un module externe, vous pouvez utiliser cet outil embarqué qui rendra la recherche sur le marché externe pour vous (peut être lent, dépendant de votre accès internet) ...
     NotCompatible=Ce module ne semble pas compatible avec votre Dolibarr %s (Min %s - Max %s).
     CompatibleAfterUpdate=Ce module nécessite une mise à jour de votre Dolibarr %s (Min %s - Max %s).
     SeeInMarkerPlace=Voir dans Market place
     Updated=Mis à jour
     AchatTelechargement=Acheter / Télécharger
     GoModuleSetupArea=Pour déployer / installer un nouveau module, accédez à la zone de configuration du module à <a href="%s"> %s </a>.
    -DoliPartnersDesc=Liste des entreprises proposant des modules ou des fonctionnalités développés personnalisés (Remarque: toute personne expérimentée dans la programmation PHP peut fournir un développement personnalisé pour un projet open source)
    -WebSiteDesc=Les sites Web de référence pour trouver plus de modules ...
     DevelopYourModuleDesc=Quelques solutions pour développer votre propre module ...
     InstrucToEncodePass=Pour chiffrer le mot de passe de la base dans le fichier de configuration <b>conf.php</b>, remplacer la ligne<br><b>$dolibarr_main_db_pass="...";</b><br>par<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Pour avoir le mot de passe de la base décodé (en clair) dans le fichier de configuration <b>conf.php</b>, remplacer dans ce fichier la ligne<br><b>$dolibarr_main_db_pass="crypted:..."</b><br>par<br><b>$dolibarr_main_db_pass="%s"</b>
    @@ -63,18 +52,10 @@ NoticePeriod=Période de préavis
     NewByMonth=Nouveau par mois
     Emails=Courriels
     EMailsSetup=Configuration des courriels
    -EMailsDesc=Cette page vous permet d'écraser vos paramètres PHP pour l'envoi de mails. Dans la plupart des cas sur Unix / Linux OS, votre configuration PHP est correcte et ces paramètres sont inutiles.
     EmailSenderProfiles=Profils d'expéditeurs d'e-mails
    -MAIN_MAIL_EMAIL_FROM=Courriel de l'expéditeur pour les courriels automatiques (Par défaut dans php.ini:<b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=L'e-mail utilisé pour les erreurs renvoie les e-mails (champs "Erreurs-A" dans les e-mails envoyés)
    -MAIN_DISABLE_ALL_MAILS=Désactiver toutes les envois de courriels (pour des fins de démonstration ou de tests)
     MAIN_MAIL_FORCE_SENDTO=Envoyer tous les emails à (au lieu des destinataires réels, à des fins de test)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Ajouter les utilisateurs des employés avec email dans la liste des destinataires autorisés
    -MAIN_MAIL_EMAIL_STARTTLS=Utilisation du chiffrement TLS (SSL)
    -MAIN_MAIL_DEFAULT_FROMTYPE=Courriel de l'expéditeur par défaut pour les envois manuels (courriel de l'utilisateur ou courriel de la société)
     UserEmail=Courrier électronique de l'utilisateur
     CompanyEmail=Courrier électronique de la société
    -SubmitTranslation=Si la traduction de cette langue est incomplète ou vous trouvez des erreur , vous pouvez corriger cela en modifiant les fichiers dans le répertoire <b>langs/%s</b> et soumettre votre changement à www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=Si la traduction de cette langue est incomplète ou vous trouvez des erreurs , vous pouvez corriger cela en modifiant les fichiers dans le répertoire <b> langs/%s </b> et soumettre les fichiers modifiés sur dolibarr.org/forum ou pour les développeurs sur github.com/Dolibarr/dolibarr.
     ModulesSetup=Modules / Configuration de l'application
     ModuleFamilyProducts=Gestion des produits
    @@ -83,14 +64,9 @@ ModuleFamilyPortal=Site internet et autres applications frontales
     ModuleFamilyInterface=Interfaces avec les systèmes externes
     ThisIsProcessToFollow=Voici des étapes à suivre pour traiter:
     ThisIsAlternativeProcessToFollow=Il s'agit d'une configuration alternative à traiter manuellement:
    -FindPackageFromWebSite=Recherche le paquet qui répond à votre besoin (par exemple sur le site web %s).
     DownloadPackageFromWebSite=Télécharger le package %s.
    -UnpackPackageInDolibarrRoot=Décompressez les fichiers emballés dans le répertoire du serveur dédié à Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=Pour déployer / installer un module externe, décompressez les fichiers emballés dans le répertoire du serveur dédié aux modules: <b>%s</b>
    -SetupIsReadyForUse=Le déploiement du module est terminé. Vous devez toutefois activer et configurer le module dans votre application en allant sur la page pour configurer les modules: <a href="%s"> %s </a>.
     NotExistsDirect=Le répertoire racine alternatif n'est pas défini dans un répertoire existant.
     InfDirAlt=Depuis la version 3, il est possible de définir un autre répertoire racine. Cela vous permet de stocker, dans un répertoire dédié, des plug-ins et des modèles personnalisés. <br> Créez simplement un répertoire à la racine de Dolibarr (par exemple: personnalisé).
    -YouCanSubmitFile=Pour cette étape, vous pouvez insérer le fichier du module .zip ici :
     CallUpdatePage=Accédez à la page qui met à jour la structure et les données de la base de données: %s.
     LastStableVersion=Dernière version stable
     LastActivationDate=Dernière date d'activation
    @@ -100,16 +76,13 @@ GenericMaskCodes2=<B> {cccc} </ b> le code client sur n caractères <br> <b> {cc
     GenericMaskCodes4a=<br><u> Exemple au 99th %s du tiers TheCompany, avec la date 2007-01-31: </u>
     GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> donnera <b>ABC0701-000099</b><br><b>{0000+100@1}-ZZZ/{dd}/XXX</b> donnera <b>0199-ZZZ/31/XXX</b><br><b>IN{yy}{mm}-{0000}-{t}</b> donnera <b>IN0701-0099-A</b> si le type d'entreprise est 'Responsable Inscripto' avec un code pour le type 'A_RI'
     DisableLinkToHelp=Masquer lien vers l'aide en ligne "<b>%s</b>"
    -ConfirmPurge=Êtes-vous sûr de vouloir exécuter cette purge? <br> Cela supprimera définitivement tous vos fichiers de données sans pouvoir les restaurer (fichiers ECM, fichiers joints ...).
     ListOfDirectoriesForModelGenODT=Liste des répertoires contenant des fichiers de modèles avec le format OpenDocument . <br><br> Mettez ici le chemin complet des répertoires .<br>Ajouter un retour chariot entre répertoire eah.<br> Pour ajouter un répertoire du module de GED , ajouter ici<b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br> Fichiers dans ces répertoires doit se terminer par <b>.odt</b> or <b>.ods</b>.
     HideDetailsOnPDF=Masquer les détails des lignes de produits sur le PDF généré
     PlaceCustomerAddressToIsoLocation=Utilisez french standard position (La Poste) pour le client position d'adresse
    -ButtonHideUnauthorized=Masquer les boutons pour les utilisateurs non administrateurs pour les actions non autorisées au lieu de afficher les boutons désactivés grisés
     OldVATRates=Ancien taux de TPS/TVH
     NewVATRates=Nouveau taux de TPS/TVH
     Boolean=Boolean (une case à cocher)
     ExtrafieldSeparator=Séparateur (pas un champ)
    -ExtrafieldRadio=Boutons radio (uniquement sur le choix)
     ExtrafieldCheckBoxFromList=Les cases à cocher du tableau
     ExtrafieldLink=Lier à un objet
     ComputedFormulaDesc=Vous pouvez entrer ici une formule utilisant d'autres propriétés de l'objet ou tout codage PHP pour obtenir une valeur calculée dynamique. Vous pouvez utiliser toutes les formules compatibles PHP, y compris le "?" L'opérateur de condition et l'objet global suivant: <strong> $ db, $ conf, $ langs, $ mysoc, $ user, $ object </ strong>. <br> <strong> AVERTISSEMENT </ strong>: Seules certaines propriétés de $ L'objet peut être disponible. Si vous avez besoin de propriétés non chargées, récupérez-vous l'objet dans votre formule comme dans le deuxième exemple. L'utilisation d'un champ calculé signifie que vous ne pouvez pas entrer de valeur d'interface. De plus, s'il existe une erreur de syntaxe, la formule ne peut renvoyer rien. <br> <br> Exemple de formule: $ $ object-> id <10? Round ($ object-> id / 2, 2): ($ object-> id + 2 * $ user-> id) * (int) substr ($ mysoc-> zip, 1, 2) <br> <br> Exemple de recharger l'objet <br> (($ reloadedobj = new Societe ($ db)) && ($ reloadedobj-> fetch ($ obj-> id? $ Obj-> id: ($ obj-> rowid? $ Obj-> Rowid: $ object-> id))> 0))? $ Reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1' <br> <br> Autre exemple de formule pour forcer la charge de l'objet et son objet parent: <br> (($ reloadedobj = New Task ($ db)) && ($ reloadedobj-> fetch ($ object-> id)> 0) && ($ secondloadedobj = new Project ($ db)) && ($ secondloadedobj-> fetch ($ reloadedobj-> fk_project )> 0))? $ Secondloadedobj-> ref: 'Projet parent introuvable'
    @@ -122,17 +95,11 @@ ShowDetailsInPDFPageFoot=Ajoutez plus de détails au pied de page de fichiers PD
     NoDetails=Plus de détails dans le pied de page
     DisplayCompanyManagers=Afficher les noms des gestionnaires
     DisplayCompanyInfoAndManagers=Afficher l'adresse de la société et les noms des gestionnaires
    -EnableAndSetupModuleCron=Si vous souhaitez que cette facture récurrente soit générée automatiquement, le module * %s * doit être activé et correctement configuré. Sinon, la génération des factures doit être effectuée manuellement à partir de ce modèle avec le bouton * Créer *. Notez que même si vous avez activé la génération automatique, vous pouvez toujours lancer une génération manuelle sans risque. La génération de doublons pour la même période n'est pas possible.
     Use3StepsApproval=Par défaut, les bons de commande doivent être créés et approuvés par 2 utilisateurs différents (une étape / utilisateur à créer et une étape / utilisateur à approuver. Notez que si l'utilisateur a la permission de créer et d'approuver, un pas / utilisateur suffira) . Vous pouvez demander cette option pour introduire une troisième étape / approbation de l'utilisateur, si le montant est supérieur à une valeur dédiée (donc 3 étapes seront nécessaires: 1 = validation, 2 = première approbation et 3 = deuxième approbation si le montant est suffisant). <br> Configurez ceci pour vider si une approbation (2 étapes) est suffisante, définissez-la à une valeur très faible (0.1) si une deuxième approbation (3 étapes) est toujours requise.
     UseDoubleApproval=Utilisez une approbation de 3 étapes lorsque le montant (sans taxes) est supérieur à ...
     ClickToShowDescription=Cliquez pour afficher la description
    -DependsOn=Ce module nécessite le (s) module (s)
     RequiredBy=Ce module est requis par module (s)
    -TheKeyIsTheNameOfHtmlField=C'est le nom du champ HTML. Ce besoin d'avoir des connaissances techniques pour lire le contenu de la page HTML pour obtenir le nom clé d'un champ.
    -PageUrlForDefaultValues=Vous devez entrer ici l'URL relative de la page. Si vous incluez des paramètres dans l'URL, les valeurs par défaut seront effectives si tous les paramètres sont définis sur la même valeur. Exemples:
     EnableDefaultValues=Activer l'utilisation de valeurs par défaut personnalisées
    -EnableOverwriteTranslation=Activer l'utilisation de la traduction écrasée
    -GoIntoTranslationMenuToChangeThis=Une traduction a été trouvée pour la clé avec ce code, afin de modifier cette valeur, vous devez l'éditer pour la traduction à domicile.
     WarningSettingSortOrder=Avertissement, le réglage d'un ordre de tri par défaut peut entraîner une erreur technique lors de la page de la liste si un champ est un champ inconnu. Si vous rencontrez une telle erreur, revenez à cette page pour supprimer l'ordre de tri par défaut et restaurer le comportement par défaut.
     ProductDocumentTemplates=Modèles de documents pour générer un document produit
     FreeLegalTextOnExpenseReports=Texte juridique gratuit sur les rapports de dépenses
    @@ -140,32 +107,22 @@ WatermarkOnDraftExpenseReports=Filigrane sur les projets de rapports de dépense
     Module0Desc=Gestion des utilisateurs / employés et des groupes
     Module42Desc=Installations de journalisation (fichier, syslog, ...). Ces journaux sont à des fins techniques / de débogage.
     Module57Name=Ordres de paiement bancaire direct
    -Module57Desc=Gestion des ordres de paiement de débit direct. Il comprend la génération du fichier SEPA pour les pays européens.
     Module75Name=Notes de frais et déplacements
    -Module240Desc=Outil d'exportation de données Dolibarr (avec des assistants)
    -Module250Desc=Outil d'importation de données à Dolibarr (avec des assistants)
     Module510Name=Paiement des salaires des employés
    -Module510Desc=Enregistrer et suivre le paiement de vos salaires salariés
     Module770Name=Note de frais
    -Module2000Desc=Permet d'éditer une zone de texte à l'aide d'un éditeur avancé (basé sur CKEditor)
     Module2400Name=Evénements / Agenda
     Module2600Name=services API / Web ( serveur SOAP )
     Module2600Desc=Active le serveur de Web Services de Dolibarr
     Module2610Name=services API / Web ( serveur REST )
     Module2610Desc=Activer le serveur REST de services API de les services
     Module2660Name=WebServices appel ( client SOAP )
    -Module2660Desc=Activer le client Dolibarr de services Web (peut être utilisé pour pousser les données / demandes de serveurs externes . Fournisseur commandes prises en charge seulement pour le moment )
     Module3100Desc=Ajouter un bouton Skype aux utilisateurs / tiers / contacts / cartes membres
     Module4000Name=Gestion des ressources humaines
     Module10000Name=Sites Internet
     Module20000Name=Gestion des demandes de congès
    -Module20000Desc=Déclaration et suivi des congès des employés
     Module50100Desc=Module de point de vente (POS).
     Module55000Name=Sondage, enquête ou vote
    -Module55000Desc=Module pour faire des sondages en ligne, des enquêtes ou des votes (comme Doodle , Studs , Rdvz , ... )
     Module63000Desc=Gérer les ressources (imprimantes, voitures, salles, ...) vous pouvez ensuite partager vos événements
    -Permission41=Lisez les projets et les tâches (projet partagé et projets auxquels je suis contacté). Peut aussi entrer dans le temps, pour moi ou pour ma hiérarchie, sur les tâches assignées (feuille de temps)
    -Permission42=Créer / modifier des projets (projet partagé et projets pour lesquels je suis contact). Peut également créer des tâches et affecter des utilisateurs à des projets et à des tâches
     Permission45=Exportation de projets
     Permission76=Exporter des données
     Permission91=Consulter les charges et la TPS/TVH
    @@ -176,10 +133,8 @@ Permission144=Supprimer tous les projets et tâches (y compris privés dont je n
     Permission151=Lire les ordres de paiement de débit direct
     Permission152=Créer / modifier des ordres de paiement de débit direct
     Permission153=Envoyer / Transmettre les ordres de paiement de débit direct
    -Permission154=Enregistrer les crédits / Rejet des ordres de paiement par prélèvement automatique
     Permission167=Exportation de contacts
     Permission171=Lire les déplacements et les dépenses (le vôtre et vos subordonnés )
    -Permission262=Prolonger l'accès à tous les tiers (non seulement les tiers que l'utilisateur est un représentant de la vente). <br> Pas efficace pour les utilisateurs externes (toujours limités à eux-mêmes pour des propositions, des commandes, des factures, des contrats, etc.). Projets (règles uniquement sur les autorisations de projet, visibilité et affectation).
     Permission771=Lire les rapports de dépenses (le vôtre et vos subordonnés )
     Permission1322=Réouvrir une facture payée
     Permission20006=Administration des demandes de congé (balance de configuration et de mise à jour )
    @@ -188,8 +143,6 @@ Permission2414=Exportation d'actions/tâches des autres
     Permission59001=Consulter les propositions commerciales
     Permission63002=Créer / modifier des ressources
     Permission63004=Relier les ressources aux événements de l'agenda
    -DictionaryCompanyType=Types de tiers
    -DictionaryCompanyJuridicalType=Formes juridiques des tierces parties
     DictionaryCanton=État / Province
     DictionaryCivility=Titres personnels et professionnels
     DictionaryActions=Types d'événements de l'agenda
    @@ -197,27 +150,11 @@ DictionarySocialContributions=Types de charges sociales
     DictionaryVAT=Taux de TPS/TVH ou de Taxes de Ventes
     DictionaryFormatCards=Formats de cartes
     DictionaryAccountancyJournal=Revues comptables
    -DictionaryHolidayTypes=Types de feuilles
    -DictionaryOpportunityStatus=État d'opportunité pour le projet/chef de file
     SetupNotSaved=Le programme d'installation n'a pas été enregistré
    -VATManagement=Gestion TPS/TVH
    -VATIsUsedDesc=Par défaut, lors de la création de prospects, factures, commandes, etc., le taux de TVA suit la règle standard active: <br> Si le vendeur n'est pas assujetti à la TVA, la TVA prend par défaut 0. Fin de la règle. Si le (pays vendeur = Pays d'achat), la TVA par défaut est égale à la TVA du produit dans le pays de vente. Fin de la règle. <br> Si le vendeur et l'acheteur sont tous deux dans la Communauté européenne et les marchandises sont des produits de transport (voiture, bateau, avion), la TVA par défaut est 0 (la TVA devrait être payée par l'acheteur au bureau de son pays et non à la vendeur). Fin de la règle. Si le vendeur et l'acheteur sont tous deux dans la Communauté européenne et que l'acheteur n'est pas une société, la TVA par défaut est la TVA du produit vendu. Fin de la règle. Si le vendeur et l'acheteur sont tous deux dans la Communauté européenne et l'acheteur est une société, la TVA est 0 par défaut. Fin de la règle. En tout autre cas, le défaut proposé est la TVA = 0. Fin de la règle.
    -VATIsNotUsedDesc=Le taux de TPS/TVH proposé par défaut est 0. C'est le cas d'associations, particuliers ou certaines petites sociétés.
    -LocalTax1IsUsedDesc=Utilisation d'un 2ème type taxe (autre que TPS/TVH)
    -LocalTax1IsNotUsedDesc=Pas d'utilisation de 2ème type taxe (autre que TPS/TVH)
    -LocalTax2IsUsedDesc=Utilisation d'un 3ème type taxe  (autre que TPS/TVH)
    -LocalTax2IsNotUsedDesc=Pas d'utilisation de 3ème type taxe  (autre que TPS/TVH)
     CurrentNext=Actuel / Suivant
     DefaultMaxSizeList=Longueur maximale des listes
    -DefaultMaxSizeShortList=Longueur maximale par défaut des listes
     CompanyObject=Objet de la compagnie
     ShowBugTrackLink=Afficher le lien "Signaler un défaut"
    -Delays_MAIN_DELAY_ACTIONS_TODO=Tolérance retardée (en jours) avant l'alerte sur les événements planifiés (événements agenda) non encore terminés
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolérance retardée (en jours) avant l'alerte sur le projet non fermé dans le temps
    -Delays_MAIN_DELAY_TASKS_TODO=Tolérance retardée (en jours) avant l'alerte sur les tâches planifiées (tâches du projet) non complétées encore
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolérance de retard (en jours) avant l'alerte sur les commandes non traitées encore
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolérance de retard (en jours) avant alerte pour les rapports de dépenses à approuver
    -SetupDescription1=La zone de configuration est pour les paramètres de configuration initiale avant de commencer à utiliser Dolibarr.
     InfoDolibarr=À propos de Dolibarr
     InfoBrowser=À propos du navigateur
     InfoWebServer=À propos du serveur Web
    @@ -238,11 +175,8 @@ TranslationString=Chaîne de traduction
     WarningAtLeastKeyOrTranslationRequired=Un critère de recherche est requis au moins pour une clé ou une chaîne de traduction
     NewTranslationStringToShow=Nouvelle chaîne de traduction à afficher
     OriginalValueWas=La traduction originale est écrasée. La valeur d'origine était: <br> <br> %s
    -TransKeyWithoutOriginalValue=Vous avez forcé une nouvelle traduction pour la clé de traduction '<strong>%s</strong>' qui n'existe pas dans aucun fichier de langue
     TotalNumberOfActivatedModules=Application / modules activés: <b>%s</b> / <b>%s</b>
    -OnlyFollowingModulesAreOpenedToExternalUsers=Remarque, seuls les modules suivants sont ouverts aux utilisateurs externes (quelle que soit l'autorisation de ces utilisateurs) et uniquement si les autorisations ont été accordées:
    -AskForPreferredShippingMethod=Demandez la méthode d'envoi préférée pour les tiers.
    -PasswordGenerationNone=Aucune suggestion de mot de passe généré . Le mot de passe doit être saisi manuellement.
    +SearchOptim=Optimization des recherches
     PasswordGenerationPerso=Retour un mot de passe en fonction de votre configuration personnellement défini.
     PasswordPatternDesc=Description du modèle de mot de passe
     DisableForgetPasswordLinkOnLogonPage=Ne pas afficher le lien "Mot de passe oublié" sur la page de connexion
    @@ -251,7 +185,6 @@ NotificationsDesc=La fonction de notification des messages électroniques vous p
     NotificationsDescUser=* Par utilisateur, un utilisateur à l'heure.
     NotificationsDescGlobal=* Ou en définissant des emails de cible globaux dans la page de configuration du module.
     MustBeUnique=Doit être unique?
    -MustBeMandatory=Obligatoire de créer des tiers?
     MustBeInvoiceMandatory=Obligatoire de valider les factures?
     PaymentsPDFModules=Modèles de documents de paiement
     PaymentsNumberingModule=Modèles de numérotation des paiements
    @@ -261,20 +194,14 @@ WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Demandez une source d'entrepôt pour l'ordr
     ShippableOrderIconInList=Ajouter un icône dans la liste des commandes qui indique si la commande est expédiable.
     LDAPAdminDnExample=DN complet (ex: cn = admin, dc = exemple, dc = com ou cn = Administrateur, cn = Utilisateurs, dc = exemple, dc = com pour le répertoire actif)
     LDAPFieldTitle=Poste
    -CacheByServerDesc=Par exemple, en utilisant la directive Apache "ExpiresByType image / gif A2592000"
    -DefaultValuesDesc=Vous pouvez définir / forcer ici la valeur par défaut que vous voulez obtenir lorsque vous créez un nouvel enregistrement, et / ou défairez les filtres ou le tri lors de votre liste.
     DefaultSortOrder=Ordres de tri par défaut
     DefaultFocus=Champs de mise au point par défaut
     MergePropalProductCard=Activez dans le produit/service, l'option onglet de fichiers attachés pour fusionner le produit PDF le document à la proposition PDF azur si le produit/service est dans la proposition
    -ViewProductDescInThirdpartyLanguageAbility=Visualisation des descriptions de produits dans la langue de tiers
    -UseSearchToSelectProduct=Attendez que vous appuyez sur une touche avant de charger le contenu de la liste des combo du produit (cela peut augmenter les performances si vous avez un grand nombre de produits, mais cela est moins pratique)
     UseUnits=Définir une unité de mesure pour la quantité lors de la commande, l'édition de la proposition ou les lignes de facture
     IsNotADir=n'est pas un répertoire
     BarcodeDescDATAMATRIX=Codebarre de type Datamatrix
     BarcodeDescQRCODE=Codebarre de type QRcode
    -WithdrawalsSetup=Configuration du module Ordres de paiement de débit direct
     SendingsAbility=Fiches d'expédition de soutien pour les livraisons aux clients
    -NoNeedForDeliveryReceipts=Dans la plupart des cas, les feuilles d'expédition sont utilisées à la fois comme feuilles pour les livraisons clients (liste des produits à envoyer) et les feuilles reçues et signées par le client. Donc, les reçus des livraisons de produits sont une fonctionnalité en double et sont rarement activés.
     FCKeditorForMail=Création / édition WYSIWIG pour tous les courriers (sauf Outils-> eMailing)
     NotTopTreeMenuPersonalized=Menus personnalisés non liés à une entrée de menu supérieure
     ConfirmDeleteMenu=Êtes-vous sûr de vouloir supprimer l'entrée du menu <b>%s</b>?
    @@ -283,15 +210,9 @@ TaxSetup=Configuration du module Taxes, charges sociales et dividendes
     OptionVatMode=TPS/TVH due
     OptionVatDefaultDesc=TPS/TVH sur encaissement, l'exigibilité de la TPS/TVH est:<br>- sur livraison pour les biens (en pratique on utilise la date de facturation)<br>- sur paiement pour les services
     OptionVatDebitOptionDesc=TPS/TVH sur débit, l'exigibilité de la TPS/TVH est:<br>- sur livraison pour les biens (en pratique on utilise la date de facturation)<br>- sur facturation (débit) pour les services
    -SummaryOfVatExigibilityUsedByDefault=Moment d'exigibilité par défaut de la TPS/TVH pour l'option choisie:
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Réglez automatiquement cette valeur par défaut pour le type d'événement dans en événement de lors de la création »
    -AGENDA_DEFAULT_FILTER_TYPE=Régler automatiquement ce type d'événement dans le filtre de recherche de la vue agenda
    -AGENDA_DEFAULT_FILTER_STATUS=Régler automatiquement le statut d'événement dans le filtre de recherche de la vue agenda
     AGENDA_SHOW_LINKED_OBJECT=Afficher l'objet lié dans la vue d'agenda
     ClickToDialUrlDesc=Url appelle quand un clic sur le picto du téléphone est terminé. Dans l'URL, vous pouvez utiliser des tags sur <b> __ PHONETO __ </ b> qui sera remplacé par le numéro de téléphone de la personne à appeler <b> __ PHONEFROM __ </ b> qui sera remplacé par le numéro de téléphone de l'appel Personne (votre) <br> <b> __ LOGIN __ </ b> qui sera remplacé par login clicktodial (défini sur la carte utilisateur) <br> <b> __ PASS __ </ b> qui sera remplacé par le mot de passe clicktodial (défini sur l'utilisateur carte).
    -ClickToDialDesc=Ce module permet de faire des numéros de téléphone cliquable . Un clic sur cette icône fera appel à rendre votre téléphone pour appeler le numéro de téléphone . Cela peut être utilisé pour appeler un système de Dolibarr du centre d'appels qui peut appeler le numéro de téléphone sur un système SIP par exemple.
     ClickToDialUseTelLink=Utilisez juste un lien "tel: " sur les numéros de téléphone
    -ClickToDialUseTelLinkDesc=Utilisez cette méthode si vos utilisateurs ont un softphone ou une interface de logiciel installé sur un même ordinateur que le navigateur , et a appelé lorsque vous cliquez sur un lien dans votre navigateur qui commencent par "tel: " . Si vous avez besoin d'une solution de serveur complet (pas besoin d'installation locale du logiciel ) , vous devez définir ce "Non" et remplir champ suivant.
     EndPointIs=Les clients SOAP doivent envoyer leurs demandes au point d'extrémité Dolibarr disponible à l'URL
     ApiSetup=Configuration du module API
     ApiDesc=En activant ce module , Dolibarr devenir un serveur REST pour fournir des services Web divers .
    @@ -312,8 +233,6 @@ ShowFiscalYear=Afficher la période comptable
     SalariesSetup=Configuration du module salariés
     ListOfNotificationsPerUser=Liste des notifications par utilisateur *
     ListOfNotificationsPerUserOrContact=Liste des notifications par utilisateur * ou par contact **
    -GoOntoUserCardToAddMore=Allez sur l'onglet "Notifications" d'un utilisateur pour ajouter ou supprimer des notifications pour les utilisateurs
    -GoOntoContactCardToAddMore=Accédez à l'onglet "Notifications" d'un tiers pour ajouter ou supprimer des notifications de contacts / adresses
     ConfFileMustContainCustom=L'installation ou la construction d'un module externe à partir de l'application doit sauvegarder les fichiers du module dans le répertoire <strong>%s</strong>. Pour que ce répertoire soit traité par Dolibarr, vous devez configurer votre <strong> conf / conf.php </strong> pour ajouter les 2 lignes de directive: <br><strong> $ dolibarr_main_url_root_alt = '/ custom'; </strong><br><strong> $ dolibarr_main_document_root_alt = '%s / custom'; </strong>
     HighlightLinesOnMouseHover=Mettez en surbrillance les lignes de table lorsque déplacement de la souris passe au-dessus
     HighlightLinesColor=Mettez en surbrillance la couleur de la ligne lorsque la souris passe au-dessus (gardez vide pour ne pas mettre en évidence)
    @@ -328,15 +247,12 @@ BackgroundTableLineEvenColor=Couleur de fond même pour les lignes de table
     MinimumNoticePeriod=Période minimale de préavis  (Votre demande de congé doit être fait avant ce délai)
     NbAddedAutomatically=Nombre de jours ajoutés aux compteurs d'utilisateurs (automatiquement) chaque mois
     EnterAnyCode=Ce champ contient une référence pour identifier la ligne. Entrez une valeur de votre choix, mais sans caractères spéciaux.
    -UnicodeCurrency=Saisissez ici entre accolades , liste de nombre d'octets qui représentent le symbole monétaire . Pour exemple : pour $ , entrez [ 36 ] - pour le Brésil réel R $ [ 82,36 ] - pour € , entrez [ 8364 ]
     ColorFormat=La couleur RVB est en format HEX, par exemple: FF0000
     PositionIntoComboList=Position de la ligne dans les listes déroulantes
     SellTaxRate=Taxes de vente
     UrlTrackingDesc=Si le fournisseur ou le service de transport offrent une page ou un site Web pour vérifier l'état de votre expédition, vous pouvez entrer ici. Vous pouvez utiliser la touche {TrackID} dans les paramètres d'URL afin que le système sera remplacé par la valeur de l'utilisateur du numéro de suivi est entré dans la carte de l'expédition .
    -OpportunityPercent=Lorsque vous créez une opportunité , vous défini un montant estimatif de projet / plomb. Selon le statut des chances , ce montant peut être multiplier par ce taux pour évaluer le montant global toutes vos possibilités peuvent générer. La valeur est pour cent ( entre 0 et 100 ) .
     TemplateForElement=Ce gabarit est dédié à cet élément
     TypeOfTemplate=Type de thèmes
    -TemplateIsVisibleByOwnerOnly=Thème visible par propriétaire seulement
     FillFixTZOnlyIfRequired=Exemple: +2 (remplir seulement si le problème est connu)
     ExpectedChecksum=Somme attendue
     CurrentChecksum=Somme actuel
    @@ -346,10 +262,7 @@ ByDefaultInList=Afficher par défaut sur la liste vue
     TitleExampleForMajorRelease=Exemple de message que vous pouvez utiliser pour annoncer cette version majeure ( se sentir libre de l'utiliser sur vos sites web )
     TitleExampleForMaintenanceRelease=Exemple de message que vous pouvez utiliser pour annoncer cette version de maintenance ( se sentir libre de l'utiliser sur vos sites web )
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s est disponible. La version %s est une version majeure avec beaucoup de nouvelles fonctionnalités pour les utilisateurs et les développeurs. Vous pouvez le télécharger à partir de la zone de téléchargement du https://www.dolibarr.org portal (sous-répertoire Stable versions). Vous pouvez lire <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a> pour obtenir la liste complète des modifications.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s est disponible. La version %s est une version de maintenance, donc elle contient uniquement des corrections de bogues. Nous vous recommandons tout le monde en utilisant une ancienne version pour passer à celle-ci. Comme toute version de maintenance, aucune nouvelle fonctionnalité, ni changement de structure de données n'est présent dans cette version. Vous pouvez le télécharger à partir de la zone de téléchargement du https://www.dolibarr.org portal (sous-répertoire Stable versions). Vous pouvez lire <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a> pour obtenir la liste complète des modifications.
    -MultiPriceRuleDesc=Lorsque l'option " Plusieurs niveaux de prix par produit / service " est activée, vous pouvez définir des prix différents (un par niveau de prix ) pour chaque produit . Pour gagner du temps , vous pouvez entrer ici la règle pour avoir le prix pour chaque niveau autocalculated en fonction du prix du premier niveau , de sorte que vous devrez entrer seulement le prix pour le premier niveau sur chaque produit . Cette page est ici pour gagner du temps et peut être utile que si vos prix pour chaque leve sont liés à premier niveau . Vous pouvez ignorer cette page dans la plupart des cas .
     ModelModulesProduct=Modèles de documents produits
    -ToGenerateCodeDefineAutomaticRuleFirst=Pour être en mesure de générer automatiquement des codes , vous devez d'abord définir un gestionnaire à l'auto de définir le numéro de code à barres .
     SeeSubstitutionVars=Voir la note * pour la liste des variables de substitution possibles
     AddRemoveTabs=Ajouter ou supprimer des onglets
     AddBoxes=Ajouter des widgets
    @@ -364,17 +277,8 @@ AddOtherPagesOrServices=Ajouter d'autres pages ou services
     AddModels=Ajouter un document ou des modèles de numérotation
     AddSubstitutions=Ajouter des substitutions de clés
     DetectionNotPossible=La détection n'est pas possible
    -UrlToGetKeyToUseAPIs=Url pour obtenir un jeton pour utiliser l'API (une fois que le jeton a été reçu, il est enregistré sur la table des utilisateurs de la base de données et doit être fourni sur chaque appel d'API)
     ListOfAvailableAPIs=Liste des API disponibles
    -activateModuleDependNotSatisfied=Le module "%s" dépend du module "%s" qui manque, donc le module "%1$s" peut ne pas fonctionner correctement. Veuillez installer le module "%2$s" ou désactiver le module "%1$s" si vous souhaitez être à l'abri de toute surprise
    -CommandIsNotInsideAllowedCommands=La commande que vous essayez d'exécuter n'est pas dans la liste des commandes autorisées définies dans le paramètre <strong> $ dolibarr_main_restrict_os_commands </ strong> dans le fichier <strong> conf.php </ strong>.
     LandingPage=Page d'atterrissage
    -SamePriceAlsoForSharedCompanies=Si vous utilisez un module multicompanique, avec le choix "Prix unique", le prix sera également le même pour toutes les entreprises si les produits sont partagés entre les environnements
     ModuleEnabledAdminMustCheckRights=Le module a été activé. Les autorisations pour les modules activés ont été données uniquement aux utilisateurs administratifs. Vous devrez peut-être accorder des autorisations aux autres utilisateurs ou groupes manuellement si nécessaire.
    -UserHasNoPermissions=Cet utilisateur n'a pas d'autorisation définie
    -TypeCdr=Utilisez "Aucun" si la date du terme de paiement est la date de facture plus un delta en jours (delta est le champ "Nb de jours") <br> Utilisez "Fin de mois", si, après le delta, la date doit être augmentée Pour atteindre la fin du mois (+ un «décalage» optionnel en jours) <br> Utilisez "Current / Next" pour que la date de terme de paiement soit le premier Nième du mois (N est stocké dans le champ "Nb de jours")
     BaseCurrency=Monnaie de référence de la société (entrer dans la configuration de l'entreprise pour modifier cela)
    -WarningNoteModuleInvoiceForFrenchLaw=Ce module %s est conforme aux lois françaises (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=Ce module %s est conforme aux lois françaises (Loi Finance 2016) car le module Les journaux non réversibles est automatiquement activé.
    -WarningInstallationMayBecomeNotCompliantWithLaw=Vous essayez d'installer le module %s qui est un module externe. L'activation d'un module externe signifie que vous faites confiance à l'éditeur du module et que vous êtes sûr que ce module ne modifie pas négativement le comportement de votre application et est conforme aux lois de votre pays (%s). Si le module comporte une fonctionnalité non juridique, vous devenez responsable de l'utilisation d'un logiciel non juridique.
     UseSearchToSelectResource=Utilisez un formulaire de recherche pour choisir une ressource (plutôt qu'une liste déroulante).
    diff --git a/htdocs/langs/fr_CA/agenda.lang b/htdocs/langs/fr_CA/agenda.lang
    index 98f60f4c0c1..a485f8ab934 100644
    --- a/htdocs/langs/fr_CA/agenda.lang
    +++ b/htdocs/langs/fr_CA/agenda.lang
    @@ -14,7 +14,6 @@ ShipmentDeletedInDolibarr=Envoi %s supprimé
     OrderCreatedInDolibarr=L'ordre %s a été créé
     OrderDeliveredInDolibarr=Commande %s classée Délivrée
     ShippingSentByEMail=Bon expédition %s envoyé par EMail
    -InterventionSentByEMail=Intervention %s envoyée par EMail
     ProposalDeleted=Proposition supprimée
     AgendaModelModule=Modèles de document pour l'événement
     AgendaShowBirthdayEvents=Afficher les dates d'anniversaire des contacts
    diff --git a/htdocs/langs/fr_CA/banks.lang b/htdocs/langs/fr_CA/banks.lang
    index 86feb35c9f2..27d96e5a47b 100644
    --- a/htdocs/langs/fr_CA/banks.lang
    +++ b/htdocs/langs/fr_CA/banks.lang
    @@ -24,7 +24,6 @@ Reconciled=Réconcilié
     NotReconciled=Non réconcilié
     SocialContributionPayment=Règlement charge sociale
     MenuBankInternalTransfer=Transfert interne
    -TransferDesc=Transfert d'un compte à un autre, Dolibarr écrira deux enregistrements (un compte débiteur dans un compte source et un crédit dans un compte cible. Le même montant (sauf le signe), l'étiquette et la date seront utilisés pour cette transaction)
     ValidateCheckReceipt=Validez cette facture?
     ConfirmValidateCheckReceipt=Êtes-vous sûr de vouloir valider cette facture, aucun changement ne sera possible une fois que cela sera fait?
     DeleteCheckReceipt=Supprimer ce reçu de facturation?
    @@ -49,5 +48,4 @@ ConfirmRejectCheck=Êtes-vous sûr de vouloir marquer ce contrôle comme rejeté
     RejectCheckDate=Date à laquelle le chèque a été retourné
     CheckRejected=Chèque renvoyé
     CheckRejectedAndInvoicesReopened=Chèques retournés et factures rouvertes
    -DocumentModelSepaMandate=Modèle de mandat SEPA. Utile pour les pays européens en CEE seulement.
     DocumentModelBan=Modèle pour imprimer une page avec des informations BAN.
    diff --git a/htdocs/langs/fr_CA/companies.lang b/htdocs/langs/fr_CA/companies.lang
    index 6047b3d8f71..81c395172a7 100644
    --- a/htdocs/langs/fr_CA/companies.lang
    +++ b/htdocs/langs/fr_CA/companies.lang
    @@ -3,8 +3,6 @@ ConfirmDeleteCompany=Êtes-vous sûr de vouloir supprimer cette entreprise et to
     ConfirmDeleteContact=Êtes-vous sûr de vouloir supprimer ce contact et toutes les informations héritées?
     CreateThirdPartyAndContact=Créer un tiers + un contact enfant
     AliasNames=Nom de l'alias (commercial, marque, ... )
    -AliasNameShort=Nom de l'alias
    -ToCreateContactWithSameName=Créeront automatiquement un contact / adresse avec les mêmes informations que le tiers sous le tiers. Dans la plupart des cas, même si votre tiers est une personne physique, créer un tiers seul suffit.
     PostOrFunction=Poste
     State=États/Provinces
     StateShort=États
    @@ -18,7 +16,6 @@ LocalTax1IsUsed=Assujeti à la TVQ
     LocalTax2IsUsed=Assujeti à une troisième taxe
     ProfId6Short=TVQ
     ProfId6=TVQ
    -CompanyHasAbsoluteDiscount=Ce client dispose d'un rabais disponible (notes de crédits ou acomptes) pour <b> %s</b>%s
     CompanyHasNoAbsoluteDiscount=Ce client n'a pas ou plus de remise fixe disponible
     ContactId=ID de contact
     FromContactName=Prénom:
    @@ -26,20 +23,15 @@ ContactForOrdersOrShipments=Contact de commandes ou de livraison
     NoContactForAnyOrderOrShipments=Ce contact n'est contact d'aucune commande ou livraison
     StatusProspect1=Pour être contacté
     ChangeToContact=Changer l'état sur 'À contacter'
    -ExportDataset_company_1=Les tiers (Entreprises / fondations / personnes physiques) et les propriétés
    -ImportDataset_company_1=Les tiers (Entreprises / fondations / personnes physiques) et les propriétés
     AddAddress=Ajoutez l'adresse
     AllocateCommercial=Attribué au représentant des ventes
    -YouMustAssignUserMailFirst=Vous devez d'abord créer un email pour cet utilisateur afin d'y ajouter des notifications par courrier électronique.
     YouMustCreateContactFirst=Pour pouvoir ajouter des notifications par courrier électronique, vous devez d'abord définir des contacts avec des courriels valides pour le tiers
    -LastModifiedThirdParties=Dernier %s tiers modifiés
     InActivity=Ouverte
     ThirdPartyIsClosed=Le tiers est fermé
     ProductsIntoElements=Liste des produits/services en %s
     OutstandingBillReached=Max. Pour la facture exceptionnelle atteinte
     MergeOriginThirdparty=Dupliquer tiers (tiers que vous souhaitez supprimer)
     MergeThirdparties=Fusionner des tiers
    -ConfirmMergeThirdparties=Êtes-vous sûr de vouloir fusionner ce tiers avec le présent? Tous les objets liés (factures, commandes, ...) seront transférés vers un tiers actuel, puis la tierce partie sera supprimée.
     SaleRepresentativeLogin=Connexion du représentant des ventes
     SaleRepresentativeFirstname=Prénom du représentant des ventes
     SaleRepresentativeLastname=Nom de représentant commercial
    diff --git a/htdocs/langs/fr_CA/compta.lang b/htdocs/langs/fr_CA/compta.lang
    index 49ac7c03439..b7119dae022 100644
    --- a/htdocs/langs/fr_CA/compta.lang
    +++ b/htdocs/langs/fr_CA/compta.lang
    @@ -45,8 +45,6 @@ ConfirmDeleteSocialContribution=Êtes-vous sûr de vouloir supprimer cette charg
     ExportDataset_tax_1=Charges sociales et paiements
     CalcModeVATDebt=Mode <b>%sTPS/TVH sur débit%s</b>.
     CalcModeVATEngagement=Mode <b>%s TPS/TVH sur encaissement%s</b>.
    -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on actual payments made even if they are not yet accounted in Ledger.
    -SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even if they are not yet accounted in Ledger.
     RulesResultDue=- Il comprend les factures, les dépenses, la TVA, les dons, qu'ils soient payés ou non. Comprend également les salaires payés. <br> - Il est basé sur la date de validation des factures et la TVA et à la date d'échéance des dépenses. Pour les salaires définis avec le module Salaire, la date de valeur du paiement est utilisée.
     RulesResultInOut=- Il comprend les paiements réels effectués sur les factures, les dépenses, la TVA et les salaires. <br> - Il est basé sur les dates de paiement des factures, des dépenses, de la TVA et des salaires. La date de donation pour le don.
     RulesCADue=- Il comprend les factures exigibles du client, qu'elles soient payées ou non. <br> - Il est basé sur la date de validation de ces factures.<br>
    diff --git a/htdocs/langs/fr_CA/errors.lang b/htdocs/langs/fr_CA/errors.lang
    index 4edfcb3a650..3ba8a944739 100644
    --- a/htdocs/langs/fr_CA/errors.lang
    +++ b/htdocs/langs/fr_CA/errors.lang
    @@ -32,7 +32,6 @@ ErrorBadDateFormat=La valeur '%s' a un mauvais format de date
     ErrorWrongDate=La date n'est pas correcte!
     ErrorFailedToWriteInDir=Erreur d'écriture dans le répertoire %s
     ErrorFoundBadEmailInFile=Trouver une syntaxe de courrier électronique incorrecte pour les lignes %s dans le fichier (ligne d'exemple %s avec email = %s)
    -ErrorUserCannotBeDelete=L'utilisateur ne peut pas être supprimé. Peut-être qu'il soit associé à des entités Dolibarr.
     ErrorFieldsRequired=Certains champs obligatoires n'ont pas été remplis.
     ErrorSubjectIsRequired=Le sujet du courrier électronique est requis
     ErrorFailedToCreateDir=Impossible de créer un répertoire. Vérifiez que l'utilisateur du serveur Web a la permission d'écrire dans le répertoire de documents Dolibarr. Si le paramètre <b> safe_mode </ b> est activé sur ce PHP, vérifiez que les fichiers Dolibarr php appartiennent à l'utilisateur du serveur Web (ou au groupe).
    @@ -54,18 +53,12 @@ ErrorNoValueForSelectType=Remplissez la valeur pour sélectionner la liste
     ErrorNoValueForCheckBoxType=Veuillez remplir la valeur pour la liste des cases à cocher
     ErrorNoValueForRadioType=Remplissez la valeur pour la liste radio
     ErrorBadFormatValueList=La valeur de la liste ne peut pas contenir plus d'une virgule: <u>%s</u>, mais nécessite au moins une: clé, valeur
    -ErrorFieldCanNotContainSpecialCharacters=Le champ <b>%s</b> ne doit pas contenir de caractères spéciaux.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Le champ <b>%s</b> ne doit pas contenir de caractères spéciaux, ni les caractères majuscules et ne peut contenir que des nombres.
     ErrorExportDuplicateProfil=Ce nom de profil existe déjà pour ce jeu d'exportation.
     ErrorLDAPSetupNotComplete=La correspondance Dolibarr-LDAP n'est pas complète.
     ErrorLDAPMakeManualTest=Un fichier .ldif a été généré dans le répertoire %s. Essayez de le charger manuellement à partir de la ligne de commande pour avoir plus d'informations sur les erreurs.
    -ErrorCantSaveADoneUserWithZeroPercentage=Impossible d'enregistrer une action avec "statut non démarré" si le champ "fait par" est également rempli.
     ErrorRefAlreadyExists=La référence utilisée pour la création existe déjà.
    -ErrorRecordHasChildren=Impossible de supprimer l'enregistrement puisqu'il a des enfants.
    -ErrorRecordIsUsedCantDelete=Impossible de supprimer l'enregistrement. Il est déjà utilisé ou inclus dans un autre objet.
     ErrorModuleRequireJavascript=Javascript ne doit pas être désactivé pour que cette fonction fonctionne. Pour activer / désactiver Javascript, accédez au menu Accueil-> Configuration-> Affichage.
     ErrorPasswordsMustMatch=Les deux mots de passe dactylographiés doivent correspondre les uns aux autres
    -ErrorContactEMail=Une erreur technique s'est produite. Veuillez contacter l'administrateur pour suivre le courrier électronique <b>%s</b> en fournir le code d'erreur <b>%s</b>dans votre message, ou encore mieux en ajoutant une copie d'écran de cette page.
     ErrorWrongValueForField=Valeur incorrecte pour le numéro de champ <b>%s</b> (valeur '<b>%s</b>' ne correspond pas à la règle regex <b>%s</b>)
     ErrorFieldValueNotIn=Valeur incorrecte pour le numéro de champ <b>%s</b> (valeur '<b>%s</b>' n'est pas une valeur disponible dans le champ <b>%s</b> de la table <b> %s</b> )
     ErrorFieldRefNotIn=Valeur incorrecte pour le numéro de champ <b>%s</b> (valeur '<b> %s</b>' n'est pas un <b>%s</b> référence existante)
    @@ -76,7 +69,6 @@ ErrorModuleSetupNotComplete=La configuration du module semble être inachevée.
     ErrorBadMaskBadRazMonth=Erreur, mauvaise valeur de réinitialisation
     ErrorMaxNumberReachForThisMask=Nombre maxi pour ce masque
     ErrorCounterMustHaveMoreThan3Digits=Le compteur doit avoir plus de 3 chiffres
    -ErrorDeleteNotPossibleLineIsConsolidated=L'effacement n'est pas possible car l'enregistrement est lié à une transition bancaire conciliée
     ErrorProdIdAlreadyExist=%s est affecté à un autre tiers
     ErrorFailedToLoadRSSFile=Impossible d'obtenir un flux RSS. Essayez d'ajouter constante MAIN_SIMPLEXMLLOAD_DEBUG si les messages d'erreur ne fournissent pas suffisamment d'informations.
     ErrorForbidden=Accès refusé. <br> Vous essayez d'accéder à une page, zone ou fonctionnalité d'un module désactivé ou sans être dans une session authentifiée ou non autorisée pour votre utilisateur.
    @@ -114,14 +106,12 @@ ErrorBadFormat=Mauvais format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Erreur, ce membre n'est pas encore lié à un tiers. Associez le membre à un tiers existant ou créez un nouveau tiers avant de créer une souscription avec facture.
     ErrorThereIsSomeDeliveries=Une erreur, des livraisons sont liées à cette expédition. La suppression a été refusée.
     ErrorCantDeletePaymentReconciliated=Impossible de supprimer un paiement qui a généré une entrée bancaire qui a été réconciliée
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Impossible de supprimer un paiement partagé par au moins une facture avec le statut Payé
     ErrorPriceExpression1=Impossible d'assigner à la constante '%s'
     ErrorPriceExpression2=Impossible de redéfinir la fonction intégrée '%s'
     ErrorPriceExpression3=Variable non définie '%s' en définition de fonction
     ErrorPriceExpression5=Inattendue '%s'
     ErrorPriceExpression6=Mauvais nombre d'arguments (%s donné, %s prévu)
     ErrorPriceExpression8=Opérateur inattendu '%s'
    -ErrorPriceExpression10=Iperator '%s' manque d'opérande
     ErrorPriceExpression11=En attendant '%s'
     ErrorPriceExpression17=Variable non définie '%s'
     ErrorPriceExpression19=Expression non trouvée
    @@ -134,10 +124,8 @@ ErrorGlobalVariableUpdater3=Les données demandées n'ont pas été trouvées en
     ErrorGlobalVariableUpdater5=Aucune variable globale sélectionnée
     ErrorFieldMustBeANumeric=Le champ <b>%s</b> doit être une valeur numérique
     ErrorMandatoryParametersNotProvided=Paramètre (s) obligatoire (s) non fourni
    -ErrorOppStatusRequiredIfAmount=Vous avez fixé un montant estimé pour cette opportunité / chef de file. Vous devez donc entrer son statut
     ErrorFailedToLoadModuleDescriptorForXXX=Impossible de charger la classe descripteur du module pour %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Définition incorrecte de la matrice de menus dans le descripteur de module (mauvaise valeur pour la clé fk_menu)
    -ErrorSavingChanges=Une erreur s'est produite lors de l'enregistrement des modifications
     ErrorWarehouseRequiredIntoShipmentLine=Un entrepôt est requis sur la ligne à expédier
     ErrorFileMustHaveFormat=Le fichier doit avoir un format %s
     ErrorsThirdpartyMerge=Impossible de fusionner les deux enregistrements. Demande annulée.
    @@ -167,9 +155,7 @@ WarningBookmarkAlreadyExists=Un marque-page avec ce titre ou cette cible (URL) e
     WarningPassIsEmpty=Attention, le mot de passe de la base de données est vide. C'est un trou de sécurité. Vous devez ajouter un mot de passe à votre base de données et modifier votre fichier conf.php pour refléter cela.
     WarningConfFileMustBeReadOnly=Avertissement, votre fichier de configuration (<b> htdocs / conf / conf.php </ b>) peut être écrasé par le serveur Web. C'est un trou de sécurité sérieux. Modifiez les autorisations sur le fichier pour être en mode lecture seule pour l'utilisateur du système d'exploitation utilisé par le serveur Web. Si vous utilisez le format Windows et FAT pour votre disque, vous devez savoir que ce système de fichiers ne permet pas d'ajouter des autorisations au fichier, donc ne peut pas être complètement sécurisé.
     WarningsOnXLines=Avertissements sur <b>%s</b> enregistrement source (s)
    -WarningNoDocumentModelActivated=Aucun modèle, pour la génération de document, n'a été activé. Un modèle sera choisi par défaut jusqu'à ce que vous vérifiez la configuration de votre module.
     WarningLockFileDoesNotExists=Attention, une fois la configuration terminée, vous devez désactiver l'installation / la migration des outils en ajoutant un fichier <b> install.lock</b> dans le répertoire <b> %s</b>. Le fait de manquer ce fichier est un trou de sécurité.
    -WarningUntilDirRemoved=Tous les avertissements de sécurité (visibles uniquement par les utilisateurs d'administration) resteront actifs tant que la vulnérabilité est présente (ou que constante MAIN_REMOVE_INSTALL_WARNING est ajoutée dans Configuration-> Autre configuration).
     WarningCloseAlways=Avertissement, la fermeture se fait même si le montant diffère entre les éléments source et cible. Activez cette fonctionnalité avec prudence.
     WarningUsingThisBoxSlowDown=Avertissement, l'utilisation de cette boîte ralentit sérieusement toutes les pages montrant la boîte.
     WarningClickToDialUserSetupNotComplete=L'installation des informations ClickToDial pour votre utilisateur n'est pas complète (voir l'onglet ClickToDial sur votre carte utilisateur).
    diff --git a/htdocs/langs/fr_CA/exports.lang b/htdocs/langs/fr_CA/exports.lang
    index d1b114f8f3d..33f87265ee6 100644
    --- a/htdocs/langs/fr_CA/exports.lang
    +++ b/htdocs/langs/fr_CA/exports.lang
    @@ -1,9 +1,7 @@
     # Dolibarr language file - Source file is en_US - exports
    -ExportsArea=Zone d'exportation
     ImportArea=Zone d'importation
     NewExport=Nouvelle exportation
     NewImport=Nouvelle importation
    -ExportableDatas=Ensemble de données exportables
     ImportableDatas=Ensemble de données Importable
     SelectExportDataSet=Choisissez l'ensemble de données que vous souhaitez exporter ...
     SelectImportDataSet=Choisissez l'ensemble de données que vous souhaitez importer ...
    @@ -34,7 +32,6 @@ FormatedExportDesc3=Lorsque les données à exporter sont sélectionnées, vous
     Sheet=Drap
     NoImportableData=Aucune donnée importable (aucun module avec des définitions permettant d'importer des données)
     SQLUsedForExport=Requête SQL utilisée pour créer un fichier d'exportation
    -LineId=Id de ligne
     LineLabel=Étiquette de ligne
     LineDescription=Description de la ligne
     LineUnitPrice=Prix ​​unitaire de la ligne
    diff --git a/htdocs/langs/fr_CA/help.lang b/htdocs/langs/fr_CA/help.lang
    index 99eb4ab0d71..9c18c5031d5 100644
    --- a/htdocs/langs/fr_CA/help.lang
    +++ b/htdocs/langs/fr_CA/help.lang
    @@ -13,9 +13,6 @@ NeedHelpCenter=Besoin d'aide ou de soutien?
     TypeHelpOnly=Aide seulement
     TypeHelpDev=Aide + Développement
     TypeHelpDevForm=Aide + Développement + Formation
    -ToGetHelpGoOnSparkAngels1=Certaines entreprises peuvent fournir un soutien en ligne rapide (parfois immédiat) et plus efficace en prenant le contrôle de votre ordinateur. Ces assistants peuvent être trouvés sur le site Web <b>%s</b>:
    -ToGetHelpGoOnSparkAngels3=Vous pouvez également consulter la liste de tous les entraîneurs disponibles pour Dolibarr, pour ce clic sur le bouton
    -ToGetHelpGoOnSparkAngels2=Parfois, il n'y a pas d'entreprise disponible au moment où vous faites votre recherche, alors pensez à changer le filtre pour rechercher "toutes les disponibilités". Vous pourrez envoyer plus de demandes.
     BackToHelpCenter=Sinon, cliquez ici pour aller <a href="%s"> retour à la page d'accueil du Centre d'aide </a>.
     LinkToGoldMember=Vous pouvez appeler l'un des entraîneurs présélectionnés par Dolibarr pour votre langue (%s) en cliquant sur son Widget (l'état et le prix maximum sont automatiquement mis à jour):
     PossibleLanguages=Langues prises en charge
    diff --git a/htdocs/langs/fr_CA/interventions.lang b/htdocs/langs/fr_CA/interventions.lang
    index e659b59bde5..38f5120a2de 100644
    --- a/htdocs/langs/fr_CA/interventions.lang
    +++ b/htdocs/langs/fr_CA/interventions.lang
    @@ -34,8 +34,6 @@ TypeContact_fichinter_external_CUSTOMER=Suivi du contact client
     PrintProductsOnFichinter=Imprimez également les lignes de type "produit" (non seulement les services) sur la carte d'intervention
     PrintProductsOnFichinterDetails=Interventions générées à partir des commandes
     UseServicesDurationOnFichinter=Utiliser la durée des services pour les interventions générées à partir des commandes
    -NbOfinterventions=Nb de cartes d'intervention
    -NumberOfInterventionsByMonth=Nb de cartes d'intervention par mois (date de validation)
     InterId=ID d'intervention
     InterRef=Intervention réf.
     InterDateCreation=Intervention de création de date
    diff --git a/htdocs/langs/fr_CA/main.lang b/htdocs/langs/fr_CA/main.lang
    index 25d94a95349..c7466f9df38 100644
    --- a/htdocs/langs/fr_CA/main.lang
    +++ b/htdocs/langs/fr_CA/main.lang
    @@ -23,7 +23,6 @@ DatabaseConnection=Connexion à la base de donnée
     ErrorCanNotCreateDir=Impossible de créer le dir %s
     ErrorCanNotReadDir=Impossible de lire le dir %s
     ErrorNoSocialContributionForSellerCountry=Erreur, aucun type de charges défini pour le pays '%s'.
    -ErrorCannotAddThisParentWarehouse=Vous essayez d'ajouter un entrepôt parent qui est déjà un enfant de l'actuel
     NotAuthorized=Vous n'êtes pas autorisé à le faire.
     SeeHere=Regardez ici
     ClickHere=Cliquez ici
    @@ -40,7 +39,6 @@ NotClosed=Pas fermé
     RemoveLink=Supprimer lien
     AddToDraft=Ajouter au projet
     CloseBox=Supprimer le widget de votre tableau de bord
    -ConfirmSendCardByMail=Voulez-vous vraiment envoyer le contenu de cette carte par mail à <b>%s</b>?
     Resiliate=Mettre fin
     NotValidated=Pas validé
     NoteSomeFeaturesAreDisabled=Attention, seules quelques modules/fonctionnalités ont été activés dans cette démo.
    @@ -56,7 +54,6 @@ UserCreationShort=Util. création
     UserModificationShort=Util. modification
     CurrencyRate=Taux de conversion monétaire
     UseLocalTax=Inclure taxe
    -DefaultValues=Les valeurs par défaut
     UnitPriceHT=Prix unitaire (no tax.)
     UnitPriceTTC=Prix unitaire tx incl.
     PriceUHT=Prix
    @@ -67,7 +64,6 @@ AmountTTCShort=Montant (tx incl.)
     AmountHT=Montant (no tax.)
     AmountTTC=Montant (tx incl.)
     AmountVAT=Montant TPS/TVH
    -MulticurrencyAlreadyPaid=Déjà payé, monnaie d'origine
     MulticurrencyRemainderToPay=Reste à payer, monnaie d'origine
     MulticurrencyAmountHT=Montant (net d'impôt), monnaie d'origine
     MulticurrencyAmountTTC=Montant (hors taxe), monnaie d'origine
    @@ -91,11 +87,8 @@ VATRate=Taux TPS/TVH
     Module=Module / Application
     Modules=Modules / Applications
     FilterOnInto=Critères de recherche '<strong>%s</strong>' dans les champs %s
    -DolibarrStateBoard=Statistiques de base de données
    -DolibarrWorkBoard=Ouvrir le tableau de bord des éléments
     Approved=Approuver
     Opened=Ouverte
    -LateDesc=Retard pour définir si un enregistrement est en retard ou non dépend de votre configuration. Demandez à votre administrateur de modifier le délai du menu Accueil - Configuration - Alertes.
     DeletePicture=Supprimer image
     ConfirmDeletePicture=Etes-vous sur de vouloir supprimer cette image ?
     EnterLoginDetail=Entrez les détails de connexion
    @@ -113,7 +106,6 @@ RecordsDeleted=%s enregistrement(s) supprimé(s)
     CompleteOrNoMoreReceptionExpected=Complète ou rien de plus attendu
     YouCanChangeValuesForThisListFromDictionarySetup=Vous pouvez modifier les valeurs de cette liste dans le menu Configuration - Dictionnaires
     YouCanChangeValuesForThisListFrom=Vous pouvez modifier les valeurs de cette liste dans le menu %s
    -YouCanSetDefaultValueInModuleSetup=Vous pouvez configurer la valeur par défaut utilisée lors de la création d'un nouvel enregistrement dans la configuration du module
     MenuAccountancy=Compte
     Layout=Disposition
     Screen=Écran
    @@ -128,7 +120,6 @@ ShowTransaction=Afficher l'entrée sur le compte bancaire
     DeleteLine=Suppression de ligne
     ConfirmDeleteLine=Êtes-vous sûr de vouloir supprimer cette ligne?
     NoPDFAvailableForDocGenAmongChecked=Aucun document PDF n'était disponible pour la génération du document parmi les enregistrements vérifiés
    -TooManyRecordForMassAction=Trop d'enregistrement sélectionné pour une action de masse. L'action est limitée à une liste de %s enregistrement.
     NoRecordSelected=Aucun enregistrement sélectionné
     MassFilesArea=Domaine pour les fichiers construits par des actions de masse
     ShowTempMassFilesArea=Afficher la zone des fichiers construits par des actions de masse
    @@ -139,7 +130,6 @@ ExportList=Liste des exportations
     GroupBy=Par groupe...
     ViewFlatList=Afficher la liste forfaitaire
     RemoveString=Supprimer la chaîne '%s'
    -SomeTranslationAreUncomplete=Certaines langues peuvent être partiellement traduites ou peuvent contenir des erreurs. Si vous détectez certains, vous pouvez réparer les fichiers de langue se connectant à <a href="https://transifex.com/projects/p/dolibarr/" target="_blank"> https://transifex.com/projects/p/ Dolibarr / </a>.
     Download=Télécharger
     ActualizeCurrency=Mettre à jour le taux de change
     Fiscalyear=Année fiscale
    @@ -150,7 +140,6 @@ ExpenseReports=Note de frais
     HR=HEURE
     HRAndBank=RH et Banque
     TitleSetToDraft=Retourner au brouillon
    -ConfirmSetToDraft=Êtes-vous sûr de vouloir revenir à l'état du projet?
     Rights=Droits
     SetRef=Ref.
     Select2ResultFoundUseArrows=Certains résultats ont été trouvés. Utilisez les flèches pour sélectionner.
    @@ -165,5 +154,4 @@ SearchIntoTasks=les tâches
     SearchIntoCustomerProposals=Propositions de clients
     SearchIntoCustomerShipments=Envois clients
     SearchIntoExpenseReports=Note de frais
    -SearchIntoLeaves=Feuilles
     AssignedTo=Affecté à
    diff --git a/htdocs/langs/fr_CA/members.lang b/htdocs/langs/fr_CA/members.lang
    index 51d1c0a17c4..59416044d4b 100644
    --- a/htdocs/langs/fr_CA/members.lang
    +++ b/htdocs/langs/fr_CA/members.lang
    @@ -138,5 +138,4 @@ MembersByNature=Cet écran vous montre des statistiques sur les membres par natu
     MembersByRegion=Cet écran vous montre des statistiques sur les membres par région.
     VATToUseForSubscriptions=Taux de TVA à utiliser pour les abonnements
     NoVatOnSubscription=Pas de TVA pour les abonnements
    -MEMBER_PAYONLINE_SENDEMAIL=Courrier électronique à utiliser pour l'alerte par courrier électronique lorsque Dolibarr reçoit une confirmation d'un paiement validé pour un abonnement (Exemple: paymentdone@example.com)
     ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Produit utilisé pour la ligne d'abonnement en facture: %s
    diff --git a/htdocs/langs/fr_CA/multicurrency.lang b/htdocs/langs/fr_CA/multicurrency.lang
    index 19d1191fe08..054df9a4203 100644
    --- a/htdocs/langs/fr_CA/multicurrency.lang
    +++ b/htdocs/langs/fr_CA/multicurrency.lang
    @@ -2,7 +2,6 @@
     ErrorAddRateFail=Erreur dans le taux ajouté
     ErrorAddCurrencyFail=Erreur dans la monnaie ajoutée
     ErrorDeleteCurrencyFail=Erreur de suppression d'échec
    -multicurrency_syncronize_error=Erreur de synchronisation: %s
     multicurrency_appCurrencySource=Source de devises
     CurrenciesUsed_help_to_add=Ajoutez les différentes devises et taux que vous devez utiliser sur <b> propositions</b>, <b> commandes </b>, etc.
     MulticurrencyReceived=Reçu, monnaie d'origine
    diff --git a/htdocs/langs/fr_CA/other.lang b/htdocs/langs/fr_CA/other.lang
    index b4d27a0a27a..13d212f5189 100644
    --- a/htdocs/langs/fr_CA/other.lang
    +++ b/htdocs/langs/fr_CA/other.lang
    @@ -10,9 +10,6 @@ ZipFileGeneratedInto=Fichier Zip généré dans <b>%s</b>.
     MessageOK=Message sur la page de retour de paiement validée
     MessageKO=Message sur la page de retour de paiement annulée
     PreviousYearOfInvoice=Année de facture précédente
    -Notify_FICHINTER_ADD_CONTACT=Ajout de contact à Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validée
    -Notify_FICHINTER_SENTBYMAIL=Intervention envoyée par courrier
     Notify_ORDER_VALIDATE=Ordre client validé
     Notify_ORDER_SENTBYMAIL=Commande client envoyée par courrier électronique
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Commande du fournisseur envoyée par courrier
    @@ -20,23 +17,21 @@ Notify_ORDER_SUPPLIER_VALIDATE=Ordre du fournisseur enregistré
     Notify_ORDER_SUPPLIER_APPROVE=Ordre du fournisseur approuvé
     Notify_ORDER_SUPPLIER_REFUSE=Ordre du fournisseur refusé
     Notify_PROPAL_VALIDATE=Proposition client validée
    -Notify_PROPAL_CLOSE_SIGNED=Client propal fermé signé
    -Notify_PROPAL_CLOSE_REFUSED=Client propal fermé refusé
     Notify_PROPAL_SENTBYMAIL=Proposition commerciale envoyée par courrier
     Notify_WITHDRAW_TRANSMIT=Retrait de la transmission
     Notify_WITHDRAW_CREDIT=Retrait de crédit
     Notify_WITHDRAW_EMIT=Effectuer le retrait
     Notify_COMPANY_SENTBYMAIL=Les envois envoyés par une carte tierce
     Notify_BILL_UNVALIDATE=Facture du client non valide
    -Notify_BILL_PAYED=Facture du client payée
     Notify_BILL_CANCEL=Facture du client annulée
     Notify_BILL_SENTBYMAIL=Facture du client envoyée par courrier
     Notify_BILL_SUPPLIER_VALIDATE=Facture du fournisseur validée
    -Notify_BILL_SUPPLIER_PAYED=Facture du fournisseur payée
     Notify_BILL_SUPPLIER_SENTBYMAIL=Facture du fournisseur envoyée par courrier
     Notify_BILL_SUPPLIER_CANCELED=Facture du fournisseur annulée
     Notify_CONTRACT_VALIDATE=Contrat validé
     Notify_FICHEINTER_VALIDATE=Intervention validée
    +Notify_FICHINTER_ADD_CONTACT=Ajout de contact à Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention envoyée par courrier
     Notify_SHIPPING_VALIDATE=Expédition validée
     Notify_SHIPPING_SENTBYMAIL=Expédition envoyée par mail
     Notify_MEMBER_VALIDATE=Membre validé
    @@ -47,7 +42,6 @@ Notify_MEMBER_DELETE=Membre supprimé
     NbOfAttachedFiles=Nombre de fichiers / documents attachés
     TotalSizeOfAttachedFiles=Taille totale des fichiers / documents attachés
     AttachANewFile=Joindre un nouveau fichier / document
    -NbOfActiveNotifications=Nombre de notifications (nb des emails du destinataire)
     DemoDesc=Dolibarr est un ERP / CRM compact prenant en charge plusieurs modules métier. Une démonstration montrant tous les modules n'a aucun sens car ce scénario ne se produit jamais (plusieurs centaines disponibles). Ainsi, plusieurs profils de démonstration sont disponibles.
     ChooseYourDemoProfil=Choisissez le profil de démonstration qui correspond le mieux à vos besoins ...
     ChooseYourDemoProfilMore=... ou créez votre propre profil <br> (sélection du module manuel)
    @@ -99,7 +93,6 @@ EnableGDLibraryDesc=Installez ou activez la bibliothèque GD sur votre installat
     ProfIdShortDesc=<b>Prof ID%s</b> est une information en fonction d'un pays tiers. <br> Par exemple, pour le pays <b>%s</b>, c'est le code<b>%s</b>.
     DolibarrDemo=Démo Dolibarr ERP / CRM
     StatsByNumberOfUnits=Statistiques pour la somme des produits / services
    -StatsByNumberOfEntities=Statistiques en nombre d'entités référantes (nb de facture, ou commande ...)
     NumberOfProposals=Nombre de propositions
     NumberOfCustomerInvoices=Nombre de factures des clients
     NumberOfSupplierProposals=Nombre de propositions de fournisseurs
    @@ -110,7 +103,6 @@ NumberOfUnitsCustomerInvoices=Nombre d'unités sur les factures des clients
     NumberOfUnitsSupplierProposals=Nombre d'unités sur les propositions des fournisseurs
     NumberOfUnitsSupplierOrders=Nombre d'unités sur commandes fournisseurs
     NumberOfUnitsSupplierInvoices=Nombre d'unités sur les factures des fournisseurs
    -EMailTextInterventionAddedContact=Une nouvelle intervention %s vous a été assignée.
     EMailTextInterventionValidated=L'intervention %s a été validée.
     EMailTextInvoiceValidated=La facture %s a été validée.
     EMailTextProposalValidated=Le projet %s a été validé.
    @@ -122,7 +114,6 @@ ImportedWithSet=Ensemble de données sur l'importation
     ResizeDesc=Entrez une nouvelle largeur <b> OU </ b> nouvelle hauteur. Le ratio sera maintenu pendant le redimensionnement ...
     NewSizeAfterCropping=Nouvelle taille après la culture
     DefineNewAreaToPick=Définir une nouvelle zone sur l'image à choisir (clic gauche sur l'image, puis faites glisser jusqu'à ce que vous atteigniez le coin opposé)
    -CurrentInformationOnImage=Cet outil a été conçu pour vous aider à redimensionner ou à recadrer une image. Il s'agit d'informations sur l'image éditée en cours
     YouReceiveMailBecauseOfNotification=Vous recevez ce message car votre courriel a été ajouté à la liste des cibles pour être informé des événements particuliers dans le logiciel %s de %s.
     YouReceiveMailBecauseOfNotification2=Cet événement est le suivant:
     ThisIsListOfModules=Il s'agit d'une liste de modules présélectionnés par ce profil de démonstration (seuls les modules les plus courants sont visibles dans cette démo). Modifiez ceci pour avoir une démo plus personnalisée et cliquez sur "Démarrer".
    diff --git a/htdocs/langs/fr_CA/products.lang b/htdocs/langs/fr_CA/products.lang
    index b12ccf56bf2..e9cba99c00d 100644
    --- a/htdocs/langs/fr_CA/products.lang
    +++ b/htdocs/langs/fr_CA/products.lang
    @@ -48,7 +48,6 @@ SoldAmount=Montant vendu
     PurchasedAmount=Montant acheté
     MinPrice=Min. prix de vente
     CantBeLessThanMinPrice=Le prix de vente ne peut être inférieur au minimum autorisé pour ce produit (%s sans taxes). Ce message peut également apparaître si vous tapez une remise trop importante.
    -ContractStatusClosed=Fermées
     ErrorProductBadRefOrLabel=Valeur incorrecte pour référence ou étiquette.
     ErrorProductClone=Il y a eu un problème en essayant de cloner le produit ou le service.
     SupplierRef=Produit ref.
    @@ -103,7 +102,6 @@ ListProductServiceByPopularity=Liste des produits / services par popularité
     Finished=Produit fabriqué
     CloneProduct=Clone produit ou service
     ConfirmCloneProduct=Êtes-vous sûr de vouloir cloner un produit ou un service <b>%s</b>?
    -CloneContentProduct=Cloner toutes les informations principales du produit / service
     CloneCompositionProduct=Produit / service emballé par clone
     CloneCombinationsProduct=Variantes de produit de clonage
     NewRefForClone=Réf. De nouveau produit / service
    diff --git a/htdocs/langs/fr_CA/projects.lang b/htdocs/langs/fr_CA/projects.lang
    index 803c80994c3..446c31cf269 100644
    --- a/htdocs/langs/fr_CA/projects.lang
    +++ b/htdocs/langs/fr_CA/projects.lang
    @@ -22,12 +22,9 @@ AddProject=Créer un projet
     ConfirmDeleteAProject=Êtes-vous sûr de vouloir supprimer ce projet?
     ConfirmDeleteATask=Êtes-vous sûr de vouloir supprimer cette tâche?
     OpenedTasks=Ouvrir des tâches
    -OpportunitiesStatusForOpenedProjects=Opportunités nombre de projets ouverts par statut
    -OpportunitiesStatusForProjects=Opportunités montant des projets par statut
     ShowProject=Afficher le projet
     SetProject=Définir le projet
     NoProject=Aucun projet défini ou détenu
    -NbOfProjects=Nb de projets
     TimeSpent=Temps passé
     TimeSpentByYou=Temps passé par vous
     TimeSpentByUser=Temps passé par l'utilisateur
    @@ -47,10 +44,6 @@ MyActivities=Mes tâches / activités
     MyProjectsArea=Zone de mes projets
     ProgressDeclared=Progrès déclaré
     ListOfTasks=Liste des tâches
    -ListInvoicesAssociatedProject=Liste des factures de clients associées au projet
    -ListPredefinedInvoicesAssociatedProject=Liste des factures de modèles de clients associées au projet
    -ListShippingAssociatedProject=Liste des envois associés au projet
    -ListExpenseReportsAssociatedProject=Liste des rapports de dépenses associés au projet
     ListTaskTimeUserProject=Liste des temps consacrés aux tâches du projet
     ActivityOnProjectToday=Activité sur le projet aujourd'hui
     ActivityOnProjectYesterday=Activité sur projet hier
    @@ -79,7 +72,7 @@ LinkedToAnotherCompany=Lié à d'autres tiers
     TaskIsNotAssignedToUser=Tâche non assignée à l'utilisateur. Utilisez le bouton '<strong>%s</strong>' pour attribuer la tâche maintenant.
     ErrorTimeSpentIsEmpty=Le temps passé est vide
     ThisWillAlsoRemoveTasks=Cette action supprimera également toutes les tâches du projet (<b>%s</b> tâches en ce moment) et toutes les entrées du temps passé.
    -IfNeedToUseOhterObjectKeepEmpty=Si certains objets (facture, commande, ...), appartenant à un autre tiers, doivent être liés au projet à créer, conservez ce vide pour que le projet soit multi tiers.
    +IfNeedToUseOtherObjectKeepEmpty=Si certains objets (facture, commande, ...), appartenant à un autre tiers, doivent être liés au projet à créer, conservez ce vide pour que le projet soit multi tiers.
     CloneProject=Projet Clone
     CloneTasks=Tâches de clonage
     CloneProjectFiles=Le projet Clone a joint les fichiers
    @@ -89,10 +82,8 @@ ConfirmCloneProject=Êtes-vous sûr de cloner ce projet?
     ProjectReportDate=Modifier les dates des tâches en fonction de la nouvelle date de début du projet
     ErrorShiftTaskDate=Impossible de modifier la date de la tâche selon la nouvelle date de début du projet
     TaskDeletedInDolibarr=Tâche %s supprimé
    -OpportunityStatus=Statut d'opportunité
     OpportunityStatusShort=Opp. statut
     OpportunityProbabilityShort=Opp. Probab.
    -OpportunityAmount=Montant de l'opportunité
     OpportunityAmountShort=Opp. montant
     OpportunityAmountAverageShort=Moyenne Opp. montant
     OpportunityAmountWeigthedShort=Opp pondéré. montant
    @@ -105,8 +96,6 @@ TypeContact_project_task_internal_TASKCONTRIBUTOR=Donateur
     TypeContact_project_task_external_TASKCONTRIBUTOR=Donateur
     SelectElement=Sélectionnez l'élément
     AddElement=Lien vers l'élément
    -DocumentModelBeluga=Modèle de projet pour l'aperçu des objets liés
    -DocumentModelBaleine=Modèle de rapport de projet pour les tâches
     PlannedWorkload=Charge de travail planifiée
     ProjectReferers=Articles connexes
     ProjectMustBeValidatedFirst=Le projet doit d'abord être validé
    @@ -122,19 +111,12 @@ AssignTaskToUser=Affectez une tâche à %s
     SelectTaskToAssign=Sélectionnez la tâche à affecter ...
     AssignTask=Attribuer
     ProjectOverview=Aperçu
    -ManageTasks=Utiliser des projets pour suivre les tâches et le temps
     ManageOpportunitiesStatus=Utiliser des projets pour suivre les pistes / opportunités
    -ProjectOppAmountOfProjectsByMonth=Nombre de possibilités par mois
    -ProjectOpenedProjectByOppStatus=Projet ouvert / chef d'entreprise selon le statut d'opportunité
     ProjectsStatistics=Statistiques sur les projets / prospects
     TasksStatistics=Statistiques sur les tâches de projet / chef de file
     TaskAssignedToEnterTime=Tâche attribuée. La saisie de cette tâche devrait être possible.
     IdTaskTime=Id temps de tâche
     YouCanCompleteRef=Si vous souhaitez compléter la référence avec certaines informations (pour l'utiliser comme filtres de recherche), il est recommandé d'ajouter un caractère pour le séparer, de sorte que la numérotation automatique fonctionnera toujours correctement pour les prochains projets. Par exemple %s-ABC. Vous pouvez également ajouter des clés de recherche dans l'étiquette. Mais la meilleure pratique peut être d'ajouter un champ dédié, également appelé attributs complémentaires.
     OpenedProjectsByThirdparties=Projets ouverts par des tiers
    -OnlyOpportunitiesShort=Seules les opportunités
    -NotAnOpportunityShort=Pas une opportunité
    -OpportunityTotalAmount=Possibilité montant total
    -OpportunityPonderatedAmountDesc=Montant des opportunités pondéré avec probabilité
     OppStatusPENDING=Créance
     OppStatusWON=A gagné
    diff --git a/htdocs/langs/fr_CA/stocks.lang b/htdocs/langs/fr_CA/stocks.lang
    index 4cb04eb36da..dda238f9e50 100644
    --- a/htdocs/langs/fr_CA/stocks.lang
    +++ b/htdocs/langs/fr_CA/stocks.lang
    @@ -16,7 +16,6 @@ ListMouvementStockProject=Liste des mouvements de stock associés au projet
     StocksArea=Zone d'entrepôts
     LocationSummary=Nom abrégé
     MassStockTransferShort=Transfert de stock de masse
    -LabelMovement=Étiquette de mouvement
     NumberOfUnit=Nombre d'unités
     UnitPurchaseValue=Prix ​​unitaire d'achat
     StockTooLow=Stock trop bas
    @@ -114,7 +113,6 @@ inventoryValidate=Validée
     inventoryDraft=Fonctionnement
     inventorySelectWarehouse=Choix d'entrepôt
     inventoryOfWarehouse=Inventaire pour entrepôt: %s
    -inventoryErrorQtyAdd=Erreur: une quantité est inférieure à zéro
     SelectCategory=Filtre de catégorie
     INVENTORY_DISABLE_VIRTUAL=Permettre au produit non déstocké d'un produit d'un kit d'inventaire
     INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Utilisez le prix d'achat si aucun dernier prix d'achat ne peut être trouvé
    @@ -126,7 +124,6 @@ LastPA=Dernière BP
     RealQty=Qté réelle
     RegulatedQty=Qté réglementée
     FlushInventory=Flush inventaire
    -ConfirmFlushInventory=Confirmez-vous cette action?
     InventoryFlushed=Inventaire rincé
     ExitEditMode=Édition de sortie
     inventoryDeleteLine=Suppression de ligne
    diff --git a/htdocs/langs/fr_CH/admin.lang b/htdocs/langs/fr_CH/admin.lang
    deleted file mode 100644
    index 790d1e6cd7b..00000000000
    --- a/htdocs/langs/fr_CH/admin.lang
    +++ /dev/null
    @@ -1,5 +0,0 @@
    -# Dolibarr language file - Source file is en_US - admin
    -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>Example for ClamAv: /usr/bin/clamscan
    -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib"
    -ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang
    index 4f546828652..3d8073dbf12 100644
    --- a/htdocs/langs/fr_FR/accountancy.lang
    +++ b/htdocs/langs/fr_FR/accountancy.lang
    @@ -36,8 +36,12 @@ AlreadyInGeneralLedger=Enregistrement déjà présent dans le grand livre
     NotYetInGeneralLedger=Pas encore envoyé dans le grand livre
     GroupIsEmptyCheckSetup=Le groupe est vide. Vérifier la configuration du groupe personnalisé
     DetailByAccount=Afficher le détail par compte
    -AccountWithNonZeroValues=Comptes avec valeurs non nulles
    +AccountWithNonZeroValues=Comptes avec des valeurs non nulles
     ListOfAccounts=Liste des comptes
    +CountriesInEEC=Pays de la CEE
    +CountriesNotInEEC=Pays hors CEE
    +CountriesInEECExceptMe=Pays de la CEE sauf %s
    +CountriesExceptMe=Tous les pays sauf %s
     
     MainAccountForCustomersNotDefined=Compte comptable général pour les clients non défini dans la configuration
     MainAccountForSuppliersNotDefined=Compte comptable général pour les fournisseurs non défini dans la configuration
    @@ -55,7 +59,7 @@ AccountancyAreaDescChartModel=Étape %s : Créer un modèle de plan de compte de
     AccountancyAreaDescChart=Étape %s : Créer ou vérifier le contenu de votre plan de compte depuis le menu %s
     
     AccountancyAreaDescVat=Étape %s : Définissez les comptes comptables de chaque taux de TVA utilisé. Pour cela, suivez le menu suivant %s.
    -AccountancyAreaDescDefault=ÉTAPE %s: Définir les comptes de comptabilité par défaut. Pour cela, utilisez l'entrée de menu %s.
    +AccountancyAreaDescDefault=Étape %s: Définir les comptes de comptabilité par défaut. Pour cela, utilisez l'entrée de menu %s.
     AccountancyAreaDescExpenseReport=Étape %s : Définissez les comptes comptables par défaut des dépenses des notes de frais. Pour cela, suivez le menu suivant %s.
     AccountancyAreaDescSal=Étape %s : Définissez les comptes comptables de paiements de salaires. Pour cela, suivez le menu suivant %s.
     AccountancyAreaDescContrib=Étape %s : Définissez les comptes comptables des dépenses spéciales (taxes diverses). Pour cela, suivez le menu suivant %s.
    @@ -130,7 +134,7 @@ ACCOUNTING_LENGTH_DESCRIPTION=Tronquer la description des produits & services da
     ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Tronquer la description du compte des produits & services dans les listes à n caractères (Idéalement = 50)
     ACCOUNTING_LENGTH_GACCOUNT=Longueur des comptes de la comptabilité générale (Si vous définissez la valeur à 6 ici, le compte « 706 » apparaîtra comme « 706000 » à l'écran)
     ACCOUNTING_LENGTH_AACCOUNT=Longueur des comptes comptables de Tiers (Si vous définissez la valeur à 6 ici, le compte « 401 » apparaîtra comme « 401000 » à l'écran)
    -ACCOUNTING_MANAGE_ZERO=Permettre de gérer un nombre différent de zéro à la fin d'un compte comptable. Nécessaire par certains pays (comme la Suisse). Si conservé à Non (par défaut), vous pouvez définir les 2 paramètres suivants pour demander à l'application d'ajouter des zéros virtuels.
    +ACCOUNTING_MANAGE_ZERO=Permettre de gérer un nombre différent de zéro à la fin d'un compte comptable. Nécessaire pour certains pays (comme la Suisse). Si conservé à Non (par défaut), vous pouvez définir les 2 paramètres suivants pour demander à l'application d'ajouter des zéros virtuels.
     BANK_DISABLE_DIRECT_INPUT=Désactiver la saisie directe de transactions en banque
     ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Activer l'export brouillon sur les journaux comptables
     
    @@ -139,7 +143,7 @@ ACCOUNTING_PURCHASE_JOURNAL=Journal des achats
     ACCOUNTING_MISCELLANEOUS_JOURNAL=Journal des opérations diverses
     ACCOUNTING_EXPENSEREPORT_JOURNAL=Journal des notes de frais
     ACCOUNTING_SOCIAL_JOURNAL=Journal de paie
    -ACCOUNTING_HAS_NEW_JOURNAL=Journal des A -nouveaux
    +ACCOUNTING_HAS_NEW_JOURNAL=Journal des A-nouveaux
     
     ACCOUNTING_ACCOUNT_TRANSFER_CASH=Compte comptable de tranfert
     ACCOUNTING_ACCOUNT_SUSPENSE=Compte comptable d'attente
    @@ -156,6 +160,7 @@ Docref=Référence
     LabelAccount=Libellé du compte
     LabelOperation=Libellé opération
     Sens=Sens
    +LetteringCode=Code de lettrage
     Codejournal=Journal
     NumPiece=Numéro de pièce
     TransactionNumShort=Num. transaction
    @@ -198,7 +203,7 @@ PaymentsNotLinkedToProduct=Paiement non lié à un produit / service
     
     Pcgtype=Groupe de comptes comptables
     Pcgsubtype=Sous-groupe de comptes comptables
    -PcgtypeDesc=Le groupe et le sous-groupe d'un compte comptable sont prédéfinis comme critère de 'filtre' et 'regroupement' pour certains rapports comptables. Par exemple, 'INCOME' or 'EXPENSE' sont regroupés pour construire le rapport des recettes/dépenses.
    +PcgtypeDesc=Les groupes et sous-groupes de comptes sont utilisés comme critères de filtre et de regroupement prédéfinis pour certains rapports de comptabilité. Par exemple, «REVENU» ou «CHARGES» sont utilisés en tant que groupes pour la comptabilité des produits afin de générer le rapport dépenses / revenus.
     
     TotalVente=Total chiffre affaires hors taxe
     TotalMarge=Total marge
    @@ -221,6 +226,7 @@ AutomaticBindingDone=Liaison automatique faite
     
     ErrorAccountancyCodeIsAlreadyUse=Erreur, vous ne pouvez pas détruire de compte comptable car il est utilisé
     MvtNotCorrectlyBalanced=Mouvement non équilibré. Débit = %s| Crébit = %s
    +Balancing=Équilibrage
     FicheVentilation=Fiche lien
     GeneralLedgerIsWritten=Les transactions sont enregistrées dans le grand livre
     GeneralLedgerSomeRecordWasNotRecorded=Certaines des opérations n'ont pu être journalisées. S'il n'y a pas d'autres messages, c'est probablement car elles sont déjà comptabilisées.
    @@ -229,6 +235,7 @@ ListOfProductsWithoutAccountingAccount=Liste des produits non liés à un compte
     ChangeBinding=Changer les liens
     Accounted=Comptabilisé
     NotYetAccounted=Pas encore comptabilisé
    +AccountantFiles=Export pièces/justificatifs
     
     ## Admin
     ApplyMassCategories=Application en masse des catégories
    @@ -247,7 +254,7 @@ AccountingJournalType5=Note de frais
     AccountingJournalType8=Inventaire
     AccountingJournalType9=A-nouveaux
     ErrorAccountingJournalIsAlreadyUse=Le journal est déjà utilisé
    -AccountingAccountForSalesTaxAreDefinedInto=Remarque: Le compte de comptabilité pour la TVA est défini dans le menu <b> %s </b> - <b> %s </b>
    +AccountingAccountForSalesTaxAreDefinedInto=Remarque: Le compte comptable pour la TVA est défini dans le menu <b> %s </b> - <b> %s </b>
     
     ## Export
     ExportDraftJournal=Exporter le journal brouillon
    @@ -262,7 +269,8 @@ Modelcsv_quadratus=Export vers Quadratus QuadraCompta
     Modelcsv_ebp=Export vers EBP
     Modelcsv_cogilog=Export vers Cogilog
     Modelcsv_agiris=Export vers Agiris
    -Modelcsv_configurable=Export configurable
    +Modelcsv_configurable=Export CSV Configurable
    +Modelcsv_FEC=Exportation FEC (Art. L47 A) (Test)
     ChartofaccountsId=Id plan comptable
     
     ## Tools - Init accounting account on product / service
    @@ -296,7 +304,7 @@ BookeppingLineAlreayExists=Lignes dejà existantes dans le grand livre
     NoJournalDefined=Pas de journal défini
     Binded=Lignes liées
     ToBind=Lignes à lier
    -UseMenuToSetBindindManualy=L'autodection n'est pas possible, utilisez le menu <a href="%s"> %s </a> pour effectuer la liaison manuellement
    +UseMenuToSetBindindManualy=Lignes non encore liées, utilisez le menu <a href="%s"> %s </a> pour effectuer la liaison manuellement.
     
     ## Import
     ImportAccountingEntries=Écritures comptables
    diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
    index 58cd1d09b11..78a46580712 100644
    --- a/htdocs/langs/fr_FR/admin.lang
    +++ b/htdocs/langs/fr_FR/admin.lang
    @@ -30,13 +30,13 @@ SessionSaveHandler=Modalité de sauvegarde des sessions
     SessionSavePath=Emplacement de sauvegarde sessions
     PurgeSessions=Purge des sessions
     ConfirmPurgeSessions=Voulez-vous purger les sessions. Ceci déconnectera tous les utilisateurs (sauf vous même).
    -NoSessionListWithThisHandler=Le gestionnaire de session configuré pour votre PHP ne permet pas de lister les sessions en cours
    +NoSessionListWithThisHandler=Le gestionnaire de session configuré pour votre PHP ne permet pas de lister les sessions en cours.
     LockNewSessions=Bloquer nouvelles connexions
     ConfirmLockNewSessions=Êtes-vous sûr de vouloir restreindre l'accès Dolibarr à votre utilisateur. Seul l'utilisateur <b>%s</b> pourra se connecter après cela.
     UnlockNewSessions=Lever blocage des connexions
     YourSession=Votre session
     Sessions=Sessions utilisateurs
    -WebUserGroup=Serveur web utilisateur/groupe
    +WebUserGroup=Utilisateur/groupe du serveur Web
     NoSessionFound=Votre PHP ne semble pas pouvoir lister les sessions actives. Le répertoire de sauvegarde des sessions (<b>%s</b>) est peut être protégé (Par exemple, par les permissions de l'OS ou par la directive open_basedir de votre PHP, ce qui d'un point de vue sécurité est une bonne chose).
     DBStoringCharset=Encodage base pour stockage données
     DBSortingCharset=Encodage base pour tri données
    @@ -50,7 +50,7 @@ ExternalUser=Utilisateur externe
     InternalUsers=Utilisateurs internes
     ExternalUsers=Utilisateurs externes
     GUISetup=Affichage
    -SetupArea=Espace de configuration
    +SetupArea=Configuration
     UploadNewTemplate=Télécharger un / des nouveau(x) modèle(s)
     FormToTestFileUploadForm=Formulaire de test d'envoi de fichier (selon options choisies)
     IfModuleEnabled=Rem: oui est effectif uniquement si le module <b>%s</b> est activé
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Erreur, le code ne peut contenir la valeur 0
     DisableJavascript=Désactive les fonctions Javascript et Ajax (Recommandé pour les personnes aveugles ou navigateurs text).
     UseSearchToSelectCompanyTooltip=Si vous avez un nombre important de tiers (>100 000), vous pourrez améliorer les performances en positionnant la constante COMPANY_DONOTSEARCH_ANYWHERE à 1 dans Configuration->Divers. La recherche sera alors limité au début des chaines.
     UseSearchToSelectContactTooltip=Si vous avez un nombre important de contacts (>100 000), vous pourrez améliorer les performances en positionnant la constante CONTACT_DONOTSEARCH_ANYWHERE à 1 dans Configuration->Divers. La recherche sera alors limité au début des chaines.
    -DelaiedFullListToSelectCompany=Attendre que vous ayez appuyé sur une touche avant de charger le contenu de la liste déroulante des tiers (Cela peut augmenter les performances si vous avez un grand nombre de tiers, mais cela est moins convivial)
    -DelaiedFullListToSelectContact=Attendre que vous ayez appuyé sur une touche avant de charger le contenu de la liste déroulante des contacts/adresses (Cela peut augmenter les performances si vous avez un grand nombre de contacts, mais cela est moins convivial)
    +DelaiedFullListToSelectCompany=Attendre que vous ayez appuyé sur une touche avant de charger le contenu de la liste déroulante des tiers. <br>Cela peut augmenter les performances si vous avez un grand nombre de tiers, mais cela est moins convivial.
    +DelaiedFullListToSelectContact=Attendre que vous ayez appuyé sur une touche avant de charger le contenu de la liste déroulante des adresses de contact. <br>Cela peut augmenter les performances si vous avez un grand nombre de contacts, mais cela est moins convivial
     NumberOfKeyToSearch=Nb carac. déclenchant recherche : %s
     NotAvailableWhenAjaxDisabled=Non disponible quand Ajax est désactivé
     AllowToSelectProjectFromOtherCompany=Sur les éléments d'un tiers, autorise la sélection d'un projet lié à un autre tiers
    @@ -193,12 +193,12 @@ FeatureDisabledInDemo=Fonction désactivée dans la démo
     FeatureAvailableOnlyOnStable=Fonction disponible uniquement sur les versions officielles stables
     BoxesDesc=Les widgets sont des composants montrant des informations que vous pouvez ajouter à vos pages pour les personnaliser. Vous pouvez choisir de les afficher ou non en sélectionnant la page cible et en cliquant sur "Activer" ou "Désactiver".
     OnlyActiveElementsAreShown=Seuls les éléments en rapport avec un <a href="%s">module actif</a> sont présentés.
    -ModulesDesc=Les modules Dolibarr définissent quelle application / fonctionnalité est activée dans le logiciel. Certaines applications / modules nécessitent des autorisations que vous devez accorder aux utilisateurs, après l'avoir activé. Cliquez sur le bouton activé / désactivé pour activer un module / application.
    +ModulesDesc=Les modules Dolibarr définissent quelles fonctionnalités sont disponibles dans le logiciel. Certains modules / applications nécessitent, après activation, d'accorder des autorisations aux utilisateurs. Cliquez sur le bouton activé/désactivé (en fin de ligne) pour activer un module/application.
     ModulesMarketPlaceDesc=D'autres modules/extensions sont disponibles en téléchargement sur des sites externes sur Internet...
     ModulesDeployDesc=Si les permissions de votre système de fichier le permettent , vous pouvez utiliser cet outil pour déployer un module externe. Le module sera alors visible dans l'onglet <strong>%s</strong>.
     ModulesMarketPlaces=Rechercher un module/application externe
     ModulesDevelopYourModule=Développer son propre module/application
    -ModulesDevelopDesc=Vous pouvez développer vous-même ou trouver un partenaire pour faire développer votre module personnalisé
    +ModulesDevelopDesc=Vous pouvez également développer votre propre module ou trouver un partenaire pour en développer un pour vous.
     DOLISTOREdescriptionLong=Au lieu de basculer sur le site web <a href="https://www.dolistore.com"> www.dolistore.com </a>pour trouver un module externe, vous pouvez utiliser cet outil intégré qui fera la recherche sur la place de marché pour vous (peut être lent, besoin d'un accès Internet) ...
     NewModule=Nouveau
     FreeModule=Gratuit
    @@ -211,8 +211,8 @@ Nouveauté=Nouveauté
     AchatTelechargement=Acheter/télécharger
     GoModuleSetupArea=Pour déployer/installer un nouveau module, rendez vous dans la zone de configuration des modules : <a href="%s">%s</a>
     DoliStoreDesc=DoliStore, la place de marché officielle des modules et extensions complémentaires pour Dolibarr ERP/CRM
    -DoliPartnersDesc=Liste de quelques sociétés qui peuvent fournir/développer des modules ou fonctions sur mesure  (Remarque: Toute société Open Source connaissant le langage PHP peut fournir du développement spécifique)
    -WebSiteDesc=Sites fournisseurs à consulter pour trouver plus de modules...
    +DoliPartnersDesc=Liste de quelques sociétés qui peuvent fournir/développer des modules ou fonctions sur mesure. <br>Remarque: <i>Toute société</i> Open Source connaissant le langage PHP peut fournir du développement spécifique.
    +WebSiteDesc=Sites fournisseurs à consulter pour trouver plus de modules (extensions)...
     DevelopYourModuleDesc=Quelques pistes pour développer votre propre module/application...
     URL=Lien
     BoxesAvailable=Widgets disponibles
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Ne pas stocker de mots de passe en clair dans la base (A
     MainDbPasswordFileConfEncrypted=Chiffrer le mot de passe de la base dans le fichier conf.php (Activation recommandée)
     InstrucToEncodePass=Pour avoir le mot de passe de la base encodé dans le fichier de configuration <b>conf.php</b>, remplacer dans ce fichier la ligne<br><b>$dolibarr_main_db_pass="...";</b><br>par<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Pour avoir le mot de passe de la base décodé (en clair) dans le fichier de configuration <b>conf.php</b>, remplacer dans ce fichier la ligne<br><b>$dolibarr_main_db_pass="crypted:...";</b><br>par<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection des PDF générés (Activation NON recommandée, rend inopérante la génération de PDF de masse)
    +ProtectAndEncryptPdfFiles=Protection des PDF générés. Activation NON recommandée (rend inopérante la génération de PDF de masse)
     ProtectAndEncryptPdfFilesDesc=La protection d'un document PDF laisse le document libre à la lecture et à l'impression avec tout logiciel de lecture PDF. Par contre, la modification et la copie deviennent impossible. Notez que, de plus, l'utilisation de cette option empêche la génération de PDFs cumulés.
     Feature=Fonction
     DolibarrLicense=Licence
    @@ -246,8 +246,8 @@ ExternalResources=Ressources externes
     SocialNetworks=Réseaux sociaux
     ForDocumentationSeeWiki=Pour la documentation utilisateur, développeur ou les FAQs,<br>consultez le wiki Dolibarr:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Pour tout autre question/aide, vous pouvez utiliser le forum Dolibarr:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=Cette application, indépendante de Dolibarr,  permet de vous aider à obtenir un service d'assistance sur Dolibarr.
    -HelpCenterDesc2=Choisissez le service qui correspond à votre besoin en cliquant sur le lien adéquat (Certains de ces services ne sont disponibles qu'en <b>anglais</b>).
    +HelpCenterDesc1=Voici quelques ressources pour obtenir de l’aide et du support avec Dolibarr.
    +HelpCenterDesc2=Certains de ces services ne sont disponibles qu'en <b>anglais</b>.
     CurrentMenuHandler=Gestionnaire menu courant
     MeasuringUnit=Unité de mesure
     LeftMargin=Marge de gauche
    @@ -264,24 +264,28 @@ Emails=Emails
     EMailsSetup=Configuration Emails
     EMailsDesc=Cette page permet de remplacer les paramètres PHP en rapport avec l'envoi d'emails. Dans la plupart des cas, sur des OS comme Unix/Linux, les paramètres PHP sont déjà corrects et cette page est inutile.
     EmailSenderProfiles=Expéditeur des e-mails
    -MAIN_MAIL_SMTP_PORT=Port du serveur SMTP/SMTPS (Par défaut dans php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT=Nom d'hôte ou adresse IP du serveur SMTP/SMTPS (Par défaut dans php.ini: <b>%s</b>)
     MAIN_MAIL_SMTP_SERVER=Nom d'hôte ou adresse IP du serveur SMTP/SMTPS (Par défaut dans php.ini: <b>%s</b>)
     MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Port du serveur SMTP/SMTPS (Non défini dans le PHP sur les systèmes de type Unix)
     MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nom d'hôte ou adresse IP du serveur SMTP/SMTPS (Non défini dans le PHP sur les systèmes de type Unix)
     MAIN_MAIL_EMAIL_FROM=Adresse email de l'émetteur pour l'envoi d'emails automatiques (Par défaut dans php.ini: <b>%s</b>)
     MAIN_MAIL_ERRORS_TO=E-mail utilisé les retours d'erreur (champ "Errors-To" dans les e-mails envoyés)
    -MAIN_MAIL_AUTOCOPY_TO= Envoyer systématiquement une copie cachée des emails envoyés à
    +MAIN_MAIL_AUTOCOPY_TO= Envoyer systématiquement une copie cachée (Bcc) des emails envoyés à
     MAIN_DISABLE_ALL_MAILS=Désactiver globalement tout envoi d'emails (pour mode test ou démos)
     MAIN_MAIL_FORCE_SENDTO=Envoyer tous les emails à (au lieu des vrais destinataires, à des fins de test)
     MAIN_MAIL_ENABLED_USER_DEST_SELECT=Ajouter les utilisateurs salariés avec email dans la liste des destinataires autorisés
    -MAIN_MAIL_SENDMODE=Méthode d'envoi des emails
    -MAIN_MAIL_SMTPS_ID=Identifiant d'authentification SMTP si authentification SMTP requise
    -MAIN_MAIL_SMTPS_PW=Mot de passe d'authentification SMTP si authentification SMTP requise
    -MAIN_MAIL_EMAIL_TLS= Utilisation du chiffrement TLS (SSL)
    -MAIN_MAIL_EMAIL_STARTTLS= Utiliser le cryptage TTS (STARTTLS)
    -MAIN_DISABLE_ALL_SMS=Désactiver globalement tout envoi de SMS (pour mode test ou démos)
    +MAIN_MAIL_SENDMODE=Méthode d'envoi d'email
    +MAIN_MAIL_SMTPS_ID=ID SMTP (si le serveur d'envoi nécessite une authentification)
    +MAIN_MAIL_SMTPS_PW=Mot de passe SMTP (si le serveur d'envoi nécessite une authentification)
    +MAIN_MAIL_EMAIL_TLS=Utilisation du chiffrement TLS (SSL)
    +MAIN_MAIL_EMAIL_STARTTLS=Utiliser le cryptage TTS (STARTTLS)
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Utiliser DKIM pour signer les emails
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Nom de domaine pour la signature DKIM
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Nom du sélecteur DKIM
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Clé privée pour générer la signature DKIM
    +MAIN_DISABLE_ALL_SMS=Désactiver globalement tout envoi de Sms (pour mode test ou démos)
     MAIN_SMS_SENDMODE=Méthode d'envoi des SMS
    -MAIN_MAIL_SMS_FROM=Numéro de téléphone par défaut pour l'envoi des SMS
    +MAIN_MAIL_SMS_FROM=Numéro de téléphone par défaut pour envoi Sms
     MAIN_MAIL_DEFAULT_FROMTYPE=Expéditeur par défaut des e-mails pour les envois manuels (e-mail utilisateur ou de la société)
     UserEmail=Email utilisateur
     CompanyEmail=Email institution
    @@ -312,12 +316,12 @@ StepNb=Étape %s
     FindPackageFromWebSite=Rechercher le paquet qui répond à votre besoin (par exemple sur le site web %s).
     DownloadPackageFromWebSite=Télécharger le package (par exemple depuis le site web officiel %s)
     UnpackPackageInDolibarrRoot=Décompressez les fichiers de l'archive dans le répertoire du serveur Dolibarr dédié aux modules externes: <b>%s</b>
    -UnpackPackageInModulesRoot=Pour installer un module externe, décompresser les fichiers de l'archive dans le répertoire dédié aux modules : <b>%s</b>
    -SetupIsReadyForUse=L"installation du module est terminée. Il est cependant nécessaire de procéer à son activation et à son paramétrage : <a href="%s">%s</a>
    +UnpackPackageInModulesRoot=Pour installer un module externe, décompresser les fichiers de l'archive dans le répertoire du serveur Dolibarr dédié aux modules externes <br> <b>%s</b>
    +SetupIsReadyForUse=L"installation du module est terminée. Il est cependant nécessaire de procéder à son activation et à son paramétrage dans la page de configuration des modules : <a href="%s">%s</a>
     NotExistsDirect=Le dossier racine alternatif n'est pas défini.<br>
     InfDirAlt=Depuis les versions 3, il est possible de définir un dossier racine alternatif. Cela permet d'installer modules et thèmes additionnels dans un répertoire dédié.<br>Créer un dossier racine alternatif à Dolibarr (ex : custom).<br>
     InfDirExample=<br>Ensuite, déclarez le dans le fichier <strong>conf.php</strong><br>$dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>Si ces lignes sont commentées avec un symbole "#" ou "//", activer les en supprimant le caractère "#" ou "//".
    -YouCanSubmitFile=Pour cette étape, vous pouvez soumettre votre fichier package ici :
    +YouCanSubmitFile=Pour cette étape, vous pouvez téléverser votre fichier package .zip ici :
     CurrentVersion=Version actuelle de Dolibarr
     CallUpdatePage=Aller à la page de mise à jour de la structure et des données de la base : %s.
     LastStableVersion=Dernière version stable disponible
    @@ -327,9 +331,9 @@ LastActivationIP=Dernière adresse IP d'activation
     UpdateServerOffline=Serveur de mise à jour hors ligne
     WithCounter=Gérer un compteur
     GenericMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent être utilisées:<br><b>{000000}</b> correspond à un numéro qui sera incrémenté à chaque %s. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque.<br><b>{000000+000}</b> idem que précédemment mais un décalage correspondant au nombre à droite du + est appliqué dès la première %s.<br><b>{000000@x}</b> idem que précédemment mais le compteur est remis à zéro le xème mois de l'année (x entre 1 et 12, ou 0 pour utiliser le mois de début d'exercice fiscal défini dans votre configuration, ou 99 pour remise à zéro chaque mois). Si cette option est utilisée et x vaut 2 ou plus, alors la séquence {yy}{mm} ou {yyyy}{mm} est obligatoire. <br><b>{dd}</b> jour (01 à 31).<br><b>{mm}</b> mois (01 à 12).<br><b>{yy}</b>, <b>{yyyy}</b> ou <b>{y}</b> année sur 2, 4 ou 1 chiffres.<br>
    -GenericMaskCodes2=<b>{cccc}</b> : code client sur n caractères</br><b>{cccc000}</b> : code client sur n caractères suivi d'un compteur propre au client. Ce compteur propre au client est remis à zéro en même temps que le compteur général.</br><b>{tttt}</b> code du type de tiers sur n caractères (Voir menu Accueil > Configuration > Dictionnaires > Types de tiers). Si vous ajoutez cet élément au masque de numérotation, le compteur sera différent pour chaque type de tiers.<br>
    +GenericMaskCodes2=<b>{cccc}</b> : code client sur n caractères<br><b>{cccc000}</b> : code client sur n caractères suivi d'un compteur propre au client. Ce compteur propre au client est remis à zéro en même temps que le compteur général.<br><b>{tttt}</b> code du type de tiers sur n caractères (Voir menu Accueil > Configuration > Dictionnaires > Types de tiers). Si vous ajoutez cet élément au masque de numérotation, le compteur sera différent pour chaque type de tiers.<br>
     GenericMaskCodes3=Tout autre caractère dans le masque sera laissé inchangé.<br>Les espaces ne sont pas permis.<br>
    -GenericMaskCodes4a=<u>Exemple sur la 99eme %s du tiers LaCompanie faite le 31/03/2007 :</u><br>
    +GenericMaskCodes4a=<u>Exemple sur la 99eme %s du tiers LaCompanie faite le 31/01/2007:</u><br>
     GenericMaskCodes4b=<u>Exemple sur un tiers créé le 31/03/2007 :</u><br>
     GenericMaskCodes4c=<u>Exemple sur un produit/service créé le 31/03/2007 :</u><br>
     GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> donnera <b>ABC0703-000099</b><br><b>{0000+100@1}-XXX-{dd}-YYY</b> donnera <b>0199-XXX-31-YYY</b><br><b>IN{yy}{mm}-{0000}-{t}</b> donnera <b>IN0701-0099-A</b> si la société a le type 'Responsable Inscripto' avec le code type qui est 'A_RI'
    @@ -352,7 +356,7 @@ ConfirmPurge=Êtes-vous sûr de vouloir réaliser cette purge ?<br>Ceci effacera
     MinLength=Longueur minimale
     LanguageFilesCachedIntoShmopSharedMemory=Fichiers .lang en mémoire partagée
     LanguageFile=Fichier de langue
    -ExamplesWithCurrentSetup=Exemples avec le paramétrage actif courant
    +ExamplesWithCurrentSetup=Exemples avec la configuration actuelle
     ListOfDirectories=Liste des répertoires des modèles OpenDocument
     ListOfDirectoriesForModelGenODT=Liste des répertoires contenant des documents modèles au format OpenDocument.<br><br>Indiquer ici les chemins complets de répertoire.<br>Ajouter un retour à la ligne entre chaque répertoire.<br>Pour indiquer un répertoire du module GED, mettre ici <b>DOL_DATA_ROOT/ecm/nomdurepertoireged</b><br><br>Les fichiers modèles dans ces répertoires doivent se terminer par <b>.odt</b> ou <b>.ods</b>.
     NumberOfModelFilesFound=Nombre de fichiers modèles ODT/ODS trouvés dans ce(s) répertoire(s)
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Clé pour utiliser les Web Services (paramètre "dolibar
     TestSubmitForm=Formulaire de test de saisie
     ThisForceAlsoTheme=Utiliser ce gestionnaire de menu force aussi le thème quel que soit le choix de thème de l'utilisateur. De plus, ce gestionnaire de menu, spécialisé pour smartphone, ne fonctionne que sur certains téléphones. Utilisez un autre gestionnaire si vous constatez des problèmes.
     ThemeDir=Répertoire des thèmes
    -ConnectionTimeout=Délai expiration de connexion
    +ConnectionTimeout=Timeout de connexion
     ResponseTimeout=Délai expiration de réponse
     SmsTestMessage=Message de test de __PHONEFROM__ vers __PHONETO__
     ModuleMustBeEnabledFirst=Le module <b>%s</b> doit être activé pour utiliser cette fonction.
     SecurityToken=Clé de sécurisation des URLs
    -NoSmsEngine=Aucun gestionnaire d'envoi de SMS n'est disponible. Les gestionnaires d'envois SMS ne sont pas installés en standard (car dépendent d'un fournisseur) mais vous pourrez en trouver depuis la plateforme %s
    +NoSmsEngine=Aucun gestionnaire d'envoi de SMS n'est disponible. Les gestionnaires d'envois SMS ne sont pas installés en standard, car dépendent d'un fournisseur externe, mais vous pourrez en trouver depuis la plateforme %s
     PDF=PDF
     PDFDesc=Vous pouvez définir ici des options globales sur la génération des PDF
     PDFAddressForging=Règles de fabrication des zones adresses
     HideAnyVATInformationOnPDF=Masquer toutes les informations relatives à la Taxe de vente / TVA sur les PDF générés
     PDFRulesForSalesTax=Règles pour la taxe de vente / TVA
     PDFLocaltax=Règles pour %s
    -HideLocalTaxOnPDF=Cacher le taux de %s dans la colonne taxe
    +HideLocalTaxOnPDF=Cacher le taux de %s dans la colonne taxe des PDF
     HideDescOnPDF=Cacher la description des produits sur les PDF générés
     HideRefOnPDF=Cacher la référence des produits sur les PDF générés
     HideDetailsOnPDF=Cacher les détails des lignes de produits sur les PDF générés
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Sécurisation des URLs
     SecurityTokenIsUnique=Utiliser un paramètre securekey unique pour chaque URL ?
     EnterRefToBuildUrl=Entrer la référence pour l'objet %s
     GetSecuredUrl=Obtenir l'URL calculée
    -ButtonHideUnauthorized=Cacher les boutons non autorisés au lieu de les voir grisés
    +ButtonHideUnauthorized=Cacher les boutons non autorisés, pour les utilisateurs non admin, au lieu de les voir grisés
     OldVATRates=Ancien taux de TVA
     NewVATRates=Nouveau taux de TVA
     PriceBaseTypeToChange=Modifier sur les prix dont la référence de base est le
    @@ -414,12 +418,12 @@ ExtrafieldCheckBoxFromList=Cases à cocher issues d'une table
     ExtrafieldLink=Lien vers un objet
     ComputedFormula=Champ calculé
     ComputedFormulaDesc=Vous pouvez entrer ici une formule utilisant les propriétés objet ou tout code PHP pour obtenir des valeurs dynamiques. Vous pouvez utiliser toute formule compatible PHP, incluant l'opérateur conditionnel "?", et les objets globaux : <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>ATTENTION</strong> : Seulement quelques propriétés de l'objet $object pourraient être disponibles. Si vous avez besoin de propriétés non chargées, créez vous même une instance de l'objet dans votre formule, comme dans le deuxième exemple.<br>Utiliser un champs calculé signifie que vous ne pouvez pas entrer vous même toute valeur à partir de l'interface. Aussi, s'il y a une erreur de syntaxe, la formule pourrait ne rien retourner.<br><br>Exemple de formule:<br> $object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Exemple pour recharger l'objet: <br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Un autre exemple de formule pour forcer le rechargement d'un objet et de son objet parent:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Objet parent projet non trouvé'
    -ExtrafieldParamHelpPassword=Gardez ce champ vide signifie que la valeur sera stockée sans cryptage (le champ doit juste être caché avec des étoiles sur l'écran). <br> Définissez la valeur 'auto' pour utiliser la règle de cryptage par défaut pour enregistrer le mot de passe dans la base de données (ensuite la valeur lue sera le hash uniquement, sans moyen de retrouver la valeur d'origine)
    -ExtrafieldParamHelpselect=La liste doit être de la forme clef,valeur (où la clé ne peut être '0')<br><br> par exemple : <br>1,valeur1<br>2,valeur2<br>3,valeur3<br>...<br><br>\nPour afficher une liste dépendant d'une autre liste attribut complémentaire: <br>1, valeur1|options_<i>code_liste_parente</i>:clé_parente<br> 2,valeur2|option_<i>Code_liste_parente</i>:clé_parente<br><br>\nPour que la liste soit dépendante d'une autre liste:<br>1,valeur1|<i>code_liste_parent</i>:clef_parent<br>2,valeur2|<i>code_liste_parent</i>:clef_parent
    +ExtrafieldParamHelpPassword=Laissez ce champ vide signifie que la valeur sera stockée sans cryptage (le champ doit juste être caché avec des étoiles sur l'écran).<br> Définissez la valeur 'auto' pour utiliser la règle de cryptage par défaut pour enregistrer le mot de passe dans la base de données (ensuite la valeur utilisée sera le hash uniquement, sans moyen de retrouver la valeur d'origine)
    +ExtrafieldParamHelpselect=La liste doit être de la forme clef,valeur (où la clé ne peut être '0')<br><br> par exemple : <br>1,valeur1<br>2,valeur2<br>3,valeur3<br>...<br><br>\nPour afficher une liste dépendant d'une autre liste attribut complémentaire: <br>1, valeur1|options_<i>code_liste_parente</i>:clé_parente<br> 2,valeur2|option_<i>Code_liste_parente</i>:clé_parente<br><br>\nPour que la liste soit dépendante d'une autre liste:<br>1,valeur1|<i>code_liste_parent</i>:clef_parent<br>2,valeur2|<i>code_liste_parent</i>:clef_parent
     ExtrafieldParamHelpcheckbox=La liste doit être de la forme clef,valeur (où la clé ne peut être '0')<br><br> par exemple : <br>1,valeur1<br>2,valeur2<br>3,valeur3<br>...
     ExtrafieldParamHelpradio=La liste doit être de la forme clef,valeur (où la clé ne peut être '0')<br><br> par exemple : <br>1,valeur1<br>2,valeur2<br>3,valeur3<br>...
    -ExtrafieldParamHelpsellist=Les paramètres de la liste viennent d'une table<br>Syntax : table_name:label_field:id_field::filter<br>Exemple : c_typent:libelle:id::filter<br><br>-idfilter est nécessairement une clé primaire int<br>- filter peut être un simple test (e.g. active=1) pour seulement montrer les valeurs actives<br>Vous pouvez aussi utiliser $ID$ dans le filtre qui est le ID actuel de l'objet<br>Pour faire un SELECT dans le filtre, utilisez $SEL$<br>Si vous voulez filtrer sur un extrafield, utilisez la syntaxe extra.fieldcode=... (ou fieldcode est le code de l'extrafield)<br><br>Pour avoir une liste qui dépend d'un autre attribut complémentaire:<br>\n<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>Pour avoir une liste qui dépend d'une autre liste:<br>\nc_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    -ExtrafieldParamHelpchkbxlst=Les paramètres de la liste proviennent d'une table<br>:\nSyntaxe : nom_de_la_table:libelle_champ:id_champ::filtre<br>\nExemple : c_typent:libelle:id::filter<br><br>le filtre peut n'est qu'un test (ex : active=1) pour n'afficher que les valeurs actives.<br>Vous pouvez aussi utiliser $ID$ dans les filtres pour indiquer l'ID de l'élément courant.<br>\nPour utiliser un SELECT dans un filtre, utilisez $SEL$<br>\nPour filtrer sur un attribut supplémentaire, utilisez la syntaxe\nextra.fieldcode=... (ou fieldcode est le code de l'attribut supplémentaire)<br><br>Pour afficher une liste dépendant d'un autre attribut supplémentaire : <br>c_typent:libelle:id:options_<i>code_liste_parente</i>|colonne_parente:filtre <br><br>Pour afficher une liste dépendant d'une autre liste : <br>c_typent:libelle:id:<i>code_liste_parente</i>|colonne_parente:filter
    +ExtrafieldParamHelpsellist=Les paramètres de la liste viennent d'une table<br>Syntax : table_name:label_field:id_field::filter<br>Exemple : c_typent:libelle:id::filter<br><br>-idfilter est nécessairement une clé primaire int<br>- filter peut être un simple test (e.g. active=1) pour seulement montrer les valeurs actives<br>Vous pouvez aussi utiliser $ID$ dans le filtre qui est le ID actuel de l'objet<br>Pour faire un SELECT dans le filtre, utilisez $SEL$<br>Si vous voulez filtrer sur un extrafield, utilisez la syntaxe extra.fieldcode=... (ou fieldcode est le code de l'extrafield)<br><br>Pour avoir une liste qui dépend d'un autre attribut complémentaire:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>Pour avoir une liste qui dépend d'une autre liste:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    +ExtrafieldParamHelpchkbxlst=Les paramètres de la liste proviennent d'une table<br>:Syntaxe : nom_de_la_table:libelle_champ:id_champ::filtre<br>Exemple : c_typent:libelle:id::filter<br><br>le filtre peut n'est qu'un test (ex : active=1) pour n'afficher que les valeurs actives.<br>Vous pouvez aussi utiliser $ID$ dans les filtres pour indiquer l'ID de l'élément courant.<br>Pour utiliser un SELECT dans un filtre, utilisez $SEL$<br>Pour filtrer sur un attribut supplémentaire, utilisez la syntaxeextra.fieldcode=... (ou fieldcode est le code de l'attribut supplémentaire)<br><br>Pour afficher une liste dépendant d'un autre attribut supplémentaire : <br>c_typent:libelle:id:options_<i>code_liste_parente</i>|colonne_parente:filtre <br><br>Pour afficher une liste dépendant d'une autre liste : <br>c_typent:libelle:id:<i>code_liste_parente</i>|colonne_parente:filter
     ExtrafieldParamHelplink=Les paramètres doivent être ObjectName:Classpath <br> Syntaxe: ObjectName:Classpath <br> Exemples: <br> Société:societe/class/societe.class.php <br> Contact:contact/class/contact.class.php
     LibraryToBuildPDF=Bibliothèque utilisée pour la génération des PDF
     LocalTaxDesc=Certains pays appliquent 2 voire 3 taux sur chaque ligne de facture. Si c'est le cas, choisissez le type du deuxième et troisième taux et sa valeur. Les types possibles sont:<br>1 : taxe locale sur les produits et services hors tva (la taxe locale est calculée sur le montant hors taxe)<br>2 : taxe locale sur les produits et services avant tva (la taxe locale est calculée sur le montant + tva)<br>3 : taxe locale uniquement sur les produits hors tva (la taxe locale est calculée sur le montant hors taxe)<br>4 : taxe locale uniquement sur les produits avant tva (la taxe locale est calculée sur le montant + tva)<br>5 : taxe locale uniquement sur les services hors tva (la taxe locale est calculée sur le montant hors taxe)<br>6 : taxe locale uniquement sur les service avant tva (la taxe locale est calculée sur le montant + tva)
    @@ -432,7 +436,7 @@ DefaultLink=Lien par défaut
     SetAsDefault=Définir par défaut
     ValueOverwrittenByUserSetup=Attention, cette valeur peut être écrasée par une valeur spécifique à la configuration de l'utilisateur (chaque utilisateur pouvant avoir sa propre URL « clicktodial »)
     ExternalModule=Module externe - Installé dans le répertoire %s
    -BarcodeInitForThirdparties=Initialisation du code-barre en masse pour les tiers
    +BarcodeInitForthird-parties=Initialisation du code-barre en masse pour les tiers
     BarcodeInitForProductsOrServices=Initialisation ou purge en masse des codes-barre des produits ou services
     CurrentlyNWithoutBarCode=Actuellement, vous avez <strong>%s</strong> enregistrements sur <strong>%s</strong> %s sans code barre défini.
     InitEmptyBarCode=Initialisez les valeurs pour les %s enregistrements vides suivant
    @@ -446,7 +450,7 @@ NoDetails=Pas plus de détails dans le pied-de-page
     DisplayCompanyInfo=Afficher l'adresse de la société
     DisplayCompanyManagers=Afficher le nom des responsables
     DisplayCompanyInfoAndManagers=Afficher l'adresse du tiers et le nom de son responsable
    -EnableAndSetupModuleCron=Si vous voulez avoir cette facture récurrente générée automatiquement, le module *%s* doit être activé et correctement configuré. Dans le cas contraire, la génération des factures doit être effectuée manuellement à partir de ce modèle avec le bouton *Créer*. Notez que même si vous avez activé la génération automatique, vous pouvez toujours lancer en toute sécurité la génération manuelle. La génération en double sur une même période n'est pas possibles.
    +EnableAndSetupModuleCron=Si vous voulez avoir cette facture récurrente générée automatiquement, le module *%s* doit être activé et correctement configuré. Dans le cas contraire, la création des factures doit être effectuée manuellement à partir de ce modèle avec le bouton *Créer*. Notez que même si vous avez activé la création automatique, vous pouvez toujours lancer, en toute sécurité, la création manuelle. En effet, il n'est pas possible de créer plusieurs factures sur une même période.
     ModuleCompanyCodeCustomerAquarium=%s suivi d'un code client tiers pour un code comptable client
     ModuleCompanyCodeSupplierAquarium=%s suivi du code d'un fournisseur tiers pour un code comptable fournisseur
     ModuleCompanyCodePanicum=Retourne un code comptable vide
    @@ -454,16 +458,16 @@ ModuleCompanyCodeDigitaria=Renvoie un code comptable composé suivant le code ti
     Use3StepsApproval=Par défaut, les commandes fournisseurs nécessitent d'être créées et approuvées en deux étapes/utilisateurs (une étape/utilisateur pour créer et une étape/utilisateur pour approuver. Si un utilisateur à les deux permissions, ces deux actions sont effectuées en une seule fois). Cette option ajoute la nécessité d'une approbation par une troisième étape/utilisateur, si le montant de la commande est supérieur au montant d'une valeur définie (soit 3 étapes nécessaire: 1 =Validation, 2=Première approbation et 3=seconde approbation si le montant l'exige).<br>Laissez le champ vide si une seule approbation (2 étapes) sont suffisantes, placez une valeur très faibe (0.1) si une deuxième approbation (3 étapes) est toujours exigée.
     UseDoubleApproval=Activer l'approbation en trois étapes si le montant HT est supérieur à...
     WarningPHPMail=Attention : Il est préférable de configurer les emails sortant pour utiliser le serveur email de votre fournisseur plutôt que la configuration par défaut. Certains fournisseurs email (comme Yahoo) ne permettent pas l'envoi d'e-mails depuis un autre serveur que le leur si l'adresse d'envoi utilisée est une adresse autre que la leur. Votre configuration actuelle utilise le serveur de l'application pour l'envoi d'e-mails et non le serveur de votre fournisseur de messagerie, aussi certains destinataires (ceux compatibles avec le protocole restrictif DMARC) demanderont au fournisseur d'email si ils peuvent accepter l'email et certains fournisseurs (comme Yahoo) peuvent répondre "non" car le serveur utilisé pour l'envoi n'est pas un serveur appartenant au fournisseur, aussi certains de vos emails envoyés peuvent ne pas etre accepté (faites attention aussi aux quotas de votre fournisseur d'email). <br>SI votre fournisseur d'email (comme Yahoo) impose cette restriction, vous devrez modifier votre configuration et opter pour l'autre méthode d'envoi "SMTP server" et saisir les identifiants SMTP de votre compte fournis par votre fournisseur d'e-mail (à demander à votre fournisseur d'e-mail)
    -WarningPHPMail2=Si votre fournisseur de messagerie SMTP a besoin de restreindre le client de messagerie à certaines adresses IP (très rare), voici l'adresse IP du mail agent (MUA) de votre application CRM ERP : <strong> %s </strong>.
    +WarningPHPMail2=Si votre fournisseur de messagerie SMTP a besoin de restreindre le client de messagerie à certaines adresses IP (très rare), voici l'adresse IP du mail user agent (MUA) de votre application CRM ERP : <strong> %s </strong>.
     ClickToShowDescription=Cliquer pour afficher la description
     DependsOn=Ce module a besoin du(des) module(s)
     RequiredBy=Ce module est requis par le ou les module(s)
     TheKeyIsTheNameOfHtmlField=C'est le nom du champ HTML. Cela nécessite d'avoir des connaissances techniques pour lire le contenu de la page HTML et récupérer le nom d'un champ.
    -PageUrlForDefaultValues=Vous devez entrer ici l'URL relative de la page. Si vous indiquez des paramètres dans l'URL, les valeurs par défaut seront effectives si tous les paramètres sont définis sur la même valeur. Exemples :
    -PageUrlForDefaultValuesCreate=<br> Pour le formulaire pour créer un nouveau tiers, c'est <strong> %s </strong>, <br> Si vous voulez une valeur par défaut seulement si l'url a certains paramètres, vous pouvez utiliser <strong> %s </strong>
    -PageUrlForDefaultValuesList=<br>Pour la page de liste des tiers, c'est <strong>%s</strong>,<br>Si vous voulez une valeur par défaut uniquement sir l'url a certains paramètres, vous pouvez utiliser <strong>%s</strong>
    +PageUrlForDefaultValues=Vous devez entrer ici l'URL relative de la page. Si vous indiquez des paramètres dans l'URL, les valeurs par défaut seront effectives si tous les paramètres sont définis avec la même valeur.
    +PageUrlForDefaultValuesCreate=<br> Example:<br>Pour le formulaire pour créer un nouveau tiers, c'est <strong> %s </strong>. <br> Pour l'URL des modules externes installés dans le répertoire custom, n'incluez pas le "custom/", aussi le chemin ressemblera à <strong>monmodule/mapage.php</strong> et non custom/monmodule/mapache.php.<br> Si voulez une valeur par défaut seulement si l'url a certains paramètres, vous pouvez utiliser <strong> %s </strong>
    +PageUrlForDefaultValuesList=<br>Example: <br> Pour la page de liste des tiers, c'est <strong>%s</strong>,<br>Pour une URL des modules externes installés dans le répertoire custom, n'incluez pas le "custom/" aussi le chemin sera <strong>monmodule/mapage.php</strong> et non custom/monmodule/mapage.php.<br>Si vous voulez une valeur par défaut uniquement si l'url a certains paramètres, vous pouvez utiliser <strong>%s</strong>
     EnableDefaultValues=Activer la fonction de valeurs par défaut personnalisées
    -EnableOverwriteTranslation=Activer la réécriture des traductions
    +EnableOverwriteTranslation=Permettre la réécriture des traductions
     GoIntoTranslationMenuToChangeThis=Une traduction a été trouvée pour le code de cette valeur. Pour changer cette valeur, vous devez modifier le fichier depuis Accueil > Configuration > Traduction.
     WarningSettingSortOrder=Attention, le réglage d'un ordre de tri par défaut peut entraîner une erreur technique lorsque le champ est inconnu dans le listing. Si vous rencontrez une telle erreur, revenez à cette page pour supprimer l'ordre de tri par défaut et restaurer le comportement par défaut.
     Field=Champ
    @@ -477,11 +481,13 @@ davDescription=Ajout un composant pour devenir un serveur DAV
     DAVSetup=Configuration du module DAV
     DAV_ALLOW_PUBLIC_DIR=Activer le répertoire public (répertoire WebDav sans login requis)
     DAV_ALLOW_PUBLIC_DIRTooltip=Le répertoire public WebDav est un répertoire WebDAV auquel tout le monde peut accéder (en lecture et en écriture), sans avoir besoin d'avoir/utiliser un compte de connexion/mot de passe existant.
    +DAV_ALLOW_ECM_DIR=Permettre l'accès au répertoire racine du module GED (connexion requise)
    +DAV_ALLOW_ECM_DIRTooltip=Répertoire racine où tous les fichiers sont téléchargés manuellement lors de l’utilisation du module GED. Comme pour la fonctionnalité via l'interface Web, vous aurez besoin d'un identifiant / mot de passe valide avec les autorisations accordées pour y accéder.
     # Modules
    -Module0Name=Utilisateurs & groupes
    +Module0Name=Utilisateurs & Groupes
     Module0Desc=Gestion des utilisateurs / employés et groupes
     Module1Name=Tiers
    -Module1Desc=Gestion des tiers (sociétés, particuliers) et contacts
    +Module1Desc=Gestion des tiers (clients, prospects) et contacts
     Module2Name=Commercial
     Module2Desc=Gestion commerciale
     Module10Name=Comptabilité
    @@ -495,7 +501,7 @@ Module23Desc=Suivi de la consommation des énergies
     Module25Name=Commandes clients
     Module25Desc=Gestion des commandes clients
     Module30Name=Factures et avoirs
    -Module30Desc=Gestion des factures et avoirs clients. Gestion des factures fournisseurs
    +Module30Desc=Gestion des factures et avoirs clients. Gestion des factures et avoirs fournisseurs
     Module40Name=Fournisseurs
     Module40Desc=Gestion des fournisseurs et des achats (commandes et factures fournisseurs)
     Module42Name=Journaux et traces de Debug
    @@ -546,10 +552,10 @@ Module310Name=Adhérents
     Module310Desc=Gestion des adhérents d'une association
     Module320Name=Flux RSS
     Module320Desc=Ajout de flux d'informations RSS dans les écrans Dolibarr
    -Module330Name=Marque-pages
    -Module330Desc=Gestion des marque-pages
    -Module400Name=Projets/Opportunités/Affaires
    -Module400Desc=Gestion des projets, opportunités/affaires et/ou tâches. Vous pouvez aussi assigner tous les autres éléments (facture, commande, proposition, intervention, ...) à ces projets et avoir une vue transverse depuis la vue projet.
    +Module330Name=Marque-pages et raccourci
    +Module330Desc=Créez des raccourcis, toujours accessibles, vers les pages internes ou externes auxquelles vous accédez fréquemment
    +Module400Name=Projets ou Opportunités
    +Module400Desc=Gestion des projets, opportunités/affaires et/ou tâches. Vous pouvez aussi assigner tous les autres éléments (facture, commande, proposition, intervention, ...) à un projet et avoir une vue transverse depuis la vue projet.
     Module410Name=Webcalendar
     Module410Desc=Interface avec le calendrier Webcalendar
     Module500Name=Taxes et dépenses spéciales
    @@ -562,7 +568,7 @@ Module600Name=Notifications d'événements métiers
     Module600Desc=Envoi de notifications par e-mails (déclenchées par des événements métiers) aux utilisateurs (configuration faite sur chaque fiche utilisateur), contacts de tiers (configuration faite sur chaque fiche tiers) ou vers des adresses e-mails spécifiques.
     Module600Long=Notez que ce module est dédié à l'envoi d'e-mails en temps réel lorsqu'un événement métier dédié se produit. Si vous cherchez une fonctionnalité pour envoyer des rappels par email de vos événements agenda, allez dans la configuration du module Agenda.
     Module610Name=Variantes de produits
    -Module610Desc=Autoriser la création de variantes de produits basées sur les attributs (couleur, taille,...)
    +Module610Desc=Création de variantes de produits (couleur, taille, etc.)
     Module700Name=Dons
     Module700Desc=Gestion des dons
     Module770Name=Notes de frais
    @@ -582,7 +588,7 @@ Module2200Desc=Active l'usage d'expressions mathématiques
     Module2300Name=Travaux planifiés
     Module2300Desc=Gestion des travaux planifiées (alias cron ou table chrono)
     Module2400Name=Événements/Agenda
    -Module2400Desc=Gestion des événements réalisés ou à venir. Laissez l'application tracer automatiquement les événements pour des raisons de suivi ou enregistrer manuellement les événements ou rendez-vous dans l'agenda. Ceci est le module le plus important pour une bonne Gestion de la Relation Client ou Fournisseur.
    +Module2400Desc=Gestion des événements. Laissez l'application tracer automatiquement les événements pour des besoin de suivi ou enregistrer manuellement les événements ou rendez-vous dans l'agenda. Ceci est le module le plus important pour une bonne Gestion de la Relation Client ou Fournisseur.
     Module2500Name=GED
     Module2500Desc=Gestion de documents (GED). Stockage automatic des documents générés ou stockés. Fonction de partage.
     Module2600Name=API/Web services (serveur SOAP)
    @@ -592,7 +598,7 @@ Module2610Desc=Active le server REST Dolibarr fournissant des services API
     Module2660Name=Appelle de Webservices externes (client SOAP)
     Module2660Desc=Activez le client Dolibarr de services Web (Peut être utilisé pour pousser des données/demandes vers des serveurs externes. Seules les commandes Fournisseurs sont prises en charge pour le moment)
     Module2700Name=Gravatar
    -Module2700Desc=Utilise le service en ligne Gravatar (www.gravatar.com) pour afficher les photos d'utilisateurs/membres (en fonction leur email). Besoin d'un accès Internet
    +Module2700Desc=Utilise le service en ligne Gravatar (www.gravatar.com) pour afficher les photos d'utilisateurs/adhérents (en fonction leur email). Besoin d'un accès Internet
     Module2800Desc=Client FTP
     Module2900Name=GeoIPMaxmind
     Module2900Desc=Capacités de conversion GeoIP Maxmind
    @@ -606,18 +612,22 @@ Module5000Name=Multi-société
     Module5000Desc=Permet de gérer plusieurs sociétés
     Module6000Name=Workflow
     Module6000Desc=Gestion du workflow (création automatique d'objet et / ou changement automatique d'état)
    -Module10000Name=Sites internet
    +Module10000Name=Sites web
     Module10000Desc=Créer des sites internet publics (sites web) avec un éditeur WYSIWYG. Indiquer à votre serveur web (Apache, Nginx, ...) le chemin d'accès au à dossier pour mettre votre site en ligne avec votre propre nom de domaine.
     Module20000Name=Demandes de congés
     Module20000Desc=Déclaration et suivi des congés des employés
     Module39000Name=Numéros de Lot/Série
     Module39000Desc=Gestion des lots et numéro de série, et date de péremption ou consommation sur les produits
    +Module40000Name=Multi-devise
    +Module40000Desc=Utiliser des devises alternatives dans les prix et les documents
     Module50000Name=PayBox
     Module50000Desc=Module permettant d'offrir une page de paiement en ligne par carte de crédit avec PayBox. Ceci peut être utilisé par les clients pour faire des paiements de montants libre ou pour des paiements d'un objet particulier de Dolibarr (facture, commande, ...)
     Module50100Name=Point de vente
     Module50100Desc=Module Caisse enregistreuse - Point de vente (POS)
    +Module50150Name=Point de vente (tactile)
    +Module50150Desc=Module de caisse enregistreuse. Point De Vente (POS en anglais) à écran tactile.
     Module50200Name=Paypal
    -Module50200Desc=Module permettant d'offrir une page de paiement en ligne par carte de crédit avec Paypal. Ceci peut être utilisé par les clients pour faire des paiements de montants libre ou pour des paiements d'un objet particulier de Dolibarr (facture, commande, ...)
    +Module50200Desc=Module permettant d'offrir une page de paiement en ligne par carte de crédit avec PayBox. Ceci peut être utilisé par les clients pour faire des paiements de montants libre ou pour des paiements d'un objet particulier de Dolibarr (facture, commande, ...)
     Module50400Name=Comptabilité (avancée)
     Module50400Desc=Gestion de la comptabilité (double partie, comptabilité général et auxiliaire). Export du grand livre dans différent formats de logiciels comptables.
     Module54000Name=PrintIPP
    @@ -628,7 +638,7 @@ Module59000Name=Marges
     Module59000Desc=Module pour gérer les marges
     Module60000Name=Commissions
     Module60000Desc=Module pour gérer les commissions
    -Module62000Name=Incoterm
    +Module62000Name=Incoterms
     Module62000Desc=Ajouts de fonctionnalités pour gérer les incoterms
     Module63000Name=Ressources
     Module63000Desc=Gère les ressources (imprimantes, voitures, salles...). les ressources peuvent être affectées à des événements.
    @@ -651,7 +661,7 @@ Permission32=Créer/modifier les produits
     Permission34=Supprimer les produits
     Permission36=Voir/gérer les produits cachés
     Permission38=Exporter les produits
    -Permission41=Lire les projets et tâches (partagés ou dont vous êtes un contact). Permet la saisie de temps passé, par vous et votre hiérarchie (vos subordonnés), sur les tâches assignées.
    +Permission41=Lire les projets et tâches (partagés ou dont vous n'êtes pas contact). Permet la saisie de temps passé, pour vous-même et votre hiérarchie (vos subordonnés), sur les tâches assignées (Feuilles de temps).
     Permission42=Créer/modifier les projets (projets partagés et projets pour lesquels je suis contact). Permet aussi de créer des tâches et d'assigner des utilisateurs aux projets et tâches.
     Permission44=Supprimer les projets et tâches (partagés ou dont je suis contact)
     Permission45=Exporter les projets
    @@ -695,7 +705,7 @@ Permission122=Créer/modifier les tiers (sociétés) liés à l'utilisateur
     Permission125=Supprimer les tiers (sociétés) liés à l'utilisateur
     Permission126=Exporter les tiers (sociétés)
     Permission141=Consulter tous les projets et tâches (y compris privés dont je ne suis pas contact)
    -Permission142=Créer/modifier tous les projets et tâches (y compris privés dont je ne suis pas contact)
    +Permission142=Créer/modifier tous les projets et tâches (y compris privés dont vous n'êtes pas contact)
     Permission144=Supprimer les projets et tâches (y compris privés dont je ne suis pas contact)
     Permission146=Consulter les fournisseurs
     Permission147=Consulter les stats
    @@ -787,11 +797,9 @@ Permission401=Consulter les avoirs
     Permission402=Créer/modifier les avoirs
     Permission403=Valider les avoirs
     Permission404=Supprimer les avoirs
    -Permission501=Lire les fiches contrats/salaires
    -Permission502=Créer/modifier les contrats/salaires des employés
     Permission511=Lire les règlements de salaires
     Permission512=Créer/modifier les règlements de salaires
    -Permission514=Supprimer les salaires
    +Permission514=Supprimer les paiements de salaires
     Permission517=Exporter les salaires
     Permission520=Consulter les emprunts
     Permission522=Créer/Modifier les emprunts
    @@ -895,7 +903,7 @@ DictionaryRevenueStamp=Montants des timbres fiscaux
     DictionaryPaymentConditions=Conditions de règlement
     DictionaryPaymentModes=Modes de paiements
     DictionaryTypeContact=Types de contacts/adresses
    -DictionaryTypeOfContainer=Type de pages/conteneurs de site Web
    +DictionaryTypeOfContainer=Type de pages/container de site Web
     DictionaryEcotaxe=Barèmes Eco-participation (DEEE)
     DictionaryPaperFormat=Format papiers
     DictionaryFormatCards=Formats des cartes
    @@ -921,34 +929,34 @@ BackToModuleList=Retour liste des modules
     BackToDictionaryList=Retour liste des dictionnaires
     TypeOfRevenueStamp=Type de timbre fiscal
     VATManagement=Gestion TVA
    -VATIsUsedDesc=Le taux de TVA proposé par défaut lors de la création de propositions commerciales, factures, commandes, etc... répond à la règle standard suivante :<br>Si vendeur non assujetti à TVA, TVA par défaut=0. Fin de règle.<br>Si le (pays vendeur= pays acheteur) alors TVA par défaut=TVA du produit vendu. Fin de règle.<br>Si vendeur et acheteur dans Communauté européenne et bien vendu= moyen de transport neuf (auto, bateau, avion), TVA par défaut=0 (La TVA doit être payée par acheteur au centre d'impôts de son pays et non au vendeur). Fin de règle.<br>Si vendeur et acheteur dans Communauté européenne et acheteur= particulier alors TVA par défaut=TVA du produit vendu. Fin de règle.<br>Si vendeur et acheteur sont dans la Communauté européenne et que l'acheteur est une société alors TVA par défaut=0. Fin de règle.<br>Sinon la TVA proposée par défaut=0. Fin de règle.
    +VATIsUsedDesc=Le taux de TVA proposé par défaut lors de la création de propositions commerciales, factures, commandes, etc... répond à la règle standard suivante:<br>Si vendeur non assujetti à TVA, TVA par défaut=0. Fin de règle.<br>Si le (pays vendeur= pays acheteur) alors TVA par défaut=TVA du produit vendu. Fin de règle.<br>Si vendeur et acheteur dans Communauté européenne et bien vendu= moyen de transport neuf (auto, bateau, avion), TVA par défaut=0 (La TVA doit être payée par acheteur au centre d'impôts de son pays et non au vendeur). Fin de règle.<br>Si vendeur et acheteur dans Communauté européenne et acheteur= particulier alors TVA par défaut=TVA du produit vendu. Fin de règle.<br>Si vendeur et acheteur sont dans la Communauté européenne et que l'acheteur est une société alors TVA par défaut=0. Fin de règle.<br>Sinon la TVA proposée par défaut=0. Fin de règle.
     VATIsNotUsedDesc=Le taux de TVA proposé par défaut est 0. C'est le cas d'associations, particuliers ou certaines petites sociétés.
     VATIsUsedExampleFR=En France, cela signifie que les entreprises ou les organisations sont assuetis à la tva (réel ou normal).
     VATIsNotUsedExampleFR=En France, il s'agit des associations ne déclarant pas de TVA ou sociétés, organismes ou professions libérales ayant choisi le régime fiscal micro entreprise (TVA en franchise) et payant une TVA en franchise sans faire de déclaration de TVA. Ce choix fait de plus apparaître la mention "TVA non applicable - art-293B du CGI" sur les factures.
     ##### Local Taxes #####
     LTRate=Taux
     LocalTax1IsNotUsed=Non assujeti
    -LocalTax1IsUsedDesc=Utilisation d'un 2ème type taxe (autre que TVA)
    -LocalTax1IsNotUsedDesc=Pas d'utilisation de 2ème type taxe (autre que TVA)
    +LocalTax1IsUsedDesc=Utilisation d'un 2ème type taxe (autre que le premier)
    +LocalTax1IsNotUsedDesc=Pas d'utilisation de 2ème type taxe (autre que le premier)
     LocalTax1Management=Gestion 2ème type de taxe
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Non assujeti
    -LocalTax2IsUsedDesc=Utilisation d'un 3ème type taxe (autre que TVA)
    -LocalTax2IsNotUsedDesc=Pas d'utilisation de 3ème type taxe (autre que TVA)
    +LocalTax2IsUsedDesc=Utilisation d'un 3ème type taxe (autre que le premier)
    +LocalTax2IsNotUsedDesc=Pas d'utilisation de 2ème type taxe (autre que le premier)
     LocalTax2Management=Gestion 3ème type de tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= Gestion RE
    -LocalTax1IsUsedDescES= Le taux de RE proposé par défaut lors de la création de proposition commercial, facture, commande, etc… répond à la règle standard suivante:<br>Si acheteur non assujetti à RE, RE par défaut=0. Fin de règle.<br>Si acheteur assujetti à RE alors RE par défaut. Fin de règle.<br>
    -LocalTax1IsNotUsedDescES= Le taux de RE proposé par défaut est 0. Fin de règle.
    -LocalTax1IsUsedExampleES= En Espagne, ce sont des professionnels sous réserve de certaines sections spécifiques de l'IAE Espagnol.
    -LocalTax1IsNotUsedExampleES= En Espagne, ce sont des sociétés en commandite, les sociétés anonymes, etc... et les individus (autonomes) sous réserve de certaines sections de l'IAE Espagnol.
    -LocalTax2ManagementES= Gestion IRPF
    -LocalTax2IsUsedDescES= L'IRPF proposé par défaut lors de la création de proposition commerciale, facture, commande, etc… répond à la règle standard suivante:<br>Si vendeur non assujetti à IRPF, IRPF par défaut=0. Fin de règle.<br>Si vendeur assujetti à IRPF alors IRPF par défaut. Fin de règle.<br>
    -LocalTax2IsNotUsedDescES= L'IRPF proposé par défaut est 0. Fin de règle.
    -LocalTax2IsUsedExampleES= En Espagne, ce sont des professionnels autonomes et indépendants qui offrent des services, et des sociétés qui ont choisi le système fiscal du module.
    -LocalTax2IsNotUsedExampleES= En Espagne, ce sont des sociétés qui ne sont pas soumises au système fiscal du module.
    +LocalTax1ManagementES=Gestion RE
    +LocalTax1IsUsedDescES=Le taux de RE proposé par défaut lors de la création de propale, facture, commande, etc... répond à la règle standard suivante:<br>Si acheteur non assujetti à RE, RE par défaut=0. Fin de règle.<br>Si acheteur assujetti à RE alors RE par défaut. Fin de règle.<br>
    +LocalTax1IsNotUsedDescES=Le taux de RE proposé par défaut est 0. Fin de règle.
    +LocalTax1IsUsedExampleES=En Espagne, ce sont des professionnels sous réserve de certaines sections spécifiques de l'IAE Espagnol.
    +LocalTax1IsNotUsedExampleES=En Espagne, ce sont des sociétés en commandite, les sociétés anonymes, etc... et les individus (autonomes) sous réserve de certaines sections de l'IAE Espagnol.
    +LocalTax2ManagementES=Gestion IRPF
    +LocalTax2IsUsedDescES=Le IRPF proposé par défaut lors de la création de propale, facture, commande, etc... répond à la règle standard suivante:<br>Si vendeur non assujetti à IRPF, IRPF par défaut=0. Fin de règle.<br>Si vendeur assujetti à IRPF alors IRPF par défaut. Fin de règle.<br>
    +LocalTax2IsNotUsedDescES=L'IRPF proposé par défaut est 0. Fin de règle.
    +LocalTax2IsUsedExampleES=En Espagne, ce sont des professionnels autonomes et indépendants qui offrent des services, et des sociétés qui ont choisi le système fiscal du module.
    +LocalTax2IsNotUsedExampleES=En Espagne, ce sont des sociétés qui ne sont pas soumises au système fiscal du module.
     CalcLocaltax=Rapports sur les taxes locales
     CalcLocaltax1=Ventes - Achats
     CalcLocaltax1Desc=Les rapports des Taxes locales sont calculées avec la différence entre les taxes locales de ventes et les taxes locales d'achats
    @@ -958,7 +966,9 @@ CalcLocaltax3=Ventes
     CalcLocaltax3Desc=Le Rapports des Taxes locales sont le total des taxes locales de ventes
     LabelUsedByDefault=Libellé qui sera utilisé si aucune traduction n'est trouvée pour ce code
     LabelOnDocuments=Libellé sur les documents
    -NbOfDays=Nbre de jours
    +LabelOrTranslationKey=Libellé ou clé de traduction
    +ValueOfConstantKey=Valeur de constante
    +NbOfDays=Nb. de jours
     AtEndOfMonth=En fin de mois
     CurrentNext=Current/Next
     Offset=Décalage
    @@ -984,7 +994,7 @@ DatabaseUser=Utilisateur de la base de données
     DatabasePassword=Mot de passe de la base de données
     Tables=Tables
     TableName=Nom de la table
    -NbOfRecord=Nb d'enr.
    +NbOfRecord=Nb. d'enregistrements
     Host=Serveur
     DriverType=Type du pilote
     SummarySystem=Résumé des informations systèmes
    @@ -996,7 +1006,7 @@ Skin=Thème visuel
     DefaultSkin=Thème visuel par défaut
     MaxSizeList=Longueur maximale des listes
     DefaultMaxSizeList=Longueur maximale par défaut des listes
    -DefaultMaxSizeShortList=Longueur maximale par défaut des listes courtes (e.g. dans la carte du client)
    +DefaultMaxSizeShortList=Longueur maximale par défaut des listes courtes (e.g. dans la fiche client)
     MessageOfDay=Message du jour
     MessageLogin=Message page de connexion
     LoginPage=Page de connexion
    @@ -1005,7 +1015,7 @@ PermanentLeftSearchForm=Zone de recherche permanente du menu de gauche
     DefaultLanguage=Langue à utiliser par défaut (code langue)
     EnableMultilangInterface=Activer l'interface multi-langue
     EnableShowLogo=Afficher le logo dans le menu gauche
    -CompanyInfo=Informations sur la société/organisation
    +CompanyInfo=Société/Organisation
     CompanyIds=Identifiants société/organisation
     CompanyName=Nom/Enseigne/Raison sociale
     CompanyAddress=Adresse
    @@ -1021,7 +1031,7 @@ OwnerOfBankAccount=Propriétaire du compte %s
     BankModuleNotActive=Module comptes bancaires non activé
     ShowBugTrackLink=Afficher lien <strong>"%s"</strong>
     Alerts=Alertes
    -DelaysOfToleranceBeforeWarning=Délais de tolérance avant alerte
    +DelaysOfToleranceBeforeWarning=Délais avant affichage de l'avertissement alerte retard
     DelaysOfToleranceDesc=Cet écran permet de définir les délais de tolérance après lesquels une alerte sera signalée à l'écran par le pictogramme %s sur chaque élément en retard.
     Delays_MAIN_DELAY_ACTIONS_TODO=Tolérance de retard avant alerte (en jours) sur les évènements planifiées (évènements de l'agenda) et pas encore réalisés
     Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolérance de retard (en jours) avant alerte pour les projets non clos à temps
    @@ -1032,19 +1042,19 @@ Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolérance de retard avant alerte (en jours)
     Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolérance de retard avant alerte (en jours) sur propales non facturées
     Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolérance de retard avant alerte (en jours) sur services à activer
     Delays_MAIN_DELAY_RUNNING_SERVICES=Tolérance de retard avant alerte (en jours) sur services expirés
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolérance de retard avant alerte (en jours) sur factures client impayées
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolérance de retard avant alerte (en jours) sur factures fournisseurs impayées
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolérance de retard avant alerte (en jours) sur factures fournisseurs impayées
     Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire
     Delays_MAIN_DELAY_MEMBERS=Tolérance de retard avant alerte (en jours) sur cotisations adhérents en retard
     Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolérance de retard avant alerte (en jours) sur chèques à déposer
     Delays_MAIN_DELAY_EXPENSEREPORTS=Tolérance de retard avant alerte (en jours) sur les notes de frais à approuver
    -SetupDescription1=L'espace configuration permet de réaliser le paramétrage afin de pouvoir commencer à utiliser l'application.
    -SetupDescription2=Les deux étapes obligatoires sont les 2 premières du menu de configuration, c'est à dire
    -SetupDescription3=Les paramètres dans le menu <a href="%s">%s -> %s</a>. Cette étape est requise car elle définie des données utilisées dans les écrans Dolibarr pour personnaliser le comportement par défaut du logiciel (pour les fonctionnalités liées à un pays par exemple).
    -SetupDescription4=Les paramètres dans le menu <a href="%s"> %s -> %s </a>. Cette étape est requise car Dolibarr ERP/CRM est un ensemble de plusieurs modules/applications, tous plus ou moins indépendants. Les fonctionnalités sont ajoutées aux menus pour chaque module que vous activez.
    +SetupDescription1=L'espace configuration permet de réaliser le paramétrage initial afin de pouvoir commencer à utiliser l'application.
    +SetupDescription2=Les deux étapes obligatoires sont les deux premières entrées dans le menu de configuration, soit
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Paramètres pour personnaliser le comportement par défaut du logiciel (comportement lié au pays par exemple).
    +SetupDescription4=<a href="%s"> %s -> %s </a><br>Cette étape est requise car Dolibarr ERP/CRM est un ensemble de plusieurs modules/applications, tous plus ou moins indépendants. Les fonctionnalités sont ajoutées aux menus pour chaque module que vous activez.
     SetupDescription5=Les autres entrées de configuration gèrent des paramètres facultatifs.
     LogEvents=Événements d'audit de sécurité
    -Audit=Audit
    +Audit=Audit de sécurité
     InfoDolibarr=Infos Dolibarr
     InfoBrowser=Infos navigateur
     InfoOS=Infos OS
    @@ -1056,18 +1066,18 @@ BrowserName=Nom du navigateur
     BrowserOS=OS du navigateur
     ListOfSecurityEvents=Liste des événements de sécurité Dolibarr
     SecurityEventsPurged=Evenement de sécurité purgés
    -LogEventDesc=Vous pouvez activer ici, la journalisation des événements d'audit de sécurité. Cet historique est consultable par les administrateurs dans le menu <b>Outils systèmes - Audit</b>. Attention, cette fonctionnalité peut générer un gros volume de données.
    +LogEventDesc=Vous pouvez activer ici, l'historique des événements d'audit de sécurité. Cet historique est consultable par les administrateurs dans le menu <b>%s - %s</b>. Attention, cette fonctionnalité peut générer un gros volume de données.
     AreaForAdminOnly=Les paramètres d'installation ne peuvent être remplis que par les <b>utilisateurs administrateurs</b> uniquement.
     SystemInfoDesc=Les informations systèmes sont des informations techniques diverses accessibles en lecture seule aux administrateurs uniquement.
     SystemAreaForAdminOnly=Cet espace n'est accessible qu'aux utilisateurs de type administrateur. Aucune permission Dolibarr ne permet d'étendre le cercle des utilisateurs autorisés à cet espace.
    -CompanyFundationDesc=Éditez sur cette page toutes les informations connues de la société ou de l'association que vous souhaitez gérer (Pour cela, cliquez sur les boutons "%s" ou "%s" en bas de page)
    +CompanyFundationDesc=Éditez sur cette page toutes les informations connues de la société ou de l'association que vous souhaitez gérer. Pour cela, cliquez sur les boutons "%s" ou "%s" en bas de page.
     AccountantDesc=Renseignez sur cette page toutes les informations connues sur votre comptable
     AccountantFileNumber=Numéro de fichier
     DisplayDesc=Vous pouvez choisir ici tous les paramètres liés à l'apparence de Dolibarr
     AvailableModules=Modules/applications installés
     ToActivateModule=Pour activer des modules, aller dans l'espace Configuration (Accueil->Configuration->Modules).
     SessionTimeOut=Délai expiration des sessions
    -SessionExplanation=Ce nombre garanti que la session n'expire pas avant ce délai, lorsque le nettoyage des sessions est assurés par le mécanisme de nettoyage interne à PHP (et aucun autre). Le nettoyage interne de sessions PHP ne garantie pas que la session expire juste au moment de ce délai. Elle expirera après ce délai, mais au moment du nettoyage des sessions, qui a lieu toutes les <b>%s/%s</b> accès environ, mais uniquement lors d'accès fait par d'autres sessions.<br>Note : sur certains serveurs munis d'un mécanisme de nettoyage de session externe (cron sous Debian, Ubuntu…), le sessions peuvent être détruites après un délai, défini par la valeur par défaut de <strong>session.gc_maxlifetime</strong>, quelle que soit la valeur saisie ici.
    +SessionExplanation=Ce nombre garanti que la session n'expire pas avant ce délai, lorsque le nettoyage des sessions est assurés par le mécanisme de nettoyage interne à PHP (et aucun autre). Le nettoyage interne de sessions PHP ne garantie pas que la session expire juste au moment de ce délai. Elle expirera après ce délai, mais au moment du nettoyage des sessions, qui a lieu toutes les <b>%s/%s</b> accès environ, mais uniquement lors d'accès fait par d'autres sessions (si la valeur est 0, cela signifie que le nettoyage des session est fait par un process externe).<br>Note: sur certains serveurs munis d'un mécanisme de nettoyage de session externe (cron sous Debian, Ubuntu…), le sessions peuvent être détruites après un délai, défini par une configuration extérieure,  quelle que soit la valeur saisie ici.
     TriggersAvailable=Déclencheurs disponibles
     TriggersDesc=Les déclencheurs sont des fichiers qui, une fois déposés dans le répertoire <b>htdocs/core/triggers</b>, modifient le comportement du workflow de Dolibarr. Ils réalisent des actions supplémentaires, déclenchées par les événements Dolibarr (création société, validation facture, clôture contrat…).
     TriggerDisabledByName=Déclencheurs de ce fichier désactivés par le suffix <b>-NORUN</b> dans le nom du fichier.
    @@ -1087,15 +1097,15 @@ MAIN_ROUNDING_RULE_TOT=Pas de la plage d'arrondi (pour les pays où l'arrondi se
     UnitPriceOfProduct=Prix unitaire HT d'un produit
     TotalPriceAfterRounding=Prix total (HT/TVA/TTC) après arrondis
     ParameterActiveForNextInputOnly=Paramètre effectif pour les prochaines saisies uniquement
    -NoEventOrNoAuditSetup=Aucun événement d'audit de sécurité n'a été enregistré. Ceci peut être normal si l'audit n'a pas été activé dans la configuration - sécurité - audit.
    -NoEventFoundWithCriteria=Aucun événement d'audit de sécurité trouvé avec ces critères.
    +NoEventOrNoAuditSetup=Aucun événement d'audit de sécurité n'a été enregistré. Ceci peut être normal si l'audit n'a pas été activé dans "Configuration - Sécurité - Evénements de sécurité".
    +NoEventFoundWithCriteria=Aucun événement d'audit de sécurité trouvé avec ces critères de recherche.
     SeeLocalSendMailSetup=Voir la configuration locale de sendmail
     BackupDesc=Pour réaliser une sauvegarde complète de Dolibarr, vous devez :
     BackupDesc2=Sauvegardez le contenu du répertoire document (<b>%s</b>) qui contient tous les fichiers envoyés et générés (Par conséquent il contient également les fichiers dump générés à l'étape 1).
     BackupDesc3=Sauvez le contenu de votre base de données (<b>%s</b>) dans un fichier « dump ». Pour cela vous pouvez utiliser l'assistant ci-dessous.
     BackupDescX=Le répertoire archivé devra être placé en lieu sûr.
     BackupDescY=Le fichier « dump » généré devra être placé en lieu sûr.
    -BackupPHPWarning=La sauvegarde n'est pas garantie avec cette méthode. Préférez la méthode précédente.
    +BackupPHPWarning=La sauvegarde n'est pas garantie avec cette méthode. Il est recommandé d'utiliser la méthode précédente.
     RestoreDesc=Pour restaurer une sauvegarde de Dolibarr, vous devez :
     RestoreDesc2=Restaurez le fichier archive (fichier zip par exemple) du répertoire documents en extrayant l'arborescence dans le répertoire documents d'une nouvelle installation de Dolibarr ou dans le répertoire documents de cette installation (<b>%s</b>).
     RestoreDesc3=Restaurez les données, depuis le fichier « dump » de sauvegarde, dans  la base de données d'une nouvelle installation de Dolibarr ou de cette instance en cours (<b>%s</b>). Attention, une fois la restauration faite, il faudra utiliser un identifiant/mot de passe administrateur existant à l'époque de la sauvegarde pour se connecter. Pour restaurer la base dans l'installation actuelle, vous pouvez utiliser l'assistant suivant.
    @@ -1109,7 +1119,7 @@ YourPHPDoesNotHaveSSLSupport=Fonctions SSL non présentes dans votre PHP
     DownloadMoreSkins=Plus de thèmes à télécharger
     SimpleNumRefModelDesc=Renvoie le numéro sous la forme %syymm-nnnn où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0.
     ShowProfIdInAddress=Afficher l'identifiant professionnel dans les adresses sur les documents
    -ShowVATIntaInAddress=Cacher l'identifiant de TVA Intracommunautaire dans les adresses sur les documents
    +ShowVATIntaInAddress=Cacher l'identifiant de TVA Intracommunautaire dans les adresses sur les documents.
     TranslationUncomplete=Traduction partielle
     MAIN_DISABLE_METEO=Désactiver la vue météo
     MeteoStdMod=Mode standard
    @@ -1118,7 +1128,7 @@ MeteoPercentageMod=Mode pourcentage
     MeteoPercentageModEnabled=Mode pourcentage activé
     MeteoUseMod=Cliquez pour utiliser %s
     TestLoginToAPI=Tester connexion à l'API
    -ProxyDesc=Certaines fonctions de Dolibarr nécessitent que le serveur ait accès à internet. Définissez ici les paramètres de ces accès. Si le serveur Dolibarr est derrière un proxy, ces paramètres indiquent à Dolibarr comment le traverser.
    +ProxyDesc=Certaines fonctions de Dolibarr nécessitent que le serveur ait accès à internet. Définissez ici les paramètres pour les fonctions qui nécessitent cet  accès. Si le serveur Dolibarr est derrière un proxy, ces paramètres indiquent à Dolibarr comment accéder à internet à travers celui-ci.
     ExternalAccess=Accès externes
     MAIN_PROXY_USE=Utiliser un serveur proxy mandataire (sinon accès direct à internet)
     MAIN_PROXY_HOST=Nom/Adresse du serveur proxy mandataire
    @@ -1146,13 +1156,13 @@ AlphaNumOnlyLowerCharsAndNoSpace=uniquement des caractères alphanumériques et
     SendmailOptionNotComplete=Attention, sur certains systèmes Linux, avec cette méthode d'envoi, pour pouvoir envoyer des emails en votre nom, la configuration d'exécution de sendmail doit contenir l'option <b>-ba</b> (paramètre <b>mail.force_extra_parameters</b> dans le fichier <b>php.ini</b>). Si certains de vos destinataires ne reçoivent pas de message, essayer de modifier ce paramètre PHP avec <b>mail.force_extra_parameters = -ba</b>.
     PathToDocuments=Chemin d'accès aux documents
     PathDirectory=Répertoire
    -SendmailOptionMayHurtBuggedMTA=La fonction d'envoi de mails par la méthode "PHP mail directe" génère un message mail qui peut être mal interprété par certains serveurs mal configurés de réception de mail. Cela se traduit par des mails non lisibles chez les personnes hébergés par ces plateformes boguées. C'est le cas des clients de certains fournisseurs d'accès internet (Ex: Orange). Ce n'est pas un problème, ni dans Dolibarr ni dans PHP mais sur le serveur de réception. Vous pouvez toutefois ajouter l'option MAIN_FIX_FOR_BUGGED_MTA à 1 dans configuration - divers pour modifier Dolibarr afin de compenser le bug. Toutefois ce sont les serveurs respectueux du standard d'envoi de mail qui pourront avoir des problèmes. L'autre solution (recommandée) est d'utiliser la méthode d'envoi SMTP socket library qui n'a aucun de ces inconvénients.
    +SendmailOptionMayHurtBuggedMTA=La fonction permettant d’envoyer des e-mails à l’aide de la méthode "PHP mail direct" générera un message qui risque de ne pas être analysé correctement par certains serveurs de messagerie. Le résultat est que certains mails ne peuvent pas être lus par des personnes hébergées par ces plateformes. C'est le cas de certains fournisseurs d'accès Internet (Ex: Orange en France). Ce n'est pas un problème avec Dolibarr ou PHP, mais avec le serveur de messagerie destinataire. Vous pouvez cependant ajouter une option MAIN_FIX_FOR_BUGGED_MTA à 1 dans Configuration - Autre pour modifier Dolibarr afin d'éviter cela. Cependant, vous pouvez rencontrer des problèmes avec d'autres serveurs qui utilisent strictement le standard SMTP. L'autre solution (recommandée) consiste à utiliser la méthode "Bibliothèque de socket SMTP" qui ne présente aucun inconvénient.
     TranslationSetup=Configuration de la traduction
     TranslationKeySearch=Rechercher une traduction
     TranslationOverwriteKey=Ajouter une traduction
    -TranslationDesc=Pour sélectionner la langue d'affichage de l'environnement : <br>* langue par défaut : menu <strong>Accueil - Configuration - Affichage</strong><br>* langue par utilisateur: Onglet <strong>Interface utilisateur</strong> de la fiche utilisateur (Accès a la fiche de l'utilisateur depuis l'identifiant dans l'angle supérieur droit de l'écran).
    +TranslationDesc=Pour sélectionner la langue d'affichage de l'environnement : <br>* Au niveau global: menu <strong>Accueil - Configuration - Affichage</strong><br>* Configuration au niveau de l'utilisateur: Utilisez l'onglet <strong>Interface utilisateur</strong> de la fiche utilisateur (Accès a la fiche de l'utilisateur depuis l'identifiant dans l'angle supérieur droit de l'écran).
     TranslationOverwriteDesc=Vous pouvez aussi écraser des valeurs en complétant/corrigeant le tableau suivant. Choisissez votre code de langue depuis la liste déroulante "%s", choisissez le code trouvé dans le fichier lang dans le champ "%s", et dans "%s" la nouvelle valeur que vous souhaitez utiliser comme nouvelle traduction.
    -TranslationOverwriteDesc2=Vous pouvez utiliser l'autre onglet pour vous aider à connaître la clé de traduction à utiliser
    +TranslationOverwriteDesc2=Vous pouvez utilisez l'autre onglet pour vous aider à trouver la clé de traduction à utiliser
     TranslationString=Traduction
     CurrentTranslationString=Chaîne de traduction actuelle
     WarningAtLeastKeyOrTranslationRequired=Un critère de recherche est nécessaire au moins pour la clé ou la valeur de traduction
    @@ -1167,16 +1177,17 @@ OnlyFollowingModulesAreOpenedToExternalUsers=Remarque, seuls les modules suivant
     SuhosinSessionEncrypt=Stockage des sessions chiffrées par Suhosin
     ConditionIsCurrently=La condition est actuellement %s
     YouUseBestDriver=Vous utilisez le driver %s qui est le driver recommandé actuellement.
    -YouDoNotUseBestDriver=Vous utilisez le driver %s mais le driver %s est recommandé.
    -NbOfProductIsLowerThanNoPb=Vous n'avez que %s produits/services en base. Ceci ne requiert pas d'optimisation particulière.
    -SearchOptim=Optimization des recherches
    -YouHaveXProductUseSearchOptim=Vous avez %s produits/services en base. Il est recommandé d'ajouter la constante PRODUCT_DONOTSEARCH_ANYWHERE à 1 dans Accueil-Configuration-Divers, vous limiterez ainsi la recherche au début de la chaine rendant possible l'utilisation de l'index et obtiendrez une réponse immédiate.
    -BrowserIsOK=Vous utilisez le navigateur %s. Ce navigateur est réputé optimisé pour la sécurité et performance.
    -BrowserIsKO=Vous utilisez le navigateur %s. Ce navigateur est déconseillé pour des raisons de sécurité, performance et qualité des pages restituées. Nous vous recommandons d'utiliser Firefox, Chrome, Opera ou Safari.
    +YouDoNotUseBestDriver=Vous utilisez le pilote %s mais le pilote %s est recommandé.
    +NbOfProductIsLowerThanNoPb=Vous avez uniquement %s produits / services dans la base de données. Cela ne nécessite aucune optimisation particulière.
    +SearchOptim=Optimisation des recherches
    +YouHaveXProductUseSearchOptim=Vous avez des produits %s dans la base de données. Vous devez ajouter la constante PRODUCT_DONOTSEARCH_ANYWHERE à 1 dans Home-Setup-Other. Limitez la recherche au début des chaînes, ce qui permet à la base de données d'utiliser des index et vous devez obtenir une réponse immédiate.
    +BrowserIsOK=Vous utilisez le navigateur Web %s. Ce navigateur est correct pour la sécurité et la performance.
    +BrowserIsKO=Vous utilisez le navigateur Web %s. Ce navigateur est connu pour être un mauvais choix pour la sécurité, la performance et la fiabilité. Nous vous recommandons d'utiliser Firefox, Chrome, Opera ou Safari.
     XDebugInstalled=XDebug est chargé.
     XCacheInstalled=XCache est chargé.
    -AddRefInList=Afficher les références client/fournisseur dans les listes (listes déroulantes ou à autocomplétion) et les libellés des liens clicables. Les tiers apparaîtront alors sous la forme "CC12345 - SC45678 - La big company coorp", au lieu de "La big company coorp".
    -AskForPreferredShippingMethod=Demander la méthode d'expédition préférée pour les tiers.
    +AddRefInList=Afficher les références client/fournisseur dans les listes (listes déroulantes ou à autocomplétion) et les libellés des liens clicables.<br>Les tiers apparaîtront alors sous la forme "CC12345 - SC45678 - La big company coorp", au lieu de "La big company coorp".
    +AddAdressInList=Affiche les informations sur l’adresse du client/fournisseur (liste de sélection ou liste déroulante) <br> Les tiers apparaîtront avec le format de nom suivant: "The Big Company corp. - 21, rue du saut 123456 Big town - USA" au lieu de "The Big Company corp".
    +AskForPreferredShippingMethod=Demander la méthode d'expédition préférée pour les Tiers
     FieldEdition=Édition du champ %s
     FillThisOnlyIfRequired=Exemple: +2 (ne remplir que si un décalage d'heure est constaté dans l'export)
     GetBarCode=Récupérer code barre
    @@ -1195,19 +1206,19 @@ UserMailRequired=Email requis pour créer un nouvel utilisateur
     HRMSetup=Configuration du module GRH
     ##### Company setup #####
     CompanySetup=Configuration du module Tiers
    -CompanyCodeChecker=Modèle de génération et contrôle des codes tiers (client ou fournisseur)
    -AccountCodeManager=Modèle de génération des codes comptables (client ou fournisseur)
    +CompanyCodeChecker=Options pour la génération automatique de codes client / fournisseur
    +AccountCodeManager=Options pour la génération automatique de codes comptable client ou fournisseur
     NotificationsDesc=Les notifications activent l'envoi d'e-mails automatiques pour certains événements de Dolibarr. L'envoi de ces e-mails automatiques est défini selon :
     NotificationsDescUser=* par utilisateurs, utilisateur par utilisateur.
     NotificationsDescContact=* par tiers de contacts (clients ou fournisseur), contact par contact.
     NotificationsDescGlobal=* ou en définissant des emails cibles fixes sur la page de configuration du module.
     ModelModules=Modèle de documents
    -DocumentModelOdt=Génération depuis des modèles OpenDocument (Fichier .ODT ou .ODS OpenOffice, KOffice, TextEdit…)
    +DocumentModelOdt=Génération depuis des modèles OpenDocument (Fichier .ODT ou .ODS LibreOffice, KOffice, TextEdit…)
     WatermarkOnDraft=Filigrane sur les documents brouillons
     JSOnPaimentBill=Activer la fonctionnalité de remplissage automatique des lignes de paiement sur le formulaire de paiement
     CompanyIdProfChecker=Règles sur les Identifiants professionnels
     MustBeUnique=Doit être unique ?
    -MustBeMandatory=Obligatoire pour créer des tiers (si num tva ou type de société défini) ?
    +MustBeMandatory=Obligatoire pour créer des tiers (si le numéro de TVA ou le type d'entreprise est défini) ?
     MustBeInvoiceMandatory=Obligatoire pour valider des factures ?
     TechnicalServicesProvided=Services techniques fournis
     #####DAV #####
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Un lien d'exportation du calendrier au format <b>%s</b> s
     BillsSetup=Configuration du module Factures
     BillsNumberingModule=Modèle de numérotation des factures et avoirs
     BillsPDFModules=Modèle de document de factures
    +BillsPDFModulesAccordindToInvoiceType=Modèles de documents de facturation en fonction du type de facture
     PaymentsPDFModules=Modèle de document pour les règlements
     CreditNote=Avoir
     CreditNotes=Avoirs
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Gérer un identifiant pour chaque adhérent
     AdherentMailRequired=Email obligatoire pour créer un nouvel adhérent
     MemberSendInformationByMailByDefault=Case à cocher pour envoyer un email de confirmation (validation ou nouvelle cotisation) aux adhérents est à oui par défaut.
     VisitorCanChooseItsPaymentMode=Le visiteur peut choisir parmi les modes de paiement disponibles
    +MEMBER_REMINDER_EMAIL=Activer le rappel automatique <b> par e-mail </b> des abonnements expirés. Remarque: le module <strong> %s </strong> doit être activé et configuré correctement pour qu'un rappel soit envoyé.
     ##### LDAP setup #####
     LDAPSetup=Configuration du module LDAP
     LDAPGlobalParameters=Paramètres globaux
    @@ -1346,8 +1359,8 @@ LDAPSynchroKO=Échec du test de synchronisation
     LDAPSynchroKOMayBePermissions=Échec du test de synchronisation. Vérifier que la connexion au serveur est correctement configurée et permet les mises à jour LDAP
     LDAPTCPConnectOK=Connexion TCP au serveur LDAP réussie (Serveur=%s, Port=%s)
     LDAPTCPConnectKO=Connexion TCP au serveur LDAP échouée (Serveur=%s, Port=%s)
    -LDAPBindOK=Connection/Authentification au serveur LDAP réussie (Serveur=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connexion/Authentification au serveur LDAP échouée (Serveur=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connexion / Authentification réussie sur le serveur LDAP (Serveur = %s, Port = %s, Admin = %s, Mot de passe = %s)
    +LDAPBindKO=La connexion / l'authentification au serveur LDAP a échoué (serveur = %s, port = %s, administrateur = %s, mot de passe = %s)
     LDAPSetupForVersion3=Serveur LDAP configuré en version 3
     LDAPSetupForVersion2=Serveur LDAP configuré en version 2
     LDAPDolibarrMapping=Mapping Dolibarr
    @@ -1409,21 +1422,21 @@ LDAPDescMembersTypes=Cette page permet de définir le nom des attributs de l'arb
     LDAPDescValues=Les valeurs exemples sont adaptées à <b>OpenLDAP</b> avec les schémas suivant chargés: <b>core.schema, cosine.schema, inetorgperson.schema</b>). Si vous utilisez les valeurs suggérées et OpenLDAP, modifiez votre fichier de configuration LDAP <b>slapd.conf</b> pour avoir tous ces schémas actifs.
     ForANonAnonymousAccess=Pour un accès authentifié (pour accès en écriture par exemple)
     PerfDolibarr=Rapport de configuration/optimisation sur la performance
    -YouMayFindPerfAdviceHere=Sur cette page vous trouverez quelques indicateurs ou conseils pour optimiser la performance.
    -NotInstalled=Non installé, aussi votre serveur n'est pas ralentit par cela.
    +YouMayFindPerfAdviceHere=Cette page fournit des vérifications ou des conseils relatifs aux performances.
    +NotInstalled=Non installé, votre serveur n'est donc pas ralenti.
     ApplicativeCache=Cache applicatif
     MemcachedNotAvailable=Aucun cache applicatif trouvé. Vous pouvez accélérer les performances de Dolibarr en installant un serveur de cache Memcached et un module de cache applicatif exploitant ce serveur.<br>Plus d'info sur la page <a href="http://wiki.dolibarr.org/index.php/Module_MemCached">http://wiki.dolibarr.org/index.php/Module_MemCached</a>. Notez que de nombreux hébergeurs low-cost ne fournissent pas de tels serveurs de cache dans leur infrastructure.
     MemcachedModuleAvailableButNotSetup=Le module memcached pour le cache applicatif a été trouvé mais la configuration de ce module n'est pas complète.
     MemcachedAvailableAndSetup=Le module memcached dédié à l'utilisation du serveur de cache memcached est activé.
     OPCodeCache=Cache OPCode
    -NoOPCodeCacheFound=Pas de cache OPCode trouvé. Peut-être utilisez-vous un cache OPCode différent de XCache ou eAccelerator (bien), peut-être n'avez vous pas du tout de cache OPCode (très mauvais).
    +NoOPCodeCacheFound=Aucun cache OPCode trouvé. Peut-être utilisez-vous un cache OPCode autre que XCache ou eAccelerator (bon) ou n’avez-vous pas un cache OPCode (très mauvais).
     HTTPCacheStaticResources=Cache HTTP des ressources statiques (css, img, javascript)
     FilesOfTypeCached=Fichiers de type %s mis en cache par le serveur HTTP
     FilesOfTypeNotCached=Fichiers de type %s non mis en cache par le serveur HTTP
     FilesOfTypeCompressed=Fichiers de type %s compressé par le serveur HTTP
     FilesOfTypeNotCompressed=Fichiers de type %s non compressé par le serveur HTTP
     CacheByServer=Cache par le serveur
    -CacheByServerDesc=Par exemple, en utilisant la directive Apache "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=Par exemple, en utilisant la directive Apache "ExpiresByType image / gif A2592000"
     CacheByClient=Cache par le navigateur
     CompressionOfResources=Compression des réponses HTTP
     CompressionOfResourcesDesc=Par exemple, en utilisant la directive Apache "AddOutputFilterByType DEFLATE"
    @@ -1433,15 +1446,16 @@ DefaultCreateForm=Valeurs par défaut (sur les formulaires de création)
     DefaultSearchFilters=Filtres de recherche par défaut
     DefaultSortOrder=Ordre de tri par défaut 
     DefaultFocus=Champs par défaut ayant le focus
    +DefaultMandatory=Champs de formulaire obligatoires
     ##### Products #####
     ProductSetup=Configuration du module Produits
     ServiceSetup=Configuration du module Services
     ProductServiceSetup=Configuration des modules Produits et Services
     NumberOfProductShowInSelect=Nombre maximum de produits dans les listes déroulantes (0=aucune limite)
    -ViewProductDescInFormAbility=Visualisation des descriptions produits dans les formulaires (sinon en tant que bulle d'aide)
    +ViewProductDescInFormAbility=Afficher les descriptions de produits dans des formulaires (sinon, comme info-bulle contextuelle)
     MergePropalProductCard=Ajoute dans l'onglet Fichiers joints des produits/services, une option pour fusionner le document PDF du produit au PDF des propositions Azur si le produit/services est inclut dans la proposition.
    -ViewProductDescInThirdpartyLanguageAbility=Visualisation des descriptions de produits dans la langue du tiers
    -UseSearchToSelectProductTooltip=Si vous avez un nombre important de produits (>100 000), vous pourrez améliorer les performances en positionnant la constante PRODUCT_DONOTSEARCH_ANYWHERE à 1 dans Configuration->Divers. La recherche sera alors limité au début des chaines.
    +ViewProductDescInThirdpartyLanguageAbility=Afficher les descriptions de produits dans la langue du tiers
    +UseSearchToSelectProductTooltip=De même, si vous avez un grand nombre de produits (> 100 000), vous pouvez augmenter la vitesse en définissant une constante PRODUCT_DONOTSEARCH_ANYWHERE sur 1 dans Configuration-> Autre. La recherche sera alors limitée au début de la chaîne.
     UseSearchToSelectProduct=Attendre que vous ayez appuyé sur une touche avant de charger le contenu de la liste déroulante des produits (Cela peut augmenter les performances si vous avez un grand nombre de produits, mais cela est moins convivial)
     SetDefaultBarcodeTypeProducts=Type de code-barre utilisé par défaut pour les produits
     SetDefaultBarcodeTypeThirdParties=Type de code-barre utilisé par défaut pour les tiers
    @@ -1505,6 +1519,11 @@ SendingsNumberingModules=Modèles de numérotation des expéditions
     SendingsAbility=Prise en charge des bons d'expédition pour les livraisons clients
     NoNeedForDeliveryReceipts=Dans le plupart des cas, la fiche expédition est utilisée en tant que bon d'expédition (liste des produits expédiés) et bon de livraison (signée par le client). Le bon de réception est un doublon de fonctionnalité et est rarement utilisé.
     FreeLegalTextOnShippings=Mention complémentaire sur les expéditions
    +##### Reception #####
    +ReceptionsSetup=Configuration du module Réception
    +ReceptionsReceiptModel=Modèles de bordereau de réception
    +ReceptionsNumberingModules=Modèles de numérotation des réceptions
    +FreeLegalTextOnShippings=Mention complémentaire sur les réceptions
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Modèle de numérotation des bons de réception client
     DeliveryOrderModel=Modèle de bon de réception client
    @@ -1520,13 +1539,13 @@ FCKeditorForMailing= Création/édition WYSIWIG des emailings (Outils->Emailings
     FCKeditorForUserSignature=Création/édition WYSIWIG de la signature des utilisateurs
     FCKeditorForMail=Création/édition WYSIWIG tous les emails (sauf Outils->Emailings)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=La connexion a réussi mais la base ne semble pas être une base OSCommerce (clé %s  non trouvée dans la table %s).
    +OSCommerceErrorConnectOkButWrongDatabase=La connexion a réussi, mais la base de données ne semble pas être une base de données OSCommerce (la clé %s n’a pas été trouvée dans le tableau %s).
     OSCommerceTestOk=La connexion au serveur '%s' sur la base '%s' par l'utilisateur '%s' a réussi.
    -OSCommerceTestKo1=La connexion au serveur '%s' a réussi mais la base '%s' n'a pu être atteinte.
    +OSCommerceTestKo1=La connexion au serveur '%s' a réussi mais la base de données '%s' n'a pas pu être atteinte.
     OSCommerceTestKo2=La connexion au serveur '%s' par l'utilisateur '%s' à échoué.
     ##### Stock #####
     StockSetup=Configuration du module Stock / Entrepôt
    -IfYouUsePointOfSaleCheckModule=Si vous utilisez un module Point de Vente (module POS fourni par défaut ou un autre module externe), cette configuration peut être ignoré par votre module point de vente. La plupart de modules Point de Vente sont conçus pour créer immédiatement une facture et de réduire les stocks par défaut quelles que soient les options ici. Donc, si vous avez besoin ou non d'avoir une diminution du stock lors de l'enregistrement d'une vente dans votre Point de Vente, vérifiez également la configuration de votre module POS.
    +IfYouUsePointOfSaleCheckModule=Si vous utilisez le module de point de vente (PDV) fourni par défaut ou un module externe, cette configuration peut être ignorée par votre module de PDV. La plupart des modules de PDV sont conçus par défaut pour créer une facture immédiatement et réduire le stock quelles que soient les options proposées. Donc, si vous avez besoin ou non d'une réduction de stock lors de l'enregistrement d'une vente depuis votre point de vente, vérifiez également la configuration de votre module de point de vente.
     ##### Menu #####
     MenuDeleted=Menu supprimé
     Menus=Menus
    @@ -1548,7 +1567,7 @@ DetailRight=Condition d'affichage plein ou grisé
     DetailLangs=Fichier .lang pour la traduction du code libellé
     DetailUser=Interne / Externe / Tous
     Target=Cible
    -DetailTarget=Cible liens menu (_blank pour ouvrir une nouvelle fenêtre)
    +DetailTarget=Cible pour les liens (_blank ouvre une nouvelle fenêtre)
     DetailLevel=Niveau (-1:menu haut, 0:entête menu, >0 menu et sous menu)
     ModifMenu=Modification du menu
     DeleteMenu=Effacer entrée de menu
    @@ -1580,21 +1599,21 @@ AccountancyCodeBuy=Code comptable achat
     AgendaSetup=Configuration du module actions et agenda
     PasswordTogetVCalExport=Clé pour autoriser le lien d'exportation
     PastDelayVCalExport=Ne pas exporter les événements de plus de
    -AGENDA_USE_EVENT_TYPE=Utilisez les types d'événements (gérés dans le menu Configuration -> Dictionnaires -> Type d'événements agenda)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Configurez automatiquement cette valeur par défaut pour un type d'événement dans un formulaire de création d'événement.
    -AGENDA_DEFAULT_FILTER_TYPE=Positionner automatiquement ce type d'événement dans le filtre de recherche de la vue agenda
    -AGENDA_DEFAULT_FILTER_STATUS=Positionner automatiquement ce statut d'événement dans le filtre de recherche de la vue agenda
    +AGENDA_USE_EVENT_TYPE=Utiliser les types d'événements (gérés dans le menu Configuration -> Dictionnaires -> Type d'événements de l'agenda)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Définir automatiquement cette valeur par défaut pour le type d'événement dans le formulaire de création d'événement
    +AGENDA_DEFAULT_FILTER_TYPE=Définir automatiquement ce type d'événement dans le filtre de recherche de la vue agenda
    +AGENDA_DEFAULT_FILTER_STATUS=Définir automatiquement cet état pour les événements dans le filtre de recherche de la vue agenda
     AGENDA_DEFAULT_VIEW=Quel onglet voulez-vous voir ouvrir par défaut quand on choisit le menu Agenda
     AGENDA_REMINDER_EMAIL=Activer le rappel d'événement <b> par e-mail </b> (l'option de rappel / délai peut être défini pour chaque événement). Remarque: Le module <strong> %s </strong> doit être activé et configuré correctement pour que le rappel soit envoyé à la bonne fréquence.
    -AGENDA_REMINDER_BROWSER=Activer la notification d'événement <b>dans le navigateur de l'utilisateur</b> (lorsque la date de l'événement est atteinte, chaque utilisateur peut refuser ceci au moment de la question de confirmation posée par le navigateur)
    +AGENDA_REMINDER_BROWSER=Activer le rappel d'événement <b> sur le navigateur de l'utilisateur </b> (lorsque la date de l'événement est atteinte, chaque utilisateur peut le refuser à partir de la question de confirmation du navigateur)
     AGENDA_REMINDER_BROWSER_SOUND=Activer les notifications sonores.
     AGENDA_SHOW_LINKED_OBJECT=Afficher l'objet lié dans la vue agenda
     ##### Clicktodial #####
     ClickToDialSetup=Configuration du module Click To Dial
     ClickToDialUrlDesc=URL appelée quand un clic sur l'icône téléphone est fait. Dans l'URL, vous pouvez utiliser les tags<br><b>__PHONETO__</b> qui sera remplacée par le numéro de téléphone de la personne à appeler<br><b>__PHONEFROM__</b> qui sera remplacée par le numéro de l'appelant (vous)<br><b>__LOGIN__</b> qui sera remplacée par l'identifiant d'accès de l'utilisateur à l'application d'appel (à définir sur la fiche utilisateur) et <br><b>__PASS__</b> qui sera remplacée par le mot de passe d'accès de l'utilisateur à l'application d'appel (également à définir sur la fiche utilisateur).
    -ClickToDialDesc=Ce module permet de rendre un numéro de téléphone cliquable. Un clique sur cet icone fera votre téléphone appeler le numéro cliqué. Ce module peut être utilisé pour appeler un système de centre d'appel à partir de Dolibarr. 
    +ClickToDialDesc=Ce module permet de rendre les numéros de téléphone cliquables. Un clic sur cette icône appellera votre téléphone à composer le numéro de téléphone. Cela peut être utilisé pour appeler un système de centre d'appels de Dolibarr qui peut appeler le numéro de téléphone d'un système SIP, par exemple.
     ClickToDialUseTelLink=Utiliser un lien «Tel.» sur les numéros de téléphone
    -ClickToDialUseTelLinkDesc=Utilisez cette méthode si vos utilisateurs ont un softphone ou une interface de logiciel installé sur un même ordinateur que le navigateur, et a appelé lorsque vous cliquez sur un lien dans votre navigateur qui commencent par "tel:". Si vous avez besoin d'une solution de serveur complet (pas besoin d'installation locale du logiciel), vous devez définir ce "Non" et remplissez champ suivant.
    +ClickToDialUseTelLinkDesc=Utilisez cette méthode si vos utilisateurs ont un softphone ou une interface de logiciel installé sur un même ordinateur que le navigateur, et a appelé lorsque vous cliquez sur un lien dans votre navigateur qui commencent par "tel:". Si vous avez besoin d'une solution de serveur complet (pas besoin d'installation locale du logiciel), vous devez définir ceci à  "Non" et remplir le champ suivant.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Caisse enregistreuse
     CashDeskSetup=Configuration du module Point de vente/caisse enregistreuse
    @@ -1602,11 +1621,11 @@ CashDeskThirdPartyForSell=Tiers générique à utiliser par défaut pour les ven
     CashDeskBankAccountForSell=Compte par défaut à utiliser pour l'encaissement en liquide
     CashDeskBankAccountForCheque= Compte par défaut à utiliser pour l'encaissement en chèque
     CashDeskBankAccountForCB= Compte par défaut à utiliser pour l'encaissement en carte de crédit
    -CashDeskDoNotDecreaseStock=Désactiver la réduction de stocks systématique lorsque une vente se fait à partir du Point de Vente (si «non», la réduction du stock est faite pour chaque vente faite depuis le POS, quelquesoit l'option de changement de stock définit dans le module Stock).
    +CashDeskDoNotDecreaseStock=Désactiver la réduction de stock lorsqu'une vente est effectuée à partir du point de vente (si "non", une réduction de stock est effectuée pour chaque vente effectuée à partir du point de vente, quelle que soit l'option définie dans le module Stock).
     CashDeskIdWareHouse=Forcer et restreindre l'emplacement/entrepôt à utiliser pour la réduction de stock
    -StockDecreaseForPointOfSaleDisabled=Réduction de stock lors de l'utilisation du Point de Vente désactivée
    +StockDecreaseForPointOfSaleDisabled=Diminution du stock du point de vente désactivé
     StockDecreaseForPointOfSaleDisabledbyBatch=La décrémentation de stock depuis ce module Point de Vente n'est pas encore compatible avec la gestion des numéros de lots/série.
    -CashDeskYouDidNotDisableStockDecease=Vous n'avez pas désactivé la réduction de stocks lors de la réalisation d'une vente depuis le Point de Vente. Aussi, un entrepôt/emplacement est nécessaire.
    +CashDeskYouDidNotDisableStockDecease=Vous n'avez pas désactivé la réduction de stock lors d'une vente depuis le point de vente. Par conséquent, un entrepôt est nécessaire.
     ##### Bookmark #####
     BookmarkSetup=Configuration du module Marque-pages
     BookmarkDesc=Ce module vous permet de gérer des liens et raccourcis. Il permet aussi d'ajouter n'importe quelle page de Dolibarr ou lien web dans le menu d'accès rapide sur la gauche.
    @@ -1654,7 +1673,7 @@ ProjectsSetup=Configuration du module Projets
     ProjectsModelModule=Modèles de document de rapport projets
     TasksNumberingModules=Modèles de numérotation des références tâches
     TaskModelModule=Modèles de document de rapport tâches
    -UseSearchToSelectProject=Attendre que vous ayez appuyé sur une touche avant de charger le contenu de la liste déroulante des projets (Cela peut augmenter les performances si vous avez un grand nombre de projets, mais cela est moins convivial)
    +UseSearchToSelectProject=Attendre que vous ayez appuyé sur une touche avant de charger le contenu de la liste déroulante des projets.<br> Cela peut augmenter les performances si vous avez un grand nombre de projets, mais cela est moins convivial.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Période fiscales
    @@ -1687,7 +1706,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Vous pouvez trouver d'autr
     ListOfNotificationsPerUser=Liste des notifications par utilisateur*
     ListOfNotificationsPerUserOrContact=Liste des notifications par utilisateur* ou par contact**
     ListOfFixedNotifications=Liste des notifications emails fixes
    -GoOntoUserCardToAddMore=Aller sur l'onglet "Notificiation" de l'utilisateur pour ajouter ou modifier une notification par utilisateurs
    +GoOntoUserCardToAddMore=Allez dans l'onglet "Notifications" d'un utilisateur pour ajouter ou supprimer des notifications pour les utilisateurs
     GoOntoContactCardToAddMore=Rendez-vous sur l'onglet "Notifications" d'un tiers pour ajouter ou enlever les notifications pour les contacts/adresses
     Threshold=Seuil
     BackupDumpWizard=Assistant de génération d'un fichier de sauvegarde de la base de données
    @@ -1697,6 +1716,7 @@ InstallModuleFromWebHasBeenDisabledByFile=L'installation de module externe depui
     ConfFileMustContainCustom=Installer ou créer un module externe à partir de l'application nécessite de sauvegarder les fichiers du module dans le répertoire <strong>%s</strong>. Pour que ce répertoire soit reconnu par Dolibarr, vous devez paramétrer le fichier de configuration <strong>conf/conf.php</strong> en ajoutant les 2 lignes suivantes :<br><strong>$dolibarr_main_url_root_alt='/custom'</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Mettre en surbrillance les lignes de la table lorsque la souris passe au-dessus
     HighlightLinesColor=Couleur de la ligne de surbrillance lorsque la souris passe au-dessus (laisser vide pour ne pas mettre en surbrillance)
    +HighlightLinesChecked=Couleur de la ligne de surbrillance lorsque la souris passe au-dessus (laisser vide pour ne pas mettre en surbrillance)
     TextTitleColor=Couleur du texte du titre de la page
     LinkColor=Couleur des liens
     PressF5AfterChangingThis=Appuyez sur la touche CTRL+F5 ou videz le cache de votre navigateur après avoir modifié cette valeur pour que le changement soit effectif
    @@ -1718,7 +1738,7 @@ PositionIntoComboList=Position de la ligne dans des listes déroulantes
     SellTaxRate=Taux de TVA
     RecuperableOnly=Oui pour une TVA "Non Perçue mais Récupérable" dédiée à certains pays comme la France. Gardez la valeur à "Non" dans tous les autres cas.
     UrlTrackingDesc=Si le fournisseur ou le service de transport offrent une page ou un site Web pour vérifier l'état de votre envoi, vous pouvez l'entrer ici. Vous pouvez utiliser la clé {TRACKID} dans les paramètres d'URL afin que le système la remplace par la valeur du numéro de suivi entré sur la fiche d'expédition.
    -OpportunityPercent=Lorsque vous créez une opportunité, vous aurez défini un montant estimatif de projet/affaire. Selon le statut de l'opportunité, ce montant peut être multiplié par ce taux pour évaluer montant probable que vos opportunités sont susceptibles de générer. La valeur est un pourcentage (entre 0 et 100).
    +OpportunityPercent=Lorsque vous créez une opportunité, vous pouvez ďéfinir un montant estimatif de projet/affaire. Selon le statut de l'opportunité, ce montant peut être multiplié par ce taux pour évaluer le montant probable que vos opportunités sont susceptibles de générer. La valeur est un pourcentage (entre 0 et 100).
     TemplateForElement=Cet enregistrement modèle est dédié à quel élément
     TypeOfTemplate=Type de modèle
     TemplateIsVisibleByOwnerOnly=Le modèle est visible par le propriétaire seulement
    @@ -1738,6 +1758,7 @@ MailToSendSupplierRequestForQuotation=Demande de devis
     MailToSendSupplierOrder=Commandes fournisseurs
     MailToSendSupplierInvoice=Factures fournisseur
     MailToSendContract=Contrats
    +MailToSendReception=Réceptions fournisseurs
     MailToThirdparty=Tiers
     MailToMember=Adhérents
     MailToUser=Utilisateurs
    @@ -1750,7 +1771,7 @@ ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s est disponible. La ver
     ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s est disponible. La version %s est une version de maintenance, aussi elle ne contient que des correctifs de bugs. Nous recommandons à toute personne utilisant une version plus ancienne de migrer vers celle-ci. En tant que version de maintenance, aucune nouvelle fonctionnalité n'est ajoutée, ni modification de format de données. Vous pouvez télécharger cette version à partir de la zone de téléchargement du portail https://www.dolibarr.org (sous-répertoire "Versions stables"). Vous pouvez lire le <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> pour la liste complète des changements.
     MultiPriceRuleDesc=Quand l'option « Plusieurs niveaux de prix par produit/service» est activée, vous pouvez définir différents prix (un par niveau de prix) pour chaque produits. Pour sauver du temps, vous pouvez entrer ici une règle pour avoir un prix pour chaque niveau calculé automatiquement. Cette page est ici pour sauver du temps et peut être utile si vos prix pour chaque niveaux sont relatif au premier niveau. Vous pouvez ignorer cette page dans la plupart des cas
     ModelModulesProduct=Modèles des documents de produits
    -ToGenerateCodeDefineAutomaticRuleFirst=Pour pouvoir générer automatiquement des codes, vous devez d'abord définir un gestionnaire pour définir automatiquement le numéro du code-barre.
    +ToGenerateCodeDefineAutomaticRuleFirst=Pour pouvoir générer automatiquement des codes, vous devez d'abord définir un gestionnaire de numérotation pour définir automatiquement les numéros du code-barre.
     SeeSubstitutionVars=Voir * note pour la liste des variables de substitutions possibles
     SeeChangeLog=Voir le fichier changeLog (anglais)
     AllPublishers=Tous les éditeurs
    @@ -1771,15 +1792,15 @@ AddOtherPagesOrServices=Ajout d'autres pages ou services
     AddModels=Ajout de modèles de document ou de numérotation
     AddSubstitutions=Ajout de valeurs de substitution
     DetectionNotPossible=Détection impossible
    -UrlToGetKeyToUseAPIs=Url pour obtenir le jeton pour utiliser l'API (une fois le jeton reçu, il est enregistré dans la table des utilisateurs de la base de données et doit être fourni à chaque appel d'API)
    +UrlToGetKeyToUseAPIs=Url pour que le jeton utilise l'API (une fois le jeton reçu, il est enregistré dans la table des utilisateurs de la base de données et doit être fourni à chaque appel d'API)
     ListOfAvailableAPIs=Liste des APIs disponibles
    -activateModuleDependNotSatisfied=Le module "%s" dépend du module "%s" qui est manquant, aussi le module "%1$s" peut ne pas fonctionner correctement. Merci d'installer le module "%2$s" ou désactiver le module "%1$s" si vous ne souhaitez pas avoir de mauvaise surprise
    -CommandIsNotInsideAllowedCommands=La commande demandée n'est pas autorisée par le paramètre <strong>$dolibarr_main_restrict_os_commands</strong> du fichier <strong>conf.php</strong>.
    +activateModuleDependNotSatisfied=Le module "%s" dépend du module "%s" manquant. Le module "%1$s" risque donc de ne pas fonctionner correctement. Veuillez installer le module "%2$s" ou désactiver le module "%1$s" si vous souhaitez être à l'abri de toute surprise.
    +CommandIsNotInsideAllowedCommands=La commande que vous essayez d'exécuter ne figure pas dans la liste des commandes autorisées définies dans le paramètre <strong> $dolibarr_main_restrict_os_commands </strong> du fichier <strong> conf.php </strong>.
     LandingPage=Page cible
     SamePriceAlsoForSharedCompanies=Si vous utilisez un module multi-société, avec le choix «prix unique», le prix sera aussi le même pour toutes les sociétés si les produits sont partagés entre les environnements
     ModuleEnabledAdminMustCheckRights=Le module a été activé. Les permissions pour le(s) module(s) activé(s) ont été donnés aux utilisateurs admin uniquement. Vous devrez peut-être accorder des autorisations aux autres utilisateurs ou groupes manuellement si nécessaire.
     UserHasNoPermissions=Cet utilisateur n'a pas de permission définie
    -TypeCdr=Utilisez "Aucune" si la date du terme de paiement est la date de la facture plus un delta en jours (delta est le champ "Nb de jours") <br> Utilisez "À la fin du mois", si, après le delta, la date doit être augmentée pour atteindre la fin du mois (+ un «Offset» optionnel en jours) <br> Utilisez "Coutant/Suivant" pour que la date du terme de paiement soit la premier Nième jour du mois qui suit (N est stocké dans le champ "Nb de jours")
    +TypeCdr=Utilisez "Aucune" si la date du terme de paiement est la date de la facture plus un delta en jours (delta est le champ "%s") <br> Utilisez "À la fin du mois", si, après le delta, la date doit être augmentée pour atteindre la fin du mois (+ un optionnel "%s" en jours) <br> Utilisez "Coutant/Suivant" pour que la date du terme de paiement soit la premier Nième jour du mois après le delta le delta est le champ "%s", N est stocké dans le champ "%s")
     BaseCurrency=Devise par défaut de votre société/institution (Voir Accueil > configuration > Société/Institution)
     WarningNoteModuleInvoiceForFrenchLaw=Ce module %s permet d'être conforme aux lois françaises (Loi Finance 2016 par exemple).
     WarningNoteModulePOSForFrenchLaw=Le module %s est conforme à la législation française ( Loi Finance 2016 ) car les logs non réversibles sont automatiquement activés.
    @@ -1788,16 +1809,52 @@ MAIN_PDF_MARGIN_LEFT=Marge gauche sur les PDF
     MAIN_PDF_MARGIN_RIGHT=Marge droite sur les PDF
     MAIN_PDF_MARGIN_TOP=Marge haute sur les PDF
     MAIN_PDF_MARGIN_BOTTOM=Marge bas sur les PDF
    +NothingToSetup=Aucune configuration particulière n'est requise pour ce module.
     SetToYesIfGroupIsComputationOfOtherGroups=Réglez ceci sur Oui si ce groupe est un calcul d'autres groupes
    -EnterCalculationRuleIfPreviousFieldIsYes=Entrez la règle de calcul si le champ précédent a été défini sur Oui (par exemple, 'CODEGRP1 + CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Entrez la règle de calcul si le champ précédent était défini sur Oui (par exemple, 'CODEGRP1 + CODEGRP2')
     SeveralLangugeVariatFound=Plusieurs variantes de langue trouvées
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Supprimer les caractères spéciaux
     COMPANY_AQUARIUM_CLEAN_REGEX=Filtre Regex pour nettoyer la valeur (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=Contact RGPD
    -GDPRContactDesc=Si vous stockez des données sur des entreprises / citoyens européens, vous pouvez stocker ici le contact responsable du RGPD.
    +GDPRContact=Responsable de la protection des données (DPO ou contact RGPD)
    +GDPRContactDesc=Si vous stockez des données sur des entreprises / citoyens européens, vous pouvez enregistrer ici le contact responsable du règlement général sur la protection des données.
    +HelpOnTooltip=Texte d'aide à afficher dans l'info-bulle
    +HelpOnTooltipDesc=Mettez du texte ou une clé de traduction ici pour que le texte apparaisse dans une info-bulle lorsque ce champ apparaît dans un formulaire
    +YouCanDeleteFileOnServerWith=Vous pouvez supprimer ce fichier sur le serveur avec la ligne de commande: <br> %s
    +ChartLoaded=Modèle de plan de compte chargé
    +SocialNetworkSetup=Configuration du module Réseaux Sociaux
    +EnableFeatureFor=Activer les fonctionnalités pour <strong> %s </strong>
    +VATIsUsedIsOff=Remarque: l'option d'utilisation de la taxe de vente ou de la TVA a été définie sur <strong> Désactivée </strong> dans le menu %s - %s, aussi la taxe de vente ou la TVA utilisée sera toujours égale à 0 pour les ventes.
    +SwapSenderAndRecipientOnPDF=Échanger adresses expéditeurs et destinataires sur le PDF
    +FeatureSupportedOnTextFieldsOnly=Attention, fonctionnalité prise en charge sur les champs de texte uniquement
    +EmailCollector=Collecteur de courrier électronique
    +EmailCollectorDescription=Ajoute un travail planifié et une page de configuration pour analyser régulièrement les boîtes aux lettres (à l'aide du protocole IMAP) et enregistrer les courriers électroniques reçus dans votre application, au bon endroit et/ou créer automatiquement certains enregistrements (comme des opportunités).
    +NewEmailCollector=Nouveau collecteur d'email
    +EMailHost=Hôte du serveur de messagerie IMAP
    +MailboxSourceDirectory=Répertoire source dans la boîte aux lettres
    +MailboxTargetDirectory=Répertoire cible dans la boîte aux lettres
    +EmailcollectorOperations=Opérations à effectuer par le collectionneur
    +CollectNow=Collecter maintenant
    +DateLastResult=Date de dernière collecte
    +LastResult=Dernier résultat
    +EmailCollectorConfirmCollectTitle=Confirmation de la collecte Email
    +EmailCollectorConfirmCollect=Voulez-vous exécuter la collecte pour ce collecteur maintenant ?
    +NoNewEmailToProcess=Aucun nouvel email (correspondants aux filtres) à traiter
    +NothingProcessed=Aucune action faite
    +XEmailsDoneYActionsDone=%s e-mails qualifiés, %s e-mails traités avec succès (pour %s enregistrements/actions faites) par le collecteur
    +RecordEvent=Enregistrer événement émail
    +CreateLeadAndThirdParty=Créer opportunité (et tiers si nécessaire)
    +CodeLastResult=Code du résultat de la dernière collecte
    +NbOfEmailsInInbox=Nombre de courriels dans le répertoire source
    +LoadThirdPartyFromName=Charger le tiers à partir du nom (charger uniquement)
    +LoadThirdPartyFromNameOrCreate=Charger le tiers à partir du nom (créer si non trouvé)
    +WithDolTrackingID=ID Tracker Dolibarr trouvé
    +WithoutDolTrackingID=ID Tracker Dolibarr non trouvé
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Ressource
     UseSearchToSelectResource=Utilisez un champ avec auto-complétion pour choisir les ressources (plutôt qu'une liste déroulante).
     DisabledResourceLinkUser=Désactiver la fonctionnalité pour lier une ressource aux utilisateurs
     DisabledResourceLinkContact=Désactiver la fonctionnalité pour lier une ressource aux contacts/adresses
     ConfirmUnactivation=Confirmer réinitialisation du module
    +OnMobileOnly=Sur petit écran (smartphone) uniquement
    +DisableProspectCustomerType=Désactiver le type de tiers "Prospect + Client" (le tiers doit donc être un client potentiel ou un client, mais ne peut pas être les deux)
    diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang
    index f64e93b7188..f6ef3cc6d9d 100644
    --- a/htdocs/langs/fr_FR/agenda.lang
    +++ b/htdocs/langs/fr_FR/agenda.lang
    @@ -32,13 +32,14 @@ ViewPerUser=Vue par utilisateur
     ViewPerType=Vue par type
     AutoActions= Alimentation automatique
     AgendaAutoActionDesc= Définissez ici les événements pour lesquels Dolibarr créera automatiquement une entrée dans l'agenda. Si aucun n'est coché, seules les actions manuelles seront affichées dans l'agenda. Les événements sur les objets (validation, changement de statut, modification) ne seront pas enregistrées.
    -AgendaSetupOtherDesc= Cette page permet de configurer quelques options permettant d'exporter une vue de votre agenda Dolibarr vers un calendrier externe (Thunderbird, Google calendar, …)
    +AgendaSetupOtherDesc= Cette page permet de configurer quelques options permettant d'exporter une vue de votre agenda Dolibarr vers un calendrier externe (thunderbird, google calendar, ...)
     AgendaExtSitesDesc=Cette page permet d'ajouter des sources de calendriers externes pour les visualiser au sein de l'agenda Dolibarr.
     ActionsEvents=Événements pour lesquels Dolibarr doit insérer un évènement dans l'agenda en automatique.
    -EventRemindersByEmailNotEnabled=Les rappels d'événements par email n'ont pas été activés dans la configuration du module %s.
    +EventRemindersByEmailNotEnabled=Les rappels d'événement par email n'ont pas été activés dans la configuration du module %s.
     ##### Agenda event labels #####
     NewCompanyToDolibarr=Tiers %s créé
     ContractValidatedInDolibarr=Contrat %s validé
    +CONTRACT_DELETEInDolibarr=Contrat %s supprimé
     PropalClosedSignedInDolibarr=Proposition %s signée
     PropalClosedRefusedInDolibarr=Proposition %s refusée
     PropalValidatedInDolibarr=Proposition %s validée
    @@ -59,7 +60,13 @@ MemberSubscriptionDeletedInDolibarr=Abonnement %s pour l'adhérent %s supprimé
     ShipmentValidatedInDolibarr=Expédition %s validée
     ShipmentClassifyClosedInDolibarr=Expédition %s classée payée
     ShipmentUnClassifyCloseddInDolibarr=Expédition %s réouverte
    +ShipmentBackToDraftInDolibarr=Expédition %s repassée en brouillon
     ShipmentDeletedInDolibarr=Expédition %s supprimée
    +ReceptionValidatedInDolibarr=Réception %s validée
    +ReceptionClassifyClosedInDolibarr=Réception %s classée payée
    +ReceptionUnClassifyCloseddInDolibarr=Réception %s réouverte
    +ReceptionBackToDraftInDolibarr=Réception %s repassée en brouillon
    +ReceptionDeletedInDolibarr=Réception %s supprimée
     OrderCreatedInDolibarr=Commande %s créée
     OrderValidatedInDolibarr=Commande %s validée
     OrderDeliveredInDolibarr=Commande %s classée Livrée
    @@ -76,6 +83,8 @@ SupplierOrderSentByEMail=Commande fournisseur %s envoyée par email
     SupplierInvoiceSentByEMail=Facture fournisseur %s envoyée par email
     ShippingSentByEMail=Bon d'expédition %s envoyé par email
     ShippingValidated= Expédition %s validée
    +ReceptionSentByEMail=Réception %s envoyée par email
    +ReceptionValidated= Réception %s validée
     InterventionSentByEMail=Intervention %s envoyée par email
     ProposalDeleted=Proposition commerciale supprimée
     OrderDeleted=Commande supprimée
    @@ -99,8 +108,8 @@ AgendaUrlOptions1=Vous pouvez aussi ajouter les paramètres suivants pour filtre
     AgendaUrlOptions3=<b>logina=%s</b> pour limiter l'export aux actions dont l'utilisateur <b>%s</b> est propriétaire.
     AgendaUrlOptionsNotAdmin=<b>logina=!%s</b> pour limiter l'export aux actions non assignées à l'utilisateur <b>%s</b>.
     AgendaUrlOptions4=<b>logint=%s</b>pour limiter l'export aux actions assignées à l'utilisateur <b>%s</b> (propriétaire et autres).
    -AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> pour restreindre aux événements associés au projet <b>PROJECT_ID</b>.
    -AgendaUrlOptionsNotAutoEvent=<b> notactiontype=systemauto </b> pour exclure un événement automatique.
    +AgendaUrlOptionsProject=<b>project=__PROJECT_ID__</b> pour restreindre aux événements associés au projet <b>__PROJECT_ID__</b>.
    +AgendaUrlOptionsNotAutoEvent=<b> notactiontype=systemauto </b> pour exclure les événements automatiques.
     AgendaShowBirthdayEvents=Afficher les anniversaires de contacts
     AgendaHideBirthdayEvents=Masquer les anniversaires de contacts
     Busy=Occupé
    diff --git a/htdocs/langs/fr_FR/assets.lang b/htdocs/langs/fr_FR/assets.lang
    new file mode 100644
    index 00000000000..356245e8761
    --- /dev/null
    +++ b/htdocs/langs/fr_FR/assets.lang
    @@ -0,0 +1,59 @@
    +# Copyright (C) 2018      Alexandre Spangaro   <aspangaro@zendsi.com>
    +#
    +# 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
    +# the Free Software Foundation, either version 3 of the License, or
    +# (at your option) any later version.
    +#
    +# This program is distributed in the hope that it will be useful,
    +# but WITHOUT ANY WARRANTY; without even the implied warranty of
    +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +# GNU General Public License for more details.
    +#
    +# You should have received a copy of the GNU General Public License
    +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
    +
    +#
    +# Generic
    +#
    +Assets = Immobilisations
    +NewAsset = Nouvelle immobilisation
    +AccountancyCodeAsset = Code comptable (immobilisation)
    +AccountancyCodeDepreciationAsset = Code comptable (compte d'amortissement)
    +AccountancyCodeDepreciationExpense = Code comptable (compte de charges d'amortissement)
    +NewAssetType=Nouveau type d'immobilisation
    +AssetsTypeSetup=Configuration du type d'actifs
    +AssetTypeModified=Type d'actif modifié
    +AssetType=Type d'immobilisations
    +AssetsLines=Immobilisations
    +DeleteType=Supprimer
    +DeleteAnAssetType=Supprimer un type d'actif
    +ConfirmDeleteAssetType=Êtes-vous sûr de vouloir supprimer ce type d'actif?
    +ShowTypeCard=Voir type '%s'
    +
    +# Module label 'ModuleAssetsName'
    +ModuleAssetsName = Immobilisations
    +# Module description 'ModuleAssetsDesc'
    +ModuleAssetsDesc = Module pour suivre vos immobilisations
    +
    +#
    +# Admin page
    +#
    +AssetsSetup = Configuration du module immobilisations
    +Settings = Paramètres
    +AssetsSetupPage = Page de configuration des actifs
    +ExtraFieldsAssetsType = Attributs supplémentaires (type d'immobilisation)
    +AssetsType=Type d'immobilisations
    +AssetsTypeId=Id du type d'immobilisations
    +AssetsTypeLabel=Libellé du type d'immobilisations
    +AssetsTypes=Types d'immobilisations
    +
    +#
    +# Menu
    +#
    +MenuAssets = Immobilisations
    +MenuNewAsset = Nouvelle immobilisation
    +MenuTypeAssets = Type d'immobilisations
    +MenuListAssets = Liste
    +MenuNewTypeAssets = Nouveau type
    +MenuListTypeAssets = Liste
    diff --git a/htdocs/langs/fr_FR/banks.lang b/htdocs/langs/fr_FR/banks.lang
    index c75071158be..93ab0eaf858 100644
    --- a/htdocs/langs/fr_FR/banks.lang
    +++ b/htdocs/langs/fr_FR/banks.lang
    @@ -7,7 +7,7 @@ BankName=Nom de la banque
     FinancialAccount=Compte
     BankAccount=Compte bancaire
     BankAccounts=Comptes bancaires
    -BankAccountsAndGateways=Comptes bancaires | Interfaces paiement
    +BankAccountsAndGateways=Comptes bancaires | Passerelles paiement
     ShowAccount=Afficher compte
     AccountRef=Ref compte financier
     AccountLabel=Libellé compte financier
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Domiciliation du compte
     BankAccountCountry=Pays du compte
     BankAccountOwner=Nom du propriétaire du compte
     BankAccountOwnerAddress=Adresse du propriétaire du compte
    -RIBControlError=Les contrôles indiquent que les informations de ce compte bancaire sont incomplètes ou incorrectes (vérifier le pays, les numéros de compte ou IBAN).
    +RIBControlError=Les contrôles indiquent que les informations de ce compte bancaire sont incomplètes ou incorrectes (vérifier le pays, les numéros de compte et IBAN).
     CreateAccount=Créer compte
     NewBankAccount=Nouveau compte
     NewFinancialAccount=Nouveau compte financier
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Écritures à rapprocher
     Conciliable=Rapprochable
     Conciliate=Rapprocher
     Conciliation=Rapprochement
    +SaveStatementOnly=Enregistrer le relevé uniquement
     ReconciliationLate=Rapprochement en retard
     IncludeClosedAccount=Inclure comptes fermés
     OnlyOpenedAccount=Seulement les comptes ouverts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Paiement de charge fiscale/sociale
     BankTransfer=Virement bancaire
     BankTransfers=Virements bancaire
     MenuBankInternalTransfer=Virement interne
    -TransferDesc=Transférer d'un compte bancaire à un autre, Dolibarr ajoutera deux lignes d'écritures (une ligne de débit dans le compte source et une ligne de crédit dans le compte de destination. le même montant (excepté le signe), le libellé et la date seront repris).
    +TransferDesc=Transférer d'un compte bancaire à un autre, Dolibarr ajoutera deux lignes d'écritures (une ligne de débit dans le compte source et une ligne de crédit dans le compte de destination. le même montant (excepté le signe), le libellé et la date seront utilisés pour la transaction).
     TransferFrom=De
     TransferTo=Vers
     TransferFromToDone=Le virement depuis <b>%s</b> vers <b>%s</b> de <b>%s</b> %s a été créé.
    @@ -132,10 +133,10 @@ PaymentDateUpdateSucceeded=Date de paiement mise à jour avec succès
     PaymentDateUpdateFailed=Impossible de mettre la date de paiement à jour
     Transactions=Ecritures
     BankTransactionLine=Écriture bancaire
    -AllAccounts=Tous les comptes bancaires/caisses
    +AllAccounts=Tous les comptes bancaires et caisses
     BackToAccount=Retour au compte
     ShowAllAccounts=Afficher pour tous les comptes
    -FutureTransaction=Transaction future. Pas moyen de concilier.
    +FutureTransaction=Transaction future. Pas moyen de rapprocher.
     SelectChequeTransactionAndGenerate=Sélectionner/filtrer les chèques à inclure dans le bordereau de remise et cliquer sur "Créer".
     InputReceiptNumber=Choisissez le relevé bancaire liés au rapprochement. Utilisez une valeur numérique triable: AAAAMM ou AAAAMMJJ
     EventualyAddCategory=Eventuellement, saisissez une catégorie dans laquelle classer les écritures
    @@ -163,3 +164,4 @@ AddVariousPayment=Créer paiements divers
     SEPAMandate=Mandat SEPA
     YourSEPAMandate=Votre mandat SEPA
     FindYourSEPAMandate=Voici votre mandat SEPA pour autoriser notre société à réaliser les prélèvements depuis votre compte bancaire. Merci de retourner ce mandat signé (scan du document signé) ou en l'envoyant par courrier à 
    +AutoReportLastAccountStatement=Remplissez automatiquement le champ 'numéro de relevé bancaire' avec le dernier numéro lors du rapprochement
    diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang
    index 4b088f8dea2..c0a9d2c74b6 100644
    --- a/htdocs/langs/fr_FR/bills.lang
    +++ b/htdocs/langs/fr_FR/bills.lang
    @@ -12,7 +12,7 @@ BillsLate=Retards de paiement
     BillsStatistics=Statistiques factures clients
     BillsStatisticsSuppliers=Statistiques factures fournisseurs
     DisabledBecauseDispatchedInBookkeeping=Action désactivée car facture comptabilisée dans le grand livre
    -DisabledBecauseNotLastInvoice=Action désactivée car facture non supprimable. Des factures ont été créées après cet facture et cela va créer un trou dans la numérotation des factures.
    +DisabledBecauseNotLastInvoice=Action désactivée car facture non supprimable. Des factures ont été créées après celle-ci et cela va créer un trou dans la numérotation des factures.
     DisabledBecauseNotErasable=Désactivé car non supprimable
     InvoiceStandard=Facture standard
     InvoiceStandardAsk=Facture standard
    @@ -67,11 +67,11 @@ PaidBack=Remboursé
     DeletePayment=Supprimer le paiement
     ConfirmDeletePayment=Êtes-vous sûr de vouloir supprimer ce paiement ?
     ConfirmConvertToReduc=Voulez vous convertir ce(cet) %s en remise fixe ?<br>Le montant sera enregistré parmi les autres remises et pourra être utilisé en tant que remise sur une autre facture du client.
    -ConfirmConvertToReducSupplier=Voulez vous convertir ce(cet) %s en remise fixe ?<br>Le montant sera enregistré parmi les autres remises et pourra être utilisé en tant que remise sur une autre facture courante ou future de ce fournisseur.
    +ConfirmConvertToReducSupplier=Souhaitez-vous convertir ce %s en une remise absolue? <br> Le montant sera sauvegardé parmi toutes les remises et pourra être utilisé comme remise pour une facture actuelle ou future de ce fournisseur.
     SupplierPayments=Règlements fournisseurs
     ReceivedPayments=Règlements reçus
     ReceivedCustomersPayments=Règlements reçus du client
    -PayedSuppliersPayments=Paiements aux fournisseurs
    +PayedSuppliersPayments=Paiements versés aux fournisseurs
     ReceivedCustomersPaymentsToValid=Règlements clients reçus à valider
     PaymentsReportsForYear=Rapports de règlements pour %s
     PaymentsReports=Rapports de règlements
    @@ -92,7 +92,7 @@ PaymentAmount=Montant règlement
     ValidatePayment=Valider ce règlement
     PaymentHigherThanReminderToPay=Règlement supérieur au reste à payer
     HelpPaymentHigherThanReminderToPay=Attention, le montant de paiement pour une ou plusieurs factures est supérieur au reste à payer.<br>Corrigez votre saisie, sinon, confirmez et pensez à créer un avoir du trop perçu lors de la fermeture de chacune des factures surpayées.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, le montant de paiement pour une ou plusieurs factures est supérieur au reste à payer.<br>Corrigez votre saisie, sinon, confirmez et pensez à créer un avoir pour l'excédent pour chaque facture surpayée.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, le montant du paiement d'une ou plusieurs factures est supérieur au montant restant à payer. <br> Modifiez votre entrée, sinon confirmez et envisagez de créer une note de crédit pour l'excédent payé pour chaque facture en trop.
     ClassifyPaid=Classer 'Payée'
     ClassifyPaidPartially=Classer 'Payée partiellement'
     ClassifyCanceled=Classer 'Abandonnée'
    @@ -132,6 +132,7 @@ BillStatusClosedPaidPartially=Payée (partiellement)
     BillShortStatusDraft=Brouillon
     BillShortStatusPaid=Payée
     BillShortStatusPaidBackOrConverted=Remboursé ou converti
    +Refunded=Remboursé
     BillShortStatusConverted=Payé
     BillShortStatusCanceled=Abandonnée
     BillShortStatusValidated=Validée
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Non remboursé
     BillShortStatusClosedUnpaid=Fermée
     BillShortStatusClosedPaidPartially=Payée
     PaymentStatusToValidShort=A valider
    -ErrorVATIntraNotConfigured=Numéro de TVA intracommunautaire pas encore configuré
    +ErrorVATIntraNotConfigured=Numéro de TVA intracommunautaire non encore défini
     ErrorNoPaiementModeConfigured=Aucun mode de règlement défini par défaut. Allez corriger dans la configuration du module facture.
     ErrorCreateBankAccount=Créer un compte bancaire puis aller dans la configuration du module facture pour définir les modes de règlement
     ErrorBillNotFound=Facture %s inexistante
    -ErrorInvoiceAlreadyReplaced=Erreur, vous voulez valider une facture qui doit remplacer la facture %s. Mais cette dernière a déjà été remplacée par une autre facture %s.
    +ErrorInvoiceAlreadyReplaced=Erreur, vous avez tenté de valider une facture pour remplacer la facture %s. Mais celle-ci a déjà été remplacée par la facture %s.
     ErrorDiscountAlreadyUsed=Erreur, la remise a déjà été attribuée
     ErrorInvoiceAvoirMustBeNegative=Erreur, une facture de type Avoir doit avoir un montant négatif
     ErrorInvoiceOfThisTypeMustBePositive=Erreur, une facture de ce type doit avoir un montant positif
     ErrorCantCancelIfReplacementInvoiceNotValidated=Erreur, il n'est pas possible d'annuler une facture qui a été remplacée par une autre qui se trouve toujours à l'état 'brouillon'.
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Cette partie ou une autre est déjà utilisé, aussi la remise ne peut être supprimée.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Cette partie ou une autre est déjà utilisée et les séries d'escompte ne peuvent donc pas être supprimées.
     BillFrom=Émetteur
     BillTo=Adressé à
     ActionsOnBill=Événements sur la facture
    @@ -179,7 +180,7 @@ ConfirmClassifyPaidBill=Êtes-vous sûr de vouloir classer la facture <b>%s</b>
     ConfirmCancelBill=Êtes-vous sûr de vouloir annuler la facture <b>%s</b> ?
     ConfirmCancelBillQuestion=Pour quelle raison voulez-vous classer la facture abandonnée ?
     ConfirmClassifyPaidPartially=Êtes-vous sûr de vouloir classer la facture <b>%s</b> comme payée ?
    -ConfirmClassifyPaidPartiallyQuestion=Cette facture n'a pas été payée à hauteur du montant initial. Pour quelle raison voulez-vous la classer malgré tout ?
    +ConfirmClassifyPaidPartiallyQuestion=Cette facture n'a pas été payée complètement. Quelle est la raison pour la fermeture de cette facture?
     ConfirmClassifyPaidPartiallyReasonAvoir=Le reste à payer <b>(%s %s)</b> est un trop facturé (car article retourné, oubli, escompte réalisé...), régularisé par un avoir
     ConfirmClassifyPaidPartiallyReasonDiscount=Le reste à payer <b> (%s %s) </b> est un escompte accordé parce que le paiement a été effectué avant terme.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Le reste à payer <b>(%s %s)</b> est un escompte accordé après facture. J'accepte de perdre la TVA sur cet escompte
    @@ -187,12 +188,12 @@ ConfirmClassifyPaidPartiallyReasonDiscountVat=Le reste à payer <b>(%s %s)</b> e
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Mauvais payeur
     ConfirmClassifyPaidPartiallyReasonProductReturned=Produits en partie retournés
     ConfirmClassifyPaidPartiallyReasonOther=Créance abandonnée pour autre raison
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Ce choix est possible si votre facture était munie de la mention adéquate. (Exemple: «escompte net de taxe»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Ce choix est possible si votre facture était munie de la mention adéquate. (Exemple: mention définissant l'escompte ou du genre «seule la taxe correspondant au prix effectivement payé ouvre droit à déduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Ce choix est possible si votre facture a été fournie avec les commentaires appropriés. (Exemple «Seule la taxe correspondant au prix effectivement payé donne droit à déduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Dans certains pays, ce choix n'est possible que si votre facture contient des notes correctes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Ce choix est le choix à prendre si les autres ne sont pas applicables
     ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Un <b>mauvais payeur</b> est un client qui refuse de régler sa dette.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ce choix sera celui choisi, dans le cas du paiement incomplet suite au retour d'une partie des produits
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Ce choix sera celui choisi dans tout autre cas, par exemple, dans les cas suivants:<br>- paiement partiel car une partie des produits a été retourné.<br>- trop réclamé suite à oubli d'une remise<br>Dans tous les cas, le trop réclamé doit être régularisé en compta et envers le client par un avoir.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Utilisez ce choix si tous les autres ne conviennent pas, par exemple dans les situations suivantes: <br> - paiement non effectué car certains produits ont été retournés <br> - montant réclamé trop important car une remise a été oubliée <br> Dans tous les cas, montant la sur-réclamation doit être corrigée dans le système comptable en créant une note de crédit.
     ConfirmClassifyAbandonReasonOther=Autre
     ConfirmClassifyAbandonReasonOtherDesc=Ce choix sera celui choisi dans tout autre cas. Par exemple suite à l'intention de créer une facture de remplacement.
     ConfirmCustomerPayment=Confirmez-vous la saisie de ce règlement de <b>%s</b> %s ?
    @@ -203,6 +204,7 @@ UnvalidateBill=Repasser facture en brouillon
     NumberOfBills=Nb de factures
     NumberOfBillsByMonth=Nb de factures par mois
     AmountOfBills=Montant de factures
    +AmountOfBillsHT=Montant des factures (HT)
     AmountOfBillsByMonthHT=Montant de factures par mois (HT)
     ShowSocialContribution=Afficher charge fiscale/sociale
     ShowBill=Afficher facture
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Réductions ou crédits déjà consommés
     CustomerDiscounts=Remises client
     SupplierDiscounts=Remises vendeurs
     BillAddress=Adresse de facturation
    -HelpEscompte=Un <b>escompte</b> est une remise accordée, sur une facture donnée, à un client car ce dernier a réalisé son règlement bien avant l'échéance.
    +HelpEscompte=Un escompte est une remise accordée, sur une facture donnée, à un client car ce dernier a réalisé son règlement bien avant l'échéance.
     HelpAbandonBadCustomer=Ce montant a été abandonné (client jugé mauvais payeur) et est considéré comme une perte exceptionnelle.
    -HelpAbandonOther=Ce montant a été abandonné car il s'agissait d'une erreur de facturation (saisie mauvais client, facture remplacée par une autre).
    +HelpAbandonOther=Ce montant a été abandonné car il s'agissait d'une erreur de facturation (saisie mauvais client, facture remplacée par une autre par exemple).
     IdSocialContribution=Id de paiement charge fiscale ou sociale
     PaymentId=Id paiement
     PaymentRef=Ref paiement
    @@ -321,12 +323,12 @@ InvoiceNotChecked=Aucune facture n'a été sélectionnée
     CloneInvoice=Cloner facture
     ConfirmCloneInvoice=Êtes-vous sûr de vouloir cloner cette facture <b>%s</b> ?
     DisabledBecauseReplacedInvoice=Action désactivée car facture remplacée
    -DescTaxAndDividendsArea=Cet écran résume la liste de toutes les paiements réalisés pour des dépenses particulières. Seuls les paiements de l'année choisi sont inclus ici.
    +DescTaxAndDividendsArea=Cet écran résume la liste de toutes les paiements réalisés pour des dépenses particulières. Seuls les paiements de l'année choisie sont inclus ici.
     NbOfPayments=Nb de paiements
     SplitDiscount=Scinder réduction en deux
     ConfirmSplitDiscount=Êtes-vous sûr de vouloir scinder la réduction de <b>%s</b> %s en 2 réductions plus petites ?
    -TypeAmountOfEachNewDiscount=Saisissez le montant de chacune des deux parts :
    -TotalOfTwoDiscountMustEqualsOriginal=La somme du montant des 2 nouvelles réductions doit être équivalente au montant de la réduction à scinder.
    +TypeAmountOfEachNewDiscount=Quantité d'entrée pour chacune des deux parties:
    +TotalOfTwoDiscountMustEqualsOriginal=Le total de deux nouvelles remises doit être égal au montant de la remise initiale.
     ConfirmRemoveDiscount=Êtes-vous sûr de vouloir supprimer cette réduction ?
     RelatedBill=Facture associée
     RelatedBills=Factures associées
    @@ -336,7 +338,7 @@ LatestRelatedBill=Dernière facture en rapport
     WarningBillExist=Attention, une ou plusieurs factures existent déjà
     MergingPDFTool=Outil de fusion de PDF
     AmountPaymentDistributedOnInvoice=Montant paiement affecté à la facture
    -PaymentOnDifferentThirdBills=Autoriser le règlement de différents tiers de la même maison-mère
    +PaymentOnDifferentThirdBills=Autoriser le règlement de factures de différents tiers si ils ont la même maison-mère
     PaymentNote=Note du paiement
     ListOfPreviousSituationInvoices=Liste des factures de situation précédentes
     ListOfNextSituationInvoices=Liste des factures de situation suivantes
    @@ -463,7 +465,7 @@ Cheques=Chèques
     DepositId=Id dépôt
     NbCheque=Nombre de chèques
     CreditNoteConvertedIntoDiscount=Ce %s a été converti en %s
    -UsBillingContactAsIncoiveRecipientIfExist=Utiliser l'adresse du contact facturation client de la facture plutôt que l'adresse du tiers comme destinataire des factures
    +UsBillingContactAsIncoiveRecipientIfExist=Utiliser l'adresse du contact de type 'contact facturation' plutôt que l'adresse du tiers comme destinataire des factures
     ShowUnpaidAll=Afficher tous les impayés
     ShowUnpaidLateOnly=Afficher uniquement les factures impayées en retard
     PaymentInvoiceRef=Paiement facture %s
    @@ -476,19 +478,20 @@ CantRemovePaymentWithOneInvoicePaid=Suppression impossible quand il existe au mo
     ExpectedToPay=Paiement attendu
     CantRemoveConciliatedPayment=Suppression d'un paiement rapproché impossible
     PayedByThisPayment=Règlé par ce paiement
    -ClosePaidInvoicesAutomatically=Classifiez "Payée" toutes les factures standard, d'acompte ou de remplacement entièrement payées.
    +ClosePaidInvoicesAutomatically=Classer «payées» toutes les factures standard, les acomptes ou les factures de remplacement entièrement payées
     ClosePaidCreditNotesAutomatically=Classer automatiquement à "Payé" les factures avoirs entièrement remboursées.
    -ClosePaidContributionsAutomatically=Classer "payée" toutes les dépenses spéciales réglées en totalité.
    -AllCompletelyPayedInvoiceWillBeClosed=Toutes les factures avec un reste à payer nul seront automatiquement fermées au statut "Payé".
    +ClosePaidContributionsAutomatically=Classer "payé" toutes les contributions sociales ou fiscales payées entièrement.
    +AllCompletelyPayedInvoiceWillBeClosed=Toutes les factures sans reste à payer seront automatiquement clôturées avec le statut "Payée".
     ToMakePayment=Payer
     ToMakePaymentBack=Rembourser
     ListOfYourUnpaidInvoices=Liste des factures impayées
     NoteListOfYourUnpaidInvoices=Remarque: Cette liste ne contient que les factures des Tiers pour lesquels vous êtes le commercial affecté.
     RevenueStamp=Timbre fiscal
    -YouMustCreateInvoiceFromThird=Cette option est disponible uniquement lors de la création de la facture depuis l'onglet «client» du tiers
    -YouMustCreateInvoiceFromSupplierThird=Cette option est disponible uniquement lors de la création d'une facture depuis l'onglet «fournisseur» d'un tiers
    +YouMustCreateInvoiceFromThird=Cette option est uniquement disponible lors de la création de factures à partir de l'onglet "client" d'un tiers
    +YouMustCreateInvoiceFromSupplierThird=Cette option est disponible uniquement lors de la création d'une facture depuis l'onglet "fournisseur" d'un tiers
     YouMustCreateStandardInvoiceFirstDesc=Pour créer une facture modèle, vous devez d'abord créer une facture standard brouillon et la convertir en modèle.
     PDFCrabeDescription=Modèle de facture PDF complet (modèle recommandé par défaut)
    +PDFSpongeDescription=Modèle de facture PDF Sponge. Un modèle de facture complet
     PDFCrevetteDescription=Modèle de facture PDF Crevette (modèle complet pour les factures de situation)
     TerreNumRefModelDesc1=Renvoie le numéro sous la forme %syymm-nnnn pour les factures et factures de remplacement, %syymm-nnnn pour les avoirs et %syymm-nnnn pour les acomptes où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0
     MarsNumRefModelDesc1=Renvoie une numérotation au format %syymm-nnnn pour les factures standards, %syymm-nnnn pour les factures de remplacement, %syymm-nnnn pour les factures d'acompte et %syymm-nnnn pour les factures d'avoir où yy est l'année, mm le mois et nnnn un compteur sans rupture ni retour à zéro.
    @@ -533,7 +536,7 @@ invoiceLineProgressError=L'avancement d'une ligne de facture ne peut pas être s
     updatePriceNextInvoiceErrorUpdateline=Erreur: mise à jour du prix sur la ligne de facture : %s
     ToCreateARecurringInvoice=Pour créer une facture périodique à ce contrat, créez d'abord une facture brouillon puis convertissez la en facture modèle et définissez la fréquence de génération des futures factures.
     ToCreateARecurringInvoiceGene=Pour générer de futures factures régulièrement et manuellement, cliquer sur le menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=Si vous devez utiliser de telles factures, demandez à votre administrateur d'activer le module <strong>%s</strong>. Notez que les deux méthodes de générations de factures (manuelles et automatiques) peuvent être utilisées simultanément sans risque de création de doublon.
    +ToCreateARecurringInvoiceGeneAuto=Si vous avez besoin que de telles factures soient générées automatiquement, demandez à votre administrateur d'activer et configurer le module <strong>%s</strong>. Notez que les deux méthodes de générations de factures (manuelles et automatiques) peuvent être utilisées en cohabitation sans risque de création de doublon.
     DeleteRepeatableInvoice=Supprimer facture modèle
     ConfirmDeleteRepeatableInvoice=Est-ce votre sûr de vouloir supprimer la facture modèle ?
     CreateOneBillByThird=Créer une facture par tiers (sinon, une facture par commande)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Définir la date de début
     AutoFillDateTo=Définir la date de fin de la ligne de service avec la date de la prochaine facture
     AutoFillDateToShort=Définir la date de fin
     MaxNumberOfGenerationReached=Nb maximum de gén. atteint
    +BILL_DELETEInDolibarr=Facture supprimée
    diff --git a/htdocs/langs/fr_FR/blockedlog.lang b/htdocs/langs/fr_FR/blockedlog.lang
    new file mode 100644
    index 00000000000..ae0b630096d
    --- /dev/null
    +++ b/htdocs/langs/fr_FR/blockedlog.lang
    @@ -0,0 +1,53 @@
    +BlockedLog=Journaux Inaltérables
    +Field=Champ
    +BlockedLogDesc=Ce module retrace certains événements dans un journal immuable (que vous ne pouvez pas modifier une fois enregistré) dans une chaîne de blocs, en temps réel. Ce module assure la compatibilité avec les exigences des lois de certains pays (comme la France avec la loi Finance 2016 - Norme NF535).
    +Fingerprints=Événements et empreintes archivés
    +FingerprintsDesc=C'est l'outil pour parcourir ou extraire les logs inaltérables. Les journaux inaltérables sont générés et archivés localement dans une table dédiée, en temps réel lorsque vous enregistrez une action dans dolibarr. Vous pouvez utiliser cet outil pour exporter cette archive et l'enregistrer sur un support externe (certains pays, comme la France, vous demandent de le faire chaque année). Notez qu'il n'y a pas de fonction pour purger ce journal et chaque changement essayé d'être fait directement dans ce journal (par un hacker par exemple) sera rapporté avec une empreinte non valide. Si vous avez vraiment besoin de purger cette table parce que vous avez utilisé votre application à des fins de démonstration/test et que vous voulez nettoyer vos données pour démarrer votre production, vous pouvez demander à votre revendeur ou intégrateur de réinitialiser votre base de données (toutes vos données seront supprimées).\n
    +CompanyInitialKey=Clé initiale de la société (hachage du bloc de genèse)
    +BrowseBlockedLog=Logs inaltérables
    +ShowAllFingerPrintsMightBeTooLong=Afficher tous les journaux archivés (peut être long)
    +ShowAllFingerPrintsErrorsMightBeTooLong=Afficher tous les logs d'archives non valides (peut être long)
    +DownloadBlockChain=Télécharger les empreintes
    +KoCheckFingerprintValidity=Le journal archivé n'est pas valide. Cela signifie que quelqu'un (un pirate informatique?) A modifié certaines données de ce journal archivé après son enregistrement ou a effacé l'enregistrement archivé précédent (vérifiez que la ligne avec le # précédent existe).
    +OkCheckFingerprintValidity=Le journal archivé est valide. Cela signifie que toutes les données de cette ligne n'ont pas été modifiées et l'enregistrement suit la précédente.
    +OkCheckFingerprintValidityButChainIsKo=Le journal archivé semble valide par rapport au précédent mais la chaîne était corrompue auparavant.
    +AddedByAuthority=Stocké dans une autorité distante
    +NotAddedByAuthorityYet=Pas encore stocké dans une autorité distante
    +ShowDetails=Voir plus de détails
    +logPAYMENT_VARIOUS_CREATE=Paiement créé (non affecté à la facture) 
    +logPAYMENT_VARIOUS_MODIFY=Paiement modifié (non affecté à la facture) 
    +logPAYMENT_VARIOUS_DELETE=Suppression logique du paiement (non affecté à la facture)
    +logPAYMENT_ADD_TO_BANK=Paiement ajouté à la banque
    +logPAYMENT_CUSTOMER_CREATE=Paiement client créé
    +logPAYMENT_CUSTOMER_DELETE=Suppression logique du paiement client
    +logDONATION_PAYMENT_CREATE=Paiement de donation créé
    +logDONATION_PAYMENT_DELETE=Suppression logique du paiement des dons
    +logBILL_PAYED=Facture client payée
    +logBILL_UNPAYED=Facture client impayée
    +logBILL_VALIDATE=Facture client validée
    +logBILL_SENTBYMAIL=Facture client envoyée par mail
    +logBILL_DELETE=Facture client supprimée logiquement
    +logMODULE_RESET=Le module BlockedLog a été désactivé
    +logMODULE_SET=Le module BlockedLog a été activé
    +logDON_VALIDATE=Don validé
    +logDON_MODIFY=Don modifié
    +logDON_DELETE=Don logique suppression
    +logMEMBER_SUBSCRIPTION_CREATE=Cotisation adhérent créée
    +logMEMBER_SUBSCRIPTION_MODIFY=Cotisation adhérent modifiée
    +logMEMBER_SUBSCRIPTION_DELETE=Suppression logique d'abonnement de membre
    +BlockedLogBillDownload=Téléchargement facture client
    +BlockedLogBillPreview=Aperçu facture client
    +BlockedlogInfoDialog=Détail du log
    +ListOfTrackedEvents=Liste des actions suivies
    +Fingerprint=Empreinte
    +DownloadLogCSV=Exporter les journaux archivés (CSV)
    +logDOC_PREVIEW=Aperçu d'un document validé pour impression ou téléchargement
    +logDOC_DOWNLOAD=Téléchargement d'un document validé pour impression ou envoi
    +DataOfArchivedEvent=Données complètes de l'événement archivé
    +ImpossibleToReloadObject=Objet d'origine (type %s, id %s) non lié (voir la colonne 'Données complètes' pour obtenir les données sauvegardées non modifiables)
    +BlockedLogAreRequiredByYourCountryLegislation=Le module Journaux inaltérables peut être requis par la législation de votre pays. La désactivation de ce module peut invalider toute transaction future au regard de la loi et de l'utilisation de logiciels légaux, car elles ne peuvent être validées par un contrôle fiscal.
    +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=Le module Journaux inaltérables a été activé en raison de la législation de votre pays. La désactivation de ce module peut invalider toute transaction future au regard de la loi et de l’utilisation de logiciels légaux, car elles ne peuvent pas être validées par un audit fiscal.
    +BlockedLogDisableNotAllowedForCountry=Liste des pays où l'utilisation de ce module est obligatoire (juste pour éviter de désactiver le module par erreur. Si votre pays est dans cette liste, la désactivation du module n'est pas possible sans la modification préalable de cette liste. Notez également que l'activation/désactivation de ce module garder une trace dans le journal des logs inaltérables).
    +OnlyNonValid=Non valide
    +TooManyRecordToScanRestrictFilters=Trop d'enregistrements à analyser / analyser. Veuillez restreindre la liste avec des filtres plus restrictifs.
    +RestrictYearToExport=Restreindre mois / année pour exporter
    diff --git a/htdocs/langs/fr_FR/boxes.lang b/htdocs/langs/fr_FR/boxes.lang
    index 99e058d2fdf..08aeba24632 100644
    --- a/htdocs/langs/fr_FR/boxes.lang
    +++ b/htdocs/langs/fr_FR/boxes.lang
    @@ -27,12 +27,12 @@ BoxTitleLastModifiedSuppliers=Les %s derniers fournisseurs modifiés
     BoxTitleLastModifiedCustomers=Les %s derniers clients modifiés
     BoxTitleLastCustomersOrProspects=Les %s derniers clients ou prospects
     BoxTitleLastCustomerBills=Les %s dernières factures client
    -BoxTitleLastSupplierBills=Les %s dernières factures fournisseur
    +BoxTitleLastSupplierBills=Les %s dernières factures fournisseurs
     BoxTitleLastModifiedProspects=Les %s derniers prospects modifiés
    -BoxTitleLastModifiedMembers=Les %s derniers adhérents
    +BoxTitleLastModifiedMembers=Les %s derniers adhérents modifiés
     BoxTitleLastFicheInter=Les %s dernières interventions modifiées
    -BoxTitleOldestUnpaidCustomerBills=Les %s plus anciennes factures clients impayées
    -BoxTitleOldestUnpaidSupplierBills=Les %s plus anciennes factures fournisseurs impayées
    +BoxTitleOldestUnpaidCustomerBills=Les %s plus anciennes factures client impayées
    +BoxTitleOldestUnpaidSupplierBills=Les %s plus anciennes factures fournisseur impayées
     BoxTitleCurrentAccounts=Balances des comptes ouverts
     BoxTitleLastModifiedContacts=Les %s derniers contacts/adresses modifiés
     BoxMyLastBookmarks=Mes %s derniers marque-pages
    diff --git a/htdocs/langs/fr_FR/cashdesk.lang b/htdocs/langs/fr_FR/cashdesk.lang
    index 0227aee95ea..f588b04a751 100644
    --- a/htdocs/langs/fr_FR/cashdesk.lang
    +++ b/htdocs/langs/fr_FR/cashdesk.lang
    @@ -30,5 +30,22 @@ ShowCompany=Voir société
     ShowStock=Voir entrepôt
     DeleteArticle=Cliquez pour enlever cet article
     FilterRefOrLabelOrBC=Recherche (Ref/Lib.)
    -UserNeedPermissionToEditStockToUsePos=Vous avez demandé de réduire le stock sur création de facture, aussi l'utilisateur qui utilise le Point De Vente doit avoir la permission d'éditer le stock.
    +UserNeedPermissionToEditStockToUsePos=Vous demandez de réduire le stock lors de la création de la facture. L'utilisateur qui utilise le Point De Vente doit donc avoir l'autorisation de modifier le stock.
     DolibarrReceiptPrinter=Imprimante reçu
    +PointOfSale=Point de Vente
    +PointOfSaleShort=PdV
    +CloseBill=Fermer la facture
    +Floors=Etages
    +Floor=Etage
    +AddTable=Ajouter une table
    +Place=Marché
    +TakeposConnectorNecesary='Connecteur TakePOS' requis
    +OrderPrinters=Commande imprimantes
    +SearchProduct=Rechercher un produit
    +Receipt=Reçu
    +Header=Entête
    +Footer=Bas de page
    +AmountAtEndOfPeriod=Montant en fin de période (jour, mois ou année)
    +TheoricalAmount=Montant théorique
    +RealAmount=Montant réel
    +CashFenceDone=Clôture de caisse faite pour la période
    diff --git a/htdocs/langs/fr_FR/categories.lang b/htdocs/langs/fr_FR/categories.lang
    index adecb7604c8..b65024a5217 100644
    --- a/htdocs/langs/fr_FR/categories.lang
    +++ b/htdocs/langs/fr_FR/categories.lang
    @@ -16,6 +16,7 @@ MembersCategoriesArea=Espace tags/catégories adhérents
     ContactsCategoriesArea=Espace tags/catégories de contacts
     AccountsCategoriesArea=Espace des tags/categories
     ProjectsCategoriesArea=Zone des tags/catégories des projets
    +UsersCategoriesArea=Espace tags/catégories des utlisateurs
     SubCats=Sous-catégories
     CatList=Liste des tags/catégories
     NewCategory=Nouveau tag/catégorie
    @@ -47,19 +48,20 @@ ContentsNotVisibleByAllShort=Contenu non visible par tous
     DeleteCategory=Effacer le(a) libellé/catégorie
     ConfirmDeleteCategory=Êtes-vous sûr de vouloir supprimer ce tag/catégorie ?
     NoCategoriesDefined=Aucun(e) tag/catégorie défini(e)
    -SuppliersCategoryShort=Tags/catégories de fournisseurs
    -CustomersCategoryShort=Tags/catégories de clients
    -ProductsCategoryShort=Tags/catégories de produits
    -MembersCategoryShort=Tags/catégories adhérents
    +SuppliersCategoryShort=Tag/catégorie de fournisseurs
    +CustomersCategoryShort=Tag/catégorie de clients
    +ProductsCategoryShort=Tag/catégorie de produits
    +MembersCategoryShort=Tag/catégorie adhérents
     SuppliersCategoriesShort=Tags fournisseurs
    -CustomersCategoriesShort=Tags/catégories de clients
    -ProspectsCategoriesShort=Tags/Catégories de prospects
    +CustomersCategoriesShort=Tags clients
    +ProspectsCategoriesShort=Tags prospects
     CustomersProspectsCategoriesShort=Tags clients/prosp.
    -ProductsCategoriesShort=Tags/catégories de produits
    -MembersCategoriesShort=Tags/catégories de membres
    +ProductsCategoriesShort=Tags de produits
    +MembersCategoriesShort=Tags des adhérents
     ContactCategoriesShort=Tags de contacts
    -AccountsCategoriesShort=Tag/catégorie des comptes
    -ProjectsCategoriesShort=Tags/catégories de projets
    +AccountsCategoriesShort=Tags des comptes
    +ProjectsCategoriesShort=Tags de projets
    +UsersCategoriesShort=Tags utlisateurs
     ThisCategoryHasNoProduct=Ce tag/catégorie ne contient aucun produit.
     ThisCategoryHasNoSupplier=Ce tag/catégorie ne contient aucun fournisseur.
     ThisCategoryHasNoCustomer=Ce tag/catégorie ne contient aucun client.
    diff --git a/htdocs/langs/fr_FR/commercial.lang b/htdocs/langs/fr_FR/commercial.lang
    index 77b4a095834..8619101a5f4 100644
    --- a/htdocs/langs/fr_FR/commercial.lang
    +++ b/htdocs/langs/fr_FR/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Appel téléphonique
     ActionAC_FAX=Envoi fax
     ActionAC_PROP=Envoi proposition par email
     ActionAC_EMAIL=Envoi email
    +ActionAC_EMAIL_IN=Réception d'email
     ActionAC_RDV=Rendez-vous
     ActionAC_INT=Intervention sur site
     ActionAC_FAC=Envoi facture client par email
    @@ -75,5 +76,5 @@ ToOfferALinkForOnlineSignature=Lien pour signature en ligne
     WelcomeOnOnlineSignaturePage=Bienvenue sur la page pour accepter les propositions commerciales de%s
     ThisScreenAllowsYouToSignDocFrom=Cet écran vous permet d'accepter et signer ou de refuser le devis ou la proposition commerciale
     ThisIsInformationOnDocumentToSign=Ceci est une information sur le document à accepter ou à refuser
    -SignatureProposalRef=Signer le devis ou la proposition commerciale %s
    +SignatureProposalRef=Signature du devis ou proposition commerciale %s
     FeatureOnlineSignDisabled=Fonctionnalité pour la signature en ligne désactivée ou document généré avant l'activation de la fonctionnalité
    diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang
    index 548a7f6e0dd..f062be18a66 100644
    --- a/htdocs/langs/fr_FR/companies.lang
    +++ b/htdocs/langs/fr_FR/companies.lang
    @@ -38,7 +38,7 @@ ThirdPartyCustomers=Clients
     ThirdPartyCustomersStats=Clients
     ThirdPartyCustomersWithIdProf12=Clients avec %s ou %s
     ThirdPartySuppliers=Fournisseurs
    -ThirdPartyType=Type du société
    +ThirdPartyType=Type du tiers
     Individual=Individu privé
     ToCreateContactWithSameName=Crée automatiquement un contact/adresse, sous le tiers, avec la même information que le tiers. Dans la plupart des cas, même si votre tiers est une personne physique, la création d'un tiers seul suffit.
     ParentCompany=Maison mère
    @@ -77,10 +77,10 @@ Web=Web
     Poste= Poste
     DefaultLang=Langue par défaut
     VATIsUsed=Assujetti à la TVA
    -VATIsUsedWhenSelling=Ceci définit si un tiers inclut une taxe de vente ou non lorsqu'il fait une facture à ses propres clients
    +VATIsUsedWhenSelling=Cela définit si ce tiers inclut une taxe de vente ou non lorsqu'il facture une facture à ses propres clients.
     VATIsNotUsed=Non assujetti à la TVA
     CopyAddressFromSoc=Remplir avec l'adresse du tiers
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Ce tiers n'est ni client ni fournisseur. il n'y a pas d'objet référent.
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Tiers ni client ni fournisseur, pas d'objets référents disponibles
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Tiers ni client ni fournisseur, les réductions ne sont pas disponibles
     PaymentBankAccount=Compte bancaire paiements
     OverAllProposals=Propositions commerciales
    @@ -318,7 +318,7 @@ CompanyDeleted=La société "%s" a été supprimée de la base.
     ListOfContacts=Liste des contacts
     ListOfContactsAddresses=Liste des contacts/adresses
     ListOfThirdParties=Liste des tiers
    -ShowCompany=Afficher tiers
    +ShowCompany=Affichier tiers
     ShowContact=Afficher contact
     ContactsAllShort=Tous (pas de filtre)
     ContactType=Type de contact
    @@ -333,7 +333,7 @@ NoContactForAnyProposal=Ce contact n'est contact d'aucune proposition commercial
     NoContactForAnyContract=Ce contact n'est contact d'aucun contrat
     NoContactForAnyInvoice=Ce contact n'est contact d'aucune facture
     NewContact=Nouveau contact
    -NewContactAddress=Nouveau contact/adresse
    +NewContactAddress=Nouveau Contact/Adresse
     MyContacts=Mes contacts
     Capital=Capital
     CapitalOf=Capital de %s
    @@ -342,11 +342,11 @@ ThisUserIsNot=Cet utilisateur n'est ni un prospect, ni un client, ni un fourniss
     VATIntraCheck=Vérifier
     VATIntraCheckDesc=Le lien <b>%s</b> permet d'interroger le service européen de contrôle des numéro de TVA intracommunautaire. Un accès à Internet depuis le serveur est requis pour que ce service fonctionne.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Vérifier sur le site de la Commission Européenne
    -VATIntraManualCheck=Vous pouvez aussi vérifier manuellement via le site européen <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Vérifier la TVA intra-communautaire sur le site de la Commission Européenne
    +VATIntraManualCheck=Vous pouvez aussi vérifier manuellement via le site de la commission européenne <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Vérification impossible. Le service de vérification n'est pas fourni par ce pays membre (%s).
     NorProspectNorCustomer=Ni client, ni prospect
    -JuridicalStatus=Forme juridique
    +JuridicalStatus=Type d'entité légale
     Staff=Effectif
     ProspectLevelShort=Potentiel
     ProspectLevel=Potentiel du prospect
    @@ -392,7 +392,7 @@ ExportDataset_company_2=Contacts (de tiers) et attributs
     ImportDataset_company_1=Tiers (sociétés/institutions/particuliers) et attributs
     ImportDataset_company_2=Contacts/Adresses (de tiers ou libre) et attributs
     ImportDataset_company_3=Coordonnées bancaires des tiers
    -ImportDataset_company_4=Tiers/Commerciaux (Affectation des Commerciaux aux Tiers)
    +ImportDataset_company_4=Tiers - Commerciaux (Affectation des Commerciaux aux Tiers)
     PriceLevel=Niveau de prix
     DeliveryAddress=Adresse de livraison
     AddAddress=Créer adresse
    @@ -402,14 +402,14 @@ DeleteFile=Suppression d'un fichier
     ConfirmDeleteFile=Êtes-vous sûr de vouloir supprimer ce fichier ?
     AllocateCommercial=Affecter un commercial
     Organization=Organisme
    -FiscalYearInformation=Information sur l'année fiscale
    +FiscalYearInformation=Exercice fiscal
     FiscalMonthStart=Mois de début d'exercice
    -YouMustAssignUserMailFirst=Une adresse e-mail est nécessaire pour l'envoi de notifications à cet utilisateur
    +YouMustAssignUserMailFirst=Vous devez définir un email pour cet utilisateur avant de pouvoir ajouter une notification par courrier électronique.
     YouMustCreateContactFirst=Pour pouvoir ajouter une notifications par mail,vous devez déjà définir des contacts valides pour le tiers  
     ListSuppliersShort=Liste des fournisseurs
    -ListProspectsShort=Liste prospects
    -ListCustomersShort=Liste clients
    -ThirdPartiesArea=Espace tiers et contacts
    +ListProspectsShort=Liste des prospects
    +ListCustomersShort=Liste des clients
    +ThirdPartiesArea=Tiers / Contacts
     LastModifiedThirdParties=Les %s derniers tiers modifiés
     UniqueThirdParties=Total de tiers uniques
     InActivity=Ouvert
    @@ -431,4 +431,4 @@ SaleRepresentativeLogin=Login du commercial
     SaleRepresentativeFirstname=Prénom du commercial
     SaleRepresentativeLastname=Nom du commercial
     ErrorThirdpartiesMerge=Une erreur est survenue lors de la suppression de ce tiers. Consultez les log. La modification a été annulée.
    -NewCustomerSupplierCodeProposed=Nouveau code client ou fournisseur proposé en cas de doublon de code
    +NewCustomerSupplierCodeProposed=Code client ou fournisseur déjà utilisé, un nouveau code est suggéré
    diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang
    index 297db2e5c13..e7f50ef2a2a 100644
    --- a/htdocs/langs/fr_FR/compta.lang
    +++ b/htdocs/langs/fr_FR/compta.lang
    @@ -142,7 +142,7 @@ CalcModeVATDebt=Mode <b>%sTVA sur débit%s</b>.
     CalcModeVATEngagement=Mode <b>%sTVA sur encaissement%s</b>.
     CalcModeDebt=Analyse des factures enregistrées connues même si elles ne sont pas encore comptabilisées dans le Grand Livre.
     CalcModeEngagement=Analyse des paiements enregistrés connus, même s'ils ne sont pas encore comptabilisés dans le Grand Livre.
    -CalcModeBookkeeping=Analyse des <b> données journalisées dans le grand livre </b>
    +CalcModeBookkeeping=Analyse des données journalisées dans le tableau Grand livre.
     CalcModeLT1= Mode <b>%sRE sur factures clients - factures fournisseurs%s<b>
     CalcModeLT1Debt=Mode <b>%sRE sur factures clients%s</b>
     CalcModeLT1Rec= Mode <b>%sRE sur factures fournisseurs%s</b>
    @@ -229,11 +229,11 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable par défaut pour la TVA - TVA sur l
     ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable par défaut pour la TVA - TVA sur les achats (utilisé si non défini au niveau de la configuration du dictionnaire de TVA)
     ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA
     ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable utilisé pour le tiers client
    -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Le compte comptable dédié défini sur la fiche tiers sera utilisé pour l'affectation du compte auxiliaire uniquement. Celui-ci sera utilisé pour la comptabilité générale et comme valeur par défaut de la comptabilité auxiliaire si le compte comptable client dédié du ties n'est pas défini. 
    +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Le compte de comptabilité dédié défini sur la carte tierce sera utilisé pour la comptabilité Subledger uniquement. Celui-ci sera utilisé pour le grand livre et comme valeur par défaut de la comptabilité Subledger si le compte de comptabilité client dédié sur une tierce partie n'est pas défini.
     ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable utilisé pour les tiers fournisseur
    -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Le compte comptable dédié défini sur la carte tierce sera utilisé pour l'affectation du compte secondaire uniquement. Celui-ci sera utilisé pour le grand livre général et comme valeur par défaut de la comptabilité du sous-compte rendu si le compte d'affectation spécialisé du fournisseur sur un tiers n'est pas défini.
    +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Le compte de comptabilité dédié défini sur la carte tierce sera utilisé pour la comptabilité Subledger uniquement. Celui-ci sera utilisé pour le grand livre et comme valeur par défaut de la comptabilité Subledger si le compte de comptabilité fournisseur dédié sur une tierce partie n'est pas défini.
     CloneTax=Cloner une charge sociale/fiscale
    -ConfirmCloneTax=Confirmez le clone du paiement de charge sociale/fiscale
    +ConfirmCloneTax=Confirmer le clone d'un impôt social / fiscal
     CloneTaxForNextMonth=Cloner pour le mois suivant
     SimpleReport=Rapport simple
     AddExtraReport=Rapports complémentaires (Ajouter le rapport client local et international)
    @@ -248,7 +248,7 @@ ErrorBankAccountNotFound=Erreur: compte banque non trouvé
     FiscalPeriod=Période fiscale
     ListSocialContributionAssociatedProject=Liste des charges sociales liées au projet
     DeleteFromCat=Supprimer du groupe comptable
    -AccountingAffectation=Compte affecté
    +AccountingAffectation=Affectation comptable
     LastDayTaxIsRelatedTo=Dernier jour de la période pour laquelle la taxe est due
     VATDue=TVA réclamée
     ClaimedForThisPeriod=Réclamé pour la période
    diff --git a/htdocs/langs/fr_FR/contracts.lang b/htdocs/langs/fr_FR/contracts.lang
    index a75d83c1dbd..c984f6cd951 100644
    --- a/htdocs/langs/fr_FR/contracts.lang
    +++ b/htdocs/langs/fr_FR/contracts.lang
    @@ -67,7 +67,7 @@ CloseService=Fermer service
     BoardRunningServices=Services actifs et expirés en contrat
     ServiceStatus=Statut du service
     DraftContracts=Contrats brouillons
    -CloseRefusedBecauseOneServiceActive=Fermeture du contrat impossible car il y a au moins un service actif
    +CloseRefusedBecauseOneServiceActive=Le contrat ne peut pas être fermé car il y a au moins un service ouvert dessus
     ActivateAllContracts=Activer tous les services
     CloseAllContracts=Clôturer tous les services
     DeleteContractLine=Supprimer ligne de contrat
    @@ -89,6 +89,7 @@ CloneContract=Cloner le contrat
     ConfirmCloneContract=Etes vous sûr de vouloir cloner le contrat <b>%s</b> ?
     LowerDateEndPlannedShort=Date de fin de service la plus basse parmi les services actifs
     SendContractRef=Informations contrat __REF__
    +OtherContracts=Autres contrats
     ##### Types de contacts #####
     TypeContact_contrat_internal_SALESREPSIGN=Commercial signataire du contrat
     TypeContact_contrat_internal_SALESREPFOLL=Commercial suivi du contrat
    diff --git a/htdocs/langs/fr_FR/cron.lang b/htdocs/langs/fr_FR/cron.lang
    index 5e50c173fe7..93d37547396 100644
    --- a/htdocs/langs/fr_FR/cron.lang
    +++ b/htdocs/langs/fr_FR/cron.lang
    @@ -6,13 +6,13 @@ Permission23102 = Créer/Modifier des tâches planifiées
     Permission23103 = Supprimer une tâche planifiée
     Permission23104 = Exécuter une tâche planifiée
     # Admin
    -CronSetup= Page de configuration du module - Gestion des travaux programmés
    +CronSetup=Page de configuration du module - Gestion des travaux programmés
     URLToLaunchCronJobs=Ou pour vérifier ou lancer les travaux planifiés qualifiés
     OrToLaunchASpecificJob=Ou pour vérifier et lancer un travail programmé spécifique
     KeyForCronAccess=Clé de sécurité pour l'URL de lancement des travaux programmés
     FileToLaunchCronJobs=Ligne de commande pour vérifier et lancer les travaux programmés qualifiés
     CronExplainHowToRunUnix=Sur un environnement Unix vous pouvez utiliser l'entrée suivante en crontab pour exécuter la ligne de commande toutes les 5 minutes
    -CronExplainHowToRunWin=Sur un environement Microsoft(tm) Windows vous pouvez utiliser le planificateur de tache pour lancer cette commande toute les 5 minutes.
    +CronExplainHowToRunWin=Sous Microsoft (tm) Windows, vous pouvez utiliser les outils Tâches programmées pour exécuter la ligne de commande toutes les 5 minutes.
     CronMethodDoesNotExists=La classe %s ne contient aucune méthode %s
     CronJobDefDesc=Les travaux planifiés sont définis dans le fichier descripteur de module. Lorsque le module est activé, ils sont chargés et disponibles afin que vous puissiez administrer les travaux à partir du menu des outils d'administration %s.
     CronJobProfiles=Liste des profils de travaux planifiés prédéfinis
    @@ -42,7 +42,7 @@ CronModule=Module
     CronNoJobs=Aucun travail enregistré
     CronPriority=Priorité
     CronLabel=Libellé
    -CronNbRun=Nb. exec.
    +CronNbRun=Nb. lancements
     CronMaxRun=Nb max de lancement
     CronEach=Tous les
     JobFinished=Travail lancé et terminé
    @@ -61,7 +61,7 @@ CronStatusInactiveBtn=Désactiver
     CronTaskInactive=Cette tâche est désactivée
     CronId=Id
     CronClassFile=Nom de fichier intégrant la classe
    -CronModuleHelp=Nom du dossier du module dans Dolibarr (fonctionne aussi avec les modules externes). <BR>Par exemple, pour appeler la méthode d'appel des produits Dolibarr /htdocs/<u>product</u>/class/product.class.php, la valeur du module est <br><i>product</i>.
    +CronModuleHelp=Nom du répertoire du module Dolibarr (fonctionne également avec le module externe Dolibarr). <BR> Par exemple, pour appeler la méthode fetch de l'objet produit Dolibarr /htdocs/<u>product</u>/class/product.class.php, la valeur du module est <br> <i> produit </i>
     CronClassFileHelp=Le chemin relatif et le nom du fichier à charger (le chemin d'accès est relatif au répertoire racine du serveur Web). <BR> Par exemple, pour appeler la méthode fetch de l'objet Product htdocs/product/class/<u> product.class.php</u>, la valeur du nom de fichier de classe est<br> <i> product/class/product.class.php</i>
     CronObjectHelp=Le nom de l'objet à charger. <BR> Par exemple pour appeler la méthode de récupération de l'objet Produut Dolibarr /htdocs/product/class/product.class.php, la valeur du nom de fichier de classe est <br> <i> Product </i>
     CronMethodHelp=La méthode objet à lancer. <BR> Par exemple, pour appeler la méthode fetch de l'objet Dolibarr Product /htdocs/product/class/product.class.php, la valeur pour la méthode est<br><i>fetch</i>
    @@ -79,5 +79,5 @@ CronCannotLoadObject=Le fichier de classe %s a été chargé, mais l'objet %s n'
     UseMenuModuleToolsToAddCronJobs=Aller à la page "Accueil - Outils administration - Travaux planifiées" pour voir la listes des travaux programmées et les modifier.
     JobDisabled=Travail désactivé
     MakeLocalDatabaseDumpShort=Sauvegarde locale de base
    -MakeLocalDatabaseDump=Créez un fichier dump de base local. Les paramètres sont: compression ('gz' ou 'bz' ou 'none'), type de sauvegarde ('mysql', 'pgsql', 'auto'), 1, 'auto' ou nom du fichier à générer, nb de fichiers de sauvegarde à garder
    +MakeLocalDatabaseDump=Créez un fichier dump de base local. Les paramètres sont: compression ('gz' ou 'bz' ou 'none'), type de sauvegarde ('mysql', 'pgsql', 'auto'), 1, 'auto' ou nom du fichier à générer, nombre de fichiers de sauvegarde à garder
     WarningCronDelayed=Attention, à des fins de performance, quelle que soit la prochaine date d'exécution des travaux activés, vos travaux peuvent être retardés jusqu'à %s heures avant d'être exécutés.
    diff --git a/htdocs/langs/fr_FR/dict.lang b/htdocs/langs/fr_FR/dict.lang
    index eba530a3970..b9d965ca425 100644
    --- a/htdocs/langs/fr_FR/dict.lang
    +++ b/htdocs/langs/fr_FR/dict.lang
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinité-et-Tobago
     CountryTR=Turquie
     CountryTM=Turkménistan
    -CountryTC=Iles Turks-et-Caicos
    +CountryTC=Iles Turques-et-Caïques
     CountryTV=Tuvalu
     CountryUG=Ouganda
     CountryUA=Ukraine
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Bouche à oreille
     DemandReasonTypeSRC_PARTNER=Partenaire
     DemandReasonTypeSRC_EMPLOYEE=Employé
     DemandReasonTypeSRC_SPONSORING=Parrainage/Sponsoring
    +DemandReasonTypeSRC_SRC_CUSTOMER=Contact entrant d'un client
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/fr_FR/ecm.lang b/htdocs/langs/fr_FR/ecm.lang
    index 0f92ea1917a..daea9b744da 100644
    --- a/htdocs/langs/fr_FR/ecm.lang
    +++ b/htdocs/langs/fr_FR/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nombre de documents du répertoire
    +ECMNbOfDocs=Nb. de documents du répertoire
     ECMSection=Répertoire
     ECMSectionManual=Répertoire manuel
     ECMSectionAuto=Répertoire automatique
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents associés aux projets
     ECMDocsByUsers=Documents associés aux utilisateurs
     ECMDocsByInterventions=Documents associés aux interventions
     ECMDocsByExpenseReports=Documents associés aux notes de frais
    +ECMDocsByHolidays=Documents liés aux congès
    +ECMDocsBySupplierProposals=Documents liés aux propositions fournisseurs
     ECMNoDirectoryYet=Aucun répertoire créé
     ShowECMSection=Afficher répertoire
     DeleteSection=Suppression répertoire
    diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang
    index 02e2a677c8e..c33fad420ec 100644
    --- a/htdocs/langs/fr_FR/errors.lang
    +++ b/htdocs/langs/fr_FR/errors.lang
    @@ -6,7 +6,7 @@ NoErrorCommitIsDone=Pas d'erreur, on valide
     ErrorButCommitIsDone=Erreurs trouvées mais on valide malgré tout
     ErrorBadEMail=email %s invalide
     ErrorBadUrl=Url %s invalide
    -ErrorBadValueForParamNotAString=Mauvaise valeur de paramètre. Ceci arrive lors d'une tentative de traduction d'une clé non renseigné.
    +ErrorBadValueForParamNotAString=Mauvaise valeur de paramètre. Ceci arrive lors d'une tentative de traduction d'une clé non renseignée.
     ErrorLoginAlreadyExists=L'identifiant %s existe déjà.
     ErrorGroupAlreadyExists=Le groupe %s existe déjà.
     ErrorRecordNotFound=Enregistrement non trouvé.
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=La valeur '%s' a un format de date non reconnu
     ErrorWrongDate=La date est incorrecte
     ErrorFailedToWriteInDir=Impossible d'écrire dans le répertoire %s
     ErrorFoundBadEmailInFile=Syntaxe d'email incorrecte trouvée pour %s lignes dans le fichier (exemple ligne %s avec email=%s)
    -ErrorUserCannotBeDelete=L'utilisateur ne peut pas être supprimé. Peut-être est-il associé à des éléments de Dolibarr.
    +ErrorUserCannotBeDelete=L'utilisateur ne peut pas être supprimé. Peut-être est-il associé à des entités Dolibarr.
     ErrorFieldsRequired=Des champs obligatoires n'ont pas été renseignés
     ErrorSubjectIsRequired=Le sujet du mail est obligatoire
     ErrorFailedToCreateDir=Echec à la création d'un répertoire. Vérifiez que le user du serveur Web ait bien les droits d'écriture dans les répertoires documents de Dolibarr. Si le paramètre <b>safe_mode</b> a été activé sur ce PHP, vérifiez que les fichiers php dolibarr appartiennent à l'utilisateur du serveur Web.
    @@ -66,17 +66,18 @@ ErrorNoValueForCheckBoxType=Les valeurs de la liste de case à cochées doivent
     ErrorNoValueForRadioType=Les valeurs de la liste d'options doivent être renseignées
     ErrorBadFormatValueList=Les valeurs de la liste ne peuvent pas avoir plus d'une virgule: <u>%s</u> mais il en faut au moins une: clé, valeur
     ErrorFieldCanNotContainSpecialCharacters=Le champ <b>%s</b> ne peut contenir de caractères spéciaux.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Le champ <b>%s</b> ne doit pas contenir de caractères spéciaux, ni majuscules et ne peut contenir que des chiffres.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=Le champ <b> %s </b> ne doit contenir ni caractères spéciaux ni majuscules et ne peut contenir que des chiffres.
    +ErrorFieldMustHaveXChar=Le champ <b> %s </b> doit comporter au moins %s caractères.
     ErrorNoAccountancyModuleLoaded=Aucun module de comptabilité activé
     ErrorExportDuplicateProfil=Ce nom de profil existe déjà pour ce lot d'export.
     ErrorLDAPSetupNotComplete=Le matching Dolibarr-LDAP est incomplet.
     ErrorLDAPMakeManualTest=Un fichier .ldif a été généré dans le répertoire %s. Essayez de charger ce fichier manuellement depuis la ligne de commande pour plus de détail sur l'erreur.
    -ErrorCantSaveADoneUserWithZeroPercentage=Impossible de sauver une action à l'état non commencé avec un utilisateur défini comme ayant fait l'action.
    +ErrorCantSaveADoneUserWithZeroPercentage=Impossible de sauver une action à l'état "non commencé" si le champ "réalisé par" est aussi défini.
     ErrorRefAlreadyExists=La référence utilisée pour la création existe déjà
     ErrorPleaseTypeBankTransactionReportName=Choisissez le nom du relevé bancaire sur lequel la ligne est rapportées (Format AAAAMM ou AAAAMMJJ)
     ErrorRecordHasChildren=Impossible de supprimer l'enregistrement car il possède des enregistrements fils.
     ErrorRecordHasAtLeastOneChildOfType=L'objet a au moins un enfant de type %s
    -ErrorRecordIsUsedCantDelete=Ne peut effacer l'enregistrement.  Ce dernier est déjà utilisé ou inclut dans un autre élément.
    +ErrorRecordIsUsedCantDelete=Impossible de supprimer l'enregistrement. Il est déjà utilisé ou inclus dans un autre objet.
     ErrorModuleRequireJavascript=Le javascript ne doit pas être désactivé pour que cette fonctionnalité soit utilisable. Pour activer/désactiver l'utilisation de javascript, allez dans le menu Accueil->Configuration->Affichage.
     ErrorPasswordsMustMatch=Les 2 mots de passe saisis doivent correspondre
     ErrorContactEMail=Une erreur technique est apparue. Merci de contacter l'administrateur à l'email suivant <b>%s</b> en lui indiquant le code erreur <b>%s</b> dans votre message ou mieux en fournissant une copie d'écran de cette page.
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=L'antivirus n'a pas pu valider ce fichier (il est
     ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas admis pour le champ "%s"
     ErrorNumRefModel=Une référence existe en base (%s) et est incompatible avec cette numérotation. Supprimez la ligne ou renommez la référence pour activer ce module.
     ErrorQtyTooLowForThisSupplier=Quantité insuffisante pour ce fournisseur ou aucun tarif défini sur ce produit pour ce fournisseur
    +ErrorOrdersNotCreatedQtyTooLow=Certaines commandes n'ont pas été créées en raison d'une quantité trop faible
     ErrorModuleSetupNotComplete=La configuration des modules semble incomplète. Aller sur la page Accueil - Configuration - Modules pour corriger.
     ErrorBadMask=Erreur sur le masque
     ErrorBadMaskFailedToLocatePosOfSequence=Erreur, masque sans numéro de séquence
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Le compte utilisateur identifié par <b>%s</b> n'a pu ê
     ErrorLoginHasNoEmail=Cet utilisateur n'a pas d'email. Impossible de continuer.
     ErrorBadValueForCode=Mauvaise valeur saisie pour le code. Réessayez avec une nouvelle valeur...
     ErrorBothFieldCantBeNegative=Les champs %s et %s ne peuvent être tous deux négatifs
    +ErrorFieldCantBeNegativeOnInvoice=Le champ <strong> %s </strong> ne peut pas être négatif pour ce type de facture. Si vous souhaitez ajouter une ligne de remise, créez tout d'abord la remise avec le lien %s à l'écran et appliquez-la à la facturation. Vous pouvez également demander à votre administrateur de définir l'option FACTURE_ENABLE_NEGATIVE_LINES sur 1 pour restaurer l'ancien comportement.
     ErrorQtyForCustomerInvoiceCantBeNegative=La quantité d'une ligne ne peut pas être négative dans les factures clients 
     ErrorWebServerUserHasNotPermission=Le compte d'exécution du serveur web <b>%s</b> n'a pas les permissions pour cela
     ErrorNoActivatedBarcode=Aucun type de code-barres activé
    @@ -130,7 +133,7 @@ ErrorFailedToValidatePasswordReset=Echec de la réinitialisation du mot de passe
     ErrorToConnectToMysqlCheckInstance=Echec de la connection au serveur de base de données. Vérifier que votre serveur est bien lancé (par exemple, avec MySQL/MariaDB, vous pouvez le lancer depuis la ligne de commande avec 'sudo service mysql start').
     ErrorFailedToAddContact=Echec à l'ajout du contact
     ErrorDateMustBeBeforeToday=La date ne peut pas être supérieure à aujourd'hui
    -ErrorPaymentModeDefinedToWithoutSetup=Un mode de paiement a été défini de type %s mais la configuration du module Facture n'a pas été complétée pour définir les informations affichées pour ce mode de paiment.
    +ErrorPaymentModeDefinedToWithoutSetup=Un mode de paiement a été défini de type %s mais la configuration du module Facture n'a pas été complétée pour définir les informations affichées pour ce mode de paiement.
     ErrorPHPNeedModule=Erreur, votre PHP doit avoir le module <b>%s</b> installé pour utiliser cette fonctionnalité.
     ErrorOpenIDSetupNotComplete=Vous avez configuré Dolibarr pour accepter l'authentication OpenID, mais l'URL du service OpenID n'est pas défini dans la constante %s
     ErrorWarehouseMustDiffers=Les entrepôts source et destination doivent être différents
    @@ -138,7 +141,7 @@ ErrorBadFormat=Mauvais format
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Erreur, cet adhérent n'ait pas encore lié à un tiers. Lier le tier à un tiers existant ou créer un nouveau tiers avant de créer une adhésion avec facture.
     ErrorThereIsSomeDeliveries=Erreur, il y a des bordereaux de réception liées à ces expéditions. La suppression est refusée.
     ErrorCantDeletePaymentReconciliated=Impossible d'effacer un paiement qui a généré une écriture sur le compte bancaire et qui a été rapprochée.
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Impossible d'effacer un paiement qui porte sur au moins une facture qui est à l'état payée.
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Impossible de supprimer un paiement partagé par au moins une facture avec le statut Payé
     ErrorPriceExpression1=Ne peut assigner la constante '%s'
     ErrorPriceExpression2=Ne peut redéfinir la fonction '%s'
     ErrorPriceExpression3=Variable '%s' non définie dans la définition de fonction
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Nombre incorrect d'arguments (%s donné,%s attendu)
     ErrorPriceExpression8=Operateur '%s' non attendu
     ErrorPriceExpression9=Une erreur inattendue s'est produite
    -ErrorPriceExpression10=Il manque l'opérande à l'opérateur '%s' 
    +ErrorPriceExpression10=L'opérateur '%s' manque d'opérande
     ErrorPriceExpression11=Attendu '%s'
     ErrorPriceExpression14=Division par zéro
     ErrorPriceExpression17=Variable '%s' non définie
    @@ -171,7 +174,7 @@ ErrorGlobalVariableUpdater4=Le client SOAP a échoué avec l'erreur '%s'
     ErrorGlobalVariableUpdater5=Pas de variable globale
     ErrorFieldMustBeANumeric=Le champ <b>%s</b> doit être un numérique
     ErrorMandatoryParametersNotProvided=Paramètre(s) obligatoire(s) non fournis
    -ErrorOppStatusRequiredIfAmount=Vous avez fixé un montant estimé pour cette opportunité/affaire. Aussi, vous devez également entrer son statut
    +ErrorOppStatusRequiredIfAmount=Vous avez fixé un montant estimé pour cette opportunité. Aussi, vous devez également entrer son statut
     ErrorFailedToLoadModuleDescriptorForXXX=Echec de chagement de la classe descripteur du module %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Mauvaise définition du tableau Menu dans le descripteur de module (mauvaise valeur pour la clé fk_menu)
     ErrorSavingChanges=Une erreur est survenue lors de la sauvegarde des modifications
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=Fichier non trouvé. Peut que la clé de partage
     ErrorProductBarCodeAlreadyExists=Le code-barre du produit %s existe déjà sur une autre référence de produit
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Notez également que l'utilisation d'un produit virtuel pour augmenter ou réduire automatiquement les sous-produits n'est pas possible lorsqu'au moins un sous-produit (ou sous-produit de sous-produits) a besoin d'un numéro de série/lot.
     ErrorDescRequiredForFreeProductLines=La description est obligatoire pour les lignes avec un produit non prédéfini
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=La page / container <strong> %s </strong> a le même nom ou un autre alias que celui que vous tentez d'utiliser.
    +ErrorDuringChartLoad=Erreur lors du chargement du tableau de compte. Si certains comptes n'ont pas été chargés, vous pouvez toujours les entrer manuellement.
     # Warnings
     WarningPasswordSetWithNoAccount=Un mot de passe a été fixé pour cet adhérent. Cependant, aucun compte d'utilisateur n'a été créé. Donc, ce mot de passe est stocké, mais ne peut être utilisé pour accéder à Dolibarr. Il peut être utilisé par un module/interface externe, mais si vous n'avez pas besoin de définir ni login ni mot de passe pour un adhérent, vous pouvez désactiver l'option «Gérer un login pour chaque adhérent" depuis la configuration du module Adhérents. Si vous avez besoin de gérer un login, mais pas de mot de passe, vous pouvez laisser ce champ vide pour éviter cet avertissement. Remarque: L'email peut également être utilisé comme login si l'adhérent est lié à un utilisateur.
     WarningMandatorySetupNotComplete=Les informations de configuration obligatoire doivent être renseignées
    @@ -217,17 +221,17 @@ WarningBookmarkAlreadyExists=Un marque-page avec ce titre ou cette destination (
     WarningPassIsEmpty=Attention, le mot de passe de la base de données Dolibarr est vide. Cela représente une faille de sécurité. Il est recommandé d'ajouter manuellement un mot de passe à la base et de modifier le fichier conf.php pour refléter ce changement.
     WarningConfFileMustBeReadOnly=Attention, votre fichier de configuration (<b>htdocs/conf/conf.php</b>) est accessible en écriture au serveur Web. Ceci représente une faille sérieuse de sécurité. Modifiez les permissions pour qu'il soit en lecture seule pour le compte sous lequel tourne le serveur Web et non lisible pour les autres.<br>Si vous êtes sous Windows sur un disque dur utilisant un formatage FAT, sachez que ce système de fichier ne permet pas de protéger des fichiers et n'offre donc aucune solution pour réduire les risques de manipulation de ce fichier.
     WarningsOnXLines=Alertes sur <b>%s</b> enregistrement(s) source
    -WarningNoDocumentModelActivated=Aucun modèle, pour la génération de document, n'a été activé. Un modèle sera pris par défaut en attendant la correction de configuration du module.
    +WarningNoDocumentModelActivated=Aucun modèle, pour la génération de document, n'a été activé. Un modèle sera choisi par défaut jusqu'à ce que vous vérifiiez la configuration de votre module.
     WarningLockFileDoesNotExists=Attention, une fois l'installation terminée, les outils d'installation/migration doivent être désactivés en ajoutant un fichier <b>install.lock</b> dans le répertoire <b>%s</b>. L'absence de ce fichier représente une faille de sécurité.
    -WarningUntilDirRemoved=Les alertes de sécurité sont visibles par les administrateurs uniquement et resteront actives tant que la vulnérabilité sera avérée (ou que la constante MAIN_REMOVE_INSTALL_WARNING aura été définie dans Configuration->Divers)
    +WarningUntilDirRemoved=Tous les avertissements de sécurité (visibles uniquement par les administrateurs) resteront actifs tant que la vulnérabilité sera présente (ou que la constante MAIN_REMOVE_INSTALL_WARNING sera ajoutée dans Setup -> Other Setup).
     WarningCloseAlways=Attention, la fermeture se fait même lorsque le montant diffère. N'activez cette fonctionnalité qu'en connaissance de cause.
    -WarningUsingThisBoxSlowDown=Attention, l'utilisation de cette boite provoque de sérieux ralentissement des pages affichant cette boite.
    +WarningUsingThisBoxSlowDown=Attention, l'utilisation de cette boîte provoque de sérieux ralentissements des pages affichant cette boîte.
     WarningClickToDialUserSetupNotComplete=La configuration ClickToDial pour votre compte utilisateur n'est pas complète (voir l'onglet ClickToDial sur votre fiche utilisateur)
    -WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Fonction désactivé quand l'affichage est en mode optimisé pour les personnes aveugles ou les navigateurs textes.
    +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Fonction désactivée quand l'affichage est en mode optimisé pour les personnes aveugles ou les navigateurs textes.
     WarningPaymentDateLowerThanInvoiceDate=La date de paiement (%s) est inférieure à la date de facturation (%s) de la facture %s.
     WarningTooManyDataPleaseUseMoreFilters=Trop de données (plus de %s lignes). Utilisez davantage de filtres ou régler la constante %s pour augmenter la limite à une valeur plus élevée.
     WarningSomeLinesWithNullHourlyRate=Des temps ont été enregistrés par des utilisateurs lorsque leur taux horaire n'était défini. Une valeur de 0 %s a été utilisée, mais cela peut entraîner une mauvaise évaluation du temps passé.
    -WarningYourLoginWasModifiedPleaseLogin=Votre identifiant a été modifié. Par sécurité, vous devrez vous identifiez avec votre nouvel identifiant avant l'action suivante.
    +WarningYourLoginWasModifiedPleaseLogin=Votre identifiant a été modifié. Par sécurité, vous devrez vous identifier avec votre nouvel identifiant avant l'action suivante.
     WarningAnEntryAlreadyExistForTransKey=Une donnée identique existe déjà pour la traduction du code dans cette langue
     WarningNumberOfRecipientIsRestrictedInMassAction=Attention, le nombre de destinataires différents est limité à <b>%s</b> lorsque vous utilisez les actions en masse sur les listes
     WarningDateOfLineMustBeInExpenseReportRange=Attention, la date de la ligne n'est pas dans la plage de la note de frais
    diff --git a/htdocs/langs/fr_FR/exports.lang b/htdocs/langs/fr_FR/exports.lang
    index 48df77c7641..0abd35e87cc 100644
    --- a/htdocs/langs/fr_FR/exports.lang
    +++ b/htdocs/langs/fr_FR/exports.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - exports
    -ExportsArea=Espace exports
    +ExportsArea=Exports
     ImportArea=Espace import
     NewExport=Nouvel export
     NewImport=Nouvel import
    @@ -8,22 +8,22 @@ ImportableDatas=Lot de données importables
     SelectExportDataSet=Choisissez un lot prédéfini de données que vous désirez exporter…
     SelectImportDataSet=Choisissez un lot prédéfini de données que vous désirez importer…
     SelectExportFields=Choisissez les champs à exporter, ou choisissez un profil d'export prédéfini
    -SelectImportFields=Choisissez les champs du fichier source à importer et leur destination dans la base en les déplaçant vers le haut ou vers le bas via l'ancre %s,<br>ou choisissez un profil d'import prédéfini:
    +SelectImportFields=Choisissez les champs du fichier source à importer et leur destination dans la base en les déplaçant vers le haut ou vers le bas via l'ancre %s, ou choisissez un profil d'import prédéfini:
     NotImportedFields=Champs du fichier source non importés
    -SaveExportModel=Enregistrer ce profil d'export si vous désirez le réutiliser ultérieurement…
    -SaveImportModel=Enregistrer ce profil d'import si vous désirez le réutiliser ultérieurement…
    +SaveExportModel=Enregistrer ce profil d'import (si vous désirez le réutiliser ultérieurement) …
    +SaveImportModel=Enregistrer ce profil d'import (si vous désirez le réutiliser ultérieurement) …
     ExportModelName=Nom du profil d'export
     ExportModelSaved=Profil d'export sauvegardé sous le nom <b>%s</b>.
     ExportableFields=Champs exportables
     ExportedFields=Champs à exporter
     ImportModelName=Nom du profil d'import
    -ImportModelSaved=Profil d'import sauvegardé sous le nom <b>%s</b>.
    +ImportModelSaved=Profil d'export sauvegardé sous le nom <b>%s</b>.
     DatasetToExport=Lot de données à exporter
     DatasetToImport=Importer fichier dans la table de
     ChooseFieldsOrdersAndTitle=Choisissez l'ordre des champs…
     FieldsTitle=Titre champs
     FieldTitle=Titre champ
    -NowClickToGenerateToBuildExportFile=Maintenant, sélectionnez le format d'export dans la liste déroulante et cliquez sur "Générer" pour fabriquer le fichier export…
    +NowClickToGenerateToBuildExportFile=Maintenant, sélectionnez le format d'export du fichier dans la liste déroulante et cliquez sur "Générer" pour fabriquer le fichier export…
     AvailableFormats=Formats disponibles
     LibraryShort=Bibliothèque
     Step=Étape
    @@ -51,7 +51,7 @@ TypeOfLineServiceOrProduct=Type de ligne (0=produit, 1=service)
     FileWithDataToImport=Fichier contenant les données à importer
     FileToImport=Fichier source à importer
     FileMustHaveOneOfFollowingFormat=Le fichier à importer doit avoir un des formats suivants
    -DownloadEmptyExample=Télécharger fichier vierge exemple
    +DownloadEmptyExample=Télécharger fichier vierge exemple (* sont les champs obligatoires)
     ChooseFormatOfFileToImport=Choisissez le format de fichier à importer en cliquant sur le pictogramme %s pour le sélectionner…
     ChooseFileToImport=Ajoutez le fichier à importer puis cliquez sur le pictogramme %s pour le sélectionner comme fichier source d'import…
     SourceFileFormat=Format du fichier source
    @@ -68,7 +68,7 @@ FieldsTarget=Champs cibles
     FieldTarget=Champ cible
     FieldSource=Champ source
     NbOfSourceLines=Nombre de lignes du fichier source
    -NowClickToTestTheImport=Vérifiez les paramètres d'import que vous avez défini. S'ils vous conviennent, cliquez sur le bouton "<b>%s</b>" pour lancer une simulation d'import (aucune donnée ne sera modifiée, il s'agit dans un premier temps d'une simple simulation)…
    +NowClickToTestTheImport=Vérifiez les paramètres d'import que vous avez défini (vérifiez si vous devez omettre la ou les premières lignes sinon celle-ci renverront des erreurs dans la simulation). Cliquez sur "<b>%s</b>" pour lancer une simulation d'import sur la structure et le contenu du fichier.<br><b>Aucune donnée ne sera modifiée, il s'agit dans un premier temps d'une simple simulation</b>.
     RunSimulateImportFile=Lancer la simulation d'import
     FieldNeedSource=Ce champ en base requiert obligatoirement une donnée source
     SomeMandatoryFieldHaveNoSource=Certains champs obligatoires n'ont pas de champ source issus du fichier
    @@ -76,9 +76,9 @@ InformationOnSourceFile=Informations sur le fichier source
     InformationOnTargetTables=Informations sur les champs cibles
     SelectAtLeastOneField=Basculez au moins un champ source dans la colonne des champs à exporter
     SelectFormat=Choisir ce format de fichier import
    -RunImportFile=Lancer l'import en base
    -NowClickToRunTheImport=Vérifiez le résultat de la simulation. Si tout est bon, lancez l'import définitif en base.
    -DataLoadedWithId=Toutes les données seront chargées avec l'id d'importation suivante: <b>%s</b>
    +RunImportFile=Espace import
    +NowClickToRunTheImport=Vérifiez le résultat de la simulation. Corriger les erreurs et retester.<br>Si tout est bon, lancez l'import définitif en base.
    +DataLoadedWithId=Toutes les données seront chargées avec l'id d'importation suivant: <b>%s</b> pour permettre une recherche sur ce lot de donnée en cas de découverte de problèmes futurs. 
     ErrorMissingMandatoryValue=Donnée obligatoire non renseignée dans le fichier source, champ numéro <b>%s</b>.
     TooMuchErrors=Il y a encore <b>%s</b> autres lignes en erreur mais leur affichage a été limité.
     TooMuchWarnings=Il y a encore <b>%s</b> autres lignes en avertissement mais leur affichage a été limité.
    @@ -93,15 +93,15 @@ DataComeFromFileFieldNb=La valeur à insérer sera issue du champ numéro <b>%s<
     DataComeFromIdFoundFromRef=La valeur issue du champ numéro <b>%s</b> du fichier source sera utilisée pour trouver l'identifiant de l'objet père à utiliser (L'objet <b>%s</b> ayant la réf. issue du fichier source doit donc exister dans Dolibarr).
     DataComeFromIdFoundFromCodeId=Le code issu du champ numéro <b>%s</b> du fichier source sera utilisée pour trouver l'id de l'objet père à utiliser (Le code issue du fichier source doit donc exister dans le dictionnaire <b>%s</b>). Notons que si vous connaissez cet id, vous pouvez l'utiliser dans le fichier source au lieu du code. L'import fonctionnera dans les 2 cas.
     DataIsInsertedInto=La donnée issue du fichier source sera insérée dans le champ suivant:
    -DataIDSourceIsInsertedInto=L'identifiant de l'objet père retrouvé à partir de la donnée source, sera inséré dans le champ suivant :
    +DataIDSourceIsInsertedInto=L'identifiant de l'objet père, retrouvé à partir de la donnée source, sera inséré dans le champ suivant :
     DataCodeIDSourceIsInsertedInto=L'identifiant de la ligne père retrouvé à partir du code, sera inséré dans le champ suivant :
     SourceRequired=Donnée source obligatoire
     SourceExample=Exemple de donnée source possible
     ExampleAnyRefFoundIntoElement=Toute réf. trouvée pour les éléments <b>%s</b>
     ExampleAnyCodeOrIdFoundIntoDictionary=Tout code (ou id) trouvée dans le dictionnaire <b>%s</b>
     CSVFormatDesc=Fichier au format <b>Comma Separated Value</b> (.csv).<br>C'est un fichier au format texte dans lequel les champs sont séparés par le caractère [ %s ]. Si le séparateur est trouvé dans le contenu d'un champ, le champ doit être entouré du caractère [ %s ]. Le caractère d'échappement pour inclure un caractère de contour dans une donnée est [ %s ].
    -Excel95FormatDesc=Format <b>Excel</b> (.xls).<br>Format Excel 95 (BIFF5).
    -Excel2007FormatDesc=Format <b>Excel</b> (.xls).<br>Format standard Excel 2007 (SpreadsheetML).
    +Excel95FormatDesc=Format de fichier <b>Excel</b> (.xls).<br>Format Excel 95 (BIFF5).
    +Excel2007FormatDesc=Format de fichier <b>Excel</b> (.xlsx).<br>Format standard Excel 2007 (SpreadsheetML).
     TsvFormatDesc=Format de fichier à <b>Valeurs Séparées par des Tabulations</b> (.tsv).<br>C'est un fichier texte dont les champs sont séparés par des tabulations [tab].
     ExportFieldAutomaticallyAdded=Le champ <b>%s</b> a été ajouté automatiquement car il évitera que des lignes identiques ne soient considérées comme des doublons (avec ce champ, aucune ligne ne sera identique mais aura un identifiant propre).
     CsvOptions=Options du fichier CSV
    @@ -118,7 +118,7 @@ SetThisValueTo2ToExcludeFirstLine=Par exemple, positionnez cette valeur à 3 pou
     KeepEmptyToGoToEndOfFile=Laissez ce champ vide pour aller jusqu'à la fin du fichier
     SelectPrimaryColumnsForUpdateAttempt=Sélectionnez la ou les colonne(s) à utiliser comme clé primaire pour la tentative de mise à jour
     UpdateNotYetSupportedForThisImport=La mise à jour n'est pas pris en charge pour ce type d'importation (seulement les ajouts)
    -NoUpdateAttempt=Aucune tentative de mise à jour n'a été effectuée, seulement un insertion.
    +NoUpdateAttempt=Aucune tentative de mise à jour n'a été effectuée, seulement des insertions.
     ImportDataset_user_1=Utilisateurs (employés ou non) et attributs
     ComputedField=Champ calculé
     ## filters
    @@ -131,7 +131,3 @@ KeysToUseForUpdates=Clé à utiliser pour mettre à jour les données
     NbInsert=Nombre de lignes insérées: %s
     NbUpdate=Nombre de lignes mises à jour: %s
     MultipleRecordFoundWithTheseFilters=Plusieurs enregistrements ont été trouvés avec ces filtres: %s
    -## setup page
    -ExportSetup=Configuration du module Export
    -ExportModel = Modèle d'export
    -set_EXPORTS_SHARE_MODELS = Partager tous les profils d'export
    \ No newline at end of file
    diff --git a/htdocs/langs/fr_FR/help.lang b/htdocs/langs/fr_FR/help.lang
    index 49f7fbe72f9..9bf855f8704 100644
    --- a/htdocs/langs/fr_FR/help.lang
    +++ b/htdocs/langs/fr_FR/help.lang
    @@ -5,8 +5,8 @@ RemoteControlSupport=Assistance en ligne temps réel
     OtherSupport=Autres type d'assistance
     ToSeeListOfAvailableRessources=Pour contacter/voir les ressources disponibles :
     HelpCenter=Centre d'assistance
    -DolibarrHelpCenter=Centre d'assistance Dolibarr
    -ToGoBackToDolibarr=Sinon cliquez <a href="%s">ici pour utiliser Dolibarr</a>
    +DolibarrHelpCenter=Centre d'aide et de support de Dolibarr
    +ToGoBackToDolibarr=Sinon, <a href="%s"> cliquez ici pour continuer à utiliser Dolibarr </a>.
     TypeOfSupport=Source de l'assistance
     TypeSupportCommunauty=Communautaire (gratuit)
     TypeSupportCommercial=Commercial
    @@ -16,9 +16,6 @@ Efficiency=Efficacité
     TypeHelpOnly=Aide uniquement
     TypeHelpDev=Aide+Développement
     TypeHelpDevForm=Aide+Développement+Formation
    -ToGetHelpGoOnSparkAngels1=Certaines sociétés ou indépendants offrent un service d'assistance très rapide (parfois immédiat) et encore plus efficace grâce à la possibilité de prise de contrôle à distance de votre ordinateur pour mieux diagnostiquer et résoudre vos problèmes. Une telle aide peut être trouvée sur la bourse des accompagnateurs de <b>%s</b>.
    -ToGetHelpGoOnSparkAngels3=Vous pouvez aussi accéder à la <b>liste complète de tous les accompagnants possibles</b>, pour cela cliquez sur le bouton
    -ToGetHelpGoOnSparkAngels2=Parfois, aucun intervenant n'est disponible au moment de votre recherche, aussi pensez à modifier vos critères de recherche en indiquant "Toutes disponibilités". Vous pourrez alors prendre contact en différé.
     BackToHelpCenter=Sinon, cliquez ici pour <a href="%s">retourner au centre d'assistance</a>.
     LinkToGoldMember=Vous pouvez appeler immédiatement un des quelques accompagnateurs présélectionnés par Dolibarr pour votre langue (%s) en cliquant son Widget (disponibilité et tarif maximum sont rafraîchis automatiquement):
     PossibleLanguages=Langues disponibles
    diff --git a/htdocs/langs/fr_FR/holiday.lang b/htdocs/langs/fr_FR/holiday.lang
    index 808c35ce9d0..2799105a3e8 100644
    --- a/htdocs/langs/fr_FR/holiday.lang
    +++ b/htdocs/langs/fr_FR/holiday.lang
    @@ -4,7 +4,7 @@ Holidays=Congés
     CPTitreMenu=Congés
     MenuReportMonth=État mensuel
     MenuAddCP=Créer demande de congés
    -NotActiveModCP=Vous devez activer le module Congés pour afficher cette page.
    +NotActiveModCP=Vous devez activer le module Laisser pour voir cette page.
     AddCP=Créer une demande de congés
     DateDebCP=Date Début
     DateFinCP=Date Fin
    @@ -20,7 +20,7 @@ LeaveId=ID demande de congès
     ReviewedByCP=Sera approuvé par
     UserForApprovalID=ID de l'utilisateur d'approbation
     UserForApprovalFirstname=Prénom de l'utilisateur d'approbation
    -UserForApprovalLastname=Nom de l'utilisateur d'approbation
    +UserForApprovalLastname=Nom d'utilisateur d'approbation
     UserForApprovalLogin=Login de l'utilisateur d'approbation
     DescCP=Description
     SendRequestCP=Créer une demande de congés
    @@ -101,10 +101,10 @@ LEAVE_SICK=Congé maladie
     LEAVE_OTHER=Autre congé
     LEAVE_PAID_FR=Congés payés
     ## Configuration du Module ##
    -LastUpdateCP=Dernière mise à jour automatique de l'allocation des congés
    +LastUpdateCP=Dernière mise à jour automatique de l'attribution des congés
     MonthOfLastMonthlyUpdate=Mois de la dernière mise à jour automatique des attributions de congés
     UpdateConfCPOK=Mise à jour effectuée avec succès.
    -Module27130Name= Gestion des demandes de congés
    +Module27130Name= Demandes de congés
     Module27130Desc= Ce module permet de gérer les demandes, approbations de congés.
     ErrorMailNotSend=Une erreur est survenue lors de l'envoi de l'email :
     NoticePeriod=Délai de prévenance
    @@ -122,3 +122,8 @@ HolidaysCanceledBody=Votre demande de congés du %s au %s a été annulée.
     FollowedByACounter=1: Ce type de congé doit être suivis par un compteur. Le compteur est incrémenté manuellement ou automatiquement et quand une demande de congé est validée, le compteur est décrémenté.<br>0: Non suivi par un compteur.
     NoLeaveWithCounterDefined=Il n'y a pas de type de congés définis qui requiert un suivi par un compteur
     GoIntoDictionaryHolidayTypes=Aller dans <strong>Accueil - Configuration - Dictionnaires - Type de congés</strong> pour configurer les différents types de congés.
    +HolidaySetup=Configuration du module Congés
    +HolidaysNumberingModules=Modèles de numérotation des demandes de congés
    +TemplatePDFHolidays=Modèle de demande de congés PDF
    +FreeLegalTextOnHolidays=Texte libre sur PDF
    +WatermarkOnDraftHolidayCards=Filigranes sur les demandes de congés brouillons
    diff --git a/htdocs/langs/fr_FR/install.lang b/htdocs/langs/fr_FR/install.lang
    index b2317d7b20e..d54e0034bc1 100644
    --- a/htdocs/langs/fr_FR/install.lang
    +++ b/htdocs/langs/fr_FR/install.lang
    @@ -7,22 +7,22 @@ ConfFileCouldBeCreated=Le fichier de configuration <b>%s</b> a pu être créé.
     ConfFileIsNotWritable=Le fichier <b>%s</b> n'est pas modifiable. Pour une première installation, modifiez ses permissions. Le serveur Web doit avoir le droit d'écrire dans ce fichier le temps de la configuration ("chmod 666" par exemple sur un OS compatible Unix).
     ConfFileIsWritable=Le fichier <b>%s</b> est modifiable.
     ConfFileMustBeAFileNotADir=Le fichier de configuration <b> %s </b> doit être un fichier, pas un répertoire.
    -ConfFileReload=Rechargement des informations depuis le fichier de configuration.
    +ConfFileReload=Rechargement des paramètres depuis le fichier de configuration.
     PHPSupportSessions=Ce PHP prend en charge les sessions.
     PHPSupportPOSTGETOk=Ce PHP prend bien en charge les variables POST et GET.
    -PHPSupportPOSTGETKo=Il est possible que ce PHP ne prenne pas en charge les variables POST et/ou GET. Vérifier le paramètre <b>variables_order</b> du php.ini.
    +PHPSupportPOSTGETKo=Il est possible que votre configuration PHP ne supporte pas les variables POST et / ou GET. Vérifiez le paramètre <b> variables_order </b> dans le fichier php.ini.
     PHPSupportGD=Ce PHP prend en charge les fonctions graphiques GD.
     PHPSupportCurl=PHP supporte l'extension Curl
     PHPSupportUTF8=Ce PHP prend en charge les fonctions UTF8.
     PHPMemoryOK=Votre mémoire maximum de session PHP est définie à <b>%s</b>. Ceci devrait être suffisant.
     PHPMemoryTooLow=Votre mémoire maximum de session PHP est définie à <b>%s</b> octets. Ceci est trop faible. Il est recommandé de modifier le paramètre <b>memory_limit</b> de votre fichier <b>php.ini</b> à au moins <b>%s</b> octets.
    -Recheck=Cliquez ici pour un test plus probant
    -ErrorPHPDoesNotSupportSessions=Votre installation PHP ne prend pas en charge les sessions. Cette fonctionnalité est requise pour faire fonctionner Dolibarr. Vérifiez votre configuration de PHP.
    -ErrorPHPDoesNotSupportGD=Ce PHP ne prend pas en charge les fonctions graphiques GD. Aucun graphique ne sera disponible.
    +Recheck=Cliquez ici pour un test plus détaillé
    +ErrorPHPDoesNotSupportSessions=Votre installation PHP ne supporte pas les sessions. Cette fonctionnalité est nécessaire pour permettre à Dolibarr de fonctionner. Vérifiez votre configuration PHP et les autorisations du répertoire des sessions.
    +ErrorPHPDoesNotSupportGD=Votre installation PHP ne supporte pas les fonctions graphiques GD. Aucun graphique ne sera disponible.
     ErrorPHPDoesNotSupportCurl=Votre version de PHP ne supporte pas l'extension Curl
    -ErrorPHPDoesNotSupportUTF8=Ce PHP ne prend pas en charge les fonctions UTF8. Résolvez le problème avant d'installer Dolibarr car il ne pourra pas fonctionner correctement.
    +ErrorPHPDoesNotSupportUTF8=Votre installation de PHP ne supporte pas les fonctions UTF8. Dolibarr ne peut pas fonctionner correctement. Résolvez ce problème avant d'installer Dolibarr.
     ErrorDirDoesNotExists=Le répertoire <b>%s</b> n'existe pas ou n'est pas accessible.
    -ErrorGoBackAndCorrectParameters=Revenez en arrière et corrigez les paramètres invalides.
    +ErrorGoBackAndCorrectParameters=Revenez en arrière et vérifiez / corrigez les paramètres.
     ErrorWrongValueForParameter=Vous avez peut-être saisi une mauvaise valeur pour le paramètre '%s'.
     ErrorFailedToCreateDatabase=Échec de la création de la base '%s'.
     ErrorFailedToConnectToDatabase=Échec de connexion à la base '%s'.
    @@ -30,9 +30,9 @@ ErrorDatabaseVersionTooLow=Version de base de donnée (%s) trop ancienne. La ver
     ErrorPHPVersionTooLow=Version de PHP trop ancienne. La version %s est requise.
     ErrorConnectedButDatabaseNotFound=Connexion au serveur réussie mais base '%s' introuvable.
     ErrorDatabaseAlreadyExists=La base de données '%s' existe déjà.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base n'existe pas, revenez en arrière et cochez l'option "Créer la base de données".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base de données n'existe pas, revenez en arrière et cochez l'option "Créer une base de données".
     IfDatabaseExistsGoBackAndCheckCreate=Si la base existe déjà, revenez en arrière et désactiver l'option "Créer la base de données".
    -WarningBrowserTooOld=Version du navigateur trop ancienne. Nous vous recommandons de mettre à jour vers une version récente de Firefox, Chrome ou Opera.
    +WarningBrowserTooOld=La version du navigateur est trop ancienne. La mise à niveau de votre navigateur vers une version récente de Firefox, Chrome ou Opera est vivement recommandée.
     PHPVersion=Version de PHP
     License=Licence d'utilisation
     ConfigurationFile=Fichier de configuration
    @@ -45,22 +45,23 @@ DolibarrDatabase=Base de données Dolibarr
     DatabaseType=Type de la base de données
     DriverType=Type du pilote
     Server=Serveur
    -ServerAddressDescription=Nom ou adresse IP du serveur de base de données, généralement 'localhost' quand le serveur est installé sur la même machine que le serveur web
    +ServerAddressDescription=Nom ou adresse IP du serveur de base de données. Habituellement, "hôte local" lorsque le serveur de base de données est hébergé sur le même serveur que le serveur Web.
     ServerPortDescription=Port du serveur. Ne rien mettre si inconnu.
     DatabaseServer=Serveur de base de données
     DatabaseName=Nom de la base de données
    -DatabasePrefix=Préfixe des tables
    -AdminLogin=Identifiant du propriétaire de la base de données Dolibarr.
    -PasswordAgain=Vérification du mot de passe
    +DatabasePrefix=Préfixe de table de base de données
    +DatabasePrefixDescription=Préfixe de table de base de données. Si vide, la valeur par défaut est llx_.
    +AdminLogin=Compte utilisateur du propriétaire de la base de données Dolibarr.
    +PasswordAgain=Confirmer la confirmation du mot de passe
     AdminPassword=Mot de passe du propriétaire de la base de données Dolibarr.
     CreateDatabase=Créer la base de données
    -CreateUser=Créer le propriétaire ou lui affecter les droits à la base
    +CreateUser=Créer un compte utilisateur ou accorder une autorisation de compte utilisateur sur la base de données Dolibarr
     DatabaseSuperUserAccess=Serveur de base de données - Accès super utilisateur
    -CheckToCreateDatabase=Cochez cette option si la base de données n'existe pas et doit être créée.<br>Dans ce cas, il faut renseigner identifiant et mot de passe du super-utilisateur au bas de cette page.
    -CheckToCreateUser=Case à cocher si le propriétaire de la base de données n'existe pas et doit être créé, ou s'il existe, mais la base de données n'existe pas et les autorisations doivent être accordées<br>. Dans ce cas, vous devez choisir son identifiant et son mot de passe et remplir le mot de passe pour le compte super-utilisateur au bas de cette page. Si cette case n'est pas cochée, la base de données propriétaire et ses mots de passe doivent exister.
    -DatabaseRootLoginDescription=Identifiant de l'utilisateur de la base ayant les droits de création de bases de données ou de comptes pour la base, requis si la base ou son propriétaire n'existent pas déjà et doivent être créés.
    -KeepEmptyIfNoPassword=Laissez vide si l'administrateur n'a pas de mot de passe
    -SaveConfigurationFile=Enregistrement du fichier de configuration
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Cochez la case si: le compte d'utilisateur de la base de données n'existe pas encore et doit donc être créé, ou si le compte d'utilisateur existe mais que la base de données n'existe pas et que les autorisations doivent être accordées. <br> Dans ce cas, vous devez entrer le compte d'utilisateur et le mot de passe et <b> aussi </b> le nom et le mot de passe du compte superutilisateur au bas de cette page. Si cette case est décochée, le propriétaire de la base de données et le mot de passe doivent déjà exister.
    +DatabaseRootLoginDescription=Nom du compte superutilisateur (pour créer de nouvelles bases de données ou de nouveaux utilisateurs), obligatoire si la base de données ou son propriétaire n'existe pas déjà.
    +KeepEmptyIfNoPassword=Laisser vide si le superutilisateur n'a pas de mot de passe (NON recommandé)
    +SaveConfigurationFile=Enregistrement des paramètres dans
     ServerConnection=Connexion au serveur
     DatabaseCreation=Création de la base de données
     CreateDatabaseObjects=Création des objets de la base
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Création des clés étrangères et des index pour la ta
     OtherKeysCreation=Création des clés étrangères et des index
     FunctionsCreation=Création des fonctions
     AdminAccountCreation=Création du compte administrateur
    -PleaseTypePassword=Veuillez saisir un mot de passe, les mots de passe vides ne sont pas acceptés !
    -PleaseTypeALogin=Veuillez saisir un identifiant !
    -PasswordsMismatch=Les mots de passe ne correspondent pas, veuillez réessayer !
    +PleaseTypePassword=Veuillez saisir un mot de passe, les mots de passe vides ne sont pas autorisés!
    +PleaseTypeALogin=Veuillez taper un identifiant!
    +PasswordsMismatch=Les mots de passe diffèrent, veuillez réessayer!
     SetupEnd=Fin de l'installation
     SystemIsInstalled=Votre système est maintenant installé.
     SystemIsUpgraded=Dolibarr a été mis à jour avec succès.
    @@ -81,29 +82,29 @@ YouNeedToPersonalizeSetup=Vous devez maintenant configurer Dolibarr selon vos be
     AdminLoginCreatedSuccessfuly=Création du compte administrateur Dolibarr '<b>%s</b>' réussie.
     GoToDolibarr=Accéder à Dolibarr
     GoToSetupArea=Accéder à Dolibarr (espace de configuration)
    -MigrationNotFinished=La version de votre base n'est pas encore complètement à niveau, aussi il vous faudra relancer à nouveau une migration.
    +MigrationNotFinished=La version de la base de données n'est pas complètement à jour: exécutez à nouveau le processus de mise à niveau.
     GoToUpgradePage=Accéder à la page de migration à nouveau
     WithNoSlashAtTheEnd=Sans le slash "/" à la fin
    -DirectoryRecommendation=Il est recommandé de mettre ce répertoire en dehors du répertoire des pages web.
    +DirectoryRecommendation=Il est recommandé d'utiliser un répertoire en dehors des pages Web.
     LoginAlreadyExists=Existe déjà
     DolibarrAdminLogin=Identifiant de l'utilisateur administrateur de Dolibarr
     AdminLoginAlreadyExists=Compte administrateur Dolibarr '<b>%s</b>' déjà existant. Revenez en arrière si vous voulez en créer un autre.
     FailedToCreateAdminLogin=Echec de la création du compte administrateur Dolibarr
     WarningRemoveInstallDir=Attention, pour des raisons de sécurité, afin de bloquer une nouvelle utilisation des outils d'installation/migration, une fois l'installation terminée, il est conseillé de placer dans le répertoire document de Dolibarr un fichier nommé <b>install.lock</b> en lecture seule.
    -FunctionNotAvailableInThisPHP=Non disponible sur ce PHP
    +FunctionNotAvailableInThisPHP=Non disponible dans ce PHP
     ChoosedMigrateScript=Choix du script de migration
     DataMigration=Migration de la base (données)
     DatabaseMigration=Migration de la base de données (structure + certaines données)
     ProcessMigrateScript=Exécution du script
     ChooseYourSetupMode=Choisissez votre mode d'installation et cliquez sur "Démarrer"…
     FreshInstall=Première installation
    -FreshInstallDesc=Utilisez ce mode si c'est votre première installation. Si ce n'est pas le cas, ce mode peut réparer une installation précédente incomplète, mais si vous voulez juste mettre à jour, choisissez le mode "Mise à jour".
    +FreshInstallDesc=Utilisez ce mode s'il s'agit de votre première installation. Sinon, ce mode peut réparer une installation précédente incomplète. Si vous souhaitez mettre à niveau votre version, choisissez le mode "Mettre à niveau".
     Upgrade=Mise à jour
     UpgradeDesc=Utilisez ce mode après avoir écrasé les fichiers d'une ancienne installation Dolibarr par ceux d'une version plus récente. Ce choix permet de mettre à jour votre base et vos données pour cette nouvelle version.
     Start=Démarrer
     InstallNotAllowed=Installation non autorisée par les permissions du fichier <b>conf.php</b>
     YouMustCreateWithPermission=Vous devez créer un fichier %s et donner les droits d'écriture dans celui-ci au serveur web durant le processus d'installation.
    -CorrectProblemAndReloadPage=Corrigez le problème et rechargez la page (F5).
    +CorrectProblemAndReloadPage=Veuillez résoudre le problème et appuyez sur F5 pour recharger la page.
     AlreadyDone=Déjà migré
     DatabaseVersion=Version de la base
     ServerVersion=Version du serveur de base de données
    @@ -111,35 +112,35 @@ YouMustCreateItAndAllowServerToWrite=Vous devez créer ce dossier et permettre a
     DBSortingCollation=Ordre de tri utilisé pour la base de données
     YouAskDatabaseCreationSoDolibarrNeedToConnect=Vous avez demandé la création de la base de données <b>%s</b>, mais pour cela, Dolibarr doit se connecter sur le serveur <b>%s</b> via le super utilisateur <b>%s</b>.
     YouAskLoginCreationSoDolibarrNeedToConnect=Vous avez demandé la création de l'identifiant de base de données <b>%s</b>, mais pour cela, Dolibarr doit se connecter sur le serveur <b>%s</b> via le super utilisateur <b>%s</b>.
    -BecauseConnectionFailedParametersMayBeWrong=La connexion ayant échoué, les paramètres du serveur ou du super utilisateur sont peut-être incorrects.
    +BecauseConnectionFailedParametersMayBeWrong=La connexion à la base de données a échoué: les paramètres de l'hôte ou du super utilisateur doivent être erronés.
     OrphelinsPaymentsDetectedByMethod=Paiement orphelins détectés par la méthode %s
     RemoveItManuallyAndPressF5ToContinue=Supprimez-le manuellement et actualisez la page pour continuer (F5).
     FieldRenamed=Champ renommé
    -IfLoginDoesNotExistsCheckCreateUser=Si l'identifiant n'existe pas encore, vous devez cocher l'option "Créer l'utilisateur"
    +IfLoginDoesNotExistsCheckCreateUser=Si l'utilisateur n'existe pas encore, vous devez cocher l'option "Créer un utilisateur"
     ErrorConnection=Le serveur "<b>%s</b>", nom de base "<b>%s</b>", identifiant "<b>%s</b>", ou mot de passe de la base de données est peut-être incorrect ou la version du client PHP trop ancienne par rapport à la version de la base de données.
     InstallChoiceRecommanded=Choix recommandé pour installer la version <b>%s</b> depuis votre version actuelle <b>%s</b>
     InstallChoiceSuggested=<b>Choix suggéré par l'installeur</b>.
    -MigrateIsDoneStepByStep=La version cible (%s) ayant un écart de plusieurs versions, l'installeur reviendra proposer la migration suivante une fois celle-ci exécutée.
    +MigrateIsDoneStepByStep=La version ciblée (%s) présente un écart de plusieurs versions. L'assistant d'installation reviendra pour vous suggérer une migration supplémentaire une fois celle-ci terminée.
     CheckThatDatabasenameIsCorrect=Vérifiez que le nom de base "<b>%s</b>" est correct.
     IfAlreadyExistsCheckOption=Si ce nom est correct et que cette base n'existe pas déjà, vous devez cocher l'option "Créer la base de données".
     OpenBaseDir=Paramètre PHP openbasedir
    -YouAskToCreateDatabaseSoRootRequired=Vous avez coché la case "Créer la base de données". Pour cela, identifiant et mot de passe du super utilisateur (en bas de formulaire) sont obligatoire.
    -YouAskToCreateDatabaseUserSoRootRequired=Vous avez coché la case "Créer l'utilisateur propriétaire" de la base. Pour cela, identifiant et mot de passe du super utilisateur (en bas de formulaire) sont obligatoire.
    -NextStepMightLastALongTime=L'étape en cours peut durer quelques minutes. Merci d'attendre l'affichage complet de la page suivante pour poursuivre.
    +YouAskToCreateDatabaseSoRootRequired=Vous avez coché la case "Créer une base de données". Pour cela, vous devez fournir le nom d'utilisateur / mot de passe du superutilisateur (bas du formulaire).
    +YouAskToCreateDatabaseUserSoRootRequired=Vous avez coché la case "Créer une base de données propriétaire". Pour cela, vous devez fournir le nom d'utilisateur / mot de passe du superutilisateur (bas du formulaire).
    +NextStepMightLastALongTime=L'étape en cours peut prendre plusieurs minutes. Veuillez patienter jusqu'à ce que l'écran suivant apparaisse complètement avant de continuer.
     MigrationCustomerOrderShipping=Mise à jour stockage des expéditions des commandes clients
     MigrationShippingDelivery=Mise à jour stockage des expéditions
     MigrationShippingDelivery2=Mise à jour stockage des expéditions 2
     MigrationFinished=Migration terminée
    -LastStepDesc=<strong>Dernière étape</strong>: Définissez ici l'identifiant et le mot de passe du premier utilisateur que vous allez utiliser pour vous connecter à l'application. Ne perdez pas ces identifiants, il s'agit du compte permettant d'administrer les autres.
    +LastStepDesc=<strong> Dernière étape </strong>: définissez ici le nom d'utilisateur et le mot de passe que vous souhaitez utiliser pour vous connecter à Dolibarr. <b> Ne perdez pas cette information, car il s’agit du compte principal pour administrer tous les comptes d’utilisateurs supplémentaires / supplémentaires. </b>
     ActivateModule=Activation du module %s
     ShowEditTechnicalParameters=Cliquer ici pour afficher/éditer les paramètres techniques (mode expert)
    -WarningUpgrade=Attention :\nAvez-vous effectué une sauvegarde de votre base de données en premier ?\nC'est hautement recommandé : par exemple, à cause de nombreaux bugs dans le système de base de données (Par exemple mysql version 5.5.40/41/42/43), certaines données ou tables peuvent être perdues durant le processus, il est donc hautement recommandé d'avoir une sauvegarde complète de votre base de données avant de commencer la migration.\n\nCliquez Ok pour commencer la migration...
    -ErrorDatabaseVersionForbiddenForMigration=La version de votre gestionnaire de base de données est %s. Celle-ci présente un défaut critique entraînant des pertes de données si vous changez la structure de votre base de données tel que requis par le processus de migration. C'est pourquoi la migration vous sera interdite tant que vous n'aurez pas mis à jour votre gestionnaire de base de données vers une version supérieure corrigée (Liste des versions affectées par le défaut : %s).
    +WarningUpgrade=Attention:\nAvez-vous d'abord effectué une sauvegarde de base de données?\nCeci est hautement recommandé. Une perte de données (due par exemple à des bogues dans mysql version 5.5.40 / 41/42/43) peut être possible au cours de ce processus. Il est donc essentiel de réaliser un vidage complet de votre base de données avant de commencer toute migration.\n\nCliquez sur OK pour démarrer le processus de migration ...
    +ErrorDatabaseVersionForbiddenForMigration=La version de votre gestionnaire de base de données est %s. Celle-ci présente un défaut critique entraînant des pertes de données si vous changez la structure de votre base de données tel que requis par le processus de migration. C'est pourquoi la migration vous sera interdite tant que vous n'aurez pas mis à jour votre gestionnaire de base de données vers une version supérieure corrigée (Liste des versions affectées par le défaut: %s).
     KeepDefaultValuesWamp=Si vous utilisez l'installeur automatique DoliWamp, les données présentes ici sont pré-remplies. Ne les modifiez qu'en connaissance de cause.
    -KeepDefaultValuesDeb=Vous utilisez l'assistant d'installation depuis un environnement Linux (Ubuntu, Debian, Fedor...). Les valeurs présentes ici sont pré-remplies. Seul le mot de passe d'accès du propriétaire de la base de données doit être renseigné. Les autres paramètres ne doivent être modifiés qu'en connaissance de cause.
    +KeepDefaultValuesDeb=Vous utilisez l'assistant d'installation depuis un environnement Linux (Ubuntu, Debian, Fedora...). Les valeurs présentes ici sont pré-remplies. Seul le mot de passe d'accès du propriétaire de base de données à créer doit être renseigné. Les autres paramètres ne doivent être modifiés qu'en connaissance de cause.
     KeepDefaultValuesMamp=Vous utilisez l'assistant d'installation DoliMamp. Les valeurs présentes ici sont pré-remplies. Leur modification ne doit être effectuée qu'en connaissance de cause.
     KeepDefaultValuesProxmox=Vous utilisez l'assistant d'installation depuis une application Proxmox. Les valeurs présentes ici sont pré-remplies. Leur modification ne doit être effectuée qu'en connaissance de cause.
    -UpgradeExternalModule=Lancement du processus de mise à jour de modules externes
    +UpgradeExternalModule=Exécuter le processus de mise à niveau dédié du module externe
     SetAtLeastOneOptionAsUrlParameter=Définissez au moins une option en tant que paramètre dans l'URL. Par exemple: '... repair.php?standard=confirmed'
     NothingToDelete=Rien a supprimer
     NothingToDo=Rien à faire
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Mise à jour des contrats sans détail (gestion du cont
     MigrationContractsNumberToUpdate=%s contrat(s) a mettre à jour
     MigrationContractsLineCreation=Création ligne contrat pour contrat ref %s
     MigrationContractsNothingToUpdate=Pas ou plus de contrats (liés à un produit) sans ligne de détail à corriger.
    -MigrationContractsFieldDontExist=Le champs fk_facture n'existe plus. Pas d'opération à faire.
    +MigrationContractsFieldDontExist=Le champ fk_facture n'existe plus. Rien à faire.
     MigrationContractsEmptyDatesUpdate=Mise à jour des dates de contrats non renseignées
    -MigrationContractsEmptyDatesUpdateSuccess=Mise à jour des dates de contrats non renseignées
    +MigrationContractsEmptyDatesUpdateSuccess=Correction de la date de contrat vide effectuée avec succès
     MigrationContractsEmptyDatesNothingToUpdate=Pas ou plus de date de contrats à renseigner.
     MigrationContractsEmptyCreationDatesNothingToUpdate=Pas ou plus de date de création à renseigner.
     MigrationContractsInvalidDatesUpdate=Mise à jour dates contrat incorrectes (pour contrats avec détail en service)
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Mise à jour bon réception
     MigrationStockDetail=Mise à jour valeur en stock des produits
     MigrationMenusDetail=Mise à jour table des menus dynamiques
     MigrationDeliveryAddress=Mise à jour des adresses de livraison dans les bons d'expédition
    -MigrationProjectTaskActors=Migration de la table llx_projet_task_actors
    +MigrationProjectTaskActors=Migration de données pour la table llx_projet_task_actors
     MigrationProjectUserResp=Migration du champ fk_user_resp de llx_projet vers llx_element_contact
     MigrationProjectTaskTime=Mise à jour du temps consommé en secondes
     MigrationActioncommElement=Mise à jour des données des actions des éléments
     MigrationPaymentMode=Migration des modes de paiement
     MigrationCategorieAssociation=Migration des categories
    -MigrationEvents=Migration des évènements pour ajouter les propriétaires dans la table des utilisateurs assignés
    -MigrationEventsContact=Migration des événements pour ajouter le contact de l'événement dans la table d'affectation
    +MigrationEvents=Migration d'événements pour ajouter le propriétaire d'événement dans la table d'affectation
    +MigrationEventsContact=Migration d'événements pour ajouter un contact d'événement dans la table d'affectation
     MigrationRemiseEntity=Mettre à jour le champ "entity" de la table "llx_societe_remise
     MigrationRemiseExceptEntity=Mettre à jour le champ "entity" de la table "llx_societe_remise_except"
     MigrationUserRightsEntity=Mise à jour du champ entity de llx_user_rights
     MigrationUserGroupRightsEntity=Mise à jour du champ entity de llx_usergroup_rights
    +MigrationUserPhotoPath=Migration des chemins de photos pour les utilisateurs
     MigrationReloadModule=Rechargement du module %s
     MigrationResetBlockedLog=Réinitialiser le module BlockedLog pour l'algorithme v7
    -ShowNotAvailableOptions=Afficher les choix non disponibles
    -HideNotAvailableOptions=Cacher les choix non disponibles
    +ShowNotAvailableOptions=Afficher les options non disponibles
    +HideNotAvailableOptions=Masquer les options non disponibles
     ErrorFoundDuringMigration=Une erreur est survenu lors du processus de migration, aussi l'étape suivante ne peut pas être réalisée. Pour ignorer les erreurs, vous pouvez <a href="%s">cliquer ici</a>, mais l'application ou certaines fonctionnalités risquent de présenter des dysfonctionnements jusqu'à la résolution de la ou des erreurs
    -YouTryInstallDisabledByDirLock=L'application essaie de se mettre à jour, mais les pages d'installation / mise à jour ont été désactivées pour des raisons de sécurité (répertoire renommé avec le suffixe .lock). <br>
    -YouTryInstallDisabledByFileLock=L'application essaie de se mettre à jour, mais les pages d'installation / mise à jour ont été désactivées pour des raisons de sécurité (par le fichier de verrouillage <strong> install.lock </strong> dans le répertoire de documents dolibarr). <br>
    +YouTryInstallDisabledByDirLock=L'application a tenté de se mettre à niveau automatiquement, mais les pages d'installation / de mise à niveau ont été désactivées pour des raisons de sécurité (répertoire renommé avec le suffixe .lock). <br>
    +YouTryInstallDisabledByFileLock=L'application a tenté de se mettre à niveau automatiquement, mais les pages d'installation / de mise à niveau ont été désactivées pour des raisons de sécurité (grâce à l'existence d'un fichier de verrouillage <strong> install.lock </strong> dans le répertoire de documents dolibarr). <br>
     ClickHereToGoToApp=Cliquez ici pour aller sur votre application
    -ClickOnLinkOrRemoveManualy=Cliquez sur le lien suivant et si vous atteignez toujours cette page, vous devez supprimer manuellement le fichier install.lock dans le répertoire documents
    +ClickOnLinkOrRemoveManualy=Cliquez sur le lien suivant. Si vous voyez toujours cette même page, vous devez supprimer / renommer le fichier install.lock dans le répertoire des documents.
    diff --git a/htdocs/langs/fr_FR/interventions.lang b/htdocs/langs/fr_FR/interventions.lang
    index d1f57e2e951..c8cf7732896 100644
    --- a/htdocs/langs/fr_FR/interventions.lang
    +++ b/htdocs/langs/fr_FR/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Fiche intervention
     NewIntervention=Nouvelle intervention
     AddIntervention=Créer intervention
    +ChangeIntoRepeatableIntervention=Convertir en intervention récurrente
     ListOfInterventions=Liste des interventions
     ActionsOnFicheInter=Événements sur l'intervention
     LastInterventions=Les %s dernières interventions
    diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang
    index 25a82ab2487..02e568ae8a9 100644
    --- a/htdocs/langs/fr_FR/mails.lang
    +++ b/htdocs/langs/fr_FR/mails.lang
    @@ -46,9 +46,9 @@ ErrorMailRecipientIsEmpty=L'adresse du destinataire est vide
     WarningNoEMailsAdded=Aucun nouvel email à ajouter à la liste des destinataires.
     ConfirmValidMailing=Confirmez-vous la validation de l'emailing ?
     ConfirmResetMailing=Attention, en réinitialisant l'emailing <b>%s</b>, vous autorisez son émission en masse une nouvelle fois. Est-ce bien ce que vous voulez faire ?
    -ConfirmDeleteMailing=Confirmez-vous la suppression de l'emailing ?
    -NbOfUniqueEMails=Nombre d'emails uniques
    -NbOfEMails=Nombre d'emails
    +ConfirmDeleteMailing=Êtes-vous sûr de vouloir supprimer cet email?
    +NbOfUniqueEMails=Nombre d'e-mails uniques
    +NbOfEMails=Nombre de courriels
     TotalNbOfDistinctRecipients=Nombre de destinataires uniques
     NoTargetYet=Aucun destinataire défini (Aller sur l'onglet Destinataires)
     NoRecipientEmail=Aucun e-mail de destinataire pour %s
    @@ -67,7 +67,7 @@ DateSending=Date envoi
     SentTo=Envoyés à <b>%s</b>
     MailingStatusRead=Lu
     YourMailUnsubcribeOK=L'adresse email <b>%s</b> est bien désinscrite de la liste.
    -ActivateCheckReadKey=Clé de sécurité permettant le chiffrement des URL utilisées dans les fonctions d'accusé de lecture et de désinscription
    +ActivateCheckReadKey=Clé utilisée pour chiffrer l'URL utilisée pour les fonctions "Lire accusé de réception" et "Se désabonner"
     EMailSentToNRecipients=Email envoyé à %s destinataires.
     EMailSentForNElements=Email envoyé pour %s enregistrements
     XTargetsAdded=<b>%s</b> destinataires ajoutés dans la liste cible
    @@ -109,7 +109,7 @@ MailingNeedCommand2=Vous pouvez toutefois quand même les envoyer par l'interfac
     ConfirmSendingEmailing=Si vous souhaitez envoyer l'e-mailing depuis cet écran, veuillez confirmer son envoi maintenant, depuis votre navigateur.
     LimitSendingEmailing=Remarque: L'envoi d'Emailings à partir de l'interface web se fait en plusieurs fois pour des raisons de sécurité et de timeout, <b>%s</b> bénéficiaires à la fois pour chaque session d'envoi.
     TargetsReset=Vider liste
    -ToClearAllRecipientsClickHere=Pour vider la liste des destinataires, cliquez sur le bouton
    +ToClearAllRecipientsClickHere=Pour vider la liste des destinataires de cet emailing, cliquez sur le bouton
     ToAddRecipientsChooseHere=Pour ajouter des destinataires, choisir dans les listes ci-dessous
     NbOfEMailingsReceived=Emailings de masse reçus
     NbOfEMailingsSend=Emailings de masse envoyés
    @@ -139,7 +139,7 @@ UseFormatFileEmailToTarget=Le fichier d'import doit être au format <strong>emai
     UseFormatInputEmailToTarget=Saisissez une chaîne de caractères au format <strong>email;nom;prénom;autre</strong>
     MailAdvTargetRecipients=Destinataires (sélection avancée)
     AdvTgtTitle=Remplissez les champs de saisie pour pré-sélectionner les tiers ou contacts/adresses cibles
    -AdvTgtSearchTextHelp=Astuces de recherche : <br>- x<b>%%</b> pour rechercher tous les termes commençant par x,<br>- <b>;</b> comme séparateur de valeurs recherchées,<br>- <b>!</b> pour exclure une valeur de la recherche : <br> Exemple : <b>jean;joe;jim%%;!jimo;!jima%</b> affichera tous les résultats <i>jean</i> et <i>joe</i>, ceux commençant par <i>jim</i> en excluant <i>jimo</i> et <i>jima</i>.
    +AdvTgtSearchTextHelp=Utilisez %% comme caractères génériques. Par exemple, pour rechercher tous les éléments tels que <b> jean, joe, jim </b>, vous pouvez saisir <b>j%%</b>, vous pouvez également utiliser ; comme séparateur de valeur et utiliser ! pour exclure cette valeur. Par exemple, <b> jean; joe; jim%%;! jimo;!jima%</b> ciblera tous les jean, joe, commence par jim mais pas jimo et pas tout ce qui commence par jima.
     AdvTgtSearchIntHelp=Utiliser un intervalle pour sélectionner un entier ou décimal
     AdvTgtMinVal=Valeur minimum
     AdvTgtMaxVal=Valeur maximum
    @@ -166,4 +166,4 @@ InGoingEmailSetup=Configuration email entrant
     OutGoingEmailSetupForEmailing=Configuration des e-mail sortant (pour les e-mails de masse)
     DefaultOutgoingEmailSetup=Configuration des emails sortant
     Information=Information
    -ContactsWithThirdpartyFilter=Contacts avec filtre client
    +ContactsWithThirdpartyFilter=Contacts avec filtre tiers
    diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang
    index b68102ef90d..c1abf964395 100644
    --- a/htdocs/langs/fr_FR/main.lang
    +++ b/htdocs/langs/fr_FR/main.lang
    @@ -51,20 +51,20 @@ ErrorFileNotUploaded=Le fichier n'a pas été transféré. Vérifiez que sa tail
     ErrorInternalErrorDetected=Erreur détectée
     ErrorWrongHostParameter=Mauvais paramètre Serveur
     ErrorYourCountryIsNotDefined=Votre pays n'est pas défini. Corriger en allant dans Accueil-Configuration-Société/Institution-Editer.
    -ErrorRecordIsUsedByChild=Impossible de supprimer cet enregistrement. Ce dernier est utilisé en tant que père par au moins un enregistrement fils.
    +ErrorRecordIsUsedByChild=Impossible de supprimer cet enregistrement. Cet enregistrement est utilisé par au moins un enregistrement enfant.
     ErrorWrongValue=Valeur incorrecte
     ErrorWrongValueForParameterX=Valeur incorrecte pour le paramètre %s
     ErrorNoRequestInError=Aucune requête en erreur
    -ErrorServiceUnavailableTryLater=Service non disponible actuellement. Réessayer plus tard.
    +ErrorServiceUnavailableTryLater=Service non disponible pour le moment. Réessayez plus tard.
     ErrorDuplicateField=Doublon dans un champ unique
    -ErrorSomeErrorWereFoundRollbackIsDone=Des erreurs ont été trouvées. On rollback les modifications.
    +ErrorSomeErrorWereFoundRollbackIsDone=Quelques erreurs ont été trouvées. Les modifications ont été annulées.
     ErrorConfigParameterNotDefined=Le paramètre <b>%s</b> n'est pas défini dans le fichier de configuration Dolibarr <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Impossible de trouver l'utilisateur <b>%s</b> dans la base Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Erreur, aucun taux tva défini pour le pays '%s'.
     ErrorNoSocialContributionForSellerCountry=Erreur, pas de types de charges sociales/fiscales définies pour le pays '%s'.
     ErrorFailedToSaveFile=Erreur, l'enregistrement du fichier a échoué.
     ErrorCannotAddThisParentWarehouse=Vous essayez d'ajouter un entrepôt parent qui est déjà un enfant de l'entrepôt courant
    -MaxNbOfRecordPerPage=Nombre maximal d'enregistrement par page
    +MaxNbOfRecordPerPage=Nombre max d'enregistrement par page
     NotAuthorized=Vous n'êtes pas autorisé pour cette action.
     SetDate=Définir date
     SelectDate=Sélectionnez une date
    @@ -78,10 +78,10 @@ FileRenamed=Le fichier a été renommé avec succès
     FileGenerated=Le fichier a été généré avec succès
     FileSaved=Fichier enregistré avec succès
     FileUploaded=Le fichier a été transféré avec succès
    -FileTransferComplete=Fichier(s) correctement envoyé(s)
    +FileTransferComplete=Fichier (s) chargé (s) avec succès
     FilesDeleted=Fichier(s) supprimé(s) avec succès
     FileWasNotUploaded=Un fichier a été sélectionné pour attachement mais n'a pas encore été uploadé. Cliquez sur "Joindre ce fichier" pour cela.
    -NbOfEntries=Nb d'entrées
    +NbOfEntries=Nombre de Entrées
     GoToWikiHelpPage=Consulter l'aide (nécessite un accès internet)
     GoToHelpPage=Consulter l'aide
     RecordSaved=Enregistrement sauvegardé
    @@ -94,7 +94,7 @@ Undefined=Non défini
     PasswordForgotten=Mot de passe oublié ?
     NoAccount=Pas de compte ?
     SeeAbove=Voir ci-dessus
    -HomeArea=Espace accueil
    +HomeArea=Accueil
     LastConnexion=Dernière connexion
     PreviousConnexion=Connexion précédente
     PreviousValue=Valeur précédente
    @@ -142,6 +142,7 @@ Closed=Clôturé
     Closed2=Fermé
     NotClosed=Non fermé
     Enabled=Actif
    +Enable=Activer
     Deprecated=Obsolète
     Disable=Désactiver
     Disabled=Désactivé
    @@ -327,7 +328,7 @@ Copy=Copier
     Paste=Coller
     Default=Défaut
     DefaultValue=Valeur par défaut
    -DefaultValues=Valeurs/Filtres/Tri par défaut
    +DefaultValues=Valeurs/filtres/tris par défaut
     Price=Prix
     PriceCurrency=Prix ​​(devise)
     UnitPrice=Prix unitaire
    @@ -347,7 +348,7 @@ AmountTTCShort=Montant TTC
     AmountHT=Montant HT
     AmountTTC=Montant TTC
     AmountVAT=Montant TVA
    -MulticurrencyAlreadyPaid=Déjà payé (devise d'origine)
    +MulticurrencyAlreadyPaid=Déjà payé, devise d'origine
     MulticurrencyRemainderToPay=Reste à payer (devise d'origine)
     MulticurrencyPaymentAmount=Montant du règlement (devise d'origine)
     MulticurrencyAmountHT=Montant HT, devise d'origine
    @@ -428,7 +429,7 @@ ActionNotApplicable=Non applicable
     ActionRunningNotStarted=A réaliser
     ActionRunningShort=En cours
     ActionDoneShort=Terminé
    -ActionUncomplete=Incomplets
    +ActionUncomplete=Incomplet
     LatestLinkedEvents=Les %s derniers événements liés
     CompanyFoundation=Société/Organisation
     Accountant=Comptable
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts de ce tiers
     ContactsAddressesForCompany=Contacts/adresses de ce tiers
     AddressesForCompany=Adresses de ce tiers
     ActionsOnCompany=Événements vis à vis de ce tiers
    +ActionsOnContact=Événements à propos de ce contact/adresse
     ActionsOnMember=Événements vis à vis de cet adhérent
     ActionsOnProduct=Événements liés au produit
     NActionsLate=%s en retard
    @@ -454,7 +456,7 @@ Duration=Durée
     TotalDuration=Durée totale
     Summary=Résumé
     DolibarrStateBoard=Statistiques de la base
    -DolibarrWorkBoard=Tableau de bord des éléments ouverts
    +DolibarrWorkBoard=Éléments en attente
     NoOpenedElementToProcess=Aucun élément ouvert à traiter
     Available=Disponible
     NotYetAvailable=Pas encore disponible
    @@ -468,7 +470,7 @@ and=et
     or=ou
     Other=Autre
     Others=Autres
    -OtherInformations=Autres informations
    +OtherInformations=Autre information
     Quantity=Quantité
     Qty=Qté
     ChangedBy=Modifié par
    @@ -530,18 +532,6 @@ September=septembre
     October=octobre
     November=novembre
     December=décembre
    -JanuaryMin=Jan
    -FebruaryMin=Fév
    -MarchMin=Mars
    -AprilMin=Avr
    -MayMin=Mai
    -JuneMin=Juin
    -JulyMin=Juil
    -AugustMin=Août
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Déc
     Month01=Janvier
     Month02=Février
     Month03=Mars
    @@ -646,6 +636,8 @@ SendMail=Envoyer email
     EMail=Email
     NoEMail=Pas d'email
     Email=Email
    +AlreadyRead=Déjà lu
    +NotRead=Non lu
     NoMobilePhone=Pas de téléphone portable
     Owner=Propriétaire
     FollowingConstantsWillBeSubstituted=Les constantes suivantes seront substituées par leur valeur correspondante.
    @@ -703,7 +695,7 @@ DateOfSignature=Date de signature
     HidePassword=Afficher commande avec mot de passe masqué
     UnHidePassword=Afficher commande réelle avec mot de passe en clair
     Root=Racine
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Ajout nouvelle ligne
    @@ -716,15 +708,15 @@ Merge=Fusionner
     DocumentModelStandardPDF=Modèle PDF standard
     PrintContentArea=Afficher page d'impression de la zone centrale
     MenuManager=Gestionnaire de menu
    -WarningYouAreInMaintenanceMode=Attention, vous êtes en mode maintenance, aussi seul l'utilisateur identifié par <b>%s</b> est autorisé à utiliser l'application en ce moment.
    +WarningYouAreInMaintenanceMode=Attention, vous êtes en mode maintenance, aussi seul le login <b>%s</b> est autorisé à utiliser l'application en ce moment.
     CoreErrorTitle=Erreur système
     CoreErrorMessage=Désolé, une erreur s'est produite. Contacter votre administrateur système pour vérifier les logs ou désactiver l'option $dolibarr_main_prod=1 pour obtenir plus d'information.
     CreditCard=Carte de crédit
     ValidatePayment=Valider ce règlement
     CreditOrDebitCard=Carte de crédit ou débit
     FieldsWithAreMandatory=Les champs marqués par un <b>%s</b> sont obligatoires
    -FieldsWithIsForPublic=Les champs marqués par <b>%s</b> seront affichés sur la liste publique des membres. Si vous ne le souhaitez pas, décochez la case "public".
    -AccordingToGeoIPDatabase=(obtenu par conversion GeoIP)
    +FieldsWithIsForPublic=Les champs marqués par <b>%s</b> seront affichés sur la liste publique des adhérents. Si vous ne le souhaitez pas, décochez la case "public".
    +AccordingToGeoIPDatabase=(selon conversion GeoIP)
     Line=Ligne
     NotSupported=Non pris en charge
     RequiredField=Champ obligatoire
    @@ -732,6 +724,8 @@ Result=Résultat
     ToTest=Tester
     ValidateBefore=La fiche doit être validée pour pouvoir utiliser cette fonction
     Visibility=Visibilité
    +Totalizable=Totalisable
    +TotalizableDesc=Ce champ est totalisable en liste
     Private=Privé
     Hidden=Caché
     Resources=Ressources
    @@ -750,6 +744,7 @@ LinkTo=Lier à
     LinkToProposal=Lier à une proposition commerciale
     LinkToOrder=Lier à une commande
     LinkToInvoice=Lier à une facture
    +LinkToTemplateInvoice=Lien vers le modèle de facture
     LinkToSupplierOrder=Lier à une commande fournisseur
     LinkToSupplierProposal=Lier à une proposition commerciale fournisseur
     LinkToSupplierInvoice=Lier à une facture fournisseur
    @@ -758,6 +753,7 @@ LinkToIntervention=Lier à une intervention
     CreateDraft=Créer brouillon
     SetToDraft=Retour en brouillon
     ClickToEdit=Cliquer ici pour éditer
    +ClickToRefresh=Cliquez pour rafraîchir
     EditWithEditor=Editer avec CKEditor
     EditWithTextEditor=Éditer avec l'éditeur de texte
     EditHTMLSource=Éditer la source HTML
    @@ -802,7 +798,7 @@ PrintFile=Imprimer fichier %s
     ShowTransaction=Afficher l'écriture sur le compte bancaire
     ShowIntervention=Afficher intervention
     ShowContract=Afficher contrat
    -GoIntoSetupToChangeLogo=Allez dans Accueil - Configuration - Société/institution pour changer le  logo ou aller dans Accueil - Configuration - Affichage pour le cacher.
    +GoIntoSetupToChangeLogo=Allez à Accueil - Configuration - Société pour changer de logo ou allez à Accueil - Configuration - Afficher pour masquer.
     Deny=Refuser
     Denied=Refusé
     ListOf=Liste de %s
    @@ -818,12 +814,12 @@ Sincerely=Sincèrement
     DeleteLine=Effacer ligne
     ConfirmDeleteLine=Êtes-vous sûr de vouloir supprimer cette ligne ?
     NoPDFAvailableForDocGenAmongChecked=Aucun document PDF n'était disponible pour la génération de document parmi les enregistrements vérifiés
    -TooManyRecordForMassAction=Trop d'enregistrements sélectionnés pour l'action de masse. L'action est restreinte à une liste de %s enregistrements
    +TooManyRecordForMassAction=Trop d'enregistrements sélectionnés pour l'action de masse. De telles actions sont restreintes à une liste de %s enregistrements maximum.
     NoRecordSelected=Aucu enregistrement sélectionné
     MassFilesArea=Zone des fichiers générés en masse
     ShowTempMassFilesArea=Afficher la zone des fichiers générés en masse
     ConfirmMassDeletion=Confirmation de suppression en masse
    -ConfirmMassDeletionQuestion=Êtes-vous sur de vouloir supprimer la(les) %s valeur(s) sélectionnée(s) ?
    +ConfirmMassDeletionQuestion=Êtes-vous sûr de vouloir supprimer l’enregistrement sélectionné %s?
     RelatedObjects=Objets liés
     ClassifyBilled=Classer facturé
     ClassifyUnbilled=Classer non facturé
    @@ -841,7 +837,7 @@ Calendar=Calendrier
     GroupBy=Grouper par...
     ViewFlatList=Voir vue liste
     RemoveString=Supprimer la chaine '%s'
    -SomeTranslationAreUncomplete=Certains languages pourraient n'être que partiellement traduites, ou contenir des erreurs. Si vous en détectez, vous pouvez les corriger en vous enregistrant sur <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>
    +SomeTranslationAreUncomplete=Certaines des langues proposées peuvent n'être traduites que partiellement ou contenir des erreurs. Aidez-nous à corriger votre langue en vous inscrivant à l'adresse <a href="https://transifex.com/projects/p/dolibarr/" target="_blank"> https://transifex.com/projects/p/dolibarr/</a> pour ajouter vos améliorations.
     DirectDownloadLink=Lien de téléchargement direct (public/externe)
     DirectDownloadInternalLink=Lien de téléchargement direct (requiert d'être logué et autorisé)
     Download=Téléchargement
    @@ -861,16 +857,25 @@ HR=HR
     HRAndBank=HR et banque
     AutomaticallyCalculated=Calculé automatiquement
     TitleSetToDraft=Retour à l'état de brouillon
    -ConfirmSetToDraft=Etes vous sûr de vouloir revenir à l'état Brouillon ?
    +ConfirmSetToDraft=Êtes-vous sûr de vouloir revenir au statut de brouillon?
     ImportId=Id import
     Events=Événements
     EMailTemplates=Modèles des courriels
    -FileNotShared=Fichier non partagé en public
    +FileNotShared=Fichier non partagé avec un public externe
     Project=Projet
     Projects=Projets
    +LeadOrProject=Opportunités | Projet
    +LeadsOrProjects=Opportunités | Projets
    +Lead=Opportunité
    +Leads=Opportunités
    +ListOpenLeads=Liste des opp. ouvertes
    +ListOpenProjects=Liste des projets ouverts
    +NewLeadOrProject=Nouvelle opp. ou projet
     Rights=Permissions
     LineNb=No ligne
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Lettrage client
    +TabLetteringSupplier=Lettrage fournisseur
     # Week day
     Monday=Lundi
     Tuesday=Mardi
    @@ -935,7 +940,7 @@ CommentAdded=Commentaire ajouté
     CommentDeleted=Commentaire supprimé
     Everybody=Tout le monde
     PayedBy=Payé par
    -PayedTo=Payé à
    +PayedTo=Versée à
     Monthly=Mensuel
     Quarterly=Trimestriel
     Annual=Annuel
    @@ -945,6 +950,8 @@ LocalAndRemote=Local et distant
     KeyboardShortcut=Raccourci clavier
     AssignedTo=Assigné à
     Deletedraft=Supprimer brouillon
    -ConfirmMassDraftDeletion=Confirmation de suppression de brouillon en bloc
    +ConfirmMassDraftDeletion=Projet de confirmation de suppression en masse
     FileSharedViaALink=Fichier partagé via un lien
    -
    +SelectAThirdPartyFirst=Sélectionnez d'abord un tiers ...
    +YouAreCurrentlyInSandboxMode=Vous travaillez actuellement dans le mode "bac à sable" de %s
    +Inventory=Inventaire
    diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang
    index a27cd5c5747..300b1f55ac8 100644
    --- a/htdocs/langs/fr_FR/members.lang
    +++ b/htdocs/langs/fr_FR/members.lang
    @@ -121,11 +121,11 @@ SubscriptionReminderEmail=Rappel de cotisation
     YourMembershipWasCanceled=Votre adhésion a été annulée
     CardContent=Contenu de votre fiche adhérent
     # Text of email templates
    -ThisIsContentOfYourMembershipRequestWasReceived=Nous vous informons que votre demande d'adhésion a bien été reçue. <br> <br>
    +ThisIsContentOfYourMembershipRequestWasReceived=Nous vous informons que votre demande d'adhésion a bien été reçue.<br><br>
     ThisIsContentOfYourMembershipWasValidated=Nous vous informons que votre adhésion a été validé avec les informations suivantes:<br><br>
     ThisIsContentOfYourSubscriptionWasRecorded=Nous vous informons que votre nouvelle cotisation a été enregistrée.<br><br>
    -ThisIsContentOfSubscriptionReminderEmail=Nous voulons vous informer que votre adhésion est sur le point d'expirer. Nous espérons que vous pourrez la renouveler, votre soutien nous ait précieux <br> <br>
    -ThisIsContentOfYourCard=Ceci est un rappel des informations que nous avons vos concernant. N'hésitez pas à nous contacter en cas d'erreur.<br><br>
    +ThisIsContentOfSubscriptionReminderEmail=Nous voulons vous informer que votre adhésion est sur le point d'expirer. Nous espérons que vous pourrez la renouveler, votre soutien nous ait précieux<br><br>
    +ThisIsContentOfYourCard=Ceci est un rappel des informations que nous avons vous concernant. N'hésitez pas à nous contacter en cas d'erreur.<br><br>
     DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Sujet de l'email reçu en cas d'auto-inscription d'un invité
     DescADHERENT_AUTOREGISTER_NOTIF_MAIL=Email reçu en cas d'auto-inscription d'un invité
     DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Modèle Email à utiliser pour envoyer un email à un adhérent sur auto-adhésion de l'adhérent
    diff --git a/htdocs/langs/fr_FR/modulebuilder.lang b/htdocs/langs/fr_FR/modulebuilder.lang
    index 3d520889aa7..fce1f10b7cd 100644
    --- a/htdocs/langs/fr_FR/modulebuilder.lang
    +++ b/htdocs/langs/fr_FR/modulebuilder.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - loan
    -ModuleBuilderDesc=Cet outil est réservé aux utilisateurs avancés ou développeurs. Il donne accès aux outil de création ou d'édition de modules additionnels (Cliquez <a href="%s" target="_blank">ici</a> pour plus d'information).
    +ModuleBuilderDesc=Cet outil ne doit être utilisé que par des utilisateurs expérimentés ou des développeurs. Il vous fournit des utilitaires pour construire ou éditer votre propre module. <br> La documentation relative au <a href="%s" target="_blank"> développement manuel alternatif est ici </a>.
     EnterNameOfModuleDesc=Saisissez le nom du module/application à créer, sans espaces. Utilisez les majuscules pour identifier les mots (par exemple : MonModule, BoutiqueECommerce,...)
     EnterNameOfObjectDesc=Entrez le nom de l'objet à créer sans espaces. Utilisez les majuscules pour séparer des mots (par exemple: MyObject, Student, Teacher ...). Le fichier de classe CRUD, mais aussi le fichier API, les pages à afficher / ajouter / éditer / supprimer des objets et des fichiers SQL seront générés.
     ModuleBuilderDesc2=Chemin ou les modules sont générés/modifiés (premier répertoire alternatif défini dans %s):<strong>%s</strong>
    @@ -13,7 +13,7 @@ ModuleInitialized=Module initialisé
     FilesForObjectInitialized=Fichiers pour les nouvel objet '%s' initialisés
     FilesForObjectUpdated=Les fichiers pour l'objet '%s' ont été mis à jour ( fichiers .sql et .class.php )
     ModuleBuilderDescdescription=Entrez ici toutes les informations générales qui décrivent votre module.
    -ModuleBuilderDescspecifications=Vous pouvez entrer ici un long texte pour décrire les caractéristiques de votre module qui ne sont pas déjà structuré dans d'autres onglets. Vous avez donc facilement accès à toutes les règles à développer. De plus, ce contenu de texte sera inclus dans la documentation générée (voir dernier onglet). Vous pouvez utiliser le format Markdown, mais il est recommandé d'utiliser le format Asciidoc (Comparaison entre .md et .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
    +ModuleBuilderDescspecifications=Vous pouvez entrer ici une description détaillée des spécifications de votre module qui n'est pas déjà structurée dans d'autres onglets. Vous avez donc à portée de main toutes les règles à développer. Ce contenu textuel sera également inclus dans la documentation générée (voir dernier onglet). Vous pouvez utiliser le format Markdown, mais il est recommandé d'utiliser le format Asciidoc (comparaison entre .md et .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown).
     ModuleBuilderDescobjects=Définissez ici les objets que vous souhaitez gérer avec votre module. Une classe CRUD DAO, des fichiers SQL, une page pour lister l'enregistrement des objets, pour créer / modifier / afficher un enregistrement et une API sera générée.
     ModuleBuilderDescmenus=Cet onglet est dédié à la définition des entrées menu fournies par votre module.
     ModuleBuilderDescpermissions=Cet onglet est dédié à la définition des nouvelles permissions dont vous voulez fournir avec votre module.
    @@ -21,12 +21,12 @@ ModuleBuilderDesctriggers=Vue des triggers ajoutés par votre module. Pour inclu
     ModuleBuilderDeschooks=Cet onglet est dédié aux points d'accroche.
     ModuleBuilderDescwidgets=Cet onglet est dédié à la gestion/construction de widgets.
     ModuleBuilderDescbuildpackage=Vous pouvez générer ici un fichier de package "prêt à distribuer" (un fichier .zip normalisé) de votre module et un fichier de documentation "prêt à distribuer". Cliquez simplement sur le bouton pour créer le paquet ou le fichier de documentation.
    -EnterNameOfModuleToDeleteDesc=Vous pouvez supprimer votre module. ATTENTION : tous les fichiers et les données propres au module seront définitivement perdus !
    -EnterNameOfObjectToDeleteDesc=Vous pouvez effacer un objet. ATTENTION : Tous les fichiers reliés à cet objet seront définitivement perdus !
    +EnterNameOfModuleToDeleteDesc=Vous pouvez supprimer votre module. ATTENTION: Tous fichiers relatifs a ce module ET toutes bases de donnes seront supprimés!
    +EnterNameOfObjectToDeleteDesc=Vous pouvez supprimer un objet\nATTENTION:\nTous fichiers relatifs a cet objet seront supprimes
     DangerZone=Zone de danger
     BuildPackage=Générer package/documentation
     BuildDocumentation=Générez la documentation
    -ModuleIsNotActive=Le module n'est pas encore activé. Aller à %s pour l'activer ou cliquer ici :
    +ModuleIsNotActive=Ce module n'est pas encore activé. Allez à %s pour le faire vivre ou cliquez ici:
     ModuleIsLive=Ce module a été activé. Tout changement sur lui pourrait casser une fonctionnalité actuellement activée.
     DescriptionLong=Description longue
     EditorName=Nom de l'éditeur
    @@ -47,7 +47,7 @@ RegenerateClassAndSql=Effacer et générer à nouveau les fichiers de classe et
     RegenerateMissingFiles=Générer les fichiers manquant
     SpecificationFile=Fichier de description des règles métiers
     LanguageFile=Fichier langue
    -ConfirmDeleteProperty=Êtes-vous sûr de vouloir supprimer la propriété<strong>%s</strong> ? Cela changera le code dans la classe PHP, mais supprimera également la colonne de la définition de table d'objet.
    +ConfirmDeleteProperty=Voulez-vous vraiment supprimer la propriété <strong> %s </strong> ? Cela modifiera le code de la classe PHP, mais supprimera également la colonne de la définition de la table de l'objet.
     NotNull=Non NULL
     NotNullDesc=1=Définir le champ en base à NOT NULL. -1=Autoriser les valeurs nulles et forcer la valeur à NULL si vide ('' ou 0).
     SearchAll=Utilisé par la "recherche globale"
    @@ -64,9 +64,9 @@ TestClassFile=Fichier de tests unitaires PHP
     SqlFile=Fichier SQL
     PageForLib=Fichier pour les librairies PHP
     SqlFileExtraFields=Fichier SQL pour les attributs complémentaires
    -SqlFileKey=Fichier Sql pour les clés
    +SqlFileKey=Fichier SQL pour les clés et index
     AnObjectAlreadyExistWithThisNameAndDiffCase=Un objet existe déjà avec ce nom dans une casse différente
    -UseAsciiDocFormat=Vous pouvez utiliser le format Markdown, mais il est recommandé d'utiliser le format Asciidoc (Comparaison entre .md et .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
    +UseAsciiDocFormat=Vous pouvez utiliser le format Markdown, mais il est recommandé d'utiliser le format Asciidoc (comparaison entre .md et .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
     IsAMeasure=Est une mesure
     DirScanned=Répertoire scanné
     NoTrigger=Pas de trigger
    @@ -78,7 +78,7 @@ SeeExamples=Voir des exemples ici
     EnabledDesc=Condition pour que ce champ soit actif (Exemples: 1 ou $conf->global->MYMODULE_MYOPTION)
     VisibleDesc=Le champ est-il visible ? (Exemples: 0 = Jamais visible, 1 = Visible sur les listes et formulaires de création/mise à jour/visualisation, 2 = Visible uniquement sur la liste, 3 = Visible uniquement sur le formulaire de création/mise à jour/affichage. Utiliser une valeur négative signifie que le champ n'est pas affiché par défaut sur la liste mais peut être sélectionné pour l'affichage)
     IsAMeasureDesc=Peut-on cumuler la valeur du champ pour obtenir un total dans les listes ? (Exemples: 1 ou 0)
    -SearchAllDesc=Le champ doit-il être utilisé pour effectuer une recherche à partir de l'outil de recherche rapide ? (Exemples: 1 ou 0)
    +SearchAllDesc=Le champ est-il utilisé pour effectuer une recherche à partir de l'outil de recherche rapide? (Exemples: 1 ou 0)
     SpecDefDesc=Entrez ici toute la documentation que vous souhaitez joindre au module et qui n'a pas encore été définis dans d'autres onglets. Vous pouvez utiliser .md ou, mieux, la syntaxe enrichie .asciidoc.
     LanguageDefDesc=Entrez dans ces fichiers, toutes les clés et la traduction pour chaque fichier de langue.
     MenusDefDesc=Définissez ici les menus fournis par votre module (une fois définis, ils sont visibles dans l'éditeur de menu %s)
    @@ -88,7 +88,7 @@ TriggerDefDesc=Définissez dans le fichier trigger le code que vous souhaitez ex
     SeeIDsInUse=Voir les IDs utilisés dans votre installation
     SeeReservedIDsRangeHere=Voir la plage des ID réservés
     ToolkitForDevelopers=Boîte à outils pour développeurs Dolibarr
    -TryToUseTheModuleBuilder=Si vous avez des connaissances en SQL et PHP, vous pouvez essayer d'utiliser l'assistant de création de module natif. Activez simplement le module et utilisez l'assistant en cliquant sur <span class="fa fa-bug"></span> dans le menu en haut à droite. Attention: Ceci est une fonctionnalité de développeur, une mauvaise utilisation peut casser votre application.
    +TryToUseTheModuleBuilder=Si vous connaissez SQL et PHP, vous pouvez utiliser l'assistant de création de module natif. <br> Activez le module <strong> %s </strong> et utilisez l'assistant en cliquant sur la <span class = "fa fa-bug">. </span> dans le menu en haut à droite. <br> Avertissement: Il s'agit d'une fonctionnalité avancée pour les développeurs. Ne <b> pas </b> expérimenter sur votre site de production!
     SeeTopRightMenu=Voir<span class="fa fa-bug"></span> à droite de votre barre de menu principal
     AddLanguageFile=Ajouter le fichier de langue
     YouCanUseTranslationKey=Vous pouvez utiliser ici une clé qui est la clé de traduction trouvée dans le fichier de langue (voir l'onglet "Langues")
    @@ -96,6 +96,7 @@ DropTableIfEmpty=(Supprimer la table si vide)
     TableDoesNotExists=La table %s n'existe pas
     TableDropped=La table %s a été supprimée
     InitStructureFromExistingTable=Construire la chaîne du tableau de structure d'une table existante
    -UseAboutPage=Désactiver la page à propos de
    -UseDocFolder=Désactiver le dossier de la documentation
    +UseAboutPage=Désactiver la page "A propos"
    +UseDocFolder=Désactiver  le dossier Documentation
     UseSpecificReadme=Utiliser un fichier ReadMe spécifique
    +RealPathOfModule=Reel chemin du dossier du  module
    diff --git a/htdocs/langs/fr_FR/multicurrency.lang b/htdocs/langs/fr_FR/multicurrency.lang
    index 3e4718a561e..028881b07d9 100644
    --- a/htdocs/langs/fr_FR/multicurrency.lang
    +++ b/htdocs/langs/fr_FR/multicurrency.lang
    @@ -3,18 +3,18 @@ MultiCurrency=Multi-devise
     ErrorAddRateFail=Erreur lors de l'ajout du taux
     ErrorAddCurrencyFail=Erreur lors de l'ajout de la devise
     ErrorDeleteCurrencyFail=Erreur de suppression
    -multicurrency_syncronize_error=Erreur de synchronisation %s
    -MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Utilisez la date du document pour trouver le taux de change, au lieu d'utiliser dernier taux connu
    -multicurrency_useOriginTx=Quand un objet est créé à partir d'un autre, garder le taux original de l'objet source (sinon utiliser le dernier taux connu)
    +multicurrency_syncronize_error=Erreur de synchronisation: %s
    +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Utilisez la date du document pour rechercher le taux de change, au lieu d'utiliser le dernier taux connu
    +multicurrency_useOriginTx=Lorsqu'un objet est créé à partir d'un autre, conservez le taux d'origine de l'objet source (sinon utilisez le dernier taux connu).
     CurrencyLayerAccount=API CurrencyLayer
     CurrencyLayerAccount_help_to_synchronize=Vous devez créer un compte sur leur site web pour pouvoir utiliser cette fonctionnalité.<br />Obtenez votre <b>Clé API</b><br />Si vous utilisez un compte gratuit, vous ne pouvez pas changer la <b>devise source</b>(USD par défaut)<br />Mais si votre devise principale n'est pas USD, vous pouvez utiliser une <b>devise source alternative</b> pour forcer votre devise principale<br /><br /> Vous êtes limité à 1000 synchronisations par mois.
     multicurrency_appId=Clé API
     multicurrency_appCurrencySource=Devise source
     multicurrency_alternateCurrencySource=Devise du document source
     CurrenciesUsed=Devises utilisées
    -CurrenciesUsed_help_to_add=Ajoutez les différentes devises et taux dont vous avez besoin sur vos <b>propositions commerciales</b>,<b>commandes</b>, etc.
    +CurrenciesUsed_help_to_add=Ajoutez les différentes devises et taux que vous devez utiliser pour vos <b> propositions </b>, <b> commandes </b>, etc.
     rate=taux
     MulticurrencyReceived=Reçu, devise originale
    -MulticurrencyRemainderToTake=Montant restant, devise originale
    +MulticurrencyRemainderToTake=Montant restant, devise d'origine
     MulticurrencyPaymentAmount=Montant du règlement (devise d'origine)
     AmountToOthercurrency=Montant destination (en devise du compte de réception)
    diff --git a/htdocs/langs/fr_FR/opensurvey.lang b/htdocs/langs/fr_FR/opensurvey.lang
    index 0cf70c90257..55daf2154a2 100644
    --- a/htdocs/langs/fr_FR/opensurvey.lang
    +++ b/htdocs/langs/fr_FR/opensurvey.lang
    @@ -35,7 +35,7 @@ TitleChoice=Libellé du choix
     ExportSpreadsheet=Exporter feuille de résultats
     ExpireDate=Date expiration
     NbOfSurveys=Nombre de sondages
    -NbOfVoters=Nombre de votants
    +NbOfVoters=Nbre de votants
     SurveyResults=Résultats
     PollAdminDesc=Vous êtes habilité à modifier toutes les lignes de votes par le bouton "Éditer". Vous pouvez supprimer une colonne ou ligne avec %s. Vous pouvez aussi ajouter une nouvelle colonne avec %s.
     5MoreChoices=5 choix suplémentaires
    @@ -58,4 +58,4 @@ MoreChoices=Entrez plus de choix pour les votants
     SurveyExpiredInfo=Le sondage a été fermé ou le délai de vote est expiré
     EmailSomeoneVoted=%s a rempli une ligne.\nVous pouvez trouver le sondage via le lien:\n%s
     ShowSurvey=Afficher le sondage
    -UserMustBeSameThanUserUsedToVote=You must have voted and use the same user name that the one used to vote, to post a comment
    +UserMustBeSameThanUserUsedToVote=Vous devez avoir voté et utiliser le même nom d'utilisateur que celui utilisé pour voter, pour poster un commentaire
    diff --git a/htdocs/langs/fr_FR/orders.lang b/htdocs/langs/fr_FR/orders.lang
    index ba4ed1d43bf..158c566ca30 100644
    --- a/htdocs/langs/fr_FR/orders.lang
    +++ b/htdocs/langs/fr_FR/orders.lang
    @@ -25,6 +25,7 @@ OrdersToBill=Commandes clients à délivrer
     OrdersInProcess=Commandes clients en traitement
     OrdersToProcess=Commandes clients à traiter
     SuppliersOrdersToProcess=Commandes fournisseurs à traiter
    +SuppliersOrdersInProcess=Commandes fournisseurs en traitement
     StatusOrderCanceledShort=Annulée
     StatusOrderDraftShort=Brouillon
     StatusOrderValidatedShort=Validée
    @@ -88,7 +89,7 @@ NumberOfOrdersByMonth=Nombre de commandes par mois
     AmountOfOrdersByMonthHT=Montant total de commandes par mois (HT)
     ListOfOrders=Liste des commandes
     CloseOrder=Clôturer commande
    -ConfirmCloseOrder=Êtes-vous sûr de vouloir classer cette commande à Délivrée ? Une fois une commande délivrée, elle peut aussi être passée à facturée.
    +ConfirmCloseOrder=Voulez-vous vraiment que cette commande soit livrée? Une fois qu'une commande est livrée, elle peut être définie sur facturée.
     ConfirmDeleteOrder=Êtes-vous sûr de vouloir effacer cette commande ?
     ConfirmValidateOrder=Êtes-vous sûr de vouloir valider cette commande sous la référence <b>%s</b> ?
     ConfirmUnvalidateOrder=Êtes-vous sûr de vouloir restaurer la commande <b>%s</b> au statut brouillon ?
    @@ -141,6 +142,7 @@ OrderByWWW=En ligne
     OrderByPhone=Téléphone
     # Documents models
     PDFEinsteinDescription=Modèle de commande complet (logo…)
    +PDFEratostheneDescription=Modèle de commande complet (logo…)
     PDFEdisonDescription=Modèle de commande simple
     PDFProformaDescription=Modèle de facture proforma complet (logo…)
     CreateInvoiceForThisCustomer=Facturer commandes
    diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang
    index 78076213a15..2cbfa7b8f30 100644
    --- a/htdocs/langs/fr_FR/other.lang
    +++ b/htdocs/langs/fr_FR/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Code de sécurité
     NumberingShort=N°
     Tools=Outils
     TMenuTools=Outils
    -ToolsDesc=Cet espace regroupe divers outils non accessibles par les autres entrées du menu. <br><br>La liste de ces outils est accessible depuis le menu sur le côté.. 
    +ToolsDesc=Cet espace regroupe divers outils non accessibles par les autres entrées du menu. <br>Tous ces outils sont accessibles depuis le menu sur le côté.. 
     Birthday=Anniversaire
     BirthdayDate=Date anniversaire
     DateToBirth=Date de naissance
    @@ -23,7 +23,7 @@ MessageForm=Message sur l'écran de paiement en ligne
     MessageOK=Message sur page de retour de paiement validé
     MessageKO=Message sur page de retour de paiement annulé
     ContentOfDirectoryIsNotEmpty=Le contenu de ce répertoire n'est pas vide.
    -DeleteAlsoContentRecursively=Cochez pour supprimer tout le contenu de manière récursive
    +DeleteAlsoContentRecursively=Cocher pour supprimer tout le contenu de manière récursive
     
     YearOfInvoice=Année de la date de facturation
     PreviousYearOfInvoice=Année précédente de la date de facturation
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Année suivante de la date de facturation
     DateNextInvoiceBeforeGen=Date de la prochaine génération (avant génération)
     DateNextInvoiceAfterGen=Date de la prochaine facture (après génération)
     
    -Notify_FICHINTER_ADD_CONTACT=Contact ajouté à l'intervention
    -Notify_FICHINTER_VALIDATE=Validation fiche intervention
    -Notify_FICHINTER_SENTBYMAIL=Envoi fiche d'intervention par email
     Notify_ORDER_VALIDATE=Validation commande client
     Notify_ORDER_SENTBYMAIL=Envoi commande client par email
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Envoi commande fournisseur par email
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Commande fournisseur enregistrée
     Notify_ORDER_SUPPLIER_APPROVE=Commande fournisseur approuvée
     Notify_ORDER_SUPPLIER_REFUSE=Commande fournisseur refusée
     Notify_PROPAL_VALIDATE=Validation proposition commerciale client
    -Notify_PROPAL_CLOSE_SIGNED=Proposition commercial fermée signée
    -Notify_PROPAL_CLOSE_REFUSED=Proposition commerciale fermée refusée
    +Notify_PROPAL_CLOSE_SIGNED=Proposition client fermée signée
    +Notify_PROPAL_CLOSE_REFUSED=Proposition client fermée refusée
     Notify_PROPAL_SENTBYMAIL=Envoi proposition commerciale par email
     Notify_WITHDRAW_TRANSMIT=Transmission prélèvement
     Notify_WITHDRAW_CREDIT=Crédit prélèvement
    @@ -55,11 +52,13 @@ Notify_BILL_PAYED=Facture client payée
     Notify_BILL_CANCEL=Annulation facture client
     Notify_BILL_SENTBYMAIL=Envoi facture client par email
     Notify_BILL_SUPPLIER_VALIDATE=Validation facture fournisseur
    -Notify_BILL_SUPPLIER_PAYED=Paiment facture fournisseur
    +Notify_BILL_SUPPLIER_PAYED=Facture fournisseur payée
     Notify_BILL_SUPPLIER_SENTBYMAIL=Envoi facture fournisseur par email
     Notify_BILL_SUPPLIER_CANCELED=Facture fournisseur annulée
     Notify_CONTRACT_VALIDATE=Validation contrat
     Notify_FICHEINTER_VALIDATE=Validation fiche d'intervention
    +Notify_FICHINTER_ADD_CONTACT=Contact ajouté à l'intervention
    +Notify_FICHINTER_SENTBYMAIL=Envoi fiche d'intervention par email
     Notify_SHIPPING_VALIDATE=Validation expédition
     Notify_SHIPPING_SENTBYMAIL=Envoi expédition par email
     Notify_MEMBER_VALIDATE=Validation adhérent
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Création de projet
     Notify_TASK_CREATE=Tâche créée
     Notify_TASK_MODIFY=Tâche modifiée
     Notify_TASK_DELETE=Tâche supprimée
    +Notify_EXPENSE_REPORT_VALIDATE=Rapport de dépenses validé (approbation requise)
    +Notify_EXPENSE_REPORT_APPROVE=Note de frais approuvé
    +Notify_HOLIDAY_VALIDATE=Demande de congé validée (approbation requise)
    +Notify_HOLIDAY_APPROVE=Demande de congé approuvée
     SeeModuleSetup=Voir la configuration du module %s
     NbOfAttachedFiles=Nombre de fichiers/documents liés
     TotalSizeOfAttachedFiles=Taille totale fichiers/documents liés
     MaxSize=Taille maximum
     AttachANewFile=Ajouter un nouveau fichier/document
     LinkedObject=Objet lié
    -NbOfActiveNotifications=Nombre de notifications (nb de destinataires emails)
    +NbOfActiveNotifications=Nombre de notifications (nb d'e-mails de destinataires)
     PredefinedMailTest=__(Hello)__,\nCeci est un mail de test envoyé à __EMAIL__.\nLes deux lignes sont séparées par un saut de ligne.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nCeci est un message de <b>test</b> (le mot test doit être en gras).<br>Les 2 lignes sont séparées par un retour à la ligne.<br><br>__SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nVous trouverez ci-joint la facture __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nNous souhaitons vous prévenir que la facture __REF__ ne semble pas avoir été payée. Revoici donc la facture en pièce jointe, à titre de rappel.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nVeuillez trouver, ci-joint, la proposition commerciale __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Bonjour)__\n\nVeuillez trouver la facture ci-jointe __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Cordialement)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Bonjour)__\n\nNous tenons à vous avertir que la facture __REF__ ne semble pas avoir été payée. La facture est jointe, à titre de rappel.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Cordialement)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Bonjour)__\n\nVeuillez trouver ci-joint la proposition commerciale __REF__\n\n\n__(Cordialement)__\n\n__USER_SIGNATURE__
     PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nVeuillez trouver, ci-joint, une demande de prix avec la référence __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentSendOrder=__(Hello)__\n\nVeuillez trouver, ci-joint, la commande __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nVeuillez trouver, ci-joint, notre commande __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nVeuillez trouver, ci-joint, la facture __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nVeuillez trouver, ci-joint, le bon d'expédition __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nVeuillez trouver, ci-joint, la fiche intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nVeuillez trouver ci-joint notre commande __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nVeuillez trouver la facture ci-jointe __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nVeuillez trouver ci-joint l'expédition __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nVeuillez trouver l'intervention ci-jointe __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=Vous pouvez cliquer sur le lien ci-dessous pour effectuer votre paiement si ce n'est déjà fait.\n\n%s\n\n
     DemoDesc=Dolibarr est un logiciel de gestion proposant plusieurs modules métiers. Une démonstration qui inclut tous ces modules n'a pas de sens car ce cas n'existe jamais (plusieurs centaines de modules disponibles). Aussi, quelques profils type de démo sont disponibles.
    @@ -198,6 +203,10 @@ EMailTextOrderApprovedBy=La commande %s a été approuvée par %s.
     EMailTextOrderRefused=La commande %s a été refusée.
     EMailTextOrderRefusedBy=La commande %s a été refusée par %s.
     EMailTextExpeditionValidated=L'expédition %s a été validée.
    +EMailTextExpenseReportValidated=La note de frais %s a été validée.
    +EMailTextExpenseReportApproved=Le expensereport %s a été approuvé.
    +EMailTextHolidayValidated=La demande de congé %s a été validée.
    +EMailTextHolidayApproved=La demande de congé %s a été approuvée.
     ImportedWithSet=Lot d'importation (Import key)
     DolibarrNotification=Notification automatique
     ResizeDesc=Entrer la nouvelle largeur <b>OU</b> la nouvelle hauteur. Le ratio d'aspect est conservé lors du redimensionnement…
    @@ -236,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Votre mot de passe doit avoir au moins <strong
     YourPasswordHasBeenReset=Votre mot de passe a été réinitialisé avec succès
     ApplicantIpAddress=Adresse IP du demandeur
     SMSSentTo=SMS envoyé à %s
    +MissingIds=Identifiants manquants
    +ThirdPartyCreatedByEmailCollector=Tiers créé par le collecteur de courrier électronique à partir de l'identifiant de courrier électronique ID %s
    +ContactCreatedByEmailCollector=Contact/adresse créé par le collecteur de courrier électronique à partir de l'identifiant de courrier électronique ID %s
    +ProjectCreatedByEmailCollector=Projet créé par le collecteur de courrier électronique à partir du courrier électronique ID %s
     
     ##### Export #####
     ExportsArea=Espace exports
    @@ -249,5 +262,7 @@ WebsiteSetup=Configuration du module Sites webs
     WEBSITE_PAGEURL=URL de la page
     WEBSITE_TITLE=Titre
     WEBSITE_DESCRIPTION=Description
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Chemin relatif du média image. Vous pouvez garder ce champ vide car il est rarement utilisé (cela peut être utilisé par du contenu dynamique pour afficher un aperçu de page de type "blog_post").
     WEBSITE_KEYWORDS=Mots clés
     LinesToImport=Lignes à importer
    diff --git a/htdocs/langs/fr_FR/paybox.lang b/htdocs/langs/fr_FR/paybox.lang
    index d2b313cc81c..a1071a91622 100644
    --- a/htdocs/langs/fr_FR/paybox.lang
    +++ b/htdocs/langs/fr_FR/paybox.lang
    @@ -20,8 +20,9 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL offrant une interface de paiement en l
     ToOfferALinkForOnlinePaymentOnContractLine=URL offrant une interface de paiement en ligne %s sur la base du montant d'une ligne de contrat
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL offrant une interface de paiement en ligne %s pour un montant libre
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL offrant une interface de paiement en ligne %s sur la base d'une cotisation d'adhérent
    +ToOfferALinkForOnlinePaymentOnDonation=URL permettant de proposer une interface utilisateur de paiement en ligne %s pour le paiement de dons
     YouCanAddTagOnUrl=Vous pouvez de plus ajouter le paramètre URL <b>&tag=<i>value</i></b> à n'importe quelles de ces URL (obligatoire pour le paiement libre uniquement) pour ajouter votre propre "code commentaire" du paiement.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Configurez votre URL PayBox à <b>%s</b> pour avoir le paiement créé automatiquement si validé.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Configurez votre URL PayBox à <b>%s</b> pour avoir le paiement créé automatiquement si validé par Paybox.
     YourPaymentHasBeenRecorded=Cette page confirme que votre paiement a bien été enregistré. Merci.
     YourPaymentHasNotBeenRecorded=Votre paiement n'a PAS été enregistré et la transaction a été annulée. Merci.
     AccountParameter=Paramètres du compte
    diff --git a/htdocs/langs/fr_FR/paypal.lang b/htdocs/langs/fr_FR/paypal.lang
    index 7177b1684fe..2d94ef5c1ff 100644
    --- a/htdocs/langs/fr_FR/paypal.lang
    +++ b/htdocs/langs/fr_FR/paypal.lang
    @@ -1,6 +1,6 @@
     # Dolibarr language file - Source file is en_US - paypal
     PaypalSetup=Configuration module PayPal
    -PaypalDesc=Ce module permet d'offrir une page de paiement via le prestataire <a href="http://www.paypal.com" target="_blank">Paypal</a> pour réaliser un paiement quelconque ou un paiement par rapport à un objet Dolibarr (facture, commande…)
    +PaypalDesc=Ce module permet d'offrir aux clients une page de paiement via le prestataire <a href="http://www.paypal.com" target="_blank">Paypal</a>. Ceci peut être utiliser pour réaliser un paiement quelconque ou un paiement par rapport à un objet Dolibarr particulier (facture, commande…)
     PaypalOrCBDoPayment=Payer avec Paypal (Carte de crédit ou Paypal)
     PaypalDoPayment=Payer par PayPal
     PAYPAL_API_SANDBOX=Mode test/bac à sable (sandbox)
    @@ -11,10 +11,9 @@ PAYPAL_SSLVERSION=Curl Version SSL
     PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Proposer le paiement intégral (Carte+Paypal) ou Paypal seul
     PaypalModeIntegral=Intégral
     PaypalModeOnlyPaypal=PayPal seul
    -ONLINE_PAYMENT_CSS_URL=URL optionnelle de la feuille de style CSS sur la page de paiement en ligne
    +ONLINE_PAYMENT_CSS_URL=URL facultative de la feuille de style CSS sur la page de paiement en ligne
     ThisIsTransactionId=Voici l'identifiant de la transaction: <b>%s</b>
     PAYPAL_ADD_PAYMENT_URL=Ajouter l'URL de paiement Paypal lors de l'envoi d'un document par email
    -YouAreCurrentlyInSandboxMode=Vous travaillez actuellement dans le mode "bac à sable" de %s
     NewOnlinePaymentReceived=Nouveau paiement en ligne reçu
     NewOnlinePaymentFailed=Nouvelle tentative de paiement en ligne échouée
     ONLINE_PAYMENT_SENDEMAIL=Email à prévenir en cas de paiement (succès ou non)
    @@ -28,7 +27,8 @@ ShortErrorMessage=Message d'erreur court
     ErrorCode=Code erreur
     ErrorSeverityCode=Code d'erreur sévérité
     OnlinePaymentSystem=Système de paiement en ligne
    -PaypalLiveEnabled=Paypal live activé (sinon mode test/bac à sable)
    -PaypalImportPayment=Importer paiements Paypal
    +PaypalLiveEnabled=PayPal live activé (sinon test / mode sandbox)
    +PaypalImportPayment=Importer des paiements PayPal
     PostActionAfterPayment=Actions complémentaires après paiement
     ARollbackWasPerformedOnPostActions=Une annulation a été effectuée sur toutes les actions Post paiement. Vous devez compléter les actions complémentaires manuellement si elles sont nécessaires.
    +ValidationOfPaymentFailed=La validation du paiement a échoué
    diff --git a/htdocs/langs/fr_FR/printing.lang b/htdocs/langs/fr_FR/printing.lang
    index 62cad4af2c5..e93ce936de1 100644
    --- a/htdocs/langs/fr_FR/printing.lang
    +++ b/htdocs/langs/fr_FR/printing.lang
    @@ -2,7 +2,7 @@
     Module64000Name=Impressions Directe
     Module64000Desc=Activer le système d'impression Directe
     PrintingSetup=Réglages du module Impression Directe
    -PrintingDesc=Ce module ajoute un bouton Imprimer afin d'envoyer directement les documents à une imprimante (sans ouvrir le document dans une application).
    +PrintingDesc=Ce module ajoute un bouton Imprimer à différents modules pour permettre aux documents d'être imprimés directement sur une imprimante sans avoir à ouvrir le document dans une autre application.
     MenuDirectPrinting=Travaux d'impressions directe
     DirectPrint=Impressions Directe
     PrintingDriverDesc=Paramètres de configuration pour le driver d'impression
    @@ -19,7 +19,7 @@ UserConf=Configuration par utilisateur
     PRINTGCP_INFO=Configuration Google OAuth API
     PRINTGCP_AUTHLINK=Authentification
     PRINTGCP_TOKEN_ACCESS=Token OAuth Google Cloud Impression
    -PrintGCPDesc=Ce driver permet d'envoyer des documents directement à l'imprimante via Google Cloud Print
    +PrintGCPDesc=Ce pilote permet d'envoyer des documents directement à une imprimante à l'aide de Google Cloud Print.
     GCP_Name=Nom
     GCP_displayName=Nom affiché
     GCP_Id=Id imprimante
    @@ -27,7 +27,7 @@ GCP_OwnerName=Nom propriétaire
     GCP_State=Etat imprimante
     GCP_connectionStatus=Etats en ligne
     GCP_Type=Type d'imprimante
    -PrintIPPDesc=Ce driver permet d'envoyer les documents directement à une imprimante. Il requiert un système Linux avec CUPS installé. 
    +PrintIPPDesc=Ce pilote permet d’envoyer des documents directement à une imprimante. Il nécessite un système Linux avec CUPS installé.
     PRINTIPP_HOST=Serveur d'impression
     PRINTIPP_PORT=Port
     PRINTIPP_USER=Identifiant
    diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang
    index 362f065043a..571376ebeb0 100644
    --- a/htdocs/langs/fr_FR/products.lang
    +++ b/htdocs/langs/fr_FR/products.lang
    @@ -17,7 +17,7 @@ Reference=Référence
     NewProduct=Nouveau produit
     NewService=Nouveau service
     ProductVatMassChange=Changement TVA en masse
    -ProductVatMassChangeDesc=Cette page permet de modifier les taux de TVA définis sur les produits ou services d'une valeur vers une autre. Attention, la modification est réalisée en masse sur toute la base de donnée.
    +ProductVatMassChangeDesc=Cette page peut être utilisée pour modifier un taux de TVA défini sur des produits ou services d’une valeur à une autre. Attention, cette modification est globale / effectuée sur toutes les bases.
     MassBarcodeInit=Initialisation codes-barre
     MassBarcodeInitDesc=Cette page peut être utilisée pour initialiser un code-barre sur des objets qui ne disposent pas de code-barre défini. Vérifiez avant que l'installation du module code-barres est complète.
     ProductAccountancyBuyCode=Code comptable (achat)
    @@ -97,8 +97,8 @@ NoteNotVisibleOnBill=Note (non visible sur les factures, propals...)
     ServiceLimitedDuration=Si produit de type service à durée limitée :
     MultiPricesAbility=Plusieurs niveaux de prix par produit/service (chaque client est dans un et un seul niveau)
     MultiPricesNumPrices=Nombre de prix
    -AssociatedProductsAbility=Prise en charge des produits virtuels
    -AssociatedProducts=Produit virtuel
    +AssociatedProductsAbility=Activer des produits virtuels (kits)
    +AssociatedProducts=Produits virtuels
     AssociatedProductsNumber=Nbre de sous-produits constituant ce produit virtuel
     ParentProductsNumber=Nbre de produits virtuels/packages parent
     ParentProducts=Produits parents
    @@ -134,7 +134,7 @@ PredefinedServicesToSell=Services prédéfinis en vente
     PredefinedProductsAndServicesToSell=Produits/Services prédéfinis en vente
     PredefinedProductsToPurchase=Produits prédéfinis à acheter
     PredefinedServicesToPurchase=Services prédéfinis à acheter
    -PredefinedProductsAndServicesToPurchase=Produits/services prédéfinis à acheter
    +PredefinedProductsAndServicesToPurchase=Produits / services prédéfinis à l'achat
     NotPredefinedProducts=Pas de produit/service prédéfini
     GenerateThumb=Générer la vignette
     ServiceNb=Service no %s
    @@ -145,7 +145,7 @@ Finished=Produit manufacturé
     RowMaterial=Matière première
     CloneProduct=Cloner produit/service
     ConfirmCloneProduct=Êtes-vous sûr de vouloir cloner le produit ou service <b>%s</b> ?
    -CloneContentProduct=Cloner les informations générales du produit/service
    +CloneContentProduct=Cloner toutes les informations principales du produit / service
     ClonePricesProduct=Cloner les prix
     CloneCompositionProduct=Cloner le produits packagés
     CloneCombinationsProduct=Cloner les variantes
    @@ -233,7 +233,7 @@ BarCodeDataForThirdparty=Information de code barre du produit %s :
     ResetBarcodeForAllRecords=Définir la valeur de code-barres pour tous les enregistrements (cela réinitialiser également les valeurs de code-barres déjà défini par des nouvelles)
     PriceByCustomer=Prix différents pour chaque client
     PriceCatalogue=Un seul prix de vente par produit/service
    -PricingRule=Règles pour les prix clients
    +PricingRule=Règles de vente
     AddCustomerPrice=Ajouter prix par client
     ForceUpdateChildPriceSoc=Définir le même prix sur les filiales des clients
     PriceByCustomerLog=Historique des prix clients précédents
    @@ -281,7 +281,7 @@ ProductsOrServicesTranslations=Traduction des produits ou des services
     TranslatedLabel=Titre traduit
     TranslatedDescription=Description traduite
     TranslatedNote=Notes traduites
    -ProductWeight=Poids pour 1 articlejavascript:;
    +ProductWeight=Poids pour 1 article
     ProductVolume=Volume pour 1 article
     WeightUnits=Unité de poids
     VolumeUnits=Unité de volume
    @@ -293,7 +293,8 @@ ProductSheet=Fiche produit
     ServiceSheet=Fiche service
     PossibleValues=Valeurs possibles
     GoOnMenuToCreateVairants=Allez sur le menu %s - %s pour ajouter les attributs de variantes (comme les couleurs, tailles, ...)
    -
    +UseProductFournDesc=Utiliser les descriptions des produits des fournisseurs dans les documents fournisseurs
    +ProductSupplierDescription=Description du fournisseur du produit
     #Attributes
     VariantAttributes=Attributs de variante
     ProductAttributes=Attributs de variantes pour les produits
    @@ -329,6 +330,8 @@ NbOfDifferentValues=Nb de valeurs différentes
     NbProducts=Nb de produits
     ParentProduct=Produit parent
     HideChildProducts=Cacher les variantes de produits
    +ShowChildProducts=Afficher les variantes de produits
    +NoEditVariants=Accédez à la fiche produit parent et modifiez l'impact sur le prix des variantes dans l'onglet variantes.
     ConfirmCloneProductCombinations=Êtes-vous sur de vouloir copier les variantes du produits vers l'autre  produit parent avec la référence donnée ?
     CloneDestinationReference=Référence du produit cible
     ErrorCopyProductCombinations=Une erreur s'est produite lors de la copie des variantes de produit
    diff --git a/htdocs/langs/fr_FR/projects.lang b/htdocs/langs/fr_FR/projects.lang
    index de8da715e19..f364b6410dd 100644
    --- a/htdocs/langs/fr_FR/projects.lang
    +++ b/htdocs/langs/fr_FR/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Êtes-vous sûr de vouloir supprimer ce projet ?
     ConfirmDeleteATask=Êtes-vous sûr de vouloir supprimer cette tâche ?
     OpenedProjects=Projets ouverts
     OpenedTasks=Tâches ouvertes
    -OpportunitiesStatusForOpenedProjects=Montant des opportunités des projets ouverts par statut
    -OpportunitiesStatusForProjects=Montant des opportunités des projets par statut
    +OpportunitiesStatusForOpenedProjects=Montant des opportunités ouvertes par statut
    +OpportunitiesStatusForProjects=Montant des opportunités par statut
     ShowProject=Afficher projet
     ShowTask=Afficher tâche
     SetProject=Définir projet
     NoProject=Aucun projet défini ou responsable
     NbOfProjects=Nombre de projets
    -NbOfTasks=Nb de tâches
    +NbOfTasks=Nombre de tâches
     TimeSpent=Temps consommé
     TimeSpentByYou=Temps consommé par vous
     TimeSpentByUser=Temps consommé par utilisateur
    @@ -86,11 +86,12 @@ ListPredefinedInvoicesAssociatedProject=Liste des modèles de facture client ass
     ListSupplierOrdersAssociatedProject=Liste des commandes fournisseurs associées au projet
     ListSupplierInvoicesAssociatedProject=Liste des factures fournisseurs associées au projet
     ListContractAssociatedProject=Liste des contrats associés au projet
    -ListShippingAssociatedProject=Liste des expéditions associées avec le projet
    +ListShippingAssociatedProject=Liste des expéditions associées au projet
     ListFichinterAssociatedProject=Liste des interventions associées au projet
    -ListExpenseReportsAssociatedProject=Liste des notes de frais associées avec ce projet
    +ListExpenseReportsAssociatedProject=Liste des notes de frais associées au projet
     ListDonationsAssociatedProject=Liste des dons associés au projet
    -ListVariousPaymentsAssociatedProject=Liste des frais divers liés au projet
    +ListVariousPaymentsAssociatedProject=Liste des paiements divers liés au projet
    +ListSalariesAssociatedProject=Liste des paiements de salaires liés au projet
     ListActionsAssociatedProject=Liste des événements associés au projet
     ListTaskTimeUserProject=Liste du temps consommé sur les tâches d'un projet
     ListTaskTimeForTask=Liste du temps consommé sur les tâches
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Liés à autre société
     TaskIsNotAssignedToUser=Tâche non assignée à l'utilisateur. Utilisez le bouton '<strong>%s</strong>'  pour assigner la tâche maintenant.
     ErrorTimeSpentIsEmpty=Le temps consommé n'est pas renseigné
     ThisWillAlsoRemoveTasks=Cette opération détruira également les tâches du projet (<b>%s</b> tâches actuellement) et le suivi des consommés.
    -IfNeedToUseOhterObjectKeepEmpty=Si des objets (facture, commande, ...), appartenant à un autre tiers que celui choisi, doivent être liés au projet à créer, laisser vide afin de laisser le projet multi-tiers.
    +IfNeedToUseOtherObjectKeepEmpty=Si des objets (facture, commande, ...), appartenant à un autre tiers que celui choisi, doivent être liés au projet à créer, laisser vide afin de laisser le projet multi-tiers.
     CloneProject=Cloner le projet
     CloneTasks=Cloner les tâches
     CloneContacts=Cloner les contacts
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributeur
     SelectElement=Séléctionnez l'élément
     AddElement=Associer l'élément
     # Documents models
    -DocumentModelBeluga=Modèle de document de rapport pour l'aperçu projet
    -DocumentModelBaleine=Modèles de document de rapport de tâches de projets
    +DocumentModelBeluga=Modèle de document project pour l'aperçu des objets liées
    +DocumentModelBaleine=Modèle de document de projet pour les tâches
    +DocumentModelTimeSpent=Modèle de rapport de projet pour le temps passé
     PlannedWorkload=Charge de travail prévue
     PlannedWorkloadShort=Charge de travail
     ProjectReferers=Objets associés
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projets avec cet utilisateur comme contact
     TasksWithThisUserAsContact=Tâches assignées à cet utilisateur
     ResourceNotAssignedToProject=Non assigné au projet
     ResourceNotAssignedToTheTask=Non assigné à la tache
    +NoUserAssignedToTheProject=Aucun utilisateur assigné à ce projet
     TimeSpentBy=Temps consommé par
     TasksAssignedTo=Tâches assignées à
     AssignTaskToMe=M'assigner la tâche
    @@ -189,13 +192,13 @@ AssignTaskToUser=Assigner tâche à %s
     SelectTaskToAssign=Sélectionnez la tâche à assigner
     AssignTask=Assigner
     ProjectOverview=Vue d'ensemble
    -ManageTasks=Utiliser les projets pour suivre les tâches
    +ManageTasks=Utiliser les projets pour suivre les tâches et/ou saisir du temps consommé (feuilles de temps)
     ManageOpportunitiesStatus=Utiliser les projets pour suivre les affaires / opportunités
     ProjectNbProjectByMonth=Nb de projets créés par mois
    -ProjectNbTaskByMonth=Nb de tâches créées par mois
    +ProjectNbTaskByMonth=Nombre de tâches créées par mois
     ProjectOppAmountOfProjectsByMonth=Montant des opportunités par mois
     ProjectWeightedOppAmountOfProjectsByMonth=Montant pondéré des opportunités par mois
    -ProjectOpenedProjectByOppStatus=Opportunités/affaires ouvertes par statut
    +ProjectOpenedProjectByOppStatus=Opportunités ouvertes par statut d'opportunité
     ProjectsStatistics=Statistics sur les projets
     TasksStatistics=Statistiques sur le projet/tâche principale
     TaskAssignedToEnterTime=Tâche assignée. La saisie de temps sur cette tâche devrait être possible.
    @@ -204,6 +207,7 @@ YouCanCompleteRef=SI vous souhaitez compléter la référence avec d'autres info
     OpenedProjectsByThirdparties=Projets ouverts par tiers
     OnlyOpportunitiesShort=Opportunités uniquement
     OpenedOpportunitiesShort=Opportunités ouvertes
    +NotOpenedOpportunitiesShort=Pas d'opportunité ouverte
     NotAnOpportunityShort=Non une opportunité
     OpportunityTotalAmount=Montant total des opportunités
     OpportunityPonderatedAmount=Montant pondéré des opportunités
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=Vous n'êtes pas autorisé à fermer le projet
     DontHaveTheValidateStatus=Le projet %s doit être ouvert pour être fermé
     RecordsClosed=%s projet(s) fermé(s)
     SendProjectRef=A propos du projet %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Le module 'Paiement des salaires des employés' doit être activé pour définir le taux horaire des employés afin de valoriser le temps passé
    +NewTaskRefSuggested=Réf de tâche déjà utilisée, une nouvelle réference de tâche est suggérée
    diff --git a/htdocs/langs/fr_FR/propal.lang b/htdocs/langs/fr_FR/propal.lang
    index a575824fc72..9dffafa301b 100644
    --- a/htdocs/langs/fr_FR/propal.lang
    +++ b/htdocs/langs/fr_FR/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signée (à facturer)
     PropalStatusNotSigned=Non signée (fermée)
     PropalStatusBilled=Facturée
     PropalStatusDraftShort=Brouillon
    -PropalStatusValidatedShort=Validée (ouverte)
    +PropalStatusValidatedShort=Validé (ouvert)
     PropalStatusClosedShort=Fermée
     PropalStatusSignedShort=Signée
     PropalStatusNotSignedShort=Non signée
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propale %s inexistante
     AddToDraftProposals=Ajouter à proposition brouillon
     NoDraftProposals=Pas de propositions brouillons
     CopyPropalFrom=Créer proposition/devis par recopie d'un proposition existante
    -CreateEmptyPropal=Créer proposition/devis vierge
    +CreateEmptyPropal=Créer proposition/devis vierge ou avec la liste des produits/services
     DefaultProposalDurationValidity=Délai de validité par défaut (en jours)
    -UseCustomerContactAsPropalRecipientIfExist=Utiliser l'adresse de contact suivi client si définie plutôt que l'adresse du tiers comme destinataire des propositions
    +UseCustomerContactAsPropalRecipientIfExist=Utiliser l'adresse de 'contact suivi client' si définie plutôt que l'adresse du tiers comme destinataire des propositions
     ClonePropal=Cloner proposition commerciale
     ConfirmClonePropal=Êtes-vous sûr de vouloir cloner la proposition commerciale <b>%s</b> ?
     ConfirmReOpenProp=Êtes-vous sûr de vouloir réouvrir la proposition commerciale <b>%s</b> ?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Contact client suivi proposition
     TypeContact_propal_external_SHIPPING=Contact client pour la livraison
     # Document models
     DocModelAzurDescription=Modèle de proposition commerciale complet (logo…)
    +DocModelCyanDescription=Modèle de proposition commerciale complet (logo…)
     DefaultModelPropalCreate=Modèle par défaut à la création
     DefaultModelPropalToBill=Modèle par défaut lors de la clôture d'une proposition commerciale (à facturer)
     DefaultModelPropalClosed=Modèle par défaut lors de la clôture d'une proposition commerciale (non facturée)
    diff --git a/htdocs/langs/fr_FR/receiptprinter.lang b/htdocs/langs/fr_FR/receiptprinter.lang
    index 7335498a955..0e77bb91371 100644
    --- a/htdocs/langs/fr_FR/receiptprinter.lang
    +++ b/htdocs/langs/fr_FR/receiptprinter.lang
    @@ -17,7 +17,7 @@ CONNECTOR_FILE_PRINT=Imprimante locale
     CONNECTOR_WINDOWS_PRINT=Imprimante Windows local
     CONNECTOR_DUMMY_HELP=Fausse imprimante pour le test, ne fait rien
     CONNECTOR_NETWORK_PRINT_HELP=10.x.x.x:9100
    -CONNECTOR_FILE_PRINT_HELP=/ dev / usb / lp0, / dev / usb / lp1
    +CONNECTOR_FILE_PRINT_HELP=/dev/usb/lp0, /dev/usb/lp1
     CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb://FooUser:secret@computername/workgroup/Receipt Printer
     PROFILE_DEFAULT=Profil par défatut
     PROFILE_SIMPLE=Profil standard
    diff --git a/htdocs/langs/fr_FR/receptions.lang b/htdocs/langs/fr_FR/receptions.lang
    new file mode 100644
    index 00000000000..8e766344d94
    --- /dev/null
    +++ b/htdocs/langs/fr_FR/receptions.lang
    @@ -0,0 +1,83 @@
    +# Dolibarr language file - Source file is en_US - receptions
    +RefReception=Réf. réception
    +Reception=Réception
    +reception=Réception
    +reception_line=Ligne de réception
    +Receptions=Réceptions
    +AllReceptions=Toutes les réceptions
    +Reception=Réception
    +Receptions=Réceptions
    +ShowReception=Afficher Réceptions
    +Receivings=Bons de réceptions
    +ReceptionsArea=Espace réceptions
    +ListOfReceptions=Liste des réceptions
    +ReceptionMethod=Mode de transport
    +LastReceptions=Les %s dernières réceptions
    +StatisticsOfReceptions=Statistiques des réceptions
    +NbOfReceptions=Nombre de réceptions
    +NumberOfReceptionsByMonth=Nombre de réceptions par mois
    +ReceptionCard=Fiche réception
    +NewReception=Nouvelle réception
    +CreateReception=Créer réception
    +QtyShipped=Qté. expédiée
    +QtyPreparedOrShipped=Quantité préparée ou envoyée
    +QtyToReceive=Qté. à recevoir
    +QtyReceived=Qté. reçue
    +QtyInOtherReceptions=Qté dans les autres réceptions
    +KeepToShip=Reste à expédier
    +OtherReceptionsForSameOrder=Autres réceptions pour cette commande
    +ReceptionsAndReceivingForSameOrder=Réceptions et réceptions pour cette commande
    +ReceptionsToValidate=Réceptions à valider
    +StatusReceptionCanceled=Annulée
    +StatusReceptionDraft=Brouillon
    +StatusReceptionValidated=Validée
    +StatusReceptionProcessed=Traitée
    +StatusReceptionDraftShort=Brouillon
    +StatusReceptionValidatedShort=Validée
    +StatusReceptionProcessedShort=Traitée
    +ReceptionSheet=Fiche réception
    +ConfirmDeleteReception=Êtes-vous sûr de vouloir supprimer cette réception ?
    +ConfirmValidateReception=Êtes-vous sûr de vouloir valider cette réception sous la référence <b>%s</b>?
    +ConfirmCancelReception=Êtes-vous sûr de vouloir annuler cette réception ?
    +DocumentModelMerou=Modèle Merou A5
    +WarningNoQtyLeftToSend=Alerte, aucun produit en attente de réception.
    +StatsOnReceptionsOnlyValidated=Statistiques effectuées sur les réceptions validées uniquement. La date prise en compte est la date de validation (la date de prévision de livraison n'étant pas toujours renseignée).
    +DateDeliveryPlanned=Date prévue de livraison
    +RefDeliveryReceipt=Ref bon de réception
    +StatusReceipt=Status du bon de réception
    +DateReceived=Date de réception réelle
    +SendReceptionByEMail=Envoyer bon de réception par email
    +SendReceptionRef=Envoi du bordereau de réception %s
    +ActionsOnReception=Événements sur l'réception
    +LinkToTrackYourPackage=Lien pour le suivi de votre colis
    +ReceptionCreationIsDoneFromOrder=Pour le moment, la création d'une nouvelle réception se fait depuis la fiche commande fournisseur.
    +ReceptionLine=Ligne de réception
    +RefSupplierOrder=Ref. Commande fournisseur
    +ProductQtyInCustomersOrdersRunning=Quantité de produit en commandes client ouvertes
    +ProductQtyInSuppliersOrdersRunning=Quantité de produit en commandes fournisseur ouvertes
    +ProductQtyInReceptionAlreadySent=Quantité de produit en commande client ouverte déjà expédiée
    +ProductQtyInSuppliersReceptionAlreadyRecevied=Quantité de produit déjà reçu en commandes fournisseur ouvertes
    +NoProductToShipFoundIntoStock=Aucun produit à expédier n'a été trouver dans l'entrepôt <b>%s</b>. Corrigez l'inventaire ou retourner choisir un autre entrepôt.
    +WeightVolShort=Poids/vol.
    +ValidateOrderFirstBeforeReception=Vous devez d'abord valider la commande pour pouvoir créer une réception.
    +CreateInvoiceForThisSupplier=Facturer réceptions
    +ErrorRefAlreadyExists = La référence fournisseur existe déjà
    +
    +# Reception methods
    +# ModelDocument
    +DocumentModelTyphon=Modèle de bon de réception/livraison complet (logo…)
    +Error_EXPEDITION_ADDON_NUMBER_NotDefined=Constante EXPEDITION_ADDON_NUMBER non définie
    +SumOfProductVolumes=Somme des volumes des produits
    +SumOfProductWeights=Somme des poids des produits
    +
    +# warehouse details
    +DetailWarehouseNumber= Détail de l'entrepôt
    +DetailWarehouseFormat= W:%s (Qté : %d)
    +
    +Billed=Facturé
    +ClassifyUnbilled=Classer non facturé
    +
    +DateInvoice=Date de facturation
    +CreateOneBillByThird=Créer une facture par tiers (sinon une par réception)
    +ValidateInvoices=Factures validées
    +StatusMustBeValidate=La réception %s doit être au statut 'Validée'
    diff --git a/htdocs/langs/fr_FR/resource.lang b/htdocs/langs/fr_FR/resource.lang
    index 05c91f0432a..be7547b36da 100644
    --- a/htdocs/langs/fr_FR/resource.lang
    +++ b/htdocs/langs/fr_FR/resource.lang
    @@ -5,7 +5,7 @@ DeleteResource=Effacer ressource
     ConfirmDeleteResourceElement=Confirmer la suppression de cette ressource ?
     NoResourceInDatabase=Pas de ressource en base
     NoResourceLinked=Aucune ressource liée
    -
    +ActionsOnResource=Événements liés à cette ressource
     ResourcePageIndex=Liste des ressources
     ResourceSingular=Resource
     ResourceCard=Fiche
    diff --git a/htdocs/langs/fr_FR/salaries.lang b/htdocs/langs/fr_FR/salaries.lang
    index 6e36ddca890..ac9510d110f 100644
    --- a/htdocs/langs/fr_FR/salaries.lang
    +++ b/htdocs/langs/fr_FR/salaries.lang
    @@ -1,10 +1,11 @@
     # Dolibarr language file - Source file is en_US - salaries
     SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable utilisé pour les utilisateurs
    -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Le compte comptable défini sur la carte utilisateur sera utilisé uniquement pour la comptabilité auxiliaire. Celui-ci sera utilisé pour le grand livre et comme valeur par défaut de la comptabilité auxiliaire si le compte dédié de l'utilisateur n'est pas défini.
    +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Le compte de comptabilité dédié défini sur la carte d’utilisateur sera utilisé pour la comptabilité Subledger uniquement. Celui-ci sera utilisé pour le grand livre et comme valeur par défaut de la comptabilité Subledger si le compte de comptabilité utilisateur dédié sur utilisateur n'est pas défini.
     SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable par défaut pour les paiements de salaires
     Salary=Salaire
     Salaries=Salaires
     NewSalaryPayment=Nouveau règlement de salaire
    +AddSalaryPayment=Ajouter un paiement de salaire
     SalaryPayment=Règlement salaire
     SalariesPayments=Règlements des salaires
     ShowSalaryPayment=Afficher règlement de salaire
    @@ -15,4 +16,4 @@ THMDescription=Cette valeur peut être utilisé pour calculer le coût horaire c
     TJMDescription=Cette valeur est actuellement seulement une information et n'est utilisé pour aucun calcul
     LastSalaries=Les %s derniers règlements de salaires
     AllSalaries=Tous les règlements de salaires
    -SalariesStatistics=Statistiques salaires
    +SalariesStatistics=Statistiques salariales
    diff --git a/htdocs/langs/fr_FR/stocks.lang b/htdocs/langs/fr_FR/stocks.lang
    index 5898f7384e5..f78ab3deb87 100644
    --- a/htdocs/langs/fr_FR/stocks.lang
    +++ b/htdocs/langs/fr_FR/stocks.lang
    @@ -44,7 +44,6 @@ TransferStock=Transférer stock
     MassStockTransferShort=Transfert stock en masse
     StockMovement=Mouvement de stock
     StockMovements=Mouvements de stock
    -LabelMovement=Libellé du mouvement
     NumberOfUnit=Nombre de pièces
     UnitPurchaseValue=Prix d'achat unitaire
     StockTooLow=Stock insuffisant
    @@ -55,20 +54,22 @@ PMPValueShort=PMP
     EnhancedValueOfWarehouses=Valorisation des stocks
     UserWarehouseAutoCreate=Créer automatiquement un stock/entrepôt propre à l'utilisateur lors de sa création
     AllowAddLimitStockByWarehouse=Autoriser l'ajout d'une limite et d'un stock désiré par produit et entrepôt à la place de produit seul
    -IndependantSubProductStock=Le stock du produit et le stock des sous-produits sont indépendant
    +IndependantSubProductStock=Le stock de produits et le stock de sous-produits sont indépendants
     QtyDispatched=Quantité ventilée
     QtyDispatchedShort=Qté ventilée
     QtyToDispatchShort=Qté à ventiler
     OrderDispatch=Biens reçus
    -RuleForStockManagementDecrease=Règle de gestion des décrémentations automatiques de stock (la décrémentation manuelle est toujours possible, même si une décrémentation automatique est activée)
    -RuleForStockManagementIncrease=Règle de gestion des incrémentations de stock (l'incrémentation manuelle est toujours possible, même si une incrémentation automatique est activée)
    -DeStockOnBill=Décrémenter les stocks physiques sur validation des factures/avoirs clients
    -DeStockOnValidateOrder=Décrémenterr les stocks physiques sur validation des commandes clients
    -DeStockOnShipment=Décrémenter les stocks physiques sur validation des expéditions
    -DeStockOnShipmentOnClosing=Décrémenter les stocks phisiques au classement "clôturée" de l'expédition
    -ReStockOnBill=Incrémenter les stocks physiques sur validation des factures/avoirs fournisseurs
    -ReStockOnValidateOrder=Incrémenter les stocks physiques sur approbation des commandes fournisseurs
    -ReStockOnDispatchOrder=Incrémenter les stocks physiques sur ventilation manuelle dans les entrepôts, après réception de la marchandise
    +RuleForStockManagementDecrease=Choisissez Règle pour la réduction automatique du stock (la réduction manuelle est toujours possible, même si une règle de diminution automatique est activée).
    +RuleForStockManagementIncrease=Choisissez Règle pour augmentation de stock automatique (une augmentation manuelle est toujours possible, même si une règle d’augmentation automatique est activée)
    +DeStockOnBill=Diminution des stocks réels lors de la validation de la facture client / note de crédit
    +DeStockOnValidateOrder=Diminuer les stocks réels lors de la validation de la commande client
    +DeStockOnShipment=Réduire les stocks physiques sur validation des expéditions
    +DeStockOnShipmentOnClosing=Réduire les stocks physiques au classement "clôturée" de l'expédition
    +ReStockOnBill=Augmenter les stocks réels lors de la validation de la facture fournisseur / de la note de crédit
    +ReStockOnValidateOrder=Augmenter les stocks réels lors de l'approbation des bons de commande
    +ReStockOnDispatchOrder=Augmenter les stocks réels lors de l'expédition manuelle dans l'entrepôt, après la réception de la commande fournisseur
    +StockOnReception=Augmenter les stocks physiques sur validation des réceptions
    +StockOnReceptionOnClosing=Augmenter les stocks réels au classement "clôturée" de la réception
     OrderStatusNotReadyToDispatch=La commande n'a pas encore ou n'a plus un statut permettant une ventilation en stock.
     StockDiffPhysicTeoric=Explication de l'écart stock physique-virtuel
     NoPredefinedProductToDispatch=Pas de produits prédéfinis dans cet objet. Aucune ventilation en stock n'est donc à faire.
    @@ -130,10 +131,11 @@ RecordMovement=Enregistrer transfert
     ReceivingForSameOrder=Réceptions pour cette commande
     StockMovementRecorded=Mouvement de stocks enregistré
     RuleForStockAvailability=Règles d'exigence sur les stocks
    -StockMustBeEnoughForInvoice=Le niveau de stock doit être suffisant pour ajouter ce produit/service à la facture (la vérification est faite sur le stock réel lors de l'ajout de la ligne de facture, quelquesoit la règle de modification automatique de stock)
    -StockMustBeEnoughForOrder=Le niveau de stock doit être suffisant pour ajouter ce produit/service à la commande (la vérification est faite sur le stock réel lors de l'ajout de la ligne de commande, quelquesoit la règle de modification automatique de stock)
    -StockMustBeEnoughForShipment= Le niveau de stock doit être suffisant pour ajouter ce produit/service à l'expédition (la vérification est faite sur le stock réel lors de l'ajout de la ligne à l'expédition, quelquesoit la règle de modification automatique de stock)
    +StockMustBeEnoughForInvoice=Le niveau de stock doit être suffisant pour ajouter un produit / service à la facture (le contrôle est effectué sur le stock réel actuel lors de l'ajout d'une ligne dans la facture, quelle que soit la règle de changement de stock automatique).
    +StockMustBeEnoughForOrder=Le niveau de stock doit être suffisant pour ajouter un produit / service à la commande (le contrôle est effectué sur le stock réel actuel lors de l'ajout d'une ligne à la commande, quelle que soit la règle de changement de stock automatique)
    +StockMustBeEnoughForShipment= Le niveau de stock doit être suffisant pour ajouter un produit / service à l'envoi (le contrôle est effectué sur le stock réel actuel lors de l'ajout d'une ligne dans l'envoi, quelle que soit la règle de changement de stock automatique)
     MovementLabel=Libellé du mouvement
    +TypeMovement=Type de mouvement
     DateMovement=Date de mouvement
     InventoryCode=Code mouvement ou inventaire
     IsInPackage=Inclus dans un package
    @@ -172,7 +174,7 @@ inventoryDraft=En service
     inventorySelectWarehouse=Chois de l'entrepôt
     inventoryConfirmCreate=Créer
     inventoryOfWarehouse=Enventaire pour l'entrepôt: %s
    -inventoryErrorQtyAdd=Erreur: une quantité est plus petite que zéro.
    +inventoryErrorQtyAdd=Erreur: une quantité est inférieure à zéro
     inventoryMvtStock=Par inventaire
     inventoryWarningProductAlreadyExists=Ce produit est déjà dans la liste
     SelectCategory=Filtre par catégorie
    @@ -195,12 +197,16 @@ AddInventoryProduct=Ajouter un produit à l'inventaire
     AddProduct=Ajouter
     ApplyPMP=Appliquer PMP
     FlushInventory=Vider l'inventaire
    -ConfirmFlushInventory=Confirmez vous cette action ?
    +ConfirmFlushInventory=Confirmez-vous cette action?
     InventoryFlushed=Inventaire vidé
     ExitEditMode=Quitter l'édition
     inventoryDeleteLine=Effacer ligne
     RegulateStock=Réguler le stock
     ListInventory=Liste
    -StockSupportServices=La gestion des stock s'applique aussi aux services
    +StockSupportServices=La gestion des stocks prend en charge les services
     StockSupportServicesDesc=Par défaut, seul les produits/services de type "produit" peuvent bénéficier d'une gestion de stock. En activant ce paramètre, et si le module Services est activé, la gestion de stock pourra être appliquée aux articles de type "service".
     ReceiveProducts=Recevoir produits
    +StockIncreaseAfterCorrectTransfer=Augmentation par correction/transfert
    +StockDecreaseAfterCorrectTransfer=Diminution par correction/transfert
    +StockIncrease=Augmentation du stock
    +StockDecrease=Diminution du stock
    diff --git a/htdocs/langs/fr_FR/users.lang b/htdocs/langs/fr_FR/users.lang
    index e0f461cd196..2a7b80c5b71 100644
    --- a/htdocs/langs/fr_FR/users.lang
    +++ b/htdocs/langs/fr_FR/users.lang
    @@ -6,7 +6,7 @@ Permission=Droit
     Permissions=Droits
     EditPassword=Modifier mot de passe
     SendNewPassword=Régénérer et envoyer mot de passe
    -SendNewPasswordLink=Envoyer le lien pour réinitialiser le mot de passe
    +SendNewPasswordLink=Réinitialiser le mot de passe
     ReinitPassword=Régénérer mot de passe
     PasswordChangedTo=Mot de passe modifié en: %s
     SubjectNewPassword=Votre mot de passe pour %s
    @@ -66,7 +66,7 @@ CreateDolibarrThirdParty=Créer un tiers
     LoginAccountDisableInDolibarr=Le compte est désactivé sur Dolibarr.
     UsePersonalValue=Utiliser valeur personnalisée
     InternalUser=Utilisateur interne
    -ExportDataset_user_1=Utilisateurs Dolibarr et attributs
    +ExportDataset_user_1=Les utilisateurs et leurs propriétés
     DomainUser=Utilisateur du domaine %s
     Reactivate=Réactiver
     CreateInternalUserDesc=Ce formulaire permet de créer un utilisateur interne à votre société/institution. Pour créer un utilisateur externe (client, fournisseur, ...), utilisez le bouton 'Créer compte utilisateur' qui se trouve sur la fiche du contact du tiers.
    @@ -93,7 +93,7 @@ NameToCreate=Nom du tiers à créer
     YourRole=Vos rôles
     YourQuotaOfUsersIsReached=Votre quota d'utilisateurs actifs est atteint !
     NbOfUsers=Nombre d'utilisateurs
    -NbOfPermissions=Nb d'autorisations
    +NbOfPermissions=Nombre de permissions
     DontDowngradeSuperAdmin=Seul un superadministrateur peut rétrograder un superadministrateur
     HierarchicalResponsible=Responsable hiérarchique
     HierarchicView=Vue hiérarchique
    @@ -108,3 +108,4 @@ UserAccountancyCode=Code comptable de l'utilisateur
     UserLogoff=Déconnexion de l'utilisateur
     UserLogged=Utilisateur connecté
     DateEmployment=Date d'embauche
    +DateEmploymentEnd=Date de fin d'emploi
    diff --git a/htdocs/langs/fr_FR/website.lang b/htdocs/langs/fr_FR/website.lang
    index 1076726c110..55c9df5d9b8 100644
    --- a/htdocs/langs/fr_FR/website.lang
    +++ b/htdocs/langs/fr_FR/website.lang
    @@ -1,9 +1,9 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Créer ici autant d'entrée que de nombre différents de sites web que nécessaire.\nEnsuite, aller dans le menu Sites Web pour les éditer.
    +WebsiteSetupDesc=Créez ici les sites Web que vous souhaitez utiliser. Ensuite, allez dans le menu Sites Web pour les éditer.
     DeleteWebsite=Effacer site web
     ConfirmDeleteWebsite=Êtes-vous sûr de vouloir supprimer ce site web. Toutes les pages et le contenu seront également supprimés.
    -WEBSITE_TYPE_CONTAINER=Type de page / conteneur
    +WEBSITE_TYPE_CONTAINER=Type de page / container
     WEBSITE_PAGE_EXAMPLE=Page Web à utiliser comme exemple
     WEBSITE_PAGENAME=Nom/alias de la page
     WEBSITE_ALIASALT=Noms de page / alias alternatifs
    @@ -16,29 +16,31 @@ WEBSITE_ROBOT=Fichier robot (robots.txt)
     WEBSITE_HTACCESS=Fichier .htaccess du site web
     HtmlHeaderPage=En-tête HTML (spécifique pour la page uniquement)
     PageNameAliasHelp=Nom ou alias de la page. <br>Cet alias est également utilisé pour forger une URL SEO lorsque le site Web est exécuté à partir d'un hôte virtuel d'un serveur Web (comme Apache, Nginx, ...). Utilisez le bouton "<strong>%s</strong>" pour modifier cet alias.
    -EditTheWebSiteForACommonHeader=Remarque: Si vous souhaitez définir un en-tête personnalisé pour toutes les pages, modifiez l'en-tête au niveau du site plutôt qu'au niveau page/conteneur.
    +EditTheWebSiteForACommonHeader=Remarque: Si vous souhaitez définir un en-tête personnalisé pour toutes les pages, modifiez l'en-tête au niveau du site plutôt qu'au niveau page/container.
     MediaFiles=Répertoire de médias
    -EditCss=Editer  l'en-tête HTML ou Style/CSS
    +EditCss=Propriétés du site web
     EditMenu=Modifier menu
     EditMedias=Editer médias
    -EditPageMeta=Modifier métadonnées
    +EditPageMeta=Propriétés page/container
    +EditInLine=Editer en ligne
     AddWebsite=Ajouter site web
    -Webpage=Page/contenair Web
    -AddPage=Ajouter une page/contenair
    +Webpage=Page/container Web
    +AddPage=Ajouter une page/container
     HomePage=Page d'accueil
    -PageContainer=Page/conteneur
    -PreviewOfSiteNotYetAvailable=La prévisualisation de votre site web <strong>%s</strong> n'est pas disponible actuellement. Vous devez créer une première page.
    +PageContainer=Page/container
    +PreviewOfSiteNotYetAvailable=La prévisualisation de votre site web <strong>%s</strong> n'est pas disponible actuellement. Vous devez d'abord '<strong>Importer un modèle de site web complet</strong>' ou juste '<strong>Ajouter une page/container</strong>.
     RequestedPageHasNoContentYet=La page demandée avec l'id=%s ne présente encore aucun contenu ou le fichier cache .tpl.php a été supprimé. Ajoutez du contenu à la page pour résoudre cela.
    -PageContent=Page/Contenair
    -PageDeleted=Page/Contenair '%s' du site '%s' supprimée
    -PageAdded=Page/Contenair '%s' ajoutée
    +SiteDeleted=Site Web '%s' supprimé
    +PageContent=Page/Container
    +PageDeleted=Page/Container '%s' du site '%s' supprimée
    +PageAdded=Page/Container '%s' ajoutée
     ViewSiteInNewTab=Pré-visualiser le site dans un nouvel onglet
     ViewPageInNewTab=Pré-visualiser la page dans un nouvel onglet
     SetAsHomePage=Définir comme page d'accueil
     RealURL=URL réelle
     ViewWebsiteInProduction=Pré-visualiser le site web en utilisant l'URL de la page d'accueil
    -SetHereVirtualHost=Si vous pouvez créer, sur votre serveur web (Apache, Nginx, ...), un hôte virtuel dédié avec PHP activé et un répertoire racine sur <br> <strong> %s </strong><br> , alors entrez ici le nom de cet hôte virtuel que vous avez créé, de sorte que l'aperçu puisse également être fait en utilisant l'accès direct au serveur Web, et non seulement en utilisant le serveur Dolibarr.
    -YouCanAlsoTestWithPHPS=Sur un environnement de développement, vous pouvez préférer tester le site avec le serveur web PHP intégré (PHP 5.5 requis) en exécutant <br><strong> php -S 0.0.0.0:8080 -t %s </strong>
    +SetHereVirtualHost=<u> Utilisation avec Apache/NGinx/...</u> <br> Si vous pouvez créer sur votre serveur Web (Apache, Nginx, ...) un hôte virtuel dédié avec PHP activé et un répertoire racine sur <br> <strong> %s </strong> <br> alors entrez le nom de l'hôte virtuel que vous avez créé afin que l'aperçu puisse également être fait en utilisant cet accès au serveur Web dédié au lieu d'utiliser uniquement le serveur Dolibarr.
    +YouCanAlsoTestWithPHPS=<u> Utilisation avec un serveur PHP incorporé </u> <br> Sous environnement de développement, vous pouvez préférer tester le site avec le serveur Web PHP intégré (PHP 5.5 requis) en exécutant <br> <strong> php -S 0.0. 0,0: 8080 -t %s </strong>
     CheckVirtualHostPerms=Vérifiez également que le virtual host a la permission <strong> %s </strong> sur les fichiers dans <strong> %s </strong>
     ReadPerm=Lire
     WritePerm=Écrire
    @@ -46,10 +48,11 @@ PreviewSiteServedByWebServer=<u>Prévisualiser %s dans un nouvel onglet.</u><br>
     PreviewSiteServedByDolibarr=<u>Aperçu %s dans un nouvel onglet.</u><br><br>Le %s sera servi par le serveur Dolibarr donc aucun serveur Web supplémentaire (comme Apache, Nginx, IIS) n'est nécessaire.<br>L'inconvénient est que l'URL des pages ne sont pas sexy et commencent par un chemin de votre Dolibarr.<br>URL servie par Dolibarr:<br><strong>%s</strong><br><br>Pour utiliser votre propre serveur web externe pour servir ce site web, créez un virtual host sur vote serveur web qui pointe sur le répertoire<br><strong>%s</strong><br> ensuite entrez le nom de ce virtual host et cliquer sur le bouton d'affichage de l'aperçu.
     VirtualHostUrlNotDefined=URL du virtual host servit par le serveur web externe non défini
     NoPageYet=Pas de page pour l'instant
    +YouCanCreatePageOrImportTemplate=Vous pouvez créer une nouvelle page ou importer un modèle de site Web complet.
     SyntaxHelp=Aide sur quelques astuces spécifiques de syntaxe 
     YouCanEditHtmlSourceckeditor=Vous pouvez éditer le code source en activant l'éditeur HTML avec le bouton "Source".
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span>Vous pouvez inclure du code PHP dans le source en utilisant le tags <strong>&lt;?php ?&gt;</strong>. Les variables globales suivantes sont disponibles: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span>Vous pouvez aussi inclure le contenu d'une autre page/containeur avec la syntaxe suivante:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span>Vous pouvez faire une redirection sur une autre Page/Containeur avec la syntax: <br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span>Pour inclure un <strong>lien pour télécharger</strong> un fichier stocké dans le répertoire documents/ecm (besoin d'être loggué), la syntaxe est:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>Pour un fichier dans documents/mdedias (répertoire ouvert au publique), la syntaxe est:<br><strong>, &lt;a href="/document.php?modulepart=medias&file=[relative_dir]/filename.ext"&gt;.</strong><br>Pour un fichier partagé avec un lien de partage (accès ouvert en utilisant la clé de partage du fichier), la syntaxe est:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span>Pour inclure une <strong>image</strong>stockée dans le répertoire <strong>documents</strong>, utilisez le wrapper <strong>viewimage.php</strong>: Example, pour une image dans documents/medias (accès ouvert), la syntax est:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    -ClonePage=Cloner la page/contenair
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span>Vous pouvez inclure du code PHP dans le source en utilisant le tags <strong>&lt;?php ?&gt;</strong>. Les variables globales suivantes sont disponibles: $conf, $langs, $db, $mysoc, $user, $website, $websitepage, $weblang.<br><br><span class="fa fa-bug"></span>Vous pouvez aussi inclure le contenu d'une autre page/containeur avec la syntaxe suivante:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span>Vous pouvez faire une redirection sur une autre Page/Containeur avec la syntax (Note: N'afficher pas de contenu avant un redirect): <br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span>Pour ajouter un lien vers une autre page, utilisez la syntax <br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span>Pour inclure un <strong>lien pour télécharger</strong> un fichier stocké dans le répertoire <strong>documents</strong>utilisez le wrapper <strong>documents.php</strong>:<br>Example, pour un fichier dans documents/ecm (besoin d'être loggué), la syntaxe est:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>Pour un fichier dans documents/mdedias (répertoire ouvert au publique), la syntaxe est:<br><strong> &lt;a href="/document.php?modulepart=medias&file=[relative_dir]/filename.ext"&gt;.</strong><br>Pour un fichier partagé avec un lien de partage (accès ouvert en utilisant la clé de partage du fichier), la syntaxe est:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span>Pour inclure une <strong>image</strong> stockée dans le répertoire <strong></strong>documents, utilisez le wrapper <strong>viewimage.php</strong>:<br> Example, pour une image dans documents/medias (accès ouvert), la syntax est: <br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +ClonePage=Cloner la page/container
     CloneSite=Cloner le site
     SiteAdded=Site web ajouté
     ConfirmClonePage=Veuillez entrer le code/alias de la nouvelle page et s'il s'agit d'une traduction de la page clonée.
    @@ -57,10 +60,11 @@ PageIsANewTranslation=La nouvelle page est une traduction de la page en cours ?
     LanguageMustNotBeSameThanClonedPage=Vous clonez une page comme traduction. La langue de la nouvelle page doit être différente de la langue de la page source.
     ParentPageId=Id de la page parent
     WebsiteId=ID site web
    -CreateByFetchingExternalPage=Créer une page / un conteneur en récupérant une page à partir d'une URL externe ...
    -OrEnterPageInfoManually=Ou créer une nouvelle page
    +CreateByFetchingExternalPage=Créer une page / un container en récupérant une page à partir d'une URL externe ...
    +OrEnterPageInfoManually=Ou créez une page à partir de rien ou à partir d'un modèle de page ...
     FetchAndCreate=Récupérer et Créer
     ExportSite=Exporter site
    +ImportSite=Importer modèle de site web
     IDOfPage=Id de page
     Banner=Bandeau
     BlogPost=Article de Blog
    @@ -70,11 +74,11 @@ AddWebsiteAccount=Créer un compte sur le site web
     BackToListOfThirdParty=Retour à la liste pour le Tiers
     DisableSiteFirst=Désactiver le site Web d'abord
     MyContainerTitle=Titre de mon site web
    -AnotherContainer=Un autre conteneur
    +AnotherContainer=Un autre container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Activer la table des comptes du site Web
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Activer la table pour stocker les comptes de site Web (login/pass) pour chaque site / tiers
     YouMustDefineTheHomePage=Vous devez d'abord définir la page d'accueil par défaut
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: seule l'édition de source HTML sera possible lorsqu'un contenu de page est initiliasé par aspiration d'une page externe (l'éditeur WYSIWYG ne sera pas disponible)
    +OnlyEditionOfSourceForGrabbedContentFuture=Avertissement: La création d'une page Web en important une page Web externe est réservée à un utilisateur expérimenté. Selon la complexité de la page source, le résultat de l'importation peut différer une fois importé de l'original. De même, si la page source utilise un style CSS commun ou un code JavaScript non compatible, cela peut casser l'apparence ou les fonctionnalités de l'éditeur de site Web lorsque vous travaillez sur cette page. Cette méthode est un moyen plus rapide d’avoir une page, mais il est recommandé de créer votre nouvelle page à partir de rien ou à partir d’un modèle de page suggéré. <br> Notez également que seule l’édition de la source HTML sera possible lorsqu’un contenu de page aura été initialisé par une capture. à partir d'une page externe (l'éditeur "en ligne" ne sera PAS disponible)
     OnlyEditionOfSourceForGrabbedContent=Seule l'édition de source HTML est possible lorsque le contenu a été aspiré depuis un site externe
     GrabImagesInto=Aspirer aussi les images trouvées dans les css et la page.
     ImagesShouldBeSavedInto=Les images doivent être sauvegardées dans le répertoire
    @@ -84,3 +88,8 @@ AliasPageAlreadyExists=L'alias de page <strong> %s </strong> existe déjà
     CorporateHomePage=Page d'accueil Entreprise
     EmptyPage=Page vide
     ExternalURLMustStartWithHttp=l'URL externe doit commencer par http:// ou https://
    +ZipOfWebsitePackageToImport=Fichier zip du package site Web
    +ShowSubcontainers=Inclure contenu dynamique
    +InternalURLOfPage=URL interne de la page
    +ThisPageIsTranslationOf=Cette page / container est la traduction de
    +ThisPageHasTranslationPages=Cette page / container a une traduction
    diff --git a/htdocs/langs/fr_FR/workflow.lang b/htdocs/langs/fr_FR/workflow.lang
    index 154d1aaf3d7..a3dbe4cb07e 100644
    --- a/htdocs/langs/fr_FR/workflow.lang
    +++ b/htdocs/langs/fr_FR/workflow.lang
    @@ -16,5 +16,6 @@ descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classer la commande source à expé
     # Autoclassify supplier order
     descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classer la ou les proposition(s) commerciale(s) fournisseur sources facturées quand une facture fournisseur est validée (et si le montant de la facture est le même que le total des propositions sources liées)
     descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classer la ou les commande(s) fournisseur(s) de source(s) à facturée(s) lorsque la facture fournisseur est validée (et si le montant de la facture est le même que le montant total des commandes liées)
    +descWORKFLOW_BILL_ON_RECEPTION=Classer la/les réception(s) facturée(s) à la validation d'une facture fournisseur 
     AutomaticCreation=Création automatique
     AutomaticClassification=Classification automatique
    diff --git a/htdocs/langs/fr_NC/projects.lang b/htdocs/langs/fr_NC/projects.lang
    index d36e44c7248..6e7cd76333b 100644
    --- a/htdocs/langs/fr_NC/projects.lang
    +++ b/htdocs/langs/fr_NC/projects.lang
    @@ -1,5 +1,4 @@
     # Dolibarr language file - Source file is en_US - projects
     TasksOnOpenedProject=Tâches sur projets ouverts
     NewTimeSpent=Nouveau consommé
    -ListShippingAssociatedProject=Liste des expéditions associées au projet
     TimeAlreadyRecorded=Temps consommé déjà enregistré pour cette tâche/jour et utilisateur %s
    diff --git a/htdocs/langs/he_IL/admin.lang b/htdocs/langs/he_IL/admin.lang
    index f8218cdd733..661a8e43b2a 100644
    --- a/htdocs/langs/he_IL/admin.lang
    +++ b/htdocs/langs/he_IL/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=התפתחות
     VersionUnknown=לא ידוע
     VersionRecommanded=מומלץ
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=הנדלר להציל הפעלות
     SessionSavePath=הפגישה אחסון לוקליזציה
     PurgeSessions=הטיהור של הפעלות
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=שמור המטפל הפגישה מוגדרת ב-PHP שלך לא מאפשרת לרשום את כל המפגשים הפועלות.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=נעל קשרים חדשים
    -ConfirmLockNewSessions=האם אתה בטוח שאתה רוצה להגביל כל קשר חדש Dolibarr לעצמך. <b>%s</b> המשתמש היחיד יוכלו להתחבר אחרי זה.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=הסרת הנעילה חיבור
     YourSession=הפגישה שלך
    -Sessions=משתמשים הפגישה
    +Sessions=Users sessions
     WebUserGroup=שרת אינטרנט המשתמש / קבוצה
    -NoSessionFound=PHP שלך נראה שלא לאפשר לרשימת פגישות פעילים. מדריך להשתמש כדי לשמור פגישות <b>(%s)</b> עשויים להיות מוגנים (למשל, על ידי הרשאות מערכת ההפעלה או על ידי PHP הוראה open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=מאגר המידע charset לאחסון נתונים
     DBSortingCharset=מאגר המידע charset למיין נתונים
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=משתמש חיצוני
     InternalUsers=משתמשים פנימיים
     ExternalUsers=משתמשים חיצוניים
     GUISetup=להציג
    -SetupArea=הגדרת האזור
    +SetupArea=הגדרת
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=טופס לבדוק העלאת קובץ (על פי ההגדרה)
     IfModuleEnabled=הערה: כן, הוא יעיל רק אם <b>%s</b> מודול מופעלת
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=NBR של תווים כדי להפעיל חיפוש: %s
     NotAvailableWhenAjaxDisabled=לא זמין כאשר אייאקס נכים
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=לא זמין תצוגה מקדימה
     ThemeCurrentlyActive=פעיל כרגע הנושא
     CurrentTimeZone=אזור PHP (שרת)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=מרחב
     Table=Table
     Fields=שדות
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=פעיל
     SetupShort=הגדרת
     OtherOptions=אפשרויות אחרות
    -OtherSetup=אחר ההתקנה
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=מפריד עשרוני
     CurrentValueSeparatorThousand=אלף מפריד
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=פרמטר %s
    -LocalisationDolibarrParameters=Localisation פרמטרים
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=אזור זמן PHP שרת
     DaylingSavingTime=שעון קיץ (משתמש)
     CurrentHour=שעה PHP (שרת)
     CurrentSessionTimeOut=ההפעלה הנוכחית פסק זמן
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (שפת הדפדפן)
     FeatureDisabledInDemo=התכונה זמינה ב דמו
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=האלמנטים היחידים של <a href="%s">מודולים המאפשרים</a> מוצגים.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, במקום השוק הרשמי של מודולים Dolibarr ERP / CRM חיצוניות
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=קשר
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=האם כל חנות סיסמאות ברורות במס
     MainDbPasswordFileConfEncrypted=מאגר המידע הסיסמה מוצפן ב conf.php (הופעל מומלץ)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=הגנה על קבצי PDF שנוצרו הופעל (לא מומלץ, שובר את הדור המונית pdf)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=תכונה
     DolibarrLicense=רשיון
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=עבור המשתמש או תיעוד של מפתח (דוק, שאלות ...) <br> תסתכל על ויקי Dolibarr: <br> <a href="%s" target="_blank"><b>%s</b></a>
     ForAnswersSeeForum=אם יש לך שאלות נוספות / עזרה, אתה יכול להשתמש בפורום Dolibarr: <br> <a href="%s" target="_blank"><b>%s</b></a>
    -HelpCenterDesc1=שטח זה יכול לעזור לך לקבל תמיכה ועזרה שירות Dolibarr.
    -HelpCenterDesc2=חלק שירות זה זמינים <b>באנגלית בלבד.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=התפריט הנוכחי מטפל
     MeasuringUnit=יחידת מדידה
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS פורט (כברירת מחדל ב php.ini: <b>%s)</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS מארח (כברירת מחדל ב php.ini: <b>%s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS נמל (לא מוגדר לתוך PHP על מערכות יוניקס כמו)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS מארח (לא מוגדר לתוך PHP על מערכות יוניקס כמו)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= שלח שיטתי מוסתר פחמן עותק של כל הודעות הדוא&quot;ל שנשלחו
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=שיטה להשתמש כדי לשלוח מיילים
    -MAIN_MAIL_SMTPS_ID=SMTP מזהה אם נדרש אימות
    -MAIN_MAIL_SMTPS_PW=SMTP סיסמא אם נדרש אימות
    -MAIN_MAIL_EMAIL_TLS= השתמש ב-TLS (SSL) להצפין
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=הפוך את כל sendings SMS (למטרות בדיקה או הדגמות)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=שיטה להשתמש כדי לשלוח SMS
    -MAIN_MAIL_SMS_FROM=השולח ברירת מחדל מספר הטלפון לשליחת הודעות טקסט
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=תכונה לא זמינה כמו מערכות יוניקס. בדיקת תוכנית sendmail שלך באופן מקומי.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=מודול ההתקנה
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi מודולים כלים
     ModuleFamilyExperimental=הניסוי מודולים
     ModuleFamilyFinancial=מודולים פיננסיים (חשבונאות / משרד האוצר)
     ModuleFamilyECM=ניהול תוכן אלקטרוני (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=תפריט מטפלים
     MenuAdmin=תפריט העורך
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=שלב %s
    -FindPackageFromWebSite=מצא חבילה המספקת התכונה הרצויה (לדוגמה על %s באתר הרשמי של רשת).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr הגרסה הנוכחית
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= עיכוב במטמון בתגובה יצוא שניות (0 או ריק מטמון לא)
     DisableLinkToHelpCenter=הסתרת הקישור <b>&quot;זקוק לעזרה או תמיכה&quot;</b> בעמוד הכניסה
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=אין גלישה אוטומטית, כך שאם הקו הוא מתוך עמוד על מסמכים, כי זמן רב מדי, יש להוסיף את עצמך חוזר המרכבה בתיבת הטקסט.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=מינימום אורך
     LanguageFilesCachedIntoShmopSharedMemory=קבצים. Lang טעון בזיכרון משותף
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=דוגמאות עם ההתקנה הנוכחית פועל
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=רשימה של ספריות ותבניות OpenDocument
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=מספר קבצי תבניות ODT המצויים בספריות אלה
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=דוגמאות תחביר: <br> c: \\ mydir <br> / Home / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> לדעת איך ליצור תבניות ODT המסמכים שלך, לפני אחסונם ספריות אלה, קרא את התיעוד wiki:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=מפתח להשתמש בשירותי אינטרנט (פ
     TestSubmitForm=בדיקת קלט בטופס
     ThisForceAlsoTheme=באמצעות מנהל התפריט ישתמש גם נושא בפני עצמו מה הוא בחירה המשתמש. גם זה מנהל התפריט מיוחדות עבור טלפונים חכמים לא עובד על כל טלפון חכם. שימוש אחר מנהל התפריט אם אתם חווים בעיות שלך.
     ThemeDir=Skins בספרייה
    -ConnectionTimeout=הקשר פסק זמן
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=בתגובה פסק זמן
     SmsTestMessage=מבחן מסר PHONEFROM__ __ ל __ PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=המפתח כתובות מאובטח
    -NoSmsEngine=לא מנהל השולח SMS זמין. מנהל SMS השולח אינם מותקנים כברירת מחדל עם ההפצה (כי הם תלויים בספק חיצוני) אבל אפשר למצוא על http://www.dolistore.com
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=אתה יכול להגדיר כל אפשרויות גלובליות הקשורות לדור PDF
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=חוקי לזייף תיבות כתובת
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=פרמטרים כדי להבטיח את כתובות ה
     SecurityTokenIsUnique=השתמש פרמטר ייחודי securekey עבור כל כתובת אתר
     EnterRefToBuildUrl=הזן התייחסות %s אובייקט
     GetSecuredUrl=לקבל את כתובת האתר מחושב
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=סיסמה
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=משתמשים להקות
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=צדדים שלישיים
    -Module1Desc=חברות ניהול של איש הקשר
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=מסחרי
     Module2Desc=מסחרי וניהול
     Module10Name=חשבונאות
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=הצעות
     Module20Desc=ההצעה המסחרית של ההנהלה
     Module22Name=Mass E-דיוור
    @@ -495,7 +501,7 @@ Module23Desc=מעקב אחר צריכת האנרגיה
     Module25Name=הזמנות של לקוחות
     Module25Desc=כדי לקוחות של ההנהלה
     Module30Name=חשבוניות
    -Module30Desc=חשבוניות וניהול הערת אשראי ללקוחות. חשבונית של ניהול ספקים
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=ספקים
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=המניה של וניהול של מוצרים
     Module53Name=שירותים
     Module53Desc=שירות של ניהול
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=ברקודים
     Module55Desc=ברקוד של ההנהלה
     Module56Name=טלפוניה
     Module56Desc=שילוב טלפוניה
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=שילוב של מערכת ClickToDial (כוכבית, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=הוצאות והערות טיולים
     Module75Desc=הוצאות ניהול נסיעות של הערה
     Module80Name=משלוחים
     Module80Desc=משלוחי וניהול הזמנות של משלוח
    -Module85Name=בבנקים ומזומנים
    +Module85Name=Banks and Cash
     Module85Desc=ניהול חשבונות בנק או במזומן
    -Module100Name=באתר חיצוני
    -Module100Desc=כולל כל אתר אינטרנט חיצוני בתפריטים Dolibarr ולצפות בו למסגרת Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=הדוור וללגום
     Module105Desc=הדוור או SPIP ממשק מודול חבר
     Module200Name=LDAP
    -Module200Desc=במדריך LDAP סינכרון
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke אינטגרציה
     Module240Name=נתוני היצוא
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=נתוני היבוא
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=משתמשים
     Module310Desc=קרן וניהול חברי
     Module320Name=עדכוני RSS
     Module320Desc=הוסף עדכון RSS בתוך דפי Dolibarr מסך
    -Module330Name=הסימניות
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=לוח השנה
     Module410Desc=שילוב לוח השנה
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=תרומות
     Module700Desc=התרומה של ההנהלה
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=גמל שלמה
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=עורך WYSIWYG
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=השתמש באינטרנט בשירות Gravatar (www.gravatar.com) להראות תמונה של משתמשים / חברים (נמצא עם מיילים שלהם). צריך גישה לאינטרנט
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind המרות יכולות
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=רב החברה
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=נקודת מכירות
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=נקודת מכירות
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=לקרוא חשבוניות של לקוחות
    @@ -651,9 +661,9 @@ Permission32=צור / לשנות מוצרים
     Permission34=מחק מוצרים
     Permission36=ראה / ניהול מוצרים מוסתרים
     Permission38=ייצוא מוצרים
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=מחק פרויקטים (פרויקט משותף פרויקטים אני לפנות לקבלת)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=לקרוא התערבויות
     Permission62=צור / לשנות התערבויות
    @@ -686,7 +696,7 @@ Permission109=מחק sendings
     Permission111=לקרוא דוחות כספיים
     Permission112=צור / לשנות / למחוק ולהשוות עסקאות
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=ייצוא עסקאות דפי מצב חשבון
     Permission116=העברות בין חשבונות
     Permission117=ניהול בדיקות שיגרו
    @@ -694,15 +704,15 @@ Permission121=לקרוא לצדדים שלישיים הקשורים המשתמש
     Permission122=ליצור / לשנות צדדים שלישיים קשורה המשתמש
     Permission125=מחק צדדים שלישיים הקשורים המשתמש
     Permission126=ייצוא צדדים שלישיים
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=לקרוא ספקי
     Permission147=קרא את סטטיסטיקת
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=הספק הזמנות סגור
     Permission188=ביטול הזמנות ספקים
     Permission192=ליצור קווים
     Permission193=ביטול קווי
    -Permission194=קרא את השורות רוחב פס
    +Permission194=Read the bandwidth lines
     Permission202=יצירת קשרים-ADSL
     Permission203=חיבורי סדר הזמנות
     Permission204=סדר החיבורים
    @@ -750,12 +760,12 @@ Permission244=לראות את תוכן הקטגוריות מוסתרים
     Permission251=קריאה משתמשים אחרים וקבוצות
     PermissionAdvanced251=קריאה משתמשים אחרים
     Permission252=הרשאות קריאה של משתמשים אחרים
    -Permission253=יצירה / שינוי משתמשים אחרים, קבוצות ו permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=יצירה / שינוי משתמשים פנימיים / חיצוניים והרשאות
     Permission254=יצירה / שינוי משתמשים חיצוניים בלבד
     Permission255=שינוי סיסמה משתמשים אחרים
     Permission256=מחיקה או ביטול של משתמשים אחרים
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=לקרוא CA
     Permission272=לקרוא חשבוניות
     Permission273=להוציא חשבוניות
    @@ -765,7 +775,7 @@ Permission283=מחיקת אנשי קשר
     Permission286=ייצוא אנשי קשר
     Permission291=קרא את התעריפים
     Permission292=להגדיר הרשאות על תעריפי את
    -Permission293=שינוי תעריפים ללקוחות
    +Permission293=Modify customers tariffs
     Permission300=לקרוא ברקודים
     Permission301=צור / לשנות הברקודים
     Permission302=מחק את הברקודים
    @@ -787,11 +797,9 @@ Permission401=קרא הנחות
     Permission402=יצירה / שינוי הנחות
     Permission403=אמת הנחות
     Permission404=מחק את הנחות
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=הפעל יבוא המוני של נתונים חיצוניים 
     Permission1321=יצוא חשבוניות הלקוח, תכונות ותשלומים
     Permission1322=Reopen a paid bill
     Permission1421=ייצוא הזמנות של לקוחות ותכונות
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=הסיכוי הפוטנציאלי ברמה
     DictionaryCanton=State/Province
     DictionaryRegion=אזורים
    @@ -894,7 +902,7 @@ DictionaryVAT=שיעורי מע&quot;מ או מכירות שיעורי מס
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=תנאי תשלום
     DictionaryPaymentModes=תשלום מצבי
    -DictionaryTypeContact=צור סוגים
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=נייר פורמטים
    @@ -908,47 +916,47 @@ DictionarySource=מקור הצעות / הזמנות
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=הגדרת הציל
     SetupNotSaved=Setup not saved
     BackToModuleList=חזרה לרשימת מודולים
    -BackToDictionaryList=חזרה לרשימת המילונים
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=מע&quot;מ ניהול
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=כברירת מחדל המע&quot;מ המוצע הוא 0 אשר ניתן להשתמש בהם במקרים כמו עמותות, אנשים ou חברות קטנות.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE ניהול
    -LocalTax1IsUsedDescES= שיעור RE כברירת מחדל בעת יצירת הסיכויים, חשבוניות, הזמנות וכו 'פעל הכלל רגיל פעיל: <br> אם הקונה te אינו נתון מחדש, שוב כברירת מחדל = 0. קץ שלטון. <br> אם הקונה הוא נתון מחדש ואז RE כברירת מחדל. קץ שלטון. <br>
    -LocalTax1IsNotUsedDescES= כברירת מחדל RE המוצע הוא 0. קץ שלטון.
    -LocalTax1IsUsedExampleES= בספרד הם אנשי מקצוע בכפוף לכמה חלקים מסוימים של trap מלכודת הספרדית.
    -LocalTax1IsNotUsedExampleES= בספרד הם מקצועיים בחברות ובכפוף חלקים מסוימים של trap מלכודת הספרדית.
    -LocalTax2ManagementES= IRPF ניהול
    -LocalTax2IsUsedDescES= שיעור RE כברירת מחדל בעת יצירת הסיכויים, חשבוניות, הזמנות וכו 'פעל הכלל רגיל פעיל: <br> אם המוכר אינו נתון IRPF, אז IRPF כברירת מחדל = 0. קץ שלטון. <br> אם המוכר הוא נתון IRPF אז IRPF כברירת מחדל. קץ שלטון. <br>
    -LocalTax2IsNotUsedDescES= כברירת מחדל IRPF המוצע הוא 0. קץ שלטון.
    -LocalTax2IsUsedExampleES= בספרד, פרילנסרים ובעלי מקצוע עצמאיים המספקים שירותים וחברות אשר בחרו במערכת המס של מודולים.
    -LocalTax2IsNotUsedExampleES= בספרד הם BUSSINES לא כפוף למערכת המס של מודולים.
    +LocalTax1ManagementES=RE ניהול
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=כברירת מחדל RE המוצע הוא 0. קץ שלטון.
    +LocalTax1IsUsedExampleES=בספרד הם אנשי מקצוע בכפוף לכמה חלקים מסוימים של trap מלכודת הספרדית.
    +LocalTax1IsNotUsedExampleES=בספרד הם מקצועיים בחברות ובכפוף חלקים מסוימים של trap מלכודת הספרדית.
    +LocalTax2ManagementES=IRPF ניהול
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=כברירת מחדל IRPF המוצע הוא 0. קץ שלטון.
    +LocalTax2IsUsedExampleES=בספרד, פרילנסרים ובעלי מקצוע עצמאיים המספקים שירותים וחברות אשר בחרו במערכת המס של מודולים.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=לייבל שימוש כברירת מחדל אם לא התרגום ניתן למצוא את קוד
     LabelOnDocuments=התווית על מסמכים
    -NbOfDays=נ.ב. הימים
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=בסוף החודש
     CurrentNext=Current/Next
     Offset=לקזז
    @@ -984,7 +994,7 @@ DatabaseUser=מסד הנתונים משתמש
     DatabasePassword=מסד הנתונים הסיסמה
     Tables=לוחות
     TableName=שם טבלה
    -NbOfRecord=נ.ב. הרשומות
    +NbOfRecord=No. of records
     Host=שרת
     DriverType=הנהג סוג
     SummarySystem=מערכת מידע סיכום
    @@ -996,7 +1006,7 @@ Skin=העור נושא
     DefaultSkin=העור סגנון ברירת מחדל
     MaxSizeList=אורך מקסימלי עבור רשימה
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=המסר של היום
     MessageLogin=התחברות הודעה בדף
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=חפש בצורה קבועה בתפריט השמאלי
     DefaultLanguage=ברירת המחדל של השפה להשתמש (קוד שפה)
     EnableMultilangInterface=אפשר ממשק רב לשוני
     EnableShowLogo=הצג את הלוגו בתפריט השמאלי
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=שם
     CompanyAddress=כתובת
     CompanyZip=רוכסן
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=הבעלים של %s חשבון הבנק
     BankModuleNotActive=חשבונות בנק המודול לא מופעל
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=התראות
    -DelaysOfToleranceBeforeWarning=סובלנות עיכובים לפני אזהרה
    -DelaysOfToleranceDesc=מסך זה מאפשר לך להגדיר את העיכובים נסבל לפני התראה מדווח על המסך עם %s picto עבור כל רכיב מאוחר.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=סובלנות עיכוב (בימים) לפני התראה על הצעות לסגור
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=סובלנות עיכוב (בימים) לפני התראה על הצעות לא מחויב
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=עיכוב סובלנות (בימים) לפני התראה על שירותי להפעיל
    -Delays_MAIN_DELAY_RUNNING_SERVICES=עיכוב סובלנות (בימים) לפני התראה על שירותי פג
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=עיכוב סובלנות (בימים) לפני התראה על חשבוניות ספקים שלא שולמו
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=עיכוב Tolerence (בימים) לפני התראה על חשבוניות הלקוח ללא תשלום
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=עיכוב סובלנות (בימים) לפני התראה על פיוס הבנק תלויה ועומדת
    -Delays_MAIN_DELAY_MEMBERS=עיכוב סובלנות (בימים) לפני התראה על דמי חבר מאוחרת
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=עיכוב סובלנות (בימים) לפני התראה על הפקדת המחאות לעשות
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=ערכים אחרים לנהל את התפריט פרמטרים אופציונליים.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=ביקורת אבטחה אירועים
    -Audit=ביקורת
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=רשימת אירועים Dolibarr הביטחון
     SecurityEventsPurged=אירועים ביטחוניים מטוהר
    -LogEventDesc=ניתן להפעיל כאן בכניסה לאירועים Dolibarr הביטחון. מנהלים יכולים לראות את התוכן שלה באמצעות <b>כלי מערכת</b> התפריטים <b>- הביקורת.</b> אזהרה, תכונה זו יכולה לצרוך כמות גדולה של נתונים במסד נתונים.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=מערכת מידע הוא מידע טכני שונות נכנסת למצב קריאה בלבד ונראה לעין עבור מנהלי בלבד.
     SystemAreaForAdminOnly=אזור זה זמין עבור המשתמשים מנהל בלבד. אף אחד הרשאות Dolibarr יכול להפחית את המגבלה.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=אתה יכול לבחור בכל פרמטר הקשור מבט Dolibarr ולהרגיש כאן
     AvailableModules=Available app/modules
     ToActivateModule=כדי להפעיל מודולים, ללכת על שטח ההתקנה (ראשי-> התקנה-> Modules).
     SessionTimeOut=זמן לפגישה
    -SessionExplanation=מספר זה מבטיח הפעלה לא יפוג לפני עיכוב זה. אבל וניהול PHP הפגישה האם לא ערובה הפגישה תמיד לפוג לאחר עיכוב זה: זו מתרחשת כאשר מערכת הפעלה לנקות מטמון פועל. <br> הערה: עם מערכת לא בפרט, תהליך פנימי PHP ינקו כל פגישה על <b>%s /</b> גישה <b>%s</b> אבל רק במהלך גישה על ידי מפגשים אחרים.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=זמין טריגרים
    -TriggersDesc=טריגרים הם קבצים אשר משנים את אופן הפעולה של זרימת עבודה Dolibarr להעתיק פעם לתוך ספריית <b>htdocs / ליבה / טריגרים.</b> הם הבינו פעולות חדשות, המופעלים על אירועים Dolibarr (יצירת חברה חדשה, אימות החשבונית, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=גורמים בקובץ זה אינם זמינים על ידי <b>הסיומת-NoRun</b> בשמם.
     TriggerDisabledAsModuleDisabled=גורמים בקובץ זה אינם זמינים כמו <b>%s</b> מודול אינו זמין.
     TriggerAlwaysActive=גורמים בקובץ זה תמיד פעיל, לא משנה מה הם מודולים Dolibarr מופעל.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=גבולות / הגדרת Precision
    -LimitsDesc=ניתן להגדיר גבולות, precisions ו optimisations המשמשים Dolibarr כאן
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=מקס שברים עשרוניים עבור מחירי יחידה
     MAIN_MAX_DECIMALS_TOT=מקס שברים עשרוניים במחירים הכל
     MAIN_MAX_DECIMALS_SHOWN=שברים עשרוניים מקס במחירים המוצג על המסך (הוסף <b>...</b> לאחר מספר זה אם אתה רוצה לראות <b>...</b> כאשר מספר מקוצר כאשר מוצג על המסך)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=יחידת מחיר נטו של המוצר
     TotalPriceAfterRounding=המחיר הכולל (נטו / מע&quot;מ / מס כולל) לאחר עיגול
     ParameterActiveForNextInputOnly=פרמטר יעיל הקלט הבא רק
    -NoEventOrNoAuditSetup=בשום מקרה לא ביטחון נרשמה עד כה. זה יכול להיות נורמלי אם הביקורת לא הופעל &quot;הגדרת - ביטחון - ביקורת&quot; הדף.
    -NoEventFoundWithCriteria=בשום מקרה לא ביטחון כבר מצאו criterias חיפוש כאלה.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=ראה הגדרת sendmail המקומי
     BackupDesc=כדי לבצע גיבוי מלא של Dolibarr, עליך:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=מדריך בארכיון יש לאחסן במקום בטוח.
     BackupDescY=קובץ dump שנוצר יש לאחסן במקום בטוח.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=כדי לשחזר גיבוי Dolibarr, עליך:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= כלל זה הוא נאלץ <b>%s</b> ידי מודול מופעל
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=עליך להפעיל את הפ
     YourPHPDoesNotHaveSSLSupport=פונקציות שאינן זמינות ב-SSL-PHP
     DownloadMoreSkins=עוד סקינים להורדה
     SimpleNumRefModelDesc=להחזיר את מספר הפניה עם פורמט %syymm-nnnn שם yy הוא שנה, מ&quot;מ הוא חודש nnnn הוא רצף ללא חור ועם איפוס לא
    -ShowProfIdInAddress=הצג מזהה בעלי מקצועות חופשיים עם כתובות על מסמכים
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=תרגום חלקי
    -MAIN_DISABLE_METEO=בטל meteo נוף
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=בדוק להיכנס API
    -ProxyDesc=תכונות מסוימות של Dolibarr צריך גישה לאינטרנט כדי לעבוד. הגדרת פרמטרים כאן בשביל זה. אם שרת Dolibarr עומד מאחורי שרת proxy, הפרמטרים האלה אומר Dolibarr כיצד לגשת לאינטרנט דרכו.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=גישה חיצונית
     MAIN_PROXY_USE=השתמש בשרת Proxy (גישה ישירה אחרת לאינטרנט)
     MAIN_PROXY_HOST=שם / כתובת של שרת Proxy
     MAIN_PROXY_PORT=היציאה של שרת ה-Proxy
     MAIN_PROXY_USER=כניסה כדי להשתמש בשרת proxy
     MAIN_PROXY_PASS=סיסמה כדי להשתמש בשרת proxy
    -DefineHereComplementaryAttributes=להגדיר כאן את כל atributes, אינו זמין כבר כברירת מחדל, כי אתה רוצה להיות נתמך על %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=משלימים תכונות
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=אזהרה, על כמה מערכות לינוקס, לשלוח דוא&quot;ל הדוא&quot;ל שלך, הגדרת sendmail ביצוע חובה conatins אפשרות-BA (mail.force_extra_parameters פרמטר לקובץ php.ini שלך). אם מקבלי כמה לא לקבל הודעות דוא&quot;ל, מנסה לערוך פרמטר זה PHP עם mail.force_extra_parameters =-BA).
     PathToDocuments=הדרך מסמכים
     PathDirectory=מדריך
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=חזור הסיסמה שנוצר על פי אלגוריתם Dolibarr פנימי: 8 תווים המכילים מספרים ותווים משותפים באותיות קטנות.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=דוא&quot;ל נדרש ליצור משתמש חדש
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=חברות מודול ההתקנה
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=תבניות מסמכים
    -DocumentModelOdt=צור מסמכים מתבניות OpenDocuments (. ODT קבצים של אופן אופיס, KOffice, TextEdit, ...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=סימן מים על מסמך טיוטה
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Professional מזהה ייחודי
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=הקישור ייצוא לפורמט <b>%s</b> זמין בקישור הבא: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=הקישור ייצוא לפורמט <b>%s</b> זמין 
     BillsSetup=חשבוניות ההתקנה מודול
     BillsNumberingModule=חשבוניות ושטרי אשראי המונים מודול
     BillsPDFModules=חשבוניות ומסמכים מודלים
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=כתב זכויות
     CreditNotes=אשראי הערות
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= ניהול התחברות לכל חבר
     AdherentMailRequired=דוא&quot;ל נדרש ליצור חבר חדש
     MemberSendInformationByMailByDefault=תיבת סימון לשלוח אישור בדואר לחברי (אימות או מנוי חדש) מופעלת כברירת מחדל
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=הגדרת LDAP
     LDAPGlobalParameters=גלובל פרמטרים
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=סנכרון ניסוי מוצלח
     LDAPSynchroKO=הסנכרון נכשל במבחן
    -LDAPSynchroKOMayBePermissions=נכשל במבחן הסנכרון. בדוק כי הקשר לשרת מוגדר כהלכה ומאפשרת udpates של LDAP
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP להתחבר ל-LDAP מוצלחים שרת (Server = %s, נמל %s =)
     LDAPTCPConnectKO=TCP להתחבר לשרת LDAP נכשל (שרת = %s, נמל %s =)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=חבר / Authentificate לשרת LDAP נכשל (שרת = %s, פורט = %s, מנהל = %s, סיסמה = %s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=שרת LDAP המוגדר עבור גרסה 3
     LDAPSetupForVersion2=שרת LDAP מוגדר לגרסה 2
     LDAPDolibarrMapping=Dolibarr מיפוי
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=התחברות (סמבה, ActiveDirectory)
     LDAPFieldLoginSambaExample=דוגמה: samaccountname
     LDAPFieldFullname=שם פרטי
     LDAPFieldFullnameExample=לדוגמה: cn
    -LDAPFieldPasswordNotCrypted=סיסמה לא crypted
    -LDAPFieldPasswordCrypted=סיסמה crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=דוגמה: userPassword
     LDAPFieldCommonNameExample=לדוגמה: cn
     LDAPFieldName=שם
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=ערכים לדוגמה מיועדים <b>OpenLDAP</b> עם סכימות טעון הבאים: <b>core.schema, cosine.schema, inetorgperson.schema).</b> אם אתה משתמש בערכים thoose ו OpenLDAP, לשנות קובץ <b>slapd.conf</b> LDAP שלך config לקבל את כל סכמות thoose טעון.
     ForANonAnonymousAccess=לתקופה של acces מאומתים (גישה לכתוב למשל)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=מוצרים מודול ההתקנה
     ServiceSetup=מודול שירותי התקנה
     ProductServiceSetup=מוצרים ושירותים ההתקנה מודולים
     NumberOfProductShowInSelect=מספר מקסימלי של מוצרים combos בחר רשימות (0 = ללא הגבלה)
    -ViewProductDescInFormAbility=ויזואליזציה של תיאורי מוצרים בתחום הטפסים (גם בכינויו tooltip קופץ)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=ברקוד מסוג ברירת מחדל עבור מוצרים
     SetDefaultBarcodeTypeThirdParties=ברקוד מסוג ברירת מחדל עבור צדדים שלישיים
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=שליחת ההתקנה מודול
     SendingsReceiptModel=שליחת מודל קבלת
     SendingsNumberingModules=Sendings מספור מודולים
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=מוצרים משלוחים מספור מודול קבלת
    @@ -1515,18 +1529,18 @@ AdvancedEditor=עורך מתקדם
     ActivateFCKeditor=הפעל עורך מתקדם עבור:
     FCKeditorForCompany=WYSIWIG יצירת / מהדורה של תיאור של רכיב הערה (למעט מוצרים / שירותים)
     FCKeditorForProduct=WYSIWIG יצירת / מהדורה של המוצרים / שירות של תיאור הערה
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG יצירת / מהדורה של דברי דואר
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=החיבור הצליח אבל הנתונים לא נראה להיות באתר osCommerce (%s מפתח לא נמצא %s טבלה).
    -OSCommerceTestOk=חיבור &quot;%s של שרת&quot; %s &quot;מסד נתונים עם מוצלחת&quot; %s של המשתמש.
    -OSCommerceTestKo1=חיבור &quot;%s&quot; שרת להצליח אבל &quot;%s&quot; מסד נתונים לא ניתן היה להשיג.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=חיבור &quot;%s של שרת עם&quot; %s &quot;המשתמש נכשל.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=תפריט נמחק
     Menus=תפריטים
    @@ -1548,7 +1562,7 @@ DetailRight=מצב כדי להציג תפריטים אפורים לא מורשי
     DetailLangs=לנג שם הקובץ לתרגום הקוד תווית
     DetailUser=מתמחה / extern / הכל
     Target=Target
    -DetailTarget=יעד קישורים (למעלה _blank פותח חלון חדש)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=רמה (-1: התפריט העליון, 0: תפריט הכותרת,&gt; 0 תפריט ותפריט משנה)
     ModifMenu=תפריט שינוי
     DeleteMenu=מחיקת סעיף מתפריט
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=במע&quot;מ: <br> - על משלוח של סחורות (
     OptionVatDebitOptionDesc=במע&quot;מ: <br> - על משלוח של סחורות (אנו משתמשים תאריך החשבונית) <br> - על החשבונית (חיוב) עבור שירותים
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=על משלוח
     OnPayment=על התשלום
     OnInvoice=בחשבונית
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=אירועים מודול ההתקנה סדר היום
     PasswordTogetVCalExport=מפתח לאשר הקישור יצוא
     PastDelayVCalExport=לא יצא אירוע מבוגרת
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=לחץ כדי לחייג ההתקנה מודול
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=נקודת מכירות
     CashDeskSetup=נקודת ההתקנה מודול מכירות
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=חשבון ברירת מחדל להשתמש כדי לקבל תשלומים במזומן
     CashDeskBankAccountForCheque= חשבון ברירת מחדל להשתמש כדי לקבל תשלומים על ידי סימון
     CashDeskBankAccountForCB= חשבון ברירת מחדל להשתמש כדי לקבל תשלומים במזומן באמצעות כרטיסי אשראי
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=הפוך ההתקנה מודול
    -BookmarkDesc=מודול זה מאפשר לך לנהל את הסימניות. ניתן גם להוסיף קיצורי דרך לכל הדפים Dolibarr או אתרי אינטרנט externale בתפריט השמאלי.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=מספר מרבי של סימניות להראות בתפריט השמאלי
     ##### WebServices #####
     WebServicesSetup=Webservices ההתקנה מודול
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=רב החברה מודול ההתקנה
     ##### Suppliers #####
     SuppliersSetup=מודול הספק ההתקנה
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=מודול פרויקט ההתקנה
     ProjectsModelModule=מסמך דו&quot;ח פרויקט של מודל
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=רוכסן
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/he_IL/banks.lang b/htdocs/langs/he_IL/banks.lang
    index 1d42581c344..5bc061f31f3 100644
    --- a/htdocs/langs/he_IL/banks.lang
    +++ b/htdocs/langs/he_IL/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Account
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/he_IL/bills.lang b/htdocs/langs/he_IL/bills.lang
    index cb7c931197b..944674a4b19 100644
    --- a/htdocs/langs/he_IL/bills.lang
    +++ b/htdocs/langs/he_IL/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=כתב זכויות
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Suppliers payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
    @@ -91,8 +91,8 @@ PaymentConditionsShort=תנאי תשלום
     PaymentAmount=Payment amount
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Paid
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Closed
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=אחר
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/he_IL/cashdesk.lang b/htdocs/langs/he_IL/cashdesk.lang
    index daefd4c4ba6..a36226afc93 100644
    --- a/htdocs/langs/he_IL/cashdesk.lang
    +++ b/htdocs/langs/he_IL/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=נקודת מכירות
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/he_IL/commercial.lang b/htdocs/langs/he_IL/commercial.lang
    index 3aa0aaa392c..190d9129653 100644
    --- a/htdocs/langs/he_IL/commercial.lang
    +++ b/htdocs/langs/he_IL/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/he_IL/companies.lang b/htdocs/langs/he_IL/companies.lang
    index 36ab3b01faf..bd7bfe36a40 100644
    --- a/htdocs/langs/he_IL/companies.lang
    +++ b/htdocs/langs/he_IL/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Select a third party
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Delete a contact/address
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New third party
    -MenuNewCustomer=New customer
    -MenuNewProspect=New prospect
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=חברה
     CompanyName=Company name
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Companies
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=צדדים שלישיים
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=לקוחות פוטנציאלים
     ThirdPartyProspectsStats=לקוחות פוטנציאלים
     ThirdPartyCustomers=לקוחות
     ThirdPartyCustomersStats=לקוחות
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Position
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=הצעות
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Supplier
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Delete a company
     PersonalInformations=Personal data
     AccountancyCode=Accounting account
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=סגל
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=רשימת לקוחות פוטנציאלים
    -ListCustomersShort=רשימת לקוחות
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Open
     ActivityCeased=Closed
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/he_IL/dict.lang b/htdocs/langs/he_IL/dict.lang
    index 61a7237f472..ad3a24e12f6 100644
    --- a/htdocs/langs/he_IL/dict.lang
    +++ b/htdocs/langs/he_IL/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/he_IL/ecm.lang b/htdocs/langs/he_IL/ecm.lang
    index 76271d76df0..62d76a0b7cf 100644
    --- a/htdocs/langs/he_IL/ecm.lang
    +++ b/htdocs/langs/he_IL/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=מדריך
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/he_IL/errors.lang b/htdocs/langs/he_IL/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/he_IL/errors.lang
    +++ b/htdocs/langs/he_IL/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/he_IL/help.lang b/htdocs/langs/he_IL/help.lang
    index 9ab2d217246..4a0b9599d4b 100644
    --- a/htdocs/langs/he_IL/help.lang
    +++ b/htdocs/langs/he_IL/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=מסחרי
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/he_IL/holiday.lang b/htdocs/langs/he_IL/holiday.lang
    index 6a8e6755f7a..29036c97537 100644
    --- a/htdocs/langs/he_IL/holiday.lang
    +++ b/htdocs/langs/he_IL/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=תאור
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=Delete
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/he_IL/install.lang b/htdocs/langs/he_IL/install.lang
    index 6dd5dc98053..426dabbce4d 100644
    --- a/htdocs/langs/he_IL/install.lang
    +++ b/htdocs/langs/he_IL/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=הנהג סוג
     Server=שרת
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=שם מסד הנתונים
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=שדרוג
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/he_IL/interventions.lang b/htdocs/langs/he_IL/interventions.lang
    index d05f23637ba..2d46565f3f8 100644
    --- a/htdocs/langs/he_IL/interventions.lang
    +++ b/htdocs/langs/he_IL/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=התערבויות
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/he_IL/main.lang b/htdocs/langs/he_IL/main.lang
    index 2bcda8ba4a5..4a3bb88c2d7 100644
    --- a/htdocs/langs/he_IL/main.lang
    +++ b/htdocs/langs/he_IL/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Closed
     Closed2=Closed
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Update
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=אחר
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=מערכת כלים
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=מחק את השורה
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=פרוייקטים
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=הרשאות
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=התערבויות
     SearchIntoContracts=חוזים
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/he_IL/other.lang b/htdocs/langs/he_IL/other.lang
    index d4db81e5c6b..4a8162a8557 100644
    --- a/htdocs/langs/he_IL/other.lang
    +++ b/htdocs/langs/he_IL/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=תאור
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/he_IL/paybox.lang b/htdocs/langs/he_IL/paybox.lang
    index 306aaeec047..0d35ac440fa 100644
    --- a/htdocs/langs/he_IL/paybox.lang
    +++ b/htdocs/langs/he_IL/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/he_IL/projects.lang b/htdocs/langs/he_IL/projects.lang
    index 7ec44dba97f..ca03b7598ba 100644
    --- a/htdocs/langs/he_IL/projects.lang
    +++ b/htdocs/langs/he_IL/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=הצג משימה
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/he_IL/propal.lang b/htdocs/langs/he_IL/propal.lang
    index 8810e211c2f..5028c3bff75 100644
    --- a/htdocs/langs/he_IL/propal.lang
    +++ b/htdocs/langs/he_IL/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Draft
    -PropalStatusValidatedShort=Validated
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Closed
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/he_IL/website.lang b/htdocs/langs/he_IL/website.lang
    index 0f0673e3716..6ae08738815 100644
    --- a/htdocs/langs/he_IL/website.lang
    +++ b/htdocs/langs/he_IL/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/hr_HR/admin.lang b/htdocs/langs/hr_HR/admin.lang
    index adc95e137a9..cec053ef84d 100644
    --- a/htdocs/langs/hr_HR/admin.lang
    +++ b/htdocs/langs/hr_HR/admin.lang
    @@ -1,8 +1,8 @@
     # Dolibarr language file - Source file is en_US - admin
     Foundation=Zaklada
    -Version=Verzija
    -Publisher=Publisher
    -VersionProgram=Programska verzija
    +Version=Inačica
    +Publisher=Izdavač
    +VersionProgram=Inačica programa
     VersionLastInstall=Inicijalno instalirana verzija
     VersionLastUpgrade=Zadnja verzija nadogradnje
     VersionExperimental=Eksperimentalno
    @@ -10,9 +10,9 @@ VersionDevelopment=Razvoj
     VersionUnknown=Nepoznato
     VersionRecommanded=Preporučeno
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -20,7 +20,7 @@ LocalSignature=Embedded local signature (less reliable)
     RemoteSignature=Remote distant signature (more reliable)
     FilesMissing=Nedostaju datoteke
     FilesUpdated=Nadograđene datoteke
    -FilesModified=Modified Files
    +FilesModified=Preinačene datoteke
     FilesAdded=Added Files
     FileCheckDolibarr=Check integrity of application files
     AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package
    @@ -30,14 +30,14 @@ SessionSaveHandler=Rukovatelj za spremanje sesije
     SessionSavePath=Lokalizacija pohrane sesije
     PurgeSessions=Brisanje sesija
     ConfirmPurgeSessions=Želite li stvarno prekinuti sve sesije? To će odjaviti sve korisnike (osim vas).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Zaključaj nova spajanja
    -ConfirmLockNewSessions=Jeste li sigurni da želite ograničiti svako novo spajanje na Dolibarr za sebe. Samo korisnik <b>%s</b> će biti u mogučnosti da se nakon toga spoji.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Otključaj spajanje
     YourSession=Vaša sesija
    -Sessions=Korisničke sesije
    +Sessions=Users sessions
     WebUserGroup=Web Server korisnik/grupa
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Charset baze za sortiranje podataka
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Vanjski korisnik
     InternalUsers=Interni korisnici
     ExternalUsers=Vanjski korisnici
     GUISetup=Prikaz
    -SetupArea=Sučelje postavki
    +SetupArea=Postavke
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Obrazac za testiranje uploada datoteka (sukladno postavkama)
     IfModuleEnabled=Napomena: DA je efektivno samo ako je modul <b>%s</b> omogućen
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kod ne može sadržavati vrijednost 0
     DisableJavascript=Onemogući JavaScript i AJAX funkcije (Preporučljivo za slijepe osobe ili tekstualne web preglednike)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Br. znakova za aktiviranje pretrage: %s
     NotAvailableWhenAjaxDisabled=Nije dostupno kada je Ajax onemogućen
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Pregled nije dostupan
     ThemeCurrentlyActive=Tema trenutno aktivna
     CurrentTimeZone=Vremenska zona PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Razmak
     Table=Tabela
     Fields=Polja
    @@ -111,14 +111,14 @@ NotConfigured=Modul/Aplikacija nije konfigurirana
     Active=Aktivan
     SetupShort=Postavke
     OtherOptions=Ostale opcije
    -OtherSetup=Ostale postavke
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimalni separator
     CurrentValueSeparatorThousand=Separator tisućica
     Destination=Odredište
     IdModule=ID Modula
     IdPermissions=ID Dozvole
     LanguageBrowserParameter=Parametar %s
    -LocalisationDolibarrParameters=Parametri prijevoda
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Vremenska zona klijenta (korisnik)
     ClientHour=Vrijeme klijent (korisnik)
     OSTZ=Server OS vremenska zona
    @@ -126,8 +126,8 @@ PHPTZ=PHP server vremenska zona
     DaylingSavingTime=Ljetno računanje vremena
     CurrentHour=PHP Vrijeme (server)
     CurrentSessionTimeOut=Trenutno vrijeme isteka sesije
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Dodatak
     Boxes=Dodaci
     MaxNbOfLinesForBoxes=Maksimalni broj linija u dodatku
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Zanemari greške dupliciranih zapisa (INSERT IGNORE)
     AutoDetectLang=Automatski detektiraj (jezik web preglednika)
     FeatureDisabledInDemo=Mogućnost onemogućena u demo verziji
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Prikazani su samo elementi sa  <a href="%s">omogučenih modula</a>
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Možete pronaći više modula za download na vanjskim internet web lokacijama 
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Nađi vanjske aplikacije/module
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Novo
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStorel, ovlaštena trgovina za Dolibarr ERP/CRM dodatne module
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Referentne web lokacije za pronalazak više modula
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Poveznica
     BoxesAvailable=Dostupni dodaci
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Nemojte pohranjivati čitljive lozinke u bazu već pohra
     MainDbPasswordFileConfEncrypted=Lozinka baze enkriptirana u conf.php (Preporučeno aktivirano)
     InstrucToEncodePass=Da biste imali kodiranu lozinku u <b>conf.php</b> datoteci, zamjenite red <br><b>$dolibarr_main_db_pass="...";</b><br>sa<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Da biste imali čitljivu lozinku u <b>conf.php</b> datoteci, zamjenite red <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>sa<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Zaštita generiranih PDF datoteka (NIJE preporučeno aktiviranje, kvari masovno generiranje PDF-ova)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Mogućnost
     DolibarrLicense=Licenca
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=Za korisničku ili razvojnu dokumentciju ( DOC, FAQ...)<br> pogledajte na Dolibarr Wiki-u:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Za sva ostala pitanja/pomoć, obratite se na Dolibarr forumu:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=Ovo sučelje vam može pomoći da dobijete pomoć Dolibarr servisa podrške
    -HelpCenterDesc2=Neki dijelovi ovog servisa su dostupni samo na <b>engleskom</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Trenutačni nositelj izbornika
     MeasuringUnit=Mjerna jedinica
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Otkazni rok
     NewByMonth=New by month
     Emails=e-pošta
     EMailsSetup=podešavanje e-pošte
    -EMailsDesc=Ova stranica omogućava vam da pregazite PHP parametre za slanje e-pošte. U većini slučajeva na UNIX/Linux OS, PHP parametri su već postavljeni tako da je ovo podešavanje nepotrebno.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (predefiniran u php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (predefiniran u php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Nije definiran u PHP-u niti na Unix-u)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Nije definiran u PHP-u niti na Unix-u)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Sustavno pošalji skriveno CC sve poslane poruke e-pošte
    -MAIN_DISABLE_ALL_MAILS=Onemogući slanje svih poruka e-poštom (samo za testiranje i demo)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Način slanja e-pošte
    -MAIN_MAIL_SMTPS_ID=SMTP ID potrebna prijava
    -MAIN_MAIL_SMTPS_PW=SMTP Lozinka ako je potrebna prijava
    -MAIN_MAIL_EMAIL_TLS= Koristi TLS (SSL) enkripciju
    -MAIN_MAIL_EMAIL_STARTTLS= Koristi TLS (STARTTLS) enkripciju
    -MAIN_DISABLE_ALL_SMS=Onemogući sva SMS slanja (za testiranje ili demo)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Način slanja SMS-a
    -MAIN_MAIL_SMS_FROM=Zadani broj pošiljatelja za slanje SMS-ova
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Mogućnost nije dostupna na UNIX-u. Testirajte sendmail program lokalno.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Podešavanje modula
     ModulesSetup=Podešavanje modula/aplikacija
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Alati multi modula
     ModuleFamilyExperimental=Experimentalni moduli
     ModuleFamilyFinancial=Financijski moduli (Računovodstvo/Financije)
     ModuleFamilyECM=Elektronski upravitelj sadržajem (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Nosioci izbornka
     MenuAdmin=Uređivač izbornika
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Nemojte koristiti u stvarnom okruženju
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Korak %s
    -FindPackageFromWebSite=Pronađite paket koji pruža željenu mogučnost ( npr. ovlaštena web lokacija %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download paketa (npr. sa ovlaštene web lokacije %s)
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=Za ovaj korak možete učitati .zip datoteku modula ovdje:
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Trenutna verzija Dolibarr-a
     CallUpdatePage=Idite na stranicu koja nadograđuje strukturu baze i podatke: %s
     LastStableVersion=Zadnja stabilna verzija
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Sakrij poveznicu "<b>Trebate li pomoć ili podršku</b>" na stranici prijave
     DisableLinkToHelp=Sakrij poveznicu na online pomoć "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimalna dužina
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Primjeri s trenutno pokrenutim postavkama
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Popis mapa sa OpenDocument predlošcima
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Broj ODT/ODS predložaka pronađenih u mapama
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Primjer:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>Da bi ste saznali kako kreirati ODT predloške dokumenata, prije pohranjivanja istih u navedene mape, pročitajte wiki dokumentaciju na:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Ključ za korištenje web servisa (parametar "dolibarrke
     TestSubmitForm=Unesite obrazac testiranja
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Mapa stilova
    -ConnectionTimeout=Prekid veze
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Odgovor 
     SmsTestMessage=Test poruka od __PHONEFROM__ za __PHONETO__
     ModuleMustBeEnabledFirst=Modul <b>%s</b> mora biti omogućen ako želite koristiti ovu mogučnost.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Pravila za kopiranje adresnih blokova
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Sakrij opis proizvoda na generiranim PDF
     HideRefOnPDF=Sakrij ref. proizvoda na generiranim PDF
     HideDetailsOnPDF=Sakrij stavke detalja proizvoda na generiranim PDF
    @@ -387,9 +391,9 @@ UrlGenerationParameters=Parametri za osiguranje URL-a
     SecurityTokenIsUnique=Koristi jedinstven securekey parametar za svaki URL
     EnterRefToBuildUrl=Unesite referencu za objekt %s
     GetSecuredUrl=Traži izračunan URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    -OldVATRates=Stara PDV stopa
    -NewVATRates=Nova PDV stopa
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
    +OldVATRates=Stara stopa PDV-a
    +NewVATRates=Nova stopa PDV-a
     PriceBaseTypeToChange=Promjeni cijene sa baznom referentnom vrijednosti definiranoj na
     MassConvert=Pokreni masovnu konverziju
     String=String
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Odaberi popis
     ExtrafieldSelectList = Odaberi iz tabele
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Lozinka
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Poveži s objektom
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Postavi kao zadano
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=Vanjski modul - Instaliran u mapi %s
    -BarcodeInitForThirdparties=Masovno postavljanje barkodova za komitente
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Masovno postavljanje ili promjena barkodova usluga i proizvoda
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Inicijalna vrijednost za sljedećih %s praznih podataka
     EraseAllCurrentBarCode=Obriše sve trenutne vrijednosti barkoda
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=Sve barkod vrijednosti su obrisane
    -NoBarcodeNumberingTemplateDefined=Nema predloška označavanja barkodom omogučenog u podešavanju modula.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=Nema više detalja u podnožju dokumenta
     DisplayCompanyInfo=Prikaži adresu tvrtke
     DisplayCompanyManagers=Prikaz upravitelja imenima
     DisplayCompanyInfoAndManagers=Prikaži adresu tvrtke i ime menadžera
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Koristi 3 koraka odobravanja kada je iznos (bez poreza) veći od...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,26 +480,28 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Korisnici i grupe
    +Module0Name=Korisnici & Grupe
     Module0Desc=Upravljanje korisnicima/zaposlenicima i grupama
    -Module1Name=Komitenti
    -Module1Desc=Upravljanje tvrtkama i kontaktima (kupci, potencijalni kupci, ...)
    -Module2Name=Komercijala
    +Module1Name=Treće osobe
    +Module1Desc=Companies and contacts management (customers, prospects...)
    +Module2Name=Trgovina
     Module2Desc=Upravljanje komercijalom
     Module10Name=Računovodstvo
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Ponude
     Module20Desc=Upravljanje ponudama
     Module22Name=Masovno slanje e-pošte
     Module22Desc=Upravljanje masovnim slanjem e-pošte
     Module23Name=Energija
     Module23Desc=Praćenje potrošnje energije
    -Module25Name=Narudžbe kupaca
    +Module25Name=Narudžbe kupca
     Module25Desc=Upravljanje narudžbama kupaca
     Module30Name=Računi
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Dobavljači
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Upravljanje zalihama
     Module53Name=Usluge
     Module53Desc=Upravljanje uslugama
     Module54Name=Ugovori/pretplate
    -Module54Desc=Upravljanje ugovorima (usluge ili pretplate)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barkodovi
     Module55Desc=Upravljanje barkodovima
     Module56Name=Telefonija
     Module56Desc=Integracija telefonije
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integracija ClickToDial sistema (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Trošak i putne napomene
     Module75Desc=Upravljanje putnim troškovima i napomenama
     Module80Name=Isporuke
     Module80Desc=Upravljanje isporukama i dostavama narudžbi
    -Module85Name=Banke i gotovina
    +Module85Name=Banks and Cash
     Module85Desc=Upravljanje bankovnim i gotovinskim računima
    -Module100Name=Vanjska lokacija
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman i SPIP
     Module105Desc=Mailman ili SPIP sučelje za modul članova
     Module200Name=LDAP
    -Module200Desc=LDAP sinhronizacija mape
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integracija
     Module240Name=Izvozi podataka
    -Module240Desc=Alat za izvoz Dolibarr podataka (sa asistentom)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Uvoz podataka
    -Module250Desc=Alat za uvoz podataka u Dolibarr (sa asistentom)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Članovi
     Module310Desc=Upravljanje članovima zaklade
     Module320Name=RSS Feed
     Module320Desc=Dodaj RSS feed unutar Dolibar stranica
    -Module330Name=Oznake
    -Module330Desc=Upravljanje oznakama
    -Module400Name=Projekti/Mogućnosti/Vodiči
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Web kalendar
     Module410Desc=Integracija web kalendara
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Kredit
     Module520Desc=Upravljanje kreditima
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donacije
     Module700Desc=Upravljanje donacijama
     Module770Name=Izvještaji troška
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Kategorije
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Dozvoljava uređivanje nekog tekstualnog područja u naprednom editoru (bazirano na CKEditor-u)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dinamičke cijene
     Module2200Desc=Omogući korištenje matematičkih izraza za cijene
     Module2300Name=Planirani poslovi
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Događaji/Raspored
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web servisi (SOAP server)
    @@ -590,17 +596,17 @@ Module2600Desc=Omogući Dolibarr SOAP server pružatelja API servisa
     Module2610Name=API/Webservis (REST server)
     Module2610Desc=Omogući Dolibarr REST server pružajući API servise
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind mogućnosti konverzije
     Module3100Name=Skype
     Module3100Desc=Dodaj Skype gumb na kartice korisnika / komitenta / kontakata / članova
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    -Module4000Name=HRM
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
    +Module4000Name=Djelatnici
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi tvrtka
     Module5000Desc=Dozvoljava upravljanje multi tvrtkama
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Web lokacije
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Upravljanje zahtjevima odlazaka
    -Module20000Desc=Objavi i prati zahtjeve odsutnosti zaposlenika
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Prodajno mjesto 
     Module50100Desc=Modul prodajnog mjesta (POS)
    +Module50150Name=POS
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Računovodstvo (napredno)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Anketa, Upitnik ili Glasanje
    -Module55000Desc=Modul za izradu online anketa, upitnika ili glasovanja (slično kao Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Marže
     Module59000Desc=Modul za upravljanje maržama
     Module60000Name=Provizije
     Module60000Desc=Modul za upravljanje provizijama
    -Module62000Name=Incoterm
    -Module62000Desc=Dodaj mogučnosti za upravljanje Incoterm-om
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Sredstva
     Module63000Desc=Upravljanje sredstvima (pisači, vozila, prostorije, ...) koje možete djeliti s događajima
     Permission11=Čitaj račune kupca
    @@ -651,9 +661,9 @@ Permission32=Kreiraj/izmjeni proizvod
     Permission34=Obriši proizvod
     Permission36=Pregled/upravljanje skrivenim proizvodima
     Permission38=izvoz proizvoda
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Obriši projekte (zajednički projekti i moji projekti)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Izvezi projekte
     Permission61=Čitaj intervencije
     Permission62=Kreiraj/promjeni intervencije
    @@ -667,11 +677,11 @@ Permission76=Izvoz podataka
     Permission78=Čitaj pretplate
     Permission79=Kreiraj/izmjeni pretplate
     Permission81=Čitaj narudžbe kupca
    -Permission82=Kreiraj/izmjeni narudžbe kupaca
    -Permission84=Ovjeri narudžbe kupaca
    -Permission86=Pošalji narudžbe kupaca
    -Permission87=Zatvori narudžbe kupaca
    -Permission88=Otkaži narudžbe kupaca
    +Permission82=Izradi/izmjeni narudžbe kupaca
    +Permission84=Ovjeri narudžbu kupca
    +Permission86=Pošalji narudžbu kupca
    +Permission87=Zatvori narudžbu kupca
    +Permission88=Otkaži potvrdu 
     Permission89=Obriši narudžbe kupaca
     Permission91=Čitaj društvene ili fiskalne poreze i PDV
     Permission92=Kreiraj/izmjeni društvene ili fiskalne poreze i PDV
    @@ -686,7 +696,7 @@ Permission109=Obriši slanja
     Permission111=Čitanje financijskih računa
     Permission112=Kreiraj/izmjeni/obriši i usporedi transakcije
     Permission113=Podešavanje financijskih računa (kreiranje, upravljanje kategorijama)
    -Permission114=Uskladi transakcije
    +Permission114=Reconcile transactions
     Permission115=Izvoz transakcija i izvodi
     Permission116=Prijenos između računa
     Permission117=Upravljanje otpremom čekova
    @@ -694,15 +704,15 @@ Permission121=Čitaj veze komitenata s korisnicima
     Permission122=Kreiraj/izmjeni komitente povezane s korisnicima
     Permission125=Obriši komitente povezane s korisnicima
     Permission126=Izvezi komitente
    -Permission141=Čitaj sve projekte i zadatke (također privatne koji nisu moji)
    -Permission142=Kreiraj/izmjeni sve projekte i zadatke (također privatne koji nisu moji)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Obriši sve projekte i zadatke (također privatne koji nisu moji)
     Permission146=Čitaj pružatelje
     Permission147=Čitaj statistiku
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Čitaj ugovore/pretplate
     Permission162=Kreiraj/izmjeni ugovore/pretplate
     Permission163=Aktiviraj uslugu/pretplatu ugovora
    @@ -725,7 +735,7 @@ Permission187=Zatvori narudžbu dobavljača
     Permission188=Otkaži narudžbu dobavljača
     Permission192=Kreiraj stavke
     Permission193=Otkaži stavke
    -Permission194=Čitaj protočnost stavaka
    +Permission194=Read the bandwidth lines
     Permission202=Kreiraj ADSL sapajanje
     Permission203=Naruči narudžbe spajanja
     Permission204=Narudžba spajanja
    @@ -750,12 +760,12 @@ Permission244=Vidi sadržaj skrivenih kategorija
     Permission251=Čitaj ostale korisnike i grupe
     PermissionAdvanced251=Čitaj ostale korisnike
     Permission252=Čitaj dozvole ostalih korisnika
    -Permission253=Kreiraj/izmjeni druge korisnike, grupe i dozvole
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Kreiraj/izmjeni interne/vanjske korisnike i dozvole
     Permission254=Kreiraj/izmjeni samo vanjske korisnike
     Permission255=Izmjeni lozinku ostalih korisnika
     Permission256=Obriši ili isključi ostale korisnike
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Čitaj CA
     Permission272=Čitaj račune
     Permission273=Izdaj račun
    @@ -765,7 +775,7 @@ Permission283=Obriši kontakte
     Permission286=Izvezi kontakte
     Permission291=Čitaj tarife
     Permission292=Postavi dozvole na tarifama
    -Permission293=Izmjeni tarife kupaca
    +Permission293=Modify customers tariffs
     Permission300=Čitaj barkodove
     Permission301=Kreiraj/izmjeni barkodove
     Permission302=Obriši barkodove
    @@ -787,11 +797,9 @@ Permission401=Čitaj popuste
     Permission402=Kreiraj/izmjeni popuste
     Permission403=Ovjeri popuste
     Permission404=Obriši popuste
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Obriši plaće
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Izvoz plaća
     Permission520=Čitaj kredite
     Permission522=Kreiraj/izmjeni kredite
    @@ -844,8 +852,8 @@ Permission1251=Pokreni masovni uvoz vanjskih podataka u bazu (učitavanje podata
     Permission1321=Izvezi račune kupaca, atribute i plačanja
     Permission1322=Reopen a paid bill
     Permission1421=Izvezi narudžbe kupaca i atribute
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Obriši zahtjeve odsutnosti
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Čitaj sredstva
     Permission63002=Kreiraj/izmjeni sredstva
     Permission63003=Obriši sredstva
     Permission63004=Poveži sredstava sa događajima agende
    -DictionaryCompanyType=Tipovi komitenata
    -DictionaryCompanyJuridicalType=Zakonski okviri za komitente
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Razina potencijalnog kupca
     DictionaryCanton=Država/provincija
     DictionaryRegion=Regije
    @@ -892,9 +900,9 @@ DictionaryActions=Tipovi događaja agende
     DictionarySocialContributions=Tipovi Društveni ili fiskalnih poreza
     DictionaryVAT=Stope PDV-a ili stope prodajnih poreza
     DictionaryRevenueStamp=Amount of tax stamps
    -DictionaryPaymentConditions=Uvjeti plaćanja
    -DictionaryPaymentModes=Naćini plaćanja
    -DictionaryTypeContact=Tipovi Kontakata/adresa
    +DictionaryPaymentConditions=Rok plaćanja
    +DictionaryPaymentModes=Načini plaćanja
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Formati papira
    @@ -902,53 +910,53 @@ DictionaryFormatCards=Cards formats
     DictionaryFees=Expense report - Types of expense report lines
     DictionarySendingMethods=Metode isporuke
     DictionaryStaff=Zaposlenici
    -DictionaryAvailability=Kašnjenje isporuke
    +DictionaryAvailability=Rok isporuke
     DictionaryOrderMethods=Metode naručivanja
     DictionarySource=Porjeklo ponuda/narudžbi
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Modeli za grafikone računa
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Predlošci e-pošte
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Jedinice
     DictionaryProspectStatus=Status prospekcije
    -DictionaryHolidayTypes=Tipovi odsustva
    -DictionaryOpportunityStatus=Status šanse za projekt/prednost
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Postavi spremljeno
     SetupNotSaved=Setup not saved
     BackToModuleList=Povratak na popis modula
    -BackToDictionaryList=Povratak na popis definicija
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=Upravljanje PDV
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Stopa
     LocalTax1IsNotUsed=Nemoj koristit drugi porez
    -LocalTax1IsUsedDesc=Koristi drugi porez (osim PDV)
    -LocalTax1IsNotUsedDesc=Nemoj koristiti drugi tip poreza (osim PDV)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Tip drugog poreza
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Nemoj koristiti treći porez
    -LocalTax2IsUsedDesc=Koristi treći porez (osim PDV)
    -LocalTax2IsNotUsedDesc=Nemoj koristiti treći tip poreza (osim PDV)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Tip trećeg poreza
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= Upravljenje RE
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= Kao zadano preporučeni RE je 0. Kraj prvila.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= Upravljanje IRPF
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= Kao zadano preporučeni IRPF je 0. Kraj prvila.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=Upravljenje RE
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Kao zadano preporučeni RE je 0. Kraj prvila.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=Upravljanje IRPF
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Kao zadano preporučeni IRPF je 0. Kraj prvila.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Izvještaji o lokalnim porezima
     CalcLocaltax1=Prodaja - Nabava
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Prodaja
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Oznake korištene kao zadane ako ne postoji prijevoda za kod
     LabelOnDocuments=Oznake na dokumentima
    -NbOfDays=Br. dana
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Na kraju mjeseca
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,19 +994,19 @@ DatabaseUser=Korisnik baze podataka
     DatabasePassword=Lozinka baze podataka
     Tables=Tabele
     TableName=Naziv tabele
    -NbOfRecord=Br. zapisa
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Tip upr. programa
     SummarySystem=Sažetak informacija o sistemu
     SummaryConst=Popis svih Dolibarr parametara podešavanja
    -MenuCompanySetup=Company/Organization
    +MenuCompanySetup=Tvrtka/Organizacija
     DefaultMenuManager= Upravitelj standardnog izbornika
     DefaultMenuSmartphoneManager=Upravitelj mobilnog izbornika
     Skin=Skin teme
     DefaultSkin=Zadani skin teme
     MaxSizeList=Maks. dužina za popis
     DefaultMaxSizeList=Zadana maks. dužina popisa
    -DefaultMaxSizeShortList=Zadana maks. dužina za kratke popise ( npr. na kartici kupca)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Poruka dana
     MessageLogin=Poruka na stranici za prijavu
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Stalni obrazac za pretraživanje na ljevom izborniku
     DefaultLanguage=Zadani jezik za korištenje (kod jezika)
     EnableMultilangInterface=Omogući višejezično sučelje
     EnableShowLogo=Prikaži logo na ljevom izborniku
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Tvrtka/Organizacija
    +CompanyIds=Company/Organization identities
     CompanyName=Naziv
     CompanyAddress=Adresa
     CompanyZip=PBR
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Vlasnik bankovnog računa %s
     BankModuleNotActive=Modul bankovnih računa nije omogučen
     ShowBugTrackLink=Prikaži poveznicu "<strong>%s</strong>"
     Alerts=Obavijesti
    -DelaysOfToleranceBeforeWarning=Tolerancija kašnjenja prije upozorenja
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Tolerancija kašnjenja (u danima) prije obavijesti o planiranim događajima (događaji agende) koji nisu još završeni
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolerancija kašnjenja (u danima) prije obavijesti o projektima koji nisu zatvoreni na vrijeme
    -Delays_MAIN_DELAY_TASKS_TODO=Tolerancija kašnjenja (u danima) prije obavijesti o planiranim događajima (projektni zadaci) koji nisu još završeni
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolerancija kašnjenja (u danima) prije obavijesti o narudžbama koje nisu još obrađene
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolerancija kašnjenja (u danima) prije obavijesti o ponudama za zatvaranje
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolerancija kašnjenja (u danima) prije obavijesti o ponudama koje nisu naplačene
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerancija kašnjenja (u danima) prije obavijesti o uslugama za aktivaciju
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerancija kašnjenja (u danima) prije obavijesti o isteklim uslugama
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerancija kašnjenja (u danima) prije obavijesti o neplaćenim računima dobavljača
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerancija kašnjenja (u danima) prije obavijesti o neplaćenim računima kupaca
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerancija kašnjenja (u danima) prije obavijesti o usklađivanju s bankom u tijeku
    -Delays_MAIN_DELAY_MEMBERS=Tolerancija kašnjenja (u danima) prije obavijesti o zakašnjelim članarinama
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancija kašnjenja (u danima) prije obavijesti za napraviti čekovne pologe
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerancija kašnjenja (u danima) prije obavijesti za odobravanje izvještaja troška
    -SetupDescription1=Sučelje postavki je za inicijalnu podešavanje parametara prije korištenja Dolibarr-a.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Ostale stavke izbornika upravljaju dodatnim parametrima.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Pregled sigurnosnih događaja
    -Audit=Revizija
    +Audit=Security events
     InfoDolibarr=O Dolibarr instalaciji
     InfoBrowser=O pregledniku
     InfoOS=O OS-u
    @@ -1056,20 +1066,20 @@ BrowserName=Naziv preglednika
     BrowserOS=OS preglednika
     ListOfSecurityEvents=Popis Dolibarr sigurnosnih događaja
     SecurityEventsPurged=Sigurnosni događaji trajno obrisani
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Dostupne aplikacije/moduli
     ToActivateModule=Za aktivaciju modula, idite na podešavanja (Naslovna->Podešavanje->Moduli).
     SessionTimeOut=Istek za sesije
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Unesite sve referentne podatke. Možete postaviti svoje vrijednos
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=Svi ostali sigurnosni parametri su definirani ovdje.
     LimitsSetup=Podešavanje limita/preciznosti
    -LimitsDesc=Ovdje možete podesiti limite, preciznost i optimizaciju korištenu u Dolibarr-u
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Maks. decimala za jediničnu cijenu
     MAIN_MAX_DECIMALS_TOT=Maks. decimala za ukupnu cijenu
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Neto jedinična cijena proizvoda
     TotalPriceAfterRounding=Ukupna cijena (neto/PDV/uklj. porez) nakon zaokruživanja
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Provjerite vaše postavke lokalnog sendmail-a
     BackupDesc=Za kreiranje kompletnog backupa, morate:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Arhivirani direktorij treba biti spremljen na sigurno mjesto.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Za vraćanje backupa morate:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL uvoz
     ForcedToByAModule= Ovo pravilo je forsirano na <b>%s</b> od aktiviranog modula
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL funkcije nisu dostupne u vašem PHP
     DownloadMoreSkins=Više skinova za skinuti
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Prikaži profesionalni ID s adresama na dokumentima
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Parcijalni prijevod
    -MAIN_DISABLE_METEO=Onemogući meteo pregled
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Testiraj prijavu na API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Vanjski pristup
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Dodatni atributi
     ExtraFieldsLines=Dodatni atributi (stavke)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Dodatni atributi (stavke narudžbe)
     ExtraFieldsSupplierInvoicesLines=Dodatni atributi (stavke računa)
    -ExtraFieldsThirdParties=Komplementarni atributi (komitenti)
    -ExtraFieldsContacts=Dodatni atributi (kontakt/adresa)
    +ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Dodatni atributi (član)
     ExtraFieldsMemberType=Dodatni atributi (tip člana)
     ExtraFieldsCustomerInvoices=Dodatni atributi (računi)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=samo alfanumerički i mala slova bez razmaka
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Putanja do dokumenata
     PathDirectory=Mapa
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Postavke prijevoda
     TranslationKeySearch=Pretraži prijevod po ključi ili tekstu
     TranslationOverwriteKey=Prepiši prevedeni tekst
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Prevedeni tekst
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=Novi prevedeni tekst za prikaz
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Morate omogućiti barem 1 modul
    -ClassNotFoundIntoPathWarning=Klasa %s nije pronađena u PHP putanji
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Da u ljeto
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Stanje je trenutno %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Optimizacija pretrage
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Zatraži za preferiranu metodu slanja za komitente.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Izdanje polja %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Uzmi barkod
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Vrati lozinku prema vašoj osobno postavljenoj konfiguraciji.
     SetupPerso=Sukladno vašoj konfiguraciji
     PasswordPatternDesc=Opis uzorka lozinke
    @@ -1195,23 +1206,23 @@ UserMailRequired=E-pošta je obavezna za kreiranje novog korisnika
     HRMSetup=Podešavanje modula HRM
     ##### Company setup #####
     CompanySetup=Podešavanje modula tvrtke
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* po korisniku, jedan po jedan.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* ili podešavanjem globalnih ciljanih adresa e-pošte u postavkama modula.
    -ModelModules=Predlošci dokumenata
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Vodeni žig na skici dokumenta
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Pravila za profesionalne ID
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Mora biti jedinstven?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Obavezno za knjiženje računa?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Izvoz poveznice u <b>%s</b> formatu je dostupno na sljedećoj poveznici: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Izvoz poveznice u <b>%s</b> formatu je dostupno na sljede
     BillsSetup=Podešavanje modula računa
     BillsNumberingModule=Način označavanja računa i odobrenja
     BillsPDFModules=Model dokumenata računa
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Odobrenje
     CreditNotes=Odobrenja
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Upravljanje prijavom svakog korisnika
     AdherentMailRequired=E-pošta je potrebna za kreiranje novog člana
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=Podešavanje LDAP
     LDAPGlobalParameters=Globalni parametri
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Testiranje LDAP pretraživanja
     LDAPSynchroOK=Testiranje sinhronizacije je uspješno
     LDAPSynchroKO=Neuspješno testiranje sinhronizacije
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP veza na LDAP server uspješna (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP veza na LDAP server neuspješna (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server podešen za verziju 3
     LDAPSetupForVersion2=LDAP server podešen za verziju 2
     LDAPDolibarrMapping=Dolibarr mapiranje
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Prijava (samba, activedirectory)
     LDAPFieldLoginSambaExample=Primjer : samaccountname
     LDAPFieldFullname=Puno ime
     LDAPFieldFullnameExample=Primjer : cn
    -LDAPFieldPasswordNotCrypted=Lozinka nije kriptirana
    -LDAPFieldPasswordCrypted=Lozinka kriptirana
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Primjer : userPassword
     LDAPFieldCommonNameExample=Primjer : cn
     LDAPFieldName=Naziv
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Podešavanje modula proizvoda
     ServiceSetup=Podešavanje modula usluga
     ProductServiceSetup=Podešavanje modula Proizvoda i usluga
     NumberOfProductShowInSelect=Maks. broj proizvoda u odabiru ( 0= bez limita)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Zadani tip barkoda za korištenje kod proizvoda
     SetDefaultBarcodeTypeThirdParties=Zadani tip barkoda za korištenje kod komitenta
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Podešavanje modula slanja
     SendingsReceiptModel=Model primke slanja
     SendingsNumberingModules=Način označavanja slanja
     SendingsAbility=Podrži liste isporuke za dostave kupcima
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Slobodan unos teksta kod isporuka
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Način označavanja primke proizvoda
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Napredni uređivač
     ActivateFCKeditor=Aktiviraj napredni uređivač za: 
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Izbornik obrisan
     Menus=Izbornici
    @@ -1548,7 +1562,7 @@ DetailRight=Uvjet za prikaz neautoroziranih sivih izbornika
     DetailLangs=Jezična datoteka za oznakz koda prijevoda
     DetailUser=Interni / Vanjski / Svi
     Target=Cilj
    -DetailTarget=Cilj za poveznice (_blank otvara u novom prozoru)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Promjena izbornika
     DeleteMenu=Obriši stavku izbornika
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=PDV koji dospjeva: <br>- kod isporuke dobara (koristimo dat
     OptionVatDebitOptionDesc=PDV koji dospjeva: <br>- kod isporuke dobara (koristimo datum računa)<br>-kod računa (zaduženja) za usluge
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Vrijeme PDV obaveze zadano ovisno o odabranim opcijama:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Po isporuci
     OnPayment=Po uplati
     OnInvoice=Po računu
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Konto nabave
     AgendaSetup=Podešavanje modula događaja i agende
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Nemoj izvoziti događaj stariji od
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Postavi automatski ovaj tip događaja u filter pretraživanja na prikazu agende.
    -AGENDA_DEFAULT_FILTER_STATUS=Postavi automatski ovaj status u filter pretraživanja na prikazu agende.
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Koji tab želite da se otvori kod odabira izbornika Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Podešavanje modula ClickToDial
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Koristi samo "tel:" kod telefona
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=POS
     CashDeskSetup=Podešavanja modula POS
    -CashDeskThirdPartyForSell=Predefinirani generčki komitent za prodaju
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Zadani račun za prijem gotovinskih uplata
     CashDeskBankAccountForCheque= Zadani račun za prijem čekovnih uplata
     CashDeskBankAccountForCB= Zadani račun za prijem plačanja kreditnim karticama
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Forsiraj i ograniči skladište za skidanje zaliha
    -StockDecreaseForPointOfSaleDisabled=Skidanje zaliha iz POS-a je onemogućeno
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Skidanje zaliha na POS-u nije kompatibilno s upravljanjem lota
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Podešavanje modula zabilješki
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Podešavanje modula webservisa
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Način označavanja čekovnih primki
     MultiCompanySetup=Više poduzeća module podešavanje
     ##### Suppliers #####
     SuppliersSetup=Podešavanje modula dobavljača
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Način označavanja računa dobavljača
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Podešavanje modula projekata
     ProjectsModelModule=Model dokumenata projektnih izvještaja
     TasksNumberingModules=Način označavanja zadataka
     TaskModelModule=Model dokumenata izvještaja zadataka
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=Popis obavijesti po korisniku *
     ListOfNotificationsPerUserOrContact=Popis obavijesti po korisniku* ili po kontaktu **
     ListOfFixedNotifications=Popis stalnih obavijesti
    -GoOntoUserCardToAddMore=Idite na tab "Obavijesti" korisnika za dodavanje ili micanje obavijesti za korisnike
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Najviše dopušteno
     BackupDumpWizard=Čarobnjak za izradu backup-a baze podataka
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Boja poveznica
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Boja pozadine za parne redove u tablici
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Stopa prodajnog poreza
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Tip predloška
    -TemplateIsVisibleByOwnerOnly=Predložak je vidljiv samo vlasniku
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=Ispravak vremenske zone
    @@ -1735,10 +1750,10 @@ MailToSendInvoice=Računi za kupce
     MailToSendShipment=Isporuke
     MailToSendIntervention=Intervencije
     MailToSendSupplierRequestForQuotation=Quotation request
    -MailToSendSupplierOrder=Purchase orders
    -MailToSendSupplierInvoice=Vendor invoices
    +MailToSendSupplierOrder=Narudžbe dobavljačima
    +MailToSendSupplierInvoice=Računi dobavljača
     MailToSendContract=Ugovori
    -MailToThirdparty=Komitenti
    +MailToThirdparty=Treće osobe
     MailToMember=Članovi
     MailToUser=Korisnici
     MailToProject=Projects page
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Predlošci za dokumente proizvoda
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=Vidi * napomenu za popis mogućih zamjenskih varijabli
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=Svi izdavači
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Dodaj ostale stranice ili usluge
     AddModels=Dodaj predloške dokumenta ili brojanja
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detekcija nije moguća
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Popis dostupnih APIa
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Odredišna stranica
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=PBR
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/hr_HR/banks.lang b/htdocs/langs/hr_HR/banks.lang
    index e82084d9122..72ee683d1ed 100644
    --- a/htdocs/langs/hr_HR/banks.lang
    +++ b/htdocs/langs/hr_HR/banks.lang
    @@ -7,13 +7,13 @@ BankName=Ime banke
     FinancialAccount=Račun
     BankAccount=Bankovni račun
     BankAccounts=Bankovni računi
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Prikaži račun
     AccountRef=Financijski račun ref.
     AccountLabel=Oznaka financijskog računa
     CashAccount=Gotovinski račun
     CashAccounts=Gotovinski računi
    -CurrentAccounts=Trenutni računi
    +CurrentAccounts=Tekući računi
     SavingAccounts=Štedni računi
     ErrorBankLabelAlreadyExists=Oznaka financijskog računa već postoji
     BankBalance=Stanje računa
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Adresa računa
     BankAccountCountry=Država računa
     BankAccountOwner=Naziv vlasnika računa
     BankAccountOwnerAddress=Adresa vlasinka računa
    -RIBControlError=Neispravne vrijednosti. Ovo znači da informacije za ovaj račun nisu potpune ili su krive ( provjerite državu, brojeve i IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Kreiraj račun
     NewBankAccount=Novi račun
     NewFinancialAccount=Novi financijski račun
    @@ -55,7 +55,7 @@ EditFinancialAccount=Uredi račun
     LabelBankCashAccount=Oznaka za banku ili gotovinu
     AccountType=Tip računa
     BankType0=Štedni račun
    -BankType1=Trenutni ili račun kreditne kartice
    +BankType1=Tekući račun ili kreditna kartica
     BankType2=Gotovinski račun
     AccountsArea=Sučelje računa
     AccountCard=Kartica računa
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Može se uskladiti
     Conciliate=Uskladi
     Conciliation=Usklađivanje
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Uključujući i zatvorene račune
     OnlyOpenedAccount=Samo otvoreni računi
    @@ -104,7 +105,7 @@ SocialContributionPayment=Plaćanje društveni/fiskalni porez
     BankTransfer=Bankovni transfer
     BankTransfers=Bankovni transferi
     MenuBankInternalTransfer=Interni prijenos
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Od
     TransferTo=Za
     TransferFromToDone=Prijenos sa <b>%s</b> na <b>%s</b> od <b>%s</b> %s je pohranjen.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bankovni čekovi
     BankChecksToReceipt=Čekovi koji čekaju depozit
     ShowCheckReceipt=Prikaži potvrdu depozita čeka
    -NumberOfCheques=Br čekova
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Povratak na račun
     ShowAllAccounts=Prikaži za sve račune
    -FutureTransaction=Transakcija je u budućnosti. Ne može se uskladiti.
    -SelectChequeTransactionAndGenerate=Odaberite/filtrirajte čekove koje želite uključiti, odaberite potvrdu depozita i kliknite "Kreiraj"
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Odaberite bankovni izvod povezan s usklađenjem. Koristite numeričke vrijednosti: YYYYMM ili YYYYMMDD radi sortiranja
     EventualyAddCategory=Konačno, odredite kategoriju u koju želite svrstati podatke
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Datum povratka čeka
     CheckRejected=Ček vračen
     CheckRejectedAndInvoicesReopened=Ček je vračen i računi su ponovo otvoreni
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/hr_HR/bills.lang b/htdocs/langs/hr_HR/bills.lang
    index 1643e97e380..44fe2b0ec3e 100644
    --- a/htdocs/langs/hr_HR/bills.lang
    +++ b/htdocs/langs/hr_HR/bills.lang
    @@ -1,55 +1,55 @@
     # Dolibarr language file - Source file is en_US - bills
    -Bill=Račun
    +Bill=Račun R1
     Bills=Računi
    -BillsCustomers=Računi za kupce
    -BillsCustomer=Račun za kupca
    -BillsSuppliers=Račun dobavljača
    -BillsCustomersUnpaid=Neplaćeni računi kupca
    -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s
    +BillsCustomers=Računi kupaca
    +BillsCustomer=Račun kupca
    +BillsSuppliers=Računi dobavljača
    +BillsCustomersUnpaid=Neplaćeni računi kupaca
    +BillsCustomersUnpaidForCompany=Neplaćeni računi kupaca za %s
     BillsSuppliersUnpaid=Neplaćeni računi dobavljača
    -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s
    +BillsSuppliersUnpaidForCompany=Neplaćeni računi dobavljača za %s
     BillsLate=Zakašnjela plaćanja
     BillsStatistics=Statistika računa kupaca
     BillsStatisticsSuppliers=Statistika računa dobavljača
    -DisabledBecauseDispatchedInBookkeeping=Disabled because invoice was dispatched into bookkeeping
    -DisabledBecauseNotLastInvoice=Disabled because invoice is not erasable. Some invoices were recorded after this one and it will create holes in the counter.
    -DisabledBecauseNotErasable=Onemogućeno jer ne može biti obrisano
    +DisabledBecauseDispatchedInBookkeeping=Nije moguće provesti jer je račun poslan u knjigovodstvo
    +DisabledBecauseNotLastInvoice=Nije moguće provesti jer se račun ne može izbrisati. U međuvremenu su ispostavljeni novi računi i tako bi neki brojevi ostali preskočeni.
    +DisabledBecauseNotErasable=Nije moguće provesti jer ne može biti obrisano
     InvoiceStandard=Običan račun
     InvoiceStandardAsk=Običan račun
     InvoiceStandardDesc=Ovo je uobičajeni tip računa.
    -InvoiceDeposit=Down payment invoice
    -InvoiceDepositAsk=Down payment invoice
    -InvoiceDepositDesc=This kind of invoice is done when a down payment has been received.
    -InvoiceProForma=Predračun
    -InvoiceProFormaAsk=Predračun
    -InvoiceProFormaDesc=<b> Predračun </ b> je kopija pravog računa, ali nema knjigovodstvene vrijednosti.
    +InvoiceDeposit=Račun za predujam
    +InvoiceDepositAsk=Račun za predujam
    +InvoiceDepositDesc=Ovakav račun izdaje se kada je zaprimljen predujam
    +InvoiceProForma=Proforma invoice
    +InvoiceProFormaAsk=Proforma invoice
    +InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Zamjenski račun
     InvoiceReplacementAsk=Zamjenski račun za račun
    -InvoiceReplacementDesc=<b>Zamjenski račun</b>koristi se za opozivanje i zamjenu postojećeg računa koji još nije plaćen. <br><br>Bilješka: Mogu biti zamijenjeni samo računi uz koje nije vezano nikakvo plaćanje. Ako račun kojeg mijenjate nije još zatvoren, bit će samostalno zatvoren kao "napušten".
    -InvoiceAvoir=Odobrenje
    -InvoiceAvoirAsk=Odobrenje za ispravak računa
    -InvoiceAvoirDesc=<b>kredit<b> je negativan račun koji se koristi prilikom riješavanja problema koji nastaje kada je na računu drugačiji iznos od plaćenog (npr. kada je kupac uplatio više greškom ili neće platiti sve jer je jedan dio proizvoda vratio).
    -invoiceAvoirWithLines=Kreiranje odobrenja  sa stavkama po izvornom računu
    -invoiceAvoirWithPaymentRestAmount=Kreiranje odobrenja s neplačenim iznosom po izvornom računu
    -invoiceAvoirLineWithPaymentRestAmount=Financijsko odobrenje za neplaćeni iznos
    -ReplaceInvoice=Zamjeni račun %s
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceAvoir=Storno računa/knjižno odobrenje
    +InvoiceAvoirAsk=Storno računa/knjižno odobrenje za ispravak računa
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
    +invoiceAvoirWithLines=Izradi storno računa sa stavkama iz izvornog računa
    +invoiceAvoirWithPaymentRestAmount=Izradi knjižno odobrenje s preostalim neplaćenim iznosom iz izvornog računa
    +invoiceAvoirLineWithPaymentRestAmount=Knjižno odobrenje za preostali neplaćeni iznos
    +ReplaceInvoice=Zamijeni račun %s
     ReplacementInvoice=Zamjenski račun
     ReplacedByInvoice=Zamijenjen s računom %s
     ReplacementByInvoice=Zamijenjen računom
     CorrectInvoice=Ispravi račun %s
     CorrectionInvoice=Ispravljeni račun
    -UsedByInvoice=Korišteno za plaćanje računa %s
    +UsedByInvoice=Iskorišteno za plaćanje računa %s
     ConsumedBy=Potrošio
     NotConsumed=Nije potrošio
     NoReplacableInvoice=Nema zamjenjivih računa
     NoInvoiceToCorrect=Nema računa za ispravak
    -InvoiceHasAvoir=Was source of one or several credit notes
    +InvoiceHasAvoir=Bio je izvor od jednog ili više knjižnih odobrenja
     CardBill=Kartica računa
     PredefinedInvoices=Predlošci računa
    -Invoice=Račun
    -PdfInvoiceTitle=Račun
    +Invoice=Račun R1
    +PdfInvoiceTitle=Račun R1
     Invoices=Računi
    -InvoiceLine=Popis računa
    +InvoiceLine=Redak računa
     InvoiceCustomer=Račun za kupca
     CustomerInvoice=Račun za kupca
     CustomersInvoices=Računi za kupce
    @@ -58,50 +58,50 @@ SuppliersInvoices=Računi dobavljača
     SupplierBill=Račun dobavljača
     SupplierBills=Računi dobavljača
     Payment=Plaćanja
    -PaymentBack=Povratno plaćanje
    -CustomerInvoicePaymentBack=Povrat plaćanja
    +PaymentBack=Isplata
    +CustomerInvoicePaymentBack=Isplata
     Payments=Plaćanja
    -PaymentsBack=Povratna plaćanja
    -paymentInInvoiceCurrency=po valuti računa
    +PaymentsBack=Isplate
    +paymentInInvoiceCurrency=u valuti računa
     PaidBack=Uplaćeno natrag
     DeletePayment=Izbriši plaćanje
    -ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    -SupplierPayments=Plaćanja dobavljačima
    +ConfirmDeletePayment=Sigurno želite izbrisati ovo plaćanje?
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +SupplierPayments=Uplate dobavljačima
     ReceivedPayments=Primljene uplate
     ReceivedCustomersPayments=Primljene uplate od kupaca
    -PayedSuppliersPayments=Uplata uplaćena dobavljačima
    -ReceivedCustomersPaymentsToValid=Primljene uplate kupaca za ovjeru
    +PayedSuppliersPayments=Payments paid to suppliers
    +ReceivedCustomersPaymentsToValid=Uplate kupaca za ovjeru
     PaymentsReportsForYear=Izvještaji plaćanja za %s
     PaymentsReports=Izvještaji plaćanja
     PaymentsAlreadyDone=Izvršena plaćanja
     PaymentsBackAlreadyDone=Izvršeni povrati plaćanja
    -PaymentRule=Pravilo plaćanja
    -PaymentMode=Oblik plaćanja
    -PaymentTypeDC=Debit/Credit Card
    +PaymentRule=Način plaćanja
    +PaymentMode=Način plaćanja
    +PaymentTypeDC=Debitna/kreditna kartica
     PaymentTypePP=PayPal
    -IdPaymentMode=Oblik plaćanja (ID)
    -CodePaymentMode=Payment type (code)
    -LabelPaymentMode=Oblik plaćanja (oznaka)
    -PaymentModeShort=Oblik plaćanja
    -PaymentTerm=Uvjeti plaćanja
    -PaymentConditions=Uvjeti plaćanja
    -PaymentConditionsShort=Uvjeti plaćanja
    +IdPaymentMode=Način plaćanja (oznaka)
    +CodePaymentMode=Način plaćanja (kod)
    +LabelPaymentMode=Način plaćanja (natpis)
    +PaymentModeShort=Način plaćanja
    +PaymentTerm=Rok plaćanja
    +PaymentConditions=Rok plaćanja
    +PaymentConditionsShort=Rok plaćanja
     PaymentAmount=Iznos plaćanja
     ValidatePayment=Ovjeri plaćanje
    -PaymentHigherThanReminderToPay=Plaćanje je veće nego podsjetnik za plaćanje
    -HelpPaymentHigherThanReminderToPay=Pažnja, iznos plaćanja jednog ili više računa je veći nego ostatak plaćanja. <br> Promjenite Vaš unos, u suprotnom potvrdite i razmislite o kreiranju odborenja za primljeni višak za svaki pretplaćeni račun.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +PaymentHigherThanReminderToPay=Iznos plaćanja veći je od iznosa po podsjetniku na plaćanje
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Označi kao plaćeno
     ClassifyPaidPartially=Označi kao djelomično plaćeno
     ClassifyCanceled=Označi kao napušteno
     ClassifyClosed=Označi kao zatvoreno
    -ClassifyUnBilled=Klasificirati 'nefakturirano'
    +ClassifyUnBilled=Označi kao "nezaračunato"
     CreateBill=Izradi račun
    -CreateCreditNote=Izradi zadužnicu
    -AddBill=Izradi račun ili kreditnu bilješku
    -AddToDraftInvoices=Dodati u skice računa
    +CreateCreditNote=Create credit note
    +AddBill=Izradi račun ili storno računa/knjižno odobrenje
    +AddToDraftInvoices=Dodati u predložak računa
     DeleteBill=Izbriši račun
     SearchACustomerInvoice=Traži račun za kupca
     SearchASupplierInvoice=Traži račun dobavljača
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Zatvoreno (neplaćeno)
     BillStatusClosedPaidPartially=Plaćeno (djelomično)
     BillShortStatusDraft=Skica
     BillShortStatusPaid=Plaćeno
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Plaćeno
     BillShortStatusCanceled=Napušteno
     BillShortStatusValidated=Ovjereno
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Zatvoreno
     BillShortStatusClosedPaidPartially=Plaćeno (djelomično)
     PaymentStatusToValidShort=Za ovjeru
    -ErrorVATIntraNotConfigured=OIB nije upisan
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Osnovni oblik plaćanja nije dodijeljen. Kako biste to ispravili otvorite postavke, mapa računi.
     ErrorCreateBankAccount=Izradite bankovni račun i nakon toga podesite oblik plaćanja u postavkama, mapa računi.
     ErrorBillNotFound=Račun %s ne postoji
    -ErrorInvoiceAlreadyReplaced=Greška! Pokušali ste ovjeriti račun koji mijenja račun %s, a taj račun je već zamijenjen računom %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Greška! Popust je već iskorišten.
     ErrorInvoiceAvoirMustBeNegative=Greška! Ispravan račun treba imati negativan iznos.
     ErrorInvoiceOfThisTypeMustBePositive=Greška! Ovaj tip računa mora imati pozitivan iznos
     ErrorCantCancelIfReplacementInvoiceNotValidated=Greška! Ne može se poništiti račun koji je zamijenjen drugim računom koji je otvoren kao skica.
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Od
     BillTo=Za
     ActionsOnBill=Radnje na računu
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Preostali neplaćeni <b>(%s %s)</b> je garantirani popust zato što je plaćanje izvršeno prije valute plaćanja. Reguliramo PDV putem odobrenja.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Preostali neplaćeni <b>(%s %s)</b> je garantirani popust zato što je plaćanje izvršeno prije valute plaćanja. Prihvaćam gubitak iznos PDV-a na ovom popustu.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Preostali neplaćeni <b>(%s %s)</b> je garantirani popust zato što je plaćanje izvršeno prije valute plaćanja. Potražujem povrat poreza na popustu bez odobrenja.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Loš kupac
     ConfirmClassifyPaidPartiallyReasonProductReturned=Proizvod djelomično vraćen
     ConfirmClassifyPaidPartiallyReasonOther=Iznos otpisan iz drugih razloga
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Ovaj izbor je moguć ako vaš račun je izdan s prikladnom napomenom. (Primjer «Samo porez koji odgovara cijeni koja je plaćena daje pravo na odbitak poreza»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=U nekim zemljama, taj izbor može biti moguć samo ako vaš račun sadrži ispravne bilješke.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Koristi ovaj izbor ako ni jedan drugi nije odgovarajući
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Loš kupac</b> je kupac koji odbija platit svoj dug.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ovaj izbor se koristi kada plaćanje nije kompletno zato jer je neki od proizvoda vraćen.
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Koristi ovaj izbor ako ostali nisu prikladni, npr. u sljedećoj situaciji: <br> - uplata nije kompletna jer neki od proizvoda s vraćeni nazad <br> - iznos potraživanja je prevažan jer je izostavljen popust <br> U svim slučajevima, iznos prekoračenja mora biti ispravljen u računovodstvu kreiranjem odobrenja.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Drugo
     ConfirmClassifyAbandonReasonOtherDesc=Ovaj izbor će biti korišten u svim ostalim slućajevima. Na primjer zato jer planirate kreirati zamjenski račun.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,10 +201,11 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Ovjeri račun
     UnvalidateBill=Neovjeren račun
    -NumberOfBills=Broj računa
    +NumberOfBills=No. of invoices
     NumberOfBillsByMonth=Broj računa po mjesecu
     AmountOfBills=Broj računa
    -AmountOfBillsByMonthHT=Broj računa po mjesecu (bez PDV-a)
    +AmountOfBillsHT=Amount of invoices (net of tax)
    +AmountOfBillsByMonthHT=Iznos računa po mjesecu (bez PDV-a)
     ShowSocialContribution=Prikaži društveni/fiskalni porez
     ShowBill=Prikaži račun
     ShowInvoice=Prikaži račun
    @@ -216,7 +218,7 @@ AlreadyPaid=Plaćeno do sada
     AlreadyPaidBack=Povrati do sada
     AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments)
     Abandoned=Napušteno
    -RemainderToPay=Preostali neplaćeni iznos
    +RemainderToPay=Preostalo za platiti
     RemainderToTake=Preostali iznos za primiti
     RemainderToPayBack=Remaining amount to refund
     Rest=U toku
    @@ -246,12 +248,12 @@ DatePointOfTax=Porezna stavka
     NoInvoice=Nema računa
     ClassifyBill=Svrstavanje računa
     SupplierBillsToPay=Neplaćeni računi dobavljača
    -CustomerBillsUnpaid=Neplaćeni računi kupca
    +CustomerBillsUnpaid=Neplaćeni računi kupaca
     NonPercuRecuperable=Nepovratno
     SetConditions=Odredi rok plaćanja
     SetMode=Odredi oblik plaćanja
     SetRevenuStamp=Postavi prihodovnu markicu
    -Billed=Nplaćeno
    +Billed=Zaračunato
     RecurringInvoices=Pretplatnički računi
     RepeatableInvoice=Predložak računa
     RepeatableInvoices=Predlošci računa
    @@ -260,15 +262,15 @@ Repeatables=Predlošci
     ChangeIntoRepeatableInvoice=Pretvori u predložak računa
     CreateRepeatableInvoice=Izradi predložak računa
     CreateFromRepeatableInvoice=Izradi iz predloška računa
    -CustomersInvoicesAndInvoiceLines=Računi klijenata i redovi računa
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Računi i plaćanja kupca
    -ExportDataset_invoice_1=Računi kupca i popis računa
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Računi i plaćanja kupca
     ProformaBill=Predračun:
     Reduction=Smanjivanje
    -ReductionShort=Smanjivanje
    +ReductionShort=Popust
     Reductions=Smanjivanja
    -ReductionsShort=Smanjivanje
    +ReductionsShort=Popust
     Discounts=Popusti
     AddDiscount=Izradi popust
     AddRelativeDiscount=Izradi relativan popust
    @@ -282,7 +284,7 @@ RelativeDiscount=Relativni popust
     GlobalDiscount=Opći popust
     CreditNote=Bonifikacija
     CreditNotes=Bonifikacija
    -CreditNotesOrExcessReceived=Credit notes or excess received
    +CreditNotesOrExcessReceived=Storno računa/knjižno odobrenje
     Deposit=Down payment
     Deposits=Down payments
     DiscountFromCreditNote=Popust iz bonifikacije %s
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Adresa za naplatu
    -HelpEscompte=Ovaj popust zajamčen je jer je kupac izvršio plaćanje prije roka.
    -HelpAbandonBadCustomer=Ovaj iznos neće biti plaćen (kupac je loš kupac) i smatra se kao gubitak.
    -HelpAbandonOther=Ovaj iznos neće biti plaćen zbog greške (na primjer odabran je krivi kupac ili je račun zamjenjen drugim računom)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=ID plaćanja društvenog/fiskalnog poreza
     PaymentId=Oznaka plaćanja
     PaymentRef=Ref. plaćanja
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Račun nije izabran
     CloneInvoice=Kloniraj račun
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Radnja obustavljena jer je račun zamjenjen.
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Broj plaćanja
    +DescTaxAndDividendsArea=Ovo sučelje predstavlja sažetak svih plaćanja za specijalne troškove. Uključeni su samo podaci s plaćanjem u tekućoj godini.
    +NbOfPayments=No. of payments
     SplitDiscount=Podijeli popust u dva
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Unesite iznos za svaku od oba dijela:
    -TotalOfTwoDiscountMustEqualsOriginal=Ukupan zbroj dva nova rabata mora biti jednak kao originalni iznos rabata.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Povezani račun
     RelatedBills=Povezani račun
    -RelatedCustomerInvoices=Povezani računi kupca
    +RelatedCustomerInvoices=Povezani računi kupaca
     RelatedSupplierInvoices=Povezani računi dobavljača
     LatestRelatedBill=Posljednju vezani računi
    -WarningBillExist=Upozorenje, jedan ili više računa već postoje
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Alat za spajanje PDF dokumenta
     AmountPaymentDistributedOnInvoice=Plaćeni iznos je prosljeđen po računu
    -PaymentOnDifferentThirdBills=Dopusti plaćanja za različite račune, ali od iste matične tvrtke
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Obavijest plaćanja
     ListOfPreviousSituationInvoices=Popis prijašnjih računa etape
     ListOfNextSituationInvoices=Popis narednih računa etapa
    @@ -368,8 +370,8 @@ WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from curre
     ViewAvailableGlobalDiscounts=View available discounts
     # PaymentConditions
     Statut=Status
    -PaymentConditionShortRECEP=Due Upon Receipt
    -PaymentConditionRECEP=Due Upon Receipt
    +PaymentConditionShortRECEP=Dospijeće po primitku
    +PaymentConditionRECEP=Dospijeće po primitku
     PaymentConditionShort30D=30 dana
     PaymentCondition30D=30 dana
     PaymentConditionShort30DENDMONTH=30 dana na kraju mjeseca
    @@ -380,7 +382,7 @@ PaymentConditionShort60DENDMONTH=60 dana na kraju mjeseca
     PaymentCondition60DENDMONTH=Unutar 60 dana od kraja mjeseca
     PaymentConditionShortPT_DELIVERY=Isporuka
     PaymentConditionPT_DELIVERY=Po primitku
    -PaymentConditionShortPT_ORDER=Narudžba
    +PaymentConditionShortPT_ORDER=Narudžbenica
     PaymentConditionPT_ORDER=Po nalogu
     PaymentConditionShortPT_5050=50-50
     PaymentConditionPT_5050=50%% unaprijed, 50%% nakon isporuke
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Ček
     PaymentTypeShortCHQ=Ček
     PaymentTypeTIP=TIP (Dokumenti uz plaćanje) 
     PaymentTypeShortTIP=TIP Plaćanje
    -PaymentTypeVAD=Internet plaćanje
    -PaymentTypeShortVAD=Internet plaćanje
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Skica banke
     PaymentTypeShortTRA=Skica
     PaymentTypeFAC=Faktor
     PaymentTypeShortFAC=Faktor
     BankDetails=Bankovni podaci
     BankCode=Oznaka Banke
    -DeskCode=Desk code
    -BankAccountNumber=Broj računa
    -BankAccountNumberKey=Ključ
    +DeskCode=Office code
    +BankAccountNumber=IBAN
    +BankAccountNumberKey=Check digits
     Residence=Izravno zaduženje
    -IBANNumber=IBAN broj
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT broj
    @@ -441,11 +443,11 @@ IntracommunityVATNumber=Porezni broj
     PaymentByChequeOrderedTo=Plačanja čekom (uključujući porez) su naplativi prema %s poslani 
     PaymentByChequeOrderedToShort=Plačanja čekom (uključujući porez) su naplativi prema 
     SendTo=Pošalji
    -PaymentByTransferOnThisBankAccount=Bezgotovinsko plaćanje na slijedeći bankovni račun
    +PaymentByTransferOnThisBankAccount=Bezgotovinsko plaćanje na sljedeći bankovni račun
     VATIsNotUsedForInvoice=Ne primjenjivo VAT čl.-293B CGI-a
     LawApplicationPart1=Po primjeni zakona 80.335 od 12.05.80
     LawApplicationPart2=Roba ostaje vlasništvo
    -LawApplicationPart3=prodavača sve do izvršenja cjelokupnog plaćanja
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=njihove cijene.
     LimitedLiabilityCompanyCapital=SARL s kapitalom od
     UseLine=Primjeni
    @@ -463,7 +465,7 @@ Cheques=Čekovi
     DepositId=ID depozita
     NbCheque=Broj čekova
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Koristi adresu naplate kupca umjesto adrese komitenta kao primatelja računa
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Prikaži sve neplaćene račune
     ShowUnpaidLateOnly=Prikaži samo račune kojima kasni plaćanje
     PaymentInvoiceRef=Plaćanje računa %s
    @@ -474,21 +476,22 @@ Reported=Odgođeno
     DisabledBecausePayments=Nije moguće obzirom da postoje neka plaćanja
     CantRemovePaymentWithOneInvoicePaid=Plaćanje se ne može izbrisati obzirom da postoji barem jedan račun koji je označen kao plaćen
     ExpectedToPay=Očekivano plaćanje
    -CantRemoveConciliatedPayment=Nije moguče uklanjanje usaglašenog plaćanja
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Plaćeno s ovom uplatom
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Klasificiraj "plaćene" bonifikacije kao plaćene u cjelosti.
    -ClosePaidContributionsAutomatically=Označi "Plaćeno" sve društvene ili fiskalne kompletno plaćene doprinose.
    -AllCompletelyPayedInvoiceWillBeClosed=Svi računi za plačanje bez ostatka biti će automatski zatvoreni s statusom "Plaćeno"
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Plati
     ToMakePaymentBack=Povrat
     ListOfYourUnpaidInvoices=Popis neplaćenih računa
     NoteListOfYourUnpaidInvoices=Napomena: Ovaj popis sadrži samo račune za komitente kojima ste vi prodajni predstavnik
     RevenueStamp=Prihodovna markica
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=Kako biste izradili novi predložak računa morate prvo izraditi običan račun i onda ga promijeniti u "predložak"
     PDFCrabeDescription="Crabe" predložak PDF računa. Potpuni predložak računa (preporučeni)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=PDF račun prema Crevette predlošku. Kompletan predložak računa za etape
     TerreNumRefModelDesc1=Vraća broj u formatu %syymm-nnnn za standardne račune i %syymm-nnnn za odobrenja gdje je yy godina, mm je mjesec i nnnn je sljedni broj bez prekida i bez mogučnosti povratka na 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Napredak stavke računa ne može biti veći od ili  jed
     updatePriceNextInvoiceErrorUpdateline=Greška: promjena cijene na stavki računa: %s
     ToCreateARecurringInvoice=Za kreiranje ponavljajućih računa za ovaj ugovor, prvo kreirajte skicu računa, onda konvertirajte istu u predložak računa i definirajte učestalost generiranja budućih računa.
     ToCreateARecurringInvoiceGene=Za generiranje budućih računa normalno ili ručno, idite na izbornik <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=Ako trebate imati takve račune automatski generirane, zatražite od vašeg administratora da uključi modul <strong>%s</strong>. Napomena: oba načina (ručni i automatski) mogu se koristit zajedno bez rizika od dupliciranja. 
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Izbriši predložak računa
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Račun obrisan
    diff --git a/htdocs/langs/hr_HR/cashdesk.lang b/htdocs/langs/hr_HR/cashdesk.lang
    index f6e639aa9f0..85c430beb54 100644
    --- a/htdocs/langs/hr_HR/cashdesk.lang
    +++ b/htdocs/langs/hr_HR/cashdesk.lang
    @@ -9,7 +9,7 @@ CashdeskShowServices=Prodaja usluga
     CashDeskProducts=Proizvodi
     CashDeskStock=Zaliha
     CashDeskOn=na
    -CashDeskThirdParty=Komitent
    +CashDeskThirdParty=Treća osoba
     ShoppingCart=Košarica
     NewSell=Nova prodaja
     AddThisArticle=Dodaj ovu stavku
    @@ -30,5 +30,15 @@ ShowCompany=Prikaži tvrtku
     ShowStock=Prikaži skladište
     DeleteArticle=Kliknite za brisanje stavke
     FilterRefOrLabelOrBC=Pretraživanje (Ref/Oznaka)
    -UserNeedPermissionToEditStockToUsePos=Možete zatražiti da smanjite zalihe po kreiranju računa, tako da korisnik koji koristi POS ima dozvolu za uređivanje zaliha.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Pisač za ispis računa
    +PointOfSale=POS
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/hr_HR/commercial.lang b/htdocs/langs/hr_HR/commercial.lang
    index 92ee79f4b79..a6dffff41bb 100644
    --- a/htdocs/langs/hr_HR/commercial.lang
    +++ b/htdocs/langs/hr_HR/commercial.lang
    @@ -1,6 +1,6 @@
     # Dolibarr language file - Source file is en_US - commercial
    -Commercial=Komercijala
    -CommercialArea=Sučelje komercijale
    +Commercial=Trgovina
    +CommercialArea=Sučelje trgovine
     Customer=Kupac
     Customers=Kupci
     Prospect=Potencijalni kupac
    @@ -34,7 +34,7 @@ LastActionsToDo=Najstarijih %s nezavršenih akcija
     DoneAndToDoActions=Završeni i za odraditi 
     DoneActions=Završeni događaji
     ToDoActions=Nedovršeni događaji
    -SendPropalRef=Predaja ponude %s
    +SendPropalRef=Ponuda %s
     SendOrderRef=Predaja narudžbe %s
     StatusNotApplicable=Nije primjenjivo
     StatusActionToDo=Napraviti
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefonski poziv
     ActionAC_FAX=Pošalji faks
     ActionAC_PROP=Pošalji ponudu poštom
     ActionAC_EMAIL=Pošalji e-poštu
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Sastanci
     ActionAC_INT=Intervencija na lokaciji
     ActionAC_FAC=Pošalji račun kupca poštom
    @@ -60,7 +61,7 @@ ActionAC_CLO=Zatvoren
     ActionAC_EMAILING=Masovno slanje e-pošte
     ActionAC_COM=Pošalji narudžbu kupca putem pošte
     ActionAC_SHIP=Pošalji dostavu putem pošte
    -ActionAC_SUP_ORD=Send purchase order by mail
    +ActionAC_SUP_ORD=Pošalji narudžbenicu e-poštom
     ActionAC_SUP_INV=Send vendor invoice by mail
     ActionAC_OTH=Ostalo
     ActionAC_OTH_AUTO=Automatski uneseni događaji
    @@ -72,8 +73,8 @@ StatusProsp=Status potencijalnog kupca
     DraftPropals=Skica ponude
     NoLimit=Bez ograničenja
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/hr_HR/companies.lang b/htdocs/langs/hr_HR/companies.lang
    index 41725e3b15d..4043a71cf24 100644
    --- a/htdocs/langs/hr_HR/companies.lang
    +++ b/htdocs/langs/hr_HR/companies.lang
    @@ -1,53 +1,53 @@
     # Dolibarr language file - Source file is en_US - companies
    -ErrorCompanyNameAlreadyExists=Ime poduzeća %s već postoji. Odaberite drugo.
    -ErrorSetACountryFirst=Odaberite prvo državu
    -SelectThirdParty=Odaberi komitenta
    -ConfirmDeleteCompany=Jeste li sigurni da želite obrisati ovu tvrtku i sve vezane informacije za nju?
    +ErrorCompanyNameAlreadyExists=Ime tvrtke %s već postoji. Odaberite drugo.
    +ErrorSetACountryFirst=Prvo odaberite državu
    +SelectThirdParty=Odaberi treću osobu
    +ConfirmDeleteCompany=Jeste li sigurni da želite obrisati ovu tvrtku i sve podatke vezane na nju?
     DeleteContact=Izbriši kontakt/adresu.
    -ConfirmDeleteContact=Jeste li sigurni da želite obrisati ovaj kontakt i sve informacije vezane za njega?
    -MenuNewThirdParty=Novi komitent
    -MenuNewCustomer=Novi kupac
    -MenuNewProspect=Novi potencijalni kupac
    -MenuNewSupplier=New vendor
    -MenuNewPrivateIndividual=Nova privatna osoba
    -NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    -CreateDolibarrThirdPartySupplier=Create a third party (vendor)
    -CreateThirdPartyOnly=Kreiraj komitenta
    -CreateThirdPartyAndContact=Create a third party + a child contact
    -ProspectionArea=Sučelje Potencijalnih kupaca
    -IdThirdParty=Komitent ID
    -IdCompany=ID Tvrtke
    -IdContact=Id kontakta
    +ConfirmDeleteContact=Jeste li sigurni da želite obrisati ovaj kontakt i sve podatke vezane na njega?
    +MenuNewThirdParty=Nova Treća Osoba
    +MenuNewCustomer=Novi Kupac
    +MenuNewProspect=Novi mogući kupac
    +MenuNewSupplier=Novi dobavljač
    +MenuNewPrivateIndividual=Nova fizička osoba
    +NewCompany=Nova tvrtka (mogući kupac, dobavljač)
    +NewThirdParty=Nova Treća Osoba (mogući kupac, dobavljač)
    +CreateDolibarrThirdPartySupplier=Izradi treću osobu (dobavljača)
    +CreateThirdPartyOnly=Izradi treću osobu
    +CreateThirdPartyAndContact=Izradi treću osobu i pripadajući kontakt
    +ProspectionArea=Sučelje mogućih kupaca
    +IdThirdParty=Oznaka treće osobe
    +IdCompany=Oznaka tvrtke
    +IdContact=Oznaka kontakta
     Contacts=Kontakti/Adrese
    -ThirdPartyContacts=Kontakti komitenta
    -ThirdPartyContact=Komitent kontakt/adresa
    +ThirdPartyContacts=Kontakti treće osobe
    +ThirdPartyContact=Kontakti/adrese treće osobe
     Company=Tvrtka
     CompanyName=Naziv tvrtke
     AliasNames=Alias (komercijala, zaštitni znak, ...)
    -AliasNameShort=Naziv aliasa
    +AliasNameShort=Alias Name
     Companies=Kompanije
    -CountryIsInEEC=Zemlja je unutar EU
    -ThirdPartyName=Naziv komitenta
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Komitent
    -ThirdParties=Komitenti
    +ThirdParty=Treća osoba
    +ThirdParties=Treće osobe
     ThirdPartyProspects=Potencijalni kupac
     ThirdPartyProspectsStats=Potencijalni kupci
     ThirdPartyCustomers=Kupci
     ThirdPartyCustomersStats=Kupci
     ThirdPartyCustomersWithIdProf12=Kupci sa %s ili %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Tip komitenta
    +ThirdPartyType=Type of company
     Individual=Privatna osoba
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Matična tvrtka
     Subsidiaries=Podružnice
     ReportByMonth=Report by month
     ReportByCustomers=Report by customer
     ReportByQuarter=Izvještaj po stopi
     CivilityCode=Kod uljudnosti
    -RegisteredOffice=Registriran ured
    +RegisteredOffice=Sjedište
     Lastname=Prezime
     Firstname=Ime
     PostOrFunction=Radno mjesto
    @@ -61,7 +61,7 @@ Region-State=Region - State
     Country=Država
     CountryCode=Šifra države
     CountryId=ID države
    -Phone=Telefon:
    +Phone=Telefon
     PhoneShort=Telefon
     Skype=Skype
     Call=Poziv
    @@ -73,14 +73,14 @@ No_Email=Odbija masovno slanje e-pošte
     Fax=Faks
     Zip=Poštanski broj
     Town=Grad
    -Web=Web
    +Web=Mreža
     Poste= Pozicija
    -DefaultLang=Primarni jezik
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Ponude
    @@ -110,12 +110,12 @@ ProfId3Short=Prof. id 3
     ProfId4Short=Prof. id 4
     ProfId5Short=Prof. id 5
     ProfId6Short=Prof. id 6
    -ProfId1=Professional ID 1
    -ProfId2=Professional ID 2
    -ProfId3=Professional ID 3
    -ProfId4=Professional ID 4
    -ProfId5=Professional ID 5
    -ProfId6=Professional ID 6
    +ProfId1=Sjedište banke
    +ProfId2=Tekući račun
    +ProfId3=VAT N°
    +ProfId4=Upis
    +ProfId5=MBS
    +ProfId6=MB
     ProfId1AR=Prof Id 1 (CUIT/CUIL)
     ProfId2AR=Prof Id 2 (Revenu brutes)
     ProfId3AR=-
    @@ -258,8 +258,8 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    -VATIntraShort=Tax ID
    +VATIntra=Sales Tax/VAT ID
    +VATIntraShort=OIB
     VATIntraSyntaxIsValid=Sintaksa je u redu
     VATReturn=VAT return
     ProspectCustomer=Potencijalni / Kupac
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Ovaj kupac ima predefiniran popust od <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Ovaj kupac nema predefiniran relativni popust
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Ovaj kupac još uvijek ima odobrenje za <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,9 +287,9 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Ništa
    -Supplier=Dobavljač
    +Supplier=Vendor
     AddContact=Kreiraj kontakt
    -AddContactAddress=Kreiraj kontakt/adresu
    +AddContactAddress=Izradi kontakt/adresu
     EditContact=Uredi kontakt
     EditContactAddress=Uredi kontakt/adresu
     Contact=Kontakt
    @@ -303,22 +303,22 @@ AddThirdParty=Kreiraj komitenta
     DeleteACompany=Izbriši tvrtku
     PersonalInformations=Osobni podaci
     AccountancyCode=Obračunski račun
    -CustomerCode=Kod kupca
    -SupplierCode=Vendor code
    -CustomerCodeShort=Kod kupca
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Kod kupca, jedinstven za sve kupce
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Oznaka kupca
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Oznaka kupca
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Obavezno ako je komitent kupac ili potencijalni kupac
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Odobravanje kontrolirano modulom
    -ThisIsModuleRules=Ovo su pravila za ovaj modul
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Potencijalni kupac u kontakt
     CompanyDeleted=Tvrtka "%s" izbrisana iz baze.
     ListOfContacts=Popis kontakata/adresa
     ListOfContactsAddresses=Popis kontakata/adresa
    -ListOfThirdParties=Popis komitenata
    -ShowCompany=Show third party
    +ListOfThirdParties=Popis trećih osoba
    +ShowCompany=Show Third Party
     ShowContact=Prikaži kontakt
     ContactsAllShort=Sve(bez filtera)
     ContactType=Tip kontakta
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Ovaj kontakt nije kontakt za bilo koju ponudu
     NoContactForAnyContract=Ovaj kontakt nije kontakt za nikakav ugovor
     NoContactForAnyInvoice=Ovaj kontakt nije kontakt za nikakav račun
     NewContact=Novi kontakt
    -NewContactAddress=Novi kontakt/adresa
    +NewContactAddress=New Contact/Address
     MyContacts=Moji kontakti
     Capital=Kapital
    -CapitalOf=Kapital od %s
    +CapitalOf=Temeljna vrijednost %s
     EditCompany=Uredi tvrtku
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Ček
    -VATIntraCheckDesc=Poveznica <b>%s</b> dozvoljava upit servis za provjeru poreznog broja u EU VIES. Potreban je pristup internetu kako bi ovaj servis radio.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Provjeri OIB na EU VIES
    -VATIntraManualCheck=Također možete provjeriti ručno na stranici <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Provjera nije moguća. Servis za provjeru nije pružena od strane države članice (%s).
    -NorProspectNorCustomer=Niti potencijalni, niti kupac
    -JuridicalStatus=Zakonski okvir
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Zaposlenih
     ProspectLevelShort=Potencijal
     ProspectLevel=Potencijalni kupac
    @@ -387,12 +387,12 @@ ExportCardToFormat=Izvezi karticu u formatu
     ContactNotLinkedToCompany=Kontakt nije povezan ni sa jednim komitentom
     DolibarrLogin=Dolibarr korisničko ime
     NoDolibarrAccess=Nema pristup Dolibarr-u
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Kontakti i svojstva
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Treće osobe (tvrtke/zaklade/fizičke osobe) i njihove osobine
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Treće osobe (tvrtke/zaklade/fizičke osobe) i njihove osobine
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bankovni računi trećih osoba
    +ImportDataset_company_4=Prodajni predstavnici trećih osoba (pridruživanje predstavnika/korisnika tvrtkama)
     PriceLevel=Razina cijene
     DeliveryAddress=Adresa dostave
     AddAddress=Dodaj adresu
    @@ -402,33 +402,33 @@ DeleteFile=Izbriši datoteku
     ConfirmDeleteFile=Jeste li sigurni da želite obrisati ovu datoteku?
     AllocateCommercial=Dodjeljeno prodajnom predstavniku
     Organization=Organizacija
    -FiscalYearInformation=Informacije za fiskalnu godinu
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Početni mjesec fiskalne godine
    -YouMustAssignUserMailFirst=Morate prvo kreirati e-poštu za ovog korisnika kako biste mogli dodati njegove obavijesti putem e-pošte.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=Kako biste bili u mogućnosti dodavanja obavijesti e-poštom, prvo morate definirati kontakt s valjanom adresom e-pošte za komitenta
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Lista potencijalnih kupaca
    -ListCustomersShort=Lista kupaca
    -ThirdPartiesArea=Sučelje komitenata i kontakata
    -LastModifiedThirdParties=Zadnjih %s izmjenjenih komitenata
    -UniqueThirdParties=Ukupno jedinstvenih komitenata
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Treće osobe/Kontakti
    +LastModifiedThirdParties=Zadnjih %s izmijenjenih trećih osoba
    +UniqueThirdParties=Ukupno trećih osoba
     InActivity=Otvori
     ActivityCeased=Zatvoren
     ThirdPartyIsClosed=Third party is closed
     ProductsIntoElements=Popis proizvoda/usluga u %s
     CurrentOutstandingBill=Trenutno otvoreni računi
     OutstandingBill=Maksimalno za otvorene račune
    -OutstandingBillReached=Dosegnut maksimum neplačenih računa
    +OutstandingBillReached=Dosegnut maksimum neplaćenih računa
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Ova šifra je besplatne. Ova šifra se može modificirati u bilo koje vrijeme.
     ManagingDirectors=Ime vlasnika(ce) ( CEO, direktor, predsjednik uprave...)
     MergeOriginThirdparty=Dupliciran komitent (komitent koji želite obrisati)
    -MergeThirdparties=Spoji komitente
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    -ThirdpartiesMergeSuccess=Third parties have been merged
    +MergeThirdparties=Združi treće osobe
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
    +ThirdpartiesMergeSuccess=Treće osobe združene
     SaleRepresentativeLogin=Korisničko ime predstavnika
     SaleRepresentativeFirstname=Ime prodajnog predstavnika
     SaleRepresentativeLastname=Prezime prodajnog predstavnika
    -ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +ErrorThirdpartiesMerge=Došlo je do greške tijekom brisanja treće osobe. Molim provjerite zapis. Izmjene su povraćene.
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/hr_HR/compta.lang b/htdocs/langs/hr_HR/compta.lang
    index 9176b9d6c2d..2ff560a0ba1 100644
    --- a/htdocs/langs/hr_HR/compta.lang
    +++ b/htdocs/langs/hr_HR/compta.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - compta
    -MenuFinancial=Billing | Payment
    +MenuFinancial=Računi | Plaćanja
     TaxModuleSetupToModifyRules=Idite na <a href="%s">Podešavanje modula poreza</a> za promjenu pravila izračuna
     TaxModuleSetupToModifyRulesLT=Idite na <a href="%s">Postavke tvrtke</a> za promjenu pravila za kalkulacije
     OptionMode=Opcija za računovodstvo
    @@ -78,7 +78,7 @@ MenuNewSocialContribution=Novi druš/fis porez
     NewSocialContribution=Novi društveni/fiskalni porez
     AddSocialContribution=Add social/fiscal tax
     ContributionsToPay=Društvni/fiskalni porez za platiti
    -AccountancyTreasuryArea=Billing and payment area
    +AccountancyTreasuryArea=Sučelje računa i plaćanja
     NewPayment=Novo plaćanje
     Payments=Plaćanja
     PaymentCustomerInvoice=Uplata računa kupca
    @@ -86,7 +86,7 @@ PaymentSupplierInvoice=Vendor invoice payment
     PaymentSocialContribution=Plaćanje društveni/fiskalni porez
     PaymentVat=PDV plaćanje
     ListPayment=Popis plaćanja
    -ListOfCustomerPayments=Popis uplata kupca
    +ListOfCustomerPayments=Popis uplata kupaca
     ListOfSupplierPayments=List of vendor payments
     DateStartPeriod=Datum početka perioda
     DateEndPeriod=Datum završetka perioda
    @@ -122,7 +122,7 @@ Turnover=Turnover invoiced
     TurnoverCollected=Turnover collected
     SalesTurnoverMinimum=Minimum turnover
     ByExpenseIncome=Po troškovima i prihodima
    -ByThirdParties=Po komitentima
    +ByThirdParties=Po trećim osobama
     ByUserAuthorOfInvoice=Po autoru računa
     CheckReceipt=Depozit čeka
     CheckReceiptShort=Depozit čeka
    @@ -132,7 +132,7 @@ NewCheckDeposit=Novi depozit čeka
     NewCheckDepositOn=Izradi račun za depozit na računu: %s
     NoWaitingChecks=Nema čekova koji čekaju depozit.
     DateChequeReceived=Datum zaprimanja čeka
    -NbOfCheques=Br. čekova
    +NbOfCheques=No. of checks
     PaySocialContribution=Plati društveni/fiskalni porez
     ConfirmPaySocialContribution=Jeste li sigurni da želite svrstati ovaj društveni/fiskalni porez kao plaćeno ?
     DeleteSocialContribution=Obriši plaćanje društvenog ili fiskalnog poreza
    @@ -142,7 +142,7 @@ CalcModeVATDebt=Način <b>%sPDV na računovodstvene usluge%s</b>
     CalcModeVATEngagement=Način <b>%sPDV na prihode-troškove%s</b>
     CalcModeDebt=Analysis of known recorded invoices even if they are not yet accounted in ledger.
     CalcModeEngagement=Analysis of known recorded payments, even if they are not yet accounted in Ledger.
    -CalcModeBookkeeping=Analysis of <b>data journalized in Bookkeeping Ledger table</b>
    +CalcModeBookkeeping=Analysis of data journalized in Bookkeeping Ledger table.
     CalcModeLT1= Način <b>%sRE na računima kupaca - računima dobavljača%s</b>
     CalcModeLT1Debt=Način  <b>%sRE na računu kupca%s</b>
     CalcModeLT1Rec= Način  <b>%sRE na računu dobavljača%s</b>
    @@ -167,7 +167,7 @@ RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accou
     RulesResultBookkeepingPredefined=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME"
     RulesResultBookkeepingPersonalized=It show record in your Ledger with accounting accounts <b>grouped by personalized groups</b>
     SeePageForSetup=See menu <a href="%s">%s</a> for setup
    -DepositsAreNotIncluded=- Down payment invoices are nor included
    +DepositsAreNotIncluded=- Down payment invoices are not included
     DepositsAreIncluded=- Down payment invoices are included
     LT1ReportByCustomers=Report tax 2 by third party
     LT2ReportByCustomers=Report tax 3 by third party
    @@ -205,7 +205,7 @@ SellsJournal=Izvještaj prodaje
     PurchasesJournal=Izvještaj kupovine
     DescSellsJournal=Izvještaj prodaje
     DescPurchasesJournal=Izvještaj kupovine
    -InvoiceRef=Ref. računa
    +InvoiceRef=Broj računa
     CodeNotDef=Nije definirano
     WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module.
     DatePaymentTermCantBeLowerThanObjectDate=Datum valute plaćanja ne može biti manji od datuma objekta.
    @@ -229,11 +229,11 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used
     ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup)
     ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
     ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
    -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
    +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined.
     ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties
    -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
    +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accounting account on third party is not defined.
     CloneTax=Kloniraj društveni/fiskalni porez
    -ConfirmCloneTax=Potvrdi kloniranje plaćanja društvenog/fiskalnog poreza
    +ConfirmCloneTax=Confirm the clone of a social/fiscal tax
     CloneTaxForNextMonth=Kloniraj za sljedeći mjesec
     SimpleReport=Jednostavan izvještaj
     AddExtraReport=Extra reports (add foreign and national customer report)
    @@ -248,7 +248,7 @@ ErrorBankAccountNotFound=Greška: Nije pronađen bankovni račun
     FiscalPeriod=Accounting period
     ListSocialContributionAssociatedProject=List of social contributions associated with the project
     DeleteFromCat=Remove from accounting group
    -AccountingAffectation=Accounting assignement
    +AccountingAffectation=Accounting assignment
     LastDayTaxIsRelatedTo=Last day of period the tax is related to
     VATDue=Sale tax claimed
     ClaimedForThisPeriod=Claimed for the period
    diff --git a/htdocs/langs/hr_HR/cron.lang b/htdocs/langs/hr_HR/cron.lang
    index 12342e7a76d..9e8813d0f36 100644
    --- a/htdocs/langs/hr_HR/cron.lang
    +++ b/htdocs/langs/hr_HR/cron.lang
    @@ -6,13 +6,13 @@ Permission23102 = Kreiraj/promjeni planirani posao
     Permission23103 = Obriši planirani posao
     Permission23104 = Pokreni planirani posao
     # Admin
    -CronSetup= Postavljanje upravljanja planiranih poslova
    +CronSetup=Postavljanje upravljanja planiranih poslova
     URLToLaunchCronJobs=URL to check and launch qualified cron jobs
     OrToLaunchASpecificJob=Ili za provjeru i pokretanje specifičnog posla
     KeyForCronAccess=Sigurnosni ključ za URL za pokretanje cron zadataka
     FileToLaunchCronJobs=Command line to check and launch qualified cron jobs
     CronExplainHowToRunUnix=U Unix okolini potrebno je korisititi sljedeći crontab unos za pokretanje komande svakih 5 minuta
    -CronExplainHowToRunWin=Na Microsoft(tm) Windows okolini možete koristiti Scheduled task alate za pokretanje komandi svakih 5 minuta
    +CronExplainHowToRunWin=On Microsoft(tm) Windows environment you can use Scheduled Task tools to run the command line each 5 minutes
     CronMethodDoesNotExists=Klasa %s ne sadrži niti jednu %s metodu
     CronJobDefDesc=Cron job profiles are defined into the module descriptor file. When module is activated, they are loaded and available so you can administer the jobs from the admin tools menu %s.
     CronJobProfiles=List of predefined cron job profiles
    @@ -41,8 +41,8 @@ CronMethod=Metoda
     CronModule=Modul
     CronNoJobs=Nema registriranih poslova
     CronPriority=Prioritet
    -CronLabel=Oznaka
    -CronNbRun=Br. pokretanja
    +CronLabel=Naziv
    +CronNbRun=No. launches
     CronMaxRun=Max number launch
     CronEach=Svakih
     JobFinished=Posao pokrenut i završen
    @@ -61,11 +61,11 @@ CronStatusInactiveBtn=Onemogući
     CronTaskInactive=Ovaj posao je onemogućen
     CronId=ID
     CronClassFile=Filename with class
    -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module). <BR> For exemple to call the fetch method of Dolibarr Product object /htdocs/<u>product</u>/class/product.class.php, the value for module is<br><i>product</i>
    -CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory). <BR> For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/<u>product.class.php</u>, the value for class file name is<br><i>product/class/product.class.php</i>
    -CronObjectHelp=The object name to load. <BR> For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is<br><i>Product</i>
    -CronMethodHelp=The object method to launch. <BR> For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is<br><i>fetch</i>
    -CronArgsHelp=The method arguments. <BR> For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be<br><i>0, ProductRef</i>
    +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module). <BR> For example to call the fetch method of Dolibarr Product object /htdocs/<u>product</u>/class/product.class.php, the value for module is<br><i>product</i>
    +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory). <BR> For example to call the fetch method of Dolibarr Product object htdocs/product/class/<u>product.class.php</u>, the value for class file name is<br><i>product/class/product.class.php</i>
    +CronObjectHelp=The object name to load. <BR> For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is<br><i>Product</i>
    +CronMethodHelp=The object method to launch. <BR> For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is<br><i>fetch</i>
    +CronArgsHelp=The method arguments. <BR> For example to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be<br><i>0, ProductRef</i>
     CronCommandHelp=Sistemska komanda za pokretanje
     CronCreateJob=Kreiraj novi planirani posao
     CronFrom=Od
    @@ -79,5 +79,5 @@ CronCannotLoadObject=Class file %s was loaded, but object %s was not found into
     UseMenuModuleToolsToAddCronJobs=Idite na izbornik "Home - Admin tools - Scheduled jobs" za prikaz i uređivanje planiranih poslova.
     JobDisabled=Posao onemogućen
     MakeLocalDatabaseDumpShort=Lakalni backup baze
    -MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql' or 'pgsql'), 1, 'auto' or filename to build, number of backup files to keep
    +MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql', 'pgsql', 'auto'), 1, 'auto' or filename to build, number of backup files to keep
     WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run.
    diff --git a/htdocs/langs/hr_HR/dict.lang b/htdocs/langs/hr_HR/dict.lang
    index c2e43af033a..76455f4137f 100644
    --- a/htdocs/langs/hr_HR/dict.lang
    +++ b/htdocs/langs/hr_HR/dict.lang
    @@ -76,7 +76,7 @@ CountryCG=Kongo
     CountryCD=Kongo, demokratska republika
     CountryCK=Cook Islands
     CountryCR=Kostarika
    -CountryHR=Hrvatska!
    +CountryHR=Hrvatska
     CountryCU=Kuba
     CountryCY=Cipar
     CountryCZ=Češka
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Island
    +CountryIS=Iceland
     CountryIN=Indija
     CountryID=Indonezija
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Sjeverna Korea
     CountryKR=Južna Korea
     CountryKW=Kuvajt
    -CountryKG=Kirgistan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvija
     CountryLB=Libanon
    @@ -160,7 +160,7 @@ CountryMD=Moldavija
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambik
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Nambija
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad i Tobago
     CountryTR=Turska
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukrajina
    @@ -255,14 +255,14 @@ CivilityMLE=Gđica.
     CivilityMTRE=Master
     CivilityDR=Doktor
     ##### Currencies #####
    -Currencyeuros=Eura
    +Currencyeuros=Euro [EUR]
     CurrencyAUD=AU Dolara
     CurrencySingAUD=AU Dolar
     CurrencyCAD=CAN Dolara
     CurrencySingCAD=CAN dolar
     CurrencyCHF=Švic. franaka
     CurrencySingCHF=Švic. Franaka
    -CurrencyEUR=Eura
    +CurrencyEUR=Euro [EUR]
     CurrencySingEUR=Euro
     CurrencyFRF=Fran. Franaka
     CurrencySingFRF=Fran. Franaka
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norveških Kruna
    -CurrencySingNOK=Norveška Kruna
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tuniških Dinara
     CurrencySingTND=Tuniški Dinar
     CurrencyUSD=SAD Dolara
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Usmeno
     DemandReasonTypeSRC_PARTNER=Suradnik
     DemandReasonTypeSRC_EMPLOYEE=Zaposlenik
     DemandReasonTypeSRC_SPONSORING=Sponzorstvo
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=4A0 format
     PaperFormatEU2A0=2A0 format
    diff --git a/htdocs/langs/hr_HR/ecm.lang b/htdocs/langs/hr_HR/ecm.lang
    index 99b06a501c0..b7500f845e2 100644
    --- a/htdocs/langs/hr_HR/ecm.lang
    +++ b/htdocs/langs/hr_HR/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Br. dokumenata u mapi
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Mapa
     ECMSectionManual=Ručna mapa
     ECMSectionAuto=Automatska mapa
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Dokumenti vezani za projekte
     ECMDocsByUsers=Dokumenti povezani za korisnike
     ECMDocsByInterventions=Dokumenti povezani za intervencije
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Mapa nije kreirana
     ShowECMSection=Prikaži mapu
     DeleteSection=Obriši mapu
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/hr_HR/errors.lang b/htdocs/langs/hr_HR/errors.lang
    index 695f343ce8f..d72fdb8e6ea 100644
    --- a/htdocs/langs/hr_HR/errors.lang
    +++ b/htdocs/langs/hr_HR/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Računovodstveni modul nije aktiviran
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s je dodjeljen to drugom 
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Korisnički račun <b>%s</b> koji pokreće web server nema dozvolu za pokretanje
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/hr_HR/help.lang b/htdocs/langs/hr_HR/help.lang
    index 3532758cca9..25e0f10a260 100644
    --- a/htdocs/langs/hr_HR/help.lang
    +++ b/htdocs/langs/hr_HR/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote podrška
     OtherSupport=Ostala podrška
     ToSeeListOfAvailableRessources=Da biste kontaktirali/vidjeli raspoložive resurse:
     HelpCenter=Help centar
    -DolibarrHelpCenter=Dolibarr centar pomoći i podrške
    -ToGoBackToDolibarr=U suprotnom, kliknite <a href="%s">ovdje za korištenje Dolibarr-a</a>
    -TypeOfSupport=Izvor podrške
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Zajednica (besplatno)
     TypeSupportCommercial=Komercijalno
     TypeOfHelp=Tip
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efikasnost
     TypeHelpOnly=Samo pomoć
     TypeHelpDev=Pomoć + Razvoj
    -TypeHelpDevForm=Pomoć + Razvoj + Osnivanje
    -ToGetHelpGoOnSparkAngels1=Neke tvrtke mogu pružiti brzu (ponekad neposrednu) i efikasniju online podršku uzimajući kontrolu nad vašim računalom. Takvi pomoćnici mogu se pronaći na <b>%s</b> web stranicama:
    -ToGetHelpGoOnSparkAngels3=Također možete pogledati popis svih dostupnih trenera za Dolibarr, za to kliknite na gumb 
    -ToGetHelpGoOnSparkAngels2=Ponekad, nema dostupne tvrtke u trenutku vašeg pretraživanja, probajte promjeniti filter za pretraživanje na "sva dostupnost". Biti ćete u mogućnosti poslati više zahtjeva.
    -BackToHelpCenter=U suprotnim, kliknite ovdje za povratak na <a href="%s">naslovnu stranicu centra pomoći</a>.
    -LinkToGoldMember=Možete nazvati jednog od trenera predodabrane od Dolibarr-a za vaš jezik (%s) kliknuvši na dodatak(status i maksimalna cijena je automatski ažurirana):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Podržani jezici
    -SubscribeToFoundation=Pomognite Dolibarr projektu, prijavite se u zakladu
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Za oficijalnu Dolibarr podršku na vašem jeziku: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/hr_HR/holiday.lang b/htdocs/langs/hr_HR/holiday.lang
    index 419b932781c..9eb3e2f84f4 100644
    --- a/htdocs/langs/hr_HR/holiday.lang
    +++ b/htdocs/langs/hr_HR/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
    -HRM=HRM
    -Holidays=Odsustva
    -CPTitreMenu=Odsustva
    +HRM=Djelatnici
    +Holidays=Napusti
    +CPTitreMenu=Napusti
     MenuReportMonth=Mjesečna izjava
     MenuAddCP=Novi zahtjev odsustva
    -NotActiveModCP=Morate omogućiti modul Odsustva za pregled ove stranice.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Izradi zahtjev odsustva
     DateDebCP=Datum početka
     DateFinCP=Datum završetka
    @@ -15,13 +15,18 @@ ApprovedCP=Odobreno
     CancelCP=Poništeno
     RefuseCP=Odbijeno
     ValidatorCP=Odobrio
    -ListeCP=Popis odsustva
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Opis
     SendRequestCP=Kreiraj zahtjev odsustva
     DelayToRequestCP=Zahtjev odsustva mora biti kreiran najmanje <b>%s dan(a)</b> prije.
    -MenuConfCP=Stanje odsustva
    -SoldeCPUser=Stanje odsustva je <b>%s</b> dana.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Datum završetka mora biti veći od datuma početka.
     ErrorSQLCreateCP=Dogodila se SQL greška kod kreiranja:
     ErrorIDFicheCP=Dogosila se greška, zahtjev ne postoji.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=Niste ovlašteni za čitanje zahtjeva.
     InfosWorkflowCP=Procedura Informacija
     RequestByCP=Zahtjeva
     TitreRequestCP=Zahtjev za odsustvom
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Broj potrošenih dana godišnjeg 
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Uredi
     DeleteCP=Obriši
     ActionRefuseCP=Odbij
    @@ -59,6 +71,7 @@ DateRefusCP=Datum odbijanja
     DateCancelCP=Datom otkazivanja
     DefineEventUserCP=Dodjeli specijalno odsustvo za korisnika
     addEventToUserCP=Dodjeli odsustvo
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Razlog
     UserCP=Korisnik
     ErrorAddEventToUserCP=Dogodila se greška kod dodavanja specijalnog odsustva.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Zadnje automatsko ažuriranje raspodjele odlazaka
    -MonthOfLastMonthlyUpdate=Mjesec zadnjeg automatskog ažuriranja raspodjele odlazaka
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Uspješno promjenjeno
     Module27130Name= Upravljanje zahtjevima odsustva
     Module27130Desc= Upravljanje zahtjevima odsustva
    @@ -94,7 +112,7 @@ NoticePeriod=Otkazni rok
     HolidaysToValidate=Ovjeri zahtjeve
     HolidaysToValidateBody=Dolje su zahtjevi za ovjeru
     HolidaysToValidateDelay=Ovaj zahtjev će stupiti na snagu unutar perioda manjeg od %s dana.
    -HolidaysToValidateAlertSolde=Korisnik koji je kreirao zahtjev nema dovoljno dostupnih dana.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Ovjereni zahtjevi
     HolidaysValidatedBody=Vaš zahtjev za %s do %s je ovjeren.
     HolidaysRefused=Zahtjev odbijen
    @@ -103,4 +121,9 @@ HolidaysCanceled=Otkazani zahtjev
     HolidaysCanceledBody=Vaš zahtjev za %s do %s je otkazan.
     FollowedByACounter=1: Ovaj tip odsustva mora biti pračen brojačem. Brojač se povečava ručno ili automatski, a kada je zahtjev ovjeren, brojač se smanjuje.<br> 0: Nije pračeno brojačem.
     NoLeaveWithCounterDefined=Nema definiranih tipova zahtjeva koji moraju biti pračenjem brojačem
    -GoIntoDictionaryHolidayTypes=Idite na <strong>Naslovnu - Podešavanje - Definicije - Tipovi odsustva</strong> za podešavanje različitih tipova odsustva.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/hr_HR/install.lang b/htdocs/langs/hr_HR/install.lang
    index a4c767125a3..fc2c04eaed9 100644
    --- a/htdocs/langs/hr_HR/install.lang
    +++ b/htdocs/langs/hr_HR/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Tip upr. programa
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Naziv baze podataka
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Neuspješno kreiranje administratorskog računa.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Nadogradnja
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Migracija podataka za ponude
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Ažuriraj adresu dostave kod isporuke
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/hr_HR/interventions.lang b/htdocs/langs/hr_HR/interventions.lang
    index 9050f20ad90..7f2c98237b5 100644
    --- a/htdocs/langs/hr_HR/interventions.lang
    +++ b/htdocs/langs/hr_HR/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Intervencije
     InterventionCard=Kartica intervencije
     NewIntervention=Nova intervencija
     AddIntervention=Kreiraj intervenciju
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Popis intervencija
     ActionsOnFicheInter=Akcije na intervencije
     LastInterventions=Zadnjih %s intervencija
    @@ -24,10 +25,10 @@ NameAndSignatureOfInternalContact=Ime i potpis osobe:
     NameAndSignatureOfExternalContact=Ime i potpis kupca:
     DocumentModelStandard=Standardni model dokumenta za intervencije
     InterventionCardsAndInterventionLines=Intervencije i stavke intervencija
    -InterventionClassifyBilled=Označi "Naplačeno"
    -InterventionClassifyUnBilled=Označi "Nenaplačeno"
    +InterventionClassifyBilled=Označi kao "zaračunato"
    +InterventionClassifyUnBilled=Označi kao "nezaračunato"
     InterventionClassifyDone=Classify "Done"
    -StatusInterInvoiced=Naplačeno
    +StatusInterInvoiced=Zaračunato
     SendInterventionRef=Podnošenje intervencije %s
     SendInterventionByMail=Pošalji intervenciju putem e-pošte
     InterventionCreatedInDolibarr=Intervencija %s kreirana
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Koristi trajanje usluge za intervencije generiran
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistika intervencija
    -NbOfinterventions=Br. kartica intervencija
    -NumberOfInterventionsByMonth=Br. intervencija po mjesecima (datum ovjere)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=ID Intervencije
    diff --git a/htdocs/langs/hr_HR/main.lang b/htdocs/langs/hr_HR/main.lang
    index 4e4383270ac..66d8d43c11f 100644
    --- a/htdocs/langs/hr_HR/main.lang
    +++ b/htdocs/langs/hr_HR/main.lang
    @@ -5,15 +5,15 @@ DIRECTION=ltr
     # stsongstdlight or cid0cs are for simplified Chinese
     # To read Chinese pdf with Linux: sudo apt-get install poppler-data
     FONTFORPDF=helvetica
    -FONTSIZEFORPDF=10
    +FONTSIZEFORPDF=9
     SeparatorDecimal=,
    -SeparatorThousand=None
    -FormatDateShort=%m/%d/%Y
    -FormatDateShortInput=%m/%d/%Y
    -FormatDateShortJava=MM/dd/yyyy
    -FormatDateShortJavaInput=MM/dd/yyyy
    -FormatDateShortJQuery=mm/dd/yy
    -FormatDateShortJQueryInput=mm/dd/yy
    +SeparatorThousand=.
    +FormatDateShort=%d/%m/%Y
    +FormatDateShortInput=%d/%m/%Y
    +FormatDateShortJava=dd/MM/yyyy
    +FormatDateShortJavaInput=dd/MM/yyyy
    +FormatDateShortJQuery=dd/mm/yyyy
    +FormatDateShortJQueryInput=dd/mm/yyyy
     FormatHourShortJQuery=HH:MI
     FormatHourShort=%I:%M %p
     FormatHourShortDuration=%H:%M
    @@ -24,136 +24,137 @@ FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p
     FormatDateHourTextShort=%b %d, %Y, %I:%M %p
     FormatDateHourText=%B %d, %Y, %I:%M %p
     DatabaseConnection=Veza s bazom podataka
    -NoTemplateDefined=Nema predloška za taj tip elektroničke pošte
    -AvailableVariables=Dostupne zamjenske varijable
    +NoTemplateDefined=Nema predloška za taj tip e-pošte
    +AvailableVariables=Dostupne zamjenske vrijednosti
     NoTranslation=Bez prijevoda
     Translation=Prijevod
    -NoRecordFound=Nema pronađenih bilješki
    -NoRecordDeleted=No record deleted
    +NoRecordFound=Spis nije pronađen
    +NoRecordDeleted=Spis nije izbrisan
     NotEnoughDataYet=Nedovoljno podataka
     NoError=Bez greške
     Error=Greška
     Errors=Greške
    -ErrorFieldRequired=Potrebno je '%s' polje
    +ErrorFieldRequired=Potrebno je polje '%s' 
     ErrorFieldFormat=Neispravna vrijednost u polju '%s'
     ErrorFileDoesNotExists=Datoteka %s ne postoji
    -ErrorFailedToOpenFile=Datoteka %s nije uspješno otvorena
    -ErrorCanNotCreateDir=Nemoguće kreirati mapu %s
    -ErrorCanNotReadDir=Nemogu pročitati mapu %s
    +ErrorFailedToOpenFile=Otvaranje datoteke %s nije uspjelo
    +ErrorCanNotCreateDir=Mapu %s nije moguće izraditi
    +ErrorCanNotReadDir=Mapu %s nije moguće otvoriti
     ErrorConstantNotDefined=Značajka %s nije određena
     ErrorUnknown=Nepoznata greška
     ErrorSQL=Greška na SQL-u
     ErrorLogoFileNotFound=Datoteka s logom '%s' nije pronađena
    -ErrorGoToGlobalSetup=Go to 'Company/Organization' setup to fix this
    +ErrorGoToGlobalSetup=Za popravak ovoga idi na postavke 'Tvrtka/Organizacija'
     ErrorGoToModuleSetup=Idite na postavke modula kako bi ste ovo popravili
     ErrorFailedToSendMail=Elektronska pošta nije poslana (pošiljatelj=%s, primatelj=%s)
     ErrorFileNotUploaded=Datoteka nije učitana. Proverite da veličina ne prelazi dozvoljenu, da imate slobodnog mjesta na disku i da u ovoj mapi nema datoteke sa istim imenom.
     ErrorInternalErrorDetected=Pronađena greška
    -ErrorWrongHostParameter=Krivi parametar host-a
    -ErrorYourCountryIsNotDefined=Zemlja nije definirana. Idite na Naslovnu-Podešavanje-Uređivanje i ispunite ponovo obrazac.
    -ErrorRecordIsUsedByChild=Neuspješno brisanje podatka. Ovaj podatak se koristi.
    -ErrorWrongValue=Neispravna vrijednost
    -ErrorWrongValueForParameterX=Neispravna vrijednost za parametar %s
    +ErrorWrongHostParameter=Kriva značajka poslužitelja
    +ErrorYourCountryIsNotDefined=Vaša zemlja nije upisana. Idite na početnu stranicu->postavke->uredi i ispunite obrazac ponovo. 
    +ErrorRecordIsUsedByChild=Ovaj spis se ne može obrisati. Postoji barem jedan vezani spis.
    +ErrorWrongValue=Pogrešna vrijednost
    +ErrorWrongValueForParameterX=Pogrešna vrijednost za značajku %s
     ErrorNoRequestInError=Nema zahtjeva s greškom
    -ErrorServiceUnavailableTryLater=Servis nije trenutno dostupan. Pokušajte kasnije.
    -ErrorDuplicateField=Dupla vrijednost za jedinstveno polje
    -ErrorSomeErrorWereFoundRollbackIsDone=Pronađene su greške. Vraćamo promjene.
    -ErrorConfigParameterNotDefined=Parametar <b>%s</b> nije definiran u Dolibarr konfiguracijskoj datoteci <b>conf.php</b>.
    -ErrorCantLoadUserFromDolibarrDatabase=Korisnik <b>%s</b> ne postoji u bazi.
    -ErrorNoVATRateDefinedForSellerCountry=Greška, nisu definirane porezne stope za zemlju '%s'.
    -ErrorNoSocialContributionForSellerCountry=Greška, nisu definirani društveni/fiskalni porezi za zemlju '%s'.
    +ErrorServiceUnavailableTryLater=Usluga trenutno nije dostupna. Pokušajte ponovo poslije.
    +ErrorDuplicateField=Dvostruka vrijednost za jedno polje
    +ErrorSomeErrorWereFoundRollbackIsDone=Pronađene su greške. Izmjene povućene.
    +ErrorConfigParameterNotDefined=Značajka <b>%s</b> nije određena u Dolibarr datoteci s postavkama <b>conf.php</b>.
    +ErrorCantLoadUserFromDolibarrDatabase=Korisnik <b>%s</b> ne postoji u bazi Dolibarra
    +ErrorNoVATRateDefinedForSellerCountry=Greška, za zemlju '%s' nisu upisane stope poreza
    +ErrorNoSocialContributionForSellerCountry=Greška, za zemlju '%s' nisu upisani društveni/fiskalni porezi.
     ErrorFailedToSaveFile=Greška, neuspješno snimanje datoteke.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    -NotAuthorized=Niste autorizirani za ovu akciju.
    -SetDate=Postavi datum
    +ErrorCannotAddThisParentWarehouse=Pokušavate izraditi skladište koje je već podskladište postojećeg.
    +MaxNbOfRecordPerPage=Najveći mogući broj bilješki po stranici
    +NotAuthorized=Niste ovlašteni da ovo učinite.
    +SetDate=Upiši datum
     SelectDate=Izaberi datum
    -SeeAlso=Vidi također %s
    +SeeAlso=Također vidi %s
     SeeHere=Vidi ovdje
     ClickHere=Klikni ovdje
    -Here=Here
    +Here=Ovdje
     Apply=Primjeni
    -BackgroundColorByDefault=Zadana boja pozadine
    +BackgroundColorByDefault=Osnovna boja pozadine
     FileRenamed=Ime datoteke uspješno promijenjeno
    -FileGenerated=The file was successfully generated
    -FileSaved=The file was successfully saved
    +FileGenerated=Datoteka je uspješno izrađena
    +FileSaved=Datoteka je uspješno snimljena
     FileUploaded=Datoteka je uspješno učitana
    -FileTransferComplete=File(s) was uploaded successfully
    -FilesDeleted=File(s) successfully deleted
    -FileWasNotUploaded=Datoteka je odabrana za prilogu ali nije još učitana. Klikni na "Priloži datoteku".
    -NbOfEntries=Br. unosa
    -GoToWikiHelpPage=Pročitajte Online pomoć ( potreban pristup Internetu)
    +FileTransferComplete=Datoteka(e) uspješno učitana
    +FilesDeleted=Datoteka(e) je uspješno izbrisana
    +FileWasNotUploaded=Datoteka za prilog je odabrana, ali još nije učitana. Klikni na "Priloži datoteku".
    +NbOfEntries=Broj unosa
    +GoToWikiHelpPage=Pročitajte Online pomoć (potreban pristup Internetu)
     GoToHelpPage=Pročitaj pomoć
     RecordSaved=Podatak spremljen
     RecordDeleted=Podatak obrisan
    -LevelOfFeature=Razina mogučnosti
    -NotDefined=Nije definirano
    -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to <b>%s</b> in configuration file <b>conf.php</b>.<br>This means that the password database is external to Dolibarr, so changing this field may have no effect.
    +LevelOfFeature=Razina mogućnosti
    +NotDefined=Nije određeno
    +DolibarrInHttpAuthenticationSoPasswordUseless=Način ovjere vjerodostojnosti Dolibarra namješten je na <b>%s</b> u datoteci s postavkama<b>conf.php</b>.<br>To znači da je datoteka sa zaporkama odvojena od Dolibarra pa upisivanje u ovo polje neće imati učinka.
     Administrator=Administrator
    -Undefined=Nedefinirano
    -PasswordForgotten=Zaboravili ste lozinku?
    -NoAccount=No account?
    +Undefined=Neodređeno
    +PasswordForgotten=Zaboravili ste zaporku?
    +NoAccount=Nema računa?
     SeeAbove=Vidi iznad
    -HomeArea=Naslovna
    +HomeArea=Početna stranica
     LastConnexion=Posljednje spajanje
     PreviousConnexion=Prijašnje spajanje
    -PreviousValue=Prijašnja vrijednost
    +PreviousValue=Predhodna vrijednost
     ConnectedOnMultiCompany=Spojeno na okolinu
     ConnectedSince=Spojeno od
    -AuthenticationMode=Autentikacija
    -RequestedUrl=Requested URL
    -DatabaseTypeManager=Tip upravitelja bazom podataka
    -RequestLastAccessInError=Zadnja pogreška pristupa bazi
    -ReturnCodeLastAccessInError=Povratni kod za zadnju grešku pristupa bazi
    -InformationLastAccessInError=Informacije o zadnjoj grešci pristupa bazi
    -DolibarrHasDetectedError=Dolibarr je detektirao tehničku grešku
    -YouCanSetOptionDolibarrMainProdToZero=You can read log file or set option $dolibarr_main_prod to '0' in your config file to get more information.
    -InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to remove such notices)
    -MoreInformation=Više informacija
    -TechnicalInformation=Tehničke informacije
    -TechnicalID=Tehnički ID
    -NotePublic=Napomena (javna)
    -NotePrivate=Napomena (privatna)
    -PrecisionUnitIsLimitedToXDecimals=Dolibarr je podešen za ograničenje preciznosti jedinične cijene na <b>%s</b> decimala.
    +AuthenticationMode=Oblik ovjere vjerodostojnosti
    +RequestedUrl=Traženi URL
    +DatabaseTypeManager=Vrsta upravitelja bazom podataka
    +RequestLastAccessInError=Zadnja pogreška prilikom pristupa bazi
    +ReturnCodeLastAccessInError=Povratni podatak zadnje greške pristupa bazi
    +InformationLastAccessInError=Podaci o zadnjoj grešci pristupa bazi
    +DolibarrHasDetectedError=Dolibarr je pronašao tehničku grešku
    +YouCanSetOptionDolibarrMainProdToZero=Za više informacija pročitajte datoteku sa zapisima ili namjestite opciju $dolibarr_main_prod na "0" u datoteci s postavkama
    +InformationToHelpDiagnose=Ovaj podatak može biti koristan za traženje kvara (možete namjestiti opciju $dolibarr_main_prod na '1' kako bi isključili takva upozorenja)
    +MoreInformation=Više podataka
    +TechnicalInformation=Tehnički podac
    +TechnicalID=Tehnička iskaznica
    +NotePublic=Bilješka (javna)
    +NotePrivate=Bilješka (unutarnja)
    +PrecisionUnitIsLimitedToXDecimals=Dolibarr je podešen tako da prikazuje jedinične cijene na <b>%s</b> decimala.
     DoTest=Test
     ToFilter=Filter
     NoFilter=Bez filtera
    -WarningYouHaveAtLeastOneTaskLate=Upozorenje, imate najmanje jedan element koji je prekoračio toleranciju kašnjenja.
    +WarningYouHaveAtLeastOneTaskLate=Upozorenje, imate najmanje jednu sastavnicu koja je prekoračila dozvoljeno vrijeme kašnjenja.
     yes=da
     Yes=Da
     no=ne
     No=Ne
     All=Sve
    -Home=Početna
    +Home=Početna stranica
     Help=Pomoć
     OnlineHelp=Online pomoć
     PageWiki=Wiki stranica
     MediaBrowser=Preglednik medija
     Always=Uvijek
     Never=Nikad
    -Under=pod
    -Period=Period
    -PeriodEndDate=Krajnji datum za period
    +Under=ispod
    +Period=Razdoblje
    +PeriodEndDate=Zadnji datum razdoblja
     SelectedPeriod=Odabrano razdoblje
    -PreviousPeriod=Previous period
    -Activate=Aktiviraj
    -Activated=Aktivirano
    +PreviousPeriod=Predhodno razdoblje
    +Activate=Pokreni
    +Activated=Pokreni
     Closed=Zatvoreno
     Closed2=Zatvoreno
    -NotClosed=Not closed
    +NotClosed=Nije zatvoreno
     Enabled=Omogućeno
    -Deprecated=Zastarijelo
    +Enable=Omogući
    +Deprecated=Izgubilo vrijednost
     Disable=Onemogući
     Disabled=Onemogućeno
     Add=Dodaj
    -AddLink=Dodaj vezu
    +AddLink=Dodaj poveznicu
     RemoveLink=Makni poveznicu
     AddToDraft=Dodaj u skice
     Update=Nadogradi
     Close=Zatvori
    -CloseBox=Makni dodatak sa vaše kontrolne ploče
    +CloseBox=Makni prozorčić s početne stranice
     Confirm=Potvrdi
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Jeste li sigurni da želite poslati zadržaj kartice<b>%s</b> e-poštom?
     Delete=Obriši
     Remove=Makni
     Resiliate=Prekini
    @@ -163,17 +164,17 @@ Edit=Uredi
     Validate=Ovjeri
     ValidateAndApprove=Ovjeri i odobri
     ToValidate=Za ovjeru
    -NotValidated=Not validated
    +NotValidated=Nije ovjereno
     Save=Spremi
     SaveAs=Spremi kao
     TestConnection=Provjera veze
     ToClone=Kloniraj
     ConfirmClone=Odaberite podatke koje želite klonirati:
    -NoCloneOptionsSpecified=Nisu definirani podaci za kloniranje.
    +NoCloneOptionsSpecified=Podaci za kloniranje nisu izabrani.
     Of=od
     Go=Idi
     Run=Pokreni
    -CopyOf=Kopija od
    +CopyOf=Preslik od
     Show=Prikaži
     Hide=Sakrij
     ShowCardHere=Prikaži karticu
    @@ -188,92 +189,92 @@ ToLink=Poveznica
     Select=Odaberi
     Choose=Izaberi
     Resize=Promjeni veličinu
    -ResizeOrCrop=Resize or Crop
    +ResizeOrCrop=Izmjena veličine ili obrezivanje
     Recenter=Centriraj
    -Author=Autor
    +Author=Tvorac
     User=Korisnik
     Users=Korisnici
     Group=Grupa
     Groups=Grupe
    -NoUserGroupDefined=Nisu definirane grupe
    -Password=Lozinka
    -PasswordRetype=Ponovo upiši lozinku
    -NoteSomeFeaturesAreDisabled=Dosta mogućnosti/modula je onemogućeno u ovoj demonstraciji.
    +NoUserGroupDefined=Grupa korisnika nije izrađena
    +Password=Zaporka
    +PasswordRetype=Ponovi zaporku
    +NoteSomeFeaturesAreDisabled=Uzmite u obzir da je dosta mogućnosti i modula onemogućeno u ovom izlaganju.
     Name=Ime
     Person=Osoba
    -Parameter=Parametar
    -Parameters=Parametri
    +Parameter=Značajka
    +Parameters=Značajke
     Value=Vrijednost
     PersonalValue=Osobna vrijednost
    -NewObject=New %s
    +NewObject=Novi%s
     NewValue=Nova vrijednost
     CurrentValue=Trenutna vrijednost
    -Code=Kod
    +Code=Oznaka
     Type=Tip
     Language=Jezik
    -MultiLanguage=Višejezičnost
    +MultiLanguage=Višejezični
     Note=Napomena
     Title=Naslov
    -Label=Oznaka
    -RefOrLabel=Ref. ili oznaka
    +Label=Naziv
    +RefOrLabel=Broj ili oznaka
     Info=Dnevnik
     Family=Obitelj
     Description=Opis
     Designation=Opis
     Model=Predložak dokumenta
    -DefaultModel=Default doc template
    +DefaultModel=Osnovni doc predložak
     Action=Događaj
     About=O programu
     Number=Broj
     NumberByMonth=Broj po mjesecima
     AmountByMonth=Iznos po mjesecima
     Numero=Broj
    -Limit=Limit
    -Limits=Limiti
    +Limit=Granična vrijednost
    +Limits=Granične vrijednosti
     Logout=Odjava
    -NoLogoutProcessWithAuthMode=Nema mogučnosti aplikativnog odspajanja s <b>%s</b> načinom autentifikacije.
    +NoLogoutProcessWithAuthMode=S <b>%s</b> načinom provjere vjerodostojnosti nema primjenjive mogućnosti odspajanja
     Connection=Prijava
    -Setup=Podešavanje
    -Alert=Obavijest
    -MenuWarnings=Obavijesti
    +Setup=Postavke
    +Alert=Upozornje
    +MenuWarnings=Upozorenja
     Previous=Prijašnji
     Next=Sljedeći
     Cards=Kartice
     Card=Kartica
     Now=Sad
     HourStart=Početni sat
    -Date=Date
    +Date=Datum
     DateAndHour=Datum i vrijeme
     DateToday=Današnji datum
    -DateReference=Reference datum
    +DateReference=Datum veze
     DateStart=Početni datum
     DateEnd=Završni datum
    -DateCreation=Datum kreiranja
    -DateCreationShort=Datum kreiranja
    +DateCreation=Datum izrada
    +DateCreationShort=Datum izrade
     DateModification=Datum izmjene
    -DateModificationShort=Datum izmj.
    -DateLastModification=Latest modification date
    +DateModificationShort=Datum izmjene
    +DateLastModification=Datum zadnje izmjene
     DateValidation=Datum ovjere
     DateClosing=Datum zatvaranja
    -DateDue=Datum dospjeća
    +DateDue=Datum dospijeća
     DateValue=Datum vrijednosti
     DateValueShort=Datum vrijednosti
    -DateOperation=Operativan datum
    -DateOperationShort=Oper. Datum
    -DateLimit=Datum limita
    +DateOperation=Datum postupka
    +DateOperationShort=Datum postupka
    +DateLimit=Krajnji datum
     DateRequest=Datum zahtjeva
     DateProcess=Datum obrade
    -DateBuild=Datum kreiranja izvještaja
    +DateBuild=Datum izrade izvještaja
     DatePayment=Datum plaćanja
     DateApprove=Datum odobrenja
     DateApprove2=Datum odobrenja (drugo odobrenje)
    -RegistrationDate=Registration date
    -UserCreation=Kreiranje korisnika
    +RegistrationDate=Datum prijave
    +UserCreation=Izrada korisnika
     UserModification=Izmjena korisnika
    -UserValidation=Validation user
    -UserCreationShort=Kreir. korisnika
    -UserModificationShort=izmj. korisnika
    -UserValidationShort=Valid. user
    +UserValidation=Ovjera korisnika
    +UserCreationShort=Izrada korisnika
    +UserModificationShort=Izmjena korisnika
    +UserValidationShort=Ovjereni korisnik
     DurationYear=godina
     DurationMonth=mjesec
     DurationWeek=tjedan
    @@ -303,20 +304,20 @@ Yesterday=Jučer
     Tomorrow=Sutra
     Morning=Ujutro
     Afternoon=Poslije podne
    -Quadri=Quadri
    -MonthOfDay=Mjesec dana
    +Quadri=Četvrtgodišnje
    +MonthOfDay=Jedan mjesec od dana
     HourShort=H
     MinuteShort=mn
     Rate=Stopa
    -CurrencyRate=Stopa konverzije valute
    -UseLocalTax=Porez uključen
    +CurrencyRate=Stopa pretvorbe valute
    +UseLocalTax=Uključi porez
     Bytes=Bytes
     KiloBytes=Kilobytes
     MegaBytes=Megabytes
     GigaBytes=Gigabytes
     TeraBytes=Terabytes
    -UserAuthor=User of creation
    -UserModif=User of last update
    +UserAuthor=Izradio korisnik
    +UserModif=Korisnik na zadnjoj izmjeni
     b=b.
     Kb=Kb
     Mb=Mb
    @@ -327,140 +328,141 @@ Copy=Kopiraj
     Paste=Zalijepi
     Default=Zadano
     DefaultValue=Zadana vrijednost
    -DefaultValues=Default values
    +DefaultValues=Početne vrijednosti/filteri/razvrstavanje
     Price=Cijena
    -PriceCurrency=Price (currency)
    +PriceCurrency=Cijena (u valuti)
     UnitPrice=Jedinična cijena
     UnitPriceHT=Jedinična cijena (neto)
    -UnitPriceHTCurrency=Unit price (net) (currency)
    +UnitPriceHTCurrency=Cijena po komadu (neto)(u valuti)
     UnitPriceTTC=Jedinična cijena
    -PriceU=J.C.
    -PriceUHT=J.C. (neto)
    +PriceU=Jed. cijena
    +PriceUHT=Jed. cijena
     PriceUHTCurrency=J.C. (valuta)
     PriceUTTC=J.C. (s porezom)
     Amount=Iznos
     AmountInvoice=Iznos računa
    -AmountInvoiced=Amount invoiced
    +AmountInvoiced=Zaračunati iznos
     AmountPayment=Iznos plaćanja
     AmountHTShort=Iznos (neto)
     AmountTTCShort=Iznos (s porezom)
    -AmountHT=Iznos (neto od poreza)
    +AmountHT=Iznos (bez poreza)
     AmountTTC=Iznos (s porezom)
     AmountVAT=Iznos poreza
    -MulticurrencyAlreadyPaid=Already payed, original currency
    -MulticurrencyRemainderToPay=Remain to pay, original currency
    -MulticurrencyPaymentAmount=Payment amount, original currency
    -MulticurrencyAmountHT=Iznos (neto od poreza), orginalna valuta
    -MulticurrencyAmountTTC=Iznos (s porezom), orginalna valuta
    -MulticurrencyAmountVAT=Iznos poreza, orginalna valuta
    +MulticurrencyAlreadyPaid=Već plaćeno, u izvornoj valuti
    +MulticurrencyRemainderToPay=Preostalo za platiti, u izvornoj valuti
    +MulticurrencyPaymentAmount=Iznos plaćanja, u izvornoj valuti
    +MulticurrencyAmountHT=Iznos (bez poreza), u izvornoj valuti
    +MulticurrencyAmountTTC=Iznos (s porezom), u izvornoj valuti
    +MulticurrencyAmountVAT=Iznos poreza, u izvornoj valuti
     AmountLT1=Iznos poreza 2
     AmountLT2=Iznos poreza 3
     AmountLT1ES=Iznos RE
     AmountLT2ES=Iznos IRPF
     AmountTotal=Ukupan iznos
     AmountAverage=Prosječan iznos
    -PriceQtyMinHT=Cijena količinska min. (neto od poreza)
    -PriceQtyMinHTCurrency=Price quantity min. (net of tax) (currency)
    +PriceQtyMinHT=Cijena za min. količinu (bez poreza)
    +PriceQtyMinHTCurrency=Cijena za min. količinu (bez poreza)(u valuti)
     Percentage=Postotak
     Total=Ukupno
    -SubTotal=Subtotal
    -TotalHTShort=Ukupno (neto)
    -TotalHTShortCurrency=Ukupno (neto u valuti)
    -TotalTTCShort=Ukupno (s porezom)
    -TotalHT=Ukupno (neto od poreza)
    -TotalHTforthispage=Ukupno (neto od poreza) za ovu stranicu
    -Totalforthispage=Ukupno za ovu stranicu
    -TotalTTC=Ukupno (s porezom)
    -TotalTTCToYourCredit=Ukupno (s porezom) na vaš kredit
    -TotalVAT=Ukupno porez
    -TotalVATIN=Total IGST
    +SubTotal=Sveukupno
    +TotalHTShort=Ukupno (bez poreza)
    +TotalHTShortCurrency=Ukupno (bez poreza u valuti)
    +TotalTTCShort=Ukupno s PDV-om
    +TotalHT=Ukupno bez PDV-a
    +TotalHTforthispage=Ukupno (bez poreza) na ovoj stranici
    +Totalforthispage=Ukupno na ovoj stranici
    +TotalTTC=Ukupno s PDV-om
    +TotalTTCToYourCredit=Ukupno s porezom na vaš račun
    +TotalVAT=Iznos PDV-a
    +TotalVATIN=Ukupno IGST
     TotalLT1=Ukupno porez 2
     TotalLT2=Ukupno porez 3
     TotalLT1ES=Ukupno RE
     TotalLT2ES=Ukupno IRPF
    -TotalLT1IN=Total CGST
    -TotalLT2IN=Total SGST
    -HT=Neto od poreza
    -TTC=Uklj. porez
    -INCVATONLY=Inc. VAT
    -INCT=Inc. all taxes
    -VAT=Prodajni porez
    +TotalLT1IN=Ukupno CGST
    +TotalLT2IN=Ukupno SGST
    +HT=Bez poreza
    +TTC=S porezom
    +INCVATONLY=S PDV-om
    +INCT=Zajedno sa svim porezima
    +VAT=PDV
     VATIN=IGST
    -VATs=Prodajni porezi
    -VATINs=IGST taxes
    -LT1=Sales tax 2
    -LT1Type=Sales tax 2 type
    -LT2=Sales tax 3
    -LT2Type=Sales tax 3 type
    +VATs=Porezi
    +VATINs=IGST porezi
    +LT1=Porez 2
    +LT1Type=Vrsta poreza 2
    +LT2=Porez 3
    +LT2Type=Vrsta poreza 3
     LT1ES=RE
     LT2ES=IRPF
    -LT1IN=CGST
    +LT1IN=CGTS
     LT2IN=SGST
     VATRate=Stopa poreza
    -VATCode=Tax Rate code
    -VATNPR=Tax Rate NPR
    -DefaultTaxRate=Default tax rate
    +VATCode=Oznaka stope poreza
    +VATNPR=Porezna stopa NPR
    +DefaultTaxRate=Osnovna stopa poreza
     Average=Prosjek
     Sum=Zbroj
     Delta=Delta
    -RemainToPay=Remain to pay
    +RemainToPay=Preostalo za platiti
     Module=Modul/Aplikacija
     Modules=Moduli/Aplikacije
     Option=Opcija
     List=Popis
    -FullList=Kompletan popis
    +FullList=Cijeli popis
     Statistics=Statistika
     OtherStatistics=Ostale statistike
    -Status=Status
    -Favorite=Favorit
    +Status=Stanje
    +Favorite=Omiljeno
     ShortInfo=Info.
    -Ref=Ref.
    -ExternalRef=Ref. vanjski
    -RefSupplier=Ref. vendor
    -RefPayment=Ref. plaćanja
    +Ref=Broj
    +ExternalRef=Vanjska oznaka
    +RefSupplier=Oznaka dobavljača
    +RefPayment=Oznaka plaćanja
     CommercialProposalsShort=Ponude
     Comment=Komentar
     Comments=Komentari
    -ActionsToDo=Događaji za napraviti
    -ActionsToDoShort=Za napraviti
    +ActionsToDo=Radnje za obaviti
    +ActionsToDoShort=Za učiniti
     ActionsDoneShort=Učinjeno
     ActionNotApplicable=Nije primjenjivo
     ActionRunningNotStarted=Za početi
    -ActionRunningShort=In progress
    +ActionRunningShort=U postupku
     ActionDoneShort=Završeno
    -ActionUncomplete=Nekompletno
    -LatestLinkedEvents=Latest %s linked events
    -CompanyFoundation=Company/Organization
    -Accountant=Accountant
    -ContactsForCompany=Kontakti komitenta
    -ContactsAddressesForCompany=Kontakti/adrese komitenta
    -AddressesForCompany=Adrese komitenta
    -ActionsOnCompany=Događaji povezani s komitentom
    -ActionsOnMember=Događaji za člana
    -ActionsOnProduct=Events about this product
    +ActionUncomplete=Nepotpuno
    +LatestLinkedEvents=Zadnjih %s povezanih radnji
    +CompanyFoundation=Tvrtka/Organizacija
    +Accountant=Računovođa
    +ContactsForCompany=Kontakti ove treće osobe
    +ContactsAddressesForCompany=Kontakti/adrese ove treće osobe
    +AddressesForCompany=Adrese ove treće osobe
    +ActionsOnCompany=Događaji povezani s ovom trećom osobom
    +ActionsOnContact=Events about this contact/address
    +ActionsOnMember=Događaji vezani uz ovog člana
    +ActionsOnProduct=Radnje vezane uz ovaj proizvod
     NActionsLate=%s kasni
    -ToDo=Za napraviti
    -Completed=Completed
    -Running=In progress
    -RequestAlreadyDone=Zahtjev je već pohranjen
    +ToDo=Za učiniti
    +Completed=Završeno
    +Running=U postupku
    +RequestAlreadyDone=Zahtjev je već zabilježen
     Filter=Filter
    -FilterOnInto=Kriterij pretraživanja '<strong>%s</strong>' unutar polja %s
    -RemoveFilter=Makni filter
    -ChartGenerated=Grafikon generiran
    -ChartNotGenerated=Grafikon nije generiran
    -GeneratedOn=Napravljeno %s
    -Generate=Generiraj
    +FilterOnInto=Način pretraživanja '<strong>%s</strong>' unutar polja %s
    +RemoveFilter=Ukloni filter
    +ChartGenerated=Grafikon izrađen
    +ChartNotGenerated=Grafikon nije izrađen
    +GeneratedOn=Izrađeno na temelju %s
    +Generate=Izradi
     Duration=Trajanje
     TotalDuration=Ukupno trajanje
     Summary=Sažetak
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    -NoOpenedElementToProcess=No opened element to process
    +DolibarrStateBoard=Statistika baze podataka
    +DolibarrWorkBoard=Stavke na čekanju
    +NoOpenedElementToProcess=Nema otvorenih radnji za provedbu
     Available=Dostupno
     NotYetAvailable=Nije još dostupno
     NotAvailable=Nije dostupno
    -Categories=Kategorije
    -Category=Kategorija
    +Categories=Oznake/skupine
    +Category=Oznaka/skupina
     By=Od
     From=Od
     to=za
    @@ -468,34 +470,34 @@ and=i
     or=ili
     Other=Ostalo
     Others=Ostali
    -OtherInformations=Ostale informacije
    +OtherInformations=Ostali podaci
     Quantity=Količina
    -Qty=Kol.
    -ChangedBy=Promjenio
    +Qty=Količina
    +ChangedBy=Promijenio
     ApprovedBy=Odobrio
     ApprovedBy2=Datum odobrenja (drugo odobrenje)
     Approved=Odobreno
     Refused=Odbijeno
    -ReCalculate=Rekalkuliraj
    -ResultKo=Greška
    -Reporting=Izvještavanje
    -Reportings=Izvještavanje
    +ReCalculate=Preračunaj
    +ResultKo=Neuspjeh
    +Reporting=Izvještaji
    +Reportings=Izvještaji
     Draft=Skica
     Drafts=Skice
     StatusInterInvoiced=
     Validated=Ovjereno
     Opened=Otvori
     New=Novo
    -Discount=Rabat
    +Discount=Popust
     Unknown=Nepoznat
    -General=Generalno
    +General=Opće
     Size=Veličina
    -OriginalSize=Original size
    +OriginalSize=Izvorna veličina
     Received=Primljeno
     Paid=Plaćeno
     Topic=Subjekt
    -ByCompanies=Od komitenata
    -ByUsers=By user
    +ByCompanies=Od treće osobe
    +ByUsers=Korisnik
     Links=Veze
     Link=Veza
     Rejects=Odbijanja
    @@ -504,20 +506,20 @@ NextStep=Sljedeći korak
     Datas=Podatak
     None=Niti jedan
     NoneF=Niti jedan
    -NoneOrSeveral=None or several
    +NoneOrSeveral=Niti jedan od nekoliko
     Late=Kasni
    -LateDesc=Kašnjenje za definiranje ako podatak kasni ili ne ovisno o vašim postavkama. Tražite administratora da promjeni kašnjenje iz izbornika Naslovna - Podešavanje - Obavijesti.
    -NoItemLate=No late item
    +LateDesc=Kasni li dokument ili ne ovisi o vašim postavkama. Izmjene može napraviti vaš administrator u početna stranica->postavke->upozorenja.
    +NoItemLate=Nema zakašnjelih stavaka
     Photo=Slika
     Photos=Slike
     AddPhoto=Dodaj sliku
     DeletePicture=Brisanje slike
     ConfirmDeletePicture=Potvrdi brisanje slike?
     Login=Prijava
    -LoginEmail=Login (email)
    -LoginOrEmail=Login or Email
    +LoginEmail=Korisničko ime (e-pošta)
    +LoginOrEmail=Korisničko ime ili e-pošta
     CurrentLogin=Trenutna prijava
    -EnterLoginDetail=Enter login details
    +EnterLoginDetail=Upiši podatke za prijavu
     January=Siječanj
     February=Veljača
     March=Ožujak
    @@ -530,18 +532,6 @@ September=Rujan
     October=Listopad
     November=Studeni
     December=Prosinac
    -JanuaryMin=Sje
    -FebruaryMin=Velj
    -MarchMin=Ožu
    -AprilMin=Tra
    -MayMin=Svi
    -JuneMin=Lip
    -JulyMin=Srp
    -AugustMin=Kol
    -SeptemberMin=Ruj
    -OctoberMin=Lis
    -NovemberMin=Stu
    -DecemberMin=Pro
     Month01=Siječanj
     Month02=Veljača
     Month03=Ožujak
    @@ -554,7 +544,7 @@ Month09=Rujan
     Month10=Listopad
     Month11=Studeni
     Month12=Prosinac
    -MonthShort01=Sje
    +MonthShort01=Sij
     MonthShort02=Velj
     MonthShort03=Ožu
     MonthShort04=Tra
    @@ -567,24 +557,24 @@ MonthShort10=Lis
     MonthShort11=Stu
     MonthShort12=Pro
     MonthVeryShort01=J
    -MonthVeryShort02=P
    -MonthVeryShort03=P
    +MonthVeryShort02=F
    +MonthVeryShort03=M
     MonthVeryShort04=A
    -MonthVeryShort05=P
    +MonthVeryShort05=M
     MonthVeryShort06=J
     MonthVeryShort07=J
     MonthVeryShort08=A
    -MonthVeryShort09=N
    +MonthVeryShort09=S
     MonthVeryShort10=O
     MonthVeryShort11=N
     MonthVeryShort12=D
     AttachedFiles=Priložene datoteke i dokumenti
    -JoinMainDoc=Join main document
    -DateFormatYYYYMM=YYYY-MM
    -DateFormatYYYYMMDD=YYYY-MM-DD
    -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS
    +JoinMainDoc=Sjedini glavni dokument
    +DateFormatYYYYMM=MM-YYYY
    +DateFormatYYYYMMDD=DD-MM-YYYY HH:SS
    +DateFormatYYYYMMDDHHMM=DD-MM-YYYY HH:SS
     ReportName=Naziv izvještaja
    -ReportPeriod=Period izvještaja
    +ReportPeriod=Razdoblje izvještaja
     ReportDescription=Opis
     Report=Izvještaj
     Keyword=Ključna riječ
    @@ -595,15 +585,15 @@ Reset=Reset
     File=Datoteka
     Files=Datoteke
     NotAllowed=Nije dozvoljeno
    -ReadPermissionNotAllowed=Dozvola čitanja nije dozvoljena
    -AmountInCurrency=Iznos u %s valuti
    +ReadPermissionNotAllowed=Dozvola za čitanje nije odobrena
    +AmountInCurrency=Valuta: %s
     Example=Primjer
     Examples=Primjeri
     NoExample=Nema primjera
     FindBug=Prijavi problem
    -NbOfThirdParties=Broj komitenta
    +NbOfThirdParties=Broj trećih osoba
     NbOfLines=Broj stavaka
    -NbOfObjects=Broj objekta
    +NbOfObjects=Broj predmeta
     NbOfObjectReferers=Broj povezanih stavaka
     Referers=Povezanih stavaka
     TotalQuantity=Ukupna količina
    @@ -612,9 +602,9 @@ DateFrom=Od %s
     DateUntil=Do %s
     Check=Provjeri
     Uncheck=Odznači
    -Internal=Interno
    +Internal=Unutarnje
     External=Vanjsko
    -Internals=Interno
    +Internals=Unutarnje
     Externals=Vanjsko
     Warning=Upozorenje
     Warnings=Upozorenja
    @@ -622,62 +612,64 @@ BuildDoc=Izradi dokument
     Entity=Okolina
     Entities=Subjekti
     CustomerPreview=Pregled kupca
    -SupplierPreview=Vendor preview
    -ShowCustomerPreview=Prikaži pregled kupca
    -ShowSupplierPreview=Show vendor preview
    -RefCustomer=Ref. kupca
    +SupplierPreview=Prikaz dobavljača
    +ShowCustomerPreview=Prikaži kupca
    +ShowSupplierPreview=Prikaži dobavljača
    +RefCustomer=Vezani dokument pri kupcu
     Currency=Valuta
    -InfoAdmin=Informacije za administratore
    -Undo=Poništi
    +InfoAdmin=Podaci za administratore
    +Undo=Povrati
     Redo=Povrati
     ExpandAll=Proširi sve
    -UndoExpandAll=Poništi proširenje
    -SeeAll=See all
    +UndoExpandAll=Povrati proširenje
    +SeeAll=Prikaži sve
     Reason=Razlog
    -FeatureNotYetSupported=Mogučnost nije još podržana
    +FeatureNotYetSupported=Mogućnost još nije u upotrebi
     CloseWindow=Zatvori prozor
     Response=Odaziv
     Priority=Prioritet
    -SendByMail=Poslano putem e-pošte
    +SendByMail=Pošalji e-poštom
     MailSentBy=E-poštu poslao
     TextUsedInTheMessageBody=Tijelo e-pošte
    -SendAcknowledgementByMail=Pošalji e-poštu potvrde
    -SendMail=Send email
    +SendAcknowledgementByMail=Pošalji e-poštu s potvrdom primitka
    +SendMail=Pošalji e-poštu
     EMail=E-pošta
     NoEMail=Nema e-pošte
     Email=E-pošta
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Nema mobilnog telefona
     Owner=Vlasnik
    -FollowingConstantsWillBeSubstituted=Sljedeće konstante će biti zamjenjene sa odgovarajućom vrijednošću. 
    +FollowingConstantsWillBeSubstituted=Sljedeće konstante bit će zamjenjene s odgovarajućom vrijednošću. 
     Refresh=Osvježi
     BackToList=Povratak na popis
     GoBack=Idi nazad
    -CanBeModifiedIfOk=Može se mjenjanti ako je valjana
    -CanBeModifiedIfKo=Može se mjenjanti ako nije valjana
    -ValueIsValid=Vrijednost je u redu
    -ValueIsNotValid=Vrijednost nije u redu
    -RecordCreatedSuccessfully=Record created successfully
    -RecordModifiedSuccessfully=Podatak je uspješno izmjenjen
    -RecordsModified=%s zapis je promjenjen
    +CanBeModifiedIfOk=Može se mijenjanti ako je valjana
    +CanBeModifiedIfKo=Može se mijenjanti ako nije valjana
    +ValueIsValid=Vrijednost je valjana
    +ValueIsNotValid=Vrijednost nije valjana
    +RecordCreatedSuccessfully=Spis uspješno izrađen
    +RecordModifiedSuccessfully=Podatak je uspješno izmijenjen
    +RecordsModified=%s zapis je promijenjen
     RecordsDeleted=%s zapis je obrisan
    -AutomaticCode=Automatski kod
    -FeatureDisabled=Mogučnost onemogućena
    -MoveBox=Pomakni dodatak
    +AutomaticCode=Automatski izabran kod
    +FeatureDisabled=Mogućnost isključena
    +MoveBox=Pomakni prozorčić
     Offered=Ponuđeno
    -NotEnoughPermissions=Nemate dozvolu za ovu akciju
    -SessionName=Naziv sesije
    -Method=Metoda
    +NotEnoughPermissions=Nemate dozvolu za ovu radnju
    +SessionName=Naziv sjednice
    +Method=Način
     Receive=Primi
    -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected
    +CompleteOrNoMoreReceptionExpected=Završeno ili bez drugih očekivanja
     ExpectedValue=Očekivana vrijednost
     CurrentValue=Trenutna vrijednost
    -PartialWoman=Parcijalno
    +PartialWoman=Djelomično
     TotalWoman=Ukupno
     NeverReceived=Nikad primljeno
     Canceled=Otkazano
    -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
    -YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=Možete podesiti zadanu vrijednost koju koristite kada kreirate novi podatak u postavkama modula.
    +YouCanChangeValuesForThisListFromDictionarySetup=Vrijednosti ovog popisa možete izmjeniti u postavkama->rječnici
    +YouCanChangeValuesForThisListFrom=Vrijednosti ovog popisa možete izmjeniti u %s
    +YouCanSetDefaultValueInModuleSetup=Osnovne vrijednosti prilikom izrade novog dokumenta možete izraditi u postavkama sučelja
     Color=Boja
     Documents=Povezane datoteke
     Documents2=Dokumenti
    @@ -687,44 +679,44 @@ MenuECM=Dokumenti
     MenuAWStats=AWStats
     MenuMembers=Članovi
     MenuAgendaGoogle=Google agenda
    -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb
    -NoFileFound=Nema spremljenih datoteka u ovoj mapi
    +ThisLimitIsDefinedInSetup=Granična vrijednost Dolibarra (Mapa početna->postavke->sigurnost): %s Kb, PHP granična vrijednost: %s Kb
    +NoFileFound=U ovoj mapi nema spremljenih datoteka
     CurrentUserLanguage=Trenutni jezik
     CurrentTheme=Trenutna tema
     CurrentMenuManager=Trenutni upravitelj izbornikom
     Browser=Preglednik
    -Layout=Layout
    -Screen=Screen
    +Layout=Izgled
    +Screen=Zaslon
     DisabledModules=Onemogućeni moduli
     For=Za
     ForCustomer=Za kupca
     Signature=Potpis
     DateOfSignature=Datum potpisa
    -HidePassword=Prikaži komandu sa skrivenom lozinkom
    -UnHidePassword=Prikaži stvarnu komandu s čitljivom lozinkom
    -Root=Root
    -Informations=Informacije
    +HidePassword=Prikaži naredbu sa skrivenom zaporkom
    +UnHidePassword=Prikaži stvarnu naredbu s čitljivom zaporkom
    +Root=Početna mapa
    +Informations=Podatak
     Page=Strana
    -Notes=Napomene
    +Notes=Bilješke
     AddNewLine=Dodaj novu stavku
     AddFile=Dodaj datoteku
    -FreeZone=Not a predefined product/service
    -FreeLineOfType=Not a predefined entry of type
    -CloneMainAttributes=Kloniraj objekt s svim glavnim atributima
    +FreeZone=Ovaj proizvod/usluga nije predhodno upisan
    +FreeLineOfType=Ova vrsta nije predhodno upisana
    +CloneMainAttributes=Kloniraj predmet sa svim glavnim svojstvima
     PDFMerge=Spoji PDF
     Merge=Spoji
    -DocumentModelStandardPDF=Standard PDF template
    +DocumentModelStandardPDF=Običan PDF predložak
     PrintContentArea=Prikaži stranicu za ispis
     MenuManager=Upravitelj izbornikom
    -WarningYouAreInMaintenanceMode=Upozorenje, nalazite se u načinu održavanja, tako da samo prijava <b>%s</b> je dozvoljeno za korištenje aplikacije.
    +WarningYouAreInMaintenanceMode=Upozorenje, sustav je na održavanju pa je jedino korisničkom imenu<b>%s</b> dopušteno korištenje programa.
     CoreErrorTitle=Sistemska greška
    -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
    +CoreErrorMessage=Nažalost došlo je do greške. Kontaktirajte administratora da provjeri zapise ili isključi $dolibarr_main_prod=1 za više informacija.
     CreditCard=Kreditna kartica
     ValidatePayment=Ovjeri plaćanje
    -CreditOrDebitCard=Credit or debit card
    +CreditOrDebitCard=Kreditna ili debitna kartica
     FieldsWithAreMandatory=Polja s <b>%s</b> su obavezna
    -FieldsWithIsForPublic=Polja sa <b>%s</b> su prikazani na javnom popisu članova. Ako to ne želite, odznačite kučicu "javno".
    -AccordingToGeoIPDatabase=(sukladno GeoIP konverziji)
    +FieldsWithIsForPublic=Polja s <b>%s</b> prikazana su javno na popisu članova. Ako to ne želite, uklonite kvačicu iz kvadratića.
    +AccordingToGeoIPDatabase=(prema GeoIP pretvorbi)
     Line=Stavka
     NotSupported=Nije podržano
     RequiredField=Obavezno polje
    @@ -732,6 +724,8 @@ Result=Rezultat
     ToTest=Test
     ValidateBefore=Kartica mora biti ovjerena prije korištenja ove mogućnosti
     Visibility=Vidljivost
    +Totalizable=Sveukupno zbrojivo
    +TotalizableDesc=Ovo polje je sveukupno zbrojivo s popisa.
     Private=Privatno
     Hidden=Skriveno
     Resources=Sredstva
    @@ -742,70 +736,72 @@ After=Nakon
     IPAddress=IP adresa
     Frequency=Učestalost
     IM=Brzo slanje poruka
    -NewAttribute=Novi atribut
    -AttributeCode=Kod atributa
    +NewAttribute=Novo svojstvo
    +AttributeCode=Oznaka svojstva
     URLPhoto=URL slike/loga
    -SetLinkToAnotherThirdParty=Poveži sa drugim komitentom
    -LinkTo=Poveži sa
    -LinkToProposal=Poveži sa ponudom
    +SetLinkToAnotherThirdParty=Poveži s drugom trećom osobom
    +LinkTo=Poveži s
    +LinkToProposal=Poveži s ponudom
     LinkToOrder=Poveži s narudžbom
    -LinkToInvoice=Poveži sa računom
    +LinkToInvoice=Poveži s računom
    +LinkToTemplateInvoice=Poveznica na predložak računa
     LinkToSupplierOrder=Poveži s narudžbom dobavljača
    -LinkToSupplierProposal=Poveži sa ponudom dobavljača
    +LinkToSupplierProposal=Poveži s ponudom dobavljača
     LinkToSupplierInvoice=Poveži s računom dobavljača
    -LinkToContract=Poveži sa ugovorom
    -LinkToIntervention=Poveži sa intervencijom
    -CreateDraft=Kreiraj skicu
    +LinkToContract=Poveži s ugovorom
    +LinkToIntervention=Poveži s zahvatom
    +CreateDraft=Izradi skicu
     SetToDraft=Nazad na skice
     ClickToEdit=Klikni za uređivanje
    -EditWithEditor=Edit with CKEditor
    -EditWithTextEditor=Edit with Text editor
    -EditHTMLSource=Edit HTML Source
    -ObjectDeleted=Objekt %s obrisan
    -ByCountry=Po zemlji
    -ByTown=Po gradu
    -ByDate=Po datumu
    -ByMonthYear=Po mjesecu/godini
    -ByYear=Po godini
    -ByMonth=Po mjesecu
    -ByDay=Po danu
    -BySalesRepresentative=Prodajni predstavnik
    +ClickToRefresh=Click to refresh
    +EditWithEditor=Obradi s CKEditorom
    +EditWithTextEditor=Obradi s programom za obradu teksta
    +EditHTMLSource=Uredi HTML kod
    +ObjectDeleted=Predmet %s obrisan
    +ByCountry=Prema zemlji
    +ByTown=Prema gradu
    +ByDate=Prema datumu
    +ByMonthYear=Prema mjesecu/godini
    +ByYear=Prema godini
    +ByMonth=Prema mjesecu
    +ByDay=Prema danu
    +BySalesRepresentative=Prema prodajnom predstavniku
     LinkedToSpecificUsers=Povezano sa određenim kontaktom korisnika
     NoResults=Nema rezultata
    -AdminTools=Administracijski alati
    +AdminTools=Alati administratora
     SystemTools=Sistemski alati
     ModulesSystemTools=Alati modula
     Test=Test
    -Element=Element
    +Element=Sastavnica
     NoPhotoYet=Još nema dostupnih slika
     Dashboard=Kontrolna ploča
    -MyDashboard=My dashboard
    +MyDashboard=Početna stranica
     Deductible=Povratno
     from=od
    -toward=ispred
    +toward=prema
     Access=Pristup
    -SelectAction=Odaberi akciju
    -SelectTargetUser=Select target user/employee
    +SelectAction=Odaberi radnju
    +SelectTargetUser=Izaberi ciljanog korisnika/zaposlenika
     HelpCopyToClipboard=Koristi Ctrl+C za kopiranje u međuspremnik
     SaveUploadedFileWithMask=Spremite datoteku na server pod imenom  "<strong>%s</strong>" (u protivnom "%s")
    -OriginFileName=Orginalna datoteka
    -SetDemandReason=Postavi izvor
    +OriginFileName=Ime izvorne datoteke
    +SetDemandReason=Odredi izvor
     SetBankAccount=Postavi bankovni račun
     AccountCurrency=Valuta računa
    -ViewPrivateNote=Vidi napomene
    +ViewPrivateNote=Vidi bilješke
     XMoreLines=%s stavaka(e) skriveno
    -ShowMoreLines=Show more/less lines
    +ShowMoreLines=Prikaži više/manje redaka
     PublicUrl=Javni URL
     AddBox=Dodaj blok
    -SelectElementAndClick=Select an element and click %s
    +SelectElementAndClick=Izaberi sastavnicu i klikni %s
     PrintFile=Ispis datoteke %s
    -ShowTransaction=Show entry on bank account
    -ShowIntervention=Prikaži intervenciju
    +ShowTransaction=Prikaži upis na bankovni račun
    +ShowIntervention=Prikaži zahvat
     ShowContract=Prikaži ugovor
    -GoIntoSetupToChangeLogo=Idite na Home - Podešavanje - Tvrtka za promjenu logotipa ili idite na Home - Podešavanje - Prikaz za skrivanje.
    +GoIntoSetupToChangeLogo=Idite na početnu stranicu->tvrtka kako biste izmjenili logo ili na početnu stranicu->postavke->zaslon kako biste ga uklonili
     Deny=Odbij
     Denied=Odbijeno
    -ListOf=List of %s
    +ListOf=Popis od %s
     ListOfTemplates=Popis predložaka
     Gender=Spol
     Genderman=Muško
    @@ -813,64 +809,73 @@ Genderwoman=Žensko
     ViewList=Pregled popisa
     Mandatory=Obavezno
     Hello=Pozdrav
    -GoodBye=GoodBye
    -Sincerely=Srdačno
    +GoodBye=Doviđenja!
    +Sincerely=Srdačan pozdrav!
     DeleteLine=Obriši stavku
    -ConfirmDeleteLine=Jeste li sigurni da želite obrisati tu liniju?
    -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    -NoRecordSelected=No record selected
    -MassFilesArea=Sučelje za datoteke stvorene masovnom akcijom
    +ConfirmDeleteLine=Jeste li sigurni da želite obrisati ovu stavku?
    +NoPDFAvailableForDocGenAmongChecked=Među spisima nije pronađen ni jedan izrađeni PDF
    +TooManyRecordForMassAction=Odabrano previše podataka za masovnu obradu. Obrada je zabranjena za popis od %s podataka.
    +NoRecordSelected=Ni jedan spis nije izabran
    +MassFilesArea=Sučelje za datoteke izrađene masovnom radnjama
     ShowTempMassFilesArea=Prikaži sučelje datoteka stvorenih masovnom akcijom
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    -RelatedObjects=Povezani objekti
    -ClassifyBilled=Označi kao naplaćena
    -ClassifyUnbilled=Classify unbilled
    +ConfirmMassDeletion=Potvrda brisanja
    +ConfirmMassDeletionQuestion=Jeste li sigurni da želite obrisati %s odabranih spisova?
    +RelatedObjects=Povezani predmeti
    +ClassifyBilled=Označi kao zaračunato
    +ClassifyUnbilled=Označi kao nezaračunato
     Progress=Napredak
     FrontOffice=Front office
     BackOffice=Back office
     View=Vidi
    -Export=Export
    -Exports=Exports
    -ExportFilteredList=Export filtered list
    -ExportList=Export list
    +Export=Izvoz podataka
    +Exports=Izvozi podataka
    +ExportFilteredList=Izvoz pročišćenog popisa
    +ExportList=Spis izvoza
     ExportOptions=Opcije izvoza
     Miscellaneous=Ostalo
     Calendar=Kalendar
    -GroupBy=sortiraj po...
    -ViewFlatList=View flat list
    -RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    -DirectDownloadLink=Direct download link (public/external)
    -DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
    -Download=Download
    -DownloadDocument=Download document
    -ActualizeCurrency=Update currency rate
    +GroupBy=Grupiraj prema...
    +ViewFlatList=Pregledaj popis bez grananja
    +RemoveString=Ukloni redak '%s'
    +SomeTranslationAreUncomplete=Neki od ponuđenih jezika možda su djelomično prevedeni ili sadrže greške. Molim vas pomozite ispraviti vaš jezik prijavom na <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>. Ne budite pizde!
    +DirectDownloadLink=Poveznica za izravno preuzimanje (dostupno javno)
    +DirectDownloadInternalLink=Poveznica za izravno preuzimanje (potrebna prijava i dopuštenje)
    +Download=Preuzimanje
    +DownloadDocument=Preuzimanje dokumenta
    +ActualizeCurrency=Upiši novi tečaj
     Fiscalyear=Fiskalna godina
    -ModuleBuilder=Module Builder
    -SetMultiCurrencyCode=Set currency
    -BulkActions=Bulk actions
    -ClickToShowHelp=Click to show tooltip help
    +ModuleBuilder=Graditelj sučelja
    +SetMultiCurrencyCode=Odredi valutu
    +BulkActions=Opsežne radnje
    +ClickToShowHelp=Klikni za prikaz pomoći
     WebSite=Website
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSites=Web lokacije
    +WebSiteAccounts=Website accounts
     ExpenseReport=Izvještaj troška
     ExpenseReports=Izvještaji troška
     HR=HR
    -HRAndBank=HR and Bank
    -AutomaticallyCalculated=Automatically calculated
    -TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    -ImportId=Import id
    +HRAndBank=HR i banka
    +AutomaticallyCalculated=Automatski izračunato
    +TitleSetToDraft=Pretvori u skicu
    +ConfirmSetToDraft=Jeste li sigurni da želiti pretvoriti u skicu?
    +ImportId=Oznaka uvoza
     Events=Događaj
     EMailTemplates=Predlošci e-pošte
    -FileNotShared=File not shared to exernal public
    +FileNotShared=Datoteka se ne može dijeliti
     Project=Projekt
     Projects=Projekti
    +LeadOrProject=Plan | Projekt
    +LeadsOrProjects=Planovi | Projekti
    +Lead=Plan
    +Leads=Planovi
    +ListOpenLeads=Popis otvorenih planova
    +ListOpenProjects=Popis otvorenih projekata
    +NewLeadOrProject=Novi plan ili projekt
     Rights=Prava pristupa
    -LineNb=Line no.
    +LineNb=Redak br.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Ponedjeljak
     Tuesday=Utorak
    @@ -901,16 +906,16 @@ ShortFriday=P
     ShortSaturday=S
     ShortSunday=N
     SelectMailModel=Odaberi predložak elektroničke pošte
    -SetRef=Postavi ref.
    -Select2ResultFoundUseArrows=Some results found. Use arrows to select.
    +SetRef=Odredi oznaku
    +Select2ResultFoundUseArrows=Pronađeni neki rezultati. Koristi strelice za izbor.
     Select2NotFound=Ništa nije pronađeno
     Select2Enter=Unos
    -Select2MoreCharacter=ili još znakova
    +Select2MoreCharacter=ili više znakova
     Select2MoreCharacters=ili više znakova
    -Select2MoreCharactersMore=<strong>Search syntax:</strong><br><kbd><strong> |</strong></kbd><kbd> OR</kbd> (a|b)<br><kbd><strong>*</strong></kbd><kbd> Any character</kbd> (a*b)<br><kbd><strong>^</strong></kbd><kbd> Start with</kbd> (^ab)<br><kbd><strong>$</strong></kbd><kbd> End with</kbd> (ab$)<br>
    -Select2LoadingMoreResults=Učitaj više podataka...
    +Select2MoreCharactersMore=<strong>Pravila pretrage:</strong><br><kbd><strong> |</strong></kbd><kbd> ili</kbd> (a|b)<br><kbd><strong>*</strong></kbd><kbd> bilo koji znak</kbd> (a*b)<br><kbd><strong>^</strong></kbd><kbd> koji počinje</kbd> (^ab)<br><kbd><strong>$</strong></kbd><kbd> završava s</kbd> (ab$)<br>
    +Select2LoadingMoreResults=Učitavam više podataka...
     Select2SearchInProgress=Pretraživanje u tijeku...
    -SearchIntoThirdparties=Komitenti
    +SearchIntoThirdparties=Treće osobe
     SearchIntoContacts=Kontakti
     SearchIntoMembers=Članovi
     SearchIntoUsers=Korisnici
    @@ -918,33 +923,35 @@ SearchIntoProductsOrServices=Proizvodi ili usluge
     SearchIntoProjects=Projekti
     SearchIntoTasks=Zadaci
     SearchIntoCustomerInvoices=Računi za kupce
    -SearchIntoSupplierInvoices=Vendor invoices
    +SearchIntoSupplierInvoices=Računi dobavljača
     SearchIntoCustomerOrders=Narudžbe kupaca
    -SearchIntoSupplierOrders=Purchase orders
    +SearchIntoSupplierOrders=Narudžbe dobavljačima
     SearchIntoCustomerProposals=Ponude kupca
    -SearchIntoSupplierProposals=Vendor proposals
    -SearchIntoInterventions=Intervencije
    +SearchIntoSupplierProposals=Ponude dobavljača
    +SearchIntoInterventions=Zahvati
     SearchIntoContracts=Ugovori
     SearchIntoCustomerShipments=Pošiljke kupcu
    -SearchIntoExpenseReports=Izvještaji troška
    -SearchIntoLeaves=Odsustva
    +SearchIntoExpenseReports=Troškovnici
    +SearchIntoLeaves=Napusti
     CommentLink=Komentari
    -NbComments=Number of comments
    -CommentPage=Comments space
    -CommentAdded=Comment added
    -CommentDeleted=Comment deleted
    +NbComments=Broj komentara
    +CommentPage=Prostor za komentare
    +CommentAdded=Komentar dodan
    +CommentDeleted=Komentar obrisan
     Everybody=Svi
    -PayedBy=Payed by
    -PayedTo=Payed to
    -Monthly=Monthly
    -Quarterly=Quarterly
    -Annual=Annual
    -Local=Local
    -Remote=Remote
    -LocalAndRemote=Local and Remote
    -KeyboardShortcut=Keyboard shortcut
    -AssignedTo=Dodjeljeno korisniku
    -Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    -FileSharedViaALink=File shared via a link
    -
    +PayedBy=Platio
    +PayedTo=Plaćeno
    +Monthly=Mjesečno
    +Quarterly=Četvrtgodišnje
    +Annual=Godišnje
    +Local=Lokalno
    +Remote=Vanjsko
    +LocalAndRemote=Lokalno i vanjsko
    +KeyboardShortcut=Kratica tipkovnice
    +AssignedTo=Dodijeljeno korisniku
    +Deletedraft=Obriši skicu
    +ConfirmMassDraftDeletion=Potvrda masovnog brisanja skica
    +FileSharedViaALink=Datoteka podijeljena putem poveznice
    +SelectAThirdPartyFirst=Prvo izaberite treću osobu...
    +YouAreCurrentlyInSandboxMode=Trenutno ste %s u "sandbox" načinu rada
    +Inventory=Inventory
    diff --git a/htdocs/langs/hr_HR/orders.lang b/htdocs/langs/hr_HR/orders.lang
    index acd4a202693..2f5b9e34621 100644
    --- a/htdocs/langs/hr_HR/orders.lang
    +++ b/htdocs/langs/hr_HR/orders.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - orders
     OrdersArea=Sučelje narudžba kupaca
    -SuppliersOrdersArea=Purchase orders area
    -OrderCard=Kartica nardžbi
    +SuppliersOrdersArea=Sučelje narudžbenica
    +OrderCard=Narudžbenica
     OrderId=Broj narudžbe
    -Order=Narudžba
    -PdfOrderTitle=Narudžba
    +Order=Narudžbenica
    +PdfOrderTitle=Narudžbenica
     Orders=Narudžbe
     OrderLine=Stavka narudžbe
     OrderDate=Datum narudžbe
    @@ -13,18 +13,18 @@ OrderToProcess=Obrada narudžbe
     NewOrder=Nova narudžba
     ToOrder=Napravi narudžbu
     MakeOrder=Napravi narudžbu
    -SupplierOrder=Purchase order
    -SuppliersOrders=Purchase orders
    -SuppliersOrdersRunning=Current purchase orders
    +SupplierOrder=Narudžbenica
    +SuppliersOrders=Narudžbe dobavljačima
    +SuppliersOrdersRunning=Otvorene narudžbe dobavljačima
     CustomerOrder=Narudžba kupca
     CustomersOrders=Narudžbe kupaca
     CustomersOrdersRunning=Trenutne narudžbe kupaca
    -CustomersOrdersAndOrdersLines=Narudžba kupca i stavke narudžbe
    +CustomersOrdersAndOrdersLines=Customer orders and order details
     OrdersDeliveredToBill=Customer orders delivered to bill
     OrdersToBill=Isporučene narudžbe kupca
     OrdersInProcess=Narudžbe kupca u obradi
     OrdersToProcess=Narudžbe kupca za obradu
    -SuppliersOrdersToProcess=Purchase orders to process
    +SuppliersOrdersToProcess=Narudžbe za izvršenje
     StatusOrderCanceledShort=Otkazano
     StatusOrderDraftShort=Skica
     StatusOrderValidatedShort=Ovjereno
    @@ -37,7 +37,7 @@ StatusOrderDeliveredShort=Dostavljeno
     StatusOrderToBillShort=Dostavljeno
     StatusOrderApprovedShort=Odobreno
     StatusOrderRefusedShort=Odbijeno
    -StatusOrderBilledShort=Naplaćeno
    +StatusOrderBilledShort=Zaračunato
     StatusOrderToProcessShort=Za obradu
     StatusOrderReceivedPartiallyShort=Djelomično isporučeno
     StatusOrderReceivedAllShort=Products received
    @@ -50,11 +50,11 @@ StatusOrderProcessed=Obrađeno
     StatusOrderToBill=Dostavljeno
     StatusOrderApproved=Odobreno
     StatusOrderRefused=Odbijeno
    -StatusOrderBilled=Naplaćeno
    +StatusOrderBilled=Zaračunato
     StatusOrderReceivedPartially=Djelomično primljeno
     StatusOrderReceivedAll=All products received
     ShippingExist=Isporuka postoji
    -QtyOrdered=Količina naručena
    +QtyOrdered=Naručena količina
     ProductQtyInDraft=Količina robe u skicama narudžbi
     ProductQtyInDraftOrWaitingApproved=Količina proizvoda u skicama ili odobrenim narudžbama, nije još naručena
     MenuOrdersToBill=Isporučene narudžbe
    @@ -88,7 +88,7 @@ NumberOfOrdersByMonth=Broj narudžba tijekom mjeseca
     AmountOfOrdersByMonthHT=Iznos narudžbi po mjesecu (bez PDV-a)
     ListOfOrders=Lista narudžbi
     CloseOrder=Zatvori narudžbu
    -ConfirmCloseOrder=Are you sure you want to set this order to deliverd? Once an order is delivered, it can be set to billed.
    +ConfirmCloseOrder=Are you sure you want to set this order to delivered? Once an order is delivered, it can be set to billed.
     ConfirmDeleteOrder=Are you sure you want to delete this order?
     ConfirmValidateOrder=Are you sure you want to validate this order under name <b>%s</b>?
     ConfirmUnvalidateOrder=Are you sure you want to restore order <b>%s</b> to draft status?
    @@ -99,7 +99,7 @@ ClassifyShipped=Označi kao isporučeno
     DraftOrders=Skica narudžbi
     DraftSuppliersOrders=Draft purchase orders
     OnProcessOrders=Narudžbe u obradi
    -RefOrder=Ref. narudžbe
    +RefOrder=Broj narudžbe kupca
     RefCustomerOrder=Ref. narudžba kupca
     RefOrderSupplier=Ref. order for vendor
     RefOrderSupplierShort=Ref. order vendor
    @@ -116,7 +116,7 @@ DispatchSupplierOrder=Zaprimanje narudžbe dobavljača %s
     FirstApprovalAlreadyDone=Prvo odobrenje je već napravljeno
     SecondApprovalAlreadyDone=Drugo odobrenje je već napravljeno
     SupplierOrderReceivedInDolibarr=Purchase Order %s received %s
    -SupplierOrderSubmitedInDolibarr=Purchase Order %s submited
    +SupplierOrderSubmitedInDolibarr=Purchase Order %s submitted
     SupplierOrderClassifiedBilled=Purchase Order %s set billed
     OtherOrders=Other orders
     ##### Types de contacts #####
    @@ -141,6 +141,7 @@ OrderByWWW=Online
     OrderByPhone=Telefon
     # Documents models
     PDFEinsteinDescription=Cjeloviti model narudžbe (logo...)
    +PDFEratostheneDescription=Cjeloviti model narudžbe (logo...)
     PDFEdisonDescription=Jednostavan model narudžbe
     PDFProformaDescription=Cjeloviti predračun (logo...)
     CreateInvoiceForThisCustomer=Naplata narudžbi
    diff --git a/htdocs/langs/hr_HR/other.lang b/htdocs/langs/hr_HR/other.lang
    index 40e6d1aaf8f..419d7ff1c39 100644
    --- a/htdocs/langs/hr_HR/other.lang
    +++ b/htdocs/langs/hr_HR/other.lang
    @@ -1,9 +1,9 @@
     # Dolibarr language file - Source file is en_US - other
     SecurityCode=Security code
     NumberingShort=N°
    -Tools=Tools
    -TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +Tools=Alati
    +TMenuTools=Alati
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Ponuda poslana poštom
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Komitent kreiran
     Notify_COMPANY_SENTBYMAIL=Pošta poslana s kartice komitenta
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> je podatak ovisan o državi komitenta. <br> Na primjer, za zemlju <b>%s</b>, kod je <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Naslov
     WEBSITE_DESCRIPTION=Opis
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/hr_HR/paybox.lang b/htdocs/langs/hr_HR/paybox.lang
    index 4e7079b5912..9a3694339f3 100644
    --- a/htdocs/langs/hr_HR/paybox.lang
    +++ b/htdocs/langs/hr_HR/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Podešavanje PayBox modula
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Obrazac plaćanja
    -WelcomeOnPaymentPage=Dobro došli na naš servis online plaćanja
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Ova stranica vam dozvoljava da vršite online plaćanje prema %s
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=Za završiti
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Ova stranica potvrđuje da je vaše plaćanje pohranjeno. Hvala Vam.
    -YourPaymentHasNotBeenRecorded=Vaša uplata nije pohranjena i transakcija je otkazana. Hvala Vam.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Parametri računa
     UsageParameter=Parametri korištenja
     InformationToFindParameters=Pomoć za pronalaženje podataka o računu %s
    diff --git a/htdocs/langs/hr_HR/projects.lang b/htdocs/langs/hr_HR/projects.lang
    index ecfb85b0828..b14f1b20221 100644
    --- a/htdocs/langs/hr_HR/projects.lang
    +++ b/htdocs/langs/hr_HR/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Otvoreni projekti
     OpenedTasks=Otvoreni zadaci
    -OpportunitiesStatusForOpenedProjects=Mogući iznos otvorenih projekata po statusu
    -OpportunitiesStatusForProjects=Iznos šanse za projekte po statusu
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Prikaži projekt
     ShowTask=Prikaži zadatak
     SetProject=Postavi projekt
     NoProject=Nema definiranih ili vlastih projekata
    -NbOfProjects=Br. projekata
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Vrijeme utrošeno
     TimeSpentByYou=Vaše utrošeno vrijeme
     TimeSpentByUser=Utrošeno vrijeme korisnika
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Idi na popis utrošenog vremena
     GoToListOfTasks=Idi na popis zadataka
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Popis ponuda dodjeljenih projektu
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Popis ugovora povezanih sa projektom
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Popis intervencija povezanih sa projektom
    -ListExpenseReportsAssociatedProject=Popis izvještaja troškova povezanih sa projektom
    -ListDonationsAssociatedProject=Popis donacija povezanih sa projektom
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Popis događaja povezanih sa projektom
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=Popis utrošenog vremena po zadacima projekta
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Današnja aktivnost na projektu
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Povezano s drugim komitentom
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Utrošeno vrijeme je prazno
     ThisWillAlsoRemoveTasks=Ova akcija će također obrisati sve zadatke projekta (<b>%s</b> zadataka u ovom trenutku) i sve unose utrošenog vremena.
    -IfNeedToUseOhterObjectKeepEmpty=Ako neki objekti (računi, narudžbe,...), pripadaju drugom komitentu, moraju biti povezani s projektom koji se kreira, ostavite prazno da bi projekt bio za više komitenata.
    +IfNeedToUseOtherObjectKeepEmpty=Ako neki objekti (računi, narudžbe,...), pripadaju drugom komitentu, moraju biti povezani s projektom koji se kreira, ostavite prazno da bi projekt bio za više komitenata.
     CloneProject=Kloniraj projekt
     CloneTasks=Kloniraj zadatke
     CloneContacts=Kloniraj kontakte
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Zadatak %s kreiran
     TaskModifiedInDolibarr=Zadatak %s izmjenjen
     TaskDeletedInDolibarr=Zadatak %s obrisan
    -OpportunityStatus=Status šanse
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Šansa status
    -OpportunityProbability=Vjerojatnost šanse
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Vjer. šanse
    -OpportunityAmount=Iznos šanse
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Šansa iznos
     OpportunityAmountAverageShort=Prosječan iznos šanse
     OpportunityAmountWeigthedShort=Vjerojatan iznos šanse
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Suradnik
     SelectElement=Odaberi element
     AddElement=Poveži s elementom
     # Documents models
    -DocumentModelBeluga=Predložak projekta za pregled povezanih objekata
    -DocumentModelBaleine=Predložak izvještaja za zadatke projekta 
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planirano opterećenje
     PlannedWorkloadShort=Opterećenje
     ProjectReferers=Povezane stavke
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projekti s ovim korisnikom kao kontakt osoba
     TasksWithThisUserAsContact=Zadaci dodjeljeni korisniku
     ResourceNotAssignedToProject=Nije dodjeljen projektu
     ResourceNotAssignedToTheTask=Nije dodjeljen zadatku
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Dodjeli zadatak meni
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Dodjeli
     ProjectOverview=Pregled
    -ManageTasks=Koristi projekte za pračenje zadataka i vremena 
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Koristi projekte za praćenje prednosti/šansi
    -ProjectNbProjectByMonth=Br. kreiranih projektata po mjesecu 
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Iznos šansi po mjesecu
    -ProjectWeightedOppAmountOfProjectsByMonth=Važniji iznosi šansi po mjesecu
    -ProjectOpenedProjectByOppStatus=Otvoreni projekti/prednosti po statusu šanse
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistika po projektima/prednostima
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Zadatak dodjeljen. Unos vremena za zadatak je moguće.
     IdTaskTime=ID vre. zad.
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Samo šanse
    -OpenedOpportunitiesShort=Otvorene šanse
    -NotAnOpportunityShort=Nije šansa
    -OpportunityTotalAmount=Ukupan iznos šansi
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Iznosi šanse po važnosti sa vjerojatnošću
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospekcija
     OppStatusQUAL=Kvalifikacija
     OppStatusPROPO=Ponuda
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/hr_HR/propal.lang b/htdocs/langs/hr_HR/propal.lang
    index 037404fa5f5..da6c1a85e1a 100644
    --- a/htdocs/langs/hr_HR/propal.lang
    +++ b/htdocs/langs/hr_HR/propal.lang
    @@ -31,13 +31,13 @@ PropalStatusDraft=Skica (potrebno ovjeriti)
     PropalStatusValidated=Validated (proposal is opened)
     PropalStatusSigned=Potpisana (za naplatu)
     PropalStatusNotSigned=Nije potpisana (zatvorena)
    -PropalStatusBilled=Naplaćena
    +PropalStatusBilled=Zaračunato
     PropalStatusDraftShort=Skica
    -PropalStatusValidatedShort=Ovjereno
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Zatvorena
     PropalStatusSignedShort=Potpisana
     PropalStatusNotSignedShort=Nije potpisana
    -PropalStatusBilledShort=Naplaćena
    +PropalStatusBilledShort=Zaračunato
     PropalsToClose=Ponude za zatvaranje
     PropalsToBill=Potpisane ponude za naplatu
     ListOfProposals=Popis ponuda
    @@ -45,7 +45,7 @@ ActionsOnPropal=Događaji vezani uz ponudu
     RefProposal=Broj ponude
     SendPropalByMail=Pošalji ponudu e-poštom
     DatePropal=Datum ponude
    -DateEndPropal=Datum dospijeća
    +DateEndPropal=Vrijedi do
     ValidityDuration=Vrijedi do
     CloseAs=Postavi status na
     SetAcceptedRefused=Postavi prihvaćeno/odbijeno
    @@ -53,16 +53,16 @@ ErrorPropalNotFound=Ponuda %s nije pronađena
     AddToDraftProposals=Dodati skici ponude
     NoDraftProposals=Nema skica ponuda
     CopyPropalFrom=Izradi ponudu preslikom postojeće ponude
    -CreateEmptyPropal=Izradi prazan predložak ponude ili popis proizvoda i usluga
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Osnovni rok valjanosti ponude (u danima)
    -UseCustomerContactAsPropalRecipientIfExist=Ako je navedena, za ponudu upotrijebi adresu kontakta pri kupcu umjesto adrese tvrtke
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Kloniraj ponudu
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
     ProposalsAndProposalsLines=Ponude i stavke
     ProposalLine=Stavka ponude
    -AvailabilityPeriod=Odgoda dostupnosti
    -SetAvailability=Odredi odgodu dostupnosti
    +AvailabilityPeriod=Rok isporuke
    +SetAvailability=Odredi rok isporuke
     AfterOrder=poslije narudžbe
     OtherProposals=Ostale ponude
     ##### Availability #####
    @@ -78,8 +78,9 @@ TypeContact_propal_external_CUSTOMER=Kontakt osoba pri kupcu za ponudu
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Cjeloviti model ponude (logo...)
    +DocModelCyanDescription=Cjeloviti model ponude (logo...)
     DefaultModelPropalCreate=Izrada osnovnog modela
     DefaultModelPropalToBill=Osnovni predložak prilikom zatvaranja poslovne ponude (za naplatu)
     DefaultModelPropalClosed=Osnovni predložak prilikom zatvaranja poslovne ponude (nenaplaćeno)
    -ProposalCustomerSignature=Pismeno prihvaćanje, pečat tvrtke, datum i potpis
    +ProposalCustomerSignature=Potvrda narudžbe; pečat tvrtke, datum i potpis
     ProposalsStatisticsSuppliers=Statistika ponuda dobavljača
    diff --git a/htdocs/langs/hr_HR/website.lang b/htdocs/langs/hr_HR/website.lang
    index ff35b10630d..80ad690bf48 100644
    --- a/htdocs/langs/hr_HR/website.lang
    +++ b/htdocs/langs/hr_HR/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kod
    -WebsiteSetupDesc=Kreirajte različitih unosa koliko god to želite ovisno koliko web mjesta želite. Nakon toga idite na Websites izbornik za uređivanje istih.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Obriši Web mjesto
    -ConfirmDeleteWebsite=Jeste li sigurni da želite obrisati ovo web mjesto. Sve stranice i sadržaj biti će isto obrisan.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Naziv stranice/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL vanjske CSS datoteke
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Mediji
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Uredi izbornik
     EditMedias=Edit medias
    -EditPageMeta=Uredi meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Pregled vašeg web mjesta <strong>%s</strong> nije još dostupan. Prvo morate dodati stranicu.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=Pogledaj stranicu u novom tabu
     SetAsHomePage=Postavi kao početnu stranicu
     RealURL=Pravi URL
     ViewWebsiteInProduction=Pogledaj web lokaciju koristeći URL naslovnice
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang
    index 5c73ed294d2..4e6220d4369 100644
    --- a/htdocs/langs/hu_HU/admin.lang
    +++ b/htdocs/langs/hu_HU/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Fejlesztői
     VersionUnknown=Ismeretlen
     VersionRecommanded=Ajánlott
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Munkamenet mentésének kezelője
     SessionSavePath=Munkamenetek tárhelye
     PurgeSessions=Munkamenetek beszüntetése
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=A PHP-ben beállított munkamenetmentés-kezelő nem teszi lehetővé az összes aktív munkamenet felsorolását.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Új kapcsolatok letiltása
    -ConfirmLockNewSessions=Biztosan szeretné, hogy az új kapcsolatok csak Önre legyenek korlátozva? Ezentúl csak a  <b>%s</b> felhasználó lesz képes csatlakozni.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Új kapcsolatok engedélyezése
     YourSession=Az Ön munkamenete
    -Sessions=Felhasználók munkamenetei
    +Sessions=Users sessions
     WebUserGroup=Webszerver felhasználója / csoportja
    -NoSessionFound=A PHP úgy tűnik, hogy nem engedi az aktív munkamenetek felsorolását. Lehet, hogy a munkamenetek tárhelyének <b>(%s)</b> hozzáférése korlátozott. (Például az operációs rendszer vagy a PHP open_basedir direktívája által).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Az adatbázis adattárolási karakterkészlete
     DBSortingCharset=Az adatbázis adatrendezési karakterkészlete
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Külső felhasználó
     InternalUsers=Belső felhasználók
     ExternalUsers=Külső felhasználók
     GUISetup=Kijelző
    -SetupArea=Beállítási terület
    +SetupArea=Beállítás
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=A fájlfeltöltés tesztelésének űrlapja (beállítás szerint)
     IfModuleEnabled=Megjegyzés: az 'igen' csak akkor eredményes, ha a <b>%s</b> modul engedélyezve van 
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=A kód nem tartalmazhatja a 0 értéket
     DisableJavascript=A Javascript és Ajax funkciók kikapcsolása. (Látássérültek számára, vagy szöveges böngészők használata esetén ajánlott)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Keresést kiváltó karakterek száma: %s
     NotAvailableWhenAjaxDisabled=Nem érhető el, ha az Ajax le van tiltva
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Előnézet nem elérhető
     ThemeCurrentlyActive=Jelenleg aktív téma
     CurrentTimeZone=A PHP (szerver) időzónája
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Hely
     Table=Táblázat
     Fields=Mezők
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Aktív
     SetupShort=Beállítás
     OtherOptions=Egyéb lehetőségek
    -OtherSetup=Egyéb beállítások
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Tizedes elválasztó
     CurrentValueSeparatorThousand=Ezer elválasztó
     Destination=Úticél
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Paraméter %s
    -LocalisationDolibarrParameters=Lokalizációs paraméterek
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Kliens időzónája (felhasználó)
     ClientHour=Kliens ideje (felhasználó)
     OSTZ=A szerver operációs rendszerének időzónája
    @@ -126,8 +126,8 @@ PHPTZ=A PHP szerver időzónája
     DaylingSavingTime=Nyári időszámítás
     CurrentHour=PHP óra (szerver)
     CurrentSessionTimeOut=Jelenlegi munkamenet elévülési ideje
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgetek
     MaxNbOfLinesForBoxes=A widgetek által elfoglalt sorok száma max.
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Automatikus nyelvfelismerés (a böngésző nyelve)
     FeatureDisabledInDemo=Demó módban kikapcsolva
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=A widgetek olyan elemek melyek segítségével egyes oldalak testreszabhatók. A widget ki/bekapcsolását a cél-oldal kiválasztásával az 'Aktiválás'-ra kattintva érheti el illetve a kukára kattintva kikapcsolhatja.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Csak a <a href="%s"> bekapcsolt modulok</a> elemei jelennek meg.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Az interneten további modulokat találhat...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Új
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, a hivatalos Dolibarr ERP / CRM piactér külső modulok számára
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Referencia oldalak további modulok beszerzéséhez...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Elérhető widgetek
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Ne használjon olvasható jelszavakat az adatbázisban,
     MainDbPasswordFileConfEncrypted=Titkosítsa az adatbázis jelszót a conf.php-ban (ajánlott aktiválni)
     InstrucToEncodePass=A jelszavak titkosításához a <b>conf.php</b>-ben cserélje ki a <br><b>$dolibarr_main_db_pass="...";</b><br>sort erre:<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=A generált pdf fájlok védelme (nem ajánlott aktiválni, mivel a tömeges pdf generálást ellehetetleníti)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Funkció
     DolibarrLicense=Engedély
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=A felhasználó vagy fejlesztői dokumentáció (doc, GYIK ...), <br> vessünk egy pillantást a Dolibarr Wiki: <br> <a href="%s" target="_blank"><b>%s</b></a>
     ForAnswersSeeForum=Ha bármilyen további kérdése / help, akkor használja a fórumot Dolibarr: <br> <a href="%s" target="_blank"><b>%s</b></a>
    -HelpCenterDesc1=Ebben a részben a Dolibarral kapcsolatos segítségnyújtási szolgáltatást veheti igénybe.
    -HelpCenterDesc2=A szolgáltatás néhány eleme <b>csak angolul érhető el.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Aktuális menü kezelő
     MeasuringUnit=Mértékegység
     LeftMargin=Bal margó
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS Port (alapértelmezés a php.ini-ben: <b>%s)</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (alapértelmezés a php.ini-ben: <b>%s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS Port (nem definiált a PHP-ben Unix szerű rendszereken)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (nem definiált a PHP-ben Unix szerű rendszereken)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Küldjön szisztematikusan rejtett másolatot az összes elküldött e-mail-ről ide:
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=E-mail küldéséhez használt metódus
    -MAIN_MAIL_SMTPS_ID=SMTP azonosító ha szükséges a hitelesítés
    -MAIN_MAIL_SMTPS_PW=SMTP jelszó ha szükséges a hitelesítés
    -MAIN_MAIL_EMAIL_TLS= Használjon TLS (SSL) titkosítást
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Tiltsa le minden SMS-küldését (hibakeresési vagy demó célokra)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=SMS küldésére használt metódus
    -MAIN_MAIL_SMS_FROM=Alapértelmezett küldő telefonszám az SMS-küldés során
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=Felhasználó email címe
     CompanyEmail=Cég email címe
     FeatureNotAvailableOnLinux=A szolgáltatás nem elérhető Unix szerű rendszereken. Teszteld a sendmail programot helyben.
    -SubmitTranslation=Ha a fordítás nem teljes vagy hibákat talál, kijavíthatja a <b>langs/%s</b> könyvtárban található fájlokban és elküldheti a javítást a www.transifex.com/dolibarr-association/dolibarr/ címre
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Modul beállítása
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modulok eszközök
     ModuleFamilyExperimental=Kísérleti modulok
     ModuleFamilyFinancial=Pénzügyi modulok (Számviteli / Kincstár)
     ModuleFamilyECM=Elektronikus Tartalom Kezelés (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menü kezelők
     MenuAdmin=Menüszerkesztő
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Ne használd élesben
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=%s lépés
    -FindPackageFromWebSite=Keressen olyan csomag, amely biztosítja a kívánt funkciót (például a hivatalos honlapján %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Csomag letöltése (pl. a havatalos oldalról %s)
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr jelenlegi verziója
     CallUpdatePage=Lépjen az oldalra amiben az adatbázis struktúrát és adatokat frissíti: %s
     LastStableVersion=Utolsó stabil verzió
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Késleltetése caching export válasz másodpercben (0 vagy üres cache nélkül)
     DisableLinkToHelpCenter=Hide link <b>&quot;Segítségre van szüksége, vagy támogatják&quot;</b> a bejelentkezési oldalon
     DisableLinkToHelp=Az online segítség "<b>%s</b>" hivatkozásának elrejtése
    -AddCRIfTooLong=Nincs automatikus tördelés, így ha sor túllép a dokumentumon, mert túl hosszú, akkor meg kell adnia kézzel a szövegdobozban a sortörést.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimális hossz
     LanguageFilesCachedIntoShmopSharedMemory=Fájlok. Lang betöltve megosztott memória
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Példák az aktuális telepítő futtatása
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=OpenDocument sablonok listája könyvtárak
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Azon könyvtárakban talált ODT / ODS sablonok száma
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Példák a szintaxis: <br> c: \\ mydir <br> / Home / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> Ha tudod, hogyan kell létrehozni a odt dokumentumsablonok, mielőtt tárolja őket azokra a könyvtárakra, olvasd el a wiki dokumentáció:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=A webes szolgáltatások kulcsa ("dolibarrkey" paraméte
     TestSubmitForm=Bemeneti teszt formájában
     ThisForceAlsoTheme=Ebben a menüben vezetője is használhatja a saját témája, amit a felhasználó választás. Szintén ebben a menüben menedzsere okostelefonokra szakosodott nem működik minden smartphone. Használjon egy másik menü vezető, ha problémákat tapasztal a tiéd.
     ThemeDir=Skins könyvtárba
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Teszt üzenet a __ __ PHONEFROM__ PHONETO__
     ModuleMustBeEnabledFirst=A funkció használatához a(z) <b>%s</b> modul bekapcsolása szükséges.
     SecurityToken=Kulcs a biztonságos URL-ek
    -NoSmsEngine=Nincs SMS küldő menedzser áll. SMS küldő menedzser nem telepített alapértelmezett elosztó (mert attól függ, hogy egy külső szolgáltató), de megtalálható néhány a http://www.dolistore.com
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Beállíthatjuk, hogy az egyes globális kapcsolódó beállítások a PDF generáció
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Szabályok kovácsolni címre dobozok
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Termékleírás elrejtése a generált PDF fájlban
     HideRefOnPDF=Termékreferencia elrejtése a generált PDF fájlban
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=URL paraméterek biztosítása
     SecurityTokenIsUnique=Használjunk olyan egyedi securekey paraméter az URL
     EnterRefToBuildUrl=Adja meg az objektum referencia %s
     GetSecuredUrl=Get URL számított
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Régi ÁFA-kulcs
     NewVATRates=Új ÁFA-kulcs
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Kiválasztó lista
     ExtrafieldSelectList = Válassz a táblából
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Jelszó
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Alapértelmezett hivatkozás
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Mutassa a menedzserek nevét
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Mező
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Felhasználók és csoportok
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Harmadik fél
    -Module1Desc=A vállalatok vezetése és a kapcsolattartó
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Kereskedelmi
     Module2Desc=Kereskedelmi irányítás
     Module10Name=Számvitel
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Javaslatok
     Module20Desc=Üzleti ajánlat vezetése
     Module22Name=Tömeges e-levelek
    @@ -495,7 +501,7 @@ Module23Desc=Ellenőrzése fogyasztása energiák
     Module25Name=Vevői megrendelések
     Module25Desc=Ügyfél érdekében vezetése
     Module30Name=Számlák
    -Module30Desc=Ügyfél számlák és jóváírás, beszállítói számlák kezelése
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Beszállítók
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Készlet kezelése (termékek)
     Module53Name=Szolgáltatások
     Module53Desc=Szolgáltatások kezelése
     Module54Name=Szerződések / Előfizetések
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Vonalkódok
     Module55Desc=Vonalkód kezelés
     Module56Name=Telefon
     Module56Desc=Telefon-integráció
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=Kattintson a híváshoz
     Module58Desc=Integrációja ClickToDial rendszer (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Költségek és kirándulások jegyzetek
     Module75Desc=Költségek és kirándulások vezetésének figyelmét
     Module80Name=Küldemények
     Module80Desc=Szállítása és szállítás érdekében vezetése
    -Module85Name=Bankok és készpénz
    +Module85Name=Banks and Cash
     Module85Desc=Házipénztár és bankszámlák kezelése
    -Module100Name=Külső helyszínen
    -Module100Desc=Tartalmazza a külső weboldal Dolibarr a menük és nézd meg egy Dolibarr keretben
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman és SIP
     Module105Desc=Mailman vagy SPIP interfész modul tagja
     Module200Name=LDAP
    -Module200Desc=LDAP címtár szinkronizálás
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integráció
     Module240Name=Adat export
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Adat import
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Tagok
     Module310Desc=Alapítvány tagjai menedzsment
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed belül Dolibarr képernyőre
    -Module330Name=Könyvjelzők
    -Module330Desc=Könyvjelző kezelés
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=WebCalendar
     Module410Desc=WebCalendar integráció
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Adományok
     Module700Desc=Adomány vezetése
     Module770Name=Költség kimutatások
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Címkék/kategóriák
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG szerkesztő
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dinamikus árak
     Module2200Desc=Matematikai kifejezések engedélyezése az árak meghatározásához
     Module2300Name=Időzített feladatok
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Események/Naptár
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web szolgáltatások (SOAP szerver)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=A Dolibarr REST API szerver engedélyezése
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Használja online szolgáltatást Gravatar (www.gravatar.com), hogy fotó a felhasználók / tagok (találtak a levelek). Szüksége van egy internet-hozzáférési
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP kliens
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP MaxMind konverziók képességek
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Több-cég
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Weboldalak
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Értékesítési
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Értékesítési pont
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margók
     Module59000Desc=Module to manage margins
     Module60000Name=Jutalékok
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Erőforrások
     Module63000Desc=Erőforrások kezelése (nyomtatók, autók, helyiségek ...) melyeket események kapcsán oszthat meg
     Permission11=Olvassa vevői számlák
    @@ -651,9 +661,9 @@ Permission32=Létrehozza / módosítja termékek
     Permission34=Törlés termékek
     Permission36=Lásd / kezelhetik rejtett termékek
     Permission38=Export termékek
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Törlés projektek (közös projekt és a projektek vagyok contact)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Olvassa beavatkozások
     Permission62=Létrehozza / módosítja beavatkozások
    @@ -686,7 +696,7 @@ Permission109=Törlés küldések
     Permission111=Olvassa el a pénzügyi számlák
     Permission112=Létrehozása / módosítása / törlése, és hasonlítsa össze tranzakciók
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export ügyletek és számlakivonatok
     Permission116=Számlák közötti átcsoportosítás
     Permission117=Kezelése ellenőrzések szállítási
    @@ -694,15 +704,15 @@ Permission121=Olvassa harmadik fél kapcsolódó felhasználói
     Permission122=Létrehozza / módosítja harmadik fél kapcsolódó felhasználói
     Permission125=Törlés harmadik fél kapcsolódó felhasználói
     Permission126=Export harmadik fél
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Olvassa szolgáltatók
     Permission147=Olvassa statisztika
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Bezár szállító megrendelések
     Permission188=Mégsem beszállítói megrendelések
     Permission192=Létrehozása vonalak
     Permission193=Mégsem vonalak
    -Permission194=Olvassa el a sávszélesség vonalak
    +Permission194=Read the bandwidth lines
     Permission202=ADSL csatlakozások létrehozása
     Permission203=Rendelés kapcsolatok megrendelések
     Permission204=Rendelés kapcsolatok
    @@ -750,12 +760,12 @@ Permission244=Lásd a rejtett partíció tartalmával kategóriák
     Permission251=Olvassa el más felhasználók és csoportok
     PermissionAdvanced251=Olvassa el a többi felhasználó
     Permission252=Olvassa el a többi felhasználó jogosultságait
    -Permission253=Létrehozza / módosítja más felhasználók, csoportok és permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Létrehozza / módosítja belső / külső felhasználók és jogosultságok
     Permission254=Létrehozása / módosítása csak a külső felhasználók számára
     Permission255=Módosíthat más felhasználó jelszavát
     Permission256=Törlése vagy tiltsa le más felhasználók
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Olvassa CA
     Permission272=Olvassa számlák
     Permission273=Számlák kibocsátása
    @@ -765,7 +775,7 @@ Permission283=Névjegyek törlése
     Permission286=Névjegyek exportálása
     Permission291=Olvassa tarifák
     Permission292=Engedélyek beállítása a tarifák
    -Permission293=Módosítása vevők tarifák
    +Permission293=Modify customers tariffs
     Permission300=Olvassa vonalkódok
     Permission301=Létrehozza / módosítja vonalkódok
     Permission302=Törlés vonalkódok
    @@ -787,11 +797,9 @@ Permission401=Olvassa kedvezmények
     Permission402=Létrehozza / módosítja kedvezmények
     Permission403=Kedvezmények érvényesítése
     Permission404=Törlés kedvezmények
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Fuss tömeges import a külső adatok adatbázisba (adatok terhel
     Permission1321=Export vevői számlák, attribútumok és kifizetések
     Permission1322=Reopen a paid bill
     Permission1421=Export vevői megrendelések és attribútumok
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potenciális szintjétől
     DictionaryCanton=Állam / Tartomány
     DictionaryRegion=Régiók
    @@ -894,7 +902,7 @@ DictionaryVAT=HÉA-kulcsok vagy Értékesítés adókulcsok
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Fizetési feltételek
     DictionaryPaymentModes=Fizetési módok
    -DictionaryTypeContact=Kapcsolat- és címtípusok
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ökoadó (WEEE)
     DictionaryPaperFormat=Papírméretek
    @@ -908,47 +916,47 @@ DictionarySource=Származási javaslatok / megrendelések
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=E-mail sablonok
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Egységek
     DictionaryProspectStatus=Ajánlat állapota
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Beállítás mentett
     SetupNotSaved=Setup not saved
     BackToModuleList=Visszalép a modulok listáját
    -BackToDictionaryList=Visszalép a szótárak listája
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=ÁFA kezelés
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=Alapértelmezésben a tervezett áfa 0, amelyet fel lehet használni olyan esetekre, mint az egyesületek, magánszemélyek ou kis cégek.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Arány
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE menedzsment
    -LocalTax1IsUsedDescES= A RE mértéke alapesetben létrehozásakor kilátások, számlák, megrendelések, stb kövesse a normál aktív szabályt: <br> Ha te vevőnek nincs kitéve a RE, RE alapértelmezésben = 0. Vége a szabály. <br> Ha a vevő van kitéve, akkor a RE RE alapértelmezés szerint. Vége a szabály. <br>
    -LocalTax1IsNotUsedDescES= Alapértelmezésben a javasolt RE 0.. Vége a szabály.
    -LocalTax1IsUsedExampleES= Spanyolországban vannak szakemberek figyelemmel néhány konkrét részeit spanyol IAE.
    -LocalTax1IsNotUsedExampleES= Spanyolországban ezt a szakmai és a társadalmak és bizonyos részei a spanyol IAE.
    -LocalTax2ManagementES= IRPF menedzsment
    -LocalTax2IsUsedDescES= A RE mértéke alapesetben létrehozásakor kilátások, számlák, megrendelések, stb kövesse a normál aktív szabályt: <br> Ha az eladó nem IRPF kitéve, akkor alapértelmezés szerint IRPF = 0. Vége a szabály. <br> Ha az eladó van kitéve, akkor a IRPF IRPF alapértelmezés szerint. Vége a szabály. <br>
    -LocalTax2IsNotUsedDescES= Alapértelmezésben a javasolt IRPF 0. Vége a szabály.
    -LocalTax2IsUsedExampleES= Spanyolországban, szabadúszók és független szakemberek, akik szolgáltatásokat nyújtanak és a vállalatok akik úgy döntöttek, az adórendszer a modulok.
    -LocalTax2IsNotUsedExampleES= Spanyolországban vannak bussines nem adóköteles rendszer modulok.
    +LocalTax1ManagementES=RE menedzsment
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Alapértelmezésben a javasolt RE 0.. Vége a szabály.
    +LocalTax1IsUsedExampleES=Spanyolországban vannak szakemberek figyelemmel néhány konkrét részeit spanyol IAE.
    +LocalTax1IsNotUsedExampleES=Spanyolországban ezt a szakmai és a társadalmak és bizonyos részei a spanyol IAE.
    +LocalTax2ManagementES=IRPF menedzsment
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Alapértelmezésben a javasolt IRPF 0. Vége a szabály.
    +LocalTax2IsUsedExampleES=Spanyolországban, szabadúszók és független szakemberek, akik szolgáltatásokat nyújtanak és a vállalatok akik úgy döntöttek, az adórendszer a modulok.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Eladások
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label az alap, ha nincs fordítás megtalálható a kód
     LabelOnDocuments=Címke dokumentumok
    -NbOfDays=Nb napok
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=A hónap végén
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Adatbázis felhasználói
     DatabasePassword=Adatbázis jelszó
     Tables=Táblázatok
     TableName=Táblanév
    -NbOfRecord=Nb rekordok
    +NbOfRecord=No. of records
     Host=Szerver
     DriverType=Vezető típus
     SummarySystem=Rendszer információk összefoglaló
    @@ -996,7 +1006,7 @@ Skin=Bőr téma
     DefaultSkin=Alapértelmezett skin téma
     MaxSizeList=Maximális hossza lista
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Alapértelmezett maximális karakter-hossz egy rövid listában (pl. vevő adatlapon)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=A nap üzenete
     MessageLogin=Belépés oldalra üzenet
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Állandó keresési űrlapot baloldali menüben
     DefaultLanguage=Alapértelmezett nyelv használatát (nyelv kód)
     EnableMultilangInterface=Engedélyezze a többnyelvű interfész
     EnableShowLogo=Mutasd logo a bal menüben
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Név
     CompanyAddress=Cím
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Tulajdonosa bankszámla %s
     BankModuleNotActive=Bankszámlák modul nincs engedélyezve
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Figyelmeztetések
    -DelaysOfToleranceBeforeWarning=Tolerancia késéssel figyelmeztetés
    -DelaysOfToleranceDesc=Ez a képernyő lehetővé teszi, hogy meghatározza a tolerálható késéssel riasztást jelentett a képernyőn Picto %s minden késedelmes elem.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Késleltetés tolerancia (napokban), mielőtt riasztást javaslatokat, hogy lezárja
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Késleltetés tolerancia (napokban), mielőtt riasztást javaslatok nem kell fizetnie
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerancia késleltetést (nap) előtt figyelmeztető szolgáltatások aktiválásához
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerancia késleltetést (nap) előtt figyelmeztető jelzés hatálya lejárt szolgáltatások
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerancia késleltetést (nap) előtt figyelmeztető jelzés nem fizetett szállító számlák
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence késleltetést (nap) előtt figyelmeztető fizetés nélküli ügyfél számlák
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerancia késleltetést (nap) előtt folyamatban lévő figyelmeztető banki megbékélés
    -Delays_MAIN_DELAY_MEMBERS=Tolerancia késleltetést (nap) előtt figyelmeztető jelzés késedelmes tagdíj
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancia késedelem (nap) előtt figyelmeztetést ellenőrzések betét csinálni
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tűréshatár értéke (napokban) mielőtt figyelmeztetést küld a kiadási összesítések elfogadtatására
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=További bejegyzések kezelése menüben választható paramétereket.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Biztonsági audit események
    -Audit=Könyvvizsgálat
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=Listája Dolibarr biztonsági események
     SecurityEventsPurged=Biztonsági események kitisztítják
    -LogEventDesc=Itt tud belépni a Dolibarr eseményeire biztonságosa. A rendszergazdák láthatják annak tartalmát menün keresztül <b>Rendszereszközök - Audit.</b> Figyelem, ez a funkció nagy mennyiségű adatot dolgozhat fel az adatbázisban!
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=Rendszer információk különféle műszaki információkat kapunk a csak olvasható módban, és csak rendszergazdák számára látható.
     SystemAreaForAdminOnly=Ez a terület áll rendelkezésre a felhasználók csak rendszergazda. Egyik Dolibarr engedélyek csökkentheti ezt a határt.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Választhat minden paramétert kapcsolatos Dolibarr kinézetét itt
     AvailableModules=Available app/modules
     ToActivateModule=Ha aktiválni modulok, menjen a Setup Terület (Home-> Beállítások-> Modulok).
     SessionTimeOut=A munkamenet lejárt
    -SessionExplanation=Ez a szám garancia arra, hogy session soha nem jár le, mielőtt ez a késlekedés. De a PHP session kezelése nem garantálja, hogy mindig session után lejár ez a késedelem: Ez akkor fordul elő, ha a rendszer tisztítása cache munkamenet fut. <br> Megjegyzés: nem adott rendszer belső folyamat PHP session tiszta minden a <b>%s / %s</b> hozzáférés, de csak a hozzáférést más kapcsolatok által.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Elérhető triggerek
    -TriggersDesc=A triggerek olyan fájlok, amely módosítja a viselkedését Dolibarr munkafolyamat után másolja abba a könyvtárba <b>htdocs / core / ravaszt.</b> Rájöttek, új akciókkal aktiválva Dolibarr események (új cég létrehozása, számla érvényesítését, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggerek ebben a fájlban vannak tiltva a <b>NORUN-utótag</b> a nevükben.
     TriggerDisabledAsModuleDisabled=Triggerek ebben a fájlban vannak tiltva, mint <b>%s</b> modul le van tiltva.
     TriggerAlwaysActive=Triggerek ebben a fájlban mindig aktív, függetlenül az aktivált Dolibarr modulokat.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Korlátok / Precision beállítás
    -LimitsDesc=Megadhatjuk, korlátok, pontosítást és optimalizálás által használt Dolibarr itt
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Az egységár tizedesjegyeinek száma
     MAIN_MAX_DECIMALS_TOT=A végösszeg tizedesjegyeinek száma
     MAIN_MAX_DECIMALS_SHOWN=Max tizedes az árak a képernyőn látható (Új <b>...</b> miután ezt a számot, ha meg akarja nézni <b>...</b> amikor számot csonkolni a képernyőn látható)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Nettó egységár egy termék
     TotalPriceAfterRounding=Teljes ár (nettó / ÁFA / incl adó) után a kerekítés
     ParameterActiveForNextInputOnly=Paraméter hatékony következő bemeneti csak
    -NoEventOrNoAuditSetup=Nincs biztonsági esemény lett felvéve még. Ez lehet normális, ha ellenőrzés nincs engedélyezve a &quot;setup - biztonság - audit&quot; oldalon.
    -NoEventFoundWithCriteria=Nincs biztonsági esemény találtak ilyen keresési kritériumot.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Nézze meg a helyi sendmail beállítása
     BackupDesc=Ahhoz, hogy egy teljes biztonsági mentést Dolibarr kell tennie:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archivált könyvtárban kell tárolni biztonságos helyen.
     BackupDescY=A generált dump fájlt kell tárolni biztonságos helyen.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Visszaállításához Dolibarr hát, ha kell:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= Ez a szabály arra kényszerül, hogy <b>%s</b> által aktivált modul
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Kell futtatni ezt a parancsot a
     YourPHPDoesNotHaveSSLSupport=SSL funkció nem áll rendelkezésre a PHP
     DownloadMoreSkins=További bőrök letöltése
     SimpleNumRefModelDesc=Vissza a hivatkozási számot formátumban %syymm-nnnn, ahol yy év, hónap és mm nnnn sorozata nélkül, lyuk, és újraindítás nélkül
    -ShowProfIdInAddress=Mutasd hivatásos id címekkel dokumentumok
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Részleges fordítás
    -MAIN_DISABLE_METEO=Meteo nézet letiltása
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Az API belépéshez teszt
    -ProxyDesc=A Dolibarr egyes funkcióinak működéséhez kell egy internetes kapcsolat. Határozza meg itt paramétereit. Ha a Dolibarr szerver egy proxy szerver mögött van, ezek a paraméterek Dolibarr elmondja, hogyan érhető el interneten keresztül is.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Külső hozzáférés
     MAIN_PROXY_USE=Használjon proxy szerver (egyébként közvetlen internet-hozzáféréssel)
     MAIN_PROXY_HOST=Proxy szerver neve / címe
     MAIN_PROXY_PORT=Proxy szerver port
     MAIN_PROXY_USER=Jelentkezz be, hogy használja a proxy szerver
     MAIN_PROXY_PASS=Jelszó a proxy szerver használata
    -DefineHereComplementaryAttributes=Adjuk meg itt minden atributes, még nem álltak rendelkezésre az alapból, hogy azt szeretné, hogy támogatja %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Kiegészítő tulajdonságok
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Figyelem, egyes Linux rendszereken, hogy küldjön e-mailt az e-mail, sendmail beállítás végrehajtása lehetőséget kell conatins-ba (paraméter mail.force_extra_parameters be a php.ini fájl). Ha néhány címzett nem fogadja az üzeneteket, próbáld meg szerkeszteni ezt a PHP paraméter = mail.force_extra_parameters-ba).
     PathToDocuments=A dokumentumok elérési útvonala
     PathDirectory=Könyvtár
    -SendmailOptionMayHurtBuggedMTA=A "PHP mail direct" metódus választása esetén olyan emailt küldhet a rendszer melyet nem minden levelező szerver tud megfelelően értelmezni. Ennek eredményeképpen néhány címzett nem fog tudni levelet kapni ezeken a levelező platformokon (pl. a francia Orange esetén) A probléma orvoslására a beállításoknál használhatja a MAIN_FIX_FOR_BUGGED_MTA opciót 1-re állítva. Ez azonban más szervereknél jelenthet gondot melyek szigorúan követik az SMTP szabványt. Egy másik ajánlott metódus az "SMTP socket library" kiválasztása, amelynek nincs hátránya.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Legalább egy modult engedélyezni kell
    -ClassNotFoundIntoPathWarning=A(z) %s osztály nem található a PHP útvonalon
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Nyáron
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=A %s meghajtóprogram van használatban, ez a jelenleg elérhető legjobb.
    -YouDoNotUseBestDriver=A %s meghajtóprogram van használatban, de a %s ajánlott.
    -NbOfProductIsLowerThanNoPb=Az adatbázis csak %s terméket / szolgáltatást tartalmaz. Különösebb optimalizálásra nincs szükség.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Keresés optimalizálása
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=A %s webböngészőt használja. Ez a böngésző a biztonság és a teljesítmény szempontjából is megfelel.
    -BrowserIsKO=A %s webböngészőt használja. Ez a böngésző közismerten rossz választás a biztonság, a teljesítmény és a megbízhatóság szempontjából. Javasoljuk, hogy használja a Firefox, Chrome, Opera vagy Safari böngészőket.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug betöltve.
     XCacheInstalled=XCache betöltve.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=%s mező szerkesztése
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Vissza a jelszót generált szerint Belső Dolibarr algoritmus: 8 karakter tartalmazó közös számokat és karaktereket kisbetűvel.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Egy jelszóval tér vissza a személyes beállításoknak megfelelően.
     SetupPerso=A beállításainak megfelelően
     PasswordPatternDesc=A jelszó minta leírása
    @@ -1195,23 +1206,23 @@ UserMailRequired=E-mail létrehozásához szükséges új felhasználó
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Cégek modul beállítása
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Dokumentumok sablonok
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Vízjel dokumentum tervezetét
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Professzionális egyedi azonosító
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Az export linket <b>%s</b> formátumban elérhető a következő linkre: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Az export linket <b>%s</b> formátumban elérhető a köv
     BillsSetup=Számlák modul beállítása
     BillsNumberingModule=Számlák és jóváírási számozási modul
     BillsPDFModules=Számla dokumentumok modellek
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Jóváírást
     CreditNotes=Jóváírási
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Készítsen egy Login minden tagja számára
     AdherentMailRequired=E-mail létrehozásához szükséges új tagot
     MemberSendInformationByMailByDefault=Checkbox levelet küldeni visszaigazolást a tagok (jóváhagyás vagy új előfizetés) alapértelmezés szerint be van
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP beállítása
     LDAPGlobalParameters=Globális paraméterek
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=A szinkronizálás sikeres teszt
     LDAPSynchroKO=Nem sikerült a szinkronizálás teszt
    -LDAPSynchroKOMayBePermissions=Sikertelen teszt szinkronizálás. Ellenőrizze, hogy a Connexion szerver helyesen van konfigurálva, és lehetővé teszi az LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP csatlakozni az LDAP szerver sikeres (= %s Server, Port = %s)
     LDAPTCPConnectKO=TCP csatlakozni az LDAP kiszolgáló nem (Server = %s, Port = %s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Csatlakozás / Authentificate az LDAP-kiszolgáló nem (Server = %s, Port = %s, Admin = %s, Password = %s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP-kiszolgáló konfigurálva a 3-as verzió
     LDAPSetupForVersion2=LDAP-kiszolgáló konfigurálva a 2-es verziója
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Bejelentkezés (samba, ActiveDirectoryba)
     LDAPFieldLoginSambaExample=Példa: sAMAccountName
     LDAPFieldFullname=Keresztnév
     LDAPFieldFullnameExample=Példa: cn
    -LDAPFieldPasswordNotCrypted=Jelszó nem kódolják
    -LDAPFieldPasswordCrypted=Jelszó kódolják
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Példa: userPassword
     LDAPFieldCommonNameExample=Példa: cn
     LDAPFieldName=Név
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Példaértékek tervezték <b>OpenLDAP</b> az alábbi betöltött sémák: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Ha a thoose értékek és az OpenLDAP, módosíthatja az LDAP konfigurációs file <b>slapd.conf</b> hogy minden thoose sémák betöltve.
     ForANonAnonymousAccess=A hitelesített hozzáférés (egy írási például)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=Ezen az oldalon a teljesítménnyel kapcsolatos tanácsok vagy ellenőrzések találhatók.
    -NotInstalled=Nincs telepítve, tehát nem lassítja le a szervert.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=Statikus erőforrások (css, img, javascript) HTTP gyorsítótára
     FilesOfTypeCached=A HTTP szerver a %s típusú fájlok esetében használja a gyorsítótárat.
     FilesOfTypeNotCached=A HTTP szerver a %s típusú fájlok esetében nem használja a gyorsítótárat.
     FilesOfTypeCompressed=A HTTP szerver a %s típusú fájlokat tömöríti.
     FilesOfTypeNotCompressed=A HTTP szerver a %s típusú fájlokat nem tömöríti.
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=HTTP válaszok tömörítése
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Termékek modul beállítása
     ServiceSetup=Szolgáltatások modul beállítása
     ProductServiceSetup=Termékek és szolgáltatások modulok beállítása
     NumberOfProductShowInSelect=Max. termékek száma a kombók válassza listák (0 = nincs korlát)
    -ViewProductDescInFormAbility=Visualization a termékleírásokat a formanyomtatványok (egyébként a felugró eszköztipp)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Alapértelmezett típusú vonalkód használatát termékek
     SetDefaultBarcodeTypeThirdParties=Alapértelmezett típusú vonalkód használatát harmadik felek számára
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Küldő modul beállítása
     SendingsReceiptModel=Küldése modell átvételét
     SendingsNumberingModules=Küldések számozási modulok
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Termékek szállítások kézhezvételét számozás modul
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Speciális szerkesztő
     ActivateFCKeditor=Aktiválja a fejlett szerkesztő:
     FCKeditorForCompany=WYSIWIG létrehozása / kiadás elem leírása és megjegyzés (kivéve a termékek / szolgáltatások)
     FCKeditorForProduct=WYSIWIG létrehozása / kiadásában termék / szolgáltatás 's leírása és megjegyzés
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG létrehozása / kiadás levelek
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection sikerült, de az adatbázisban nem néz ki, hogy egy OsCommerce adatbázis (Key %s nem található táblázatban %s).
    -OSCommerceTestOk=Csatlakozás a szerverhez &quot;%s&quot; az adatbázis &quot;%s&quot; felhasználói &quot;%s&quot; sikeres.
    -OSCommerceTestKo1=Csatlakozás a szerverhez &quot;%s&quot; sikerül, de adatbázis &quot;%s&quot; nem lehet elérni.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Csatlakozás a szerverhez &quot;%s&quot; felhasználói &quot;%s&quot; sikerült.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menü törölve
     Menus=Menük
    @@ -1548,7 +1562,7 @@ DetailRight=Feltétel megjeleníteni jogosulatlan szürke menük
     DetailLangs=Lang fájl nevét címke kód fordítást
     DetailUser=Intern / Extern / All
     Target=Cél
    -DetailTarget=Cél linkek (_blank tetején megnyílik egy új ablak)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Szint (-1: felső menüben, 0: fejléc menü&gt; 0 menü és almenü)
     ModifMenu=MENÜ
     DeleteMenu=Törlése menüpont
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=ÁFA oka: <br> - Utánvéttel áruk (az általunk használt
     OptionVatDebitOptionDesc=ÁFA oka: <br> - Utánvéttel áruk (az általunk használt számla dátum) <br> - A számla (debit) szolgáltatások
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=A szállítási
     OnPayment=A fizetési
     OnInvoice=A számlát
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Vétel számviteli kódja
     AgendaSetup=Rendezvények és napirend modul beállítási
     PasswordTogetVCalExport=Főbb kiviteli engedélyezésének linket
     PastDelayVCalExport=Ne export esetén, mint a régebbi
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Kattintson a Tárcsázás modul beállítása
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Értékesítési
     CashDeskSetup=Point of Sales Modul telepítés
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Alapértelmezett fiók kezelhető készpénz kifizetések
     CashDeskBankAccountForCheque= Alapértelmezett fiók használata fizetések fogadására csekkel
     CashDeskBankAccountForCB= Alapértelmezett fiók kezelhető készpénz kifizetések hitelkártyák
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Könyvjelző beállítása modul
    -BookmarkDesc=Ez a modul lehetővé teszi a könyvjelzők kezelése. Azt is hozzá parancsikonokat bármely Dolibarr oldalakra vagy externale webhelyeket a bal oldali menüben.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximális száma könyvjelzők mutatni a bal menüben
     ##### WebServices #####
     WebServicesSetup=Webservices modul beállítása
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Több cég setup modul
     ##### Suppliers #####
     SuppliersSetup=Szállító modul beállítása
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Projekt modul beállítása
     ProjectsModelModule=Projektjének dokumentum modellje
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/hu_HU/banks.lang b/htdocs/langs/hu_HU/banks.lang
    index e4eb34af3e8..814936a0b75 100644
    --- a/htdocs/langs/hu_HU/banks.lang
    +++ b/htdocs/langs/hu_HU/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank neve
     FinancialAccount=Fiók
     BankAccount=Bankszámla
     BankAccounts=Bankszámlák
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Számla fiók mutatása
     AccountRef=Pénzügyi mérleg ref
     AccountLabel=Pénzügyi mérleg címke
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Számla-cím
     BankAccountCountry=Számla országa
     BankAccountOwner=Számlatulajdonos neve
     BankAccountOwnerAddress=Számlatulajdonos címe
    -RIBControlError=Az adatok megfelelőségének ellenőrzése hibát jelzett. Ez azt jelenti, hogy a számlaszámhoz köthető információ hiányos vagy hibás (ellenőrizze az országot, számlaszámot és az IBAN számot).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Számla létrehozás
     NewBankAccount=Új számla fiók
     NewFinancialAccount=Új pénzügyi számla
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Lehet egyeztetni
     Conciliate=Összeegyeztetni
     Conciliation=Egyeztetés
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Közé zárt fiókok
     OnlyOpenedAccount=Csak nyitott számla egyenlegeket
    @@ -104,7 +105,7 @@ SocialContributionPayment=Szociális/költségvetési adó fizetés
     BankTransfer=Banki átutalás
     BankTransfers=Banki átutalások
     MenuBankInternalTransfer=Belső átutalás
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Feladó
     TransferTo=Címzett
     TransferFromToDone=A transzfer <b>%s</b> a <b>%s</b> a <b>%s</b> %s lett felvéve.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Banki csekkek
     BankChecksToReceipt=Letétre váró csekkek
     ShowCheckReceipt=Mutasd a letéti csekk bizonylatát
    -NumberOfCheques=Csekkek száma
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Visszalép a számlához
     ShowAllAccounts=Mutasd az összes fióknál
    -FutureTransaction=Jövőbeni tranzakció. Nincs lehetőség egyeztetésre.
    -SelectChequeTransactionAndGenerate=Válassza / filter ellenőrzéseket be kell vonni a csekket befizetés beérkezésének és kattintson a &quot;Create&quot;.
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Határozza meg az egyeztetéssel összefüggő bank kivonatot. Használjon egy rövidíthető szám értéket: ÉÉÉÉHH or ÉÉÉÉHHNN
     EventualyAddCategory=Végezetül, határozzon meg egy kategóriát, melybe beosztályozza a könyvelési belyegyzéseket
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Csekk visszatéréséenk dátuma
     CheckRejected=Csekk visszatért
     CheckRejectedAndInvoicesReopened=Csekk visszatért és a számla újranyitott
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/hu_HU/bills.lang b/htdocs/langs/hu_HU/bills.lang
    index c1b982899fc..26df565d103 100644
    --- a/htdocs/langs/hu_HU/bills.lang
    +++ b/htdocs/langs/hu_HU/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma számla
     InvoiceProFormaDesc=<b>Proforma számla</b> egy kép egy valódi számla, de nincs könyvelési értéke.
     InvoiceReplacement=Csere számla
     InvoiceReplacementAsk=A számla csere számlája
    -InvoiceReplacementDesc=<b>Csere számla</b>A kifizetetlen számlák visszavonására és kicserélésére használható.<br><br>Megjegyzés: Csak olyan számla cserélhető ki, amelyre fizetés nem érkezett. Amennyiben a cserélni kívánt számla nincs lezárva, automatikusan lezárásra kerül és "Elhagyott" státuszt kap.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Jóváírás
     InvoiceAvoirAsk=Számlát javtó jóváíró számla
    -InvoiceAvoirDesc=A <b>jóváírás</b> egy negatív számla, mellyel megoldják, ha egy számlán van egy összeget, ami különbözik a ténylegesen kifizetett összegtől (mert ügyfél túl sokat fizetett, vagy nem fizetett, például, mivel bizonyos termékeket visszaadott).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Visszafizetések
     DeletePayment=Fizetés törlése
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Beszállítók kifizetések
     ReceivedPayments=Fogadott befizetések
     ReceivedCustomersPayments=Vásárlóktól kapott befizetések
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Jóváhagyásra váró vásárlóktól fogadott befizetések
     PaymentsReportsForYear=Fizetések jelentései %s
     PaymentsReports=Fizetések jelentései
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Fizetési feltételek
     PaymentAmount=Fizetés összege
     ValidatePayment=Jóváhagyott fizetés
     PaymentHigherThanReminderToPay=Fizetés magasabb az emlékeztetőben leírtnál
    -HelpPaymentHigherThanReminderToPay=Figyelem, a fizetett összeg egy vagy több számla esetén magasabb, mint a még fizetendő. <br> Szerkessze a bejegyzését, különben hagyja jóvá és gondolja meg egy jóváírás létrehozását a feleslegesen kapott minden túlfizetett számlákra.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Osztályozva mint 'Fizetve'
     ClassifyPaidPartially=Osztályozva mint 'Részben fizetve'
     ClassifyCanceled=Osztályozva mint 'Elhagyott'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Zárt (nem fizetett)
     BillStatusClosedPaidPartially=Fizetett (részben)
     BillShortStatusDraft=Tervezet
     BillShortStatusPaid=Fizetett
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Fizetett
     BillShortStatusCanceled=Elveszett
     BillShortStatusValidated=Hitelesítve
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Lezárt
     BillShortStatusClosedPaidPartially=Fizetett (részben)
     PaymentStatusToValidShort=Hitelesítéshez
    -ErrorVATIntraNotConfigured=Közösségen belüli adó száma nincs meghatározva
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Nincs alapértelmezett fizetési módot definiálva. Ugrás a számla modul beállításra a kijavítához.
     ErrorCreateBankAccount=Hozzon létre egy bank számlát, és menjen a Beállítás panelen a Számla modulra a fizetési módok meghatározására 
     ErrorBillNotFound=Számla %s nem létezik
    -ErrorInvoiceAlreadyReplaced=Hiba, megpróbálja jóváhagyni a számla helyettesítő számlát %s. De ezt már felváltotta a %s számla.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Hiba, a kedvezmény már használt
     ErrorInvoiceAvoirMustBeNegative=Hiba, a helyetesítő számlátnak negatív összegűnek kell lennie
     ErrorInvoiceOfThisTypeMustBePositive=Hiba, az ilyen típusú számlán pozitív összegnek kell szerepelnie
     ErrorCantCancelIfReplacementInvoiceNotValidated=Hiba, nem lehet törölni egy számlát, a helyébe egy másik számlát, amelyet még mindig vázlat
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Feladó
     BillTo=Címzett
     ActionsOnBill=Műveletek a számlán
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Maradék egyenleg <b>(%s %s)</b> elengedésre kerül kedvezményként, mivel a kifizetés a határidő előtt történt. Az ÁFA-t korrigálom jóváírás készítésével.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Maradék egyenleg <b>(%s %s)</b> elengedésre kerül kedvezményként, mivel a kifizetés a hatridő elött történt. Az ÁFA-t nem korrigálm, a jóváírás áfája elvesztésre kerül.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Maradék egyenleg <b>(%s %s)</b> elengedésre kerül kedvezményként, mivel a kifizetés a határidő előtt történt. Az ÁFA-t visszaigénylem jóváírás készítése nélkül.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Rossz ügyfél
     ConfirmClassifyPaidPartiallyReasonProductReturned=Részben visszaszállított termékek
     ConfirmClassifyPaidPartiallyReasonOther=Összeg elhagyott más okból
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Ez a választás akkor lehetséges, ha a számlát megfelelő megjegyzéssel látták el. (Példa: "Csak a kifizetett összeg áfája vonható le")
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Egyes országokban ez a választás csak akkor lehetséges, ha a számla megfelelő megjegyzést tartalmaz.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Használja ezt minden más esetben.
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>rossz ügyfél</b> egy ügyfél, amely nem hajlandó fizetni a tartozását.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ez a választás akkor használatos, ha a fizetés nem teljes, mert egyes termékek kerültek vissza
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Használja ezt a választást, ha minden más, nem működik, például az alábbi esetekben: <br> - A fizetés nem teljesült, mert néhány terméket visszaszállítottak <br> - Az összegnél kifogás merült fel, mert a kedvezményt nem érvényesítették <br> Minden esetben a külömbséget javítani kell a könyvelési rendszerben jóváírás létrehozásával.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Más
     ConfirmClassifyAbandonReasonOtherDesc=Ez a választás fogja használni minden más esetben. Például azért, mert azt tervezi, hogy létrehoz egy számla helyett.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Számla jóváhagyása
     UnvalidateBill=Számla jóváhagyás törlése
    -NumberOfBills=Számlák száma
    -NumberOfBillsByMonth=Számlák száma havonta
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Számlák összege
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Összege a számlák havonta (adózott)
     ShowSocialContribution=Mutasd a szociális adót
     ShowBill=Számla megjelenítése
    @@ -260,9 +262,9 @@ Repeatables=Minták
     ChangeIntoRepeatableInvoice=Konvertálás számlamintává
     CreateRepeatableInvoice=Számlaminta készítése
     CreateFromRepeatableInvoice=Létrehozás számlamintából
    -CustomersInvoicesAndInvoiceLines=Vevői számlák és a számla sorai
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Vevői számlák és kifizetések
    -ExportDataset_invoice_1=Vevői számlák listája és számla tételsorok
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Vevői számlák és befizetések
     ProformaBill=Proforma számla:
     Reduction=Csökkentés
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Szánmlázási cím
    -HelpEscompte=Ez a kedvezmény egy engedmény a vevő részére, mert a befizetés már megtörtént előzőleg.
    -HelpAbandonBadCustomer=Ez az összeg már Elveszett (kétes vevő), rendkívüli veszteségként leírva.
    -HelpAbandonOther=Ez az összeg már elveszett, mivel valamilyen hiba történt (pl.: hibás vevő vagy a számla kicserélésre került)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Szociális/költségvetési adó fizetési azonosító
     PaymentId=Fizetés id
     PaymentRef=Fizetési hivatkozás
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Nincs számla kiválasztva
     CloneInvoice=Számla klónozása
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Akció tiltva, mert számlát kicserélte
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb kifizetések
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Kedvezmény kettéosztása
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Bemenet összege a két részre:
    -TotalOfTwoDiscountMustEqualsOriginal=Két új kedvezmény összegének meg kell egyeznie az eredeti kedvezmény összegével.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Kapcsolódó számla
     RelatedBills=Kapcsolódó számlák
     RelatedCustomerInvoices=Kapcsolódó ügyfélszámlák
     RelatedSupplierInvoices=Kapcsolódó beszállítói számlák
     LatestRelatedBill=Utolsó kapcsolódó számla
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Fizetési megjegyzés
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Csekk
     PaymentTypeShortCHQ=Csekk
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On-line fizetés
    -PaymentTypeShortVAD=On-line fizetés
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Piszkozat
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Banki adatok
     BankCode=Bank kódja
    -DeskCode=Íróasztal kód
    +DeskCode=Office code
     BankAccountNumber=Számlaszám
    -BankAccountNumberKey=Kulcs
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN szám
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=BIC / SWIFT szám
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Fizetés átutalással a következő bankszá
     VATIsNotUsedForInvoice=* Nem alkalmazható ÁFA art-293B a CGI
     LawApplicationPart1=A jog alkalmazása a 80,335 12/05/80
     LawApplicationPart2=az áru tulajdonában marad:
    -LawApplicationPart3=mint eladó, míg kiegyenlítik a teljes összeget 
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=azok árait.
     LimitedLiabilityCompanyCapital=SARL a főváros
     UseLine=Alkalmaz
    @@ -463,7 +465,7 @@ Cheques=Csekkek
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Használja a vevő számlázási címet a harmadik fél kapcsolati címe helyett, mint a fogadó címét a számlákon
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Összes ki nem fizetett számlák mutatása
     ShowUnpaidLateOnly=Csak a későn fizetett számlák mutatása
     PaymentInvoiceRef=Fizetési számla %s
    @@ -474,21 +476,22 @@ Reported=Késik
     DisabledBecausePayments=Nem lehetséges, mert van némi kifizetés
     CantRemovePaymentWithOneInvoicePaid=Nem lehet eltávolítani a fizetést, hiszen legalább egy számla kifizettetként osztályozott
     ExpectedToPay=Várható fizetés
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Ezzel a fizetéssel fizetve
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Beállítás "Fizetett"-ként. Az összes jóváírás teljes kifizetése megtörtén.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Minden számla nélkül is fizetni fogják automatikusan bezárja az állapota &quot;fizetni&quot;.
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Kifizetés
     ToMakePaymentBack=Visszafizetés
     ListOfYourUnpaidInvoices=Nyitott számlák listája
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Illetékbélyeg
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Számla PDF sablon Crabe. A teljes számla sablon (Sablon ajánlott)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Hiba történt az összeg módosításakor a(z) %s soron
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=A rendszeres jövőbeni számlák kézi készítéséhez válassza a <strong>%s - %s - %s</strong> menüpontot.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/hu_HU/cashdesk.lang b/htdocs/langs/hu_HU/cashdesk.lang
    index 1a3b46496fb..2f66b289cb9 100644
    --- a/htdocs/langs/hu_HU/cashdesk.lang
    +++ b/htdocs/langs/hu_HU/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Mutasd cég
     ShowStock=Mutasd raktár
     DeleteArticle=Kattintson, hogy távolítsa el ezt a cikket
     FilterRefOrLabelOrBC=Keresés (Ref/Cédula)
    -UserNeedPermissionToEditStockToUsePos=Számla létrehozásánál készlet csökkentést kér, tehát az értékesítési hely kasszánál a felhasználónak készlet módosítási engedéllyel kell rendelkeznie.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Nyugta Nyomtató
    +PointOfSale=Értékesítési pont
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/hu_HU/commercial.lang b/htdocs/langs/hu_HU/commercial.lang
    index e75c2cff966..5f147660a9e 100644
    --- a/htdocs/langs/hu_HU/commercial.lang
    +++ b/htdocs/langs/hu_HU/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefon hívás
     ActionAC_FAX=Fax küldés
     ActionAC_PROP=Ajánlat küldése emailben
     ActionAC_EMAIL=Email küldése
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Találkozók
     ActionAC_INT=Helyszíni beavatkozás
     ActionAC_FAC=Számla küldése vevők levélben
    @@ -72,8 +73,8 @@ StatusProsp=Prospect állapot
     DraftPropals=Készítsen üzleti ajánlatot
     NoLimit=Nincs határ
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/hu_HU/companies.lang b/htdocs/langs/hu_HU/companies.lang
    index e5b5246d0de..9eb0080e4b8 100644
    --- a/htdocs/langs/hu_HU/companies.lang
    +++ b/htdocs/langs/hu_HU/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Válasszon egy partnert
     ConfirmDeleteCompany=Biztos benne, hogy törli a vállalatot és az összes öröklött információt?
     DeleteContact=Kapcsolat/címek törlése
     ConfirmDeleteContact=Biztosan törölni akarja ezt a kapcsolatot és az összes örökölt információt?
    -MenuNewThirdParty=Új partner
    -MenuNewCustomer=Új vevő
    -MenuNewProspect=Új jelentkező
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Új magánszemély
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Parnter létrehozása (harmadik fél)
     CreateThirdPartyAndContact=Harmadik fél létrehozása + szülő kapcsolat
    @@ -25,22 +25,22 @@ ThirdPartyContact=Paertner Kapcsolat/Cím
     Company=Cég
     CompanyName=Cégnév
     AliasNames=Álnév megnevezése (kereskedelmi, jogvédett, ...)
    -AliasNameShort=Álnév
    +AliasNameShort=Alias Name
     Companies=Cégek
    -CountryIsInEEC=EU tagország
    -ThirdPartyName=Partner neve
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Partner
    -ThirdParties=Partner
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Jelentkezők
     ThirdPartyProspectsStats=Jelentkezők
     ThirdPartyCustomers=Vevők
     ThirdPartyCustomersStats=Vevők
     ThirdPartyCustomersWithIdProf12=Vevők %s vagy %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Partner típusa
    +ThirdPartyType=Type of company
     Individual=Magánszemély
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Anyavállalat
     Subsidiaries=Leányvállalatok
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Irányítószám
     Town=Város
     Web=Web
     Poste= Pozíció
    -DefaultLang=Nyelv alapértelmezés szerint
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Cím kitöltése a harmadik férl címével
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Fizetési bank számla
     OverAllProposals=Javaslatok
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Szintaxis érvényes
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=A vevő alapértelmezett kedvezménye <b>%s%%</b>
     CompanyHasNoRelativeDiscount=A vevő nem rendelkezik relatív kedvezménnyel alapértelmezésben
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Ez a vevő még hitellel rendelkezik <b>%s %s</b>-ig
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Nincs
    -Supplier=Szállító
    +Supplier=Vendor
     AddContact=Kapcsolat létrehozása
     AddContactAddress=Kapcsolat/cím létrehozása
     EditContact=Kapcsoalt szerkesztése
    @@ -303,22 +303,22 @@ AddThirdParty=Parnter létrehozása (harmadik fél)
     DeleteACompany=Cég törlése
     PersonalInformations=Személyes adatok
     AccountancyCode=Accounting account
    -CustomerCode=Vevőkód
    -SupplierCode=Vendor code
    -CustomerCodeShort=Vevőkód
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Vevőkód, egyedi minden vevő számára
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Kötelező, ha a partner vevő vagy jelentkező
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Érvényességi a modulban beállítva
    -ThisIsModuleRules=A modul szabályai
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Jelentkező a kapcsolat felvételre
     CompanyDeleted="%s" cég törölve az adatbázisból.
     ListOfContacts=Névjegyek / címek
    -ListOfContactsAddresses=Kapcsolatok listája
    -ListOfThirdParties=Partnerek listája
    -ShowCompany=Harmadik fél mutatása
    +ListOfContactsAddresses=Névjegyek / címek
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Kapcsolat mutatása
     ContactsAllShort=Minden (nincs szűrő)
     ContactType=Kapcsolat típusa
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Nem kapcsolattartó egyik kereskedelmi javaslatnál sem
     NoContactForAnyContract=Nem kapcsolattartó egyetlen szerződésnél sem
     NoContactForAnyInvoice=Nem kapcsolattartó egyik számlánál sem
     NewContact=Új kapcsolat
    -NewContactAddress=Új kapcsolat/cím
    +NewContactAddress=New Contact/Address
     MyContacts=Kapcsolataim
     Capital=Tőke
     CapitalOf=%s tőkéje
     EditCompany=Cég szerkesztése
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Csekk
    -VATIntraCheckDesc=A link <b>%s</b> lehetővé teszi, hogy kérje az európai adószám ellenőrzését. Internet kapcsolat szükséges.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Ellenőrizze a közösségen belüli ÁFA-t az európai bizottság oldalán.
    -VATIntraManualCheck=Ön is ellenőrizheti manuálisan az EU honlapján <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Ellenőrzés nem lehetséges. A szolgáltatást a tagállam nem teszi lehetővé (%s).
    -NorProspectNorCustomer=Nem jelentkező vagy vevő
    -JuridicalStatus=Legális formátum
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Személyzet
     ProspectLevelShort=Potenciális
     ProspectLevel=Jelentkezői potenciál
    @@ -387,12 +387,12 @@ ExportCardToFormat=Kártya exportálása formázással
     ContactNotLinkedToCompany=Kapcsolat nincs partnerhez csatolva
     DolibarrLogin=Dolibarr bejelentkezés
     NoDolibarrAccess=Nem Dolibarr hozzáférés
    -ExportDataset_company_1=Harmadik fél (cégek / alapítványok / személyek) és tulajdonságai
    -ExportDataset_company_2=Kapcsolatok és tulajdonságai
    -ImportDataset_company_1=Harmadik fél (cégek / alapítványok / személyek) és tulajdonságai
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Árszint
     DeliveryAddress=Szállítási cím
     AddAddress=Cím hozzáadása
    @@ -402,16 +402,16 @@ DeleteFile=Fájl törlése
     ConfirmDeleteFile=Biztosan törölni akarja ezt a fájlt?
     AllocateCommercial=Értékesítési képviselőhöz hozzárendelve
     Organization=Szervezet
    -FiscalYearInformation=Információ a pénzügyi évről
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Pénzügyi év kezdő hónapja
    -YouMustAssignUserMailFirst=E-mail értesítő hozzáadásához először létre kell hozni egy e-mail-t ehhez a felhasználóhoz.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=E-mail értesítő hozzáadásához létre kell hozni egy e-mail kapcsolatot a harmadik félhez.
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Jelenkezők listája
    -ListCustomersShort=Vevők listája
    -ThirdPartiesArea=Partner és a szerződés helye
    -LastModifiedThirdParties=Legutóbb %s változtatott harmadik felet
    -UniqueThirdParties=Összes egyedi parnter
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Nyitott
     ActivityCeased=Lezárt
     ThirdPartyIsClosed=Harmadik fél lezárva
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Jelenlegi kintlévőség
     OutstandingBill=Maximális kintlévőség
     OutstandingBillReached=Max. a kintlévőség elért
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=A kód szabad. Ez a kód bármikor módosítható.
     ManagingDirectors=Vezető(k) neve (ügyvezető, elnök, igazgató)
     MergeOriginThirdparty=Duplikált partner (a partnert törlésre kerül)
     MergeThirdparties=Partnerek egyesítése
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Kereskedelmi képviselő bejelentkezés
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/hu_HU/dict.lang b/htdocs/langs/hu_HU/dict.lang
    index 5ebdcb117fa..ad83089f799 100644
    --- a/htdocs/langs/hu_HU/dict.lang
    +++ b/htdocs/langs/hu_HU/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard-sziget és McDonald
     CountryVA=Apostoli Szentszék (Vatikáni Városállam)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonézia
     CountryIR=Irán
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Észak-Korea
     CountryKR=Dél-Korea
     CountryKW=Kuvait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Lettország
     CountryLB=Libanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongólia
     CountryMS=Montserrat
     CountryMZ=Mozambik
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namíbia
     CountryNR=Nauru
     CountryNP=Nepál
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad és Tobago
     CountryTR=Törökország
     CountryTM=Türkmenisztán
    -CountryTC=Turks-és Cailos-szigetek
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukrajna
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rúpiát
     CurrencySingMUR=Mauritius rúpia
     CurrencyNOK=Norvég Krones
    -CurrencySingNOK=Norvég korona
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunéziai dinár
     CurrencySingTND=Tunéziai dinár
     CurrencyUSD=USA dollár
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Szájról--szájra terjed
     DemandReasonTypeSRC_PARTNER=Parner
     DemandReasonTypeSRC_EMPLOYEE=Foglalkoztató
     DemandReasonTypeSRC_SPONSORING=Szponoráció
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Formátum 4A0
     PaperFormatEU2A0=Formátum 2A0
    diff --git a/htdocs/langs/hu_HU/ecm.lang b/htdocs/langs/hu_HU/ecm.lang
    index cb69e810476..6dc5fa0dbe9 100644
    --- a/htdocs/langs/hu_HU/ecm.lang
    +++ b/htdocs/langs/hu_HU/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Dokumentumok száma a könyvtárban
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Könyvtár
     ECMSectionManual=Kézi könyvtár
     ECMSectionAuto=Automatikus könyvtár
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Projektekkel kapcsolatos dokumentumok
     ECMDocsByUsers=Felhasználókkal kapcsolatos dokumentumok
     ECMDocsByInterventions=Beavatkozásokkal kapcsolatos dokumentumok
     ECMDocsByExpenseReports=Költség-kimutatásokhoz kapcsolódó dokumentumok
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Nem lett könyvtár létrehozva
     ShowECMSection=Könyvtár mutatása
     DeleteSection=Könyvtár eltávolítása
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/hu_HU/errors.lang b/htdocs/langs/hu_HU/errors.lang
    index ba547724e50..5ad9f0a5961 100644
    --- a/htdocs/langs/hu_HU/errors.lang
    +++ b/htdocs/langs/hu_HU/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=A '%s' értéke nem megfelelő dátum formátum
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Nem sikerült írni a %s könyvtárba
     ErrorFoundBadEmailInFile=Talált rossz e-mail szintaxisa %s sorok fájlt (például az e-mail vonal %s %s =)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Néhány kötelezően kitöltendő mező még üres.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Nem sikerült létrehozni egy könyvtárat. Ellenőrizze, hogy a Web szerver felhasználó engedélyekkel rendelkezik, hogy ültesse át Dolibarr dokumentumok könyvtárba. Ha a paraméter <b>safe_mode</b> engedélyezve van ez a PHP-t, ellenőrizze, hogy Dolibarr PHP fájlok tulajdonosa a webszerver felhasználó (vagy csoport).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=<b>%s</b> mező nem tartalmaz speciális karaktereket.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Nem számviteli modul aktiválódik
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr LDAP-egyezés nem teljes.
     ErrorLDAPMakeManualTest=Egy. LDIF fájlt keletkezett %s könyvtárban. Próbálja meg kézzel betölteni a parancssorból, hogy több információt hibákat.
    -ErrorCantSaveADoneUserWithZeroPercentage=Nem lehet menteni akciót &quot;az alapszabály nem kezdődött el&quot;, ha a területen &quot;történik&quot; is ki van töltve.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref használt létrehozására már létezik.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript nem szabad tiltani, hogy ez a funkció működik. Annak engedélyezése / tiltása Javascript, menj a menü Home-> Beállítások-> Kijelző.
     ErrorPasswordsMustMatch=Mindkét típusú jelszavakat kell egyeznie egymással
    -ErrorContactEMail=Egy technikai hiba történt. Kérjük, lépjen kapcsolatba a következő e-mail rendszergazda <b>%s</b> en biztosítja a hibakódot <b>%s</b> be az üzenetet, vagy még jobb hozzáadásával képernyő ezen oldal másolatát.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Rossz érték mezőszám <b>%s</b> (érték <b>&quot;%s&quot;</b> nem egyezik regex szabály <b>%s)</b>
     ErrorFieldValueNotIn=Rossz érték mezőszám <b>%s</b> (érték <b>&quot;%s&quot;</b> nem érték áll rendelkezésre a területen <b>%s %s</b> táblázat)
     ErrorFieldRefNotIn=Rossz érték mezőszám <b>%s</b> (érték <b>&quot;%s&quot;</b> nem létező <b>%s</b> ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=A víruskereső program nem tudta érvényesíteni
     ErrorSpecialCharNotAllowedForField=Speciális karakterek használata nem engedélyezett területen &quot;%s&quot;
     ErrorNumRefModel=A referencia létezik az adatbázis (%s), és nem kompatibilis ezzel a számozással a szabály. Vegye rekord vagy átnevezték hivatkozással, hogy aktiválja ezt a modult.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Hiba a maszk
     ErrorBadMaskFailedToLocatePosOfSequence=Hiba, maszk sorozatszám nélkül
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Hiba, rossz érték visszaállítása
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Hiba. Válasszon legalább egy bejegyzést.
    -ErrorDeleteNotPossibleLineIsConsolidated=Törlése nem lehetséges, mert rekord kapcsolódik egy bank, amely egyeztetett transation
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s van rendelve egy másik harmadik
     ErrorFailedToSendPassword=Nem sikerült elküldeni a jelszót
     ErrorFailedToLoadRSSFile=Nem kap RSS feed. Próbálja felvenni, ha állandó MAIN_SIMPLEXMLLOAD_DEBUG hibaüzenetek nem nyújt elegendő információt.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Felhasználó bejelentkezési <b>%s</b> nem található.
     ErrorLoginHasNoEmail=Ennek a felhasználónak nincs e-mail címre. Folyamat megszakítva.
     ErrorBadValueForCode=Rossz érték a biztonsági kódot. Próbálja újra, az új érték ...
     ErrorBothFieldCantBeNegative=Fields %s %s és nem lehet egyszerre negatív
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Felhasználói fiók <b>%s</b> végrehajtására használnak web szerver nincs engedélye az adott
     ErrorNoActivatedBarcode=Nem vonalkód típus aktivált
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A könyvjelző ezzel a címmel, vagy ez a cél (URL
     WarningPassIsEmpty=Figyelem, az adatbázis jelszó üres. Ez egy biztonsági lyuk. Meg kell hozzá egy jelszót, hogy az adatbázis és változtassa meg a fájl conf.php ezt tükröznie kell.
     WarningConfFileMustBeReadOnly=Figyelem, a config file <b>(htdocs / conf / conf.php)</b> át lehet írni a webszerver. Ez egy komoly biztonsági rést. Jogosultságát módosítani a fájlt, hogy a csak olvasható módban az operációs rendszer felhasználói által használt webszerver. Ha Windows FAT és az a lemez, akkor tudnia kell, hogy ez a fájl rendszer nem engedi hozzáadni file jogosultságokat, így nem lehet teljesen biztonságos.
     WarningsOnXLines=Figyelmeztetések <b>%s</b> forrás vonalak
    -WarningNoDocumentModelActivated=Nem modell, a dokumentum generáció, be van kapcsolva. A modell kerül választottunk alapértelmezés szerint amíg ellenőrizze a modul beállításait.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=Minden biztonsági figyelmeztetések (látható: admin felhasználó esetén) továbbra is aktív marad, amíg a biztonsági rés van jelen (vagy állandó MAIN_REMOVE_INSTALL_WARNING egészül ki a Setup-> Egyéb beállítás).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/hu_HU/help.lang b/htdocs/langs/hu_HU/help.lang
    index d39238398c3..3c0cef91b08 100644
    --- a/htdocs/langs/hu_HU/help.lang
    +++ b/htdocs/langs/hu_HU/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online Valós idejü / távoli támogatás
     OtherSupport=Más jellegü támogatás
     ToSeeListOfAvailableRessources=Kapcsolatba lépni / látni az elérhető erőforrásokat:
     HelpCenter=Segítség központ
    -DolibarrHelpCenter=Dolibarr Segítség és Támogatási központ
    -ToGoBackToDolibarr=Különben, kattintson <a href="%s">ide</a> a Dolibarr használatához
    -TypeOfSupport=Támogatás forrása
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Közösség (ingyenes)
     TypeSupportCommercial=Üzleti
     TypeOfHelp=Típus
    @@ -15,12 +15,9 @@ NeedHelpCenter=Segítségre vagy támogatásra van szüksége?
     Efficiency=Hatékonyság
     TypeHelpOnly=Csak segítség
     TypeHelpDev=Segítség és fejlesztés
    -TypeHelpDevForm=Segítség, fejlesztés és formálás
    -ToGetHelpGoOnSparkAngels1=Egyes cégek gyors (időnként azonnali) segítséget tudnak nyújtani, azzal, hogy a gépe fölött átveszik az irányítást. Ilyen cégek listája a <b>%s</b> weboldalon található:
    -ToGetHelpGoOnSparkAngels3=Ugyanakkor megtekintheti a Dolibarr oktatók listáját erre a gomra kattintva
    -ToGetHelpGoOnSparkAngels2=Bizonyos esetekben nincs elérhető cég, változtassa meg a keresését "minden elérhető"-re. Több kérést tud így elküldeni.
    -BackToHelpCenter=Más esetben, kattintson ide, hogy visszatérjen a <a href="%s">Segítség központ nyitólap</a>jára.
    -LinkToGoldMember=Hívhatja az egyik előre kiválasztott az ön nyelvén (%s) tudó Dolibarr oktatót ha erre a Widget-re kattint (álltapot és maximális ár autómatikusan frissül):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Támogatott nyelvek
    -SubscribeToFoundation=Segítse a Dolibarr projektet, iratkozzon fel az alapítványhoz
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Hivatalos Dolibarr támogatás a saját nyelvén: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/hu_HU/holiday.lang b/htdocs/langs/hu_HU/holiday.lang
    index 8f0ca2eebb6..912b5fff747 100644
    --- a/htdocs/langs/hu_HU/holiday.lang
    +++ b/htdocs/langs/hu_HU/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Kezdési dátum
     DateFinCP=Befejezési dátum
    @@ -15,13 +15,18 @@ ApprovedCP=Jóváhagyott
     CancelCP=Megszakítva
     RefuseCP=Megtagadta
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Leírás
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Szerkesztés
     DeleteCP=Törlés
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Ok
     UserCP=Felhasználó
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/hu_HU/install.lang b/htdocs/langs/hu_HU/install.lang
    index 440de0628b4..81d831d1d05 100644
    --- a/htdocs/langs/hu_HU/install.lang
    +++ b/htdocs/langs/hu_HU/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Csak kövesse az utasitásokat lépésrõl lépésre.
     MiscellaneousChecks=Előeltételek ellenörézse
     ConfFileExists=<b>%s</b> konfigurációs fájl már létezik.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=<b>%s</b> konfigurációs fájl NEM létezik és NEM lehet létrehozni!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=<b>%s</b> konfigurációs fájl létrehozható.
    -ConfFileIsNotWritable=<b>%s</b> konfigurációs fájl NEM írható. Ellenõrizze a jogosúltságokat. Elsõ telepítés esetén, a web szervernek tudnia kell írni ebbe a fájlba a konfigurációs folyamat során (Unix alapu rendszer esetén "chmod 666").
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=<b>%s</b> konfigurációs fájl írható.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Minden újratöltése információt konfigurációs fájlban.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Ez a PHP verzió támogatja a munkameneteket.
     PHPSupportPOSTGETOk=Ez a PHP verzió támogatja POST és GET változókat.
    -PHPSupportPOSTGETKo=Lehetséges, hogy az alkalmazott PHP verzió NEM támogatja a POST és/vagy GET változókat. Ellenõrizze a  <b>variables_order</b> paramétert a php.ini fájlban.
    -PHPSupportGD=Ez a PHP verzió támogatja a GD grafikai funkciókat.
    -PHPSupportCurl=Ennek a PHP-nak a támogató Curl-ja.
    -PHPSupportUTF8=Ez a PHP verzió támogatja az UTF8 funkciókat.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=A munkamenetek maximális memóriája <b>%s</b>. Ennek elégnek kéne lennie.
    -PHPMemoryTooLow=A munkamenetek maximális beállított memóriája <b>%s</b> byte. Ez kevés lesz. Állítsa át a <b>php.ini</b>-ben a <b>memory_limit</b> paramétert legalább <b>%s</b> byte-ra.
    -Recheck=Kattintson ide egy részletesebb tesztért
    -ErrorPHPDoesNotSupportSessions=Ez a PHP verzió NEM támogatja a munkameneteket. Erre szükség van a Dolibarr futtatásához. Kérjük ellenõrizze a PHP beállításait.
    -ErrorPHPDoesNotSupportGD=Ez a PHP verzió NEM támogatja a GD grafikai funkciókat. A grafikonok nem lesznek elérhetõek.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=A PHP telepítése nem támogatja a Curl-t.
    -ErrorPHPDoesNotSupportUTF8=Ez a PHP verzió NEM támogatja az UTF8 funkciókat. A Dolibarr így nem tud rendesen mûködni. Kérjük oldaj meg mielött végrehajtaná a telepítést.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=%s könyvtár nem létezik.
    -ErrorGoBackAndCorrectParameters=Menjen vissza és javítsa ki a rossz paramétereket.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Lehet, hogy rossz értéket adott meg a(z) '%s' paraméter számára.
     ErrorFailedToCreateDatabase=Nem sikerült létrehozni a(z) '%s' adatbázist.
     ErrorFailedToConnectToDatabase=Nem sikerült csatlakozni a(z) '%s' adatbázishoz.
     ErrorDatabaseVersionTooLow=Az adatbázis (%s) verziója túl alacsony. %s verzió vagy magasabb szükséges
     ErrorPHPVersionTooLow=Túl régi a PHP verzió. Legalább %s kell.
    -ErrorConnectedButDatabaseNotFound=Sikeres kapcsolódás az adatbázis szerverhez, de a(z) '%s' adatbázis nincs meg.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists='%s' adatbázis már létezik.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Ha az adatbázis nem létezik akkor menjen vissza és jelölje ki az "Adatbázis létrehozása" opciót.
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Ha az adatbázis már létezik, menjen vissza és ne válassza az "Adatbázis létrehozása" opciót.
    -WarningBrowserTooOld=A böngésző verziója túl alacsony. A legfrissebb verziójú Firefox, Chrome vagy Opera használata erősen ajánlott. 
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Verzió
     License=Használatban lévõ licensz
     ConfigurationFile=Konfigurációs fájl
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Adatbázis
     DatabaseType=Adatbázis típus
     DriverType=Meghajtó típus
     Server=Szerver
    -ServerAddressDescription=Adatbûzis szerver neve vagy IP címe, általában 'localhost' vagy '127.0.0.1' ha ugyan az a webszerver és az adatbázis szerver
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Adatbázis szerver port. Hagyja üresen ha nem tudja.
     DatabaseServer=Adatbázis szerver
     DatabaseName=Adatbázis név
    -DatabasePrefix=Adatbázis tábla előtag
    -AdminLogin=Adatbázis tulajdonos bejelentkezési neve.
    -PasswordAgain=Jelszó mégegyszer
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Adatbázis tulajdonos jelszava.
     CreateDatabase=Adatbázis lérehozása
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Adatbázis szerver - Superuser hozzáférés
    -CheckToCreateDatabase=Pipálja ki a dobozt ha szeretné, hogy a rendszer létrehozza az adatbázist.<br>Ebbben az esetben a SuperUser bejelentkezési adatait ki kell tölteni az oldal alján.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=A felhasználó jogosúlt új adatbázisok vagy új felhasználók létrehozására, felesleges ha a szolgáltatás hostolt formában veszik igénybe.
    -KeepEmptyIfNoPassword=Hagyja üresen ha a felhasználónak nincs jelszava (az ilyet jobb elkerülni)
    -SaveConfigurationFile=Értékek mentése
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Szerver kapcsolat
     DatabaseCreation=Adatbázis létrehozása
     CreateDatabaseObjects=Adatbázis objektumok létrehozása
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Külsõ kulcsok és indexek létrehozása a(z) %s tábla
     OtherKeysCreation=Idegen Külsõ kulcsok és indexek létrehozása
     FunctionsCreation=Funkciók létrehozása
     AdminAccountCreation=Adminisztrátor bejelntkezés létrehozása
    -PleaseTypePassword=Kérjük adjon meg egy jelszót, üres jelszavak használata nem megenegedett!
    -PleaseTypeALogin=Kérjük adjon meg egy bejelentkezési nevet!
    -PasswordsMismatch=A két jelszó eltér, próbálja újra!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Telepítés vége
     SystemIsInstalled=A telepítés készen van.
     SystemIsUpgraded=Dolibarr frissítése sikeres.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Most már konfiguálhatja a Dolibarr-t az igényei sze
     AdminLoginCreatedSuccessfuly=Dolibarr adminisztrátor bejelentkezés '<b>%s</b>' sikeresen létrehozva.
     GoToDolibarr=Ugrás a Dolibarr-ba
     GoToSetupArea=Ugrás a Dolibarr-ba (beállítási terültre)
    -MigrationNotFinished=Az adatbázis verziója nem teljesen, kérjük futassa újra a frissítést.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Ugrás a frissítési oldalra
     WithNoSlashAtTheEnd="/" nélkül a végén
    -DirectoryRecommendation=Ajánlatos a weblap könyvtárán kívüli könyvtárat megadni.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Már létezik
     DolibarrAdminLogin=Dolibarr admin bejelentkezés
    -AdminLoginAlreadyExists='<b>%s</b>' Dolibarr adminisztrátor fiók már létezik. Lépjen vissza, ha másikat szeretne létrehozni.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Nem tudta létrehozni a Dolibarr rendszergazda fiókot.
    -WarningRemoveInstallDir=Figyelem, biztonsági okok miatt, amint végez a telepítés/frissítés folyamattal, annak véletlenszerű indításának elkerülésére adja hozzá az <b>install.lock<b> filet a Dollibar dokumentum könyvtárba, hogy elkerülje annak indítását.
    -FunctionNotAvailableInThisPHP=Nem elérhetõ ezen a PHP verzión
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Migrációs szkript választása
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Szkript feldolhozása
     ChooseYourSetupMode=Válassta ki a telepítési módot és kattintson a "START"-ra...
     FreshInstall=Friss telepítés
    -FreshInstallDesc=Használja ezt a módot ha még nem telepítette soha a rendszert. Ez a mód ki tudja javítani egy korább sikertelen telepítést, de ha frissíteni akar használja a "Frissítés" lehetõséget.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Frissítés
     UpgradeDesc=Használja ezt a módot, ha már helyettesítette a régi fájlokat az újabb verzió fájlaival. Frissíti az adatbázist és az adatokat.
     Start=START
     InstallNotAllowed=Telepítés nincs engedélyezve a <b>conf.php</b> fájlban
     YouMustCreateWithPermission=Létre kell hoznia %s fájlt és írásai jogokat adnia a webszerveren a telepítés idejére.
    -CorrectProblemAndReloadPage=Kérjük javítsa ki a problémát és F5-el frissítsen.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Már migárlva
     DatabaseVersion=Adatbázis verzió
     ServerVersion=Adatbázis szerver verzió
     YouMustCreateItAndAllowServerToWrite=Létre kell hoznia ezt a könyvtárat és engedélyeznie a szervenek, hogy írhasson bele.
     DBSortingCollation=Karakter rendezés
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=A(z) <b>%s</b> adatbázis létrehozásához az  <b>%s</b> adatbázis szerverhez SuperUser <b>%s</b> jogosultságokkal kell csatlakozni.
    -YouAskLoginCreationSoDolibarrNeedToConnect=A(z) <b>%s</b> adatbázis létrehozásához az  <b>%s</b> adatbázis szerverhez SuperUser <b>%s</b> jogosultságokkal kell csatlakozni.
    -BecauseConnectionFailedParametersMayBeWrong=A kapcslódás sikertelen, a hosz és/vagy a SuperUser bejelentkezési adatok hibásan lettek megadva.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=%s metódus által felfedezett árva fizetések vannak a rendszerben
     RemoveItManuallyAndPressF5ToContinue=Távolítsa el manuálisan, majd F5-el frissítsen.
     FieldRenamed=Mezõ átnevezve
    -IfLoginDoesNotExistsCheckCreateUser=Ha bejelentkezési adat nem létezik használja a "Felhasználó létrehozása" lehetõséget
    -ErrorConnection=Server "<b>%s</b>", adatbázis név "<b>%s</b>", login "<b>%s</b>", vagy adatbázis jelszó rosszúl lett megadva vagy a PHP kliens verzió túl régi az adatbázis verzióhoz képest.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=A javasolt választás <b>%s</b> verzióra frissítés a <b>%s</b> jelenlegi verzióról
     InstallChoiceSuggested=<b>A telepítõ által javasolt választás</b>.
    -MigrateIsDoneStepByStep=A megcélzott változat (%s) van egy rés a több változata, így telepítése varázsló vissza fog térni arra utalnak következő migráció egyszer ez is elkészül.
    -CheckThatDatabasenameIsCorrect=Ellenõrizze hogy a(z) "<b>%s</b>" adatbázis név helyes.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Ha a név jó és a megadott adatbázis nem létezik, használja az "Adatbázis létrehozása" opciót.
     OpenBaseDir=PHP openbasedir paraméter
    -YouAskToCreateDatabaseSoRootRequired=Használja a "Adatbázis létrehozása" opciót. Ehhez meg kell adnia a SuperUser fiók adatait az oldal alján.
    -YouAskToCreateDatabaseUserSoRootRequired=Használja a "Adatbázis tulajdonos létrehozása" opciót. Ehhez meg kell adnia a SuperUser fiók adatait az oldal alján.
    -NextStepMightLastALongTime=A jelenlegi lépés akár több percig is eltarthat. Kérjük várjon amig a következõ oldal teljesen be nem töltõdik mielött folytatná.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Szállítási rendelések migrálása
     MigrationShippingDelivery=Szállítási tárló frissítése
     MigrationShippingDelivery2=Szállítási tárló frissítése 2
     MigrationFinished=Migráció befejezte
    -LastStepDesc=<strong>Utolsó lépés:</strong> Adjuk meg itt bejelentkezési név és jelszó használatát tervezi, hogy csatlakozik a szoftver. Ne veszítse/felejtse el ezt, mivel ez a fiók felelős a többi meghatározására.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Modul aktiválása %s
     ShowEditTechnicalParameters=Klikkelj ide a haladó beállítasok megtekintéséhez/szerkezstéséhez. (szakértő mód)
    -WarningUpgrade=Figyelem!\nKészült biztonsági másolat az adatbázisról?\nErősen ajánlott: például az adatbázis rendszer néhány hibája miatt (pl. a 5.5.40/41/42/43 verzióban) a folyamat során néhány adat vagy tábla elveszhet, ezért erősen ajánlott egy teljes másolat készítése az adatbázisról, mielőtt a migráció elindul.\n\nVálaszd az OK gombot a migráció elindításához
    -ErrorDatabaseVersionForbiddenForMigration=Az adatbázis verziója %s. Ez a verzió kritikus hibát tartalmaz az az adatbis struktúrájának megváltoztatásakor, ami a migrációs folyamat során szükséges. Ennek elkerülése érdekében a migráció nem engedélyezett, amíg az adatbázis nem kerül frissítésre egy magasabb stabil verzióra. (Az ismert hibás verziókat lásd itt:%s)
    -KeepDefaultValuesWamp=A DoliWamp-ot használja a Dolibarr telepítéséhez, az itt lévõ értékek már optimalizálva vannak. Csak saját felelõsségre módosítsa ezeket.
    -KeepDefaultValuesDeb=Linux csomagból (Ubuntun, Fedora vagy Debian, ...) használja a telepítési varázslót, az itt lévõ értékek már optimalizálva vannak. Csak az adatbázis tulajdonosnak kell jelszót megadni. Csak saját felelõsségre módosítsa ezeket az értékeket.
    -KeepDefaultValuesMamp=A DoliMamp-ot használja a Dolibarr telepítéséhez, az itt lévõ értékek már optimalizálva vannak. Csak saját felelõsségre módosítsa ezeket.
    -KeepDefaultValuesProxmox=Ön használja az Dolibarr Setup Wizard egy Proxmox virtuális készüléket, így az itt javasolt értékek már optimalizálva. Megváltoztatni őket, ha tudod, mit csinálsz.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Üzleti ajánlatok migrációja
     MigrationInvoice=Ügyfél számlák migrációja
     MigrationContract=Szerzõdések migrációja
    -MigrationSuccessfullUpdate=Frissítés sikeres
    +MigrationSuccessfullUpdate=A frissítés sikeres
     MigrationUpdateFailed=Sikeretelen frissítés
     MigrationRelationshipTables=Kapcsolati táblák migrációja (%s)
     MigrationPaymentsUpdate=Fizetési adatok korrekciója
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Szerzõdési adatok javítása
     MigrationContractsNumberToUpdate=%s szerzõdés(ek) várn(nak) frissítésre
     MigrationContractsLineCreation=%s számú szerzõdés számára új sorok létrehozása
     MigrationContractsNothingToUpdate=Nincs több tenni való
    -MigrationContractsFieldDontExist=fk_facture mezõ nem létezik többé. Nincs több tenni való.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Szerzõdés üres dátumának korrekciója
    -MigrationContractsEmptyDatesUpdateSuccess=Szerzõdés üres dátumának korrekciója sikeresen lezajlott
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Nincs szerzõdés üres dátummal
     MigrationContractsEmptyCreationDatesNothingToUpdate=Nincs szerzõdés üres létrehozási dátummal
     MigrationContractsInvalidDatesUpdate=Szerzõdés érvénytelen dátumának korrekciója
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Szállítások frissítése
     MigrationStockDetail=Termékek készletének frissítése
     MigrationMenusDetail=Dinamikus menük frissítése
     MigrationDeliveryAddress=Szállítási címek frissítése
    -MigrationProjectTaskActors=Migárlás llx_projet_task_actors tábla részére
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Adatok migrálása fk_user_resp/llx_projet llx_element_contact -ba
     MigrationProjectTaskTime=Frissítési idõ másodpercekben
     MigrationActioncommElement=Frissítés adatok akciók
     MigrationPaymentMode=Adatmigráció fizetési mód
     MigrationCategorieAssociation=Kategória migrálása
    -MigrationEvents=Az események migrálásához az események tulajdonosát be kell állítani a szükséges táblában
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Üres mező érték frissítése: llx_societe_remise
     MigrationRemiseExceptEntity=Üres mező érték frissítése: llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Modul újratöltése %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Nem elérhető opciók mutatása
    -HideNotAvailableOptions=Nem elérhető opciók elrejtése
    -ErrorFoundDuringMigration=Migráció alatt hiba történt, így nem lehet végrehajtani a következő lépést. A hibák elvetéséhez, végrehajthatja a <a href="%s">kattintson ide</a>, de az alkalmazás egyes lehetőségei nem fognak megfelelően működni a hibajavítás nélkül.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/hu_HU/interventions.lang b/htdocs/langs/hu_HU/interventions.lang
    index 642ae9a5828..d6941bac356 100644
    --- a/htdocs/langs/hu_HU/interventions.lang
    +++ b/htdocs/langs/hu_HU/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Intervenciók
     InterventionCard=Intervenció kártya
     NewIntervention=Új intervenció
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Intervenciók liskáta
     ActionsOnFicheInter=Műveletek az intervenciós
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/hu_HU/main.lang b/htdocs/langs/hu_HU/main.lang
    index 7c8419b5d20..bd94ee04a2c 100644
    --- a/htdocs/langs/hu_HU/main.lang
    +++ b/htdocs/langs/hu_HU/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Nemsikerült elküldeni a levelet (feladó=%s, címzett=%s
     ErrorFileNotUploaded=A Fájl nem lett feltöltve. Ellenőrizd, hogy a méret nem haladja -e meg a maximum méretet, van -e elég szabad hely és hogy a célkönyvtárban nincs -e még egy ugyan ilyen nevü fájl.
     ErrorInternalErrorDetected=Hiba észlelve
     ErrorWrongHostParameter=Rossz hoszt paraméter
    -ErrorYourCountryIsNotDefined=Az ország nincs megadva. Menj a Nyitólapo->Beállítások->Szerkesztés oldalra és add meg újra.
    -ErrorRecordIsUsedByChild=Nem sikerült a rekordot törölni. Ezt a rekordot egy leszármazott rekord használja.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Rossz érték
     ErrorWrongValueForParameterX=%s paraméter rossz értékkel rendelkezik
     ErrorNoRequestInError=Nincs kérés a hibában
    -ErrorServiceUnavailableTryLater=A szolgáltatás jelenleg nem elérhető. Próbálja meg késöbb.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Két példányú érték egyedülálló mezőben
    -ErrorSomeErrorWereFoundRollbackIsDone=Nehány hibát találtunk. Visszafordítjuk a változásokat.
    -ErrorConfigParameterNotDefined=<b>%s</b> paraméter nincs definiálva a Dolibarr configurációs fájlban (<b>conf.php</b>).
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=<b>%s</b> felhasználó nem található a Dolibarr adatbázisban.
     ErrorNoVATRateDefinedForSellerCountry=Hiba '%s' számára nincs Áfa meghatározva.
     ErrorNoSocialContributionForSellerCountry=Hiba, nincsenek meghatározva társadalombiztosítási és adóügyi adattípusok a '%s' ország részére.
     ErrorFailedToSaveFile=Hiba, nem sikerült a fájl mentése.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Nincs jogosultsága ehhez a tevékenységhez
     SetDate=Dátum beállítása
     SelectDate=Válasszon egy dátumot
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=Állomány mentése sikeres
     FileUploaded=A fájl sikeresen fel lett töltve
    -FileTransferComplete=Állomány(ok) feltöltése sikeres
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=Az állomány(ok) törlése megtörtént
     FileWasNotUploaded=Egy fájl ki lett választva csatolásra, de még nincs feltöltve. Kattintson a "Fájl Csatolása" gombra.
    -NbOfEntries=Bejegyzések száma
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Online súgó olvasása (Internet hozzáférés szükséges)
     GoToHelpPage=Segítség olvasása
     RecordSaved=Rekord elmentve
    @@ -142,6 +142,7 @@ Closed=Zárva
     Closed2=Zárva
     NotClosed=Not closed
     Enabled=Bekapcsolt
    +Enable=Engedélyez
     Deprecated=Elavult
     Disable=Letilt
     Disabled=Kikapcsolva
    @@ -153,7 +154,7 @@ Update=Frissítés
     Close=Zár
     CloseBox=A widget eltávolítása a vezérlőpultról
     Confirm=Megerősít
    -ConfirmSendCardByMail=Valóban el akarja küldeni emailben a kártya tartalmát <b>%s</b> részére ?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Törlés
     Remove=Eltávolitás
     Resiliate=Befejezés
    @@ -327,7 +328,7 @@ Copy=Másolás
     Paste=Beillesztés
     Default=Alaptértelmezett
     DefaultValue=Alaptértelmezett érték
    -DefaultValues=Alapértelmezett érték
    +DefaultValues=Default values/filters/sorting
     Price=Ár
     PriceCurrency=Price (currency)
     UnitPrice=Egység ár
    @@ -347,7 +348,7 @@ AmountTTCShort=Mennyiség (bruttó)
     AmountHT=Mennyiség (nettó)
     AmountTTC=Mennyiség (bruttó)
     AmountVAT=ÁFA mennyiség
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Nem alkalmazható
     ActionRunningNotStarted=Nincs elkezdve
     ActionRunningShort=Folyamatban
     ActionDoneShort=Befejezett
    -ActionUncomplete=Befejezetlen
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Kapcsolat/cím ehhez a harmadik félhez
     ContactsAddressesForCompany=Kapcsolat/cím ehhez a harmadik félhez
     AddressesForCompany=Cím ehhez a harmadik félhez
     ActionsOnCompany=Ezzel a harmadik féllel kapcsolatos események
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Események ezzel a taggal kapcsolatban
     ActionsOnProduct=Events about this product
     NActionsLate=%s késés
    @@ -453,8 +455,8 @@ Generate=Generálás
     Duration=Időtartam
     TotalDuration=Teljes időtartam
     Summary=Összefoglalás
    -DolibarrStateBoard=Adatbázis statisztikák
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Elérhető
     NotYetAvailable=Még nem elérhető
    @@ -468,7 +470,7 @@ and=és
     or=vagy
     Other=Más
     Others=Mások
    -OtherInformations=Egyéb információk
    +OtherInformations=Other information
     Quantity=Mennyiség
     Qty=Menny.
     ChangedBy=Módosította
    @@ -506,7 +508,7 @@ None=Nincs
     NoneF=Nincs
     NoneOrSeveral=Egyik sem
     Late=Késő
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Kép
     Photos=Képek
    @@ -530,18 +532,6 @@ September=Szeptember
     October=Október
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Ápr
    -MayMin=Máj
    -JuneMin=Jún
    -JulyMin=Júl
    -AugustMin=Aug
    -SeptemberMin=Szept
    -OctoberMin=Okt
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=január
     Month02=február
     Month03=március
    @@ -646,6 +636,8 @@ SendMail=E-mail küldése
     EMail=E-mail
     NoEMail=Nincs email
     Email=E-mail
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Nincs mobilszám
     Owner=Tulajdonos
     FollowingConstantsWillBeSubstituted=Az alábbi konstansok helyettesítve leszenek a hozzájuk tartozó értékekkel.
    @@ -677,7 +669,7 @@ NeverReceived=Soha nem került átvételre
     Canceled=Megszakítva
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Szín
     Documents=Kapcsolt fájlok
     Documents2=Dokumentumok
    @@ -703,7 +695,7 @@ DateOfSignature=Kelt
     HidePassword=Parancs mutatása rejtett jelszóval
     UnHidePassword=Igazi parancs mutatása üres jelszóval
     Root=Gyökér
    -Informations=Információk
    +Informations=Information
     Page=Oldal
     Notes=Megjegyzés
     AddNewLine=Új sor hozzáadása
    @@ -716,15 +708,15 @@ Merge=Összeolvasztás
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menü-menedzser
    -WarningYouAreInMaintenanceMode=Figyelem, karbantartási mód, csak <b>%s</b> jelentkezhet be.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Rendszerhiba
     CoreErrorMessage=Sajnálatos hiba történt. Lépjen kapcsolatba a rendszergazdával a naplófájlok megtekintéséhez vagy állítsa 0-ra a $dolibarr_main_prod=1 paramétert részletesebb információkért !
     CreditCard=Hitelkártya
     ValidatePayment=Jóváhagyott fizetés
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=<b>%s</b>-al jelölt mezők kötelezőek
    -FieldsWithIsForPublic=<b>%s</b>-al jelölt mezők publikusak. Ha ezt nem akarja jelölje be a "Publikus" dobozt.
    -AccordingToGeoIPDatabase=(GeoIP converzió szerint)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Sor
     NotSupported=Nincs támogatva
     RequiredField=Szükséges mező
    @@ -732,6 +724,8 @@ Result=Eredmény
     ToTest=Teszt
     ValidateBefore=A kártyát hitelesíteni kell a szolgáltatás használata elött
     Visibility=Láthatóság
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privát
     Hidden=Rejtett
     Resources=Erőforrás
    @@ -750,6 +744,7 @@ LinkTo=Hivatkozás erre:
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Tervezet készítése
     SetToDraft=Vissza a vázlathoz
     ClickToEdit=Kattintson a szerkesztéshez
    +ClickToRefresh=Click to refresh
     EditWithEditor=Szerkesztés CKEditorral
     EditWithTextEditor=Szerkesztés szövegszerkesztővel
     EditHTMLSource=HTML forrás szerkesztése
    @@ -772,14 +768,14 @@ ByDay=Nappal
     BySalesRepresentative=Az értékesítési képviselő
     LinkedToSpecificUsers=Hozzárendelve egy adott felhasználói kapcsolathoz
     NoResults=Nincs eredmény
    -AdminTools=Adminisztrátori eszközök
    +AdminTools=Admin Tools
     SystemTools=Rendszereszközök
     ModulesSystemTools=Modul eszközök
     Test=Teszt
     Element=Elem
     NoPhotoYet=Nem érhető el még fénykép
     Dashboard=Vezérlőpult
    -MyDashboard=Munkafelület
    +MyDashboard=My Dashboard
     Deductible=Levonható
     from=tól
     toward=felé
    @@ -802,7 +798,7 @@ PrintFile=%s fájl nyomtatása
     ShowTransaction=Show entry on bank account
     ShowIntervention=Mutasd beavatkozás
     ShowContract=Szerződés mutatása
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Elutasít
     Denied=Elutasítva
     ListOf=A következők listája: %s
    @@ -818,12 +814,12 @@ Sincerely=Tisztelettel
     DeleteLine=Sor törlése
     ConfirmDeleteLine=Biztos, hogy törölni akarja ezt a sort ?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Kapcsolódó objektumok
     ClassifyBilled=Minősítse kiszámlázottként
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Naptár
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Link a közvetlen letöltéshez (belépés és jogosultság szükséges)
     Download=Letöltés
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Állítsa be a pénznemet
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Weboldalak
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Költség kimutatások
     HR=Személyügy
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatikusan számolva
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import azonosító
     Events=Cselekvések
    -EMailTemplates=E-mail sablonok
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Projekt
     Projects=Projektek
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Engedélyek
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Hétfő
     Tuesday=Kedd
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Beavatkozások
     SearchIntoContracts=Szerződések
     SearchIntoCustomerShipments=Vásárlói kiszállítások
     SearchIntoExpenseReports=Költség kimutatások
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Megjegyzéske
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Mindenki
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Hozzárendelve
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Készletnyilvántartás
    diff --git a/htdocs/langs/hu_HU/other.lang b/htdocs/langs/hu_HU/other.lang
    index cd36c5dc2d2..da4f9c1e000 100644
    --- a/htdocs/langs/hu_HU/other.lang
    +++ b/htdocs/langs/hu_HU/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Biztonsági kód
     NumberingShort=N°
     Tools=Eszközök
     TMenuTools=Eszközök
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Születésnap
     BirthdayDate=Birthday date
     DateToBirth=Dátum a születési
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Üzenet érvényesített fizetési vissza oldal
     MessageKO=Üzenet a törölt kifizetési visszatérés oldal
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Beavatkozás validált
    -Notify_FICHINTER_SENTBYMAIL=Beavatkozás küldése e-mailben
     Notify_ORDER_VALIDATE=Ügyfél érdekében érvényesített
     Notify_ORDER_SENTBYMAIL=Ügyfél érdekében postai úton
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Szállító érdekében postai úton
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Szállítói megrendelés rögzítve
     Notify_ORDER_SUPPLIER_APPROVE=Szállító érdekében elfogadott
     Notify_ORDER_SUPPLIER_REFUSE=Szállító érdekében hajlandó
     Notify_PROPAL_VALIDATE=Ügyfél javaslat érvényesített
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Kereskedelmi által küldött javaslatban mail
     Notify_WITHDRAW_TRANSMIT=Átviteli visszavonása
     Notify_WITHDRAW_CREDIT=Hitel visszavonása
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Harmadik fél létre
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Ügyfél számla hitelesített
     Notify_BILL_UNVALIDATE=Vevőszámla nincs érvényesítve
    -Notify_BILL_PAYED=Az ügyfél számlát fizetni
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Az ügyfél számlát törölt
     Notify_BILL_SENTBYMAIL=Az ügyfél számlát postai úton
     Notify_BILL_SUPPLIER_VALIDATE=Szállító számlát érvényesített
    -Notify_BILL_SUPPLIER_PAYED=Szállító számlát fizetni
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Szállító számlát postai úton
     Notify_BILL_SUPPLIER_CANCELED=Szállítói számla visszavonva
     Notify_CONTRACT_VALIDATE=A szerződés a validált
     Notify_FICHEINTER_VALIDATE=Beavatkozás érvényesített
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Beavatkozás küldése e-mailben
     Notify_SHIPPING_VALIDATE=Szállítás validált
     Notify_SHIPPING_SENTBYMAIL=Szállítás postai úton
     Notify_MEMBER_VALIDATE=Tagállamnak jóvá
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Lásd a %s modul beállításait
     NbOfAttachedFiles=Száma csatolt fájlok / dokumentumok
     TotalSizeOfAttachedFiles=Teljes méretű csatolt fájlok / dokumentumok
     MaxSize=Maximális méret
     AttachANewFile=Helyezzen fel egy új file / dokumentum
     LinkedObject=Csatolt objektum
    -NbOfActiveNotifications=Figyelmeztetések száma (nyugtázott emailek száma)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> egy információs függően harmadik fél ország. <br> Például, az ország <b>%s,</b> ez <b>%s</b> kódot.
     DolibarrDemo=Dolibarr ERP / CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=A beavatkozás %s nem érvényesítette.
     EMailTextInvoiceValidated=A számla %s nem érvényesítette.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=A javaslat %s nem érvényesítette.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=A rendelés %s nem érvényesítette.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=A megrendelés %s jóváhagyta %s.
     EMailTextOrderRefused=A megrendelés %s visszautasításra került.
     EMailTextOrderRefusedBy=A megrendelés %s már elutasította %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Behozatal adathalmaz
     DolibarrNotification=Automatikus értesítés
     ResizeDesc=Írja be az új szélesség <b>vagy</b> új magasság. Arányt kell tartani során átméretezés ...
    @@ -204,7 +214,7 @@ NewLength=Új szélesség
     NewHeight=Új magasság
     NewSizeAfterCropping=Új mérete a vágás után
     DefineNewAreaToPick=Adjuk meg az új terület a képre, hogy vegye (bal gombbal a képre, majd húzza addig, amíg el nem éri a szemközti sarokban)
    -CurrentInformationOnImage=Ezt az eszközt úgy tervezték, hogy segítsen átméretezése vagy levágása egy kép. Ez a jelenlegi információk szerkesztett kép
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Kép szerkesztő
     YouReceiveMailBecauseOfNotification=Ez az üzenet, mert az e-mail bővült listájához célokat kell tájékoztatni a különleges események %s %s szoftver.
     YouReceiveMailBecauseOfNotification2=Ez az esemény a következő:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Az export területén
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Cím
     WEBSITE_DESCRIPTION=Leírás
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/hu_HU/paybox.lang b/htdocs/langs/hu_HU/paybox.lang
    index aea7c2dd326..47e38007f7b 100644
    --- a/htdocs/langs/hu_HU/paybox.lang
    +++ b/htdocs/langs/hu_HU/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox modul beállítás
     PayBoxDesc=Ez a nodul lehetővé teszi az oldalak számára a <a href="http://www.paybox.com" target="_blank">Paybox</a>-on keresztüli fizetést az ügyfelek számára. Ingyenes fizetési megoldás.
     FollowingUrlAreAvailableToMakePayments=Következő URL-ek elérhetők a vevő részére egy oldal felajánlásához a Dollibar objektumok kifizetéséhez
     PaymentForm=Fizetési ürlap
    -WelcomeOnPaymentPage=Üdvözöljük az online fizetési oldalunkon
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Ez az oldal lehetővé teszi az online fizetést %s számára.
     ThisIsInformationOnPayment=Ez az információ a fizetendő tételről
     ToComplete=Befejezni
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL egy %s online fizetési felhasználói
     ToOfferALinkForOnlinePaymentOnContractLine=URL egy %s online fizetési felhasználói csatolót ajánl egy vevői tétel sorhoz
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL egy %s online fizetési felhasználói csatolót ajánl egy ingyenes összeghez
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL egy %s online fizetési felhasználói csatolót ajánl egy tag feliratkozáshoz
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Hozzáadhat URL paramétereket <b>&tag=<i>érték</i></b> bármely ilyen URL (csak az ingyenes fizetéshez szükséges) a saját fizetési megjegyzés címke hozzáadásához.
    -SetupPayBoxToHavePaymentCreatedAutomatically=PayBox beállítása ezzel az url-el <b>%s</b> a fizetések automata létrehozásához a paybox érvényesítése után.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Ez az oldal megerősíti, hogy a fizetési lett felvéve. Köszönöm.
    -YourPaymentHasNotBeenRecorded=Ön fizetést nem került rögzítésre és az ügylet törlésre került. Köszönöm.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Számla paraméterek
     UsageParameter=Használat paraméterek
     InformationToFindParameters=Segíts, hogy megtaláld a %s fiókadatokat
    diff --git a/htdocs/langs/hu_HU/projects.lang b/htdocs/langs/hu_HU/projects.lang
    index 0ee107e086d..a2114c55627 100644
    --- a/htdocs/langs/hu_HU/projects.lang
    +++ b/htdocs/langs/hu_HU/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Projektek mutatása
     ShowTask=Feladat mutatása
     SetProject=Projekt beállítása
     NoProject=Nincs létrehozott vagy tulajdonolt projekt
    -NbOfProjects=Projektek száma
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Eltöltött idő
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=A projekthez tartozó kereskedelmi ajánlatok listája
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=A projekthez tartozó szerződések listája
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=A projekthez tartozó intervenciók listája
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=A projekthez tartozó cselekvések listája
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Harmadik félhez kapcsolva
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Töltött idő üres
     ThisWillAlsoRemoveTasks=Ez a művelet is törli az összes feladatot a projekt <b>(%s</b> feladatokat a pillanatban), és az összes bemenet eltöltött idő.
    -IfNeedToUseOhterObjectKeepEmpty=Ha egyes tárgyakat (számla, megrendelés, ...), amelyek egy másik harmadik félnek kell kapcsolódniuk a projekt létrehozásához, tartsa ezt az üres, hogy a projekt, hogy több harmadik fél.
    +IfNeedToUseOtherObjectKeepEmpty=Ha egyes tárgyakat (számla, megrendelés, ...), amelyek egy másik harmadik félnek kell kapcsolódniuk a projekt létrehozásához, tartsa ezt az üres, hogy a projekt, hogy több harmadik fél.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Hozzájáruló
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Kapcsolódó elemek
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Javaslat
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/hu_HU/propal.lang b/htdocs/langs/hu_HU/propal.lang
    index 43cf94e913b..f552d4e863a 100644
    --- a/htdocs/langs/hu_HU/propal.lang
    +++ b/htdocs/langs/hu_HU/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Aláírt (szükséges számlázási)
     PropalStatusNotSigned=Nem írta alá (zárt)
     PropalStatusBilled=Kiszámlázott
     PropalStatusDraftShort=Tervezet
    -PropalStatusValidatedShort=Hitelesítetve
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Zárva
     PropalStatusSignedShort=Aláírt
     PropalStatusNotSignedShort=Nem írták alá
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s nem található
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Hozzon létre a kereskedelmi javaslat másolásával meglévő javaslat
    -CreateEmptyPropal=Hozzon létre üres üzleti ajánlatot vierge vagy listából termékek / szolgáltatások
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Alapértelmezett érvényesség időtartamát kereskedelmi javaslat (napokban)
    -UseCustomerContactAsPropalRecipientIfExist=Használja ügyfélkapcsolati címet, ha meghatározott harmadik személy helyett a javaslat címét címzett címét
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Klón kereskedelmi javaslat
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Ügyfélkapcsolati nyomon követése javasl
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A javaslat teljes modell (logo. ..)
    +DocModelCyanDescription=A javaslat teljes modell (logo. ..)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/hu_HU/website.lang b/htdocs/langs/hu_HU/website.lang
    index bae417c085c..04ceec1b548 100644
    --- a/htdocs/langs/hu_HU/website.lang
    +++ b/htdocs/langs/hu_HU/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kód
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=A honlap törlése
    -ConfirmDeleteWebsite=Biztos benne, hogy le akarja törölni a honlapot? Az összes oldal és tartalom el fog veszni!
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Olvas
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/id_ID/admin.lang b/htdocs/langs/id_ID/admin.lang
    index b90beccae1d..82b94f3d44c 100644
    --- a/htdocs/langs/id_ID/admin.lang
    +++ b/htdocs/langs/id_ID/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Pengembangan
     VersionUnknown=Asing
     VersionRecommanded=Direkomendasikan
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler untuk menyimpan sesi
     SessionSavePath=Peyimpanan untuk lokalisasi sesi
     PurgeSessions=Hapus beberapa sesi
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Simpan sensi handler PHP yang sudah dikonfigurasi yang tidak di izinkan untuk melihat semua sesi yang sedang berlangsung.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Kunci koneksi - koneksi yang baru terjadi.
    -ConfirmLockNewSessions=Anda yakin untuk membatasi semua koneksi Dolibar yang baru terhubung ke Anda. Kecuali pengguna <b>%s<b> akan tetap bisa kembali melakukan koneksi setelah itu.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Hapus penguncian koneksi.
     YourSession=Sesi Anda
    -Sessions=Sesi Pengguna ( User )
    +Sessions=Users sessions
     WebUserGroup=Server web untuk pengguna ( user ) / grup.
    -NoSessionFound=PHP Anda sepertinya tidak mengizinkan untuk melihat daftar semua sesi yang sedang aktif. Direktori yang biasanya digunakan untuk menyimpan semua sesi (<b>%s</b>) mungkin di proteksi ( Sebagai contoh, yang di izinkan oleh OS atau oleh direktif ( directive ) PHP open_basedir ).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Karakter set atau charset untuk menyimpan data
     DBSortingCharset=Karakter set atau charset didalam Database untuk penyortiran data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Pengguna eksternal
     InternalUsers=Beberapa pengguna internal
     ExternalUsers=Beberapa pengguna eksternal
     GUISetup=Penampakan display
    -SetupArea=Area setup
    +SetupArea=Pengaturan
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Halaman percobaan untuk menunggah / upload file ( berdasarkan konfigurasi setup )
     IfModuleEnabled=Catatan: Ya ini efektif jika hanya module <b>%s</b> di hidupkan
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kode tidak boleh menggandung nilai / value 0
     DisableJavascript=Menonaktifkan JavaScript dan Ajax fungsi (Direkomendasikan untuk orang buta orang atau teks browser)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr karakter untuk memicu pencarian:% s
     NotAvailableWhenAjaxDisabled=Tidak tersedia ketika Ajax dinonaktifkan
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview tidak tersedia
     ThemeCurrentlyActive=Tema yang sedang aktif
     CurrentTimeZone=TimeZone PHP (Server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Ruang
     Table=Tabel
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Aktif
     SetupShort=Pengaturan
     OtherOptions=Pilihan lain
    -OtherSetup=Setup lainnya
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Pemisah desimal
     CurrentValueSeparatorThousand=Ribuan pemisah
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter% s
    -LocalisationDolibarrParameters=Parameter Lokalisasi
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Zona Waktu Klien (Pengguna)
     ClientHour=Jam Klien (Pengguna)
     OSTZ=Zona Waktu System Operasi Server
    @@ -126,8 +126,8 @@ PHPTZ=Zona Waktu Server PHP
     DaylingSavingTime=Menghemat waktu siang hari
     CurrentHour=Jam PHP (Server)
     CurrentSessionTimeOut=Sesi sekarang habis waktu
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Keistimewaan
     DolibarrLicense=Lisensi
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Unit Pengukuran
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Metode Pengiriman EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Metode Pengiriman SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Setup Modul
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Modul Percobaan
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Versi Dolibarr saat ini
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Panjang Minimum
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=batas waktu Koneksi
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Batas Waktu Balasan
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Suku VAT lama
     NewVATRates=Suku VAT baru
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Daftar Pilihan
     ExtrafieldSelectList = Pilih dari tabel
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Kata kunci
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Link Standar
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Pengguna & Grup
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Pihak Ketiga
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Komersil
     Module2Desc=Commercial management
     Module10Name=Akunting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposal
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Pesanan Pelanggan
     Module25Desc=Customer order management
     Module30Name=Nota
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Pemasok
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Jasa
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Pengiriman
     Module80Desc=Shipments and delivery order management
    -Module85Name=Bank dan Kas
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=Situs luar
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Ekspor Data
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Impor Data
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Anggota
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Sumbangan
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margin
     Module59000Desc=Module to manage margins
     Module60000Name=Komisi
     Module60000Desc=Module to manage commissions
     Module62000Name=Istilah Ekonomi Internasional
    -Module62000Desc=Tambah fitur untuk mengatur Istilah Ekonomi Internasional
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Membaca Nota Pelanggan
    @@ -651,9 +661,9 @@ Permission32=Membuat/Merubah produk
     Permission34=Menghapus Produk
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfer antar akun
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Membaca Data Pengguna Lain dan Grup
     PermissionAdvanced251=Membaca Data Pengguna Lain
     Permission252=Membaca Izin Pengguna Lain
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Merubah Kata Sandi Pengguna Lain
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Membaca Nota
     Permission273=Mengeluarkan Nota
    @@ -765,7 +775,7 @@ Permission283=Menghapus Kontrak
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=State/Province
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Kembali Ke Daftar Modul
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=diakhir bulan
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=Ringkasan Sistem Informasi
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Berita Hari Ini
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Tampilkan Logo dimenu kiri
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Nama
     CompanyAddress=Alamat
     CompanyZip=Kode Pos
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Catatan kredit
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Parameter Global
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Nama
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Kode Pos
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/id_ID/banks.lang b/htdocs/langs/id_ID/banks.lang
    index 01ae4bcab9a..3b81a4074df 100644
    --- a/htdocs/langs/id_ID/banks.lang
    +++ b/htdocs/langs/id_ID/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Akun
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Dari
     TransferTo=Kepada
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/id_ID/bills.lang b/htdocs/langs/id_ID/bills.lang
    index a7a5c56778c..deef063653c 100644
    --- a/htdocs/langs/id_ID/bills.lang
    +++ b/htdocs/langs/id_ID/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Tagihan Proforma
     InvoiceProFormaDesc=<b>Tagihan Proforma</b> adalah gambaran untuk tagihan sebenarnya tapi tidak mempunyai nilai akutansi.
     InvoiceReplacement=Taghian pengganti
     InvoiceReplacementAsk=Tagihan pengganti untuk tagihan
    -InvoiceReplacementDesc=<b>Tagihan pengganti</b> digunakan untuk pembatalan dan penggantian penuh sebuah tagihan dengan tidak adanya pembayaran yang sudah diterima.<br><br>Catatan: Hanya tagihan - tagihan dengan tidak ada pembayaran yang bisa di ganti. Jika tagihan yang Anda gantikan belum ditutup, akan ditutup yang untuk ditinggalkan secara otomatis.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Catatan kredit
     InvoiceAvoirAsk=Catatan kredit untuk tagihan yang cocok atau yang sudah benar
    -InvoiceAvoirDesc=<b>Catatan kredit</b> adalah catatan untuk tagihan negatif yang biasanya digunakan sebagai bukti  fakta terhadap tagihan yang jumlah tagihannya berbeda dari jumlah yang seharusnya dibayar (contoh kasus: pelanggan yang pembayarannya lebih karena kesalahan pelanggan, atau tidak akan dibayarkan sejak beberapa produk atau barang dikembalikan).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Dibayar kembali
     DeletePayment=Hapus pembayaran
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Semua pembayaran untuk semua pemasok / supplier
     ReceivedPayments=Semua pembayaran yang diterima
     ReceivedCustomersPayments=Semua pembayaran yang diterima dari semua pelanggan
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Pembayaran dari pelanggan - pelanggan untuk divalidasi
     PaymentsReportsForYear=Laporan - laporan semua pembayaran untuk %s
     PaymentsReports=Laporan - laporan semua pembayaran
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=Jumlah pembayaran
     ValidatePayment=Validasi pembayaran
     PaymentHigherThanReminderToPay=Pengingat untuk pembayaran yang lebih tinggi
    -HelpPaymentHigherThanReminderToPay=Untuk diperhatikan, jumlah pembayaran baik yang hanya satu atau lebih dari satu tagihan yang lebih banyak dan mempunyai sisa untuk dibayar. <br> Ubah entri Anda, jika tidak mengkonfirmasikan dan terpikir untuk membuat sebuat catatan kredit kelebihan yang diterima untuk setiap tagihan yang mempunyai kelebihan bayar.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Menggolongkan 'Telah dibayar'
     ClassifyPaidPartially=Menggolongkan 'Telah dibayarkan sebagian'
     ClassifyCanceled=Menggolongkan 'Ditinggalkan'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Ditutup (yang belum dibayar)
     BillStatusClosedPaidPartially=Dibayar (sebagian / cicil)
     BillShortStatusDraft=Konsep
     BillShortStatusPaid=Dibayar
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Dibayar
     BillShortStatusCanceled=Diabaikan
     BillShortStatusValidated=Divalidasi
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Ditutup
     BillShortStatusClosedPaidPartially=Dibayar (sebagian / cicil )
     PaymentStatusToValidShort=Untuk divalidasi
    -ErrorVATIntraNotConfigured=Nomor intra-komunateri VAT belum di definisikan
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Belum ada mode acuan yang di definisikan. Silahkan ke halaman pengaturan modul Tagihan untuk memperbaiki masalah ini.
     ErrorCreateBankAccount=Buat sebuah akun bank, kemudian dilanjutkan ke panel pengaturan / setup modul Tagihan untuk mendefinisikan mode pembayaran 
     ErrorBillNotFound=Tagihan %s tidak ada
    -ErrorInvoiceAlreadyReplaced=Ada kesalahan, Anda mencoba untuk memvalidasi sebuah tagihan untuk menggantikan tagihan %s. Tapi yang satu ini sudah pernah digantikan oleh tagihan %s
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Ada kesalahan, diskonto sudah digunakan
     ErrorInvoiceAvoirMustBeNegative=Ada kesalahan, tagihan yang sudah terkoreksi  harus punya setidaknya satu jumlah negatif
     ErrorInvoiceOfThisTypeMustBePositive=Ada kesalahan, tagihan jenis ini harus punya setidaknya satu jumlah positif
     ErrorCantCancelIfReplacementInvoiceNotValidated=Ada kesalahan, tagihan yang pernah diganti dengan tagihan lain tidak bisa digantikan kalau masih dalam status konsep
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Dari
     BillTo=Kepada
     ActionsOnBill=Tindak lanjut tagihan
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Lainnya
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Konsep
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/id_ID/cashdesk.lang b/htdocs/langs/id_ID/cashdesk.lang
    index 96a13d8278a..5c205b96886 100644
    --- a/htdocs/langs/id_ID/cashdesk.lang
    +++ b/htdocs/langs/id_ID/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/id_ID/commercial.lang b/htdocs/langs/id_ID/commercial.lang
    index 78f2e0038dd..91c3e5067a1 100644
    --- a/htdocs/langs/id_ID/commercial.lang
    +++ b/htdocs/langs/id_ID/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/id_ID/companies.lang b/htdocs/langs/id_ID/companies.lang
    index 02fe5871d14..861ed12eda0 100644
    --- a/htdocs/langs/id_ID/companies.lang
    +++ b/htdocs/langs/id_ID/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Pilih Pihak Ketiga
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Hapus kontak/alamat
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=Pihak Ketiga Baru
    -MenuNewCustomer=Pelanggan Baru
    -MenuNewProspect=Prospek Baru
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=Perusahaan
     CompanyName=Nama Perusahaan
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Perusahaan
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=Pihak Ketiga
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
     ThirdPartyProspectsStats=Prospects
     ThirdPartyCustomers=Customers
     ThirdPartyCustomersStats=Customers
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Posisi
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposal
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Suplier
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Delete a company
     PersonalInformations=Personal data
     AccountancyCode=Akun akuntansi
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Staff
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=List of prospects
    -ListCustomersShort=List of customers
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Open
     ActivityCeased=Ditutup
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/id_ID/dict.lang b/htdocs/langs/id_ID/dict.lang
    index 4e75c40182c..f16d2d943ce 100644
    --- a/htdocs/langs/id_ID/dict.lang
    +++ b/htdocs/langs/id_ID/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=karyawan
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/id_ID/ecm.lang b/htdocs/langs/id_ID/ecm.lang
    index 2cd72ef2b91..f774506f252 100644
    --- a/htdocs/langs/id_ID/ecm.lang
    +++ b/htdocs/langs/id_ID/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/id_ID/errors.lang b/htdocs/langs/id_ID/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/id_ID/errors.lang
    +++ b/htdocs/langs/id_ID/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/id_ID/help.lang b/htdocs/langs/id_ID/help.lang
    index 191996ba722..dd8bb1ef933 100644
    --- a/htdocs/langs/id_ID/help.lang
    +++ b/htdocs/langs/id_ID/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Komersil
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/id_ID/holiday.lang b/htdocs/langs/id_ID/holiday.lang
    index dda30ac99fb..febebfc95e0 100644
    --- a/htdocs/langs/id_ID/holiday.lang
    +++ b/htdocs/langs/id_ID/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Cuti
    -CPTitreMenu=Cuti
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Pernyataan bulanan
     MenuAddCP=Permintaan cuti baru
    -NotActiveModCP=Kamu harus mengaktifkan modul cuti untuk melihat halaman ini.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Buat sebuah permintaan cuti
     DateDebCP=Tanggal mulai
     DateFinCP=Tanggal Akhir
    @@ -15,13 +15,18 @@ ApprovedCP=Disetujui
     CancelCP=Dibatalkan
     RefuseCP=Ditolak
     ValidatorCP=Penyetuju
    -ListeCP=Daftar yang Cuti
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Keterangan
     SendRequestCP=Buat permintaan cuti
     DelayToRequestCP=Permintaan cuti harus dilakukan setidaknya <b>%s day(s)</b> sebelum mereka.
    -MenuConfCP=Sisa cuti
    -SoldeCPUser=Sisa cuti tinggal <b>%s</b> hari.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Anda harus memilih tanggal akhir lebih besar dari tanggal mulai.
     ErrorSQLCreateCP=Sebuah kesalahan SQL terjadi dalam pembuatan:
     ErrorIDFicheCP=Sebuah kesalahan telah terjadi, permintaan cuti tidak ada.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=Kamu tidak diizinkan untuk membaca permintaan cuti ini.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=Delete
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/id_ID/install.lang b/htdocs/langs/id_ID/install.lang
    index 15a99541abb..76e5df66fce 100644
    --- a/htdocs/langs/id_ID/install.lang
    +++ b/htdocs/langs/id_ID/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Ikuti setiap langkah sesuai dengan instruksi
     MiscellaneousChecks=Peninjauan prasyarat
     ConfFileExists=File konfigurasi <b>%s</b> telah ada
    -ConfFileDoesNotExistsAndCouldNotBeCreated=File konfigurasi <b>%s</b>  tidak ada dan tidak dapat dibuat
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=File konfigurasi <b>%s</b>  dapat dibuat
    -ConfFileIsNotWritable=File konfigurasi <b>%s</b>  tidak dapat ditulis ulang. Periksa hak akses file. Untuk instalasi pertama kali, web server harus dapat menulisi file tersebut selama proses konfigurasi (sebagai contoh perintah "chmod 666" pada sistem operasi berbasis Unix").
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=memuat ulang semua informasi dari berkas konfigurasi
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=PHP ini mendukung variabel POST dan GET
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=PHP ini mendukung fungsi grafik GD
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=PHP ini mendukung fungsi UTF8
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=PHP anda tidak mendukung fungsi grafik GD. Grafik tidak dapat ditampilkan
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=PHP anda tidak mendukung fungsi UTF8. Dolibarr tidak dapat berfungsi semestinya. Selesaikan hal tersebut sebelum proses instalasi Dolibarr
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Gagal untuk terhubung pada basis data '%s'
     ErrorDatabaseVersionTooLow=Versi basis data (%s) terlalu lama. Dibutuhkan versi %s atau lebih
     ErrorPHPVersionTooLow=Versi PHP terlalu lama. Dibutuhkan versi %s
    -ErrorConnectedButDatabaseNotFound=Koneksi pada server sukses namun basis data '%s' tidak dapat ditemukan
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Versi peramban terlalu lama. Sangat disarankan untuk pemutakhiran peramban Firefox, Chrome atau Opera  pada versi terkini.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=Versi PHP
     License=Penggunaan lisensi
     ConfigurationFile=Berkas Konfigurasi
    @@ -45,22 +45,23 @@ DolibarrDatabase=Basis Data Dolibarr
     DatabaseType=Jenis Basis Data
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Server Database
     DatabaseName=Nama Database
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Ketikkan ulang kata kunci
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Koneksi Server
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Mohon ketikkan kata kunci, tidak diperbolehkan untuk mengosongkan kata kunci !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=Proses Instalasi telah selesai
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=Direkomendasikan untuk menggunakan direktori diluar dari direktori halaman web anda
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Telah ada
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Pemutakhiran
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Mulai
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Mohon perbaiki kesalahan dan tekan F5 untuk memuat ulang halaman
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Versi Database
     ServerVersion=Versi Server Database
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Proses migrasi selesai
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Proses Pemutakhiran berhasil
     MigrationUpdateFailed=Proses pemutakhiran gagal
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/id_ID/interventions.lang b/htdocs/langs/id_ID/interventions.lang
    index 4c93eff9d0d..a130367b14f 100644
    --- a/htdocs/langs/id_ID/interventions.lang
    +++ b/htdocs/langs/id_ID/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/id_ID/main.lang b/htdocs/langs/id_ID/main.lang
    index 56322de0758..4daf9dc8877 100644
    --- a/htdocs/langs/id_ID/main.lang
    +++ b/htdocs/langs/id_ID/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Ditutup
     Closed2=Ditutup
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Membarui
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Harga
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Lainnya
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Dibatalkan
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validasi pembayaran
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Baris
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=Alat-alat Sistem
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Kalender
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Acara
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Izin
     LineNb=Line no.
     IncotermLabel=Istilah Ekonomi Internasional
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Cuti
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Ditugaskan untuk
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/id_ID/other.lang b/htdocs/langs/id_ID/other.lang
    index 362a60df54f..47f4a5e72d9 100644
    --- a/htdocs/langs/id_ID/other.lang
    +++ b/htdocs/langs/id_ID/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Alat
     TMenuTools=Alat
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Keterangan
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/id_ID/paybox.lang b/htdocs/langs/id_ID/paybox.lang
    index a5362fea034..2b333fd2181 100644
    --- a/htdocs/langs/id_ID/paybox.lang
    +++ b/htdocs/langs/id_ID/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/id_ID/projects.lang b/htdocs/langs/id_ID/projects.lang
    index fe1301797ae..a82a8d62fe3 100644
    --- a/htdocs/langs/id_ID/projects.lang
    +++ b/htdocs/langs/id_ID/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/id_ID/propal.lang b/htdocs/langs/id_ID/propal.lang
    index 3e6954e4f49..e6c90630ef8 100644
    --- a/htdocs/langs/id_ID/propal.lang
    +++ b/htdocs/langs/id_ID/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Konsep
    -PropalStatusValidatedShort=Divalidasi
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Ditutup
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/id_ID/website.lang b/htdocs/langs/id_ID/website.lang
    index 0f0673e3716..6ae08738815 100644
    --- a/htdocs/langs/id_ID/website.lang
    +++ b/htdocs/langs/id_ID/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/is_IS/admin.lang b/htdocs/langs/is_IS/admin.lang
    index b24eb9e3cfd..dcaec1b62b7 100644
    --- a/htdocs/langs/is_IS/admin.lang
    +++ b/htdocs/langs/is_IS/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Þróun
     VersionUnknown=Óþekkt
     VersionRecommanded=Mælt
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler að vista fundur
     SessionSavePath=Bílskúr fundur localization
     PurgeSessions=Hreinsa skipti
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Vista setu dýraþjálfari stilla í PHP þinn leyfir ekki að skrá allar hlaupandi fundur.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Læsa nýja tengingar
    -ConfirmLockNewSessions=Ertu viss um að þú viljir takmarka allar nýjar Dolibarr tengingu við sjálfan þig. Aðeins <b>notendur %s </b> verður fær um að tengja eftir það.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Fjarlægja tengingu læsa
     YourSession=Tími þinn
    -Sessions=Notendur fundur
    +Sessions=Users sessions
     WebUserGroup=Vefþjóninn notandi / hópur
    -NoSessionFound=Your PHP virðist ekki leyfa að skrá virk fundur. Listinn notað til að spara fundur <b>( %s )</b> gætu verið verndaðar (Til dæmis með því að OS leyfi eða PHP tilskipun open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Gagnasafn msgstr til að geyma gögn
     DBSortingCharset=Gagnasafn msgstr til að flokka gögn
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Ytri notandi
     InternalUsers=Innri notendur
     ExternalUsers=Ytri notendur
     GUISetup=Skoða
    -SetupArea=Skipulag svæðis
    +SetupArea=Skipulag
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form til að prófa skrá hlaða (samkvæmt skipulag)
     IfModuleEnabled=Ath: er já aðeins gild ef <b>einingin %s </b> er virkt
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=NBR af stöfum til að kalla fram leit: %s
     NotAvailableWhenAjaxDisabled=Ekki í boði þegar Ajax fatlaðra
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Forskoðun er ekki í boði
     ThemeCurrentlyActive=Þema virk
     CurrentTimeZone=PHP-miðlara Tímasvæði
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Virk
     SetupShort=Skipulag
     OtherOptions=Aðrir valkostir
    -OtherSetup=Aðrar skipulag
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Tugabrotstákn
     CurrentValueSeparatorThousand=Thousand skiltákn
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Viðfang %s
    -LocalisationDolibarrParameters=Staðsetning stika
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=Time Zone PHP miðlara
     DaylingSavingTime=Sumartíma (notandi)
     CurrentHour=PHP-miðlara klukkustund
     CurrentSessionTimeOut=Núverandi fundur tími
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Finna sjálfkrafa (vafrara tungumál)
     FeatureDisabledInDemo=Lögun fatlaður í kynningu
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Aðeins atriði frá <a href="%s">virkt einingar</a> eru birtar.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, opinber markaður staður fyrir Dolibarr ERP / CRM ytri mát
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Gera ekki geyma skýrar lykilorð í gagnagrunninum en g
     MainDbPasswordFileConfEncrypted=Gagnasafn lykilorð dulkóðuð í conf.php (Virkja mælt með)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Verndun mynda pdf skrá (Virkja EKKI mælt, brýtur massi pdf-kynslóð)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Lögun
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=Notandanafn eða skjölum verktaki '(Doc, FAQs ...), <br> kíkið á Dolibarr Wiki: <br> <a href="%s" target="_blank"><b> %s </b></a>
     ForAnswersSeeForum=Fyrir einhverjar aðrar spurningar / hjálp, getur þú notað Dolibarr spjall: <br> <a href="%s" target="_blank"><b> %s </b></a>
    -HelpCenterDesc1=Þetta svæði getur hjálpað þér að fá stuðning Hjálp þjónusta á Dolibarr.
    -HelpCenterDesc2=Einhver hluti þessarar þjónustu eru í boði á <b>ensku.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Núverandi valmynd dýraþjálfari
     MeasuringUnit=Measuring eining
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS Höfn (Sjálfgefið í <b>php.ini: %s )</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (Sjálfgefið í <b>php.ini: %s )</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS Höfn (skilgreint ekki inn í PHP á Unix eins og kerfi)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (skilgreint ekki inn í PHP á Unix eins og kerfi)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Senda kerfisbundið falin kolefnis-afrit af öllum sendi tölvupóst til
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Aðferð til að nota til að senda tölvupóst
    -MAIN_MAIL_SMTPS_ID=SMTP ID ef sannprófun sem krafist
    -MAIN_MAIL_SMTPS_PW=SMTP lykilorð ef sannprófun sem krafist
    -MAIN_MAIL_EMAIL_TLS= Nota TLS (SSL) dulkóða
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Slökkva öll SMS sendings (vegna rannsókna eða kynningum)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Aðferð til að nota til að senda SMS
    -MAIN_MAIL_SMS_FROM=Sjálfgefin sendanda símanúmer fyrir SMS senda
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Lögun er ekki í boði á Unix eins og kerfum. Próf sendmail program staðnum.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module skipulag
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-einingar verkfæri
     ModuleFamilyExperimental=Experimental mát
     ModuleFamilyFinancial=Financial einingar (Bókhald / ríkissjóðs)
     ModuleFamilyECM=ECM
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Valmynd dýraþjálfari
     MenuAdmin=Valmynd ritstjóri
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Skref %s
    -FindPackageFromWebSite=Finna pakki sem veitir lögun þú vilt (td á heimasíðu %s ).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr núverandi útgáfa
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Töf á flýtiminni útflutningur svar í sekúndum (0 eða tómt fyrir ekkert skyndiminni)
     DisableLinkToHelpCenter=Fela tengilinn <b>"Vantar þig aðstoð eða stuðning"</b> á innskráningarsíðu
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=Það er engin sjálfvirk umbúðir, þannig að ef lína er út af síðu á skjal vegna þess að of langur, þú verður að bæta þig flutning aftur í reit.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Lágmarks lengd
     LanguageFilesCachedIntoShmopSharedMemory=Skrá. Lang hlaðinn í samnýtt minni
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Dæmi með núverandi hlaupandi skipulag
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Listi yfir OpenDocument sniðmát framkvæmdarstjóra
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Dæmi um setningafræði: <br> c: \\ mydir <br> / Home / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> Til að vita hvernig á að búa odt skjalið sniðmát, áður en að geyma þá í þeim möppum, lesa wiki skjöl:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Lykill að nota Web Services (breytu &quot;dolibarrkey&q
     TestSubmitForm=Inntak próf mynd
     ThisForceAlsoTheme=Using this matseðill framkvæmdastjóri mun einnig nota eigið þema hennar hvað er val notanda. Einnig þetta valmynd framkvæmdastjóri sérhæft fyrir smartphones ekki virkar á öllum smartphone. Notaðu annan matseðill framkvæmdastjóri ef þú lendir í vandræðum á prenti.
     ThemeDir=Skinn skrá
    -ConnectionTimeout=Connexion tími
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Svar tími
     SmsTestMessage=Próf skilaboð frá PHONEFROM__ __ í __ PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Lykill að tryggja vefslóðir
    -NoSmsEngine=Nei SMS sendandi framkvæmdastjóri boði. SMS sendandi framkvæmdastjóri er ekki uppsett með dreifingu sjálfgefið (vegna þess að þeir ráðast á ytri birgir) en þú getur fundið nokkur á http://www.dolistore.com
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=Skoða sem PDF skjal
    -PDFDesc=Þú getur stillt hvert alþjóðlegt valkosti sem tengjast PDF kynslóð
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Reglur til að ryðja tölu kassa
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Breytur til að tryggja vefslóðir
     SecurityTokenIsUnique=Nota einstakt securekey breytu fyrir hvert slóð
     EnterRefToBuildUrl=Sláðu inn tilvísun til %s mótmæla
     GetSecuredUrl=Fá reiknað slóð
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Lykilorð
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Notendur & hópar
    +Module0Name=Notendur & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Í þriðja aðila
    -Module1Desc=Fyrirtæki og stjórnun tengiliðs
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Auglýsing
     Module2Desc=Auglýsing stjórnun
     Module10Name=Bókhald
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Tillögur
     Module20Desc=Auglýsing tillögunnar stjórnun
     Module22Name=Mass E-pósti
    @@ -495,7 +501,7 @@ Module23Desc=Eftirlit með notkun orku
     Module25Name=Viðskiptavinur Pantanir
     Module25Desc=Viðskiptavinur röð er stjórnun
     Module30Name=Kvittanir
    -Module30Desc=Reikninga og stjórnun kredit athugið fyrir viðskiptavini. Invoice's stjórnun fyrir birgja
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Birgjar
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Kauphöll er stjórnun afurða
     Module53Name=Þjónusta
     Module53Desc=Þjónusta's stjórnun
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Strikamerki er stjórnun
     Module56Name=Símtækni
     Module56Desc=Símtækni sameining
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=ClickToDial sameining
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Útgjöld og ferðir athugasemdir
     Module75Desc=Útgjöld og stjórnun ferðir athugið's
     Module80Name=Sendings
     Module80Desc=Sendings og stjórnun fæðingu þess er
    -Module85Name=Bankar og reiðufé
    +Module85Name=Banks and Cash
     Module85Desc=Stjórnun af banka eða reiðufé reikninga
    -Module100Name=ExternalSite
    -Module100Desc=Hafa ytri vef í Dolibarr matseðlum og skoða það í Dolibarr ramma
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman og SPIP
     Module105Desc=Mailman eða SPIP tengi fyrir einingu aðildarríkja
     Module200Name=LDAP
    -Module200Desc=LDAP skrá samstillingu
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke sameining
     Module240Name=Gögn frá landinu
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Gögn innflutning
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Stofnun meðlimir stjórnun
     Module320Name=RSS Feed
     Module320Desc=Bæta við RSS straum inni Dolibarr skjár síður
    -Module330Name=Bókamerki
    -Module330Desc=Bókamerki stjórnun
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar sameining
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Fjárframlög
     Module700Desc=Framlög í stjórnun
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=Fckeditor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Nota online Gravatar þjónusta (www.gravatar.com) til að sýna mynd af notendum og meðlimum (stofna með tölvupósti þeirra). Vantar internet
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind viðskipti viðbúnað
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-fyrirtæki
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sölu
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Benda á sölu
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Gagnagrunnur
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Lesa reikningum
    @@ -651,9 +661,9 @@ Permission32=Búa til / breyta vörur
     Permission34=Eyða vöru
     Permission36=Sjá / stjórna falinn vörur
     Permission38=Útflutningur vöru
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Eyða verkefni (sameiginleg verkefni og verkefnum sem ég hef samband vegna)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Lesa inngrip
     Permission62=Búa til / breyta inngrip
    @@ -686,7 +696,7 @@ Permission109=Eyða sendings
     Permission111=Lesa fjárhagslega reikninga
     Permission112=Búa til / breyta / eyða og bera saman viðskipti
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Útflutningur fundargerðir og reikningur staðhæfing
     Permission116=Millifærslur milli reikninga
     Permission117=Manage eftirlit dispatching
    @@ -694,15 +704,15 @@ Permission121=Lesa þriðja aðila sem tengist notandi
     Permission122=Búa til / breyta þriðja aðila sem tengist notandi
     Permission125=Eyða þriðja aðila sem tengist notandi
     Permission126=Útflutningur þriðja aðila
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Lesa þjónustuveitenda
     Permission147=Lesa Stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Loka birgir pantanir
     Permission188=Hætta við birgi pantanir
     Permission192=Búa til línur
     Permission193=Hætta við línur
    -Permission194=Lestu bandbreidd línur
    +Permission194=Read the bandwidth lines
     Permission202=Búa til ADSL tengingar
     Permission203=Panta tengingu pantanir
     Permission204=Panta tengingar
    @@ -750,12 +760,12 @@ Permission244=Sjá innihaldi falinn flokkar
     Permission251=Lesa aðra notendur og hópa
     PermissionAdvanced251=Lesa aðra notendur
     Permission252=Búa til / breyta öðrum notendum, hópa og permisssions
    -Permission253=Breyta aðra notendur lykilorð
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Búa til / breyta innri / ytri notendur og leyfi
     Permission254=Eyða eða gera öðrum notendum
     Permission255=Búa til / breyta eigin upplýsingar um notandann sinn
     Permission256=Breyta eigin lykilorð hans
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Lesa CA
     Permission272=Lesa reikningum
     Permission273=Útgáfudagur reikningum
    @@ -765,7 +775,7 @@ Permission283=Eyða tengiliðum
     Permission286=Útflutningur tengiliðir
     Permission291=Lesa gjaldskrá
     Permission292=Setja heimildir um gjaldtöku
    -Permission293=Breyta búninga gjaldskrá
    +Permission293=Modify customers tariffs
     Permission300=Lesa Bar númerin
     Permission301=Búa til / breyta barnum kóðar
     Permission302=Eyða númerin barnum
    @@ -787,11 +797,9 @@ Permission401=Lesa afsláttur
     Permission402=Búa til / breyta afsláttur
     Permission403=Staðfesta afsláttur
     Permission404=Eyða afsláttur
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Setja massa innflutningi af ytri gögn inn í gagnagrunn (gögn 
     Permission1321=Útflutningur viðskiptavina reikninga, eiginleika og greiðslur
     Permission1322=Reopen a paid bill
     Permission1421=Útflutningur viðskiptavina pantanir og eiginleika
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect hugsanleg stig
     DictionaryCanton=Ríki / Hérað
     DictionaryRegion=Svæði
    @@ -894,7 +902,7 @@ DictionaryVAT=VSK Verð
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Greiðsla skilyrði
     DictionaryPaymentModes=Greiðsla stillingar
    -DictionaryTypeContact=Hafðu tegundir
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (raf-og rafeindabúnaðarúrgang)
     DictionaryPaperFormat=Pappír snið
    @@ -908,47 +916,47 @@ DictionarySource=Uppruni tillögur / pantanir
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Einingar
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Skipulag vistuð
     SetupNotSaved=Setup not saved
     BackToModuleList=Til baka í mát lista
    -BackToDictionaryList=Til baka orðabækur lista
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VSK Stjórn
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=Sjálfgefið er fyrirhuguð VSK er 0 sem hægt er að nota til tilvikum eins og samtökum, einstaklingum OU lítil fyrirtæki.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Verð
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Stjórn
    -LocalTax1IsUsedDescES= RE hlutfall sjálfgefið þegar þú býrð til viðskiptavina, reikninga, pantanir o.þ.h. fylgja virku staðall reglu: <br> Ef Te kaupanda er ekki efni til OR OR sjálfgefið = 0. Lok reglu. <br> Ef kaupandi er tekið til OR þá RE sjálfgefið. Lok reglu. <br>
    -LocalTax1IsNotUsedDescES= Sjálfgefið er lagt til OR er 0. Lok reglu.
    -LocalTax1IsUsedExampleES= Á Spáni eru sérfræðingar með fyrirvara um nokkur ákveðna hluta af spænsku IAE.
    -LocalTax1IsNotUsedExampleES= Á Spáni eru faglega og samfélög og háð ákveðnum hlutum Spænska IAE.
    -LocalTax2ManagementES= IRPF Stjórn
    -LocalTax2IsUsedDescES= RE hlutfall sjálfgefið þegar þú býrð til viðskiptavina, reikninga, pantanir o.þ.h. fylgja virku staðall reglu: <br> Ef seljandi er ekki efni til IRPF, þá IRPF sjálfgefið = 0. Lok reglu. <br> Ef seljandi er með við IRPF þá IRPF sjálfgefið. Lok reglu. <br>
    -LocalTax2IsNotUsedDescES= Sjálfgefið er fyrirhuguð IRPF er 0. Lok reglu.
    -LocalTax2IsUsedExampleES= Á Spáni freelancers og sjálfstæða sérfræðinga sem veita þjónustu og fyrirtæki sem hafa valið skatt kerfi eininga.
    -LocalTax2IsNotUsedExampleES= Á Spáni eru bussines ekki skattskyldar kerfi eininga.
    +LocalTax1ManagementES=RE Stjórn
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Sjálfgefið er lagt til OR er 0. Lok reglu.
    +LocalTax1IsUsedExampleES=Á Spáni eru sérfræðingar með fyrirvara um nokkur ákveðna hluta af spænsku IAE.
    +LocalTax1IsNotUsedExampleES=Á Spáni eru faglega og samfélög og háð ákveðnum hlutum Spænska IAE.
    +LocalTax2ManagementES=IRPF Stjórn
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Sjálfgefið er fyrirhuguð IRPF er 0. Lok reglu.
    +LocalTax2IsUsedExampleES=Á Spáni freelancers og sjálfstæða sérfræðinga sem veita þjónustu og fyrirtæki sem hafa valið skatt kerfi eininga.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Velta
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Merki notaður við vanræksla, ef ekki þýðingu er að finna í kóða
     LabelOnDocuments=Merki um skjöl
    -NbOfDays=ATH daga
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Í lok mánaðar
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Gagnasafn notanda
     DatabasePassword=Gagnasafn lykilorð
     Tables=Töflur
     TableName=Tafla nafn
    -NbOfRecord=ATH skráa
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Bílstjóri tegund
     SummarySystem=System Information yfirlit
    @@ -996,7 +1006,7 @@ Skin=Skin þema
     DefaultSkin=Default húð þema
     MaxSizeList=Max lengd fyrir lista
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Skilaboð dagsins
     MessageLogin=Innskráning síðu skilaboð
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Varanleg leita mynd til vinstri valmynd
     DefaultLanguage=Sjálfgefið tungumál til að nota (tungumálið code)
     EnableMultilangInterface=Virkja Fjöltyng tengi
     EnableShowLogo=Sýna merki á vinstri valmynd
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Nafn
     CompanyAddress=Heimilisfang
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Eigandi bankareikning %s
     BankModuleNotActive=Bankareikninga mát ekki virkt
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Umburðarlyndi tafir fyrir viðvörun
    -DelaysOfToleranceDesc=Þessi skjár gerir þér kleift að tilgreina þola tafir áður en viðvörun er greint á skjá með picto %s  fyrir hvern seint í lotukerfinu.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Töf umburðarlyndi (í dögum) áður en viðvörun um tillögur til að loka
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Töf umburðarlyndi (í dögum) áður en viðvörun um tillögur billed ekki
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Umburðarlyndi töf (í dögum) áður en hann hringi á þjónusta að virkja
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Umburðarlyndi töf (í dögum) áður en hann hringi á útrunnið þjónusta
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Umburðarlyndi töf (í dögum) áður en hann hringi á ógreiddum reikningum birgir
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Umburðarlyndi töf (í dögum) áður en hann hringi á ógreiddum reikningum viðskiptavina
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Umburðarlyndi töf (í dögum) áður en viðvörun um yfirvofandi banka sættir
    -Delays_MAIN_DELAY_MEMBERS=Umburðarlyndi töf (í dögum) áður en viðvörun um seinkun Félagsgjaldið
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Umburðarlyndi töf (í dögum) áður en vakandi fyrir eftirlit leggja inn til að gera
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Aðrar færslur matseðill stjórna valfrjálst stika.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Öryggi endurskoðun viðburðir
    -Audit=Úttekt
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=Listi yfir Dolibarr öryggi viðburðir
     SecurityEventsPurged=Öryggi viðburðir hreinsa
    -LogEventDesc=Þú getur gert hér skráir þig inn Dolibarr öryggi viðburðir. Stjórnandi getur þá sjá efni þess í gegnum valmynd <b>System verkfæri - endurskoðun.</b> Aðvörun, getur þessi eiginleiki neyta mikið af gögnum í gagnagrunninum.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=Kerfi upplýsingar er ýmis tæknilegar upplýsingar sem þú færð í lesa aðeins háttur og sýnileg Aðeins kerfisstjórar.
     SystemAreaForAdminOnly=Þetta svæði er í boði fyrir notendur stjórnandi aðeins. Ekkert af Dolibarr leyfi getur dregið þessi mörk.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Þú getur valið hvert stika sem tengist Dolibarr útlit og feel hér
     AvailableModules=Available app/modules
     ToActivateModule=Til að virkja mát, fara á svæðinu skipulag (Home-> Uppsetning-> mát).
     SessionTimeOut=Tími út fyrir setu
    -SessionExplanation=Þessi tala tryggja þessi fundur mun aldrei falla úr gildi áður en þessari töf. En PHP sessoin stjórnun ekki tryggingu þessi fundur alltaf renna út eftir þessari töf: Þetta gerist ef kerfið til að hreinsa skyndiminni fundur er í gangi. <br> Ath: með neitun sérstakur kerfi, innra php ferli mun hreinsa fundur hvert <b>um %s  / %s </b> aðgangur en aðeins á aðgengi við annar fundur.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Laus kallar
    -TriggersDesc=Hrindir af stað eru skrár sem vilja breyta hegðun Dolibarr workflow einu sinni afrita inn í möppuna <b>htdocs / fela / kallar.</b> Þeir framkvæmi nýjar aðgerðir, kveikt á Dolibarr viðburðir (nýtt fyrirtæki sköpun, Reikningar löggilding, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Hrindir af stað í þessari skrá er óvirkur <b>the-NORUN</b> viðskeyti í þeirra nafni.
     TriggerDisabledAsModuleDisabled=Hrindir af stað í þessari skrá eru óvirk sem <b>einingin %s </b> er óvirk.
     TriggerAlwaysActive=Hrindir af stað í þessari skrá eru alltaf virk, hvað sem er virkjaður Dolibarr mát.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Mörk / Precision skipulag
    -LimitsDesc=Þú getur skilgreint takmörk, precisions og optimisations notaður við Dolibarr hér
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max brotum um verð eining
     MAIN_MAX_DECIMALS_TOT=Max brotum fyrir heildar verð
     MAIN_MAX_DECIMALS_SHOWN=Max brotum um verð birtist á skjánum (Bæta við <b>...</b> eftir þetta númer ef þú vilt sjá <b>...</b> þegar tala er minnkaður þegar sýnt á skjá)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Hrein einingaverð vöru
     TotalPriceAfterRounding=Samtals verð (net / VSK / incl skatt) eftir lokið máli mínu
     ParameterActiveForNextInputOnly=Breytu gildi fyrir næsta inntak aðeins
    -NoEventOrNoAuditSetup=Nei öryggi atburður hefur verið skráð enn. Þetta getur verið eðlilegt ef endurskoðun hefur ekki verið virkt á "skipulag - öryggi - endurskoðun" síðunni.
    -NoEventFoundWithCriteria=Nei öryggi atburður hefur fundist um slíka viðmiðun leit.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Sjá sveitarfélaga sendmail uppsetningu
     BackupDesc=Til að ljúka öryggisafrit af Dolibarr, verður þú að:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Eldri mappa ætti að vera geymd á öruggum stað.
     BackupDescY=The mynda sorphaugur skrá öxl vera geymd á öruggum stað.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Til að endurvekja a Dolibarr varabúnaður, verður þú að:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= Þessi regla er þvinguð <b>til %s </b> með virkt mát
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Þú verður að keyra þessa s
     YourPHPDoesNotHaveSSLSupport=SSL virka ekki í boði í PHP þinn
     DownloadMoreSkins=Fleiri skinn til að sækja
     SimpleNumRefModelDesc=Return tilvísunarnúmerið með snið %s yymm-NNNN þar YY er ári, mm er mánuður og NNNN er röð án holu og ekki endurstilla
    -ShowProfIdInAddress=Sýna professionnal persónuskilríki með heimilisföng á skjölum
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Algjör þýðing
    -MAIN_DISABLE_METEO=Slökkva meteo mynd
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Próf tenging til API
    -ProxyDesc=Sumar aðgerðir Dolibarr þarft að hafa Internet aðgang til að vinna. Skilgreindu hér breytur fyrir þetta. Ef Dolibarr framreiðslumaður er um sel, þá breytum segir Dolibarr hvernig aðgang að Internetinu í gegnum það.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Ytri aðgangur
     MAIN_PROXY_USE=Nota proxy-miðlara (annars beinan aðgang að internetinu)
     MAIN_PROXY_HOST=Nafn / Heimilisfang proxy-miðlara
     MAIN_PROXY_PORT=Port of proxy-miðlara
     MAIN_PROXY_USER=Innskráning til að nota proxy-miðlara
     MAIN_PROXY_PASS=Lykilorð til að nota proxy-miðlara
    -DefineHereComplementaryAttributes=Skilgreindu hér öll atributes, ekki þegar í boði sjálfgefið, og að þú viljir vera studd %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Fyllingar eiginleika
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Aðvörun, á sumum Linux kerfi, að senda tölvupóst úr bréfinu, sendu mail framkvæmd skipulag verður conatins valkostur-BA (breytu mail.force_extra_parameters í skrá php.ini þinn). Ef viðtakendur eru margir aldrei fá tölvupóst, reyna að breyta þessari PHP breytu með mail.force_extra_parameters =-BA).
     PathToDocuments=Path að skjölum
     PathDirectory=Listinn
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=%s viði útgáfa
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return lykilorð mynda samkvæmt innri Dolibarr reiknirit: 8 stafir sem innihalda hluti tölur og bókstafi í lágstafir.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=Netfang sem þarf til að búa til nýjan notanda
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Stofnanir mát skipulag
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Skjöl sniðmát
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Vatnsmerki á drögum að skjali
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Professional Id einstakt
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Óákveðinn greinir í ensku útflutningur hlekkur <b>til %s </b> snið er að finna á eftirfarandi tengil: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Óákveðinn greinir í ensku útflutningur hlekkur <b>ti
     BillsSetup=Kvittanir í mát skipulag
     BillsNumberingModule=Reikninga og lána athugasemdir tala mát
     BillsPDFModules=Invoice skjöl módel
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit athugið
     CreditNotes=Credit athugasemdir
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Stjórna Innskráning fyrir hvern meðlim
     AdherentMailRequired=Netfang sem þarf til að búa til nýja félagi
     MemberSendInformationByMailByDefault=Checkbox að senda póst staðfestingu á meðlimum (löggilding eða nýja áskrift) er sjálfgefið
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Skipulag
     LDAPGlobalParameters=Global breytur
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Samstilling próf vel
     LDAPSynchroKO=Tókst samstillingu próf
    -LDAPSynchroKOMayBePermissions=Tókst samstillingu próf. Athugaðu að connexion á miðlara sé rétt uppsettur og leyfa LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP tengingu við LDAP miðlara árangri (Server = %s , Port = %s )
     LDAPTCPConnectKO=TCP tengingu við LDAP miðlara mistókst (Server = %s , Port = %s )
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Tengja / Authentificate að LDAP miðlara mistókst (Server = %s , Port = %s , Admin = %s , Lykilorð = %s )
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP miðlara stillt fyrir útgáfa 3
     LDAPSetupForVersion2=LDAP miðlara stillt fyrir útgáfa 2
     LDAPDolibarrMapping=Dolibarr Kortlagning
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Tenging (samba, activedirectory)
     LDAPFieldLoginSambaExample=Dæmi: samaccountname
     LDAPFieldFullname=Firstname Nafn
     LDAPFieldFullnameExample=Dæmi: cn
    -LDAPFieldPasswordNotCrypted=Lykilorð crypted ekki
    -LDAPFieldPasswordCrypted=Lykilorð crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Dæmi: userPassword
     LDAPFieldCommonNameExample=Dæmi: cn
     LDAPFieldName=Nafn
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Dæmi gildi eru hannaðar fyrir <b>OpenLDAP</b> með eftirfarandi hlaðinn schemas: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Ef þú notar thoose gildi og OpenLDAP, breyta þínum LDAP config skrá <b>slapd.conf</b> að láta alla thoose schemas hlaðinn.
     ForANonAnonymousAccess=Til að staðfesta aðild (til a skrifa aðgangur til dæmis)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Vörur mát skipulag
     ServiceSetup=Þjónusta mát skipulag
     ProductServiceSetup=Vörur og Þjónusta einingar skipulag
     NumberOfProductShowInSelect=Max fjöldi vara í combos velja lista (0 = ótakmarkað)
    -ViewProductDescInFormAbility=Sjónræn framsetning lýsingar vara í formum (annars eins og tól almenningur)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode tegund til nota fyrir vörur
     SetDefaultBarcodeTypeThirdParties=Default barcode tegund til notkunar fyrir þriðju aðila
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sendi mát skipulag
     SendingsReceiptModel=Sending kvittun líkan
     SendingsNumberingModules=Sendings númera einingar
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Vörur afgreiðsla barst tala mát
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Ítarlegri ritstjóri
     ActivateFCKeditor=Virkja FCKeditor fyrir:
     FCKeditorForCompany=WYSIWIG sköpun / útgáfa af lýsingu companie og athugaðu
     FCKeditorForProduct=s WYSIWIG sköpun / útgáfa af vörum / þjónustu "lýsingu og athugaðu
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG sköpun / útgáfa af póstlista
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Tengsl tekist en gagnasafn lítur ekki að vera osCommerce gagnasafn (Key %s  fannst ekki í töflunni %s ).
    -OSCommerceTestOk=árangursrík Tenging við miðlara ' %s ' á gagnagrunni ' %s ' sem notanda ' %s '.
    -OSCommerceTestKo1=Tenging við miðlara ' %s ' ná árangri en% gagnagrunni 's' ekki næst.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Tenging við miðlara ' %s ' sem notanda ' %s ' mistókst.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Valmynd eytt
     Menus=Matseðlar
    @@ -1548,7 +1562,7 @@ DetailRight=Skilyrði sýna leyfisleysi valmyndir grár
     DetailLangs=Lang skrá nafn merki númer þýðingar
     DetailUser=Nemi / Ytri / Allar
     Target=Markmál
    -DetailTarget=Miða fyrir tengla (_blank efst opna nýjan glugga)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1: aðalvalmynd, 0: haus Valmynd&gt; 0 matseðill og undir valmyndinni)
     ModifMenu=Valmynd breyting
     DeleteMenu=Eyða Valmynd færslu
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VSK er vegna: <br> - Á afhendingu / greiðslum fyrir vöru
     OptionVatDebitOptionDesc=VSK er vegna: <br> - Á afhendingu / greiðslum fyrir vörur <br> - Á nótum (skuldfærslu) fyrir þjónustu
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Á afhendingu
     OnPayment=Um greiðslu
     OnInvoice=Á reikning
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Aðgerðir og dagskrá mát skipulag
     PasswordTogetVCalExport=Lykill að heimila útflutning hlekkur
     PastDelayVCalExport=Ekki flytja atburður eldri en
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Smelltu til að hringja mát skipulag
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sölu
     CashDeskSetup=Point of velta mát skipulag
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Reikning til að nota til að taka á móti peningum greiðslur
     CashDeskBankAccountForCheque= Reikning til að nota til að taka á móti greiðslum með því að stöðva
     CashDeskBankAccountForCB= Reikning til að nota til að taka á móti peningum greiðslur með kreditkortum
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bókamerki mát skipulag
    -BookmarkDesc=Þessi eining leyfir þér að stjórna bókamerki. Þú getur einnig bætt flýtileiðir einhverju Dolibarr síðum eða externale vefsíðum á vinstri valmyndinni.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Hámarksfjöldi bókamerki til að sýna í vinstri valmynd
     ##### WebServices #####
     WebServicesSetup=Webservices mát skipulag
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-fyrirtæki mát skipulag
     ##### Suppliers #####
     SuppliersSetup=Birgir mát skipulag
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project mát skipulag
     ProjectsModelModule=Project Skýrsla skjal líkan
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/is_IS/banks.lang b/htdocs/langs/is_IS/banks.lang
    index 6e9c427c3f9..b1a53b40503 100644
    --- a/htdocs/langs/is_IS/banks.lang
    +++ b/htdocs/langs/is_IS/banks.lang
    @@ -7,7 +7,7 @@ BankName=Nafn banka
     FinancialAccount=Reikningur
     BankAccount=Bankanúmer
     BankAccounts=Bankareikningar
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial reikning dómari
     AccountLabel=Financial reikning merki
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Reikningur heimilisfang
     BankAccountCountry=Reikningur landi
     BankAccountOwner=Eigandi reiknings Nafn
     BankAccountOwnerAddress=Eigandi reiknings Heimilisfang
    -RIBControlError=Heiðarleiki athuga gildi ekki. Þetta þýðir fyrir þennan reikning númer eru ekki lokið eða rangt (athugaðu landið, tölur og IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Búa til reikning
     NewBankAccount=Nýr reikningur
     NewFinancialAccount=New fjármagnsjöfnuði
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Hægt að sættast
     Conciliate=Samræmdu
     Conciliation=Sættir
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Hafa loka reikningum
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Millifærslu
     BankTransfers=Millifærslur
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Frá
     TransferTo=Til að
     TransferFromToDone=A flytja <b>úr %s  í %s  af %s %</b> s hefur verið skráð.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank eftirlit
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Sýna athuga innborgun berst
    -NumberOfCheques=ATH eftirlit
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Til baka á reikning
     ShowAllAccounts=Sýna allra reikninga
    -FutureTransaction=Færsla í futur. Engin leið til leitar sátta.
    -SelectChequeTransactionAndGenerate=Select / sía ávísanir til fela í innborgun stöðva móttöku og smelltu á &quot;Create.&quot;
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/is_IS/bills.lang b/htdocs/langs/is_IS/bills.lang
    index 760a6bf1fba..ae063e260ae 100644
    --- a/htdocs/langs/is_IS/bills.lang
    +++ b/htdocs/langs/is_IS/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma reikning
     InvoiceProFormaDesc=<b>Proforma reikningur</b> með mynd af a sannur reikning en hefur engar bókhalds gildi.
     InvoiceReplacement=Skipti reikningi
     InvoiceReplacementAsk=Skipti reikning fyrir reikning
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit athugið
     InvoiceAvoirAsk=Credit athugið að leiðrétta reikning
    -InvoiceAvoirDesc=<b>Kredit huga</b> er neikvæð Reikningar notuð til að leysa þá staðreynd að reikningur hefur sú upphæð sem er mismunandi en upphæð raunverulega greitt (vegna þess að viðskiptavinur greiða of mikið við villa, eða er ekki greidd að fullu síðan hann kom aftur sum vara til dæmis).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Eyða greiðslu
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Birgjar greiðslur
     ReceivedPayments=Móttekin greiðslur
     ReceivedCustomersPayments=Greiðslur sem berast frá viðskiptavinum
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Móttekin viðskiptavinum greiðslur til að sannreyna
     PaymentsReportsForYear=Greiðslur skýrslur fyrir %s
     PaymentsReports=Greiðslur skýrslur
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Greiðsla skilyrði
     PaymentAmount=Upphæð greiðslu
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Greiðsla hærri en áminning að borga
    -HelpPaymentHigherThanReminderToPay=Attention, greiðslu magn af einni eða fleiri reikninga er hærra en annars staðar til að borga. <br> Breyta færslu þína staðfesta annað og hugsa um að búa til kredit mið af umfram fengið fyrir hverja overpaid reikninga.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Flokka 'Greiddur'
     ClassifyPaidPartially=Flokka 'Greiddur hluta'
     ClassifyCanceled=Flokka 'Yfirgefinn'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Loka (launalaust)
     BillStatusClosedPaidPartially=Greiddur (að hluta)
     BillShortStatusDraft=Víxill
     BillShortStatusPaid=Greiddur
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Greiddur
     BillShortStatusCanceled=Yfirgefin
     BillShortStatusValidated=Staðfestar
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Loka
     BillShortStatusClosedPaidPartially=Greiddur (að hluta)
     PaymentStatusToValidShort=Til að sannprófa
    -ErrorVATIntraNotConfigured=Intracommunautary VSK númer ekki enn skilgreint
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Engar greiðslur sjálfgefna stillingu skilgreind. Fara til reiknings mát skipulag til festa this.
     ErrorCreateBankAccount=Stofna bankareikning, þá fara til Skipulag pallborð af Invoice mát til að skilgreina greiðslu stillingar
     ErrorBillNotFound=Invoice %s  er ekki til
    -ErrorInvoiceAlreadyReplaced=Villa, þú reyna til setja í gildi um reikning til að skipta um reikning %s . En þetta eitt hefur þegar verið skipt út af% Reikningar s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Villa, afslátt þegar notaður
     ErrorInvoiceAvoirMustBeNegative=Villa, leiðrétta reikning verður að hafa neikvæð upphæð
     ErrorInvoiceOfThisTypeMustBePositive=Villa, this tegund af reikningi þarf að hafa jákvæð upphæð
     ErrorCantCancelIfReplacementInvoiceNotValidated=Villa, get ekki hætt við reikning sem hefur verið skipt út fyrir annan reikning sem er enn í stöðu drög
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Frá
     BillTo=Senda á
     ActionsOnBill=Actions reikning
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad viðskiptavina
     ConfirmClassifyPaidPartiallyReasonProductReturned=Vörur aftur að hluta
     ConfirmClassifyPaidPartiallyReasonOther=Upphæð yfirgefin fyrir annarri ástæðu
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Þetta val er mögulegt ef reikningurinn hafi verið veitt með viðeigandi athugasemd. (Dæmi «Aðeins skatta sem svarar til verðs sem hafa verið reyndar greiddur veitir rétt til frádráttar»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Í sumum löndum, þetta val gæti verið mögulegt ef reikningurinn inniheldur réttar Ath.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Notaðu þetta val ef allar aðrar ekki föt
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>slæmur viðskiptavinur</b> er a viðskiptavinur sem neita að borga skuldir hans.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Þetta val er notaður þegar greiðsla er ekki lokið vegna þess að sum vara voru aftur
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Notaðu þetta val ef allar aðrar ekki málið, til dæmis í eftirfarandi aðstæðum: <br> - Greiðsla ekki lokið vegna þess að sum vara voru send til baka <br> - Upphæð hélt líka mikilvægt vegna þess að afsláttur var gleymt <br> Í öllum tilvikum, magn yfir-krafa verður að leiðrétta í kerfinu bókhalds því að búa til kredit nóta.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Önnur
     ConfirmClassifyAbandonReasonOtherDesc=Þetta val mun vera notað í öllum öðrum tilvikum. Til dæmis vegna þess að þú ætlar að búa til skipta reikningi.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Staðfesta Reikningar
     UnvalidateBill=Unvalidate reikning
    -NumberOfBills=NB af reikningum
    -NumberOfBillsByMonth=Nb reikninga eftir mánuði
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Upphæð á reikningi
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Upphæð á reikningi eftir mánuði (eftir skatta)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Sýna reikning
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Viðskiptavinur reikninga og línur reiknings er
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Viðskiptavinur reikninga og greiðslur
    -ExportDataset_invoice_1=Viðskiptavinur reikningum lista og línur reiknings er
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Viðskiptavinur reikninga og greiðslur
     ProformaBill=Proforma Bill:
     Reduction=Minnkun
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill heimilisfang
    -HelpEscompte=Þessi afsláttur er afsláttur veittur til viðskiptavina vegna greiðslu þess var áður litið.
    -HelpAbandonBadCustomer=Þessi upphæð hefur verið yfirgefin (viðskiptavinur til vera a slæmur viðskiptavina) og er talið að sérstakar lausir.
    -HelpAbandonOther=Þessi upphæð hefur verið yfirgefin síðan það var villa (vitlaust viðskiptavinar eða reikning í stað með öðrum til dæmis)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Greiðsla persónuskilríki
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Engin reikningur valinn
     CloneInvoice=Klóna Reikningar
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Aðgerð fatlaður vegna þess að reikningur hefur verið skipt
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=ATH greiðslna
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split afslátt í tvö
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Inntak upphæð fyrir hverja tvo hluta:
    -TotalOfTwoDiscountMustEqualsOriginal=Samtals tvö ný afsláttur verður jafn upprunaleg afsláttur upphæð.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Svipaðir Reikningar
     RelatedBills=Svipaðir reikningum
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Athuga
     PaymentTypeShortCHQ=Athuga
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=Á línunni greiðslu
    -PaymentTypeShortVAD=Á línunni greiðslu
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Drög
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bankaupplýsingar
     BankCode=Bankakóði
    -DeskCode=Skrifborð kóða
    +DeskCode=Office code
     BankAccountNumber=Reikningsnúmer
    -BankAccountNumberKey=Lykill
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN númer
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=BIC / SWIFT númer
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Greiðslu með millifærslu á eftirfarandi b
     VATIsNotUsedForInvoice=* Non viðeigandi VSK-list-293B af CGI
     LawApplicationPart1=Með því að beita lögum 80,335 af 12/05/80
     LawApplicationPart2=vöruna enn eign
    -LawApplicationPart3=seljanda þar til lokið gjaldkeri af
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=verð þeirra.
     LimitedLiabilityCompanyCapital=SARL með höfuðborg
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Eftirlit
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Nota viðskiptavina greiðanda Heimilisfang staðinn þriðja aðila netfang sem viðtakandi fyrir reikningum
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Sýna alla ógreiddra reikninga
     ShowUnpaidLateOnly=Sýna seint ógreiddum reikningi aðeins
     PaymentInvoiceRef=Greiðsla Reikningar %s
    @@ -474,21 +476,22 @@ Reported=Seinkun
     DisabledBecausePayments=Ekki hægt þar sem það er einhvers greiðslur
     CantRemovePaymentWithOneInvoicePaid=Get ekki fjarlægt greiðslu þar er að minnsta kosti á reikning flokkast borgað
     ExpectedToPay=Væntanlegur greiðslu
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Borgað af þessari greiðslu
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Allt Reikningar með ekki áfram að borga verður sjálfkrafa lokað til stöðu &quot;borgað&quot;.
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice líkan Crabe. A heill Reikningar líkan (styður VSK valkostur, afslætti, greiðslur skilyrði, merki, osfrv ..)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/is_IS/cashdesk.lang b/htdocs/langs/is_IS/cashdesk.lang
    index 8628470e895..3d11712f2e8 100644
    --- a/htdocs/langs/is_IS/cashdesk.lang
    +++ b/htdocs/langs/is_IS/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Sýna fyrirtæki
     ShowStock=Sýna vöruhús
     DeleteArticle=Smelltu til að fjarlægja þessa grein
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Benda á sölu
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/is_IS/commercial.lang b/htdocs/langs/is_IS/commercial.lang
    index e01a89dc3d3..640def520a2 100644
    --- a/htdocs/langs/is_IS/commercial.lang
    +++ b/htdocs/langs/is_IS/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Símtal
     ActionAC_FAX=Senda símbréfi
     ActionAC_PROP=Senda tillögu með tölvupósti
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Fundir
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Senda viðskiptavinur reikning í pósti
    @@ -72,8 +73,8 @@ StatusProsp=Prospect stöðu
     DraftPropals=Drög auglýsing tillögur
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/is_IS/companies.lang b/htdocs/langs/is_IS/companies.lang
    index ff515adb735..7040b6295b3 100644
    --- a/htdocs/langs/is_IS/companies.lang
    +++ b/htdocs/langs/is_IS/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Veldu þriðja aðila
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Eyða tengilið
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New þriðja aðila
    -MenuNewCustomer=Nýr viðskiptavinur
    -MenuNewProspect=Nýjar horfur
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New Einstaklingur
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Í þriðja aðila samband
     Company=Fyrirtæki
     CompanyName=Nafn fyrirtækis
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Stofnanir
    -CountryIsInEEC=Landið er inni Evrópubandalagið
    -ThirdPartyName=Í þriðja aðila Nafn
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Þriðji aðili
    -ThirdParties=Í þriðja aðila
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Horfur
     ThirdPartyProspectsStats=Horfur
     ThirdPartyCustomers=Viðskiptavinir
     ThirdPartyCustomersStats=Viðskiptavinir
     ThirdPartyCustomersWithIdProf12=Viðskiptavinur með %s  eða %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Í þriðja aðila tegund
    +ThirdPartyType=Type of company
     Individual=Einstaklingur
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Móðurfélag
     Subsidiaries=Dótturfélög
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Staða
    -DefaultLang=Tungumál sjálfgefið
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Tillögur
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Setningafræði er í gildi
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Þessi viðskiptavinur hefur afslátt <b>af %s %%</b>
     CompanyHasNoRelativeDiscount=Þessi viðskiptavinur hefur ekki miðað afsláttur sjálfgefið
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Þessi viðskiptavinur er enn kredit athugasemdum eða fyrri innstæður <b>fyrir %s  %s </b>
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Birgir
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Breyta tengilið / netfang
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Eyða fyrirtæki
     PersonalInformations=Persónuupplýsingar
     AccountancyCode=Accounting account
    -CustomerCode=Viðskiptavinur númer
    -SupplierCode=Vendor code
    -CustomerCodeShort=Viðskiptavinur númer
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Viðskiptavinur númer og einstakt fyrir alla viðskiptavini
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Áskilið ef þriðji aðili sem viðskiptavinur eða horfur
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Gildistími stjórnað af mát
    -ThisIsModuleRules=Þetta er regla fyrir þessa einingu
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect samband
     CompanyDeleted=Fyrirtæki " %s " eytt úr gagnagrunninum.
     ListOfContacts=Listi yfir tengiliði
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=Listi yfir þriðja aðila
    -ShowCompany=Show third party
    +ListOfContactsAddresses=Listi yfir tengiliði
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show samband
     ContactsAllShort=Öll (síu)
     ContactType=Hafðu tegund
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Þessi tengiliður er ekki við tengilið fyrir hvaða a
     NoContactForAnyContract=Þessi tengiliður er ekki við tengilið fyrir samningi
     NoContactForAnyInvoice=Þessi tengiliður er ekki við tengilið fyrir reikning
     NewContact=Nýr tengiliður
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=tengiliðir mínir
     Capital=Capital
     CapitalOf=Capital af %s
     EditCompany=Breyta fyrirtæki
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Athuga
    -VATIntraCheckDesc=<b>Á%</b> tengilinn <b>s</b> leyfir þér að spyrja european VSK afgreiðslumaður þjónustu. Ytri aðgangur frá miðlara er krafist fyrir þessa þjónustu til að vinna.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Athugaðu Intracomunnautary virðisaukaskatt á Framkvæmdastjórn Evrópusambandsins síða
    -VATIntraManualCheck=Þú getur einnig athugað handvirkt af european vef <a href="%s" target="_blank"> %s </a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Athuga ekki hægt. Athugaðu þjónusta er ekki veitt af aðildarríki ( %s ).
    -NorProspectNorCustomer=Né möguleika né viðskiptavinur
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Starfsfólk
     ProspectLevelShort=Möguleiki
     ProspectLevel=Prospect möguleiki
    @@ -387,12 +387,12 @@ ExportCardToFormat=Útflutningur kort til snið
     ContactNotLinkedToCompany=Hafðu tengist ekki til þriðja aðila
     DolibarrLogin=Dolibarr Innskráning
     NoDolibarrAccess=Nei Dolibarr aðgang
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Tengiliðir og eignir
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Verðlag
     DeliveryAddress=Afhending heimilisfang
     AddAddress=Bæta við heimilisfangi
    @@ -402,16 +402,16 @@ DeleteFile=Eyða skrá
     ConfirmDeleteFile=Ertu viss um að þú viljir eyða þessari skrá?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Upplýsingar um fjárhagsársins
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Byrjun mánuði fjárhagsársins
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Listi yfir horfur
    -ListCustomersShort=Listi yfir viðskiptavini
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Samtals einstaka þriðja aðila
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Opnaðu
     ActivityCeased=Lokað
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Viðskiptavinur / birgir númerið er ókeypis. Þessi kóði getur breytt hvenær sem er.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/is_IS/dict.lang b/htdocs/langs/is_IS/dict.lang
    index 1dc35ef040d..0def5cf30a7 100644
    --- a/htdocs/langs/is_IS/dict.lang
    +++ b/htdocs/langs/is_IS/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard-eyjar og McDonald
     CountryVA=Páfagarði (Vatican City State)
     CountryHN=Hondúras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=Indland
     CountryID=Iceland
     CountryIR=Íran
    @@ -131,7 +131,7 @@ CountryKI=Kíribatí
     CountryKP=Norður-Kórea
     CountryKR=Suður-Kórea
     CountryKW=Kúveit
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Lettland
     CountryLB=Líbanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongólía
     CountryMS=Montserrat
     CountryMZ=Mósambík
    -CountryMM=Birmania (Burma)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibía
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trínidad og Tóbagó
     CountryTR=Tyrkland
     CountryTM=Turkmenistan
    -CountryTC=Turks og Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Túvalú
     CountryUG=Úganda
     CountryUA=Úkraína
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rúpíur
     CurrencySingMUR=Mauritius rúpíur
     CurrencyNOK=Norska krones
    -CurrencySingNOK=Norsk króna
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian denari
     CurrencyUSD=US dollarar
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/is_IS/ecm.lang b/htdocs/langs/is_IS/ecm.lang
    index c8d3d6fc5cb..b91336dc4a6 100644
    --- a/htdocs/langs/is_IS/ecm.lang
    +++ b/htdocs/langs/is_IS/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=ATH gagna í möppu
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Listinn
     ECMSectionManual=Handbók skrá
     ECMSectionAuto=Sjálfvirk skrá
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Engin skrá búin til
     ShowECMSection=Sýna skrá
     DeleteSection=Fjarlægja möppu
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/is_IS/errors.lang b/htdocs/langs/is_IS/errors.lang
    index bb34f5e8452..0d03520055a 100644
    --- a/htdocs/langs/is_IS/errors.lang
    +++ b/htdocs/langs/is_IS/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat='Á %s' gildi hefur rangt snið dagsetningar
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Tókst ekki að skrifa í möppunni %s
     ErrorFoundBadEmailInFile=Stofna rangt netfang setningafræði fyrir %s  línur í skrá (td línu %s  með email = %s )
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Sumir Nauðsynlegir reitir voru ekki fylltir.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Ekki tókst að búa til möppu. Athugaðu að vefþjóninn notandi hefur réttindi til að skrifa inn Dolibarr skjöl skrá. Ef viðfang <b>safe_mode</b> er virkt á þessu PHP, athuga hvort Dolibarr PHP skrár á nú á netþjóninn notandi (eða hóp).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=<b>Akur %s </b> verður ekki innihalda sértákn.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Nei bókhalds mát virkja
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP samsvörun er ekki lokið.
     ErrorLDAPMakeManualTest=A. LDIF skrá hefur verið búin til í %s . Prófaðu að hlaða það handvirkt úr stjórn lína að hafa meiri upplýsingar um villur.
    -ErrorCantSaveADoneUserWithZeroPercentage=Get ekki vistað aðgerð með "statut ekki farinn að" ef reitinn "gert með því að" er einnig fyllt.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref notað sköpun er þegar til.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript þarf ekki að vera óvirkur til að hafa þennan möguleika að vinna. Til að virkja / slökkva Javascript, fara í valmynd Heim-> Uppsetning-> Skjár.
     ErrorPasswordsMustMatch=Bæði tegund lykilorð verður að samsvara hvor öðrum
    -ErrorContactEMail=Tæknilegt villa kom upp. Vinsamlegast hafðu samband við kerfisstjóra til að fylgja email <b>%s</b> en veita merkjamál villa <b>%s</b> í skilaboðin, eða jafnvel enn betri með því að bæta skjár afrit af þessari síðu.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong gildi fyrir reitinn <b>númer %s </b> (gildi <b>' %s '</b> er ekki það sama ríkisstjóratíð <b>reglu %s )</b>
     ErrorFieldValueNotIn=Rangt gildi fyrir sviði númer <b>%s ('%s</b> &quot;gildi er ekki gildi í boði í <b>​​%s</b> svið <b>%s</b> borð)
     ErrorFieldRefNotIn=Rangt gildi fyrir sviði númer <b>%s</b> ('á <b>%s</b> &quot;gildi er ekki <b>%s</b> núverandi dómari)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not 'fær til setja í g
     ErrorSpecialCharNotAllowedForField=Sérstafir eru ekki leyfðar í reitinn " %s "
     ErrorNumRefModel=Vísun til staðar í gagnagrunninum ( %s ) og er ekki með þessari tala reglu. Fjarlægja færslu eða endurnefna þær tilvísun til að virkja þessa einingu.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Villa á grímu
     ErrorBadMaskFailedToLocatePosOfSequence=Villa, gríma án fjölda röð
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Villa, slæmt endurstilla gildi
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Villa. Veldu amk eina færslu.
    -ErrorDeleteNotPossibleLineIsConsolidated=Eyða ekki hægt vegna þess að færsla er tengd við banka transation sem er conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s er úthlutað til annars þriðja
     ErrorFailedToSendPassword=Tókst ekki að senda lykilorð
     ErrorFailedToLoadRSSFile=Ekki til að fá RSS straum. Reyndu að bæta stöðugt MAIN_SIMPLEXMLLOAD_DEBUG ef villuskilaboð veitir ekki nægar upplýsingar.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Notandi með <b>notandanafn %s </b> fannst ekki.
     ErrorLoginHasNoEmail=Þessi notandi hefur ekki netfang. Aðferð aflýst.
     ErrorBadValueForCode=Bad gerðir gildi fyrir kóða. Prófaðu aftur með nýtt gildi ...
     ErrorBothFieldCantBeNegative=Fields %s og %s getur ekki verið bæði neikvæð
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Notandi Reikningur <b>%s</b> notað til að framkvæma vefur framreiðslumaður hefur ekki leyfi til að
     ErrorNoActivatedBarcode=Nei barcode gerð virk
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bókamerki með þessum titli eða þessa miða (
     WarningPassIsEmpty=Viðvörun Skráð lykilorð er tóm. Þetta er öryggis gat. Þú ættir að setja inn lykilorð til að gagnasafninu og breyta conf.php þinni til að endurspegla þessa.
     WarningConfFileMustBeReadOnly=Aðvörun, skrá samsk <b>(htdocs / conf / conf.php)</b> er hægt að skrifa of mikið af vefþjóni. Þetta er alvarlegur öryggi gat. Breyta leyfi á skrá til að vera í lesa aðeins ham fyrir stýrikerfi notandi notar netþjóninn. Ef þú notar Windows og FAT snið fyrir diskinn þinn, þú verður að vita að þetta skráarkerfi leyfir ekki að bæta við heimildum á skrá, svo má ekki vera fullkomlega öruggur.
     WarningsOnXLines=Viðvaranir <b>á %s </b> uppspretta línur
    -WarningNoDocumentModelActivated=Engin fyrirmynd fyrir kynslóð skjal hefur verið virkjuð. A líkan vilja vera choosed sjálfgefið þar til þú skoðar einingin uppsetningu þína.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=Öll öryggi viðvaranir (sýnileg notendum admin eingöngu) verða áfram virkur eins lengi og varnarleysi er til staðar (eða þessi fasti MAIN_REMOVE_INSTALL_WARNING er bætt í Uppsetning-> Annað skipulag).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/is_IS/help.lang b/htdocs/langs/is_IS/help.lang
    index 4d21ae44b0b..917a3523612 100644
    --- a/htdocs/langs/is_IS/help.lang
    +++ b/htdocs/langs/is_IS/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online rauntíma / fjarlægur styðja
     OtherSupport=Annar stuðningur
     ToSeeListOfAvailableRessources=Til að hafa samband / sjá lista yfir auðlindir:
     HelpCenter=Hjálparmiðstöð AdWords
    -DolibarrHelpCenter=Dolibarr aðstoð og stuðning sent
    -ToGoBackToDolibarr=Annars skaltu smella <a href="%s">hér til að nota Dolibarr</a>
    -TypeOfSupport=Heimild stuðning
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Samfélag (frítt)
     TypeSupportCommercial=Auglýsing
     TypeOfHelp=Tegund
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Nýtni
     TypeHelpOnly=Hjálp aðeins
     TypeHelpDev=Hjálp + Development
    -TypeHelpDevForm=Hjálp + Þróun + Myndun
    -ToGetHelpGoOnSparkAngels1=Sum fyrirtæki geta afla a fljótur (stundum strax) og skilvirkari netinu styðja með því að taka stjórn á tölvunni þinni. Slík framreiðslu má finna <b>á %s </b> vefur staður:
    -ToGetHelpGoOnSparkAngels3=Þú getur líka farið til lista yfir alla tiltæka þjálfarar fyrir Dolibarr, því að smella á hnappinn
    -ToGetHelpGoOnSparkAngels2=Stundum er ekkert fyrirtæki sem til eru um þessar mundir þú gera leitina, hugsa svo til að breyta síu til að leita að "allar upplýsingar". Þú verður að vera fær um að senda fleiri beiðnir.
    -BackToHelpCenter=Annars skaltu smella hér til að fara <a href="%s">til baka til að hjálpa miðstöð heimasíðu</a> .
    -LinkToGoldMember=Þú getur hringt í einn þjálfara preselected eftir Dolibarr fyrir þitt tungumál ( %s ) með því að smella Búnaður hans (staða og hámarksverð eru sjálfkrafa uppfærðar):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Styður tungumálum
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/is_IS/holiday.lang b/htdocs/langs/is_IS/holiday.lang
    index 381744c546d..2f77fbcbe16 100644
    --- a/htdocs/langs/is_IS/holiday.lang
    +++ b/htdocs/langs/is_IS/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Upphafsdagur
     DateFinCP=Lokadagur
    @@ -15,13 +15,18 @@ ApprovedCP=Samþykkt
     CancelCP=Hætt við
     RefuseCP=Neitaði
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Lýsing
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Breyta
     DeleteCP=Eyða
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Ástæða
     UserCP=Notandi
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/is_IS/install.lang b/htdocs/langs/is_IS/install.lang
    index b9b09c6d06b..946f3a814cc 100644
    --- a/htdocs/langs/is_IS/install.lang
    +++ b/htdocs/langs/is_IS/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Fylgdu leiðbeiningunum skref fyrir skref.
     MiscellaneousChecks=Undanfarar stöðva
     ConfFileExists=Stillingar <b>skrá %s </b> til.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=<b>Stillingar %s  er</b> ekki til og gat ekki búið til!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=<b>Stillingarskráin %s </b> getur verið búinn til.
    -ConfFileIsNotWritable=<b>Stillingarskráin %s </b> er ekki rétta aðgangsheimild. Athugaðu heimildir. Fyrir fyrsta sett verður upp á netþjóninn þinn verði veitt til að geta skrifað inn í þessa mynd á ferli stillingar ("chmod 666" til dæmis á Unix eins og OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=<b>Stillingarskráin %s </b> er writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload allar upplýsingar úr skrá stillingu.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Þetta PHP styður fundur.
     PHPSupportPOSTGETOk=Þetta PHP styður breytur POST og FÁ.
    -PHPSupportPOSTGETKo=Það er hægt PHP skipulag þinn styður ekki breytur POST og / eða FÁ. Athugaðu <b>variables_order</b> þinn breytu í php.ini.
    -PHPSupportGD=Þetta PHP stuðning GD grafísku aðgerðir.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=Þetta PHP stuðning UTF8 virka.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max fundur minnið er stillt <b>á %s .</b> Þetta ætti að vera nóg.
    -PHPMemoryTooLow=Your PHP max fundur minnið er stillt <b>á %s </b> bæti. Þetta ætti að vera of lág. Breyta <b>php.ini</b> þinn til að stilla <b>memory_limit</b> breytu til að minnsta <b>kosti %s </b> bæti.
    -Recheck=Smelltu hér til að fá fleiri significative próf
    -ErrorPHPDoesNotSupportSessions=PHP uppsetningu þinn styður ekki fundur. Þessi eiginleiki er nauðsynlegt til að gera Dolibarr vinna. Athugaðu PHP uppsetningu þína.
    -ErrorPHPDoesNotSupportGD=PHP uppsetningu þinn styður ekki myndrænt fall GD. Nei línurit verður í boði.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=PHP uppsetningu þinn styður ekki UTF8 virka. Dolibarr get ekki virka rétt. Leysa þetta áður installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Listinn %s  er ekki til.
    -ErrorGoBackAndCorrectParameters=Fara aftur á bak og leiðrétta rangar breytur.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Þú gætir hafa slegið rangt gildi fyrir breytu ' %s '.
     ErrorFailedToCreateDatabase=Ekki tókst að búa til gagnagrunn ' %s '.
     ErrorFailedToConnectToDatabase=Tókst ekki að tengjast við gagnagrunn ' %s '.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP útgáfa of gamall. Útgáfa %s  er krafist.
    -ErrorConnectedButDatabaseNotFound=Tenging við miðlara árangri en %s  gagnagrunninum 'fannst ekki.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=%s  Database 'er þegar til.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Ef gagnagrunnur er ekki til, farðu til baka og athuga möguleika á "Búa til gagnagrunn".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Ef skráð er þegar til, farðu til baka og veljið "Create gagnagrunninum" valmöguleikann.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using leyfi
     ConfigurationFile=Stillingar skrá
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Gagnasafn
     DatabaseType=Gagnasafn tegund
     DriverType=Bílstjóri tegund
     Server=Server
    -ServerAddressDescription=Nafn eða ip tölu fyrir framreiðslumaður gagnasafn, venjulega 'localhost' þegar gagnasafn framreiðslumaður er hýst á sama miðlara en vefþjóninum
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Gagnasafn framreiðslumaður höfn. Halda tómur ef ekki þekkt.
     DatabaseServer=Gagnasafn miðlara
     DatabaseName=Gagnasafn nafn
    -DatabasePrefix=Gagnasafn forskeyti borð
    -AdminLogin=Innskráning fyrir Dolibarr gagnasafn eigandi.
    -PasswordAgain=Sláðu lykilorðið inn aftur í annað sinn
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Lykilorð fyrir Dolibarr gagnasafn eigandi.
     CreateDatabase=Búa til gagnasafn
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Gagnasafn framreiðslumaður - Ofurpaur aðgang
    -CheckToCreateDatabase=Hakaðu í reitinn ef gagnagrunnur er ekki til og því þarf að skapa. <br> Í þessum tilfellum verður þú að fylla tenging / lykilorð til Ofurpaur reikning neðst á þessari síðu.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Innskráning á notanda leyft að búa til nýja gagnagrunna eða nýr notandi, gagnslaus ef gagnasafninu og gagnasafn innskráningu þegar til (eins og þegar þú ert haldin af vefþjónusta fyrir hendi).
    -KeepEmptyIfNoPassword=Leyfi tómur ef notandi hefur ekki aðgangsorð (forðast þetta)
    -SaveConfigurationFile=Vista gildi
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server tengingu
     DatabaseCreation=Gagnasafn sköpun
     CreateDatabaseObjects=Gagnasafn mótmæla stofnun
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Búa til erlendra lykla og Vísitölur fyrir% borð s
     OtherKeysCreation=Erlend lykla og Vísitölur sköpun
     FunctionsCreation=Aðgerðir sköpun
     AdminAccountCreation=Administrator Innskráning sköpun
    -PleaseTypePassword=Vinsamlega skrifaðu inn lykilorð, er tómt lykilorð ekki leyft!
    -PleaseTypeALogin=Vinsamlega skrifaðu inn notandanafn!
    -PasswordsMismatch=Lykilorð ólík, vinsamlegast reyndu aftur!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Lok skipulag
     SystemIsInstalled=Þessi uppsetning er lokið.
     SystemIsUpgraded=Dolibarr hefur verið uppfærð með góðum árangri.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Þú þarft að stilla Dolibarr til föt þinn af nau
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Fara til Dolibarr
     GoToSetupArea=Fara til Dolibarr (skipulag svæði)
    -MigrationNotFinished=Útgáfa af gagnagrunni er ekki alveg upp til dagsetning, svo þú verður að keyra uppfærslu ferlið aftur.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Fara til uppfærsla síðu aftur
     WithNoSlashAtTheEnd=Án rista "/" í lok
    -DirectoryRecommendation=Það er recommanded að nota skrá utan möppuna á vefsíðum þínum.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Þegar til
     DolibarrAdminLogin=Dolibarr admin Innskráning
    -AdminLoginAlreadyExists=reikningur <b>' %s </b> Dolibarr stjórnandi' er þegar til.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Aðvörun, vegna öryggis, þegar setja upp eða uppfæra er heill, þá ættir þú að fjarlægja <b>setja möppu eða gefa henni nýtt heiti með hana til install.lock í því skyni að koma í veg fyrir notkun þess illgjarn.</b>
    -FunctionNotAvailableInThisPHP=Ekki í boði á þessari PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Veldu fólksflutninga handrit
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script vinnslu
     ChooseYourSetupMode=Veldu uppsetningu háttur þinn og smelltu á "Start" ...
     FreshInstall=Fresh setja
    -FreshInstallDesc=Notaðu þessa stillingu ef þetta er þinn fyrstur setja. Ef ekki, this háttur getur viðgerð á ófullnægjandi fyrri uppsetningum, en ef þú vilt uppfæra þína útgáfu, veldu "Upgrade" ham.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Uppfærsla
     UpgradeDesc=Notaðu þessa stillingu ef þú hefur skipt út gömlum Dolibarr skrár með skrá úr nýrri útgáfu. Þetta mun uppfæra gagnagrunninn og gögn.
     Start=Byrja
     InstallNotAllowed=Skipulag leyfa ekki með leyfi <b>conf.php</b>
     YouMustCreateWithPermission=Þú verður að búa til skrána %s  og setja skrifa leyfi á það fyrir vefþjón á meðan setja ferli.
    -CorrectProblemAndReloadPage=Vinsamlegast lagaðu vandamál og ýta á F5 til að endurhlaða síðunni.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Þegar flytja
     DatabaseVersion=Gagnasafn útgáfa
     ServerVersion=Gagnasafn framreiðslumaður útgáfa
     YouMustCreateItAndAllowServerToWrite=Þú verður að búa til þessa möppu og gera ráð fyrir the vefur framreiðslumaður að skrifa inn í það.
     DBSortingCollation=Eðli flokkun þess
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Þú biður að búa til <b>gagnasafn %s ,</b> en fyrir þetta, Dolibarr þarf til að tengjast við <b>miðlara %s </b> með frábær <b>notanda %s </b> aðgangsheimildir.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Þú biður að búa til gagnasafn <b>innskráningu %s ,</b> en fyrir þetta, Dolibarr þarf til að tengjast við <b>miðlara %s </b> með frábær <b>notanda %s </b> aðgangsheimildir.
    -BecauseConnectionFailedParametersMayBeWrong=Eins og tengingin tókst ekki, vélar eða frábær breytur notandinn þarf að vera rangt.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Munaðarlaus greiðslu uppgötva af% aðferð s
     RemoveItManuallyAndPressF5ToContinue=Fjarlægja hana handvirkt og ýta á F5 til að halda áfram.
     FieldRenamed=Field endurnefna
    -IfLoginDoesNotExistsCheckCreateUser=Ef tenging er ekki til enn, verður þú að athuga möguleika á "Búa til notanda"
    -ErrorConnection=Server <b>" %s ",</b> gagnasafn nafn <b>" %s ",</b> tenging <b>" %s ",</b> eða gagnasafn lykilorð kann að vera rangt eða PHP viðskiptavinur útgáfa getur verið of gömul miðað við gagnagrunn útgáfa.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Mælt val til setja í embætti <b>útgáfa %s  er%</b> þín núverandi útgáfa <b>s</b>
     InstallChoiceSuggested=<b>Setja val leiðbeinandi við embætti.</b>
    -MigrateIsDoneStepByStep=Sem miðað útgáfa (%s) hefur skarð af nokkrum útgáfum, svo setja töframaður mun koma aftur að stinga upp á næsta fólksflutningum þegar þetta verður lokið.
    -CheckThatDatabasenameIsCorrect=Athugaðu að gagnagrunnur nafn <b>" %s "</b> er rétt.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Ef þetta nafn sé rétt og að gagnagrunnur er ekki til enn, þú verður að athuga möguleika á "Búa til gagnagrunn".
     OpenBaseDir=PHP openbasedir breytu
    -YouAskToCreateDatabaseSoRootRequired=Þú hakað við reitinn "Búa til gagnagrunn". Fyrir þetta þarftu að gefa upp notendanafn / lykilorð Ofurpaur (neðst á mynd).
    -YouAskToCreateDatabaseUserSoRootRequired=Þú hakað við reitinn "Búa til gagnagrunn eigandi". Fyrir þetta þarftu að gefa upp notendanafn / lykilorð Ofurpaur (neðst á mynd).
    -NextStepMightLastALongTime=Núverandi skref getur varað í nokkrar mínútur. Vinsamlegast bíðið þangað til the næstur skjár birtist alveg áður en haldið er áfram.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Flytja skipum fyrir viðskiptavin pantanir geymslu
     MigrationShippingDelivery=Uppfærsla geymslu Sendingar
     MigrationShippingDelivery2=Uppfærsla geymslu siglinga 2
     MigrationFinished=Migration lokið
    -LastStepDesc=<strong>Síðasta skref:</strong> Tilgreindu hér notandanafn og lykilorð sem þú ætlar að nota til að tengjast hugbúnaði. Ekki missa þetta eins og það er á reikningnum að gefa öllum öðrum.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Virkja mát %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=Þú notar Dolibarr skipulag töframaður frá DoliWamp, svo gildi lagt hér eru nú þegar bjartsýni. Breyta þeim aðeins ef þú veist hvað þú gerir.
    -KeepDefaultValuesDeb=Þú notar Dolibarr skipulag töframaður frá Ubuntu eða Debian pakka, þannig gildi lagt hér eru nú þegar bjartsýni. Aðeins lykilorð gagnagrunninum eigandi að búa verður að vera lokið. Breyta aðrar breytur aðeins ef þú veist hvað þú gerir.
    -KeepDefaultValuesMamp=Þú notar Dolibarr skipulag töframaður frá DoliMamp, svo gildi lagt hér eru nú þegar bjartsýni. Breyta þeim aðeins ef þú veist hvað þú gerir.
    -KeepDefaultValuesProxmox=Þú notar Dolibarr uppsetningarhjálpina frá Proxmox raunverulegur tæki, svo gildi lagt hér eru nú þegar bjartsýni. Breyta þeim aðeins ef þú veist hvað þú gerir.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Gögn fólksflutninga í atvinnuskyni tillögur
     MigrationInvoice=Gögn fólksflutninga fyrir reikninga viðskiptavina
     MigrationContract=Gögn fólksflutninga til samninga
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Uppfærsla tókst
     MigrationUpdateFailed=Gat ekki uppfærsla aðferð
     MigrationRelationshipTables=Gögn fólksflutninga fyrir borð sambandið ( %s )
     MigrationPaymentsUpdate=Greiðsla gögn leiðrétting
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Samningur gögn leiðrétting
     MigrationContractsNumberToUpdate=%s  samningi (s) til að endurnýja
     MigrationContractsLineCreation=Búa til samninga lína fyrir samningur dómari %s
     MigrationContractsNothingToUpdate=Engin fleiri atriði sem þarf að gera
    -MigrationContractsFieldDontExist=Field fk_facture er ekki til lengur. Ekkert að gera.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Samningur tóm dagsetningu leiðrétting
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Ekki samning tóm dagsetningu til að leiðrétta
     MigrationContractsEmptyCreationDatesNothingToUpdate=Engin sköpun samning dagsetningu til að leiðrétta
     MigrationContractsInvalidDatesUpdate=Bad gildi þann samning leiðrétting
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Afhending uppfæra
     MigrationStockDetail=Uppfæra lager gildi vöru
     MigrationMenusDetail=Uppfæra dynamic valmyndir töflur
     MigrationDeliveryAddress=Uppfæra skila inn í sendingar
    -MigrationProjectTaskActors=Gögn fólksflutninga til llx_projet_task_actors borð
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Gögn fólksflutninga sviði fk_user_resp af llx_projet til llx_element_contact
     MigrationProjectTaskTime=Uppfæra tími í sekúndum
     MigrationActioncommElement=Uppfæra upplýsingar um aðgerðir
     MigrationPaymentMode=Gögn fólksflutninga í ham greiðslu
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/is_IS/interventions.lang b/htdocs/langs/is_IS/interventions.lang
    index 2e3e8400afe..ed9627091de 100644
    --- a/htdocs/langs/is_IS/interventions.lang
    +++ b/htdocs/langs/is_IS/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Íhlutun
     InterventionCard=Intervention kort
     NewIntervention=Nýrri aðferð
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Listi yfir inngrip
     ActionsOnFicheInter=Aðgerðir á íhlutun
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/is_IS/main.lang b/htdocs/langs/is_IS/main.lang
    index 1068c7078bc..04f6df33ec0 100644
    --- a/htdocs/langs/is_IS/main.lang
    +++ b/htdocs/langs/is_IS/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Ekki tókst að senda póst (sendandi = %s , símtól = %s
     ErrorFileNotUploaded=Skrá var ekki send inn. Athugaðu að stærð hjartarskinn ekki fara yfir leyfileg mörk, sem laust pláss er í boði á diski og að það er ekki nú þegar skrá með sama nafni í þessari möppu.
     ErrorInternalErrorDetected=Villa fannst
     ErrorWrongHostParameter=Wrong gestgjafi breytu
    -ErrorYourCountryIsNotDefined=landið þitt er ekki skilgreind. Fara á aðalsíðu-skipulag-Breyta og staða aftur the mynd.
    -ErrorRecordIsUsedByChild=Tókst ekki að eyða þessari færslu. Þessi færsla er notaður við að minnsta kosti á færslur barn.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong gildi
     ErrorWrongValueForParameterX=Wrong gildi fyrir% breytu s
     ErrorNoRequestInError=Nei, farið fram á villu
    -ErrorServiceUnavailableTryLater=Þjónusta ekki í boði fyrir stundu. Reyndu aftur síðar.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Tvöfalt gildi í einstakri sviði
    -ErrorSomeErrorWereFoundRollbackIsDone=Villur fundust. Við rollback breytingar.
    -ErrorConfigParameterNotDefined=<b>Viðfang %s </b> er ekki skilgreind innan Dolibarr config skrá <b>conf.php.</b>
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Gat ekki fundið <b>notandann %s </b> í Dolibarr gagnagrunninum.
     ErrorNoVATRateDefinedForSellerCountry=Villa, enginn VSK hlutfall er skilgreind fyrir% landsins.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Villa tókst að vista skrána.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Setja dagsetningu
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=Skráin tókst að hlaða inn
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A-skrá er valin fyrir viðhengi en var ekki enn upp. Smelltu á "Hengja skrá" fyrir þessu.
    -NbOfEntries=ATH færslna
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Lestu hjálpina
     RecordSaved=Upptaka vistuð
    @@ -94,7 +94,7 @@ Undefined=Óskilgreint
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=Sjá ofar
    -HomeArea=Home area
    +HomeArea=Forsíða
     LastConnexion=Latest connection
     PreviousConnexion=Fyrri tengingu
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Loka
     Closed2=Loka
     NotClosed=Not closed
     Enabled=Virkt
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Slökkva
     Disabled=Fatlaðir
    @@ -153,7 +154,7 @@ Update=Uppfæra
     Close=Loka
     CloseBox=Remove widget from your dashboard
     Confirm=Staðfesta
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Eyða
     Remove=Fjarlægja
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Afrita
     Paste=Líma
     Default=Default
     DefaultValue=Sjálfgefið gildi
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Verð
     PriceCurrency=Price (currency)
     UnitPrice=Eining verðs
    @@ -347,7 +348,7 @@ AmountTTCShort=Magn (Inc skatt)
     AmountHT=Magn (að frádregnum skatti)
     AmountTTC=Magn (Inc skatt)
     AmountVAT=Upphæð VSK
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Á ekki við
     ActionRunningNotStarted=Ekki byrjað
     ActionRunningShort=In progress
     ActionDoneShort=Lokið
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Tengiliðir / adresses fyrir þessa þriðja aðila
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Actions um þessa þriðja aðila
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Viðburðir um þennan notanda
     ActionsOnProduct=Events about this product
     NActionsLate=%s  seint
    @@ -453,8 +455,8 @@ Generate=Mynda
     Duration=Lengd
     TotalDuration=Samtals tímalengd
     Summary=Yfirlit
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Laus
     NotYetAvailable=Ekki enn í boði
    @@ -468,7 +470,7 @@ and=og
     or=eða
     Other=Önnur
     Others=Aðrir
    -OtherInformations=Aðrar upplýsingar
    +OtherInformations=Other information
     Quantity=Magn
     Qty=Magn
     ChangedBy=Breytt af
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Seint
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Mynd augnabliksins
     Photos=Myndir
    @@ -530,18 +532,6 @@ September=September
     October=Október
     November=Nóvember
     December=Desember
    -JanuaryMin=Jan
    -FebruaryMin=Febrúar
    -MarchMin=Mar
    -AprilMin=Apríl
    -MayMin=Maí
    -JuneMin=Júní
    -JulyMin=Júlí
    -AugustMin=Ágúst
    -SeptemberMin=September
    -OctoberMin=Október
    -NovemberMin=Nóvember
    -DecemberMin=Desember
     Month01=Janúar
     Month02=Febrúar
     Month03=mars
    @@ -646,6 +636,8 @@ SendMail=Senda tölvupóst
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Eigandi
     FollowingConstantsWillBeSubstituted=Eftir Fastar verður staðgengill með samsvarandi gildi.
    @@ -677,7 +669,7 @@ NeverReceived=Aldrei fengið
     Canceled=Hætt við
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Litur
     Documents=Hlekkur skrá
     Documents2=Skjöl
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Sýna stjórn með lykilorð falinn
     UnHidePassword=Sýna raunveruleg stjórn með skýrum lykilorð
     Root=Root
    -Informations=Upplýsingar
    +Informations=Information
     Page=Page
     Notes=Skýringar
     AddNewLine=Bæta við nýjum línu
    @@ -716,15 +708,15 @@ Merge=Sameina
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Sýna síðu til að prenta aðalefni area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Aðvörun, ert þú í viðhald háttur, svo að aðeins <b>tenging %s </b> er leyft að nota forritið í augnablikinu.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Kerfi villa
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Kreditkort
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Reitir <b>með %s </b> er nauðsynlegur
    -FieldsWithIsForPublic=Reitir <b>með %s </b> eru birtar á almennings lista yfir meðlimi. Ef þú vilt þetta ekki skaltu athuga hvort "opinberar" reitinn.
    -AccordingToGeoIPDatabase=(Samkvæmt GeoIP ummyndun)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Lína
     NotSupported=Ekki stutt
     RequiredField=Krafist
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Próf
     ValidateBefore=Kort verða að vera staðfestar áður en ég nota þennan eiginleika
     Visibility=Skyggni
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Einkamál
     Hidden=Falinn
     Resources=Gagnagrunnur
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Búa til drög
     SetToDraft=Back to draft
     ClickToEdit=Smelltu til að breyta
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=Frá degi
     BySalesRepresentative=Með sölufulltrúa
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tækjum
     ModulesSystemTools=Modules tools
     Test=Próf
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Sýna afskipti
     ShowContract=Sýna samning
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Eyða línu
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Flokka billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Viðburðir
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Verkefni
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Heimildir
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Mánudagur
     Tuesday=Þriðjudagur
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Íhlutun
     SearchIntoContracts=Samningar
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Athugasemdir
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Allir
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Áhrifum á
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/is_IS/other.lang b/htdocs/langs/is_IS/other.lang
    index 2ec6f3b2f92..de8a3def77e 100644
    --- a/htdocs/langs/is_IS/other.lang
    +++ b/htdocs/langs/is_IS/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Öryggisnúmer
     NumberingShort=N°
     Tools=Verkfæri
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Afmæli
     BirthdayDate=Birthday date
     DateToBirth=Dags til fæðingu
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Skilaboð á staðfest greiðslu aftur síðu
     MessageKO=Skilaboð á niður greiðslu aftur síðu
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention staðfestar
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Viðskiptavinur til setja í gildi
     Notify_ORDER_SENTBYMAIL=Viðskiptavinur röð send með pósti
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Birgir röð send með pósti
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Birgir röð samþykkt
     Notify_ORDER_SUPPLIER_REFUSE=Birgir þess neitaði
     Notify_PROPAL_VALIDATE=Viðskiptavinur tillögu staðfestar
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Auglýsing tillögu send með pósti
     Notify_WITHDRAW_TRANSMIT=Gírskipting afturköllun
     Notify_WITHDRAW_CREDIT=Credit afturköllun
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Þriðja aðila til
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Viðskiptavinur Reikningar staðfestar
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Viðskiptavinur Reikningar borgað
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Viðskiptavinur reikning niður
     Notify_BILL_SENTBYMAIL=Viðskiptavinur Reikningar send með pósti
     Notify_BILL_SUPPLIER_VALIDATE=Birgir reikning fullgilt
    -Notify_BILL_SUPPLIER_PAYED=Birgir reikning borgað
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Birgir reikningi send með pósti
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Samningur fullgilt
     Notify_FICHEINTER_VALIDATE=Afskipti fullgilt
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping fullgilt
     Notify_SHIPPING_SENTBYMAIL=Shipping send með pósti
     Notify_MEMBER_VALIDATE=Member fullgilt
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Fjöldi meðfylgjandi skrá / gögn
     TotalSizeOfAttachedFiles=Heildarstærð meðfylgjandi skrá / gögn
     MaxSize=Hámarks stærð
     AttachANewFile=Hengja nýja skrá / skjal
     LinkedObject=Tengd mótmæla
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s </b> er upplýsingamiðstöð ráðast á þriðja aðila land. <br> Til dæmis, þegar <b>landið %s , kóði%</b> það <b>er.</b>
     DolibarrDemo=Dolibarr ERP / CRM kynningu
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Á% afskipti s hefur verið staðfest.
     EMailTextInvoiceValidated=Í% reikningi s hefur verið staðfest.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Á% Tillagan s hefur verið staðfest.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Á %s kyni s hefur verið staðfest.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Á %s kyni s hefur verið samþykkt af %s .
     EMailTextOrderRefused=Á %s kyni s hefur verið hafnað.
     EMailTextOrderRefusedBy=Á %s kyni s hefur verið hafnað af %s .
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Innflutningur gögnum
     DolibarrNotification=Sjálfvirk tilkynning
     ResizeDesc=Sláðu inn nýja breidd <b>EÐA</b> nýja hæð. Hlutfall verður haldið á resizing ...
    @@ -204,7 +214,7 @@ NewLength=New breidd
     NewHeight=Ný hæð
     NewSizeAfterCropping=Ný stærð eftir cropping
     DefineNewAreaToPick=Skilgreina ný svæði á mynd til að velja (vinstri smella á myndina þá draga þar til þú nærð fjær hornið)
    -CurrentInformationOnImage=Upplýsingar um núverandi mynd
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image ritstjóri
     YouReceiveMailBecauseOfNotification=Þú færð þessi skilaboð vegna þess að netfangið þitt hefur verið bætt við lista yfir markmið að fá upplýsingar um sérstaka atburði í %s  hugbúnað af %s .
     YouReceiveMailBecauseOfNotification2=Þessi atburður er eftirfarandi:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Útflutningur area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Titill
     WEBSITE_DESCRIPTION=Lýsing
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/is_IS/paybox.lang b/htdocs/langs/is_IS/paybox.lang
    index 6dd0039e522..564c87257c8 100644
    --- a/htdocs/langs/is_IS/paybox.lang
    +++ b/htdocs/langs/is_IS/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox mát skipulag
     PayBoxDesc=Þessi eining síður bjóða upp á til að heimila greiðslu á <a href="http://www.paybox.com" target="_blank">Paybox</a> við viðskiptavini. Þetta má nota til a frjáls greiðslu eða til greiðslu á tilteknum Dolibarr mótmæla (Reikningar, röð, ...)
     FollowingUrlAreAvailableToMakePayments=Eftirfarandi vefslóðir eru að bjóða upp síðu til viðskiptavina til að framkvæma greiðslu á Dolibarr mótmæla
     PaymentForm=Greiðsla mynd
    -WelcomeOnPaymentPage=Velkomin á netinu greiðsluþjónustu okkar
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Þessi skjár leyfa þér að gera á netinu greiðslu til %s.
     ThisIsInformationOnPayment=Þetta eru upplýsingar um greiðslu að gera
     ToComplete=Til að ljúka
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL að bjóða upp á %s inni greiðslu n
     ToOfferALinkForOnlinePaymentOnContractLine=URL að bjóða upp á %s inni greiðslu notandi tengi fyrir samning línu
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL að bjóða upp á %s inni greiðslu notandi tengi fyrir ókeypis upphæð
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL að bjóða upp á %s inni greiðslu notandi tengi fyrir aðild áskrift
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Þú getur einnig bætt við url stika <b>& tag = <i>gildi</i></b> til allir af þessir URL (einungis fyrir frjáls greiðslu) til að bæta tag þína eigin greiðslu athugasemd.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Skipulag PayBox með url <b>%s</b> að hafa greiðslu búinn til sjálfkrafa þegar staðfest með því að paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Þessi síða staðfestir að greiðsla hefur verið skráð. Þakka þér.
    -YourPaymentHasNotBeenRecorded=Þú greiðsla hefur ekki verið skráð og viðskipti hefur verið aflýst. Þakka þér.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Skráningin breytur
     UsageParameter=Notkun breytur
     InformationToFindParameters=Hjálp til að finna %s upplýsingar reiknings þíns
    diff --git a/htdocs/langs/is_IS/projects.lang b/htdocs/langs/is_IS/projects.lang
    index 5213ae876a6..24f1a432acf 100644
    --- a/htdocs/langs/is_IS/projects.lang
    +++ b/htdocs/langs/is_IS/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Sýna verkefni
     ShowTask=Sýna verkefni
     SetProject=Setja verkefni
     NoProject=Engin verkefni skilgreind eða í eigu
    -NbOfProjects=ATH verkefna
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Tíma sem fer
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Listi yfir auglýsing tillögum í tengslum við verkefnið
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Listi yfir samninga í tengslum við verkefnið
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Listi yfir inngrip í tengslum við verkefnið
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Listi yfir aðgerðir í tengslum við verkefnið
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Tengjast öðrum þriðja aðila
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Tími er tómur
     ThisWillAlsoRemoveTasks=Þessi aðgerð mun einnig eyða öllum verkefnum verkefnisins <b>(%s</b> verkefni í augnablikinu) og allt inntak tíma varið.
    -IfNeedToUseOhterObjectKeepEmpty=Ef sumir hlutir (nótum röð ...), sem tilheyra öðrum þriðja aðila, verður að vera í tengslum við verkefnið til að búa til, halda þessu tóm til að hafa verkefni verði fjölnota þriðja aðila.
    +IfNeedToUseOtherObjectKeepEmpty=Ef sumir hlutir (nótum röð ...), sem tilheyra öðrum þriðja aðila, verður að vera í tengslum við verkefnið til að búa til, halda þessu tóm til að hafa verkefni verði fjölnota þriðja aðila.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Framlög
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Tillaga
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/is_IS/propal.lang b/htdocs/langs/is_IS/propal.lang
    index 1d1a595e7dd..d2f2d108789 100644
    --- a/htdocs/langs/is_IS/propal.lang
    +++ b/htdocs/langs/is_IS/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Undirritað (þarf greiðanda)
     PropalStatusNotSigned=Ekki skráð (lokað)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Víxill
    -PropalStatusValidatedShort=Staðfest
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Loka
     PropalStatusSignedShort=Innsigli
     PropalStatusNotSignedShort=Ekki skráð
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s  fannst ekki
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Búa auglýsing tillögu með því að afrita það sem tillaga
    -CreateEmptyPropal=Búa til tóm auglýsing tillögur vierge eða lista yfir vörur / þjónustu
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default auglýsing tillögu Gildistími Lengd (í dögum)
    -UseCustomerContactAsPropalRecipientIfExist=Nota viðskiptavina samband netfang ef skilgreint í stað þriðja aðila netfang sem tillaga viðtakanda heimilisfang
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Klóna auglýsing tillögu
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Viðskiptavinur samband eftirfarandi upp ti
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A heill tillögu líkan (logo. ..)
    +DocModelCyanDescription=A heill tillögu líkan (logo. ..)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/is_IS/website.lang b/htdocs/langs/is_IS/website.lang
    index 392ac3aed7a..090cda74d4f 100644
    --- a/htdocs/langs/is_IS/website.lang
    +++ b/htdocs/langs/is_IS/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Lesa
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang
    index 6467683d164..a0ddd796c0e 100644
    --- a/htdocs/langs/it_IT/admin.lang
    +++ b/htdocs/langs/it_IT/admin.lang
    @@ -9,13 +9,13 @@ VersionExperimental=Sperimentale
     VersionDevelopment=Sviluppo
     VersionUnknown=Sconosciuta
     VersionRecommanded=Raccomandata
    -FileCheck=Controllo di integrità dei file
    -FileCheckDesc=Questo strumento ti consente di verificare l'integrità dei file e la configurazione della tua applicazione, confrontando ogni file con quelli ufficiali. Il valore di alcune impostazioni può anche essere controllato. È possibile utilizzare questo strumento per rilevare se alcuni file sono stati modificati, per esempio, da un hacker.
    +FileCheck=Controllo di integrità files
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=L'integrità dei file è strettamente conforme al riferimento.
    -FileIntegrityIsOkButFilesWereAdded=È stato superato il controllo dell'integrità dei file, tuttavia sono stati aggiunti alcuni nuovi file.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Il controllo dell'integrità dei file è fallito. Alcuni file sono stati modificati, rimossi o aggiunti.
    -GlobalChecksum=Global checksum
    -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    +GlobalChecksum=Controllo di integrità globale
    +MakeIntegrityAnalysisFrom=Analizza integrità dei files dell'applicazione da
     LocalSignature=Firma locale incorporata (meno affidabile)
     RemoteSignature=Firma remota (più affidabile)
     FilesMissing=File mancanti
    @@ -23,21 +23,21 @@ FilesUpdated=File aggiornati
     FilesModified=Files modificati
     FilesAdded=Files aggiunti
     FileCheckDolibarr=Controlla l'integrità dei file dell'applicazione
    -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package
    -XmlNotFound=Xml Integrity File of application not found
    +AvailableOnlyOnPackagedVersions=Il file locale per il controllo di integrità è disponibile solo quando l'applicazione viene installata da un pacchetto ufficiale
    +XmlNotFound=File xml di controllo integrità non trovato
     SessionId=ID di sessione
     SessionSaveHandler=Handler per il salvataggio dell sessioni
     SessionSavePath=Percorso per il salvataggio delle sessioni
     PurgeSessions=Pulizia delle sessioni
     ConfirmPurgeSessions=Vuoi davvero eliminare tutte le sessioni? Questo causerà la disconnessione di tutti gli utenti (tranne te).
    -NoSessionListWithThisHandler=Il gestore delle sessioni configurato in PHP non consente di elencare tutte le sessioni in esecuzione.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Bloccare le nuove connessioni
    -ConfirmLockNewSessions=Sei sicuro di voler limitare qualsiasi nuova connessione a Dolibarr a te stesso? Solo l'utente <b>%s</b> sarà in grado di connettersi dopo la modifica.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Rimuovere il blocco di connessione
     YourSession=La tua sessione
    -Sessions=Sessione utente
    +Sessions=Users sessions
     WebUserGroup=Utente/gruppo del server web (per esempio www-data)
    -NoSessionFound=Il PHP del server sembra non permettere di elencare le sessioni attive. La directory utilizzata per salvare le sessioni (<b>%s</b>) potrebbe essere protetta (Potrebbe essere fatto con permessi sul filesystem o con la direttiva open_basedir di PHP).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Charset per il salvataggio dei dati nel database
     DBSortingCharset=Charset per l'rodinamento dei dati nel database
     ClientCharset=Client charset
    @@ -49,8 +49,8 @@ InternalUser=Utente interno
     ExternalUser=Utente esterno
     InternalUsers=Utenti interni
     ExternalUsers=Utenti esterni
    -GUISetup=Layout di visualizzazione
    -SetupArea=Sezione impostazioni
    +GUISetup=Aspetto grafico e lingua
    +SetupArea=Impostazioni
     UploadNewTemplate=Carica nuovi modelli
     FormToTestFileUploadForm=Modulo per provare il caricamento file (secondo la configurazione)
     IfModuleEnabled=Nota: funziona solo se il <b>modulo %s</b> è attivo
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Il codice non può contenere il valore 0
     DisableJavascript=Disabilita funzioni JavaScript and Ajax (Raccomandato per persone non vedenti o browser testuali)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=N ° di caratteri per attivare ricerca: %s
     NotAvailableWhenAjaxDisabled=Non disponibile quando Ajax è disabilitato
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Anteprima non disponibile
     ThemeCurrentlyActive=Tema attualmente attivo
     CurrentTimeZone=Fuso orario attuale
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Spazio
     Table=Tabella
     Fields=Campi
    @@ -111,14 +111,14 @@ NotConfigured= Modulo/Applicazione non configurato
     Active=Attivo
     SetupShort=Impostazioni
     OtherOptions=Altre opzioni
    -OtherSetup=Altre impostazioni
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Separatore decimale
     CurrentValueSeparatorThousand=Separatore per le migliaia
     Destination=Destinazione
     IdModule=Modulo ID
     IdPermissions=Permessi ID
     LanguageBrowserParameter=Parametro %s
    -LocalisationDolibarrParameters=Parametri di localizzazione
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Fuso orario client (utente)
     ClientHour=Orario client (utente)
     OSTZ=Fuso orario dell'OS server
    @@ -126,8 +126,8 @@ PHPTZ=Fuso orario server PHP
     DaylingSavingTime=Ora legale (utente)
     CurrentHour=Orario PHP (server)
     CurrentSessionTimeOut=Timeout sessione corrente
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Massimo numero di righe per componente
    @@ -191,29 +191,29 @@ IgnoreDuplicateRecords=Ignora errori per record duplicati (INSERT IGNORE)
     AutoDetectLang=Rileva automaticamente (lingua del browser)
     FeatureDisabledInDemo=Funzione disabilitata in modalità demo
     FeatureAvailableOnlyOnStable=Feature disponibile solo nelle versioni stabili ufficiali
    -BoxesDesc=I Widgets sono componenti che personalizzano le pagine aggiungendo delle informazioni.\nPuoi scegliere se mostrare il widget o meno cliccando 'Attiva' sulla la pagina di destinazione, o cliccando sul cestino per disattivarlo.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Vengono mostrati solo gli elementi relativi ai <a href="%s">moduli attivi</a> .
    -ModulesDesc=I moduli di Dolibarr definiscono quali funzionalità sono abilitate. Alcuni moduli, dopo la loro attivazione, richiedono dei permessi da abilitare agli utenti. Clicca su on/off per l'abilitazione del modulo.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Potete trovare altri moduli da scaricare su siti web esterni...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Trova app/moduli esterni...
     ModulesDevelopYourModule=Sviluppa il tuo modulo/app
    -ModulesDevelopDesc=Puoi sviluppare o trovare un partner che sviluppi il tuo modulo personalizzato
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Nuovo
    -FreeModule=Free
    +FreeModule=Gratuito
     CompatibleUpTo=Compatibile con la versione %s
     NotCompatible=Questo modulo non sembra essere compatibile con la tua versione di Dolibarr %s (Min %s - Max %s).
     CompatibleAfterUpdate=Questo modulo richiede un aggiornamento a Dolibarr %s (Min %s - Max %s).
     SeeInMarkerPlace=See in Market place
     Updated=Aggiornato
    -Nouveauté=Novelty
    +Nouveauté=Novità
     AchatTelechargement=Aquista / Scarica
     GoModuleSetupArea=Per installare un nuovo modulo vai alla sezione moduli <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, il mercato ufficiale dei moduli esterni per Dolibarr ERP/CRM
    -DoliPartnersDesc=Elenco di aziende che forniscono moduli e funzionalità sviluppate su misura (Nota: chiunque sia esperto in programmazione PHP è in grado di fornire un contributo allo sviluppo per un progetto open source)
    -WebSiteDesc=Siti Web in cui è possibile cercare altri moduli ...
    -DevelopYourModuleDesc=Some solutions to develop your own module...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
    +DevelopYourModuleDesc=Spunti per sviluppare il tuo modulo...
     URL=Collegamento
     BoxesAvailable=Widget disponibili
     BoxesActivated=Widget attivi
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Non memorizzare le password in chiaro nel database (racc
     MainDbPasswordFileConfEncrypted=Password del database crittata in conf.php (raccomandato)
     InstrucToEncodePass=Per avere la password codificata sostituisci nel file <b>conf.php</b> , la linea <br><b>$dolibarr_main_db_pass="...";</b><br>con<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Per avere la password decodificata (in chiaro) sostituisci nel file<b>conf.php</b> la linea <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>con<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protezione e crittografia dei PDF generati
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=La protezione di un documento PDF rende possibile la lettura e la stampa con qualsiasi browser; tuttavia modifica e copia non sono più possibili. Si noti che l'utilizzo di questa funzionalità non renderà possibile la stampa unione dei file PDF
     Feature=Caratteristica
     DolibarrLicense=Licenza
    @@ -246,47 +246,51 @@ ExternalResources=Risorse esterne
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=La documentazione per utenti e sviluppatori e le FAQ sono disponibili sul wiki di Dolibarr: <br/>Dai un'occhiata a <a href="%s" target="_blank"><b> %s</b></a>
     ForAnswersSeeForum=Per qualsiasi altro problema/domanda, si può utilizzare il forum di Dolibarr: <br> <a href="%s" target="_blank"><b>%s</b></a>
    -HelpCenterDesc1=In quest'area puoi cercare un servizio di supporto su Dolibarr.
    -HelpCenterDesc2=Alcuni di questi servizi sono disponibili <b>solo in inglese</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Attuale gestore menu
     MeasuringUnit=Unità di misura
     LeftMargin=Margine sinistro
     TopMargin=Margine superiore
     PaperSize=Tipo di carta
     Orientation=Orientamento
    -SpaceX=Space X
    -SpaceY=Space Y
    +SpaceX=Spazio X
    +SpaceY=Spazio Y
     FontSize=Dimensione del testo
     Content=Contenuto
     NoticePeriod=Periodo di avviso
     NewByMonth=New by month
     Emails=Email
     EMailsSetup=Impostazioni Email
    -EMailsDesc=Questa pagina ti permette di sovrascrivere i tuoi parametri di PHP per l'invio di email. In molti casi con Unix/Linux OS, le impostazioni di PHP sono corrette e questi parametri inutilizzati.
    -EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=Porta SMTP (Di default in php.ini: <b> %s </b>)
    -MAIN_MAIL_SMTP_SERVER=Host SMTP (Di default in php.ini: <b> %s </b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Porta SMTP (non disponibile in PHP su Linux)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP Host (non disponibile in PHP su Linux)
    -MAIN_MAIL_EMAIL_FROM=Inviante email per email automatiche (di default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Inviare sistematicamente una copia carbone nascosta di tutte le email a
    -MAIN_DISABLE_ALL_MAILS=Disabilita tutti gli invii email (per scopi di test o demo)
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
    +EmailSenderProfiles=Profili mittente email
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Metodo da utilizzare per l'invio di email
    -MAIN_MAIL_SMTPS_ID=Id per l'autenticazione SMTP, se necessario
    -MAIN_MAIL_SMTPS_PW=Password per l'autenticazione SMTP, se necessaria
    -MAIN_MAIL_EMAIL_TLS= Usa cifratura TLS (SSL)
    -MAIN_MAIL_EMAIL_STARTTLS= Usa crittografia TLS (STARTTLS)
    -MAIN_DISABLE_ALL_SMS=Disabilitare tutti gli invii SMS (per scopi di test o demo)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Metodo da utilizzare per inviare SMS
    -MAIN_MAIL_SMS_FROM=Numero del chiamante predefinito per l'invio di SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=Email utente
     CompanyEmail=Email società
     FeatureNotAvailableOnLinux=Funzione non disponibile sui sistemi Linux. Viene usato il server di posta installato sul server (es. sendmail).
    -SubmitTranslation=Se la traduzione per questa lingua non è completa o trovi degli errori, puoi correggere i file presenti nella directory <b>langs/%s</b> e pubblicare i file modificati su www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=Se la traduzione per questa lingua non è completa o trovi degli errori, puoi correggere i file presenti nella directory <b>langs/%s</b> e pubblicare i file modificati su dolibarr.org/forum oppure, se sei uno sviluppatore, su github.com/Dolibarr/dolibarr
     ModuleSetup=Impostazioni modulo
     ModulesSetup=Impostazione Modulo/Applicazione
    @@ -301,23 +305,23 @@ ModuleFamilyTechnic=Strumenti Multi-modulo
     ModuleFamilyExperimental=Moduli sperimentali
     ModuleFamilyFinancial=Moduli finanziari (Contabilità/Cassa)
     ModuleFamilyECM=ECM
    -ModuleFamilyPortal=Web sites ed altre applicazioni
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfacce con sistemi esterni
     MenuHandlers=Gestori menu
     MenuAdmin=Editor menu
     DoNotUseInProduction=Da non usare in produzione
     ThisIsProcessToFollow=Il procedimento da seguire è:
    -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
    +ThisIsAlternativeProcessToFollow=Questa è una impostazione manuale alternativa:
     StepNb=Passo %s
    -FindPackageFromWebSite=Trova un pacchetto che fornisca la funzionalità desiderata (per esempio su %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Scarica il pacchetto (per esempio dal sito ufficiale %s).
    -UnpackPackageInDolibarrRoot=Scompatta il pacchetto sul server nella directory dedicata a Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Installazione del modulo completata. Devi abilitare e configurare il modulo nella tua applicazione dalla pagina di configurazione dei moduli: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=La directory root alternativa non è stata associata ad una directory esistente.<br>
     InfDirAlt=A partire dalla versione 3 è possibile definire una directory root alternativa. Ciò permette di archiviare plugin e template personalizzati nello stesso posto.<br>Basta creare una directory nella root di Dolibarr (per esempio: custom).<br>
     InfDirExample=<br>Poi dichiaralo nel file  <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>. Se queste righe sono commentate con "#", per abilitarle basta rimuovere il carattere "#".
    -YouCanSubmitFile=Per questo passaggio puoi inviare il file .zip del modulo qui:
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Versione attuale di Dolibarr
     CallUpdatePage=Vai alla pagina che aggiorna la struttura del database e dati su %s.
     LastStableVersion=Ultima versione stabile
    @@ -325,7 +329,7 @@ LastActivationDate=Ultima data di attivazione
     LastActivationAuthor=Ultimo
     LastActivationIP=Latest activation IP
     UpdateServerOffline=Update server offline
    -WithCounter=Manage a counter
    +WithCounter=Gestisci un contatore
     GenericMaskCodes=Puoi inserire uno schema di numerazione. In questo schema, possono essere utilizzati i seguenti tag : <br><b> {000000} </b> Corrisponde a un numero che sarà incrementato ad ogni aggiunta di %s. Inserisci il numero di zeri equivalente alla lunghezza desiderata per il contatore. Verranno aggiunti zeri a sinistra fino alla lunghezza impostata per il contatore. <br><b> {000000+000} </b> Come il precedente, ma con un offset corrispondente al numero a destra del segno + che viene applicato al primo inserimento %s. <br> <b> {000000@x} </b> Come sopra, ma il contatore viene reimpostato a zero quando si raggiunge il mese x (x compreso tra 1 e 12). Se viene utilizzata questa opzione e x è maggiore o uguale a 2, diventa obbligatorio inserire anche la sequenza {yy}{mm} o {yyyy}{mm}. <br> <b> {dd} </b> giorno (da 01 a 31). <br> <b> {mm} </b> mese (da 01 a 12). <br> <b> {yy} </b>, <b> {yyyy} </b> o <b> {y}  </b> anno con 2, 4 o 1 cifra.<br>
     GenericMaskCodes2=<b>{cccc}</b>il codice cliente di n caratteri<br><b>{cccc000}</b> il codice cliente di n caratteri è seguito da un contatore dedicato per cliente. Questo contatore dedicato per i clienti è azzerato allo stesso tempo di quello globale.<br><b>{tttt}</b> Il codice di terze parti composto da n caratteri (vedi menu Home - Impostazioni - dizionario - tipi di terze parti). Se aggiungi questa etichetta, il contatore sarà diverso per ogni tipo di terze parti<br>
     GenericMaskCodes3=Tutti gli altri caratteri nello schema rimarranno inalterati. <br> Gli spazi non sono ammessi. <br>
    @@ -347,37 +351,37 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Ritardo per il caching di esportazione (0 o vuoto per disabilitare la cache)
     DisableLinkToHelpCenter=Nascondi link <b>Hai bisogno di aiuto?</b> sulla pagina di accesso
     DisableLinkToHelp=Nascondi link  della guida online "<b>%s</b>"
    -AddCRIfTooLong=La lunghezza delle righe non viene controllata automaticamente. Inserire gli a capo, se necessari.
    -ConfirmPurge=Vuoi davvero eseguire questa cancellazione?<br>Questa operazione eliminerà definitivamente tutti i dati senza possibilità di ripristino (ECM, allegati, ecc ...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Durata minima
     LanguageFilesCachedIntoShmopSharedMemory=File Lang caricati nella memoria cache
     LanguageFile=File di Lingua
    -ExamplesWithCurrentSetup=Esempi di funzionamento secondo la configurazione attuale
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Elenco delle directory dei modelli OpenDocument
     ListOfDirectoriesForModelGenODT=Lista di cartelle contenenti file modello in formato OpenDocument.<br><br>Inserisci qui il percorso completo delle cartelle.<br>Digitare un 'Invio' tra ciascuna cartella.<br>Per aggiungere una cartella del modulo GED, inserire qui <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>I file in quelle cartelle devono terminare con <b>.odt</b> o <b>.ods</b>.
    -NumberOfModelFilesFound=Numero di modelli per documenti ODT/ODS trovati in queste directory
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Esempi di sintassi: <br/> c: dir \\ <br/> /Home/mydir <br/> DOL_DATA_ROOT/ECM/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br/>Per sapere come creare i modelli di documento odt, prima di salvarli in queste directory, leggere la documentazione wiki:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
     FirstnameNamePosition=Posizione del cognome/nome
    -DescWeather=Le seguenti immagini verranno visualizzate sulla dashboard quando il numero di azioni in ritardo raggiungere i seguenti valori:
    +DescWeather=Le seguenti immagini verranno visualizzate sulla panoramica quando il numero di azioni in ritardo raggiunge i seguenti valori:
     KeyForWebServicesAccess=Chiave per l'accesso ai Web Services (parametro &quot;dolibarrkey&quot; in webservices)
     TestSubmitForm=Submit form di test
     ThisForceAlsoTheme=Usando questo il gestore dei menu userà anche il proprio tema indipedentemente dalla scelta dell'utente. Inoltre questo gestore dei menu specializzato per smartphone non funziona su tutti gli smartphone. Se si verificassero problemi, consigliamo di utilizzare un altro gestore dei menu.
     ThemeDir=Directory delle skin
    -ConnectionTimeout=Timeout della connessione
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Timeout della risposta
     SmsTestMessage=Prova messaggio da __PHONEFROM__ a __PHONETO__
     ModuleMustBeEnabledFirst=Il modulo <b>%s</b> deve prima essere attivato per poter accedere a questa funzione.
     SecurityToken=Token di sicurezza
    -NoSmsEngine=Nessun manager mittente SMS disponibili. SMS gestore del mittente non sono installati con la distribuzione di default (perché dipende da un fornitore esterno), ma si possono trovare alcuni su http://www.dolistore.com
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Si possono impostare tutte le opzioni globali relative alla generazione di file pdf
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Regole per il forge di caselle di indirizzi
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
    -PDFRulesForSalesTax=Rules for Sales Tax / VAT
    +PDFRulesForSalesTax=Regole per tasse sulla vendita/IVA
     PDFLocaltax=Regole per %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Nascondi le descrizioni dei prodotti nel pdf generato
     HideRefOnPDF=Nascondi il ref. prodotto nei PDF generati
     HideDetailsOnPDF=Nascondi dettagli linee prodotti sui PDF generati
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parametri di generazione degli indirizzi
     SecurityTokenIsUnique=Utilizzare un unico parametro securekey per ogni URL
     EnterRefToBuildUrl=Inserisci la reference per l'oggetto %s
     GetSecuredUrl=Prendi URL calcolato
    -ButtonHideUnauthorized=Nascondi pulsanti per azioni non autorizzate anziché mostrare pulsantii disabilitati
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Vecchia aliquota IVA
     NewVATRates=Nuova aliquota IVA
     PriceBaseTypeToChange=Modifica i prezzi con la valuta di base definita.
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Lista di selezione
     ExtrafieldSelectList = Seleziona dalla tabella
     ExtrafieldSeparator=Separatore (non è un campo)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio button (una sola scelta)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Campo calcolato
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=La lista dei parametri deve contenere chiave univoca e valore.<br><br>Per esempio:<br>1, valore1<br>2, valore2<br>3, valore3<br>...
     ExtrafieldParamHelpradio=La lista dei parametri deve contenere chiave univoca e valore.<br><br>Per esempio:<br>1, valore1<br>2, valore2<br>3, valore3<br>...
    @@ -432,60 +436,62 @@ DefaultLink=Link predefinito
     SetAsDefault=Imposta come predefinito
     ValueOverwrittenByUserSetup=Attenzione, questo valore potrebbe essere sovrascritto da un impostazione specifica dell'utente (ogni utente può settare il proprio url clicktodial)
     ExternalModule=Modulo esterno - Installato nella directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Vuoi davvero eliminare tutti i valori attuali dei codici a barre?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Abilita file di cache
     ShowDetailsInPDFPageFoot=Aggiungi ulteriori dettagli a piè di pagina nei files PDF, come l'indirizzo della tua società o i nomi dei managers (per completare id professionali, capitale sociale e numeri di partita IVA).
     NoDetails=Nessun dettaglio nel piè di pagina
     DisplayCompanyInfo=Mostra indirizzo dell'azienda
     DisplayCompanyManagers=Visualizza nomi responsabili
     DisplayCompanyInfoAndManagers=Mostra l'indirizzo dell'azienda ed il nome del manager
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Clicca per mostrare la descrizione
    -DependsOn=A questo modulo serve il modulo
    +DependsOn=This module needs the module(s)
     RequiredBy=Questo modulo è richiesto dal modulo
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Abilita l'utilizzo di valori predefiniti personalizzati
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Campo
     ProductDocumentTemplates=Document templates to generate product document
     FreeLegalTextOnExpenseReports=Testo libero sul report di spesa
    -WatermarkOnDraftExpenseReports=Watermark on draft expense reports
    -AttachMainDocByDefault=Set this to 1 if you want to attach main document to email by default (if applicable)
    +WatermarkOnDraftExpenseReports=Bozze delle note spese filigranate
    +AttachMainDocByDefault=Imposta a 1 se vuoi allegare il documento principale alle email come impostazione predefinita (se applicabile)
     FilesAttachedToEmail=Allega file
     SendEmailsReminders=Invia promemoria agenda via email
     davDescription=Add a component to be a DAV server
    -DAVSetup=Setup of module DAV
    -DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAVSetup=Configurazione del modulo DAV
    +DAV_ALLOW_PUBLIC_DIR=Attiva directory pubblica (directory WebDAV senza login)
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Utenti e gruppi
     Module0Desc=Gestione utenti/impiegati e gruppi
    -Module1Name=Terzi
    -Module1Desc=Gestione aziende e contatti
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commerciale
     Module2Desc=Gestione commerciale
     Module10Name=Contabilità
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposte
     Module20Desc=Gestione proposte commerciali
     Module22Name=Posta massiva
    @@ -495,7 +501,7 @@ Module23Desc=Monitoraggio del consumo energetico
     Module25Name=Ordini clienti
     Module25Desc=Gestione ordini clienti
     Module30Name=Fatture
    -Module30Desc=Gestione Fatture e note di credito per i clienti. Gestione Fatture per i fornitori
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Fornitori
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Gestione magazzino prodotti
     Module53Name=Servizi
     Module53Desc=Gestione servizi
     Module54Name=Contratti/Abbonamenti
    -Module54Desc=Gestione contratti (servizi o abbonamenti)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Codici a barre
     Module55Desc=Gestione codici a barre
     Module56Name=Telefonia
     Module56Desc=Integrazione telefonia
     Module57Name=Ordini permanenti e domiciliazioni
    -Module57Desc=Gestione degli ordini di pagamento SEPA Direct Debit. Comprende anche la generazione di file SEPA per i paesi europei.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integrazione di un sistema ClickToDial (per esempio Asterisk)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Spese di viaggio e note spese
     Module75Desc=Gestione spese di viaggio e note spese
     Module80Name=Spedizioni
     Module80Desc=Gestione spedizioni e consegne ordini
    -Module85Name=Banche e cassa
    +Module85Name=Banks and Cash
     Module85Desc=Gestione di conti bancari o conti di cassa
    -Module100Name=Sito esterno
    -Module100Desc=Includi un sito esterno nei menu di Dolibarr e visualizzalo in un frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman e SPIP
     Module105Desc=Interfaccia Mailman o SPIP per il modulo membri
     Module200Name=LDAP
    -Module200Desc=Sincronizzazione directory LDAP
    +Module200Desc=LDAP directory synchronization
     Module210Name=Postnuke
     Module210Desc=Integrazione Postnuke
     Module240Name=Esportazione dati
    -Module240Desc=Strumento per esportare i dati di Dolibarr (con assistenti)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Importazione dati
    -Module250Desc=Strumento per importare i dati in Dolibarr (con assistenti)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Membri
     Module310Desc=Gestione membri della fondazione
     Module320Name=Feed RSS
     Module320Desc=Aggiungi feed RSS alle pagine di Dolibarr
    -Module330Name=Segnalibri
    -Module330Desc=Gestione segnalibri
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Calendario web
     Module410Desc=Integrazione calendario web
    -Module500Name=Taxes and Special expenses
    +Module500Name=Tasse e spese speciali
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Pagamento stipendi dipendenti
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Prestito
     Module520Desc=Gestione dei prestiti
     Module600Name=Notifiche di eventi lavorativi
    -Module600Desc=Inviare notifiche EMail (generate da eventi aziendali) ad utenti (impostazione definita per ogni utente) o contatti di terze parti (impostazione definita per ogni terza parte) o a email predefinite
    -Module600Long=Nota che questo modulo è dedicato all'invio di e-mail in tempo reale quando si verifica un evento aziendale dedicato. Se stai cercando una funzione per inviare promemoria via e-mail dei tuoi eventi in agenda, vai alla configurazione del modulo Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Varianti prodotto
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donazioni
     Module700Desc=Gestione donazioni
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tag/categorie
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=FCKeditor
    -Module2000Desc=Permette di utilizzare per alcune aree di testo un edito avanzato (basato su CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Prezzi dinamici
     Module2200Desc=Abilita l'utilizzo di espressioni matematiche per i prezzi
     Module2300Name=Processi pianificati
     Module2300Desc=Gestione delle operazioni pianificate
     Module2400Name=Eventi/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Attiva il server SOAP che fornisce i servizi di API
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Attiva il server REST che fornisce i servizi di API
     Module2660Name=Chiamata WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Usa il servizio online Gravatar (www.gravatar.com) per mostrare le foto degli utenti/membri. Necessita dell'accesso a Internet
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=Client FTP
     Module2900Name=GeoIPMaxmind
     Module2900Desc=Localizzazione degli accessi tramite GeoIP Maxmind
     Module3100Name=Skype
     Module3100Desc=Aggiunge un collegamento a Skype nelle schede di terze parti e contatti
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=Risorse umane
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multiazienda
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Siti web
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Gestione delle richieste di permesso
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Lotti di prodotto
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Modulo per offrire una pagina di pagamento che accetti pagamenti con carte di credito o debito via PayBox. Può essere usato per tutti i pagamenti dei clienti o solo per alcune specifiche tipologie di pagamenti in Dolibarr (fatture, ordini, ...) 
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Punti vendita
     Module50100Desc=Modulo per la creazione di un punto vendita (POS)
    +Module50150Name=Punti vendita
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Modulo per offrire una pagina di pagamento che accetti pagamenti PayPal (carte di credito o credito PayPal). Può essere usato per tutti i pagamenti dei clienti o solo per alcune specifiche tipologie di pagamenti in Dolibarr (fatture, ordini, ...) 
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Stampa diretta (senza aprire i documenti) tramite l'interfaccia CUPS IPP (la stampante deve essere visibile dal server, e il server deve avere CUPS installato).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Sondaggio, Indagine o Votazione
    -Module55000Desc=Modulo per creare sondaggi, indagini o feedback online (Doodle, Studs, Rdvz o simili)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margini
     Module59000Desc=Modulo per gestire margini
     Module60000Name=Commissioni
     Module60000Desc=Modulo per gestire commissioni
    -Module62000Name=Incoterm
    -Module62000Desc=Aggiunge funzioni per la gestione Incoterm
    +Module62000Name=Import-Export
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Risorse
     Module63000Desc=Gestione risorse (stampanti, automobili, locali, ...) e loro utilizzo all'interno degli eventi
     Permission11=Vedere le fatture attive
    @@ -651,9 +661,9 @@ Permission32=Creare/modificare  prodotti
     Permission34=Eliminare prodotti
     Permission36=Vedere/gestire prodotti nascosti
     Permission38=Esportare prodotti
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Creare/modificare i progetti (condivisi e di cui si è contatto). Può anche creare compiti/attività e assegnare risorse a progetti e compiti/attività
    -Permission44=Eliminare progetti
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Esporta progetti
     Permission61=Vedere gli interventi
     Permission62=Creare/modificare gli interventi
    @@ -686,7 +696,7 @@ Permission109=Eliminare spedizioni
     Permission111=Vedere i conti bancari
     Permission112=Creare/modificare/cancellare e confrontare operazioni bancarie
     Permission113=Imposta conti finanziari (crea, gestire le categorie)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Operazioni di esportazione ed estratti conto
     Permission116=Trasferimenti tra conti
     Permission117=Gestire l'invio di assegni
    @@ -694,15 +704,15 @@ Permission121=Vedere soggetti terzi collegati all'utente
     Permission122=Creare/modificare terzi legati all'utente
     Permission125=Eliminare terzi legati all'utente
     Permission126=Esportare terzi
    -Permission141=Legge tutti i progetti e tutti i compiti (anche progetti privati in cui non sono stato insertio come contatto)
    -Permission142=Crea e mofica tutti i progetti e tutti i compiti (anche progetti privati in cui non sono stato insertio come contatto)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Cancella tutti i progetti e tutti i compiti (anche progetti privati in cui non sono stato insertio come contatto)
     Permission146=Vedere provider
     Permission147=Vedere statistiche
     Permission151=Vedere ordini permanenti
     Permission152=Creare/modificare richieste di ordini permanenti
     Permission153=Trasmettere fatture ordini permanenti
    -Permission154=Pagare/rifiutare fatture ordini permanenti
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Leggi contratti / abbonamenti
     Permission162=Crea/modifica contratti/abbonamenti
     Permission163=Attiva un servizio/sottoscrizione di un contratto
    @@ -725,7 +735,7 @@ Permission187=Chiudere fornitore ordini
     Permission188=Annullare ordini fornitore
     Permission192=Creare linee
     Permission193=Eliminare linee
    -Permission194=Leggere banda linee
    +Permission194=Read the bandwidth lines
     Permission202=Creare connessioni ADSL
     Permission203=Ordinare ordini connessioni
     Permission204=Ordinare connessioni
    @@ -750,12 +760,12 @@ Permission244=Vedere contenuto delle categorie nascoste
     Permission251=Vedere altri utenti e gruppi
     PermissionAdvanced251=Vedere altri utenti
     Permission252=Creare/modificare altri utenti e gruppi e propri permessi
    -Permission253=Creare/Modificare altri utenti, gruppi e permessi
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Creare/modificare utenti interni/esterni e permessi
     Permission254=Eliminare o disattivare altri utenti
     Permission255=Cambiare le password di altri utenti
     Permission256=Eliminare o disabilitare altri utenti
    -Permission262=Estendere accesso a tutte le terze parti (non solo quelle legate all'utente). Non ha effetto sugli utenti esterni e sui progetti.
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Vedere CA
     Permission272=Vedere fatture
     Permission273=Emettere fatture
    @@ -765,7 +775,7 @@ Permission283=Eliminare contatti
     Permission286=Esportare contatti
     Permission291=Vedere tariffe
     Permission292=Impostare permessi per le tariffe
    -Permission293=Modificare tariffe clienti
    +Permission293=Modify customers tariffs
     Permission300=Vedere codici a barre
     Permission301=Creare/modificare codici a barre
     Permission302=Eliminare codici a barre
    @@ -787,11 +797,9 @@ Permission401=Vedere sconti
     Permission402=Creare/modificare sconti
     Permission403=Convalidare sconti
     Permission404=Eliminare sconti
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Crea/modifica pagamento stipendi
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Esporta stipendi
     Permission520=Read Loans
     Permission522=Crea/modifica prestiti
    @@ -844,8 +852,8 @@ Permission1251=Eseguire importazioni di massa di dati esterni nel database (data
     Permission1321=Esportare fatture attive, attributi e pagamenti
     Permission1322=Riaprire le fatture pagate
     Permission1421=Esportare ordini cliente e attributi
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Eliminare le richieste di ferie
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Leggi risorse
     Permission63002=Crea/modifica risorse
     Permission63003=Elimina risorsa
     Permission63004=Collega le risorse agli eventi
    -DictionaryCompanyType=Tipi dei soggetti terzi
    -DictionaryCompanyJuridicalType=forma legale dei soggetti terzi
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=Stato/Provincia
     DictionaryRegion=Regioni
    @@ -894,7 +902,7 @@ DictionaryVAT=Aliquote IVA o Tasse di vendita
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Termini di pagamento
     DictionaryPaymentModes=Modalità di pagamento
    -DictionaryTypeContact=Tipi di contatti/indirizzi
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotassa (WEEE)
     DictionaryPaperFormat=Formati di carta
    @@ -908,47 +916,47 @@ DictionarySource=Origine delle proposte/ordini
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Modelli per piano dei conti
     DictionaryAccountancyJournal=Libri contabili
    -DictionaryEMailTemplates=Modelli email
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Unità
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Tipi di ferie
    -DictionaryOpportunityStatus=Stato opportunità per progetto/clienti interessati
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Impostazioni salvate
     SetupNotSaved=Impostazioni non salvate
     BackToModuleList=Torna alla lista moduli
    -BackToDictionaryList=Torna alla lista dei dizionari
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=Gestione IVA
    -VATIsUsedDesc=Per impostazione predefinita l'aliquota IVA usata per la creazione di prospetti, fatture, ordini, ecc. segue la regola attiva:<br> - Se il venditore non è un soggetto IVA, l'aliquota IVA è pari a 0.<br> - Se i paesi di vendita e di acquisto coincidono, il valore predefinito dell'aliquota IVA è quello del prodotto nel paese di vendita. <br> - Se il venditore e l'acquirente si trovano entrambi all'interno della Comunità Europea ed i beni consistono in servizi di trasporto (auto, nave, aereo), il valore predefinito dell'aliquota IVA è 0 (L'IVA dovrebbe essere pagata dall'acquirente all'ufficio doganale del suo paese e non al venditore). <br> - Se il venditore e l'acquirente si trovano entrambi all'interno della Comunità Europea e l'acquirente non è una società, l'aliquota IVA predefinita è quella del prodotto venduto. <br> - Se il venditore e l'acquirente si trovano entrambi all'interno della Comunità Europea e l'acquirente è una società, l'aliquota IVA predefinita è 0.<br>In tutti gli altri casi l'aliquota IVA predefinita è 0.
    -VATIsNotUsedDesc=Impostazione predefinita in cui l'aliquota IVA è pari a 0. Adatto a soggetti come associazioni, persone fisiche o piccole imprese con regime semplificato o a forfait.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Tariffa
     LocalTax1IsNotUsed=Non usare seconda tassa
    -LocalTax1IsUsedDesc=Usa il secondo tipo di tassa (altra oltre l'IVA)
    -LocalTax1IsNotUsedDesc=Non usare altro tipo di tassa (altra oltre IVA)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Secondo tipo di tassa
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Non usare terza tassa
    -LocalTax2IsUsedDesc=Usa un terzo tipo di tassa (altra oltre IVA)
    -LocalTax2IsNotUsedDesc=Non usare altro tipo di tassa (altra oltre IVA)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Terzo tipo di tassa
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= Gestione RE
    -LocalTax1IsUsedDescES= Per impostazione predefinita il tasso di RE segue la regola standard dell'attivo standard: <br/> Se il compratore non è sottoposto a RE, RE di default = 0. Fine della regola. <br> Se l'acquirente è soggetto a RE, allore si segue l'impostazione predefinita. Fine della regola. <br/>
    -LocalTax1IsNotUsedDescES= Per default il RE proposto è 0. Fine della regola.
    -LocalTax1IsUsedExampleES= In Spagna sono dei professionisti soggetti ad alcune sezioni specifiche del IAE spagnolo.
    -LocalTax1IsNotUsedExampleES= In Spagna alcune società professionali sono soggette a regimi particolari.
    -LocalTax2ManagementES= Gestione IRPF
    -LocalTax2IsUsedDescES= Il tasso di IRPF per impostazione predefinita segue la regola dell'attivo standard: <br> Se il venditore non è sottoposto a IRPF, allora IRPF di default = 0. Fine della regola. <br> Se il venditore è sottoposto a IRPF, allora si segue l'impostazione IRPF predefinita. Fine della regola. <br>
    -LocalTax2IsNotUsedDescES= Per impostazione predefinita la proposta di IRPF è 0. Fine della regola.
    -LocalTax2IsUsedExampleES= In Spagna, liberi professionisti e freelance che forniscono servizi e le aziende che hanno scelto il regime fiscale modulare.
    -LocalTax2IsNotUsedExampleES= Vale per le imprese spagnole che non hanno optato per il sistema fiscale modulare.
    +LocalTax1ManagementES=Gestione RE
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Per default il RE proposto è 0. Fine della regola.
    +LocalTax1IsUsedExampleES=In Spagna sono dei professionisti soggetti ad alcune sezioni specifiche del IAE spagnolo.
    +LocalTax1IsNotUsedExampleES=In Spagna alcune società professionali sono soggette a regimi particolari.
    +LocalTax2ManagementES=Gestione IRPF
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Per impostazione predefinita la proposta di IRPF è 0. Fine della regola.
    +LocalTax2IsUsedExampleES=In Spagna, liberi professionisti e freelance che forniscono servizi e le aziende che hanno scelto il regime fiscale modulare.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Acquisti-vendite
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Vendite
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Descrizione (utilizzata in tutti i documenti per cui non esiste la traduzione)
     LabelOnDocuments=Descrizione sul documento
    -NbOfDays=Numero di giorni
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Alla fine del mese
     CurrentNext=Corrente/Successivo
     Offset=Scostamento
    @@ -984,7 +994,7 @@ DatabaseUser=Utente database
     DatabasePassword=Database delle password
     Tables=Tabelle
     TableName=Nome della tabella
    -NbOfRecord=Numero di record
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Tipo di driver
     SummarySystem=Informazioni riassuntive sul sistema
    @@ -996,17 +1006,17 @@ Skin=Tema
     DefaultSkin=Skin di default
     MaxSizeList=Lunghezza massima elenchi
     DefaultMaxSizeList=Lunghezza massima predefinita elenchi
    -DefaultMaxSizeShortList=Massima lunghezza di default per le liste brevi (es in scheda cliente)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Messaggio del giorno
     MessageLogin=Messaggio per la pagina di login
     LoginPage=Pagina di login
     BackgroundImageLogin=Immagine di sfondo
     PermanentLeftSearchForm=Modulo di ricerca permanente nel menu di sinistra
    -DefaultLanguage=La lingua da impostare come predefinita (codice lingua)
    +DefaultLanguage=Lingua predefinita (codice lingua)
     EnableMultilangInterface=Attiva l'interfaccia multilingua
     EnableShowLogo=Abilita la visualizzazione del logo
    -CompanyInfo=Informazioni società/organizzazione
    -CompanyIds=Company/organization identities
    +CompanyInfo=Società/Organizzazione
    +CompanyIds=Company/Organization identities
     CompanyName=Nome
     CompanyAddress=Indirizzo
     CompanyZip=CAP
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Titolare del conto bancario %s
     BankModuleNotActive=Modulo conti bancari non attivato
     ShowBugTrackLink=Mostra link "<strong>%s</strong>"
     Alerts=Avvisi e segnalazioni
    -DelaysOfToleranceBeforeWarning=Tolleranza sui ritardi prima di un avvertimento
    -DelaysOfToleranceDesc=Questa schermata consente di definire per ciascun elemento la tolleranza sul ritardo prima che appaia una segnalazione nella casella con l'immagine %s.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Tolleranza sul ritardo (in giorni) prima di un avvertimento per azioni pianificate non ancora realizzate
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolleranza sul ritardo (in giorni) prima di un avvertimento per progetti non terminati nei tempi previsti
    -Delays_MAIN_DELAY_TASKS_TODO=Tolleranza sul ritardo (in giorni) prima di un avvertimento per attività di progetto pianificate e non ancora completate
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolleranza sul ritardo (in giorni) prima di un avvertimento per ordini non ancora lavorati
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolleranza sul ritardo (in giorni) prima di un avvertimento per  proposte da chiudere
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolleranza sul ritardo (in giorni) prima di un avvertimento per proposte non fatturate
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolleranza sul ritardo (in giorni) prima di un avvertimento per servizi da attivare
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolleranza sul ritardo (in giorni) prima di un avvertimento per  servizi scaduti
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolleranza sul ritardo (in giorni) prima di un avvertimento per fatture dei fornitori non pagate
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolleranza sul ritardo (in giorni) prima di un avvertimento per fatture attive non pagate
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolleranza sul ritardo (in giorni) prima di un avvertimento per movimenti bancari in attesa di riconciliazione
    -Delays_MAIN_DELAY_MEMBERS=Tolleranza sul ritardo (in giorni) prima di un avvertimento per quota di adesione ritardata
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolleranza sul ritardo (in giorni) prima un avvertimento per deposito di assegni da fare
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolleranza (in giorni) prima di avvisare per l'approvazione delle note spese
    -SetupDescription1=La sezione impostazioni consente il setup iniziale di Dolibarr prima del suo utilizzo.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Altre voci di menu consentono la gestione di parametri opzionali.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Eventi di audit di sicurezza
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=Informazioni su Dolibarr
     InfoBrowser=Informazioni browser
     InfoOS=Informazioni OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser
     BrowserOS=Sistema operativo
     ListOfSecurityEvents=Elenco degli eventi di sicurezza Dolibarr
     SecurityEventsPurged=Eventi di sicurezza eliminati
    -LogEventDesc=Qui è possibile attivare il registro eventi di sicurezza di Dolibarr. Gli amministratori possono quindi vederne il contenuto attraverso <b>Strumenti di sistema - Audit</b>. Attenzione, attivando questa funzione è possibile che venga scritta una grande quantità di dati nel database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=I parametri di setup possono essere definiti solo da utenti di tipo <b>amministratore</b>.
     SystemInfoDesc=Le informazioni di sistema sono dati tecnici visibili in sola lettura e solo dagli amministratori.
     SystemAreaForAdminOnly=Questa sezione è disponibile solo agli utenti di tipo <b>amministratore</b>. Nessuna delle autorizzazioni disponibili può alterare questo limite.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Qui è possibile scegliere i parametri relativi all'aspetto di Dolibarr
     AvailableModules=Moduli disponibili
     ToActivateModule=Per attivare i moduli, andare nell'area <b>Impostazioni</b> (Home->Impostazioni->Moduli).
     SessionTimeOut=Timeout delle sessioni
    -SessionExplanation=Durata massima di una sessione, prima che venga richiesta una nuova autenticazione. N.B. Non è comunque garantito che la sessione scadrà al termine della durata, questo accade solo se è in esecuzione un sistema di pulizia della cache delle sessioni. <br/> Nota: senza usare sistemi particolari, PHP provvederà alla pulizia della sessione ogni <b>%s/%s</b> accessi circa, ma solo durante l'accesso da altre sessioni.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Trigger disponibili
    -TriggersDesc=I trigger sono file che una volta copiati nella directory <b>htdocs/include/trigger</b> modificano il flusso di lavoro di Dolibarr. Possono permettere nuove azioni, attivando nuovi eventi (creazione di nuova impresa, fattura di convalida, ecc...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=I trigger in questo file sono disattivati dal suffisso <b>-NoRun</b> nel nome.
     TriggerDisabledAsModuleDisabled=I trigger in questo file sono disabilitati perché il modulo <b>%s</b> è disattivato.
     TriggerAlwaysActive=I trigger in questo file sono sempre attivi, indipendentemente da quali moduli siano attivi in Dolibarr.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Inserire tutti i dati di riferimento. È possibile aggiungere i p
     ConstDesc=Questa pagina ti permette di modificare tutti i parametri non disponibili nelle pagine precedenti. Si tratta di parametri riservati per lo sviluppo o la risoluzione dei problemi.
     MiscellaneousDesc=Definire qui tutti gli altri parametri relativi alla sicurezza.
     LimitsSetup=Limiti/impostazioni di precisione
    -LimitsDesc=Da qui è possibile definire i limiti e la precisione utilizzati da Dolibarr.
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Limite massimo di decimali per i prezzi unitari.
     MAIN_MAX_DECIMALS_TOT=Limite massimo di decimali per il totale dei prezzi.
     MAIN_MAX_DECIMALS_SHOWN=Limite massimo dei decimali per i prezzi visualizzati a schermo (Aggiungi <b>...</b> dopo tale numero se vuoi visualizzare tre puntini per indicare il troncamento del numero).
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Prezzo unitario netto di un prodotto
     TotalPriceAfterRounding=Prezzo totale (al netto dell'IVA/IVA inclusa) dopo l'arrotondamento
     ParameterActiveForNextInputOnly=Parametro valido esclusivamente per il prossimo inserimento
    -NoEventOrNoAuditSetup=Nessun evento di sicurezza registrato. Questo può essere normale se non la registrazione non è stato attivata in <b>Impostazioni - sicurezza - controllo</b>.
    -NoEventFoundWithCriteria=Nessun evento di sicurezza trovato con i criteri di ricerca impostati.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Controllare le impostazioni locali del server di posta (sendmail)
     BackupDesc=Per effettuare un backup completo di Dolibarr è necessario:
     BackupDesc2=Salvare il contenuto della directory dei documenti (<b>%s</b>) che contiene tutti i file generati e caricati (e che quindi contiene tutti i files dump generati al passo precedente).
    -BackupDesc3=Salva il contenuto del tuo database <b>(%s)</b> in un file dump. È possibile utilizzare il seguente assistente.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=L'archivio delle directory va conservato in un luogo sicuro.
     BackupDescY=Il file generato va conservato in un luogo sicuro.
    -BackupPHPWarning=Il backup non può essere garantito con questo metodo. Preferito quello precedente
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Per ripristinare un backup Dolibarr, è necessario:
    -RestoreDesc2=Ripristinare da un file di archivio (zip file, ad esempio) della cartella Documenti per estrarre la lista dei file nella cartella documenti nella nuova installazione di Dolibarr o in questa cartella di documenti <b>(%s).</b>
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=Importa MySQL
     ForcedToByAModule= Questa regola è impsotata su <b>%s</b> da un modulo attivo
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=È necessario eseguire questo c
     YourPHPDoesNotHaveSSLSupport=Il PHP del server non supporta SSL
     DownloadMoreSkins=Scarica altre skin
     SimpleNumRefModelDesc=Restituisce un numero di riferimento nel formato %syymm-nnnn dove yy è l'anno, mm è il mese e nnnn è una sequenza progressiva che non ritorna a 0.
    -ShowProfIdInAddress=Nei documenti mostra identità professionale completa di indirizzi
    -ShowVATIntaInAddress=Nascondi il num IVA Intra con indirizzo sui documenti
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Traduzione incompleta
    -MAIN_DISABLE_METEO=Disabilita visualizzazione meteo
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Modalità percentuale
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Clicca per usare %s
     TestLoginToAPI=Test login per API
    -ProxyDesc=Dolibarr deve disporre di un accesso a Internet per alcune funzi. Definire qui i parametri per permettere a Dolibarr l'accesso ad internet attraverso un server proxy.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Accesso esterno
     MAIN_PROXY_USE=Utilizza un server proxy (invece dell'accesso diretto a internet)
     MAIN_PROXY_HOST=Nome/indirizzo del server proxy
     MAIN_PROXY_PORT=Porta del server proxy
     MAIN_PROXY_USER=Login per usare il server proxy
     MAIN_PROXY_PASS=Password per utilizzare il server proxy
    -DefineHereComplementaryAttributes=Definire qui tutti gli attributi non predefiniti che vuoi supportati da %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Campi extra
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Attributi complementari (terze parti)
    -ExtraFieldsContacts=Attributi Complementari (contatti/indirizzi)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Attributi Complementari (membri)
     ExtraFieldsMemberType=Attributi Complementari (tipo di membro)
     ExtraFieldsCustomerInvoices=Attributi aggiuntivi (fatture)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Attenzione: su alcuni sistemi Linux, per poter inviare email, la configurazione di sendmail deve contenere l'opzione -ba (il parametro mail.force_extra_parameters nel file php.ini). Se alcuni destinatari non ricevono messaggi di posta elettronica, provate a modificare questo parametro con mail.force_extra_parameters =-BA).
     PathToDocuments=Percorso documenti
     PathDirectory=Percorso directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Configurazione della traduzione
     TranslationKeySearch=Cerca una chiave o una stringa di testo
     TranslationOverwriteKey=Sovrascrivi una stringa di testo
     TranslationDesc=La scelta della lingua visualizzata su schermo può essere modificata:<br>*Globalmente dal menu <strong>Home - Impostazioni - Layout di visualizzazione</strong><br>*Per utente: Usa <strong>Impostazioni interfaccia utente</strong> della Scheda utente (cliccare l'icona di login in alto sullo schermo).
     TranslationOverwriteDesc=Puoi anche effettuare l'override delle stringhe di testo utilizzando la tabella seguente. Seleziona la tua lingua nel box "%s", inserisci la chiave della stringa da tradurre nel campo "%s" e la tua traduzione nel campo "%s".
    -TranslationOverwriteDesc2=Puoi utilizzare il tab di ricerca per individuare la chiave della stringa di tuo interesse
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Stringa di testo
     CurrentTranslationString=Stringa di testo corrente
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=Nuova stringa di testo da utilizzare
     OriginalValueWas=La traduzione originale è stata sovrascritta. Il testo originale era:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Applicazioni/moduli attivi: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Devi abilitare almeno un modulo
    -ClassNotFoundIntoPathWarning=La classe %s non è stata trovata al percorso PHP indicato
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Si in estate
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Sessioni salvate con criptazione tramite Suhosin
     ConditionIsCurrently=La condizione corrente è %s
    -YouUseBestDriver=Usi già il miglior driver attualmente disponibile: %s
    -YouDoNotUseBestDriver=Attualmente usi il driver %s , ma il driver raccomandato è il %s
    -NbOfProductIsLowerThanNoPb=Hai solo %s prodotti/servizi nel database. Non è richiesta alcuna ottimizzazione.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Ottimizzazione della ricerca
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=Stai utilizzando il browser %s. Questo browser è ok per sicurezza è performance.
    -BrowserIsKO=Stai utilizzando il browser web %s. Questo browser è noto per essere una cattiva scelta per sicurezza, performance e stabilità. Ti raccomandiamo di usare Chrome, Firefox, Opera o Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug caricato
     XCacheInstalled=XCache attivato
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Per esempio: +2 (compilare solo se ci sono problemi di scostamento del fuso orario)
     GetBarCode=Ottieni codice a barre
     ##### Module password generation
     PasswordGenerationStandard=Genera una password in base all'algoritmo interno di  Dolibarr: 8 caratteri comprensivi di numeri e lettere minuscole.
    -PasswordGenerationNone=Non suggerire password generate. La password deve essere digitata manualmente.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=Secondo la tua configurazione
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=È obbligatorio inserire un indirzzo email per creare un nuovo
     HRMSetup=Impostazioni modulo risorse umane
     ##### Company setup #####
     CompanySetup=Impostazioni modulo aziende
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per utente, un utente alla volta.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Modelli per i documenti
    -DocumentModelOdt=Generare documenti da modelli OpenDocuments (file .ODT o .ODS per OpenOffice, KOffice, TextEdit, ecc...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Filigrana sulle bozze
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Unicità dell'identità
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Deve essere unico?
    -MustBeMandatory=Obbligatorio per creare il soggetto terzo?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Obbligatorio per convalidare le fatture?
     TechnicalServicesProvided=Servizi tecnici forniti
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Un link per esportare <b>%s</b> è disponibile al seguente link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Un link per esportare <b>%s</b> è disponibile al seguent
     BillsSetup=Impostazioni modulo fatture
     BillsNumberingModule=Numerazione modulo fatture e note di credito
     BillsPDFModules=Modelli fattura in pdf
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Nota di credito
     CreditNotes=Note di credito
    @@ -1250,7 +1262,7 @@ WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order
     BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order
     ##### Orders #####
     OrdersSetup=Configurazione della gestione ordini
    -OrdersNumberingModules=Modelli di numerazione degli ordini
    +OrdersNumberingModules=Modelli di numerazione ordini
     OrdersModelModule=Modelli per ordini in pdf
     FreeLegalTextOnOrders=Testo libero sugli ordini
     WatermarkOnDraftOrders=Bozze degli ordini filigranate (nessuna filigrana se vuoto)
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Gestire un account di accesso per ogni membro
     AdherentMailRequired=Email obbligatoria per creare un nuovo membro
     MemberSendInformationByMailByDefault=Checkbox per inviare una mail di conferma per i membri (è attiva per impostazione predefinita)
     VisitorCanChooseItsPaymentMode=Il visitatore può scegliere tra le modalità di pagamento disponibili
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=Impostazioni del protocollo LDAP
     LDAPGlobalParameters=Parametri globali
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test della ricerca LDAP
     LDAPSynchroOK=Test sincronizzazione OK
     LDAPSynchroKO=Test sincronizzazione fallito
    -LDAPSynchroKOMayBePermissions=Sincronizzazione di prova non riuscita. Controllare che la connessione al server sia configurata correttamente e permetta gli aggiornamenti LDAP
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=Connessione TCP al server LDAP Ok (Server=%s, Port=%s)
     LDAPTCPConnectKO=Connessione TCP al server LDAP non riuscita (Server=%s, Port=%s)
    -LDAPBindOK=Connessione/Autenticazione sul server LDAP completata con successo (Server=%s, Porta=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connessione/Autenticazione sul server LDAP non riuscita (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=Server LDAP configurato per la versione 3
     LDAPSetupForVersion2=Server LDAP configurato per la versione 2
     LDAPDolibarrMapping=Mappatura Dolibarr
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, ActiveDirectory)
     LDAPFieldLoginSambaExample=Esempio: samAccountName
     LDAPFieldFullname=Cognome Nome
     LDAPFieldFullnameExample=Esempio: cn
    -LDAPFieldPasswordNotCrypted=Password in chiaro
    -LDAPFieldPasswordCrypted=Password criptata
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Esempio: userpassword
     LDAPFieldCommonNameExample=Esempio: cn
     LDAPFieldName=Nome
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=I valori di esempio sono progettati per <b>OpenLDAP</b> con i seguenti schemi di carico: <b>core.schema, cosine.schema, inetorgperson.schema</b>). Se si utilizzano tali schemi in OpenLDAP, modificare il file di configurazione <b>slapd.conf</b> per caricare tutti tali schemi.
     ForANonAnonymousAccess=Per un accesso autenticato (per esempio un accesso in scrittura)
     PerfDolibarr=Report di setup/ottimizzazione della performance
    -YouMayFindPerfAdviceHere=Troverai su questa pagina alcune informazioni o avvisi relative alla performance.
    -NotInstalled=Non installato, il tuo server non è rallentato per questo.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Cache applicativa
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Il modulo memcached, dedicato all'utilizzo del server memcached, è stato attivato.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=Cache HTTP per le risorse statiche (css, img, javascript)
     FilesOfTypeCached=I file di tipo %s vengono serviti dalla cache del server HTTP
     FilesOfTypeNotCached=I file di tipo %s non vengono serviti dalla cache del server HTTP
     FilesOfTypeCompressed=I file di tipo %s vengono compressi dal server HTTP
     FilesOfTypeNotCompressed=I file di tipo %s non vengono compressi dal server HTTP
     CacheByServer=Cache per server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache per browser
     CompressionOfResources=Compressione delle risposte HTTP
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Con i browser attuali l'individuazione automatica non è possibile
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Filtri di ricerca predefiniti
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Impostazioni modulo prodotti
     ServiceSetup=Impostazioni modulo servizi
     ProductServiceSetup=Impostazioni moduli prodotti e servizi
     NumberOfProductShowInSelect=Numero massimo di prodotti per le liste nelle combo di selezione  (0=nessun limite)
    -ViewProductDescInFormAbility=Visualizzare la descrizione dei prodotti nei form (altrimenti appariranno come tooltip popup)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualizzazione delle descrizioni dei prodotti nella lingua del contatto
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Tipo di codici a barre predefinito da utilizzare per i prodotti
     SetDefaultBarcodeTypeThirdParties=Tipo di codici a barre predefinito da utilizzare per terze parti
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Impostazione del modulo di consegna
     SendingsReceiptModel=Modello di ricevuta consegna (D.D.T.)
     SendingsNumberingModules=Moduli per la numerazione delle spedizioni
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Testo libero per le spedizioni
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Numerazione dei moduli di consegna prodotti
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Editor avanzato
     ActivateFCKeditor=Attiva editor avanzato per:
     FCKeditorForCompany=Editor WYSIWIG per le società
     FCKeditorForProduct=Editor WYSIWIG per i prodotti/servizi
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= Editor WYSIWIG per le email
     FCKeditorForUserSignature=WYSIWIG creazione/modifica della firma utente
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=la connessione al server riuscita, ma il database è errato.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
     OSCommerceTestOk=Connessione al server ' %s' sul database' %s' con l'utente ' %s' riuscita.
    -OSCommerceTestKo1=Connessione al server ' %s' riuscita, ma il database' %s' non è raggiungibile.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connessione al server ' %s' con l'utente' %s' fallita.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu soppresso
     Menus=Menu
    @@ -1548,7 +1562,7 @@ DetailRight=Visualizza il menu come non attivo (grigio)
     DetailLangs=Nome del file .lang contenente la traduzione del codice dell'etichetta
     DetailUser=Interno / esterno / Tutti
     Target=Destinatario
    -DetailTarget=Target del link (_blank, in una nuova finestra, ecc...)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Livello (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Modifica Menu
     DeleteMenu=Elimina voce menu
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=L'IVA è dovuta:<br/> - sulla consegna/pagamento per i beni
     OptionVatDebitOptionDesc=L'IVA è dovuta:<br/> - alla consegna/pagamento per i beni<br/>- alla fatturazione (a debito) per i servizi
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Alla consegna
     OnPayment=Al pagamento
     OnInvoice=Alla fatturazione
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Codice contabilità acquisti
     AgendaSetup=Impostazioni modulo agenda
     PasswordTogetVCalExport=Chiave per autorizzare l'esportazione di link
     PastDelayVCalExport=Non esportare evento più vecchio di
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Attiva i suoni per le notifiche
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Impostazioni modulo ClickToDial (telefonate con un clic)
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=Questo modulo aggiunge un'icona accanto ai numeri telefonici dei contatti.<br/> Cliccando sull'icona si attiva il collegamento al server che effettuerà le chiamate telefoniche.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Peri numeri di telefono basta usare un link di tipo "tel:"
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Punto vendita
     CashDeskSetup=Impostazioni modulo punto vendita
    -CashDeskThirdPartyForSell=Soggetto terzo predefinito per le vendite
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Conto bancario da utilizzare per pagamenti in contanti
     CashDeskBankAccountForCheque= Conto bancario da utilizzare per pagamenti con assegno
     CashDeskBankAccountForCB= Conto bancario da utilizzare per pagamenti con carta di credito
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Impostazioni modulo segnalibri
    -BookmarkDesc=Questo modulo consente di gestire i segnalibri web. È possibile aggiungere collegamenti a pagine Dolibarr o a qualsiasi altro sito web esterno al menu di sinistra.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Numero massimo dei segnalibri da mostrare nel menu di sinistra
     ##### WebServices #####
     WebServicesSetup=Impostazioni modulo webservices
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Impostazioni modulo multiazienda
     ##### Suppliers #####
     SuppliersSetup=Impostazioni modulo fornitori
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Modello per la numerazione delle fatture fornitore
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Impostazioni modulo progetti
     ProjectsModelModule=Modelli dei rapporti dei progetti
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Periodi di esercizio fiscale
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=Lista notifiche per utente
     ListOfNotificationsPerUserOrContact=Lista di notifiche per utente o per contatto
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Soglia
     BackupDumpWizard=Procedura guidata per creare file di backup del database (dump)
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Evidenzia le righe delle tabelle passandoci sopra con il mouse
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Colore del testo del titolo della pagina
     LinkColor=Colore dei link
     PressF5AfterChangingThis=Premi CTRL + F5 sulla tastiera o cancella la cache del browser per rendere effettiva la modifica di questo parametro
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Periodo minimo di avviso (le richieste di ferie/permesso dovranno essere effettuate prima di questo periodo)
     NbAddedAutomatically=Numero di giorni aggiunti ai contatori di utenti (automaticamente) ogni mese
     EnterAnyCode=Questo campo contiene un riferimento per identificare la linea. Inserisci qualsiasi valore di tua scelta, ma senza caratteri speciali.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=Il colore RGB è nel formato HEX, es:FF0000
     PositionIntoComboList=Posizione di questo modello nella menu a tendina
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=L'elemento a cui è abbinato questo modello
     TypeOfTemplate=Tipo di modello
    -TemplateIsVisibleByOwnerOnly=Template visibile solo al proprietario
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visibile ovunque
     VisibleNowhere=Invisibile
     FixTZ=Correzione del fuso orario
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=Stai usando l'ultima versione stabile
     TitleExampleForMajorRelease=Esempio di messaggio che puoi usare per annunciare questa major release (sentiti libero di usarlo sui tuoi siti web)
     TitleExampleForMaintenanceRelease=Esempio di messaggio che puoi usare per annunciare questa versione di manutenzione (sentiti libero di usarla sui tuoi siti web)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Modelli per documenti prodotto
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=Guarda ChangeLog file (in inglese)
     AllPublishers=Tutti gli editori
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Aggiungi altre pagine o servizi
     AddModels=aggiungi template per documenti o per numerazione
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Rilevamento impossibile
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Lista delle API disponibili
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Il modulo è stato attivato. Le autorizzazioni per i moduli attivati ​​sono state fornite solo agli utenti amministratori. Potrebbe essere necessario concedere le autorizzazioni ad altri utenti o gruppi manualmente, se necessario.
    -UserHasNoPermissions=Questo utente non ha alcun permesso impostato
    -TypeCdr=Utilizzare "Nessuno" se la data del termine di pagamento è la data della fattura più un delta in giorni (delta è il campo "Nb di giorni") <br> Utilizzare "Alla fine del mese", se, dopo il delta, la data deve essere aumentata per raggiungere la fine del mese (+ un "Offset" facoltativo in giorni) <br> Utilizzare "Corrente / Avanti" per impostare la data del termine di pagamento come il primo giorno del mese (N è memorizzato nel campo "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Valuta di riferimento della compagnia (vai nella configurazione della compagnia per cambiarla)
    -WarningNoteModuleInvoiceForFrenchLaw=Questo modulo %s è conforme alle leggi francesi (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=Questo modulo %s è conforme alle leggi francesi (Loi Finance 2016) poichè il modulo Registri non reversibili viene attivato automaticamente.
    -WarningInstallationMayBecomeNotCompliantWithLaw=hai cercato di installare un modulo %s esterno. L'attivazione di un modulo esterno significa che si ha fiducia nell'editore del modulo e si è sicuri che questo modulo non altera in modo negativo il comportamento dell'applicazione e sia conforme alle leggi del proprio paese (%s). Se il modulo presenta una funzione illegale, diventi responsabile per l'uso di un software illegale.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Margine sinistro sul PDF
     MAIN_PDF_MARGIN_RIGHT=Margine destro sul PDF
     MAIN_PDF_MARGIN_TOP=Margine superiore sul PDF
     MAIN_PDF_MARGIN_BOTTOM=Margine inferiore su PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Immettere la regola di calcolo se il campo precedente era impostato su Sì (ad esempio 'CODEGRP1 + CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Sono state trovate diverse varianti linguistiche
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Rimuovi caratteri speciali
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=Contatto GDPR
    -GDPRContactDesc=Se memorizzi dati relativi a società / cittadini europei, puoi memorizzare qui il contatto responsabile del trattamento dei dati personali/sensibili
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=CAP
     ##### Resource ####
     ResourceSetup=Configurazione del modulo Risorse
     UseSearchToSelectResource=Utilizza il form di ricerca per scegliere una risorsa (invece della lista a tendina)
     DisabledResourceLinkUser=Disattiva funzionalità per collegare una risorsa agli utenti
     DisabledResourceLinkContact=Disattiva funzionalità per collegare una risorsa ai contatti
     ConfirmUnactivation=Conferma reset del modulo
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/it_IT/banks.lang b/htdocs/langs/it_IT/banks.lang
    index 041bc986a20..589f7688804 100644
    --- a/htdocs/langs/it_IT/banks.lang
    +++ b/htdocs/langs/it_IT/banks.lang
    @@ -7,7 +7,7 @@ BankName=Nome della Banca
     FinancialAccount=Conto
     BankAccount=Conto bancario
     BankAccounts=Conti bancari
    -BankAccountsAndGateways=Conti bancari | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Mostra conto
     AccountRef=Rif. conto
     AccountLabel=Etichetta conto
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Domiciliazione del conto
     BankAccountCountry=Paese del conto
     BankAccountOwner=Nome titolare
     BankAccountOwnerAddress=Indirizzo titolare
    -RIBControlError=Controllo coordinate fallito. I dati del conto sono incompleti o sbagliati (controlla paese, codici e IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Crea conto
     NewBankAccount=Nuovo conto
     NewFinancialAccount=Nuovo conto finanziario
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Transazioni da conciliare
     Conciliable=Conciliabile
     Conciliate=Concilia transazione
     Conciliation=Conciliazione
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Riconciliazione in ritardo
     IncludeClosedAccount=Includi i conti chiusi
     OnlyOpenedAccount=Solo conti aperti
    @@ -104,7 +105,7 @@ SocialContributionPayment=Pagamento delle imposte sociali/fiscali
     BankTransfer=Bonifico bancario
     BankTransfers=Bonifici e giroconti
     MenuBankInternalTransfer=Trasferimento interno
    -TransferDesc=Trasferimento da un conto ad un altro, Dolibarr scriverà due record (uno di addebito nel conto di origine e uno di credito nel conto di destinazione), dello stesso importo. Per questa operazione verranno usate la stessa data e la stessa etichetta.
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Da
     TransferTo=A
     TransferFromToDone=È stato registrato un trasferimento da <b> %s </b> a <b> %s </b> di <b> %s </b> %s.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Vuoi davvero eliminare questa ricevuta?
     BankChecks=Assegni bancari
     BankChecksToReceipt=Assegni in attesa di deposito
     ShowCheckReceipt=Mostra ricevuta di versamento assegni
    -NumberOfCheques=Numero di assegni
    +NumberOfCheques=No. of check
     DeleteTransaction=Elimina transazione
     ConfirmDeleteTransaction=Vuoi davvero eliminare questa transazione?
     ThisWillAlsoDeleteBankRecord=Questa operazione elimina anche le transazioni bancarie generate
    @@ -135,8 +136,8 @@ BankTransactionLine=Transazione bancaria
     AllAccounts=Tutte le banche e le casse
     BackToAccount=Torna al conto
     ShowAllAccounts=Mostra per tutti gli account
    -FutureTransaction=Transazione futura. Non è possibile conciliare.
    -SelectChequeTransactionAndGenerate=Seleziona gli assegni dar includere nella ricevuta di versamento e clicca su &quot;Crea&quot;.
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Scegliere l'estratto conto collegato alla conciliazione. Utilizzare un valore numerico ordinabile: AAAAMM o AAAAMMGG
     EventualyAddCategory=Infine, specificare una categoria in cui classificare i record
     ToConciliate=Da conciliare?
    @@ -153,7 +154,7 @@ RejectCheckDate=Data di restituzione dell'assegno
     CheckRejected=Assegno restituito
     CheckRejectedAndInvoicesReopened=Assegno restituito e fatture riaperte
     BankAccountModelModule=Modelli di documento per i conti bancari e le casse
    -DocumentModelSepaMandate=Modello di documento per i mandati SEPA. Da utilizzare solamente per i paese appartenenti alla CEE
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template per la stampa delle informazioni relative al BAN
     NewVariousPayment=Nuovi pagamenti vari
     VariousPayment=Pagamenti vari
    @@ -162,4 +163,5 @@ ShowVariousPayment=Mostra pagamenti vari
     AddVariousPayment=Aggiungi pagamenti vari
     SEPAMandate=Mandato SEPA
     YourSEPAMandate=I tuoi mandati SEPA
    -FindYourSEPAMandate=Questo è il tuo mandato SEPA che autorizza la nostra azienda ad effettuare un addebito diretto alla tua banca. Da restituire firmata (scan del documento firmato) o via email.
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/it_IT/bills.lang b/htdocs/langs/it_IT/bills.lang
    index cb8fe65a017..2d7aa23a78b 100644
    --- a/htdocs/langs/it_IT/bills.lang
    +++ b/htdocs/langs/it_IT/bills.lang
    @@ -12,23 +12,23 @@ BillsLate=Ritardi nei pagamenti
     BillsStatistics=Statistiche fatture attive
     BillsStatisticsSuppliers=Statistiche fatture passive
     DisabledBecauseDispatchedInBookkeeping=Disabilitato perché la fattura è stata inviata alla contabilità
    -DisabledBecauseNotLastInvoice=Disabilitato perché la fattura non è cancellabile. Alcune fatture sono state registrate dopo questa e si creerebbero errori nella sequenza di numerazione.
    +DisabledBecauseNotLastInvoice=Disabilitato perché la fattura non è cancellabile. Alcune fatture sono state registrate dopo questa e si avrebbero errori nella sequenza di numerazione.
     DisabledBecauseNotErasable=Disabilitata perché impossibile da cancellare
     InvoiceStandard=Fattura Standard
     InvoiceStandardAsk=Fattura Standard
     InvoiceStandardDesc=Questo tipo di fattura è la fattura più comune.
    -InvoiceDeposit=Nota d'accredito
    -InvoiceDepositAsk=Nota d'accredito
    -InvoiceDepositDesc=Questo tipo di fattura si crea quando una nota d'accredito viene ricevuta.
    +InvoiceDeposit=Fattura d'acconto
    +InvoiceDepositAsk=Fattura d'acconto
    +InvoiceDepositDesc=Questo tipo di fattura viene usata quando si riceve un acconto.
     InvoiceProForma=Fattura proforma
     InvoiceProFormaAsk=Fattura proforma
     InvoiceProFormaDesc=La <b>fattura proforma</b> è uguale ad una fattura vera, ma non ha valore contabile.
     InvoiceReplacement=Fattura sostitutiva
     InvoiceReplacementAsk=Fattura sostitutiva
    -InvoiceReplacementDesc=La <b>fattura sostitutiva</b> è utilizzata per annullare e sostituire completamente una fattura non ancora pagata.<br><br>Nota: Solo le fatture non pagate possono essere sostituite. Se la fattura che vuoi sostituire non è ancora stata chiusa, questa verrà automaticamente chiusa come "abbandonata".
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Nota di credito
     InvoiceAvoirAsk=Nota di credito per correggere fattura
    -InvoiceAvoirDesc=La <b>nota di credito</b> è una fattura con importo negativo utilizzata per risolvere il problema di una fattura emessa con importo diverso da quello realmente pagato (perché il cliente ha pagato troppo per errore o non ha pagato completamente perché ad esempio ha restituito alcuni prodotti).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Crea una Nota Credito con le righe della fattura di origine.
     invoiceAvoirWithPaymentRestAmount=Crea nota di credito con il restante da pagare della fattura originale
     invoiceAvoirLineWithPaymentRestAmount=Crea nota di credito con il restante da pagare
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=nella valuta delle fatture
     PaidBack=Rimborsato
     DeletePayment=Elimina pagamento
     ConfirmDeletePayment=Vuoi davvero cancellare questo pagamento?
    -ConfirmConvertToReduc=Vuoi trasformare questa nota di credito in uno sconto assoluto?<br/> L'importo di tale credito verrà salvato nello sconto assoluto del cliente e potrà essere utilizzato come sconto per una successiva fattura a questo cliente.
    -ConfirmConvertToReducSupplier=Vuoi convertire %s in uno sconto assoluto?<br>L'importo verrà salvato tra tutti gli sconti e potrebbe essere utilizzato come sconto per una fattura attuale o futura di questo fornitore.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Pagamenti fornitori
     ReceivedPayments=Pagamenti ricevuti
     ReceivedCustomersPayments=Pagamenti ricevuti dai clienti
    -PayedSuppliersPayments=Pagamenti effettuati ai fornitori
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Pagamenti ricevuti dai clienti da convalidare
     PaymentsReportsForYear=Report pagamenti per %s
     PaymentsReports=Report pagamenti
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Condizioni di pagamento
     PaymentAmount=Importo del pagamento
     ValidatePayment=Convalidare questo pagamento?
     PaymentHigherThanReminderToPay=Pagamento superiore alla rimanenza da pagare
    -HelpPaymentHigherThanReminderToPay=Attenzione, l'importo del pagamento di una o più fatture è più elevato rispetto al dovuto.<br/> Modifica l'importo, oppure conferma e crea una nota di credito per la differenza riscossa.
    -HelpPaymentHigherThanReminderToPaySupplier=Attenzione, l'importo del pagamento di una o più fatture è superiore al residuo da pagare. <br> Modifica l'importo, altrimenti conferma e crea una nota di credito per l'eccedenza pagata.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classifica come "pagata"
     ClassifyPaidPartially=Classifica come "parzialmente pagata"
     ClassifyCanceled=Classifica come "abbandonata"
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Chiusa (non pagata)
     BillStatusClosedPaidPartially=Pagata (in parte)
     BillShortStatusDraft=Bozza
     BillShortStatusPaid=Pagata
    -BillShortStatusPaidBackOrConverted=Rimborsata o convertita
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Pagato
     BillShortStatusCanceled=Abbandonata
     BillShortStatusValidated=Convalidata
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Non riborsata
     BillShortStatusClosedUnpaid=Chiusa
     BillShortStatusClosedPaidPartially=Pagata (in parte)
     PaymentStatusToValidShort=Da convalidare
    -ErrorVATIntraNotConfigured=Numero di partita IVA non ancora impostato
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Nessuna modalità di pagamento predefinita. Vai al modulo impostazione delle fatture per risolvere il problema.
     ErrorCreateBankAccount=Crea un conto bancario, quindi passa al modulo impostazione delle fatture per definire le modalità di pagamento
     ErrorBillNotFound=La fattura %s non esiste
    -ErrorInvoiceAlreadyReplaced=Errore, si tenta di convalidare una fattura per sostituire la fattura %s. Ma questa è già stato sostituita dalla fattura %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Errore, sconto già utilizzato
     ErrorInvoiceAvoirMustBeNegative=Errore, la fattura a correzione deve avere un importo negativo
     ErrorInvoiceOfThisTypeMustBePositive=Errore, questo tipo di fattura deve avere importo positivo
     ErrorCantCancelIfReplacementInvoiceNotValidated=Errore, non si può annullare una fattura che è stato sostituita da un'altra fattura non ancora convalidata
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Questa parte o un'altra è già utilizzata in modo che la serie di sconti non possa essere rimossa.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Da
     BillTo=A
     ActionsOnBill=Azioni su fattura
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Vuoi davvero cambiare lo stato della fattura <b>%s</b> i
     ConfirmCancelBill=Vuoi davvero annullare la fattura <b>%s</b>?
     ConfirmCancelBillQuestion=Perché vuoi classificare questa fattura come "abbandonata"?
     ConfirmClassifyPaidPartially=Vuoi davvero cambiare lo stato della fattura <b>%s</b> in "pagato"?
    -ConfirmClassifyPaidPartiallyQuestion=La fattura non è stata pagata completamente. Per quale ragione vuoi chiudere questa fattura?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Il restante da pagare <b>(%s %s)</b> viene scontato perché il pagamento è stato eseguito entro il termine. L'IVA sarà regolarizzata mediante nota di credito.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Il restante da pagare <b>(%s %s)</b> viene scontato perché il pagamento è stato effettuato entro il termine.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Il restante da pagare <b>(%s %s)</b> viene scontato perché il pagamento è stato eseguito entro il termine. Accetto di perdere l'IVA sullo sconto.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Il restante da pagare <b>(%s %s)</b> viene scontato perché il pagamento è stato eseguito entro il termine. L'IVA sullo sconto sarà recuperata senza nota di credito.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Cliente moroso
     ConfirmClassifyPaidPartiallyReasonProductReturned=Parziale restituzione di prodotti
     ConfirmClassifyPaidPartiallyReasonOther=Altri motivi
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Questa scelta è possibile se la fattura prevede la clausola di importi adeguabili. (Esempio «Solo l'imposta corrispondente al prezzo effettivamente pagato dà diritto alla deduzione»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In alcuni paesi, questa scelta potrebbe essere possibile solo se la fattura contiene la clausola adeguata.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Utilizzare questa scelta se tutte le altre opzioni sono inadeguate.
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Un <b>cattivo cliente</b> è un cliente che si rifiuta di pagare il suo debito.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Questa scelta viene utilizzata quando il pagamento non è completo perché alcuni dei prodotti sono stati restituiti
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Utilizzare questa scelta se tutte le altre opzioni sono inadeguate, per esempio: <br/>- il pagamento non è completo, in quanto alcuni prodotti sono stati restituiti.<br/>- l'importo richiesto è troppo oneroso per essere trasformato in uno sconto.<br/>Per correttezza contabile dovrà essere emessa una nota di credito.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Altro
     ConfirmClassifyAbandonReasonOtherDesc=Questa scelta sarà utilizzata in tutti gli altri casi. Perché, ad esempio, si prevede di creare una fattura sostitutiva.
     ConfirmCustomerPayment=Confermare riscossione per <b>%s</b> %s?
    @@ -200,16 +201,17 @@ ConfirmSupplierPayment=Confermare riscossione per <b>%s</b> %s?
     ConfirmValidatePayment=Vuoi davvero convalidare questo pagamento? Una volta convalidato non si potranno più operare modifiche.
     ValidateBill=Convalida fattura
     UnvalidateBill=Invalida fattura
    -NumberOfBills=Numero di fatture
    -NumberOfBillsByMonth=Numero di fatture per mese
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Importo delle fatture
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Importo delle fatture per mese (al netto delle imposte)
     ShowSocialContribution=Mostra imposte sociali/fiscali
     ShowBill=Visualizza fattura
     ShowInvoice=Visualizza fattura
     ShowInvoiceReplace=Visualizza la fattura sostitutiva
     ShowInvoiceAvoir=Visualizza nota di credito
    -ShowInvoiceDeposit=Mostra note d'accredito
    +ShowInvoiceDeposit=Mostra fattura d'acconto
     ShowInvoiceSituation=Mostra avanzamento lavori
     ShowPayment=Visualizza pagamento
     AlreadyPaid=Già pagato
    @@ -260,9 +262,9 @@ Repeatables=Modelli
     ChangeIntoRepeatableInvoice=Converti in modello di fattura
     CreateRepeatableInvoice=Crea modello di fattura
     CreateFromRepeatableInvoice=Crea da modello di fattura
    -CustomersInvoicesAndInvoiceLines=Fatture attive e righe di fattura
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Fatture attive e pagamenti
    -ExportDataset_invoice_1=Elenco delle fatture attive e righe di fattura
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Fatture clienti e pagamenti
     ProformaBill=Fattura proforma:
     Reduction=Sconto
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Sconto clienti
     SupplierDiscounts=Vendors discounts
     BillAddress=Indirizzo di fatturazione
    -HelpEscompte=Questo sconto è concesso al cliente perché il suo pagamento è stato effettuato prima del termine.
    -HelpAbandonBadCustomer=Tale importo è stato abbandonato (cattivo cliente) ed è considerato come un abbandono imprevisto.
    -HelpAbandonOther=Tale importo è stato abbandonato dal momento che è stato un errore (cliente errato o fattura sostituita da altra, per esempio)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Id imposte sociali/fiscali
     PaymentId=Id Pagamento
     PaymentRef=Rif. pagamento
    @@ -322,21 +324,21 @@ CloneInvoice=Clona fattura
     ConfirmCloneInvoice=Sei sicuro di voler clonare la <b>fattura %s?</b>
     DisabledBecauseReplacedInvoice=Disabilitata perché la fattura è stata sostituita
     DescTaxAndDividendsArea=Questa area riporta un riepilogo di tutti i pagamenti effettuati per spese straordinarie. Qui sono inclusi tutti i pagamenti registrati durante l'anno impostato.
    -NbOfPayments=Numero pagamenti
    +NbOfPayments=No. of payments
     SplitDiscount=Dividi lo sconto in due
    -ConfirmSplitDiscount=Vuoi davvero dividere questo sconto <b>del %s %s</b> in 2 sconti inferiori?
    -TypeAmountOfEachNewDiscount=Importo in input per ognuna delle due parti:
    -TotalOfTwoDiscountMustEqualsOriginal=Il totale di due nuovi sconti deve essere pari allo sconto originale.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Vuoi davvero eliminare questo sconto?
     RelatedBill=Fattura correlata
     RelatedBills=Fatture correlate
     RelatedCustomerInvoices=Fatture attive correlate
     RelatedSupplierInvoices=Fatture passive correlate
     LatestRelatedBill=Ultima fattura correlata
    -WarningBillExist=Attenzione, una o più fatture già esistenti
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Strumento di fusione dei PDF
     AmountPaymentDistributedOnInvoice=Importo del pagamento distribuito in fattura
    -PaymentOnDifferentThirdBills=Consenti pagamenti su diverse fatture di terze parti ma appartenenti alla stessa società madre
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Nota di pagamento
     ListOfPreviousSituationInvoices=Elenco delle fatture di avanzamento lavori precedenti
     ListOfNextSituationInvoices=Elenco delle prossime fatture di avanzamento lavori
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Assegno
     PaymentTypeShortCHQ=Assegno
     PaymentTypeTIP=TIP (Documenti contro pagamenti)
     PaymentTypeShortTIP=TIP pagamenti
    -PaymentTypeVAD=Pagamento on-line
    -PaymentTypeShortVAD=Pagamen. online
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Assegno circolare
     PaymentTypeShortTRA=Assegno circolare
     PaymentTypeFAC=Fattore
     PaymentTypeShortFAC=Fattore
     BankDetails=Dati banca
     BankCode=ABI
    -DeskCode=CAB
    +DeskCode=Office code
     BankAccountNumber=C.C.
    -BankAccountNumberKey=CIN
    +BankAccountNumberKey=Check digits
     Residence=Domiciliazione
    -IBANNumber=Codice IBAN
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=Codice BIC/SWIFT
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Pagamenti tramite bonifico sul seguente C. C.
     VATIsNotUsedForInvoice=* Non applicabile IVA art-293B del CGI
     LawApplicationPart1=Con l'applicazione della legge 80.335 del 12/05/80
     LawApplicationPart2=I beni restano di proprietà della
    -LawApplicationPart3=il venditore fino alla completa riscossione
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=del loro prezzo.
     LimitedLiabilityCompanyCapital=SRL con capitale di
     UseLine=Applica
    @@ -463,7 +465,7 @@ Cheques=Assegni
     DepositId=ID deposito
     NbCheque=Numero di assegni
     CreditNoteConvertedIntoDiscount=Questo %s è stato convertito in %s
    -UsBillingContactAsIncoiveRecipientIfExist=Utilizza l'indirizzo del contatto associato alla fattura come indirizzo di fatturazione invece di quello impostato per l'azienda
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Mostra tutte le fatture non pagate
     ShowUnpaidLateOnly=Visualizza solo fatture con pagamento in ritardo
     PaymentInvoiceRef=Pagamento fattura %s
    @@ -474,21 +476,22 @@ Reported=Segnalato
     DisabledBecausePayments=Impossibile perché ci sono dei pagamenti
     CantRemovePaymentWithOneInvoicePaid=Impossibile rimuovere il pagamento. C'è almeno una fattura classificata come pagata
     ExpectedToPay=Pagamento previsto
    -CantRemoveConciliatedPayment=Impossibile eliminare il pagamento conciliato
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Pagato con questo pagamento
    -ClosePaidInvoicesAutomatically=Classifica come "Pagata" tutte le fatture, le note d'addebitoo le note di credito interamente pagate.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classifica come "Pagata" tutte le note di credito interamente rimborsate
    -ClosePaidContributionsAutomatically=Classificare "Pagato" tutti i contributi sociali o fiscali interamente versati.
    -AllCompletelyPayedInvoiceWillBeClosed=Tutte le fatture totalmente pagate saranno automaticamente chiuse allo stato "Pagato".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Paga
     ToMakePaymentBack=Rimborsa
     ListOfYourUnpaidInvoices=Elenco fatture non pagate
     NoteListOfYourUnpaidInvoices=Nota: questo elenco contiene solo fatture che hai collegato ad un rappresentante.
     RevenueStamp=Marca da bollo
    -YouMustCreateInvoiceFromThird=Questa opzione è disponibile solo per la creazione di una fattura dalla maschera "cliente" del soggetto terzo.
    -YouMustCreateInvoiceFromSupplierThird=Questa opzione è disponibile solo quando si crea la fattura dalla scheda "fornitore" del soggetto terzo
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=Per creare un nuovo modelo bisogna prima creare una fattura normale e poi convertirla.
     PDFCrabeDescription=Modello di fattura Crabe. (Modello raccomandatoi)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Modello di fattura Crevette. Template completo per le fatture (Modello raccomandato)
     TerreNumRefModelDesc1=Restituisce un numero nel formato %syymm-nnnn per le fatture, %syymm-nnnn per le note di credito e %syymm-nnnn per i versamenti, dove yy è l'anno, mm è il mese e nnnn è una sequenza progressiva, senza salti e che non si azzera.
     MarsNumRefModelDesc1=restituisce un numero nel formato %saamm-nnnn per fatture standard, %syymm-nnnn per le fatture sostitutive, %syymm-nnnn per le note d'addebito e %syymm-nnnn per le note di credito dove yy sta per anno, mm per mese e nnnn è una sequenza progressiva, senza salti e che non si azzera.
    @@ -533,7 +536,7 @@ invoiceLineProgressError=L'avanzamento della riga fattura non può essere maggio
     updatePriceNextInvoiceErrorUpdateline=Errore: aggiornamento prezzo della riga di fattura: %s
     ToCreateARecurringInvoice=Per creare una fattura ricorrente per questo contratto, creare inizialmente la bozza di fattura, poi convertirla in un modello di fattura e definire quindi la frequenza di generazione delle future fatture.
     ToCreateARecurringInvoiceGene=Per generare regolarmente e manualmente le prossime fatture, basta andare sul menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=Se è necessario che tali fatture vengano generate automaticamente, chiedere all'amministratore di abilitare e impostare il modulo <strong>%s</strong>. Si noti che entrambi i metodi (manuale e automatico) possono essere utilizzati insieme senza alcun rischio di duplicazione.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Elimina template di fattura
     ConfirmDeleteRepeatableInvoice=Sei sicuro di voler eliminare il modello di fattura?
     CreateOneBillByThird=Crea una fattura per soggetto terzo (altrimenti, una fatture per ordine)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Imposta data di inizio
     AutoFillDateTo=Imposta data di fine per la riga di servizio con la successiva data fattura
     AutoFillDateToShort=Imposta data di fine
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Fattura cancellata
    diff --git a/htdocs/langs/it_IT/cashdesk.lang b/htdocs/langs/it_IT/cashdesk.lang
    index f5dfa66bce0..9096d84fdf6 100644
    --- a/htdocs/langs/it_IT/cashdesk.lang
    +++ b/htdocs/langs/it_IT/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Mostra società
     ShowStock=Mostra magazzino
     DeleteArticle=Clicca per rimuovere l'articolo
     FilterRefOrLabelOrBC=Cerca (Rif/Etichetta)
    -UserNeedPermissionToEditStockToUsePos=Il sistema è impostato per diminuire le scorte alla creazione della fattura, quindi l'utente che usa il punto vendita deve avere i permessi corretti per modificare le scorte.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Stampante di ricevute Dolibarr
    +PointOfSale=Punti vendita
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/it_IT/commercial.lang b/htdocs/langs/it_IT/commercial.lang
    index b77dfd0cc60..ae6a92c63b0 100644
    --- a/htdocs/langs/it_IT/commercial.lang
    +++ b/htdocs/langs/it_IT/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefonata
     ActionAC_FAX=Invia fax
     ActionAC_PROP=Invia proposta
     ActionAC_EMAIL=Invia email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Riunione
     ActionAC_INT=Intervento presso cliente
     ActionAC_FAC=Invia fattura
    @@ -72,8 +73,8 @@ StatusProsp=Stato del cliente potenziale
     DraftPropals=Bozze di proposte commerciali
     NoLimit=Nessun limite
     ToOfferALinkForOnlineSignature=Link per firma online
    -WelcomeOnOnlineSignaturePage=Benvenuti nella pagina per accettare proposte commerciali da %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=Questa schermata consente di accettare e firmare, o rifiutare, un preventivo/proposta commerciale
     ThisIsInformationOnDocumentToSign=Queste sono informazioni sul documento da accettare o rifiutare
    -SignatureProposalRef=Firma del preventivo/proposta commerciale %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Funzionalità per la firma online disattivata o documento generato prima che la funzione fosse abilitata
    diff --git a/htdocs/langs/it_IT/companies.lang b/htdocs/langs/it_IT/companies.lang
    index f8205d187de..beea7bbd0da 100644
    --- a/htdocs/langs/it_IT/companies.lang
    +++ b/htdocs/langs/it_IT/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Seleziona un soggetto terzo
     ConfirmDeleteCompany=Vuoi davvero cancellare questa società e tutte le informazioni relative?
     DeleteContact=Elimina un contatto/indirizzo
     ConfirmDeleteContact=Vuoi davvero eliminare questo contatto e tutte le informazioni connesse?
    -MenuNewThirdParty=Nuovo soggetto terzo
    -MenuNewCustomer=Nuovo cliente
    -MenuNewProspect=Nuovo cliente potenziale
    -MenuNewSupplier=Nuovo fornitore
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Nuovo privato
     NewCompany=Nuova società (cliente, cliente potenziale, fornitore) 
    -NewThirdParty=Nuovo soggetto terzo (cliente, cliente potenziale, fornitore) 
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Crea una terza parte (fornitore)
     CreateThirdPartyOnly=Crea soggetto terzo
     CreateThirdPartyAndContact=Crea un soggetto terzo + un contatto
    @@ -25,22 +25,22 @@ ThirdPartyContact=Contatto soggetto terzo
     Company=Società
     CompanyName=Ragione Sociale
     AliasNames=Pseudonimo (commerciale, marchio, ...)
    -AliasNameShort=Pseudonimo
    +AliasNameShort=Alias Name
     Companies=Società
    -CountryIsInEEC=Paese appartenente alla Comunità Economica Europea
    -ThirdPartyName=Nome soggetto terzo
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Posta elettronica soggetto terzo
    -ThirdParty=Soggetto terzo
    -ThirdParties=Soggetti terzi
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Clienti potenziali
     ThirdPartyProspectsStats=Clienti potenziali
     ThirdPartyCustomers=Clienti
     ThirdPartyCustomersStats=Clienti
     ThirdPartyCustomersWithIdProf12=Clienti con %s o %s
     ThirdPartySuppliers=Fornitori
    -ThirdPartyType=Tipo di soggetto terzo
    +ThirdPartyType=Type of company
     Individual=Privato
    -ToCreateContactWithSameName=Sarà creato automaticamente un contatto/indirizzo con le stesse informazione del soggetto terzo. Nella maggior parte dei casi, anche se il soggetto terzo è una persona fisica, creare solo la terza parte è sufficiente.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Società madre
     Subsidiaries=Controllate
     ReportByMonth=Rapporto per mese
    @@ -75,12 +75,12 @@ Zip=CAP
     Town=Città
     Web=Sito web
     Poste= Posizione
    -DefaultLang=Lingua predefinita
    -VATIsUsed=L'imposta sulle vendite viene utilizzata
    -VATIsUsedWhenSelling=Definisce se questa terza parte include una tassa di vendita o meno quando emette una fattura ai propri clienti
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=L'imposta sulle vendite non viene utilizzata
     CopyAddressFromSoc=Compila l'indirizzo con l'indirizzo del soggetto terzo
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Terza parte né cliente né fornitore, nessun oggetto di riferimento disponibile
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Terza parte né cliente né fornitore, sconti non disponibili
     PaymentBankAccount=Conto bancario usato per il pagamento:
     OverAllProposals=Proposte
    @@ -258,8 +258,8 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=ID imposta sulle vendite
    -VATIntraShort=ID imposta
    +VATIntra=Sales Tax/VAT ID
    +VATIntraShort=P.IVA
     VATIntraSyntaxIsValid=La sintassi è valida
     VATReturn=Rimborso IVA
     ProspectCustomer=Cliente/Cliente potenziale
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Il cliente ha uno sconto del <b> %s%% </b>
     CompanyHasNoRelativeDiscount=Il cliente non ha alcuno sconto relativo impostato
     HasRelativeDiscountFromSupplier=Hai uno sconto predefinito di <b>%s%%</b> da questo fornitore
     HasNoRelativeDiscountFromSupplier=Non hai uno sconto relativo predefinito da questo fornitore
    -CompanyHasAbsoluteDiscount=Questo cliente ha degli sconti disponibili (note di crediti o anticipi) per un totale di <b>%s</b>%s
    -CompanyHasDownPaymentOrCommercialDiscount=Questo cliente ha uno sconto disponibile (commerciale, nota d'accredito) per <b>%s</b>%s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Il cliente ha ancora note di credito per <b> %s %s </b>
     HasNoAbsoluteDiscountFromSupplier=Non hai crediti di sconto disponibili da questo fornitore
     HasAbsoluteDiscountFromSupplier=Hai sconti disponibili (note di credito o acconti) per <b>%s</b> %s da questo fornitore
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Sconti assoluti per il cliente (concesso da te)
     SupplierAbsoluteDiscountAllUsers=Sconti globali fornitore (inseriti da tutti gli utenti)
     SupplierAbsoluteDiscountMy=Sconti globali fornitore (inseriti da me stesso)
     DiscountNone=Nessuno
    -Supplier=Fornitore
    +Supplier=Vendor
     AddContact=Crea contatto
     AddContactAddress=Crea contatto/indirizzo
     EditContact=Modifica contatto/indirizzo
    @@ -303,22 +303,22 @@ AddThirdParty=Crea soggetto terzo
     DeleteACompany=Elimina una società
     PersonalInformations=Dati personali
     AccountancyCode=Account di contabilità
    -CustomerCode=Codice cliente
    -SupplierCode=Codice fornitore
    -CustomerCodeShort=Codice cliente
    -SupplierCodeShort=Codice fornitore
    -CustomerCodeDesc=Codice cliente, univoco
    -SupplierCodeDesc=Codice fornitore, unico per tutti i fornitori
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Obbligatorio se il soggetto terzo è un cliente o un cliente potenziale
     RequiredIfSupplier=Obbligatorio se il soggetto terzo è un fornitore 
    -ValidityControledByModule=Validità controllata dal modulo
    -ThisIsModuleRules=Regole per questo modulo
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Cliente potenziale da contattare
     CompanyDeleted=Società %s cancellata dal database.
     ListOfContacts=Elenco dei contatti
    -ListOfContactsAddresses=Elenco di contatti/indirizzi
    -ListOfThirdParties=Elenco dei soggetti terzi
    -ShowCompany=Mostra soggetto terzo
    +ListOfContactsAddresses=Elenco dei contatti
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Mostra contatti
     ContactsAllShort=Tutti (Nessun filtro)
     ContactType=Tipo di contatto
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Questo contatto non è il contatto di nessuna proposta c
     NoContactForAnyContract=Questo contatto non è il contatto di nessun contratto
     NoContactForAnyInvoice=Questo contatto non è il contatto di nessuna fattura
     NewContact=Nuovo contatto
    -NewContactAddress=Nuovo contatto/indirizzo
    +NewContactAddress=New Contact/Address
     MyContacts=I miei contatti
     Capital=Capitale
     CapitalOf=Capitale di %s
     EditCompany=Modifica società
    -ThisUserIsNot=Questo utente non è un cliente , né un cliente potenziale, né un fornitore 
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Controllo partita IVA
    -VATIntraCheckDesc=Il link <b>%s</b> permette di controllare la partita IVA tramite un servizio esterno. È necessario che il server possa accedere ad internet.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Controllo partita IVA sul sito della Commissione Europea
    -VATIntraManualCheck=È possibile controllareguire il controllo manualmente attraverso <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Non è possibile effettuare il controllo. Servizio non previsto per lo stato membro ( %s).
    -NorProspectNorCustomer=Né cliente, né cliente potenziale
    -JuridicalStatus=Stato giuridico
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Personale
     ProspectLevelShort=Cl. Pot.
     ProspectLevel=Liv. cliente potenziale
    @@ -387,12 +387,12 @@ ExportCardToFormat=Esportazione scheda nel formato
     ContactNotLinkedToCompany=Contatto non collegato ad alcuna società
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=Senza accesso a Dolibarr
    -ExportDataset_company_1=Terze parti (Aziende/fondazioni/persone fisiche) e proprietà
    -ExportDataset_company_2=Contatti e attributi
    -ImportDataset_company_1=Terze parti (Aziende/fondazioni/persone fisiche) e proprietà
    -ImportDataset_company_2=Contatti/indirizzi (di terze parti o meno) e attributi
    -ImportDataset_company_3=Conti bancari di terzi
    -ImportDataset_company_4=Terze parti/Rappresentanti di vendita (Assegna utenti rappresentanti di vendita alle aziende)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Livello dei prezzi
     DeliveryAddress=Indirizzo di consegna
     AddAddress=Aggiungi un indirizzo
    @@ -402,17 +402,17 @@ DeleteFile=Cancella il file
     ConfirmDeleteFile=Vuoi davvero cancellare questo file?
     AllocateCommercial=Assegna un commerciale
     Organization=Organizzazione
    -FiscalYearInformation=Informazioni sull'anno fiscale
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Il mese di inizio dell'anno fiscale
    -YouMustAssignUserMailFirst=E' necessario creare una email per questo utente per poter mandargli una notifica via email
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=Per poter inviare notifiche via email, è necessario definire almeno un contatto con una email valida all'interno del soggetto terzo
    -ListSuppliersShort=Elenco fornitori
    -ListProspectsShort=Elenco clienti potenziali
    -ListCustomersShort=Elenco clienti
    -ThirdPartiesArea=Area soggetti terzi e contatti
    -LastModifiedThirdParties=Ultimi %s soggetti terzi modificati
    -UniqueThirdParties=Totale soggetti terzi
    -InActivity=Aperto
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
    +InActivity=In attività
     ActivityCeased=Cessata attività
     ThirdPartyIsClosed=Chiuso
     ProductsIntoElements=Elenco dei prodotti/servizi in %s
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Fatture scadute
     OutstandingBill=Max. fattura in sospeso
     OutstandingBillReached=Raggiunto il massimo numero di fatture scadute
     OrderMinAmount=Quantità minima per l'ordine
    -MonkeyNumRefModelDesc=Restituisce un numero con formato %syymm-nnnn per codice cliente e %syymm-nnnn per il fornitore, in cui yy è  l'anno, mm è il mese e nnnn è una sequenza progressiva che non ritorna a 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Codice cliente/fornitore libero. Questo codice può essere modificato in qualsiasi momento.
     ManagingDirectors=Nome Manager(s) (CEO, direttore, presidente...)
     MergeOriginThirdparty=Duplica soggetto terzo (soggetto terzo che stai eliminando)
     MergeThirdparties=Unisci soggetti terzi
    -ConfirmMergeThirdparties=Sei sicuro che vuoi fondere questo soggetto terzo in quello corrente? Tutti gli oggetti linkati (fatture, ordini, ...) saranno spostati al soggetto terzo corrente, poi il precedente verrà eliminato.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Terze parti sono state unite
     SaleRepresentativeLogin=Login del rappresentante commerciale
     SaleRepresentativeFirstname=Nome del commerciale
     SaleRepresentativeLastname=Cognome del commerciale
     ErrorThirdpartiesMerge=Si è verificato un errore durante l'eliminazione di terze parti. Si prega di controllare il registro. Le modifiche sono state ripristinate.
    -NewCustomerSupplierCodeProposed=Il nuovo codice cliente o codice fornitore suggerito è duplicato.
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/it_IT/dict.lang b/htdocs/langs/it_IT/dict.lang
    index dd17e81a7f2..e973bb904ef 100644
    --- a/htdocs/langs/it_IT/dict.lang
    +++ b/htdocs/langs/it_IT/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Isola Heard e McDonald
     CountryVA=Santa Sede (Stato della Città del Vaticano)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Islanda
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Corea del Nord
     CountryKR=Corea del Sud
     CountryKW=Kuwait
    -CountryKG=Kirghizistan
    +CountryKG=Kyrgyzstan
     CountryLA=Laos
     CountryLV=Lettonia
     CountryLB=Libano
    @@ -160,7 +160,7 @@ CountryMD=Moldavia
     CountryMN=Mongolia
     CountryMS=Montserrat
     CountryMZ=Mozambico
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad e Tobago
     CountryTR=Turchia
     CountryTM=Turkmenistan
    -CountryTC=Turks e Isole Cailos
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ucraina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Rupie delle Mauritius
     CurrencySingMUR=Rupia delle Mauritius
     CurrencyNOK=Corone norvegesi
    -CurrencySingNOK=corona norvegese
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=TND
     CurrencySingTND=Dinaro tunisino
     CurrencyUSD=Dollari USA
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Passaparola
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Dipendente
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Formato 4A0
     PaperFormatEU2A0=Formato 2A0
    diff --git a/htdocs/langs/it_IT/ecm.lang b/htdocs/langs/it_IT/ecm.lang
    index ccb8593c9b7..84390cc378f 100644
    --- a/htdocs/langs/it_IT/ecm.lang
    +++ b/htdocs/langs/it_IT/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Numero di documenti nella directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Directory manuale
     ECMSectionAuto=Directory automatica
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documenti collegati ai progetti
     ECMDocsByUsers=Documenti collegati agli utenti
     ECMDocsByInterventions=Documenti collegati agli interventi
     ECMDocsByExpenseReports=Documenti collegati a note spese
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Nessuna directory creata
     ShowECMSection=Visualizza la directory
     DeleteSection=Eliminare la directory
    diff --git a/htdocs/langs/it_IT/errors.lang b/htdocs/langs/it_IT/errors.lang
    index e25d60983e4..23c00683cf6 100644
    --- a/htdocs/langs/it_IT/errors.lang
    +++ b/htdocs/langs/it_IT/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Il valore '%s' ha un formato della data sbagliato
     ErrorWrongDate=La data non è corretta!
     ErrorFailedToWriteInDir=Impossibile scrivere nella directory %s
     ErrorFoundBadEmailInFile=Sintassi email errata nelle righe %s del file (ad esempio alla riga %s con email = %s)
    -ErrorUserCannotBeDelete=L'utenza non può essere eliminata. Potrebbe essere collegata a qualche oggetto Dolibarr.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Mancano alcuni campi obbligatori.
     ErrorSubjectIsRequired=Il titolo della email è obbligatorio
     ErrorFailedToCreateDir=Impossibile creare la directory. Verifica che l'utente del server Web abbia i permessi per scrivere nella directory Dolibarr. Se il parametro <b>safe_mode</b> è abilitato in PHP, verifica che i file php di Dolibarr appartengano all'utente o al gruppo del server web (per esempio www-data).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Per favore immetti un valore per la lista di selezione
     ErrorNoValueForCheckBoxType=Per favore immetti un valore per la lista di controllo
     ErrorNoValueForRadioType=Per favore immetti un valore per la lista radio
     ErrorBadFormatValueList=La lista può includere una o più virgole: <u>%s</u>, ma deve essercene almeno una: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Il campo <b>%s</b> non può contenere caratteri speciali.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Modulo contabilità disattivato
     ErrorExportDuplicateProfil=Questo nome profilo già esiste per questo set di esportazione
     ErrorLDAPSetupNotComplete=La configurazione per l'uso di LDAP è incompleta
     ErrorLDAPMakeManualTest=È stato generato un file Ldif nella directory %s. Prova a caricarlo dalla riga di comando per avere maggiori informazioni sugli errori.
    -ErrorCantSaveADoneUserWithZeroPercentage=Impossibile salvare un'azione con "stato non iniziato" se il campo "da fare" non è vuoto.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Il riferimento utilizzato esiste già.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Impossibile eliminare il dato. E' già in uso o incluso in altro oggetto.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Per questa funzionalità Javascript deve essere attivo. Per abilitare/disabilitare Javascript, vai su <b>Home - Impostazioni - Schermo</b>
     ErrorPasswordsMustMatch=Le due password digitate devono essere identiche
    -ErrorContactEMail=Si è verificato un errore tecnico. Si prega di contattare l'amministratore all'indirizzo <b>%s</b> <b>%s</b> indicando il codice di errore nel messaggio, o, meglio ancora, allegando uno screenshot della schermata attuale.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Valore errato nel campo numero <b>%s</b> (il valore <b>'%s'</b>non corrisponde alla regex <b>%s</b>)
     ErrorFieldValueNotIn=Valore errato nel campo numero <b>%s</b>(il valore <b>%s</b> non è un valore disponibile nel campo<b>%s</b> campo della tabella <b>%s</b>)
     ErrorFieldRefNotIn=Valore errato nel campo numero <b>%s</b> (il valore <b>%s</b>non è un riferimento <b>%s</b> esistente)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Il programma antivirus non è stato in grado di co
     ErrorSpecialCharNotAllowedForField=I caratteri speciali non sono ammessi per il campo "%s"
     ErrorNumRefModel=Esiste un riferimento nel database (%s) e non è compatibile con questa regola di numerazione. Rimuovere o rinominare il record per attivare questo modulo.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Errore sulla maschera
     ErrorBadMaskFailedToLocatePosOfSequence=Errore, maschera senza numero di sequenza
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Errore, valore di reset non valido
     ErrorMaxNumberReachForThisMask=Numero massimo raggiunto per questa maschera
     ErrorCounterMustHaveMoreThan3Digits=Il contatore deve avere più di 3 cifre
     ErrorSelectAtLeastOne=Errore. Selezionare almeno una voce.
    -ErrorDeleteNotPossibleLineIsConsolidated=Impossibile cancellare il record perché è collegato ad una transazione bancaria conciliata
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s è già assegnato
     ErrorFailedToSendPassword=Impossibile inviare la password
     ErrorFailedToLoadRSSFile=Impossibile ottenere feed RSS. Se i messaggi di errore non forniscono informazioni sufficienti, prova ad ativare il debug con MAIN_SIMPLEXMLLOAD_DEBUG.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Utente con accesso <b>%s</b> inesistente
     ErrorLoginHasNoEmail=Questo utente non ha alcun indirizzo email. Processo interrotto.
     ErrorBadValueForCode=Valore del codice errato. Riprova con un nuovo valore...
     ErrorBothFieldCantBeNegative=I campi %s e %s non possono essere entrambi negativi
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=La quantità di ciascuna riga della fattura cliente non può essere negativa
     ErrorWebServerUserHasNotPermission=L'account utente <b>%s</b> utilizzato per eseguire il server web non ha i permessi necessari
     ErrorNoActivatedBarcode=Nessun tipo di codice a barre attivato
    @@ -138,7 +141,7 @@ ErrorBadFormat=Formato non valido!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Errore, ci sono alcune consegne collegate a questa spedizione. Cancellazione rifiutata.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Impossibile cancellare un pagamento condiviso con almeno una fattura con lo stato Pagato
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Impossibile assegnare la costante '%s'
     ErrorPriceExpression2=Impossibile ridefinire la funzione integrata '%s'
     ErrorPriceExpression3=Variabile non definita '%s' nella definizione della funzione
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Valore imprevisto '%s'
     ErrorPriceExpression6=Numero errato di argomenti (inserito %s ,atteso %s)
     ErrorPriceExpression8=Operatore imprevisto '%s'
     ErrorPriceExpression9=Si è verificato un errore imprevisto
    -ErrorPriceExpression10=Operatore '%s' senza operando
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Atteso '%s'
     ErrorPriceExpression14=Divisione per zero
     ErrorPriceExpression17=Variabile non definita '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=Nessuna variabile globale selezionata
     ErrorFieldMustBeANumeric=Il campo <b>%s</b> deve essere un valore numerico
     ErrorMandatoryParametersNotProvided=Parametri obbligatori non definiti
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=Si è verificato un errore nel salvataggio delle modifiche
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=Il file deve essere nel formato %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=I parametri di configurazione obbligatori non sono ancora stati definiti
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Un segnalibro per questo link (URL) o con lo stesso
     WarningPassIsEmpty=Attenzione, il database è accessibile senza password. Questa è una grave falla di sicurezza! Si dovrebbe aggiungere una password per il database e cambiare il file <b>conf.php</b> di conseguenza.
     WarningConfFileMustBeReadOnly=Attenzione, il file di configurazione <b>htdocs/conf/conf.php</b> è scrivibile dal server web. Questa è una grave falla di sicurezza! Impostare il file in sola lettura per l'utente utilizzato dal server web. Se si utilizza Windows e il formato FAT per il disco, dovete sapere che tale filesystem non consente la gestione delle autorizzazioni sui file, quindi non può essere completamente sicuro.
     WarningsOnXLines=Warning su <b>%s</b> righe del sorgente
    -WarningNoDocumentModelActivated=Nessun modello per la generazione di documenti attivato. Finché non si verifica la configurazione del modulo, verrà usato un modello predefinito.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Attenzione, una volta finito il setup, devi disabilitare gli strumenti install/nigrate aggiungendo un file  <b>install.lock</b> nella directory <b>%s</b>. La mancanza del file è un buco nella sicurezza.
    -WarningUntilDirRemoved=Questo avviso sarà visualizzato fino a quando questa directory è presente (disponibile solo per gli utenti admin).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Attenzione, la chiusura è effettiva anche se il numero degli elementi non coincide fra inizio e fine. Abilitare questa opzione con cautela.
     WarningUsingThisBoxSlowDown=Attenzione: l'uso di questo box rallenterà pesantemente tutte le pagine che lo visualizzano
     WarningClickToDialUserSetupNotComplete=Le impostazioni di informazione del ClickToDial per il tuo utente non sono complete (vedi la scheda ClickToDial sulla tua scheda utente)
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=La tua login è stata modificata. Per ragioni di sicurezza dove accedere con la nuova login prima di eseguire una nuova azione.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/it_IT/help.lang b/htdocs/langs/it_IT/help.lang
    index 617dcc914f2..e8594bd9410 100644
    --- a/htdocs/langs/it_IT/help.lang
    +++ b/htdocs/langs/it_IT/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Assistenza online
     OtherSupport=Altre forme di assistenza
     ToSeeListOfAvailableRessources=Per contattare/vedere le risorse disponibili:
     HelpCenter=Centro assistenza
    -DolibarrHelpCenter=Centro assistenza e supporto Dolibarr
    -ToGoBackToDolibarr=Clicca <a href="%s">qui</a> per tornare ad usare Dolibarr
    -TypeOfSupport=Tipi di assistenza
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Comunità (gratuito)
     TypeSupportCommercial=Commerciale
     TypeOfHelp=Tipo di aiuto
    @@ -15,12 +15,9 @@ NeedHelpCenter=Hai bisogno di aiuto o di supporto?
     Efficiency=Efficienza
     TypeHelpOnly=Solo aiuto
     TypeHelpDev=Guida per lo sviluppo
    -TypeHelpDevForm=Aiuto per lo Sviluppo e la Formazione
    -ToGetHelpGoOnSparkAngels1=Alcune aziende possono fornire un supporto online più veloce (a volte immediato) prendendo il controllo del computer. Tali aiuti possono essere trovati sul sito <b>web %s:</b>
    -ToGetHelpGoOnSparkAngels3=È inoltre possibile accedere alla lista di tutti i servizi di supporto per Dolibarr. Clicca sul pulsante.
    -ToGetHelpGoOnSparkAngels2=Può accadere che alcune aziende non siano disponibili al momento della ricerca. Usa il filtro "tutte le disponibilità" per poter inviare più richieste.
    -BackToHelpCenter=In caso contrario, clicca <a href="%s">qui</a> per tornare al centro assistenza e supporto.
    -LinkToGoldMember=È possibile chiamare uno dei servizi preselezionati da Dolibarr per la propria lingua ( %s) cliccando sul relativo Widget (stato e prezzo massimo vengono aggiornati automaticamente):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Lingue supportate
    -SubscribeToFoundation=Aiuta il progetto Dolibarr, iscriviti alla fondazione
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Per vedere le pagine ufficiali di aiuto su Dolibarr nella tua lingua: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/it_IT/holiday.lang b/htdocs/langs/it_IT/holiday.lang
    index a0926f206a9..846a6d6afe5 100644
    --- a/htdocs/langs/it_IT/holiday.lang
    +++ b/htdocs/langs/it_IT/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=Risorse umane
    -Holidays=Assenze
    -CPTitreMenu=Assenze
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Estratto conto mensile
     MenuAddCP=Nuova richiesta
    -NotActiveModCP=Per visualizzare questa pagina devi attivare il modulo Assenze
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Inserisci nuova richiesta
     DateDebCP=Data di inizio
     DateFinCP=Data di fine
    @@ -15,13 +15,18 @@ ApprovedCP=Approvato
     CancelCP=Cancellato
     RefuseCP=Rifiutato
     ValidatorCP=Approvato da
    -ListeCP=Elenco delle assenze
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Sarà approvato da
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Descrizione
     SendRequestCP=Inserisci richiesta di assenza
     DelayToRequestCP=Le richieste devono essere inserite almeno <b>%s giorni</b> prima dell'inizio.
    -MenuConfCP=Bilancio delle ferie
    -SoldeCPUser=Rimangono <b>%s</b> giorni di ferie
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=La data di fine deve essere posteriore alla data di inizio.
     ErrorSQLCreateCP=Si è verificato un errore SQL durante la creazione:
     ErrorIDFicheCP=Si è verificato un errore: la richiesta non esiste.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=Non hai i permessi necessari a visualizzare questa richiesta.
     InfosWorkflowCP=Flusso di informazioni
     RequestByCP=Richiesto da
     TitreRequestCP=Richiesta di assenza
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Numero di giornate di ferie già godute
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Modifica
     DeleteCP=Cancella
     ActionRefuseCP=Rifiuta
    @@ -59,6 +71,7 @@ DateRefusCP=Data del rifiuto
     DateCancelCP=Data dell'annullamento
     DefineEventUserCP=Assegna permesso straordinario all'utente
     addEventToUserCP=Assegna permesso
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Motivo
     UserCP=Utente
     ErrorAddEventToUserCP=Si è verificato un errore nell'assegnazione del permesso straordinario.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Nome dipendente
     TypeWasDisabledOrRemoved=Permesso di tipo (ID %s) è stato disabilitato o rimosso
     LastHolidays=Ultime %s richieste di permesso
     AllHolidays=Tutte le richieste di permesso
    -
    +HalfDay=Mezza giornata
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Ultimo aggiornamento automatico dell'assegnazione ferie
    -MonthOfLastMonthlyUpdate=Mese dell'ultimo aggiornamento automatico delle ferie maturate
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Aggiornato con successo
     Module27130Name= Gestione ferie
     Module27130Desc= Gestione ferie
    @@ -94,7 +112,7 @@ NoticePeriod=Periodo di avviso
     HolidaysToValidate=Convalida ferie
     HolidaysToValidateBody=Di sotto una richiesta ferie da convalidare
     HolidaysToValidateDelay=Questa richiesta avrà luogo fra meno di %s giorni
    -HolidaysToValidateAlertSolde=L'utente che ha fatto questa richiesta di ferie non ha abbastanza giorni disponibili.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Richieste di assenza approvate
     HolidaysValidatedBody=La tua richiesta di ferie dal %s al %s è stata approvata
     HolidaysRefused=Richiesta negata
    @@ -103,4 +121,9 @@ HolidaysCanceled=Richiesta di assenza cancellata
     HolidaysCanceledBody=La tua richiesta di ferie dal %s al %s è stata cancellata
     FollowedByACounter=<strong>1</strong>: questo tipo di ferie segue un contatore. Il contatore incrementa automaticamente o manualmente e quando una richiesta di ferie è validata. il contatore decrementa.<br><strong>0</strong>: non segue nessun contatore
     NoLeaveWithCounterDefined=Non ci sono tipi di ferie definite che devono seguire un contatore
    -GoIntoDictionaryHolidayTypes=Vai in <strong>Home - Impostazioni - Dizionari - Tipi di ferie</strong> per impostare i differenti tipi di ferie
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/it_IT/install.lang b/htdocs/langs/it_IT/install.lang
    index 4a3940911fd..c2aca3670f0 100644
    --- a/htdocs/langs/it_IT/install.lang
    +++ b/htdocs/langs/it_IT/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Abbiamo cercato di semplificare al massimo l' installazione di Dolibarr. Basta seguire le istruzioni passo per passo.
     MiscellaneousChecks=Verificare prerequisiti
     ConfFileExists=Il file di configurazione <b>%s</b> esiste.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Il file di configurazione <b>%s</b> non esiste e non può essere creato!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Il file <b>%s</b> può essere creato.
    -ConfFileIsNotWritable=Il file di configurazione <b>%s</b> non è scrivibile. Controllare le autorizzazioni. Durante la prima installazione, il server web deve essere in grado di scrivere in questo file durante il processo di configurazione (usa, per esempio il comando "chmod 666" per renderlo scrivibile da tutti gli utenti su sistemi operativi Unix e simili).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Il file di configurazione <b>%s</b> è scrivibile.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Ricarica tutte le informazioni dal file di configurazione
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=PHP supporta le sessioni.
     PHPSupportPOSTGETOk=PHP supporta le variabili GET e POST.
    -PHPSupportPOSTGETKo=È possibile che l'installazione di PHP non supporti le variabili POST e/o GET. Controlla il parametro <b>variables_order</b> nel file <b>php.ini</b>.
    -PHPSupportGD=PHP con supporto grafico GD.
    -PHPSupportCurl=Questo PHP support cURL.
    -PHPSupportUTF8=PHP supporta le funzioni UTF-8.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=La memoria massima per la sessione è fissata dal PHP a <b>%s</b>. Dovrebbe essere sufficiente.
    -PHPMemoryTooLow=La memoria massima per la sessione è fissata dal PHP a <b>%s</b> byte. Cambia il file <b>php.ini</b> per impostare il parametro <b>memory_limit</b> ad almeno <b>%s</b> byte.
    -Recheck=Clicca qui per ripetere i controlli
    -ErrorPHPDoesNotSupportSessions=La tua installazione di PHP non supporta le sessioni. Dolibarr non può funzionare senza. Risolvere questo problema prima di installare Dolibarr.
    -ErrorPHPDoesNotSupportGD=La tua installazione di PHP non supporta la funzione grafica GD. Non sarà disponibile alcun grafico.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=L'attuale installazione di PHP non supporta cURL.
    -ErrorPHPDoesNotSupportUTF8=L'installazione di PHP non supporta funzioni UTF-8. Dolibarr non può funzionare correttamente.Risolvere questo problema prima di installare Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=La directory <b>%s</b> non esiste.
    -ErrorGoBackAndCorrectParameters=Torna indietro e correggi i parametri sbagliati.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Potresti aver digitato un valore errato per il parametro <b>%s</b>.
     ErrorFailedToCreateDatabase=Impossibile creare il database <b>%s</b>.
     ErrorFailedToConnectToDatabase=Impossibile collegarsi al database <b>%s</b>.
     ErrorDatabaseVersionTooLow=La versione del database (%s) è troppo vecchia. È richiesta la versione %s o superiori.
     ErrorPHPVersionTooLow=Versione PHP troppo vecchia. E' obbligatoria la versione %s o superiori.
    -ErrorConnectedButDatabaseNotFound=Connessione al server avvenuta con successo, ma il database <b>%s</b> non è stato trovato.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Il database <b>%s</b> esiste già.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Se il database non esiste, torna indietro e seleziona l'opzione "Crea database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Se il database esiste già, torna indietro e deseleziona l'opzione "Crea database".
    -WarningBrowserTooOld=La versione del browser è troppo vecchia. È raccomandato l'aggiornamento a una versione recente di Firefox, Chrome o Opera.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=Versione PHP
     License=Licenza d'uso
     ConfigurationFile=File di configurazione
    @@ -45,22 +45,23 @@ DolibarrDatabase=Database Dolibarr
     DatabaseType=Tipo di database
     DriverType=Tipo di driver
     Server=Server
    -ServerAddressDescription=Nome o indirizzo IP del database server. Quando il database è ospitato sullo stesso server del web, utilizzare <b>localhost</b>.
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Porta. Lasciare vuoto se sconosciuta.
     DatabaseServer=Database server
     DatabaseName=Nome del database
    -DatabasePrefix=Prefisso delle tabelle del database
    -AdminLogin=Login per amministratore del database. Da lasciare vuoto se ci si collega in forma anonima
    -PasswordAgain=Conferma la password una seconda volta
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password per amministratore del database. Da lasciare vuoto se ci si collega in forma anonima
     CreateDatabase=Crea database
    -CreateUser=Crea un proprietario o concedigli i permessi all'interno del database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Accesso superutente al database
    -CheckToCreateDatabase=Seleziona questa opzione se il database non esiste e deve essere creato.<br>Sarà necessario indicare login e password dell'account di root in fondo a questa pagina.
    -CheckToCreateUser=Flegga se l'admin del database non esiste e deve essere creato, o se esiste ma il database non esiste e i permessi devono ancora essere concessi. <br>in questo caso, devi scegliere login e password e riempirli con login/password del superutente in fondo a questa pagina. Se non è fleggato, l'admin del database e la sua password esistono già.
    -DatabaseRootLoginDescription=Login utente con permesso di creare nuovi database o nuovi utenti. Non è necessario se il database esiste già.
    -KeepEmptyIfNoPassword=Lasciare vuoto se l'utente non ha alcuna password (da evitare per motivi di sicurezza)
    -SaveConfigurationFile=Salva file
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Connessione al server
     DatabaseCreation=Creazione del database
     CreateDatabaseObjects=Creazione degli oggetti del database
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Creazione vincoli e indici per la tabella %s
     OtherKeysCreation=Creazione vincoli e indici
     FunctionsCreation=Creazione funzioni
     AdminAccountCreation=Creazione accesso amministratore
    -PleaseTypePassword=Digitare una password. Le password vuote non sono ammesse!
    -PleaseTypeALogin=Inserire un nome utente per il login!
    -PasswordsMismatch=Le password digitate sono diverse, si prega di riprovare!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Fine della configurazione
     SystemIsInstalled=Installazione completata.
     SystemIsUpgraded=Dolibarr è stato aggiornato con successo.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Dolibarr deve essere configurato per soddisfare le vos
     AdminLoginCreatedSuccessfuly=Account amministratore '<b>%s</b>' creato con successo.
     GoToDolibarr=Vai a Dolibarr
     GoToSetupArea=Vai alla pagina impostazioni
    -MigrationNotFinished=La versione del vostro database non è stata aggiornata completamente, eseguire nuovamente l'aggiornamento.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Vai alla pagina di aggiornamento
     WithNoSlashAtTheEnd=Senza la barra "/" alla fine
    -DirectoryRecommendation=Si raccomanda l'utilizzo di una directory al di fuori della directory delle pagine web.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Esiste già
     DolibarrAdminLogin=Login dell'amministratore di Dolibarr
    -AdminLoginAlreadyExists=L'account amministratore <b> %s </b> esiste già.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Impossibile creare l'account amministratore di Dolibarr.
    -WarningRemoveInstallDir=Attenzione, per motivi di sicurezza, una volta completata l'installazione o l'aggiornamento, rimuovere la directory <b>install</b> o rinominarla <b>install.lock</b>, al fine di evitarne un uso malevolo.
    -FunctionNotAvailableInThisPHP=Non disponibile su questa installazione di PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Scegli script di migrazione
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Elaborazione dello script
     ChooseYourSetupMode=Scegli la modalità di impostazione e clicca "start"
     FreshInstall=Nuova installazione
    -FreshInstallDesc=Seleziona questa opzione se è una prima installazione. In caso contrario, questa modalità può riparare una precedente installazione incompleta. Se invece si desidera aggiornare la versione installata, scegliere "Aggiorna".
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Aggiornamento
     UpgradeDesc=Usare questo metodo per sostituire una vecchia installazione Dolibarr con una versione più recente. Ciò aggiornerà il database e i dati.
     Start=Inizio
     InstallNotAllowed=Impossibile completare l'installazione a causa dei permessi del file <b>conf.php</b>
     YouMustCreateWithPermission=È necessario creare il file %s e dare al server web i permessi di scrittura durante il processo di installazione.
    -CorrectProblemAndReloadPage=Correggi il problema e ricaricare la pagina premendo F5.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Già migrate
     DatabaseVersion=Versione database
     ServerVersion=Versione del server
     YouMustCreateItAndAllowServerToWrite=È necessario creare questa directory e dare al server web i permessi di scrittura sulla stessa.
     DBSortingCollation=Ordinamento caratteri (Collation)
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=È richiesta la creazione del database <b>%s</b>. Perciò Dolibarr necessita di collegarsi al server <b>%s</b> come superutente con <b>%s</b> autorizzazioni.
    -YouAskLoginCreationSoDolibarrNeedToConnect=È richiesta la creazione dell'utenza <b>%s</b>. Perciò Dolibarr necessita di collegarsi al server <b>%s</b> come superutente con <b>%s</b> autorizzazioni.
    -BecauseConnectionFailedParametersMayBeWrong=Connessione fallita, nome utente e password possono essere errati.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Pagamenti orfani sono stati rilevati con il metodo %s
     RemoveItManuallyAndPressF5ToContinue=Rimuovere manualmente e premere F5 per continuare.
     FieldRenamed=Campo rinominato
    -IfLoginDoesNotExistsCheckCreateUser=Se il login non esiste ancora, è necessario selezionare l'opzione "Crea utente"
    -ErrorConnection=Server <b>%s</b>, nome del database <b>%s</b>, login <b>%s</b> o la password del database può essere sbagliata o la versione di PHP è troppo vecchia rispetto alla versione del database.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Si raccomanda di installare la versione <b>%s</b> al posto dell'attuale <b>%s</b>
     InstallChoiceSuggested=<b>Scelta suggerita dall'installer</b>.
    -MigrateIsDoneStepByStep=La versione richiesta (%s) è più avanti di varie versioni, quindi la procedura guidata suggerirà uns nuova migrazione una volta finita questa.
    -CheckThatDatabasenameIsCorrect=Controllare che il nome del database sia corretto (<b>%s</b>)
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Se il nome è esatto e il database non esiste ancora, seleziona l'opzione "Crea database".
     OpenBaseDir=Parametro <b>openbasedir</b>
    -YouAskToCreateDatabaseSoRootRequired=Hai selezionato la casella "Crea database". Perciò è necessario inserire nome utente/password del superuser in fondo alla pagina.
    -YouAskToCreateDatabaseUserSoRootRequired=Hai selezionato la casella "Crea il proprietario del database". Perciò è necessario inserire nome utente/password del superuser in fondo alla pagina.
    -NextStepMightLastALongTime=Il passaggio in corso può richiedere diverso tempo. Attendi il caricamento completo della schermata successiva prima di continuare.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrare la spedizione per l'arhiviazione degli ordini dei clienti
     MigrationShippingDelivery=Aggiornamento spedizione
     MigrationShippingDelivery2=Aggiornamento spedizione 2
     MigrationFinished=Migrazione completata
    -LastStepDesc=<strong>Ultimo passo:</strong> Indicare qui login e password che si prevede di utilizzare per la connessione al software. Non dimenticare questi dati perché è l'unico account in grado di amminsitrare tutti gli altri.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Attiva modulo %s
     ShowEditTechnicalParameters=Clicca qui per mostrare/modificare i parametri avanzati (modalità esperti)
    -WarningUpgrade=Attenzione:\nHai già fatto un backup del database?\nTi raccomando di eseguire un backup prima di procedere. A causa di alcuni bugs nei sistemi database (ad esempio nella versione mysql 5.5.40/41/42/43), alcuni dati o tabelle potrebbero andare persi durante il processo. Pertanto ti suggerisco fortemente di effettuare un dump completo del tuo database prima di iniziare la migrazione.\n\nClicca OK per iniziare il processo di migrazione...
    -ErrorDatabaseVersionForbiddenForMigration=La tua versione del database è %s. Essa soffre di un bug critico se si cambia la struttura del database, come è richiesto dal processo di migrazione. Per questa ragione non sarà consentita la migrazione fino a quando non verrà aggiornato il database a una versione stabile più recente (elenco delle versioni probleematiche: %s)
    -KeepDefaultValuesWamp=Si sta utilizzando la configurazione guidata DoliWamp, quindi i valori proposti sono già ottimizzati. Modifica i parametri solo se sai quello che fai.
    -KeepDefaultValuesDeb=Si sta utilizzando la configurazione guidata di un pacchetto (Debian, Ubuntu o simili), quindi i valori proposti sono già ottimizzati. Basta inserire la password per la creazione del database. Modifica gli altri parametri solo se sai quello che fai.
    -KeepDefaultValuesMamp=Si sta utilizzando la configurazione guidata DoliMamp, quindi i valori proposti sono già ottimizzati. Modifica i parametri solo se sai quello che fai.
    -KeepDefaultValuesProxmox=Si sta utilizzando la configurazione guidata di una virtual appliance Proxmox, quindi i valori proposti sono già ottimizzati. Modifica i parametri solo se sai quello che fai.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Inserisci almeno una opzione come parametro nell'indirizzo URL. Per esempio: '...repair.php?standard=confirmed'
     NothingToDelete=Nulla da ripulire/eliminare
     NothingToDo=Nessuna azione da fare
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Aggiornamento dei dati dei contratti
     MigrationContractsNumberToUpdate=%s contratto(i) da aggiornare
     MigrationContractsLineCreation=Crea riga per il contratto con riferimento %s
     MigrationContractsNothingToUpdate=Non ci sono più cose da fare
    -MigrationContractsFieldDontExist=Il campo fk_facture non esiste più. Niente da fare.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Correzione contratti con date vuote
    -MigrationContractsEmptyDatesUpdateSuccess=Correzione dei contratti con data vuota effettuata con successo
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Nessuna data di contratto vuota da correggere
     MigrationContractsEmptyCreationDatesNothingToUpdate=Nessuna data di creazione contratto da correggere
     MigrationContractsInvalidDatesUpdate=Correzione dei contratti con date errate
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Aggiornamento spedizioni
     MigrationStockDetail=Aggiornamento delle scorte dei prodotti
     MigrationMenusDetail=Aggiornamento dinamico dei menu
     MigrationDeliveryAddress=Aggiornamento indirizzo di consegna per le spedizioni
    -MigrationProjectTaskActors=Migrazione dei dati della tabella llx_projet_task_actors
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Migrazione dei dati del campo fk_user_resp da llx_projet a llx_element_contact
     MigrationProjectTaskTime=Aggiorna tempo trascorso in secondi
     MigrationActioncommElement=Aggiornare i dati sulle azioni
     MigrationPaymentMode=Migrazione dei dati delle modalità di pagamento
     MigrationCategorieAssociation=Migrazione delle categorie
    -MigrationEvents=Migrazione degli eventi per aggiungere i proprietari nella tabella degli utilizzatori assegnati
    -MigrationEventsContact=Migrazione di eventi per aggiungere un contatto evento nella tabella assegnazioni
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Aggiorna il valore del campo entità di llx_user_rights
     MigrationUserGroupRightsEntity=Aggiorna il valore del campo entità di llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Ricarica modulo %s
     MigrationResetBlockedLog=Reset del modulo BlockedLog per l'algoritmo v7
    -ShowNotAvailableOptions=Mostra opzioni non disponibili
    -HideNotAvailableOptions=Nascondi opzioni non disponibili
    -ErrorFoundDuringMigration=L'errore si è verificato durante il processo di migrazione quindi il prossimo step non sarà disponibile. Per ignorare gli errori puoi <a href="%s">cliccare qui</a>, ma l'applicazione o qualche funzionalità potrebbe non funzionare correttamente fino alla correzione dell'errore.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/it_IT/interventions.lang b/htdocs/langs/it_IT/interventions.lang
    index 5a0d1e5f3c3..02a39340c76 100644
    --- a/htdocs/langs/it_IT/interventions.lang
    +++ b/htdocs/langs/it_IT/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventi
     InterventionCard=Scheda intervento
     NewIntervention=Nuovo intervento
     AddIntervention=Crea intervento
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Elenco degli interventi
     ActionsOnFicheInter=Azioni di intervento
     LastInterventions=Ultimi %s interventi
    @@ -50,12 +51,12 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistiche degli interventi
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=ID intervento
    -InterRef=Intervention ref.
    +InterRef=Rif. intervento
     InterDateCreation=Data di creazione intervento
     InterDuration=Durata intervento
     InterStatus=Stato dell'intervento
    diff --git a/htdocs/langs/it_IT/main.lang b/htdocs/langs/it_IT/main.lang
    index 29dc26e1dd5..192862cfc55 100644
    --- a/htdocs/langs/it_IT/main.lang
    +++ b/htdocs/langs/it_IT/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Impossibile inviare l'email (mittente=%s, destinatario=%s)
     ErrorFileNotUploaded=Upload fallito. Controllare che la dimensione del file non superi il numero massimo consentito, che lo spazio libero su disco sia sufficiente e che non esista già un file con lo stesso nome nella directory.
     ErrorInternalErrorDetected=Errore rilevato
     ErrorWrongHostParameter=Parametro host errato
    -ErrorYourCountryIsNotDefined=Non è stato definito il paese. Modifica nuovamente il modulo.
    -ErrorRecordIsUsedByChild=Impossibile cancellare il record perché da esso dipendono altri record.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Valore sbagliato
     ErrorWrongValueForParameterX=Valore non corretto per il parametro %s
     ErrorNoRequestInError=Nessuna richiesta in errore
    -ErrorServiceUnavailableTryLater=Servizio momentaneamente non disponibile. Riprova più tardi.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Valore duplicato in un campo a chiave univoca
    -ErrorSomeErrorWereFoundRollbackIsDone=Si sono verificati degli errori. Effettuato rollback modifiche.
    -ErrorConfigParameterNotDefined=Il parametro <b>%s</b> non è stato definito nel file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Impossibile trovare l'utente <b>%s</b> nel database dell'applicazione.
     ErrorNoVATRateDefinedForSellerCountry=Errore, non sono state definite le aliquote IVA per: <b>%s</b>.
     ErrorNoSocialContributionForSellerCountry=Errore, non sono stati definiti i tipi di contributi per: '%s'.
     ErrorFailedToSaveFile=Errore, file non salvato.
    -ErrorCannotAddThisParentWarehouse=Stai tentando di aggiungere un magazzino principale che è già figlio di quello corrente
    -MaxNbOfRecordPerPage=Numero massimo di record per pagina
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Non sei autorizzato.
     SetDate=Imposta data
     SelectDate=Seleziona una data
    @@ -78,10 +78,10 @@ FileRenamed=Il file è stato rinominato con successo
     FileGenerated=Il file è stato generato con successo
     FileSaved=Il file è stato salvato con successo
     FileUploaded=Il file è stato caricato con successo
    -FileTransferComplete=I File sono stati caricati correttamente
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File cancellati con successo
     FileWasNotUploaded=Il file selezionato per l'upload non è stato ancora caricato. Clicca su <b>Allega file</b> per farlo
    -NbOfEntries=Numero di voci
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Leggi l'aiuto online (è richiesto un collegamento internet)
     GoToHelpPage=Vai alla pagina di aiuto
     RecordSaved=Record salvato
    @@ -94,7 +94,7 @@ Undefined=Indefinito
     PasswordForgotten=Password dimenticata?
     NoAccount=No account?
     SeeAbove=Vedi sopra
    -HomeArea=Area home
    +HomeArea=Home
     LastConnexion=Ultima connessione
     PreviousConnexion=Connessione precedente
     PreviousValue=Valore precedente
    @@ -142,6 +142,7 @@ Closed=Chiuso
     Closed2=Chiuso
     NotClosed=Non chiuso
     Enabled=Attivo
    +Enable=Abilita
     Deprecated=Deprecato
     Disable=Disattivare
     Disabled=Disabilitato
    @@ -151,9 +152,9 @@ RemoveLink=Rimuovere collegamento
     AddToDraft=Aggiungi alla bozza
     Update=Aggiornamento
     Close=Chiudi
    -CloseBox=Rimuovi il widget dal pannello principale
    +CloseBox=Rimuovi widget dalla panoramica
     Confirm=Conferma
    -ConfirmSendCardByMail=Vuoi davvero inviare il contenuto di questa scheda per posta a <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Elimina
     Remove=Rimuovi
     Resiliate=Termina
    @@ -327,7 +328,7 @@ Copy=Copia
     Paste=Incolla
     Default=Predefinito
     DefaultValue=Valore predefinito
    -DefaultValues=Valori predefiniti
    +DefaultValues=Default values/filters/sorting
     Price=Prezzo
     PriceCurrency=Prezzo (valuta)
     UnitPrice=Prezzo unitario
    @@ -347,7 +348,7 @@ AmountTTCShort=Importo (IVA inc.)
     AmountHT=Importo (al netto delle imposte)
     AmountTTC=Importo (IVA inclusa)
     AmountVAT=Importo IVA
    -MulticurrencyAlreadyPaid=Già pagato, valuta originaria
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Rimanente da pagare, valuta originaria
     MulticurrencyPaymentAmount=Importo del pagamento, valuta originaria
     MulticurrencyAmountHT=Importo (al netto delle imposte), valuta originaria
    @@ -403,7 +404,7 @@ DefaultTaxRate=Valore base tassa
     Average=Media
     Sum=Somma
     Delta=Delta
    -RemainToPay=Remain to pay
    +RemainToPay=Rimanente da pagare
     Module=Moduli/Applicazioni
     Modules=Moduli/Applicazioni
     Option=Opzione
    @@ -416,7 +417,7 @@ Favorite=Preferito
     ShortInfo=Info.
     Ref=Rif.
     ExternalRef=Rif. esterno
    -RefSupplier=Ref. vendor
    +RefSupplier=Rif. venditore
     RefPayment=Rif. pagamento
     CommercialProposalsShort=Preventivi/Proposte commerciali
     Comment=Commento
    @@ -428,7 +429,7 @@ ActionNotApplicable=Non applicabile
     ActionRunningNotStarted=Non avviato
     ActionRunningShort=Avviato
     ActionDoneShort=Fatto
    -ActionUncomplete=Incompleto
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Ultimi %s eventi collegati
     CompanyFoundation=Azienda/Organizzazione
     Accountant=Contabile
    @@ -436,6 +437,7 @@ ContactsForCompany=Contatti per il soggetto terzo
     ContactsAddressesForCompany=Contatti/indirizzi per questo soggetto terzo
     AddressesForCompany=Indirizzi per questo soggetto terzo
     ActionsOnCompany=Azioni sul soggetto terzo
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Azioni su questo membro
     ActionsOnProduct=Eventi su questo prodotto
     NActionsLate=%s azioni in ritardo
    @@ -453,8 +455,8 @@ Generate=Genera
     Duration=Durata
     TotalDuration=Durata totale
     Summary=Riepilogo
    -DolibarrStateBoard=Statistiche Database
    -DolibarrWorkBoard=Dashboard degli elementi aperti
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=Nessun elemento aperto da elaborare
     Available=Disponibile
     NotYetAvailable=Non ancora disponibile
    @@ -495,7 +497,7 @@ Received=Ricevuto
     Paid=Pagato
     Topic=Oggetto
     ByCompanies=Per impresa
    -ByUsers=By user
    +ByUsers=Per utente
     Links=Link
     Link=Link
     Rejects=Respinge
    @@ -506,8 +508,8 @@ None=Nessuno
     NoneF=Nessuno
     NoneOrSeveral=Nessuno o più
     Late=Tardi
    -LateDesc=Il ritardo di un'azione viene definito nel setup. Chiedi al tuo amministratore di modificarlo dal menu Home - Setup - Alerts.
    -NoItemLate=No late item
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
    +NoItemLate=Nessun elemento in ritardo
     Photo=Immagine
     Photos=Immagini
     AddPhoto=Aggiungi immagine
    @@ -530,18 +532,6 @@ September=Settembre
     October=Ottobre
     November=Novembre
     December=Dicembre
    -JanuaryMin=Gen
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=Mag
    -JuneMin=Giu
    -JulyMin=Lug
    -AugustMin=Ago
    -SeptemberMin=Set
    -OctoberMin=Ott
    -NovemberMin=Nov
    -DecemberMin=Dic
     Month01=gennaio
     Month02=febbraio
     Month03=marzo
    @@ -622,9 +612,9 @@ BuildDoc=Genera Doc
     Entity=Entità
     Entities=Entità
     CustomerPreview=Anteprima cliente
    -SupplierPreview=Vendor preview
    +SupplierPreview=Anteprima venditore
     ShowCustomerPreview=Visualizza anteprima cliente
    -ShowSupplierPreview=Show vendor preview
    +ShowSupplierPreview=Mostra anteprima venditore
     RefCustomer=Rif. cliente
     Currency=Valuta
     InfoAdmin=Informazioni per gli amministratori
    @@ -646,6 +636,8 @@ SendMail=Invia una email
     EMail=E-mail
     NoEMail=Nessuna email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Nessun cellulare
     Owner=Proprietario
     FollowingConstantsWillBeSubstituted=Le seguenti costanti saranno sostitute con i valori corrispondenti
    @@ -677,7 +669,7 @@ NeverReceived=Mai ricevuto
     Canceled=Annullato
     YouCanChangeValuesForThisListFromDictionarySetup=Puoi cambiare i valori di questa lista dal menù Impostazioni - Dizionari
     YouCanChangeValuesForThisListFrom=Puoi cambiare i valori di questa lista dal menu %s
    -YouCanSetDefaultValueInModuleSetup=Puoi definire il valore predefinito durante la creazione di un nuovo record nella configurazione del modulo
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Colore
     Documents=Documenti
     Documents2=Documenti
    @@ -716,15 +708,15 @@ Merge=Unisci
     DocumentModelStandardPDF=Tema PDF Standard
     PrintContentArea=Mostra una pagina per stampare l'area principale
     MenuManager=Gestore dei menu
    -WarningYouAreInMaintenanceMode=Attenzione, si è in modalità manutenzione. Solo <b>%s</b> ha il permesso di usare l'applicazione.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Errore di sistema
     CoreErrorMessage=Si è verificato un errore. Controllare i log o contattare l'amministratore di sistema.
     CreditCard=Carta di credito
     ValidatePayment=Convalidare questo pagamento?
     CreditOrDebitCard=Carta di credito o debito 
     FieldsWithAreMandatory=I campi con <b>%s</b> sono obbligatori
    -FieldsWithIsForPublic=I campi con <b>%s</b> vengono mostrati nell'elenco pubblico dei membri. Per evitarlo, deseleziona la casella <b>pubblica.</b>
    -AccordingToGeoIPDatabase=(Secondo la conversione GeoIP)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Riga
     NotSupported=Non supportato
     RequiredField=Campi obbligatori
    @@ -732,6 +724,8 @@ Result=Risultato
     ToTest=Provare
     ValidateBefore=Convalidare la scheda prima di utilizzare questa funzione
     Visibility=Visibilità
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privato
     Hidden=Nascosto
     Resources=Risorse
    @@ -750,6 +744,7 @@ LinkTo=Collega a...
     LinkToProposal=Collega a proposta
     LinkToOrder=Collega a ordine
     LinkToInvoice=Collega a fattura attiva
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Collega a ordine fornitore
     LinkToSupplierProposal=Collega a porposta fornitore
     LinkToSupplierInvoice=Collega a fattura passiva
    @@ -758,6 +753,7 @@ LinkToIntervention=Collega a intervento
     CreateDraft=Crea bozza
     SetToDraft=Ritorna a bozza
     ClickToEdit=Clicca per modificare
    +ClickToRefresh=Click to refresh
     EditWithEditor=Modifica con CKEditor
     EditWithTextEditor=Modifica con editor di testo
     EditHTMLSource=Modifica codice HTML
    @@ -772,14 +768,14 @@ ByDay=Per giorno
     BySalesRepresentative=Per venditore
     LinkedToSpecificUsers=Con collegamento ad un utente specifico
     NoResults=Nessun risultato
    -AdminTools=Strumenti di amministrazione
    +AdminTools=Admin Tools
     SystemTools=Strumenti di sistema
     ModulesSystemTools=Strumenti moduli
     Test=Test
     Element=Elemento
     NoPhotoYet=Nessuna immagine disponibile
    -Dashboard=Dashboard
    -MyDashboard=Pannello principale
    +Dashboard=Panoramica
    +MyDashboard=My Dashboard
     Deductible=Deducibile
     from=da
     toward=verso
    @@ -802,7 +798,7 @@ PrintFile=Stampa il file %s
     ShowTransaction=Mostra entrate conto bancario
     ShowIntervention=Mostra intervento
     ShowContract=Visualizza contratto
    -GoIntoSetupToChangeLogo=Vai in Home -> Impostazioni -> Società per cambiare il logo o  in Home - Setup -> display per nasconderlo.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Rifiuta
     Denied=Rifiutata
     ListOf=Lista di %s
    @@ -818,12 +814,12 @@ Sincerely=Cordialmente
     DeleteLine=Elimina riga
     ConfirmDeleteLine=Vuoi davvero eliminare questa riga?
     NoPDFAvailableForDocGenAmongChecked=Non è possibile generare il documento PDF dai record selezionati
    -TooManyRecordForMassAction=Troppi record selezionati per l'azione di massa. L'azione è limitata a un elenco di %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=Nessun record selezionato
     MassFilesArea=File creati da azioni di massa
     ShowTempMassFilesArea=Mostra i file creati da azioni di massa
    -ConfirmMassDeletion=Conferma eliminazione di massa
    -ConfirmMassDeletionQuestion=Sei sicuro di voler cancellare il record selezionato %s?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Oggetti correlati
     ClassifyBilled=Classificare  fatturata
     ClassifyUnbilled=Classifica non pagata
    @@ -841,7 +837,7 @@ Calendar=Calendario
     GroupBy=Raggruppa per...
     ViewFlatList=Vedi lista semplice
     RemoveString=Rimuovi la stringa '%s'
    -SomeTranslationAreUncomplete=Alcune lingue potrebbero essere parzialmente tradotte o contenere errori. Se ne rilevi, puoi correggere i file di lingua registrati su <a href="https://transifex.com/projects/p/dolibarr/" target="_blank"> https://transifex.com/projects/p/ Dolibarr / </a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Link diretto per il download (pubblico/esterno)
     DirectDownloadInternalLink=Link per il download diretto (richiede accesso e permessi validi)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Mudulo programmatore
     SetMultiCurrencyCode=Imposta valuta
     BulkActions=Azioni in blocco
     ClickToShowHelp=Clicca per mostrare l'aiuto contestuale
    -WebSite=Sito web
    +WebSite=Website
     WebSites=Siti web
    -WebSiteAccounts=Account del sito web
    +WebSiteAccounts=Website accounts
     ExpenseReport=Nota spese
     ExpenseReports=Nota spese
     HR=HR
     HRAndBank=HR e Banca
     AutomaticallyCalculated=Calcolato automaticamente
     TitleSetToDraft=Torna a Bozza
    -ConfirmSetToDraft=Sei sicuro che vuoi tornare allo stato di Bozza?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=ID di importazione
     Events=Eventi
    -EMailTemplates=Modelli email
    -FileNotShared=File non condiviso pubblicamente
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Progetto
     Projects=Progetti
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Autorizzazioni
     LineNb=Linea n°
     IncotermLabel=Import-Export
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Lunedì
     Tuesday=Martedì
    @@ -922,20 +927,20 @@ SearchIntoSupplierInvoices=Fatture fornitore
     SearchIntoCustomerOrders=Ordini dei clienti
     SearchIntoSupplierOrders=Ordini d'acquisto
     SearchIntoCustomerProposals=Proposte del cliente
    -SearchIntoSupplierProposals=Vendor proposals
    +SearchIntoSupplierProposals=Proposta venditore
     SearchIntoInterventions=Interventi
     SearchIntoContracts=Contratti
     SearchIntoCustomerShipments=Spedizioni cliente
     SearchIntoExpenseReports=Nota spese
    -SearchIntoLeaves=Assenze
    +SearchIntoLeaves=Leave
     CommentLink=Commenti
     NbComments=Numero dei commenti
     CommentPage=Spazio per i commenti
     CommentAdded=Commento aggiunto
     CommentDeleted=Commento cancellato
     Everybody=Progetto condiviso
    -PayedBy=Pagato da
    -PayedTo=Pagato a
    +PayedBy=Pagata da
    +PayedTo=Paid to
     Monthly=Mensilmente
     Quarterly=Trimestralmente
     Annual=Annuale
    @@ -944,7 +949,9 @@ Remote=Remoto
     LocalAndRemote=Locale e Remoto
     KeyboardShortcut=Tasto scelta rapida
     AssignedTo=Azione assegnata a
    -Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +Deletedraft=Elimina bozza
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File condiviso con un link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/it_IT/other.lang b/htdocs/langs/it_IT/other.lang
    index 026866ee399..74b9e7a1cbf 100644
    --- a/htdocs/langs/it_IT/other.lang
    +++ b/htdocs/langs/it_IT/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Codice di sicurezza
     NumberingShort=N°
     Tools=Strumenti
     TMenuTools=Strumenti
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Compleanno
     BirthdayDate=Data di nascita
     DateToBirth=Data di nascita
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Messaggio sulla pagina di pagamento convalidato
     MessageKO=Messaggio sulla pagina di pagamento annullato
     ContentOfDirectoryIsNotEmpty=La directory non è vuota.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Contatto aggiunto all'intervento
    -Notify_FICHINTER_VALIDATE=Intervento convalidato
    -Notify_FICHINTER_SENTBYMAIL=Intervento inviato per posta
     Notify_ORDER_VALIDATE=Ordine cliente convalidato
     Notify_ORDER_SENTBYMAIL=Ordine cliente inviato per email
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Ordine fornitore inviato per email
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Ordine fornitore registrato
     Notify_ORDER_SUPPLIER_APPROVE=Ordine fornitore approvato
     Notify_ORDER_SUPPLIER_REFUSE=Ordine fornitore rifiutato
     Notify_PROPAL_VALIDATE=proposta convalidata
    -Notify_PROPAL_CLOSE_SIGNED=Proposta del cliente chiusa come firmata
    -Notify_PROPAL_CLOSE_REFUSED=Proposta del cliente chiusa come rifiutata
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Proposta inviata per email
     Notify_WITHDRAW_TRANSMIT=Invia prelievo
     Notify_WITHDRAW_CREDIT=Accredita prelievo
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Creato soggetto terzo
     Notify_COMPANY_SENTBYMAIL=Email inviate dalla scheda soggetti terzi
     Notify_BILL_VALIDATE=Convalida fattura attiva
     Notify_BILL_UNVALIDATE=Ricevuta cliente non convalidata
    -Notify_BILL_PAYED=Fattura attiva pagata
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Fattura attiva annullata
     Notify_BILL_SENTBYMAIL=Fattura attiva inviata per email
     Notify_BILL_SUPPLIER_VALIDATE=Fattura fornitore convalidata
    -Notify_BILL_SUPPLIER_PAYED=Fattura fornitore pagata
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Fattura fornitore inviata per email
     Notify_BILL_SUPPLIER_CANCELED=Fattura fornitore cancellata
     Notify_CONTRACT_VALIDATE=Contratto convalidato
     Notify_FICHEINTER_VALIDATE=Intervento convalidato
    +Notify_FICHINTER_ADD_CONTACT=Contatto aggiunto all'intervento
    +Notify_FICHINTER_SENTBYMAIL=Intervento inviato per posta
     Notify_SHIPPING_VALIDATE=Spedizione convalidata
     Notify_SHIPPING_SENTBYMAIL=Spedizione inviata per email
     Notify_MEMBER_VALIDATE=Membro convalidato
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Creazione del progetto
     Notify_TASK_CREATE=Attività creata
     Notify_TASK_MODIFY=Attività modificata
     Notify_TASK_DELETE=Attività cancellata
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Vedi la configurazione del modulo %s
     NbOfAttachedFiles=Numero di file/documenti allegati
     TotalSizeOfAttachedFiles=Dimensione totale dei file/documenti allegati
     MaxSize=La dimensione massima è
     AttachANewFile=Allega un nuovo file/documento
     LinkedObject=Oggetto collegato
    -NbOfActiveNotifications=Numero di notifiche (num. di email da ricevere)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr è un ERP/CRM compatto composto di diversi moduli funzionali. Un demo comprendente tutti i moduli non ha alcun senso, perché un caso simile non esiste nella realtà. Sono dunque disponibili diversi profili demo.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Per usare questa opzione bisogna installare o abilitare la l
     ProfIdShortDesc=<b>Prof ID %s</b> è un dato dipendente dal paese terzo.<br/> Ad esempio, per il <b>paese %s,</b> è il <b>codice %s.</b>
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Numero di preventivi
     NumberOfCustomerOrders=Numero di ordini cliente
     NumberOfCustomerInvoices=Numero di ordini fornitore
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=Ti è stato assegnato un nuovo intervento %s.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Intervento %s convalidato
     EMailTextInvoiceValidated=Fattura %s convalidata
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Proposta %s convalidata.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Ordine %s convalidato.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Ordine %s approvato da %s
     EMailTextOrderRefused=Ordine %s rifiutato
     EMailTextOrderRefusedBy=Ordine %s rifiutato da %s
     EMailTextExpeditionValidated=La spedizione %s è stata convalidata.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Set dati importazione
     DolibarrNotification=Notifica automatica
     ResizeDesc=Ridimesiona con larghezza <b>o</b> altezza nuove. Il ridimensionamento è proporzionale, il rapporto tra le due dimenzioni verrà mantenuto.
    @@ -204,7 +214,7 @@ NewLength=Nuovo larghezza
     NewHeight=Nuova altezza
     NewSizeAfterCropping=Nuovo formato dopo il ritaglio
     DefineNewAreaToPick=Definisci una nuova area della foto da scegliere (clicca sull'immagine e trascina fino a raggiungere l'angolo opposto)
    -CurrentInformationOnImage=Strumento progettato per ridimensionare o tagliare un'immagine. Informazioni sull'immagine attualmente modificata
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Editor per le immagini
     YouReceiveMailBecauseOfNotification=Ricevi messaggio perché il tuo indirizzo email è compreso nella lista dei riceventi per informazioni su eventi particolari in un software di %s %s.
     YouReceiveMailBecauseOfNotification2=L'evento è il seguente:
    @@ -219,7 +229,7 @@ FileIsTooBig=File troppo grande
     PleaseBePatient=Attendere, prego...
     NewPassword=Nuova password
     ResetPassword=Reset password
    -RequestToResetPasswordReceived=A request to change your password has been received.
    +RequestToResetPasswordReceived=E' stata ricevuta una rischiesta di modifica della tua password
     NewKeyIs=Queste sono le tue nuove credenziali di accesso
     NewKeyWillBe=Le tue nuove credenziali per loggare al software sono
     ClickHereToGoTo=Clicca qui per andare a %s
    @@ -227,14 +237,18 @@ YouMustClickToChange=Devi cliccare sul seguente link per validare il cambio dell
     ForgetIfNothing=Se non hai richiesto questo cambio, lascia perdere questa mail. Le tue credenziali sono mantenute al sicuro.
     IfAmountHigherThan=Se l'importo è superiore a <strong>%s</strong>
     SourcesRepository=Repository for sources
    -Chart=Chart
    -PassEncoding=Password encoding
    -PermissionsAdd=Permissions added
    -PermissionsDelete=Permissions removed
    -YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</strong> chars
    +Chart=Grafico
    +PassEncoding=Codifica Password
    +PermissionsAdd=Permessi aggiunti
    +PermissionsDelete=Permessi rimossi
    +YourPasswordMustHaveAtLeastXChars=La tua password deve contenere almeno %scaratteri
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Area esportazioni
    @@ -248,5 +262,7 @@ WebsiteSetup=Impostazioni modulo Website
     WEBSITE_PAGEURL=Indirizzo URL della pagina
     WEBSITE_TITLE=Titolo
     WEBSITE_DESCRIPTION=Descrizione
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Parole chiave
    -LinesToImport=Lines to import
    +LinesToImport=Righe da importare
    diff --git a/htdocs/langs/it_IT/paybox.lang b/htdocs/langs/it_IT/paybox.lang
    index 75932d7168d..89648b2fe62 100644
    --- a/htdocs/langs/it_IT/paybox.lang
    +++ b/htdocs/langs/it_IT/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Impostazioni modulo Paybox
     PayBoxDesc=Questo modulo offre pagine per consentire il pagamento attraverso <a href="http://www.paybox.com" target="_blank">Paybox</a> da parte dei clienti. Può essere usato per un pagamento qualsiasi o per il pagamento di specifici oggetti Dolibarr (fattura, ordine, ...)
     FollowingUrlAreAvailableToMakePayments=Puoi utilizzare i seguenti indirizzi per permettere ai clienti di effettuare pagamenti su Dolibarr
     PaymentForm=Forma di pagamento
    -WelcomeOnPaymentPage=Benvenuti sul nostro servizio di pagamento online
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Questa schermata consente di effettuare un pagamento online su %s.
     ThisIsInformationOnPayment=Informazioni sul pagamento da effettuare
     ToComplete=Per completare
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL per il pagamento %s di una fattura
     ToOfferALinkForOnlinePaymentOnContractLine=URL per il pagamento %s di una riga di contratto
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL per il pagamento %s di un importo
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL per il pagamento %s dell'adesione di un membro
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Puoi anche aggiungere a qualunque di questi url il parametro <b>&tag=<i>value</i></b> (richiesto solo per il pagamento gratuito) per aggiungere una tag con un tuo commento.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Imposta il tuo Paybox con <b>url %s</b> perché venga automaticamente creato un pagamento alla convalida di Paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Il pagamento è stato registrato. Grazie.
    -YourPaymentHasNotBeenRecorded=Il pagamento non è stato registrato e la transazione è stata annullata. Grazie.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Dati account
     UsageParameter=Parametri d'uso
     InformationToFindParameters=Aiuto per trovare informazioni sul tuo account %s
    diff --git a/htdocs/langs/it_IT/projects.lang b/htdocs/langs/it_IT/projects.lang
    index 4493a76c07e..f2827d3c8a1 100644
    --- a/htdocs/langs/it_IT/projects.lang
    +++ b/htdocs/langs/it_IT/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Vuoi davvero eliminare il progetto?
     ConfirmDeleteATask=Vuoi davvero eliminare questo compito?
     OpenedProjects=Progetti aperti
     OpenedTasks=Attività aperte
    -OpportunitiesStatusForOpenedProjects=Numero di opportunità di progetti aperti per stato
    -OpportunitiesStatusForProjects=Importo delle vendite potenziali per stato nei progetti
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Visualizza progetto
     ShowTask=Visualizza compito
     SetProject=Imposta progetto
     NoProject=Nessun progetto definito o assegnato
    -NbOfProjects=Num. di progetti
    -NbOfTasks=Nr di attività
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Tempo lavorato
     TimeSpentByYou=Tempo impiegato da te
     TimeSpentByUser=Tempo impiegato dall'utente
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Vai all'elenco del tempo impiegato
     GoToListOfTasks=Vai all'elenco dei compiti
     GoToGanttView=Go to Gantt view
     GanttView=Vista Gantt
    -ListProposalsAssociatedProject=Elenco delle proposte commerciali associate al progetto
    -ListOrdersAssociatedProject=Elenco degli ordini clienti associati al progetto
    -ListInvoicesAssociatedProject=Elenco delle fatture attive associate al progetto
    -ListPredefinedInvoicesAssociatedProject=Elenco dei modelli di fattura associati al progetto
    -ListSupplierOrdersAssociatedProject=Elenco degli ordini fornitori associati al progetto
    -ListSupplierInvoicesAssociatedProject=Elenco delle fatture passive associate al progetto
    -ListContractAssociatedProject=Elenco dei contratti associati al progetto
    -ListShippingAssociatedProject=Elenco delle spedizioni collegate al progetto
    -ListFichinterAssociatedProject=Elenco degli interventi associati al progetto
    -ListExpenseReportsAssociatedProject=Elenco delle note spese associate con il progetto
    -ListDonationsAssociatedProject=Elenco delle donazioni associate al progetto
    -ListVariousPaymentsAssociatedProject=Pagamenti vari associati al progetto
    -ListActionsAssociatedProject=Elenco delle azioni associate al progetto
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=Tempo impiegato in compiti del progetto
     ListTaskTimeForTask=Tempo impiegato per l'attività
     ActivityOnProjectToday=Operatività sul progetto oggi
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Collegato ad un altro soggetto terzo
     TaskIsNotAssignedToUser=Attività non assegnata all'utente. Usa il bottone '<strong>%s</strong>' per assegnare l'attività ora.
     ErrorTimeSpentIsEmpty=Il campo tempo lavorato è vuoto
     ThisWillAlsoRemoveTasks=Questa azione eliminerà anche tutti i compiti del progetto (al momento ci sono <b>%s</b> compiti) e tutto il tempo lavorato già inserito.
    -IfNeedToUseOhterObjectKeepEmpty=Se qualche elemento (fattura, ordine, ...), appartenente ad un altro soggetto terzo deve essere collegato al progetto da creare, non compilare il campo per assegnare il progetto a più di un soggetto terzo.
    +IfNeedToUseOtherObjectKeepEmpty=Se qualche elemento (fattura, ordine, ...), appartenente ad un altro soggetto terzo deve essere collegato al progetto da creare, non compilare il campo per assegnare il progetto a più di un soggetto terzo.
     CloneProject=Clona progetto
     CloneTasks=Clona compiti
     CloneContacts=Clona contatti
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Progetto %s modificato
     TaskCreatedInDolibarr=Attività %s creata
     TaskModifiedInDolibarr=Attività %s modificata
     TaskDeletedInDolibarr=Attività %s cancellata
    -OpportunityStatus=Stato Opportunità
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. stato
    -OpportunityProbability=Probabilità oppotunità
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Probabilità vendita
    -OpportunityAmount=Ammontare opportunità
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. quantità
     OpportunityAmountAverageShort=Importo medio vendita
     OpportunityAmountWeigthedShort=Importo pesato vendita
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributore
     SelectElement=Seleziona elemento
     AddElement=Link all'elemento
     # Documents models
    -DocumentModelBeluga=Modello di progetto per la panoramica sugli oggetti collegati
    -DocumentModelBaleine=Modello per il report di un progetto completo
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Carico di lavoro previsto
     PlannedWorkloadShort=Carico di lavoro
     ProjectReferers=Elementi correlati
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Progetti con questo utente come contatto
     TasksWithThisUserAsContact=Compiti assegnati a questo utente
     ResourceNotAssignedToProject=Non assegnato al progetto
     ResourceNotAssignedToTheTask=Risorsa non assegnata all'attività
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Tempo impiegato da
     TasksAssignedTo=Attività assegnata a
     AssignTaskToMe=Assegnare un compito a me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assegnata attività a %s
     SelectTaskToAssign=Seleziona attività da a assegnare...
     AssignTask=Assegnare
     ProjectOverview=Panoramica
    -ManageTasks=Utilizzare i progetti per seguire compiti e tempo
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Utilizzare i progetti per seguire clienti interessati/opportunità
    -ProjectNbProjectByMonth=Num. di progetti creati per mese
    -ProjectNbTaskByMonth=Nr di attività create per mese
    -ProjectOppAmountOfProjectsByMonth=Quantità di opportunità per mese
    -ProjectWeightedOppAmountOfProjectsByMonth=Quantità ponderata di opportunità per mese
    -ProjectOpenedProjectByOppStatus=Apri progetto /clienti interessati per stato opportunità
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Le statistiche relative a progetti/clienti interessati
     TasksStatistics=Statistiche su attività di progetto/clienti interessati
     TaskAssignedToEnterTime=Compito assegnato. Inserire i tempi per questo compito dovrebbe esserre possibile.
     IdTaskTime=Tempo compito id
     YouCanCompleteRef=Se vuoi aggiungere informazioni al riferimento (per agevolare la ricerca tramite filtri), è opportuno separarle con un carattere "-" in modo che la numerazione automatica continui a funzionare correttamente per i progetti successivi (es: %s-ABC). Puoi aggiungere all'etichetta anche altre chiavi di ricerca.
     OpenedProjectsByThirdparties=Progetti aperti di soggetti terzi
    -OnlyOpportunitiesShort=Solo vendite potenziali
    -OpenedOpportunitiesShort=Opportunità aperte
    -NotAnOpportunityShort=Nessuna vendita potenziale
    -OpportunityTotalAmount=Opportunità importo totale
    -OpportunityPonderatedAmount=Opportunità importo ponderato
    -OpportunityPonderatedAmountDesc=Importo vendite potenziali pesato con la probabilità
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Potenziale
     OppStatusQUAL=Qualificazione
     OppStatusPROPO=Proposta
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=Non hai i permessi per chiudere il progetto %s
     DontHaveTheValidateStatus=Il progetto %s deve essere aperto per essere chiuso
     RecordsClosed=%s progetti chiusi
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/it_IT/propal.lang b/htdocs/langs/it_IT/propal.lang
    index c511dfa796a..77a4a1e6647 100644
    --- a/htdocs/langs/it_IT/propal.lang
    +++ b/htdocs/langs/it_IT/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Firmato (da fatturare)
     PropalStatusNotSigned=Non firmato (chiuso)
     PropalStatusBilled=Fatturato
     PropalStatusDraftShort=Bozza
    -PropalStatusValidatedShort=Convalidato
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Chiuso
     PropalStatusSignedShort=Firmato
     PropalStatusNotSignedShort=Non firmato
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Preventivo %s non trovato
     AddToDraftProposals=Aggiungi una bozza di preventivo
     NoDraftProposals=Nessuna bozza di preventivo
     CopyPropalFrom=Crea preventivo da uno esistente
    -CreateEmptyPropal=Crea preventivo vuoto o dalla lista dei prodotti / servizi
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Durata di validità predefinita per i preventivi (in giorni)
    -UseCustomerContactAsPropalRecipientIfExist=Utilizzare l'indirizzo del contatto cliente se definito al posto dell'indirizzo del destinatario
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clona preventivo
     ConfirmClonePropal=Vuoi davvero clonare il preventivo<b>%s</b>?
     ConfirmReOpenProp=Vuoi davvero riaprire il preventivo <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Responsabile per il cliente
     TypeContact_propal_external_SHIPPING=Contatto cliente per la consegna
     # Document models
     DocModelAzurDescription=Modello di preventivo completo (logo...)
    +DocModelCyanDescription=Modello di preventivo completo (logo...)
     DefaultModelPropalCreate=Creazione del modello predefinito
     DefaultModelPropalToBill=Modello predefinito quando si chiude un preventivo (da fatturare)
     DefaultModelPropalClosed=Modello predefinito quando si chiude un preventivo (da non fatturare)
    diff --git a/htdocs/langs/it_IT/website.lang b/htdocs/langs/it_IT/website.lang
    index 0bbb5e11b07..25fda3bd534 100644
    --- a/htdocs/langs/it_IT/website.lang
    +++ b/htdocs/langs/it_IT/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Codice
    -WebsiteSetupDesc=Crea qui tante voci quante il numero di siti ti servono. Vai poi nel menu Websites per modificarli
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Cancella sito web
    -ConfirmDeleteWebsite=Sei sicuro di vole cancellare questo sito web? Anche tutte le pagine e contenuti saranno cancellati.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Titolo/alias della pagina
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=Indirizzo URL del file CSS esterno
     WEBSITE_CSS_INLINE=contenuto file CSS (comune a tutte le pagine)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=File Robot (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Libreria media
    -EditCss=Edita Header Style/CSS o HTML
    +EditCss=Edit website properties
     EditMenu=Modifica menu
     EditMedias=Edit medias
    -EditPageMeta=Modifica metadati
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Aggiungi sito web
     Webpage=Web page/container
     AddPage=Aggiungi pagina/contenitore
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=L'anteprima del sito <strong>%s</strong> non è ancora disponibile. Devi prima aggiungere almeno una pagina.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=Visualizza pagina in una nuova scheda
     SetAsHomePage=Imposta come homepage
     RealURL=Indirizzo URL vero
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Da leggere
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Sito web aggiunto
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=ID della pagina
     Banner=Banner
     BlogPost=Articoli sul blog
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Account del sito web
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang
    index 3e6a49634f8..05540c2213f 100644
    --- a/htdocs/langs/ja_JP/admin.lang
    +++ b/htdocs/langs/ja_JP/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=開発
     VersionUnknown=未知の
     VersionRecommanded=推奨される
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=セッションを保存するためのハンドラ
     SessionSavePath=ストレージ·セッションのローカライズ
     PurgeSessions=セッションのパージ
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=あなたのPHPで構成されたセッション保存ハンドラを実行中のすべてのセッションを一覧表示することはできません。
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=新しい接続をロックする
    -ConfirmLockNewSessions=あなた自身に新しいDolibarr接続を制限してもよろしいですか。ユーザー<b>%s</b>だけでは、後に接続することができます。
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=接続ロックを解除する
     YourSession=セッション
    -Sessions=ユーザーセッション
    +Sessions=Users sessions
     WebUserGroup=Webサーバのユーザ/グループ
    -NoSessionFound=あなたのPHPには、アクティブなセッションを表示するには許可しないように思われる。セッション<b>(%s)を</b>保存するために使用されるディレクトリ(たとえば、OSの権限により、もしくはPHPディレクティブopen_basedirをすることによって)保護される可能性があります。
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=データを格納するデータベース·キャラクタ·セット
     DBSortingCharset=データをソートするには、データベース·キャラクタ·セット
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=外部ユーザー
     InternalUsers=内部ユーザー
     ExternalUsers=外部ユーザー
     GUISetup=表示
    -SetupArea=セットアップのエリア
    +SetupArea=セットアップ
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=ファイルのアップロードをテストするために形成します(設定に応じて)
     IfModuleEnabled=注:[はい]は、モジュールの<b>%sが</b>有効<b>になっ</b>ている場合にのみ有効です
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=検索を開始する文字のNBR:%s
     NotAvailableWhenAjaxDisabled=Ajaxが無効になったときには使用できません
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=プレビューは利用できません
     ThemeCurrentlyActive=現在アクティブなテーマ
     CurrentTimeZone=TimeZoneはPHP(サーバー)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=スペース
     Table=Table
     Fields=フィールズ
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=アクティブ
     SetupShort=セットアップ
     OtherOptions=その他のオプション
    -OtherSetup=その他のセットアップ
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=小数点の記号
     CurrentValueSeparatorThousand=桁区切り記号
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=パラメータ%s
    -LocalisationDolibarrParameters=ローカリゼーションのパラメータ
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=タイムゾーンは、PHPサーバー
     DaylingSavingTime=夏時間(ユーザー)
     CurrentHour=時間PHP(サーバー)
     CurrentSessionTimeOut=現在のセッションのタイムアウト
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=自動検出(ブラウザの言語)
     FeatureDisabledInDemo=デモで機能を無効にする
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=から要素のみ<a href="%s">対応のモジュールが</a>表示されます。
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=新しい
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore、Dolibarr ERP / CRM外部モジュールのための公式の市場の場所
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=リンク
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=行うにはデータベースに格納しない明確
     MainDbPasswordFileConfEncrypted=conf.phpで暗号化されたデータベース·パスワード(活性化推奨)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=生成されたPDFファイル(推奨しない活性化、大量のPDF生成を壊す)の保護
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=機能
     DolibarrLicense=ライセンス
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=ユーザーまたは開発者のドキュメント(DOC、よくある質問(FAQ)...)のために、 <br> Dolibarr Wikiで見てみましょう。 <br> <a href="%s" target="_blank"><b>%s</b></a>
     ForAnswersSeeForum=他の質問/ヘルプについては、Dolibarrフォーラムを使用することができます。 <br> <a href="%s" target="_blank"><b>%s</b></a>
    -HelpCenterDesc1=この領域には、Dolibarrのヘルプサポートサービスを取得することができます。
    -HelpCenterDesc2=このサービスの一部が<b>英語のみ</b>でご利用いただけます。
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=現在のメニューハンドラ
     MeasuringUnit=測定ユニット
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPSポート(php.iniのデフォルト<b>:%s)</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPSホスト(php.iniのデフォルト<b>:%s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPSポート(システムのようにUnix上でPHPに定義されていません)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPSホスト(システムのようにUnix上でPHPに定義されていません)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= 体系的にすべての送信メールの隠されたカーボンコピーを送信
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=電子メールを送信するために使用する方法
    -MAIN_MAIL_SMTPS_ID=認証が必要な場合は、SMTPには、ID
    -MAIN_MAIL_SMTPS_PW=認証が必要な場合は、SMTPパスワード
    -MAIN_MAIL_EMAIL_TLS= TLS(SSL)暗号を使用して、
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=すべてのSMS sendings(テストの目的やデモのために)無効にする
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=SMSを送信するために使用する方法
    -MAIN_MAIL_SMS_FROM=SMSを送信するためのデフォルトの送信者の電話番号
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=システムと同様にUnix上では使用できませんが備わっています。ローカルでsendmailプログラムをテストします。
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=モジュールのセットアップ
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-モジュールツール
     ModuleFamilyExperimental=実験的なモジュール
     ModuleFamilyFinancial=金融モジュール(会計/財務)
     ModuleFamilyECM=電子コンテンツ管理(ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=メニューハンドラ
     MenuAdmin=メニューエディタ
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=ステップ%s
    -FindPackageFromWebSite=(公式ウェブサイト%sの例の場合)必要な機能を提供するパッケージを検索します。
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr現在のバージョン
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= 秒単位で輸出応答をキャッシュするための遅延(0またはキャッシュなしの空の)
     DisableLinkToHelpCenter=ログインページのリンク&quot; <b>ヘルプやサポートが必要</b> &quot; <b>を</b>隠す
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=の自動折り返しは長すぎるので、あなた自身のtextareaに改行を追加しなければならない行は、ドキュメント上のページ外にあるので、もし、ありません。
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=最小長
     LanguageFilesCachedIntoShmopSharedMemory=ファイルlangは、共有メモリにロードされ
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=現在実行中のセットアップでの例
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=OpenDocumentをテンプレートディレクトリのリスト
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=構文の例: <br> C:\\ mydirに<br> / home / mydirの<br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>あなたのODTドキュメントテンプレートを作成する方法を知って、それらのディレクトリに格納する前に、ウィキのドキュメントをお読みください。
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Webサービス(webservicesのパラメータ &quot;do
     TestSubmitForm=入力テストフォーム
     ThisForceAlsoTheme=このメニューマネージャを使用すると、ユーザーの選択肢が何であれ、独自のテーマを使用します。また、スマートフォンに特化したこのメニューマネージャは、すべてのスマートフォン上で動作していません。あなたはあなたに問題が発生した場合は別のメニューマネージャを使用します。
     ThemeDir=スキンディレクトリ
    -ConnectionTimeout=コネクションタイムアウト
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=応答タイムアウト
     SmsTestMessage=_人のPHONEFROM__から__までのテストメッセージPHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=セキュリティで保護されたURLへの鍵
    -NoSmsEngine=いいえ、SMS送信者のマネージャーはご利用いただけません。 SMSセンダマネージャは、デフォルトのディストリビューションでインストールされていない(彼らは外部のサプライヤーに依存しているため)しかし、あなたはhttp://www.dolistore.comにいくつかを見つけることができます
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=あなたは、PDFの生成に関連する各グローバルオプションを設定することができます
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=アドレスボックスを築くためのルール
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=URLを確保するためのパラメータ
     SecurityTokenIsUnique=各URLごとに一意securekeyパラメータを使用して、
     EnterRefToBuildUrl=オブジェクト%sの参照を入力します。
     GetSecuredUrl=計算されたURLを取得する
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=パスワード
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=フィールド
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=ユーザーとグループ
     Module0Desc=Users / Employees and Groups management
    -Module1Name=サードパーティ
    -Module1Desc=会社と連絡先の管理
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=コマーシャル
     Module2Desc=商業管理
     Module10Name=会計
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=提案
     Module20Desc=商業的な提案の管理
     Module22Name=大量の電子郵便
    @@ -495,7 +501,7 @@ Module23Desc=エネルギーの消費量を監視する
     Module25Name=顧客からの注文
     Module25Desc=顧客の注文の管理
     Module30Name=請求書
    -Module30Desc=請求書、顧客のクレジットメモの管理。仕入先の請求書の管理
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=サプライヤー
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=製品の在庫の管理
     Module53Name=サービス
     Module53Desc=サービスの管理
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=バーコード
     Module55Desc=バーコードの管理
     Module56Name=テレフォニー
     Module56Desc=テレフォニー統合
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=ClickToDialシステムの統合(アスタリスク、...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=費用と旅行ノート
     Module75Desc=費用と出張·ノートの管理
     Module80Name=出荷
     Module80Desc=出荷および配信のための管理
    -Module85Name=銀行や現金
    +Module85Name=Banks and Cash
     Module85Desc=銀行や現金アカウントの管理
    -Module100Name=外部のサイト
    -Module100Desc=Dolibarrメニューに任意の外部のWebサイトが含まれており、Dolibarrフレームにそれを表示する
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailmanとすする
     Module105Desc=メンバーモジュールのための郵便配達またはSPIPインタフェース
     Module200Name=LDAP
    -Module200Desc=LDAPディレクトリの同期化
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke統合
     Module240Name=データのエクスポート
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=データのインポート
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=メンバー
     Module310Desc=財団のメンバーの管理
     Module320Name=RSSフィード
     Module320Desc=Dolibarr画面のページ内でRSSフィードを追加
    -Module330Name=ブックマーク
    -Module330Desc=ブックマークの管理
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=のwebcalendar
     Module410Desc=のwebcalendar統合
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=寄付
     Module700Desc=寄付金の管理
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=カマキリ
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYGエディタ
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=グラバター
    -Module2700Desc=ユーザー/メンバーの写真を(それらのメールに見られる)を表示するオンライングラバターサービス(www.gravatar.com)を使用します。インターネットへのアクセスを必要とする
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=のGeoIP Maxmindの変換機能
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=マルチ会社
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=切符売り場
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=売上高のポイント
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=売上高のポイント
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=ペイパル
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=インコターム
    -Module62000Desc=インコタームを管理する機能を追加
    +Module62000Name=インコタームズ
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=資源
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=顧客の請求書をお読みください
    @@ -651,9 +661,9 @@ Permission32=製品を作成/変更
     Permission34=製品を削除します。
     Permission36=隠された製品を参照してください/管理
     Permission38=輸出製品
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=(私が連絡している共有プロジェクトとプロジェクト)のプロジェクトを削除します。
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=介入を読む
     Permission62=介入を作成/変更
    @@ -686,7 +696,7 @@ Permission109=sendingsを削除します。
     Permission111=金融勘定を読む
     Permission112=作成/変更/削除して取引を比較する
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=輸出取引と口座のステートメント
     Permission116=アカウント間の転送
     Permission117=派遣のチェックを管理する
    @@ -694,15 +704,15 @@ Permission121=ユーザーにリンクされている第三者を読む
     Permission122=ユーザーにリンクされている第三者が作成/変更
     Permission125=ユーザーにリンクされている第三者を削除します。
     Permission126=第三者をエクスポートします。
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=プロバイダを読む
     Permission147=統計を読む
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=閉じるサプライヤーの受注
     Permission188=サプライヤの注文を取り消す
     Permission192=線を作成する
     Permission193=線をキャンセルする
    -Permission194=帯域幅のラインを読む
    +Permission194=Read the bandwidth lines
     Permission202=ADSL接続を作成する
     Permission203=順序接続順序
     Permission204=順序接続
    @@ -750,12 +760,12 @@ Permission244=隠されたカテゴリの内容を参照してください。
     Permission251=他のユーザーおよびグループを読む
     PermissionAdvanced251=他のユーザーを読む
     Permission252=他のユーザーの読み取り権限を
    -Permission253=他のユーザー、グループ、およびpermisssionsを作成/変更
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=内部/外部ユーザーおよびアクセス許可を作成/変更
     Permission254=変更の作成/外部ユーザーのみ
     Permission255=他のユーザーのパスワードを変更する
     Permission256=他のユーザーを削除するか、または無効にする
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=CAを読む
     Permission272=請求書をお読みください
     Permission273=問題の請求書
    @@ -765,7 +775,7 @@ Permission283=連絡先を削除
     Permission286=連絡先のエクスポート
     Permission291=関税を読む
     Permission292=関税のアクセス許可を設定する
    -Permission293=のcostumers関税を変更する
    +Permission293=Modify customers tariffs
     Permission300=バーコードを読み取る
     Permission301=バーコードを作成/変更
     Permission302=バーコードを削除します。
    @@ -787,11 +797,9 @@ Permission401=割引を読む
     Permission402=割引を作成/変更
     Permission403=割引を検証する
     Permission404=割引を削除します。
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=データベース(データロード)に外部データの
     Permission1321=顧客の請求書、属性、および支払いをエクスポートする
     Permission1322=Reopen a paid bill
     Permission1421=顧客の注文と属性をエクスポートします。
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=見通しの潜在的なレベル
     DictionaryCanton=州/地方
     DictionaryRegion=地域
    @@ -894,7 +902,7 @@ DictionaryVAT=VATレートまたは販売税率
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=支払条件
     DictionaryPaymentModes=支払いモード
    -DictionaryTypeContact=種類をお問い合わせ
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax(WEEE)
     DictionaryPaperFormat=紙の形式
    @@ -908,47 +916,47 @@ DictionarySource=提案/受注の起源
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=ユニット
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=セットアップは、保存された
     SetupNotSaved=Setup not saved
     BackToModuleList=モジュールリストに戻る
    -BackToDictionaryList=辞書リストに戻る
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=付加価値税管理
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=デフォルトでは、提案されたVATが0団体のような場合に使用することができますされ、個人が小さな会社をOU。
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=率
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE管理
    -LocalTax1IsUsedDescES= 見通し、請求書を作成し、デフォルトではRE率、受注などのアクティブな標準ルールに従います。 <br> TEの買い手が、REに供されていない場合、デフォルト= 0で再。ルールの終わり。 <br>買い手は、その後、デフォルトではREを、REに供されます。ルールの終わり。 <br>
    -LocalTax1IsNotUsedDescES= デフォルトでは、提案されたREは0です。ルールの終わり。
    -LocalTax1IsUsedExampleES= スペインでは、彼らはスペイン語IAEのいくつかの特定のセクションの対象に専門家です。
    -LocalTax1IsNotUsedExampleES= スペインでは、彼らは専門家と社会とスペインIAEの特定のセクションにあります。
    -LocalTax2ManagementES= IRPF管理
    -LocalTax2IsUsedDescES= 見通し、請求書を作成し、デフォルトではRE率、受注などのアクティブな標準ルールに従います。 <br>売り手は、デフォルト= 0でその後IRPF、IRPFにさらされていない場合。ルールの終わり。 <br>売主は、デフォルトではその後IRPFをIRPFに供されます。ルールの終わり。 <br>
    -LocalTax2IsNotUsedDescES= デフォルトでは、提案されたIRPFは0です。ルールの終わり。
    -LocalTax2IsUsedExampleES= スペインでは、フリーランサーとサービスモジュールの税制を選択した企業に提供する独立した専門家。
    -LocalTax2IsNotUsedExampleES= スペインでは彼らは、モジュールの税制の対象になりませんbussinesがあります。
    +LocalTax1ManagementES=RE管理
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=デフォルトでは、提案されたREは0です。ルールの終わり。
    +LocalTax1IsUsedExampleES=スペインでは、彼らはスペイン語IAEのいくつかの特定のセクションの対象に専門家です。
    +LocalTax1IsNotUsedExampleES=スペインでは、彼らは専門家と社会とスペインIAEの特定のセクションにあります。
    +LocalTax2ManagementES=IRPF管理
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=デフォルトでは、提案されたIRPFは0です。ルールの終わり。
    +LocalTax2IsUsedExampleES=スペインでは、フリーランサーとサービスモジュールの税制を選択した企業に提供する独立した専門家。
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=販売
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=ない翻訳がコードに見つからない場合、デフォルトで使用されるラベル
     LabelOnDocuments=ドキュメントのラベル
    -NbOfDays=日のNb
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=今月末に
     CurrentNext=Current/Next
     Offset=オフセット
    @@ -984,7 +994,7 @@ DatabaseUser=データベース·ユーザーの
     DatabasePassword=データベースのパスワード
     Tables=テーブル
     TableName=テーブル名
    -NbOfRecord=記録のNb
    +NbOfRecord=No. of records
     Host=サーバ
     DriverType=ドライバの種類
     SummarySystem=システム情報の概要
    @@ -996,7 +1006,7 @@ Skin=皮膚のテーマ
     DefaultSkin=デフォルトのスキンテーマ
     MaxSizeList=リストの最大長
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=その日のメッセージ
     MessageLogin=ログインページのメッセージ
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=左側のメニューの恒久的な検索フォーム
     DefaultLanguage=使用する既定の言語(言語コード)
     EnableMultilangInterface=多言語のインターフェイスをイネーブルにします。
     EnableShowLogo=左メニューのロゴを表示する
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=名
     CompanyAddress=アドレス
     CompanyZip=ZIP
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=銀行口座の%sの所有者
     BankModuleNotActive=銀行が有効になっていないモジュールを占めて
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=アラート
    -DelaysOfToleranceBeforeWarning=許容遅延の前に警告
    -DelaysOfToleranceDesc=アラートは、各年代後半要素のピクトの%sと画面上に報告される前に、この画面では、許容遅延を定義することができます。
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=閉じるには、提案について警告する前に許容差(日数)を遅らせる
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=請求しない提案について警告する前に許容差(日数)を遅らせる
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=アクティブにするサービスのアラートの前に許容遅延時間(日数)
    -Delays_MAIN_DELAY_RUNNING_SERVICES=期限切れのサービスに関するアラートの前に許容遅延時間(日数)
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=未払いの仕入先請求書の警告の前に許容遅延時間(日数)
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=未払いのクライアントの請求書のアラートの前にTolerence遅延(日数)
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=保留中の銀行の和解に警告する前に、許容遅延時間(日数)
    -Delays_MAIN_DELAY_MEMBERS=遅延会費のアラートの前に許容遅延時間(日数)
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=行うためのチェック預金のアラートの前に許容遅延時間(日数)
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=他のメニューエントリは、オプションのパラメータを管理することができます。
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=セキュリティ監査イベント
    -Audit=監査
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=Dolibarrセキュリティイベントのリスト
     SecurityEventsPurged=セキュリティイベントのパージ
    -LogEventDesc=ここDolibarrセキュリティイベントのロギングを有効にすることができます。 <b>監査-</b>管理者は、メニューの<b>システムツール</b>を介してそのコンテンツを見ることができます。警告は、この機能は、データベース内のデータを大量に消費することができます。
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=システム情報では、読み取り専用モードでのみ管理者の目に見える得るその他の技術情報です。
     SystemAreaForAdminOnly=この領域は、管理者ユーザーのために利用可能です。 Dolibarr権限のいずれも、この制限を減らすことはできません。
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=あなたがDolibarrの外観に関連する各パラメータを選択し、ここで感じることができる
     AvailableModules=Available app/modules
     ToActivateModule=モジュールを有効にするには、設定エリア(ホーム - &gt;セットアップ - &gt;モジュール)に行く。
     SessionTimeOut=セッションのタイムアウト
    -SessionExplanation=この番号は、セッションはこの遅延の前に期限切れにならないことを保証します。しかし、PHPのセッション管理は、保証は、そのセッションは、常にこの遅延後に有効期限はありません:キャッシュセッションをきれいにするシステムが稼動している場合に発生します。 <br>注:不特定のシステムで、PHPの内部プロセスは<b>%s / %s</b>アクセスについてだけ、他のセッションで行われたアクセス時にす ​​べてのセッションをクリーンアップします。
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=使用可能なトリガ
    -TriggersDesc=トリガーは、一度ディレクトリ<b>の</b> htdocs <b>/コア/トリガ</b>にコピーDolibarrワークフローの動作を変更するファイルです。彼らはDolibarrイベント(新会社の作成、請求書の検証、...)上でアクティブに、新しいアクションを実現しました。
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=このファイル内のトリガはその名前に<b>-NORUN</b>サフィックスは無効になっています。
     TriggerDisabledAsModuleDisabled=モジュール<b>%sが</b>無効<b>になっ</b>ているとして、このファイル内のトリガーが無効になっています。
     TriggerAlwaysActive=このファイル内のトリガーがアクティブにDolibarrモジュールであれ、常にアクティブです。
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=制限/精密セットアップ
    -LimitsDesc=ここDolibarrで使用される限界、精度と最適化を定義することができます。
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=ユニット価格の最大小数点以下
     MAIN_MAX_DECIMALS_TOT=合計価格の最大小数点以下
     MAIN_MAX_DECIMALS_SHOWN=画面に表示されている価格の最大10進数(追加<b>...</b>この番号の後にあなたが見たい場合は<b>...</b>数値が切り捨てられたときに画面に表示されている場合)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=製品の売上単価
     TotalPriceAfterRounding=丸め後の総価格(純/ VAT /税込)
     ParameterActiveForNextInputOnly=次の入力のための効果的なパラメータのみ
    -NoEventOrNoAuditSetup=は、セキュリティイベントがまだ記録されていません。監査が有効になっていない場合、これは正常であることができる &quot;設定 - セキュリティ - 監査&quot;ページを参照してください。
    -NoEventFoundWithCriteria=は、セキュリティイベントは、このような検索のcriterias見つかりませんされています。
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=ローカルのsendmailの設定を参照してください。
     BackupDesc=Dolibarrの完全なバックアップを作成するには、以下を行う必要があります。
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=アーカイブディレクトリは安全な場所に格納する必要があります。
     BackupDescY=生成されたダンプ·ファイルは安全な場所に格納する必要があります。
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Dolibarrのバックアップを復元するには、以下を行う必要があります。
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= このルールがアクティブ化モジュールによって<b>%s</b>に強制されます。
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=あなたは、ユーザ<b>%s
     YourPHPDoesNotHaveSSLSupport=あなたのPHPでのSSLの機能は使用できません
     DownloadMoreSkins=ダウンロードするには多くのスキン
     SimpleNumRefModelDesc=形式yyは年である%syymm-NNNNの参照番号を返し、mmは月とnnnnは穴がなく、リセットなしのシーケンスです。
    -ShowProfIdInAddress=ドキュメント上のアドレスとのprofesionnals IDを表示
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=部分的な翻訳
    -MAIN_DISABLE_METEO=メテオビューを無効にします。
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=APIへのログインをテストします。
    -ProxyDesc=Dolibarrの一部の機能が動作するようにインターネットアクセスを持っている必要があります。このためにここでパラメータを定義します。 Dolibarrサーバーがプロキシサーバーの背後にある場合、これらのパラメータは、それを介してインターネットにアクセスする方法をDolibarr指示します。
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=外部からのアクセス
     MAIN_PROXY_USE=プロキシサーバ(それ以外の場合、インターネットへの直接アクセス)を使用して、
     MAIN_PROXY_HOST=プロキシサーバーの名前/アドレス
     MAIN_PROXY_PORT=プロキシサーバーのポート
     MAIN_PROXY_USER=プロキシサーバーを使用するには、ログインしてください
     MAIN_PROXY_PASS=プロキシサーバーを使用するためのパスワード
    -DefineHereComplementaryAttributes=デフォルトでは既に利用できない、ここですべての属性を定義して、あなたは%sのためにサポートさせたい。
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=補完的な属性
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=警告は、一部のLinuxシステムでは、電子メールから電子メールを送信するためには、sendmailの実行セットアップする必要があります含むオプション-BA(パラメータmail.force_extra_parameters php.iniファイルに)。一部の受信者がメールを受信しない場合は、mail.force_extra_parameters =-BA)と、このPHPパラメータを編集してみてください。
     PathToDocuments=ドキュメントへのパス
     PathDirectory=ディレクトリ
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=フィールド%sのエディション
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=小文字で共有数字と文字を含む8文字:内部Dolibarrアルゴリズムに従って生成されたパスワードを返します。
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=新しいユーザーを作成するために必要な電子メ
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=企業のモジュールのセットアップ
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=ドキュメントテンプレート
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=ドラフト文書に透かし
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=ユニークなイドプロ
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=<b>%s</b>形式にエクスポートするリンクは以下のリンクで入手可能です:%s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=<b>%s</b>形式にエクスポートするリンクは以
     BillsSetup=請求書モジュールのセットアップ
     BillsNumberingModule=モジュールの番号請求書とクレジットメモ
     BillsPDFModules=請求書ドキュメントモデル
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=クレジットメモ
     CreditNotes=クレジットメモ
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= 各メンバーのログインを管理する
     AdherentMailRequired=新しいメンバーを作成するために必要な電子メール
     MemberSendInformationByMailByDefault=メンバー(検証や新しいサブスクリプション)にメールの確認を送信するチェックボックスはデフォルトでオンになっています
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAPの設定
     LDAPGlobalParameters=グローバルパラメータ
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=同期テストに成功
     LDAPSynchroKO=失敗した同期のテスト
    -LDAPSynchroKOMayBePermissions=同期テストに失敗しました。サーバへのコネクションが正しく設定されていることを確認し、LDAP udpatesすることができます
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCPは、LDAPサーバに成功(SERVER = %s、ポート= %s)に接続
     LDAPTCPConnectKO=TCPは、LDAPサーバへの接続(SERVER = %s、ポート= %s)に失敗しました
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=LDAPサーバへのAuthentificate /接続(SERVER = %s、ポート= %sは、Admin = %s、パスワード= %s)に失敗しました
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=バージョン3用に設定されたLDAPサーバ
     LDAPSetupForVersion2=バージョン2用に設定されたLDAPサーバ
     LDAPDolibarrMapping=Dolibarrマッピング
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=ログイン(サンバ、ActiveDirectoryを)
     LDAPFieldLoginSambaExample=例:sAMAccountNameが
     LDAPFieldFullname=ファーストネーム
     LDAPFieldFullnameExample=例:cn
    -LDAPFieldPasswordNotCrypted=パスワードは暗号化されません
    -LDAPFieldPasswordCrypted=パスワードは暗号化され
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=例:userPasswordを
     LDAPFieldCommonNameExample=例:cn
     LDAPFieldName=名
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=値の例は、次のロードされたスキーマを持つ<b>OpenLDAPの</b>ために設計されています<b>。core.schema、cosine.schema、inetorgperson.schema)。</b>あなたがthoose値とOpenLDAPを使用する場合は、すべてのthooseスキーマが読み込まれているように、LDAP設定<b>ファイル</b> slapd.conf <b>を</b>変更<b>します</b> 。
     ForANonAnonymousAccess=認証されたアクセスも(たとえば、書き込みアクセス用)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=製品モジュールのセットアップ
     ServiceSetup=サービスモジュールのセットアップ
     ProductServiceSetup=製品とサービスモジュールのセットアップ
     NumberOfProductShowInSelect=コンボselectリスト内の製品の最大数(0 =制限なし)
    -ViewProductDescInFormAbility=フォーム内の​​製品の説明の可視化(それ以外のポップアップツールチップなど)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=製品に使用するデフォルトのバーコードの種類
     SetDefaultBarcodeTypeThirdParties=第三者のために使用するデフォルトのバーコードの種類
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=送信モジュールのセットアップ
     SendingsReceiptModel=領収書のモデルを送信する
     SendingsNumberingModules=モジュールの番号Sendings
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=製品の納入領収書ナンバリングモジュール
    @@ -1515,18 +1529,18 @@ AdvancedEditor=高度なエディタ
     ActivateFCKeditor=のための高度なエディタをアクティブにします。
     FCKeditorForCompany=要素の説明と注意事項のWYSIWIGエディタの作成/版(製品/サービスを除く)
     FCKeditorForProduct=製品/サービスの説明と注意事項のWYSIWIGエディタの作成/版
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= 郵送のWYSIWIGエディタの作成/版
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=接続に成功しましたが、データベースは、osCommerceのデータベース(キー%sがテーブル%sに見つからない)になるようには見えません。
    -OSCommerceTestOk=ユーザー '%s'成功したデータベース &quot;%s&quot;のサーバ &quot;%s&quot;への接続を確立します。
    -OSCommerceTestKo1=サーバー '%s'への接続が成功しますが、データベース '%s'は到達できませんでした。
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=ユーザー '%s'でサーバー '%s'への接続に失敗しました。
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=メニューを削除
     Menus=メニュー
    @@ -1548,7 +1562,7 @@ DetailRight=不正な灰色のメニューを表示するための条件
     DetailLangs=ラベルのコード変換のためにラングのファイル名
     DetailUser=インターン/エキスターン/すべて
     Target=ターゲット
    -DetailTarget=リンクのターゲット(_blankトップ新しいウィンドウが開きます)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=レベル(-1:トップメニュー、0:ヘッダメニュー、&gt; 0でメニューやサブメニュー)
     ModifMenu=メニューの変更
     DeleteMenu=メニューエントリを削除する
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=付加価値税(VAT)が原因です。 <br> - 貨物の
     OptionVatDebitOptionDesc=付加価値税(VAT)が原因です。 <br> - 貨物の配達に(我々は請求書の日付を使用します) <br> - サービスの請求書(デビット)の
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=着払い
     OnPayment=支払いに
     OnInvoice=請求書
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=イベントと議題モジュールのセットアップ
     PasswordTogetVCalExport=エクスポートのリンクを許可するキー
     PastDelayVCalExport=より古いイベントはエクスポートされません
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=モジュールのセットアップをダイヤルする]をクリックします
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=売上高のポイント
     CashDeskSetup=販売モジュールのセットアップのポイント
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=現金支払いを受け取るために使用するデフォルトのアカウント
     CashDeskBankAccountForCheque= 小切手による支払いを受け取るために使用するデフォルトのアカウント
     CashDeskBankAccountForCB= クレジットカードでの現金支払いを受け取るために使用するデフォルトのアカウント
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=モジュールのセットアップをブックマーク
    -BookmarkDesc=このモジュールは、ブックマークを管理することができます。また、あなたの左のメニュー上の任意のDolibarrページまたはexternale Webサイトへのショートカットを追加することができます。
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=左側のメニューに表示するブックマークの最大数
     ##### WebServices #####
     WebServicesSetup=ウェブサービスモジュールのセットアップ
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=マルチ会社のモジュールのセットアップ
     ##### Suppliers #####
     SuppliersSetup=サプライヤーモジュールのセットアップ
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=プロジェクトモジュールのセットアップ
     ProjectsModelModule=プロジェクトの報告書ドキュメントモデル
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=ZIP
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/ja_JP/banks.lang b/htdocs/langs/ja_JP/banks.lang
    index 9b81fb957cd..1ec50d96bf1 100644
    --- a/htdocs/langs/ja_JP/banks.lang
    +++ b/htdocs/langs/ja_JP/banks.lang
    @@ -7,7 +7,7 @@ BankName=銀行名
     FinancialAccount=アカウント
     BankAccount=預金
     BankAccounts=銀行口座
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=金融口座のref
     AccountLabel=金融口座のラベル
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=アカウントのアドレス
     BankAccountCountry=アカウントの国
     BankAccountOwner=アカウントの所有者名
     BankAccountOwnerAddress=アカウントの所有者のアドレス
    -RIBControlError=値の整合性チェックが失敗します。これは、この口座番号の情報が(国、数字とIBANをチェック)、完全または間違っていないことを意味します。
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=アカウントを作成する
     NewBankAccount=新しいアカウント
     NewFinancialAccount=新しい金融口座
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=共存し得る
     Conciliate=調整する
     Conciliation=和解
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=閉じたアカウントを含める
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=銀行の転送
     BankTransfers=銀行振込
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=からの
     TransferTo=への
     TransferFromToDone=<b>%s %s</b> %sからの<b>%s</b>への転送が記録されています。
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=銀行小切手
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=預金証書を確認表示する
    -NumberOfCheques=小切手のNb
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=戻るアカウントへ
     ShowAllAccounts=すべてのアカウントに表示
    -FutureTransaction=フューチャーのトランザクション。調停する方法はありません。
    -SelectChequeTransactionAndGenerate=チェックの預金証書に含まれると、&quot;作成&quot;をクリックしてチェックをフィルタリング/選択してください。
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/ja_JP/bills.lang b/htdocs/langs/ja_JP/bills.lang
    index e2f79118a4f..920007f1c33 100644
    --- a/htdocs/langs/ja_JP/bills.lang
    +++ b/htdocs/langs/ja_JP/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=見積送り状
     InvoiceProFormaDesc=<b>プロフォーマインボイスは、</b>真<b>の</b>請求書のイメージですが、どんな会計の値を持っていません。
     InvoiceReplacement=交換用の請求書
     InvoiceReplacementAsk=請求書の交換請求書
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=クレジットメモ
     InvoiceAvoirAsk=請求書を訂正するためにクレジットノート
    -InvoiceAvoirDesc=<b>クレジット·ノートでは、</b>請求書が実際に支払った量よりも異なります(顧客がエラーによってあまりにも多くを支払った、または彼が例えば、いくつかの製品が返されましたので、完全に支払われないため)量を持っているという事実を解決するために使用される負の請求書です。
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=支払いを削除します。
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=仕入先の支払
     ReceivedPayments=受け取った支払い
     ReceivedCustomersPayments=顧客から受け取った支払
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=検証するために受信されたお客様のお支払い
     PaymentsReportsForYear=%sの支払い報告書
     PaymentsReports=決済レポート
    @@ -91,8 +91,8 @@ PaymentConditionsShort=支払条件
     PaymentAmount=支払金額
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=支払うために思い出させるよりも高い支払い
    -HelpPaymentHigherThanReminderToPay=注目は、1つまたは複数の請求書の支払額を支払うための残りの部分よりも高くなっています。 <br>あなたのエントリを編集し、それ以外の場合は確認して、それぞれの過払い請求のために受け取った過剰のクレジットメモを作成する方法について考える。
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=分類 '有料'
     ClassifyPaidPartially='は部分的に有料 &quot;に分類
     ClassifyCanceled=&quot;放棄&quot;を分類する
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=クローズ(無給)
     BillStatusClosedPaidPartially=有料(一部)
     BillShortStatusDraft=ドラフト
     BillShortStatusPaid=有料
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=有料
     BillShortStatusCanceled=放棄された
     BillShortStatusValidated=検証
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=閉じた
     BillShortStatusClosedPaidPartially=有料(一部)
     PaymentStatusToValidShort=検証するには
    -ErrorVATIntraNotConfigured=まだ定義されていないIntracommunautary VAT番号
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=デフォルトの支払いモードが定義されていません。この問題を解決する請求モジュールのセットアップに進みます。
     ErrorCreateBankAccount=銀行口座を作成し、支払いのモードを定義するために請求モジュールのセットアップ]パネルに移動
     ErrorBillNotFound=請求書%sは存在しません。
    -ErrorInvoiceAlreadyReplaced=エラーは、請求書%sを置き換えるために請求書を検証しよう。しかし、この1つはすでに請求書%sに置き換えられています。
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=既に使用されるエラー、割引
     ErrorInvoiceAvoirMustBeNegative=エラーは、正しい請求書は、負の金額を持っている必要があります
     ErrorInvoiceOfThisTypeMustBePositive=エラー、請求書のこの型は、正の金額を持っている必要があります
     ErrorCantCancelIfReplacementInvoiceNotValidated=エラーは、ドラフトの状態のままで別の請求書に置き換えられている請求書を取り消すことはできません
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=から
     BillTo=請求する
     ActionsOnBill=請求書上のアクション
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=悪い顧客
     ConfirmClassifyPaidPartiallyReasonProductReturned=製品は、部分的に返される
     ConfirmClassifyPaidPartiallyReasonOther=その他の理由で放棄された金額
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=請求書は、適切なコメントで提供されている場合、この選択が可能です。 (例«のみ実際に支払われた価格に相当する税控除の権利を与える»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=一部の国では、この選択はあなたの請求書が正しいメモが含まれている場合にのみ可能であるかもしれません。
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=他のすべてに適合しない場合は、この選択肢を使用して、
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>悪い顧客は</b>彼<b>の</b>借金を支払うことを拒否する顧客です。
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=製品の一部が返されたため支払いが完了していない場合は、この選択は使用されます
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=他のすべての合っていない場合は、以下の状況で、たとえば、この選択を使用します。 <br> - いくつかの製品が返送されたため支払いが完了しません<br> - 割引を忘れていたため量があまりにも重要な主張<br>すべてのケースで、量が過剰主張は、クレジットメモを作成することにより、会計システムに修正する必要があります。
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=その他
     ConfirmClassifyAbandonReasonOtherDesc=この選択は、他のすべての例で使用されます。交換する請求書を作成することを計画するなどの理由で。
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=請求書を検証する
     UnvalidateBill=請求書をUnvalidate
    -NumberOfBills=請求書のNb
    -NumberOfBillsByMonth=月別請求書のNb
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=請求書の金額
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=月別請求書の金額(税引後)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=請求書を表示する
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=顧客の請求書と請求書の行
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=顧客の請求書と支払い
    -ExportDataset_invoice_1=顧客の請求書のリストと請求書の行
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=顧客の請求書と支払い
     ProformaBill=プロフォーマビル:
     Reduction=削減
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=ビル·アドレス
    -HelpEscompte=この割引は、その支払いが長期前に行われたため、顧客に付与された割引です。
    -HelpAbandonBadCustomer=この金額は、放棄されている(顧客が悪い顧客であると)と卓越した緩いとみなされます。
    -HelpAbandonOther=それはエラーが発生しましたので、この量は、(例えば、他に置き換え間違った顧客または請求書)放棄されている
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=お支払い番号
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=ない請求書が選択されていません
     CloneInvoice=請求書のクローンを作成する
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=請求書が交換されたため、アクションを無効に
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=支払いのNb
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=二つに割引を分割
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=二つの部分のそれぞれの入力量:
    -TotalOfTwoDiscountMustEqualsOriginal=二つの新しい割引の合計は元の割引額と等しくなければなりません。
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=関連する請求書
     RelatedBills=関連する請求書
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=チェック
     PaymentTypeShortCHQ=チェック
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=ラインの支払いに
    -PaymentTypeShortVAD=ラインの支払いに
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=ドラフト
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=銀行の詳細
     BankCode=銀行コード
    -DeskCode=デスクのコード
    +DeskCode=Office code
     BankAccountNumber=口座番号
    -BankAccountNumberKey=キー
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN番号
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=BIC / SWIFT番号
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=下記の銀行口座に振込みによるお
     VATIsNotUsedForInvoice=CGIの*非適用される付加価値税がart-293B
     LawApplicationPart1=12/05/80の法則80.335のアプリケーションによって
     LawApplicationPart2=財の所有のまま
    -LawApplicationPart3=売り手のキャッシングが完了するまで
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=その価格。
     LimitedLiabilityCompanyCapital=資本金SARL
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=かどうかをチェック
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=請求書の受信者として顧客の請求の連絡先アドレスの代わりにサードパーティのアドレスを使用する
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=すべての未払いの請求書を表示する
     ShowUnpaidLateOnly=後半未払いの請求書のみを表示
     PaymentInvoiceRef=支払いの請求書%s
    @@ -474,21 +476,22 @@ Reported=遅延
     DisabledBecausePayments=いくつかの支払いがあるのでできませ​​ん
     CantRemovePaymentWithOneInvoicePaid=支払った分類少なくとも一つの請求書があるので支払いを削除することはできません
     ExpectedToPay=予想される支払い
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=この支払によって支払った
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=を持たないすべての請求書は自動的にステータスが &quot;支払った&quot;に閉鎖され支払うことに残っています。
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=請求書PDFテンプレートのカニ。完全な請求書テンプレート(テンプレートをおすすめ)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/ja_JP/cashdesk.lang b/htdocs/langs/ja_JP/cashdesk.lang
    index ba860789feb..511c8872bbf 100644
    --- a/htdocs/langs/ja_JP/cashdesk.lang
    +++ b/htdocs/langs/ja_JP/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=会社を表示
     ShowStock=倉庫を表示
     DeleteArticle=この記事を削除するときにクリックします
     FilterRefOrLabelOrBC=検索 (参照/ラベル)
    -UserNeedPermissionToEditStockToUsePos=請求書作成時に在庫を減らすことを依頼するため、POSを使用するユーザーは在庫を編集する権限が必要です。
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr領収書プリンター
    +PointOfSale=売上高のポイント
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/ja_JP/commercial.lang b/htdocs/langs/ja_JP/commercial.lang
    index 9c77d23a0d1..a9c68e6c43e 100644
    --- a/htdocs/langs/ja_JP/commercial.lang
    +++ b/htdocs/langs/ja_JP/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=電話
     ActionAC_FAX=FAXを送信
     ActionAC_PROP=メールで提案を送る
     ActionAC_EMAIL=電子メールを送信
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=ミーティング
     ActionAC_INT=Intervention on site
     ActionAC_FAC=メールでの顧客の請求書を送る
    @@ -72,8 +73,8 @@ StatusProsp=見通しの状態
     DraftPropals=ドラフト商業の提案
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/ja_JP/companies.lang b/htdocs/langs/ja_JP/companies.lang
    index 6b94eba25d0..86f2f491d03 100644
    --- a/htdocs/langs/ja_JP/companies.lang
    +++ b/htdocs/langs/ja_JP/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=サードパーティを選択します。
     ConfirmDeleteCompany=この会社と継承されたすべての情報を削除してもよろしいですか?
     DeleteContact=連絡先を削除
     ConfirmDeleteContact=この連絡先と継承されたすべての情報を削除してもよろしいですか?
    -MenuNewThirdParty=新しいサードパーティ
    -MenuNewCustomer=新しい顧客
    -MenuNewProspect=新しい見通し
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=新しい民間の個々の
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=サードパーティの連絡先
     Company=会社
     CompanyName=会社名
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=企業
    -CountryIsInEEC=国が欧州経済共同体の内部にある
    -ThirdPartyName=サードパーティの名前
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=第三者
    -ThirdParties=サードパーティ
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=見込み
     ThirdPartyProspectsStats=見込み
     ThirdPartyCustomers=お客さま
     ThirdPartyCustomersStats=お客さま
     ThirdPartyCustomersWithIdProf12=%s %sまたはお持ちのお客様
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=サードパーティ製のタイプ
    +ThirdPartyType=Type of company
     Individual=私人
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=親会社
     Subsidiaries=子会社
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=郵便番号
     Town=シティ
     Web=ウェブ
     Poste= 位置
    -DefaultLang=デフォルトでは、言語
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=提案
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=構文は有効です。
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=この顧客は<b>%sの%%</b>デフォルトの割引
     CompanyHasNoRelativeDiscount=この顧客は、デフォルトではなく相対的な割引がありません
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=この顧客はまだ<b>%s %s</b>のためにクレジットノートを持っている
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=なし
    -Supplier=サプライヤー
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=コンタクト/アドレスを編集
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=会社を削除します。
     PersonalInformations=個人データ
     AccountancyCode=Accounting account
    -CustomerCode=顧客コード
    -SupplierCode=Vendor code
    -CustomerCodeShort=顧客コード
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=すべての顧客固有の顧客コード、
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=第三者が顧客または見込み客である場合は必須
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=モジュールによって制御の妥当性
    -ThisIsModuleRules=これは、このモジュールのためのルールです。
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=連絡する見通し
     CompanyDeleted=データベースから削除された会社 &quot;%s&quot;。
     ListOfContacts=連絡先/アドレスのリスト
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=第三者のリスト
    -ShowCompany=Show third party
    +ListOfContactsAddresses=連絡先/アドレスのリスト
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=連絡先を表示する
     ContactsAllShort=すべて(フィルタなし)
     ContactType=コンタクトタイプ
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=この連絡先は、任意の商業的な提案のた
     NoContactForAnyContract=この接触は、いかなる契約の連絡はありません
     NoContactForAnyInvoice=この連絡先は、任意の請求書の連絡はありません
     NewContact=新しい連絡先/アドレス
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=私の連絡先
     Capital=資本
     CapitalOf=%sの首都
     EditCompany=会社を編集します。
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=チェック
    -VATIntraCheckDesc=リンク<b>%sは、</b>欧州のVATチェッカーサービスを要求することができます。サーバーから外部インターネットへのアクセスが動作するように、このサービスが必要となります。
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=欧州委員会のサイトでIntracomunnautary VATをチェックする
    -VATIntraManualCheck=また、ヨーロッパのウェブサイトから手動でチェックすることができます<a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=ことはできませんを確認してください。サービスは加盟国(%s)によって提供されていません確認してください。
    -NorProspectNorCustomer=また見通し、また、顧客
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=スタッフ
     ProspectLevelShort=潜在的な
     ProspectLevel=見通しの可能性
    @@ -387,12 +387,12 @@ ExportCardToFormat=形式にカードをエクスポートする
     ContactNotLinkedToCompany=第三者にリンクされて接触しない
     DolibarrLogin=Dolibarrログイン
     NoDolibarrAccess=いいえDolibarrアクセス​​できない
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=連絡先とプロパティ
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=価格水準
     DeliveryAddress=配信アドレス
     AddAddress=アドレスを追加します。
    @@ -402,16 +402,16 @@ DeleteFile=ファイルを削除します。
     ConfirmDeleteFile=あなたがこのファイルを削除してもよろしいですか?
     AllocateCommercial=Assigned to sales representative
     Organization=組織
    -FiscalYearInformation=会計年度に関する情報
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=会計年度の開始月
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=見込み客リスト
    -ListCustomersShort=顧客リスト
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=ユニークな第三者の合計
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=開く
     ActivityCeased=閉じた
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=顧客/サプライヤーコードは無料です。このコードは、いつでも変更することができます。
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/ja_JP/dict.lang b/htdocs/langs/ja_JP/dict.lang
    index ef49eaba6a3..a59b50ac0f2 100644
    --- a/htdocs/langs/ja_JP/dict.lang
    +++ b/htdocs/langs/ja_JP/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=ハード島とマクドナルド
     CountryVA=ローマ法王庁(バチカン市国)
     CountryHN=ホンジュラス
     CountryHK=香港
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=インド
     CountryID=インドネシア
     CountryIR=イラン
    @@ -131,7 +131,7 @@ CountryKI=キリバス
     CountryKP=北朝鮮
     CountryKR=韓国
     CountryKW=クウェート
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=ラオ語
     CountryLV=ラトビア
     CountryLB=レバノン
    @@ -160,7 +160,7 @@ CountryMD=モルドバ
     CountryMN=モンゴル国
     CountryMS=モントセラト
     CountryMZ=モザンビーク
    -CountryMM=Birmania(ミャンマー)
    +CountryMM=Myanmar (Burma)
     CountryNA=ナミビア
     CountryNR=ナウル
     CountryNP=ネパール
    @@ -223,7 +223,7 @@ CountryTO=トンガ
     CountryTT=トリニダードトバゴ
     CountryTR=トルコ
     CountryTM=トルクメニスタン
    -CountryTC=タークス諸島とCailos諸島
    +CountryTC=Turks and Caicos Islands
     CountryTV=ツバル
     CountryUG=ウガンダ
     CountryUA=ウクライナ
    @@ -277,7 +277,7 @@ CurrencySingMGA=アリアリ
     CurrencyMUR=モーリシャスルピー
     CurrencySingMUR=モーリシャスルピー
     CurrencyNOK=ノルウェークローネ
    -CurrencySingNOK=ノルウェークローネ
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=チュニジアディナール
     CurrencySingTND=チュニジアディナール
     CurrencyUSD=米ドル
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=口頭
     DemandReasonTypeSRC_PARTNER=パートナー
     DemandReasonTypeSRC_EMPLOYEE=従業員
     DemandReasonTypeSRC_SPONSORING=後援
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=4A0 用紙
     PaperFormatEU2A0=2A0 用紙
    diff --git a/htdocs/langs/ja_JP/ecm.lang b/htdocs/langs/ja_JP/ecm.lang
    index 4aee74f2353..57b25903459 100644
    --- a/htdocs/langs/ja_JP/ecm.lang
    +++ b/htdocs/langs/ja_JP/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=ディレクトリ内のドキュメントのNb
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=ディレクトリ
     ECMSectionManual=手動のディレクトリ
     ECMSectionAuto=自動ディレクトリ
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=作成されたディレクトリなし
     ShowECMSection=ディレクトリを表示する
     DeleteSection=ディレクトリを削除します。
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/ja_JP/errors.lang b/htdocs/langs/ja_JP/errors.lang
    index d80faa8f618..6ee187a0541 100644
    --- a/htdocs/langs/ja_JP/errors.lang
    +++ b/htdocs/langs/ja_JP/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=値 '%s'に間違った日付の形式になっています
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=ディレクトリ%sの書き込みに失敗しました
     ErrorFoundBadEmailInFile=ファイル内の%s線の発見誤った電子メールのシンタックス(電子メール= %sを使用したサンプルライン%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=いくつかの必須フィールドが満たされていませんでした。
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=ディレクトリの作成に失敗しました。そのWebサーバのユーザがDolibarrのドキュメントディレクトリに書き込む権限を持って確認してください。パラメータの<b>safe_modeが</b>このPHPが有効になっている場合、Dolibarr PHPファイルは、Webサーバーのユーザー(またはグループ)に所有していることを確認してください。
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=フィールド<b>%sは、</b>特殊文字が含まれてはいけません。
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=全く会計モジュールが活性化しない
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAPのマッチングは完全ではありません。
     ErrorLDAPMakeManualTest=。ldifファイルは、ディレクトリ%sで生成されました。エラーの詳細情報を持つようにコマンドラインから手動でそれをロードしようとする。
    -ErrorCantSaveADoneUserWithZeroPercentage=&quot;で行われた&quot;フィールドも満たされている場合は、 &quot;statutが起動していない&quot;とアクションを保存することはできません。
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=作成に使用refは、すでに存在しています。
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascriptがこの機能が動作しているために無効にすることはできません。 Javascriptを有効/無効にするには、メニューHome  - &gt;セットアップ - &gt;ディスプレイに移動します。
     ErrorPasswordsMustMatch=両方入力したパスワードは、互いに一致している必要があります
    -ErrorContactEMail=技術的なエラーが発生しました。 、次の電子メール<b>%s</b>に管理者に連絡してenはエラーコードメッセージで<b>%s、</b>またはこのページの画面コピーを追加することにより、さらに優れたを提供してください。
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=フィールド番号<b>%s</b>の間違った値(値<b>'%s'は</b>正規表現のルール<b>%s</b>一致<b>し</b>ません)
     ErrorFieldValueNotIn=フィールド番号<b>%s</b>の間違った値(値<b>'%s'は、</b>テーブルの<b>%s</b>のフィールド<b>%s</b>に使用可能な値ではありません)
     ErrorFieldRefNotIn=フィールド番号<b>%s</b>のために間違った値(値<b>&quot;%s&quot;は%s</b>既存のREFではありません)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=ウイルス対策プログラムがファイル
     ErrorSpecialCharNotAllowedForField=特殊文字は、フィールド &quot;%s&quot;に許可されていません
     ErrorNumRefModel=参照は、データベース(%s)に存在し、この番号規則と互換性がありません。レコードを削除するか、このモジュールを有効にするために参照を変更しました。
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=マスク上でのエラー
     ErrorBadMaskFailedToLocatePosOfSequence=シーケンス番号のないエラー、マスク
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=エラー、不正なリセット値
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=エラーが発生しました。少なくとも一つのエントリを選択します。
    -ErrorDeleteNotPossibleLineIsConsolidated=レコードがconciliatedされている銀行のトランザクションのにリンクされているのでできませ​​ん削除
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%sは別の第三者に割り当てられています
     ErrorFailedToSendPassword=パスワードの送信に失敗しました
     ErrorFailedToLoadRSSFile=RSSフィードの取得に失敗した。エラーメッセージが十分な情報を提供していない場合は定数MAIN_SIMPLEXMLLOAD_DEBUGを追加しようとする。
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=ログイン<b>%s</b>を持つユーザーを見つけ
     ErrorLoginHasNoEmail=このユーザーは電子メールアドレスを持っていません。プロセスが中止されました。
     ErrorBadValueForCode=セキュリティコードの値が正しくありません。新しい値で再試行してください...
     ErrorBothFieldCantBeNegative=フィールド%s %sとは負の両方にすることはできません
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Webサーバを実行するユーザーアカウントを使用<b>%s</b>そのための権限を持っていない
     ErrorNoActivatedBarcode=活性化バーコード·タイプません
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=この職種またはこのターゲットを使用
     WarningPassIsEmpty=警告は、データベースのパスワードは空です。これはセキュリティホールです。あなたのデータベースにパスワードを追加し、これを反映するようにconf.phpファイルを変更する必要があります。
     WarningConfFileMustBeReadOnly=警告は、設定ファイルは<b>(htdocsに/ confに/ conf.php)</b>のWebサーバーによって上書きすることができます。これは重大なセキュリティホールです。 Webサーバーで使用されるオペレーティング·システム·ユーザーのために読み取り専用モードになるようにファイルのパーミッションを変更します。あなたのディスクにWindowsとFATフォーマットを使用すると、このファイルシステムはファイルのパーミッションを追加することはできません知っている必要があり、ので、完全に安全ではないcan。
     WarningsOnXLines=<b>%s</b>ソース行に関する警告
    -WarningNoDocumentModelActivated=ドキュメント生成のためのモデルは、活性化されていません。あなたのモジュールのセットアップを確認するまでモデルは、デフォルトで選びましたされます。
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=すべてのセキュリティ警告は、(のみの管理者ユーザでは表示)の脆弱性が存在する(またはその定数MAIN_REMOVE_INSTALL_WARNINGがセットアップ] - &gt; [その他の設定に追加される)である限り、アクティブのままです。
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/ja_JP/help.lang b/htdocs/langs/ja_JP/help.lang
    index b6f23e109dc..211b5fe6a6f 100644
    --- a/htdocs/langs/ja_JP/help.lang
    +++ b/htdocs/langs/ja_JP/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=オンラインリアルタイム/リモートサポート
     OtherSupport=その他のサポート
     ToSeeListOfAvailableRessources=利用可能なリソースに連絡する/表示するには:
     HelpCenter=ヘルプセンター
    -DolibarrHelpCenter=Dolibarrヘルプとサポートセンター
    -ToGoBackToDolibarr=それ以外の場合は、クリック<a href="%s">Dolibarrを使用して、ここ</a>
    -TypeOfSupport=サポートのソース
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=コミュニティ(無料)
     TypeSupportCommercial=コマーシャル
     TypeOfHelp=タイプ
    @@ -15,12 +15,9 @@ NeedHelpCenter=ヘルプやサポートが必要ですか?
     Efficiency=効率性
     TypeHelpOnly=唯一の助け
     TypeHelpDev=+の開発を支援
    -TypeHelpDevForm=+開発+の形成を助ける
    -ToGetHelpGoOnSparkAngels1=一部の企業は、コンピュータの制御を取ることによって、高速(いつか即時)、より効率的なオンラインサポートを提供することができます。このようなヘルパーが<b>%sの</b>ウェブサイトで見つけることができます。
    -ToGetHelpGoOnSparkAngels3=また、ボタン上のこのクリックに対して、Dolibarr利用可能なすべてのコーチのリストに行くことができます
    -ToGetHelpGoOnSparkAngels2=時には、あなたの検索を行い、現​​時点で利用可能な会社はありませんので、 &quot;すべての可用性&quot;を検索するフィルタを変更すると思います。あなたはより多くの要求を送信することができます。
    -BackToHelpCenter=それ以外の場合は、移動するには、ここをクリックして<a href="%s">センターのホームページを助けるために戻って</a> 。
    -LinkToGoldMember=あなたは彼のウィジェット(ステータスおよび最大価格が自動的に更新されます)をクリックして言語(%s)にDolibarrによって事前に選択コーチのいずれかを呼び出すことができます。
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=サポートされる言語
    -SubscribeToFoundation=Dolibarrプロジェクトの支援、財団への加入
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=お使いの言語での公式Dolibarrサポート: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/ja_JP/holiday.lang b/htdocs/langs/ja_JP/holiday.lang
    index 05b19a78db4..3b8c0c05fa5 100644
    --- a/htdocs/langs/ja_JP/holiday.lang
    +++ b/htdocs/langs/ja_JP/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=開始日
     DateFinCP=終了日
    @@ -15,13 +15,18 @@ ApprovedCP=承認された
     CancelCP=キャンセル
     RefuseCP=拒否
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=説明
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=編集
     DeleteCP=削除する
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=理由
     UserCP=ユーザー
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/ja_JP/install.lang b/htdocs/langs/ja_JP/install.lang
    index a4858ce8f37..27493fe222e 100644
    --- a/htdocs/langs/ja_JP/install.lang
    +++ b/htdocs/langs/ja_JP/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=ちょうどステップごとの手順のステップに従ってください。
     MiscellaneousChecks=前提条件チェック
     ConfFileExists=コンフィギュレーションファイル<b>%sが</b>存在し<b>ています</b> 。
    -ConfFileDoesNotExistsAndCouldNotBeCreated=コンフィギュレーションファイル<b>%sが</b>存在しないと作成できませんでした!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=設定ファイルの<b>%sを</b>作成することができます。
    -ConfFileIsNotWritable=設定ファイルの<b>%sが</b>書き込み可能<b>では</b>ありません。権限を確認してください。最初のインストールについては、Webサーバーは、(OSのようなUnix上の例のために&quot;chmod 666&quot;)のコンフィギュレーションプロセス中にこのファイルに書き込むことができるように付与する必要があります。
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=コンフィギュレーションファイルの<b>%sは</b>書き込み可能です。
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=コンフィギュレーションファイルからすべての情報をリロードします。
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=このPHPは、セッションをサポートしています。
     PHPSupportPOSTGETOk=このPHPは、変数はPOSTとGETをサポートしています。
    -PHPSupportPOSTGETKo=それはあなたのPHPの設定は変数のPOSTおよび/をサポートしたり、取得していない可能性があります。 php.iniのパラメータ<b>に、variables_orderを</b>確認<b>して</b>ください。
    -PHPSupportGD=このPHPのサポートGDグラフィック機能。
    -PHPSupportCurl=このPHPはCurlをサポートしています。
    -PHPSupportUTF8=このPHPは、UTF8の機能をサポートしています。
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=あなたのPHPの最大のセッションメモリは<b>%s</b>に設定されています。これは十分なはずです。
    -PHPMemoryTooLow=あなたのPHPの最大セッション·メモリーが<b>%s</b>バイトに設定されています。これはあまりにも低くする必要があります。少なくとも<b>%s</b>バイト<b>にmemory_limit</b>パラメータを設定するには、php.ini <b>を</b>変更してください。
    -Recheck=もっと意味のあるテストはここをクリック
    -ErrorPHPDoesNotSupportSessions=PHPのインストールでは、セッションをサポートしていません。この機能はDolibarrの作業を行う必要があります。 PHPの設定を確認してください。
    -ErrorPHPDoesNotSupportGD=PHPのインストールはグラフィカル関数GDをサポートしていません。ないグラフは利用できません。
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=お使いのPHPインストールはCurlをサポートしていません。
    -ErrorPHPDoesNotSupportUTF8=PHPのインストールは、UTF8の機能をサポートしていません。 Dolibarrが正しく動作することはできません。 Dolibarrをインストールする前にこの問題を解決する。
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=ディレクトリの%sが存在しません。
    -ErrorGoBackAndCorrectParameters=後方に移動して、不正なパラメータを修正してください。
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=あなたは、パラメータ  %s 間違った値を入力した可能性があります。
     ErrorFailedToCreateDatabase=データベース %s を作成できませんでした。
     ErrorFailedToConnectToDatabase=データベース %s への接続に失敗しました。
     ErrorDatabaseVersionTooLow=データベースのバージョン (%s) が古すぎます。 バージョン %s 以降が必要です。
     ErrorPHPVersionTooLow=あまりにも古いPHPバージョン。バージョン%sが必要です。
    -ErrorConnectedButDatabaseNotFound=しかしデータベース %s 成功したサーバーへの接続を見つけていない。
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=データベース %s は既に存在します。
    -IfDatabaseNotExistsGoBackAndUncheckCreate=データベースが存在しない場合は、戻ってオプション&quot;データベースを作成します&quot;をチェック。
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=データベースが既に存在する場合は、戻ってチェックを外してオプションの &quot;データベースの作成&quot;を参照してください。
    -WarningBrowserTooOld=ブラウザのバージョンが古すぎます。 ブラウザを、Firefox、Chrome、またはOperaの最新バージョンにアップグレードすることを強くお勧めします。
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHPのバージョン
     License=ライセンスを使用して
     ConfigurationFile=設定ファイル
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarrデータベース
     DatabaseType=データベースの種類
     DriverType=ドライバのタイプ
     Server=サーバーの
    -ServerAddressDescription=通常、データベースサーバー、データベースサーバーがWebサーバーよりも、同じサーバー上でホストされている 'localhost'のための名前またはIPアドレス
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=データベース·サーバーのポート。不明の場合は、空の保管してください。
     DatabaseServer=データベース·サーバー
     DatabaseName=データベース名
    -DatabasePrefix=データベースの接頭辞テーブル
    -AdminLogin=Dolibarrデータベース所有者のログイン。
    -PasswordAgain=もう一度パスワードを再入力
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Dolibarrデータベースの所有者のパスワード。
     CreateDatabase=データベースを作成します。
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=データベースサーバ - スーパーユーザーのアクセス
    -CheckToCreateDatabase=データベースが存在しない場合はチェックボックスをオンにして作成する必要があります。 <br>このケースでは、このページの下部にスーパーユーザアカウントのログイン/パスワードを入力する必要があります。
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=あなたのデータベースおよびデータベースのログインが既に存在する場合(あなたがウェブホスティングプロバイダによってホストされているときのように)役に立たない、新しいデータベースまたは新しいユーザを作成することを禁止するユーザのログイン。
    -KeepEmptyIfNoPassword=ユーザーがパスワードを持っていない場合(これを避けるため)を空のままに
    -SaveConfigurationFile=値を保存
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=サーバーへの接続
     DatabaseCreation=データベースの作成
     CreateDatabaseObjects=データベースオブジェクトの作成
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=テーブルの%sの外部キーとインデックスを
     OtherKeysCreation=外部キーとインデックスの作成
     FunctionsCreation=関数の作成
     AdminAccountCreation=管理者ログインの作成
    -PleaseTypePassword=パスワードを入力してください、空のパスワードが許可されていません!
    -PleaseTypeALogin=ログイン情報を入力してください!
    -PasswordsMismatch=パスワードは異なりますが、もう一度試してください!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=セットアップの終了
     SystemIsInstalled=このインストールは完了です。
     SystemIsUpgraded=Dolibarrが正常にアップグレードされています。
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=あなたのニーズに合わせてDolibarrを設定
     AdminLoginCreatedSuccessfuly=Dolibarr 管理者ログイン '<b>%s</b>' の作成が成功しました。
     GoToDolibarr=Dolibarrに行く
     GoToSetupArea=Dolibarr(セットアップの領域)に移動します
    -MigrationNotFinished=データベースのバージョンが完全に最新ではありませんので、再度アップグレードプロセスを実行する必要があります。
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=ページを再度アップグレードする行く
     WithNoSlashAtTheEnd=末尾のスラッシュ&quot;/&quot;なし
    -DirectoryRecommendation=それは、あなたのWeb​​ページのディレクトリの外にディレクトリを使用することを勧めます。
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=すでに存在しています
     DolibarrAdminLogin=Dolibarr adminログイン
    -AdminLoginAlreadyExists=Dolibarr管理者アカウント<b>&quot;%s</b> ' <b>は</b>既に存在します。あなたが別のパーティションを作成する場合は、戻ってください。
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Dolibarr管理者アカウントの作成に失敗しました。
    -WarningRemoveInstallDir=警告、セキュリティ上の理由から、一度インストールまたはアップグレードが完了すると、あなた<b>は</b>それ<b>の悪意のある使用を避けるために、インストールディレクトリを</b>削除<b>するか、Dolibarrのドキュメントディレクトリにinstall.lockと呼ばれるファイルを追加</b>する必要があります<b>。</b>
    -FunctionNotAvailableInThisPHP=このPHPは利用できません
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=移行スクリプトを選択します。
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=スクリプト処理
     ChooseYourSetupMode=セットアップモードを選択し、&quot;スタート&quot;をクリック...
     FreshInstall=新規インストール
    -FreshInstallDesc=これはあなたの最初のインストールの場合、このモードを使用してください。そうでない場合、このモードでは不完全な以前のインストールを修復することができますが、バージョンをアップグレードする場合、&quot;アップグレード&quot;モードを選択してください。
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=アップグレード
     UpgradeDesc=あなたが新しいバージョンのファイルが古いDolibarrファイルを交換した場合、このモードを使用します。これにより、データベースとデータをアップグレードします。
     Start=開始
     InstallNotAllowed=セットアップでは<b>、conf.php</b>の権限で許可されていない
     YouMustCreateWithPermission=あなたは、ファイル%sを作成し、インストールプロセス中にWebサーバのためにそれへの書き込み権限を設定する必要があります。
    -CorrectProblemAndReloadPage=問題を修正し、ページをリロードするには、F5キーを押してください。
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=既に移行
     DatabaseVersion=データベースのバージョン
     ServerVersion=データベースサーバのバージョン
     YouMustCreateItAndAllowServerToWrite=このディレクトリを作成し、そこに書き込むようにWebサーバを許可する必要があります。
     DBSortingCollation=文字のソート順
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=あなたは、データベースの<b>%sを</b>作成するために求めるが、このために、Dolibarrは、スーパーユーザーの<b>%sの</b>権限でサーバの<b>%s</b>に接続する必要があります。
    -YouAskLoginCreationSoDolibarrNeedToConnect=あなたは、データベースのログイン<b>%sを</b>作成するために求めるが、このために、Dolibarrは、スーパーユーザーの<b>%s</b>権限<b>を持つ</b>サーバ<b>%s</b>に接続する必要があります。
    -BecauseConnectionFailedParametersMayBeWrong=接続が失敗したように、ホストまたはスーパーユーザパラメータが間違っていなければなりません。
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=メソッド%sによって検出された孤児の支払い
     RemoveItManuallyAndPressF5ToContinue=手動で削除して続行するF5キーを押します。
     FieldRenamed=フィールドの名前変更
    -IfLoginDoesNotExistsCheckCreateUser=ログインがまだ存在しない場合は、オプション&quot;ユーザーの作成&quot;をチェックする必要があります
    -ErrorConnection=サーバ<b>&quot;%s&quot;、</b>データベース名<b>&quot;%s&quot;、</b>ログイン<b>&quot;%s&quot;、</b>またはデータベースのパスワードは、クライアントのバージョンがデータベースのバージョンに比べて古すぎる可能性があります間違っていたり、PHP可能性があります。
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=あなたの現在のバージョンの<b>%s</b>からバージョン<b>%sを</b>インストールすることをお勧め選択肢
     InstallChoiceSuggested=<b>インストーラによって提案された選択肢をインストールします</b> 。
    -MigrateIsDoneStepByStep=対象となるバージョン(%s)は、いくつかのバージョンのギャップがあるため、インストールウィザードは、この1つが終了されますしたら、次の移行を示唆して戻ってくるだろう。
    -CheckThatDatabasenameIsCorrect=そのデータベース名<b>&quot;%s&quot;が</b>正しいか確認してください。
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=この名前が正しいこと、およびそのデータベースがまだ存在しない場合は、オプションの&quot;データベースの作成&quot;をチェックする必要があります。
     OpenBaseDir=PHP openbasedirパラメータ
    -YouAskToCreateDatabaseSoRootRequired=あなたは &quot;データベースの作成&quot;ボックスをチェックしました。このためには、スーパーユーザー(フォームの下部)のログイン名/パスワードを提供する必要があります。
    -YouAskToCreateDatabaseUserSoRootRequired=あなたは &quot;データベース所有者の作成&quot;ボックスをチェックしました。このためには、スーパーユーザー(フォームの下部)のログイン名/パスワードを提供する必要があります。
    -NextStepMightLastALongTime=現在のステップには数分かかる場合があります。次の画面が続行する前に完全に表示されるまでしばらくお待ちください。
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=顧客の注文のストレージの出荷を移行
     MigrationShippingDelivery=輸送の容量をアップグレード
     MigrationShippingDelivery2=海運2の容量をアップグレード
     MigrationFinished=マイグレーションが終了しました
    -LastStepDesc=<strong>最後のステップ</strong> :ここにあなたがソフトウェアへの接続に使用する予定のログインとパスワードを定義します。それは他のすべてを管理するアカウントであるとしてこれを紛失しないでください。
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=モジュール%sをアクティブにする
     ShowEditTechnicalParameters=高度なパラメータを表示/編集するには、ここをクリックしてください (エキスパートモード)
    -WarningUpgrade=警告:\n最初にデータベースのバックアップを実行しましたか?\nこれは強く推奨されます: 例えば、データベースシステムのバグ (例えば、mysql バージョン5.5.40/41/42/43) のために、このプロセス中にデータやテーブルが失われる可能性があります。 そのため移行を開始する前にデータベースを完全にダンプすることを強くお勧めします。\n\nOK をクリックすると、移行プロセスを開始します...
    -ErrorDatabaseVersionForbiddenForMigration=データベースのバージョンは %s です。 移行プロセスで必要となるような、データベースの構造変更を行うと、データの損失を引き起こす重大なバグがあります。 その理由から、データベースをより新しい修正バージョンにアップグレードするまで、移行は許可されません (既知のバグのバージョンのリスト: %s)
    -KeepDefaultValuesWamp=あなたがDoliWampからDolibarrセットアップ·ウィザードを使用するので、ここで提案する値は、既に最適化されています。あなたは何をすべきか分かっている場合にのみ、それらを変更します。
    -KeepDefaultValuesDeb=あなたは、Linuxパッケージ(Ubuntuのは、Debian、Fedoraの...)からDolibarrセットアップ·ウィザードを使用するので、ここで提案値がすでに最適化されています。作成するデータベースの所有者のパスワードのみを完了する必要があります。あなたは何をすべきか分かっている場合にのみ、他のパラメータを変更します。
    -KeepDefaultValuesMamp=あなたがDoliMampからDolibarrのセットアップウィザードを使用して、ここで提案するので、値がすでに最適化されています。あなたは何をすべきか分かっている場合にのみ、それらを変更してください。
    -KeepDefaultValuesProxmox=あなたがProxmox仮想アプライアンスからDolibarrのセットアップウィザードを使用して、ここで提案するので、値がすでに最適化されています。あなたは何をすべきか分かっている場合にのみ、それらを変更してください。
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=商用の提案のためのデータ移行
     MigrationInvoice=顧客の請求書のデータ移行
     MigrationContract=契約のためのデータ移行
    -MigrationSuccessfullUpdate=アップグレードに成功しました
    +MigrationSuccessfullUpdate=成功したアップグレード
     MigrationUpdateFailed=失敗したアップグレード·プロセス
     MigrationRelationshipTables=関係テーブルのデータ移行(%s)
     MigrationPaymentsUpdate=支払データ補正
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=契約データの補正
     MigrationContractsNumberToUpdate=更新する%s契約(複数可)
     MigrationContractsLineCreation=契約のref %sの契約回線を作成します。
     MigrationContractsNothingToUpdate=行うにこれ以上のもの
    -MigrationContractsFieldDontExist=フィールドのfk_factureはもはや存在しません。は何の関係もない。
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=契約空の日付の訂正
    -MigrationContractsEmptyDatesUpdateSuccess=契約の空の日付修正を正常に完了しました
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=修正する契約空の日ない
     MigrationContractsEmptyCreationDatesNothingToUpdate=修正するためには契約の作成日付ません
     MigrationContractsInvalidDatesUpdate=不正な値の日付の契約補正
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=配信のアップデート
     MigrationStockDetail=製品の在庫の値を更新
     MigrationMenusDetail=動的メニューのテーブルを更新
     MigrationDeliveryAddress=出荷の配信アドレスを更新
    -MigrationProjectTaskActors=llx_projet_task_actorsテーブルのデータ移行
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=llx_projetのデータマイグレーション分野fk_user_resp llx_element_contactへ
     MigrationProjectTaskTime=更新時間は秒単位で過ごした
     MigrationActioncommElement=アクション上でデータを更新する
     MigrationPaymentMode=支払い·モードのデータ移行
     MigrationCategorieAssociation=カテゴリの移行
    -MigrationEvents=イベントを移行して、イベントの所有者を割当て表に追加します
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=llx_societe_remise のエンティティフィールド値を更新
     MigrationRemiseExceptEntity=llx_societe_remise_except のエンティティフィールド値を更新
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=モジュール %s を再読み込み
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=利用できないオプションを表示しない
    -HideNotAvailableOptions=利用できないオプションを非表示
    -ErrorFoundDuringMigration=移行プロセス中にエラーが報告されたので、次のステップは利用できません。 エラーを無視するには、<a href="%s">ここをクリック</a> してください。ただし、修正されるまでアプリケーションまたは一部の機能が正しく動作しない場合があります。
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/ja_JP/interventions.lang b/htdocs/langs/ja_JP/interventions.lang
    index 65e674d5fb4..d31a3c24ca3 100644
    --- a/htdocs/langs/ja_JP/interventions.lang
    +++ b/htdocs/langs/ja_JP/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=介入
     InterventionCard=介入のカード
     NewIntervention=新しい介入
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=介入のリスト
     ActionsOnFicheInter=介入のアクション
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/ja_JP/main.lang b/htdocs/langs/ja_JP/main.lang
    index b0d3491c446..a29ffd9df22 100644
    --- a/htdocs/langs/ja_JP/main.lang
    +++ b/htdocs/langs/ja_JP/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=(送信者= %s、受信機= %s)メールの送信に
     ErrorFileNotUploaded=ファイルがアップロードされていませんでした。最大許容超えないようにサイズを確認し、その空き領域がディスク上で使用可能であり、すでにこのディレクトリ内の同じ名前のファイルが存在しないことに注意してください。
     ErrorInternalErrorDetected=エラーが検出され
     ErrorWrongHostParameter=間違ったホストのパラメータ
    -ErrorYourCountryIsNotDefined=あなたの国が定義されていません。ホーム - セットアップ -  [編集]に移動し、再度フォームを投稿してください。
    -ErrorRecordIsUsedByChild=このレコードの削除に失敗しました。このレコードは、少なくとも一つの子レコードに使用されます。
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=間違った値
     ErrorWrongValueForParameterX=パラメータ%sのために間違った値
     ErrorNoRequestInError=エラーには要求しない
    -ErrorServiceUnavailableTryLater=一瞬のためにサービスを利用できません。後でもう一度やり直してください。
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=ユニークなフィールドの値が重複しています
    -ErrorSomeErrorWereFoundRollbackIsDone=いくつかのエラーが検出されました。我々は、ロールバックの変更。
    -ErrorConfigParameterNotDefined=パラメータ<b>%sは</b> Dolibarr configファイル<b>conf.php</b>内で定義されていません。
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Dolibarrデータベース内のユーザーの<b>%sを</b>見つけることができませんでした。
     ErrorNoVATRateDefinedForSellerCountry=エラー、国%s 'に対して定義されていないのVAT率。
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=エラーは、ファイルを保存に失敗しました。
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=日付を設定する
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=ファイルが正常にアップロードされました
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=ファイルが添付ファイルが選択されているが、まだアップロードされませんでした。このために &quot;添付ファイル&quot;をクリックしてください。
    -NbOfEntries=エントリのNb
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=助けを読む
     RecordSaved=レコードが保存された
    @@ -94,7 +94,7 @@ Undefined=未定義
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=上記参照
    -HomeArea=ホームエリア
    +HomeArea=ホーム
     LastConnexion=Latest connection
     PreviousConnexion=以前の接続
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=閉じた
     Closed2=閉じた
     NotClosed=Not closed
     Enabled=使用可能
    +Enable=Enable
     Deprecated=Deprecated
     Disable=無効にする
     Disabled=無効にする
    @@ -153,7 +154,7 @@ Update=更新
     Close=閉じる
     CloseBox=Remove widget from your dashboard
     Confirm=確認する
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=削除する
     Remove=削除する
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=コピー
     Paste=貼り付ける
     Default=デフォルト
     DefaultValue=デフォルト値
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=価格
     PriceCurrency=Price (currency)
     UnitPrice=単価
    @@ -347,7 +348,7 @@ AmountTTCShort=金額(税込)
     AmountHT=額(税引後)
     AmountTTC=金額(税込)
     AmountVAT=金額税
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=適用されない
     ActionRunningNotStarted=開始するには
     ActionRunningShort=In progress
     ActionDoneShort=完成した
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=このサードパーティの連絡先/ adresses
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=このサードパーティに関するイベント
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=このメンバーに関するイベント
     ActionsOnProduct=Events about this product
     NActionsLate=%s後半
    @@ -453,8 +455,8 @@ Generate=生成する
     Duration=持続
     TotalDuration=全持続時間
     Summary=要約
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=利用できる
     NotYetAvailable=まだ利用できません
    @@ -468,7 +470,7 @@ and=と
     or=または
     Other=その他
     Others=他人
    -OtherInformations=その他の情報
    +OtherInformations=Other information
     Quantity=量
     Qty=個数
     ChangedBy=によって変更され
    @@ -506,7 +508,7 @@ None=なし
     NoneF=なし
     NoneOrSeveral=None or several
     Late=遅い
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=画像
     Photos=写真
    @@ -530,18 +532,6 @@ September=9月
     October=10月
     November=11月
     December=12月
    -JanuaryMin=月
    -FebruaryMin=2月
    -MarchMin=マー
    -AprilMin=4月
    -MayMin=5月
    -JuneMin=6月
    -JulyMin=7月
    -AugustMin=8月
    -SeptemberMin=9月
    -OctoberMin=10月
    -NovemberMin=11月
    -DecemberMin=12月
     Month01=1月
     Month02=2月
     Month03=3月
    @@ -646,6 +636,8 @@ SendMail=メールを送る
     EMail=E-mail
     NoEMail=まだメールしない
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=所有者
     FollowingConstantsWillBeSubstituted=以下の定数は、対応する値を持つ代替となります。
    @@ -677,7 +669,7 @@ NeverReceived=受信しませんでした
     Canceled=キャンセル
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=カラー
     Documents=リンクされたファイル
     Documents2=ドキュメント
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=隠されたパスワードを使用してコマンドを表示する
     UnHidePassword=明確なパスワードを使用して実際のコマンドを表示する
     Root=ルート
    -Informations=情報
    +Informations=Information
     Page=ページ
     Notes=注釈
     AddNewLine=新しい行を追加します。
    @@ -716,15 +708,15 @@ Merge=マージ
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=メインのコンテンツ領域を印刷するページを表示
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=警告は、あなたがメンテナンスモードになっているので、唯一のログイン<b>%sは、</b>現時点ではアプリケーションの使用を許可されている。
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=システムエラー
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=クレジットカード
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=<b>%s</b>のフィールドは必須です
    -FieldsWithIsForPublic=<b>%s</b>のフィールドは、メンバーの公開リストに表示されます。あなたがこれをしたくない場合は、 &quot;public&quot;チェックボックスをオフを確認してください。
    -AccordingToGeoIPDatabase=(のGeoIP変換器のに従って)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=ライン
     NotSupported=サポートされていません
     RequiredField=必須フィールド
    @@ -732,6 +724,8 @@ Result=結果
     ToTest=テスト
     ValidateBefore=カードがこの機能を使用する前に検証する必要があります
     Visibility=可視性
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=プライベート
     Hidden=隠された
     Resources=資源
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=ドラフトを作成します。
     SetToDraft=Back to draft
     ClickToEdit=クリックして編集
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=日ごとに
     BySalesRepresentative=営業担当者によって
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=システムツール
     ModulesSystemTools=Modules tools
     Test=テスト
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=介入を示す
     ShowContract=契約を表示する
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=行を削除します
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=請求分類
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=カレンダー
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=ウェブサイト
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=イベント
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=プロジェクト
     Projects=プロジェクト
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=パーミッション
     LineNb=Line no.
     IncotermLabel=インコタームズ
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=月曜日
     Tuesday=火曜日
    @@ -927,15 +932,15 @@ SearchIntoInterventions=介入
     SearchIntoContracts=契約
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=コメント
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=皆
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=影響を受ける
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/ja_JP/other.lang b/htdocs/langs/ja_JP/other.lang
    index 28a28316adb..88f729df532 100644
    --- a/htdocs/langs/ja_JP/other.lang
    +++ b/htdocs/langs/ja_JP/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=セキュリティコード
     NumberingShort=N°
     Tools=ツール
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=誕生日
     BirthdayDate=Birthday date
     DateToBirth=誕生日
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=検証済みペイメントの戻りページでメッセージ
     MessageKO=キャンセル支払い戻りページでメッセージ
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=介入は、検証
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=検証済みの顧客の注文
     Notify_ORDER_SENTBYMAIL=Envío pedido POR電子メール
     Notify_ORDER_SUPPLIER_SENTBYMAIL=メールでの送信サプライヤー順
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=サプライヤーの順序は、承認さ
     Notify_ORDER_SUPPLIER_REFUSE=サプライヤーのオーダーが拒否されました
     Notify_PROPAL_VALIDATE=検証済みの顧客の提案
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=電子メールによって送信された商業提案
     Notify_WITHDRAW_TRANSMIT=伝送撤退
     Notify_WITHDRAW_CREDIT=クレジット撤退
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=第三者が作成した
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=顧客への請求書が検証さ
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=顧客への請求はpayed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=顧客への請求書が取り消さ
     Notify_BILL_SENTBYMAIL=メールで送信された顧客への請求書
     Notify_BILL_SUPPLIER_VALIDATE=サプライヤの請求書が検証さ
    -Notify_BILL_SUPPLIER_PAYED=サプライヤの請求書はpayed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=メールで送られたサプライヤーの請求書
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=検証済みの契約
     Notify_FICHEINTER_VALIDATE=介入検証
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=送料は、検証
     Notify_SHIPPING_SENTBYMAIL=電子メールによって送信された商品
     Notify_MEMBER_VALIDATE=メンバー検証
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=添付ファイル/文書の数
     TotalSizeOfAttachedFiles=添付ファイル/文書の合計サイズ
     MaxSize=最大サイズ
     AttachANewFile=新しいファイル/文書を添付する
     LinkedObject=リンクされたオブジェクト
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>教授イド%sは、</b>サードパーティの国に応じて情報です。 <br>たとえば、国<b>%s</b>のために、それはコード<b>%s</b>です。
     DolibarrDemo=Dolibarr ERP / CRMデモ
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=介入%sが検証されています。
     EMailTextInvoiceValidated=請求書%sが検証されています。
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=提案%sが検証されています。
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=注文%sが検証されています。
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=注文%sは%sによって承認されている。
     EMailTextOrderRefused=注文%sは拒否されました。
     EMailTextOrderRefusedBy=注文%sは%sによって拒否されました。
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=輸入データセット
     DolibarrNotification=自動通知
     ResizeDesc=新しい幅<b>または</b>新しい高さを入力します。比率は、サイズ変更時に保持されます...
    @@ -204,7 +214,7 @@ NewLength=新しい幅
     NewHeight=新しい高さ
     NewSizeAfterCropping=トリミング後の新しいサイズ
     DefineNewAreaToPick=(あなたが反対側の角に達するまで、イメージ上で左クリックをドラッグ)選択するには、画像を新たな領域を定義します。
    -CurrentInformationOnImage=このツールは、画像をサイズ変更またはトリミングするのに役立つように設計されています。これは、現在の編集された画像上での情報です。
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=イメージエディタ
     YouReceiveMailBecauseOfNotification=あなたのメールアドレスは%sの%sソフトウェアに特定のイベントを通知されるターゲットのリストに追加されているため、このメッセージが表示されます。
     YouReceiveMailBecauseOfNotification2=このイベントは次のとおりです。
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=輸出地域
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=タイトル
     WEBSITE_DESCRIPTION=説明
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/ja_JP/paybox.lang b/htdocs/langs/ja_JP/paybox.lang
    index d541192e8c0..3b26a96836e 100644
    --- a/htdocs/langs/ja_JP/paybox.lang
    +++ b/htdocs/langs/ja_JP/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBoxモジュールのセットアップ
     PayBoxDesc=このモジュールは、上の支払いを可能にするためにページを提供して<a href="http://www.paybox.com" target="_blank">切符売り場</a>の顧客によって。これはフリーの支払いのためにまたは特定のDolibarrオブジェクトの支払いに用いることができる(請求書、発注、...)
     FollowingUrlAreAvailableToMakePayments=以下のURLはDolibarrオブジェクト上で支払いをするために顧客にページを提供するために利用可能です
     PaymentForm=支払い形態
    -WelcomeOnPaymentPage=ようこそ私たちのオンライン決済サービスについて
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=この画面では、%sにオンライン決済を行うことができます。
     ThisIsInformationOnPayment=これは、実行する支払いに関する情報です。
     ToComplete=完了する
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=顧客の請求書の%sオンライン決
     ToOfferALinkForOnlinePaymentOnContractLine=契約回線の%sオンライン決済のユーザインタフェースを提供するためのURL
     ToOfferALinkForOnlinePaymentOnFreeAmount=空き容量のため夜中オンライン決済のユーザインタフェースを提供するためのURL
     ToOfferALinkForOnlinePaymentOnMemberSubscription=メンバーのサブスクリプションの%sオンライン決済のユーザインタフェースを提供するためのURL
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=また、独自の支払いコメントタグを追加するには、それらのURL(無料支払のためにのみ必要)のいずれかにurlパラメータ<b>·タグ= <i>値を</i></b>追加<i><b>する</b></i>こと<i><b>が</b></i>できます。
    -SetupPayBoxToHavePaymentCreatedAutomatically=切符売り場で検証したときに自動的に作成支払いを持っているのurl <b>%s</b>を使用して切符売り場をセットアップします。
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=このページでは、あなたの支払が記録されていることを確認します。ありがとうございます。
    -YourPaymentHasNotBeenRecorded=あなたの支払は記録されていないトランザクションがキャンセルされました。ありがとうございます。
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=アカウントのパラメータ
     UsageParameter=使用パラメータ
     InformationToFindParameters=あなたの%sアカウント情報を見つけるのを助ける
    diff --git a/htdocs/langs/ja_JP/projects.lang b/htdocs/langs/ja_JP/projects.lang
    index 309e9b25e6a..8622ca543ed 100644
    --- a/htdocs/langs/ja_JP/projects.lang
    +++ b/htdocs/langs/ja_JP/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=プロジェクトを表示する
     ShowTask=タスクを表示する
     SetProject=プロジェクトを設定します。
     NoProject=はプロジェクトが定義されていませんまたは所有している
    -NbOfProjects=プロジェクトのNb
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=に費や​​された時間は
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=プロジェクトに関連付けられている商用の提案のリスト
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=プロジェクトに関連付けられている契約のリスト
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=プロジェクトに関連付けられている介入のリスト
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=プロジェクトに関連付けられているイベントのリスト
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=他の第三者へのリンク
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=費やした時間は空です
     ThisWillAlsoRemoveTasks=このアクションは、プロジェクトのすべてのタスク(現時点では<b>%s</b>タスク)と過ごした時間のすべての入力を削除します。
    -IfNeedToUseOhterObjectKeepEmpty=いくつかのオブジェクト(請求書、注文、...)、別の第三者に属するが、作成するプロジェクトにリンクする必要がある場合は、複数のサードパーティ中のプロジェクトを持っているこの空を保持します。
    +IfNeedToUseOtherObjectKeepEmpty=いくつかのオブジェクト(請求書、注文、...)、別の第三者に属するが、作成するプロジェクトにリンクする必要がある場合は、複数のサードパーティ中のプロジェクトを持っているこの空を保持します。
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=貢献者
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=提案
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/ja_JP/propal.lang b/htdocs/langs/ja_JP/propal.lang
    index 8c5bf22023c..8f1fa54b614 100644
    --- a/htdocs/langs/ja_JP/propal.lang
    +++ b/htdocs/langs/ja_JP/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=(要請求)署名
     PropalStatusNotSigned=(クローズ)署名されていません
     PropalStatusBilled=請求
     PropalStatusDraftShort=ドラフト
    -PropalStatusValidatedShort=検証
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=閉じた
     PropalStatusSignedShort=署名された
     PropalStatusNotSignedShort=署名されていない
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propalの%sが見つかりません
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=既存のプロポーザルをコピーして、商用の提案を作成します。
    -CreateEmptyPropal=空の商業的提案のビエルヘを作成するか、または製品/サービスのリストから
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=デフォルトの商業提案の有効期間(日数)
    -UseCustomerContactAsPropalRecipientIfExist=提案受信者のアドレスとして、サードパーティのアドレスの代わりに定義されている場合、顧客の連絡先アドレスを使用する
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=商業的提案のクローンを作成する
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=顧客の連絡先フォローアップ提
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=完全な提案モデル(logo. ..)
    +DocModelCyanDescription=完全な提案モデル(logo. ..)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/ja_JP/website.lang b/htdocs/langs/ja_JP/website.lang
    index 356babdafff..3659f3b55ce 100644
    --- a/htdocs/langs/ja_JP/website.lang
    +++ b/htdocs/langs/ja_JP/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=コー​​ド
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=ウェブサイトを削除
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=ホームページに設定する
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=読む
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/ka_GE/admin.lang b/htdocs/langs/ka_GE/admin.lang
    index d7042e784dc..8d6e8e39b04 100644
    --- a/htdocs/langs/ka_GE/admin.lang
    +++ b/htdocs/langs/ka_GE/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Development
     VersionUnknown=Unknown
     VersionRecommanded=Recommended
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler to save sessions
     SessionSavePath=Storage session localization
     PurgeSessions=Purge of sessions
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Your session
    -Sessions=Users session
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=External user
     InternalUsers=Internal users
     ExternalUsers=External users
     GUISetup=Display
    -SetupArea=Setup area
    +SetupArea=Setup
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=Setup
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposals
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Invoices
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Suppliers
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=State/Province
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Name
     CompanyAddress=Address
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Name
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/ka_GE/banks.lang b/htdocs/langs/ka_GE/banks.lang
    index 1d42581c344..5bc061f31f3 100644
    --- a/htdocs/langs/ka_GE/banks.lang
    +++ b/htdocs/langs/ka_GE/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Account
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/ka_GE/bills.lang b/htdocs/langs/ka_GE/bills.lang
    index f76ff018f9d..ed988d580e2 100644
    --- a/htdocs/langs/ka_GE/bills.lang
    +++ b/htdocs/langs/ka_GE/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Suppliers payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=Payment amount
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Paid
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Closed
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Other
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/ka_GE/cashdesk.lang b/htdocs/langs/ka_GE/cashdesk.lang
    index 1f51f375e89..353c4ee93ab 100644
    --- a/htdocs/langs/ka_GE/cashdesk.lang
    +++ b/htdocs/langs/ka_GE/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/ka_GE/commercial.lang b/htdocs/langs/ka_GE/commercial.lang
    index efadc44d700..96b8abbb937 100644
    --- a/htdocs/langs/ka_GE/commercial.lang
    +++ b/htdocs/langs/ka_GE/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/ka_GE/companies.lang b/htdocs/langs/ka_GE/companies.lang
    index b3e1e7b6c86..e5de5614886 100644
    --- a/htdocs/langs/ka_GE/companies.lang
    +++ b/htdocs/langs/ka_GE/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Select a third party
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Delete a contact/address
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New third party
    -MenuNewCustomer=New customer
    -MenuNewProspect=New prospect
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=Company
     CompanyName=Company name
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Companies
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=Third parties
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
     ThirdPartyProspectsStats=Prospects
     ThirdPartyCustomers=Customers
     ThirdPartyCustomersStats=Customers
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Position
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposals
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Supplier
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Delete a company
     PersonalInformations=Personal data
     AccountancyCode=Accounting account
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Staff
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=List of prospects
    -ListCustomersShort=List of customers
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Open
     ActivityCeased=Closed
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/ka_GE/dict.lang b/htdocs/langs/ka_GE/dict.lang
    index 61a7237f472..ad3a24e12f6 100644
    --- a/htdocs/langs/ka_GE/dict.lang
    +++ b/htdocs/langs/ka_GE/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/ka_GE/ecm.lang b/htdocs/langs/ka_GE/ecm.lang
    index 5200fa30b1d..43ddd3bf36f 100644
    --- a/htdocs/langs/ka_GE/ecm.lang
    +++ b/htdocs/langs/ka_GE/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/ka_GE/errors.lang b/htdocs/langs/ka_GE/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/ka_GE/errors.lang
    +++ b/htdocs/langs/ka_GE/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/ka_GE/help.lang b/htdocs/langs/ka_GE/help.lang
    index 6129cae362d..da776683a6a 100644
    --- a/htdocs/langs/ka_GE/help.lang
    +++ b/htdocs/langs/ka_GE/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Commercial
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/ka_GE/holiday.lang b/htdocs/langs/ka_GE/holiday.lang
    index 1c19d69732a..951af61f273 100644
    --- a/htdocs/langs/ka_GE/holiday.lang
    +++ b/htdocs/langs/ka_GE/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Description
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=Delete
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/ka_GE/install.lang b/htdocs/langs/ka_GE/install.lang
    index fb521c0c085..c92d83988ff 100644
    --- a/htdocs/langs/ka_GE/install.lang
    +++ b/htdocs/langs/ka_GE/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/ka_GE/interventions.lang b/htdocs/langs/ka_GE/interventions.lang
    index 4c93eff9d0d..a130367b14f 100644
    --- a/htdocs/langs/ka_GE/interventions.lang
    +++ b/htdocs/langs/ka_GE/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/ka_GE/main.lang b/htdocs/langs/ka_GE/main.lang
    index 5d400fafa87..b3ea678aea0 100644
    --- a/htdocs/langs/ka_GE/main.lang
    +++ b/htdocs/langs/ka_GE/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Closed
     Closed2=Closed
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Update
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Other
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tools
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/ka_GE/other.lang b/htdocs/langs/ka_GE/other.lang
    index 8ef8cc30090..021bfe65985 100644
    --- a/htdocs/langs/ka_GE/other.lang
    +++ b/htdocs/langs/ka_GE/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Description
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/ka_GE/paybox.lang b/htdocs/langs/ka_GE/paybox.lang
    index 306aaeec047..0d35ac440fa 100644
    --- a/htdocs/langs/ka_GE/paybox.lang
    +++ b/htdocs/langs/ka_GE/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/ka_GE/projects.lang b/htdocs/langs/ka_GE/projects.lang
    index e04f28689a1..d895f477bd4 100644
    --- a/htdocs/langs/ka_GE/projects.lang
    +++ b/htdocs/langs/ka_GE/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/ka_GE/propal.lang b/htdocs/langs/ka_GE/propal.lang
    index 8cf3a68167a..c258381ea85 100644
    --- a/htdocs/langs/ka_GE/propal.lang
    +++ b/htdocs/langs/ka_GE/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Draft
    -PropalStatusValidatedShort=Validated
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Closed
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/ka_GE/website.lang b/htdocs/langs/ka_GE/website.lang
    index 0f0673e3716..6ae08738815 100644
    --- a/htdocs/langs/ka_GE/website.lang
    +++ b/htdocs/langs/ka_GE/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/km_KH/main.lang b/htdocs/langs/km_KH/main.lang
    index a953187190b..5495940c56a 100644
    --- a/htdocs/langs/km_KH/main.lang
    +++ b/htdocs/langs/km_KH/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Closed
     Closed2=Closed
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Update
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Other
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tools
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=ផ្ទៃតាប្លូរបស់ខ្ញុំ
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/kn_IN/admin.lang b/htdocs/langs/kn_IN/admin.lang
    index 8d5283db076..b11574a2c85 100644
    --- a/htdocs/langs/kn_IN/admin.lang
    +++ b/htdocs/langs/kn_IN/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Development
     VersionUnknown=ತಿಳಿದಿಲ್ಲ
     VersionRecommanded=Recommended
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler to save sessions
     SessionSavePath=Storage session localization
     PurgeSessions=Purge of sessions
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Your session
    -Sessions=Users session
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=External user
     InternalUsers=Internal users
     ExternalUsers=External users
     GUISetup=Display
    -SetupArea=Setup area
    +SetupArea=Setup
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=Setup
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=ಮೂರನೇ ಪಕ್ಷಗಳು
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposals
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Invoices
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=ಪೂರೈಕೆದಾರರು
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=ಸ್ಕೈಪ್
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=ರಾಜ್ಯ / ಪ್ರಾಂತ್ಯ
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=ಹೆಸರು
     CompanyAddress=ವಿಳಾಸ
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=ಹೆಸರು
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/kn_IN/banks.lang b/htdocs/langs/kn_IN/banks.lang
    index 6828726371c..dc383eba5cb 100644
    --- a/htdocs/langs/kn_IN/banks.lang
    +++ b/htdocs/langs/kn_IN/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Account
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/kn_IN/bills.lang b/htdocs/langs/kn_IN/bills.lang
    index d61f6d687ca..c354f967dfd 100644
    --- a/htdocs/langs/kn_IN/bills.lang
    +++ b/htdocs/langs/kn_IN/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Suppliers payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=Payment amount
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Paid
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=ಮುಚ್ಚಲಾಗಿದೆ
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=ಇತರ
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=ಪರಿಶೀಲಿಸಿ
     PaymentTypeShortCHQ=ಪರಿಶೀಲಿಸಿ
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=ಬ್ಯಾಂಕ್ ವಿವರಗಳು
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/kn_IN/cashdesk.lang b/htdocs/langs/kn_IN/cashdesk.lang
    index 457b57bd1aa..8c8660164c8 100644
    --- a/htdocs/langs/kn_IN/cashdesk.lang
    +++ b/htdocs/langs/kn_IN/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=ಸಂಸ್ಥೆಯನ್ನು ತೋರಿಸಿ
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/kn_IN/commercial.lang b/htdocs/langs/kn_IN/commercial.lang
    index f60ece73caa..1bfdaacab8c 100644
    --- a/htdocs/langs/kn_IN/commercial.lang
    +++ b/htdocs/langs/kn_IN/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=ನಿರೀಕ್ಷಿತರ ಸ್ಥಿತಿ
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/kn_IN/companies.lang b/htdocs/langs/kn_IN/companies.lang
    index 1f9681254aa..3ab73f45a1a 100644
    --- a/htdocs/langs/kn_IN/companies.lang
    +++ b/htdocs/langs/kn_IN/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=ಮೂರನೇ ವ್ಯಕ್ತಿಯನ್ನು ಆಯ
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=ಸಂಪರ್ಕ / ವಿಳಾಸವೊಂದನ್ನು ಅಳಿಸಿ.
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=ಹೊಸ ತೃತೀಯ ಪಕ್ಷ
    -MenuNewCustomer=ಹೊಸ ಗ್ರಾಹಕ
    -MenuNewProspect=ಹೊಸ ನಿರೀಕ್ಷಿತರು
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=ಹೊಸ ಖಾಸಗಿ ವ್ಯಕ್ತಿ
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=ತೃತೀಯ ಸಂಪರ್ಕ / ವಿಳಾಸ
     Company=ಸಂಸ್ಥೆ
     CompanyName=ಸಂಸ್ಥೆಯ ಹೆಸರು
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=ಕಂಪನಿಗಳು
    -CountryIsInEEC=ದೇಶವು ಯುರೋಪಿಯನ್ ಎಕನಾಮಿಕ್ ಕಮ್ಯುನಿಟಿಯಲ್ಲಿದೆ
    -ThirdPartyName=ಮೂರನೇ ಪಾರ್ಟಿ ಹೆಸರು
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=ಮೂರನೇ ಪಾರ್ಟಿ
    -ThirdParties=ಮೂರನೇ ಪಕ್ಷಗಳು
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=ನಿರೀಕ್ಷಿತರು
     ThirdPartyProspectsStats=ನಿರೀಕ್ಷಿತರು
     ThirdPartyCustomers=ಗ್ರಾಹಕರು
     ThirdPartyCustomersStats=ಗ್ರಾಹಕರು
     ThirdPartyCustomersWithIdProf12=%s ಅಥವಾ %s ಇರುವ ಗ್ರಾಹಕರು
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=ತೃತೀಯ ಮಾದರಿ
    +ThirdPartyType=Type of company
     Individual=ಖಾಸಗಿ ವ್ಯಕ್ತಿ
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=ಪೋಷಕ ಸಂಸ್ಥೆ
     Subsidiaries=ಅಂಗಸಂಸ್ಥೆಗಳು
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=ಪಿನ್ ಕೋಡ್
     Town=ನಗರ
     Web=ವೆಬ್
     Poste= ಸ್ಥಾನ
    -DefaultLang=ಪೂರ್ವನಿಯೋಜಿತವಾದ ಭಾಷೆ
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposals
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=ಸಿಂಟ್ಯಾಕ್ಸ್ ಸರಿಯಿದ್ದಂತಿದೆ
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=ಈ ಗ್ರಾಹಕರಿಗೆ <b>%s%%</b> ರಿ
     CompanyHasNoRelativeDiscount=ಈ ಗ್ರಾಹಕರಿಗೆ ಯಾವುದೇ ಸಾಪೇಕ್ಷ ರಿಯಾಯಿತಿ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿಲ್ಲ
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=ಈ ಗ್ರಾಹಕ ಇನ್ನೂ <b>%s</b>%sರಷ್ಟಕ್ಕೆ ಸಾಲದ ಟಿಪ್ಪಣಿಯನ್ನು ಹೊಂದಿದ್ದಾರೆ.
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=ಯಾವುದೂ ಇಲ್ಲ
    -Supplier=ಪೂರೈಕೆದಾರ
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=ಸಂಪರ್ಕವನ್ನು ತಿದ್ದಿ
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=ಸಂಸ್ಥೆಯೊಂದನ್ನು ತೆಗೆದುಹಾಕಿ
     PersonalInformations=ವೈಯಕ್ತಿಕ ದತ್ತಾಂಶ
     AccountancyCode=Accounting account
    -CustomerCode=ಗ್ರಾಹಕ ಕೋಡ್
    -SupplierCode=Vendor code
    -CustomerCodeShort=ಗ್ರಾಹಕ ಕೋಡ್
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=ಗ್ರಾಹಕ ಕೋಡ್, ಎಲ್ಲಾ ಗ್ರಾಹಕರಿಗೂ ಅನನ್ಯ
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=ತೃತೀಯ ಪಾರ್ಟಿಯು ಗ್ರಾಹಕ ಅಥವಾ ನಿರೀಕ್ಷಿತರಾಗಿದ್ದ ವೇಳೆ ಅಗತ್ಯ
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=ವಾಯಿದೆ ನಿಯಂತ್ರಿತ ಘಟಕ
    -ThisIsModuleRules=ಈ ಘಟಕಕ್ಕೆ ಅನ್ವಯವಾಗುವ ನೇಮಗಳು
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact='ನಿರೀಕ್ಷಿತ'ದಿಂದ 'ಸಂಪರ್ಕ'ಕ್ಕೆ
     CompanyDeleted="%s" ಸಂಸ್ಥೆಯನ್ನು ಡೇಟಾಬೇಸ್-ನಿಂದ ತೆಗೆಯಲಾಗಿದೆ.
     ListOfContacts=ಸಂಪರ್ಕಗಳ / ವಿಳಾಸಗಳ ಪಟ್ಟಿ
     ListOfContactsAddresses=ಸಂಪರ್ಕಗಳ / ವಿಳಾಸಗಳ ಪಟ್ಟಿ
    -ListOfThirdParties=ಮೂರನೇ ಪಕ್ಷಗಳ ಪಟ್ಟಿ
    -ShowCompany=Show third party
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=ಸಂಪರ್ಕವನ್ನು ತೋರಿಸಿ
     ContactsAllShort=ಎಲ್ಲಾ (ಸೋಸಿಲ್ಲದ)
     ContactType=ಸಂಪರ್ಕದ ಮಾದರಿ
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=ಈ ಸಂಪರ್ಕ ಯಾವುದೇ ವಾಣ
     NoContactForAnyContract=ಈ ಸಂಪರ್ಕ ಯಾವುದೇ ಗುತ್ತಿಗೆಯಗಾಗಿ ಅಲ್ಲ.
     NoContactForAnyInvoice=ಈ ಸಂಪರ್ಕ ಯಾವುದೇ ಸರಕುಪಟ್ಟಿಗಾಗಿ ಅಲ್ಲ.
     NewContact=ಹೊಸ ಸಂಪರ್ಕ
    -NewContactAddress=ಹೊಸ ಸಂಪರ್ಕ / ವಿಳಾಸ
    +NewContactAddress=New Contact/Address
     MyContacts=ನನ್ನ ಸಂಪರ್ಕಗಳು
     Capital=ರಾಜಧಾನಿ
     CapitalOf=%s ಕ್ಯಾಪಿಟಲ್
     EditCompany=ಸಂಸ್ಥೆಯನ್ನು ತಿದ್ದಿ
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=ಪರಿಶೀಲಿಸಿ
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=ನಿರೆಕ್ಷಿತರೂ ಅಲ್ಲ, ಗ್ರಾಹಕರೂ ಅಲ್ಲ.
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=ನೌಕರರು
     ProspectLevelShort=ಸಂಭವನೀಯ
     ProspectLevel=ಸಂಭಾವ್ಯ ನಿರೀಕ್ಷಿತರು
    @@ -387,12 +387,12 @@ ExportCardToFormat=ಕಾರ್ಡನ್ನು ಸ್ವರೂಪಕ್ಕೆ 
     ContactNotLinkedToCompany=ಸಂಪರ್ಕವು ಯಾವುದೇ ಮೂರನೇ ಪಾರ್ಟಿಗೆ ಕೂಡಿಸಲ್ಪಟ್ಟಿಲ್ಲ.
     DolibarrLogin=ಲಾಗಿನ್ ಆಗಿ
     NoDolibarrAccess=ಪ್ರವೇಶವಿಲ್ಲ
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=ಸಂಪರ್ಕಗಳು ಮತ್ತು ವಿವರಗಳು
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=ಬೆಲೆ ಮಟ್ಟ
     DeliveryAddress=ತಲುಪಿಸುವ ವಿಳಾಸ
     AddAddress=ವಿಳಾಸ ಸೇರಿಸಿ
    @@ -402,16 +402,16 @@ DeleteFile=ಫೈಲ್ ತೆಗೆಯಿರಿ
     ConfirmDeleteFile=ನೀವು ಈ ಫೈಲ್ಅನ್ನು ಖಂಡಿತವಾಗಿಯೂ ಶಾಶ್ವವವಾಗಿ ತೆಗೆದುಹಾಕಲು ಬಯಸುತ್ತೀರಾ?
     AllocateCommercial=Assigned to sales representative
     Organization=ಸಂಘಟನೆ
    -FiscalYearInformation=ಹಣಕಾಸಿನ ವರ್ಷದ ಮಾಹಿತಿ
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=ಆರ್ಥಿಕ ವರ್ಷಾರಂಭದ ತಿಂಗಳು
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=ನಿರೀಕ್ಷಿತರ ಪಟ್ಟಿ
    -ListCustomersShort=ಗ್ರಾಹಕರ ಪಟ್ಟಿ
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=ಒಟ್ಟು ಅನನ್ಯ ಮೂರನೇ ಪಾರ್ಟಿಗಳು
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=ತೆರೆಯಲಾಗಿದೆ
     ActivityCeased=ಮುಚ್ಚಲಾಗಿದೆ
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=ಪ್ರಸ್ತುತ ಬಾಕಿ ಉಳಿದಿರ
     OutstandingBill=ಗರಿಷ್ಟ ಬಾಕಿ ಉಳಿದಿರುವ ಬಿಲ್ ಮೊತ್ತ
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=ಕೋಡ್ ಉಚಿತ. ಈ ಕೋಡ್ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಮಾರ್ಪಡಿಸಬಹುದಾಗಿದೆ.
     ManagingDirectors=ಮ್ಯಾನೇಜರ್ (ಗಳು) ಹೆಸರು (ಸಿಇಒ, ನಿರ್ದೇಶಕ, ಅಧ್ಯಕ್ಷ ...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/kn_IN/dict.lang b/htdocs/langs/kn_IN/dict.lang
    index 61a7237f472..ad3a24e12f6 100644
    --- a/htdocs/langs/kn_IN/dict.lang
    +++ b/htdocs/langs/kn_IN/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/kn_IN/ecm.lang b/htdocs/langs/kn_IN/ecm.lang
    index 5200fa30b1d..43ddd3bf36f 100644
    --- a/htdocs/langs/kn_IN/ecm.lang
    +++ b/htdocs/langs/kn_IN/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/kn_IN/errors.lang b/htdocs/langs/kn_IN/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/kn_IN/errors.lang
    +++ b/htdocs/langs/kn_IN/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/kn_IN/help.lang b/htdocs/langs/kn_IN/help.lang
    index 6129cae362d..da776683a6a 100644
    --- a/htdocs/langs/kn_IN/help.lang
    +++ b/htdocs/langs/kn_IN/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Commercial
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/kn_IN/holiday.lang b/htdocs/langs/kn_IN/holiday.lang
    index 1c19d69732a..951af61f273 100644
    --- a/htdocs/langs/kn_IN/holiday.lang
    +++ b/htdocs/langs/kn_IN/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Description
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=Delete
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/kn_IN/install.lang b/htdocs/langs/kn_IN/install.lang
    index fb521c0c085..c92d83988ff 100644
    --- a/htdocs/langs/kn_IN/install.lang
    +++ b/htdocs/langs/kn_IN/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/kn_IN/interventions.lang b/htdocs/langs/kn_IN/interventions.lang
    index 4c93eff9d0d..a130367b14f 100644
    --- a/htdocs/langs/kn_IN/interventions.lang
    +++ b/htdocs/langs/kn_IN/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/kn_IN/main.lang b/htdocs/langs/kn_IN/main.lang
    index 645a6cc0c80..e068511b630 100644
    --- a/htdocs/langs/kn_IN/main.lang
    +++ b/htdocs/langs/kn_IN/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=ಮುಚ್ಚಲಾಗಿದೆ
     Closed2=ಮುಚ್ಚಲಾಗಿದೆ
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Update
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=ಇತರ
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=ಯಾವುದೂ ಇಲ್ಲ
     NoneF=ಯಾವುದೂ ಇಲ್ಲ
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=ಕಾಣುವಂತಿರುವಿಕೆ
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=ಖಾಸಗಿ
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tools
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/kn_IN/other.lang b/htdocs/langs/kn_IN/other.lang
    index aef1b316de5..593eee74131 100644
    --- a/htdocs/langs/kn_IN/other.lang
    +++ b/htdocs/langs/kn_IN/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=ಶೀರ್ಷಿಕೆ
     WEBSITE_DESCRIPTION=Description
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/kn_IN/paybox.lang b/htdocs/langs/kn_IN/paybox.lang
    index 306aaeec047..0d35ac440fa 100644
    --- a/htdocs/langs/kn_IN/paybox.lang
    +++ b/htdocs/langs/kn_IN/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/kn_IN/projects.lang b/htdocs/langs/kn_IN/projects.lang
    index e04f28689a1..d895f477bd4 100644
    --- a/htdocs/langs/kn_IN/projects.lang
    +++ b/htdocs/langs/kn_IN/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/kn_IN/propal.lang b/htdocs/langs/kn_IN/propal.lang
    index 03afb69a923..8d51cf1d00a 100644
    --- a/htdocs/langs/kn_IN/propal.lang
    +++ b/htdocs/langs/kn_IN/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Draft
    -PropalStatusValidatedShort=Validated
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=ಮುಚ್ಚಲಾಗಿದೆ
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/kn_IN/website.lang b/htdocs/langs/kn_IN/website.lang
    index 0f0673e3716..6ae08738815 100644
    --- a/htdocs/langs/kn_IN/website.lang
    +++ b/htdocs/langs/kn_IN/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/ko_KR/admin.lang b/htdocs/langs/ko_KR/admin.lang
    index e384bc964de..0e432a8eecf 100644
    --- a/htdocs/langs/ko_KR/admin.lang
    +++ b/htdocs/langs/ko_KR/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=개발
     VersionUnknown=알 수 없음
     VersionRecommanded=권장
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=세션저장구동기
     SessionSavePath=저장세션로컬라이제이션
     PurgeSessions=세션제거
     ConfirmPurgeSessions=모든 세션을 제거하겠습니까? (당신을 제외한) 모든 다른 사용자의 연결이 중단됩니다. 
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Your session
    -Sessions=Users session
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=외부사용자
     InternalUsers=내부사용자\n
     ExternalUsers=외부사용자
     GUISetup=화면
    -SetupArea=설정지역
    +SetupArea=설정
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=파일업로드테스트용 양식
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=공간
     Table=테이블
     Fields=필드
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=설정
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=신규
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=링크
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=암호
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=제 3 자
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=상업용
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=제안
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=인보이스
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=공급 업체
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=회원
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
     Module770Name=경비 보고서
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=분류/범주
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=자원
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=시 /도
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=율
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=이름
     CompanyAddress=주소
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=알리미
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=이름
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/ko_KR/banks.lang b/htdocs/langs/ko_KR/banks.lang
    index 6b240d14f8b..7968c2efef8 100644
    --- a/htdocs/langs/ko_KR/banks.lang
    +++ b/htdocs/langs/ko_KR/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Account
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=부터
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/ko_KR/bills.lang b/htdocs/langs/ko_KR/bills.lang
    index 62e16f3d837..0c36c11ace3 100644
    --- a/htdocs/langs/ko_KR/bills.lang
    +++ b/htdocs/langs/ko_KR/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Suppliers payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=결제 금액
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=초안
     BillShortStatusPaid=유료
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=유료
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=확인 됨
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=닫은
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=유효성을 검사하기
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=부터
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=다른
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=검사
     PaymentTypeShortCHQ=검사
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=초안
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=은행 계좌 정보
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=대다
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/ko_KR/cashdesk.lang b/htdocs/langs/ko_KR/cashdesk.lang
    index 2a4bfdf4155..756805ae230 100644
    --- a/htdocs/langs/ko_KR/cashdesk.lang
    +++ b/htdocs/langs/ko_KR/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/ko_KR/commercial.lang b/htdocs/langs/ko_KR/commercial.lang
    index f7bb7c5b202..8440cb2f5bb 100644
    --- a/htdocs/langs/ko_KR/commercial.lang
    +++ b/htdocs/langs/ko_KR/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=전화 호출
     ActionAC_FAX=팩스 전송
     ActionAC_PROP=메일로 제안서 보내기
     ActionAC_EMAIL=이메일 전송
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=회의
     ActionAC_INT=현장 개입
     ActionAC_FAC=메일로 고객 송장 보내기
    @@ -72,8 +73,8 @@ StatusProsp=잠재 고객 상태
     DraftPropals=상업적 제안 초안
     NoLimit=제한 없음
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/ko_KR/companies.lang b/htdocs/langs/ko_KR/companies.lang
    index 7cfa1fda455..4c814a49ea5 100644
    --- a/htdocs/langs/ko_KR/companies.lang
    +++ b/htdocs/langs/ko_KR/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=협력업체 선택
     ConfirmDeleteCompany=이 회사와 관련된 모든 정보를 삭제 하시겠습니까?
     DeleteContact=연락처 / 주소 삭제
     ConfirmDeleteContact=이 연락처와 관련된 모든 정보를 삭제 하시겠습니까?
    -MenuNewThirdParty=신규 협력업체
    -MenuNewCustomer=신규 고객
    -MenuNewProspect=신규 잠재고객
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=신규 개인
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=협력업체 생성
     CreateThirdPartyAndContact=협력업체 + 신생 연락처 만들기
    @@ -25,22 +25,22 @@ ThirdPartyContact=협력업체 연락처 / 주소
     Company=회사
     CompanyName=회사 이름
     AliasNames=별칭 (상업용, 상표권 ...)
    -AliasNameShort=별칭 이름
    +AliasNameShort=Alias Name
     Companies=회사
    -CountryIsInEEC=유럽 경제 공동체 내부에 있는 국가
    -ThirdPartyName=협력업체 이름
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=협력업체
    -ThirdParties=협력업체
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=잠재고객
     ThirdPartyProspectsStats=잠재고객
     ThirdPartyCustomers=고객
     ThirdPartyCustomersStats=고객
     ThirdPartyCustomersWithIdProf12=%s 또는 %s이 있는 고객
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=협력업체 유형
    +ThirdPartyType=Type of company
     Individual=개인
    -ToCreateContactWithSameName=협력업체와 동일한 정보로 연락처 / 주소를 자동으로 생성합니다. 대부분의 경우, 협력업체가 물리적인 사람 일지라도 협력업체를 독립적으로 생성 가능합니다.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=모회사
     Subsidiaries=자회사
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=우편 번호
     Town=시
     Web=웹
     Poste= 직위
    -DefaultLang=기본 언어
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=주소를 협력업체 주소로 입력하십시오.
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=지불 은행 계좌
     OverAllProposals=제안
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=유효한 구문입니다.
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=이 고객은 기본 할인인이 <b>%s%%</b> 입니
     CompanyHasNoRelativeDiscount=이 고객은 기본적으로 상대적 할인이 없습니다.
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=이 고객은 <b>%s</b> %s 의 할인 가능한(크레딧 노트 또는 계약금)이 있습니다.
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=이 고객은  <b>%s</b> %s 의 상대적 할인이 있습니다.
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=없음
    -Supplier=공급자
    +Supplier=Vendor
     AddContact=연락처 생성
     AddContactAddress=연락처 / 주소 생성
     EditContact=연락처 편집
    @@ -303,22 +303,22 @@ AddThirdParty=협력업체 생성
     DeleteACompany=회사 삭제
     PersonalInformations=개인 정보
     AccountancyCode=회계 계정
    -CustomerCode=고객 코드
    -SupplierCode=Vendor code
    -CustomerCodeShort=고객 코드
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=모든 고객 내 고유의 고객 코드
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=협력업체가 고객 또는 잠재 고객 인 경우 필요
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=모듈별로 유효성 제어
    -ThisIsModuleRules=이 모듈에 대한 규칙입니다.
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=잠재거래처 연락처
     CompanyDeleted=회사 "%s"이 (가) 데이터베이스에서 삭제되었습니다.
     ListOfContacts=연락처 / 주소 목록
    -ListOfContactsAddresses=연락처 / 주소 목록
    -ListOfThirdParties=협력업체 목록
    -ShowCompany=협력업체 표시
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=연락처 표시
     ContactsAllShort=모두 (필터 없음)
     ContactType=연락처 유형
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=이 연락처는 상업적 제안에 대한 연락처가
     NoContactForAnyContract=이 연락처는 어떤 계약의 연락처도 아닙니다.
     NoContactForAnyInvoice=이 연락처는 송장의 연락처가 아닙니다.
     NewContact=신규 연락처
    -NewContactAddress=신규 연락처 / 주소
    +NewContactAddress=New Contact/Address
     MyContacts=내 연락처
     Capital=자본
     CapitalOf=자본금 %s
     EditCompany=회사 편집
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=검사
    -VATIntraCheckDesc=링크 <b>%s</b> 는 유럽 VAT 검사 서비스에 문의할 수 있습니다. 이 서비스가 작동하려면 서버에서 외부 인터넷에 접속해야 합니다.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=유럽 ​​의회 사이트에서 사내 부가 가치세를 확인하십시오
    -VATIntraManualCheck=유럽 ​​웹 사이트 <a href="%s" target="_blank"> %s </a>에서 수동으로 확인할 수도 있습니다.
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=확인할 수 없습니다. 수표 서비스는 회원 국가에서 제공하지 않습니다 (%s).
    -NorProspectNorCustomer=잠재 고객이나 고객이 아닙니다.
    -JuridicalStatus=법적인 형식
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=직원
     ProspectLevelShort=가능성
     ProspectLevel=미래 잠재고객
    @@ -387,12 +387,12 @@ ExportCardToFormat=포맷으로 카드 내보내기
     ContactNotLinkedToCompany=협력업체와 연결되지 않은 연락처
     DolibarrLogin=Dolibarr 로그인
     NoDolibarrAccess=Dolibarr 접속 불가
    -ExportDataset_company_1=협력업체 (회사 / 재단 / 물리적 사람) 및 부동산
    -ExportDataset_company_2=연락처 및 속성
    -ImportDataset_company_1=협력업체 (회사 / 재단 / 물리적 사람) 및 부동산
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=가격 수준
     DeliveryAddress=배달 주소
     AddAddress=주소 추가
    @@ -402,16 +402,16 @@ DeleteFile=파일 삭제
     ConfirmDeleteFile=이 파일을 정말로 삭제 하시겠습니까?
     AllocateCommercial=영업 담당자에게 할당 됨
     Organization=조직
    -FiscalYearInformation=회계 연도에 대한 정보
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=회계 연도의 시작 달
    -YouMustAssignUserMailFirst=이 사용자에 대한 전자 메일을 먼저 만들어야 전자 메일 알림을 추가 할 수 있습니다.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=전자 메일 알림을 추가하려면 먼저 협력업체에 유효한 전자 메일이있는 연락처를 정의해야합니다
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=잠재 고객 목록
    -ListCustomersShort=고객 명단
    -ThirdPartiesArea=협력업체 및 연락처
    -LastModifiedThirdParties=최근 %s 수정 된 협력업체
    -UniqueThirdParties=각 협력업체 합계
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=열기
     ActivityCeased=닫음
     ThirdPartyIsClosed=협력업체 폐쇄 됨
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=현재 미결제 금액
     OutstandingBill=미결 한도
     OutstandingBillReached=미결 한도 금액 도달
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=코드는 무료입니다. 이 코드는 언제든지 수정할 수 있습니다.
     ManagingDirectors=관리자 이름 (CEO, 이사, 사장 ...)
     MergeOriginThirdparty=중복 된 협력업체 (삭제하려는 협력업체)
     MergeThirdparties=협력업체 병합
    -ConfirmMergeThirdparties=이 협력업체를 현재의 협력업체의 하나로 병합 하시겠습니까? 모든 링크 된 오브젝트 (송장, 주문 ...)는 현재 협력업체로 이동 한 후 협력업체가 삭제됩니다.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=영업 담당자 로그인
     SaleRepresentativeFirstname=영업 담당자의 이름
     SaleRepresentativeLastname=영업 대표자 성
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/ko_KR/dict.lang b/htdocs/langs/ko_KR/dict.lang
    index 3b695e58dbe..017b87e859a 100644
    --- a/htdocs/langs/ko_KR/dict.lang
    +++ b/htdocs/langs/ko_KR/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=라오스
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/ko_KR/ecm.lang b/htdocs/langs/ko_KR/ecm.lang
    index c99b6129c2b..e08408c17f9 100644
    --- a/htdocs/langs/ko_KR/ecm.lang
    +++ b/htdocs/langs/ko_KR/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/ko_KR/errors.lang b/htdocs/langs/ko_KR/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/ko_KR/errors.lang
    +++ b/htdocs/langs/ko_KR/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/ko_KR/help.lang b/htdocs/langs/ko_KR/help.lang
    index 0dd31e27efe..6775a0fa1c7 100644
    --- a/htdocs/langs/ko_KR/help.lang
    +++ b/htdocs/langs/ko_KR/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=상업용
     TypeOfHelp=유형
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/ko_KR/holiday.lang b/htdocs/langs/ko_KR/holiday.lang
    index 96ffa4a8ebf..87da570b5ff 100644
    --- a/htdocs/langs/ko_KR/holiday.lang
    +++ b/htdocs/langs/ko_KR/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=이파리
    -CPTitreMenu=이파리
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=시작일
     DateFinCP=종료일
    @@ -15,13 +15,18 @@ ApprovedCP=승인됨
     CancelCP=취소 된
     RefuseCP=거절됨
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=기술
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=편집하다
     DeleteCP=지우다
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=이유
     UserCP=사용자
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/ko_KR/install.lang b/htdocs/langs/ko_KR/install.lang
    index f93d9e9c28a..14a94b6268d 100644
    --- a/htdocs/langs/ko_KR/install.lang
    +++ b/htdocs/langs/ko_KR/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=단계별로 지시에 따라 해보세요.
     MiscellaneousChecks=설치 조건 확인
     ConfFileExists=설치 파일 <b>%s</b>을/를 확인하세요.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=설치 파일 <b>%s</b>이 없거나 작성되지 않았습니다!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=설치 파일<b>%s</b>이 작성되지 않았습니다.
    -ConfFileIsNotWritable=설치 파일 <b>%s</b>을/를 사용할 수 없습니다. 사용권한을 확인하세요. 우선 설치를 하려면, 웹 서버에서 설치 과정에 필요한  이 파일을 사용할 수 있는 권한이 있어야 합니다 (예: 리눅스 같은 OS에서 "chmod 666").
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=설정 파일 <b>%s</b>을/를 사용할 수 있습니다.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=설정 파일에 필요한 모든 정보를 다시 로딩합니다.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=이 PHP는 세션을 지원합니다.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/ko_KR/interventions.lang b/htdocs/langs/ko_KR/interventions.lang
    index b446460d449..4e8c7975bdf 100644
    --- a/htdocs/langs/ko_KR/interventions.lang
    +++ b/htdocs/langs/ko_KR/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=중재
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/ko_KR/main.lang b/htdocs/langs/ko_KR/main.lang
    index 8f4c9c66cda..ff520cd5f37 100644
    --- a/htdocs/langs/ko_KR/main.lang
    +++ b/htdocs/langs/ko_KR/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=메일을 보내는 데 실패했습니다 (전송인=%s,
     ErrorFileNotUploaded=파일을 업로드할 수 없습니다. 파일 크기가 최대 허용량을 초과하지 않고, 디스크 내 충분한 저장 공간이 남아 있으며 또한 디렉토리에 같은 이름의 파일이 없는지를 확인하세요.
     ErrorInternalErrorDetected=오류 발견됨
     ErrorWrongHostParameter=잘못된 호스트 매개변수
    -ErrorYourCountryIsNotDefined=정의된 국가가 없습니다. 홈-설정-편집으로 가서 양식을 다시 게시하세요.
    -ErrorRecordIsUsedByChild=레코드를 삭제할 수 없습니다. 적어도 하나의 자식 레코드가 사용하고 있습니다.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=잘못된 값
     ErrorWrongValueForParameterX=%s 매개변수의 잘못된 값
     ErrorNoRequestInError=오류 요청이 없음
    -ErrorServiceUnavailableTryLater=현재 서비스를 이용할 수 없습니다. 나중에 시도하세요.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=고유한 필드에 중복된 값
    -ErrorSomeErrorWereFoundRollbackIsDone=오류가 있습니다. 변경을 하지 않습니다.
    -ErrorConfigParameterNotDefined=<b>%s</b> 매개변수를 Dolibarr 설정 파일 <b>conf.php</b> 내에서 지정할 수 없습니다.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Dolibarr 데이타베이스에서 <b>%s</b>유저를 찾을 수 없습니다.
     ErrorNoVATRateDefinedForSellerCountry=오류, '%s' 국가의 부가세율이 정의되지 않았습니다.
     ErrorNoSocialContributionForSellerCountry=오류, 국가 '%s'에 대해 정의 된 사회 / 재정 세금 유형이 없습니다.
     ErrorFailedToSaveFile=오류, 파일을 저장할 수 없습니다.
    -ErrorCannotAddThisParentWarehouse=이미 현재 사용중인 상위 창고를 추가하려고합니다.
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=귀하는 할 수있는 권한이 없습니다.
     SetDate=날짜 설정
     SelectDate=날짜 선택
    @@ -78,10 +78,10 @@ FileRenamed=파일 이름이 재명명 되었습니다.
     FileGenerated=파일이 성공적으로 생성되었습니다.
     FileSaved=파일이 성공적으로 저장되었습니다.
     FileUploaded=파일이 성공적으로 업로드 되었습니다.
    -FileTransferComplete=파일을 성공적으로 업로드했습니다.
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=파일이 성공적으로 삭제되었습니다.
     FileWasNotUploaded=첨부할 파일을 선택했지만 바로 업로드할 수는 없습니다. 업로드하려면 "파일 첨부"를 클릭하십시오.
    -NbOfEntries=엔트리 수
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=온라인 도움말 읽기 (인터넷 액세스 필요)
     GoToHelpPage=도움말 읽기
     RecordSaved=저장 레코드
    @@ -94,7 +94,7 @@ Undefined=정의되지 않음
     PasswordForgotten=암호를 잊어 버리셨습니까?
     NoAccount=No account?
     SeeAbove=상위 보기
    -HomeArea=홈 영역
    +HomeArea=홈
     LastConnexion=최근 연결
     PreviousConnexion=이전 연결
     PreviousValue=이전 값
    @@ -142,6 +142,7 @@ Closed=닫혔음
     Closed2=닫혔음
     NotClosed=마감되지 않음
     Enabled=사용
    +Enable=Enable
     Deprecated=사용 금지
     Disable=사용 안함
     Disabled=불용 상태
    @@ -153,7 +154,7 @@ Update=갱신
     Close=닫기
     CloseBox=대시 보드에서 위젯 제거
     Confirm=확인
    -ConfirmSendCardByMail=이 카드 내용을 정말로 <b>%s</b>이메일로 보내시겠습니까? 
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=삭제
     Remove=제거
     Resiliate=끝내기
    @@ -327,7 +328,7 @@ Copy=복사
     Paste=붙여넣기
     Default=생략시
     DefaultValue=생략값
    -DefaultValues=기본값
    +DefaultValues=Default values/filters/sorting
     Price=가격
     PriceCurrency=Price (currency)
     UnitPrice=단가
    @@ -347,7 +348,7 @@ AmountTTCShort=금액 (세금 포함)
     AmountHT=금액 (세금 별도)
     AmountTTC=금액 (세금 포함)
     AmountVAT=세액
    -MulticurrencyAlreadyPaid=이미 지불 된 원래 통화
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=원래 통화로 지불해야합니다.
     MulticurrencyPaymentAmount=지불 금액, 원래 통화
     MulticurrencyAmountHT=금액 (세금 별도), 원화
    @@ -428,7 +429,7 @@ ActionNotApplicable=해당 사항 없음
     ActionRunningNotStarted=착수 함
     ActionRunningShort=진행 중
     ActionDoneShort=끝 마침
    -ActionUncomplete=완료되지 않음
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=이 협력업체의 연락처
     ContactsAddressesForCompany=이 협력업체의 연락처 / 주소
     AddressesForCompany=이 협력업체의 주소
     ActionsOnCompany=이 협력업체에 대한 이벤트
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=이 멤버에 대한 이벤트
     ActionsOnProduct=Events about this product
     NActionsLate=%s 늦게
    @@ -453,8 +455,8 @@ Generate=작성
     Duration=기간
     TotalDuration=총기간
     Summary=요약
    -DolibarrStateBoard=데이터베이스 통계
    -DolibarrWorkBoard=미결 항목 대시 보드
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=처리 할 열 요소가 없습니다.
     Available=가능
     NotYetAvailable=아직 가능 못함
    @@ -468,7 +470,7 @@ and=그리고
     or=또는
     Other=기타
     Others=기타
    -OtherInformations=기타 정보
    +OtherInformations=Other information
     Quantity=수량
     Qty=수량
     ChangedBy=변경자
    @@ -506,7 +508,7 @@ None=없음
     NoneF=없음
     NoneOrSeveral=없음 또는 여러 개
     Late=늦은
    -LateDesc=레코드가 늦었는지 아닌지를 정의하는 지연은 설정에 따라 다릅니다. 관리자에게 홈 - 셋업 - 경고 메뉴에서 지연을 변경하도록 요청하십시오.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=사진
     Photos=사진
    @@ -530,18 +532,6 @@ September=9월
     October=10월
     November=11월
     December=12 월
    -JanuaryMin=1월
    -FebruaryMin=2월
    -MarchMin=3월
    -AprilMin=4월
    -MayMin=5월
    -JuneMin=6월
    -JulyMin=7월
    -AugustMin=8월
    -SeptemberMin=9월
    -OctoberMin=10월
    -NovemberMin=11월
    -DecemberMin=12월
     Month01=1월
     Month02=2월
     Month03=3월
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=이메일
     NoEMail=이메일 없음
     Email=이메일
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=휴대 전화 없음
     Owner=소유자
     FollowingConstantsWillBeSubstituted=다음 상수는 해당 값으로 바뀝니다.
    @@ -677,7 +669,7 @@ NeverReceived=수령 못함
     Canceled=취소 됨
     YouCanChangeValuesForThisListFromDictionarySetup=이 목록의 값은 설정 - 딕셔너리 메뉴에서 변경할 수 있습니다
     YouCanChangeValuesForThisListFrom=메뉴에서이 목록의 값을 변경할 수 있습니다 %s
    -YouCanSetDefaultValueInModuleSetup=모듈 설정으로 새 레코드를 만들 때 사용되는 기본값을 설정할 수 있습니다
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=색상
     Documents=링크 된 파일
     Documents2=문서
    @@ -703,7 +695,7 @@ DateOfSignature=서명 날짜
     HidePassword=암호가 숨겨진 명령 표시
     UnHidePassword=명확한 암호로 실제 명령 표시
     Root=루트
    -Informations=정보
    +Informations=Information
     Page=페이지
     Notes=노트
     AddNewLine=새 줄 추가
    @@ -716,15 +708,15 @@ Merge=병합
     DocumentModelStandardPDF=표준 PDF 템플릿
     PrintContentArea=주요 컨텐츠 영역 인쇄 페이지 표시
     MenuManager=메뉴 관리자
    -WarningYouAreInMaintenanceMode=경고, 지금 유지 보수 모드이므로 로그인 시 <b>%s</b> 적용업무를 사용 할 때만 허용됩니다.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=시스템 오류
     CoreErrorMessage=죄송합니다. 오류가 발생했습니다. 자세한 정보를 얻으려면 시스템 관리자에게 로그를 확인하거나 $ dolibarr_main_prod = 1을 비활성화하십시오.
     CreditCard=신용 카드
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=<b>%s</b> 이 있는 필드는 반드시 입력해야 합니다.
    -FieldsWithIsForPublic=<b>%s</b> 이 (가) 있는 입력란은 공개 회원 목록에 표시됩니다. 이 기능을 사용하지 않으려면 "공용"상자를 선택하십시오.
    -AccordingToGeoIPDatabase=(GeoIP 변환에 따름)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=라인
     NotSupported=지원되지 않음
     RequiredField=필수 입력란
    @@ -732,6 +724,8 @@ Result=결과
     ToTest=테스트
     ValidateBefore=이 기능을 사용하려면 먼저 카드 유효성을 검사해야합니다.
     Visibility=시각성
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=사설
     Hidden=히든
     Resources=자원
    @@ -750,6 +744,7 @@ LinkTo=다음으로 연결
     LinkToProposal=제안서 링크
     LinkToOrder=주문 링크
     LinkToInvoice=송장 링크
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=공급자 주문 링크
     LinkToSupplierProposal=공급 업체 제안 링크
     LinkToSupplierInvoice=공급 업체 송장 링크
    @@ -758,6 +753,7 @@ LinkToIntervention=중재에 연결
     CreateDraft=초안 작성
     SetToDraft=초안으로 돌아 가기
     ClickToEdit=편집하려면 클릭하십시오.
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=일별
     BySalesRepresentative=영업 담당자 별
     LinkedToSpecificUsers=특정 사용자 연락처에 연결됨
     NoResults=결과 없음
    -AdminTools=관리자 도구
    +AdminTools=Admin Tools
     SystemTools=시스템 도구
     ModulesSystemTools=모듈 도구
     Test=테스트
     Element=요소
     NoPhotoYet=아직 사용할 수있는 사진이 없습니다.
     Dashboard=대시보드
    -MyDashboard=내 대시 보드
    +MyDashboard=My Dashboard
     Deductible=공제액
     from=부터
     toward=...쪽으로
    @@ -802,7 +798,7 @@ PrintFile=인쇄 파일 %s
     ShowTransaction=은행 계좌의 항목 표시
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=로고를 변경하거나 표시를 숨길려면 홈 - 설정 - 회사로 갑니다.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=기각
     Denied=기각됨
     ListOf=%s 목록
    @@ -818,12 +814,12 @@ Sincerely=친애하는
     DeleteLine=행 삭제
     ConfirmDeleteLine=이 행을 삭제 하시겠습니까?
     NoPDFAvailableForDocGenAmongChecked=확인 된 레코드 중 문서 생성에 사용할 수있는 PDF가 없습니다.
    -TooManyRecordForMassAction=대량 작업을 위해 선택된 레코드가 너무 많습니다. 작업은 %s 레코드 목록으로 제한됩니다.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=선택한 레코드가 없습니다.
     MassFilesArea=대량 작업으로 만들어진 파일 영역
     ShowTempMassFilesArea=대량 작업으로 작성된 파일의 영역 표시
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=관련 개체
     ClassifyBilled=청구서 분류
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=달력
     GroupBy=그룹화 ...
     ViewFlatList=평면 목록보기
     RemoveString='%s'문자열을 제거하십시오.
    -SomeTranslationAreUncomplete=일부 언어는 부분적으로 번역되거나 오류가있을 수 있습니다. 일부 파일을 발견하면 <a href="https://transifex.com/projects/p/dolibarr/" target="_blank"> https://transifex.com/projects/p/에 등록하는 언어 파일을 수정할 수 있습니다. dolibarr / </a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=다운로드
    @@ -852,25 +848,34 @@ ModuleBuilder=모듈 빌더
     SetMultiCurrencyCode=통화 설정
     BulkActions=벌크 작업
     ClickToShowHelp=툴팁 도움말을 보려면 클릭하십시오.
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=경비 보고서
     HR=HR
     HRAndBank=HR 및 은행
     AutomaticallyCalculated=자동 계산 됨
     TitleSetToDraft=초안으로 돌아 가기
    -ConfirmSetToDraft=초안 상태로 돌아가시겠습니까?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=이벤트
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=프로젝트
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=월요일
     Tuesday=화요일
    @@ -927,15 +932,15 @@ SearchIntoInterventions=중재
     SearchIntoContracts=계약서
     SearchIntoCustomerShipments=고객 출하
     SearchIntoExpenseReports=경비 보고서
    -SearchIntoLeaves=떠나기
    +SearchIntoLeaves=Leave
     CommentLink=주석
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/ko_KR/other.lang b/htdocs/langs/ko_KR/other.lang
    index 03852604b66..e2ab9513e39 100644
    --- a/htdocs/langs/ko_KR/other.lang
    +++ b/htdocs/langs/ko_KR/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=표제
     WEBSITE_DESCRIPTION=기술
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/ko_KR/paybox.lang b/htdocs/langs/ko_KR/paybox.lang
    index 4294117e383..f8db1287738 100644
    --- a/htdocs/langs/ko_KR/paybox.lang
    +++ b/htdocs/langs/ko_KR/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/ko_KR/projects.lang b/htdocs/langs/ko_KR/projects.lang
    index 14371222e90..c313a9473e9 100644
    --- a/htdocs/langs/ko_KR/projects.lang
    +++ b/htdocs/langs/ko_KR/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=관련 항목
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/ko_KR/propal.lang b/htdocs/langs/ko_KR/propal.lang
    index b97f48eaecd..c278e5ff081 100644
    --- a/htdocs/langs/ko_KR/propal.lang
    +++ b/htdocs/langs/ko_KR/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=초안
    -PropalStatusValidatedShort=확인 함
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=닫은
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/ko_KR/website.lang b/htdocs/langs/ko_KR/website.lang
    index adc1c2f4f10..21a1403df65 100644
    --- a/htdocs/langs/ko_KR/website.lang
    +++ b/htdocs/langs/ko_KR/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=암호
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/lo_LA/admin.lang b/htdocs/langs/lo_LA/admin.lang
    index e64fb7c41b5..d352b3642d3 100644
    --- a/htdocs/langs/lo_LA/admin.lang
    +++ b/htdocs/langs/lo_LA/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Development
     VersionUnknown=Unknown
     VersionRecommanded=Recommended
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler to save sessions
     SessionSavePath=Storage session localization
     PurgeSessions=Purge of sessions
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Your session
    -Sessions=Users session
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=External user
     InternalUsers=Internal users
     ExternalUsers=External users
     GUISetup=Display
    -SetupArea=Setup area
    +SetupArea=Setup
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=Setup
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=ບັນ​ຊີ
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposals
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Invoices
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Suppliers
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=State/Province
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=ຊື່
     CompanyAddress=Address
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=​ໂຕ​ຕັ້ງ​ຄ່າ​ທັງ​ໝົດ
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=ຊື່
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/lo_LA/banks.lang b/htdocs/langs/lo_LA/banks.lang
    index 82d0ee7cc07..a9459fc9326 100644
    --- a/htdocs/langs/lo_LA/banks.lang
    +++ b/htdocs/langs/lo_LA/banks.lang
    @@ -7,7 +7,7 @@ BankName=ຊື່ທະນາຄານ
     FinancialAccount=ບັນຊີ
     BankAccount=ບັນຊີທະນາຄານ
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/lo_LA/bills.lang b/htdocs/langs/lo_LA/bills.lang
    index f76ff018f9d..ed988d580e2 100644
    --- a/htdocs/langs/lo_LA/bills.lang
    +++ b/htdocs/langs/lo_LA/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Suppliers payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=Payment amount
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Paid
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Closed
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Other
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/lo_LA/cashdesk.lang b/htdocs/langs/lo_LA/cashdesk.lang
    index 1f51f375e89..353c4ee93ab 100644
    --- a/htdocs/langs/lo_LA/cashdesk.lang
    +++ b/htdocs/langs/lo_LA/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/lo_LA/commercial.lang b/htdocs/langs/lo_LA/commercial.lang
    index efadc44d700..96b8abbb937 100644
    --- a/htdocs/langs/lo_LA/commercial.lang
    +++ b/htdocs/langs/lo_LA/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/lo_LA/companies.lang b/htdocs/langs/lo_LA/companies.lang
    index b22eadb4aae..7f552e8ccdd 100644
    --- a/htdocs/langs/lo_LA/companies.lang
    +++ b/htdocs/langs/lo_LA/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Select a third party
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Delete a contact/address
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New third party
    -MenuNewCustomer=New customer
    -MenuNewProspect=New prospect
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=Company
     CompanyName=Company name
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Companies
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=Third parties
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
     ThirdPartyProspectsStats=Prospects
     ThirdPartyCustomers=Customers
     ThirdPartyCustomersStats=Customers
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Position
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposals
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Supplier
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Delete a company
     PersonalInformations=Personal data
     AccountancyCode=Accounting account
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Staff
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=List of prospects
    -ListCustomersShort=List of customers
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Open
     ActivityCeased=Closed
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/lo_LA/dict.lang b/htdocs/langs/lo_LA/dict.lang
    index 61a7237f472..ad3a24e12f6 100644
    --- a/htdocs/langs/lo_LA/dict.lang
    +++ b/htdocs/langs/lo_LA/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/lo_LA/ecm.lang b/htdocs/langs/lo_LA/ecm.lang
    index 5200fa30b1d..43ddd3bf36f 100644
    --- a/htdocs/langs/lo_LA/ecm.lang
    +++ b/htdocs/langs/lo_LA/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/lo_LA/errors.lang b/htdocs/langs/lo_LA/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/lo_LA/errors.lang
    +++ b/htdocs/langs/lo_LA/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/lo_LA/help.lang b/htdocs/langs/lo_LA/help.lang
    index 6129cae362d..da776683a6a 100644
    --- a/htdocs/langs/lo_LA/help.lang
    +++ b/htdocs/langs/lo_LA/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Commercial
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/lo_LA/holiday.lang b/htdocs/langs/lo_LA/holiday.lang
    index 01b9ed7d1e0..8155e8b94d2 100644
    --- a/htdocs/langs/lo_LA/holiday.lang
    +++ b/htdocs/langs/lo_LA/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Description
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=ລຶບ
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/lo_LA/install.lang b/htdocs/langs/lo_LA/install.lang
    index fb521c0c085..c92d83988ff 100644
    --- a/htdocs/langs/lo_LA/install.lang
    +++ b/htdocs/langs/lo_LA/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/lo_LA/interventions.lang b/htdocs/langs/lo_LA/interventions.lang
    index 4c93eff9d0d..a130367b14f 100644
    --- a/htdocs/langs/lo_LA/interventions.lang
    +++ b/htdocs/langs/lo_LA/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/lo_LA/main.lang b/htdocs/langs/lo_LA/main.lang
    index f456d3566c1..580f58d7794 100644
    --- a/htdocs/langs/lo_LA/main.lang
    +++ b/htdocs/langs/lo_LA/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Closed
     Closed2=Closed
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Deprecated
     Disable=ປິດການນຳໃຊ້
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=ປັບປຸງ
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=ລຶບ
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Other
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tools
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=ການອະນຸຍາດ
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/lo_LA/other.lang b/htdocs/langs/lo_LA/other.lang
    index a37d0058334..15ef5b3e164 100644
    --- a/htdocs/langs/lo_LA/other.lang
    +++ b/htdocs/langs/lo_LA/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=ເຄື່ອງມື
     TMenuTools=ເຄື່ອງມື
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Description
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/lo_LA/paybox.lang b/htdocs/langs/lo_LA/paybox.lang
    index 306aaeec047..0d35ac440fa 100644
    --- a/htdocs/langs/lo_LA/paybox.lang
    +++ b/htdocs/langs/lo_LA/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/lo_LA/projects.lang b/htdocs/langs/lo_LA/projects.lang
    index c1e25abe41f..f1553dac7f4 100644
    --- a/htdocs/langs/lo_LA/projects.lang
    +++ b/htdocs/langs/lo_LA/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/lo_LA/propal.lang b/htdocs/langs/lo_LA/propal.lang
    index 8cf3a68167a..c258381ea85 100644
    --- a/htdocs/langs/lo_LA/propal.lang
    +++ b/htdocs/langs/lo_LA/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Draft
    -PropalStatusValidatedShort=Validated
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Closed
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/lo_LA/website.lang b/htdocs/langs/lo_LA/website.lang
    index 0f0673e3716..6ae08738815 100644
    --- a/htdocs/langs/lo_LA/website.lang
    +++ b/htdocs/langs/lo_LA/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/lt_LT/admin.lang b/htdocs/langs/lt_LT/admin.lang
    index 8ad0f313fae..0ba9935cbb0 100644
    --- a/htdocs/langs/lt_LT/admin.lang
    +++ b/htdocs/langs/lt_LT/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Plėtojimas
     VersionUnknown=Nežinomas
     VersionRecommanded=Rekomenduojamas
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Vedlys, sesijai išsaugoti
     SessionSavePath=Talpinimo sesijos lokalizavimas
     PurgeSessions=Sesijų išvalymas
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Sesijų išsaugojimo manipuliatoriaus PHP nustatymai neleidžia sudaryti visų vykdomų sesijų sąrašo.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Užrakinti naujus prisijungimus
    -ConfirmLockNewSessions=Ar tikrai norite apriboti bet kokius naujus Dolibarr prisijungimus prie programos. Atlikus pakeitimus tik vartotojas <b>%s</b> turės galimybę prisijungti.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Pašalinti prisijungimų užraktą
     YourSession=Jūsų sesija
    -Sessions=Naudotojo sesija
    +Sessions=Users sessions
     WebUserGroup=Tinklo serverio naudotojas/grupė
    -NoSessionFound=Regis jūsų PHP neleidžia sudaryti aktyvių sesijų sąrašo. Katalogas naudojamas sesijų išsaugojimui (<b>%s</b>) gali būti apsaugotas (Pavyzdžiui su OS leidimais arba PHP direktyva open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Duomenų bazės simbolių rinkinys duomenų talpinimui
     DBSortingCharset=Duomenų bazės simbolių rinkinys duomenų rūšiavimui
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Išorinis naudotojas
     InternalUsers=Vidiniai naudotojai
     ExternalUsers=Išoriniai naudotojai
     GUISetup=Atvaizdavimas
    -SetupArea=Paruošimo sritis
    +SetupArea=Nustatymai
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Failo-testo įkėlimo forma (pagal nustatymus)
     IfModuleEnabled=Pastaba: Patvirtinimas yra efektyvus tik, kai modulis <b>%s</b> yra aktyvus
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kode negali būti vertės 0
     DisableJavascript=Išjungti JavaScript ir Ajax funkcijas (Rekomenduojama aklam žmogui ar teksto naršyklėms)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Paieškai paleisti reikalingas simbolių skaičius: %s
     NotAvailableWhenAjaxDisabled=Neprieinamas, Ajax esant išjungtam
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Apžiūra negalima
     ThemeCurrentlyActive=Tema yra veikli
     CurrentTimeZone=Laiko juostos PHP (serveris)
     MySQLTimeZone=TimeZone MySQL (duomenų bazės)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Erdvė
     Table=Lentelė
     Fields=Laukai
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Aktyvus
     SetupShort=Nustatymai
     OtherOptions=Kitos parinktys
    -OtherSetup=Kiti nustatymai
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Dešimtainis skyriklis
     CurrentValueSeparatorThousand=Tūkstančių skyriklis
     Destination=Paskirties vieta
     IdModule=Modulio ID
     IdPermissions=Leidimų ID
     LanguageBrowserParameter=Parametro %-as
    -LocalisationDolibarrParameters=Vietos parametrai
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Kliento Laiko Juosta (vartotojas)
     ClientHour=Kliento laikas (vartotojas)
     OSTZ=Serverio OS laiko zona
    @@ -126,8 +126,8 @@ PHPTZ=PHP serverio Laiko Juosta
     DaylingSavingTime=Vasaros laikas
     CurrentHour=PHP serverio laikas 
     CurrentSessionTimeOut=Einamosios sesijos pertrauka
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Automatinis aptikimas (naršyklės kalba)
     FeatureDisabledInDemo=Funkcija išjungta demo versijoje
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Rodomi tik elementai iš <a href="%s">leidžiami moduliai</a>.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Naujas
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, oficiali Dolibarr ERP / CRM išorinių modulių parduotuvė
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Nuoroda
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Nesaugokite aiškių slaptažodžių duomenų bazėje, l
     MainDbPasswordFileConfEncrypted=Duomenų bazės slaptažodis užšifruotas conf.php (Activated recomended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Generuojamų PDF failų apsauga (Activated NOT recomended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Savybė
     DolibarrLicense=Licencija
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=Vartotojo arba kūrėjo dokumentacijos (doc, DUK ...) <br> ieškoti Dolibarr Wiki: <br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Dėl kitų klausimų/pagalbos galite kreiptis į Dolibarr forumą: <br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=Ši sritis gali padėti jums gauti Dolibarr Help žinyno palaikymo paslaugą
    -HelpCenterDesc2=Dalis šios paslaugos prieinama <b>tik anglų kalba.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Dabartinis meniu prižiūrėtojas
     MeasuringUnit=Matavimo vienetas
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/MTPS jungtis (port) (pagal nutylėjimą php.ini: <b>%s)</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS host (pagal nutylėjimą php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS jungtis (port) (neapibrėžtas PHP Unix tipo sistemose)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS host (neapibrėžtas PHP Unix tipo sistemose)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Sistemingai siųsti visų išsiųstų laiškų paslėptas kopijas BCC į 
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=El. pašto siuntimui naudoti metodą
    -MAIN_MAIL_SMTPS_ID=SMTP ID, jei reikalingas autentiškumo patvirtinimas
    -MAIN_MAIL_SMTPS_PW=SMTP slaptažodis, jei reikalingas autentiškumo patvirtinimas
    -MAIN_MAIL_EMAIL_TLS= Užšifravimui naudoti TLS (SSL)
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Išjungti visus SMS siuntimus (bandymo ar demo tikslais)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=SMS siuntimui naudoti metodą
    -MAIN_MAIL_SMS_FROM=SMS siuntimui naudojamas siuntėjo telefono numeris pagal nutylėjimą
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Funkcija negalima Unix tipo sistemose. Patikrinti el. pašto siuntimo vietinę programą.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Modulio nuostatos
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modulių įrankiai
     ModuleFamilyExperimental=Eksperimentiniai moduliai
     ModuleFamilyFinancial=Finansiniai moduliai (Accounting/Treasury)
     ModuleFamilyECM=Elektroninis Turinio Valdymas (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Meniu prižiūrėtojai
     MenuAdmin=Meniu redaktorius
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Nenaudoti gamyboje
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Žingsnis %s
    -FindPackageFromWebSite=Ieškoti paketo, kuris suteikia norimą funkciją (pavyzdžiui oficialioje interneto svetainėje %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr dabartinė versija
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Tarpinės atminties (cache) eksporto reakcijos vėlinimas sekundėmis (0 arba tuščia, kai nėra tarpinės atminties)
     DisableLinkToHelpCenter=Paslėpti nuorodą "<b>"Reikia pagalbos ar techninio palaikymo</b>" prisijungimo prie Dolibarr puslapyje
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=Nėra automatinio eilutės perkėlimo. Todėl jei eilutė netelpa puslapyje, turite pridėti tekste perkėlimo simbolį.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimalus ilgis
     LanguageFilesCachedIntoShmopSharedMemory=Failai .lang pakrauti į bendro naudojimo atmintį
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Pavyzdžiai su dabartiniais nustatymais
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=OpenDocument šablonų katalogų sąrašas
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=ODT/ODS šablonų failų rastų šiuose kataloguose skaičius
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Pavyzdys: <br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>Norėdami sužinoti, kaip sukurti savo odt dokumentų šablonus, prieš išsaugant juos šiuose kataloguose, paskaityti Wiki dokumentus:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Pagrindiniai Web Services raktai (parameter "dolibarrkey
     TestSubmitForm=Įvedimo testo forma
     ThisForceAlsoTheme=Naudojant šį meniu valdiklį taip pat naudokite temą pagal savo pasirinkimą. Taip pat šis meniu valdiklis specializuotas išmaniesiems telefonams veikia ne su visais telefonais. Naudokite kitą meniu valdiklį, jei turite problemų su šiuo.
     ThemeDir=Vaizdinių stilių (skins) katalogas
    -ConnectionTimeout=Sujungimo pauzė
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Reakcijos pauzė
     SmsTestMessage=Testinė žinutė iš __PHONEFROM__ į __ PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=URL apsaugos raktai
    -NoSmsEngine=SMS siuntėjo vadovas neprieinamas. SMS siuntėjo vadovas nėra įdiegtas pagal nutylėjimą (nes jie priklauso nuo išorinio tiekėjo), bet jūs galite jį rasti %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Galite nustatyti kiekvieną bendrą opciją, susijusią su PDF generavimu
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Adresų dėžutės sudarymo taisyklės
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Generuojamuose PDF paslėpti produktų aprašymus
     HideRefOnPDF=Generuojamuose PDF paslėpti produktų referencijas
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=URL apsaugos parametrai
     SecurityTokenIsUnique=Kiekvienam URL naudokite unikalų apsaugos rakto parametrą
     EnterRefToBuildUrl=Įveskite nuorodą objektui %s
     GetSecuredUrl=Gauti apskaičiuotą URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Senas PVM tarifas
     NewVATRates=Naujas PVM tarifas
     PriceBaseTypeToChange=Modifikuoti kainas su apibrėžta bazinės vertės nuoroda
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Pasirinkti sąrašą
     ExtrafieldSelectList = Pasirinkite iš lentelės
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Slaptažodis
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Nuoroda į objektą,
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Nustatytoji nuoroda
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Įspėjimas, ši reikšmė gali būti perrašyta pagal vartotojo specifines nuostatas (kiekvienas vartotojas gali nustatyti savo clicktodial URL)
     ExternalModule=Išorinis modulis - Įdiegtas kataloge %s
    -BarcodeInitForThirdparties=Masinis brūkšniniųkodų paleidimas trečiosioms šalims
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Masiniss brūkšninių kodų paleidimas arba atstatymas produktams ar paslaugoms
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Pažymėti vertę kitiems %s tuštiems įrašams
     EraseAllCurrentBarCode=Ištrinti visas esamas brūkšninių kodų reikšmes
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=Visos brūkšninių kodų vertės buvo ištrintos
    -NoBarcodeNumberingTemplateDefined=Brūkšninių kodų numeracijos šablonas nėra įjungtas  brūkšninio kodo modulio konfigūracijoje.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Laukas
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Vartotojai ir grupės
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Trečiosios šalys
    -Module1Desc=Įmonių ir kontaktų valdymas (klientų, perspektyvų...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Prekybos
     Module2Desc=Komercinis valdymas
     Module10Name=Apskaita
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Pasiūlymai
     Module20Desc=Komercinių pasiūlymų valdymas
     Module22Name=Masiniai el. laiškai
    @@ -495,7 +501,7 @@ Module23Desc=Stebėti energijos suvartojimą
     Module25Name=Klientų užsakymai
     Module25Desc=Klientų užsakymų valdymas
     Module30Name=Sąskaitos
    -Module30Desc=Sąskaitų ir kreditinių sąskaitų valdymas klientams. Sąskaitų valdymas tiekėjams
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Tiekėjai
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Atsargų valdymas (produktai)
     Module53Name=Paslaugos
     Module53Desc=Paslaugų valdymas
     Module54Name=Sutartys / Abonentai
    -Module54Desc=Sutarčių valdymas (servisas arba periodinis abonementas)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Brūkšniniai kodai
     Module55Desc=Brūkšninių kodų valdymas
     Module56Name=Telefonija
     Module56Desc=Telefonijos integracija
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=ClickToDial sistemos integracija (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Išlaidos ir praradimai
     Module75Desc=Išlaidų ir praradimų valdymas
     Module80Name=Gabenimai
     Module80Desc=Gabenimų ir pristatymo užsakymų valdymas
    -Module85Name=Bankai ir pinigai
    +Module85Name=Banks and Cash
     Module85Desc=Banko ar pinigų sąskaitų valdymas
    -Module100Name=Išorinė svetainė
    -Module100Desc=Šis modulis įtraukia išorinę svetainę ar puslapį į Dolibarr meniu ir parodo jį Dolibarr aplinkoje
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Paštininkas ir SPIP
     Module105Desc=Paštininko arba SPIP sąsaja narių moduliui
     Module200Name=LDAP
    -Module200Desc=LDAP katalogų sinchronizavimas
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integracija
     Module240Name=Duomenų eksportas
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Duomenų importas
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Nariai
     Module310Desc=Organizacijos narių valdymas
     Module320Name=RSS mechanizmas
     Module320Desc=Pridėti RSS mechanizmą Dolibarr ekrano puslapių viduje
    -Module330Name=Žymekliai
    -Module330Desc=Žymeklių valdymas
    -Module400Name=Projektai / Galimybės / Iniciatyvos
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Web kalendorius
     Module410Desc=Web kalendoriaus integracija
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Paskola
     Module520Desc=Paskolų valdymas
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Parama
     Module700Desc=Paramos valdymas
     Module770Name=Išlaidų ataskaitos
    -Module770Desc=Valdymo ir pretenzijų išlaidų ataskaitos (transportas, maistas, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Masinis pašto dokumentų generavimas
     Module1780Name=Žymės / Kategorijos
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG redaktorius
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dinaminės kainos
     Module2200Desc=Nustatyti matematinių išraiškų naudojimą kainose
     Module2300Name=Suplanuoti darbai
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Nustatyti Dolibarr interneto paslaugų klientą (Gali būti naudojamas perkelti Duomenis / Prašymus į išorės serverius. Tiekėjo užsakymai palaikomi tik šiuo metu)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Naudokite Gravatar interneto paslaugą (www.gravatar.com) kad parodyti nuotrauką vartotojams/nariams (surandami prie jų laiškų). Reikalinga interneto prieiga.
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP klientas
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP MaxMind konvertavimo galimybes
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=Žmogiškųjų išteklių valdymas (HRM)
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi įmonė
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leidimų valdymas
    -Module20000Desc=Darbuotojų leidimai
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Partija ar serijos numeris, produktų galiojimo ar pardavimo terminų valdymas
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Pardavimų taškas
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Pardavimo punktas
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=PayPal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Apskaita (Išankstinė)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Paraštės
     Module59000Desc=Paraščių valdymo modulis
     Module60000Name=Komisiniai
     Module60000Desc=Komisinių valdymo modulis
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Ištekliai
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Skaityti klientų sąskaitas
    @@ -651,9 +661,9 @@ Permission32=Sukurti/pakeisti produktus
     Permission34=Ištrinti produktus
     Permission36=Žiūrėti/tvarkyti paslėptus produktus
     Permission38=Eksportuoti produktus
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Ištrinti projektus (bendrus projektus ir projektus, apie kuriuos kalbama)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Skaityti intervencijas
     Permission62=Sukurti/keisti intervencijas
    @@ -686,7 +696,7 @@ Permission109=Ištrinti siuntinius
     Permission111=Skaityti finansines ataskaitas
     Permission112=Sukurti/keisti/trinti ir palyginti sandorius/transakcijas
     Permission113=Finansinių sąskaitų nustatymas (sukurti, valdyti kategorijas)
    -Permission114=Operacijų suderinimas
    +Permission114=Reconcile transactions
     Permission115=Eksportuoti sandorius/transakcijas ir sąskaitos išrašus
     Permission116=Pervedimai tarp sąskaitų
     Permission117=Valdyti čekių atlikimą/įvykdymą
    @@ -694,15 +704,15 @@ Permission121=Skaityti trečiąsias šalis, susijusias su vartotoju
     Permission122=Sukurti/pakeisti trečiąsias šalis, susijusias su vartotoju
     Permission125=Ištrinti trečiąsias šalis, susijusias su vartotoju
     Permission126=Eksportuoti trečiąsias šalis
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Skaityti teikėjus
     Permission147=Skaityti statistinius duomenis
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Skaityti sutartis / pasirašymus
     Permission162=Sukurti / keisti sutartis / pasirašymus
     Permission163=Aktyvuoti sutarties aptarnavimą / pasirašymą
    @@ -725,7 +735,7 @@ Permission187=Uždaryti tiekėjo užsakymus
     Permission188=Nutraukti tiekėjo užsakymus
     Permission192=Sukurti rūšis/serijas
     Permission193=Nutraukti rūšis/serijas
    -Permission194=Skaityti resursų rūšis/serijas
    +Permission194=Read the bandwidth lines
     Permission202=Sukurti ADSL ryšius
     Permission203=Tvarkyti ryšių užsakymus
     Permission204=Tvarkyti ryšius
    @@ -750,12 +760,12 @@ Permission244=Pamatyti paslėptų kategorijų turinį
     Permission251=Skaityti kitus vartotojus ir grupes
     PermissionAdvanced251=Skaityti kitus vartotojus
     Permission252=Skaityti kitų vartotojų leidimus
    -Permission253=Sukurti/pakeisti kitus vartotojus, grupes ir leidimus
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Sukurti/keisti vidaus/išorės vartotojus ir leidimus
     Permission254=Sukurti/keisti tik išorės vartotojus
     Permission255=Keisti kitų vartotojų slaptažodžius
     Permission256=Ištrinti ar išjungti kitus vartotojus
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Skaityti CA
     Permission272=Skaityti sąskaitas faktūras
     Permission273=Išrašyti sąskaitas faktūras
    @@ -765,7 +775,7 @@ Permission283=Trinti adresatus
     Permission286=Eksportuoti adresatus
     Permission291=Skaityti tarifus
     Permission292=Nustatyti leidimus tarifams
    -Permission293=Keisti klientų tarifus
    +Permission293=Modify customers tariffs
     Permission300=Skaityti brūkšninius kodus
     Permission301=Sukurti/keisti brūkšninius kodus
     Permission302=Ištrinti brūkšninius kodus
    @@ -787,11 +797,9 @@ Permission401=Skaityti nuolaidas
     Permission402=Sukurti/keisti nuolaidas
     Permission403=Patvirtinti nuolaidas
     Permission404=Ištrinti nuolaidas
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Ištrinti atlyginimus
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Eksportuoti atlyginimus
     Permission520=Skaityti Paskolas
     Permission522=Sukurti / redaguoti paskolas
    @@ -844,8 +852,8 @@ Permission1251=Pradėti masinį išorinių duomenų importą į duomenų bazę (
     Permission1321=Eksportuoti klientų sąskaitas-faktūras, atributus ir mokėjimus
     Permission1322=Reopen a paid bill
     Permission1421=Eksportuoti klientų užsakymus ir atributus
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Perspektyvinio plano potencialo lygis
     DictionaryCanton=Valstybė/Regionas
     DictionaryRegion=Regionai
    @@ -894,7 +902,7 @@ DictionaryVAT=PVM tarifai ar Pardavimo mokesčio tarifai
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Apmokėjimo terminai
     DictionaryPaymentModes=Apmokėjimo būdai
    -DictionaryTypeContact=Adresatų/Adresų tipai
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Eco-Tax (WEEE)
     DictionaryPaperFormat=Popieriaus formatai
    @@ -908,47 +916,47 @@ DictionarySource=Pasiūlymų/užsakymų kilmė
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Sąskaitų plano modeliai
     DictionaryAccountancyJournal=Apskaitos žurnalai
    -DictionaryEMailTemplates=El.pašto pranešimų šablonai
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Vienetai
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Nustatymai išsaugoti
     SetupNotSaved=Setup not saved
     BackToModuleList=Atgal į modulių sąrašą
    -BackToDictionaryList=Atgal į žodynų sąrašą
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=PVM valdymas
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=Pagal nutylėjimą siūloma PVM yra 0, kuris gali būti naudojamas kai kuriais atvejais, pvz.: asociacijoms, fiziniams asmenims ar mažoms įmonėms.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Norma
     LocalTax1IsNotUsed=Nenaudokite antro mokesčio
    -LocalTax1IsUsedDesc=Naudokite antro tipo mokesčių (išskyrus PVM)
    -LocalTax1IsNotUsedDesc=Nenaudokite kito tipo mokesčių (išskyrus PVM)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Antro tipo mokestis
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Nenaudokite trečio mokesčio
    -LocalTax2IsUsedDesc=Naudokite trečio tipo mokestį (išskyrus PVM)
    -LocalTax2IsNotUsedDesc=Nenaudokite kitokio tipo mokesčių (išskyrus PVM)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Trečio tipo mokestis
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE valdymas
    -LocalTax1IsUsedDescES= RE norma pagal nutylėjimą, kuriant planus, sąskaitas-faktūras, užsakymus ir kt., pagal aktyvią standartinę taisyklę:<br>Jei  pirkėjas nėra RE mokėtojas, tai pagal nutylėjimą RE = 0. Taisyklės pabaiga.<br>Jei pirkėjas yra RE mokėtojas, tada RE taikoma pagal nutylėjimą. Taisyklės pabaiga.<br>
    -LocalTax1IsNotUsedDescES= Pagal nutylėjimą siūloma RE = 0. Taisyklės pabaiga.
    -LocalTax1IsUsedExampleES= Ispanijoje profesionalams taikomi Ispanijos IAE tam tikri spec. skyriai.
    -LocalTax1IsNotUsedExampleES= Ispanijoje profesionalams ir bendruomenėms taikomi Ispanijos IAE tam tikri spec. skyriai.
    -LocalTax2ManagementES= IRPF valdymas
    -LocalTax2IsUsedDescES= RE tarifas pagal nutylėjimą, kuriant planus, sąskaitas-faktūras, užsakymus ir kt., pagal aktyvią standartinę taisyklę:<br>Jei pardavėjui nėra taikomas IRPF, tada pagal nutylėjimą IRPF = 0. Taisyklės pabaiga.<br>Jeigu pardavėjui taikomas IRPF, tada IRPF tarifas nustatytas pagal nutylėjimą. Taisyklės pabaiga.<br>
    -LocalTax2IsNotUsedDescES= Pagal nutylėjimą siūloma IRPF yra 0. Taisyklės pabaiga.
    -LocalTax2IsUsedExampleES= Ispanijoje, laisvai samdomi ir nepriklausomi specialistai, kurie teikia paslaugas ir įmonės, kurios pasirinko modulių mokesčių sistemą.
    -LocalTax2IsNotUsedExampleES= Ispanijoje jie yra verslas, kuriam netaikoma modulių mokesčių sistema.
    +LocalTax1ManagementES=RE valdymas
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Pagal nutylėjimą siūloma RE = 0. Taisyklės pabaiga.
    +LocalTax1IsUsedExampleES=Ispanijoje profesionalams taikomi Ispanijos IAE tam tikri spec. skyriai.
    +LocalTax1IsNotUsedExampleES=Ispanijoje profesionalams ir bendruomenėms taikomi Ispanijos IAE tam tikri spec. skyriai.
    +LocalTax2ManagementES=IRPF valdymas
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Pagal nutylėjimą siūloma IRPF yra 0. Taisyklės pabaiga.
    +LocalTax2IsUsedExampleES=Ispanijoje, laisvai samdomi ir nepriklausomi specialistai, kurie teikia paslaugas ir įmonės, kurios pasirinko modulių mokesčių sistemą.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Ataskaitos apie vietinius mokesčius
     CalcLocaltax1=Pardavimai - Pirkimai
     CalcLocaltax1Desc=Vietinių mokesčių ataskaitos apskaičiuojamas kaip skirtumas tarp pardavimo vietinių mokesčių ir pirkimo vietinių mokesčių
    @@ -958,7 +966,9 @@ CalcLocaltax3=Pardavimai
     CalcLocaltax3Desc=Vietinių mokesčių ataskaitos yra pardavimo vietinių mokesčių suma iš viso
     LabelUsedByDefault=Etiketė naudojamas pagal nutylėjimą, jei kodui nerandamas vertimas
     LabelOnDocuments=Dokumentų etiketė
    -NbOfDays=Dienų skaičius
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Mėnesio pabaigoje
     CurrentNext=Current/Next
     Offset=Nuokrypis
    @@ -984,7 +994,7 @@ DatabaseUser=Duomenų bazės vartotojas
     DatabasePassword=Duomenų bazės slaptažodis
     Tables=Lentelės
     TableName=Lentelės pavadinimas
    -NbOfRecord=Įrašų skaičius
    +NbOfRecord=No. of records
     Host=Serveris
     DriverType=Tvarkyklės (driver) tipas
     SummarySystem=Sistemos informacijos santrauka
    @@ -996,7 +1006,7 @@ Skin=Grafinio vaizdo (skin) tema
     DefaultSkin=Grafinio vaizdo (skin) tema pagal nutylėjimą
     MaxSizeList=Maksimalus sąrašo ilgis
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Dienos pranešimas
     MessageLogin=Prisijungimo prie sistemos ekrano pranešimas
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Nuolatinė paieškos forma kairiajame meniu
     DefaultLanguage=Naudojama kalba pagal nutylėjimą (kalbos kodas)
     EnableMultilangInterface=Įjungti daugiakalbę sąsają
     EnableShowLogo=Rodyti logotipą kairiajame meniu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Pavadinimas/Vardas
     CompanyAddress=Adresas
     CompanyZip=Pašto kodas
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Banko sąskaitos %s savininkas
     BankModuleNotActive=Banko sąskaitos modulis neįjungtas
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Įspėjimai
    -DelaysOfToleranceBeforeWarning=Vėlavimų prieš įspėjimą tolerancija
    -DelaysOfToleranceDesc=Šis ekranas leidžia jums nustatyti toleruojamas vėlavimų prieš perspėjimus, pranešamus ekrane su piktograma %s, ribas kiekvienam vėluojamam elementui.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Vėlavimo tolerancija (dienų) prieš perspėjimą dėl pasiūlymų uždaryti
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Vėlavimo tolerancija (dienų) prieš perspėjimą dėl nepateiktų pasiūlymų
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Vėlavimo tolerancija (dienų) prieš perspėjimą dėl aktyvinamų paslaugų
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Vėlavimo tolerancija (dienų) prieš perspėjimą dėl pasibaigusių paslaugų
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Vėlavimo tolerancija (dienų) prieš perspėjimą dėl nesumokėtų tiekėjo sąskaitų-faktūrų
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Vėlavimo tolerancija (dienų) prieš perspėjimą dėl nesumokėtų kliento sąskaitų-faktūrų
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Vėlavimo tolerancija (dienų) prieš perspėjimą dėl banko laukiamo suderinimo
    -Delays_MAIN_DELAY_MEMBERS=Vėlavimo tolerancija (dienų) prieš perspėjimą dėl uždelsto narystės mokesčio
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Vėlavimo tolerancija (dienų) prieš perspėjimą dėl čekių depozito įvykdymo
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Kiti meniu įrašai valdo laisvai pasirenkamus (optional) parametrus.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Saugumo audito įvykiai
    -Audit=Auditas
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Naršyklės pavadinimas
     BrowserOS=Naršyklės OS
     ListOfSecurityEvents=Dolibarr saugumo įvykių sąrašas
     SecurityEventsPurged=Saugumo įvykiai išvalyti
    -LogEventDesc=Čia galite leisti prisijungimą prie Dolibarr saugumo įvykių. Administratoriai gali matyti turinį per meniu <b>System Tools - Audit</b>. Įspėjimas, ši funkcija gali užimti didelį kiekį duomenų bazės atminties ir sulėtinti darbą.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=Sistemos informacija yra įvairi techninė informacija, kurią gausite tik skaitymo režimu, ir bus matoma tik sistemos administratoriams.
     SystemAreaForAdminOnly=Ši sritis yra skirta tik administratoriams. Nė vienas iš Dolibarr leidimų negali sumažinti šio apribojimo.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Čia galite rinktis ir keisti kiekvieną parametrą, susijusį su Dolibarr grafiniu vaizdu.
     AvailableModules=Available app/modules
     ToActivateModule=Norint įjungti modulius, reikia eiti į Nuostatų meniu (Pagrindinis-> Nuostatos-> Moduliai).
     SessionTimeOut=Sesijos laikas pasibaigė
    -SessionExplanation=Šis skaičius garantuoja, kad sesija niekada nesibaigs prieš šį vėlavimą, jeigu sesijos valymas atliktas Vidinio PHP sesijos valytojo (ir nieko daugiau). Vidinis PHP sesijos valytojas negarantuoja, kad sesija pasibaigs tik po šio vėlavimo. Ji baigsis po šio vėlavimo ir kai sesijos valymas vyko, todėl kiekvienos <b>%s/%s</b> prieigos, bet tik sesijų metu. <br> Pastaba: kai kuriuose serveriuose su išoriniais sesijos valymo mechanizmais (cron, Debian, Ubuntu ...) seansai gali būti nutraukti praėjus nustatytam pagal nutylėjimą <strong>session.gc_maxlifetime</strong> laikotarpiui, nesvarbu, kokia čia įrašyta reikšmė.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Galimi trigeriai
    -TriggersDesc=Trigeriai yra failai, kurie pakeičia Dolibarr elgesį, kai tik nukopijuojami į katalogą<b>htdocs/core/triggers</b>. Jie nustato naujus veiksmus, suaktyvintus Dolibarr įvykiuose (kuriant naują įmonę, pripažįstant sąskaitą-faktūrą, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Trigeriai šiame faile yra išjungti, panaudojant priesagą <b>-NORUN</b> jų pavadinimuose.
     TriggerDisabledAsModuleDisabled=Trigeriai šiame faile yra išjungti, nes modulis <b>%s</b> yra išjungtas.
     TriggerAlwaysActive=Trigeriai šiame faile yra visada aktyvūs, kokie bebūtų aktyvuoti Dolibarr moduliai.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Apribojimų/Tikslumo nustatymai
    -LimitsDesc=Čia galite nustatyti apribojimus, tikslumą ir optimizacijos priemones, naudojamas Dolibarr.
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Vieneto kainos maksimalus ženklų po kablelio skaičius
     MAIN_MAX_DECIMALS_TOT=Visos kainos maksimalus ženklų po kablelio skaičius
     MAIN_MAX_DECIMALS_SHOWN=Ekrane rodomų kainų maksimalus ženklų po kablelioskaičius (Pridėti <b>...</b> po šio numerio, jei norite pamatyti <b>...</b> kada ekrane rodomas skaičius yra sutrumpinamas)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Produkto grynoji vieneto kaina
     TotalPriceAfterRounding=Bendra kaina (grynoji kaina/PVM/su PVM) po apvalinimo
     ParameterActiveForNextInputOnly=Parametras veiksmingas tik kitam duomenų įvedimui
    -NoEventOrNoAuditSetup=Dar nėra užfiksuotų saugumo įvykių. Tai yra normalu, jei auditas nebuvo įjungtas "Nuostatos - Saugumas - Auditas" puslapyje.
    -NoEventFoundWithCriteria=Saugumo įvykių pagal užduotus paieškos kriterijus nerasta.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Žiūrėti į vietinio el. pašto konfigūraciją
     BackupDesc=Norint padaryti pilną atsarginę Dolibarr kopiją, reikia:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Suarchyvuotas katalogas turi būti laikomas saugioje vietoje.
     BackupDescY=Sukurtas sandėlio failas turi būti laikomas saugioje vietoje.
    -BackupPHPWarning=Atsarginės kopijos sukūrimas negarantuojamas naudojant šį metodą. Teikite pirmenybę ankstesniam metodui.
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Norėdami atkurti Dolibarr iš atsarginės kopijos, turite:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL duomenų importas
     ForcedToByAModule= Ši taisyklė yra priverstinė <b>%s</b> pagal aktyvuotą modulį
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Jūs turite paleisti šią koma
     YourPHPDoesNotHaveSSLSupport=SSL funkcijos negalimos Jūsų PHP
     DownloadMoreSkins=Parsisiųsti daugiau grafinių vaizdų (skins)
     SimpleNumRefModelDesc=Grąžina nuorodos numerį, kurio formatas %syymm-nnnn, kur yy yra metai, mm mėnuo ir nnnn yra seka, be tarpų ir be apnulinimo.
    -ShowProfIdInAddress=Rodyti profesionalius ID su adresais ant dokumentų
    -ShowVATIntaInAddress=Paslėpti PVM Intra num su adresais ant dokumentų
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Dalinis vertimas
    -MAIN_DISABLE_METEO=Išjungti meteo vaizdus
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Bandyti prisijungti prie API
    -ProxyDesc=Kai kurios Dolibarr funkcijos darbe reikalauja interneto prieigos. Čia nustatykite parametrus. Jei Dolibarr serveris yra už proxy serverio, šie parametrai nurodo Dolibarr, kaip pasiekti internetą.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Išorinė prieiga
     MAIN_PROXY_USE=Naudoti proxy serverį (kitu atveju tiesioginę interneto prieigą)
     MAIN_PROXY_HOST=Proxy serverio pavadinimas/adresas
     MAIN_PROXY_PORT=Proxy serverio prievadas (port)
     MAIN_PROXY_USER=Prisijungti proxy serverio naudojimui
     MAIN_PROXY_PASS=Proxy serverio slaptažodis
    -DefineHereComplementaryAttributes=Čia nustatykite visus atributus, ne tik jau nustatytus pagal nutylėjimą, bet ir tuos, kuriuos Jūs norite, kad būtų palaikomi %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Papildomi požymiai
     ExtraFieldsLines=Papildomi atributai (linijos)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Papildomos savybės (užsakymo eilutės)
     ExtraFieldsSupplierInvoicesLines=Papildomos savybės (sąskaitos-faktūros eilutės)
     ExtraFieldsThirdParties=Papildomi požymiai (trečiosios šalys)
    -ExtraFieldsContacts=Papildomi požymiai (kontaktas/adresas)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Papildomi požymiai (narys)
     ExtraFieldsMemberType=Papildomi požymiai (nario tipas)
     ExtraFieldsCustomerInvoices=Papildomi atributai (sąskaitos-faktūros)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=Tik raidiniai-skaitmeniniai simboliai, mažosio
     SendmailOptionNotComplete=ĮSPĖJIMAS, kai kuriose Linux sistemose, norint siųsti el. laiškus iš savo pašto, vykdymo nuostatose turi būti opcija -ba (parametras mail.force_extra_parameters į savo php.ini failą). Jei kai kurie gavėjai niekada negauna el. laiškų, pabandykite redaguoti šį PHP parametrą su mail.force_extra_parameters = -ba).
     PathToDocuments=Kelias prie dokumentų
     PathDirectory=Katalogas
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Jūs turite įjungti bent 1 modulį
    -ClassNotFoundIntoPathWarning=Klasė %s nerasta į PHP kelią
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Taip vasarą
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Sesijų saugykla užšifruota Suhosin
     ConditionIsCurrently=Dabartinė būklė yra %s
    -YouUseBestDriver=Jūs naudojate tvarkyklę %s, kuri yra geriausia tvarkyklė prieinama šiuo metu.
    -YouDoNotUseBestDriver=Jūs naudojate diską %s, bet rekomenduojama tvarkyklė (driver) %s.
    -NbOfProductIsLowerThanNoPb=Turite tik %s produktus/paslaugas duomenų bazėje. Tam nereikia jokio ypatingo optimizavimo.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Paieškos optimizavimas
    -YouHaveXProductUseSearchOptim=Jūs turite %s produktą duomenų bazėje. Jums reikia pridėti konstantą PRODUCT_DONOTSEARCH_ANYWHERE prie 1 į Pagrindinis-Nustatymai-Kiti. Jūs apribojate paiešką eilutės pradžia ir nustatote galimybę duomenų bazėjė naudoti indeksą ir jūs turėtumėte gauti greitesnius atsakymus į paieškos užklausas.
    -BrowserIsOK=Jūs naudojate interneto naršyklę %s. Ši naršyklė yra gera saugumo ir charakteristikų požiūriu.
    -BrowserIsKO=Jūs naudojate interneto naršyklę %s. Ši naršyklė yra žinoma, kaip blogas pasirinkimas saugumo, charakteristikų ir patikimumo požiūriu. Mes recommanduojame Jums Firefox, Chrome, Opera ar Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug yraužkrautas.
     XCacheInstalled=Xcache yra įkelta.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Lauko %s redagavimas
     FillThisOnlyIfRequired=Pavyzdys: +2 (pildyti tik tuomet, jei laiko juostos nuokrypio problemos yra žymios)
     GetBarCode=Gauti brūkšninį kodą
     ##### Module password generation
     PasswordGenerationStandard=Grąžinti pagal vidinį Dolibarr algoritmą sugeneruotą slaptažodį: 8 simbolių, kuriuose yra bendri skaičiai ir mažosios raidės.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=Naujo vartotojo sukūrimui reikalingas el. paštas
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Įmonių modulio nuostatos
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Dokumentų šablonai
    -DocumentModelOdt=Sukurti dokumentus pagal OpenDocuments šablonus (.ODT arba .OAM failus OpenOffice, KOffice, TextEdit, ...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Vandens ženklas ant dokumento projekto
     JSOnPaimentBill=Aktyvuoti automatinio mokėjimo eilučių užpildymo mokėjimo formoje funkciją
    -CompanyIdProfChecker=Profesionalių IDS taisyklės
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Eksporto nuorodą į <b>%s</b> formatą galima rasti šiuo adresu: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Eksporto nuorodą į <b>%s</b> formatą galima rasti šiu
     BillsSetup=Sąskaitos-faktūros modulio nuostatos
     BillsNumberingModule=Sąskaitų-faktūrų ir kredito avizų numeravimo modulis
     BillsPDFModules=Sąskaitų-faktūrų dokumentų moduliai
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Kreditinė sąskaita-faktūra
     CreditNotes=Kreditinės sąskaitos-faktūros
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Valdyti kiekvieno nario Prisijungimą
     AdherentMailRequired=El. paštui reikia sukurti naują narį
     MemberSendInformationByMailByDefault=Patvirtinimas paukščiuku žymimame langelyje pašto siuntimui nariams (patvirtinimas arba nauja įmoka) yra pagal nutylėjimą
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP nuostatos
     LDAPGlobalParameters=Bendrieji parametrai
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Bandyti LDAP paiešką
     LDAPSynchroOK=Sinchronizacijos bandymas sėkmingas
     LDAPSynchroKO=Sinchronizacijos bandymas nepavyko
    -LDAPSynchroKOMayBePermissions=Sinchronizacijos bandymas nepavyko. Patikrinkite, ar prisijungimas prie serverio yra tinkamai sukonfigūruotas ir ar leidžiami LDAP atnaujinimai
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP prisijungimas prie LDAP serverio sėkmingas (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP prisijungimas prie LDAP serverio nepavyko (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Prisijungimas/Patvirtinimas prie LDAP serverio nepavyko (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP serveris sukonfigūruotas versijai 3
     LDAPSetupForVersion2=LDAP serveris sukonfigūruotas versijai 2
     LDAPDolibarrMapping=Dolibarr atvaizdavimas
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Prisijungti (samba, activedirectory)
     LDAPFieldLoginSambaExample=Pavyzdys: samaccountname
     LDAPFieldFullname=Pilnas pavadinimas/vardas
     LDAPFieldFullnameExample=Pavyzdys: cn
    -LDAPFieldPasswordNotCrypted=Slaptažodis nešifruotas
    -LDAPFieldPasswordCrypted=Slaptažodis šifruotas
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Pavyzdys: userPassword
     LDAPFieldCommonNameExample=Pavyzdys: cn
     LDAPFieldName=Pavadinimas/vardas
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Pavyzdinės reikšmės yra skirtos <b>OpenLDAP</b> su šiomis įkeltomis schemomis: <b>core.schema, cosine.schema, inetorgperson.schema</b>). Jei naudojate tas reikšmes ir OpenLDAP, pakeiskite Jūsų LDAP konfigūracijos failą <b>slapd.conf</b> kad būtų visos šios schemos įkeltos.
     ForANonAnonymousAccess=Prieigai su patvirtinimu (pvz.: su įrašymo galimybe)
     PerfDolibarr=Charakteristikos nustatymo/optimizavimo ataskaita
    -YouMayFindPerfAdviceHere=Šiame puslapyje rasite kelis patikrinimus ar patarimus, susijusius su charakteristikomis.
    -NotInstalled=Nėra įdiegtas, todėl Jūsų serverio šitas neapkrauna ir nelėtina.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Taikomoji sparčioji tarpinė atmintis
     MemcachedNotAvailable=Taikomosios sparčiosios tarpinės atminties nerasta. Jūs galite padidinti efektyvumą įdiegdami atminties serverį Memcached ir įgalindami modulį naudoti šį atminties serverį.<br>Daugiau informacijos rasite čia <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Atkreipkite dėmesį, kad daugumas interneto talpinimo paslaugų teikėjų neteikia šitokių atminties serverių.
     MemcachedModuleAvailableButNotSetup=Modulis memcached taikomąjai atmintinei (cache) rastas, bet modulio nustatymai nėra baigti.
     MemcachedAvailableAndSetup=Modulis memcached, skirti naudoti memcached server yra įjungtas.
     OPCodeCache=OPCode sparčioji tarpinė atmintis (cache)
    -NoOPCodeCacheFound=OPCode sparčioji tarpinė atmintis nerasta. Galbūt, Jūs naudojate kitą OPCode atmintį nei XCache ar eAccelerator (gerai), o galbūt, Jūs neturite OPCode atminties (labai blogai).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP sparčioji tarpinė atmintis statiniams ištekliams (css, img, javascript)
     FilesOfTypeCached=%s tipo failai yra laikomi HTTP serverio tarpinėje sparčiojoje atmintyje
     FilesOfTypeNotCached=%s tipo failais nėra laikomi HTTP serverio tarpinėje sparčiojoje atmintyje
     FilesOfTypeCompressed=%s tipo failai yra suspausti HTTP serveryje
     FilesOfTypeNotCompressed=%s tipo failai nėra suspausti HTTP serveryje
     CacheByServer=Laikoma serverio atmintyje
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Laikoma naršyklės atmintyje
     CompressionOfResources=HTTP atsakymų suspaudimas
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Toks automatinis aptikimas negalimas su naudojama naršykle
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Produktų modulio nuostatos
     ServiceSetup=Paslaugų modulio nuostatos
     ProductServiceSetup=Produktų ir paslaugų modulių nuostatos
     NumberOfProductShowInSelect=Maksimalus produktų skaičius grupiniuose pasirinkimo sąrašuose (0=neribojama)
    -ViewProductDescInFormAbility=Produktų aprašymų vizualizavimas formose (kitu būdu per "iššokantį" langą)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Brūkšninio kodo tipas produktams pagal nutylėjimą
     SetDefaultBarcodeTypeThirdParties=Brūkšninio kodo tipas trečiosioms šalims pagal nutylėjimą
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Siuntimo modulio nuostatos
     SendingsReceiptModel=Įplaukų siuntimo modelis
     SendingsNumberingModules=Siuntinių numeravimo modulis
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Laisvas tekstas siuntų dokumentuose
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Produktų pristatymo kvitų numeravimo modulis
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Išplėstinis redaktorius
     ActivateFCKeditor=Įjungti išplėstinį redaktorių:
     FCKeditorForCompany=Elementų aprašymo ir pastabų WYSIWIG kūrimas/redagavimas (išskyrus produktus/paslaugas)
     FCKeditorForProduct=Produktų/paslaugų aprašymų ir pastabų WYSIWIG kūrimas/redagavimas
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG kūrimas/redagavimas masiniams e-laiškams (Tools-> eMailing)
     FCKeditorForUserSignature=Vartotojo parašo WYSIWIG kūrimas/redagavimas
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Sujungimas pavyko, bet duomenų bazė neatrodo esanti OSCommerce duomenų baze (Key%s nerastas table%s).
    -OSCommerceTestOk=Prisijungimas prie serverio '%s' duomenų bazėje "%s" su vartotoju '%s' sėkmingas.
    -OSCommerceTestKo1=Prisijungimas prie serverio '%s' pavyko, bet duomenų bazė "%s" nepasiekiama.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Prisijungimas prie serverio '%s' su vartotoju '%s' nepavyko.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Meniu ištrintas
     Menus=Meniu
    @@ -1548,7 +1562,7 @@ DetailRight=Sąlyga parodyti neleidžiamus pilkus meniu punktus
     DetailLangs=Lang failo pavadinimas etiketės kodo vertimui
     DetailUser=Vidinis / Išorinis / Visi
     Target=Duomenų adresatas
    -DetailTarget=Ryšių užduotis (_tuščias viršus atidaro naują langą)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Lygis (-1:viršutinis meniu, 0:antraštės meniu, >0 meniu ir submeniu)
     ModifMenu=Meniu keitimas
     DeleteMenu=Ištrinti meniu įrašą
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=PVM atsiranda:<br>- prekėms - nuo pristatymo (mes naudojam
     OptionVatDebitOptionDesc=PVM atsiranda: <br> - prekėms - nuo pristatymo (mes naudojame sąskaito-faktūros datą) <br> - paslaugoms - nuo sąskaitos-fakrtūros datos
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Laikas PVM išieškojimui pagal nutylėjimą pagal pasirinktą variantą:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Pristatymo metu
     OnPayment=Apmokėjimo metu
     OnInvoice=Sąskaitos-faktūros pateikimo metu
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Pirkimo sąskaita. Kodas
     AgendaSetup=Įvykių ir operacijų modulio nustatymas
     PasswordTogetVCalExport=Eksporto sąsajos leidimo mygtukas
     PastDelayVCalExport=Neeksportuoti įvykių senesnių nei
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Nustatyti automatiškai šio įvykio tipą paieškos filtrui darbotvarkėje
    -AGENDA_DEFAULT_FILTER_STATUS=Nustatyti automatiškai šio įvykio būklę paieškos filtrui darbotvarkėje
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Kurią kortelę norite atidaryti pagal nutylėjimą renkantis meniu Darbotvarkė
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial modulio nuostatos
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Pardavimų taškas
     CashDeskSetup=Pardavimų taško modulio nustatymas
    -CashDeskThirdPartyForSell=Bendras pagal nutylėjimą trečiajai šaliai naudoti pardavimams
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Sąskaita grynųjų pinigų įmokoms pagal nutylėjimą
     CashDeskBankAccountForCheque= Sąskaita čekių įmokoms pagal nutylėjimą
     CashDeskBankAccountForCB= Sąskaita įmokoms kreditinėmis kortelėmis pagal nutylėjimą
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Sulaikyti ir apriboti sandėlio naudojimą atsargų sumažėjimui
    -StockDecreaseForPointOfSaleDisabled=Atsargų sumažėjimas Pardavimo taške (Point of Sale) išjungtas
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Atsargų sumažėjimas POS nesuderinamas su partijos valdymu
    -CashDeskYouDidNotDisableStockDecease=Jūs neišjungiate atsargų sumažėjimo parduodami Pardavimo taške (Point of Sale). Taigi reikalingas sandėlis.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Žymeklių modulio nustatymas
    -BookmarkDesc=Šis modulis leidžia valdyti žymeklius. Taip pat galite pridėti trumpąsias nuorodas į bet kurį Dolibarr puslapį ar išorinį web tinklalapį Jūsų kairiajame meniu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maksimalus žymeklių skaičius rodomas kairiajame meniu
     ##### WebServices #####
     WebServicesSetup=Webservices modulio nustatymas
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-įmonės modulio nustatymas
     ##### Suppliers #####
     SuppliersSetup=Tiekėjo modulio nustatymas
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Tiekėjo sąskaitų-faktūrų numeracijos modeliai
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Projekto modulio nustatymas
     ProjectsModelModule=Projekto ataskaitų dokumento modelis
     TasksNumberingModules=Užduočių numeracijos modulis
     TaskModelModule=Užduočių ataskaitų dokumento modelis
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=Fiksuotų pranešimų sąrašas
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Slenkstis
     BackupDumpWizard=Duomenų bazės atsarginės kopijos failo kūrimo vedlys
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=Nustatyti TimeZone
    @@ -1731,7 +1746,7 @@ CurrentChecksum=Current Checksum
     ForcedConstants=Required constant values
     MailToSendProposal=Customer proposals
     MailToSendOrder=Customer orders
    -MailToSendInvoice=Customer invoices
    +MailToSendInvoice=Klientų sąskaitos faktūros
     MailToSendShipment=Pakrovimai
     MailToSendIntervention=Intervencijos
     MailToSendSupplierRequestForQuotation=Quotation request
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Pašto kodas
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/lt_LT/banks.lang b/htdocs/langs/lt_LT/banks.lang
    index 7cf423a63f8..a7e11ea50d9 100644
    --- a/htdocs/langs/lt_LT/banks.lang
    +++ b/htdocs/langs/lt_LT/banks.lang
    @@ -7,7 +7,7 @@ BankName=Banko pavadinimas
     FinancialAccount=Sąskaita
     BankAccount=Banko sąskaita
     BankAccounts=Banko sąskaitos
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Rodyti sąskaitą
     AccountRef=Finansinės sąskaitos nuoroda
     AccountLabel=Finansinės sąskaitos etiketė
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Sąskaitos adresas
     BankAccountCountry=Sąskaitos šalis
     BankAccountOwner=Sąskaitos savininko vardas/pavadinimas
     BankAccountOwnerAddress=Sąskaitos savininko adresas
    -RIBControlError=Verčių integralumo patikrinimas nepavyksta. Tai reiškia, kad informacija apie šitos sąskaitos numerį yra nepilna arba klaidinga (patikrinkite šalį, numerius ir IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Sukurti sąskaitą
     NewBankAccount=Naujas sąskaita
     NewFinancialAccount=Nauja finansinė sąskaita
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Gali būti suderintos
     Conciliate=Suderinti
     Conciliation=Suderinimas
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Įtraukti uždarytas sąskaitas
     OnlyOpenedAccount=Tik atidarytos sąskaitos
    @@ -104,7 +105,7 @@ SocialContributionPayment=Socialinio / fiskalinio mokesčio mokėjimas
     BankTransfer=Banko pervedimas
     BankTransfers=Banko pervedimai
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Iš
     TransferTo=Į
     TransferFromToDone=Pervedimas <b>%s</b> iš <b>%s</b> į <b>%s</b> užregistruotas.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Banko čekiai
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Rodyti čekio depozito kvitą
    -NumberOfCheques=Čekio numeris
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Atgal į sąskaitą
     ShowAllAccounts=Rodyti visas sąskaitas
    -FutureTransaction=Operacija ateityje. Negalima taikyti
    -SelectChequeTransactionAndGenerate=Pasirinkti/filtruoti čekius, kad įtraukti į čekio depozito kvitą ir paspausti mygtuką "Sukurti".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Pasirinkti banko ataskaitą, susijusią su taikymu. Naudokite rūšiuojamą skaitmeninę reikšmę: YYYYMM arba YYYYMMDD
     EventualyAddCategory=Nurodyti kategoriją, kurioje klasifikuoti įrašus
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Čekio grąžinimo data
     CheckRejected=Čekis grąžintas
     CheckRejectedAndInvoicesReopened=Čekis grąžintas ir sąskaita iš naujo atidaryta
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/lt_LT/bills.lang b/htdocs/langs/lt_LT/bills.lang
    index 939eec69de2..a72ebfce395 100644
    --- a/htdocs/langs/lt_LT/bills.lang
    +++ b/htdocs/langs/lt_LT/bills.lang
    @@ -1,37 +1,37 @@
     # Dolibarr language file - Source file is en_US - bills
    -Bill=Sąskaita-faktūra
    +Bill=PVM Sąskaita-faktūra
     Bills=Sąskaitos-faktūros
    -BillsCustomers=Customer invoices
    +BillsCustomers=Klientų sąskaitos faktūros
     BillsCustomer=Kliento sąskaita-faktūra
    -BillsSuppliers=Supplier invoices
    +BillsSuppliers=Tiekėjo sąskaitos faktūros
     BillsCustomersUnpaid=Neapmokėtos kliento sąskaitos
    -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s
    +BillsCustomersUnpaidForCompany=Nesumokėtos kliento sąskaitos už %s
     BillsSuppliersUnpaid=Neapmokėtos tiekėjo sąskaitos
    -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s
    +BillsSuppliersUnpaidForCompany=Neapmokamos tiekėjo sąskaitos už %s
     BillsLate=Pavėluoti mokėjimai
    -BillsStatistics=Customers invoices statistics
    -BillsStatisticsSuppliers=Suppliers invoices statistics
    -DisabledBecauseDispatchedInBookkeeping=Disabled because invoice was dispatched into bookkeeping
    -DisabledBecauseNotLastInvoice=Disabled because invoice is not erasable. Some invoices were recorded after this one and it will create holes in the counter.
    -DisabledBecauseNotErasable=Disabled because cannot be erased
    +BillsStatistics=Klientų sąskaitų faktūrų statistika
    +BillsStatisticsSuppliers=Tiekėjų sąskaitų faktūrų statistika
    +DisabledBecauseDispatchedInBookkeeping=Išjungta, nes sąskaita faktūra buvo išsiųsta į apskaitą
    +DisabledBecauseNotLastInvoice=Neleidžiama, nes sąskaita faktūra nėra ištrinama. Kai kurios sąskaitos faktūros buvo užfiksuotos po tokio veiksmo, kai jos sukurs skyles skaitiklyje.
    +DisabledBecauseNotErasable=Neleidžiama, nes negalima ištrinti
     InvoiceStandard=Standartinė sąskaita-faktūra
     InvoiceStandardAsk=Standartinė sąskaita-faktūra
     InvoiceStandardDesc=Šio tipo sąskaita-faktūra yra bendra sąskaita-faktūra.
    -InvoiceDeposit=Down payment invoice
    -InvoiceDepositAsk=Down payment invoice
    -InvoiceDepositDesc=This kind of invoice is done when a down payment has been received.
    +InvoiceDeposit=Išankstinio apmokėjimo sąskaita
    +InvoiceDepositAsk=Išankstinio apmokėjimo sąskaita
    +InvoiceDepositDesc=Ši sąskaitos faktūra yra atlikta, kai gaunamas apmokėjimas.
     InvoiceProForma=Išankstinė (proforma) sąskaita-faktūra
     InvoiceProFormaAsk=išankstinė (proforma) sąskaita-faktūra
     InvoiceProFormaDesc=<b>Išankstinė sąskaita-faktūra</b> yra tikros sąskaitos forma, bet neatvaizduojama realioje apskaitoje.
     InvoiceReplacement=Sąskaitos-faktūros pakeitimas
     InvoiceReplacementAsk=Sąskaitos-faktūros pakeitimas sąskaita-faktūra
    -InvoiceReplacementDesc=<b>Sąskaitos-faktūros pakeitimas</b> naudojamas atšaukti ir visiškai pakeisti gautą ir neapmokėtą sąskaitą-faktūrą.<br><br> Pastaba: Tik neapmokėtos sąskaitos-faktūros gali būti pakeičiamos. Jei sąskaita-faktūra, kurią keičiate, dar nėra uždaryta, ji bus automatiškai uždaryta ir pažymėta kaip  "neįvykusi".
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Kreditinė sąskaita (kredito aviza)
     InvoiceAvoirAsk=Kreditinė sąskaita tikslinanti sąskaitą-faktūrą
    -InvoiceAvoirDesc=<b>Kreditinė sąskaita</b> yra neigiama sąskaita-faktūra, naudojama išspręsti faktui, kai sąskaitos-faktūros suma realiai skiriasi nuo sumokėtos sumos (nes klientas per klaidą sumokėjo per daug, ar ​​nesumokėjo pilnai, nes grąžino dalį produktų).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Sukurti kreditinę sąskaitą su eilutėmis iš originalios sąskaitos-faktūros
    -invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
    -invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    +invoiceAvoirWithPaymentRestAmount=Sukurkite kreditinę sąskaitą su neapmokėtu sąskaitos faktūros likučiu
    +invoiceAvoirLineWithPaymentRestAmount=Kreditinė sąskaita likusiai nesumokėtai sumai
     ReplaceInvoice=Pakeisti sąskaitą %s
     ReplacementInvoice=Sąskaitos-faktūros pakeitimas
     ReplacedByInvoice=Pakeistas sąskaita %s
    @@ -43,11 +43,11 @@ ConsumedBy=Suvartota
     NotConsumed=Nesuvartota
     NoReplacableInvoice=Nėra keičiamų sąskaitų-faktūrų
     NoInvoiceToCorrect=Nėra koreguojamų sąskaitų-faktūrų
    -InvoiceHasAvoir=Was source of one or several credit notes
    +InvoiceHasAvoir=Buvo šaltinis vienai ar kelioms kreditinėms sąskaitoms
     CardBill=Sąskaitos-faktūros kortelė
     PredefinedInvoices=Iš anksto apibrėžtos sąskaitos-faktūros
    -Invoice=Sąskaita-faktūra
    -PdfInvoiceTitle=Sąskaita-faktūra
    +Invoice=PVM Sąskaita-faktūra
    +PdfInvoiceTitle=PVM Sąskaita-faktūra
     Invoices=Sąskaitos-faktūros
     InvoiceLine=Sąskaitos-faktūros linija
     InvoiceCustomer=Kliento sąskaita-faktūra
    @@ -65,13 +65,13 @@ PaymentsBack=Mokėjimai atgal (grąžinimai)
     paymentInInvoiceCurrency=in invoices currency
     PaidBack=Sumokėta atgal (grąžinta)
     DeletePayment=Ištrinti mokėjimą
    -ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmDeletePayment=Ar tikrai norite ištrinti šį mokėjimą?
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Tiekėjų mokėjimai
     ReceivedPayments=Gauti mokėjimai
     ReceivedCustomersPayments=Iš klientų gauti mokėjimai
    -PayedSuppliersPayments=Mokėjimai sumokėti tiekėjams
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Gauti klientų mokėjimai tikrinimui ir pripažinimui galiojančiais
     PaymentsReportsForYear=Mokėjimų ataskaitos %s
     PaymentsReports=Mokėjimų ataskaitos
    @@ -79,11 +79,11 @@ PaymentsAlreadyDone=Jau atlikti mokėjimai
     PaymentsBackAlreadyDone=Jau atlikti mokėjimai atgal (grąžinimai)
     PaymentRule=Mokėjimo taisyklė
     PaymentMode=Mokėjimo būdas
    -PaymentTypeDC=Debit/Credit Card
    +PaymentTypeDC=Debetinė / Kreditinė kortelė
     PaymentTypePP=PayPal
    -IdPaymentMode=Payment type (id)
    -CodePaymentMode=Payment type (code)
    -LabelPaymentMode=Payment type (label)
    +IdPaymentMode=Mokėjimo tipas (id)
    +CodePaymentMode=Mokėjimo tipas (kodas)
    +LabelPaymentMode=Mokėjimo tipas (etiketė)
     PaymentModeShort=Mokėjimo būdas
     PaymentTerm=Mokėjimo terminas
     PaymentConditions=Apmokėjimo terminai
    @@ -91,68 +91,69 @@ PaymentConditionsShort=Apmokėjimo terminai
     PaymentAmount=Mokėjimo suma
     ValidatePayment=Mokėjimą pripažinti galiojančiu
     PaymentHigherThanReminderToPay=Mokėjimas svarbesnis už priminimą sumokėti
    -HelpPaymentHigherThanReminderToPay=Dėmesio, vienos ar kelių sąskaitų mokėjimo suma yra didesnė nei reikalingas sumokėti likutis.<br> Redaguokite įvedimą, arba patvirtinkite ir galvokite apie kreditinės sąskaitos kūrimą gautam perviršiui nuo kiekvienos permokėtos sąskaitos.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Priskirti 'Apmokėtos'
     ClassifyPaidPartially=Priskirti 'Dalinai apmokėtos'
     ClassifyCanceled=Priskirti 'Neįvykusios'
     ClassifyClosed=Priskirti 'Uždarytos'
    -ClassifyUnBilled=Classify 'Unbilled'
    +ClassifyUnBilled=Klasifikuoti "Neapmokėtos"
     CreateBill=Sukurti sąskaitą-faktūrą
     CreateCreditNote=Sukurti kreditinę sąskaitą
    -AddBill=Create invoice or credit note
    +AddBill=Sukurti sąskaitą arba kreditinę sąskaitą
     AddToDraftInvoices=Pridėti į projektinę sąskaitą-faktūrą
     DeleteBill=Ištrinti sąskaitą-faktūrą
     SearchACustomerInvoice=Ieškoti kliento sąskaitos-faktūros
     SearchASupplierInvoice=Ieškoti tiekėjo sąskaitos-faktūros
     CancelBill=Atšaukti sąskaitą-faktūrą
     SendRemindByMail=Siųsti priminimą e-paštu
    -DoPayment=Enter payment
    -DoPaymentBack=Enter refund
    -ConvertToReduc=Mark as credit available
    -ConvertExcessReceivedToReduc=Convert excess received into available credit
    -ConvertExcessPaidToReduc=Convert excess paid into available discount
    +DoPayment=Įveskite mokėjimą
    +DoPaymentBack=Įveskite grąžinimą
    +ConvertToReduc=Pažymėti kaip kreditą
    +ConvertExcessReceivedToReduc=Konvertuoti gautą perviršį į turimą kreditą
    +ConvertExcessPaidToReduc=Perskaičiuoti permokėtą sumą į turimą nuolaidą
     EnterPaymentReceivedFromCustomer=Įveskite gautą iš kliento mokėjimą
     EnterPaymentDueToCustomer=Atlikti mokėjimą klientui
    -DisabledBecauseRemainderToPayIsZero=Disabled because remaining unpaid is zero
    +DisabledBecauseRemainderToPayIsZero=Neleidžiama, nes neapmokėtas likutis yra nulinis
     PriceBase=Kainos bazė
     BillStatus=Sąskaitos-faktūros būklė
    -StatusOfGeneratedInvoices=Status of generated invoices
    +StatusOfGeneratedInvoices=Sugeneruotų sąskaitų faktūrų būsena
     BillStatusDraft=Projektas (turi būti pripažintas galiojančiu)
     BillStatusPaid=Apmokėtas
    -BillStatusPaidBackOrConverted=Credit note refund or marked as credit available
    -BillStatusConverted=Paid (ready for consumption in final invoice)
    +BillStatusPaidBackOrConverted=Kreditinės sąskaitos lėšų grąžinimas arba pažymėtas kaip kreditas
    +BillStatusConverted=Sumokėta (paruošta naudoti galutinėje sąskaitoje faktūroje)
     BillStatusCanceled=Neįvykęs
     BillStatusValidated=Pripažintas galiojančiu (turi būti apmokėtas)
     BillStatusStarted=Pradėtas
     BillStatusNotPaid=Neapmokėta
    -BillStatusNotRefunded=Not refunded
    +BillStatusNotRefunded=Negrąžinamas
     BillStatusClosedUnpaid=Uždaryta (neapmokėta)
     BillStatusClosedPaidPartially=Dalinai apmokėta
     BillShortStatusDraft=Projektas
     BillShortStatusPaid=Apmokėta
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Apmokėtas
     BillShortStatusCanceled=Neįvykusi
     BillShortStatusValidated=Pripažinta galiojančia
     BillShortStatusStarted=Pradėta
     BillShortStatusNotPaid=Neapmokėta
    -BillShortStatusNotRefunded=Not refunded
    +BillShortStatusNotRefunded=Negrąžintas
     BillShortStatusClosedUnpaid=Uždaryta
     BillShortStatusClosedPaidPartially=Dalinai apmokėta
     PaymentStatusToValidShort=Pripažinti galiojančia
    -ErrorVATIntraNotConfigured=Vidinis PVM numeris nėra apibrėžtas
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Mokėjimo būdas pagal nutylėjimą nėra apibrėžtas. Eiti į Sąskaitų-faktūrų modulio nustatymus išspręsti šią problemą.
     ErrorCreateBankAccount=Sukurti banko sąskaitą, tada eiti į Nustatymų meniu Sąskaitų-faktūrų modulį ir apibrėžti mokėjimo būdus
     ErrorBillNotFound=Sąskaita-faktūra %s neegzistuoja
    -ErrorInvoiceAlreadyReplaced=Klaida, Jūs bandote pripažinti galiojančia sąskaitą-faktūrą ir ja pakeisti sąskaitą-faktūrą %s. Bet ši jau anksčiau buvo pakeista sąskaita-faktūra: %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Klaida, nuolaida jau panaudota
     ErrorInvoiceAvoirMustBeNegative=Klaida, teisinga sąskaita-faktūra turi turėti neigiamą sumą
     ErrorInvoiceOfThisTypeMustBePositive=Klaida, šis sąskaitos-faktūros tipas turi turėti teigiamą sumą
     ErrorCantCancelIfReplacementInvoiceNotValidated=Klaida negalima atšaukti sąskaitos-faktūros, kuri buvo pakeista kita sąskaita-faktūra, kuri vis dar yra projektinėje būklėje
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    -BillFrom=Iš
    -BillTo=Į
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
    +BillFrom=Pardavėjas
    +BillTo=Pirkėjas
     ActionsOnBill=Veiksmai sąskaitoje-faktūroje
     RecurringInvoiceTemplate=Template / Recurring invoice
     NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified for generation.
    @@ -173,26 +174,26 @@ CustomersDraftInvoices=Customer draft invoices
     SuppliersDraftInvoices=Supplier draft invoices
     Unpaid=Neapmokėta
     ConfirmDeleteBill=Are you sure you want to delete this invoice?
    -ConfirmValidateBill=Are you sure you want to validate this invoice with reference <b>%s</b>?
    +ConfirmValidateBill=Ar tikrai norite patvirtinti šią sąskaitą su nuoroda <b> %s </ b>?
     ConfirmUnvalidateBill=Are you sure you want to change invoice <b>%s</b> to draft status?
     ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to status paid?
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    -ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
    -ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyReasonDiscount=Nesumokėtas likutis <b> (%s %s) </ b> yra nuolaida, nes mokėjimas buvo atliktas prieš terminą.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Nesumokėtas likutis <b> (%s %s) </ b> yra nuolaida, nes mokėjimas buvo atliktas prieš terminą. Sutinku prarasti PVM su šia nuolaida.
    +ConfirmClassifyPaidPartiallyReasonDiscountVat=Nesumokėtas likutis <b> (%s %s) </ b> yra nuolaida, nes mokėjimas buvo atliktas prieš terminą. Aš susigrąžinu PVM su šia nuolaida be kreditinės sąskaitos.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Blogas klientas
     ConfirmClassifyPaidPartiallyReasonProductReturned=Produktų dalis grąžinta
     ConfirmClassifyPaidPartiallyReasonOther=Suma atsisakyta dėl kitų priežasčių
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Šis pasirinkimas yra įmanomas, jei jūsų sąskaita-faktūra buvo pateikta su tinkama pastaba. (Pvz.:"Tik mokesčiai, susiję su kaina, kuri buvo faktiškai sumokėta, suteikia teises į išskaitą")
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Kai kuriose šalyse, šis pasirinkimas galimas tik tada, jei jūsų sąskaita-faktūra turi tinkamą pastabą.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Naudokite šį pasirinkimą, jei visi kiti netinka
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Blogas klientas</b> yra klientas, kad atsisako apmokėti savo skolą.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Šis pasirinkimas yra naudojamas, kai mokėjimas neatliktas, nes kai kurie produktai buvo grąžinti
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Naudokite šį pasirinkimą, jei visi kiti netinka, pvz., šiais atvejais: <br>- Apmokėjimas neatliktas, nes kai kurie produktai buvo išsiųsti atgal<br>- Reikalaujama suma pernelyg svarbi, nes nuolaida buvo pamiršta <br>Visais atvejais per didelė reikalaujama suma turi būti ištaisyta apskaitos sistemoje sukuriant kreditinę sąskaitą.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Kita
     ConfirmClassifyAbandonReasonOtherDesc=Šis pasirinkimas bus naudojamas visais kitais atvejais. Pvz, kai jūs ketinate sukurti pakeičiančią sąskaitą-faktūrą.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Sąskaitą-faktūrą pripažinti galiojančia
     UnvalidateBill=Sąskaitą-faktūra pripažinti negaliojančia
    -NumberOfBills=Sąskaitų-faktūrų skaičius
    -NumberOfBillsByMonth=Sąskaitų-faktūrų skaičius pagal mėnesius
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Sąskaitų-faktūrų suma
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Sąskaitų-faktūrų suma pagal mėnesius (atskaičius mokesčius)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Rodyti sąskaitą-faktūrą
    @@ -214,14 +216,14 @@ ShowInvoiceSituation=Show situation invoice
     ShowPayment=Rodyti mokėjimą
     AlreadyPaid=Jau apmokėta
     AlreadyPaidBack=Mokėjimas jau grąžintas
    -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments)
    +AlreadyPaidNoCreditNotesNoDeposits=Jau sumokėta (be kreditinių sąskaitų ir pradinės įmokos)
     Abandoned=Neįvykusi
    -RemainderToPay=Remaining unpaid
    +RemainderToPay=Nesumokėtas likutis
     RemainderToTake=Remaining amount to take
     RemainderToPayBack=Remaining amount to refund
     Rest=Laukiantis
     AmountExpected=Reikalaujama suma
    -ExcessReceived=Gautas perviršis
    +ExcessReceived=Grąža
     ExcessPaid=Excess paid
     EscompteOffered=Siūloma nuolaida (mokėjimas prieš terminą)
     EscompteOfferedShort=Nuolaida
    @@ -240,7 +242,7 @@ SendReminderBillByMail=Siųsti priminimą e-paštu
     RelatedCommercialProposals=Susiję komerciniai pasiūlymai
     RelatedRecurringCustomerInvoices=Related recurring customer invoices
     MenuToValid=Įteisinti
    -DateMaxPayment=Payment due on
    +DateMaxPayment=Numatytas apmokėjimo terminas
     DateInvoice=Sąskaitos-faktūros data
     DatePointOfTax=Point of tax
     NoInvoice=Nėra sąskaitos-faktūros
    @@ -258,17 +260,17 @@ RepeatableInvoices=Template invoices
     Repeatable=Template
     Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
    -CreateRepeatableInvoice=Create template invoice
    -CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Klientų sąskaitos-faktūros ir sąskaitų-faktūrų serijos
    +CreateRepeatableInvoice=Sukurti sąskaitos faktūros šabloną
    +CreateFromRepeatableInvoice=Sukurkite sąskaitos faktūros pagal ruošinį
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Kliento sąskaitos-faktūros ir mokėjimai
    -ExportDataset_invoice_1=Kliento sąskaitų-faktūrų sąrašas ir sąskaitų-faktūros serijos
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Kliento sąskaitos-faktūros ir mokėjimai
     ProformaBill=Išankstinė sąskaita:
    -Reduction=Sumažinimas
    -ReductionShort=Mažinimo.
    -Reductions=Sumažinimai
    -ReductionsShort=Mažinimo.
    +Reduction=Nuolaida
    +ReductionShort=Nuol.
    +Reductions=Nuolaidos
    +ReductionsShort=Nuol.
     Discounts=Nuolaidos
     AddDiscount=Sukurti nuolaidą
     AddRelativeDiscount=Sukurti susijusią nuolaidą
    @@ -286,11 +288,11 @@ CreditNotesOrExcessReceived=Credit notes or excess received
     Deposit=Down payment
     Deposits=Down payments
     DiscountFromCreditNote=Nuolaida kreditinei sąskaitai %s
    -DiscountFromDeposit=Down payments from invoice %s
    +DiscountFromDeposit=Pradinis mokėjimas iš sąskaitos faktūros %s
     DiscountFromExcessReceived=Payments in excess of invoice %s
     DiscountFromExcessPaid=Payments in excess of invoice %s
     AbsoluteDiscountUse=Ši kredito rūšis gali būti naudojama sąskaitai-faktūrai prieš ją pripažįstant galiojančia
    -CreditNoteDepositUse=Invoice must be validated to use this kind of credits
    +CreditNoteDepositUse=Sąskaita faktūra turi būti patvirtinta, kad būtų galima naudoti šio tipo kreditus
     NewGlobalDiscount=Nauja absoliutinė nuolaida
     NewRelativeDiscount=Naujas susijusi nuolaida
     DiscountType=Discount type
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Sąskaitos adresas
    -HelpEscompte=Ši nuolaida yra nuolaida suteikiama klientui, nes jo mokėjimas buvo atliktas prieš terminą.
    -HelpAbandonBadCustomer=Šios sumos buvo atsisakyta (blogas klientas) ir ji yra laikoma išimtiniu nuostoliu.
    -HelpAbandonOther=Šios sumos buvo atsisakyta, nes tai buvo klaida (pvz.: neteisingas klientas arba sąskaita-faktūra buvo pakeista kita)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Mokėjimo ID
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Nėra pasirinktų sąskaitų-faktūrų
     CloneInvoice=Klonuoti sąskaitą-faktūrą
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Veiksmas išjungtas, nes sąskaita-faktūra buvo pakeista
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Mokėjimų numeriai
    +DescTaxAndDividendsArea=Ši sritis parodo visų specialioms išlaidoms atliktų mokėjimų sumą. Čia įtraukiami tik fiksuotų vienerių metų įrašai.
    +NbOfPayments=No. of payments
     SplitDiscount=Padalinti nuolaidą į dvi dalis
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Įveskite sumą kiekvienai iš dviejų dalių:
    -TotalOfTwoDiscountMustEqualsOriginal=Dviejų naujų nuolaidų suma turi būti lygi pradinei nuolaidai.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Susijusi sąskaita-faktūra
     RelatedBills=Susiję sąskaitos-faktūros
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -351,25 +353,25 @@ FrequencyPer_m=Every %s months
     FrequencyPer_y=Every %s years
     FrequencyUnit=Frequency unit
     toolTipFrequency=Examples:<br><b>Set 7, Day</b>: give a new invoice every 7 days<br><b>Set 3, Month</b>: give a new invoice every 3 month
    -NextDateToExecution=Date for next invoice generation
    -NextDateToExecutionShort=Date next gen.
    -DateLastGeneration=Date of latest generation
    -DateLastGenerationShort=Date latest gen.
    +NextDateToExecution=Kita sąskaitos faktūros sukūrimo data
    +NextDateToExecutionShort=Data kito gen.
    +DateLastGeneration=Vėliausio generavimo data
    +DateLastGenerationShort=Data vėliausio gen.
     MaxPeriodNumber=Max number of invoice generation
     NbOfGenerationDone=Number of invoice generation already done
     NbOfGenerationDoneShort=Number of generation done
     MaxGenerationReached=Maximum number of generations reached
    -InvoiceAutoValidate=Validate invoices automatically
    +InvoiceAutoValidate=Automatiškai patvirtinti sąskaitas faktūras
     GeneratedFromRecurringInvoice=Generated from template recurring invoice %s
    -DateIsNotEnough=Date not reached yet
    +DateIsNotEnough=Data dar neįvykdyta
     InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s
     WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date
     WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date
     ViewAvailableGlobalDiscounts=View available discounts
     # PaymentConditions
     Statut=Būklė
    -PaymentConditionShortRECEP=Due Upon Receipt
    -PaymentConditionRECEP=Due Upon Receipt
    +PaymentConditionShortRECEP=Išankstinis mokėjimas
    +PaymentConditionRECEP=Išankstinis mokėjimas
     PaymentConditionShort30D=30 dienų
     PaymentCondition30D=30 dienų
     PaymentConditionShort30DENDMONTH=30 days of month-end
    @@ -398,8 +400,8 @@ VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s'
     # PaymentType
     PaymentTypeVIR=Banko pervedimas
     PaymentTypeShortVIR=Banko pervedimas
    -PaymentTypePRE=Direct debit payment order
    -PaymentTypeShortPRE=Debit payment order
    +PaymentTypePRE=Tiesioginis mokėjimas į sąskaitą
    +PaymentTypeShortPRE=Išankstinis mokėjimo pavedimas
     PaymentTypeLIQ=Grynieji pinigai
     PaymentTypeShortLIQ=Grynieji pinigai
     PaymentTypeCB=Kreditinė kortelė
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Čekis
     PaymentTypeShortCHQ=Čekis
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=Tiesioginis mokėjimas (online)
    -PaymentTypeShortVAD=Tiesioginis mokėjimas (online)
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Projektas
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Banko duomenys
     BankCode=Banko kodas
    -DeskCode=Skyriaus kodas
    +DeskCode=Office code
     BankAccountNumber=Sąskaitos numeris
    -BankAccountNumberKey=Raktas
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN numeris
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT numeris
    @@ -431,8 +433,8 @@ ChequeOrTransferNumber=Čekio/Pervedimo N°
     ChequeBordereau=Check schedule
     ChequeMaker=Check/Transfer transmitter
     ChequeBank=Čekio bankas
    -CheckBank=Patikrinti
    -NetToBePaid=Grynasis mokėjimas
    +CheckBank=Čekis
    +NetToBePaid=Mokėjimas grynaisiais
     PhoneNumber=Tel
     FullPhoneNumber=Telefonas
     TeleFax=Faksas
    @@ -445,13 +447,13 @@ PaymentByTransferOnThisBankAccount=Apmokėjimas pavedimu į šią banko sąskait
     VATIsNotUsedForInvoice=* Netaikoma PVM art-293B iš CGI
     LawApplicationPart1=Taikant įstatymus 80,335 iš 12/05/80
     LawApplicationPart2=Prekės lieka nuosavybe
    -LawApplicationPart3=Pardavėjas, iki pilno išgryninimo iš
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=jų kaina.
     LimitedLiabilityCompanyCapital=SARL su Kapitalu
     UseLine=Taikyti
     UseDiscount=Taikyti nuolaidą
     UseCredit=Taikyti kreditą
    -UseCreditNoteInInvoicePayment=Sumažinti mokėjimo sumą su šiuo kreditu
    +UseCreditNoteInInvoicePayment=Sumažinkite mokėtiną sumą naudodami šį kreditą
     MenuChequeDeposits=Čekių depozitai
     MenuCheques=Čekiai
     MenuChequesReceipts=Čekių įplaukos
    @@ -463,32 +465,33 @@ Cheques=Čekiai
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Naudoti kliento kontaktinį adresą, o ne trečiosios šalies, kaip sąskaitų-faktūrų gavėjo, adresą
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Rodyti visas neapmokėtas sąskaitas-faktūras
     ShowUnpaidLateOnly=Rodyti tik vėluojančias neapmokėtas sąskaitas
     PaymentInvoiceRef=Mokėjimo sąskaita-faktūra %s
     ValidateInvoice=Sąskaitą-faktūrą pripažinti galiojančia
    -ValidateInvoices=Validate invoices
    +ValidateInvoices=Sąskaitas-faktūras pripažinti galiojančiomis
     Cash=Grynieji pinigai
     Reported=Uždelstas
     DisabledBecausePayments=Neįmanoma nuo tada, kai atsirado kai kurie mokėjimai
     CantRemovePaymentWithOneInvoicePaid=Negalima pašalinti mokėjimo, nuo tada kai čia yra bent viena sąskaita-faktūra priskirta apmokėtoms
     ExpectedToPay=Laukiamas mokėjimas
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Sumokėta šiuo mokėjimu
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Priskirtii "Apmokėta" visas pilnai grąžintas kreditines sąskaitas.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Visos sąskaitos-faktūros, neturinčios neapmokėto likučio bus automatiškai uždarytos ir perkeltos į "Apmokėta".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Mokėti
     ToMakePaymentBack=Grąžinti
     ListOfYourUnpaidInvoices=Sąrašas neapmokėtų sąskaitų-faktūrų
     NoteListOfYourUnpaidInvoices=Pastaba: Šis sąrašas rodo tik sąskaitas trečiosioms šalims, su kuriom Jūs susijęs kaip prekybos atstovas.
     RevenueStamp=Įplaukų rūšis
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Sąskaitos-faktūros PDF šablonas Crabe. Pilnas sąskaitos-faktūros šablonas (rekomenduojamas Šablonas)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Grąžinimo numeris formatu %syymm-nnnn standartinėms sąskaitoms-faktūroms ir %syymm-nnnn kreditinėms sąskaitoms, kur yy yra metai, mm mėnuo ir nnnn yra seka be pertrūkių ir be grįžimo į 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -530,10 +533,10 @@ PDFCrevetteSituationInvoiceTitle=Situation invoice
     PDFCrevetteSituationInvoiceLine=Situation N°%s : Inv. N°%s on %s
     TotalSituationInvoice=Total situation
     invoiceLineProgressError=Invoice line progress can't be greater than or equal to the next invoice line
    -updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
    +updatePriceNextInvoiceErrorUpdateline=Klaida: atnaujinkite kainą sąskaitos faktūros eilutėje: %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -541,8 +544,9 @@ BillCreated=%s bill(s) created
     StatusOfGeneratedDocuments=Status of document generation
     DoNotGenerateDoc=Do not generate document file
     AutogenerateDoc=Auto generate document file
    -AutoFillDateFrom=Set start date for service line with invoice date
    -AutoFillDateFromShort=Set start date
    -AutoFillDateTo=Set end date for service line with next invoice date
    -AutoFillDateToShort=Set end date
    +AutoFillDateFrom=Nustatykite paslaugų eilutės pradžios datą su sąskaitos faktūros data
    +AutoFillDateFromShort=Nustatykite pradžios datą
    +AutoFillDateTo=Nustatykite paslaugų eilutės pabaigos datą su kita sąskaitos faktūros data
    +AutoFillDateToShort=Nustatykite pabaigos datą
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/lt_LT/cashdesk.lang b/htdocs/langs/lt_LT/cashdesk.lang
    index f714455e7f2..a1b749d28fb 100644
    --- a/htdocs/langs/lt_LT/cashdesk.lang
    +++ b/htdocs/langs/lt_LT/cashdesk.lang
    @@ -12,23 +12,33 @@ CashDeskOn=apie
     CashDeskThirdParty=Trečioji šalis
     ShoppingCart=Prekių krepšelis
     NewSell=Naujas pardavimas
    -AddThisArticle=Pridėti šį straipsnį
    +AddThisArticle=Pridėti šią prekę
     RestartSelling=Eiti atgal į pardavimą
    -SellFinished=Sale complete
    -PrintTicket=Spausdinti bilietą
    -NoProductFound=Straipsnio nerasta
    +SellFinished=Pardavimas baigtas
    +PrintTicket=Spausdinti užsakymą
    +NoProductFound=Prekė nerasta
     ProductFound=Produktas rastas
    -NoArticle=Nėra straipsnio
    +NoArticle=Nėra prekės
     Identification=Identifikacija
    -Article=Straipsnis
    +Article=Prekė
     Difference=Skirtumas
    -TotalTicket=Visas bilietas
    +TotalTicket=Visas užsakymas
     NoVAT=Šiam pardavimui nėra PVM
    -Change=Gautas perviršis
    -BankToPay=Account for payment
    +Change=Grąža
    +BankToPay=Sąskaita apmokėjimui
     ShowCompany=Rodyti įmonę
     ShowStock=Rodyti sandėlį
     DeleteArticle=Spustelėkite pašalinti šį straipsnį
     FilterRefOrLabelOrBC=Paieška (Nuoroda/Etiketė)
    -UserNeedPermissionToEditStockToUsePos=Jūs prašote sumažinti atsargų kiekį sąskaitoje-faktūroje, todėl vartotojas, naudojantis POS turi turėti teisę redaguoti atsargas.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr įplaukų kvitų spausdintuvas
    +PointOfSale=Pardavimo punktas
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/lt_LT/commercial.lang b/htdocs/langs/lt_LT/commercial.lang
    index 9147927dfca..ca02f9e639a 100644
    --- a/htdocs/langs/lt_LT/commercial.lang
    +++ b/htdocs/langs/lt_LT/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefono skambutis
     ActionAC_FAX=Siųsti faksu
     ActionAC_PROP=Siųsti pasiūlymą paštu
     ActionAC_EMAIL=Siųsti e-laišką
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Susitikimai
     ActionAC_INT=Intervencija tinklapyje
     ActionAC_FAC=Siųsti kliento sąskaitą-faktūrą paštu
    @@ -72,8 +73,8 @@ StatusProsp=Plano būklė
     DraftPropals=Komercinių pasiūlymų projektai
     NoLimit=Be apribojimų
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/lt_LT/companies.lang b/htdocs/langs/lt_LT/companies.lang
    index 3859d7b410b..fc35fa66904 100644
    --- a/htdocs/langs/lt_LT/companies.lang
    +++ b/htdocs/langs/lt_LT/companies.lang
    @@ -5,16 +5,16 @@ SelectThirdParty=Pasirinkite trečiają šalį
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Ištrinti adresatą/adresą
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=Nauja trečioji šalis
    -MenuNewCustomer=Naujas klientas
    -MenuNewProspect=Naujas planas
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Naujas privatus asmuo
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    -CreateDolibarrThirdPartySupplier=Create a third party (vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
    +CreateDolibarrThirdPartySupplier=Sukurkite trečią šalį (pardavėją)
     CreateThirdPartyOnly=Sukurti trečią šalį
    -CreateThirdPartyAndContact=Create a third party + a child contact
    +CreateThirdPartyAndContact=Sukurti trečią šalį + kontaktas
     ProspectionArea=Numatoma sritis
     IdThirdParty=Trečiosios šalies ID
     IdCompany=Įmonės ID
    @@ -25,22 +25,22 @@ ThirdPartyContact=Trečiosios šalies kontaktas/adresas
     Company=Įmonė
     CompanyName=Įmonės pavadinimas
     AliasNames=Pseudonimo pavadinimas (komercinis, prekės ženklas, ...)
    -AliasNameShort=Pseudonimas
    +AliasNameShort=Alias Name
     Companies=Įmonės
    -CountryIsInEEC=Šalis yra Europos Ekonominėje Bendrijoje
    -ThirdPartyName=Trečiosios šalies pavadinimas
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Trečioji šalis
    -ThirdParties=Trečiosios šalys
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Planai
     ThirdPartyProspectsStats=Planai
     ThirdPartyCustomers=Klientai
     ThirdPartyCustomersStats=Klientai
     ThirdPartyCustomersWithIdProf12=Klientai su %s arba %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Trečioji šalis tipas
    +ThirdPartyType=Type of company
     Individual=Privatus asmuo
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Motininė įmonė
     Subsidiaries=Dukterinės įmonės
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Pašto kodas
     Town=Miestas
     Web=WEB
     Poste= Pozicija
    -DefaultLang=Kalba pagal nutylėjimą
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    -VATIsNotUsed=Sales tax is not used
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
    +VATIsNotUsed=PVM nenaudojamas
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Pasiūlymai
    @@ -104,7 +104,7 @@ CustomerCodeModel=Kliento kodo modelis
     SupplierCodeModel=Vendor code model
     Gencod=Brūkšninis kodas
     ##### Professional ID #####
    -ProfId1Short=Prof ID 1
    +ProfId1Short=Juridinis kodas
     ProfId2Short=Prof ID 2
     ProfId3Short=Prof ID 3
     ProfId4Short=Prof ID 4
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Sintaksė galioja
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Šis klientas turi nuolaidą pagal nutylėjimą <b>%s
     CompanyHasNoRelativeDiscount=Šis klientas neturi santykinės nuolaidos pagal nutylėjimą
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Šis klientas dar turi kreditinių sąskaitų <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Nė vienas
    -Supplier=Tiekėjas
    +Supplier=Vendor
     AddContact=Sukurti kontaktą
     AddContactAddress=Sukurti kontaktą / adresą
     EditContact=Redaguoti adresatą
    @@ -303,22 +303,22 @@ AddThirdParty=Sukurti trečią šalį
     DeleteACompany=Ištrinti įmonę
     PersonalInformations=Asmeniniai duomenys
     AccountancyCode=Apskaitos sąskaita
    -CustomerCode=Kliento kodas
    -SupplierCode=Vendor code
    -CustomerCodeShort=Kliento kodas
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Kliento kodas, unikalus kiekvienam klientui
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Būtina, jei trečioji šalis yra klientas arba kandidatas
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Galiojimas kontroliuojamas modulio
    -ThisIsModuleRules=Šio modulio taisyklės
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Numatomas klientas susisiekti
     CompanyDeleted=Įmonė "%s" ištrinta iš duomenų bazės.
     ListOfContacts=Kontaktų/adresų sąrašas
     ListOfContactsAddresses=Kontaktų/adresų sąrašas
    -ListOfThirdParties=Trečiųjų šalių sąrašas
    -ShowCompany=Show third party
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Rodyti kontaktus
     ContactsAllShort=Visi (nėra filtro)
     ContactType=Kontakto tipas
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Šis kontaktas nėra kontaktas bet kuriam komerciniam pa
     NoContactForAnyContract=Šis kontaktas nėra kontaktas bet kuriai sutarčiai
     NoContactForAnyInvoice=Šis kontaktas nėra kontaktas bet kuriai sąskaitai-faktūrai
     NewContact=Naujas kontaktas
    -NewContactAddress=Naujas kontaktas/adresas
    +NewContactAddress=New Contact/Address
     MyContacts=Mano kontaktai
     Capital=Kapitalas
     CapitalOf=Kapitalas %s
     EditCompany=Redaguoti įmonę
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Patikrinti
    -VATIntraCheckDesc=Nuoroda <b>%s</b> leidžia paklausti Europos PVM tikrinimo paslaugas. Išorinė interneto prieiga iš serverio yra būtina.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Patikrinkite PVM Europos komisijos svetainėje
    -VATIntraManualCheck=Taip pat galite patikrinti rankiniu būdu Europos interneto svetainėje <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Tikrinimas negalimas. Tikrinimo paslauga nėra teikiama valstybės narės (%s).
    -NorProspectNorCustomer=Nei klientas, nei numatomas klientas
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Personalas
     ProspectLevelShort=Potencialas
     ProspectLevel=Numatomų klientų potencialas
    @@ -387,12 +387,12 @@ ExportCardToFormat=Formuoti eksporto kortelę
     ContactNotLinkedToCompany=Kontaktas nėra susijęs su jokia trečiąja šalimi
     DolibarrLogin=Dolibarr prisijungimas
     NoDolibarrAccess=Nėra Dolibarr prieigos
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Kontaktai ir rekvizitai
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Kainos lygis
     DeliveryAddress=Pristatymo adresas
     AddAddress=Pridėti adresą
    @@ -402,16 +402,16 @@ DeleteFile=Ištrinti failą
     ConfirmDeleteFile=Ar tikrai norite ištrinti šį failą ?
     AllocateCommercial=Assigned to sales representative
     Organization=Organizacija
    -FiscalYearInformation=Informacija apie finansinius metus
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Finansinių metų pirmas mėnuo
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Numatomų klientų sąrašas
    -ListCustomersShort=Klientų sąrašas
    -ThirdPartiesArea=Trečių šalių ir kontaktų sritis
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Viso unikalių trečiųjų šalių
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Atidaryta
     ActivityCeased=Uždarytas
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Dabartinė neapmokėta sąskaita-faktūra
     OutstandingBill=Neapmokėtų sąskaitų-faktūrų maksimumas
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Kodas yra nemokamas. Šis kodas gali būti modifikuotas bet kada.
     ManagingDirectors=Vadovo (-ų) pareigos (Vykdantysis direktorius (CEO), direktorius, prezidentas ...)
     MergeOriginThirdparty=Dubliuoti trečiąją šalį (trečiąją šalį, kurią norite ištrinti)
     MergeThirdparties=Sujungti trečiąsias šalis
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/lt_LT/dict.lang b/htdocs/langs/lt_LT/dict.lang
    index feace182fd5..36dd7c76ac9 100644
    --- a/htdocs/langs/lt_LT/dict.lang
    +++ b/htdocs/langs/lt_LT/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Herdo ir Makdonaldo
     CountryVA=Šventasis Sostas (Vatikano Miesto Valstybė)
     CountryHN=Hondūras
     CountryHK=Honkongas
    -CountryIS=Islandija
    +CountryIS=Iceland
     CountryIN=Indija
     CountryID=Indonezija
     CountryIR=Iranas
    @@ -131,7 +131,7 @@ CountryKI=Kiribatis
     CountryKP=Šiaurės Korėja
     CountryKR=Pietų Korėja
     CountryKW=Kuveitas
    -CountryKG=Kirgizija
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvija
     CountryLB=Libanas
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolija
     CountryMS=Monseratas
     CountryMZ=Mozambikas
    -CountryMM=Birma (Mianmaras)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibija
     CountryNR=Nauru
     CountryNP=Nepalas
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidadas ir Tobagas
     CountryTR=Turkija
     CountryTM=Turkmėnistanas
    -CountryTC=Terkso ir Cailos salos
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariaris
     CurrencyMUR=Mauricijaus rupijų
     CurrencySingMUR=Mauricijaus rupija
     CurrencyNOK=Norvegijos kronų
    -CurrencySingNOK=Norvegijos krona
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tuniso dinaras
     CurrencySingTND=Tuniso dinaras
     CurrencyUSD=JAV doleriai
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Žodis
     DemandReasonTypeSRC_PARTNER=Partneris
     DemandReasonTypeSRC_EMPLOYEE=Darbuotojas
     DemandReasonTypeSRC_SPONSORING=Rėmimas
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Formatas 4A0
     PaperFormatEU2A0=Formatas 2A0
    diff --git a/htdocs/langs/lt_LT/ecm.lang b/htdocs/langs/lt_LT/ecm.lang
    index eb5690552a6..2e429df760d 100644
    --- a/htdocs/langs/lt_LT/ecm.lang
    +++ b/htdocs/langs/lt_LT/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Dokumentų skaičius kataloge
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Katalogas
     ECMSectionManual=Rankinis katalogas
     ECMSectionAuto=Automatinis katalogas
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Dokumentai, susiję su projektais
     ECMDocsByUsers=Dokumentai susiję su vartotojais
     ECMDocsByInterventions=Dokumentai, susiję su intervencijomis
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Nėra sukurta katalogo
     ShowECMSection=Rodyti katalogą
     DeleteSection=Pašalinti katalogą
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/lt_LT/errors.lang b/htdocs/langs/lt_LT/errors.lang
    index b6277a20632..1f961e9abd2 100644
    --- a/htdocs/langs/lt_LT/errors.lang
    +++ b/htdocs/langs/lt_LT/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Reikšmė '%s' turi neteisingą datos formatą
     ErrorWrongDate=Data yra neteisinga !
     ErrorFailedToWriteInDir=Nepavyko įrašyti į katalogą %s
     ErrorFoundBadEmailInFile=Rasta neteisinga elektroninio pašto sintaksė failo eilutėje %s (eilutės pavyzdys %s su e-paštas=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Kai kurie privalomi laukai nėra užpildyti.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Nepavyko sukurti aplanko. Įsitikinkite, kad web serverio vartotojas turi teisę rašyti į Dolibarr dokumentų aplanką. Jei parametras <b>safe_mode</b> yra įjungtas šio PHP, patikrinkite, ar Dolibarr PHP failai priklauso web serverio vartotojui (ar jų grupei).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Prašome užpildyti reikšmę pasirinkitam sąrašui
     ErrorNoValueForCheckBoxType=Prašome užpildyti reikšmę žymės laukelių sąrašui
     ErrorNoValueForRadioType=Prašome užpildyti reikšmę žymių (radio) sąrašui
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Laukelyje <b>%s</b> neturi būti specialiųjų simbolių
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Nėra aktyvaus apskaitos modulio
     ErrorExportDuplicateProfil=Profilio vardas jau egzistuoja šiam eksporto rinkiniui
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP derinimas nėra pilnas
     ErrorLDAPMakeManualTest=.ldif failas buvo sukurtas aplanke: %s. Pabandykite įkelti jį rankiniu būdu per komandinę eilutę, kad gauti daugiau informacijos apie klaidas
    -ErrorCantSaveADoneUserWithZeroPercentage=Negalima išsaugoti veiksmo su "Būklė nepradėta", jei laukelis "atliktas" taip pat užpildytas.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Nuoroda, naudojama sukūrimui, jau egzistuoja.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Nepavyko ištrinti įrašo. Jis jau naudojamas arba įtrauktas į kitą objektą.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=JavaScript turi būti neišjungtas, kad ši funkcija veiktų. Norėdami įjungti/išjungti JavaScript, eikite į meniu Pagrindinis-> Nustatymai->Ekranas.
     ErrorPasswordsMustMatch=Abu įvesti slaptažodžiai turi sutapti tarpusavyje
    -ErrorContactEMail=Įvyko techninė klaida. Kreipkitės į administratorių e-paštu <b>%s</b> ir pateikite klaidos kodą <b>%s</b> savo laiške, arba dar geriau, pridėkite šio puslapio ekrano kopiją.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Neteisinga laukelio numerio reikšmė <b>%s</b> (reikšmė '<b>%s</b>' neatitinka reguliarios išraiškos (regex) taisyklės <b>%s</b>)
     ErrorFieldValueNotIn=Neteisinga reikšmė laukelio numeriui <b>%s</b> (reikšmė '<b>%s</b>' nėra reikšmė galima laukeliui <b>%s</b> lentelėje <b>%s</b>
     ErrorFieldRefNotIn=Neteisinga reikšmė laukelio numeriui <b>%s</b> (reikšmė '<b>%s</b>' yra ne <b>%s</b> egzistuojanti nuoroda)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Antivirusinė programa negali patvirtinti failo (f
     ErrorSpecialCharNotAllowedForField=Specialūs simboliai neleidžiami laukelyje "%s"
     ErrorNumRefModel=Nuoroda yra į duomenų bazę (%s) ir yra nesuderinama su šiomis numeravimo tasyklėmis. Pašalinkite įrašą arba pervadinkite nuorodą, kad aktyvuoti šį modulį.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Maskavimo (mask) klaida
     ErrorBadMaskFailedToLocatePosOfSequence=Klaida, maskavimas be eilės numeris
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Klaida, bloga perkrovimo reikšmė
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Klaida. Pasirinkite bent vieną įrašą.
    -ErrorDeleteNotPossibleLineIsConsolidated=Ištrinti neįmanoma, nes įrašas yra susijęs su banko operacija, kuri suderinta
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s priskiriamas kitai trečiąjai šaliai
     ErrorFailedToSendPassword=Nepavyko išsiųsti slaptažodžio
     ErrorFailedToLoadRSSFile=Nepavyksta gauti RSS feed. Pabandykite pridėti konstantą MAIN_SIMPLEXMLLOAD_DEBUG, jei klaidų pranešimai nesuteikia pakankamai informacijos.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Vartotojas su prisijungimu <b>%s</b> nerastas
     ErrorLoginHasNoEmail=Šis vartotojas neturi e-pašto adreso. Procesas nutrauktas.
     ErrorBadValueForCode=Netinkama saugumo kodo reikšmė. Pabandykite dar kartą su nauja reikšme ...
     ErrorBothFieldCantBeNegative=Laukai %s ir %s negali būti abu neigiami
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Vartotojo sąskaita <b>%s</b> naudojama web serverio vykdymui neturi leidimo tam.
     ErrorNoActivatedBarcode=Nėra įjungta brūkšninio kodo tipo
    @@ -138,7 +141,7 @@ ErrorBadFormat=Blogas formatas !
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Privalomi nustatymų parametrai dar nėra apibrėžti
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Žymeklis tokiu pavadinimu ar šis tikslas (URL) ja
     WarningPassIsEmpty=Perspėjimas, duomenų bazės slaptažodis yra tuščias. Tai saugumo skylė. Jūs turite pridėti slaptažodį į savo duomenų bazę ir pakeisti savo conf.php failą to atspindėjimui.
     WarningConfFileMustBeReadOnly=Įspėjimas, Jūsų config failas (<b>htdocs/conf/conf.php</b>) gali būti perrašytas į web serverį. Tai rimta saugumo skylė. Pakeisti teises failui, kad būtų tik skaitymo režimas operacinės sistemos vartotojui naudojamam web serverio. Jei naudojate Windows ir FAT disko formatą, Jūs turite žinoti, kad ši failų sistema neleidžia pridėti teisių į failą, todėl negali būti visiškai saugi.
     WarningsOnXLines=Įspėjimai <b>%s</b> šaltinio įraše (-uose)
    -WarningNoDocumentModelActivated=Nėra įjungto modelio dokumentų generavimui. Bus pasirinktas modelis pagal nutylėjimą iki tol, kol patikrinsite modulio nustatymus.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Įspėjimas. Kai nustatymai yra baigti, Jūs turite išjungti įdiegimo/perkėlimo įrankius pridedant failą <b>install.lock</b> į aplanką <b>%s</b>. Šito failo nebuvimas yra saugumo skylė.
    -WarningUntilDirRemoved=Visi saugumo įspėjimai (matomi tik adminams) išliks aktyvūs tol, kol bus galimas pažeidžiamumas (arba konstanta MAIN_REMOVE_INSTALL_WARNING bus pridėta į Nustatymai-> Kiti).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Perspėjimas. Uždarymas padarytas, net jei suma skiriasi šaltinio ir tikslo elementuose. Įjunkite šią funkciją atsargiai.
     WarningUsingThisBoxSlowDown=Įspėjimas. Naudojant šią dėžutę sulėtėja visi puslapiai, rodantys šią dėžutę.
     WarningClickToDialUserSetupNotComplete=Nustatymo ClickToDial informacija savo vartotojui nėra išsamūs (žr. skirtuką ClickToDial savo vartotojo kortelėje).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/lt_LT/help.lang b/htdocs/langs/lt_LT/help.lang
    index 62c5cf2ce72..6f3c98eef25 100644
    --- a/htdocs/langs/lt_LT/help.lang
    +++ b/htdocs/langs/lt_LT/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Tiesioginis realaus laiko/nuotolinis palaikymas
     OtherSupport=Kita pagalba
     ToSeeListOfAvailableRessources=Susisiekti/pamatyti turimus išteklius:
     HelpCenter=Pagalbos centras
    -DolibarrHelpCenter=Dolibarr pagalbos ir palaikymo centras
    -ToGoBackToDolibarr=Priešingu atveju, spauskite <a href="%s"> čia norėdami naudoti Dolibarr</a>
    -TypeOfSupport=Palaikymo šaltinis
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Bendruomenė (nemokamai)
     TypeSupportCommercial=Komercinis
     TypeOfHelp=Tipas
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efektyvumas
     TypeHelpOnly=Tik pagalba
     TypeHelpDev=Pagalba + vystymas
    -TypeHelpDevForm=Pagalba+Vystymas+Formavimas
    -ToGetHelpGoOnSparkAngels1=Kai kurios įmonės gali užtikrinti greitą (kartais nedelsiamą) ir efektyvesnį tiesioginį palaikymą, perimant Jūsų kompiuterio kontrolę. Tokius padėjėjus galima rasti <b>%s</b> web svetainėje:
    -ToGetHelpGoOnSparkAngels3=Taip pat galite eiti į visų galimų Dolibarr trenerių sąrašą, paspausdami šį mygtuką
    -ToGetHelpGoOnSparkAngels2=Kartais nėra galimų įmonių tuo metu pagal Jūsų paiešką, todėl pakeiskite paieškos filtrą į "visų prieinamumą". Galėsite siųsti daugiau užklausų.
    -BackToHelpCenter=Priešingu atveju, spauskite čia norėdami grįžti <a href="%s"> atgal į Pagrindinio puslapio Pagalbos centrą</a> .
    -LinkToGoldMember=Galite paskambinti vienam iš trenerių, iš anksto atrinktų Dolibarr Jūsų kalbai (%s), spustelėdami jo Widget (būklė ir maksimali kaina yra automatiškai atnaujinami):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Palaikomos kalbos
    -SubscribeToFoundation=Padėkite Dolibarr projektui, tapkite nariu
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Oficialiam Dolibarr palaikymui Jūsų kalba: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/lt_LT/holiday.lang b/htdocs/langs/lt_LT/holiday.lang
    index 10dabe99509..129d0d90a94 100644
    --- a/htdocs/langs/lt_LT/holiday.lang
    +++ b/htdocs/langs/lt_LT/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=Žmogiškųjų išteklių valdymas (HRM)
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Mėnesio suvestinė
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Pradžios data
     DateFinCP=Pabaigos data
    @@ -15,13 +15,18 @@ ApprovedCP=Patvirtinta
     CancelCP=Atšauktas
     RefuseCP=Atmestas
     ValidatorCP=Tvirtintojas/aprobatorius
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Aprašymas
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Turite pasirinkti pabaigos datą didesnę nei pradžios data.
     ErrorSQLCreateCP=Kuriant įvyko SQL klaida:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Workflow informacija
     RequestByCP=Prašoma
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Redaguoti
     DeleteCP=Ištrinti
     ActionRefuseCP=Atmesti
    @@ -59,6 +71,7 @@ DateRefusCP=Atmetimo data
     DateCancelCP=Atšaukimo data
     DefineEventUserCP=Priskirti išimtines atostogas vartotojui
     addEventToUserCP=Priskirti išimtines atostogos
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Priežastis
     UserCP=Vartotojas
     ErrorAddEventToUserCP=Pridedant išimtines atostogas įvyko klaida.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Sėkmingai atnaujinta
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/lt_LT/install.lang b/htdocs/langs/lt_LT/install.lang
    index e3a05631d84..bf3de3245a5 100644
    --- a/htdocs/langs/lt_LT/install.lang
    +++ b/htdocs/langs/lt_LT/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Tiesiog sekite instrukcijas žingsnis po žingsnio.
     MiscellaneousChecks=Būtinų sąlygų tikrinimas
     ConfFileExists=Konfigūracijos failas <b>%s</b> egzistuoja.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Konfigūracijos failas <b>%s</b> neegzistuoja ir negali būti sukurtas!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Konfigūracijos failas <b>%s</b> gali būti sukurtas.
    -ConfFileIsNotWritable=Konfigūracijos failas <b>%s</b> neįrašomas. Patikrinti leidimus. Diegiant pirmą kartą Jūsų serveris turi būti pajėgus įrašyti į šį failą konfigūracijos proceso metu ("chmod 666", pavyzdžiui Unix tipo OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Konfigūracijos failas <b>%s</b> įrašomas.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Perkrauti visą informaciją iš konfigūracijos failo.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Šis PHP palaiko sesijas.
     PHPSupportPOSTGETOk=Šis PHP palaiko kintamuosius POST ir GET.
    -PHPSupportPOSTGETKo=Galimas dalykas Jūsų PHP nepalaiko kintamųjų POST ir/arba GET. Patikrinti savo parametrą <b>variables_order</b> php.ini.
    -PHPSupportGD=Šis PHP palaiko GD grafikos funkcijas.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=Šis PHP palaiko UTF8 funkcijos.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Jūsų PHP maksimali sesijos atmintis yra nustatyta į <b>%s</b>. To turėtų būti pakankamai.
    -PHPMemoryTooLow=Jūsų PHP maksimali sesijos atmintis yra nustatyta į <b>%s</b> baitų. Tai gali būti per mažai. Keisti savo <b>php.ini</b> ir nustatyti <b>memory_limit</b> parametrą mažiausiai į <b>%s</b> baitų.
    -Recheck=Spauskite čia norėdami peržiūrėti daugiau reikšmingų bandymų
    -ErrorPHPDoesNotSupportSessions=Jūsų įdiegta PHP nepalaiko sesijų. Ši funkcija reikalinga Dolibarr darbui. Patikrinkite savo PHP nustatymus.
    -ErrorPHPDoesNotSupportGD=Jūsų įdiegta PHP nepalaiko grafinės GD funkcijos. Grafikai neprieinami.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Jūsų įdiegta PHP nepalaiko UTF8 funkcijos. Dolibarr negali tinkamai veikti. Išspręsti šią problemą prieš diegdami Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Katalogas %s neegzistuoja.
    -ErrorGoBackAndCorrectParameters=Eiti atgal ir ištaisyti klaidingus parametrus.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Galbūt įvedėte neteisingą parametro '%s' reikšmę.
     ErrorFailedToCreateDatabase=Nepavyko sukurti duomenų bazės '%s'.
     ErrorFailedToConnectToDatabase=Nepavyko prisijungti prie duomenų bazės '%s'.
     ErrorDatabaseVersionTooLow=Duomenų bazės versija (%s) per sena. Reikalinga versija %s arba naujesnė.
     ErrorPHPVersionTooLow=PHP versija pernelyg sena. Reikalinga versija %s.
    -ErrorConnectedButDatabaseNotFound=Prisijungimas prie serverio sėkmingas, bet duomenų bazės '%s' nerasta.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Duomenų bazė '%s' jau egzistuoja.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Jei duomenų bazė neegzistuoja, grįžti ir patikrinti opciją "Sukurti duomenų bazę".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Jei duomenų bazė jau yra, eikite atgal ir nuimkite "Sukurti duomenų bazę" opciją.
    -WarningBrowserTooOld=Per sena naršyklės versiją. Rekomenduojama atnaujinti savo naršyklę į naujausią versiją Firefox, Chrome ar Opera.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP versija
     License=Naudojant licenciją
     ConfigurationFile=Konfigūracijos failas
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr duomenų bazė
     DatabaseType=Duomenų bazės tipas
     DriverType=Tvarkyklės tipas
     Server=Serveris
    -ServerAddressDescription=Duomenų bazės serverio vardas arba IP adresas, paprastai "localhost", kai duomenų bazės serveris yra talpinamas tame pačiame serveryje kaip ir web serveris
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Duomenų bazės serverio prievadas (port). Laikyti tuščią, jei nežinomas.
     DatabaseServer=Duomenų bazės serveris
     DatabaseName=Duomenų bazės pavadinimas
    -DatabasePrefix=Duomenų bazės prefiksų lentelė
    -AdminLogin=Prisijungimas Dolibarr duomenų bazės savininkui.
    -PasswordAgain=Pakartokite slaptažodį antrą kartą
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Slaptažodis Dolibarr duomenų bazės savininkui.
     CreateDatabase=Sukurti duomenų bazę
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Duomenų bazės serveris - Superuser prieiga
    -CheckToCreateDatabase=Žymėti langelį, jei duomenų bazės nėra ir ji turi būti sukurta. <br>Tokiu atveju, turite užpildyti prisijungimo/slaptažodį superuser sąskaitai šio puslapio apačioje.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Prisijungimas vartotojui leidžia kurti naujas duomenų bazes arba naujus vartotojus. Tai privaloma, jei Jūsų duomenų bazė ar jos savininkas dar neegzistuoja.
    -KeepEmptyIfNoPassword=Palikite tuščią, jei vartotojas neturi slaptažodžio (praleisti)
    -SaveConfigurationFile=Išsaugoti reikšmes
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Serverio prisijungimas
     DatabaseCreation=Duomenų bazės sukūrimas
     CreateDatabaseObjects=Duomenų bazės objektų kūrimas
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Sukurti svetimus raktus ir indeksus lentelei %s
     OtherKeysCreation=Svetimų raktų ir indeksų kūrimas
     FunctionsCreation=Funkcijų kūrimas
     AdminAccountCreation=Administratoriaus prisijungimo kūrimas
    -PleaseTypePassword=Prašome įvesti slaptažodį, tušti slaptažodžiai negalimi !
    -PleaseTypeALogin=Prašome įvesti vartotojo vardą
    -PasswordsMismatch=Slaptažodžiai skiriasi, bandykite dar kartą!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Nustatymų pabaiga
     SystemIsInstalled=Diegimas baigtas
     SystemIsUpgraded=Dolibarr buvo sėkmingai atnaujintas
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Reikia sukonfigūruoti Dolibarr, kad atitiktų jūsų
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Eiti į Dolibarr
     GoToSetupArea=Eiti į Dolibarr (Nustatymų sritis)
    -MigrationNotFinished=Duomenų bazės versija nėra naujausiai, todėl jums gali tekti iš naujo paleisti versijos atnaujinimo procesą.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Vėl eiti atnaujinti puslapį
     WithNoSlashAtTheEnd=Be simbolio "/" pabaigoje
    -DirectoryRecommendation=Rekomenduojama naudoti aplanką išorėje savo web puslapio aplanko.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Jau egzistuoja
     DolibarrAdminLogin=Dolibarr administratoriaus prisijungimas
    -AdminLoginAlreadyExists=Dolibarr administratoriaus sąskaita '<b>%s</b>' jau egzistuoja. Grįžkite, jei norite sukurti dar vieną.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Įspėjimas. Dėl saugumo priežasčių, kai įdiegimas ar atnaujinimas baigtas, kad būtų išvengta diegimo iš naujo, turėtumėte pridėti failą pavadinimu <b>install.lock</b> į Dolibarr dokumentų aplanką, siekiant išvengti neteisingo jo naudojimo.
    -FunctionNotAvailableInThisPHP=Negalimas su šiuo PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Pasirinkite migracijos skriptą
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Skriptas vykdomas
     ChooseYourSetupMode=Pasirinkite nustatymų režimą ir spauskite "Start" ...
     FreshInstall=Naujas diegimas
    -FreshInstallDesc=Naudokite šį režimą, jei tai pirmas diegimas. Jei ne, šis režimas gali sutaisyti nepilną praėjusią diegimą, tačiau, jei norite atnaujinti savo versiją, pasirinkite "Upgrade" režimą.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Atnaujinti
     UpgradeDesc=Naudokite šį režimą, jei buvo pakeisti seni Dolibarr failai į naujesnius iš naujesnės versijos. Taip bus atnaujinti duomenų bazė ir duomenys.
     Start=Pradžia
     InstallNotAllowed=Nustatymai neleidžiami pagal <b>conf.php</b> leidimus
     YouMustCreateWithPermission=Jūs turite sukurti failą %s ir nustatyti įrašymo į jį teises  serveriui, diegimo proceso metu.
    -CorrectProblemAndReloadPage=Prašome išspręsti šią problemą ir paspauskite F5, kad atnaujinti puslapį.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Jau migravo
     DatabaseVersion=Duomenų bazės versija
     ServerVersion=Duomenų bazės serverio versija
     YouMustCreateItAndAllowServerToWrite=Jūs turite sukurti šį aplanką ir leisti web serveriui į jį rašyti.
     DBSortingCollation=Simbolių rūšiavimo tvarka
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Jūs klausiate sukurti duomenų bazę <b>%s</b>, bet tam Dolibarr reikia prisijungti prie serverio <b>%s</b> su Super User <b>%s</b> teisėmis.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Jūs klausiate sukurti duomenų bazės prisijungimą <b>i%s</b>. bet tam, Dolibarr reikia prisijungti prie serverio <b>%s</b> su Super User <b>%s</b> teisėmis.
    -BecauseConnectionFailedParametersMayBeWrong=Sujungimas nepavyko, Hostingo ar Super vartotojo parametrai yra neteisingi.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Našlaičių mokėjimai, aptikti metodu %s
     RemoveItManuallyAndPressF5ToContinue=Pašalinti rankiniu būdu ir paspausti F5 tęsti toliau.
     FieldRenamed=Laukas pervadintas
    -IfLoginDoesNotExistsCheckCreateUser=Jei prisijungimas dar neegzistuoja, Jūs turite patikrinti opciją "Sukurti vartotoją"
    -ErrorConnection=Serveris "<b>%s</b>", duomenų bazės pavadinimas "b>%s</b>", prisijungimas "<b>%s</b>", arba duomenų bazės slaptažodis gali būti klaidingi arba kliento PHP versija gali būti per sena, palyginti su duomenų bazės versija.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Rekomenduojama pasirinkti įdiegimui versiją <b>%s</b> iš Jūsų einamosios versijos <b>%s</b>
     InstallChoiceSuggested=<b>Instaliuoti diegėjo siūlomą pasirinkimą</b>.
    -MigrateIsDoneStepByStep=Numatyta versija (%s) turi keletą versijų, todėl diegimo vedlys grįš pasiūlyti kitą perkėlimą, kai šitas bus baigtas.
    -CheckThatDatabasenameIsCorrect=Patikrinti, ar duomenų bazės pavadinimas "<b>%s</b>" yra teisingas.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Jei šis pavadinimas yra teisingas ir duomenų bazė dar neegzistuoja, reikia patikrinti opciją "Sukurti duomenų bazę".
     OpenBaseDir=PHP openbasedir parametras
    -YouAskToCreateDatabaseSoRootRequired=Jūs pažymėjote langelį "Sukurti duomenų bazę". Tam Jums reikės suteikti super vartotojo prisijungimą/slaptažodį (formos apačioje).
    -YouAskToCreateDatabaseUserSoRootRequired=Jūs pažymėjote langelį "Sukurti duomenų bazės savininką". Tam Jums reikės suteikti super vartotojo prisijungimą/slaptažodį (formos apačioje).
    -NextStepMightLastALongTime=Šis žingsnis gali trukti kelias minutes. Prašome, prieš tęsiant palaukti, kol pilnai pasirodys kitas ekranas.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Perkelti gabenimą klientų užsakymų saugojimui
     MigrationShippingDelivery=Atnaujinkite gabenimo saugojimą
     MigrationShippingDelivery2=Atnaujinkite gabenimo 2 saugojimą
     MigrationFinished=Perkėlimas baigtas
    -LastStepDesc=<strong>Paskutinis žingsnis</strong>: Nustatykite čia prisijungimo vardą ir slaptažodį, kuriuos planuojate naudoti prisijungimui prie programos. Nepameskite jų, nes tai yra administratoriaus, kuris administruoja visus kitus vartotojus, sąskaitos rekvizitai.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Įjungti modulį %s
     ShowEditTechnicalParameters=Spauskite čia, kad galėtumete matyti/redaguoti išplėstinius parametrus (eksperto režime)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Jūsų duomenų bazės versija yra %s. Gali būti kritinė situacija su duomenų praradimu, jeigu pakeisite duomenų bazės struktūrą, kaip reikalaujama perkėlimo proceso metu. Šiuo tikslu perkėlimas nebus leidžiamas, kol nebus atliktas duomenų bazės programos atnaujinimas į aukštesnę versiją (žinomų klaidingų versijų sąrašas: %s)
    -KeepDefaultValuesWamp=Jūs naudojate Dolibarr nustatymų vedlį iš DoliWamp, todėl čia siūlomos reikšmės jau yra optimizuotas. Juos keiskite tik, jeigu tikrai žinote, ką darote.
    -KeepDefaultValuesDeb=Naudojate Dolibarr vedlį iš Linux paketo (Ubuntu, Debian, Fedora ...), todėl čia siūlomos reikšmės jau yra optimizuotos. Tik duomenų bazės savininko slaptažodis turi būti pilnai sukurtas. Keiskite kitus parametrus tik jei tikrai žinote, ką darote.
    -KeepDefaultValuesMamp=Naudojate Dolibarr vedlį iš DoliMamp, todėl čia siūlomos reikšmės jau yra optimizuotos. Keiskite juos tik jei tikrai žinote, ką darote.
    -KeepDefaultValuesProxmox=Naudojate Dolibarr vedlį iš Proxmox virtualaus prietaiso, todėl čia siūlomos reikšmės jau yra optimizuotos. keiskite juos tik jei tikrai žinote, ką darote.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Komercinių pasiūlymų duomenų perkėlimas
     MigrationInvoice=Klientų sąskaitų-faktūrų duomenų perkėlimas
     MigrationContract=Sutarčių duomenų perkėlimas
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Atnaujinimas sėkmingas
     MigrationUpdateFailed=Nepavyko atnaujinti proceso
     MigrationRelationshipTables=Ryšių lentelių (%s) duomenų perkėlimas
     MigrationPaymentsUpdate=Mokėjimo duomenų taisymas
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Sutarties duomenų taisymas
     MigrationContractsNumberToUpdate=%s sutarties (-ių) atnaujinimas
     MigrationContractsLineCreation=Sukurti sutarties eilutę sutarčiai su nuoroda %s
     MigrationContractsNothingToUpdate=Nėra daugiau ką daryti
    -MigrationContractsFieldDontExist=Laukelis fk_facture neegzistuoja. Nieko nedaryti.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Sutarties tuščių duomenų taisymas
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Nėra sutarties tuščių duomenų taisymui
     MigrationContractsEmptyCreationDatesNothingToUpdate=Nėra sutarties sukūrimo duomenų taisymui
     MigrationContractsInvalidDatesUpdate=Bloga taisoma sutarties datos reikšmė
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Pristatymo atnaujinimas
     MigrationStockDetail=Atnaujinkite produktų atsargų vertę
     MigrationMenusDetail=Atnaujinkite dinamines meniu lenteles
     MigrationDeliveryAddress=Atnaujinti pristatymo adresus gabenimo dokumentuose
    -MigrationProjectTaskActors=Duomenų perkėlimas į llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Duomenų perkėlimo laukelis fk_user_resp iš llx_projet į llx_element_contact
     MigrationProjectTaskTime=Atnaujinti praleistą laiką sekundėmis
     MigrationActioncommElement=Atnaujinti veiksmų duomenis
     MigrationPaymentMode=Duomenų perkėlimas mokėjimo būdui
     MigrationCategorieAssociation=Kategorijų perkėlimas
    -MigrationEvents=Įvykių migracija pridedant įvykio savininką į užduočių lentelę
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Perkrauti modulį %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Parodyti negalimas opcijas
    -HideNotAvailableOptions=Paslėpti negalimas opcijas
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/lt_LT/interventions.lang b/htdocs/langs/lt_LT/interventions.lang
    index 8059e2a5fc3..cbfb08fbb55 100644
    --- a/htdocs/langs/lt_LT/interventions.lang
    +++ b/htdocs/langs/lt_LT/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Intervencijos
     InterventionCard=Intervencijos kortelė
     NewIntervention=Nauja intervencija
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Intervencijų sąrašas
     ActionsOnFicheInter=Intervencijos veiksmai
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/lt_LT/main.lang b/htdocs/langs/lt_LT/main.lang
    index c26d400de10..a1202124794 100644
    --- a/htdocs/langs/lt_LT/main.lang
    +++ b/htdocs/langs/lt_LT/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Nepavyko išsiųsti laiško (siuntėjas=%s, gavėjas=%s)
     ErrorFileNotUploaded=Failas nebuvo įkeltas. Patikrinkite, ar jo dydis neviršija leistino, ar yra laisvos vietos diske ir ar jau nėra failo su tokiu pačiu pavadinimu šiame kataloge.
     ErrorInternalErrorDetected=Aptikta klaida
     ErrorWrongHostParameter=Neteisingas talpinimo parametras
    -ErrorYourCountryIsNotDefined=Jūsų šalis nėra apibrėžta. Eiti į Pagrindinis-Nustatymai-Redaguoti ir vėl užpildyti formą.
    -ErrorRecordIsUsedByChild=Nepavyko ištrinti šio įrašo. Šis įrašas yra naudojamas bent vieno iš jaunesnių įrašų.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Neteisinga reikšmė
     ErrorWrongValueForParameterX=Neteisinga parametro %s reikšmė
     ErrorNoRequestInError=Nėra užklausos dėl klaidos
    -ErrorServiceUnavailableTryLater=Paslauga neteikiama šiuo metu. Bandykite dar kartą vėliau.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Dubliuojanti reikšmė unikaliame lauke
    -ErrorSomeErrorWereFoundRollbackIsDone=Rastos kai kurios klaidos. Pakeitimai atšaukti.
    -ErrorConfigParameterNotDefined=Parametras <b>%s</b> nėra apibrėžta Dolibarr konfigūracijos faile <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Nepavyko rasti vartotojo <b>%s</b> Dolibarr duomenų bazėje.
     ErrorNoVATRateDefinedForSellerCountry=Klaida, nėra apibrėžtų PVM tarifų šaliai '%s'.
     ErrorNoSocialContributionForSellerCountry=Klaida, socialiniai / fiskaliniai mokesčiai neapibrėžti šaliai '%s'.
     ErrorFailedToSaveFile=Klaida, nepavyko išsaugoti failo.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Nustatyti datą
     SelectDate=Pasirinkti datą
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=Failas buvo sėkmingai įkeltas
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=Failas prikabinimui pasirinktas, bet dar nebuvo įkeltas. Paspauskite tam "Pridėti failą".
    -NbOfEntries=Įrašų skaičius
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Skaityti pagalbą
     RecordSaved=Įrašas išsaugotas
    @@ -94,7 +94,7 @@ Undefined=Neapibrėžtas
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=Žiūrėti aukščiau
    -HomeArea=Pagrindinė sritis
    +HomeArea=Pagrindinis
     LastConnexion=Latest connection
     PreviousConnexion=Ankstesnis prisijungimas
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Uždarytas
     Closed2=Uždarytas
     NotClosed=Not closed
     Enabled=Įjungta
    +Enable=Įjungti
     Deprecated=Užprotestuotas
     Disable=Išjungti
     Disabled=Išjungtas
    @@ -153,7 +154,7 @@ Update=Atnaujinimas
     Close=Uždaryti
     CloseBox=Remove widget from your dashboard
     Confirm=Patvirtinti
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Ištrinti
     Remove=Pašalinti
     Resiliate=Terminate
    @@ -327,27 +328,27 @@ Copy=Kopijuoti
     Paste=Įklijuoti
     Default=Pagal nutylėjimą
     DefaultValue=Reikšmė pagal nutylėjimą
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Kaina
     PriceCurrency=Price (currency)
     UnitPrice=Vieneto kaina
     UnitPriceHT=Vieneto kaina (grynoji)
     UnitPriceHTCurrency=Unit price (net) (currency)
     UnitPriceTTC=Vieneto kaina
    -PriceU=U.P.
    -PriceUHT=U.P. (grynasis)
    +PriceU=Kaina vnt.
    +PriceUHT=Vnt. kaina (be PVM)
     PriceUHTCurrency=U.P (currency)
    -PriceUTTC=U.P. (įsk. mokesčius)
    +PriceUTTC=Vnt. kaina (su PVM)
     Amount=Suma
     AmountInvoice=Sąskaitos-faktūros suma
     AmountInvoiced=Amount invoiced
     AmountPayment=Mokėjimo suma
     AmountHTShort=Suma (grynoji)
    -AmountTTCShort=Suma (įskaitant mokesčius)
    -AmountHT=Suma (atskaičius mokesčius)
    -AmountTTC=Suma (įskaitant mokesčius)
    +AmountTTCShort=Suma (su PVM)
    +AmountHT=Suma (be PVM)
    +AmountTTC=Suma (su PVM)
     AmountVAT=Mokesčių suma
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -366,13 +367,13 @@ Total=Visas
     SubTotal=Tarpinė suma
     TotalHTShort=Iš viso (grynasis)
     TotalHTShortCurrency=Total (net in currency)
    -TotalTTCShort=Iš viso (įskaitant mokesčius)
    -TotalHT=Iš viso (atskaičius mokesčius)
    -TotalHTforthispage=Iš viso (atskaičius mokesčius) šiam puslapiui
    +TotalTTCShort=Iš viso (su PVM)
    +TotalHT=Iš viso (be PVM)
    +TotalHTforthispage=Iš viso (be PVM) šiam puslapiui
     Totalforthispage=Total for this page
    -TotalTTC=Iš viso (įskaitant mokesčius)
    -TotalTTCToYourCredit=Iš viso (įskaitant mokesčius) prie Jūsų kredito
    -TotalVAT=Iš viso mokesčių
    +TotalTTC=Iš viso (su PVM)
    +TotalTTCToYourCredit=Iš viso (su PVM) prie Jūsų kredito
    +TotalVAT=Iš viso PVM
     TotalVATIN=Total IGST
     TotalLT1=Iš viso mokesčių 2
     TotalLT2=Iš viso mokesčių 3
    @@ -380,11 +381,11 @@ TotalLT1ES=Iš viso RE
     TotalLT2ES=Iš viso IRPF
     TotalLT1IN=Total CGST
     TotalLT2IN=Total SGST
    -HT=Atskaityta mokesčių
    -TTC=Įtraukta mokesčių
    -INCVATONLY=Inc. VAT
    +HT=Atskaityta mokesčiai
    +TTC=Įtraukta mokesčiai
    +INCVATONLY=Su PVM
     INCT=Inc. all taxes
    -VAT=Pardavimo mokestis
    +VAT=PVM
     VATIN=IGST
     VATs=Pardavimų mokesčiai
     VATINs=IGST taxes
    @@ -428,7 +429,7 @@ ActionNotApplicable=Netaikomas
     ActionRunningNotStarted=Pradėti
     ActionRunningShort=In progress
     ActionDoneShort=Baigtas
    -ActionUncomplete=Nepilnas
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Šios trečiosios šalies adresatas
     ContactsAddressesForCompany=Adresatai/adresai šiai trečiajai šaliai
     AddressesForCompany=Adresai šiai trečiajai šaliai
     ActionsOnCompany=Įvykiai su šia trečiają šalimi
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Įvykiai su šiuo nariu
     ActionsOnProduct=Events about this product
     NActionsLate=%s vėluoja
    @@ -453,8 +455,8 @@ Generate=Generuoti
     Duration=Trukmė
     TotalDuration=Bendra trukmė
     Summary=Suvestinė
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Prieinamas
     NotYetAvailable=Dar nėra prieinamas
    @@ -506,7 +508,7 @@ None=Nė vienas
     NoneF=Nė vienas
     NoneOrSeveral=None or several
     Late=Vėlai
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Nuotrauka
     Photos=Nuotraukos
    @@ -530,18 +532,6 @@ September=Rugsėjis
     October=Spalis
     November=Lapkritis
     December=Gruodis
    -JanuaryMin=Sau
    -FebruaryMin=Vas
    -MarchMin=Kov
    -AprilMin=Bal
    -MayMin=Geg
    -JuneMin=Bir
    -JulyMin=Lie
    -AugustMin=Rgp
    -SeptemberMin=Rgs
    -OctoberMin=Spa
    -NovemberMin=Lap
    -DecemberMin=Grd
     Month01=Sausis
     Month02=Vasaris
     Month03=Kovas
    @@ -646,6 +636,8 @@ SendMail=Siųsti e-laišką
     EMail=E-mail
     NoEMail=E-laiškų nėra
     Email=El. paštas
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Nėra mobilaus telefono
     Owner=Savininkas
     FollowingConstantsWillBeSubstituted=Šios konstantos bus pakeistos atitinkamomis reikšmėmis
    @@ -677,7 +669,7 @@ NeverReceived=Niekada negautas
     Canceled=Atšauktas
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Spalva
     Documents=Susieti failai
     Documents2=Dokumentai
    @@ -716,15 +708,15 @@ Merge=Sujungti
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Rodyti puslapio pagrindinio turinio sritį spausdinimui
     MenuManager=Meniu vadovas
    -WarningYouAreInMaintenanceMode=Perspėjimas. Jūs esate serviso režime, todėl tik prisijungimas <b>%s</b> leidžiamas naudotis programa einamu momentu.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Sistemos klaida
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Kreditinė kortelė
     ValidatePayment=Mokėjimą pripažinti galiojančiu
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Laukai su <b>%s</b> yra privalomi
    -FieldsWithIsForPublic=Laukai su <b>%s</b> yra rodomi viešame narių sąraše. Jei šito nenorite, išjunkite "public" langelį.
    -AccordingToGeoIPDatabase=(Pagal GeoIP konversiją)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Eilutė
     NotSupported=Nepalaikoma
     RequiredField=Reikalingas laukas
    @@ -732,6 +724,8 @@ Result=Rezultatas
     ToTest=Bandymas
     ValidateBefore=Kortelė turi būti patvirtinta prieš naudojant šią funkciją
     Visibility=Matomumas
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privatus
     Hidden=Paslėptas
     Resources=Ištekliai
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Sukurti projektą
     SetToDraft=Atgal į projektą
     ClickToEdit=Spausk redaguoti
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=Pagal dieną
     BySalesRepresentative=Pagal pardavimo atstovą
     LinkedToSpecificUsers=Susieta su tam tikro vartotojo adresatu
     NoResults=Nėra rezultatų
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=Sistemos įrankiai
     ModulesSystemTools=Modulių įrankiai
     Test=Bandymas
     Element=Elementas
     NoPhotoYet=Galimų nuotraukų dar nėra
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Atimamas
     from=nuo
     toward=būsimas
    @@ -802,7 +798,7 @@ PrintFile=Spausdinti failą %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Rodyti intervenciją
     ShowContract=Rodyti sutartį
    -GoIntoSetupToChangeLogo=Eiti į Pradžia - Nustatymai - Bendrovė, kad pakeisti logotipą arba eikite į Pradžia - Nustatymai - Ekranas, kad paslėpti.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Atmesti
     Denied=Atmestas
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Ištrinti eilutę
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Klasifikuoti su pateiktomis sąskaitomis-faktūromis
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Kalendorius
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Išlaidų ataskaita
     ExpenseReports=Išlaidų ataskaitos
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Įvykiai
    -EMailTemplates=El.pašto pranešimų šablonai
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Projektas
     Projects=Projektai
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Leidimai
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Pirmadienis
     Tuesday=Antradienis
    @@ -917,7 +922,7 @@ SearchIntoUsers=Vartotojai
     SearchIntoProductsOrServices=Products or services
     SearchIntoProjects=Projektai
     SearchIntoTasks=Uždaviniai
    -SearchIntoCustomerInvoices=Customer invoices
    +SearchIntoCustomerInvoices=Klientų sąskaitos faktūros
     SearchIntoSupplierInvoices=Vendor invoices
     SearchIntoCustomerOrders=Customer orders
     SearchIntoSupplierOrders=Purchase orders
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Intervencijos
     SearchIntoContracts=Sutartys
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Išlaidų ataskaitos
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Komentarai
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Visi
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Apmokėtas kieno
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Priskirtas
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/lt_LT/other.lang b/htdocs/langs/lt_LT/other.lang
    index 27b3d17dd53..ac3a2e397ef 100644
    --- a/htdocs/langs/lt_LT/other.lang
    +++ b/htdocs/langs/lt_LT/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Saugos kodas
     NumberingShort=N°
     Tools=Įrankiai
     TMenuTools=Įrankiai
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Gimimo diena
     BirthdayDate=Birthday date
     DateToBirth=Gimimo data
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Pranešimas patvirtinto mokėjimo grąžinimo puslapyje
     MessageKO=Pranešimas atšaukto mokėjimo grąžinimo puslapyje
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervencija patvirtinta
    -Notify_FICHINTER_SENTBYMAIL=Intervencija nusiųsta paštu
     Notify_ORDER_VALIDATE=Kliento užsakymas patvirtintas
     Notify_ORDER_SENTBYMAIL=Kliento užsakymas nusiųstas paštu
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Tiekėjo užsakymas išsiųstas paštu
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Tiekėjo užsakymas patvirtintas
     Notify_ORDER_SUPPLIER_REFUSE=Tiekėjo užsakymas atmestas
     Notify_PROPAL_VALIDATE=Kliento pasiūlymas patvirtintas
    -Notify_PROPAL_CLOSE_SIGNED=Kliento pasiūlymas uždarytas pasirašytas
    -Notify_PROPAL_CLOSE_REFUSED=Kliento pasiūlymas uždarytas po pasirašymo
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Komercinis pasiūlymas nusiųstas paštu
     Notify_WITHDRAW_TRANSMIT=Perdavimo atsiėmimas
     Notify_WITHDRAW_CREDIT=Kredito atšaukimas
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Trečioji šalis sukūrta
     Notify_COMPANY_SENTBYMAIL=Laiškai, siunčiami iš trečiosios šalies kortelės
     Notify_BILL_VALIDATE=Kliento sąskaita-faktūra patvirtinta
     Notify_BILL_UNVALIDATE=Kliento sąskaita-faktūra nepatvirtinta
    -Notify_BILL_PAYED=Kliento sąskaita-faktūra apmokėta
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Kliento sąskaita-faktūra atšaukta
     Notify_BILL_SENTBYMAIL=Kliento sąskaita-faktūra išsiųsta paštu
     Notify_BILL_SUPPLIER_VALIDATE=Tiekėjo sąskaita-faktūra patvirtinta
    -Notify_BILL_SUPPLIER_PAYED=Tiekėjo sąskaita-faktūra apmokėta
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Tiekėjo sąskaita-faktūra išsiųsta paštu
     Notify_BILL_SUPPLIER_CANCELED=Tiekėjo sąskaita-faktūra atšaukta
     Notify_CONTRACT_VALIDATE=Sutartis patvirtinta
     Notify_FICHEINTER_VALIDATE=Intervencija patvirtinta
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervencija nusiųsta paštu
     Notify_SHIPPING_VALIDATE=Pakrovimas patvirtintas
     Notify_SHIPPING_SENTBYMAIL=Pakrovimas (važtaraštis) išsiųstas paštu
     Notify_MEMBER_VALIDATE=Narys patvirtintas
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Projekto kūrimas
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Prikabintų failų/dokumentų skaičius
     TotalSizeOfAttachedFiles=Iš viso prikabintų failų/dokumentų dydis
     MaxSize=Maksimalus dydis
     AttachANewFile=Pridėti naują failą/dokumentą
     LinkedObject=Susietas objektas
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof ID%s</b> yra informacija, priklausoma nuo trečiosios šalies dalyvio šalies.<br>Pavyzdžiui, šaliai <b>%s</b>, jo kodas <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Intervencija %s buvo patvirtinta
     EMailTextInvoiceValidated=Sąskaita-faktūra %s buvo patvirtinta
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Pasiūlymas %s patvirtintas
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Užsakymas %s pripažintas galiojančiu
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Užsakymas %s buvo patvirtintas %s
     EMailTextOrderRefused=Užsakymas %s atmestas
     EMailTextOrderRefusedBy=Užsakymas %s atmestas %s
     EMailTextExpeditionValidated=Gabenimas %s pripažintas galiojančiu
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importavimo duomenų rinkinys
     DolibarrNotification=Automatinis pranešimas
     ResizeDesc=Įveskite naują plotį <b>arba</b> naują aukštį. Santykis bus išlaikomas keičiant dydį ...
    @@ -204,7 +214,7 @@ NewLength=Naujas plotis
     NewHeight=Naujas aukštis
     NewSizeAfterCropping=Naujas dydis po apkarpymo
     DefineNewAreaToPick=Pažymėti naują sritį ant paveikslėlio (paspauskite kairį pelės mygtuką ant nuotraukos, tada vilkite, kol pasieksite priešingą kampą)
    -CurrentInformationOnImage=Šis įrankis buvo sukurtas siekiant padėti keisti arba apkarpyti paveikslėlį. Tai informacija apie dabartinį redaguotą paveikslėlį.
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Paveikslėlio redaktorius
     YouReceiveMailBecauseOfNotification=Jūs gavote šį pranešimą, nes Jūsų e-pašto adresas įtrauktas į objektų, kurie turi būti informuoti apie kai kuriuos įvykius %s programose %s, sąrašą.
     YouReceiveMailBecauseOfNotification2=Šis įvykis yra sekantis:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Eksporto sritis
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Pavadinimas
     WEBSITE_DESCRIPTION=Aprašymas
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/lt_LT/paybox.lang b/htdocs/langs/lt_LT/paybox.lang
    index 60315a41620..e1e7a824e39 100644
    --- a/htdocs/langs/lt_LT/paybox.lang
    +++ b/htdocs/langs/lt_LT/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Paybox modulio nustatymas
     PayBoxDesc=Šis modulis siūlo puslapius, leidžiančius mokėjimą <a href="http://www.paybox.com" target="_blank">Paybox</a> klientams. Tai gali būti naudojama nemokamam mokėjimui arba  tam tikram specifiniam Dolibarr mokėjimui (sąskaitos-faktūros, užskymas, ...)
     FollowingUrlAreAvailableToMakePayments=Sekantys URL siūlo puslapį klientui Dolibarr objektų mokėjimui
     PaymentForm=Mokėjimo forma
    -WelcomeOnPaymentPage=Sveiki atvykę į mūsų interneto mokėjimo paslaugą
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Šis ekranas leidžia atlikti internetinį mokėjimą į %s
     ThisIsInformationOnPayment=Tai informacija apie reikalingą atlikti mokėjimą
     ToComplete=Užbaigti
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL siūlo %s interneto mokėjimui vartoto
     ToOfferALinkForOnlinePaymentOnContractLine=URL siūlo %s interneto mokėjimui vartotojo sąsają sutarties eilutei.
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL siūlo %s interneto mokėjimui vartotojo sąsaja nemokamam kiekiui.
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL pasiūlymui %s interneto mokėjimui vartotojo sąsają nario pasirašymui.
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Taip pat galite pridėti URL parametrą <b>&tag=<i>value</i></b> į bet kurį URL (reikalingas tik nemokamam mokėjimui) pridėti nuosavo mokėjimo komentaro žymę.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Nustatyti savo Paybox su URL <b>%s</b>, kad mokėjimas būtų sukuriamas automatiškai, kai patvirtintas per PayBox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Šis puslapis patvirtina, kad jūsų mokėjimas buvo užregistruotas. Ačiū.
    -YourPaymentHasNotBeenRecorded=Mokėjimas nebuvo įregistruotas ir operacija buvo atšaukta. Ačiū.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Sąskaitos parametrai
     UsageParameter=Naudojimo parametrai
     InformationToFindParameters=Padėti rasti savo %s sąskaitos informaciją
    diff --git a/htdocs/langs/lt_LT/projects.lang b/htdocs/langs/lt_LT/projects.lang
    index 39b55732516..281126f5b19 100644
    --- a/htdocs/langs/lt_LT/projects.lang
    +++ b/htdocs/langs/lt_LT/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Rodyti projektą
     ShowTask=Rodyti užduotį
     SetProject=Nustatykite projektą
     NoProject=Nėra apibrėžto ar turimo projekto
    -NbOfProjects=Projektų skaičius
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Praleistas laikas
     TimeSpentByYou=Jūsų sugaištas laikas
     TimeSpentByUser=Vartotojo sugaištas laikas
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Komercinių pasiūlymų, susijusių su projektu, sąrašas
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Sudarytų sutarčių, susijusių su projektu, sąrašas
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Intervencijų, susijusių su projektu, sąrašas
    -ListExpenseReportsAssociatedProject=Išlaidų, susijusių su projektu, ataskaitų sąrašas.
    -ListDonationsAssociatedProject=Paaukotų lėšų, susijusių su projektu, sąrašas.
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Įvykių, susijusių su projektu, sąrašas
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=Projekto užduotims sunaudoto laiko sąrašas.
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Susijęs su kita trečiąja šalimi
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Praleistas laikas yra tuščias
     ThisWillAlsoRemoveTasks=Šis veiksmas taip pat ištrins visas projekto užduotis (<b>%s</b> užduotis šiuo metu) ir visus praleisto laiko įvestus duomenis.
    -IfNeedToUseOhterObjectKeepEmpty=Jei kai kurie objektai (sąskaitos-faktūros, užsakymai, ...), priklausantys kitai trečiąjai šaliai, turi būti susiję su kuriamu projektu, laikykite šitą tuščią, kad projektas būtų kelių trečiųjų šalių (multi).
    +IfNeedToUseOtherObjectKeepEmpty=Jei kai kurie objektai (sąskaitos-faktūros, užsakymai, ...), priklausantys kitai trečiąjai šaliai, turi būti susiję su kuriamu projektu, laikykite šitą tuščią, kad projektas būtų kelių trečiųjų šalių (multi).
     CloneProject=Klonuoti projektą
     CloneTasks=Klonuoti užduotis
     CloneContacts=Klonuoti kontaktus
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Užduotis %s sukurta
     TaskModifiedInDolibarr=Užduotis %s modifikuota
     TaskDeletedInDolibarr=Užduotis %s ištrinta
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Straipsnio autorius
     SelectElement=Pasirinkti elementą
     AddElement=Susieti su elementu
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planuojamas darbo krūvis
     PlannedWorkloadShort=Darbo krūvis
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projektai su šiuo vartotoju kaip kontaktu.
     TasksWithThisUserAsContact=Užduotys, priskirtos šiam vartotojui
     ResourceNotAssignedToProject=Nepriskirtas projektui
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Pasiūlymas
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/lt_LT/propal.lang b/htdocs/langs/lt_LT/propal.lang
    index 25ae28327a9..ff24291e1c1 100644
    --- a/htdocs/langs/lt_LT/propal.lang
    +++ b/htdocs/langs/lt_LT/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Pasirašyta (reikia pateikti sąskaitą-faktūrą)
     PropalStatusNotSigned=Nepasirašyta (uždarytas)
     PropalStatusBilled=Sąskaita-faktūra pateikta
     PropalStatusDraftShort=Projektas
    -PropalStatusValidatedShort=Galiojantis
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Uždarytas
     PropalStatusSignedShort=Pasirašyta
     PropalStatusNotSignedShort=Nepasirašyta
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Pasiūlymas %s nerastas
     AddToDraftProposals=Pridėti į pasiūlymo projektą
     NoDraftProposals=Nėra pasiūlymų projekto
     CopyPropalFrom=Sukurti komercinį pasiūlymą kopijuojant esamą pasiūlymą
    -CreateEmptyPropal=Sukurti tuščią naują komercinį pasiūlymą arba iš produktų/paslaugų sąrašo
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Komercinio pasiūlymo galiojimo trukmė (dienomis) pagal nutylėjimą
    -UseCustomerContactAsPropalRecipientIfExist=Naudokite kliento kontaktinį adresą, jei aprašytas, vietoje trečiosios šalies adreso, kaip pasiūlymo gavėjo.
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Klonuoti komercinį pasiūlymą
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Kliento kontaktas tęstiniame pasiūlyme
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Išsamus užsakymo modelis (logo. ..)
    +DocModelCyanDescription=Išsamus užsakymo modelis (logo. ..)
     DefaultModelPropalCreate=Modelio sukūrimas pagal nutylėjimą
     DefaultModelPropalToBill=Šablonas pagal nutylėjimą, kai uždaromas verslo pasiūlymas (turi būti išrašyta sąskaita-faktūra)
     DefaultModelPropalClosed=Šablonas pagal nutylėjimą, kai uždaromas verslo pasiūlymas (sąskaita-faktūra neišrašoma)
    diff --git a/htdocs/langs/lt_LT/website.lang b/htdocs/langs/lt_LT/website.lang
    index 4c9347c884c..fde6d993ef0 100644
    --- a/htdocs/langs/lt_LT/website.lang
    +++ b/htdocs/langs/lt_LT/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kodas
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Skaityti
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/lv_LV/accountancy.lang b/htdocs/langs/lv_LV/accountancy.lang
    index 69d3bb0df97..6b0eecc8e7c 100644
    --- a/htdocs/langs/lv_LV/accountancy.lang
    +++ b/htdocs/langs/lv_LV/accountancy.lang
    @@ -2,7 +2,7 @@
     Accounting=Grāmatvedība
     ACCOUNTING_EXPORT_SEPARATORCSV=Eksportējamā faila kolonnu atdalītājs
     ACCOUNTING_EXPORT_DATE=Eksportējamā faila datuma formāts
    -ACCOUNTING_EXPORT_PIECE=Export the number of piece
    +ACCOUNTING_EXPORT_PIECE=Eksportēt vienību skaitu
     ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Eksports ar globālo kontu
     ACCOUNTING_EXPORT_LABEL=Eksportēt etiķeti
     ACCOUNTING_EXPORT_AMOUNT=Eksporta summa
    @@ -38,6 +38,10 @@ GroupIsEmptyCheckSetup=Grupa ir tukša, pārbaudiet personalizētās grāmatved
     DetailByAccount=Parādīt detalizētu informāciju par kontu
     AccountWithNonZeroValues=Konti, kuriem nav nulles vērtības
     ListOfAccounts=Kontu saraksts
    +CountriesInEEC=Valstis EEK
    +CountriesNotInEEC=Valstis, kas nav EEK valstīs
    +CountriesInEECExceptMe=Valstis EEK, izņemot %s
    +CountriesExceptMe=Visas valstis, izņemot %s
     
     MainAccountForCustomersNotDefined=Galvenais grāmatvedības konts klientiem, kas nav definēti iestatījumos
     MainAccountForSuppliersNotDefined=Galvenais grāmatvedības konts piegādātājiem, kas nav definēti iestatījumos
    @@ -135,7 +139,7 @@ BANK_DISABLE_DIRECT_INPUT=Atspējot tiešu darījumu reģistrāciju bankas kont
     ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Iespējot eksporta projektu žurnālā
     
     ACCOUNTING_SELL_JOURNAL=Pārdošanas žurnāls
    -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal
    +ACCOUNTING_PURCHASE_JOURNAL=Pirkuma žurnāls
     ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal
     ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal
     ACCOUNTING_SOCIAL_JOURNAL=Sociālais žurnāls
    @@ -156,15 +160,16 @@ Docref=Atsauce
     LabelAccount=Konta nosaukums
     LabelOperation=Etiķetes darbība
     Sens=Sens
    +LetteringCode=Burtu kods
     Codejournal=Žurnāls
     NumPiece=Gabala numurs
     TransactionNumShort=Num. darījums
    -AccountingCategory=Personalized groups
    +AccountingCategory=Personalizētas grupas
     GroupByAccountAccounting=Grupēt pēc grāmatvedības konta
     AccountingAccountGroupsDesc=Šeit jūs varat definēt dažas grāmatvedības kontu grupas. Tie tiks izmantoti personificētiem grāmatvedības pārskatiem.
     ByAccounts=Pēc kontiem
     ByPredefinedAccountGroups=Iepriekš definētās grupas
    -ByPersonalizedAccountGroups=Personificētās grupas
    +ByPersonalizedAccountGroups=Personalizētās grupas
     ByYear=Pēc gada
     NotMatch=Nav iestatīts
     DeleteMvt=Delete Ledger lines
    @@ -204,7 +209,7 @@ TotalVente=Total turnover before tax
     TotalMarge=Total sales margin
     
     DescVentilCustomer=Aplūkojiet šeit klienta rēķina līniju sarakstu, kas saistītas (vai nav) ar produktu grāmatvedības kontu
    -DescVentilMore=Vairumā gadījumu, ja jūs izmantojat iepriekš definētus produktus vai pakalpojumus, un produkta / pakalpojuma kartē norādiet konta numuru, programma varēs veikt visu saistību starp jūsu rēķina līnijām un jūsu kontu plāna grāmatvedības kontu, tikai vienu klikšķi, izmantojot pogu <strong> "%s" </ strong>. Ja konts nav iestatīts uz produktu / pakalpojumu kartēm vai ja jums joprojām ir dažas rindiņas, kurām nav saistības nevienā kontā, izvēlnē "<strong> %s </ strong>" būs jāveic manuāla piesaistīšana.
    +DescVentilMore=Vairumā gadījumu, ja jūs izmantojat iepriekš definētus produktus vai pakalpojumus, un produkta / pakalpojuma kartē norādiet konta numuru, programma varēs veikt visu saistību starp jūsu rēķina līnijām un jūsu kontu plāna grāmatvedības kontu, tikai vienu klikšķi, izmantojot pogu <strong> "%s" </ strong>. Ja konts nav iestatīts uz produktu / pakalpojumu kartēm vai ja jums joprojām ir dažas līnijas, kurām nav saistības ar kontu, izvēlnē "<strong> %s </ strong>" būs jāveic manuāla piesaistīšana.
     DescVentilDoneCustomer=Konsultējieties šeit ar rindu rēķinu klientu sarakstu un to produktu uzskaites kontu
     DescVentilTodoCustomer=Piesaistiet rēķina līnijas, kas vēl nav saistītas ar produkta grāmatvedības kontu
     ChangeAccount=Izmainiet produktu / pakalpojumu grāmatvedības kontu izvēlētajām līnijām ar šādu grāmatvedības kontu:
    @@ -221,6 +226,7 @@ AutomaticBindingDone=Automātiska piesaistīšana pabeigta
     
     ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
     MvtNotCorrectlyBalanced=Kustība nav pareizi sabalansēta. Debit = %s | Kredīts = %s
    +Balancing=Līdzsvarošana
     FicheVentilation=Iesiešanas kartiņa
     GeneralLedgerIsWritten=Darījumi ir rakstīti grāmatvedībā
     GeneralLedgerSomeRecordWasNotRecorded=Daži darījumi nevarēja tikt publicēti žurnālā. Ja nav citas kļūdas ziņojuma, iespējams, ka tie jau tika publicēti.
    @@ -232,7 +238,7 @@ NotYetAccounted=Vēl nav uzskaitīti virsgrāmatā
     
     ## Admin
     ApplyMassCategories=Pielietot masu sadaļas
    -AddAccountFromBookKeepingWithNoCategories=Pieejamais aprēķins vēl nav personalizētajā grupā
    +AddAccountFromBookKeepingWithNoCategories=Pieejamais konts, kas vēl nav personalizētajā grupā
     CategoryDeleted=Grāmatvedības konta kategorija ir noņemta
     AccountingJournals=Grāmatvedības žurnāli
     AccountingJournal=Grāmatvedības žurnāls
    @@ -247,7 +253,7 @@ AccountingJournalType5=Izdevumu pārskats
     AccountingJournalType8=Inventārs
     AccountingJournalType9=Ir jauns
     ErrorAccountingJournalIsAlreadyUse=Šis žurnāls jau ir izmantots
    -AccountingAccountForSalesTaxAreDefinedInto=Piezīme. Pārdošanas nodokļa grāmatvedības konts ir norādīts izvēlnē <b> %s </ b> - <b> %s </ b>.
    +AccountingAccountForSalesTaxAreDefinedInto=Piezīme. Pārdošanas nodokļa grāmatvedības konts ir norādīts izvēlnē <b> %s </b>- <b> %s </b>.
     
     ## Export
     ExportDraftJournal=Eksporta žurnāla projekts
    @@ -262,7 +268,8 @@ Modelcsv_quadratus=Export towards Quadratus QuadraCompta
     Modelcsv_ebp=Eksports uz EBP
     Modelcsv_cogilog=Eksportēt uz Cogilog
     Modelcsv_agiris=Eksports uz Agirisu
    -Modelcsv_configurable=Eksportēt konfigurējams
    +Modelcsv_configurable=Eksportēt CSV konfigurējamu
    +Modelcsv_FEC=Eksporta FEC (L47 A pants) (pārbaude)
     ChartofaccountsId=Kontu konts. Id
     
     ## Tools - Init accounting account on product / service
    @@ -289,18 +296,18 @@ Formula=Formula
     ## Error
     SomeMandatoryStepsOfSetupWereNotDone=Daži obligāti uzstādīšanas soļi nav pabeigti, lūdzu, aizpildiet tos
     ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries)
    -ErrorInvoiceContainsLinesNotYetBounded=Jūs mēģināt žurnalizēt dažas rindiņas <strong> %s </ strong>, bet citas rindas vēl nav saistītas ar grāmatvedības kontu. Visu rēķinu līniju žurnālu publicēšana par šo rēķinu tiek noraidīta.
    +ErrorInvoiceContainsLinesNotYetBounded=Jūs mēģināt žurnalizēt dažas rindiņas <strong> %s </strong>, bet citas rindas vēl nav saistītas ar grāmatvedības kontu. Visu rēķinu līniju žurnālu publicēšana par šo rēķinu tiek noraidīta.
     ErrorInvoiceContainsLinesNotYetBoundedShort=Dažas rēķina rindiņas nav saistītas ar grāmatvedības kontu.
     ExportNotSupported=Izveidotais eksporta formāts šajā lapā netiek atbalstīts
    -BookeppingLineAlreayExists=Jau esošas līnijas grāmatvedībā
    +BookeppingLineAlreayExists=Rindas, kas jau pastāv grāmatvedībā
     NoJournalDefined=Nav definēts žurnāls
     Binded=Līnijas saistītas
     ToBind=Rindiņas saistīt
    -UseMenuToSetBindindManualy=Autodekcija nav iespējama, izmantojiet izvēlni <a href="%s"> %s </a>, lai padarītu saistošu manuāli
    +UseMenuToSetBindindManualy=Līnijas, kas vēl nav saistītas, izmantojiet izvēlni <a href="%s"> %s </a>, lai padarītu saistošu manuāli
     
     ## Import
     ImportAccountingEntries=Grāmatvedības ieraksti
     
    -WarningReportNotReliable=Brīdinājums, šis pārskats nav balstīts uz grāmatvedi, tāpēc grāmatvedībā nav modificēta darījuma modificēšana. Ja žurnāls ir atjaunināts, grāmatvedības skats ir precīzāks.
    +WarningReportNotReliable=Brīdinājums. Šis pārskats nav balstīts uz grāmatvedi, tādēļ tajā nav darījumu, kas Manuāli ir manuāli modificēts. Ja žurnāls ir atjaunināts, grāmatvedības skats ir precīzāks.
     ExpenseReportJournal=Izdevumu atskaites žurnāls
     InventoryJournal=Inventāra žurnāls
    diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang
    index de9d9d1b455..3cae2e5aa41 100644
    --- a/htdocs/langs/lv_LV/admin.lang
    +++ b/htdocs/langs/lv_LV/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Attīstība
     VersionUnknown=Nezināms
     VersionRecommanded=Ieteicams
     FileCheck=Failu veseluma pārbaudītājs
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=Šis rīks ļauj pārbaudīt failu integritāti un jūsu lietojumprogrammas iestatījumus, salīdzinot katru failu ar oficiālo. Var pārbaudīt arī dažu iestatīšanas konstantes vērtību. Varat izmantot šo rīku, lai noteiktu, vai, piemēram, hacker ir modificējis dažus failus.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Failu integritātes pārbaude ir pagājusi, taču ir pievienoti daži jauni faili.
     FileIntegritySomeFilesWereRemovedOrModified=Failu integritātes pārbaude neizdevās. Daži faili tika mainīti, noņemti vai pievienoti.
     GlobalChecksum=Globālā kontrolsumma
     MakeIntegrityAnalysisFrom=Veiciet lietojumprogrammu failu integritātes analīzi no
    @@ -30,14 +30,14 @@ SessionSaveHandler=Pārdevējs, lai saglabātu sesijas
     SessionSavePath=Uzglabāšanas sesijas lokalizācija
     PurgeSessions=Iztīrīt sesijas
     ConfirmPurgeSessions=Vai jūs tiešām vēlaties iztīrītu visas sesijas? Tas atvienos katru lietotāju (izņemot sevi).
    -NoSessionListWithThisHandler=Saglabāt sesija apdarinātājs konfigurēts jūsu PHP neļauj uzskaitīt visas darbojošās sesijas.
    +NoSessionListWithThisHandler=Saglabāt sesijas apstrādātāju, kas konfigurēts jūsu PHP, neļauj uzskaitīt visas darbojas sesijas.
     LockNewSessions=Bloķēt jaunas sesijas
    -ConfirmLockNewSessions=Vai jūs tiešām vēlaties, ierobežot jebkuru jaunu Dolibarr savienojumu. Pēc tam varēs pieslēgties tikai lietotājs<b>%s</b>.
    +ConfirmLockNewSessions=Vai tiešām vēlaties ierobežot jebkuru jaunu Dolibarr savienojumu? Pēc tam varēs izveidot savienojumu tikai lietotājs <b> %s </b>.
     UnlockNewSessions=Noņemt savienojuma bloķēšanu
     YourSession=Jūsu sesija
    -Sessions=Lietotāju sesija
    +Sessions=Lietotāju sesijas
     WebUserGroup=Web servera lietotājs/grupa
    -NoSessionFound=Jūsu PHP, šķiet, neļauj uzskaitīt aktīvās sesijas. Katalogs, ko izmanto sesiju saglabāšanai (<b>%s</b>), var būt aizsargāts (piemēram, ar OS atļaujām vai PHP direktīvu open_basedir).
    +NoSessionFound=Šķiet, ka jūsu PHP nepieļauj aktīvo sesiju uzskaitījumu. Sarakstu (<b> %s </b>) saglabātais katalogs var tikt aizsargāts (piemēram, ar OS atļaujām vai PHP direktīvu open_basedir).
     DBStoringCharset=Datu bāzes kodējuma datu uzglabāšanai
     DBSortingCharset=Datu bāzes rakstzīmju kopa, lai kārtotu datus
     ClientCharset=Klienta kodējums
    @@ -60,16 +60,16 @@ SecuritySetup=Drošības iestatījumi
     SecurityFilesDesc=Define here options related to security about uploading files.
     ErrorModuleRequirePHPVersion=Kļūda, šim modulim ir nepieciešama PHP versija %s vai augstāka
     ErrorModuleRequireDolibarrVersion=Kļūda, šim modulim nepieciešama Dolibarr versija %s vai augstāka
    -ErrorDecimalLargerThanAreForbidden=Kļūda, precizitāte augstāka nekā <b>%s</b> netiek atbalstīta.
    +ErrorDecimalLargerThanAreForbidden=Kļūda, precizitāte augstāka nekā <b>%s</b> tiek atbalstīta.
     DictionarySetup=Vārdnīcas iestatījumi
     Dictionary=Vārdnīcas
     ErrorReservedTypeSystemSystemAuto=Vērtību "sistēma" un "systemauto" veida tiek aizsargātas. Jūs varat izmantot "lietotājs", kā vērtība, lai pievienotu savu ierakstu
     ErrorCodeCantContainZero=Kods nevar saturēt 0 vērtību
    -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
    +DisableJavascript=Atspējot JavaScript un Ajax funkcijas (ieteicams neredzīgām personām vai teksta pārlūkiem)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Pagaidiet, kamēr nospiediet taustiņu, pirms ievietojat trešo pušu kombinēto sarakstu saturu (tas var palielināt veiktspēju, ja jums ir liels skaits trešo daļu, bet tas ir mazāk ērts).
    -DelaiedFullListToSelectContact=Pagaidiet, kamēr nospiedat taustiņu, pirms ievietojat kontaktpersonu saraksta saturu (tas var palielināt veiktspēju, ja jums ir liels skaits kontaktu, bet tas ir mazāk ērti).
    +DelaiedFullListToSelectCompany=Pagaidiet, kamēr tiek nospiests taustiņš, pirms ievietojat trešo pušu saraksta saturu. <br> Tas var palielināt veiktspēju, ja jums ir liels skaits trešo personu, taču tas ir mazāk ērti.
    +DelaiedFullListToSelectContact=Pagaidiet, līdz tiek nospiests taustiņš, pirms ievietojat kontaktpersonu saraksta saturu. <br> Tas var palielināt veiktspēju, ja jums ir liels kontaktpersonu skaits, bet tas ir mazāk ērti).
     NumberOfKeyToSearch=Rakstzīmju skaits, lai iedarbinātu meklēšanu: %s
     NotAvailableWhenAjaxDisabled=Nav pieejama, kad Ajax ir bloķēts
     AllowToSelectProjectFromOtherCompany=Trešās puses dokumentā var izvēlēties projektu, kas ir saistīts ar citu trešo personu
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Priekšskatījums nav pieejams
     ThemeCurrentlyActive=aktīvā tēma
     CurrentTimeZone=Laika josla PHP (servera)
     MySQLTimeZone=Laika zona MySql (datubāze)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Datus uzglabā un nodod atpakaļ datubāzes serverim tā, it kā tie tiktu turēti kā iesniegtā virkne. Laika josla ir spēkā tikai tad, ja tiek izmantota funkcija UNIX_TIMESTAMP (kuru nedrīkst izmantot Dolibarr, tāpēc datubāzei TZ nedrīkst būt nekādas ietekmes, pat ja tas ir mainīts pēc datu ievadīšanas).
     Space=Telpa
     Table=Tabula
     Fields=Lauki
    @@ -91,7 +91,7 @@ NextValueForInvoices=Nākošā vērtība (rēķini)
     NextValueForCreditNotes=Nākošā vērtība (kredīta piezīmes)
     NextValueForDeposit=Nākamā vērtība (pirmā iemaksa)
     NextValueForReplacements=Tālāk vērtība (nomaiņa)
    -MustBeLowerThanPHPLimit=Piezīme: jūsu PHP ierobežo katra failu augšupielādes lielumu, lai <b>%s</b> %s, neatkarīgi no šī parametra vērtība ir
    +MustBeLowerThanPHPLimit=Piezīme: jūsu PHP ierobežo katra failu augšupielādes lielumu <b>%s</b> %s, neatkarīgi no šī parametra vērtība ir
     NoMaxSizeByPHPLimit=Piezīme: Nav limits tiek noteikts jūsu PHP konfigurācijā
     MaxSizeForUploadedFiles=Maksimālais augšupielādējamo failu izmērs (0 nepieļaut failu augšupielādi)
     UseCaptchaCode=Izmantot grafisko kodu (CAPTCHA) pieteikšanās lapā
    @@ -126,8 +126,8 @@ PHPTZ=PHP servera Laika zona
     DaylingSavingTime=Vasaras laiks
     CurrentHour=PHP laiks (servera)
     CurrentSessionTimeOut=Pašreizējais sesijas taimauts
    -YouCanEditPHPTZ=Lai iestatītu citu PHP laika joslu (nav nepieciešams), varat mēģināt pievienot failu .htaccess ar tādu līniju kā "SetEnv TZ Europe / Paris"
    -HoursOnThisPageAreOnServerTZ=Brīdinājums, pretēji citiem ekrāniem, šīs lapas stundas neatrodas jūsu vietējā laika joslā, bet gan servera laika joslai.
    +YouCanEditPHPTZ=Lai iestatītu citu PHP laika joslu (nav nepieciešams), varat mēģināt pievienot .htaccess failu ar tādu līniju kā "SetEnv TZ Europe / Paris"
    +HoursOnThisPageAreOnServerTZ=Brīdinājums, pretēji citiem ekrāniem, šīs lapas stundas neatrodas jūsu vietējā laika joslā, bet servera laika joslā.
     Box=Logrīks
     Boxes=Logrīki
     MaxNbOfLinesForBoxes=Maksimālais logrīku līniju skaits
    @@ -144,14 +144,14 @@ SystemToolsArea=Sistēmas rīku iestatīšana
     SystemToolsAreaDesc=Šī sadaļa piedāvā administrēšanas funkcijas. Lietojiet izvēlni, lai izvēlētos funkciju kuru Jūs meklējat.
     Purge=Tīrīt
     PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
    -PurgeDeleteLogFile=Dzēsiet žurnāla failus, tostarp <b> %s </ b>, kas definēti Syslog modulim (nav datu pazaudēšanas riska).
    -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data)
    +PurgeDeleteLogFile=Dzēsiet žurnāla failus, tostarp <b> %s </b>, kas definēti Syslog modulim (nav datu pazaudēšanas riska).
    +PurgeDeleteTemporaryFiles=Dzēst visus pagaidu failus (nav datu pazaudēšanas riska)
     PurgeDeleteTemporaryFilesShort=Dzēst pagaidu failus
     PurgeDeleteAllFilesInDocumentsDir=Dzēst visus failus direktorijā <b>%s</b>. Pagaidu failus un arī datu bāzes rezerves dumpus, pievienotie faili pievienoti elementiem (trešās personas, rēķini, ...) un augšupielādēta ECM modulī tiks dzēsti.
     PurgeRunNow=Tīrīt tagad
     PurgeNothingToDelete=Nav mapes vai failu, kurus jādzēš.
     PurgeNDirectoriesDeleted=<b>%s</b> faili vai direktorijas dzēsti.
    -PurgeNDirectoriesFailed=Neizdevās izdzēst failus vai direktorijas <b> %s </ b>.
    +PurgeNDirectoriesFailed=Neizdevās izdzēst failus vai direktorijas <b>%s</b>.
     PurgeAuditEvents=Tīrīt visus drošības ierakstus
     ConfirmPurgeAuditEvents=Vai jūs tiešām vēlaties, lai iztīrīt visus drošības notikumus? Visi drošības žurnāli tiks dzēsti, nekādi citi dati netiks dzēsti.
     GenerateBackup=Izveidot rezerves kopiju
    @@ -186,33 +186,33 @@ NameColumn=Nosaukums kolonnas
     ExtendedInsert=Pagarināts INSERT
     NoLockBeforeInsert=Nav atslēga komandas ap INSERT
     DelayedInsert=Kavējas ieliktnis
    -EncodeBinariesInHexa=Šifrēt bināro datu heksadecimālo
    +EncodeBinariesInHexa=Šifrēt bināros datus heksadecimālajos
     IgnoreDuplicateRecords=Ignorēt dubulto ierakstu kļūdas (INSERT IGNORE)
     AutoDetectLang=Automātiski noteikt (pārlūka valoda)
     FeatureDisabledInDemo=Iespēja bloķēta demo versijā
     FeatureAvailableOnlyOnStable=Funkcija ir pieejama tikai oficiālajā stabilā versijā
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Logrīki ir sastāvdaļas, kas parāda informāciju, kuru varat pievienot, lai personalizētu dažas lapas. Varat izvēlēties starp widget parādīšanu, izvēloties mērķa lapu un noklikšķinot uz Aktivizēt, vai noklikšķinot uz atkritnes, lai to atspējotu.
     OnlyActiveElementsAreShown=Tikai elementus no <a href="%s">iespējotu moduļi</a> tiek parādīts.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=Ja to ļauj atļaujas jūsu failu sistēmā, varat izmantot šo rīku, lai izvietotu ārēju moduli. Tad modulis būs redzams cilnē <strong> %s </ strong>.
    +ModulesDesc=Moduļi / lietojumprogrammas nosaka, kādas funkcijas ir pieejamas programmatūrā. Daži moduļi pieprasa atļauju lietotājiem pēc moduļa aktivizēšanas. Noklikšķiniet uz ieslēgšanas / izslēgšanas pogas (moduļa beigās), lai iespējotu / atspējotu moduli / programmu.
    +ModulesMarketPlaceDesc=Jūs varat atrast vairāk moduļu, lai lejupielādētu ārējās tīmekļa vietnēs internetā ...
    +ModulesDeployDesc=Ja atļaujas jūsu failu sistēmā to atļauj, varat izmantot šo rīku, lai izvietotu ārēju moduli. Tad modulis būs redzams cilnē <strong> %s </ strong>.
     ModulesMarketPlaces=Atrastt ārējo lietotni / moduļus
     ModulesDevelopYourModule=Izstrādājiet savu lietotni / moduļus
    -ModulesDevelopDesc=Jūs varat attīstīt vai atrast partneri, kas izstrādās jums, jūsu personalizēto moduli
    -DOLISTOREdescriptionLong=Tā vietā, lai pārlūkotu <a href="https://www.dolistore.com"> www.dolistore.com </a> tīmekļa vietni, lai atrastu ārēju moduli, varat izmantot šo iegulto rīku, kas veic meklēšanu ārējā tirgus vieta jums (var būt lēns, nepieciešams interneta pieslēgums) ...
    +ModulesDevelopDesc=Varat arī izveidot savu moduli vai atrast partneri, lai to izveidotu jums.
    +DOLISTOREdescriptionLong=Tā vietā, lai pārlūkotu <a href="https://www.dolistore.com"> www.dolistore.com </a> tīmekļa vietni, lai atrastu ārēju moduli, varat izmantot šo iegulto rīku, kas veiks meklēšanu vietnē ārējā tirgus vieta jums (var būt lēns, nepieciešams interneta pieslēgums) ...
     NewModule=Jauns
     FreeModule=Bezmaksas
     CompatibleUpTo=Savietojams ar versiju %s
     NotCompatible=Šis modulis, šķiet, nav savietojams ar jūsu Dolibarr %s (Min %s - Max %s).
    -CompatibleAfterUpdate=Šis modulis prasa atjaunināt Dolibarr %s (Min %s - Max %s).
    +CompatibleAfterUpdate=Šis modulis prasa atjaunināt Dolibarr %s (Min %s - Maks %s).
     SeeInMarkerPlace=Skatiet Marketplace
     Updated=Atjaunots
     Nouveauté=Jaunums
     AchatTelechargement=Pirkt / lejupielādēt
     GoModuleSetupArea=Lai izvietotu / instalētu jaunu moduli, dodieties uz moduļa iestatīšanas apgabalu vietnē <a href="%s"> %s </a>.
     DoliStoreDesc=DoliStore ir oficiālā mājaslapa Dolibarr ERP / CRM papildus moduļiem
    -DoliPartnersDesc=Saraksts ar uzņēmumiem, kas piedāvā pielāgotus izstrādātus moduļus vai funkcijas (Piezīme: ikviens, kas pieredzējis PHP programmēšanu, var nodrošināt pielāgotu izstrādi atklātā pirmkoda projektam)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=Uzņēmumi, kas piedāvā pielāgotus izstrādātus moduļus vai funkcijas. <br> Piezīme: tā kā Dolibarr ir atvērtā koda programma, <i> ikviens </ i>, kurš ir pieredzējis PHP programmēšanā, var izveidot moduli.
    +WebSiteDesc=Ārējās vietnes vairākiem papildinājumiem (bez kodols) moduļiem ...
     DevelopYourModuleDesc=Daži risinājumi, lai izstrādātu savu moduli ...
     URL=Saite
     BoxesAvailable=Pieejamie logrīki
    @@ -227,9 +227,9 @@ Security=Drošība
     Passwords=Paroles
     DoNotStoreClearPassword=Neglabāt nešifrētas paroles datubāzē bet izmantot šifrētas (aktivizācija ieteicama)
     MainDbPasswordFileConfEncrypted=Datubāzes paroli šifrēti conf.php (aktivēt ieteicams)
    -InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
    +InstrucToEncodePass=Lai paroli šifrētu <b> conf.php </b> failā, nomainiet rindiņu <br><b> $ dolibarr_main_db_pass = "..."; </b>  <br>ar<br><b> $ dolibarr_main_db_pass = "crypted: %s"; </b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Ģenerēto PDF failu aizsardzība (aktivizēta NAV ieteicama, masveida pdf veidošanai)
    +ProtectAndEncryptPdfFiles=Radīto PDF failu aizsardzība NAV ieteicama (pārtraukumi masas PDF paaudzes)
     ProtectAndEncryptPdfFilesDesc=Aizsardzība PDF dokumentu saglabā to pieejamu lasīt un izdrukāt ar jebkuru PDF pārlūkprogrammu. Tomēr, rediģēšana un kopēšana nav iespējams vairs. Ņemiet vērā, ka, izmantojot šo funkciju veidojot kopējos apvienotos pdf nedarbojas (piemēram, neapmaksātiem rēķiniem). 
     Feature=Iespēja
     DolibarrLicense=Licence
    @@ -239,15 +239,15 @@ OfficialWebSiteLocal=Lokālā mājas lapa (%s)
     OfficialWiki=Dolibarr Wiki dokumentācija
     OfficialDemo=Dolibarr tiešsaistes demo
     OfficialMarketPlace=Oficiālais tirgus vieta ārējiem moduļiem/papildinājumiem
    -OfficialWebHostingService=Referenced web hosting services (Cloud hosting)
    -ReferencedPreferredPartners=Preferred Partners
    +OfficialWebHostingService=Saistītie tīmekļa vietnes pakalpojumi (Cloud hosting)
    +ReferencedPreferredPartners=Ieteicamie partneri
     OtherResources=Citi resursi
     ExternalResources=Ārējie resursi
     SocialNetworks=Sociālie tīkli
     ForDocumentationSeeWiki=Par lietotāju vai attīstītājs dokumentācijas (Doc, FAQ ...), <br> ieskatieties uz Dolibarr Wiki: <br> <a href="%s" target="_blank"><b>%s</b></a>
     ForAnswersSeeForum=Attiecībā uz jebkuru citu jautājumu / palīdzēt, jūs varat izmantot Dolibarr forumu: <br> <a href="%s" target="_blank"><b>%s</b></a>
    -HelpCenterDesc1=Šī sadaļa var palīdzēt jums, lai saņemtu palīdzības dienesta atbalstu Dolibarr programmai.
    -HelpCenterDesc2=Daži no šo pakalpojumu daļa ir pieejama <b>tikai angļu valodā.</b>
    +HelpCenterDesc1=Šeit ir daži resursi, lai iegūtu Dolibarr palīdzību un atbalstu.
    +HelpCenterDesc2=Daži no šiem resursiem ir pieejami tikai <b> angliski </b>.
     CurrentMenuHandler=Pašreizējais izvēlnes apstrādātājs
     MeasuringUnit=Mērvienības
     LeftMargin=Kreisā robeža
    @@ -262,31 +262,35 @@ NoticePeriod=Paziņojuma periods
     NewByMonth=Jauns pa mēnešiem
     Emails=E-pasti
     EMailsSetup=E-pastu iestatīšana
    -EMailsDesc=Šī lapa ļauj jums pārrakstīt jūsu PHP parametrus e-pasta nosūtīšanai. Vairumā gadījumu uz Unix / Linux OS, jūsu PHP iestatīšana ir pareiza, un šie parametri ir bezjēdzīgi.
    +EMailsDesc=Šī lapa ļauj jums ignorēt jūsu noklusējuma PHP parametrus e-pasta sūtīšanai. Vairumā gadījumu uz Unix / Linux OS, PHP iestatīšana ir pareiza, un šie parametri nav vajadzīgi.
     EmailSenderProfiles=E-pasta sūtītāju profili
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS Ports (Pēc noklusējuma php.ini: <b>%s)</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS serveris (Pēc noklusējuma php.ini: <b>%s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS Port (Nav noteikts uz PHP uz Unix, piemēram, sistēmas)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (Nav noteikts uz PHP uz Unix, piemēram, sistēmas)
    -MAIN_MAIL_EMAIL_FROM=Sūtītāja e-pasta ziņojums automātiskajiem e-pasta ziņojumiem (pēc noklusējuma lietotnē php.ini: <b> %s </ b>)
    -MAIN_MAIL_ERRORS_TO=Eemails, ko izmanto kļūdas gadījumā, atgriež e-pastus (laukos 'Kļūdas-To' e-pasta vēstulēs)
    -MAIN_MAIL_AUTOCOPY_TO= Nosūtīt sistemātiski visu nosūtīto e-pastu slēptu kopiju uz
    -MAIN_DISABLE_ALL_MAILS=Atspējot visus e-pasta sūtījumus (testēšanas nolūkos vai demos)
    +MAIN_MAIL_SMTP_PORT=SMTP / SMTPS ports (noklusējuma vērtība php.ini: <b> %s </b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Resursa (noklusējuma vērtība php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS ports (nav definēts PHP uz Unix līdzīgām sistēmām)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS resurs (nav definēts PHP Unix līdzīgās sistēmās)
    +MAIN_MAIL_EMAIL_FROM=Sūtītāja e-pasta ziņojums automātiskajiem e-pasta ziņojumiem (noklusējuma vērtība php.ini: <b> %s </b>)
    +MAIN_MAIL_ERRORS_TO=E-pasts, ko izmanto, lai kļūtu, atgriež e-pastus (laukos 'Kļūdas-To' e-pasta ziņojumos)
    +MAIN_MAIL_AUTOCOPY_TO= Kopija (Bcc) visi nosūtītie e-pasta ziņojumi uz
    +MAIN_DISABLE_ALL_MAILS=Atspējot visu e-pasta sūtīšanu (izmēģinājuma nolūkos vai demonstrācijās)
     MAIN_MAIL_FORCE_SENDTO=Nosūtiet visus e-pastus (nevis reāliem saņēmējiem, lai veiktu pārbaudes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Pievienojiet darbinieku lietotājus ar e-pasta adresi atļauto sarakstos
    -MAIN_MAIL_SENDMODE=Metode ko izmantot sūtot e-pastus
    -MAIN_MAIL_SMTPS_ID=SMTP ID ja autentificēšana nepieciešama
    -MAIN_MAIL_SMTPS_PW=SMTP parole ja autentificēšanās nepieciešama
    -MAIN_MAIL_EMAIL_TLS= Izmantot TLS (SSL) šifrēšanu
    -MAIN_MAIL_EMAIL_STARTTLS= Izmantot TLS (SSL) šifrēšanu
    -MAIN_DISABLE_ALL_SMS=Atslēgt visas SMS sūtīšanas (izmēģinājuma nolūkā vai demo)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Pievienojiet darbinieka lietotājus ar e-pasta adresi atļauto adresātu sarakstā
    +MAIN_MAIL_SENDMODE=E-pasta sūtīšanas veids
    +MAIN_MAIL_SMTPS_ID=SMTP ID (ja servera nosūtīšanai nepieciešama autentifikācija)
    +MAIN_MAIL_SMTPS_PW=SMTP parole (ja servera sūtīšanai nepieciešama autentificēšanās)
    +MAIN_MAIL_EMAIL_TLS=Izmantot TLS (SSL) šifrēšanu
    +MAIN_MAIL_EMAIL_STARTTLS=Izmantojiet TLS (STARTTLS) šifrēšanu
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Izmantojiet DKIM, lai ģenerētu e-pasta parakstu
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=E-pasta domēns lietošanai ar DKIM
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=DKIM selektora nosaukums
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Privāta atslēga DKIM parakstīšanai
    +MAIN_DISABLE_ALL_SMS=Atspējot visas īsziņu sūtīšanas (testa nolūkos vai demo)
     MAIN_SMS_SENDMODE=Izmantojamā metode SMS sūtīšanai
    -MAIN_MAIL_SMS_FROM=Noklusētais sūtītāja tālruņa numurs SMS sūtīšanai
    -MAIN_MAIL_DEFAULT_FROMTYPE=Nosūtītāja e-pasts pēc noklusējuma manuālai sūtīšanai (lietotāja e-pasts vai uzņēmuma e-pasts)
    +MAIN_MAIL_SMS_FROM=Noklusētais sūtītāja tālruņa numurs SMS nosūtīšanai
    +MAIN_MAIL_DEFAULT_FROMTYPE=Noklusējuma sūtītāja e-pasta ziņojums manuālai sūtīšanai (lietotāja e-pasts vai uzņēmuma e-pasts)
     UserEmail=Lietotāja e-pasts
     CompanyEmail=Uzņēmuma e-pasts
     FeatureNotAvailableOnLinux=Iezīme nav pieejams Unix, piemēram, sistēmas. Pārbaudi savu sendmail programmai vietas.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=Ja šīs valodas tulkojums nav pabeigts vai jūs atradāt kļūdas, varat to labot, rediģējot failus katalogā <b> langs / %s </b> un iesniedziet izmaiņas vietnē www.transifex.com/dolibarr-association/dolibarr/.
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Moduļa iestatīšana
     ModulesSetup=Moduļu/Aplikāciju iestatīšana
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-moduļu rīki
     ModuleFamilyExperimental=Eksperimentālie moduļi
     ModuleFamilyFinancial=Finanšu Moduļi (Grāmatvedība/kase)
     ModuleFamilyECM=Elektroniskais Satura Vadība (ESV)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Mājas lapas un citi frontālie lietojumi
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Izvēlnes manipulatori
     MenuAdmin=Izvēlnes redaktors
    @@ -309,17 +313,17 @@ DoNotUseInProduction=Neizmantot produkcijā
     ThisIsProcessToFollow=Šie ir soļi, kas jāipilda:
     ThisIsAlternativeProcessToFollow=Tas ir alternatīvs iestatījums, lai apstrādātu manuāli:
     StepNb=Solis %s
    -FindPackageFromWebSite=Atrast paku, kas nodrošina iespēju,  kura jums ir nepieciešama (piemēram oficiālajā tīmekļa vietnē %s).
    +FindPackageFromWebSite=Atrodiet paketi, kurā ir norādītas vēlamās funkcijas (piemēram, oficiālajā tīmekļa vietnē %s).
     DownloadPackageFromWebSite=Lejupielādēt arhīvu (piem. no oficialās mājas lapas %s).
    -UnpackPackageInDolibarrRoot=Atarhivēt paku Dolibarr servera direktorijā, kas paredzēta Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=Lai izvietotu / instalētu ārēju moduli, izpakojiet iepakotos failus serveru direktorijā, kas ir saistīts ar moduļiem: <b> %s </ b>
    -SetupIsReadyForUse=Moduļa izvietošana ir pabeigta. Tomēr jums ir jāiespējo un jāiestata modulis jūsu programmā, dodoties uz lapu, lai mainītu moduļu iestatījumus: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Ielieciet / noņemiet iepakotos failus servera direktorijā, kas veltīts Dolibarr: <b> %s </b>
    +UnpackPackageInModulesRoot=Lai izvietotu / instalētu ārējo moduli, izpakotu / izjauktu iepakotos failus ārējo moduļu servera direktorijā: <br> <b> %s </ b>
    +SetupIsReadyForUse=Moduļa izvietošana ir pabeigta. Tomēr savā pieteikumā ir jāiespējo un jāiestata modulis, dodoties uz lapu iestatīšanas moduļiem: <a href="%s"> %s </a>.
     NotExistsDirect=Alternatīva saknes direktorijs nav definēta.<br>
     InfDirAlt=Kopš 3 versijas, ir iespējams noteikt alternatīvu sakne directory.Tas ļauj jums saglabāt, tajā pašā vietā, papildinājumus un pielāgotas veidnes.<br> Jums tikai jāizveido direktoriju Dolibarr saknē (piemēram: custom).<br>
    -InfDirExample=<br> Pēc tam paziņojiet to failā <strong> conf.php </ strong> <br> $ dolibarr_main_url_root_alt = "/ custom" <br> <br> dolibarr_main_document_root_alt = '/ path / of / dolibarr / htdocs / custom' <br> Ja šīm rindiņām tiek komentētas ar "#", lai tās iespējotu, vienkārši izmainiet, noņemot "#" rakstzīmi.
    -YouCanSubmitFile=Šajā solī jūs varat iesniegt moduļu paketes zip failu šeit:
    +InfDirExample=<br> Pēc tam ierakstiet to failā <strong>conf.php </strong><br>$ dolibarr_main_url_root_alt = "/custom" <br>$dolibarr_main_document_root_alt = '/path/of/dolibarr/htdocs/ custom' <br> Ja šīm rindiņas ir komentētas ar "#", lai tās iespējotu, vienkārši noņemiet "#" simbolu.
    +YouCanSubmitFile=Varat arī augšupielādēt moduļa .zip failu paketi:
     CurrentVersion=Dolibarr pašreizējā versija
    -CallUpdatePage=Go to the page that updates the database structure and data: %s.
    +CallUpdatePage=Pārejiet uz lapu, kura atjaunina datu bāzes struktūru un datus: %s.
     LastStableVersion=Jaunākā stabilā versija
     LastActivationDate=Jaunākais aktivizācijas datums
     LastActivationAuthor=Jaunākais aktivizētāja autors
    @@ -329,7 +333,7 @@ WithCounter=Pārvaldīt skaitītāju
     GenericMaskCodes=Jūs varat ievadīt jebkuru numerācijas masku. Šajā maska, šādus tagus var izmantot: <br> <b>{000000}</b> atbilst skaitam, kas tiks palielināts par katru %s. Ievadīt tik daudz nullēm, kā vajadzīgajā garumā letes. Skaitītājs tiks pabeigts ar nullēm no kreisās puses, lai būtu tik daudz nullēm kā masku. <br> <b>{000000 000}</b> tāds pats kā iepriekšējais, bet kompensēt atbilst noteiktam skaitam pa labi uz + zīmi tiek piemērots, sākot ar pirmo %s. <br> <b>{000000 @ x}</b> tāds pats kā iepriekšējais, bet skaitītājs tiek atiestatīts uz nulli, kad mēnesī x ir sasniegts (x no 1 līdz 12, 0 vai izmantot agri no finanšu gada mēnešiem, kas noteiktas konfigurācijas, 99 vai atiestatīt uz nulli katru mēnesi ). Ja šis variants tiek izmantots, un x ir 2 vai vairāk, tad secība {gggg} {mm} vai {GGGG} {mm} ir arī nepieciešama. <br> <b>{Dd}</b> diena (no 01 līdz 31). <br> <b>{Mm}</b> mēnesi (no 01 līdz 12). <br> <b>{Yy}, {GGGG}</b> vai <b>{y}</b> gadu vairāk nekā 2, 4 vai 1 numuri. <br>
     GenericMaskCodes2=<b>{cccc}</b> the client code on n characters<br><b>{cccc000}</b> the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.<br><b>{tttt}</b> The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.<br>
     GenericMaskCodes3=Visas citas rakstzīmes masku paliks neskartas.<br>Atstarpes nav atļautas.<br>
    -GenericMaskCodes4a=<u>Example on the 99th %s of the third party TheCompany, with date 2007-01-31:</u><br>
    +GenericMaskCodes4a=<u> Piemērs 99. %s no trešās personas TheCompany, ar datumu 2007-01-31: </u><br>
     GenericMaskCodes4b=<u>Piemērs trešā persona veidota 2007-03-01:</u><br>
     GenericMaskCodes4c=<u>Piemērs produkts veidots 2007-03-01:</u><br>
     GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100@1}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b><br><b>IN{yy}{mm}-{0000}-{t}</b> will give <b>IN0701-0099-A</b> if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI'
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Apskatiet wiki lapu, lai uzzinātu visu dalībnieku un to orga
     UseACacheDelay= Kavēšanās caching eksporta atbildes sekundēs (0 vai tukšs bez cache)
     DisableLinkToHelpCenter=Paslēpt saites <b>"vajadzīga palīdzība vai atbalsts"</b> pieteikšanās lapā
     DisableLinkToHelp=Noslēpt saiti uz tiešsaistes palīdzību "<b>%s</b>"
    -AddCRIfTooLong=Nav automātiska iesaiņošanas, tādēļ, ja līnija ir no lapas uz dokumentiem, jo ​​pārāk ilgi, jums ir pievienot sev pārvadāšanas atdevi textarea.
    -ConfirmPurge=Vai jūs tiešām vēlaties, lai izpildītu šo attīrīta? <br> Tas izdzēsīs noteikti visus savus datu failus ar nekādi atjaunot to (ECM failus, pievienotos failus ...).
    +AddCRIfTooLong=Nav automātiskas teksta ietīšanas, pārāk garš teksts netiks parādīts dokumentos. Ja nepieciešams, lūdzu, pievienojiet teksta laukā tekstu.
    +ConfirmPurge=Vai tiešām vēlaties izpildīt šo tīrīšanu? <br> Tas neatgriezeniski izdzēsīs visus jūsu datu failus, tos nevarēs atjaunot (ECM faili, pievienoti faili ...).
     MinLength=Minimālais garums
     LanguageFilesCachedIntoShmopSharedMemory=Faili .lang ielādēti kopējā atmiņā
     LanguageFile=Valodas fails
    -ExamplesWithCurrentSetup=Piemēri ar pašreizējiem iestatījumiem
    +ExamplesWithCurrentSetup=Piemēri ar pašreizējo konfigurāciju
     ListOfDirectories=Saraksts OpenDocument veidnes katalogi
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Skaits ODT / ODS veidnes failiem atrast šajās katalogi
    +NumberOfModelFilesFound=ODT / ODS veidņu failu skaits, kas atrodams šajos katalogos
     ExampleOfDirectoriesForModelGen=Piemēri sintaksi: <br> c: \\ mydir <br> / Home / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> Lai uzzinātu, kā izveidot savu odt dokumentu veidnes, pirms uzglabājot tos šajos katalogi, lasīt wiki dokumentus:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Galvenais, lai izmantotu Web Services (parametrs "doliba
     TestSubmitForm=Ievades testa forma
     ThisForceAlsoTheme=Izmantojot šo izvēlni vadītājs būs arī izmantot savu tēmu kāds ir lietotāja izvēles. Arī šī izvēlne vadītājs specializējies smartphones nav strādā uz visām viedtālrunis. Izmantot citu izvēlnes pārvaldnieku, ja jums rodas problēmas jums.
     ThemeDir=Izskata katalogs
    -ConnectionTimeout=Savienojuma taimauts
    +ConnectionTimeout=Savienojuma beigu laiks
     ResponseTimeout=Atbildes taimauts
     SmsTestMessage=Testa ziņojums no __ PHONEFROM__ to __ PHONETO__
     ModuleMustBeEnabledFirst=Modulim <b>%s</b> jābūt aktivizētam vispirms, ja jūs vēlaties izmantot šo funkciju.
     SecurityToken=Atslēga uz drošu saiti
    -NoSmsEngine=Nav SMS sūtītšanas iespēja pieejama. SMS sūtīšanas iespēja nav uzstādītas ar noklusējuma instalāciju (tāpēc, ka tas ir atkarīgs no ārēja piegādātāja), bet jūs varat atrast dažas sms sūtīšanas iespējas %s
    +NoSmsEngine=Nav pieejams SMS sūtītāju pārvaldnieks. SMS sūtītāju pārvaldnieks nav instalēts ar noklusējuma izplatīšanu, jo tas ir atkarīgs no ārējā piegādātāja, taču jūs varat atrast kādu no %s
     PDF=PDF
    -PDFDesc=Jūs varat iestatīt katru pasaules iespējas, kas saistītas ar PDF paaudzes
    +PDFDesc=Varat iestatīt katru globālo opciju, kas saistīta ar PDF ģenerēšanu
     PDFAddressForging=Noteikumi veidojot adreses lauku
     HideAnyVATInformationOnPDF=Slēpt visu ar pārdošanas nodokli / PVN saistīto informāciju par radīto PDF failu
     PDFRulesForSalesTax=Pārdošanas nodokļa / PVN noteikumi
     PDFLocaltax=Noteikumi par %s
    -HideLocalTaxOnPDF=Slēpt %s likmi pdf kolonnas nodokļu pārdošanas
    +HideLocalTaxOnPDF=Slēpt %s likmi pdf kolonnas nodokļu pārdošanā
     HideDescOnPDF=Slēpt produktu aprakstu radītos PDF
     HideRefOnPDF=Slēpt produktu ref. izveidotajos PDF
     HideDetailsOnPDF=Slēpt produktu līnijas detaļas izveidotajos PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parametri, lai nodrošinātu drošas saites
     SecurityTokenIsUnique=Izmantojiet unikālu securekey parametrs katram URL
     EnterRefToBuildUrl=Ievadiet atsauci objektam %s
     GetSecuredUrl=Saņemt aprēķināto URL
    -ButtonHideUnauthorized=Slēpt pogas, kas nav pieejamas nevis rādīt tās pelēcīgas
    +ButtonHideUnauthorized=Slēpt pogas ne-admin lietotājiem, lai veiktu nesankcionētas darbības, nevis parādīt pelēkās pogas, kas ir atspējotas
     OldVATRates=Vecā PVN likme
     NewVATRates=Jaunā PVN likme
     PriceBaseTypeToChange=Pārveidot par cenām ar bāzes atsauces vērtību, kas definēta tālāk
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Izvēlēties sarakstu
     ExtrafieldSelectList = Izvēlieties kādu no tabulas
     ExtrafieldSeparator=Atdalītājs (nevis lauks)
     ExtrafieldPassword=Parole
    -ExtrafieldRadio=Radio pogas (tikai izvēlei)
    +ExtrafieldRadio=Radio pogas (tikai viena izvēle)
     ExtrafieldCheckBox=Izvēles rūtiņas
     ExtrafieldCheckBoxFromList=Izvēles rūtiņas no tabulas
     ExtrafieldLink=Saite uz objektu
     ComputedFormula=Aprēķinātais lauks
     ComputedFormulaDesc=Šeit varat ievadīt formulu, izmantojot citas objekta īpašības vai jebkuru PHP kodēšanu, lai iegūtu dinamisku aprēķinātu vērtību. Varat izmantot visas PHP saderīgās formulas, tostarp "?" nosacījumu operators un pēc globāla objekta: <strong> $ db, $ conf, $ langs, $ mysoc, $ user, $ object </ strong>. <br> <strong> BRĪDINĀJUMS </ strong>: tikai dažas $ objekts var būt pieejams. Ja jums ir vajadzīgas īpašības, kas nav ielādētas, vienkārši iegūstiet sev objektu savā formulā kā otrajā piemērā. <br> Izmantojot aprēķināto lauku, jūs nevarat ievadīt sev jebkādu vērtību no saskarnes. Arī tad, ja ir sintakses kļūda, formula var atgriezties neko. <br> <br> Formulas piemērs: <br> $ object-> id <10? ($ object-> id / 2, 2): ($ object-> id + 2 * $ user-> id) * (int) substr ($ mysoc-> zip, 1, 2) <br> <br> Piemērs, lai atkārtoti ielādētu objektu <br> (($ reloadedobj = jauns Societe ($ db)) && ($ reloadedobj-> fetch ($ obj-> id? $ Obj-> id: ($ obj-> rowid? $ Obj- rowid: $ object-> id))> 0))? $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1' <br> <br> Cits piemērs formulas, lai piespiestu objekta un tā vecāka objekta slodzi: <br> (($ reloadedobj = jauns uzdevums ($ db)) && ($ reloadedobj-> fetch ($ object-> id)> 0) && ($ secondloadedobj = jauns projekts ($ db)) && ($ secondloadedobj-> fetch ($ reloadedobj-> fk_project )> 0))? $ secondloadedobj-> ref: 'Vecāks projekts nav atrasts'
    -ExtrafieldParamHelpPassword=Saglabājiet šo lauku tukša nozīmē, ka vērtība tiks saglabāta bez šifrēšanas (laukam jābūt tikai paslēptai ar zvaigznīti uz ekrāna). <br> Uzstādīt šeit vērtību "auto", lai izmantotu noklusējuma šifrēšanas kārtulu, lai saglabātu paroli datubāzē (pēc tam vērtība lasīt būs hash only, nekādā veidā noturēt sākotnējo vērtību)
    +ExtrafieldParamHelpPassword=Atstājot šo lauku tukšu, tas nozīmē, ka šī vērtība tiks saglabāta bez šifrēšanas (laukam jābūt paslēptai tikai ar zvaigznīti uz ekrāna). <br> Iestatiet 'auto', lai izmantotu noklusējuma šifrēšanas kārtulu, lai saglabātu paroli datubāzē (pēc tam vērtība lasīt būs ashh tikai, nav iespējams izgūt sākotnējo vērtību)
     ExtrafieldParamHelpselect=Vērtību sarakstam jābūt līnijām ar formāta atslēgu, vērtību (ja taustiņš nevar būt "0") <br> <br> piemēram: <br> 1, vērtība 1 <br> 2, vērtība 2 <br> kods3, vērtība3 < br> ... <br> <br> Lai sarakstu izveidotu atkarībā no cita papildinoša atribūtu saraksta: <br> 1, value1 | options_ <i> parent_list_code </ i>: parent_key <br> 2, value2 | options_ <i> parent_list_code </ i>: parent_key <br> <br> Lai saraksts būtu atkarīgs no cita saraksta: <br> 1, value1 | <i> parent_list_code </ i>: parent_key <br> 2, value2 | <i> parent_list_code </ i>: parent_key
     ExtrafieldParamHelpcheckbox=Vērtību sarakstam jābūt līnijām ar formāta atslēgu, vērtību (ja taustiņš nevar būt "0") <br> <br> piemēram: <br> 1, vērtība 1 <br> 2, vērtība 2 <br> 3, vērtība 3 < br> ...
     ExtrafieldParamHelpradio=Vērtību sarakstam jābūt līnijām ar formāta atslēgu, vērtību (ja taustiņš nevar būt "0") <br> <br> piemēram: <br> 1, vērtība 1 <br> 2, vērtība 2 <br> 3, vērtība 3 < br> ...
    @@ -432,39 +436,39 @@ DefaultLink=Noklusējuma saite
     SetAsDefault=Iestatīt kā noklusējumu
     ValueOverwrittenByUserSetup=Uzmanību, šī vērtība var pārrakstīt ar lietotāja konkrētu uzstādīšanas (katrs lietotājs var iestatīt savu clicktodial URL)
     ExternalModule=Ārējais modulis - Instalēts direktorijā %s
    -BarcodeInitForThirdparties=Masveida svītrkoda izveidošana trešajām personām
    +BarcodeInitForthird-parties=Masveida svītru kodu init trešajām personām
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
    -CurrentlyNWithoutBarCode=Pašlaik jums ir <strong> %s </ strong> ieraksts <strong> %s </ strong> %s bez marķējuma definēšanas.
    -InitEmptyBarCode=Init value for next %s empty records
    +CurrentlyNWithoutBarCode=Pašlaik jums ir <strong> %s </strong> ieraksts <strong> %s </strong> %s bez definēta svītrukoda.
    +InitEmptyBarCode=Sākotnējā vērtība nākamajiem %s tukšajiem ierakstiem
     EraseAllCurrentBarCode=Dzēst visas svītrkodu vērtības
     ConfirmEraseAllCurrentBarCode=Vai tiešām vēlaties dzēst visas svītrkodu vērtības ?
     AllBarcodeReset=Visas svītrkodu vērtības dzēstas
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=Svītrkoda moduļa iestatījumos nav iespējota neviena svītrkoda šablona.
     EnableFileCache=Iespējot faila kešu
     ShowDetailsInPDFPageFoot=Pievienojiet detalizētu informāciju PDF failu kājenē, piemēram, uzņēmuma adresi vai vadītāju vārdus (lai aizpildītu profesionālos identifikācijas datus, uzņēmuma kapitālu un PVN numuru).
    -NoDetails=Neviena detalizētā informācija nav iekļauta kājenē
    +NoDetails=Nav vairāk informācijas kājenē
     DisplayCompanyInfo=Rādīt uzņēmuma adresi
     DisplayCompanyManagers=Rādīt menedžeru vārdus
     DisplayCompanyInfoAndManagers=Rādīt uzņēmuma adresi un menedžeru vārdus
    -EnableAndSetupModuleCron=Ja vēlaties, lai šī atkārtotā rēķina izsūtīšana notiek automātiski, modulis * %s * ir jāaktivizē un jāuzstāda pareizi. Pretējā gadījumā rēķinu ģenerēšana no šī veidnes jāveic manuāli ar pogu * Izveidot *. Ņemiet vērā, ka pat tad, ja esat iespējojis automātisko ģenerēšanu, joprojām varat droši uzsākt manuālo ģenerēšanu. Dublikātu ģenerēšana par to pašu periodu nav iespējama.
    -ModuleCompanyCodeCustomerAquarium=%s, kam seko trešās puses klienta kods klienta grāmatvedības kodam
    -ModuleCompanyCodeSupplierAquarium=%s, kam seko trešās puses piegādātāja kods piegādātāja grāmatvedības kodam
    +EnableAndSetupModuleCron=Ja vēlaties, lai šis atkārtotās rēķins tiktu ģenerēts automātiski, modulis * %s * ir jāaktivizē un jāuzstāda pareizi. Pretējā gadījumā rēķinu ģenerēšana no šī veidnes jāveic manuāli, izmantojot pogu * Izveidot *. Ņemiet vērā, ka pat tad, ja esat iespējojis automātisko ģenerēšanu, joprojām varat droši uzsākt manuālo ģenerēšanu. Dublikātu ģenerēšana tajā pašā laika posmā nav iespējama.
    +ModuleCompanyCodeCustomerAquarium=%s, kam seko klienta kods klienta grāmatvedības kodam
    +ModuleCompanyCodeSupplierAquarium=%s, kam seko piegādātāja kods piegādātāja grāmatvedības kodam
     ModuleCompanyCodePanicum=Atgriezt tukšu grāmatvedības kodu.
     ModuleCompanyCodeDigitaria=Grāmatvedības kods ir atkarīgs no trešās puses koda. Kods sastāv no rakstzīmes "C" pirmajā pozīcijā, kam seko trešās puses pirmās 5 rakstzīmes.
     Use3StepsApproval=Pēc noklusējuma ir jābūt veidotam un apstiprinātam Pirkšanas pasūtījumam no 2 dažādiem lietotājiem (viens solis / lietotājs, lai izveidotu un viens solis / lietotājs apstiprinātu. Ņemiet vērā, ka, ja lietotājam ir gan atļauja izveidot un apstiprināt, viens solis / lietotājs būs pietiekams) . Ar šo opciju varat prasīt trešās pakāpes / lietotāja apstiprinājumu, ja summa ir lielāka par īpašo vērtību (tādēļ būs nepieciešami 3 soļi: 1 = validācija, 2 = pirmais apstiprinājums un 3 = otrais apstiprinājums, ja summa ir pietiekama). <br> Iestatiet, ka tas ir tukšs, ja pietiek vienam apstiprinājumam (2 pakāpieniem), ja tam vienmēr ir nepieciešams otrais apstiprinājums (3 pakāpieni).
     UseDoubleApproval=Izmantojiet 3 pakāpju apstiprinājumu, ja summa (bez nodokļiem) ir augstāka par ...
    -WarningPHPMail=BRĪDINĀJUMS: bieži vien labāk ir iestatīt izejošos e-pastus, lai izmantotu sava pakalpojumu sniedzēja e-pasta serveri, nevis noklusējuma iestatījumus. Daži e-pasta pakalpojumu sniedzēji (piemēram, Yahoo) neļauj sūtīt e-pastu no cita servera nekā viņu pašu serveris. Jūsu pašreizējā iestatīšana izmanto lietojumprogrammas serveri, lai nosūtītu e-pastu, nevis jūsu e-pasta pakalpojumu sniedzēja serveri, tādēļ daži saņēmēji (tie, kuri ir saderīgi ar ierobežojošo DMARC protokolu), jautās savam e-pasta pakalpojumu sniedzējam, ja viņi var pieņemt jūsu e-pastu un dažus e-pasta pakalpojumu sniedzējus (piemēram, Yahoo) var atbildēt "nē", jo serveris nav to serveris, tāpēc maz no jūsu nosūtītajiem e-pasta ziņojumiem var tikt pieņemti (uzmanīgi arī pie e-pasta pakalpojumu sniedzēja, kas sūta kvotu). <br> Ja jūsu e-pasta pakalpojumu sniedzējs (piemēram, Yahoo) ir šis ierobežojums, jums ir jāmaina e-pasta iestatīšana, lai izvēlētos citu metodi "SMTP serveris" un ievadiet SMTP serveri un akreditācijas datus, ko sniedz jūsu e-pasta pakalpojumu sniedzējs (lūdziet savam e-pasta pakalpojumu sniedzējam iegūt jūsu kontam SMTP akreditācijas datus).
    +WarningPHPMail=BRĪDINĀJUMS: bieži vien labāk ir iestatīt izejošos e-pastus, lai izmantotu sava pakalpojumu sniedzēja e-pasta serveri, nevis noklusējuma iestatījumus. Daži e-pasta pakalpojumu sniedzēji (piemēram, Yahoo) neļauj sūtīt e-pastu no cita servera, nevis no sava servera. Jūsu pašreizējā iestatīšana izmanto lietojumprogrammas serveri, lai nosūtītu e-pastu, nevis jūsu e-pasta pakalpojumu sniedzēja serveri, tādēļ daži adresāti (tie, kas ir saderīgi ar ierobežojošo DMARC protokolu), jautās savam e-pasta pakalpojumu sniedzējam, ja viņi var pieņemt jūsu e-pastu un dažus e-pasta pakalpojumu sniedzējus (piemēram, Yahoo) var atbildēt "nē", jo serveris nav viņu, tāpēc maz no jūsu nosūtītajiem e-pasta ziņojumiem var tikt pieņemti (uzmanieties arī no jūsu e-pasta pakalpojumu sniedzēja sūtīšanas kvotas). <br> Ja jūsu e-pasta pakalpojumu sniedzējs (piemēram, Yahoo) šis ierobežojums, jums ir jāmaina e-pasta iestatīšana, lai izvēlētos citu metodi "SMTP serveris" un ievadiet SMTP serveri un akreditācijas datus, ko sniedz jūsu e-pasta pakalpojumu sniedzējs (jautājiet savam e-pasta pakalpojumu sniedzējam, lai saņemtu sava konta SMTP akreditācijas datus).
     WarningPHPMail2=Ja jūsu e-pasta SMTP pakalpojumu sniedzējam ir jāierobežo e-pasta klients uz dažām IP adresēm (ļoti reti), tas ir jūsu ERP CRM lietojumprogrammas e-pasta lietotāja aģenta (MUA) IP adrese: <strong> %s </strong>.
     ClickToShowDescription=Noklikšķiniet, lai parādītu aprakstu
     DependsOn=Šim modulim nepieciešams modulis (-i)
    -RequiredBy=Šo moduli pieprasa modulis (-i)
    -TheKeyIsTheNameOfHtmlField=Šis ir HTML lauka nosaukums. Tam vajadzīgas tehniskas zināšanas, lai lasītu HTML lapas saturu, lai iegūtu lauka atslēgas nosaukumu.
    -PageUrlForDefaultValues=Šeit jāievada relatīvā lapas URL. Ja URL tiek iekļauti parametri, noklusējuma vērtības būs efektīvas, ja visi parametri ir vienādi. Piemēri:
    -PageUrlForDefaultValuesCreate=<br> Veidā, lai izveidotu jaunu trešo personu, tas ir <strong> %s </ strong> <br> <br> Ja vēlaties tikai noklusējuma vērtību, ja url ir kāds parametrs, varat izmantot <strong> %s </ strong>
    -PageUrlForDefaultValuesList=<br> Lapai, kas ir trešo pušu saraksts, tā ir <strong> %s </ strong> <br> <br> Ja vēlaties tikai noklusējuma vērtību, ja url ir kāds parametrs, varat izmantot <strong> %s </ strong>
    +RequiredBy=Šis modulis nepieciešams modulim (-ļiem)
    +TheKeyIsTheNameOfHtmlField=Šis ir HTML lauka nosaukums. Lai izlasītu HTML lapas saturu, ir nepieciešamas tehniskās zināšanas, lai iegūtu lauka atslēgas nosaukumu.
    +PageUrlForDefaultValues=Jums jāievada relatīvais lapas ceļš URL. Ja URL tiek iekļauti parametri, noklusējuma vērtības būs efektīvas, ja visi parametri ir vienādi.
    +PageUrlForDefaultValuesCreate=<br> Piemērs: <br> Jaunas trešās puses veidlapas izveidei ir <strong> %s </ strong> <br> <br> Par ārējo moduļu URL, kas ir instalēti pielāgotajā direktorijā, neiekļauj "custom /" tāpēc izmantojiet kā <strong> mymodule / mypage.php </ strong>, nevis custom / mymodule / mypage.php. <br> Ja vēlaties noklusējuma vērtību tikai tad, ja url ir kāds parametrs, varat izmantot <strong> %s </ spēcīgs>
    +PageUrlForDefaultValuesList=<br> Piemērs: <br> Lapai, kas ir trešo pušu saraksts, tā ir <strong> %s </ strong> <br> <br> Par ārējo moduļu URL, kas ir instalēti pielāgotajā direktorijā, neietver "custom /" izmantojiet tādu kā <strong> mymodule / mypagelist.php </ strong>, nevis custom / mymodule / mypagelist.php. <br> Ja vēlaties noklusējuma vērtību tikai tad, ja url ir kāds parametrs, varat izmantot <strong> %s </ strong >
     EnableDefaultValues=Iespējot personalizēto noklusēto vērtību izmantošanu
     EnableOverwriteTranslation=Iespējot pārrakstīto tulkojumu izmantošanu
    -GoIntoTranslationMenuToChangeThis=Taustiņam ir atrasts tulkojums ar šo kodu, tāpēc, lai mainītu šo vērtību, jums ir jāreģistrē fom Home-Setup-translation.
    +GoIntoTranslationMenuToChangeThis=Taustiņam ir atrasts tulkojums ar šo kodu. Lai mainītu šo vērtību, jums ir jārediģē no Home-Setup-translation.
     WarningSettingSortOrder=Brīdinājums, noklusējuma rūtiņu secības iestatīšana var radīt tehnisku kļūdu, apmeklējot saraksta lapu, ja lauks nav nezināma lauka. Ja rodas šāda kļūda, atgriezieties šajā lapā, lai noņemtu noklusējuma kārtošanas secību un atjaunotu noklusējuma darbību.
     Field=Lauks
     ProductDocumentTemplates=Dokumentu veidnes produkta dokumenta ģenerēšanai
    @@ -476,16 +480,18 @@ SendEmailsReminders=Sūtīt darba kārtībā atgādinājumus pa e-pastu
     davDescription=Pievienojiet komponents DAV serverim
     DAVSetup=DAV moduļa uzstādīšana
     DAV_ALLOW_PUBLIC_DIR=Iespējot publisko direktoriju (WebDav direktoriju bez nepieciešamības pieslēgties)
    -DAV_ALLOW_PUBLIC_DIRTooltip=Publiskais WebDav direktorijs ir WebDAV katalogs, kurā ikviens var piekļūt (lasīšanas un rakstīšanas režīmā), bez nepieciešamības / izmantot esošu lietotāja vārdu / paroli.
    +DAV_ALLOW_PUBLIC_DIRTooltip=Publiskā direktorija WebDav ir WebDAV katalogs, kuru ikvienam var piekļūt (lasīšanas un rakstīšanas režīmā), bez nepieciešamības / izmantot pašreizējo lietotāja vārdu / paroli.
    +DAV_ALLOW_ECM_DIR=Iespējot DMS / ECM moduļa saknes direktoriju (nepieciešams pieslēgums)
    +DAV_ALLOW_ECM_DIRTooltip=Saknes direktorija, kurā visi faili tiek manuāli augšupielādēti, izmantojot DMS / ECM moduli. Tāpat kā tīmekļa saskarnes funkcijai, lai piekļūtu tai, jums būs nepieciešama derīga ieeja / parole ar piešķirtajām atļaujām.
     # Modules
     Module0Name=Lietotāji un grupas
     Module0Desc=Lietotāju / Darbinieku un Grupu vadība
    -Module1Name=Trešās personas
    -Module1Desc=Uzņēmumu un kontaktinformācijas vadība (klientu, perspektīvu ...)
    +Module1Name=Trešās puses
    +Module1Desc=Uzņēmumu un kontaktu pārvaldība (klienti, izredzes ...)
     Module2Name=Tirdzniecība
     Module2Desc=Komerciālā pārvaldība
     Module10Name=Grāmatvedība
    -Module10Desc=Vienkārši grāmatvedības pārskati (žurnāli, apgrozījums), pamatojoties uz datubāzes saturu. Neizmanto virsgrāmatu galdiņu.
    +Module10Desc=Vienkāršie grāmatvedības pārskati (žurnāli, apgrozījums), pamatojoties uz datubāzes saturu. Neizmanto virsgrāmatu galdiņu.
     Module20Name=Priekšlikumi
     Module20Desc=Komerc priekšlikumu vadība
     Module22Name=Masveida e-pasta sūtījumi
    @@ -495,7 +501,7 @@ Module23Desc=Uzraudzība patēriņu enerģijas
     Module25Name=Klientu Pasūtījumi
     Module25Desc=Klientu pasūtījumu pārvaldīšana
     Module30Name=Rēķini
    -Module30Desc=Rēķinu un kredītu piezīmi vadību klientiem. Rēķinu pārvaldības piegādātājiem
    +Module30Desc=Rēķinu un kredītkartes pārvaldīšana klientiem. Rēķinu un kredītrisku pārvaldīšana piegādātājiem
     Module40Name=Piegādātāji
     Module40Desc=Piegādātāju un pirkumu vadība (pirkšanas pasūtījumi un norēķini)
     Module42Name=Atkļūdošanas žurnāli
    @@ -511,13 +517,13 @@ Module52Desc=Krājumu pārvaldīšana (produkti)
     Module53Name=Pakalpojumi
     Module53Desc=Pakalpojumu vadība
     Module54Name=Līgumi / Abonementi
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Līgumu (pakalpojumu vai regulāru abonēšanas) vadība
     Module55Name=Svītrkodi
     Module55Desc=Svītrkodu vadība
     Module56Name=Telefonija
     Module56Desc=Telefonijas integrācija
    -Module57Name=Direct bank payment orders
    -Module57Desc=Standing orders and withdrawal management. Also includes generation of SEPA file for european countries.
    +Module57Name=Tiešie bankas maksājuma uzdevumi
    +Module57Desc=Tiešā debeta maksājuma uzdevumu pārvaldīšana. Tas ietver SEPA datnes izveidi Eiropas valstīm.
     Module58Name=NospiedLaiSavienotos
     Module58Desc=Integrācija ar ClickToDial sistēmas (zvaigznīte, ...)
     Module59Name=Bookmark4u
    @@ -528,10 +534,10 @@ Module75Name=Izdevumi un ceļojumu piezīmes
     Module75Desc=Izdevumi un ceļojumu piezīmju vadība
     Module80Name=Sūtījumi
     Module80Desc=Sūtījumu un piegādes rīkojumu vadība
    -Module85Name=Bankas un nauda
    +Module85Name=Bankas un skaidra nauda
     Module85Desc=Banku vai naudas kontu administrēšana
     Module100Name=Ārējā vietne
    -Module100Desc=Šis modulis ietver ārējo tīmekļa vietni vai lapu par Dolibarr izvēlnēm un apskatīt to uz Dolibarr rāmī
    +Module100Desc=Dolibarr izvēlnēs pievienojiet ārējās vietnes saiti, lai to skatītu Dolibarr rāmī
     Module105Name=Pastnieks un SPIP
     Module105Desc=Pastnieks vai SPIP saskarne loceklis moduli
     Module200Name=LDAP
    @@ -539,50 +545,50 @@ Module200Desc=LDAP direktoriju sinhronizācija
     Module210Name=PostNuke
     Module210Desc=PostNuke integrācija
     Module240Name=Datu eksports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Dolibarr datu eksportēšanas rīks (ar palīdzību)
     Module250Name=Datu imports
    -Module250Desc=Tool to import data in Dolibarr (with assistants)
    +Module250Desc=Instruments datu importēšanai Dolibarr (ar palīdzību)
     Module310Name=Dalībnieki
     Module310Desc=Fonda biedru vadība
     Module320Name=RSS barotne
     Module320Desc=Pievienot RSS plūsmu Dolibarr lapās
    -Module330Name=Grāmatzīmes
    -Module330Desc=Grāmatzīmju vadība
    -Module400Name=Projekti/Iespējas/Leads
    -Module400Desc=Projektu vadīšana, iespējas / vadība un / vai uzdevumi. Jūs varat arī piešķirt projektam jebkuru elementu (rēķins, pasūtījums, priekšlikums, iejaukšanās, ...) un iegūt projekta skatījumā šķērsvirzienu.
    +Module330Name=Grāmatzīmes un saīsnes
    +Module330Desc=Veidojiet īsceļus, vienmēr pieejamus, iekšējām vai ārējām lapām, kurām bieži piekļūstat
    +Module400Name=Projekti vai potenciālie pirkumi
    +Module400Desc=Projektu vadība, vadītāji / iespējas un / vai uzdevumi. Jūs varat arī piešķirt projektam jebkuru elementu (rēķins, pasūtījums, priekšlikums, iejaukšanās, ...) un iegūt projekta skatījumā šķērsvirzienu.
     Module410Name=Vebkalendārs
     Module410Desc=Web kalendāra integrācija
     Module500Name=Nodokļi un īpašie izdevumi
     Module500Desc=Citu izdevumu vadīšana (pārdošanas nodokļi, sociālie vai fiskālie nodokļi, dividendes, ...)
     Module510Name=Darbinieku algu izmaksa
    -Module510Desc=Ierakstiet un izpildiet savu darbinieku algu
    +Module510Desc=Ierakstiet un izsekojiet darbinieku maksājumus
     Module520Name=Aizdevums
    -Module520Desc=Management of loans
    +Module520Desc=Aizdevumu vadība
     Module600Name=Paziņojumi par biznesa pasākumiem
    -Module600Desc=Sūtīt paziņojumus par e-pastu (ko ieslēdz daži biznesa notikumi) lietotājiem (katram lietotājam iestatīta iestatīšana), trešo pušu kontaktpersonām (iestatīšana, kas noteikta katrā trešajā pusē) vai fiksētiem e-pasta ziņojumiem
    -Module600Long=Ņemiet vērā, ka šis modulis ir paredzēts, lai nosūtītu reāllaika e-pastus, kad notiek īpašs biznesa notikums. Ja jūs meklējat funkciju, lai nosūtītu atgādinājumus pa e-pastu no dienas kārtības notikumiem, dodieties uz moduļa darba kārtības iestatīšanu.
    +Module600Desc=Sūtiet e-pasta paziņojumus, ko aktivizē uzņēmējdarbības notikums, lietotājiem (katram lietotājam iestatīta iestatīšana), trešo pušu kontakti (iestatījums, kas noteikts katrā trešā puse) vai definētiem e-pasta ziņojumiem
    +Module600Long=Ņemiet vērā, ka šis modulis sūta e-pastus reāllaikā, kad rodas īpašs biznesa notikums. Ja jūs meklējat funkciju, lai nosūtītu e-pasta atgādinājumus par darba kārtības pasākumiem, dodieties uz moduļa darba kārtības iestatīšanu.
     Module610Name=Produkta varianti
    -Module610Desc=Ļauj izveidot produktu variantu, pamatojoties uz atribūtiem (krāsa, izmērs, ...)
    +Module610Desc=Produkta variantu veidošana (krāsa, izmērs utt.)
     Module700Name=Ziedojumi
     Module700Desc=Ziedojumu pārvaldība
     Module770Name=Izdevumu atskaites
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Izmaksu pārskatu pārvaldīšana un pieprasīšana (transportēšana, ēdināšana, ...)
     Module1120Name=Pārdevēja komerciāls piedāvājums
     Module1120Desc=Pieprasiet pārdevēju komerciālo priekšlikumu un cenas
     Module1200Name=Mantis
     Module1200Desc=Mantis integrācija
    -Module1520Name=Document Generation
    +Module1520Name=Dokumentu veidošana
     Module1520Desc=Mass mail document generation
    -Module1780Name=Tags/Categories
    +Module1780Name=Atslēgvārdi / sadaļas
     Module1780Desc=Izveidojiet tagus / kategoriju (produktus, klientus, pārdevējus, kontaktpersonas vai dalībniekus)
     Module2000Name=WYSIWYG redaktors
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Ļauj teksta laukus rediģēt, izmantojot CKEditor
     Module2200Name=Dinamiskas cenas
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Plānotie darbi
     Module2300Desc=Plānotais darbavietu vadība (alias cron vai chrono galds)
     Module2400Name=Pasākumi / darba kārtība
    -Module2400Desc=Izpildiet gatavotos un gaidītos notikumus. Ļaujiet lietojumprogrammām reģistrēt automātiskus notikumus izsekošanas nolūkos vai ierakstīt manuālus notikumus vai sarunas. Tas ir galvenais svarīgais modulis labam klientam vai piegādātāju saistību pārvaldībai.
    +Module2400Desc=Izsekot notikumus. Ļaujiet Dolibarr reģistrēt automātiskus notikumus izsekošanas nolūkos vai reģistrēt manuālus notikumus vai sanāksmes. Tas ir galvenais labais Klientu vai piegādātāju saistību pārvaldības modulis.
     Module2500Name=DMS / ECM
     Module2500Desc=Dokumentu vadības sistēma / elektroniskā satura vadība. Jūsu radīto vai saglabāto dokumentu automātiska organizēšana. Kopīgojiet tos pēc vajadzības.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,46 +596,50 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Dolibarr tīmekļa pakalpojumu klienta iespējošana (var tikt izmantota, lai nosūtītu datus / pieprasījumus ārējiem serveriem. Pašlaik tiek atbalstīti tikai piegādātāja pasūtījumi.)
     Module2700Name=Gravatar
    -Module2700Desc=Izmantot tiešsaistes Gravatar pakalpojumu (www.gravatar.com), lai parādītu fotogrāfijas lietotāju / dalībnieku (atrasts ar saviem e-pastiem). Nepieciešams interneta piekļuves
    +Module2700Desc=Izmantojiet Gravatar tiešsaistes pakalpojumu (www.gravatar.com), lai parādītu lietotāju / dalībnieku fotoattēlu (atrodams ar viņu e-pastu). Nepieciešama piekļuve internetam
     Module2800Desc=FTP klients
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP MaxMind pārveidošanu iespējas
     Module3100Name=Skaips
     Module3100Desc=Add a Skype button into card of users / third parties / contacts / members
     Module3200Name=Nemainīgi arhīvi
    -Module3200Desc=Aktivizējiet dažu biznesa notikumu žurnālu nemainīgā žurnālā. Notikumi tiek arhivēti reāllaikā. Žurnāls ir tabula ar ķēdes notikumiem, kurus var lasīt un eksportēt. Šis modulis dažās valstīs var būt obligāts.
    +Module3200Desc=Iespējojiet nemainīgu biznesa notikumu žurnālu. Notikumi tiek arhivēti reāllaikā. Žurnāls ir tikai lasāmu tabulu ķēdes notikumus, kurus var eksportēt. Šis modulis dažās valstīs var būt obligāts.
     Module4000Name=HRM
     Module4000Desc=Cilvēkresursu vadība (departamenta vadība, darbinieku līgumi un jūtas)
     Module5000Name=Multi-kompānija
     Module5000Desc=Ļauj jums pārvaldīt vairākus uzņēmumus
     Module6000Name=Darba plūsma
    -Module6000Desc=Workflow management (automatic creation of object and/or automatic status change)
    +Module6000Desc=Darbplūsmas vadība (automātiska objekta izveide un / vai automātiska statusa maiņa)
     Module10000Name=Mājas lapas
     Module10000Desc=Izveidojiet publiskās vietnes ar WYSIWG redaktoru. Vienkārši uzstādiet savu tīmekļa serveri (Apache, Nginx, ...), lai norādītu uz īpašo Dolibarr direktoriju, lai to tiešsaistē varētu izmantot internetā ar savu domēna vārdu.
    -Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Name=Atvaļinājuma pieprasījumu pārvaldība
    +Module20000Desc=Atzīt un izsekot darbiniekiem atstāt pieprasījumus
     Module39000Name=Produktu partijas
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Daudzvalūtu
    +Module40000Desc=Izmantojiet alternatīvas valūtas cenās un dokumentos
     Module50000Name=Paybox
    -Module50000Desc=Modulis, lai piedāvātu tiešsaistes maksājuma lapu, kurā tiek pieņemti maksājumi ar kredītkarti / debetkarti, izmantojot PayBox. To var izmantot, lai jūsu klienti varētu veikt bezmaksas maksājumus vai maksājumus konkrētā Dolibarr objektā (rēķins, pasūtījums, ...)
    +Module50000Desc=Piedāvājiet klientiem PayBox tiešsaistes maksājumu lapu (kredītkartes / debetkartes). To var izmantot, lai jūsu klienti varētu veikt bezmaksas maksājumus vai maksājumus konkrētā Dolibarr objektā (rēķins, pasūtījums, ...)
     Module50100Name=Tirdzniecības punkts
    -Module50100Desc=Point of sales module (POS).
    +Module50100Desc=Pārdošanas moduļa vietne (POS).
    +Module50150Name=Tirdzniecības punkts
    +Module50150Desc=Tirdzniecības vietas modulis (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Modulis, lai piedāvātu tiešsaistes maksājuma lapu, kurā tiek pieņemti maksājumi, izmantojot PayPal (kredītkarte vai PayPal kredīts). To var izmantot, lai jūsu klienti varētu veikt bezmaksas maksājumus vai maksājumus konkrētā Dolibarr objektā (rēķins, pasūtījums, ...)
    +Module50200Desc=Piedāvājiet klientiem PayPal tiešsaistes maksājumu lapu (PayPal kontu vai kredītkartes / debetkartes). To var izmantot, lai jūsu klienti varētu veikt bezmaksas maksājumus vai maksājumus konkrētā Dolibarr objektā (rēķins, pasūtījums, ...)
     Module50400Name=Accounting (advanced)
     Module50400Desc=Grāmatvedības vadība (divkāršie ieraksti, atbalsta vispārējās un papildu grāmatiņas). Eksportēt virsgrāmatu vairākos citos grāmatvedības programmatūras formātos.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Tiešā druka (neatverot dokumentus), izmantojot Cups IPP saskarni (printerim jābūt redzamam no servera, un CUPS ir jāinstalē serverī).
     Module55000Name=Aptauja vai balsojums
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Modulis, lai izveidotu tiešsaistes aptaujas, aptaujas vai balsis (piemēram, Doodle, Studs, Rdvz, ...)
     Module59000Name=Malas
     Module59000Desc=Moduli, lai pārvaldītu peļņu
     Module60000Name=Komisijas
     Module60000Desc=Modulis lai pārvaldītu komisijas
     Module62000Name=Inkoterms
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Desc=Pievienojiet funkcijas, lai pārvaldītu Incoterms
     Module63000Name=Resursi
     Module63000Desc=Pārvaldīt resursus (printerus, automašīnas, istabu, ...), pēc tam varat dalīties ar notikumiem
     Permission11=Lasīt klientu rēķinus
    @@ -651,9 +661,9 @@ Permission32=Izveidot / mainīt produktus
     Permission34=Dzēst produktus
     Permission36=Skatīt/vadīt slēptos produktus
     Permission38=Eksportēt produktus
    -Permission41=Lasīt projektus un uzdevumus (kopējais projekts un projekti, ar kuriem esmu kontaktējies). Var arī ievadīt patērēto laiku man piešķirtajiem uzdevumiem (laika kontrolsaraksts)
    -Permission42=Izveidot / modificēt projektus (kopējais projekts un projekti, ar kuriem esmu kontaktējies). Var arī izveidot uzdevumus un piešķirt lietotājus projektam un uzdevumiem
    -Permission44=Dzēst projektus (dalīta projekts un projektu es esmu kontaktpersonai)
    +Permission41=Lasīt projektus un uzdevumus (kopīgs projekts un projekti, par kuriem es kontaktēju). Var arī ievadīt patērēto laiku man vai manai hierarhijai par piešķirtajiem uzdevumiem (laika kontrolsaraksts)
    +Permission42=Izveidojiet / modificējiet projektus (kopīgu projektu un projektus, par kuriem esmu kontaktējies). Var arī izveidot uzdevumus un piešķirt lietotājus projektam un uzdevumiem
    +Permission44=Dzēsiet projektus (kopīgots projekts un projekti, par kuriem es kontaktēju)
     Permission45=Eksportēt projektus
     Permission61=Lasīt intervences
     Permission62=Izveidot / mainīt intervences
    @@ -662,7 +672,7 @@ Permission67=Eksporta iejaukšanās
     Permission71=Lasīt dalībniekus
     Permission72=Izveidot/mainīt dalībniekus
     Permission74=Dzēst dalībniekus
    -Permission75=Setup types of membership
    +Permission75=Uzstādīt dalības veidus
     Permission76=Datu eksports
     Permission78=Lasīt abonementus
     Permission79=Izveidot/mainīt abonementus
    @@ -686,7 +696,7 @@ Permission109=Dzēst sūtījumus
     Permission111=Lasīt finanšu kontus
     Permission112=Izveidot/labot/dzēst un salīdzināt darījumus
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Vienkāršojiet darījumus
     Permission115=Eksportēt darījumus un kontu izrakstus
     Permission116=Pārvietot starp kontiem
     Permission117=Pārvaldīt pārbaudes dispečervadības
    @@ -694,22 +704,22 @@ Permission121=Skatīt trešās personas, kas saistītas ar lietotāju
     Permission122=Izveidot/labot trešās personas, kas saistītas ar lietotāju
     Permission125=Dzēst trešās personas, kas saistītas ar lietotāju
     Permission126=Eksportēt trešās puses
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Lasiet visus projektus un uzdevumus (arī privātos projektus, par kuriem es neesmu kontakts)
    +Permission142=Izveidojiet / modificējiet visus projektus un uzdevumus (arī privātos projektus, par kuriem es neesmu kontakts)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Lasīt pakalpojumu sniedzējus
     Permission147=Lasīt statistiku
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Ierakstiet kredītus / noraidiet tiešā debeta maksājuma uzdevumus
     Permission161=Apskatīt līgumus/subscriptions
     Permission162=Izveidot/labot līgumus/subscriptions
     Permission163=Activate a service/subscription of a contract
     Permission164=Disable a service/subscription of a contract
     Permission165=Dzēst līgumus/subscriptions
     Permission167=Eksportēt līgumus
    -Permission171=Read trips and expenses (yours and your subordinates)
    +Permission171=Lasīt ceļojumus un izdevumus (jūsu un jūsu padotajiem)
     Permission172=Izveidot/labot ceļojumu un izdevumus
     Permission173=Dzēst ceļojumus un izdevumus
     Permission174=Read all trips and expenses
    @@ -719,13 +729,13 @@ Permission181=Lasīt piegādātāju pasūtījumus
     Permission182=Izveidot/mainīt piegādātāju pasūtījumus
     Permission183=Apstiprināt piegādātāju pasūtījumus
     Permission184=Apstiprināt piegādātāja pasūtījumus
    -Permission185=Order or cancel supplier orders
    +Permission185=Pasūtiet vai atceliet piegādātāja pasūtījumus
     Permission186=Saņemt piegādātāju pasūtījumus
     Permission187=Aizvērt piegādātāja pasūtījumus
     Permission188=Atcelt piegādātāja pasūtījumus
     Permission192=Izveidot līnijas
     Permission193=Atcelt līnijas
    -Permission194=Lasīt joslas platums līnijām
    +Permission194=Lasīt joslas platuma līnijas
     Permission202=Izveidot ADSL savienojumu
     Permission203=Pasūtīt savienojumi pasūtījumi
     Permission204=Pasūtīt savienojumi
    @@ -750,12 +760,12 @@ Permission244=Skatīt saturu slēptām sadaļām
     Permission251=Lasīt citus lietotājus un grupas
     PermissionAdvanced251=Lasīt citus lietotājus
     Permission252=Lasīt atļaujas citiem lietotājiem
    -Permission253=Izveidot/mainīt citus lietotājus, grupas un tiesības
    +Permission253=Izveidojiet / modificējiet citus lietotājus, grupas un atļaujas
     PermissionAdvanced253=Izveidot/mainīt iekšējoss/ārējos lietotājus un atļaujas
     Permission254=Izveidot/mainīt ārējos lietotājus tikai
     Permission255=Mainīt citu lietotāju paroli
     Permission256=Izdzēst vai bloķēt citus lietotājus
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Paplašināt piekļuvi visām trešajām pusēm (ne tikai trešajām personām, kuras lietotājs ir pārdošanas pārstāvis). <br> Nav spēkā ārējiem lietotājiem (vienmēr vienīgi par sevi, par priekšlikumiem, rīkojumiem, rēķiniem, līgumiem uc) <br>projektiem (tikai noteikumi par projektu atļaujām, redzamību un uzdevumiem).
     Permission271=Lasīt CA
     Permission272=Lasīt rēķinus
     Permission273=Izrakstīt rēķinus
    @@ -765,7 +775,7 @@ Permission283=Dzēst kontaktus
     Permission286=Eksportēt kontaktus
     Permission291=Skatīt tarifus
     Permission292=Kas atļaujas par tarifiem
    -Permission293=Labot klientu tarifus
    +Permission293=Mainīt klientu tarifus
     Permission300=Lasīt svītrkodus
     Permission301=Izveidot / mainīt svītrkodus
     Permission302=Dzēst svītrkodus
    @@ -787,17 +797,15 @@ Permission401=Lasīt atlaides
     Permission402=Izveidot/mainīt atlaides
     Permission403=Apstiprināt atlaides
     Permission404=Dzēst atlaides
    -Permission501=Lasīt darba ņēmēju līgumus / algas
    -Permission502=Izveidot / mainīt darbinieku līgumus / algas
    -Permission511=Lasīt algu izmaksu
    -Permission512=Izveidojiet / labojiet algu izmaksu
    -Permission514=Dzēst algas
    +Permission511=Lasīt algu maksājumus
    +Permission512=Izveidojiet / modificējiet algu maksājumus
    +Permission514=Dzēst algu maksājumus
     Permission517=Eksportēt algas
    -Permission520=Read Loans
    -Permission522=Create/modify loans
    -Permission524=Delete loans
    -Permission525=Access loan calculator
    -Permission527=Export loans
    +Permission520=Lasīt aizdevumus
    +Permission522=Izveidot / labot aizdevumus
    +Permission524=Dzēst aizdevumus
    +Permission525=Piekļuves kredīta kalkulators
    +Permission527=Eksportēt kredītus
     Permission531=Lasīt pakalpojumus
     Permission532=Izveidot/mainīt pakalpojumus
     Permission534=Dzēst pakalpojumus
    @@ -808,11 +816,11 @@ Permission702=Izveidot/mainīt ziedojumus
     Permission703=Dzēst ziedojumus
     Permission771=Read expense reports (yours and your subordinates)
     Permission772=Create/modify expense reports
    -Permission773=Delete expense reports
    +Permission773=Dzēst izdevumu pārskatus
     Permission774=Read all expense reports (even for user not subordinates)
    -Permission775=Approve expense reports
    -Permission776=Pay expense reports
    -Permission779=Export expense reports
    +Permission775=Apstiprināt izdevumu pārskatus
    +Permission776=Apmaksāt izdevumu pārskatus
    +Permission779=Eksportēt izdevumu atskaites
     Permission1001=Lasīt krājumus
     Permission1002=Izveidot/labot noliktavas
     Permission1003=Dzēst noliktavas
    @@ -844,8 +852,8 @@ Permission1251=Palaist masveida importu ārējiem datiem datu bāzē (datu ielā
     Permission1321=Eksporta klientu rēķinus, atribūti un maksājumus
     Permission1322=Atkārtoti atvērt samaksāto rēķinu
     Permission1421=Eksportēt klientu pasūtījumus un atribūtus
    -Permission20001=Lasīt atvaļinājuma pieprasījumus (jūsu lapas un viens no jūsu padotajiem)
    -Permission20002=Izveidojiet / mainiet savus atvaļinājuma pieprasījumus (jūsu lapas un jūsu padotajiem)
    +Permission20001=Lasīt atvaļinājuma pieprasījumus (jūsu atvaļinājums un jūsu padoto atvaļinājums)
    +Permission20002=Izveidojiet / mainiet savus atvaļinājuma pieprasījumus (jūsu atvaļinājums un jūsu padotajiem atvaļinājums)
     Permission20003=Dzēst atvaļinājumu pieprasījumus
     Permission20004=Lasīt visus atvaļinājuma pieprasījumus (pat lietotājs nav pakļauts)
     Permission20005=Izveidot / mainīt atvaļinājumu pieprasījumus visiem (pat lietotājam nav padotajiem)
    @@ -880,8 +888,8 @@ Permission63001=Lasīt resursus
     Permission63002=Izveidot/labot resursus
     Permission63003=Dzēst resursus
     Permission63004=Saistīt resursus ar darba kārtības pasākumiem
    -DictionaryCompanyType=Trešo personu veidi
    -DictionaryCompanyJuridicalType=Juridiskais veids trešajām personām
    +DictionaryCompanyType=Trešo pušu veidi
    +DictionaryCompanyJuridicalType=Trešo pušu juridiskās formas
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=Valsts / province
     DictionaryRegion=Reģions
    @@ -894,7 +902,7 @@ DictionaryVAT=PVN likmes vai pārdošanas procentu likmes
     DictionaryRevenueStamp=Nodokļu zīmogu daudzums
     DictionaryPaymentConditions=Apmaksas noteikumi
     DictionaryPaymentModes=Maksājumu veidi
    -DictionaryTypeContact=Kontaktu/Adrešu veidi
    +DictionaryTypeContact=Kontakti/adrešu veidi
     DictionaryTypeOfContainer=Vietnes lapu / konteineru veids
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Papīra formāts
    @@ -908,11 +916,11 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalizētas grupas ziņojumiem
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Grāmatvedības žurnāli
    -DictionaryEMailTemplates=E-pastu paraugi
    +DictionaryEMailTemplates=E-pasta veidnes
     DictionaryUnits=Vienības
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Lapu veidi
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Atvaļinājumu veidi
    +DictionaryOpportunityStatus=Vadošais statuss projektu / vadībai
     DictionaryExpenseTaxCat=Izdevumu pārskats - transporta kategorijas
     DictionaryExpenseTaxRange=Izdevumu pārskats - diapazons pēc transporta kategorijas
     SetupSaved=Iestatījumi saglabāti
    @@ -920,45 +928,47 @@ SetupNotSaved=Iestatīšana nav saglabāta
     BackToModuleList=Atpakaļ uz moduļu sarakstu
     BackToDictionaryList=Atpakaļ uz vārdnīcu sarakstu
     TypeOfRevenueStamp=Nodokļu zīmoga veids
    -VATManagement=PVN Vadība
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=Pēc noklusējuma piedāvātais PVN ir 0, ko var izmantot gadījumos, piemēram, asociācijās, idnividuālie komersanti.
    -VATIsUsedExampleFR=Francijā tas nozīmē uzņēmumus vai organizācijas, kurām ir reāla fiskālā sistēma (Vienkāršota īsta vai normāla reālā). Sistēma, kurā deklarē PVN.
    -VATIsNotUsedExampleFR=Francijā tas nozīmē asociācijas, kas nav deklarētas kā PVN, vai uzņēmumi, organizācijas vai brīvās profesijas, kas izvēlējušās mikrouzņēmumu fiskālo sistēmu (PVN franšīzes veidā) un maksā franšīzes PVN bez PVN deklarācijas. Šī izvēle rēķinos parādīs atsauci "CGI Neto PVN - art-293B".
    +VATManagement=Pārdošanas nodokļa vadība
    +VATIsUsedDesc=Pēc noklusējuma, veidojot izredzes, rēķinus, pasūtījumus utt., Pārdošanas nodokļa likme atbilst aktīvajam standarta noteikumam: <br> Ja pārdevējam nav jāmaksā pārdošanas nodoklis, tad Pārdošanas nodokļa noklusējums ir 0. Beigu punkts. <br> Ja (pārdevēja valsts = pircēja valsts), tad Pārdošanas nodoklis pēc noklusējuma ir vienāds ar Pārdošanas nodokli produkta pārdevējam valstī. Noteikuma beigas. <br> Ja pārdevējs un pircējs ir gan Eiropas Kopienā, gan preces ir ar transportu saistītas preces (pārvadājumi, nosūtīšana, aviokompānija), noklusējuma Pārdošanas nodoklis ir 0. Šis noteikums ir atkarīgs no pārdevēja valsts - lūdzu konsultējieties ar savu grāmatvedi. Pircējs maksā pārdošanas nodokli savā muitas iestādē savā valstī, nevis pārdevējam. Noteikuma beigas. <br> Ja pārdevējs un pircējs ir gan Eiropas Kopienā, gan pircējs nav uzņēmums (ar reģistrētu Kopienas iekšzemes pārdošanas nodokļa numuru), tad Pārdošanas nodoklis, neievērojot Pārdevēja valsts Pārdošanas nodokli . Noteikuma beigas. <br> Ja pārdevējs un pircējs ir gan Eiropas Kopienā, gan pircējs ir uzņēmums (ar reģistrētu Kopienas iekšējo pārdošanas nodokļa numuru), tad Pārdošanas nodoklis ir 0 pēc noklusējuma. Noteikuma beigas. <br> Jebkurā gadījumā ierosinātā noklusējuma vērtība ir Pārdošanas nodoklis = 0. Noteikuma beigas.
    +VATIsNotUsedDesc=Pēc noklusējuma ierosinātais pārdošanas nodoklis ir 0, ko var izmantot tādām lietām kā asociācijas, privātpersonas vai mazie uzņēmumi.
    +VATIsUsedExampleFR=Francijā tas nozīmē uzņēmumus vai organizācijas, kurām ir reāla fiskālā sistēma (Vienkāršota īsta vai normāla reālā). Sistēma, kurā tiek deklarēts pārdošanas nodoklis.
    +VATIsNotUsedExampleFR=Francijā tas nozīmē asociācijas, kas nav deklarētas par pārdošanas nodokli, vai uzņēmumi, organizācijas vai brīvās profesijas, kuras ir izvēlējušās mikrouzņēmumu fiskālo sistēmu (pārdošanas nodoklis franšīzē) un samaksājis franšīzes pārdošanas nodokli bez pārdošanas deklarācijas. Šī izvēle rēķinos parādīs atsauci "Nav piemērojams pārdošanas nodoklis - CGI art-293B".
     ##### Local Taxes #####
     LTRate=Likme
     LocalTax1IsNotUsed=Nelietot otru nodokli
    -LocalTax1IsUsedDesc=Izmantot otru nodokļu veidu (ne PVN)
    -LocalTax1IsNotUsedDesc=Neizmantojiet citu nodokļa veidu (ne PVN)
    +LocalTax1IsUsedDesc=Izmantojiet otra veida nodokļus (izņemot pirmo)
    +LocalTax1IsNotUsedDesc=Neizmantojiet cita veida nodokļus (izņemot pirmo)
     LocalTax1Management=Otrs nodokļa veids
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Nelietot trešo nodokli
    -LocalTax2IsUsedDesc=Izmantojiet trešā veida nodokli (nav PVN)
    -LocalTax2IsNotUsedDesc=Neizmantojiet cita veida nodokļiem (izņemot PVN)
    +LocalTax2IsUsedDesc=Izmantojiet trešā veida nodokļus (izņemot pirmo)
    +LocalTax2IsNotUsedDesc=Neizmantojiet cita veida nodokļus (izņemot pirmo)
     LocalTax2Management=Trešais nodokļa veids
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE vadība
    -LocalTax1IsUsedDescES= RE līmenis pēc noklusējuma, veidojot izredzes, rēķini, rīkojumi uc sekot aktīvo standarta noteikums: <br> Ja te pircējs nav pakļauts RE, RE pēc noklusējuma = 0. Beigas varu. <br> Ja pircējs ir pakļauts RE tad RE pēc noklusējuma. Beigas varu. <br>
    -LocalTax1IsNotUsedDescES= Pēc noklusējuma ierosinātā RE ir 0. Beigas varu.
    -LocalTax1IsUsedExampleES= Spānijā tie ir profesionāļi, ņemot vērā dažas īpašas sadaļām Spānijas IAE.
    -LocalTax1IsNotUsedExampleES= Spānijā tie ir profesionāli un sabiedrībām un saskaņā ar dažiem sadaļām Spānijas IAE.
    -LocalTax2ManagementES= IRPF vadība
    -LocalTax2IsUsedDescES= RE līmenis pēc noklusējuma, veidojot izredzes, rēķini, rīkojumi uc sekot aktīvo standarta noteikums: <br> Ja pārdevējs nav pakļauta IRPF, tad IRPF pēc noklusējuma = 0. Beigas varu. <br> Ja pārdevējs ir pakļauta IRPF tad IRPF pēc noklusējuma. Beigas varu. <br>
    -LocalTax2IsNotUsedDescES= Pēc noklusējuma ierosinātā IRPF ir 0. Beigas varu.
    -LocalTax2IsUsedExampleES= Spānijā, ārštata un neatkarīgi profesionāļi, kas sniedz pakalpojumus un uzņēmumiem, kuri ir izvēlējušies nodokļu sistēmu moduļus.
    -LocalTax2IsNotUsedExampleES= Spānijā tie Bussines neattiecas uz nodokļu sistēmas moduļiem.
    -CalcLocaltax=Reports on local taxes
    -CalcLocaltax1=Sales - Purchases
    +LocalTax1ManagementES=RE vadība
    +LocalTax1IsUsedDescES=RE-likme pēc noklusējuma, veidojot izredzes, rēķinus, pasūtījumus utt, atbilst aktīvajam standarta noteikumam: <br> Ja pircējs nav pakļauts RE, RE pēc noklusējuma = 0. Noteikuma beigas. <br> Ja pircējs tiek pakļauts RE, tad RE pēc noklusējuma. Noteikuma beigas. <br>
    +LocalTax1IsNotUsedDescES=Pēc noklusējuma ierosinātā RE ir 0. Beigas varu.
    +LocalTax1IsUsedExampleES=Spānijā tie ir profesionāļi, ņemot vērā dažas īpašas sadaļām Spānijas IAE.
    +LocalTax1IsNotUsedExampleES=Spānijā tie ir profesionāli un sabiedrībām un saskaņā ar dažiem sadaļām Spānijas IAE.
    +LocalTax2ManagementES=IRPF vadība
    +LocalTax2IsUsedDescES=IRPF likme pēc noklusējuma, veidojot izredzes, rēķinus, pasūtījumus utt, atbilst aktīvajam standarta noteikumam: <br> Ja pārdevējs nav pakļauts IRPF, tad IRPF pēc noklusējuma = 0. Noteikuma beigas. <br> Ja pārdevējs ir pakļauts IRPF, tad IRPF pēc noklusējuma. Noteikuma beigas. <br>
    +LocalTax2IsNotUsedDescES=Pēc noklusējuma ierosinātā IRPF ir 0. Beigas varu.
    +LocalTax2IsUsedExampleES=Spānijā, ārštata un neatkarīgi profesionāļi, kas sniedz pakalpojumus un uzņēmumiem, kuri ir izvēlējušies nodokļu sistēmu moduļus.
    +LocalTax2IsNotUsedExampleES=Spānijā šie uzņēmumi nav pakļauti moduļu nodokļu sistēmai.
    +CalcLocaltax=Ziņojumi par vietējiem nodokļiem
    +CalcLocaltax1=Pārdošana - pirkumi
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    -CalcLocaltax2=Purchases
    +CalcLocaltax2=Pirkumi
     CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases
     CalcLocaltax3=Pārdošanas
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label izmantots pēc noklusējuma, ja nav tulkojuma var atrast kodu
     LabelOnDocuments=Dokumentu marķējums
    -NbOfDays=dienu sk
    +LabelOrTranslationKey=Uzlīme vai tulkošanas taustiņš
    +ValueOfConstantKey=Konstanta vērtība
    +NbOfDays=Dienu skaits
     AtEndOfMonth=mēneša beigās
     CurrentNext=Pašreizējais / nākamais
     Offset=Kompensācija
    @@ -996,16 +1006,16 @@ Skin=Izskats
     DefaultSkin=Noklusētais izskats
     MaxSizeList=Maksimālais saraksta garums
     DefaultMaxSizeList=Noklusētais maksimālais sarakstu garums
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Īsu saraksta noklusējuma maksimālais garums (t.i., klienta kartē)
     MessageOfDay=Dienas ziņa
     MessageLogin=Iežurnalēšanās lapas paziņojums
     LoginPage=Pieteikšanās lapa
     BackgroundImageLogin=Fona attēls
     PermanentLeftSearchForm=Pastāvīgā meklēšanas forma kreisajā izvēlnē
    -DefaultLanguage=Noklusējuma izmantošanas valoda (valodas kods)
    +DefaultLanguage=Noklusējuma izmantojamā valoda (valodas kods)
     EnableMultilangInterface=Iespējot daudzvalodu interfeisu
     EnableShowLogo=Rādīt logotipu kreisajā izvēlnē
    -CompanyInfo=Uzņēmuma / organizācijas informācija
    +CompanyInfo=Uzņēmums / organizācija
     CompanyIds=Uzņēmuma / organizācijas identitāte
     CompanyName=Nosaukums
     CompanyAddress=Adrese
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Bankas konta īpašnieks %s
     BankModuleNotActive=Bankas kontu modulis nav ieslēgts
     ShowBugTrackLink=Rādīt saiti "<strong> %s </strong>"
     Alerts=Brīdinājumi
    -DelaysOfToleranceBeforeWarning=Pielaide kavēšanās pirms brīdinājums
    -DelaysOfToleranceDesc=Šis ekrāns ļauj definēt nepanesamas kavēšanos, pirms brīdinājums tiek ziņots uz ekrāna ar Piktogramma %s par katru nokavēto elementam.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (dienās) pirms brīdinājuma par projektu, kas nav slēgts laikā
    -Delays_MAIN_DELAY_TASKS_TODO=Kavējuma atlikšana (dienās) pirms brīdinājuma par plānotajiem uzdevumiem (projekta uzdevumi) vēl nav pabeigta
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Kavēšanās pielaide (dienās) pirms brīdinājums par priekšlikumiem, lai aizvērtu
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Kavēšanās pielaide (dienās) pirms brīdinājumu par priekšlikumiem nav jāmaksā
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance kavēšanās (dienās) pirms brīdinājumu par pakalpojumiem, lai aktivizētu
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance kavēšanās (dienās) pirms brīdinājumu par beidzies pakalpojumiem
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance kavēšanās (dienās) pirms brīdinājumu par nesamaksāto piegādātāja rēķiniem
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Neiecietības kavēšanās (dienās) pirms brīdinājumu par neapmaksātiem klientu rēķiniem
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance kavēšanās (dienās) pirms brīdinājumu par kamēr banku samierināšanās
    -Delays_MAIN_DELAY_MEMBERS=Tolerance kavēšanās (dienās) pirms brīdinājumu par novēlotu dalības maksa
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance kavēšanās (dienās) pirms brīdinājumu par pārbaudēm, depozītu darīt
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=Divas obligātās iestatīšanas darbības ir šādas darbības (divi pirmie ieraksti kreisajā iestatīšanas izvēlnē):
    -SetupDescription3=Iestatījumi izvēlnē <a href="%s"> %s -> %s </a>. Šis solis ir nepieciešams, jo tas nosaka datus, kas tiek izmantoti Dolibarr ekrānos, lai pielāgotu programmatūras noklusējuma darbību (piemēram, attiecībā uz valsti saistītām funkcijām).
    -SetupDescription4=Iestatījumi izvēlnē <a href="%s"> %s -> %s </a>. Šis solis ir nepieciešams, jo Dolibarr ERP / CRM ir vairāku moduļu / lietojumprogrammu kopums, kas ir vairāk vai mazāk neatkarīgi. Jaunas iespējas tiek pievienotas izvēlnēm katram aktivētajam modulim.
    -SetupDescription5=Citas izvēlnes ieraksti pārvaldīt izvēles parametrus.
    +DelaysOfToleranceBeforeWarning=Kavēšanās pirms brīdinājuma brīdinājuma parādīšanas
    +DelaysOfToleranceDesc=Šis ekrāns ļauj definēt kavēšanos, pirms brīdinājums tiek parādīts ekrānā ar ikonu %s katram vēlīnam elementam.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Kavēšanās (dienās) pirms brīdinājuma par plānotajiem pasākumiem (darba kārtības notikumi) vēl nav pabeigta
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Kavēšanās (dienās) pirms brīdinājuma par projektu, kas nav slēgts laikā
    +Delays_MAIN_DELAY_TASKS_TODO=Kavēšanās (dienās) pirms brīdinājuma par plānotajiem uzdevumiem (projekta uzdevumi) vēl nav pabeigta
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Kavējums (dienās) pirms brīdinājuma par pasūtījumiem, kas vēl nav apstrādāti
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Vēl aizkavēšanās (dienās) pirms brīdinājuma par pirkuma pasūtījumiem, kas vēl nav apstrādāti
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Aizkavēšanās (dienās) pirms brīdinājuma par priekšlikumiem slēgt
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Aizkavēšanās (dienās) pirms brīdinājuma par priekšlikumiem, par kuriem nav iekasēta samaksa
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Kavēšanās (dienās) pirms brīdinājuma par aktivizētajiem pakalpojumiem
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Kavējums (dienās) pirms brīdinājuma par pakalpojumiem, kuru termiņš ir beidzies
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (dienās) pirms brīdinājuma par neapmaksātiem piegādātāja rēķiniem
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Kavējums (dienās) pirms brīdinājuma par neapmaksātiem klienta rēķiniem
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (dienās) pirms brīdinājuma par notiekošo bankas saskaņošanu
    +Delays_MAIN_DELAY_MEMBERS=Kavēšanās (dienās) pirms brīdinājuma par atlikto dalības maksu
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (dienās) pirms brīdinājuma par čeka depozītu darīt
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Aizkavēšanās (dienās) pirms brīdinājuma par izdevumu pārskatu apstiprināšanu
    +SetupDescription1=Pirms sākat lietot Dolibarr, jānosaka daži sākotnējie parametri un moduļi ir iespējoti / konfigurēti.
    +SetupDescription2=Obligātie iestatīšanas soļi ir 2 pirmie soļi iestatīšanas izvēlnē, proti:
    +SetupDescription3=<a href="%s"> %s -> %s </a> <br> Galvenie parametri, kurus izmanto, lai pielāgotu Dolibarr noklusējuma darbību (piemēram, attiecībā uz valstīm saistītām funkcijām).
    +SetupDescription4=<a href="%s"> %s -> %s </a> <br> Dolibarr ERP / CRM ir vairāku moduļu / lietojumprogrammu kolekcija, kas ir vairāk vai mazāk neatkarīgas. Jūsu vajadzībām atbilstošie moduļi ir jāaktivizē un jākonfigurē. Jaunas preces / iespējas tiek pievienotas izvēlnēm, aktivizējot moduli.
    +SetupDescription5=Citu iestatījumu izvēlnes ieraksti nodrošina papildu parametrus.
     LogEvents=Drošības audita notikumi
    -Audit=Audits
    +Audit=Drošības notikumi
     InfoDolibarr=Par Dolibarr
     InfoBrowser=Pārlūkprogrammas info
     InfoOS=Par OS
    @@ -1056,20 +1066,20 @@ BrowserName=Pārlūkprogrammas nosaukums
     BrowserOS=Pārlūkprogrammas OS
     ListOfSecurityEvents=Saraksts ar Dolibarr drošības pasākumiem
     SecurityEventsPurged=Drošības pasākumi dzēsti
    -LogEventDesc=Jūs varat ļaut šeit reģistrēšanu Dolibarr drošības notikumiem. Administratori tad var redzēt tās saturu, izmantojot izvēlnes <b>Sistēmas rīki - revīzijas.</b> Uzmanību, šī funkcija var patērēt lielu daudzumu datu bāzē.
    -AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
    +LogEventDesc=Šeit varat iespējot drošības notikumu reģistrēšanu. Administratori pēc tam var redzēt tā saturu, izmantojot izvēlni <b> %s - %s </b>. Brīdinājums, šī funkcija var patērēt lielu datu apjomu datu bāzē.
    +AreaForAdminOnly=Iestatīšanas parametrus var iestatīt tikai <b> administratora lietotāji </b>.
     SystemInfoDesc=Sistēmas informācija ir dažādi tehniskā informācija jums tikai lasīšanas režīmā un redzama tikai administratoriem.
     SystemAreaForAdminOnly=Šī joma ir pieejama administratora lietotājiem. Neviens no Dolibarr atļauju var samazināt šo robežu.
    -CompanyFundationDesc=Šajā lapā rediģējiet visu zināmo informāciju par uzņēmumu vai fondu, kas jums jāpārvalda (šim nolūkam noklikšķiniet uz pogas "%s" vai "%s" lapas apakšdaļā).
    -AccountantDesc=Šajā lapā rediģējiet visu zināmo informāciju par savu grāmatvedi / grāmatvedi
    +CompanyFundationDesc=Rediģējiet uzņēmuma / organizācijas informāciju. Noklikšķiniet uz pogas "%s" vai "%s" lapas apakšdaļā.
    +AccountantDesc=Rediģējiet informāciju par savu grāmatvedi / grāmatvedi
     AccountantFileNumber=Faila numurs
    -DisplayDesc=Jūs varat izvēlēties katru parametru, kas saistīts ar Dolibarr izskatu un justies šeit
    +DisplayDesc=Jūs varat izvēlēties katru parametru, kas saistīts ar Dolibarr izskatu 
     AvailableModules=Pieejamās progrmma / moduļi
    -ToActivateModule=Lai aktivizētu moduļus, dodieties uz iestatīšanas zonas (Home->Setup->Moduļi).
    +ToActivateModule=Lai aktivizētu moduļus, dodieties uz iestatīšanas apgabalu (Sākums-> Iestatīšana-> Moduļi).
     SessionTimeOut=Sesijas pārtraukums
    -SessionExplanation=Šis numurs garantiju, ka sesija nekad beidzas pirms šī kavēšanās, ja sesija tīrītājs tiek darīts ar Iekšējā PHP sesijas tīrāku (un nekas cits). Iekšējā PHP sesijas tīrītājs nav garantija, ka sesija beigsies tikai pēc šīs kavēšanās. Tas beigsies, pēc šī kavēšanās, un, kad sesija tīrītājs ir ilga, tāpēc ik <b>%s / %s</b> piekļuves, bet tikai laikā piekļūt dokumentiem, ko citās sēdēs. <br> Piezīme: par dažiem ar ārēju sesijas tīrīšanas mehānisma (cron zem Debian, Ubuntu ...) serveriem, sesijas var tikt iznīcināti pēc posmā, kas noteikts pēc noklusējuma <strong>session.gc_maxlifetime,</strong> vienalga kāds vērtību ieraksta šeit.
    +SessionExplanation=Šis numurs garantē, ka sesija nekad nebeigsies pirms šīs kavēšanās, ja sesiju tīrāku veic iekšējā PHP sesiju tīrītājs (un nekas cits). Iekšējais PHP sesiju tīrītājs negarantē, ka sesija beigsies pēc šīs kavēšanās. Pēc šīs kavēšanās un sesijas tīrītāja palaišanas termiņš beigsies, līdz ar to katrs <b> %s / %s </ b> piekļūst, bet tikai piekļuves laikā, ko veic citas sesijas (ja vērtība ir 0, tas nozīmē, ka ir pabeigta sesija piezīme: dažos serveros ar ārējo sesiju tīrīšanas mehānismu (cron zem debian, ubuntu ...) sesijas var iznīcināt pēc laika, kuru nosaka ārējs iestatījums neatkarīgi no tā, kāds Šeit ievadītā vērtība ir.
     TriggersAvailable=Pieejamie aktivizētāji
    -TriggersDesc=Palaide ir faili, kas mainīs uz Dolibarr darbplūsmas uzvedību, kad nokopēto uz direktoriju <b>htdocs / core / izraisa.</b> Viņi saprata, jaunas darbības, aktivizēta Dolibarr notikumiem (jauns uzņēmums radīšana, rēķinu apstiprināšanu, ...).
    +TriggersDesc=Trigeri ir faili, kas modificēs Dolibarr darbplūsmas darbību pēc tam, kad būs nokopēti direktorijā <b> htdocs / core / triggers</b>. Viņi realizē jaunas darbības, kas aktivizētas Dolibarr notikumos (jauna uzņēmuma izveide, rēķinu apstiprināšana, ...).
     TriggerDisabledByName=Trigeri Šajā failā ir invalīdi <b>ar-NORUN</b> piedēkli savu vārdu.
     TriggerDisabledAsModuleDisabled=Trigeri Šajā failā ir invalīdi, kā modulis <b>%s</b> ir atspējots.
     TriggerAlwaysActive=Trigeri Šajā failā ir aktīva vienmēr, neatkarīgi ir aktivizēts Dolibarr moduļiem.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Ievietojiet visus atsauces datus. Varat pievienot savas vērtība
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Ierobežojumi / Precision iestatīšanas
    -LimitsDesc=Jūs varat noteikt limitus, precizējumus un optimizācijas, kas izmantotas ar Dolibarr šeit
    +LimitsDesc=Šeit jūs varat noteikt ierobežojumus, precizitātes un optimizāciju, ko Dolibarr izmanto
     MAIN_MAX_DECIMALS_UNIT=Maksimālais ciparu skaits aiz komata cenām
     MAIN_MAX_DECIMALS_TOT=Maksimālās decimāldaļas kopējai cenai
     MAIN_MAX_DECIMALS_SHOWN=Max aiz komata par cenām parādīta ekrānā (Add <b>...</b> pēc šo numuru, ja jūs vēlaties redzēt <b>...</b> kad numurs tiek apcirsti, kad redzams uz ekrāna)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Neto vienības produkta cena
     TotalPriceAfterRounding=Kopējā cena (neto/pvn/ar nodokli) pēc noapaļošanas
     ParameterActiveForNextInputOnly=Parametrs stājas spēkā no nākamās ievades
    -NoEventOrNoAuditSetup=Nav drošības pasākumi ierakstīti vēl. Tas var būt normāli, ja audits nav iespējots "Iestatījumi - drošība - audtits" lapā.
    -NoEventFoundWithCriteria=Nav drošības pasākums ir atzīts par šādiem meklēšanas kritērijiem ir.
    +NoEventOrNoAuditSetup=Vēl neviens drošības notikums nav reģistrēts. Tas var būt normāli, ja lapā "Iestatīšana - Drošība - notikumi" nav veikta revīzija.
    +NoEventFoundWithCriteria=Šim meklēšanas kritērijam nav atrasts neviens drošības notikums.
     SeeLocalSendMailSetup=Skatiet sendmail iestatījumus
     BackupDesc=Lai izveidotu pilnu Dolibarr rezerves kopiju jums ir:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Saglabājiet datubāzes saturu (<b>%s</b>) noņemšanas failā. Šim nolūkam varat izmantot palīgu.
     BackupDescX=Arhivēto katalogs jāglabā drošā vietā.
     BackupDescY=Radītais dump fails jāglabā drošā vietā.
    -BackupPHPWarning=Rezerves nevar būt guaranted ar šo metodi. Dod iepriekšējo
    +BackupPHPWarning=Ar šo metodi nevar veikt rezerves kopijas. Ieteicams iepriekšējais.
     RestoreDesc=Lai atjaunotu Dolibarr rezeves kopiju jums ir:
    -RestoreDesc2=Atjaunot dokumentu direktorijas arhīva failu (piemēram zip fails), lai iegūtu failu struktūru jaunās Dolibarr instalācijas vai pašreizējā dokumentu direktorijā (<b>%s</b>).
    +RestoreDesc2=Atjaunojiet arhīvu failu (piemēram, zip fails) dokumentu direktorijā, lai iegūtu failu koku jaunā Dolibarr instalācijas dokumentu direktorijā vai šajā pašreizējā dokumentu direktorijā (<b> %s </b>).
     RestoreDesc3=Atjaunot datus no rezerves kopijas faila, datu bāzē jaunā Dolibarr instalācijā vai datu bāzē pašreizējajai instalācijai (<b>%s</b>). Brīdinājums, kad atjaunošana ir pabeigta, jums ir jāizmanto lietotāja vārds / parole, kas bija tad, kad tika veikta rezerves kopija, lai pieslēgtos atkal. Lai atjaunotu rezerves kopiju datubāzei esošajā instalācijā, jūs varat sekot šim palīgam.
     RestoreMySQL=MySQL imports
     ForcedToByAModule= Šis noteikums ir spiests <b>%s</b> ar aktivēto modulis
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Jums ir palaist šo komandu no
     YourPHPDoesNotHaveSSLSupport=SSL funkcijas, kas nav pieejama jūsu PHP
     DownloadMoreSkins=Vairāki izskati lejupielādei
     SimpleNumRefModelDesc=Atgriež atsauces numuru formātā %syymm-NNNN kur yy ir gads, MM ir mēnesis, un nnnn ir secība bez cauruma un bez reset
    -ShowProfIdInAddress=Rādīt professionnal id ar adresēm par dokumentu
    -ShowVATIntaInAddress=Slēpt PVN maksātāja numuru un adreses uz dokumentiem
    +ShowProfIdInAddress=Parādiet profesionālu ID ar adresēm uz dokumentiem
    +ShowVATIntaInAddress=Slēpt Kopienas iekšzemes PVN numuru ar adresēm dokumentos
     TranslationUncomplete=Daļējs tulkojums
    -MAIN_DISABLE_METEO=Atslēgt Meteo skatu
    +MAIN_DISABLE_METEO=Atspējot meteoroloģisko skatu
     MeteoStdMod=Standarta režīms
     MeteoStdModEnabled=Standarta režīms ir aktivizēts
     MeteoPercentageMod=Procentuālais režīms
     MeteoPercentageModEnabled=Procentuālais režīms ir aktivizēts
     MeteoUseMod=Noklikšķiniet, lai izmantotu %s
     TestLoginToAPI=Tests pieteikties API
    -ProxyDesc=Dažas Dolibarr funkcijas ir nepieciešama piekļuve internetam, lai strādātu. Noteikt šeit parametrus par to. Ja Dolibarr serveris ir aiz proxy serveri, šie parametri stāsta Dolibarr, kā piekļūt internetam, izmantojot to.
    +ProxyDesc=Dažām Dolibarr funkcijām ir nepieciešama piekļuve internetam. Šeit definējiet šeit parametrus. Ja Dolibarr serveris atrodas proxy serverī, šie parametri parāda Dolibarr, kā ar to piekļūt internetam.
     ExternalAccess=Ārējā piekļuve
     MAIN_PROXY_USE=Izmantot starpniekserveri (savādāk tieša piekļuve internetam)
     MAIN_PROXY_HOST=Nosaukums / adrese proxy serverim
     MAIN_PROXY_PORT=Proxy servera ports
     MAIN_PROXY_USER=Pieslēdzies, lai izmantotu starpniekserveri
     MAIN_PROXY_PASS=Parole, lai izmantotu starpniekserveri
    -DefineHereComplementaryAttributes=Definēt šeit visi atribūti, jau nav pieejama pēc noklusējuma, un, ka jūs vēlaties būt atbalstīta %s.
    -ExtraFields=Papildbarība atribūti
    +DefineHereComplementaryAttributes=Noteikt visus atribūtus, kas vēl nav pieejami pēc noklusējuma, un šeit vēlaties atbalstīt %s.
    +ExtraFields=Papildus atribūti
     ExtraFieldsLines=Papildinošas atribūti (līnijas)
     ExtraFieldsLinesRec=Papildu atribūti (veidņu rēķinu līnijas)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Papildinošas atribūti (thirdparty)
    -ExtraFieldsContacts=Papildinošas atribūti (kontaktpersona / adrese)
    +ExtraFieldsContacts=Papildu atribūti (kontakti / adrese)
     ExtraFieldsMember=Papildinošas atribūti (biedrs)
     ExtraFieldsMemberType=Papildinošas atribūti (biedrs tipa)
     ExtraFieldsCustomerInvoices=Papildinošas atribūti (rēķini)
    @@ -1141,48 +1151,49 @@ ExtraFieldsSupplierOrders=Papildinošas atribūti (rīkojumi)
     ExtraFieldsSupplierInvoices=Papildinošas atribūti (rēķini)
     ExtraFieldsProject=Papildinošas atribūti (projekti)
     ExtraFieldsProjectTask=Papildinošas atribūti (uzdevumi)
    -ExtraFieldHasWrongValue=Attribute %s has a wrong value.
    +ExtraFieldHasWrongValue=Parametram %s ir nepareiza vērtība.
     AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space
     SendmailOptionNotComplete=Brīdinājums, par dažiem Linux sistēmām, lai nosūtītu e-pastu no jūsu e-pastu, sendmail izpilde uzstādīšana ir iekļauti variants-ba (parametrs mail.force_extra_parameters savā php.ini failā). Ja daži saņēmēji nekad saņemt e-pastus, mēģina labot šo PHP parametru ar mail.force_extra_parameters =-BA).
     PathToDocuments=Ceļš līdz dokumentiem
     PathDirectory=Katalogs
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Funkcija sūtīt vēstules, izmantojot metodi "PHP mail direct", ģenerēs pasta ziņojumu, kuru daži saņēmēji pasta serveri var nepareizi parsēt. Rezultāts ir tāds, ka atsevišķas vēstules nevar lasīt cilvēki, kurus ved uz šīm bugged platformām. Tas attiecas uz dažiem interneta pakalpojumu sniedzējiem (piem., Orange Francijā). Šī nav problēma ar Dolibarr vai PHP, bet ar saņēmēja pasta serveri. Tomēr, lai izvairītos no tā, var pievienot opciju MAIN_FIX_FOR_BUGGED_MTA līdz 1 iestatījumos - Citi, lai modificētu Dolibarr. Tomēr jums var rasties problēmas ar citiem serveriem, kas stingri izmanto SMTP standartu. Cits risinājums (ieteicams) ir izmantot metodi "SMTP ligzdu bibliotēka", kurai nav trūkumu.
     TranslationSetup=Tulkojumu konfigurēšana
     TranslationKeySearch=Meklēt tulkošanas atslēgu vai virkni
     TranslationOverwriteKey=Pārrakstīt rakstīšanas virkni
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=Jūs varat arī ignorēt virknes, kas aizpilda nākamo tabulu. Izvēlieties savu valodu no %s nolaižamās izvēlnes, ievietojiet tulkošanas taustiņu virkni uz "%s" un jauno tulkojumu uz "%s"
    -TranslationOverwriteDesc2=Varat izmantot citu cilni, lai palīdzētu jums zināt tulkošanas atslēgu, kuru vēlaties izmantot
    +TranslationOverwriteDesc2=Varat izmantot citu cilni, lai uzzinātu, kuru tulkošanas atslēgu izmantot
     TranslationString=Tulkošanas virkne
     CurrentTranslationString=Pašreizējā tulkošanas virkne
     WarningAtLeastKeyOrTranslationRequired=Vismaz atslēgas vai tulkošanas virknei ir nepieciešams meklēšanas kritērijs
     NewTranslationStringToShow=Jauna tulkošanas virkne, lai parādītu
     OriginalValueWas=Oriģinālais tulkojums ir pārrakstīts. Sākotnējā vērtība bija: <br> <br> %s
    -TransKeyWithoutOriginalValue=Jūs piespiedāt jaunu tulkojumu tulkošanas taustiņam "<strong> %s </ strong>", kas nevienā valodas failā nepastāv
    +TransKeyWithoutOriginalValue=Jūs piespiedāt jaunu tulkojumu tulkošanas taustiņam "<strong> %s</strong>", kas nav nevienā valodas failā
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Jums ir jābūt ieslēgtam vismaz 1 modulim
    -ClassNotFoundIntoPathWarning=Klase %s nav atrasta PHP norādītajā ceļā
    +ClassNotFoundIntoPathWarning=Klase %s nav atrodama PHP ceļā
     YesInSummer=Jā vasarā
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Piezīme. Ārējiem lietotājiem (neatkarīgi no šādu lietotāju atļaujām) tiek atvērti tikai turpmāk minētie moduļi un tikai tad, ja tiek piešķirtas atļaujas:
     SuhosinSessionEncrypt=Sesija uzglabāšana šifrēta ar Suhosin
     ConditionIsCurrently=Stāvoklis šobrīd ir %s
    -YouUseBestDriver=Jūs varat izmantot vadītāja %s, kas ir labākais draiveris, kas pieejams šobrīd.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=Tev ir tikai %s produktus / pakalpojumus Into datu bāze. Tas nav nepieciešams kādu konkrētu optimizāciju.
    +YouUseBestDriver=Jūs izmantojat draiveri %s, kas pašlaik ir labākais draiveris.
    +YouDoNotUseBestDriver=Jūs izmantojat draiveri %s, bet ieteicams ir %s.
    +NbOfProductIsLowerThanNoPb=Jums ir tikai %s produkti/pakalpojumi datu bāzē. Tai nav nepieciešama īpaša optimizācija.
     SearchOptim=Meklēšanas optimizācija
    -YouHaveXProductUseSearchOptim=Jums ir %s ražojumu par datu bāzē. Jums vajadzētu pievienot pastāvīgu PRODUCT_DONOTSEARCH_ANYWHERE uz 1 par Home-Setup-citādi, jūs ierobežot meklēšanu uz sākuma stīgām padarot iespējams datubāzē izmantot indeksu, un jums vajadzētu saņemt tūlītēju atbildi.
    -BrowserIsOK=Jūs izmantojat interneta pārlūka %s. Šī pārlūkprogramma ir ok drošību un veiktspēju.
    -BrowserIsKO=Jūs izmantojat interneta pārlūka %s. Šī pārlūkprogramma ir zināms, ka slikta izvēle drošību, veiktspēju un uzticamību. Mēs recommand jums izmantot Firefox, Chrome, Opera vai Safari.
    +YouHaveXProductUseSearchOptim=Jūs esat %s produktu datu bāzē. Jums vajadzētu pievienot pastāvīgo PRODUCT_DONOTSEARCH_ANYWHERE uz 1 vietne Home-Setup-Other. Ierobežojiet meklēšanu ar virkņu sākumu, kas ļauj datubāzei izmantot indeksus, un jums vajadzētu saņemt tūlītēju atbildi.
    +BrowserIsOK=Jūs izmantojat tīmekļa pārlūku %s. Šī pārlūkprogramma ir droša un droša.
    +BrowserIsKO=Jūs izmantojat tīmekļa pārlūku %s. Šī pārlūka informācija ir slikta izvēle drošībai, veiktspējai un uzticamībai. Mēs iesakām izmantot Firefox, Chrome, Opera vai Safari.
     XDebugInstalled=XDebug ir ielādēts
    -XCacheInstalled=XCache ir piekrauts.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +XCacheInstalled=XCache ir ielādēts.
    +AddRefInList=Displejs Klienta / Piegādātāja ref. info saraksts (atlasiet sarakstu vai izvēles rūtiņu) un lielākā daļa hipersaišu. <br> Trešās personas parādīsies ar nosaukumu "CC12345 - SC45678 - The Big Company corp". "Big Company corp" vietā.
    +AddAdressInList=Parādiet Klienta / Piegādes adreses informācijas sarakstu (atlasiet sarakstu vai izvēles rūtiņu) <br> Trešās personas parādīsies ar nosaukumu "The Big Company corp" vietā ar nosaukumu "The Big Company corp. - 21 jump street 123456 Big city - USA".
    +AskForPreferredShippingMethod=Pieprasiet vēlamo piegādes metodi trešajām pusēm.
     FieldEdition=Izdevums lauka %s
     FillThisOnlyIfRequired=Piemērs: +2 (aizpildiet tikai, ja sastopaties ar problēmām)
     GetBarCode=Iegūt svītrukodu
     ##### Module password generation
     PasswordGenerationStandard=Atgriešanās paroli radīts saskaņā ar iekšējo Dolibarr algoritmu: 8 rakstzīmēm, kas satur kopīgos ciparus un rakstzīmes mazie burti.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Neiesakām ģenerētu paroli. Parole jāieraksta manuāli.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,30 +1206,31 @@ UserMailRequired=E-pasts nepieciešams, lai izveidotu jaunu lietotāju
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Uzņēmuma moduļa uzstādīšana
    -CompanyCodeChecker=Trešo personu kodu ģenerēšanas un pārbaudes modulis (klients vai pārdevējs)
    -AccountCodeManager=Grāmatvedības kodu ģenerēšanas modulis (klients vai pārdevējs)
    +CompanyCodeChecker=Iespējas, lai automātiski izveidotu klienta / pārdevēja kodus
    +AccountCodeManager=Iespējas automātiski ģenerēt klienta / pārdevēja grāmatvedības kodus
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* vienam lietotājam, vienam lietotājam laikā.
     NotificationsDescContact=* uz trešo pušu kontaktpersonām (klientiem vai pārdevējiem), vienu kontaktu laikā.
     NotificationsDescGlobal=* vai iestatot globālos mērķa e-pastus moduļa iestatīšanas lapā.
     ModelModules=Dokumentu veidnes
    -DocumentModelOdt=Izveidot dokumentus no OpenDocument veidnes (. ODT vai. ODS failus OpenOffice, KOffice, TextEdit, ...)
    +DocumentModelOdt=Izveidojiet dokumentus no OpenDocument veidnes (.ODT / .ODS faili no LibreOffice, OpenOffice, KOffice, TextEdit, ...)
     WatermarkOnDraft=Ūdenszīme dokumenta projektā
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Noteikumi par profesionālo IDS
    +CompanyIdProfChecker=Noteikumi par profesionāliem ID
     MustBeUnique=Jābūt unikālam?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Obligāts, lai izveidotu trešās puses (ja ir definēts PVN numurs vai uzņēmuma veids)?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Tehniskie pakalpojumi
     #####DAV #####
    -WebDAVSetupDesc=Šīs ir saites, lai piekļūtu WebDAV direktorijai. Tas satur "publisku" direktoriju, kas pieejams jebkuram lietotājam, kurš zina URL (ja ir atļauta publiskā direktorija piekļuve) un "privātai" direktorijai, kurai ir nepieciešams esošs pieteikšanās konts / parole, lai piekļūtu.
    -WebDavServer=Root URL of %s server : %s
    +WebDAVSetupDesc=Šīs ir saites, lai piekļūtu WebDAV direktorijai. Tas satur "publisku" direktoriju, kas pieejams jebkuram lietotājam, kurš zina URL (ja ir atļauta publiskā direktorija piekļuve) un "privātai" direktorijai, kurai ir nepieciešams esošais pieteikšanās konts / parole.
    +WebDavServer=%sServera:%s saknes adrese
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Eksporta saite uz <b>%s</b> formātā ir pieejams šādā tīmekļa vietnē: %s
     ##### Invoices #####
     BillsSetup=Rēķinu moduļa uzstādīšana
     BillsNumberingModule=Rēķinu un kredītu piezīmes numerācijas modelis
     BillsPDFModules=Rēķina dokumentu modeļi
    +BillsPDFModulesAccordindToInvoiceType=Rēķinu dokumentu modeļi atbilstoši rēķina veidam
     PaymentsPDFModules=Maksājumu dokumentu paraugi
     CreditNote=Kredīta piezīme
     CreditNotes=Kredīta piezīmes
    @@ -1228,7 +1240,7 @@ SuggestPaymentByRIBOnAccount=Ieteikt maksājumus, ko izņemt no konta
     SuggestPaymentByChequeToAddress=Ieteikt maksājumu ar čeku, lai
     FreeLegalTextOnInvoices=Brīvs teksts uz rēķiniem
     WatermarkOnDraftInvoices=Ūdenszīme uz sagataves rēķiniem (nav ja tukšs)
    -PaymentsNumberingModule=Payments numbering model
    +PaymentsNumberingModule=Maksājumu numerācijas modelis
     SuppliersPayment=Piegādātāju maksājumi
     SupplierPaymentSetup=Piegādātāju maksājumu iestatīšana
     ##### Proposals #####
    @@ -1245,7 +1257,7 @@ SupplierProposalPDFModules=Cenas pieprasa pārdevējiem dokumentu modeļus
     FreeLegalTextOnSupplierProposal=Brīvs teksts cenu pieprasījumu pārdevējiem
     WatermarkOnDraftSupplierProposal=Ūdenszīme par cenu cenu pieprasījumu pārdevējiem (neviens nav tukšs)
     BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request
    -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order
    +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Pieprasīt noliktavas avotu pasūtīšanai
     ##### Suppliers Orders #####
     BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Pieprasiet bankas konta galamērķi pirkuma pasūtījumā
     ##### Orders #####
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Pārvaldīt Pieteikšanos katram dalībniekam
     AdherentMailRequired=E-Mail nepieciešams, lai izveidotu jaunu locekli
     MemberSendInformationByMailByDefault=Rūtiņu, lai nosūtītu pasta apstiprinājums locekļiem (validāciju vai jauns abonements) ir ieslēgts pēc noklusējuma
     VisitorCanChooseItsPaymentMode=Apmeklētājs var izvēlēties pieejamos maksājumu veidus
    +MEMBER_REMINDER_EMAIL=Iespējot automātisku atgādinājumu  <b>pa e-pastu </b> no abonementiem ar beigu datumu. Piezīme: modulis <strong> %s </strong> ir jāaktivizē un pareizi iestatīts, lai saņemtu atgādinājumu.
     ##### LDAP setup #####
     LDAPSetup=LDAP iestatījumi
     LDAPGlobalParameters=Globālie parametri
    @@ -1325,7 +1338,7 @@ LDAPMemberDnExample=Complete DN (ex: ou = biedri, dc = piemēram, dc = com)
     LDAPMemberObjectClassList=Saraksts objektklasi
     LDAPMemberObjectClassListExample=Saraksts objektklasi definējot ierakstu atribūtiem (ex: top, inetOrgPerson vai augšas, lietotājs Active Directory)
     LDAPMemberTypeDn=Dolibarr biedru veidi DN
    -LDAPMemberTypepDnExample=Pabeigt DN (ex: ou = dalībnieku tipi, dc = piemērs, dc = com)
    +LDAPMemberTypepDnExample=Pabeigt DN (piem: ou = dalībnieku tipi, dc = piemērs, dc = com)
     LDAPMemberTypeObjectClassList=Saraksts objektklasi
     LDAPMemberTypeObjectClassListExample=Saraksts objektklasi definējot ierakstu atribūtiem (ex: top, groupOfUniqueNames)
     LDAPUserObjectClassList=Saraksts objektklasi
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Testa dalībnieka tipa sinhronizācija
     LDAPTestSearch= Testēt LDAP meklēšanu
     LDAPSynchroOK=Sinhronizācijas tests veiksmīgi pabeigts
     LDAPSynchroKO=Neizdevās sinhronizācijas pārbaude
    -LDAPSynchroKOMayBePermissions=Neizdevās sinhronizācijas pārbaude. Pārbaudiet, vai saistība ar serveri ir pareizi konfigurēts un ļauj LDAP udpates
    +LDAPSynchroKOMayBePermissions=Neizdevās sinhronizācijas tests. Pārbaudiet, vai savienojums ar serveri ir pareizi konfigurēts un atļauj LDAP atjauninājumus
     LDAPTCPConnectOK=TCP savienojumu ar LDAP servera veiksmīgiem (Server = %s, Port = %s)
     LDAPTCPConnectKO=TCP savienojumu ar LDAP serveri neizdevās (Server = %s, Port = %s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Savienot / Authentificate ar LDAP serveri neizdevās (Server = %s, Port = %s, Admin = %s, Password = %s)
    +LDAPBindOK=Veiksmīgi pievienojiet / autentificējiet LDAP serveri (Server = %s, Port = %s, Admin = %s, Parole = %s)
    +LDAPBindKO=Nepieslēgties / autentificēt LDAP serverī (serveris = %s, ports = %s, Admin = %s, parole = %s)
     LDAPSetupForVersion3=LDAP serveris konfigurēts 3 versijai
     LDAPSetupForVersion2=LDAP serveris konfigurēta 2 versijai
     LDAPDolibarrMapping=Dolibarr kartēšana
    @@ -1387,8 +1400,8 @@ LDAPFieldTownExample=Piemērs: l
     LDAPFieldCountry=Valsts
     LDAPFieldDescription=Apraksts
     LDAPFieldDescriptionExample=Piemērs: apraksts
    -LDAPFieldNotePublic=Public Note
    -LDAPFieldNotePublicExample=Example : publicnote
    +LDAPFieldNotePublic=Publiskā piezīme
    +LDAPFieldNotePublicExample=Piemērs: publiskā piezīme
     LDAPFieldGroupMembers= Grupas dalībnieki
     LDAPFieldGroupMembersExample= Piemērs: uniqueMember
     LDAPFieldBirthdate=Dzimšanas diena
    @@ -1409,46 +1422,47 @@ LDAPDescMembersTypes=Šī lapa ļauj definēt LDAP atribūtu nosaukumu LDAP kok
     LDAPDescValues=Piemērs vērtības ir paredzētas <b>OpenLDAP</b> ar šādām ielādes shēmu: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Ja jūs izmantojat thoose vērtības un OpenLDAP, mainīt savu LDAP config failu <b>slapd.conf</b> lai visi thoose shēmas ielādēta.
     ForANonAnonymousAccess=Par apstiprinātu piekļuvi (par rakstīšanas piekļuvi piemēram)
     PerfDolibarr=Performance uzstādīšana / optimizēt ziņojums
    -YouMayFindPerfAdviceHere=Jūs atradīsiet šajā lapā dažas pārbaudes, vai padomus, kas saistīti ar sniegumu.
    -NotInstalled=Nav uzstādīta, lai jūsu serveris nav palēnināt ar šo.
    +YouMayFindPerfAdviceHere=Šajā lapā ir sniegtas dažas pārbaudes vai ieteikumi saistībā ar veiktspēju.
    +NotInstalled=Nav uzstādīts, tāpēc jūsu serveris netiek palēnināts ar to.
     ApplicativeCache=Applicative kešatmiņa
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=Opcode cache
    -NoOPCodeCacheFound=Nav opcode cache atrasts. Var būt jūs izmantojat citu opcode cache nekā XCache vai eAccelerator (labi), var būt jums nav opcode cache (ļoti slikti).
    +NoOPCodeCacheFound=Nav atrasta OPCode kešatmiņa. Varbūt jūs izmantojat OPCode kešatmiņu, kas nav XCache vai eAccelerator (labi), vai varbūt jums nav OPCode kešatmiņas (ļoti slikta).
     HTTPCacheStaticResources=HTTP kešatmiņu statisko resursu (CSS, img, javascript)
     FilesOfTypeCached=Faili tipa %s ir kešatmiņā ar HTTP serveri
     FilesOfTypeNotCached=Faili tipa %s nav kešatmiņā ar HTTP serveri
     FilesOfTypeCompressed=Faili Tipa %s tiek saspiesti ar HTTP serveri
     FilesOfTypeNotCompressed=Faili Tipa %s nav saspiesti ar HTTP serveri
    -CacheByServer=Cache serverim
    +CacheByServer=Servera kešatmiņa
     CacheByServerDesc=Piemēram, izmantojot Apache direktīvu "ExpiresByType image / gif A2592000"
    -CacheByClient=Cache pārlūks
    +CacheByClient=Pārlūka kešatmiņa
     CompressionOfResources=Kompresijas HTTP atbildes
     CompressionOfResourcesDesc=Piemēram, izmantojot Apache direktīvu "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=Jūs varat definēt / piespiest šeit noklusējuma vērtību, kuru vēlaties iegūt, kad izveidojat jaunu ierakstu un / vai noņemat filtrus vai kārtotu kārtību, kad jūsu saraksts ieraksts.
    -DefaultCreateForm=Noklusējuma vērtības (veidlapās, kas jāizveido)
    +DefaultValuesDesc=Šeit jūs varat definēt / izpildīt noklusējuma vērtību, kuru vēlaties izveidot, kad izveidojat jaunu ierakstu un / vai noklusējuma filtrus, vai kārtot kārtību, kad jūsu saraksts ieraksta.
    +DefaultCreateForm=Noklusējuma vērtības (veidot veidlapās)
     DefaultSearchFilters=Noklusējuma meklēšanas filtri
     DefaultSortOrder=Noklusējuma kārtošanas kārtība
     DefaultFocus=Noklusējuma fokusa lauki
    +DefaultMandatory=Obligātie veidlapu lauki
     ##### Products #####
     ProductSetup=Produktu moduļa uzstādīšana
     ServiceSetup=Pakalpojumu moduļa uzstādīšana
     ProductServiceSetup=Produktu un pakalpojumu moduļu uzstādīšana
     NumberOfProductShowInSelect=Maksimālais skaits produktu kombinācijas izvēlētos sarakstus (0 = nav ierobežojumu)
    -ViewProductDescInFormAbility=Vizualizācija produktu aprakstiem formām (citādi kā popup Tooltip)
    +ViewProductDescInFormAbility=Parādīt produkta aprakstus veidlapās (citādi kā uznirstošo rīku padomu)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Displeja produktu apraksti trešās puses valodā
    +UseSearchToSelectProductTooltip=Arī tad, ja jums ir liels produktu skaits (> 100 000), varat palielināt ātrumu, iestatot iestatījumu -> Cits iestatījumu konstante PRODUCT_DONOTSEARCH_ANYWHERE uz 1. Tad meklēšana būs tikai virknes sākums.
    +UseSearchToSelectProduct=Pagaidiet, kamēr nospiedīsiet taustiņu, pirms ievietojat produktu kombinēto sarakstu saturu (tas var palielināt veiktspēju, ja jums ir daudz produktu, taču tas ir mazāk ērts).
     SetDefaultBarcodeTypeProducts=Noklusējuma svītrkoda veids izmantojams produktiem
     SetDefaultBarcodeTypeThirdParties=Svītrkodu veids pēc noklusējuma trešām personām
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
     ProductCodeChecker= Modulis produkta koda paaudzes un pārbaudes (produkts vai pakalpojums)
     ProductOtherConf= Produktu / pakalpojumu konfigurācija
    -IsNotADir=is not a directory!
    +IsNotADir=nav direktorija!
     ##### Syslog #####
     SyslogSetup=Logfailu moduļa iestatījumi
     SyslogOutput=Logfailu  izvade
    @@ -1459,7 +1473,7 @@ YouCanUseDOL_DATA_ROOT=Jūs varat izmantot DOL_DATA_ROOT / dolibarr.log uz log f
     ErrorUnknownSyslogConstant=Constant %s nav zināms Syslog konstante
     OnlyWindowsLOG_USER=Windows atbalsta tikai LOG_USER
     CompressSyslogs=Atkļūdošanas žurnāla failu saspiešana un dublēšana (ko ģenerē modulis Log par atkļūdošanu)
    -SyslogFileNumberOfSaves=Log backups
    +SyslogFileNumberOfSaves=Žurnālfailu rezerves kopijas
     ConfigureCleaningCronjobToSetFrequencyOfSaves=Konfigurējiet regulāro darbu tīrīšanu, lai iestatītu žurnāla dublēšanas biežumu
     ##### Donations #####
     DonationsSetup=Ziedojumu moduļa uzstādīšana
    @@ -1470,7 +1484,7 @@ PaperFormatModule=Drukāšanas formāta modulis
     BarcodeEncodeModule=Svītrkodu kodēšanas veids
     CodeBarGenerator=Svītrkodu ģenerators
     ChooseABarCode=Nav noteikts ģenerators
    -FormatNotSupportedByGenerator=Format not supported by this generator
    +FormatNotSupportedByGenerator=Šis ģenerators neatbalsta šo formātu
     BarcodeDescEAN8=Svītrkods EAN8 veids
     BarcodeDescEAN13=Svītrkods EAN13 veida
     BarcodeDescUPC=Svītrkoda veids UPC
    @@ -1499,11 +1513,11 @@ NotificationSetup=EMail notification module setup
     NotificationEMailFrom=Nosūtītāja e-pasts (No) uz e-pastu nosūtīti paziņojumi
     FixedEmailTarget=Fixed email target
     ##### Sendings #####
    -SendingsSetup=Nosūtot modulis iestatīšanu
    +SendingsSetup=Nosūtīšanas moduļa iestatīšana
     SendingsReceiptModel=Nosūtot saņemšanas modeli
     SendingsNumberingModules=Sendings numerācijas moduļus
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=Lielākajā daļā gadījumu piegādes lapas tiek izmantotas gan kā klientu pasūtījumu lapas (nosūtāmo produktu saraksts), gan arī klienta saņemtas un parakstītas lapas. Tādējādi produktu piegādes kvīts ir dublēta funkcija un reti tiek aktivizēta.
     FreeLegalTextOnShippings=Brīvais teksts piegādēs
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Produkti piegādes kvīts numerācija modulis
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Uzlabotais redaktors
     ActivateFCKeditor=Aktivizēt uzlabotos redaktoru:
     FCKeditorForCompany=WYSIWYG izveidi / izdevums no elementiem apraksta un piezīmi (izņemot produktu / pakalpojumu)
     FCKeditorForProduct=WYSIWYG radīšana / izdevums produktu / pakalpojumu apraksts un atzīmēt
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>\n
    +FCKeditorForProductDetails=WYSIWIG produktu izveides / izlaiduma detalizētu informāciju par visām vienībām (priekšlikumi, pasūtījumi, rēķini utt.). <font class="warning"> Brīdinājums: šīs opcijas izmantošana šajā gadījumā nav nopietni ieteicama, jo, veidojot PDF failus, tas var radīt problēmas ar īpašām rakstzīmēm un lapu formatējumu. </font>
     FCKeditorForMailing= WYSIWYG izveide/ izdevums masveida emailings (Tools-> e-pastu)
     FCKeditorForUserSignature=WYSIWYG izveide/labošana lietotāja paraksta
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Savienojums izdevās, bet datu bāzē neizskatās būt OsCommerce datubāzi (Pamatrādītāji %s nav atrasts galda %s).
    -OSCommerceTestOk=Savienojums ar serveri '%s' par datu bāzē '%s' ar lietotāja '%s' sekmīgi pabeigta.
    -OSCommerceTestKo1=Savienojums ar serveri '%s' izdoties, bet datubāze '%s' nevar sasniegt.
    -OSCommerceTestKo2=Savienojums ar serveri '%s' ar lietotāja '%s' neizdevās.
    +OSCommerceErrorConnectOkButWrongDatabase=Savienojums ir sekmīgs, bet datu bāze, šķiet, nav OSCommerce datubāze (atslēga %s nav atrodama %s tabulā).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Pieslēgšana serverim '%s' izdevās, taču datubāzi '%s' nevarēja sasniegt.
    +OSCommerceTestKo2=Savienojums ar serveri '%s' ar lietotāju '%s' neizdevās.
     ##### Stock #####
     StockSetup=Krājumu moduļa iestatīšana
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=Ja jūs izmantojat Punkta pārdošanas moduli (POS), ko nodrošina pēc noklusējuma vai ārējais modulis, šo POS uzstādīšanu var ignorēt jūsu POS modulis. Lielākā daļa POS moduļu ir izveidoti pēc noklusējuma, lai nekavējoties izveidotu rēķinu un samazinātu krājumu neatkarīgi no iespējām šeit. Tātad, ja jums ir vai nav krājumu samazināšanās, reģistrējoties pārdošanai no jūsu POS, pārbaudiet arī POS moduļa iestatījumus.
     ##### Menu #####
     MenuDeleted=Izvēlne dzēsta
     Menus=Izvēlnes
    @@ -1548,22 +1562,22 @@ DetailRight=Nosacījums, lai parādītu neatļautu pelēks izvēlnes
     DetailLangs=Lang faila nosaukumu etiķetes kodu tulkošanai
     DetailUser=Iekšējie / Ārējie / Visi
     Target=Mērķis
    -DetailTarget=Mērķis saitēm (_blank top atvērts jauns logs)
    +DetailTarget=Mērķauditorijas saites (_blank augšā atver jaunu logu)
     DetailLevel=Līmenis (-1: top menu, 0: header menu >0 izvēlne un apakšizvēlne)
     ModifMenu=Izvēlnes maiņa
     DeleteMenu=Dzēst izvēlnes ierakstu
    -ConfirmDeleteMenu=Are you sure you want to delete menu entry <b>%s</b>?
    +ConfirmDeleteMenu=Vai tiešām vēlaties dzēst ierakstu <b> %s </b>?
     FailedToInitializeMenu=Failed to initialize menu
     ##### Tax #####
     TaxSetup=Taxes, social or fiscal taxes and dividends module setup
     OptionVatMode=PVN jāmaksā
     OptionVATDefault=Standarta bāze
    -OptionVATDebitOption=Accrual basis
    +OptionVATDebitOption=Uzkrājumu princips
     OptionVatDefaultDesc=PVN ir jāmaksā: <br> - Piegādes laikā precēm (mēs izmantojam rēķina datumu) <br> - Par maksājumiem par pakalpojumiem
     OptionVatDebitOptionDesc=PVN ir jāmaksā: <br> - Piegādes laikā precēm (mēs izmantojam rēķina datumu) <br> - Par rēķinu (debets) attiecībā uz pakalpojumiem
     OptionPaymentForProductAndServices=Naudas bāze produktiem un pakalpojumiem
     OptionPaymentForProductAndServicesDesc=PVN ir jāmaksā: <br> - par samaksu par precēm <br> - par maksājumiem par pakalpojumiem
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=PVN piemērošanas laiks pēc noklusējuma saskaņā ar izvēlēto iespēju:
     OnDelivery=Piegādes brīdī
     OnPayment=Par samaksu
     OnInvoice=Uz rēķina
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Iegādes konta. kods
     AgendaSetup=Notikumi un kārtības modulis uzstādīšana
     PasswordTogetVCalExport=Galvenais atļaut eksporta saiti
     PastDelayVCalExport=Neeksportē notikums, kuri vecāki par
    -AGENDA_USE_EVENT_TYPE=Izmantojiet notikumu tipus (tiek pārvaldīta izvēlnē Iestatīšana -> Vārdnīcas -> Darba kārtības notikumu veids).
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Izmantojiet notikumu tipus (tiek pārvaldīti izvēlnē Iestatīšana -> Vārdnīcas -> Darba kārtības notikumu veids).
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Veidojot notikuma veidlapu, automātiski iestatiet šo noklusējuma vērtību
    +AGENDA_DEFAULT_FILTER_TYPE=Šādu pasākumu automātiski iestatīt darba kārtības skatā meklēšanas filtūrā
    +AGENDA_DEFAULT_FILTER_STATUS=Automātiski iestatīt šo statusu notikumu skatīšanai darba filtru meklēšanas filtūrā
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
    -AGENDA_REMINDER_EMAIL=Iespējot notikumu atgādinājumu <b> pa e-pastu </ b> (atgādinājums par iespēju / kavēšanos var definēt katrā notikumā). Piezīme: modulis <strong> %s </ strong> ir jāaktivizē un pareizi iestatīts, lai atgādinājums tiktu nosūtīts pareizā frekvencē.
    -AGENDA_REMINDER_BROWSER=Iespējot notikumu atgādinājumu <b> lietotāju pārlūkā </ b> (kad tiek sasniegts notikuma datums, katrs lietotājs to var noraidīt no pārlūka apstiprinājuma jautājuma)
    +AGENDA_REMINDER_EMAIL=Iespējot notikumu atgādinājumu <b> pa e-pastu </b> (atgādinājums par iespēju / kavēšanos var definēt katrā notikumā). Piezīme: modulis <strong> %s </strong> ir jāaktivizē un pareizi jāiestata, lai atgādinājums tiktu nosūtīts pareizā laikā.
    +AGENDA_REMINDER_BROWSER=Iespējot notikuma atgādinājumu <b>lietotāja pārlūkā</b> (kad ir sasniegts notikuma datums, katrs lietotājs to var noraidīt no pārlūka apstiprinājuma jautājuma)
     AGENDA_REMINDER_BROWSER_SOUND=Iespējot skaņas paziņojumu
     AGENDA_SHOW_LINKED_OBJECT=Parādīt saistīto objektu darba kārtībā
     ##### Clicktodial #####
     ClickToDialSetup=Klikšķiniet lai  Dial moduļa uzstādīšanas
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=Šis modulis ļauj tālruņu numurus noklikšķināt. Klikšķis uz šīs ikonas tiks izsaukts, lai jūsu tālruņa zvanu veiktu tālruņa numurs. To var izmantot, lai zvanītu uz Dolibarr zvanu centra sistēmu, kas, piemēram, var izsaukt tālruņa numuru SIP sistēmā.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Izmantojiet šo metodi, ja jūsu lietotājiem ir programmatūras tālrunis vai programmatūras interfeiss, kas uzstādīts uz tā paša datora kā pārlūks, un tiek izsaukts, kad jūs noklikšķināt uz savas pārlūkprogrammas saites, kas sākas ar "tel:". Ja jums ir nepieciešams pilnīgs servera risinājums (nav nepieciešama lokālā programmatūras instalēšana), jums tas jādara, lai tas būtu "nē" un aizpildītu nākamo lauku.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Tirdzniecības punkts
     CashDeskSetup=Pārdošanas punktu moduļa iestatīšana
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Noklusējuma vispārējā trešā puse, ko izmanto pārdošanai
     CashDeskBankAccountForSell=Noklusējuma konts, lai izmantotu, lai saņemtu naudas maksājumus
     CashDeskBankAccountForCheque= Noklusējuma konts, lai izmantotu, lai saņemtu maksājumus ar čeku
     CashDeskBankAccountForCB= Noklusējuma konts, lai izmantotu, lai saņemtu maksājumus ar kredītkarti
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Atspējot krājumu samazinājumu, kad pārdošana tiek veikta no tirdzniecības vietas (ja "nē", krājumu samazinājums tiek veikts par katru pārdošanu, kas veikta no POS, neatkarīgi no moduļa nolikumā norādītās iespējas).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Krājumu samazinājums no tirdzniecības vietām invalīdiem
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=Veicot pārdošanu no pārdošanas vietām, jūs neesat atspējojis krājumu samazināšanos. Tādēļ ir vajadzīga noliktava.
     ##### Bookmark #####
     BookmarkSetup=Grāmatzīmju moduļa iestatīšana
    -BookmarkDesc=Šis modulis ļauj pārvaldīt grāmatzīmes. Jūs varat arī pievienot īsceļus uz jebkuru Dolibarr lapām vai externale tīmekļa vietnes uz jūsu kreisajā izvēlnē.
    +BookmarkDesc=Šis modulis ļauj pārvaldīt grāmatzīmes. Jūs varat pievienot īsceļus jebkurai Dolibarr lapai vai ārējām tīmekļa vietnēm kreisajā izvēlnē.
     NbOfBoomarkToShow=Maksimālais skaits, grāmatzīmes, lai parādītu kreisajā izvēlnē
     ##### WebServices #####
     WebServicesSetup=Veikalu modulis uzstādīšana
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-kompānija modulis iestatīšana
     ##### Suppliers #####
     SuppliersSetup=Piegādātāja moduļa iestatījumi
    -SuppliersCommandModel=Pilnīga prchase pasūtījuma veidne (logotips ...)
    +SuppliersCommandModel=Pilnīga pirkuma pasūtījuma veidne (logotips ...)
     SuppliersInvoiceModel=Pabeigt pārdevēja rēķina veidni (logotips ...)
     SuppliersInvoiceNumberingModel=Piegādātāju rēķinu numerācijas modeļus
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1652,9 +1666,9 @@ TestGeoIPResult=Tests pārveides IP -> valsts
     ProjectsNumberingModules=Projektu numerācijas modulis
     ProjectsSetup=Projekta moduļa iestatījumi
     ProjectsModelModule=Projekta ziņojumi dokumenta paraugs
    -TasksNumberingModules=Uzdevumi numerācijas modulis
    +TasksNumberingModules=Uzdevumu numerācijas modulis
     TaskModelModule=Uzdevumi ziņojumi dokumenta paraugs
    -UseSearchToSelectProject=Pagaidiet, kamēr nospiediet taustiņu, pirms ievietojat projekta kombinēto sarakstu saturu (tas var palielināt veiktspēju, ja jums ir liels projektu skaits, bet tas ir mazāk ērti).
    +UseSearchToSelectProject=Pagaidiet, līdz tiek nospiests taustiņš pirms satura pievienošanas saraksta Kombinācija sarakstā. <br> Tas var uzlabot veiktspēju, ja jums ir liels projektu skaits, bet tas ir mazāk ērti.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Pārskata periodi
    @@ -1689,7 +1703,7 @@ ListOfNotificationsPerUserOrContact=Paziņojumu saraksts katram lietotājam * va
     ListOfFixedNotifications=List of fixed notifications
     GoOntoUserCardToAddMore=Atveriet lietotāja cilni "Paziņojumi", lai pievienotu vai noņemtu paziņojumus lietotājiem
     GoOntoContactCardToAddMore=Atveriet trešās personas cilni "Paziņojumi", lai pievienotu vai noņemtu paziņojumus par kontaktpersonām / adresēm
    -Threshold=Threshold
    +Threshold=Slieksnis
     BackupDumpWizard=Wizard to build database backup dump file
     SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason:
     SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do.
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Lai instalētu vai izveidotu ārēju moduli no lietojumprogrammas, moduļa faili jāiegādājas direktorijā <strong> %s </ strong>. Lai šo direktoriju apstrādātu Dolibarr, jums ir jāiestata <strong> conf / conf.php </ strong>, lai pievienotu 2 direktīvu līnijas: <br> <strong> $ dolibarr_main_url_root_alt = "/ custom"; </ strong> < br> <strong> $ dolibarr_main_document_root_alt = '%s / custom'; </ strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Atzīmējiet līnijas krāsu, kad tā ir atzīmēta (atstājiet tukšu, lai izceltu)
     TextTitleColor=Lapas nosaukuma teksta krāsa
     LinkColor=Linku krāsa
     PressF5AfterChangingThis=Nospiediet CTRL + F5 uz tastatūras vai dzēsiet pārlūkprogrammas kešatmiņu pēc šīs vērtības mainīšanas, lai tā būtu efektīva
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Ievadiet šeit starp aplikācijām, baitu skaitļu sarakstu, kas attēlo valūtas simbolu. Piemēram: attiecībā uz $ ievadiet [36] - Brazīlijas reālajam R $ [82,36] - par € ievadiet [8364]
     ColorFormat=RGB krāsa ir HEX formātā, piemēram: FF0000
     PositionIntoComboList=Position of line into combo lists
    -SellTaxRate=Sale tax rate
    +SellTaxRate=Pārdošanas nodokļa likme
     RecuperableOnly=Jā par PVN "Neuztverams, bet atgūstams", kas paredzēts dažai Francijas valstij. Uzturiet vērtību "Nē" visos citos gadījumos.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=Veidojot vadību, jūs definēsiet paredzēto projekta / svina apjomu. Saskaņā ar svina statusu šo summu var reizināt ar šo likmi, lai novērtētu globālo summu, ko var radīt visas jūsu iespējas. Vērtība ir procenti (no 0 līdz 100).
     TemplateForElement=This template record is dedicated to which element
    -TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TypeOfTemplate=Veidne
    +TemplateIsVisibleByOwnerOnly=Veidne ir redzama tikai īpašniekam
     VisibleEverywhere=Redzams visur
     VisibleNowhere=Redzams nekur
     FixTZ=Laika zonas labojums
    @@ -1733,24 +1748,24 @@ MailToSendProposal=Klienta piedāvājumi
     MailToSendOrder=Klienta pasūtījumi
     MailToSendInvoice=Klienta rēķini
     MailToSendShipment=Sūtījumi
    -MailToSendIntervention=Interventions
    +MailToSendIntervention=Intervences
     MailToSendSupplierRequestForQuotation=Cenas pieprasījums
     MailToSendSupplierOrder=Pirkuma pasūtījumi
     MailToSendSupplierInvoice=Piegādātāja rēķini
     MailToSendContract=Līgumi
    -MailToThirdparty=Trešās personas
    +MailToThirdparty=Trešās puses
     MailToMember=Dalībnieki
     MailToUser=Lietotāji
     MailToProject=Projektu lapa
    -ByDefaultInList=Show by default on list view
    +ByDefaultInList=Rādīt pēc noklusējuma saraksta skatā
     YouUseLastStableVersion=Jūs izmantojat pēdējo stabilo versiju
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s ir pieejams. Versija %s ir liela versija ar daudzām jaunām funkcijām gan lietotājiem, gan izstrādātājiem. Jūs varat to lejupielādēt no https://www.dolibarr.org portāla lejupielādes apgabala (apakšdirektorijā Stable versijas). Lai iegūtu pilnīgu izmaiņu sarakstu, varat izlasīt <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a>.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s ir pieejams. Versija %s ir uzturēšanas versija, tāpēc tajā ir tikai kļūdu labojumi. Mēs iesakām ikvienam, kurš izmanto vecāku versiju, jaunināt uz šo. Tā kā jebkurā tehniskās apkopes izlaidumā šajā versijā nav nevienas jaunas funkcijas vai datu struktūras izmaiņas. Jūs varat to lejupielādēt no https://www.dolibarr.org portāla lejupielādes apgabala (apakšdirektorijā Stable versijas). Lai iegūtu pilnīgu izmaiņu sarakstu, varat izlasīt <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a>.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s ir pieejams. Versija %s ir uzturēšanas versija, tāpēc tajā ir tikai kļūdu labojumi. Mēs iesakām ikvienam, kurš izmanto vecāku versiju, jaunināt uz šo. Tā kā jebkurā tehniskās apkopes izlaidumā šajā versijā nav jaunu funkciju vai datu struktūras izmaiņu. Jūs varat to lejupielādēt no https://www.dolibarr.org portāla lejupielādes apgabala (apakšdirektorijā Stable versijas). Lai iegūtu pilnīgu izmaiņu sarakstu, varat izlasīt <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a>.
    +MultiPriceRuleDesc=Ja ir ieslēgta opcija "Vairāki cenu līmeņi uz produktu / pakalpojumu", katram produktam varat noteikt atšķirīgas cenas (vienu cenu līmenī). Lai ietaupītu laiku, šeit jūs varat ievadīt kārtulu, lai katram līmenim aprēķinātu cenu saskaņā ar pirmā līmeņa cenu, tāpēc katram produktam būs jāievada tikai pirmā līmeņa cena. Šī lapa ir šeit, lai ietaupītu laiku un varētu būt noderīga tikai tad, ja jūsu cenas katram līmenim ir salīdzinātas ar pirmo līmeni. Jūs varat ignorēt šo lapu vairumā gadījumu.
     ModelModulesProduct=Veidlapas produktu dokumentos
    -ToGenerateCodeDefineAutomaticRuleFirst=Lai varētu automātiski ģenerēt kodus, vispirms ir jāiestata pārvaldnieks, lai automātiski noteiktu svītrkoda numuru.
    +ToGenerateCodeDefineAutomaticRuleFirst=Lai varētu automātiski ģenerēt kodus, vispirms ir jānosaka pārvaldnieks, lai automātiski noteiktu svītrkoda numuru.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=Skatīt ChangeLog failu (tikai angļu valodā)
     AllPublishers=Visi izdevēji
    @@ -1762,42 +1777,78 @@ AddData=Pievienojiet objektus vai vārdnīcu datus
     AddBoxes=Pievienot logrīkus
     AddSheduledJobs=Pievienot plānotos darbus
     AddHooks=Add hooks
    -AddTriggers=Add triggers
    +AddTriggers=Pievienot aktivizētājus
     AddMenus=Pievienot izvēlnes
     AddPermissions=Pievienot atļaujas
    -AddExportProfiles=Add export profiles
    +AddExportProfiles=Pievienot eksportēšanas profilus
     AddImportProfiles=Add import profiles
     AddOtherPagesOrServices=Pievienot citas lapas vai pakalpojumus
     AddModels=Pievienojiet dokumentu vai numerācijas veidnes
     AddSubstitutions=Pievienot atslēgu aizvietojumus
     DetectionNotPossible=Atklāšana nav iespējama
    -UrlToGetKeyToUseAPIs=Url, lai saņemtu token lai izmantotu API (pēc tam, kad ir saņemts tokens, tas tiek saglabāts datu bāzes lietotāju tabulā, un tas jānorāda katrā API zvanā)
    +UrlToGetKeyToUseAPIs=URL, lai saņemtu token lai izmantotu API (pēc tam, kad ir saņemts tokens, tas tiek saglabāts datu bāzes lietotāju tabulā, un tas jānorāda katrā API zvanā)
     ListOfAvailableAPIs=Pieejamo API saraksts
    -activateModuleDependNotSatisfied=Modulis "%s" ir atkarīgs no trūkstošā moduļa "%s", tāpēc modulis "%1$s" var nedarboties. Lūdzu, instalējiet moduli "%2$s" vai deaktivizējiet moduli "%1$s", ja vēlaties būt drošs no pārsteiguma
    -CommandIsNotInsideAllowedCommands=Komanda, kuru mēģināt palaist, nav iekļauta atļauto komandu sarakstā, kas definēts parametrā <strong> $ dolibarr_main_restrict_os_commands </ strong> <strong> conf.php </ strong> failā.
    +activateModuleDependNotSatisfied=Modulis "%s" ir atkarīgs no moduļa "%s", tas trūkst, tāpēc modulis "%1$s" var nedarboties pareizi. Lūdzu, instalējiet moduli "%2$s" vai deaktivizējiet moduli "%1$s", ja vēlaties būt drošs no pārsteiguma
    +CommandIsNotInsideAllowedCommands=Komandu, kuru mēģināt palaist, nav atļauto komandu sarakstā, kas definēts <strong> $ dolibarr_main_restrict_os_commands </ strong> failā <strong> conf.php </ strong>.
     LandingPage=Galvenā lapa
    -SamePriceAlsoForSharedCompanies=Ja izmantojat vairāku kompāniju moduli, izvēloties "Vienotā cena", cena būs vienāda visiem uzņēmumiem, ja produkti tiek koplietoti vidēs
    +SamePriceAlsoForSharedCompanies=Ja jūs izmantojat daudzuzņēmumu moduli, ar izvēli "Vienotā cena", cena būs vienāda visām kompānijām, ja produkti tiek sadalīti starp vidēm
     ModuleEnabledAdminMustCheckRights=Modulis ir aktivizēts. Atļaujas aktivizētajam modulim (-iem) tika piešķirtas tikai administratoru lietotājiem. Nepieciešamības gadījumā Jums vajadzēs piešķirt tiesības citiem lietotājiem vai grupām manuāli.
    -UserHasNoPermissions=Šis lietotājs nav definējis atļauju
    -TypeCdr=Izmantojiet "Nav", ja maksājuma termiņa datums ir rēķina datums plus delta dienās (delta ir lauks "Nb dienas") <br> Lietojiet "mēneša beigās", ja pēc delta, datums ir jāpalielina lai sasniegtu mēneša beigas (+ izvēles "nobīde" dienās) <br> Izmantojiet "Pašreizējais / Nākamais", lai maksājuma termiņš būtu mēneša pirmais N (N tiek saglabāts laukā "Nb of dienas").
    +UserHasNoPermissions=Šis lietotājs nav definējis atļaujas
    +TypeCdr=Izmantojiet "Nav", ja maksājuma termiņa datums ir rēķina datums plus delta dienās (delta ir lauks "%s") <br> Lietojiet "mēneša beigās", ja pēc delta, datums ir jāpalielina, lai sasniegtu mēneša beigas (+ izvēles "%s" dienās) <br> Izmantojiet "Pašreizējais / Nākamais", lai maksājuma termiņš būtu mēneša pirmajā N mēnesī pēc delta (delta ir lauks "%s", N tiek saglabāts laukā "%s")
     BaseCurrency=Uzņēmuma atsauces valūta (iestatiet uzņēmuma iestatījumus, lai mainītu šo)
    -WarningNoteModuleInvoiceForFrenchLaw=Šis modulis %s atbilst Francijas tiesību aktiem (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=Šis modulis %s atbilst krievu likumiem (Loi Finance 2016), jo modulis Non Reversible Logs tiek automātiski aktivizēts.
    -WarningInstallationMayBecomeNotCompliantWithLaw=Jūs mēģināt instalēt moduli %s, kas ir ārējs modulis. Ārējā moduļa aktivizēšana nozīmē, ka jūs uzticaties moduļa izdevējai, un esat pārliecināts, ka šis modulis negatīvi nemaina jūsu lietojumprogrammas darbību un atbilst jūsu valsts tiesību aktiem (%s). Ja modulis nodrošina ne juridisku funkciju, jūs kļūstat atbildīgs par nevalstiskās programmatūras izmantošanu.
    +WarningNoteModuleInvoiceForFrenchLaw=Šis modulis %s atbilst Francijas likumiem (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=Šis modulis %s atbilst Francijas likumiem (Loi Finance 2016), jo automātiski tiek aktivizēts modulis Non Reversible Logs.
    +WarningInstallationMayBecomeNotCompliantWithLaw=Jūs mēģināt instalēt moduli %s, kas ir ārējs modulis. Ārējā moduļa aktivizēšana nozīmē, ka jūs uzticaties šī moduļa izdevējam un vai esat pārliecināts, ka šis modulis nelabvēlīgi neietekmē jūsu lietojumprogrammas darbību un atbilst jūsu valsts tiesību aktiem (%s). Ja modulis ievieš nelegālu funkciju, jūs kļūstat atbildīgs par nelikumīgas programmatūras lietošanu.
     MAIN_PDF_MARGIN_LEFT=Kreisā puse PDF failā
     MAIN_PDF_MARGIN_RIGHT=Labā puse PDF failā
     MAIN_PDF_MARGIN_TOP=Galvene PDF failā
     MAIN_PDF_MARGIN_BOTTOM=Kājene PDF failā
    +NothingToSetup=Šajā modulī nav īpašu iestatījumu.
     SetToYesIfGroupIsComputationOfOtherGroups=Iestatiet to uz "jā", ja šī grupa ir citu grupu aprēķins
    -EnterCalculationRuleIfPreviousFieldIsYes=Ievadiet kalkulācijas kārtulu, ja iepriekšējais laukums ir iestatīts uz Jā (Piemēram, 'CODEGRP1 + CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Ievadiet aprēķina kārtulu, ja iepriekšējais lauks ir iestatīts uz Jā (Piemēram, 'CODEGRP1 + CODEGRP2')
     SeveralLangugeVariatFound=Atrasti vairāki valodu varianti
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Noņemt īpašās rakstzīmes
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filtrs tīrajai vērtībai (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR kontakts
    -GDPRContactDesc=Ja jūs glabājat datus par Eiropas uzņēmumiem / pilsoni, šeit varat saglabāt kontaktpersonu, kas ir atbildīgs par vispārējo datu aizsardzības regulu
    +GDPRContact=Datu aizsardzības inspektors (DPO, datu konfidencialitāte vai GDPR kontakts)
    +GDPRContactDesc=Ja jūs glabājat datus par Eiropas uzņēmumiem / pilsoni, varat saglabāt kontaktpersonu, kas ir atbildīgs par vispārējo datu aizsardzības regulu šeit
    +HelpOnTooltip=Palīdzības teksts tiek parādīts rīka padomā
    +HelpOnTooltipDesc=Šeit ievietojiet tekstu vai tulkošanas taustiņu, lai teksts tiktu rādīts rīka padomē, kad šis lauks parādās formā
    +YouCanDeleteFileOnServerWith=Šo failu varat izdzēst serverī, izmantojot komandrindu:<br>%s
    +ChartLoaded=Konta diagramma ielādēta
    +SocialNetworkSetup=Moduļa Sociālo tīklu iestatīšana
    +EnableFeatureFor=Iespējot funkcijas <strong> %s </strong>
    +VATIsUsedIsOff=Piezīme. Iespēja izmantot pārdošanas nodokli vai PVN izvēlnē %s - %s ir iestatīts uz <strong> Izslēgts</strong>, tādēļ pārdošanas nodoklis vai izmantotā PVN vienmēr būs 0 pārdošanai.
    +SwapSenderAndRecipientOnPDF=Pārsūtīt sūtītāja un adresāta adresi PDF formātā
    +FeatureSupportedOnTextFieldsOnly=Brīdinājums, funkcija tiek atbalstīta tikai teksta laukos
    +EmailCollector=E-pasta savācējs
    +EmailCollectorDescription=Pievienojiet plānoto darbu un iestatīšanas lapu, lai regulāri skenētu e-pasta kastes (izmantojot IMAP protokolu) un reģistrētu jūsu pieteikumā saņemtos e-pastus īstajā vietā un / vai izveidotu automātisku ierakstu (piemēram, potenciālie klienti).
    +NewEmailCollector=Jauns e-pasta savācējs
    +EMailHost=E-pasta IMAP serveris
    +MailboxSourceDirectory=Pastkastes avota katalogs
    +MailboxTargetDirectory=Pastkastes mērķa direktorija
    +EmailcollectorOperations=Darbi, ko veic savācējs
    +CollectNow=Savākt tagad
    +DateLastResult=Pēdējās vākšanas datums
    +LastResult=Pēdējais rezultāts
    +EmailCollectorConfirmCollectTitle=E-pasts apkopo apstiprinājumu
    +EmailCollectorConfirmCollect=Vai jūs vēlaties palaist kolekcijas kolekcionāru tagad?
    +NoNewEmailToProcess=Nav apstrādāts jauns e-pasts (atbilstošie filtri)
    +NothingProcessed=Nekas nav paveikts
    +XEmailsDoneYActionsDone=%s e-pastu kvalificēts, %s e-pasts veiksmīgi apstrādāts (par %s ierakstu / veiktas darbības) kolekcionārs
    +RecordEvent=Ierakstiet e-pasta notikumu
    +CreateLeadAndThirdParty=Izveidojiet svinu (un, ja nepieciešams, trešo pusi)
    +CodeLastResult=Pēdējā vākšanas rezultāta kods
    +NbOfEmailsInInbox=E-pasta numurs avota direktorijā
    +LoadThirdPartyFromName=Ielādēt trešās puses nosaukumu (tikai ielāde)
    +LoadThirdPartyFromNameOrCreate=Ielādējiet trešās puses nosaukumu (izveidojiet, ja tas nav atrasts).
    +WithDolTrackingID=Atrasts Dolibarr izsekošanas ID
    +WithoutDolTrackingID=Dolibarr izsekošanas ID nav atrasts
    +FormatZip=Pasta indekss
     ##### Resource ####
     ResourceSetup=Konfigurācijas moduļa resurss
     UseSearchToSelectResource=Izmantojiet meklēšanas formu, lai izvēlētos resursu (nevis nolaižamo sarakstu).
     DisabledResourceLinkUser=Atspējot funkciju, lai resursus saistītu ar lietotājiem
     DisabledResourceLinkContact=Atspējot funkciju, lai resursu saistītu ar kontaktpersonām
     ConfirmUnactivation=Apstipriniet moduļa atiestatīšanu
    +OnMobileOnly=Tikai mazam ekrānam (viedtālrunim)
    +DisableProspectCustomerType=Atspējojiet "Prospect + Customer" trešās puses veidu (tādēļ trešai personai jābūt Prospect vai Klientam, bet nevar būt abas)
    diff --git a/htdocs/langs/lv_LV/agenda.lang b/htdocs/langs/lv_LV/agenda.lang
    index e40f2206320..2b18ae1ecfc 100644
    --- a/htdocs/langs/lv_LV/agenda.lang
    +++ b/htdocs/langs/lv_LV/agenda.lang
    @@ -31,18 +31,19 @@ ViewWeek=Nedēļas skats
     ViewPerUser=Katra lietotāja skats
     ViewPerType=Viena veida skats
     AutoActions= Automātiskā aizpildīšana
    -AgendaAutoActionDesc= Define here events for which you want Dolibarr to create automatically an event in agenda. If nothing is checked, only manual actions will be included in logged and visible into agenda. Automatic tracking of business actions done on objects (validation, status change) will not be saved.
    -AgendaSetupOtherDesc= Šī lapa sniedz iespējas, lai ļautu eksportēt savu Dolibarr notikumiem uz ārēju kalendāru (Thunderbird, Google Calendar, ...)
    +AgendaAutoActionDesc= Šeit jūs varat definēt notikumus, kurus Dolibarr vēlaties automātiski izveidot programmā. Ja nekas nav atzīmēts, logos tiks iekļautas tikai rokasgrāmatas un parādīsies programmā. Automātiska biznesa darbību veikšana objektos (validācija, statusa maiņa) netiks saglabāta.
    +AgendaSetupOtherDesc= Šajā lapā ir iespējas, kā atļaut eksportēt jūsu Dolibarr notikumus ārējā kalendārā (pērkona negaiss, kalendārs google ...)
     AgendaExtSitesDesc=Šī lapa ļauj atzīt ārējos avotus kalendārus, lai redzētu savus notikumus uz Dolibarr kārtībā.
     ActionsEvents=Pasākumi, par kuriem Dolibarr radīs prasību kārtībā automātiski
    -EventRemindersByEmailNotEnabled=Pasākumu atgādinājumus pa e-pastu netika aktivizēts Agenda moduļa iestatījumos.
    +EventRemindersByEmailNotEnabled=Pasākumu atgādinājumi pa e-pastu netika iespējoti %s moduļa iestatījumos.
     ##### Agenda event labels #####
     NewCompanyToDolibarr=Trešā puse izveidota %s
     ContractValidatedInDolibarr=Līgumi %s apstiprināti
    +CONTRACT_DELETEInDolibarr=Līgums %s svītrots
     PropalClosedSignedInDolibarr=Piedāvājumi %s parakstīti
     PropalClosedRefusedInDolibarr=Piedāvājums %s atteikts
     PropalValidatedInDolibarr=Priekšlikums %s apstiprināts
    -PropalClassifiedBilledInDolibarr=Proposal %s classified billed
    +PropalClassifiedBilledInDolibarr=Priekšlikums %s klasificēts samaksāts
     InvoiceValidatedInDolibarr=Rēķins %s apstiprināts
     InvoiceValidatedInDolibarrFromPos=Invoice %s validated from POS
     InvoiceBackToDraftInDolibarr=Rēķins %s doties atpakaļ uz melnrakstu
    @@ -54,8 +55,8 @@ MemberModifiedInDolibarr=Dalībnieks %s labots
     MemberResiliatedInDolibarr=Dalībnieks %s ir izbeigts
     MemberDeletedInDolibarr=Dalībnieks %s dzēsts
     MemberSubscriptionAddedInDolibarr=Abonements %s dalībniekam %s pievienots
    -MemberSubscriptionModifiedInDolibarr=Abonements %s biedram %s ir modificēts
    -MemberSubscriptionDeletedInDolibarr=Abonements %s biedram %s svītrots
    +MemberSubscriptionModifiedInDolibarr=Abonements %s biedram %s ir labots
    +MemberSubscriptionDeletedInDolibarr=Abonements %s dalībniekam %s dzēsts
     ShipmentValidatedInDolibarr=Sūtījums %s apstiprināts
     ShipmentClassifyClosedInDolibarr=Sūtījums %s, kas klasificēts kā rēķins
     ShipmentUnClassifyCloseddInDolibarr=Sūtījums %s klasificēts atkārtoti atvērts
    @@ -74,7 +75,7 @@ OrderSentByEMail=Klienta pasūtījums %s nosūtīts pa e-pastu
     InvoiceSentByEMail=Klienta rēķins %s nosūtīts pa e-pastu
     SupplierOrderSentByEMail=Piegādātāja pasūtījums %s nosūtīts pa e-pastu
     SupplierInvoiceSentByEMail=Piegādātāja rēķins %s nosūtīts pa e-pastu
    -ShippingSentByEMail=Shipment %s sent by EMail
    +ShippingSentByEMail=Sūtījums %s nosūtīts pa e-pastu
     ShippingValidated= Sūtījums %s apstiprināts
     InterventionSentByEMail=Intervention %s sent by EMail
     ProposalDeleted=Piedāvājums dzēsts
    @@ -83,10 +84,10 @@ InvoiceDeleted=Rēķins dzēsts
     PRODUCT_CREATEInDolibarr=Produkts %s ir izveidots
     PRODUCT_MODIFYInDolibarr=Produkts %s ir labots
     PRODUCT_DELETEInDolibarr=Produkts %s dzēsts
    -EXPENSE_REPORT_CREATEInDolibarr=Izdevēja ziņojums %s izveidots
    +EXPENSE_REPORT_CREATEInDolibarr=Izdevumu pārskats %s izveidots
     EXPENSE_REPORT_VALIDATEInDolibarr=Izdevumu pārskats %s ir apstiprināts
     EXPENSE_REPORT_APPROVEInDolibarr=Izdevumu pārskats %s ir apstiprināts
    -EXPENSE_REPORT_DELETEInDolibarr=Izdevumu pārskats %s svītrots
    +EXPENSE_REPORT_DELETEInDolibarr=Izdevumu pārskats %s dzēsts
     EXPENSE_REPORT_REFUSEDInDolibarr=Izdevumu pārskats %s noraidītie
     PROJECT_CREATEInDolibarr=Projekts %s izveidots
     PROJECT_MODIFYInDolibarr=Projekts %s ir labots
    @@ -97,10 +98,10 @@ DateActionStart=Sākuma datums
     DateActionEnd=Beigu datums
     AgendaUrlOptions1=Jūs varat pievienot arī šādus parametrus, lai filtrētu produkciju:
     AgendaUrlOptions3=<b>logina=%s</b> to restrict output to actions owned by a user <b>%s</b>.
    -AgendaUrlOptionsNotAdmin=<b> logina =! %s </ b>, lai ierobežotu izvadi uz darbībām, kas nav lietotāja īpašumā <b> %s </ b>.
    +AgendaUrlOptionsNotAdmin=<b>logina =! %s</b>, lai ierobežotu izvadi darbībām, kas nav lietotāja īpašumā <b>%s</b>.
     AgendaUrlOptions4=<b>logint=%s</b> to restrict output to actions assigned to user <b>%s</b> (owner and others).
     AgendaUrlOptionsProject=<b> project = __ PROJECT_ID __ </ b>, lai ierobežotu izlaidi darbībām, kas saistītas ar projektu <b> __ PROJECT_ID __ </ b>.
    -AgendaUrlOptionsNotAutoEvent=<b> notactiontype = systemauto </ b>, lai izslēgtu automātisku notikumu.
    +AgendaUrlOptionsNotAutoEvent=<b> notactiontype = systemauto </b>, lai izslēgtu automātiskus notikumus.
     AgendaShowBirthdayEvents=Rādīt kontaktu dzimšanas dienas
     AgendaHideBirthdayEvents=Slēpt kontaktu dzimšanas dienas
     Busy=Aizņemts
    @@ -110,7 +111,7 @@ DefaultWorkingHours=Noklusējuma darba stundas dienā (Piemēram: 9-18)
     # External Sites ical
     ExportCal=Eksportēt kalendāru
     ExtSites=Importēt ārējos kalendārus
    -ExtSitesEnableThisTool=Show external calendars (defined into global setup) into agenda. Does not affect external calendars defined by users.
    +ExtSitesEnableThisTool=Rādiet ārējos kalendārus (definēti vispārējā iestatījumā) programmā. Neietekmē lietotāja definētie ārējie kalendāri.
     ExtSitesNbOfAgenda=Kalendāru skaits
     AgendaExtNb=Kalendāra Nr. %s
     ExtSiteUrlAgenda=URL, lai piekļūtu. ICal failam
    diff --git a/htdocs/langs/lv_LV/banks.lang b/htdocs/langs/lv_LV/banks.lang
    index f9eb621f7c2..f09df469ba7 100644
    --- a/htdocs/langs/lv_LV/banks.lang
    +++ b/htdocs/langs/lv_LV/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bankas nosaukums
     FinancialAccount=Konts
     BankAccount=Bankas konts
     BankAccounts=Banku konti
    -BankAccountsAndGateways=Bankas konti | Vārti
    +BankAccountsAndGateways=Banka|Vārtejas
     ShowAccount=Rādīt kontu
     AccountRef=Finanšu konta ref
     AccountLabel=Finanšu konts nosaukums
    @@ -35,7 +35,7 @@ SwiftValid=BIC / SWIFT derīgs
     SwiftVNotalid=BIC/SWIFT nav derīgs
     IbanValid=Derīgs BAN
     IbanNotValid=BAN nav derīgs
    -StandingOrders=Direct Debit orders
    +StandingOrders=Tiešā debeta pasūtījumi
     StandingOrder=Tiešā debeta rīkojums
     AccountStatement=Konta izraksts
     AccountStatementShort=Paziņojums
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Konta adrese
     BankAccountCountry=Konta valsts
     BankAccountOwner=Konta īpašnieka vārds
     BankAccountOwnerAddress=Konta īpašnieka adrese
    -RIBControlError=Integritātes pārbaude vērtību neizdodas. Tas nozīmē, ka informācija par šo konta numuru, nav pilnīga vai nepareizi (pārbaudiet valsti, numuri un IBAN).
    +RIBControlError=Vērtību integritātes pārbaude neizdodas. Tas nozīmē, ka informācija par šī konta numuru ir nepilnīga vai nepareiza (pārbaudiet valsti, ciparus un IBAN).
     CreateAccount=Izveidot kontu
     NewBankAccount=Jauns konts
     NewFinancialAccount=Jauns finanšu konts
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Var saskaņot
     Conciliate=Samierināt
     Conciliation=Samierināšanās
    +SaveStatementOnly=Saglabāt tikai paziņojumu
     ReconciliationLate=Saskaņošana ir novēlota
     IncludeClosedAccount=Iekļaut slēgtos kontus
     OnlyOpenedAccount=Tikai atvērtie konti
    @@ -91,9 +92,9 @@ LineRecord=Darījums
     AddBankRecord=Pievienot ierakstu
     AddBankRecordLong=Pievienot ierakstu manuāli
     Conciliated=Saskaņots
    -ConciliatedBy=Jāsaskaņo ar
    +ConciliatedBy=Saskaņots ar
     DateConciliating=Izvērtējiet datumu
    -BankLineConciliated=Entry reconciled
    +BankLineConciliated=Ieraksts ir saskaņots
     Reconciled=Saskaņots
     NotReconciled=Nesaskaņot
     CustomerInvoicePayment=Klienta maksājums
    @@ -104,19 +105,19 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bankas pārskaitījums
     BankTransfers=Bankas pārskaitījumi
     MenuBankInternalTransfer=Iekšējā pārsūtīšana
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Pārejot no viena konta uz otru, Dolibarr uzraksta divus ierakstus (debeta avota kontā un kredīta mērķa kontā). Šim darījumam tiks izmantota tāda pati summa (izņemot zīmi), etiķeti un datumu)
     TransferFrom=No
     TransferTo=Kam
     TransferFromToDone=No <b>%s</b> nodošana <b>%s</b> par <b>%s</b> %s ir ierakstīta.
     CheckTransmitter=Raidītājs
    -ValidateCheckReceipt=Validate this check receipt?
    -ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt, no change will be possible once this is done?
    +ValidateCheckReceipt=Vai apstiprināt šo čeku?
    +ConfirmValidateCheckReceipt=Vai tiešām vēlaties apstiprināt šo čeka kvīti, ja vien tas nenotiks, izmaiņas nebūs iespējamas?
     DeleteCheckReceipt=Dzēst šo čeku?
     ConfirmDeleteCheckReceipt=Vai tiešām vēlaties dzēst šo čeka kvīti?
     BankChecks=Bankas čeki
    -BankChecksToReceipt=Checks awaiting deposit
    +BankChecksToReceipt=Pārbaudes, kas gaida noguldījumu
     ShowCheckReceipt=Rādīt pārbaude depozīta saņemšanu
    -NumberOfCheques=Pārbaužu skaits
    +NumberOfCheques=Čeku skaits
     DeleteTransaction=Dzēst ierakstu
     ConfirmDeleteTransaction=Vai tiešām vēlaties dzēst šo ierakstu?
     ThisWillAlsoDeleteBankRecord=Tas arī izdzēš izveidotos bankas darījumus
    @@ -135,8 +136,8 @@ BankTransactionLine=Bankas darījums
     AllAccounts=Visi bankas un naudas konti
     BackToAccount=Atpakaļ uz kontu
     ShowAllAccounts=Parādīt visiem kontiem
    -FutureTransaction=Darījumi ar Futur. Nav veids, kā samierināt.
    -SelectChequeTransactionAndGenerate=Izvēlieties / filtru pārbaudes, lai iekļautu uz pārbaudes depozīta saņemšanas un noklikšķiniet uz &quot;Izveidot&quot;.
    +FutureTransaction=Darījums nākotnē. Nav iespējams samierināties.
    +SelectChequeTransactionAndGenerate=Atlasiet / filtru pārbaudes, lai iekļautu čeku depozīta kvīti, un noklikšķiniet uz "Izveidot".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Galu galā, norādiet kategoriju, kurā klasificēt ierakstus
     ToConciliate=Saskaņot?
    @@ -147,13 +148,13 @@ LabelRIB=BAN Label
     NoBANRecord=No BAN record
     DeleteARib=Delete BAN record
     ConfirmDeleteRib=Are you sure you want to delete this BAN record ?
    -RejectCheck=Check returned
    +RejectCheck=Čeks atgriezts
     ConfirmRejectCheck=Vai tiešām vēlaties atzīmēt šo pārbaudi kā noraidītu?
     RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Dokumentu veidnes banku kontiem
    -DocumentModelSepaMandate=SEPA mandāta veidne. Lietošanai eiropas valstīs tikai EEK.
    +DocumentModelSepaMandate=SEPA mandāta veidne. Noderīga Eiropas valstīm tikai EEK.
     DocumentModelBan=Veidne, lai izdrukātu lapu ar BAN informāciju.
     NewVariousPayment=Jauni dažādi maksājumi
     VariousPayment=Dažādi maksājumi
    @@ -162,4 +163,5 @@ ShowVariousPayment=Parādīt dažādus maksājumus
     AddVariousPayment=Pievienot dažādus maksājumus
     SEPAMandate=SEPA mandāts
     YourSEPAMandate=Jūsu SEPA mandāts
    -FindYourSEPAMandate=Tas ir jūsu SEPA mandāts, lai pilnvarotu mūsu uzņēmumu veikt tiešā debeta pasūtījumu savai bankai. Pateicamies, ka tas ir parakstīts (parakstītā dokumenta skenēšana) vai nosūtīts pa pastu uz adresi
    +FindYourSEPAMandate=Tas ir jūsu SEPA mandāts, lai pilnvarotu mūsu uzņēmumu veikt tiešā debeta pasūtījumu savai bankai. Atgriezt to parakstu (skenēt parakstīto dokumentu) vai nosūtīt pa pastu uz
    +AutoReportLastAccountStatement=Automātiski aizpildiet lauku "Bankas izziņu numurs" ar pēdējo paziņojuma numuru, veicot saskaņošanu
    diff --git a/htdocs/langs/lv_LV/bills.lang b/htdocs/langs/lv_LV/bills.lang
    index e9bbe02852a..c7998ddf58e 100644
    --- a/htdocs/langs/lv_LV/bills.lang
    +++ b/htdocs/langs/lv_LV/bills.lang
    @@ -11,7 +11,7 @@ BillsSuppliersUnpaidForCompany=Neapmaksātie piegādātāja -u rēķini %s
     BillsLate=Kavētie maksājumi
     BillsStatistics=Klientu rēķinu statistika
     BillsStatisticsSuppliers=Piegādātāju rēķinu statistika
    -DisabledBecauseDispatchedInBookkeeping=Disabled because invoice was dispatched into bookkeeping
    +DisabledBecauseDispatchedInBookkeeping=Atspējots, jo rēķins tika nosūtīts uzskaites veikšanai
     DisabledBecauseNotLastInvoice=Disabled because invoice is not erasable. Some invoices were recorded after this one and it will create holes in the counter.
     DisabledBecauseNotErasable=Bloķēts, jo nedrīkst dzēst
     InvoiceStandard=Standarta rēķins
    @@ -25,15 +25,15 @@ InvoiceProFormaAsk=Proforma rēķins
     InvoiceProFormaDesc=<b>Formāta rēķins</b> ir attēls patiesu rēķina, bet nav nekādas grāmatvedības uzskaites vērtības.
     InvoiceReplacement=Nomaiņas rēķins
     InvoiceReplacementAsk=Nomaiņa rēķins par rēķinu
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b> Nomaiņa rēķins </ b> tiek izmantots, lai atceltu un pilnībā nomainītu rēķinu bez jau saņemta maksājuma. <br> <br> Piezīme. Var nomainīt tikai rēķinus bez maksājuma. Ja rēķins, kuru nomaināt, vēl nav aizvērts, tas tiks automātiski slēgts, lai "pamestu".
     InvoiceAvoir=Kredīta piezīme
     InvoiceAvoirAsk=Kredīta piezīme, lai koriģētu rēķinu
    -InvoiceAvoirDesc=<b>Kredīts piezīme</b> ir negatīvs rēķins izmantot, lai atrisinātu to, ka rēķins ir summa, kas atšķiras par summu, patiesībā maksā (jo klients maksā pārāk daudz kļūdas dēļ, vai arī nav samaksāta pilnībā, jo viņš atgriezās dažus produktus, piemēram).
    +InvoiceAvoirDesc=<b> kredītrēķins</b>  ir negatīvs faktūrrēķins, ko izmanto, lai labotu faktu, ka rēķinā ir summa, kas atšķiras no faktiski samaksātās summas (piemēram, klients ir kļūdaini samaksājis pārāk lielu summu vai pilnībā nemaksā, jo viņš atgriezīsies produkti).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Kredīta piezīme par atlikušo neapmaksāto summu
     ReplaceInvoice=Aizstāt rēķinu %s
    -ReplacementInvoice=Nomaiņa rēķins
    +ReplacementInvoice=Nomaiņas rēķins
     ReplacedByInvoice=Aizstāts ar rēķinu %s
     ReplacementByInvoice=Aizstāts ar rēķinu
     CorrectInvoice=Labot rēķinu %s
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=rēķinu valūtā
     PaidBack=Atmaksāts atpakaļ
     DeletePayment=Izdzēst maksājumu
     ConfirmDeletePayment=Vai tiešām vēlaties dzēst šo maksājumu?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Vai jūs vēlaties pārvērst šo %s par absolūtu atlaidi? <br> Šī summa tiks saglabāta starp visām atlaidēm un varētu tikt izmantota kā atlaide pašreizējam vai nākamajam rēķinam šim piegādātājam.
    +ConfirmConvertToReduc=Vai jūs vēlaties pārvērst šo %s par absolūtu atlaidi? <br> Summa tiks saglabāta starp visām atlaidēm, un to varēs izmantot kā atlaidi pašreizējam vai turpmākam rēķinam šim klientam.
    +ConfirmConvertToReducSupplier=Vai jūs vēlaties pārvērst šo %s par absolūtu atlaidi? <br> Summa tiks saglabāta starp visām atlaidēm, un to varēs izmantot kā atlaidi pašreizējam vai turpmākam rēķinam šim piegādātājam.
     SupplierPayments=Piegādātāju maksājumi
     ReceivedPayments=Saņemtie maksājumi
     ReceivedCustomersPayments=Maksājumi, kas saņemti no klientiem
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Piegādātājiem maksātie maksājumi
     ReceivedCustomersPaymentsToValid=Saņemtās klientiem maksājumu apstiprināšanai,
     PaymentsReportsForYear=Maksājumu atskaites par %s
     PaymentsReports=Maksājumu atskaites
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Apmaksas noteikumi
     PaymentAmount=Maksājuma summa
     ValidatePayment=Apstiprināt maksājumu
     PaymentHigherThanReminderToPay=Maksājumu augstāka nekā atgādinājums par samaksu
    -HelpPaymentHigherThanReminderToPay=Uzmanība, maksājuma summu, no vienas vai vairākām rēķinus, ir lielāks nekā pārējās maksāt. <br> Labot savu ierakstu, citādi apstiprināt un domāt par izveidot kredīta piezīmi par pārsnieguma saņem par katru pārmaksāto rēķiniem.
    -HelpPaymentHigherThanReminderToPaySupplier=Uzmanību, vienas vai vairāku rēķinu maksājuma summa ir augstāka nekā pārējā summa, kas jāmaksā. <br> Rediģējiet savu ierakstu, citādi apstipriniet un domājiet par kredīta paziņojuma izveidi par pārsniegto samaksu par katru pārmaksāto rēķinu.
    +HelpPaymentHigherThanReminderToPay=Uzmanību! Viena vai vairāku rēķinu maksājuma summa ir lielāka par nesamaksāto summu. <br> Rediģējiet savu ierakstu, citādi apstipriniet un apsveriet iespēju izveidot kredītzīmi par pārsniegto saņemto summu par katru pārmaksāto rēķinu.
    +HelpPaymentHigherThanReminderToPaySupplier=Uzmanību! Viena vai vairāku rēķinu maksājuma summa ir lielāka par nesamaksāto summu. <br> Rediģējiet savu ierakstu, citādi apstipriniet un apsveriet iespēju izveidot kredītzīmi par pārsniegto samaksu par katru pārmaksāto rēķinu.
     ClassifyPaid=Klasificēt "Apmaksāts"
     ClassifyPaidPartially=Klasificēt 'Apmaksāts daļēji'
     ClassifyCanceled=Klasificēt &quot;Abandoned&quot;
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Slēgts (nav apmaksāts)
     BillStatusClosedPaidPartially=Samaksāts (daļēji)
     BillShortStatusDraft=Melnraksts
     BillShortStatusPaid=Apmaksāts
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Atmaksāts vai konvertēts
    +Refunded=Atmaksāts
     BillShortStatusConverted=Apmaksāts
     BillShortStatusCanceled=Pamesti
     BillShortStatusValidated=Pārbaudīts
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Neatmaksā
     BillShortStatusClosedUnpaid=Slēgts
     BillShortStatusClosedPaidPartially=Samaksāts (daļēji)
     PaymentStatusToValidShort=Jāpārbauda
    -ErrorVATIntraNotConfigured=Intracommunautary PVN numurs vēl nav noteikta
    +ErrorVATIntraNotConfigured=Kopienas iekšējais PVN maksāšanas numurs vēl nav noteikts
     ErrorNoPaiementModeConfigured=Nav noklusējuma maksājumu režīms noteikts. Iet uz rēķinu modulis uzstādīšanas noteikt šo.
     ErrorCreateBankAccount=Izveidojiet bankas kontu, tad iet uz Setup paneli Rēķins moduli, lai noteiktu maksājumu veidiem
     ErrorBillNotFound=Rēķins %s neeksistē
    -ErrorInvoiceAlreadyReplaced=Kļūdas, jūs mēģināt apstiprināt rēķinu, lai aizstātu rēķinu %s. Bet tas viens jau ir aizstāts ar rēķinu %s.
    +ErrorInvoiceAlreadyReplaced=Kļūda, mēģinājāt apstiprināt rēķinu, lai aizstātu rēķinu %s. Bet šis jau ir aizstāts ar rēķinu %s.
     ErrorDiscountAlreadyUsed=Kļūda, atlaide jau tiek pielietota
     ErrorInvoiceAvoirMustBeNegative=Kļūda, pareizs rēķins, jābūt ar negatīvu summu
     ErrorInvoiceOfThisTypeMustBePositive=Kļūda, šim rēķina veidam ir jābūt ar pozitīvu summu
     ErrorCantCancelIfReplacementInvoiceNotValidated=Kļūda, nevar atcelt rēķinu, kas ir aizstāts ar citu rēķina, kas vēl ir projekta stadijā
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Šī daļa jau ir izmantota, tāpēc noņemt atlaides seriju.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Šī daļa jau ir izmantota, tāpēc atlaides sērijas nevar noņemt.
     BillFrom=No
     BillTo=Kam
     ActionsOnBill=Pasākumi attiecībā uz rēķinu
    @@ -163,14 +164,14 @@ LastBills=Pēdējie %s rēķini
     LatestTemplateInvoices=Jaunākie %s veidņu rēķini
     LatestCustomerTemplateInvoices=Jaunākie %s klientu veidņu rēķini
     LatestSupplierTemplateInvoices=Jaunākie %s piegādātāju veidņu rēķini
    -LastCustomersBills=Latest %s customer invoices
    -LastSuppliersBills=Latest %s supplier invoices
    +LastCustomersBills=Jaunākie %s klientu rēķini
    +LastSuppliersBills=Jaunākie %s piegādātāja rēķini
     AllBills=Visi rēķini
     AllCustomerTemplateInvoices=Visi veidņu rēķini
     OtherBills=Citi rēķini
     DraftBills=Rēķinu sagatave
    -CustomersDraftInvoices=Customer draft invoices
    -SuppliersDraftInvoices=Supplier draft invoices
    +CustomersDraftInvoices=Klienta rēķinu sagataves
    +SuppliersDraftInvoices=Piegādātāja rēķinu sagataves
     Unpaid=Nesamaksāts
     ConfirmDeleteBill=Vai tiešām vēlaties dzēst šo rēķinu?
     ConfirmValidateBill=Vai jūs tiešām vēlaties apstiprināt šo rēķinu ar atsauci <b>%s</b>?
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Vai esat pārliecināts, ka vēlaties mainīt rēķina <
     ConfirmCancelBill=Vai esat pārliecināts, ka vēlaties atcelt rēķinu <b>%s</b> ?
     ConfirmCancelBillQuestion=Kāpēc jūs vēlaties, lai klasificētu šo rēķinu 'pamests'?
     ConfirmClassifyPaidPartially=Vai esat pārliecināts, ka vēlaties mainīt rēķina <b>%s,</b> statusu uz samaksāts?
    -ConfirmClassifyPaidPartiallyQuestion=Šis rēķins nav samaksāts pilnībā. Kādi ir iemesli, lai aizvērtu šo rēķinu?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    -ConfirmClassifyPaidPartiallyReasonDiscount=Atlikušais neapmaksātais <b> (%s %s) </ b> ir piešķirta atlaide, jo maksājums tika veikts pirms termiņa.
    +ConfirmClassifyPaidPartiallyQuestion=Šis rēķins nav pilnībā samaksāts. Kāds ir iemesls, kāpēc jūs slēdzat šo rēķinu?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Atlikušais neapmaksātais <b> (%s %s) </b> ir piešķirta atlaide, jo maksājums tika veikts pirms termiņa. Es regulē PVN ar kredītzīmi.
    +ConfirmClassifyPaidPartiallyReasonDiscount=Atlikušais neapmaksātais <b> (%s %s) </b> ir piešķirta atlaide, jo maksājums tika veikts pirms termiņa.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Slikts klients
     ConfirmClassifyPaidPartiallyReasonProductReturned=Produkti daļēji atgriezti
     ConfirmClassifyPaidPartiallyReasonOther=Summa pamesti cita iemesla dēļ
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Šī izvēle ir iespējama, ja jūsu rēķins ir nodrošinātas ar piemērotu komentāru. (Piemērs «tikai nodoklis, kas atbilst cenai, kas ir faktiski samaksāta dod tiesības atskaitīt»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Dažās valstīs, šī izvēle varētu būt iespējama tikai tad, ja rēķins ir pareizo noti.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Šī izvēle ir iespējama, ja jūsu rēķinā tiek piedāvāti piemēroti komentāri. (Piemērs "Tikai nodoklis, kas atbilst faktiski samaksātajai cenai, dod tiesības uz atskaitījumu")
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Dažās valstīs šī izvēle var būt iespējama tikai tad, ja jūsu rēķins satur pareizas piezīmes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Izmantojiet šo izvēli, ja visi citi neapmierina
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Slikts klients</b> ir klients, kas atsakās samaksāt savu parādu.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b> sliktais pircējs</b>  ir klients, kurš atsakās maksāt parādu.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Šo izvēli izmanto, ja samaksa nav bijusi pilnīga, jo daži no produktiem, tika atgriezti
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Izmantot šo izvēli, ja visi citi nav piemēroti, piemēram, šādos apstākļos: <br> - Maksājums nav pabeigta, jo daži produkti tika nosūtīti atpakaļ <br> - Pieprasītā summa ir pārāk svarīgs, jo atlaide bija aizmirsts <br> Visos gadījumos, summa pār-apgalvots, ir jākoriģē uzskaites sistēmā, izveidojot kredītu piezīmi.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Izmantojiet šo izvēli, ja visi citi nav piemēroti, piemēram, šādā situācijā: <br> - maksājums nav pabeigts, jo daži produkti tika nosūtīti atpakaļ <br> - pieprasītā summa ir pārāk svarīga, jo atlaide tika aizmirsta <br> visos gadījumos summa Pārmērīgi liels pieprasījums ir jālabo grāmatvedības sistēmā, izveidojot kredītzīmi.
     ConfirmClassifyAbandonReasonOther=Cits
     ConfirmClassifyAbandonReasonOtherDesc=Šī izvēle tiek izmantota visos citos gadījumos. Piemēram, tāpēc, ka jūs plānojat, lai izveidotu aizstāt rēķinu.
     ConfirmCustomerPayment=Vai jūs apstiprināt šo maksājuma ievadi, <b>%s</b> %s?
    @@ -201,8 +202,9 @@ ConfirmValidatePayment=Vai jūs tiešām vēlaties apstiprināt šo maksājumu?
     ValidateBill=Apstiprināt rēķinu
     UnvalidateBill=Nepārbaudīts rēķins
     NumberOfBills=Rēķinu skaits
    -NumberOfBillsByMonth=Rēķinu skaits pa mēnešiem
    +NumberOfBillsByMonth=Rēķinu skaits mēnesī
     AmountOfBills=Rēķinu summa
    +AmountOfBillsHT=Rēķinu summa (bez nodokļiem)
     AmountOfBillsByMonthHT=Summa rēķini mēnesī (neto pēc nodokļiem)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Rādīt rēķinu
    @@ -220,15 +222,15 @@ RemainderToPay=Neapmaksāts
     RemainderToTake=Atlikusī summa, kas jāsaņem
     RemainderToPayBack=Remaining amount to refund
     Rest=Gaida
    -AmountExpected=Pieprasīto summu
    -ExcessReceived=Excess saņemti
    +AmountExpected=Pieprasītā summa
    +ExcessReceived=Saņemts pārpalikums
     ExcessPaid=Pārmaksātā summa
     EscompteOffered=Piedāvāta atlaide (maksājums pirms termiņa)
     EscompteOfferedShort=Atlaide
     SendBillRef=Submission of invoice %s
     SendReminderBillRef=Submission of invoice %s (reminder)
    -StandingOrders=Direct debit orders
    -StandingOrder=Direct debit order
    +StandingOrders=Tiešā debeta pasūtījumi
    +StandingOrder=Tiešā debeta pasūtījums
     NoDraftBills=Nav rēķinu sagataves
     NoOtherDraftBills=Nekādi citi projekti rēķini
     NoDraftInvoices=Nav projektu rēķini
    @@ -260,9 +262,9 @@ Repeatables=Sagataves
     ChangeIntoRepeatableInvoice=Pārveidot par parauga rēķinu
     CreateRepeatableInvoice=Izveidot rēķina paraugu
     CreateFromRepeatableInvoice=Izveidot no parauga rēķina
    -CustomersInvoicesAndInvoiceLines=Klientu rēķinus un rēķinu s līnijas
    +CustomersInvoicesAndInvoiceLines=Klientu rēķini un rēķina dati
     CustomersInvoicesAndPayments=Klientu rēķini un maksājumi
    -ExportDataset_invoice_1=Klientu rēķinu sarakstu un rēķins ir līnijas
    +ExportDataset_invoice_1=Klientu rēķini un rēķina dati
     ExportDataset_invoice_2=Klientu rēķiniem un maksājumiem
     ProformaBill=Proforma Bils:
     Reduction=Atlaide
    @@ -282,9 +284,9 @@ RelativeDiscount=Relatīva atlaide
     GlobalDiscount=Globālā atlaide
     CreditNote=Kredīta piezīme
     CreditNotes=Kredīta piezīmes
    -CreditNotesOrExcessReceived=Credit notes or excess received
    -Deposit=Down payment
    -Deposits=Down payments
    +CreditNotesOrExcessReceived=Kredītkritumi vai saņemtie pārsniegumi
    +Deposit=Sākuma maksājums
    +Deposits=Sākuma maksājumi
     DiscountFromCreditNote=Atlaide no kredīta piezīmes %s
     DiscountFromDeposit=Down payments from invoice %s
     DiscountFromExcessReceived=Maksājumi, kas pārsniedz rēķinu %s
    @@ -302,12 +304,12 @@ DiscountAlreadyCounted=Atlaides vai kredīti, kas jau ir iztērēti
     CustomerDiscounts=Klientu atlaides
     SupplierDiscounts=Pārdevēja atlaides
     BillAddress=Rēķina adrese
    -HelpEscompte=Šī atlaide ir piešķirta klientam, jo ​​tas maksājumu veica pirms termiņa.
    -HelpAbandonBadCustomer=Šī summa ir pamests (klients teica, ka slikts klients), un tiek uzskatīts par ārkārtēju zaudēt.
    -HelpAbandonOther=Šī summa ir atteikusies, jo tā bija kļūda (nepareizs klients vai rēķins aizstāt ar citiem, piemēram)
    +HelpEscompte=Šī atlaide ir atlaide, kas piešķirta klientam, jo ​​maksājums tika veikts pirms termiņa.
    +HelpAbandonBadCustomer=Šī summa ir atteikta (klients uzskata par sliktu klientu), un tiek uzskatīts par ārkārtas zaudējumiem.
    +HelpAbandonOther=Šī summa ir pārtraukta, jo tā bija kļūda (piemēram, nepareizs klients vai rēķins).
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Maksājuma id
    -PaymentRef=Maksājumu ref.
    +PaymentRef=Maksājuma ref.
     InvoiceId=Rēķina id
     InvoiceRef=Rēķina ref.
     InvoiceDateCreation=Rēķina izveides datums
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Nav izvēlēts rēķins
     CloneInvoice=Klonēt rēķinu
     ConfirmCloneInvoice=Vai tiešām vēlaties klonēt šo rēķinu <b>%s</b>?
     DisabledBecauseReplacedInvoice=Darbība atspējots, jo rēķins ir aizstāts
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
     NbOfPayments=Maksājumu skaits
     SplitDiscount=Sadalīt atlaidi divās
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Ievadiet summu par katru no divām daļām:
    -TotalOfTwoDiscountMustEqualsOriginal=Divām jaunajām atlaidēm jābūt vienādam ar sākotnējo atlaižu summu.
    +ConfirmSplitDiscount=Vai tiešām vēlaties sadalīt šo <b> %s </ b> %s atlaidi 2 mazākām atlaidēm?
    +TypeAmountOfEachNewDiscount=Ievades daudzums katrā no divām daļām:
    +TotalOfTwoDiscountMustEqualsOriginal=Kopā divām jaunām atlaidēm jābūt vienādām ar sākotnējo diskonta summu.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Saistītais rēķins
     RelatedBills=Saistītie rēķini
    -RelatedCustomerInvoices=Related customer invoices
    -RelatedSupplierInvoices=Related supplier invoices
    +RelatedCustomerInvoices=Saistītie klientu rēķini
    +RelatedSupplierInvoices=Saistītie piegādātāju rēķini
     LatestRelatedBill=Jaunākais sasitītais rēķins
    -WarningBillExist=Uzmanību, viens vai vairāki rēķini jau eksistē
    -MergingPDFTool=Merging PDF tool
    +WarningBillExist=Brīdinājums, jau ir viens vai vairāki rēķini
    +MergingPDFTool=Apvienot PDF rīks
     AmountPaymentDistributedOnInvoice=Maksājuma summa ir sadalīta rēķinā
    -PaymentOnDifferentThirdBills=Atļaut maksājumus dažādiem trešo valstu rēķiniem, bet tas pats mātes uzņēmums
    +PaymentOnDifferentThirdBills=Atļaut maksājumus dažādām trešo personu parādzīmēm, bet vienai mātes sabiedrībai
     PaymentNote=Maksājuma piezīmes
     ListOfPreviousSituationInvoices=Iepriekšējo situāciju rēķinu saraksts
     ListOfNextSituationInvoices=Nākamo situāciju rēķinu saraksts
    @@ -344,7 +346,7 @@ ListOfSituationInvoices=Rēķinu par situāciju saraksts
     CurrentSituationTotal=Kopējā pašreizējā situācija
     DisabledBecauseNotEnouthCreditNote=Lai noņemtu situācijas rēķinu no cikla, šajā rēķina kredītzīmju kopsummā jāaptver šis kopējais rēķins
     RemoveSituationFromCycle=Noņemiet šo rēķinu no cikla
    -ConfirmRemoveSituationFromCycle=Noņemiet šo rēķinu %s no cikla?
    +ConfirmRemoveSituationFromCycle=Noņemt šo rēķinu %s no cikla?
     ConfirmOuting=Apstipriniet atpūtu
     FrequencyPer_d=Katras %s dienas
     FrequencyPer_m=Katrus %s mēnešus
    @@ -394,7 +396,7 @@ PaymentConditionShort14DENDMONTH=Mēneša 14 dienas
     PaymentCondition14DENDMONTH=14 dienu laikā pēc mēneša beigām
     FixAmount=Noteikt daudzumu
     VarAmount=Mainīgais apjoms (%% tot.)
    -VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s'
    +VarAmountOneLine=Mainīgā summa (%% kopā) - 1 rinda ar etiķeti '%s'
     # PaymentType
     PaymentTypeVIR=Bankas pārskaitījums
     PaymentTypeShortVIR=Bankas pārskaitījums
    @@ -416,11 +418,11 @@ PaymentTypeFAC=Faktors
     PaymentTypeShortFAC=Faktors
     BankDetails=Bankas rekvizīti
     BankCode=Bankas kods
    -DeskCode=Galda kods
    +DeskCode=Biroja kods
     BankAccountNumber=Konta numurs
    -BankAccountNumberKey=Taustiņš
    -Residence=Direct debit
    -IBANNumber=IBAN numurs
    +BankAccountNumberKey=Pārbaudiet ciparus
    +Residence=Tiešais debets
    +IBANNumber=IBAN pilnīgs konta numurs
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC / SWIFT numurs
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Apmaksa ar pārskaitījumu uz šādu bankas k
     VATIsNotUsedForInvoice=* Nav piemērojams PVN art-293B ar CGI
     LawApplicationPart1=Piemērojot likuma 80,335 no 12/05/80
     LawApplicationPart2=preces paliek īpašumā
    -LawApplicationPart3=pārdevējs kamēr pilnīga Čeka
    +LawApplicationPart3=pārdevējs, kamēr nav pilnībā samaksāts
     LawApplicationPart4=viņu cena.
     LimitedLiabilityCompanyCapital=SARL ar galvaspilsētu
     UseLine=Pielietot
    @@ -454,7 +456,7 @@ UseCredit=Izmantot kredītu
     UseCreditNoteInInvoicePayment=Samazināt summu ko maksā ar šo kredītu
     MenuChequeDeposits=Pārbauda noguldījumus
     MenuCheques=Pārbaudes
    -MenuChequesReceipts=Pārbaudes ieņēmumi
    +MenuChequesReceipts=Čeka kvītis
     NewChequeDeposit=Jauns noguldījums
     ChequesReceipts=Pārbaudes ieņēmumi
     ChequesArea=Pārbaudes noguldījumi zona
    @@ -463,7 +465,7 @@ Cheques=Pārbaudes
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=Šī %s ir pārveidota par %s
    -UsBillingContactAsIncoiveRecipientIfExist=Izmantot klientu norēķinu kontaktadresi, nevis trešo personu adresi, kā adresāta rēķiniem
    +UsBillingContactAsIncoiveRecipientIfExist=Izmantojiet kontaktu / adresi ar tipa "norēķinu kontaktu", nevis trešās puses adresi kā rēķinu saņēmēju
     ShowUnpaidAll=Rādīt visus neapmaksātos rēķinus
     ShowUnpaidLateOnly=Rādīt vēlu neapmaksātiem rēķiniem tikai
     PaymentInvoiceRef=Maksājuma rēķins %s
    @@ -476,19 +478,20 @@ CantRemovePaymentWithOneInvoicePaid=Nevar dzēst maksājumu, jo eksistē kaut vi
     ExpectedToPay=Gaidāmais maksājums
     CantRemoveConciliatedPayment=Nevar noņemt saskaņoto maksājumu
     PayedByThisPayment=Samaksāts ar šo maksājumu
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Klasificējiet "Apmaksā" visus standartus, iemaksājamos maksājumus vai nomainītos rēķinus, kas pilnībā samaksāti.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
     ClosePaidContributionsAutomatically=Klasificējiet "Apmaksā" visas sociālās vai fiskālās iemaksas, kas pilnībā samaksātas.
    -AllCompletelyPayedInvoiceWillBeClosed=Visi rēķini, kas ir apmaksāti pilnībā automātiski tiks aizvērti ar statusu "Samaksāts".
    +AllCompletelyPayedInvoiceWillBeClosed=Viss rēķins bez atlikuma maksājuma tiks automātiski slēgts ar statusu "Apmaksāts".
     ToMakePayment=Maksāt
     ToMakePaymentBack=Atmaksāt
     ListOfYourUnpaidInvoices=Saraksts ar neapmaksātiem rēķiniem
     NoteListOfYourUnpaidInvoices=Piezīme: Šis saraksts satur tikai rēķinus par trešo pušu Jums ir saistīti ar kā pārdošanas pārstāvis.
     RevenueStamp=Ieņēmumi zīmogs
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third par
    -YouMustCreateInvoiceFromSupplierThird=Šī opcija ir pieejama tikai, veidojot rēķinu no trešās puses cilnes "piegādātājs"
    +YouMustCreateInvoiceFromThird=Šī opcija ir pieejama tikai tad, ja izveidojat rēķinus no trešās puses cilnes "klients"
    +YouMustCreateInvoiceFromSupplierThird=Šī opcija ir pieejama tikai, veidojot rēķinus no trešās puses cilnes "piegādātājs"
     YouMustCreateStandardInvoiceFirstDesc=Vispirms vispirms jāizveido standarta rēķins un jāpārveido tas par "veidni", lai izveidotu jaunu veidnes rēķinu
     PDFCrabeDescription=Rēķina PDF  paraugs. Pilnākais rēķina paraugs (vēlamais paraugs)
    +PDFSpongeDescription=Rēķina PDF veidne Sponge. Pilnīga rēķina veidne
     PDFCrevetteDescription=Rēķina PDF veidne Crevette. Pabeigta rēķina veidne situāciju rēķiniem
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Atgriež numuru ar formātu %syymm-nnnn par standarta rēķiniem, %syymm-nnnn par nomainītajiem rēķiniem, %syymm-nnnn par norēķinu rēķiniem un %syymm-nnnn par kredītzīmēm, kur yy ir gads, mm ir mēnesis, un nnnn ir secība bez pārtraukuma un nē atgriezties pie 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Rēķina līnijas progress nedrīkst būt lielāks vai
     updatePriceNextInvoiceErrorUpdateline=Kļūda: atjauniniet cenu rēķina līnijā: %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=Ja jums automātiski jārada šādi rēķini, jautājiet administratoram, lai iespējotu un iestatītu moduli <strong> %s </ strong>. Ievērojiet, ka abas metodes (manuālas un automātiskas) var izmantot kopā ar dublēšanas risku.
     DeleteRepeatableInvoice=Dzēst veidnes rēķinu
     ConfirmDeleteRepeatableInvoice=Vai tiešām vēlaties izdzēst veidnes rēķinu?
     CreateOneBillByThird=Izveidojiet vienu rēķinu par trešo pusi (citādi, vienu rēķinu par pasūtījumu)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Iestatīt sākuma datumu
     AutoFillDateTo=Iestatīt pakalpojuma līnijas beigu datumu ar nākamo rēķina datumu
     AutoFillDateToShort=Iestatīt beigu datumu
     MaxNumberOfGenerationReached=Maksimālais gen. sasniedza
    +BILL_DELETEInDolibarr=Rēķins dzēsts
    diff --git a/htdocs/langs/lv_LV/boxes.lang b/htdocs/langs/lv_LV/boxes.lang
    index 3edd2658315..dad8e61d81a 100644
    --- a/htdocs/langs/lv_LV/boxes.lang
    +++ b/htdocs/langs/lv_LV/boxes.lang
    @@ -8,7 +8,7 @@ BoxLastSupplierBills=Jaunākie piegādātāja rēķini
     BoxLastCustomerBills=Pēdējie klientu rēķini
     BoxOldestUnpaidCustomerBills=Vecākie neapmaksātie klientu rēķini
     BoxOldestUnpaidSupplierBills=Vecākie neapmaksāti piegādātāja rēķini
    -BoxLastProposals=Latest commercial proposals
    +BoxLastProposals=Jaunākie komerciālie piedāvājumi
     BoxLastProspects=Jaunākās labotās perspektīvas
     BoxLastCustomers=Jaunākie labotie klienti
     BoxLastSuppliers=Jaunākie modificētie piegādātāji
    @@ -20,22 +20,22 @@ BoxLastMembers=Jaunākie dalībnieki
     BoxFicheInter=Jaunākās intervences
     BoxCurrentAccounts=Atvērto kontu atlikums
     BoxTitleLastRssInfos=Jaunākās %s ziņas no %s
    -BoxTitleLastProducts=Jaunākie %s labotie produkti / pakalpojumi
    -BoxTitleProductsAlertStock=Produktu un krājumu brīdinājumi
    +BoxTitleLastProducts=Produkti / Pakalpojumi: jaunākais %s modificēts
    +BoxTitleProductsAlertStock=Produkti: akciju brīdinājums
     BoxTitleLastSuppliers=Jaunākie %s reģistrēti piegādātāji
    -BoxTitleLastModifiedSuppliers=Jaunākie %s labotie piegādātāji
    +BoxTitleLastModifiedSuppliers=Jaunākie %s labotie pārdevēji
     BoxTitleLastModifiedCustomers=Jaunākie %s labotie klienti
     BoxTitleLastCustomersOrProspects=Latest %s customers or prospects
    -BoxTitleLastCustomerBills=Jaunākie %s klientu rēķini
    -BoxTitleLastSupplierBills=Jaunākie %s piegādātāja rēķini
    +BoxTitleLastCustomerBills=Jaunākie %s labotie klientu rēķini
    +BoxTitleLastSupplierBills=Jaunākie %s pārveidotie pārdevēji rēķini
     BoxTitleLastModifiedProspects=Jaunākās %s labotās izredzes
    -BoxTitleLastModifiedMembers=Jaunākie %s dalībnieki
    +BoxTitleLastModifiedMembers=Jaunākie %s labotie dalībnieki
     BoxTitleLastFicheInter=Jaunākās %s izmaiņas iejaukšanās
    -BoxTitleOldestUnpaidCustomerBills=Vecākie %s neapmaksātie klientu rēķini
    -BoxTitleOldestUnpaidSupplierBills=Vecākie %s neapmaksātie piegādātāju rēķini
    -BoxTitleCurrentAccounts=Atvērto kontu atlikumi
    -BoxTitleLastModifiedContacts=Jaunākie %s labotie kontakti / adreses
    -BoxMyLastBookmarks=Manas jaunākās %s grāmatzīmes
    +BoxTitleOldestUnpaidCustomerBills=Klientu rēķini: vecākie %s neapmaksāti
    +BoxTitleOldestUnpaidSupplierBills=Piegādes rēķini: vecākie %s neapmaksāti
    +BoxTitleCurrentAccounts=Atvērtie konti: atlikumi
    +BoxTitleLastModifiedContacts=Kontakti / adreses: jaunākais %s modificēts
    +BoxMyLastBookmarks=Grāmatzīmes: jaunākās %s modificētas
     BoxOldestExpiredServices=Vecākais aktīvais beidzies pakalpojums
     BoxLastExpiredServices=Jaunākie %s vecākie kontakti ar aktīviem derīguma termiņa beigām
     BoxTitleLastActionsToDo=Jaunākās %s darbības, ko darīt
    @@ -45,7 +45,7 @@ BoxTitleLastModifiedExpenses=Jaunākie %s modificētie izdevumu pārskati
     BoxGlobalActivity=Global darbība (pavadzīmes, priekšlikumi, rīkojumi)
     BoxGoodCustomers=Labi klienti
     BoxTitleGoodCustomers=%s Labi klienti
    -FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successfull refresh date: %s
    +FailedToRefreshDataInfoNotUpToDate=Neizdevās atsvaidzināt RSS plūsmu. Pēdējoreiz veiksmīgi atsvaidzināšanas datums: %s
     LastRefreshDate=Jaunākais atsvaidzināšanas datums
     NoRecordedBookmarks=Nav definētas grāmatzīmes.
     ClickToAdd=Klikšķiniet šeit, lai pievienotu.
    @@ -70,12 +70,12 @@ BoxSuppliersInvoicesPerMonth=Piegādātāja rēķini mēnesī
     BoxCustomersOrdersPerMonth=Klientu pasūtījumi mēnesī
     BoxSuppliersOrdersPerMonth=Piegādātāju pasūtījumi mēnesī
     BoxProposalsPerMonth=Priekšlikumi pa mēnešiem
    -NoTooLowStockProducts=Nav produktu ar zemu krājumu brīdinājumu
    -BoxProductDistribution=Produkti / Pakalpojumi izplatīšana
    -BoxProductDistributionFor=Izplatīšana %s par %s
    -BoxTitleLastModifiedSupplierBills=Jaunākie %s labotie piegādātāja rēķini
    -BoxTitleLatestModifiedSupplierOrders=Jaunākie %s labotie piegādātāja pasūtījumi
    -BoxTitleLastModifiedCustomerBills=Jaunākie %s modificētie klientu rēķini
    +NoTooLowStockProducts=Neviens produkts nav zemākais krājuma ierobežojums
    +BoxProductDistribution=Produktu/pakalpojumu izplatīšana
    +BoxProductDistributionFor=Izplatīšana %s ar %s
    +BoxTitleLastModifiedSupplierBills=Jaunākie %s pārveidotie pārdevēji rēķini
    +BoxTitleLatestModifiedSupplierOrders=Pēdējie %s modificēti pirkuma pasūtījumi
    +BoxTitleLastModifiedCustomerBills=Jaunākie %s labotie klientu rēķini
     BoxTitleLastModifiedCustomerOrders=Jaunākie %s labotie klientu pasūtījumi
     BoxTitleLastModifiedPropals=Pēdējie %s labotie priekšlikumi
     ForCustomersInvoices=Klientu rēķini
    diff --git a/htdocs/langs/lv_LV/cashdesk.lang b/htdocs/langs/lv_LV/cashdesk.lang
    index fe486073f3d..77aa33d00ba 100644
    --- a/htdocs/langs/lv_LV/cashdesk.lang
    +++ b/htdocs/langs/lv_LV/cashdesk.lang
    @@ -22,13 +22,23 @@ NoArticle=Nav preču
     Identification=Identifikācija
     Article=Raksts
     Difference=Atšķirība
    -TotalTicket=Kopējā biļete
    +TotalTicket=Pieteikumi pavisam
     NoVAT=Nav PVN šo pārdošanu
    -Change=Excess saņemti
    -BankToPay=Account for payment
    +Change=Saņemts pārpalikums
    +BankToPay=Konts maksājumam
     ShowCompany=Rādīt uzņēmumu
     ShowStock=Rādīt noliktavu
     DeleteArticle=Klikšķiniet, lai izņemtu šo rakstu
     FilterRefOrLabelOrBC=Meklēšana (Ref/Nosaukums)
    -UserNeedPermissionToEditStockToUsePos=Jūs vēlaties samazināt krājumus rēķinu izveides brīdī. Lietotājs, kas izmanto POS nepieciešama atļauja rediģēt krājumus.
    -DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +UserNeedPermissionToEditStockToUsePos=Jūs lūdzat samazināt krājumus rēķina izveidē, tāpēc lietotājam, kurš izmanto POS, ir jābūt atļaujai rediģēt krājumus.
    +DolibarrReceiptPrinter=Dolibarr čeku printeris
    +PointOfSale=Tirdzniecības punkts
    +PointOfSaleShort=POS
    +CloseBill=Aizvērt rēķinu
    +Floors=Stāvi
    +Floor=Stāvs
    +AddTable=Pievienot tabulu
    +Place=Vieta
    +TakeposConnectorNecesary=Ir nepieciešams "TakePOS Connector"
    +OrderPrinters=Pasūtīt printerus
    +SearchProduct=Meklēt produktu
    diff --git a/htdocs/langs/lv_LV/categories.lang b/htdocs/langs/lv_LV/categories.lang
    index 914b413fb8f..78bb10fd7da 100644
    --- a/htdocs/langs/lv_LV/categories.lang
    +++ b/htdocs/langs/lv_LV/categories.lang
    @@ -13,10 +13,11 @@ ProductsCategoriesArea=Preču/Pakalpojumu etiķešu /sadaļa
     SuppliersCategoriesArea=Suppliers tags/categories area
     CustomersCategoriesArea=Customers tags/categories area
     MembersCategoriesArea=Members tags/categories area
    -ContactsCategoriesArea=Contacts tags/categories area
    -AccountsCategoriesArea=Accounts tags/categories area
    -ProjectsCategoriesArea=Projects tags/categories area
    -SubCats=Sub-categories
    +ContactsCategoriesArea=Kontaktu tagi / sadaļu apgabals
    +AccountsCategoriesArea=Kontu atzīmes / kategoriju apgabals
    +ProjectsCategoriesArea=Projektu tagi / kategoriju apgabals
    +UsersCategoriesArea=Lietotāju tagu / kategoriju apgabals
    +SubCats=Apakšsadaļas
     CatList=List of tags/categories
     NewCategory=Jauna etiķete/sadaļa
     ModifCat=Labot etiķeti/sadaļu
    @@ -26,7 +27,7 @@ CreateThisCat=Izveidot šo etiķeti/sadaļu
     NoSubCat=Nav apakšsadaļas.
     SubCatOf=Apakšsadaļa
     FoundCats=Atrastas etiķetes/sadaļas
    -ImpossibleAddCat=Impossible to add the tag/category %s
    +ImpossibleAddCat=Nevar pievienot tagu / sadaļu %s
     WasAddedSuccessfully=<b>%s</b> tika veiksmīgi pievienots.
     ObjectAlreadyLinkedToCategory=Element is already linked to this tag/category.
     ProductIsInCategories=Product/service is linked to following tags/categories
    @@ -38,9 +39,9 @@ ProductHasNoCategory=Šī prece/pakalpijums nav nevienā sadaļā
     CompanyHasNoCategory=This third party is not in any tags/categories
     MemberHasNoCategory=This member is not in any tags/categories
     ContactHasNoCategory=This contact is not in any tags/categories
    -ProjectHasNoCategory=This project is not in any tags/categories
    +ProjectHasNoCategory=Šis projekts nav nevienā tagā / kategorijā
     ClassifyInCategory=Add to tag/category
    -NotCategorized=Without tag/category
    +NotCategorized=Bez taga / sadaļas
     CategoryExistsAtSameLevel=Šī sadaļa jau pastāv ar šo ref
     ContentsVisibleByAllShort=Saturs redzams visiem
     ContentsNotVisibleByAllShort=Saturu visi neredz
    @@ -49,17 +50,18 @@ ConfirmDeleteCategory=Are you sure you want to delete this tag/category?
     NoCategoriesDefined=No tag/category defined
     SuppliersCategoryShort=Suppliers tag/category
     CustomersCategoryShort=Customers tag/category
    -ProductsCategoryShort=Products tag/category
    +ProductsCategoryShort=Produktu tag / sadaļa
     MembersCategoryShort=Members tag/category
     SuppliersCategoriesShort=Suppliers tags/categories
     CustomersCategoriesShort=Customers tags/categories
    -ProspectsCategoriesShort=Prospects tags/categories
    -CustomersProspectsCategoriesShort=Custo / prosp. sadaļas
    -ProductsCategoriesShort=Products tags/categories
    -MembersCategoriesShort=Members tags/categories
    +ProspectsCategoriesShort=Izredzes tagi / kategorijas
    +CustomersProspectsCategoriesShort=Cust /.Prosp. tagi / kategorijas
    +ProductsCategoriesShort=Produktu tagi / sadaļas
    +MembersCategoriesShort=Lietotāju tagi / sadaļas
     ContactCategoriesShort=Contacts tags/categories
    -AccountsCategoriesShort=Accounts tags/categories
    -ProjectsCategoriesShort=Projects tags/categories
    +AccountsCategoriesShort=Kontu atzīmes / sadaļas
    +ProjectsCategoriesShort=Projektu tagi / sadaļas
    +UsersCategoriesShort=Lietotāju atzīmes / kategorijas
     ThisCategoryHasNoProduct=Šī sadaļā nav produktu.
     ThisCategoryHasNoSupplier=Šajā sadaļā nav neviena piegādātāja.
     ThisCategoryHasNoCustomer=Šī sadaļa nesatur klientu.
    @@ -73,10 +75,10 @@ CatCusList=List of customer/prospect tags/categories
     CatProdList=List of products tags/categories
     CatMemberList=List of members tags/categories
     CatContactList=List of contact tags/categories
    -CatSupLinks=Links between suppliers and tags/categories
    +CatSupLinks=Saites starp piegādātājiem un tagiem / sadaļām
     CatCusLinks=Links between customers/prospects and tags/categories
     CatProdLinks=Links between products/services and tags/categories
    -CatProJectLinks=Links between projects and tags/categories
    +CatProJectLinks=Saiknes starp projektiem un tagiem / kategorijām
     DeleteFromCat=Remove from tags/category
     ExtraFieldsCategories=Complementary attributes
     CategoriesSetup=Tags/categories setup
    @@ -85,4 +87,4 @@ CategorieRecursivHelp=If activated, product will also linked to parent category
     AddProductServiceIntoCategory=Add the following product/service
     ShowCategory=Show tag/category
     ByDefaultInList=By default in list
    -ChooseCategory=Choose category
    +ChooseCategory=Izvēlies sadaļu
    diff --git a/htdocs/langs/lv_LV/commercial.lang b/htdocs/langs/lv_LV/commercial.lang
    index b51572cb047..46b2def6972 100644
    --- a/htdocs/langs/lv_LV/commercial.lang
    +++ b/htdocs/langs/lv_LV/commercial.lang
    @@ -29,7 +29,7 @@ ShowCustomer=Rādīt klientu
     ShowProspect=Parādīt perspektīvu
     ListOfProspects=Perspektīvu saraksts
     ListOfCustomers=Klientu saraksts
    -LastDoneTasks=Latest %s completed actions
    +LastDoneTasks=Jaunākās %s pabeigtās darbības
     LastActionsToDo=Vecākās %s nepabeigtās darbības
     DoneAndToDoActions=Pabeigts un Lai to izdarītu notikumus
     DoneActions=Īstenotie pasākumi
    @@ -40,7 +40,7 @@ StatusNotApplicable=Nav piemērojams
     StatusActionToDo=Jāizdara
     StatusActionDone=Pabeigts
     StatusActionInProcess=Procesā
    -TasksHistoryForThisContact=Pasākumi šo kontaktu
    +TasksHistoryForThisContact=Notikumi šim kontaktam
     LastProspectDoNotContact=Nesazināties
     LastProspectNeverContacted=Nekad neesam sazinājušies
     LastProspectToContact=Jāsazinās
    @@ -52,6 +52,7 @@ ActionAC_TEL=Tālruņa zvans
     ActionAC_FAX=Nosūtīt pa faksu
     ActionAC_PROP=Nosūtīt priekšlikumu pa pastu
     ActionAC_EMAIL=Sūtīt pa e-pastu
    +ActionAC_EMAIL_IN=E-pasta saņemšana
     ActionAC_RDV=Sanāksmes
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Nosūti klienta rēķinu pa pastu
    @@ -72,8 +73,8 @@ StatusProsp=Prospekta statuss
     DraftPropals=Izstrādā komerciālos priekšlikumus
     NoLimit=Nav ierobežojuma
     ToOfferALinkForOnlineSignature=Saite uz tiešsaistes parakstu
    -WelcomeOnOnlineSignaturePage=Laipni lūdzam lapā, lai pieņemtu %s komerciālos piedāvājumus
    +WelcomeOnOnlineSignaturePage=Laipni lūdzam lapā, lai pieņemtu komerciālos piedāvājumus no %s
     ThisScreenAllowsYouToSignDocFrom=Šis ekrāns ļauj pieņemt un parakstīt vai noraidīt citātu / komerciālu piedāvājumu
    -ThisIsInformationOnDocumentToSign=Šī ir informācija par dokumentu, kas pieņemams vai noraidīts
    -SignatureProposalRef=Citāts / komerciālā piedāvājuma paraksts %s
    +ThisIsInformationOnDocumentToSign=Šī ir informācija par dokumentu, kas pieņemams vai noraidāms
    +SignatureProposalRef=Cenas / komerciālā piedāvājuma parakstīšana %s
     FeatureOnlineSignDisabled=Pirms funkcija tika aktivizēta, funkcija tiešsaistes parakstīšanai ir atspējota vai dokuments ir izveidots
    diff --git a/htdocs/langs/lv_LV/companies.lang b/htdocs/langs/lv_LV/companies.lang
    index 0f5b3264b9e..f3876cf001e 100644
    --- a/htdocs/langs/lv_LV/companies.lang
    +++ b/htdocs/langs/lv_LV/companies.lang
    @@ -7,14 +7,14 @@ DeleteContact=Izdzēst kontaktu / adresi
     ConfirmDeleteContact=Vai tiešām vēlaties dzēst šo kontaktu un visu informāciju par šo kontaktu?
     MenuNewThirdParty=Jauna trešā persona
     MenuNewCustomer=Jauns klients
    -MenuNewProspect=Jauna perspektīva
    -MenuNewSupplier=New vendor
    +MenuNewProspect=Jauns prospekts
    +MenuNewSupplier=Jauns pārdevējs
     MenuNewPrivateIndividual=Jauna privātpersona
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    -CreateDolibarrThirdPartySupplier=Create a third party (vendor)
    +NewThirdParty=Jauna trešā persona (izredzes, klients, pārdevējs)
    +CreateDolibarrThirdPartySupplier=Izveidot trešo pusi (pārdevējs)
     CreateThirdPartyOnly=Izveidot trešo personu
    -CreateThirdPartyAndContact=Create a third party + a child contact
    +CreateThirdPartyAndContact=Izveidojiet trešo personu + bērnu kontaktu
     ProspectionArea=Apzināšanas lauks
     IdThirdParty=Trešās personas Id
     IdCompany=Uzņēmuma Id
    @@ -25,26 +25,26 @@ ThirdPartyContact=Trešās puses kontakts / adrese
     Company=Uzņēmums
     CompanyName=Uzņēmuma nosaukums
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias ​​vārds
     Companies=Uzņēmumi
    -CountryIsInEEC=Valsts ir Eiropas Ekonomikas kopienas dalībvalsts
    +CountryIsInEEC=Valsts atrodas Eiropas Ekonomikas kopienā
     ThirdPartyName=Trešās puses nosaukums
     ThirdPartyEmail=Trešās puses e-pasts
     ThirdParty=Trešā puse
    -ThirdParties=Trešās personas
    +ThirdParties=Trešās puses
     ThirdPartyProspects=Perspektīvas
     ThirdPartyProspectsStats=Perspektīvas
     ThirdPartyCustomers=Klienti
     ThirdPartyCustomersStats=Klienti
     ThirdPartyCustomersWithIdProf12=Klienti ar %s vai %s
    -ThirdPartySuppliers=Vendors
    -ThirdPartyType=Trešās puses tips
    +ThirdPartySuppliers=Pārdevēji
    +ThirdPartyType=Uzņēmuma veids
     Individual=Privātpersona
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Izveidos Trešo personu un saistītu Kontaktpersonu / Adrese ar tādu pašu informāciju kā Trešā Puse. Lielākajā daļā gadījumu, pat ja jūsu trešā persona ir fiziska persona, pietiek ar tikai trešās puses izveidi.
     ParentCompany=Mātes uzņēmums
     Subsidiaries=Filiāles
    -ReportByMonth=Report by month
    -ReportByCustomers=Report by customer
    +ReportByMonth=Atskaite par mēnesi
    +ReportByCustomers=Klienta ziņojums
     ReportByQuarter=Kursa/ reitinga ziņojums
     CivilityCode=Pieklājība kods
     RegisteredOffice=Juridiskā adrese
    @@ -52,12 +52,12 @@ Lastname=Uzvārds
     Firstname=Vārds
     PostOrFunction=Ieņemamais amats
     UserTitle=Virsraksts
    -NatureOfThirdParty=Nature of Third party
    +NatureOfThirdParty=Trešo personu būtība
     Address=Adrese
     State=Valsts / province
    -StateShort=State
    +StateShort=Valsts
     Region=Rajons
    -Region-State=Region - State
    +Region-State=Reģions - valsts
     Country=Valsts
     CountryCode=Valsts kods
     CountryId=Valsts id
    @@ -75,17 +75,17 @@ Zip=Pasta indekss
     Town=Pilsēta
     Web=Mājaslapa
     Poste= Pozīcija
    -DefaultLang=Valoda pēc noklusējuma
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    -VATIsNotUsed=Sales tax is not used
    +DefaultLang=Valodas noklusējums
    +VATIsUsed=Izmantotais pārdošanas nodoklis
    +VATIsUsedWhenSelling=Tas nosaka, vai šī trešā persona iekļauj pārdošanas nodokli vai ne, kad rēķins tiek nosūtīts saviem klientiem
    +VATIsNotUsed=Pārdošanas nodoklis netiek izmantots
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
    -PaymentBankAccount=Payment bank account
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Trešā persona, ne klients, ne pārdevējs, nav pieejami atsauces objekti
    +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Trešās puses, ne klients, ne piegādātājs, atlaides nav pieejamas
    +PaymentBankAccount=Maksājumu bankas konts
     OverAllProposals=Priekšlikumi
     OverAllOrders=Pasūtījumi
    -OverAllInvoices=Pavadzīmes
    +OverAllInvoices=Rēķini
     OverAllSupplierProposals=Cenas pieprasījumi
     ##### Local Taxes #####
     LocalTax1IsUsed=Pielietot otru nodokli
    @@ -99,9 +99,9 @@ LocalTax2ES=INFP
     TypeLocaltax1ES=RE Type
     TypeLocaltax2ES=IRPF Type
     WrongCustomerCode=Klienta kods nederīgs
    -WrongSupplierCode=Vendor code invalid
    +WrongSupplierCode=Pārdevēja kods nav derīgs
     CustomerCodeModel=Klienta koda modelis
    -SupplierCodeModel=Vendor code model
    +SupplierCodeModel=Pārdevēja koda modelis
     Gencod=Svītrkods
     ##### Professional ID #####
     ProfId1Short=Prof. id 1
    @@ -242,7 +242,7 @@ ProfId3TN=Prof Id 3 (Douane kods)
     ProfId4TN=Prof Id 4 (BAN)
     ProfId5TN=-
     ProfId6TN=-
    -ProfId1US=Prof Id (FEIN)
    +ProfId1US=Prof. Id (FEIN)
     ProfId2US=-
     ProfId3US=-
     ProfId4US=-
    @@ -258,36 +258,36 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    -VATIntraShort=Tax ID
    +VATIntra=Pārdošanas nodoklis / PVN ID
    +VATIntraShort=Nodokļu ID
     VATIntraSyntaxIsValid=Sintakse ir pareiza
    -VATReturn=VAT return
    -ProspectCustomer=Prospect / Klients
    +VATReturn=PVN atgriezšana
    +ProspectCustomer=Perspektīva/Klients
     Prospect=Perspektīva
     CustomerCard=Klienta kartiņa
     Customer=Klients
     CustomerRelativeDiscount=Relatīvā klienta atlaide
    -SupplierRelativeDiscount=Relative vendor discount
    +SupplierRelativeDiscount=Relatīvā pārdevēju atlaide
     CustomerRelativeDiscountShort=Relatīvā atlaide
     CustomerAbsoluteDiscountShort=Absolūtā atlaide
     CompanyHasRelativeDiscount=Šim klientam ir pastāvīgā atlaide <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Šim klientam nav relatīvā atlaide pēc noklusējuma
    -HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
    -HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +HasRelativeDiscountFromSupplier=Jums ir šī piegādātāja noklusējuma atlaide <b>%s%%</b>
    +HasNoRelativeDiscountFromSupplier=Jums nav noklusējuma relatīvās atlaides no šī piegādātāja
    +CompanyHasAbsoluteDiscount=Šim klientam ir pieejamas atlaides (kredītpiezīmes vai maksājumi) par <b>%s</b>%s
    +CompanyHasDownPaymentOrCommercialDiscount=Šim klientam ir pieejamas atlaides (komerciālie, iemaksātie maksājumi) par <b>%s</b> %s
     CompanyHasCreditNote=Šim klientam joprojām ir kredīta piezīmes <b>%s</b> %s
    -HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
    -HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    -HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for <b>%s</b> %s from this supplier
    -HasCreditNoteFromSupplier=You have credit notes for <b>%s</b> %s from this supplier
    +HasNoAbsoluteDiscountFromSupplier=Jums nav atlaides kredītu no šī piegādātāja
    +HasAbsoluteDiscountFromSupplier=Jums ir pieejamas atlaides (kredītzīmes vai norēķinu maksājumi) par <b>%s</b> %s no šī piegādātāja
    +HasDownPaymentOrCommercialDiscountFromSupplier=Jums ir pieejamas atlaides (komerciālie, iemaksātie) par <b>%s</b> %s no šī piegādātāja
    +HasCreditNoteFromSupplier=Šim piegādātājam ir kredītzīmes par <b> %s </b> %s
     CompanyHasNoAbsoluteDiscount=Šim klientam nav  pieejams atlaižu kredīts
    -CustomerAbsoluteDiscountAllUsers=Absolute customer discounts (granted by all users)
    -CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
    -SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
    -SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
    +CustomerAbsoluteDiscountAllUsers=Absolūtās klientu atlaides (ko piešķir visi lietotāji)
    +CustomerAbsoluteDiscountMy=Absolūtās klientu atlaides (ko piešķir pats)
    +SupplierAbsoluteDiscountAllUsers=Absolūtā pārdevēju atlaides (ievada visi lietotāji)
    +SupplierAbsoluteDiscountMy=Absolūtā pārdevēja atlaides (ievadījis pats)
     DiscountNone=Nav
    -Supplier=Piegādātājs
    +Supplier=Pārdevējs
     AddContact=Izveidot kontaktu
     AddContactAddress=Izveidot kontaktu/adresi
     EditContact=Labot kontaktu
    @@ -302,23 +302,23 @@ DefaultContact=Noklsētais kontakts / adrese
     AddThirdParty=Izveidot trešo personu
     DeleteACompany=Dzēst uzņēmumu
     PersonalInformations=Personas dati
    -AccountancyCode=Accounting account
    +AccountancyCode=Grāmatvedības konts
     CustomerCode=Klienta kods
    -SupplierCode=Vendor code
    +SupplierCode=Pārdevēja kods
     CustomerCodeShort=Klienta kods
    -SupplierCodeShort=Vendor code
    +SupplierCodeShort=Pārdevēja kods
     CustomerCodeDesc=Klienta kods, unikāls visiem klientiem
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +SupplierCodeDesc=Pārdevēja kods, unikāls visiem pārdevējiem
     RequiredIfCustomer=Nepieciešams, ja trešā puse ir klients vai perspektīva
    -RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Derīguma vadību kontrolēta ar moduli
    -ThisIsModuleRules=Šie noteikumi šim modulim
    +RequiredIfSupplier=Nepieciešams, ja trešā puse ir pārdevējs
    +ValidityControledByModule=Derīguma termiņš, ko kontrolē modulis
    +ThisIsModuleRules=Noteikumi par šo moduli
     ProspectToContact=Perspektīva ar ko sazināties
     CompanyDeleted=Kompānija "%s" dzēsta no datubāzes.
     ListOfContacts=Kontaktu / adrešu saraksts
     ListOfContactsAddresses=Kontaktu / adrešu saraksts
     ListOfThirdParties=Trešo personu saraksts
    -ShowCompany=Rādīt trešās personas
    +ShowCompany=Rādīt trešo personu
     ShowContact=Rādīt kontaktu
     ContactsAllShort=Visi (Bez filtra)
     ContactType=Kontakta veids
    @@ -328,25 +328,25 @@ ContactForProposals=Piedāvājumu  kontakti
     ContactForContracts=Līgumu kontakti
     ContactForInvoices=Rēķinu kontakti
     NoContactForAnyOrder=Šis kontakts ir ne kontaktu, lai jebkurā secībā
    -NoContactForAnyOrderOrShipments=This contact is not a contact for any order or shipment
    +NoContactForAnyOrderOrShipments=Šis kontakts nav kontakts jebkuram pasūtījumam vai sūtījumam
     NoContactForAnyProposal=Šis kontakts ir ne kontaktu par jebkuru komerciālu priekšlikumu
     NoContactForAnyContract=Šis kontakts nav neviena līguma kontaktpersona
     NoContactForAnyInvoice=Šis kontakts nav neviena rēķina kontaktpersona
     NewContact=Jauns kontakts
    -NewContactAddress=Jauna kontakta / adrese
    +NewContactAddress=Jauns kontakts / adrese
     MyContacts=Mani kontakti
     Capital=Kapitāls
     CapitalOf=Capital %s
     EditCompany=Labot uzņēmumu
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=Šis lietotājs nav izredzes, klients vai pārdevējs
     VATIntraCheck=Pārbaudīt
    -VATIntraCheckDesc=Saite <b>%s</b> ļauj lūgt Eiropas PVN pārbaudītājs pakalpojumu. Ārējo interneta pieslēgums no servera ir nepieciešams šo pakalpojumu, lai strādātu.
    +VATIntraCheckDesc=Saikne <b> %s </b> izmanto Eiropas PVN pārbaudītāja pakalpojumu (VIES). Lai šis pakalpojums darbotos, ir nepieciešama ārēja piekļuve internetam no servera.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Pārbaudiet Intracomunnautary PVN par Eiropas komisijā vietas
    -VATIntraManualCheck=Jūs varat pārbaudīt manuāli eiropas mājas lapā <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Pārbaudiet Kopienas iekšējo PVN Eiropas Komisijas tīmekļa vietnē
    +VATIntraManualCheck=Jūs varat manuāli pārbaudīt arī Eiropas Komisijas vietnē <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Pārbaude nav iespējams. Pārbaudes pakalpojums netiek nodrošināts no dalībvalsts (%s).
    -NorProspectNorCustomer=Tāpat arī izredzes, ne klientu
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Nav perspektīva, vai klients
    +JuridicalStatus=Juridiskās personas veids
     Staff=Personāls
     ProspectLevelShort=Potenciāls
     ProspectLevel=Prospect potenciālu
    @@ -373,7 +373,7 @@ TE_PRIVATE=Privātpersona
     TE_OTHER=Cits
     StatusProspect-1=Nesazināties
     StatusProspect0=Nekad neesam saznājušies
    -StatusProspect1=To be contacted
    +StatusProspect1=Sazināsimies
     StatusProspect2=Sazināšanās procesā
     StatusProspect3=Sazinājušies esam
     ChangeDoNotContact=Mainīt statusu uz 'Nesazināties'
    @@ -387,48 +387,48 @@ ExportCardToFormat=Eksporta karti formātā
     ContactNotLinkedToCompany=Kontakts nav saistīts ar trešajām personām
     DolibarrLogin=Dolibarr pieteikšanās
     NoDolibarrAccess=Nav Dolibarr piekļuve
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and proper
    -ExportDataset_company_2=Kontakti un rekvizīti
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and proper
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Trešās puses (uzņēmumi / fondi / fiziskie cilvēki) un to īpašības
    +ExportDataset_company_2=Kontakti un to īpašības
    +ImportDataset_company_1=Trešās puses (uzņēmumi / fondi / fiziskie cilvēki) un to īpašības
    +ImportDataset_company_2=Kontakti / adreses un atribūti
    +ImportDataset_company_3=Trešo personu bankas konti
    +ImportDataset_company_4=Trešās puses - tirdzniecības pārstāvji (piešķir pārdošanas pārstāvjiem / lietotājiem uzņēmumos)
     PriceLevel=Cenu līmenis
     DeliveryAddress=Piegādes adrese
     AddAddress=Pievienot adresi
    -SupplierCategory=Vendor category
    +SupplierCategory=Pārdevēja sadaļa
     JuridicalStatus200=Neatkarīgs
     DeleteFile=Izdzēst failu
     ConfirmDeleteFile=Vai jūs tiešām vēlaties izdzēst šo failu?
     AllocateCommercial=Assigned to sales representative
     Organization=Organizācija
    -FiscalYearInformation=Informācija par fiskālo gadu
    +FiscalYearInformation=Fiskālais gads
     FiscalMonthStart=Fiskālā gada pirmais mēnesis
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=Lai varētu pievienot e-pasta paziņojumu, šim lietotājam ir jāizveido e-pasts.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Saraksts perspektīvas
    +ListSuppliersShort=Pārdevēju saraksts
    +ListProspectsShort=Perspektīvu saraksts
     ListCustomersShort=Klientu saraksts
    -ThirdPartiesArea=Trešās personas u kontaktu sadaļa
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Kopējās unikālās trešās personas
    +ThirdPartiesArea=Trešās puses/Kontakti
    +LastModifiedThirdParties=Pēdējais %s modificēts trešās puses
    +UniqueThirdParties=Trešo personu kopskaits
     InActivity=Atvērts
     ActivityCeased=Slēgts
    -ThirdPartyIsClosed=Third party is closed
    +ThirdPartyIsClosed=Trešā persona ir slēgta
     ProductsIntoElements=List of products/services into %s
     CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Maks. par izcilu rēķinu
    -OutstandingBillReached=Max. for outstanding bill reached
    -OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +OutstandingBillReached=Maks. par izcilu rēķinu
    +OrderMinAmount=Minimālā summa pasūtījumam
    +MonkeyNumRefModelDesc=Atgrieziet numuru ar kodu %syymm-nnnn klienta kodam un %syymm-nnnn par pārdevēja kodu, kur yy ir gads, mm ir mēnesis, un nnnn ir secība bez pārtraukuma un nav atgriezties pie 0.
     LeopardNumRefModelDesc=Kods ir bez maksas. Šo kodu var mainīt jebkurā laikā.
     ManagingDirectors=Menedžera(u) vārds (CEO, direktors, prezidents...) 
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    -ThirdpartiesMergeSuccess=Third parties have been merged
    +ConfirmMergeThirdparties=Vai tiešām vēlaties apvienot šo trešo personu ar pašreizējo? Visi saistītie objekti (rēķini, pasūtījumi, ...) tiks pārvietoti uz pašreizējo trešo pusi, tad trešā puse tiks dzēsta.
    +ThirdpartiesMergeSuccess=Trešās puses ir apvienotas
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=Tirdzniecības pārstāvja vārds
     SaleRepresentativeLastname=Tirdzniecības pārstāvja uzvārds
    -ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +ErrorThirdpartiesMerge=Pašalot trešās puses, radās kļūda. Lūdzu, pārbaudiet žurnālu. Izmaiņas ir atgrieztas.
    +NewCustomerSupplierCodeProposed=Iepriekš izmantots klienta vai pārdevēja kods, tiek ieteikts jauns kods
    diff --git a/htdocs/langs/lv_LV/compta.lang b/htdocs/langs/lv_LV/compta.lang
    index 840a653e48f..c91f3956449 100644
    --- a/htdocs/langs/lv_LV/compta.lang
    +++ b/htdocs/langs/lv_LV/compta.lang
    @@ -20,7 +20,7 @@ Outcome=Izdevumi
     MenuReportInOut=Ienākumi / izdevumi
     ReportInOut=Ienākumu un izdevumu bilance
     ReportTurnover=Apgrozījums ir izrakstīts rēķinā
    -ReportTurnoverCollected=Turnover collected
    +ReportTurnoverCollected=Savākto apgrozījumu
     PaymentsNotLinkedToInvoice=Maksājumi, kas nav saistīti ar kādu rēķinu, tāpēc nav saistīts ar trešajām personām
     PaymentsNotLinkedToUser=Maksājumi, kas nav saistīti ar jebkuru lietotāju
     Profit=Peļņa
    @@ -78,7 +78,7 @@ MenuNewSocialContribution=New social/fiscal tax
     NewSocialContribution=New social/fiscal tax
     AddSocialContribution=Pievienot sociālo / fiskālo nodokli
     ContributionsToPay=Social/fiscal taxes to pay
    -AccountancyTreasuryArea=Billing and payment area
    +AccountancyTreasuryArea=Norēķinu un maksājumu zona
     NewPayment=Jauns maksājums
     Payments=Maksājumi
     PaymentCustomerInvoice=Klienta rēķina apmaksa
    @@ -86,7 +86,7 @@ PaymentSupplierInvoice=Piegādātāja rēķina maksājums
     PaymentSocialContribution=Social/fiscal tax payment
     PaymentVat=PVN maksājumi
     ListPayment=Maksājumu saraksts
    -ListOfCustomerPayments=Saraksts klientu maksājumu
    +ListOfCustomerPayments=Klientu maksājumu  saraksts
     ListOfSupplierPayments=Pārdevēja maksājumu saraksts
     DateStartPeriod=Sākuma datums periodam
     DateEndPeriod=Datums un periods
    @@ -114,7 +114,7 @@ TotalToPay=Summa
     BalanceVisibilityDependsOnSortAndFilters=Bilance ir redzama šajā sarakstā tikai tad, ja tabula ir sakārtota uz augšu %s un tiek filtrēta 1 bankas kontam.
     CustomerAccountancyCode=Klienta grāmatvedības kods
     SupplierAccountancyCode=Pārdevēja grāmatvedības kods
    -CustomerAccountancyCodeShort=Cust. account. code
    +CustomerAccountancyCodeShort=Klienta. konta. kods
     SupplierAccountancyCodeShort=Sup. account. code
     AccountNumber=Konta numurs
     NewAccountingAccount=Jauns konts
    @@ -126,23 +126,23 @@ ByThirdParties=Trešās personas
     ByUserAuthorOfInvoice=Ar rēķinu autors
     CheckReceipt=Čeka depozīts
     CheckReceiptShort=Pārbaudīt depozītu
    -LastCheckReceiptShort=Jaunākie %s čeku čeki
    +LastCheckReceiptShort=Jaunākie %s čeki
     NewCheckReceipt=Jauna atlaide
     NewCheckDeposit=Jauns pārbaude depozīts
     NewCheckDepositOn=Izveidot kvīti par depozīta kontā: %s
     NoWaitingChecks=No checks awaiting deposit.
     DateChequeReceived=Pārbaudiet uzņemšanas datumu
    -NbOfCheques=Nb Pārbaužu
    +NbOfCheques=Pārbaužu skaits
     PaySocialContribution=Pay a social/fiscal tax
     ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid?
    -DeleteSocialContribution=Delete a social or fiscal tax payment
    -ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment?
    +DeleteSocialContribution=Dzēst sociālo vai fiskālo nodokļu maksājumu
    +ConfirmDeleteSocialContribution=Vai tiešām vēlaties dzēst šo sociālo / fiskālo nodokļu maksājumu?
     ExportDataset_tax_1=Social and fiscal taxes and payments
     CalcModeVATDebt=Mode <b>%sVAT par saistību accounting%s.</b>
     CalcModeVATEngagement=Mode <b>%sVAT par ienākumu-expense%sS.</b>
     CalcModeDebt=Zināma reģistrēto rēķinu analīze, pat ja tie vēl nav uzskaitīti virsgrāmatā.
     CalcModeEngagement=Zināma reģistrēto maksājumu analīze, pat ja tie vēl nav uzskaitīti Ledger.
    -CalcModeBookkeeping=Grāmatvedības tabulas tabulā <b> dati tiek analizēti </ b>
    +CalcModeBookkeeping=Grāmatvedības grāmatiņas žurnālā publicēto datu analīze.
     CalcModeLT1= Mode <b>%sRE on customer invoices - suppliers invoices%s</b>
     CalcModeLT1Debt=Mode <b>%sRE on customer invoices%s</b>
     CalcModeLT1Rec= Mode <b>%sRE on suppliers invoices%s</b>
    @@ -152,10 +152,10 @@ CalcModeLT2Rec= Mode <b>%sIRPF on suppliers invoices%s</b>
     AnnualSummaryDueDebtMode=Līdzsvars ienākumiem un izdevumiem, gada kopsavilkums
     AnnualSummaryInputOutputMode=Līdzsvars ienākumiem un izdevumiem, gada kopsavilkums
     AnnualByCompanies=Ieņēmumu un izdevumu līdzsvars pēc iepriekš definētām kontu grupām
    -AnnualByCompaniesDueDebtMode=Ieņēmumu un izdevumu bilance, detalizēti pēc iepriekš definētām grupām, režīms <b> %sClaims-Debts%s </ b> norādīja <b> Saistību grāmatvedība </ b>.
    -AnnualByCompaniesInputOutputMode=Ieņēmumu un izdevumu līdzsvars, detalizēti pēc iepriekš definētām grupām, režīms <b> %sIncomes-Expenses%s </ b> norādīja <b> naudas līdzekļu uzskaiti </ b>.
    -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on actual payments made even if they are not yet accounted in Ledger.
    -SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even if they are not yet accounted in Ledger.
    +AnnualByCompaniesDueDebtMode=Ieņēmumu un izdevumu bilance, detalizēti pēc iepriekš definētām grupām, režīms <b> %sClaims-Debts%s </b> norādīja <b> Saistību grāmatvedība </b>.
    +AnnualByCompaniesInputOutputMode=Ieņēmumu un izdevumu līdzsvars, detalizēti pēc iepriekš definētām grupām, režīms <b> %sIncomes-Expenses%s </b> norādīja <b> naudas līdzekļu uzskaiti </b>.
    +SeeReportInInputOutputMode=Skatīt %s maksājumu analīzi %s, lai aprēķinātu veiktos faktiskos maksājumus, pat ja tie vēl nav uzskaitīti Virsgrāmatā.
    +SeeReportInDueDebtMode=Skatīt %srēķinu analīzi %s, lai aprēķiniem izmantotu zināmos reģistrētos rēķinus, pat ja tie vēl nav uzskaitīti Virsgrāmatā.
     SeeReportInBookkeepingMode=Lai skatītu <b> Grāmatvedības grāmatvedības tabulu </ b>, skatiet <b> %sBookBooking report%s </ b>
     RulesAmountWithTaxIncluded=- Uzrādītas summas ir ar visiem ieskaitot nodokļus
     RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whether they are paid or not. Is also includes paid salaries.<br>- It is based on the validation date of invoices and VAT and on the due date for expenses. For salaries defined with Salary module, the value date of payment is used.
    @@ -165,9 +165,9 @@ RulesCAIn=- Tas ietver visas efektīvus maksājumus rēķiniem, kas saņemti no
     RulesCATotalSaleJournal=Tas ietver visas kredītlīnijas no pārdošanas žurnāla.
     RulesAmountOnInOutBookkeepingRecord=Tas ietver jūsu Ledger ierakstu ar grāmatvedības kontiem, kuriem ir grupa "IZDEVUMS" vai "IENĀKUMS"
     RulesResultBookkeepingPredefined=Tas ietver jūsu Ledger ierakstu ar grāmatvedības kontiem, kuriem ir grupa "IZDEVUMS" vai "IENĀKUMS"
    -RulesResultBookkeepingPersonalized=Tas rāda jūsu grāmatvedībā ierakstu ar grāmatvedības kontiem <b> grupējot pēc personalizētām grupām </ b>
    +RulesResultBookkeepingPersonalized=Tas rāda jūsu grāmatvedībā ierakstu ar grāmatvedības kontiem <b>grupējot pēc personalizētām grupām</b>
     SeePageForSetup=Lai iestatītu, skatiet sadaļu <a href="%s"> %s </a>
    -DepositsAreNotIncluded=- Down payment invoices are nor included
    +DepositsAreNotIncluded=- Sākuma rēķini nav iekļauti
     DepositsAreIncluded=- Down payment invoices are included
     LT1ReportByCustomers=Trešo personu nodokļu pārskats 2
     LT2ReportByCustomers=Ziņojiet par trešās personas nodokli 3
    @@ -229,11 +229,11 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Grāmatvedības konts pēc noklusējuma par PVN pār
     ACCOUNTING_VAT_BUY_ACCOUNT=Grāmatvedības konts pēc noklusējuma par PVN pirkumiem (tiek izmantots, ja nav definēts, izmantojot PVN vārdnīcas iestatījumus).
     ACCOUNTING_VAT_PAY_ACCOUNT=Grāmatvedības konts pēc noklusējuma PVN maksāšanai
     ACCOUNTING_ACCOUNT_CUSTOMER=Grāmatvedības konts, kas tiek izmantots klientu trešajām pusēm
    -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Īpašais grāmatvedības konts, kas noteikts trešās personas kartē, tiks izmantots tikai pakārtotā izsaukšanai. Šis viens tiks izmantots General Ledger un kā noklusējuma vērtība Subledged grāmatvedībai, ja trešās puses īpašais klientu piesaistīšanas konts nav definēts.
    +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Īpašais grāmatvedības konts, kas noteikts trešās personas kartē, tiks izmantots tikai pakārtotajam grāmatvedim. Šis tiek izmantots General Ledger un noklusējuma vērtība Subledged grāmatvedībai, ja trešās personas īpašais klientu grāmatvedības konts nav definēts.
     ACCOUNTING_ACCOUNT_SUPPLIER=Pārdevēja trešo personu grāmatvedības konts
    -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Īpašais grāmatvedības konts, kas noteikts trešās personas kartē, tiks izmantots tikai pakārtotā izsaukšanai. Šis tiek izmantots General Ledger un noklusējuma vērtība Subledged grāmatvedībai, ja trešās puses īpašā piegādātāja konts nav definēts.
    +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Īpašais grāmatvedības konts, kas noteikts trešās personas kartē, tiks izmantots tikai pakārtotajam grāmatvedim. Šis tiek izmantots General Ledger un noklusējuma vērtība Subledged grāmatvedībai, ja trešās personas īpašais piegādātāja grāmatvedības konts nav definēts.
     CloneTax=Clone a social/fiscal tax
    -ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
    +ConfirmCloneTax=Apstipriniet sociālā / fiskālā nodokļa klonu
     CloneTaxForNextMonth=Klonēt nākošam mēnesim
     SimpleReport=Vienkāršs pārskats
     AddExtraReport=Papildu pārskati (pievienojiet ārvalstu un valsts klientu pārskatu)
    diff --git a/htdocs/langs/lv_LV/contracts.lang b/htdocs/langs/lv_LV/contracts.lang
    index e86eef5e821..4af65af6d71 100644
    --- a/htdocs/langs/lv_LV/contracts.lang
    +++ b/htdocs/langs/lv_LV/contracts.lang
    @@ -40,7 +40,7 @@ ConfirmCloseContract=This will close all services (active or not). Are you sure
     ConfirmCloseService=Vai jūs tiešām vēlaties aizvērt šo pakalpojumu ar datumu <b>%s</b> ?
     ValidateAContract=Apstiprināt līgumu
     ActivateService=Aktivizēt pakalpojumu
    -ConfirmActivateService=Are you sure you want to activate this service with date <b>%s</b>?
    +ConfirmActivateService=Vai tiešām vēlaties aktivizēt šo pakalpojumu sākot ar datumu <b> %s </b>?
     RefContract=Līguma atsauce
     DateContract=Līguma datums
     DateServiceActivate=Pakalpojuma aktivizēšanas datums
    @@ -52,7 +52,7 @@ ListOfRunningServices=Saraksts ar aktīvajiem pakalpojumiem
     NotActivatedServices=Neaktīvais pakalpojumi (starp apstiprinātiem līgumiem)
     BoardNotActivatedServices=Pakalpojumi aktivizēt starp apstiprinātiem līgumiem
     LastContracts=Jaunākie %s līgumi
    -LastModifiedServices=Pēdējais %s labotais pakalpojums
    +LastModifiedServices=Jaunākais %s labotais pakalpojums
     ContractStartDate=Sākuma datums
     ContractEndDate=Beigu datums
     DateStartPlanned=Plānotais sākuma datums
    @@ -67,7 +67,7 @@ CloseService=Aizvērt pakalpojumu
     BoardRunningServices=Beigušies darbojošies pakalpojumi
     ServiceStatus=Pakalpojuma statuss
     DraftContracts=Projektu līgumi
    -CloseRefusedBecauseOneServiceActive=Līgumu nevar tikt slēgts kā tur ir vismaz viens atvērts pakalpojums uz to
    +CloseRefusedBecauseOneServiceActive=Līgumu nevar slēgt, jo tajā ir vismaz viens atvērts pakalpojums
     ActivateAllContracts=Aktivizējiet visas līguma līnijas
     CloseAllContracts=Aizveriet visus līguma līnijas
     DeleteContractLine=Izdzēst līgumu līniju
    @@ -82,13 +82,14 @@ ListOfServicesToExpireWithDuration=Pakalpojumu sarakstu beidzas %s dienās
     ListOfServicesToExpireWithDurationNeg=Saraksts pakalpojumu beidzies no vairāk nekā %s dienas
     ListOfServicesToExpire=Saraksts pakalpojumu beigsies
     NoteListOfYourExpiredServices=Šajā sarakstā ir tikai pakalpojumu līgumi par trešo pušu jums ir saistītas kā pārdošanas pārstāvis.
    -StandardContractsTemplate=Standard contracts template
    -ContactNameAndSignature=For %s, name and signature:
    +StandardContractsTemplate=Standarta līgumu paraugs
    +ContactNameAndSignature=Kam %s vārds un paraksts:
     OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned.
     CloneContract=Klonēt līgumu
     ConfirmCloneContract=Vai tiešām vēlaties klonēt līgumu <b> %s </b>?
     LowerDateEndPlannedShort=Aktīvo pakalpojumu beigu datums
     SendContractRef=Informācija par līgumu __REF__
    +OtherContracts=Citi līgumi
     ##### Types de contacts #####
     TypeContact_contrat_internal_SALESREPSIGN=Tirdzniecības pārstāvis, parakstot līgumu,
     TypeContact_contrat_internal_SALESREPFOLL=Tirdzniecības pārstāvis, turpinot darboties līgums
    diff --git a/htdocs/langs/lv_LV/cron.lang b/htdocs/langs/lv_LV/cron.lang
    index 37095d3cb99..b00387d2649 100644
    --- a/htdocs/langs/lv_LV/cron.lang
    +++ b/htdocs/langs/lv_LV/cron.lang
    @@ -4,22 +4,22 @@
     Permission23101 = Lasīt Plānotos darbus
     Permission23102 = Izveidot / atjaunāt plānoto darbu
     Permission23103 = Dzēst plānoto darbu
    -Permission23104 = Execute Scheduled job
    +Permission23104 = Izpildīt plānoto darbu
     # Admin
    -CronSetup=Plānotais darbu vadības iestatīšana
    +CronSetup=Plānoto darbu iestatīšana
     URLToLaunchCronJobs=URL to check and launch qualified cron jobs
     OrToLaunchASpecificJob=Or to check and launch a specific job
     KeyForCronAccess=Drošības atslēga URL uzsākt cron darbavietas
     FileToLaunchCronJobs=Command line to check and launch qualified cron jobs
     CronExplainHowToRunUnix=On Unix environment you should use the following crontab entry to run the command line each 5 minutes
    -CronExplainHowToRunWin=On Microsoft(tm) Windows environement you can use Scheduled task tools to run the command line each 5 minutes
    +CronExplainHowToRunWin=Microsoft (tm) Windows vidē jūs varat izmantot Scheduled Task rīkus, lai palaistu komandrindu ik pēc 5 minūtēm
     CronMethodDoesNotExists=Class %s does not contains any method %s
     CronJobDefDesc=Cron darba profili ir definēti moduļa deskriptora failā. Kad modulis ir aktivizēts, tie ir ielādēti un pieejami, lai jūs varētu administrēt darbus no admin instrumentu izvēlnes %s.
     CronJobProfiles=Iepriekš noteiktu cron darba profilu saraksts
     # Menu
     EnabledAndDisabled=Iespējots un atspējots
     # Page list
    -CronLastOutput=Latest run output
    +CronLastOutput=Jaunāko darbību izvade
     CronLastResult=Jaunākais rezultātu kods
     CronCommand=Komanda
     CronList=Plānoti darbi
    @@ -42,13 +42,13 @@ CronModule=Modulis
     CronNoJobs=Nav reģistrētu darbu
     CronPriority=Prioritāte
     CronLabel=Nosaukums
    -CronNbRun=Nb. sākt
    +CronNbRun=Palaizšanas skaits
     CronMaxRun=Maksimālais numura izsaukšana
     CronEach=Katru
     JobFinished=Darbs uzsākts un pabeigts
     #Page card
     CronAdd= Pievienot darbu
    -CronEvery=Execute job each
    +CronEvery=Izpildīt katru darbu
     CronObject=Instances / Object, lai radītu
     CronArgs=Parametri
     CronSaveSucess=Veiksmīgi saglabāts
    @@ -61,23 +61,23 @@ CronStatusInactiveBtn=Izslēgt
     CronTaskInactive=Šis darbs ir izslēgts
     CronId=Id
     CronClassFile=Filename with class
    -CronModuleHelp=Dolibarr moduļu direktorijas nosaukums (arī darbojas ar ārēju Dolibarr moduli). <BR> Piemēram, lai izsauktu Dolibarr produkta objekta /htdocs/<uproduct</u>/class/product.class.php iegūšanas metodi, moduļa vērtība ir <br> <i> produkts </ i>
    +CronModuleHelp=Dolibarr moduļu direktorijas nosaukums (arī darbojas ar ārēju Dolibarr moduli). <BR> Piemēram, lai izsauktu Dolibarr produkta objekta /htdocs/<uproduct</u>/class/product.class.php iegūšanas metodi, moduļa vērtība ir <br> <i> produkts </i>
     CronClassFileHelp=Relatīvais ceļš un faila nosaukums ielādei (ceļš ir salīdzinājumā ar tīmekļa servera saknes direktoriju). <BR> Piemēram, lai izsauktu Dolibarr produkta objekta htdocs / product / class / <u> product.class.php </ u> iegūšanas metodi, klases faila nosaukuma vērtība ir <br> <i> produkts / klase / product.class.php </ i>
    -CronObjectHelp=Objekta nosaukums ielādei. <BR> Piemēram, lai izsauktu Dolibarr Produkta objekta /htdocs/product/class/product.class.php iegūšanas metodi, klases faila nosaukuma vērtība ir <br> <i> Produkts </ i>
    -CronMethodHelp=Objekta metode, lai palaistu. <BR> Piemēram, lai izsauktu Dolibarr produkta objekta /htdocs/product/class/product.class.php ielādes metodi, metode ir vērtība <br> <i> atnest </ i>
    -CronArgsHelp=Metodes argumenti. <BR> Piemēram, lai izsauktu Dolibarr Produkta objekta /htdocs/product/class/product.class.php iegūšanas metodi, paramērķu vērtība var būt <br> <i> 0, ProductRef </ i>
    -CronCommandHelp=Sistēma komandrindas izpildīt.
    -CronCreateJob=Create new Scheduled Job
    +CronObjectHelp=Objekta nosaukums ielādei. <BR> Piemēram, lai izsauktu Dolibarr Produkta objekta /htdocs/product/class/product.class.php ielādes metodi, klases faila nosaukuma vērtība ir <br> <i> Produkts </ i>
    +CronMethodHelp=Objekta metode, lai palaistu. <BR> Piemēram, lai izsauktu Dolibarr Produkta objekta /htdocs/product/class/product.class.php iegūšanas metodi, metodes vērtība ir <br> <i> atnest </ i>
    +CronArgsHelp=Metodes argumenti. <BR> Piemēram, lai izsauktu Dolibarr produkta objekta /htdocs/product/class/product.class.php ielādes metodi, paramērķu vērtība var būt <br> <i> 0, ProductRef </ i>
    +CronCommandHelp=Sistēma komandrindā izpildīt.
    +CronCreateJob=Izveidot jaunu plānoto darbu
     CronFrom=No
     # Info
     # Common
     CronType=Darba veids
     CronType_method=PHP klases zvana metode
    -CronType_command=Shell komandu
    +CronType_command=Shell komanda
     CronCannotLoadClass=Nevar ielādēt klases failu %s (izmantot klasi %s)
     CronCannotLoadObject=Klases fails %s tika ielādēts, bet objekts %s tajā netika atrasts
     UseMenuModuleToolsToAddCronJobs=Lai skatītu un rediģētu ieplānotās darbavietas, dodieties uz izvēlni "Sākums - Administratora rīki - Plānotās darbavietas".
     JobDisabled=Darbs ir atspējots
     MakeLocalDatabaseDumpShort=Local database backup
    -MakeLocalDatabaseDump=Izveidojiet vietējo datubāzes dump. Parametri ir: kompresija ("gz" vai "bz" vai "neviens"), dublējuma tips ("mysql" vai "pgsql"), 1, "auto" vai faila nosaukums,
    +MakeLocalDatabaseDump=Izveidojiet vietējo datubāzes dump. Parametri ir: kompresija ("gz" vai "bz" vai "neviens"), dublēšanas veids ("mysql", "pgsql", "auto"), 1, "auto" vai faila nosaukums,
     WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run.
    diff --git a/htdocs/langs/lv_LV/deliveries.lang b/htdocs/langs/lv_LV/deliveries.lang
    index 0f91ffe7cb4..4eb77826a49 100644
    --- a/htdocs/langs/lv_LV/deliveries.lang
    +++ b/htdocs/langs/lv_LV/deliveries.lang
    @@ -1,16 +1,16 @@
     # Dolibarr language file - Source file is en_US - deliveries
     Delivery=Piegāde
    -DeliveryRef=Ref Delivery
    -DeliveryCard=Receipt card
    +DeliveryRef=Art piegādei
    +DeliveryCard=Čeka kartiņa
     DeliveryOrder=Piegādes pasūtījums
     DeliveryDate=Piegādes datums
    -CreateDeliveryOrder=Generate delivery receipt
    -DeliveryStateSaved=Delivery state saved
    +CreateDeliveryOrder=Izveidot piegādes kvīti
    +DeliveryStateSaved=Piegādes stāvoklis saglabāts
     SetDeliveryDate=Uzstādīt piegādes datumu
    -ValidateDeliveryReceipt=Apstiprināt piegādes saņemšanu
    -ValidateDeliveryReceiptConfirm=Are you sure you want to validate this delivery receipt?
    +ValidateDeliveryReceipt=Pārbaudiet piegādes kvīti
    +ValidateDeliveryReceiptConfirm=Vai tiešām vēlaties apstiprināt piegādes kvīti?
     DeleteDeliveryReceipt=Dzēst piegādes saņemšanu
    -DeleteDeliveryReceiptConfirm=Are you sure you want to delete delivery receipt <b>%s</b>?
    +DeleteDeliveryReceiptConfirm=Vai tiešām vēlaties dzēst piegādes kvīti <b> %s </b>?
     DeliveryMethod=Piegādes metode
     TrackingNumber=Sekošanas numurs
     DeliveryNotValidated=Piegāde nav apstiprināta
    @@ -19,12 +19,13 @@ StatusDeliveryDraft=Melnraksts
     StatusDeliveryValidated=Saņemts
     # merou PDF model
     NameAndSignature=Vārds, uzvārds un paraksts:
    -ToAndDate=To___________________________________ uz ____ / _____ / __________
    -GoodStatusDeclaration=Ir saņēmuši preces iepriekš labā stāvoklī,
    +ToAndDate=Kam___________________________________ uz ____ / _____ / __________
    +GoodStatusDeclaration=Ir saņēmuši iepriekš minētās preces labā stāvoklī,
     Deliverer=Piegādātājs:
     Sender=Nosūtītājs
     Recipient=Saņēmējs
     ErrorStockIsNotEnough=Nav pietiekami daudz krājumu
     Shippable=Shippable
    -NonShippable=Not Shippable
    -ShowReceiving=Show delivery receipt
    +NonShippable=Nav nosūtāms
    +ShowReceiving=Rādīt piegādes kvīti
    +NonExistentOrder=Pasūtījums neeksistē
    diff --git a/htdocs/langs/lv_LV/dict.lang b/htdocs/langs/lv_LV/dict.lang
    index b48eed3b4b3..aa89e81ce7c 100644
    --- a/htdocs/langs/lv_LV/dict.lang
    +++ b/htdocs/langs/lv_LV/dict.lang
    @@ -6,7 +6,7 @@ CountryES=Spānija
     CountryDE=Vācija
     CountryCH=Šveice
     # Warning, country code GB is for United Kingdom. UK Does not exists as country code in ISO standard.
    -CountryGB=Lielbritānija
    +CountryGB=Apvienotā Karaliste
     CountryUK=Lielbritānija
     CountryIE=Īrija
     CountryCN=Ķīna
    @@ -116,7 +116,7 @@ CountryHM=Hērda un Makdonalda salas
     CountryVA=Svētais Krēsls (Vatikāna Pilsētvalsts)
     CountryHN=Hondurasa
     CountryHK=Honkonga
    -CountryIS=Islande
    +CountryIS=Īslande
     CountryIN=Indija
     CountryID=Indonēzija
     CountryIR=Irāna
    @@ -158,9 +158,9 @@ CountryMX=Meksika
     CountryFM=Mikronēzija
     CountryMD=Moldova
     CountryMN=Mongolija
    -CountryMS=Monserrat
    +CountryMS=Monserrata
     CountryMZ=Mozambika
    -CountryMM=Birmania (Mjanma)
    +CountryMM=Mjanma (Birmija)
     CountryNA=Namībija
     CountryNR=Nauru
     CountryNP=Nepāla
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidāda un Tobāgo
     CountryTR=Turcija
     CountryTM=Turkmenistāna
    -CountryTC=Tērksas un Cailos salas
    +CountryTC=Turks un Kaikosas salas
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraina
    @@ -251,7 +251,7 @@ CountryMF=Saint Martin
     ##### Civilities #####
     CivilityMME=Kundze
     CivilityMR=Kungs
    -CivilityMLE=Ms
    +CivilityMLE=Jaunkundze.
     CivilityMTRE=Meistars
     CivilityDR=Doktors
     ##### Currencies #####
    @@ -274,10 +274,10 @@ CurrencyMAD=Dirhams
     CurrencySingMAD=Dirhams
     CurrencyMGA=Ariary
     CurrencySingMGA=Ariary
    -CurrencyMUR=Maurīcija rūpijas
    -CurrencySingMUR=Maurīcija rūpija
    +CurrencyMUR=Maurīcijas rūpijas
    +CurrencySingMUR=Maurīcijas rūpija
     CurrencyNOK=Norvēģijas kronas
    -CurrencySingNOK=Norvēģijas krona
    +CurrencySingNOK=Norvēģijas kronas
     CurrencyTND=Tunisijas dināri
     CurrencySingTND=Tunisijas dinārs
     CurrencyUSD=ASV dolāri
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=No mutes mutē
     DemandReasonTypeSRC_PARTNER=Partneris
     DemandReasonTypeSRC_EMPLOYEE=Darbinieks
     DemandReasonTypeSRC_SPONSORING=Sponsorēšana
    +DemandReasonTypeSRC_SRC_CUSTOMER=Klienta ienākošais kontakts
     #### Paper formats ####
     PaperFormatEU4A0=Formāts 4A0
     PaperFormatEU2A0=Formāts 2A0
    @@ -328,8 +329,8 @@ PaperFormatCAP5=Formāts P5 Kanāda
     PaperFormatCAP6=Formāts P6 Kanāda
     #### Expense report categories ####
     ExpAutoCat=Automašīna
    -ExpCycloCat=Moped
    -ExpMotoCat=Motorbike
    +ExpCycloCat=Mopēds
    +ExpMotoCat=Motocikls
     ExpAuto3CV=3 CV
     ExpAuto4CV=4 CV
     ExpAuto5CV=5 CV
    @@ -340,18 +341,18 @@ ExpAuto9CV=9 CV
     ExpAuto10CV=10 CV
     ExpAuto11CV=11 CV
     ExpAuto12CV=12 CV
    -ExpAuto3PCV=3 CV and more
    -ExpAuto4PCV=4 CV and more
    -ExpAuto5PCV=5 CV and more
    -ExpAuto6PCV=6 CV and more
    -ExpAuto7PCV=7 CV and more
    -ExpAuto8PCV=8 CV and more
    -ExpAuto9PCV=9 CV and more
    -ExpAuto10PCV=10 CV and more
    -ExpAuto11PCV=11 CV and more
    -ExpAuto12PCV=12 CV and more
    -ExpAuto13PCV=13 CV and more
    -ExpCyclo=Capacity lower to 50cm3
    -ExpMoto12CV=Motorbike 1 or 2 CV
    -ExpMoto345CV=Motorbike 3, 4 or 5 CV
    -ExpMoto5PCV=Motorbike 5 CV and more
    +ExpAuto3PCV=3 CV un vairāk
    +ExpAuto4PCV=4 CV un vairāk
    +ExpAuto5PCV=5 CV un vairāk
    +ExpAuto6PCV=6 CV un vairāk
    +ExpAuto7PCV=7 CV un vairāk
    +ExpAuto8PCV=8 CV un vairāk
    +ExpAuto9PCV=9 CV un vairāk
    +ExpAuto10PCV=10 CV un vairāk
    +ExpAuto11PCV=11 CV un vairāk
    +ExpAuto12PCV=12 CV un vairāk
    +ExpAuto13PCV=13 CV un vairāk
    +ExpCyclo=Jauda mazāka par 50cm3
    +ExpMoto12CV=Motociklu 1 vai 2 CV
    +ExpMoto345CV=3, 4 vai 5 CV motocikls
    +ExpMoto5PCV=Motocikls 5 CV un vairāk
    diff --git a/htdocs/langs/lv_LV/ecm.lang b/htdocs/langs/lv_LV/ecm.lang
    index c09eddc5c70..b6db88ee895 100644
    --- a/htdocs/langs/lv_LV/ecm.lang
    +++ b/htdocs/langs/lv_LV/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Dokumentu skaits sadaļā
    +ECMNbOfDocs=Dokumentu skaits katalogā
     ECMSection=Katalogs
     ECMSectionManual=Manuālā sadaļa
     ECMSectionAuto=Automātiskā sadaļa
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Dokumenti, kas saistīti ar projektiem
     ECMDocsByUsers=Ar lietotājiem saistītie dokumenti
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Ar izdevumu ziņojumiem saistītie dokumenti
    +ECMDocsByHolidays=Ar brīvdienām saistītie dokumenti
    +ECMDocsBySupplierProposals=Dokumenti, kas saistīti ar piegādātāju priekšlikumiem
     ECMNoDirectoryYet=Nav izveidots katalogs
     ShowECMSection=Rādīt katalogu
     DeleteSection=Dzēst direktoriju
    @@ -44,7 +46,7 @@ CannotRemoveDirectoryContainsFiles=Dzēšana nav iespējama, jo tajā ir daži f
     ECMFileManager=Failu pārvaldnieks
     ECMSelectASection=Izvēlieties direktoriju kokā ...
     DirNotSynchronizedSyncFirst=Šķiet, ka šis direktorijs ir izveidots vai modificēts ārpus ECM moduļa. Vispirms noklikšķiniet uz pogas "Resync", lai sinhronizētu disku un datu bāzi, lai iegūtu saturu šajā direktorijā.
    -ReSyncListOfDir=Resync katalogu saraksts
    +ReSyncListOfDir=Pārsinhronizēt sadaļu sarakstu
     HashOfFileContent=Faila satura pārslēgs
     NoDirectoriesFound=Nav atrastas direktorijas
     FileNotYetIndexedInDatabase=Fails vēl nav indeksēts datu bāzē (mēģiniet to atkārtoti augšupielādēt).
    diff --git a/htdocs/langs/lv_LV/errors.lang b/htdocs/langs/lv_LV/errors.lang
    index c641357abf7..495345c9808 100644
    --- a/htdocs/langs/lv_LV/errors.lang
    +++ b/htdocs/langs/lv_LV/errors.lang
    @@ -11,7 +11,7 @@ ErrorLoginAlreadyExists=Lietotājs %s jau pastāv.
     ErrorGroupAlreadyExists=Grupa %s jau pastāv.
     ErrorRecordNotFound=Ierakstīt nav atrasts.
     ErrorFailToCopyFile=Neizdevās nokopēt failu '<b>%s</b>' uz '<b>%s</b>'.
    -ErrorFailToCopyDir=Failed to copy directory '<b>%s</b>' into '<b>%s</b>'.
    +ErrorFailToCopyDir=Neizdevās kopēt direktoriju '<b>%s</b>' uz ' <b>%s</b>'.
     ErrorFailToRenameFile=Neizdevās pārdēvēt failu '<b>%s</b>' uz '<b>%s</b>'.
     ErrorFailToDeleteFile=Neizdevās izdzēst failu '<b>%s</b>'.
     ErrorFailToCreateFile=Neizdevās izveidot failu '<b>%s</b>'.
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Vērtībai '%s' ir nepareizs datuma formāts
     ErrorWrongDate=Datums nav pareizs
     ErrorFailedToWriteInDir=Neizdevās ierakstīt direktorijā %s
     ErrorFoundBadEmailInFile=Atrasts nepareiza e-pasta sintakse %s līnijām failā (piemērs line %s ar e-pasta = %s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=Lietotāju nevar izdzēst. Varbūt tas ir saistīts ar Dolibarr vienībām.
     ErrorFieldsRequired=Daži nepieciešamie lauki netika aizpildīti.
     ErrorSubjectIsRequired=E-pasta tēma ir nepieciešama
     ErrorFailedToCreateDir=Neizdevās izveidot direktoriju. Pārbaudiet, vai Web servera lietotājam ir tiesības rakstīt uz Dolibarr dokumentus direktorijā. Ja parametrs <b>safe_mode</b> ir iespējots uz šo PHP, pārbaudiet, Dolibarr php faili pieder web servera lietotājam (vai grupa).
    @@ -65,29 +65,31 @@ ErrorNoValueForSelectType=Lūdzu izvēlieties vērtību no saraksta
     ErrorNoValueForCheckBoxType=Lūdzu, aizpildiet vērtību rūtiņu sarakstā
     ErrorNoValueForRadioType=Lūdzu, aizpildiet vērtību radio pogu sarakstā
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Lauks <b>%s</b> nedrīkst saturēt speciālos simbolus.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=Laukā <b> %s </b> nedrīkst būt īpašas rakstzīmes.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=Laukā <b> %s </b> nedrīkst būt speciālās rakstzīmes vai lielformāta rakstzīmes, un tajos nedrīkst būt tikai cipari.
    +ErrorFieldMustHaveXChar=Laukā <b>%s</b>jābūt vismaz %s rakstzīmēm.
     ErrorNoAccountancyModuleLoaded=Nav grāmatvedības modulis aktivizēts
     ErrorExportDuplicateProfil=Šāds profila nosaukums jau eksistē šim eksportam.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP saskaņošana nav pilnīga.
     ErrorLDAPMakeManualTest=. LDIF fails ir radīts direktorija %s. Mēģināt ielādēt manuāli no komandrindas, lai būtu vairāk informācijas par kļūdām.
    -ErrorCantSaveADoneUserWithZeroPercentage=Nevar saglabāt prasību ar &quot;statut nav uzsākta&quot;, ja lauks &quot;izdarīt&quot;, ir arī piepildīta.
    +ErrorCantSaveADoneUserWithZeroPercentage=Nevar saglabāt darbību ar statusu, kas nav startēts, ja arī aizpildīts lauks "done by".
     ErrorRefAlreadyExists=Ref izmantot izveidot jau pastāv.
     ErrorPleaseTypeBankTransactionReportName=Lūdzu, ievadiet bankas izraksta nosaukumu, kurā ieraksts jāpaziņo (formāts GGGGMM vai GGGGMMDD).
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Neizdevās dzēst ierakstu, jo tajā ir daži bērnu ieraksti.
     ErrorRecordHasAtLeastOneChildOfType=Objektam ir vismaz viens bērns no tipa %s
    -ErrorRecordIsUsedCantDelete=Nevar izdzēst ierakstu. Tas ir pievienots citam objektam.
    +ErrorRecordIsUsedCantDelete=Nevar izdzēst ierakstu. Tas jau ir izmantots vai iekļauts citā objektā.
     ErrorModuleRequireJavascript=Javascript nedrīkst tikt izslēgti, ka šī funkcija strādā. Lai aktivizētu / deaktivizētu Javascript, dodieties uz izvēlni Home-&gt; Setup-&gt; Display.
     ErrorPasswordsMustMatch=Abām ievadītām parolēm jāsakrīt
    -ErrorContactEMail=Tehniska kļūda. Lūdzu, sazinieties ar administratoru pa sekojošu e-pastu <b>%s</b>, lai iesniegtu kļūdas kodu <b>%s</b> jūsu ziņojumā, vai labāk, pievienojot šīs lapas ekrāna.
    +ErrorContactEMail=Radās tehniska kļūda. Lūdzu, sazinieties ar administratoru uz šādu e-pastu <b> %s </b> un savā ziņojumā uzrakstiet kļūdas kodu <b> %s </b> vai pievienojiet šīs lapas ekrāna kopiju.
     ErrorWrongValueForField=Nepareiza vērtība lauka numuru <b>%s</b> (vērtība '<b>%s</b>' nesakrīt regex noteikums <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Nepareiza vērtība lauka numuru <b>%s</b> (vērtība <b>&quot;%s&quot;</b> nav <b>%s</b> esošo ref)
     ErrorsOnXLines=Kļūdas <b>%s</b> avota ierakstu (-s)
    -ErrorFileIsInfectedWithAVirus=Antivīrusu programma nevarēja apstiprināt failu (fails varētu būt inficēti ar vīrusu)
    -ErrorSpecialCharNotAllowedForField=Speciālās rakstzīmes nav atļautas lauka &quot;%s&quot;
    +ErrorFileIsInfectedWithAVirus=Antivīrusu programma nevarēja pārbaudīt failu (fails varētu būt inficēts ar vīrusu)
    +ErrorSpecialCharNotAllowedForField=Speciālās rakstzīmes nav atļautas laukam "%s"
     ErrorNumRefModel=Norāde pastāv to datubāzē (%s), un tas nav saderīgs ar šo numerācijas noteikuma. Noņemt ierakstu vai pārdēvēts atsauci, lai aktivizētu šo moduli.
     ErrorQtyTooLowForThisSupplier=Šim pārdevējam pārāk zems daudzums vai šī produkta piegādātājam nav noteikta cena
    +ErrorOrdersNotCreatedQtyTooLow=Daži pasūtījumi nav izveidoti jo pārāk mazs daudzums
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complet
     ErrorBadMask=Kļūda masku
     ErrorBadMaskFailedToLocatePosOfSequence=Kļūda, maska ​​bez kārtas numuru
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Kļūdas, slikta reset vērtība
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Kļūda. Izvēlieties vismaz vienu ierakstu.
    -ErrorDeleteNotPossibleLineIsConsolidated=Izdzēst nav iespējams, jo ieraksts ir saistīts ar bankas darījumu summa, kas tiek conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Dzēšana nav iespējama, jo ieraksts ir saistīts ar bankas darījumu, kas ir saskaņots
     ErrorProdIdAlreadyExist=%s piešķirta citai trešajai
     ErrorFailedToSendPassword=Neizdevās nosūtīt paroli
     ErrorFailedToLoadRSSFile=Nespēj iegūt RSS barotni. Centieties, lai pievienotu pastāvīgu MAIN_SIMPLEXMLLOAD_DEBUG ja kļūdu ziņojumi nesniedz pietiekamu informāciju.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Lietotāju ar pieteikšanos <b>%s</b> nevar atrast.
     ErrorLoginHasNoEmail=Šim lietotājam nav e-pasta adrese. Process atcelts.
     ErrorBadValueForCode=Nepareiza drošības koda vērtība. Mēģiniet vēlreiz ar jauno vērtību ...
     ErrorBothFieldCantBeNegative=Lauki %s un %s nevar būt abi negatīvi
    +ErrorFieldCantBeNegativeOnInvoice=Laukā <strong> %s </strong>šāda veida rēķins nevar būt negatīvs. Ja vēlaties pievienot atlaides līniju, vispirms izveidojiet atlaidi ar saiti %s ekrānā un izmantojiet to rēķinā. Varat arī lūgt administratoram iestatīt iespēju FACTURE_ENABLE_NEGATIVE_LINES līdz 1, lai atjaunotu veco uzvedību.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Lietotāja konts <b>%s</b> izmantot, lai veiktu web serveri nav atļauja, kas
     ErrorNoActivatedBarcode=Nav svītrkodu veids aktivizēts
    @@ -138,7 +141,7 @@ ErrorBadFormat=Nepareizs formāts
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Kļūda, šis dalībnieks vēl nav saistīts ar kādu trešo pusi. Saistiet esošās trešās personas biedru vai izveidojiet jaunu trešo pusi, pirms izveidojat abonementu ar rēķinu.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Nevar izdzēst maksājumu, kas ir izveidojis bankas ierakstu, kas tika saskaņots
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Nevar izdzēst maksājumu, kas kopīgs ar vismaz vienu rēķinu ar statusu Apmaksāts
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,12 +150,12 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operatoram '%s' nav operandes
     ErrorPriceExpression11=Expecting '%s'
    -ErrorPriceExpression14=Division by zero
    +ErrorPriceExpression14=Dalīts ar nulli
     ErrorPriceExpression17=Nedefinēta vērtība '%s'
    -ErrorPriceExpression19=Expression not found
    -ErrorPriceExpression20=Empty expression
    +ErrorPriceExpression19=Izteiksme nav atrasta
    +ErrorPriceExpression20=Tukša izteiksme
     ErrorPriceExpression21=Nav rezultāta '%s'
     ErrorPriceExpression22=Negatīvs rezultāts '%s'
     ErrorPriceExpression23=Nezināms vai nenoteikts mainīgais "%s" %s
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=Jūs iestatāt aplēsto summu šim svinam. Tāpēc jums ir jāievada arī tā statuss
     ErrorFailedToLoadModuleDescriptorForXXX=Neizdevās ielādēt moduļa deskriptoru klasi %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=Kļūda saglabājot izmaiņas
    +ErrorSavingChanges=Saglabājot izmaiņas, radās kļūda
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Šī piegādātāja valsts nav definēta. Vispirms labojiet to.
    @@ -203,12 +206,13 @@ ErrorObjectMustHaveStatusDraftToBeValidated=Objektam %s ir jābūt statusam "Dra
     ErrorObjectMustHaveLinesToBeValidated=Objektam %s jābūt apstiprināmām līnijām.
     ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Izmantojot masu pasākumu "Sūtīt pa e-pastu", var nosūtīt tikai apstiprinātos rēķinus.
     ErrorChooseBetweenFreeEntryOrPredefinedProduct=Jums ir jāizvēlas, vai raksts ir iepriekš definēts produkts
    -ErrorDiscountLargerThanRemainToPaySplitItBefore=Atlaide, kuru mēģināt piemērot, ir lielāka par atlikušo samaksu. Pirms divas mazākas atlaides sadaliet atlaidi.
    +ErrorDiscountLargerThanRemainToPaySplitItBefore=Atlaide, kuru mēģināt piemērot, ir lielāka par atlikušo samaksu. Sadaliet atlaidi 2 mazākās atlaidēs pirms tam.
     ErrorFileNotFoundWithSharedLink=Fails netika atrasts. Var mainīt koplietošanas atslēgu vai nesen izņemt failu.
     ErrorProductBarCodeAlreadyExists=Produkta svītrkoda %s jau pastāv citā produkta atsaucei.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Ņemiet vērā arī, ka virtuālā produkta izmantošana, lai automātiski palielinātu vai samazinātu subproduktus, nav iespējama, ja vismaz vienam produktam (vai blakusproduktam) ir nepieciešams sērijas / partijas numurs.
     ErrorDescRequiredForFreeProductLines=Apraksts ir obligāts līnijām ar bezmaksas produktu
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=Lapā / konteinerā <strong> %s </strong>ir tāds pats nosaukums vai alternatīvs aizstājvārds, kuru izmantojat
    +ErrorDuringChartLoad=Ielādējot konta diagrammu, radās kļūda. Ja daži konti nav ielādēti, jūs varat tos ievadīt manuāli.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Obligātie uzstādīšanas parametri vēl nav definētas
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Ar šo nosaukumu, vai šī mērķa grāmatzīmes (U
     WarningPassIsEmpty=Brīdinājums, datu bāzes parole ir tukša. Tas ir drošības caurums. Jums vajadzētu pievienot paroli, lai jūsu datu bāzi un mainīt savu conf.php failu, lai atspoguļotu šo.
     WarningConfFileMustBeReadOnly=Uzmanību, jūsu config failu <b>(htdocs / conf / conf.php)</b> var pārrakstīt ar web serveri. Tas ir nopietns drošības caurums. Mainīt atļaujas faila būt tikai lasīšanas pēc operētājsistēmas lietotāja režīmu, ko izmanto tīmekļa serveri. Ja jūs izmantojat Windows un FAT formātu, lai jūsu diska, jums ir jāzina, ka šī failu sistēma neļauj pievienot atļaujas par failu, tāpēc nevar būt pilnīgi droša.
     WarningsOnXLines=Brīdinājumi par <b>%s</b> avota ierakstu(-iem)
    -WarningNoDocumentModelActivated=Nē modelis, dokumentu paaudzes ir aktivizēts. Modelis tiks choosed pēc noklusējuma, kamēr jūs pārbaudīt savu modulis iestatīšanu.
    +WarningNoDocumentModelActivated=Neviens modelis dokumentu ģenerēšanai nav aktivizēts. Modeli izvēlēsies pēc noklusējuma, līdz jūs pārbaudīsit sava moduļa iestatījumus.
     WarningLockFileDoesNotExists=Brīdinājums, kad uzstādīšana ir pabeigta, jums ir atslēgt instalēt / migrē instrumentus, pievienojot failu <b>install.lock</b> uz uzziņu <b>%s.</b> Trūkst šo failu, ir drošības caurums.
    -WarningUntilDirRemoved=Visi drošības brīdinājumi (redzami admin lietotājiem) paliks aktīvs tik ilgi, kamēr neaizsargātība ir klāt (vai ka pastāvīga MAIN_REMOVE_INSTALL_WARNING pievieno Setup-&gt; Citi uzstādīšanas).
    +WarningUntilDirRemoved=Visi drošības brīdinājumi (redzami tikai administratora lietotājiem) paliks aktīvi, kamēr būs ievainojamība (vai pastāvīgā MAIN_REMOVE_INSTALL_WARNING tiek pievienota iestatījumam-> Citi iestatījumi).
     WarningCloseAlways=Brīdinājums, aizvēršanas tiek darīts, pat ja summa atšķiras no avota un mērķa elementi. Aktivizēt šo funkciju piesardzīgi.
     WarningUsingThisBoxSlowDown=Uzmanību, izmantojot šo lodziņu palēnināt nopietni visas lapas, kas parāda lodziņu.
     WarningClickToDialUserSetupNotComplete=Iestatīšana ClickToDial informāciju par jūsu lietotāja nav pilnīga (skat. tab ClickToDial uz jūsu lietotāja kartes).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Daži lietotāji dažreiz ierakstīja, bet viņu stundas likme netika definēta. Tika izmantota vērtība 0 %s stundā, taču tas var novest pie nepareiza pavadītā laika vērtējuma.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=Šīs valodas tulkošanas taustiņam jau ir ieraksts
    -WarningNumberOfRecipientIsRestrictedInMassAction=Brīdinot, dažādu saņēmēju skaits ir ierobežots līdz <b> %s </ b>, ja tiek izmantota lielākā daļa darbību sarakstos
    +WarningNumberOfRecipientIsRestrictedInMassAction=Brīdinājums, ja izmantojat masveida darbību sarakstos, saņēmēju skaits ir ierobežots <b>%s</b>
     WarningDateOfLineMustBeInExpenseReportRange=Brīdinājums, rindas datums nav izdevumu pārskata diapazonā
    diff --git a/htdocs/langs/lv_LV/exports.lang b/htdocs/langs/lv_LV/exports.lang
    index fd40a128e1c..043b2ee0583 100644
    --- a/htdocs/langs/lv_LV/exports.lang
    +++ b/htdocs/langs/lv_LV/exports.lang
    @@ -1,42 +1,42 @@
     # Dolibarr language file - Source file is en_US - exports
    -ExportsArea=Eksporta zona
    -ImportArea=Importa zona
    -NewExport=Jauns eksporta
    +ExportsArea=Eksports
    +ImportArea=Imports
    +NewExport=Jauns eksports
     NewImport=Jauns imports
     ExportableDatas=Eksportējamo datu kopa
     ImportableDatas=Importējamo datu kopa
     SelectExportDataSet=Izvēlieties datu kopumu, kuru vēlaties eksportēt ...
     SelectImportDataSet=Izvēlieties datu kopumu, kuru vēlaties importēt ...
    -SelectExportFields=Izvēlieties laukus, kurus vēlaties eksportēt, vai izvēlieties sākotnēji definētu eksporta profilu
    -SelectImportFields=Choose source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile:
    +SelectExportFields=Izvēlieties laukus, kurus vēlaties eksportēt, vai izvēlieties iepriekš definētu eksporta profilu
    +SelectImportFields=Izvēlieties avota failu laukus, kurus vēlaties importēt, un to mērķa lauku datu bāzē, pārvietojot tos uz augšu un uz leju ar enkura %s vai izvēlieties iepriekš definētu importa profilu:
     NotImportedFields=Jomas avota failā nav importēti
    -SaveExportModel=Saglabāt šo eksporta profilu, ja jūs plānojat atkārtoti izmantot to vēlāk ...
    -SaveImportModel=Saglabāt šo importa profilu, ja jūs plānojat atkārtoti izmantot to vēlāk ...
    +SaveExportModel=Saglabājiet atlases kā eksporta profilu / veidni (atkārtotai izmantošanai).
    +SaveImportModel=Saglabājiet šo importa profilu (lai to atkārtoti izmantotu) ...
     ExportModelName=Eksportēšanas profila nosaukums
    -ExportModelSaved=Eksporta profils saglabāts ar nosaukumu <b>%s</b>.
    +ExportModelSaved=Eksporta profils tiek saglabāts kā <b> %s </b>.
     ExportableFields=Eksportējami lauki
     ExportedFields=Eksportēti lauki
     ImportModelName=Importēšanas profila nosaukums
    -ImportModelSaved=Importēšanas profils saglabāts ar nosaukumu <b>%s</b>.
    -DatasetToExport=Datu kopa eksportēt
    -DatasetToImport=Importēt failu datu kopas
    +ImportModelSaved=Importa profils tiek saglabāts kā <b> %s </b>.
    +DatasetToExport=Datu kopas eksports
    +DatasetToImport=Importēt failu datu kopā
     ChooseFieldsOrdersAndTitle=Izvēlieties lauku secību ...
     FieldsTitle=Lauku nosaukums
     FieldTitle=Lauka nosaukums
    -NowClickToGenerateToBuildExportFile=Tagad izvēlieties faila formātu Combo lodziņā un noklikšķiniet uz &quot;Izveidot&quot;, lai izveidotu eksporta failu ...
    +NowClickToGenerateToBuildExportFile=Tagad atlasiet faila formātu kombinētajā lodziņā un noklikšķiniet uz Izveidot, lai izveidotu eksporta failu ...
     AvailableFormats=Pieejamie formāti
     LibraryShort=Bibliotēka
     Step=Solis
    -FormatedImport=Importēšanas palīgs
    -FormatedImportDesc1=This area allows to import personalized data, using an assistant to help you in process without technical knowledge.
    -FormatedImportDesc2=First step is to choose a king of data you want to load, then file to load, then to choose which fields you want to load.
    -FormatedExport=Eksportēšanas palīgs
    -FormatedExportDesc1=This area allows to export personalized data, using an assistant to help you in process without technical knowledge.
    -FormatedExportDesc2=First step is to choose a predefined dataset, then to choose which fields you want in your result files, and which order.
    -FormatedExportDesc3=When data to export are selected, you can define output file format you want to export your data to.
    +FormatedImport=Importa palīgs
    +FormatedImportDesc1=Šis modulis ļauj atjaunināt esošos datus vai pievienot jaunus objektus datu bāzē no faila bez tehniskām zināšanām, izmantojot palīgu.
    +FormatedImportDesc2=Pirmais solis ir izvēlēties datu veidu, kuru vēlaties importēt, pēc tam avota faila formātu, pēc tam laukus, kurus vēlaties importēt.
    +FormatedExport=Eksporta palīgs
    +FormatedExportDesc1=Šie rīki ļauj personalizētus datus eksportēt, izmantojot palīgu, lai palīdzētu jums šajā procesā, nepieprasot tehniskās zināšanas.
    +FormatedExportDesc2=Pirmais solis ir izvēlēties iepriekš noteiktu datu kopu, pēc tam - kādus laukus vēlaties eksportēt un kādā kārtībā.
    +FormatedExportDesc3=Kad tiek atlasīti dati eksportēšanai, varat izvēlēties izejas faila formātu.
     Sheet=Lapa
     NoImportableData=Nav importēt datus (ne modulis ar definīcijām, kas ļauj datu importu)
    -FileSuccessfullyBuilt=File generated
    +FileSuccessfullyBuilt=Izveidots fails
     SQLUsedForExport=SQL Pieprasījums izmanto, lai veidotu eksporta failu
     LineId=Līnijas id
     LineLabel=Label of line
    @@ -50,12 +50,12 @@ LineTotalVAT=PVN summu, par līnijas
     TypeOfLineServiceOrProduct=Veids (0=produkts, 1=pakalpojums)
     FileWithDataToImport=Fails ar datiem, lai importētu
     FileToImport=Avota failu, lai importētu
    -FileMustHaveOneOfFollowingFormat=Failu, lai importētu ir jābūt vienam no šāda formāta
    -DownloadEmptyExample=Lejupielādēt piemēru tukšā avota faila
    -ChooseFormatOfFileToImport=Izvēlieties faila formātu, lai izmantotu kā importa faila formātā, noklikšķinot uz Piktogramma %s, lai to izvēlētos ...
    -ChooseFileToImport=Augšupielādēt failu, tad noklikšķiniet uz Piktogramma %s, lai izvēlētos failu kā avota importa faila ...
    +FileMustHaveOneOfFollowingFormat=Importa failam ir jābūt šādam formātam
    +DownloadEmptyExample=Lejupielādēt veidlapas failu ar lauka satura informāciju (* ir obligāti aizpildāmie lauki)
    +ChooseFormatOfFileToImport=Izvēlieties faila formātu, ko izmantot kā importa faila formātu, noklikšķinot uz %s ikonas, lai to atlasītu ...
    +ChooseFileToImport=Augšupielādējiet failu, pēc tam noklikšķiniet uz %s ikonas, lai atlasītu failu kā avota importa failu ...
     SourceFileFormat=Avota faila formāts
    -FieldsInSourceFile=Lauki avota failā
    +FieldsInSourceFile=Lauki sākotnējā failā
     FieldsInTargetDatabase=Mērķa lauki Dolibarr datu bāzē (treknrakstā = obligāti)
     Field=Lauks
     NoFields=Nav lauki
    @@ -63,63 +63,63 @@ MoveField=Pārvietot lauka kolonnas numurs %s
     ExampleOfImportFile=Importa_faila_piemers
     SaveImportProfile=Saglabāt šo importa profilu
     ErrorImportDuplicateProfil=Neizdevās saglabāt šo importa profilu ar šo nosaukumu. Līdzšinējais profils jau pastāv ar šo nosaukumu.
    -TablesTarget=Mērķtiecīga galdi
    +TablesTarget=Mērķtiecīgas tabulas
     FieldsTarget=Mērķtiecīga lauki
     FieldTarget=Mērķtiecīga lauks
    -FieldSource=Avots lauks
    +FieldSource=Avota lauks
     NbOfSourceLines=Līniju skaits avota failā
    -NowClickToTestTheImport=Pārbaudiet importa rādītājus esat definējis. Ja tie ir pareizi, noklikšķiniet uz pogas <b>&quot;%s&quot;,</b> lai palaistu simulāciju importa process (dati tiks mainīti jūsu datu bāzē, tas ir tikai simulācija uz brīdi) ...
    -RunSimulateImportFile=Uzsākt importa simulāciju
    +NowClickToTestTheImport=Pārbaudiet iestatīto importēšanas iestatījumu (pārbaudiet, vai jums ir jāizslēdz galvenes līnijas vai arī tās tiks atzīmētas kā kļūdas nākamajā simulācijā). <br> Noklikšķiniet uz pogas <b> %s </ b>, lai veiktu čeku no faila struktūras / satura un imitē importa procesu. <br> <b> Jūsu datubāzē dati netiks mainīti </ b>.
    +RunSimulateImportFile=Palaist importa simulāciju
     FieldNeedSource=Šim laukam nepieciešami dati no avota faila
     SomeMandatoryFieldHaveNoSource=Daži obligātie lauki nav avotu, no datu faila
     InformationOnSourceFile=Informācija avota failā
     InformationOnTargetTables=Informācija par mērķa laukiem
     SelectAtLeastOneField=Pārslēgt vismaz vienu avota lauku slejā jomās eksportēt
     SelectFormat=Izvēlieties šo importa failu formātu
    -RunImportFile=Uzsākt faila importu
    -NowClickToRunTheImport=Pārbaudiet rezultātu importa simulāciju. Ja viss ir ok, sākt galīgo importu.
    -DataLoadedWithId=All data will be loaded with the following import id: <b>%s</b>
    -ErrorMissingMandatoryValue=Obligātie dati ir tukši avota failu laukā <b>%s.</b>
    -TooMuchErrors=Joprojām <b>%s</b> citu avotu līnijas ar kļūdām, taču izlaide ir bijusi ierobežota.
    -TooMuchWarnings=Joprojām <b>%s</b> citu avotu līnijas ar brīdinājumiem, taču izlaide ir bijusi ierobežota.
    -EmptyLine=Tukšas līnijas (tiks izmesti)
    -CorrectErrorBeforeRunningImport=Vispirms ir labot visas kļūdas, pirms braukšanas galīgo ievešanu.
    +RunImportFile=Importēt datus
    +NowClickToRunTheImport=Pārbaudiet importa simulācijas rezultātus. Labojiet kļūdas un atkārtojiet testu. <br> Kad simulācijā nav kļūdu, jūs varat turpināt importēt datus datu bāzē.
    +DataLoadedWithId=Visi dati tiks ielādēti ar šādu importa ID: <b> %s </b>, lai iespējotu meklēšanu šajā datu kopā, ja nākotnē atklāsiet problēmas.
    +ErrorMissingMandatoryValue=Obligātie dati avota failā ir tukši laukā <b> %s </b>.
    +TooMuchErrors=Vēl ir <b> %s </b> citas avota līnijas ar kļūdām, taču izlaide ir ierobežota.
    +TooMuchWarnings=Vēl ir <b> %s </b> citas avota līnijas ar brīdinājumiem, bet izlaide ir ierobežota.
    +EmptyLine=Tukšas līnijas (tiks izmestas)
    +CorrectErrorBeforeRunningImport=Jums <b> ir </b> jāizlabo visas kļūdas <b> pirms </b> varat veikt importu.
     FileWasImported=Fails tika importēts ar numuru <b>%s.</b>
    -YouCanUseImportIdToFindRecord=You can find all imported record in your database by filtering on field <b>import_key='%s'</b>.
    +YouCanUseImportIdToFindRecord=Jūs varat atrast visus importētos ierakstus savā datubāzē, filtrējot laukā <b> import_key = '%s' </b>.
     NbOfLinesOK=Skaits līniju bez kļūdām un bez brīdinājumiem: <b>%s.</b>
     NbOfLinesImported=Skaits līniju veiksmīgi importēto: <b>%s.</b>
     DataComeFromNoWhere=Vērtību, lai ievietotu nāk no nekur avota failā.
     DataComeFromFileFieldNb=Vērtību, lai ievietotu nāk no lauka skaits <b>%s,</b> kas avota failā.
    -DataComeFromIdFoundFromRef=Vērtība, kas nāk no lauka numurs <b>%s</b> no avota fails tiks izmantoti, lai atrastu ID mātes objekta izmantot (Tātad Objet <b>%s,</b> kas ir ref. No avota failā ir pastāv uz Dolibarr).
    -DataComeFromIdFoundFromCodeId=Code that comes from field number <b>%s</b> of source file will be used to find id of parent object to use (So the code from source file must exists into dictionary <b>%s</b>). Note that if you know id, you can also use it into source file instead of code. Import should work in both cases.
    +DataComeFromIdFoundFromRef=Sākotnējā faila lauka skaitļa <b> %s </b> vērtība tiks izmantota, lai atrastu izmantotā vecā objekta ID (tādēļ objekts <b> %s </b>, kuram ir atsauces no avota faila jābūt datu bāzē).
    +DataComeFromIdFoundFromCodeId=Avota faila lauka skaitļa kods <b> %s </b> tiks izmantots, lai atrastu izmantojamā vecāka objekta ID (tādēļ vārdnīcas kodam jābūt eksemplāram <b> %s </b> ) Ņemiet vērā, ka, ja jūs zināt id, varat to izmantot arī avota failā, nevis kodu. Importam jādarbojas abos gadījumos.
     DataIsInsertedInto=Dati, kas nāk no avota fails tiks ievietota pēc lauka:
    -DataIDSourceIsInsertedInto=Mātes objekta atrasts izmantojot datus avota failā id, tiks ievietota pēc lauka:
    +DataIDSourceIsInsertedInto=Mātes objekta ID tika atrasts, izmantojot avota faila datus, tiks ievietots šādā laukā:
     DataCodeIDSourceIsInsertedInto=Mātes līnijas atrasts no koda id, tiks ievietota šādā jomā:
     SourceRequired=Datu vērtība ir obligāta
     SourceExample=Piemērs par iespējamo datu vērtības
     ExampleAnyRefFoundIntoElement=Jebkura atsauce atrasts elementu <b>%s</b>
     ExampleAnyCodeOrIdFoundIntoDictionary=Any code (or id) found into dictionary <b>%s</b>
    -CSVFormatDesc=<b>Ar komatu atdalītu vērtību</b> failu formāts (. Csv). <br> Tas ir teksta faila formāts, kur lauki ir atdalīti ar atdalītāju [%s]. Ja atdalītājs atrodas iekšpusē lauka saturu, lauks tiek noapaļota ar apaļo raksturs [%s]. Escape raksturs izvairīties apaļas raksturs ir [%s].
    -Excel95FormatDesc=<b>Excel</b> faila formāts (.xls)<br>Tas ir Excel 95 formāts (BIFF5).
    -Excel2007FormatDesc=<b>Excel</b> faila formāts (.xlsx) <br>Tas ir Excel 2007 formāts (SpreadsheetML).
    +CSVFormatDesc=<b> Kumijas atdalītas vērtības </ b> faila formāts (.csv). <br> Šis ir teksta faila formāts, kurā lauki atdala ar atdalītāju [%s]. Ja lauka saturā atrodas atdalītājs, lauku noapaļo apaļa formā [%s]. Escape raksturs, lai izvairītos no apaļa raksturs ir [%s].
    +Excel95FormatDesc=<b> Excel </ b> faila formāts (.xls) <br> Šis ir iekšējais Excel 95 formāts (BIFF5).
    +Excel2007FormatDesc=<b> Excel </ b> faila formāts (.xlsx) <br> Šis ir vietējais Excel 2007 formāts (SpreadsheetML).
     TsvFormatDesc=<b>Tab atdalītu vērtību</b> failu formāts (. TSV) <br> Tas ir teksta faila formāts, kur lauki ir atdalīti ar tabulācijas [Tab].
     ExportFieldAutomaticallyAdded=Field <b>%s</b> was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ).
    -CsvOptions=Csv opcijas
    -Separator=Atdalītājs
    -Enclosure=Iežogojums
    +CsvOptions=CSV formāta opcijas
    +Separator=Lauka atdalītājs
    +Enclosure=Virknes atdalītājs
     SpecialCode=Speciāls kods
     ExportStringFilter=%% allows replacing one or more characters in the text
     ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day<br>YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days<br> > YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days<br> < YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days
    -ExportNumericFilter=NNNNN filters by one value<br>NNNNN+NNNNN filters over a range of values<br>< NNNNN filters by lower values<br>> NNNNN filters by higher values
    -ImportFromLine=Import starting from line number
    +ExportNumericFilter=NNNNN filtrē ar vienu vērtību <br> NNNNN + NNNNN filtrus vērtību diapazonā <br> <NNNNN filtri ar zemākām vērtībām <br >> NNNNN filtri ar lielākām vērtībām
    +ImportFromLine=Importēt, sākot ar līnijas numuru
     EndAtLineNb=End at line number
    -ImportFromToLine=Import line numbers (from - to)
    +ImportFromToLine=Ierobežojuma diapazons (no - līdz), piem. izlaist galvenes līniju
     SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines
    -KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file
    -SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt
    -UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert)
    -NoUpdateAttempt=No update attempt was performed, only insert
    -ImportDataset_user_1=Users (employees or not) and properties
    +KeepEmptyToGoToEndOfFile=Saglabājiet šo lauku tukšu, lai pārietu uz faila beigām
    +SelectPrimaryColumnsForUpdateAttempt=Atlasiet kolonnu (-es), kuru izmantojat kā primāro atslēgu atjaunināšanas mēģinājumam
    +UpdateNotYetSupportedForThisImport=Šī veida importa atjaunināšana nav atbalstīta (tikai ievietot).
    +NoUpdateAttempt=Netika veikts atjaunināšanas mēģinājums, tikai ievietojiet
    +ImportDataset_user_1=Lietotāji (darbinieki vai ne) un īpašumi
     ComputedField=Aprēķinātais lauks
     ## filters
     SelectFilterFields=Ja jūs vēlaties filtrēt dažas vērtības, vienkārši ievadi vērtības šeit.
    @@ -127,7 +127,7 @@ FilteredFields=Filtrētie lauki
     FilteredFieldsValues=Cenas filtru
     FormatControlRule=Format control rule
     ## imports updates
    -KeysToUseForUpdates=Key to use for updating data
    -NbInsert=Number of inserted lines: %s
    -NbUpdate=Number of updated lines: %s
    -MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s
    +KeysToUseForUpdates=Atslēga (sleja), ko izmantot esošo datu <b> atjaunināšanai </ b>
    +NbInsert=Ievietoto līniju skaits: %s
    +NbUpdate=Atjaunināto līniju skaits: %s
    +MultipleRecordFoundWithTheseFilters=Ar šiem filtriem tika atrasti vairāki ieraksti: %s
    diff --git a/htdocs/langs/lv_LV/help.lang b/htdocs/langs/lv_LV/help.lang
    index 3d9f84dc171..573f4ba659d 100644
    --- a/htdocs/langs/lv_LV/help.lang
    +++ b/htdocs/langs/lv_LV/help.lang
    @@ -6,21 +6,18 @@ OtherSupport=Cits atbalsts
     ToSeeListOfAvailableRessources=Lai sazinātos / skatītu pieejamos resursus:
     HelpCenter=Palīdzības centrs
     DolibarrHelpCenter=Dolibarr palīdzības un atbalsta centrs
    -ToGoBackToDolibarr=Pretējā gadījumā, klikšķiniet <a href="%s">šeit, lai izmantotu Dolibarr</a>
    -TypeOfSupport=Atbalsta avots
    +ToGoBackToDolibarr=Pretējā gadījumā <a href="%s"> noklikšķiniet šeit, lai turpinātu Dolibarr lietošanu </a>.
    +TypeOfSupport=Atbalsta veids
     TypeSupportCommunauty=Kopiena (bezmaksas)
     TypeSupportCommercial=Komerciāli
     TypeOfHelp=Veids
    -NeedHelpCenter=Need help or support?
    +NeedHelpCenter=Jums vajadzīga palīdzība vai atbalsts?
     Efficiency=Efektivitāte
     TypeHelpOnly=Tikai palīdzība
     TypeHelpDev=Palīdzība + uzlabošana
    -TypeHelpDevForm=Palīdzība + uzlabošana + veidošana
    -ToGetHelpGoOnSparkAngels1=Daži uzņēmumi var nodrošināt ātru (dažkārt tūlītēju) un efektīvāku tiešsaistes atbalstu, veicot kontroli pār datoru. Šādus palīgus var atrast <b>%s</b> tīmekļa vietnē:
    -ToGetHelpGoOnSparkAngels3=Jūs varat arī doties uz sarakstu ar visiem pieejamajiem treneri Dolibarr, šajā klikšķi uz pogas
    -ToGetHelpGoOnSparkAngels2=Dažreiz nav uzņēmums pieejams brīdī, kad jūs veicat meklēšanu, tāpēc mainiet filtru, lai meklētu "visas pieejamības". Jums būs iespēja sūtīt vairāk pieprasījumu.
    -BackToHelpCenter=Pretējā gadījumā, klikšķiniet šeit, lai dotos <a href="%s">atpakaļ uz palīdzības centra mājas lapu</a> .
    -LinkToGoldMember=Jūs varat zvanīt vienu no autobusa izraudzītās Dolibarr jūsu valodā (%s), noklikšķinot uz savu logrīku (statuss un maksimālo cenu tiek atjauninātas automātiski):
    +TypeHelpDevForm=Palīdzība + attīstība + apmācība
    +BackToHelpCenter=Pretējā gadījumā <a href="%s"> atveriet palīdzības centra sākumlapu </a>.
    +LinkToGoldMember=Jūs varat piezvanīt uz vienu no Dolibarr izvēlētām instruktoru valodām (%s), noklikšķinot uz tās logrīka (statuss un maksimālā cena tiek automātiski atjaunināta):
     PossibleLanguages=Atbalstītās valodas
    -SubscribeToFoundation=Palīdzi Dolibarr projektam, piesakies fondam
    +SubscribeToFoundation=Palīdziet Dolibarr projektam, abonējiet fondu
     SeeOfficalSupport=Oficiālaiā Dolibarr palīdzība jūsu valodā: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/lv_LV/holiday.lang b/htdocs/langs/lv_LV/holiday.lang
    index 61b1aba0acf..8a4177c433b 100644
    --- a/htdocs/langs/lv_LV/holiday.lang
    +++ b/htdocs/langs/lv_LV/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=CRV
    -Holidays=Brīvdienas
    -CPTitreMenu=Brīvdienas
    +Holidays=Atstājiet
    +CPTitreMenu=Atstājiet
     MenuReportMonth=Ikmēneša paziņojums
     MenuAddCP=Jauns atvaļinājuma pieprasījums
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=Jums ir jāiespējo modulis Atvaļinājumi, lai apskatītu šo lapu.
     AddCP=Izveidot atvaļinājuma pieprasījumu
     DateDebCP=Sākuma datums
     DateFinCP=Beigu datums
    @@ -15,7 +15,7 @@ ApprovedCP=Apstiprināts
     CancelCP=Atcelts
     RefuseCP=Atteikts
     ValidatorCP=Asistents
    -ListeCP=Atvaļinājumu saraksts
    +ListeCP=Atvaļinājuma saraksts
     LeaveId=Atvaļinājuma ID
     ReviewedByCP=To apstiprinās
     UserForApprovalID=Lietotājs apstiprinājuma ID
    @@ -25,8 +25,8 @@ UserForApprovalLogin=Apstiprinājuma lietotāja pieteikšanās
     DescCP=Apraksts
     SendRequestCP=Izveidot atvaļinājuma pieprasījumu
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Atvaļinājums ir <b> %s </b> dienas.
    +MenuConfCP=Atvaļinājuma atlikums
    +SoldeCPUser=Atvaļinājumu līdzsvars ir <b> %s </b> dienas.
     ErrorEndDateCP=Jums ir jāizvēlas beigu datumu lielāks par sākuma datums.
     ErrorSQLCreateCP=SQL kļūda izveides laikā:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -51,7 +51,7 @@ StatutCP=Statuss
     TitleDeleteCP=Dzēst atvaļinājuma pieprasījumu
     ConfirmDeleteCP=Confirm the deletion of this leave request?
     ErrorCantDeleteCP=Error you don't have the right to delete this leave request.
    -CantCreateCP=You don't have the right to make leave requests.
    +CantCreateCP=Jums nav tiesību veikt atvaļinājumu pieprasījumus.
     InvalidValidatorCP=You must choose an approbator to your leave request.
     NoDateDebut=Jums ir jāizvēlas sākuma datums.
     NoDateFin=Jums ir jāizvēlas beigu datums.
    @@ -60,7 +60,7 @@ TitleValidCP=Apstipriniet atvaļinājuma pieprasījumu
     ConfirmValidCP=Vai tiešām vēlaties apstiprināt atvaļinājuma pieprasījumu?
     DateValidCP=Datums apstiprināts
     TitleToValidCP=Nosūtīt atvaļinājuma pieprasījumu
    -ConfirmToValidCP=Are you sure you want to send the leave request?
    +ConfirmToValidCP=Vai tiešām vēlaties nosūtīt atvaļinājuma pieprasījumu?
     TitleRefuseCP=Atteikties no atvaļinājuma pieprasījuma
     ConfirmRefuseCP=Vai tiešām vēlaties atteikt atvaļinājuma pieprasījumu?
     NoMotifRefuseCP=Jums ir jāizvēlas iemesls kāpēc atteikt pieprasījums.
    @@ -85,7 +85,7 @@ NewSoldeCP=Jana Bilance
     alreadyCPexist=A leave request has already been done on this period.
     FirstDayOfHoliday=Pirmā atvaļinājuma diena
     LastDayOfHoliday=Pēdēja atvaļinājuma diena
    -BoxTitleLastLeaveRequests=Latest %s modified leave requests
    +BoxTitleLastLeaveRequests=Jaunākie %s labotie atvaļinājumu pieprasījumi
     HolidaysMonthlyUpdate=Ikmēneša atjauninājums
     ManualUpdate=Manuāla aktualizēšana
     HolidaysCancelation=Atvaļinājuma pieprasījuma atcelšana
    @@ -101,8 +101,8 @@ LEAVE_SICK=Slimības lapa
     LEAVE_OTHER=Cits atvaļinājums
     LEAVE_PAID_FR=Apmaksāts atvaļinājums
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Jaunākais automātiska atvaļinājuma piešķiršanas atjaunināšana
    +MonthOfLastMonthlyUpdate=Pēdējā automātiskā atvaļinājuma piešķiršanas mēneša pēdējā mēneša laikā
     UpdateConfCPOK=Veiksmīgi atjaunināta.
     Module27130Name= Management of leave requests
     Module27130Desc= Atvaļinājumu pieprasījumu vadīšana
    @@ -112,13 +112,18 @@ NoticePeriod=Paziņojuma periods
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Zemāk ir atvaļinājuma pieprasījums kuru jāapstiprina
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=Lietotājam, kurš ir iesniedzis šo atvaļinājuma pieprasījumu, nav pietiekami daudz pieejamo dienu.
     HolidaysValidated=Apstiprinātie atvaļinājumu pieprasījumi
    -HolidaysValidatedBody=Your leave request for %s to %s has been validated.
    +HolidaysValidatedBody=Jūsu atvaļinājuma pieprasījums no %s līdz %s ir ticis apstiprināts.
     HolidaysRefused=Pieprasījums noraidīts
    -HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason :
    -HolidaysCanceled=Canceled leaved request
    -HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
    +HolidaysRefusedBody=Jūsu atvaļinājuma pieprasījums %s līdz %s tika noraidīts šāda iemesla dēļ:
    +HolidaysCanceled=Atcelts atvaļinājuma pieprasījums
    +HolidaysCanceledBody=Jūsu atvaļinājuma pieprasījums no %s līdz %s ir atcelts.
     FollowedByACounter=1: Šāda veida atvaļinājumam jāievēro skaitītājs. Skaitījtājs tiek palielināts manuāli vai automātiski, un, ja atvaļinājuma pieprasījums ir apstiprināts, skaitītājs tiek samazināts. <br> 0: neseko skaitītājs.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Iet uz <strong> Sākums - Iestatīšana - Vārdnīcas - Atvaļinājuma veids </ strong>, lai iestatītu dažādu veidu lapas.
    +HolidaySetup=Moduļa brīvdienas uzstādīšana
    +HolidaysNumberingModules=Atvaļinājuma pieprasījumu numerācijas modeļi
    +TemplatePDFHolidays=PDF veidne atvaļinājumu pieprasīšanai
    +FreeLegalTextOnHolidays=Brīvs teksts PDF
    +WatermarkOnDraftHolidayCards=Ūdenszīmes uz atvaļinājuma pieprasījumiem
    diff --git a/htdocs/langs/lv_LV/hrm.lang b/htdocs/langs/lv_LV/hrm.lang
    index 7e5dc4f2ccb..4c2f10e6664 100644
    --- a/htdocs/langs/lv_LV/hrm.lang
    +++ b/htdocs/langs/lv_LV/hrm.lang
    @@ -1,13 +1,13 @@
     # Dolibarr language file - en_US - hrm
     # Admin
    -HRM_EMAIL_EXTERNAL_SERVICE=Email to prevent HRM external service
    -Establishments=Establishments
    -Establishment=Establishment
    -NewEstablishment=New establishment
    -DeleteEstablishment=Delete establishment
    -ConfirmDeleteEstablishment=Are-you sure to delete this establishment?
    -OpenEtablishment=Open establishment
    -CloseEtablishment=Close establishment
    +HRM_EMAIL_EXTERNAL_SERVICE=E-pasts, lai novērstu HRM ārējo pakalpojumu
    +Establishments=Iestādes
    +Establishment=Izveide
    +NewEstablishment=Jauns uzņēmums
    +DeleteEstablishment=Dzēst uzņēmumu
    +ConfirmDeleteEstablishment=Vai tiešām vēlaties dzēst šo uzņēmumu?
    +OpenEtablishment=Atvērts uzņēmums
    +CloseEtablishment=Aizvērt uzņēmumu
     # Dictionary
     DictionaryDepartment=HRM - Department list
     DictionaryFunction=HRM - Function list
    diff --git a/htdocs/langs/lv_LV/install.lang b/htdocs/langs/lv_LV/install.lang
    index 23a8e5d909f..8e3851d9194 100644
    --- a/htdocs/langs/lv_LV/install.lang
    +++ b/htdocs/langs/lv_LV/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Sekojiet instrukcijām soli pa solim.
     MiscellaneousChecks=Priekšnoteikumu pārbaude
     ConfFileExists=Konfigurācijas fails <b>%s</b> eksistē.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Konfigurācijas fails <b>%s</b> nav un nevar tikt izveidots!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Konfigurācijas fails <b> %s </b> nepastāv un to nevarēja izveidot!
     ConfFileCouldBeCreated=Konfigurācijas failu <b>%s</b> var izveidot.
    -ConfFileIsNotWritable=Konfigurācijas failam <b>%s</b> nav rakstīšanas tiesības. Pārbaudiet atļaujas. Par pirmo instalēt, jūsu tīmekļa serveris ir jāpiešķir, lai varētu rakstīt šajā failā laikā konfigurācijas process ("chmod 666", piemēram, uz kā OS UNIX).
    +ConfFileIsNotWritable=Konfigurācijas fails <b> %s </ b> nav rakstāms. Pārbaudīt atļaujas. Pirmajai instalēšanai jūsu tīmekļa serverim jāspēj rakstīt šajā failā konfigurācijas procesa laikā ("chmod 666", piemēram, operētājsistēmā Unix, piemēram).
     ConfFileIsWritable=Konfigurācijas failā <b>%s</b> var ierakstīt.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Pārlādē visu informāciju no konfigurācijas faila.
    +ConfFileReload=Pārsūtot parametrus no konfigurācijas faila.
     PHPSupportSessions=PHP atbalsta sesijas.
     PHPSupportPOSTGETOk=PHP atbalsta mainīgos POST un GET.
    -PHPSupportPOSTGETKo=Iespējams, ka jūsu PHP neatbalsta mainīgos POST un / vai GET. Pārbaudiet parametrus <b>variables_order</b> failā php.ini.
    -PHPSupportGD=PHP atbalsta GD grafiskās funkcijas.
    -PHPSupportCurl=Šis PHP atbalsts Curl.
    -PHPSupportUTF8=PHP atbalsta UTF8 funkcijas.
    +PHPSupportPOSTGETKo=Iespējams, ka jūsu PHP iestatīšana neatbalsta mainīgos POST un / vai GET. Pārbaudiet parametru <b> variables_order </ b> php.ini.
    +PHPSupportGD=Šis PHP atbalsta GD grafiskās funkcijas.
    +PHPSupportCurl=Šis PHP atbalsta Curl.
    +PHPSupportUTF8=Šis PHP atbalsta UTF8 funkcijas.
     PHPMemoryOK=Jūsu PHP maksimālā sesijas atmiņa ir iestatīts uz <b>%s.</b> Tas ir pietiekami.
    -PHPMemoryTooLow=Jūsu PHP max sesijas atmiņa ir iestatīts uz <b>%s</b> baitu. Tas būtu pārāk mazs. Mainiet savu <b>php.ini</b> lai uzstādītu <b>memory_limit</b> parametrs vismaz <b>%s</b> baitos.
    -Recheck=Klikšķiniet šeit, lai vairāk izceltu testu
    -ErrorPHPDoesNotSupportSessions=PHP instalācija neatbalsta sesijas. Šī funkcija ir nepieciešama lai Dolibarr strādātu. Pārbaudiet savus PHP iestatījumus.
    -ErrorPHPDoesNotSupportGD=PHP instalācija neatbalsta grafisko funkciju GD. Nebūs pieejami grafiki.
    +PHPMemoryTooLow=Jūsu PHP max sesijas atmiņa ir iestatīta uz <b> %s </ b> baitiem. Tas ir pārāk zems. Mainiet <b> php.ini </ b>, lai iestatītu <b> memory_limit </ b> parametru vismaz <b> %s </ b> baitiem.
    +Recheck=Noklikšķiniet šeit, lai iegūtu sīkāku pārbaudi
    +ErrorPHPDoesNotSupportSessions=Jūsu PHP instalācija neatbalsta sesijas. Šī funkcija ir nepieciešama, lai Dolibarr darbotos. Pārbaudiet sesiju direktorijas PHP iestatījumus un atļaujas.
    +ErrorPHPDoesNotSupportGD=Jūsu PHP instalācija neatbalsta GD grafiskās funkcijas. Nav neviena grafika.
     ErrorPHPDoesNotSupportCurl=Jūsu PHP instalācija neatbalsta Curl.
    -ErrorPHPDoesNotSupportUTF8=PHP instalācija neatbalsta UTF8 funkciju. Dolibarr nevar strādāt pareizi. Atrisiniet šo pirms instalējat Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Jūsu PHP instalācija neatbalsta UTF8 funkcijas. Dolibarr nevar darboties pareizi. Atrisiniet to pirms Dolibarr instalēšanas.
     ErrorDirDoesNotExists=Katalogs %s neeksistē.
    -ErrorGoBackAndCorrectParameters=Atgriezieties un labojiet nepareizos parametrus.
    +ErrorGoBackAndCorrectParameters=Atgriezieties un pārbaudiet / labojiet parametrus.
     ErrorWrongValueForParameter=Iespējams, esat ievadījis nepareizu vērtību parametrā '%s'.
     ErrorFailedToCreateDatabase=Neizdevās izveidot datubāzi '%s'.
     ErrorFailedToConnectToDatabase=Neizdevās izveidot savienojumu ar datu bāzi '%s'.
     ErrorDatabaseVersionTooLow=Datu bāzes versija (%s) pārāk veca. Versija %s vai augstāka ir nepieciešama.
     ErrorPHPVersionTooLow=PHP versija ir pārāk veca. Versija %s ir nepieciešama.
    -ErrorConnectedButDatabaseNotFound=Savienojums ar serveri sekmīgi pabeigts, bet datubāze '%s' nav atrasta.
    +ErrorConnectedButDatabaseNotFound=Savienojums ar serveri ir veiksmīgs, bet datubāze '%s' nav atrasta.
     ErrorDatabaseAlreadyExists=Datubāze '%s' jau eksistē.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Ja datu bāzē neeksistē, dodieties atpakaļ un pārbaudiet opciju "Izveidot datu bāzi".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=Ja datubāze nepastāv, atveriet un atzīmējiet opciju "Izveidot datubāzi".
     IfDatabaseExistsGoBackAndCheckCreate=Ja datu bāze jau pastāv, dodieties atpakaļ un izņemiet ķeksi "Izveidot datu bāzi".
    -WarningBrowserTooOld=Pārāk vecs pārlūkprogrammas versija. Pārlūkprogrammu Firefox, Chrome vai Opera jaunāko versiju uzstādīšana  ir ļoti ieteicama.
    +WarningBrowserTooOld=Pārlūkprogrammas versija ir pārāk veca. Ir ļoti ieteicams jaunināt pārlūku uz jaunāko Firefox, Chrome vai Opera versiju.
     PHPVersion=PHP versija
     License=Izmantojot licenci
     ConfigurationFile=Konfigurācijas fails
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr datubāze
     DatabaseType=Datubāzes tips
     DriverType=Draivera veids
     Server=Serveris
    -ServerAddressDescription=Nosaukums vai IP adrese datu bāzes serverim - parasti 'localhost', ja datu bāzes serveris ir izvietots uz tā paša servera uz kura atrodas web serveris
    +ServerAddressDescription=Datu bāzes servera nosaukums vai ip adrese. Parasti "localhost", ja datu bāzes serveris ir izvietots tajā pašā serverī kā tīmekļa serveris.
     ServerPortDescription=Datu bāzes servera ports. Atstājiet tukšu, ja nav zināms.
     DatabaseServer=Datubāzes serveris
     DatabaseName=Datubāzes nosaukums
    -DatabasePrefix=Datubāzes tabulu prefikss
    -AdminLogin=Dolibarr datu bāzes īpašnieka lietotājvārds
    -PasswordAgain=Atkārtot paroli otrreiz
    +DatabasePrefix=Datubāzes galda prefikss
    +DatabasePrefixDescription=Datubāzes galda prefikss. Ja tukšs, noklusējums ir llx_.
    +AdminLogin=Dolibarr datu bāzes īpašnieka lietotāja konts.
    +PasswordAgain=Atkārtot paroles apstiprināšanu
     AdminPassword=Parole Dolibarr datu bāzes īpašniekam.
     CreateDatabase=Izveidot datubāzi
    -CreateUser=Izveidojiet īpašnieku vai piešķiriet viņam atļauju datu bāzē
    +CreateUser=Izveidojiet lietotāja kontu vai piešķiriet lietotāja konta atļauju Dolibarr datubāzē
     DatabaseSuperUserAccess=Datu bāzes serveris - superlietotājs piekļuve
    -CheckToCreateDatabase=Ieķeksējiet, ja datu bāze neeksistē, un tā ir jāizveido. <br> Tādā gadījumā, jums ir jāaizpilda pieteikšanās / paroli SuperUser kontā šīs lapas apakšā.
    -CheckToCreateUser=Atzīmējiet izvēles rūtiņu, ja datubāzes īpašnieks neeksistē un tas ir jāizveido vai ja tas ir pieejams, bet datu bāze neeksistē un atļaujas ir jāpiešķir. <br> Šajā gadījumā jums ir jāizvēlas tā lietotājvārds un parole, kā arī jāaizpilda lietotājvārds / parole Lietotāja kontu šīs lapas apakšdaļā. Ja šī rūtiņa nav atzīmēta, jābūt īpašnieka datu bāzei un tās parolēm.
    -DatabaseRootLoginDescription=Lietotāja vārds, kas var izveidot datubāzes vai jaunos lietotājus. Obligāti jāaizpilda, ja datubāze vai tās īpašnieks jau neeksistē.
    -KeepEmptyIfNoPassword=Atstājiet tukšu, ja lietotājam nav vajadzīga parole (izvairieties no bezparoles lietotāja vārda)
    -SaveConfigurationFile=Saglabā vērtības
    +CheckToCreateDatabase=Atzīmējiet izvēles rūtiņu, ja datubāze vēl neeksistē, un tā ir jāizveido. <br> Šajā gadījumā arī šīs lapas apakšdaļā ir jāaizpilda lietotāja konta lietotājvārds un parole.
    +CheckToCreateUser=Atzīmējiet izvēles rūtiņu, ja: <br> datu bāzes lietotāja kontā vēl nav, un tā ir jāveido vai arī, ja lietotāja konts pastāv, bet datubāze nepastāv un atļaujas ir jāpiešķir. <br> Šajā gadījumā jums jāievada lietotāja konts un parole, kā arī <b> arī </ b> administratora konta nosaukums un parole šīs lapas apakšdaļā. Ja šī rūtiņa nav atzīmēta, datu bāzes īpašniekam un parolei jau ir jābūt.
    +DatabaseRootLoginDescription=Superuser konta nosaukums (lai izveidotu jaunas datubāzes vai jaunus lietotājus), obligāti, ja datubāze vai tā īpašnieks vēl nav izveidota.
    +KeepEmptyIfNoPassword=Atstājiet tukšu, ja lietotājam nav paroles (neiesaka)
    +SaveConfigurationFile=Saglabāt parametrus
     ServerConnection=Servera savienojums
     DatabaseCreation=Datubāzes izveidošana
     CreateDatabaseObjects=Datu bāzes objektu izveide
    @@ -71,8 +72,8 @@ CreateOtherKeysForTable=Izveidot ārvalstu atslēgas un indeksi attiecībā uz g
     OtherKeysCreation=Atslēgu un indeksu veidošana
     FunctionsCreation=Funkciju izveide
     AdminAccountCreation=Administratora pieteikšanās izveide
    -PleaseTypePassword=Lūdzu, ievadiet paroli, tukšas paroles ir aizliegtas!
    -PleaseTypeALogin=Lūdzu ierakstiet lietotāja vārdu!
    +PleaseTypePassword=Lūdzu, ierakstiet paroli, tukšas paroles nav atļautas!
    +PleaseTypeALogin=Lūdzu, ierakstiet pieteikšanos!
     PasswordsMismatch=Paroles atšķiras, lūdzu, mēģiniet vēlreiz!
     SetupEnd=Beigas iestatīšanas
     SystemIsInstalled=Instalācija ir pabeigta.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Jums ir jākonfigurēt Dolibarr, lai atbilstu Jūsu va
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Iet uz Dolibarr
     GoToSetupArea=Iet uz Dolibarr (iestatīšanas apgabalu)
    -MigrationNotFinished=Jūsu datu bāzes versija nav pilnībā atjaunināta, tāpēc jums ir par jaunu jāpalaiž atjaunināšanas process.
    +MigrationNotFinished=Datubāzes versija nav pilnībā atjaunināta: atkal palaidiet jaunināšanas procesu.
     GoToUpgradePage=Iet uz atjaunošanas lapu atkal
     WithNoSlashAtTheEnd=Bez slīpsvītras "/" beigās
    -DirectoryRecommendation=Ieteicams izmantot mapi ārpus mājas lapas failu direktorijas.
    +DirectoryRecommendation=Ieteicams izmantot direktoriju ārpus tīmekļa lapām.
     LoginAlreadyExists=Jau eksistē
     DolibarrAdminLogin=Dolibarr administratora lietotāja vārds
    -AdminLoginAlreadyExists=Dolibarr administratora konts '<b>%s</b>' jau eksistē. Dodieties atpakaļ, ja jūs vēlaties izveidot vēl vienu kontu.
    +AdminLoginAlreadyExists=Dolibarr administratora konts '<b> %s </ b>' jau pastāv. Atgriezieties, ja vēlaties izveidot vēl vienu.
     FailedToCreateAdminLogin=Neizdevās izveidot Dolibarr administratora kontu.
    -WarningRemoveInstallDir=Brīdinājums, drošības apsvērumu dēļ pēc instalēšanas vai atjaunināšanas beigām, lai izvairītos no instalēšanas rīku atkārtotas izmantošanas, Jums jāpievieno failu ar nosaukumu <b>install.lock</b> Dolibarr dokumentu direktorijā, lai novērstu ļaunprātīgu instalācijas izmantošanu.
    -FunctionNotAvailableInThisPHP=Nav pieejams šajā PHP versijā
    +WarningRemoveInstallDir=Drošības apsvērumu dēļ, instalēšanas vai jaunināšanas pabeigšanas brīdī drošības nolūkos Dolibarr dokumentu direktorijā jāievieto fails <b> install.lock </ b>, lai novērstu nejaušu / ļaunprātīgu instalēšanas rīku lietošanu.
    +FunctionNotAvailableInThisPHP=Nav pieejams šajā PHP
     ChoosedMigrateScript=Izvēlieties migrācijas skriptu
     DataMigration=Datubāzes migrācijas (dati)
     DatabaseMigration=Datubāzes migrācija (struktūra + daži dati)
     ProcessMigrateScript=Skripts darbojas
     ChooseYourSetupMode=Izvēlies savu instalācijas režīmu un noklikšķiniet uz "Sākt" ...
     FreshInstall=Svaiga instalēšana
    -FreshInstallDesc=Izmantojiet šo režīmu, ja pirmo reizi instalējat. Ja nē, šis režīms var izlabot nepilnīgu iepriekšējo instalāciju. Ja jūs vēlaties atjaunot versiju, izvēlieties "Atjaunošanas" režīmu.
    +FreshInstallDesc=Izmantojiet šo režīmu, ja šī ir jūsu pirmā instalācija. Ja nē, šis režīms var novērst nepilnīgu iepriekšējo instalēšanu. Ja vēlaties atjaunināt savu versiju, izvēlieties "Upgrade" režīmu.
     Upgrade=Atjaunot
     UpgradeDesc=Izmantojiet šo režīmu, ja vēlaties atjaunot veco Dolibarr versiju uz jaunāku. Šis process atjauno datu bāzi un failus.
     Start=Sākt
     InstallNotAllowed=Instalēšana nav atļauta ar <b>conf.php</b> tiesībām
     YouMustCreateWithPermission=Jums ir jāizveido fails %s un jāpiešķir rakstīšanas atļaujas tam, lai web serveris instalēšanas laikā varētu to izmantot.
    -CorrectProblemAndReloadPage=Lūdzu atrisiniet problēmu un nospiediet F5, lai pārlādētu lapu.
    +CorrectProblemAndReloadPage=Lūdzu, novērsiet problēmu un nospiediet F5, lai pārlādētu lapu.
     AlreadyDone=Jau pārvietoti
     DatabaseVersion=Datubāzes versija
     ServerVersion=Datubāzes servera versija
     YouMustCreateItAndAllowServerToWrite=Jums ir jāizveido šo direktoriju un jāļauj web serverim tajā rakstīt.
     DBSortingCollation=Rakstzīmju šķirošanas secība
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Jūs lūdzat, lai izveidotu datu bāzi <b>%s,</b> bet par to, Dolibarr ir nepieciešams, lai izveidotu savienojumu ar serveri <b>%s</b> ar super lietotāja <b>%s</b> atļaujas.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Jūs lūdzat, lai izveidotu datu bāzi pieteikšanās <b>%s,</b> bet par to, Dolibarr ir nepieciešams, lai izveidotu savienojumu ar serveri <b>%s</b> ar super lietotāja <b>%s</b> atļaujas.
    -BecauseConnectionFailedParametersMayBeWrong=Kā savienojums neizdevās, uzņēmēja vai super lietotāju parametri ir nepareizi.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=Jūs izvēlējāties izveidot datubāzi <b> %s </ b>, bet šim nolūkam Dolibarr ir nepieciešams savienojums ar serveri <b> %s </ b> ar super lietotāju <b> %s </ b> atļaujām.
    +YouAskLoginCreationSoDolibarrNeedToConnect=Jūs izvēlējāties izveidot datubāzes lietotāju <b> %s </ b>, bet šim nolūkam Dolibarr ir nepieciešams savienojums ar serveri <b> %s </ b> ar super lietotāju <b> %s </ b> atļaujām.
    +BecauseConnectionFailedParametersMayBeWrong=Datubāzes savienojums neizdevās: uzņēmēja vai super lietotāja parametriem jābūt nepareiziem.
     OrphelinsPaymentsDetectedByMethod=Bāreņi maksājums atklāj metode %s
     RemoveItManuallyAndPressF5ToContinue=Noņemiet to manuāli un nospiediet F5, lai turpinātu.
     FieldRenamed=Lauks pārdēvēts
    -IfLoginDoesNotExistsCheckCreateUser=Ja lietotājs neeksistē, jums ir jāizvēlas opciju "Izveidot lietotāju"
    -ErrorConnection=Server "<b>%s</b>", datu bāzes nosaukums "<b>%s</b>" login "<b>%s</b>", vai datu bāzes parole var būt nepareizi vai PHP klienta versijas var būt pārāk vecs, salīdzinot ar bāzes versiju.
    +IfLoginDoesNotExistsCheckCreateUser=Ja lietotājs vēl neeksistē, jums jāpārbauda opcija "Izveidot lietotāju"
    +ErrorConnection=Serveris "<b> %s </ b>", datubāzes nosaukums "<b> %s </ b>", login "<b> %s </ b>" vai datu bāzes parole var būt nepareiza vai arī PHP klienta versija salīdzinot ar datubāzes versiju.
     InstallChoiceRecommanded=Ieteicams izvēlēties, lai instalētu versiju <b>%s</b> no jūsu pašreizējā versijā <b>%s</b>
     InstallChoiceSuggested=<b>Instalācijas sistēmas izvēle.</b>
    -MigrateIsDoneStepByStep=Mērķtiecīga versija (%s) ir plaisa vairākas versijas, tāpēc instalēt vednis nāks atpakaļ ieteikt nākamo migrāciju, kad tas viens būs pabeigts.
    -CheckThatDatabasenameIsCorrect=Pārbaudiet, ka datubāzes nosaukums <b>"%s"</b> ir pareizs.
    +MigrateIsDoneStepByStep=Mērķa versijai (%s) ir vairākas versijas. Instalēšanas vednis atgriezīsies, lai ierosinātu turpmāku migrāciju, kad tas būs pabeigts.
    +CheckThatDatabasenameIsCorrect=Pārbaudiet, vai datubāzes nosaukums "<b> %s </b>" ir pareizs.
     IfAlreadyExistsCheckOption=Ja šis vārds ir pareizs un ka datu bāze neeksistē vēl, jums ir pārbaudīt opciju "Izveidot datu bāzi".
     OpenBaseDir=PHP openbasedir parametrs
    -YouAskToCreateDatabaseSoRootRequired=Jūs pārbauda kaste "Izveidot datu bāzi". Lai to izdarītu, jums ir nepieciešams, lai nodrošinātu login / paroles no superlietotājs (apakšējā formas).
    -YouAskToCreateDatabaseUserSoRootRequired=Jūs pārbauda kaste "Izveidot datu bāzes lietotāju". Lai to izdarītu, jums ir nepieciešams, lai nodrošinātu login / paroles no superlietotājs (apakšējā formas).
    -NextStepMightLastALongTime=Pašreizējā posms var ilgt vairākas minūtes. Lūdzu uzgaidiet, kamēr nākamais ekrāns tiek parādīts, lai varētu turpināt.
    +YouAskToCreateDatabaseSoRootRequired=Jūs atzīmējāt lodziņu "Izveidot datu bāzi". Lai to izdarītu, jums ir jāuzrāda administratora lietotājvārds / parole (veidlapas apakšdaļa).
    +YouAskToCreateDatabaseUserSoRootRequired=Jūs atzīmējāt lodziņu "Izveidot datu bāzes īpašnieku". Lai to izdarītu, jums ir jāuzrāda administratora lietotājvārds / parole (veidlapas apakšdaļa).
    +NextStepMightLastALongTime=Pašreizējais solis var aizņemt vairākas minūtes. Lūdzu, uzgaidiet, līdz nākamais ekrāns tiek parādīts pilnīgi pirms turpināšanas.
     MigrationCustomerOrderShipping=Migrēt piegāde par klientu pasūtījumu uzglabāšanai
     MigrationShippingDelivery=Upgrade uzglabāšanu kuģniecības
     MigrationShippingDelivery2=Upgrade uzglabāšanu 2 kuģniecības
     MigrationFinished=Migrācija pabeigta
    -LastStepDesc=<strong>Pēdējais solis:</strong> Norādīt pieteikšanās lietotāja vārdu un paroli, kuru Jūs plānojat izmantot, lai izveidotu savienojumu ar programmu. Nepalaidiet garām šo, jo šis konts varēs administrēt visus pārējos.
    +LastStepDesc=<strong> Pēdējais solis </ strong>: šeit norādiet pieteikšanos un paroli, kuru vēlaties izmantot, lai izveidotu savienojumu ar Dolibarr. <b> Nepalaidiet to, jo tas ir galvenais konts, lai pārvaldītu visus pārējos / papildu lietotāju kontus. </ b>
     ActivateModule=Aktivizēt moduli %s
     ShowEditTechnicalParameters=Noklikšķiniet šeit, lai parādītu / rediģēt papildu parametrus (ekspertu režīmā)
    -WarningUpgrade=Brīdinājums:\nVai vispirms izmantojāt datu bāzi?\nTas ir ļoti ieteicams: piemēram, datu bāzu sistēmu (piemēram, mysql versijas 5.5.40 / 41/42/43) dēļ dažu datu vai tabulu dēļ var tikt zaudēti daži dati vai tabulas, tādēļ ir ļoti ieteicams izveidot pabeigtu datu bāzē pirms migrācijas sākšanas.\n\nNoklikšķiniet uz OK, lai sāktu migrācijas procesu ...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=Jūs izmantojat Dolibarr iestatīšanas vedni no DoliWamp, tāpēc vērtības šeit jau ir optimizētas. Mainiet tikai tad, ja jūs zināt, ko darāt.
    -KeepDefaultValuesDeb=Jūs izmantojat Dolibarr iestatīšanas vedni no Linux paketi (Ubuntu, Debian, Fedora ...), tāpēc vērtības ierosinātās šeit jau ir optimizēta. Tikai datu bāzes īpašnieks, lai izveidotu paroli jāpabeidz. Mainītu citus parametrus tikai tad, ja jūs zināt, ko jūs darāt.
    -KeepDefaultValuesMamp=Jūs izmantojat Dolibarr iestatīšanas vedni no DoliMamp, tāpēc vērtības ierosinātās šeit jau ir optimizēta. Mainīt tikai tad, ja jūs zināt, ko jūs darāt.
    -KeepDefaultValuesProxmox=Jūs izmantojat Dolibarr iestatīšanas vedni no Proxmox virtuālās ierīces, tāpēc vērtības ierosinātās šeit jau ir optimizēta. Mainīt tikai tad, ja jūs zināt, ko jūs darāt.
    -UpgradeExternalModule=Izpildiet īpašu ārējo moduļu jaunināšanas procesu
    +WarningUpgrade=Brīdinājums:\nVai vispirms izmantojāt datu bāzi?\nTas ir ļoti ieteicams. Šajā procesā var būt iespējama datu zudums (piemēram, kļūdas mysql versijā 5.5.40 / 41/42/43), tāpēc pirms migrēšanas sākuma ir svarīgi veikt pilnīgu datplūsmas noņemšanu.\n\nNoklikšķiniet uz OK, lai sāktu migrācijas procesu ...
    +ErrorDatabaseVersionForbiddenForMigration=Jūsu datubāzes versija ir %s. Tam ir kritiska kļūda, kas var radīt datu zudumu, ja veicat strukturālas izmaiņas jūsu datubāzē, piemēram, kā to pieprasa migrācijas process. Viņa iemesla dēļ migrācija netiks atļauta, kamēr jūs jaunināt savu datubāzi uz slāņa (ielīmētas) versiju (zināmu buggy versiju saraksts: %s)
    +KeepDefaultValuesWamp=Jūs izmantojāt Dolibarr iestatīšanas vedni no DoliWamp, tādēļ šeit piedāvātās vērtības jau ir optimizētas. Mainiet tos tikai tad, ja zināt, ko jūs darāt.
    +KeepDefaultValuesDeb=Jūs izmantojāt Dolibarr iestatīšanas vedni no Linux paketes (Ubuntu, Debian, Fedora ...), tāpēc šeit piedāvātās vērtības jau ir optimizētas. Jāievada tikai datu bāzes īpašnieka izveidotā parole. Mainiet citus parametrus tikai tad, ja zināt, ko jūs darāt.
    +KeepDefaultValuesMamp=Jūs izmantojāt Dolibarr iestatīšanas vedni no DoliMamp, tāpēc šeit piedāvātās vērtības jau ir optimizētas. Mainiet tos tikai tad, ja zināt, ko jūs darāt.
    +KeepDefaultValuesProxmox=Jūs izmantojāt Dolbyarr iestatīšanas vedni no Proxmox virtuālās ierīces, tāpēc šeit piedāvātās vērtības jau ir optimizētas. Mainiet tos tikai tad, ja zināt, ko jūs darāt.
    +UpgradeExternalModule=Darbiniet ārējo moduļa ārējo jaunināšanas procesu
     SetAtLeastOneOptionAsUrlParameter=Iestatiet vismaz vienu opciju kā parametru URL. Piemēram: "... repair.php? Standard = apstiprināts"
     NothingToDelete=Nav ko tīrīt / dzēst
     NothingToDo=Nav ko darīt
    @@ -153,7 +154,7 @@ MigrationInvoice=Klienta rēķinu datu migrācija
     MigrationContract=Datu migrācija līgumiem
     MigrationSuccessfullUpdate=Atjaunošana veiksmīga
     MigrationUpdateFailed=Neizdevās atjaunināšanas process
    -MigrationRelationshipTables=Datu migrācija uz attiecībām tabulām (%s)
    +MigrationRelationshipTables=Datu migrācija uz attiecīgām tabulām (%s)
     MigrationPaymentsUpdate=Maksājumu datu korekcija
     MigrationPaymentsNumberToUpdate=%s maksājums (-iem), lai atjauninātu
     MigrationProcessPaymentUpdate=Atjaunināt maksājumu(-us) %s
    @@ -162,15 +163,15 @@ MigrationPaymentsNothingUpdatable=Ne vairāk maksājumus, kas var tikt izlabotas
     MigrationContractsUpdate=Līgumu datu korekcija
     MigrationContractsNumberToUpdate=%s līgumu (-iem), lai atjauninātu
     MigrationContractsLineCreation=Izveidot līgumu līniju līguma ref %s
    -MigrationContractsNothingToUpdate=Nav daudz lietas, kas darīt
    -MigrationContractsFieldDontExist=Lauks fk_facture neeksistē vairs. Nav nekas ko darīt.
    +MigrationContractsNothingToUpdate=Nav daudz lietu ko darīt
    +MigrationContractsFieldDontExist=Lauks fk_facture vairs nepastāv. Nav ko darīt.
     MigrationContractsEmptyDatesUpdate=Līgums tukšs datums korekcija
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Veicot veiksmīgu līguma tukšu datuma korekciju
     MigrationContractsEmptyDatesNothingToUpdate=Nav līguma tukša diena, lai labotu
     MigrationContractsEmptyCreationDatesNothingToUpdate=Nav līguma izveides datums, lai labotu
     MigrationContractsInvalidDatesUpdate=Bad valutēšanas datums līgums korekcija
     MigrationContractsInvalidDateFix=Pareizs līgums %s (līguma datumu = %s, sākot izsniegšanas datumu min = %s)
    -MigrationContractsInvalidDatesNumber=%s līgumi modificēts
    +MigrationContractsInvalidDatesNumber=%s līgumi laboti
     MigrationContractsInvalidDatesNothingToUpdate=Nē dienu ar sliktu vērtību, lai labotu
     MigrationContractsIncoherentCreationDateUpdate=Bad vērtība līguma izveides datums korekcija
     MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done successfully
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Piegādes atjaunināšana
     MigrationStockDetail=Atjaunināt noliktavas produktu vērtību
     MigrationMenusDetail=Atjaunināt dinamisks izvēlnes tabulas
     MigrationDeliveryAddress=Atjaunināt piegādes adresi sūtījumiem
    -MigrationProjectTaskActors=Datu migrācija uz llx_projet_task_actors galda
    +MigrationProjectTaskActors=Datu migrācija tabulai llx_projet_task_actors
     MigrationProjectUserResp=Datu migrācija jomā fk_user_resp no llx_projet lai llx_element_contact
     MigrationProjectTaskTime=Atjaunināšanas laiks sekundēs
     MigrationActioncommElement=Atjaunināt informāciju par pasākumiem
     MigrationPaymentMode=Datu migrācija uz maksājumu režīmā
     MigrationCategorieAssociation=Kategoriju migrācija
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Notikumu migrēšana, lai pievienotu notikuma kontaktu nodalīšanas tabulā
    +MigrationEvents=Notikumu migrācija, lai notikuma īpašnieku pievienotu uzdevumu tabulai
    +MigrationEventsContact=Notikumu migrācija, lai notikuma kontaktu pievienotu uzdevumu tabulai
     MigrationRemiseEntity=Atjauniniet llx_societe_remise objekta lauka vērtību
     MigrationRemiseExceptEntity=Atjauniniet llx_societe_remise_except objekta lauka vērtību
     MigrationUserRightsEntity=Atjauniniet llx_user_rights objekta lauka vērtību
     MigrationUserGroupRightsEntity=Atjauniniet llx_usergroup_rights objekta lauka vērtību
    +MigrationUserPhotoPath=Lietotāju fotoattēlu migrēšana
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Atjaunot moduli BlockedLog par v7 algoritmu
    -ShowNotAvailableOptions=Rādīt nepieejamās iespējas
    +ShowNotAvailableOptions=Parādīt nepieejamās iespējas
     HideNotAvailableOptions=Slēpt nepieejamās iespējas
    -ErrorFoundDuringMigration=Migrēšanas procesa laikā tika ziņots par kļūdu, tāpēc nākamais solis nav pieejams. Lai ignorētu kļūdas, varat <a href="%s"> noklikšķināt šeit </a>, taču lietojumprogramma vai dažas funkcijas, iespējams, nedarbosies pareizi, līdz tās nav fiksētas.
    -YouTryInstallDisabledByDirLock=Lietojumprogramma mēģina uzlabot versiju, bet instalēšanas / jaunināšanas lapas ir atspējotas drošības apsvērumu dēļ (katalogs tiek pārdēvēts ar .lock sufiksu). <br>
    -YouTryInstallDisabledByFileLock=Lietojumprogramma mēģina uzlabot versiju, bet lapu instalēšana / pilnveidošana lapas drošības apsvērumu dēļ ir atspējotas (ar bloķēšanas failu <strong> install.lock </ strong> iekļauta Dolibarr dokumentu direktorijā). <br>
    +ErrorFoundDuringMigration=Migrēšanas laikā tika ziņots par kļūdu (-ēm), tāpēc nākamais solis nav pieejams. Lai ignorētu kļūdas, varat <a href="%s"> noklikšķināt šeit </a>, bet lietojumprogramma vai dažas funkcijas var nedarboties pareizi, līdz kļūdas nav atrisinātas.
    +YouTryInstallDisabledByDirLock=Pieteikums mēģināja pašupjaunināt, bet instalēšanas / jaunināšanas lapas tika atspējotas drošībai (direktorija nosaukums tika pārdēvēts ar .lock sufiksu). <br>
    +YouTryInstallDisabledByFileLock=Lietojumprogramma mēģināja pašatjaunināties, bet instalēšanas/atjaunināšanas lapas tika bloķētas drošībai (ar bloķēšanas failu <strong>install.lock</strong> Dolibarr dokumentu direktorijā). <br>
     ClickHereToGoToApp=Noklikšķiniet šeit, lai pārietu uz savu pieteikumu
    -ClickOnLinkOrRemoveManualy=Noklikšķiniet uz šādas saites un, ja jūs vienmēr sasniedzat šo lapu, jums manuāli jāinstalē faila installock
    +ClickOnLinkOrRemoveManualy=Noklikšķiniet uz šīs saites. Ja jūs vienmēr redzat šo pašu lapu, dokumenta direktorijā ir jāizņem / jānomaina faila instal.lock.
    diff --git a/htdocs/langs/lv_LV/interventions.lang b/htdocs/langs/lv_LV/interventions.lang
    index aa12224039b..c550389bf18 100644
    --- a/htdocs/langs/lv_LV/interventions.lang
    +++ b/htdocs/langs/lv_LV/interventions.lang
    @@ -3,29 +3,30 @@ Intervention=Iejaukšanās
     Interventions=Iejaukšanās
     InterventionCard=Iejaukšanās kartiņa
     NewIntervention=Jauna iejaukšanās
    -AddIntervention=Create intervention
    +AddIntervention=Izveidojiet iejaukšanos
    +ChangeIntoRepeatableIntervention=Mainīt uz atkārtotu iejaukšanos
     ListOfInterventions=Iejaukšanās saraksts
     ActionsOnFicheInter=Pasākumi attiecībā uz intervenci
    -LastInterventions=Latest %s interventions
    +LastInterventions=Jaunākās %s iejaukšanās
     AllInterventions=Visas iejaukšanās
     CreateDraftIntervention=Izveidot projektu
     InterventionContact=Intervences kontakts
    -DeleteIntervention=Dzēst iejaukšanās
    +DeleteIntervention=Dzēst iejaukšanos
     ValidateIntervention=Apstiprināt iejaukšanās
     ModifyIntervention=Modificēt iejaukšanās
     DeleteInterventionLine=Dzēst intervences līnija
     CloneIntervention=Klonēt iejaukšanās
    -ConfirmDeleteIntervention=Are you sure you want to delete this intervention?
    -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name <b>%s</b>?
    -ConfirmModifyIntervention=Are you sure you want to modify this intervention?
    -ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line?
    +ConfirmDeleteIntervention=Vai tiešām vēlaties izdzēst šo iejaukšanos?
    +ConfirmValidateIntervention=Vai tiešām vēlaties apstiprināt šo iejaukšanos ar nosaukumu <b> %s </b>?
    +ConfirmModifyIntervention=Vai tiešām vēlaties mainīt šo notikumu?
    +ConfirmDeleteInterventionLine=Vai tiešām vēlaties dzēst šo intervences līniju?
     ConfirmCloneIntervention=Vai tiešām vēlaties klonēt šo iejaukšanos?
    -NameAndSignatureOfInternalContact=Vārds, uzvārds un paraksts iejaukties:
    +NameAndSignatureOfInternalContact=Vārds, uzvārds un intervētāja paraksts:
     NameAndSignatureOfExternalContact=Vārds un klienta paraksts:
     DocumentModelStandard=Standarta dokumenta paraugs intervencēm
     InterventionCardsAndInterventionLines=Iejaukšanās un līnijas intervenču
     InterventionClassifyBilled=Classify "Billed"
    -InterventionClassifyUnBilled=Classify "Unbilled"
    +InterventionClassifyUnBilled=Klasificēt "neapmaksātas"
     InterventionClassifyDone=Klasificēt "Pabeigts"
     StatusInterInvoiced=Jāmaksā
     SendInterventionRef=Submission of intervention %s
    @@ -40,19 +41,19 @@ InterventionDeletedInDolibarr=Intervention %s deleted
     InterventionsArea=Interventions area
     DraftFichinter=Draft interventions
     LastModifiedInterventions=Latest %s modified interventions
    -FichinterToProcess=Interventions to process
    +FichinterToProcess=Intervences process
     ##### Types de contacts #####
     TypeContact_fichinter_external_CUSTOMER=Šādi-up klientu kontaktu
     # Modele numérotation
    -PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card
    +PrintProductsOnFichinter=Drukājiet arī intervences kartē norādītās "produkta" (ne tikai pakalpojumu) līnijas
     PrintProductsOnFichinterDetails=interventions generated from orders
    -UseServicesDurationOnFichinter=Use services duration for interventions generated from orders
    -UseDurationOnFichinter=Hides the duration field for intervention records
    -UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
    -InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    -AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
    +UseServicesDurationOnFichinter=Izmantojiet pasūtījumu veikšanai paredzēto iejaukšanās pakalpojumu ilgumu
    +UseDurationOnFichinter=Paslēpj intervences ierakstu ilguma lauku
    +UseDateWithoutHourOnFichinter=Noslēpt stundas un minūtes no datuma lauka iejaukšanās ierakstos
    +InterventionStatistics=Intervences statistika
    +NbOfinterventions=Intervences karšu skaits
    +NumberOfInterventionsByMonth=Intervences karšu skaits pēc mēneša (validācijas datums)
    +AmountOfInteventionNotIncludedByDefault=Ienākuma summa pēc noklusējuma netiek iekļauta peļņā (vairumā gadījumu laika kontrolsaraksts tiek izmantots, lai uzskaitītu pavadīto laiku). Lai tos iekļautu, pievienojiet opciju PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT uz 1 sākuma iestatīšanas pogu.
     ##### Exports #####
     InterId=Intervention id
     InterRef=Intervention ref.
    diff --git a/htdocs/langs/lv_LV/languages.lang b/htdocs/langs/lv_LV/languages.lang
    index 86c165da601..3859203526a 100644
    --- a/htdocs/langs/lv_LV/languages.lang
    +++ b/htdocs/langs/lv_LV/languages.lang
    @@ -58,7 +58,7 @@ Language_ka_GE=Gruzīnu valoda
     Language_km_KH=Khmeru
     Language_kn_IN=Kannada
     Language_ko_KR=Korejiešu
    -Language_lo_LA=Lao
    +Language_lo_LA=Laosa
     Language_lt_LT=Lietuviešu
     Language_lv_LV=Latviešu
     Language_mk_MK=Maķedoniešu
    @@ -86,3 +86,4 @@ Language_uz_UZ=Uzbeku
     Language_vi_VN=Vjetnamiešu
     Language_zh_CN=Ķīniešu
     Language_zh_TW=Ķīniešu (tradicionālā)
    +Language_bh_MY=Malajiešu valoda
    diff --git a/htdocs/langs/lv_LV/loan.lang b/htdocs/langs/lv_LV/loan.lang
    index a1b5567aef5..d06df8df3c6 100644
    --- a/htdocs/langs/lv_LV/loan.lang
    +++ b/htdocs/langs/lv_LV/loan.lang
    @@ -9,7 +9,7 @@ ShowLoanPayment=Rādīt aizdevuma maksājumu
     LoanCapital=Kapitāls
     Insurance=Apdrošināšana
     Interest=Interese
    -Nbterms=Number of terms
    +Nbterms=Noteikumu skaits
     Term=Termiņš
     LoanAccountancyCapitalCode=Accounting account capital
     LoanAccountancyInsuranceCode=Accounting account insurance
    @@ -17,7 +17,7 @@ LoanAccountancyInterestCode=Accounting account interest
     ConfirmDeleteLoan=Apstipriniet aizdevuma dzēšanu
     LoanDeleted=Aizdevums veiksmīgi dzēsts
     ConfirmPayLoan=Confirm classify paid this loan
    -LoanPaid=Loan Paid
    +LoanPaid=Aizdevums ir apmaksāts
     ListLoanAssociatedProject=Ar projektu saistīto aizdevumu saraksts
     AddLoan=Izveidot aizdevumu
     FinancialCommitment=Finanšu saistības
    diff --git a/htdocs/langs/lv_LV/mails.lang b/htdocs/langs/lv_LV/mails.lang
    index 824007ba978..59b3427b224 100644
    --- a/htdocs/langs/lv_LV/mails.lang
    +++ b/htdocs/langs/lv_LV/mails.lang
    @@ -14,7 +14,7 @@ MailTo=Saņēmējs (-i)
     MailToUsers=Lietotājam (-iem)
     MailCC=Kopēt
     MailToCCUsers=Kopēt lietotājiem (-iem)
    -MailCCC=Kešatmiņā kopija uz
    +MailCCC=Kešatmiņas kopija
     MailTopic=E-pasta tēma
     MailText=Ziņa
     MailFile=Pievienotie faili
    @@ -22,7 +22,7 @@ MailMessage=E-pasta saturs
     ShowEMailing=Rādīt e-pastus
     ListOfEMailings=E-pastu saraksts
     NewMailing=Jauna e-pasta vēstuļu sūtīšana
    -EditMailing=Labot pasta vēstuļu sūtīšanas
    +EditMailing=Labot pasta vēstuļu sūtīšanu
     ResetMailing=Vēlreiz nosūtīt e-pastu
     DeleteMailing=Dzēst pasta vēstuļu sūtīšanas
     DeleteAMailing=Dzēšana pasta vēstuļu sūtīšanas
    @@ -45,10 +45,10 @@ MailingStatusReadAndUnsubscribe=Lasīt un atrakstīties
     ErrorMailRecipientIsEmpty=E-pasta adresāts ir tukšs
     WarningNoEMailsAdded=Nav jaunu e-pastu, lai pievienotu adresātu sarakstā.
     ConfirmValidMailing=Are you sure you want to validate this emailing?
    -ConfirmResetMailing=Warning, by reinitializing emailing <b>%s</b>, you allow to make a mass sending of this email another time. Are you sure you this is what you want to do?
    -ConfirmDeleteMailing=Are you sure you want to delete this emailling?
    -NbOfUniqueEMails=Nb unikālu e-pastiem
    -NbOfEMails=Nb no e-pastiem
    +ConfirmResetMailing=Brīdinājums, atkārtoti inicializējot e-pasta ziņojumu ar <b> %s </b>, jūs atļausiet vēlreiz nosūtīt šo e-pastu masu saziņā. Vai tiešām vēlaties to izdarīt?
    +ConfirmDeleteMailing=Vai tiešām vēlaties dzēst šo e-pasta ziņojumu?
    +NbOfUniqueEMails=Unikālo e-pasta ziņojumu skaits
    +NbOfEMails=E-pasta ziņojumu skaits
     TotalNbOfDistinctRecipients=Skaits atsevišķu saņēmēju
     NoTargetYet=Nav saņēmēji vēl nav noteiktas (Iet uz TAB &quot;saņēmēji&quot;)
     NoRecipientEmail=Neviens saņēmējs e-pasts %s
    @@ -66,20 +66,20 @@ DateLastSend=Jaunākās nosūtīšanas datums
     DateSending=Sūtīšanas datums
     SentTo=Nosūtīts <b>%s</b>
     MailingStatusRead=Lasīt
    -YourMailUnsubcribeOK=E-pasts <b>%s</b> ir veiksmīgi izņemts no adresātu saraksta
    -ActivateCheckReadKey=Key used to encrypt URL used for "Read Receipt" and "Unsubcribe" feature
    +YourMailUnsubcribeOK=E-pasta adrese <b> %s </b> ir pareizi dzēsta no adresātu saraksta
    +ActivateCheckReadKey=Atslēgvārds, ko izmanto, lai šifrētu URL, kas izmantots funkcijai "Lasīt saņemšanu" un "Atteikties no abonēšanas"
     EMailSentToNRecipients=E-pastu nosūtīja %s saņēmējiem.
     EMailSentForNElements=E-pasts tiek nosūtīts par %s elementiem.
     XTargetsAdded=<b>%s</b> recipients added into target list
    -OnlyPDFattachmentSupported=Ja PDF faili jau tika izveidoti, lai nosūtītos objektus, tie tiks pievienoti e-pastam. Ja nē, neviens e-pasts netiks nosūtīts (turklāt ņemiet vērā, ka šajā versijā masveida sūtīšanai tiek atbalstīti tikai pdf dokumenti).
    +OnlyPDFattachmentSupported=Ja PDF faili jau tika izveidoti, lai nosūtītos objektus, tie tiks pievienoti e-pastam. Ja nē, neviens e-pasts netiks nosūtīts (arī ņemiet vērā, ka šajā versijā tiek atbalstīti tikai pdf dokumenti).
     AllRecipientSelected=Izvēlētie %s ieraksta saņēmēji (ja viņu e-pasts ir zināms).
     GroupEmails=Grupas e-pasti
     OneEmailPerRecipient=Viens e-pasts katram adresātam (pēc noklusējuma viens e-pasts uz vienu atlasīto ierakstu)
     WarningIfYouCheckOneRecipientPerEmail=Brīdinājums. Ja atzīmēsit šo izvēles rūtiņu, tas nozīmē, ka tiks nosūtīts tikai viens e-pasta ziņojums, izvēloties vairākus atšķirīgus ierakstus, tādēļ, ja jūsu ziņojumā ir iekļauti aizstājējumultiņi, kas attiecas uz ieraksta datiem, tos nevar aizstāt.
     ResultOfMailSending=Result of mass EMail sending
    -NbSelected=Nb selected
    -NbIgnored=Nb ignored
    -NbSent=Nb sent
    +NbSelected=Nē atlasīts
    +NbIgnored=Nē ignorēts
    +NbSent=Nosūtīts
     SentXXXmessages=%s ziņa (s) nosūtīta.
     ConfirmUnvalidateEmailing=Vai tiešām vēlaties mainīt e-pastu <b> %s </b> uz melnraksta statusu?
     MailingModuleDescContactsWithThirdpartyFilter=Sazinieties ar klientu filtriem
    @@ -98,7 +98,7 @@ RecipientSelectionModules=Definētie pieprasījumi saņēmēja izvēles
     MailSelectedRecipients=Atlasītie saņēmēji
     MailingArea=Emailings platība
     LastMailings=Jaunākie %s e-pasta ziņojumi
    -TargetsStatistics=Mērķi statistika
    +TargetsStatistics=Mērķu statistika
     NbOfCompaniesContacts=Unikālie kontakti/adreses
     MailNoChangePossible=Saņēmējiem par apstiprinātus pasta vēstuļu sūtīšanas nevar mainīt
     SearchAMailing=Meklēt e-pastu
    @@ -106,7 +106,7 @@ SendMailing=Nosūtīt e-pastu
     SentBy=Nosūtīja
     MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients:
     MailingNeedCommand2=Taču jūs varat sūtīt tos tiešsaistē, pievienojot parametru MAILING_LIMIT_SENDBYWEB ar vērtību max skaitu e-pasta Jūs vēlaties nosūtīt pa sesiju. Lai to izdarītu, dodieties uz Home - Setup - pārējie.
    -ConfirmSendingEmailing=If you want to send emailing directly from this screen, please confirm you are sure you want to send emailing now from your browser ?
    +ConfirmSendingEmailing=Ja vēlaties nosūtīt e-pastu tieši no šī ekrāna, lūdzu, apstipriniet, ka esat pārliecināts, ka vēlaties nosūtīt e-pasta ziņojumus tūlīt no savas pārlūkprogrammas?
     LimitSendingEmailing=Note: Sending of emailings from web interface is done in several times for security and timeout reasons, <b>%s</b> recipients at a time for each sending session.
     TargetsReset=Nodzēst sarakstu
     ToClearAllRecipientsClickHere=Klikšķiniet šeit, lai notīrītu adresātu sarakstu par šo pasta vēstuļu sūtīšanas
    @@ -139,7 +139,7 @@ UseFormatFileEmailToTarget=Importētajam failam jābūt formatētam <strong> e-p
     UseFormatInputEmailToTarget=Ievadiet virkni ar formātu <strong> e-pasts; vārds; uzvārds; cits </ strong>
     MailAdvTargetRecipients=Saņēmēji (papildu izvēle)
     AdvTgtTitle=Aizpildiet ievades laukus, lai iepriekš atlasītu mērķauditoriju trešajām personām vai kontaktpersonām / adresēm
    -AdvTgtSearchTextHelp=Izmantojiet %% kā burvju karakuģus. Piemēram, lai atrastu visu objektu, piemēram, <b> jean, joe, jim </ b>, jūs varat ievadīt <b> j%% </ b>, kuru varat arī izmantot; kā atdalītājs par vērtību, un izmantot! izņemot šo vērtību. Piemēram, <b> jean; joe; jim%%; jimo;! Jima% </ b> tiks atlasīti visi žanri, joe, sākas ar jim, bet ne jimo, nevis ikviens sākums ar jima
    +AdvTgtSearchTextHelp=Izmantojiet %% kā aizstājējzīmes. Piemēram, lai atrastu visu objektu, piemēram, <b> jean, joe, jim </ b>, jūs varat ievadīt <b> j%% </ b>, kuru varat arī izmantot; kā atdalītājs par vērtību, un izmantot! izņemot šo vērtību. Piemēram, <b> jean; joe; jim%%;! Jimo;! Jima% </ b> tiks mērķētas uz visiem jean, joe, sākt ar jim, bet ne jimo, un ne visu, kas sākas ar jima
     AdvTgtSearchIntHelp=Izmantojiet intervālu, lai izvēlētos int vai float vērtību
     AdvTgtMinVal=Minimālā vērtība
     AdvTgtMaxVal=Maksimālā vērtība
    @@ -166,4 +166,4 @@ InGoingEmailSetup=Ienākošā e-pasta iestatīšana
     OutGoingEmailSetupForEmailing=Izejošā e-pasta iestatīšana (masveida e-pasta sūtīšanai)
     DefaultOutgoingEmailSetup=Noklusējuma izejošā e-pasta iestatīšana
     Information=Informācija
    -ContactsWithThirdpartyFilter=Kontakti avec filtre klients
    +ContactsWithThirdpartyFilter=Kontakti ar trešās puses filtru
    diff --git a/htdocs/langs/lv_LV/main.lang b/htdocs/langs/lv_LV/main.lang
    index 29826e30dad..3244668bee9 100644
    --- a/htdocs/langs/lv_LV/main.lang
    +++ b/htdocs/langs/lv_LV/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Neizdevās nosūtīt pastu (sūtītājs = %s, saņēmējs
     ErrorFileNotUploaded=Fails netika augšupielādēts. Pārbaudiet vai izmērs nepārsniedz maksimāli pieļaujamo un, ka brīvas vietas ir pieejama uz diska, un nav jau failu ar tādu pašu nosaukumu šajā direktorijā.
     ErrorInternalErrorDetected=Atklāta kļūda
     ErrorWrongHostParameter=Nepareizs servera parametrs
    -ErrorYourCountryIsNotDefined=Jūsu valsts nav definēta. Ejiet uz Sākums-Iestatījumi-Labot un tad mēģiniet vēlreiz aizpildīt formu.
    -ErrorRecordIsUsedByChild=Neizdevās dzēst šo ierakstu. Šis ieraksts tiek izmantots vismaz viena bērna ierakstuam.
    +ErrorYourCountryIsNotDefined=Jūsu valsts nav definēta. Atveriet Home-Setup-Edit un pēc tam ievietojiet veidlapu.
    +ErrorRecordIsUsedByChild=Neizdevās izdzēst šo ierakstu. Šo ierakstu izmanto vismaz viens bērna ieraksts.
     ErrorWrongValue=Nepareizs vērtība
     ErrorWrongValueForParameterX=Nepareiza vērtība parametram %s
     ErrorNoRequestInError=Nav pieprasījums kļūdā
    -ErrorServiceUnavailableTryLater=Pakalpojums nav pieejams uz šo brīdi. Mēģiniet vēlreiz vēlāk.
    +ErrorServiceUnavailableTryLater=Pakalpojums pašlaik nav pieejams. Pamēģini vēlreiz vēlāk.
     ErrorDuplicateField=Dubulta vērtība unikālā laukā
    -ErrorSomeErrorWereFoundRollbackIsDone=Dažas kļūdas tika atrastas. Mēs atgriezām atpakaļ visu izejas pozīcijā.
    -ErrorConfigParameterNotDefined=Parametrs <b>%s</b> nav definētas Dolibarr konfigurācijas failā <b>conf.php.</b>
    +ErrorSomeErrorWereFoundRollbackIsDone=Tika atklātas dažas kļūdas. Izmaiņas ir atgrieztas atpakaļ.
    +ErrorConfigParameterNotDefined=Parametrs <b> %s </b> Dolibarr konfigurācijas failā <b> conf.php </b> nav definēts.
     ErrorCantLoadUserFromDolibarrDatabase=Neizdevās atrast lietotāju <b>%s</b> Dolibarr datu bāzē.
     ErrorNoVATRateDefinedForSellerCountry=Kļūda, PVN likme nav definēta sekojošai valstij '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Kļūda, neizdevās saglabāt failu.
     ErrorCannotAddThisParentWarehouse=Jūs mēģināt pievienot vecāku noliktavu, kas jau ir pašreizējā bērns
    -MaxNbOfRecordPerPage=Maksimālais ierakstu skaits lapā
    +MaxNbOfRecordPerPage=Maksimālais ierakstu skaits vienā lapā
     NotAuthorized=Jums nav tiesību, lai veiktu šo darbību.
     SetDate=Iestatīt datumu
     SelectDate=Izvēlēties datumu
    @@ -78,10 +78,10 @@ FileRenamed=Fails tika veiksmīgi pārdēvēts
     FileGenerated=Fails tika veiksmīgi ģenerēts
     FileSaved=Fails tika veiksmīgi saglabāts
     FileUploaded=Fails veiksmīgi augšupielādēts
    -FileTransferComplete=Fails(i) tika augšupielādēts veiksmīgi
    +FileTransferComplete=Fails(i) tika veiksmīgi augšupielādēti
     FilesDeleted=Fails (-i) ir veiksmīgi dzēsti
     FileWasNotUploaded=Fails ir izvēlēts pielikumam,  bet vēl nav augšupielādēti. Noklikšķiniet uz &quot;Pievienot failu&quot;, lai to pievienotu.
    -NbOfEntries=Ierakstu sk
    +NbOfEntries=Ierakstu skaits
     GoToWikiHelpPage=Lasīt tiešsaistes palīdzību (nepieciešams interneta piekļuve)
     GoToHelpPage=Lasīt palīdzību
     RecordSaved=Ieraksts saglabāts
    @@ -94,8 +94,8 @@ Undefined=Nav definēts
     PasswordForgotten=Aizmirsāt paroli?
     NoAccount=Nav konts?
     SeeAbove=Skatīt iepriekš
    -HomeArea=Mājas sadaļa
    -LastConnexion=Latest connection
    +HomeArea=Mājās
    +LastConnexion=Jaunākais savienojums
     PreviousConnexion=Iepriekšējā pieslēgšanās
     PreviousValue=Iepriekšējā vērtība
     ConnectedOnMultiCompany=Pieslēgts videi
    @@ -103,7 +103,7 @@ ConnectedSince=Pievienots kopš
     AuthenticationMode=Autentifikācija režīms
     RequestedUrl=Pieprasīts URL
     DatabaseTypeManager=Datu bāzes menedžeris
    -RequestLastAccessInError=Latest database access request error
    +RequestLastAccessInError=Jaunākās datubāzes piekļuves pieprasījuma kļūdas
     ReturnCodeLastAccessInError=Return code for latest database access request error
     InformationLastAccessInError=Information for latest database access request error
     DolibarrHasDetectedError=Dolibarr ir atklājis tehnisku kļūdu
    @@ -142,6 +142,7 @@ Closed=Slēgts
     Closed2=Slēgts
     NotClosed=Nav slēgts
     Enabled=Atvienots
    +Enable=Ieslēgt
     Deprecated=Novecojusi
     Disable=Atslēgt
     Disabled=Atslēgts
    @@ -153,7 +154,7 @@ Update=Atjaunot
     Close=Aizvērt
     CloseBox=Noņemiet logrīku no sava informācijas paneļa
     Confirm=Apstiprināt
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Vai tiešām vēlaties nosūtīt šīs kartes saturu pa pastu uz <b> %s </b>?
     Delete=Izdzēst
     Remove=Noņemt
     Resiliate=Pārtraukt
    @@ -161,7 +162,7 @@ Cancel=Atcelt
     Modify=Modificēt
     Edit=Rediģēt
     Validate=Pārbaudīt
    -ValidateAndApprove=Validate and Approve
    +ValidateAndApprove=Pārbaudiet un apstipriniet
     ToValidate=Jāpārbauda
     NotValidated=Nav apstiprināts
     Save=Saglabāt
    @@ -181,8 +182,8 @@ Search=Meklēšana
     SearchOf=Meklēšana
     Valid=Derīgs
     Approve=Apstiprināt
    -Disapprove=Disapprove
    -ReOpen=Atvērt par jaunu
    +Disapprove=Noraidīt
    +ReOpen=Atvērt pa jaunu
     Upload=Augšupielādēt failu
     ToLink=Saite
     Select=Atlasīt
    @@ -220,7 +221,7 @@ Info=Pieteikties
     Family=Ģimene
     Description=Apraksts
     Designation=Apraksts
    -Model=Doc template
    +Model=Doc veidne
     DefaultModel=Default doc template
     Action=Notikums
     About=Par
    @@ -252,7 +253,7 @@ DateCreation=Izveidošanas datums
     DateCreationShort=Izv. datums
     DateModification=Labošanas datums
     DateModificationShort=Modif. datums
    -DateLastModification=Latest modification date
    +DateLastModification=Jaunākais labošanas datums
     DateValidation=Apstiprināšanas datums
     DateClosing=Beigu datums
     DateDue=Izpildes datums
    @@ -327,7 +328,7 @@ Copy=Kopēt
     Paste=Ielīmēt
     Default=Noklusējums
     DefaultValue=Noklusējuma vērtība
    -DefaultValues=Noklusējuma vērtības
    +DefaultValues=Noklusētās vērtības / filtri / šķirošana
     Price=Cena
     PriceCurrency=Cena (valūta)
     UnitPrice=Vienības cena
    @@ -347,7 +348,7 @@ AmountTTCShort=Summa (ar PVN)
     AmountHT=Daudzums (neto pēc nodokļiem)
     AmountTTC=Summa (ar PVN)
     AmountVAT=Nodokļa summa
    -MulticurrencyAlreadyPaid=Jau samaksāta, oriģināla valūta
    +MulticurrencyAlreadyPaid=Jau samaksāta sākotnējā valūta
     MulticurrencyRemainderToPay=Atlikums, kas jāsamaksā oriģinālā valūtā
     MulticurrencyPaymentAmount=Maksājuma summa, oriģinālajā valūtā
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -386,7 +387,7 @@ INCVATONLY=ar PVN
     INCT=Inc visiem nodokļiem
     VAT=PVN
     VATIN=IGST
    -VATs=Sales taxes
    +VATs=Pārdošanas nodokļi
     VATINs=IGST nodokļi
     LT1=Pārdošanas nodoklis 2
     LT1Type=Pārdošanas nodoklis 2 tips
    @@ -403,7 +404,7 @@ DefaultTaxRate=Noklusētā nodokļa likme
     Average=Vidējais
     Sum=Summa
     Delta=Delta
    -RemainToPay=Paliek maksāt
    +RemainToPay=Vēl jāsamaksā
     Module=Module/Application
     Modules=Moduļi/lietojumprogrammas
     Option=Iespējas
    @@ -429,22 +430,23 @@ ActionRunningNotStarted=Jāsāk
     ActionRunningShort=Procesā
     ActionDoneShort=Pabeigts
     ActionUncomplete=Nepabeigts
    -LatestLinkedEvents=Jaunākie %s saistīti notikumi
    +LatestLinkedEvents=Jaunākie %s saistītie notikumi
     CompanyFoundation=Uzņēmums / organizācija
     Accountant=Grāmatvedis
     ContactsForCompany=Šīs trešās personas kontakti
     ContactsAddressesForCompany=Kontakti / adreses par šīs trešās personas
     AddressesForCompany=Šīs trešās puses adreses
     ActionsOnCompany=Pasākumi par šīs trešās personas
    +ActionsOnContact=Šī kontakta/adreses notikumi
     ActionsOnMember=Pasākumi par šo locekli
    -ActionsOnProduct=Notikumi par šo produktu
    +ActionsOnProduct=Notikumi ar šo produktu
     NActionsLate=%s vēlu
     ToDo=Jāizdara
     Completed=Pabeigts
     Running=Procesā
     RequestAlreadyDone=Request already recorded
     Filter=Filtrs
    -FilterOnInto=Search criteria '<strong>%s</strong>' into fields %s
    +FilterOnInto=Meklēšanas kritēriji '<strong> %s</strong>' laukos %s
     RemoveFilter=Noņemt filtru
     ChartGenerated=Grafiks izveidots
     ChartNotGenerated=Diagramma nav izveidota
    @@ -453,14 +455,14 @@ Generate=Izveidot
     Duration=Ilgums
     TotalDuration=Kopējais pasākuma ilgums
     Summary=Kopsavilkums
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Datu bāzes statistika
    +DolibarrWorkBoard=Gaidoši vienumi
     NoOpenedElementToProcess=Nav atvērts elements apstrādāt
     Available=Pieejams
     NotYetAvailable=Nav vēl pieejams
     NotAvailable=Nav pieejams
    -Categories=Tags/categories
    -Category=Tag/category
    +Categories=Atslēgvārdi / sadaļas
    +Category=Atslēgvārds / sadaļa
     By=Līdz
     From=No
     to=līdz
    @@ -468,23 +470,23 @@ and=un
     or=vai
     Other=Cits
     Others=Citi
    -OtherInformations=Citas informācija
    +OtherInformations=Cita informācija
     Quantity=Daudzums
     Qty=Daudz
     ChangedBy=Labojis
    -ApprovedBy=Approved by
    +ApprovedBy=Apstiprināja
     ApprovedBy2=Approved by (second approval)
     Approved=Apstiprināts
     Refused=Atteikts
     ReCalculate=Pārrēķināt
     ResultKo=Neveiksme
    -Reporting=Pārskata
    +Reporting=Pārskati
     Reportings=Pārskati
     Draft=Melnraksts
     Drafts=Melnraksti
     StatusInterInvoiced=
     Validated=Apstiprināts
    -Opened=Atvērts
    +Opened=Atvērt
     New=Jauns
     Discount=Atlaide
     Unknown=Nezināms
    @@ -506,8 +508,8 @@ None=Nav
     NoneF=Nav
     NoneOrSeveral=Neviens vai vairāki
     Late=Vēlu
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    -NoItemLate=No late item
    +LateDesc=Kavējums, lai noteiktu, vai ieraksts ir novēlots vai nav, ir atkarīgs no jūsu iestatīšanas. Uzdod administratoram mainīt kavēšanos no izvēlnes Home - Setup - Alerts.
    +NoItemLate=Nav vēlu priekšmetu
     Photo=Attēls
     Photos=Attēli
     AddPhoto=Pievienot attēlu
    @@ -530,18 +532,6 @@ September=Septembris
     October=Oktobris
     November=Novembris
     December=Decembris
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=Mai
    -JuneMin=Jūn
    -JulyMin=Jūl
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Okt
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=Janvāris
     Month02=Februāris
     Month03=Marts
    @@ -567,14 +557,14 @@ MonthShort10=Okt
     MonthShort11=Nov
     MonthShort12=Dec
     MonthVeryShort01=J
    -MonthVeryShort02=P
    -MonthVeryShort03=P
    +MonthVeryShort02=Feb
    +MonthVeryShort03=Mar
     MonthVeryShort04=A
    -MonthVeryShort05=P
    -MonthVeryShort06=J
    -MonthVeryShort07=J
    -MonthVeryShort08=A
    -MonthVeryShort09=Sv
    +MonthVeryShort05=Mai
    +MonthVeryShort06=Jūn
    +MonthVeryShort07=Jūl
    +MonthVeryShort08=Aug
    +MonthVeryShort09=Sep
     MonthVeryShort10=O
     MonthVeryShort11=N
     MonthVeryShort12=D
    @@ -611,7 +601,7 @@ DateFromTo=No %s līdz %s
     DateFrom=No %s
     DateUntil=Līdz %s
     Check=Pārbaudīt
    -Uncheck=Uncheck
    +Uncheck=Noņemt atzīmi
     Internal=Iekšējs
     External=Ārējs
     Internals=Iekšējs
    @@ -640,12 +630,14 @@ Response=Atbilde
     Priority=Prioritāte
     SendByMail=Sūtīt pa e-pastu
     MailSentBy=Nosūtīts e-pasts ar
    -TextUsedInTheMessageBody=E-pasts ķermeņa
    +TextUsedInTheMessageBody=E-pasta ķermenis
     SendAcknowledgementByMail=Sūtīt apstiprinājuma e-pastu
     SendMail=Sūtīt e-pastu
     EMail=E-pasts
     NoEMail=Nav e-pasta
     Email=E-pasts
    +AlreadyRead=Jau izlasīts
    +NotRead=Nav lasīts
     NoMobilePhone=Nav mob. tel.
     Owner=Īpašnieks
     FollowingConstantsWillBeSubstituted=Šādas konstantes tiks aizstāts ar atbilstošo vērtību.
    @@ -682,7 +674,7 @@ Color=Krāsa
     Documents=Piesaistītie faili
     Documents2=Dokumenti
     UploadDisabled=Augšupielāde bloķēta
    -MenuAccountancy=Accounting
    +MenuAccountancy=Grāmatvedība
     MenuECM=Dokumenti
     MenuAWStats=AWStats
     MenuMembers=Dalībnieki
    @@ -716,15 +708,15 @@ Merge=Apvienot
     DocumentModelStandardPDF=Standarta PDF veidne
     PrintContentArea=Rādīt lapu drukāt galveno satura jomā
     MenuManager=Izvēlnes iestatīšana
    -WarningYouAreInMaintenanceMode=Uzmanību, jūs esat uzturēšanas režīmā, t.i. tikai pieteikšanās <b>%s</b> ir atļauts lietot programmu.
    +WarningYouAreInMaintenanceMode=Brīdinājums! Jūs esat uzturēšanas režīmā, tāpēc šajā laikā ir atļauts izmantot tikai pieteikumu <b> %s </ b>.
     CoreErrorTitle=Sistēmas kļūda
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Kredītkarte
     ValidatePayment=Apstiprināt maksājumu
     CreditOrDebitCard=Kredīta vai debetkarte
     FieldsWithAreMandatory=Lauki ar <b>%s</b> ir obligāti aizpildāmi
    -FieldsWithIsForPublic=Lauki ar <b>%s</b> parāda sabiedrības locekļu sarakstu. Ja jūs nevēlaties to, tad izņemiet ķeksi pie &quot;sabiedrības&quot; lodziņa.
    -AccordingToGeoIPDatabase=(Saskaņā ar GeoIP)
    +FieldsWithIsForPublic=Lauki ar <b> %s </ b> ir redzami dalībnieku publiskajā sarakstā. Ja jūs to nevēlaties, noņemiet atzīmi no lauka "public".
    +AccordingToGeoIPDatabase=(saskaņā ar GeoIP konvertēšanu)
     Line=Līnija
     NotSupported=Netiek atbalstīts
     RequiredField=Obligāti aizpildāms lauks
    @@ -732,6 +724,8 @@ Result=Rezultāts
     ToTest=Pārbaude
     ValidateBefore=Kartiņa ir jāapstiprina, pirms lietojat šo funkciju
     Visibility=Redzamība
    +Totalizable=Kopējais skaits
    +TotalizableDesc=Šis lauks ir totalizable sarakstā
     Private=Privāts
     Hidden=Slēpts
     Resources=Resursi
    @@ -750,6 +744,7 @@ LinkTo=Saite uz
     LinkToProposal=Saite uz priekšlikumu
     LinkToOrder=Link to order
     LinkToInvoice=Saite uz rēķinu
    +LinkToTemplateInvoice=Saite uz veidnes rēķinu
     LinkToSupplierOrder=Saite uz piegādātāja pasūtījumu
     LinkToSupplierProposal=Saite uz piegādātāja piedāvājumu
     LinkToSupplierInvoice=Saite uz piegādātāja rēķinu
    @@ -758,6 +753,7 @@ LinkToIntervention=Saikne ar intervenci
     CreateDraft=Izveidot melnrakstu
     SetToDraft=Atpakaļ uz melnrakstu
     ClickToEdit=Klikšķiniet, lai rediģētu
    +ClickToRefresh=Noklikšķiniet, lai atsvaidzinātu
     EditWithEditor=Rediģēt ar CKEditor
     EditWithTextEditor=Rediģēt ar teksta redaktoru
     EditHTMLSource=Rediģēt HTML avotu
    @@ -772,14 +768,14 @@ ByDay=Pēc dienas
     BySalesRepresentative=Pēc tirdzniecības pārstāvja
     LinkedToSpecificUsers=Saistītas ar noteiktu lietotāja kontaktu
     NoResults=Nav rezultātu
    -AdminTools=Administratora rīki
    +AdminTools=Admin Tools
     SystemTools=Sistēmas rīki
     ModulesSystemTools=Moduļi instrumenti
     Test=Pārbaude
     Element=Elements
     NoPhotoYet=Nav bildes
     Dashboard=Informācijas panelis
    -MyDashboard=Informācijas panelis
    +MyDashboard=Mans informācijas panelis
     Deductible=Pašrisks
     from=no
     toward=uz
    @@ -802,34 +798,34 @@ PrintFile=Drukāt failu %s
     ShowTransaction=Rādīt ierakstu bankas kontā
     ShowIntervention=Rādīt iejaukšanās
     ShowContract=Rādīt līgumu
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    -Deny=Deny
    -Denied=Denied
    +GoIntoSetupToChangeLogo=Iet uz mājas lapu - Uzstādīšana - Uzņēmums mainīs logotipu vai dodieties uz mājām - Iestatīšana - Displejs, lai paslēptu.
    +Deny=Aizliegt
    +Denied=Aizliegts
     ListOf=%s saraksts
    -ListOfTemplates=List of templates
    +ListOfTemplates=Saraksts ar veidnēm
     Gender=Dzimums
     Genderman=Vīrietis
     Genderwoman=Sieviete
     ViewList=List view
     Mandatory=Mandatory
    -Hello=Hello
    +Hello=Labdien
     GoodBye=Uz redzēšanos
    -Sincerely=Sincerely
    +Sincerely=Ar cieņu
     DeleteLine=Delete line
     ConfirmDeleteLine=Vai Jūs tiešām vēlaties izdzēst šo līniju?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Pārāk daudzi ieraksti atlasīti masveida rīcībai. Darbība ir ierobežota ar %s ierakstu sarakstu.
     NoRecordSelected=Nav atlasīts neviens ieraksts
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Lielapjoma dzēšanas apstiprinājums
    -ConfirmMassDeletionQuestion=Vai tiešām vēlaties dzēst izvēlēto ierakstu %s?
    +ConfirmMassDeletion=Masveida dzēšanas apstiprinājums
    +ConfirmMassDeletionQuestion=Vai tiešām vēlaties dzēst atlasīto ierakstu %s?
     RelatedObjects=Saistītie objekti
     ClassifyBilled=Klasificēt apmaksāts
     ClassifyUnbilled=Klasificēt neapmaksāts
     Progress=Progress
     FrontOffice=birojs
    -BackOffice=Back office
    +BackOffice=Birojs
     View=Izskats
     Export=Eksportēt
     Exports=Eksports
    @@ -841,7 +837,7 @@ Calendar=Kalendārs
     GroupBy=Kārtot pēc...
     ViewFlatList=Skatīt plakanu sarakstu
     RemoveString=Noņemt virkni '%s'
    -SomeTranslationAreUncomplete=Dažas valodas var būt daļēji tulkotas vai tām var būt kļūdas. Ja konstatējat dažus, varat iestatīt valodas failus, reģistrējoties <a href="https://transifex.com/projects/p/dolibarr/" target="_blank"> https://transifex.com/projects/p/ dolibarr / </a>.
    +SomeTranslationAreUncomplete=Dažas piedāvātās valodas var būt tikai daļēji tulkotas vai var saturēt kļūdas. Lūdzu, palīdziet labot savu valodu, reģistrējoties <a href="https://transifex.com/projects/p/dolibarr/" target="_blank"> https://transifex.com/projects/p/dolibarr/ </a>, lai pievienotu savus uzlabojumus.
     DirectDownloadLink=Tiešā lejupielādes saite (publiska / ārēja)
     DirectDownloadInternalLink=Tiešā lejupielādes saite (ir jāreģistrē un tai ir nepieciešamas atļaujas).
     Download=Lejupielādēt
    @@ -852,9 +848,9 @@ ModuleBuilder=Moduļu veidotājs
     SetMultiCurrencyCode=Iestatīt valūtu
     BulkActions=Lielapjoma darbības
     ClickToShowHelp=Noklikšķiniet, lai parādītu rīka padomju palīdzību
    -WebSite=Mājas lapa
    -WebSites=Tīmekļa vietnes
    -WebSiteAccounts=Vietnes konti
    +WebSite=Tīmekļa vietne
    +WebSites=Mājas lapas
    +WebSiteAccounts=Tīmekļa vietnes konti
     ExpenseReport=Izdevumu pārskats
     ExpenseReports=Izdevumu atskaites
     HR=HR
    @@ -863,14 +859,23 @@ AutomaticallyCalculated=Automātiski aprēķināts
     TitleSetToDraft=Atgriezties uz melnrakstu
     ConfirmSetToDraft=Vai tiešām vēlaties atgriezties pie melnrakstu statusa?
     ImportId=Importēt ID
    -Events=Pasākumi
    -EMailTemplates=E-pastu paraugi
    -FileNotShared=Fails nav koplietots ar exernal sabiedrību
    +Events=Notikumi
    +EMailTemplates=E-pasta veidnes
    +FileNotShared=Fails nav kopīgots ārējai publikai
     Project=Projekts
     Projects=Projekti
    +LeadOrProject=Svins | Projekts
    +LeadsOrProjects=Sasaistes | Projekti
    +Lead=Svins
    +Leads=Sasaistes
    +ListOpenLeads=Sarakstu atklātie vadītāji
    +ListOpenProjects=Atvērto projektu saraksts
    +NewLeadOrProject=Jauns svins vai projekts
     Rights=Atļaujas
     LineNb=Rinda Nr.
     IncotermLabel=Inkoterms
    +TabLetteringCustomer=Klientu apzīmējumi
    +TabLetteringSupplier=Piegādātāja burts
     # Week day
     Monday=Pirmdiena
     Tuesday=Otrdiena
    @@ -905,8 +910,8 @@ SetRef=Set ref
     Select2ResultFoundUseArrows=Daži rezultāti ir atrasti. Izmantojiet bultiņas, lai izvēlētos.
     Select2NotFound=Rezultāti nav atrasti
     Select2Enter=Ieiet
    -Select2MoreCharacter=vai vairāk rakstzīmes
    -Select2MoreCharacters=vai vairāk simbolus
    +Select2MoreCharacter=vai vairāk zīmes
    +Select2MoreCharacters=vai vairāk simbolu
     Select2MoreCharactersMore=<strong> Meklēšanas sintakse: </ strong> </ kbd> <strong> * </ strong> </ kbd> <kbd> Jebkurš raksturs </ kbd> (a * b) <br> <kbd> <strong> ^ </ strong> </ kbd> <kbd> Sāciet ar </ kbd> (^ ab) <br> <kbd> <strong> $ </ strong> </ kbd> <kbd> Beigt ar </ kbd> (ab $) <br>
     Select2LoadingMoreResults=Ielādē vairāk rezultātus...
     Select2SearchInProgress=Meklēšana procesā...
    @@ -927,24 +932,26 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Līgumi
     SearchIntoCustomerShipments=Klientu sūtījumi
     SearchIntoExpenseReports=Izdevumu atskaites
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Atstājiet
     CommentLink=Komentāri
     NbComments=Komentāru skaits
     CommentPage=Komentāru telpa
     CommentAdded=Komentārs pievienots
     CommentDeleted=Komentārs dzēsts
    -Everybody=Visi
    -PayedBy=Samaksājis
    -PayedTo=Samaksāts
    +Everybody=Ikviens
    +PayedBy=Apmaksājis
    +PayedTo=Apmaksāts
     Monthly=Katru mēnesi
     Quarterly=Ceturksnis
    -Annual=Gada
    +Annual=Ikgadējais
     Local=Vietējais
     Remote=Attālinātais
    -LocalAndRemote=Vietējais un attālais
    +LocalAndRemote=Vietējais un attālinātais
     KeyboardShortcut=Tastatūras saīsne
     AssignedTo=Piešķirts
     Deletedraft=Dzēst melnrakstu
    -ConfirmMassDraftDeletion=Melnraksta dzēšanas apstiprinājuma projekts
    +ConfirmMassDraftDeletion=Projekta masveida dzēšanas apstiprinājums
     FileSharedViaALink=Fails koplietots, izmantojot saiti
    -
    +SelectAThirdPartyFirst=Vispirms izvēlieties trešo pusi ...
    +YouAreCurrentlyInSandboxMode=Pašlaik esat %s "smilšu kastes" režīmā
    +Inventory=Inventārs
    diff --git a/htdocs/langs/lv_LV/members.lang b/htdocs/langs/lv_LV/members.lang
    index 34105afcc03..af0be78dc28 100644
    --- a/htdocs/langs/lv_LV/members.lang
    +++ b/htdocs/langs/lv_LV/members.lang
    @@ -50,12 +50,12 @@ MemberStatusPaidShort=Aktuāls
     MemberStatusResiliated=Apturēts dalībnieks
     MemberStatusResiliatedShort=Izbeigta
     MembersStatusToValid=Projektu dalībnieki
    -MembersStatusResiliated=Terminated members
    +MembersStatusResiliated=Izbeigti dalībnieki
     NewCotisation=Jauns ieguldījums
     PaymentSubscription=Jauns ieguldījums maksājums
     SubscriptionEndDate=Abonēšanas beigu datums
    -MembersTypeSetup=Dalībnieki tipa iestatīšana
    -MemberTypeModified=Dalībnieka tips ir modificēts
    +MembersTypeSetup=Dalībnieku veida iestatīšana
    +MemberTypeModified=Dalībnieka veids ir labots
     DeleteAMemberType=Dzēst biedra veidu
     ConfirmDeleteMemberType=Vai tiešām vēlaties dzēst šo dalībnieka veidu?
     MemberTypeDeleted=Dalībnieka veids dzēsts
    @@ -66,21 +66,21 @@ Subscription=Abonēšana
     Subscriptions=Abonementi
     SubscriptionLate=Vēlu
     SubscriptionNotReceived=Abonēšana nekad nav saņēmusi
    -ListOfSubscriptions=Saraksts abonementu
    +ListOfSubscriptions=Abonementu saraksts
     SendCardByMail=Nosūtīt kartiņu pa e-pastu
     AddMember=Izveidot biedru
     NoTypeDefinedGoToSetup=Neviens dalībnieka veids nav definēts. Iet uz izvēlnes "Dalībnieku veidi"
     NewMemberType=Jauns dalībnieka veids
     WelcomeEMail=Sveiciena e-pasts
    -SubscriptionRequired=Abonēšanas nepieciešams
    +SubscriptionRequired=Abonēšana nepieciešama
     DeleteType=Dzēst
     VoteAllowed=Balsot atļauts
     Physical=Fizisks
     Moral=Morāls
     MorPhy=Morālā/Fiziskā
     Reenable=Reenable
    -ResiliateMember=Terminate a member
    -ConfirmResiliateMember=Are you sure you want to terminate this member?
    +ResiliateMember=Izslēgt dalībnieku
    +ConfirmResiliateMember=Vai tiešām vēlaties pārtraukt šo dalībnieku?
     DeleteMember=Dzēst dalībnieku
     ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his subscriptions)?
     DeleteSubscription=Dzēst abonementu
    @@ -88,7 +88,7 @@ ConfirmDeleteSubscription=Are you sure you want to delete this subscription?
     Filehtpasswd=Htpasswd fails
     ValidateMember=Apstiprināt dalībnieku
     ConfirmValidateMember=Are you sure you want to validate this member?
    -FollowingLinksArePublic=Šādas saites ir atvērtas lapas, kas nav aizsargāti ar kādu Dolibarr atļauju. Tie nav formated lapas, sniedz kā piemērs, lai parādītu, kā uzskaitīt biedrus datu bāzi.
    +FollowingLinksArePublic=Šīs saites ir atvērtas lapas, kuras nav aizsargātas ar Dolibarr atļaujām. Tās nav formatētas lapas, kas tiek piedāvātas kā piemērs, lai parādītu, kā sarakstu dalībnieku datu bāzi.
     PublicMemberList=Sabiedrības Biedru saraksts
     BlankSubscriptionForm=Publiska pašapkalpošanās veidlapa
     BlankSubscriptionFormDesc=Dolibarr var nodrošināt jums publisku URL / tīmekļa vietni, lai ļautu ārējiem apmeklētājiem lūgt parakstīties uz fondu. Ja ir iespējots tiešsaistes maksājumu modulis, maksājuma veidlapa var tikt automātiski nodrošināta.
    @@ -108,10 +108,10 @@ AddSubscription=Izveidot abonementu
     ShowSubscription=Rādīt abonementu
     # Label of email templates
     SendingAnEMailToMember=Sūtīt informācijas e-pastu dalībniekam
    -SendingEmailOnAutoSubscription=E-pasta sūtīšana uz automātisko reģistrāciju
    -SendingEmailOnMemberValidation=E-pasta sūtīšana uz jauno dalībnieku apstiprināšanu
    +SendingEmailOnAutoSubscription=E-pasta sūtīšana automātiskajai reģistrācijai
    +SendingEmailOnMemberValidation=E-pasta sūtīšana jauno dalībnieku apstiprināšana
     SendingEmailOnNewSubscription=E-pasta sūtīšana uz jaunu abonementu
    -SendingReminderForExpiredSubscription=Atgādinājuma nosūtīšana uz abonementu beigu datumu
    +SendingReminderForExpiredSubscription=Atgādinājuma nosūtīšana par abonementu beigu datumu
     SendingEmailOnCancelation=E-pasta sūtīšana par atcelšanu
     # Topic of email templates
     YourMembershipRequestWasReceived=Jūsu dalība tika saņemta.
    @@ -124,7 +124,7 @@ CardContent=Saturu jūsu dalības kartes
     ThisIsContentOfYourMembershipRequestWasReceived=Mēs vēlamies jūs informēt, ka jūsu dalības pieprasījums ir saņemts. <br> <br>
     ThisIsContentOfYourMembershipWasValidated=Mēs vēlamies jūs informēt, ka jūsu dalība tika apstiprināta ar šādu informāciju: <br> <br>
     ThisIsContentOfYourSubscriptionWasRecorded=Mēs vēlamies jūs informēt, ka jūsu jaunais abonements tika reģistrēts. <br> <br>
    -ThisIsContentOfSubscriptionReminderEmail=Mēs vēlamies jūs paziņot, ka jūsu abonēšanas termiņš beigsies. Mēs ceram, ka jūs varat to atjaunot. <br> <br>
    +ThisIsContentOfSubscriptionReminderEmail=Mēs vēlamies jūs informēt, ka jūsu abonēšanas termiņš beigsies vai jau ir beidzies (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Mēs ceram, ka jūs varat to atjaunot. <br> <br>
     ThisIsContentOfYourCard=Tas ir atgādinājums par informāciju, kuru mēs saņemam par jums. Jūtieties brīvi sazināties ar mums, ja kaut kas izskatās nepareizi. <br> <br>
     DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Priekšmets e-pastu saņēma, ja auto-uzrakstu viesis
     DescADHERENT_AUTOREGISTER_NOTIF_MAIL=E-pasts saņemta gadījumā auto-uzrakstu viesis
    @@ -142,8 +142,8 @@ DescADHERENT_CARD_TEXT=Teksts drukāts uz biedru kartes (izlīdzinājums pa krei
     DescADHERENT_CARD_TEXT_RIGHT=Teksts drukāts uz biedru kartes (izlīdzinājums pa labi)
     DescADHERENT_CARD_FOOTER_TEXT=Teksts uzdrukāts uz biedru kartes apakšā
     ShowTypeCard=Rādīt veidu "%s"
    -HTPasswordExport=htpassword faila paaudze
    -NoThirdPartyAssociatedToMember=Neviena trešā puse saistīta ar šo locekli
    +HTPasswordExport=htpassword faila izveide
    +NoThirdPartyAssociatedToMember=Neviena trešā puse nav saistīta ar šo dalībnieku
     MembersAndSubscriptions= Dalībnieki un Abonementi
     MoreActions=Papildu darbības ar ierakstu
     MoreActionsOnSubscription=Papildina rīcību, kas ierosināta pēc noklusējuma, ierakstot abonementu
    @@ -157,7 +157,7 @@ DocForOneMemberCards=Izveidot vizītkartes kādā konkrētā dalībnieka
     DocForLabels=Izveidot adrešu lapas
     SubscriptionPayment=Abonēšanas maksa
     LastSubscriptionDate=Jaunākais piereģistrēšanās datums
    -LastSubscriptionAmount=Latest subscription amount
    +LastSubscriptionAmount=Jaunākās abonēšanas summa
     MembersStatisticsByCountries=Dalībnieku statistika pa valstīm
     MembersStatisticsByState=Dalībnieku statistika pēc štatiem/provincēm
     MembersStatisticsByTown=Dalībnieku statistika pa pilsētām
    @@ -167,7 +167,7 @@ NoValidatedMemberYet=Nav apstiprinātas locekļi atrasti
     MembersByCountryDesc=Šis ekrāns parādīs statistiku par biedriem pa valstīm. Grafiskais tomēr ir atkarīga Google tiešsaistes grafiku pakalpojums un ir pieejama tikai tad, ja interneta pieslēgums darbojas.
     MembersByStateDesc=Šis ekrāns parādīs statistiku par dalībniekiem, valsts / provinces / Canton.
     MembersByTownDesc=Šis ekrāns parādīs statistiku par biedriem ar pilsētu.
    -MembersStatisticsDesc=Izvēlieties statistiku vēlaties izlasīt ...
    +MembersStatisticsDesc=Izvēlieties statistiku kuru vēlaties izlasīt ...
     MenuMembersStats=Statistika
     LastMemberDate=Pēdējā biedra datums
     LatestSubscriptionDate=Jaunākais piereģistrēšanās datums
    @@ -188,11 +188,10 @@ MembersByNature=This screen show you statistics on members by nature.
     MembersByRegion=This screen show you statistics on members by region.
     VATToUseForSubscriptions=PVN likme izmantot abonementu
     NoVatOnSubscription=Nav TVA par abonēšanu
    -MEMBER_PAYONLINE_SENDEMAIL=Email to use for email warning when Dolibarr receive a confirmation of a validated payment for a subscription (Example: paymentdone@example.com)
     ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for subscription line into invoice: %s
     NameOrCompany=Vārds vai uzņēmums
     SubscriptionRecorded=Abonements ir ierakstīts
     NoEmailSentToMember=Biedram nav nosūtīts neviens e-pasts
     EmailSentToMember=E-pasts tiek nosūtīts dalībniekam %s
     SendReminderForExpiredSubscriptionTitle=Nosūtiet atgādinājumu pa e-pastu, kad esat beidzis abonementu
    -SendReminderForExpiredSubscription=Nosūtiet atgādinājumu pa e-pastu dalībniekiem, kad abonements beigsies (parametrs ir dienu skaits pirms abonēšanas beigām, lai nosūtītu atgādinājumu).
    +SendReminderForExpiredSubscription=Sūtīt atgādinājumu pa e-pastu dalībniekiem, kad abonements beigsies (parametrs ir dienu skaits pirms abonementa beigām, lai nosūtītu atgādinājumu. Tas var būt dienu saraksts, kas atdalīti ar semikolu, piemēram, '10; 5; 0; -5 ")
    diff --git a/htdocs/langs/lv_LV/modulebuilder.lang b/htdocs/langs/lv_LV/modulebuilder.lang
    index a70b03d2c69..e871645b281 100644
    --- a/htdocs/langs/lv_LV/modulebuilder.lang
    +++ b/htdocs/langs/lv_LV/modulebuilder.lang
    @@ -1,19 +1,19 @@
     # Dolibarr language file - Source file is en_US - loan
    -ModuleBuilderDesc=Šie rīki ir jāizmanto pieredzējušiem lietotājiem vai izstrādātājiem. Tas dod jums programmu, lai izveidotu vai rediģētu savu moduli (dokumentācija alternatīvu <a href="%s" target="_blank"> manuālajai izstrādei ir pieejama šeit </a>).
    +ModuleBuilderDesc=Šo rīku drīkst izmantot tikai pieredzējuši lietotāji vai izstrādātāji. Tas dod jums utilītus, lai izveidotu vai rediģētu savu moduli. <br> Dokumentācija alternatīvai <a href="%s" target="_blank"> manuālajai izstrādei ir pieejama šeit </a>.
     EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
     EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
     ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
    -ModuleBuilderDesc3=Generated/editable modules found: <strong>%s</strong>
    -ModuleBuilderDesc4=A module is detected as 'editable' when the file <strong>%s</strong> exists in root of module directory
    +ModuleBuilderDesc3=Atrastie / rediģējamie moduļi: <strong> %s </strong>
    +ModuleBuilderDesc4=Modulis identificēts kā "rediģējams", kad moduļa saknes direktorijā  atrodas fails <strong> %s </strong>
     NewModule=Jauns modulis
     NewObject=Jauns objekts
     ModuleKey=Moduļa atslēga
     ObjectKey=Objekta atslēga
     ModuleInitialized=Modulis inicializēts
     FilesForObjectInitialized=Files for new object '%s' initialized
    -FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
    +FilesForObjectUpdated=Atjaunots objektu '%s' faili (.sql faili un .class.php fails)
     ModuleBuilderDescdescription=Enter here all general information that describe your module.
    -ModuleBuilderDescspecifications=Šeit varat ievadīt garu tekstu, lai aprakstītu moduļa specifikācijas, kas vēl nav strukturētas citās cilnēs. Tātad jums ir viegli sasniegt visus noteikumus, kas jāattīsta. Arī šis teksta saturs tiks iekļauts ģenerētajā dokumentācijā (skatiet pēdējo rindkopu). Jūs varat izmantot Markdown formātu, bet tiek ieteikts izmantot Asciidoc formātu (salīdzinājums starp .md un .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown).
    +ModuleBuilderDescspecifications=Jūs varat ievadīt šeit detalizētu aprakstu par jūsu moduļa specifikācijām, kas vēl nav strukturētas citās cilnēs. Tātad jums ir viegli sasniegt visus noteikumus, kas jāattīsta. Arī šis teksta saturs tiks iekļauts ģenerētajā dokumentācijā (skatiet pēdējo cilni). Jūs varat izmantot Markdown formātu, taču ieteicams izmantot Asciidoc formātu (salīdzinājums starp .md un .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown).
     ModuleBuilderDescobjects=Šeit definējiet objektus, kurus vēlaties pārvaldīt, izmantojot moduli. Tiks izveidots CRUD DAO klase, SQL faili, objektu ierakstu saraksta lapa, lai izveidotu / rediģētu / skatītu ierakstu un API.
     ModuleBuilderDescmenus=Šī cilne ir paredzēta, lai definētu izvēlnes ierakstus, ko nodrošina jūsu modulis.
     ModuleBuilderDescpermissions=Šī cilne ir paredzēta, lai definētu jaunās atļaujas, kuras vēlaties nodrošināt ar savu moduli.
    @@ -21,12 +21,12 @@ ModuleBuilderDesctriggers=Tas ir moduļa sniegto aktivitāšu skatījums. Lai ie
     ModuleBuilderDeschooks=Šī cilne ir paredzēta āķiem.
     ModuleBuilderDescwidgets=Šī cilne ir paredzēta, lai pārvaldītu/veidotu logrīkus.
     ModuleBuilderDescbuildpackage=Jūs varat ģenerēt šeit moduļa "gatavs izplatīšanai" pakotnes failu (standartizētu .zip failu) un dokumentācijas failu "gatavs izplatīšanai". Vienkārši noklikšķiniet uz pogas, lai izveidotu paketi vai dokumentācijas failu.
    -EnterNameOfModuleToDeleteDesc=Varat izdzēst savu moduli. BRĪDINĀJUMS: visi moduļa faili, kā arī strukturētie dati un dokumentācija noteikti tiks zaudēti!
    -EnterNameOfObjectToDeleteDesc=Jūs varat izdzēst objektu. BRĪDINĀJUMS: visi faili, kas saistīti ar objektu, tiks noteikti zaudēti!
    +EnterNameOfModuleToDeleteDesc=Varat izdzēst savu moduli. BRĪDINĀJUMS: visi moduļa un strukturēto datu un dokumentācijas faili tiks dzēsti!
    +EnterNameOfObjectToDeleteDesc=Jūs varat izdzēst objektu. BRĪDINĀJUMS: visi ar objektu saistītie faili tiks dzēsti!
     DangerZone=Bīstamā zona
     BuildPackage=Veidojiet paketi / dokumentāciju
     BuildDocumentation=Izveidot dokumentāciju
    -ModuleIsNotActive=Šis modulis vēl nav aktivizēts. Iet uz %s, lai to veiktu, vai arī noklikšķiniet šeit:
    +ModuleIsNotActive=Šis modulis vēl nav aktivizēts. Lai to veiktu, spiediet uz %s vai noklikšķiniet šeit:
     ModuleIsLive=Šis modulis ir aktivizēts. Jebkuras izmaiņas tajā var pārtraukt pašreizējo aktīvo funkciju.
     DescriptionLong=Apraksts
     EditorName=Redaktora vārds
    @@ -47,7 +47,7 @@ RegenerateClassAndSql=Dzēst un atjaunot klases un sql failus
     RegenerateMissingFiles=Izveidot trūkstošos failus
     SpecificationFile=Fails ar uzņēmējdarbības noteikumiem
     LanguageFile=Valoda
    -ConfirmDeleteProperty=Vai tiešām vēlaties dzēst īpašumu <strong> %s </ strong>? Tas mainīs kodu PHP klasē, bet no tabulas definīcijas no kolonnas noņems arī objektu.
    +ConfirmDeleteProperty=Vai tiešām vēlaties dzēst īpašumu <strong> %s </strong>? Tas mainīs kodu PHP klasē, un no tabulas definīcijas kolonnas noņems arī objektu.
     NotNull=Nav NULL
     NotNullDesc=1 = Iestatiet datubāzi NOT NULL. -1 = Atļaut nulles vērtības un spēka vērtību NULL, ja tukšs ('' vai 0).
     SearchAll=Lietots, lai "meklētu visu"
    @@ -66,7 +66,7 @@ PageForLib=PHP bibliotēku fails
     SqlFileExtraFields=Sql fails papildu atribūtiem
     SqlFileKey=Sql failu atslēgas
     AnObjectAlreadyExistWithThisNameAndDiffCase=Priekšmets jau pastāv ar šo vārdu un citu lietu
    -UseAsciiDocFormat=Jūs varat izmantot Markdown formātu, bet tiek ieteikts izmantot Asciidoc formātu (salīdzinājums starp .md un .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown).
    +UseAsciiDocFormat=Jūs varat izmantot Markdown formātu, taču ieteicams izmantot Asciidoc formātu (salīdzinājums starp .md un .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown).
     IsAMeasure=Vai pasākums
     DirScanned=Direktorija skenēta
     NoTrigger=Nav sprūda
    @@ -74,7 +74,7 @@ NoWidget=Nav logrīku
     GoToApiExplorer=Iet uz API pētnieku
     ListOfMenusEntries=Izvēlnes ierakstu saraksts
     ListOfPermissionsDefined=Noteikto atļauju saraksts
    -SeeExamples=See examples here
    +SeeExamples=Skatiet piemērus šeit
     EnabledDesc=Nosacījums, lai šis lauks būtu aktīvs (piemēri: 1 vai $ conf-> globāla-> MYMODULE_MYOPTION)
     VisibleDesc=Vai lauks ir redzams? (Piemēri: 0 = Nekad nav redzams, 1 = Redzams sarakstā un izveido / atjaunina / skata veidlapas, 2 = Redzams tikai sarakstā, 3 = Redzams tikai veidojot / atjauninot / skata formu. saraksta noklusējums, bet to var atlasīt skatīšanai)
     IsAMeasureDesc=Vai lauka vērtību var uzkrāties, lai kopsumma tiktu iekļauta sarakstā? (Piemēri: 1 vai 0)
    @@ -83,19 +83,20 @@ SpecDefDesc=Ievadiet šeit visu dokumentāciju, ko vēlaties iesniegt ar savu mo
     LanguageDefDesc=Ievadiet šos failus, visu valodas faila atslēgu un tulkojumu.
     MenusDefDesc=Šeit definējiet izvēlnes, ko nodrošina jūsu modulis (pēc definīcijas tie ir redzami izvēlnes redaktorā %s)
     PermissionsDefDesc=Šeit definējiet jaunās atļaujas, kuras nodrošina jūsu modulis (pēc definīcijas tie ir redzami noklusējuma atļaujas iestatījumam %s)
    -HooksDefDesc=Modu deskriptorā <b> module_parts ['āķi'] </ b> definējiet āķu kontekstu, kuru vēlaties pārvaldīt (konteksta sarakstu var atrast, veicot meklēšanu ar <b> initHooks (</ b> b> "galvenajā kodā). <br> Rediģējiet āķa failu, lai pievienotu savu āķa funkciju kodu (kontaktu funkcijas var atrast, veicot meklēšanu ar kodu <b> executeHooks </ b> ').
    +HooksDefDesc=Modu deskriptorā <b> module_parts ['āķi'] </b>definējiet āķu kontekstu, kuru vēlaties pārvaldīt (konteksta sarakstu var atrast, veicot meklēšanu ar <b> initHooks (</b>'galvenajā kodā). <br> Rediģējiet āķa failu, lai pievienotu savu āķa funkciju kodu (kontaktu funkcijas var atrast, veicot meklēšanu ar kodu <b> executeHooks </b> ').
     TriggerDefDesc=Sprūda failā definējiet kodu, kuru vēlaties izpildīt katram notikušajam notikumam.
     SeeIDsInUse=Skatiet jūsu instalācijā izmantotos ID
     SeeReservedIDsRangeHere=Skatiet rezervēto ID diapazonu
     ToolkitForDevelopers=Dolibarr izstrādātāju rīks
    -TryToUseTheModuleBuilder=Ja jums ir zināšanas SQL un PHP, varat mēģināt izmantot vietējo moduļu veidotāja vedni. Vienkārši aktivizējiet moduli un izmantojiet vedni, noklikšķinot uz <span class = "fa fa-bug"> </ span> augšējā labajā izvēlnē. Brīdinājums: šī ir izstrādātāja funkcija, jo slikta lietošana var pārtraukt jūsu lietojumprogrammas darbību.
    +TryToUseTheModuleBuilder=Ja jums ir zināšanas par SQL un PHP, jūs varat izmantot native moduļa veidotāja vedni. <br> Ieslēdziet moduli <strong> %s </strong> un izmantojiet vedni, noklikšķinot uz <span class="fa fa-bug"></span> augšējā labajā izvēlnē. <br> Brīdinājums: šī ir uzlabotas izstrādātāja funkcija, <b> ne </b> eksperimentējiet savā ražotnē!
     SeeTopRightMenu=Augšējā labajā izvēlnē skatiet <span class="fa fa-bug"></span>
     AddLanguageFile=Pievienot valodas failu
     YouCanUseTranslationKey=Šeit varat izmantot atslēgu, kas ir tulkošanas atslēga, kas tiek atrasta valodas failā (sk. Cilni "Valodas").
     DropTableIfEmpty=(Dzēst tabulu, ja tukša)
    -TableDoesNotExists=Tabula %s nepastāv
    +TableDoesNotExists=Tabula %s neeksistē
     TableDropped=Tabula %s dzēsta
     InitStructureFromExistingTable=Veidojiet esošās tabulas struktūras masīva virkni
    -UseAboutPage=Disallow the about page
    -UseDocFolder=Disallow the documentation folder
    -UseSpecificReadme=Use a specific ReadMe
    +UseAboutPage=Atspējot par lapu
    +UseDocFolder=Atspējot dokumentācijas mapi
    +UseSpecificReadme=Izmantot īpašu IzlasiMani
    +RealPathOfModule=Reālais moduļa ceļš
    diff --git a/htdocs/langs/lv_LV/multicurrency.lang b/htdocs/langs/lv_LV/multicurrency.lang
    index 563a180c762..b205cfcb83b 100644
    --- a/htdocs/langs/lv_LV/multicurrency.lang
    +++ b/htdocs/langs/lv_LV/multicurrency.lang
    @@ -4,17 +4,17 @@ ErrorAddRateFail=Pievienotās likmes kļūda
     ErrorAddCurrencyFail=Pievienotajā valūtā radusies kļūda
     ErrorDeleteCurrencyFail=Kļūda dzēšot
     multicurrency_syncronize_error=Sinhronizācijas kļūda: %s
    -MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate
    -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate)
    +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Izmantojiet dokumenta datumu, lai atrastu valūtas kursu, nevis izmantojiet jaunāko zināmo kursu
    +multicurrency_useOriginTx=Ja objekts tiek izveidots no cita, saglabājiet sākotnējo likmi no avota objekta (citādi izmantojiet jaunāko zināmo likmi)
     CurrencyLayerAccount=CurrencyLayer API
    -CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality<br>Get your <b>API key</b><br />If you use a free account you can't change the <b>currency source</b> (USD by default)<br />But if your main currency isn't USD you can use the <b>alternate currency source</b> to force you main currency<br /><br />You are limited at 1000 synchronizations per month
    +CurrencyLayerAccount_help_to_synchronize=Lai izmantotu šo funkciju, jums ir jāizveido konts savā tīmekļa vietnē. <br> Saņemiet <b> API atslēgu </ b>. <br> Ja izmantojat bezmaksas kontu, nevarat mainīt <b> valūtas avotu </ b> b> (pēc noklusējuma USD). <br> Ja jūsu galvenā valūta nav ASV dolārs, varat izmantot <b> alternatīvo valūtas avotu </ b>, lai piespiestu jūsu galveno valūtu. <br> <br> Jums ir ierobežota līdz 1000 sinhronizācijām mēnesī.
     multicurrency_appId=API atslēga
     multicurrency_appCurrencySource=Valūtas avots
     multicurrency_alternateCurrencySource=Alternatīvs valūtas avots
     CurrenciesUsed=Izmantotās valūtas
    -CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you <b>proposals</b>, <b>orders</b>, etc.
    +CurrenciesUsed_help_to_add=Pievienojiet dažādas valūtas un likmes, kas jāizmanto <b> priekšlikumiem</b>, <b> pasūtījumiem</b> utt.
     rate=likme
    -MulticurrencyReceived=Received, original currency
    -MulticurrencyRemainderToTake=Atlikušā summa, oriģinālā valūtā
    +MulticurrencyReceived=Saņemta oriģinālā valūta
    +MulticurrencyRemainderToTake=Atlikušā summa, oriģināla valūta
     MulticurrencyPaymentAmount=Maksājuma summa, oriģinālajā valūtā
    -AmountToOthercurrency=Amount To (in currency of receiving account)
    +AmountToOthercurrency=Summa līdz (konta saņemšanas valūtā)
    diff --git a/htdocs/langs/lv_LV/other.lang b/htdocs/langs/lv_LV/other.lang
    index c03dc12a691..101b334968c 100644
    --- a/htdocs/langs/lv_LV/other.lang
    +++ b/htdocs/langs/lv_LV/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Drošības kods
     NumberingShort=N°
     Tools=Darbarīki
     TMenuTools=Rīki
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=Visi instrumenti, kas nav iekļauti citos izvēlnes ierakstos, tiek sagrupēti šeit. <br> Visiem rīkiem var piekļūt, izmantojot kreiso izvēlni.
     Birthday=Dzimšanas diena
     BirthdayDate=Dzimšanas diena
     DateToBirth=Dzimšanas datums
    @@ -11,7 +11,7 @@ BirthdayAlertOn=dzimšanas dienas brīdinājums aktīvs
     BirthdayAlertOff=dzimšanas dienas brīdinājums neaktīvs
     TransKey=Translation of the key TransKey
     MonthOfInvoice=Rēķina datuma mēnesis (no 1-12)
    -TextMonthOfInvoice=Month (text) of invoice date
    +TextMonthOfInvoice=Rēķina datuma mēnesis (teksts)
     PreviousMonthOfInvoice=Rēķina datuma iepriekšējais mēnesis (no 1-12)
     TextPreviousMonthOfInvoice=Previous month (text) of invoice date
     NextMonthOfInvoice=Pēc mēneša (no 1-12) rēķina datums
    @@ -23,17 +23,14 @@ MessageForm=Ziņa par tiešsaistes maksājuma veidlapu
     MessageOK=Ziņu kopā ar apstiprinātu maksājuma atgriešanās lapā
     MessageKO=Ziņa par atcelto maksājumu atgriešanās lapā
     ContentOfDirectoryIsNotEmpty=Šīs direktorijas saturs nav tukšs.
    -DeleteAlsoContentRecursively=Pārbaudiet, lai izdzēstu visu rekursīvu saturu
    +DeleteAlsoContentRecursively=Pārbaudiet, lai rekursīvi izdzēstu visu saturu
     
     YearOfInvoice=Rēķina datums
     PreviousYearOfInvoice=Iepriekšējā rēķina datuma gads
     NextYearOfInvoice=Pēc gada rēķina datuma
    -DateNextInvoiceBeforeGen=Nākamā rēķina datums (pirms paaudzes)
    +DateNextInvoiceBeforeGen=Nākamā rēķina datums (pirms izveidošanas)
     DateNextInvoiceAfterGen=Nākamā rēķina datums (pēc paaudzes)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervences apstiprināts
    -Notify_FICHINTER_SENTBYMAIL=Intervences nosūtīt pa pastu
     Notify_ORDER_VALIDATE=Klienta pasūtījums apstiprināts
     Notify_ORDER_SENTBYMAIL=Klienta rīkojumam, kas nosūtīts pa pastu
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Piegādātājs rīkojumam, kas nosūtīts pa pastu
    @@ -41,25 +38,27 @@ Notify_ORDER_SUPPLIER_VALIDATE=Piegādātāja pasūtījums reģistrēts
     Notify_ORDER_SUPPLIER_APPROVE=Piegādātājs, lai apstiprinātu
     Notify_ORDER_SUPPLIER_REFUSE=Piegādātājs lai atteicās
     Notify_PROPAL_VALIDATE=Klientu priekšlikums apstiprināts
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Klienta piedāvājums ir noslēgts parakstīts
    +Notify_PROPAL_CLOSE_REFUSED=Klienta iesniegtais piedāvājums ir noraidīts
     Notify_PROPAL_SENTBYMAIL=Commercial priekšlikums nosūtīts pa pastu
     Notify_WITHDRAW_TRANSMIT=Pārraides atsaukšana
     Notify_WITHDRAW_CREDIT=Kredīta izņemšana
     Notify_WITHDRAW_EMIT=Veikt atcelšanu
     Notify_COMPANY_CREATE=Trešās puse izveidota
    -Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
    +Notify_COMPANY_SENTBYMAIL=Pasta sūtīšana no trešās puses kartiņas
     Notify_BILL_VALIDATE=Klienta rēķins apstiprināts
     Notify_BILL_UNVALIDATE=Klienta rēķins neapstiprināts
    -Notify_BILL_PAYED=Klienta rēķins samaksāts
    +Notify_BILL_PAYED=Klienta rēķins ir samaksāts
     Notify_BILL_CANCEL=Klienta rēķins atcelts
     Notify_BILL_SENTBYMAIL=Klienta rēķins nosūtīts pa pastu
     Notify_BILL_SUPPLIER_VALIDATE=Piegādātāja rēķins apstiprināts
    -Notify_BILL_SUPPLIER_PAYED=Piegādātāja rēķins jāapmaksā
    +Notify_BILL_SUPPLIER_PAYED=Piegādātāja rēķins ir samaksāts
     Notify_BILL_SUPPLIER_SENTBYMAIL=Piegādātāja rēķins nosūtīts pa pastu
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Līgums ir apstiprināts
     Notify_FICHEINTER_VALIDATE=Intervences apstiprināts
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervences nosūtīt pa pastu
     Notify_SHIPPING_VALIDATE=Piegāde apstiprināta
     Notify_SHIPPING_SENTBYMAIL=Piegāde nosūtīta pa pastu
     Notify_MEMBER_VALIDATE=Dalībnieks apstiprināts
    @@ -71,29 +70,35 @@ Notify_PROJECT_CREATE=Projekts izveidots
     Notify_TASK_CREATE=Uzdevums izveidots
     Notify_TASK_MODIFY=Uzdevums labots
     Notify_TASK_DELETE=Uzdevums dzēsts
    +Notify_EXPENSE_REPORT_VALIDATE=Izdevumu pārskats apstiprināts (nepieciešams apstiprinājums)
    +Notify_EXPENSE_REPORT_APPROVE=Izdevumu pārskats ir apstiprināts
    +Notify_HOLIDAY_VALIDATE=Atteikt pieprasījumu apstiprināt (nepieciešams apstiprinājums)
    +Notify_HOLIDAY_APPROVE=Atvaļinājuma pieprasījums apstiprināts
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Skaits pievienotos failus / dokumentus
     TotalSizeOfAttachedFiles=Kopējais apjoms pievienotos failus / dokumentus
     MaxSize=Maksimālais izmērs
     AttachANewFile=Pievienot jaunu failu / dokumentu
     LinkedObject=Saistītais objekts
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    -PredefinedMailTest=__(Sveiki)__\nŠis ir testa pasts, kas nosūtīts uz __EMAIL__.\nAbas līnijas ir atdalītas ar vagona atgriešanu.\n\n__USER_SIGNATURE__
    -PredefinedMailTestHtml=__(Sveiki)__\nŠis ir <b> testa </ ​​b> pasts (vārda pārbaude ir treknrakstā). <br> Divas rindas atdala ar rāmja atgriešanu. <br> <br> __USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Sveiki)__\n\nŠeit jūs atradīsiet komerciālu priekšlikumu __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Sveiki)__\n\nŠeit jūs atradīsiet cenu pieprasījumu __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Sveiki)__\n\nJūs atradīsit šeit pasūtījumu __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Sveiki)__\n\nJūs atradīsiet šeit mūsu pasūtījumu __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Sveiki)__\n\nŠeit jūs atradīsiet rēķinu __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Sveiki)__\n\nŠeit jūs atradīsit piegādi __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Sveiki)__\n\nŠeit jūs atradīsiet intervenci __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    +NbOfActiveNotifications=Paziņojumu skaits (saņēmēju e-pasta ziņojumu skaits)
    +PredefinedMailTest=__(Labdien)__\nŠis ir testa pasts, kas nosūtīts uz __EMAIL__.\nAbas līnijas ir atdalītas.\n\n__USER_SIGNATURE__
    +PredefinedMailTestHtml=__(Labdien)__\nŠis ir <b> testa </b>pasts (vārds testa ir jābūt treknrakstā). <br> Divas rindas atdala ar rāmi. <br> <br> __USER_SIGNATURE__
    +PredefinedMailContentContract=__(Labdien,)__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Labdien)__\n\nLūdzu, pievienojiet rēķinu __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Labdien)__\n\nMēs vēlamies jūs brīdināt, ka rēķins __REF__, šķiet, nav samaksāts. Rēķins ir pievienots kā atgādinājums.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Labdien)__\n\nLūdzu, pievienojiet komerciālu priekšlikumu __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Labdien,)__\n\nLūdzu, pievienojiet cenu pieprasījumu __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Labdien)__\n\nLūdzu, pievienojiet pasūtījumu __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Labdien)__\n\nLūdzu, pievienojiet mūsu pasūtījumu __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Labdien)__\n\nLūdzu, pievienojiet rēķinu __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Labdien)__\n\nLūdzu, pievienojiet piegādi __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Labdien)__\n\nLūdzu, pievienojiet intervenci __REF__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Sveiki)__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentUser=__(Sveiki)__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    -PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
    -DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    -ChooseYourDemoProfil=Choose the demo profile that best suits your needs...
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentUser=__(Labdien,)__\n\n\n__ (Ar cieņu) __\n\n__USER_SIGNATURE__
    +PredefinedMailContentLink=Jūs varat noklikšķināt uz zemāk esošās saites, lai veiktu maksājumu, ja tas vēl nav izdarīts.\n\n%s\n\n
    +DemoDesc=Dolibarr ir kompakts ERP / CRM, kas atbalsta vairākus biznesa moduļus. Demonstrācija, kas demonstrē visus moduļus, nav jēga, jo šis scenārijs nekad nenotiek (pieejami vairāki simti). Tātad, ir pieejami vairāki demo profili.
    +ChooseYourDemoProfil=Izvēlies demo profilu, kas vislabāk atbilst jūsu vajadzībām ...
     ChooseYourDemoProfilMore=... vai izveidojiet savu profilu <br> (manuālā moduļa izvēle)
     DemoFundation=Pārvaldīt locekļus nodibinājumam
     DemoFundation2=Pārvaldīt dalībniekus un bankas kontu nodibinājumam
    @@ -164,15 +169,15 @@ SizeUnitmm=mm
     SizeUnitinch=colla
     SizeUnitfoot=pēda
     SizeUnitpoint=punkts
    -BugTracker=Bug tracker
    +BugTracker=Kļūdu meklētājs
     SendNewPasswordDesc=Šī veidlapa ļauj pieprasīt jaunu paroli. Tas tiks nosūtīts uz jūsu e-pasta adresi. <br> Mainīšana stāsies spēkā pēc tam, kad noklikšķināsit uz e-pasta ziņojuma apstiprinājuma saites. <br> Pārbaudiet savu iesūtni.
     BackToLoginPage=Atpakaļ uz autorizācijas lapu
     AuthenticationDoesNotAllowSendNewPassword=Autentifikācijas režīms ir <b>%s.</b> <br> Šajā režīmā, Dolibarr nevar zināt, ne nomainīt savu paroli. <br> Sazinieties ar sistēmas administratoru, ja jūs vēlaties mainīt savu paroli.
    -EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option.
    +EnableGDLibraryDesc=Instalējiet vai iespējojiet GD bibliotēku savā PHP instalācijā, lai izmantotu šo opciju.
     ProfIdShortDesc=<b>Prof ID %s</b> ir informācija, atkarībā no trešās puses valstīm. <br> Piemēram, attiecībā uz valstu <b>%s,</b> tas ir kods <b>%s.</b>
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Pārskatu subjektu skaita statistika (rēķina numurs vai pasūtījums ...)
     NumberOfProposals=Priekšlikumu skaits
     NumberOfCustomerOrders=Klientu pasūtījumu skaits
     NumberOfCustomerInvoices=Klientu rēķinu skaits
    @@ -185,11 +190,12 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Vienību skaits pēc piegādātāju priekšlikumiem
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=Jums ir piešķirta jauna iejaukšanās %s.
     EMailTextInterventionValidated=Iejaukšanās %s ir apstiprināta.
     EMailTextInvoiceValidated=Rēķins %s ir apstiprināts.
    +EMailTextInvoicePayed=Rēķins %s ir samaksāts.
     EMailTextProposalValidated=Priekšlikums %s ir apstiprināts.
    -EMailTextProposalClosedSigned=Priekšlikums %s ir slēgts parakstīts.
    +EMailTextProposalClosedSigned=Priekšlikums %s ir slēgts, parakstīts.
     EMailTextOrderValidated=Pasūtījums %s ir apstiprināts.
     EMailTextOrderApproved=Pasūtījums %s ir apstiprināts.
     EMailTextOrderValidatedBy=The order %s has been recorded by %s.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Pasūtījumu %s ir apstiprinājis %s.
     EMailTextOrderRefused=Pasūtījums %s ir noraidīts.
     EMailTextOrderRefusedBy=Pasūtījums %s ir noraidījis %s.
     EMailTextExpeditionValidated=Kuģniecības %s ir apstiprināta.
    +EMailTextExpenseReportValidated=Izdevumu pārskats %s ir ticis apstiprināts.
    +EMailTextExpenseReportApproved=Izdevumu pārskats %s ir apstiprināts.
    +EMailTextHolidayValidated=Atvaļinājuma pieprasījums %s ir ticis apstiprināts.
    +EMailTextHolidayApproved=Atvaļinājuma pieprasījums %s ir apstiprināts.
     ImportedWithSet=Ievešanas datu kopu
     DolibarrNotification=Automātiska paziņošana
     ResizeDesc=Ievadiet jaunu platumu <b>vai</b> jaunu augstumu. Attiecība būs jātur laikā izmēru maiņas ...
    @@ -204,7 +214,7 @@ NewLength=Jauns platums
     NewHeight=Jauns augstums
     NewSizeAfterCropping=Jauns izmērs pēc apgriešanas
     DefineNewAreaToPick=Definēt jaunu apgabalu uz attēla, lai uzņemt (pa kreisi noklikšķiniet uz attēla, pēc tam velciet, līdz jūs sasniegsiet pretējo stūri)
    -CurrentInformationOnImage=Šis rīks ir izstrādāts, lai palīdzētu jums, lai mainītu vai apgrieztu attēlu. Šī ir informācija par pašreizējo edited attēlu
    +CurrentInformationOnImage=Šis rīks tika izveidots, lai palīdzētu jums mainīt attēla izmērus vai apgriezt tos. Šī ir informācija par pašreizējo rediģēto attēlu
     ImageEditor=Attēlu redaktors
     YouReceiveMailBecauseOfNotification=Jūs saņemat šo ziņojumu, jo jūsu e-pasts ir pievienota saraksta mērķiem ir informēt par konkrētiem notikumiem uz %s programmatūru %s.
     YouReceiveMailBecauseOfNotification2=Šis notikums ir šādi:
    @@ -225,16 +235,20 @@ NewKeyWillBe=Jūsu jaunais galvenais, lai pieteiktos uz programmatūru, būs
     ClickHereToGoTo=Klikšķiniet šeit, lai dotos uz %s
     YouMustClickToChange=Jums ir Taču vispirms noklikšķiniet uz šīs saites, lai apstiprinātu šo paroles maiņa
     ForgetIfNothing=Ja Jums nav lūgt šīs izmaiņas, vienkārši aizmirst šo e-pastu. Jūsu akreditācijas dati tiek glabāti drošībā.
    -IfAmountHigherThan=If amount higher than <strong>%s</strong>
    +IfAmountHigherThan=Ja summa pārsniedz  <strong>%s </strong>
     SourcesRepository=Repository for sources
     Chart=Diagramma
     PassEncoding=Paroles kodēšana
     PermissionsAdd=Pievienotas atļaujas
     PermissionsDelete=Atļaujas noņemtas
    -YourPasswordMustHaveAtLeastXChars=Jūsu parolei ir jābūt vismaz <strong> %s </ strong> simboliem
    +YourPasswordMustHaveAtLeastXChars=Jūsu parolei ir jāsatur vismaz <strong>%s</strong> simbolus
     YourPasswordHasBeenReset=Jūsu parole ir veiksmīgi atiestatīta
     ApplicantIpAddress=Pieteikuma iesniedzēja IP adrese
     SMSSentTo=SMS nosūtīta uz %s
    +MissingIds=Trūkst ID
    +ThirdPartyCreatedByEmailCollector=Trešā puses, kuru izveidojis e-pasta savācējs no e-pasta ID %s
    +ContactCreatedByEmailCollector=Kontakti/adrese, kuru izveidojis e-pasta savācējs no e-pasta ID %s
    +ProjectCreatedByEmailCollector=Projekts, ko izveidojis e-pasta savācējs no e-pasta ID %s
     
     ##### Export #####
     ExportsArea=Eksportēšanas sadaļa
    @@ -248,5 +262,7 @@ WebsiteSetup=Moduļa vietnes iestatīšana
     WEBSITE_PAGEURL=Lapas URL
     WEBSITE_TITLE=Virsraksts
     WEBSITE_DESCRIPTION=Apraksts
    +WEBSITE_IMAGE=Attēls
    +WEBSITE_IMAGEDesc=Attēlu nesēja relatīvais ceļš. Jūs varat to paturēt tukša, jo to reti izmanto (to var izmantot dinamiskais saturs, lai parādītu emuāra ziņu saraksta priekšskatījumu).
     WEBSITE_KEYWORDS=Atslēgas vārdi
    -LinesToImport=Importa līnijas
    +LinesToImport=Importējamās līnijas
    diff --git a/htdocs/langs/lv_LV/paybox.lang b/htdocs/langs/lv_LV/paybox.lang
    index 12f6f119f1e..7ef6863cbc0 100644
    --- a/htdocs/langs/lv_LV/paybox.lang
    +++ b/htdocs/langs/lv_LV/paybox.lang
    @@ -10,7 +10,7 @@ ToComplete=Lai pabeigtu
     YourEMail=Nosūtīt saņemt maksājuma apstiprinājumu
     Creditor=Kreditors
     PaymentCode=Maksājuma kods
    -PayBoxDoPayment=Pay with Credit or Debit Card (Paybox)
    +PayBoxDoPayment=Maksāt ar kredītkarti vai debetkarti (Paybox)
     ToPay=Apmaksāt
     YouWillBeRedirectedOnPayBox=Jums tiks novirzīts uz drošu Paybox lapā, lai ievadi kredītkartes informāciju
     Continue=Nākamais
    @@ -20,8 +20,9 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL piedāvāt %s tiešsaistes maksājumu
     ToOfferALinkForOnlinePaymentOnContractLine=URL piedāvāt %s tiešsaistes maksājumu lietotāja interfeisu līguma līnijas
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL piedāvāt %s tiešsaistes maksājumu lietotāja saskarni par brīvu summu
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL piedāvāt %s tiešsaistes maksājumu lietotāja interfeisu locekli abonementu
    +ToOfferALinkForOnlinePaymentOnDonation=URL, kas piedāvā %s tiešsaistes maksājumu lietotāja interfeisu ziedojuma apmaksai
     YouCanAddTagOnUrl=Jūs varat arī pievienot url parametrs <b>&amp; Tag = <i>vērtība,</i></b> kādu no šiem URL (nepieciešams tikai bezmaksas samaksu), lai pievienotu savu maksājumu komentāru tagu.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup savu Paybox ar url <b>%s</b> ir maksājums izveidots automātiski, kad apstiprinājis Paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Izveidojiet savu Paybox ar URL <b> %s </b>, lai maksājums tiktu izveidots automātiski, ja to apstiprina Paybox.
     YourPaymentHasBeenRecorded=Šajā lapā apliecina, ka jūsu maksājums ir reģistrēts. Paldies.
     YourPaymentHasNotBeenRecorded=Jūsu maksājums NAV reģistrēts un darījums ir atcelts. Paldies.
     AccountParameter=Konta parametri
    diff --git a/htdocs/langs/lv_LV/products.lang b/htdocs/langs/lv_LV/products.lang
    index 5e9201c2f68..2c6bce79846 100644
    --- a/htdocs/langs/lv_LV/products.lang
    +++ b/htdocs/langs/lv_LV/products.lang
    @@ -1,8 +1,8 @@
     # Dolibarr language file - Source file is en_US - products
     ProductRef=Produkta ref.
     ProductLabel=Produkta marķējums
    -ProductLabelTranslated=Translated product label
    -ProductDescriptionTranslated=Translated product description
    +ProductLabelTranslated=Tulkots produkta nosaukums
    +ProductDescriptionTranslated=Tulkotā produkta apraksts
     ProductNoteTranslated=Tulkota produkta piezīme
     ProductServiceCard=Produktu / Pakalpojumu kartiņa
     TMenuProducts=Produkti
    @@ -17,7 +17,7 @@ Reference=Atsauce
     NewProduct=Jauns produkts
     NewService=Jauns pakalpojums
     ProductVatMassChange=Masveida PVN maiņa
    -ProductVatMassChangeDesc=This page can be used to modify a VAT rate defined on products or services from a value to another. Warning, this change is done on all database.
    +ProductVatMassChangeDesc=Šo lapu var izmantot, lai mainītu PVN likmi, kas definēta produktiem vai pakalpojumiem, no vienas vērtības uz otru. Brīdinājums, šīs izmaiņas ir globālas / pabeigtas visās datubāzēs.
     MassBarcodeInit=Masveida svītru kodu izveidošana
     MassBarcodeInitDesc=This page can be used to initialize a barcode on objects that does not have barcode defined. Check before that setup of module barcode is complete.
     ProductAccountancyBuyCode=Grāmatvedības kods (iegāde)
    @@ -38,7 +38,7 @@ ServicesNotOnSell=Pakalpojumi, kas nav paredzēti pārdošanai un nav paredzēti
     ServicesOnSellAndOnBuy=Services for sale and for purchase
     LastModifiedProductsAndServices=Jaunākie %s labotie produkti / pakalpojumi
     LastRecordedProducts=Jaunākie ieraksti %s
    -LastRecordedServices=Latest %s recorded services
    +LastRecordedServices=Jaunākie %s reģistrētie pakalpojumi
     CardProduct0=Produkta kartiņa
     CardProduct1=Pakalpojuma karte
     Stock=Krājums
    @@ -97,12 +97,12 @@ NoteNotVisibleOnBill=Piezīme (nav redzama rēķinos, priekšlikumos ...)
     ServiceLimitedDuration=Ja produkts ir pakalpojums ir ierobežots darbības laiks:
     MultiPricesAbility=Several segment of prices per product/service (each customer is in one segment)
     MultiPricesNumPrices=Cenu skaits
    -AssociatedProductsAbility=Activate the feature to manage virtual products
    -AssociatedProducts=Virtuāls produkts
    +AssociatedProductsAbility=Aktivizēt virtuālos produktus (komplektus)
    +AssociatedProducts=Virtuālie produkti
     AssociatedProductsNumber=Produktu skaits kas veido šo virtuālo produktu
     ParentProductsNumber=Number of parent packaging product
     ParentProducts=Mātes produkti
    -IfZeroItIsNotAVirtualProduct=Ja 0, šis produkts ir ne virtuālā produkts
    +IfZeroItIsNotAVirtualProduct=Ja 0, šis produkts nav virtuāls produkts
     IfZeroItIsNotUsedByVirtualProduct=Ja 0, šis produkts netiek izmantots ar jebkuru virtuālo produkta
     KeywordFilter=Atslēgvārda filtru
     CategoryFilter=Sadaļu filtrs
    @@ -129,12 +129,12 @@ VATRateForSupplierProduct=PVN likme (šim piegādātājam / produktam)
     DiscountQtyMin=Noklusējuma apjoma atlaide
     NoPriceDefinedForThisSupplier=Nav cena /gab definēti šim piegādātājam/precei
     NoSupplierPriceDefinedForThisProduct=Nav piegādātāja cena/gab definēti šim produktam
    -PredefinedProductsToSell=Predefined products to sell
    -PredefinedServicesToSell=Predefined services to sell
    -PredefinedProductsAndServicesToSell=Predefined products/services to sell
    -PredefinedProductsToPurchase=Predefined product to purchase
    -PredefinedServicesToPurchase=Predefined services to purchase
    -PredefinedProductsAndServicesToPurchase=Predefined products/services to puchase
    +PredefinedProductsToSell=Iepriekš definēti produkti, kurus pārdot
    +PredefinedServicesToSell=Iepriekš definēti pakalpojumi, kurus pārdot
    +PredefinedProductsAndServicesToSell=Iepriekš definēti produkti/pakalpojumi, kurus pārdot
    +PredefinedProductsToPurchase=Iepriekš noteikts produkts, lai to iegādātos
    +PredefinedServicesToPurchase=Iepriekš noteikti pakalpojumi, lai iegādātos
    +PredefinedProductsAndServicesToPurchase=Iepriekš iegādātie produkti/pakalpojumi
     NotPredefinedProducts=Nav iepriekš definēti produkti / pakalpojumi
     GenerateThumb=Izveidot īkšķi
     ServiceNb=Pakalpojums # %s
    @@ -145,7 +145,7 @@ Finished=Ražota prece
     RowMaterial=Izejviela
     CloneProduct=Klonēt produktu vai pakalpojumu
     ConfirmCloneProduct=Vai jūs tiešām vēlaties klonēt šo produktu vai pakalpojumu <b>%s?</b>
    -CloneContentProduct=Klons visus galvenos informations par produktu / pakalpojumu
    +CloneContentProduct=Clone visu galveno informāciju par produktu / pakalpojumu
     ClonePricesProduct=Klonēt cenas
     CloneCompositionProduct=Clone packaged product/service
     CloneCombinationsProduct=Klonu produktu varianti
    @@ -159,7 +159,7 @@ SuppliersPricesOfProductsOrServices=Supplier prices (of products or services)
     CustomCode=Muita / Prece / HS kods
     CountryOrigin=Izcelsmes valsts
     Nature=Daba
    -ShortLabel=Short label
    +ShortLabel=Īsais nosaukums
     Unit=Vienība
     p=u.
     set=set
    @@ -202,7 +202,7 @@ PriceByQuantity=Different prices by quantity
     DisablePriceByQty=Atspējot cenas pēc daudzuma
     PriceByQuantityRange=Daudzuma diapazons
     MultipriceRules=Cenu segmenta noteikumi
    -UseMultipriceRules=Izmantojiet cenu segmenta noteikumus (definēti produkta moduļa iestatījumos), lai automātiski aprēķinātu visu pārējo segmentu cenas saskaņā ar pirmo segmentu
    +UseMultipriceRules=Izmantojiet cenu segmenta noteikumus (definēti produktu moduļa iestatījumos), lai automātiski aprēķinātu visu pārējo segmentu cenas saskaņā ar pirmo segmentu
     PercentVariationOver=%% variation over %s
     PercentDiscountOver=%% discount over %s
     KeepEmptyForAutoCalculation=Saglabājiet tukšu, lai tas tiktu automātiski aprēķināts pēc svara vai produktu daudzuma
    @@ -233,13 +233,13 @@ BarCodeDataForThirdparty=Svītrkoda informācija trešajām personām %s :
     ResetBarcodeForAllRecords=Norādiet visu ierakstu svītrkodu vērtību (tas arī atjaunos svītrkoda vērtību, kas jau ir definēta ar jaunām vērtībām).
     PriceByCustomer=Dažādas cenas katram klientam
     PriceCatalogue=A single sell price per product/service
    -PricingRule=Cenu veidošanas noteikumi
    -AddCustomerPrice=Add price by customer
    +PricingRule=Noteikumi par pārdošanas cenām
    +AddCustomerPrice=Pievienot cenu katram klientam
     ForceUpdateChildPriceSoc=Set same price on customer subsidiaries
     PriceByCustomerLog=Log of previous customer prices
     MinimumPriceLimit=Minimum price can't be lower then %s
     MinimumRecommendedPrice=Minimālā rekomendējamā cena : %s
    -PriceExpressionEditor=Price expression editor
    +PriceExpressionEditor=Cenas izteiksmes redaktors
     PriceExpressionSelected=Selected price expression
     PriceExpressionEditorHelp1="price = 2 + 2" or "2 + 2" for setting the price. Use ; to separate expressions
     PriceExpressionEditorHelp2=You can access ExtraFields with variables like <b>#extrafield_myextrafieldkey#</b> and global variables with <b>#global_mycode#</b>
    @@ -252,9 +252,9 @@ DefaultPrice=Noklusējuma cena
     ComposedProductIncDecStock=Increase/Decrease stock on parent change
     ComposedProduct=Apakš produkts
     MinSupplierPrice=Minimālā iepirkuma cena
    -MinCustomerPrice=Minimum selling price
    +MinCustomerPrice=Minimālā pārdošanas cena
     DynamicPriceConfiguration=Dynamic price configuration
    -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value.
    +DynamicPriceDesc=Produkta kartē, izmantojot šo moduli, jums ir jāspēj iestatīt matemātiskās funkcijas, lai aprēķinātu Klienta vai Piegādes cenas. Šāda funkcija var izmantot visus matemātiskos operatorus, dažas konstantes un mainīgos lielumus. Jūs varat iestatīt šeit mainīgos, kurus vēlaties izmantot, un ja mainīgajam ir nepieciešams automātisks atjauninājums, ārējais URL, ko izmantot, lai lūgtu Dolibarr automātiski atjaunināt vērtību.
     AddVariable=Pievienot mainīgo
     AddUpdater=Pievienot Atjaunotāju
     GlobalVariables=Global variables
    @@ -278,13 +278,13 @@ DefaultUnitToShow=Vienība
     NbOfQtyInProposals=Daudzums priekšlikumos
     ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view...
     ProductsOrServicesTranslations=Produktu vai pakalpojumu tulkošana
    -TranslatedLabel=Translated label
    +TranslatedLabel=Tulkota etiķete
     TranslatedDescription=Translated description
    -TranslatedNote=Translated notes
    -ProductWeight=Weight for 1 product
    -ProductVolume=Volume for 1 product
    +TranslatedNote=Tulkotās piezīmes
    +ProductWeight=Svars 1 precei
    +ProductVolume=Apjoms 1 precei
     WeightUnits=Svara vienība
    -VolumeUnits=Volume unit
    +VolumeUnits=Apjoma mērvienība
     SizeUnits=Izmēra vienība
     DeleteProductBuyPrice=Dzēst pirkšanas cenu
     ConfirmDeleteProductBuyPrice=Vai tiešām vēlaties dzēst pirkšanas cenu?
    @@ -293,7 +293,8 @@ ProductSheet=Produkta lapa
     ServiceSheet=Servisa lapa
     PossibleValues=Iespējamās vērtības
     GoOnMenuToCreateVairants=Iet uz izvēlni %s - %s, lai sagatavotu atribūtu variantus (piemēram, krāsas, izmērs, ...)
    -
    +UseProductFournDesc=Izmantojiet piegādātāju produktu aprakstus piegādātāju dokumentos
    +ProductSupplierDescription=Piegādātāja apraksts par produktu
     #Attributes
     VariantAttributes=Variantu atribūti
     ProductAttributes=Variantu atribūti produktiem
    @@ -301,7 +302,7 @@ ProductAttributeName=Variants atribūts %s
     ProductAttribute=Variants atribūts
     ProductAttributeDeleteDialog=Vai tiešām vēlaties dzēst šo atribūtu? Visas vērtības tiks dzēstas
     ProductAttributeValueDeleteDialog=Vai tiešām vēlaties izdzēst vērtību "%s" ar atsauci "%s" šim atribūtam?
    -ProductCombinationDeleteDialog=Vai tiešām vēlaties izdzēst produkta variantu "<strong> %s </ strong>"?
    +ProductCombinationDeleteDialog=Vai tiešām vēlaties izdzēst produkta variantu "<strong> %s </strong>"?
     ProductCombinationAlreadyUsed=Dzēšot variantu, radās kļūda. Lūdzu, pārbaudiet, vai tas netiek izmantots nevienā objektā
     ProductCombinations=Varianti
     PropagateVariant=Pavairot variantus
    @@ -315,7 +316,7 @@ SelectCombination=Izvēlieties kombināciju
     ProductCombinationGenerator=Variantu ģenerators
     Features=Iespējas
     PriceImpact=Cenu ietekme
    -WeightImpact=Svars ietekmē
    +WeightImpact=Svara ietekme
     NewProductAttribute=Jauns atribūts
     NewProductAttributeValue=Jauna atribūta vērtība
     ErrorCreatingProductAttributeValue=Veidojot atribūta vērtību, radās kļūda. Tas varētu būt tādēļ, ka ar šo atsauci jau ir esoša vērtība
    @@ -325,10 +326,12 @@ DoNotRemovePreviousCombinations=Nedzēst iepriekšējos variantus
     UsePercentageVariations=Izmantojiet procentuālās svārstības
     PercentageVariation=Procentu variācijas
     ErrorDeletingGeneratedProducts=Mēģinot izdzēst esošos produktu variantus, radās kļūda
    -NbOfDifferentValues=Sk dažādu vērtību
    -NbProducts=Produktu sk.
    +NbOfDifferentValues=Dažādu vērtību skaits
    +NbProducts=Produktu skaits
     ParentProduct=Mātes produkts
     HideChildProducts=Paslēpt dažādus produktus
    +ShowChildProducts=Rādīt dažādus produktus
    +NoEditVariants=Atveriet cilni varianti Mātes produktu kartes un rediģējiet variantu cenu ietekmi
     ConfirmCloneProductCombinations=Vai vēlaties kopēt visus produkta variantus uz citu vecāku produktu ar norādīto atsauci?
     CloneDestinationReference=Galamērķa produkta atsauce
     ErrorCopyProductCombinations=Atsiuninot produkta variantus, radās kļūda
    diff --git a/htdocs/langs/lv_LV/projects.lang b/htdocs/langs/lv_LV/projects.lang
    index b81f2d75a38..d28e48a8234 100644
    --- a/htdocs/langs/lv_LV/projects.lang
    +++ b/htdocs/langs/lv_LV/projects.lang
    @@ -24,7 +24,7 @@ TasksDesc=Šo viedokli iepazīstina visus projektus un uzdevumus (jūsu lietotā
     AllTaskVisibleButEditIfYouAreAssigned=Visi uzdevumi kvalificētiem projektiem ir redzami, taču jūs varat ievadīt laiku tikai tam uzdevumam, kas piešķirts izvēlētajam lietotājam. Piešķirt uzdevumu, ja uz to ir jāievada laiks.
     OnlyYourTaskAreVisible=Ir redzami tikai jums uzdotie uzdevumi. Piešķiriet uzdevumu sev, ja tas nav redzams, un tam ir jāievada laiks.
     ImportDatasetTasks=Projektu uzdevumi
    -ProjectCategories=Projekta tagi / kategorijas
    +ProjectCategories=Projekta tagi / sadaļas
     NewProject=Jauns projekts
     AddProject=Izveidot projektu
     DeleteAProject=Dzēst projektu
    @@ -33,25 +33,25 @@ ConfirmDeleteAProject=Vai tiešām vēlaties dzēst šo projektu?
     ConfirmDeleteATask=Vai tiešām vēlaties dzēst šo uzdevumu?
     OpenedProjects=Atvērtie projekti
     OpenedTasks=Atvērtie uzdevumi
    -OpportunitiesStatusForOpenedProjects=Atvērto projektu iespējas pēc statusa
    -OpportunitiesStatusForProjects=Iespēju skaits pēc projektu statusa
    +OpportunitiesStatusForOpenedProjects=Sasaistīto projektu skaits pēc statusa
    +OpportunitiesStatusForProjects=Sasniedz projektu skaitu pēc statusa
     ShowProject=Rādīt projektu
     ShowTask=Rādīt uzdevumu
     SetProject=Izvēlēties projektu
     NoProject=Neviens projekts nosaka, vai īpašumā
    -NbOfProjects=Nb projektu
    -NbOfTasks=Uzdevumu sk.
    +NbOfProjects=Projektu skaits
    +NbOfTasks=Uzdevumu skaits
     TimeSpent=Laiks, kas pavadīts
     TimeSpentByYou=Jūsu patērētais laiks
     TimeSpentByUser=Lietotāja patērētais laiks
     TimesSpent=Laiks, kas patērēts
     RefTask=Ref. uzdevums
    -LabelTask=Label uzdevums
    +LabelTask=Uzlīmes uzdevums
     TaskTimeSpent=Pavadītais laiks veicot uzdevumus
     TaskTimeUser=Lietotājs
     TaskTimeNote=Piezīme
     TaskTimeDate=Datums
    -TasksOnOpenedProject=Tasks on open projects
    +TasksOnOpenedProject=Uzdevumi atvērtajiem projektiem
     WorkloadNotDefined=Darba slodze nav definēta
     NewTimeSpent=Laiks, kas patērēts
     MyTimeSpent=Mans pavadīts laiks
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Doties uz uzdevumu sarakstu
     GoToGanttView=Doties uz Ganta skatu
     GanttView=Ganta skats
    -ListProposalsAssociatedProject=Saraksts tirdzniecības priekšlikumiem saistībā ar projektu
    -ListOrdersAssociatedProject=Saraksts ar klienta pasūtījumiem saistīts ar projektu
    -ListInvoicesAssociatedProject=Saraksts ar klienta rēķiniem, kas piesaistīti projektam
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Līgumu sarakstu kas saistīti ar projektu
    +ListProposalsAssociatedProject=Ar projektu saistīto komerciālo priekšlikumu saraksts
    +ListOrdersAssociatedProject=Projekta klientu pasūtījumu saraksts
    +ListInvoicesAssociatedProject=Saraksts ar klienta rēķiniem, kas saistīti ar projektu
    +ListPredefinedInvoicesAssociatedProject=Saraksts ar klienta veidnes rēķiniem, kas saistīti ar projektu
    +ListSupplierOrdersAssociatedProject=Piegādes pasūtījumu saraksts, kas saistīti ar projektu
    +ListSupplierInvoicesAssociatedProject=Saraksts ar piegādes rēķiniem, kas saistīti ar projektu
    +ListContractAssociatedProject=Ar projektu saistīto līgumu saraksts
     ListShippingAssociatedProject=Sūtījumu saraksts, kas saistīts ar projektu
    -ListFichinterAssociatedProject=Saraksts iejaukšanās saistīts ar projektu
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=Dažādu ar projektu saistīto maksājumu saraksts
    -ListActionsAssociatedProject=Saraksts ar notikumiem, kas saistīti ar projektu
    +ListFichinterAssociatedProject=Ar projektu saistīto pasākumu saraksts
    +ListExpenseReportsAssociatedProject=Ar projektu saistīto izdevumu pārskatu saraksts
    +ListDonationsAssociatedProject=Ar projektu saistīto ziedojumu saraksts
    +ListVariousPaymentsAssociatedProject=Dažādi ar projektu saistītie maksājumi
    +ListSalariesAssociatedProject=Projekta algu maksājumu saraksts
    +ListActionsAssociatedProject=Ar projektu saistīto notikumu saraksts
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=Uzdevumā patērētā laika saraksts
     ActivityOnProjectToday=Activity on project today
    @@ -103,7 +104,7 @@ ChildOfProjectTask=Bērna projekta / uzdevuma
     ChildOfTask=Apakš uzdevums
     TaskHasChild=Uzdevumam ir bērns
     NotOwnerOfProject=Ne īpašnieks šo privātam projektam
    -AffectedTo=Piešķirtas
    +AffectedTo=Piešķirts
     CantRemoveProject=Šo projektu nevar noņemt, jo tam ir atsauce ar kādu citu objektu (rēķinu, rīkojumus vai cits). Skatīt atsauču sadaļa.
     ValidateProject=Apstiprināt Projet
     ConfirmValidateProject=Vai jūs tiešām vēlaties apstiprināt šo projektu?
    @@ -117,7 +118,7 @@ TaskContact=Uzdevumu kontakti
     ActionsOnProject=Pasākumi par projektu
     YouAreNotContactOfProject=Jūs neesat kontakpersona šim privātam projektam
     UserIsNotContactOfProject=Lietotājs nav šī privātā projekta kontaktpersona
    -DeleteATimeSpent=Dzēst pavadīts laiks
    +DeleteATimeSpent=Dzēst patērēto laiku
     ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent?
     DoNotShowMyTasksOnly=See also tasks not assigned to me
     ShowMyTasksOnly=Skatīt tikai uzdevumus, kas piešķirti man
    @@ -125,10 +126,10 @@ TaskRessourceLinks=Kontaktpersonu uzdevums
     ProjectsDedicatedToThisThirdParty=Projekti, kas veltīta šai trešajai personai
     NoTasks=Neviens uzdevumi šajā projektā
     LinkedToAnotherCompany=Saistīts ar citām trešajām personām
    -TaskIsNotAssignedToUser=Uzdevums nav piešķirts lietotājam. Izmantojiet pogu "<strong> %s </ strong>", lai tagad uzdevumu piešķirtu.
    +TaskIsNotAssignedToUser=Uzdevums nav piešķirts lietotājam. Izmantojiet pogu "<strong>%s</strong>", lai uzdevumu piešķirtu.
     ErrorTimeSpentIsEmpty=Pavadīts laiks ir tukšs
     ThisWillAlsoRemoveTasks=Šī darbība arī izdzēst visus uzdevumus projekta <b>(%s</b> uzdevumi brīdī) un visu laiku ieguldījumiem pavadīts.
    -IfNeedToUseOhterObjectKeepEmpty=Ja daži objekti (rēķinu, pasūtījumu, ...), kas pieder citai trešai personai, ir saistītas ar projektu, lai izveidotu, saglabāt šo tukšo, lai būtu projektam, multi trešajām personām.
    +IfNeedToUseOtherObjectKeepEmpty=Ja daži objekti (rēķinu, pasūtījumu, ...), kas pieder citai trešai personai, ir saistītas ar projektu, lai izveidotu, saglabāt šo tukšo, lai būtu projektam, multi trešajām personām.
     CloneProject=Klonēt projektu
     CloneTasks=Klonēt uzdevumus
     CloneContacts=Klonēt kontaktus
    @@ -136,8 +137,8 @@ CloneNotes=Klonēt piezīmes
     CloneProjectFiles=Klons projekts pievienojās failus
     CloneTaskFiles=Klons uzdevums (-i) pievienotie failus (ja uzdevums (-i) klonēt)
     CloneMoveDate=Vai tagad atjaunināt projektu / uzdevumus?
    -ConfirmCloneProject=Are you sure to clone this project?
    -ProjectReportDate=Change task dates according to new project start date
    +ConfirmCloneProject=Vai tiešām vēlaties klonēt šo projektu?
    +ProjectReportDate=Mainīt uzdevumu datumus saskaņā ar jauno projekta sākuma datumu
     ErrorShiftTaskDate=Nav iespējams novirzīt uzdevumu datumu saskaņā ar jaunu projektu uzsākšanas datuma
     ProjectsAndTasksLines=Projekti un uzdevumi
     ProjectCreatedInDolibarr=Projekts %s izveidots
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Projekts %s ir labots
     TaskCreatedInDolibarr=Uzdevums %s izveidots
     TaskModifiedInDolibarr=Uzdevums %s labots
     TaskDeletedInDolibarr=Uzdevums %s dzēsts
    -OpportunityStatus=Iespēju statuss
    +OpportunityStatus=Svina statuss
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Iespējas varbūtība
    +OpportunityProbability=Svina varbūtība
     OpportunityProbabilityShort=Opp probab
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Svina daudzums
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Vidējā opcija summa
     OpportunityAmountWeigthedShort=Svērtā opcija summa
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Ieguldītājs
     SelectElement=Izvēlieties elementu
     AddElement=Saite uz elementu
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Saistīto objektu kopsavilkuma projekta dokumenta veidne
    +DocumentModelBaleine=Projekta dokumenta veidne uzdevumiem
    +DocumentModelTimeSpent=Projekta pārskata veidne par pavadīto laiku
     PlannedWorkload=Plānotais darba apjoms
     PlannedWorkloadShort=Darba slodze
     ProjectReferers=Saistītās vienības
    @@ -182,49 +184,53 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Uzdevumam nav piešķirts
    +NoUserAssignedToTheProject=Neviens lietotājs nav piešķirts šim projektam
     TimeSpentBy=Pavadītais laiks
     TasksAssignedTo=Uzdevumi, kas piešķirti
     AssignTaskToMe=Assign task to me
     AssignTaskToUser=Piešķirt uzdevumu %s
     SelectTaskToAssign=Atlasiet uzdevumu, lai piešķirtu ...
    -AssignTask=Assign
    -ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +AssignTask=Piešķirt
    +ProjectOverview=Pārskats
    +ManageTasks=Izmantojiet projektus, lai veiktu uzdevumus un / vai ziņotu par pavadīto laiku (laika kontrolsaraksts)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb izveidoto darbu pēc mēneša
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Atklāts projekts / vadība ar iespēju statusu
    +ProjectNbProjectByMonth=Izveidoto projektu skaits pēc mēneša
    +ProjectNbTaskByMonth=Izveidoto darbu skaits pa mēnešiem
    +ProjectOppAmountOfProjectsByMonth=Izložu skaits pēc mēnešiem
    +ProjectWeightedOppAmountOfProjectsByMonth=Vidējā svērto klientu skaits pēc mēneša
    +ProjectOpenedProjectByOppStatus=Atklāts projekts / vadošais statuss
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistika par projektu / vadošajiem uzdevumiem
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=Ja vēlaties pabeigt ref ar kādu informāciju (lai to izmantotu kā meklēšanas filtrus), to ieteicams pievienot rakstzīmi, lai to nošķirtu, tāpēc automātiska numerācija joprojām darbosies nākamajiem projektiem. Piemēram %s-ABC. Varat arī ieteicams pievienot meklēšanas atslēgas etiķetē. Bet labākā prakse var būt pievienot īpašu jomu, ko sauc arī par papildinošiem atribūtiem.
     OpenedProjectsByThirdparties=Atvērt trešo pušu projektus
    -OnlyOpportunitiesShort=Tikai iespējas
    -OpenedOpportunitiesShort=Atvērtās iespējas
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Iespēju summa, kas svērta ar varbūtību
    +OnlyOpportunitiesShort=Tikai ved
    +OpenedOpportunitiesShort=Atveriet vadus
    +NotOpenedOpportunitiesShort=Nav atvērti vadi
    +NotAnOpportunityShort=Nav vads
    +OpportunityTotalAmount=Kopējais potenciālo klientu skaits
    +OpportunityPonderatedAmount=Vērtētā potenciālā pirkuma summa
    +OpportunityPonderatedAmountDesc=Sasaistīto summu svēršana ar varbūtību
     OppStatusPROSP=Prospection
     OppStatusQUAL=Kvalifikācija
     OppStatusPROPO=Priekšlikums
    -OppStatusNEGO=Negociation
    +OppStatusNEGO=Pārrunas
     OppStatusPENDING=Gaida
     OppStatusWON=Uzvarēja
     OppStatusLOST=Zaudēja
     Budget=Budžets
    -AllowToLinkFromOtherCompany=Atļaut saistīt projektu ar citu uzņēmumu <br> <br> <u> Atbalstītās vērtības: </ u> <br> - Uzglabāt tukšs: var saistīt jebkuru uzņēmuma projektu (noklusējums) <br> - "visi": var saiti jebkurš projekts, pat citu uzņēmumu projekts <br> - Trešās puses identifikācijas numurs, kas atdalīts ar komatu: var sasaistīt visus šo trešās puses projektu (Piemērs: 123,4795,53) <br>
    +AllowToLinkFromOtherCompany=Atļaut saistīt projektu ar citu uzņēmumu <br> <br> <u> Atbalstītās vērtības: </u><br> - Uzglabāt tukšs: var saistīt jebkuru uzņēmuma projektu (noklusējums) <br> - "visi": var saiti jebkurš projekts, pat citu uzņēmumu projekts <br> - Trešās puses identifikācijas numurs, kas atdalīts ar komatu: var sasaistīt visus šo trešās puses projektu (Piemērs: 123,4795,53) <br>
     LatestProjects=Pēdējie %s projekti
    -LatestModifiedProjects=Jaunākie %s modificētie projekti
    +LatestModifiedProjects=Jaunākie %s labotie projekti
     OtherFilteredTasks=Citi filtrētie uzdevumi
     NoAssignedTasks=Nav piešķirtu uzdevumu (piešķiriet projektu / uzdevumus pašreizējam lietotājam no augšējā atlases lodziņa, lai tajā ievadītu laiku)
     # Comments trans
     AllowCommentOnTask=Atļaut lietotāju komentārus par uzdevumiem
     AllowCommentOnProject=Atļaut lietotājam komentēt projektus
     DontHavePermissionForCloseProject=Jums nav tiesību aizvērt projektu %s
    -DontHaveTheValidateStatus=Projektam %s jābūt atvērtai slēgšanai
    -RecordsClosed=%s projekts (-i) ir slēgts
    +DontHaveTheValidateStatus=Projektam %s jābūt atvērtam slēgšanai
    +RecordsClosed=%s projekts (-i) slēgts
     SendProjectRef=Informācijas projekts %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Jāizveido modulis "Darbinieku algu izmaksa", lai definētu darbinieka stundas likmi, lai iztērētos laiku novērtētu
    +NewTaskRefSuggested=Uzdevuma ref jau izmanto, jauna uzdevuma ref ir vēlama
    diff --git a/htdocs/langs/lv_LV/propal.lang b/htdocs/langs/lv_LV/propal.lang
    index 7c532ebc615..6b6d3ff01aa 100644
    --- a/htdocs/langs/lv_LV/propal.lang
    +++ b/htdocs/langs/lv_LV/propal.lang
    @@ -29,11 +29,11 @@ PropalsDraft=Sagatave
     PropalsOpened=Atvērts
     PropalStatusDraft=Sagatave (ir jāapstiprina)
     PropalStatusValidated=Apstiprināts (priekšlikums ir atvērts)
    -PropalStatusSigned=Parakstīts (vajadzības rēķinu)
    +PropalStatusSigned=Parakstīts (vajadzīgs rēķins)
     PropalStatusNotSigned=Nav parakstīts (slēgts)
     PropalStatusBilled=Jāmaksā
     PropalStatusDraftShort=Melnraksts
    -PropalStatusValidatedShort=Apstiprināts
    +PropalStatusValidatedShort=Apstiprināts (atvērt)
     PropalStatusClosedShort=Slēgts
     PropalStatusSignedShort=Parakstīts
     PropalStatusNotSignedShort=Nav parakstīts
    @@ -44,18 +44,18 @@ ListOfProposals=Saraksts tirdzniecības priekšlikumiem
     ActionsOnPropal=Pasākumi attiecībā uz priekšlikumu
     RefProposal=Commercial priekšlikums ref
     SendPropalByMail=Nosūtīt komerciālo priekšlikumu pa pastu
    -DatePropal=Datums, kad priekšlikumu
    +DatePropal=Priekšlikuma datums
     DateEndPropal=Derīguma beigu datums
     ValidityDuration=Derīguma termiņš
     CloseAs=Iestatīt statusu uz
     SetAcceptedRefused=Iestatījums ir pieņemts / noraidīts
    -ErrorPropalNotFound=Propal %s nav atrasts
    +ErrorPropalNotFound=Piedāvājums %s nav atrasts
     AddToDraftProposals=Pievienot pie priekšlikuma projektā
     NoDraftProposals=Nav sagatavot priekšlikumus
     CopyPropalFrom=Izveidot komerciālo priekšlikumu, kopējot esošo priekšlikumu
    -CreateEmptyPropal=Izveidojiet tukšu komerciālu priekšlikumi Jaunava vai no saraksta produktu / pakalpojumu
    +CreateEmptyPropal=Izveidojiet tukšus komerciālus priekšlikumus vai produktu / pakalpojumu sarakstu
     DefaultProposalDurationValidity=Default komerciālā priekšlikumu derīguma termiņš (dienās)
    -UseCustomerContactAsPropalRecipientIfExist=Izmantojiet klientu kontaktu adresi, ja noteikta nevis trešās puses adresi priekšlikumu saņēmēja adresi
    +UseCustomerContactAsPropalRecipientIfExist=Izmantojiet kontaktpersonu / adresi ar veidu "Sazināties ar pēcpārbaudes priekšlikumu", ja tā ir definēta kā trešās puses adrese kā pieteikuma saņēmēja adrese
     ClonePropal=Klonēt tirdzniecības priekšlikumu
     ConfirmClonePropal=Vai tiešām vēlaties klonēt komerciālo priekšlikumu <b> %s </b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Klientu kontaktu turpinot darboties priekš
     TypeContact_propal_external_SHIPPING=Klienta kontaktpersona piegādei
     # Document models
     DocModelAzurDescription=Pilnīgs priekšlikums modelis (logo. ..)
    +DocModelCyanDescription=Pilnīgs priekšlikums modelis (logo. ..)
     DefaultModelPropalCreate=Default modeļa izveide
     DefaultModelPropalToBill=Noklusējuma veidne aizverot uzņēmējdarbības priekšlikumu (tiks izrakstīts rēķins)
     DefaultModelPropalClosed=Noklusējuma veidne aizverot uzņēmējdarbības priekšlikumu (unbilled)
    diff --git a/htdocs/langs/lv_LV/resource.lang b/htdocs/langs/lv_LV/resource.lang
    index f230757fff1..f28b4ca5b0f 100644
    --- a/htdocs/langs/lv_LV/resource.lang
    +++ b/htdocs/langs/lv_LV/resource.lang
    @@ -5,7 +5,7 @@ DeleteResource=Dzēst resursu
     ConfirmDeleteResourceElement=Apstiprināt resursu dzēšanu šim elementam
     NoResourceInDatabase=Nav datubāzē resursu
     NoResourceLinked=Nav saistītu resursu
    -
    +ActionsOnResource=Notikumi šim resursam
     ResourcePageIndex=Resursu saraksts
     ResourceSingular=Resursi
     ResourceCard=Resursu karte
    @@ -30,7 +30,7 @@ DictionaryResourceType=Resursa veids
     
     SelectResource=Izvēlēties resursu
     
    -IdResource=Id resource
    +IdResource=Id resurss
     AssetNumber=Sērijas numurs
    -ResourceTypeCode=Resource type code
    +ResourceTypeCode=Resursa veida kods
     ImportDataset_resource_1=Resursi
    diff --git a/htdocs/langs/lv_LV/salaries.lang b/htdocs/langs/lv_LV/salaries.lang
    index 6e3e9361975..970a5f58edf 100644
    --- a/htdocs/langs/lv_LV/salaries.lang
    +++ b/htdocs/langs/lv_LV/salaries.lang
    @@ -1,18 +1,19 @@
     # Dolibarr language file - Source file is en_US - salaries
     SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties
    -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined.
    +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Lietotāja kartē norādītais grāmatvedības konts tiks izmantots tikai pakārtotajam grāmatvedim. Šis viens tiks izmantots General Ledger un noklusējuma vērtība Subledged grāmatvedībai, ja lietotāja definēts lietotāju grāmatvedības konts nav definēts.
     SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments
     Salary=Alga
     Salaries=Algas
     NewSalaryPayment=Jauna algas izmaksa
    +AddSalaryPayment=Pievienot algas maksājumu
     SalaryPayment=Algas maksājums
     SalariesPayments=Algu maksājumi
     ShowSalaryPayment=Rādīt algu maksājumus
     THM=Vidējā stundas cena
     TJM=Vidējā dienas likme
    -CurrentSalary=Current salary
    +CurrentSalary=Pašreizējā alga
     THMDescription=This value may be used to calculate cost of time consumed on a project entered by users if module project is used
     TJMDescription=This value is currently as information only and is not used for any calculation
    -LastSalaries=Latest %s salary payments
    -AllSalaries=All salary payments
    -SalariesStatistics=Statistiques salaires
    +LastSalaries=Jaunākie %s algu maksājumi
    +AllSalaries=Visi algu maksājumi
    +SalariesStatistics=Algas statistika
    diff --git a/htdocs/langs/lv_LV/sendings.lang b/htdocs/langs/lv_LV/sendings.lang
    index 48e35449a3e..b237cbd833f 100644
    --- a/htdocs/langs/lv_LV/sendings.lang
    +++ b/htdocs/langs/lv_LV/sendings.lang
    @@ -52,11 +52,11 @@ ActionsOnShipping=Notikumi sūtījumu
     LinkToTrackYourPackage=Saite uz izsekot savu paketi
     ShipmentCreationIsDoneFromOrder=Izveidot jaunu sūtījumu var no pasūtījuma kartiņas.
     ShipmentLine=Sūtījumu līnija
    -ProductQtyInCustomersOrdersRunning=Product quantity into open customer orders
    -ProductQtyInSuppliersOrdersRunning=Product quantity into open purchase orders
    +ProductQtyInCustomersOrdersRunning=Produkta daudzums atvērtā klienta pasūtījumā
    +ProductQtyInSuppliersOrdersRunning=Produktu daudzums atvērtajos pirkuma pasūtījumos
     ProductQtyInShipmentAlreadySent=Produkta daudzums, kuri sakārtoti pēc piegādātāja pasūtīšanas
     ProductQtyInSuppliersShipmentAlreadyRecevied=Produkta daudzums jau ir saņemts no atvērta piegādātāja pasūtījuma
    -NoProductToShipFoundIntoStock=No product to ship found into warehouse <b>%s</b>. Correct stock or go back to choose another warehouse.
    +NoProductToShipFoundIntoStock=Noliktavā nav atrasts neviens produkts, kas paredzēts piegādei <b> %s </ b>. Pareizu krājumu vai doties atpakaļ, lai izvēlētos citu noliktavu.
     WeightVolShort=Svars / tilp.
     ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments.
     
    @@ -69,4 +69,4 @@ SumOfProductWeights=Summēt produkta svaru
     
     # warehouse details
     DetailWarehouseNumber= Noliktavas detaļas
    -DetailWarehouseFormat= W:%s (Qty : %d)
    +DetailWarehouseFormat= W:%s (Daudz. : %d)
    diff --git a/htdocs/langs/lv_LV/sms.lang b/htdocs/langs/lv_LV/sms.lang
    index 8eef978866d..2840fa6cdf7 100644
    --- a/htdocs/langs/lv_LV/sms.lang
    +++ b/htdocs/langs/lv_LV/sms.lang
    @@ -1,7 +1,7 @@
     # Dolibarr language file - Source file is en_US - sms
     Sms=Sms
    -SmsSetup=Sms iestatīšana
    -SmsDesc=Šī lapa ļauj definēt Globālās SMS iespējas
    +SmsSetup=SMS iestatīšana
    +SmsDesc=Šī lapa ļauj definēt globālās opcijas īsziņu funkcijās
     SmsCard=SMS karte
     AllSms=Visas SMS kampaņas
     SmsTargets=Mērķi
    @@ -13,20 +13,20 @@ SmsTo=Mērķis
     SmsTopic=SMS Tēma
     SmsText=Ziņa
     SmsMessage=SMS ziņojums
    -ShowSms=Rādīt Sms
    -ListOfSms=SMS ampaņu saraksts
    +ShowSms=Parādīt īsziņu
    +ListOfSms=Īsziņu saraksta kampaņas
     NewSms=Jauna SMS kampaņa
    -EditSms=Labot Sms
    +EditSms=Rediģēt īsziņu
     ResetSms=Jauna sūtīšana
    -DeleteSms=Dzēst Sms kampaņu
    -DeleteASms=Noņemt Sms kampaņu
    -PreviewSms=Apskatīt Sms
    -PrepareSms=Sagatavot sms
    -CreateSms=Izveidot SMS
    -SmsResult=SMS sutīšanas rezultāts
    -TestSms=Testa Sms
    -ValidSms=Apstiprināt Sms
    -ApproveSms=Apstiprināt Sms
    +DeleteSms=Dzēst SMS kampaņu
    +DeleteASms=Noņemt SMS kampaņu
    +PreviewSms=Priekšskats SMS
    +PrepareSms=Sagatavot SMS
    +CreateSms=Izveidot īsziņu
    +SmsResult=SMS nosūtīšanas rezultāts
    +TestSms=Izmēģiniet SMS
    +ValidSms=Apstipriniet SMS
    +ApproveSms=Apstiprināt SMS
     SmsStatusDraft=Melnraksts
     SmsStatusValidated=Pārbaudīts
     SmsStatusApproved=Apstiprināts
    @@ -35,17 +35,17 @@ SmsStatusSentPartialy=Nosūtīts daļēji
     SmsStatusSentCompletely=Nosūtīta pilnīgi
     SmsStatusError=Kļūda
     SmsStatusNotSent=Nav nosūtīts
    -SmsSuccessfulySent=Sms pareizi nosūtīti (no %s līdz %s)
    +SmsSuccessfulySent=SMS pareizi nosūtīta (no %s līdz %s)
     ErrorSmsRecipientIsEmpty=Numurs nav norādīts
     WarningNoSmsAdded=Nav jaunu tālruņa numuru, lai pievienotu mērķa sarakstam
    -ConfirmValidSms=Do you confirm validation of this campain?
    -NbOfUniqueSms=Nb DOF unikālo tālruņa numuriem
    -NbOfSms=Nbre no fona numuru
    +ConfirmValidSms=Vai apstiprināt šīs kampaņas apstiprināšanu?
    +NbOfUniqueSms=Unikālo tālruņu numuru skaits
    +NbOfSms=Tālruņu numuru skaits
     ThisIsATestMessage=Šī ir testa ziņa
     SendSms=Sūtīt SMS
     SmsInfoCharRemain=Atlikušo rakstzīmju skaits
    -SmsInfoNumero= (Formāts starptautiskais t.i.: 37128701761)
    +SmsInfoNumero= (starptautiskais formāts, t.i.: +33899701761)
     DelayBeforeSending=Aizture pirms nosūtīšanas (minūtēs)
    -SmsNoPossibleSenderFound=No sender available. Check setup of your SMS provider.
    +SmsNoPossibleSenderFound=Nav neviena sūtītāja. Pārbaudiet sava SMS pakalpojumu sniedzēja iestatījumus.
     SmsNoPossibleRecipientFound=Nav mērķa pieejams. Pārbaudiet iestatījumus jūsu SMS pakalpojumu sniedzēja.
    -DisableStopIfSupported=Disable STOP message (if supported)
    +DisableStopIfSupported=Atspējot STOP ziņojumu (ja tas ir atbalstīts)
    diff --git a/htdocs/langs/lv_LV/stocks.lang b/htdocs/langs/lv_LV/stocks.lang
    index cf87f02b0ee..be1eb641c81 100644
    --- a/htdocs/langs/lv_LV/stocks.lang
    +++ b/htdocs/langs/lv_LV/stocks.lang
    @@ -17,7 +17,7 @@ CancelSending=Atcelt sūtīšanu
     DeleteSending=Dzēst nosūtot
     Stock=Krājums
     Stocks=Krājumi
    -StocksByLotSerial=Stocks by lot/serial
    +StocksByLotSerial=Krājumi pēc partijas/sērijas
     LotSerial=Daudz / sērijas nr
     LotSerialList=Partijas saraksts / sērijas nr
     Movements=Kustības
    @@ -44,7 +44,6 @@ TransferStock=Pārvietot krājumus
     MassStockTransferShort=Masveida krājumu pārvietošana
     StockMovement=Krājumu pārvietošana
     StockMovements=Krājumu pārvietošanas
    -LabelMovement=Kustību nosaukums
     NumberOfUnit=Vienību skaits
     UnitPurchaseValue=Vienības iepirkuma cena
     StockTooLow=Krājumi pārāk maz
    @@ -55,20 +54,20 @@ PMPValueShort=VSC
     EnhancedValueOfWarehouses=Noliktavas vērtība
     UserWarehouseAutoCreate=Lietotāja noliktavas izveide, izveidojot lietotāju
     AllowAddLimitStockByWarehouse=Ļauj pievienot ierobežojumu un vēlamo krājumu uz pāris (produkts, noliktava), nevis uz produktu
    -IndependantSubProductStock=Product stock and subproduct stock are independant
    +IndependantSubProductStock=Produktu krājumi un blakusprodukti ir neatkarīgi
     QtyDispatched=Nosūtītais daudzums
     QtyDispatchedShort=Daudz. nosūtīts
     QtyToDispatchShort=Daudzums nosūtīšanai
     OrderDispatch=Posteņu ieņēmumi
    -RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated)
    -RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated)
    -DeStockOnBill=Samazināt nekustamā krājumi uz klientu rēķinu / kredīta piezīmes apstiprināšanu
    -DeStockOnValidateOrder=Samazināt nekustamā krājumus klientu pasūtījumus apstiprināšanu
    +RuleForStockManagementDecrease=Lai automātiski samazinātu krājumu samazinājumu, izvēlieties noteikumu (manuāla samazināšana vienmēr ir iespējama, pat ja ir aktivizēts automātiskais samazināšanas noteikums).
    +RuleForStockManagementIncrease=Izvēlieties noteikumu automātiskai krājumu palielināšanai (manuāla palielināšana vienmēr ir iespējama, pat ja ir aktivizēts automātiskais pieauguma noteikums).
    +DeStockOnBill=Samaziniet reālos krājumus klienta rēķina / kredītzīmes atzīmēšanā
    +DeStockOnValidateOrder=Samazināt reālos krājumus klienta pasūtījuma validācijā
     DeStockOnShipment=Samazināt reālos krājumus piegādes apstiprinājuma gadījumā
     DeStockOnShipmentOnClosing=Samazināt reālās krājumus kuģošanas klasifikācijā
    -ReStockOnBill=Palielināt nekustamā krājumus piegādātāju rēķinu / kredīta piezīmes apstiprināšanu
    -ReStockOnValidateOrder=Increase real stocks on purchase orders approbation
    -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods
    +ReStockOnBill=Palieliniet reālo krājumus, pārbaudot piegādātāja rēķinu / kredītzīmi
    +ReStockOnValidateOrder=Palieliniet reālo krājumu pirkšanas pasūtījuma apstiprinājumā
    +ReStockOnDispatchOrder=Palielināt reālo krājumus, manuāli nosūtīt uz noliktavu pēc piegādātāja pasūtījuma preču saņemšanas
     OrderStatusNotReadyToDispatch=Lai vēl nav vai vairs statusu, kas ļauj sūtījumiem produktu krājumu noliktavās.
     StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock
     NoPredefinedProductToDispatch=Nav iepriekš produktu šo objektu. Līdz ar to nav nosūtot noliktavā ir nepieciešama.
    @@ -130,10 +129,11 @@ RecordMovement=Ierakstīt pārvietošanu
     ReceivingForSameOrder=Receipts for this order
     StockMovementRecorded=Krājumu pārvietošana saglabāta
     RuleForStockAvailability=Noteikumi krājumu nepieciešamībai
    -StockMustBeEnoughForInvoice=Krājumu līmenim ir jābūt pietiekamam, lai produktu / pakalpojumu pievienotu rēķinam (pārbaudīt tiek veikta, izmantojot esošo reālo krājumus, pievienojot rindu rēķinā neatkarīgi no tā, vai ir spēkā automātiskas krājumu izmaiņas)
    -StockMustBeEnoughForOrder=Krājumu līmenim ir jābūt pietiekamam, lai produktu / pakalpojumu pasūtītam pēc pasūtījuma (pārbaude tiek veikta, izmantojot esošo reālo krājumus, pievienojot rindu kārtībā neatkarīgi no tā, kāds ir noteikums par automātisko krājumu maiņu)
    -StockMustBeEnoughForShipment= Krājumu līmenim ir jābūt pietiekamam, lai produktam / pakalpojumam pievienotu sūtījumu (pārbaude tiek veikta, izmantojot pašreizējo reālo krājumu, pievienojot līniju sūtījumā neatkarīgi no tā, vai ir spēkā automātiskas krājumu izmaiņas)
    -MovementLabel=Label of movement
    +StockMustBeEnoughForInvoice=Krājumu līmenim ir jābūt pietiekamam, lai produktu / pakalpojumu pievienotu rēķinam (pārbaudiet, vai pašreizējā reālā krājumā tiek pievienota rinda rēķinā neatkarīgi no automātiskās krājumu maiņas noteikuma)
    +StockMustBeEnoughForOrder=Krājuma līmenim ir jābūt pietiekamam, lai produktu / pakalpojumu pasūtītam pēc pasūtījuma (pārbaudiet, vai pašreizējā reālā krājumā tiek pievienota rinda, lai kāds būtu noteikums automātiskai krājumu maiņai).
    +StockMustBeEnoughForShipment= Krājumu līmenim ir jābūt pietiekamam, lai produktu / pakalpojumu nosūtītu sūtījumam (pārbaudiet pašreizējo reālo krājumu, pievienojot līniju sūtījumā neatkarīgi no automātiskās krājumu maiņas)
    +MovementLabel=Kustības marķējums
    +TypeMovement=Kustības veids
     DateMovement=Pārvietošanas datums
     InventoryCode=Movement or inventory code
     IsInPackage=Contained into package
    @@ -172,7 +172,7 @@ inventoryDraft=Darbojas
     inventorySelectWarehouse=Noliktavas izvēle
     inventoryConfirmCreate=Izveidot
     inventoryOfWarehouse=Noliktavas inventārs : %s
    -inventoryErrorQtyAdd=Kļūda: viens daudzums ir leaser nekā nulle
    +inventoryErrorQtyAdd=Kļūda: viens daudzums ir mazāks par nulli
     inventoryMvtStock=Pēc inventāra
     inventoryWarningProductAlreadyExists=Šis produkts jau ir iekļauts sarakstā
     SelectCategory=Sadaļu filtrs
    @@ -198,9 +198,13 @@ FlushInventory=Ielieciet inventāru
     ConfirmFlushInventory=Vai jūs apstiprināt šo darbību?
     InventoryFlushed=Inventory flushed
     ExitEditMode=Iziet no labošanas
    -inventoryDeleteLine=Delete line
    +inventoryDeleteLine=Dzēst rindu
     RegulateStock=Regulēt krājumus
     ListInventory=Saraksts
    -StockSupportServices=Stock management support services
    +StockSupportServices=Stock management atbalsta Pakalpojumi
     StockSupportServicesDesc=Pēc noklusējuma varat iegādāties tikai produktu ar veidu "produkts". Ja ieslēgts un ja moduļa pakalpojums ir ieslēgts, varat arī nolikt produktu ar tipu "pakalpojums"
     ReceiveProducts=Saņemt priekšmetus
    +StockIncreaseAfterCorrectTransfer=Palielināt ar korekciju/pārvietošanu
    +StockDecreaseAfterCorrectTransfer=Samazināt pēc korekcijas/pārsvietošanas
    +StockIncrease=Krājumu pieaugums
    +StockDecrease=Krājumu samazinājums
    diff --git a/htdocs/langs/lv_LV/stripe.lang b/htdocs/langs/lv_LV/stripe.lang
    index 51b07f02695..057df9d4b6b 100644
    --- a/htdocs/langs/lv_LV/stripe.lang
    +++ b/htdocs/langs/lv_LV/stripe.lang
    @@ -61,3 +61,4 @@ ConfirmDeleteCard=Vai tiešām vēlaties izdzēst šo kredītkarti vai debetkart
     CreateCustomerOnStripe=Izveidojiet klientu joslā
     CreateCardOnStripe=Izveidojiet karti joslā
     ShowInStripe=Rādīt joslā
    +StripeUserAccountForActions=Lietotāja konts, lai izmantotu dažu e-pasta paziņojumu par joslu notikumiem (Stripe payouts)
    diff --git a/htdocs/langs/lv_LV/supplier_proposal.lang b/htdocs/langs/lv_LV/supplier_proposal.lang
    index 3019228e921..0fca24979fb 100644
    --- a/htdocs/langs/lv_LV/supplier_proposal.lang
    +++ b/htdocs/langs/lv_LV/supplier_proposal.lang
    @@ -40,7 +40,7 @@ ConfirmReOpenAsk=Vai tiešām vēlaties atvērt cenu pieprasījumu <b> %s</b>?
     SendAskByMail=Sūtīt cenas pieprasījumu pa pastu
     SendAskRef=Sūta cenas pieprasījumu %s
     SupplierProposalCard=Pieprasīt karti
    -ConfirmDeleteAsk=Vai tiešām vēlaties dzēst šo cenu pieprasījumu <b> %s </ b>?
    +ConfirmDeleteAsk=Vai tiešām vēlaties dzēst šo cenu pieprasījumu <b> %s</b>?
     ActionsOnSupplierProposal=Pasākumi pēc cenas pieprasījuma
     DocModelAuroreDescription=A complete request model (logo...)
     CommercialAsk=Cenas pieprasījums
    diff --git a/htdocs/langs/lv_LV/trips.lang b/htdocs/langs/lv_LV/trips.lang
    index 471d8f1ebe3..2b2d23aebcc 100644
    --- a/htdocs/langs/lv_LV/trips.lang
    +++ b/htdocs/langs/lv_LV/trips.lang
    @@ -19,7 +19,7 @@ ConfirmDeleteTrip=Vai tiešām vēlaties dzēst šo izdevumu atskaiti ?
     ListTripsAndExpenses=Izdevumu pārskatu saraksts
     ListToApprove=Gaida apstiprinājumu
     ExpensesArea=Izdevumu pārskatu sadaļa
    -ClassifyRefunded=Classify 'Refunded'
    +ClassifyRefunded=Klasificēt "atmaksāts"
     ExpenseReportWaitingForApproval=A new expense report has been submitted for approval
     ExpenseReportWaitingForApprovalMessage=Ir iesniegts jauns izdevumu pārskats un tas gaida apstiprināšanu. <br> - Lietotājs: %s <br> - Periods: %s <br> Uzklikšķināt šeit, lai apstiprinātu: %s
     ExpenseReportWaitingForReApproval=Izdevumu pārskats ir iesniegts atkārtotai apstiprināšanai
    @@ -102,7 +102,7 @@ NOT_AUTHOR=You are not the author of this expense report. Operation cancelled.
     ConfirmRefuseTrip=Vai jūs tiešām vēlaties bloķēt šo izdevumu pārskatu?
     ValideTrip=Apstiprināt izdevumu pārskatu
     ConfirmValideTrip=Vai tiešām vēlaties apstiprināt šo izdevumu atskaiti?
    -PaidTrip=Pay an expense report
    +PaidTrip=Izmaksu pārskats
     ConfirmPaidTrip=Vai tiešām vēlaties mainīt šī izdevumu pārskata statusu uz "Apmaksātais"?
     ConfirmCancelTrip=Vai tiešām vēlaties atcelt šo izdevumu pārskatu?
     BrouillonnerTrip=Move back expense report to status "Draft"
    @@ -117,7 +117,7 @@ CloneExpenseReport=Klonēt izdevumu pārskatu
     ConfirmCloneExpenseReport=Vai tiešām vēlaties klonēt šo izdevumu pārskatu?
     ExpenseReportsIk=Izdevumu pārskats, kurā ir indekss
     ExpenseReportsRules=Izdevumu pārskatu noteikumi
    -ExpenseReportIkDesc=Varat mainīt kilometru izdevumu aprēķinu pa kategorijām un diapazoniem, kurus tie iepriekš ir definējuši. <b> d </ b> ir attālums kilometros
    +ExpenseReportIkDesc=Varat mainīt kilometru izdevumu aprēķinu pa kategorijām un diapazoniem, kurus tie iepriekš ir definējuši. <b> d </b> ir attālums kilometros
     ExpenseReportRulesDesc=Jūs varat izveidot vai atjaunināt visus aprēķina noteikumus. Šī daļa tiks izmantota, ja lietotājs izveidos jaunu izdevumu pārskatu
     expenseReportOffset=Kompensācija
     expenseReportCoef=Koeficents
    @@ -129,7 +129,7 @@ expenseReportCatDisabled=Kategorija ir atspējota - skatiet c_exp_tax_cat vārdn
     expenseReportRangeDisabled=Diapazons ir atspējots - skatiet c_exp_tax_range dictionay
     expenseReportPrintExample=kompensēt + (d x coef) = %s
     ExpenseReportApplyTo=Pielietot
    -ExpenseReportDomain=Domēns jāpiemēro
    +ExpenseReportDomain=Domēns kam jāpiemēro
     ExpenseReportLimitOn=Ierobežot
     ExpenseReportDateStart=Sākuma datums
     ExpenseReportDateEnd=Beigu datums
    diff --git a/htdocs/langs/lv_LV/users.lang b/htdocs/langs/lv_LV/users.lang
    index 440a74419c4..21a1f778e62 100644
    --- a/htdocs/langs/lv_LV/users.lang
    +++ b/htdocs/langs/lv_LV/users.lang
    @@ -35,7 +35,7 @@ SuperAdministrator=Super administrators
     SuperAdministratorDesc=Galvenais administrators
     AdministratorDesc=Administrators
     DefaultRights=Noklusējuma atļaujas
    -DefaultRightsDesc=Definēt šeit <u>noklusējuma</u> atļaujas, kas automātiski tiek piešķirtas uz <u>Jaunizveidotās</u> lietotājs (Doties uz lietotāja kartes, lai mainītu atļaujas esošās lietotājs).
    +DefaultRightsDesc=Definējiet šeit <u> noklusējuma </u> atļaujas, kuras automātiski piešķir jaunam </ u> lietotājam (dodieties uz lietotāja karti, lai mainītu esoša lietotāja atļauju).
     DolibarrUsers=Dolibarr lietotājiem
     LastName=Uzvārds
     FirstName=Vārds
    @@ -66,7 +66,7 @@ CreateDolibarrThirdParty=Izveidot trešo pusi
     LoginAccountDisableInDolibarr=Konts bloķēts Dolibarr.
     UsePersonalValue=Izmantot personisko vērtību
     InternalUser=Iekšējais lietotājs
    -ExportDataset_user_1=Dolibarr lietotāji un īpašības
    +ExportDataset_user_1=Lietotāji un to īpašības
     DomainUser=Domēna lietotājs %s
     Reactivate=Aktivizēt
     CreateInternalUserDesc=Šī veidlapa ļauj izveidot uzņēmuma / organizācijas iekšējo lietotāju. Lai izveidotu ārēju lietotāju (klientu, piegādātāju, ...), izmantojiet pogu "Izveidot Dolibarr lietotāju" no trešās personas kontakta kartītes.
    @@ -83,7 +83,7 @@ UserDisabled=Lietotājs %s bloķēts
     UserEnabled=Lietotājs %s aktivizēts
     UserDeleted=Lietotājs %s noņemts
     NewGroupCreated=Grupa %s izveidota
    -GroupModified=Group %s modified
    +GroupModified=Grupa %s ir labota
     GroupDeleted=Grupa %s noņemta
     ConfirmCreateContact=Vai Jūs tiešām vēlaties izveidot Dolibarr kontu šim kontaktam?
     ConfirmCreateLogin=Vai jūs tiešām vēlaties izveidot Dolibarr kontu šim lietotājam?
    @@ -92,8 +92,8 @@ LoginToCreate=Pieslēdzies, lai izveidotu
     NameToCreate=Nosaukums trešās puses, lai radītu
     YourRole=Jūsu lomas
     YourQuotaOfUsersIsReached=Jūsu aktīvo lietotāju limits ir sasniegts!
    -NbOfUsers=Lietotāju sk
    -NbOfPermissions=Nb atļauju
    +NbOfUsers=Lietotāju skaits
    +NbOfPermissions=Atļauju skaits
     DontDowngradeSuperAdmin=Tikai superadmins var pazemināt superadminu
     HierarchicalResponsible=Uzraugs
     HierarchicView=Hierarhiska view
    @@ -108,3 +108,4 @@ UserAccountancyCode=Lietotāja grāmatvedības kods
     UserLogoff=Lietotājs atslēdzies
     UserLogged=Lietotājs pieteicies
     DateEmployment=Darba uzsākšanas datums
    +DateEmploymentEnd=Nodarbinātības beigu datums
    diff --git a/htdocs/langs/lv_LV/website.lang b/htdocs/langs/lv_LV/website.lang
    index 02ba0404abf..589965895bc 100644
    --- a/htdocs/langs/lv_LV/website.lang
    +++ b/htdocs/langs/lv_LV/website.lang
    @@ -1,8 +1,8 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kods
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Izveidojiet šeit vietnes, kuras vēlaties izmantot. Pēc tam dodieties uz izvēlņu vietnes, lai tās rediģētu.
     DeleteWebsite=Dzēst mājaslapu
    -ConfirmDeleteWebsite=Vai tiešām vēlaties dzēst šo tīmekļa vietni. Visas tās lapas un saturs tiks dzēstas.
    +ConfirmDeleteWebsite=Vai tiešām vēlaties dzēst šo vietni? Visas tās lapas un saturs tiks noņemtas.
     WEBSITE_TYPE_CONTAINER=Lapas / konteinera veids
     WEBSITE_PAGE_EXAMPLE=Tīmekļa lapa, ko izmantot kā piemēru
     WEBSITE_PAGENAME=Lapas nosaukums / pseidonīms
    @@ -18,17 +18,19 @@ HtmlHeaderPage=HTML virsraksts (tikai šai lapai)
     PageNameAliasHelp=Lapas nosaukums vai pseidonīms. <br> Šis aizstājvārds tiek izmantots arī, lai izveidotu SEO vietrādi, ja vietne tiek izmantota no Web servera virtuālās saimniekdatora (piemēram, Apacke, Nginx, ...). Izmantojiet pogu "<strong> %s </strong>, lai rediģētu šo aizstājvārdu.
     EditTheWebSiteForACommonHeader=Piezīme: ja vēlaties norādīt personalizētu galveni visām lapām, rediģējiet virsrakstu vietnes līmenī, nevis lapā / konteinerā.
     MediaFiles=Mediju bibliotēka
    -EditCss=Rediģēt stilu / CSS vai HTML virsrakstu
    +EditCss=Rediģēt vietnes rekvizīt
     EditMenu=Labot izvēlni
     EditMedias=Rediģēt medijus
    -EditPageMeta=Rediģēt meta
    +EditPageMeta=Rediģējiet lapas / konteinera īpašības
    +EditInLine=Rediģēt inline
     AddWebsite=Pievienot vietni
     Webpage=Web lapa / konteiners
     AddPage=Pievienot lapu / konteineru
     HomePage=Mājas lapa
     PageContainer=Lapa / konteiners
    -PreviewOfSiteNotYetAvailable=Jūsu tīmekļa vietnes priekšskatījums <strong> %s</strong>vēl nav pieejams. Vispirms jāpievieno lapa.
    +PreviewOfSiteNotYetAvailable=Jūsu vietnes <strong> %s </ strong> priekšskatījums vēl nav pieejams. Vispirms jums ir jāievieto <strong> Importēt pilnu vietnes veidni </ strong> vai vienkārši <strong> Pievienot lapu / konteineru </ strong> ".
     RequestedPageHasNoContentYet=Pieprasītā lapa ar id %s vēl nav ievietota, vai kešatmiņas fails .tpl.php tika noņemts. Rediģējiet lapas saturu, lai to atrisinātu.
    +SiteDeleted=Tīmekļa vietne '%s' dzēsta
     PageContent=Lapa / Konteiners
     PageDeleted=Lapa / Saturs %s "%s" ir izdzēsts
     PageAdded=Lapa / Konteiners '%s' ir pievienota
    @@ -37,50 +39,57 @@ ViewPageInNewTab=Skatīt lapu jaunā cilnē
     SetAsHomePage=Iestatīt kā mājas lapu
     RealURL=Reāls URL
     ViewWebsiteInProduction=Apskatīt vietni, izmantojot mājas URL
    -SetHereVirtualHost=Ja varat savā tīmekļa serverī (Apache, Nginx, ...) izveidot īpašu virtuālo saimniekdatoru ar iespējotu PHP un Saknes direktoriju vietnē <strong> %s </ strong> <br>, tad ievadiet šeit virtuālo jūsu izveidotā saimniekdatora nosaukumu, tāpēc priekšskatījumu var veikt arī, izmantojot šo īpašo tīmekļa servera piekļuvi, nevis tikai Dolibarr servera izmantošanu.
    -YouCanAlsoTestWithPHPS=Izstrādājot vidi, jūs varat izvēlēties testēt vietni ar PHP iegulto tīmekļa serveri (nepieciešams PHP 5.5), palaižot <strong> php -S 0.0.0.0:8080 -t %s </ strong>
    -CheckVirtualHostPerms=Pārbaudiet arī to, vai virtuālajam uzņēmējam ir atļauja <strong> %s </ strong> failiem vietnē <strong> %s </ strong>
    +SetHereVirtualHost=<u> Izmantojiet ar Apache / NGinx /...</ u> <br> Ja jūs savā tīmekļa serverī (Apache, Nginx, ...) izveidojat speciālu virtuālo serveri ar iespējotu PHP un saknes direktoriju <br> <strong> %s </ strong> <br> pēc tam ievadiet šeit izveidoto virtuālo saimniekdatora nosaukumu, tāpēc priekšskatījumu var veikt arī, izmantojot šo īpašo tīmekļa servera piekļuvi, nevis tikai Dolibarr servera lietošanu.
    +YouCanAlsoTestWithPHPS=<u> Izmantojiet ar PHP serveri. </u> <br> Izstrādājot vidi, jūs varat izvēlēties testēt vietni ar PHP tīmekļa serveri (nepieciešams PHP 5.5), palaižot <br><strong> php -S 0.0. 0.0 8080-t %s</strong>
    +CheckVirtualHostPerms=Pārbaudiet arī to, vai virtuālajam serverim ir atļauja <strong>%s</strong> failiem vietnē <br><strong>%s</strong>
     ReadPerm=Lasīt
     WritePerm=Rakstīt
     PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
     PreviewSiteServedByDolibarr=<u> Priekšskatīt %s jaunā cilnē. </ u> <br> <br> Dolibarr serveris izsniegs %s, tāpēc tam nevajadzēs instalēt papildu tīmekļa serveri (piemēram, Apache, Nginx, IIS). < br> Nelabvēlīgi ir tas, ka lapu URL nav lietotājam draudzīgs un sākas ar jūsu Dolibarr ceļu. <br> URL, ko izsniedz Dolibarr: <br> <strong> %s </ strong> <br> <br> Lai izmantotu savu ārējais tīmekļa serveris, kas kalpo šai vietnei, izveido virtuālo saimniekdatoru savā tīmekļa serverī, kas norādīts direktorijā <br> <strong> %s </ strong> <br>, pēc tam ievadiet šī virtuālā servera nosaukumu un noklikšķiniet uz citas priekšskatījuma pogas .
     VirtualHostUrlNotDefined=Virtuālā resursdatora adrese, kuru apkalpo ārējs tīmekļa serveris, nav definēts
     NoPageYet=Vēl nav nevienas lapas
    +YouCanCreatePageOrImportTemplate=Jūs varat izveidot jaunu lapu vai importēt pilnu vietnes veidni
     SyntaxHelp=Palīdzība par konkrētiem sintakses padomiem
     YouCanEditHtmlSourceckeditor=Jūs varat rediģēt HTML avota kodu, izmantojot redaktorā pogu "Avots".
    -YouCanEditHtmlSource=<br> <span class = "fa fa-bug"> </ span> Jūs varat iekļaut PHP kodu šajā avotā, izmantojot tagus <strong> &lt;? php? &gt; </ strong>. Pieejami šādi globālie mainīgie: $ conf, $ langs, $ db, $ mysoc, $ user, $ website. <br> <br> <span class = "fa fa-bug"> </ span> Jūs varat arī iekļaut cita lapas / konteinera saturs ar šādu sintaksi: <br> <strong> &lt;? php includeContainer ('alias_of_container_to_include'); ? &gt; </ strong> <br> <br> <span class = "fa fa-bug"> </ span> Jūs varat veikt novirzīšanu uz citu lapu / konteineru ar šādu sintaksi: <br> <strong> &lt;? php redirectToContainer ('alias_ofcontainer_to_redirect_to'); ? &gt; </ strong> <br> <br> <span class = "fa fa-download"> </ span> Lai iekļautu <strong> saiti, lai lejupielādētu </ strong> failu, kas saglabāts <strong> dokumentos < / strong> direktorijā izmantojiet iesaiņojuma <strong> document.php </ strong> mapi: <br> Piemērs failam dokumentos / ecm (jāreģistrē) sintakse ir: <br> <strong> &lt;a href = "/document.php?modulepart=ecm&file=[relative_dir/]filename.ext" &gt; </ strong> <br> Ja failā ir dokumenti / mediji (atvērtā direktorijā publiskai piekļuvei), sintakse ir: <br> <strong> &lt;a href = "/ document.php? modulepart = media_file =" [relative_dir /] filename.ext "&gt; </ strong> <br> par failu, kas koplietots ar koplietošanas saiti (atvērtā piekļuve, izmantojot faila koplietošanas hash atslēgu), sintakse ir: <br> <strong> &lt;a href = "/ document.php? hashp = publicsharekeyoffile" &gt; </ strong> <br> <br> <span class = "fa fa-picture-o"> </ span> Lai ietver <strong> attēlu </ strong>, kas tiek glabāts direktorijā <strong> documents </ strong>, izmantojiet apvalku <strong> viewimage.php </ strong>: <br> piemēram, attēlam uz dokumentiem / medijiem (atvērtā piekļuve) sintakse ir: <br> <strong> &lt;a href = "/ viewimage.php? modulepart = medias&amp;file = [relative_dir /] filename.ext" &gt; </ strong> <br>
    +YouCanEditHtmlSource=<br> <span class = "fa fa-bug"> </ span> Jūs varat iekļaut PHP kodu šajā avotā, izmantojot tagus <strong> &lt;? php? &gt; </ strong>. Pieejami šādi globālie mainīgie: $ conf, $ db, $ mysoc, $ user, $ website, $ websitepage, $ weblangs. <br> <br> <span class = "fa fa-bug"> </ span> Jūs var iekļaut arī citu lapas / konteinera saturu ar šādu sintaksi: <br> <strong> &lt;? php includeContainer ('alias_of_container_to_include'); ? &gt; </ strong> <br> <br> <span class = "fa fa-bug"> </ span> Jūs varat veikt novirzīšanu uz citu lapu / konteineru ar šādu sintaksi (Piezīme: novirzīšana): <br> <strong> &lt;? php redirectToContainer ('alias_ofcontainer_to_redirect_to'); ? &gt; </ strong> <br> <br> <span class = "fa fa-link"> </ span> Lai pievienotu saiti uz citu lapu, izmantojiet sintaksi: <br> <strong> &lt;a href = "alias_of_page_to_link_to .php "&gt;mylink&lt;a&gt; </ strong> <br> <br> <span class =" fa fa-download "> </ span> Lai iekļautu <strong> saiti, lai lejupielādētu </ strong> failu, kas saglabāts <strong> dokumentiem </ strong>, izmantojiet iesaiņojuma <strong> document.php </ strong> mapi: <br> Piemēram, failam dokumentos / ecm (jāreģistrē) sintakse ir: <br> <strong> &lt;a href = "/ document.php? modulepart = ecm & file = [relative_dir /] filename.ext" &gt; </ strong> <br> Ja failā ir dokumenti / mediji (atvērtā direktorijā publiskai piekļuvei), sintakse ir: <br> < strong> &lt;a href = "/ document.php? modulepart = media & file =" [relative_dir /] filename.ext "&gt; </ strong> <br> par failu, kas koplietots ar koplietošanas saiti (atvērtā piekļuve, izmantojot faila koplietošanas hash atslēgu) , sintakse ir: <br> <strong> &lt;a href = "/ document.php? hashp = publicsharekeyoffile" &gt; </ strong> <br> <br> <span clas s = "fa fa-picture-o"> </ span> Lai iekļautu <strong> attēlu </ strong>, kas saglabāts direktorijā <strong> documents </ strong>, izmantojiet <strong> viewimage.php </ strong > iesaiņojums: <br> Piemērs, lai attēls būtu pieejams dokumentos / plašsaziņas līdzekļos (atvērtā direktorijā publiskai piekļuvei), sintakse ir: <br> <strong> &lt;img src = "/ viewimage.php? modulepart = medias&amp;file = [relative_dir /] filename .ext "&gt; </ strong> <br>
     ClonePage=Klonēt lapu / konteineru
     CloneSite=Klonēt vietni
    -SiteAdded=Pievienota vietne
    +SiteAdded=Tīmekļa vietne ir pievienota
     ConfirmClonePage=Lūdzu, ievadiet jaunās lapas kodu / aizstājvārdu un, ja tas ir klonētas lapas tulkojums.
     PageIsANewTranslation=Jaunā lapa ir pašreizējās lapas tulkojums?
     LanguageMustNotBeSameThanClonedPage=Jūs klons lapas kā tulkojumu. Jaunās lapas valodai jābūt atšķirīgai no avota lapas valodas.
     ParentPageId=Vecāku lapas ID
     WebsiteId=Vietnes ID
     CreateByFetchingExternalPage=Izveidojiet lapu / konteineru, ielādējot lapu no ārējā URL ...
    -OrEnterPageInfoManually=Vai arī izveidojiet tukšu lapu no sākuma ...
    +OrEnterPageInfoManually=Vai arī izveidojiet lapu no jauna vai no lapas veidnes ...
     FetchAndCreate=Ielādēt un izveidot
    -ExportSite=Eksporta vietne
    +ExportSite=Eksportēt vietni
    +ImportSite=Importēt vietnes veidni
     IDOfPage=Lapas ID
     Banner=Baneris
     BlogPost=Emuāra ziņa
    -WebsiteAccount=Vietnes konts
    -WebsiteAccounts=Vietnes konti
    +WebsiteAccount=Tīmekļa vietnes konts
    +WebsiteAccounts=Tīmekļa vietnes konti
     AddWebsiteAccount=Izveidot mājas lapas kontu
    -BackToListOfThirdParty=Atpakaļ uz trešo personu sarakstu
    +BackToListOfThirdParty=Atpakaļ uz trešo pušu sarakstu
     DisableSiteFirst=Vispirms atspējojiet vietni
     MyContainerTitle=Manas tīmekļa vietnes virsraksts
     AnotherContainer=Vēl viens konteiners
     WEBSITE_USE_WEBSITE_ACCOUNTS=Iespējot tīmekļa vietnes kontu tabulu
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Iespējojiet tabulu, lai saglabātu tīmekļa vietnes kontus (login / pass) katram vietnei / trešās puses kontam
     YouMustDefineTheHomePage=Vispirms ir jādefinē noklusējuma sākumlapa
    -OnlyEditionOfSourceForGrabbedContentFuture=Piezīme. Tikai HTML avota izdevums būs iespējams, ja lapas saturs tiks sākts, satverot to no ārējās lapas (WYSIWYG redaktors nebūs pieejams).
    +OnlyEditionOfSourceForGrabbedContentFuture=Brīdinājums: tīmekļa lapas izveide, importējot ārēju tīmekļa lapu, ir rezervēta pieredzējušam lietotājam. Atkarībā no avota lapas sarežģītības, importēšanas rezultāts var atšķirties, kad tas tiek importēts no oriģināla. Arī tad, ja avota lapā tiek izmantots visbiežāk izmantotais CSS stils vai nesaderīgs javascript, tad, strādājot šajā lapā, tas var sabojāt vietnes redaktora izskatu vai funkcijas. Šī metode ir ātrāks veids, kā izveidot lapu, bet tā tiek ieteikta, lai izveidotu savu jauno lapu no jauna vai no ieteiktās lapas veidnes. <br> Jāņem vērā arī tas, ka tikai HTML avota izdevums būs pieejams tikai tad, ja lapas saturs ir inicializēts, satverot tas no ārējās lapas ("Online" redaktors NĒ būs pieejams)
     OnlyEditionOfSourceForGrabbedContent=Tikai HTML avota izdevums ir pieejams, ja saturs tiek satverts no ārējas vietnes
     GrabImagesInto=Grab arī attēlus, kas atrodami CSS un lapā.
     ImagesShouldBeSavedInto=Attēli jāuzglabā mapē
     WebsiteRootOfImages=Mājaslapu attēlu sakņu direktorija
     SubdirOfPage=Apakškatalogs, kas veltīts lapai
    -AliasPageAlreadyExists=Aliases lapa <strong> %s </ strong> jau pastāv
    +AliasPageAlreadyExists=Aliases lapa <strong>%s</strong> jau pastāv
     CorporateHomePage=Korporatīvā mājas lapa
     EmptyPage=Tukša lapa
     ExternalURLMustStartWithHttp=Ārējam URL ir jāsākas ar http: // vai https: //
    +ZipOfWebsitePackageToImport=Zip faila vietnes pakotne
    +ShowSubcontainers=Iekļaut dinamisko saturu
    +InternalURLOfPage=Lapas iekšējais URL
    +ThisPageIsTranslationOf=Šī lapa / konteiners ir tulkojums
    +ThisPageHasTranslationPages=Šajā lapā / konteinerā ir tulkojums
    diff --git a/htdocs/langs/lv_LV/withdrawals.lang b/htdocs/langs/lv_LV/withdrawals.lang
    index a192c075732..7d71634041f 100644
    --- a/htdocs/langs/lv_LV/withdrawals.lang
    +++ b/htdocs/langs/lv_LV/withdrawals.lang
    @@ -1,7 +1,7 @@
     # Dolibarr language file - Source file is en_US - withdrawals
     CustomersStandingOrdersArea=Tiešā debeta maksājumu pasūtījumu sadaļa
     SuppliersStandingOrdersArea=Tiešo kredīta maksājumu uzdevumu apgabals
    -StandingOrdersPayment=Direct debit payment orders
    +StandingOrdersPayment=Tiešā debeta maksājuma uzdevumi
     StandingOrderPayment=Tiešā debeta maksājuma uzdevums
     NewStandingOrder=Jauns tiešā debeta pasūtījums
     StandingOrderToProcess=Jāapstrādā
    @@ -12,11 +12,11 @@ WithdrawalsLines=Direct debit order lines
     RequestStandingOrderToTreat=Request for direct debit payment order to process
     RequestStandingOrderTreated=Request for direct debit payment order processed
     NotPossibleForThisStatusOfWithdrawReceiptORLine=Not yet possible. Withdraw status must be set to 'credited' before declaring reject on specific lines.
    -NbOfInvoiceToWithdraw=Nb. of qualified invoice with waiting direct debit order
    -NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment orders having defined bank account information
    +NbOfInvoiceToWithdraw=Kvalificēta rēķina Nr. Ar gaidīšanas tiešā debeta rīkojumu
    +NbOfInvoiceToWithdrawWithInfo=Klienta rēķina numurs ar tiešā debeta maksājuma uzdevumu, kurā ir norādīta informācija par bankas kontu
     InvoiceWaitingWithdraw=Invoice waiting for direct debit
     AmountToWithdraw=Summa atsaukt
    -WithdrawsRefused=Direct debit refused
    +WithdrawsRefused=Tiešais debets noraidīts
     NoInvoiceToWithdraw=Netika gaidīts neviens klienta rēķins ar atvērtiem tiešā debeta pieprasījumiem. Rēķina kartē dodieties uz cilni "%s", lai iesniegtu pieprasījumu.
     ResponsibleUser=Atbildīgais lietotājs
     WithdrawalsSetup=Tiešā debeta maksājuma iestatīšana
    @@ -26,8 +26,8 @@ LastWithdrawalReceipt=Jaunākie %s tiešā debeta ieņēmumi
     MakeWithdrawRequest=Izveidojiet tiešā debeta maksājumu pieprasījumu
     WithdrawRequestsDone=%s reģistrēti tiešā debeta maksājumu pieprasījumi
     ThirdPartyBankCode=Trešās puses bankas kods
    -NoInvoiceCouldBeWithdrawed=Nav veiksmīgi izņemts rēķins. Pārbaudiet, vai rēķini ir uz uzņēmumiem ar derīgu noklusējuma BAN un ka BAN ir RUM ar režīmu <strong> %s </ strong>.
    -ClassCredited=Klasificēt kredītus
    +NoInvoiceCouldBeWithdrawed=Netika veiksmīgi norakstīts rēķins. Pārbaudiet, vai rēķini ir norādīti uzĦēmumiem ar derīgu IBAN un IBAN ir UMR (unikālas pilnvaras atsauce) ar režīmu <strong> %s </strong>.
    +ClassCredited=Klasificēt kreditēts
     ClassCreditedConfirm=Vai tiešām vēlaties klasificēt šo atsaukuma kvīti kā kredītu jūsu bankas kontā?
     TransData=Darījuma datums
     TransMetod=Darījuma veids
    diff --git a/htdocs/langs/mk_MK/admin.lang b/htdocs/langs/mk_MK/admin.lang
    index 26e1fdc3347..1571a2abc65 100644
    --- a/htdocs/langs/mk_MK/admin.lang
    +++ b/htdocs/langs/mk_MK/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Development
     VersionUnknown=Unknown
     VersionRecommanded=Recommended
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler to save sessions
     SessionSavePath=Storage session localization
     PurgeSessions=Purge of sessions
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Your session
    -Sessions=Users session
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=External user
     InternalUsers=Internal users
     ExternalUsers=External users
     GUISetup=Display
    -SetupArea=Setup area
    +SetupArea=Setup
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=Setup
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposals
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Invoices
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Suppliers
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=State/Province
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Name
     CompanyAddress=Address
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Name
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/mk_MK/banks.lang b/htdocs/langs/mk_MK/banks.lang
    index 1d42581c344..5bc061f31f3 100644
    --- a/htdocs/langs/mk_MK/banks.lang
    +++ b/htdocs/langs/mk_MK/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Account
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/mk_MK/bills.lang b/htdocs/langs/mk_MK/bills.lang
    index f76ff018f9d..ed988d580e2 100644
    --- a/htdocs/langs/mk_MK/bills.lang
    +++ b/htdocs/langs/mk_MK/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Suppliers payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=Payment amount
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Paid
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Closed
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Other
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/mk_MK/cashdesk.lang b/htdocs/langs/mk_MK/cashdesk.lang
    index 1f51f375e89..353c4ee93ab 100644
    --- a/htdocs/langs/mk_MK/cashdesk.lang
    +++ b/htdocs/langs/mk_MK/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/mk_MK/commercial.lang b/htdocs/langs/mk_MK/commercial.lang
    index efadc44d700..96b8abbb937 100644
    --- a/htdocs/langs/mk_MK/commercial.lang
    +++ b/htdocs/langs/mk_MK/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/mk_MK/companies.lang b/htdocs/langs/mk_MK/companies.lang
    index b3e1e7b6c86..e5de5614886 100644
    --- a/htdocs/langs/mk_MK/companies.lang
    +++ b/htdocs/langs/mk_MK/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Select a third party
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Delete a contact/address
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New third party
    -MenuNewCustomer=New customer
    -MenuNewProspect=New prospect
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=Company
     CompanyName=Company name
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Companies
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=Third parties
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
     ThirdPartyProspectsStats=Prospects
     ThirdPartyCustomers=Customers
     ThirdPartyCustomersStats=Customers
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Position
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposals
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Supplier
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Delete a company
     PersonalInformations=Personal data
     AccountancyCode=Accounting account
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Staff
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=List of prospects
    -ListCustomersShort=List of customers
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Open
     ActivityCeased=Closed
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/mk_MK/dict.lang b/htdocs/langs/mk_MK/dict.lang
    index 61a7237f472..ad3a24e12f6 100644
    --- a/htdocs/langs/mk_MK/dict.lang
    +++ b/htdocs/langs/mk_MK/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/mk_MK/ecm.lang b/htdocs/langs/mk_MK/ecm.lang
    index 5200fa30b1d..43ddd3bf36f 100644
    --- a/htdocs/langs/mk_MK/ecm.lang
    +++ b/htdocs/langs/mk_MK/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/mk_MK/errors.lang b/htdocs/langs/mk_MK/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/mk_MK/errors.lang
    +++ b/htdocs/langs/mk_MK/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/mk_MK/help.lang b/htdocs/langs/mk_MK/help.lang
    index 6129cae362d..da776683a6a 100644
    --- a/htdocs/langs/mk_MK/help.lang
    +++ b/htdocs/langs/mk_MK/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Commercial
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/mk_MK/holiday.lang b/htdocs/langs/mk_MK/holiday.lang
    index 1c19d69732a..951af61f273 100644
    --- a/htdocs/langs/mk_MK/holiday.lang
    +++ b/htdocs/langs/mk_MK/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Description
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=Delete
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/mk_MK/install.lang b/htdocs/langs/mk_MK/install.lang
    index fb521c0c085..c92d83988ff 100644
    --- a/htdocs/langs/mk_MK/install.lang
    +++ b/htdocs/langs/mk_MK/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/mk_MK/interventions.lang b/htdocs/langs/mk_MK/interventions.lang
    index 4c93eff9d0d..a130367b14f 100644
    --- a/htdocs/langs/mk_MK/interventions.lang
    +++ b/htdocs/langs/mk_MK/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/mk_MK/main.lang b/htdocs/langs/mk_MK/main.lang
    index f4e70a13aa4..7bf25b8fa45 100644
    --- a/htdocs/langs/mk_MK/main.lang
    +++ b/htdocs/langs/mk_MK/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Closed
     Closed2=Closed
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Update
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Other
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tools
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/mk_MK/other.lang b/htdocs/langs/mk_MK/other.lang
    index 8ef8cc30090..021bfe65985 100644
    --- a/htdocs/langs/mk_MK/other.lang
    +++ b/htdocs/langs/mk_MK/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Description
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/mk_MK/paybox.lang b/htdocs/langs/mk_MK/paybox.lang
    index 306aaeec047..0d35ac440fa 100644
    --- a/htdocs/langs/mk_MK/paybox.lang
    +++ b/htdocs/langs/mk_MK/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/mk_MK/projects.lang b/htdocs/langs/mk_MK/projects.lang
    index e04f28689a1..d895f477bd4 100644
    --- a/htdocs/langs/mk_MK/projects.lang
    +++ b/htdocs/langs/mk_MK/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/mk_MK/propal.lang b/htdocs/langs/mk_MK/propal.lang
    index 8cf3a68167a..c258381ea85 100644
    --- a/htdocs/langs/mk_MK/propal.lang
    +++ b/htdocs/langs/mk_MK/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Draft
    -PropalStatusValidatedShort=Validated
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Closed
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/mk_MK/website.lang b/htdocs/langs/mk_MK/website.lang
    index 0f0673e3716..6ae08738815 100644
    --- a/htdocs/langs/mk_MK/website.lang
    +++ b/htdocs/langs/mk_MK/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/mn_MN/admin.lang b/htdocs/langs/mn_MN/admin.lang
    index d7042e784dc..8d6e8e39b04 100644
    --- a/htdocs/langs/mn_MN/admin.lang
    +++ b/htdocs/langs/mn_MN/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Development
     VersionUnknown=Unknown
     VersionRecommanded=Recommended
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler to save sessions
     SessionSavePath=Storage session localization
     PurgeSessions=Purge of sessions
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Your session
    -Sessions=Users session
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=External user
     InternalUsers=Internal users
     ExternalUsers=External users
     GUISetup=Display
    -SetupArea=Setup area
    +SetupArea=Setup
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=Setup
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposals
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Invoices
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Suppliers
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=State/Province
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Name
     CompanyAddress=Address
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Name
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/mn_MN/banks.lang b/htdocs/langs/mn_MN/banks.lang
    index 1d42581c344..5bc061f31f3 100644
    --- a/htdocs/langs/mn_MN/banks.lang
    +++ b/htdocs/langs/mn_MN/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Account
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/mn_MN/bills.lang b/htdocs/langs/mn_MN/bills.lang
    index f76ff018f9d..ed988d580e2 100644
    --- a/htdocs/langs/mn_MN/bills.lang
    +++ b/htdocs/langs/mn_MN/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Suppliers payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=Payment amount
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Paid
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Closed
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Other
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/mn_MN/cashdesk.lang b/htdocs/langs/mn_MN/cashdesk.lang
    index 1f51f375e89..353c4ee93ab 100644
    --- a/htdocs/langs/mn_MN/cashdesk.lang
    +++ b/htdocs/langs/mn_MN/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/mn_MN/commercial.lang b/htdocs/langs/mn_MN/commercial.lang
    index efadc44d700..96b8abbb937 100644
    --- a/htdocs/langs/mn_MN/commercial.lang
    +++ b/htdocs/langs/mn_MN/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/mn_MN/companies.lang b/htdocs/langs/mn_MN/companies.lang
    index b3e1e7b6c86..e5de5614886 100644
    --- a/htdocs/langs/mn_MN/companies.lang
    +++ b/htdocs/langs/mn_MN/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Select a third party
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Delete a contact/address
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New third party
    -MenuNewCustomer=New customer
    -MenuNewProspect=New prospect
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=Company
     CompanyName=Company name
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Companies
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=Third parties
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
     ThirdPartyProspectsStats=Prospects
     ThirdPartyCustomers=Customers
     ThirdPartyCustomersStats=Customers
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Position
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposals
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Supplier
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Delete a company
     PersonalInformations=Personal data
     AccountancyCode=Accounting account
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Staff
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=List of prospects
    -ListCustomersShort=List of customers
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Open
     ActivityCeased=Closed
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/mn_MN/dict.lang b/htdocs/langs/mn_MN/dict.lang
    index 61a7237f472..ad3a24e12f6 100644
    --- a/htdocs/langs/mn_MN/dict.lang
    +++ b/htdocs/langs/mn_MN/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/mn_MN/ecm.lang b/htdocs/langs/mn_MN/ecm.lang
    index 5200fa30b1d..43ddd3bf36f 100644
    --- a/htdocs/langs/mn_MN/ecm.lang
    +++ b/htdocs/langs/mn_MN/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/mn_MN/errors.lang b/htdocs/langs/mn_MN/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/mn_MN/errors.lang
    +++ b/htdocs/langs/mn_MN/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/mn_MN/help.lang b/htdocs/langs/mn_MN/help.lang
    index 6129cae362d..da776683a6a 100644
    --- a/htdocs/langs/mn_MN/help.lang
    +++ b/htdocs/langs/mn_MN/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Commercial
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/mn_MN/holiday.lang b/htdocs/langs/mn_MN/holiday.lang
    index 1c19d69732a..951af61f273 100644
    --- a/htdocs/langs/mn_MN/holiday.lang
    +++ b/htdocs/langs/mn_MN/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Description
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=Delete
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/mn_MN/install.lang b/htdocs/langs/mn_MN/install.lang
    index fb521c0c085..c92d83988ff 100644
    --- a/htdocs/langs/mn_MN/install.lang
    +++ b/htdocs/langs/mn_MN/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/mn_MN/interventions.lang b/htdocs/langs/mn_MN/interventions.lang
    index 4c93eff9d0d..a130367b14f 100644
    --- a/htdocs/langs/mn_MN/interventions.lang
    +++ b/htdocs/langs/mn_MN/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/mn_MN/main.lang b/htdocs/langs/mn_MN/main.lang
    index ea2e4bee29c..17ac06aa403 100644
    --- a/htdocs/langs/mn_MN/main.lang
    +++ b/htdocs/langs/mn_MN/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Closed
     Closed2=Closed
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Update
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Other
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tools
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/mn_MN/other.lang b/htdocs/langs/mn_MN/other.lang
    index 8ef8cc30090..021bfe65985 100644
    --- a/htdocs/langs/mn_MN/other.lang
    +++ b/htdocs/langs/mn_MN/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Description
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/mn_MN/paybox.lang b/htdocs/langs/mn_MN/paybox.lang
    index 306aaeec047..0d35ac440fa 100644
    --- a/htdocs/langs/mn_MN/paybox.lang
    +++ b/htdocs/langs/mn_MN/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/mn_MN/projects.lang b/htdocs/langs/mn_MN/projects.lang
    index e04f28689a1..d895f477bd4 100644
    --- a/htdocs/langs/mn_MN/projects.lang
    +++ b/htdocs/langs/mn_MN/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/mn_MN/propal.lang b/htdocs/langs/mn_MN/propal.lang
    index 8cf3a68167a..c258381ea85 100644
    --- a/htdocs/langs/mn_MN/propal.lang
    +++ b/htdocs/langs/mn_MN/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Draft
    -PropalStatusValidatedShort=Validated
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Closed
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/mn_MN/website.lang b/htdocs/langs/mn_MN/website.lang
    index 0f0673e3716..6ae08738815 100644
    --- a/htdocs/langs/mn_MN/website.lang
    +++ b/htdocs/langs/mn_MN/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/nb_NO/accountancy.lang b/htdocs/langs/nb_NO/accountancy.lang
    index 3d5bc3815c8..82c244a10f4 100644
    --- a/htdocs/langs/nb_NO/accountancy.lang
    +++ b/htdocs/langs/nb_NO/accountancy.lang
    @@ -36,8 +36,12 @@ AlreadyInGeneralLedger=Allerede journalført i hovedbøker
     NotYetInGeneralLedger=Ikke ennå journalisert i ledgers
     GroupIsEmptyCheckSetup=Gruppen er tom, sjekk oppsettet for den personlige regnskapsgruppen
     DetailByAccount=Vis detaljer etter konto
    -AccountWithNonZeroValues=Kontoer med ingen nullverdier
    +AccountWithNonZeroValues=Kontoer med ikke-nullverdier
     ListOfAccounts=Liste over kontoer
    +CountriesInEEC=Land i EEC
    +CountriesNotInEEC=Land ikke i EEC
    +CountriesInEECExceptMe=Land i EEC unntatt %s
    +CountriesExceptMe=Alle land unntatt %s
     
     MainAccountForCustomersNotDefined=Hoved regnskapskonto for kunder som ikke er definert i oppsettet
     MainAccountForSuppliersNotDefined=Hovedregnskapskonto for leverandører som ikke er definert i oppsettet
    @@ -58,7 +62,7 @@ AccountancyAreaDescVat=TRINN %s: Definer regnskapskonto for hver MVA-sats. Bruk
     AccountancyAreaDescDefault=TRINN %s: Definer standard regnskapskontoer. For dette, bruk menyoppføringen %s.
     AccountancyAreaDescExpenseReport=TRINN %s: Definer standard regnskapskontoer for hver type kostnadsrapport. Bruk menyoppføringen %s.
     AccountancyAreaDescSal=TRINN %s: Definer standard regnskapskonto for betaling av lønn. Bruk menyoppføring %s.
    -AccountancyAreaDescContrib=TRINN %s: Definer standard regnskapskonto for spesialutgifter (diverse avgifter). Bruk menyoppføringen %s.
    +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s.
     AccountancyAreaDescDonation=TRINN %s: Definer standard regnskapskonto for donasjoner. Bruk menyoppføringen %s.
     AccountancyAreaDescMisc=TRINN %s: Definer obligatorisk standardkonto og standard regnskapskontoer for diverse transaksjoner. Bruk menyoppføringen %s.
     AccountancyAreaDescLoan=TRINN %s: Definer standard regnskapskonto for lån. Bruk menyoppføringen %s.
    @@ -156,6 +160,7 @@ Docref=Referanse
     LabelAccount=Kontoetikett
     LabelOperation=Etikettoperasjon
     Sens=som betyr
    +LetteringCode=Brevkode
     Codejournal=Journal
     NumPiece=Del nummer
     TransactionNumShort=Transaksjonsnummer
    @@ -198,13 +203,13 @@ PaymentsNotLinkedToProduct=Betaling ikke knyttet til noen vare/tjeneste
     
     Pcgtype=Kontogruppe
     Pcgsubtype=Konto-undergruppe
    -PcgtypeDesc=Gruppe og undergruppe av konto brukes som forhåndsdefinerte "filter"- og "grupperings" -kriterier for enkelte regnskapsrapporter. For eksempel brukes "Inntekt" eller "Utgift som grupper for regnskapskontoer for produkter for å bygge utgifts-/inntektsrapporten.
    +PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
     
     TotalVente=Total omsetning før skatt
     TotalMarge=Total salgsmargin
     
     DescVentilCustomer=Liste over kunde-fakturalinjer (bundet eller ikke) til en vare-regnskapskonto
    -DescVentilMore=I de fleste tilfeller, hvis du bruker forhåndsdefinerte varer eller tjenester, og du setter kontonummeret på vare/tjeneste-kortet, vil programmet være i stand til å gjøre alle bindinger mellom fakturalinjer og regnskapskonto i din kontoplan, bare med et enkelt klikk på knappen <strong>"%s"</strong>. Hvis kontoen ikke ble satt på vare-/tjenestekortet eller hvis du fortsatt har noen linjer ikke bundet til noen konto, må du foreta en manuell binding fra menyen "<strong>%s</strong>".
    +DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "<strong>%s</strong>".
     DescVentilDoneCustomer=Liste over kunde-fakturalinjer og deres vare-regnskapskontoer
     DescVentilTodoCustomer=Bind fakturalinjer som ikke allerede er bundet, til en vare-regnskapskonto
     ChangeAccount=Endre regnskapskonto for valgte vare-/tjenestelinjer til følgende konto:
    @@ -213,7 +218,7 @@ DescVentilSupplier=Liste over leverandør-fakturalinjer som er bundet eller ikke
     DescVentilDoneSupplier=Liste over leverandør-fakturalinjer av og deres regnskapskonto
     DescVentilTodoExpenseReport=Bind utgiftsrapport-linjer til en gebyr-regnskapskonto
     DescVentilExpenseReport=Liste over utgiftsrapport-linjer bundet (eller ikke) til en gebyr-regnskapskonto
    -DescVentilExpenseReportMore=Hvis du setter opp regnskapskonto med type utgiftsrapport-linjer, vil programmet være i stand til å gjøre alle bindinger mellom utgiftsrapport-linjer og regnskapskontoer med et klikk på knappen <strong>"%s"</strong>. Hvis du fortsatt har noen linjer som ikke er bundet til en konto, må du foreta en manuell binding fra menyen "<strong>%s</strong>".
    +DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on fees dictionary or if you still have some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
     DescVentilDoneExpenseReport=Liste over utgiftsrapport-linjer og tilhørende gebyr-regnskapskonto
     
     ValidateHistory=Bind automatisk
    @@ -221,6 +226,7 @@ AutomaticBindingDone=Automatisk binding utført
     
     ErrorAccountancyCodeIsAlreadyUse=Feil, du kan ikke slette denne regnskapskontoen fordi den er i bruk
     MvtNotCorrectlyBalanced=Bevegelse er ikke riktig balansert. Debet = %s | Kreditt = %s
    +Balancing=Balancing
     FicheVentilation=Binding-kort
     GeneralLedgerIsWritten=Transaksjoner blir skrevet inn i hovedboken
     GeneralLedgerSomeRecordWasNotRecorded=Noen av transaksjonene kunne ikke journalføres. Hvis det ikke er noen annen feilmelding, er dette trolig fordi de allerede var journalført.
    @@ -232,7 +238,7 @@ NotYetAccounted=Ikke regnskapsført i hovedboken enda
     
     ## Admin
     ApplyMassCategories=Masseinnlegging av kategorier
    -AddAccountFromBookKeepingWithNoCategories=Tilgjengelig konto er ennå ikke i en personlig gruppe
    +AddAccountFromBookKeepingWithNoCategories=Available account not yet in a personalized group
     CategoryDeleted=Kategori for regnskapskontoen er blitt slettet
     AccountingJournals=Regnskapsjournaler
     AccountingJournal=Regnskapsjournal
    @@ -262,7 +268,8 @@ Modelcsv_quadratus=Eksport til Quadratus QuadraCompta
     Modelcsv_ebp=Eksporter mot EBP
     Modelcsv_cogilog=Eksport mot Cogilog
     Modelcsv_agiris=Export mot Agiris
    -Modelcsv_configurable=Eksport konfigurerbar
    +Modelcsv_configurable=Export CSV Configurable
    +Modelcsv_FEC=Export FEC (Art. L47 A) (Test)
     ChartofaccountsId=Kontoplan ID
     
     ## Tools - Init accounting account on product / service
    @@ -292,15 +299,15 @@ ErrorNoAccountingCategoryForThisCountry=Ingen regnskapskonto-gruppe tilgjengelig
     ErrorInvoiceContainsLinesNotYetBounded=Du prøver å journalføre noen linjer i fakturaen <strong> %s </strong>, men noen andre linjer er ennå ikke bundet til en regnskapskonto. Journalføring av alle fakturalinjer for denne fakturaen blir avvist.
     ErrorInvoiceContainsLinesNotYetBoundedShort=Noen linjer på fakturaen er ikke bundet til en regnskapskonto.
     ExportNotSupported=Eksportformatet som er satt  opp støttes ikke på denne siden
    -BookeppingLineAlreayExists=Linjene eksisterer allerede i bokføringen
    +BookeppingLineAlreayExists=Lines already existing into bookkeeping
     NoJournalDefined=Ingen journal definert
     Binded=Bundne linjer
     ToBind=Linjer som skal bindes
    -UseMenuToSetBindindManualy=Autodeteksjon ikke mulig, bruk menyen <a href="%s"> %s </a> for å gjøre bindingen manuelt
    +UseMenuToSetBindindManualy=Lines not yet bound, use menu <a href="%s">%s</a> to make the binding manually
     
     ## Import
     ImportAccountingEntries=Regnskapsposter
     
    -WarningReportNotReliable=Advarsel, denne rapporten er ikke basert på hovedboken, så den inneholder ikke transaksjoner endret manuelt i hovedboken. Hvis journaliseringen din er oppdatert, er bokføringsvisningen mer nøyaktig.
    +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
     ExpenseReportJournal=Utgiftsrapport-journal
     InventoryJournal=Inventar-journal
    diff --git a/htdocs/langs/nb_NO/admin.lang b/htdocs/langs/nb_NO/admin.lang
    index ce81665069d..da830fa83f3 100644
    --- a/htdocs/langs/nb_NO/admin.lang
    +++ b/htdocs/langs/nb_NO/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Utviklingsversjon
     VersionUnknown=Ukjent
     VersionRecommanded=Anbefalt
     FileCheck=Filintegritetssjekker
    -FileCheckDesc=Dette verktøyet lar deg sjekke integriteten av filer og oppsett av programmet ved å sammenligne hver fil med de offisielle. Verdien av noen konstanter kan også sjekkes. Du kan bruke dette verktøyet til å oppdage om noen filer ble endret av f.eks hackere
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Filintegriteter er strengt dannet med referansen.
    -FileIntegrityIsOkButFilesWereAdded=Fil-integritetssjekk ble godkjent, men noen nye filer ble lagt til.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Filintegritetssjekk mislyktes. Noen filer ble endret, fjernet eller lagt til.
     GlobalChecksum=Global sjekksum
     MakeIntegrityAnalysisFrom=Opprett integritetsanalyse av applikasjonsfiler fra
    @@ -30,14 +30,14 @@ SessionSaveHandler=Håndterer for å lagre sesjoner
     SessionSavePath=Sted for lagring av økt 
     PurgeSessions=Utrenskning av øktene
     ConfirmPurgeSessions=Vil du virkelig rense alle økter? Dette vil frakoble alle brukere (bortsett fra deg selv).
    -NoSessionListWithThisHandler=Øktlagrings-behandleren i PHP tillater ikke å vise alle kjørende økter.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lås nye tilkoblinger
    -ConfirmLockNewSessions=Er du sikker på at du vil begrense eventuelle nye Dolibarr tilkoblinger til deg selv?. Bare brukeren <b>%s</b> vil kunne koble til etter det.
    +ConfirmLockNewSessions=Er du sikker på at du vil begrense en ny Dolibarr-forbindelse til deg selv? Kun brukeren <b> %s </b> vil kunne koble til etter det.
     UnlockNewSessions=Fjern forbindelseslås
     YourSession=Din økt
    -Sessions=Brukerøkter
    +Sessions=Brukers økter
     WebUserGroup=Webserver bruker/gruppe
    -NoSessionFound=Din PHP synes å ikke tillate å liste aktive økter. Mappen brukt til å lagre økter <b>(%s)</b> kan være beskyttet (for eksempel etter OS tillatelser eller PHP direktiv open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Databasetegnsett for lagring av data
     DBSortingCharset=Databasetegnsett for sortering av data
     ClientCharset=Klien karaktersett
    @@ -50,7 +50,7 @@ ExternalUser=Ekstern bruker
     InternalUsers=Interne brukere
     ExternalUsers=Eksterne brukere
     GUISetup=Visning
    -SetupArea=Oppsettsområde
    +SetupArea=Oppsett
     UploadNewTemplate=Last opp ny mal(er)
     FormToTestFileUploadForm=Skjema for å teste opplasting (i henhold til oppsett)
     IfModuleEnabled=Merk: Ja er bare effektiv hvis modulen <b>%s</b> er aktivert
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Koden kan ikke inneholde verdien 0
     DisableJavascript=Deaktiver JavaScript og Ajax funksjoner (Anbefalt for tekstbaserte nettlesere og blinde)
     UseSearchToSelectCompanyTooltip=Hvis du har et stort antall tredjeparter (> 100 000), kan du øke hastigheten ved å sette konstant COMPANY_DONOTSEARCH_ANYWHERE til 1 i Oppsett-> Annet. Søket vil da være begrenset til starten av strengen.
     UseSearchToSelectContactTooltip=Hvis du har et stort antall tredjeparter (> 100 000), kan du øke hastigheten ved å sette konstant CONTACT_DONOTSEARCH_ANYWHERE til 1 i Oppsett-> Annet. Søket vil da være begrenset til starten av strengen.
    -DelaiedFullListToSelectCompany=Vent med å trykke på en tast før innholdet av tredjepart-kombinasjonslisten er lastet (Dette kan øke ytelsen hvis du har mange tredjeparter)
    -DelaiedFullListToSelectContact=Vent med å trykke på en tast før innholdet av kontakt-kombinasjonslisten er lastet (Dette kan øke ytelsen hvis du har mange kontakter)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Antall tegn for å starte søk: %s
     NotAvailableWhenAjaxDisabled=Ikke tilgjengelig når Ajax er slått av
     AllowToSelectProjectFromOtherCompany=På elementer av en tredjepart, kan du velge et prosjekt knyttet til en annen tredjepart
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Forhåndsvisning ikke tilgjengelig
     ThemeCurrentlyActive=Gjeldende tema
     CurrentTimeZone=Tidssone for PHP (server)
     MySQLTimeZone=Tidssone MySql (database)
    -TZHasNoEffect=Datoer lagres og returneres av databaseserver som innsendt streng. Tidssonen har kun effekt ved bruk av UNIX_TIMESTAMP funksjon (som ikke bør brukes av Dolibarr, slik database TZ ikke skal ha noen effekt, selv om den ble endret etter at data ble lagt inn).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Mellomrom
     Table=Tabell
     Fields=Felt
    @@ -111,14 +111,14 @@ NotConfigured=Modul/applikasjon ikke konfigurert
     Active=Aktiv
     SetupShort=Oppsett
     OtherOptions=Andre innstillinger
    -OtherSetup=Andre innstillinger
    +OtherSetup=Annet oppsett
     CurrentValueSeparatorDecimal=Desimaltegn
     CurrentValueSeparatorThousand=Tusenskille
     Destination=Mål
     IdModule=Modul ID
     IdPermissions=Rettigheter ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Språkparametere for Dolibarr
    +LocalisationDolibarrParameters=Lokaliseringsparametere
     ClientTZ=Tidssone (bruker)
     ClientHour=Klienttid (bruker)
     OSTZ=Server OS Tidssone
    @@ -126,8 +126,8 @@ PHPTZ=Tidssone PHP-server
     DaylingSavingTime=Sommertid
     CurrentHour=PHP tid (server)
     CurrentSessionTimeOut=Gjeldende økt-timeout
    -YouCanEditPHPTZ=For å angi en annen PHP tidssone (ikke nødvendig), kan du prøve å legge til en fil .htaccess med en linje som denne "SetEnv TZ Europe/Oslo"
    -HoursOnThisPageAreOnServerTZ=Advarsel, i motsetning til andre skjermer, er timer på denne siden ikke i din lokale tidssone, men i tidssonen til serveren.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgeter
     MaxNbOfLinesForBoxes=Maks. antall linjer for widgeter
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignorer feil ved postduplisering (INSERT IGNORE)
     AutoDetectLang=Auto-oppdag (nettleserspråk)
     FeatureDisabledInDemo=Funksjonen er slått av i demo
     FeatureAvailableOnlyOnStable=Egenskapen er kun tilgjengelig på offisielle, stabile versjoner
    -BoxesDesc=Widgeter er komponenter som viser litt informasjon som du kan legge til for å tilpasse enkelte sider. Du kan velge mellom å vise widgeten eller ikke ved å velge målside og klikke på 'Aktiver', eller ved å klikke på søppelkassen for å deaktivere den.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Bare elementer fra <a href="%s">aktiverte moduler</a> vises.
    -ModulesDesc=Dolibarr-moduler definerer hvilken applikasjon/funksjon som er aktivert i programvaren. Enkelte applikasjoner/moduler krever tillatelser du må gi til brukere, etter at du har aktivert dem. Klikk på knappen på/av for å aktivere en modul/applikasjon.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Du kan finne flere moduler for nedlasting på eksterne nettsteder.
    -ModulesDeployDesc=Hvis tillatelser for filsystemet tillater det, kan du bruke dette verktøyet til å distribuere en ekstern modul. Modulen vil da være synlig under fanen <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Finn eksterne apper/moduler
     ModulesDevelopYourModule=Utvikle dine egen apper/moduler
    -ModulesDevelopDesc=Du kan utvikle eller finne en partner for å utvikle din personlige modul,
    -DOLISTOREdescriptionLong=I stedet for å slå på <a href="https://www.dolistore.com"> www.dolistore.com </a> nettstedet for å finne en ekstern modul, kan du bruke dette innebygde verktøyet til å utføre søkingen på eksternt marked for deg (kan være tregt, trenger Internett-tilgang) ...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Ny
     FreeModule=Gratis
     CompatibleUpTo=Kompatibel med versjon %s
    @@ -211,8 +211,8 @@ Nouveauté=Nyhet
     AchatTelechargement=Kjøp/Last ned
     GoModuleSetupArea=For å distribuere/installere en ny modul, gå til området for Moduloppsett på <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, den offisielle markedsplassen for eksterne moduler til Dolibarr ERP/CRM 
    -DoliPartnersDesc=Liste over selskaper som tilbyr spesialtilpassede moduler og funksjoner (Merk: Erfarne PHP-programmerere kan gi tilpasset utvikling for åpen kildekode)
    -WebSiteDesc=Referansesider for å finne flere moduler.
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Noen løsninger for å utvikle din egen modul...
     URL=Lenke
     BoxesAvailable=Tilgjengelige widgeter
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Lagrer passord i krypert form og ikke i klartekst (Aktiv
     MainDbPasswordFileConfEncrypted=Databasepassord kryptert i conf.php (Aktivering anbefales)
     InstrucToEncodePass=For å kryptere passordet i <b>conf.php</b> , bytt ut linjen <br><b>$dolibarr_main_db_pass="...";</b><br>med<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=For passord i klartekst(helst ikke) i <b>conf.php</b> , bytt ut linjen <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>med<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Beskytt genererte pdf-filer (anbefales ikke, fjerner mulighet for massegenerering av PDF'er)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Beskyttelse av et PDF-dokument gjør det tilgjengelig for å lese og skrive det ut med hvilken som helst PDF-leser. Det er imidlertid ikke mulig å redigere og kopiere. Legg merke til at bruk av denne funksjonen gjør det mulig å bygge en globalt sammensatt PDF-fil som ikke fungerer.
     Feature=Funksjon
     DolibarrLicense=Lisens
    @@ -246,8 +246,8 @@ ExternalResources=Eksterne ressurser
     SocialNetworks=Sosiale nettverk
     ForDocumentationSeeWiki=For bruker- eller utviklerdokumentasjon (Doc, FAQs ...), <br> ta en titt på Dolibarr Wiki: <br> <a href="%s" target="_blank"><b>%s</b></a>
     ForAnswersSeeForum=For andre spørsmål/hjelp, kan du bruke Dolibarr forumet: <br> <a href="%s" target="_blank"><b>%s</b></a>
    -HelpCenterDesc1=Dette området kan hjelpe deg å få support-tjeneste med Dolibarr.
    -HelpCenterDesc2=Enkelte deler av denne tjenesten er <b>kun</b> tilgjengelig på <b>engelsk.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Gjeldende menyen behandler
     MeasuringUnit=Måleenhet
     LeftMargin=Venstremarg
    @@ -262,31 +262,35 @@ NoticePeriod=Oppsigelsestid
     NewByMonth=Ny etter måned
     Emails=Epost
     EMailsSetup=Oppsett av e-post
    -EMailsDesc=Denne siden lar deg overskrive PHP-parametrene for sending av e-post. I de fleste tilfeller på Unix/Linux OS er PHP-oppsettet ditt riktig og disse parameterne er ubrukelige.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=E-postsender-profiler
    -MAIN_MAIL_SMTP_PORT=SMTP-port (Standard i php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP-server (Standard i php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP-port (Settes ikke i PHP på Unix/Linux)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP-server (Settes ikke i PHP på Unix/Linux)
    -MAIN_MAIL_EMAIL_FROM=Avsender-e-post for automatiske e-poster (Som standard i php.ini: <b> %s</b>)
    -MAIN_MAIL_ERRORS_TO=Epost brukt til returnerte epostmeldinger (felt 'Feil-til' i e-postmeldinger sendt)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematisk en skjult karbon-kopi av alle sendte e-post til
    -MAIN_DISABLE_ALL_MAILS=Deaktiver alle e-postmeldinger (for testformål eller demoer)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send alle e-post til (i stedet for ekte mottakere, til testformål)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Legg til ansatte brukere med epost i tillatt mottaker-liste
    -MAIN_MAIL_SENDMODE=Metode for å sende e-post
    -MAIN_MAIL_SMTPS_ID=SMTP-ID hvis godkjenning kreves
    -MAIN_MAIL_SMTPS_PW=SMTP-passord hvis godkjenning kreves
    -MAIN_MAIL_EMAIL_TLS= Bruk TLS (SSL) kryptering
    -MAIN_MAIL_EMAIL_STARTTLS= Bruk TLS (STARTTL) kryptering
    -MAIN_DISABLE_ALL_SMS=Deaktiver alle SMS sendings (for testformål eller demoer)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Metode for å sende SMS
    -MAIN_MAIL_SMS_FROM=Standard avsender telefonnummer for sending av SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Standard sender e-post som for manuelle sendinger (bruker e-post eller firmanavn)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=Bruker-epost
     CompanyEmail=Firma-epost
     FeatureNotAvailableOnLinux=Funksjonen er ikke tilgjengelig på Unix/Linux. Test sendmail lokalt.
    -SubmitTranslation=Hvis oversettelsen for dette språket ikke er fullstendig eller du finner feil, kan du rette opp dette ved å redigere filene i katalogen <b>langs/%s</b> og sende endrede filer til www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=Hvis oversettelse for dette språket ikke er fullstendig eller du finner feil, kan du korrigere dette ved å redigere filer i katalogen <b>langs/%s</b> og sende endrede filer på dolibarr.org/forum eller for utviklere på github.com/Dolibarr/dolibarr.
     ModuleSetup=Modulinnstillinger
     ModulesSetup=Moduler/Applikasjonsoppsett
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multimodulverktøy
     ModuleFamilyExperimental=Eksperimentelle moduler
     ModuleFamilyFinancial=Finansielle moduler (Regnskap/Likviditet)
     ModuleFamilyECM=Håndtering av elektronisk innhold (ECM)
    -ModuleFamilyPortal=Websider og andre frontapplikasjoner
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Grensesnitt mot eksterne systemer
     MenuHandlers=Menyhåndtering
     MenuAdmin=Menyredigering
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Ikke bruk i produksjon
     ThisIsProcessToFollow=Disse skrittene må gjennomføres:
     ThisIsAlternativeProcessToFollow=Dette er et alternativt oppsett for manuell behandling:
     StepNb=Trinn %s
    -FindPackageFromWebSite=Finn en pakke som inneholder funksjonen du vil bruke (for eksempel på nettsider %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Last ned pakke (for eksempel fra den offisielle websiden %s).
    -UnpackPackageInDolibarrRoot=Pakk ut filene til serverkatalogen til Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=For å distribuere/installere en ekstern modul, pakk ut filene i servermappen dedikert for moduler: <b>%s</b>
    -SetupIsReadyForUse=Moduldistribusjon er ferdig. Du må imidlertid aktivere og sette opp modulen i programmet ved å gå til siden: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=Alternativ rotkatalog er ikke definert til en eksisterende katalog.<br>
     InfDirAlt=Fra versjon 3 er det mulig å definere en alternativ rotkatalog. Dette gjør det mulig å lagre plug-ins og egendefinerte maler.<br>Opprett en katalog i roten til Dolibarr (f.eks min katalog).<br>
     InfDirExample=<br> Deklarer det i filen <strong>conf.php</strong> <br> $ dolibarr_main_url_root_alt='/custom' <br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/tilpasset' <br> Hvis disse linjene er kommentert med "#", er det bare å fjerne tegnet "#" for å aktivere linjene.
    -YouCanSubmitFile=For dette trinnet kan du sende inn .zip-filen til modulpakken her:
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Gjeldende versjon av Dolibarr 
     CallUpdatePage=Gå til siden som oppdaterer data og databasestruktur: %s.
     LastStableVersion=Siste stabile versjon
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Ta en titt på wikisiden for en fullstendig liste over alle de
     UseACacheDelay= Forsinkelse for cache eksport respons i sekunder (0 eller tom for ingen cache)
     DisableLinkToHelpCenter=Skjul linken <b>"Trenger du hjelp eller støtte"</b> på innloggingssiden
     DisableLinkToHelp=Skjul lenke til online hjelp "<b>%s</b>"
    -AddCRIfTooLong=Det er ingen automatisk linjeskift, så hvis linjene er for lange og når ut av siden på dokumenter, må du legge til vognreturer i tekstfeltet.
    -ConfirmPurge=Er du sikker på at du vil kjøre denne rensingen?<br> Det vil føre til at alle datafiler blir slettet, uten at du kan hente dem tilbake (ECM-filer, vedlegg...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum lengde
     LanguageFilesCachedIntoShmopSharedMemory=Filer .lang lastet i delt minne
     LanguageFile=Språkfil
    -ExamplesWithCurrentSetup=Eksempler med gjeldende oppsett
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Liste over OpenDocument-mapper med maler
     ListOfDirectoriesForModelGenODT=Liste over kataloger som inneholder mal-filer med Opendocument format.<br><br>Sett inn hele banen til kataloger her.<br>Legg til et linjeskift mellom hver katalog.<br>For å legge til en katalog av GED modulen, legg til <b>DOL_DATA_ROOT/ECM/dittkatalognavn her</b>. <br><br>Filer i disse katalogene må slutte med <b>.odt</b> eller <b>.ods</b>.
    -NumberOfModelFilesFound=Antall ODT / ODS maler filer som finnes i disse mappene
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Eksempler på syntaks:<br>c:\\mydir<br>/Home/mydir<br>DOL_DATA_ROOT/ECM/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>For å lære hvordan du oppretter ODT dokumentmaler, og før du lagrer dem, les wiki-dokumentasjon:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Nøkkel til bruk Web Services (parameter "dolibarrkey" i
     TestSubmitForm=Utfylling testskjema
     ThisForceAlsoTheme=Når denne menyen er i bruk vil den velge tema uansett hva brukeren har valgt. Denne menyen er spesialisert for smarttelefoner, men fungerer ikke på alle smarttelefoner. Bruk en annen meny manager hvis du opplever problemer.
     ThemeDir=Skins-mappe
    -ConnectionTimeout=Tidsavbrudd for tilkobling
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Respons tidsavbrudd
     SmsTestMessage=Test melding fra __ PHONEFROM__ til __ PHONETO__
     ModuleMustBeEnabledFirst=Modulen <b>%s</b> må aktiveres før du kan bruke denne egenskapen.
     SecurityToken=Nøkkel til sikre nettadresser
    -NoSmsEngine=Ingen SMS avsender tilgjengelig. SMS håndterer er ikke installert med standardinstallasjon (fordi de er avhengig av en ekstern leverandør), men du kan finne noen på %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Du kan angi globale alternativer relatert til PDF-generering
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Regler for å lage adressebokser
     HideAnyVATInformationOnPDF=Skjul all informasjon relatert til Salgsskatt/MVA på generert PDF
     PDFRulesForSalesTax=Regler for salgsskatt/mva
     PDFLocaltax=Regler for %s
    -HideLocalTaxOnPDF=Skjul %s rente i pdf kolonne 
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Skjul varebeskrivelse på generert PDF
     HideRefOnPDF=Skjul varereferanse på generert PDF
     HideDetailsOnPDF=Skjul linjer med varedetaljer på genererte PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parametre for å sikre nettadresser
     SecurityTokenIsUnique=Bruk en unik securekey parameter for hver webadresse
     EnterRefToBuildUrl=Oppgi referanse for objekt %s
     GetSecuredUrl=Få beregnet URL
    -ButtonHideUnauthorized=Skjul knapper for brukere uten administratorrettigheter i stedet for å vise dem som grå
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Gammel MVA-sats
     NewVATRates=Ny MVA-sats
     PriceBaseTypeToChange=Endre på prisene med base referanseverdi definert på
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Velg liste
     ExtrafieldSelectList = Velg fra tabell
     ExtrafieldSeparator=Separator (ikke et felt)
     ExtrafieldPassword=Passord
    -ExtrafieldRadio=Radioknapper (kun på valg)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Sjekkbokser
     ExtrafieldCheckBoxFromList=Avkrysningsbokser fra tabell
     ExtrafieldLink=Lenke til et objekt
     ComputedFormula=Beregnet felt
     ComputedFormulaDesc=Her kan du skrive inn en formel ved hjelp av andre objektegenskaper eller PHP-koding for å få en dynamisk beregningnet verdi. Du kan bruke PHP-kompatible formler, inkludert "?" operator og følgende globale objekt: <strong> $db, $conf, $langs, $mysoc, $user, $objekt </strong>. <br><br><Strong> ADVARSEL </strong>: Kanskje bare noen egenskaper på $objekt er tilgjengelig. Hvis du trenger egenskaper som ikke er lastet, kan du bare hente objektet i formelen din som i det andre eksempelet. <br> Ved å bruke et beregnet felt betyr det at du ikke selv kan angi noen verdi fra grensesnittet. Også, hvis det er en syntaksfeil, kan det hende formelen ikke returnerer noe. <br> <br> Eksempel på formel: <br> $objekt->id<10? round ($object->id / 2, 2) : ($object-> id + 2 *$user->id) * (int) substr($mysoc->zip, 1, 2) <br> <br> Eksempel på å ny innlasting av objekt <br> (($reloadedobj = new Societe ($db)) && ($reloadedobj->fetch($obj-> id? $ obj-> id: ($obj-> rowid? $obj-> rowid: $object-> id))> 0))? $reloadedobj-> array_options ['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1' <br> <br> Annet eksempel på formel for å tvinge lasting av objekt og dets overordnede objekt: <br> (($reloadedobj = Ny oppgave ($db)) && ($reloadedobj->fetch($objekt->id)> 0) && ($secondloadedobj = nytt prosjekt ($db)) && ($secondloadedobj->fetch($reloadedobj-> fk_project )> 0))? $secondloadedobj-> ref: 'Foreldreprosjekt ikke funnet'
    -ExtrafieldParamHelpPassword=Hold dette feltet tomt betyr at verdien vil bli lagret uten kryptering (feltet må bare skjules med stjerne på skjermen). <br> Her angir du verdien 'auto' for å bruke standard krypteringsregel for å lagre passordet i databasen (da vil lest verdi kun være hash-innholdet og ingen måte å lese den opprinnelige verdien)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=Liste over verdier må være linjer med formatet nøkkel,verdi (hvor nøkkelen ikke kan være '0')<br><br>for eksempel:<br>1,verdi1<br>2,verdi2<br>kode3,verdi3<br>...<br><br>For å få listen avhengig av en annen komplementær attributtliste:<br>1,verdi1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>: parent_key<br><br>For å få listen avhengig av en annen liste:<br>1,verdi1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code </i>: parent_key
     ExtrafieldParamHelpcheckbox=Liste over verdier må være linjer med formatet nøkkel,verdi (hvor nøkkelen ikke kan være '0')<br><br>for eksempel:<br>1,verdi1 <br>2,verdi2<br>3,verdi3<br> ...
     ExtrafieldParamHelpradio=Liste over verdier må være linjer med formatet nøkkel,verdi (hvor nøkkelen ikke kan være '0')<br><br>for eksempel:<br>1,verdi1 <br>2,verdi2<br>3,verdi3<br> ...
    @@ -432,39 +436,39 @@ DefaultLink=Standard kobling
     SetAsDefault=Sett som standard
     ValueOverwrittenByUserSetup=Advarsel, denne verdien kan bli overskrevet av brukerspesifikke oppsett (hver bruker kan sette sitt eget clicktodial url)
     ExternalModule=Ekstern modul - Installert i katalog %s
    -BarcodeInitForThirdparties=Masseinitiering av strekkoder for tredjeparter
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Masseinitiering eller sletting av strekkoder for varer og tjenester
     CurrentlyNWithoutBarCode=For øyeblikket har du <strong>%s</strong> poster på <strong>%s</strong> %s uten strekkode.
     InitEmptyBarCode=Startverdi for neste %s tomme post
     EraseAllCurrentBarCode=Slett alle gjeldende strekkode-verdier
     ConfirmEraseAllCurrentBarCode=Er du sikker på at du vil slette alle nåværende strekkodeverdier?
     AllBarcodeReset=Alle strekkode-verdier er blitt slettet
    -NoBarcodeNumberingTemplateDefined=Ingen mal for strekkodenummerering er aktivert strekkodemodulen
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Aktiver fil-cache
     ShowDetailsInPDFPageFoot=Legg til flere detaljer i bunnteksten av PDF-filer, som din firmaadresse eller leder (for å komplettere profesjonelle IDer, selskapskapital og MVA-nummer).
     NoDetails=Ingen flere detaljer i bunntekst
     DisplayCompanyInfo=Vis firmaadresse
     DisplayCompanyManagers=Vis ledernavn
     DisplayCompanyInfoAndManagers=Vis firmaadresser og ledernavn
    -EnableAndSetupModuleCron=Hvis du ønsker at gjentakende fakturaer skal genereres automatisk, må modulen *%s* være aktivert og riktig konfigurert. Ellers må generering av fakturaer gjøres manuelt fra denne malen med knapp *Lag*. Merk at selv om du har aktivert automatisk generering, kan du likevel trygt starte manuell generasjon. Generering av duplikater for samme periode er ikke mulig.
    -ModuleCompanyCodeCustomerAquarium=%s etterfulgt av tredjeparts kundekode for en kunderegnskapskode
    -ModuleCompanyCodeSupplierAquarium=%s etterfulgt av tredjepart leverandørkode for en leverandør-regnskapskode
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Returner en tom regnskapskode.
     ModuleCompanyCodeDigitaria=Regnskapskode avhenger av tredjepartskode. Koden består av tegnet "C" i den første stillingen etterfulgt av de første 5 tegnene til tredjepartskoden.
     Use3StepsApproval=Som standard må innkjøpsordrer opprettes og godkjennes av 2 forskjellige brukere (ett trinn/bruker for å opprette og ett trinn/bruker for å godkjenne. Merk at hvis brukeren har både tillatelse til å opprette og godkjenne, vil ett trinn/ bruker vil være nok). Du kan bruke dette alternativet for å innføre et tredje trinn/bruker godkjenning, hvis beløpet er høyere enn en spesifisert verdi (så vil 3 trinn være nødvendig: 1=validering, 2=første godkjenning og 3=andre godkjenning dersom beløpet er høyt nok). <br> Sett denne tom en godkjenning (2 trinn) er nok, sett den til en svært lav verdi (0,1) hvis det alltid kreves en andre godkjenning (3 trinn).
     UseDoubleApproval=Bruk 3-trinns godkjennelse når beløpet (eks. MVA) er høyere enn...
    -WarningPHPMail=ADVARSEL: Det er ofte bedre å sette utgående eposter til å bruke epostserveren til leverandøren din i stedet for standardoppsettet. Noen epostleverandører (som Yahoo) tillater ikke at du sender en epost fra en annen server enn deres egen server. Ditt nåværende oppsett bruker serveren i programmet til å sende epost og ikke serveren til epostleverandøren din, så noen mottakere (den som er kompatibel med den restriktive DMARC-protokollen), vil spørre epostleverandøren din om de kan godta eposten din og noen epostleverandører (som Yahoo) kan svare "nei" fordi serveren ikke er en deres servere, så få av dine sendte e-poster kan ikke aksepteres (vær også oppmerksom på epostleverandørens sendekvote). <br> Hvis din epostleverandør (som Yahoo) har denne begrensningen, må du endre epostoppsett til å velge den andre metoden "SMTP-server" og angi SMTP-serveren og legitimasjonene som tilbys av epostleverandøren din (spør epostleverandøren din for å få SMTP-legitimasjon for kontoen din).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=Hvis din epost-SMTP-leverandør må begrense epostklienten til noen IP-adresser (svært sjelden), er dette IP-adressen til epost-brukeragenten (MUA) for ERP CRM-programmet: <strong> %s </strong>.
     ClickToShowDescription=Klikk for å vise beskrivelse
    -DependsOn=Denne modulen trenger modulen(ene)
    +DependsOn=This module needs the module(s)
     RequiredBy=Denne modulen er påkrevd av modul(ene)
    -TheKeyIsTheNameOfHtmlField=Dette er navnet på HTML-feltet. Dette må ha tekniske egenskaper for å lese innholdet på HTML-siden for å få nøkkelnavnet til et felt.
    -PageUrlForDefaultValues=Du må skrive inn den relative nettadressen til siden. Hvis du inkluderer parametere i URL, vil standardverdiene være effektive hvis alle parametere er satt til samme verdi. Eksempler:
    -PageUrlForDefaultValuesCreate=<br> For skjema for å lage en ny tredjepart, er det <strong> %s</strong>, <br> Hvis du bare vil ha standardverdi hvis url har noen parameter, kan du bruke <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br> For side som viser tredjeparter, er det <strong>%s</strong>,<br>Hvis du bare vil ha standardverdi hvis url har noen parametre, kan du bruke<strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Aktiver bruk av personlige standardverdier
    -EnableOverwriteTranslation=Aktiver bruk av overskrivende oversettelse
    -GoIntoTranslationMenuToChangeThis=En oversettelse har blitt funnet for nøkkelen med denne koden, så for å endre denne verdien må du redigere den fra Home-Setup-Oversettelse.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Advarsel, å angi en standard sorteringsrekkefølge kan føre til en teknisk feil når du går på listesiden dersom feltet er et ukjent felt. Hvis du opplever en slik feil, kan du komme tilbake til denne siden for å fjerne standard sorteringsrekkefølge og gjenopprette standardoppførsel.
     Field=Felt
     ProductDocumentTemplates=Dokumentmaler for å generere produktdokument
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agendapåminnelser via e-post
     davDescription=Legg til en komponent for å være en DAV-server
     DAVSetup=Oppsett av DAV-modulen
     DAV_ALLOW_PUBLIC_DIR=Aktiver den offentlige katalogen (WebDav-katalog uten innlogging kreves)
    -DAV_ALLOW_PUBLIC_DIRTooltip=WebDavs offentlige katalog er en WebDAV-katalog som alle kan få tilgang til (i lese- og skrivemodus), uten å måtte ha/bruke en eksisterende påloggings-/passordkonto.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Brukere & grupper
    +Module0Name=Brukere og grupper
     Module0Desc=Håndtering av Brukere/Ansatte og Grupper
    -Module1Name=Tredjeparter
    -Module1Desc=Behandling av bedrifter og kontaktpersoner
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Handel
     Module2Desc=Behandling av handelsfunksjoner
     Module10Name=Regnskap
    -Module10Desc=Enkle regnskapsrapporter (tidsskrifter, omsetning) basert på databaseinnhold. Bruker ikke en hovedbok.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Tilbud
     Module20Desc=Behandling av tilbud
     Module22Name=E-postutsendelser
    @@ -495,7 +501,7 @@ Module23Desc=Overvåking av energiforbruk
     Module25Name=Kundeordre
     Module25Desc=Behandling av kundeordre
     Module30Name=Fakturaer
    -Module30Desc=Behandling av fakturaer og kreditnotaer for kunder. Fakturabehandling for leverandører
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Leverandører
     Module40Desc=Leverandører og kjøpshåndtering (innkjøpsordre og fakturering)
     Module42Name=Feilsøkingslogger
    @@ -511,13 +517,13 @@ Module52Desc=Behandling av lagerbeholdning
     Module53Name=Tjenester
     Module53Desc=Behandling av tjenester
     Module54Name=Kontrakter/abonnement
    -Module54Desc=Administrasjon av  kontrakter (tjenester og abonnementer)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Strekkoder
     Module55Desc=Behandling av strekkoder
     Module56Name=Telefoni
     Module56Desc=Telefoniintegrasjon
     Module57Name=Direktedebet betalingsordre
    -Module57Desc=Håndtering av direktedebet betalingsordre. Inkluderer generering av SEPA-fil for europeiske land
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=ClickToDial integrasjon
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Reisekostnader og notater
     Module75Desc=Behandling av reisekostnader og notater
     Module80Name=Forsendelser
     Module80Desc=Behandlinger av forsendelser og leveringsordre
    -Module85Name=Banker og kontanter
    +Module85Name=Banks and Cash
     Module85Desc=Behandling av bank- og kassekonti
    -Module100Name=Ekstern side
    -Module100Desc=Ta med en ekstern nettside inn i Dolibarr menyen og se den inn i en ramme i Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman og SPIP
     Module105Desc=Mailman- eller SPIP-grensesnitt for medlemsmodulen
     Module200Name=LDAP
    -Module200Desc=LDAP mappesynkronisering
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integrasjon
     Module240Name=Dataeksport
    -Module240Desc=Verktøy for å eksportere Dolibarr-data (med assistent)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Dataimport
    -Module250Desc=Verktøy for å importere data til Dolibarr (med assistent)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Medlemmer
     Module310Desc=Behandling av organisasjonsmedlemmer
     Module320Name=RSS nyhetsstrøm
     Module320Desc=Legg til RSS nyhetsstrøm på Dolibarrsider
    -Module330Name=Bookmerker
    -Module330Desc=Bokmerkebehandling
    -Module400Name=Prosjekter/Muligheter
    -Module400Desc=Håndtering av prosjekter, muligheter og/eller oppgaver. Du kan også tildele et element (faktura, rekkefølge, forslag, intervensjon, ...) til et prosjekt og få en tverrgående visning fra prosjektvisningen.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webkalender
     Module410Desc=Integrasjon med webkalender
     Module500Name=Skatter og spesialutgifter
     Module500Desc=Håndtering av andre utgifter (salgsskatt, sosiale eller skattemessige skatter, utbytte, ...)
     Module510Name=Betaling av lønn til ansatte
    -Module510Desc=Legg inn og følg betalingen av ansattes lønn
    +Module510Desc=Record and track employee payments
     Module520Name=Lån
     Module520Desc=Administrering av lån
     Module600Name=Varsler om forretningshendelser
    -Module600Desc=Send e-postvarsler (utløst av enkelte forretningshendelser) til brukere (definert for hver bruker), til tredjeparts kontakter (definert for hver tredjepart) eller til faste e-poster
    -Module600Long=Merk at denne modulen er dedikert til å sende sanntids e-post når en dedikert forretningshendelse oppstår. Hvis du leter etter en funksjon for å sende påminnelser via e-post til agendahendelsene dine, går du inn i oppsettet av modulen Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Varevarianter
    -Module610Desc=Tillater opprettelse av varevariant basert på attributter (farge, størrelse, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donasjoner
     Module700Desc=Behandling av donasjoner
     Module770Name=Utgiftsrapporter
    -Module770Desc=Håndtering av utgiftsrapporter (reise, diett, mm)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Leverandørtilbud
     Module1120Desc=Be om leverandørtilbud og priser
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Masse-epost dokumentgenerering
     Module1780Name=Merker/kategorier
     Module1780Desc=Opprett etikett/kategori (varer, kunder, leverandører, kontakter eller medlemmer)
     Module2000Name=WYSIWYG Editor
    -Module2000Desc=Tillater å endre tekstområder med en avansert editor (Basert på CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamiske priser
     Module2200Desc=Aktiver mulighet for matematiske utrykk for å beregne priser
     Module2300Name=Planlagte jobber
     Module2300Desc=Planlagt jobbadministrasjon (alias cron- eller chronotabell)
     Module2400Name=Hendelser/Agenda
    -Module2400Desc=Følg ferdige og kommende hendelser. La applikasjonen logge hendelser automatisk for sporing eller registrer hendelser eller møter manuelt. Dette er den viktigste viktige modulen for en god kunde- eller leverandørforholdsstyring.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Dokumenthåndteringssystem / Elektronisk innholdshåndtering. Automatisk organisering av dine genererte eller lagrede dokumenter. Del dem når du trenger det.
     Module2600Name=API/Web tjenseter(SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Aktiver Dolibarrs SOAP-server for å kunne bruke API-tjenester
     Module2610Name=API/Web tjenester (REST server)
     Module2610Desc=Aktiver Dolibarrs REST-server for å kunne bruke API-tjenester
     Module2660Name=Kall webtjenester (SOAP klient)
    -Module2660Desc=Aktiver Dolibarrs webtjenesteklient (Kan brukes til push data/forespørsler mot eksterne servere. Kun støtte for leverandørordre foreløpig)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Bruk elektronisk Gravatar-tjeneste (www.gravatar.com) for å vise bilde av brukere/medlemmer (funnet med e-post). Du trenger internett-tilgang
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP-klient
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind konverteringsegenskaper
     Module3100Name=Skype
     Module3100Desc=Legg til en Skype-knapp i brukere/tredjeparter/kontakter/medlemskort
     Module3200Name=Uforanderlige arkiver
    -Module3200Desc=Aktiver logg av enkelte forretningsarrangementer i en uforanderlig logg. Hendelser arkiveres i sanntid. Loggen er en tabell med kjedede hendelser som kan leses og eksporteres. Denne modulen kan være obligatorisk for enkelte land.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=HRM (håndtering av avdeling, arbeidskontrakter og personell)
     Module5000Name=Multi-selskap
    @@ -609,27 +615,31 @@ Module6000Desc=Arbeidsflytbehandling (automatisk opprettelse av objekt og/eller
     Module10000Name=Websider
     Module10000Desc=Opprett offentlige nettsteder med en WYSIWG-editor. Bare sett opp webserveren din (Apache, Nginx, ...) for å peke mot den dedikerte Dolibarr-katalogen for å få den online på Internett med ditt eget domenenavn.
     Module20000Name=Administrasjon av ferieforespørsler
    -Module20000Desc=Oppfølging av ansattes ferieforespørsler
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Varelotter
     Module39000Desc=Oppsett av lot eller serienummer, best før og siste forbruksdag på varer
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Modul for å tilby en online betalingsside som godtar betalinger med kreditt-/debetkort via PayBox. Dette kan brukes til å la kundene utføre gratis betalinger eller for betaling på et bestemt Dolibarr-objekt (faktura, bestilling, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Kassaapparat
     Module50100Desc=Salgssted-modul (POS).
    +Module50150Name=Kassaapparat
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Modul for å tilby en online betalingsside som godtar betaling ved hjelp av PayPal (kredittkort eller PayPal-kreditt). Dette kan brukes til å la kundene utføre gratis betalinger eller for betaling på et bestemt Dolibarr-objekt (faktura, bestilling, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Regnskap (avansert)
    -Module50400Desc=Regnskapsadministrasjon (dobbeltoppføringer, generell støtte og ekstra regnskapsbøker). Eksporter hovedboken til flere formater.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direkteutskrift (uten å åpne dokumentet)ved hjelp av CUPS IPP inteface (Skriveren må være synlig for serveren, og CUPS må være installert på serveren)
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Meningsmåling, undersøkelse eller avstemming
    -Module55000Desc=Modul for å lage meningsmåling, undersøkelse eller avstemming ( som Doodle, Studs, Rdvz, m.m)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Marginer
     Module59000Desc=Modul for å administrere marginer
     Module60000Name=Provisjoner
     Module60000Desc=Modul for å administrere provisjoner
    -Module62000Name=Incoterm
    -Module62000Desc=Legg til egenskaper for å administrere Incoterm
    +Module62000Name=Incotermer
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Ressurser
     Module63000Desc=Håndter ressurser (skrivere, biler, rom,..). Etterpå kan du legge dem til hendelser
     Permission11=Vis kundefakturaer
    @@ -651,9 +661,9 @@ Permission32=Opprett/endre varer
     Permission34=Slett varer
     Permission36=Se/administrer skjulte varer
     Permission38=Eksporter varer
    -Permission41=Les prosjekter og oppgaver (delt prosjekt og prosjekter jeg er kontakt for). Kan også skrive inn tidsforbruk for meg eller mitt hierarki, på tildelte oppgaver (Tidsskjema)
    -Permission42=Opprett/endre prosjekter (delte prosjekter og de jeg er kontakt for). Kan også opprette oppgaver og tildele prosjekter og oppgaver til brukere.
    -Permission44=Slett prosjekter (delte og mine egne)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Eksporter prosjekter
     Permission61=Vis intervensjoner
     Permission62=Opprett/endre intervensjoner
    @@ -686,7 +696,7 @@ Permission109=Slett forsendelser
     Permission111=Vis kontoutdrag
     Permission112=Opprett/endre/slett og sammenligne transaksjoner
     Permission113=Oppsett av finanskontoer (Opprett, håndter kategorier)
    -Permission114=Avstemming av transaksjoner
    +Permission114=Reconcile transactions
     Permission115=Eksportere transaksjoner og kontoutdrag
     Permission116=Overføringer mellom konti
     Permission117=Håndtere sjekkutsteding
    @@ -694,15 +704,15 @@ Permission121=Les tredjeparter lenket til bruker
     Permission122=Opprett/endre tredjeparter lenket til bruker
     Permission125=Slett tredjeparter lenket til bruker
     Permission126=Eksportere tredjeparter
    -Permission141=Les alle prosjekter og oppgaver (også prosjekter jeg ikke er kontakt for)
    -Permission142=Opprett/endre alle prosjekter og oppgaver (også prosjekter jeg ikke er kontakt for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Slett alle prosjekter og oppgaver (også prosjekter jeg ikke er kontakt for)
     Permission146=Les tilbydere
     Permission147=Les statistikk
     Permission151=Les direktedebet betalingsordre
     Permission152=Opprett/endre direktedebet betalingsordre
     Permission153=Send/overfør direktedebet betalingsordre
    -Permission154=Registrer kredit/avvisninger av direktedebet betalingsordre
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Les kontrakter/abonnementer
     Permission162=Opprett/endre kontrakter/abonnementer
     Permission163=Aktiver en tjeneste/abonnement i en kontrakt
    @@ -725,7 +735,7 @@ Permission187=Lukke leverandørordre
     Permission188=Avbryt leverandørordre
     Permission192=Lag linjer
     Permission193=Avbryt linjer
    -Permission194=Les båndbreddelinjene
    +Permission194=Read the bandwidth lines
     Permission202=Oppret  ADSL-tilkoblinger
     Permission203=Bestill tilkoblinger
     Permission204=Bestill tilkoblinger
    @@ -750,12 +760,12 @@ Permission244=Se innholdet i skjulte kategorier
     Permission251=Vis andre brukere og grupper
     PermissionAdvanced251=Vis andre brukere
     Permission252=Lage/endre andre brukere, grupper og deres rettigheter
    -Permission253=Endre andre brukeres passord
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Opprett/endre interne/eksterne brukere og tillatelser
     Permission254=Slette eller deaktivere andre brukere
     Permission255=Opprett/endre egen brukerinformasjon
     Permission256=Slett eller deaktiver andre brukere
    -Permission262=Utvid tilgangen til alle tredjeparter (ikke bare tredjeparter der brukeren er en salgsrepresentant).<br>Virker ikke på eksterne brukere (alltid begrenset til egne tilbud, ordre, fakturaer, kontrakter mm).<br>Virker ikke på prosjekter (kun regler for prosjekttillatelser, synlighet og tildeling gjelder).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Vis CA
     Permission272=Vis fakturaer
     Permission273=Opprett fakturaer
    @@ -765,7 +775,7 @@ Permission283=Slett kontaktpersoner
     Permission286=Eksportere kontakter
     Permission291=Vis tariffer
     Permission292=Angi tillatelser på tariffer
    -Permission293=Endre kundetariffer
    +Permission293=Modify customers tariffs
     Permission300=Les strekkoder
     Permission301=Opprett/endre strekkoder
     Permission302=Slett strekkoder
    @@ -787,11 +797,9 @@ Permission401=Vis rabatter
     Permission402=Opprett/endre rabatter
     Permission403=Valider rabatter
     Permission404=Slett rabatter
    -Permission501=Les arbeidskontrakter/lønn
    -Permission502=Opprett/endre arbeidskontrakter/lønn
    -Permission511=Les lønnsutbetalinger
    -Permission512=Opprett/endre betaling av lønn
    -Permission514=Slett lønn
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Eksporter lønn
     Permission520=Les lån
     Permission522=Opprett/endre lån
    @@ -844,8 +852,8 @@ Permission1251=Kjør masseimport av eksterne data til database (datalast)
     Permission1321=Eksportere kundefakturaer, attributter og betalinger
     Permission1322=Gjenåpne en betalt regning
     Permission1421=Eksport kundeordre og attributter
    -Permission20001=Les ferieforespørsler (dine ferier og underordnedes)
    -Permission20002=Opprett / modifiser dine ferieforespørsler (dine ferier og dine underordnedes)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Slett ferieforespørsler
     Permission20004=Les alle permisjonsforespørsler (selv om bruker ikke er underordnet)
     Permission20005=Opprett/endre permisjonsforespørsler for alle (selv om bruker ikke er underordnet)
    @@ -880,8 +888,8 @@ Permission63001=Les ressurser
     Permission63002=Opprett/endre ressurser
     Permission63003=Slett ressurser
     Permission63004=Koble ressurser til agendahendelser
    -DictionaryCompanyType=Type tredjeparter
    -DictionaryCompanyJuridicalType=Juridisk status for tredjeparter
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospektpotensiale
     DictionaryCanton=Stat/provins
     DictionaryRegion=Region
    @@ -894,7 +902,7 @@ DictionaryVAT=MVA satser
     DictionaryRevenueStamp=Beløp for skattestempel
     DictionaryPaymentConditions=Betalingsbetingelser
     DictionaryPaymentModes=Betalingsmåter
    -DictionaryTypeContact=Kontakt/adressetyper
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type nettsider/containere
     DictionaryEcotaxe=Miljøgebyr (WEEE)
     DictionaryPaperFormat=Papirformater
    @@ -908,47 +916,47 @@ DictionarySource=Tilbud/ordre-opprinnelse
     DictionaryAccountancyCategory=Personlige grupper for rapporter
     DictionaryAccountancysystem=Diagram-modeller for kontoer
     DictionaryAccountancyJournal=Regnskapsjournaler
    -DictionaryEMailTemplates=E-postmaler
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Enheter
     DictionaryProspectStatus=Prospektstatus
    -DictionaryHolidayTypes=Ferietyper
    -DictionaryOpportunityStatus=Mulighet-status for prosjekt
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Utgiftsrapport - Transportkategorier
     DictionaryExpenseTaxRange=Utgiftsrapport - Rangert etter transportkategori
     SetupSaved=Innstillinger lagret
     SetupNotSaved=Oppsettet er ikke lagret
     BackToModuleList=Tilbake til moduloversikt
    -BackToDictionaryList=Tilbake til ordliste
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type skattestempel
    -VATManagement=MVA-håndtering
    -VATIsUsedDesc=Som standard når du oppretter muligheter, fakturaer, bestillinger osv, følger MVA-satsen aktivt standard regel:<br> Dersom selgeren ikke utsettes for MVA, settes MVA til 0. Slutt på regelen <br> Hvis (selgerland = kjøperland), settes merverdiavgift som standard lik MVA for produktet i selgerandet. Slutt på regelen. <br> Hvis både selger og kjøper er i EU og varene er transportprodukter (bil, båt, fly), er standard MVA 0 (MVA skal betales til tollen i sitt land og ikke til selger). Slutt på regelen. <br> Hvis både selgeren og kjøperen er i EU og kjøper er ikke et selskap, settes MVA til MVA på produktet som selges. Slutt på regelen. <br> Hvis både selgeren og kjøperen er i EU og kjøper er et selskap, settes MVA til 0 som standard. Slutt på regelen. <br> I alle andre tilfeller er standard MVA=0. Slutt på regelen.
    -VATIsNotUsedDesc=Som standard er den foreslåtte MVA 0 som kan brukes for tilfeller som foreninger, enkeltpersoner og små selskaper.
    -VATIsUsedExampleFR=I Frankrike betyr det at bedrifter eller organisasjoner har et reelt finanssystem (forenklet reell eller normal reell). Et system hvor mva er deklarert.
    -VATIsNotUsedExampleFR=I Frankrike betyr det foreninger som ikke er mva-registrert, eller selskaper, organisasjoner eller liberale yrker som har valgt micro-entreprise skattesystemet (mva i franchise) og betalt en franchise-mva uten mva-angivelse. Dette valget vil vise referansen "Ikke aktuell for MVA - art-293B av CGI" på fakturaer.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Ikke bruk andre skatter
    -LocalTax1IsUsedDesc=Bruk en annen type skatt (annet enn MVA)
    -LocalTax1IsNotUsedDesc=Ikke bruk annen type skatt (annet enn MVA)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Andre type skatt
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Ikke bruk tredje skatt
    -LocalTax2IsUsedDesc=Bruk en tredje type skatt (annet enn MVA)
    -LocalTax2IsNotUsedDesc=Ikke bruk annen type skatt (annet enn MVA)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Tredje type skatt
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Håndtering
    -LocalTax1IsUsedDescES= Standard RE-rate når du oppretter prospekter, fakturaer, ordre etc følger den aktive standardregelen: <br> Hvis kjøperen ikke utsettes for RE, er RE-standard = 0. Slutt på regelen. <br> Hvis kjøperen blir utsatt for RE, deretter RE som standard. Slutt på regelen. <br>
    -LocalTax1IsNotUsedDescES= Som standard er den foreslåtte RE er 0. Slutt på regelen.
    -LocalTax1IsUsedExampleES= I Spania er de profesjonelle underlagt noen spesifikke deler av den spanske IAE.
    -LocalTax1IsNotUsedExampleES= I Spania er de profesjonelle og samfunn, og på visse deler av den spanske IAE.
    -LocalTax2ManagementES= IRPF oppsett
    -LocalTax2IsUsedDescES= Standard RE-sats når du oppretter prospekter, fakturaer, ordre etc følger den aktive standardregelen: <br> Dersom selgeren ikke utsettes for IRPF, så er IRPF som standard = 0. Slutt på regelen. <br> Hvis selgeren er utsatt for IRPF, så er IRPF som standard. Slutt på regelen. <br>
    -LocalTax2IsNotUsedDescES= Som standard er den foreslåtte IRPF er 0. Slutt på regelen.
    -LocalTax2IsUsedExampleES= I Spania, for frilansere og selvstendige som leverer tjenester, og bedrifter som har valgt moduler for skattesystem.
    -LocalTax2IsNotUsedExampleES= I Spania er de bedrifter som ikke er ikke skattepliktige
    +LocalTax1ManagementES=RE Håndtering
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Som standard er den foreslåtte RE er 0. Slutt på regelen.
    +LocalTax1IsUsedExampleES=I Spania er de profesjonelle underlagt noen spesifikke deler av den spanske IAE.
    +LocalTax1IsNotUsedExampleES=I Spania er de profesjonelle og samfunn, og på visse deler av den spanske IAE.
    +LocalTax2ManagementES=IRPF oppsett
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Som standard er den foreslåtte IRPF er 0. Slutt på regelen.
    +LocalTax2IsUsedExampleES=I Spania, for frilansere og selvstendige som leverer tjenester, og bedrifter som har valgt moduler for skattesystem.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Rapport over lokale avgifter 
     CalcLocaltax1=Salg - Innkjøp
     CalcLocaltax1Desc=Lokale skatter-rapporter kalkuleres med forskjellen mellom kjøp og salg
    @@ -958,7 +966,9 @@ CalcLocaltax3=Salg
     CalcLocaltax3Desc=Lokale skatter-rapportene viser totalt salg
     LabelUsedByDefault=Etiketten som brukes som standard hvis ingen oversettelse kan bli funnet for kode
     LabelOnDocuments=Etiketten på dokumenter
    -NbOfDays=Antall dager
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Ved månedsslutt
     CurrentNext=Nåværende/Neste
     Offset=Forskyvning
    @@ -984,7 +994,7 @@ DatabaseUser=Database bruker
     DatabasePassword=Database passord
     Tables=Tabeller
     TableName=Tabellnavn
    -NbOfRecord=Antall poster
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=Systeminformasjon - oppsummering
    @@ -996,7 +1006,7 @@ Skin=Tema
     DefaultSkin=Standard tema
     MaxSizeList=Makslengde på lister
     DefaultMaxSizeList=Standard maks.lengde for lister
    -DefaultMaxSizeShortList=Standard maxlengde for korte lister (f.eks på kundekort)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Dagens melding
     MessageLogin=Meldingstekst på innloggingsbildet
     LoginPage=Innloggingsside
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent søkeskjema i venstre meny
     DefaultLanguage=Ønsket standardspråk (språkkode)
     EnableMultilangInterface=Aktiver flerspråklig grensesnitt
     EnableShowLogo=Vis logo i venstre meny
    -CompanyInfo=Firma-/organisasjonsinformasjon
    -CompanyIds=Firma-/organisasjonsidentiteter
    +CompanyInfo=Firma/organisasjon
    +CompanyIds=Company/Organization identities
     CompanyName=Navn
     CompanyAddress=Adresse
     CompanyZip=Postnummer
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Eier av bankkonto  %s
     BankModuleNotActive=Bankkontomodul ikke slått på
     ShowBugTrackLink=Vis lenken "<strong>%s</strong>"
     Alerts=Varsler
    -DelaysOfToleranceBeforeWarning=Forsinkelsestoleranse før varsling
    -DelaysOfToleranceDesc=Denne siden lar deg angi antall 'toleransedager' du ønsker før en forsinkelse skal varsles på skjermen med ikonet %s for hvert forsinkede element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Forsinkelsestoleranse (i dager) før varsel om planlagte hendelser (agendahendelser) som ikke er fullført 
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Forsinkelsestoleranse (i dager) før varsel om prosjekter som ikke er lukket i tide
    -Delays_MAIN_DELAY_TASKS_TODO=Forsinkelsestoleranse (i dager) før varsel om planlagte oppgaver (prosjektoppgaver) som ikke er fullført
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Forsinkelsestoleranse (i dager) før varsel om ordre som ikke er fullført
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Forsinketoleranse (i dager) før varsel om at innkjøpsordre ikke er behandlet ennå
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Forsinkelsestoleranse (i dager) før varsel om tilbud som ikke er lukket
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Forsinkelsestoleranse (i dager) før varsel om tilbud som ikke er fakturert
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Forsinkelsestoleranse (i dager) før varsel om tjenester som ikke er aktivert
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Forsinkelsestoleranse (i dager) før varsel om utløpte tjenester
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Forsinkelsestoleranse (i dager) før varsel om ubetalte leverandørfakturaer
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Forsinkelsestoleranse (i dager) før varsel om ubetalte kundefakturaer
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Forsinkelsestoleranse (i dager) før varsel om forfalt bankavstemming
    -Delays_MAIN_DELAY_MEMBERS=Forsinkelsestoleranse (i dager) før varsel om forsinket medlemskontingent
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Forsinkelsestoleranse (i dager) før varsel om sjekker som må settes inn i bank
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tillatt forsinkelse (i dager) før varsel om at utgiftsrapport skal godkjennes
    -SetupDescription1=Oppsettområdet er for førstegangsparametre før du begynner å bruke Dolibarr.
    -SetupDescription2=De to obligatoriske oppsettstrinnene er følgende (de to første oppføringene i den venstre oppsettmenyen):
    -SetupDescription3=Innstillinger i menyen <a href="%s"> %s -> %s </a>. Dette trinnet er nødvendig fordi det definerer data som brukes på Dolibarr-sider for å tilpasse standardoppførelsen til programvaren (for landrelaterte funksjoner for eksempel).
    -SetupDescription4=Innstillinger i menyen <a href="%s"> %s -> %s </a>. Dette trinnet er nødvendig fordi Dolibarr ERP / CRM er en samling av flere moduler / applikasjoner, alle mer eller mindre uavhengige. Nye funksjoner legges til menyer for hver modul du aktiverer.
    -SetupDescription5=Administrere andre menyoppføringers valgfrie parametre.
    +DelaysOfToleranceBeforeWarning=Forsinkelser før du viser en varsel
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Hendelser relatert til sikkerhet
    -Audit=Revisjon
    +Audit=Security events
     InfoDolibarr=Om Dolibarr
     InfoBrowser=Om nettleser
     InfoOS=Om OS
    @@ -1056,20 +1066,20 @@ BrowserName=Navn på nettleser
     BrowserOS=Nettleserens operativsystem
     ListOfSecurityEvents=Oversikt over sikkerhetshendelser i Dolibarr
     SecurityEventsPurged=Sikkerhetshendelser renset
    -LogEventDesc=Her kan du slå på loggen for sikkerhetshendelser i Dolibarr. Administratorer kan da se innholdet i loggene via menyen <b>Systemverktøy - Revisjon</b>. OBS! Denne funksjonen kan ta opp mye plass i databasen!
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Oppsettparametere kan bare angis av <b> administratorbrukere </b>.
     SystemInfoDesc=Systeminformasjon er diverse teknisk informasjon som kun vises i skrivebeskyttet modus, og som kun er synlig for administratorer.
     SystemAreaForAdminOnly=Dette området er bare tilgjengelig for administratorer. Ingen av tillatelsene i Dolibarr kan senke denne grensen.
    -CompanyFundationDesc=På denne siden redigeres alle kjente opplysninger fra firmaet du administrerer (For dette, klikk på "%s" eller "%s" knappen nederst på siden)
    -AccountantDesc=På denne siden redigeres alle kjente opplysninger om din regnskapsfører/bokholder
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=Filnummer
     DisplayDesc=Her kan du velge innstillinger som styrer Dolibarrs utseende og virkemåte
     AvailableModules=Tilgjengelige apper/moduler
     ToActivateModule=Gå til innstillinger for å aktivere moduler.
     SessionTimeOut=Tidsgrense for økter
    -SessionExplanation=Dette tallet garanterer at økten aldri utløper før denne forsinkelsen, hvis økten kjøres med intern PHP-session cleaner (og ingenting annet). Intern PHP session cleaner garanterer ikke at økten utløper like etter denne forsinkelsen. Det utløper etter denne forsinkelsen, og når session cleaner er ferdig,  hver <b>%s/%s</b> tilgang, men bare under tilgang fra andre økter <br>. Merk: på noen servere med en ekstern session cleaner(cron under debian, ubuntu ...), øktene kan bli ødelagt etter en periode definert av standard <strong> session.gc_maxlifetime </strong>, uansett verdien som er angitt her.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Tilgjengelige utløsere
    -TriggersDesc=Utløsere (triggers) er filer som vil påvirke Dolibarrs virkemåte og arbeidsflyt når de kopieres inn i mappen <b>htdocs/core/triggers</b>. De aktiverer nye handlinger, aktivert av Dolibarrhendelser (ny tredjepart, opprette faktura ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Utløserne i denne filen er slått av med endelsen <b>-NORUN</b> i navnet.
     TriggerDisabledAsModuleDisabled=Utløserne i denne filen er slått av ettersom modulen <b>%s</b> er slått av.
     TriggerAlwaysActive=Utløserne i denne filen er alltid slått på, uansett hvilke moduler som er slått på.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Sett alle referansedata. Du kan legge til dine verdier som standa
     ConstDesc=Denne siden lar deg redigere alle andre parametere som ikke finnes på foregående sidene. Disse er stort sett forbeholdt parametere for utviklere eller avansert feilsøking. For en liste over alternativer <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">klikk her</a>.
     MiscellaneousDesc=Alle andre sikkerhetsrelaterte parametre er definert her.
     LimitsSetup=Grenser/presisjon
    -LimitsDesc=Her angir du grenser og presisjon som skal brukes i programmet
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Desimaler i enhetspriser
     MAIN_MAX_DECIMALS_TOT=Desimaler i totalpriser
     MAIN_MAX_DECIMALS_SHOWN=Desimaler for priser når de vises på skjerm  (Legg til <b>...</b> etter dette tallet dersom du ønsker å se <b>...</b> når et tall er forkortet i skjermvisning)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Avrundingstrinn (for land der avrunding er gjort annerled
     UnitPriceOfProduct=Netto enhetspris på en vare
     TotalPriceAfterRounding=Total pris (netto / moms / inkl. moms) etter avrunding
     ParameterActiveForNextInputOnly=Innstillingene gjelder først fra neste inntasting
    -NoEventOrNoAuditSetup=Ingen sikkerhetsinnstillinger er registrert ennå. Dette kan være normalt hvis revisjon ikke er slått på  ("innstillinger - sikkerhet - revisjon").
    -NoEventFoundWithCriteria=Ingen søketreff i sikkerhetshendelser.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Se lokalt sendmail-oppsett
     BackupDesc=For å lage en komplett sikkerhetskopi av Dolibarr, må du:
     BackupDesc2=Lagre innhold av dokumentmappen (<b>%s</b>) som inneholder alle opplastede og genererte filer (Slik at den inkluderer alle dumpfiler som er generert på trinn 1).
    -BackupDesc3=Lagre innholdet i databasen (<b>%s</b>) i en dump-fil. For å gjøre dette, kan du bruke følgende assistent:
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Arkiverte mapper bør oppbevares på et trygt sted.
     BackupDescY=Den genererte dumpfilen bør oppbevares på et trygt sted.
    -BackupPHPWarning=Backup kan ikke garanteres med denne metoden. Foretrekker forrige
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Hvis du vil gjenopprette en Dolibarr sikkerhetskopi , må du:
    -RestoreDesc2=Gjenopprett arkivfil (zip-fil for eksempel) av dokumentmappe for å hente ut filer til en ny Dolibarr-installasjon eller inn i gjeldende mappe (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Gjenopprett data fra en backup-fil til databasen i den nye Dolibarr-installasjon eller til databasen av gjeldende installasjon (<b>%s</b>). Advarsel! Når gjenopprettingen er ferdig, må du bruke et brukernavn/passord, som fantes da sikkerhetskopien ble laget, for å koble til igjen. For å gjenopprette en sikkerhetskopiert database til gjeldende installasjon, kan du følge denne assistenten:
     RestoreMySQL=MySQL import
     ForcedToByAModule= Denne regelen er tvunget til å <b>%s</b> av en aktivert modul
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Du må kjøre denne kommandoen
     YourPHPDoesNotHaveSSLSupport=SSL funksjoner ikke tilgjengelige i din PHP
     DownloadMoreSkins=Flere skins å laste ned
     SimpleNumRefModelDesc=Returner referansenummeret med format %syymm-nnnn der åå er år, er mm måned og nnnn er en sekvens uten hull og uten tilbakestilling
    -ShowProfIdInAddress=Vis Profesjonell ID med adresser på dokumenter
    -ShowVATIntaInAddress=Skjul MVA Intra num med adresser på dokumenter
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Delvis oversettelse
    -MAIN_DISABLE_METEO=Deaktiver Meteo visning
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standardmodus
     MeteoStdModEnabled=Standard modus aktivert
     MeteoPercentageMod=Prosentmodus
     MeteoPercentageModEnabled=Prosentmodus aktivert
     MeteoUseMod=Klikk for å bruke %s
     TestLoginToAPI=Test-innlogging til API
    -ProxyDesc=Enkelte funksjoner i Dolibarr må ha en Internett-tilgang for å fungere. Definer parametere for dette her. Hvis Dolibarr-serveren er bak en proxy-server, forteller disse parametrene Dolibarr hvordan få tilgang til Internett gjennom den.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Ekstern tilgang
     MAIN_PROXY_USE=Bruk en proxy-server (ellers direkte tilgang til internett)
     MAIN_PROXY_HOST=Navn/adresse til proxy-server
     MAIN_PROXY_PORT=Proxy server port
     MAIN_PROXY_USER=Logg-inn for å bruke proxy-server
     MAIN_PROXY_PASS=Passord for å bruke proxy-server
    -DefineHereComplementaryAttributes=Her defineres alle attributter som ikke allerede er tilgjengelig som standard, og at du ønsker å få støtte for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Komplementære attributter
     ExtraFieldsLines=Utfyllende attributter (linjer)
     ExtraFieldsLinesRec=Komplementære attributter (fakturalinjermaler )
     ExtraFieldsSupplierOrdersLines=Komplementære attributter (ordrelinjer)
     ExtraFieldsSupplierInvoicesLines=Komplementære attributter (fakturalinjer)
     ExtraFieldsThirdParties=Komplementære attributter (tredjepart)
    -ExtraFieldsContacts=Komplementære attributter (kontakt/adresse)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Komplementære attributter (medlem)
     ExtraFieldsMemberType=Komplementære attributter (medlem type)
     ExtraFieldsCustomerInvoices=Tilleggsattributter (faktura)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=kun alfanumeriske tegn og små bokstaver uten m
     SendmailOptionNotComplete=Advarsel, på noen Linux-systemer, for å sende fra din e-post, må oppsettet av sendmail-kjøring inneholde opsjon -ba (parameter mail.force_extra_parameters i din php.ini fil). Hvis noen mottakere aldri mottar e-post, kan du prøve å redigere PHP parameter med mail.force_extra_parameters = -ba).
     PathToDocuments=Bane til dokumenter
     PathDirectory=Mappe
    -SendmailOptionMayHurtBuggedMTA=Funksjonen for å sende e-post ved hjelp av metoden "PHP mail direct" vil generere en melding som kanskje ikke oversatt riktig av enkelte e-postservere. Resultatet er at enkelte e-poster ikke kan leses av personer som mottar e-post gjennom disse serverene (f.eks Orange i Frankrike). Dette er ikke et Dolibarr-problem i, heller ikke PHP, men på mottakende e-postserver. Du kan imidlertid legge til alternativet MAIN_FIX_FOR_BUGGED_MTA til 1 i oppsettet, heller enn å endre Dolibarr for å unngå dette. Du kan oppleve problemer med andre servere som følger SMTP-standarden nøyaktig. Den andre løsningen (anbefales) er å bruke metoden "SMTP socket library" som ikke har noen ulemper.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Oppsett av oversettelse
     TranslationKeySearch=Søk etter oversettelsesnøkkel eller -streng
     TranslationOverwriteKey=Overskriv oversettelse
     TranslationDesc=Slik angir du det viste applikasjonsspråket: <br> * Systemwide: Meny <strong> Hjem - Oppsett - Skjerm </strong> <br> * Per bruker: Bruk <strong> Brukeroppsettoppsett </strong> -fanen på brukerkortet ( klikk på brukernavnet øverst på skjermen).
     TranslationOverwriteDesc=Du kan også overstyre strenger ved å fylle ut tabellen nedenfor. Velg språk fra "%s" nedtrekkslisten, sett inn oversettelsesstrengen i "%s" og din nye oversettelse i "%s"
    -TranslationOverwriteDesc2=Du kan bruke den andre fanen for å finne rett oversettelsesnøkkel
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Oversettelsesstreng
     CurrentTranslationString=Gjeldende oversettelsesstreng
     WarningAtLeastKeyOrTranslationRequired=Et søkekriterie er nødvendig for nøkkel eller oversettelsesstreng
     NewTranslationStringToShow=Ny oversettelsesstreng som skal vises
     OriginalValueWas=Den originale oversettelsen er overskrevet. Original verdi var:<br><br>%s
    -TransKeyWithoutOriginalValue=Du tvang en ny oversettelse for oversettelsesnøkkelen '<strong> %s</strong>' som ikke finnes i noen språkfiler
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Aktiverte applikasjoner/moduler: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Du må minst aktivere en modul
    -ClassNotFoundIntoPathWarning=Klasse %s ikke funnet i PHP banen
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Ja i sommer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Merk, bare følgende moduler blir åpnet for eksterne brukere (uansett tidligere tillatelser gitt disse brukerene) og bare hvis tillatelser ble gitt:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session lagring kryptert av Suhosin
     ConditionIsCurrently=Tilstand er for øyeblikket %s
    -YouUseBestDriver=Du bruker driveren %s, som er den beste tilgjengelige for øyeblikket.
    -YouDoNotUseBestDriver=Du bruker driveren %s. Driver %s anbefales.
    -NbOfProductIsLowerThanNoPb=Du har bare %s varer/tjenester i database. Ingen optimalisering er påkrevet
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Forbedre søket
    -YouHaveXProductUseSearchOptim=Du har %s varer i databasen. Du bør legge til konstanten PRODUCT_DONOTSEARCH_ANYWHERE til 1 i Hjem-Oppsett-Annet for å begrense søket til begynnelsen av strenger. Dette gjør det mulig for databasen å bruke indeksen og du bør få en raskere respons.
    -BrowserIsOK=Du bruker nettleseren %s. Denne nettleseren er ok for sikkerhet og ytelse.
    -BrowserIsKO=Du bruker nettleseren %s. Denne nettleseren er kjent for å være et dårlig valg for sikkerhet, ytelse og pålitelighet. Vi anbefaler deg å bruke Firefox, Chrome, Opera eller Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug er lastet
     XCacheInstalled=XCache er lastet
    -AddRefInList=Vis kunde/leverandør-ref i liste (velg liste eller kombinasjonsboks), og det meste av hyperkobling. Tredjepart vil vises med navnet "CC12345 - SC45678 - Digert selskap", i stedet for "Digert selskap".
    -AskForPreferredShippingMethod=Spør etter foretrukket sendingsmetode for tredjeparter
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Endre felt %s
     FillThisOnlyIfRequired=Eksempel: +2 (brukes kun hvis du opplever problemer med tidssone offset)
     GetBarCode=Hent strekkode
     ##### Module password generation
     PasswordGenerationStandard=Gir et automatisk laget passord med 8 tegn (bokstaver og tall) i små bokstaver.
    -PasswordGenerationNone=Ikke foreslå å generere passord. Passord må legges inn manuelt.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Returner et passord i følge din personlige konfigurasjon
     SetupPerso=I følge din konfigurasjon
     PasswordPatternDesc=Beskrivelse av passordmønster
    @@ -1195,23 +1206,23 @@ UserMailRequired=E-postadresse kreves for å opprette en ny bruker
     HRMSetup=Oppsett av HRM-modul
     ##### Company setup #####
     CompanySetup=Firmamodul
    -CompanyCodeChecker=Modul for tredjeparts kodegenerering og -kontroll (kunde eller leverandør)
    -AccountCodeManager=Modul for generering av regnskapskoder (kunde eller leverandør)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=Funksjonen E-postvarslinger lar deg automatisk sende stille e-poster for noen Dolibarrhendelser. Mål for meldinger kan defineres:
     NotificationsDescUser=* pr. bruker, en bruker om gangen
     NotificationsDescContact=* Per tredjeparts kontakter (kunder eller leverandører), en kontakt til tiden.
     NotificationsDescGlobal=* eller ved å sette global mål-e-post i modulen Oppsett
    -ModelModules=Dokumentmaler
    -DocumentModelOdt=Generer dokumenter fra OpenDocument-maler (.ODT eller .ODS fra OpenOffice, KOffice, TextEdit, mm)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Vannmerke på utkast
     JSOnPaimentBill=Aktiver egenskap for å autoutfylle betalingslinjer i betalingsskjema
    -CompanyIdProfChecker=Regler for profesjonell ID
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Må være unik?
    -MustBeMandatory=Obligatorisk å opprette tredjeparter?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Obligatorisk å validere fakturaer?
     TechnicalServicesProvided=Tekniske tjenester som tilbys
     #####DAV #####
    -WebDAVSetupDesc=Dette er koblingene for å få tilgang til WebDAV-katalogen. Den inneholder en "offentlig" mappe, åpen for enhver bruker som kjenner nettadressen (hvis tilgang til offentlig mappe er tillatt), og en "privat" mappe som trenger en eksisterende påloggningskonto/passord for å få tilgang.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Rot-URL til %s server: %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=En eksportlenke til <b>%s</b> formatet er tilgjengelig på følgende lenke: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=En eksportlenke til <b>%s</b> formatet er tilgjengelig p
     BillsSetup=Innstillinger for fakturamodul
     BillsNumberingModule=Nummereringsmodul for fakturaer og kreditnotaer
     BillsPDFModules=Fakturamaler
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Betalingsdokumentmodeller
     CreditNote=Kreditnota
     CreditNotes=Kreditnotaer
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Opprett innlogging for hvert medlem
     AdherentMailRequired=E-post kreves for å lage et nytt medlem
     MemberSendInformationByMailByDefault=Valg for å sende e-postbekreftelse til medlemmer (validering eller nytt abonnement) er krysset av som standard
     VisitorCanChooseItsPaymentMode=Besøkende kan velge blant tilgjengelige betalingsmåter
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Globale parametre
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test synkronisering av medlemstype
     LDAPTestSearch= Test et LDAP søk
     LDAPSynchroOK=Vellykket synkroniseringstest
     LDAPSynchroKO=Sykroniseringstesten feilet
    -LDAPSynchroKOMayBePermissions=Synkroniseringstest feilet. Sjekk at tilkobling til server er riktig konfigurert og tillater LDAP oppdateringer
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP tilkobling til LDAP server vellykket (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP tilkobling til LDAP server feilet (Server=%s, Port=%s)
    -LDAPBindOK=Tilkobling/Autentisering til LDAP server var vellykket (Server=%s, Port=%s, Admin=%s, Passord=%s)
    -LDAPBindKO=Tilkobling/Autentisering til LDAP server feilet (Server=%s, Port=%s, Admin=%s, Passord=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server konfigurert for versjon 3
     LDAPSetupForVersion2=LDAP server konfigurert for versjon 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Eksempel : samaccountname
     LDAPFieldFullname=Fullt navn
     LDAPFieldFullnameExample=Eksempel : cn
    -LDAPFieldPasswordNotCrypted=Passord ikke kryptert
    -LDAPFieldPasswordCrypted=Passord kryptert
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Eksempel: brukerPassord
     LDAPFieldCommonNameExample=Eksempel: cn
     LDAPFieldName=Navn
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=Denne siden lar deg definere LDAP attributtnavn i LDAP-tre
     LDAPDescValues=Eksempelverdier er designet for <b>OpenLDAP</b> med følgende lastede skjemaer: <b> core.schema, cosine.schema, inetorgperson.schema</b>). Hvis du bruker disse verdiene og OpenLDAP, endre LDAP configfilen <b> slapd.conf </b> for å ha alle disse skjemaene lastet.
     ForANonAnonymousAccess=For autentisert tilgang (f.eks skrivetilgang)
     PerfDolibarr=Ytelse oppsett/optimaliseringsrapport
    -YouMayFindPerfAdviceHere=På denne siden vil du finne noen sjekkpunkt og råd relatert til ytelse
    -NotInstalled=Ikke installert, så serveren taper ikke ytelse pga. denne.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applikasjons-cache
     MemcachedNotAvailable=Ingen applikativ cache funnet. Du kan forbedre ytelsen ved å installere en cache-server Memcached og en modul som kan bruke denne cache-serveren. <br> Mer informasjon her <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Merk: Mange webhosting-leverandører har ikke en slik cache-server.
     MemcachedModuleAvailableButNotSetup=Modulen memcache er funnet, men oppsett er ikke komplett
     MemcachedAvailableAndSetup=Modulen memcache er aktivert
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=Ingen OPCode cache funnet. Kan være du bruker en annen OPCode-cache enn XCache eller eAccelerator (bra). Det kan også være at du ikke har OPCode-cache (svært dårlig).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for statiske ressurser (css, img, javascript)
     FilesOfTypeCached=Filtypene %s er cachet av HTTP-server
     FilesOfTypeNotCached=Filtypene %s er ikke cachet av HTTP-server
     FilesOfTypeCompressed=Filtypene %s er undertrykket av HTTP-server
     FilesOfTypeNotCompressed=Filtypene %s er ikke undertrykket av HTTP-server
     CacheByServer=Server-cache
    -CacheByServerDesc=For eksempel ved å bruk Apache-direktivet "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Nettleser-cache
     CompressionOfResources=Undertrykkelse av HTTP-respons
    -CompressionOfResourcesDesc=For eksempel ved bruk av Apache-direktivet "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=En slik automatisk deteksjon er ikke mulig med nåværende nettlesere
    -DefaultValuesDesc=Her kan du definere/tvinge standardverdien du vil ha når du oppretter en ny post, og/eller standardfiltre eller sorteringsrekkefølge når du lister poster.
    -DefaultCreateForm=Standardverdier (ved opprettelse av skjema)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Standard søkefiltre
     DefaultSortOrder=Standard sorteringsorden
     DefaultFocus=Standard fokusfelt
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Innstillinger for varemodul
     ServiceSetup=Oppsett av tjenester-modulen
     ProductServiceSetup=Oppsett av varer- og tjenester-modulen
     NumberOfProductShowInSelect=Maks. antall varer i utvalgslister (0=ingen grenser)
    -ViewProductDescInFormAbility=Visualisering av varebeskrivelser i skjemaer (ellers som oppsprett-tips)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=I "Vedlagte filer"-fanen i "Varer og tjenester" kan du aktivere en opsjon for å flette PDF-varedokument til tilbud PDF-azur hvis varen/tjenesten er i tilbudet
    -ViewProductDescInThirdpartyLanguageAbility=Visualisering av varebeskrivelser i tredjepartens språk
    -UseSearchToSelectProductTooltip=Hvis du har mange varer (>100 000), kan du øke hastigeten ved å sette konstanten PRODUCT_DONOTSEARCH_ANYWHERE til 1 i Oppsett->Annet. Søket vil da begrenses til starten av søkestrengen
    -UseSearchToSelectProduct=Vent med å trykke på en tast før innholdet av vare-kombinasjonslisten er lastet (Dette kan øke ytelsen hvis du har mange varer)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Standard strekkodetype for varer
     SetDefaultBarcodeTypeThirdParties=Standard strekkodetype for tredjeparter
     UseUnits=Definer måleenhet for kvantitet ved opprettelse av ordre, tilbud eller faktura
    @@ -1503,7 +1517,7 @@ SendingsSetup=Oppsett av forsendelsesmodulen
     SendingsReceiptModel=Modell for forsendelseskvitteringer
     SendingsNumberingModules=Nummereringsmodell for for sendelser
     SendingsAbility=Støtt forsendelsesskjemaer for kundeleveranser
    -NoNeedForDeliveryReceipts=I de fleste tilfeller er forsendelsesskjemaer bruket både som skjema for kundeleveranser (liste over varer som skal sendes) og skjema som er mottatt og signert av kunden. Så produktleveranse-kvitteringer er en duplisert funksjon og er sjelden aktivert.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Fritekst på leveringer
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Nummereringsmodul for vareleveringskvitteringer
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Avansert editor
     ActivateFCKeditor=Aktiver avansert editor for:
     FCKeditorForCompany=WYSIWIG opprettelse/endring av elementbeskrivelse og notater (untatt varer og tjenester)
     FCKeditorForProduct=WYSIWIG opprettelse/endring av vare-/tjenestebeskrivelse og notater
    -FCKeditorForProductDetails=WYSIWIG opprettelse/endring av varedetaljer for alle enheter (tilbud, ordre, fakturaer, osv ...). <font class="warning"> Advarsel! Bruk av dette alternativet er i dette tilfellet ikke anbefalt, da det kan skape problemer med spesialkarakterer og sideformatering ved opprettelse av PDF-filer.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG opprettelse/endring av masse-e-postutsendelser (Verktøy->E-post)
     FCKeditorForUserSignature=WYSIWIG-opprettelse av signatur
     FCKeditorForMail=WYSIWIG opprettelse/redigering for all post (unntatt Verktøy ->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Tilkoblingen var vellykket men databasen ser ikke ut til å være en OSCommerce database (Nøkkel %s ikke funnet i tabell %s).
    -OSCommerceTestOk=Tilkobling til server '%s' for database '%s' med bruker '%s' var vellykket.
    -OSCommerceTestKo1=Tilkobling til server '%s' var vellykket, men databasen '%s' kunne ikke nåes.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Tilkobling til serveren '%s' sin database '%s' med bruker '%s' var vellykket.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Tilkobling til server '%s' med bruker '%s' feilet.
     ##### Stock #####
     StockSetup=Oppsett av lagermodul
    -IfYouUsePointOfSaleCheckModule=Hvis du bruker en Point-of-Sale-modul (standard POS-modul eller en annen ekstern modul), kan dette oppsettet bli ignorert av din Point-Of-Sale modul. De fleste POS-moduler er designet for øyeblikkelig å lage faktura og redusere lager som standard, uansett hva som settes her. Så husk å sjekke hvordan POS-modulen er satt opp.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menyen er slettet
     Menus=Menyer
    @@ -1548,7 +1562,7 @@ DetailRight=Tilstand for å vise uautoriserte grå menyer
     DetailLangs=Språkfil-navn for etikettkode-oversettelse
     DetailUser=Intern/Ekstern/Alle
     Target=Mål
    -DetailTarget=Mål for lenker (blank topp åpner et nytt vindu)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Nivå (-1:toppmeny, 0:headermeny, >0 meny og undermeny)
     ModifMenu=Menyendring
     DeleteMenu=Slett menyoppføring
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=Mva skal beregnes:<br>- ved levering av varer<br>- ved leve
     OptionVatDebitOptionDesc=MVA skal beregnes: :<br>- ved levering av varer<br>- ved fakturering av tjenester
     OptionPaymentForProductAndServices=Kontantgrunnlag for varer og tjenester
     OptionPaymentForProductAndServicesDesc=MVA forfaller: <br> - ved betaling for varer <br> - på betalinger for tjenester
    -SummaryOfVatExigibilityUsedByDefault=Tidspunkt for MVA-innbetaling som standard i henhold til valgt alternativ:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Ved levering
     OnPayment=Vedbetaling
     OnInvoice=Ved faktura
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Kontokode for innkjøp
     AgendaSetup=Innstillinger for modulen hendelser og agenda
     PasswordTogetVCalExport=Nøkkel for å autorisere eksportlenke
     PastDelayVCalExport=Ikke eksporter hendelser eldre enn
    -AGENDA_USE_EVENT_TYPE=Bruk hendelsestyper (administrert i menyoppsett -> Ordbøker -> Type agendahendelser)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Sett denne standardverdien automatisk for hendelsestype ved opprettels av hendelses-skjema
    -AGENDA_DEFAULT_FILTER_TYPE=Sett denne hendelsestypen automatisk i søkefilteret til Agenda-visning
    -AGENDA_DEFAULT_FILTER_STATUS=Sett denne statustypen automatisk i søkefilteret til Agenda-visning
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Hvilken fane vil åpne som standard når du velger Agenda-menyen?
     AGENDA_REMINDER_EMAIL=Aktiver hendelsespåminnelse <b> via e-post </b> (påminnelsesalternativ/forsinkelse kan defineres for hver hendelse). Merk: Modul <strong> %s</strong> må være aktivert og riktig satt opp for å få påminnelse sendt med riktig frekvens.
    -AGENDA_REMINDER_BROWSER=Aktiver hendelsespåminnelse <b> i brukerens nettleser </b> (når hendelsesdatoen er nådd, kan hver bruker nekte dette fra spørsmålet om nettleserbekreftelse)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Aktiver lydvarsler
     AGENDA_SHOW_LINKED_OBJECT=Vis koblet objekt i agendavisning
     ##### Clicktodial #####
     ClickToDialSetup='Click To Dial' modul
     ClickToDialUrlDesc=Url som kalles når man klikker på telefonpiktogrammet. I URL kan du bruke koder <br> <b> __ PHONETO __ </b> som blir erstattet med telefonnummeret til personen som skal ringes <br> <b> __ PHONEFROM __ </b> som blir erstattet med telefonnummeret til den som ringer(din) <br> <b> __ LOGIN __ </b> som vil bli erstattet med clicktodial login (definert på brukerkort) <br> <b> __ PASS __ </b> som vil bli erstattet med clicktodial passord (definert på brukerkort).
    -ClickToDialDesc=Denne modulen gjør telefonnumre klikkbare. Ved å klikke på dette ikonet vil telefonen din ringe opp nummeret.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Bruk kun en lenke "tlf:" for telefonnumre
    -ClickToDialUseTelLinkDesc=Bruk denne metoden hvis brukerne har en softphone eller et programvaregrensesnitt installert på samme datamaskin som nettleseren, og kalles når du klikker på en link i nettleseren din som starter med "tel:". Hvis du trenger en full server-løsning (uten behov for lokal installasjon av programvare), må du sette denne på "Nei" og fylle neste felt.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Kassaapparat
     CashDeskSetup=Innstillinger for modulen kassaapparat
    -CashDeskThirdPartyForSell=Standard generisk tredjepart for salg
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Kassekonto som skal brukes til kontantsalg
     CashDeskBankAccountForCheque= Konto som skal brukes til å motta utbetalinger via sjekk
     CashDeskBankAccountForCB= Konto som skal brukes til å motta kontant betaling med kredittkort
    -CashDeskDoNotDecreaseStock=Deaktiver lagerreduksjon fra Poin-of-Sale (hvis "nei", vil lagerreduksjon bli utført for hvert salg utført fra POS, uansett hva som er innstilt i Lager-modulen).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Tving/begrens lager til å bruke varereduksjon ved salg
    -StockDecreaseForPointOfSaleDisabled=Lagerreduksjon fra Point-of-Sale deaktivert
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Varereduksjon i POS er ikke kompatibel med lot-håndtering
    -CashDeskYouDidNotDisableStockDecease=Lagerreduksjon ble ikke utført ved salg fra Point-of-Sale. Velg et lager
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Oppsett av bokmerkemodulen
    -BookmarkDesc=Med denne modulen kan du administrere bokmerker. Du kan også legge til snarveier til noen Dolibarr-sider eller eksterne nettsteder i venstre meny.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maksimalt antall bokmerker som skal vises i venstre meny
     ##### WebServices #####
     WebServicesSetup=Oppsett av webservices-modul
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Nummereringsmodul for sjekk-kvitteringer
     MultiCompanySetup=Oppsett av multi-selskap-modulen
     ##### Suppliers #####
     SuppliersSetup=Oppsett av  leverandørmodulen
    -SuppliersCommandModel=Komplett mal for innkjøpsordre (logo ...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Komplett mal for leverandørfaktura (logo ...)
     SuppliersInvoiceNumberingModel=Nummereringsmodel for leverandørfakturaer
     IfSetToYesDontForgetPermission=Hvis ja, ikke glem å gi tillatelser til grupper eller brukere tillatt for 2. godkjenning
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Oppsett av  Prosjektmodulen
     ProjectsModelModule=Dokumentmodell for prosjektrapporter
     TasksNumberingModules=Modul for oppgavenummerering
     TaskModelModule=Dokumentmal for oppgaverapporter
    -UseSearchToSelectProject=Vent med å trykke på en tast når du laster inn innholdet i prosjekt-kombinasjonslisten (Dette kan øke ytelsen hvis du har et stort antall prosjekter, men det er mindre praktisk)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Regnskapsperioder
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Du kan finne alternativer
     ListOfNotificationsPerUser=Liste over varslinger pr. bruker*
     ListOfNotificationsPerUserOrContact=Liste over varslinger pr. bruker* eller pr. kontakt**
     ListOfFixedNotifications=Liste over faste varslinger
    -GoOntoUserCardToAddMore=Gå til fanen "Varslinger" hos en bruker for å legge til eller fjerne en varsling
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Gå til fanen "Notefikasjoner" hos en tredjepart for å legge til notifikasjoner for kontakter/adresser
     Threshold=Terskel
     BackupDumpWizard=Veiviser for å bygge database-backup dumpfil
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Administrator har deaktivert mulighete
     ConfFileMustContainCustom=Ved installering eller bygging av en ekstern modul fra programmet må modulfilene lagres i katalogen <strong> %s</strong>. Hvis du vil ha denne katalogen behandlet av Dolibarr, må du sette opp <strong> conf/conf.php</strong> for å legge til 2 direktivlinjer: <br><strong> $dolibarr_main_url_root_alt = '/custom'; </strong><br><strong> $dolibarr_main_document_root_alt = '%s/custom'; </strong>
     HighlightLinesOnMouseHover=Fremhev tabellinjer når musen flyttes over
     HighlightLinesColor=Uthev fargen på linjen når musen føres over (holdes tom for ingen uthevning)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Tekstfarge på sidetittel
     LinkColor=Farge på lenker
     PressF5AfterChangingThis=Trykk CTRL+F5 på tastaturet eller tøm nettlesercache når du har endret denne verdien for å få den til å fungere effektivt
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Bakgrunnsfarge for partalls-tabellinjer
     MinimumNoticePeriod=Frist for beskjed (Feriesøknaden må sendes inn før denne fristen)
     NbAddedAutomatically=Antall dager pr. måned som blir lagt til av brukerenes tellere(automatisk)
     EnterAnyCode=Dette feltet inneholder en referanse til identifikasjon av linje. Bruk kun verdier uten spesialkarakterer
    -UnicodeCurrency=Her legger du inn en liste med Ascii-verdier, som representerer et valutasymbol. For eksempel: $ = [36], Brasilsk real R$ = [82,36], € = [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=RGB-fargen er i HEX-format, for eksempel: FF0000
     PositionIntoComboList=Plassering av linje i kombinasjonslister
     SellTaxRate=Salgs-skattesats
     RecuperableOnly=Ja for MVA"Ikke oppfattet, men gjenopprettelig" dedikert til noen steder i Frankrike. Hold verdien til "Nei" i alle andre tilfeller.
     UrlTrackingDesc=Hvis leverandøren eller transporttjenesten tilbyr en side eller et nettsted for å sjekke status på din forsendelse, kan du skrive det her. Du kan bruke tasten {TRACKID} for å sette inn sporingnummer på webstedet.
    -OpportunityPercent=Når du oppretter en mulighet, vil du estimere et visst beløp for prosjekt. Ifølge status på muligheter, kan dette beløpet multipliseres med denne raten for å finne global verdi alle dine muligheter kan generere. Verdien er en prosentverdi (mellom 0 og 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=Mal dedikert til element
     TypeOfTemplate=Mal-type
    -TemplateIsVisibleByOwnerOnly=Mal er kun synlig for eier
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Synlig overalt
     VisibleNowhere=Ikke synlig noen steder
     FixTZ=Tidssone offset
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=Du bruker siste stabile versjon
     TitleExampleForMajorRelease=Eksempel på melding du kan bruke for å annonsere større oppdateringer (du kan bruke denne på dine websider)
     TitleExampleForMaintenanceRelease=Eksempel på beskjed du kan bruke for å annonsere denne vedlikeholdsversjonen (du kan bruke den på dine websider)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s er tilgjengelig. Versjon %s er en stor utgivelse med en rekke nye funksjoner for både brukere og utviklere. Du kan laste ned fra nedlastingsområdet https://www.dolibarr.org portal (underkatalog Stabile versjoner). Du kan lese <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">Endringslogg</a> for en komplett liste over endringer.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s er tilgjengelig. Versjon %s er en vedlikeholdsversjon, så den inneholder bare reparasjoner av bugs. Vi anbefaler alle å bruke en eldre versjon for å oppgradere til denne. Som enhver vedlikeholdsutgivelse, er det ingen nye funksjoner, eller datastruktur-endringer i denne versjonen. Du kan laste ned fra nedlastingsområdet https://www.dolibarr.org portal (underkatalog Stabile versjoner). Du kan lese <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">Endringslogg</a> for en komplett liste over endringer.
    -MultiPriceRuleDesc=Når alternativet "Flere prisnivået per vare/tjeneste" er på, kan du definere forskjellige priser (ett pr prisnivå) for hvert produkt. For å spare tid, kan du lage en regel som gir pris for hvert nivå autokalkulert i forhold til prisen på første nivå, slik at du bar legger inn en pris for hvert produkt. Denne siden er laget for å spare tid og kan være nyttig hvis prisene for hvert nivå står i forhold til første nivå. Du kan ignorere denne siden i de fleste tilfeller.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Maler for produkt-dokumenter
    -ToGenerateCodeDefineAutomaticRuleFirst=For å være i stand til å generere automatiske koder, må du først definere program for å automatisk definere strekkodenummer.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=Relaterte gjentakende fakturaer
     SeeChangeLog=Se Endringslogg-fil (kun på engelsk)
     AllPublishers=Alle utgivere
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Legg til andre sider eller tjenester
     AddModels=Legg til dokument eller nummereringsmaler
     AddSubstitutions=Legg til tast-erstatninger
     DetectionNotPossible=Detektering ikke mulig
    -UrlToGetKeyToUseAPIs=Url til API-nøkkel (når nøkkel er mottatt blir den lagret på databasebruker-tabell og må brukes for hvert API-kall)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Liste over tilgjengelige API'er
    -activateModuleDependNotSatisfied=Modul "%s" avhenger av modulen "%s", som mangler, slik at modulen "%1$s" kanskje ikke virker korrekt. Installer modulen "%2$s" eller deaktiver modulen "%1$s" hvis du vil unngå ubehagelige overraskelser
    -CommandIsNotInsideAllowedCommands=Kommandoen du prøver å kjøre er ikke i listen over tillatte kommandoer definert i parameter <strong>$dolibarr_main_restrict_os_commands</strong> i <strong>conf.php</strong> filen.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landingsside
    -SamePriceAlsoForSharedCompanies=Hvis du bruker en multiselskapsmodul, og har valgt "En pris", vil prisen være den samme for alle selskaper om varene er delt mellom miljøer
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Modulen er aktivert. Tillatelser for aktiverte module(r) ble kun gitt til admin-brukere. Du må kanskje gi tillatelser til andre brukere eller grupper manuelt om nødvendig.
    -UserHasNoPermissions=Denne brukeren har ingen tillatelser
    -TypeCdr=Bruk "Ingen" hvis dato for betalingsfrist er fakturadato pluss en delta i dager (delta er feltet "Antall dager")<br>Bruk "På slutten av måneden", dersom det etter delta, at dato må økes for å komme til slutten av måneden (+ en valgfri "Offset" i dager)<br>Bruk "Nåværene/Neste" for å få betalingsdato til å være den første N-te i måneden (N lagres i feltet "Antall dager")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Referansevaluta for selskapet (gå inn i oppsett av firma for å endre dette)
    -WarningNoteModuleInvoiceForFrenchLaw=Denne modulen %s er i samsvar med franske lover (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=Denne modulen %s er i samsvar med franske lover (Loi Finance 2016) fordi modulen Ikke reversible logger er automatisk aktivert.
    -WarningInstallationMayBecomeNotCompliantWithLaw=Du prøver å installere modulen %s som er en ekstern modul. Aktivering av en ekstern modul betyr at du stoler på utgiveren av modulen, og at du er sikker på at denne modulen ikke endrer oppførselen til applikasjonen din negativt, og er i overensstemmelse med lovene i ditt land (%s). Hvis modulen gir en ulovlig funksjon, blir du ansvarlig for bruken av en ulovlig programvare.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Venstremarg på PDF
     MAIN_PDF_MARGIN_RIGHT=Høyremarg på PDF
     MAIN_PDF_MARGIN_TOP=Toppmarg på PDF
     MAIN_PDF_MARGIN_BOTTOM=Bunnmarg på PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Sett til ja hvis denne gruppen er en beregning av andre grupper
    -EnterCalculationRuleIfPreviousFieldIsYes=Oppgi beregningsregel hvis tidligere felt ble satt til Ja (for eksempel 'CODEGRP1 + CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Flere språkvarianter funnet
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Fjern spesialtegn
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter til ren verdi (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR-kontakt
    -GDPRContactDesc=Hvis du lagrer data om europeiske firmaer/borgere, kan du lagre den kontakten som er ansvarlig for GDPR - General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Postnummer
     ##### Resource ####
     ResourceSetup=Oppsett av Ressursmodulen
     UseSearchToSelectResource=Bruk et søkeskjema for å velge en ressurs (i stedet for en nedtrekksliste).
     DisabledResourceLinkUser=Deaktiver funksjonen for å koble en ressurs til brukere
     DisabledResourceLinkContact=Deaktiver funksjonen for å koble en ressurs til kontakter
     ConfirmUnactivation=Bekreft nullstilling av modul
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/nb_NO/agenda.lang b/htdocs/langs/nb_NO/agenda.lang
    index d9e8f54827c..0205cfcb31d 100644
    --- a/htdocs/langs/nb_NO/agenda.lang
    +++ b/htdocs/langs/nb_NO/agenda.lang
    @@ -31,14 +31,15 @@ ViewWeek=Ukesvisning
     ViewPerUser=Visning pr. bruker
     ViewPerType=Pr. type-visning
     AutoActions= Automatisk utfylling
    -AgendaAutoActionDesc= Her defineres hendelser som du vil at Dolibarr skal opprette automatisk i agenda. Hvis ingenting er avkrysset, vil bare manuelle handlinger bli inkludert i logg og synlig i agenda. Automatisk sporing av forretningshandlinger gjort på objekter (validering, statusendring ) vil ikke bli lagret.
    -AgendaSetupOtherDesc= Her kan du gjøre andre innstillinger i agendamodulen.
    +AgendaAutoActionDesc= Her kan du definere hendelser som du vil at Dolibarr skal lage automatisk i Agenda. Hvis ingenting er merket, vil bare manuelle handlinger bli inkludert i loggene og vises i Agenda. Automatisk sporing av virksomhetshandlinger gjort på objekter (validering, statusendring) blir ikke lagret.
    +AgendaSetupOtherDesc= Denne siden gir muligheter for å tillate eksport av Dolibarr-hendelsene til en ekstern kalender (thunderbird, google kalender, ...)
     AgendaExtSitesDesc=Denne siden lar deg sette opp eksterne kalendere for å visning i Dolibarr agenda.
     ActionsEvents=Handlinger som Dolibarr automatisk registrerer i agendaen
    -EventRemindersByEmailNotEnabled=Hendelsespåminnelser via e-post ble ikke aktivert i oppsett av Agenda-modulen.
    +EventRemindersByEmailNotEnabled=Hendelsespåminnelser via e-post ble ikke aktivert i %s moduloppsett.
     ##### Agenda event labels #####
     NewCompanyToDolibarr=Tredjepart %s opprettet
     ContractValidatedInDolibarr=Kontrakt %s validert
    +CONTRACT_DELETEInDolibarr=Kontrakt %s slettet
     PropalClosedSignedInDolibarr=Tilbud %s signert
     PropalClosedRefusedInDolibarr=Tilbud %s avvist
     PropalValidatedInDolibarr=Tilbud godkjent
    @@ -100,7 +101,7 @@ AgendaUrlOptions3=<b>logina=%s</b> for å begrense resultat til hendelser eiet a
     AgendaUrlOptionsNotAdmin=<b>logina=%s</b> for å begrense utdata til handlinger som ikke eies av brukeren <b>%s</b>.
     AgendaUrlOptions4=<b>logint=%s</b> for å begrense utdata til handlinger som er tildelt brukeren <b> %s </b>(eier og andre).
     AgendaUrlOptionsProject=<b>project=__ PROJECT_ID__</b> for å begrense resultat til handlinger knyttet til prosjektet <b>__PROJECT_ID__</b>.
    -AgendaUrlOptionsNotAutoEvent=<b> notactiontype=systemauto </b> for å ekskludere automatisk hendelse.
    +AgendaUrlOptionsNotAutoEvent=<b> notactiontype=systemauto </b> for å ekskludere automatiske hendelser.
     AgendaShowBirthdayEvents=Vis kontakters fødselsdager
     AgendaHideBirthdayEvents=Skjul kontakters fødselsdager
     Busy=Opptatt
    @@ -110,9 +111,9 @@ DefaultWorkingHours=Standard arbeidstid (f.eks 9-18)
     # External Sites ical
     ExportCal=Eksporter kalender
     ExtSites=Importer eksterne kalendere
    -ExtSitesEnableThisTool=Vis eksterne kalendere (definert i global setup) i agenda. Påvirker ikke eksterne kalendere definert av brukere.
    +ExtSitesEnableThisTool=Vis eksterne kalendere (definert i global oppsett) i Agenda. Påvirker ikke eksterne kalendere som er definert av brukere.
     ExtSitesNbOfAgenda=Antall kalendere
    -AgendaExtNb=Calendar no. %s
    +AgendaExtNb=Kalender nr. %s
     ExtSiteUrlAgenda=URL til. ical-fil
     ExtSiteNoLabel=Ingen beskrivelse
     VisibleTimeRange=Synlig tidsområde
    diff --git a/htdocs/langs/nb_NO/banks.lang b/htdocs/langs/nb_NO/banks.lang
    index 1593e9d4c68..c4cd4dc4727 100644
    --- a/htdocs/langs/nb_NO/banks.lang
    +++ b/htdocs/langs/nb_NO/banks.lang
    @@ -7,7 +7,7 @@ BankName=Banknavn
     FinancialAccount=Konto
     BankAccount=Bankkonto
     BankAccounts=Bankkonti
    -BankAccountsAndGateways=Bankkontoer | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Vis konto
     AccountRef=Kontonummer hovedbokskonto
     AccountLabel=Kontonavn hovedbokskonto
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Kontoadresse
     BankAccountCountry=Konto land
     BankAccountOwner=Kontoeier
     BankAccountOwnerAddress=Kontoeiers adresse
    -RIBControlError=Integritetssjekk feilet. Dette betyr at informasjon om denne kontoen er ufullstendig eller feil (sjekk land, nummer og IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Opprett konto
     NewBankAccount=Ny konto
     NewFinancialAccount=Ny hovedbokskonto
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Oppføringer til avstemming
     Conciliable=Kan avstemmes
     Conciliate=Avstem
     Conciliation=Avstemming
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Avstemming forsinket
     IncludeClosedAccount=Ta med lukkede konti
     OnlyOpenedAccount=Kun åpne konti
    @@ -104,7 +105,7 @@ SocialContributionPayment=Betaling av skatter og avgifter
     BankTransfer=Bankoverføring
     BankTransfers=Bankoverføringer
     MenuBankInternalTransfer=Intern overførsel
    -TransferDesc=Når du overfører fra en konto til en annen, vil Dolibarr opprette to poster (Debet i kildekonto og kredit i målkonto. Samme beløp (bortsett fra fortegn), etikett og dato vil bli brukt i denne transaksjonen)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Fra
     TransferTo=Til
     TransferFromToDone=En overføring fra <b>%s</b> til <b>%s</b> på <b>%s</b> %s er registrert.
    @@ -135,8 +136,8 @@ BankTransactionLine=Bankoppføring
     AllAccounts=Alle bank- og kontantkontoer
     BackToAccount=Tilbake til kontoen
     ShowAllAccounts=Vis for alle kontoer
    -FutureTransaction=Fremtidig transaksjon. Ingen måte å avstemme.
    -SelectChequeTransactionAndGenerate=Velg/filter sjekker for å inkludere sjekkinnskuddskvitteringen og klikk på &quot;Create&quot;.
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Velg kontoutskriften som hører til avstemmingen. Bruke en sorterbar numerisk verdi: YYYYMM eller YYYYMMDD
     EventualyAddCategory=Til slutt, velg en kategori for å klassifisere postene
     ToConciliate=Slå sammen?
    @@ -153,7 +154,7 @@ RejectCheckDate=Dato for returnert sjekk
     CheckRejected=Returnert sjekk
     CheckRejectedAndInvoicesReopened=Returnert sjekk og faktura gjenåpnet
     BankAccountModelModule=Dokumentmaler for bankkontoer
    -DocumentModelSepaMandate=Mal for SEPA-mandat. Gjelder kun EU.
    +DocumentModelSepaMandate=Mal av SEPA mandat. Bare nyttig for europeiske land i EEC .
     DocumentModelBan=Mal for å skrive ut en side med BAN-informasjon
     NewVariousPayment=Nye diverse betaling
     VariousPayment=Diverse utbetalinger
    @@ -162,4 +163,5 @@ ShowVariousPayment=Vis diverse betalinger
     AddVariousPayment=Legg til Diverse betalinger
     SEPAMandate=SEPA mandat
     YourSEPAMandate=Ditt SEPA-mandat
    -FindYourSEPAMandate=Dette er ditt SEPA-mandat for å autorisere vårt firma til å gjøre debitering til din bank. Send det i retur signert (skanning av det signerte dokumentet og send det via post) til
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/nb_NO/bills.lang b/htdocs/langs/nb_NO/bills.lang
    index f77e08a189b..5bc8ca2142d 100644
    --- a/htdocs/langs/nb_NO/bills.lang
    +++ b/htdocs/langs/nb_NO/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma faktura
     InvoiceProFormaDesc=<b>Proforma faktura</b> er et bilde av en ekte faktura, men har ingen verdi i regnskapsføring.
     InvoiceReplacement=Erstatningsfaktura
     InvoiceReplacementAsk=Erstatningsfaktura for faktura
    -InvoiceReplacementDesc=<b>Erstatningsfaktura</b> brukes til å avbryte og erstatte en faktura uten at betaling allerede er mottatt. <br><br> Merk: Bare faktura uten innbetaling kan erstattes. Hvis ikke faktura er lukket, vil den bli automatisk satt til 'forlatt'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Kreditnota
     InvoiceAvoirAsk=Kreditnota for å korrigere faktura
    -InvoiceAvoirDesc=En <b>kreditnota</b> er en negativ faktura som brukes for å løse situasjoner hvor en faktura har et annet beløp enn det som virkelig er betalt (fordi kunden har betalt for lite ved en feil, eller for eksempel ikke ønsker å betale alt fordi han har returnert noen varer.).<br><br>Obs!: Originalfakturaen må allerede være lukket ('betalt' eller 'delbetalt') for at du skal kunne opprette en kreditnota mot den.
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Opprett kreditnota med opprinnelige fakturalinjer
     invoiceAvoirWithPaymentRestAmount=Lag kreditnota pålydende restbeløp fra faktura
     invoiceAvoirLineWithPaymentRestAmount=Kreditnota for restbeløp
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=i faktura-valuta
     PaidBack=Tilbakebetalt
     DeletePayment=Slett betaling
     ConfirmDeletePayment=Er du sikker på at du vil slette denne betalingen?
    -ConfirmConvertToReduc=Ønsker du å konvertere denne %s til en absolutt rabatt? <br> Beløpet vil bli lagret og kan brukes som en rabatt på en nåværende eller fremtidig faktura for denne kunden.
    -ConfirmConvertToReducSupplier=Ønsker du å konvertere dette %s til en absolutt rabatt? <br> Beløpet vil bli lagret blant alle rabatter og kan brukes som en rabatt for en nåværende eller fremtidig faktura for denne leverandøren.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Leverandørbetalinger
     ReceivedPayments=Mottatte betalinger
     ReceivedCustomersPayments=Betalinger mottatt fra kunder
    -PayedSuppliersPayments=Betalinger til leverandører
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Mottatte kundebetalinger som trenger godkjenning
     PaymentsReportsForYear=Betalingsrapport for %s
     PaymentsReports=Betalingsrapporter
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Betalingsbetingelser
     PaymentAmount=Beløp til betaling
     ValidatePayment=Godkjenn betaling
     PaymentHigherThanReminderToPay=Betalingen er høyere enn restbeløp
    -HelpPaymentHigherThanReminderToPay=NB! Innbetalingen av en eller flere fakturaer er høyere enn restbeløpet. <br> Endre oppføringen eller bekreft for å lage kreditnota av det overskytende for overbetalte fakturaer.
    -HelpPaymentHigherThanReminderToPaySupplier=Vær oppmerksom på at betalingsbeløpet på en eller flere regninger er høyere enn gjenstående å betale. <br> Rediger oppføringen din, ellers bekreft og opprett en kredittnota av overskuddet betalt for hver overbetalt faktura.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Merk 'Betalt'
     ClassifyPaidPartially=Merk 'Delbetalt'
     ClassifyCanceled=Merk 'Tapsført'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Lukket (ubetalt)
     BillStatusClosedPaidPartially=Delbetalt
     BillShortStatusDraft=Kladd
     BillShortStatusPaid=Betalt
    -BillShortStatusPaidBackOrConverted=Refundert eller konvertert
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Betalt
     BillShortStatusCanceled=Tapsført
     BillShortStatusValidated=Validert
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Ikke refundert
     BillShortStatusClosedUnpaid=Lukket
     BillShortStatusClosedPaidPartially=Delbetalt
     PaymentStatusToValidShort=Til validering
    -ErrorVATIntraNotConfigured=Internt MVA-nummer er ikke definert
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Det er ingen forhåndsinnstilt betalingsmåte. Gå til Fakturamodul for å rette dette.
     ErrorCreateBankAccount=Opprett en bankkonto, deretter går du til Oppsett i Fakturamodul for å angi betalingsmetoder
     ErrorBillNotFound=Faktura %s eksisterer ikke
    -ErrorInvoiceAlreadyReplaced=Feil: Du prøver å godkjenne en faktura som erstatter faktura %s. Denne er allerede blitt erstattet av faktura %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Feil! Rabatten er allerde blitt benyttet
     ErrorInvoiceAvoirMustBeNegative=Feil! Korrigeringsfaktura må ha negativt beløp
     ErrorInvoiceOfThisTypeMustBePositive=Feil! Denne fakturatypen må ha postitivt beløp
     ErrorCantCancelIfReplacementInvoiceNotValidated=Feil: Kan ikke kansellere en faktura som er erstattet av en annen faktura som fortsatt er i kladdemodus
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Denne delen eller en annen er allerede brukt, så rabattserien kan ikke fjernes.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Fra
     BillTo=Til
     ActionsOnBill=Handlinger på faktura
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Er du sikker på at du vil endre fakturaen <b>%s</b> til
     ConfirmCancelBill=Er du sikker på at du vil kansellere faktura <b>%s</b>?
     ConfirmCancelBillQuestion=Hvorfor vil du klassifisere denne fakturaen til "forlatt"?
     ConfirmClassifyPaidPartially=Er du sikker på at du vil endre fakturaen <b>%s</b> til status "betalt"?
    -ConfirmClassifyPaidPartiallyQuestion=Denne fakturaen er ikke fullt ut betalt. Hvorfor lukker du denne fakturaen?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Restbeløpet <b>(%s %s)</b> er rabatt innrømmet fordi betalingen ble gjort før forfall. Jeg ønsker å rette opp MVA med en kreditnota.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Resterende ubetalt <b>(%s%s) </b> er en rabatt gitt fordi betaling ble gjort før forfall.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Restbeløpet <b>(%s %s)</b> er rabatt innrømmet fordi betalingen ble gjort før forfall. Jeg aksepterer å miste MVA på denne rabatten.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Restebløpet <b>(%s %s)</b> er rabatt innrømmet fordi betalingen ble gjort før forfall. Jeg skriver av MVA på denne rabatten uten kreditnota.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Dårlig kunde
     ConfirmClassifyPaidPartiallyReasonProductReturned=Varer delvis returnert
     ConfirmClassifyPaidPartiallyReasonOther=Beløpet tapsføres av en annen årsak
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Dette valget er kun mulig hvis fakturaen har en spesiell påskrift. (For eksemple: «Kun MVA-andelen av prisen som faktisk betales gir rett til MVA-fradrag»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=I noen land er dette valget kun mulig hvis fakturaen inneholder en spesiell påskrift.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Bruk dette valget hvis ingen av de andre passer
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=En <b>dårlig kunde</b> er en kunde som nekter å betale.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Dette valget brukes når betalingen ikke er komplett fordi noen varer er returnert
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Bruk dette valget hvis ingen av de andre passer, for eksempel i følgende situasjon:<br>- betaling ikke komplett fordi noen varer er sendt tilbake<br>- ikke betalt fullt ut fordi rabatt er uteglemt<br>I alle tilfelle må beløpet rettes i regnskapssystemet ved å lage en kreditnota.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Annen
     ConfirmClassifyAbandonReasonOtherDesc=Dette valget brukes i alle andre tilfeller. For eksempel fordi du vil lage en erstatningsfaktura.
     ConfirmCustomerPayment=Bekrefter du denne betalingen for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Bekrefter du denne betalingen for <b>%s</b> %s?
     ConfirmValidatePayment=Er du sikker på at du vil validere denne betalingen? Ingen endringer kan utføres etterpå.
     ValidateBill=Valider faktura
     UnvalidateBill=Fjern validering på faktura
    -NumberOfBills=Ant. fakturaer
    -NumberOfBillsByMonth=Antall fakturaer pr. måned
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Totalbeløp fakturaer
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Sum fakturaer pr. mnd (eks. MVA)
     ShowSocialContribution=Vis skatter og avgifter
     ShowBill=Vis faktura
    @@ -260,9 +262,9 @@ Repeatables=Maler
     ChangeIntoRepeatableInvoice=Gjør om til fakturamal
     CreateRepeatableInvoice=Opprett fakturamal
     CreateFromRepeatableInvoice=Opprett fra fakturamal
    -CustomersInvoicesAndInvoiceLines=Kundefakturaer og fakturalinjer
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Kundefakturaer og betalinger
    -ExportDataset_invoice_1=Oversikt over kundefakturaer og fakturalinjer
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Kundefakturaer og betalinger
     ProformaBill=Proforma faktura
     Reduction=Reduksjon
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Rabatter eller kreditter som allerede er brukt
     CustomerDiscounts=Kunderabatter
     SupplierDiscounts=Leverandørrabatter
     BillAddress=Fakturaadresse
    -HelpEscompte=Denne rabatten er gitt fordi kunden betalte før forfall.
    -HelpAbandonBadCustomer=Dette beløpet er tapsført (dårlig kunde) og betraktes som tap.
    -HelpAbandonOther=Dette beløpet er tapsført på grunn av feil. (For eksempel feil kunde eller faktura er erstattet av en annen)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Skatter og avgifter ID
     PaymentId=Betalings-ID
     PaymentRef=Betalings-ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Ingen faktura er valgt
     CloneInvoice=Klon faktura
     ConfirmCloneInvoice=Er du sikker på at du vil klone fakturaen <b>%s</b>?
     DisabledBecauseReplacedInvoice=Handling slått av fordi fakturaen er blitt erstattet
    -DescTaxAndDividendsArea=Dette området viser en oppsummering av alle betalinger av spesielle utgifter. Kun poster fra inneværende år er inkludert her.
    -NbOfPayments=Antall betalinger
    +DescTaxAndDividendsArea=Dette området viser summen av alle betalinger til spesielle utgifter. Kun poster fra dette regnskapsåret er tatt med her.
    +NbOfPayments=No. of payments
     SplitDiscount=Del rabatt i to
    -ConfirmSplitDiscount=Er du sikker på at du vil dele rabatten på<b>%s</b>? %s i 2 mindre rabatter?
    -TypeAmountOfEachNewDiscount=Sett inn beløp for hver av de to delene:
    -TotalOfTwoDiscountMustEqualsOriginal=Totalen for de to nye rabattene må være lik det originale rabattbeløpet.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Er du sikker på at du vil 
     RelatedBill=Relatert faktura
     RelatedBills=Relaterte fakturaer
     RelatedCustomerInvoices=Relaterte kundefakturaer
     RelatedSupplierInvoices=Relaterte leverandørfakturaer
     LatestRelatedBill=Siste tilknyttede faktura
    -WarningBillExist=Advarsel: en eller flere fakturaer finnes allerede
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Verktøy for fletting av PDF 
     AmountPaymentDistributedOnInvoice=Beløp fordelt på faktura
    -PaymentOnDifferentThirdBills=Tillat betaling av fakturaer for ulike tredjeparter under samme foreldre-firma
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Betalingsnotat
     ListOfPreviousSituationInvoices=Liste over tidligere delfakturaer
     ListOfNextSituationInvoices=Liste over kommende delfakturaer
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Sjekk
     PaymentTypeShortCHQ=Sjekk
     PaymentTypeTIP=TIP (Dokumenter mot betaling)
     PaymentTypeShortTIP=TIP Betaling
    -PaymentTypeVAD=Nettbank
    -PaymentTypeShortVAD=Nettbank
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bankremisse
     PaymentTypeShortTRA=Kladd
     PaymentTypeFAC=Faktor
     PaymentTypeShortFAC=Faktor
     BankDetails=Bankopplysninger
     BankCode=Bank code (ikke i Norge)
    -DeskCode=Desk code (ikke i Norge)
    +DeskCode=Office code
     BankAccountNumber=Kontonummer
    -BankAccountNumberKey=Nøkkel
    +BankAccountNumberKey=Check digits
     Residence=Direktedebet
    -IBANNumber=IBAN-nummer
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT-nummer
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Vennligst betal til følgende bankkonto
     VATIsNotUsedForInvoice=* Avgiftsfritt
     LawApplicationPart1=Alle varer forblir vår eiendom
     LawApplicationPart2=til de er fullt ut betalt.
    -LawApplicationPart3=Fakturautsteder har salgspant
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=i leverte varer til de er betalt i sin helhet.
     LimitedLiabilityCompanyCapital=AS med organisajonsnummer
     UseLine=Legg til
    @@ -463,7 +465,7 @@ Cheques=Sjekker
     DepositId=Innskudds-ID
     NbCheque=Antall sjekker
     CreditNoteConvertedIntoDiscount=Denne%s er blitt konvertert til %s
    -UsBillingContactAsIncoiveRecipientIfExist=Bruk kontaktpersonens adresse i stedet for tredjepartens adresse
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Vis alle ubetalte fakturaer
     ShowUnpaidLateOnly=Vis kun forfalte fakturaer
     PaymentInvoiceRef=Betaling av faktura %s
    @@ -474,21 +476,22 @@ Reported=Forsinket
     DisabledBecausePayments=Ikke mulig siden det er noen betalinger
     CantRemovePaymentWithOneInvoicePaid=Kan ikke fjerne betalingen siden det er minst en faktura som er klassifisert som betalt
     ExpectedToPay=Forventet innbetaling
    -CantRemoveConciliatedPayment=Kan ikke fjerne avtalt beløp
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Betales av denne innbetalingen
    -ClosePaidInvoicesAutomatically=Klassifiser "Betalt" alle standard-, forskuddsbetalings- eller erstatningsfakturaer som er fullstendig betalt.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Klassifiser alle fakturaer som betalt
    -ClosePaidContributionsAutomatically=Klassifiser alle fullt betalte sosial- og regnskapsbidrag som "betalt"
    -AllCompletelyPayedInvoiceWillBeClosed=Alle faktura uten restbeløp vil bli automatisk satt til &quot;betalt&quot;.
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Betal
     ToMakePaymentBack=Tilbakebetal
     ListOfYourUnpaidInvoices=Liste over ubetalte fakturaer
     NoteListOfYourUnpaidInvoices=Denne listen inneholder kun fakturaer for tredjeparter du er koblet til som salgsrepresentant.
     RevenueStamp=Stempelmerke
    -YouMustCreateInvoiceFromThird=Dette alternativet er bare tilgjengelig når du oppretter faktura fra kategorien "kunde" under tredjepart
    -YouMustCreateInvoiceFromSupplierThird=Dette alternativet er bare tilgjengelig når du oppretter faktura fra kategorien "leverandør" under tredjepart
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=Du må først lage en standardfaktura og så konvertere den til "mal" for å lage en ny fakturamal
     PDFCrabeDescription=Fakturamal Crabe. En komplett mal (Støtter MVA, rabatter, betalingsbetingelser, logo, osv...)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=PDF fakturamal Crevette. En komplett mal for delfaktura
     TerreNumRefModelDesc1=Returnerer nummer med format %syymm-nnnn for standardfaktura og %syymm-nnnn for kreditnota, der yy er året, mm måned og nnnn er et løpenummer som starter på 0+1.
     MarsNumRefModelDesc1=Returnerer et nummer med format %syymm-nnnn for standardfakturaer, %syymm-nnnn for erstatningsfakturaer, %syymm-nnnn for nedbetalingsfakturaer og %syymm-nnnn for kreditnotater hvor yy er år, mm er måned og nnnn er en sekvens uten pause og ingen retur til 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Fakturalinje-progresjon kan ikke være lik eller høyer
     updatePriceNextInvoiceErrorUpdateline=Feil: oppdater pris på fakturalinje: %s
     ToCreateARecurringInvoice=For å opprette en gjentakende faktura for denne kontrakten må du først opprette en fakturakladd, og så gjøre den om til en fakturamal, for så å bestemme hvor ofte nye fakturaer skal opprettes
     ToCreateARecurringInvoiceGene=For å opprette fremtidige periodiske fakturaer manuelt, gå til meny <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=Hvis du vil opprette slike fakturaer automatisk, ta kontakt med administrator for å aktivere og sette opp modulen <strong>%s</strong>. Husk at begge metoder (manuell og automatisk) kan bruke om hverandre uten fare for duplisering.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Slett fakturamal
     ConfirmDeleteRepeatableInvoice=Er du sikker på at du vil 
     CreateOneBillByThird=Opprett en faktura pr. tredjepart (ellers en faktura pr. ordre)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Angi startdato
     AutoFillDateTo=Angi sluttdato for tjenestelinje med neste faktura dato
     AutoFillDateToShort=Angi sluttdato
     MaxNumberOfGenerationReached=Maks ant. genereringer nådd
    +BILL_DELETEInDolibarr=Faktura slettet
    diff --git a/htdocs/langs/nb_NO/cashdesk.lang b/htdocs/langs/nb_NO/cashdesk.lang
    index c641997e701..c0561b46682 100644
    --- a/htdocs/langs/nb_NO/cashdesk.lang
    +++ b/htdocs/langs/nb_NO/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Vis selskap
     ShowStock=Vis lager
     DeleteArticle=Klikk for å fjerne denne artikkelen
     FilterRefOrLabelOrBC=Søk (Referanse/Etikett)
    -UserNeedPermissionToEditStockToUsePos=Forespørsel om å redusere varebeholdning ved opprettelse av faktura. POS bruker må ha adgang til å endre varebeholdning
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Etikettskriver
    +PointOfSale=Kassaapparat
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/nb_NO/commercial.lang b/htdocs/langs/nb_NO/commercial.lang
    index ab81008845e..bc042413e9c 100644
    --- a/htdocs/langs/nb_NO/commercial.lang
    +++ b/htdocs/langs/nb_NO/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefonsamtale
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send tilbud
     ActionAC_EMAIL=Send epost
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Møter
     ActionAC_INT=Intervensjon på sted
     ActionAC_FAC=Send faktura med post
    @@ -60,8 +61,8 @@ ActionAC_CLO=Lukk
     ActionAC_EMAILING=Send e-postutsendelse (masse-epost)
     ActionAC_COM=Send ordre i posten
     ActionAC_SHIP=Send levering i posten
    -ActionAC_SUP_ORD=Send purchase order by mail
    -ActionAC_SUP_INV=Send vendor invoice by mail
    +ActionAC_SUP_ORD=Send bestillingsordre via epost
    +ActionAC_SUP_INV=Send leverandørfaktura via epost
     ActionAC_OTH=Andre
     ActionAC_OTH_AUTO=Automatisk satte hendelser
     ActionAC_MANUAL=Manuelt satte hendelser
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Utkast kommersielle tilbud
     NoLimit=Ingen grense
     ToOfferALinkForOnlineSignature=Link for online signatur
    -WelcomeOnOnlineSignaturePage=Velkommen til siden for å godta tilbud %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=Denne siden lar deg godta og signere eller avvise et tilbud
     ThisIsInformationOnDocumentToSign=Dette er informasjon på dokumentet for å godta eller avvise
    -SignatureProposalRef=Underskrift av tilbud %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Funksjon for online signering deaktivert eller dokument generert før funksjonen ble aktivert
    diff --git a/htdocs/langs/nb_NO/companies.lang b/htdocs/langs/nb_NO/companies.lang
    index 70f1dd4f3fb..38e954866dc 100644
    --- a/htdocs/langs/nb_NO/companies.lang
    +++ b/htdocs/langs/nb_NO/companies.lang
    @@ -5,14 +5,14 @@ SelectThirdParty=Velg en tredjepart
     ConfirmDeleteCompany=Er du sikker på at du vil slette dette firmaet og all tilhørende informasjon?
     DeleteContact=Slett kontaktperson
     ConfirmDeleteContact=Er du sikker på at du vil slette denne kontakten og all tilhørende informasjon?
    -MenuNewThirdParty=Ny tredjepart
    -MenuNewCustomer=Ny kunde
    -MenuNewProspect=Nytt prospekt
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Ny privatperson
    -NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    -CreateDolibarrThirdPartySupplier=Create a third party (vendor)
    +NewCompany=Nytt selskap (prospekt, kunde, leverandør)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
    +CreateDolibarrThirdPartySupplier=Opprett en tredjepart (leverandør)
     CreateThirdPartyOnly=Opprett tredjepart
     CreateThirdPartyAndContact=Opprett en tredjepart med underkontakt
     ProspectionArea=Prospektområde
    @@ -25,25 +25,25 @@ ThirdPartyContact=Tredjepartskontakt
     Company=Bedrift
     CompanyName=Firmanavn
     AliasNames=Alias (kommersielt, trademark,...)
    -AliasNameShort=Alias
    +AliasNameShort=Alias ​​Navn
     Companies=Bedrifter
    -CountryIsInEEC=Landet er en del av det europeiske økonomiske fellesskap
    -ThirdPartyName=Tredjepart navn
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Tredjeparts e-post
    -ThirdParty=Tredjepart
    -ThirdParties=Tredjeparter
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospekter
     ThirdPartyProspectsStats=Prospekter
     ThirdPartyCustomers=Kunder
     ThirdPartyCustomersStats=Kunder
     ThirdPartyCustomersWithIdProf12=Kunder med %s eller %s
    -ThirdPartySuppliers=Vendors
    -ThirdPartyType=Type tredjepart
    +ThirdPartySuppliers=Leverandører
    +ThirdPartyType=Type of company
     Individual=Privatperson
    -ToCreateContactWithSameName=Vil opprette en kontakt/adresse med samme informasjon som tredjeparten, under tredjeparten, automatisk. I de fleste tilfeller, selv om tredjeparten er en privatperson, vil det være nok å opprette en tredjepart
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Morselskap
     Subsidiaries=Datterselskaper
    -ReportByMonth=Report by month
    +ReportByMonth=Rapporter etter måned
     ReportByCustomers=Rapporter etter kunde
     ReportByQuarter=Rapporter pr sats
     CivilityCode=Civility code (ikke i Norge)
    @@ -75,13 +75,13 @@ Zip=Postnummer
     Town=Poststed
     Web=Web
     Poste= Posisjon
    -DefaultLang=Standardspråk
    -VATIsUsed=Salgsavgift er brukt
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Salgsavgift er ikke brukt
     CopyAddressFromSoc=Fyll inn adressen med tredjepartsadressen
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
    +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Tredjeparts verken kunde eller leverandør. Rabatter er ikke tilgjengelige
     PaymentBankAccount=Bankkonto betaling
     OverAllProposals=Tilbud
     OverAllOrders=Ordre
    @@ -99,9 +99,9 @@ LocalTax2ES=IRPF
     TypeLocaltax1ES=RE Type
     TypeLocaltax2ES=IRPF Type
     WrongCustomerCode=Ugyldig kundekode
    -WrongSupplierCode=Vendor code invalid
    +WrongSupplierCode=Leverandørkode ugyldig
     CustomerCodeModel=Mal kundekode
    -SupplierCodeModel=Vendor code model
    +SupplierCodeModel=Leverandørkode modell
     Gencod=Strekkode
     ##### Professional ID #####
     ProfId1Short=Prof. id 1
    @@ -258,36 +258,36 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Salgsavgift-ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Avgifts-ID
     VATIntraSyntaxIsValid=Gyldig syntaks
    -VATReturn=VAT return
    +VATReturn=MVA-retur
     ProspectCustomer=Prospekt/Kunde
     Prospect=Prospekt
     CustomerCard=Kundekort
     Customer=Kunde
     CustomerRelativeDiscount=Relativ kunderabatt
    -SupplierRelativeDiscount=Relative vendor discount
    +SupplierRelativeDiscount=Relativ leverandørrabatt
     CustomerRelativeDiscountShort=Relativ rabatt
     CustomerAbsoluteDiscountShort=Absolutt rabatt
     CompanyHasRelativeDiscount=Denne kunden har en rabatt på <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Denne kunden har ingen relative rabatter angitt
    -HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
    +HasRelativeDiscountFromSupplier=Du har en standardrabatt på <b> %s%% </b> fra denne leverandøren
     HasNoRelativeDiscountFromSupplier=Du har ingen standard relativ rabatt fra denne leverandøren
    -CompanyHasAbsoluteDiscount=Denne kunden har tilgjengelige prisavslag (kreditnotaer eller tidligere innbetalinger) for <b>%s</b>%s
    -CompanyHasDownPaymentOrCommercialDiscount=Denne kunden har rabatt tilgjengelig (tilbud, nedbetalinger) for <b>%s</b>%s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Denne kunden har fortsatt kreditnotaer for <b>%s %s</b>
    -HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
    -HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    -HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for <b>%s</b> %s from this supplier
    -HasCreditNoteFromSupplier=You have credit notes for <b>%s</b> %s from this supplier
    +HasNoAbsoluteDiscountFromSupplier=Du har ingen rabatt tilgjengelig fra denne leverandøren
    +HasAbsoluteDiscountFromSupplier=Du har rabatter tilgjengelig (studiepoeng eller nedbetalinger) for <b> %s </b> %s fra denne leverandøren
    +HasDownPaymentOrCommercialDiscountFromSupplier=Du har rabatter tilgjengelig (kommersielle, nedbetalinger) for <b> %s </b> %s fra denne leverandøren
    +HasCreditNoteFromSupplier=Du har kreditnotater for <b> %s </b> %s fra denne leverandøren
     CompanyHasNoAbsoluteDiscount=Denne kunden har ingen rabatt tilgjengelig
     CustomerAbsoluteDiscountAllUsers=Absolutte kunderabatter (gitt av alle brukere)
     CustomerAbsoluteDiscountMy=Absolutte kunderabatter (gitt av deg selv)
    -SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
    -SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
    +SupplierAbsoluteDiscountAllUsers=Absolutte leverandørrabatter (oppgitt av alle brukere)
    +SupplierAbsoluteDiscountMy=Absolutt leverandørrabatter (oppgitt av deg selv)
     DiscountNone=Ingen
    -Supplier=Leverandør
    +Supplier=Vendor
     AddContact=Opprett kontakt
     AddContactAddress=Opprett kontakt/adresse
     EditContact=Endre kontakt
    @@ -303,22 +303,22 @@ AddThirdParty=Opprett tredjepart
     DeleteACompany=Slett et firma
     PersonalInformations=Personlig informasjon
     AccountancyCode=Regnskapskonto
    -CustomerCode=Kundekode
    -SupplierCode=Vendor code
    -CustomerCodeShort=Kundekode
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Kundekode, unik for alle kunder
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Påkrevet hvis tredjeparten er kunde eller prospekt
    -RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Gyldighet kontrollert av modulen
    -ThisIsModuleRules=Dette er reglene for denne modulen
    +RequiredIfSupplier=Påkrevd hvis tredjepart er en leverandør
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospekt til kontakt
     CompanyDeleted=Firma "%s" er slettet fra databasen.
     ListOfContacts=Oversikt over kontaktpersoner
    -ListOfContactsAddresses=Liste over kontakter / adresser
    -ListOfThirdParties=Oversikt over tredjeparter
    -ShowCompany=Vis tredjepart
    +ListOfContactsAddresses=Oversikt over kontaktpersoner
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Vis kontaktperson
     ContactsAllShort=Alle (ingen filter)
     ContactType=Kontaktperson type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Kontaktpersonen er ikke tilknyttet noen tilbud
     NoContactForAnyContract=Kontaktpersonen er ikke tilknyttet noen kontrakt
     NoContactForAnyInvoice=Kontaktpersonen er ikke tilknyttet noen faktura
     NewContact=Ny kontaktperson
    -NewContactAddress=Ny kontakt/adresse
    +NewContactAddress=New Contact/Address
     MyContacts=Mine kontaktpersoner
     Capital=Aksjekapital
     CapitalOf=Aksjekapital på %s
     EditCompany=Rediger firma
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Sjekk
    -VATIntraCheckDesc=Lenken <b>%s</b> slår opp i den europeiske kontrolltjenesten for MVA (gjelder ikke norske foretak). Serveren må ha ekstern internettilgang for at denne funksjonen skal virke.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Slå opp i Intracomunnautary VAT på EU-kommisjonens nettsted
    -VATIntraManualCheck=Du kan også sjekke manuelt på <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Sjekk er ikke tilgjengelig. Tjenesten er ikke tilgjengelig for landet (%s).
    -NorProspectNorCustomer=Hverken prospekt eller kunde
    -JuridicalStatus=Juridisk status
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Ansatte
     ProspectLevelShort=Potensiell
     ProspectLevel=Prospektpotensiale
    @@ -387,31 +387,31 @@ ExportCardToFormat=Eksporter kort til format
     ContactNotLinkedToCompany=Kontaktpersonen er ikke lenket til noen tredjepart
     DolibarrLogin=Dolibarr innlogging
     NoDolibarrAccess=Ingen tilgang til Dolibarr
    -ExportDataset_company_1=Tredjeparter (Firmaer, organisasjoner, personer) og egenskaper
    -ExportDataset_company_2=Kontaktpersoner og egenskaper
    -ImportDataset_company_1=Tredjeparter (Firmaer, organisasjoner, personer) og egenskaper
    -ImportDataset_company_2=Kontakter/adresser (til tredjeparter eller ikke) og attributter
    -ImportDataset_company_3=Tredjeparters bankkontoer 
    -ImportDataset_company_4=Tredjeparter/Salgsrepresentanter (Tilordne salgsrepresentanters brukere til bedrifter)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Prisnivå
     DeliveryAddress=Leveringsadresse
     AddAddress=Legg til adresse
    -SupplierCategory=Vendor category
    +SupplierCategory=Leverandør kategori
     JuridicalStatus200=Uavhengig
     DeleteFile=Slett fil
     ConfirmDeleteFile=Er du sikker på at du vil slette denne filen?
     AllocateCommercial=Tildelt salgsrepresentant
     Organization=Organisasjon
    -FiscalYearInformation=Informasjon om regnskapsåret
    +FiscalYearInformation=Regnskapsår
     FiscalMonthStart=Første måned i regnskapsåret
    -YouMustAssignUserMailFirst=Du må opprette e-postadresse for denne brukeren først for være i stand til å legge til e-postvarslinger for ham.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=For å kunne legge til e-postvarsler, må du først definere kontakter med gyldige e-postadresser hos tredjepart
    -ListSuppliersShort=List of vendors
    +ListSuppliersShort=Liste over leverandører
     ListProspectsShort=Liste over prospekter
     ListCustomersShort=Liste over kunder
    -ThirdPartiesArea=Tredjepart og kontaktområde
    +ThirdPartiesArea=Tredjeparter / Kontakter
     LastModifiedThirdParties=Siste %s endrede tredjeparter
    -UniqueThirdParties=Totalt antall unike tredjeparter
    +UniqueThirdParties=Totalt antall tredjeparter
     InActivity=Åpent
     ActivityCeased=Stengt
     ThirdPartyIsClosed=Tredjepart er stengt
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Gjeldende utestående regning
     OutstandingBill=Max. utestående beløp
     OutstandingBillReached=Maksimun utestående beløp nådd
     OrderMinAmount=Minimumsbeløp for bestilling
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Fri kode. Denne koden kan endres når som helst.
     ManagingDirectors=(E) navn (CEO, direktør, president ...)
     MergeOriginThirdparty=Dupliser tredjepart (tredjepart du vil slette)
     MergeThirdparties=Flett tredjeparter
    -ConfirmMergeThirdparties=Er du sikker på at du vil slå sammen denne tredjeparten med den nåværende? Alle koblede objekter (fakturaer, ordre, ...) blir flyttet til nåværende tredjepart, og tredjeparten blir slettet.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Tredjeparter har blitt flettet
     SaleRepresentativeLogin=Innlogging for salgsrepresentant
     SaleRepresentativeFirstname=Selgers fornavn
     SaleRepresentativeLastname=Selgers etternavn
     ErrorThirdpartiesMerge=Det oppsto en feil ved sletting av tredjepart. Vennligst sjekk loggen. Endringer er blitt tilbakestilt.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/nb_NO/dict.lang b/htdocs/langs/nb_NO/dict.lang
    index 9166039bfc3..0471f901546 100644
    --- a/htdocs/langs/nb_NO/dict.lang
    +++ b/htdocs/langs/nb_NO/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard- og McDonaldøyene
     CountryVA=Holy See (Vatikanet)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Island
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Nord-Korea
     CountryKR=Sør-Korea
     CountryKW=Kuwait
    -CountryKG=Kirgisistan
    +CountryKG=Kyrgyzstan
     CountryLA=Laos
     CountryLV=Latvia
     CountryLB=Libanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mosambik
    -CountryMM=Myanmar
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad og Tobago
     CountryTR=Tyrkia
     CountryTM=Turkmenistan
    -CountryTC=Turks- og Caicosøyene
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupi
     CurrencySingMUR=Mauritius rupi
     CurrencyNOK=Norske kroner
    -CurrencySingNOK=Norske kroner
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisiske dinarer
     CurrencySingTND=Tunisisk dinar
     CurrencyUSD=Amerikanske dollar
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Jungeltelegrafen
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Ansatt
     DemandReasonTypeSRC_SPONSORING=Sponsing
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/nb_NO/ecm.lang b/htdocs/langs/nb_NO/ecm.lang
    index f41f468f106..688e58621fa 100644
    --- a/htdocs/langs/nb_NO/ecm.lang
    +++ b/htdocs/langs/nb_NO/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Ant. dokumenter i mappen
    +ECMNbOfDocs=Antall dokumenter i katalogen
     ECMSection=Mappe
     ECMSectionManual=Manuell mappe
     ECMSectionAuto=Automatisk mappe
    @@ -34,18 +34,19 @@ ECMDocsByProjects=Dokumenter relatert til prosjekter
     ECMDocsByUsers=Dokumenter relatert til brukere
     ECMDocsByInterventions=Dokumenter relatert til intervensjoner
     ECMDocsByExpenseReports=Dokumenter lenket til utgiftsrapporter
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Ingen mapper opprettet
     ShowECMSection=Vis mappe
     DeleteSection=Fjern mappe
     ConfirmDeleteSection=Kan du bekrefte at du vil slette mappen <b>%s</b>?
     ECMDirectoryForFiles=Relativ mappe for filer
    -CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories
    -CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files
    +CannotRemoveDirectoryContainsFilesOrDirs=Sletting ikke mulig fordi den inneholder noen filer eller underkataloger
    +CannotRemoveDirectoryContainsFiles=Sletting ikke mulig fordi den inneholder noen filer
     ECMFileManager=Filbehandler
     ECMSelectASection=Velg en mappe i treet ...
     DirNotSynchronizedSyncFirst=Denne mappen ser ut til å være opprettet eller endret utenfor ECM-modulen. Du må klikke på "Resync" -knappen først for å synkronisere disk og database for å få innhold i denne katalogen.
     ReSyncListOfDir=Resync liste over kataloger
     HashOfFileContent=Hash av filinnhold
    -FileNotYetIndexedInDatabase=Filen er ikke indeksert i databasen (prøv å laste den opp igjen)
    -FileSharedViaALink=Fil delt via en lenke
     NoDirectoriesFound=Ingen mapper funnet
    +FileNotYetIndexedInDatabase=Filen er ikke indeksert i databasen (prøv å laste den opp igjen)
    diff --git a/htdocs/langs/nb_NO/errors.lang b/htdocs/langs/nb_NO/errors.lang
    index 9ccb0276763..0be0d4f76ad 100644
    --- a/htdocs/langs/nb_NO/errors.lang
    +++ b/htdocs/langs/nb_NO/errors.lang
    @@ -32,9 +32,9 @@ ErrorBarCodeRequired=Strekkode påkrevet
     ErrorCustomerCodeAlreadyUsed=Kundekoden er allerede benyttet
     ErrorBarCodeAlreadyUsed=Strekkode allerede brukt
     ErrorPrefixRequired=Prefiks påkrevet
    -ErrorBadSupplierCodeSyntax=Bad syntax for vendor code
    -ErrorSupplierCodeRequired=Vendor code required
    -ErrorSupplierCodeAlreadyUsed=Vendor code already used
    +ErrorBadSupplierCodeSyntax=Feil syntaks for leverandørkode
    +ErrorSupplierCodeRequired=Leverandørkode kreves
    +ErrorSupplierCodeAlreadyUsed=Leverandørkode allerede brukt
     ErrorBadParameters=Ugyldige parametere
     ErrorBadValueForParameter=Feil verdi '%s' for parameter '%s'
     ErrorBadImageFormat=Bildeformatet støttes ikke (Din PHP støtter ikke konvertering av dette formatet)
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Verdien '%s' har feil datoformat
     ErrorWrongDate=Dato er feil!
     ErrorFailedToWriteInDir=Kan ikke skrive til mappen %s
     ErrorFoundBadEmailInFile=Feil e-postsyntaks for %s linjer i filen (for eksempel linje %s med e-post=%s)
    -ErrorUserCannotBeDelete=Bruker kan ikke slettes. Kan være knyttet til Dolibarr-enheter.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Noen påkrevde felt er ikke fylt ut.
     ErrorSubjectIsRequired=Epost-emnet er påkrevd
     ErrorFailedToCreateDir=Kunne ikke opprette mappen. Kontroller at webserverbrukeren har skriverettigheter i dokumentmappen i Dolibarr. Hvis <b>safe_mode</b> er akivert i PHP, sjekk at webserveren eier eller er med i gruppen(eller bruker) for Dolibarr php-filer.
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Sett inn verdi for å velge liste
     ErrorNoValueForCheckBoxType=Sett inn verdi for å velge avkrysningsboks-liste
     ErrorNoValueForRadioType=Sett i verdi for radioknapp-liste
     ErrorBadFormatValueList=Listeverdien kan ikke ha mer enn ett komma: <u>%s</u>, men må ha minst ett: nøkkel,verdi
    -ErrorFieldCanNotContainSpecialCharacters=Feltet <b>%s</b> kan ikke inneholde spesialtegn.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Feltet <b>%s</b> må ikke inneholde spesialkarakterer, ikke store bokstaver og ikke bare tall
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Ingen regnskapsmodul aktivert
     ErrorExportDuplicateProfil=Profilnavnet til dette eksport-oppsettet finnes allerede
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP oppsett er ikke komplett.
     ErrorLDAPMakeManualTest=En .ldif fil er opprettet i mappen %s. Prøv å lese den manuelt for å se mer informasjon om feil.
    -ErrorCantSaveADoneUserWithZeroPercentage=Kan ikke lagre en handling med "status ikke startet" hvis feltet "gjort av" også er utfylt.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref bruket til oppretting finnes allerede.
     ErrorPleaseTypeBankTransactionReportName=Vennligst skriv inn kontoutskriftsnavnet der oppføringen skal rapporteres (Format YYYYMM eller YYYYMMDD)
    -ErrorRecordHasChildren=Kunne ikke slette posten da den har koblinger.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Objektet har minst under-objekt av typen %s
    -ErrorRecordIsUsedCantDelete=Kan ikke slette posten. Den er allerede brukt eller inkludert i et annet objekt
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript må være aktivert for å kunne bruke denne funksjonen. For å aktivere/deaktivere Javascript, gå til menyen Hjem-> Oppsett-> Visning.
     ErrorPasswordsMustMatch=Passordene må samsvare med hverandre
    -ErrorContactEMail=En teknisk feil oppsto. Vennligst kontakt administrator på e-post <b>%s</b> og oppgi feilkoden <b>%s</b> i meldingen, eller enda bedre, ved å legge til en skjermdump av denne siden.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Feil verdi for feltnummeret <b>%s</b> (verdien <b>«%s"</b> samsvarer ikke med regex regel <b>%s)</b>
     ErrorFieldValueNotIn=Feil verdi for feltnummer <b>%s</b> (verdi '<b>%s</b>' er ikke tillatt i feltet <b>%s</b> i tabell <b>%s</b>)
     ErrorFieldRefNotIn=Feil verdi for feltnummer <b>%s</b> (verdien '<b>%s</b>' er ikke en <b>%s</b> eksisterende ref)
    @@ -87,7 +88,8 @@ ErrorsOnXLines=Feil på <b>%s</b> kildelinje(r)
     ErrorFileIsInfectedWithAVirus=Antivirus-programmet var ikke i stand til å validere filen (filen kan være infisert av et virus)
     ErrorSpecialCharNotAllowedForField=Spesialtegn er ikke tillatt for feltet "%s"
     ErrorNumRefModel=En referanse finnes i databasen (%s), og er ikke kompatibel med denne nummereringsregelen. Fjern posten eller omdøp referansen for å aktivere denne modulen.
    -ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorQtyTooLowForThisSupplier=Mengde for lavt for denne leverandøren eller ingen pris angitt på dette produktet for denne leverandøren
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Oppsett av modulen ser ikke ut til å være komplett. Gå til Hjem - Oppsett - Moduler for å fullføre.
     ErrorBadMask=Feil på maske
     ErrorBadMaskFailedToLocatePosOfSequence=Feil! Maske uten sekvensnummer
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Feil, ikke korrekt tilbakestillingsverdi
     ErrorMaxNumberReachForThisMask=Maksimum nummer nådd for denne masken
     ErrorCounterMustHaveMoreThan3Digits=Teller må ha mer enn 3 siffer
     ErrorSelectAtLeastOne=Feil! Velg minst én oppføring.
    -ErrorDeleteNotPossibleLineIsConsolidated=Sletting ikke mulig fordi posten er knyttet til en banktransaksjonen som er avstemt
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s er tilordnet en annen tredjepart
     ErrorFailedToSendPassword=Klarte ikke å sende passord
     ErrorFailedToLoadRSSFile=Klarer ikke hente RSS-feed. Prøv å legge konstant MAIN_SIMPLEXMLLOAD_DEBUG hvis feilmeldinger ikke gir nok informasjon.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Bruker med loginn <b>%s</b> kunne ikke bli funnet.
     ErrorLoginHasNoEmail=Denne brukeren har ingen e-postadresse. Prosess avbrutt.
     ErrorBadValueForCode=Feil verdi for sikkerhetskode. Prøv igjen med ny verdi ...
     ErrorBothFieldCantBeNegative=Feltene %s og %s kan ikke begge være negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Kvantum på linjer i kundefakturaer kan ikke være negativ
     ErrorWebServerUserHasNotPermission=Brukerkonto <b>%s</b> som brukes til å kjøre web-server har ikke tillatelse til det
     ErrorNoActivatedBarcode=Ingen strekkodetype aktivert
    @@ -138,7 +141,7 @@ ErrorBadFormat=Feil format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Feil, dette medlemmet er ennå ikke knyttet til noen tredjepart. Koble medlemmet til en eksisterende tredjepart eller opprett en ny tredjepart før du oppretter abonnement med faktura.
     ErrorThereIsSomeDeliveries=Feil! Det er noen leveringer knyttet til denne forsendelsen. Sletting nektet
     ErrorCantDeletePaymentReconciliated=Kan ikke slette en betaling etter at det er blitt generert en bankoppføring som er blitt avstemt
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Kan ikke slette en betaling delt med minst en faktura med status Betalt
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Kan ikke tildele til konstant '%s'
     ErrorPriceExpression2=Kan ikke omdefinere innebygd funksjon '%s'
     ErrorPriceExpression3=Udefinert variabel '%s' i funksjon
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Uventet '%s'
     ErrorPriceExpression6=Feil antall argumenter (%s er gitt, %s er forventet)
     ErrorPriceExpression8=Uventet operator '%s'
     ErrorPriceExpression9=En uventet feil oppsto
    -ErrorPriceExpression10=Operator '%s' mangler operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Forventet '%s'
     ErrorPriceExpression14=Delt på null
     ErrorPriceExpression17=Udefinert variabel '%s'
    @@ -171,13 +174,13 @@ ErrorGlobalVariableUpdater4=SOAP klienten feilet med meldingen '%s'
     ErrorGlobalVariableUpdater5=Ingen global variabel valgt
     ErrorFieldMustBeANumeric=Feltet <b>%s</b> må være en numerisk verdi
     ErrorMandatoryParametersNotProvided=Obligatorisk(e) parametre ikke angitt
    -ErrorOppStatusRequiredIfAmount=Sett inn et estimert beløp for denne muligheten. Status må også settes
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Kunne ikke laste moduldeskriptorklassen for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=En feil oppsto under lagring av endringer
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Lager er obligatorisk for å kunne levere
     ErrorFileMustHaveFormat=Filen må ha formatet %s
    -ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    +ErrorSupplierCountryIsNotDefined=Land for denne leverandøren er ikke definert. Rett dette først.
     ErrorsThirdpartyMerge=Klarte ikke å flette de to postene. Forespørsel ble avbrutt.
     ErrorStockIsNotEnoughToAddProductOnOrder=Lagernivå er for lavt for å legge %s til i en ny ordre
     ErrorStockIsNotEnoughToAddProductOnInvoice=Lagernivå er for lavt for å legge %s til i en ny faktura
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=Filen ble ikke funnet. Kanskje delingsnøkkelen
     ErrorProductBarCodeAlreadyExists=Vare-strekkoden %s finnes allerede i en annen produktreferanse.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Vær også oppmerksom på at bruk av virtuelle varer som har automatisk økning/reduksjon av undervarer, ikke er mulig når minst en undervare (eller undervare av undervarer) trenger et serienummer/lotnummer.
     ErrorDescRequiredForFreeProductLines=Beskrivelse er obligatorisk for linjer med gratis vare
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=Et passord ble satt for dette medlemmet, men ingen brukerkonto ble opprettet. Det fører til at passordet ikke kan benyttes for å logge inn på Dolibarr. Det kan brukes av en ekstern modul/grensesnitt, men hvis du ikke trenger å definere noen innlogging eller passord for et medlem, kan du deaktivere alternativet "opprett en pålogging for hvert medlem" fra medlemsmodul-oppsettet. Hvis du trenger å administrere en pålogging, men ikke trenger noe passord, kan du holde dette feltet tomt for å unngå denne advarselen. Merk: E-post kan også brukes som en pålogging dersom medlemmet er knyttet til en bruker.
     WarningMandatorySetupNotComplete=Obligatoriske parametre er enda ikke satt opp
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Et bokmerke med denne tittelen eller denne URL'en e
     WarningPassIsEmpty=Advarsel: databasepassordet er tomt. Dette er en sikkerhetsrisiko. Du bør passordbeskytte databasen og endre filen conf.php
     WarningConfFileMustBeReadOnly=Advarsel, config-filen din <b>(htdocs / conf / conf.php)</b> kan overskrives av webserveren. Dette er et alvorlig sikkerhetshull. Endre tillatelser på filen til skrivebeskyttet modus for operativsystem-brukeren brukt av web-server. Hvis du bruker Windows og FAT format for disken din, må du vite at dette filsystemet ikke tillater å legge til tillatelser på filen, så du kan ikke være helt sikker.
     WarningsOnXLines=Advarsler på <b>%s</b> kildelinje(r)
    -WarningNoDocumentModelActivated=Ingen modell, for dokumentgenerrering, er blitt aktivert. En modell vil bli valgt som standard til du kontrollerer moduloppsettet.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=ADVARSEL! Når setup er ferdig, må du deaktivere installasjon/migrasjons-verktøy ved å legge til filen <b>install.lock</b> i mappen <b>%s</b>. Uten denne filen er sikkerheten kraftig redusert
    -WarningUntilDirRemoved=Alle sikkerhetsadvarsler (synlige for admin-brukere) vil være aktiv så lenge sårbarhet er tilstede (eller at konstant MAIN_REMOVE_INSTALL_WARNING legges i Oppset-> Andre innstillinger).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Advarsel! Avsluttes selv om beløpet er forskjellig mellom kilde- og målelementer. Aktiver denne funksjonen med forsiktighet.
     WarningUsingThisBoxSlowDown=Advarsel! Ved å bruke denne boksen vil du gjøre alle sider som bruker den, tregere.
     WarningClickToDialUserSetupNotComplete=Oppsett av KlikkForÅRinge informasjon for din bruker er ikke komplett (Se fanen KlikkForÅRinge på ditt bruker-kort)
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=For mange data (mer enn %s linjer). Bruk
     WarningSomeLinesWithNullHourlyRate=Noen tider ble registrert av noen brukere mens deres timepris ikke var definert. En verdi på 0 %s pr. time ble brukt, men dette kan føre til feil verdivurdering av tidsbruk.
     WarningYourLoginWasModifiedPleaseLogin=Din innlogging er blitt endret. Av sikkerhetsgrunner må du logge inn på nytt før du kan gjøre noe.
     WarningAnEntryAlreadyExistForTransKey=En oppføring eksisterer allerede for oversettelsesnøkkel for dette språket
    -WarningNumberOfRecipientIsRestrictedInMassAction=Advarsel, antall forskjellige mottakere er begrenset til <b> %s</b> når du bruker bulkhandlinger på lister
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Advarsel, datoen for linjen ligger utenfor tiden til utgiftsrapporten
    diff --git a/htdocs/langs/nb_NO/help.lang b/htdocs/langs/nb_NO/help.lang
    index b0ef5240a65..4e6bdcd2064 100644
    --- a/htdocs/langs/nb_NO/help.lang
    +++ b/htdocs/langs/nb_NO/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online support
     OtherSupport=Annen support
     ToSeeListOfAvailableRessources=For å se tilgjengelige ressurser:
     HelpCenter=Brukerstøtte
    -DolibarrHelpCenter=Dolibarr hjelp og support
    -ToGoBackToDolibarr=Ellers, klikk <a href="%s">her for å bruke Dolibarr</a>
    -TypeOfSupport=Kilde til support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Brukergruppe (gratis)
     TypeSupportCommercial=Kommersiell
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Trenger du support?
     Efficiency=Effektivitet
     TypeHelpOnly=Kun hjelp
     TypeHelpDev=Hjelp + Utvikling
    -TypeHelpDevForm=Hjelp + utvikling + Dannelse
    -ToGetHelpGoOnSparkAngels1=Noen selskaper kan gi en rask (av og til umiddelbar) og mer effektiv online-support ved å ta kontroll over datamaskinen. Slik hjelp kan bli funnet på <b>%s</b> nettsted:
    -ToGetHelpGoOnSparkAngels3=Du kan også gå til listen over alle tilgjengelig support for Dolibarr. For dette, klikk på knappen
    -ToGetHelpGoOnSparkAngels2=Noen ganger er det ingen selskap tilgjengelig når du søker. Endre filteret for å se etter "alle tilgjengelige". Du vil da kunne sende flere forespørsler.
    -BackToHelpCenter=Ellers, klikk her for å gå <a href="%s">tilbake til hjemmesiden for brukerstøtte</a> .
    -LinkToGoldMember=Du kan ringe forhåndsvalgt support fra Dolibarr for ditt språk (%s) ved å klikke dennes Widget (status og maksimumspris blir automatisk oppdatert):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Støttede språk
    -SubscribeToFoundation=Hjelp Dolibarr prosjektet, gi en donasjon
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For offisiell Dolibarr support på ditt språk: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/nb_NO/holiday.lang b/htdocs/langs/nb_NO/holiday.lang
    index eeaffcd9004..100940fadc4 100644
    --- a/htdocs/langs/nb_NO/holiday.lang
    +++ b/htdocs/langs/nb_NO/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Ferier
    -CPTitreMenu=Ferier
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Månedlig uttalelse
     MenuAddCP=Ny feriesøknad
    -NotActiveModCP=Du må aktivere modulen Ferier for å vise denne siden
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Opprett feriesøknad
     DateDebCP=Startdato
     DateFinCP=Sluttdato
    @@ -15,18 +15,18 @@ ApprovedCP=Godkjent
     CancelCP=Kansellert
     RefuseCP=Nektet
     ValidatorCP=Godkjenner
    -ListeCP=Liste over ferier
    +ListeCP=List of leave
     LeaveId=Ferie-ID
     ReviewedByCP=Vil bli godkjent av
     UserForApprovalID=ID til godkjenningsbruker
    -UserForApprovalFirstname=Fornavn godkjenningsbruker
    -UserForApprovalLastname=Etternavn godkjenningsbruker
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
     UserForApprovalLogin=Innlogging av godkjenningsbruker
     DescCP=Beskrivelse
     SendRequestCP=Opprett feriesøknad
     DelayToRequestCP=Søknader må opprettes minst <b>%s dag(er)</b> før ferien skal starte
    -MenuConfCP=Feriebalanse
    -SoldeCPUser=Feriebalansen er <b>%s</b> dager.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Sluttdato må være senere en startdato
     ErrorSQLCreateCP=En SQL feil oppsto under opprettelse:
     ErrorIDFicheCP=En feil oppsto. Feriesøknaden finnes ikke
    @@ -101,8 +101,8 @@ LEAVE_SICK=Sykefravær
     LEAVE_OTHER=Annen ferie
     LEAVE_PAID_FR=Betalt ferie
     ## Configuration du Module ##
    -LastUpdateCP=Siste automatiske oppdatering av ferietildeling
    -MonthOfLastMonthlyUpdate=Måned for siste automatiske oppdatering av ferietildeling
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Vellykket oppdatering.
     Module27130Name= Håndtering av feriesøknader
     Module27130Desc= Håndtering av feriesøknader
    @@ -112,7 +112,7 @@ NoticePeriod=Oppsigelsestid
     HolidaysToValidate=Valider feriesøknader
     HolidaysToValidateBody=Under er en feriesøknad for validering
     HolidaysToValidateDelay=Denne ferien avvikles innen %s dager
    -HolidaysToValidateAlertSolde=Brukeren som sendte inn denne feriesøknaden har ikke nok tilgjengelige dager.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validerte feriesøknader
     HolidaysValidatedBody=Feriesøknaden din for perioden %s til %s er blitt validert
     HolidaysRefused=Søknad avvist
    @@ -121,4 +121,9 @@ HolidaysCanceled=Kansellert feriesøknad
     HolidaysCanceledBody=Feriesøknaden din for perioden %s til %s er blitt kansellert.
     FollowedByACounter=1: Denne typen ferie må være etterfulgt av en teller. Telleren økes automatisk eller manuelt, og når ferieforespørselen blir validert, blir den redusert. <br>0: Ikke etterfulgt av en teller
     NoLeaveWithCounterDefined=Det er ikke definert noen ferietyper som trenger en teller
    -GoIntoDictionaryHolidayTypes=Gå til <strong>Hjem - Oppsett - Ordlister - Ferietyper</strong> for å sette oppforskjellige typer ferier.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/nb_NO/install.lang b/htdocs/langs/nb_NO/install.lang
    index 892400692cb..94e015fce18 100644
    --- a/htdocs/langs/nb_NO/install.lang
    +++ b/htdocs/langs/nb_NO/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Bare følg instruksjonene trinn for trinn.
     MiscellaneousChecks=Kontroll av forutsetninger 
     ConfFileExists=Konfigurasjonsfil <b>%s</b> eksisterer.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Konfigurasjonsfil <b>%s</b> eksisterer ikke og kunne ikke opprettes!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Konfigurasjonsfil <b>%s</b> kunne lages.
    -ConfFileIsNotWritable=Konfigurasjonsfil <b>%s</b> er ikke skrivbar. Sjekk tillatelser. For første gangs installasjon, må webserveren få innvilget å kunne skrive til denne filen under konfigureringen ("chmod 666" for eksempel på et Unix-OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Konfigurasjonsfil <b>%s</b> er skrivbar.
     ConfFileMustBeAFileNotADir=Konfigurasjonsfil <b> %s </b> må være en fil, ikke en katalog.
    -ConfFileReload=Last inn all informasjon fra konfigurasjonsfilen igjen.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Denne PHP støtter sesjoner.
     PHPSupportPOSTGETOk=Dette PHP støtter variablene POST og GET.
    -PHPSupportPOSTGETKo=Det er mulig at ditt PHP-oppsett ikke støtter variablene POST og/eller GET. Sjekk parametrene <b>variables_order</b> i php.ini.
    -PHPSupportGD=Denne PHP støtter GD grafiske funksjoner.
    -PHPSupportCurl=Denne PHP støtter Curl.
    -PHPSupportUTF8=Denne PHP støtter UTF8 funksjoner.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Din PHP økt-minne er satt til maks.<b>%s</b> bytes. Dette bør være nok.
    -PHPMemoryTooLow=Din PHP max økten minnet er satt til <b>%s</b> bytes. Dette bør være for lav. Endre <b>php.ini</b> å sette <b>memory_limit</b> parameter til minst <b>%s</b> byte.
    -Recheck=Klikk her for en mer significative test
    -ErrorPHPDoesNotSupportSessions=Din PHP installasjon har ikke støtte for sesjoner. Denne funksjonen er nødvendig for at Dolibarr skal virke. Sjekk ditt PHP-oppsett.
    -ErrorPHPDoesNotSupportGD=Din PHP installasjon har ikke støtte for GD-funksjon. Ingen grafer vil være tilgjengelig.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Din PHP-installasjon støtter ikke Curl.
    -ErrorPHPDoesNotSupportUTF8=Din PHP installasjon har ikke støtte for UTF8-funksjoner. Dolibarr vil ikke fungere riktig. Løs dette før du installerer Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Mappen %s finnes ikke.
    -ErrorGoBackAndCorrectParameters=Gå tilbake for å korrigere feil parametre.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Du har kanskje skrevet feil verdi for parameteren '%s'.
     ErrorFailedToCreateDatabase=Kunne ikke opprette database '%s'.
     ErrorFailedToConnectToDatabase=Kunne ikke koble til database '%s'.
     ErrorDatabaseVersionTooLow=Databaseversjonen (%s) er for gammel. Versjon %s eller senere kreves
     ErrorPHPVersionTooLow=PHP-versjonen er for gammel. Versjon %s er nødvendig.
    -ErrorConnectedButDatabaseNotFound=Tilkobling til server vellykket, men database '%s' ikke funnet.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' finnes allerede.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Hvis databasen ikke finnes, gå tilbake og kryss av alternativet "Opprett database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Hvis databasen allerede eksisterer, gå tilbake og fjern "Opprett database" alternativet.
    -WarningBrowserTooOld=Nettleseren din er utdatert. Det anbefales å oppgradere til siste versjon av Firefox, Chrome eller Opera.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP versjon
     License=Bruk lisens
     ConfigurationFile=Konfigurasjonsfil
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Navn eller IP-adressen til database-serveren, som regel "localhost" når database server ligger på samme server som webserveren
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Hold tomt hvis ukjent.
     DatabaseServer=Databaseserver
     DatabaseName=Databasenavn
    -DatabasePrefix=Database prefiks-tabell
    -AdminLogin=Logginn for Dolibarr databaseeier.
    -PasswordAgain=Skriv inn passordet en gang
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Passord for Dolibarr databaseeier.
     CreateDatabase=Opprett database
    -CreateUser=Opprett eier eller gi ham tillatelse på databasen
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Databaseserver - Superbruker tilgang
    -CheckToCreateDatabase=Kryss av i boksen hvis databasen ikke finnes og må opprettes.<br> I dette tilfellet må du fylle brukernavn/passord for superbrukerkontoen nederst på denne siden.
    -CheckToCreateUser=Kryssrute hvis databaseeier ikke eksisterer og må opprettes, eller hvis den eksisterer, men databasen ikke, og tillatelser må gis. <br> I dette tilfellet må du velge innlogging og passord og også fylle innloggingen/passordet for Superbrukerkontoen nederst på denne siden. Hvis denne boksen ikke er merket, må eierdatabasen og passordene eksistere.
    -DatabaseRootLoginDescription=Pålogging til bruker med tillatelse til å opprette nye databaser eller nye brukere, obligatorisk hvis databasen eller dens eier ikke allerede eksisterer.
    -KeepEmptyIfNoPassword=La være tomt hvis bruker ikke har passord (unngå dette)
    -SaveConfigurationFile=Lagre verdier
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server-tilkobling
     DatabaseCreation=Database opprettelse
     CreateDatabaseObjects=Databaseobjekter opprettelse
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Lag eksterne nøkler og indekser for tabell %s
     OtherKeysCreation=Opprettelse av eksterne nøkler og indekser 
     FunctionsCreation=Opprettelse av funksjoner 
     AdminAccountCreation=Opprettelse av administrator login 
    -PleaseTypePassword=Vennligst skriv inn et passord, tomt passord ikke tillatt!
    -PleaseTypeALogin=Vennligst skriv inn brukernavn!
    -PasswordsMismatch=Feil passord, vennligst prøv igjen!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Slutt på oppsett
     SystemIsInstalled=Denne installasjonen er fullført.
     SystemIsUpgraded=Oppgraderingen av Dolibarr var vellykket.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Du må konfigurere Dolibarr for tilpasning til dine be
     AdminLoginCreatedSuccessfuly=Dolibarr administrator innlogging '<b>%s</b>' opprettet.
     GoToDolibarr=Gå til Dolibarr
     GoToSetupArea=Gå til Dolibarr (Oppsettområdet)
    -MigrationNotFinished=Databaseversjonen din ikke er helt oppdatert, så du må kjøre oppgraderingen på nytt.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Gå til oppgraderingssiden igjen
     WithNoSlashAtTheEnd=Uten skråstrek "/" på slutten
    -DirectoryRecommendation=Det er anbefalt å bruke en annen katalog enn den for websidene dine.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Finnes allerede
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administratorkonto '<b>%s</b>' finnes allerede.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Klarte ikke å opprette Dolibarr administratorkonto
    -WarningRemoveInstallDir=Advarsel, av sikkerhetshensyn, når installasjonen eller oppgraderingen er fullført, bør du fjerne <b>mappen "install" eller endre navnet til install.lock for å unngå skadelig bruk.</b>
    -FunctionNotAvailableInThisPHP=Ikke tilgjengelig på denne PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Velg migrasjonscript
     DataMigration=Database migrasjon (data)
     DatabaseMigration=Database migrasjon (struktur + noen data)
     ProcessMigrateScript=Scriptbehandling
     ChooseYourSetupMode=Velg din oppsettmodus og klikk på "Start" ...
     FreshInstall=Ny installasjon
    -FreshInstallDesc=Bruk denne modusen hvis dette er første gangs installasjon. Denne modusen kan reparere en ufullstendig tidligere installasjon, men hvis du ønsker å oppgradere din versjon, velg "Oppgrader"-modus.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Oppgrader
     UpgradeDesc=Bruk denne modusen hvis du har erstattet gamle Dolibarr filer med filer fra en nyere versjon. Dette vil oppgradere databasen og dataene dine.
     Start=Start
     InstallNotAllowed=Installasjonsprogrammet kan ikke kjøres grunnet <b>conf.php</b> tillatelser
     YouMustCreateWithPermission=Du må lage filen %s og sette skriverettigheter på den for web-serveren under installasjonsprosessen.
    -CorrectProblemAndReloadPage=Rett problemet og trykk F5 for å laste siden på nytt.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Allerede migrert
     DatabaseVersion=Databaseversjon
     ServerVersion=Databaseserver-versjon
     YouMustCreateItAndAllowServerToWrite=Du må lage denne mappen og tiilate web-serveren å skrive til den.
     DBSortingCollation=Sorteringsrekkefølge
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Du prøver å opprette database <b>%s</b>, men for dette må Dolibarr koble til serveren <b>%s</b> med superbruker <b>%s</b> tillatelser.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Du prøver å opprette database login <b>%s</b> men for dette må Dolibarr koble til serveren <b>%s</b> med superbruker <b>%s</b> tillatelser.
    -BecauseConnectionFailedParametersMayBeWrong=Ettersom tilkobling mislyktes, må vert eller superbruker-parametrene være feil.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Ikke tilknyttede innbetalinger oppdaget av metoden %s
     RemoveItManuallyAndPressF5ToContinue=Fjern det manuelt, og trykk F5 for å fortsette.
     FieldRenamed=Felt omdøpt
    -IfLoginDoesNotExistsCheckCreateUser=Hvis login ikke eksisterer ennå, må du sjekke alternativet "Opprett bruker"
    -ErrorConnection=Server "<b>%s</b>", databasenavn "<b>%s</b>", logginn "<b>%s</b>", eller database passordet er feil, eller PHP-klient-versjon kan være for gammel i forhold til databaseversjon.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Anbefaler å installere versjon <b>%s</b> i forhold til din nåværende versjon <b>%s</b>
     InstallChoiceSuggested=<b>Installer valg foreslått av installasjonsprogrammet.</b>
    -MigrateIsDoneStepByStep=Ønsket versjonen (%s) har et gap på flere versjoner, så installasjonsveiviseren vil komme tilbake for å foreslå neste migrasjon når denne er ferdig.
    -CheckThatDatabasenameIsCorrect=Sjekk at databasenavnet "<b>%s</b>" er korrekt.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Hvis dette navnet er riktig, og at databasen ikke eksisterer ennå, må du sjekke alternativet "Opprett database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=Du merket "Opprett database". For dette, må du oppgi brukernavn/passord til superbruker (nederst på skjemaet).
    -YouAskToCreateDatabaseUserSoRootRequired=Du merket "Opprett databaseeier". For dette, må du oppgi brukernavn/passord til superbruker (nederst på skjemaet).
    -NextStepMightLastALongTime=Gjeldende trinn kan vare i flere minutter. Vennligst vent til neste skjermbildet vises helt før du fortsetter.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrer leveranse for lagring avkundeordrer
     MigrationShippingDelivery=Oppgrader lagring av leveranse
     MigrationShippingDelivery2=Oppgrader lagring av leveranse 2
     MigrationFinished=Migrasjon ferdig
    -LastStepDesc=<strong>Siste trinn</strong>: Definer login og passord du har tenkt å bruke til å koble til programvaren. Ikke mist dette da det er kontoen for å administrere alle andre.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Aktiver modulen %s
     ShowEditTechnicalParameters=Klikk her for å vise/endre avanserte parametre (expert mode)
    -WarningUpgrade=Advarsel:\nHar du kjørt en database backup først?\nDette er sterkt anbefalt, for eksempel på grunn av noen bugs inn i databasesystemer (MySQL versjon 5.5.40/41/42/43), kan noen data eller tabeller gå tapt i løpet av denne prosessen, så det er sterkt anbefalt å ha en komplett dump av databasen din før du starter migrasjon.\n\nKlikk OK for å starte migreringen ...
    -ErrorDatabaseVersionForbiddenForMigration=Din databaseversjon er %s. Den har en kritisk feil som gjør at du mister data hvis du gjør strukturelle endringer i databasen, som vil skje ved migrasjonen. På grunn av dette vil du ikke kunne migrere før databasen er oppgradert til en høyere versjon. (liste over versjoner med bekreftede feil: %s)
    -KeepDefaultValuesWamp=Du bruker Dolibarrs konfigureringsveiviser fra DoliWamp, så verdiene foreslått her, er allerede optimalisert. Endre dem bare hvis du vet hva du gjør.
    -KeepDefaultValuesDeb=Du bruker Dolibarrs konfigureringsveiviser fra en Linux-pakke (Ubuntu, Debian, Fedora ...), så verdiene foreslått her, er allerede optimalisert. Bare passordet til databaseeieren må  fylles ut. Endre andre parametere bare hvis du vet hva du gjør.
    -KeepDefaultValuesMamp=Du bruker Dolibarrs konfigureringsveiviser fra DoliMamp, så verdiene foreslått her, er allerede optimalisert. Endre dem bare hvis du vet hva du gjør.
    -KeepDefaultValuesProxmox=Du bruker Dolibarrs konfigureringsveiviser fra en Proxmox virtual appliance, så verdiene foreslått her, er allerede optimalisert. Endre dem bare hvis du vet hva du gjør.
    -UpgradeExternalModule=Kjør dedikert oppgradering av eksterne moduler
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Angi minst ett alternativ som et parameter i URL. For eksempel: '... repair.php?standard=confirmed'
     NothingToDelete=Ingenting å rengjøre/slette
     NothingToDo=Ingenting å gjøre
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Dataoverføring for leverandørordre
     MigrationProposal=Datamigrering for tilbud
     MigrationInvoice=Datamigrering for kundefakturaer
     MigrationContract=Datamigrering for kontrakter
    -MigrationSuccessfullUpdate=Oppgraderingen var vellykket 
    +MigrationSuccessfullUpdate=Oppgradering vellykket
     MigrationUpdateFailed=Oppgraderingsprosessen mislyktes
     MigrationRelationshipTables=Datamigrering for tabellrelasjoner (%s)
     MigrationPaymentsUpdate=Korreksjon av betalingsdata 
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Korreksjon av kontraktsdata
     MigrationContractsNumberToUpdate=%s kontrakt(er) å oppdatere
     MigrationContractsLineCreation=Lag kontraktlinje for kontraktreferanse %s
     MigrationContractsNothingToUpdate=Ingen flere ting å gjøre
    -MigrationContractsFieldDontExist=Felt fk_facture eksisterer ikke lenger. Ingenting å gjøre.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Korreksjon av tom dato i kontrakter
    -MigrationContractsEmptyDatesUpdateSuccess=Korreksjon av tom dato i kontrakten var vellykket
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Ingen tom dato i kontrakter behøver å korrigeres
     MigrationContractsEmptyCreationDatesNothingToUpdate=Ingen kontrakt-opprettelsesdato å korrigere
     MigrationContractsInvalidDatesUpdate=Feil verdi for korreksjon av kontraktsdato
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Leveringsoppdatering
     MigrationStockDetail=Oppdater lagerverdien av varer
     MigrationMenusDetail=Oppdater dynamiske menytabeller
     MigrationDeliveryAddress=Oppdater leveringsadresser i leveranser
    -MigrationProjectTaskActors=Datamigrering for llx_projet_task_actors tabell
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Datamigrering av feltet fk_user_resp av llx_projet å llx_element_contact
     MigrationProjectTaskTime=Oppdater tidsbruk i sekunder
     MigrationActioncommElement=Oppdater data for handlinger
     MigrationPaymentMode=Datamigrering for betalingsmodus
     MigrationCategorieAssociation=Migrer kategorier
    -MigrationEvents=Overføring av hendelser for å legge hendelseseier inn i oppdragstabellen
    -MigrationEventsContact=Overføring av hendelser for å legge til hendelseskontakt i oppdragstabell
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Oppdater verdien i enhetsfeltet llx_societe_remise
     MigrationRemiseExceptEntity=Oppdater verdien i enhetsfeltet llx_societe_remise_except
     MigrationUserRightsEntity=Oppdater enhetens feltverdi av llx_user_rights
     MigrationUserGroupRightsEntity=Oppdater enhetens feltverdi av llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Last inn modulen %s på nytt
     MigrationResetBlockedLog=Tilbakestill modul BlockedLog for v7 algoritme
    -ShowNotAvailableOptions=Vis utilgjengelige opsjoner
    -HideNotAvailableOptions=Gjem utilgjengelige opsjoner
    -ErrorFoundDuringMigration=Feil ble rapportert under migrasjonsprosessen, så neste steg er ikke tilgjengelig. For å overse feil, kan du <a href="%s">klikke her</a>, men applikasjoner eller noen funksjoner kanskje ikke fungerer som de skal før de er fikset.
    -YouTryInstallDisabledByDirLock=Programmet prøver å selv-oppgradere, men installasjons-/oppgraderingssidene er deaktivert av sikkerhetsårsaker (katalog omdøpt med .lock-suffiks). <br>
    -YouTryInstallDisabledByFileLock=Programmet prøver å selv-oppgradere, men installasjons-/oppgraderingssider er blitt deaktivert av sikkerhetsårsaker (ved å låse filen <strong> install.lock </strong> i dolibarr-dokumenter katalogen). <br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Klikk her for å gå til din applikasjon
    -ClickOnLinkOrRemoveManualy=Klikk på følgende lenke, og hvis du alltid når denne siden, må du fjerne filen install.lock i dokumentkatalogen manuelt
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/nb_NO/interventions.lang b/htdocs/langs/nb_NO/interventions.lang
    index 09ef216fcdc..0d77001a722 100644
    --- a/htdocs/langs/nb_NO/interventions.lang
    +++ b/htdocs/langs/nb_NO/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Intervensjoner
     InterventionCard=Intervensjonskort
     NewIntervention=Ny intervensjon
     AddIntervention=Opprett intervensjon
    +ChangeIntoRepeatableIntervention=Bytt til repeterbar intervensjon
     ListOfInterventions=Oversikt over intervensjoner
     ActionsOnFicheInter=Handlinger ved intervensjon
     LastInterventions=Siste %s intervensjoner
    @@ -51,7 +52,7 @@ UseDurationOnFichinter=Skjuler varighet-feltet for intervensjonsposter
     UseDateWithoutHourOnFichinter=Skjuler timer- og minutt-feltene for intervensjonsposter
     InterventionStatistics=Statistikk over intervensjoner
     NbOfinterventions=Antall intervensjonskort
    -NumberOfInterventionsByMonth=Antall intervensjonskort etter måned (validasjonsdato)
    +NumberOfInterventionsByMonth=Antall intervensjonskort etter måned (dato for validering)
     AmountOfInteventionNotIncludedByDefault=Beløp fra intervensjoner er ikke inkludert som standard i overskudd (i de fleste tilfeller er tidsplaner brukt til å regne tid brukt). Legg til alternativ PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT til 1 i hjem-oppsett-andre for å inkludere dem.
     ##### Exports #####
     InterId=Intervensjons-ID
    diff --git a/htdocs/langs/nb_NO/main.lang b/htdocs/langs/nb_NO/main.lang
    index 1bf0bb77cbc..59986f5b6dd 100644
    --- a/htdocs/langs/nb_NO/main.lang
    +++ b/htdocs/langs/nb_NO/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Klarte ikke å sende epost (avsender=%s, mottager=%s)
     ErrorFileNotUploaded=Filen ble ikke lastet oppp. Sjekk at den ikke er større en maksimumsgrensen, at det er plass igjen på disken og at det ikke ligger en fil med samme navn i katalogen.
     ErrorInternalErrorDetected=Feil oppdaget 
     ErrorWrongHostParameter=Feil vertsparameter
    -ErrorYourCountryIsNotDefined=Landet ditt er ikke definert. Gå til Hjem-Innstillinger-Rediger og fyll ut skjemaet igjen.
    -ErrorRecordIsUsedByChild=Kan ikke slette posten. Posten refereres til av minst en annen post.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Feil verdi
     ErrorWrongValueForParameterX=Feil verdi for parameter %s
     ErrorNoRequestInError=Ingen forepørsel i feil
    -ErrorServiceUnavailableTryLater=Tjenesten er utilgjengelig for øyeblikket. Prøv igjen senere.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplikate verdier i unik felttype
    -ErrorSomeErrorWereFoundRollbackIsDone=Det ble oppdaget feil. Endringer rulles tilbake.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> er ikke definert i konfigurasjonsfil <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Fant ikke brukeren <b>%s</b> i databasen.
     ErrorNoVATRateDefinedForSellerCountry=Feil: Det er ikke definert noen MVA-satser for landet '%s'.
     ErrorNoSocialContributionForSellerCountry=Feil! Ingen skatter og avgifter definert for landet '%s'
     ErrorFailedToSaveFile=Feil: Klarte ikke å lagre filen.
    -ErrorCannotAddThisParentWarehouse=Du prøver å legge til en forelder-lager som allerede er et barn av nåværende
    -MaxNbOfRecordPerPage=Maks antall poster per side
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Du er ikke autorisert for å gjøre dette.
     SetDate=Still dato
     SelectDate=Velg en dato
    @@ -78,10 +78,10 @@ FileRenamed=Filen har fått nytt navn
     FileGenerated=Filen ble opprettet
     FileSaved=Filen ble lagret
     FileUploaded=Opplastningen var vellykket
    -FileTransferComplete=Fil(er) ble lastet opp
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=Fil(er) slettet
     FileWasNotUploaded=En fil er valgt som vedlegg, men er ennå ikke lastet opp. Klikk på "Legg ved fil" for dette.
    -NbOfEntries=Antall oppføringer
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Les online-hjelp (Du må være tilknyttet internett)
     GoToHelpPage=Les hjelp
     RecordSaved=Posten er lagret
    @@ -94,7 +94,7 @@ Undefined=Udefinert
     PasswordForgotten=Glemt passordet?
     NoAccount=Ingen konto?
     SeeAbove=Se ovenfor
    -HomeArea=Hjemmeområde
    +HomeArea=Hjem
     LastConnexion=Siste forbindelse
     PreviousConnexion=Forrige tilkobling
     PreviousValue=Forrige verdi
    @@ -142,6 +142,7 @@ Closed=Lukket
     Closed2=Lukket
     NotClosed=Ikke lukket
     Enabled=Slått på
    +Enable=Aktiver
     Deprecated=Utdatert
     Disable=Slå av
     Disabled=Slått av
    @@ -153,7 +154,7 @@ Update=Oppdater
     Close=Lukk
     CloseBox=Fjern widget fra kontrollpanelet
     Confirm=Bekreft
    -ConfirmSendCardByMail=Vil du virkelig sende innholdet av dette kortet med epost til <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Slett
     Remove=Fjern
     Resiliate=Terminer
    @@ -327,7 +328,7 @@ Copy=Kopier
     Paste=Lim inn
     Default=Standard
     DefaultValue=Standardverdi
    -DefaultValues=Standardverdier
    +DefaultValues=Default values/filters/sorting
     Price=Pris
     PriceCurrency=Pris (valuta)
     UnitPrice=Enhetspris
    @@ -347,7 +348,7 @@ AmountTTCShort=Beløp (inkl. MVA)
     AmountHT=Beløp (eksl. MVA)
     AmountTTC=Beløp (inkl. MVA)
     AmountVAT=MVA beløp
    -MulticurrencyAlreadyPaid=Allerede betalt, original valuta
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Gjenstår å betale, original valuta
     MulticurrencyPaymentAmount=Beløp, original valuta
     MulticurrencyAmountHT=Beløp (eks. MVA), original valuta
    @@ -428,7 +429,7 @@ ActionNotApplicable=Ikke aktuelt
     ActionRunningNotStarted=Ikke startet
     ActionRunningShort=Pågår
     ActionDoneShort=Fullført
    -ActionUncomplete=Ikke komplett
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Siste %s koblede hendelser
     CompanyFoundation=Firma/organisasjon
     Accountant=Regnskapsfører
    @@ -436,6 +437,7 @@ ContactsForCompany=Kontakter for denne tredjeparten
     ContactsAddressesForCompany=Kontakter/adresser for denne tredjepart
     AddressesForCompany=Adresser for tredjepart
     ActionsOnCompany=Handlinger ifm. denne tredjeparten
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Hendelser om dette medlemmet
     ActionsOnProduct=Hendelser om denne varen
     NActionsLate=%s forsinket
    @@ -453,8 +455,8 @@ Generate=Generer
     Duration=Varighet
     TotalDuration=Total varighet
     Summary=Oppsummering
    -DolibarrStateBoard=Databasestatistikk
    -DolibarrWorkBoard=Kontrollpanel for åpne elementer
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=Ingen åpne elementer å behandle
     Available=Tilgjengelig
     NotYetAvailable=Ikke tilgjengelig ennå
    @@ -506,7 +508,7 @@ None=Ingen
     NoneF=Ingen
     NoneOrSeveral=Ingen eller flere
     Late=Forsinket
    -LateDesc=Forsinkelse for å bestemme om en post er forsinket eller ikke bestemmes i oppsettet. Kontakt Admin for å endre dette i Hjem - Oppsett - Varslinger.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=Ingen forsinket enhet
     Photo=Bilde
     Photos=Bilder
    @@ -530,18 +532,6 @@ September=September
     October=Oktober
     November=November
     December=Desember
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=Mai
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Okt
    -NovemberMin=Nov
    -DecemberMin=Des
     Month01=januar
     Month02=februar
     Month03=mars
    @@ -646,6 +636,8 @@ SendMail=Send e-post
     EMail=E-post
     NoEMail=Ingen e-post
     Email=E-post
    +AlreadyRead=Alreay read
    +NotRead=Ikke lest
     NoMobilePhone=Ingen mobiltelefon
     Owner=Eier
     FollowingConstantsWillBeSubstituted=Følgende konstanter vil bli erstattet med korresponderende verdi.
    @@ -677,7 +669,7 @@ NeverReceived=Aldri mottatt
     Canceled=Kansellert
     YouCanChangeValuesForThisListFromDictionarySetup=Du kan endre verdier for denne listen fra menyen Oppsett - Ordbøker
     YouCanChangeValuesForThisListFrom=Du kan endre verdier for denne listen fra menyen %s
    -YouCanSetDefaultValueInModuleSetup=Du kan sette standardverdi for nye poster i Oppsett-modulen
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Farge
     Documents=Tilknyttede filer
     Documents2=Dokumenter
    @@ -716,15 +708,15 @@ Merge=Flett
     DocumentModelStandardPDF=Standard PDF-mal
     PrintContentArea=Vis nettstedet for å skrive ut innholdet på hovedområdet
     MenuManager=Menymanager
    -WarningYouAreInMaintenanceMode=Advarsel, du er i vedlikeholds-modus, så bare <b>%s</b> har lov til å bruke programmet for øyeblikket.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Systemfeil
     CoreErrorMessage=Beklager, en feil oppsto. Kontakt din systemadministrator for å sjekke loggene eller deaktiver $dolibarr_main_prod=1 for mer informasjon
     CreditCard=Kredittkort
     ValidatePayment=Godkjenn betaling
     CreditOrDebitCard=Kreditt- eller debetkort
     FieldsWithAreMandatory=Felt med <b>%s</b> er obligatoriske
    -FieldsWithIsForPublic=Felt med <b>%s</b> er vist på den offentlige listen over medlemmene. Hvis du ikke ønsker dette, fjern merket "offentlig".
    -AccordingToGeoIPDatabase=(Ifølge GeoIP konvertering)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Linje
     NotSupported=Støttes ikke
     RequiredField=Obligatorisk felt
    @@ -732,6 +724,8 @@ Result=Resultater
     ToTest=Test
     ValidateBefore=Kortet må valideres før du bruker denne funksjonen
     Visibility=Synlighet
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privat
     Hidden=Skjult
     Resources=Ressurser
    @@ -750,6 +744,7 @@ LinkTo=Lenke til
     LinkToProposal=Lenke til tilbud
     LinkToOrder=Lenke til ordre
     LinkToInvoice=Lenke til faktura
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Lenke til leverandørordre
     LinkToSupplierProposal=Lenke til leverandørtilbud
     LinkToSupplierInvoice=Lenke til leverandørfaktura
    @@ -758,6 +753,7 @@ LinkToIntervention=Lenke til intervensjon
     CreateDraft=Lag utkast
     SetToDraft=Tilbake til kladd
     ClickToEdit=Klikk for å redigere
    +ClickToRefresh=Click to refresh
     EditWithEditor=Rediger med CKEditor
     EditWithTextEditor=Rediger med tekstbehandler
     EditHTMLSource=Rediger HTML-kilde
    @@ -772,14 +768,14 @@ ByDay=Etter dag
     BySalesRepresentative=Etter salgsrepresentant
     LinkedToSpecificUsers=Knyttet til en bestemt brukerkontakt
     NoResults=Ingen resultater
    -AdminTools=Administrative verktøy
    +AdminTools=Admin Tools
     SystemTools=Systemverktøy
     ModulesSystemTools=Modulverktøy
     Test=Test
     Element=Element
     NoPhotoYet=Ingen bilder tilgjengelig ennå
     Dashboard=Kontrollpanel
    -MyDashboard=Mitt kontrollpanel
    +MyDashboard=My Dashboard
     Deductible=Egenandel
     from=fra
     toward=mot
    @@ -802,7 +798,7 @@ PrintFile=Skriv fil %s
     ShowTransaction=Vis oppføring på bankkonto
     ShowIntervention=Vis intervensjon
     ShowContract=Vis kontrakt
    -GoIntoSetupToChangeLogo=Gå til Hjem - Oppsett - Firma for å skifte logo eller Hjem - Oppsett -  Display for å skjule.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Avvis
     Denied=Avvist
     ListOf=Liste over %s
    @@ -818,12 +814,12 @@ Sincerely=Med vennlig hilsen
     DeleteLine=Slett linje
     ConfirmDeleteLine=Er du sikker på at du vil slette denne linjen?
     NoPDFAvailableForDocGenAmongChecked=Ingen PDF var tilgjengelig for dokumentgenerering blant kontrollerte poster
    -TooManyRecordForMassAction=For mange poster valgt for massehandling. Handlingen er begrenset til en liste på%s poster.
    +TooManyRecordForMassAction=For mange poster valgt for masseutførelse. Maksimum %s poster er tillatt.
     NoRecordSelected=Ingen poster valgt
     MassFilesArea= Filområde bygget av massehandlinger
     ShowTempMassFilesArea=Vis filområde bygget av massehandlinger
    -ConfirmMassDeletion=Bekreftelse av massesletting
    -ConfirmMassDeletionQuestion=Er du sikker på at du vil slette den %s valgte posten?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Relaterte objekter
     ClassifyBilled=Klassifisert fakturert
     ClassifyUnbilled=Klassifiser ufakturert
    @@ -841,7 +837,7 @@ Calendar=Kalender
     GroupBy=Grupper etter...
     ViewFlatList=Vis liste
     RemoveString=Fjern strengen '%s'
    -SomeTranslationAreUncomplete=Noen språk kan delvis oversettes eller kan inneholde feil. Hvis du oppdager feil, kan du fikse språkfiler ved å registrere deg på <a href="https://transifex.com/projects/p/dolibarr/" target="_blank"> https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direkte nedlastingslink (offentlig/ekstern)
     DirectDownloadInternalLink=Direkte nedlastingslink (må være logget på og trenger tillatelser)
     Download=Last ned
    @@ -852,25 +848,34 @@ ModuleBuilder=Modulbygger
     SetMultiCurrencyCode=Angi valuta
     BulkActions=Massehandlinger
     ClickToShowHelp=Klikk for å vise verktøytipshjelp
    -WebSite=Webside
    -WebSites=Nettsteder
    -WebSiteAccounts=Nettstedskontoer
    +WebSite=Website
    +WebSites=Websider
    +WebSiteAccounts=Website accounts
     ExpenseReport=Reiseregning
     ExpenseReports=Utgiftsrapporter
     HR=HR
     HRAndBank=HR og Bank
     AutomaticallyCalculated=Automatisk beregnet
     TitleSetToDraft=Gå tilbake til utkast
    -ConfirmSetToDraft=Er du sikker på at du vil gå tilbake til utkaststatus?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import ID
     Events=Hendelser
    -EMailTemplates=E-postmaler
    -FileNotShared=Filen er ikke delt eksternt
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Prosjekt
     Projects=Prosjekter
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Rettigheter
     LineNb=Linje nr.
     IncotermLabel=Incotermer
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Mandag
     Tuesday=Tirsdag
    @@ -927,7 +932,7 @@ SearchIntoInterventions=Intervensjoner
     SearchIntoContracts=Kontrakter
     SearchIntoCustomerShipments=Kundeforsendelser
     SearchIntoExpenseReports=Utgiftsrapporter
    -SearchIntoLeaves=Ferier
    +SearchIntoLeaves=Leave
     CommentLink=Kommentarer
     NbComments=Antall kommentarer
     CommentPage=Kommentarfelt
    @@ -935,7 +940,7 @@ CommentAdded=Kommentar lagt til
     CommentDeleted=Kommentar slettet
     Everybody=Alle
     PayedBy=Betalt av
    -PayedTo=Betalt til
    +PayedTo=Paid to
     Monthly=Månedlig
     Quarterly=Kvartalsvis
     Annual=Årlig
    @@ -945,6 +950,8 @@ LocalAndRemote=Lokal og ekstern
     KeyboardShortcut=Tastatursnarvei
     AssignedTo=Tildelt
     Deletedraft=Slett utkast
    -ConfirmMassDraftDeletion=Bekreft massesletting av utkast
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=Fil delt via en lenke
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=Du er for øyeblikket i %s "sandbox" -modus
    +Inventory=Varetelling
    diff --git a/htdocs/langs/nb_NO/other.lang b/htdocs/langs/nb_NO/other.lang
    index 845c757bd0a..796a7678b61 100644
    --- a/htdocs/langs/nb_NO/other.lang
    +++ b/htdocs/langs/nb_NO/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Sikkerhetskode
     NumberingShort=Nr
     Tools=Verktøy
     TMenuTools=Verktøy
    -ToolsDesc=Alle diverse-verktøy som ikke er inkludert i andre menyoppføringer, samles her. <br> <br> Alle verktøyene kan nås i venstre meny.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Fødselsdag
     BirthdayDate=Fødselsdag
     DateToBirth=Fødselsdag
    @@ -23,7 +23,7 @@ MessageForm=Melding på elektronisk betalingsformular
     MessageOK=Returside for melding om validert betaling
     MessageKO=Returside for melding om avbrutt betaling
     ContentOfDirectoryIsNotEmpty=Denne katalogen er ikke tom.
    -DeleteAlsoContentRecursively=Kryss av for å slette alt innhold rekursivt
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=År av fakturadato
     PreviousYearOfInvoice=Forrige års fakturadato
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Følgende år av fakturadato
     DateNextInvoiceBeforeGen=Dato for neste faktura (før generering)
     DateNextInvoiceAfterGen=Dato for neste faktura (etter generering)
     
    -Notify_FICHINTER_ADD_CONTACT=Kontakt lagt til intervensjon
    -Notify_FICHINTER_VALIDATE=Intervensjon validert
    -Notify_FICHINTER_SENTBYMAIL=Intervensjon sendt med post
     Notify_ORDER_VALIDATE=Kundeordre validert
     Notify_ORDER_SENTBYMAIL=Kundeordre sendt i posten
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Leverandørordre sendt med post
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Leverandørordre opptatt
     Notify_ORDER_SUPPLIER_APPROVE=Leverandørordre godkjent
     Notify_ORDER_SUPPLIER_REFUSE=Leverandørordre avvist
     Notify_PROPAL_VALIDATE=Kundentilbud validert
    -Notify_PROPAL_CLOSE_SIGNED=Lukket tilbud signert
    -Notify_PROPAL_CLOSE_REFUSED=Lukket tilbud avvist
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Tilbud sendt med post
     Notify_WITHDRAW_TRANSMIT=Overføring avbrudt
     Notify_WITHDRAW_CREDIT=Kreditt tilbaketrekning
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Tredjepart opprettet
     Notify_COMPANY_SENTBYMAIL=E-poster sendt fra tredjeparts-kort
     Notify_BILL_VALIDATE=Kundefaktura validert
     Notify_BILL_UNVALIDATE=Validering fjernet på kundefaktura
    -Notify_BILL_PAYED=Kundefaktura betalt
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Kundefaktura kansellert
     Notify_BILL_SENTBYMAIL=Kundefaktura sendt i posten
     Notify_BILL_SUPPLIER_VALIDATE=Leverandørfaktura validert
    -Notify_BILL_SUPPLIER_PAYED=Leverandørfaktura betalt
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Leverandørfaktura sendt i posten
     Notify_BILL_SUPPLIER_CANCELED=Leverandørfaktura kansellert
     Notify_CONTRACT_VALIDATE=Kontrakt validert
     Notify_FICHEINTER_VALIDATE=Intervensjon validert
    +Notify_FICHINTER_ADD_CONTACT=Kontakt lagt til intervensjon
    +Notify_FICHINTER_SENTBYMAIL=Intervensjon sendt med post
     Notify_SHIPPING_VALIDATE=Leveranse validert
     Notify_SHIPPING_SENTBYMAIL=Leveranse sendt i posten
     Notify_MEMBER_VALIDATE=Medlem validert
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Opprettelse av prosjekt
     Notify_TASK_CREATE=Oppgave opprettet
     Notify_TASK_MODIFY=Oppgave endret
     Notify_TASK_DELETE=Oppgave slettet
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Se oppsett av modul %s
     NbOfAttachedFiles=Antall vedlagte filer/dokumenter
     TotalSizeOfAttachedFiles=Total størrelse på vedlagte filer/dokumenter
     MaxSize=Maksimal størrelse
     AttachANewFile=Legg ved ny fil/dokument
     LinkedObject=Lenkede objekter
    -NbOfActiveNotifications=Antall notifikasjoner (antall e-postmottakere)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hei)__\nDette er en testmelding sendt til __EMAIL__.\nDe to linjene er skilt fra hverandre med et linjeskift.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hei)__\nDette er en <b> test </b> e-post (ordtesten må være i fet skrift). De to linjene skilles med et linjeskift.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hei)__\n\nVedlagt følger faktura __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Med vennlig hilsen)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hei)__\n\nVi kan ikke se at fakturaen __REF__ er betalt. Vedlagt følger fakturaen igjen, som en påminnelse.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Med vennlig hilsen)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hei)__\n\nVedlagt tilbud __REF__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hei)__\n\nVedlagt tilbud som avtalt __REF__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hei)__\n\nVedlagt ordre __REF__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hei)__\n\nVedlagt vår bestilling __REF__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hei)__\n\nVedlagt faktura __REF__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hei)__\n\nVedlagt finner du forsendelsesinfo __REF__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hei)__\n\nVedlagt intervensjon __REF__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hei)__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hei)__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hei)__\n\n\n__(Vennlig hilsen)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=Du kan klikke på linken under for å utføre betalingen din, hvis det ikke allerede er gjort.\n\n%s\n\n
     DemoDesc=Dolibarr er en kompakt ERP/CRM med støtte for flere forretningsmoduler. En demo som viser alle moduler gir ingen mening da dette scenariet aldri skjer (flere hundre tilgjengelig). Derforer flere demoprofiler er tilgjengelig.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Installer eller aktiver GD-bibliotek i din PHP-installasjon
     ProfIdShortDesc=<b>Prof-ID %s</b> er avhengig av tredjepartens land.<br>For eksempel er det for <b>%s</b>, koden <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistikk over summen av produkter/tjenester
    -StatsByNumberOfEntities=Statistikk i antall henvisende enheter (antall fakturaer, eller ordre...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Antall tilbud
     NumberOfCustomerOrders=Antall kundeordre
     NumberOfCustomerInvoices=Antall kundefakturaer
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Antall enheter i kundefakturaer
     NumberOfUnitsSupplierProposals=Antall enheter i leverandørtilbud
     NumberOfUnitsSupplierOrders=Antall enheter på leverandørordre
     NumberOfUnitsSupplierInvoices=Antall enheter i leverandørfakturaer
    -EMailTextInterventionAddedContact=En ny intervensjon %s er blitt tildelt deg.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Intervensjonen %s har blitt validert.
     EMailTextInvoiceValidated=Fakturaen %s har blitt validert.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Tilbudet %s har blitt validert.
     EMailTextProposalClosedSigned=Forslaget %s er lukket signert.
     EMailTextOrderValidated=Ordren %s har blitt validert.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Ordren %s er godkjent av %s.
     EMailTextOrderRefused=Ordren %s har blitt avvist.
     EMailTextOrderRefusedBy=Ordren %s har blitt avvist av %s.
     EMailTextExpeditionValidated=Leveransen %s er blitt validert
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Datasett for import
     DolibarrNotification=Automatisk varsling
     ResizeDesc=Skriv inn ny bredde <b>eller</b> ny høyde. BxH forhold vil bli beholdt .
    @@ -204,7 +214,7 @@ NewLength=Ny bredde
     NewHeight=Ny høyde
     NewSizeAfterCropping=Ny størrelse etter beskjæring
     DefineNewAreaToPick=Definer nytt område på bildet for å hente (venstreklikk på bildet og dra til du kommer til motsatt hjørne)
    -CurrentInformationOnImage=Informasjon om gjeldende bilde
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Billedbehandler
     YouReceiveMailBecauseOfNotification=Du mottar denne meldingen fordi din e-post har blitt lagt til listen over mål for å bli informert om spesielle hendelser i %s programvare av %s.
     YouReceiveMailBecauseOfNotification2=Denne hendelsen er følgende:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Passordet ditt må ha minst <strong> %s </stro
     YourPasswordHasBeenReset=Ditt passord er tilbakestilt
     ApplicantIpAddress=IP-adresse til søkeren
     SMSSentTo=SMS sendt til %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Eksportområde
    @@ -248,5 +262,7 @@ WebsiteSetup=Oppsett av website-modulen
     WEBSITE_PAGEURL=Side-URL
     WEBSITE_TITLE=Tittel
     WEBSITE_DESCRIPTION=Beskrivelse
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Nøkkelord
     LinesToImport=Linjer å importere
    diff --git a/htdocs/langs/nb_NO/paybox.lang b/htdocs/langs/nb_NO/paybox.lang
    index 7e7a7be571f..95d16af2c9c 100644
    --- a/htdocs/langs/nb_NO/paybox.lang
    +++ b/htdocs/langs/nb_NO/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Oppsett av PayBox-modul
     PayBoxDesc=Denne modulen setter oppmulighet for betaling på <a href="http://www.paybox.com" target="_blank">Paybox</a> av kunder. Dette kan brukes for gratis betaling eller for betaling på et bestemt Dolibarr objekt (faktura, ordre, ...)
     FollowingUrlAreAvailableToMakePayments=Følgende nettadresser er tilgjengelige for kundene til å foreta betalinger for Dolibarr objekter
     PaymentForm=Betalingskjema
    -WelcomeOnPaymentPage=Velkommen på våre elektroniske betalingstjenester
    +WelcomeOnPaymentPage=Velkommen til vår online betalingstjeneste
     ThisScreenAllowsYouToPay=I detteskjermbildet kan du foreta en online betaling til %s.
     ThisIsInformationOnPayment=Betalingsinformasjon
     ToComplete=For å fullføre
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL for å tilby et %s brukergrensesnitt f
     ToOfferALinkForOnlinePaymentOnContractLine=URL for å tilby et %s brukergrensesnitt for online betaling av en kontraktlinje
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL for å tilby et %s brukergrensesnitt for online betaling av et fribeløp beløp
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL for å tilby et %s brukergrensesnitt for online betaling av medlemsabonnement
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Du kan også legge til URL-parameter <b>&tag=<i>verdier</i></b> til noen av disse URLene (kreves kun ved betaling av fribeløp) for å legge til dine egne merknader til betalingen kommentar.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Oppsett av din PayBox med url <b>%s</b> for å få betaling opprettet automatisk når  den er validert av paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Denne siden bekrefter at din betaling er registrert. Takk.
    -YourPaymentHasNotBeenRecorded=Din betaling ble ikke registrert og transaksjonen har blitt kansellert.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Kontoparametre
     UsageParameter=Parametre for bruk
     InformationToFindParameters=Hjelp til å finne din %s kontoinformasjon
    diff --git a/htdocs/langs/nb_NO/projects.lang b/htdocs/langs/nb_NO/projects.lang
    index f67184f793c..f4b1ebecb4a 100644
    --- a/htdocs/langs/nb_NO/projects.lang
    +++ b/htdocs/langs/nb_NO/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Er du sikker på at du vil slette dette prosjektet?
     ConfirmDeleteATask=Er du sikker på at du vil slette denne oppgaven?
     OpenedProjects=Åpne prosjekter
     OpenedTasks=Åpne oppgaver
    -OpportunitiesStatusForOpenedProjects=Mulighet-beløp på åpne prosjekter etter status
    -OpportunitiesStatusForProjects=Mulighet - beløp på prosjekter etter status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Vis prosjekt
     ShowTask=Vis oppgave
     SetProject=Sett prosjekt
     NoProject=Ingen prosjekter definert
    -NbOfProjects=Antall prosjekter
    -NbOfTasks=Antall oppgaver
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Tid brukt
     TimeSpentByYou=Tid bruk av deg
     TimeSpentByUser=Tid brukt av bruker
    @@ -77,21 +77,22 @@ Time=Tid
     ListOfTasks=Oppgaveliste
     GoToListOfTimeConsumed=Gå til liste for tidsbruk
     GoToListOfTasks=Gå til oppgaveliste
    -GoToGanttView=Go to Gantt view
    +GoToGanttView=Gå til Gantt-visning
     GanttView=Gantt visning
    -ListProposalsAssociatedProject=Oversikt over tilbud relatert til dette prosjektet
    -ListOrdersAssociatedProject=Liste over kundeordre tilknyttet prosjektet
    -ListInvoicesAssociatedProject=Liste over kundefakturaer tilknyttet prosjektet
    -ListPredefinedInvoicesAssociatedProject=Liste over kundefaktura-maler tilknyttet prosjektet
    -ListSupplierOrdersAssociatedProject=Liste over leverandørordre tilknyttet prosjektet
    -ListSupplierInvoicesAssociatedProject=Liste over leverandørfakturaer tilknyttet prosjektet
    -ListContractAssociatedProject=Liste over kontrakter knyttet til prosjektet
    -ListShippingAssociatedProject=Liste over forsendelser som er knyttet til prosjektet
    -ListFichinterAssociatedProject=Liste over intervensjoner knyttet til prosjektet
    -ListExpenseReportsAssociatedProject=Liste over utgiftsrapporter tilknyttet prosjektet
    -ListDonationsAssociatedProject=Liste over donasjoner tilknyttet prosjektet
    -ListVariousPaymentsAssociatedProject=Liste over diverse betalinger knyttet til prosjektet
    -ListActionsAssociatedProject=Liste over hendelser knyttet til prosjektet
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=Liste over tidsbruk på oppgaver i prosjektet
     ListTaskTimeForTask=Liste over tid forbruket på oppgaven
     ActivityOnProjectToday=Prosjektaktivitet i dag
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Knyttet opp til annen tredjepart
     TaskIsNotAssignedToUser=Oppgave ikke tildelt bruker. Bruk knappen '<strong> %s</strong>' for å tilordne oppgaven nå.
     ErrorTimeSpentIsEmpty=Tidsbruk er tom
     ThisWillAlsoRemoveTasks=Denne handlingen vil også slette alle oppgaver i prosjektet (<b>%s</b> oppgaver for øyeblikket), og all tidsregistrering slettes
    -IfNeedToUseOhterObjectKeepEmpty=Dersom noen objekter (faktura, ordre, ...), tilhørende en annen tredjepart, må tilknyttes prosjektet, behold denne tom. Prosjektet kan da knyttes til flere tredjeparter.
    +IfNeedToUseOtherObjectKeepEmpty=Dersom noen objekter (faktura, ordre, ...), tilhørende en annen tredjepart, må tilknyttes prosjektet, behold denne tom. Prosjektet kan da knyttes til flere tredjeparter.
     CloneProject=Klon prosjekt
     CloneTasks=Klon oppgaver
     CloneContacts=Klon kontakter
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Prosjekt %s er endret
     TaskCreatedInDolibarr=Oppgave %s opprettet
     TaskModifiedInDolibarr=Oppgave %s endret
     TaskDeletedInDolibarr=Oppgave %s slettet
    -OpportunityStatus=Mulighet-status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Tilbudsstatus
    -OpportunityProbability=Mulighet - sannsynlighet
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Mulig.sans.
    -OpportunityAmount=Mulighet beløp
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Tilbudsbeløp
     OpportunityAmountAverageShort=Gj.snitt tilbudsbeløp
     OpportunityAmountWeigthedShort=Vektet tilbudsbeløp
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Bidragsyter
     SelectElement=Velg element
     AddElement=Lenke til element
     # Documents models
    -DocumentModelBeluga=Oversikt over prosjektmaler for lenkede objekter
    -DocumentModelBaleine=Prosjekt-rapportmal for oppgaver
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planlagt arbeidsmengde
     PlannedWorkloadShort=Arbeidsmengde
     ProjectReferers=Relaterte elementer
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Prosjekter med denne brukeren som kontakt
     TasksWithThisUserAsContact=Oppgaver tildelt denne brukeren
     ResourceNotAssignedToProject=Ikke tildelt til prosjekt
     ResourceNotAssignedToTheTask=Ikke tildelt oppgaven
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Tid brukt av
     TasksAssignedTo=Oppgaver tildelt
     AssignTaskToMe=Tildel oppgaven til meg
    @@ -189,25 +192,26 @@ AssignTaskToUser=Tildel oppgave til %s
     SelectTaskToAssign=Velg oppgave å tildele...
     AssignTask=Tildel
     ProjectOverview=Oversikt
    -ManageTasks=Bruk prosjekter for å følge oppgaver og tidsbruk
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Bruk prosjekter for å følge muligheter
    -ProjectNbProjectByMonth=Antall prosjekter opprettet etter måned
    -ProjectNbTaskByMonth=Antall opprettede oppgaver etter måned
    -ProjectOppAmountOfProjectsByMonth=Tilbudsbeløp etter måned
    -ProjectWeightedOppAmountOfProjectsByMonth=Gjennomsnittsbeløp på muligheter etter måned
    -ProjectOpenedProjectByOppStatus=Åpne prosjekter etter mulighet-status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistikk over muligheter
     TasksStatistics=Statistikk over prosjekter/hovedoppgaver
     TaskAssignedToEnterTime=Oppgave tildelt. Tidsbruk kan legges til
     IdTaskTime=Oppgave-tid ID
     YouCanCompleteRef=Hvis du ønsker å tilføre referansen med litt informasjon (for å bruke det som søkefiltre ), er det anbefalt å legge til et - tegn for å skille den, så den automatiske nummereringen fortsatt fungerer korrekt for neste prosjekt. For eksempel %s-ABC. Du kan også foretrekke å legge søkenøkler til etiketten. Men beste praksis kan være å legge et dedikert felt, også kalt komplementære egenskaper.
     OpenedProjectsByThirdparties=Åpne prosjekter etter tredjeparter
    -OnlyOpportunitiesShort=Kun muligheter
    -OpenedOpportunitiesShort=Åpne muligheter
    -NotAnOpportunityShort=Ikke en mulighet
    -OpportunityTotalAmount=Totalbeløp på muligheter
    -OpportunityPonderatedAmount=Gjennomsnittsbeløp på muligheter
    -OpportunityPonderatedAmountDesc=Muligheter - beløp vektet med sannsynlighet
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Utforskning
     OppStatusQUAL=Kvalifikasjon
     OppStatusPROPO=Tilbud
    @@ -227,4 +231,6 @@ AllowCommentOnProject=Tillat brukerkommentarer på prosjekter
     DontHavePermissionForCloseProject=Du har ikke tillatelse til å lukke prosjektet %s
     DontHaveTheValidateStatus=Prosjektet %s må være åpent for å kunne lukkes
     RecordsClosed=%s prosjekt(er) lukket
    -SendProjectRef=Information project %s
    +SendProjectRef=Informasjon prosjekt %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/nb_NO/propal.lang b/htdocs/langs/nb_NO/propal.lang
    index 229e172e4c6..fdbd5bb725d 100644
    --- a/htdocs/langs/nb_NO/propal.lang
    +++ b/htdocs/langs/nb_NO/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Akseptert(kan faktureres)
     PropalStatusNotSigned=Ikke akseptert(lukket)
     PropalStatusBilled=Fakturert
     PropalStatusDraftShort=Kladd
    -PropalStatusValidatedShort=Validert
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Lukket
     PropalStatusSignedShort=Signert
     PropalStatusNotSignedShort=Ikke signert
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Tilbudet %s ble ikke funnet
     AddToDraftProposals=Legg til tilbudsutkast
     NoDraftProposals=Ingen tilbudsutkast
     CopyPropalFrom=Opprett nytt tilbud ved å kopiere et eksisterende
    -CreateEmptyPropal=Opprett tomt tilbud eller fra en liste over varer/tjenester
    +CreateEmptyPropal=Opprett et tomt tilbud eller fra listen over varer/tjenester
     DefaultProposalDurationValidity=Standard gyldighetstid for tilbud (dager)
    -UseCustomerContactAsPropalRecipientIfExist=Bruk kontaktpersonens adresse (hvis den er definert) i stedet for tredjepartens adresse
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Klon tilbud
     ConfirmClonePropal=Er du sikker på at du vil klone tilbudet <b>%s</b>?
     ConfirmReOpenProp=Er du sikker på at du vil gjenåpne tilbudet <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Kundens tilbudsoppfølger
     TypeContact_propal_external_SHIPPING=Kundekontakt for levering
     # Document models
     DocModelAzurDescription=En fullstendig tilbudsmodell (logo...)
    +DocModelCyanDescription=En fullstendig tilbudsmodell (logo...)
     DefaultModelPropalCreate=Standard modellbygging
     DefaultModelPropalToBill=Standardmal når du lukker et tilbud (som skal faktureres)
     DefaultModelPropalClosed=Standardmal når du lukker et tilbud (ufakturert)
    diff --git a/htdocs/langs/nb_NO/website.lang b/htdocs/langs/nb_NO/website.lang
    index 1b7a7a8aa23..58dade94042 100644
    --- a/htdocs/langs/nb_NO/website.lang
    +++ b/htdocs/langs/nb_NO/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kode
    -WebsiteSetupDesc=Sett inn antall ulike websider du ønsker. Deretter kan du redigere dem under menyen Websider
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Slett wedside
    -ConfirmDeleteWebsite=Er du sikker på at du vil slette denne websiden? Alle sider og innhold vil bli slettet.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type side/container
     WEBSITE_PAGE_EXAMPLE=Webside for bruk som eksempel
     WEBSITE_PAGENAME=Sidenavn/alias
     WEBSITE_ALIASALT=Alternative sidenavn/aliaser
    +WEBSITE_ALIASALTDesc=Liste over andre navn/aliaser, slik at siden også kan nås med disse andre navnene/aliasene (for eksempel det gamle navnet etter å ha gi nytt navn til aliaset for å holde tilbakekobling på gammel lenke navn fungerende). Syntaks er: <br> alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL til ekstern CSS-fil
     WEBSITE_CSS_INLINE=CSS-filinnhold (vanlig for alle sider)
     WEBSITE_JS_INLINE=Javascript-filinnhold (felles for alle sider)
     WEBSITE_HTML_HEADER=Tillegg nederst på HTML-header(felles for alle sider)
     WEBSITE_ROBOT=Robotfil (robots.txt)
    -WEBSITE_HTACCESS=Webområde. Htaccess-fil
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML-header (kun for denne siden)
     PageNameAliasHelp=Navn eller alias på siden. <br> Dette aliaset brukes også til å lage en SEO-URL når nettsiden blir kjørt fra en virtuell vert til en webserver (som Apacke, Nginx, ...). Bruk knappen "<strong>%s</strong>" for å redigere dette aliaset.
     EditTheWebSiteForACommonHeader=Merk: Hvis du vil definere en personlig topptekst for alle sider, redigerer du overskriften på nettstedsnivå i stedet for på siden/containeren.
     MediaFiles=Mediabibliotek
    -EditCss=Rediger stil/CSS eller HTML-header
    +EditCss=Edit website properties
     EditMenu=Rediger meny
     EditMedias=Rediger media
    -EditPageMeta=Rediger Metadata
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Legg til nettside
     Webpage=Nettsted/container
     AddPage=Legg til side/container
     HomePage=Hjemmeside
     PageContainer=Side/container
    -PreviewOfSiteNotYetAvailable=Forhåndsvisning av websiden din <strong>%s</strong> er ikke tilgjengelig enda. Du må først legge til en side.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Forespurt side med id %s har ikke noe innhold enda, eller cachefilen .tpl.php ble fjernet. Rediger innhold på siden for å løse dette.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Side/Container
     PageDeleted=Side/Container '%s' på nettstedet %s slettet
     PageAdded=Side/Container '%s' lagt til
    @@ -36,35 +39,37 @@ ViewPageInNewTab=Vis side i ny fane
     SetAsHomePage=Sett som startside
     RealURL=Virkelig URL
     ViewWebsiteInProduction=Vis webside ved hjelp av  hjemme-URL
    -SetHereVirtualHost=Hvis du kan opprette en dedikert Virtual Host med PHP-aktivert og en Root-katalog på  på din webserver (Apache, Nginx, ...) <br> <strong> %s </strong><br>, skriv inn det virtuelle vertsnavnet du har opprettet, her. Slik kan forhåndsvisningen gjøres ved hjelp av denne dedikerte webservertilgangen også, i stedet for bare å bruke Dolibarr-serveren.
    -YouCanAlsoTestWithPHPS=I utviklingsmiljø kan du foretrekke å teste nettstedet med PHP-innebygd webserver (PHP 5.5 nødvendig) ved å kjøre %s<strong> php -S 0.0.0.0:8080 -t  </strong>
    -CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +CheckVirtualHostPerms=Sjekk også at virtuell vert har tillatelse <strong>%s</strong> på filer til <br><strong>%s</strong>
     ReadPerm=Les
    -WritePerm=Write
    +WritePerm=Skriv
     PreviewSiteServedByWebServer=<u> Forhåndsvis %s i en ny fane. </u><br><br>%s vil bli servet av en ekstern webserver (som Apache, Nginx, IIS). Du må installere og sette opp denne serveren før du peker på katalogen:<br><strong>%s</strong><br>URL servet av ekstern server:<br><strong>%s</strong>
     PreviewSiteServedByDolibarr=<u> Forhåndsvis %s i en ny fanei.</u><br><br>%s blir servet av Dolibarr-serveren, slik at den ikke trenger at en ekstra webserver (som Apache, Nginx, IIS)  installeres.<br>Ulempen er at nettadressen til sidene ikke er brukervennlig og begynner med banen til Dolibarr. <br> URL servet av Dolibarr:<br><strong>%s</strong> <br> <br> For å bruke din egen eksterne webserver for å betjene dette nettstedet, opprett en virtuell vert på webserveren din som peker på katalogen<br><strong>%s</strong><br>, og skriv deretter inn navnet til denne virtuelle serveren og klikk på den andre forhåndsvisningsknappen .
     VirtualHostUrlNotDefined=URL til ekstern webserver ikke definert
     NoPageYet=Ingen sider ennå
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Hjelp med spesifikke syntakstips
     YouCanEditHtmlSourceckeditor=Du kan redigere HTML kildekode ved hjelp av "Kilde" -knappen i redigeringsprogrammet.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> Du kan inkludere PHP-kode i denne kilden ved hjelp av tagger <strong>&lt;?php ?&gt;</strong>. Følgende globale variabler er tilgjengelig: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> Du kan også inkludere innhold fra en annen side/container med følgende syntaks:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> Du kan omdirigere til en annen side/container med følgende syntaks:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> For å inkludere en <strong>lenke til å laste ned</strong> en fil, lagret i<strong>dokument-</strong>katalogen, bruk<strong>document.php</strong> wrapper:<br>Eksempel, for en fil i documents/ecm (må logges), ersyntaks:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For en fil i documents/medias (åpen katalog for offentlig adgang), er syntaks:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For en fil delt med en link (åpen adgang ved deling av filers hash-nøkkel), er syntaks:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> For å inkludere et <strong>bilde</strong> lagret i<strong>dokument</strong>-katalogen, bruk <strong>viewimage.php</strong> wrapper:<br>Eksempel, for et bilde i documents/medias (åpen adgang), er syntaks:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Klon side/container
     CloneSite=Klon side
    -SiteAdded=Nettsted lagt til
    +SiteAdded=Website added
     ConfirmClonePage=Vennligst skriv inn kode/alias for ny side og hvis det er en oversettelse av den klonede siden.
     PageIsANewTranslation=Den nye siden er en oversettelse av gjeldende side?
     LanguageMustNotBeSameThanClonedPage=Du kloner en side som en oversettelse. Språket på den nye siden må være forskjellig fra språket til kildesiden.
     ParentPageId=Foreldre side ID
     WebsiteId=Nettsted-ID
     CreateByFetchingExternalPage=Opprett side/container ved å hente side fra ekstern nettadresse ...
    -OrEnterPageInfoManually=Eller opprett en tom side fra grunnen av...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Hent og opprett
    -ExportSite=Eksporter nettside
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Side-ID
     Banner=Banner
     BlogPost=Blogg post
    -WebsiteAccount=Nettstedskonto
    -WebsiteAccounts=Nettstedskontoer
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Opprett nettsidekonto
     BackToListOfThirdParty=Tilbake til listen over tredjeparter
     DisableSiteFirst=Deaktiver nettsted først
    @@ -73,7 +78,7 @@ AnotherContainer=En annen container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Aktiver nettstedkontotabellen
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Aktiver tabellen for å lagre nettstedkontoer (innlogging/pass) for hvert nettsted/tredjepart
     YouMustDefineTheHomePage=Du må først definere standard startside
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Kun HTML-kilde er mulig når innholdet ble tatt fra et eksternt nettsted
     GrabImagesInto=Hent bilder som er funnet i css og side også.
     ImagesShouldBeSavedInto=Bilder bør lagres i katalogen
    @@ -82,3 +87,9 @@ SubdirOfPage=Underkatalog dedikert til side
     AliasPageAlreadyExists=Alias ​side <strong> %s </strong> eksisterer allerede
     CorporateHomePage=Firma hjemmeside
     EmptyPage=Tom side
    +ExternalURLMustStartWithHttp=Ekstern nettadresse må starte med http:// eller https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/nl_BE/admin.lang b/htdocs/langs/nl_BE/admin.lang
    index e4ea06291c4..2c87937cd25 100644
    --- a/htdocs/langs/nl_BE/admin.lang
    +++ b/htdocs/langs/nl_BE/admin.lang
    @@ -23,16 +23,13 @@ ImportMySqlDesc=Voor de invoer van een backupbestand, voert u het mysql-commando
     CommandsToDisableForeignKeysForImportWarning=Verplicht als je je sql neerslag later wil gebruiken
     ExportStructure=Struktuur
     NameColumn=Kollomennaam
    -BoxesDesc=Widgets ( grafisch object of element) zijn componenten om specifieke informatie toe te voegen om bepaalde pagina's te personaliseren. Je hebt de keuze om al dan niet de widget te laten zien door de doelpagina te selecteren en te klikken op 'Activeren', of te klikken op het vuilbakje om het uit te schakelen.
     ModulesMarketPlaceDesc=Je kan meer modules vinden door te zoeken op andere externe websites, waar je ze kan downloaden
     ModulesMarketPlaces=Zoek externe app / modules
     DoliStoreDesc=DoliStore, de officiële markt voor externe Dolibarr ERP / CRM modules
    -WebSiteDesc=Linken naar websites om naar extra modules te zoeken 
     BoxesActivated=Geactiveerde widgets
     ProtectAndEncryptPdfFilesDesc=Een beveiligd PDF document kan gelezen en afgedrukt worden met elke PDF browser of lezer. Echter, bewerken en kopiëren van gegevens in een beveiligd document is niet meer mogelijk. Door het gebruik van deze functionaliteit, is het niet mogelijk om een globaal samengevoegd PDF document te maken van meerdere beveiligde PDF documenten.
     MeasuringUnit=Maateenheid
     EMailsSetup=Email instellingen
    -SubmitTranslation=Indien de vertaling voor deze taal niet compleet is of fouten bevat in de vertaling, dan kan u die verbeteren door de bestanden in de folder <b>langs/%s</b> aan te passen en uw aanpassingen in te dienen bij www.transifex.com/dolibarr-association/dolibarr/ of via op het forum van Dolibarr : www.dolibarr.org
     SubmitTranslationENUS=Als de vertaling voor deze taal niet volledig is of een fout bevat, dan kunt u dit corrigeren door het bewuste taalbestand in de map <b>Langs/%s</b> te wijzigen en de wijzigingen op het Dolibarr forum te delen met anderen: www.dolibarr.org.
     ModulesSetup=Instellingen voor Modules / Applicaties
     ModuleFamilyProducts=Producten Beheer (PB)
    @@ -43,7 +40,6 @@ LibraryToBuildPDF=Bibliotheek om PDF bestanden te genereren.
     Module1780Name=Labels/Categorien
     Permission1004=Bekijk voorraadmutaties
     Permission1005=Creëren / wijzigen voorraadmutaties
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
     SalariesSetup=Setup van module salarissen
     MailToSendProposal=Klant voorstellen
     MailToSendOrder=Klant bestellingen
    diff --git a/htdocs/langs/nl_BE/agenda.lang b/htdocs/langs/nl_BE/agenda.lang
    index 099cda7490d..df9b1d2a2cf 100644
    --- a/htdocs/langs/nl_BE/agenda.lang
    +++ b/htdocs/langs/nl_BE/agenda.lang
    @@ -8,9 +8,7 @@ NewCompanyToDolibarr=Derde %s aangemaakt
     ContractValidatedInDolibarr=Contract %s goedgekeurd
     MemberModifiedInDolibarr=Lid %s werd aangepast
     MemberResiliatedInDolibarr=Lid %s verwijderd
    -MemberSubscriptionAddedInDolibarr=Abonnement %s voor lid %s toegevoegd
     MemberSubscriptionModifiedInDolibarr=Abonnement %s voor lid %s aangepast
    -MemberSubscriptionDeletedInDolibarr=Abonnement %s voor lid %s verwijderd
     ShipmentValidatedInDolibarr=Shipment %s goedgekeurd
     ShipmentClassifyClosedInDolibarr=Verzending %s werd geclassificeerd als gefactureerd
     ShipmentUnClassifyCloseddInDolibarr=Verzending %s werd geclassificieerd als opnieuw geopend
    @@ -30,5 +28,4 @@ AgendaUrlOptionsProject=<b>project=__PROJECT_ID__</b> om de uitvoer te beperken
     AgendaUrlOptionsNotAutoEvent=<b>notactiontype=systemauto</b> om automatische gebeurtenis uit te sluiten.
     AgendaShowBirthdayEvents=Toon verjaardagen van contacten
     AgendaHideBirthdayEvents=Verberg verjaardagen van contacten
    -AgendaExtNb=Kalender nr. %s
     ConfirmCloneEvent=Weet u zeker als u event <b>%s</b> wilt klonen?
    diff --git a/htdocs/langs/nl_BE/categories.lang b/htdocs/langs/nl_BE/categories.lang
    index 02743f2348b..fbe021eae9e 100644
    --- a/htdocs/langs/nl_BE/categories.lang
    +++ b/htdocs/langs/nl_BE/categories.lang
    @@ -62,7 +62,6 @@ CatSupLinks=Koppelingen tussen leveranciers en tags/categorieën
     CatCusLinks=Koppelingen tussen klanten/prospects en tags/categorieën
     CatProdLinks=Koppelingen tussen producten/diensten en tags/categorieën
     CatProJectLinks=Koppelingen tussen projecten en tags/categorieën
    -DeleteFromCat=Verwijderen uit tags/categorie
     CategoriesSetup=Tags/categorieën instellingen
     CategorieRecursiv=Automatische koppeling met bovenliggende tag/categorie
     CategorieRecursivHelp=Indien geactiveerd zal het product ook gekoppeld worden met de bovenliggende categorie wanneer een subcategorie toegevoegd wordt.
    diff --git a/htdocs/langs/nl_BE/companies.lang b/htdocs/langs/nl_BE/companies.lang
    index 2c4af927a47..68a7895274a 100644
    --- a/htdocs/langs/nl_BE/companies.lang
    +++ b/htdocs/langs/nl_BE/companies.lang
    @@ -1,7 +1,6 @@
     # Dolibarr language file - Source file is en_US - companies
     ConfirmDeleteCompany=Weet u zeker dat u dit bedrijf en alle geërfde gegevens wilt verwijderen?
     ConfirmDeleteContact=Weet u zeker dat u deze contactpersoon en alle geërfde gegevens wilt verwijderen ?
    -ToCreateContactWithSameName=Maakt automatisch een contact/adres met dezelfde informatie als de derde onder de derde. In de meeste gevallen is het voldoende om een derde partij aan te maken.
     RegisteredOffice=Maarschappelijke zetel
     StateShort=Staat
     PhoneShort=Telefoonnummer
    @@ -23,10 +22,8 @@ ProfId3MX=Prof Id 3 (Professioneel Charter)
     ProfId2PT=Prof. id 2 (INSZ-nummer)
     ProfId3PT=Prof. Id 3 (Commerciële fiche aantal)
     ProfId2TN=Prof. id 2 (Fiscale inschrijving)
    -CompanyHasAbsoluteDiscount=Deze afnemer heeft nog een kortingstegoed van <b> %s %s</b>
     CompanyHasCreditNote=Deze afnemer heeft nog creditnota's of eerdere stortingen voor <b> %s %s</b>
    -FromContactName=Naam:
    -CustomerCodeShort=Klant code
    +RequiredIfCustomer=Vereist als Klant een afnemer of prospect is
     ContactForOrders=Contactpersoon opdrachten
     ContactForOrdersOrShipments=Contactpersoon voor orders of zendingen
     ContactForProposals=Contactpersoon offertes
    @@ -37,17 +34,13 @@ ContactOthers=Ander
     StatusProspect1=Contact opnemen
     StatusProspect2=Contact lopende
     ChangeToContact=Status veranderen naar 'Contact opnemen'
    -ExportDataset_company_1=Derde partijen (Bedrijf/stichting/fysieke personen) en eigenschappen
    -ImportDataset_company_1=Derde partijen (Bedrijven/stichtingen/fysieke mensen) en eigenschappen
     AllocateCommercial=Toegewezen aan de verkoopsverantwoordelijke
     YouMustCreateContactFirst=U dient voor de Klant eerst contactpersonen met een e-mailadres in te stellen, voordat u kennisgevingen per e-mail kunt sturen.
    -LastModifiedThirdParties=Laatste %s bewerkte derde partijen
     ThirdPartyIsClosed=Derde partij is gesloten
     ProductsIntoElements=Lijst van producten/diensten in %s
     OutstandingBillReached=Maximum bereikt voor openstaande rekening
     MergeOriginThirdparty=Kopieer derde partij (derde partij die je wil verwijderen)
     MergeThirdparties=Voeg derde partijen samen
    -ConfirmMergeThirdparties=Bent u zeker dat u deze derde partij wil samenvoegen met de huidige? Alle gekoppelde objecten (facturen, orders, ...) worden verplaatst naar de huidige derde partij zodat u de gedupliceerde kan verwijderen.
     SaleRepresentativeLogin=Login van de verkoopsverantwoordelijke
     SaleRepresentativeFirstname=Voornaam van de verkoopsverantwoordelijke
     SaleRepresentativeLastname=Familienaam van de verkoopsverantwoordelijke
    diff --git a/htdocs/langs/nl_BE/errors.lang b/htdocs/langs/nl_BE/errors.lang
    index 0530bb76d67..dbfa039f8a4 100644
    --- a/htdocs/langs/nl_BE/errors.lang
    +++ b/htdocs/langs/nl_BE/errors.lang
    @@ -1,6 +1,5 @@
     # Dolibarr language file - Source file is en_US - errors
     ErrorBadFormatValueList=De waarde uit de lijst kan niet meer dan 1 komma bevatten :  <u>%s</u>, maar op zijn minst een : key,value
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Verkeerde Definition Of Menu Array in de Module Descriptor (verkeerde waarde voor referentie fk_menu)
    -ErrorSavingChanges=Er is een fout opgetreden tijdens het wegschrijven van de veranderingen
     WarningPasswordSetWithNoAccount=Een paswoord is aanwezig voor deze gebruiker. Alhoewel, geen gebruikers account werd aangemaakt. Dus dit paswoord is bewaard maar kan niet gebruikt worden om in te loggen in Dolibarr. Het kan zij dat het gebruikt wordt door een externe module/interface maar indien je het niet nodig acht om een login noch paswoord te definiëren voor een gebruiker,  kan je de optie "Manage a login for each member" deactiveren van de Member module setup. Indien je een login dient te begeren maar zonder paswoord, dan kun je dit veld leeg laten om deze waarschuwing te vermijden. Nota: Email kan ook gebruikt worden als login indien het lid gekoppeld is aan een gebruiker.
     WarningTooManyDataPleaseUseMoreFilters=Te veel gegevens (meer dan %s lijnen). Gebruik meer filters of zet deze constante %s op een hogere limiet.
    diff --git a/htdocs/langs/nl_BE/hrm.lang b/htdocs/langs/nl_BE/hrm.lang
    index db7fdd34570..15edcc42c1e 100644
    --- a/htdocs/langs/nl_BE/hrm.lang
    +++ b/htdocs/langs/nl_BE/hrm.lang
    @@ -7,4 +7,3 @@ DeleteEstablishment=Verwijderen inrichting
     OpenEtablishment=Open inrichting
     CloseEtablishment=Sluit inrichting
     DictionaryDepartment=HRM - afdelingen lijst
    -DictionaryFunction=HRM - Functielijst
    diff --git a/htdocs/langs/nl_BE/interventions.lang b/htdocs/langs/nl_BE/interventions.lang
    index 2251b0d6e6d..937ada94ffc 100644
    --- a/htdocs/langs/nl_BE/interventions.lang
    +++ b/htdocs/langs/nl_BE/interventions.lang
    @@ -3,10 +3,7 @@ InterventionsArea=Interventieruimte
     DraftFichinter=Concept interventie
     LastModifiedInterventions=Laatste %s gemodificeerde interventies
     InterventionStatistics=Statistieken van de interventies
    -NbOfinterventions=Nr van de interventiekaarten
    -NumberOfInterventionsByMonth=Nr van de interventiekaarten per maand (datum van goedkeuring)
     InterId=Interventie id
    -InterRef=Interventie ref.
     InterDateCreation=Datum aanmaak interventie
     InterDuration=Duur interventie
     InterStatus=Status interventie
    diff --git a/htdocs/langs/nl_BE/main.lang b/htdocs/langs/nl_BE/main.lang
    index a0479f97a11..1fc7725e51b 100644
    --- a/htdocs/langs/nl_BE/main.lang
    +++ b/htdocs/langs/nl_BE/main.lang
    @@ -22,7 +22,6 @@ FormatDateHourText=%d %B %Y %H:%M
     NoRecordFound=Geen record gevonden
     ErrorFileNotUploaded=Bestand is niet geüpload. Controleer of de grootte niet meer is dan maximaal toegestaan, of er vrije ruimte beschikbaar is op de schijf en of er niet al een bestand met dezelfde naam in deze map bestaat.
     ErrorWrongHostParameter=Verkeerde host instelling
    -ErrorRecordIsUsedByChild=Tabelregel verwijderen mislukt. Deze tabelregel wordt gebruikt door ten minste een onderliggend tabelregel.
     NotAuthorized=U bent niet toegelaten om dat te doen.
     FileWasNotUploaded=Een bestand is geselecteerd als bijlage, maar is nog niet geupload. Klik hiervoor op "Bevestig dit bestand".
     GoToHelpPage=Contacteer helpdesk
    @@ -39,7 +38,6 @@ Running=Bezig
     Categories=Tags / categorieën
     Category=Tag / categorie
     ApprovedBy2=Goedgekeurd door (tweede goedkeuring)
    -YouCanSetDefaultValueInModuleSetup=Je kan de standaard waarde gebruiken wanneer je een nieuw record plaatst in de module setup
     SetLinkToAnotherThirdParty=Link naar een derde partij
     SelectAction=Selecteer actie
     Deny=Weigeren
    @@ -48,7 +46,6 @@ Sincerely=Met vriendelijke groeten
     DeleteLine=Verwijder lijn
     ClassifyBilled=Wijzig Status naar "gefactureerd"
     Exports=Exporten
    -WebSite=Website
     ExpenseReports=Uitgaven rapporten
     Select2NotFound=Geen resultaten gevonden
     Select2LoadingMoreResults=Laden van meer resultaten...
    diff --git a/htdocs/langs/nl_BE/projects.lang b/htdocs/langs/nl_BE/projects.lang
    index 31acdc03ff4..a6538578348 100644
    --- a/htdocs/langs/nl_BE/projects.lang
    +++ b/htdocs/langs/nl_BE/projects.lang
    @@ -1,6 +1,4 @@
     # Dolibarr language file - Source file is en_US - projects
     ProjectsArea=Project Omgeving
     OpenedProjects=Open projecten
    -OpenedTasks=Open taken
    -ListOrdersAssociatedProject=Lijst van klantbestellingen die aan dit project gekoppeld zijn
     ProjectModifiedInDolibarr=Project %s gewijzigd
    diff --git a/htdocs/langs/nl_BE/sendings.lang b/htdocs/langs/nl_BE/sendings.lang
    index eda1298723c..2a89eff75d3 100644
    --- a/htdocs/langs/nl_BE/sendings.lang
    +++ b/htdocs/langs/nl_BE/sendings.lang
    @@ -9,7 +9,6 @@ ConfirmDeleteSending=Weet u zeker dat u deze verzending wilt verwijderen?
     ConfirmValidateSending=Weet u zeker dat u deze verzending met referentie <b>%s</b> wilt valideren?
     DateDeliveryPlanned=Verwachte leveringsdatum
     RefDeliveryReceipt=Referentie ontvangstbevestiging
    -StatusReceipt=Status ontvangstbevestiging
     ActionsOnShipping=Events i.v.m. verzending
     ProductQtyInSuppliersShipmentAlreadyRecevied=Ontvangen hoeveelheid producten uit geopende leveranciersbestelling
     NoProductToShipFoundIntoStock=Geen product om te verzenden gevonden in magazijn <b>%s</b>. Werk stock bij of ga terug en kies een ander magazijn.
    diff --git a/htdocs/langs/nl_BE/stocks.lang b/htdocs/langs/nl_BE/stocks.lang
    index f61acb5d25d..4a966b06687 100644
    --- a/htdocs/langs/nl_BE/stocks.lang
    +++ b/htdocs/langs/nl_BE/stocks.lang
    @@ -1,6 +1,4 @@
     # Dolibarr language file - Source file is en_US - stocks
    -Movements=Mutaties
    -ListOfStockMovements=Voorraadmutatielijst
     SelectProductInAndOutWareHouse=Kies een product, een aantal, een van-magazijn, een naar-magazijn, en klik "%s".  Als alle nodige bewegingen zijn aangeduid, klik op "%s".
     inventoryDraft=Actief
     inventoryConfirmCreate=Aanmaken
    diff --git a/htdocs/langs/nl_BE/website.lang b/htdocs/langs/nl_BE/website.lang
    index fd730ac6392..f96ede0982c 100644
    --- a/htdocs/langs/nl_BE/website.lang
    +++ b/htdocs/langs/nl_BE/website.lang
    @@ -1,7 +1,6 @@
     # Dolibarr language file - Source file is en_US - website
     DeleteWebsite=Verwijder website
     ConfirmDeleteWebsite=Weet u zeker dat u deze website wilt verwijderen? Alle pagina's en inhoud worden ook verwijderd.
    -WEBSITE_PAGENAME=Paginanaam/alias
     WEBSITE_CSS_URL=URL van extern CSS bestand
     MediaFiles=Mediabibliotheek
     EditMenu=Bewerk menu
    @@ -10,5 +9,4 @@ PreviewOfSiteNotYetAvailable=De voorvertoning van uw website <strong>%s</strong>
     ViewSiteInNewTab=Bekijk de site in een nieuwe tab
     ViewPageInNewTab=Bekijk de pagina in een nieuwe tab
     SetAsHomePage=Zet als Homepagina
    -RealURL=Echte URL
     ViewWebsiteInProduction=Bekijk website via de home URL's
    diff --git a/htdocs/langs/nl_NL/accountancy.lang b/htdocs/langs/nl_NL/accountancy.lang
    index c603eeadb92..7a6404ca69f 100644
    --- a/htdocs/langs/nl_NL/accountancy.lang
    +++ b/htdocs/langs/nl_NL/accountancy.lang
    @@ -36,15 +36,19 @@ AlreadyInGeneralLedger=Reeds doorgeboekt
     NotYetInGeneralLedger=Nog niet doorgeboekt
     GroupIsEmptyCheckSetup=Groep is leeg. Controleer instellingen bij gepersonaliseerde rekeninggroep
     DetailByAccount=Details grootboekrekening
    -AccountWithNonZeroValues=Grootboekrekeningen met boekingen
    +AccountWithNonZeroValues=Grootboekrekeningen met niet-nulwaarden
     ListOfAccounts=Overzicht grootboekrekeningen
    +CountriesInEEC=Landen in de EEG
    +CountriesNotInEEC=Landen niet in EEG
    +CountriesInEECExceptMe=Landen in de EEG behalve %s
    +CountriesExceptMe=Alle landen behalve %s
     
     MainAccountForCustomersNotDefined=De standaard grootboekrekening voor klanten is niet vastgelegd bij de instellingen
    -MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup
    +MainAccountForSuppliersNotDefined=Hoofdrekening voor leveranciers die niet zijn gedefinieerd in de configuratie
     MainAccountForUsersNotDefined=De standaard grootboekrekening voor gebruikers is niet vastgelegd bij de instellingen
     MainAccountForVatPaymentNotDefined=Standaard grootboekrekening voor betaalde BTW is niet vastgelegd bij instellingen
     
    -AccountancyArea=Accounting area
    +AccountancyArea=Boekhouding
     AccountancyAreaDescIntro=Het gebruiken van de boekhoudmodule gaat met verschillende stappen
     AccountancyAreaDescActionOnce=De volgende werkzaamheden worden maar één keer uitgevoerd of jaarlijks
     AccountancyAreaDescActionOnceBis=De volgende stappen kunnen in de toekomst een tijdsbesparing opleveren bij het aanmaken van journaalposten (bij het schrijven van de journaalposten in de boekhouding)
    @@ -55,10 +59,10 @@ AccountancyAreaDescChartModel=STAP %s: Maak rekeningschema aan vanuit menu %s
     AccountancyAreaDescChart=STAP %s: Aanmaken of controleren van het rekeningschema menu %s
     
     AccountancyAreaDescVat=STAP %s: Vastleggen grootboekrekeningen voor BTW registratie. Gebruik hiervoor menukeuze %s. 
    -AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
    +AccountancyAreaDescDefault=STAP %s: standaard grootboekrekeningen vastleggen. Gebruik hiervoor het menu-item %s.
     AccountancyAreaDescExpenseReport=STAP %s: Vastleggen grootboekrekeningen voor elke soort kostenoverzicht. Gebruik hiervoor menukeuze %s.
     AccountancyAreaDescSal=STAP %s: Vastleggen grootboekrekeningen voor salarisbetalingen. Gebruik hiervoor menukeuze %s.
    -AccountancyAreaDescContrib=STAP %s: Vastleggen grootboekrekeningen bij overige kosten (diverse belastingen). Gebruik hiervoor menukeuze %s;
    +AccountancyAreaDescContrib=STAP %s: Definieer standaard grootboekrekeningen voor speciale uitgaven (diverse belastingen). Gebruik hiervoor het menu-item %s.
     AccountancyAreaDescDonation=STAP %s : Vastleggen grootboekrekeningen voor donaties. Gebruik hiervoor menukeuze %s.
     AccountancyAreaDescMisc=STAP %s: Vastleggen standaard grootboekrekeningen voor overige transacties. Gebruik hiervoor menukeuze %s.
     AccountancyAreaDescLoan=STAP %s: Vastleggen grootboekrekeningen voor salarisbetalingen. Gebruik hiervoor menukeuze %s.
    @@ -91,7 +95,7 @@ MenuProductsAccounts=Grootboekrekeningen producten
     ProductsBinding=Grootboekrekeningen producten
     Ventilation=Koppelen aan grootboekrekening
     CustomersVentilation=Koppeling verkoopfacturen klant
    -SuppliersVentilation=Vendor invoice binding
    +SuppliersVentilation=Koppeling factuur leverancier
     ExpenseReportsVentilation=Declaraties koppelen aan rekening
     CreateMvts=Nieuwe boeking
     UpdateMvts=Aanpassing boeking
    @@ -123,23 +127,23 @@ XLineSuccessfullyBinded=%s producten/diensten met succes gekoppeld aan een groot
     XLineFailedToBeBinded=%s producten/diensten zijn niet gekoppeld aan een grootboekrekening
     
     ACCOUNTING_LIMIT_LIST_VENTILATION=Aantal verbonden elementen per pagina (voorstel: max. 50)
    -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements
    -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements
    +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin met het sorteren van de pagina "Koppelingen uit te voeren" door de meest recente elementen
    +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin met het sorteren van de pagina "Koppelen voltooid" door de meest recente elementen
     
    -ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50)
    -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50)
    +ACCOUNTING_LENGTH_DESCRIPTION=Afkorting van product- en servicebeschrijving in lijsten na x aantal tekens (Best = 50)
    +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Afkorting van omschrijving product- en services-rekeningen, afbreken in vermeldingen na x tekens (Beste = 50)
     ACCOUNTING_LENGTH_GACCOUNT=Lengte grootboekrekeningnummer (indien lengte op 6 is gezet, zal rekeningnummer 706 op het scherm worden weergegeven als 706000)
    -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen)
    +ACCOUNTING_LENGTH_AACCOUNT=Lengte van de grootboekrekeningen van derden (als u hier waarde 6 instelt, verschijnt rekening '401' op het scherm als '401000')
     ACCOUNTING_MANAGE_ZERO=Sta toe om het aantal nullen aan het einde van een account te beheren. Dit is nodig in sommige landen (zoals Zwitserland). Bij optie uit (standaard), kunt u de volgende 2 parameters instellen om te vragen of de applicatie virtuele nul toevoegt.
     BANK_DISABLE_DIRECT_INPUT=Rechtstreeks boeken van transactie in bankboek uitzetten
    -ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal
    +ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Schakel concept export van het journaal in
     
     ACCOUNTING_SELL_JOURNAL=Verkoopboek
     ACCOUNTING_PURCHASE_JOURNAL=Inkoopboek
     ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal
     ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal
     ACCOUNTING_SOCIAL_JOURNAL=Social journal
    -ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal
    +ACCOUNTING_HAS_NEW_JOURNAL=Nieuw Has Journaal
     
     ACCOUNTING_ACCOUNT_TRANSFER_CASH=Grootboekrekening kruisposten
     ACCOUNTING_ACCOUNT_SUSPENSE=Grootboekrekening kruisposten (dagboeken)
    @@ -154,14 +158,15 @@ Doctype=Type of document
     Docdate=Date
     Docref=Reference
     LabelAccount=Label account
    -LabelOperation=Label operation
    +LabelOperation=Werking label
     Sens=Sens
    +LetteringCode=Belettering code
     Codejournal=Journaal
     NumPiece=Boekingstuk
     TransactionNumShort=Transactienummer
     AccountingCategory=Gepersonaliseerde groepen
     GroupByAccountAccounting=Groeperen per grootboekrekening
    -AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports.
    +AccountingAccountGroupsDesc=Hier kunt u enkele grootboekrekening-groepen definiëren. Deze worden gebruikt voor gepersonaliseerde boekhoudrapporten.
     ByAccounts=Op grootboekrekening
     ByPredefinedAccountGroups=Op voorgedefinieerde groepen
     ByPersonalizedAccountGroups=Op gepersonaliseerde groepen
    @@ -170,12 +175,12 @@ NotMatch=Niet ingesteld
     DeleteMvt=Verwijder boekingsregels
     DelYear=Te verwijderen jaar
     DelJournal=Te verwijderen journaal
    -ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required.
    +ConfirmDeleteMvt=Hiermee worden alle regels van het grootboek voor het jaar en / of uit een specifiek journaal verwijderd. Er is minimaal één criterium vereist.
     ConfirmDeleteMvtPartial=Dit zal de boeking verwijderen uit de boekhouding (tevens ook alle regels die met deze boeking verbonden zijn)
     FinanceJournal=Finance journal
     ExpenseReportsJournal=Overzicht resultaatrekening
     DescFinanceJournal=Finance journal including all the types of payments by bank account
    -DescJournalOnlyBindedVisible=This is a view of record that are bound to an accounting account and can be recorded into the Ledger.
    +DescJournalOnlyBindedVisible=Dit is een recordweergave die is gekoppeld aan een grootboekrekening en die kan worden vastgelegd in het grootboek.
     VATAccountNotDefined=BTW rekeningen niet gedefinieerd
     ThirdpartyAccountNotDefined=Grootboekrekening van relatie niet gedefinieerd
     ProductAccountNotDefined=Grootboekrekening producten niet gedefinieerd
    @@ -189,38 +194,39 @@ ListeMvts=Omzet
     ErrorDebitCredit=Debet en Credit mogen niet gelijktijdig worden opgegeven.
     AddCompteFromBK=Grootboekrekeningen aan groep toevoegen
     ReportThirdParty=Relatie grootboeknummers
    -DescThirdPartyReport=Consult here the list of the third party customers and vendors and their accounting accounts
    +DescThirdPartyReport=Raadpleeg hier de lijst met externe klanten en leveranciers en hun financiële administratie
     ListAccounts=List of the accounting accounts
     UnknownAccountForThirdparty=Onbekende relatie grootboekrekening. Gebruikt wordt %s
     UnknownAccountForThirdpartyBlocking=Blokkeringsfout. Onbekende relatierekening. 
    -UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unknown third party account and waiting account not defined. Blocking error
    -PaymentsNotLinkedToProduct=Payment not linked to any product / service
    +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Onbekend grootboekrekening van relatie en tussenrekening niet gedefinieerd. Blokkeringsfout
    +PaymentsNotLinkedToProduct=Betaling niet gekoppeld aan een product / dienst
     
     Pcgtype=Rekening hoofdgroep
     Pcgsubtype=Rekening subgroep
    -PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criterias for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
    +PcgtypeDesc=Groep en subgroep van accounts worden gebruikt als vooraf gedefinieerde criteria voor 'filter' en 'groepering' voor sommige boekhoudrapporten. 'INCOME' of 'EXPENSE' worden bijvoorbeeld gebruikt als groepen voor accountingrekeningen van producten om het declaratie- / inkomstenrapport samen te stellen.
     
     TotalVente=Total turnover before tax
     TotalMarge=Total sales margin
     
    -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account
    -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
    -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account
    +DescVentilCustomer=Raadpleeg hier de lijst met klant factuurregels die (al dan niet) zijn gekoppeld aan een grootboekrekening vaneen product
    +DescVentilMore=In de meeste gevallen, als u vooraf gedefinieerde producten of diensten gebruikt en u het rekeningnummer instelt op de product- / servicekaart, kan de toepassing alle koppelingen tussen uw factuurregels en de boekhoudrekening van uw rekeningschema maken, met één druk op de knop <strong>"%s"</strong>. Als er geen rekenig is ingesteld op de product- / servicekaarten of als u nog enkele regels hebt die niet aan een rekening zijn gekoppeld, moet u een handmatige koppeling maken via het menu "<strong>%s</strong>".
    +DescVentilDoneCustomer=Bekijk hier de lijst met factuurregels en hun grootboekrekening
     DescVentilTodoCustomer=Koppel factuurregels welke nog niet verbonden zijn met een product grootboekrekening
    -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account:
    +ChangeAccount=Wijzig de product/dienst grootboekrekening voor geselecteerde regels met de volgende grootboekrekening:
     Vide=-
    -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account
    -DescVentilDoneSupplier=Consult here the list of the lines of invoices vendors and their accounting account
    +DescVentilSupplier=Raadpleeg hier de lijst met leveranciersfactuurregels die al dan niet gebonden zijn aan een productaccount
    +DescVentilDoneSupplier=Raadpleeg hier de lijst met de regels met leveranciers van facturen en hun grootboekrekening
     DescVentilTodoExpenseReport=Koppel kosten-boekregels aan grootboekrekeningen welke nog niet zijn vastgelegd
     DescVentilExpenseReport=Hier kunt u de lijst raadplegen van kostenregels om te koppelen aan een grootboekrekening (of niet).
    -DescVentilExpenseReportMore=Als er bij de instellingen bij de kostenposten een grootboekrekening is toegekend, zal het programma deze met een enkele muisklik <strong>"%s"</strong> kunnen koppelen. Als dit niet is gebeurt en u moet regels koppelen, dan zal dit handmatig moeten gebeuren via menu "<strong>%s</strong>".
    +DescVentilExpenseReportMore=Als u een account instelt op het type onkostendeclaratieregels, kan de toepassing alle bindingen maken tussen uw declaratieregels en de boekhoudrekening van uw rekeningschema, met één klik met de knop <strong> "%s" </ strong>. Als het account niet is ingesteld op het tarievenwoordenboek of als u nog steeds regels hebt die niet aan een account zijn gekoppeld, moet u een manuele binding maken via het menu "<strong> %s </ strong>".
     DescVentilDoneExpenseReport=Hier kunt u de lijst raadplegen van kostenregels met hun tegenrekening
     
     ValidateHistory=Automatisch boeken
     AutomaticBindingDone=Automatisch koppelen voltooid
     
     ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used
    -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s
    +MvtNotCorrectlyBalanced=Boeking is niet in balans. Debet = %s | Credit = %s
    +Balancing=Balancen
     FicheVentilation=Koppelen card
     GeneralLedgerIsWritten=Grootboek transacties
     GeneralLedgerSomeRecordWasNotRecorded=Sommige transacties konden niet worden doorgeboekt. Als er geen andere foutmelding is, komt dit waarschijnlijk omdat ze reeds zijn doorgeboekt.
    @@ -231,9 +237,9 @@ Accounted=Geboekt in grootboek
     NotYetAccounted=Nog niet doorgeboekt in boekhouding
     
     ## Admin
    -ApplyMassCategories=Apply mass categories
    -AddAccountFromBookKeepingWithNoCategories=Available acccount not yet in a personalized group
    -CategoryDeleted=Category for the accounting account has been removed
    +ApplyMassCategories=Categorieën  a-mass toepassen
    +AddAccountFromBookKeepingWithNoCategories=Beschikbaar account nog niet in een gepersonaliseerde groep
    +CategoryDeleted=Categorie van deze grootboekrekening is verwijderd
     AccountingJournals=Dagboeken
     AccountingJournal=Dagboek
     NewAccountingJournal=Nieuw dagboek
    @@ -259,15 +265,16 @@ Modelcsv_COALA=Exporteren naar Sage Coala
     Modelcsv_bob50=Exporteren naar Sage BOB 50
     Modelcsv_ciel=Exporteren naar Sage Ciel Compta of Compta Evolution
     Modelcsv_quadratus=Exporteren naar Quadratus QuadraCompta
    -Modelcsv_ebp=Export towards EBP
    -Modelcsv_cogilog=Export towards Cogilog
    +Modelcsv_ebp=Exporteer naar EBP
    +Modelcsv_cogilog=Exporteer naar Cogilog
     Modelcsv_agiris=Exporteren naar Agiris
    -Modelcsv_configurable=Export Configurable
    +Modelcsv_configurable=Configureerbare CSV export
    +Modelcsv_FEC=FEC exporteren (artikel L47 A) (test)
     ChartofaccountsId=Rekeningschema Id
     
     ## Tools - Init accounting account on product / service
     InitAccountancy=Instellen boekhouding
    -InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases.
    +InitAccountancyDesc=Deze pagina kan worden gebruikt om een ​​grootboekrekening toe te wijzen aan producten en services waarvoor geen grootboekrekening is gedefinieerd voor verkopen en aankopen.
     DefaultBindingDesc=Hier kunt u een standaard grootboekrekening koppelen aan salaris betalingen, donaties, belastingen en BTW, wanneer deze nog niet apart zijn ingesteld.
     Options=Opties
     OptionModeProductSell=Instellingen verkopen
    @@ -279,7 +286,7 @@ CleanHistory=Verwijder alle koppelingen van gekozen boekjaar,
     PredefinedGroups=Voorgedefinieerde groepen
     WithoutValidAccount=Zonder geldig toegewezen grootboekrekening
     WithValidAccount=Met geldig toegewezen grootboekrekening
    -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account
    +ValueNotIntoChartOfAccount=Deze grootboekrekening is niet aanwezig in het rekeningschema
     
     ## Dictionary
     Range=Grootboeknummer van/tot
    @@ -288,19 +295,19 @@ Formula=Formule
     
     ## Error
     SomeMandatoryStepsOfSetupWereNotDone=Sommige verplichte stappen zijn nog niet volledig uitgevoerd. Maak deze alsnog.
    -ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries)
    +ErrorNoAccountingCategoryForThisCountry=Geen rekeningschema beschikbaar voor land %s (zie Home - Setup - Woordenboeken)
     ErrorInvoiceContainsLinesNotYetBounded=U probeert regels van factuur <strong>%s</strong> door te boeken, maar er zijn regels die nog niet verbonden zijn aan een grootboekrekening. Het doorboeken is daarom geannuleerd.
    -ErrorInvoiceContainsLinesNotYetBoundedShort=Some lines on invoice are not bound to accounting account.
    -ExportNotSupported=The export format setuped is not supported into this page
    -BookeppingLineAlreayExists=Regels al aanwezig in de boekhouding
    +ErrorInvoiceContainsLinesNotYetBoundedShort=Sommige regels op de factuur zijn niet gekoppeld aan een grootboekrekening.
    +ExportNotSupported=Het ingestelde exportformaat wordt niet ondersteund op deze pagina
    +BookeppingLineAlreayExists=Reeds doorgeboekte regels
     NoJournalDefined=Geen dagboek ingesteld
     Binded=Geboekte regels
     ToBind=Te boeken regels
    -UseMenuToSetBindindManualy=Autodetectie niet mogelijk., gebruik menukeuze <a href="%s">%s</a> om koppeling handmatig te maken.
    +UseMenuToSetBindindManualy=Regels die nog niet zijn gebonden, gebruik het menu <a href="%s"> %s </a> om de binding handmatig te maken
     
     ## Import
    -ImportAccountingEntries=Accounting entries
    +ImportAccountingEntries=Boekingen
     
    -WarningReportNotReliable=Pas op. Dit overzicht is niet afkomstig vanuit de boekhouding. Hierdoor bevat deze geen modificaties verricht in de boekhouding. Als het doorboeken up-to-date is, geeft de boekhouding een beter overzicht.
    -ExpenseReportJournal=Expense Report Journal
    -InventoryJournal=Inventory Journal
    +WarningReportNotReliable=Waarschuwing, dit rapport is niet gebaseerd op het grootboek, dus bevat het niet de transactie die handmatig in het grootboek is gewijzigd. Als uw journalisatie up-to-date is, is de weergave van de boekhouding nauwkeuriger.
    +ExpenseReportJournal=Kostenoverzicht
    +InventoryJournal=Inventarisatie
    diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang
    index bbc98d46a1b..fbe47553722 100644
    --- a/htdocs/langs/nl_NL/admin.lang
    +++ b/htdocs/langs/nl_NL/admin.lang
    @@ -9,35 +9,35 @@ VersionExperimental=Experimenteel
     VersionDevelopment=Ontwikkeling
     VersionUnknown=Onbekend
     VersionRecommanded=Aanbevolen
    -FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
    -GlobalChecksum=Global checksum
    +FileCheck=Bestanden integriteits controle
    +FileCheckDesc=Met deze tool kunt u de integriteit van bestanden en instellingen van uw toepassing controleren, waarbij elk bestand wordt vergelijkt met de officiële bestanden. De waarde van sommige setup-constanten kan ook worden gecontroleerd. U kunt deze tool gebruiken om te detecteren of sommige bestanden zijn gewijzigd door bijvoorbeeld een hacker.
    +FileIntegrityIsStrictlyConformedWithReference=Bestandsintegriteit is strikt conform de referentie.
    +FileIntegrityIsOkButFilesWereAdded=Er heeft controle plaatsgevonden van de bestandsintegriteit, maar er zijn enkele nieuwe bestanden toegevoegd.
    +FileIntegritySomeFilesWereRemovedOrModified=Controle op integriteit van de bestanden is mislukt. Sommige bestanden zijn gewijzigd, verwijderd of toegevoegd.
    +GlobalChecksum=Globaal controlegetal
     MakeIntegrityAnalysisFrom=Maak integriteitsanalyse van toepassingsbestanden van
    -LocalSignature=Embedded local signature (less reliable)
    -RemoteSignature=Remote distant signature (more reliable)
    +LocalSignature=Ingebedde lokale handtekening (minder betrouwbaar)
    +RemoteSignature=Remote handtekening (betrouwbaarder)
     FilesMissing=Ontbrekende bestanden
     FilesUpdated=Bijgewerkte bestanden
    -FilesModified=Modified Files
    +FilesModified=Bijgewerkte bestanden
     FilesAdded=Toegevoegde bestanden
    -FileCheckDolibarr=Check integrity of application files
    -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package
    -XmlNotFound=Xml Integrity File of application not found
    +FileCheckDolibarr=Controleer de integriteit van applicatiebestanden
    +AvailableOnlyOnPackagedVersions=Het lokale bestand voor integriteitscontrole is alleen beschikbaar als de toepassing is geïnstalleerd vanuit een officieel pakket
    +XmlNotFound=Xml-integriteitsbestand van de toepassing is niet gevonden
     SessionId=Sessie-ID
     SessionSaveHandler=Wijze van sessieopslag
     SessionSavePath=Sessie opslaglocatie
     PurgeSessions=Verwijderen van sessies
     ConfirmPurgeSessions=Wilt u werkelijk alle sessies sluiten? Dit zal elke gebruikerssessie afbreken (behalve die van uzelf).
    -NoSessionListWithThisHandler=De waarde van 'save session handler' ingesteld in uw PHP instellingen staat het niet toe een lijst van alle lopende sessies weer te geven.
    +NoSessionListWithThisHandler=Save session handler geconfigureerd in uw PHP staat niet toe dat alle lopende sessies worden vermeld.
     LockNewSessions=Blokkeer nieuwe sessies
    -ConfirmLockNewSessions=Weet u zeker dat u alle sessies wilt beperken tot uzelf? Alleen de gebruiker <b>%s</b> kan dan nog met Dolibarr verbinden.
    +ConfirmLockNewSessions=Weet je zeker dat je elke nieuwe Dolibarr-verbinding wilt beperken tot jezelf? Alleen gebruiker <b>%s</b> kan daarna verbinding maken.
     UnlockNewSessions=Verwijder sessieblokkering
     YourSession=Uw sessie
    -Sessions=Gebruikers-sessies
    +Sessions=Gebruikerssessies
     WebUserGroup=Webserver gebruiker / groep
    -NoSessionFound=Uw PHP installatie lijkt het niet toe te staan een lijst van actieve sessies weer te geven. De map waarin sessies worden opgeslagen (<b>%s</b>) zou afgeschermd kunnen zijn (bijvoorbeeld, door OS rechten of via de PHP instelling open_basedir).
    +NoSessionFound=Je PHP lijkt geen lijst met actieve sessies toe te staan. De map die wordt gebruikt om sessies op te slaan (<b>%s</b>) kan mogelijk worden beveiligd (bijvoorbeeld door OS-machtigingen of door PHP-instructie open_basedir).
     DBStoringCharset=Database karakterset voor het opslaan van gegevens
     DBSortingCharset=Database karakterset voor het sorteren van gegevens
     ClientCharset=Cliënt tekenset
    @@ -50,14 +50,14 @@ ExternalUser=Externe gebruiker
     InternalUsers=Interne gebruikers
     ExternalUsers=Externe gebruikers
     GUISetup=Scherm
    -SetupArea=Instellingenoverzicht
    +SetupArea=Instellingen
     UploadNewTemplate=Nieuwe template(s) uploaden
     FormToTestFileUploadForm=Formulier waarmee bestandsupload kan worden getest (afhankelijk van de gekozen opties)
     IfModuleEnabled=Opmerking: Ja, is alleen effectief als module <b>%s</b> is geactiveerd
     RemoveLock=Verwijder, als het bestaat, het bestand <b>%s</b> om gebruik te kunnen maken van de updatetool.
     RestoreLock=Voorzie het bestand <b>%s</b> van 'alleen-bekijken' rechten om updaten te voorkomen.
     SecuritySetup=Beveiligingsinstellingen
    -SecurityFilesDesc=Define here options related to security about uploading files.
    +SecurityFilesDesc=Definieer hier de opties met betrekking tot beveiliging bij het uploaden van bestanden.
     ErrorModuleRequirePHPVersion=Fout, deze module vereist PHP versie %s of hoger.
     ErrorModuleRequireDolibarrVersion=Fout, deze module vereist Dolibarr versie %s of hoger.
     ErrorDecimalLargerThanAreForbidden=Fout, een nauwkeurigheid van meer dan <b>%s</b> wordt niet ondersteund.
    @@ -66,21 +66,21 @@ Dictionary=Woordenboeken
     ErrorReservedTypeSystemSystemAuto=De waarde 'system' en 'systemauto' als type zijn voorbehouden voor het systeem.  Je kan 'user' als waarde gebruiken om je eigen gegevens-record toe te voegen.
     ErrorCodeCantContainZero=Code mag geen 0 bevatten
     DisableJavascript=JavaScript en Ajax functies uitzetten (Aanbevolen voor blinden of tekst browsers)
    -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +UseSearchToSelectCompanyTooltip=Ook als u een groot aantal relaties (> 100 000) heeft, kunt u de snelheid verhogen door in de Setup-> Overig constant COMPANY_DONOTSEARCH_ANYWHERE op 1 te zetten. Zoeken wordt dan beperkt tot het begin van de reeks.
    +UseSearchToSelectContactTooltip=Ook als u een groot aantal relaties (> 100 000) heeft, kunt u de snelheid verhogen door constante CONTACT_DONOTSEARCH_ANYWHERE in Setup -> Overig op 1 te zetten. Zoeken wordt dan beperkt tot het begin van de reeks.
    +DelaiedFullListToSelectCompany=Wacht tot een toets wordt ingedrukt voordat inhoud van de keuzelijst met relaties wordt geladen.<br>Dit kan de prestaties verbeteren als u een groot aantal relaties hebt, maar dit is minder handig.
    +DelaiedFullListToSelectContact=Wacht tot een toets wordt ingedrukt voordat inhoud van Contact combo-lijst wordt geladen. <br> Dit kan de prestaties verbeteren als je een groot aantal contacten hebt, maar het is minder handig)
     NumberOfKeyToSearch=Aantal karakters om een zoekopdracht te initiëren: %s
     NotAvailableWhenAjaxDisabled=Niet beschikbaar wanneer AJAX functionaliteit uitgeschakeld is
    -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    +AllowToSelectProjectFromOtherCompany=Bij een document van een relatiej, kan een project worden gekozen dat is gekoppeld aan een relatie
     JavascriptDisabled=JavaScript uitgeschakeld
     UsePreviewTabs=Gebruik voorbeelweergavetabbladen
     ShowPreview=Toon voorbeelweergave
     PreviewNotAvailable=Voorbeeldweergave niet beschikbaar
     ThemeCurrentlyActive=Huidige thema
     CurrentTimeZone=Huidige Tijdszone
    -MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +MySQLTimeZone=Tijdzone(database)
    +TZHasNoEffect=Datums worden opgeslagen en geretourneerd door de databaseserver alsof ze werden bewaard als ingeleverde reeks. De tijdzone heeft alleen effect wanneer de UNIX_TIMESTAMP-functie wordt gebruikt (die niet door Dolibarr zou moeten worden gebruikt, dus database-TZ zou geen effect moeten hebben, zelfs als deze werd gewijzigd nadat gegevens waren ingevoerd).
     Space=Ruimte
     Table=Tabel
     Fields=Velden
    @@ -111,7 +111,7 @@ NotConfigured=Module/applicatie niet geconfigureerd
     Active=Actief
     SetupShort=Instellingen
     OtherOptions=Overige opties
    -OtherSetup=Overige instellingen
    +OtherSetup=Andere instellingen
     CurrentValueSeparatorDecimal=Decimaal scheidingsteken
     CurrentValueSeparatorThousand=Duizend scheidingsteken
     Destination=Bestemming
    @@ -126,8 +126,8 @@ PHPTZ=Tijdzone binnen de PHP server
     DaylingSavingTime=Zomertijd (gebruiker)
     CurrentHour=Huidige tijd op server
     CurrentSessionTimeOut=Huidige sessie timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=Om een ​​andere PHP-tijdzone in te stellen (niet verplicht), kunt u proberen een .htaccess-bestand toe te voegen met de volgende regel: "SetEnv TZ Europe / Paris"
    +HoursOnThisPageAreOnServerTZ=Waarschuwing, in tegenstelling tot andere schermen, bevinden de uren op deze pagina zich niet in uw lokale tijdzone, maar in de tijdzone van de server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Maximaal aantal regels voor widgets
    @@ -135,7 +135,7 @@ AllWidgetsWereEnabled=Alle beschikbare widgets zijn geactiveerd
     PositionByDefault=Standaard volgorde
     Position=Positie
     MenusDesc=Menu-managers bepalen de inhoud van de twee menubalken in (horizontaal en verticaal).
    -MenusEditorDesc=Met behulp van de menu-editor kunt u gepersonaliseerde items in menu's instellen. Gebruik deze functionaliteit zorgvuldig om te vermijden dat Dolibarr instabiel wordt en menu-items permanent onbereikbaar worden.<br>Sommige modules voegen items toe in de menu's (in de meeste gevallen in het menu <b>Alle</b>). Als u sommige van deze items abusievelijk verwijderd, dan kunt u ze herstellen door de module eerst uit te schakelen en daarna opnieuw in te schakelen. 
    +MenusEditorDesc=Met behulp van de menu-editor kunt u gepersonaliseerde items in menu's instellen. Gebruik deze functionaliteit zorgvuldig om te vermijden dat Dolibarr instabiel wordt en menu-items permanent onbereikbaar worden.<br>Sommige modules voegen items toe in de menu's (in de meeste gevallen in het menu <b>Alle</b>). Als u sommige van deze items abusievelijk verwijderd, dan kunt u ze herstellen door de module eerst uit te schakelen en daarna opnieuw in te schakelen.
     MenuForUsers=Gebruikersmenu
     LangFile=.lang bestand
     System=Systeem
    @@ -151,7 +151,7 @@ PurgeDeleteAllFilesInDocumentsDir=Verwijder alle bestanden in de map <b>%s.</b>.
     PurgeRunNow=Nu opschonen
     PurgeNothingToDelete=Geen directory of bestanden om te verwijderen.
     PurgeNDirectoriesDeleted=<b>%s</b> bestanden of mappen verwijderd.
    -PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
    +PurgeNDirectoriesFailed=Kan <b>%s</b>bestanden of mappen niet verwijderen.
     PurgeAuditEvents=Verwijder alle beveiligingsgerelateerde gebeurtenissen
     ConfirmPurgeAuditEvents=Weet u zeker dat u alle beveiligingsgerelateerde gebeurtenissen wilt verwijderen? Alle beveiligingsgerelateerde logbestanden zullen worden verwijderd. Er zullen geen andere gegevens worden verwijderd.
     GenerateBackup=Genereer backup
    @@ -190,29 +190,29 @@ EncodeBinariesInHexa=Codeer binaire data in hexadecimalen
     IgnoreDuplicateRecords=Negeer fouten van dubbele tabelregels (INSERT negeren)
     AutoDetectLang=Automatisch detecteren (taal van de browser)
     FeatureDisabledInDemo=Functionaliteit uitgeschakeld in de demonstratie
    -FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Vakken zijn delen op het scherm die bepaalde informatie tonen op geselecteerde pagina's. U kunt een vak in- of uitschakelen door de doelpagina te selecteren en op "activeren" te klikken of door op de prullenbak te klikken om het vak uit te schakelen.
    +FeatureAvailableOnlyOnStable=Functie alleen beschikbaar bij officiële stabiele versies
    +BoxesDesc=Widgets zijn componenten die informatie tonen die u kunt toevoegen om sommige pagina's te personaliseren. U kunt kiezen of u de widget wilt weergeven of niet door de doelpagina te selecteren en op 'Activeren' te klikken of door op de prullenbak te klikken om deze uit te schakelen.
     OnlyActiveElementsAreShown=Alleen elementen van ingeschakelde <a href="%s">modules</a> worden getoond.
    -ModulesDesc=Dolibarr modules bepalen welke functionaliteit is ingeschakeld in de software. Voor enkele applicatiemodules is het noodzakelijk, zodra de module is ingeschakeld, rechten te verlenen aan de gebruikers. Klik op de knop uit / aan in de kolom "Status" om een module / functionaliteit in of uit te schakelen.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=U kunt meer modules downloaden van externe websites op het internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Vind externe apps of modules
     ModulesDevelopYourModule=Ontwikkel uw eigen app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Nieuw
     FreeModule=Gratis
     CompatibleUpTo=Compatibel met versie %s
    -NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
    -CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s - Max %s).
    -SeeInMarkerPlace=See in Market place
    +NotCompatible=Deze module lijkt niet compatibel met uw Dolibarr %s (Min %s - Max %s).
    +CompatibleAfterUpdate=Deze module vereist een update van uw Dolibarr %s (Min %s - Max %s).
    +SeeInMarkerPlace=Zie op de Marktplaats
     Updated=Bijgewerkt
    -Nouveauté=Novelty
    +Nouveauté=Nieuwigheid
     AchatTelechargement=Kopen/Downloaden
    -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
    +GoModuleSetupArea=Om een nieuwe module te activeren of te installeren, ga naar module setup <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, de officiële markt voor externe Dolibarr ERP / CRM modules.
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Websiteaanbieders waarop u naar meer modules kunt zoeken
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=Externe websites voor meer add-on (niet-core) modules ...
     DevelopYourModuleDesc=Enkele oplossingen om uw eigen module te ontwikkelen ...
     URL=Link
     BoxesAvailable=Beschikbare widgets
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Geen onversleutelde wachtwoorden opslaan in de database,
     MainDbPasswordFileConfEncrypted=Databasewachtwoord versleuteld opslaan in conf.php (Activering aanbevolen)
     InstrucToEncodePass=Om je paswoord versleuteld (gecodeerd) te krijgen in dit bestand <b>conf.php</b> , vervang de regel <br><b>$dolibarr_main_db_pass="...";</b><br>door<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Om je paswoord gedecodeerd te verkrijgen in dit bestand <b>conf.php</b>,  vervang de regel <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>door<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Bescherming van gecreëerde PDF files. (Activering NIET aanbevolen, omdat dit de aanmaak van meerdere bestanden onmogelijk maakt)
    +ProtectAndEncryptPdfFiles=Bescherming van gegenereerde PDF-bestanden NIET aanbevolen (breekt massale PDF-generatie)
     ProtectAndEncryptPdfFilesDesc=Bescherming van PDF files, deze kunnen nog gelezen en afgedrukt worden met behulp van een PDF-lezer. Echter, het bewerken en kopiëren is niet meer mogelijk. Let op dat door het gebruik van deze functionaliteit, de bouw van een globale samengevoegde PDF niet werkt zoals bij onbetaalde facturen.
     Feature=Functionaliteit
     DolibarrLicense=Licentie
    @@ -246,8 +246,8 @@ ExternalResources=Externe bronnen
     SocialNetworks=Sociale netwerken
     ForDocumentationSeeWiki=Documentatie voor gebruikers of ontwikkelaars kunt u inzien door <br>te kijken op de Dolibarr Wiki-pagina's:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Voor alle andere vragen / hulp, kunt u gebruik maken van het Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=Dit scherm kan u helpen om ondersteuning voor Dolibarr te krijgen.
    -HelpCenterDesc2=Kies de ondersteuning die overeenkomt met uw behoeften door te klikken op de betreffende link (Sommige van deze diensten zijn alleen beschikbaar in het <b>Engels</b>).
    +HelpCenterDesc1=Hier enkele bronnen voor hulp en ondersteuning met Dolibarr.
    +HelpCenterDesc2=Enkele bronnen zijn alleen beschikbaar in het <b>Engels</b>.
     CurrentMenuHandler=Huidige menuverwerker
     MeasuringUnit=Meeteenheid
     LeftMargin=Linker marge
    @@ -258,36 +258,40 @@ SpaceX=Ruimte X
     SpaceY=Ruimte Y
     FontSize=Formaat lettertype
     Content=Inhoud
    -NoticePeriod=Notice period
    +NoticePeriod=Opzegtermijn
     NewByMonth=Nieuw per maand
     Emails=E-mails
     EMailsSetup=E-mail instellingen
    -EMailsDesc=Met behulp van deze pagina kunt u PHP instellingen om e-mails te verzenden overschrijven. Op Unix / Linux besturingssystemen zijn deze in de meeste gevallen goed ingesteld en zijn deze instellingen nutteloos.
    +EMailsDesc=Op deze pagina kunt u uw standaard PHP-parameters voor e-mailverzending negeren. In de meeste gevallen op Unix / Linux OS is de PHP-instelling correct en zijn deze parameters niet nodig.
     EmailSenderProfiles=Verzender e-mails profielen
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS-poort (standaard in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (standaard in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS-poort (niet gedefinieerd in PHP op Unix-achtige systemen)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS-host (Niet gedefinieerd in PHP op Unix-achtige systemen)
    -MAIN_MAIL_EMAIL_FROM=E-mail afzender voor automatische e-mails (Standaard in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Stuur systematisch een verborgen zogenoemde 'Carbon-Copy' van alle verzonden e-mails naar
    -MAIN_DISABLE_ALL_MAILS=Schakel het versturen van alle e-mails uit (voor testdoeleinden of demonstraties)
    -MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Te gebruiken methode om e-mails te verzenden
    -MAIN_MAIL_SMTPS_ID=SMTP-gebruikersnaam indien verificatie vereist
    -MAIN_MAIL_SMTPS_PW=SMTP-wachtwoord indien verificatie vereist
    -MAIN_MAIL_EMAIL_TLS= Gebruik TLS (SSL) encryptie
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Schakel alle SMS verzendingen (voor test doeleinden of demo)
    +MAIN_MAIL_SMTP_PORT=SMTP / SMTPS-poort (standaardwaarde in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS-host (standaardwaarde in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS-poort (niet gedefinieerd in PHP op Unix-achtige systemen)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (niet gedefinieerd in PHP op Unix-achtige systemen)
    +MAIN_MAIL_EMAIL_FROM=E-mail afzender voor automatische e-mails (standaardwaarde in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=E-mailadres voor gebruikt foute e-mails (velden 'Fout-Aan' in verzonden e-mails)
    +MAIN_MAIL_AUTOCOPY_TO= Kopieer (Bcc) alle verzonden e-mails naar
    +MAIN_DISABLE_ALL_MAILS=Schakel alle e-mailverzending uit (voor testdoeleinden of demo's)
    +MAIN_MAIL_FORCE_SENDTO=Stuur alle e-mails naar (in plaats van echte ontvangers, voor testdoeleinden)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=E-mail verzendmethode
    +MAIN_MAIL_SMTPS_ID=SMTP ID (als het verzenden vanaf de server authenticatie vereist)
    +MAIN_MAIL_SMTPS_PW=SMTP-wachtwoord (als het verzenden vanaf de server authenticatie vereist)
    +MAIN_MAIL_EMAIL_TLS=Gebruik TLS (SSL) encryptie
    +MAIN_MAIL_EMAIL_STARTTLS=Gebruik TLS (STARTTLS) -codering
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Schakel alle sms-verzending uit (voor testdoeleinden of demo's)
     MAIN_SMS_SENDMODE=Methode te gebruiken om SMS te verzenden
    -MAIN_MAIL_SMS_FROM=Standaard afzender telefoonnummer voor Sms versturen
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Standaard afzender telefoonnummer voor SMS-verzending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Standaard afzender e-mail voor handmatig verzenden (e-mailadres gebruiker of bedrijfs e-mail)
     UserEmail=E-mailadres gebruiker
     CompanyEmail=E-mailadres bedrijf
     FeatureNotAvailableOnLinux=Functionaliteit niet beschikbaar op Unix-achtige systemen. Test uw lokale 'sendmail' programma.
    -SubmitTranslation=Indien de vertaling voor deze taal nog niet volledig is of je vindt fouten, dan kan je dit verbeteren door de bestanden te editeren in de volgende directory <b>langs/%s</b> en stuur uw wijzigingen door naar www.transifex.com/dolibarr-association/dolibarr/
    -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslationENUS=Als vertaling voor deze taal niet compleet is of als u fouten aantreft, kunt u dit corrigeren door bestanden in map <b>langs / %s</b> te bewerken en gewijzigde bestanden in te dienen op dolibarr.org/forum of voor ontwikkelaars op github.com/Dolibarr/dolibarr.
     ModuleSetup=Module-instellingen
     ModulesSetup=Instellingen van modules & applicatie
     ModuleFamilyBase=Systeem
    @@ -301,23 +305,23 @@ ModuleFamilyTechnic=Hulpmiddelen voor multi-modules
     ModuleFamilyExperimental=Experimentele modules
     ModuleFamilyFinancial=Financiële Modules (Boekhouding / Bedrijfsfinanciën)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Websites en andere frontale applicaties
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces met externe systemen
     MenuHandlers=Menuverwerkers
     MenuAdmin=Menu wijzigen
     DoNotUseInProduction=Niet in productie gebruiken
     ThisIsProcessToFollow=Dit zijn de stappen om te verwerken:
    -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
    +ThisIsAlternativeProcessToFollow=Dit is een alternatieve setup om handmatig te verwerken:
     StepNb=Stap %s
    -FindPackageFromWebSite=Vind een pakket die u de functionaliteit geeft die u wilt (bijvoorbeeld op de officiële website van %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download het pakket (voorbeeld vanaf de officiële web site %s).
    -UnpackPackageInDolibarrRoot=Pak bestand uit op de Dolibarr server directory toegewezen aan de externe modules: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module geïnstalleerd. U moet deze nog wel activeren en instellen: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Pak de uitgepakte bestanden uit of pak deze uit in de servermap welke is toegewezen aan Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=De alternatieve hoofdmap is niet gedefinieerd in een bestaande map.<br>
     InfDirAlt=Vanaf versie 3 is het mogelijk om een alternatieve root directory te definiëren.  Dit stelt je in staat om op dezelfde plaats zowel plug-ins als eigen templates te bewaren. <br>Maak gewoon een directory op het niveau van de root van Dolibarr (bv met de naam: aanpassing).<br>
     InfDirExample=<br>Leg dit vast in het bestand <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>Als deze lijnen zijn inactief gemaakt met een "#" teken, verwijder dit teken dan om ze te activeren.
    -YouCanSubmitFile=Voor deze stap kunt u een .zip bestand of module pakket hier verzenden :
    +YouCanSubmitFile=Als alternatief kunt u de module als .zip-bestandspakket uploaden:
     CurrentVersion=Huidige versie van Dolibarr
     CallUpdatePage=Ga naar de pagina die de databasestructuur en gegevens bijwerkt: %s.
     LastStableVersion=Laatste stabiele versie
    @@ -325,7 +329,7 @@ LastActivationDate=Laatste activeringsdatum
     LastActivationAuthor=Laatste activeringsauteur
     LastActivationIP=Laatste activerings-IP
     UpdateServerOffline=Updateserver offline
    -WithCounter=Manage a counter
    +WithCounter=Beheer een teller
     GenericMaskCodes=U kunt elk gewenst maskernummer invoeren. In dit masker, kunnen de volgende tags worden gebruikt:<br><b>{000000}</b> correspondeert met een nummer welke vermeerderd zal worden op elke %s. Voer zoveel nullen in als de gewenste lengte van de teller. De teller wordt aangevuld met nullen vanaf links zodat er zoveel nullen zijn als in het masker.<br><b>{000000+000}</b> hetzelfde als voorgaand maar een offset corresponderend met het nummer aan de rechterkant van het + teken is toegevoegd startend op de eerste %s. <br><b>{000000@x}</b> hetzelfde als voorgaande maar de teller wordt gereset naar nul, wanneer maand x is bereikt (x tussen 1 en 12). Als deze optie is gebruikt en x is 2 of hoger, dan is de volgorde {yy}{mm} of {yyyy}{mm} ook vereist. <br><b>{dd}</b> dag (01 t/m 31).<br><b>{mm}</b> maand (01 t/m 12).<br><b>{yy}</b>, <b>{yyyy}</b> of <b>{y}</b> jaat over 2, 4 of 1 nummer(s). <br>
     GenericMaskCodes2=<b>{cccc}</b>de clientcode op n tekens<br> <b>{cccc000}</b> de cliëntcode op n tekens wordt gevolgd door een teller die is toegewezen aan de klant. Deze teller voor de klant wordt op hetzelfde moment gereset als de globale teller.<br><b> {tttt}</b> De code van het type van derden op n tekens (zie menu Home - Setup - Woordenboek - Soorten derden) . Als u deze label toevoegt, is de teller anders voor elk type derde partij.<br>
     GenericMaskCodes3=Alle andere karakters in het masker zullen intact blijven.<br>Spaties zijn niet toegestaan.<br>
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Ga naar de wiki-pagina voor een opsomming van alle acteurs en
     UseACacheDelay= Ingestelde vertraging voor de cacheexport in secondes (0 of leeg voor geen cache)
     DisableLinkToHelpCenter=Verberg de link "<b>ondersteuning of hulp nodig</b>" op de inlogpagina
     DisableLinkToHelp=Verberg de link naar online hulp "<b>%s</b>"
    -AddCRIfTooLong=Er zijn geen automatische regeleinden, dus als uw tekst in de documenten te lang is, moet u zelf regeleinden in de teksteditor invoeren.
    -ConfirmPurge=Weet u zeker dat u ALLES wilt verwijderen? <br> Dit zal alle bestanden definitief verwijderen zonder de mogelijkheid deze terug te halen (ECM bestanden, gekoppelde bestanden....).
    +AddCRIfTooLong=Er is geen automatische tekstterugloop, tekst die te lang is, wordt niet weergegeven in documenten. Voeg zo nodig carriage returns toe in het tekstgebied.
    +ConfirmPurge=Weet u zeker dat u deze zuivering wilt uitvoeren? <br> Hiermee worden al uw gegevensbestanden permanent verwijderd zonder dat ze worden teruggezet (ECM-bestanden, bijgevoegde bestanden ...).
     MinLength=Minimale lengte
     LanguageFilesCachedIntoShmopSharedMemory=Bestanden .lang in het gedeelde geheugen
     LanguageFile=Taalbestand
    -ExamplesWithCurrentSetup=Voorbeelden met de huidige actieve configuratie
    +ExamplesWithCurrentSetup=Voorbeelden met huidige configuratie
     ListOfDirectories=Lijst van OpenDocument sjablonenmappen
     ListOfDirectoriesForModelGenODT=Lijst van de directorie's die de templates bevatten in OpenDocument formaat.<br><br>Plaats hier het volledige pad van de directorie.<br>Voeg een nieuwe lijn tussen elke directorie.<br>Om een directorie van de GED module bij te voegen, voeg hier <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b> toe.<br><br>Bestanden in deze directorie's moeten eindigen op <b>.odt</b> of <b>.ods</b>.
    -NumberOfModelFilesFound=Aantal ODT/ODS templates gevonden in deze mappen
    +NumberOfModelFilesFound=Aantal  gevonden ODT/ODS-sjabloonbestanden
     ExampleOfDirectoriesForModelGen=Voorbeelden van de syntaxis: <br>c:\\mijndir<br>/home/mijndir<br>DOL_DATA_ROOT/ECM/ecmdir
     FollowingSubstitutionKeysCanBeUsed=Door het plaatsen van de volgende velden in het sjabloon krijgt u een vervanging met de aangepaste waarde bij het genereren van het document:
     FullListOnOnlineDocumentation=De complete lijst met beschikbare velden is te vinden in de gebruikersdocumentatie op de Wiki van Dolibar: http://wiki.dolibarr.org.
    @@ -365,36 +369,36 @@ KeyForWebServicesAccess=Sleutel om webdiensten te gebruiken (waarde "dolibarrkey
     TestSubmitForm=Invoer testformulier
     ThisForceAlsoTheme=Met behulp van dit menu manager zal ook gebruik maken van een eigen thema wat er keuze van de gebruiker. Ook dit menu manager gespecialiseerd smartphones niet werkt op alle smartphone. Gebruik een ander menu manager als u problemen ondervindt op het jouwe.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion time-out
    +ConnectionTimeout=Time-out  verbinding
     ResponseTimeout=Time-out antwoord
     SmsTestMessage=Testbericht van __PHONEFROM__ naar __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> moet eerst worden ingeschakeld als je deze functie wilt gebruiken.
     SecurityToken=Sleutel tot URL beveiligen
    -NoSmsEngine=Geen SMS afzender manager beschikbaar. SMS afzender manager zijn niet geïnstalleerd met de standaard distributie (omdat ze afhankelijk is van een externe leverancier), maar u kunt vinden op een aantal http://www.dolistore.com
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=U kunt elke globale opties met betrekking tot de PDF-generatie
    +PDFDesc=U kunt elke algemene optie met betrekking tot de PDF-generatie instellen
     PDFAddressForging=Regels aan te pakken dozen te smeden
    -HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
    -PDFRulesForSalesTax=Rules for Sales Tax / VAT
    -PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideAnyVATInformationOnPDF=Alle informatie met betrekking tot omzet-belasting / btw op gegenereerde PDF verbergen
    +PDFRulesForSalesTax=Regels voor omzet-belasting/btw
    +PDFLocaltax=Regels voor %s
    +HideLocalTaxOnPDF=Verberg %s-tarief in pdf-kolom BTW
     HideDescOnPDF=Verberg productbeschrijving op gemaakte PDF
     HideRefOnPDF=Verberg productreferentie op gemaakte PDF
     HideDetailsOnPDF=Laat productdetails niet zien in PDF
    -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position
    +PlaceCustomerAddressToIsoLocation=Gebruik de Franse standaardpositie (La Poste) als positie van het klant-adres
     Library=Bibliotheek
     UrlGenerationParameters=Parameters om URL beveiligen
     SecurityTokenIsUnique=Gebruik een unieke securekey parameter voor elke URL
     EnterRefToBuildUrl=Geef referentie voor object %s
     GetSecuredUrl=Get berekend URL
    -ButtonHideUnauthorized=Verberg knoppen i.p.v. ontoegankelijk maken voor niet beheerders.
    +ButtonHideUnauthorized=Verberg de knoppen voor niet-beheerders bij ongeoorloofde acties in plaats van grijs gekleurde, uitgeschakelde knoppen
     OldVATRates=Oud BTW tarief
     NewVATRates=Nieuw BTW tarief
     PriceBaseTypeToChange=Wijzig op prijzen waarop een base reference waarde gedefiniëerd is
     MassConvert=Start algemene omzetting
     String=String
     TextLong=Lange tekst
    -HtmlText=Html text
    +HtmlText=HTML-tekst
     Int=Integer
     Float=Float
     DateAndTime=Datum en uur
    @@ -408,19 +412,19 @@ ExtrafieldSelect = Keuze lijst
     ExtrafieldSelectList = Kies uit tabel
     ExtrafieldSeparator=Scheidingsteken (geen veld)
     ExtrafieldPassword=Wachtwoord
    -ExtrafieldRadio=Radio buttons (alleen keuze)
    +ExtrafieldRadio=Radio buttons (slechts één keuze)
     ExtrafieldCheckBox=Checkboxen
     ExtrafieldCheckBoxFromList=Checkboxen uit tabel
     ExtrafieldLink=Link naar een object
     ComputedFormula=Berekend veld
    -ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ComputedFormulaDesc=U kunt hier een formule invoeren met andere eigenschappen van het object of een willekeurige PHP-codering om een ​​dynamische berekende waarde te krijgen. U kunt alle PHP-compatibele formules gebruiken, inclusief de "?" voorwaardeoperator en volgend globaal object: <strong>$ db, $ conf, $ langs, $ mysoc, $ user, $ object</strong>. <br> <strong> WAARSCHUWING </strong>: slechts enkele eigenschappen van $ object mogelijk beschikbaar. Als u eigenschappen nodig hebt die niet zijn geladen, haalt u het object eenvoudig in uw formule op, zoals in het tweede voorbeeld. <br> Het gebruik van een berekend veld betekent dat u geen waarde uit de interface kunt invoeren. Ook als er een syntaxisfout is, kan de formule niets retourneren. <br><br> Voorbeeld van formule:<br>$ object-> id <10? round ($ object-> id / 2, 2): ($ object-> id + 2 * $ user-> id) * (int) substr ($ mysoc-> zip, 1, 2) <br><br> Voorbeeld om object opnieuw te laden <br> (($ reloadedobj = nieuwe Societe ($ db)) && ($ reloadedobj-> fetch ($ obj-> id? $ Obj-> id: ($ obj-> rowid? $ Obj-> rowid: $ object-> id))> 0))? $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1' <br> <br> Ander voorbeeld van formule om load van object en zijn bovenliggende object te forceren: <br> (($ reloadedobj = nieuwe taak ($ ​​db)) && ($ reloadedobj-> fetch ($ object-> id)> 0) && ($ secondloadedobj = nieuw project ($ db)) && ($ secondloadedobj-> fetch ($ reloadedobj-> fk_project )> 0))? $ secondloadedobj-> ref: 'Ouderproject niet gevonden'
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=Lijst met waarden moet regels zijn met een indelingssleutel, waarde (waarbij de sleutel niet '0' kan zijn) <br> <br> bijvoorbeeld: <br> 1, waarde1 <br>2, waarde2 <br>code3, waarde3 <br> ...  <br> <br>Om de lijst te laten afhangen van een andere aanvullende attributenlijst:  <br>1, value1 | options_ <i> parent_list_code</i>: parent_key  <br>2, value2 | options_ <i> parent_list_code </i>: parent_key  <br> <br>Om de lijst afhankelijk te maken van een andere lijst: <br> 1, value1 |<i> parent_list_code </i>: parent_key <br> 2, value2 | <i> parent_list_code</i>: parent_key
     ExtrafieldParamHelpcheckbox=Lijst van parameters moet telkens bestaan uit sleutel,waarde (waarbij de sleutel geen '0' kan zijn)<br><br>bv:<br>1,waarde<br>2,waarde2<br>3,waarde3<br>...
     ExtrafieldParamHelpradio=Lijst van parameters moet telkens bestaan uit sleutel,waarde<br><br>bv:<br>1,waarde<br>2,waarde2<br>3,waarde3<br>...
     ExtrafieldParamHelpsellist=Lijst met waarden komt uit een tabel <br> Syntaxis: table_name: label_field: id_field :: filter <br> Voorbeeld: c_typent: libelle: id :: filter <br> <br> - idfilter is noodzakelijkerwijs een primaire int-sleutel <br> - filter kan een eenvoudige test zijn (bv. actief = 1) om alleen actieve waarde weer te geven <br> U kunt ook $ ID $ in filter gebruiken dat is het huidige id van huidig ​​object <br> Om een ​​SELECT in filter te doen, gebruik $ SEL $ <br> als u op extra velden wilt filteren, gebruikt u de syntaxis extra.fieldcode = ... (waarbij veldcode de code van extrafield is) <br> <br> Om de lijst afhankelijk te maken van een andere aanvullende attributenlijst: <br> c_typent: libelle: id: options_ <i> parent_list_code</i>| parent_column: filter  <br> <br>Om de lijst te laten afhangen van een andere lijst: <br>c_typent: libelle: id: <i> parent_list_code</i> | parent_column: filter
    -ExtrafieldParamHelpchkbxlst=List of values comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list :<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax : ObjectName:Classpath<br>Examples :<br>Societe:societe/class/societe.class.php<br>Contact:contact/class/contact.class.php
    +ExtrafieldParamHelpchkbxlst=Lijst met waarden komt uit een tabel<br>Syntaxis: table_name: label_field: id_field :: filter<br>Voorbeeld: c_typent: libelle: id :: filter<br><br>filter kan ook een eenvoudige test zijn (bv. Actief = 1 ) om alleen de actieve waarde weer te geven<br>U kunt ook $ID$ in het filter gebruiken, dat de huidige id van het huidige object is<br> Als u een SELECT in filter wilt gebruiken, gebruikt u $SEL$ <br>Als u op extra velden wilt filteren syntaxis extra.fieldcode = ... (waarbij veldcode de code van extrafield is)<br><br>Om de lijst afhankelijk te maken van een andere aanvullende attributenlijst <br>:c_typent: libelle: id: options_<i>parent_list_code</i>| parent_column: filter<br><br>Om de lijst afhankelijk te laten zijn van een andere lijst:<br>c_typent: libelle: id:<i>parent_list_code</i> | parent_column: filter
    +ExtrafieldParamHelplink=Parameters moeten zijn ObjectName: Classpath<br>Syntax: ObjectName: Classpath<br>Voorbeelden:<br>Societe: societe / class / societe.class.php <br>Contact: contact / class / contact.class.php
     LibraryToBuildPDF=Gebruikte library voor generen PDF
     LocalTaxDesc=Sommige landen gebruiken 2 of 3 belastingen op iedere factuurregel. Als dit het geval is, kies type voor tweede en derde belasting en het tarief. Mogelijke typen zijn: <br>1 : Locale belasting van toepassing op producten en diensten zonder btw (btw wordt niet toegepast op locale belasting)<br>2 : Locale belasting van toepassing op producten en diensten voor btw (btw wordt berekend op bedrag + locale belasting )<br>3 : Locale belasting van toepassing op producten zonder btw  (btw wordt niet toegepast op locale belasting)<br>4 : Locale belasting van toepassing op producten voor btw (btw wordt berekend op bedrag + locale belasting)<br>5 : Locale belasting van toepassing op diensten zonder btw  (btw wordt niet toegepast op locale belasting)<br>6 :  Locale belasting van toepassing op diensten voor btw  (btw wordt berekend op bedrag + locale belasting )
     SMS=SMS
    @@ -432,60 +436,62 @@ DefaultLink=Standaard link
     SetAsDefault=Gebruik standaard
     ValueOverwrittenByUserSetup=Waarschuwing, deze waarde kan worden overschreven door de gebruiker specifieke setup (elke gebruiker kan zijn eigen ClickToDial url ingestellen)
     ExternalModule=Externe module - geïnstalleerd in map %s
    -BarcodeInitForThirdparties=Mass barcode initialisatie voor relaties
    +BarcodeInitForthird-parties=Massa streepjescode initialisatie relaties
     BarcodeInitForProductsOrServices=Mass barcode init of reset voor producten of diensten
    -CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
    +CurrentlyNWithoutBarCode=Momenteel hebt u een <strong>%s</strong> record op <strong>%s</strong>%s zonder gedefinieerde streepjescode.
     InitEmptyBarCode=Init waarde voor de volgende %s lege records
     EraseAllCurrentBarCode=Wis alle huidige barcode waarden
    -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
    +ConfirmEraseAllCurrentBarCode=Weet u zeker dat u alle huidige streepjescode-waarden wilt wissen?
     AllBarcodeReset=Alle barcode waarden zijn verwijderd
    -NoBarcodeNumberingTemplateDefined=Geen barcode nummering sjabloon ingeschakeld in barcode module setup.
    +NoBarcodeNumberingTemplateDefined=Er is geen barcode nummeringssjabloon ingeschakeld in de instellingen van de barcodemodule.
     EnableFileCache=Gebruik cache voor bestanden
    -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
    +ShowDetailsInPDFPageFoot=Voeg meer details toe aan het PDF-voetbestand, zoals uw bedrijfsadres of beheerdersnamen (om professionele id's, bedrijfskapitaal en btw-nummer in te vullen).
     NoDetails=Niet meer details in footer
     DisplayCompanyInfo=Geen adresgegevens bedrijf weer
    -DisplayCompanyManagers=Display manager names
    +DisplayCompanyManagers=Toon namen managers
     DisplayCompanyInfoAndManagers=Geef adresgegevens en namen manager weer
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    -ModuleCompanyCodePanicum=Return an empty accounting code.
    -ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
    -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
    -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    -WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s gevolgd door klantcode voor een klantaccountingcode
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
    +ModuleCompanyCodePanicum=Retourneer een lege accountingcode.
    +ModuleCompanyCodeDigitaria=Boekhoudcode is afhankelijk van de code van derden. De code bestaat uit het teken "C" in de eerste positie gevolgd door de eerste 5 tekens van de code van derden.
    +Use3StepsApproval=Bestellingen moeten standaard worden gemaakt en goedgekeurd door 2 verschillende gebruikers (één stap / gebruiker om te maken en één stap / gebruiker goed te keuren. Merk op dat als gebruiker zowel toestemming heeft om te maken en goed te keuren, één stap / gebruiker volstaat) . U kunt met deze optie vragen om een ​​derde stap / gebruikersgoedkeuring in te voeren, als het bedrag hoger is dan een speciale waarde (dus 3 stappen zijn nodig: 1 = validatie, 2 = eerste keer goedkeuren en 3 = tweede keer goedkeuren als het bedrag voldoende is). <br> Stel deze optie in op leeg als één goedkeuring (2 stappen) voldoende is, stel deze in op een zeer lage waarde (0,1) als een tweede goedkeuring (3 stappen) altijd vereist is.
    +UseDoubleApproval=Gebruik een goedkeuring in 3 stappen als het bedrag (zonder belasting) hoger is dan ...
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
    +WarningPHPMail2=Als uw e-mail SMTP-provider de e-mailclient moet beperken tot bepaalde IP-adressen (zeer zeldzaam), is dit het IP-adres van de mail user agent (MUA) voor uw ERP CRM-toepassing: <strong>%s</strong>.
     ClickToShowDescription=Klik voor omschrijving
    -DependsOn=Deze module heeft de volgende module(s) nodig
    +DependsOn=Deze module heeft de module(s) nodig
     RequiredBy=Deze module is vereist bij module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=U moet hier de relatieve URL van de pagina invoeren. Als u parameters opneemt in URL, zijn de standaardwaarden effectief als alle parameters op dezelfde waarde zijn ingesteld. Voorbeelden:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Schakel het gebruik van gepersonaliseerde standaardwaarden in
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    -WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
    +EnableOverwriteTranslation=Schakel het gebruik van de overschreven vertaling in
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
    +WarningSettingSortOrder=Pas op. Het instellen van een standaardsorteervolgorde kan resulteren in een technische fout wanneer u op de lijstpagina gaat als veld een onbekend veld is. Als u een dergelijke fout ondervindt, gaat u terug naar deze pagina om de standaard sorteervolgorde te verwijderen en het standaardgedrag te herstellen.
     Field=veld
    -ProductDocumentTemplates=Document templates to generate product document
    -FreeLegalTextOnExpenseReports=Free legal text on expense reports
    -WatermarkOnDraftExpenseReports=Watermark on draft expense reports
    +ProductDocumentTemplates=Documentsjablonen om een ​​productdocument te genereren
    +FreeLegalTextOnExpenseReports=Gratis juridische tekst over onkostendeclaraties
    +WatermarkOnDraftExpenseReports=Watermerk op ontwerp onkostendeclaraties
     AttachMainDocByDefault=Zet dit op 1 als u het hoofddocument als standaard aan e-mail wilt toevoegen (indien van toepassing)
     FilesAttachedToEmail=Voeg een bestand toe
     SendEmailsReminders=Stuur agendaherinneringen per e-mail
    -davDescription=Add a component to be a DAV server
    -DAVSetup=Setup of module DAV
    -DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +davDescription=Voeg een component toe als DAV-server
    +DAVSetup=Installatie van DAV module
    +DAV_ALLOW_PUBLIC_DIR=Activeer de openbare map (WebDav-map zonder dat inloggen vereist is)
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Gebruikers & groepen
     Module0Desc=Groepenbeheer gebruikers/werknemers
    -Module1Name=Beheer derde partijen
    -Module1Desc=Beheer van derde partijen (klanten, leveranciers en contactpersonen). Ook kunt u hier sjabloondocumenten uploaden.
    +Module1Name=Relaties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercieel
     Module2Desc=Commercieel beheer
     Module10Name=Boekhouding
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Zakelijke voorstellen / Offertes
     Module20Desc=Beheer van offertes
     Module22Name=EMailings
    @@ -495,9 +501,9 @@ Module23Desc=Monitoring van het verbruik van energie
     Module25Name=Bestellingen klanten
     Module25Desc=Beheer van de bestellingen door klanten
     Module30Name=Facturen
    -Module30Desc=Factuur- en creditnotabeheer voor klanten. Factuurbeheer voor leveranciers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Leveranciers
    -Module40Desc=Suppliers and purchase management (purchase orders and billing)
    +Module40Desc=Leveranciers- en inkoopbeheer (inkooporders en facturering)
     Module42Name=Debug logs
     Module42Desc=Mogelijkheden voor een log (file,syslog, ...). Deze log-files zijn voor technische/debug ondersteuning.
     Module49Name=Editors
    @@ -511,13 +517,13 @@ Module52Desc=Productenvoorraadbeheer
     Module53Name=Diensten
     Module53Desc=Dienstenbeheer
     Module54Name=Contracten/Abonnementen
    -Module54Desc=Contractmanagement (diensten of herhalende abonnementen)
    +Module54Desc=Beheer van contracten (diensten of terugkerende abonnementen)
     Module55Name=Streepjescodes
     Module55Desc=Streepjescodesbeheer
     Module56Name=Telefonie
     Module56Desc=Telefoniebeheer
     Module57Name=Incasso-opdrachten
    -Module57Desc=Beheer van Incasso opdrachten. Inclusief het aanmaken van een SEPA bestand zoals gebruikt in Europese landen.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integratie van een 'ClickToDial' systeem (Asterisk, etc)
     Module59Name=Bookmark4u
    @@ -528,78 +534,78 @@ Module75Name=Reisnotities en -kosten
     Module75Desc=Beheer van reisnotities en -kosten
     Module80Name=Verzendingen
     Module80Desc=Beheer afnemersverzending en -ontvangst
    -Module85Name=Bank en Contant
    +Module85Name=Kas en bank
     Module85Desc=Beheer van bank- en / of kasrekeningen
     Module100Name=Externe site
    -Module100Desc=Voeg een externe website in het Dolibarr menu toe en bekijk deze in een frame
    +Module100Desc=Voeg externe websitelink toe aan Dolibarr-menu's om het in een Dolibarr-frame te bekijken
     Module105Name=Mailman en SPIP
     Module105Desc=Mailman of SPIP-interface voor leden-module
     Module200Name=LDAP
    -Module200Desc=LDAP mappen synchronisatie
    +Module200Desc=LDAP-directorysynchronisatie
     Module210Name=PostNuke
     Module210Desc='PostNuke'-integratie
     Module240Name=Uitvoer gegevens (exporteren)
    -Module240Desc=Gereedschap om Dolibarr data te exporteren (met hulp)
    +Module240Desc=Hulpmiddel om Dolibarr-gegevens te exporteren (met assistentie)
     Module250Name=Invoer gegevens (importeren)
    -Module250Desc=Gereedschap om Dolibarr data te importeren (met hulp)
    +Module250Desc=Hulpmiddel om gegevens in Dolibarr te importeren (met assistentie)
     Module310Name=Leden
     Module310Desc=Ledenbeheer (van een vereniging)
     Module320Name=RSS-feeds
     Module320Desc=Voeg een RSS feed toe in de informatieschermen van Dolibarr
    -Module330Name=Weblinks (Favouriete internetpagina's in het menu weergeven)
    -Module330Desc=Internetfavorietenbeheer
    -Module400Name=Projecten/Kansen/Leads
    -Module400Desc=Beheer van projecten, kansen / leads en / of taken. U kunt ook elk element (factuur, bestelling, voorstel, interventie, ...) toewijzen aan een project en een transversaal beeld krijgen van de projectweergave.
    +Module330Name=Bladwijzers en snelkoppelingen
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projecten of leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webkalender
     Module410Desc=Integratie van een webkalender
    -Module500Name=Taxes and Special expenses
    -Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
    -Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module500Name=Belastingen en speciale uitgaven
    +Module500Desc=Beheer van andere uitgaven (verkoopbelastingen, sociale of fiscale belastingen, dividenden, ...)
    +Module510Name=Betaling van werknemerslonen
    +Module510Desc=Record and track employee payments
     Module520Name=Lening
     Module520Desc=Het beheer van de leningen
     Module600Name=Notificaties van bedrijfs-evenementen
    -Module600Desc=Stuur e-mailmeldingen (geactiveerd door sommige zakelijke evenementen) naar gebruikers (instelling gedefinieerd op elke gebruiker), naar externe contactpersonen (set-up gedefinieerd op elke externe partij) of naar vaste e-mails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    -Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
    +Module610Name=Productvarianten
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Giften
     Module700Desc=Donatiebeheer
    -Module770Name=Onkostennota's 
    -Module770Desc=Management en vordering onkostennota's (vervoer, maaltijden, ...)
    -Module1120Name=Vendor commercial proposal
    -Module1120Desc=Request vendor commercial proposal and prices
    +Module770Name=Onkostennota's
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
    +Module1120Name=Commercieel voorstel van de leverancier
    +Module1120Desc=Vraag commercieel voorstel en prijzen aan
     Module1200Name=Mantis
     Module1200Desc=Mantis integratie
     Module1520Name=Documenten genereren
     Module1520Desc=Massa mail document generen
     Module1780Name=Kenmerk/Categorieën
    -Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
    +Module1780Desc=Aanmaken tags/categorie (producten, klanten, leveranciers, contacten of leden)
     Module2000Name=Fckeditor
    -Module2000Desc=Toestaan aanpassen tekst met behulp de uitgebreide editor( Gebaseerd op de CKEditor)
    +Module2000Desc=Toestaan ​​dat tekstvelden worden bewerkt met behulp van CKEditor
     Module2200Name=Dynamische prijzen
     Module2200Desc=Het gebruik van wiskundige uitdrukkingen voor prijzen mogelijk te maken
     Module2300Name=Geplande taken
     Module2300Desc=Taakplanning (ook wel cron of chrono tabel)
     Module2400Name=Gebeurtenissen/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Geautomatiseerde organisatie van gemaakte en opgeslagen documenten. Deel deze indien gewenst.
     Module2600Name=API/Web services (SOAP server)
     Module2600Desc=Schakel de Dolibarr SOAP server in die API services aanbiedt
    -Module2610Name=API/Web services (REST server)
    +Module2610Name=API / webservices (REST-server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Schakel de Dolibarr webservices client aan (Kan worden gebruikt om gegevens en / of aanvragen duwen naar externe servers. Leverancier bestellingen alleen ondersteund voor het moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Gebruik de online dienst 'Gravatar' (www.gravatar.com) voor het posten van afbeeldingen van gebruikers / leden (gevonden door hun e-mails). Internet toegang vereist.
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=Capaciteitconversie GeoIP Maxmind
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-bedrijf
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Beheer van verlofverzoeken
    -Module20000Desc=Bevestig en volg verlofverzoeken van medewerkers
    +Module20000Desc=Aanmaken en volgen verlofaanvragen
     Module39000Name=Products lots
     Module39000Desc=Lot of serienummer, vervaldatum en de uiterste verkoopdatum beheer van producten
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Module om een ​​online betaalpagina aan te bieden die betalingen met een creditcard / betaalpas accepteert via PayBox. Dit kan worden gebruikt om uw klanten toe te staan ​​om gratis betalingen te doen of om een ​​betaling uit te voeren voor een bepaald Dolibarr-object (factuur, bestelling, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Verkooppunt
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Punt van de omzet
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module om een ​​online betalingspagina aan te bieden die betalingen met PayPal accepteert (creditcard of PayPal-tegoed). Dit kan worden gebruikt om uw klanten toe te staan ​​om gratis betalingen te doen of om een ​​betaling uit te voeren voor een bepaald Dolibarr-object (factuur, bestelling, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Boekhouding
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (zonder het openen van de documenten) met behulp van Cups IPP-interface (Printer moet zichtbaar zijn vanaf de server zijn, en CUPS moet geinstalleerd zijn op de server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Onderzoek of Stemmen
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Marges
     Module59000Desc=Module om de marges te beheren
     Module60000Name=Commissies
     Module60000Desc=Module om commissies te beheren
    -Module62000Name=Incoterm
    -Module62000Desc=Onderdelen toevoegen voor Incoterms
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Bronnen
     Module63000Desc=Bronnen beheren (printers, auto's kamers, ...) zodat u deze kunt delen met evenementen
     Permission11=Bekijk afnemersfacturen
    @@ -651,9 +661,9 @@ Permission32=Creëer / wijzig producten / diensten
     Permission34=Verwijderen producten / diensten
     Permission36=Exporteer producten / diensten
     Permission38=Export producten
    -Permission41=Inlezen projecten en taken (gedeeld project en project waarbij ik decontactpersoon ben). Kan ook de gebruikte tijd invoeren op toegewezen taken (rooster).
    -Permission42=Maak / wijzig projecten (gedeeld project en projecten waarvan ik contactpersoon ben). Kan ook taken aanmaken en gebruikers toewijzen aan deze projecten en taken
    -Permission44=Verwijder projecten (Gedeelde projecten en projecten waarvoor ik de contactpersoon ben)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Projecten verwijderen (gedeeld project en projecten waar ik contact mee heb)
     Permission45=Exporteer projecten
     Permission61=Bekijk interventies
     Permission62=Creëer / wijzig interventies
    @@ -686,7 +696,7 @@ Permission109=Verwijder verzendingen
     Permission111=Bekijk de financiële rekeningen
     Permission112=Creëer / wijzig / verwijder en vergelijk transacties
     Permission113=Stel financiële rekeningen in (creëer, beheer, categoriseer)
    -Permission114=Afstemming overboekingen
    +Permission114=Consolideer transacties
     Permission115=Exporteer transacties en rekeningafschriften
     Permission116=Overschrijvingen tussen rekeningen
     Permission117=Beheer cheques verzending
    @@ -694,15 +704,15 @@ Permission121=Bekijk derde partijen gelinkt aan de gebruiker
     Permission122=Creëer / wijzig derden gelinkt aan gebruiker
     Permission125=Verwijderen van derden gelinkt aan gebruiker
     Permission126=Exporteer derden
    -Permission141=Lees alle projecten en taken (ook private projecten waar ik niet de contactpersoon ben)
    -Permission142=Aanmaak/wijzig alle projecten en taken (ook private projecten waar ik niet de contactpersoon ben)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Verwijder alle projecten en taken (ook de private projecten waarvoor ik geen contactpersoon ben)
     Permission146=Bekijk leveranciers
     Permission147=Bekijk statistieken
     Permission151=Inlezen incasso-opdracht
     Permission152=Aanmaken/aanpassen incasso-opdracht
     Permission153=Versturen/verzenden incasso-opdrachten
    -Permission154=Overzicht crediteringen/afkeuringen incasso opdrachten
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Lees contracten/abonnementen
     Permission162=Creëren/aanpassen contracten/abonnementen
     Permission163=Een dienst/abonnement van een contract activeren
    @@ -725,7 +735,7 @@ Permission187=Sluiten leverancieropdrachten
     Permission188=Annuleren leverancieropdrachten
     Permission192=Regels aanmaken
     Permission193=Regels beëindigen
    -Permission194=Consult marge regels
    +Permission194=Read the bandwidth lines
     Permission202=Creëer DSL-aansluitingen
     Permission203=links inzien
     Permission204=Creëer links
    @@ -750,12 +760,12 @@ Permission244=Zie de inhoud van de verborgen categorieën
     Permission251=Bekijk de andere gebruikers en groepen
     PermissionAdvanced251=Lees andere gebruikers
     Permission252=Creëren / wijzigen van andere gebruikers, groepen en rechten
    -Permission253=Wijzigen van andere gebruikers wachtwoord
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Creëer / wijzig de rechten van internet / externe gebruikers
     Permission254=Verwijderen of uitschakelen van andere gebruikers
     Permission255=Creëren / wijzigen eigen gebruikersgegevens
     Permission256=Wijzigen eigen wachtwoord
    -Permission262=Verleng de toegang tot alle relaties (niet alleen relaties waarvan de gebruiker een verkoopvertegenwoordiger is). <br> Niet effectief voor externe gebruikers (altijd beperkt tot offertes, bestellingen, facturen, contracten, enz.). <br>Niet effectief voor projecten (alleen regels over projectrechten, zichtbaarheid en toewijzing zijn van belang).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Lees CA
     Permission272=Facturen inzien
     Permission273=Facturen uitgeven
    @@ -765,7 +775,7 @@ Permission283=Contactpersonen verwijderen
     Permission286=Contactpersonen Exporteren
     Permission291=Tarieven inzien
     Permission292=Stel rechten voor tarieven in
    -Permission293=Wijzig afnemerstarieven
    +Permission293=Modify customers tariffs
     Permission300=Bekijk streepjescodes
     Permission301=Creëren / wijzigen streepjescodes
     Permission302=Verwijderen streepjescodes
    @@ -787,11 +797,9 @@ Permission401=Bekijk kortingen
     Permission402=Creëren / wijzigen kortingen
     Permission403=Kortingen valideren
     Permission404=Kortingen verwijderen
    -Permission501=Lees werknemerscontracten/salarissen
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Betaling van salarissen
    -Permission512=Create/modify payment of salaries
    -Permission514=Verwijder salarissen
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salarissen
     Permission520=Lees Leningen
     Permission522=Creëer/wijzigen leningen
    @@ -807,12 +815,12 @@ Permission701=Bekijk donaties
     Permission702=Creëren / wijzigen donaties
     Permission703=Verwijderen donaties
     Permission771=Declaraties (eigen en ondergeschikten)
    -Permission772=Creëer / wijzigen onkostennota's 
    -Permission773=Verwijderen onkostennota's 
    +Permission772=Creëer / wijzigen onkostennota's
    +Permission773=Verwijderen onkostennota's
     Permission774=Lees alle onkostennota's (ook voor de gebruiker niet ondergeschikten)
    -Permission775=Goedkeuren onkostennota's 
    -Permission776=Betalen onkostennota's 
    -Permission779=Export onkostennota's 
    +Permission775=Goedkeuren onkostennota's
    +Permission776=Betalen onkostennota's
    +Permission779=Export onkostennota's
     Permission1001=Bekijk voorraden
     Permission1002=Toevoegen/wijzigen van een magazijn
     Permission1003=Verwijder magazijnen
    @@ -844,8 +852,8 @@ Permission1251=Voer massale invoer van externe gegevens in de database uit (data
     Permission1321=Exporteer afnemersfacturen, attributen en betalingen
     Permission1322=Open een betaalde factuur
     Permission1421=Exporteer afnemersfacturen en attributen
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Verlofaanvragen verwijderen
     Permission20004=Alle verlofaanvragen (zelfs van gebruiker, niet ondergeschikten)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Bronnen lezen
     Permission63002=Create/modify resources
     Permission63003=Verwijder resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Relatiesoort
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potentiële niveau
     DictionaryCanton=Provincie
     DictionaryRegion=Regio
    @@ -894,7 +902,7 @@ DictionaryVAT=BTW-tarieven of Verkoop Tax tarieven
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Betalingsvoorwaarden
     DictionaryPaymentModes=Betaalwijzen
    -DictionaryTypeContact=Contact / Adres soorten
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Papierformaten
    @@ -908,47 +916,47 @@ DictionarySource=Oorsprong van offertes / bestellingen
     DictionaryAccountancyCategory=Gepersonaliseerde groepen voor rapporten
     DictionaryAccountancysystem=Modellen voor rekeningschema
     DictionaryAccountancyJournal=Daboeken
    -DictionaryEMailTemplates=Email documentensjablonen
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Eenheden
     DictionaryProspectStatus=Status prospect
    -DictionaryHolidayTypes=Soort vergoeding
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Onkostenoverzicht - bereik per transportcategorie
     SetupSaved=Instellingen opgeslagen
     SetupNotSaved=Installatie niet opgeslagen
     BackToModuleList=Terug naar moduleoverzicht
    -BackToDictionaryList=Terug naar de woordenboeken lijst
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=BTW-beheer
    -VATIsUsedDesc=Het standaard BTW-tarief bij het aanmaken van prospecten, facturen, orders etc volgt de actieve standaard regel:<br>Als de verkoper onderworpen is aan BTW, dan wordt BTW standaard op 0 gezet. Einde van de regel.<br>Als het 'land van de verkoper' = 'het land van de koper' dan wordt de BTW standaard ingesteld op de BTW van het product in het verkopende land. Einde van de regel.<br>Als verkoper en koper zich in de Europese Gemeenschap bevinden en het betreft een nieuw vervoersmiddel (auto, boot, vliegtuig), dan wordt de BTW standaard ingesteld op 0 (De BTW moet worden betaald door koper in het grenskantoor van zijn land en niet door de verkoper). Einde van de regel.<br>Als verkoper en koper zich in de Europese Unie bevinden en de koper is een persoon of bedrijf zonder BTW-registratienummer = BTW-standaard van het verkochte product. Einde van de regel.<br>Als verkoper en koper zich in de Europese Gemeenschap bevinden en de koper geen bedrijf is, dan wordt de BTW standaard ingesteld op de BTW van het verkochte product. Einde van de regel<br><br>In alle andere gevallen wordt de BTW standaard ingesteld op 0. Einde van de regel.<br>
    -VATIsNotUsedDesc=Standaard is de voorgestelde BTW 0. Dit kan gebruikt worden in situaties zoals verenigingen, particulieren of kleine bedrijven.
    -VATIsUsedExampleFR=In Frankrijk betekent dit dat bedrijven of organisaties een echt fiscaal systeem hebben (Vereenvoudigd echt of normaal echt). Een systeem waarin btw wordt aangegeven.
    -VATIsNotUsedExampleFR=In Frankrijk betekent dit verenigingen zonder BTW-aangifte of bedrijven, organisaties of vrije beroepen die voor het fiscale systeem voor micro-ondernemingen (btw in franchise) hebben gekozen en een franchisebetaling zonder BTW-aangifte hebben betaald. Deze keuze zal de referentie "Niet van toepassing zijnde BTW - art-293B van CGI" op facturen weergeven.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Tarief
     LocalTax1IsNotUsed=Gebruik geen tweede belasting
    -LocalTax1IsUsedDesc=Gebruik een tweede type van belasting (met uitzondering van de BTW)
    -LocalTax1IsNotUsedDesc=Gebruik geen ander type van belasting (andere dan BTW)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Tweede soort belasting
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Derde belasting niet gebruiken
    -LocalTax2IsUsedDesc=Gebruik een derde type van belasting (met uitzondering van de BTW)
    -LocalTax2IsNotUsedDesc=Gebruik geen ander type van belasting (andere dan BTW)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Derde type belasting
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= Gestion RE
    -LocalTax1IsUsedDescES= Het RE tarief volgt standaard de actieve standaardregel (bij het maken van prospecten, facturen, opdrachten etc)<br> Als de koper niet is onderworpen aan RE, wordt de RE standaard standaard ingesteld op 0. Einde van de regel.<br>Indien de koper wordt onderworpen aan dan de RE dan standaard RE. Einde van de regel.<br>
    -LocalTax1IsNotUsedDescES= Standaard is de voorgestelde RE 0. Einde van de regel.
    -LocalTax1IsUsedExampleES= In Spanje zijn zij professionals die onderworpen zijn aan enkele specifieke secties van het Spaanse IAE.
    -LocalTax1IsNotUsedExampleES= In Spanje zijn zij professionals en verenigingen die onderworpen zijn aan bepaalde secties van het Spaanse IAE.
    -LocalTax2ManagementES= IRPF beheer
    -LocalTax2IsUsedDescES= Het standaard RE tarief bij het aanmaken van prospecten, facturen, opdrachten, etc volgt de actieve standaardregel:<br>Wanneer de verkoper niet onderworpen is aan de IRPF, dan wordt IRPF ingesteld op o. Einde van de regel.<br>Wanneer de verkoper onderworpen is aan de IRPF, dan wordt standaard de IRPF insgesteld. Einde van regel.<br>
    -LocalTax2IsNotUsedDescES= Standaard is de voorgestelde IRPF 0. Einde van de regel.
    -LocalTax2IsUsedExampleES= In Spanje, freelancers en onafhankelijke professionals die diensten aanbieden alsmede bedrijven die voor het belastingsysteem van modules hebben gekozen.
    -LocalTax2IsNotUsedExampleES= In Spanje zijn zij bedrijven die niet onderworpen zijn aan het belastingsysteem van modules.
    +LocalTax1ManagementES=Gestion RE
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Standaard is de voorgestelde RE 0. Einde van de regel.
    +LocalTax1IsUsedExampleES=In Spanje zijn zij professionals die onderworpen zijn aan enkele specifieke secties van het Spaanse IAE.
    +LocalTax1IsNotUsedExampleES=In Spanje zijn zij professionals en verenigingen die onderworpen zijn aan bepaalde secties van het Spaanse IAE.
    +LocalTax2ManagementES=IRPF beheer
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Standaard is de voorgestelde IRPF 0. Einde van de regel.
    +LocalTax2IsUsedExampleES=In Spanje, freelancers en onafhankelijke professionals die diensten aanbieden alsmede bedrijven die voor het belastingsysteem van modules hebben gekozen.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Rapporten over lokale belastingen
     CalcLocaltax1=Verkopen - Aankopen
     CalcLocaltax1Desc=Lokale belastings rapporten worden berekend met het verschil tussen verkopen en aankopen
    @@ -958,6 +966,8 @@ CalcLocaltax3=Verkopen
     CalcLocaltax3Desc=Lokale Belastingen rapporten zijn het totaal van belastingen verkoop
     LabelUsedByDefault=Standaard te gebruiken label indien er geen vertaling kan worden gevonden voor de code
     LabelOnDocuments=Etiket op documenten
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
     NbOfDays=Aantal dagen
     AtEndOfMonth=Aan het einde van de maand
     CurrentNext=Huidige/volgende
    @@ -984,7 +994,7 @@ DatabaseUser=Databasegebruikersnaam
     DatabasePassword=Databasewachwoord
     Tables=Tabellen
     TableName=Tabelnaam
    -NbOfRecord=Aantal tabelregels
    +NbOfRecord=Aantal records
     Host=Server
     DriverType=Drivertype
     SummarySystem=Samenvatting van systeeminformatie
    @@ -996,7 +1006,7 @@ Skin=Uiterlijksthema
     DefaultSkin=Standaard uiterlijksthema
     MaxSizeList=Maximale lijstlengte
     DefaultMaxSizeList=Standaard maximum lengte voor lijsten
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Bericht van de dag
     MessageLogin=Bericht op inlogpagina
     LoginPage=Inlogpagina
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent zoekformulier in linker menu
     DefaultLanguage=Standaard te gebruiken taal (taal-code)
     EnableMultilangInterface=Inschakelen meertalige interface
     EnableShowLogo=Toon logo in het linker menu
    -CompanyInfo=Informatie bedrijf/organisatie
    -CompanyIds=Informatie bedrijf/organisatie
    +CompanyInfo=Bedrijf/Organisatie
    +CompanyIds=Bedrijfs-/organisatie-identiteiten
     CompanyName=Naam
     CompanyAddress=Adres
     CompanyZip=Postcode
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Eigenaar van bankrekening %s
     BankModuleNotActive=Bankrekeningen module niet ingeschakeld
     ShowBugTrackLink=Toon de link "<strong>%s</strong>"
     Alerts=Kennisgevingen
    -DelaysOfToleranceBeforeWarning=Getolereerde vertraging voor kennisgeving
    -DelaysOfToleranceDesc=In dit scherm kunt u de getolereerde vertraging voordat een kennisgeving wordt gemeld op het scherm met een icoontje %s voor elk te laat element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Getolereerde vertraging (in dagen) voor geplande evenementen (agenda) nog niet voltooid
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Vertragingstolerantie (in dagen) vóór melding bij project niet tijdig afgesloten
    -Delays_MAIN_DELAY_TASKS_TODO=Getolereerde vertraging (in dagen) voor geplande taken (project-taken) nog niet voltooid
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Getolereerde vertraging (in dagen) voor een kennisgeving, op nog niet uitgevoerde orders.
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Getolereerde vertraging (in dagen) voor een kennisgeving, op af te sluiten offertes word getoond
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Getolereerde vertraging (in dagen) voor een kennisgeving, op niet-gefactureerde offertes word getoond
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Getolereerde vertraging (in dagen) voor een kennisgeving, op te activeren diensten word getoond
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Getolereerde vertraging (in dagen) voor een kennisgeving, op afgelopen diensten word getoond
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Getolereerde vertraging (in dagen) voor een kennisgeving, op een onbetaalde leveranciersfactuur word getoond
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Getolereerde vertraging (in dagen) voor een kennisgeving, op een onbetaalde afnemersfactuur word getoond
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Getolereerde vertraging (in dagen) voor een kennisgeving, op bank conciliatie word getoond
    -Delays_MAIN_DELAY_MEMBERS=Getolereerde vertraging (in dagen) voor een kennisgeving, op niet betaalde contributie word getoond
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Getolereerde vertraging (in dagen) voor de kennisgeving voor nog te doen cheques aanbetaling
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=Bij Instellingen kunt u de onderdelen instellen voordat u begint Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Andere menu-items beheren / optionele instellingen.
    +DelaysOfToleranceBeforeWarning=Vertragingen voor het weergeven van een waarschuwing
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Vertraging (in dagen) vóór waarschuwing betreft het te sluiten van voorstellen
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Veiligheidsauditgebeurtenissen
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=Over Dolibarr
     InfoBrowser=About Browser
     InfoOS=Over OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser naam
     BrowserOS=Browser OS
     ListOfSecurityEvents=Lijst van Dolibarr veiligheidgebeurtenisen
     SecurityEventsPurged=Beveiliging gebeurtenissen verwijderd
    -LogEventDesc=Hier kunt u de de gewenste veiligheidslogs in- of uitschakelen. Beheerders kunnen de inhoud ervan dan zien via het menu <b>Home->Systeemwerkset->Audit.</b> Waarschuwing, deze functionaliteit kan een grote hoeveelheid gegevens in de database wegschrijven.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup functies kunnen alleen door <b>Administrator gebruikers</b> worden ingesteld
     SystemInfoDesc=Systeeminformatie is technische informatie welke u in alleen-lezen modus krijgt en alleen door beheerders is in te zien.
     SystemAreaForAdminOnly=Dit scherm is alleen beschikbaar voor de beheerders. Andere Dolibarr gebruikers kunnen hier niets wijzigen.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=U kunt hier instellingen doen die het uiterlijk van Dolibarr instellen
     AvailableModules=Beschikbare app/modules
     ToActivateModule=Om modules te activeren, ga naar Home->Instellingen->Modules.
     SessionTimeOut=Time-out van de sessie
    -SessionExplanation=De hier ingestelde waarde garandeert dat de sessie nooit zal verlopen voordat deze periode is verlopen, maar niet dat de sessie wel verloopt na deze vertraging, omdat sessies worden worden verwijderd wanneer het systeem zelf een opschoning begint.<br>Opmerking: bij geen specifiek systeem, zal PHP elke sessie wissen rond <b>%s/%s</b> toegang, maar alleen tijdens de toegang van andere sessies.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Beschikbare initiatoren (triggers)
    -TriggersDesc=Initiatoren zijn bestanden die het gedrag van de 'workflow' van Dolibarr zullen beïnvloeden vanaf het moment dat zij zijn gekopieerd naar de map <b>htdocs/core/triggers.</b>Zij initiëren nieuwe acties, geactiveerd door Dolibarr gebeurtenissen (de creatie van nieuwe bedrijven, factuur validatie, etc).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Initiatoren in dit bestand zijn uitgeschakeld door het <b>NoRun</b> achtervoegsel in hun naam.
     TriggerDisabledAsModuleDisabled=Initiatoren in dit bestand zijn uitgeschakeld als module <b>%s</b> is uitgeschakeld.
     TriggerAlwaysActive=Initiatoren in dit bestand zijn altijd actief, ongeacht de geactiveerde modules in Dolibarr.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Voer alle referentiegegevens in. U kunt uw waarden toevoegen aan
     ConstDesc=Op deze pagina kunt u alle andere parameters bewerken die niet beschikbaar zijn op de vorige pagina's. Dit zijn meestal gereserveerde parameters voor ontwikkelaars of geavanceerde probleemoplossing. Voor een lijst met opties <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">kijk hier</a>,
     MiscellaneousDesc=Overige beveiliging gerelateerde instellingen worden hier vastgelegd.
     LimitsSetup=Limieten- en precisieinstellingen
    -LimitsDesc=U kunt hier limieten en preciseringen die Dolibarr gebruikt instellen
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Maximaal aantal decimalen voor eenheidsprijzen
     MAIN_MAX_DECIMALS_TOT=Maximaal aantal decimalen voor de totale prijs
     MAIN_MAX_DECIMALS_SHOWN=Maximaal aantal decimalen voor de prijzen weergegeven op het scherm (Voeg <b>...</b> toe na dit nummer als u <b>...</b> wilt zien als het nummer wordt afgekapt op het scherm)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Stap van afronding (voor landen waar de afronding gebeurd
     UnitPriceOfProduct=Prijs per eenheid van een product
     TotalPriceAfterRounding=Totale prijs inclusief na afronding
     ParameterActiveForNextInputOnly=De instelling word pas actief voor de volgende invoer
    -NoEventOrNoAuditSetup=Geen geregistreerde auditgebeurtenis. Dit is normaal als de audit nog niet is ingeschakeld in "Home->Instellingen->Beveiliging->Audit".
    -NoEventFoundWithCriteria=Geen beveiligingsgebeurtenis gevonden met deze zoek criteria.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Controleer de instellingen van uw lokale "sendmail"-programma
     BackupDesc=Om een complete backup van Dolibarr te maken, dient u:
     BackupDesc2=Bewaren van bestanden in de documenten directorie (<b>%s</b>) dat alle opgeladen en gegenereerde bestanden bevat. (Het bevat ook alle bestanden gegenereerd bij stap 1).
    -BackupDesc3=- Bewaar de inhoud van uw database in een dump bestand. Om dit te doen, kunt u gebruik maken van de volgende assistent.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Gearchiveerde map-bestand moet op een veilige plaats worden opgeslagen.
     BackupDescY=De gemaakte dump bestand moet op een veilige plaats worden opgeslagen.
    -BackupPHPWarning=Backup niet gegarandeerd met deze methode. Gebruik beter de vorige
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Om een Dolibarr backup terug te zetten, dient u:
    -RestoreDesc2=- Herstel archiefbestand (zip bestand bijvoorbeeld) van de oude documentenmap in de documentenmap van de nieuwe Dolibarr installatie of in huidige documentenmap (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=- Herstel de gegevens van een backup dumpbestand, in de database van de nieuwe Dolibarr installatie of in de database van de huidige installatie. Waarschuwing, zodra een herstel is gedaan, zult u de gebruikersnaam en wachtwoord die bestonden toen de backup werd gemaakt, moeten gebruiken. Om een backupdatabase in de huidige installatie te herstellen, kunt u de assistent (wizard) volgen.
     RestoreMySQL=MySQL import
     ForcedToByAModule= Geforceerd tot <b>%s</b> door een geactiveerde module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=U dient dit commando vanaf de o
     YourPHPDoesNotHaveSSLSupport=SSL functies niet beschikbaar in uw PHP installatie
     DownloadMoreSkins=Meer uiterlijkthema's om te downloaden
     SimpleNumRefModelDesc=Geeft het referentienummer terug in het formaat %sjjmm-nnnn waar jj jaar is, mm de maand en nnnn een opeenvolgende aaneengesloten reeks en zonder vervangende 0
    -ShowProfIdInAddress=Toon in het adresgedeelte van documenten het 'professioneel ID'
    -ShowVATIntaInAddress=Verberg BTW Intra num met adressen op documenten
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Onvolledige vertaling
    -MAIN_DISABLE_METEO=Schakel "Meteo"-weergave uit
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standaard mode
     MeteoStdModEnabled=Standaard mode geactiveerd
     MeteoPercentageMod=Percentage modus
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test inloggen op API
    -ProxyDesc=Sommige functies van Dolibarr moet een toegang tot internet aan het werk te hebben. Definieer hier parameters voor deze. Als de Dolibarr server zich achter een Proxy server, deze parameters vertelt Dolibarr hoe toegang tot internet via het.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Externe toegang
     MAIN_PROXY_USE=Gebruik een proxy server (anders directe toegang tot internet)
     MAIN_PROXY_HOST=Naam / adres van de proxy server
     MAIN_PROXY_PORT=Poort van de proxy server
     MAIN_PROXY_USER=Inloggen op de proxyserver te gebruiken
     MAIN_PROXY_PASS=Wachtwoord voor de proxy-server te gebruiken
    -DefineHereComplementaryAttributes=Definieer hier alle attributen, niet reeds standaard beschikbaar, en dat je wilt worden ondersteund voor %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Aanvullende attributen
     ExtraFieldsLines=Aanvullende kenmerken (lijnen)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementaire attributen (orderregels)
     ExtraFieldsSupplierInvoicesLines=Complementaire attributen (factuurregels)
     ExtraFieldsThirdParties=Aanvullende kenmerken (relaties)
    -ExtraFieldsContacts=Aanvullende kenmerken (contact / adres)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Aanvullende kenmerken (lid)
     ExtraFieldsMemberType=Aanvullende kenmerken (soort lid)
     ExtraFieldsCustomerInvoices=Aanvullende kenmerken (facturen)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=alleen alfanumerieke tekens en kleine letters z
     SendmailOptionNotComplete=Waarschuwing, op sommige Linux-systemen, e-mail verzenden vanaf uw e-mail, sendmail uitvoering setup moet conatins optie-ba (parameter mail.force_extra_parameters in uw php.ini-bestand). Als sommige ontvangers nooit e-mails ontvangen, probeer dit PHP parameter bewerken met mail.force_extra_parameters =-ba).
     PathToDocuments=Pad naar documenten
     PathDirectory=Map
    -SendmailOptionMayHurtBuggedMTA=Feature om e-mails met behulp van methode "PHP mail direct" te sturen zal een e-mailbericht dat niet goed zou kunnen worden ontleed door sommige het ontvangen van e-mailservers. Resultaat is dat sommige mails niet kunnen worden gelezen door mensen gehost door thoose afgeluisterd platforms. Het is het geval voor sommige Internet providers (Ex: Orange in Frankrijk). Dit is geen probleem in Dolibarr noch in PHP, maar op het ontvangen van e-mailserver. U kunt de optie MAIN_FIX_FOR_BUGGED_MTA echter toe te voegen aan 1 in setup - andere om Dolibarr wijzigen om dit te voorkomen. Echter, kunnen er problemen met andere servers dat opzicht strikt de SMTP-standaard. De andere oplossing (aanbevolen) is het gebruik van de methode "SMTP-socket bibliotheek" dat er geen nadelen heeft.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Vertaal instellingen
     TranslationKeySearch=Zoek een vertaalsleutel of tekenreeks
     TranslationOverwriteKey=Vertaling vervangen
     TranslationDesc=De weergegeven taal voor de toepassing instellen:<br>* Voor gehele systeem: menu <strong>Startpagina - instellen - Weergeven</strong><br> * Per gebruiker: gebruik het tabblad <strong>Weergave gebruiker instellen</strong>op gebruikerskaart ( klik op gebruikersnaam bovenaan het scherm).
     TranslationOverwriteDesc=U kunt ook de teksten aanpassen door de volgende tabel in te vullen. Kies uw taal uit keuzelijst "%s", plaats de tekenreeks van de vertaling in "%s" en uw nieuwe vertaling in "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Vertaal regel
     CurrentTranslationString=Huidige vertaling
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=Weergeven nieuwe vertaal string
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Geactiveerde applicaties/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Je moet minstens 1 module aktiveren
    -ClassNotFoundIntoPathWarning=Classe %s niet gevonden in PHP pad
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Ja in de zomer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Let op, alleen de volgende modules worden geopend voor externe gebruikers (ongeacht hun rechten) en alleen als machtigingen zijn verleend:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Sessie opslag geencrypteerd door Suhosin
     ConditionIsCurrently=Voorwaarde is momenteel %s
    -YouUseBestDriver=U gebruikt driver %s die momenteel meest geschikt is.
    -YouDoNotUseBestDriver=U gebruikt driver %s, maar driver %s is aangeraden
    -NbOfProductIsLowerThanNoPb=U hebt enkel %s producten/diensten in de database. Er is geen optimalisatie nodig.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Zoekmachine optimalisatie
    -YouHaveXProductUseSearchOptim=U hebt %s producten in de database. U kan best de constante PRODUCT_DONOTSEARCH_ANYWHERE op 1 zetten in Home-instellingen-andere, u beperkt het zoeken tot begin van strings, waardoor de database een index kan gebruiken en een onmiddelijk resultaat geeft.
    -BrowserIsOK=U gebruikt de webbrowser %s. Deze browser is in orde voor beveiliging en prestaties.
    -BrowserIsKO=U gebruikt de webbrowser %s. Deze browser is een slechte keuze voor veiligheid, prestaties en betrouwbaarheid. Wij raden u aan Firefox, Chrome, Opera of Safari gebruiken.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=Xdebug is geladen.
     XCacheInstalled=Xcache is geladen.
    -AddRefInList=Weergave klant / leverancier ref in lijst (lijst of combobox) en de meeste van hyperlink. Relaties verschijnen met de naam "CC12345 - SC45678 - Het groot bedrijf coorp", in plaats van "Het groot bedrijf coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Wijziging van het veld %s
     FillThisOnlyIfRequired=Voorbeeld: +2 (alleen invullen als tijdzone offset problemen worden ervaren)
     GetBarCode=Haal barcode
     ##### Module password generation
     PasswordGenerationStandard=Geeft een wachtwoord terug dat gegenereerd is volgens het interne Dolibarr algoritme: 8 karakters met gedeelde nummers en tekens in kleine letters.
    -PasswordGenerationNone=Stel geen automatisch gegenereerd wachtwoord voor. Wachtwoord moet manueel ingetoetst worden.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=Volgens uw configuratie
     PasswordPatternDesc=Omschrijving wachtwoord patroon
    @@ -1195,23 +1206,23 @@ UserMailRequired=E-mail verplicht om een nieuwe gebruiker creëren
     HRMSetup=Instellingen HRM module
     ##### Company setup #####
     CompanySetup=Derde partijenmoduleinstellingen
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=E-mailmeldingen stelt u in staat om automatische e-mail te verzenden voor sommige Dolibarr onderdelen. Doelen van meldingen kunnen worden gedefinieerd:
     NotificationsDescUser=*per gebruiker, één tegelijk.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documentensjablonen
    -DocumentModelOdt=Genereer documenten uit OpenDocuments sjablonen (. ODT of. ODS-bestanden voor OpenOffice, KOffice, TextEdit, ...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermerk op conceptdocumenten
     JSOnPaimentBill=Activeert functie om de betalingslijnen op betalingsformulieren automatisch aan te vullen
    -CompanyIdProfChecker=Professionele Id unieke
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Moet het uniek zijn?
    -MustBeMandatory=Verplichting voor aanmaken derde partij?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Verplichting om facturen te valideren?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Een exportlink naar het <b>%s</b> formaat is beschikbaar onder de volgende link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Een exportlink naar het <b>%s</b> formaat is beschikbaar
     BillsSetup=Facturenmodule instellen
     BillsNumberingModule=Nummeringsmodule voor facturen en creditnota's
     BillsPDFModules=Factuur documentsjablonen
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Modellen betaal documenten
     CreditNote=Creditnota
     CreditNotes=Creditnota's
    @@ -1230,7 +1242,7 @@ FreeLegalTextOnInvoices=Vrije tekst op facturen
     WatermarkOnDraftInvoices=Watermerk op ontwerp-facturen (geen indien leeg)
     PaymentsNumberingModule=Payments numbering model
     SuppliersPayment=Leveranciersbetalingen
    -SupplierPaymentSetup=Instellingen leveranciers betalingen 
    +SupplierPaymentSetup=Instellingen leveranciers betalingen
     ##### Proposals #####
     PropalSetup=Offertemoduleinstellingen
     ProposalsNumberingModules=Offertenummeringmodules
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Beheren van een login voor elk lid
     AdherentMailRequired=E-mail is vereist om een nieuw lid te creeren
     MemberSendInformationByMailByDefault=Vinkvakje om een bevestigingse-mail te sturen naar leden (validatie van nieuwe abonnementen). Staat standaard aan.
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP-instellingen
     LDAPGlobalParameters=Globale instellingen
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test type lid synchronisatie
     LDAPTestSearch= Test een LDAP-zoekopdracht
     LDAPSynchroOK=Synchronisatietest succesvol
     LDAPSynchroKO=Synchronisatietest mislukt
    -LDAPSynchroKOMayBePermissions=Synchronisatie test mislukt. Controleer of de verbinding met de server correct is ingesteld en LDAP udpates toestaat.
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP verbinding met de LDAP-server succesvol (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP verbinding met de LDAP-server mislukt (Server=%s, Port=%s)
    -LDAPBindOK=Verbinden en autorisatie met LDAP server geslaagd (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Verbinden en autoriseren met LDAP server mislukt (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP-server ingesteld voor versie 3
     LDAPSetupForVersion2=LDAP-server ingesteld voor versie 2
     LDAPDolibarrMapping=Dolibarr-mapping (in kaart brengen)
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Gebruikersnaam (samba, activedirectory)
     LDAPFieldLoginSambaExample=Voorbeeld: sAMAccountName
     LDAPFieldFullname=Voornaam Achternaam
     LDAPFieldFullnameExample=Voorbeeld: cn
    -LDAPFieldPasswordNotCrypted=Wachtwoord niet versleuteld
    -LDAPFieldPasswordCrypted=Wachtwoord versleuteld
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Voorbeeld: userPassword
     LDAPFieldCommonNameExample=Voorbeeld: cn
     LDAPFieldName=Naam
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=Op deze pagina kunt u de LDAP kenmerknaam in de LDAP struct
     LDAPDescValues=Voorbeeldwaarden zijn ingesteld voor <b>OpenLDAP</b> geladen met de volgende schema's: TODO {VAR INSTELLEN?)<b>core.schema, cosine.schema, inetorgperson.schema</b>). Als udie waarden gebruikt en OpenLDAP, wijzigen dan uw LDAP 'config'-bestand <b>slapd.conf</b> om alle die schema's te laden.
     ForANonAnonymousAccess=Voor een geautoriseerde verbinding (bijvoorbeeld om over schrijfrechten te beschikken)
     PerfDolibarr=Prestaties setup / optimaliseren rapport
    -YouMayFindPerfAdviceHere=U vindt op deze pagina een aantal controles of adviezen met betrekking tot de prestaties.
    -NotInstalled=Niet geïnstalleerd, zodat uw server niet vertraagt
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicatieve cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
    +HTTPCacheStaticResources=HTTP-cache voor statische bronnen (css, img, javascript)
     FilesOfTypeCached=Bestandtype %s wordt gecached door de HTTP server
     FilesOfTypeNotCached=Bestanden van het type %s, worden niet bewaard door de HTTP server
     FilesOfTypeCompressed=Bestanden van het type %s , worden gecomprimeerd door de HTTP server
     FilesOfTypeNotCompressed=Bestanden van het type %s , worden niet gecomprimeerd door de HTTP server
     CacheByServer=Cache via server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache via browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Automatische detectie niet mogelijk
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Standaardwaarden (voor nieuwe formulieren)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Standaard zoekfilters
     DefaultSortOrder=Standaard order-sortering
     DefaultFocus=Standaard velden voor focus
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Productenmoduleinstellingen
     ServiceSetup=Services module setup
     ProductServiceSetup=Producten en Diensten modules setup
     NumberOfProductShowInSelect=Maximaal aantal producten in 'combo-lijsten' (0 = onbeperkt)
    -ViewProductDescInFormAbility=Visualisatie van de productomschrijvingen in de formulieren (anders getoond als popup-tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualisatie van productomschrijvingen in andere taal
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Systeem begint te zoeken uit de combolijst op het moment dat u een toets indrukt (dit kan de prestaties aanzienlijk verhogen bij het zoeken in een groot aantal artikelen, maar als minder gebruiksvriendelijk worden ervaren)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Standaard streepjescodetype voor produkten
     SetDefaultBarcodeTypeThirdParties=Standaard streepjescodetype voor derde partijen
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1459,8 +1473,8 @@ YouCanUseDOL_DATA_ROOT=U kunt DOL_DATA_ROOT/dolibarr.log gebruiken voor een logb
     ErrorUnknownSyslogConstant=Constante %s is geen bekende 'syslog' constante
     OnlyWindowsLOG_USER=Windows only supports LOG_USER
     CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug)
    -SyslogFileNumberOfSaves=Log backups
    -ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency
    +SyslogFileNumberOfSaves=Log back-ups
    +ConfigureCleaningCronjobToSetFrequencyOfSaves=Configureer de geplande taak opschonen om de frequentie van de logboekback-up in te stellen
     ##### Donations #####
     DonationsSetup=Donatiemoduleinstellingen
     DonationsReceiptModel=Sjabloon van donatie-ontvangst
    @@ -1477,8 +1491,8 @@ BarcodeDescUPC=Streepjescodetype UPC
     BarcodeDescISBN=Streepjescodetype ISBN
     BarcodeDescC39=Streepjescodetype C39
     BarcodeDescC128=Streepjescodetype C128
    -BarcodeDescDATAMATRIX=Barcode of type Datamatrix
    -BarcodeDescQRCODE=Barcode of type QR code
    +BarcodeDescDATAMATRIX=Streepjescode van het type Datamatrix
    +BarcodeDescQRCODE=Streepjescode van type QR-code
     GenbarcodeLocation=Opdrachtregelprogramma voor streepjescodegeneratie (gebruikt door interne generator voor sommige barcode types). Moet compatible zijn met "genbarcode". <br>vb: /usr/local/bin/genbarcode
     BarcodeInternalEngine=Internal engine
     BarCodeNumberManager=Beheerder om automatisch barcode nummers te bepalen.
    @@ -1493,7 +1507,7 @@ RSSUrlExample=Een interessante RSS-feed
     MailingSetup=EMailingmoduleinstellingen
     MailingEMailFrom=E-mailafzender (Van) voor e-mails die verstuurd worden door de EMailingmodule
     MailingEMailError=Retoure-mailadres (Errors-to) voor e-mails met fouten
    -MailingDelay=Seconds to wait after sending next message
    +MailingDelay=Seconden te wachten na het verzenden van het volgende bericht
     ##### Notification #####
     NotificationSetup=Moduleinstellingen voor kennisgeving door e-mail
     NotificationEMailFrom=E-mailafzender (van) voor e-mails die verstuurd worden voor kennisgevingen
    @@ -1503,7 +1517,7 @@ SendingsSetup=Verzendingsmoduleinstellingen
     SendingsReceiptModel=Verzendontvangstsjabloon
     SendingsNumberingModules=Verzendingen nummering modules
     SendingsAbility=Ondersteun verzendingsbrieven voor afnemersleveringen
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Vrije tekst op verzendingen
     ##### Deliveries #####
     DeliveryOrderNumberingModules=ontvangstbevestigingennummeringsmodule
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Geavanceerde editor
     ActivateFCKeditor=Activeer FCKeditor voor:
     FCKeditorForCompany=WYSIWIG creatie / bewerking van bedrijfsomschrijving en notities
     FCKeditorForProduct=WYSIWIG creatie / bewerking van product- / dienstomschrijving en notities
    -FCKeditorForProductDetails=WYSIWIG creatie / bewerking van produktdetailregels voor alle entiteiten (Offertes, opdrachten, facturen, etc)<br><font class="warning">Waarschuwing: Gebruik van deze optie, voor dit doeleinde, wordt sterk afgeraden, omdat het problemen kan geven met speciale karakters en de paginaopmaak wanneer er PDF bestanden worden gegenereerd van deze gegevens.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creatie / bewerking van mailings
     FCKeditorForUserSignature=WYSIWIG creatie /aanpassing van ondertekening
     FCKeditorForMail=WYSIWIG creatie / bewerking voor alle e-mail (behalve Gereedschap-> E-mailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Verbinding geslaagd, maar de database lijkt geen OSCommerce database te zijn (Sleutel %s niet gevonden in tabel %s).
    -OSCommerceTestOk=Verbinding met de server '%s' en database '%s' met gebruiker '%s' succesvol.
    -OSCommerceTestKo1=Verbinding met de server '%s' gelukt maar de database '%s' kon niet worden bereikt.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Verbinding met server '%s' op de database '%s' met gebruiker '%s' succesvol.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Verbinding met server '%s' met gebruiker '%s' mislukt.
     ##### Stock #####
    -StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=Als u de verkooppunt module (de standaard POS module of een andere externe module) gebruikt, kan deze setup worden genegeerd door uw verkooppunt  module. De meeste verkooppunt modules zijn ontworpen om onmiddellijk een factuur te creëren en het standaard verlagen van voorraad. Dus, als je ja of nee een voorraad daling nodig hebt om bij het registreren van een verkoop op uw verkooppunt, controleer ook uw POS-module instellingen.
    +StockSetup=Voorraad-module instellen
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu verwijderd
     Menus=Menu's
    @@ -1548,7 +1562,7 @@ DetailRight=Voorwaarde om onbevoegde grijze menu's weer te geven
     DetailLangs=.lang bestandsnaam voor labelcodevertaling
     DetailUser=Intern / Extern / Alle
     Target=Doel
    -DetailTarget=Doel van links (_blank opent een nieuw venster)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Niveau (-1: menu bovenaan, 0: header menu, >0 menu en submenu)
     ModifMenu=Menu-item wijzigen
     DeleteMenu=Menu-item verwijderen
    @@ -1561,9 +1575,9 @@ OptionVATDefault=Standaard basis
     OptionVATDebitOption=Transactiebasis
     OptionVatDefaultDesc=BTW is verplicht:<br>- op levering / betalingen van goederen (wij gebruiken de factuurdatum)<br>- op betalingen van diensten
     OptionVatDebitOptionDesc=BTW is verplicht:<br>- op levering / betalingen van goederen<br>- op factuur (debet) voor diensten
    -OptionPaymentForProductAndServices=Cash basis for products and services
    +OptionPaymentForProductAndServices=Kasbasis voor producten en diensten
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Tijd van BTW opeisbaarheid standaard volgens gekozen optie:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Bij levering
     OnPayment=Bij betaling
     OnInvoice=Op factuur
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Boekhoudkundige leverancierscode
     AgendaSetup=Acties- en agendamoduleinstellingen
     PasswordTogetVCalExport=autorisatiecode van de exportlink
     PastDelayVCalExport=Exporteer geen gebeurtenissen ouder dan
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Stel automatisch dit soort evenementen in zoekfilter van agendaweergave
    -AGENDA_DEFAULT_FILTER_STATUS=Stel automatisch deze status voor evenementen in zoekfilter van agendaweergave
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Welk tabblad wilt u standaard openen bij het selecteren van menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    -AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
    -AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER_SOUND=Schakel geluidsmelding in
    +AGENDA_SHOW_LINKED_OBJECT=Gekoppeld object weergeven in agendaweergave
     ##### Clicktodial #####
     ClickToDialSetup='Click-To-Dial' moduleinstellingen
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Gebruik alleen de link "tel:" bij telefoonnummers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Verkooppunten
     CashDeskSetup=Verkooppuntenmoduleinstellingen
    -CashDeskThirdPartyForSell=Algemene Klant te gebruiken bij verkopen
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Te gebruiken rekening voor ontvangst van contacte betalingen
     CashDeskBankAccountForCheque= Te gebruiken rekening voor ontvangst van betalingen per cheque
     CashDeskBankAccountForCB= Te gebruiken rekening voor ontvangst van betalingen per CreditCard
    -CashDeskDoNotDecreaseStock=Uitschakelen voorraad daling bij een verkoop via verkooppunt (indien "Nee", stock daling wordt gedaan voor elke verkoope gedaan via POS, wat er ook in de opties ingesteld staat in de module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Kies magazijn te gebruiken voor voorraad daling
    -StockDecreaseForPointOfSaleDisabled=Stock daling van verkooppunt uitgeschakeld
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=De stock afname van POS is niet compatibel met lot/serienummer beheer
    -CashDeskYouDidNotDisableStockDecease=Je hebt  voorraad daling bij het maken van een verkoop via verkooppunt niet uitgeschakeld. Dus een magazijn is vereist.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Weblinkmoduleinstellingen
    -BookmarkDesc=Deze module maakt het u mogelijk 'weblinks' te beheren. U kunt ook verwijzingen naar elke Dolibarr pagina of externe website in uw linker menu zetten.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximaal aantal 'weblinks' die in het linker menu getoond worden
     ##### WebServices #####
     WebServicesSetup=Webdienstenmoduleinstellingen
    @@ -1617,12 +1631,12 @@ WebServicesDesc=Door het inschakelen van deze module, word Dolibarr een webdiens
     WSDLCanBeDownloadedHere='WSDL descriptor'-bestanden van de aangeboden diensten kunnen hier gedownload worden
     EndPointIs=SOAP-clients moeten hun verzoeken verzenden naar het Dolibarr-eindpunt dat beschikbaar is op URL
     ##### API ####
    -ApiSetup=API module setup
    +ApiSetup=API-module instellen
     ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services.
     ApiProductionMode=Enable production mode (this will activate use of a cache for services management)
    -ApiExporerIs=You can explore and test the APIs at URL
    +ApiExporerIs=U kunt de API's op URL verkennen en testen
     OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed
    -ApiKey=Key for API
    +ApiKey=Sleutel voor API
     WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it.
     ##### Bank #####
     BankSetupModule=Bankmoduleinstellingen
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-Bedrijfmoduleinstellingen
     ##### Suppliers #####
     SuppliersSetup=Leveranciersmoduleinstellingen
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Leveranciersfacturen nummering modellen
     IfSetToYesDontForgetPermission=Indien ingesteld op ja, vergeet dan niet om machtigingen te verlenen aan groepen of gebruikers ​​voor het toestaan van de tweede goedkeuring
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Projectenmoduleinstellingen
     ProjectsModelModule=Projectenrapportagedocumentsjabloon
     TasksNumberingModules=Taken nummering module
     TaskModelModule=Taken rapporten documentmodel
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Boekingsperioden
    @@ -1679,90 +1693,91 @@ TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers
     IncludePath=Include path (gedefinieerd in de variabele %s)
     ExpenseReportsSetup=Setup van module onkostennota's
     TemplatePDFExpenseReports=Document sjablonen om onkostennota's document te genereren
    -ExpenseReportsIkSetup=Setup of module Expense Reports - Milles index
    +ExpenseReportsIkSetup=Setup van module onkostendeclaraties - Milles index
     ExpenseReportsRulesSetup=Opzetten van module onkostendeclaraties - regels
    -ExpenseReportNumberingModules=Expense reports numbering module
    +ExpenseReportNumberingModules=Onkostenrapportage nummeringsmodule
     NoModueToManageStockIncrease=Geen module in staat om automatische voorraad toename beheren is geactiveerd. Stock verhoging zal worden gedaan via handmatige invoer.
     YouMayFindNotificationsFeaturesIntoModuleNotification=U kunt opties voor e-mailberichten door het inschakelen en configureren van de module "Meldingen " te vinden.
     ListOfNotificationsPerUser=Lijst van meldingen per gebruiker*
    -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
    +ListOfNotificationsPerUserOrContact=Lijst met meldingen per gebruiker * of per contact **
     ListOfFixedNotifications=Lijst met vaste meldingen
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoContactCardToAddMore=Ga naar het tabblad "Meldingen" bij een relatie om meldingen voor contacten/adressen toe te voegen of te verwijderen
     Threshold=Drempel
     BackupDumpWizard=Wizard om database backup dump bestand op te bouwen
     SomethingMakeInstallFromWebNotPossible=Installatie van externe module is niet mogelijk via de webinterface om de volgende reden:
     SomethingMakeInstallFromWebNotPossible2=Om deze reden, is het upgrade process hier beschreven alleen in handmatige stappen door een bevoorrechte gebruiker te doen.
     InstallModuleFromWebHasBeenDisabledByFile=Installeren van externe module van toepassing is uitgeschakeld door uw beheerder. Je moet hem vragen om het bestand <strong>%s</strong>  te verwijderen om deze functie mogelijk te maken.
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
    -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
    -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    -TextTitleColor=Text color of Page title
    +HighlightLinesOnMouseHover=Markeer tabellijnen wanneer u er met de muis overheen gaat
    +HighlightLinesColor=Markeer de kleur van de lijn wanneer u er met de muis overheengaat (blijf anders leeg)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
    +TextTitleColor=Tekstkleur van paginatitel
     LinkColor=Link-kleur
    -PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes
    -BackgroundColor=Background color
    -TopMenuBackgroundColor=Background color for Top menu
    +PressF5AfterChangingThis=Druk op CTRL + F5 op het toetsenbord of wis de cache van uw browser nadat u deze waarde hebt gewijzigd om deze effectief te maken
    +NotSupportedByAllThemes=Werkt met kernthema's, mogelijk niet ondersteund door externe thema's
    +BackgroundColor=Achtergrond kleur
    +TopMenuBackgroundColor=Achtergrondkleur voor hoofdmenu
     TopMenuDisableImages=Verberg afbeeldingen in Top menu
    -LeftMenuBackgroundColor=Background color for Left menu
    -BackgroundTableTitleColor=Background color for Table title line
    -BackgroundTableTitleTextColor=Text color for Table title line
    -BackgroundTableLineOddColor=Background color for odd table lines
    -BackgroundTableLineEvenColor=Background color for even table lines
    -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
    -NbAddedAutomatically=Number of days added to counters of users (automatically) each month
    +LeftMenuBackgroundColor=Achtergrondkleur voor linkermenu
    +BackgroundTableTitleColor=Achtergrondkleur voor tabeltitelregel
    +BackgroundTableTitleTextColor=Tekstkleur voor tabeltitelregel
    +BackgroundTableLineOddColor=Achtergrondkleur voor oneven tabellijnen
    +BackgroundTableLineEvenColor=Achtergrondkleur voor gelijkmatige tabellijnen
    +MinimumNoticePeriod=Minimale opzegtermijn (uw verlofaanvraag moet vóór deze vertraging worden gedaan)
    +NbAddedAutomatically=Aantal dagen toegevoegd aan tellers van gebruikers (automatisch) elke maand
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    -ColorFormat=The RGB color is in HEX format, eg: FF0000
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +ColorFormat=De RGB-kleur heeft het HEX-formaat, bijvoorbeeld: FF0000
     PositionIntoComboList=Positie van regel in combolijst
     SellTaxRate=BTW tarief
    -RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
    +RecuperableOnly=Ja voor BTW  "Niet waargemaakt maar herstelbaar", bestemd voor een deelstaat in Frankrijk. Houd in alle andere gevallen de waarde "Nee" aan.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    -TemplateForElement=This template record is dedicated to which element
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +TemplateForElement=Deze sjabloonrecord is gewijd aan welk element
     TypeOfTemplate=Template soort
    -TemplateIsVisibleByOwnerOnly=Template alleen zichtbaar voor eigenaar
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Overal zichtbaar
    -VisibleNowhere=Visible nowhere
    +VisibleNowhere=Nergens zichtbaar
     FixTZ=TimeZone fix
     FillFixTZOnlyIfRequired=Voorbeeld: +2 (alleen invullen bij problemen)
     ExpectedChecksum=Verwachte checksum
     CurrentChecksum=Huidige controlesom
    -ForcedConstants=Required constant values
    +ForcedConstants=Vereiste constante waarden
     MailToSendProposal=Klantenoffertes
     MailToSendOrder=Klantenbestelling
     MailToSendInvoice=Klantenfactuur
     MailToSendShipment=Verzendingen
     MailToSendIntervention=Interventies
    -MailToSendSupplierRequestForQuotation=Quotation request
    -MailToSendSupplierOrder=Purchase orders
    -MailToSendSupplierInvoice=Vendor invoices
    +MailToSendSupplierRequestForQuotation=Offerte aanvraag
    +MailToSendSupplierOrder=Inkooporders
    +MailToSendSupplierInvoice=Facturen van leveranciers
     MailToSendContract=Contracten
     MailToThirdparty=Klant
     MailToMember=Leden
     MailToUser=Gebruikers
    -MailToProject=Projects page
    +MailToProject=Projecten pagina
     ByDefaultInList=Standaard weergeven in de lijstweergave
     YouUseLastStableVersion=U gebruikt de nieuwste stabiele versie
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Sjablonen voor productdocumenten
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    -SeeSubstitutionVars=See * note for list of possible substitution variables
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
    +SeeSubstitutionVars=Zie * opmerking voor een lijst met mogelijke substitutievariabelen
     SeeChangeLog=Zie ChangeLog bestand (alleen in het Engels)
     AllPublishers=Alle uitgevers
     UnknownPublishers=Onbekende uitgevers
     AddRemoveTabs=Verwijder of voeg tabs toe
    -AddDataTables=Add object tables
    +AddDataTables=Objecttabellen toevoegen
     AddDictionaries=Voeg woordenboeken toe
    -AddData=Add objects or dictionaries data
    -AddBoxes=Add widgets
    -AddSheduledJobs=Add scheduled jobs
    -AddHooks=Add hooks
    -AddTriggers=Add triggers
    +AddData=Objecten of woordenboekgegevens toevoegen
    +AddBoxes=Voeg widgets toe
    +AddSheduledJobs=Voeg geplande taken toe
    +AddHooks=Voeg haken toe
    +AddTriggers=Voeg triggers toe
     AddMenus=Voeg menu's toe
     AddPermissions=Voeg rechten toe
     AddExportProfiles=Voeg exporteer-profiel toe
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Voeg andere pagina's of diensten toe
     AddModels=Voeg document of genummerde templates toe
     AddSubstitutions=Voeg vervangende toetscombinaties toe
     DetectionNotPossible=Detectie is niet mogelijk
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Lijst beschikbare APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Startpagina
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=Deze gebruiker heeft geen toestemming gedefinieerd
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    -BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
    +ModuleEnabledAdminMustCheckRights=Module is geactiveerd. Machtigingen voor geactiveerde module (s) werden alleen aan beheerders gegeven. Mogelijk moet u, indien nodig, handmatig rechten verlenen aan andere gebruikers of groepen.
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
    +BaseCurrency=Referentievaluta van het bedrijf (ga naar de setup van het bedrijf om dit te wijzigen)
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Linker marge op PDF
     MAIN_PDF_MARGIN_RIGHT=Rechter marge op PDF
     MAIN_PDF_MARGIN_TOP=Bovenmarge op PDF
    -MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    -SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    -SeveralLangugeVariatFound=Several language variants found
    +MAIN_PDF_MARGIN_BOTTOM=Onder-marge op PDF
    +NothingToSetup=There is no specific setup to do for this module.
    +SetToYesIfGroupIsComputationOfOtherGroups=Stel dit in op Ja als deze groep een berekening van andere groepen is
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +SeveralLangugeVariatFound=Verschillende taalvarianten gevonden
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Verwijder speciale tekens
    -COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=AVG contactpersoon
    -GDPRContactDesc=Als u gegevens over Europese bedrijven / burgers opslaat, kunt u hier de contactpersoon opslaan welke verantwoordelijk is voor de Algemene Verordening Gegevensbescherming
    +COMPANY_AQUARIUM_CLEAN_REGEX=Regex-filter om waarde te reinigen (COMPANY_AQUARIUM_CLEAN_REGEX)
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
    -ResourceSetup=Configuration du module Resource
    -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
    -DisabledResourceLinkUser=Disable feature to link a resource to users
    -DisabledResourceLinkContact=Disable feature to link a resource to contacts
    -ConfirmUnactivation=Confirm module reset
    +ResourceSetup=Resource Module configureren
    +UseSearchToSelectResource=Gebruik een zoekformulier om een ​​resource te kiezen (in plaats van een vervolgkeuzelijst).
    +DisabledResourceLinkUser=Schakel functie uit om een ​​bron te koppelen aan gebruikers
    +DisabledResourceLinkContact=Schakel functie uit om een ​​bron te koppelen aan contacten
    +ConfirmUnactivation=Bevestig de module-reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/nl_NL/agenda.lang b/htdocs/langs/nl_NL/agenda.lang
    index d7dc3c5e1cb..9d39904b900 100644
    --- a/htdocs/langs/nl_NL/agenda.lang
    +++ b/htdocs/langs/nl_NL/agenda.lang
    @@ -31,14 +31,15 @@ ViewWeek=Weekweergave
     ViewPerUser=Per gebruiker weergave
     ViewPerType=Weergave per type
     AutoActions= Automatisch invullen van de agenda
    -AgendaAutoActionDesc= Definieer hier een gebeurtenis waar Dolibarr deze automatisch in de agenda plaatst. Als niets is aangevinkt worden alleen handmatige acties zichtbaar in de agenda. Automatisch volgen van acties gedaan op objecten (zoals valideren, status wijzigingen) worden niet opgeslagen.
    -AgendaSetupOtherDesc= Op deze pagina kunt u andere instellingen van de agendamodule instellen.
    +AgendaAutoActionDesc= Hier kunt u gebeurtenissen definiëren die Dolibarr automatisch in Agenda moet maken. Als niets wordt gecontroleerd, worden alleen handmatige acties opgenomen in logboeken en weergegeven in Agenda. Automatisch bijgehouden zakelijke acties die worden uitgevoerd op objecten (validatie, statuswijziging), worden niet opgeslagen.
    +AgendaSetupOtherDesc= Deze pagina biedt opties om export van uw Dolibarr-evenementen naar een externe agenda (thunderbird, google calendar, ...) mogelijk te maken
     AgendaExtSitesDesc=Op deze pagina kunt configureren externe agenda.
     ActionsEvents=Gebeurtenissen waarvoor Dolibarr automatisch een item zal maken in de agenda
    -EventRemindersByEmailNotEnabled=Herinneringen via e-mail van agenda afspraken is niet aangezet in de module set-up van het Agenda onderdeel.
    +EventRemindersByEmailNotEnabled=Gebeurtenisherinneringen per e-mail zijn niet ingeschakeld in %s-module setup.
     ##### Agenda event labels #####
    -NewCompanyToDolibarr=Derde partij %s aangemaakt
    +NewCompanyToDolibarr=Relatie %s aangemaakt
     ContractValidatedInDolibarr=Contract %s gevalideerd
    +CONTRACT_DELETEInDolibarr=Contract %s verwijderd
     PropalClosedSignedInDolibarr=Voorstel %s getekend
     PropalClosedRefusedInDolibarr=Voorstel %s afgewezen
     PropalValidatedInDolibarr=Voorstel %s gevalideerd
    @@ -53,9 +54,9 @@ MemberValidatedInDolibarr=Lid %s gevalideerd
     MemberModifiedInDolibarr=Lid %s gewijzigd
     MemberResiliatedInDolibarr=Lidmaatschap %s beëindigd
     MemberDeletedInDolibarr=Lid %s verwijderd
    -MemberSubscriptionAddedInDolibarr=Subscription %s for member %s added
    -MemberSubscriptionModifiedInDolibarr=Subscription %s for member %s modified
    -MemberSubscriptionDeletedInDolibarr=Subscription %s for member %s deleted
    +MemberSubscriptionAddedInDolibarr=Abonnement %s voor lid %s toegevoegd
    +MemberSubscriptionModifiedInDolibarr=Abonnement %s voor lid %s gewijzigd
    +MemberSubscriptionDeletedInDolibarr=Abonnement %s voor lid %s verwijderd
     ShipmentValidatedInDolibarr=Verzending %s gevalideerd
     ShipmentClassifyClosedInDolibarr=Verzending %s geclassificeerd als gefactureerd
     ShipmentUnClassifyCloseddInDolibarr=Verzending %s geclassificeerd als heropend
    @@ -97,10 +98,10 @@ DateActionStart=Startdatum
     DateActionEnd=Einddatum
     AgendaUrlOptions1=U kunt ook de volgende parameters gebruiken om te filteren:
     AgendaUrlOptions3=<b>login=%s</b> om uitvoer van acties gedaan door gebruiker <b>%s</b> te beperken.
    -AgendaUrlOptionsNotAdmin=<b>logina=!%s</b> to restrict output to actions not owned by user <b>%s</b>.
    -AgendaUrlOptions4=<b>logint=%s</b> to restrict output to actions assigned to user <b>%s</b> (owner and others).
    -AgendaUrlOptionsProject=<b>project=__PROJECT_ID__</b> to restrict output to actions linked to project <b>__PROJECT_ID__</b>.
    -AgendaUrlOptionsNotAutoEvent=<b>notactiontype=systemauto</b> to exclude automatic event.
    +AgendaUrlOptionsNotAdmin=<b>login=%s</b> om uitvoer van acties die niet zijn toegewezen aan gebruiker <b>%s</b> te beperken.
    +AgendaUrlOptions4=<b> logint = %s </b>om de uitvoer te beperken tot acties die zijn toegewezen aan gebruiker <b> %s </b>(eigenaar en anderen).
    +AgendaUrlOptionsProject=<b>project=PROJECT_ID</b> om uitvoer van acties gekoppeld aan project<b>PROJECT_ID</b> te beperken.
    +AgendaUrlOptionsNotAutoEvent=<b>notactiontype=systemauto</b> om automatische gebeurtenissen uit te sluiten.
     AgendaShowBirthdayEvents=Verjaardagen van contacten weergeven
     AgendaHideBirthdayEvents=Verjaardagen van contacten verbergen
     Busy=Bezig
    @@ -110,9 +111,9 @@ DefaultWorkingHours=Default werkuren in dag (Voorbeeld: 9-18)
     # External Sites ical
     ExportCal=Export kalender
     ExtSites=Externe agenda
    -ExtSitesEnableThisTool=Toon externe kalenders (gedefinieerd in de globale setup) in de agenda. Heeft geen invloed op de externe agenda's gedefinieerd door gebruikers.
    +ExtSitesEnableThisTool=Toon externe agenda's (gedefinieerd in algemene setup) in Agenda. Heeft geen invloed op externe agenda's die door gebruikers zijn gedefinieerd.
     ExtSitesNbOfAgenda=Aantal kalenders
    -AgendaExtNb=Calendar no. %s
    +AgendaExtNb=Kalender nr. %s
     ExtSiteUrlAgenda=URL aan. Ical bestand te openen
     ExtSiteNoLabel=Geen omschrijving
     VisibleTimeRange=Zichtbare werktijd
    diff --git a/htdocs/langs/nl_NL/banks.lang b/htdocs/langs/nl_NL/banks.lang
    index 1b0ba8e8be4..e3dc159e1ad 100644
    --- a/htdocs/langs/nl_NL/banks.lang
    +++ b/htdocs/langs/nl_NL/banks.lang
    @@ -7,7 +7,7 @@ BankName=Banknaam
     FinancialAccount=Rekening
     BankAccount=Bankrekening
     BankAccounts=Bankrekeningen
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Toon rekening
     AccountRef=Financiële rekening referentie
     AccountLabel=Financiële rekening label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Adres rekeninghouder
     BankAccountCountry=Land van rekening
     BankAccountOwner=Naam rekeninghouder
     BankAccountOwnerAddress=Adres rekeninghouder
    -RIBControlError=Integriteitscontrole mislukt. Dit betekend dat de informatie van deze bankrekening onvolledig of onjuist is (controleer het land, de nummers en de IBAN code).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Creëer rekening
     NewBankAccount=Nieuwe rekening
     NewFinancialAccount=Nieuwe financiële rekening
    @@ -76,7 +76,8 @@ TransactionsToConciliate=Items af te stemmen
     Conciliable=Kunnen worden afgestemd
     Conciliate=Afstemmen
     Conciliation=Afstemming
    -ReconciliationLate=Reconciliation late
    +SaveStatementOnly=Afschrift alleen opslaan
    +ReconciliationLate=Later afstemmen
     IncludeClosedAccount=Inclusief opgeheven rekeningen
     OnlyOpenedAccount=Alleen open accounts
     AccountToCredit=Te crediteren rekening
    @@ -103,8 +104,8 @@ WithdrawalPayment=Intrekking betaling
     SocialContributionPayment=Sociale/fiscale belastingbetaling
     BankTransfer=Bankoverboeking
     BankTransfers=Bankoverboeking
    -MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +MenuBankInternalTransfer=Interne overboeking
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Van
     TransferTo=Aan
     TransferFromToDone=Een overboeking van <b>%s</b> naar <b>%s</b> van <b>%s</b> is geregistreerd.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Weet u zeker dat u deze betaling via cheque wilt verwi
     BankChecks=Bankcheque
     BankChecksToReceipt=Cheques in afwachting van storting
     ShowCheckReceipt=Toon controleren stortingsbewijs
    -NumberOfCheques=Aantal cheques
    +NumberOfCheques=Checknr.
     DeleteTransaction=Ingave verwijderen
     ConfirmDeleteTransaction=Weet u zeker dat u deze boeking wilt verwijderen?
     ThisWillAlsoDeleteBankRecord=Hiermee wordt ook de boeking in de bank verwijderd
    @@ -135,8 +136,8 @@ BankTransactionLine=Bankmutatie
     AllAccounts=All bank and cash accounts
     BackToAccount=Terug naar rekening
     ShowAllAccounts=Toon alle rekeningen
    -FutureTransaction=Overboeking in de toekomst. Geen manier mogelijk om af te stemmen
    -SelectChequeTransactionAndGenerate=Select / filter controleert op te nemen in het controleren stortingsbewijs en op &quot;Create&quot; klikken.
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Kies het bankafschrift in verband met de bemiddeling. Gebruik een sorteerbaar numerieke waarde: YYYYMM of YYYYMMDD
     EventualyAddCategory=Tenslotte een categorie opgeven waarin de gegevens bewaard kunnen worden
     ToConciliate=Afstemmen?
    @@ -146,20 +147,21 @@ AllRIB=Alle BAN
     LabelRIB=BAN label
     NoBANRecord=Geen BAN gegeven
     DeleteARib=Verwijderen BAN gegeven
    -ConfirmDeleteRib=Are you sure you want to delete this BAN record?
    +ConfirmDeleteRib=Weet u zeker dat u dit BAN-record wilt verwijderen?
     RejectCheck=Teruggekeerde cheque
    -ConfirmRejectCheck=Are you sure you want to mark this check as rejected?
    +ConfirmRejectCheck=Weet u zeker dat u deze controle wilt markeren als afgewezen?
     RejectCheckDate=Teruggave datum cheque
     CheckRejected=Teruggekeerde cheque
     CheckRejectedAndInvoicesReopened=Cheque teruggekeerd en facturen heropend
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=Nieuwe diverse betalingen
     VariousPayment=Diverse betalingen
     VariousPayments=Diverse betalingen
     ShowVariousPayment=Toon diverse betalingen
     AddVariousPayment=Voeg verschillende betalingen toe
    -SEPAMandate=SEPA mandate
    -YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +SEPAMandate=SEPA-mandaat
    +YourSEPAMandate=Uw SEPA-mandaat
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/nl_NL/bills.lang b/htdocs/langs/nl_NL/bills.lang
    index f87c18385d9..1098fa8684f 100644
    --- a/htdocs/langs/nl_NL/bills.lang
    +++ b/htdocs/langs/nl_NL/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma factuur
     InvoiceProFormaDesc=Een proforma factuur is een voorlopige factuur en een orderbevestiging. Het is geen officiële factuur, maar bedoeld voor afnemers in het buitenland om bijvoorbeeld een vergunning aan te vragen of de inklaring voor te bereiden. Ze worden ook gebruikt voor het aanvragen van een Letter of Credit (L/C).
     InvoiceReplacement=Vervangingsfactuur
     InvoiceReplacementAsk=Vervangingsfactuur voor factuur
    -InvoiceReplacementDesc=<b>Vervanging factuur</b> wordt gebruikt om een onbetaalde factuur te annuleren en te vervangen. <br><br> Opmerking: Alleen facturen zonder betaling kunne worden vervangen. Als de factuur die u vervangt nog niet gesloten is, wordt deze automatisch gesloten voor 'verlaten'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Creditnota
     InvoiceAvoirAsk=Creditnota te corrigeren factuur
    -InvoiceAvoirDesc=De <b>creditnota</b> is een negatieve factuur die gebruikt wordt wanneer op een factuur het bedrag verschilt van het werkelijk betaalde bedrag (bijvoorbeeld omdat door de afnemer per abuis te veel is betaald of een aantal producten zijn geretouneerd).<br><br>Opmerking: de originele factuur moet worden gesloten (en geclassificeerd als zijnde 'betaald' of 'gedeeltelijk betaald') om een creditnota te kunnen aanmaken.
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Maak Credit Nota met lijnen van de oorsprongkelijke factuur
     invoiceAvoirWithPaymentRestAmount=Maak Creditnota van resterend onbetaald bedrag van herkomst factuur
     invoiceAvoirLineWithPaymentRestAmount=Credit Nota voor de resterende openstaande bedrag
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=Factuur valuta
     PaidBack=Terugbetaald
     DeletePayment=Betaling verwijderen
     ConfirmDeletePayment=Weet u zeker dat u deze betaling wilt verwijderen?
    -ConfirmConvertToReduc=Will u deze %s converteren naar een absolute korting?<br>Het bedrag zal worden verspreid over alle kortingen en kan worden gebruikt als een korting voor een bestaande of toekomstige factuur voor deze klant.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Leveranciersbetalingen
     ReceivedPayments=Ontvangen betalingen
     ReceivedCustomersPayments=Ontvangen betalingen van afnemers
    -PayedSuppliersPayments=Betaald aan leverancier
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Te valideren ontvangen afnemersbetalingen
     PaymentsReportsForYear=Betalingsverslagen voor %s
     PaymentsReports=Betalingsverslagen
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Betalingsvoorwaarden
     PaymentAmount=Betalingsbedrag
     ValidatePayment=Valideer deze betaling
     PaymentHigherThanReminderToPay=Betaling hoger dan herinnering te betalen
    -HelpPaymentHigherThanReminderToPay=Pas op, het bedrag van een of meerdere betalingen is hoger is dan de uitstaande factuur. <br> Corrigeer uw invoer, of anders bevestigen en na denken over het verlenen van een krediet van te veel betaald bij het afsluiten van elke betaalde factuur.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Klassificeer 'betaald'
     ClassifyPaidPartially=Classificeer 'gedeeltelijk betaald'
     ClassifyCanceled=Classificeer 'verlaten'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Gesloten (onbetaald)
     BillStatusClosedPaidPartially=Betaald (gedeeltelijk)
     BillShortStatusDraft=Concept
     BillShortStatusPaid=Betaald
    -BillShortStatusPaidBackOrConverted=Teruggestort of omgezet
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Betaald
     BillShortStatusCanceled=Verlaten
     BillShortStatusValidated=Gevalideerd
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Niet terugbetaald
     BillShortStatusClosedUnpaid=Gesloten
     BillShortStatusClosedPaidPartially=Betaald (gedeeltelijk)
     PaymentStatusToValidShort=Te valideren
    -ErrorVATIntraNotConfigured=BTW-nummer vooriIntracommunautaire transacties, nog niet vastgesteld.
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Geen standaardbetaalwijze ingesteld. Ga naar de instellingen van de factuurmodule (Home->Instellingen->Modules), om dit op te lossen.
     ErrorCreateBankAccount=Creëer een bankrekening, daarna gaat u naar de Instellingen van de factuurmodule om de betaalmogelijkheden te definiëren
     ErrorBillNotFound=Factuur %s bestaat niet
    -ErrorInvoiceAlreadyReplaced=Fout, u probeert een factuur die factuur %s moet vervangen te valideren, maar deze is al vervangen door factuur %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Fout, korting al gebruikt
     ErrorInvoiceAvoirMustBeNegative=Fout, correcte factuur moet een negatief bedrag hebben
     ErrorInvoiceOfThisTypeMustBePositive=Fout, dit soort facturen moet een positief bedrag hebben
     ErrorCantCancelIfReplacementInvoiceNotValidated=Fout, kan een factuur niet annuleren die is vervangen door een ander factuur als deze nog in conceptstatus is
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Van
     BillTo=Geadresseerd aan
     ActionsOnBill=Acties op factuur
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Weet u zeker dat u de status van factuur <b> %s </b> wil
     ConfirmCancelBill=Weet u zeker dat u factuur <b> %s </b> wilt annuleren?
     ConfirmCancelBillQuestion=Wilt u deze factuur classificeren als 'verlaten'?
     ConfirmClassifyPaidPartially=Weet u zeker dat u de status van factuur <b> %s </b> wilt wijzigen naar betaald?
    -ConfirmClassifyPaidPartiallyQuestion=Deze factuur is niet volledig betaald. Wat zijn de redenen om deze factuur te sluiten?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Aan restant te betalen <b>(%s %s)</b> wordt een korting toegekend, omdat de betaling werd gedaan vóór de termijn. Ik regulariseer de BTW met een creditnota.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Aan restant te betalen <b>(%s %s)</b> wordt een korting toegekend, omdat de betaling werd verricht vóór de termijn. Ik accepteer de BTW te verliezen op deze korting.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Aan restant te betalen <b>(%s %s)</b> wordt een korting toegekend, omdat de betaling werd verricht vóór de termijn. Ik vorder de BTW terug van deze korting, zonder een credit nota.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Slechte afnemer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Producten gedeeltelijk teruggegeven
     ConfirmClassifyPaidPartiallyReasonOther=Claim verlaten om andere redenen
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Deze keuze is mogelijk als uw factuur werd gelabeld met de juiste woorden. (Voorbeeld: "Alleen de belasting die hoort bij de prijs die echt betaald is geeft recht op aftrek")
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In sommige landen zou deze keuze alleen kunnen als uw factuur de juiste notitie bevat.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Maak deze keuze als alle andere keuzes niet passend zijn
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Een <b>slechte afnemer</b> is een afnemer die weigert zijn schulden te betalen.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Deze keuze wordt gebruikt wanneer er geen complete betaling is ontvangen, omdat sommige van de producten zijn geretourneerd
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Maak deze keuze als alle andere keuzes niet passend zijn, bijvoorbeeld in de volgende gevallen: <br> - gedeeltelijke betaling omdat een aantal producten geretourneerd zijn<br>- Afnemer te belangrijk: na het vergeten van een korting <br> In alle gevallen moet het teveel in rekening gebrachte aangepast worden door aan de afnemer een credit factuur te sturen.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Andere
     ConfirmClassifyAbandonReasonOtherDesc=Deze keuze zal in alle andere gevallen worden gebruikt. Bijvoorbeeld omdat u van plan bent om de factuur te vervangen.
     ConfirmCustomerPayment=Bevestigt u deze betaling voor <b> %s </b> %s ?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Bevestigd u deze betaling voor <b> %s </b> %s ?
     ConfirmValidatePayment=Weet u zeker dat u deze betaling wilt valideren? Na validatie kunnen er geen wijzigingen meer worden gemaakt.
     ValidateBill=Valideer factuur
     UnvalidateBill=Unvalidate factuur
    -NumberOfBills=Aantal facturen
    -NumberOfBillsByMonth=Aantal facturen per maand
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Bedrag van de facturen
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Aantal facturen per maand (BTW)
     ShowSocialContribution=Toon sociale/fiscale belasting
     ShowBill=Toon factuur
    @@ -260,9 +262,9 @@ Repeatables=Sjablonen
     ChangeIntoRepeatableInvoice=Omzetten in sjabloon factuur
     CreateRepeatableInvoice=Maak sjabloon factuur
     CreateFromRepeatableInvoice=Maak van sjabloon factuur
    -CustomersInvoicesAndInvoiceLines=Afnemersfacturen en factuurregels
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Afnemersfacturen en betalingen
    -ExportDataset_invoice_1=Afnemersfacturen en factuurregels
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Afnemersfacturen en -betalingen
     ProformaBill=Proforma factuur:
     Reduction=Vermindering
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Kortingen of tegoeden reeds verbruikt
     CustomerDiscounts=Klantkorting
     SupplierDiscounts=Leverancierskortingen
     BillAddress=Factuuradres
    -HelpEscompte=Deze korting wordt toegekend aan de afnemer omdat de betaling werd gemaakt ruim voor de termijn.
    -HelpAbandonBadCustomer=Dit bedrag is verlaten (afnemer beschouwt als slechte betaler) en wordt beschouwd als een buitengewoon verlies.
    -HelpAbandonOther=Dit bedrag is verlaten, omdat het een fout was (verkeerde afnemer of factuur vervangen door een andere bijvoorbeeld)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Toon betalings id sociale/fiscale belasting
     PaymentId=Betalings id
     PaymentRef=Betalingsreferentie
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Geen factuur geselecteerd
     CloneInvoice=Kloon factuur
     ConfirmCloneInvoice=Weet u zeker dat u factuur <b> %s </b> wilt klonen?
     DisabledBecauseReplacedInvoice=Actie uitgeschakeld omdat factuur is vervangen
    -DescTaxAndDividendsArea=Dit gedeelte geeft een opsomming weer van alle speciale betalingen. Alleen regels met betalingen in dit jaar worden weergegeven
    -NbOfPayments=Aantal betalingen
    +DescTaxAndDividendsArea=Dit gebied geeft een overzicht van alle betalingen voor speciale uitgaven. Alleen records met de betaling gedurende het kalender jaar zijn hier opgenomen.
    +NbOfPayments=No. of payments
     SplitDiscount=Splits korting in twee
    -ConfirmSplitDiscount=Weet u zeker dat u deze korting <b> %s </b> %s wilt splitsen in 2 lagere kortingen?
    -TypeAmountOfEachNewDiscount=Voer het bedrag voor elk van de twee delen in:
    -TotalOfTwoDiscountMustEqualsOriginal=Totaal van de twee nieuwe korting moet gelijk zijn aan het originele kortingsbedrag.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Weet u zeker dat u deze korting wilt verwijderen?
     RelatedBill=Gerelateerde factuur
     RelatedBills=Gerelateerde facturen
     RelatedCustomerInvoices=Verwante klantenfacturen
     RelatedSupplierInvoices=Verwante leveranciersfacturen
     LatestRelatedBill=Laatste gerelateerde factuur
    -WarningBillExist=Waarschuwing één of meer facturen bestaan reeds 
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Samenvoeging PDF-tool
     AmountPaymentDistributedOnInvoice=Te betalen bedrag verdeeld over de factuur
    -PaymentOnDifferentThirdBills=Betalingen toestaan van verschillende derden met hetzelfde moeder bedrijf
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Betalingsopmerking
     ListOfPreviousSituationInvoices=Lijst van vorige situatie facturen
     ListOfNextSituationInvoices=Lijst van volgende situatie facturen
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Cheque
     PaymentTypeShortCHQ=Cheque
     PaymentTypeTIP=TIP (Documenten tegen betaling)
     PaymentTypeShortTIP=Betaling fooi
    -PaymentTypeVAD=Internetbetaling
    -PaymentTypeShortVAD=Internetbetaling
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bankcheque
     PaymentTypeShortTRA=Ontwerp
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bankgegevens
     BankCode=Bankcode
    -DeskCode=Bankcode
    +DeskCode=Office code
     BankAccountNumber=Rekeningnummer
    -BankAccountNumberKey=Sleutel
    +BankAccountNumberKey=Check digits
     Residence=Incasso
    -IBANNumber=IBAN-nummer
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=BIC / SWIFT-nummer
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Betaling via overschrijving op de volgende ba
     VATIsNotUsedForInvoice=* BTW niet van toepassing
     LawApplicationPart1=Door toepassing van burgerwetboek
     LawApplicationPart2=blijven de goederen eigendom van
    -LawApplicationPart3=de verkoper tot de volledige betaling van
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=de rekening.
     LimitedLiabilityCompanyCapital=Vennootschap met een kapitaal van
     UseLine=Toepassen
    @@ -463,7 +465,7 @@ Cheques=Cheques
     DepositId=ID storting
     NbCheque=Aantal cheques
     CreditNoteConvertedIntoDiscount=Deze %s is geconverteerd naar %s
    -UsBillingContactAsIncoiveRecipientIfExist=Gebruik afnemersfacturatiecontactadres in plaats van derde adres als ontvanger voor de facturen
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Bekijk alle onbetaalde
     ShowUnpaidLateOnly=Toon alleen onbetaalde te late facturen
     PaymentInvoiceRef=Betaling factuur %s
    @@ -474,21 +476,22 @@ Reported=Uitgestelde
     DisabledBecausePayments=Niet beschikbaar omdat er betalingen bestaan
     CantRemovePaymentWithOneInvoicePaid=Verwijder onmogelijk wanneer er minstens een factuur betaald is ingedeeld.
     ExpectedToPay=Verwachte betaling
    -CantRemoveConciliatedPayment=Kan een afgestemde betaling niet verwijderen
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Betaald door deze betaling
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classeer terugbetaalde creditnotas automatisch naar status &quot;Betaald&quot;.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Alle betaalde facturen zullen automatisch worden gesloten naar status &quot;Betaald&quot;.
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Betaal
     ToMakePaymentBack=Terugbetalen
     ListOfYourUnpaidInvoices=Lijst van onbetaalde facturen
     NoteListOfYourUnpaidInvoices=Nota: deze lijst bevat enkel facturen voor derde partijen waarvoor je als verkoopsvertegenwoordiger aangegeven bent.
     RevenueStamp=Taxzegel
    -YouMustCreateInvoiceFromThird=Deze optie is alleen beschikbaar bij het maken van een factuur vanuit het tabblad 'Klanten" van derden
    -YouMustCreateInvoiceFromSupplierThird=Deze optie is alleen beschikbaar bij het maken van een factuur vanuit het tabblad  'Leverancier" van derden
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=Maak eerst een standaard factuur en converteer naar een sjabloon om deze als sjabloon te gebruiken
     PDFCrabeDescription=Model van complete factuur (Beheert de mogelijkheid van de BTW-heffingsbelasting, de keuze van de regels display, logo, etc)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Factuur PDF-sjabloon 'Crevette'. Een compleet sjabloon voor facturen
     TerreNumRefModelDesc1=Geeft een getal in de vorm van %syymm-nnnn voor standaard facturen en %syymm-nnnn voor creditnota's, met yy voor jaar, mm voor maand en nnnn als opeenvolgende getallenreeks die niet terug op 0 komt
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Factuurregel voortgang mag niet groter zijn dan of geli
     updatePriceNextInvoiceErrorUpdateline=Fout: verander de prijs op regel %s
     ToCreateARecurringInvoice=Als u een herhaal factuur voor dit contract wilt maken, maakt u deze eerst aan in concept en converteert u deze naar een template. Tevens definieert u de frequentie voor het genereren van toekomstige facturen.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Verwijder tijdelijke factuur
     ConfirmDeleteRepeatableInvoice=Weet u zeker dat u dit sjabloon factuur wilt verwijderen?
     CreateOneBillByThird=Orders samentrekken tot één factuur aan per relatie (anders voor elke bestelling één factuur)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Vanaf datum
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Tot datum
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Factuur verwijderd
    diff --git a/htdocs/langs/nl_NL/cashdesk.lang b/htdocs/langs/nl_NL/cashdesk.lang
    index 8d6d3af71ee..45001f83b55 100644
    --- a/htdocs/langs/nl_NL/cashdesk.lang
    +++ b/htdocs/langs/nl_NL/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Bedrijfsgegevens
     ShowStock=Tonen magazijn
     DeleteArticle=Klik om dit artikel te verwijderen
     FilterRefOrLabelOrBC=Zoeken (Ref / Label)
    -UserNeedPermissionToEditStockToUsePos=U vraagt ​​om de stock te verminderen op factuur creatie, zodat de gebruiker die POS gebruikt rechten moet hebben om stock te bewerke.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Kassabon Printer
    +PointOfSale=Punt van de omzet
    +PointOfSaleShort=POS
    +CloseBill=Rekening sluiten
    +Floors=Vloeren
    +Floor=Vloer
    +AddTable=Tafel toevoegen
    +Place=Plaats
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Bestel printers
    +SearchProduct=Zoek product
    diff --git a/htdocs/langs/nl_NL/commercial.lang b/htdocs/langs/nl_NL/commercial.lang
    index 572b3950eb7..70fb711c730 100644
    --- a/htdocs/langs/nl_NL/commercial.lang
    +++ b/htdocs/langs/nl_NL/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefoongesprek
     ActionAC_FAX=Verzenden per fax
     ActionAC_PROP=Verstuur offerte
     ActionAC_EMAIL=E-mail verzenden
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Vergaderingen
     ActionAC_INT=Interventie op het terrein
     ActionAC_FAC=Stuur factuur
    @@ -60,8 +61,8 @@ ActionAC_CLO=Sluiten
     ActionAC_EMAILING=Stuur bulkmail
     ActionAC_COM=Verstuur order per mail
     ActionAC_SHIP=Stuur verzending per post
    -ActionAC_SUP_ORD=Send purchase order by mail
    -ActionAC_SUP_INV=Send vendor invoice by mail
    +ActionAC_SUP_ORD=Verzend bestelling per e-mail
    +ActionAC_SUP_INV=Stuur leveranciers-factuur per e-mail
     ActionAC_OTH=Ander
     ActionAC_OTH_AUTO=Automatisch ingevoegde gebeurtenissen
     ActionAC_MANUAL=Handmatig ingevoerde gebeurtenissen
    @@ -72,8 +73,8 @@ StatusProsp=Prospect-status
     DraftPropals=Ontwerp van commerciële voorstellen
     NoLimit=Geen limiet
     ToOfferALinkForOnlineSignature=Link online ondertekenen
    -WelcomeOnOnlineSignaturePage=Welkom op deze pagina voor acceptatie prijsopgave/offerte van %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=Dit scherm geeft u de mogelijkheid voor acceptatie en ondertekening van de prijsopgave/offerte
     ThisIsInformationOnDocumentToSign=Informatie om te weigeren of te accepteren
    -SignatureProposalRef=Handtekening prijsopgave/offerte %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Online tekenen niet mogelijkheid of document is aangemaakt voordat dit was aangezet
    diff --git a/htdocs/langs/nl_NL/companies.lang b/htdocs/langs/nl_NL/companies.lang
    index f2c3db9a184..8727ab821bf 100644
    --- a/htdocs/langs/nl_NL/companies.lang
    +++ b/htdocs/langs/nl_NL/companies.lang
    @@ -5,14 +5,14 @@ SelectThirdParty=Selecteer een derde
     ConfirmDeleteCompany=Weet u zeker dat u dit bedrijf en alle overgenomen informatie wilt verwijderen?
     DeleteContact=Contactpersoon verwijderen
     ConfirmDeleteContact=Weet u zeker dat u deze contactpersoon en alle overgenomen informatie wilt verwijderen?
    -MenuNewThirdParty=Nieuwe Klant
    -MenuNewCustomer=Nieuwe afnemer
    -MenuNewProspect=Nieuw prospect
    +MenuNewThirdParty=Nieuwe relatie
    +MenuNewCustomer=Nieuwe klant
    +MenuNewProspect=Nieuwe prospect
     MenuNewSupplier=Nieuwe leverancier
     MenuNewPrivateIndividual=Nieuwe particulier
    -NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    -CreateDolibarrThirdPartySupplier=Create a third party (vendor)
    +NewCompany=Nieuwe onderneming (prospect, klant, leverancier)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
    +CreateDolibarrThirdPartySupplier=Aanmaken relatie (leverancier)
     CreateThirdPartyOnly=Nieuwe relatie
     CreateThirdPartyAndContact=Creëer nieuwe klant + nieuw contact
     ProspectionArea=Prospectenoverzicht
    @@ -25,25 +25,25 @@ ThirdPartyContact=Contactpersoon van Klant
     Company=Bedrijf
     CompanyName=Bedrijfsnaam
     AliasNames=Alias naam (commercieel, handelsmerk, ...)
    -AliasNameShort=Alias naam
    +AliasNameShort=Alias Name
     Companies=Bedrijven
    -CountryIsInEEC=Lidstaat van de Europese Unie
    -ThirdPartyName=Naam van Klant
    -ThirdPartyEmail=Third party email
    -ThirdParty=Klant
    -ThirdParties=Klant
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Naam relatie
    +ThirdPartyEmail=E-mailadres relatie
    +ThirdParty=Relatie
    +ThirdParties=Relaties
     ThirdPartyProspects=Prospecten
     ThirdPartyProspectsStats=Prospecten
     ThirdPartyCustomers=Afnemers
     ThirdPartyCustomersStats=Klanten
     ThirdPartyCustomersWithIdProf12=Afnemers met %s of %s
    -ThirdPartySuppliers=Vendors
    -ThirdPartyType=Type Klant
    +ThirdPartySuppliers=Leveranciers
    +ThirdPartyType=Type of company
     Individual=Particulier
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Moedermaatschappij
     Subsidiaries=Dochterondernemingen
    -ReportByMonth=Report by month
    +ReportByMonth=Rapportage per maand
     ReportByCustomers=Overzicht op klant
     ReportByQuarter=Rapportage naar kwartaal
     CivilityCode=Aanspreekvorm
    @@ -52,12 +52,12 @@ Lastname=Achternaam
     Firstname=Voornaam
     PostOrFunction=Functie
     UserTitle=Titel
    -NatureOfThirdParty=Nature of Third party
    +NatureOfThirdParty=Aard van relatie
     Address=Adres
     State=Provincie
     StateShort=Provincie
     Region=Regio
    -Region-State=Region - State
    +Region-State=Regio - Staat
     Country=Land
     CountryCode=Landcode
     CountryId=Land-ID
    @@ -76,12 +76,12 @@ Town=Plaats
     Web=Internetadres
     Poste= Functie
     DefaultLang=Standaard taal
    -VATIsUsed=BTW wordt gebruikt
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +VATIsUsed=Gebruikte BTW
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=BTW wordt niet gebruikt
     CopyAddressFromSoc=Vul het adres in van een relatie
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
    +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Relatie is geen klant of leverancier. Kortingen zijn niet mogelijk.
     PaymentBankAccount=Bank voor te ontvangen betaling
     OverAllProposals=Zakelijke voorstellen / Offertes
     OverAllOrders=Orders
    @@ -99,9 +99,9 @@ LocalTax2ES=IRPF
     TypeLocaltax1ES=RE Type
     TypeLocaltax2ES=IRPF Type
     WrongCustomerCode=Ongeldige afnemerscode
    -WrongSupplierCode=Vendor code invalid
    +WrongSupplierCode=Ongeldige leveranciercode
     CustomerCodeModel=Afnemersmodel
    -SupplierCodeModel=Vendor code model
    +SupplierCodeModel=Leveranciercode model
     Gencod=Streepjescode
     ##### Professional ID #####
     ProfId1Short=Prof id 1
    @@ -200,7 +200,7 @@ ProfId3IN=Prof Id 3
     ProfId4IN=Prof Id 4
     ProfId5IN=Prof-id 5
     ProfId6IN=-
    -ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg)
    +ProfId1LU=Id. prof. 1 (R.C.S. Luxemburg)
     ProfId2LU=Id. prof. 2 (Business permit)
     ProfId3LU=-
     ProfId4LU=-
    @@ -261,33 +261,33 @@ ProfId4DZ=NIS
     VATIntra=BTW-nummer
     VATIntraShort=BTW nr
     VATIntraSyntaxIsValid=Syntax is geldig
    -VATReturn=VAT return
    +VATReturn=BTW retour
     ProspectCustomer=Prospect / afnemer
     Prospect=Prospect
     CustomerCard=Afnemerskaart
     Customer=Afnemer
     CustomerRelativeDiscount=Kortingspercentage
    -SupplierRelativeDiscount=Relative vendor discount
    +SupplierRelativeDiscount=Kortingspercentage leverancier
     CustomerRelativeDiscountShort=Kortingspercentage
     CustomerAbsoluteDiscountShort=Kortingsbedrag
     CompanyHasRelativeDiscount=Voor deze afnemer geldt een kortingspercentage van <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Voor deze afnemer geldt geen kortingspercentage
    -HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
    -HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +HasRelativeDiscountFromSupplier=U heeft een standaard korting van <b>%s%%</b> bij deze leverancier
    +HasNoRelativeDiscountFromSupplier=U heeft geen standaard korting bij deze leverancier
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Deze afnemer heeft nog creditnota's of eerder stortingen voor <b> %s %s</b>
    -HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
    -HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    -HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for <b>%s</b> %s from this supplier
    -HasCreditNoteFromSupplier=You have credit notes for <b>%s</b> %s from this supplier
    +HasNoAbsoluteDiscountFromSupplier=Er is geen korting korting beschikbaar van deze leverancier
    +HasAbsoluteDiscountFromSupplier=Er zijn kortingen beschikbaar (credit-facturen of aanbetalingen) van <b>%s</b> %s bij deze leverancier
    +HasDownPaymentOrCommercialDiscountFromSupplier=Er zijn kortingen beschikbaar (commercieel, aanbetalingen) van <b>%s</b> %s bij deze leverancier
    +HasCreditNoteFromSupplier=Er zijn credit-facturen van <b>%s</b> %s bij deze leverancier
     CompanyHasNoAbsoluteDiscount=Voor deze afnemer is geen kortingsbedrag ingesteld
     CustomerAbsoluteDiscountAllUsers=Vastgelegde klant kortingen (toegekend door alle gebruikers)
     CustomerAbsoluteDiscountMy=Vastgelegde klant kortingen (toegekend door uzelf)
    -SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
    -SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
    +SupplierAbsoluteDiscountAllUsers=Vastgelegde leverancier kortingen (toegekend door alle gebruikers)
    +SupplierAbsoluteDiscountMy=Vastgelegde klant kortingen (toegekend door uzelf)
     DiscountNone=Geen
    -Supplier=Leverancier
    +Supplier=Verkoper
     AddContact=Nieuwe contactpersoon
     AddContactAddress=Nieuw contact/adres
     EditContact=Bewerk contact / adres
    @@ -295,7 +295,7 @@ EditContactAddress=Wijzig contact/adres
     Contact=Contactpersoon
     ContactId=ID contactpersoon
     ContactsAddresses=Contacpersonen / adressen
    -FromContactName=Name:
    +FromContactName=Naam:
     NoContactDefinedForThirdParty=Geen contact opgegeven voor deze derde partij
     NoContactDefined=Geen contactpersoon ingesteld voor deze Klant
     DefaultContact=Standaard contactpersoon
    @@ -303,50 +303,50 @@ AddThirdParty=Nieuwe relatie
     DeleteACompany=Bedrijf verwijderen
     PersonalInformations=Persoonlijke gegevens
     AccountancyCode=Accounting account
    -CustomerCode=Afnemerscode
    -SupplierCode=Vendor code
    -CustomerCodeShort=Klantcode
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Afnemerscode, uniek voor alle afnemers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    -RequiredIfCustomer=Vereist als Klant een afnemer of prospect is
    -RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Geldigheid gecontroleerd door module
    -ThisIsModuleRules=Dit zijn de regels voor deze module
    +CustomerCode=Klant-code
    +SupplierCode=Leverancier-code
    +CustomerCodeShort=Klantencode
    +SupplierCodeShort=Leverancier-code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
    +RequiredIfCustomer=Vereist als relatie een afnemer of prospect is
    +RequiredIfSupplier=Vereist als relatie een leverancier is
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect om contact mee op te nemen
     CompanyDeleted=Bedrijf '%s' verwijderd uit de database.
     ListOfContacts=Contactpersonen- / adressenlijst
    -ListOfContactsAddresses=Lijst van contacten/adressen
    -ListOfThirdParties=Lijst van derde partijen
    -ShowCompany=Toon relatie
    +ListOfContactsAddresses=Contactpersonen- / adressenlijst
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Toon contactpersoon
     ContactsAllShort=Alle (Geen filter)
     ContactType=Type contactpersoon
     ContactForOrders=Opdrachtencontactpersoon
    -ContactForOrdersOrShipments=Order's or shipment's contact
    +ContactForOrdersOrShipments=Contactpersoon bij order of verzending
     ContactForProposals=Offertecontactpersoon
     ContactForContracts=Contractencontactpersoon
     ContactForInvoices=Facturencontactpersoon
     NoContactForAnyOrder=Deze contactpersoon is geen contactpersoon voor enige opdracht
    -NoContactForAnyOrderOrShipments=This contact is not a contact for any order or shipment
    +NoContactForAnyOrderOrShipments=Deze contactpersoon is geen contactpersoon voor enige order of verzending.
     NoContactForAnyProposal=Deze contactpersoon is geen contactpersoon voor enige offerte
     NoContactForAnyContract=Deze contactpersoon is geen contactpersoon voor enig contract
     NoContactForAnyInvoice=Deze contactpersoon is geen contactpersoon voor enige factuur
     NewContact=Nieuwe contactpersoon
    -NewContactAddress=Nieuw contact/adres
    +NewContactAddress=New Contact/Address
     MyContacts=Mijn contacten
     Capital=Kapitaal
     CapitalOf=Kapitaal van %s
     EditCompany=Bedrijf bewerken
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Controleren
    -VATIntraCheckDesc=De link <b>%s</b> maakt het mogelijk om de Europese BTW-controledienst te raadplegen. Voor deze dienst is een externe internettoegang vanaf de webserver vereist.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Controleer de Intracommunautaire BTW op de website van de Europese Commissie
    -VATIntraManualCheck=U kunt ook handmatig controleren via de Europese website <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Controle niet mogelijk. Controleerdienst wordt niet verleend door lidstaat (%s).
    -NorProspectNorCustomer=Noch prospect, noch afnemer
    -JuridicalStatus=Juridische status
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Personeel
     ProspectLevelShort=Potentieel
     ProspectLevel=Prospectpotentieel
    @@ -387,48 +387,48 @@ ExportCardToFormat=Export details naar formaat
     ContactNotLinkedToCompany=Contact niet gekoppeld aan enige Klant
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=Geen Dolibarr toegang
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contactpersonen en eigenschappen
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bankrekeningen van relaties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Prijsniveau
     DeliveryAddress=Afleveradres
     AddAddress=Adres toevoegen
    -SupplierCategory=Vendor category
    +SupplierCategory=Categorie leverancier
     JuridicalStatus200=Onafhankelijk
     DeleteFile=Bestand verwijderen
     ConfirmDeleteFile=Weet u zeker dat u dit bestand wilt verwijderen?
     AllocateCommercial=Toegekend aan vertegenwoordiger
     Organization=Organisatie
    -FiscalYearInformation=Informatie over het fiscale jaar
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Startmaand van het fiscale jaar
    -YouMustAssignUserMailFirst=U moet eerst een e-mail voor deze gebruiker maken om e-mailmeldingen voor hem te kunnen toevoegen.
    -YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=Leverancierslijst
    -ListProspectsShort=Prospectenoverzicht
    -ListCustomersShort=Afnemersoverzicht
    -ThirdPartiesArea=Relaties en contactpersonen
    -LastModifiedThirdParties=Laatste %s gewijzigde relaties
    -UniqueThirdParties=Totaal aantal unieke derde partijen
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
    +YouMustCreateContactFirst=U moet eerst een e-mail voor deze contactpersoon aanmaken om e-mail meldingen voor deze te kunnen toevoegen.
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Open
     ActivityCeased=Gesloten
    -ThirdPartyIsClosed=Third party is closed
    +ThirdPartyIsClosed=Relatie is gesloten
     ProductsIntoElements=Lijst producten/diensten in %s
     CurrentOutstandingBill=Huidige openstaande rekening
     OutstandingBill=Max. voor openstaande rekening
    -OutstandingBillReached=Max. for outstanding bill reached
    -OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +OutstandingBillReached=Max. krediet voor openstaande facturen is bereikt
    +OrderMinAmount=Minimum orderbedrag
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Afnemers- / leverancierscode is vrij. Deze code kan te allen tijde worden gewijzigd.
     ManagingDirectors=Manager(s) Naam (CEO, directeur, voorzitter ...)
     MergeOriginThirdparty=Dupliceren third party (third party die u wilt verwijderen)
     MergeThirdparties=Samenvoegen third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    -ThirdpartiesMergeSuccess=Third parties have been merged
    -SaleRepresentativeLogin=Login of sales representative
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
    +ThirdpartiesMergeSuccess=Relaties zijn samengevoegd
    +SaleRepresentativeLogin=Login vertegenwoordiger
     SaleRepresentativeFirstname=Vertegenwoordiger voornaam
     SaleRepresentativeLastname=Vertegenwoordiger achternaam
    -ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +ErrorThirdpartiesMerge=Er is een fout opgetreden bij het verwijderen van de relatie. Controleer het log. Wijzigingen zijn ongedaan gemaakt.
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/nl_NL/compta.lang b/htdocs/langs/nl_NL/compta.lang
    index 5f8ccfea251..06f6b05dc04 100644
    --- a/htdocs/langs/nl_NL/compta.lang
    +++ b/htdocs/langs/nl_NL/compta.lang
    @@ -19,13 +19,13 @@ Income=Inkomsten
     Outcome=Kosten
     MenuReportInOut=Opbrengsten / kosten
     ReportInOut=Saldo van baten en lasten
    -ReportTurnover=Turnover invoiced
    -ReportTurnoverCollected=Turnover collected
    +ReportTurnover=Omzet gefactureerd
    +ReportTurnoverCollected=Omzet verzameld
     PaymentsNotLinkedToInvoice=Betalingen niet gekoppeld aan een factuur, dus niet gekoppeld aan een derde partij
     PaymentsNotLinkedToUser=Betalingen niet gekoppeld aan een gebruiker
     Profit=Winst
     AccountingResult=Boekhoudkundig resultaat
    -BalanceBefore=Balance (before)
    +BalanceBefore=Saldo (vóór)
     Balance=Saldo
     Debit=Debet
     Credit=Credit
    @@ -35,33 +35,33 @@ AmountHTVATRealPaid=Netto betaald
     VATToPay=Belasting op verkopen
     VATReceived=Ontvangen Omzet-belasting
     VATToCollect=Belasting aankopen
    -VATSummary=Tax monthly
    +VATSummary=BTW maandelijks
     VATBalance=Saldo belasting
     VATPaid=Betaalde belasting
    -LT1Summary=Tax 2 summary
    -LT2Summary=Tax 3 summary
    +LT1Summary=Belasting 2 samenvatting
    +LT2Summary=Belasting 3 samenvatting
     LT1SummaryES=RE Balance
     LT2SummaryES=IRPF Balance
    -LT1SummaryIN=CGST Balance
    -LT2SummaryIN=SGST Balance
    -LT1Paid=Tax 2 paid
    -LT2Paid=Tax 3 paid
    +LT1SummaryIN=CGST-saldo
    +LT2SummaryIN=SGST-saldo
    +LT1Paid=Belasting 2 betaald
    +LT2Paid=Belasting 3 betaald
     LT1PaidES=RE Betaald
     LT2PaidES=IRPF Betaalde
    -LT1PaidIN=CGST Paid
    -LT2PaidIN=SGST Paid
    -LT1Customer=Tax 2 sales
    -LT1Supplier=Tax 2 purchases
    +LT1PaidIN=CGST betaald
    +LT2PaidIN=SGST betaald
    +LT1Customer=Belasting 2 verkopen
    +LT1Supplier=Belasting 2 aankopen
     LT1CustomerES=RE verkoop
     LT1SupplierES=RE aankopen
    -LT1CustomerIN=CGST sales
    -LT1SupplierIN=CGST purchases
    -LT2Customer=Tax 3 sales
    -LT2Supplier=Tax 3 purchases
    +LT1CustomerIN=CGST verkoop
    +LT1SupplierIN=CGST-aankopen
    +LT2Customer=Belasting 3 verkoop
    +LT2Supplier=Belasting 3 aankopen
     LT2CustomerES=IRPF verkoop
     LT2SupplierES=IRPF aankopen
    -LT2CustomerIN=SGST sales
    -LT2SupplierIN=SGST purchases
    +LT2CustomerIN=SGST-verkoop
    +LT2SupplierIN=SGST-aankopen
     VATCollected=Geïnde  BTW
     ToPay=Te betalen
     SpecialExpensesArea=Ruimte voor alle bijzondere betalingen
    @@ -69,25 +69,25 @@ SocialContribution=Sociale of fiscale heffingen/belasting
     SocialContributions=Sociale of fiscale heffingen/belastingen
     SocialContributionsDeductibles=Aftrekbare sociale/fiscale lasten/belastingen
     SocialContributionsNondeductibles=Niet aftrekbare sociale/fiscale lasten/belastingen
    -LabelContrib=Label contribution
    -TypeContrib=Type contribution
    +LabelContrib=Labelbijdrage
    +TypeContrib=Type bijdrage
     MenuSpecialExpenses=Speciale uitgaven
     MenuTaxAndDividends=Belastingen en dividenden
     MenuSocialContributions=Sociale/fiscale heffingen/belastingen
     MenuNewSocialContribution=Nw soc./fiscale h/b.
     NewSocialContribution=Nw soc./fiscale h/b.
    -AddSocialContribution=Add social/fiscal tax
    +AddSocialContribution=Voeg sociale/fiscale belasting toe
     ContributionsToPay=Sociale- en fiscale lasten om te betalen
    -AccountancyTreasuryArea=Billing and payment area
    +AccountancyTreasuryArea=Factuur- en betalingsgebied
     NewPayment=Nieuwe betaling
     Payments=Betalingen
     PaymentCustomerInvoice=Afnemersfactuur betaling
    -PaymentSupplierInvoice=Vendor invoice payment
    +PaymentSupplierInvoice=Leverancier factuur-betaling
     PaymentSocialContribution=Sociale/fiscale belastingbetaling
     PaymentVat=BTW betaling
     ListPayment=Betalingenlijst
     ListOfCustomerPayments=Afnemersbetalingenlijst
    -ListOfSupplierPayments=List of vendor payments
    +ListOfSupplierPayments=Lijst met leveranciersbetalingen
     DateStartPeriod=Startdatum periode
     DateEndPeriod=Einddatum periode
     newLT1Payment=New tax 2 payment
    @@ -118,9 +118,9 @@ CustomerAccountancyCodeShort=Klant account. code
     SupplierAccountancyCodeShort=Lev. account. code
     AccountNumber=Rekeningnummer
     NewAccountingAccount=Nieuwe rekening
    -Turnover=Turnover invoiced
    -TurnoverCollected=Turnover collected
    -SalesTurnoverMinimum=Minimum turnover
    +Turnover=Omzet gefactureerd
    +TurnoverCollected=Omzet verzameld
    +SalesTurnoverMinimum=Minimum omzet
     ByExpenseIncome=By expenses & incomes
     ByThirdParties=Door derde partijen
     ByUserAuthorOfInvoice=Op factuurauteur
    @@ -132,7 +132,7 @@ NewCheckDeposit=Nieuwe chequestorting
     NewCheckDepositOn=Creeer een kwitantie voor de storting op rekening: %s
     NoWaitingChecks=Geen cheques om af te storten.
     DateChequeReceived=Ontvangstdatum cheque
    -NbOfCheques=Aantal cheques
    +NbOfCheques=No. of checks
     PaySocialContribution=Betaal een sociale/fiscale vordering
     ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid?
     DeleteSocialContribution=Verwijder een sociale/fiscale betaling
    @@ -142,7 +142,7 @@ CalcModeVATDebt=Mode <b>%sBTW op verbintenissenboekhouding %s.</b>
     CalcModeVATEngagement=Mode <b>%sBTW op de inkomens-uitgaven %s.</b>
     CalcModeDebt=Analysis of known recorded invoices even if they are not yet accounted in ledger.
     CalcModeEngagement=Analysis of known recorded payments, even if they are not yet accounted in Ledger.
    -CalcModeBookkeeping=Analyse van <b>boekingen in het grootboek</b>
    +CalcModeBookkeeping=Analysis of data journalized in Bookkeeping Ledger table.
     CalcModeLT1= <b>Modus %s RE op klant- leveranciers facturen %s</b>
     CalcModeLT1Debt=Mode <b>%sRE on customer invoices%s</b>
     CalcModeLT1Rec= Mode <b>%sRE on suppliers invoices%s</b>
    @@ -167,7 +167,7 @@ RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accou
     RulesResultBookkeepingPredefined=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME"
     RulesResultBookkeepingPersonalized=It show record in your Ledger with accounting accounts <b>grouped by personalized groups</b>
     SeePageForSetup=See menu <a href="%s">%s</a> for setup
    -DepositsAreNotIncluded=- Facturen met vooruitbetaling zijn niet inbegrepen
    +DepositsAreNotIncluded=- Down payment invoices are not included
     DepositsAreIncluded=- Facturen met vooruitbetaling zijn inbegrepen
     LT1ReportByCustomers=Report tax 2 by third party
     LT2ReportByCustomers=Report tax 3 by third party
    @@ -225,18 +225,18 @@ TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover colle
     TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced.
     CalculationMode=Berekeningswijze
     AccountancyJournal=Accounting code journal
    -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup)
    +ACCOUNTING_VAT_SOLD_ACCOUNT=Grootboekrekening BTW
     ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup)
     ACCOUNTING_VAT_PAY_ACCOUNT=Standaard grootboekrekening BTW af te dragen
    -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
    -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
    -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties
    -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
    +ACCOUNTING_ACCOUNT_CUSTOMER=Grootboekrekening debiteuren
    +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=De speciale account die is gedefinieerd op de kaart van ralatie, wordt alleen gebruikt voor de Subledger-accounting. Deze wordt gebruikt voor grootboek en als standaardwaarde voor Subledger-boekhouding als er geen specifieke klantaccount voor derden is gedefinieerd.
    +ACCOUNTING_ACCOUNT_SUPPLIER=Grootboekrekening crediteuren
    +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accounting account on third party is not defined.
     CloneTax=Clone a social/fiscal tax
    -ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
    +ConfirmCloneTax=Confirm the clone of a social/fiscal tax
     CloneTaxForNextMonth=Kloon het voor volgende maand
     SimpleReport=Simple report
    -AddExtraReport=Extra reports (add foreign and national customer report)
    +AddExtraReport=Extra rapportages (voeg een rapport van binnen- en buitenlandse relaties toe)
     OtherCountriesCustomersReport=Foreign customers report
     BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code
     SameCountryCustomersWithVAT=National customers report
    @@ -248,12 +248,12 @@ ErrorBankAccountNotFound=Error: Bank account not found
     FiscalPeriod=Boekingsperiode
     ListSocialContributionAssociatedProject=List of social contributions associated with the project
     DeleteFromCat=Remove from accounting group
    -AccountingAffectation=Accounting assignement
    +AccountingAffectation=Accounting assignment
     LastDayTaxIsRelatedTo=Last day of period the tax is related to
     VATDue=Sale tax claimed
     ClaimedForThisPeriod=Claimed for the period
     PaidDuringThisPeriod=Paid during this period
     ByVatRate=By sale tax rate
    -TurnoverbyVatrate=Turnover invoiced by sale tax rate
    +TurnoverbyVatrate=Omzet gefactureerd op omzetbelasting-tarief
     TurnoverCollectedbyVatrate=Turnover collected by sale tax rate
     PurchasebyVatrate=Purchase by sale tax rate
    diff --git a/htdocs/langs/nl_NL/dict.lang b/htdocs/langs/nl_NL/dict.lang
    index 20238fb1493..c17e07f1f24 100644
    --- a/htdocs/langs/nl_NL/dict.lang
    +++ b/htdocs/langs/nl_NL/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island en McDonald
     CountryVA=Heilige Stoel (Vaticaanstad)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=IJsland
     CountryIN=India
     CountryID=Indonesië
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Noord-Korea
     CountryKR=Zuid-Korea
     CountryKW=Koeweit
    -CountryKG=Kyrghyztan
    +CountryKG=Kirgizië
     CountryLA=Laotiaans
     CountryLV=Letland
     CountryLB=Libanon
    @@ -160,7 +160,7 @@ CountryMD=Moldavië
     CountryMN=Mongolië
     CountryMS=Montserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Birma)
     CountryNA=Namibië
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad en Tobago
     CountryTR=Turkije
     CountryTM=Turkmenistan
    -CountryTC=Turken en Cailos Eilanden
    +CountryTC=Turks- en Caicoseilanden
     CountryTV=Tuvalu
     CountryUG=Oeganda
     CountryUA=Oekraïne
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Mondeling
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Werknemer
     DemandReasonTypeSRC_SPONSORING=Sponsoring
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Grootte 4A0
     PaperFormatEU2A0=Grootte 2A0
    @@ -328,7 +329,7 @@ PaperFormatCAP5=Grootte Canada P5
     PaperFormatCAP6=Grootte Canada P6
     #### Expense report categories ####
     ExpAutoCat=Auto
    -ExpCycloCat=Moped
    +ExpCycloCat=Bromfiets
     ExpMotoCat=Motorfiets
     ExpAuto3CV=3 CV
     ExpAuto4CV=4 CV
    @@ -341,17 +342,17 @@ ExpAuto10CV=10 CV
     ExpAuto11CV=11 CV
     ExpAuto12CV=12 CV
     ExpAuto3PCV=3 CV en meer
    -ExpAuto4PCV=4 CV and more
    -ExpAuto5PCV=5 CV and more
    -ExpAuto6PCV=6 CV and more
    -ExpAuto7PCV=7 CV and more
    -ExpAuto8PCV=8 CV and more
    +ExpAuto4PCV=4 CV en meer
    +ExpAuto5PCV=5 CV en meer
    +ExpAuto6PCV=6 CV en meer
    +ExpAuto7PCV=7 CV en meer
    +ExpAuto8PCV=8 CV en meer
     ExpAuto9PCV=9 CV en meer
    -ExpAuto10PCV=10 CV and more
    +ExpAuto10PCV=10 CV en meer
     ExpAuto11PCV=11 CV en meer
     ExpAuto12PCV=12 CV en meer
    -ExpAuto13PCV=13 CV and more
    -ExpCyclo=Capacity lower to 50cm3
    +ExpAuto13PCV=13 CV en meer
    +ExpCyclo=Capaciteit minder dan 50cm3
     ExpMoto12CV=Motorfiets 1 of 2 CV
     ExpMoto345CV=Motorfiets 3, 4 of 5 CV
    -ExpMoto5PCV=Motorbike 5 CV and more
    +ExpMoto5PCV=Motor 5 CV en meer
    diff --git a/htdocs/langs/nl_NL/ecm.lang b/htdocs/langs/nl_NL/ecm.lang
    index b2ce45ee11e..ffb2a65454c 100644
    --- a/htdocs/langs/nl_NL/ecm.lang
    +++ b/htdocs/langs/nl_NL/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Aantal documenten in de map
    +ECMNbOfDocs=Aantal documenten in map
     ECMSection=Bedrijvengids
     ECMSectionManual=Handmatige map
     ECMSectionAuto=Automatisch map
    @@ -14,11 +14,11 @@ ECMNbOfFilesInDir=Aantal bestanden in de map
     ECMNbOfSubDir=Aantal onderliggende mappen
     ECMNbOfFilesInSubDir=Aantal bestanden in submappen
     ECMCreationUser=Ontwerper
    -ECMArea=DMS/ECM area
    -ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr.
    +ECMArea=DMS/ECM omgeving
    +ECMAreaDesc=In het gebied DMS / ECM (Document Management System / Electronic Content Management) kunt u alle soorten documenten in Dolibarr snel opslaan, delen en zoeken.
     ECMAreaDesc2=* Automatische mappen zijn automatisch gevuld bij het toevoegen, vanaf een kaart van een element. <br> * Handmatige mappen kunnen worden gebruikt voor het opslaan van documenten die niet gekoppeld zijn aan een bepaald element.
     ECMSectionWasRemoved=Map <b>%s</b> is verwijderd.
    -ECMSectionWasCreated=Directory <b>%s</b> has been created.
    +ECMSectionWasCreated=Directory <b>%s</b> is gemaakt.
     ECMSearchByKeywords=Zoeken op trefwoorden
     ECMSearchByEntity=Zoek op object
     ECMSectionOfDocuments=Mappen van documenten
    @@ -34,18 +34,19 @@ ECMDocsByProjects=Documenten gekoppeld aan projecten
     ECMDocsByUsers=Documenten gerelateerd met gebruikers
     ECMDocsByInterventions=Documenten gerelateerd aan interventies
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Geen map aangemaakt
     ShowECMSection=Toon map
     DeleteSection=Verwijder map
     ConfirmDeleteSection=Can you confirm you want to delete the directory <b>%s</b>?
     ECMDirectoryForFiles=Relatieve map voor bestanden
    -CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories
    -CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files
    +CannotRemoveDirectoryContainsFilesOrDirs=Verwijderen is niet mogelijk omdat het enkele bestanden of submappen bevat
    +CannotRemoveDirectoryContainsFiles=Verwijderen is niet mogelijk omdat het enkele bestanden bevat
     ECMFileManager=Bestandsbeheer
     ECMSelectASection=Selecteer een map in de boomstructuur ...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
    -ReSyncListOfDir=Resync list of directories
    -HashOfFileContent=Hash of file content
    +ReSyncListOfDir=Hersynchroniseer de lijst met mappen
    +HashOfFileContent=Hash van bestandsinhoud
    +NoDirectoriesFound=Geen mappen gevonden
     FileNotYetIndexedInDatabase=Bestand nog niet geïndexeerd in database (probeer deze opnieuw te uploaden)
    -FileSharedViaALink=File shared via a link
    -NoDirectoriesFound=No directories found
    diff --git a/htdocs/langs/nl_NL/errors.lang b/htdocs/langs/nl_NL/errors.lang
    index 3462750b63b..f49522795e8 100644
    --- a/htdocs/langs/nl_NL/errors.lang
    +++ b/htdocs/langs/nl_NL/errors.lang
    @@ -6,7 +6,7 @@ NoErrorCommitIsDone=Geen fout, wij bevestigen
     ErrorButCommitIsDone=Fouten gevonden maar we valideren toch
     ErrorBadEMail=Ongeldige e-mail %s
     ErrorBadUrl=Ongeldige Url %s
    -ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing.
    +ErrorBadValueForParamNotAString=Slechte parameterwaarde. Wordt over het algemeen gegenereerd als de vertaling ontbreekt.
     ErrorLoginAlreadyExists=Inlog %s bestaat reeds.
     ErrorGroupAlreadyExists=Groep %s bestaat reeds.
     ErrorRecordNotFound=Tabelregel niet gevonden.
    @@ -32,17 +32,17 @@ ErrorBarCodeRequired=Bar code nodig
     ErrorCustomerCodeAlreadyUsed=Afnemerscode al gebruikt
     ErrorBarCodeAlreadyUsed=Bar code al gebruikt
     ErrorPrefixRequired=Voorvoegsel vereist
    -ErrorBadSupplierCodeSyntax=Bad syntax for vendor code
    -ErrorSupplierCodeRequired=Vendor code required
    +ErrorBadSupplierCodeSyntax=Slechte syntaxis voor leverancierscode
    +ErrorSupplierCodeRequired=Vendor code vereist
     ErrorSupplierCodeAlreadyUsed=Vendor code already used
     ErrorBadParameters=Verkeerde parameters
    -ErrorBadValueForParameter=Wrong value '%s' for parameter '%s'
    +ErrorBadValueForParameter=Verkeerde waarde '%s' voor parameter '%s'
     ErrorBadImageFormat=Image file has not a supported format (Your PHP does not support functions to convert images of this format)
     ErrorBadDateFormat=Waarde %s heeft verkeerde datum formaat
     ErrorWrongDate=Datum is niet correct!
     ErrorFailedToWriteInDir=Schrijven in de map %s mislukt
     ErrorFoundBadEmailInFile=Onjuist e-mail syntax gevonden voor %s regels in het bestand (bijvoorbeeld regel %s met email=%s)
    -ErrorUserCannotBeDelete=Gebruiker kan niet worden verwijderd. Mogelijk is het geassocieerd met andere Dolibarr-onderdelen.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Enkele verplichte velden zijn niet ingevuld.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Creëren van een map mislukt. Controleer of de Webservergebruiker toestemming heeft om te schrijven in Dolibarr documentenmap. Wanneer de parameter <b>safe_mode</b> is ingeschakeld in PHP, controleer dan dat de Dolibarr php bestanden eigendom zijn van de de webserve gebruiker (of groep).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Vul waarde in voor selectielijst
     ErrorNoValueForCheckBoxType=Vul waarde in voor checkbox lijst
     ErrorNoValueForRadioType=Vul waarde in voor knoppen lijst
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Veld <b>%s</b> mag geen speciale tekens bevat.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Geen boekhoudingsmodule geactiveerd
     ErrorExportDuplicateProfil=Deze profile naam bestaat al voor deze export set.
     ErrorLDAPSetupNotComplete=De Dolibarr-LDAP installatie is niet compleet.
     ErrorLDAPMakeManualTest=Een .ldif bestand is gegenereerd in de map %s. Probeer het handmatig te laden vanuit een opdrachtregel om meer informatie over fouten te verkrijgen.
    -ErrorCantSaveADoneUserWithZeroPercentage=Kan een actie met de status "Nog niet gestart" niet opslaan als het veld "door" niet ook gevuld is.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=De referentie gebruikt voor het maken bestaat al
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Kan record niet verwijderen omdat er onderliggende data aanwezig is.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Kan record niet verwijderen. Het wordt al gebruikt of opgenomen in een ander object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript dient niet uitgeschakeld te zijn voor deze functionaliteit. Om Javascript aan of uit te zetten gaat u naar het menu Home->instellingen->Scherm
     ErrorPasswordsMustMatch=De twee ingevoerde wachtwoorden komen niet overeen.
    -ErrorContactEMail=Er is een technische fout opgetreden. Neemt u alstublieft contact op met de beheerder via het e-mailadres <b>%s</b> en vermeld de volgende foutcode <b>%s</b> in uw bericht, of nog beter voeg een schermafbeelding van de pagina toe.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Foutiefe waarde voor het veld nummer <b>%s</b> (waarde <b>%s</b> voldoet niet aan de reguliere expressieregel <b>%s</b>)
     ErrorFieldValueNotIn=Verkeerde waarde voor het veld nummer <b>%s</b> (Waarde '<b>%s</b>' is geen waarde beschikbaar in het veld <b>%s</b> van de tabel <b>%s</b>)
     ErrorFieldRefNotIn=Verkeerde waarde voor veldnummer <b>%s</b> (waarde <b>'%s'</b> is geen <b>%s</b> bestaande ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Het antivirusprogramma kon dit bestand niet valide
     ErrorSpecialCharNotAllowedForField=Speciale tekens zijn niet toegestaan in het veld " %s"
     ErrorNumRefModel=Er bestaat een verwijzing in de database (%s) en deze is niet compatibel met deze nummeringsregel. Verwijder de tabelregel of hernoem de verwijzing om deze module te activeren.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Het instellen van de module lijkt onvolledig. Ga naar Home - Setup - Modules om te voltooien.
     ErrorBadMask=Fout bij het masker
     ErrorBadMaskFailedToLocatePosOfSequence=Fout, masker zonder het volgnummer
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Fout, slechte resetwaarde
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Teller moet uit meer dan 3 cijfers bestaan
     ErrorSelectAtLeastOne=Fout. Kies ten minste een item.
    -ErrorDeleteNotPossibleLineIsConsolidated=Verwijderen niet mogelijk, omdat record is gekoppeld aan een bank transation dat is verzoend
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is toegewezen aan een derde
     ErrorFailedToSendPassword=Mislukt om het wachtwoord te sturen
     ErrorFailedToLoadRSSFile=Niet in slaagt om RSS feed. Probeer een constante MAIN_SIMPLEXMLLOAD_DEBUG toe te voegen als foutmeldingen niet voldoende informatie.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Gebruiker met gebruikersnaam <b>%s</b> kon niet worden g
     ErrorLoginHasNoEmail=Deze gebruiker heeft geen e-mail adres. Proces afgebroken.
     ErrorBadValueForCode=Onjuist waardetypen voor code. Probeer het opnieuw met een nieuwe waarde
     ErrorBothFieldCantBeNegative=Velden %s %s en kan niet beide negatief
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> gebruikt om web-server uit te voeren heeft geen toestemming voor die
     ErrorNoActivatedBarcode=Geen geactiveerde barcode soort
    @@ -138,7 +141,7 @@ ErrorBadFormat=Verkeerd formaat!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Fout, er sommige leveringen gekoppeld met deze verzending. Schrapping geweigerd.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=Geen globale variabele geselecteerd
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,18 +211,19 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
    -WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
    +WarningPasswordSetWithNoAccount=Er is een wachtwoord ingesteld voor dit lid. Er is echter geen gebruikersaccount gemaakt. Dus dit wachtwoord is opgeslagen maar kan niet worden gebruikt om in te loggen bij Dolibarr. Het kan worden gebruikt door een externe module / interface, maar als u geen gebruikersnaam of wachtwoord voor een lid hoeft aan te maken, kunt u de optie "Beheer een login voor elk lid" in de module-setup van Member uitschakelen. Als u een login moet beheren maar geen wachtwoord nodig heeft, kunt u dit veld leeg houden om deze waarschuwing te voorkomen. Opmerking: e-mail kan ook worden gebruikt als login als het lid aan een gebruiker is gekoppeld.
     WarningMandatorySetupNotComplete=Verplichte setup parameters zijn nog niet gedefinieerd
     WarningSafeModeOnCheckExecDir=Waarschuwing, de instelling <b>safe_mode</b> van PHP staat aan daarom moet het commando opgeslagen worden in een map die gedeclareerd is door de PHP instelling <b>safe_mode_exec_dir.</b>
     WarningBookmarkAlreadyExists=Een weblink met deze titel of dit doel (URL) bestaat al.
     WarningPassIsEmpty=Waarschuwing, het databasewachtwoord is leeg. Dit is een lek in de beveiliging. U dient een wachtwoord aan uw database toe te voegen en deze wijziging in uw conf.php te verwerken.
     WarningConfFileMustBeReadOnly=Pas op, uw configuratiebestand (</b>htdocs/conf/conf.php</b>) is schrijfbaar voor de webserver. Dit vormt een ernstig veiligheidslek. Wijzig de rechten naar alleen-lezen voor de account van de webserver. Als u Windows draait op een harde schijf met een FAT-formaat, dient u zich ervan bewust te zijn dat dit bestandssysteem geen rechten van bestanden kan toevoegen en daarom niet compleet veilig kan zijn.
     WarningsOnXLines=Waarschuwing op bronregels <b>%s</b>
    -WarningNoDocumentModelActivated=Er is geen model geactiveerd voor het maken van documenten. Er wordt een standaard model gekozen totdat u uw module instellingen heeft gecontroleerd / aangepast.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Waarschuwing, zodra de installatie voltooid is, moet u de installatie / migratie tools uitschakelen door het toevoegen van een bestand <b>install.lock</b> in <b>map %s.</b> Ontbreekt dit bestand dan is een beveiligings issue.
    -WarningUntilDirRemoved=Alle beveiligingswaarschuwingen (alleen zichtbaar voor de beheerders) zullen actief blijven zolang de kwetsbaarheden nog bestaan. (of totdat de contante MAIN_REMOVE_INSTALL_WARNING wordt toegevoegd aan Home->Instellingen->Overige).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/nl_NL/help.lang b/htdocs/langs/nl_NL/help.lang
    index fa6c66d5a8e..183784843f6 100644
    --- a/htdocs/langs/nl_NL/help.lang
    +++ b/htdocs/langs/nl_NL/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Directe online ondersteuning en ondersteuning op afstand
     OtherSupport=Andere ondersteuning
     ToSeeListOfAvailableRessources=Om contact op te nemen zie de beschikbare bronnen:
     HelpCenter=Ondersteuningscentrum
    -DolibarrHelpCenter=Dolibarr Help- en ondersteuningscentrum
    -ToGoBackToDolibarr=Klik anders <a href="%s">hier om Dolibarr te gebruiken</a>
    -TypeOfSupport=Ondersteuningsbron
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Gemeenschap (gratis)
     TypeSupportCommercial=Commercieel (betaald)
     TypeOfHelp=Soort
    @@ -15,12 +15,9 @@ NeedHelpCenter=Hulp of support nodig?
     Efficiency=Efficiëntie
     TypeHelpOnly=Alleen Hulp
     TypeHelpDev=Hulp & Ontwikkeling
    -TypeHelpDevForm=Hulp, ontwikkeling en aanpassingen
    -ToGetHelpGoOnSparkAngels1=Sommige bedrijven kunnen snel (soms onmiddellijke) en efficiënt online ondersteuning bieden door middel van overname van uw computer. Dergelijke ondersteuners kunnen gevonden worden op <b>%s</b> website:
    -ToGetHelpGoOnSparkAngels3=U kunt ook naar de lijst gaan van alle beschikbare coaches voor Dolibarr, klik hiervoor op de knop
    -ToGetHelpGoOnSparkAngels2=Soms is er geen bedrijf te vinden op het moment van uw zoekopdracht, denk er dan aan om het filter te veranderen om te zoeken naar "alle beschikbare hulp". U kunt dan meer verzoeken versturen.
    -BackToHelpCenter=Klik anders hier om <a href="%s"> terug te gaan naar de hoofdpagina van het ondersteuningscentrum.</a>
    -LinkToGoldMember=U kunt een van de, vooraf door Dolibarr geselecteerde, coaches voor uw taal bellen (%s) door te klikken op zijn Widget (status en de maximale prijs worden automatisch bijgewerkt):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Ondersteunde talen
    -SubscribeToFoundation=Help het Dolibarr project, wordt lid van de stichting
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Voor officiële Dolibarr ondersteuning in uw taal: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/nl_NL/holiday.lang b/htdocs/langs/nl_NL/holiday.lang
    index 75c00750255..863a1357368 100644
    --- a/htdocs/langs/nl_NL/holiday.lang
    +++ b/htdocs/langs/nl_NL/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Verlof
    -CPTitreMenu=Verlof
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Maandoverzicht
     MenuAddCP=Nieuw verlofverzoek
    -NotActiveModCP=U moet de module 'Beheer van verlofverzoeken' aanzetten om deze pagina te kunnen bekijken.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Aanmaken verlofverzoek
     DateDebCP=Begindatum
     DateFinCP=Einddatum
    @@ -15,18 +15,18 @@ ApprovedCP=Goedgekeurd
     CancelCP=Geannuleerd
     RefuseCP=Geweigerd
     ValidatorCP=Gevolmachtigde voor goedkeuring
    -ListeCP=Lijst verlofverzoeken
    -LeaveId=Leave ID
    +ListeCP=List of leave
    +LeaveId=Laat ID achter
     ReviewedByCP=Zal worden goedgekeurd door
     UserForApprovalID=User for approval ID
    -UserForApprovalFirstname=Firstname of approval user
    -UserForApprovalLastname=Lastname of approval user
    -UserForApprovalLogin=Login of approval user
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login van goedkeuring gebruiker
     DescCP=Beschrijving
     SendRequestCP=Aanmaken verlofverzoek
     DelayToRequestCP=Verlofverzoeken moeten tenminste <b>%s dag </b> van te voren worden ingediend.
    -MenuConfCP=Saldo verlofverzoeken
    -SoldeCPUser=Aantal resterende verlofdagen <b>%s</b>
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=U moet een einddatum kiezen die na de startdatum ligt.
     ErrorSQLCreateCP=Er is een SQL fout ontstaan bij het aanmaken:
     ErrorIDFicheCP=Fout. Verlofverzoek bestaat niet.
    @@ -101,8 +101,8 @@ LEAVE_SICK=Ziekteverlof
     LEAVE_OTHER=Overig verlof
     LEAVE_PAID_FR=Betaalde vakantie
     ## Configuration du Module ##
    -LastUpdateCP=Laatste automatische update van verlofverzoek bestemmingen
    -MonthOfLastMonthlyUpdate=Laatste maand van automatische verlofverzoek toewijzingen
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Bijgewerkt.
     Module27130Name= Beheer verlofverzoeken
     Module27130Desc= Beheer verlofverzoeken
    @@ -112,7 +112,7 @@ NoticePeriod=Opzegtermijn
     HolidaysToValidate=Verlofverzoeken goedkeuren
     HolidaysToValidateBody=Hieronder verzoek voor goedkeuring
     HolidaysToValidateDelay=Dit verlofverzoek zal plaatsvinden in minder dan %s dag.
    -HolidaysToValidateAlertSolde=De aanvrager voor dit verzoek heeft geen voldoende beschikbare verlofdagen over.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Goedkeuren verlofverzoeken
     HolidaysValidatedBody=Uw verlofverzoek van %s tot %s is goedgekeurd.
     HolidaysRefused=Verlofverzoeken geweigerd
    @@ -121,4 +121,9 @@ HolidaysCanceled=Annuleren verlofverzoek
     HolidaysCanceledBody=Uw verlofverzoek van%s tot %s is geannuleerd.
     FollowedByACounter=1: Dit soort verlof moet worden vervolgd met een teller. Deze zal handmatig of automatisch worden opgehoogd en wanneer verlofverzoek is goedgekeurd, zal deze automatisch aftellen. <br>0: Niet worden vervolgd met teller
     NoLeaveWithCounterDefined=Er zijn geen soorten verlof waarbij een teller nodig is.
    -GoIntoDictionaryHolidayTypes=Ga naar <strong>Home-Instellingen-Woordenboeken-Soort verlofzoeken</strong> voor het opzetten van verschillende soorten verlofverzoeken.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/nl_NL/hrm.lang b/htdocs/langs/nl_NL/hrm.lang
    index 5c831ef537a..6ff5f7b1d5d 100644
    --- a/htdocs/langs/nl_NL/hrm.lang
    +++ b/htdocs/langs/nl_NL/hrm.lang
    @@ -1,16 +1,16 @@
     # Dolibarr language file - en_US - hrm
     # Admin
    -HRM_EMAIL_EXTERNAL_SERVICE=Email to prevent HRM external service
    -Establishments=Establishments
    -Establishment=Establishment
    -NewEstablishment=New establishment
    -DeleteEstablishment=Delete establishment
    -ConfirmDeleteEstablishment=Are-you sure to delete this establishment?
    -OpenEtablishment=Open establishment
    -CloseEtablishment=Close establishment
    +HRM_EMAIL_EXTERNAL_SERVICE=E-mail om externe HRM services te verhinderen.
    +Establishments=Bedrijven
    +Establishment=Bedrijf
    +NewEstablishment=Nieuw bedrijf
    +DeleteEstablishment=Verwijder bedrijf
    +ConfirmDeleteEstablishment=Weet u zeker dat u deze vestiging wilt verwijderen?
    +OpenEtablishment=Open bedrijf
    +CloseEtablishment=Sluit bedrijf
     # Dictionary
     DictionaryDepartment=HRM - Afdelingslijst
    -DictionaryFunction=HRM - Function list
    +DictionaryFunction=HRM - Functielijst
     # Module
     Employees=Werknemers
     Employee=Werknemer
    diff --git a/htdocs/langs/nl_NL/install.lang b/htdocs/langs/nl_NL/install.lang
    index 224665d907e..8c51917ffbf 100644
    --- a/htdocs/langs/nl_NL/install.lang
    +++ b/htdocs/langs/nl_NL/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Volg simpelweg stap voor stap de instructies
     MiscellaneousChecks=Vereisten controleren
     ConfFileExists=Configuratiebestand <b>%s</b> bestaat.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuratiebestand <b>%s</b> bestaat niet en kon ook niet worden gecreëerd !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuratiebestand <b>%s</b> kon worden gecreëerd.
    -ConfFileIsNotWritable=Configuratie bestand <b>%s</b> is niet voor schrijven te openen. Voor de eerste installatie, moet de webserver toestemming krijgen om naar dit bestand te schrijven tijdens het configuratieproces (door bijvoorbeeld "chmod 666" op een Unix-achtig OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuratiebestand <b>%s</b> kan voor schrijven geopend worden.
    -ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload alle informatie van configuratiebestand.
    +ConfFileMustBeAFileNotADir=Configuratiebestand <b>%s</b> moet een bestand zijn en geen map.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Deze PHP installatie ondersteund sessies.
     PHPSupportPOSTGETOk=Deze PHP installatie ondersteunt POST en GET.
    -PHPSupportPOSTGETKo=Mogelijk ondersteunt uw PHP installatie geen POST en / of GET variabelen. Controleer deze instelling <b>variables_order</b> in php.ini.
    -PHPSupportGD=Deze PHP installatie ondersteunt GD grafische functies.
    -PHPSupportCurl=PHP ondersteunt Curl.
    -PHPSupportUTF8=Deze PHP installatie ondersteunt UTF8 functies.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Het maximale sessiegeheugen van deze PHP installatie is ingesteld op <b>%s</b>. Dit zou genoeg moeten zijn.
    -PHPMemoryTooLow=Het maximale sessiegeheugen van deze PHP installatie is ingesteld op <b>%s</b> bytes. Dit zou te weinig kunnen zijn. Verander uw <b>php.ini</b> om de <b>memory_limit</b> instelling op minimaal <b>%s</b> bytes te zetten.
    -Recheck=Klik hier voor een meer significantere test
    -ErrorPHPDoesNotSupportSessions=Uw PHP installatie ondersteunt geen sessies. Dit is vereist voor een goede werking van Dolibarr. Controleer uw PHP instellingen.
    -ErrorPHPDoesNotSupportGD=Uw PHP installatie ondersteunt geen grafische functies. Grafieken zullen niet beschikbaar zijn.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Uw PHP versie ondersteunt geen Curl.
    -ErrorPHPDoesNotSupportUTF8=Uw PHP installatie ondersteunt geen UTF8 functies. Dolibarr kan daardoor niet goed werken. Los dit op voordat u verder gaat met de installatie van Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=De map %s bestaat niet.
    -ErrorGoBackAndCorrectParameters=Ga terug en corrigeer de foutief ingestelde waarden.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=U heeft de parameter '%s' mogelijk verkeerd ingesteld.
     ErrorFailedToCreateDatabase=De database '%s' kon niet worden gecreëerd.
     ErrorFailedToConnectToDatabase=Het is niet gelukt om een verbinding met de database  '%s' te maken.
     ErrorDatabaseVersionTooLow=Database versie (%s) is te oud. Versie %s of hoger is vereist.
     ErrorPHPVersionTooLow=De geïnstalleerde PHP versie is te oud. Versie %s is nodig.
    -ErrorConnectedButDatabaseNotFound=De verbinding met de server kon succesvol worden gemaakt, maar de database '%s' is niet gevonden.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' bestaat al.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Wanneer de database niet bestaat, ga dan terug en vink de optie "Creëer database" aan.
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Wanneer de database al bestaat, ga dan terug en vink "Creëer database" uit.
    -WarningBrowserTooOld=Browser-versie te oud. Upgrade je browser naar een recente versie; Firefox, Chrome of Opera worden warm aanbevolen.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP versie
     License=Gebruikerslicentie
     ConfigurationFile=Configuratiebestand
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Naam of IP-adres van de database server, normaal gesproken 'localhost' wanneer de database gehost wordt op dezelfde webserver
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Databaseserverpoort. Laat dit leeg wanneer u dit niet weet.
     DatabaseServer=Databaseserver
     DatabaseName=Databasenaam
    -DatabasePrefix=Database prefix tafel
    -AdminLogin=Gebruikersnaam voor Dolibarr database eigenaar.
    -PasswordAgain=Voer uw wachtwoord opnieuw in.
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Wachtwoord voor de database eigenaar.
     CreateDatabase=Creëer database
    -CreateUser=Creëer eigenaar en geef deze permissies op de database.
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Databaseserver - Superuser toegang (root toegang)
    -CheckToCreateDatabase=Vink deze optie aan wanneer de database nog niet bestaat en gecreëerd moet worden.<br>In dit geval, moet u de velden gebruikersnaam en wachtwoord voor het superuser (root) account onderaan deze pagina ook invullen.
    -CheckToCreateUser=Schakel het selectievakje in als de database-eigenaar niet bestaat en moet worden gemaakt, of als deze bestaat maar de database niet bestaat en machtigingen moeten worden verleend.<br>In dit geval moet u de login en het wachtwoord kiezen en ook de login / het wachtwoord voor het superuser-account onderaan deze pagina invullen. Als dit selectievakje niet is aangevinkt, moeten de eigenaarsdatabase en de bijbehorende wachtwoorden aanwezig zijn.
    -DatabaseRootLoginDescription=Gebruikersnaam van de gebruiker die gemachtigd is om nieuwe databases of gebruikers aan te maken, nutteloos wanneer uw database en gebruiker al bestaan (zoals het geval wanneer u een webhosting provider gebruikt).
    -KeepEmptyIfNoPassword=Laat dit veld leeg wanneer de gebruiker geen wachtwoord heeft (vermijd dit)
    -SaveConfigurationFile=Waarden opslaan
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=serververbinding
     DatabaseCreation=Creatie van database
     CreateDatabaseObjects=Creatie van databaseobjecten
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Creëer foreign keys en indexes voor tabel %s
     OtherKeysCreation=Creatie van Foreign keys en indexes
     FunctionsCreation=Creatie van functies
     AdminAccountCreation=Creatie van beheerdersaccount
    -PleaseTypePassword=Vul een wachtwoord in a.u.b., lege wachtwoorden zijn niet toegestaan !
    -PleaseTypeALogin=Typ een gebruikersnaam in !
    -PasswordsMismatch=Wachtwoorden komen niet overeen, probeert u het opnieuw !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Einde van de installatie
     SystemIsInstalled=De installatie is voltooid.
     SystemIsUpgraded=Dolibarr is succesvol bijgewerkt.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=U dient Dolibarr naar eigen behoefte in te richten (ui
     AdminLoginCreatedSuccessfuly=Dolibarr beheerdersaccount <b>'%s'</b> succesvol gecreëerd.
     GoToDolibarr=Ga naar Dolibarr.
     GoToSetupArea=Ga naar Dolibarr (instellingsomgeving).
    -MigrationNotFinished=De versie van uw database is niet helemaal actueel, daarom moet u de upgrade opnieuw uitvoeren.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Ga opnieuw naar de upgrade pagina.
     WithNoSlashAtTheEnd=Zonder toevoeging van de slash "/" aan het eind
    -DirectoryRecommendation=Aanbevolen wordt een map te gebruiken buiten uw webpagina map
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Bestaat al
     DolibarrAdminLogin=Login van de Dolibarr beheerder
    -AdminLoginAlreadyExists=Het beheerdersaccount <b>'%s'</b> bestaat al.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Aanmaken Dolibarr administrator account niet geslaagd.
    -WarningRemoveInstallDir=Waarschuwing, om veiligheidsredenen, dient u de <b>install</b> map na de installatie of upgrade te verwijderen of maak een bestand genaamd <b>install.lock</b> aan in de Dolibarr root map.
    -FunctionNotAvailableInThisPHP=Niet beschikbaar in deze PHP installatie
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Kies het migratiescript
     DataMigration=Database migratie (gegevens)
    -DatabaseMigration=Database migration (structure + some data)
    +DatabaseMigration=Databasemigratie (structuur + enkele gegevens)
     ProcessMigrateScript=Script verwerking
     ChooseYourSetupMode=Kies de gewenste installatiemethode en klik op "Start"...
     FreshInstall=Nieuwe installatie
    -FreshInstallDesc=Kies deze optie wanneer dit de eerste keer is dat u Dolibarr installeert of wanneer u een voorgaande incomplete installatie wilt repareren. Wanneer u uw versie wilt bijwerken, kiest u dan voor de optie "Upgrade".
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Gebruik deze optie wanneer u oude Dolibarr bestanden wilt vervangen met bestanden van een nieuwe versie. Dit zal uw database en bestanden bijwerken.
     Start=Start
     InstallNotAllowed=Installatie niet toegestaan door beperkte <b>conf.php</b> rechten
     YouMustCreateWithPermission=U dient het bestand %s te creëren en het schrijfrechten te geven voor de webserver tijdens de installatie.
    -CorrectProblemAndReloadPage=Verhelp a.u.b. het probleem en druk op F5 om de pagina te herladen.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Al gemigreerd
     DatabaseVersion=Database versie
     ServerVersion=Database server versie
     YouMustCreateItAndAllowServerToWrite=U dient deze map te creëren en de juiste rechten te geven, zodat de webserver erin kan opslaan.
     DBSortingCollation=Karakter sorteervolgorde
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=U wilt de database <b>%s,</b> creëren, maar hiervoor moet Dolibarr met de server <b>%s</b> verbinden met superuser (root) <b>%s</b> rechten.
    -YouAskLoginCreationSoDolibarrNeedToConnect=U wilt de database gebruikersnaam <b>%s,</b> creëren, maar hiervoor moet Dolibarr met de server <b>%s</b> verbinden met superuser (root) <b>%s</b> rechten.
    -BecauseConnectionFailedParametersMayBeWrong=Omdat de verbinding niet geslaagd is, moeten de opgegeven host of superuser (root) waarden wel foutief zijn
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Wezenbetaling gedetecteerd door de methode %s
     RemoveItManuallyAndPressF5ToContinue=Verwijder het met de hand en druk op F5 om door te gaan
     FieldRenamed=Veld hernoemd
    -IfLoginDoesNotExistsCheckCreateUser=Wanneer de gebruiker nog niet bestaat, dient u de optie "Gebruiker aanmaken" aan te vinken
    -ErrorConnection=Server <b>"%s",</b> databasenaam <b>"%s",</b> gebruikersnaam <b>"%s",</b> of databasewachtwoord kunnen foutief zijn ingesteld of de geïnstalleerde PHP versie is te oud vergeleken met de database versie.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Aanbevolen keuze om versie <b>%s</b> te installeren vanaf uw huidige versie <b>%s</b>
     InstallChoiceSuggested=<b>Installatiemethode voorgesteld door het installatieprogramma.</b>
    -MigrateIsDoneStepByStep=De beoogde versie (%s) heeft een gat van meerdere versies, zodat installatie wizard zal terug komen naar de volgende migratie stellen zodra dit een zal worden afgewerkt.
    -CheckThatDatabasenameIsCorrect=Controleer of de databasenaam <b>%s</b> juist is.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Als deze naam correct is en deze database nog niet bestaat, dient u de optie "Creëer database" aan te vinken.
     OpenBaseDir=PHP openbasedir waarde
    -YouAskToCreateDatabaseSoRootRequired=U heeft de optie "Creëer database" aangevinkt. Hiervoor dient u de gebruikersnaam en het wachtwoord van de superuser (root) op te geven. (Onderaan het formulier).
    -YouAskToCreateDatabaseUserSoRootRequired=U heeft de optie "Creëer database-eigenaar" aangevinkt. Hiervoor dient u de gebruikersnaam en het wachtwoord van de superuser (root) op te geven. (Onderaan het formulier).
    -NextStepMightLastALongTime=Deze stap kan enkele minuten duren. Wacht a.u.b. tot het volgende scherm wordt weergegeven voordat u verdergaat.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migreer afnemersopdrachtverzending
     MigrationShippingDelivery=Waardeer de opslag van verzending op
     MigrationShippingDelivery2=Waardeer de opslag van verzending op 2
     MigrationFinished=Migratie voltooid
    -LastStepDesc=<strong>Laatste stap:</strong> Definieer hier de login en het wachtwoord die u wilt gebruiken om verbinding te maken met de software. Raak deze gegevens niet kwijt omdat dit account bedoelt is om alle andere gebruikers te beheren.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activeer module %s
     ShowEditTechnicalParameters=Klik hier om geavanceerde parameters te zien of te wijzigen. (expert instellingen)
    -WarningUpgrade=Waarschuwing:\nHeeft u eerst een database back-up gemaakt?\nDit wordt ten zeerste aanbevolen. Bijvoorbeeld door bugs in databasesystemen (bijvoorbeeld in MySQL versie 5.5.40 / 41/42/43), kunnen sommige gegevens of tabellen tijdens dit proces verloren gaan, dus het wordt sterk aanbevolen om een complete dump van uw database te maken voordat u met de migratie begint.\n\nKlik op OK om het migratieproces te starten ...
    -ErrorDatabaseVersionForbiddenForMigration=Uw database versie is %s en heeft een kritieke bug die gegevensverlies veroorzaakt als u structuur veranderingen uitvoert op uw database, welke gedaan worden door het migratieproces. Vanwege deze reden, zal de migratie niet worden toegestaan ​​totdat u uw database upgrade naar een hogere versie (lijst van gekende versies met bug: %s).
    -KeepDefaultValuesWamp=U gebruikt de Dolibarr installatiewizard van DoliWamp, dus de hier voorgestelde waarden zijn al geoptimaliseerd. Wijzig ze alleen wanneer u weet wat u doet.
    -KeepDefaultValuesDeb=U gebruikt de Dolibarr installatiewizard uit een Ubuntu of Debian pakket, dus de hier voorgestelde waarden zijn al geoptimaliseerd. Alleen het wachtwoord van de te creëren database-eigenaar moeten worden ingevuld. Wijzig de andere waarden alleen als u weet wat u doet.
    -KeepDefaultValuesMamp=U gebruikt de Dolibarr installatiewizard van DoliMamp, dus de hier voorgestelde waarden zijn al geoptimaliseerd. Wijzig ze alleen wanneer u weet wat u doet.
    -KeepDefaultValuesProxmox=U gebruikt de Dolibarr installatiewizard van een Proxmox virtueel systeem, dus de hier voorgestelde waarden zijn al geoptimaliseerd. Wijzig ze alleen wanneer u weet wat u doet.
    -UpgradeExternalModule=Voer een specifiek upgradeproces uit voor externe modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Stel ten minste één optie in als parameter in de URL. Bijvoorbeeld: '... repair.php? Standard = confirmed'
     NothingToDelete=Niets om op te ruimen / verwijderen
     NothingToDo=Niets te doen
    @@ -147,11 +148,11 @@ NothingToDo=Niets te doen
     # upgrade
     MigrationFixData=Reparatie voor gedenormaliseerde gegevens
     MigrationOrder=Gegevensmigratie van orders van afnemers
    -MigrationSupplierOrder=Data migration for vendor's orders
    +MigrationSupplierOrder=Gegevensmigratie voor bestellingen van leveranciers
     MigrationProposal=Gegevensmigratie van zakelijke voorstellen
     MigrationInvoice=Gegevensmigratie van afnemersfacturen
     MigrationContract=Gegevensmigratie van contracten
    -MigrationSuccessfullUpdate=Dolibarr is succesvol bijgewerkt.
    +MigrationSuccessfullUpdate=Upgrade succesvol
     MigrationUpdateFailed=Het upgrade proces is mislukt
     MigrationRelationshipTables=Gegevensmigratie van de relatietabellen (%s)
     MigrationPaymentsUpdate=Correctie betalingsgegevens
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Correctie contractgegevens
     MigrationContractsNumberToUpdate=%s contract(en) bij te werken
     MigrationContractsLineCreation=Creëer contract regel voor contract %s
     MigrationContractsNothingToUpdate=Niets meer te doen
    -MigrationContractsFieldDontExist=Het veld fk_facture bestaat niet meer. Niets te doen.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract lege datum correctie
    -MigrationContractsEmptyDatesUpdateSuccess=Contract lege datumcorrectie met succes uitgevoerd
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Geen contract lege datum te corrigieren
     MigrationContractsEmptyCreationDatesNothingToUpdate=Geen contract creatiedatum te corrigeren
     MigrationContractsInvalidDatesUpdate=Ongeldige datum contract waarde correctie
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Levering bijwerking
     MigrationStockDetail=Werk waarde van voorraad van producten bij
     MigrationMenusDetail=Werk de tabellen van de dynamische menu's bij
     MigrationDeliveryAddress=Werk afleveringsadres voor verzendingen bij
    -MigrationProjectTaskActors=Gegevensmigratie voor llx_projet_task_actors tabel
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Gegevensmigratie veld fk_user_resp van llx_projet naar llx_element_contact
     MigrationProjectTaskTime=Verstreken tijd van de update in seconden
     MigrationActioncommElement=Bijwerken van gegevens over acties
     MigrationPaymentMode=Data migratie voor de betaling mode
     MigrationCategorieAssociation=Migratie van categoriën
    -MigrationEvents=Migratie van taken om taak eigenaar toe te voegen in toekennings tabel
    -MigrationEventsContact=Migratie van evenementen om afspraakcontact toe te voegen aan de toewijzingstabel
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Aanpassen entity veld waarde van llx_societe_remise
     MigrationRemiseExceptEntity=Aanpassen entity veld waarde van llx_societe_remise_except
     MigrationUserRightsEntity=Aanpassen entity veld waarde van llx_user_rights
     MigrationUserGroupRightsEntity=Aanpassen entity veld waarde van llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Herlaad module %s
     MigrationResetBlockedLog=Reset BlockedLog module voor v7 algoritme
    -ShowNotAvailableOptions=Toon niet beschikbare opties
    -HideNotAvailableOptions=Verberg niet beschikbare opties
    -ErrorFoundDuringMigration=Er is een fout gemeld tijdens het migratieproces, dus de volgende stap is niet beschikbaar. Om fouten te negeren kunt u <a href="%s">hier</a> klikken, maar sommige functies van de applicatie werken mogelijk pas goed als deze zijn opgelost.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    -ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
    +ClickHereToGoToApp=Klik hier om naar uw toepassing te gaan
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/nl_NL/interventions.lang b/htdocs/langs/nl_NL/interventions.lang
    index 8466a404a27..e71a7f08a52 100644
    --- a/htdocs/langs/nl_NL/interventions.lang
    +++ b/htdocs/langs/nl_NL/interventions.lang
    @@ -4,9 +4,10 @@ Interventions=Interventies
     InterventionCard=Interventiedetails
     NewIntervention=Nieuwe interventie
     AddIntervention=Nieuwe interventie
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Interventielijst
     ActionsOnFicheInter=Acties bij interventie
    -LastInterventions=Latest %s interventions
    +LastInterventions=Laatste %s interventies
     AllInterventions=Alle interventies
     CreateDraftIntervention=Creëer conceptinterventie
     InterventionContact=Interventiecontactpersoon
    @@ -14,19 +15,19 @@ DeleteIntervention=Interventie verwijderen
     ValidateIntervention=Inteverntie valideren
     ModifyIntervention=Interventie aanpassen
     DeleteInterventionLine=Interventieregel verwijderen
    -CloneIntervention=Clone intervention
    -ConfirmDeleteIntervention=Are you sure you want to delete this intervention?
    -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name <b>%s</b>?
    -ConfirmModifyIntervention=Are you sure you want to modify this intervention?
    -ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line?
    -ConfirmCloneIntervention=Are you sure you want to clone this intervention?
    +CloneIntervention=Kloon interventie
    +ConfirmDeleteIntervention=Weet u zeker dat u deze interventie wilt verwijderen?
    +ConfirmValidateIntervention=Weet u zeker dat u deze interventie wilt valideren onder naam <b>%s</b>?
    +ConfirmModifyIntervention=Weet u zeker dat u deze interventie wilt wijzigen?
    +ConfirmDeleteInterventionLine=Weet u zeker dat u deze interventieregel wilt verwijderen?
    +ConfirmCloneIntervention=Weet je zeker dat je deze interventie wilt klonen?
     NameAndSignatureOfInternalContact=Naam en handtekening van de uitvoerder:
     NameAndSignatureOfExternalContact=Naam en handtekening van de afnemer:
     DocumentModelStandard=Standaard modeldocument voor interventies
     InterventionCardsAndInterventionLines=Inteventiebladen en -regels
     InterventionClassifyBilled=Classificeer "gefactureerd"
     InterventionClassifyUnBilled=Classificeer "Nog niet gefactureerd"
    -InterventionClassifyDone=Classify "Done"
    +InterventionClassifyDone=Classificeer "Klaar"
     StatusInterInvoiced=Gefactureerd
     SendInterventionRef=Indiening van de interventie %s
     SendInterventionByMail=Stuur intervemtie per e-mail
    @@ -37,30 +38,30 @@ InterventionClassifiedBilledInDolibarr=Interventie %s als gefactureerd geclassif
     InterventionClassifiedUnbilledInDolibarr=Interventie %s als nog niet gefactureerd geclassificeerd
     InterventionSentByEMail=Interventie %s per e-mail verstuurd
     InterventionDeletedInDolibarr=Interventie %s verwijderd
    -InterventionsArea=Interventions area
    -DraftFichinter=Draft interventions
    -LastModifiedInterventions=Latest %s modified interventions
    -FichinterToProcess=Interventions to process
    +InterventionsArea=Interventies onderdeel
    +DraftFichinter=Concept-interventies
    +LastModifiedInterventions=Laatste %s aangepaste interventies
    +FichinterToProcess=Interventies om te verwerken
     ##### Types de contacts #####
     TypeContact_fichinter_external_CUSTOMER=Nabehandeling afnemerscontact
     # Modele numérotation
    -PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card
    +PrintProductsOnFichinter=Print ook regels van het type "product" (niet alleen diensten) op de interventiekaart
     PrintProductsOnFichinterDetails=Interventies gegenereerd op basis van bestellingen
    -UseServicesDurationOnFichinter=Use services duration for interventions generated from orders
    -UseDurationOnFichinter=Hides the duration field for intervention records
    -UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
    -InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    -AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
    +UseServicesDurationOnFichinter=Gebruik de duur van de services voor interventies die zijn gegenereerd op basis van bestellingen
    +UseDurationOnFichinter=Verbergt het duurveld voor interventierecords
    +UseDateWithoutHourOnFichinter=Verbergt uren en minuten uit het datumveld voor interventierecords
    +InterventionStatistics=Interventie statistieken
    +NbOfinterventions=Aantal interventiekaarten
    +NumberOfInterventionsByMonth=Aantal interventiekaarten per maand (datum van validatie)
    +AmountOfInteventionNotIncludedByDefault=Het bedrag voor interventie is niet standaard opgenomen in de winst (in de meeste gevallen worden de urenstaten gebruikt om de bestede tijd te tellen). Voeg optie PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT toe aan 1 in home-setup-diversen om ze op te nemen.
     ##### Exports #####
    -InterId=Intervention id
    -InterRef=Intervention ref.
    -InterDateCreation=Date creation intervention
    -InterDuration=Duration intervention
    -InterStatus=Status intervention
    -InterNote=Note intervention
    -InterLineId=Line id intervention
    -InterLineDate=Line date intervention
    -InterLineDuration=Line duration intervention
    -InterLineDesc=Line description intervention
    +InterId=Interventie-ID
    +InterRef=Interventie ref.
    +InterDateCreation=Aanmaakdatum interventie
    +InterDuration=Interventieduur
    +InterStatus=Interventiestatus
    +InterNote=Opmerking interventie
    +InterLineId=Regel ID-interventie
    +InterLineDate=Datum regel interventie
    +InterLineDuration=Duur regel interventie
    +InterLineDesc=Opmerking regel interventie
    diff --git a/htdocs/langs/nl_NL/languages.lang b/htdocs/langs/nl_NL/languages.lang
    index f63777e45ee..45075761bf1 100644
    --- a/htdocs/langs/nl_NL/languages.lang
    +++ b/htdocs/langs/nl_NL/languages.lang
    @@ -1,6 +1,6 @@
     # Dolibarr language file - Source file is en_US - languages
     Language_ar_AR=Arabisch
    -Language_ar_EG=Arabic (Egypt)
    +Language_ar_EG=Arabisch (Egyptisch)
     Language_ar_SA=Arabisch
     Language_bn_BD=Bengaals
     Language_bg_BG=Bulgaarse
    @@ -13,7 +13,7 @@ Language_de_DE=Duits
     Language_de_AT=Duits (Oostenrijk)
     Language_de_CH=Duits (Zwitserland)
     Language_el_GR=Grieks
    -Language_el_CY=Greek (Cyprus)
    +Language_el_CY=Grieks (Cyprus)
     Language_en_AU=Engels (Australië)
     Language_en_CA=Engels (Canada)
     Language_en_GB=Engels (Groot Brittannië)
    @@ -24,23 +24,23 @@ Language_en_US=Engels (Verenigde Staten)
     Language_en_ZA=Engels (Zuid-Afrika)
     Language_es_ES=Spaans
     Language_es_AR=Spaans (Argentinië)
    -Language_es_BO=Spanish (Bolivia)
    +Language_es_BO=Spaans (Bolivia)
     Language_es_CL=Spaans (Chili)
     Language_es_CO=Spaans (Colombia)
     Language_es_DO=Spaans (Dominicaanse Republiek)
    -Language_es_EC=Spanish (Ecuador)
    +Language_es_EC=Spaans (Ecuador)
     Language_es_HN=Spaans (Honduras)
     Language_es_MX=Spaans (Mexico)
    -Language_es_PA=Spanish (Panama)
    +Language_es_PA=Spaans (Panama)
     Language_es_PY=Spaans (Paraguay)
     Language_es_PE=Spaans (Peru)
     Language_es_PR=Spaans (Puerto Rico)
    -Language_es_UY=Spanish (Uruguay)
    -Language_es_VE=Spanish (Venezuela)
    +Language_es_UY=Spaans (Uruguay)
    +Language_es_VE=Spaans (Venezuela)
     Language_et_EE=Estlands
     Language_eu_ES=Bask
     Language_fa_IR=Perzisch
    -Language_fi_FI=Finnish
    +Language_fi_FI=Voltooi
     Language_fr_BE=Frans (België)
     Language_fr_CA=Frans (Canada)
     Language_fr_CH=Frans (Zwitserland)
    @@ -62,7 +62,7 @@ Language_lo_LA=Laotiaans
     Language_lt_LT=Litouws
     Language_lv_LV=Lets
     Language_mk_MK=Macedonisch
    -Language_mn_MN=Mongolian
    +Language_mn_MN=Mongools
     Language_nb_NO=Noors (Bokmål)
     Language_nl_BE=Nederlands (België)
     Language_nl_NL=Nederlands (Nederland)
    @@ -78,7 +78,7 @@ Language_sv_SV=Zweeds
     Language_sv_SE=Zweeds
     Language_sq_AL=Albanees
     Language_sk_SK=Slovakian
    -Language_sr_RS=Serbian
    +Language_sr_RS=Servisch
     Language_sw_SW=Kiswahili
     Language_th_TH=Thai
     Language_uk_UA=Oekraïens
    @@ -86,3 +86,4 @@ Language_uz_UZ=Oezbeeks
     Language_vi_VN=Vietnamees
     Language_zh_CN=Chinees
     Language_zh_TW=Chinees (traditioneel)
    +Language_bh_MY=Maleis-
    diff --git a/htdocs/langs/nl_NL/ldap.lang b/htdocs/langs/nl_NL/ldap.lang
    index 1057185d34b..b72b2e0cc7d 100644
    --- a/htdocs/langs/nl_NL/ldap.lang
    +++ b/htdocs/langs/nl_NL/ldap.lang
    @@ -24,4 +24,4 @@ MemberTypeSynchronized=Soort lidmaatschap gesynchroniseerd
     ContactSynchronized=Contact gesynchroniseerd
     ForceSynchronize=Forceer synchronisatie Dolibarr -> LDAP
     ErrorFailedToReadLDAP=Kon niet lezen uit de LDAP-database. Controleer de instellingen van de LDAP module en database toegankelijkheid.
    -PasswordOfUserInLDAP=Password of user in LDAP
    +PasswordOfUserInLDAP=Wachtwoord van gebruiker in LDAP
    diff --git a/htdocs/langs/nl_NL/main.lang b/htdocs/langs/nl_NL/main.lang
    index 28639d67dad..cbd0a5139a1 100644
    --- a/htdocs/langs/nl_NL/main.lang
    +++ b/htdocs/langs/nl_NL/main.lang
    @@ -24,8 +24,8 @@ FormatDateHourSecShort=%d/%m/%Y %I:%M:%S %p
     FormatDateHourTextShort=%d %b %Y %H:%M
     FormatDateHourText=%d %B %Y %H:%M
     DatabaseConnection=Databaseverbinding
    -NoTemplateDefined=No template available for this email type
    -AvailableVariables=Available substitution variables
    +NoTemplateDefined=Geen sjabloon beschikbaar voor dit e-mailtype
    +AvailableVariables=Beschikbare substitutievariabelen
     NoTranslation=Geen vertaling
     Translation=Vertaling
     NoRecordFound=Geen item gevonden
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Mail versturen mislukt (afzender=%s, ontvanger=%s)
     ErrorFileNotUploaded=Bestand is niet geüploadet. Controleer of de grootte niet meer is dan maximaal toegestaan, of er vrije ruimte beschikbaar is op de schijf en of er niet al een bestand met dezelfde naam in deze map bestaat.
     ErrorInternalErrorDetected=Fout ontdekt
     ErrorWrongHostParameter=Verkeerde host-instelling
    -ErrorYourCountryIsNotDefined=Uw land is niet gedefinieerd. Corrigeer in Home->Instellingen-Bewerk en verstuur het formulier opnieuw.
    -ErrorRecordIsUsedByChild=Item verwijderen mislukt. Dit item wordt gebruikt door ten minste één onderliggend item.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Verkeerde waarde
     ErrorWrongValueForParameterX=Verkeerde waarde voor de parameter %s
     ErrorNoRequestInError=Geen verzoek mislukt
    -ErrorServiceUnavailableTryLater=Service op dit moment niet beschikbaar. Probeer het later opnieuw.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Dubbele waarde in een uniek veld
    -ErrorSomeErrorWereFoundRollbackIsDone=Fouten gevonden. Wij draaien de veranderingen terug.
    -ErrorConfigParameterNotDefined=<b>Parameter %s</b> is niet gedefinieerd binnen Dolibarr configuratiebestand <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Kan <b>gebruiker %s</b> niet in de Dolibarr database vinden.
     ErrorNoVATRateDefinedForSellerCountry=Fout, geen BTW-tarieven voor land '%s'.
     ErrorNoSocialContributionForSellerCountry=Fout, geen sociale/fiscale belastingtypen gedefinieerd voor land '%s'.
     ErrorFailedToSaveFile=Fout, bestand opslaan mislukt.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=U bent hiervoor niet bevoegd.
     SetDate=Stel datum in
     SelectDate=Selecteer een datum
    @@ -74,25 +74,25 @@ ClickHere=Klik hier
     Here=Hier
     Apply=Toepassen
     BackgroundColorByDefault=Standaard achtergrondkleur
    -FileRenamed=The file was successfully renamed
    +FileRenamed=Het bestand is met succes hernoemd
     FileGenerated=Het bestand is succesvol aangemaakt
     FileSaved=Het bestand is succesvol opgeslagen
     FileUploaded=Het bestand is geüpload
    -FileTransferComplete=Bestand(en) succesvol geupload
    -FilesDeleted=File(s) successfully deleted
    +FileTransferComplete=File(s) uploaded successfully
    +FilesDeleted=Bestand (en) succesvol verwijderd
     FileWasNotUploaded=Een bestand is geselecteerd als bijlage, maar is nog niet geüploadet. Klik hiervoor op "Bevestig dit bestand".
    -NbOfEntries=Aantal invoeringen
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Lees de online hulptekst (internettoegang vereist)
     GoToHelpPage=Lees de hulptekst
     RecordSaved=Item opgeslagen
     RecordDeleted=Item verwijderd
     LevelOfFeature=Niveau van de functionaliteiten
     NotDefined=Niet gedefinieerd
    -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to <b>%s</b> in configuration file <b>conf.php</b>.<br>This means that the password database is external to Dolibarr, so changing this field may have no effect.
    +DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr Authenticatie modus is ingesteld op <b>%s</b> in configuratiebestand <b>conf.php</b>. <br>Dit betekent dat de wachtwoorddatabase extern is van Dolibarr. Dit veld wijzigen heeft mogelijk geen effect .
     Administrator=Beheerder
     Undefined=Ongedefineerd
     PasswordForgotten=Wachtwoord vergeten?
    -NoAccount=No account?
    +NoAccount=Geen account?
     SeeAbove=Zie hierboven
     HomeArea=Home
     LastConnexion=Laatste connectie
    @@ -107,8 +107,8 @@ RequestLastAccessInError=Database fout bij laatste verzoek
     ReturnCodeLastAccessInError=Retourcode voor de meest recente fout bij het toegangsverzoek voor de database
     InformationLastAccessInError=Informatie voor de meest recente database-toegangsverzoekfout
     DolibarrHasDetectedError=Dolibarr heeft een technische fout gedetecteerd
    -YouCanSetOptionDolibarrMainProdToZero=You can read log file or set option $dolibarr_main_prod to '0' in your config file to get more information.
    -InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to remove such notices)
    +YouCanSetOptionDolibarrMainProdToZero=U kunt het logbestand lezen of de optie $dolibarr_main_prod instellen op '0' in uw configuratiebestand voor meer informatie.
    +InformationToHelpDiagnose=Deze informatie kan nuttig zijn voor diagnostische doeleinden (u kunt optie $dolibarr_main_prod instellen op '1' om dergelijke kennisgevingen te verwijderen)
     MoreInformation=Meer informatie
     TechnicalInformation=Technische gegevens
     TechnicalID=Technische ID
    @@ -128,32 +128,33 @@ Home=Home
     Help=Help
     OnlineHelp=Online hulp
     PageWiki=Wiki Pagina
    -MediaBrowser=Media browser
    +MediaBrowser=Mediabrowser
     Always=Altijd
     Never=Nooit
     Under=onder
     Period=Looptijd
     PeriodEndDate=Einddatum looptijd
    -SelectedPeriod=Selected period
    -PreviousPeriod=Previous period
    +SelectedPeriod=Geselecteerde periode
    +PreviousPeriod=Vorige periode
     Activate=Activeren
     Activated=Geactiveerd
     Closed=Gesloten
     Closed2=Gesloten
     NotClosed=Niet gesloten
     Enabled=Ingeschakeld
    +Enable=Activeren
     Deprecated=Deprecated
     Disable=Uitschakelen
     Disabled=Uitgeschakeld
     Add=Toevoegen
     AddLink=Link toevoegen
     RemoveLink=Verwijder link
    -AddToDraft=Add to draft
    +AddToDraft=Toevoegen aan concept
     Update=Update
     Close=Sluiten
    -CloseBox=Remove widget from your dashboard
    +CloseBox=Verwijder widget van uw dashboard
     Confirm=Bevestig
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Wissen
     Remove=Verwijderen
     Resiliate=Afbreken
    @@ -188,7 +189,7 @@ ToLink=Link
     Select=Selecteer
     Choose=Kies
     Resize=Schalen
    -ResizeOrCrop=Resize or Crop
    +ResizeOrCrop=Formaat wijzigen of bijsnijden
     Recenter=Hercentreer
     Author=Auteur
     User=Gebruiker
    @@ -267,13 +268,13 @@ DateBuild=Datum van rapportgeneratie
     DatePayment=Datum van betaling
     DateApprove=Goedkeurings datum
     DateApprove2=Datum akkoord (tweede)
    -RegistrationDate=Registration date
    +RegistrationDate=Registratie datum
     UserCreation=Aanmaken gebruiker
     UserModification=Wijzigen gebruiker
    -UserValidation=Validation user
    +UserValidation=Validatie gebruiker
     UserCreationShort=Gebruiker aanmaken
     UserModificationShort=Gebruiker wijzigen
    -UserValidationShort=Valid. user
    +UserValidationShort=Geldige gebruiker
     DurationYear=jaar
     DurationMonth=maand
     DurationWeek=week
    @@ -315,8 +316,8 @@ KiloBytes=KiloBytes
     MegaBytes=MegaBytes
     GigaBytes=GigaBytes
     TeraBytes=Terabytes
    -UserAuthor=User of creation
    -UserModif=User of last update
    +UserAuthor=Gebruiker van creatie
    +UserModif=Gebruiker van de laatste update
     b=b
     Kb=Kb
     Mb=Mb
    @@ -327,12 +328,12 @@ Copy=Kopiëren
     Paste=Plakken
     Default=Standaard
     DefaultValue=Standaardwaarde
    -DefaultValues=Standaard waarden
    +DefaultValues=Default values/filters/sorting
     Price=Prijs
    -PriceCurrency=Price (currency)
    +PriceCurrency=Prijs (valuta)
     UnitPrice=Eenheidsprijs
     UnitPriceHT=Eenheidsprijs (netto)
    -UnitPriceHTCurrency=Unit price (net) (currency)
    +UnitPriceHTCurrency=Eenheidsprijs (netto) (valuta)
     UnitPriceTTC=Eenheidsprijs (bruto)
     PriceU=E.P.
     PriceUHT=EP (netto)
    @@ -340,16 +341,16 @@ PriceUHTCurrency=Valuta
     PriceUTTC=U.P. (inc. belasting)
     Amount=Hoeveelheid
     AmountInvoice=Factuurbedrag
    -AmountInvoiced=Amount invoiced
    +AmountInvoiced=Gefactureerd bedrag
     AmountPayment=Betalingsbedrag
     AmountHTShort=Bedrag ex. BTW
     AmountTTCShort=Bedrag met BTW
     AmountHT=Bedrag (exclusief BTW)
     AmountTTC=Bedrag (incl. BTW)
     AmountVAT=Bedrag BTW
    -MulticurrencyAlreadyPaid=Reeds betaald, originele valuta
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Rest openstaand, originele valuta
    -MulticurrencyPaymentAmount=Payment amount, original currency
    +MulticurrencyPaymentAmount=Betalingsbedrag, originele valuta
     MulticurrencyAmountHT=Nettobedrag, oorspronkelijke valuta
     MulticurrencyAmountTTC=Bedrag (incl. BTW), oorspronkelijke valuta
     MulticurrencyAmountVAT=BTW bedrag, oorspronkelijke valuta
    @@ -360,7 +361,7 @@ AmountLT2ES=Bedrag IRPF
     AmountTotal=Totaal bedrag
     AmountAverage=Gemiddeld bedrag
     PriceQtyMinHT=Prijs hoeveelheid min. (exclusief BTW)
    -PriceQtyMinHTCurrency=Price quantity min. (net of tax) (currency)
    +PriceQtyMinHTCurrency=Prijs hoeveelheid min. (na aftrek van btw) (valuta)
     Percentage=Percentage
     Total=Totaal
     SubTotal=Subtotaal
    @@ -373,39 +374,39 @@ Totalforthispage=Totaal voor deze pagina
     TotalTTC=Totaal (incl. BTW)
     TotalTTCToYourCredit=Totaal (incl. BTW) op uw krediet
     TotalVAT=Totaal BTW
    -TotalVATIN=Total IGST
    +TotalVATIN=Totale IGST
     TotalLT1=Totaal tax 2
     TotalLT2=Totaal tax 3
     TotalLT1ES=Totaal RE
     TotalLT2ES=Totaal IRPF
    -TotalLT1IN=Total CGST
    -TotalLT2IN=Total SGST
    +TotalLT1IN=Totaal CGST
    +TotalLT2IN=Totaal SGST
     HT=Exclusief BTW
     TTC=Inclusief BTW
    -INCVATONLY=Inc. VAT
    +INCVATONLY=Incl. BTW
     INCT=Incl. alle belastingen
     VAT=BTW
     VATIN=IGST
     VATs=BTW
    -VATINs=IGST taxes
    -LT1=Sales tax 2
    -LT1Type=Sales tax 2 type
    -LT2=Sales tax 3
    -LT2Type=Sales tax 3 type
    +VATINs=IGST belastingen
    +LT1=Omzetbelasting 2
    +LT1Type=BTW type 2
    +LT2=Omzetbelasting 3
    +LT2Type=BTW type 3
     LT1ES=RE
     LT2ES=IRPF
     LT1IN=CGST
     LT2IN=SGST
     VATRate=BTW-tarief
    -VATCode=Tax Rate code
    -VATNPR=Tax Rate NPR
    +VATCode=Belastingtariefcode
    +VATNPR=NPR belastingtarief
     DefaultTaxRate=BTW tarief
     Average=Gemiddeld
     Sum=Som
     Delta=Variantie
    -RemainToPay=Remain to pay
    +RemainToPay=Restant te betalen
     Module=Module/Applicatie
    -Modules=Modules/Applications
    +Modules=Modules / Applicaties
     Option=Optie
     List=Lijstoverzicht
     FullList=Volledig overzicht
    @@ -416,7 +417,7 @@ Favorite=Favoriet
     ShortInfo=Info.
     Ref=Referentie
     ExternalRef=Ref. extern
    -RefSupplier=Ref. vendor
    +RefSupplier=Ref. verkoper
     RefPayment=Betalingskenmerk
     CommercialProposalsShort=Offertes
     Comment=Opmerking
    @@ -428,7 +429,7 @@ ActionNotApplicable=Niet van toepassing
     ActionRunningNotStarted=Niet gestart
     ActionRunningShort=Reeds bezig
     ActionDoneShort=Uitgevoerd
    -ActionUncomplete=Onvolledig
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Laatste %s gekoppelde evenementen
     CompanyFoundation=Bedrijf/Organisatie
     Accountant=Accountant
    @@ -436,11 +437,12 @@ ContactsForCompany=Bedrijfscontacten
     ContactsAddressesForCompany=Contacten / adressen voor deze relatie
     AddressesForCompany=Adressen voor deze relatie
     ActionsOnCompany=Acties voor bedrijf
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events over dit lid
    -ActionsOnProduct=Events about this product
    +ActionsOnProduct=Evenementen in dit product
     NActionsLate=%s is laat
     ToDo=Te doen
    -Completed=Completed
    +Completed=Voltooid
     Running=Reeds bezig
     RequestAlreadyDone=Aanvraag reeds opgenomen
     Filter=Filter
    @@ -453,9 +455,9 @@ Generate=Genereer
     Duration=Duur
     TotalDuration=Totale duur
     Summary=Samenvatting
    -DolibarrStateBoard=Database statistieken
    -DolibarrWorkBoard=In behandeling
    -NoOpenedElementToProcess=No opened element to process
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
    +NoOpenedElementToProcess=Geen geopend element om te verwerken
     Available=Beschikbaar
     NotYetAvailable=Nog niet beschikbaar
     NotAvailable=Niet beschikbaar
    @@ -490,12 +492,12 @@ Discount=Korting
     Unknown=Onbekend
     General=Algemeen
     Size=Grootte
    -OriginalSize=Original size
    +OriginalSize=Originele grootte
     Received=Ontvangen
     Paid=Betaald
     Topic=Onderwerp
     ByCompanies=Door bedrijven
    -ByUsers=By user
    +ByUsers=Door gebruiker
     Links=Links
     Link=Link
     Rejects=Verworpen
    @@ -504,20 +506,20 @@ NextStep=Volgende stap
     Datas=Gegevens
     None=Geen
     NoneF=Geen
    -NoneOrSeveral=None or several
    +NoneOrSeveral=Geen of meerdere
     Late=Vertraagd
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    -NoItemLate=No late item
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
    +NoItemLate=Geen laat item
     Photo=Afbeelding
     Photos=Afbeeldingen
     AddPhoto=Afbeelding toevoegen
     DeletePicture=Afbeelding verwijderen
     ConfirmDeletePicture=Bevestig verwijderen afbeelding
     Login=Login
    -LoginEmail=Login (email)
    -LoginOrEmail=Login or Email
    +LoginEmail=Login (e-mail)
    +LoginOrEmail=Inlog of e-mail
     CurrentLogin=Huidige login
    -EnterLoginDetail=Enter login details
    +EnterLoginDetail=Voer inloggegevens in
     January=Januari
     February=Februari
     March=Maart
    @@ -530,18 +532,6 @@ September=September
     October=Oktober
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Februari
    -MarchMin=Mar
    -AprilMin=April
    -MayMin=Kunnen
    -JuneMin=Juni
    -JulyMin=Juli
    -AugustMin=Augustus
    -SeptemberMin=September
    -OctoberMin=Oktober
    -NovemberMin=November
    -DecemberMin=December
     Month01=januari
     Month02=februari
     Month03=maart
    @@ -579,7 +569,7 @@ MonthVeryShort10=O
     MonthVeryShort11=N
     MonthVeryShort12=D
     AttachedFiles=Bijgevoegde bestanden en documenten
    -JoinMainDoc=Join main document
    +JoinMainDoc=Word hoofddocument
     DateFormatYYYYMM=JJJJ-MM
     DateFormatYYYYMMDD=JJJJ-MM-DD
     DateFormatYYYYMMDDHHMM=JJJJ-MM-DD HH: SS
    @@ -622,9 +612,9 @@ BuildDoc=Genereer Document
     Entity=Entiteit
     Entities=Entiteiten
     CustomerPreview=Afnemersvoorbeeldweergave
    -SupplierPreview=Vendor preview
    +SupplierPreview=Voorbeeld van leverancier
     ShowCustomerPreview=Toon afnemersvoorbeeldweergave
    -ShowSupplierPreview=Show vendor preview
    +ShowSupplierPreview=Laat voorbeeld leverancier zien
     RefCustomer=Referentie afnemer
     Currency=Valuta
     InfoAdmin=Informatie voor beheerders
    @@ -632,7 +622,7 @@ Undo=Ongedaan maken
     Redo=Opnieuw
     ExpandAll=Alles uitklappen
     UndoExpandAll=Ongedaan maken alles uitklappen
    -SeeAll=See all
    +SeeAll=Alles zien
     Reason=Reden
     FeatureNotYetSupported=Functie nog niet ondersteund
     CloseWindow=Sluit venster
    @@ -646,6 +636,8 @@ SendMail=Verzend e-mail
     EMail=E-mail
     NoEMail=Geen e-mail
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Niet gelezen
     NoMobilePhone=Geen mobiele telefoon
     Owner=Eigenaar
     FollowingConstantsWillBeSubstituted=De volgende constanten worden vervangen met de overeenkomstige waarde.
    @@ -668,8 +660,8 @@ NotEnoughPermissions=U heeft geen toestemming voor deze actie
     SessionName=Sessienaam
     Method=Methode
     Receive=Ontvangen
    -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected
    -ExpectedValue=Expected Value
    +CompleteOrNoMoreReceptionExpected=Voltooid of niets meer verwacht
    +ExpectedValue=Verwachte waarde
     CurrentValue=Huidige waarde
     PartialWoman=Gedeeltelijke
     TotalWoman=Totaal
    @@ -677,7 +669,7 @@ NeverReceived=Nooit ontvangen
     Canceled=Geannuleerd
     YouCanChangeValuesForThisListFromDictionarySetup=U kunt waarden voor deze lijst wijzigen via menu-instellingen - woordenboek
     YouCanChangeValuesForThisListFrom=U kunt de waarden van dit menu aanpassen via %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Kleur
     Documents=Gekoppelde bestanden
     Documents2=Documenten
    @@ -708,23 +700,23 @@ Page=Pagina
     Notes=Notitie
     AddNewLine=Voeg nieuwe regel toe
     AddFile=Voeg bestand toe
    -FreeZone=Not a predefined product/service
    -FreeLineOfType=Not a predefined entry of type
    +FreeZone=Geen vooraf gedefinieerde product/dienst
    +FreeLineOfType=Geen vooraf gedefinieerde invoer van het type
     CloneMainAttributes=Kloon het object met de belangrijkste kenmerken
     PDFMerge=Voeg PDF samen
     Merge=Samenvoegen
     DocumentModelStandardPDF=Standaard PDF sjabloon
     PrintContentArea=Toon printervriendelijke pagina
     MenuManager=Standaard menuverwerker
    -WarningYouAreInMaintenanceMode=Let op, u bevind zich in de onderhoudmodus, dus alleen de login <b>%s</b> is gemachtigd om de applicatie op dit moment te gebruiken.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Systeemfout
    -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
    +CoreErrorMessage=Sorry, er is een fout opgetreden. Neem contact op met uw systeembeheerder om de logboeken te controleren of $dolibarr_main_prod = 1 uit te schakelen voor meer informatie.
     CreditCard=CreditCard
     ValidatePayment=Valideer deze betaling
    -CreditOrDebitCard=Credit or debit card
    +CreditOrDebitCard=Creditcard of bankpas
     FieldsWithAreMandatory=Velden met een <b>%s</b> zijn verplicht
    -FieldsWithIsForPublic=Velden gemarkeerd door <b>%s</b> zullen worden geplaatst op de openbare lijst van de leden. Indien u dat niet wenst, schakelt u de toegang "publiek" uit.
    -AccordingToGeoIPDatabase=(verkregen door conversie GeoIP)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Regel
     NotSupported=Niet ondersteund
     RequiredField=Verplicht veld
    @@ -732,6 +724,8 @@ Result=Resultaat
     ToTest=Testen
     ValidateBefore=Het geheel moet worden gevalideerd om deze functie te kunnen gebruiken
     Visibility=Zichtbaarheid
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privé
     Hidden=Verborgen
     Resources=Middelen
    @@ -750,17 +744,19 @@ LinkTo=Link naar
     LinkToProposal=Link naar offerte
     LinkToOrder=gekoppeld aan bestelling
     LinkToInvoice=Link naar factuur
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link naar order leverancier
     LinkToSupplierProposal=Link naar offerte leverancier
     LinkToSupplierInvoice=Link naar factuur leverancier
     LinkToContract=Link naar contract
    -LinkToIntervention=Link to intervention
    +LinkToIntervention=Link naar interventie
     CreateDraft=Maak een ontwerp
     SetToDraft=Terug naar ontwerp
     ClickToEdit=Klik om te bewerken
    -EditWithEditor=Edit with CKEditor
    -EditWithTextEditor=Edit with Text editor
    -EditHTMLSource=Edit HTML Source
    +ClickToRefresh=Click to refresh
    +EditWithEditor=Bewerken met CKEditor
    +EditWithTextEditor=Bewerken met teksteditor
    +EditHTMLSource=Bewerk de HTML-bron
     ObjectDeleted=Object %s verwijderd
     ByCountry=Per land
     ByTown=Door de stad
    @@ -772,14 +768,14 @@ ByDay=Per dag
     BySalesRepresentative=Door vertegenwoordiger
     LinkedToSpecificUsers=Gekoppeld aan een bepaalde gebruiker contact
     NoResults=Geen resultaten
    -AdminTools=Systeemwerkset
    +AdminTools=Admin Tools
     SystemTools=Systeem tools
     ModulesSystemTools=Modules gereedschappen
     Test=Test
     Element=Element
     NoPhotoYet=Nog geen fotos beschikbaar
     Dashboard=Dashboard
    -MyDashboard=Mijn dashboard
    +MyDashboard=My Dashboard
     Deductible=Aftrekbaar
     from=van
     toward=richting
    @@ -794,15 +790,15 @@ SetBankAccount=Definieer Bank Rekening
     AccountCurrency=Rekening Valuta
     ViewPrivateNote=Notities bekijken
     XMoreLines=%s regel(s) verborgen
    -ShowMoreLines=Show more/less lines
    +ShowMoreLines=Laat meer/minder regels zien
     PublicUrl=Openbare URL
     AddBox=Box toevoegen
    -SelectElementAndClick=Select an element and click %s
    +SelectElementAndClick=Selecteer een element en klik op %s
     PrintFile=Bestand afdrukken %s
     ShowTransaction=Toon bankmutatie
     ShowIntervention=Tonen tussenkomst
     ShowContract=Toon contract
    -GoIntoSetupToChangeLogo=Ga naar Home - Setup - Bedrijf om logo te wijzigen of ga naar Home - Instellingen - Scherm om te verbergen.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Wijgeren
     Denied=Gewijgerd
     ListOf=Lijst van %s
    @@ -813,20 +809,20 @@ Genderwoman=Vrouw
     ViewList=Bekijk lijst
     Mandatory=Verplicht
     Hello=Hallo
    -GoodBye=GoodBye
    +GoodBye=Tot ziens
     Sincerely=Oprecht
     DeleteLine=Verwijderen regel
     ConfirmDeleteLine=Weet u zeker dat u deze regel wilt verwijderen?
     NoPDFAvailableForDocGenAmongChecked=Er was geen PDF beschikbaar voor het genereren van documenten bij gecontroleerde records
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=Geen record geselecteerd
    -MassFilesArea=Area for files built by mass actions
    -ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    -RelatedObjects=Related Objects
    +MassFilesArea=Omgeving voor bestanden die zijn gebouwd met massa-acties
    +ShowTempMassFilesArea=Toon gebied van bestanden gebouwd door massale acties
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
    +RelatedObjects=Gerelateerde objecten
     ClassifyBilled=Classificeer als gefactureerd
    -ClassifyUnbilled=Classify unbilled
    +ClassifyUnbilled=Classificeer ongevuld
     Progress=Voortgang
     FrontOffice=Front office
     BackOffice=Back office
    @@ -841,36 +837,45 @@ Calendar=Kalender
     GroupBy=Sorteer op
     ViewFlatList=Weergeven als lijst
     RemoveString='%s' string verwijderen
    -SomeTranslationAreUncomplete=Sommige talen zijn mogelijk gedeeltelijk vertaald of bevatten fouten. Als u dit ziet kunt u taalbestanden repareren door u zich registreren op <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/ Dolibarr /</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Directe download link (openbaar/extern)
    -DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
    +DirectDownloadInternalLink=Directe downloadlink (moet worden gelogd en heeft machtigingen nodig)
     Download=Downloaden
     DownloadDocument=Download document
     ActualizeCurrency=Bijwerken valutakoers
     Fiscalyear=Boekjaar
     ModuleBuilder=Module ontwerper
     SetMultiCurrencyCode=Kies valuta
    -BulkActions=Bulk actions
    -ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    -ExpenseReport=Expense report
    +BulkActions=Bulkacties
    +ClickToShowHelp=Klik om tooltip-help weer te geven
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
    +ExpenseReport=Rapportage kosten
     ExpenseReports=Onkostennota's 
     HR=HR
     HRAndBank=HR en Bank
     AutomaticallyCalculated=Automatisch berekend
    -TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    -ImportId=Import id
    +TitleSetToDraft=Ga terug naar concept
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
    +ImportId=ID importeren
     Events=Gebeurtenissen
    -EMailTemplates=Email documentensjablonen
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projecten
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Rechten
    -LineNb=Line no.
    +LineNb=Regelnr.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Maandag
     Tuesday=Dinsdag
    @@ -902,12 +907,12 @@ ShortSaturday=Za
     ShortSunday=Zo
     SelectMailModel=Selecteer een e-mail template
     SetRef=Stel ref in
    -Select2ResultFoundUseArrows=Some results found. Use arrows to select.
    +Select2ResultFoundUseArrows=Resultaten gevonden. Gebruik de pijlen om te selecteren.
     Select2NotFound=Geen resultaat gevonden
     Select2Enter=Enter
    -Select2MoreCharacter=or more character
    +Select2MoreCharacter=of meerdere karakters
     Select2MoreCharacters=of meer karakters
    -Select2MoreCharactersMore=<strong>Search syntax:</strong><br><kbd><strong> |</strong></kbd><kbd> OR</kbd> (a|b)<br><kbd><strong>*</strong></kbd><kbd> Any character</kbd> (a*b)<br><kbd><strong>^</strong></kbd><kbd> Start with</kbd> (^ab)<br><kbd><strong>$</strong></kbd><kbd> End with</kbd> (ab$)<br>
    +Select2MoreCharactersMore=<strong>Zoek syntax:</strong><br><kbd><strong>|</strong></kbd><kbd>OF</kbd>(a|b)<br><kbd> <strong>*</strong></kbd><kbd>Elk teken</kbd> (a * b)<br><kbd><strong>^</strong></kbd><kbd>Beginnen met</kbd>(^ab)<br><kbd><strong>$</strong></kbd><kbd> Einde met</kbd>(ab$)<br>
     Select2LoadingMoreResults=Laad meer resultaten...
     Select2SearchInProgress=Zoeken...
     SearchIntoThirdparties=Klant
    @@ -918,33 +923,35 @@ SearchIntoProductsOrServices=Diensten of Producten
     SearchIntoProjects=Projecten
     SearchIntoTasks=Taken
     SearchIntoCustomerInvoices=Klantenfactuur
    -SearchIntoSupplierInvoices=Vendor invoices
    +SearchIntoSupplierInvoices=Facturen van leveranciers
     SearchIntoCustomerOrders=Klantenbestelling
    -SearchIntoSupplierOrders=Purchase orders
    +SearchIntoSupplierOrders=Inkooporders
     SearchIntoCustomerProposals=Klantenoffertes
    -SearchIntoSupplierProposals=Vendor proposals
    +SearchIntoSupplierProposals=Leveranciersvoorstellen
     SearchIntoInterventions=Interventies
     SearchIntoContracts=Contracten
     SearchIntoCustomerShipments=Klantzendingen
     SearchIntoExpenseReports=Onkostennota's 
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Opmerkingen
    -NbComments=Number of comments
    -CommentPage=Comments space
    -CommentAdded=Comment added
    -CommentDeleted=Comment deleted
    +NbComments=Aantal reacties
    +CommentPage=Reacties ruimte
    +CommentAdded=Reactie toegevoegd
    +CommentDeleted=Reactie verwijderd
     Everybody=Iedereen
    -PayedBy=Payed by
    -PayedTo=Payed to
    -Monthly=Monthly
    -Quarterly=Quarterly
    -Annual=Annual
    -Local=Local
    -Remote=Remote
    -LocalAndRemote=Local and Remote
    -KeyboardShortcut=Keyboard shortcut
    +PayedBy=Betaald door
    +PayedTo=Paid to
    +Monthly=Maandelijks
    +Quarterly=Per kwartaal
    +Annual=Jaarlijks
    +Local=lokaal
    +Remote=Op afstand
    +LocalAndRemote=Lokaal en op afstand
    +KeyboardShortcut=Sneltoets
     AssignedTo=Geaffecteerden
    -Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    -FileSharedViaALink=File shared via a link
    -
    +Deletedraft=Concept verwijderen
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
    +FileSharedViaALink=Bestand gedeeld via een link
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=U bent momenteel in de %s "sandbox" -modus
    +Inventory=Inventarisering
    diff --git a/htdocs/langs/nl_NL/margins.lang b/htdocs/langs/nl_NL/margins.lang
    index 3ebafd0a4d7..cb25c70eb60 100644
    --- a/htdocs/langs/nl_NL/margins.lang
    +++ b/htdocs/langs/nl_NL/margins.lang
    @@ -21,17 +21,17 @@ ProductService=Trainning of Dienst
     AllProducts=Alle Trainingen en Diensten
     ChooseProduct/Service=Kies Training of Dienst
     ForceBuyingPriceIfNull=Forceren inkoop/kostprijs naar verkoopprijs als dit niet is gedefinieerd
    -ForceBuyingPriceIfNullDetails=If buying/cost price not defined, and this option "ON", margin will be zero on line (buying/cost price = selling price), otherwise ("OFF"), marge will be equal to suggested default.
    +ForceBuyingPriceIfNullDetails=Als inkoop / kostprijs niet is gedefinieerd en deze optie staat op "AAN", zal de marge nul zijn (inkoop / kostprijs = verkoopprijs). Indien ("UIT"), zal marge gelijk zijn aan de voorgestelde standaard.
     MARGIN_METHODE_FOR_DISCOUNT=Marge methode voor globale discounts
     UseDiscountAsProduct=Als een training
     UseDiscountAsService=Als een dienst
     UseDiscountOnTotal=Op subtotaal
     MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Definieert als een globale discount wordt behandelt als een training, een dienst, of alleen een subtotaal voor marge berekening.
     MARGIN_TYPE=Inkoop/kostprijs voorgesteld al standaard bij margeberekening
    -MargeType1=Margin on Best vendor price
    +MargeType1=Marge op de beste verkoopprijs
     MargeType2=Marge op gewogen inkoopprijs (GIP)
     MargeType3=Marge inkoopprijs
    -MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card<br>* Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best supplier price if WAP not yet defined<br>* Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best supplier price if WAP not yet defined
    +MarginTypeDesc=* Marge op beste aankoopprijs = verkoopprijs - beste leveranciersprijs gedefinieerd op productkaart <br> * Marge op gewogen gemiddelde prijs (GGP) = verkoopprijs - product gewogen gemiddelde prijs (GGP) of beste leverancier prijs als GGP nog niet is gedefinieerd <br> * Marge op kostprijs = Verkoopprijs - Kostprijs gedefinieerd op productkaart of GGP als kostprijs niet is gedefinieerd, of beste leverancier prijs als GGP nog niet is gedefinieerd
     CostPrice=Kostprijs
     UnitCharges=Unit toeslag
     Charges=Toeslag
    @@ -41,4 +41,4 @@ rateMustBeNumeric=Tarief moet een numerieke waarde zijn
     markRateShouldBeLesserThan100=Markeer tarief moet lager zijn dan 100 zijn
     ShowMarginInfos=Toon marge info
     CheckMargins=Marge details
    -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between third parties and sale representatives to calculate the margin of each sale representative. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative).
    +MarginPerSaleRepresentativeWarning=Het rapport van marge per gebruiker gebruikt de koppeling tussen derden en verkoopvertegenwoordigers om de marge van elke verkoopvertegenwoordiger te berekenen. Omdat sommige derde partijen mogelijk geen speciale verkoopvertegenwoordiger hebben en sommige derde partijen mogelijk aan meerdere zijn gekoppeld, zijn sommige bedragen mogelijk niet opgenomen in dit rapport (als er geen verkoopvertegenwoordiger is) en sommige kunnen op verschillende regels worden weergegeven (voor elke verkoopvertegenwoordiger) .
    diff --git a/htdocs/langs/nl_NL/oauth.lang b/htdocs/langs/nl_NL/oauth.lang
    index cafca379f6f..309f306e77f 100644
    --- a/htdocs/langs/nl_NL/oauth.lang
    +++ b/htdocs/langs/nl_NL/oauth.lang
    @@ -1,30 +1,30 @@
     # Dolibarr language file - Source file is en_US - oauth
    -ConfigOAuth=Oauth Configuration
    +ConfigOAuth=Oauth configuratie
     OAuthServices=OAuth services
    -ManualTokenGeneration=Manual token generation
    +ManualTokenGeneration=Handmatig aanmaken token
     TokenManager=Token manager
    -IsTokenGenerated=Is token generated ?
    -NoAccessToken=No access token saved into local database
    -HasAccessToken=A token was generated and saved into local database
    -NewTokenStored=Token received and saved
    -ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider
    -TokenDeleted=Token deleted
    -RequestAccess=Click here to request/renew access and receive a new token to save
    -DeleteAccess=Click here to delete token
    -UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider:
    -ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication.
    -OAuthSetupForLogin=Page to generate an OAuth token
    -SeePreviousTab=See previous tab
    -OAuthIDSecret=OAuth ID and Secret
    -TOKEN_REFRESH=Token Refresh Present
    -TOKEN_EXPIRED=Token expired
    -TOKEN_EXPIRE_AT=Token expire at
    -TOKEN_DELETE=Delete saved token
    +IsTokenGenerated=Is token aangemaakt?
    +NoAccessToken=Token voor toegang is niet opgeslagen in locale database
    +HasAccessToken=Token is gegenereerd en opgeslagen in locale database
    +NewTokenStored=Token ontvangen en opgeslagen
    +ToCheckDeleteTokenOnProvider=Klik hier om de autorisatie te controleren/verwijderen die is opgeslagen door%sOAuth-provider
    +TokenDeleted=Token verwijderd
    +RequestAccess=Klik hier voor her-opvragen/vernieuwen van toegang en ontvang een nieuw token te bewaren.
    +DeleteAccess=Klik hier om token te verwijderen
    +UseTheFollowingUrlAsRedirectURI=Gebruik de volgende URL als omleidings-URI bij het maken van uw referentie op uw OAuth-provider:
    +ListOfSupportedOauthProviders=Voer hier de inloggegevens in die zijn verstrekt door uw OAuth2-provider. Alleen ondersteunde OAuth2-providers zijn hier zichtbaar. Deze setup kan worden gebruikt door andere modules die OAuth2-authenticatie nodig hebben.
    +OAuthSetupForLogin=Pagina om Oauth token te genereren
    +SeePreviousTab=Zie vorige tab
    +OAuthIDSecret=OAuth ID en Secret
    +TOKEN_REFRESH=Token Vernieuw aanwezig
    +TOKEN_EXPIRED=Token verlopen
    +TOKEN_EXPIRE_AT=Token verloopt op
    +TOKEN_DELETE=Verwijder opgeslagen token
     OAUTH_GOOGLE_NAME=Oauth Google service
     OAUTH_GOOGLE_ID=Oauth Google Id
     OAUTH_GOOGLE_SECRET=Oauth Google Secret
    -OAUTH_GOOGLE_DESC=Go on <a class="notasortlink" href="https://console.developers.google.com/" target="_blank">this page</a> then "Credentials" to create Oauth credentials
    +OAUTH_GOOGLE_DESC=Ga op <a class="notasortlink" href="https://console.developers.google.com/" target="_blank"> deze pagina </a> en vervolgens 'Credentials' om Oauth-inloggegevens te maken
     OAUTH_GITHUB_NAME=Oauth GitHub service
     OAUTH_GITHUB_ID=Oauth GitHub Id
     OAUTH_GITHUB_SECRET=Oauth GitHub Secret
    -OAUTH_GITHUB_DESC=Go on <a class="notasortlink" href="https://github.com/settings/developers" target="_blank">this page</a> then "Register a new application" to create Oauth credentials
    +OAUTH_GITHUB_DESC=Ga op <a class="notasortlink" href="https://github.com/settings/developers" target="_blank"> deze pagina </a> en vervolgens "Registreer een nieuwe applicatie" om Oauth-inloggegevens te maken
    diff --git a/htdocs/langs/nl_NL/other.lang b/htdocs/langs/nl_NL/other.lang
    index 4b5fab799ac..15a23f1cdbb 100644
    --- a/htdocs/langs/nl_NL/other.lang
    +++ b/htdocs/langs/nl_NL/other.lang
    @@ -3,13 +3,13 @@ SecurityCode=Beveiligingscode
     NumberingShort=N °
     Tools=Gereedschap
     TMenuTools=Gereedschap
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Verjaardag
     BirthdayDate=Geboorte datum
     DateToBirth=Geboortedatum
     BirthdayAlertOn=Verjaardagskennisgeving actief
     BirthdayAlertOff=Verjaardagskennisgeving inactief
    -TransKey=Translation of the key TransKey
    +TransKey=Vertaling van de sleutel TransKey
     MonthOfInvoice=Maand (nummer 1-12) van factuurdatum
     TextMonthOfInvoice=Maand (tekst) van factuurdatum
     PreviousMonthOfInvoice=Vorige maand (nummer 1-12) van factuurdatum
    @@ -18,31 +18,28 @@ NextMonthOfInvoice=Volgende maand (nummer 1-12) van factuurdatum
     TextNextMonthOfInvoice=Volgende maand (tekst) van factuurdatum
     ZipFileGeneratedInto=ZIP bestand aangemaakt in <b>%s</b>.
     DocFileGeneratedInto=Doc-bestand aangemaakt in <b>%s</b>.
    -JumpToLogin=Disconnected. Go to login page...
    -MessageForm=Message on online payment form
    +JumpToLogin=Verbinding verbroken. Ga naar het loginscherm...
    +MessageForm=Bericht op online betalingsformulier
     MessageOK=Bericht opde  bevestigingspagina van een gevalideerde betaling
     MessageKO=Bericht op de bevestigingspagina van een geannuleerde betaling
    -ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +ContentOfDirectoryIsNotEmpty=De inhoud van deze map is niet leeg.
    +DeleteAlsoContentRecursively=Vink aan om alle inhoud recursief te verwijderen
     
     YearOfInvoice=Jaar van factuurdatum
     PreviousYearOfInvoice=Voorgaand jaar van factuurdatum
     NextYearOfInvoice=Volgend jaar van factuurdatum
    -DateNextInvoiceBeforeGen=Date of next invoice (before generation)
    -DateNextInvoiceAfterGen=Date of next invoice (after generation)
    +DateNextInvoiceBeforeGen=Datum volgende factuur (vóór productie)
    +DateNextInvoiceAfterGen=Datum van de volgende factuur (na genereren)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Interventie gevalideerd
    -Notify_FICHINTER_SENTBYMAIL=Interventie via mail verzonden
     Notify_ORDER_VALIDATE=Bestelling van de klant gevalideerd
     Notify_ORDER_SENTBYMAIL=Bestelling van de klant per e-mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Leverancier bestellen per e-mail
    -Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
    +Notify_ORDER_SUPPLIER_VALIDATE=Leverancier bestelling opgeslagen
     Notify_ORDER_SUPPLIER_APPROVE=Leverancier te zijn goedgekeurd
     Notify_ORDER_SUPPLIER_REFUSE=Leverancier bestellen geweigerd
     Notify_PROPAL_VALIDATE=Klant voorstel gevalideerd
    -Notify_PROPAL_CLOSE_SIGNED=Klant offerte gesloten en ondertekend
    -Notify_PROPAL_CLOSE_REFUSED=Klant offerte gesloten en geweigerd
    +Notify_PROPAL_CLOSE_SIGNED=Klant voorstel ondertekend afgesloten
    +Notify_PROPAL_CLOSE_REFUSED=Klant voorstel afwezen afgesloten
     Notify_PROPAL_SENTBYMAIL=Commercieel voorstel per e-mail
     Notify_WITHDRAW_TRANSMIT=Transmissie terugtrekking
     Notify_WITHDRAW_CREDIT=Credit terugtrekking
    @@ -60,6 +57,8 @@ Notify_BILL_SUPPLIER_SENTBYMAIL=Leverancier verzonden factuur per post
     Notify_BILL_SUPPLIER_CANCELED=Leverancier factuur geannuleerd
     Notify_CONTRACT_VALIDATE=Contract gevalideerd
     Notify_FICHEINTER_VALIDATE=Interventie gevalideerd
    +Notify_FICHINTER_ADD_CONTACT=Contact toegevoegd aan Intervention
    +Notify_FICHINTER_SENTBYMAIL=Interventie via mail verzonden
     Notify_SHIPPING_VALIDATE=Verzenden gevalideerd
     Notify_SHIPPING_SENTBYMAIL=Verzenden per e-mail
     Notify_MEMBER_VALIDATE=Lid gevalideerd
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Creatie project
     Notify_TASK_CREATE=Taak gemaakt
     Notify_TASK_MODIFY=Taak gewijzigd
     Notify_TASK_DELETE=Taak verwijderd
    +Notify_EXPENSE_REPORT_VALIDATE=Onkosten rapport gevalideerd (goedkeuring vereist)
    +Notify_EXPENSE_REPORT_APPROVE=Onkosten rapport goedgekeurd
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Aantal bijgevoegde bestanden / documenten
     TotalSizeOfAttachedFiles=Totale omvang van de bijgevoegde bestanden / documenten
     MaxSize=Maximale grootte
     AttachANewFile=Voeg een nieuw bestand / document bij
     LinkedObject=Gekoppeld object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Geachte)__\n\nU ontvangt hierbij order  __REF__\n\n\n__(Hoogachtend)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -105,11 +110,11 @@ CreatedBy=Gecreëerd door %s
     ModifiedBy=Gewijzigd door %s
     ValidatedBy=Gevalideerd door %s
     ClosedBy=Gesloten door %s
    -CreatedById=User id who created
    +CreatedById=Aangemaakt door gebruiker ID
     ModifiedById=Gebruikers-ID van diegene die de laatste wijziging heeft aangebracht
    -ValidatedById=User id who validated
    -CanceledById=User id who canceled
    -ClosedById=User id who closed
    +ValidatedById=Gevalideerd door gebruiker ID
    +CanceledById=Afgebroken door gebruiker ID
    +ClosedById=Gesloten door gebruiker ID
     CreatedByLogin=User login who created
     ModifiedByLogin=Gebruikerslogin van diegene die de laatste wijziging heeft aangebracht
     ValidatedByLogin=User login who validated
    @@ -118,7 +123,7 @@ ClosedByLogin=User login who closed
     FileWasRemoved=Bestand %s is verwijderd
     DirWasRemoved=Map %s is verwijderd
     FeatureNotYetAvailable=Onderdeel nog niet beschikbaar in huidige versie
    -FeaturesSupported=Supported features
    +FeaturesSupported=Ondersteunde functies
     Width=Breedte
     Height=Hoogte
     Depth=Diepte
    @@ -129,7 +134,7 @@ Right=Rechts
     CalculatedWeight=Berekend gewicht
     CalculatedVolume=Berekend volume
     Weight=Gewicht
    -WeightUnitton=tonne
    +WeightUnitton=ton
     WeightUnitkg=kg
     WeightUnitg=g
     WeightUnitmg=mg
    @@ -168,26 +173,27 @@ BugTracker=Bug tracker
     SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.<br>Change will become effective once you click on the confirmation link in the email.<br>Check your inbox.
     BackToLoginPage=Terug naar de inlogpagina
     AuthenticationDoesNotAllowSendNewPassword=Authenticatiemodus is <b>%s</b>.<br>In deze modus kan Dolibarr uw wachtwoord niet weten of wijzigen.<br>Neem contact op met uw systeembeheerder als u uw wachtwoord  wilt wijzigen.
    -EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option.
    +EnableGDLibraryDesc=Installeer of schakel GD-bibliotheek op uw PHP-installatie in om deze optie te gebruiken.
     ProfIdShortDesc=Prof. id <b>%s</b> is een gegeven afhankelijk van het land.<br>Voor land <b>%s</b>, is de code bijvoorbeeld <b>%s</b>.
     DolibarrDemo=Dolibarr ERP / CRM demonstratie
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    -NumberOfProposals=Number of proposals
    -NumberOfCustomerOrders=Number of customer orders
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
    +NumberOfProposals=Aantal voorstellen
    +NumberOfCustomerOrders=Aantal klantenorders
     NumberOfCustomerInvoices=Aantal klant facturen
    -NumberOfSupplierProposals=Number of supplier proposals
    -NumberOfSupplierOrders=Number of supplier orders
    -NumberOfSupplierInvoices=Number of supplier invoices
    -NumberOfUnitsProposals=Number of units on proposals
    -NumberOfUnitsCustomerOrders=Number of units on customer orders
    +NumberOfSupplierProposals=Aantal voorstellen van leveranciers
    +NumberOfSupplierOrders=Aantal leverancierorders
    +NumberOfSupplierInvoices=Aantal leverancier facturen
    +NumberOfUnitsProposals=Aantal eenheden in voorstel
    +NumberOfUnitsCustomerOrders=Aantal eenheden in klant orders
     NumberOfUnitsCustomerInvoices=Aantal eenheden op klant facturen
    -NumberOfUnitsSupplierProposals=Number of units on supplier proposals
    -NumberOfUnitsSupplierOrders=Number of units on supplier orders
    -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +NumberOfUnitsSupplierProposals=Aantal eenheden in leverancier voorstellen
    +NumberOfUnitsSupplierOrders=Aantal eenheden in leverancier orders
    +NumberOfUnitsSupplierInvoices=Aantal eenheden van leverancier facturen
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=De interventie %s is gevalideerd
     EMailTextInvoiceValidated=De factuur %s is gevalideerd
    +EMailTextInvoicePayed=Factuur %s is betaald.
     EMailTextProposalValidated=De offerte %s is gevalideerd.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=De opdracht %s is gevalideerd.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=De order %s is goedgekeuerd door %s.
     EMailTextOrderRefused=De order %s is geweigerd.
     EMailTextOrderRefusedBy=De order %s is geweigerd door %s.
     EMailTextExpeditionValidated=De verzending %s is gevalideerd.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Invoer dataset
     DolibarrNotification=Automatische kennisgeving
     ResizeDesc=Voer een nieuwe breedte <b>of</b> nieuwe hoogte in. Verhoudingen zullen intact blijven tijdens het schalen
    @@ -204,7 +214,7 @@ NewLength=Nieuwe breedte
     NewHeight=Nieuwe hoogte
     NewSizeAfterCropping=Nieuwe grootte na bijsnijden
     DefineNewAreaToPick=Selecteer nieuwe gebied van de afbeelding om te gebruiken (klik links op de afbeelding en sleep totdat u bij de tegenoverliggende hoek bent aangekomen)
    -CurrentInformationOnImage=Deze tool is ontworpen om u te helpen bij het schalen van een afbeelding. Dit is informatie over de afbeelding die bewerkt wordt
    +CurrentInformationOnImage=Deze tool is ontworpen om u te helpen bij het verkleinen of bijsnijden van een afbeelding. Dit is de informatie over de huidige bewerkte afbeelding
     ImageEditor=Beeldbewerkingsprogramma
     YouReceiveMailBecauseOfNotification=U ontvangt dit bericht omdat uw e-mail is opgenomen in een lijst van geaddresseerden die geïnformeerd dienen te worden over bepaalde gebeurtenissen in de software van %s %s.
     YouReceiveMailBecauseOfNotification2=Deze gebeurtenis is de volgende:
    @@ -217,8 +227,8 @@ StartUpload=Start uploaden
     CancelUpload=Uploaden annuleren
     FileIsTooBig=Bestanden is te groot
     PleaseBePatient=Even geduld a.u.b.
    -NewPassword=New password
    -ResetPassword=Reset password
    +NewPassword=Nieuw wachtwoord
    +ResetPassword=Wachtwoord opnieuw instellen
     RequestToResetPasswordReceived=A request to change your password has been received.
     NewKeyIs=Dit is uw nieuwe sleutel om in te loggen
     NewKeyWillBe=Uw nieuwe sleutel in te loggen zal zijn
    @@ -227,26 +237,32 @@ YouMustClickToChange=Je moet echter wel eerst klikken op de volgende link om de
     ForgetIfNothing=Als u deze wijziging niet heeft aangevraagd, negeer deze e-mail. Uw referenties blijven veilig bewaard.
     IfAmountHigherThan=If amount higher than <strong>%s</strong>
     SourcesRepository=Repository for sources
    -Chart=Chart
    -PassEncoding=Password encoding
    -PermissionsAdd=Permissions added
    -PermissionsDelete=Permissions removed
    -YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</strong> chars
    -YourPasswordHasBeenReset=Your password has been reset successfully
    -ApplicantIpAddress=IP address of applicant
    -SMSSentTo=SMS sent to %s
    +Chart=Tabel
    +PassEncoding=Wachtwoord codering
    +PermissionsAdd=Rechten toegevoegd
    +PermissionsDelete=Rechten verwijderd
    +YourPasswordMustHaveAtLeastXChars=Uw wachtwoord moet minimaal <strong>%s</strong> karakters bevatten
    +YourPasswordHasBeenReset=Uw wachtwoord is met succes gereset
    +ApplicantIpAddress=IP-adres van aanvrager
    +SMSSentTo=SMS verzonden naar %s
    +MissingIds=Missende ID's
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Uitvoeroverzicht
     AvailableFormats=Beschikbare formaten
     LibraryUsed=Gebruikte bibliotheek
    -LibraryVersion=Library version
    +LibraryVersion=Bibliotheek versie
     ExportableDatas=Exporteerbare gegevens
     NoExportableData=Geen exporteerbare gegevens (geen modules met exporteerbare gegevens geladen, of niet genoeg rechten)
     ##### External sites #####
    -WebsiteSetup=Setup of module website
    -WEBSITE_PAGEURL=URL of page
    +WebsiteSetup=Installatie van module website
    +WEBSITE_PAGEURL=URL van pagina
     WEBSITE_TITLE=Titel
     WEBSITE_DESCRIPTION=Omschrijving
    -WEBSITE_KEYWORDS=Keywords
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
    +WEBSITE_KEYWORDS=Sleutelwoorden
     LinesToImport=Regels om te importeren
    diff --git a/htdocs/langs/nl_NL/paybox.lang b/htdocs/langs/nl_NL/paybox.lang
    index 01c1584c7d7..0eb9a3ba58c 100644
    --- a/htdocs/langs/nl_NL/paybox.lang
    +++ b/htdocs/langs/nl_NL/paybox.lang
    @@ -3,14 +3,14 @@ PayBoxSetup=PayBox module instellen
     PayBoxDesc=Deze module bied pagina's om betalingen via <a href="http://www.paybox.com" target="_blank">Paybox</a> mogelijk te maken door afnemers. Dit kan gebruikt worden voor een vrije betaling (donatie) of voor een specifiek Dolibarr object (factuur, order, etc)
     FollowingUrlAreAvailableToMakePayments=De volgende URL's zijn beschikbaar om een pagina te bieden aan afnemers voor het doen van een betaling van Dolibarr objecten
     PaymentForm=Betalingsformulier
    -WelcomeOnPaymentPage=Welkom bij onze online betalingsdienst
    +WelcomeOnPaymentPage=Welkom bij onze online betaaldienst
     ThisScreenAllowsYouToPay=Dit scherm staat u toe om een online betaling te doen aan %s
     ThisIsInformationOnPayment=Informatie over de nog uit te voeren betalingen
     ToComplete=Nog te doen
     YourEMail=E-mail om betalingsbevestiging te ontvangen
     Creditor=Crediteur
     PaymentCode=Betalingscode
    -PayBoxDoPayment=Pay with Credit or Debit Card (Paybox)
    +PayBoxDoPayment=Betalen met prepaid creditcard (Paybox)
     ToPay=Doe een betaling
     YouWillBeRedirectedOnPayBox=U wordt doorverwezen naar een beveiligde Paybox pagina om uw credit card informatie in te voeren
     Continue=Volgende
    @@ -20,19 +20,20 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL om een %s online betalingsgebruikersin
     ToOfferALinkForOnlinePaymentOnContractLine=URL om een %s online betalingsgebruikersinterface aan te bieden voor een contractregel
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL om een %s online betalingsgebruikersinterface aan te bieden voor een donatie
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL om een %s online betalingsgebruikersinterface aan te bieden voor een ledenabonnement
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=U kunt ook een URL (GET) parameter <b>&tag=<i>waarde</i></b> toevoegen aan elk van deze URL's (enkel nodig voor een donatie) om deze van uw eigen betalingscommentaar te voorzien
    -SetupPayBoxToHavePaymentCreatedAutomatically=Stel uw PayBox met url <b>%s</b> in om een betaling automatisch te maken zodra de betalings is gevallideerd door paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Stel uw Paybox in met url <b> %s </b> om de betaling automatisch te laten aanmaken na validatie door Paybox.
     YourPaymentHasBeenRecorded=Deze pagina bevestigd dat uw betaling succesvol in geregistreerd. Dank u.
    -YourPaymentHasNotBeenRecorded=Uw betaling is niet geregistreerd en de transactie is geannuleerd. Dank u.
    +YourPaymentHasNotBeenRecorded=Uw betaling is NIET geboekt en de transactie is geannuleerd. Dankuwel.
     AccountParameter=Accountwaarden
     UsageParameter=Met gebruik van de waarden
     InformationToFindParameters=Hulp om uw %s accountinformatie te vinden
     PAYBOX_CGI_URL_V2=URL van de Paybox CGI module voor betalingen
     VendorName=Verkopersnaam
     CSSUrlForPaymentForm=URL van het CSS-stijlbestand voor het betalingsformulier
    -NewPayboxPaymentReceived=New Paybox payment received
    -NewPayboxPaymentFailed=New Paybox payment tried but failed
    -PAYBOX_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or failed)
    -PAYBOX_PBX_SITE=Value for PBX SITE
    -PAYBOX_PBX_RANG=Value for PBX Rang
    -PAYBOX_PBX_IDENTIFIANT=Value for PBX ID
    +NewPayboxPaymentReceived=Betaling met Paybox ontvangen
    +NewPayboxPaymentFailed=Poging te betalen met Paybox mislukt
    +PAYBOX_PAYONLINE_SENDEMAIL=E-mail na betaling (geslaagd of mislukt)
    +PAYBOX_PBX_SITE=Waarde PBX SITE
    +PAYBOX_PBX_RANG=Waarde PBX Rang
    +PAYBOX_PBX_IDENTIFIANT=Waarde PBX ID
    diff --git a/htdocs/langs/nl_NL/printing.lang b/htdocs/langs/nl_NL/printing.lang
    index f62c1a6a01e..123e3fbf68a 100644
    --- a/htdocs/langs/nl_NL/printing.lang
    +++ b/htdocs/langs/nl_NL/printing.lang
    @@ -2,38 +2,38 @@
     Module64000Name=Direct afdrukken
     Module64000Desc=Direct afdruksysteem inschakelen
     PrintingSetup=Installatie van Direct Printing System
    -PrintingDesc=This module adds a Print button to send documents directly to a printer (without opening document into an application) with various module.
    +PrintingDesc=Deze module voegt een afdrukknop toe aan verschillende modules zodat documenten rechtstreeks naar een printer kunnen worden afgedrukt zonder dat het document in een andere toepassing hoeft te worden geopend.
     MenuDirectPrinting=Directe print opdrachten
     DirectPrint=Direct afdrukken
    -PrintingDriverDesc=Configuration variables for printing driver.
    +PrintingDriverDesc=Configuratievariabelen voor printerdriver.
     ListDrivers=Lijst met stuurprogramma's
     PrintTestDesc=Lijst met printers.
    -FileWasSentToPrinter=File %s was sent to printer
    -ViaModule=via the module
    -NoActivePrintingModuleFound=No active driver to print document. Check setup of module %s.
    -PleaseSelectaDriverfromList=Please select a driver from list.
    -PleaseConfigureDriverfromList=Please configure the selected driver from list.
    -SetupDriver=Driver setup
    -TargetedPrinter=Targeted printer
    -UserConf=Setup per user
    +FileWasSentToPrinter=Bestand %s is naar de printer verzonden
    +ViaModule=via de module
    +NoActivePrintingModuleFound=Geen actieve driver om document af te drukken. Controleer de instellingen van module %s.
    +PleaseSelectaDriverfromList=Selecteer een stuurprogramma uit de lijst.
    +PleaseConfigureDriverfromList=Configureer het geselecteerde stuurprogramma in de lijst.
    +SetupDriver=Stuurprogramma instellen
    +TargetedPrinter=Gekozen printer
    +UserConf=Instellen per gebruiker
     PRINTGCP_INFO=Google OAuth API setup
     PRINTGCP_AUTHLINK=Authenticatie
     PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth-token
    -PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print.
    +PrintGCPDesc=Met dit stuurprogramma kunt u documenten rechtstreeks naar een printer verzenden met Google Cloudprinter.
     GCP_Name=Achternaam
    -GCP_displayName=Display Name
    -GCP_Id=Printer Id
    -GCP_OwnerName=Owner Name
    +GCP_displayName=Weergavenaam
    +GCP_Id=Printer-ID
    +GCP_OwnerName=Naam eigenaar
     GCP_State=Printerstatus
    -GCP_connectionStatus=Online State
    +GCP_connectionStatus=Online status
     GCP_Type=Printer Type
    -PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed.
    -PRINTIPP_HOST=Print server
    +PrintIPPDesc=Met dit stuurprogramma kunnen documenten rechtstreeks naar een printer worden verzonden. Het vereist een Linux-systeem waarop CUPS is geïnstalleerd.
    +PRINTIPP_HOST=Printserver
     PRINTIPP_PORT=Poort
     PRINTIPP_USER=Login
     PRINTIPP_PASSWORD=Wachtwoord
    -NoDefaultPrinterDefined=No default printer defined
    -DefaultPrinter=Default printer
    +NoDefaultPrinterDefined=Geen standaardprinter gedefinieerd
    +DefaultPrinter=Standaard printer
     Printer=Printer
     IPP_Uri=Printer Uri
     IPP_Name=Printernaam
    @@ -45,10 +45,10 @@ IPP_Color=Kleur
     IPP_Device=Apparaat
     IPP_Media=Printer media
     IPP_Supported=Soort media
    -DirectPrintingJobsDesc=This page lists printing jobs found for available printers.
    -GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret.
    -GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth.
    -PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print.
    -PrintingDriverDescprintipp=Configuration variables for printing driver Cups.
    -PrintTestDescprintgcp=List of Printers for Google Cloud Print.
    -PrintTestDescprintipp=List of Printers for Cups.
    +DirectPrintingJobsDesc=Deze pagina geeft een overzicht van de afdruktaken die voor beschikbare printers zijn gevonden.
    +GoogleAuthNotConfigured=Google OAuth-installatie niet voltooid. Schakel OAuth-module in en stel een Google ID / geheim in.
    +GoogleAuthConfigured=OAuth-referenties van Google zijn gevonden bij het instellen van de module OAuth.
    +PrintingDriverDescprintgcp=Configuratievariabelen voor het afdrukken van stuurprogramma Google Cloudprinter.
    +PrintingDriverDescprintipp=Configuratievariabelen voor het afdrukken van Driver Cups.
    +PrintTestDescprintgcp=Lijst met printers voor Google Cloudprinter.
    +PrintTestDescprintipp=Lijst met printers voor Cups.
    diff --git a/htdocs/langs/nl_NL/productbatch.lang b/htdocs/langs/nl_NL/productbatch.lang
    index 392837c87bf..3c77db06fef 100644
    --- a/htdocs/langs/nl_NL/productbatch.lang
    +++ b/htdocs/langs/nl_NL/productbatch.lang
    @@ -16,7 +16,7 @@ printEatby=Verval: %s
     printSellby=Verkoop: %s
     printQty=Aantal: %d
     AddDispatchBatchLine=Voeg een regel toe voor houdbaarheids ontvangst
    -WhenProductBatchModuleOnOptionAreForced=When module Lot/Serial is on, automatic stock decrease  is forced to 'Decrease real stocks on shipping validation' and automatic increase mode is forced to 'Increase real stocks on manual dispatching into warehouses' and can't be edited. Other options can be defined as you want.
    +WhenProductBatchModuleOnOptionAreForced=Wanneer module Lot / Serie is ingeschakeld, wordt de automatische voorraadafname gedwongen om 'werkelijke voorraad bij de verzendvalidatie te verlagen' en wordt de automatische toenamemodus gedwongen om 'Verhoog voorraad bij handmatig verzenden naar magazijnen ' te verhogen en kan deze niet worden bewerkt. Andere opties kunnen worden gedefinieerd zoals u dat wilt.
     ProductDoesNotUseBatchSerial=Dit product maakt geen gebruik van lot/serial nummer
     ProductLotSetup=Module instellingen voor lot/serial
     ShowCurrentStockOfLot=Toon huidige voorraad voor product/lot paar
    diff --git a/htdocs/langs/nl_NL/projects.lang b/htdocs/langs/nl_NL/projects.lang
    index d6259b07337..5d32432e03f 100644
    --- a/htdocs/langs/nl_NL/projects.lang
    +++ b/htdocs/langs/nl_NL/projects.lang
    @@ -7,10 +7,10 @@ ProjectsArea=Project omgeving
     ProjectStatus=Project status
     SharedProject=Iedereen
     PrivateProject=Projectcontacten
    -ProjectsImContactFor=Projects I'm explicitely a contact of
    -AllAllowedProjects=All project I can read (mine + public)
    +ProjectsImContactFor=Projecten waar ik expliciet een contactpersoon van ben
    +AllAllowedProjects=Alle projecten die ik kan lezen (mine + public)
     AllProjects=Alle projecten
    -MyProjectsDesc=This view is limited to projects you are a contact for
    +MyProjectsDesc=Deze weergave is beperkt tot projecten waarvan u een contactpersoon bent
     ProjectsPublicDesc=Deze weergave toont alle projecten waarvoor u gerechtigd bent deze in te zien.
     TasksOnProjectsPublicDesc=Dit overzicht laat alle taken zien van projecten waarvoor u gemachtigd bent.
     ProjectsPublicTaskDesc=Deze weergave toont alle projecten en taken die je mag lezen.
    @@ -32,15 +32,15 @@ DeleteATask=Taak verwijderen
     ConfirmDeleteAProject=Weet u zeker dat u dit project wilt verwijderen?
     ConfirmDeleteATask=Weet u zeker dat u deze taak wilt verwijderen?
     OpenedProjects=Projecten in bewerking
    -OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Kansen bij projecten in bewerking per status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpenedTasks=Open taken
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Toon project
     ShowTask=Toon taak
     SetProject=Stel project in
     NoProject=Geen enkel project gedefinieerd of in eigendom
    -NbOfProjects=Aantal projecten
    -NbOfTasks=Aantal taken
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Bestede tijd
     TimeSpentByYou=Uw tijdsbesteding
     TimeSpentByUser=Gebruikers tijdsbesteding
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Lijst van aan het project verbonden offertes
    -ListOrdersAssociatedProject=Lijst met relaties gekoppeld aan dit project
    -ListInvoicesAssociatedProject=Lijst met facturen gekoppeld aan dit project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Lijst van aan het project verbonden contracten
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Lijst van aan het project verbonden interventies
    -ListExpenseReportsAssociatedProject=Lijst van onkostennota's in verband met het project
    -ListDonationsAssociatedProject=Lijst van donaties in verband met het project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Lijst van aan het project verbonden acties
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Gekoppeld aan een andere derde partij
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Gespendeerde tijd is leeg
     ThisWillAlsoRemoveTasks=Deze actie zal ook alle taken van het project <b>(%s</b> taken op het moment) en alle ingangen van de tijd doorgebracht.
    -IfNeedToUseOhterObjectKeepEmpty=Als sommige objecten (factuur, order, ...), die behoren tot een andere derde, moet worden gekoppeld aan het project te maken, houden deze leeg naar het project dat met meerdere derden.
    +IfNeedToUseOtherObjectKeepEmpty=Als sommige objecten (factuur, order, ...), die behoren tot een andere derde, moet worden gekoppeld aan het project te maken, houden deze leeg naar het project dat met meerdere derden.
     CloneProject=Kloon project
     CloneTasks=Kloon taken
     CloneContacts=Kloon contacten
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s aangepast
     TaskCreatedInDolibarr=Taak %s gecreëerd
     TaskModifiedInDolibarr=Taak %s gewijzigd
     TaskDeletedInDolibarr=Taak %s verwijderd
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. bedrag
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Inzender
     SelectElement=Kies een element
     AddElement=Koppeling naar element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Geplande workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Gerelateerde items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Taken toegekend aan gebruiker
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Taken toegekend aan
     AssignTaskToMe=Taak aan mij toewijzen
    @@ -189,25 +192,26 @@ AssignTaskToUser=Ken taak toe aan %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Toewijzen
     ProjectOverview=Overzicht
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Aantal nieuwe projecten per maand
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Aantal kansen per maand
    -ProjectWeightedOppAmountOfProjectsByMonth=Gewogen aantal kansen per maand
    -ProjectOpenedProjectByOppStatus=Open project/lead op status van kans
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Projecten/leads statistieken
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Projecten in bewerking bij relaties
    -OnlyOpportunitiesShort=Alleen kansen
    -OpenedOpportunitiesShort=Open kansen
    -NotAnOpportunityShort=Geen kans
    -OpportunityTotalAmount=Totaalbedrag aan kansen
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospectie
     OppStatusQUAL=Kwalificatie
     OppStatusPROPO=Offerte
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/nl_NL/propal.lang b/htdocs/langs/nl_NL/propal.lang
    index 2cba7222128..e0e9e05a3eb 100644
    --- a/htdocs/langs/nl_NL/propal.lang
    +++ b/htdocs/langs/nl_NL/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Ondertekend (te factureren)
     PropalStatusNotSigned=Niet ondertekend (gesloten)
     PropalStatusBilled=Gefactureerd
     PropalStatusDraftShort=Concept
    -PropalStatusValidatedShort=Gevalideerd
    +PropalStatusValidatedShort=Gevalideerd (open)
     PropalStatusClosedShort=Gesloten
     PropalStatusSignedShort=Ondertekend
     PropalStatusNotSignedShort=Niet ondertekend
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Offerte %s niet gevonden
     AddToDraftProposals=Toevoegen aan ontwerp offerte
     NoDraftProposals=Geen ontwerpoffertes
     CopyPropalFrom=Maak offerte door het kopiëren van een bestaande offerte
    -CreateEmptyPropal=Creëer een lege offerte of uit de lijst van producten / diensten
    +CreateEmptyPropal=Maak een leeg commercieel voorstel of uit een lijst met producten / services
     DefaultProposalDurationValidity=Standaardgeldigheid offerte (in dagen)
    -UseCustomerContactAsPropalRecipientIfExist=Gebruik,  indien ingesteld, het afnemerscontactadres als offerteontvangstadres in plaats van het adres van de Klant
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Kloon offerte
     ConfirmClonePropal=Weet u zeker dat u offerte <b>%s</b>  wilt kopiëren?
     ConfirmReOpenProp=Weet u zeker dat u offerte <b>%s</b> wilt her-openen?
    @@ -75,9 +75,10 @@ AvailabilityTypeAV_1M=1 maand
     TypeContact_propal_internal_SALESREPFOLL=Vertegenwoordiger die de follow-up van de offerte doet
     TypeContact_propal_external_BILLING=Afnemersfactuurcontactpersoon
     TypeContact_propal_external_CUSTOMER=Afnemerscontactpersoon follow-up voorstel
    -TypeContact_propal_external_SHIPPING=Customer contact for delivery
    +TypeContact_propal_external_SHIPPING=Klant contact voor levering
     # Document models
     DocModelAzurDescription=Een compleet offertemodel (logo, etc)
    +DocModelCyanDescription=Een compleet offertemodel (logo, etc)
     DefaultModelPropalCreate=Standaard model aanmaken
     DefaultModelPropalToBill=Standaard sjabloon bij het sluiten van een zakelijk voorstel (te factureren)
     DefaultModelPropalClosed=Standaard sjabloon bij het sluiten van een zakelijk voorstel (nog te factureren)
    diff --git a/htdocs/langs/nl_NL/resource.lang b/htdocs/langs/nl_NL/resource.lang
    index 5eefd6441e4..effac7469e0 100644
    --- a/htdocs/langs/nl_NL/resource.lang
    +++ b/htdocs/langs/nl_NL/resource.lang
    @@ -5,7 +5,7 @@ DeleteResource=Verwijder resource
     ConfirmDeleteResourceElement=Bevestig het verwijderen van de resource voor dit element
     NoResourceInDatabase=Geen resource in de database
     NoResourceLinked=Geen gelinkte resource
    -
    +ActionsOnResource=Gebeurtenissen over deze bron
     ResourcePageIndex=Resource lijst
     ResourceSingular=Resource
     ResourceCard=Resource kaart
    diff --git a/htdocs/langs/nl_NL/salaries.lang b/htdocs/langs/nl_NL/salaries.lang
    index 77c714ed739..c543aeb94a9 100644
    --- a/htdocs/langs/nl_NL/salaries.lang
    +++ b/htdocs/langs/nl_NL/salaries.lang
    @@ -1,10 +1,11 @@
     # Dolibarr language file - Source file is en_US - salaries
     SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Grootboekrekening voor medewerker derde partij
    -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=De toegewezen grootboekrekening welke is vastgelegd bij de medewerker, zal alleen gebruikt in de sub-boekhouding. Deze grootboekrekening zal worden gebruikt in de -boekhouding indien de toegewezen gebruikers grootboekrekening bij de medewerker niet is gedefinieerd.
    +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=De specifieke account die op de gebruikerskaart is gedefinieerd, wordt alleen voor de boekhouding van subgrootboek gebruikt. Deze wordt gebruikt voor grootboek en als standaardwaarde voor subgrootboek-boekhouding als specifieke gebruikersaccount voor de account op gebruiker niet is gedefinieerd.
     SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standaard grootboekrekening voor salaris betalingen
     Salary=Salaris
     Salaries=Salarissen
     NewSalaryPayment=Nieuwe salarisbetaling
    +AddSalaryPayment=Salarisbetaling toevoegen
     SalaryPayment=Salarisbetaling
     SalariesPayments=Salarissen betalingen
     ShowSalaryPayment=Toon salarisbetaling
    @@ -15,4 +16,4 @@ THMDescription=Deze waarde kan worden gebruikt om de kosten te berekenen van de
     TJMDescription=Deze waarde is momenteel alleen voor informatie en wordt niet gebruikt in een berekening
     LastSalaries=Laatste %s salaris betalingen
     AllSalaries=Alle salarisbetalingen
    -SalariesStatistics=Statistiques salaires
    +SalariesStatistics=Salarisstatistieken
    diff --git a/htdocs/langs/nl_NL/sendings.lang b/htdocs/langs/nl_NL/sendings.lang
    index b0bf8416a45..b1f26e0fd36 100644
    --- a/htdocs/langs/nl_NL/sendings.lang
    +++ b/htdocs/langs/nl_NL/sendings.lang
    @@ -6,7 +6,7 @@ AllSendings=Alle zendingen
     Shipment=Verzending
     Shipments=Verzendingen
     ShowSending=Toon zendingen
    -Receivings=Delivery Receipts
    +Receivings=Ontvangstbevestigingen
     SendingsArea=Zendingenoverzicht
     ListOfSendings=Verzendlijst
     SendingMethod=Verzendwijze
    @@ -19,14 +19,14 @@ NewSending=Nieuwe verzending
     CreateShipment=Creëer verzending
     QtyShipped=Aantal verzonden
     QtyShippedShort=Stk verz.
    -QtyPreparedOrShipped=Qty prepared or shipped
    +QtyPreparedOrShipped=Aantal bereid of verzonden
     QtyToShip=Aantal te verzenden
     QtyReceived=Aantal ontvangen
    -QtyInOtherShipments=Qty in other shipments
    +QtyInOtherShipments=Aantal in andere zendingen
     KeepToShip=Resterend te verzenden
    -KeepToShipShort=Remain
    +KeepToShipShort=Rest
     OtherSendingsForSameOrder=Andere verzendingen voor deze opdracht
    -SendingsAndReceivingForSameOrder=Shipments and receipts for this order
    +SendingsAndReceivingForSameOrder=Verzendingen en ontvangsten voor deze bestelling
     SendingsToValidate=Te valideren verzendingen
     StatusSendingCanceled=Geannuleerd
     StatusSendingDraft=Concept
    @@ -43,8 +43,8 @@ DocumentModelMerou=Merou A5 model
     WarningNoQtyLeftToSend=Waarschuwing, geen producten die op verzending wachten.
     StatsOnShipmentsOnlyValidated=Statistiek op verzendingen die bevestigd zijn.  Datum is de datum van bevestiging van de verzending (geplande leverdatum is niet altijd bekend).
     DateDeliveryPlanned=Verwachte leverdatum
    -RefDeliveryReceipt=Ref delivery receipt
    -StatusReceipt=Status delivery receipt
    +RefDeliveryReceipt=Ref-ontvangstbewijs
    +StatusReceipt=Status ontvangstbevestiging
     DateReceived=Datum leveringsonvangst
     SendShippingByEMail=Stuur verzending per e-mail
     SendShippingRef=Indiening van de zending %s
    @@ -52,13 +52,13 @@ ActionsOnShipping=Acions op verzendkosten
     LinkToTrackYourPackage=Link naar uw pakket
     ShipmentCreationIsDoneFromOrder=Op dit moment, is oprichting van een nieuwe zending gedaan van de volgorde kaart.
     ShipmentLine=Verzendingslijn
    -ProductQtyInCustomersOrdersRunning=Product quantity into open customer orders
    -ProductQtyInSuppliersOrdersRunning=Product quantity into open purchase orders
    -ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent
    -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received
    -NoProductToShipFoundIntoStock=No product to ship found into warehouse <b>%s</b>. Correct stock or go back to choose another warehouse.
    -WeightVolShort=Weight/Vol.
    -ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments.
    +ProductQtyInCustomersOrdersRunning=Hoeveelheid producten in openstaande klant bestellingen
    +ProductQtyInSuppliersOrdersRunning=Productaantallen in openstaande bestellingen bij leveranciers
    +ProductQtyInShipmentAlreadySent=Hoeveelheid producten van openstaande klant bestelling is al verzonden
    +ProductQtyInSuppliersShipmentAlreadyRecevied=Hoeveelheid producten van openstaande leverancier bestelling reeds ontvangen 
    +NoProductToShipFoundIntoStock=Geen product te verzenden in het magazijn <b> %s </b>. Corrigeer voorraad of teruggaan om een ​​ander magazijn te kiezen.
    +WeightVolShort=Gewicht / Vol.
    +ValidateOrderFirstBeforeShipment=U moet eerst de bestelling valideren voordat u zendingen kunt maken.
     
     # Sending methods
     # ModelDocument
    diff --git a/htdocs/langs/nl_NL/stripe.lang b/htdocs/langs/nl_NL/stripe.lang
    index 7a54b571d6a..faa46c90ac3 100644
    --- a/htdocs/langs/nl_NL/stripe.lang
    +++ b/htdocs/langs/nl_NL/stripe.lang
    @@ -1,18 +1,18 @@
     # Dolibarr language file - Source file is en_US - stripe
     StripeSetup=Stripe-module instellen
    -StripeDesc=Module to offer an online payment page accepting payments with Credit/Debit card via <a href="http://www.stripe.com" target="_blank">Stripe</a>. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +StripeDesc=Module om een ​​online betalingspagina aan te bieden die betalingen met een creditcard / betaalpas accepteert via <a href="http://www.stripe.com" target="_blank">Stripe</a>. Hiermee kunnen uw klanten gratis betalen of betalen voor een bepaald Dolibarr-object (factuur, bestelling, ...)
     StripeOrCBDoPayment=Betaal met creditcard of Stripe
     FollowingUrlAreAvailableToMakePayments=De volgende URL's zijn beschikbaar om een pagina te bieden aan afnemers voor het doen van een betaling van Dolibarr objecten
     PaymentForm=Betalingsformulier
    -WelcomeOnPaymentPage=Welkom bij onze online betalingsdienst
    +WelcomeOnPaymentPage=Welkom bij onze online betaaldienst
     ThisScreenAllowsYouToPay=Dit scherm staat u toe om een online betaling te doen aan %s
     ThisIsInformationOnPayment=Informatie over de nog uit te voeren betalingen
     ToComplete=Nog te doen
     YourEMail=E-mail om betalingsbevestiging te ontvangen
    -STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not)
    +STRIPE_PAYONLINE_SENDEMAIL=E-mail om te waarschuwen na een betaling (gelukt of niet)
     Creditor=Crediteur
     PaymentCode=Betalingscode
    -StripeDoPayment=Pay with Credit or Debit Card (Stripe)
    +StripeDoPayment=Betaal met creditcard of betaalkaart (Stripe)
     YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information
     Continue=Volgende
     ToOfferALinkForOnlinePayment=URL voor %s betaling
    @@ -30,12 +30,12 @@ STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment
     VendorName=Verkopersnaam
     CSSUrlForPaymentForm=URL van het CSS-stijlbestand voor het betalingsformulier
     NewStripePaymentReceived=New Stripe payment received
    -NewStripePaymentFailed=New Stripe payment tried but failed
    -STRIPE_TEST_SECRET_KEY=Secret test key
    -STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key
    +NewStripePaymentFailed=Nieuwe Stripe-betaling geprobeerd, maar mislukt
    +STRIPE_TEST_SECRET_KEY=Geheime testsleutel
    +STRIPE_TEST_PUBLISHABLE_KEY=Publiceerbare testsleutel
     STRIPE_TEST_WEBHOOK_KEY=Webhook test key
    -STRIPE_LIVE_SECRET_KEY=Secret live key
    -STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key
    +STRIPE_LIVE_SECRET_KEY=Geheime livesleutel
    +STRIPE_LIVE_PUBLISHABLE_KEY=Publiceerbare live sleutel
     STRIPE_LIVE_WEBHOOK_KEY=Webhook live key
     ONLINE_PAYMENT_WAREHOUSE=Stock to use for stock decrease when online payment is done<br>(TODO When option to decrease stock is done on an action on invoice and the online payment generate itself the invoice ?)
     StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode)
    @@ -61,3 +61,4 @@ ConfirmDeleteCard=Are you sure you want to delete this Credit or Debit card?
     CreateCustomerOnStripe=Create customer on Stripe
     CreateCardOnStripe=Create card on Stripe
     ShowInStripe=Show in Stripe
    +StripeUserAccountForActions=User account to use for some emails notification of Stripe events (Stripe payouts)
    diff --git a/htdocs/langs/nl_NL/users.lang b/htdocs/langs/nl_NL/users.lang
    index e18e9e0d758..be991462be7 100644
    --- a/htdocs/langs/nl_NL/users.lang
    +++ b/htdocs/langs/nl_NL/users.lang
    @@ -35,7 +35,7 @@ SuperAdministrator=Super administrator
     SuperAdministratorDesc=Super administrateur heeft volledige rechten
     AdministratorDesc=Administrator
     DefaultRights=Standaardrechten
    -DefaultRightsDesc=Stel hier de standaardrechten in die automatisch toegekend worden aan nieuwe gebruiker.
    +DefaultRightsDesc=Define here <u>default</u> permissions that are automatically granted to a <u>new created</u> user (Go to user card to change permission of an existing user).
     DolibarrUsers=Dolibarr gebruikers
     LastName=Achternaam
     FirstName=Voornaam
    @@ -66,7 +66,7 @@ CreateDolibarrThirdParty=Creëer nieuwe klant
     LoginAccountDisableInDolibarr=Account uitgeschakeld in Dolibarr.
     UsePersonalValue=Gebruik persoonlijke waarde
     InternalUser=Interne gebruiker
    -ExportDataset_user_1=Dolibarr's gebruikers en eigenschappen
    +ExportDataset_user_1=Gebruikers en hun eigenschappen
     DomainUser=Domeingebruikersaccount %s
     Reactivate=Reactiveren
     CreateInternalUserDesc=This form allows you to create an user internal to your company/organization. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card.
    @@ -92,7 +92,7 @@ LoginToCreate=Te creëren gebruikersnaam
     NameToCreate=Naam van derden maken
     YourRole=Uw rollen
     YourQuotaOfUsersIsReached=Uw quotum van actieve gebruikers is bereikt!
    -NbOfUsers=Nb van gebruikers
    +NbOfUsers=Aantal gebruikers
     NbOfPermissions=Aantal rechten
     DontDowngradeSuperAdmin=Alleen een superadmin kan downgrade een superadmin
     HierarchicalResponsible=Opzichter
    @@ -108,3 +108,4 @@ UserAccountancyCode=Gebruiker accounting code
     UserLogoff=Gebruiker uitgelogd
     UserLogged=Gebruiker gelogd
     DateEmployment=Datum van indiensttreding
    +DateEmploymentEnd=Einddatum van de tewerkstelling
    diff --git a/htdocs/langs/nl_NL/website.lang b/htdocs/langs/nl_NL/website.lang
    index bcfb2ff8579..0dffc01b547 100644
    --- a/htdocs/langs/nl_NL/website.lang
    +++ b/htdocs/langs/nl_NL/website.lang
    @@ -1,44 +1,46 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Website verwijderen
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Soort pagina / container
    -WEBSITE_PAGE_EXAMPLE=Web page to use as example
    -WEBSITE_PAGENAME=Page name/alias
    -WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_PAGE_EXAMPLE=Webpagina om als voorbeeld te gebruiken
    +WEBSITE_PAGENAME=Paginanaam/alias
    +WEBSITE_ALIASALT=Alternatieve paginanamen/aliassen
     WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
    -WEBSITE_CSS_URL=URL of external CSS file
    -WEBSITE_CSS_INLINE=CSS file content (common to all pages)
    +WEBSITE_CSS_URL=URL van extern CSS-bestand
    +WEBSITE_CSS_INLINE=CSS-bestandsinhoud (gemeenschappelijk voor alle pagina's)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
    -WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    -HtmlHeaderPage=HTML header (specific to this page only)
    +WEBSITE_ROBOT=Robotbestand (robots.txt)
    +WEBSITE_HTACCESS=Website .htaccess file
    +HtmlHeaderPage=HTML-header (alleen voor deze pagina)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
    -MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +MediaFiles=Mediatheek
    +EditCss=Edit website properties
     EditMenu=Wijzig menu
    -EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    -AddWebsite=Add website
    +EditMedias=Bewerk media
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
    +AddWebsite=Website toevoegen
     Webpage=Webpagina/container
    -AddPage=Add page/container
    +AddPage=Voeg pagina/container toe
     HomePage=Startpagina
    -PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Een voorbeeld van uw website <strong>%s</strong> is nog niet beschikbaar. U moet eerst een pagina toevoegen.
    +PageContainer=Pagina/container
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Pagina/Container
    -PageDeleted=Page/Contenair '%s' of website %s deleted
    -PageAdded=Page/Contenair '%s' added
    -ViewSiteInNewTab=View site in new tab
    +PageDeleted=Pagina/Container '%s' van website %s is verwijderd
    +PageAdded=Pagina/Container '%s' toegevoegd
    +ViewSiteInNewTab=Bekijk de website in een nieuw tabblad
     ViewPageInNewTab=View page in new tab
    -SetAsHomePage=Set as Home page
    -RealURL=Real URL
    +SetAsHomePage=Als startpagina instellen
    +RealURL=Echte URL
     ViewWebsiteInProduction=Bekijk website met behulp van eigen URL's
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Lezen
     WritePerm=Write
    @@ -46,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=Nog geen pagina's
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help bij specifieke syntax-tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br> <span class="fa fa-bug"></span> U kunt PHP-code opnemen in deze bron met behulp van labels <strong> &lt;? php? &gt;</strong>. De volgende globale variabelen zijn beschikbaar: $ conf, $ langs, $ db, $ mysoc, $ user, $ website. <br><br> <span class="fa fa-bug"></span>Je kunt ook inhoud van een andere pagina/container met de volgende syntaxis: <br> <strong> &lt;? php includeContainer ('alias_of_container_to_include'); ? &gt; </strong><br><br><span class="fa fa-bug"></span>U kunt een omleiding naar een andere pagina / container uitvoeren met de volgende syntaxis: <br><strong> &lt;? php redirectToContainer ('alias_of_container_to_redirect_to'); ? &gt; </strong><br><br><span class="fa fa-download"></span> Een <strong>-link opnemen om te downloaden</strong> een bestand dat is opgeslagen in de <strong>documenten</strong> map, gebruik de <strong>document.php</strong> wrapper:<br>Voorbeeld, voor een bestand naar documenten / ecm (moet worden gelogd), syntaxis is:<br><strong>&lt;a href = "/document.php?modulepart=ecm&file=[relative_dir/]filename.ext" &gt; </strong><br> Voor een bestand naar documenten / media (open map voor openbare toegang) is de syntaxis: <br><strong>&lt;a href = "/ document.php? modulepart = medias & file = [relative_dir /] bestandsnaam.ext" &gt;</strong> <br> Voor een bestand dat wordt gedeeld met een gedeelde link (open toegang met behulp van de hash-sleutel van bestand delen), syntaxis is: <br> <strong>&lt;a href = "/ document.php? hashp = publicsharekeyoffile" &gt;</strong> <br> <br> <span class="fa fa-picture-o"></span>Naar een <strong>afbeelding</strong> opnemen die is opgeslagen in de map <strong>documenten</strong>, gebruikt u de<strong> viewimage.php</strong> -wrapper: <br> Voorbeeld voor een afbeelding in documenten / media (open toegang), syntaxis is: <br> <strong> &lt;a href = "/ viewimage.php? modulepart = medias&amp;file = [relative_dir /] bestandsnaam.ext" &gt; </strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Kloon pagina/container
     CloneSite=Klonen site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -74,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -84,3 +88,8 @@ AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
     ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang
    index 3150854cbac..f33d2ade5d0 100644
    --- a/htdocs/langs/pl_PL/admin.lang
    +++ b/htdocs/langs/pl_PL/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Rozwój
     VersionUnknown=Nieznany
     VersionRecommanded=Zalecana
     FileCheck=Sprawdzanie integralności plików
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Integralność plików jest ściśle zgodna z referencją.
    -FileIntegrityIsOkButFilesWereAdded=Sprawdzenie integralności plików przebiegło pomyślnie, ale dodano nowe pliki.
    +FileIntegrityIsOkButFilesWereAdded=Sprawdzenie integralności plików przebiegło pomyślnie, aczkolwiek jakieś nowe pliki zostały dodane.
     FileIntegritySomeFilesWereRemovedOrModified=Sprawdzenie integralności plików zakończylo się niepowodzeniem. Niektóre pliki zostaly zmodyfikowane, usunięte lub dodane.
     GlobalChecksum=Globalna suma kontrolna
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Asystent zapisu sesji
     SessionSavePath=Lokalizacja sesji danych
     PurgeSessions=Czyszczenie sesji
     ConfirmPurgeSessions=Czy na pewno chcesz usunąć wszystkie sesje? Spowoduje to odłączenie każdego użytkownika (oprócz ciebie).
    -NoSessionListWithThisHandler=Asystent zapisu sesji skonfigurowany w PHP nie zezwala na wyświetlenie wszystkich aktywnych sesji.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Zablokuj nowe połączenia
    -ConfirmLockNewSessions=Czy na pewno chcesz ograniczyć wszelkie nowe połączenie Dolibarr do siebie. Tylko <b>%s</b> użytkownik będzie mógł się połączyć po tym.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Usuwanie blokady połączeń
     YourSession=Twoja sesja
    -Sessions=Sesja użytkowników
    +Sessions=Users sessions
     WebUserGroup=Serwer sieci Web użytkownik / grupa
    -NoSessionFound=PHP wydaje się nie dopuścić do listy aktywnych sesji. Katalog używany do zapisywania sesji <b>(%s)</b> mogą być chronione (np. przez uprawnienia OS dyrektywy open_basedir lub PHP).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Kodowanie bazy danych do przechowywania danych
     DBSortingCharset=Kodowanie bazy danych by sortować dane
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Zewnętrzny użytkownik
     InternalUsers=Wewnętrzni użytkownicy
     ExternalUsers=Zewnetrzni użytkownicy
     GUISetup=Wyświetlanie
    -SetupArea=Dział konfiguracji
    +SetupArea=Konfiguracja
     UploadNewTemplate=Załaduj nowy szablon(y)
     FormToTestFileUploadForm=Formularz do wysyłania pliku testowego (według konfiguracji)
     IfModuleEnabled=Uwaga: tak jest skuteczne tylko wtedy, gdy <b>moduł %s</b> jest aktywny
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kod nie może zawierać wartości "0"
     DisableJavascript=Wyłącz funkcje JavaScript i Ajax (rekomendowane dla osób niewidomych oraz przeglądarek tekstowych)
     UseSearchToSelectCompanyTooltip=Także jeśli masz dużą liczbę osób trzecich (> 100 000), można zwiększyć prędkość przez ustawienie stałej COMPANY_DONOTSEARCH_ANYWHERE do 1 w Setup-> Inne. Szukaj zostaną ograniczone do początku łańcucha.
     UseSearchToSelectContactTooltip=Także jeśli masz dużą liczbę osób trzecich (> 100 000), można zwiększyć prędkość przez ustawienie stałej CONTACT_DONOTSEARCH_ANYWHERE do 1 w Setup-> Inne. Szukaj zostaną ograniczone do początku łańcucha.
    -DelaiedFullListToSelectCompany=Poczekaj  na kliknięcia na przycisk przed załadowaniem zawartości do listy kontrahentów (opcja może zwiększyć wydajność jeżeli masz dużą ilość kontrahentów, ale zmniejszy wygodę użytkowania)
    -DelaiedFullListToSelectContact=Poczekaj  na kliknięcia na przycisk przed załadowaniem zawartości do listy kontaktów (opcja może zwiększyć wydajność jeżeli masz dużą ilość kontrahentów, ale zmniejszy wygodę użytkowania)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Liczba znaków do wyszukiwania: %s
     NotAvailableWhenAjaxDisabled=Niedostępne kiedy Ajax nie działa
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Podgląd niedostępny
     ThemeCurrentlyActive=Temat obecnie aktywny
     CurrentTimeZone=Strefa czasowa PHP (server)
     MySQLTimeZone=Strefa czasowa MySQL (baza danych)
    -TZHasNoEffect=Daty są przechowywane i zwrócone przez serwer bazy danych, jak gdyby były przechowywane jako zgłosił ciąg. Strefa czasowa ma wpływ tylko wtedy, gdy przy użyciu funkcji UNIX_TIMESTAMP (które nie powinny być używane przez Dolibarr, więc TZ bazy danych nie powinny mieć wpływu, nawet jeśli zmienił się po dane zostały wprowadzone).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Przestrzeń
     Table=Tabela
     Fields=Pola
    @@ -111,14 +111,14 @@ NotConfigured=Moduł/Aplikacja nie skonfigurowana
     Active=Aktywne
     SetupShort=Konfiguracja
     OtherOptions=Inne opcje
    -OtherSetup=Inne konfiguracje
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Separator dziesiętny
     CurrentValueSeparatorThousand=Separator tysięczny
     Destination=Miejsce przeznaczenia
     IdModule=Identyfikator modułu
     IdPermissions=ID uprawnień
     LanguageBrowserParameter=Parametr %s
    -LocalisationDolibarrParameters=Parametry lokalizacji
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Strefa Czasowa Klienta (użytkownik)
     ClientHour=Czas klienta (użytkownik)
     OSTZ=Strefa czasowa Serwera OS
    @@ -126,8 +126,8 @@ PHPTZ=Strefa czasowa serwera PHP
     DaylingSavingTime=Czas letni (użytkownik)
     CurrentHour=Aktualna godzina
     CurrentSessionTimeOut=Obecna sesja wygasła
    -YouCanEditPHPTZ=Aby ustawić inną strefę czasową PHP (nie wymagane) spróbuj dodać plik .htaccess z wpisem takim jak "SetEnv TZ Europe/Warszawa"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widżet
     Boxes=Widżety
     MaxNbOfLinesForBoxes=Maks. ilość linii dla widgetów
    @@ -191,28 +191,28 @@ IgnoreDuplicateRecords=Ignoruj błędy zduplikowanych rekordów (INSERT IGNORE)
     AutoDetectLang=Autodetekcja (język przeglądarki)
     FeatureDisabledInDemo=Funkcja niedostępna w wersji demo
     FeatureAvailableOnlyOnStable=Funkcjonalność dostępna tylko w oficjalnej stabilnej wersji
    -BoxesDesc=Widgety są komponentami pokazującymi pewne informacje, które możesz dodać w celu spersonalizowania niektórych stron. Możesz wybrać pomiędzy pokazaniem wigetu lub nie poprzez wybranie docelowej strony i kliknięcie "Aktywacja", lub poprzez kliknięcie na kosz w celu wyłączenia go.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Tylko elementy z <a href="%s">aktywnych modułów</a> są widoczne.
    -ModulesDesc=Moduły Dolibarr definiują, która aplikacja / funkcja jest włączona w oprogramowaniu. Niektóre aplikacje / moduły wymagają uprawnień, które musisz przyznać użytkownikom po ich aktywacji. Kliknij przycisk ON/OFF, aby włączyć moduł/aplikację.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Możesz znaleźć więcej modułów do pobrania na zewnętrznych stronach internetowych...
    -ModulesDeployDesc=Jeżeli uprawnienia do twojego systemu plików pozwolą, możesz użyć tego narzędzia do wdrożenia zewnętrznego modułu. Moduł wówczas będzie widoczny w zakładce <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Znajdź dodatkowe aplikacje / moduły
     ModulesDevelopYourModule=Stwórz własną aplikację/moduły
    -ModulesDevelopDesc=Możesz opracować lub znaleźć partnera, który opracuje dla Ciebie twój spersonalizowany moduł
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Nowy
     FreeModule=Darmowe
     CompatibleUpTo=Kompatybilne z wersją %s
     NotCompatible=ten moduł nie jest kompatybilny z twoją wersją Dolibarr %s (Min %s - Max %s).
     CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s - Max %s).
     SeeInMarkerPlace=See in Market place
    -Updated=Updated
    +Updated=Zaktualizowane
     Nouveauté=Nowość
     AchatTelechargement=Kup / Pobierz
     GoModuleSetupArea=Aby udostępnić/zainstalowac nowy moduł, przejdź do ustawień Modułu <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, oficjalny kanał dystrybucji zewnętrznych modułów Dolibarr ERP / CRM
    -DoliPartnersDesc=Lista firm dostarczających niestandardowe moduły lub funkcje (Uwaga: każdy doświadczony w programowaniu PHP może udostępnić niestandardowy opracowanie dla projektu open source)
    -WebSiteDesc=Powiązane strony z modułami...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Łącze
     BoxesAvailable=Dostępne widgety
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Nie przechowuj w bazie danych niezakodowanych haseł. Pr
     MainDbPasswordFileConfEncrypted=Hasło bazy danych zakodowane w conf.php
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Ochrona generowanych plików PDF (Aktywowany nie jest zalecany, przerwa masowe generowanie plików pdf)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Ochrona dokumentu PDF umożliwia jego odczyt i druk w dowolnej przeglądarce PDF. Jednak edytowanie i kopiowanie nie jest już możliwe. Zauważ, że korzystanie z tej funkcji sprawia, że tworzenie globalnie połączonych plików PDF nie działa.
     Feature=Funkcja
     DolibarrLicense=Licencja
    @@ -246,8 +246,8 @@ ExternalResources=Zasoby zewnętrzne
     SocialNetworks=Sieci społecznościowe
     ForDocumentationSeeWiki=Aby zapoznać się z dokumentacją użytkownika lub dewelopera (Doc, FAQ ...), <br> zajrzyj do Dolibarr Wiki: <br> <a href="%s" target="_blank"><b> %s</b></a>
     ForAnswersSeeForum=Aby znaleźć odpowiedzi na pytania / uzyskać dodatkową pomoc, możesz skorzystać z  forum Dolibarr : <br> <a href="%s" target="_blank"><b> %s</b></a>
    -HelpCenterDesc1=Obszar ten może pomóc w uzyskaniu wsparcia dla usługi Dolibarr.
    -HelpCenterDesc2=Niektóre elementy tej usługi są dostępne <b>tylko</b> w języku <b>angielskim.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Aktualne menu obsługi
     MeasuringUnit=Jednostki pomiarowe
     LeftMargin=Lewy margines
    @@ -262,31 +262,35 @@ NoticePeriod=Okres wypowiedzenia
     NewByMonth=New by month
     Emails=Wiadomości email
     EMailsSetup=Ustawienia wiadomości email
    -EMailsDesc=Ta strona pozwala na nadpisanie parametrów PHP dla wysyłki wiadomości email. W większości przypadków w systemach Unix/Linux, twoje ustawienia PHP są poprawne i te parametry są bezużyteczne.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=Port SMTP (domyślnie w <b>php.ini: %s)</b>
    -MAIN_MAIL_SMTP_SERVER=Host SMTP (domyślnie w <b>php.ini: %s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Port SMTP (Nie zdefiniowany w PHP dla systemów z rodziny Unix)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Host SMTP (Nie zdefiniowany w PHP dla systemów z rodziny Unix)
    -MAIN_MAIL_EMAIL_FROM=E-mail wysyłający do automatycznych wiadomości e-mail (domyślnie w php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Wysyłaj systematycznie ukryte kopie wszystkich wysłanych e-maili do
    -MAIN_DISABLE_ALL_MAILS=Wyłącz wszystkie wysyłki wiadomości (dla testu ustawień lub trybu demo)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Kopiuj (Cc) wszystkie wysłane emaile do
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Metoda używana do wysłania E-maili
    -MAIN_MAIL_SMTPS_ID=Identyfikator SMTP, jeżeli wymaga uwierzytelniania
    -MAIN_MAIL_SMTPS_PW=Hasło SMTP , jeżeli wymagane uwierzytelniania
    -MAIN_MAIL_EMAIL_TLS= Użyj szyfrowania TLS (SSL)
    -MAIN_MAIL_EMAIL_STARTTLS= Użyj szyfrowania TLS (STARTTLS)
    -MAIN_DISABLE_ALL_SMS=Wyłącz wysyłanie wszystkich SMS (do celów badawczych lub testowych)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Metoda służy do wysyłania wiadomości SMS
    -MAIN_MAIL_SMS_FROM=Nadawca domyślny numer telefonu wysyłaniu SMS-ów
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=Adres email użytkownika
     CompanyEmail=Adres email firmy
     FeatureNotAvailableOnLinux=Cechy te nie są dostępne w systemach Unix, takich jak. Przetestuj swój program sendmail lokalnie.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Moduł konfiguracji
     ModulesSetup=Ustawienia Modułów/Aplikacji
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Narzędzia dla wielu modłułów
     ModuleFamilyExperimental=Eksperymentalne moduły
     ModuleFamilyFinancial=Moduły finansowe (Księgowość)
     ModuleFamilyECM=ECM
    -ModuleFamilyPortal=Strony internetowe i inne czołowa aplikacji
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Współpraca z systemami zewnętrznymi
     MenuHandlers=Menu obsługi
     MenuAdmin=Edytor menu
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Nie używaj w produkcji
     ThisIsProcessToFollow=To jest krok do procesu:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Krok %s
    -FindPackageFromWebSite=Odnajdź pakiet, który zapewnia wybraną przez Ciebię funkcję (np. na oficjalnej stronie internetowej %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Rozpakuj spakowane pliki do katalogu serwera przeznaczonego na Dollibar:<b>%s</b>
    -UnpackPackageInModulesRoot=Aby udostępnić/zainstalować dodatkowy moduł, rozpakuj pliki na serwerze do katalogu dedycowanego modułom: <b>%s</b>.
    -SetupIsReadyForUse=Wdrażanie modułu zostało zakończone. Musisz jednak włączyć i skonfigurować moduł w aplikacji, przechodząc na stronę do konfiguracji modułów: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=Alternatywny katalog główny nie jest zdefiniowany w istniejącym katalogu.<br>
     InfDirAlt=Od wersji 3 możliwe jest zdefiniowanie alternatywnego katalogu głównego. Pozwala to na przechowywanie w dedykowanym katalogu wtyczek oraz niestandardowych szablonów. <br>Wystarczy utworzyć katalog w lokalizacji plików Dolibarr (na przykład: niestandardowe).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Aktualna wersja Dolibarr
     CallUpdatePage=Przejdź na stronę, która pomoże w zaktualizować strukturę bazy danych i dane: %s.
     LastStableVersion=Ostatnia stabilna wersja
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Opóźnienie dla buforowania odpowiedzi eksportu w sekundach (0 lub puste pole oznacza brak buforowania)
     DisableLinkToHelpCenter=Ukryj link <b>"Potrzebujesz pomocy lub wsparcia"</b> na stronie logowania
     DisableLinkToHelp=Ukryj link <b>" %s Pomoc online"</b> w lewym menu
    -AddCRIfTooLong=Brak automatycznego zawijania. Jeśli linia znajduje się poza dokumentem, należy dodać znak powrotu w polu tekstowym.
    -ConfirmPurge=Czy na pewno chcesz wykonać to czyszczenie? <br> Usunie to ostatecznie wszystkie pliki z danymi danych bez możliwości ich przywrócenia (pliki ECM, załączone pliki...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimalna długość
     LanguageFilesCachedIntoShmopSharedMemory=Pliki. Lang załadowane do pamięci współdzielonej
     LanguageFile=Plik języka
    -ExamplesWithCurrentSetup=Przykłady z obecnie działającą konfiguracją
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Lista katalogów szablonów OpenDocument
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Liczba plików szablonów ODT/ODS znalezionych we wskazanych katalogach
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Przykłady składni: <br> c: \\ mydir <br> / Home / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> Aby dowiedzieć się jak stworzyć szablony dokumentów odt, przed zapisaniem ich w katalogach, zapoznaj się z dokumentacją wiki:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Kluczem do korzystania z usług internetowych (parametr
     TestSubmitForm=Formularz testowy wprowadzania
     ThisForceAlsoTheme=Za pomocą tego menedżera menu będzie wykorzystywać własne temat cokolwiek jest wybór użytkownika. Również w tym kierownik menu specjalizuje dla smartfonów nie działa na wszystkich smartphone. Użyj innego menedżera menu, jeśli masz problemy na Ciebie.
     ThemeDir=Katalog Skórek
    -ConnectionTimeout=Przekroczony czas połączenia
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Przekroczony czas odpowiedzi
     SmsTestMessage=Wiadomość testowa z PHONEFROM__ __ do __ PHONETO__
     ModuleMustBeEnabledFirst=<b>%s</b> moduł musi być włączony przed użyciem tej funkcji.
     SecurityToken=Klucz do bezpiecznego URL
    -NoSmsEngine=Brak menedżera SMSów nadawczych. Menedżer SMSów nadawczych nie jest instalowany z domyślną dystrybucją (dystrybucje zależne są od dostawcy zewnętrznego). Menedżera można znaleźć pod adresem http://www.dolistore.com
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Można ustawić każdą opcję globalną związaną z generowaniem PDF
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Zasady złączania pól adresowych
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Zasady dla %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Ukryj opis produktów w wygenerowanych plikach PDF
     HideRefOnPDF=Ukryj numer referencyjny produktów w generowanych plikach PDF
     HideDetailsOnPDF=Ukryj linię z szczegółami produktu w generowanym pliku PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parametry do zabezpiecznie adresu URL
     SecurityTokenIsUnique=Użyj unikalnego klucza zabezpieczeń dla każdego adresu
     EnterRefToBuildUrl=Wprowadź odwołanie do obiektu %s
     GetSecuredUrl=Pobierz obliczony adres URL
    -ButtonHideUnauthorized=Ukryj przyciski dla użytkowników nie będących administratorami zamiast pokazywać szare wyłączone przyciski
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Poprzednia stawka VAT
     NewVATRates=Nowa stawka VAT
     PriceBaseTypeToChange=Zmiana dla cen opartych na wartości referencyjnej ustalonej na
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Wybierz listę
     ExtrafieldSelectList = Wybierz z tabeli
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Hasło
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Pola wyboru
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link do obiektu
     ComputedFormula=Obliczone pole
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=Lista wartości musi być zapisana w liniach w formacie klucz,wartość (gdzie klucz nie może być '0')<br><br>Na przykład:<br>1,wartosc12,<br>wartosc2<br>3,wartosc3<br>...
     ExtrafieldParamHelpradio=Lista wartości musi być zapisana w liniach w formacie klucz,wartość (gdzie klucz nie może być '0')<br><br>Na przykład:<br>1,wartosc1<br>2,wartosc2<br>3,wartosc3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Domyślny link
     SetAsDefault=Ustaw jako domyślny
     ValueOverwrittenByUserSetup=Uwaga, ta wartość może być zastąpiona przez specyficzną konfiguracją użytkownika (każdy użytkownik może ustawić własny clicktodial url)
     ExternalModule=Moduł zewnętrzny - Zainstalowane w katalogu% s
    -BarcodeInitForThirdparties=Masowa inicjalizacja kodów kreskowych dla kontrahentów
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Masowe generowanie kodów lub reset kodów kreskowych dla usług i produktów
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Generuj wartość dla kolejnych %s pustych wpisów
     EraseAllCurrentBarCode=Usuń wszystkie aktualne kody kreskowe
     ConfirmEraseAllCurrentBarCode=Jesteś pewien, że chcesz usunąć wszystkie aktualne wartości kodów kreskowych?
     AllBarcodeReset=Wszystkie wartości kodów kreskowych zostały usunięte
    -NoBarcodeNumberingTemplateDefined=Nie szablonu numeracji kodów kreskowych włączona w konfiguracji modułu kodów kreskowych.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Włącz cache plików
     ShowDetailsInPDFPageFoot=Dodaj więcej szczegółów w stopce dokumentów PDF takich jak adres twojej firmy lub dane menadżerów (w celu dodatnia numeru REGON, kapitału zakładowego i numeru NIP)
     NoDetails=No more details in footer
     DisplayCompanyInfo=Wyświetl adres firmy
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Wyświetl adres firmy i dane menadżerów
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Zwróć pusty kod księgowy
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Kliknij aby zobaczyć opis
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=Ten moduł wymagany jest przez moduł(y)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Pole
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Użytkownicy i grupy
     Module0Desc=Zarządzanie Użytkownikami/Pracownikami i Grupami
    -Module1Name=Kontrahenci
    -Module1Desc=Zarządzanie firmami oraz kontaktami (klienci, prospekty...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Reklama
     Module2Desc=Zarządzanie reklamą
     Module10Name=Księgowość
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Propozycje
     Module20Desc=Zarządzanie propozycjami reklam
     Module22Name=Masowe wysyłanie E-maili
    @@ -495,7 +501,7 @@ Module23Desc=Monitorowanie zużycia energii
     Module25Name=Zamówienia klientów
     Module25Desc=Zarządzanie zamówieniami klienta
     Module30Name=Faktury
    -Module30Desc=Zarządzanie fakturami oraz notami kredytowymi klientów. Zarządzanie fakturami dostawców
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Dostawcy
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Zarządzanie zapasami (produkty)
     Module53Name=Usługi
     Module53Desc=Zarządzanie usługami
     Module54Name=Kontrakty/Subskrypcje
    -Module54Desc=Zarządzanie umowami (usług lub subskrypcji)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Kody kreskowe
     Module55Desc=Kody kreskowe zarządzania
     Module56Name=Telefonia
     Module56Desc=Integracja telefonii
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integracja systemu ClickToDial (Asterisk,...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Koszty wyjazdów i notatki
     Module75Desc=Zarządzanie kosztami wyjazdów oraz notatkami
     Module80Name=Wysyłki
     Module80Desc=Zarządzanie wysyłkami oraz kolejnością zamówień
    -Module85Name=Banki oraz gotówka
    +Module85Name=Banks and Cash
     Module85Desc=Zarządzanie kontami bankowymi lub gotówkowymi
    -Module100Name=Strona zewnętrzna
    -Module100Desc=Moduł ten umieszcza zewnętrzną stronę internetową w menu Dolibarr i wyświetla ją w ramce Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman i SPIP
     Module105Desc=Interfejs Mailman lub SPIP dla członka modułu
     Module200Name=LDAP
    -Module200Desc=Synchronizacji katalogu LDAP
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=Integracja PostNuke
     Module240Name=Eksport danych
    -Module240Desc=Narzędzie do eksportu danych w Dolibarr (z asystentami)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Import danych
    -Module250Desc=Narzędzie do importu danych w Dolibarr (z asystentami)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Członkowie
     Module310Desc=Zarządzanie członkami fundacji
     Module320Name=RSS Feed
     Module320Desc=Dodaj kanał RSS Dolibarr wewnątrz stron
    -Module330Name=Zakładki
    -Module330Desc=Zarządzanie zakładkami
    -Module400Name=Projekty / Możliwości / Wskazówki
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Integracja Webcalendar
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Pożyczka
     Module520Desc=Zarządzanie kredytów
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Darowizny
     Module700Desc=Zarządzanie darowiznami
     Module770Name=Expense reports
    -Module770Desc=Zarządzanie i roszczenia raporty wydatków (transport, posiłek, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Dokument poczty masowej generacji
     Module1780Name=Tagi / Kategorie
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=Edytor WYSIWYG
    -Module2000Desc=Pozwól na edycję niektórych pól tekstowych z użyciem zaawansowanego edytora (bazującego na CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamiczne Ceny
     Module2200Desc=Włącz użycie wyrażeń matematycznych dla cen
     Module2300Name=Zaplanowane zadania
     Module2300Desc=Zarządzanie zaplanowanymi zadaniami (jak cron lub chrono table)
     Module2400Name=Wydarzenia/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=SZD / ZZE
     Module2500Desc=System Zarządzania Dokumentami / Zarządzanie Zawartością Elektroniczną. Automatyczna organizacja twoich wygenerowanych lub składowanych dokumentów. Udostępniaj je kiedy chcesz.
     Module2600Name=API services (Web services SOAP)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API services (Web services REST)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Połączeń WebServices (klient SOAP)
    -Module2660Desc=Włącz Dolibarr serwisów internetowych klienta (może być używany do pchania danych / wnioski o dopuszczenie do zewnętrznych serwerów. Zamówień Dostawca obsługiwane tylko na chwilę)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Użyj usług online Gravatar  (www.gravatar.com), aby pokazać zdjęcia użytkowników / członków (dopasowanych na podstawie e-maili). Wymagany jest dostęp do Internetu
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=Możliwości konwersji GeoIP Maxmind
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HR
     Module4000Desc=Zarządzanie zasobami ludzkimi (zarządzanie departamentami, umowami pracowników,...)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Strony internetowe
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Zarządzanie "Pozostaw Żądanie"
    -Module20000Desc=Zadeklaruj oraz nadzoruj wnioski pracowników dotyczące wyjść z pracy
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Partia lub numer seryjny, zarządzanie według daty ważności lub daty sprzedaży produktów
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Moduł oferujący stronę płatności online akceptujący płatności za pośrednictwem kart debetowych/kredytowych poprzez PayBox. Może zostać użyty do zapewnienia twoim klientom możliwości darmowych płatności za konkretne dokumenty Dolibarr (faktury, zamówienia, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Punkt sprzedaży
     Module50100Desc=Punkty sprzedaży (POS)
    +Module50150Name=Punktów sprzedaży
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Moduł oferujący stronę płatności online akceptujący płatności za pośrednictwem PayPal (karty kredytowe lub środki PayPal). Może zostać użyty do zapewnienia twoim klientom możliwości darmowych płatności za konkretne dokumenty Dolibarr (faktury, zamówienia, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Rachunkowość (zaawansowane)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Druk bezpośredni (bez otwierania dokumentów) za pomocą interfejsu Puchary IPP (drukarki muszą być widoczne z serwera, a CUPS musi być installé na serwerze).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Marże
     Module59000Desc=Moduł do zarządzania marżami
     Module60000Name=Prowizje
     Module60000Desc=Moduł do zarządzania prowizjami
    -Module62000Name=Międzynarodowe Reguły Handlu
    -Module62000Desc=Dodaj funkcje do zarządzania Międzynarodowymi Regułami Handlu
    +Module62000Name=Formuły handlowe
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Zasoby
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Czytaj faktur klientów
    @@ -651,9 +661,9 @@ Permission32=Tworzenie / modyfikacja produktów
     Permission34=Usuwanie produktów
     Permission36=Podejrzyj / zarządzaj ukrytymi produktami
     Permission38=Eksport produktów
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Twórz/modyfikuj projekty (projekty udostępnione i projekty dla których jestem kontaktem). Można tworzyć zadania i przypisywać  użytkowników to projektów i zadań
    -Permission44=Usuwanie projektów (projekty współdzielone oraz projekty, w których biorę udział)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Eksportuj projekty
     Permission61=Czytaj interwencje
     Permission62=Tworzenie / modyfikacja interwencji
    @@ -686,7 +696,7 @@ Permission109=Usuń wysyłki
     Permission111=Czytaj raporty finansowe
     Permission112=Tworzenie / modyfikacja / usuwanie oraz porównywanie transakcji
     Permission113=Konfiguracja sprawozdań finansowych (tworzenie, zarządzanie kategoriami)
    -Permission114=Skonsoliduj transakcje
    +Permission114=Reconcile transactions
     Permission115=Eksport transakcji oraz oświadczeń obrachunkowych
     Permission116=Przelewy pomiędzy rachunkami
     Permission117=Zarządzanie wysyłką czeków
    @@ -694,15 +704,15 @@ Permission121=Przeglądaj kontrahentów związanych z użytkownikiem
     Permission122=Tworzenie / modyfikacja stron trzecich związanych z użytkownikiem
     Permission125=Usuń kontrahentów związanych z użytkownikiem z użytkownikiem
     Permission126=Eksport stron trzecich
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Czytaj dostawców
     Permission147=Czytaj statystyki
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Czytaj umowy / subskrypcje
     Permission162=Tworzenie / modyfikacja umowy / subskrypcji
     Permission163=Aktywacja usługi / subskrypcji umowy
    @@ -725,7 +735,7 @@ Permission187=Zamknij zamówienie dostawcy
     Permission188=Anuluj zamówienie dostawcy
     Permission192=Tworzenie linii
     Permission193=Zlikwiduj linię
    -Permission194=Czytaj przepustowość linii
    +Permission194=Read the bandwidth lines
     Permission202=Tworzenie połączenia ADSL
     Permission203=Zamów połączenie zamówień
     Permission204=Zamów połączenia
    @@ -750,12 +760,12 @@ Permission244=Zobacz zawartość ukrytych kategorii
     Permission251=Czytaj innych użytkowników i grupy
     PermissionAdvanced251=Czytaj innych użytkowników
     Permission252=Czytaj uprawnienia innych użytkowników
    -Permission253=Tworzenie / modyfikacja innych użytkowników, grup i uprawnień
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Tworzenie / modyfikacja wewnętrznych / zewnętrznych użytkowników i uprawnień
     Permission254=Tworzenie / modyfikacja jedynie zewnętrznych użytkowników
     Permission255=Modyfikacja haseł innych użytkowników
     Permission256=Usuń lub dezaktywuj innych użytkowników
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Czytaj CA
     Permission272=Czytaj faktury
     Permission273=Wystawienie faktur
    @@ -765,7 +775,7 @@ Permission283=Usuwanie kontaktów
     Permission286=Eksport kontaktów
     Permission291=Czytaj taryfy
     Permission292=Ustaw uprawnienia dotyczące taryf
    -Permission293=Modyfikuj taryfy klientów
    +Permission293=Modify customers tariffs
     Permission300=Odczyt kodów kreskowych
     Permission301=Tworzenie / modyfikacja kodów kreskowych
     Permission302=Usuwanie kodów kreskowych
    @@ -787,11 +797,9 @@ Permission401=Odczytaj zniżki
     Permission402=Tworzenie / modyfikacja zniżek
     Permission403=Walidacja zniżek
     Permission404=Usuwanie zniżek
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Utwórz/Modyfikuj płatność wynagrodzenia
    -Permission514=Usuń pensje
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Wynagrodzenia eksport
     Permission520=Czytaj Kredyty
     Permission522=Tworzenie / modyfikacja kredytów
    @@ -844,8 +852,8 @@ Permission1251=Uruchom masowy import danych zewnętrznych do bazy danych (wgrywa
     Permission1321=Eksport faktur klienta, atrybutów oraz płatności
     Permission1322=Reopen a paid bill
     Permission1421=Eksport zamówień oraz atrybutów klienta
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Czytaj zasoby
     Permission63002=Utwórz/modyfikuj zasoby
     Permission63003=Usuń zasoby
     Permission63004=Dołącz zasoby do zdarzeń w agendzie
    -DictionaryCompanyType=Typy kontrahentów
    -DictionaryCompanyJuridicalType=Formy prawne kontrahentów
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Potencjalny poziom możliwości
     DictionaryCanton=Stany/Kantony
     DictionaryRegion=Regiony
    @@ -894,7 +902,7 @@ DictionaryVAT=Stawki VAT lub stawki podatku od sprzedaży
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Warunki płatności
     DictionaryPaymentModes=Tryby płatności
    -DictionaryTypeContact=Typy kontaktu/adresu
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Podatku ekologicznego (WEEE)
     DictionaryPaperFormat=Formaty papieru
    @@ -908,47 +916,47 @@ DictionarySource=Pochodzenie wniosków / zleceń
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Modele dla planu kont
     DictionaryAccountancyJournal=Dzienniki księgowe
    -DictionaryEMailTemplates=Szablony wiadomości e-mail
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Status możliwości
    -DictionaryHolidayTypes=Rodzaje urlopów
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Konfiguracja zapisana
     SetupNotSaved=Ustawienia nie zapisane
     BackToModuleList=Powrót do listy modułów
    -BackToDictionaryList=Powrót do listy słowników
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=Zarządzanie VAT
    -VATIsUsedDesc=Domyślnie kiedy tworzysz perspektywy, faktury, zamówienia itd. stawka VAT pobiera z aktywnej reguły standardowej:<br>Jeżeli sprzedawca nie jest płatnikiem VAT, wówczas stawka VAT domyślnie jest równa 0. Koniec reguły.<br>Jeżeli kraj sprzedaży jest taki sam jak kraj zakupu, wówczas stawka VAT jest równa stawce VAT na produkt w kraju sprzedaży. Koniec reguły.<br>Jeżeli sprzedawca i kupujący należą do Unii Europejskiej i dobra są środkami transportu (samochody, statki, samoloty...), domyślna stawka VAT wynosi 0% (VAT powinien być zapłacony przez kupującego w jego kraju w odpowiednim urzędzie skarbowym). Koniec reguły.<br>Jeżeli sprzedawca i kupujący należą do Unii Europejskiej i kupujący jest osobą prywatną, wówczas stawka VAT jest równa stawce obowiązującej w kraju sprzedaży.Koniec reguły.<br>Jeżeli sprzedawca i kupujący należą do Unii Europejskiej i kupujący jest firmą, wówczas stawka VAT jest równa 0%. Koniec reguły.<br>W każdym innym przypadku domyślna stawka VAT jest równa 0%. Koniec reguły.
    -VATIsNotUsedDesc=Domyślnie proponowany VAT wynosi 0. Może być wykorzystany w przypadku takich stowarzyszeń, osób fizycznych lub małych firm.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Stawka
     LocalTax1IsNotUsed=Nie należy używać drugiego podatku
    -LocalTax1IsUsedDesc=Użyj drugi typ podatku (innego niż VAT)
    -LocalTax1IsNotUsedDesc=Nie należy używać innego rodzaju podatków (innych niż VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Drugi rodzaj podatku
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Nie używaj trzeciego podatku
    -LocalTax2IsUsedDesc=Użyj trzeciego rodzaju podatku (innego niż VAT)
    -LocalTax2IsNotUsedDesc=Nie należy używać innego rodzaju podatków (innych niż VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Trzeci rodzaj podatku
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= RE stawki domyślnie podczas tworzenia perspektyw, faktury, zamówienia itp. postępuj zgodnie z aktywnych zasadę: <br> Jeśli te kupujący nie podlega RE, RE domyślnie = 0. Koniec panowania. <br> Jeśli kupujący jest poddawany RE następnie RE domyślnie. Koniec panowania. <br>
    -LocalTax1IsNotUsedDescES= Domyślnie proponowany RE wynosi 0. Koniec zasady.
    -LocalTax1IsUsedExampleES= W Hiszpanii są specjaliści z zastrzeżeniem niektórych szczególnych grup hiszpański IAE.
    -LocalTax1IsNotUsedExampleES= W Hiszpanii są zawodowej i społecznej oraz z zastrzeżeniem pewnych odcinkach hiszpański IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= RE stawki domyślnie podczas tworzenia perspektyw, faktury, zamówienia itp. postępuj zgodnie z aktywnych zasadę: <br> Jeśli sprzedający nie jest poddawany IRPF, a następnie IRPF domyślnie = 0. Koniec panowania. <br> Jeżeli sprzedający jest poddawany IRPF następnie IRPF domyślnie. Koniec panowania. <br>
    -LocalTax2IsNotUsedDescES= Domyślnie proponowany IRPF wynosi 0. Koniec zasady.
    -LocalTax2IsUsedExampleES= W Hiszpanii, freelancerów i przedstawicieli wolnych zawodów, którzy świadczą usługi i przedsiębiorstwa, którzy wybrali system podatkowy modułów.
    -LocalTax2IsNotUsedExampleES= W Hiszpanii nie są one przedmiotem Bussines modułów systemu podatkowego.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Domyślnie proponowany RE wynosi 0. Koniec zasady.
    +LocalTax1IsUsedExampleES=W Hiszpanii są specjaliści z zastrzeżeniem niektórych szczególnych grup hiszpański IAE.
    +LocalTax1IsNotUsedExampleES=W Hiszpanii są zawodowej i społecznej oraz z zastrzeżeniem pewnych odcinkach hiszpański IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Domyślnie proponowany IRPF wynosi 0. Koniec zasady.
    +LocalTax2IsUsedExampleES=W Hiszpanii, freelancerów i przedstawicieli wolnych zawodów, którzy świadczą usługi i przedsiębiorstwa, którzy wybrali system podatkowy modułów.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Raporty odnośnie podatków lokalnych
     CalcLocaltax1=Sprzedaż - Zakupy
     CalcLocaltax1Desc=Lokalne raporty Podatki są obliczane z różnicy między sprzedażą localtaxes i localtaxes zakupów
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sprzedaż
     CalcLocaltax3Desc=Lokalne raporty Podatki są za łączną sprzedaży localtaxes
     LabelUsedByDefault=Wytwórnia używany domyślnie, jeśli nie można znaleźć tłumaczenie dla kodu
     LabelOnDocuments=Etykieta na dokumenty
    -NbOfDays=Nb dni
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Na koniec miesiąca
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Użytkownik bazy danych
     DatabasePassword=Hasło bazy danych
     Tables=Tabele
     TableName=Nazwa tabeli
    -NbOfRecord=Liczna rekordów
    +NbOfRecord=No. of records
     Host=Serwer
     DriverType=Typ sterownika
     SummarySystem=Podsumowanie informacji systemowych
    @@ -996,7 +1006,7 @@ Skin=Skórka
     DefaultSkin=Domyślna skórka
     MaxSizeList=Maksymalna długość listy
     DefaultMaxSizeList=Domyślna maksymalna długość listy
    -DefaultMaxSizeShortList=Domyślna maksymalna długość dla krótkiej listy (przykłado na karcie klienta)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Wiadomość dnia
     MessageLogin=Wiadomość strona logowania
     LoginPage=Strona logowania
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Stały formularz wyszukiwania w lewym menu
     DefaultLanguage=Domyślny język do użytku (kod języka)
     EnableMultilangInterface=Włącz wielojęzyczny interfejs
     EnableShowLogo=Pokaż logo w menu po lewej stronie
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Firma/Organizacja
    +CompanyIds=Company/Organization identities
     CompanyName=Nazwa firmy
     CompanyAddress=Adres
     CompanyZip=Kod pocztowy
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Właściciel konta bankowego %s
     BankModuleNotActive=Moduł Rachunków bankowych jest nie aktywny
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alarmy
    -DelaysOfToleranceBeforeWarning=Tolerancja opóźnień przed ostrzeżeniem
    -DelaysOfToleranceDesc=Ten ekran pozwala na określenie dopuszczalnego opóźnienia przed uruchomieniem alarmu na ekranie z pictogramami %s dla każdego opóźnionego elementu.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Dopuszczalne opóźnienie (w dniach) przed alarmem o niezakończonych zaplanowanych wydarzeniach (wydarzeniach a agendzie)
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Dopuszczalne opóźnienie (w dniach) przed alarmem o nieprzetworzonych zamówieniach
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Opóźnienie tolerancji (w dniach) przed wpisu w sprawie propozycji, aby zamknąć
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Opóźnienie tolerancji (w dniach) przed wpisu na temat propozycji nie rozliczone
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerancja opóźnienia (liczba dni) przed wpisu na usługi, aby uaktywnić
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerancja opóźnienie (w dniach) upłynął przed wpisu na usługi
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerancja opóźnienia (liczba dni) przed wpisu na dostawcę niezapłaconych faktur
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Opóźnienie (w dniach) przed alertem o niezapłaconych fakturach
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerancja opóźnienia (liczba dni) przed wpisu w oczekiwaniu banku pojednania
    -Delays_MAIN_DELAY_MEMBERS=Tolerancja opóźnienie (w dniach) przed wpisu na opóźnione składki członkowskiej
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancja opóźnienia (liczba dni) przed wpisu do deponowania czeków do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Opóźnienie tolerancji (w dniach) przed wpisu do zestawienia wydatków do zatwierdzenia
    -SetupDescription1=Obszar ustawień jest przeznaczony dla ustawienia startowych parametrów zanim zaczniesz używać Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Inne pozycje menu zarządzają opcjonalnymi parametrami.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Zdarzenia audytu bezpieczeństwa
    -Audit=Audyt
    +Audit=Security events
     InfoDolibarr=O Dolibarr
     InfoBrowser=O przeglądarce
     InfoOS=O systemie
    @@ -1056,20 +1066,20 @@ BrowserName=Nazwa przeglądarki
     BrowserOS=Przeglądarka OS
     ListOfSecurityEvents=Lista zdarzeń bezpieczeństwa Dolibarr
     SecurityEventsPurged=Zdarzenia dotyczące bezpieczeństwa oczyszczone
    -LogEventDesc=Można włączyć dziennik Dolibarr bezpieczeństwa imprez tutaj. Administratorzy mogą wtedy zobaczyć jego zawartość za pomocą menu <b>Narzędzia systemowe - Audyt.</b> Ostrzeżenie: Funkcja ta może zużywają duże ilości danych w bazie danych.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Parametry mogą być ustawiane tylko przez <b>użytkowników z prawami administratora</b>.
     SystemInfoDesc=System informacji jest różne informacje techniczne można uzyskać w trybie tylko do odczytu i widoczne tylko dla administratorów.
     SystemAreaForAdminOnly=Obszar ten jest dostępny tylko dla użytkowników na prawach administratora. Żadne z uprawnień Dolibarr nie zniesie tego ograniczenia.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Tutaj możesz ustawić każdy z parametrów związanych z wyglądem i zachowaniem Dolibarr
     AvailableModules=Dostępne aplikacje / moduły
     ToActivateModule=Aby uaktywnić modules, przejdź na konfigurację Powierzchnia.
     SessionTimeOut=Limit czasu dla sesji
    -SessionExplanation=Numer ten gwarantuje, że sesja nigdy nie wygaśnie przed upływem tego opóźnienia. Ale PHP sessoin zarządzania nie zawsze gwarantują, że sesja wygasa po tym terminie: Ten problem występuje, jeśli system do czyszczenia Wikisłowniku sesji jest uruchomiony. <br> Uwaga: nie szczególności systemu wewnętrznej PHP będzie czyste sesji każdy <b>temat %s / %s</b> dostępu, ale tylko podczas dostępu przez innych sesji.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Dostępne wyzwala
    -TriggersDesc=Wyzwalacze są pliki, które będą modyfikować zachowania Dolibarr pracy po skopiowaniu do katalogu <b>htdocs / includes / wyzwala.</b> One zrealizowane nowych działań, uaktywnionego Dolibarr na imprezy (utworzenie nowej spółki, zatwierdzania faktur, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Wyzwalacze w tym pliku są wyłączone przez <b>NORUN-suffix</b> w ich imieniu.
     TriggerDisabledAsModuleDisabled=Wyzwalacze w tym pliku są wyłączone jako <b>modułu %s</b> została wyłączona.
     TriggerAlwaysActive=Wyzwalacze w tym pliku są zawsze aktywne, niezależnie są aktywowane Dolibarr modułów.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Wprowadź wszystkie potrzebne dane. Wartości można dodać do us
     ConstDesc=Ta strona pozwoli ci na edycję wszystkich innych parametrów nie dostępnych na poprzednich stronach. Są to głównie parametry zastrzeżone dla programistów lub zaawansowanych użytkowników. Aby uzyskać listę opcji <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">kliknij tutaj</a>.
     MiscellaneousDesc=Inne powiązane parametry bezpieczeństwa są zdefiniowane tutaj
     LimitsSetup=Ograniczenia / Precision konfiguracji
    -LimitsDesc=Można określić limity, doprecyzowanie i optymalizacje stosowane przez Dolibarr tutaj
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max dziesiętnych na ceny jednostkowe
     MAIN_MAX_DECIMALS_TOT=Max dziesiętnych dla całkowitej ceny
     MAIN_MAX_DECIMALS_SHOWN=Max dziesiętnych ceny wyświetlane na ekranie (Dodaj <b>...</b> po ten numer, jeśli chcesz zobaczyć <b>...</b> kiedy liczba jest obcięty przy wyświetlane na ekranie)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Cena netto jednostki produktu
     TotalPriceAfterRounding=Łączna cena (netto / VAT / wraz z podatku) po zaokrągleniu
     ParameterActiveForNextInputOnly=Parametr skuteczne wejście tylko dla najbliższych
    -NoEventOrNoAuditSetup=Nr bezpieczeństwa zdarzenie zostało jeszcze zarejestrowane. To może być normalne, jeśli kontrola nie została włączona w "setup - bezpieczeństwo - audytu" strony.
    -NoEventFoundWithCriteria=Nr bezpieczeństwa zdarzenie zostało znalezionych dla takich kryteriów wyszukiwania.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Zobacz lokalnej konfiguracji sendmaila
     BackupDesc=Aby wykonać pełną kopię zapasową Dolibarr, musisz:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Zapisz zawartość Twojej bazy danych (<b>%s</b>) do kopi zapasowej. Aby tego dokonać, możesz użyć asystenta.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Zarchiwizowane katalogu należy przechowywać w bezpiecznym miejscu.
     BackupDescY=Wygenerowany plik zrzutu powinny być przechowywane w bezpiecznym miejscu.
    -BackupPHPWarning=Kopia zapasowa nie może być gwarantowana przy użyciu tej metody. Wolę poprzedni
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Aby przywrócić Dolibarr zapasowej, należy:
    -RestoreDesc2=Przywróć pliki archiwalny (np. ZIP) katalogu dokumentów, aby wyodrębnić drzewa plików w katalogu dokumentów do nowej instalacji Dolibarr lub do bieżącego katalogu dokumentów <b>( %s).</b>
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Przywróć dane z pliku kopii zapasowej, do bazy danych nowej instalacji Dolibarr lub do bazy danych tej bieżącej instalacji (<b>%s</b>). Uwaga, gdy przywracanie zostanie zakończone, należy użyć loginu i hasła, które istniały, gdy kopia zapasowa została utworzona, aby połączyć się ponownie. Aby przywrócić kopię zapasową bazy danych do bieżącej instalacji, można użyć tego asystenta.
     RestoreMySQL=Import MySQL
     ForcedToByAModule= Ta zasada jest zmuszona <b>do %s</b> przez aktywowany modułu
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Należy uruchomić to polecenie
     YourPHPDoesNotHaveSSLSupport=funkcji SSL nie są dostępne w PHP
     DownloadMoreSkins=Więcej skórek do pobrania
     SimpleNumRefModelDesc=Zwraca numer w farmacie %syymm nnnn, gdzie yy to rok, mm to miesiąc i nnnn jest ciągiem cyfr bez przerwania i bez możliwości resetu do wartości początkowej
    -ShowProfIdInAddress=Pokaż zawodami identyfikator z adresów na dokumentach
    -ShowVATIntaInAddress=Ukryj VAT Intra num z adresów na dokumenty
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Częściowe tłumaczenie
    -MAIN_DISABLE_METEO=Wyłącz widok pictogramów meteo
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Przetestuj się zalogować do interfejsu API
    -ProxyDesc=Niektóre funkcje Dolibarr muszą mieć dostęp do Internetu. Tutaj możesz określić parametry tego dostępu. Jeśli serwer Dolibarr jest za serwerem proxy, te parametry określą jak uzyskać dostęp do Internetu za jego pośrednictwem.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Zewnętrzny dostęp
     MAIN_PROXY_USE=Użyj serwera proxy (inaczej bezpośredni dostęp do internetu)
     MAIN_PROXY_HOST=Imię i nazwisko / adres serwera proxy
     MAIN_PROXY_PORT=Port serwera proxy
     MAIN_PROXY_USER=Zaloguj się, aby korzystać z serwera proxy
     MAIN_PROXY_PASS=Hasło do korzystania z serwera proxy
    -DefineHereComplementaryAttributes=Określ tutaj wszystkie atrybuty, niedostępne jako domyślne, które mają być obsługiwane dla  %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Uzupełniające atrybuty
     ExtraFieldsLines=Atrybuty uzupełniające (linie)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=(Linie uzupełniające atrybuty order)
     ExtraFieldsSupplierInvoicesLines=Atrybuty uzupełniające (linie na fakturze)
     ExtraFieldsThirdParties=Atrybuty uzupełniające (thirdparty)
    -ExtraFieldsContacts=Atrybuty uzupełniające (kontakt / adres)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Atrybuty uzupełniające (członek)
     ExtraFieldsMemberType=Atrybuty uzupełniające (typ członkiem)
     ExtraFieldsCustomerInvoices=Atrybuty uzupełniające (faktury)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=tylko alphanumericals i małe litery bez przest
     SendmailOptionNotComplete=Uwaga, w niektórych systemach Linux, aby wysłać e-mail z poczty elektronicznej, konfiguracja wykonanie sendmail musi conatins opcja-ba (mail.force_extra_parameters parametr w pliku php.ini). Jeśli nigdy niektórzy odbiorcy otrzymywać e-maile, spróbuj edytować ten parametr PHP z mail.force_extra_parameters =-ba).
     PathToDocuments=Ścieżka do dokumentów
     PathDirectory=Katalog
    -SendmailOptionMayHurtBuggedMTA=Funkcja wysłać maile za pomocą metody "PHP poczty bezpośredniej" wygeneruje wiadomości, że może nie być prawidłowo przeanalizowany przez niektórych otrzymujących serwerów pocztowych. Powoduje to, że niektóre maile nie mogą być odczytywane przez ludzi obsługiwanych przez te platformy podsłuchu. To przypadku niektórych dostawców internetowych (Ex: Pomarańczowy we Francji). To nie jest problem w Dolibarr, ani w PHP, ale na otrzymywanie serwera poczty. Możesz jednak dodać opcję MAIN_FIX_FOR_BUGGED_MTA do 1 w konfiguracji - inne zmodyfikować Dolibarr, aby tego uniknąć. Jednakże, mogą wystąpić problemy z innymi serwerami, które przestrzegają ściśle standardu SMTP. Inne rozwiązanie (zalecane) jest użycie metody "gniazdo SMTP biblioteki", który nie ma wad.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Ustawienia tłumaczenia
     TranslationKeySearch=Szukaj klucza lub ciągu tłumaczenia
     TranslationOverwriteKey=Nadpisz tłumaczony ciąg
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Tłumaczony ciąg
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Aktywowane aplikacje/moduły: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Musisz przynajmniej umożliwić 1 moduł
    -ClassNotFoundIntoPathWarning=Klasa% s nie znaleziono na drodze PHP
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Tak w lecie
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Przechowywania sesji szyfrowane Suhosin
     ConditionIsCurrently=Stan jest obecnie% s
    -YouUseBestDriver=Za pomocą sterownika% s, który jest najlepszym kierowcą dostępne obecnie.
    -YouDoNotUseBestDriver=Używać dysku% s% s, ale kierowca jest zalecane.
    -NbOfProductIsLowerThanNoPb=Masz tylko% s produktów / usług do bazy danych. W ten sposób nie wymaga żadnej szczególnej optymalizacji.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Pozycjonowanie
    -YouHaveXProductUseSearchOptim=Masz% s produktu w bazie danych. Należy dodać stałą PRODUCT_DONOTSEARCH_ANYWHERE do 1 w Home-Setup-Inne, można ograniczyć wyszukiwanie do początku ciągów składających możliwe dla bazy danych do wykorzystania indeksu i powinieneś otrzymać natychmiastową odpowiedź.
    -BrowserIsOK=Używasz przeglądarki internetowej% s. Ta przeglądarka jest ok dla bezpieczeństwa i wydajności.
    -BrowserIsKO=Używasz przeglądarki internetowej% s. Ta przeglądarka jest znany zły wybór dla bezpieczeństwa, wydajności i niezawodności. Mamy polecam do korzystania z przeglądarki Firefox, Chrome, Opera lub Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug jest załadowany.
     XCacheInstalled=XCache jest załadowany.
    -AddRefInList=Wyświetlacz klienta / ref dostawcą na liście (wybierz listy lub combobox) i większość z hiperłącza. Osób trzecich pojawia się nazwa "CC12345 - SC45678 - duży coorp firmy", zamiast "The big coorp firmy".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edycja pola% s
     FillThisOnlyIfRequired=Przykład: +2 (wypełnić tylko w przypadku strefy czasowej w stosunku problemy są doświadczeni)
     GetBarCode=Pobierz kod kreskowy
     ##### Module password generation
     PasswordGenerationStandard=Wróć hasło generowane zgodnie z wewnętrznym Dolibarr algorytmu: 8 znaków zawierających cyfry i znaki udostępniony w małe.
    -PasswordGenerationNone=Nie zgłosił żadnych wygenerowane hasło. Hasło należy wpisać ręcznie.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Powrót hasło zależności osobiście określonej konfiguracji.
     SetupPerso=Zgodnie z twoją konfiguracją
     PasswordPatternDesc=Opis wzoru hasła
    @@ -1195,23 +1206,23 @@ UserMailRequired=Email wymagane, aby utworzyć nowego użytkownika
     HRMSetup=Ustawianie modułu HR
     ##### Company setup #####
     CompanySetup=Firmy konfiguracji modułu
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=Powiadomienia email pozwalają na wysyłanie automatycznych wiadomości email w tle dla pewnym zdarzeń w aplikacji Dolibarr. Odbiorca powiadomień może być zdefiniowany:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Szablony dokumentów
    -DocumentModelOdt=Generowanie dokumentów z szablonów (.odt OpenDocuments lub ods pliki dla OpenOffice, KOffice, TextEdit, ...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Znak wodny w sprawie projektu dokumentu
     JSOnPaimentBill=Aktywuj funkcję automatyczne wypełnianie linii płatności w formie płatności
    -CompanyIdProfChecker=Profesjonalny Identyfikator unikalny
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Musi być unikatowy?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Wywóz <b>link %s</b> format jest dostępny na poniższy link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Wywóz <b>link %s</b> format jest dostępny na poniższy
     BillsSetup=Konfiguracja modułu faktur
     BillsNumberingModule=Faktur i not kredytowych numeracji modułu
     BillsPDFModules=Faktura dokumentów modele
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Nota kredytowa
     CreditNotes=Not kredytowych
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Zarządzanie logowania dla każdego członka
     AdherentMailRequired=Email wymagane, aby utworzyć nowy członek
     MemberSendInformationByMailByDefault=Checkbox wysłać mail z potwierdzeniem do członków jest domyślnie
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=Konfiguracja LDAP
     LDAPGlobalParameters=Parametry globalne
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Testowanie wyszukiwania LDAP
     LDAPSynchroOK=Synchronizacja udany test
     LDAPSynchroKO=Niepowodzenie testu synchronizacji
    -LDAPSynchroKOMayBePermissions=Niepowodzenie testu synchronizacji. Upewnij się, że połączenie z serwerem jest poprawnie skonfigurowane i pozwala na aktualizacje LDAP
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=TCP podłączyć do serwera LDAP powiodło się (Server= %s, port= %s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=TCP podłączyć do serwera LDAP nie powiodło się (Server= %s, port= %s)
    -LDAPBindOK=Połącz / Authentificate na serwerze LDAP sukces (Server =% s, port =% s, Admin =% s, hasło =% s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=Kontakt / Authentificate do serwera LDAP nie powiodło się (Server= %s, port= %s, %s= Administrator, Password= %s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=Serwer LDAP skonfigurowany dla wersji 3
     LDAPSetupForVersion2=Serwer LDAP skonfigurowany dla wersji 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Przykład: sAMAccountName
     LDAPFieldFullname=Imię i nazwisko
     LDAPFieldFullnameExample=Przykład: cn
    -LDAPFieldPasswordNotCrypted=Hasło nie zaszyfrowane
    -LDAPFieldPasswordCrypted=Zaszyfrowane hasło
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Przykład: userPassword
     LDAPFieldCommonNameExample=Przykład: cn
     LDAPFieldName=Nazwa
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Przykład wartości są dla <b>OpenLDAP</b> ładowane z następujących schematów: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Jeśli używasz thoose wartości i OpenLDAP, zmodyfikować plik konfiguracyjny LDAP <b>slapd.conf</b> do wszystkich thoose schemas załadowany.
     ForANonAnonymousAccess=Dla uwierzytelniane dostęp (do zapisu na przykład)
     PerfDolibarr=Konfiguracja Wyniki / optymalizacja raport
    -YouMayFindPerfAdviceHere=Znajdziesz na tej stronie kilka czeków lub porad związanych z realizacją.
    -NotInstalled=Nie jest zainstalowany, więc serwer nie jest wolniejsze od tego.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Aplikacyjnych cache
     MemcachedNotAvailable=Nie znaleziono cache aplikacyjnych. Możesz zwiększyć wydajność poprzez zainstalowanie serwera cache i Memcached moduł w stanie korzystać z tego serwera cache. <br> Więcej informacji tutaj <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a> . <br> Należy pamiętać, że wiele hosting provider nie zapewnia takiego serwera cache.
     MemcachedModuleAvailableButNotSetup=Moduł memcached dla aplikacyjnej cache znaleźć, ale konfiguracja modułu nie jest kompletna.
     MemcachedAvailableAndSetup=Moduł memcached dedykowane obsłudze serwer memcached jest włączony.
     OPCodeCache=OPCODE cache
    -NoOPCodeCacheFound=Nie znaleziono OpCode cache. Może użyć innego cache OPCODE niż XCache lub eAccelerator (dobry), może nie masz OPCODE cache (bardzo źle).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=Cache HTTP do zasobów statycznych (css, img, JavaScript)
     FilesOfTypeCached=Pliki typu %s są buforowane przez serwer HTTP
     FilesOfTypeNotCached=Pliki typu %s nie są buforowane przez serwer HTTP
     FilesOfTypeCompressed=Pliki typu %s są kompresowane przez serwer HTTP
     FilesOfTypeNotCompressed=Pliki typu %s nie są kompresowane przez serwer HTTP
     CacheByServer=Cache przez serwer
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache przez przeglądarkę
     CompressionOfResources=Kompresja odpowiedzi HTTP
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Taka automatyczna detekcja nie jest możliwe przy obecnych przeglądarek
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Domyślna kolejność sortowania
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Produkty konfiguracji modułu
     ServiceSetup=Konfiguracja modułu Usługi
     ProductServiceSetup=Produkty i usługi moduły konfiguracyjne
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=Maksymalna liczba produktów combo wybrać list (0= bez limitu)
    -ViewProductDescInFormAbility=Wizualizacja opisy produktów w formach (inaczej jak popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Także jeśli masz dużą ilość produktu (> 100 000), można zwiększyć prędkość przez ustawienie stałej PRODUCT_DONOTSEARCH_ANYWHERE do 1 w Setup-> Inne. Szukaj zostaną ograniczone do początku łańcucha.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Domyślny kod kreskowy typu użyć do produktów
     SetDefaultBarcodeTypeThirdParties=Domyślny typ kodu kreskowego używanego dla kontahentów
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Konfiguracja modułu wysyłek
     SendingsReceiptModel=Wysyłanie otrzymania modelu
     SendingsNumberingModules=Sendings numerowania modułów
     SendingsAbility=Obsługuj arkusze wysyłkowe dla dostaw do klientów
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Dowolny tekst sprawie przemieszczania
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Produkty dostaw otrzymania numeracji modułu
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Zaawansowany edytor
     ActivateFCKeditor=Uaktywnij FCKeditor za:
     FCKeditorForCompany=WYSIWIG tworzenie / edycja spółek opis i notatki
     FCKeditorForProduct=WYSIWIG tworzenie / edycja produktów / usług "opis i notatki
    -FCKeditorForProductDetails=WYSIWIG tworzenie / edycja produktów szczegóły linii dla wszystkich podmiotów (wnioski, zamówienia, faktury, itp ...). <font class="warning">Ostrzeżenie: Użycie tej opcji w tym przypadku nie jest zalecane, ponieważ może poważnie to spowodować problemy z znaków specjalnych i strona formatowania, gdy buduje PDF pliki.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG tworzenie / edycja wiadomości
     FCKeditorForUserSignature=WYSIWIG tworzenie / edycja podpisu użytkownika
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Połączenie udało, ale baza danych nie patrzy się osCommerce danych (klucz %s nie został znaleziony w tabeli %s).
    -OSCommerceTestOk=Połączenie do serwera ' %s' z bazą danych " %s" z użytkownikiem '%s' powiodło się.
    -OSCommerceTestKo1=Pomyślnie połączono się z serwerem '%s', ale baza danych '%s' jest niedostępna.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Połączenie do serwera '% s' w bazie danych '% s' z użytkownika '% s' sukces.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Połączenie do serwera '%s' z użytkownikiem '%s' nie powiodło się.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=W przypadku korzystania z modułu Point of Sale (moduł POS dostarczony domyślnie lub inny moduł zewnętrzny), ta konfiguracja może być ignorowana przez twój moduł POS. Większość modułów POS jest zaprojektowana, aby wystawiać natychmiast fakturę i obniżać zapas domyślnie, czyli podobnie jak poniższe opcje. Tak więc, jeśli chcesz lub nie, aby twój moduł POS obsłużył zmniejszanie zapasu na magazynie podczas rejestrowania sprzedaży, sprawdź konfigurację twojego modułu POS.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu skreślony
     Menus=Menu
    @@ -1548,7 +1562,7 @@ DetailRight=Warunek, aby wyświetlić menu nieautoryzowanych szary
     DetailLangs=Lang nazwy etykiety kodów
     DetailUser=Intern / Pomocy Wszystkie
     Target=Cel
    -DetailTarget=Target dla linków (_blank górę otworzyć nowe okno)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Poziom (-1: top menu 0: nagłówek menu&gt; 0 menu i podmenu)
     ModifMenu=Menu zmiany
     DeleteMenu=Usuń element menu
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT jest należny: <br> - W dniu dostawy / płatności za t
     OptionVatDebitOptionDesc=VAT jest należny: <br> - W dniu dostawy / płatności za towary <br> - Na fakturze (obciążenie) na usługi
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Czas VAT exigibility domyślnie wg wybranej opcji:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Na dostawy
     OnPayment=W sprawie wypłaty
     OnInvoice=Na fakturze
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Kup konto. kod
     AgendaSetup=Działania i porządku konfiguracji modułu
     PasswordTogetVCalExport=Klucz do wywozu zezwolić na link
     PastDelayVCalExport=Nie starsze niż eksport przypadku
    -AGENDA_USE_EVENT_TYPE=Użyj typów zdarzeń (zarządzanie w menu Konfiguracja -> Słowniki -> Typ zdarzeń w agendzie)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Ustaw automatycznie tego typu imprezy w filtrze wyszukiwania widzenia porządku obrad
    -AGENDA_DEFAULT_FILTER_STATUS=Ustaw automatycznie tego stanu dla wydarzeń w filtrze wyszukiwania widzenia porządku obrad
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Która karta chcesz otworzyć domyślnie po wybraniu menu Agendę
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Kliknij, aby Dial konfiguracji modułu
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=Moduł ten pozwala dodać ikonę po numer telefonu Dolibarr kontakty. Kliknięcie na tę ikonę, będzie połączenie z serveur z danego adresu URL można zdefiniować poniżej. Może to być wykorzystane, aby połączyć się z Call Center z systemu Dolibarr, że mogą dzwonić na numer telefonu SIP system przykład.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Używaj tylko łącza "tel:" na numery telefonów
    -ClickToDialUseTelLinkDesc=Użyj tej metody, jeśli użytkownicy mają softphone lub interfejs oprogramowania zainstalowanego na tym samym komputerze, niż przeglądarce i nazywa się po kliknięciu na link w przeglądarce, które zaczynają się od "tel:". Jeśli potrzebujesz pełne rozwiązanie serwera (bez potrzeby instalacji oprogramowania lokalnego), należy ustawić na "Nie" i wypełnić następne pole.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Punktów sprzedaży
     CashDeskSetup=Kasa konfiguracji modułu
    -CashDeskThirdPartyForSell=Domyślnie ogólny osób trzecich do korzystania z Sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Środki pieniężne na rachunku do korzystania sprzedaje
     CashDeskBankAccountForCheque= Chcesz używać do otrzymywania płatności w formie czeku
     CashDeskBankAccountForCB= Chcesz używać do przyjmowania płatności gotówkowych za pomocą kart kredytowych
    -CashDeskDoNotDecreaseStock=Wyłącz spadek akcji, gdy sprzedaż odbywa się z punktów sprzedaży (jeśli "nie", spadek zapasów odbywa się dla każdego sprzedają zrobić z POS, co jest rozwiązaniem określonym w module magazynie).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Życie i ograniczyć magazyn użyć do spadku magazynie
    -StockDecreaseForPointOfSaleDisabled=Spadek Zdjęcie z punktach sprzedaży wyłączony
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Zmniejszenie liczby zapasów w POS nie jest kompatybilne z systemem zarządzania partiami
    -CashDeskYouDidNotDisableStockDecease=Nie wyłączono spadek akcji podczas dokonywania sprzedaży od punktu sprzedaży. Więc jest wymagane magazynu.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Zakładka konfiguracji modułu
    -BookmarkDesc=Moduł ten umożliwia zarządzanie zakładkami. Możesz także dodać skróty do jakichkolwiek Dolibarr strony lub stron internetowych externale po lewej stronie menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maksymalna liczba zakładek, aby pokazać, w lewym menu
     ##### WebServices #####
     WebServicesSetup=WebServices konfiguracji modułu
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Firma Multi-Moduł konfiguracji
     ##### Suppliers #####
     SuppliersSetup=Dostawca konfiguracji modułu
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Modele numeracji faktur dostawcy
     IfSetToYesDontForgetPermission=Jeśli jest ustawiona na yes, nie zapomnij, aby zapewnić uprawnień do grup lub użytkowników dopuszczonych do drugiego zatwierdzenia
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Projekt instalacji modułu
     ProjectsModelModule=Wzór dokumentu projektu sprawozdania
     TasksNumberingModules=Zadania numeracji modułu
     TaskModelModule=Zadania raporty modelu dokumentu
    -UseSearchToSelectProject=Czekaj na wciśnięcie klawisza przed załadowaniem zawartości listy (To może zwiększyć wydajność jeżeli masz dużą ilość projektów, ale zmniejszy wygodę użytkowania)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Okresy rozliczeniowe
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Możesz znaleźć opcje po
     ListOfNotificationsPerUser=Lista powiadomień na użytkownika*
     ListOfNotificationsPerUserOrContact=Lista powiadomień na użytkownika* lub na kontakt**
     ListOfFixedNotifications=Lista stałych powiadomień
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Próg
     BackupDumpWizard=Konfigurator wykonywania kopii zapasowej bazy danych
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Instalacja zewnętrznych modułów z p
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Kolor podświetlenia linii przy najechaniu na nią myszą (pozostaw puste jeżeli ma nie być podświetlona)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Kolor odnośników
     PressF5AfterChangingThis=Naciśnij CTRL+F5 na klawiaturze aby wyczyścić cache w przeglądarce po zmianie tej wartości, aby zobaczyć efekt tej zmiany
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Kolor tła dla równomiernych lini tabeli
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Widoczne wszędzie
     VisibleNowhere=Visible nowhere
     FixTZ=Strefa czasowa fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=Używasz ostatniej stabilnej wersji
     TitleExampleForMajorRelease=Przykład wiadomości można użyć, aby ogłosić to główne wydanie (prosimy używać go na swoich stronach internetowych)
     TitleExampleForMaintenanceRelease=Przykład wiadomości można użyć, aby ogłosić wydanie konserwacji (prosimy używać go na swoich stronach internetowych)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s jest dostępny. Wersja %s  jest głównym wydaniem z dużą ilością nowych funkcji dla użytkowników i deweloperów. Możesz ją pobrać na stronie https://www.dolibarr.org (podkatalog Wersje stabilne). Pełna lista zmian dostępna jest w <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a>.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s jest dostępny. Wersja %s jest wydaniem poprawkowym, więc zawiera tylko poprawki naprawiające błędy. Zalecamy wszystkim użycie starszej wersji do aktualizacji do tej wersji. Jak w każdej wersji poprawkowej, nie ma tutaj nowych funkcjonalności, zmian w strukturze danych w porównaniu do aktualnej wersji. Możesz ją pobrać na stronie https://www.dolibarr.org (podkatalog Wersje stabilne). Pełna lista zmian dostępna jest w <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a>.
    -MultiPriceRuleDesc=Gdy opcja "Kilka poziom cen na produkt / usługę" jest włączone, można zdefiniować różne ceny (jeden na poziomie cen) dla każdego produktu. Aby zaoszczędzić czas, można wprowadzić tutaj rządzić mieć cenę każdego poziomu autocalculated według ceny pierwszym poziomie, więc trzeba będzie wprowadzić tylko cenę za pierwszego poziomu na każdym produkcie. Ta strona jest tutaj, aby zaoszczędzić czas i może być przydatne tylko wtedy, jeśli ceny każdego poziomó są w stosunku do pierwszego poziomu. Można zignorować tę stronę w większości przypadków.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Szablon dokumentu produktu
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=Wszyscy wydawcy
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Wykrycie niemożliwe
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Lista dostępnych API
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=Ten użytkownik nie ma zdefiniowanych uprawnień
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Kod pocztowy
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/pl_PL/banks.lang b/htdocs/langs/pl_PL/banks.lang
    index 2360520a92d..981a0585f05 100644
    --- a/htdocs/langs/pl_PL/banks.lang
    +++ b/htdocs/langs/pl_PL/banks.lang
    @@ -7,7 +7,7 @@ BankName=Nazwa banku
     FinancialAccount=Konto
     BankAccount=Konto bankowe
     BankAccounts=Konta bankowe
    -BankAccountsAndGateways=Konta bankowe / Bramki
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Pokaż konto
     AccountRef=Numer referencyjny rachunku bankowego
     AccountLabel=Etykieta rachunku finansowego
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Konto adres
     BankAccountCountry=Konto kraju
     BankAccountOwner=Nazwa właściciela konta
     BankAccountOwnerAddress=Adres właściciela konta
    -RIBControlError=Sprawdza integralność wartości, które się niepowiedziodły. Oznacza to, że informacje o tym numerze konta nie są kompletne lub błędne (sprawdź liczbowe, IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Załóż konto
     NewBankAccount=Nowe konto
     NewFinancialAccount=Nowy rachunek finansowy
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Wpisy do zaksięgowania
     Conciliable=Może być rekoncyliowane
     Conciliate=Uzgodnienie sald
     Conciliation=Rekoncyliacja
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Dołącz zamknięte rachunki
     OnlyOpenedAccount=Tylko otwarte konta
    @@ -104,7 +105,7 @@ SocialContributionPayment=Płatność za ZUS/podatek
     BankTransfer=Przelew bankowy
     BankTransfers=Przelewy bankowe
     MenuBankInternalTransfer=Przelew wewnętrzny
    -TransferDesc=Transfer środków z jednego konta na drugie. Dolibarr zapisze dwa rekordy (Debet na koncie źródłowym i zaliczkę na koncie docelowym. Ta sama kwota (oprócz znaku), etykieta i data będą użyte dla tej transakcji) 
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Od
     TransferTo=Do
     TransferFromToDone=Transfer z <b>%s</b> do <b>%s</b> <b>%s</b> %s został zapisany.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Czeki bankowe
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Pokaż sprawdzić otrzymania wpłaty
    -NumberOfCheques=Nr czeku
    +NumberOfCheques=No. of check
     DeleteTransaction=Usuń wpis
     ConfirmDeleteTransaction=Czy jesteś pewien, że chcesz usunąć te wpis?
     ThisWillAlsoDeleteBankRecord=To usunie wygenerowany wpis bankowy
    @@ -135,8 +136,8 @@ BankTransactionLine=Wpis bankowy
     AllAccounts=All bank and cash accounts
     BackToAccount=Powrót do konta
     ShowAllAccounts=Pokaż wszystkie konta
    -FutureTransaction=Transakcja w przyszłości. Nie da się pogodzić.
    -SelectChequeTransactionAndGenerate=Wybierz / filtr sprawdza, to do otrzymania depozytu wyboru i kliknij przycisk &quot;Utwórz&quot;.
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Wybierz wyciąg bankowy związany z postępowania pojednawczego. Użyj schematu: RRRRMM lub RRRRMMDD
     EventualyAddCategory=Ostatecznie, określić kategorię, w której sklasyfikować rekordy
     ToConciliate=Do zaksięgowania?
    @@ -153,7 +154,7 @@ RejectCheckDate=Data wrócił kontrola
     CheckRejected=Czek zwrócony
     CheckRejectedAndInvoicesReopened=Czek zwrócony i faktura ponownie otwarta
     BankAccountModelModule=Szablony dokumentu dla kont bankowych
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=Nowe różne płatności
     VariousPayment=Różne płatności
    @@ -162,4 +163,5 @@ ShowVariousPayment=Pokaż różne płatności
     AddVariousPayment=Dodaj inne płatności
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/pl_PL/bills.lang b/htdocs/langs/pl_PL/bills.lang
    index 27510192398..5aae25e4817 100644
    --- a/htdocs/langs/pl_PL/bills.lang
    +++ b/htdocs/langs/pl_PL/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma faktury
     InvoiceProFormaDesc=<b>Faktura proforma</b> jest obrazem prawdziwej faktury, ale nie ma jeszcze wartości księgowych.
     InvoiceReplacement=Duplikat faktury
     InvoiceReplacementAsk=Duplikat faktury do faktury
    -InvoiceReplacementDesc=<b>Zastąpienie faktury</b> służy do anulowania i/lub całkowitego zastąpienia faktury dla, której nie odnotowano wpłaty. <br><br> Uwaga: Można zastąpić tylko faktury bez zapłaty. Jeżeli korekta nie jest jeszcze zamknięta/ukończona, zostanie ona automatycznie zamknięta i przeniesiona do "porzucone".
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Nota kredytowa
     InvoiceAvoirAsk=Edytuj notatkę do skorygowania faktury
    -InvoiceAvoirDesc=<b>Nota kredytowa</b> jest negatywną fakturą/korektą wykorzystywaną do rozwiązania w przypadku gdy na fakturze jest kwota, która różni się od kwoty faktycznie wypłaconej (ponieważ klient wypłacił przez pomyłkę zbyt dużo, będzie wypłacona w całości, lub zwrócił niektóre produkty). <br><br> Uwaga: oryginał faktury musi być już zamknięty ( "wpłacona" lub "częściowo wpłacana") w celu umożliwienia stworzenia noty kredytowej na jej temat.
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Tworzenie kredytowa Uwaga liniami z faktury pochodzenia
     invoiceAvoirWithPaymentRestAmount=Tworzenie kredytowa z nieopłacone Uwaga faktury pochodzenia
     invoiceAvoirLineWithPaymentRestAmount=Nota kredytowa na kwotę pozostałą nieodpłatną
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Spłacona
     DeletePayment=Usuń płatności
     ConfirmDeletePayment=Czy jesteś pewien, że chcesz usunąć tą płatność?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Płatności dostawców
     ReceivedPayments=Otrzymane płatności
     ReceivedCustomersPayments=Zaliczki otrzymane od klientów
    -PayedSuppliersPayments=Płatności zapłacone dostawcom
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Odebrane płatności klientów do potwierdzenia
     PaymentsReportsForYear=Raporty płatności dla %s
     PaymentsReports=Raporty płatności
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Warunki płatności
     PaymentAmount=Kwota płatności
     ValidatePayment=Weryfikacja płatności
     PaymentHigherThanReminderToPay=Płatności wyższe niż upomnienie do zapłaty
    -HelpPaymentHigherThanReminderToPay=Uwaga, płatność kwoty jednego lub więcej rachunków jest wyższa potrzeba. <br> Wprowadź edycje wpisu lub potwierdź i pomyśl o stworzeniu noty kredytowej dla nadwyżki otrzymanych z nadpłaty faktur.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Klasyfikacja "wpłacono"
     ClassifyPaidPartially=Klasyfikacja "wpłacono częściowo"
     ClassifyCanceled=Klasyfikacja "Porzucono"
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Zamknięte (nie zapłacone)
     BillStatusClosedPaidPartially=Opłacone (częściowo)
     BillShortStatusDraft=Szkic
     BillShortStatusPaid=Płatność
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Płatność
     BillShortStatusCanceled=Opuszczone
     BillShortStatusValidated=Zatwierdzone
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Zamknięte
     BillShortStatusClosedPaidPartially=Opłacono (częściowo)
     PaymentStatusToValidShort=Do potwierdzenia
    -ErrorVATIntraNotConfigured=Stopa Vat niezdefiniowana
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Brak zdefiniowanego domyślnego trybu płatności. Przejdź do modułu faktur by naprawić to. 
     ErrorCreateBankAccount=Utwórz konto bankowe, a następnie przejść do panelu konfiguracji modułu faktury by zdefiniować sposób płatności
     ErrorBillNotFound=Faktura %s nie istnieje
    -ErrorInvoiceAlreadyReplaced=Błąd, próbujesz zweryfikować fakturę by zastąpić fakturę %s. Niestety została ona już zastąpiona przez fakturę %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Błąd, zniżka już używana
     ErrorInvoiceAvoirMustBeNegative=Błąd, korekty faktury muszą mieć negatywny kwotę
     ErrorInvoiceOfThisTypeMustBePositive=Błąd ten typ faktury musi mieć dodatnią wartość
     ErrorCantCancelIfReplacementInvoiceNotValidated=Błąd, nie można anulować faktury, która została zastąpiona przez inną fakturę, będącą ciągle w stanie projektu.
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Od
     BillTo=Do
     ActionsOnBill=Działania na fakturze
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Czy jesteś pewien, że chcesz zmienić status faktury <
     ConfirmCancelBill=Czy jesteś pewien, że chcesz anulować fakturę <b>%s</b>?
     ConfirmCancelBillQuestion=Dlaczego chcesz sklasyfikować tę fakturę jako „porzuconą”?
     ConfirmClassifyPaidPartially=Czy jesteś pewien, że chcesz zmienić status faktury <b>%s</b> na zapłaconą?
    -ConfirmClassifyPaidPartiallyQuestion=Ta faktura nie została zapłacona w całości. Jaka jest przyczyna, że chcesz zamknąć tą fakturę?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Upływającym nieopłaconym <b>(%s %s)</b> jest przyznana zniżka, ponieważ płatność została dokonana przed terminem. Uregulowano podatku VAT do faktury korygującej.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Upływające nieopłacone <b>(%s %s)</b> jest przyznana zniżka, ponieważ płatność została dokonana przed terminem. Akceptuję stracić VAT na tej zniżce.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Upływające nieopłacone <b>(% s% s)</b> mają przyznaną zniżkę, ponieważ płatność została dokonana przed terminem. Odzyskano VAT od tej zniżki bez noty kredytowej.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Zły klient
     ConfirmClassifyPaidPartiallyReasonProductReturned=Produkty częściowo zwrócone
     ConfirmClassifyPaidPartiallyReasonOther=Kwota porzucona z innej przyczyny
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Wybór ten jest możliwe, jeżeli faktury zostały wyposażone w odpowiedni komentarz. (Przykład &quot;Tylko podatku odpowiadającej cenie, które zostały faktycznie zapłacone daje prawa do odliczenia&quot;)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=W niektórych krajach ten wybór może być możliwe tylko wówczas, gdy na fakturze zawiera prawidłowe notatki.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Użyj tego wyboru, jeśli wszystkie inne nie odpowiadają
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>zły klient</b> jest klientem odmówić spłaty długu.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ten wybór jest używany, gdy płatność nie jest kompletna, ponieważ niektóre produkty zostały zwrócone
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Użyj tego wyboru, jeśli wszystkie inne nie odpowiadać, na przykład w następującej sytuacji: <br> - Opłaty nie są kompletne, ponieważ niektóre produkty zostały wysłane z powrotem <br> - Kwota zbyt ważne, gdyż twierdził, rabat został zapomniany <br> We wszystkich przypadkach kwota ponad twierdził musi być rozwiązany w księgowości system poprzez stworzenie kredytu notatkę.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Inny
     ConfirmClassifyAbandonReasonOtherDesc=Wybór ten będzie używany we wszystkich innych przypadkach. Na przykład wówczas. gdy planujesz utworzyć fakturę zastępującą.
     ConfirmCustomerPayment=Potwierdzasz wprowadzenie płatności dla <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Potwierdzasz wprowadzenie płatności dla <b>%s</b> %s?
     ConfirmValidatePayment=Czy jesteś pewny, że chcesz zatwierdzić tą płatność? Nie będzie można wprowadzić zmian po zatwierdzeniu płatności.
     ValidateBill=Zatwierdź fakturę
     UnvalidateBill=Niepotwierdzona faktura
    -NumberOfBills=Ilość faktur
    -NumberOfBillsByMonth=Ilość faktur w miesiącu
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Kwota faktury
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Kwota faktur przez miesiąc (netto)
     ShowSocialContribution=Pokaż składkę ZUS/podatek
     ShowBill=Pokaż fakturę
    @@ -260,9 +262,9 @@ Repeatables=Szablony
     ChangeIntoRepeatableInvoice=Konwersja do szablonu faktury
     CreateRepeatableInvoice=Tworzenie szablonu faktury
     CreateFromRepeatableInvoice=Utwórz z szablonu faktury
    -CustomersInvoicesAndInvoiceLines=Klienta faktury i faktury linii
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Faktury i płatności klienta
    -ExportDataset_invoice_1=Klient faktury i faktury listę "linii
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Faktury i płatności klienta
     ProformaBill=Proforma Bill:
     Reduction=Rabat
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill adres
    -HelpEscompte=Ta zniżka zniżki przyznawane klienta, ponieważ jego paiement został złożony przed terminem.
    -HelpAbandonBadCustomer=Kwota ta została opuszczonych (klient mówi się, że zły klient) i jest uważany za exceptionnal luźne.
    -HelpAbandonOther=Kwota ta została opuszczonych, ponieważ był to błąd (zły klient otrzymuje fakturę lub inny na przykład)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=ID płatności składki ZUS/podatku
     PaymentId=ID Płatności
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Nie wybrano faktury
     CloneInvoice=Powiel fakturę
     ConfirmCloneInvoice=Czy jesteś pewien, że chcesz powielić tą fakturę <b>%s</b>?
     DisabledBecauseReplacedInvoice=Działania wyłączone, ponieważ na fakturze została zastąpiona
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Ilość płatności
    +DescTaxAndDividendsArea=Obszar ten stanowi podsumowanie wszystkich płatności dokonanych na specjalne wydatki. Tylko zapisy z płatności w czasie ustalonym roku zostały tu uwzględnione.
    +NbOfPayments=No. of payments
     SplitDiscount=Split zniżki w dwóch
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Wejście kwoty dla każdego z dwóch części:
    -TotalOfTwoDiscountMustEqualsOriginal=Suma dwóch nowych rabatu musi być równa kwocie pierwotnego zniżki.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Czy jesteś pewien, że chcesz usunąć tą zniżkę?
     RelatedBill=Powiązana faktura
     RelatedBills=Powiązane faktury
     RelatedCustomerInvoices=Powiązane z: faktury klienta
     RelatedSupplierInvoices=Pozwiązane z: faktura dostawca
     LatestRelatedBill=Ostatnie powiązane faktury
    -WarningBillExist=Ostrzeżenie, jedna lub więcej faktur istnieje
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Narzędzie do dzielenia PDF
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Czek
     PaymentTypeShortCHQ=Czek
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=Płatności on-line
    -PaymentTypeShortVAD=Płatności on-line
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Szkic
     PaymentTypeFAC=Współczynnik
     PaymentTypeShortFAC=Współczynnik
     BankDetails=Szczegóły banku
     BankCode=Kod banku
    -DeskCode=Recepcja kod
    +DeskCode=Office code
     BankAccountNumber=Numer konta
    -BankAccountNumberKey=Klucz
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=Numer IBAN
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT numer
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Płatność przelewem na następujące konto
     VATIsNotUsedForInvoice=* Nie dotyczy sztuki VAT-293B z CGI
     LawApplicationPart1=Poprzez stosowanie prawa 80,335 do 12/05/80
     LawApplicationPart2=towary pozostają własnością
    -LawApplicationPart3=sprzedającego do pełna cashing z
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=ich ceny.
     LimitedLiabilityCompanyCapital=SARL z Stolicy
     UseLine=Zastosować
    @@ -463,7 +465,7 @@ Cheques=Czeki
     DepositId=ID depozytu
     NbCheque=Ilość czeków
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Użyj rozliczeniowe klienta adres kontaktowy zamiast trzeciej adres odbiorcy za faktury
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Pokaż wszystkie niezapłacone faktury
     ShowUnpaidLateOnly=Pokaż późno unpaid fakturze tylko
     PaymentInvoiceRef=Płatność faktury %s
    @@ -474,21 +476,22 @@ Reported=Opóźniony
     DisabledBecausePayments=Nie możliwe, ponieważ istnieją pewne płatności
     CantRemovePaymentWithOneInvoicePaid=Nie można usunąć płatności, ponieważ istnieje przynajmniej na fakturze sklasyfikowane płatne
     ExpectedToPay=Oczekuje płatności
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Wypłacana przez płatność
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Klasyfikująsubstancje "Paid" wszystkie noty kredytowe w całości zwrócona.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Wszystkie faktury bez kwoty do zapłaty zostaną automatycznie zamknięte i oznaczone statusem "Zapłacono"
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Płacić
     ToMakePaymentBack=Spłacać
     ListOfYourUnpaidInvoices=Lista niezapłaconych faktur
     NoteListOfYourUnpaidInvoices=Uwaga: Ta lista zawiera tylko faktury dla osób trzecich jesteś powiązanych jako przedstawiciel sprzedaży.
     RevenueStamp=Znaczek skarbowy
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Faktura Crabe modelu. Pełna faktura modelu (VAT Wsparcie opcji, rabaty, warunki płatności, logo, itp. ..)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Zwróć numer w formacie %srrmm-nnnn dla standardowych faktur i %srrmm-nnnn dla not kredytowych, gdzie rr oznacza rok, mm to miesiąc, a nnnn to kolejny niepowtarzalny numer rozpoczynający się od 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Usuń szablon faktury
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Faktura usunięta
    diff --git a/htdocs/langs/pl_PL/cashdesk.lang b/htdocs/langs/pl_PL/cashdesk.lang
    index 2783b9658c5..8b38064b307 100644
    --- a/htdocs/langs/pl_PL/cashdesk.lang
    +++ b/htdocs/langs/pl_PL/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Pokaż firmę
     ShowStock=Pokaż magazyn
     DeleteArticle=Kliknij, aby usunąć ten artykuł
     FilterRefOrLabelOrBC=Szukaj (Ref / Label)
    -UserNeedPermissionToEditStockToUsePos=Próbujesz zmniejszyć zapasy na fakturze stworzonej, więc użytkownik by mógł używać POS potrzebuje mieć uprawnienie by edytować zapasy.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Drukarka fiskalna Dolibarr
    +PointOfSale=Punktów sprzedaży
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/pl_PL/commercial.lang b/htdocs/langs/pl_PL/commercial.lang
    index aabac7a4500..8933a602345 100644
    --- a/htdocs/langs/pl_PL/commercial.lang
    +++ b/htdocs/langs/pl_PL/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefon
     ActionAC_FAX=Wyślij faks
     ActionAC_PROP=Wyślij propozycję pocztą
     ActionAC_EMAIL=Wyślij e-mail
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Spotkania
     ActionAC_INT=Interwencja na stronie
     ActionAC_FAC=Wyślij fakturę/rozliczenie pocztą
    @@ -72,8 +73,8 @@ StatusProsp=Stan oferty
     DraftPropals=Szkic oferty handlowej
     NoLimit=Bez limitu
     ToOfferALinkForOnlineSignature=Link dla podpisu online
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Funkcjonalność podpisu online wyłączona lub dokument wygenerowano przed włączeniem tej funkcji
    diff --git a/htdocs/langs/pl_PL/companies.lang b/htdocs/langs/pl_PL/companies.lang
    index bde9269a0e3..1bf1fad19d4 100644
    --- a/htdocs/langs/pl_PL/companies.lang
    +++ b/htdocs/langs/pl_PL/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Wybierz kontrahenta
     ConfirmDeleteCompany=Czy jesteś pewien, ze chcesz usunąć tą firmę i wszystkie zawarte informacje?
     DeleteContact=Usuń kontakt/adres
     ConfirmDeleteContact=Czy jesteś pewien, ze chcesz usunąć ten kontakt i wszystkie zawarte informacje?
    -MenuNewThirdParty=Nowy kontrahent
    -MenuNewCustomer=Nowy klient
    -MenuNewProspect=Nowy potencjalny klient
    -MenuNewSupplier=Nowy dostawca
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Nowa osoba prywatna
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Stwórz kontrahenta (dostawcę)
     CreateThirdPartyOnly=Utwórz kontrahenta
     CreateThirdPartyAndContact=Utwórz kontrahenta i potomny kontakt
    @@ -25,22 +25,22 @@ ThirdPartyContact=Kontakty/adresy kontrahenta
     Company=Firma
     CompanyName=Nazwa firmy
     AliasNames=Alias (handlowy, znak firmowy, ...)
    -AliasNameShort=Alias
    +AliasNameShort=Alias Name
     Companies=Firmy
    -CountryIsInEEC=Kraj należy do Europejskiej Strefy Ekonomicznej
    -ThirdPartyName=Nazwa kontrahenta
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Email kontrahenta
    -ThirdParty=Kontrahent
    -ThirdParties=Kontrahenci
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Potencjalni klienci
     ThirdPartyProspectsStats=Potencjalni klienci
     ThirdPartyCustomers=Klienci
     ThirdPartyCustomersStats=Klienci
     ThirdPartyCustomersWithIdProf12=Klienci z %s lub %s
     ThirdPartySuppliers=Dostawcy
    -ThirdPartyType=Typ kontrahenta
    +ThirdPartyType=Type of company
     Individual=Osoba prywatna
    -ToCreateContactWithSameName=Utworzy automatycznie kontakt/adres z takimi samymi informacjami jak dane kontrahenta. Najczęściej jeżeli twój kontrahent jest osobą fizyczną, wystarczy utworzenie samego kontrahenta.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Firma macierzysta
     Subsidiaries=Oddziały
     ReportByMonth=Raport za miesiąc
    @@ -75,12 +75,12 @@ Zip=Kod pocztowy
     Town=Miasto
     Web=Strona www
     Poste= Stanowisko
    -DefaultLang=Domyślny język
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    -VATIsNotUsed=Sales tax is not used
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
    +VATIsNotUsed=Nie jest płatnikiem VAT
     CopyAddressFromSoc=Uzupełnij adres danymi kontrahenta
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Konto bankowe dla płatności
     OverAllProposals=Propozycje
    @@ -258,10 +258,10 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Składnia jest poprawna
    -VATReturn=VAT return
    +VATReturn=Zwrot VAT
     ProspectCustomer=Perspektywa/Klient
     Prospect=Perspektywa
     CustomerCard=Karta Klienta
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Ten klient ma standardowy rabat <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Ten klient domyślnie nie posiada względnego rabatu
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=Ten klient ma dostępny rabat (kredyty lub zaliczki) dla <b>%s</b>%s
    -CompanyHasDownPaymentOrCommercialDiscount=Ten klient ma dostępny rabat (komercyjny, zaliczki) dla <b>%s</b>%s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Ten klient nadal posiada noty kredytowe dla <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Żaden
    -Supplier=Dostawca
    +Supplier=Vendor
     AddContact=Stwórz konktakt
     AddContactAddress=Stwórz kontakt/adres
     EditContact=Edytuj kontakt
    @@ -303,22 +303,22 @@ AddThirdParty=Dodaj kontrahenta
     DeleteACompany=Usuń firmę
     PersonalInformations=Prywatne dane osobowe
     AccountancyCode=Konto księgowe
    -CustomerCode=Kod Klienta
    -SupplierCode=Kod dostawcy
    -CustomerCodeShort=Kod klienta
    -SupplierCodeShort=Kod dostawcy
    -CustomerCodeDesc=Kod Klienta, unikatowy dla wszystkich klientów
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Wymagane, jeżeli Kontrahent jest klientem lub potencjalnym klientem
     RequiredIfSupplier=Wymagane jeżeli kontrahent jest dostawcą
    -ValidityControledByModule=Ważność kontrolowana przez moduł
    -ThisIsModuleRules=To są zasady tego modułu
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Potencjalny Klient do kontaktu
     CompanyDeleted=Firma " %s" usunięta z bazy danych.
     ListOfContacts=Lista kontaktów/adresów
     ListOfContactsAddresses=Lista kontaktów/adresów
    -ListOfThirdParties=Lista kontrahentów
    -ShowCompany=Pokaż kontrahentów
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Pokaż kontakt
     ContactsAllShort=Wszystkie (bez filtra)
     ContactType=Typ kontaktu
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Ten kontakt nie jest kontaktem dla żadnej oferty handlo
     NoContactForAnyContract=Ten kontakt nie jest kontaktem dla żadnego kontraktu
     NoContactForAnyInvoice=Ten kontakt nie jest kontaktem dla żadnej faktury
     NewContact=Nowy kontakt
    -NewContactAddress=Nowy kontakt / adres
    +NewContactAddress=New Contact/Address
     MyContacts=Moje kontakty
     Capital=Kapitał
     CapitalOf=Kapitał %s
     EditCompany=Edycja firmy
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Sprawdź
    -VATIntraCheckDesc=Kliknij tutaj <b>%s</b> aby sprawdzić NIP Klienta w serwisie Europejskiej Komisji VAT. Wymagany jest dostęp do internetu.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do?locale=pl
    -VATIntraCheckableOnEUSite=Sprawdź NIP Klienta w serwisie Europejskiej Komisji VAT
    -VATIntraManualCheck=Możesz również sprawdzić ręcznie wchodząc na stonie Europejskiej Komisji VAT <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Brak możliwości sprawdzenia. Usługa nie jest dostarczana dla wybranego regionu (%s).
    -NorProspectNorCustomer=Ani perspektywa, ani klient
    -JuridicalStatus=Forma prawna
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Personel
     ProspectLevelShort=Potencjał
     ProspectLevel=Potencjał potencjalnego klienta
    @@ -387,12 +387,12 @@ ExportCardToFormat=Eksport karty do formatu
     ContactNotLinkedToCompany=Kontakt nie połączony z żadnym kontrahentem
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=Brak dostępu do Dolibarr
    -ExportDataset_company_1=Kontrahenci (Firmy/Fundacje/Osoby fizyczne) i ich ustawienia
    -ExportDataset_company_2=Kontakty i właściwości
    -ImportDataset_company_1=Kontrahenci (Firmy/Fundacje/Osoby fizyczne) i ich ustawienia
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Konta bankowe kontrahentów
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Poziom cen
     DeliveryAddress=Adres dostawy
     AddAddress=Dodaj adres
    @@ -402,16 +402,16 @@ DeleteFile=Usuń plik
     ConfirmDeleteFile=Czy na pewno chcesz usunąć ten plik?
     AllocateCommercial=Przypisać do przedstawiciela
     Organization=Organizacja
    -FiscalYearInformation=Informacje dotyczące roku podatkowego
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Pierwszy miesiąc roku podatkowego
    -YouMustAssignUserMailFirst=Musisz w pierwszej kolejności dodać adres email dla tego użytkownika aby udostępnić powiadomienia email dla niego.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=Żeby dodać powiadomienia email, najpierw musisz określić kontakty z ważnymi adresami email dla kontrahentów
    -ListSuppliersShort=Lista dostawców
    -ListProspectsShort=Lista potencjalnych klientów
    -ListCustomersShort=Lista klientów
    -ThirdPartiesArea=Zamówienie i konktakt 
    -LastModifiedThirdParties=Ostatnich %s modyfikowanych kontrahentów
    -UniqueThirdParties=Łącznie unikatowych kontrahentów
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Otwarte
     ActivityCeased=Zamknięte
     ThirdPartyIsClosed=Kontrahent jest zamknięty
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Biężący, niezapłacony rachunek
     OutstandingBill=Maksymalna kwota niezapłaconego rachunku
     OutstandingBillReached=Maksymalna kwota dla niespłaconych rachunków osiągnięta
     OrderMinAmount=Minimalna kwota dla zamówienia
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Dowolny kod Klienta / Dostawcy. Ten kod może być modyfikowany w dowolnym momencie.
     ManagingDirectors=Funkcja(e) managera (prezes, dyrektor generalny...)
     MergeOriginThirdparty=Duplikuj kontrahenta (kontrahenta, którego chcesz usunąć)
     MergeThirdparties=Scal kontrahentów
    -ConfirmMergeThirdparties=Jesteś pewien, że chcesz połączyć tego kontrahenta z obecny? Wszystkie połączone dokumenty (faktury, zamówienia, ...) zostaną przeniesione do obecnego kontrahenta, a wtedy ten kontrahent zostanie usunety.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login przedstawiciela handlowego
     SaleRepresentativeFirstname=Imię przedstawiciela handlowego
     SaleRepresentativeLastname=Nazwisko przedstawiciela handlowego
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/pl_PL/dict.lang b/htdocs/langs/pl_PL/dict.lang
    index 9888ae40d0a..cfd05fcce6e 100644
    --- a/htdocs/langs/pl_PL/dict.lang
    +++ b/htdocs/langs/pl_PL/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Wyspa Heard i McDonalda
     CountryVA=Stolica Apostolska (Państwo Watykańskie)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=Indie
     CountryID=Indonezja
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Korea Północna
     CountryKR=Korea Południowa
     CountryKW=Kuwejt
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Laotański
     CountryLV=Łotwa
     CountryLB=Liban
    @@ -160,7 +160,7 @@ CountryMD=Mołdawia
     CountryMN=Mongolia
     CountryMS=Montserrat
     CountryMZ=Mozambik
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trynidad i Tobago
     CountryTR=Turcja
     CountryTM=Turkmenistan
    -CountryTC=Wyspy Turks i Cailos
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupii
     CurrencySingMUR=rupia Mauritius
     CurrencyNOK=Koron norweskich
    -CurrencySingNOK=Korona norweska
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=TND
     CurrencySingTND=Dinar tunezyjski
     CurrencyUSD=US Dollar
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Pracownik
     DemandReasonTypeSRC_SPONSORING=Sponsorowanie
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/pl_PL/ecm.lang b/htdocs/langs/pl_PL/ecm.lang
    index 4b5feca5c01..c4171fd621d 100644
    --- a/htdocs/langs/pl_PL/ecm.lang
    +++ b/htdocs/langs/pl_PL/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=ilość dokumentów w katalogu
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Katalog
     ECMSectionManual=Katalog manualny
     ECMSectionAuto=Katalog automatyczny
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Dokumenty powiązane z projektami
     ECMDocsByUsers=Dokumenty powiązane z użytkownikami
     ECMDocsByInterventions=Dokumenty powiązane z interwencjami
     ECMDocsByExpenseReports=Dokumenty dołączone do raportów kosztowych
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Brak utworzonego katalogu
     ShowECMSection=Pokaż katalog
     DeleteSection=Usuń katalog
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/pl_PL/errors.lang b/htdocs/langs/pl_PL/errors.lang
    index ce6a8de3891..7a316213032 100644
    --- a/htdocs/langs/pl_PL/errors.lang
    +++ b/htdocs/langs/pl_PL/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Wartość '%s' ma zły format daty
     ErrorWrongDate=Data nie jest poprawna!
     ErrorFailedToWriteInDir=Nie można zapisać w katalogu %s
     ErrorFoundBadEmailInFile=Znaleziono nieprawidłową składnię adresu email dla %s linii w pliku (przykładowo linia %s z adresem email %s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Niektóre pola wymagane nie były uzupełnione.
     ErrorSubjectIsRequired=Temat wiadomości jest wymagany
     ErrorFailedToCreateDir=Nie można utworzyć katalogu. Sprawdź, czy serwer WWW użytkownik ma uprawnienia do zapisu do katalogu dokumentów Dolibarr. Jeśli parametr <b>safe_mode</b> jest włączona w tym PHP, czy posiada Dolibarr php pliki do serwera internetowego użytkownika (lub grupy).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Proszę wypełnić wartości dla listy wyboru
     ErrorNoValueForCheckBoxType=Proszę wypełnić wartości dla listy checkbox
     ErrorNoValueForRadioType=Proszę wypełnić wartość liście radiowej
     ErrorBadFormatValueList=Wartość na tej liście nie może mieć więcej niż jeden <u>przecinek: %s,</u> ale wymagany jest przynajmniej jeden: klucz, wartość
    -ErrorFieldCanNotContainSpecialCharacters=<b>Pole %s</b> nie zawiera znaki specjalne.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=<b>Pole% s nie</b> może zawierać znaków specjalnych, ani wielkich liter i nie może zawierać tylko liczby.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Nie aktywowano modułu księgowości
     ErrorExportDuplicateProfil=Ta nazwa profil już istnieje dla tego zestawu eksportu.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP dopasowywania nie jest kompletna.
     ErrorLDAPMakeManualTest=A. LDIF plik został wygenerowany w katalogu %s. Spróbuj załadować go ręcznie z wiersza polecenia, aby mieć więcej informacji na temat błędów.
    -ErrorCantSaveADoneUserWithZeroPercentage=Nie można zapisać działania z "Statut nie rozpocznie", jeśli pole "wykonana przez" jest wypełniona.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Numer identyfikacyjny używany do tworzenia już istnieje.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Nie udało się usunąć rekordu, ponieważ ma on pewne potomstwo.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Nie można usunąc wpisu. Jest on już używany lub dołączony do innego obiektu.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=JavaScript nie może być wyłączony aby korzystać z tej funkcji. Aby włączyć/wyłączyć Javascript, przejdź do menu Start->Ustawienia->Ekran.
     ErrorPasswordsMustMatch=Zarówno wpisane hasło musi się zgadzać się
    -ErrorContactEMail=Błąd techniczny. Proszę skontaktować się z administratorem, pod adresem email <b>%s</b> podając kod błędu <b>%s</b> w wiadomości, lub lepiej - zrzut ekranu.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Nieprawidłowa wartość dla <b>%s</b> numer pola (wartość <b>&quot;%s&quot;</b> nie pasuje regex <b>%s</b> zasady)
     ErrorFieldValueNotIn=Błędna wartość numeru <b>pola% s (wartości '%</b> s' nie jest wartością pola dostępne w <b>tabeli% s% s)</b>
     ErrorFieldRefNotIn=Nieprawidłowa wartość dla <b>%s</b> liczba pól (wartość <b>'%s</b> &quot;nie jest <b>%s</b> istniejących ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Program antywirusowy nie był w stanie potwierdzi
     ErrorSpecialCharNotAllowedForField=Znaki specjalne nie są dozwolone dla pola "%s"
     ErrorNumRefModel=Odniesienia nie istnieje w bazie danych (%s) i nie jest zgodna z tą zasadą numeracji. Zmiana nazwy lub usuwanie zapisu w odniesieniu do aktywacji tego modułu.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Ustawienia modułu wyglądają na niekompletne. Idź do Strona główna - Konfiguracja - Moduły aby ukończyć.
     ErrorBadMask=Błąd w masce wprowadzania
     ErrorBadMaskFailedToLocatePosOfSequence=Błąd, maska ​​bez kolejnego numeru
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Błąd, zła wartość zresetowane
     ErrorMaxNumberReachForThisMask=Maksymalna liczba zasięg dla tej maski
     ErrorCounterMustHaveMoreThan3Digits=Licznik musi mieć więcej niż 3 cyfry
     ErrorSelectAtLeastOne=Błąd. Wybierz co najmniej jeden wpis.
    -ErrorDeleteNotPossibleLineIsConsolidated=Usunięcie nie możliwe, ponieważ wpis jest związany z transakcją bankową, która była konsyliowana
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s jest przypisany do innego państwa
     ErrorFailedToSendPassword=Nie można wysłać hasła
     ErrorFailedToLoadRSSFile=Nie dostać kanału RSS. Spróbuj dodać stałą MAIN_SIMPLEXMLLOAD_DEBUG czy komunikaty o błędach nie zawiera wystarczających informacji.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Użytkownik <b>%s</b> nie został znaleziony.
     ErrorLoginHasNoEmail=Ten użytkownik nie ma adresu e-mail. Proces przerwany.
     ErrorBadValueForCode=Zła wartość kody zabezpieczeń. Wprowadź nową wartość...
     ErrorBothFieldCantBeNegative=Pola %s i %s nie może być zarówno negatywny
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Ilość linii do faktur dla klientów nie może być ujemna
     ErrorWebServerUserHasNotPermission=Konto użytkownika <b>%s</b> wykorzystywane do wykonywania serwer WWW nie ma zgody na który
     ErrorNoActivatedBarcode=Nie Typ aktywny kodów kreskowych
    @@ -138,7 +141,7 @@ ErrorBadFormat=Zły format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Błąd, występuje kilka dostaw związanych z tą przesyłką. Usunięcie odrzucone.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Nie można usunąć płatności udostępnionej przez co najmniej jednego stanu zapłaci faktury z
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Nie można przypisać do stałej '% s'
     ErrorPriceExpression2=Nie można przedefiniować wbudowanej funkcji "%s"
     ErrorPriceExpression3=Niezdefiniowana zmienna '% s' w definicji funkcji
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Nieoczekiwany '%s'
     ErrorPriceExpression6=Błędna liczba argumentów (%s podano, %s oczekiwany)
     ErrorPriceExpression8=Nieoczekiwany operator '%s'
     ErrorPriceExpression9=Wystąpił nieoczekiwany błąd
    -ErrorPriceExpression10=Iperator '% s' nie ma argumentu
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Spodziewając '% s'
     ErrorPriceExpression14=Dzielenie przez zero
     ErrorPriceExpression17=Niezdefiniowana zmienna '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=Klient SOAP nie powiodło się z powodu błędu '% s
     ErrorGlobalVariableUpdater5=Nie wybrano zmiennej globalnej
     ErrorFieldMustBeANumeric=Pole <b>%s</b> musi mieć wartość numeryczną
     ErrorMandatoryParametersNotProvided=Obowiązkowe parametr (y) nie przewidziane
    -ErrorOppStatusRequiredIfAmount=Możesz ustawić szacunkową kwotę za możliwość / ołowiu. Więc należy także wprowadzić swój status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad definicja tablicy w menu modułu deskryptora (zły stosunek jakości do kluczowego fk_menu)
    -ErrorSavingChanges=Wystąpił błąd podczas zapisywania zmian
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=Flik musi mieć format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=Hasło zostało ustawione dla tego użytkownika. Jednakże nie Konto użytkownika zostało utworzone. Więc to hasło jest przechowywane, ale nie mogą być używane do logowania do Dolibarr. Może być stosowany przez zewnętrzny moduł / interfejsu, ale jeśli nie trzeba definiować dowolną logowania ani hasła do członka, można wyłączyć opcję "Zarządzaj login dla każdego członka" od konfiguracji modułu użytkownika. Jeśli potrzebujesz zarządzać logowanie, ale nie wymagają hasła, możesz zachować to pole puste, aby uniknąć tego ostrzeżenia. Uwaga: E może być również stosowany jako login, jeśli element jest połączony do użytkownika.
     WarningMandatorySetupNotComplete=Parametry konfiguracyjne obowiązkowe nie są jeszcze określone
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Zakładka z tego tytułu lub ten cel (URL) już ist
     WarningPassIsEmpty=Ostrzeżenie, hasło do bazy danych jest puste. Jest to luka w zabezpieczeniach. Powinieneś dodać hasło do bazy danych i zmienić wpis w pliku conf.php aby zmiany przyniosły efekt.
     WarningConfFileMustBeReadOnly=Uwaga, plik konfiguracyjny <b>(htdocs / conf / conf.php)</b> mogą być zastąpione przez serwer internetowy. Jest to poważna luka w zabezpieczeniach. Modyfikowanie uprawnień na wniosek jest w trybie tylko do odczytu dla użytkownika system operacyjny używany przez serwer sieci Web. Jeśli używasz systemu Windows i format FAT na dysku, musisz wiedzieć, że ten system plików nie pozwala na dodawanie uprawnień do pliku, więc nie może być całkowicie bezpieczne.
     WarningsOnXLines=Ostrzeżeń na linii źródło <b>%s</b>
    -WarningNoDocumentModelActivated=Nie modelu do generowania dokumentu, został aktywowany. Model będzie wybraną domyślnie dopóki nie zajrzysz do modułu konfiguracji.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Uwaga, po zakończeniu instalacji, musisz wyłączyć narzędzia instalacji/migracji poprzez dodanie pliku <b>install.lock</b> do katalogu <b>%s</b>. Brak tego pliku jest luką w zabezpieczeniach.
    -WarningUntilDirRemoved=Wszystkie ostrzeżenia na temat bezpieczeństwa (widoczne tylko dla użytkowników z uprawnieniami Administratora) pozostaną aktywne tak długo jak luka w zabezpieczeniach istnieje (lub stała MAIN_REMOVE_INSTALL_WARNING zostanie dodana w menu Konfiguracja -> Inne konfiguracje).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Ostrzeżenie, zamykanie odbywa się nawet wtedy, gdy kwota zależy od elementów źródłowych i docelowych. Włącz tę funkcję, z zachowaniem ostrożności.
     WarningUsingThisBoxSlowDown=Ostrzeżenie, za pomocą tego pola spowolnić poważnie do wszystkich stron zawierających pola.
     WarningClickToDialUserSetupNotComplete=Konfiguracja ClickToDial informacji dla użytkownika nie są kompletne (patrz zakładka ClickToDial na kartę użytkownika).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Zbyt wiele danych (więcej niż% s linii)
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Twój login został zmodyfikowany. Z powodów bezpieczeństwa musisz zalogować się z użyciem nowego loginy przed kolejną czynnością.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/pl_PL/help.lang b/htdocs/langs/pl_PL/help.lang
    index 68b7bee21bc..cbc4569a284 100644
    --- a/htdocs/langs/pl_PL/help.lang
    +++ b/htdocs/langs/pl_PL/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online w czasie rzeczywistym / zdalne wsparcie
     OtherSupport=Inne wsparcie
     ToSeeListOfAvailableRessources=Aby skontaktować / patrz dostępne zasoby:
     HelpCenter=Centrum pomocy
    -DolibarrHelpCenter=Centrum pomocy i obsługi technicznej
    -ToGoBackToDolibarr=W innym przypadku, kliknij <a href="%s">tutaj, aby używać Dolibarr</a>
    -TypeOfSupport=Źródła wsparcia
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Społeczność (za darmo)
     TypeSupportCommercial=Komercyjny
     TypeOfHelp=Typ
    @@ -15,12 +15,9 @@ NeedHelpCenter=Potrzebujesz pomocy lub wsparcia?
     Efficiency=Efektywność
     TypeHelpOnly=Tylko pomoc
     TypeHelpDev=Pomoc+Rozwoj
    -TypeHelpDevForm=Pomoc + Rozwoju + Formacja
    -ToGetHelpGoOnSparkAngels1=Niektóre firmy mogą zapewnić szybki (niekiedy natychmiastową) i bardziej wydajnych sieci wsparcia poprzez podjęcie kontroli nad komputerem. Takie pomocników można znaleźć na stronie <b>internetowej %s:</b>
    -ToGetHelpGoOnSparkAngels3=Można też przejść do listy wszystkich dostępnych dla autokarów Dolibarr, w tym kliknąć przycisk
    -ToGetHelpGoOnSparkAngels2=Czasami nie ma firmy dostępne w tej chwili można dokonać wyszukiwania, dlatego uważam, aby zmienić filtr do poszukiwania "dostępność wszystkich". Będziesz mógł wysłać więcej wniosków.
    -BackToHelpCenter=W innym przypadku, kliknij tutaj, aby przejść <a href="%s">wstecz na stronie głównej Centrum pomocy.</a>
    -LinkToGoldMember=Możesz połączyć jedno z trenera wybranej przez Dolibarr dla danego języka ( %s), klikając jego Widget (status i maksymalną cenę są automatycznie uaktualniane):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Obsługiwane języki
    -SubscribeToFoundation=Pomoc projekt Dolibarr, zapisz się na fundamencie
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Do oficjalnego wsparcia Dolibarr w Twoim języku: <br> <a href="%s" target="_blank"><b>% S</b></a>
    diff --git a/htdocs/langs/pl_PL/holiday.lang b/htdocs/langs/pl_PL/holiday.lang
    index a3f2acbf11a..aa2096d8ca7 100644
    --- a/htdocs/langs/pl_PL/holiday.lang
    +++ b/htdocs/langs/pl_PL/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Urlopy
    -CPTitreMenu=Urlopy
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Miesięczne zestawienie
     MenuAddCP=Nowy wniosek urlopowy
    -NotActiveModCP=Musisz włączyć moduł Urlopów aby zobaczyć tą stronę.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Stwórz wniosek  urlopowy
     DateDebCP=Data rozpoczęcia
     DateFinCP=Data zakończenia
    @@ -15,18 +15,18 @@ ApprovedCP=Zatwierdzony
     CancelCP=Odwołany
     RefuseCP=Odrzucony
     ValidatorCP=Akceptujący
    -ListeCP=Lista urlopów
    +ListeCP=List of leave
     LeaveId=Leave ID
     ReviewedByCP=Będzie zatwierdzony przez
     UserForApprovalID=User for approval ID
    -UserForApprovalFirstname=Firstname of approval user
    -UserForApprovalLastname=Lastname of approval user
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
     UserForApprovalLogin=Login of approval user
     DescCP=Opis
     SendRequestCP=Tworzenie wniosku urlopowego
     DelayToRequestCP=Wniosek urlopowy musi być stworzony przynajmniej <b>%s dzień (i) </b> przed jego rozpoczęciem.
    -MenuConfCP=Bilans urlopów
    -SoldeCPUser=Liście saldo <b>jest% s</b> dni.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Musisz wybrać datę zakończenia większą niż data rozpoczęcia.
     ErrorSQLCreateCP=Wystąpił błąd SQL podczas tworzenia:
     ErrorIDFicheCP=Wystąpił błąd, wniosek urlopowy nie istnieje.
    @@ -101,8 +101,8 @@ LEAVE_SICK=Sick leave
     LEAVE_OTHER=Other leave
     LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Ostatnia automatyczna aktualizacja alokacji urlopów
    -MonthOfLastMonthlyUpdate=Miesiąc ostatniej automatycznej aktualizacji alokacji urlopów
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Zaktualizowane.
     Module27130Name= Zarządzanie wnioskami urlopowymi
     Module27130Desc= Zarządzanie wnioskami urlopowymi
    @@ -112,7 +112,7 @@ NoticePeriod=Okres wypowiedzenia
     HolidaysToValidate=Zatwierdź wnioski urlopowe
     HolidaysToValidateBody=Poniżej jest wniosek o dopuszczenie do sprawdzenia
     HolidaysToValidateDelay=Wniosek ten urlop odbędzie się w ciągu mniej niż% s dni.
    -HolidaysToValidateAlertSolde=Użytkownik, który stworzył ten wniosek urlopowy nie ma wystarczających ilości dni.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Zatwierdzone wnioski urlopowe
     HolidaysValidatedBody=Twój wniosek urlopowy od %s do %s został zatwierdzony.
     HolidaysRefused=Zapytanie zaprzeczył
    @@ -121,4 +121,9 @@ HolidaysCanceled=Anulowane wniosku urlopowego
     HolidaysCanceledBody=Twój wniosek urlopowy od %s do %s został anulowany.
     FollowedByACounter=1: Ten typ urlopu musi być prześledzony przez licznik. Licznik jest  zwiększany ręcznie lub automatycznie, a po zwolnieniu żądania urlopu, licznik jest zmniejszany. <br> 0: Nie śłedzone przez licznik.
     NoLeaveWithCounterDefined=Nie ma żadnych zdefiniowanych typów urlopu które  muszą być prześledzone przez licznik
    -GoIntoDictionaryHolidayTypes=Idź do <strong>Home - Ustawienia - Słowniki - Rodzaj urlopów</strong> w celu stworzenia różnych typów urlopów.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/pl_PL/install.lang b/htdocs/langs/pl_PL/install.lang
    index 4f623677fee..40a31d71cd5 100644
    --- a/htdocs/langs/pl_PL/install.lang
    +++ b/htdocs/langs/pl_PL/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Postępuj według instrukcji krok po kroku.
     MiscellaneousChecks=Sprawdzenie wymagań
     ConfFileExists=Plik konfiguracyjny <b>%s</b> istnieje.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Plik konfiguracyjny <b>%s</b> nie istnieje i nie mógł zostać utworzony!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Plik konfiguracyjny <b>%s</b> został lub mógł zostać utworzony.
    -ConfFileIsNotWritable=Plik konfiguracyjny <b>%s</b> nie ma uprawnień do zapisu. Sprawdź uprawnienia. Przy pierwszej instalacji Twój serwer WWW musi posiadać uprawnienia do zapisu tego pliku podczas procesu konfiguracji (Dla systemów uniksowych wystarczy wykonać polecenie "chmod 666").
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Plik konfiguracyjny <b>%s</b> ma uprawnienia do zapisu.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Odśwież wszystkie informacje z pliku konfiguracyjnego.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=PHP obsługuje sesje.
     PHPSupportPOSTGETOk=PHP obsługuje zmienne POST i GET.
    -PHPSupportPOSTGETKo=Możliwe, że PHP nie obsługuje zmiennych POST i/lub GET. Sprawdź parametr <b>variables_order</b> w php.ini.
    -PHPSupportGD=PHP obsługuje graficzne funkcje GD.
    -PHPSupportCurl=Ta wersja PHP wspiera Curl
    -PHPSupportUTF8=Ta wersja PHP oferuje wsparcie funkcji UTF8.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Maksymalna ilość pamięci sesji PHP ustawiona jest na <b>%s</b>. Powinno wystarczyć.
    -PHPMemoryTooLow=Maksymalna ilość pamięci sesji PHP <b>%s</b> bajtów. To może nie wystarczyć. Zmień w <b>php.ini</b> parametr <b>memory_limit</b> na przynajmniej <b>%s</b> bajtów.
    -Recheck=Potwierdź w celu dokładniejszego testu
    -ErrorPHPDoesNotSupportSessions=Instalacja PHP nie obsługuje sesji. Taka funkcjonalność jest wymagana do działania Dolibarra. Sprawdź swoje ustawienia PHP.
    -ErrorPHPDoesNotSupportGD=Twoja instalacji PHP nie obsługuje funkcji graficznych GD. wykresy nie będą dostępne.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Twoja instalacja PHP nie wspiera Curl.
    -ErrorPHPDoesNotSupportUTF8=Twoja instalacji PHP nie obsługuje funkcji UTF8. Dolibarr może nie działać poprawnie. Rozwiązać ten problem przed instalacją Dolibarr'a.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Katalog %s nie istnieje.
    -ErrorGoBackAndCorrectParameters=Cofnij się i popraw złe parametry.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Możliwe, że wprowadzono nieprawidłową wartość dla parametru '%s'.
     ErrorFailedToCreateDatabase=Utworzenie bazy danych '%s' nie powiodło się.
     ErrorFailedToConnectToDatabase=Połączenie z bazą danych '%s' nie powiodło się.
     ErrorDatabaseVersionTooLow=Wersja (%s) bazy danych jest zbyt stara. Wymagana jest wersja %s lub wyższa.
     ErrorPHPVersionTooLow=Wersja PHP zbyt stara. Wymagana wersja to przynajmniej %s.
    -ErrorConnectedButDatabaseNotFound=Połączenie z serwerem powiodło się, ale nie znaleziony bazy '%s'.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Baza danych '%s' już istnieje.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Jeśli baza danych nie istnieje, w poprzednim kroku zaznacz opcję "Utwórz bazę danych".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Jeśli baza danych istnieje, w poprzednim kroku odznacz opcję "Utwórz bazę danych".
    -WarningBrowserTooOld=Zbyt stara wersja przeglądarki. Zdecydowanie zalecamy wykonanie uaktualnienia do najnowszej wersji przeglądarki Firefox, Chrome lub Opera.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=Wersja PHP
     License=Użyta licencja
     ConfigurationFile=Plik konfiguracyjny
    @@ -45,22 +45,23 @@ DolibarrDatabase=Baza danych Dolibarr'a
     DatabaseType=Rodzaj bazy danych
     DriverType=Rodzaj sterownika
     Server=Serwer
    -ServerAddressDescription=Nazwa lub adres IP serwera baz danych, zazwyczaj 'localhost' jeśli serwer baz danych znajduje się fizycznie na tej samej maszynie co serwer WWW
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Port serwera baz danych. Zostaw puste jeśli nie znasz.
     DatabaseServer=Serwer baz danych
     DatabaseName=Nazwa bazy danych
    -DatabasePrefix=Tabela prefiksów bazy danych
    -AdminLogin=Login do administratora bazy danych
    -PasswordAgain=Powtórz hasło
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Hasło do bazy danych
     CreateDatabase=Utwórz bazę danych
    -CreateUser=Utwórz właściciela lub nadaj mu uprawnienia w bazie danych
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Baza danych z dostępem na prawach superużytkownika
    -CheckToCreateDatabase=Zaznacz jeśli baza danych nie istnieje i musi zostać utworzona.<br>W przypadku takim na dole tej strony musisz podać użytkownika/hasło do konta superużytkownika.
    -CheckToCreateUser=Zaznacz pole jeśli właściciel bazy danych nie istnieje i musi zostać stworzony, lub jeśli istnieje ale baza danych nie istnieje i uprawnienia muszą zostać nadane. <br> W takim przypadku, musisz wybrać jego login i hasło oraz wypełnić login i hasło konta super użytkownika na spodzie tej strony. Jeśli to pole jest nie zaznaczone, właściciel bazy danych i jego hasło musi istnieć.
    -DatabaseRootLoginDescription=Login użytkownika mogącego tworzyć nowe bazy lub nowych użytkowników, wymagane jeśli baza danych oraz jej właściciel nie istnieją.
    -KeepEmptyIfNoPassword=Zostaw puste jeśli użytkownik nie posiada hasła (unikaj takiej sytuacji)
    -SaveConfigurationFile=Zapis wartości
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Połączenie z serwerem
     DatabaseCreation=Utworzenie bazy danych
     CreateDatabaseObjects=Tworzenie obiektów w bazie danych
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Tworzenie kluczy obcych oraz indeksów dla tabeli %s
     OtherKeysCreation=Tworzenie kluczy obcych oraz indeksów
     FunctionsCreation=Tworzenie funkcji
     AdminAccountCreation=Tworzenie użytkownika
    -PleaseTypePassword=Proszę wprowadzić hasło, puste hasła są niedozwolone!
    -PleaseTypeALogin=Proszę wprowadzić nazwę użytkownika!
    -PasswordsMismatch=Hasła różnią się, spróbuj ponownie!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Koniec ustawień
     SystemIsInstalled=Instalacja zakończona.
     SystemIsUpgraded=Dolibarr został zaktualizowany pomyślnie.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Teraz należy ustawić Dolibarra tak by spełniał Two
     AdminLoginCreatedSuccessfuly=Login administratora Dolibarr '<b>%s</b>' utworzony pomyślnie.
     GoToDolibarr=Idź do Dolibarr'a
     GoToSetupArea=Przejdź do ustawień Dolibarra
    -MigrationNotFinished=Wersja bazy danych nie jest w pełni aktualna. Musisz uruchomić proces aktualizacji ponownie.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Wejdź na stronę aktualizacji ponownie
     WithNoSlashAtTheEnd=Bez znaku ukośnika "/" na końcu
    -DirectoryRecommendation=Zalecane jest by umieścić ten katalog poza katalogiem ze stronami WWW.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Już istnieje
     DolibarrAdminLogin=Użytkownik administracyjny Dolibarra
    -AdminLoginAlreadyExists=Konto administracyjne Dolibarra '<b>%s</b>' już istnieje. Cofnij się jeśli chcesz utworzyć kolejne.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Utworzenie konta administratora Dolibarr nie powiodło się.
    -WarningRemoveInstallDir=Ostrzeżenie: ze względów bezpieczeństwa by zapobiec nieuprawnionemu użyciu po instalacji lub aktualizacji powinno się usunąć katalog install lub zmienić jego nazwę na <b>install.lock</b>.
    -FunctionNotAvailableInThisPHP=Niedostępne w tej wersji PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Wybierz skrypt migracyjny
     DataMigration=Migracja bazy danych (dane)
     DatabaseMigration=Migracja bazy danych (struktura i niektóre dane)
     ProcessMigrateScript=Przetwarzanie skryptów
     ChooseYourSetupMode=Wybierz tryb instalacji i potwierdź przyciskiem "Start"...
     FreshInstall=Nowa instalacja
    -FreshInstallDesc=Użyj tego trybu jeśli to pierwsza instalacja. Jeśli nie, to w tym trybie można naprawić poprzednią niepełną instalację. W przypadku aktualizacji skorzystaj z trybu "Aktualizacja".
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Aktualizacja
     UpgradeDesc=Użyj tego trybu jeśli podmieniono stare pliki Dolibarra plikami z nowszej wersji. Ten tryb uaktualni bazę danych i poprzednie dane.
     Start=Start
     InstallNotAllowed=Ustawienie niedostępne przez uprawnienia <b>conf.php</b>
     YouMustCreateWithPermission=Musisz utworzyć plik %s i ustawić mu prawa zapisu dla serwera WWW podczas procesu instalacyjnego.
    -CorrectProblemAndReloadPage=Proszę poprawić te ustawienia i odświeżyć stronę (domyślnie F5).
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Migracja już przeprowadzona.
     DatabaseVersion=Wersja bazy danych
     ServerVersion=Wersja serwera baz danych
     YouMustCreateItAndAllowServerToWrite=Musisz utworzyć ten katalog i zezwolić serwerowi WWW na zapis w nim.
     DBSortingCollation=Sposób sortowania znaków
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Wybrano by utworzyć bazę danych <b>%s</b>, ale by tego dokonać Dolibarr musi połączyć się z serwerem <b>%s</b> na prawach superużytkownika <b>%s</b>.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Wybrano by utworzyć użytkownika <b>%s</b>, ale by tego dokonać Dolibarr musi połączyć się z serwerem <b>%s</b> na prawach superużytkownika <b>%s</b>.
    -BecauseConnectionFailedParametersMayBeWrong=Połączenie nie powiodło się. Adres serwera lub parametry superużytkownika musiały być nieprawidłowe.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Osierocona płatność wykryta przez metodę %s
     RemoveItManuallyAndPressF5ToContinue=Usuń go ręcznie i odśwież stronę (domyślnie F5) by kontynuować.
     FieldRenamed=Nazwa pola zmieniona
    -IfLoginDoesNotExistsCheckCreateUser=Jeśli login jeszcze nie istnieje, sprawdzić opcję "Utwórz użytkownika"
    -ErrorConnection=Serwer <b>" %s",</b> nazwa bazy danych <b>" %s"</b> login <b>" %s"</b> lub hasło bazy danych mogą być złe lub PHP wersji klienckiej może być zbyt stare w porównaniu do wersji bazy danych.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Zalecany wybór: zainstalować <b>wersję %s</b> od aktualnej <b>wersji %s</b>
     InstallChoiceSuggested=<b>Wybór sugerowany przez instalator.</b>
    -MigrateIsDoneStepByStep=Konkretna wersja (%s) ma lukę w kilku wersjach, kreator powróci do sugerowawanej kolejnej migracji, kiedy aktualna będzie gotowa.
    -CheckThatDatabasenameIsCorrect=Sprawdz czy nazwa bazy danych <b>"%s"</b> jest poprawna.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Jeśli ta nazwa jest poprawna i baza danych jeszcze nie istnieje, sprawdz opcję "utwórz bazę danych"
     OpenBaseDir=PHP parametr otwarcia katalogu bazy danych
    -YouAskToCreateDatabaseSoRootRequired=Zaznaczyłeś opcje "Stwórz baze danych". Wprowadz proszę nazwę i hasło Super Użytkownika 
    -YouAskToCreateDatabaseUserSoRootRequired=Zaznaczyłeś opcje "Stwórz właściciela bazy danych". Wprowadz proszę nazwę i hasło Super Użytkownika.
    -NextStepMightLastALongTime=Aktulany krok potrwa chwilę. By kontynuować, proszę czekać, aż kolejny krok będzie dostępny.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migracja danych przesyłek zamówień odbiorców
     MigrationShippingDelivery=Aktualizacja stanu do wysyłki
     MigrationShippingDelivery2=Aktualizacja stanu do wysyłki 2
     MigrationFinished=Migracja zakończona
    -LastStepDesc=<strong>Ostatni krok:</strong> Zdefiniuj tutaj nazwę i hasło, które masz zamiar użyć do połączenia z oprogramowaniem. Zapamiętaj je, ponieważ jest to konto do administrowania wszystkimi innymi ustawieniami.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Aktywuj moduł %s
     ShowEditTechnicalParameters=Kliknij tutaj, aby pokazać / edytować zaawansowane parametry (tryb ekspert)
    -WarningUpgrade=Uwaga:\nUtworzyłeś najpierw kopię zapasową bazy danych?\nTo jest bardzo rekomendowane: dla przykładu, przez niektóre błędy w bazach danych systemu (np. mysql wersja 5.5.40/41/42/43), niektóre informacje lub tabele mogą zostać utracone podczas tego procesu, więc posiadanie kopii zapasowej bazy danych przed przystąpieniem do procesu migracji jest bardzo rekomendowane.\n\nKliknij OK aby zacząć proces migracji...
    -ErrorDatabaseVersionForbiddenForMigration=Twoja wersja bazy danych to %s. Ma krytyczną lukę utraty danych jeśli się zmieni struktury na bazie danych, tak jak jest to wymagane podczas procesu migracji. Z tego powodu migracje nie zostaną dopuszczone dopóki nie ulepszysz bazy danych do wyższej wersji  (lista znanych wersji z lukami: %s)
    -KeepDefaultValuesWamp=Używasz kreatora instalacji, więc zaproponowane wartości są zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz.
    -KeepDefaultValuesDeb=Używasz kreatora instalacji Dolibarr z pakietu Linux (Ubutu, Debian, Fedora..), więc zaproponowane wartości są zoptymalizowane. Musisz stworzyć tylko hasło dla właściciela bazy danych. Inne parametry zmieniaj tylko jeśli wiesz co robisz.
    -KeepDefaultValuesMamp=Używasz kreatora instalacji, więc zaproponowane wartości są zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz.
    -KeepDefaultValuesProxmox=Możesz skorzystać z kreatora konfiguracji Dolibarr z urządzeniem wirtualnym Proxmox, więc wartości zaproponowane tutaj są już zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz.
    -UpgradeExternalModule=Uruchom dedykowany proces uaktualniania modułów zewnętrznych
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Ustaw przynajmniej jedną opcję jako parametr w adresie URL. Na przykład: '...repair.php?standard=confirmed'
     NothingToDelete=Nic do wyczyszczenia/usunięcia
     NothingToDo=Nic do zrobienia
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Migracja danych dla zamówień dostawców
     MigrationProposal=Migracja danych dla ofert handlowych
     MigrationInvoice=Migracja dla danych faktur odbiorców
     MigrationContract=Migracja danych kontraktów
    -MigrationSuccessfullUpdate=Aktualizacja zakończona pomyślnie
    +MigrationSuccessfullUpdate=Aktualizacja powiodła się
     MigrationUpdateFailed=Aktualizacja nie powiodła się
     MigrationRelationshipTables=Migracja dla danych spokrewnionych tabel (%s)
     MigrationPaymentsUpdate=Korekta danych płatności
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Korekta danych kontraktowych
     MigrationContractsNumberToUpdate=%s kontraktów do zaktualizowania
     MigrationContractsLineCreation=Utwórz linię kontraktową dla kontraktu %s
     MigrationContractsNothingToUpdate=Nic więcej do zrobienia
    -MigrationContractsFieldDontExist=Pole fk_facture już nie istnieje. Nic więcej do zrobienia.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Korekta pustych dat kontraktów
    -MigrationContractsEmptyDatesUpdateSuccess=Poprawa pustej daty kontraktu przeprowadzona pomyślnie
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Brak pustych dat kontraktów do korekty
     MigrationContractsEmptyCreationDatesNothingToUpdate=Brak dat utworzenia kontraktów do korekty
     MigrationContractsInvalidDatesUpdate=Nieprawidłowa wartość przy korekcie daty kontraktu
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Aktualizacja dostawy
     MigrationStockDetail=Aktualizacja wartości zapasów produktów
     MigrationMenusDetail=Aktualizacja dynamicznego meni tabeli
     MigrationDeliveryAddress=Aktualizacja adresu dostarczenia przesyłki
    -MigrationProjectTaskActors=Migracja danych z tabeli llx_projet_task_actors
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Migracja danych pola fk_user_resp z llx_projet do llx_element_contact
     MigrationProjectTaskTime=Pokonany czas uaktualnienia w sekundach
     MigrationActioncommElement=Aktualizacja danych na temat działań
     MigrationPaymentMode=Migracji danych w trybie płatności
     MigrationCategorieAssociation=Migracja kategorii
    -MigrationEvents=Przenieś wydarzenie by dodać nowego właściciela do przypisanej tabeli.
    -MigrationEventsContact=Migracja zdarzeń w celu dodania kontaktu zdarzenia do tabeli przydziału
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Zaktualizuj wartość pola podmiotu llx_societe_remise
     MigrationRemiseExceptEntity=Zaktualizuj wartość pola podmiotu llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Odśwież moduł %s
     MigrationResetBlockedLog=Zresetuj moduł BlockedLog dla algorytmu v7
    -ShowNotAvailableOptions=Pokaż niedostępne opcje.
    -HideNotAvailableOptions=Ukryj niedostępne opcje.
    -ErrorFoundDuringMigration=Wystąpiły błędy podczas procesu migracji więc następny krok jest nie dostępny. Żeby zignorować błędy, możesz <a href="%s">kliknąć tutaj</a>, ale aplikacja bądź jakieś jej funkcje mogą działać niepoprawnie do póki nie zostaną naprawione.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/pl_PL/interventions.lang b/htdocs/langs/pl_PL/interventions.lang
    index d1dc89bbd87..a239355b677 100644
    --- a/htdocs/langs/pl_PL/interventions.lang
    +++ b/htdocs/langs/pl_PL/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interwencje
     InterventionCard=Karta interwencji
     NewIntervention=Nowa interwencja
     AddIntervention=Tworzenie interwencji
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Wykaz interwencji
     ActionsOnFicheInter=Działania w zakresie interwencji
     LastInterventions=Ostatnie %s interwencje
    @@ -47,12 +48,12 @@ TypeContact_fichinter_external_CUSTOMER=W ślad za kontakt z klientem
     PrintProductsOnFichinter=Wydrukuj również linie typu "produkt" (nie tylko usługi) na karcie interwencji
     PrintProductsOnFichinterDetails=Interwencje generowane z zamówień
     UseServicesDurationOnFichinter=Użyj czasu trwania usług dla interwencji generowanych przez zamówienia
    -UseDurationOnFichinter=Hides the duration field for intervention records
    -UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
    +UseDurationOnFichinter=Ukrywa pole trwania dla rekordów interwencji
    +UseDateWithoutHourOnFichinter=Ukrywa godziny i minuty z pola dat dla rekordów interwencji
     InterventionStatistics=Statystyki interwencji
    -NbOfinterventions=Liczba kart interwencji
    -NumberOfInterventionsByMonth=Liczba kart interwencji w miesiącu (data potwierdzenia) 
    -AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
    +NbOfinterventions=Ilość kart interwencji
    +NumberOfInterventionsByMonth=Ilość kart interwencji w miesiącu (data potwierdzenia)
    +AmountOfInteventionNotIncludedByDefault=Ilość interwencji nie jest domyślnie uwzględniana w zysku (w większości przypadków do obliczania czasu wykorzystano karty czasu pracy). Ustaw opcję PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT na 1 w konfiguracji domowej - inne, aby je uwzględnić.
     ##### Exports #####
     InterId=ID interwencji
     InterRef=Numer referencyjny interwencji
    diff --git a/htdocs/langs/pl_PL/main.lang b/htdocs/langs/pl_PL/main.lang
    index 68817aaf670..5a945c97238 100644
    --- a/htdocs/langs/pl_PL/main.lang
    +++ b/htdocs/langs/pl_PL/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Próba wysłania maila nie udana (nadawca=%s, odbiorca=%s)
     ErrorFileNotUploaded=Plik nie został załadowany. Sprawdź, czy rozmiar nie przekracza maksymalnej dopuszczalnej wagi, lub czy wolne miejsce jest dostępne na dysku. Sprawdz czy nie ma już pliku o takiej samej nazwie w tym katalogu.
     ErrorInternalErrorDetected=Wykryto błąd
     ErrorWrongHostParameter=Niewłaściwy parametr hosta
    -ErrorYourCountryIsNotDefined=Twój kraj nie został zdefiniowany. Przejdź do Start-setup-Edycja i wypełnij poprawnie  formularz.
    -ErrorRecordIsUsedByChild=Nie można usunąć rekordu. Ten zapis jest używany przez co najmniej jeden pokrewny rekord.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Błędna wartość
     ErrorWrongValueForParameterX=Nieprawidłowa wartość dla parametru %s
     ErrorNoRequestInError=Nie wykryto żadneog błednego zapytania.
    -ErrorServiceUnavailableTryLater=Usługa nie jest dostępna w tej chwili. Spróbuj ponownie później.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Zduplikuj niepowtarzalną wartość w polu
    -ErrorSomeErrorWereFoundRollbackIsDone=Znaleziono błedy. Cofam zmiany
    -ErrorConfigParameterNotDefined=<b>Parametr %s</b> nie jest zdefiniowany wewnątrz pliku konfiguracyjnego <b>conf.php.</b> Dollibara
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Nie można znaleźć <b>użytkownika %s</b> Dolibarra w bazie danych.
     ErrorNoVATRateDefinedForSellerCountry=Błąd, nie określono stawki VAT dla kraju " %s".
     ErrorNoSocialContributionForSellerCountry=Błąd, brak określonej stopy podatkowej dla kraju '%s'.
     ErrorFailedToSaveFile=Błąd, nie udało się zapisać pliku.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Maksymalna ilość wpisów na stronę
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Nie masz autoryzacji aby to zrobić
     SetDate=Ustaw datę
     SelectDate=Wybierz datę
    @@ -78,10 +78,10 @@ FileRenamed=Nazwa pliku została pomyślnie zmieniona
     FileGenerated=Plik został wygenerowany pomyślnie
     FileSaved=Plik został zapisany pomyślnie
     FileUploaded=Plik został pomyślnie przesłany
    -FileTransferComplete=Plik(i) załadowane pomyślnie
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=Plik(i) usunięte pomyślnie
     FileWasNotUploaded=Wybrano pliku do zamontowaia, ale jeszcze nie wysłano. W tym celu wybierz opcję "dołącz plik".
    -NbOfEntries=Liczba wejść
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Przeczytaj pomoc online (wymaga połączenia z internetem)
     GoToHelpPage=Przeczytaj pomoc
     RecordSaved=Rekord zapisany
    @@ -92,9 +92,9 @@ DolibarrInHttpAuthenticationSoPasswordUseless=Tryb uwierzytelniania Dolibarr jes
     Administrator=Administrator
     Undefined=Niezdefiniowano
     PasswordForgotten=Zapomniałeś hasła?
    -NoAccount=No account?
    +NoAccount=Brak konta?
     SeeAbove=Patrz wyżej
    -HomeArea=Strona Startowa
    +HomeArea=STRONA GŁÓWNA
     LastConnexion=Ostatnie logowanie
     PreviousConnexion=Poprzednie połączenia
     PreviousValue=Poprzednia wartość
    @@ -142,6 +142,7 @@ Closed=Zamknięte
     Closed2=Zamknięte
     NotClosed=Nie zamknięte
     Enabled=Dostępne
    +Enable=Włączone
     Deprecated=Nieaktualne
     Disable=Niedostępne
     Disabled=Niedostępne/Wyłączone
    @@ -153,7 +154,7 @@ Update=Uaktualnić
     Close=Zamknij
     CloseBox=Usuń widget ze swojej tablicy
     Confirm=Potwierdź
    -ConfirmSendCardByMail=Czy na pewno chcesz wysłać treść tej karty pocztą do <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Skasować
     Remove=Usunąć
     Resiliate=Zakończ
    @@ -327,12 +328,12 @@ Copy=Kopiowanie
     Paste=Wklej
     Default=Domyślny
     DefaultValue=Wartość domyślna
    -DefaultValues=Domyślne wartości
    +DefaultValues=Default values/filters/sorting
     Price=Cena
     PriceCurrency=Cena (waluta)
     UnitPrice=Cena jednostkowa
     UnitPriceHT=Cena jednostkowa (netto)
    -UnitPriceHTCurrency=Unit price (net) (currency)
    +UnitPriceHTCurrency=Cena jednostkowa (netto) (waluta)
     UnitPriceTTC=Cena jednostkowa
     PriceU=cen/szt.
     PriceUHT=cen/szt (netto)
    @@ -340,14 +341,14 @@ PriceUHTCurrency=cen/szt (w walucie)
     PriceUTTC=Podatek należny/naliczony
     Amount=Ilość
     AmountInvoice=Kwota faktury
    -AmountInvoiced=Amount invoiced
    +AmountInvoiced=Kwota zafakturowana
     AmountPayment=Kwota płatności
     AmountHTShort=Kwota (netto)
     AmountTTCShort=Kwota (zawierająca VAT)
     AmountHT=Kwota (netto bez podatku)
     AmountTTC=Kwota (zawierająca VAT)
     AmountVAT=Kwota podatku VAT
    -MulticurrencyAlreadyPaid=Zapłacono, oryginalna waluta
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Pozostało do zapłaty, oryginalna waluta
     MulticurrencyPaymentAmount=Kwota płatności, oryginalna waluta
     MulticurrencyAmountHT=Kwota (bez VAT), oryginalna waluta
    @@ -416,7 +417,7 @@ Favorite=Ulubiony
     ShortInfo=Info.
     Ref=Nr ref.
     ExternalRef=Ref. zewnętrzny
    -RefSupplier=Ref. vendor
    +RefSupplier=Symbol dostawcy
     RefPayment=Nr ref. płatności
     CommercialProposalsShort=Oferty komercyjne
     Comment=Komentarz
    @@ -428,7 +429,7 @@ ActionNotApplicable=Nie dotyczy
     ActionRunningNotStarted=By rozpocząć
     ActionRunningShort=W trakcie
     ActionDoneShort=Zakończone
    -ActionUncomplete=Niekompletne
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Firma/Organizacja
     Accountant=Księgowa
    @@ -436,6 +437,7 @@ ContactsForCompany=Kontakty dla tego zamówienia
     ContactsAddressesForCompany=Kontakt/adres dla tej części/zamówienia/
     AddressesForCompany=Adressy dla części trzeciej
     ActionsOnCompany=Działania na temat tego zamówienia
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Informacje o wydarzeniach dla tego uzytkownika
     ActionsOnProduct=Wydarzenia dotyczące tego produktu
     NActionsLate=%s późno
    @@ -453,8 +455,8 @@ Generate=Wygeneruj
     Duration=Czas trwania
     TotalDuration=Łączny czas trwania
     Summary=Podsumowanie
    -DolibarrStateBoard=Statystyki bazy danych
    -DolibarrWorkBoard=Otwórz listę elementów
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=Brak otwartego elementu do przetwarzania
     Available=Dostępny
     NotYetAvailable=Nie są jeszcze dostępne
    @@ -506,7 +508,7 @@ None=Żaden
     NoneF=Żaden
     NoneOrSeveral=Brak lub kilka
     Late=Późno
    -LateDesc=Opóźnienie w celu określenia, czy rekord jest opóźniony, czy nie zależy od konfiguracji. Poproś swojego administratora o zmianę opóźnienia z menu Strona główna - Konfiguracja - Alerty.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Obraz
     Photos=Obrazy
    @@ -530,18 +532,6 @@ September=Wrzesień
     October=Październik
     November=Listopad
     December=Grudzień
    -JanuaryMin=Sty
    -FebruaryMin=Lut
    -MarchMin=Mar
    -AprilMin=Kwi
    -MayMin=Maj
    -JuneMin=Cze
    -JulyMin=Lip
    -AugustMin=Sier
    -SeptemberMin=Wrz
    -OctoberMin=Paź
    -NovemberMin=Lis
    -DecemberMin=Gru
     Month01=styczeń
     Month02=luty
     Month03=marzec
    @@ -646,6 +636,8 @@ SendMail=Wyślij wiadomość email
     EMail=E-mail
     NoEMail=Brak e-mail
     Email=Adres e-mail
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Brak telefonu komórkowego
     Owner=Właściciel
     FollowingConstantsWillBeSubstituted=Kolejna zawartość będzie zastąpiona wartością z korespondencji.
    @@ -677,7 +669,7 @@ NeverReceived=Nigdy nie otrzymała
     Canceled=Anulowany
     YouCanChangeValuesForThisListFromDictionarySetup=Wartości dla tej listy można zmieniać w menu Konfiguracja - Słowniki
     YouCanChangeValuesForThisListFrom=Możesz zmienić wartości dla tej listy z menu %s
    -YouCanSetDefaultValueInModuleSetup=Możesz ustawić domyślną wartość używaną podczas tworzenia nowego rekordu w konfiguracji modułu
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Kolor
     Documents=Związanych plików
     Documents2=Dokumenty
    @@ -703,7 +695,7 @@ DateOfSignature=Data podpisu
     HidePassword=Pokaż polecenie z ukrytym hasłem
     UnHidePassword=Pokaż prawdziwe polecenie z otwartym hasłem
     Root=Root
    -Informations=Informacje
    +Informations=Informacja
     Page=Strona
     Notes=Uwagi
     AddNewLine=Dodaj nowy wiersz
    @@ -716,15 +708,15 @@ Merge=Scalanie/ dzielenie
     DocumentModelStandardPDF=Standardowy szablon PDF
     PrintContentArea=Pokaż stronę do wydruku głównej treści
     MenuManager=Menu menager
    -WarningYouAreInMaintenanceMode=Uwaga, jesteś w trybie konserwacji, więc tylko zalogowani <b>%s</b> mogą używać aplikacji w danym momencie.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Błąd systemu
     CoreErrorMessage=Przepraszamy, napotkano błąd. Skontaktuj się z administratorem w celu sprawdzenia logów lub wyłącz $dolibarr_main_prod=1 aby uzyskać więcej informacji.
     CreditCard=Karta kredytowa
     ValidatePayment=Weryfikacja płatności
     CreditOrDebitCard=Karta debetowa lub kredytowa
     FieldsWithAreMandatory=Pola <b>%s</b>  są obowiązkowe
    -FieldsWithIsForPublic=Pola <b>%s</b> są wyświetlane na publiczną listę członków. Jeśli nie chcesz, odznacz opcję "publiczny".
    -AccordingToGeoIPDatabase=(Zgodnie z konwersji GeoIP)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Linia
     NotSupported=Nie są obsługiwane
     RequiredField=Pole wymagane
    @@ -732,6 +724,8 @@ Result=Wynik
     ToTest=Test
     ValidateBefore=Karty muszą być zatwierdzone przed użyciem tej funkcji
     Visibility=Widoczność
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Prywatny
     Hidden=Ukryty
     Resources=Zasoby
    @@ -750,6 +744,7 @@ LinkTo=Link do
     LinkToProposal=Link do oferty
     LinkToOrder=Link do zamówienia
     LinkToInvoice=Link do faktury
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link do zamówienia dostawcy
     LinkToSupplierProposal=Link do oferty dostawcy
     LinkToSupplierInvoice=Link do faktury dostawcy
    @@ -758,6 +753,7 @@ LinkToIntervention=Link do interwencji
     CreateDraft=Utwórz Szic
     SetToDraft=Wróć do szkicu
     ClickToEdit=Kliknij by edytować
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edytuj w edytorze tekstowym
     EditHTMLSource=Edytuj źródło HTML
    @@ -772,7 +768,7 @@ ByDay=Według dnia
     BySalesRepresentative=Według przedstawiciela handlowego
     LinkedToSpecificUsers=Podpięty do kontaktu współużytkownika
     NoResults=Brak wyników
    -AdminTools=Narzędzia administracyjne
    +AdminTools=Admin Tools
     SystemTools=Narzędzia systemowe
     ModulesSystemTools=Narzędzia modułów
     Test=Test
    @@ -802,7 +798,7 @@ PrintFile=Wydrukuj plik %s
     ShowTransaction=Pokaż wpisy na koncie bankowym
     ShowIntervention=Pokaż interwencję
     ShowContract=Pokaż umowę
    -GoIntoSetupToChangeLogo=Wejdź w Strona główna - Ustawienia- Firma by zmienić logo lub przejdź do Strona główna- Ustawienia - Wyświetl do ukrycia.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Zabraniać
     Denied=Zabroniony
     ListOf=Lista %s
    @@ -818,12 +814,12 @@ Sincerely=Z poważaniem
     DeleteLine=Usuń linię
     ConfirmDeleteLine=Czy jesteś pewien, że chcesz usunąć tą linię?
     NoPDFAvailableForDocGenAmongChecked=Na potrzeby generowania dokumentów nie było dostępnych plików PDF
    -TooManyRecordForMassAction=Zbyt wiele rekordów wybranych do masowej akcji. Czynność jest ograniczona do listy %s rekordów
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=Nie wybrano wpisu
     MassFilesArea=Obszar plików zbudowanych masowo
     ShowTempMassFilesArea=Wyświetl obszar plików zbudowanych masowo
    -ConfirmMassDeletion=Zbiorcze potwierdzenie usunięcia
    -ConfirmMassDeletionQuestion=Jesteś pewnien, że chcesz usunąć %s zaznaczonych rekodów?
    +ConfirmMassDeletion=Masowe usuwanie konformacji
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Powiązane obiekty
     ClassifyBilled=Oznacz jako zafakturowana
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Kalendarz
     GroupBy=Grupuj według
     ViewFlatList=Zobacz płaską listę
     RemoveString=Usuń ciąg '%s'
    -SomeTranslationAreUncomplete=Co poniektóre języki mogą być częściowo przetłumaczone bądź mogą zawierać błędy. Jeśli zauważysz błędy w tłumaczeniu, możesz je naprawić rejestrując się na <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Bezpośredni link do pobierania (publiczny / zewnętrzny)
     DirectDownloadInternalLink=Bezpośredni link do pobrania (musisz się zalogować i potrzebujesz uprawnień)
     Download=Pobierz
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Ustaw walutę
     BulkActions=Masowe działania
     ClickToShowHelp=Kliknij, aby wyświetlić pomoc etykiety
    -WebSite=Strona WWW
    +WebSite=Website
     WebSites=Strony internetowe
    -WebSiteAccounts=Web site accounts
    +WebSiteAccounts=Website accounts
     ExpenseReport=Raport kosztów
     ExpenseReports=Raporty kosztów
     HR=Dział personalny
     HRAndBank=HR i Bank
     AutomaticallyCalculated=Automatycznie przeliczone
     TitleSetToDraft=Powróć do wersji roboczej
    -ConfirmSetToDraft=Jesteś pewien, że chcesz powrócić do wersji roboczej?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=ID importu
     Events=Wydarzenia
    -EMailTemplates=Szablony wiadomości e-mail
    -FileNotShared=Plik nie jest udostępniany na zewnątrz
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Projekt
     Projects=Projekty
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Uprawnienia
     LineNb=Linia nr
     IncotermLabel=Formuły handlowe
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Poniedziałek
     Tuesday=Wtorek
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interwencje
     SearchIntoContracts=Kontrakty
     SearchIntoCustomerShipments=Wysyłki klienta
     SearchIntoExpenseReports=Zestawienia wydatków
    -SearchIntoLeaves=Urlopy
    +SearchIntoLeaves=Leave
     CommentLink=Komentarze
     NbComments=Ilość komentarzy
     CommentPage=Miejsce na komentarze
     CommentAdded=Komentarz dodany
     CommentDeleted=Komentarz usunięty
     Everybody=Wszyscy
    -PayedBy=Opłacone przez
    -PayedTo=Opłacone do
    +PayedBy=Płacone przez
    +PayedTo=Paid to
     Monthly=Miesięcznie
     Quarterly=Kwartalnie
     Annual=Rocznie
    @@ -945,6 +950,8 @@ LocalAndRemote=Lokalnie i zdalnie
     KeyboardShortcut=Skróty klawiaturowe
     AssignedTo=Przypisany do
     Deletedraft=Usuń szkic
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=Aktualnie korzystasz z trybu "sandbox" %s
    +Inventory=Inwentaryzacja
    diff --git a/htdocs/langs/pl_PL/other.lang b/htdocs/langs/pl_PL/other.lang
    index 0865c2532da..9dc9f35266f 100644
    --- a/htdocs/langs/pl_PL/other.lang
    +++ b/htdocs/langs/pl_PL/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Kod zabezpieczający
     NumberingShort=N°
     Tools=Narzędzia
     TMenuTools=Narzędzia
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Urodziny
     BirthdayDate=Data urodzin
     DateToBirth=Data urodzenia
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Wiadomość dla zatwierdzonych stron. Powrót do płatności
     MessageKO=Wiadomość dla odwołanych stron. Powrót do płatności
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Data kolejnej faktury (przed wygenerowaniem)
     DateNextInvoiceAfterGen=Data następnej faktury (po wygenerowaniu)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Interwencja zatwierdzona
    -Notify_FICHINTER_SENTBYMAIL=Interwencja wysłana za pośrednictwem wiadomości email
     Notify_ORDER_VALIDATE=Zamówienie klienta potwierdzone
     Notify_ORDER_SENTBYMAIL=Zamówienie klienta wysyłane za pośrednictwem wiadomości email
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Zamówienie dostawcy wysłane za pośrednictwem wiadomości email
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Zamówienie dostawcy zarejestrowane
     Notify_ORDER_SUPPLIER_APPROVE=Zamówienie dostawcy zaakceptowane
     Notify_ORDER_SUPPLIER_REFUSE=Zamówienie dostawcy odrzucone
     Notify_PROPAL_VALIDATE=Oferta klienta potwierdzona
    -Notify_PROPAL_CLOSE_SIGNED=Zamknięte podpisane PROPAL klienta
    -Notify_PROPAL_CLOSE_REFUSED=PROPAL klienta zamknięte odmówił
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Propozycja handlowa wysłana za pośrednictwem wiadomości email
     Notify_WITHDRAW_TRANSMIT=Wycofanie transmisji
     Notify_WITHDRAW_CREDIT=Wycofanie kredyt
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Kontrahent utworzony
     Notify_COMPANY_SENTBYMAIL=Maile wysyłane z karty przez osoby trzecie
     Notify_BILL_VALIDATE=Faktura klienta zatwierdzona
     Notify_BILL_UNVALIDATE=Faktura klienta nie- zwalidowane
    -Notify_BILL_PAYED=Faktura klienta zapłacona
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Faktura klienta anulowana
     Notify_BILL_SENTBYMAIL=Faktura klienta wysyłana za pośrednictwem wiadomości email
     Notify_BILL_SUPPLIER_VALIDATE=Faktura dostawcy zatwierdzona
    -Notify_BILL_SUPPLIER_PAYED=Faktura dostawcy zapłacona
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Faktura dostawcy wysłana za pośrednictwem wiadomości email
     Notify_BILL_SUPPLIER_CANCELED=Dostawca anulowania faktury
     Notify_CONTRACT_VALIDATE=Umowa zatwierdzona
     Notify_FICHEINTER_VALIDATE=Interwencja zatwierdzona
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Interwencja wysłana za pośrednictwem wiadomości email
     Notify_SHIPPING_VALIDATE=Wysyłka zatwierdzona
     Notify_SHIPPING_SENTBYMAIL=Wysyłka wysłane pocztą
     Notify_MEMBER_VALIDATE=Członek zatwierdzony
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Stworzenie projektu
     Notify_TASK_CREATE=Zadanie utworzone
     Notify_TASK_MODIFY=Zadanie zmodyfikowane
     Notify_TASK_DELETE=Zadanie usunięte
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Zobacz konfigurację modułu% s
     NbOfAttachedFiles=Liczba załączonych plików / dokumentów
     TotalSizeOfAttachedFiles=Całkowita wielkość załączonych plików / dokumentów
     MaxSize=Maksymalny rozmiar
     AttachANewFile=Załącz nowy plik / dokument
     LinkedObject=Związany obiektu
    -NbOfActiveNotifications=Liczba zgłoszeń (nb e-maili odbiorców)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof ID %s</b> jest informacji w zależności od trzeciej kraju. <br> Na przykład, dla <b>kraju, %s,</b> jest to <b>kod %s.</b>
     DolibarrDemo=Demo Dolibarr ERP/CRM
     StatsByNumberOfUnits=Statystyki dla sum ilości produktów / usług
    -StatsByNumberOfEntities=Statystyki w ilość powiązanych wpisów (ilość faktur, zamówień...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Ilość zamówień klientów
     NumberOfCustomerInvoices=Ilość faktur klientów
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=Nowa interwencja %s została przypisana do ciebie.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Interwencja %s zatwierdzona
     EMailTextInvoiceValidated=Faktura %s została zatwierdzona
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Forslaget %s har blitt validert.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Zamówienie %s zostało zatwierdzone
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Zamówienie %s zostało zaakceptowane przez %s.
     EMailTextOrderRefused=Zamówienie %s zostało odrzucone.
     EMailTextOrderRefusedBy=Zamówienie %s zostało odrzucone przez %s.
     EMailTextExpeditionValidated=Wysyłka %s została zatwierdzone.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Przywóz zestaw danych
     DolibarrNotification=Automatyczne powiadomienie
     ResizeDesc=Skriv inn ny <b>bredde</b> eller ny høyde. Forhold vil bli holdt under resizing ...
    @@ -204,7 +214,7 @@ NewLength=Nowa szerokość
     NewHeight=Nowa waga
     NewSizeAfterCropping=Nowy rozmiar po przycięciu
     DefineNewAreaToPick=Definer nytt område på bildet for å plukke (venstre klikk på bildet og dra til du kommer til motsatt hjørne)
    -CurrentInformationOnImage=To narzędzie zostało zaprojektowane aby pomóc ci w zmianie wielkości lub przycięciu obrazu.
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Edytor obrazów
     YouReceiveMailBecauseOfNotification=Du mottar denne meldingen fordi din e-post har blitt lagt til listen over mål for å bli informert om spesielle hendelser i %s programvare av %s.
     YouReceiveMailBecauseOfNotification2=Denne hendelsen er følgende:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Twoje hasło musi składać się z <strong>%s<
     YourPasswordHasBeenReset=Twoje hasło zostało zresetowane pomyślnie
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Wywóz obszarze
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=Link strony
     WEBSITE_TITLE=Tytuł
     WEBSITE_DESCRIPTION=Opis
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Słowa kluczowe
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/pl_PL/paybox.lang b/htdocs/langs/pl_PL/paybox.lang
    index da58e79360b..a7706113fa9 100644
    --- a/htdocs/langs/pl_PL/paybox.lang
    +++ b/htdocs/langs/pl_PL/paybox.lang
    @@ -3,14 +3,14 @@ PayBoxSetup=PayBox konfiguracji modułu
     PayBoxDesc=Moduł ten oferują strony, umożliwiające płatności na <a href="http://www.paybox.com" target="_blank">Paybox</a> przez klientów. Może to być wykorzystane do swobodnej zapłaty lub płatności w szczególności obiektu Dolibara np za faktury, zamówienia, ...
     FollowingUrlAreAvailableToMakePayments=Nastepujące adresy są dostępne dla klienta, by mógł dokonać płatności za faktury zamówienia
     PaymentForm=Forma płatności
    -WelcomeOnPaymentPage=Witamy w naszej usłudze płatności online
    +WelcomeOnPaymentPage=Witaj w naszym serwisie płatności online
     ThisScreenAllowsYouToPay=Ten ekran pozwala na dokonanie płatności on-line do %s.
     ThisIsInformationOnPayment=To jest informacja o płatności do zrobienia
     ToComplete=Aby zakończyć
     YourEMail=E-mail by otrzymać potwierdzenie zapłaty
     Creditor=Wierzyciel
     PaymentCode=Kod płatności
    -PayBoxDoPayment=Pay with Credit or Debit Card (Paybox)
    +PayBoxDoPayment=Zapłać kartą kredytową lub debetową (Paybox)
     ToPay=Wykonaj płatność
     YouWillBeRedirectedOnPayBox=Zostaniesz przekierowany na zabezpieczoną stronę Paybox bys mógł podać informację z karty kredytowej.
     Continue=Dalej
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL zaoferowania %s płatności online int
     ToOfferALinkForOnlinePaymentOnContractLine=URL zaoferowania płatności online %s interfejsu użytkownika do umowy
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL zaoferowania płatności online %s interfejsu użytkownika w celu utworzenia dowolnej kwoty.
     ToOfferALinkForOnlinePaymentOnMemberSubscription=Adres URL do zaoferowania płatności online %s interfejs użytkownika jest członkiem subskrypcji
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Możesz również dodać parametr <b>&</b> url <b>= <i>wartość</i> tagu</b> do żadnej z tych adresów URL (wymagany tylko dla bezpłatnych), aby dodać swój komentarz płatności tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Skonfiguruj PayBox url <b>z %s</b> do opłay stworzonych automatycznie, gdy są zatwierdzone przez paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Ustaw swój Paybox z linkiem <b>%s</b> żeby utworzyć płatność automatycznie gdy zatwierdzone przez Paybox 
     YourPaymentHasBeenRecorded=Ta strona potwierdza, że ​​płatność została wprowadzona. Dziękuję.
    -YourPaymentHasNotBeenRecorded=Twoja płatność nie została wprowadzona i transakcja została anulowana. Dziękuję.
    +YourPaymentHasNotBeenRecorded=Twoja płatność nie została zatwierdzona i transakcja została anulowana. Dziękujemy
     AccountParameter=Parametry konta
     UsageParameter=Parametry serwera
     InformationToFindParameters=Pomóż znaleźć %s informacje o koncie
    diff --git a/htdocs/langs/pl_PL/projects.lang b/htdocs/langs/pl_PL/projects.lang
    index 2d656d757e8..f9eccfd9a2e 100644
    --- a/htdocs/langs/pl_PL/projects.lang
    +++ b/htdocs/langs/pl_PL/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Czy usunąć ten projekt?
     ConfirmDeleteATask=Czy usunąć to zadanie?
     OpenedProjects=Otwarte projekty
     OpenedTasks=Otwarte zadania
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Pokaż projekt
     ShowTask=Pokaż zadanie
     SetProject=Ustaw projekt
     NoProject=Żadny projekt niezdefiniowany lub nie jest twoją własnością
    -NbOfProjects=Liczba projektów
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Czas spędzony
     TimeSpentByYou=Czas spędzony przez Ciebie
     TimeSpentByUser=Czas spędzony przez użytkownika
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Idź do listy zadań
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Lista ofert handlowcych związanych z projektem
    -ListOrdersAssociatedProject=Lista zamówień klientów powiązanych z projektem
    -ListInvoicesAssociatedProject=Lista faktur klientów powiązanych z projektem
    -ListPredefinedInvoicesAssociatedProject=Lista szablonów faktur klientów powiązanych z projektem
    -ListSupplierOrdersAssociatedProject=Lista zamówień dostawców powiązanych z projektem
    -ListSupplierInvoicesAssociatedProject=Lista faktur dostawców powiązanych z projektem
    -ListContractAssociatedProject=Wykaz umów związanych z projektem
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Wykaz interwencji związanych z projektem
    -ListExpenseReportsAssociatedProject=Lista raportów o wydatkach związanych z projektem
    -ListDonationsAssociatedProject=Lista dotacji związanych z projektem
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Wykaz działań związanych z projektem
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=Lista czasu poświęconego na zadania w projekcie
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Dzisiejsza aktywnośc w projekcie
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Powiązane z innymą częścią trzecią
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Czas spędzony jest pusty
     ThisWillAlsoRemoveTasks=To działanie także usunie wszystkie zadania projektu (<b>%s</b> zadania w tej chwili) i wszystkie dane wejścia czasu spędzonego.
    -IfNeedToUseOhterObjectKeepEmpty=Jeżeli pewne obiekty (faktura, zamówienie, ...), należące do innej części trzeciej, muszą być związane z projektem tworzenia, zachowaj to puste by projekt był wielowątkowy -(wiele części trzecich).
    +IfNeedToUseOtherObjectKeepEmpty=Jeżeli pewne obiekty (faktura, zamówienie, ...), należące do innej części trzeciej, muszą być związane z projektem tworzenia, zachowaj to puste by projekt był wielowątkowy -(wiele części trzecich).
     CloneProject=Sklonuj projekt
     CloneTasks=Sklonuj zadania
     CloneContacts=Sklonuj kontakty 
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Projekt %s zmodyfikowany
     TaskCreatedInDolibarr=Zadanie %s utworzono
     TaskModifiedInDolibarr=Zadań %s zmodyfikowano
     TaskDeletedInDolibarr=Zadań %s usunięto
    -OpportunityStatus=Stan okazja
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Kwota okazja
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. ilość
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Współpracownik
     SelectElement=Wybierz element
     AddElement=Link do elementu
     # Documents models
    -DocumentModelBeluga=Szablon projektu na przegląd połączonych obiektów
    -DocumentModelBaleine=Szablon projektu raportu dla zadań
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planowany nakład pracy
     PlannedWorkloadShort=Nakład pracy
     ProjectReferers=Powiązane elementy
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projekty z tym użytkownika jako kontakt
     TasksWithThisUserAsContact=Zadania dopisane do tego użytkownika
     ResourceNotAssignedToProject=Nie przypisane do projektu
     ResourceNotAssignedToTheTask=Nie dopisane do zadania
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Przypisz zadanie do mnie
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Przydzielać
     ProjectOverview=Przegląd
    -ManageTasks=Użyj projektów do śledzenia zadań i czasu
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Użyj projekty śledzić pozostawienie danych kontaktowych / opportinuties
    -ProjectNbProjectByMonth=Liczba stworzynych projektów w miesiącu
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Ilość możliwości w danym miesiącu
    -ProjectWeightedOppAmountOfProjectsByMonth=Ważona ilość szans na miesiąc
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statystyki dotyczące projektów / przewodów
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Zadanie przypisanie. Wprowadzenie czasu na zadanie powinno być możliwe.
     IdTaskTime=Id razem zadaniem
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Szanse Całkowita ilość
    -OpportunityPonderatedAmount=Ilość możliwości ważone
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Poszukiwania
     OppStatusQUAL=Kwalifikacja
     OppStatusPROPO=Wniosek
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/pl_PL/propal.lang b/htdocs/langs/pl_PL/propal.lang
    index 55294b93689..0c7aa55519b 100644
    --- a/htdocs/langs/pl_PL/propal.lang
    +++ b/htdocs/langs/pl_PL/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Podpisano (do rachunku)
     PropalStatusNotSigned=Nie podpisały (zamknięte)
     PropalStatusBilled=zapowiadane
     PropalStatusDraftShort=Szkic
    -PropalStatusValidatedShort=Zatwierdzony
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Zamknięte
     PropalStatusSignedShort=Podpisany
     PropalStatusNotSignedShort=Niepodpisany
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s nie znaleziono
     AddToDraftProposals=Dodaj do projektu oferty
     NoDraftProposals=Brak projektu oferty
     CopyPropalFrom=Stwórz ofertę handlową poprzez skopiowanie istniejącej oferty
    -CreateEmptyPropal=Utwórz pustą ofertę handlową lub z wykazu produktów / usług
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Domyślny czas ważności wniosku handlowych (w dniach)
    -UseCustomerContactAsPropalRecipientIfExist=Użyj klienta adres, jeśli określone zamiast trzeciej adres wniosku adres odbiorcy
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Powiel propozycję handlową
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=kontakt klienta w ślad za wniosek
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Kompletny wniosek modelu (logo. ..)
    +DocModelCyanDescription=Kompletny wniosek modelu (logo. ..)
     DefaultModelPropalCreate=Domyślny model kreacji.
     DefaultModelPropalToBill=Domyślny szablon po zamknięciu wniosku biznesowego ( do zafakturowania)
     DefaultModelPropalClosed=Domyślny szablon po zamknięciu projektu biznesowego ( weryfikowane )
    diff --git a/htdocs/langs/pl_PL/website.lang b/htdocs/langs/pl_PL/website.lang
    index a5d18f9bc77..a5265f03113 100644
    --- a/htdocs/langs/pl_PL/website.lang
    +++ b/htdocs/langs/pl_PL/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kod
    -WebsiteSetupDesc=Stwórz tyle stron ile potrzebujesz. Następnie przejść do menu Strony WWW by je edytować
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Skasuj stronę
    -ConfirmDeleteWebsite=Jesteś pewny że chcesz skasować stronę? Całą jej zawartość zostanie usunięta.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Nazwa strony
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL zewnętrznego pliku CSS
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Biblioteka mediów
    -EditCss=Edytuj styl / CSS lub nagłówek HTML
    +EditCss=Edit website properties
     EditMenu=Edytuj Menu
     EditMedias=Edit medias
    -EditPageMeta=Edytuj koniec
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Dodaj stronę
     HomePage=Strona główna
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Podgląd twojej strony <strong>%s</strong> nie jest jeszcze dostępny. Musisz najpierw dodać stronę.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=Zobacz stronę w nowej zakładce
     SetAsHomePage=Ustaw jako stronę domową
     RealURL=Prawdziwy link
     ViewWebsiteInProduction=Zobacz stronę używając linków ze strony głównej
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Czytać
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=Brak stron
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Duplikuj stronę
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/pt_BR/accountancy.lang b/htdocs/langs/pt_BR/accountancy.lang
    index 0a627492c4e..ee3b5d298d8 100644
    --- a/htdocs/langs/pt_BR/accountancy.lang
    +++ b/htdocs/langs/pt_BR/accountancy.lang
    @@ -25,9 +25,7 @@ JournalizationInLedgerStatus=Situação do registro do diário
     AlreadyInGeneralLedger=Já foram Livros de registro em livros contabilísticos
     NotYetInGeneralLedger=Ainda não publicado em livros contábeis
     GroupIsEmptyCheckSetup=O grupo está vazio, verifique a configuração do grupo de contabilidade personalizado
    -DetailByAccount=Mostrar detalhes por conta
     AccountWithNonZeroValues=Contas com valores não zerados
    -ListOfAccounts=Lista de contas
     MainAccountForCustomersNotDefined=Conta contábil principal para clientes não definidos na configuração
     MainAccountForUsersNotDefined=Conta contábil principal para usuários não definidos na configuração
     MainAccountForVatPaymentNotDefined=Conta contábil principal para o pagamento do IVA não definido na configuração
    @@ -107,13 +105,10 @@ ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Conta contábil padrão para os produtos vendido
     ACCOUNTING_SERVICE_BUY_ACCOUNT=Conta contábil padrão para os serviços comprados (se não for definido na listagem de serviços)
     ACCOUNTING_SERVICE_SOLD_ACCOUNT=Conta contábil padrão para os serviços vendidos (se não for definido na listagem de serviços)
     LabelAccount=Conta rótulo
    -LabelOperation=Operação de etiqueta
     Sens=Significado
     TransactionNumShort=Nº da transação
     GroupByAccountAccounting=Agrupar pela conta da Contabilidade
     AccountingAccountGroupsDesc=Você pode definir aqui alguns grupos de contabilidade. Eles serão usados ​​para relatórios contábeis personalizados.
    -ByPredefinedAccountGroups=Por grupos predefinidos
    -ByPersonalizedAccountGroups=Por grupos personalizados
     NotMatch=Não Definido
     DeleteMvt=Excluir linha do razão
     DelYear=Ano a ser deletado
    @@ -131,7 +126,6 @@ ErrorDebitCredit=Débito e Crédito não pode ter valor preenchido ao mesmo temp
     AddCompteFromBK=Adicionar contas contábeis ao grupo
     ListAccounts=Lista das contas contábeis
     UnknownAccountForThirdparty=Conta de terceiros desconhecida. Usaremos %s
    -UnknownAccountForThirdpartyBlocking=Conta de terceiros desconhecida. Erro de bloqueio
     UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Conta de terceiros desconhecida e conta de espera não definida. Erro de bloqueio
     Pcgtype=Plano de Contas
     Pcgsubtype=Subgrupo de Contas
    diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang
    index 393dc1328a1..580099e2a95 100644
    --- a/htdocs/langs/pt_BR/admin.lang
    +++ b/htdocs/langs/pt_BR/admin.lang
    @@ -7,9 +7,7 @@ VersionDevelopment=Versão de Desenvolvimento
     VersionUnknown=Versão Desconhecida
     VersionRecommanded=Versão Recomendada
     FileCheck=Verificador da integridade dos arquivos
    -FileCheckDesc=Esta ferramenta lhe permite verificar a integridade dos arquivos e da configuração do seu aplicativo, comparando cada arquivo com os oficiais. Os valores de algumas constantes da configuração também podem ser verificados. Você pode usar esta ferramenta para detetar se alguns arquivos foram modificados por um 'hacker', por exemplo.
     FileIntegrityIsStrictlyConformedWithReference=A integridade dos arquivos está estritamente de acordo com a referência.
    -FileIntegrityIsOkButFilesWereAdded=A verificação da integridade dos arquivos passou, entretanto alguns novos arquivos foram adicionados.
     FileIntegritySomeFilesWereRemovedOrModified=A verificação da integridade dos arquivos falhou. Alguns arquivos foram modificados, removidos ou adicionados.
     GlobalChecksum=Verificação global
     MakeIntegrityAnalysisFrom=Realizar a análise da integridade dos arquivos do aplicativo em
    @@ -27,14 +25,10 @@ SessionSaveHandler=Manipulador para salvar sessão
     SessionSavePath=Caminho para salvar sessão
     PurgeSessions=Purgar Sessão
     ConfirmPurgeSessions=Você tem certeza que quer remover toas as sessões? Isto ira desconectar todos os usuários (exceto você)
    -NoSessionListWithThisHandler=Salvar manipulador de sessão configurado no PHP não permite listar todas as sessões em execução.
     LockNewSessions=Bloquear Novas Sessões
    -ConfirmLockNewSessions=Restringir qualquer nova conexão Dolibarr para si mesmo. (Apenas usuário <b>%s</b> será capaz de se conectar depois)
     UnlockNewSessions=Remover Bloqueio de Conexão
     YourSession=Sua Sessão
    -Sessions=Sessões de Usuários
     WebUserGroup=Servidor Web para usuário/grupo
    -NoSessionFound=Seu PHP parece não permitir listar as sessões ativas. Diretório usado para salvar sessões (<b>%s</ b>) pode ser protegido (por exemplo, pelas permissões do sistema operacional ou por diretiva PHP "open_basedir").
     DBStoringCharset=Charset base de dados para armazenamento de dados (Database charset to store data)
     DBSortingCharset=Charset base de dados para classificar os dados (Database charset to sort data)
     ClientCharset=Conjunto de clientes
    @@ -46,7 +40,6 @@ InternalUser=Usuário Interno
     ExternalUser=Usuário Externo
     InternalUsers=Usuários Internos
     ExternalUsers=Usuários Externos
    -SetupArea=Configurações da Área
     UploadNewTemplate=Carregar novo(s) tema(s)
     FormToTestFileUploadForm=Formulário para teste de upload de arquivo
     IfModuleEnabled=OBS: Sim só é eficaz se o módulo <b>%s</b> estiver ativado
    @@ -63,8 +56,6 @@ ErrorCodeCantContainZero=A variável não pode conter valor "0" (zero)
     DisableJavascript=Desativar as funções Javascript e Ajax
     UseSearchToSelectCompanyTooltip=Além disso, se você tem um grande número de terceiros (> 100 000), você pode aumentar a velocidade, definindo COMPANY_DONOTSEARCH_ANYWHERE constante a 1 em Setup-> Outro. Busca, então, ser limitada até o início da string.
     UseSearchToSelectContactTooltip=Além disso, se você tem um grande número de terceiros (> 100 000), você pode aumentar a velocidade, definindo CONTACT_DONOTSEARCH_ANYWHERE constante a 1 em Setup-> Outro. Busca, então, ser limitada até o início da string.
    -DelaiedFullListToSelectCompany=Aguarda você pressionar uma tecla antes de carregar o conteúdo de uma lista de combos de terceiros (isto pode melhorar o desempenho se você tiver um grande número de terceiros, mas é menos conveniente)
    -DelaiedFullListToSelectContact=Aguarda você pressionar uma tecla antes de carregar o conteúdo de uma lista de combos de contatos (isto pode melhorar o desempenho se você tiver um grande número de contatos, mas é menos conveniente)
     NumberOfKeyToSearch='Nbr' dos caracteres para 'trigger search': %s
     NotAvailableWhenAjaxDisabled=Indisponível quando o Ajax esta desativado
     AllowToSelectProjectFromOtherCompany=No documento de um terceiro, pode-se escolher um projeto conectado a outro terceiro
    @@ -74,7 +65,6 @@ PreviewNotAvailable=Previsão Indisponível
     ThemeCurrentlyActive=Tema Ativo
     CurrentTimeZone=Timezone PHP (do servidor apache)
     MySQLTimeZone=Timezone Mysql (do servidor sql)
    -TZHasNoEffect=A data é armazenada e retornada pelo servidor sql se eles manterem a string apresentada. A timezone é resultado somente se for usado a função UNIX_TIMESTAMP (Não deve ser usada pelo Dolibarr, se não a database TZ não terá efeito, mesmo se tivesse trocada depois da data ter entrado).
     NextValue=Próximo Valor
     NextValueForInvoices=Próximo Valor (Faturas)
     NextValueForCreditNotes=Próximo Valor (Notas de Crédito)
    @@ -98,20 +88,16 @@ DetailPosition=Define as posições do menu em ordem numérica
     NotConfigured=Módulo/Aplicativo não configurado
     SetupShort=Conf.
     OtherOptions=Outras Opções
    -OtherSetup=Outras Configurações
     CurrentValueSeparatorThousand=Separador de milhar
     IdModule=Módulo ID
     IdPermissions=Permissão ID
     LanguageBrowserParameter=Parâmetro de Linguagem %s
    -LocalisationDolibarrParameters=Parâmetros de Localização
     ClientTZ=Fuso Horário do cliente (usuário)
     ClientHour=Horário do Cliente (usuário)
     OSTZ=Fuso Horário do OS do Servidor
     PHPTZ=Fuso Horário do servidor PHP
     CurrentHour=Horário PHP (servidor)
     CurrentSessionTimeOut=A sessão expirou
    -YouCanEditPHPTZ=Para definir um fuso horário diferente no PHP (não exigido), você pode tentar adicionar um arquivo .htaccess com uma linha como esta : "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Atenção, ao contrário de outras telas, o horário nesta página não está no seu fuso horário local, mas no fuso horário do servidor.
     MaxNbOfLinesForBoxes=Número máximo de linahs para os widgets
     AllWidgetsWereEnabled=Todos as ferramentas disponíveis estão habilitadas
     PositionByDefault=Posição Padrão(default)
    @@ -165,23 +151,16 @@ IgnoreDuplicateRecords=Ignorar erros de registro duplicado (INSERT IGNORE)
     AutoDetectLang=Autodetecção de idioma pelo navegador
     FeatureDisabledInDemo=Algumas funções desabilitada no Demo
     FeatureAvailableOnlyOnStable=Funcionalidade somente disponível em versões estáveis oficiais
    -BoxesDesc=Os widgets são componentes que exibem alguma informação que você pode adicionar para personalizar algumas páginas. Você pode escolher entre a exibição ou não do widget pela seleção da página de destino e clicando em "Ativar", ou clicando na lixeira para desabilitá-lo.
     OnlyActiveElementsAreShown=Somente elementos de <a href="%s">módulos ativos</a> são mostrado.
    -ModulesDesc=Os módulos do Dolibarr definem qual aplicativo/função está habilitado no programa. Alguns aplicativos/módulos requerem permissões que você deve garantir aos usuários, após ativá-los. Clique no botão on/off para habilitar um módulo/aplicativo.
     ModulesMarketPlaceDesc=Você pode encontrar mais módulos para download em sites externos na Internet ...
    -ModulesDeployDesc=Se as permissões no seu sistema de arquivos permitirem isso, você pode usar esta ferramenta para lançar um módulo externo. O módulo será então visível na aba <strong>%s</strong>.
     ModulesMarketPlaces=Encontrar app/módulos externos
     ModulesDevelopYourModule=Desenvolver seus próprios app/módulos
    -ModulesDevelopDesc=Você pode desenvolver ou encontrar um parceiro que faça isso, o seu módulo personalizado
    -DOLISTOREdescriptionLong=Ao invés de trocar para o website em <a href="https://www.dolistore.com">www.dolistore.com</a> para encontrar um módulo externo, você pode usar esta ferramenta integrada que realizará a busca na loja virtual externa pra você (pode ser lento, precisa de um acesso à Internet)...
     FreeModule=Grátis
     NotCompatible=Este módulo não parece ser compatível com o seu Dolibarr %s (Mín %s - Máx %s).
     CompatibleAfterUpdate=Este módulo exige uma atualização do seu Dolibarr %s (Mín %s - Máx %s).
     SeeInMarkerPlace=Ver na Loja Virtual
     GoModuleSetupArea=Para lançar/instalar um novo módulo, vá para a área de configuração do Módulo em <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, o site oficial para baixar módulos externos.
    -DoliPartnersDesc=Lista das empresas que realizam o serviço de desenvolvimento de módulos ou funcionalidades personalizadas (Nota: qualquer pessoa com experiência na programação em PHP pode realizar o desenvolvimento personalizado para um projeto com código fonte aberto)
    -WebSiteDesc=Sites de referência para encontrar mais módulos ...
     DevelopYourModuleDesc=Algumas soluções para o desenvolvimento do seu próprio módulo...
     URL=Site
     BoxesAvailable=Widgets disponíveis
    @@ -196,7 +175,6 @@ DoNotStoreClearPassword=Não armazenar senhas em branco no banco de dados, somen
     MainDbPasswordFileConfEncrypted=Criptografar senha do banco de dados no arquivo conf.php
     InstrucToEncodePass=Para ter a senha codificada no arquivo <b>conf.php</b>, substitua a linha <br><b>$dolibarr_main_db_pass="..."</b><br>por<br><b>$dolibarr_main_db_pass="crypted:%s"</b>
     InstrucToClearPass=Para ter a senha não codificada(limpa) no arquivo <b>conf.php</b>, substitua a linha <br><b>$dolibarr_main_db_pass="crypted:..."</b><br>por<br><b>$dolibarr_main_db_pass="%s"</b>
    -ProtectAndEncryptPdfFiles=Criptografar a geração de arquivos em PDF (NÃO RECOMENDADO, póis pode deixar instável a geração de PDFs massivos)
     ProtectAndEncryptPdfFilesDesc=Proteção de um documento PDF mantém ele disponível para ler e imprimir com qualquer navegador PDF. No entanto, edição e cópia não é possível. Observe que a utilização deste recurso faz com que a construção de um PDF global mesclado não funcione.
     Feature=Destaque
     Developpers=Desenvolvedores/Contribuidores
    @@ -210,35 +188,16 @@ ReferencedPreferredPartners=Parceiro preferido
     SocialNetworks=Redes Sociais
     ForDocumentationSeeWiki=Documentos para usuários e desenvolvedores (Doc, FAQs...), <br>de uma olhada no Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Para outras questões/ajudas, você pode usar o forum do Dolibar:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=Essa área pode ajudar você a conseguir serviço de suporte no Dolibarr.
    -HelpCenterDesc2=Uma parte desse serviço está disponivel em <b>inglês</b>.
     CurrentMenuHandler=Gestor atual de menu
     MeasuringUnit=Unidade de medida
     FontSize=Tamanho da fonte
     Emails=E-mails
     EMailsSetup=Configuração dos e-mails
    -EMailsDesc=Esta página permite que você sobrescreva os seus parâmetros PHP para o envio de e-mails. Na maioria dos casos no SO Unix/Linux, a sua configuração do PHP está correta e estes parâmetros são inúteis.
     EmailSenderProfiles=Perfis dos e-mails de envio
    -MAIN_MAIL_SMTP_PORT=Porta SMTP/SMTPS (Como padrão em php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=Servidor SMTP/SMTPS (Como padrão em php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Porta SMTP/SMTPS (Não definido no PHP nos sistemas tipo Unix)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Servidor SMTP/SMTPS (Não definido no PHP nos sistemas tipo Unix)
    -MAIN_MAIL_EMAIL_FROM=E-mail de envio para os e-mails automáticos (Como padrão no php.ini: <b>%s</b>)
    -MAIN_MAIL_AUTOCOPY_TO=Enviar sistematicamente uma cópia carbono oculta de todos os e-mails enviados para
    -MAIN_DISABLE_ALL_MAILS=Desabilitar todos os envios de e-mail (com o objetivo de teste ou demonstração)
     MAIN_MAIL_FORCE_SENDTO=Envie todos os e-mails para (em vez de destinatários reais, para fins de teste)
    -MAIN_MAIL_SENDMODE=Método usado para o envio de E-Mails
    -MAIN_MAIL_SMTPS_ID=ID SMTP se a autentificação é exigida
    -MAIN_MAIL_SMTPS_PW=Senha SMTP se a autenticação é exigida
    -MAIN_MAIL_EMAIL_TLS=Usar criptografia TLS (SSL)
    -MAIN_MAIL_EMAIL_STARTTLS=Use criptografia TLS (STARTTLS)
    -MAIN_DISABLE_ALL_SMS=Desabilitar todos envios de SMS (Para testes ou demo)
     MAIN_SMS_SENDMODE=Método usado para enviar SMS
    -MAIN_MAIL_SMS_FROM=Número de telefone padrão para o envio de SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=E-mail de envio padrão para envios manuais (E-mail do usuário ou e-mail da Companhia)
     UserEmail=E-mail do usuário
     FeatureNotAvailableOnLinux=Função não disponível para sistemas tipo Unix. Teste de envio local.
    -SubmitTranslation=Se a tradução deste idioma não estiver completa ou se encontrar erros, você poderá corrigir editando os arquivos no diretório <b>langs/%s</b> e submeter sua alteração em www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=Se a tradução para este idioma não está completa ou você encontrar erros, você pode corrigir pela edição dos arquivos no diretório <b>langs/%s</b> e enviar os arquivos modificados para dolibarr.org/forum ou para os desenvolvedores em github.com/Dolibarr/dolibarr.
     ModuleSetup=Conf. do módulo
     ModulesSetup=Configuração de Módulos/Aplicativos
    @@ -255,15 +214,10 @@ MenuHandlers=Gestor de Menus
     MenuAdmin=Editor menus
     DoNotUseInProduction=Não utilizar em produção
     ThisIsProcessToFollow=Estas são as etapas para o processo:
    -FindPackageFromWebSite=Achar um pacote que possue as funções desejadas (por exemplo no site oficial %s).
     DownloadPackageFromWebSite=Baixar pacote.
    -UnpackPackageInDolibarrRoot=Descompacte os arquivos no diretório do servidor dedicado ao Dolibarr:<b>%s</b>
    -UnpackPackageInModulesRoot=Para lançar/instalar um módulo externo, descomprima os arquivos compactados em um diretório no servidor dedicado aos módulos : <b>%s</b>
    -SetupIsReadyForUse=A implantação do módulo está concluída. No entanto, você deve habilitar e configurar o módulo em sua aplicatição, indo na página para configurar os módulos: <a href="%s">%s</a>.
     NotExistsDirect=O diretório root alternativo não está definido para um diretório existente.<br>
     InfDirAlt=Desde a versão 3, é possível definir um diretório-root alternativo. Isso permite que você armazene, em um diretório dedicado, plug-ins e modelos personalizados. <br> Basta criar um diretório na raiz de Dolibarr (por exemplo:custom).<br>
     InfDirExample=<br>Então declare no arquivo <strong>conf.php</strong><br>$dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br> Se estas linhas estão comentadas com "#", para serem habilitadas, apenas remova o caractere "#".
    -YouCanSubmitFile=Para esta etapa, você pode enviar o arquivo .zip do pacote do módulo para cá :
     CallUpdatePage=Vá para a página que atualiza a estrutura de banco de dados e os dados:% s.
     LastActivationAuthor=Último autor da ativação
     LastActivationIP=Último IP de ativação
    @@ -289,14 +243,10 @@ UMaskExplanation=Esses parâmetros permitem você definir permissões por defaul
     UseACacheDelay=Atraso para exportação de cache em segundos (0 ou vazio para sem cache)
     DisableLinkToHelpCenter=Esconder link "<b>Precisa de ajuda ou suporte</b>" na página de login
     DisableLinkToHelp=Ocultar link para ajuda online "<b>%s</b>"
    -AddCRIfTooLong=Não possui nenhum empacotamento automático, então se a linha sair da página do documento é porque é muito comprida, você precisa adicionar você mesmo um retorno de transporte(carriage) na área de texto.
    -ConfirmPurge=Você tem certeza que deseja executar esta limpeza?<br>Isto excluirá definitivamente todos os arquivos de dados sem qualquer chance de restaurá-los (arquivos ECM, arquivos anexos...).
     LanguageFilesCachedIntoShmopSharedMemory=Os arquivos .lang foram carregados na memória compartilhada
     LanguageFile=Arquivo de idioma
    -ExamplesWithCurrentSetup=Exemplos com atuais configurações que estão rodando
     ListOfDirectories=Lista de diretórios com templates de documentos abertos(.odt)
     ListOfDirectoriesForModelGenODT=A lista de diretórios contém modelos de arquivos no formato OpenDocument.<br><br>Insira aqui o caminho dos diretórios.<br>Adicione uma quebra de linha entre cada diretório.<br>Para adicionar um diretório do módulo GED, adicione aqui <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Os arquivos  nestes diretórios devem terminar com <b>.odt</b> ou <b>.ods</b>.
    -NumberOfModelFilesFound=Número de arquivos de temas ODT/ODS encontrados nestes diretórios
     ExampleOfDirectoriesForModelGen=Exemplo de sintaxe:<br>c:\\meudir<br>/home/meudir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>Para saber como criar seus temas de documento em ODT, antes de armazená-los nesses diretórios, leia a documentação wiki:
     FirstnameNamePosition=Posição do Nome/Sobrenome
    @@ -305,15 +255,13 @@ KeyForWebServicesAccess=Chave para usar o Serviços Web (parâmetro "dolibarrkey
     TestSubmitForm=Teste de entrada de formulário
     ThisForceAlsoTheme=Usando esse gerenciador de menus e também usando seu próprio tema qualquer que seja a sua escolha. Além disso se o gerenciador de menus especializado em smartphone não funcionar em todos os smartphones. Use outro gerenciador de menus se tiver problemas com o seu.
     ThemeDir=Diretório de Layouts
    -ConnectionTimeout=Tempo de conexão esgotado
     ResponseTimeout=Tempo de resposta esgotado
     SmsTestMessage=Mensagem Teste de __PHONEFROM__ para __PHONETO__
     ModuleMustBeEnabledFirst=O módulo <b>%s</b> deve estar primeiramente habilitado se você precisa desta funcionalidade.
     SecurityToken=Chave para proteção das URLs
    -NoSmsEngine=Sem gestor de envido de SMS disponível. Por default o gestor de envio de SMS não vêm instalado (porque depende de um fornecedor externo) mas você pode achar um em %s
    -PDFDesc=Você pode configurar cada opção global relacionada com geração de PDF
     PDFAddressForging=Regras para forjar caixas de endereços
    -HideLocalTaxOnPDF=Ocultar %s taxa na coluna de taxa de venda no PDF
    +HideAnyVATInformationOnPDF=Ocultar informações de ICMS no PDF
    +PDFRulesForSalesTax=Regras para ICMS
     HideDescOnPDF=Esconder todas as descrições de produto na geração de PDF
     HideRefOnPDF=Esconder ref. dos produtos na geração de PDF
     HideDetailsOnPDF=Esconder a linha de detalhes dos produtos na geração de PDF
    @@ -322,7 +270,6 @@ UrlGenerationParameters=Parâmetros para URLs de segurança
     SecurityTokenIsUnique=Usar um único parâmetro na chave de segurança para cada URL
     EnterRefToBuildUrl=Entre com a referência do objeto %s
     GetSecuredUrl=Conseguir URL calculada
    -ButtonHideUnauthorized=Esconder botões não autorizados ao invés de mostra-los cinza e desabilitados
     OldVATRates=Taxa de ICMS antiga
     NewVATRates=Taxa de ICMS nova
     PriceBaseTypeToChange=Modificar os preços com base no valor de referência defino em
    @@ -336,7 +283,6 @@ ExtrafieldMail =E-mail
     ExtrafieldUrl =URL
     ExtrafieldSelect =Selecionar lista
     ExtrafieldPassword=Senha
    -ExtrafieldRadio=Botões de seleção única (apenas na escolha)
     ExtrafieldCheckBox=Caixas de seleção
     ExtrafieldCheckBoxFromList=Caixas de seleção da tabela
     ExtrafieldLink=Link para um objeto
    @@ -358,40 +304,31 @@ DefaultLink=Link padrão
     SetAsDefault=Definir como padrão
     ValueOverwrittenByUserSetup=Aviso, esse valor pode ser substituido pela configuração especifícada pelo usuário (cada usuário pode ter seu propria URL CliqueParaDiscar)
     ExternalModule=Módulo externo - Instalado no diretório
    -BarcodeInitForThirdparties=Inicialização de código de barras em massa para clientes
     BarcodeInitForProductsOrServices=Inicialização de código de barras em massa ou redefinir de produtos ou serviços
     CurrentlyNWithoutBarCode=Atualmente, você tem <strong>%s</strong> registro(s) no <strong>%s</strong> %s sem um código de barras definido.
     InitEmptyBarCode=Valor Init para o próximo registros vazios
     EraseAllCurrentBarCode=Apague todos os valores de código de barras atuais
     ConfirmEraseAllCurrentBarCode=Você tem certeza que deseja apagar todos os valores atuais do código de barras?
     AllBarcodeReset=Todos os valores de código de barras foram removidas
    -NoBarcodeNumberingTemplateDefined=Nenhum modelo de numeração de código de barras habilitado para configuração do módulo de código de barras.
     EnableFileCache=Ativar cache de arquivos
     ShowDetailsInPDFPageFoot=Adicionar mais detalhes no rodapé dos arquivos PDF, tais como o endereço da empresa, ou os nomes dos gerentes (para completar as IDs profissionais, capital da empresa e o número VAT).
     DisplayCompanyInfo=Exibir endereço da empresa
     DisplayCompanyManagers=Exibir nomes dos gerentes
     DisplayCompanyInfoAndManagers=Exibir o endereço da empresa e os nomes dos gerentes
    -EnableAndSetupModuleCron=Se você deseja ter esta fatura recorrente sendo gerada automaticamente, o módulo *%s* deve estar habilitado e corretamente configurado. Do contrário, a geração de faturas deve ser feita manualmente a partir deste tema com o botão "Criar". Note que mesmo se você habilitar a geração automática, poderás ainda realizar a geração manual com segurança. A geração duplicada para um mesmo período não é possível.
     ModuleCompanyCodePanicum=Retornar um código contábil vazio
     ModuleCompanyCodeDigitaria=O código contábil depende de um código de terceiros. O código é composto pelo caractere "C" na primeira posição seguido pelos primeiros 5 caracteres do código de terceiros.
     Use3StepsApproval=Por padrão, os Pedidos de Compra necessitam ser criados e aprovados por 2 usuários diferentes (uma etapa para a criação e a outra etapa para a aprovação. Note que se o usuário possui ambas permissões para criar e aprovar, uma única etapa por usuário será suficiente). Você pode pedir, com esta opção, para introduzir uma terceira etapa para aprovação por outro usuário, se o montante for superior a um determinado valor (assim 3 etapas serão necessárias : 1=validação, 2=primeira aprovação e 3=segunda aprovação se o montante for suficiente). <br>Defina como vazio se uma aprovação (2 etapas) é suficiente, defina com um valor muito baixo (0.1) se uma segunda aprovação (3 etapas) é sempre exigida.
     UseDoubleApproval=Usar uma aprovação de 3 etapas quando o valor (sem taxa) é maior do que ...
     ClickToShowDescription=Clique para exibir a descrição
    -DependsOn=Este módulo precisa de módulo(s)
     RequiredBy=Este módulo é exigido por módulo(s)
    -TheKeyIsTheNameOfHtmlField=Este é o nome do campo HTML. Ele precisa ter conhecimentos técnicos para ler o conteúdo da página HTML para obter o nome da chave de um campo.
    -PageUrlForDefaultValues=Você deve inserir aqui a URL relativa da sua página. Se você incluir parâmetros na URL, os valores padrão serão efetivos se todos os parâmetros são definidos no mesmo valor. Exemplos :
     PageUrlForDefaultValuesCreate=<br>Para o formulário que cria um novo terceiro, isto é <strong>%s</strong>,<br>Se você deseja apenas o valor padrão se a URL tem algum parâmetro, você pode usar <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>Para a página que relaciona os terceiros, isto é <strong>%s</strong>,<br>Se você deseja apenas o valor padrão se a URL tem algum parâmetro, você pode usar <strong>%s</strong>
     EnableDefaultValues=Habilita o uso de valores padrão personalizados
    -EnableOverwriteTranslation=Habilita o uso da tradução substituída
    -GoIntoTranslationMenuToChangeThis=A tradução foi encontrada para a chave com este código, desta forma, para mudar esse valor, você deve editá-la em Início - Configurações - Tradução.
     WarningSettingSortOrder=Atenção, a configuração de um ordenamento padrão par os pedidos pode resultar em um erro técnico quando indo para a página da lista, se o campo é um campo desconhecido. Se você se depara com tal erro, volte para esta página para remover o ordenamento padrão dos pedidos e restaure o comportamento padrão.
     ProductDocumentTemplates=Temas de documentos para a geração do documento do produto
     WatermarkOnDraftExpenseReports=Marca d'água nos relatórios de despesas
     AttachMainDocByDefault=Defina isto como 1 se você deseja anexar o documento principal por e-mail como padrão (se aplicável)
     FilesAttachedToEmail=Anexar arquivo
    -Module0Name=Usuários e grupos
    +Module0Name=Usuários e Grupos
     Module0Desc=Gerenciamento de Usuários / Funcionários e Grupos
     Module1Desc=Gerenciamento de empresas e contatos (clientes, prospecção, etc.)
     Module2Desc=Gestor Comercial
    @@ -412,13 +349,11 @@ Module52Name=Estoques
     Module52Desc=Gestor de Estoques (produtos)
     Module53Desc=Gestor de Serviços
     Module54Name=Contratos/Assinaturas
    -Module54Desc=Gestor de Contratos (serviços e assinaturas recorrentes)
     Module55Name=Códigos de Barra
     Module55Desc=Gestor de Códigos de Barra
     Module56Name=Telefonia
     Module56Desc=Integração Telefônica
     Module57Name=Ordens de pagamento bancárias diretas
    -Module57Desc=Gerenciamento dos pedidos de pagamento com Débito Direto. Isto inclui a geração do arquivo SEPA para os países europeus.
     Module58Name=CliqueParaDiscarl
     Module58Desc=Integração do Sistema CliqueParaDiscar (Asterisk, etc.)
     Module59Desc=Adicione uma função para gerar uma conta Bookmark4u de uma conta Dolibarr
    @@ -427,40 +362,24 @@ Module75Name=Despesas e Notas de Viagem
     Module75Desc=Gestor de Despesas e Notas de Viagem. Administração das notas de despesas e deslocamentos
     Module80Name=Fretes
     Module80Desc=Gestor de Fretes e Carregamentos
    -Module85Name=Bancos e Caixas
     Module85Desc=Gestor de Bancos e Caixas
    -Module100Name=Site Externo
    -Module100Desc=Incluir seu site no menu superior do Dolibarr
     Module105Name=Carteiro e SPIP
     Module105Desc=Carteiro ou Interface SPIP para Módulo MembroMailman or SPIP interface for member module
    -Module200Desc=Diretório de sincronização do LDAP
     Module240Name=Exportações de Dados
    -Module240Desc=Ferramenta para exportar dados do Dolibarr (com assistentes)
     Module250Name=Importação de Dados
    -Module250Desc=Ferramenta para importar dados para o Dolibarr (com assistentes)
     Module310Desc=Gestor de Associação de Membros
     Module320Desc=Adiciona um RSS feed dentro das páginas de tela do Dolibarr
    -Module330Name=Marcadores de Página
    -Module330Desc=Gerenciamento de agendamentos
    -Module400Name=Projetos
    -Module400Desc=Gestão de projetos, oportunidades / espera e / ou tarefas. Você também pode atribuir qualquer elemento (fatura, ordem, proposta, intermediação, ...) a um projeto e obter uma visão panorâmica do projeto.
     Module410Desc=Integração do Webcalendar
     Module510Name=Pagamento dos salários dos funcionários
    -Module510Desc=Registrar e acompanhar o pagamento dos salários do seu empregado
     Module520Desc=Gestão dos empréstimos
     Module600Name=Notificações sobre eventos de negócio
    -Module600Desc=Enviar notificações por EMail (disparadas por alguns eventos de negócio) para usuários (configuração definida em cada usuário), para contatos de terceiros (configuração definida em cada terceiro) ou para emails fixos
    -Module600Long=Note que este módulo é dedicado a enviar e-mails em tempo real quando um evento de negócio dedicado ocorre. Se você está buscando uma função para enviar avisos por e-mail sobre os eventos da sua agenda, vá para a configuração do módulo Agenda.
     Module610Name=Variáveis de produtos
    -Module610Desc=Permite a criação de variável de produtos com base em atributos (cor, tamanho, ...)
     Module700Name=Doações
     Module700Desc=Gestor de Doações
    -Module770Desc=Gestão e reivindicação de relatórios de despesas (transporte, refeição, ...)
     Module1200Desc=Integração Mantis
     Module1520Name=Geração de Documentos
     Module1520Desc=Geração de documentos via e-mail em massa
     Module1780Name=Categorias
    -Module2000Desc=Permitir editar alguma área do texto usando um editor avançado (Baseado no CKEditor)
     Module2200Desc=Habilitar o uso de expressões matemáticas para os preços
     Module2300Desc=Gerenciamento dos trabalhos agendados (alias cron ou tabela chrono)
     Module2400Name=Eventos / Agenda
    @@ -470,11 +389,8 @@ Module2600Name=Serviços API/Web (Servidor SOAP)
     Module2600Desc=Ativa o servidor de serviços web do Dolibarr
     Module2610Desc=Permitir que o servidor prestação de serviços de API REST do Dolibarr
     Module2660Name=Chamar ServiçosWeb (cliente SOAP)
    -Module2660Desc=Habilitar o webservices do Dolibarr (pode ser usado para empurrar de dados / pedidos de servidores externos. Ordens Fornecedor suporte apenas para o momento)
    -Module2700Desc=Usar serviço online do Gravatar (www.gravatar.com) para mostrar foto de usuários/membros (achado pelos emails deles). Precisa de acesso a internet
     Module2900Desc=Capacidade de conversão com o GeoIP Maxmind
     Module3100Desc=Adicionar um botão Skype nos cartões dos usuários / terceiros / contatos membros
    -Module3200Desc=Ative gerador de log de alguns eventos comerciais em um registro inalterável. Os eventos são arquivados em tempo real. O gerador de log é uma tabela de eventos encadeados que podem ser lidos e exportados somente. Este módulo pode ser obrigatório para alguns países.
     Module4000Name=RH
     Module4000Desc=Gerenciamento de recursos humanos (gerenciamento do departamento, contratos dos funcionários e benefícios)
     Module5000Name=Multi-Empresas
    @@ -482,19 +398,14 @@ Module5000Desc=Permite gerenciar várias empresas
     Module6000Name=Fluxo de Trabalho
     Module10000Desc=Crie sites públicos com um editor WYSIWYG. Basta configurar seu servidor web (Apache, Nginx, ...) para apontar para o diretório dedicado ao Dolibarr para tê-lo online na Internet com seu próprio nome de domínio.
     Module20000Name=Gerenciamento de folgas e férias
    -Module20000Desc=Autorizar e acompanhar solicitações de licença de funcionários
     Module39000Desc=Lote ou número de serie, para compra e venda administrado produtos
    -Module50000Desc=Módulo para oferecer uma página de pagamento on-line aceitando pagamentos com cartão de crédito / débito via PayBox. Isso pode ser usado para permitir que seus clientes façam pagamentos gratuitos ou para um pagamento em um determinado objeto Dolibarr (fatura, pedido, ...)
     Module50100Name=Ponto de Vendas
     Module50100Desc=Módulo ponto de vendas (PDV)
    -Module50200Desc=Módulo para oferecer uma página de pagamento on-line aceitando pagamentos usando o PayPal (cartão de crédito ou crédito PayPal). Isso pode ser usado para permitir que seus clientes façam pagamentos gratuitos ou para um pagamento em um determinado objeto Dolibarr (fatura, pedido, ...)
    +Module50150Name=Ponto de Vendas
     Module54000Name=ImprimirIPP
    -Module54000Desc=Imprima via Cups IPP
     Module55000Name=Pesquisa Aberta
    -Module55000Desc=Módulo que integra pesquisa (tipo: Doodle, Studs, Rdvz, ...)
     Module59000Desc=Módulo para gerenciar margens
     Module60000Desc=Módulo para gerenciar comissão
    -Module62000Desc=Adicionar recursos para gerenciar Incoterm
     Module63000Desc=Gerenciar recursos (impressoras, carros, salas, etc.) que você pode compartilhar em eventos.
     Permission11=Ler Faturas de Clientes
     Permission12=Criar/Modificar Faturas de Clientes
    @@ -515,9 +426,6 @@ Permission32=Criar/Modificar Produtos
     Permission34=Deletar Produtos
     Permission36=Ver/Gerenciar Produtos Ocultos
     Permission38=Exportar Produtos
    -Permission41=Leia projetos e tarefas (projeto compartilhado e projetos para os quais eu sou um contato). Também pode inserir o tempo consumido, para mim ou minha hierarquia, nas tarefas atribuídas (Folha de horários)
    -Permission42=Criar / modificar projetos (projeto compartilhado e projetos para os quais eu sou um contato). Também pode criar tarefas e atribuir usuários a projetos e tarefas
    -Permission44=Deletar Projetos (Projetos Compartilhados e Projetos que eu contratei para)
     Permission61=Ler Intervenções
     Permission62=Criar/Modificar Intervenções
     Permission64=Deletar Intervenções
    @@ -548,7 +456,6 @@ Permission109=Deletar Envios
     Permission111=Ler Contas Financeiras
     Permission112=Criar/Modificar/Deletar e Comparar Transações
     Permission113=Configurar Contas Financeiras (criar, gerenciar categorias)
    -Permission114=Consolidar Transações
     Permission115=Exportar Transações e Extratos Bancários
     Permission116=Transferência entre Contas
     Permission117=Gerenciar Envios de Cheques
    @@ -556,15 +463,12 @@ Permission121=Ler Terceiros Vinculado ao Usuário
     Permission122=Criar/Modificar Terceiros
     Permission125=Deletar Terceiros
     Permission126=Exportar Terceiros
    -Permission141=Ler Projetos (Projetos Compartilhados e Projetos que eu contratei para)
    -Permission142=Criar/Modificar Projetos (Projetos Compartilhados e Projetos que eu contratei para)
     Permission144=Deletar Projetos (Projetos Compartilhados e Projetos que eu contratei para)
     Permission146=Ler Provedores
     Permission147=Ler Estatísticas
     Permission151=Ler pedidos com pagamento por débito direto
     Permission152=Criar/Modificar pedidos com pagamento por débito direto
     Permission153=Enviar/Transmitir pedidos com pagamento por débito direto
    -Permission154=Registro de Créditos/Recusas de pedidos com pagamento por débito direto
     Permission161=Ler Contratos
     Permission162=Criar/Modificar Contratos
     Permission163=Ativar Serviço de um Contrato
    @@ -586,7 +490,6 @@ Permission187=Fechar Pedidos para Fornecedores
     Permission188=Cancelar Pedidos para Fornecedores
     Permission192=Criar Linhas
     Permission193=Cancelar Linhas
    -Permission194=Ler as Linhas de Bandwith
     Permission202=Criar Conexões ADSL
     Permission203=Pedir Pedidos de Conexões
     Permission204=Pedir Conexões
    @@ -611,12 +514,10 @@ Permission244=Visualisar o Conteúdo de Categorias Ocultas
     Permission251=Ler Outros Usuários e Grupos
     PermissionAdvanced251=Ler Outros Usuários
     Permission252=Ler Permissões de Outros Usuários
    -Permission253=Criar/Modificar Outros Usuários, Grupos e Permissões
     PermissionAdvanced253=Criar/Modificar Usuários internos/externos e suas Permissões
     Permission254=Criar/Modificar Usuários Externos
     Permission255=Modificar Senha de Outros Usuários
     Permission256=Deletar ou Desativar Outros Usuários
    -Permission262=Estender o acesso a todos os terceiros (não apenas os terceiros para os quais o usuário é um representante de venda).<br> Não é efetivo para usuários externos (sempre limitados a si próprios para propostas, pedidos, faturas, contratos, etc.).<br> Não é efetivo para Projetos (apenas regras sobre permissões do projeto, visibilidade e questões de atribuição).
     Permission271=Ler CA
     Permission272=Ler Faturas
     Permission273=Emitir Fatura
    @@ -626,7 +527,6 @@ Permission283=Deletar Contatos
     Permission286=Exportar Contatos
     Permission291=Ler Tarifas
     Permission292=Definir Permissões das Tarifas
    -Permission293=Modificar Tarifas de Clientes
     Permission300=Ler Código de Barras
     Permission301=Criar/Modificar Códigos de Barras
     Permission302=Deletar Código de Barras
    @@ -648,11 +548,6 @@ Permission401=Ler Descontos
     Permission402=Criar/Modificar Descontos
     Permission403=Validar Descontos
     Permission404=Excluir Descontos
    -Permission501=Ler os contratos/salários dos funcionários
    -Permission502=Criar/Modificar os contratos/salários dos funcionários
    -Permission511=Ler o pagamento dos salários
    -Permission512=Criar/Modificar o pagamento dos salários
    -Permission514=Excluir salários
     Permission517=Salários de exportação
     Permission520=Leia Empréstimos
     Permission522=Criar / modificar empréstimos
    @@ -735,7 +630,6 @@ Permission63001=Ler recursos
     Permission63002=Criar/Modificar recursos
     Permission63003=Excluir recursos
     Permission63004=Conectar os recursos aos eventos da agenda
    -DictionaryCompanyJuridicalType=Formas legais dos terceiros
     DictionaryProspectLevel=Nível potencial Prospect
     DictionaryCanton=Estado/Província
     DictionaryRegion=Regiões
    @@ -743,7 +637,6 @@ DictionaryActions=Tipos de eventos na agenda
     DictionarySocialContributions=Tipos de encargos sociais e fiscais
     DictionaryVAT=Taxas de VAT ou imposto sobre vendas de moeda
     DictionaryPaymentModes=Modos de pagamento
    -DictionaryTypeContact=Tipos Contato / Endereço
     DictionaryEcotaxe=Ecotaxa (REEE)
     DictionaryPaperFormat=Formatos de papel
     DictionaryFormatCards=Formatos dos cartões
    @@ -755,33 +648,19 @@ DictionarySource=Origem das propostas / ordens
     DictionaryAccountancyCategory=Grupos personalizados para relatórios
     DictionaryAccountancysystem=Modelos para o plano de contas
     DictionaryAccountancyJournal=Relatórios da contabilidade
    -DictionaryEMailTemplates=Modelos de E-mails
     DictionaryProspectStatus=Status de Prospecção
    -DictionaryHolidayTypes=Tipos de licenças
    -DictionaryOpportunityStatus=Status oportunidade para projeto / lead
     SetupSaved=Configurações Salvas
     SetupNotSaved=Configuração não salva
    -BackToDictionaryList=Voltar para a lista de dicionários
    -VATManagement=Gestor de ICMS
    -VATIsUsedDesc=Como padrão, quando da criação de orçamentos, faturas, pedidos, etc. a taxa do ICMS acompanha a regra padrão ativa:<br>se o vendedor não estiver sujeito ao ICMS, então o padrão do ICMS é 0. Fim da regra.<br>Se o (país da venda= país da compra), então o ICMS por padrão é igual ao ICMS do produto no país da venda. Fim da regra. <br>Se o vendedor e o comprador estão na Comunidade Europeia e os produtos são meios de transporte (carro, navio, avião), o VAT padrão é 0 (O VAT deverá ser pago pelo comprador à receita federal do seu país e não ao vendedor). Fim da regra.<br>Se o vendedor e o comprador estão na Comunidade Europeia e o comprador não é uma pessoa jurídica, então o VAT por padrão é o VAT do produto vendido. Fim da regra.<br>Se o vendedor e o comprador estão na Comunidade Europeia e o comprador é uma pessoa jurídica, então o VAT é 0 por padrão . Fim da regra.<br>Em qualquer outro caso o padrão proposto é ICMS=0. Fim da regra.
    -VATIsNotUsedDesc=Por padrão o ICMS sugerido é 0, o que pode ser usado em casos tipo associações, pessoas ou pequenas empresas.
     LTRate=Rata
     LocalTax1IsNotUsed=Não utilizar segundo imposto
    -LocalTax1IsUsedDesc=Utilizar um segundo tipo de imposto (outro que não seja ICMS)
    -LocalTax1IsNotUsedDesc=Não utilizar outro tipo de imposto (outro que não seja ICMS)
     LocalTax2IsNotUsed=Não utilizar terceiro imposto
    -LocalTax2IsUsedDesc=Utilizar um terceiro tipo de imposto (outro que não seja ICMS)
    -LocalTax2IsNotUsedDesc=Não utilizar outro tipo de imposto (outro que não seja ICMS)
     LocalTax1ManagementES=Gestor RE
    -LocalTax1IsUsedDescES=A taxa RE padrão, quando criando orçamentos, faturas, pedidos, etc., segue a regra padrão ativa:<br>Se o comprador não estiver sujeito à RE, a RE por padrão=0. Fim da regra.<br>Se o comprador for sujeito à RE, então será aplicada a RE padrão. Fim da regra.<br>
     LocalTax1IsNotUsedDescES=A RE padrão proposta é 0. Fim da regra.
     LocalTax1IsUsedExampleES=Na Espanha eles são profissionais sujeito a alguma seção especifica da IAE espanhola.
     LocalTax1IsNotUsedExampleES=Na Espanha eles são proficionais e sócios e sujeito a uma certa seção da IAE espanhola.
     LocalTax2ManagementES=Gestor IRPF
    -LocalTax2IsUsedDescES=A taxa RE padrão, quando criando orçamentos, faturas, pedidos, etc., acompanha a regra padrão ativa:<br>Se o vendedor não estiver sujeito ao IRPF, então o IRPF por padrão=0. Fim da regra.<br>Se o vendedor estiver sujeito ao IRPF, então aplica-se o IRPF padrão. Fim da regra.<br>
     LocalTax2IsNotUsedDescES=Por padrão, o iRPF sugerido é 0. Fim da regra.
     LocalTax2IsUsedExampleES=Na Espanha, freelancers e profissionais independentes que oferecem serviços e empresas que tenham escolhidos o módulo de sistema de imposto.
    -LocalTax2IsNotUsedExampleES=Na Espanha eles são negócios não sujeito ao módulo de sistema de imposto.
     CalcLocaltax=Relatórios sobre os impostos locais
     CalcLocaltax1Desc=Relatorios de taxas locais são calculados pela differença entre taxas locais de venda e taxas locais de compra
     CalcLocaltax2Desc=Relatorio de taxas locais e o total de taxas locais nas compras
    @@ -789,7 +668,6 @@ CalcLocaltax3=De vendas
     CalcLocaltax3Desc=Relatorio de taxas locais e o total de taxas locais de vendas
     LabelUsedByDefault=Etiqueta usado por default se nenhuma tradução não for encontrado para o código =/
     LabelOnDocuments=Etiqueta nos documentos
    -NbOfDays=Nº de dias
     CurrentNext=Atual/Próxima
     Offset=Compensar
     Upgrade=Atualizar
    @@ -806,7 +684,6 @@ DatabasePort=Porta do Banco de Dados
     DatabaseUser=Usuário do Banco de Dados
     DatabasePassword=Senha do Banco de Dados
     TableName=Nome da Tabela
    -NbOfRecord=Núm de gravações
     DriverType=Tipo de Driver
     SummarySystem=Resumo de informações do sistema
     SummaryConst=Lista de todos os parâmetros de configurações do Dolibarr
    @@ -816,7 +693,6 @@ Skin=Tema Visual
     DefaultSkin=Tema visual default
     MaxSizeList=Comprimento máximo de lista
     DefaultMaxSizeList=Comprimento máximo padrão para listas
    -DefaultMaxSizeShortList=Comprimento máximo padrão para as listas curtas (p. ex. no cartão do cliente)
     MessageOfDay=Mensagem do dia
     MessageLogin=Mensagem da página de login
     LoginPage=Página de login
    @@ -824,31 +700,12 @@ PermanentLeftSearchForm=Formulário permanente de pesquisa no menu esquerdo
     DefaultLanguage=Idioma padrão a ser usado (código do idioma)
     EnableMultilangInterface=Habilitar interface multi-idioma
     EnableShowLogo=Exibir logo no menu esquerdo
    -CompanyName=Nome
     CompanyAddress=Endereço
     CompanyZip=CEP
     CompanyTown=Município
     NoActiveBankAccountDefined=Nenhuma conta bancária ativa está definida
     BankModuleNotActive=O módulo de contas bancárias não está habilitado
     ShowBugTrackLink=Mostrar link "<strong>%s</strong>"
    -DelaysOfToleranceBeforeWarning=Prazos de tolerância antes do aviso
    -DelaysOfToleranceDesc=Esta janela permite definir os prazos de tolerância antes que o aviso é reportado na tela com o símbolo %s, sobre cada elemento em atraso.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Prazo de tolerância (em dias) antes do alerta sobre eventos planejados (eventos da agenda) ainda não concluídos
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Prazo de tolerância (em dias) antes do alerta sobre projetos não concluídos a tempo
    -Delays_MAIN_DELAY_TASKS_TODO=Prazo de tolerância (em dias) antes do alerta sobre as tarefas planejadas (tarefas de projeto) ainda não concluídas
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Prazo de tolerância (em dias) antes do alerta sobre pedidos ainda não processados
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Prazo de tolerância (em dias) antes do aviso nos orçamentos que não foram fechados
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Prazo de tolerância (em dias) antes do aviso nos orçamentos não faturadas
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Prazo de tolerância (em dias) antes do aviso nos serviços para ativar
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Prazo de tolerância (em dias) antes do aviso nos serviços expirados
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Prazo de tolerância (em dias) antes do aviso para faturas de fornecedores não paga
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Prazo de tolerância (em dias) antes do aviso para faturas de clientes não paga
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Prazo de tolerância (em dias) antes do aviso para reconciliação pendente no banco
    -Delays_MAIN_DELAY_MEMBERS=Prazo de tolerância (em dias) antes do aviso do atraso da taxa de afiliação
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Prazo de tolerância (em dias) antes do aviso de fazer depósitos de cheques
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Prazo de tolerância (em dias) antes do alerta para aprovação do relatório de despesas
    -SetupDescription1=A área de configuração é para a definição dos parâmetros iniciais antes de se usar o Dolibarr.
    -SetupDescription5=Outros menu precisa entrar com parâmetros opcionais do gestor.
     LogEvents=Auditoría de segurança dos eventos
     Audit=Auditoría
     InfoOS=Sobre o SO
    @@ -865,9 +722,7 @@ DisplayDesc=Você pode escolher cada parâmetro relacionado com a aparência do
     AvailableModules=App/Módulos disponíveis
     ToActivateModule=Para ativar os módulos, vá à área de configuração (Home->Configuração->Módulo).
     SessionTimeOut=Expiro tempo de sessão
    -SessionExplanation=Esse número garante que a sessão nunca irá expirar antes desse tempo de atraso, se o <b>session cleaner</b> for feito pelo <b>Internal PHP session cleaner</b> (e nada mais). O <b>Internal PHP session cleaner</b> não garante que irá expirar nesse tempo de atraso. Ele vai expirar, depois desse tempo de atraso, e quando o <b>session cleaner</b> está na RAM, então cada <b>%s/%s</b> acesso, mas somente durante o acesso feito pelos outros usuários.<br> Nota: em alguns servidores com mecanismo de "external session cleaning" (cron no Debian, Ubuntu ...), a sessão pode ser perdida depois desse periodo definido por default <strong>session.gc_maxlifetime</strong>, não importando importando o valor entrado aqui.
     TriggersAvailable=Triggers disponível
    -TriggersDesc=Triggers são arquivos que modificam o comportamento do Dolibarr <b>fluxo de trabalho</b> uma vez copiado dentro do diretório <b>htdocs/core/triggers</b>. Eles realizam novas ações, ativado em eventos do Dolibarr (criar nova empresa, validação de fatura, ...).
     TriggerDisabledByName=Triggers neste arquivo estão desativados pelo sufixo <b>-NORUN</b> em seu nome.
     TriggerDisabledAsModuleDisabled=Triggers neste arquivo está desabilitado assim como o módulo <b>%s</b> está desabilitado.
     TriggerAlwaysActive=Triggers neste arquivo está sempre ativo, não importando os módulos ativos no Dolibarr.
    @@ -877,7 +732,6 @@ DictionaryDesc=Inserir todos os dados de referência. Você pode adicionar seus
     ConstDesc=Esta página permite editar todos os outros parâmetros não disponíveis nas páginas anteriores. Estes são principalmente parâmetros reservados para desenvolvedores ou solução de problemas avançada. Para uma lista de opções <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">verifique aqui</a>.
     MiscellaneousDesc=Todos os outros parâmetros relacionados com a segurança são definidos aqui.
     LimitsSetup=Configurações de Limites/Precisões
    -LimitsDesc=Você pode definir limites, precisões e otimizações utilizadas pelo Dolibarr aqui
     MAIN_MAX_DECIMALS_UNIT=Máxima casas decimais para preços unitários
     MAIN_MAX_DECIMALS_TOT=Máxima casas decimais para preços totais
     MAIN_MAX_DECIMALS_SHOWN=Máxima casas decimais para preços mostrado na tela (adicionar <b>...</b> depois desse número se você deseja ver <b>...</b> quando um número é truncado quando mostrado na tela)
    @@ -886,16 +740,12 @@ UnitPriceOfProduct=Unidade líquida do preço do produto
     TotalPriceAfterRounding=Preço Total (Líquido,ICMS,taxa local) depois do arredontamento
     ParameterActiveForNextInputOnly=Parâmetro efetivo somente para a próxima entrada
     NoEventOrNoAuditSetup=Nenhum evento de segurança foi gravado ainda. Isso pode ser normal de o auditar não foi ativado na página "Conf. - Segurança - Auditar"
    -NoEventFoundWithCriteria=Nenhum evento de segurança foi achado pelos critérios de pesquisa.
     SeeLocalSendMailSetup=Ver sua configuração local de envio de correspondência
     BackupDesc=Para fazer um backup completo do Dolibarr, você deve:
     BackupDesc2=* Salvar os documentos do diretório (<b>%s</b>) que contém todos os arquivos uploaded e arquivos gerados (Você pode criar um arquivo zipado por exemplo).
    -BackupDesc3=* Salvar o banco de dados em um arquivo de despejo. Para isso, você pode seguir o assistente.
     BackupDescX=O diretório do arquivo deverá ser armazenado em um local seguro.
     BackupDescY=O arquivo de despeja gerado deverá ser armazenado em um local seguro.
    -BackupPHPWarning=O backup não pode ser garantido por esse método. Prefira o anterior
     RestoreDesc=Para restaurar o backup Dolibarr, você deve:
    -RestoreDesc2=* Restaurar o arquivo de backup (zipado) no diretório dos documentos, para extrair a arvore de arquivos no diretório do documento da nova instalação do Dolibarr ou dentro do atual diretório dos documentos (<b>%s</b>).
     RestoreDesc3=* Restaurar os dados de backup do arquivo de despejo, para dentro do banco de dados da nova instalação do Dolibarr ou para dentro da atual instalação. Aviso, uma vez a restauração completa, você deve usar o login/senha, que existia quando o backup foi feito, para conectar denovo. Para restaurar o backup do banco de dados para dentro da atual instalação, você pode seguir esse assistente.
     RestoreMySQL=Importar MySQL
     ForcedToByAModule=Essa Regra é forçada para <b>%s</b> by um módulo ativado
    @@ -905,24 +755,18 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Você deve rodar esse comando n
     YourPHPDoesNotHaveSSLSupport=Função SSL functions não está disponível no seu PHP
     DownloadMoreSkins=Mais skins para baixar
     SimpleNumRefModelDesc=Retorna o número de referênciaReturns com o formato %syymm-nnnn onde yy é o ano, mm é o mês é nnnn é a sequencia sem buraco e sem reset
    -ShowProfIdInAddress=Mostrar id proficional com endereço no documento
    -ShowVATIntaInAddress=Esconder ICMS dentro num com endereços no documento
    -MAIN_DISABLE_METEO=Desativar visualização meteo
     MeteoStdModEnabled=Modo padrão habilitado
     MeteoPercentageMod=Modo porcentagem
     MeteoPercentageModEnabled=Modo de porcentagem habilitado
     TestLoginToAPI=Teste de login para API
    -ProxyDesc=Algumas funções do Dolibarr precisam ter acesso a internet para funcionar. Defina esses parâmetros aqui. se o servidor Dolibarr esta atrás de um servidor de proxy, esses parâmetros falam pro Dolibarr como acessar a internet através disso.
     MAIN_PROXY_USE=Use um servidor de proxy (caso contrário acesso direto a internet)
     MAIN_PROXY_HOST=Nome/Endereço do servidor de proxy
     MAIN_PROXY_PORT=Porta do servidor de proxy
     MAIN_PROXY_USER=Login para usar no servidor de proxy
     MAIN_PROXY_PASS=Senha para usar no servidor de proxy
    -DefineHereComplementaryAttributes=Defina aqui todos os atributos, não disponível por default, e que você quer que seja suportado por %s.
     ExtraFieldsLinesRec=Atributos complementares (linhas dos temas das faturas)
     ExtraFieldsSupplierOrdersLines=Atributos complementares (linhas de encomenda)
     ExtraFieldsThirdParties=Atributos complementares (terceiros)
    -ExtraFieldsContacts=Atributos complementares (contato/endereço)
     ExtraFieldsMember=Atributos complementares (membros)
     ExtraFieldsCustomerInvoicesRec=Atributos complementares (temas das faturas)
     ExtraFieldsSupplierOrders=Atributos complementares (pedidos)
    @@ -930,38 +774,25 @@ ExtraFieldHasWrongValue=Atributo %s tem um valor errado.
     AlphaNumOnlyLowerCharsAndNoSpace=apenas alfanumérico e minúsculas, sem espaço
     SendmailOptionNotComplete=Aviso, em alguns sistemas Linux, para enviar email para seu email, sendmail executa a configuração que deve conter opção -ba (parâmetro mail.force_extra_parameters dentro do seu arquivo php.ini). Se algum destinatário não receber emails, tente editar esse parâmetro PHP com mail.force_extra_parameters = -ba).
     PathToDocuments=Caminho para documentos
    -SendmailOptionMayHurtBuggedMTA=Função para envios de correspondência usando o método "PHP mail direct" irá gerar uma mensagem na correspondência que pode não estar corretamente analisada por algum servidor de recepção de correspondência. Resultando que essa correspondência não pode ser lida pela pessoa hostiada por essa plataforma bugada. É caso de alguns provedores de internet (Ex: Orange na França). Isso não é um problema para o Dolibarr nem dentro PHP mas para servidor receptor de correspondência. Você pode contudo adicionar a opção MAIN_FIX_FOR_BUGGED_MTA para 1 dentro da configuração, outra modificação do Dolibarr para evitar isso. Contudo você pode sofrer problemas com outros servidores que respeitão estritamente os padrões SMTP. A outra solução (RECOMENDADA) é usar o método "SMTP socket library" que não tem desvantagens.
     TranslationKeySearch=Buscar uma chave ou variável de tradução
     TranslationOverwriteKey=Sobrescrever uma variável de tradução
     TranslationDesc=Como definir o idioma do aplicativo exibido: <br> * Systemwide: menu <strong> Início - Configuração - Exibição </strong> <br> * Por usuário: use a guia <strong> Configuração da tela do usuário </strong> no cartão do usuário ( clique no nome de usuário na parte superior da tela).
     TranslationOverwriteDesc=Você também pode sobrescrever as variáveis preenchendo a tabela a seguir. Escolha o seu idioma a partir do "%s" dropdown, insira a variável com a chave da transação em "%s" e a sua nova tradução em "%s"
    -TranslationOverwriteDesc2=Você pode usar a outra aba para lhe ajudar a conhecer a chave de tradução a ser empregada
     TranslationString=Variável de tradução
     CurrentTranslationString=Variável de tradução atual
     WarningAtLeastKeyOrTranslationRequired=Pelo menos um critério de busca é exigido para a chave ou variável de tradução.
     NewTranslationStringToShow=Nova variável de tradução a ser exibida
     OriginalValueWas=A tradução original foi sobrescrita. O valor original era:<br><br>%s
    -TransKeyWithoutOriginalValue=Você forçou uma nova tradução para a chave de tradução '<strong>%s</strong>' que não existe em qualquer um dos arquivos de idioma
     TotalNumberOfActivatedModules=Aplicação / módulos ativados: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Você pelo menos deve ativar 1 módulo
    -ClassNotFoundIntoPathWarning=Classe %s não achado dentro o caminho PHP
     YesInSummer=Sim em verão
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, apenas os seguintes módulos são abertos para usuários externos (seja qual for a permissão de tais usuários) e somente se as permissões fossem concedidas:
     SuhosinSessionEncrypt=Sessão armazenada criptografada pelo Suhosin
     ConditionIsCurrently=Condição é atualmente %s
    -YouUseBestDriver=Você usa o driver %s que é o melhor driver disponível atualmente.
    -YouDoNotUseBestDriver=Você usa o driver %s mas o driver %s é o mais recomendado.
    -NbOfProductIsLowerThanNoPb=Você tem somente %s produtos/serviços no seu banco de dados. Isso não requer qualquer particular otimização.
     SearchOptim=Procurar Otimização
    -YouHaveXProductUseSearchOptim=Você tem %s produtos dentro do banco de dados. Você deveria adicionar a constante PRODUCT_DONOTSEARCH_ANYWHERE para 1 em Home->Configuração->Outros, seu limite para a procura começar na strings fazendo possível para o banco de dados usar o index e você deveria receber uma resposta imediata.
    -BrowserIsOK=Você está usando o navegador %s. Esse navegador está OK com a segurança e performa.
    -BrowserIsKO=Você está usando o navegador %s. Esse navegador é uma péssima escolha para segurança, performa e confiabilidade. Nós recomendandos usar Firefox, Chrome, Opera ou Safari.
     XDebugInstalled=XDebug é carregado.
     XCacheInstalled=XCache é carregado.
    -AddRefInList=Aparência cliente/fornecedor ref dentro da lista (escolha a lista ou combobox) e mais o hyperlink. Terceiros serão exibidos co o nome "CC12345 - SC45678 - A grande corporação", ao invés de "A grande corporação".
     FillThisOnlyIfRequired=Exemplo: +2 (Preencha somente se compensar o problema do timezone é experiente)
     PasswordGenerationStandard=Retorna uma senha gerara de acordo com o algorítimo interno do Dolibarr: 8 caracteres contendo números e letras em letras minusculas.
    -PasswordGenerationNone=Não sugerimos qualquer senha gerada. A senha deve ser inserida manualmente.
     PasswordGenerationPerso=Retornar uma senha de acordo com a configuração definida para a sua personalidade.
     PasswordPatternDesc=Descrição do padrão de senha
     RuleForGeneratedPasswords=Regra para sugerir uma senha gerada ou validação de senha
    @@ -973,12 +804,8 @@ CompanySetup=Configurações de módulo das empresas
     NotificationsDesc=A funcionalidade de notificações por e-mail lhe permite enviar silenciosamente e-mail automático para alguns eventos do Dolibarr. Os destinatários das notificações podem ser definidos:
     NotificationsDescUser=* por usuários, um usuário de cada vez.
     NotificationsDescGlobal=* ou pela definição de um destinatário global para os e-mails na página de configuração do módulo.
    -ModelModules=Temas de documentos
    -DocumentModelOdt=Gerar documentos dos templates livres (Arquivos .ODT ou .ODS do libreoffice, KOffice, TextEdit, ...)
     WatermarkOnDraft=Marca d'água no documento de rascuno
     JSOnPaimentBill=Ative a função de preenchimento automático de linhas no formulário de pagamento
    -CompanyIdProfChecker=Regras no Ids profissional
    -MustBeMandatory=Obrigatória a criação de terceiros?
     MustBeInvoiceMandatory=Obrigatória a validação de faturas?
     WebCalUrlForVCalExport=Uma exportação de link para o formato <b>%s</b> está disponível no seguinte link: %s
     BillsSetup=Configurações do módulo de faturas
    @@ -1071,19 +898,14 @@ LDAPTestSynchroMemberType=Teste da sincronização dos tipos de membro
     LDAPTestSearch=Teste de pesquisa LDAP
     LDAPSynchroOK=Teste de sincronização foi um sucesso
     LDAPSynchroKO=Teste de sincronização falhou
    -LDAPSynchroKOMayBePermissions=Teste de sincronização falhou. Verifique se a conexão do servidor está corretamente configurada e que permita atualizações LDAP
     LDAPTCPConnectOK=Conexão TCP para o servidor LDAP foi um sucesso (Servidor=%s, Porta=%s)
     LDAPTCPConnectKO=Conexão TCP para o servidor LDAP falhou (Servidor=%s, Porta=%s)
    -LDAPBindOK=Conexão/Autenticação do servidor LDAP foi um sucesso (Servidor=%s, Porta=%s, Admin=%s, Senha=%s)
    -LDAPBindKO=Conexão/Autenticação do servidor LDAP falhou (Servidor=%s, Porta=%s, Admin=%s, Senha=%s)
     LDAPSetupForVersion3=Servidor LDAP configurado para versão 3
     LDAPSetupForVersion2=Servidor LDAP configurado para versão 2
     LDAPFieldLoginExample=Exemplo : uid
     LDAPFilterConnectionExample=Exemplo : &(objectClass=inetOrgPerson)
     LDAPFieldLoginSambaExample=Exemplo : ananomedaconta
     LDAPFieldFullnameExample=Exemplo : cn
    -LDAPFieldPasswordNotCrypted=Senha não criptografada
    -LDAPFieldPasswordCrypted=Senha criptografada
     LDAPFieldPasswordExample=Exemplo : SenhaUsuário
     LDAPFieldCommonNameExample=Exemplo : cn
     LDAPFieldNameExample=Exemplo : sn
    @@ -1121,22 +943,17 @@ LDAPDescMembersTypes=Esta página permite que você defina os atributos do nome
     LDAPDescValues=Exemplos de valores são projetados pelo <b>OpenLDAP</b> seguido dos temas carregados: <b>core.schema, cosine.schema, inetorgperson.schema</b>). Se você usa esses valores e OpenLDAP, modifique seu arquivo de configurações LDAP <b>slapd.conf</b> para ter todos esses temas carregados.
     ForANonAnonymousAccess=Para um acesso autenticado (para um acesso de escrita por exemplo)
     PerfDolibarr=Configurações/otimizações de relatório de performance
    -YouMayFindPerfAdviceHere=Você achará nesta página alguns checks ou conselhos relatados sobre a performance.
    -NotInstalled=Não instalado, então seu servidor não está lento por causa disso.
     ApplicativeCache=cache de aplicativo
     MemcachedNotAvailable=Nenhum cache de aplicativo foi encontrado. Você pode aumentar a performance instalando um servidor de cache Memcached e o módulo será capaz de usar esse servidor de cache. Mais informações aqui http://wiki.dolibarr.org/index.php/Module_MemCached_EN. Note que vários provedores de host web não dispõem de tal servidor de cache.
     MemcachedModuleAvailableButNotSetup=Módulo de aceleração da memória cache está ativado mas a configuração não está completa
     MemcachedAvailableAndSetup=Módulo de aceleração da memória cache está ativado e a configuração está completa
     OPCodeCache=cache OPCode
    -NoOPCodeCacheFound=Nenhum cache OPCode foi achado. Pode ser que você use outro cache OPCode do que XCache ou eAccelerator (bom), pode ser que você não tenha cache OPCode (muito mau).
     FilesOfTypeCached=Arquivos do tipo %s estão no cache pelo servidor HTTP
     FilesOfTypeNotCached=Arquivos do tipo %s não estão no cache pelo servidor HTTP
     FilesOfTypeCompressed=Arquivos do tipo %s estão comprimidos pelo servidor HTTP
     FilesOfTypeNotCompressed=Arquivos do tipo %s não estão comprimidos pelo servidor HTTP
    -CacheByServerDesc=Por exemplo, usando a diretiva Apache "ExpiresByType image/gif A2592000"
     CompressionOfResources=Comprimir as respostas HTTP
     TestNotPossibleWithCurrentBrowsers=Não é possível detecção automática
    -DefaultValuesDesc=Você pode definir/forçar aqui o valor padrão que desejas obter quando crias um novo registro, e/ou os filtros padrão ou a ordem dos pedidos quando você lista um registro.
     DefaultSearchFilters=Filtros de busca padrão
     DefaultSortOrder=Ordem padrão dos pedidos
     DefaultFocus=Campos de foco padrão
    @@ -1144,11 +961,7 @@ ProductSetup=Configurações do módulo dos produtos
     ServiceSetup=Configurações do módulo de serviços
     ProductServiceSetup=Configurações dos módulos de produtos e serviços
     NumberOfProductShowInSelect=Max número de produtos na lista selecionada (0=sem limite)
    -ViewProductDescInFormAbility=Visualização das descrições do produto nos formulários (caso contrário como popup tooltip)
     MergePropalProductCard=Ativar na aba Arquivos Anexos ao produto/serviço uma opção para mesclar o documento PDF do produto à proposta PDF se o produto/serviço estiver na proposta
    -ViewProductDescInThirdpartyLanguageAbility=Visualização das descrições dos produtos no idioma do terceiro
    -UseSearchToSelectProductTooltip=Além disso, se você tem um grande número de produtos (> 100 000), você pode aumentar a velocidade, definindo PRODUCT_DONOTSEARCH_ANYWHERE constante a 1 em Setup Outro. Busca, então, ser limitada até o início da string.
    -UseSearchToSelectProduct=Aguarda você pressionar uma tecla antes de carregar o conteúdo de uma lista de produtos combo (isto pode melhorar o desempenho se você tiver um grande número de produtos, mas é menos conveniente)
     SetDefaultBarcodeTypeProducts=Tipo de código de barras default para usar nós produtos
     SetDefaultBarcodeTypeThirdParties=Tipo de código de barras default para usar nós terceiros
     UseUnits=Definir uma unidade de medida para a Quantidade durante a edição das linhas do pedido, proposta ou fatura
    @@ -1178,7 +991,6 @@ BarcodeDescQRCODE=Código de barras do tipo QR code
     GenbarcodeLocation=Ferramenta em linha de comando para geração de código de barras (usado pelo mecanismo interno para alguns tipos de código de barras)
     BarcodeInternalEngine=Mecanismo interno
     BarCodeNumberManager=Gerente de auto definir números de código de barras
    -WithdrawalsSetup=Configuração do módulo de pedidos com pagamento por Débito direto
     ExternalRSSSetup=Configurações importantes de RSS externo
     NewRSS=Novo RSS Feed
     RSSUrl=URL de RSS
    @@ -1194,7 +1006,6 @@ SendingsSetup=Configurações do módulo de envios
     SendingsReceiptModel=Modelo de recibo do envio
     SendingsNumberingModules=Módulos de númeração de envios
     SendingsAbility=Suporte para folhas de envios, para entregas de cliente
    -NoNeedForDeliveryReceipts=Na maioria dos casos, as planilhas de envio são usadas como planilhas para as entregas do cliente (lista de produtos para envio) e planilhas que são recebidas e assinadas pelo cliente. Dessa forma os recibos das entregas são uma função duplicada e é raramente ativada.
     FreeLegalTextOnShippings=Texto livre para envios
     DeliveryOrderNumberingModules=Módulo de numeração de recibos de produtos entregues
     DeliveryOrderModel=Modelo de recibo de produtos entregues
    @@ -1203,15 +1014,11 @@ FreeLegalTextOnDeliveryReceipts=Texto livre em recibos de entregas
     ActivateFCKeditor=Editor avançado ativo por:
     FCKeditorForCompany=Criação/edição do WYSIWIG nas descrições de elementos e nota (exceto produtos/serviços)
     FCKeditorForProduct=Criação/edição do WYSIWIG nas descrições de  produtos/serviços e nota
    -FCKeditorForProductDetails=Criação/edição do WYSIWIG nas linhas dos detalhes de produtos de todas entidades (orçamentos, pedidos, faturas, etc...). <font class="warning">Aviso: Usando essa opção nesse caso é extremamente NÃO recomendado, podendo causar problemas com caracteres especiais e no formato da página na construção do arquivo PDF.</font>
     FCKeditorForMailing=Criação/edição do WYSIWIG nos E-Mails massivos (ferramentas->emailing)
     FCKeditorForUserSignature=criação/edição do WYSIWIG nas assinaturas de usuários
     FCKeditorForMail=Criação/Edição WYSIWIG para todos os e-mails (exceto Ferramentas->eMailing)
    -OSCommerceErrorConnectOkButWrongDatabase=Conexão foi um sucesso mas o banco de dados não enxerga o banco de dados do OSCommerce (chave %s não achada na tabela %s).
    -OSCommerceTestOk=Conexão ao servidor '%s' no banco de dados '%s' com o usuário '%s' foi um sucesso.
    -OSCommerceTestKo1=Conexão ao servidor '%s' foi um sucesso mas o banco de dados '%s' não foi alcançado.
    +OSCommerceTestOk=Conexão para o servidor '%s' no banco de dados '%s' com o usuário '%s' foi bem sucedida.
     OSCommerceTestKo2=Conexão ao servidor '%s' com o usuário '%s' falhou.
    -IfYouUsePointOfSaleCheckModule=Se você usar um módulo Ponto de Venda (POS módulo fornecido por padrão ou outro módulo externo), esta configuração pode ser ignorado pelo seu modulo ponto de Venda. A maioria modulo ponto de Vendas são projetados para criar imediatamente uma fatura e diminuir estoque por padrão tudo o que são opções aqui. Então, se você precisa ou não ter uma diminuição de ações quando registrar uma venda a partir do seu ponto de venda, verifique também a configuração do seu módulo POS.
     MenuDeleted=Menu Deletado
     NotTopTreeMenuPersonalized=Menus personalizados não conectados à uma entrada do menu superior
     NewMenu=Novo Menu
    @@ -1226,7 +1033,6 @@ DetailUrl=URL onde o menu envia para você (URL absoluta ou link externo com htt
     DetailEnabled=Condição para mostra ou não entrar
     DetailRight=Condição para mostrar menus não autorizados em cinza
     DetailLangs=Nomes de arquivos lang para código de etiqueta da tradução
    -DetailTarget=Alvos por links (_blank topo abre uma nova janela)
     DetailLevel=Nível (-1:menu superior, 0:menu do cabeçario, >0 menu e sub-menu)
     ModifMenu=Modificar menu
     DeleteMenu=Deletar entrada do menu
    @@ -1237,44 +1043,30 @@ OptionVatMode=Imposto ICMS
     OptionVATDebitOption=Base em Acréscimo
     OptionVatDefaultDesc=ICMS é um imposto:<br>- Nas entregas dos bens (Nós usamos a data da fatura)<br>- Nos pagamentos dos serviços
     OptionVatDebitOptionDesc=ICMS é um imposto:<br>- Nas entregas dos bens (Nós usamos a data da fatura)<br>- Na emissão da fatura do serviço
    -SummaryOfVatExigibilityUsedByDefault=O tempo do ICMS exige por default as seguintes opções a serem escolhidas:
     SupposedToBePaymentDate=Data usada no pagamento
     SupposedToBeInvoiceDate=Data usada na fatura
     Buy=Compra
     Sell=Venda
     InvoiceDateUsed=Data usada na fatura
    -AccountancyCode=Código na Contabilidade
     AccountancyCodeSell=Código de contas de vendas
     AccountancyCodeBuy=Código de contas de compras
     AgendaSetup=Configurações do módulo de eventos e agenda
     PasswordTogetVCalExport=Chave para autorizar exportação do link
     PastDelayVCalExport=Não exportar eventos antigos de
    -AGENDA_USE_EVENT_TYPE=Usar os tipos de eventos (gerenciado no menu Configurações -> Dicionários -> Tipos de eventos da agenda)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Definido automaticamente esse valor padrão para o tipo de evento em evento criar formulário
    -AGENDA_DEFAULT_FILTER_TYPE=Use automaticamente este tipo de evento no filtro de busca da agenda
    -AGENDA_DEFAULT_FILTER_STATUS=Use automaticamente este estado no filtro das buscas da agenda
     AGENDA_DEFAULT_VIEW=Qual aba voçê quer abrir por padrão quando o menu Agenda e selecionado
     AGENDA_REMINDER_EMAIL=Ativar lembrete de evento <b> por emails </b> (A opção de lembrar / atraso pode ser definida em cada evento). Nota: Módulo <strong> 1 %s </strong> deve ser habilitado e configurado corretamente para que o lembrete seja enviado na freqüência correta.
    -AGENDA_REMINDER_BROWSER=Ativar lembrete de envento <b> no navegador de usuários </b> (quando a data do evento é atingida, cada usuário pode recusar isso a partir da pergunta de confirmação do navegador)
     AGENDA_REMINDER_BROWSER_SOUND=Habilitar a notificação sonora
     AGENDA_SHOW_LINKED_OBJECT=Exibir objeto conectado na visualização da agenda
     ClickToDialSetup=Configurações do módulo clique para discar
     ClickToDialUrlDesc=URL chamada quando clica-se no ícone do telefone.  Na URL, você pode usar as tags<br><b>__PHONETO__</b> que será substituída pelo número do telefone da pessoa a chamar<br><b>__PHONEFROM__</b> que será substituída pelo telefone da pessoa que está chamando (o seu)<br><b>__LOGIN__</b> que será substituída pelo login clicktodial (definido no cartão do usuário)<br><b>__PASS__</b> que será substituída pela senha clicktodial (definida no cartão do usuário).
    -ClickToDialDesc=Esto modo permite tornar os números telefônicos em link. Um clique neste ícone fará com que o seu telefone ligue para o número exibido. Isto pode ser usado para ligar para um sistema de Call Center do Dolibarr, o qual poderá ligar para um número em um sistema SIP, por exemplo.
     ClickToDialUseTelLink=Use apenas o link "tel." para os números de telefone
    -ClickToDialUseTelLinkDesc=Use este método se os seus usuários possuírem um softphone ou uma interface de programa instalada no mesmo computador do navegador, e usado para ligar quando você clica em um link no seu navegador que inicia com "tel.". Se você precisar de uma solução de um servidor completo (sem a necessidade de instalação de um programa local), você deve definir isto para "Não" e preencher o próximo campo.
     CashDeskSetup=Configurações do módulo do ponto de vendas
    -CashDeskThirdPartyForSell=Terceiro genérico para usar nas vendas
     CashDeskBankAccountForSell=Conta default para usar nos pagamentos em dinheiro
     CashDeskBankAccountForCheque=Conta default para usar nos pagamentos em cheque
     CashDeskBankAccountForCB=Conta default para usar nos pagamentos em cartão de crédito
    -CashDeskDoNotDecreaseStock=Desativar diminuição de ações quando uma venda é feita a partir de ponto de venda (se "não", diminuição de ações é feito para cada vendem feito a partir de POS, o que for opção definida no módulo de estoque).
     CashDeskIdWareHouse=Depósito para usar nas vendas
    -StockDecreaseForPointOfSaleDisabled=Diminuição do estoque pelo PDV desativado
     StockDecreaseForPointOfSaleDisabledbyBatch=Diminuir estoque no Ponto De Vendas não é compativel com o gerenciamento do lote
    -CashDeskYouDidNotDisableStockDecease=Você não desabilitou a redução do estoque quando realizando uma venda a partir do Ponto de Venda. Por isso um armazém é exigido.
     BookmarkSetup=Configurações do módulo de marcadores
    -BookmarkDesc=Esse módulo permite você gerenciar marcadores. Você pode também adicionar atalhos para qualquer página do Dolibarr ou sites externos no seu menu esquerdo.
     NbOfBoomarkToShow=Número máximo de marcadores para mostrar no menu esquerdo
     WebServicesSetup=Configurações do módulo de serviço de web
     WebServicesDesc=Ativando esse módulo, Dolibarr se torna um servidor de serviços web e fornece vários serviços web.
    @@ -1309,7 +1101,6 @@ ProjectsSetup=Configurações do módulo de projetos
     ProjectsModelModule=Modelo de documento de relatório de projeto
     TasksNumberingModules=Modelo de numeração de tarefas
     TaskModelModule=Modelo de numeração de relatório de tarefas
    -UseSearchToSelectProject=Aguardar você pressionar uma tecla antes de carregar o conteúdo da lista de projetos combinados (Isto pode aumentar a performance se você possui um grande número de projetos, mas isto não é tão conveniente)
     NewFiscalYear=Novo período de contabilidade
     OpenFiscalYear=Período da contabilidade em aberto
     CloseFiscalYear=Período da contabilidade fechada
    @@ -1333,8 +1124,6 @@ NoModueToManageStockIncrease=Nenhum módulo disponível foi ativado para gerenci
     YouMayFindNotificationsFeaturesIntoModuleNotification=Você pode encontrar opções para notificações por email por habilitar e configurar o módulo "Notificação".
     ListOfNotificationsPerUser=Lista de notificações por usuário*
     ListOfNotificationsPerUserOrContact=Lista de notificações por usuário* ou por contato**
    -GoOntoUserCardToAddMore=Ir para a aba "Notificações" de um usuário para adicionar ou remover as notificações para os usuários
    -GoOntoContactCardToAddMore=Ir para a aba "Notificações" de um terceiro para adicionar ou remover as notificações para contatos/endereços
     BackupDumpWizard=Assistente para construir arquivo de despejo de backup do banco de dados
     SomethingMakeInstallFromWebNotPossible=A instalação do módulo externo não é possível a partir da interface web pelo seguinte motivo:
     SomethingMakeInstallFromWebNotPossible2=Por esta razão, o processo de atualização descrito aqui é apenas manual de passos que um usuário privilegiado pode fazer.
    @@ -1354,15 +1143,12 @@ BackgroundTableLineEvenColor=Cor do fundo, mesmo para linhas de tabela
     MinimumNoticePeriod=O período mínimo de observação (O seu pedido de licença deve ser feito antes de esse atraso)
     NbAddedAutomatically=Número de dias adicionados para contadores de usuários (automaticamente) a cada mês
     EnterAnyCode=Este campo contém uma referência para identificar uma linha. Digite qualquer valor de sua escolha, mas sem caracteres especiais.
    -UnicodeCurrency=Insira aqui entre colchetes, o número em bytes que representam o símbolo da moeda. Por exemplo: para $, inserir [36] - para real brasileiro R$ [82,36] - para €, inserir [8364]
     ColorFormat=A cor RGB está no formato HEX, ex.: FF0000
     PositionIntoComboList=Posição de linha em listas de combinação
     SellTaxRate=Taxa de imposto sobre venda
     RecuperableOnly=Sim para VAT "Não Percebido, mas Recuperável" dedicado a alguns estados na França. Mantenha o valor como "Não" em todos os outros casos.
     UrlTrackingDesc=Se o prestador do serviço de transporte oferece uma página ou um site na web para verificação da situação do seu envio, você pode inserir seu endereço aqui. Você pode usar a chave {TRACKID} nos parâmetros da URL de forma que o sistema a substitua com o valor do número de rastreamento que o usuário inseriu no cartão de envio.
    -OpportunityPercent=Quando você cria uma oportunidade, você definiu um valor estimado para o projeto. De acordo com a situação da oportunidade, este valor pode ser multiplicado por esta taxa para avaliação do valor global que todas as suas oportunidades podem gerar. O valor é uma porcentagem (entre 0 e 100).
     TemplateForElement=O registro deste tema é dedicado a qual elemento
    -TemplateIsVisibleByOwnerOnly=Template é visível somente pelo proprietário
     VisibleEverywhere=Visível em qualquer lugar
     VisibleNowhere=Agora visível
     FixTZ=Consertar TimeZone
    @@ -1378,10 +1164,7 @@ YouUseLastStableVersion=Você utiliza a última versão estável
     TitleExampleForMajorRelease=Exemplo de mensagem que você pode usar para anunciar esta importante versão (sinta-se à vontade para usar isso nos seus websites)
     TitleExampleForMaintenanceRelease=Exemplo de mensagem que você pode usar para anunciar esta versão de manutenção (sinta-se à vontade para usar isso nos seus websites)
     ExampleOfNewsMessageForMajorRelease=O ERP e CRM Dolibarr %s está disponível. A versão %s é um lançamento principal com diversas novas funções para os usuários e desenvolvedores. Você pode baixá-la a partir da área de download do portal https://www.dolibarr.org (sub-diretório Versões estáveis). Você pode ler o <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> com a lista completa de mudanças.
    -ExampleOfNewsMessageForMaintenanceRelease=O ERP e CRM Dolibarr %s está disponível. A versão %s é uma versão de manutenção, assim ela contém somente correção de bugs. Nós recomendamos que qualquer um use uma versão mais antiga para então atualizá-la. Como qualquer versão de manutenção, nenhuma nova função, nem uma mudança na estrutura dos dados está presente. Você pode baixá-la a partir da área de download no portal https://www.dolibarr.org (no sub-diretório de Versões estáveis). Você pode ler o arquivo <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> com a relação completa de mudanças.
    -MultiPriceRuleDesc=Quando a opção "Diversos níveis de preço por produto/serviço" estiver habilitada, você pode definir diferentes preços (um por nível de preço) para cada produto. Para ganhar tempo, você pode inserir aqui a regra para ter um preço para cada nível sendo calculada automaticamente de acordo com o preço do primeiro nível, desta forma você precisará apenas inserir o preço do primeiro nível para cada produto. Está página existe apenas para lhe ajudar a ganhar tempo e pode ser útil somente se os seus preços para cada nível estão relacionados ao primeiro nível. Você pode ignorar esta página na maioria das vezes.
     ModelModulesProduct=Temas para os documentos do produto
    -ToGenerateCodeDefineAutomaticRuleFirst=Para estar apto a gerar códigos automaticamente, você deve definir primeiro um gerente para definir automaticamente o número do código de barras.
     SeeSubstitutionVars=Veja * nota para a lista das possíveis variáveis de substituição
     SeeChangeLog=Ver o arquivo ChangeLog (somente em inglês)
     AllPublishers=Todos os que publicam
    @@ -1394,19 +1177,10 @@ AddHooks=Adicionar ganchos
     AddTriggers=Adicionar disparadores
     AddModels=Adicionar temas de documentos ou de numeração
     DetectionNotPossible=Não foi possível a detecção
    -UrlToGetKeyToUseAPIs=URL para obtenção do token para usar a API (uma vez que o token tenha sido recebido, ele é salvo na tabela do usuário no banco de dados e deve ser inserido em cada chamada de API)
     ListOfAvailableAPIs=Lista de API's disponíveis
    -activateModuleDependNotSatisfied=O módulo "%s" depende do módulo "%s" que está faltando, assim o módulo "%1$s" pode não funcionar corretamente. Favor instalar o módulo "%2$s" ou desabilitar o módulo "%1$s" se você deseja estar livre de qualquer surpresa.
    -CommandIsNotInsideAllowedCommands=O comando que você tenta executar não está na lista de comandos permitidos definidos no parâmetro <strong>$dolibarr_main_restrict_os_commands</strong> no arquivo <strong>conf.php</strong>.
     LandingPage=Página de destino
    -SamePriceAlsoForSharedCompanies=Se você usa um módulo de múltiplas empresas, com a escolha de "Preço único", o preço será também o mesmo para todas as empresas se os produtos são compartilhados entre os ambientes.
     ModuleEnabledAdminMustCheckRights=O módulo foi ativado. As permissões para módulo(s) ativado foram fornecidas apenas aos usuários de administração. Talvez seja necessário conceder permissões para outros usuários ou grupos manualmente, se necessário.
    -UserHasNoPermissions=Este usuário não possui permissões definidas
    -TypeCdr=Use "Nenhum" se a data do prazo de pagamento da fatura mais um delta em dias (delta é o campo "Nº de dias")<br>Use "No fim do mês", se, após o delta, a data deve ser aumentada para alcançar o fim do mês (+ um "Prazo" opcional em dias)<br>Use "Atual/Próximo" para ter a data do prazo de pagamento sendo o primeiro Nº do mês (N é armazenado no campo "Nº de dias")
     BaseCurrency=Moeda de referência da companhia (ir para a configuração da companhia para alterá-la)
    -WarningNoteModuleInvoiceForFrenchLaw=Este módulo %s é compatível com as leis francesas (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=Este módulo %s está em conformidade com as leis francesas (Loi Finance 2016), pois o módulo Registros Não Reversíveis é ativado automaticamente.
    -WarningInstallationMayBecomeNotCompliantWithLaw=Você tenta instalar o módulo %s que é um módulo externo. A ativação de um módulo externo significa que você confia em quem o desenvolveu e que você tem certeza que este módulo não altera negativamente o comportamento do aplicativo e que está em conformidade com as leis do seu país (%s). Se o módulo traz uma função ilegal, você se torna responsável pelo uso de um programa não legal.
     MAIN_PDF_MARGIN_LEFT=Margem esquerda no PDF
     MAIN_PDF_MARGIN_RIGHT=Margem direita no PDF
     MAIN_PDF_MARGIN_TOP=Margem superior no PDF
    diff --git a/htdocs/langs/pt_BR/agenda.lang b/htdocs/langs/pt_BR/agenda.lang
    index 3c19a695735..52656c887d0 100644
    --- a/htdocs/langs/pt_BR/agenda.lang
    +++ b/htdocs/langs/pt_BR/agenda.lang
    @@ -25,7 +25,6 @@ NewCompanyToDolibarr=Terceiro %s criados
     ContractValidatedInDolibarr=Contrato %s validado
     PropalClosedSignedInDolibarr=Proposta %s assinada
     PropalClosedRefusedInDolibarr=Proposta %s declinada
    -PropalValidatedInDolibarr=Orçamento %s validado
     PropalClassifiedBilledInDolibarr=Proposta %s classificada faturada
     InvoiceValidatedInDolibarr=Fatura %s validada
     InvoiceValidatedInDolibarrFromPos=Fatura %s validada no POS
    @@ -56,7 +55,6 @@ SupplierOrderSentByEMail=Pedido de fornecedor %s enviado por e-mail
     SupplierInvoiceSentByEMail=Fatura de fornecedor %s enviado por e-mail
     ShippingSentByEMail=Frete %s enviado por e-mail
     ShippingValidated=Envio %s validado
    -InterventionSentByEMail=Intervenção %s enviado por e-mail
     ProposalDeleted=Proposta excluída
     OrderDeleted=Pedido excluído
     InvoiceDeleted=Fatura excluída
    diff --git a/htdocs/langs/pt_BR/assets.lang b/htdocs/langs/pt_BR/assets.lang
    new file mode 100644
    index 00000000000..877bd41ecd1
    --- /dev/null
    +++ b/htdocs/langs/pt_BR/assets.lang
    @@ -0,0 +1,59 @@
    +# Copyright (C) 2018      Alexandre Spangaro   <aspangaro@zendsi.com>
    +#
    +# 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
    +# the Free Software Foundation, either version 3 of the License, or
    +# (at your option) any later version.
    +#
    +# This program is distributed in the hope that it will be useful,
    +# but WITHOUT ANY WARRANTY; without even the implied warranty of
    +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +# GNU General Public License for more details.
    +#
    +# You should have received a copy of the GNU General Public License
    +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
    +
    +#
    +# Generic
    +#
    +Assets = Ativos
    +NewAsset = Novo Ativo
    +AccountancyCodeAsset = Código contábil (ativo)
    +AccountancyCodeDepreciationAsset = Código contábil (conta de ativo de depreciação)
    +AccountancyCodeDepreciationExpense = Código contábil (conta de despesas de depreciação)
    +NewAssetType=Novo tipo de ativo
    +AssetsTypeSetup=Configuração do tipo de ativos
    +AssetTypeModified=Tipo de ativo modificado
    +AssetType=Tipo de ativo
    +AssetsLines=Ativos
    +DeleteType=Excluir
    +DeleteAnAssetType=Excluir um tipo de recurso
    +ConfirmDeleteAssetType=Tem certeza de que deseja excluir este tipo de recurso?
    +ShowTypeCard=Ver tipo '%s'
    +
    +# Module label 'ModuleAssetsName'
    +ModuleAssetsName = Ativos
    +# Module description 'ModuleAssetsDesc'
    +ModuleAssetsDesc = Descrição dos Ativos
    +
    +#
    +# Admin page
    +#
    +AssetsSetup = Configuração de Ativos
    +Settings = Configurações
    +AssetsSetupPage = Página de configuração de ativos
    +ExtraFieldsAssetsType = Atributos Complementares (Tipo de Ativos)
    +AssetsType=Tipo de ativo
    +AssetsTypeId=Id Tipo de ativo
    +AssetsTypeLabel=Rótulo do tipo de ativo
    +AssetsTypes=Tipos de ativos
    +
    +#
    +# Menu
    +#
    +MenuAssets = Ativos
    +MenuNewAsset = Novo Ativo
    +MenuTypeAssets = Digitar ativos
    +MenuListAssets = Lista
    +MenuNewTypeAssets = Novo tipo
    +MenuListTypeAssets = Lista
    diff --git a/htdocs/langs/pt_BR/banks.lang b/htdocs/langs/pt_BR/banks.lang
    index 8ac26437ded..75d60abddc7 100644
    --- a/htdocs/langs/pt_BR/banks.lang
    +++ b/htdocs/langs/pt_BR/banks.lang
    @@ -32,10 +32,7 @@ BankAccountDomiciliation=Endereço da conta
     BankAccountCountry=País da conta
     BankAccountOwner=Nome do titular da conta
     BankAccountOwnerAddress=Endereço do titular da conta
    -RIBControlError=Verificação da integridade dos valores falhou. Isso significa que esse número de conta não esta completo ou errado (verifique país, número e agência).
     CreateAccount=Criar conta
    -NewFinancialAccount=Nova conta financeira
    -MenuNewFinancialAccount=Nova conta financeira
     EditFinancialAccount=Editar conta
     LabelBankCashAccount=Rótulo do banco ou caixa
     AccountType=Tipo de conta
    @@ -81,8 +78,6 @@ NotReconciled=Não conciliada
     SupplierInvoicePayment=Pagamento a fornecedores
     SocialContributionPayment=Pagamento de contribuição social
     BankTransfers=Transferências bancárias
    -MenuBankInternalTransfer=Transferência interna
    -TransferDesc=Transferência de uma conta para outra, o Dolibarr criará dois registros (um débito na conta de origem e um crédito na conta de destino. A mesma quantia (exceto o sinal), rótulo e data serão usados para esta transação).
     TransferFromToDone=Uma transferência de <b>%s</b> para <b>%s</b> de <b>%s</b> %s foi registrado.
     ValidateCheckReceipt=Validar este comprovante de cheque?
     ConfirmValidateCheckReceipt=Você tem certeza que deseja validar este comprovante de cheque, mesmo sabendo que nenhuma mudança poderá ser feita depois?
    @@ -91,6 +86,7 @@ ConfirmDeleteCheckReceipt=Você tem certeza que deseja excluir este comprovante
     BankChecks=Cheques do banco
     BankChecksToReceipt=Cheques aguardando depósito
     ShowCheckReceipt=Mostrar recibo de depósito do cheque
    +NumberOfCheques=Nº do Cheque
     DeleteTransaction=Excluir transação
     ConfirmDeleteTransaction=Você tem certeza que deseja excluir esta transação?
     ThisWillAlsoDeleteBankRecord=Isto também excluirá as transações geradas
    @@ -100,14 +96,13 @@ ExportDataset_banque_2=Comprovante de depósito
     TransactionOnTheOtherAccount=Transação de outra conta
     PaymentNumberUpdateSucceeded=Número de pagamentos atualizado com sucesso
     PaymentNumberUpdateFailed=Número de pagamento não foi possível ser atualizada
    -PaymentDateUpdateSucceeded=Data de pagamento atualizada com sucesso
     PaymentDateUpdateFailed=Data de pagamento não foi possível ser atualizada
     Transactions=Transações
     BankTransactionLine=Entrada no bancária
    +AllAccounts=Todas as contas Banco e Caixa
     BackToAccount=Voltar para conta
     ShowAllAccounts=Mostrar todas as contas
    -FutureTransaction=Transação futura. Não pode ser conciliada.
    -SelectChequeTransactionAndGenerate=Selecionar/filtrar cheques para incluir dentro de recibos de cheques depositados e clique em "Criar".
    +SelectChequeTransactionAndGenerate=Selecione / filtrar cheques para incluir no recibo do cheque caução e clique em "Criar".
     InputReceiptNumber=Escolha um estrato bancário relacionado com conciliação. Use um valor numérico classificável (tal como, YYYYMM)
     EventualyAddCategory=Eventualmente, especifique a categoria na qual os registros será classificado
     ToConciliate=Conciliar?
    @@ -116,16 +111,9 @@ DefaultRIB=BAN padrão
     LabelRIB=Rótulo do BAN
     DeleteARib=Excluir registro de BAN
     ConfirmDeleteRib=Você tem certeza que deseja excluir este registro BAN?
    -RejectCheck=Cheque devolvido
     ConfirmRejectCheck=Você tem certeza que deseja marcar este cheque como recusado?
     RejectCheckDate=Data que o cheque foi devolvido
    -CheckRejected=Cheque devolvido
    -CheckRejectedAndInvoicesReopened=Cheque devolvido e faturas reabertas
     BankAccountModelModule=Temas de documentos para as contas bancárias.
    -DocumentModelSepaMandate=Tema do mandato SEPA. Útil somente para os países europeus na Comunidade Europeia.
    +DocumentModelSepaMandate=Modelo de mandato SEPA. Uso somente em países da União Européia
     DocumentModelBan=Tema para imprimir a página com a informação BAN.
    -NewVariousPayment=Novos pagamentos diversos
    -ShowVariousPayment=Mostrar pagamentos diversos
    -AddVariousPayment=Adicionar pagamentos diversos
     YourSEPAMandate=Seu mandato Área Única de Pagamentos em Euros
    -FindYourSEPAMandate=Este é o seu mandato da SEPA (Área Única de Pagamentos em Euros) para autorizar a nossa empresa a fazer uma ordem de débito direto para o seu banco. Obrigado em devolvê-lo assinado (digitalização do documento assinado) ou enviado por correio para
    diff --git a/htdocs/langs/pt_BR/bills.lang b/htdocs/langs/pt_BR/bills.lang
    index bee5a02eaad..ca1d2ef00aa 100644
    --- a/htdocs/langs/pt_BR/bills.lang
    +++ b/htdocs/langs/pt_BR/bills.lang
    @@ -46,7 +46,6 @@ SupplierBills=Faturas de fornecedores
     PaymentBack=Reembolso de pagamento
     CustomerInvoicePaymentBack=Reembolso de pagamento
     PaymentsBack=Reembolsos de pagamentos
    -paymentInInvoiceCurrency=na moeda das faturas
     PaidBack=Reembolso pago
     DeletePayment=Deletar pagamento
     ConfirmDeletePayment=Você tem certeza que deseja excluir este pagamento?
    @@ -61,8 +60,6 @@ PaymentsBackAlreadyDone=Reembolsos de pagamentos já feitos
     PaymentRule=Regra de pagamento
     PaymentMode=Forma de Pagamento
     PaymentTypeDC=Cartão de débito / crédito
    -IdPaymentMode=Tipo de pagamento (id)
    -CodePaymentMode=Tipo de pagamento (código)
     LabelPaymentMode=Tipo de pagamento (rótulo)
     PaymentModeShort=Forma de Pagamento
     PaymentTerm=Termo de pagamento
    @@ -196,14 +193,11 @@ SendBillByMail=Enviar a fatura por e-mail
     SendReminderBillByMail=Enviar o restante por e-mail
     RelatedRecurringCustomerInvoices=Faturas recorrentes relacionadas ao cliente
     MenuToValid=Validar
    -DateMaxPayment=Pagamento devido em
    -DatePointOfTax=Ponto de imposto
     ClassifyBill=Classificar fatura
     SupplierBillsToPay=Faturas de fornecedores não pagos
     CustomerBillsUnpaid=Faturas de clientes não pagos
     SetConditions=Definir condições de pagamento
     SetRevenuStamp=Definir o selo da receita
    -RecurringInvoices=Faturas recorrentes
     RepeatableInvoice=Fatura pré-definida
     RepeatableInvoices=Faturas pré-definidas
     Repeatable=Pré-definida
    @@ -220,21 +214,15 @@ ReductionShort=Redução
     Reductions=Reduções
     ReductionsShort=Reduções
     AddDiscount=Criar desconto
    -AddGlobalDiscount=Criar desconto fixo
     EditGlobalDiscounts=Editar desconto fixo
     ShowDiscount=Mostrar desconto
     ShowReduc=Mostrar o desconto
     GlobalDiscount=Desconto global
    -CreditNote=Nota de crédito
    -CreditNotes=Notas de crédito
     Deposit=Depósito
     Deposits=Depósitos
     DiscountFromCreditNote=Desconto de nota de crédito %s
     DiscountFromDeposit=Pagamentos a partir de depósito na fatura %s
     AbsoluteDiscountUse=Esse tipo de crédito pode ser usado na fatura antes da validação
    -CreditNoteDepositUse=A fatura deve ser validada para utilizar este tipo de crédito
    -NewGlobalDiscount=Novo desconto fixo
    -NewRelativeDiscount=Novo desconto relativo
     DiscountOfferedBy=Concedido por
     BillAddress=Endereço de cobrança
     HelpEscompte=Esse desconto é um desconto concedido para cliente porque o pagamento foi feito antes do prazo.
    @@ -244,7 +232,6 @@ IdSocialContribution=ID contribuição social
     PaymentId=ID pagamento
     PaymentRef=Ref. do pagamento
     InvoiceId=ID fatura
    -InvoiceRef=Ref. fatura
     InvoiceDateCreation=Data da criação da fatura
     InvoiceStatus=Status da fatura
     InvoiceNote=Nota de fatura
    @@ -258,32 +245,25 @@ ConfirmSplitDiscount=Você tem certeza que deseja dividir este desconto de <b>%s
     TypeAmountOfEachNewDiscount=Quantia entrada para cada de duas partes:
     TotalOfTwoDiscountMustEqualsOriginal=Total dos dois descontos deve ser igual ao desconto original.
     ConfirmRemoveDiscount=Você tem certeza que deseja remover este desconto?
    -RelatedCustomerInvoices=Faturas de clientes relacionadas
     RelatedSupplierInvoices=Faturas de fornecedores relacionados
     LatestRelatedBill=Últimas fatura correspondente
     WarningBillExist=Atenção, um ou mais fatura já existem
     MergingPDFTool=Mesclando ferramenta PDF
     AmountPaymentDistributedOnInvoice=Valor do pagamento distribuído na fatura
     PaymentOnDifferentThirdBills=Permitir pagamentos em diferentes notas de terceiros, mas de uma mesma companhia mãe
    -PaymentNote=Nota de pagamento
     ListOfPreviousSituationInvoices=Lista de faturas na situação anterior
     ListOfNextSituationInvoices=Lista das faturas na próxima situação
     FrequencyPer_d=A cada %s dias
     FrequencyPer_m=A cada %s meses
     FrequencyPer_y=A cada %s anos
    -FrequencyUnit=Unidade de frequência
     toolTipFrequency=Exemplos: <br> <b> fixar 7, Day </b>: dê uma nova fatura a cada 7 dias <br> <b> Set 3, Month </b>: dê uma nova fatura a cada 3 meses
    -NextDateToExecution=Data para a próxima geração de fatura
     NextDateToExecutionShort=Data da próxima geração.
    -DateLastGeneration=Data da última geração
     DateLastGenerationShort=Data da última geração.
     InvoiceAutoValidate=Validar as faturas automaticamente
     GeneratedFromRecurringInvoice=Gerar a partir do tem de fatura recorrente %s
     DateIsNotEnough=Data ainda não alcançada
     InvoiceGeneratedFromTemplate=Fatura %s gerada a partir do tema de fatura recorrente %s
     WarningInvoiceDateInFuture=Atenção, a data da fatura é superior à data atual
    -WarningInvoiceDateTooFarInFuture=Atenção, a data da fatura está muito longe da data atual
    -ViewAvailableGlobalDiscounts=Ver descontos disponíveis
     PaymentConditionShortRECEP=Após o recebimento
     PaymentConditionRECEP=Após o recebimento
     PaymentConditionShort30DENDMONTH=30 dias do fim do mês
    @@ -293,14 +273,6 @@ PaymentCondition60DENDMONTH=Dentro de 60 dias após o fim do mês
     PaymentConditionShortPT_DELIVERY=Na entrega
     PaymentConditionPT_ORDER=No pedido
     PaymentConditionPT_5050=50%% adiantado e 50%% na entrega
    -PaymentConditionShort10D=10 dias
    -PaymentCondition10D=10 dias
    -PaymentConditionShort10DENDMONTH=10 dias do final do mês
    -PaymentCondition10DENDMONTH=Dentro de 10 dias após o final do mês
    -PaymentConditionShort14D=14 dias
    -PaymentCondition14D=14 dias
    -PaymentConditionShort14DENDMONTH=14 dias do final do mês
    -PaymentCondition14DENDMONTH=Dentro de 14 dias após o final do mês
     FixAmount=Corrigir valor
     VarAmount=Variavel valor (%% total)
     PaymentTypePRE=Pedido com pagamento em Débito direto
    @@ -311,8 +283,6 @@ PaymentTypeTIP=TIP (Documentos contra Pagamento)
     PaymentTypeShortTIP=Pagamento TIP
     PaymentTypeTRA=Cheque administrativo
     PaymentTypeShortTRA=Minuta
    -PaymentTypeFAC=Fator
    -PaymentTypeShortFAC=Fator
     BankDetails=Detalhes bancário
     BankCode=Código bancário
     DeskCode=Código de mesa
    @@ -354,7 +324,6 @@ ChequesReceipts=Recibos de cheques
     ChequesArea=Área de cheques depositados
     ChequeDeposits=depósitos de cheques
     DepositId=Depósito Id
    -NbCheque=Número de cheques
     CreditNoteConvertedIntoDiscount=Este %s foi convertido em %s
     UsBillingContactAsIncoiveRecipientIfExist=Usar o endereço do contato de faturamento do cliente ao invés do endereço de terceiro como recibo das faturas
     ShowUnpaidAll=Mostras todas as faturas não pagas
    @@ -389,7 +358,6 @@ TypeContact_facture_external_SERVICE=Contato de serviço de cliente
     TypeContact_invoice_supplier_internal_SALESREPFOLL=Representativo seguido de fatura de fornecedor
     TypeContact_invoice_supplier_external_BILLING=Contato de fatura de fornecedor
     TypeContact_invoice_supplier_external_SHIPPING=Contato de envio de fornecedor
    -TypeContact_invoice_supplier_external_SERVICE=Contato de serviço do fornecedor
     InvoiceFirstSituationAsk=Primeira situação da fatura
     InvoiceFirstSituationDesc=A <b>situação faturas</b> são amarradas às situações relacionadas com uma progressão, por exemplo, a progressão de uma construção. Cada situação é amarrada a uma fatura.
     InvoiceSituation=Situação da fatura
    @@ -407,7 +375,6 @@ PDFCrevetteSituationNumber=Situação Nº %s
     PDFCrevetteSituationInvoiceLineDecompte=Situação da fatura - CONTAR
     PDFCrevetteSituationInvoiceTitle=Situação da fatura
     PDFCrevetteSituationInvoiceLine=Situação Nº %s : Fat. Nº %s em %s
    -TotalSituationInvoice=Situação total
     invoiceLineProgressError=A linha de progresso da fatura não pode ser maior ou igual à próxima linha da fatura
     updatePriceNextInvoiceErrorUpdateline=Erro : atualizar preço na linha da fatura : %s
     ToCreateARecurringInvoice=Para criar uma fatura recorrente para este contrato, crie primeiro este rascunho de fatura, converta-a em um tema de fatura e defina então a frequência de geração das próximas faturas.
    @@ -415,8 +382,6 @@ ToCreateARecurringInvoiceGene=Para gerar as futuras faturas regular e manualment
     ToCreateARecurringInvoiceGeneAuto=Se você deseja ter tais faturas sendo geradas automaticamente, peça ao seu Administrador para habilitar e configurar o módulo <strong>%s</strong>. Note que ambos os métodos (manual e automático) podem ser usados em conjunto sem o risco de duplicação.
     DeleteRepeatableInvoice=Excluir tema de fatura
     ConfirmDeleteRepeatableInvoice=Você tem certeza que deseja excluir o tema de fatura?
    -CreateOneBillByThird=Crie uma fatura por terceiro (caso contrário, uma fatura por pedido)
     BillCreated=%s conta(s) criada(s)
     StatusOfGeneratedDocuments=Status da geração de documentos
     DoNotGenerateDoc=Não gere arquivo de documento
    -AutogenerateDoc=Auto gerar arquivo de documento
    diff --git a/htdocs/langs/pt_BR/blockedlog.lang b/htdocs/langs/pt_BR/blockedlog.lang
    new file mode 100644
    index 00000000000..35e2dc8dd37
    --- /dev/null
    +++ b/htdocs/langs/pt_BR/blockedlog.lang
    @@ -0,0 +1,53 @@
    +BlockedLog=Logs nao modificaveis
    +Field=Campo
    +BlockedLogDesc=Este módulo rastreia alguns eventos em um log inalterável (que você não pode modificar uma vez gravado) em uma cadeia de blocos, em tempo real. Este módulo fornece compatibilidade com os requisitos das leis de alguns países (como a França com a lei Finança 2016 - Norma NF535).
    +Fingerprints=Eventos e impressoes digitais arquivados
    +FingerprintsDesc=Esta é a ferramenta para procurar ou extrair os logs inalteráveis. Logs inalteráveis são gerados e arquivados localmente em uma tabela dedicada, em tempo real, quando você registra um evento de negócios. Você pode usar essa ferramenta para exportar esse arquivo e salvá-lo em um suporte externo (alguns países, como a França, pedem que você faça isso todos os anos). Note que, não há nenhum recurso para limpar este log e todas as mudanças tentadas ser feitas diretamente neste log (por um hacker, por exemplo) serão reportadas com uma impressão digital não válida. Se você realmente precisar limpar essa tabela porque usou seu aplicativo para fins de demonstração / teste e deseja limpar seus dados para iniciar sua produção, peça ao seu revendedor ou integrador para redefinir seu banco de dados (todos os seus dados serão removidos).
    +CompanyInitialKey=Chave inicial da empresa (hash do bloco genesis)
    +BrowseBlockedLog=Logs nao modificaveis
    +ShowAllFingerPrintsMightBeTooLong=Mostrar todos os Logs Arquivados (pode ser demorado)
    +ShowAllFingerPrintsErrorsMightBeTooLong=Mostrar todos os arquivos de log inválidos (pode demorar)
    +DownloadBlockChain=Baixar impressoes digitais
    +KoCheckFingerprintValidity=O log arquivado não é válido. Isso significa que alguém (um hacker?) Modificou alguns dados desse registro arquivado depois que foi gravado ou apagou o registro arquivado anterior (verifique se a linha com o número anterior existe).
    +OkCheckFingerprintValidity=O log arquivado é válido. Isso significa que todos os dados nesta linha não foram modificados e o registro segue o gravado anteriormente.
    +OkCheckFingerprintValidityButChainIsKo=O log arquivado parece válido em comparação com o anterior, mas a cadeia foi previamente corrompida.
    +AddedByAuthority=Salvo na autoridade remota
    +NotAddedByAuthorityYet=Ainda não armazenado em autoridade remota
    +ShowDetails=Mostrar detalhes salvos
    +logPAYMENT_VARIOUS_CREATE=Pagamento (nao vinculado com a fatura) criado
    +logPAYMENT_VARIOUS_MODIFY=Pagamento (nao vinculado com a fatura) modificado
    +logPAYMENT_VARIOUS_DELETE=Pagamento (nao vinculado com a fatura) delete logico
    +logPAYMENT_ADD_TO_BANK=Pagamento adicionado ao banco
    +logPAYMENT_CUSTOMER_CREATE=Pagamento do cliente criado
    +logPAYMENT_CUSTOMER_DELETE=Exclusão lógica de pagamento do cliente
    +logDONATION_PAYMENT_CREATE=Pagamento de doação criado
    +logDONATION_PAYMENT_DELETE=Exclusão lógica de pagamento de doação
    +logBILL_PAYED=Fatura do cliente paga
    +logBILL_UNPAYED=Conjunto de faturas do cliente não pago
    +logBILL_VALIDATE=Fatura de cliente confirmada
    +logBILL_SENTBYMAIL=Fatura do cliente enviada por email
    +logBILL_DELETE=Fatura do cliente excluída logicamente
    +logMODULE_RESET=O módulo BlockedLog foi desativado
    +logMODULE_SET=O módulo BlockedLog foi ativado
    +logDON_VALIDATE=Doação validada
    +logDON_MODIFY=Doação modificada
    +logDON_DELETE=Exclusão lógica de doação
    +logMEMBER_SUBSCRIPTION_CREATE=Inscrição de membro criada
    +logMEMBER_SUBSCRIPTION_MODIFY=Inscrição de membro modificada
    +logMEMBER_SUBSCRIPTION_DELETE=Exclusão lógica de assinatura de membro
    +BlockedLogBillDownload=Download da fatura do cliente
    +BlockedLogBillPreview=Pré-visualização da fatura do cliente
    +BlockedlogInfoDialog=Detalhes do log
    +ListOfTrackedEvents=Lista de eventos rastreados
    +Fingerprint=Impressao digial
    +DownloadLogCSV=Exportar logs arquivados (CSV)
    +logDOC_PREVIEW=Pré -visualização de um documento validado para imprimir ou baixar
    +logDOC_DOWNLOAD=Download de um documento validado para imprimir ou enviar
    +DataOfArchivedEvent=Dados completos do evento arquivado
    +ImpossibleToReloadObject=Objeto original (tipo %s, id %s) não vinculado (consulte a coluna 'Dados completos' para obter dados salvos inalterados)
    +BlockedLogAreRequiredByYourCountryLegislation=O módulo Logs Inalteráveis ​​pode ser exigido pela legislação do seu país. Desabilitar este módulo pode invalidar quaisquer transações futuras com relação à lei e ao uso de software legal, já que elas não podem ser validadas por uma auditoria fiscal.
    +BlockedLogActivatedBecauseRequiredByYourCountryLegislation=O módulo Logs Inalteráveis ​​foi ativado por causa da legislação do seu país. A desativação deste módulo pode invalidar quaisquer transações futuras com relação à lei e ao uso de software legal, já que elas não podem ser validadas por uma auditoria fiscal.
    +BlockedLogDisableNotAllowedForCountry=Lista de países onde o uso deste módulo é obrigatório (apenas para evitar desabilitar o módulo por erro, se o seu país estiver nesta lista, desabilitar o módulo não é possível sem primeiro editar esta lista. Note também que habilitar / desabilitar este módulo irá manter uma faixa no log inalterável).
    +OnlyNonValid=Nao valido
    +TooManyRecordToScanRestrictFilters=Muitos registros para digitalizar / analisar. Por favor, restrinja a lista com filtros mais restritivos.
    +RestrictYearToExport=Limitar mes / ano a se exportar
    diff --git a/htdocs/langs/pt_BR/categories.lang b/htdocs/langs/pt_BR/categories.lang
    index e622b9b09e2..d7b6b1d718d 100644
    --- a/htdocs/langs/pt_BR/categories.lang
    +++ b/htdocs/langs/pt_BR/categories.lang
    @@ -71,7 +71,6 @@ CatSupLinks=Ligações entre fornecedores e tags / categorias
     CatCusLinks=Relação/links entre clientes / perspectivas e tags / categorias
     CatProdLinks=Relação/links entre produtos / serviços e tags / categorias
     CatProJectLinks=Links entre projetos e tags/categorias
    -DeleteFromCat=Remover de tags / categoria
     ExtraFieldsCategories=atributos complementares
     CategoriesSetup=Configuração Tags / categorias
     CategorieRecursiv=Fazer a ligação com os pais tag/categoria automaticamente
    diff --git a/htdocs/langs/pt_BR/companies.lang b/htdocs/langs/pt_BR/companies.lang
    index b7a44346b8d..7552724fd3c 100644
    --- a/htdocs/langs/pt_BR/companies.lang
    +++ b/htdocs/langs/pt_BR/companies.lang
    @@ -4,9 +4,6 @@ ErrorSetACountryFirst=Defina o país primeiro
     ConfirmDeleteCompany=Você tem certeza que deseja excluir esta empresa e toda a informação associada?
     DeleteContact=Excluir um contato/endereço
     ConfirmDeleteContact=Você tem certeza que deseja excluir este contato e toda a informação associada?
    -MenuNewThirdParty=Novo terceiro
    -MenuNewCustomer=Novo cliente
    -MenuNewProspect=Novo prospecto de cliente
     MenuNewPrivateIndividual=Novo particular
     CreateThirdPartyOnly=Adicionar terceiro
     CreateThirdPartyAndContact=Criar um terceiro + um contato interno
    @@ -18,16 +15,11 @@ Contacts=Contatos/Endereços
     ThirdPartyContacts=Contato de terceiros
     ThirdPartyContact=Contato/endereço de terceiro
     AliasNames=Nome de fantasia (nome comercial, marca registrada etc.)
    -AliasNameShort=Nome de fantasia
    -CountryIsInEEC=O país integra a Comunidade Econômica Europeia
    -ThirdPartyName=Nome do terceiro
     ThirdPartyEmail=Email de terceiros
     ThirdPartyProspects=Prospectos de cliente
     ThirdPartyProspectsStats=Prospectos de cliente
     ThirdPartyCustomersWithIdProf12=Clientes com %s ou %s
    -ThirdPartyType=Tipo de terceiro
     Individual=Pessoa física
    -ToCreateContactWithSameName=Um contato/endereço será criado automaticamente com a mesma informação do terceiro. Na maioria dos casos, mesmo que o terceiro seja uma pessoa física, a criação de um único terceiro é suficiente.
     ParentCompany=Matriz
     Subsidiaries=Filiais
     ReportByQuarter=Relatório pela taxa
    @@ -51,7 +43,8 @@ No_Email=Recusar e-mails em massa
     Zip=CEP
     Town=Município
     Web=Website
    -DefaultLang=Idioma ordinário
    +DefaultLang=Padrão de idioma
    +VATIsNotUsed=O imposto sobre vendas não é usado
     CopyAddressFromSoc=Preencher o endereço com os dados do terceiro
     PaymentBankAccount=Pagamento conta bancária
     OverAllOrders=Pedidos
    @@ -108,14 +101,10 @@ ProfId3DZ=Numero de Contribuinte
     ProfId4DZ=Numero de Identificação Social
     VATIntraSyntaxIsValid=Sintaxe é válida
     ProspectCustomer=Possível cliente / Cliente
    -Prospect=Prospecto de cliente
     CustomerRelativeDiscount=Desconto relativo do cliente
     CustomerRelativeDiscountShort=Desconto relativo
    -CustomerAbsoluteDiscountShort=Desconto fixo
     CompanyHasRelativeDiscount=Esse cliente tem um desconto padrão de <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Esse cliente não tem desconto relativo por padrão
    -CompanyHasAbsoluteDiscount=Este cliente possui desconto disponível (notas de créditos ou adiantamentos) para <b> %s </b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=Este cliente possui desconto disponível (comercial, adiantamentos) para <b> %s </b> %s
     CompanyHasCreditNote=Esse cliente ainda tem notas de crédito por <b>%s</b> %s
     CompanyHasNoAbsoluteDiscount=Esse cliente não tem desconto de crédito disponível
     DiscountNone=Nenhum
    @@ -132,17 +121,11 @@ DefaultContact=Contato/endereço padrão
     AddThirdParty=Adicionar terceiro
     DeleteACompany=Excluir empresa
     PersonalInformations=Dados pessoais
    -CustomerCode=Código de cliente
    -CustomerCodeShort=Código de cliente
    -CustomerCodeDesc=Código de cliente, único para todos os clientes
     RequiredIfCustomer=Necessário se o terceiro for um cliente ou um possível cliente
    -ValidityControledByModule=Validação controlada pelo módulo
    -ThisIsModuleRules=Esta é a regra é para esse módulo
     ProspectToContact=Prospecto de cliente a contactar
     CompanyDeleted=A empresa "%s" foi excluída do banco de dados.
     ListOfContacts=Lista de contatos/endereços
    -ListOfContactsAddresses=Lista de Contatos/Endereços
    -ListOfThirdParties=Lista de terceiros
    +ListOfContactsAddresses=Lista de contatos/endereços
     ShowContact=Mostrar contato
     ContactType=Tipo de contato
     ContactForOrders=Contato de pedidos
    @@ -156,16 +139,11 @@ NoContactForAnyProposal=Esse contato não é de nenhum orçamento
     NoContactForAnyContract=Esse contato não é de nenhum contrato
     NoContactForAnyInvoice=Esse contato não é de nenhuma fatura
     NewContact=Novo contato
    -NewContactAddress=Novo contato/endereço
    +NewContactAddress=Novo contato / endereço
     MyContacts=Meus contatos
     CapitalOf=Capital de %s
     EditCompany=Editar empresa
    -VATIntraCheckDesc=Esse link <b>%s</b> permite perguntar ao serviço de verificação da VAT europeia. Acesso externo a internet é necessário para o serviço.
    -VATIntraCheckableOnEUSite=Verificar taxa VAT no site da comissão europeia
    -VATIntraManualCheck=Você pode também verificar manualmente no site europeu <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Verificação não é possível. Verifique o serviço não é necessário por um membro de estado (%s).
    -NorProspectNorCustomer=Nem prospecto de cliente, nem cliente
    -JuridicalStatus=Natureza jurídica
     Staff=Número de funcionários
     ProspectLevelShort=Pos. Cli.
     ProspectLevel=Possível cliente
    @@ -193,9 +171,6 @@ ChangeContactDone=Trocar status para 'Contato feito'
     ProspectsByStatus=Prospectos por status
     ContactNotLinkedToCompany=Contato não esta vinculado a nenhum terceiro
     NoDolibarrAccess=Sem acesso ao Dolibarr
    -ExportDataset_company_1=Terceiros (Empresas / Fundações / Pessoas físicas) e propriedades
    -ExportDataset_company_2=Contatos e propriedades
    -ImportDataset_company_1=Terceiros (Empresas / Fundações / Pessoas físicas) e propriedades.
     PriceLevel=Faixa de preço
     DeliveryAddress=Endereço de entrega
     AddAddress=Adicionar endereço
    @@ -203,13 +178,8 @@ DeleteFile=Excluir arquivo
     ConfirmDeleteFile=Você tem certeza que deseja deletar esse arquivo?
     AllocateCommercial=Designado para representante comercial
     Organization=Organização
    -FiscalYearInformation=Informações do ano fiscal
     FiscalMonthStart=Primeiro mês do ano fiscal
    -YouMustAssignUserMailFirst=Você deve criar um e-mail para este usuário para poder adicionar as notificações por e-mail para ele.
     YouMustCreateContactFirst=Para estar apto a adicionar notificações por e-mail, você deve primeiramente definir contatos com e-mails válidos para o terceiro
    -ListProspectsShort=Lista de prospectos de cliente
    -ThirdPartiesArea=Área de terceiros
    -UniqueThirdParties=Total de terceiros
     ActivityCeased=Inativo
     ThirdPartyIsClosed=O terceiro está fechado
     ProductsIntoElements=Lista de produtos/serviços em %s
    @@ -220,6 +190,5 @@ LeopardNumRefModelDesc=O código é livre. Esse código pode ser modificado a qu
     ManagingDirectors=Nome do Representante(CEO,Diretor,Presidente...)
     MergeOriginThirdparty=Duplicar terceiros (terceiros que deseja excluir)
     MergeThirdparties=Mesclar terceiros
    -ConfirmMergeThirdparties=Tem certeza de que deseja juntar esse terceiro no atual? Todos os objetos vinculados (faturas, pedidos, ...) serão movidos para o terceiro atual, então a terceira parte será excluída.
     SaleRepresentativeLogin=Login para o representante de vendas
     SaleRepresentativeLastname=Sobrenome do representante de vendas
    diff --git a/htdocs/langs/pt_BR/compta.lang b/htdocs/langs/pt_BR/compta.lang
    index ac9ed1e681b..0d8031b257a 100644
    --- a/htdocs/langs/pt_BR/compta.lang
    +++ b/htdocs/langs/pt_BR/compta.lang
    @@ -58,7 +58,6 @@ TypeContrib=Tipo de contribuição
     MenuSpecialExpenses=Despesas especiais
     MenuSocialContributions=Contribuições fiscais/sociais
     NewSocialContribution=Nova contribuição fiscal/social
    -AddSocialContribution=Adicionar imposto social / fiscal
     ContributionsToPay=Encargos sociais / fiscais para pagar
     PaymentCustomerInvoice=Pagamento de fatura de cliente
     PaymentSocialContribution=Pagamento de imposto social / fiscal
    @@ -80,7 +79,6 @@ LT2PaymentsES=Pagamentos de IRPF
     VATPayment=Pagamento da taxa de venda
     VATPayments=Pagamentos da taxa de venda
     VATRefund=Reembolso da taxa sobre vendas
    -Refund=Reembolso
     SocialContributionsPayments=Pagamentos de impostos sociais / fiscais
     ShowVatPayment=Ver Pagamentos ICMS
     TotalToPay=Total a pagar
    @@ -94,11 +92,8 @@ ByThirdParties=Por Fornecedor
     CheckReceipt=Depósito de cheque
     CheckReceiptShort=Depósito de cheque
     LastCheckReceiptShort=Últimos %s recibos de cheque
    -NewCheckReceipt=Novo desconto
    -NewCheckDeposit=Novo depósito de cheque
     NoWaitingChecks=Sem cheques a depositar.
     DateChequeReceived=Data introdução de dados de recepção cheque
    -NbOfCheques=Nº de cheques
     PaySocialContribution=Quitar um encargo fiscal/social
     ConfirmPaySocialContribution=Quer mesmo categorizar esta contribuição fiscal/social como paga?
     DeleteSocialContribution=Excluir um pagamento taxa social ou fiscal
    @@ -148,7 +143,6 @@ DescPurchasesJournal=Diário de  Compras
     CodeNotDef=Não Definida
     DatePaymentTermCantBeLowerThanObjectDate=Data Prazo de pagamento não pode ser inferior a data da compra ou aquisição
     Pcg_version=Modelos de carta de contas
    -Pcg_type=Tipo Pcg
     Pcg_subtype=PCG subtipo
     InvoiceLinesToDispatch=Linhas de nota fiscal para envio
     RefExt=Ref externo
    @@ -172,6 +166,3 @@ SameCountryCustomersWithVAT=Informar os clientes nacionais
     BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Com base nas duas primeiras letras do número de IVA sendo o mesmo que o código do país da sua própria empresa
     LinkedFichinter=Vincular a uma intervenção
     ImportDataset_tax_contrib=Contribuições fiscais/sociais
    -ImportDataset_tax_vat=Pagamentos de IVA
    -ErrorBankAccountNotFound=Erro: conta bancária não encontrada
    -ListSocialContributionAssociatedProject=Lista de contribuições sociais associadas ao projeto
    diff --git a/htdocs/langs/pt_BR/dict.lang b/htdocs/langs/pt_BR/dict.lang
    index 5b29464fbbf..9f16c42805e 100644
    --- a/htdocs/langs/pt_BR/dict.lang
    +++ b/htdocs/langs/pt_BR/dict.lang
    @@ -32,7 +32,6 @@ CountryML=Máli
     CountryMM=Birmânia (Myanmar)
     CountryNC=Nova Caledônia
     CountryPS=Território Palestino, Ocupado
    -CountryPG=Papua-Nova Guiné
     CountryPN=Ilhas Picárnia
     CountryKN=São Cristóvão e Nevis
     CountryPM=São Pedro e Miquelon
    diff --git a/htdocs/langs/pt_BR/errors.lang b/htdocs/langs/pt_BR/errors.lang
    index f2dd85d0117..02a74294e4b 100644
    --- a/htdocs/langs/pt_BR/errors.lang
    +++ b/htdocs/langs/pt_BR/errors.lang
    @@ -29,7 +29,6 @@ ErrorBadDateFormat=O valor '%s' tem o formato de data errada
     ErrorWrongDate=A data não está correta!
     ErrorFailedToWriteInDir=Houve uma falha ao escrever no diretório %s
     ErrorFoundBadEmailInFile=Encontrada sintaxis incorreta em email em %s linhas em Arquivo (Exemplo linha %s com email
    -ErrorUserCannotBeDelete=O usuário não pode ser eliminado. Talvez esteja associado a entidades do Dolibarr.
     ErrorFieldsRequired=Alguns campos obrigatórios não foram preenchidos.
     ErrorFailedToCreateDir=Error na creação de uma carpeta. Compruebe que 0 usuario del servidor Web tiene derechos de escritura en las carpetas de documentos de Dolibarr. Si 0  parámetro <b>safe_mode</b> está ativo en este PHP, Compruebe que los archivos php dolibarr pertencen ao usuario del servidor Web.
     ErrorNoMailDefinedForThisUser=Nenhum e-mail definido para este usuário
    @@ -51,19 +50,13 @@ ErrorNoValueForSelectType=Por favor, escolha uma opção da lista
     ErrorNoValueForCheckBoxType=Por favor, marque uma opção da lista
     ErrorNoValueForRadioType=Por favor, selecione uma opção da lista
     ErrorBadFormatValueList=O valor da lista não pode ter mais de uma vírgula: <u>%s</u>, mas precisa de ao menos uma: chave,valor
    -ErrorFieldCanNotContainSpecialCharacters=O campo <b>%s</b> não deve conter caracteres especiais.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=O campo <b>%s</b> não aceita caracteres especiais, nem letras maiúsculas e não pode conter números apenas.
     ErrorNoAccountancyModuleLoaded=Módulo de Contabilidade não ativado
     ErrorExportDuplicateProfil=Este nome de perfil já existe para este lote de exportação.
     ErrorLDAPSetupNotComplete=A correspondência Dolibarr-LDAP não está completa.
     ErrorLDAPMakeManualTest=foi criado unn Arquivo .ldif na pasta %s. Trate de gastor manualmente este Arquivo a partir da linha de comandos para Obter mais detalles acerca do error.
    -ErrorCantSaveADoneUserWithZeroPercentage=Não é possível salvar uma ação com status "sem começar" se o campo "feito por" estiver preenchido.
     ErrorRefAlreadyExists=A ref. utilizada para a criação já existe.
    -ErrorRecordHasChildren=Falha na exclusão do registro, uma vez que ele possui dependentes.
    -ErrorRecordIsUsedCantDelete=Não é possível excluir o registro. Ele já é usado por ou integra outro objeto.
     ErrorModuleRequireJavascript=Javascript não deve ser desativado para ter esse recurso funcionando. Para ativar / desativar o Javascript, vá ao menu Home-> Configuração-> Display.
     ErrorPasswordsMustMatch=Deve existir correspondência entre as senhas digitadas
    -ErrorContactEMail=Ocorreu um erro técnico. Por favor, contate o administrador no seguinte e-mail <b>%s</b> e forneça o seguinte código de erro <b>%s</b> em sua mensagem. Ou, se possível, adicione uma foto da tela - print screen.
     ErrorWrongValueForField=Valor errado para o número do <b>campo% s</b> (valor <b>'% s'</b> não corresponde <b>regra% s)</b>
     ErrorFieldValueNotIn=Valor errado para o número de campo <b>%s</b> (valor '<b>%s</b>' não é um valor disponível no campo <b>%s</b> da tabela <b>%s</b>)
     ErrorFieldRefNotIn=Valor errado para o número do <b>campo% s</b> (valor <b>'% s'</b> não é <b>um% s</b> ref existente)
    @@ -76,7 +69,6 @@ ErrorBadMaskFailedToLocatePosOfSequence=Erro, máscara sem número de sequência
     ErrorBadMaskBadRazMonth=Erro, valor de redefinição ruim
     ErrorMaxNumberReachForThisMask=Número máximo de alcance para essa máscara
     ErrorCounterMustHaveMoreThan3Digits=Contador deve ter mais de 3 dígitos
    -ErrorDeleteNotPossibleLineIsConsolidated=Não e possívelexcluir porque registro está ligada a uma transação bancária que está conciliada
     ErrorProdIdAlreadyExist=%s é atribuído a outro terço
     ErrorFailedToSendPassword=Houve uma falha no envio da senha
     ErrorForbidden=Acesso negado. <br> Você tenta acessar a uma página, área ou característica de um módulo desativado ou sem estar em uma sessão autenticada ou que não é permitido para o usuário.
    @@ -113,41 +105,23 @@ ErrorWarehouseMustDiffers=A conta origem e destino devem ser diferentes
     ErrorBadFormat=Formato ruim!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Erro, este membro não está ainda conectado a qualquer terceiro. Conectar o membro a um terceiro existente ou criar um novo terceiro antes de criar uma assinatura com fatura.
     ErrorThereIsSomeDeliveries=Erro, há algumas entregas ligados a este envio. Supressão recusou.
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Não e possivel cancelar o pagamento condiviso para pelo menos uma fatura com estado Pago
     ErrorPriceExpression1=Não é possível atribuir a constante %s'
     ErrorPriceExpression2=Não é possível redefinir a função built-in '%s'
     ErrorPriceExpression3=variavel não definida '%s' na definição de função
     ErrorPriceExpression4=Caractere ilegal '%s'
    -ErrorPriceExpression5=Inesperado '%s'
     ErrorPriceExpression6=Número errado de argumentos (fornecidos %s, esperados %s)
     ErrorPriceExpression8=Operador Inesperado '%s'
    -ErrorPriceExpression9=Ocorreu um erro inesperado
    -ErrorPriceExpression10=Iperator '%s' não tem operando
    -ErrorPriceExpression11=Esperando '%s'
    -ErrorPriceExpression14=Divisão por zero
     ErrorPriceExpression17=Variável não definida '%s'
    -ErrorPriceExpression19=Expressão não encontrada
    -ErrorPriceExpression20=Expressão vazia
    -ErrorPriceExpression21=Resultado vazio '%s'
    -ErrorPriceExpression22=Resultado negativo '%s'
    -ErrorPriceExpressionInternal=Erro interno '%s'
    -ErrorPriceExpressionUnknown=Erro desconhecido '%s'
     ErrorSrcAndTargetWarehouseMustDiffers=Origem e de destino de armazéns devem ser diferentes
     ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Todas as recepções gravados primeiro deve ser verificada (aprovada ou negada) antes de serem autorizados a fazer esta ação
     ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Todas as recepções gravadas primeiro devem ser verificada (aprovado) antes de serem autorizados a fazer esta ação
     ErrorGlobalVariableUpdater0=Pedido HTTP falhou com o erro '%s'
    -ErrorGlobalVariableUpdater1=Formato JSON inválido '%s'
     ErrorGlobalVariableUpdater2=Faltando parâmetro '%s'
    -ErrorGlobalVariableUpdater3=Os dados solicitados não foram encontrados no resultado
    -ErrorGlobalVariableUpdater4=Cliente SOAP falhou com o erro '%s'
     ErrorGlobalVariableUpdater5=Nenhuma variável global selecionado
     ErrorFieldMustBeANumeric=O campo <b>%s</b> deve ser um valor numérico
     ErrorMandatoryParametersNotProvided=Parâmetro (s) de preenchimento obrigatório não fornecidas
    -ErrorOppStatusRequiredIfAmount=Você define um montante estimado para esta oportunidade/vantagem. Assim, você também deve inserir seu estado
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Má definição da matriz Menu No Módulo Descritor (mau valor para fk_menu chave)
    -ErrorSavingChanges=Ocorreu um erro ao salvar as alterações
     ErrorWarehouseRequiredIntoShipmentLine=É exigido um armazém na linha para a remessa
    -ErrorFileMustHaveFormat=O arquivo deve ter o formato %s
     ErrorsThirdpartyMerge=Falha em mesclar os dois registros. Solicitação cancelada.
     ErrorModuleNotFound=O arquivo do módulo não foi encontrado.
     WarningPasswordSetWithNoAccount=A senha foi definida para esse membro. No entanto, nenhuma conta de usuário foi criada. Portanto, esta senha é armazenada, mas não pode ser usado para acessar Dolibarr. Ele pode ser usado por um módulo / interface externa, mas se você não precisa definir qualquer login nem palavra-passe para um membro, você pode desabilitar a opção "Gerenciar um login para cada membro" da configuração do módulo-Membro. Se você precisa para gerenciar um login, mas não precisa de qualquer senha, você pode manter este campo em branco para evitar este aviso. Nota: E-mail pode também ser utilizado como uma entre o membro se está ligado a um utilizador.
    @@ -157,9 +131,7 @@ WarningBookmarkAlreadyExists=já existe um marcador com este título o esta URL.
     WarningPassIsEmpty=Atenção: a senha da base de dados está vazia. Esto é buraco na segurança. deve agregar uma senha e a sua base de dados e alterar a sua Arquivo conf.php para reflejar esto.
     WarningConfFileMustBeReadOnly=Atenção, o seu arquivo de configuração <b>(htdocs / conf / conf.php)</b> pode ser substituído pelo servidor web. Esta é uma falha de segurança grave. Modificar permissões em arquivos para estar no modo de somente leitura para usuário do sistema operacional utilizado pelo servidor web. Se você usa o formato Windows e FAT para o seu disco, você deve saber que este sistema de arquivos não permite adicionar permissões em arquivos, por isso não pode ser completamente seguro.
     WarningsOnXLines=Advertências sobre registro de <b>origem% s</b> (s)
    -WarningNoDocumentModelActivated=Não existe um modelo, para a geração de documentos, foi ativado. A modelo será escolhida por padrão até que você verifique a sua configuração do módulo.
     WarningLockFileDoesNotExists=Atenção, uma vez que a instalação estiver concluída, você deve desabilitar a instalação / migrar ferramentas, adicionando um <b>install.lock</b> arquivo no <b>diretório% s.</b> Faltando este arquivo é uma falha de segurança.
    -WarningUntilDirRemoved=Esta alerta seguirá ativa mientras a pasta exista (alerta visivel para Os Usuários admin somente).
     WarningCloseAlways=Atenção, o fechamento é feito mesmo se o valor difere entre elementos de origem e de destino. Ative esse recurso com cautela.
     WarningUsingThisBoxSlowDown=Atenção, utilizando esta caixa de abrandar a sério todas as páginas que mostram a caixa.
     WarningClickToDialUserSetupNotComplete=Configuração de informações ClickToDial para o usuário não são completas (ver guia ClickToDial no seu cartão de usuário).
    diff --git a/htdocs/langs/pt_BR/exports.lang b/htdocs/langs/pt_BR/exports.lang
    index 7eed4f12f5d..1dd24b03c79 100644
    --- a/htdocs/langs/pt_BR/exports.lang
    +++ b/htdocs/langs/pt_BR/exports.lang
    @@ -1,8 +1,6 @@
     # Dolibarr language file - Source file is en_US - exports
    -ExportsArea=Área de exportações
     ImportArea=Área de importação
     NewImport=Nova importação
    -ExportableDatas=Conjunto de dados que podem ser exportados
     ImportableDatas=Conjunto de dados que podem ser importados
     SelectExportDataSet=Escolha um conjunto predefinido de dados que deseja exportar...
     SelectImportDataSet=Escolha um conjunto predefinido de dados que deseja importar...
    @@ -13,7 +11,6 @@ ImportModelName=Nome do perfil de importação
     ImportModelSaved=Perfil de importação guardado com o nome de <b>%s</b>.
     DatasetToImport=Conjunto de dados a importar
     NowClickToGenerateToBuildExportFile=Agora, faça click em "Gerar" para gerar o arquivo exportação...
    -AvailableFormats=Formatos disponíveis
     FormatedImport=Assistente de importação
     FormatedImportDesc2=O primeiro passo consiste em escolher o tipo de dado que deve importar, logo o arquivo e a continuação escolher os campos que deseja importar.
     FormatedExport=Assistente de exportação
    @@ -22,7 +19,6 @@ FormatedExportDesc3=Uma vez selecionados os dados, é possível escolher o forma
     NoImportableData=Não existe tipo de dados importavel (não existe nenhum módulo com definições de dados importavel ativado)
     FileSuccessfullyBuilt=Arquivo gerado
     SQLUsedForExport=Pedido de SQL usado para construir exportação de arquivo
    -LineId=Id da Linha
     LineLabel=Rótulo de linha
     LineDescription=Descrição da Linha
     LineUnitPrice=Preço Unitário da Linha
    diff --git a/htdocs/langs/pt_BR/help.lang b/htdocs/langs/pt_BR/help.lang
    index 8f53e3087e9..d5a3bb13944 100644
    --- a/htdocs/langs/pt_BR/help.lang
    +++ b/htdocs/langs/pt_BR/help.lang
    @@ -13,9 +13,6 @@ Efficiency=eficiência
     TypeHelpOnly=Somente ajuda
     TypeHelpDev=Ajuda+Desenvolvimento
     TypeHelpDevForm=Ajuda+Desenvolvimento+Formação
    -ToGetHelpGoOnSparkAngels1=Algumas empresas podem prover um suporte online rápido (às vezes imediato) e mais eficiente ao assumirem o controle de seu computador. Tais ajudantes podem ser encontrados na página <b>%s</b>:
    -ToGetHelpGoOnSparkAngels3=Você também pode acessar a lista de todos os treinadores disponíveis para o Dolibarr, para isto clique no botão
    -ToGetHelpGoOnSparkAngels2=Às vezes, não há nenhuma empresa disponível no momento de fazer sua pesquisa, por isso acho que para mudar o filtro para procurar "tudo disponibilidade". Você será capaz de enviar mais pedidos.
     BackToHelpCenter=Caso contrário, clique aqui para ir para trás para ajudar a home page .
     LinkToGoldMember=Você pode ligar para um dos técnicos pré-selecionada por Dolibarr para o seu idioma, clicando em seu Widget (status e preço máximo são atualizados automaticamente):
     PossibleLanguages=Os idiomas suportados
    diff --git a/htdocs/langs/pt_BR/install.lang b/htdocs/langs/pt_BR/install.lang
    index 92be724e94d..f5c46f59379 100644
    --- a/htdocs/langs/pt_BR/install.lang
    +++ b/htdocs/langs/pt_BR/install.lang
    @@ -150,7 +150,6 @@ MigrationDeliveryDetail=Entrega atualizada
     MigrationStockDetail=Atualizar valores do estoque dos produtos
     MigrationMenusDetail=Atualize menus das tabelas dinâmicas
     MigrationDeliveryAddress=Atualizar o endereço de entrega nos envios
    -MigrationProjectTaskActors=Migração de dados para a tabela llx_projet_task_actors
     MigrationProjectUserResp=Dados da migração do campo fk_user_resp de llx_projet para llx_element_contact
     MigrationProjectTaskTime=Atualizar tempo gasto em segundos
     MigrationActioncommElement=Atualizar dados nas ações
    diff --git a/htdocs/langs/pt_BR/interventions.lang b/htdocs/langs/pt_BR/interventions.lang
    index dafe7ffb001..4125e31db0d 100644
    --- a/htdocs/langs/pt_BR/interventions.lang
    +++ b/htdocs/langs/pt_BR/interventions.lang
    @@ -1,8 +1,10 @@
     # Dolibarr language file - Source file is en_US - interventions
     InterventionCard=Ficha de Intervenção
    +NewIntervention=Nova Intervenção
     AddIntervention=Criar Intervenção
     ActionsOnFicheInter=Açoes na intervençao
     InterventionContact=Contato Intervenção
    +ValidateIntervention=Confirmar Intervenção
     ModifyIntervention=Modificar intervençao
     ConfirmDeleteIntervention=Você tem certeza que deseja excluir esta intervenção?
     ConfirmValidateIntervention=Você tem certeza que deseja validar esta intervenção sob o nome <b>%s</b>?
    @@ -29,8 +31,6 @@ UseServicesDurationOnFichinter=duração de uso de serviços para intervenções
     UseDurationOnFichinter=Esconde o campo de duração para os registros de intermediações
     UseDateWithoutHourOnFichinter=Oculta horas e minutos fora do campo de data para registros de intermediação
     InterventionStatistics=Estatística de intervenções
    -NbOfinterventions=Nº de fichas de intervenção
    -NumberOfInterventionsByMonth=Nº de fichas de intervenção por mês (data de validação)
     AmountOfInteventionNotIncludedByDefault=A quantidade de intervenção não é incluída por padrão no lucro (na maioria dos casos, as planilhas de tempo são usadas para contar o tempo gasto). Adicione a opção PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT para 1 em home-setup-other para incluí-los.
     InterId=ID de intervenção
     InterRef=Intervenção ref.
    diff --git a/htdocs/langs/pt_BR/mails.lang b/htdocs/langs/pt_BR/mails.lang
    index 9432eec082b..6d44de2bb40 100644
    --- a/htdocs/langs/pt_BR/mails.lang
    +++ b/htdocs/langs/pt_BR/mails.lang
    @@ -31,7 +31,6 @@ CloneEMailing=Clonar e-mailing
     ConfirmCloneEMailing=Você tem certeza que deseja clonar esta lista de e-mails?
     CloneContent=Clonar mensagem
     CloneReceivers=Clonar recebidores
    -DateLastSend=Data do último envio
     DateSending=Data envio
     YourMailUnsubcribeOK=O e-mail <b>%s</b> foi removido com sucesso da lista
     ActivateCheckReadKey=Chave usada para criptografar URL usado para "confirmação de leitura" e recurso "Unsubcribe"
    diff --git a/htdocs/langs/pt_BR/main.lang b/htdocs/langs/pt_BR/main.lang
    index 68f99b64b5e..f1bbc1a1ac8 100644
    --- a/htdocs/langs/pt_BR/main.lang
    +++ b/htdocs/langs/pt_BR/main.lang
    @@ -20,6 +20,7 @@ FormatDateHourSecShort=%d/%m/%Y %I:%M:%S %p
     FormatDateHourTextShort=%d %b, %Y, %I:%M %p
     FormatDateHourText=%d %B, %Y, %I:%M %p
     DatabaseConnection=Login à Base de Dados
    +NoTemplateDefined=Nenhum modelo disponível para este tipo de email
     NoRecordFound=Nenhum registro encontrado
     NoRecordDeleted=Nenhum registro foi deletado
     NotEnoughDataYet=Sem dados suficientes
    @@ -33,13 +34,9 @@ ErrorLogoFileNotFound=O arquivo logo '%s' não se encontra
     ErrorGoToGlobalSetup=Vai ao 'Empresa/Oragnisacao' configuracao para resolver isto
     ErrorFailedToSendMail=Erro ao envio do e-mail (emissor
     ErrorFileNotUploaded=O arquivo não foi possível transferir
    -ErrorYourCountryIsNotDefined=O seu país não está definido. corrija indo a Configuração-Geral-Editar
    -ErrorRecordIsUsedByChild=Impossível de suprimir este registo. Esta sendo utilizado como pai pelo menos em um registo filho.
    +ErrorWrongHostParameter=Parâmetro Servidor inválido
     ErrorWrongValue=Valor incorreto
     ErrorWrongValueForParameterX=Valor incorreto para o parâmetro %s
    -ErrorServiceUnavailableTryLater=Serviço não disponível no momento. Tente novamente mais tarde.
    -ErrorSomeErrorWereFoundRollbackIsDone=Foram encontrados alguns erros. Alterações revertidas.
    -ErrorConfigParameterNotDefined=O parâmetro <b>%s</b> não está definido ao arquivo de configuração Dolibarr <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Impossível encontrar o usuário <b>%s</b> na base de dados do Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Erro, nenhum tipo de ICMS definido para o país '%s'.
     ErrorNoSocialContributionForSellerCountry=Erro, nenhum tipo de imposto social / fiscal definidos para o país '%s'.
    @@ -52,9 +49,9 @@ ClickHere=Clickque aqui
     BackgroundColorByDefault=Cor do fundo padrão
     FileRenamed=O arquivo foi renomeado com sucesso
     FileGenerated=O arquivo foi gerado com sucesso
    +FileSaved=O arquivo foi salvo com sucesso
     FileUploaded=O arquivo foi carregado com sucesso
     FileWasNotUploaded=O arquivo foi selecionado, mas nao foi ainda enviado. Clique no "Anexar arquivo" para proceder.
    -NbOfEntries=Nr. de entradas
     GoToWikiHelpPage=Ler a ajuda online (necessário acesso a Internet)
     GoToHelpPage=Consulte a ajuda (pode necessitar de acesso à internet)
     RecordDeleted=Registro apagado
    @@ -62,6 +59,7 @@ LevelOfFeature=Nível de funções
     DolibarrInHttpAuthenticationSoPasswordUseless=Modo de autenticação do Dolibarr está definido como <b>%s</b> no arquivo de configuração<b>conf.php</b>.<br>Isso significa que o banco de dados das senhas é externo ao Dolibarr, assim mudar este campo, pode não ter efeito.
     PasswordForgotten=Esqueceu a senha?
     SeeAbove=Mencionar anteriormente
    +HomeArea=Inicio
     LastConnexion=Ultima conexao
     PreviousConnexion=último login
     ConnectedOnMultiCompany=Conectado no ambiente
    @@ -75,6 +73,7 @@ PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar a prec
     NoFilter=Nenhum filtro
     WarningYouHaveAtLeastOneTaskLate=Atenção, tem um elemento a menos que passou a data de tolerância.
     no=não
    +Home=Inicio
     OnlineHelp=Ajuda online
     PageWiki=Pagina wiki
     MediaBrowser=Navegador de mídia
    @@ -90,7 +89,6 @@ AddLink=Adicionar link
     RemoveLink=Remover o link
     Update=Modificar
     CloseBox=Remover o widget do seu painel de controle
    -ConfirmSendCardByMail=Você realmente quer enviar o conteúdo deste cartão por e-mail para  <b>%s</b>?
     Remove=Retirar
     Resiliate=Concluir
     Validate=Confirmar
    @@ -117,6 +115,7 @@ CurrentValue=Valor atual
     MultiLanguage=Multi Idioma
     RefOrLabel=Ref. da etiqueta
     Model=Template doc
    +DefaultModel=Modelo de documento padrão
     Action=Ação
     About=Acerca de
     NumberByMonth=Numero por mes
    @@ -129,6 +128,7 @@ DateEnd=Data de término
     DateCreationShort=Data Criação
     DateModification=Data Modificação
     DateModificationShort=Data Modif.
    +DateLastModification=Última data de modificação
     DateValidation=Data Validação
     DateDue=Data Vencimento
     DateValue=Data Valor
    @@ -138,6 +138,7 @@ DateOperationShort=Data Op.
     DateLimit=Data Límite
     DateRequest=Data Consulta
     DateProcess=Data Processo
    +RegistrationDate=Data de registro
     UserCreation=Criado por
     UserModification=Alterado por
     UserValidation=Usuario validado
    @@ -206,7 +207,6 @@ Comments=Comentarios
     ActionsToDo=Ações a realizar
     ActionNotApplicable=Não aplicavel
     ActionRunningNotStarted=A Iniciar
    -ActionUncomplete=Imcompleto
     ContactsForCompany=Contatos desta empresa
     ContactsAddressesForCompany=Contatos/Endereços do Cliente ou Fornecedor
     AddressesForCompany=Endereços para este terceiro
    @@ -224,20 +224,14 @@ NotAvailable=Não disponível
     Categories=Tags / categorias
     Category=Tag / categoria
     to=para
    +OtherInformations=Outra informação
     ApprovedBy2=Aprovado pelo (segunda aprovação)
    -LateDesc=O atraso na definição se o registro é tardio ou não, depende da sua configuração. Peça ao seu Administrador para alterar o atraso no menu Início - Configuração - Alertas.
    +ByUsers=Pelo usuário
     DeletePicture=Apagar foto
     ConfirmDeletePicture=Confirmar eliminação de fotografias
     LoginEmail=Usuario (email)
     LoginOrEmail=Usuraio ou Email
     CurrentLogin=Login atual
    -FebruaryMin=Fev
    -AprilMin=Abr
    -MayMin=Mai
    -AugustMin=Ago
    -SeptemberMin=Set
    -OctoberMin=Out
    -DecemberMin=Dez
     MonthShort02=Fev
     MonthShort04=Abr
     MonthShort05=Mai
    @@ -278,9 +272,8 @@ MoveBox=Widget de movimento
     NotEnoughPermissions=Não tem permissões para esta ação
     Receive=Recepção
     CompleteOrNoMoreReceptionExpected=Completo nada mais a fazer
    -YouCanSetDefaultValueInModuleSetup=Você pode definir o valor padrão usado quando da criação de um novo registro na configuração do módulo
     UploadDisabled=Carregamento Desativada
    -CurrentUserLanguage=Idioma atual
    +ThisLimitIsDefinedInSetup=Límite Dolibarr (menu inicio-configuração-segurança): %s Kb, PHP limit: %s Kb
     CurrentTheme=Tema atual
     CurrentMenuManager=Administração do menu atual
     DisabledModules=Módulos desativados
    @@ -292,12 +285,9 @@ PDFMerge=Fusão de PDF
     Merge=Fusão
     PrintContentArea=Mostrar pagina a se imprimir na area principal
     MenuManager=Administração do menu
    -WarningYouAreInMaintenanceMode=Atenção, voce esta no modo de manutenção, somente o login <b>%s</b> tem permissões para uso da aplicação no momento.
     CreditCard=Cartão de credito
     CreditOrDebitCard=Cartao de credito ou debito
     FieldsWithAreMandatory=Campos com <b>%s</b> são obrigatorios
    -FieldsWithIsForPublic=Campos com <b>%s</b> são mostrados na lista publica de membros. Se não deseja isto, deselecione a caixa "publico".
    -AccordingToGeoIPDatabase=(conforme a convenção GeoIP)
     NotSupported=Não suportado
     RequiredField=Campo obrigatorio
     ValidateBefore=Precisa de um cartão valido antes de usar esta função
    @@ -327,7 +317,7 @@ ByMonth=Por mes
     ByDay=Por día
     BySalesRepresentative=Por vendedor representante
     LinkedToSpecificUsers=Conectado com um contato particular do usuario
    -AdminTools=Ferram. admin.
    +AdminTools=Ferramentas de administração
     ModulesSystemTools=Ferramentas de modulos
     NoPhotoYet=Sem fotos disponiveis no momento
     Dashboard=Painel de Controle
    @@ -346,7 +336,6 @@ PublicUrl=URL pública
     AddBox=Adicionar caixa
     PrintFile=Imprimir arquivo %s
     ShowIntervention=Mostrar intervençao
    -GoIntoSetupToChangeLogo=Vá para casa - Configuração - Empresa de mudar logotipo ou ir para casa - Setup - Display para esconder.
     Denied=Negado
     Gender=Gênero
     ViewList=Exibição de lista
    @@ -355,8 +344,6 @@ DeleteLine=Apagar linha
     ConfirmDeleteLine=Você tem certeza que deseja excluir esta linha?
     MassFilesArea=Área para os arquivos gerados pelas ações em massa
     ShowTempMassFilesArea=Exibir área dos arquivos gerados pelas ações em massa
    -ConfirmMassDeletion=Confirmar deleite em massa
    -ConfirmMassDeletionQuestion=Voce tem certeza que quer apagar o %s registro selecionado ?
     RelatedObjects=Objetos Relacionados
     ClassifyBilled=Classificar Faturado
     ClassifyUnbilled=Classificar nao faturado
    @@ -373,7 +360,6 @@ Fiscalyear=Ano fiscal
     WebSite=Web Site
     WebSites=Sites web
     WebSiteAccounts=Contas do site
    -EMailTemplates=Modelos de E-mails
     Saturday=Sabado
     SaturdayMin=Sab
     SetRef=Escolher referência
    @@ -390,4 +376,4 @@ SearchIntoCustomerShipments=Remessas do cliente
     CommentLink=Comentarios
     CommentPage=Espaço para comentarios
     Everybody=A todos
    -PayedBy=Pago de
    +PayedBy=Pago por
    diff --git a/htdocs/langs/pt_BR/margins.lang b/htdocs/langs/pt_BR/margins.lang
    index a5f3383c627..5c78d471f7c 100644
    --- a/htdocs/langs/pt_BR/margins.lang
    +++ b/htdocs/langs/pt_BR/margins.lang
    @@ -4,7 +4,6 @@ MarkRate=Relação margem-preço de venda
     DisplayMarginRates=Exibir relações margem-preço de compra
     DisplayMarkRates=Exibir relações margem-preço de venda
     InputPrice=Preço de entrada
    -margin=Gestão de margens de lucro
     margesSetup=Configuração das margens de lucro
     ProductMargins=Margens de produtos
     CustomerMargins=Margems de clientes
    diff --git a/htdocs/langs/pt_BR/members.lang b/htdocs/langs/pt_BR/members.lang
    index 8c6f4f2bd83..783902b7405 100644
    --- a/htdocs/langs/pt_BR/members.lang
    +++ b/htdocs/langs/pt_BR/members.lang
    @@ -39,7 +39,6 @@ SubscriptionLate=Atraso
     SubscriptionNotReceived=filiação não recibida
     ListOfSubscriptions=Lista de Filiações
     SendCardByMail=Enviar ficha por E-mail
    -AddMember=Criar membro
     NoTypeDefinedGoToSetup=nenhum tipo de membro definido. ir a configuração -> Tipos de Membros
     DeleteType=Excluir
     Physical=Físico
    @@ -97,5 +96,4 @@ MembersByNature=Esta tela mostrará estatísticas por natureza de usuários.
     MembersByRegion=Esta tela mostrará estatísticas sobre usuários por região.
     VATToUseForSubscriptions=Taxa de VAT para utilizar as assinaturas
     NoVatOnSubscription=Não TVA para assinaturas
    -MEMBER_PAYONLINE_SENDEMAIL=E-mail para usar para alerta e-mail quando Dolibarr receber uma confirmação de um pagamento validado por uma assinatura (Exemplo: paymentdone@example.com)
     ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Produto utilizado para a linha de assinatura em nota fiscal: %s
    diff --git a/htdocs/langs/pt_BR/modulebuilder.lang b/htdocs/langs/pt_BR/modulebuilder.lang
    new file mode 100644
    index 00000000000..e1d4756199d
    --- /dev/null
    +++ b/htdocs/langs/pt_BR/modulebuilder.lang
    @@ -0,0 +1,23 @@
    +# Dolibarr language file - Source file is en_US - modulebuilder
    +EnterNameOfModuleDesc=Digite o nome do módulo / aplicativo para criar sem espaços. Use letras maiúsculas para separar palavras (por exemplo: MyModule, EcommerceForShop, SyncWithMySystem ...)
    +ModuleBuilderDesc2=Caminho onde os módulos são gerados / editados (primeiro diretório alternativo definido em %s): <strong> %s </ strong>
    +ModuleBuilderDesc3=Módulos gerados / editáveis ​​encontrados: <strong> %s </ strong>
    +ModuleBuilderDescmenus=Esta guia é dedicada a definir as entradas do menu fornecidas pelo seu módulo.
    +ModuleBuilderDescpermissions=Essa guia é dedicada para definir as novas permissões que você deseja fornecer com seu módulo.
    +ModuleBuilderDesctriggers=Esta é a visão dos gatilhos fornecidos pelo seu módulo. Para incluir o código executado quando um evento de negócios acionado é iniciado, basta editar esse arquivo.
    +ModuleBuilderDeschooks=Esta aba é dedicada aos ganchos.
    +ModuleBuilderDescwidgets=Esta aba é dedicada a gerenciar / construir widgets.
    +ModuleBuilderDescbuildpackage=Você pode gerar aqui um arquivo de pacote "pronto para distribuir" (um arquivo .zip normalizado) do seu módulo e um arquivo de documentação "pronto para distribuir". Basta clicar no botão para criar o pacote ou arquivo de documentação.
    +BuildPackage=Criar pacote / documentação
    +BuildDocumentation=Documentação de compilação
    +ModuleIsLive=Este módulo foi ativado. Qualquer alteração pode interromper um recurso ativo atual.
    +DescriptionLong=Longa descrição
    +DescriptorFile=Arquivo descritor do módulo
    +ApiClassFile=Arquivo para classe API do PHP
    +PageForList=Página PHP para lista de registro
    +PageForCreateEditView=Página PHP para criar / editar / visualizar um registro
    +PathToModulePackage=Caminho para o zip do pacote de módulo / aplicativo
    +PathToModuleDocumentation=Caminho para o arquivo da documentação do módulo / aplicativo
    +FileNotYetGenerated=Arquivo ainda não gerado
    +DatabaseIndex=Índice do banco de dados
    +AddLanguageFile=Adicionar arquivo de idioma
    diff --git a/htdocs/langs/pt_BR/multicurrency.lang b/htdocs/langs/pt_BR/multicurrency.lang
    new file mode 100644
    index 00000000000..de85eb11dc4
    --- /dev/null
    +++ b/htdocs/langs/pt_BR/multicurrency.lang
    @@ -0,0 +1,15 @@
    +# Dolibarr language file - Source file is en_US - multicurrency
    +MultiCurrency=Multi Moeda
    +ErrorDeleteCurrencyFail=Erro ao excluir falha
    +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use a data do documento para encontrar a taxa de câmbio, em vez de usar a taxa conhecida mais recente
    +multicurrency_useOriginTx=Quando um objeto é criado a partir de outro, mantenha a taxa original do objeto de origem (caso contrário, use a taxa conhecida mais recente)
    +CurrencyLayerAccount=API CurrencyLayer
    +CurrencyLayerAccount_help_to_synchronize=Você deve criar uma conta em seu site para usar essa funcionalidade. <br> Obtenha sua <b> chave de API </ b>. <br> Se você usa uma conta gratuita, não é possível alterar a <b> origem da moeda </ b> (USD por padrão). <br> Se sua moeda principal não for USD, você pode usar a <b> fonte de moeda alternativa </ b> para forçar sua moeda principal. <br> <br> Você está limitado a 1000 sincronizações por mês.
    +multicurrency_appId=Chave API
    +multicurrency_appCurrencySource=Moeda corrente
    +CurrenciesUsed=Moedas utilizadas
    +CurrenciesUsed_help_to_add=Adicione as diferentes moedas e taxas que você precisa usar nas suas <b> propostas </ b>, <b> ordens </ b> etc.
    +MulticurrencyReceived=Moeda original recebida
    +MulticurrencyRemainderToTake=Quantia restante, moeda original
    +MulticurrencyPaymentAmount=Valor do pagamento, moeda original
    +AmountToOthercurrency=Quantia para (na moeda da conta receptora)
    diff --git a/htdocs/langs/pt_BR/orders.lang b/htdocs/langs/pt_BR/orders.lang
    index 178bb8c6cb5..67d45e2bdac 100644
    --- a/htdocs/langs/pt_BR/orders.lang
    +++ b/htdocs/langs/pt_BR/orders.lang
    @@ -6,7 +6,6 @@ Order=Pedido
     PdfOrderTitle=Pedido
     Orders=Pedidos
     OrderLine=Linha de Comando
    -OrderDate=Data Pedido
     OrderDateShort=Data do pedido
     OrderToProcess=Pedido a processar
     NewOrder=Novo Pedido
    diff --git a/htdocs/langs/pt_BR/other.lang b/htdocs/langs/pt_BR/other.lang
    index 25a7ab19281..ef616aa7c2c 100644
    --- a/htdocs/langs/pt_BR/other.lang
    +++ b/htdocs/langs/pt_BR/other.lang
    @@ -6,9 +6,6 @@ BirthdayAlertOn=Alerta de aniversário ativo
     BirthdayAlertOff=Alerta de aniversário desativado
     MessageOK=Mensagem na pagina do pagamento validada
     MessageKO=Mensagem na página de retorno de pagamento cancelado
    -Notify_FICHINTER_ADD_CONTACT=Contato adicionado à intervenção
    -Notify_FICHINTER_VALIDATE=Intervenção confirmada
    -Notify_FICHINTER_SENTBYMAIL=Intervenção enviada por e-mail
     Notify_ORDER_VALIDATE=Pedido de cliente confirmado
     Notify_ORDER_SENTBYMAIL=Pedido cliente enviado por e-mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Pedido fornecedor enviado por e-mail
    @@ -16,8 +13,6 @@ Notify_ORDER_SUPPLIER_VALIDATE=Ordem fornecedor registrado
     Notify_ORDER_SUPPLIER_APPROVE=Pedido a fornecedor aprovado
     Notify_ORDER_SUPPLIER_REFUSE=Pedido a fornecedor recusado
     Notify_PROPAL_VALIDATE=Proposta cliente validada
    -Notify_PROPAL_CLOSE_SIGNED=Propal Cliente fechado assinado
    -Notify_PROPAL_CLOSE_REFUSED=Propal Cliente fechado recusou
     Notify_PROPAL_SENTBYMAIL=Proposta comercial enviada por e-mail
     Notify_WITHDRAW_TRANSMIT=Revogação de transmissão
     Notify_WITHDRAW_CREDIT=Revogação de credito
    @@ -25,14 +20,14 @@ Notify_WITHDRAW_EMIT=Revogação de performance
     Notify_COMPANY_SENTBYMAIL=E-mails enviados a partir do cartão de terceiros
     Notify_BILL_VALIDATE=Fatura de cliente confirmada
     Notify_BILL_UNVALIDATE=Fatura de cliente anulada
    -Notify_BILL_PAYED=Fatura cliente paga
     Notify_BILL_CANCEL=Fatura cliente cancelada
     Notify_BILL_SENTBYMAIL=Fatura cliente enviada por e-mail
     Notify_BILL_SUPPLIER_VALIDATE=Fatura fornecedor validada
    -Notify_BILL_SUPPLIER_PAYED=Fatura fornecedor paga
     Notify_BILL_SUPPLIER_SENTBYMAIL=Fatura fornecedor enviada por e-mail
     Notify_BILL_SUPPLIER_CANCELED=Fornecedor fatura cancelada
     Notify_FICHEINTER_VALIDATE=Intervenção validada
    +Notify_FICHINTER_ADD_CONTACT=Contato adicionado à intervenção
    +Notify_FICHINTER_SENTBYMAIL=Intervenção enviada por e-mail
     Notify_SHIPPING_VALIDATE=Envio validado
     Notify_SHIPPING_SENTBYMAIL=Envio enviado por e-mail
     Notify_MEMBER_SUBSCRIPTION=Membro inscrito
    @@ -46,7 +41,6 @@ NbOfAttachedFiles=Número Arquivos/Documentos Anexos
     TotalSizeOfAttachedFiles=Tamanho Total dos Arquivos/Documentos Anexos
     AttachANewFile=Adicionar Novo Arquivo/Documento
     LinkedObject=Arquivo Anexo
    -NbOfActiveNotifications=Número de notificações (nb de e-mails de destinatários)
     DemoDesc=Dolibarr e um ERP/CRM compacto, o qual suporta varios modulos para negocios. Uma demo mostrando todos os modulos nao faz sentido pois este cenario nunca occore (mais de cem modulos disponiveis). Portanto varios perfis de demo estao a disposicao.
     ChooseYourDemoProfil=Escolha o perfil de demonstração que melhor se enquadra nas suas necessidades...
     DemoFundation=Administração de Membros de uma associação
    @@ -80,7 +74,6 @@ AuthenticationDoesNotAllowSendNewPassword=o modo de autentificação de Dolibarr
     EnableGDLibraryDesc=Instale ou ative a biblioteca GD da sua instalação PHP para usar esta opção.
     ProfIdShortDesc=<b>Prof Id %s</b> é uma informação dePendente do país do Fornecedor.<br>Por Exemplo, para o país  <b>%s</b>, é o código <b>%s</b>.
     StatsByNumberOfUnits=Estatisticas para soma das quantidades nos produtos/servicos
    -StatsByNumberOfEntities=Estatisticas numerais das entidades (nr. de faturas, pedidos)
     NumberOfProposals=Numero de propostas
     NumberOfCustomerOrders=Numero de pedidos de clientes
     NumberOfCustomerInvoices=Numero de faturas de clientes
    @@ -91,7 +84,6 @@ NumberOfUnitsCustomerOrders=Numero de unidades nos pedidos dos clientes
     NumberOfUnitsCustomerInvoices=Numero de unidades nas faturas dos clientes
     NumberOfUnitsSupplierOrders=Numero de unidades nos pedidos dos fornecedores
     NumberOfUnitsSupplierInvoices=Numero de unidades nas faturas dos fornecedores
    -EMailTextInterventionAddedContact=Uma nova intervenção %s foi atribuída a você.
     EMailTextInterventionValidated=A intervenção %s foi validada
     EMailTextProposalValidated=A proposta %s foi validada.
     EMailTextOrderValidated=O pedido %s foi validado.
    @@ -102,7 +94,6 @@ ResizeDesc=Insira a nova largura <b>OU</b> o novo peso. A proporção sera manti
     NewHeight=Nova altrua
     NewSizeAfterCropping=Nova dimensao depois do recorte
     DefineNewAreaToPick=Definir nova area na imagem para escolher ( click esquerdo na imagem e depois arastar ate o canto oposto)
    -CurrentInformationOnImage=Esta ferramenta foi desenvolvida para ajuda-lo a redimensionar ou recortar uma imagem. Estas são as informações na imagem editada no momento
     ImageEditor=Editor de imagems
     YouReceiveMailBecauseOfNotification=Voce recebeu esta mensagem porque o seu endereco de e-mail foi adicionado a lista de alvos a ser informados de algums eventos no %s software de %s.
     YouReceiveMailBecauseOfNotification2=Este evento e o seguinte:
    diff --git a/htdocs/langs/pt_BR/paybox.lang b/htdocs/langs/pt_BR/paybox.lang
    index 49ab60c63fd..fef05a17b9b 100644
    --- a/htdocs/langs/pt_BR/paybox.lang
    +++ b/htdocs/langs/pt_BR/paybox.lang
    @@ -7,7 +7,6 @@ ThisScreenAllowsYouToPay=Esta página lhe permite fazer seu pagamento on-line de
     ThisIsInformationOnPayment=Aqui está a informação sobre o pagamento a realizar
     Creditor=Beneficiário
     PayBoxDoPayment=Pagar com Cartão de Débito ou Crédito (Paybox)
    -ToPay=Realizar pagamento
     YouWillBeRedirectedOnPayBox=Va a ser redirecionado a a página segura de  Paybox para indicar seu cartão de crédito
     ToOfferALinkForOnlinePayment=URL para %s pagamento
     ToOfferALinkForOnlinePaymentOnOrder=URL que oferece uma interface de pagamento on-line %s baseada no valor de un pedido de cliente
    diff --git a/htdocs/langs/pt_BR/paypal.lang b/htdocs/langs/pt_BR/paypal.lang
    index 59af70c7c2e..72be5cc803c 100644
    --- a/htdocs/langs/pt_BR/paypal.lang
    +++ b/htdocs/langs/pt_BR/paypal.lang
    @@ -14,7 +14,6 @@ PaypalModeOnlyPaypal=PayPal apenas
     ONLINE_PAYMENT_CSS_URL=URL opcional de CSS na página de pagamento
     ThisIsTransactionId=Eis o id da transação: <b>%s</b>
     PAYPAL_ADD_PAYMENT_URL=Adicionar URL do pagamento Paypal quando se envia o documento por e-mail
    -YouAreCurrentlyInSandboxMode=No momento você está no %s modo "caixa de areia"
     NewOnlinePaymentFailed=Foi tentado novo pagamento online, mas sem hêxito
     ONLINE_PAYMENT_SENDEMAIL=Endereço e-mail para aviso apos o pagamento (positivo ou nao)
     ReturnURLAfterPayment=Retornar ao URL após o pagamento
    diff --git a/htdocs/langs/pt_BR/products.lang b/htdocs/langs/pt_BR/products.lang
    index 24db0fb3403..227c9d52c11 100644
    --- a/htdocs/langs/pt_BR/products.lang
    +++ b/htdocs/langs/pt_BR/products.lang
    @@ -7,8 +7,6 @@ ProductNoteTranslated=Nota produto traduzido
     ProductServiceCard=Ficha do produto/serviço
     ProductId=ID do produto/serviço
     Reference=Referência
    -NewProduct=Novo produto
    -NewService=Novo serviço
     ProductVatMassChange=Mudança VAT Massa
     ProductVatMassChangeDesc=Esta página pode ser utilizado para modificar uma taxa VAT definido em produtos ou serviços a partir de um valor para outro. Atenção, esta mudança é feita em todos os banco de dados.
     MassBarcodeInit=Inicialização de código de barras.
    @@ -30,7 +28,6 @@ ProductStatusNotOnBuy=Não para-se comprar
     ProductStatusNotOnBuyShort=Não para-se comprar
     UpdateVAT=Atualização IVA
     UpdateDefaultPrice=Atualização de preço padrão
    -UpdateLevelPrices=Atualizar preços para cada nível
     SellingPriceHT=Preço de venda (sem taxas)
     SellingPriceTTC=Preço de venda (incl. taxas)
     CostPriceDescription=Este preço ( livre de impostos) pode ser usado para armazenar a quantidade média do custo do produto para sua empresa. Pode ser qualquer preço a se calcular, por exemplo, a partir do preço médio de compra mais o custo médio de produção e distribuição.
    @@ -38,10 +35,8 @@ SoldAmount=Total vendido
     PurchasedAmount=Total comprado
     MinPrice=Preço de venda min.
     CantBeLessThanMinPrice=O preço de venda não deve ser inferior ao mínimo para este produto (%s ICMS)
    -ContractStatusClosed=Encerrado
     ErrorProductBadRefOrLabel=O valor da referencia ou etiqueta é incorreto
     ErrorProductClone=Aconteceu um problema durante a clonação do produto ou serviço.
    -ErrorPriceCantBeLowerThanMinPrice=Erro, o preço não pode ser inferior ao preço mínimo.
     SupplierCard=Ficha do fornecedor
     NoteNotVisibleOnBill=Nota (não visivel em faturas, orçamentos etc.)
     MultiPricesAbility=Varias faixas de preços de produtos/serviços por segmento (cada cliente está em um segmento)
    @@ -68,7 +63,6 @@ PredefinedProductsToSell=Produtos pré-definidas para vender
     PredefinedServicesToSell=Serviços predefinidos para vender
     PredefinedProductsAndServicesToSell=Produtos / serviços pré-definidas para vender
     PredefinedProductsToPurchase=Produto pré-definidas para compra
    -PredefinedServicesToPurchase=Serviços pré-definidos para compra
     PredefinedProductsAndServicesToPurchase=Produtos / serviços predefinidos para compra.
     NotPredefinedProducts=Produtos/Serviços sem predefinição
     ServiceNb=Serviço n� %s
    @@ -82,7 +76,6 @@ ConfirmCloneProduct=Você tem certeza que deseja clonar o produto ou serviço <b
     CloneContentProduct=Clonar todas as principais informações de um produto/serviço
     CloneCompositionProduct=Clone pacote de produto / serviço
     ProductIsUsed=Este produto é usado
    -NewRefForClone=Ref. do novo produto/serviço
     SellingPrices=Preços para Venda
     BuyingPrices=Preços para Compra
     CustomerPrices=Preços de cliente
    @@ -127,7 +120,6 @@ BarCodeDataForThirdparty=Informação do código de barras do terceiro %s :
     ResetBarcodeForAllRecords=Definir o valor do código de barras para todos os registros (isto também redefinirá o valor do código de barras já definido com novos valores)
     PriceByCustomer=Preços diferenteas para cada cliente
     PriceCatalogue=Um único preço de venda por produto/serviço
    -PricingRule=Regras para preços de venda
     AddCustomerPrice=Adicionar preço por cliente
     ForceUpdateChildPriceSoc=Situado mesmo preço em outros pedidos dos clientes
     PriceByCustomerLog=Registros de preços de cliente anteriores
    @@ -139,17 +131,13 @@ PriceExpressionEditorHelp1="Preço = 2 + 2" ou "2 + 2" para fixação do preço.
     PriceExpressionEditorHelp2=Você pode acessar ExtraFields com variáveis como <b>#extrafield_myextrafieldkey#</b> e variáveis globais com o <b>#global_mycode #</b>
     PriceExpressionEditorHelp3=Em ambos produtos/serviços e fornecedores nesses preços há essas variáveis disponíveis:<br><b>#tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min#</b>
     PriceExpressionEditorHelp4=No preço do produto/serviço apenas: <b>#supplier_min_price#</b><br>Em apenas preços com fornecedores: <b>#supplier_quantity# e #supplier_tva_tx#</b>
    -PriceExpressionEditorHelp5=Valores globais disponíveis:
     PriceMode=Modo de Preço
     DefaultPrice=Preço padrão
     ComposedProductIncDecStock=Aumento/diminuição do estoque, armazém, atual
     ComposedProduct=Sub-produto
     MinSupplierPrice=Preco de compra minimo
     DynamicPriceConfiguration=Configuração de preço dinâmico
    -AddVariable=Adicionar Variável
    -AddUpdater=Adicionar atualizador
     GlobalVariables=As variáveis ​​globais
    -VariableToUpdate=Variável para atualizar
     GlobalVariableUpdaters=Updaters variáveis ​​globais
     GlobalVariableUpdaterHelp0=Analisa os dados JSON de URL especificada, valor especifica a localização de valor relevante,
     GlobalVariableUpdaterType1=Dados WebService
    @@ -158,12 +146,9 @@ PropalMergePdfProductActualFile=Usar arquivos para adicionar em PDF Azur são /
     PropalMergePdfProductChooseFile=Selecione os arquivos PDF
     IncludingProductWithTag=Incluindo produto/serviço com tag
     DefaultPriceRealPriceMayDependOnCustomer=Preço padrão, o preço real pode depender do cliente
    -WarningSelectOneDocument=Por favor, selecione pelo menos um documento
     NbOfQtyInProposals=Qtde nas Propostas
     ClinkOnALinkOfColumn=Clique no link da coluna %s para ter uma visão detalhada...
     TranslatedLabel=Rótulo traduzido
    -TranslatedDescription=Descrição traduzida
    -TranslatedNote=Notas traduzidas
     ProductWeight=Peso de 1 produto
     ProductVolume=Volume de 1 produto
     WeightUnits=Unidade de Peso
    diff --git a/htdocs/langs/pt_BR/projects.lang b/htdocs/langs/pt_BR/projects.lang
    index 3f1f3882f44..98b56cf950d 100644
    --- a/htdocs/langs/pt_BR/projects.lang
    +++ b/htdocs/langs/pt_BR/projects.lang
    @@ -14,7 +14,6 @@ OnlyOpenedProject=Só os projetos abertos são visíveis (projetos em fase de pr
     ClosedProjectsAreHidden=Projetos encerrados não são visíveis.
     TasksPublicDesc=Essa exibição apresenta todos os projetos e tarefas que você tem permissão para ler.
     TasksDesc=Essa exibição apresenta todos os projetos e tarefas (suas permissões de usuário concede-lhe ver tudo).
    -NewProject=Novo projeto
     AddProject=Criar projeto
     DeleteAProject=Excluir um projeto
     DeleteATask=Excluir uma tarefa
    @@ -22,12 +21,8 @@ ConfirmDeleteAProject=Você tem certeza que deseja excluir este projeto?
     ConfirmDeleteATask=Você tem certeza que deseja excluir esta tarefa?
     OpenedProjects=Projetos em andamento
     OpenedTasks=Tarefas em andamento
    -OpportunitiesStatusForOpenedProjects=Montante de oportunidades de projetos abertos de acordo com a situação
    -OpportunitiesStatusForProjects=Montante de oportunidades dos projetos pela situação
     ShowProject=Mostrar projeto
    -ShowTask=Mostrar tarefa
     NoProject=Nenhum Projeto Definido
    -NbOfProjects=Nº de projetos
     TimeSpent=Dispêndio de tempo
     TimeSpentByUser=Tempo gasto por usuário
     TimesSpent=Dispêndio de tempo
    @@ -37,7 +32,6 @@ TaskTimeUser=Usuário
     NewTimeSpent=Dispêndio de tempo
     MyTimeSpent=Meu dispêndio de tempo
     TaskDateEnd=Data final da tarefa
    -NewTask=Nova tarefa
     AddTask=Criar tarefa
     Activities=Tarefas/atividades
     MyActivities=Minhas Tarefas/Atividades
    @@ -45,15 +39,7 @@ MyProjectsArea=Minha Área de projetos
     ProgressDeclared=o progresso declarado
     ProgressCalculated=calculado do progresso
     GoToListOfTimeConsumed=Ir para a lista de dispêndios de tempo
    -ListOrdersAssociatedProject=Lista de pedidos do cliente associados ao projeto
    -ListInvoicesAssociatedProject=Lista de faturas do cliente associadas ao projeto
    -ListPredefinedInvoicesAssociatedProject=Lista de temas das faturas associadas ao projeto
    -ListSupplierOrdersAssociatedProject=Lista de pedidos do fornecedor associados ao projeto
    -ListSupplierInvoicesAssociatedProject=Lista de faturas do fornecedor associadas ao projeto
    -ListExpenseReportsAssociatedProject=Lista de relatórios de despesas associadas ao projeto
    -ListDonationsAssociatedProject=Lista de doações associados ao projeto
     ListTaskTimeUserProject=Lista de tempo consumido nas tarefas de projecto
    -ActivityOnProjectToday=Atividade no projeto hoje
     ActivityOnProjectYesterday=Atividade de ontem no projeto
     ActivityOnProjectThisWeek=Atividade ao Projeto esta Semana
     ActivityOnProjectThisMonth=Atividade ao Projeto este Mês
    @@ -77,7 +63,7 @@ NoTasks=Não há tarefas para este projeto
     LinkedToAnotherCompany=Ligado a outros terceiros
     ErrorTimeSpentIsEmpty=O dispêndio de tempo está em branco
     ThisWillAlsoRemoveTasks=Esta ação também vai apagar todas as tarefas do projeto <b>(tarefas% s</b> no momento) e todas as entradas de tempo gasto.
    -IfNeedToUseOhterObjectKeepEmpty=Se alguns objetos (nota fiscal, ordem, ...), pertencentes a um terceiro, deve estar vinculado ao projeto de criar, manter este vazio para que o projeto de vários fornecedores.
    +IfNeedToUseOtherObjectKeepEmpty=Se alguns objetos (nota fiscal, ordem, ...), pertencentes a um terceiro, deve estar vinculado ao projeto de criar, manter este vazio para que o projeto de vários fornecedores.
     CloneContacts=Copiar contatos
     CloneNotes=Copiar notas
     CloneProjectFiles=Copiar arquivos do projetos
    @@ -91,7 +77,6 @@ TaskModifiedInDolibarr=Tarefa %s alterada
     TaskDeletedInDolibarr=Tarefa %s excluída
     OpportunityStatusShort=Est. da oprtnd.
     OpportunityProbabilityShort=Prob. oport.
    -OpportunityAmount=Montante de oportunidades
     OpportunityAmountShort=Montante de oport.
     OpportunityAmountAverageShort=Montante médio de oport.
     OpportunityAmountWeigthedShort=Montante de oport. ponderadas
    @@ -102,34 +87,17 @@ TypeContact_project_task_internal_TASKEXECUTIVE=Tarefa executada
     TypeContact_project_task_external_TASKEXECUTIVE=Tarefa executada
     SelectElement=Selecionar componente
     AddElement=Link para componente
    -DocumentModelBeluga=Modelo de projeto para visão geral objetos ligados
    -DocumentModelBaleine=Modelo de relatório do Projeto para tarefas
     PlannedWorkload=carga horária planejada
    -PlannedWorkloadShort=Carga de trabalho
     ProjectMustBeValidatedFirst=O projeto tem que primeiramente ser validado
     FirstAddRessourceToAllocateTime=Atribuir o recurso de um usuário à tarefa para alocação do tempo
    -InputPerDay=Entrada por dia
    -InputPerWeek=Entrada por semana
     ProjectsWithThisUserAsContact=Projetos com este usuário como contato
     TasksWithThisUserAsContact=As tarefas atribuídas a esse usuário
    -ResourceNotAssignedToProject=Não atribuído ao projeto
    -ResourceNotAssignedToTheTask=Não atribuído à tarefa
    -AssignTaskToMe=Atribuir tarefa para mim
     ProjectOverview=Visão geral
    -ManageTasks=Use projetos para acompanhar tarefas e tempo
     ManageOpportunitiesStatus=Use projetos para acompanhar leads / opportinuties
    -ProjectNbProjectByMonth=N ° de projetos criados por mês
    -ProjectOppAmountOfProjectsByMonth=Montante de oportunidades no mês
    -ProjectWeightedOppAmountOfProjectsByMonth=Montante de oportunidades ponderadas no mês
    -ProjectOpenedProjectByOppStatus=Projeto/Guia aberto pela situação da oportunidade
     ProjectsStatistics=As estatísticas sobre projetos / leads
     TaskAssignedToEnterTime=Tarefa atribuída. Entrando tempo nesta tarefa deve ser possível.
     IdTaskTime=Horário do ID da tarefa
     YouCanCompleteRef=Se você deseja completar a referência com alguma informação (para usar como filtro de busca), recomenda-se a adição do carácter "-" para separação, desta forma a numeração automática ainda funcionará corretamente para os próximos projetos. Por exemplo: %s-ABC. Você também pode preferir adicionar chaves de busca no rótulo. Mas a melhor prática pode ser adicionar um campo dedicado, também chamado de atributos complementares.
    -OnlyOpportunitiesShort=Somente oportunidades
    -OpenedOpportunitiesShort=Oportunidades em andamento
    -OpportunityTotalAmount=Montante total de oportunidades
    -OpportunityPonderatedAmount=Montante de oportunidades ponderadas
    -OpportunityPonderatedAmountDesc=Montante de oportunidades ponderadas com probalidade
     OppStatusPROSP=Prospecção
    +OppStatusPROPO=Proposta
     OppStatusWON=Ganhou
    diff --git a/htdocs/langs/pt_BR/receiptprinter.lang b/htdocs/langs/pt_BR/receiptprinter.lang
    index 388cbde764a..30168b70533 100644
    --- a/htdocs/langs/pt_BR/receiptprinter.lang
    +++ b/htdocs/langs/pt_BR/receiptprinter.lang
    @@ -6,7 +6,6 @@ PrinterDeleted=Impressora %s excluída
     TestSentToPrinter=Teste enviado para a impressora %s
     ReceiptPrinterDesc=Configuração das impressoras de recibo
     ReceiptPrinterTemplateDesc=Configuração do Tema
    -ReceiptPrinterTypeDesc=Descrição do tipo de Impressora de Recibo
     ReceiptPrinterProfileDesc=Descrição do Perfil da Impressora de Recibo
     SetupReceiptTemplate=Configuração do Tema
     CONNECTOR_DUMMY=Impressora Virtual
    diff --git a/htdocs/langs/pt_BR/sms.lang b/htdocs/langs/pt_BR/sms.lang
    index 29d52940c8b..b607fdd45c3 100644
    --- a/htdocs/langs/pt_BR/sms.lang
    +++ b/htdocs/langs/pt_BR/sms.lang
    @@ -7,20 +7,15 @@ AllSms=Todas as campnhas SMS
     SmsTargets=Alvos
     SmsRecipients=Alvos
     SmsTopic=Topico do SMS
    -ShowSms=Mostrar SMS
     ListOfSms=Listar campanhas SMS
     NewSms=Nova campanha SMS
    -EditSms=Editar SMS
     ResetSms=Novo envio
     DeleteSms=Apagar campanha SMS
     DeleteASms=Remover uma campanha SMS
     PreviewSms=Pre-visualizar SMS
     PrepareSms=Preparar SMS
    -CreateSms=Criar SMS
     SmsResult=Resultado do envio SMS
     TestSms=Testar SMS
    -ValidSms=Validar SMS
    -ApproveSms=Aprovar SMS
     SmsStatusNotSent=Nao enviado
     SmsSuccessfulySent=SMS enviado coretamente (de %s a %s)
     ErrorSmsRecipientIsEmpty=Numero de alvos vazio
    diff --git a/htdocs/langs/pt_BR/stocks.lang b/htdocs/langs/pt_BR/stocks.lang
    index 136d2694779..2a5a83701c8 100644
    --- a/htdocs/langs/pt_BR/stocks.lang
    +++ b/htdocs/langs/pt_BR/stocks.lang
    @@ -1,30 +1,23 @@
     # Dolibarr language file - Source file is en_US - stocks
     NewWarehouse=Novo armazém / setor de armazenagem
    -MenuNewWarehouse=Novo armazém
     WarehouseSource=Armazém de origem
     WarehouseSourceNotDefined=Nenhum armazém definido,
     WarehouseTarget=Armazém de destino
     ValidateSending=Apagar envio
     CancelSending=Cancelar envio
     DeleteSending=Apagar envio
    -Stock=Estoque
    -Stocks=Estoques
     StocksByLotSerial=Estoques por lote/nº de série
     LotSerial=Lotes/Series
     LotSerialList=Listagem de lotes/series
    -Movements=Movimentações
     ErrorWarehouseRefRequired=A referência do armazém é necessária
     ListOfWarehouses=Lista de armazéns
    -ListOfStockMovements=Lista de movimentações de estoque
     StocksArea=Setor de armazenagem
     NumberOfProducts=Número total de produtos
     CorrectStock=Corrigir estoque
     StockTransfer=Banco de transferência
     TransferStock=Tranferencia de Estoque
    -MassStockTransferShort=Transferência de estoque em massa
     StockMovement=Movimento de estoque
     StockMovements=Movimentações de estoque
    -LabelMovement=Rótulo para a movimentação
     UnitPurchaseValue=Preço unitário de compra
     StockTooLow=Estoque muito baixo
     EnhancedValueOfWarehouses=Valor de estoques
    @@ -42,8 +35,6 @@ ReStockOnBill=Incrementar os estoques físicos sobre as faturas/recibos
     OrderStatusNotReadyToDispatch=Não tem ordem  ainda não ou nato tem um status que permite envio de produtos em para armazenamento.
     NoPredefinedProductToDispatch=Não há produtos pré-definidos para este objeto. Portanto, não envio em estoque é necessária.
     DispatchVerb=Despachar
    -StockLimitShort=Limite para alerta
    -StockLimit=Limite de estoque para alerta
     PhysicalStock=Estoque físico
     RealStock=Estoque real
     VirtualStock=Estoque virtual
    @@ -51,7 +42,6 @@ IdWarehouse=Id. armazenamento
     DescWareHouse=Descrição do armazém
     LieuWareHouse=Localização do armazenamento
     WarehousesAndProducts=Armazenamento de produtos
    -WarehousesAndProductsBatchDetail=Armazéns e produtos (com detalhe por lote / série)
     AverageUnitPricePMPShort=Preço médio de entrada
     AverageUnitPricePMP=Preço médio de entrada
     SellPriceMin=Venda Preço unitário
    @@ -65,7 +55,6 @@ ThisWarehouseIsPersonalStock=Este armazenamento representa estoque pessoal de:
     SelectWarehouseForStockDecrease=Escolha arquivo para usar a redução estoque
     SelectWarehouseForStockIncrease=Escolha arquivo para usar no aumento de estoque
     NoStockAction=Nenhuma ação de estocagem
    -DesiredStock=Estoque ideal desejado
     DesiredStockDesc=Esta quantidade será usada para determinar o estoque a ser reposto.
     StockToBuy=Para encomendar
     Replenishment=Reposição
    @@ -74,7 +63,6 @@ VirtualDiffersFromPhysical=De acordo com as opções de estoque ele poderá aume
     UseVirtualStockByDefault=Usar o estoque virtual por padrão, ao invés do estoque físico, como política de estoque
     UseVirtualStock=Usar estoque virtual
     UsePhysicalStock=Usar estoque físico
    -CurentSelectionMode=Modo de seleção atual
     CurentlyUsingVirtualStock=Estoque virtual
     CurentlyUsingPhysicalStock=Estoque físico
     RuleForStockReplenishment=Regra para a reposição de estoques
    @@ -85,7 +73,6 @@ WarehouseForStockIncrease=O arquivos serão utilizados para aumento de
     ForThisWarehouse=Para este armazenamento
     ReplenishmentStatusDesc=Esta é a lista de todos os produtos que esão abaixo do estoque mínimo (ou  menor que a quantidade de alerta, caso a caixa de seleção "Alerta Apenas" esteja marcada). Usando a caixa de seleção você poderá criar ordens de compra para preencher a diferença.
     ReplenishmentOrdersDesc=Esta é a lista de todas as  Ordens de Compras abertas, incluindo produtos pré-definidos. Somente ordens com produtos pré-definidos que podem alterar o estoque, são visíveies aqui.
    -Replenishments=Reabastecimentos
     NbOfProductBeforePeriod=Quantidade de produtos em estoque antes do período selecionado
     NbOfProductAfterPeriod=Quantidade de produtos em estoque período selecionado depois
     MassMovement=Movimentações em massa
    @@ -105,7 +92,6 @@ MovementTransferStock=Da transferência de produto %s em um outro armazém
     InventoryCodeShort=Código mov./inv.
     NoPendingReceptionOnSupplierOrder=Sem recepção pendente devido a abrir ordem fornecedor
     ThisSerialAlreadyExistWithDifferentDate=Este lote / número de série (<strong>(%s)</strong>) já existe, mas com diferente entradas/saídas (encontrado <strong>%s,</strong> mas você <strong>confirma% s).</strong>
    -OpenAll=Aberto para todas as ações
     OptionMULTIPRICESIsOn=A opção "diversos preços por segmento" está habilitada. Isto significa que um produto possui diversos preços de venda, desta forma o valor para venda não pode ser calculado
     ProductStockWarehouseCreated=Limite de estoque para alerta e estoque ótimo desejado corretamente criados
     ProductStockWarehouseUpdated=Limite de estoque para alerta e estoque ótimo desejado corretamente atualizados
    diff --git a/htdocs/langs/pt_BR/ticket.lang b/htdocs/langs/pt_BR/ticket.lang
    new file mode 100644
    index 00000000000..41c68d747d1
    --- /dev/null
    +++ b/htdocs/langs/pt_BR/ticket.lang
    @@ -0,0 +1,290 @@
    +# en_US lang file for module ticket
    +# Copyright (C) 2013  Jean-François FERRY <hello@librethic.io>
    +#
    +# 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
    +# the Free Software Foundation, either version 3 of the License, or
    +# (at your option) any later version.
    +#
    +# This program is distributed in the hope that it will be useful,
    +# but WITHOUT ANY WARRANTY; without even the implied warranty of
    +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    +# GNU General Public License for more details.
    +#
    +# You should have received a copy of the GNU General Public License
    +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
    +
    +#
    +# Generic
    +#
    +
    +Module56000Name=Bilhetes
    +Module56000Desc=Sistema de bilhetes para gerenciamento de problemas ou solicitações
    +
    +Permission56001=Veja bilhetes
    +Permission56002=Modificar bilhetes
    +Permission56003=Excluir bilhetes
    +Permission56004=Gerenciar bilhetes
    +Permission56005=Veja bilhetes de todos os terceiros (não são efetivos para usuários externos, sempre se limitem ao terceiro que eles dependem)
    +
    +TicketDictType=Tipo de bilhetes
    +TicketDictCategory=Categorias de bilhetes
    +TicketDictSeverity=Gravidade dos bilhetes
    +TicketTypeShortBUGSOFT=Lógica do sistema de desconexão
    +TicketTypeShortBUGHARD=Disfonctionnement matériel
    +TicketTypeShortCOM=Questão comercial
    +TicketTypeShortINCIDENT=Pedido de assistencia
    +TicketTypeShortPROJET=Projeto
    +TicketTypeShortOTHER=Outros
    +
    +TicketSeverityShortLOW=Baixo
    +TicketSeverityShortNORMAL=Normal
    +TicketSeverityShortHIGH=Alto
    +TicketSeverityShortBLOCKING=Crítico / Bloqueio
    +
    +ErrorBadEmailAddress=Campo '%s' incorreto
    +MenuTicketMyAssign=Meus bilhetes
    +MenuTicketMyAssignNonClosed=Meus bilhetes abertos
    +MenuListNonClosed=Bilhetes abertos
    +
    +TypeContact_ticket_internal_CONTRIBUTOR=Colaborador
    +TypeContact_ticket_internal_SUPPORTTEC=Usuário atribuído
    +TypeContact_ticket_external_SUPPORTCLI=Contato com o cliente / acompanhamento de incidentes
    +TypeContact_ticket_external_CONTRIBUTOR=Contribuidor externo
    +
    +OriginEmail=Fonte de e-mail
    +Notify_TICKETMESSAGE_SENTBYMAIL=Enviar resposta do ticket por email
    +
    +# Status
    +NotRead=Não lido
    +Read=Ler
    +Answered=Respondidas
    +Assigned=Atribuído
    +InProgress=Em progresso
    +Waiting=Aguardando
    +Closed=Fechada
    +Deleted=Excluído
    +
    +# Dict
    +Type=Tipo
    +Category=Categoria
    +Severity=Gravidade
    +
    +# Email templates
    +MailToSendTicketMessage=Para enviar email da mensagem do ticket
    +
    +#
    +# Admin page
    +#
    +TicketSetup=Configuração do módulo de ticket
    +TicketSettings=Configurações
    +TicketSetupPage=
    +TicketPublicAccess=Uma interface pública que não requer identificação está disponível no seguinte url
    +TicketSetupDictionaries=O tipo de categorias de aplicativos e o nível de gravidade são configuráveis ​​a partir de dicionários
    +TicketParamModule=Configuração da variável do módulo
    +TicketParamMail=Configuração de e-mail
    +TicketEmailNotificationFrom=E-mail de notificação de
    +TicketEmailNotificationFromHelp=Usado na resposta da mensagem do ticket pelo exemplo
    +TicketEmailNotificationTo=E-mail de notificações para
    +TicketEmailNotificationToHelp=Envie notificações por email para este endereço.
    +TicketNewEmailBodyLabel=Mensagem de texto enviada depois de criar um ticket (interface pública)
    +TicketNewEmailBodyHelp=O texto especificado aqui será inserido no email confirmando a criação de um novo ticket a partir da interface pública. Informações sobre a consulta do ticket são automaticamente adicionadas.
    +TicketParamPublicInterface=Configuração da interface pública
    +TicketsEmailMustExist=Exigir um endereço de email existente para criar um ticket
    +TicketsEmailMustExistHelp=Na interface pública, o endereço de email já deve estar preenchido no banco de dados para criar um novo ticket.
    +PublicInterface=Interface pública
    +TicketUrlPublicInterfaceLabelAdmin=URL da interface pública
    +TicketUrlPublicInterfaceHelpAdmin=É possível definir um alias para o servidor da Web e, assim, disponibilizar a interface pública para outro endereço IP.
    +TicketPublicInterfaceTextHomeLabelAdmin=Texto de boas vindas da interface pública
    +TicketPublicInterfaceTextHome=Você pode criar um ticket ou visualização de suporte existente a partir do ticket de rastreamento do identificador.
    +TicketPublicInterfaceTextHomeHelpAdmin=O texto aqui definido aparecerá na home page da interface pública.
    +TicketPublicInterfaceTopicLabelAdmin=Título da interface
    +TicketPublicInterfaceTopicHelp=Este texto aparecerá como o título da interface pública.
    +TicketPublicInterfaceTextHelpMessageLabelAdmin=Texto de ajuda para a entrada da mensagem
    +TicketPublicInterfaceTextHelpMessageHelpAdmin=Este texto aparecerá acima da área de entrada de mensagens do usuário.
    +ExtraFieldsTicket=Atributos extras
    +TicketCkEditorEmailNotActivated=O editor de HTML não está ativado. Coloque o conteúdo de FCKEDITOR_ENABLE_MAIL em 1 para obtê-lo.
    +TicketsDisableEmail=Não envie e-mails para criação de bilhetes ou gravação de mensagens
    +TicketsDisableEmailHelp=Por padrão, os emails são enviados quando novos bilhetes ou mensagens são criados. Ative esta opção para desativar * todas as notificações por e-mail
    +TicketsLogEnableEmail=Ativar log por email
    +TicketsLogEnableEmailHelp=A cada alteração, um e-mail será enviado ** para cada contato ** associado ao ticket.
    +TicketParams=Params
    +TicketsShowModuleLogo=Exibe o logotipo do módulo na interface pública
    +TicketsShowModuleLogoHelp=Ative esta opção para ocultar o módulo de logotipo nas páginas da interface pública
    +TicketsShowCompanyLogo=Exibir o logotipo da empresa na interface pública
    +TicketsShowCompanyLogoHelp=Ative esta opção para ocultar o logotipo da empresa principal nas páginas da interface pública
    +TicketsEmailAlsoSendToMainAddress=Também enviar notificação para o endereço de email principal
    +TicketsEmailAlsoSendToMainAddressHelp=Ative esta opção para enviar um email para o endereço "Notificação de email de" (veja a configuração abaixo)
    +TicketsLimitViewAssignedOnly=Restringir a exibição aos bilhetes atribuídos ao usuário atual (não efetivo para usuários externos, sempre limitado à terceira parte da qual eles dependem)
    +TicketsLimitViewAssignedOnlyHelp=Somente bilhetes atribuídos ao usuário atual ficarão visíveis. Não se aplica a um usuário com direitos de gerenciamento de bilhetes.
    +TicketsActivatePublicInterface=Ativar interface pública
    +TicketsActivatePublicInterfaceHelp=A interface pública permite que qualquer visitante crie bilhetes.
    +TicketsAutoAssignTicket=Atribuir automaticamente o usuário que criou o ticket
    +TicketsAutoAssignTicketHelp=Ao criar um ticket, o usuário pode ser atribuído automaticamente ao ticket.
    +TicketNumberingModules=Módulo de numeração de bilhetes
    +TicketNotifyTiersAtCreation=Notificar terceiros na criação
    +
    +#
    +# Index & list page
    +#
    +TicketsIndex=Bilhete - em casa
    +TicketList=Lista de bilhetes
    +TicketAssignedToMeInfos=Esta lista de bilhetes de exibição de página que são atribuídos ao usuário atual
    +NoTicketsFound=Nenhum bilhete encontrado
    +TicketViewAllTickets=Ver todos os bilhetes
    +TicketViewNonClosedOnly=Ver apenas bilhetes abertos
    +TicketStatByStatus=Tickets por status
    +
    +#
    +# Ticket card
    +#
    +Ticket=Bilhete
    +TicketCard=Bilhete de cartão
    +CreateTicket=Criar ticket
    +EditTicket=Editar ticket
    +TicketsManagement=Gestão de bilhetes
    +CreatedBy=Criado por
    +NewTicket=Novo Bilhete
    +SubjectAnswerToTicket=Bilhete de resposta
    +TicketTypeRequest=Tipo de solicitação
    +TicketCategory=Categoria
    +SeeTicket=Veja o ingresso
    +TicketMarkedAsRead=O ticket foi marcado como lido
    +TicketReadOn=Leia
    +TicketCloseOn=Clotured on
    +MarkAsRead=Marcar ingresso como lido
    +TicketMarkedAsReadButLogActionNotSaved=Bilhete marcado como fechado, mas nenhuma ação salva
    +TicketHistory=Histórico de bilhetes
    +AssignUser=Atribuir ao usuário
    +TicketAssigned=Bilhete agora é atribuído
    +TicketChangeType=Alterar tipo
    +TicketChangeCategory=Alterar categoria
    +TicketChangeSeverity=Alterar gravidade
    +TicketAddMessage=Adiciona uma mensagem
    +AddMessage=Adiciona uma mensagem
    +MessageSuccessfullyAdded=Bilhete adicionado
    +TicketMessageSuccessfullyAdded=Mensagem adicionada com sucesso
    +TicketMessagesList=Lista de mensagens
    +NoMsgForThisTicket=Nenhuma mensagem para este bilhete
    +Properties=Classificação
    +LatestNewTickets=Últimos bilhetes %s mais recentes (não lidos)
    +TicketSeverity=Gravidade
    +ShowTicket=Veja o ingresso
    +RelatedTickets=Bilhetes relacionados
    +TicketAddIntervention=Criar Intervenção
    +CloseTicket=Fechar bilhete
    +CloseATicket=Fechar um ticket
    +ConfirmCloseAticket=Confirme o fechamento do ticket
    +ConfirmDeleteTicket=Por favor confirme a exclusão de ingresso
    +TicketDeletedSuccess=Bilhete excluído com sucesso
    +TicketMarkedAsClosed=Bilhete marcado como fechado
    +TicketMarkedAsClosedButLogActionNotSaved=Bilhete marcado como fechado mas sem log salvo!
    +TicketDurationAuto=Duração calculada
    +TicketDurationAutoInfos=Duração calculada automaticamente a partir de intervenções relacionadas
    +TicketUpdated=Bilhete atualizado
    +SendMessageByEmail=Enviar mensagem por email
    +TicketNewMessage=Nova mensagem
    +ErrorMailRecipientIsEmptyForSendTicketMessage=O destinatário está vazio. Nenhum email enviado
    +TicketGoIntoContactTab=Por favor, vá para a aba "Contatos" para selecioná-los
    +TicketMessageMailIntro=Introdução
    +TicketMessageMailIntroHelp=Este texto é adicionado apenas no início do email e não será salvo.
    +TicketMessageMailIntroLabelAdmin=Introdução à mensagem ao enviar e-mail
    +TicketMessageMailIntroText=Olá, <br> Uma nova resposta foi enviada em um ticket que você contata. Aqui está a mensagem: <br>
    +TicketMessageMailIntroHelpAdmin=Este texto será inserido antes do texto da resposta a um ticket.
    +TicketMessageMailSignature=Assinatura
    +TicketMessageMailSignatureHelp=Este texto é adicionado somente no final do email e não será salvo.
    +TicketMessageMailSignatureText=<p> Atenciosamente, </ p> <p> - </ p>
    +TicketMessageMailSignatureLabelAdmin=Assinatura do email de resposta
    +TicketMessageMailSignatureHelpAdmin=Este texto será inserido após a mensagem de resposta.
    +TicketMessageHelp=Apenas este texto será salvo na lista de mensagens no cartão do ticket.
    +TicketMessageSubstitutionReplacedByGenericValues=As variáveis ​​de substituição são substituídas por valores genéricos.
    +TimeElapsedSince=Tempo decorrido desde
    +TicketTimeToRead=Tempo decorrido antes de ler
    +TicketContacts=Bilhete de contatos
    +TicketDocumentsLinked=Documentos vinculados ao ticket
    +ConfirmReOpenTicket=Confirmar reabrir este ticket?
    +TicketMessageMailIntroAutoNewPublicMessage=Uma nova mensagem foi postada no ticket com o assunto %s:
    +TicketAssignedToYou=Bilhete atribuído
    +TicketAssignedEmailBody=Você recebeu o bilhete # %s por %s
    +MarkMessageAsPrivate=Marcar mensagem como privada
    +TicketMessagePrivateHelp=Esta mensagem não será exibida para usuários externos
    +TicketEmailOriginIssuer=Emissor na origem dos bilhetes
    +InitialMessage=Mensagem inicial
    +LinkToAContract=Link para um contrato
    +TicketPleaseSelectAContract=Selecione um contrato
    +UnableToCreateInterIfNoSocid=Não é possível criar uma intervenção quando nenhum terceiro é definido
    +TicketMailExchanges=Trocas de correio
    +TicketInitialMessageModified=Mensagem inicial modificada
    +TicketMessageSuccesfullyUpdated=Mensagem atualizada com sucesso
    +TicketChangeStatus=Alterar status
    +TicketConfirmChangeStatus=Confirme a mudança de status: %s?
    +TicketLogStatusChanged=Status alterado: %s para %s
    +TicketNotNotifyTiersAtCreate=Não notificar a empresa na criação
    +Unread=Não lida
    +
    +#
    +# Logs
    +#
    +TicketLogMesgReadBy=Bilhete lido por %s
    +NoLogForThisTicket=Ainda não há registro para este ticket
    +TicketLogAssignedTo=Bilhete atribuído a %s
    +TicketAssignedButLogActionNotSaved=Bilhete atribuído, mas nenhum log salvo!
    +TicketLogPropertyChanged=Alterar classificação: de %s para %s
    +TicketLogClosedBy=Bilhete fechado por %s
    +TicketLogProgressSetTo=Mudança de progresso para %s por cento
    +TicketLogReopen=Bilhete reaberto
    +
    +#
    +# Public pages
    +#
    +TicketSystem=Ticket System
    +ShowListTicketWithTrackId=Exibir lista de bilhetes do ID da faixa
    +ShowTicketWithTrackId=Exibir ticket do ID da faixa
    +TicketPublicDesc=Você pode criar um ticket de suporte ou verificar a partir de um ID existente.
    +YourTicketSuccessfullySaved=O ticket foi salvo com sucesso!
    +MesgInfosPublicTicketCreatedWithTrackId=Um novo ticket foi criado com o ID %s.
    +PleaseRememberThisId=Por favor, mantenha o número de rastreamento que podemos perguntar mais tarde.
    +TicketNewEmailSubject=Confirmação de criação de bilhetes
    +TicketNewEmailSubjectCustomer=Novo ticket de suporte
    +TicketNewEmailBody=Este é um email automático para confirmar que você registrou um novo ticket.
    +TicketNewEmailBodyCustomer=Este é um email automático para confirmar que um novo ticket acaba de ser criado na sua conta.
    +TicketNewEmailBodyInfosTicket=Informações para monitorar o ticket
    +TicketNewEmailBodyInfosTrackId=Número de rastreamento de bilhetes: %s
    +TicketNewEmailBodyInfosTrackUrl=Você pode ver o progresso do ticket clicando no link acima.
    +TicketNewEmailBodyInfosTrackUrlCustomer=Você pode ver o progresso do ticket na interface específica clicando no seguinte link
    +TicketEmailPleaseDoNotReplyToThisEmail=Por favor, não responda diretamente a este e-mail! Use o link para responder na interface.
    +TicketPublicInfoCreateTicket=Este formulário permite que você registre um ticket de suporte em nosso sistema de gerenciamento.
    +TicketPublicPleaseBeAccuratelyDescribe=Por favor descreva com precisão o problema. Forneça o máximo de informações possíveis para permitir que identifiquemos sua solicitação corretamente.
    +TicketPublicMsgViewLogIn=Insira o código de acompanhamento do bilhete
    +TicketTrackId=ID de acompanhamento
    +OneOfTicketTrackId=Um de seu ID de rastreamento
    +ErrorTicketNotFound=Bilhete com ID de rastreamento %s não encontrado!
    +Subject=Assunto
    +ViewTicket=Visualizar passagem
    +ViewMyTicketList=Ver minha lista de bilhetes
    +ErrorEmailMustExistToCreateTicket=Erro: endereço de e-mail não encontrado em nosso banco de dados
    +TicketNewEmailSubjectAdmin=Novo ticket criado
    +TicketNewEmailBodyAdmin=<p> O ticket acaba de ser criado com a ID # %s, consulte as informações: </ p>
    +SeeThisTicketIntomanagementInterface=Veja o ticket na interface de gerenciamento
    +TicketPublicInterfaceForbidden=Acesso para esta área: proibido
    +
    +# notifications
    +TicketNotificationEmailSubject=Bilhete %s atualizado
    +TicketNotificationEmailBody=Esta é uma mensagem automática para notificá-lo de que o ticket %s acabou de ser atualizado
    +TicketNotificationRecipient=Destinatário da notificação
    +TicketNotificationLogMessage=Mensagem de log
    +TicketNotificationEmailBodyInfosTrackUrlinternal=Visualizar ticket na interface
    +TicketNotificationNumberEmailSent=E-mail de notificação enviado: %s
    +
    +
    +#
    +# Boxes
    +#
    +BoxLastTicket=Últimos bilhetes criados
    +BoxLastTicketDescription=Últimos %s criado bilhetes
    +BoxLastTicketContent=
    +BoxLastTicketNoRecordedTickets=Não há bilhetes recentes não lidos
    +BoxLastModifiedTicket=Últimos bilhetes modificados
    +BoxLastModifiedTicketDescription=Últimos bilhetes modificados %s
    +BoxLastModifiedTicketContent=
    +BoxLastModifiedTicketNoRecordedTickets=Nenhum bilhete modificado recente
    diff --git a/htdocs/langs/pt_BR/users.lang b/htdocs/langs/pt_BR/users.lang
    index 36a506f9d86..02f5f3d46e1 100644
    --- a/htdocs/langs/pt_BR/users.lang
    +++ b/htdocs/langs/pt_BR/users.lang
    @@ -24,7 +24,6 @@ ConfirmEnableUser=Tem certeza que deseja ativar o usuário <b>%s</b>?
     ConfirmReinitPassword=Tem certeza que deseja gerar uma nova senha para o usuário <b>%s</b>?
     ConfirmSendNewPassword=Tem certeza que deseja gerar e enviar uma nova senha para o usuário <b>%s</b>?
     NewUser=Novo usuário
    -CreateUser=Criar usuário
     LoginNotDefined=O usuário não está definido
     NameNotDefined=O nome não está definido
     ListOfUsers=Lista de usuário
    diff --git a/htdocs/langs/pt_BR/website.lang b/htdocs/langs/pt_BR/website.lang
    index 3cf64eab259..e6a32d0703d 100644
    --- a/htdocs/langs/pt_BR/website.lang
    +++ b/htdocs/langs/pt_BR/website.lang
    @@ -1,29 +1,20 @@
     # Dolibarr language file - Source file is en_US - website
    -WebsiteSetupDesc=Crie aqui o numero de entradas ao website que você precisa. Depois entre no menu websites para editá-las.
     DeleteWebsite=Apagar website
    -ConfirmDeleteWebsite=Você tem certeza que deseja apagar este web site. Todas as páginas e conteúdos serão removidos.
     WEBSITE_PAGE_EXAMPLE=Página da Web para usar como exemplo
     WEBSITE_PAGENAME=Nome da Página/Apelido
     WEBSITE_ALIASALT=Nomes / alias alternativos de página
     WEBSITE_CSS_URL=URL do arquivo CSS externo.
    -WEBSITE_CSS_INLINE=Conteúdo do arquivo CSS (comum a todas as páginas)
    -WEBSITE_JS_INLINE=Conteúdo do arquivo Javascript (comum a todas as páginas)
     WEBSITE_HTML_HEADER=Adição na parte inferior do cabeçalho HTML (comum a todas as páginas)
     WEBSITE_ROBOT=Arquivo robô (robots.txt)
    -WEBSITE_HTACCESS=Arquivo do site .htaccess
     HtmlHeaderPage=Cabeçalho HTML (específico apenas para esta página)
     PageNameAliasHelp=Nome ou alias da página. Este alias também é usado para forjar um URL de SEO quando o site é executado a partir de um host virtual de um servidor Web (como o Apacke, o Nginx, ...). Use o botão "<strong> %s </ strong>" para editar este alias.
     EditTheWebSiteForACommonHeader=Nota: Se você quiser definir um cabeçalho personalizado para todas as páginas, edite o cabeçalho no nível do site em vez de na página / recipiente.
     MediaFiles=Biblioteca de mídias
    -EditCss=Editar estilo / CSS ou cabeçalho HTML
    -EditMedias=Editar mídias
    -EditPageMeta=Editar Meta
     AddWebsite=Adicionar site
     Webpage=Página WEB / container
     AddPage=Adicionar página / recipiente
     HomePage=Pagina inicial
     PageContainer=Página / recipiente
    -PreviewOfSiteNotYetAvailable=A Pré-visualização do seu website <strong>%s</strong> ainda não está disponível. Primeiro você deverá adicionar uma página.
     RequestedPageHasNoContentYet=A página solicitada com id %s ainda não possui conteúdo ou o arquivo de cache .tpl.php foi removido. Edite o conteúdo da página para resolver isso.
     PageContent=Página / Contenair
     PageDeleted=Página / Contenair '%s' do site %s excluído
    @@ -33,45 +24,28 @@ ViewPageInNewTab=Visualizar página numa nova aba
     SetAsHomePage=Definir com Página Inicial
     RealURL=URL real
     ViewWebsiteInProduction=Visualizar website usando origem URLs
    -SetHereVirtualHost=Se você pode criar, no seu servidor web (Apache, Nginx, ...), um host virtual dedicado com PHP habilitado e um diretório raiz em <br> <strong> %s </ strong> <br> então entre aqui o virtual nome de host que você criou, então a pré-visualização pode ser feita também usando este acesso dedicado ao servidor web em vez de usar o servidor Dolibarr.
    -YouCanAlsoTestWithPHPS=No ambiente de desenvolvimento, você pode preferir testar o site com o servidor web embutido no PHP (PHP 5.5 requisitado) executando <br> <strong> php -S 0.0.0.0:8080 -t %s </ strong>
    +SetHereVirtualHost=<u> Usar com o Apache / NGinx /...</ u> <br> Se você pode criar, no seu servidor web (Apache, Nginx, ...), um Host Virtual dedicado com PHP habilitado e um diretório Root no <br> <strong> %s </ strong> <br> Em seguida, insira aqui o nome do host virtual que você criou, para que a visualização também possa ser feita usando esse acesso ao servidor Web dedicado, em vez de usar apenas o servidor Dolibarr.
    +YouCanAlsoTestWithPHPS=<u> Usar com servidor embutido em PHP </ u> <br> No ambiente de desenvolvimento, você pode preferir testar o site com o servidor da Web incorporado em PHP (o PHP 5.5 é necessário) executando o <strong> php -S 0.0. 0,0: 8080 -t %s </ strong>
     PreviewSiteServedByWebServer=<u> Visualize %s em uma nova guia. </ u> <br> <br> O %s será servido por um servidor web externo (como Apache, Nginx, IIS). Você deve instalar e configurar este servidor antes de apontar para o diretório: <br> <strong> %s </ strong> <br> URL servido por servidor externo: <br> <strong> %s </ strong>
     PreviewSiteServedByDolibarr=<u> Visualize %s em uma nova guia. </ u> <br> <br> O %s será servido pelo servidor Dolibarr para que não seja necessário instalar qualquer servidor web extra (como Apache, Nginx, IIS). < br> O inconveniente é que o URL das páginas não é amigável e comece com o caminho do seu Dolibarr. URL de URL servido por Dolibarr: <br> <strong> %s </ strong> <br> <br> Para usar o seu próprio servidor web externo para servir este site, crie um host virtual em seu servidor web que aponte para o diretório <br> <strong> %s </ strong> <br> e digite o nome deste servidor virtual e clique no outro botão de visualização .
     VirtualHostUrlNotDefined=URL do host virtual veiculado pelo servidor web externo não definido
     NoPageYet=Ainda não há páginas
     SyntaxHelp=Ajuda sobre dicas de sintaxe específicas
    -YouCanEditHtmlSourceckeditor=Você pode editar o código-fonte HTML usando o botão "Fonte" no editor.
    -YouCanEditHtmlSource=<br> <span class = "fa fa-bug"> </ span> Você pode incluir o código PHP nesta fonte usando tags <strong> &lt;? php? a076925z0 </ strong>. As seguintes variáveis ​​globais estão disponíveis: $ conf, $ langs, $ db, $ mysoc, $ user, $ website. <br> <br> <span class = "fa fa bug"> </ span> Você também pode incluir conteúdo de outra Página / Container com a seguinte sintaxe: <br> <strong> &lt;? php includeContainer ('alias_of_container_to_include'); ? a076925z0 </ strong> <br> <br> <span class = "fa fa bug"> </ span> Você pode redirecionar para outra Página / Container com a seguinte sintaxe: <br> <strong> &lt;? php redirectToContainer ('alias_of_container_to_redirect_to'); ? &gt; </ strong> <br> <br> <span class = "fa fa-download"> </ span> Para incluir um <strong> link para baixar </ strong> um arquivo armazenado nos <strong> documentos < / strong>, use o <strong> document.php </ strong> wrapper: <br> Exemplo, para um arquivo em documentos / ecm (precisa ser logado), a sintaxe é: <br> <strong> &lt;a href = "/document.php?modulepart=ecm&file=[relative_dir/]filename.ext" a076925z0 </ strong> <br> Para um arquivo em documentos / mídias (abrir diretório para acesso público), a sintaxe é: <br> <strong> &lt;a href = "/ document.php? modulepart = medias & file = [relative_dir /] filename.ext" a076925z0 </ strong> <br> Para um arquivo compartilhado com um link compartilhado (acesso aberto usando a chave de hash de compartilhamento do arquivo), sintaxe é: <br> <strong> &lt;a href = "/ document.php? hashp = publicsharekeyoffile" a076925z0 </ strong> <br> <br> <span class = "fa fa-picture-o"> </ span> Para incluir uma imagem <strong> </ strong> armazenada no diretório <strong> documentos </ strong>, use o wrapper <strong> viewimage.php </ strong>: Exemplo, para uma imagem em documentos / mídias (acesso aberto), a sintaxe é: <br> <strong> &lt;a href = "/ viewimage.php? modulepart = medias&amp;file = [relative_dir /] filename.ext" a076925z0 </ strong> <br>
     ClonePage=Página clone / container
     CloneSite=Site Clone
    -SiteAdded=Site adicionado
     ConfirmClonePage=Digite o código / alias da nova página e se é uma tradução da página clonada.
    -PageIsANewTranslation=A nova página é uma tradução da página atual?
    -LanguageMustNotBeSameThanClonedPage=Você clona uma página como uma tradução. O idioma da nova página deve ser diferente do idioma da página de origem.
    -ParentPageId=ID da página principal
    -WebsiteId=ID do site
     CreateByFetchingExternalPage=Criar página / recipiente obtendo página do URL externo ...
    -OrEnterPageInfoManually=Ou crie a página vazia do zero ...
     FetchAndCreate=Procure e crie
    -ExportSite=Exportar site
    -IDOfPage=Id da página
    -Banner=Bandeira
     BlogPost=Postagem do blog
    -WebsiteAccount=Conta do site
    -WebsiteAccounts=Contas do site
     AddWebsiteAccount=Criar conta do site
     BackToListOfThirdParty=Voltar à lista para Terceiros
     DisableSiteFirst=Desativar o site primeiro
     MyContainerTitle=Título do meu site
    -AnotherContainer=Outro recipiente
     WEBSITE_USE_WEBSITE_ACCOUNTS=Habilitar a tabela da conta do site
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Ative a tabela para armazenar contas do site (login / pass) para cada site / terceira parte
     YouMustDefineTheHomePage=Você deve primeiro definir a Home page padrão
     OnlyEditionOfSourceForGrabbedContent=Apenas uma edição de fonte HTML é possível quando o conteúdo foi extraído de um site externo
     GrabImagesInto=Pegue também imagens encontradas no css e na página.
    -ImagesShouldBeSavedInto=As imagens devem ser salvas no diretório
     WebsiteRootOfImages=Diretório raiz para imagens do site
    -SubdirOfPage=Subdiretório dedicado à página
     AliasPageAlreadyExists=Alias ​​página <strong> %s </ strong> já existe
     CorporateHomePage=Página inicial corporativa
    -EmptyPage=Página vazia
    diff --git a/htdocs/langs/pt_BR/withdrawals.lang b/htdocs/langs/pt_BR/withdrawals.lang
    index e980da3eb0c..89db209e4bd 100644
    --- a/htdocs/langs/pt_BR/withdrawals.lang
    +++ b/htdocs/langs/pt_BR/withdrawals.lang
    @@ -42,9 +42,6 @@ StatusMotif2=Solicitação contestada
     StatusMotif3=Nenhum pedido para pagamento por Débito direto
     StatusMotif4=Pedido do Cliente
     StatusMotif8=Outras razões
    -CreateForSepaFRST=Criar arquivo de débito direto (SEPA FRST)
    -CreateForSepaRCUR=Criar arquivo de débito direto (SEPA RCUR)
    -CreateAll=Criar arquivo de débito direto (todos)
     CreateGuichet=Apenas do escritório
     OrderWaiting=Aguardando resolução
     NotifyTransmision=Retirada de Transmissão
    @@ -64,22 +61,15 @@ RUMLong=Unique Mandate Reference (Referência Única de Mandato)
     WithdrawMode=Modo de Débito direto (FRST ou RECUR)
     WithdrawRequestAmount=Quantidade de pedido de débito direto:
     WithdrawRequestErrorNilAmount=Não foi possível criar solicitação de débito direto para quantidade vazia.
    -SepaMandate=Mandato de Débito Direto SEPA
    -SepaMandateShort=Mandato SEPA
     PleaseReturnMandate=Favor devolver este formulário de mandato por e-mail para %s ou por correio para
     SEPALegalText=Pela assinatura deste formulário de mandato, você autoriza (A) %s a enviar instruções para o seu banco efetuar débito em sua conta e (B) que o seu banco efetue débito em sua conta de acordo com as instruções de %s. Como parte dos seus direitos, você tem direito ao reembolso do seu banco sob os termos e condições do acordo com ele firmado. O reembolso deve ser solicitado dentro de 8 semanas a partir da data em que a sua conta foi debitada. Os seus direitos relativos ao mandato acima são explicados em uma declaração que você pode obter junto a seu banco.
    -CreditorIdentifier=Identificador do Credor
    -CreditorName=Nome do Credor
     SEPAFillForm=(B) Favor preencher todos os campos marcados com *
     SEPAFormYourName=Seu nome
     SEPAFormYourBAN=Nome da Conta do Seu Banco (IBAN)
     SEPAFormYourBIC=Código Identificador do Seu Banco (BIC)
    -SEPAFrstOrRecur=Tipo de pagamento
     ModeRECUR=Pagamento recorrente
    -ModeFRST=Pagamento único
     PleaseCheckOne=Favor marcar apenas um
     DirectDebitOrderCreated=Pedido de débito direto %s criado
    -AmountRequested=Quantidade solicitada
     InfoCreditSubject=Pagamento do pedido com pagamento por Débito direto %s pelo banco
     InfoCreditMessage=O pagamento do pedido por Débito direto %s foi feito pelo banco.<br>Dados do pagamento: %s
     InfoTransSubject=Transmissão do pedido com pagamento por Débito direto %s para o banco
    diff --git a/htdocs/langs/pt_PT/accountancy.lang b/htdocs/langs/pt_PT/accountancy.lang
    index 9d552969aa0..014429c3d43 100644
    --- a/htdocs/langs/pt_PT/accountancy.lang
    +++ b/htdocs/langs/pt_PT/accountancy.lang
    @@ -9,7 +9,7 @@ ACCOUNTING_EXPORT_AMOUNT=Exportar quantia
     ACCOUNTING_EXPORT_DEVISE=Exportar moeda
     Selectformat=Selecione o formato para o ficheiro
     ACCOUNTING_EXPORT_FORMAT=Selecione o formato para o ficheiro
    -ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type
    +ACCOUNTING_EXPORT_ENDLINE=Selecione o tipo de retorno de carro
     ACCOUNTING_EXPORT_PREFIX_SPEC=Especifique o prefixo para o nome de ficheiro
     ThisService=Este serviço
     ThisProduct=Este produto
    @@ -26,25 +26,29 @@ Chartofaccounts=Gráfico de contas
     CurrentDedicatedAccountingAccount=Conta dedicada atual
     AssignDedicatedAccountingAccount=Nova conta para atribuir
     InvoiceLabel=Etiqueta da fatura
    -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to an accounting account
    -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to an accounting account
    +OverviewOfAmountOfLinesNotBound=Visão geral da quantidade de linhas não ligadas a uma conta contábil
    +OverviewOfAmountOfLinesBound=Visão geral da quantidade de linhas já vinculadas a uma conta contábil
     OtherInfo=Outra informação
     DeleteCptCategory=Remover conta contabilistica do grupo
     ConfirmDeleteCptCategory=Tem a certeza que deseja remover esta conta contabilística deste grupo?
    -JournalizationInLedgerStatus=Status of journalization
    +JournalizationInLedgerStatus=Status da jornalização
     AlreadyInGeneralLedger=Já foi registado nos diários contabilísticos
    -NotYetInGeneralLedger=Not yet journalized in ledgers
    -GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accounting group
    -DetailByAccount=Show detail by account
    -AccountWithNonZeroValues=Accounts with non zero values
    -ListOfAccounts=List of accounts
    +NotYetInGeneralLedger=Ainda não é publicado em livros
    +GroupIsEmptyCheckSetup=Grupo está vazio, verifique a configuração do grupo de contabilidade personalizado
    +DetailByAccount=Mostrar detalhes por conta
    +AccountWithNonZeroValues=Contas com valores diferentes de zero
    +ListOfAccounts=Lista de contas
    +CountriesInEEC=Países da CEE
    +CountriesNotInEEC=Países não na CEE
    +CountriesInEECExceptMe=Países na CEE, exceto %s
    +CountriesExceptMe=Todos os países, exceto %s
     
    -MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
    -MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup
    -MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
    -MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
    +MainAccountForCustomersNotDefined=Principal conta contábil para clientes não definidos na configuração
    +MainAccountForSuppliersNotDefined=Conta contábil principal para fornecedores não definidos na configuração
    +MainAccountForUsersNotDefined=Principal conta contábil para usuários não definidos na configuração
    +MainAccountForVatPaymentNotDefined=Principal conta contábil para pagamento de IVA não definida na configuração
     
    -AccountancyArea=Accounting area
    +AccountancyArea=Área de contabilidade
     AccountancyAreaDescIntro=O uso do módulo de contabilidade é feito em várias etapas:
     AccountancyAreaDescActionOnce=As seguintes ações são geralmente executadas apenas uma vez, ou uma vez por ano ...
     AccountancyAreaDescActionOnceBis=Os próximos passos devem ser efetuados para economizar tempo no futuro, sugerindo-lhe a conta contabilística padrão correta quando estiver a ser feito um registo no Livro Razão e nos Diários.
    @@ -55,14 +59,14 @@ AccountancyAreaDescChartModel=PASSO %s: Crie um modelo de gráfico de conta no m
     AccountancyAreaDescChart=PASSO %s: Criar or verificar conteúdo do seu gráfico de conta no menu %s
     
     AccountancyAreaDescVat=PASSO %s: Defina a conta contabilística para cada taxa de IVA. Para tal pode usar a entrada %s do menu.
    -AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
    +AccountancyAreaDescDefault=STEP %s: definir contas contábeis padrão. Para isso, use a entrada do menu %s.
     AccountancyAreaDescExpenseReport=PASSO %s: Defina a conta contabilística para o relatório de despesa. Para tal pode usar a entrada do menu %s.
     AccountancyAreaDescSal=PASSO %s: Defina a conta contabilística para o pagamento de salários. Para tal pode usar a entrada do menu %s.
    -AccountancyAreaDescContrib=PASSO %s: Defina a conta contabilística para despesas especiais (outros impostos). Para tal pode usar a entrada do menu %s.
    +AccountancyAreaDescContrib=ETAPA %s: Definir contas contábeis padrão para despesas especiais (impostos diversos). Para isso, use a entrada do menu %s.
     AccountancyAreaDescDonation=PASSO %s: Defina a conta contabilística para donativos. Para tal pode usar a entrada do menu %s.
    -AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
    +AccountancyAreaDescMisc=ETAPA %s: Defina contas padrão obrigatórias e contas contábeis padrão para transações diversas. Para isso, use a entrada do menu %s.
     AccountancyAreaDescLoan=PASSO %s: Defina a conta contabilística para empréstimos. Para tal pode usar a entrada do menu %s.
    -AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s.
    +AccountancyAreaDescBank=STEP %s: defina as contas contábeis e o código do diário para cada banco e contas financeiras. Para isso, use a entrada do menu %s.
     AccountancyAreaDescProd=PASSO %s: Defina a contas contabilística para os seus produtos. Para tal pode usar a entrada %s do menu.
     
     AccountancyAreaDescBind=PASSO %s: Verifique a ligação entre as linhas %s existentes e a conta contabilística foi efetuada, de forma a que a aplicação possa registar as transações no Livro Razão num só clique. Complete ligações que faltam. Para tal, utilize a entrada do menu %s.
    @@ -71,7 +75,7 @@ AccountancyAreaDescAnalyze=PASSO %s: Adicionar ou editar transações e gerar re
     
     AccountancyAreaDescClosePeriod=PASSO %s: Fechar período para que não seja possível modificar no futuro.
     
    -TheJournalCodeIsNotDefinedOnSomeBankAccount=A mandatory step in setup was not complete (accounting code journal not defined for all bank accounts)
    +TheJournalCodeIsNotDefinedOnSomeBankAccount=Uma etapa obrigatória na configuração não foi concluída (o diário do código contábil não foi definido para todas as contas bancárias)
     Selectchartofaccounts=Selecione gráfico de contas ativo 
     ChangeAndLoad=Mudar e carregar
     Addanaccount=Adicione uma conta contabilística
    @@ -91,7 +95,7 @@ MenuProductsAccounts=Contas de produtos
     ProductsBinding=Contas de produtos
     Ventilation=Vinculação a contas
     CustomersVentilation=Associação à fatura do cliente
    -SuppliersVentilation=Vendor invoice binding
    +SuppliersVentilation=Vinculação de fatura do fornecedor
     ExpenseReportsVentilation=Vinculação do relatório de despesas
     CreateMvts=Criar nova transação
     UpdateMvts=Modificação de uma transação
    @@ -99,7 +103,7 @@ ValidTransaction=Validar transação
     WriteBookKeeping=Registar transações no Livro Razão
     Bookkeeping=Livro Razão
     AccountBalance=Saldo da conta
    -ObjectsRef=Source object ref
    +ObjectsRef=Ref de objeto de origem
     CAHTF=Total de compras em fornecedores sem impostos
     TotalExpenseReport=Relatório da despesa total
     InvoiceLines=Linhas de faturas a vincular
    @@ -119,7 +123,7 @@ LineOfExpenseReport=Linha de relatório de despesas
     NoAccountSelected=Nenhuma conta contabilística selecionada
     VentilatedinAccount=Vinculado com sucesso a conta de contabilística
     NotVentilatedinAccount=Não vinculado à conta contabilística
    -XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
    +XLineSuccessfullyBinded=produtos / serviços %s vinculados com êxito a uma conta contábil
     XLineFailedToBeBinded=%s produtos/serviços não foram vinculados a uma conta contabilística
     
     ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos para vincular, mostrado por página (máximo recomendado: 50)
    @@ -132,14 +136,14 @@ ACCOUNTING_LENGTH_GACCOUNT=Tamanho das contas contabilísticas gerais (se defini
     ACCOUNTING_LENGTH_AACCOUNT=Tamanho das contas contabilísticas de terceiros (se definir o valor deste campo a 6, então a conta '401' irá ser mostrada como '401000')
     ACCOUNTING_MANAGE_ZERO=Permitir a gestão do número de zeros no fim da designação da conta contabilística. Isto é necessário em alguns países (como a Suíça). Se desativada (por defeito), você poderá definir os 2 seguintes parâmetros de forma a que a aplicação adicione zeros virtualmente.
     BANK_DISABLE_DIRECT_INPUT=Desactivar a gravação direta de transação na conta bancária
    -ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal
    +ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Ativar exportação de rascunho em diário
     
     ACCOUNTING_SELL_JOURNAL=Diário de vendas
     ACCOUNTING_PURCHASE_JOURNAL=Diário de compras
     ACCOUNTING_MISCELLANEOUS_JOURNAL=Diário de diversos
     ACCOUNTING_EXPENSEREPORT_JOURNAL=Diário de relatório de despesas
     ACCOUNTING_SOCIAL_JOURNAL=Diário social
    -ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal
    +ACCOUNTING_HAS_NEW_JOURNAL=Tem novo Jornal
     
     ACCOUNTING_ACCOUNT_TRANSFER_CASH=Conta contabilística de transferência
     ACCOUNTING_ACCOUNT_SUSPENSE=Conta contabilística de espera
    @@ -154,100 +158,102 @@ Doctype=Tipo de documento
     Docdate=Data
     Docref=Referência
     LabelAccount=Etiqueta de conta
    -LabelOperation=Label operation
    +LabelOperation=Operação de etiqueta
     Sens=Sentido
    +LetteringCode=Código de rotulação
     Codejournal=Diário
     NumPiece=Número da peça
     TransactionNumShort=Núm. de transação
     AccountingCategory=Grupos personalizados
     GroupByAccountAccounting=Agrupar por conta contabilística
    -AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports.
    +AccountingAccountGroupsDesc=Você pode definir aqui alguns grupos de conta contábil. Eles serão usados ​​para relatórios contábeis personalizados.
     ByAccounts=Por contas
    -ByPredefinedAccountGroups=By predefined groups
    -ByPersonalizedAccountGroups=By personalized groups
    +ByPredefinedAccountGroups=Por grupos predefinidos
    +ByPersonalizedAccountGroups=Por grupos personalizados
     ByYear=por ano
     NotMatch=Não configurado
     DeleteMvt=Eliminar as linhas do Livro Razão
     DelYear=Ano a apagar
     DelJournal=Diário a apagar
     ConfirmDeleteMvt=Isto irá apagar todas as linhas do Livro Razão para o ano atual e/ou de um diário específico. Pelo menos um critério é necessário.
    -ConfirmDeleteMvtPartial=This will delete the transaction from the Ledger (all lines related to same transaction will be deleted)
    +ConfirmDeleteMvtPartial=Isso excluirá a transação do razão (todas as linhas relacionadas à mesma transação serão excluídas)
     FinanceJournal=Diário financeiro
     ExpenseReportsJournal=Diário de relatórios de despesas
     DescFinanceJournal=Diário financeiro incluindo todos os tipos de pagamentos por conta bancária
    -DescJournalOnlyBindedVisible=This is a view of record that are bound to an accounting account and can be recorded into the Ledger.
    +DescJournalOnlyBindedVisible=Esta é uma visão do registro que está vinculada a uma conta contábil e pode ser registrada no Ledger.
     VATAccountNotDefined=Conta para efeitos de IVA não definido
     ThirdpartyAccountNotDefined=Conta para terceiros não definido
     ProductAccountNotDefined=Conta para o produto não definido
     FeeAccountNotDefined=Conta para o honorário não definida
     BankAccountNotDefined=Conta de banco não definida
     CustomerInvoicePayment=Pagamento de fatura a cliente
    -ThirdPartyAccount=Third party account
    +ThirdPartyAccount=Conta de terceiros
     NewAccountingMvt=Nova transação
     NumMvts=Número da transação
     ListeMvts=Lista de movimentos
     ErrorDebitCredit=Débito e crédito não pode ter um valor, ao mesmo tempo
     AddCompteFromBK=Adicionar contas contabilisticas ao grupo
     ReportThirdParty=Lista de contas de terceiros
    -DescThirdPartyReport=Consult here the list of the third party customers and vendors and their accounting accounts
    +DescThirdPartyReport=Consulte aqui a lista de clientes e fornecedores de terceiros e suas contas contábeis
     ListAccounts=Lista de contas contabilísticas
    -UnknownAccountForThirdparty=Unknown third party account. We will use %s
    -UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
    -UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unknown third party account and waiting account not defined. Blocking error
    -PaymentsNotLinkedToProduct=Payment not linked to any product / service
    +UnknownAccountForThirdparty=Conta de terceiros desconhecida. Nós usaremos %s
    +UnknownAccountForThirdpartyBlocking=Conta de terceiros desconhecida. Erro de bloqueio
    +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Conta de terceiros desconhecida e conta em espera não definida. Erro de bloqueio
    +PaymentsNotLinkedToProduct=Pagamento não vinculado a nenhum produto / serviço
     
    -Pcgtype=Group of account
    -Pcgsubtype=Subgroup of account
    -PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criterias for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
    +Pcgtype=Grupo de conta
    +Pcgsubtype=Subgrupo de conta
    +PcgtypeDesc=Grupo e subgrupo de conta são usados ​​como critérios predefinidos de 'filtro' e 'agrupamento' para alguns relatórios contábeis. Por exemplo, 'RENDA' ou 'DESPESA' são usados ​​como grupos para contas contábeis de produtos para criar o relatório de despesas / receitas.
     
     TotalVente=Total de volume de negócios sem impostos
     TotalMarge=Margem total de vendas
     
     DescVentilCustomer=Consulte aqui a lista de linhas de faturas a clientes associados (ou não) a uma conta contabilística de produto
    -DescVentilMore=Na maioria dos casos, se você usar produtos ou serviços predefinidos e configurar o número de conta no cartão do produto/serviço, a aplicação será capaz de efetuar toda a vinculação entre a linhas das faturas e a conta contabilística do seu gráfico de contas através de um clique no botão <strong>"%s"</strong>. Se a conta não for configurada no cartão do produto/serviço or se você tiver algumas linhas não vinculadas a uma conta, então terá de efetuar a vinculação manual a partir do menu "<strong>%s</strong>".
    +DescVentilMore=Na maioria dos casos, se você usar produtos ou serviços predefinidos e definir o número da conta no cartão de produto / serviço, o aplicativo poderá fazer toda a ligação entre suas linhas de fatura e a conta contábil de seu plano de contas, apenas em um clique com o botão <strong> "%s" </ strong>. Se a conta não foi definida em cartões de produtos / serviços ou se você ainda tiver algumas linhas não vinculadas a uma conta, será necessário fazer uma ligação manual no menu "<strong> %s </ strong>".
     DescVentilDoneCustomer=Consulte aqui a lista das linhas de faturas a clientes e as suas contas de contabilísticas de produto
     DescVentilTodoCustomer=Vincular linhas da fatura que não estejam vinculadas a uma conta contabilística de produto
     ChangeAccount=Alterar a conta contabilística de produto/serviço para as linhas selecionadas com a seguinte conta contabilística:
     Vide=-
    -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account
    -DescVentilDoneSupplier=Consult here the list of the lines of invoices vendors and their accounting account
    +DescVentilSupplier=Consulte aqui a lista de linhas de faturas do fornecedor vinculadas ou ainda não ligadas a uma conta de contabilidade do produto
    +DescVentilDoneSupplier=Consulte aqui a lista das linhas de fornecedores de faturas e sua conta contábil
     DescVentilTodoExpenseReport=Vincule as linhas do relatórios de despesas de não vinculados a um honorário de uma conta de contabilística
     DescVentilExpenseReport=Consulte aqui a lista de linhas do relatório de despesas vinculadas (ou não) a um honorário da conta contabilística
    -DescVentilExpenseReportMore=Se configurar a conta contabilística de acordo com o tipo de linha de relatório de despesa, a aplicação será capaz de efetuar toda a vinculação entre as linhas do seu relatório de despesas e a conta contabilística do seu gráfico de contas através de um único clique no botão <strong>"%s"</strong>. Se a conta não foi configurada no dicionário de honorários ou se você tem algumas linhas não vinculadas, então terá de efetuar a vinculação manuel no menu "<strong>%s</strong>".
    +DescVentilExpenseReportMore=Se você configurar uma conta contábil no tipo de linhas de relatório de despesas, o aplicativo poderá fazer toda a ligação entre suas linhas de relatório de despesas e a conta contábil do seu plano de contas, em apenas um clique com o botão <strong> "%s" </ strong>. Se a conta não foi definida no dicionário de taxas ou se você ainda tiver algumas linhas não vinculadas a nenhuma conta, será necessário fazer uma ligação manual no menu "<strong> %s </ strong>".
     DescVentilDoneExpenseReport=Consulte aqui a lista das linhas de relatórios de despesas e os seus honorários da conta contabilística
     
     ValidateHistory=Vincular automaticamente
     AutomaticBindingDone=Vinculação automática efetuada
     
     ErrorAccountancyCodeIsAlreadyUse=Erro, não pode apagar esta conta contabilística porque está a ser utilizada
    -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s
    +MvtNotCorrectlyBalanced=Movimento não corretamente balanceado. Débito = %s | Crédito = %s
    +Balancing=Balanceamento
     FicheVentilation=Cartão de vinculação
     GeneralLedgerIsWritten=As transações são escritas no Livro Razão
    -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized.
    -NoNewRecordSaved=No more record to journalize
    +GeneralLedgerSomeRecordWasNotRecorded=Algumas das transações não puderam ser revistas. Se não houver outra mensagem de erro, provavelmente é porque já foram promovidas.
    +NoNewRecordSaved=Não há mais registros para journalize
     ListOfProductsWithoutAccountingAccount=Lista de produtos não vinculados a qualquer conta contabilística
     ChangeBinding=Alterar vinculação
    -Accounted=Accounted in ledger
    -NotYetAccounted=Not yet accounted in ledger
    +Accounted=Contabilizado no ledger
    +NotYetAccounted=Ainda não contabilizado no razão
     
     ## Admin
     ApplyMassCategories=Aplicar categorias em massa
    -AddAccountFromBookKeepingWithNoCategories=Available acccount not yet in a personalized group
    +AddAccountFromBookKeepingWithNoCategories=Conta disponível ainda não em um grupo personalizado
     CategoryDeleted=Categoria para a conta contabilística foi removida
     AccountingJournals=Diários contabilisticos
     AccountingJournal=Diário contabilistico
     NewAccountingJournal=Novo diário contabilistico
     ShowAccoutingJournal=Mostrar diário contabilistico
     Nature=Natureza
    -AccountingJournalType1=Miscellaneous operations
    +AccountingJournalType1=Operações diversas
     AccountingJournalType2=Vendas
     AccountingJournalType3=Compras
     AccountingJournalType4=Banco
     AccountingJournalType5=Relatório de despesas
    -AccountingJournalType8=Inventory
    +AccountingJournalType8=Inventário
     AccountingJournalType9=Contém novo
     ErrorAccountingJournalIsAlreadyUse=Este diário já está a ser utilizado
    -AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu <b>%s</b> - <b>%s</b>
    +AccountingAccountForSalesTaxAreDefinedInto=Nota: A conta de contabilidade para imposto sobre vendas é definida no menu <b> %s </ b> - <b> %s </ b>
     
     ## Export
     ExportDraftJournal=Exportar o diário rascunho
    @@ -261,22 +267,23 @@ Modelcsv_ciel=Exportar relativamente a Sage Ciel Compta ou Compta Evolution
     Modelcsv_quadratus=Exportar relativamente a Quadratus QuadraCompta
     Modelcsv_ebp=Exportar relativamente a EBP
     Modelcsv_cogilog=Exportar relativamente a Cogilog
    -Modelcsv_agiris=Export towards Agiris
    -Modelcsv_configurable=Export Configurable
    +Modelcsv_agiris=Exportar para o Agiris
    +Modelcsv_configurable=Exportar CSV configurável
    +Modelcsv_FEC=Exportação FEC (Art. L47 A) (Teste)
     ChartofaccountsId=ID de plano de contas
     
     ## Tools - Init accounting account on product / service
     InitAccountancy=Iniciar contabilidade
    -InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases.
    +InitAccountancyDesc=Essa página pode ser usada para inicializar uma conta contábil em produtos e serviços que não tenham uma conta contábil definida para vendas e compras.
     DefaultBindingDesc=Esta página pode ser usada para definir uma conta padrão a ser usada para vincular registo de transações sobre salários, doações, impostos e IVA quando nenhuma conta contabilística específica estiver definida.
     Options=Opções
     OptionModeProductSell=Modo de vendas
     OptionModeProductBuy=Modo de compras
     OptionModeProductSellDesc=Mostrar todos os produtos com conta contabilística para as vendas.
     OptionModeProductBuyDesc=Mostrar todos os produtos com conta contabilística para as compras.
    -CleanFixHistory=Remove accounting code from lines that not exists into charts of account
    +CleanFixHistory=Remover o código contábil das linhas que não existem nos gráficos de contas
     CleanHistory=Repor todas as vinculações para o ano selecionado
    -PredefinedGroups=Predefined groups
    +PredefinedGroups=Grupos pré-definidos
     WithoutValidAccount=Sem conta dedicada válido
     WithValidAccount=Com conta dedicada válida
     ValueNotIntoChartOfAccount=Este valor de conta de contabilística não existe no plano de contas
    @@ -288,19 +295,19 @@ Formula=Fórmula
     
     ## Error
     SomeMandatoryStepsOfSetupWereNotDone=Não foram efetuados alguns passos obrigatórios da configuração, por favor complete-os
    -ErrorNoAccountingCategoryForThisCountry=Não existe grupo de conta contabilística disponível para o país %s (Consulte Inicio -> Configuração -> Dicionários)
    -ErrorInvoiceContainsLinesNotYetBounded=You try to journalize some lines of the invoice <strong>%s</strong>, but some other lines are not yet bounded to accounting account. Journalization of all invoice lines for this invoice are refused.
    -ErrorInvoiceContainsLinesNotYetBoundedShort=Some lines on invoice are not bound to accounting account.
    +ErrorNoAccountingCategoryForThisCountry=Não existe grupo de conta contabilística disponível para o país %s (Consulte Inicio->Configuração->Dicionários)
    +ErrorInvoiceContainsLinesNotYetBounded=Você tenta analisar algumas linhas da fatura <strong> %s </ strong>, mas algumas outras linhas ainda não estão limitadas à conta contábil. A revogação de todas as linhas de fatura desta fatura é recusada.
    +ErrorInvoiceContainsLinesNotYetBoundedShort=Algumas linhas na fatura não estão vinculadas à conta contábil.
     ExportNotSupported=O formato de exportação configurado não é suportado nesta página
    -BookeppingLineAlreayExists=Linhas já existente em contabilidade
    +BookeppingLineAlreayExists=Linhas já existentes na contabilidade
     NoJournalDefined=Nenhum diário definido
     Binded=Linhas vinculadas
     ToBind=Linhas a vincular
    -UseMenuToSetBindindManualy=Autodection not possible, use menu <a href="%s">%s</a> to make the binding manually
    +UseMenuToSetBindindManualy=Linhas ainda não encadernadas, use o menu <a href="%s"> %s </a> para fazer a encadernação manualmente
     
     ## Import
    -ImportAccountingEntries=Accounting entries
    +ImportAccountingEntries=Entradas contábeis
     
    -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
    -ExpenseReportJournal=Expense Report Journal
    -InventoryJournal=Inventory Journal
    +WarningReportNotReliable=Atenção, este relatório não é baseado no Ledger, portanto, não contém transações modificadas manualmente no Ledger. Se a sua periodização estiver atualizada, a visão da contabilidade será mais precisa.
    +ExpenseReportJournal=Diário de relatórios de despesas
    +InventoryJournal=Diário de Inventário
    diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang
    index 0bd9d6a3970..b21744675fa 100644
    --- a/htdocs/langs/pt_PT/admin.lang
    +++ b/htdocs/langs/pt_PT/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Desenvolvimento
     VersionUnknown=Desconhecida
     VersionRecommanded=Recomendada
     FileCheck=Verificador da integridade dos ficheiros
    -FileCheckDesc=Esta ferramenta permite que você verifique a integridade dos arquivos e a configuração do seu aplicativo, comparando cada arquivo com o oficial. O valor de algumas constantes de configuração também pode ser verificado. Você pode usar essa ferramenta para detectar se alguns arquivos foram modificados por um hacker, por exemplo.
    +FileCheckDesc=Esta ferramenta permite verificar a integridade dos arquivos e a configuração do seu aplicativo, comparando cada arquivo com o oficial. O valor de algumas constantes de configuração também pode ser verificado. Você pode usar essa ferramenta para detectar se alguns arquivos foram modificados por um hacker, por exemplo.
     FileIntegrityIsStrictlyConformedWithReference=A integridade dos ficheiros é ajustada rigorosamente conforme a referência.
    -FileIntegrityIsOkButFilesWereAdded=A verificação da integridade dos arquivos passou, no entanto, alguns arquivos novos foram adicionados.
    +FileIntegrityIsOkButFilesWereAdded=A verificação de integridade dos arquivos passou, no entanto, alguns novos arquivos foram adicionados.
     FileIntegritySomeFilesWereRemovedOrModified=A verificação da integridade dos ficheiros falhou. Alguns ficheiros foram modificados, removidos ou adicionados.
     GlobalChecksum=Checksum global
     MakeIntegrityAnalysisFrom=Fazer a análise de integridade dos ficheiros de aplicativos a partir de
    @@ -30,32 +30,32 @@ SessionSaveHandler=Utilizador para guardar as sessões
     SessionSavePath=Localização de armazenamento da sessão
     PurgeSessions=Limpeza das sessões
     ConfirmPurgeSessions=Deseja mesmo limpar todas as sessões? Isto irá desassociar todos os utilizadores (exceto você).
    -NoSessionListWithThisHandler=O utilizador para guardar a sessão configurado no seu PHP não permite listar todas as sessões em execução.
    +NoSessionListWithThisHandler=Salvar manipulador de sessão configurado no seu PHP não permite listar todas as sessões em execução.
     LockNewSessions=Bloquear novas ligações
    -ConfirmLockNewSessions=Tem a certeza que pretende restringir qualquer nova conexão Dolibarr para si? Depois disso, só o utilizador <b>%s</b> poderá ligar.
    -UnlockNewSessions=Remover bloqueio de conexão
    +ConfirmLockNewSessions=Tem certeza de que deseja restringir qualquer nova conexão Dolibarr a si mesmo? Apenas o usuário <b> %s </ b> poderá se conectar depois disso.
    +UnlockNewSessions=Remover bloqueio de ligação
     YourSession=A sua sessão
    -Sessions=Sessão de utilizadores
    +Sessions=Sessões dos utilizadores
     WebUserGroup=Utilizador/grupo do servidor da Web
    -NoSessionFound=O seu PHP parece não permitir a listagem das sessões ativas. A diretoria utilizada para guardar as sessões <b>(%s)</b> poderá estar protegida (por exemplo, pelas permissões do SO ou pela diretiva open_basedir PHP ).
    +NoSessionFound=Seu PHP parece não permitir a listagem de sessões ativas. O diretório usado para salvar sessões (<b> %s </ b>) pode estar protegido (por exemplo, por permissões do sistema operacional ou pela diretiva do PHP open_basedir).
     DBStoringCharset=Conjunto de carateres  da base de dados para guardar os dados
     DBSortingCharset=Conjunto de carateres da base de dados para ordenar os dados
     ClientCharset=Jogo de caráter Cliente
     ClientSortingCharset=Colação de clientes
     WarningModuleNotActive=O módulo <b>%s</b> deve estar ativado
    -WarningOnlyPermissionOfActivatedModules=Só são mostradas aqui as permissões relacionadas com os módulos ativados. Pode ativar outros módulos em Início->Configuração->Módulos.
    +WarningOnlyPermissionOfActivatedModules=Só são mostradas aqui as permissões relacionadas com os módulos ativados. Pode ativar outros módulos na página de Início-> Configuração-> Módulos.
     DolibarrSetup=Instalar ou atualizar o Dolibarr
     InternalUser=Utilizador interno
     ExternalUser=Utilizador externo
     InternalUsers=Utilizadores internos
     ExternalUsers=Utilizadores externos
     GUISetup=Aparência
    -SetupArea=Área de configuração
    +SetupArea=Configuração
     UploadNewTemplate=Carregar novo(s) modelo(s)
     FormToTestFileUploadForm=Formulário para testar o envio de ficheiro (de acordo com a configuração)
    -IfModuleEnabled=Nota: sim, só é eficaz se <b>módulo %s</b> estiver ativado
    -RemoveLock=Se este existir, remova o ficheiro <b>%s</b> para permitir a utilização da ferramenta de atualização.
    -RestoreLock=Restaure o ficheiro <b>%s</b>, apenas com permissão de só de leitura, para desativar qualquer utilização da ferramenta de atualização.
    +IfModuleEnabled=Nota: sim, só é eficaz se o <b>módulo %s</b> estiver ativado
    +RemoveLock=Remova o ficheiro <b>%s</b> se este existir, para permitir a utilização da ferramenta de atualização.
    +RestoreLock=Restaure o ficheiro <b>%s</b>, apenas com permissão 'só de leitura', para desativar qualquer utilização da ferramenta de atualização.
     SecuritySetup=Configuração de segurança
     SecurityFilesDesc=Defina aqui opções relacionadas com a segurança de ficheiros carregados.
     ErrorModuleRequirePHPVersion=Erro, este módulo requer a versão %s ou superior do PHP
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=O código não pode conter o valor 0
     DisableJavascript=Desativar as funções de Javascript e Ajax (Recomendado para pessoas invisuais ou navegadores de texto)
     UseSearchToSelectCompanyTooltip=Se tiver um grande número de terceiros (> 100 000), pode aumentar a velocidade, configurando a constante COMPANY_DONOTSEARCH_ANYWHERE para 1 em Configuração->Outros. A procura depois será limitada para o início da sequência de carateres.
     UseSearchToSelectContactTooltip=Se você tiver grande número de contactos (> 100 000), você pode aumentar a velocidade, definindo a constante CONTACT_DONOTSEARCH_ANYWHERE para 1 em Configuração -> Outros. A pesquisa será então limitada ao início da sequência de caracteres.
    -DelaiedFullListToSelectCompany=Esperar até que introduza valores no campo antes de carregar a lista de terceiros (isto pode aumentar a performance se você tiver um elevado número de terceiros, mas é menos conveniente)
    -DelaiedFullListToSelectContact=Esperar até que introduza valores no campo antes de carregar a lista de contactos (isto pode aumentar a performance se você tiver um elevado número de contactos, mas é menos conveniente)
    +DelaiedFullListToSelectCompany=Aguarde até que uma tecla seja pressionada antes de carregar o conteúdo da lista de combinação de terceiros. <br> Isso pode aumentar o desempenho se você tiver um grande número de terceiros, mas é menos conveniente.
    +DelaiedFullListToSelectContact=Aguarde até que uma tecla seja pressionada antes de carregar o conteúdo da lista de combinação de contatos. <br> Isso pode aumentar o desempenho se você tiver um grande número de contatos, mas for menos conveniente)
     NumberOfKeyToSearch=Número de carateres para acionar a procura: %s
     NotAvailableWhenAjaxDisabled=Não está disponível quando o Ajax está desativado
     AllowToSelectProjectFromOtherCompany=No documento de um terceiro, pode escolher um projeto associado a outro terceiro
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Pré-visualização não disponível
     ThemeCurrentlyActive=Tema atualmente ativo
     CurrentTimeZone=Zona Horária PHP (servidor)
     MySQLTimeZone=Fuso Horário MySQL (base de dados)
    -TZHasNoEffect=As datas são armazenadas e retornadas pela base de dados como se elas fossem submetidas como sequência de caracteres. O fuso horário tem efeito somente ao usar a função UNIX_TIMESTAMP (que não deve ser usada pelo Dolibarr, portanto a base de dados TZ não deve ter nenhum efeito, mesmo se alterado depois da submissão de dados).
    +TZHasNoEffect=As datas são armazenadas e retornadas pelo servidor de banco de dados como se fossem mantidas como uma string enviada. O fuso horário só tem efeito ao usar a função UNIX_TIMESTAMP (que não deve ser usada pelo Dolibarr, portanto, o banco de dados TZ não deve ter efeito, mesmo se for alterado depois que os dados forem inseridos).
     Space=Área
     Table=Tabela
     Fields=Campos
    @@ -111,7 +111,7 @@ NotConfigured=Módulo/Aplicação não configurados
     Active=Ativo
     SetupShort=Config.
     OtherOptions=Outras opções
    -OtherSetup=Outras configurações
    +OtherSetup=Outra Configuração
     CurrentValueSeparatorDecimal=Separador decimal
     CurrentValueSeparatorThousand=Separador dos milhares
     Destination=Destino
    @@ -126,8 +126,8 @@ PHPTZ=Fuso Horário do servidor do PHP
     DaylingSavingTime=Horário de verão
     CurrentHour=Hora do PHP (servidor)
     CurrentSessionTimeOut=Sessão atual expirou
    -YouCanEditPHPTZ=Para definir um fuso horário diferente do PHP (não é necessário), você pode tentar adicionar um ficheiro .htaccess contendo uma linha como esta "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Aviso, ao contrário de outras ecrans, as horas nesta página não estão no seu fuso horário local, mas para o fuso horário do servidor.
    +YouCanEditPHPTZ=Para definir um fuso horário PHP diferente (não obrigatório), você pode tentar adicionar um arquivo .htaccess com uma linha como "SetEnv TZ Europe / Paris"
    +HoursOnThisPageAreOnServerTZ=Atenção, ao contrário de outros ecrãs, as horas nesta página não estão no fuso horário local, mas sim no fuso horário do servidor.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Número máximo de linhas para os widgets
    @@ -188,18 +188,18 @@ NoLockBeforeInsert=Nenhum comando de bloqueio em torno de Inserção
     DelayedInsert=Adições com atraso
     EncodeBinariesInHexa=Codificar os campos binários em hexadecimal
     IgnoreDuplicateRecords=Ignorar erros de registos duplicados (INSERT IGNORE)
    -AutoDetectLang=Autodeteção (navegador)
    +AutoDetectLang=Detetar Automático (idioma do navegador)
     FeatureDisabledInDemo=Opção desativada em demo
     FeatureAvailableOnlyOnStable=Funcionalidade apenas disponível em versões estáveis ​​oficiais
    -BoxesDesc=Widgets são componentes que mostram alguma informação, os quais pode adicionar a algumas páginas. Pode escolher entre mostrar a widget ou não selecionando a página alvo e clicar em 'Ativar', ou clicando no caixote do lixo para a desativar.
    +BoxesDesc=Widgets são componentes que mostram algumas informações que você pode adicionar para personalizar algumas páginas. Você pode escolher entre mostrar o widget ou não selecionando a página de destino e clicando em "Ativar" ou clicando na lixeira para desativá-la.
     OnlyActiveElementsAreShown=Só são mostrados os elementos de <a href="%s">módulos ativos</a>.
    -ModulesDesc=Os módulos Dolibarr definem as funcionalidades que estão ativas no programa. Alguns módulos requerem permissões de utilizadores, depois de serem ativados. Clique no botão on/off para ativar o módulo/funcionalidade.
    +ModulesDesc=Os módulos / aplicativos determinam quais recursos estão disponíveis no software. Alguns módulos requerem permissões para serem concedidos aos usuários depois de ativar o módulo. Clique no botão on / off (no final da linha do módulo) para ativar / desativar um módulo / aplicativo.
     ModulesMarketPlaceDesc=Pode encontrar mais módulos para descarregar noutros sites da internet...
    -ModulesDeployDesc=Se as permissões no seu sistema de ficheiros o permitir, você pode usar esta ferramenta para implementar um módulo externo. O módulo será então visível no separador <strong>%s</strong>.
    +ModulesDeployDesc=Se as permissões em seu sistema de arquivos permitirem, você poderá usar essa ferramenta para implantar um módulo externo. O módulo ficará visível na aba <strong> %s </ strong>.
     ModulesMarketPlaces=Procurar aplicações/módulos externos
     ModulesDevelopYourModule=Desenvolva as suas próprias aplicações/módulos
    -ModulesDevelopDesc=Pode desenvolver ou encontrar um parceiro para desenvolver por você, o seu módulo personalizado
    -DOLISTOREdescriptionLong=Em vez de ligar o site <a href="https://www.dolistore.com">www.dolistore.com</a> para encontrar um módulo externo, você pode usar esta ferramenta incorporada que tornará a procura no mercado externo para você (pode ser lento, precisa de um acesso à internet) ...
    +ModulesDevelopDesc=Você também pode desenvolver seu próprio módulo ou encontrar um parceiro para desenvolver um para você.
    +DOLISTOREdescriptionLong=Em vez de ligar o site <a href="https://www.dolistore.com"> www.dolistore.com </a> para encontrar um módulo externo, você pode usar essa ferramenta incorporada que fará a pesquisa no mercado externo para você (pode ser lento, precisa de um acesso à internet) ...
     NewModule=Novo
     FreeModule=Livre
     CompatibleUpTo=Compatível com a versão %s
    @@ -211,8 +211,8 @@ Nouveauté=Novidade
     AchatTelechargement=Comprar / Download
     GoModuleSetupArea=Para implementar/instalar um novo módulo, vá para a área de configuração do Módulo em <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, o mercado oficial para módulos externos Dolibarr ERP/CRM
    -DoliPartnersDesc=Lista de empresas que desenvolvem módulos ou funcionalidades personalizadas (Nota: qualquer pessoa com experiência em programação PHP pode proporcionar o desenvolvimento personalizado para um projeto open source)
    -WebSiteDesc=Indique sites de referência para encontrar mais módulos...
    +DoliPartnersDesc=Lista de empresas que fornecem módulos ou recursos desenvolvidos sob medida. <br> Nota: como o Dolibarr é um aplicativo de código aberto, qualquer pessoa experiente em programação PHP pode desenvolver um módulo.
    +WebSiteDesc=Sites externos para módulos adicionais (não principais) ...
     DevelopYourModuleDesc=Algumas soluções para desenvolver seu próprio módulo ...
     URL=Hiperligação
     BoxesAvailable=Aplicativos disponíveis
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Não guardar as palavras-passe na base de dados, mas gua
     MainDbPasswordFileConfEncrypted=Palavra-passe da base de dados encriptada no ficheiro conf.php (recomendado: Ativada)
     InstrucToEncodePass=Para que a palavra passe seja codificada no ficheiro <b>conf.php</b>, substitua a linha <br><b>$dolibarr_main_db_pass="...";</b><br>por<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Para que a palavra passe seja descodificada no ficheiro <b>conf.php</b>, substitua a linha <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>por<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protecção e encriptação dos ficheiros PDF criados (recomendado: Desativado, pode provocar problemas na produção de PDFs)
    +ProtectAndEncryptPdfFiles=Proteção de arquivos PDF gerados NÃO recomendado (quebra a geração de PDF em massa)
     ProtectAndEncryptPdfFilesDesc=A proteção de um documento PDF faz com que este esteja disponível para ler e imprimir a partir de qualquer navegador. No entanto, a edição e cópia do documento deixam de ser possíveis. Nota: ao usar esta funcionalidade deixa de ser possível juntar documentos PDFs singulares num único documento PDF global.
     Feature=Funcionalidade
     DolibarrLicense=Licença
    @@ -239,15 +239,15 @@ OfficialWebSiteLocal=Website local (%s)
     OfficialWiki=Documentação Dolibarr na Wiki
     OfficialDemo=Demo online Dolibarr
     OfficialMarketPlace=Mercado externo oficial para os módulos/addons
    -OfficialWebHostingService=Serviços web hosting referenciados (hospedagem na nuvem)
    +OfficialWebHostingService=Serviços de hospedagem na Web referenciados (hospedagem na Nuvem)
     ReferencedPreferredPartners=Parceiros preferidos
     OtherResources=Outros recursos
     ExternalResources=Recursos externos
     SocialNetworks=Redes sociais
     ForDocumentationSeeWiki=Para a documentação de utilizador, programador ou Perguntas Frequentes (FAQ), consulte o wiki do Dolibarr<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Para outras questões, como efectuar as consultas, pode utilizar o forum do Dolibarr:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=Esta área permite ajudá-lo a obter um serviço de suporte para o Dolibarr.
    -HelpCenterDesc2=Alguns destes serviços só estão disponíveis em <b>inglês</b>.
    +HelpCenterDesc1=Aqui estão alguns recursos para obter ajuda e suporte com o Dolibarr.
    +HelpCenterDesc2=Alguns desses recursos estão disponíveis apenas em <b> english </ b>.
     CurrentMenuHandler=Gestor de menu atual
     MeasuringUnit=Unidade de medição
     LeftMargin=Margem esquerda
    @@ -262,32 +262,36 @@ NoticePeriod=Período de aviso
     NewByMonth=Novo por mês
     Emails=Emails
     EMailsSetup=Configuração de emails
    -EMailsDesc=Esta página permite substituir os parâmetros PHP relacionados com o envio de emails. Na maioria dos casos em sistemas operativos Unix/Linux, a configuração PHP está correta e estes parâmetros são inúteis.
    +EMailsDesc=Esta página permite que você sobrescreva seus parâmetros PHP padrão para o envio de e-mail. Na maioria dos casos no sistema operacional Unix / Linux, a configuração do PHP está correta e esses parâmetros são desnecessários.
     EmailSenderProfiles=Perfis do remetente de e-mails
     MAIN_MAIL_SMTP_PORT=Porta de SMTP/SMTPS (Por predefinição no php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=Servidor SMTP/SMTPS (Por predefinição no php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Porta do servidor SMTP (Não definido em PHP em sistemas de tipo Unix)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Servidor SMTP/SMTPS (Não definido em PHP em sistemas de tipo Unix)
    -MAIN_MAIL_EMAIL_FROM=Email do emissor para envios email automáticos (Por defeito em php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Remetente de email usado para emails enviados que retornaram erro
    -MAIN_MAIL_AUTOCOPY_TO= Enviar sistematicamente uma cópia carbono de todos os emails enviados para
    -MAIN_DISABLE_ALL_MAILS=Desativar globalmente todo o envio de emails (para fins de teste ou demonstrações)
    +MAIN_MAIL_SMTP_SERVER=Hospedeiro de SMTP/SMTPS (Por predefinição no php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Porta SMTP / SMTPS (Não definida em PHP em sistemas Unix-like)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Hospedeiro de SMTP/SMTPS (Não definido no PHP nos sistemas de tipo Unix)
    +MAIN_MAIL_EMAIL_FROM=E-mail do remetente para e-mails automáticos (valor padrão em php.ini: <b> %s </ b>)
    +MAIN_MAIL_ERRORS_TO=E-mail usado para erro retorna e-mails (campos 'Erros-Para' nos e-mails enviados)
    +MAIN_MAIL_AUTOCOPY_TO= Copiar (Cco) todos os emails enviados para
    +MAIN_DISABLE_ALL_MAILS=Desativar todo o envio de email (para fins de teste ou demonstrações)
     MAIN_MAIL_FORCE_SENDTO=Enviar todos os e-mails para (em vez de enviar para destinatários reais, para fins de teste)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Adicionar funcionários utilizadores com e-mail à lista de destinatários permitidos
    -MAIN_MAIL_SENDMODE=Método de envio de emails
    -MAIN_MAIL_SMTPS_ID=ID SMTP, se necessário a autenticação
    -MAIN_MAIL_SMTPS_PW=Palavra-passe de SMTP, se necessário a autenticação
    -MAIN_MAIL_EMAIL_TLS= Utilizar criptografia TLS (SSL)
    -MAIN_MAIL_EMAIL_STARTTLS= Utilizar encriptação TLS (STARTTLS)
    -MAIN_DISABLE_ALL_SMS=Desative todos os envios de SMS (para fins de teste ou demonstrações)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Adicionar usuários de funcionários com e-mail à lista de destinatários permitidos
    +MAIN_MAIL_SENDMODE=Método de envio de e-mail
    +MAIN_MAIL_SMTPS_ID=ID de SMTP (se o servidor de envio exigir autenticação)
    +MAIN_MAIL_SMTPS_PW=Senha SMTP (se o servidor de envio exigir autenticação)
    +MAIN_MAIL_EMAIL_TLS=Use criptografia TLS (SSL)
    +MAIN_MAIL_EMAIL_STARTTLS=Use a criptografia TLS (STARTTLS)
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use o DKIM para gerar assinatura de email
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Domínio de email para uso com o dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Nome do seletor do dkim
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Chave privada para assinatura do dkim
    +MAIN_DISABLE_ALL_SMS=Desativar todo o envio de SMS (para fins de teste ou demonstrações)
     MAIN_SMS_SENDMODE=Método a usar para enviar SMS
    -MAIN_MAIL_SMS_FROM=Número de telefone predefinido do remetente para envio de SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Email do remetente por predefinição para os envios manuais (E-mail do Utilizador ou da Empresa)
    +MAIN_MAIL_SMS_FROM=Número de telefone do remetente padrão para envio de SMS
    +MAIN_MAIL_DEFAULT_FROMTYPE=E-mail do remetente padrão para envio manual (e-mail do usuário ou e-mail da empresa)
     UserEmail=Email do utilizador
     CompanyEmail=E-mail da empresa
     FeatureNotAvailableOnLinux=Funcionalidade não disponivel em sistemas  Unix. Teste parâmetros sendmail localmente.
    -SubmitTranslation=Se a tradução para esta lingua não estiver completa ou se encontrar erros, pode corrigi-los editando os ficheiros no diretório <b>langs/%s</b> e submetendo-os em www.transifex.com/dolibarr-association/dolibarr/
    -SubmitTranslationENUS=Se a tradução para este idioma não estiver completa ou você encontrar erros, você pode corrigir isso editando arquivos em idiomas de diretório <b>langs/ %s </b>e enviar arquivos modificados em dolibarr.org/forum ou para desenvolvedores em github.com/Dolibarr/dolibarr.
    +SubmitTranslation=Se a tradução para este idioma não estiver completa ou você encontrar erros, você pode corrigir isso editando os arquivos no diretório <b> langs / %s </ b> e envie sua alteração para www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslationENUS=Se a tradução para este idioma não estiver completa ou se encontrar erros, pode corrigi-los editando os ficheiros na diretoria <b>langs/ %s</b> e submeta os ficheiros modificados em dolibarr.org/forum ou para os programadores em github.com/Dolibarr/dolibarr.
     ModuleSetup=Configuração do módulo
     ModulesSetup=Módulos/Aplicação - Configuração
     ModuleFamilyBase=Sistema
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Ferramentas multi-módulos
     ModuleFamilyExperimental=Módulos testes
     ModuleFamilyFinancial=Módulos financeiros (Contabilidade/Tesouraria)
     ModuleFamilyECM=Gestão de conteúdo empresarial (GCE)
    -ModuleFamilyPortal=Websites e outras aplicações de interface de utilizador
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces com sistemas externos
     MenuHandlers=Gestores de menu
     MenuAdmin=Editor de menu
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Não utilizar em ambiente de produção
     ThisIsProcessToFollow=Estes são os passos a processar:
     ThisIsAlternativeProcessToFollow=Esta é uma configuração alternativa para processar manualmente:
     StepNb=Passo %s
    -FindPackageFromWebSite=Encontre um pacote que fornece a funcionalidade desejada (por exemplo, na página oficial %s).
    +FindPackageFromWebSite=Encontre um pacote que ofereça recursos que você deseja (por exemplo, no site oficial %s).
     DownloadPackageFromWebSite=Descarregue o pacote (por exemplo, da página oficial %s).
    -UnpackPackageInDolibarrRoot=Descompactar os ficheiros para a raiz da instalação Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=Para implantar / instalar um módulo externo, descompacte os arquivos empacotados no diretório do servidor dedicado aos módulos:<b>%s</b>
    -SetupIsReadyForUse=A instalação do módulo terminou. No entanto você deve ativar e configurar o módulo na sua aplicação, indo à página de configuração de módulos: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Descompacte / descompacte os arquivos empacotados no diretório do servidor dedicado ao Dolibarr: <b> %s </ b>
    +UnpackPackageInModulesRoot=Para implantar / instalar um módulo externo, descompacte / descompacte os arquivos empacotados no diretório do servidor dedicado aos módulos externos: <br> <b> %s </ b>
    +SetupIsReadyForUse=A implantação do módulo está concluída. No entanto, você deve ativar e configurar o módulo em seu aplicativo acessando os módulos de configuração de página: <a href="%s"> %s </a>.
     NotExistsDirect=O diretório raiz alternativo não está definido para um diretório existente.<br>
     InfDirAlt=Desde a versão 3 do Dolibarr que é possível definir um diretório raiz alternativo. Isto permite que você consiga armazenar plug-ins e templates, num diretório dedicado.<br>Para tal basta criar um dirétorio na raiz do Dolibarr (ex: dedicado). <br>
     InfDirExample=<br>Depois declare-o no ficheiro <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>Se estas linhas estiverem comentadas com um "#", descomente-as removendo o caracter "#".
    -YouCanSubmitFile=Para esta etapa, você pode submeter aqui o ficheiro .zip do pacote do módulo:
    +YouCanSubmitFile=Alternativamente, você pode fazer o upload do pacote de arquivos .zip do módulo:
     CurrentVersion=Versão atual do Dolibarr
     CallUpdatePage=Vá à página que atualiza a estrutura e dados da base de dados: %s.
     LastStableVersion=Última versão estável
    @@ -327,7 +331,7 @@ LastActivationIP=Último IP ativo
     UpdateServerOffline=Atualizar servidor offline
     WithCounter=Gerir um contador
     GenericMaskCodes=Pode introduzir qualquer máscara numérica. Nesta máscara, pode utilizar as seguintes etiquetas: <br><b>{000000}</b> corresponde a um número que se incrementa em cada um de %s. Introduza um número de zeros idêntico ao comprimento do número que deseja mostrar. O contador completar-se-á a partir de zeros pela esquerda de forma a ter tantos zeros como a máscara. <br><b>{000000+000}</b> igual ao anterior, com uma compensação em algarismos correspondente ao número à direita do sinal + que é aplicada a partir do primeiro %s. <br><b>{000000@x}</b> igual ao anterior, mas o contador volta a zero quando se chega ao mês x (x entre 1 e 12, 0 para usar o primeiros meses do mês fiscal definido na sua configuração, 99 para voltar a zero todos os meses). Se esta opção se utiliza e x é igual ou superior a 2, então a sequência {yy}{mm} ou {yyyy}{mm} também é necessária. <br><b>{dd}</b> días (01 a 31). <br><b>{mm}</b> mês (01 a 12). <br><b>{yy}</b>, <b>{yyyy}</b> ou <b>{y}</b> ano formatado em 2, 4 ou 1 algarismos.<br>
    -GenericMaskCodes2=<b>{cccc}</b> o código do cliente em N caracteres<br><b>{cccc000}</b> o código de cliente em N caracteres, seguido de um contador dedicado ao cliente. Este contador é reiniciado ao mesmo tempo que o contador global.<br><b>{tttt}</b> O código do tipo de terceiro em N caracteres (ver dicionário->Tipos de terceiros).<br>
    +GenericMaskCodes2=<b>{cccc}</b> o código do cliente em N carateres<br><b>{cccc000}</b> o código de cliente em N carateres, seguido de um contador dedicado para o cliente. Este contador é reiniciado ao mesmo tempo que o contador global.<br><b>{tttt}</b> O código do tipo de terceiro em N carateres (consulte o menu Início->Configuração->Dicionário->Tipos de terceiros). Se adicionou esta etiqueta, o contador será diferente para cada tipo de terceiro.<br>
     GenericMaskCodes3=Quaisquer outros caracteres na máscara não sofrerão alterações.<br>Não são permitidos espaços.<br>
     GenericMaskCodes4a=<u>Exemplo no 99º %s de terceiro 'A Empresa', com a data 31-01-2007:</u><br>
     GenericMaskCodes4b=<u>Exemplo sobre um terceiro criado a 31-03-2007:</u><br>
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Consulte a página wiki para obter uma lista completa de todos
     UseACacheDelay= Atraso, em segundos, para o caching de exportação (0 ou em branco para não criar cache)
     DisableLinkToHelpCenter=Ocultar hiperligação <b>"Precisa de ajuda ou apoio"</b> na página de inicio de sessão
     DisableLinkToHelp=Ocultar a hiperligação para a ajuda on-line "<b>%s</b>"
    -AddCRIfTooLong=Não há envolvimento automático, por isso, se estiver fora de linha da página de documentos, por ser demasiado longo, deve adicionar um parágrafo, "Enter", na área de texto.
    -ConfirmPurge=De certeza que quer executar esta limpeza?<br>Isto eliminará definitivamente todos os seus ficheiros de dados sem forma de os recuperar (ficheiros GCE, ficheiros anexados)
    +AddCRIfTooLong=Não há quebra automática de texto, o texto que é muito longo não será exibido nos documentos. Por favor adicione retornos de carro na área de texto, se necessário.
    +ConfirmPurge=Tem certeza de que deseja executar essa limpeza? <br> Isso excluirá permanentemente todos os seus arquivos de dados sem nenhuma maneira de restaurá-los (arquivos ECM, arquivos anexados ...).
     MinLength=Comprimento mínimo
     LanguageFilesCachedIntoShmopSharedMemory=Ficheiros .lang carregados na memória partilhada
     LanguageFile=Ficheiro de idioma
    -ExamplesWithCurrentSetup=Exemplos com a configuração atual
    +ExamplesWithCurrentSetup=Exemplos com configuração atual
     ListOfDirectories=Lista de diretórios com modelos OpenDocument
     ListOfDirectoriesForModelGenODT=Lista de diretórios que contêm ficheiros template com formato OpenDocument.<br><br>Digite aqui o caminho completo dos diretórios.<br>Adicione um "Enter" entre cada diratório.<br>Para adicionar um diretório do módulo GCE, adicione aqui <b>DOL_DATA_ROOT/ecm/seudiretorio</b>.<br><br>Ficheiros nesses diretórios têm de acabar com <b>.odt</b> ou <b>.ods</b>.
    -NumberOfModelFilesFound=Número de ficheiros de modelos ODT/ODS encontrados nesses diretórios
    +NumberOfModelFilesFound=Número de arquivos de modelo ODT / ODS encontrados nesses diretórios
     ExampleOfDirectoriesForModelGen=Exemplos de sintaxe: <br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>Para saber como criar os seus modelos de documentos ODT, antes de armazená-los nestes diretórios, leia a documentação no wiki:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -370,14 +374,14 @@ ResponseTimeout=Tempo limite de resposta
     SmsTestMessage=Mensagem teste de __PHONEFROM__ para __PHONETO__
     ModuleMustBeEnabledFirst=Se precisa desta função, o módulo <b>%s</b> deve ser ativado antes.
     SecurityToken=A chave para URLs seguras
    -NoSmsEngine=Nenhum mecanismo de envio de SMS disponível. Mecanismos de SMS, não são instalados juntamente com a distribuição (porque depende de um fornecedor externo), mas você pode encontrar alguns em %s
    +NoSmsEngine=Nenhum gerenciador de remetente de SMS disponível. Um gerenciador de remetentes SMS não é instalado com a distribuição padrão porque eles dependem de um fornecedor externo, mas você pode encontrar alguns em %s
     PDF=PDF
    -PDFDesc=Você pode definir cada uma das opções globais relacionadas com a criação de PDF
    +PDFDesc=Você pode definir cada opção global relacionada à geração de PDF
     PDFAddressForging=Regras para criar caixas de endereço
     HideAnyVATInformationOnPDF=Ocultar todas as informações relacionadas com Imposto sobre Vendas / IVA em PDFs gerados
     PDFRulesForSalesTax=Regras para Imposto sobre Vendas / IVA
     PDFLocaltax=Regras para %s
    -HideLocalTaxOnPDF=Ocultar taxa %s na coluna de impostos do PDF
    +HideLocalTaxOnPDF=Ocultar %s taxa na venda de impostos da coluna pdf
     HideDescOnPDF=Ocultar a descrição dos produtos no PDF gerado
     HideRefOnPDF=Ocultar a referência dos produtos no PDF gerado
     HideDetailsOnPDF=Esconder linhas de detalhes do produto no PDF gerado
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parâmetros para tornar URLs seguros
     SecurityTokenIsUnique=Use um parâmetro securekey único para cada URL
     EnterRefToBuildUrl=Digite a referência para o objeto %s
     GetSecuredUrl=Obter URL seguro
    -ButtonHideUnauthorized=Esconder botões de ações não autorizados a utilizadores não administradores, em vez de mostrá-los com cor cinza e desativados.
    +ButtonHideUnauthorized=Ocultar botões para usuários não administradores para ações não autorizadas, em vez de mostrar botões desativados acinzentados
     OldVATRates=Taxa de IVA antiga
     NewVATRates=Nova taxa de IVA
     PriceBaseTypeToChange=Modificar nos preços com valor de referência base definido em
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Lista de selecção
     ExtrafieldSelectList = Selecionar da tabela
     ExtrafieldSeparator=Separador (não um campo)
     ExtrafieldPassword=Palavra Passe
    -ExtrafieldRadio=Radio buttons (apenas em escolha múltipla)
    +ExtrafieldRadio=Botões de rádio (apenas uma opção)
     ExtrafieldCheckBox=Caixas de marcação
     ExtrafieldCheckBoxFromList=Caixas de marcação da tabela
     ExtrafieldLink=Vincular a um objeto
     ComputedFormula=Campo calculado
     ComputedFormulaDesc=Você pode inserir aqui uma fórmula usando outras propriedades do objeto ou qualquer codificação PHP para obter um valor calculado dinâmico. Você pode usar todas as fórmulas compatíveis com PHP, incluindo o "?" operador de condição e seguinte objeto global: <strong>$db, $conf, $langs, $mysoc, $user, $object.</strong><br><strong>AVISO</strong>: Somente algumas propriedades de $object podem estar disponíveis. Se você precisa de propriedades não carregadas, basta buscar o objeto na sua fórmula, como no segundo exemplo. <br>Usando um campo calculado significa que você não pode entrar qualquer valor da interface. Além disso, se houver um erro de sintaxe, a fórmula pode retornar nada.<br><br> Exemplo de fórmula: <br>$object-> id <10? round ($object-> id / 2, 2): ($object-> id + 2 * $user-> id) * (int) substr($mysoc-> zip, 1, 2) <br><br>Exemplo para recarregar o objeto <br>(($reloadedobj = new Societe ($db)) && ($reloadedobj->fetch($obj-> id? $obj-> id: ($obj-> rowid? $obj->rowid: $object->id)) > 0)) ? $reloadedobj->array_options ['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'<br><br>Outro exemplo de fórmula para forçar a carga do objeto e seu objeto pai:<br> (($reloadedobj = new Task ($db)) && ($reloadedobj->fetch ($object-> id)> 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj-> fetch($reloadedobj->fk_project)> 0)) ? $secondloadedobj->ref: 'Projeto pai não encontrado'
    -ExtrafieldParamHelpPassword=Manter este campo vazio significa que o valor será armazenado sem ser encriptado (campo deve ser escondido apenas com estrela na tela). <br> Defina aqui o valor 'auto' para usar a regra de encriptação predefinida ao registar palavras-passe na base de dados (o valor lido será o apenas hash, não há maneira de recuperar o valor original)
    +ExtrafieldParamHelpPassword=Deixar esse campo em branco significa que esse valor será armazenado sem criptografia (o campo deve ser oculto apenas com estrela na tela). <br> Defina 'auto' para usar a regra de criptografia padrão para salvar a senha no banco de dados (o valor lido será o hash apenas, nenhuma maneira de recuperar o valor original)
     ExtrafieldParamHelpselect=A lista de parâmetros tem seguir o seguinte esquema chave,valor (no qual a chave não pode ser '0')<br><br> por exemplo: <br>1,value1<br>2,value2<br>3,value3<br>...<br><br>Para que a lista dependa noutra lista de atributos complementares:<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>Para que a lista dependa doutra lista:<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=A lista de valores tem de seguir o seguinte esquema chave,valor (onde a chave não pode ser '0')<br><br> por exemplo:<br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=A lista de valores tem de seguir o seguinte esquema chave,valor (onde a chave não pode ser '0')<br><br> por exemplo:<br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Hiperligação predefinida
     SetAsDefault=Definir como predefinição
     ValueOverwrittenByUserSetup=Aviso: Este valor pode ter sido modificado pela configuração específica de um utilizador (cada utilizador pode definir o seu próprio link ClickToDial)
     ExternalModule=Módulo externo - Instalado no diretório %s
    -BarcodeInitForThirdparties=Inicialização em massa de códigos de barras para terceiros
    +BarcodeInitForthird-parties=Código de barras em massa init para terceiros
     BarcodeInitForProductsOrServices=Inicialização ou reposição de códigos de barras em massa para produtos ou serviços
     CurrentlyNWithoutBarCode=Atualmente, você tem o registo <strong>%s</strong> em <strong>%s</strong> %s sem o código de barras definido.
     InitEmptyBarCode=Inicializar o valor para os próximos %s registos vazios
     EraseAllCurrentBarCode=Apagar todos os códigos de barras atuais
     ConfirmEraseAllCurrentBarCode=Tem certeza de que deseja apagar todos os códigos de barras atuais?
     AllBarcodeReset=Todos os códigos de barras foram removidos
    -NoBarcodeNumberingTemplateDefined=Nenhum modelo de numeração de códigos de barras ativo na configuração do módulo "Código de barras".
    +NoBarcodeNumberingTemplateDefined=Nenhum modelo de código de barras de numeração ativado na configuração do módulo de código de barras.
     EnableFileCache=Ativar cache de ficheiros
     ShowDetailsInPDFPageFoot=Adicionar mais detalhes no rodapé dos ficheiros PDF, como a morada da sua empresa, ou nomes de gerente (para completar IDs profissionais, capital da empresa e número de IVA).
     NoDetails=Sem mais detalhes no rodapé
     DisplayCompanyInfo=Exibir morada da empresa
     DisplayCompanyManagers=Mostrar nomes dos gestores
     DisplayCompanyInfoAndManagers=Exibir a morada da empresa e menus de gestor
    -EnableAndSetupModuleCron=Se você deseja que esta fatura periódica seja gerada automaticamente, o módulo *1 %s* deve ser habilitado e configurado corretamente. Caso contrário, a geração de faturas deve ser feita manualmente a partir deste modelo com o botão * Criar *. Observe que, mesmo que você tenha ativado a geração automática, você ainda pode iniciar com segurança a geração manual. A geração de duplicatas para o mesmo período não é possível.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=Se você deseja que essa fatura recorrente seja gerada automaticamente, o módulo * %s * deve estar ativado e configurado corretamente. Caso contrário, a geração de faturas deve ser feita manualmente a partir desse modelo usando o botão * Criar *. Observe que, mesmo que você tenha ativado a geração automática, ainda é possível iniciar com segurança a geração manual. Geração de duplicatas para o mesmo período não é possível.
    +ModuleCompanyCodeCustomerAquarium=%s seguido pelo código do cliente para um código de contabilidade do cliente
    +ModuleCompanyCodeSupplierAquarium=%s seguido pelo código do fornecedor para um código de contabilidade do fornecedor
     ModuleCompanyCodePanicum=Retornar um código de contabilidade vazio.
     ModuleCompanyCodeDigitaria=O código de contabilidade depende do código de terceiros. O código é composto pelo caractere "C" na primeira posição seguida pelos primeiros 5 caracteres do código de terceiros.
    -Use3StepsApproval=Por padrão, as ordens de compra precisam ser criadas e aprovadas por 2 usuários diferentes (um passo / usuário para criar e um passo / usuário para aprovar. Note que, se o usuário tiver permissão para criar e aprovar, um passo / usuário será suficiente) . Você pode solicitar esta opção para introduzir uma terceira etapa / aprovação do usuário, se o valor for superior a um valor dedicado (então serão necessárias 3 etapas: 1 = validação, 2 = primeira aprovação e 3 = segunda aprovação se a quantidade for suficiente). 1 <br>Defina isto como vazio se uma aprovação (2 etapas) for suficiente, ajuste-o para um valor muito baixo (0,1) se uma segunda aprovação (3 etapas) for sempre necessária.
    +Use3StepsApproval=Por padrão, as ordens de compra precisam ser criadas e aprovadas por 2 utilisadores diferentes (um passo / utilisador para criar e um passo / utilisador para aprovar. Note que, se o utilisador tiver permissão para criar e aprovar, um passo / utilisador será suficiente) . Você pode solicitar esta opção para introduzir uma terceira etapa / aprovação do utilisador, se o valor for superior a um valor dedicado (então serão necessárias 3 etapas: 1 = validação, 2 = primeira aprovação e 3 = segunda aprovação se a quantidade for suficiente). 1 <br>Defina isto como vazio se uma aprovação (2 etapas) for suficiente, ajuste-o para um valor muito baixo (0,1) se uma segunda aprovação (3 etapas) for sempre necessária.
     UseDoubleApproval=Utilizar uma aprovação de 3 etapas quando o valor (sem impostos) for superior a...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    -WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
    +WarningPHPMail=AVISO: Muitas vezes, é melhor configurar emails enviados para usar o servidor de email do seu provedor, em vez da configuração padrão. Alguns provedores de email (como o Yahoo) não permitem que você envie um email de outro servidor além do seu próprio servidor. Sua configuração atual usa o servidor do aplicativo para enviar e-mail e não o servidor do seu provedor de e-mail, portanto, alguns destinatários (o compatível com o protocolo DMARC) solicitarão ao seu provedor de e-mail se eles aceitam seu e-mail e alguns provedores de e-mail (como o Yahoo) pode responder "não" porque o servidor não é deles, então poucos dos seus e-mails enviados podem não ser aceitos (tome cuidado também com a cota de envio do seu provedor de e-mail). esta restrição, você deve alterar a configuração de e-mail para escolher o outro método "servidor SMTP" e digite o servidor SMTP e as credenciais fornecidas pelo seu provedor de e-mail (pergunte ao seu provedor de e-mail para obter credenciais de SMTP para sua conta).
    +WarningPHPMail2=Se o seu serviço de e-mail SMTP restringir o cliente de e-mail a alguns endereços IP (muito raro), utilize o seguinte endereço IP da sua instalação ERP CRM Dolibarr: <strong>%s</strong>.
     ClickToShowDescription=Clique para mostrar a descrição
    -DependsOn=Este módulo depende do(s) módulo(s)
    +DependsOn=Este módulo precisa do (s) módulo (s)
     RequiredBy=Este módulo é necessário para o(s) módulo(s)
    -TheKeyIsTheNameOfHtmlField=Este é o nome do campo HTML. Esta necessidade de ter conhecimentos técnicos para ler o conteúdo da página HTML para obter o nome-chave de um campo.
    -PageUrlForDefaultValues=Você deve inserir aqui a URL relativa da página. Se você incluir parâmetros em URL, os valores padrão serão efetivos se todos os parâmetros estiverem configurados para o mesmo valor. Exemplos:
    -PageUrlForDefaultValuesCreate=<br>Para que o formulário crie um novo treceiro, é<strong>%s</strong>,<br> se você quiser o valor padrão somente se url tiver algum parâmetro, você pode usar<strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>Para a página que lista terceiros, é<strong>%s</strong>, <br>se você quiser o valor padrão somente se url tiver algum parâmetro, você pode usar<strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=Este é o nome do campo HTML. O conhecimento técnico é necessário para ler o conteúdo da página HTML para obter o nome da chave de um campo.
    +PageUrlForDefaultValues=Você deve inserir o caminho relativo da página no URL. Se você incluir parâmetros em URL, os valores padrão serão efetivos se todos os parâmetros estiverem definidos para o mesmo valor.
    +PageUrlForDefaultValuesCreate=<br> Exemplo: <br> Para o formulário para criar uma nova terceira parte, é <strong> %s </ strong>. <br> Para a URL dos módulos externos instalados no diretório personalizado, não inclua o "custom /", então use path como <strong> mymodule / mypage.php </ strong> e não customizado / mymodule / mypage.php. <br> Se você quiser o valor padrão somente se url tiver algum parâmetro, você pode usar <strong> %s </ forte>
    +PageUrlForDefaultValuesList=<br> Exemplo: <br> Para a página que lista terceiros, é <strong> %s </ strong>. <br> Para URL dos módulos externos instalados no diretório customizado, não inclua o "custom /" assim use caminho como <strong> mymodule / mypagelist.php </ strong> e não customizado / mymodule / mypagelist.php. <br> Se você quer o valor padrão somente se o url tiver algum parâmetro, você pode usar <strong> %s </ strong >
     EnableDefaultValues=Permitir o uso de valores predefinidos personalizados
    -EnableOverwriteTranslation=Permitir o uso da tradução substituída
    -GoIntoTranslationMenuToChangeThis=Uma tradução foi encontrada para a chave com este código, então, para alterar esse valor, você deve editá-lo para a tradução do Home-Setup.
    +EnableOverwriteTranslation=Ativar o uso de tradução sobrescrita
    +GoIntoTranslationMenuToChangeThis=Uma tradução foi encontrada para a chave com este código. Para alterar este valor, você deve editá-lo em Home-Setup-translation.
     WarningSettingSortOrder=Aviso, definir uma ordem de classificação padrão pode resultar em um erro técnico ao entrar na página da lista se o campo for um campo desconhecido. Se você tiver um erro desse tipo, volte para esta página para remover a ordem de classificação padrão e restaurar o comportamento padrão.
     Field=Campo
     ProductDocumentTemplates=Modelos de documento para gerar documento do produto
    @@ -476,16 +480,18 @@ SendEmailsReminders=Envie lembretes da agenda por e-mails
     davDescription=Adicionar um componente para ser um servidor DAV
     DAVSetup=Configuração do módulo DAV
     DAV_ALLOW_PUBLIC_DIR=Ativar o diretório público (diretório WebDav sem necessidade de iniciar sessão)
    -DAV_ALLOW_PUBLIC_DIRTooltip=O diretório público WebDav é um diretório ao qual todos podem aceder (no modo de leitura e escrita), sem necessidade de ter/usar uma conta de login/senha existente.
    +DAV_ALLOW_PUBLIC_DIRTooltip=O diretório público WebDav é um diretório WebDAV que todos podem acessar (no modo de leitura e gravação), sem necessidade de ter / usar uma conta de login / senha existente.
    +DAV_ALLOW_ECM_DIR=Ativar a diretiva raiz do módulo DMS / ECM (login obrigatório)
    +DAV_ALLOW_ECM_DIRTooltip=O diretório raiz onde todos os arquivos são carregados manualmente ao usar o módulo DMS / ECM. Como para o recurso da interface da web, você precisará de um login / senha válido com permissões concedidas para acessá-lo.
     # Modules
    -Module0Name=Utilizadores e grupos
    +Module0Name=Utilizadores e Grupos
     Module0Desc=Gestão de Utilizadores / Funcionários e Grupos
     Module1Name=Terceiros
    -Module1Desc=Gestão de terceiros (empresas, particulares) e contactos
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Comercial
     Module2Desc=Gestão comercial
     Module10Name=Contabilidade
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Relatórios contábeis simples (periódicos, faturamento) com base no conteúdo do banco de dados. Não usa nenhuma tabela de razão.
     Module20Name=Orçamentos
     Module20Desc=Gestão de orçamentos
     Module22Name=Emails em massa
    @@ -495,9 +501,9 @@ Module23Desc=Monitorização do consumo de energia
     Module25Name=Encomendas de clientes
     Module25Desc=Gestão de encomendas de clientes
     Module30Name=Faturas
    -Module30Desc=Gestão de faturas e notas de crédito de clientes. Gestão de faturas de fornecedores
    +Module30Desc=Gerenciamento de notas fiscais e notas de crédito para clientes. Gerenciamento de notas fiscais e notas de crédito para fornecedores
     Module40Name=Fornecedores
    -Module40Desc=Suppliers and purchase management (purchase orders and billing)
    +Module40Desc=Gestão de fornecedores e compras (pedidos e faturamento)
     Module42Name=Registos Debug
     Module42Desc=Funções de registo de eventos (ficheiro, registo do sistema, ...). Tais registos, são para fins técnicos/depuração.
     Module49Name=Editores
    @@ -511,13 +517,13 @@ Module52Desc=Gestão de stocks (produtos)
     Module53Name=Serviços
     Module53Desc=Gestão de serviços
     Module54Name=Contractos/Subscrições
    -Module54Desc=Gestão de contractos (serviços ou subscrições periódicas)
    +Module54Desc=Gestão de contratos (serviços ou assinaturas recorrentes)
     Module55Name=Códigos de barras
     Module55Desc=Gestão dos códigos de barras
     Module56Name=Central telefónica
     Module56Desc=Gestão de central telefónica
     Module57Name=Ordens de pagamento por débito direto
    -Module57Desc=Gestão de ordens de pagamento por débito direto. Inclui a produção de ficheiros SEPA para países europeus.
    +Module57Desc=Gerenciamento de ordens de pagamento de débito direto. Inclui a geração de arquivos SEPA para os países europeus.
     Module58Name=ClickToDial
     Module58Desc=Integração com um sistema ClickToDial (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Notas de despesas e deslocações
     Module75Desc=Gestão das notas de despesas e deslocações
     Module80Name=Expedições
     Module80Desc=Gestão de expedições e notas de encomenda
    -Module85Name=Bancos e caixas
    +Module85Name=Bancos e Caixa
     Module85Desc=Gestão das contas financeiras ou contas bancárias (prazo ou efetivo)
    -Module100Name=Página externa
    -Module100Desc=Incluir página externa no menu e visualizá-la a partir do Dolibarr
    +Module100Name=Site Externo
    +Module100Desc=Adicionar uma hiperligação do site da Web externo nos menus do Dolibarr para a ver na estrutura do Dolibarr
     Module105Name=Mailman e SPIP
     Module105Desc=Interface Mailman ou SPIP para módulo membro
     Module200Name=LDAP
    -Module200Desc=Sincronização de diretórios com LDAP
    +Module200Desc=Sincronização da diretoria LDAP
     Module210Name=PostNuke
     Module210Desc=Integração com PostNuke
     Module240Name=Exportações de dados
    -Module240Desc=Ferramenta para exportação dos dados do Dolibarr
    +Module240Desc=Ferramenta para exportar dados Dolibarr (com assistência)
     Module250Name=Importação de dados
    -Module250Desc=Ferramenta para importação dos dados do Dolibarr
    +Module250Desc=Ferramenta para importar dados para o Dolibarr (com assistência)
     Module310Name=Membros
     Module310Desc=Gestão de membros de uma fundação
     Module320Name=Feed RSS
     Module320Desc=Adicionar feed RSS às páginas Dolibarr
    -Module330Name=Marcadores
    -Module330Desc=Gestão de marcadores
    -Module400Name=Projetos/Oportunidades/Leads
    -Module400Desc=Gestão de projetos, oportunidades e/ou tarefas. Também pode atribuir qualquer elemento (fatura, encomenda, orçamento, intervenção, ...) a um projeto e obter uma visão transversal do projeto.
    +Module330Name=Marcadores e atalhos
    +Module330Desc=Crie atalhos, sempre acessíveis, para as páginas internas ou externas às quais você acessa com frequência
    +Module400Name=Projetos ou Leads
    +Module400Desc=Gestão de projetos, leads / oportunidades e / ou tarefas. Você também pode atribuir qualquer elemento (fatura, pedido, proposta, intervenção, ...) a um projeto e obter uma visão transversal da visão do projeto.
     Module410Name=Webcalendar
     Module410Desc=Integração com Webcalendar
     Module500Name=Impostos e Despesas especiais
    -Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
    +Module500Desc=Gestão de outras despesas (impostos de venda, impostos sociais ou fiscais, dividendos, ...)
     Module510Name=Pagamento dos salários dos empregados
    -Module510Desc=Registe e dê seguimento aos pagamentos dos salários dos seus funcionários
    +Module510Desc=Registrar e acompanhar pagamentos de funcionários
     Module520Name=Empréstimo
     Module520Desc=Gestão de empréstimos
     Module600Name=Notificações sobre eventos comerciais
    -Module600Desc=Envio de Email de notificação (desactiva para alguns eventos de negocio) para utilisadores (na configuração define-se cada usuário), para os contactos dos terceiros (na configuração define-se os terceiros) ou os emails defenidos.
    -Module600Long=Observe que este módulo é dedicado a enviar emails em tempo real quando ocorre um evento comercial dedicado. Se você está procurando um recurso para enviar lembretes por e-mail de seus eventos da agenda, entre na configuração do módulo Agenda.
    +Module600Desc=Enviar notificações de email acionadas por um evento de negócios, para usuários (configuração definida em cada usuário), contatos de terceiros (configuração definida em cada terceiro) ou para emails definidos
    +Module600Long=Observe que este módulo envia emails em tempo real quando ocorre um evento de negócios específico. Se você estiver procurando por um recurso para enviar lembretes por e-mail sobre eventos da agenda, entre na configuração do módulo Agenda.
     Module610Name=Variantes de produtos
    -Module610Desc=Permite a criação de variante de produtos com base em atributos (cor, tamanho, ...)
    +Module610Desc=Criação de variantes de produtos (cor, tamanho etc.)
     Module700Name=Donativos
     Module700Desc=Gestão de donativos
     Module770Name=Relatórios de despesas
    -Module770Desc=Gestão e reivindicação de relatórios de despesas (deslocação, refeição, ...)
    +Module770Desc=Gerenciar e reivindicar relatórios de despesas (transporte, refeição, ...)
     Module1120Name=Orçamentos de fornecedor
     Module1120Desc=Solicitar orçamento e preços do fornecedor
     Module1200Name=Mantis
    @@ -574,15 +580,15 @@ Module1200Desc=Integração com Mantis
     Module1520Name=Criação de documentos
     Module1520Desc=Produção do documento da emails em massa
     Module1780Name=Etiquetas/Categorias
    -Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
    +Module1780Desc=Criar tags / categoria (produtos, clientes, fornecedores, contatos ou membros)
     Module2000Name=Editor WYSIWYG
    -Module2000Desc=Permitir a edição de texto utilizando um editor avançado (baseado no CKEditor)
    +Module2000Desc=Permitir que campos de texto sejam editados usando o CKEditor
     Module2200Name=Preços dinâmicos
     Module2200Desc=Permitir a utilização de expressões matemáticas para os preços
     Module2300Name=Tarefas agendadas
     Module2300Desc=Gestão de trabalhos agendados (alias cron ou tabela chrono)
     Module2400Name=Eventos/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Provas de pista. Deixe que o Dolibarr registre eventos automáticos para fins de rastreamento ou registre eventos manuais ou reuniões. Este é o módulo principal para um bom gerenciamento de relacionamento com clientes ou fornecedores.
     Module2500Name=SGD / GEC
     Module2500Desc=Sistema de Gestão de Documentos / Gestão de Conteúdo Eletrónico. Organização automática dos seus documentos gerados ou armazenados. Compartilhe-os quando precisar.
     Module2600Name=Serviços API/Web (servidor SOAP)
    @@ -590,46 +596,50 @@ Module2600Desc=Ativar o servidor SOAP do Dolibarr, fornecendo serviços API
     Module2610Name=Serviços API/Web (servidor REST)
     Module2610Desc=Ativar os serviços API do servidor REST do Dolibarr
     Module2660Name=Serviços Web de chamada (cliente SOAP)
    -Module2660Desc=Ativar o cliente de serviços web Dolibarr (pode ser usado para enviar dados/pedidos a servidores externos. Suporta apenas encomendas a fornecedores de momento)
    +Module2660Desc=Ativar o cliente de serviços da web Dolibarr (pode ser usado para enviar dados / solicitações para servidores externos. Apenas pedidos de fornecedores são suportados no momento.)
     Module2700Name=Gravatar
    -Module2700Desc=Usar o serviço online Gravatar (www.gravatar.com) para mostrar as fotos dos utilizadores/membros (que encontrar nos seus e-mails). Necessita de um acesso à Internet
    +Module2700Desc=Use o serviço online Gravatar (www.gravatar.com) para mostrar fotos de usuários / membros (encontrados com seus e-mails). Precisa de acesso à Internet
     Module2800Desc=Cliente FTP
     Module2900Name=GeoIPMaxmind
     Module2900Desc=Capacidades de conversões GeoIP Maxmind
     Module3100Name=Skype
    -Module3100Desc=Adicionar um botão Skype nas fichas dos usuários/terceiros/contactos/membros
    +Module3100Desc=Adicionar um botão Skype nas fichas dos utilisador/terceiros/contactos/membros
     Module3200Name=Arquivos inalteráveis
    -Module3200Desc=Ativar o registo de alguns eventos em registos inalteráveis. Os eventos são arquivados em tempo real. O registo é uma tabela de eventos encadeados que podem ser lidos somente e exportados. Este módulo pode ser obrigatório para alguns países.
    +Module3200Desc=Ativar um registro inalterável de eventos de negócios. Eventos são arquivados em tempo real. O log é uma tabela somente leitura de eventos encadeados que podem ser exportados. Este módulo pode ser obrigatório para alguns países.
     Module4000Name=GRH
     Module4000Desc=Gestão de recursos humanos (gestão de departamento e contratos de funcionários)
     Module5000Name=Multiempresa
     Module5000Desc=Permite-lhe gerir várias empresas
     Module6000Name=Fluxo de trabalho
    -Module6000Desc=Workflow management (automatic creation of object and/or automatic status change)
    +Module6000Desc=Gerenciamento de fluxo de trabalho (criação automática de objeto e / ou mudança automática de status)
     Module10000Name=Sites da Web
     Module10000Desc=Crie sites públicos com um editor WYSIWYG. Basta configurar seu servidor web (Apache, Nginx, ...) para apontar para o diretório Dolibarr dedicado para tê-lo online na Internet com seu próprio nome de domínio.
     Module20000Name=Gestão de pedidos de licença
    -Module20000Desc=Declarar e seguir os pedidos de licença dos funcionários
    +Module20000Desc=Declarar e rastrear funcionários deixar pedidos
     Module39000Name=Lotes de produtos
     Module39000Desc=Gestão de produtos por lotes ou números de série
    +Module40000Name=Multi Moeda
    +Module40000Desc=Use moedas alternativas em preços e documentos
     Module50000Name=PayBox
    -Module50000Desc=Modulo que permite pagina online de pagamento com cartões de crédito/débito via PayBox. Pode ser utilisado para permitir ao cliente para fazer pagamentos libre ou pagamentos ligados a objetos do Dolibarr (faturas, encomendas, ...)
    +Module50000Desc=Oferecer aos clientes uma página de pagamento online PayBox (cartões de crédito / débito). Isso pode ser usado para permitir que seus clientes façam pagamentos gratuitos ou para um pagamento em um determinado objeto Dolibarr (fatura, pedido, ...)
     Module50100Name=Ponto de vendas
     Module50100Desc=Modúlo de ponto de vendas (POS).
    +Module50150Name=Ponto de vendas
    +Module50150Desc=Módulo de ponto de vendas (touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Modulo que permite pagina online de pagamento aceitando pagamentos utilisando PayPal (cartões de crédito ou crédito PayPal). Pode ser utilisado para permitir ao cliente para fazer pagamentos libre ou pagamentos ligados a objetos do Dolibarr (faturas, encomendas, ...)
    +Module50200Desc=Oferecer aos clientes uma página de pagamento on-line do PayPal (conta do PayPal ou cartões de crédito / débito). Isso pode ser usado para permitir que seus clientes façam pagamentos gratuitos ou para um pagamento em um determinado objeto Dolibarr (fatura, pedido, ...)
     Module50400Name=Contabilidade (avançada)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Gestão contábil (dupla entrada, suporte geral e auxiliar). Exporte o ledger em vários outros formatos de software contábil.
     Module54000Name=PrintIPP
    -Module54000Desc=impressão direta (sem abrir os documentos) usando a interface Cups IPP (A impressora deve ser visível a partir do servidor, e o CUPS deve estar instalado no servidor).
    +Module54000Desc=Impressão direta (sem abrir os documentos) usando a interface Cups IPP (a impressora deve estar visível no servidor e o CUPS deve estar instalado no servidor).
     Module55000Name=Votação ou Questionário
    -Module55000Desc=Módulo para fazer votações ou questionários online (como Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Módulo para criar enquetes, pesquisas ou votos on-line (como Doodle, Studs, Rdvz, ...)
     Module59000Name=Margens
     Module59000Desc=Módulo para gerir margens
     Module60000Name=Comissões
     Module60000Desc=Módulo para gerir comissões
    -Module62000Name=Incoterm
    -Module62000Desc=Adione funções para gerir Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Adicione recursos para gerenciar Incoterms
     Module63000Name=Recursos
     Module63000Desc=Gerir recursos (impressoras, carros, ...) que pode partilhar em eventos
     Permission11=Consultar faturas a clientes
    @@ -651,9 +661,9 @@ Permission32=Criar/Modificar produtos
     Permission34=Eliminar produtos
     Permission36=Ver/Gerir produtos ocultos
     Permission38=Exportar produtos
    -Permission41=Consultar projetos e tarefas (projetos partilhados e projetos nos quais sou contacto). Permite também introduzir tempo consumido em tarefas atribuídas (folha de tempo)
    -Permission42=Criar/modificar projetos (projetos partilhados e projetos nos quais sou contacto). Permite também criar tarefas e atribuir utilizadores a projetos e tarefas
    -Permission44=Eliminar projectos (projetos partilhados e projetos dos quais sou contacto)
    +Permission41=Leia projetos e tarefas (projeto compartilhado e projetos para os quais eu sou contato). Também pode inserir o tempo consumido, para mim ou minha hierarquia, em tarefas atribuídas (Quadro de Horários)
    +Permission42=Criar / modificar projetos (projeto compartilhado e projetos para os quais sou contato). Também pode criar tarefas e atribuir usuários a projetos e tarefas
    +Permission44=Excluir projetos (projeto compartilhado e projetos para os quais sou contato)
     Permission45=Exportar projetos
     Permission61=Consultar intervenções
     Permission62=Criar/Modificar intervenções
    @@ -694,15 +704,15 @@ Permission121=Consultar terceiros associados ao utilizador
     Permission122=Criar/modificar terceiros associados ao utilizador
     Permission125=Eliminar terceiros associados ao utilizador
     Permission126=Exportar terceiros
    -Permission141=Ler todos os projetos e tarefas (também os projetos privados para os quais não sou contatado)
    -Permission142=Criar/modificar todos os projetos e tarefas (também os projetos privados para os quais não sou contactado)
    +Permission141=Leia todos os projetos e tarefas (também projetos privados para os quais não sou um contato)
    +Permission142=Criar / modificar todos os projetos e tarefas (também projetos privados para os quais não sou um contato)
     Permission144=Eliminar todos os projetos e tarefas (também os projetos privados para os quais não sou contactado)
     Permission146=Consultar fornecedores de rede
     Permission147=Consultar estados
     Permission151=Consultar ordens de pagamento por débito direto
     Permission152=Criar/modificar ordens de pagamento por débito direto
     Permission153=Enviar/transimitir ordens de pagamento por débito direto
    -Permission154=Registar Créditos/Rejeições de ordens de pagamento por débito direto
    +Permission154=Créditos de registro / rejeições de ordens de pagamento de débito direto
     Permission161=Consultar contratos/subscrições
     Permission162=Criar/modificar contratos/subscrições
     Permission163=Ativar um serviço/subscrição de um contrato
    @@ -725,7 +735,7 @@ Permission187=Fechar encomendas a fornecedores
     Permission188=Cancelar encomendas a fornecedores
     Permission192=Criar linhas de rede
     Permission193=Cancelar linhas de rede
    -Permission194=Consultar linhas de largura de banda
    +Permission194=Ler as linhas de largura de banda
     Permission202=Criar ligações ADSL
     Permission203=Encomendar encomendas de ligações
     Permission204=Encomendar ligações
    @@ -755,7 +765,7 @@ PermissionAdvanced253=Criar/modificar utilizadores internos/externos e permissõ
     Permission254=Criar/modificar apenas utilizadores externos
     Permission255=Modificar a palavra-passe de outros utilizadores
     Permission256=Eliminar ou desativar outros utilizadores
    -Permission262=Estender o acesso para todos os terceiros (e não apenas aos terceiros que o utilizador é representante de vendas).<br>Não eficiente para os utilizadores externos (sempre limitados aos orçamentos, encomendas, faturas, contratos, etc., dos mesmos)<br>Não eficiente para os projetos (apenas regras nas permissões do projeto, visibilidade e atribuição de assuntos).
    +Permission262=Estender o acesso a todos os terceiros (não apenas terceiros que o usuário é um representante de venda para). <br> Não é eficaz para usuários externos (sempre limitado a si próprios para propostas, pedidos, faturas, contratos, etc.). eficaz para projetos (somente regras sobre permissões de projeto, visibilidade e atribuição de tarefas).
     Permission271=Consultar CA
     Permission272=Consultar faturas
     Permission273=Emitir fatura
    @@ -787,11 +797,9 @@ Permission401=Consultar descontos
     Permission402=Criar/modificar descontos
     Permission403=Validar descontos
     Permission404=Eliminar descontos
    -Permission501=Consultar salários/contratos dos funcionários
    -Permission502=Criar/modificar salários/contratos dos funcionários
    -Permission511=Consultar pagamentos de salários
    -Permission512=Criar/modificar pagamentos de salários
    -Permission514=Apagar salários
    +Permission511=Leia pagamentos de salários
    +Permission512=Criar / modificar pagamentos de salários
    +Permission514=Excluir pagamentos de salários
     Permission517=Exportar salários
     Permission520=Consultar empréstimos
     Permission522=Criar/modificar empréstimos
    @@ -844,8 +852,8 @@ Permission1251=Executar importações em massa de dados externos para a bases de
     Permission1321=Exportar faturas, atributos e cobranças de clientes
     Permission1322=Reabrir uma fatura paga
     Permission1421=Exportar faturas e atributos de clientes
    -Permission20001=Consultar pedidos de licença (seus e dos seus subordinados)
    -Permission20002=Criar/modificar pedidos de licença (seus e dos seus subordinados)
    +Permission20001=Leia pedidos de licença (sua licença e a dos seus subordinados)
    +Permission20002=Crie / modifique seus pedidos de licença (sua licença e a de seus subordinados)
     Permission20003=Eliminar pedidos de licença
     Permission20004=Consultar todos os pedidos de licença (incluindo os dos utilizadores não são seus subordinados)
     Permission20005=Criar/modificar pedidos de licença de todos (incluindo os dos utilizadores não são seus subordinados)
    @@ -881,7 +889,7 @@ Permission63002=Criar/modificar recursos
     Permission63003=Eliminar recursos
     Permission63004=Associar recursos a eventos da agenda
     DictionaryCompanyType=Tipos de terceiros
    -DictionaryCompanyJuridicalType=Formulários legais de terceiros
    +DictionaryCompanyJuridicalType=Formas legais de terceiros
     DictionaryProspectLevel=Nível de potencial da prospeção
     DictionaryCanton=Concelho
     DictionaryRegion=Distritos
    @@ -891,10 +899,10 @@ DictionaryCivility=Títulos pessoais e profissionais
     DictionaryActions=Tipos de eventos da agenda
     DictionarySocialContributions=Tipos de impostos sociais ou fiscais
     DictionaryVAT=Taxa de IVA
    -DictionaryRevenueStamp=Amount of tax stamps
    +DictionaryRevenueStamp=Quantidade de selos fiscais
     DictionaryPaymentConditions=Condições de pagamento
     DictionaryPaymentModes=Métodos de pagamento
    -DictionaryTypeContact=Tipos de contacto/endereço
    +DictionaryTypeContact=Tipos de contatos / endereços
     DictionaryTypeOfContainer=Tipo de páginas/conteúdos do site
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Formatos de Papel
    @@ -908,47 +916,47 @@ DictionarySource=Origem dos orçamentos/encomendas
     DictionaryAccountancyCategory=Grupos personalizados para os relatórios
     DictionaryAccountancysystem=Modelos para o gráfíco de contas
     DictionaryAccountancyJournal=Diários contabilisticos
    -DictionaryEMailTemplates=Modelos de emails
    +DictionaryEMailTemplates=Templates de Email
     DictionaryUnits=Unidades
     DictionaryProspectStatus=Estado da prospeção
     DictionaryHolidayTypes=Tipos de licença
    -DictionaryOpportunityStatus=Estado da oportunidade para o projeto/lead
    +DictionaryOpportunityStatus=Status de lead para projeto / lead
     DictionaryExpenseTaxCat=Relatório de despesas - categorias de transporte
     DictionaryExpenseTaxRange=Relatório de despesas - Escala por categoria de transporte
     SetupSaved=Configuração guardada
     SetupNotSaved=A configuração não foi guardada
     BackToModuleList=Voltar à lista de módulos
    -BackToDictionaryList=Voltar à lista de dicionários
    -TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=Gestão de IVA
    -VATIsUsedDesc=Por defeito, quando prospeções; faturas; encomendas; etc. são criadas, a taxa de IVA segue a seguinte regra:<br>Se o vendedor não estiver sujeito a IVA, então este é igual a 0. Fim da regra.<br>Se o país de venda for igual ao país de compra, então o valor do IVA passa a ser o aplicado no país de venda. Fim da regra.<br>Se o vendedor e o comprador fizerem parte da União Europeia e os bens forem produtos de transporte (carro, navio, avião), o IVA é 0 (o IVA deverá ser pago pelo comprador à alfândega do seu país, e não ao vendedor). Fim da regra.<br>Se o vendedor e o comprador fizerem parte da União Europeia e o comprador não for uma empresa, então o IVA é igual ao IVA aplicado no produto vendido. Fim da regra.<br>Se o vendedor e o comprador fizerem parte da União Europeia e o comprador for uma empresa, então o IVA é igual a 0. Fim da regra.<br>Noutros casos o IVA por defeito é igual a 0. Fim da regra.
    -VATIsNotUsedDesc=O tipo de IVA proposto por defeito é 0, este pode ser usado em casos como associações, indivíduos ou pequenas empresas.
    -VATIsUsedExampleFR=Em França, trata-se de empresas ou organizações que possuem um sistema fiscal real (real simplificado ou real normal). Um sistema no qual se declara o IVA.
    -VATIsNotUsedExampleFR=Em França, trata-se de associações isentas de IVA, ou, empresas, organizações ou profissões liberais que escolheram o regime fiscal de módulos (IVA em franquia) e pagaram um IVA em franquia sem fazer declarações de IVA. Esta escolha faz com apareça a anotação "IVA não aplicável" nas faturas.
    +BackToDictionaryList=Voltar para a lista de dicionários
    +TypeOfRevenueStamp=Tipo de selo fiscal
    +VATManagement=Gestão Fiscal de Venda
    +VATIsUsedDesc=Por padrão, ao criar prospectos, faturas, pedidos, etc., a taxa do imposto sobre venda segue a regra padrão ativa: <br> Se o vendedor não estiver sujeito ao Imposto sobre vendas, o imposto sobre vendas será 0. Fim da regra. (país do vendedor = país do comprador), o Imposto sobre vendas por padrão é igual ao Imposto sobre vendas do produto no país do vendedor. Fim da regra. <br> Se o vendedor e o comprador estiverem na Comunidade Europeia e os bens forem produtos relacionados a transporte (transporte, transporte aéreo, companhia aérea), o imposto de venda padrão será 0. Essa regra depende do país do vendedor - por favor consulte seu contador. O imposto sobre a venda deve ser pago pelo comprador ao escritório de alfândega do país e não ao vendedor. Fim da regra. <br> Se o vendedor e o comprador estiverem na Comunidade Europeia e o comprador não for uma empresa (com um número de imposto de venda intracomunitário registrado), o Imposto sobre vendas será cobrado pela taxa de vendas do país do vendedor. . Fim da regra. <br> Se o vendedor e o comprador estiverem na Comunidade Europeia e o comprador for uma empresa (com um número de imposto de venda intracomunitário registrado), o Imposto sobre vendas será 0, por padrão. Fim da regra. <br> Em qualquer outro caso, o padrão proposto é imposto à venda = 0. Fim de regra.
    +VATIsNotUsedDesc=Por padrão, o imposto de venda proposto é 0, que pode ser usado para casos como associações, indivíduos ou pequenas empresas.
    +VATIsUsedExampleFR=Na França, significa empresas ou organizações que possuem um sistema fiscal real (real simplificado real ou normal). Um sistema no qual o imposto sobre venda é declarado.
    +VATIsNotUsedExampleFR=Na França, significa associações que não são declaradas como Imposto de Vendas ou empresas, organizações ou profissões liberais que escolheram o sistema fiscal de microempresas (Imposto sobre vendas em franquia) e pagaram um Imposto sobre vendas de franquia sem qualquer declaração de imposto sobre vendas. Essa opção exibirá a referência "Imposto sobre vendas não aplicável - art-293B de CGI" nas faturas.
     ##### Local Taxes #####
     LTRate=Taxa
     LocalTax1IsNotUsed=Não utilizar um segundo imposto
    -LocalTax1IsUsedDesc=Utilizar um segundo tipo de imposto (para além do IVA)
    -LocalTax1IsNotUsedDesc=Não utilizar outro tipo de imposto (para além do IVA)
    +LocalTax1IsUsedDesc=Use um segundo tipo de imposto (diferente do primeiro)
    +LocalTax1IsNotUsedDesc=Não use outro tipo de imposto (diferente do primeiro)
     LocalTax1Management=Segundo tipo de imposto
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Não utilizar um terceiro imposto
    -LocalTax2IsUsedDesc=Utilizar um terceiro tipo de imposto (a parte do IVA)
    -LocalTax2IsNotUsedDesc=Não utilizar outro tipo de imposto (para além do IVA)
    +LocalTax2IsUsedDesc=Use um terceiro tipo de imposto (diferente do primeiro)
    +LocalTax2IsNotUsedDesc=Não use outro tipo de imposto (diferente do primeiro)
     LocalTax2Management=Terceiro tipo de imposto
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Gestão
    -LocalTax1IsUsedDescES= A taxa de RE por padrão, quando as perspectivas de criação, faturas, pedidos, etc,  seguir a regra activa padrão: <br> Se o comprador não está sujeita a RE por defeito
    -LocalTax1IsNotUsedDescES= Por padrão, o RE proposto é 0. Fim da regra.
    -LocalTax1IsUsedExampleES= Em Espanha, eles são profissionais sujeitos a algumas secções específicas do IAE Espanhol.
    -LocalTax1IsNotUsedExampleES= Em Espanha por exemplo, eles são profissionais e sociedades, sujeitos a certas secções do IAE Espanhol.
    -LocalTax2ManagementES= Gestão de Imposto sobre o Rendimento das Pessoas Singulares (IRS)
    -LocalTax2IsUsedDescES= A taxa de RE por padrão, quando as perspectivas de criação, faturas, pedidos, etc seguir a regra activa padrão: <br> Se o vendedor não está sujeito ao IRPF, IRPF, seguida, por defeito
    -LocalTax2IsNotUsedDescES= Por defeito, o IRS proposto é 0. Fim da regra.
    -LocalTax2IsUsedExampleES= Em Espanha, os freelancers e profissionais liberais que prestam serviços e empresas que escolheram o regime fiscal dos módulos.
    -LocalTax2IsNotUsedExampleES= Em Espanha, eles são negócios que não estão sujeitos ao regime fiscal de módulos.
    +LocalTax1ManagementES=RE Gestão
    +LocalTax1IsUsedDescES=A taxa de ER, por padrão, ao criar prospetos, faturas, ordens, etc., segue a regra padrão ativa: <br> Se o comprador não estiver sujeito a RE, o RE, por padrão, = 0. Fim da regra. <br> Se o comprador estiver sujeito a RE, então o RE será, por padrão. Fim da regra. <br>
    +LocalTax1IsNotUsedDescES=Por padrão, o RE proposto é 0. Fim da regra.
    +LocalTax1IsUsedExampleES=Em Espanha, eles são profissionais sujeitos a algumas secções específicas do IAE Espanhol.
    +LocalTax1IsNotUsedExampleES=Em Espanha por exemplo, eles são profissionais e sociedades, sujeitos a certas secções do IAE Espanhol.
    +LocalTax2ManagementES=Gestão de Imposto sobre o Rendimento das Pessoas Singulares (IRS)
    +LocalTax2IsUsedDescES=A taxa de IRPF por padrão ao criar prospetos, faturas, ordens etc. segue a regra padrão ativa: <br> Se o vendedor não estiver sujeito ao IRPF, então IRPF por padrão = 0. Fim da regra. <br> Se o vendedor estiver sujeito ao IRPF, o IRPF será, por padrão. Fim da regra. <br>
    +LocalTax2IsNotUsedDescES=Por defeito, o IRS proposto é 0. Fim da regra.
    +LocalTax2IsUsedExampleES=Em Espanha, os freelancers e profissionais liberais que prestam serviços e empresas que escolheram o regime fiscal dos módulos.
    +LocalTax2IsNotUsedExampleES=Em Espanha, são empresas não sujeitas ao sistema fiscal de módulos.
     CalcLocaltax=Relatórios sobre impostos locais
     CalcLocaltax1=Vendas - Compras
     CalcLocaltax1Desc=Os relatórios de impostos locais são calculados através da diferença entre as vendas de impostos locais e as compras de impostos locais
    @@ -958,7 +966,9 @@ CalcLocaltax3=Vendas
     CalcLocaltax3Desc=Os relatórios de impostos locais são o total de vendas de impostos locais
     LabelUsedByDefault=Etiqueta que será utilizada por defeito se não for encontrada tradução para este código
     LabelOnDocuments=Etiqueta sobre documentos
    -NbOfDays=Nº de Dias
    +LabelOrTranslationKey=Etiqueta ou chave de tradução
    +ValueOfConstantKey=Valor da constante
    +NbOfDays=N.º de dias
     AtEndOfMonth=No fim de mês
     CurrentNext=Atual/Seguinte
     Offset=Desvio
    @@ -977,14 +987,14 @@ PhpWebLink=Ligação Web-PHP
     Browser=Navegador
     Server=Servidor
     Database=Base de dados
    -DatabaseServer=Servidor da base de dados
    +DatabaseServer=Hospedeiro da base de dados
     DatabaseName=Nome da base de dados
     DatabasePort=Porta da base de dados
     DatabaseUser=Utilizador da base de dados
     DatabasePassword=Palavra-passe da base de dados
     Tables=Tabelas
     TableName=Nome da tabela
    -NbOfRecord=Nº de registos
    +NbOfRecord=N.ª de registos
     Host=Servidor
     DriverType=Tipo de driver
     SummarySystem=Resumo da informação do sistema
    @@ -996,7 +1006,7 @@ Skin=Tema
     DefaultSkin=Tema predefinido
     MaxSizeList=Tamanho máximo da lista
     DefaultMaxSizeList=Tamanho máximo predefinido para listas
    -DefaultMaxSizeShortList=Tamanho máximo predefinido para listas curtas (por exemplo, listas na ficha de cliente)
    +DefaultMaxSizeShortList=Comprimento máximo padrão para listas curtas (ou seja, no cartão do cliente)
     MessageOfDay=Mensagem do día
     MessageLogin=Mensagem da página de inicio de sessão
     LoginPage=Página de inicio de sessão
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Zona de pesquisa permanente no menu esquerdo
     DefaultLanguage=Idioma por defeito a utilizar (código idioma)
     EnableMultilangInterface=Ativar interface multi-idioma
     EnableShowLogo=Mostrar o logótipo no menu esquerdo
    -CompanyInfo=Informação da empresa/organização
    -CompanyIds=Identidades da empresa/organização
    +CompanyInfo=Empresa/Organização
    +CompanyIds=Identidades da Empresa/Organização
     CompanyName=Nome/Razão social
     CompanyAddress=Morada
     CompanyZip=Código Postal
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Titular da conta bancária %s
     BankModuleNotActive=O módulo de contas bancarias não se encontra ativado
     ShowBugTrackLink=Mostrar hiperligação "<strong>%s</strong>"
     Alerts=Alertas
    -DelaysOfToleranceBeforeWarning=Prazos de tolerância antes de notificação
    -DelaysOfToleranceDesc=Esta janela permite configurar os prazos de tolerância antes da emissão de um alerta no ecrã, com o símbolo %s, sobre cada elemento em atraso.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Tolerância de atraso (em dias) antes da emissão de um alerta para eventos planeados (eventos da agenda) que não estejam terminados
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolerância de atraso (em dias) antes da emissão de um alerta para projetos não fechados dentro da data limite
    -Delays_MAIN_DELAY_TASKS_TODO=Tolerância de atraso (em dias) antes da emissão de alertas para tarefas planeadas (tarefas de projeto) ainda não concluídas
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolerância de atraso (em dias) antes da emissão de um alerta para encomendas de cleintes não processadas
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolerância de atraso (em dias) antes de alertar nos orçamentos a fechar
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolerância de atraso (em dias) antes de alertar nos orçamentos não faturados
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerância de atraso (em dias) antes da emissão de um alerta para serviços por ativar
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerância de atraso (em dias) antes da emissão de um alerta para serviços expirados
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerância de atraso (em dias) antes da emissão de um alerta para faturas de fornecedores por pagar
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerância de atraso (em dias) antes da emissão de um alerta para faturas a clientes por pagar
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerância de atraso (em dias) antes da emissão de um alerta para reconcilizações bancárias pendentes
    -Delays_MAIN_DELAY_MEMBERS=Tolerância de atraso (em dias) antes da emissão de um alerta para atrasos de pagamentos para taxas de associação
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerância de atraso (em dias) antes da emissão de um alerta para depósitos em cheques, por efetuar
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Atraso de tolerância (em dias) antes da emissão de um alerta para relatórios de despesas por aprovar
    -SetupDescription1=A área de configuração é para parâmetros de configuração iniciais, antes do primeiro uso do Dolibarr
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Outros itens do menu, gerir parâmetros opcionais.
    +DelaysOfToleranceBeforeWarning=Atrasos antes de exibir um aviso de alerta
    +DelaysOfToleranceDesc=Essa tela permite que você defina o atraso antes que um alerta seja relatado na tela com um ícone %s para cada elemento atrasado.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Atraso (em dias) antes do alerta sobre eventos planejados (eventos da agenda) ainda não concluídos
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Atraso (em dias) antes do alerta no projeto não fechado a tempo
    +Delays_MAIN_DELAY_TASKS_TODO=Atraso (em dias) antes do alerta nas tarefas planejadas (tarefas do projeto) ainda não concluídas
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Atraso (em dias) antes do alerta em pedidos ainda não processados
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Atraso (em dias) antes do alerta em pedidos de compra ainda não processados
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Atraso (em dias) antes de alerta em propostas para fechar
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Atraso (em dias) antes do alerta em propostas não faturadas
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Atraso (em dias) antes do alerta nos serviços para ativar
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Atraso (em dias) antes do alerta nos serviços vencidos
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Atraso (em dias) antes do alerta em faturas de fornecedor não pagas
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Atraso (em dias) antes do alerta em faturas de clientes não pagas
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Atraso (em dias) antes do alerta na reconciliação bancária pendente
    +Delays_MAIN_DELAY_MEMBERS=Atraso (em dias) antes do alerta da taxa de associação atrasada
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Atraso (em dias) antes do alerta para depósito em cheque para fazer
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Atraso (em dias) antes do alerta para relatórios de despesas aprovarem
    +SetupDescription1=Antes de começar a usar o Dolibarr, alguns parâmetros iniciais devem ser definidos e módulos ativados / configurados.
    +SetupDescription2=Os passos de configuração obrigatórios são os dois primeiros passos no menu de configuração, a saber:
    +SetupDescription3=<a href="%s"> %s -> %s </a> <br> Parâmetros básicos usados ​​para personalizar o comportamento padrão do Dolibarr (por exemplo, para recursos relacionados ao país).
    +SetupDescription4=<a href="%s"> %s -> %s </a> <br> O Dolibarr ERP / CRM é uma coleção de muitos módulos / aplicativos, todos mais ou menos independentes. Os módulos relevantes para suas necessidades devem ser ativados e configurados. Novos itens / opções são adicionados aos menus com a ativação de um módulo.
    +SetupDescription5=Outras entradas do menu de configuração fornecem parâmetros opcionais.
     LogEvents=Eventos de auditoria da segurança
    -Audit=Auditoria
    +Audit=Eventos de segurança
     InfoDolibarr=Sobre o Dolibarr
     InfoBrowser=Sobre o navegador
     InfoOS=Sobre o sistema operativo
    @@ -1056,20 +1066,20 @@ BrowserName=Nome do navegador
     BrowserOS=Sistema operativo do navegador
     ListOfSecurityEvents=Listagem de eventos de segurança do Dolibarr
     SecurityEventsPurged=Os eventos de segurança purgados
    -LogEventDesc=Pode ativar o registo de eventos de segurança Dolibarr aqui. Os administradores podem ver o seu conteúdo a través do menu <b>Ferramentas do sistema - Auditoria</b>. Atenção, esta funcionalidade pode consumir uma grande quantidade de espaço na base de dados.
    +LogEventDesc=Você pode habilitar aqui o registro para eventos de segurança. Os administradores podem ver seu conteúdo no menu <b> %s - %s </ b>. Atenção, esse recurso pode consumir uma grande quantidade de dados no banco de dados.
     AreaForAdminOnly=Os parâmetros de configuração só podem ser definidos pelos <b>utilizadores administradores</b>.
     SystemInfoDesc=Esta informação do sistema é uma informação técnica acessível só para leitura dos administradores.
     SystemAreaForAdminOnly=Esta área só é acessível aos utilizadores administradores. Nenhuma permissão do Dolibarr permite reduzir esta limitação.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edite, nesta página, todas as informações conhecidas relacionadas com o seu contabilista
    -AccountantFileNumber=File number
    +CompanyFundationDesc=Edite as informações da empresa / entidade. Clique no botão "%s" ou "%s" na parte inferior da página.
    +AccountantDesc=Edite os detalhes do seu contador / contabilista
    +AccountantFileNumber=Número do arquivo
     DisplayDesc=Pode encontrar aqui todos os parâmetros relacionados com a aparência do Dolibarr
     AvailableModules=Aplicações/módulos disponíveis
    -ToActivateModule=Para ativar módulos, aceder à área de configuração (Configuração->Módulos).
    +ToActivateModule=Para ativar os módulos, vá para a Área (Início->Configuração->Módulos).
     SessionTimeOut=Tempo limite para a sessão
    -SessionExplanation=Este valor assegura que o período de sessões não expirará antes deste momento, se a limpeza de sessão for efetuada internamente pelo PHP (e nada mais). A limpeza de sessões interna do PHP não garante que a sessão expire logo a seguir ao atraso definido. A sessão irá expirar, após o atraso aqui definido, e quando a limpeza de sessão ocorrer, normalmente após cada <b>%s/%s</b> acessos feitos para além deste.<br>Nota: em alguns servidores que possuem mecanismos de limpeza de sessão (cron), as sessões expirarão após o perído predefinido <strong>session.gc_maxlifetime</strong>, independentemente do valor aqui introduzido.
    +SessionExplanation=Este número garante que a sessão nunca expirará antes deste atraso, se o limpador de sessão for feito pelo limpador de sessão do PHP Interno (e nada mais). O limpador de sessão interno do PHP não garante que a sessão irá expirar após esse atraso. Ele irá expirar, após este atraso, e quando o limpador de sessão for executado, então todo acesso <b> %s / %s </ b>, mas somente durante o acesso feito por outras sessões (se o valor for 0, significa que a limpeza da sessão é feito apenas por um processo externo). <br> Nota: em alguns servidores com um mecanismo de limpeza de sessão externa (cron em debian, ubuntu ...), as sessões podem ser destruídas após um período definido por uma configuração externa, não importa o que o valor inserido aqui é.
     TriggersAvailable=Acionadores disponíveis
    -TriggersDesc=Os acionadores são ficheiros que irão modificar o comportamento do fluxo de trabalho do Dolibarr, assim que estes forem copiados para i diretório <b>htdocs/core/triggers</b>. Estes realizam novas ações, ativadas sobre eventos do Dolibarr (criação de novos terceiros, validação de faturas, etc.).
    +TriggersDesc=Triggers são arquivos que modificarão o comportamento do fluxo de trabalho do Dolibarr quando copiados no diretório <b> htdocs / core / triggers </ b>. Eles realizam novas ações, ativadas em eventos Dolibarr (criação de nova empresa, validação de fatura, ...).
     TriggerDisabledByName=Os acionadores neste ficheiro estão desativados pelo sufixo <b>-NORUN</b> presente no nome.
     TriggerDisabledAsModuleDisabled=Os acionadores neste ficheiro estão desativados porque o módulo <b>%s</b> está desativado.
     TriggerAlwaysActive=Os acionadores neste ficheiro estão sempre ativos, independentemente de quais são os módulos ativados.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insira todos os dados de referência. Você pode adicionar os seu
     ConstDesc=Esta página permite que modifique todos os outros parâmetros não disponíveis nas páginas anteriores. Estes são na sua maioria parâmetros reservados para programadores ou solução avançada de problemas. Para uma lista de opções <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">consulte aqui</a>.
     MiscellaneousDesc=Aqui são definidos todos os outros parâmetros relacionados com segurança.
     LimitsSetup=Configuração de limites/precisão
    -LimitsDesc=Pode definir aqui os limites, precisão e otimizações utilizados pelo Dolibarr
    +LimitsDesc=Você pode definir limites, precisões e otimizações usadas pelo Dolibarr aqui
     MAIN_MAX_DECIMALS_UNIT=Número de casas decimais máximo para os preços unitários
     MAIN_MAX_DECIMALS_TOT=Número de casas decimais máximo para os preços totais
     MAIN_MAX_DECIMALS_SHOWN=Número de casas decimais máximo para os valores mostrados na janela (Colocar <b>...</b> depois do número de casas decimais máximo quando o número for truncado)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Passo do intervalo de arredondamento (para os países ond
     UnitPriceOfProduct=Preço unitário líquido de um produto
     TotalPriceAfterRounding=Preço total (líquido/IVA/inclui impostos) após arredondamento
     ParameterActiveForNextInputOnly=Parâmetro efetivo somente para as próximas sessões
    -NoEventOrNoAuditSetup=Ainda não foram registados eventos de segurança. Isto é comum no caso de "Auditoria" não estar ativa na página "Configuração->Segurança->Auditoria".
    -NoEventFoundWithCriteria=Não foram encontrados eventos de segurança para os critérios de pesquisa introduzidos.
    +NoEventOrNoAuditSetup=Nenhum evento de segurança foi registrado ainda. Isso pode ser normal se a auditoria não tiver sido ativada na página "Configuração - Segurança - Eventos".
    +NoEventFoundWithCriteria=Nenhum evento de segurança foi encontrado para este critério de pesquisa.
     SeeLocalSendMailSetup=Verifique a configuração local de sendmail
     BackupDesc=Para realizar uma cópia de segurança completa do Dolibarr, deve:
     BackupDesc2=Guarde o conteúdo do diretório de documentos (<b>%s</b>) que contém todos ficheiros carregados e gerados (de forma a que inclua todos os ficheiros dump gerados no passo 1).
    -BackupDesc3=Guarde o conteúdo da sua base de dados (<b>%s</b>) num ficheiro dump. Para isso, pode usar o assistente seguinte.
    +BackupDesc3=Salve o conteúdo do seu banco de dados (<b> %s </ b>) em um arquivo de despejo. Para isso, você pode usar o assistente a seguir.
     BackupDescX=O diretório arquivado deverá ser guardado num local seguro.
     BackupDescY=A cópia de segurança gerada deve ser armazenada num local seguro.
    -BackupPHPWarning=O backup não pode ser garantido com este método. Utilize o anterior
    +BackupPHPWarning=Backup não pode ser garantido com este método. Um anterior recomendado.
     RestoreDesc=Para restaurar uma cópia de segurança do Dolibarr, você deve:
    -RestoreDesc2=Restaurar o ficheiro de arquivo (ficheiro .zip por exemplo) do diretório de documentos para extrair árvore de ficheiros no diretório de documentos de uma nova instalação Dolibarr ou no atual diretório de documentos (<b>%s</b>).
    +RestoreDesc2=Restaure o arquivo archive (arquivo zip, por exemplo) do diretório de documentos para extrair a árvore de arquivos no diretório de documentos de uma nova instalação do Dolibarr ou no diretório de documentos atual (<b> %s </ b>).
     RestoreDesc3=Restaurar os dados, a partir de um ficheiro dump backup, na base de dados da nova instalação Dolibarr ou na base de dados da instalação atual (<b>%s</b>). Aviso: uma vez que a restauração esteja concluída, você deve usar um login/palavra passe, que existia quando o backup foi feito, para iniciar a sessão novamente. Para restaurar um backup da base de dados para a instalação atual, pode seguir este assistente.
     RestoreMySQL=Importação MySQL
     ForcedToByAModule= Esta regra é forçada a <b>a %s</b>, por um módulo ativo
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Deve executar este comando a pa
     YourPHPDoesNotHaveSSLSupport=Funções SSL não estão disponíveis no seu PHP
     DownloadMoreSkins=Mais temas para descarregar
     SimpleNumRefModelDesc=Retorna o número de referência, com o formato %syymm-nnnn, onde "yy" é o ano, "mm" é o mês e "nnnn" é uma sequência.
    -ShowProfIdInAddress=Mostrar ID professionnal com endereços em documentos
    -ShowVATIntaInAddress=Ocultar o número IVA Intra-Comunitário com endereços em documentos
    +ShowProfIdInAddress=Mostrar ID profissional com endereços em documentos
    +ShowVATIntaInAddress=Ocultar o número de IVA intracomunitário com endereços em documentos
     TranslationUncomplete=Tradução parcial
    -MAIN_DISABLE_METEO=Desativar vista de meteorologia
    +MAIN_DISABLE_METEO=Desativar vista meteorológica
     MeteoStdMod=Modo padrão
     MeteoStdModEnabled=Modo padrão ativado
     MeteoPercentageMod=Modo percentagem
     MeteoPercentageModEnabled=Modo percentagem ativado
     MeteoUseMod=Clique para usar %s
     TestLoginToAPI=Teste o login à API
    -ProxyDesc=Algumas características do Dolibarr precisam de acesso à Internet para funcionar. Defina aqui os parâmetros necessários para tal. Se o servidor Dolibarr estiver atrás de um servidor Proxy, esses parâmetros informam o Dolibarr como aceder à internet através dele.
    +ProxyDesc=Alguns recursos do Dolibarr precisam ter acesso à internet para funcionar. Defina aqui os parâmetros para isso. Se o servidor Dolibarr estiver atrás de um servidor Proxy, esses parâmetros informam ao Dolibarr como acessar a Internet através dele.
     ExternalAccess=Acesso externo
     MAIN_PROXY_USE=Utilizar um servidor proxy (se não, o acesso à internet é direto)
     MAIN_PROXY_HOST=Nome/Endereço de servidor proxy
     MAIN_PROXY_PORT=Porta do servidor proxy
     MAIN_PROXY_USER=Inicie a sessão para usar o servidor proxy
     MAIN_PROXY_PASS=Palavra-passe para utilizar o servidor proxy
    -DefineHereComplementaryAttributes=Defina aqui todos os atributos complementares, que não estejam disponíveis por defeito, e que deseja que seja suportado por %s.
    +DefineHereComplementaryAttributes=Defina quaisquer atributos que ainda não estejam disponíveis por padrão e que você queira que sejam suportados para %s aqui.
     ExtraFields=Atributos complementares
     ExtraFieldsLines=Atributos complementares (linhas)
     ExtraFieldsLinesRec=Atributos complementares (linhas de faturas de modelos)
     ExtraFieldsSupplierOrdersLines=Atributos complementares (linhas da encomenda)
     ExtraFieldsSupplierInvoicesLines=Atributos complementares (linhas da fatura)
     ExtraFieldsThirdParties=Atributos complementares (terceiro)
    -ExtraFieldsContacts=Atributos complementares (contacto/morada)
    +ExtraFieldsContacts=Atributos complementares (contatos / endereço)
     ExtraFieldsMember=Atributos complementares (membro)
     ExtraFieldsMemberType=Atributos complementares (tipo de membro)
     ExtraFieldsCustomerInvoices=Atributos complementares (faturas)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=somente caracteres alfanuméricos e minúsculas
     SendmailOptionNotComplete=Aviso, em alguns sistemas Linux, para enviar emails, a configuração sendmail deve conter a opção -ba (o parâmetro mail.force_extra_parameters no seu ficheiro php.ini). Se alguns destinatários não receberem e-mails, tente editar este parâmetro PHP com mail.force_extra_parameters = -ba
     PathToDocuments=Caminhos de acesso a documentos
     PathDirectory=Diretório
    -SendmailOptionMayHurtBuggedMTA=Funcionalidade para enviar e-mails usando o método "PHP mail direct" irá gerar uma mensagem de correio que poderá não ser lida corretamente por alguns servidores de e-mail. O resultado será que alguns e-mails não poderão ser lidos por utilizadores que usem essas plataformas com problemas. Isto é o caso de alguns fornecedores de Internet (Ex: MEO em Portugal). Este problema não está relacionado com o Dolibarr nem o PHP, mas sim com o servidor de correio que recebe os e-mails. No entanto, você pode adicionar a opção MAIN_FIX_FOR_BUGGED_MTA a 1 na configuração de forma contornar esta questão. No entanto, você pode ter problemas com outros servidores que respeitam estritamente o padrão SMTP. A outra solução (recomendada) é usar o método "SMTP socket library" que não traz desvantagens.
    +SendmailOptionMayHurtBuggedMTA=O recurso para enviar e-mails usando o método "PHP mail direct" gerará uma mensagem de e-mail que pode não ser analisada corretamente por alguns servidores de e-mail recebidos. O resultado é que alguns e-mails não podem ser lidos por pessoas hospedadas por essas plataformas com bugs. Este é o caso de alguns provedores de Internet (Ex: Orange na França). Isso não é um problema com o Dolibarr ou PHP, mas com o servidor de recebimento de email. No entanto, você pode adicionar uma opção MAIN_FIX_FOR_BUGGED_MTA a 1 em Setup - Other para modificar o Dolibarr para evitar isso. No entanto, você pode ter problemas com outros servidores que usam estritamente o padrão SMTP. A outra solução (recomendada) é usar o método "biblioteca de soquete SMTP" que não tem desvantagens.
     TranslationSetup=Configuração da tradução
     TranslationKeySearch=Procurar uma chave ou texto de tradução
     TranslationOverwriteKey=Modificar o texto de uma tradução
    -TranslationDesc=Como seleccionar os idiomas do aplicativo exibidos : <br>* Sistema amplo : menu <strong>Inicio - Configuração - Display </strong><br>*Por  usuário: use o <strong>usuário configuração display </strong>guia da ficha usuário (clic no nome do usuário no cima do écran).
    -TranslationOverwriteDesc=Você pode substituir as traduções na seguinte tabela. Escolha o seu idioma na caixa de seleção "%s", insira a chave tradução rm "%s" e sua nova tradução em "%s"
    -TranslationOverwriteDesc2=Você pode utilizar o outro separador para ajudá-lo a saber a chave de tradução que tem de usar
    +TranslationDesc=Como definir o idioma da aplicação exibido : <br>* Sistema amplo : menu <strong>Inicio->Configuração->Exibir </strong><br>*Por  utilizador: utilize o separador <strong>Configuração do ecrã do utilizador</strong>da ficha do utilizador (clique no nome do utilizador no topo do ecrã).
    +TranslationOverwriteDesc=Pode substituir as entradas na seguinte tabela. Escolha o seu idioma no menu suspenso "%s", insira a chave da tradução em "%s" e a sua nova tradução em "%s"
    +TranslationOverwriteDesc2=Você pode usar a outra guia para ajudá-lo a saber qual chave de tradução deve ser usada
     TranslationString=Texto de tradução
     CurrentTranslationString=Texto de tradução atual
     WarningAtLeastKeyOrTranslationRequired=É necessário pelo menos um critério de pesquisa para a chave ou texto de tradução
     NewTranslationStringToShow=Novo texto de tradução a exibir
     OriginalValueWas=A tradução original foi alterada. O valor original era: <br><br>%s
    -TransKeyWithoutOriginalValue=Você forçou uma nova tradução para a chave de tradução '<strong>%s</strong>' que não existe em nenhum arquivo de idioma
    +TransKeyWithoutOriginalValue=Você forçou uma nova tradução para a chave de tradução '<strong> %s </ strong>' que não existe em nenhum arquivo de idioma
     TotalNumberOfActivatedModules=Aplicação/módulos ativados: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Deve ativar, pelo menos, 1 módulo
    -ClassNotFoundIntoPathWarning=A classe %s não foi encontrada no caminho PHP
    +ClassNotFoundIntoPathWarning=Classe %s não encontrada no caminho do PHP
     YesInSummer=Sim no verão
    -OnlyFollowingModulesAreOpenedToExternalUsers=Nota: apenas os seguintes módulos é que estão disponíveis a utilizadores externos (independentemente das permissões definidas para tais utilizadores) e somente se as permissões foram concedidas:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Observe que apenas os seguintes módulos são abertos para usuários externos (quaisquer que sejam as permissões de tais usuários) e somente se as permissões forem concedidas:
     SuhosinSessionEncrypt=Sessão de armazenamento encriptada por Suhosin
     ConditionIsCurrently=A condição está atualmente %s
    -YouUseBestDriver=Você está a utilizar a driver %s, sendo esta a melhor driver disponível atualmente.
    -YouDoNotUseBestDriver=Você está a utilizar a driver %s, mas a driver %s é recomendada.
    -NbOfProductIsLowerThanNoPb=Você apenas possui %s  produtos/serviços na base de dados. Assim sendo não é necessário qualquer tipo de otimização.
    +YouUseBestDriver=Você usa o driver %s, que é o melhor driver disponível atualmente.
    +YouDoNotUseBestDriver=Você usa o driver %s, mas o driver %s é recomendado.
    +NbOfProductIsLowerThanNoPb=Você tem apenas produtos / serviços %s no banco de dados. Isso não requer nenhuma otimização específica.
     SearchOptim=Optimização da pesquisa
    -YouHaveXProductUseSearchOptim=Você possui %s produtos na base de dados. Deve adicionar a constante PRODUCT_DONOTSEARCH_ANYWHERE a 1 em Início->Configuração->Outros, assim limita a pesquisa ao início de sequências de caracteres tornando possível para a base de dados usar índices e você deve obter uma resposta imediata.
    -BrowserIsOK=Você está utilizar o navegador %s. Este navegador não tem quaisquer problemas relacionados com segurança e desempenho.
    -BrowserIsKO=Você está utilizar o navegador %s. Este navegador é conhecido por ter problemas a nível de segurança e desempenho. Recomendamos que utilize o Firefox, Chrome, Opera ou o Safari.
    +YouHaveXProductUseSearchOptim=Você tem produtos %s no banco de dados. Você deve adicionar a constante PRODUCT_DONOTSEARCH_ANYWHERE a 1 em Home-Setup-Other. Limite a pesquisa ao início de strings, o que possibilita que o banco de dados use índices e você deve obter uma resposta imediata.
    +BrowserIsOK=Você está usando o navegador da web %s. Este navegador está ok para segurança e desempenho.
    +BrowserIsKO=Você está usando o navegador da web %s. Este navegador é conhecido por ser uma má escolha para segurança, desempenho e confiabilidade. Recomendamos o uso do Firefox, Chrome, Opera ou Safari.
     XDebugInstalled=XDebug está carregado.
     XCacheInstalled=XCache está carregada.
    -AddRefInList=Exibir a referência do cliente/fornecedor na lista (lista de seleção) e na maioria das hiperligações. Os terceiros aparecerão com o nome "CC12345 - SC45678 - A grande empresa", em vez de apenas "A grande empresa".
    -AskForPreferredShippingMethod=Perguntar pelo Método de Envio preferido para Terceiros
    +AddRefInList=Mostrar ref. De cliente / fornecedor lista de informações (lista de seleção ou caixa de combinação) e a maior parte do hiperlink. <br> Os Terceiros aparecerão com um formato de nome "CC12345 - SC45678 - The Big Company corp." em vez de "The Big Company corp".
    +AddAdressInList=Exibir lista de informações de endereço de cliente / fornecedor (selecione lista ou caixa de combinação). Terceiros aparecerão com um formato de nome "The Big Company corp. - 21 jump street 123456 Cidade grande - EUA" em vez de "The Big Company corp".
    +AskForPreferredShippingMethod=Peça o método de envio preferido para terceiros.
     FieldEdition=Edição do campo %s
     FillThisOnlyIfRequired=Exemplo: +2 (para preencher apenas se existir problemas de desvios de fuso horário)
     GetBarCode=Obter código de barras
     ##### Module password generation
     PasswordGenerationStandard=Devolve uma palavra-passe gerada pelo algoritmo interno Dolibarr: 8 caracteres no mínimo, contendo números e letras minúsculas.
    -PasswordGenerationNone=Não sugerir qualquer palavra-passe gerada. A palavra-passe deve ser introduzida manualmente.
    +PasswordGenerationNone=Não sugira uma senha gerada. A senha deve ser digitada manualmente.
     PasswordGenerationPerso=Retornar uma palavra-passe que esteja de acordo com sua configuração definida.
     SetupPerso=De acordo com a sua configuração
     PasswordPatternDesc=Descrição do padrão da palavra-passe
    @@ -1195,30 +1206,31 @@ UserMailRequired=O email é obrigatório para poder criar um novo utilizador
     HRMSetup=Configuração do módulo "GRH"
     ##### Company setup #####
     CompanySetup=Configuração do módulo "Empresas"
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Opções para geração automática de códigos de cliente / fornecedor
    +AccountCodeManager=Opções para geração automática de códigos contábeis de clientes / fornecedores
     NotificationsDesc=O funcionalidade "Notificações por email" permite que você envie mensagens automáticas para alguns eventos Dolibarr. Os destinatários das notificações podem ser definidos:
     NotificationsDescUser=* por utilizador, um utilizador de cada vez
    -NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
    +NotificationsDescContact=* por terceiros contatos (clientes ou fornecedores), um contato no momento.
     NotificationsDescGlobal=* ou definindo o recipiente de emails global no página de configuração do módulo
    -ModelModules=Documentos modelos
    -DocumentModelOdt=Crie documentos a partir dos modelos OpenDocuments (ficheiros .ODT ou .ODS para o KOffice, OpenOffice, TextEdit,...)
    +ModelModules=Modelos de Documento
    +DocumentModelOdt=Gere documentos de modelos OpenDocument (arquivos .ODT / .ODS do LibreOffice, OpenOffice, KOffice, TextEdit, ...)
     WatermarkOnDraft=Marca d'água no documento rascunho
     JSOnPaimentBill=Ative a funcionalidade para preencher automaticamente as linhas de pagamento no formulário de pagamento
    -CompanyIdProfChecker=Regras sobre IDs profissionais
    +CompanyIdProfChecker=Regras para as Id. Profissionais
     MustBeUnique=Deve ser único?
    -MustBeMandatory=Obrigatório para criar terceiros?
    +MustBeMandatory=Obrigatório para criar terceiros (se número de IVA ou tipo de empresa definido)?
     MustBeInvoiceMandatory=Obrigatório para validar faturas?
     TechnicalServicesProvided=Serviços técnicos fornecidos
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    -WebDavServer=Root URL of %s server : %s
    +WebDAVSetupDesc=Estes são os links para acessar o diretório WebDAV. Ele contém um diretório "público" aberto a qualquer usuário que saiba o URL (se o acesso ao diretório público for permitido) e um diretório "particular" que precise de uma conta / senha de login existente para acessar.
    +WebDavServer=URL raiz do servidor %s: %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Uma hiperligação de exportação para o formato <b>%s</b> está disponivel na seguinte hiperligação: %s
     ##### Invoices #####
     BillsSetup=Configuração do módulo "Faturas"
     BillsNumberingModule=Módulo de numeração de faturas e entregas
     BillsPDFModules=Modelo de documentos de faturas
    +BillsPDFModulesAccordindToInvoiceType=Modelos de documentos de faturas de acordo com o tipo de fatura
     PaymentsPDFModules=Modelos de documentos de pagamento
     CreditNote=Nota de crédito
     CreditNotes=Notas de crédito
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Gerir um login para cada membro
     AdherentMailRequired=O email é obrigatório para criar um novo membro
     MemberSendInformationByMailByDefault=Selecione para enviar email de confirmação aos membros (validação ou nova subscrição), está ativada por defeito
     VisitorCanChooseItsPaymentMode=O visitante pode escolher entre os modos de pagamento disponíveis
    +MEMBER_REMINDER_EMAIL=Ativar o lembrete automático <b> por e-mails </ b> das inscrições expiradas. Nota: O módulo <strong> %s </ strong> deve estar ativado e configurado corretamente para que o lembrete seja enviado.
     ##### LDAP setup #####
     LDAPSetup=Configuração do módulo "LDAP"
     LDAPGlobalParameters=Parâmetros globais
    @@ -1308,7 +1321,7 @@ LDAPUserDn=DN dos utilizadores
     LDAPUserDnExample=DN completo (ex: ou=users,dc=example,dc=com)
     LDAPGroupDn=DN dos grupos
     LDAPGroupDnExample=DN completo (ex: ou=groups,dc=example,dc=com)
    -LDAPServerExample=Endereço do servidor (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/)
    +LDAPServerExample=Endereço do servidor (por exemplo: hospedeiro local, 192.168.0.2, ldaps://ldap.example.com/)
     LDAPServerDnExample=DN completo (ex: dc=example,dc=com)
     LDAPDnSynchroActive=Sincronização de utilizadores e grupos
     LDAPDnSynchroActiveExample=Sincronização LDAP para Dolibarr ou Dolibarr para LDAP
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Sincronização do tipo de membro do teste
     LDAPTestSearch= Testar pesquisa LDAP
     LDAPSynchroOK=Teste de sincronização realizado com sucesso
     LDAPSynchroKO=O teste de sincronização falhou
    -LDAPSynchroKOMayBePermissions=O teste de sincronização falhou. Verifique se a conexão ao servidor está corretamente configurada e que permite atualizações LDAP
    +LDAPSynchroKOMayBePermissions=Falha no teste de sincronização. Verifique se a conexão com o servidor está configurada corretamente e se permite atualizações LDAP
     LDAPTCPConnectOK=Conexão TCP ao servidor LDAP efetuada com sucesso (Servidor=%s, Porta=%s)
     LDAPTCPConnectKO=Falha de conexão TCP ao servidor LDAP (Servidor=%s, Porta=%s)
    -LDAPBindOK=Conexão/Autenticação ao servidor LDAP efetuada com êxito (Servidor=%s, Porta=%s, Admin=%s, Palavra passe=%s)
    -LDAPBindKO=A conexão/autenticação ao servidor LDAP falhou (Servidor=%s, Porta=%s, Administrador=%s, Palavra-passe=%s)
    +LDAPBindOK=Conecte / autentique ao servidor LDAP com êxito (Servidor = %s, Porta = %s, Admin = %s, Senha = %s)
    +LDAPBindKO=Conectar / autenticar ao servidor LDAP falhou (Servidor = %s, Porta = %s, Admin = %s, Senha = %s)
     LDAPSetupForVersion3=Servidor LDAP configurado para a versão 3
     LDAPSetupForVersion2=Servidor LDAP configurado para a versão 2
     LDAPDolibarrMapping=Mapeamento Dolibarr
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Nome de utilizador (samba, activedirectory)
     LDAPFieldLoginSambaExample=Exemplo: sambaccountname
     LDAPFieldFullname=Nome completo
     LDAPFieldFullnameExample=Exemplo: cn
    -LDAPFieldPasswordNotCrypted=Palavra-passe não encriptada
    -LDAPFieldPasswordCrypted=Palavra-passe encriptada
    +LDAPFieldPasswordNotCrypted=Senha não criptografada
    +LDAPFieldPasswordCrypted=Senha criptografada
     LDAPFieldPasswordExample=Exemplo: userPassword
     LDAPFieldCommonNameExample=Exemplo: cn
     LDAPFieldName=Nome
    @@ -1399,7 +1412,7 @@ LDAPFieldSidExample=Exemplo : objectsid
     LDAPFieldEndLastSubscription=Data de fim da subscrição
     LDAPFieldTitle=Cargo
     LDAPFieldTitleExample=Exemplo: title
    -LDAPSetupNotComplete=Configuração LDAP incompleta
    +LDAPSetupNotComplete=Configuração LDAP incompleta (va a outro separador)
     LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Não foi indicado o administrador ou palavra-passe. Os acessos LDAP serão anónimos e no modo só de leitura.
     LDAPDescContact=Esta página permite definir o nome dos atributos da árvore LDAP para cada contacto registado no Dolibarr.
     LDAPDescUsers=Esta página permite definir o nome dos atributos da árvore LDAP para cada utilizador registado no Dolibarr.
    @@ -1409,14 +1422,14 @@ LDAPDescMembersTypes=Esta página permite que você defina o nome dos atributos
     LDAPDescValues=Os valores de exemplo foram construídos para o <b>OpenLDAP</b> com os seguintes esquemas carregados: <b>core.schema, cosine.schema, inetorgperson.schema</b>. Se você utiliza esses valores e o OpenLDAP, então modifique o seu ficheiro de configuração LDAP, <b>slapd.conf</b>, para carregar todos esses esquemas.
     ForANonAnonymousAccess=Para um acesso autentificado
     PerfDolibarr=Relatório de configuração/otimização de desempenho
    -YouMayFindPerfAdviceHere=Nesta página encontrará algumas dicas relacionadas com desempenho.
    -NotInstalled=Não instalado, o servidor não está mais lento por isso.
    +YouMayFindPerfAdviceHere=Esta página fornece algumas verificações ou conselhos relacionados ao desempenho.
    +NotInstalled=Não instalado, portanto, seu servidor não é retardado por isso.
     ApplicativeCache=Cache de aplicativo
    -MemcachedNotAvailable=Não foi encontrada cache de aplicativo. Você pode melhorar o desempenho através da instalação de um servidor de cache Memcached e um módulo capaz de utilizar este servidor de cache.<br>Mais informações em  <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note que muitos fornecedores de hospedagem web não fornece tais servidores de cache.
    +MemcachedNotAvailable=Não foi encontrada nenhuma cache da aplicação. Pode melhorar o desempenho, instalando um servidor de cache "Memcached" e um módulo que possa utilizar este servidor de cache.<br>Mais informação em  <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note que muitos provedores de hospedagem da Web não fornecem tais servidores de cache.
     MemcachedModuleAvailableButNotSetup=Encontrado módulo memcached para cache de aplicativo, mas a configuração deste não está completa.
     MemcachedAvailableAndSetup=O módulo memcached dedicado está ativo.
     OPCodeCache=Cache OPCode
    -NoOPCodeCacheFound=Nenhuma cache OPCode encontrada. Pode ser que você utilize outro tipo de cache OPCode sem ser XCache ou eAccelerator, pode ser que você não tenha cache OPCode.
    +NoOPCodeCacheFound=Nenhum cache OPCode encontrado. Talvez você esteja usando um cache OPCode diferente de XCache ou eAccelerator (bom), ou talvez você não tenha cache OPCode (muito ruim).
     HTTPCacheStaticResources=Cache HTTP para recursos estáticos (css, img, javascript)
     FilesOfTypeCached=Ficheiros do tipo %s são guardados na cache do servidor HTTP
     FilesOfTypeNotCached=Ficheiros do tipo %s não são guardados na cache do servidor HTTP
    @@ -1428,21 +1441,22 @@ CacheByClient=Cache pelo navegador
     CompressionOfResources=Compressão das respostas HTTP
     CompressionOfResourcesDesc=Por exemplo, usando a diretiva Apache "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=A detecção automática não é possível com os navegadores atuais
    -DefaultValuesDesc=Você pode definir / forçar aqui o valor padrão que deseja obter quando criar um novo registro e / ou defautar filtros ou ordem de classificação quando o registro da lista.
    -DefaultCreateForm=Valores padrão (nos formulários a serem criados)
    +DefaultValuesDesc=Aqui você pode definir / forçar o valor padrão que deseja ter ao criar um novo registro e / ou filtros padrão ou ordem de classificação quando a lista é registrada.
    +DefaultCreateForm=Valores padrão (para criar em formulários)
     DefaultSearchFilters=Filtros de pesquisa predefinidos
     DefaultSortOrder=Pedidos de classificação padrão
     DefaultFocus=Campos de foco predefinidos
    +DefaultMandatory=Campos Obrigatórios
     ##### Products #####
     ProductSetup=Configuração do módulo "Produtos"
     ServiceSetup=Configuração do módulo "Serviços"
     ProductServiceSetup=Configuração do módulo "Produtos e Serviços"
     NumberOfProductShowInSelect=Nº máximo de produtos apresentados em listas (0=sem limite)
    -ViewProductDescInFormAbility=Visualização das descrições dos produtos nos formulários (de outra forma serão apresentados em popups)
    +ViewProductDescInFormAbility=Exibir descrições de produtos em formulários (caso contrário, como uma dica pop-up)
     MergePropalProductCard=Ative no separador "Ficheiros Anexados" do produto/serviço uma opção para unir o documento em PDF ao orçamento em PDF, se o produto/serviço estiver no orçamento
    -ViewProductDescInThirdpartyLanguageAbility=Visualização das descrições de produtos na língua do terceiro
    -UseSearchToSelectProductTooltip=Se você tiver grande número de produtos (> 100 000), você pode aumentar a velocidade, definindo a constante PRODUCT_DONOTSEARCH_ANYWHERE para 1 em Configuração -> Outros. A pesquisa será então limitada ao início da sequência de caracteres.
    -UseSearchToSelectProduct=Aguardar até que seja preenchido parte do campo antes de carregar o conteúdo da lista de produtos (isto pode aumentar o desempenho se você tiver um grande número de produtos, mas é menos conveniente)
    +ViewProductDescInThirdpartyLanguageAbility=Exibir descrições de produtos no idioma do terceiro
    +UseSearchToSelectProductTooltip=Além disso, se você tiver um grande número de produtos (> 100 000), poderá aumentar a velocidade definindo PRODUCT_DONOTSEARCH_ANYWHERE como 1 em Setup-> Other. A pesquisa será limitada ao início da string.
    +UseSearchToSelectProduct=Espere até pressionar uma tecla antes de carregar o conteúdo da lista de combinação de produtos (isso pode aumentar o desempenho se você tiver um grande número de produtos, mas for menos conveniente)
     SetDefaultBarcodeTypeProducts=Tipo de código de barras predefinido para produtos
     SetDefaultBarcodeTypeThirdParties=Tipo de código de barras predefinido para terceiros
     UseUnits=Defina uma unidade de medida para a "Quantidade" durante a edição das linhas de uma encomenda, orçamento ou fatura
    @@ -1458,7 +1472,7 @@ SyslogFilename=Nome e caminho do ficheiro
     YouCanUseDOL_DATA_ROOT=Pode utilizar DOL_DATA_ROOT/dolibarr.log para um ficheiro log no diretório de "documentos" do Dolibarr.
     ErrorUnknownSyslogConstant=A constante %s não é uma constante Syslog conhecida
     OnlyWindowsLOG_USER=O Windows apenas suporta LOG_USER
    -CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug)
    +CompressSyslogs=Compactação e backup de arquivos de log de depuração (gerados pelo módulo Log para depuração)
     SyslogFileNumberOfSaves=Backups de registos
     ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure o trabalho agendado de limpeza para definir a frequência do registo da cópia de segurança
     ##### Donations #####
    @@ -1503,7 +1517,7 @@ SendingsSetup=Configuração do módulo "Envios"
     SendingsReceiptModel=Modelo do recibo de expedição
     SendingsNumberingModules=Envios módulos numerados
     SendingsAbility=Suporte para guias de transporte para entregas a clientes
    -NoNeedForDeliveryReceipts=Na maioria dos casos, as guias de transporte são usadas tanto como folhas para entregas do cliente (lista de produtos para enviar), como folhas que são recebidas e assinadas pelo cliente. Deste modo, os recibos de entregas de produtos são uma funcionalidade duplicada e raramente é ativada.
    +NoNeedForDeliveryReceipts=Na maioria dos casos, as folhas de remessa são usadas como folhas para entregas ao cliente (lista de produtos a serem enviados) e folhas recebidas e assinadas pelo cliente. Portanto, o recibo de entrega do produto é um recurso duplicado e raramente é ativado.
     FreeLegalTextOnShippings=Texto livre nas expedições
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Módulo de numeração de notas de entrega de produtos
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Editor avançado
     ActivateFCKeditor=Ativar editor avançado para:
     FCKeditorForCompany=Criação/Edição WYSIWIG da descrição e notas de elementos (exceto produtos/services)
     FCKeditorForProduct=Criação/Edição WYSIWIG da descrição e notas dos produtos/serviços
    -FCKeditorForProductDetails=Edição/criação WYSIWIG das linhas dos detalhes dos produtos para todas as entidades (orçamentos, encomendas, faturas, etc.). <font class="warning">Aviso: utilizar esta opção para este caso não é muito recomendado, porque esta pode criar problemas com os carateres especiais e a formatação da página quando criar ficheiros em PDF.</font>
    +FCKeditorForProductDetails=WYSIWIG criação / edição de produtos detalha linhas para todas as entidades (propostas, pedidos, faturas, etc ...). <font class = "warning"> Aviso: O uso dessa opção para este caso não é recomendado, pois pode criar problemas com caracteres especiais e formatação de página ao criar arquivos PDF. </ font>
     FCKeditorForMailing= Criação/Edição WYSIWIG para emails em massa (Ferramentas->eMailing)
     FCKeditorForUserSignature=Criação/Edição WYSIWIG da assinatura do utilizador
     FCKeditorForMail=Criação/Edição WYSIWIG para todo o correio (exceto Ferramentas->eMailling)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=A conexão foi estabelecida, mas a base de dados não parece ser de OSCommerce (A chave %s não foi encontrada na tabela %s).
    -OSCommerceTestOk=A conexão ao servidor '%s', à base de dados '%s' através do utilizador '%s' foi efetuada com sucesso.
    -OSCommerceTestKo1=A conexão ao servidor '%s' foi efetuada com sucesso, no entanto não foi possível comunicar com a base de dados '%s'.
    +OSCommerceErrorConnectOkButWrongDatabase=A conexão foi bem-sucedida, mas o banco de dados não parece ser um banco de dados OSCommerce (Chave %s não encontrada na tabela %s).
    +OSCommerceTestOk=Conexão ao servidor '%s' no banco de dados '%s' com o usuário '%s' obtido com sucesso.
    +OSCommerceTestKo1=A conexão com o servidor '%s' foi bem-sucedida, mas o banco de dados '%s' não pôde ser alcançado.
     OSCommerceTestKo2=A conexão ao servidor '%s' através do utilizador '%s'  não foi possível.
     ##### Stock #####
     StockSetup=Configuração do módulo Stock
    -IfYouUsePointOfSaleCheckModule=Se você utiliza um módulo de Ponto de Venda (o módulo POS/PDV fornecido por defeito ou outro módulo externo), esta configuração pode ser ignorada pelo seu módulo de Ponto de Venda. A maioria dos módulos de pontos de venda são desenhados para criar imediatamente uma fatura e diminuir o stock por defeito, qualquer que seja a opção aqui. Se você precisar ou não ter uma diminuição de stock ao registar uma venda no seu ponto de venda, verifique também a configuração do seu módulo POS/PDV.
    +IfYouUsePointOfSaleCheckModule=Se você usar o módulo Point of Sale (POS) fornecido por padrão ou um módulo externo, essa configuração pode ser ignorada pelo seu módulo POS. A maioria dos módulos PDV é projetada por padrão para criar uma fatura imediatamente e diminuir o estoque, independentemente das opções aqui. Portanto, se você precisar ou não de uma redução de estoque ao registrar uma venda no seu PDV, verifique também a configuração do seu módulo PDV.
     ##### Menu #####
     MenuDeleted=Menu eliminado
     Menus=Menus
    @@ -1542,13 +1556,13 @@ DetailMenuHandler=Gestor de menus onde será exibido o novo menu
     DetailMenuModule=Nome do módulo, no caso da entrada do menu ser resultante de um módulo
     DetailType=Tipo de menu (superior ou esquerdo)
     DetailTitre=Etiqueta do menu ou código da etiqueta para tradução
    -DetailUrl=URL da página para a qual o menu aponta (URL absoluto or hiperligação externa com http://)
    +DetailUrl=URL da página para a qual o menu aponta (Hiperligação do URL fixa ou hiperligação externa com http://)
     DetailEnabled=Condição para mostrar, ou não, a entrada
     DetailRight=Condição para mostrar menus cinza não autorizados
     DetailLangs=Nome do ficheiro. lang para a tradução de códigos de etiquetas
     DetailUser=Interno / Externo / Todos
     Target=Alvo
    -DetailTarget=Alvo para hiperligações (_blank para abrir numa nova janela)
    +DetailTarget=Alvo para links (o topo do _blank abre uma nova janela)
     DetailLevel=Nivel (-1:menu superior, 0:principal, >0 menu e submenu)
     ModifMenu=Modificação do menu
     DeleteMenu=Eliminar entrada de menu
    @@ -1557,13 +1571,13 @@ FailedToInitializeMenu=Falha ao inicializar o menu
     ##### Tax #####
     TaxSetup=Configuração do módulo "Impostos, impostos sociais ou fiscais e dividendos"
     OptionVatMode=Aplicação do IVA
    -OptionVATDefault=Standard basis
    +OptionVATDefault=Base padrão
     OptionVATDebitOption=Regime de competência
     OptionVatDefaultDesc=O IVA é aplicado:<br>- ao envio dos bens (é utilizada a data da fatura)<br>- sobre o pagamento dos serviços
     OptionVatDebitOptionDesc=O IVA é aplicado:<br>- ao envio dos bens (é utilizada a data da fatura)<br>- sobre a faturação (débito) dos serviços
    -OptionPaymentForProductAndServices=Cash basis for products and services
    +OptionPaymentForProductAndServices=Base de caixa para produtos e serviços
     OptionPaymentForProductAndServicesDesc=IVA é devido: <br> - em pagamento de mercadorias <br>- em pagamentos de serviços
    -SummaryOfVatExigibilityUsedByDefault=Tempo de exigibilidade do IVA prédefinido, de acordo com a opção escolhida:
    +SummaryOfVatExigibilityUsedByDefault=Horário de elegibilidade do IVA por padrão de acordo com a opção escolhida:
     OnDelivery=Na entrega
     OnPayment=No pagamento
     OnInvoice=Na fatura
    @@ -1572,7 +1586,7 @@ SupposedToBeInvoiceDate=Data da fatura usada
     Buy=Comprar
     Sell=Vender
     InvoiceDateUsed=Data da fatura usada
    -YourCompanyDoesNotUseVAT=Sua empresa foi configurada para não usar o IVA (Home - Configuração - Empresa/Organização), pelo que não há opções relacionadas com o IVA a configurar.
    +YourCompanyDoesNotUseVAT=A sua empresa foi definida para não utilizar IVA (Início->Configuração->Empresa/Organização), assim, não há opções relacionadas com o IVA para configurar.
     AccountancyCode=Código de Contabilidade
     AccountancyCodeSell=Código de contabilidade de vendas
     AccountancyCodeBuy=Código de contabilidade de compras
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Código de contabilidade de compras
     AgendaSetup=Configuração do módulo "Eventos e agenda"
     PasswordTogetVCalExport=Chave de autorização para exportação do link vcal.
     PastDelayVCalExport=Não exportar evento com mais de
    -AGENDA_USE_EVENT_TYPE=Usar tipos de eventos (gerido através do menu Configuração -> Dicionário -> Tipo de eventos da agenda)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Definir este valor automaticamente como o valor predefinido para o campo tipo de evento, no formulário de criação de evento
    -AGENDA_DEFAULT_FILTER_TYPE=Definir automaticamente este tipo de evento no filtro de pesquisa da vista agenda
    -AGENDA_DEFAULT_FILTER_STATUS=Definido automaticamente este estado para eventos no filtro de pesquisa da vista agenda
    +AGENDA_USE_EVENT_TYPE=Use tipos de eventos (gerenciados no menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Definir automaticamente este valor padrão para o tipo de evento no formulário de criação de evento
    +AGENDA_DEFAULT_FILTER_TYPE=Definir automaticamente esse tipo de evento no filtro de pesquisa da visualização da agenda
    +AGENDA_DEFAULT_FILTER_STATUS=Definir automaticamente este status para eventos no filtro de pesquisa da visualização da agenda
     AGENDA_DEFAULT_VIEW=Qual é o separador que você deseja abrir por defeito quando seleciona o menu "Agenda"
     AGENDA_REMINDER_EMAIL=Ativar lembrete de eventos <b>por e-mails</b> (lembrar opção / atraso pode ser definido em cada evento). Nota: O módulo <strong>%s</strong>deve estar habilitado e configurado corretamente para que o lembrete seja enviado na freqüência correta.
    -AGENDA_REMINDER_BROWSER=Ativar lembrete de eventos <b>no navegador de usuários</b> (quando a data do evento é atingida, cada usuário pode recusar isso a partir da pergunta de confirmação do navegador)
    +AGENDA_REMINDER_BROWSER=Ativar lembrete de evento <b> no navegador do usuário </ b> (quando a data do evento é atingida, cada usuário pode recusar isso da pergunta de confirmação do navegador)
     AGENDA_REMINDER_BROWSER_SOUND=Ativar notificação sonora
     AGENDA_SHOW_LINKED_OBJECT=Mostrar o objeto associado na vista de agenda
     ##### Clicktodial #####
     ClickToDialSetup=Configuração do módulo "Click To Dial"
     ClickToDialUrlDesc=Uma chamada é efetuada quando o icon é clicado. No URL pode usar as tags:<br><b>__PHONETO__</b> que será substituída pelo número do destinatário<br><b>__PHONEFROM__</b> que será substituída pelo número do remetente<br><b>__LOGIN__</b> que será substituída pelo nome de utilizador da sua conta ClickToDial (definido no seu cartão de utilizador)<br><b>__PASS__</b>  que será substituída pela palavra-passe da sua conta ClickToDial (definida no seu cartão de utilizador).
    -ClickToDialDesc=Este módulo torna os números de telefone clicáveis. Um clique neste ícone fará com que o seu telefone ligue para o número de telefone. Isto pode ser usado para chamar um sistema de call-center a partir do Dolibarr que por sua vez pode ligar ao número de telefone num sistema SIP, por exemplo.
    +ClickToDialDesc=Este módulo permite tornar os números de telefone clicáveis. Um clique neste ícone fará com que seu telefone ligue para o número de telefone. Isso pode ser usado para chamar um sistema de call center da Dolibarr que pode ligar para o número de telefone em um sistema SIP, por exemplo.
     ClickToDialUseTelLink=Usar apenas um link "tel:" em números de telefone
    -ClickToDialUseTelLinkDesc=Utilize este método se os seus utilizadores possuem um telemóvel ou uma interface de software, instalado no mesmo computador que o navegador, que permita efetuar uma chamada quando links que começam com "tel:" são clicados. Se você precisa de uma solução de servidor (sem necessidade de instalação de software local), você deve definir este como "Não" e preencher o próximo campo.
    +ClickToDialUseTelLinkDesc=Use esse método se os usuários tiverem um softphone ou uma interface de software instalada no mesmo computador que o navegador e chamados quando você clicar em um link em seu navegador que comece com "tel:". Se você precisar de uma solução de servidor completa (sem necessidade de instalação de software local), deverá definir isso como "Não" e preencher o próximo campo.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Pontos de vendas
     CashDeskSetup=Configuração do módulo "Ponto de vendas"
    -CashDeskThirdPartyForSell=Terceiro genérico a usar para as vendas
    +CashDeskThirdPartyForSell=Terceiro genérico padrão a ser usado para vendas
     CashDeskBankAccountForSell=Conta a ser usada para receber pagamentos em dinheiro
     CashDeskBankAccountForCheque= Conta a ser usada para receber pagamentos através de cheques
     CashDeskBankAccountForCB= Conta a ser usada para receber pagamentos por cartões de crédito
    -CashDeskDoNotDecreaseStock=Decréscimo de stock quando é efetuada uma venda a partir do Ponto de Venda desativado  (se "não", o decréscimo do stock e feito após cada venda, para qualquer opção definida no módulo "Stock")
    +CashDeskDoNotDecreaseStock=Desativar a redução de estoque quando uma venda é feita a partir do ponto de venda (se "não", a redução de estoque é feita para cada venda feita a partir do PDV, independentemente da opção definida no módulo Estoque).
     CashDeskIdWareHouse=Forçar e restringir o armazém a usar para o decréscimo de stock
    -StockDecreaseForPointOfSaleDisabled=Decréscimo de stock a partir do Ponto de Venda desativado
    +StockDecreaseForPointOfSaleDisabled=Diminuição de estoque do ponto de venda desativado
     StockDecreaseForPointOfSaleDisabledbyBatch=Decréscimo de stock a partir do Ponto de Venda não é compatível com a gestão de lotes
    -CashDeskYouDidNotDisableStockDecease=Não desativou o decréscimo de stock para quando é efetuada uma venda a partir do Ponto de Venda, como tal é necessário ter um armazém definido.
    +CashDeskYouDidNotDisableStockDecease=Você não desativou a redução de estoque ao fazer uma venda no Ponto de venda. Por isso, é necessário um depósito.
     ##### Bookmark #####
     BookmarkSetup=Configuração do módulo "Marcadores"
    -BookmarkDesc=Este módulo permite gerir os marcadores. Também permite adicionar qualquer página do Dolibarr ou links externos ao menu de acesso rápido na esquerda.
    +BookmarkDesc=Este módulo permite gerenciar marcadores. Você também pode adicionar atalhos para quaisquer páginas Dolibarr ou sites externos no seu menu à esquerda.
     NbOfBoomarkToShow=Número máximo de marcadores a mostrar no menu esquerdo
     ##### WebServices #####
     WebServicesSetup=Configuração do módulo "Webservices"
    @@ -1637,8 +1651,8 @@ ChequeReceiptsNumberingModule=Módulo de numeração para recibos de pagamento e
     MultiCompanySetup=Configuração do módulo "Multi-empresa"
     ##### Suppliers #####
     SuppliersSetup=Configuração do módulo "Fornecedor"
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    -SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
    +SuppliersCommandModel=Modelo completo do pedido de compra (logotipo ...)
    +SuppliersInvoiceModel=Modelo completo de fatura de fornecedor (logotipo ...)
     SuppliersInvoiceNumberingModel=Modelos de numeração de faturas de fornecedores
     IfSetToYesDontForgetPermission=Se definido a "sim", não se esqueça de atribuir permissões a utilizadores ou grupos de utilizadores que possam efetuar a segunda aprovação
     ##### GeoIPMaxmind #####
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Configuração do módulo "Projetos"
     ProjectsModelModule=Modelo de documento para relatórios de projeto
     TasksNumberingModules=Módulo de numeração de tarefas
     TaskModelModule=Modelo de documento dos relatórios de tarefasl
    -UseSearchToSelectProject=Espere antes de presar a chave que carregue o conteúdo da lista de combinação de projetos (Isso pode aumentar o desempenho se você tiver um grande número de projetos, mas é menos conveniente)
    +UseSearchToSelectProject=Aguarde até que uma tecla seja pressionada antes de carregar o conteúdo da lista de combinação do projeto. <br> Isso pode melhorar o desempenho se você tiver um grande número de projetos, mas é menos conveniente.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Períodos de contabilidade
    @@ -1675,7 +1689,7 @@ NoAmbiCaracAutoGeneration=Em criação automática de referências não utilize
     SalariesSetup=Configuração do módulo "Salários"
     SortOrder=Ordenação
     Format=Formato
    -TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers and vendors payment type
    +TypePaymentDesc=0: tipo de pagamento do cliente, 1: tipo de pagamento do fornecedor, 2: tipo de pagamento de clientes e fornecedores
     IncludePath=Caminho para o dirétorio "include" (definido na variável %s)
     ExpenseReportsSetup=Configuração do módulo "Relatórios de Despesas"
     TemplatePDFExpenseReports=Modelos de documentos para a produção de relatórios de despesa 
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Poderá encontrar as opç
     ListOfNotificationsPerUser=Lista de notificações por utilizador*
     ListOfNotificationsPerUserOrContact=Lista de notificações por utilizador* ou por contact**
     ListOfFixedNotifications=Lista de notificações fixas
    -GoOntoUserCardToAddMore=Vá ao separador "Notificações" de um utilizador para adicionar ou remover notificações
    +GoOntoUserCardToAddMore=Vá até a guia "Notificações" de um usuário para adicionar ou remover notificações para usuários
     GoOntoContactCardToAddMore=Vá ao separador "Notificações" de um terceiro para adicionar ou remover as notificações de contactos/endereços
     Threshold=Limite
     BackupDumpWizard=Assistente para construir o ficheiro dump de backup da base de dados
    @@ -1697,7 +1711,8 @@ InstallModuleFromWebHasBeenDisabledByFile=Instalação de um módulo externo da
     ConfFileMustContainCustom=Instalar ou construir um módulo externo do aplicativo precisa salvar os arquivos do módulo no diretório. <strong>%s</strong>Para que este diretório seja processado pelo Dolibarr, você deve configurar seu <strong>conf/conf.php</strong> para adicionar as 2 linhas diretivas:<br><strong> $dolibarr_main_url_root_alt ='/ custom';</strong><br><strong> $dolibarr_main_document_root_alt='%s/ custom';</strong>
     HighlightLinesOnMouseHover=Realçar as linhas da tabela quando o rato passar sobre elas
     HighlightLinesColor=Realçar a cor da linha quando o rato passa por cima (manter vazio para não realçar)
    -TextTitleColor=Text color of Page title
    +HighlightLinesChecked=Destaque a cor da linha quando esta estiver marcada (mantenha vazio para não destacar)
    +TextTitleColor=Cor do texto do título da página
     LinkColor=Cor dos links
     PressF5AfterChangingThis=Pressione CTRL+F5 no teclado ou limpe a cache do navegador depois de mudar este valor de forma a gravar as alterações
     NotSupportedByAllThemes=Funciona com os temas predefinidos, pode não ser suportado por temas externos
    @@ -1706,22 +1721,22 @@ TopMenuBackgroundColor=Cor de fundo para o menu no topo
     TopMenuDisableImages=Ocultar imagens no menu do topo
     LeftMenuBackgroundColor=Cor de fundo para o menu à esquerda
     BackgroundTableTitleColor=A cor do fundo para a linha de título das tabelas
    -BackgroundTableTitleTextColor=Text color for Table title line
    +BackgroundTableTitleTextColor=Cor do texto para a linha de título da tabela
     BackgroundTableLineOddColor=A cor do fundo para as linhas ímpares da tabela
     BackgroundTableLineEvenColor=Cor de fundo para linhas pares da tabela
     MinimumNoticePeriod=Período mínimo de notificação (o seu pedido de licença deve ser feito antes deste período)
     NbAddedAutomatically=Número de dias adicionados ao contadores dos utilizadores (automaticamente) cada mês
     EnterAnyCode=Este campo contém uma referência para identificar a linha. Digite qualquer valor sem caracteres especiais.
    -UnicodeCurrency=Digite aqui entre parêntesis retos, a lista  de bytes que representam o símbolo da moeda. Por exemplo: para o dólar americano $, digite [36] - para o real braisleiro, R$ [82,36] - para o euro €, digite [8364]
    +UnicodeCurrency=Entre aqui entre chaves, lista de números de bytes que representam o símbolo da moeda. Por exemplo: para $, insira [36] - para o brasil real R $ [82,36] - para €, insira [8364]
     ColorFormat=As cores RGB está no formato HEX, por exemplo: FF0000
     PositionIntoComboList=Posição da linha nas listas de seleção
     SellTaxRate=Taxa de imposto de venda
     RecuperableOnly=Sim para IVA "Não Percebido, mas Recuperável" dedicado a algum regiões ultramarinas da França. Mantenha o valor de "Não" em todos os outros casos.\n\n
     UrlTrackingDesc=Se a transportadora oferecer uma página da Internet para verificar o estado da sua encomenda, pode introduzi-lo aqui. Você pode usar a chave {TRACKID} nos  parâmetros do URL para que o sistema possa substituí-lo na ficha de expedição.
    -OpportunityPercent=Quando você cria uma oportunidade, você vai definir um valor estimado de projeto/lead. De acordo com o estado da oportunidade, este montante poderá ser multiplicado por esta taxa para avaliar o montante global que todas as suas oportunidades pode gerar. O valor é percentual (entre 0 e 100).
    +OpportunityPercent=Quando você cria um lead, você define uma quantidade estimada de projeto / lead. De acordo com o status do lead, esse valor pode ser multiplicado por essa taxa para avaliar o valor global que todas as suas oportunidades podem gerar. O valor é por cento (entre 0 e 100).
     TemplateForElement=Este registo modelo é dedicado a qual elemento
     TypeOfTemplate=Tipo de modelo
    -TemplateIsVisibleByOwnerOnly=Modelo é visível apenas pelo dono
    +TemplateIsVisibleByOwnerOnly=O modelo é visível apenas para o proprietário
     VisibleEverywhere=Visível em todo lado
     VisibleNowhere=Visível em nenhum lado
     FixTZ=Corrigir Fuso Horário
    @@ -1734,23 +1749,23 @@ MailToSendOrder=Encomendas de clientes
     MailToSendInvoice=Faturas a clientes
     MailToSendShipment=Envios
     MailToSendIntervention=Intervenções
    -MailToSendSupplierRequestForQuotation=Quotation request
    +MailToSendSupplierRequestForQuotation=Solicitação de cotação
     MailToSendSupplierOrder=Ordens de compra
     MailToSendSupplierInvoice=Faturas do fornecedor
     MailToSendContract=Contratos
     MailToThirdparty=Terceiros
     MailToMember=Membros
     MailToUser=Utilizadores
    -MailToProject=Projects page
    +MailToProject=Página de projetos
     ByDefaultInList=Mostrar por padrão na vista de lista
     YouUseLastStableVersion=Você possui a última versão estável
     TitleExampleForMajorRelease=Exemplo de mensagem que você pode usar para anunciar esta versão principal (sinta-se livre para usá-la nas suas páginas da Internet)
     TitleExampleForMaintenanceRelease=Exemplo de mensagem que você pode usar para anunciar esta versão de manutenção (sinta-se livre para usá-la nas suas páginas da Internet)
     ExampleOfNewsMessageForMajorRelease=O Dolibarr ERP e CRM %s está disponível. A versão %s é um grande lançamento com várias funcionalidades novas. Você pode transferi-lo a partir da área de downloads do portal https://www.dolibarr.org (subdiretório: versões estáveis). Você pode ler o <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> para consultar a lista completa de alterações.
    -ExampleOfNewsMessageForMaintenanceRelease=O Dolibarr ERP e CRM %s está disponível. A versão %s é uma versão de manutenção, por isso contém apenas correções de bugs. Recomendamos que atualize para este. Como com qualquer versão de manutenção, não há novas funcionalidades, nem foi mudada a estrutura de dados presente nesta versão. Você pode transferi-lo a partir da área de downloads da página https://www.dolibarr.org (subdiretório: versões estáveis). Você pode consultar <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> para a lista completa de alterações.
    -MultiPriceRuleDesc=Quando a opção "Vários níveis de preços por produto / serviço" está ativada, você pode definir diferentes preços (um por nível de preço) para cada produto. Para economizar tempo, você pode inserir aqui uma regra para que o preço de cada nível seja calculado automaticamente de acordo com o preço do primeiro nível, então você terá que inserir apenas o preço do primeiro nível em cada produto. Esta página está aqui para poupar tempo e pode ser útil somente se seus preços para cada nível forem relativos ao primeiro nível. Você pode ignorar esta página na maioria dos casos.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=Quando a opção "Vários níveis de preços por produto / serviço" está ativada, você pode definir preços diferentes (um por nível de preço) para cada produto. Para economizar seu tempo, aqui você pode inserir uma regra para ter um preço para cada nível autocalculado de acordo com o preço do primeiro nível, então você terá que inserir apenas um preço para o primeiro nível em cada produto. Esta página está aqui para economizar tempo e pode ser útil somente se os preços de cada nível forem relativos ao primeiro nível. Você pode ignorar esta página na maioria dos casos.
     ModelModulesProduct=Modelos para documentos de produto
    -ToGenerateCodeDefineAutomaticRuleFirst=Para ser possível criar códigos automaticamente, você deve primeiro definir um gestor para auto definir o número de código de barras.
    +ToGenerateCodeDefineAutomaticRuleFirst=Para gerar códigos automaticamente, você deve primeiro definir um gerente para definir automaticamente o número do código de barras.
     SeeSubstitutionVars=Veja a nota * para uma lista de possíveis variáveis ​​de substituição
     SeeChangeLog=Consulte o arquivo ChangeLog (somente em inglês)
     AllPublishers=Todos os editores
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Adicionar outras páginas ou serviços
     AddModels=Adicionar modelos de documento ou numeração
     AddSubstitutions=Adicionar substituições de chaves
     DetectionNotPossible=Deteção não é possível
    -UrlToGetKeyToUseAPIs=Url para obter token para usar API (uma vez que o token foi recebido é salvo na tabela de usuário do banco de dados e deve ser fornecido em cada chamada de API)
    +UrlToGetKeyToUseAPIs=Url para obter o token para usar a API (uma vez que o token foi recebido, ele é salvo na tabela do usuário do banco de dados e deve ser fornecido em cada chamada da API)
     ListOfAvailableAPIs=Lista de APIs disponíveis
    -activateModuleDependNotSatisfied=O módulo "%s" depende do módulo "%s" que está em falta, então o módulo "%1$s" poderá não funcionar corretamente. Instale o módulo "%2$s" ou desabilite o módulo "%1$s"
    -CommandIsNotInsideAllowedCommands=O comando que você tenta executar não está dentro da lista de comandos permitidos definidos no parâmetro <strong>$dolibarr_main_restrict_os_commands</strong> no arquivo <strong>conf.php</strong>.
    +activateModuleDependNotSatisfied=O módulo "%s" depende do módulo "%s", que está faltando, então o módulo "%1$s" pode não funcionar corretamente. Por favor, instale o módulo "%2$s" ou desabilite o módulo "%1$s" se quiser estar a salvo de qualquer surpresa
    +CommandIsNotInsideAllowedCommands=O comando que você está tentando executar não está na lista de comandos permitidos definidos no parâmetro <strong> $ dolibarr_main_restrict_os_commands </ strong> no arquivo <strong> conf.php </ strong>.
     LandingPage=Página Inicial
    -SamePriceAlsoForSharedCompanies=Se utiliza a opção multi-empresa, com a escolha de "Preço único", o preço será igual em todas as empresas, se o produto for partilhado entre as empresas
    +SamePriceAlsoForSharedCompanies=Se você usar um módulo multicompanhia, com a opção "Preço único", o preço também será o mesmo para todas as empresas se os produtos forem compartilhados entre os ambientes
     ModuleEnabledAdminMustCheckRights=O módulo foi ativado. As permissões para o(s) módulo(s) ativado(s) foram adicionadas apenas aos utilizadores administradores. Talvez seja necessário conceder permissões para outros utilizadores ou grupos manualmente.
    -UserHasNoPermissions=Este utilizador não tem permissões definidas
    -TypeCdr=Use "Nenhum" se a data do prazo de pagamento for a data da fatura mais um delta em dias (o delta é o campo "Nb de dias") <br>Use "No final do mês", se, após o delta, a data deve ser aumentada para alcançar o fim de mês (+ opcional "Offset" em dias)<br> Use "Current / Next" para que a data do prazo de pagamento seja o primeiro Nth do mês (N é armazenado no campo "Nb de dias")
    +UserHasNoPermissions=Este usuário não tem permissões definidas
    +TypeCdr=Use "Nenhum" se a data do prazo de pagamento for a data da fatura mais um delta em dias (delta é o campo "%s") <br> Use "No final do mês", se, após o delta, a data precisar ser aumentada para alcançar o final do mês (+ um opcional "%s" em dias) <br> Use "Atual / Próximo" para que a data de vencimento do pagamento seja o primeiro N do mês após delta (delta é campo "%s", N é armazenado no campo "%s")
     BaseCurrency=Moeda de referência da empresa (vá à configuração da empresa para alterar)
    -WarningNoteModuleInvoiceForFrenchLaw=Este módulo %s está de acordo com as leis francesas (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=Este módulo %s está de acordo com as leis francesas (Loi Finance 2016) porque o módulo Registos Não Reversíveis é ativado automaticamente.
    -WarningInstallationMayBecomeNotCompliantWithLaw=Você tenta instalar o módulo %sque é um módulo externo. A ativação de um módulo externo significa que você confia na editora do módulo e tem certeza de que este módulo não altera negativamente o comportamento do seu aplicativo e está em conformidade com as leis do seu país (%s). Se o módulo traz uma característica não legal, você se torna responsável pelo uso de um software não legal.
    +WarningNoteModuleInvoiceForFrenchLaw=Este módulo %s está em conformidade com as leis francesas (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=Este módulo %s está em conformidade com as leis francesas (Loi Finance 2016) porque o módulo Non Reversible Logs é ativado automaticamente.
    +WarningInstallationMayBecomeNotCompliantWithLaw=Você está tentando instalar o módulo %s que é um módulo externo. Ativar um módulo externo significa que você confia no editor desse módulo e que tem certeza de que este módulo não afeta negativamente o comportamento do seu aplicativo e está em conformidade com as leis do seu país (%s). Se o módulo introduzir um recurso ilegal, você se torna responsável pelo uso de software ilegal.
     MAIN_PDF_MARGIN_LEFT=Margem esquerda do PDF
     MAIN_PDF_MARGIN_RIGHT=Margem direita do PDF
     MAIN_PDF_MARGIN_TOP=Margem superior do PDF
     MAIN_PDF_MARGIN_BOTTOM=Margem inferior do PDF
    +NothingToSetup=Não há nenhuma configuração específica para este módulo.
     SetToYesIfGroupIsComputationOfOtherGroups=Defina isto como "sim" se este grupo for uma computação de outros grupos
    -EnterCalculationRuleIfPreviousFieldIsYes=Insira a regra de cálculo no caso do campo anterior ter sido definido como "Sim" (por exemplo, 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Insira a regra de cálculo se o campo anterior foi definido como Sim (por exemplo, 'CODEGRP1 + CODEGRP2')
     SeveralLangugeVariatFound=Várias variantes de idiomas encontradas
    -COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
    -COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +COMPANY_AQUARIUM_REMOVE_SPECIAL=Remover caracteres especiais
    +COMPANY_AQUARIUM_CLEAN_REGEX=Filtro Regex para limpar valor (COMPANY_AQUARIUM_CLEAN_REGEX)
    +GDPRContact=Responsável pela proteção de dados (DPO, Privacidade de dados ou contato GDPR)
    +GDPRContactDesc=Se você armazenar dados sobre empresas / cidadãos europeus, você poderá armazenar o contato responsável pelo regulamento geral de proteção de dados aqui
    +HelpOnTooltip=Texto de ajuda para mostrar na dica de ferramenta
    +HelpOnTooltipDesc=Coloque texto ou uma chave de conversão aqui para o texto ser exibido em uma dica de ferramenta quando esse campo aparecer em um formulário
    +YouCanDeleteFileOnServerWith=Você pode excluir este arquivo no servidor com a Linha de Comando: <br> %s
    +ChartLoaded=Gráfico de conta carregado
    +SocialNetworkSetup=Configuração do módulo Redes Sociais
    +EnableFeatureFor=Ativar recursos para <strong> %s </ strong>
    +VATIsUsedIsOff=Nota: A opção de utilizar o Imposto sobre vendas ou o IVA foi definida como <strong> Deslig. </ Strong> no menu %s - %s, pelo que o IVA ou IVA utilizado será sempre 0 para vendas.
    +SwapSenderAndRecipientOnPDF=Trocar o remetente e o endereço do destinatário no PDF
    +FeatureSupportedOnTextFieldsOnly=Atenção, recurso suportado apenas em campos de texto
    +EmailCollector=Coletor de e-mail
    +EmailCollectorDescription=Adicione um trabalho agendado e uma página de configuração para verificar regularmente as caixas de e-mail (usando o protocolo IMAP) e registre os e-mails recebidos em seu aplicativo, no lugar certo e / ou crie algum registro automaticamente (como leads).
    +NewEmailCollector=Novo coletor de email
    +EMailHost=Host do servidor IMAP de e-mail
    +MailboxSourceDirectory=Diretório de origem da caixa de correio
    +MailboxTargetDirectory=Diretório de destino da caixa de correio
    +EmailcollectorOperations=Operações para fazer pelo coletor
    +CollectNow=Recolher agora
    +DateLastResult=Data da última coleta
    +LastResult=Último resultado
    +EmailCollectorConfirmCollectTitle=Confirmação de recebimento de email
    +EmailCollectorConfirmCollect=Você quer executar a coleta para este coletor agora?
    +NoNewEmailToProcess=Nenhum novo email (filtros correspondentes) para processar
    +NothingProcessed=Nada feito
    +XEmailsDoneYActionsDone=%s emails qualificados, %s emails processados ​​com sucesso (para registro %s / ações executadas) por coletor
    +RecordEvent=Registrar evento de email
    +CreateLeadAndThirdParty=Criar lead (e terceiros se necessário)
    +CodeLastResult=Código de resultado da última coleta
    +NbOfEmailsInInbox=Número de email no diretório de origem
    +LoadThirdPartyFromName=Carregar terceiros do nome (somente carga)
    +LoadThirdPartyFromNameOrCreate=Carregar terceiros do nome (criar, se não encontrado)
    +WithDolTrackingID=O código de acompanhamento do Dolibarr foi encontrado
    +WithoutDolTrackingID=ID de acompanhamento Dolibarr não encontrado
    +FormatZip=Código postal
     ##### Resource ####
     ResourceSetup=Configuração do módulo Recursos
     UseSearchToSelectResource=Utilizar um formulário de pesquisa para escolher um recurso (em vez de uma lista)
     DisabledResourceLinkUser=Desativar funcionalidade que permite vincular um recurso aos utilizadores
     DisabledResourceLinkContact=Desativar funcionalidade que permite vincular um recurso aos contactos
     ConfirmUnactivation=Confirmar restauração do módulo
    +OnMobileOnly=Apenas na tela pequena (smartphone)
    +DisableProspectCustomerType=Desativar o tipo de terceiro "cliente + cliente" (assim, o terceiro deve ser cliente ou cliente, mas não pode ser ambos)
    diff --git a/htdocs/langs/pt_PT/agenda.lang b/htdocs/langs/pt_PT/agenda.lang
    index 1f8ec7673cd..de592c63663 100644
    --- a/htdocs/langs/pt_PT/agenda.lang
    +++ b/htdocs/langs/pt_PT/agenda.lang
    @@ -31,18 +31,19 @@ ViewWeek=Vista semanal
     ViewPerUser=Vista por utilizador
     ViewPerType=Vista por tipo
     AutoActions= Preenchimento automático
    -AgendaAutoActionDesc= Defina aqui os eventos para os quais deseja que o Dolibarr crie automaticamente um evento na agenda. Se não for seleccionada nenhuma opção, apenas as acções manuais serão incluídas na agenda. Seguimento automático de ações empresariais efetuadas em objetos (validação, mudanças de estado) não será guardado.
    -AgendaSetupOtherDesc= Esta página fornece opções para permitir a exportação dos seus eventos do Dolibarr para um calendário externo (Thunderbird, calendário Google, ...)
    +AgendaAutoActionDesc= Aqui você pode definir eventos que você deseja que o Dolibarr crie automaticamente na Agenda. Se nada estiver marcado, somente ações manuais serão incluídas nos registros e exibidas na Agenda. O rastreamento automático de ações de negócios feitas em objetos (validação, mudança de status) não será salvo.
    +AgendaSetupOtherDesc= Esta página fornece opções para permitir a exportação de seus eventos Dolibarr para um calendário externo (thunderbird, google calendar, ...)
     AgendaExtSitesDesc=Esta página permite declarar as fontes externas de calendários para ver os seus eventos na agenda do Dolibarr.
     ActionsEvents=Eventos em que o Dolibarr criará uma acção em agenda automáticamente
    -EventRemindersByEmailNotEnabled=Os lembretes de eventos por email não foram ativados na configuração do módulo Agenda
    +EventRemindersByEmailNotEnabled=Os lembretes de eventos por email não foram ativados na configuração do módulo %s.
     ##### Agenda event labels #####
     NewCompanyToDolibarr=Terceiro %s, criado
     ContractValidatedInDolibarr=Contrato %s, validado
    -PropalClosedSignedInDolibarr=Orçamento %s, assinado
    -PropalClosedRefusedInDolibarr=Orçamento %s, recusado
    -PropalValidatedInDolibarr=Orçamento %s, validado
    -PropalClassifiedBilledInDolibarr=Orçamento %s, classificado como faturado
    +CONTRACT_DELETEInDolibarr=Contrato %s excluído
    +PropalClosedSignedInDolibarr=Orçamento %s assinado
    +PropalClosedRefusedInDolibarr=Orçamento %s recusado
    +PropalValidatedInDolibarr=Orçamento %s validado
    +PropalClassifiedBilledInDolibarr=Orçamento %s classificado como faturado
     InvoiceValidatedInDolibarr=Fatura %s, validada
     InvoiceValidatedInDolibarrFromPos=Fatura %s, validada a partir do ponto de venda
     InvoiceBackToDraftInDolibarr=Fatura %s, voltou ao estado de rascunho
    @@ -68,10 +69,10 @@ OrderBilledInDolibarr=Encomenda %s, classificada como faturada
     OrderApprovedInDolibarr=Encomenda %s, aprovada
     OrderRefusedInDolibarr=Encomenda %s, recusada
     OrderBackToDraftInDolibarr=Encomenda %s, voltou ao estado de rascunho
    -ProposalSentByEMail=Orçamento para cliente, %s, enviado por email
    +ProposalSentByEMail=Orçamento de %s enviado por e-mail
     ContractSentByEMail=Contrato %s, enviado por email
     OrderSentByEMail=Encomenda de cliente, %s, enviada por email
    -InvoiceSentByEMail=Fatura de cliente, %s, enviada por email
    +InvoiceSentByEMail=Fatura a cliente, %s, enviada por email
     SupplierOrderSentByEMail=Encomenda a fornecedor, %s, enviada por email
     SupplierInvoiceSentByEMail=Fatura de fornecedor, %s, enviada por email
     ShippingSentByEMail=Expedição %s, enviada por email
    @@ -100,7 +101,7 @@ AgendaUrlOptions3=<b>logina=%s</b> para restringir a produção para as acções
     AgendaUrlOptionsNotAdmin=<b>logina =!%s</b> para restringir a saída às ações que não pertencem ao utilizador <b>%s</b>.
     AgendaUrlOptions4=<b>logint =%s</b> para restringir a saída às ações atribuídas ao utilizador <b>%s</b> (proprietário e outros).
     AgendaUrlOptionsProject=<b>project=__PROJECT_ID__</b> para que apenas obtenha eventos vinculados ao projeto <b>__PROJECT_ID__ </b>.
    -AgendaUrlOptionsNotAutoEvent=<b>notactiontype=systemauto</b> para excluir o evento automático.
    +AgendaUrlOptionsNotAutoEvent=<b> notactiontype = systemauto </ b> para excluir eventos automáticos.
     AgendaShowBirthdayEvents=Mostrar aniversários dos contactos
     AgendaHideBirthdayEvents=Ocultar aniversários dos contactos
     Busy=Ocupado
    @@ -110,7 +111,7 @@ DefaultWorkingHours=Horas de trabalho pré-definidas no dia (Exemplo: 9-18)
     # External Sites ical
     ExportCal=Exportar calendário
     ExtSites=Importar calendários externos
    -ExtSitesEnableThisTool=Mostrar calendários externos (definidos na configuração global) na agenda. Não afeta os calendários externos definidos pelos utilizadores.
    +ExtSitesEnableThisTool=Mostrar calendários externos (definidos na configuração global) na Agenda. Não afeta calendários externos definidos pelos usuários.
     ExtSitesNbOfAgenda=Número de calendários
     AgendaExtNb=Calendário n.º %s
     ExtSiteUrlAgenda=URL para aceder ao ficheiro .ical
    diff --git a/htdocs/langs/pt_PT/banks.lang b/htdocs/langs/pt_PT/banks.lang
    index 3d09203c613..fecc9f68825 100644
    --- a/htdocs/langs/pt_PT/banks.lang
    +++ b/htdocs/langs/pt_PT/banks.lang
    @@ -1,13 +1,13 @@
     # Dolibarr language file - Source file is en_US - banks
     Bank=Banco
    -MenuBankCash=Bank | Cash
    +MenuBankCash=Banco | Caixa
     MenuVariousPayment=Pagamentos diversos
     MenuNewVariousPayment=Novo pagamento diverso
     BankName=Nome do banco
     FinancialAccount=Conta
     BankAccount=Conta bancária
     BankAccounts=Contas Bancárias
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Banco | Entradas
     ShowAccount=Mostrar Conta
     AccountRef=Ref. Conta financeira
     AccountLabel=Etiqueta Conta financeira
    @@ -46,11 +46,11 @@ BankAccountDomiciliation=Domiciliação de Conta
     BankAccountCountry=Conta do país
     BankAccountOwner=Nome do proprietário da Conta
     BankAccountOwnerAddress=Direcção do proprietário da Conta
    -RIBControlError=O controlo da chave indica que a informação desta Conta bancaria é incompleta ou incorrecta.
    +RIBControlError=A verificação de integridade dos valores falha. Isso significa que as informações desse número de conta estão incompletas ou incorretas (verifique o país, números e IBAN).
     CreateAccount=Criar Conta
     NewBankAccount=Nova conta
    -NewFinancialAccount=Nova Conta financeira
    -MenuNewFinancialAccount=Nova Conta
    +NewFinancialAccount=Nova conta financeira
    +MenuNewFinancialAccount=Nova conta financeira
     EditFinancialAccount=Edição Conta
     LabelBankCashAccount=Etiqueta da Conta de Caixa
     AccountType=Tipo de Conta
    @@ -76,26 +76,27 @@ TransactionsToConciliate=Entradas para reconciliar
     Conciliable=Conciliável
     Conciliate=Conciliar
     Conciliation=Conciliação
    -ReconciliationLate=Reconciliation late
    +SaveStatementOnly=Salvar apenas a instrução
    +ReconciliationLate=Reconciliação atrasada
     IncludeClosedAccount=Incluir Contas fechadas
     OnlyOpenedAccount=Apenas contas abertas
     AccountToCredit=Conta de crédito
     AccountToDebit=Conta de débito
     DisableConciliation=Desactivar a função de Conciliação para esta Conta
     ConciliationDisabled=Função de Conciliação desactivada
    -LinkedToAConciliatedTransaction=Linked to a conciliated entry
    +LinkedToAConciliatedTransaction=Vinculado a uma entrada conciliada
     StatusAccountOpened=Ativo
     StatusAccountClosed=Inativo
     AccountIdShort=Número
     LineRecord=Registo
     AddBankRecord=Adicionar entrada
     AddBankRecordLong=Adicionar entrada manualmente
    -Conciliated=Reconciled
    +Conciliated=Reconciliado
     ConciliatedBy=Conciliado por
     DateConciliating=Data Conciliação
     BankLineConciliated=Entrada reconciliada
    -Reconciled=Reconciled
    -NotReconciled=Not reconciled
    +Reconciled=Reconciliado
    +NotReconciled=Não reconciliado
     CustomerInvoicePayment=Pagamento de cliente
     SupplierInvoicePayment=Pagamento a Fornecedor
     SubscriptionPayment=Pagamento Assinatura
    @@ -103,8 +104,8 @@ WithdrawalPayment=Pagamento de retirada
     SocialContributionPayment=Pagamento da taxa social/fiscal
     BankTransfer=Transferência bancária
     BankTransfers=Transferencias bancarias
    -MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +MenuBankInternalTransfer=Transferência interna
    +TransferDesc=Transferência de uma conta para outra, Dolibarr vai escrever dois registros (um débito na conta de origem e um crédito na conta de destino). A mesma quantia (exceto sinal), rótulo e data serão usados ​​para essa transação)
     TransferFrom=De
     TransferTo=Para
     TransferFromToDone=A transferência de <b>%s</b> para <b>%s</b> de <b>%s</b> %s foi criado.
    @@ -116,28 +117,28 @@ ConfirmDeleteCheckReceipt=Tem a certeza que deseja eliminar este recibo do chequ
     BankChecks=Cheques
     BankChecksToReceipt=Cheques a aguardar depósito
     ShowCheckReceipt=Mostrar recibo de depósito
    -NumberOfCheques=Nº de cheques
    +NumberOfCheques=Não de cheque
     DeleteTransaction=Eliminar entrada
     ConfirmDeleteTransaction=Tem a certeza que deseja eliminar esta entrada?
    -ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    +ThisWillAlsoDeleteBankRecord=Isto também eliminará a entrada bancária gerada
     BankMovements=Movimentos
     PlannedTransactions=Entradas previstas
     Graph=Gráficos
    -ExportDataset_banque_1=Bank entries and account statement
    +ExportDataset_banque_1=Entradas bancárias e extrato de conta
     ExportDataset_banque_2=Comprovativo de depósito
     TransactionOnTheOtherAccount=Transacção sobre outra Conta
    -PaymentNumberUpdateSucceeded=Payment number updated successfully
    +PaymentNumberUpdateSucceeded=Número de pagamento atualizado com sucesso
     PaymentNumberUpdateFailed=Não foi possivel modificar o número de pagamento
    -PaymentDateUpdateSucceeded=Payment date updated successfully
    +PaymentDateUpdateSucceeded=Data de pagamento atualizada com sucesso
     PaymentDateUpdateFailed=Não foi possível modificar a data de pagamento
     Transactions=Transacção
     BankTransactionLine=Entrada bancária
    -AllAccounts=All bank and cash accounts
    +AllAccounts=Todas as contas bancárias e de caixa
     BackToAccount=Voltar à Conta
     ShowAllAccounts=Mostrar para todas as Contas
    -FutureTransaction=Transacção futura. Não há forma de conciliar.
    -SelectChequeTransactionAndGenerate=Selecione o que pretende incluir no recibo de depósito e clique em &quot;Criar&quot;.
    -InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
    +FutureTransaction=Transação no futuro. Não há como reconciliar.
    +SelectChequeTransactionAndGenerate=Selecione / filtrar cheques para incluir no recibo do cheque e clique em "Criar".
    +InputReceiptNumber=Escolha o extrato bancário relacionado com a conciliação. Use um valor numérico classificável: YYYYMM ou YYYYMMDD
     EventualyAddCategory=Eventualmente, especifique uma categoria que deseja classificar os movimentos
     ToConciliate=Para reconciliar?
     ThenCheckLinesAndConciliate=Em seguida, verifique as linhas presentes no extrato bancário e clique
    @@ -146,20 +147,21 @@ AllRIB=Todos os BAN
     LabelRIB=Etiqueta BAN 
     NoBANRecord=Nenhum registro de BAN
     DeleteARib=Excluir registro BAN
    -ConfirmDeleteRib=Are you sure you want to delete this BAN record?
    -RejectCheck=Check returned
    -ConfirmRejectCheck=Are you sure you want to mark this check as rejected?
    -RejectCheckDate=Date the check was returned
    -CheckRejected=Check returned
    -CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
    -BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    -DocumentModelBan=Template to print a page with BAN information.
    -NewVariousPayment=New miscellaneous payments
    +ConfirmDeleteRib=Tem certeza de que deseja excluir este registro BAN?
    +RejectCheck=Cheque devolvido
    +ConfirmRejectCheck=Tem certeza de que deseja marcar esta verificação como rejeitada?
    +RejectCheckDate=Data em que o cheque foi devolvido
    +CheckRejected=Cheque devolvido
    +CheckRejectedAndInvoicesReopened=Cheque devolvido e faturas reabertas
    +BankAccountModelModule=Modelos de documentos para contas bancárias
    +DocumentModelSepaMandate=Modelo do mandato da SEPA. Útil para países europeus apenas no EEC.
    +DocumentModelBan=Modelo para imprimir uma página com informações de BAN.
    +NewVariousPayment=Novos pagamentos diversos
     VariousPayment=Pagamentos diversos
     VariousPayments=Pagamentos diversos
    -ShowVariousPayment=Show miscellaneous payments
    -AddVariousPayment=Add miscellaneous payments
    -SEPAMandate=SEPA mandate
    -YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +ShowVariousPayment=Mostrar pagamentos diversos
    +AddVariousPayment=Adicionar pagamentos diversos
    +SEPAMandate=Mandato SEPA
    +YourSEPAMandate=Seu mandato SEPA
    +FindYourSEPAMandate=Este é o seu mandato da SEPA para autorizar a nossa empresa a efetuar um pedido de débito direto ao seu banco. Devolva-o assinado (digitalização do documento assinado) ou envie-o por correio para
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/pt_PT/bills.lang b/htdocs/langs/pt_PT/bills.lang
    index bfda3ffca81..54a8b7d7ece 100644
    --- a/htdocs/langs/pt_PT/bills.lang
    +++ b/htdocs/langs/pt_PT/bills.lang
    @@ -11,8 +11,8 @@ BillsSuppliersUnpaidForCompany=Faturas de fornecedores não pagas para %s
     BillsLate=Pagamentos em atraso
     BillsStatistics=Estatísticas das faturas a clientes
     BillsStatisticsSuppliers=Estatísticas das faturas de fornecedores
    -DisabledBecauseDispatchedInBookkeeping=Disabled because invoice was dispatched into bookkeeping
    -DisabledBecauseNotLastInvoice=Disabled because invoice is not erasable. Some invoices were recorded after this one and it will create holes in the counter.
    +DisabledBecauseDispatchedInBookkeeping=Desativado porque a fatura foi enviada para a contabilidade
    +DisabledBecauseNotLastInvoice=Desativado porque a fatura não pode ser apagada. Algumas faturas foram registradas após esta e irão criar furos no contador.
     DisabledBecauseNotErasable=Desativar porque não pode ser eliminado
     InvoiceStandard=Fatura Normal
     InvoiceStandardAsk=Fatura Normal
    @@ -25,13 +25,13 @@ InvoiceProFormaAsk=Fatura Pró-Forma
     InvoiceProFormaDesc=A <b>Fatura Pró-Forma</b> é uma imagem de uma fatura, mas não tem valor contabilístico.
     InvoiceReplacement=Fatura de Substituição
     InvoiceReplacementAsk=Fatura de Substituição para a Fatura
    -InvoiceReplacementDesc=A <b>Fatura de Substituição</b> é utilizada para cancelar e substituir completamente uma fatura sem ter sido recebido o pagamento. <br><br> Nota: apenas as faturas sem pagamento podem ser substituídas. Se a fatura de substituição ainda não estiver fechada, esta será automaticamente fechada para "abandonada".
    +InvoiceReplacementDesc=<b> A fatura de substituição </ b> é usada para cancelar e substituir completamente uma fatura sem nenhum pagamento já recebido. <br> <br> Nota: Somente faturas sem pagamento podem ser substituídas. Se a fatura que você substituir ainda não estiver fechada, ela será automaticamente fechada para "abandonada".
     InvoiceAvoir=Nota de Crédito
     InvoiceAvoirAsk=Nota de crédito para corrigir a fatura
    -InvoiceAvoirDesc=A <b>Nota de Crédito</b> é uma fatura negativa destinada a compensar um montante de uma fatura que difere do montante realmente pago (por haver pago de mais ou por devolução de produtos, por Exemplo).<br><br>Nota: Tenha em conta que a fatura original a corrigir deve ter sido fechada (' paga' ou ' paga parcialmente ') para poder realizar uma nota de crédito.'
    +InvoiceAvoirDesc=A <b> nota de crédito </ b> é uma fatura negativa usada para corrigir o fato de que uma fatura tem um valor que difere do valor realmente pago (por exemplo, o cliente pagou muito por engano ou não pagará completamente desde que retornou alguns produtos).
     invoiceAvoirWithLines=Criar Nota de Crédito com as linhas da fatura de origem
    -invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
    -invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    +invoiceAvoirWithPaymentRestAmount=Criar nota de crédito com fatura não paga de origem
    +invoiceAvoirLineWithPaymentRestAmount=Nota de crédito para o restante valor não pago
     ReplaceInvoice=Retificar fatura %s
     ReplacementInvoice=Fatura de Substituição
     ReplacedByInvoice=Substituída pela Fatura %s
    @@ -43,7 +43,7 @@ ConsumedBy=Consumida por
     NotConsumed=Não consumiu
     NoReplacableInvoice=Sem Faturas Retificáveis
     NoInvoiceToCorrect=Nenhuma Fatura para corrigir
    -InvoiceHasAvoir=Was source of one or several credit notes
    +InvoiceHasAvoir=Era fonte de uma ou várias notas de crédito
     CardBill=Ficha da Fatura
     PredefinedInvoices=Faturas predefinidas
     Invoice=Fatura
    @@ -62,12 +62,12 @@ PaymentBack=Reembolso
     CustomerInvoicePaymentBack=Reembolso
     Payments=Pagamentos
     PaymentsBack=Reembolsos
    -paymentInInvoiceCurrency=in invoices currency
    +paymentInInvoiceCurrency=na moeda das faturas
     PaidBack=Reembolsada
     DeletePayment=Eliminar pagamento
     ConfirmDeletePayment=Tem a certeza que deseja eliminar este pagamento?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Deseja converter este %s em um desconto absoluto? <br> O valor será economizado entre todos os descontos e poderá ser usado como um desconto para uma fatura atual ou futura para este cliente.
    +ConfirmConvertToReducSupplier=Deseja converter este %s em um desconto absoluto? <br> O valor será guardado em todos os descontos e poderá ser usado como um desconto para uma fatura atual ou futura deste fornecedor.
     SupplierPayments=Pagamentos a Fornecedores
     ReceivedPayments=Pagamentos recebidos
     ReceivedCustomersPayments=Pagamentos recebidos dos clientes
    @@ -81,9 +81,9 @@ PaymentRule=Estado do Pagamento
     PaymentMode=Tipo de Pagamento
     PaymentTypeDC=Cartão de débito/crédito
     PaymentTypePP=PayPal
    -IdPaymentMode=Payment type (id)
    -CodePaymentMode=Payment type (code)
    -LabelPaymentMode=Payment type (label)
    +IdPaymentMode=Tipo de pagamento (id)
    +CodePaymentMode=Tipo de pagamento (código)
    +LabelPaymentMode=Tipo de pagamento (etiqueta)
     PaymentModeShort=Tipo de Pagamento
     PaymentTerm=Tipo de Pagamento
     PaymentConditions=Condições de Pagamento
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Condições de Pagamento
     PaymentAmount=Montante a Pagar
     ValidatePayment=Validar pagamento
     PaymentHigherThanReminderToPay=Pagamento superior ao valor a pagar
    -HelpPaymentHigherThanReminderToPay=Atenção, o montante do pagamento de uma ou mais letras é maior do que o resto a pagar. <br> Edite sua entrada, caso contrário, confirmar e pensar sobre como criar uma nota de crédito do excesso recebido para cada fatura paga em excesso.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Atenção, o valor do pagamento de uma ou mais contas é maior do que o valor pendente a pagar. <br> Edite sua entrada, caso contrário, confirme e considere a criação de uma nota de crédito para o excesso recebido para cada fatura paga em excesso.
    +HelpPaymentHigherThanReminderToPaySupplier=Atenção, o valor do pagamento de uma ou mais contas é maior do que o valor pendente a pagar. <br> Edite sua entrada, caso contrário, confirme e considere a criação de uma nota de crédito para o excesso pago por cada fatura paga em excesso.
     ClassifyPaid=Classificar como 'Pago'
     ClassifyPaidPartially=Classificar como 'Pago Parcialmente'
     ClassifyCanceled=Classificar como 'Abandonado'
    @@ -109,19 +109,19 @@ CancelBill=Cancelar uma fatura
     SendRemindByMail=Enviar lembrete por E-mail
     DoPayment=Inserir pagamento
     DoPaymentBack=Inserir reembolso
    -ConvertToReduc=Mark as credit available
    -ConvertExcessReceivedToReduc=Convert excess received into available credit
    -ConvertExcessPaidToReduc=Convert excess paid into available discount
    +ConvertToReduc=Marcar como crédito disponível
    +ConvertExcessReceivedToReduc=Converter o excesso recebido em crédito disponível
    +ConvertExcessPaidToReduc=Converter o excesso pago em desconto disponível
     EnterPaymentReceivedFromCustomer=Adicionar pagamento recebido de cliente
     EnterPaymentDueToCustomer=Realizar pagamento de recibos à cliente
    -DisabledBecauseRemainderToPayIsZero=Disabled because remaining unpaid is zero
    +DisabledBecauseRemainderToPayIsZero=Desativado porque o restante não pago é zero
     PriceBase=preço base
     BillStatus=Estado da fatura
     StatusOfGeneratedInvoices=Estado das faturas geradas
     BillStatusDraft=Rascunho (precisa de ser validado)
     BillStatusPaid=Paga
    -BillStatusPaidBackOrConverted=Credit note refund or marked as credit available
    -BillStatusConverted=Paid (ready for consumption in final invoice)
    +BillStatusPaidBackOrConverted=Reembolso de nota de crédito ou marcado como crédito disponível
    +BillStatusConverted=Pago (pronto para consumo na fatura final)
     BillStatusCanceled=Abandonada
     BillStatusValidated=Validado (precisa de ser paga)
     BillStatusStarted=Iniciada
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Fechada (Pendente de pagamento)
     BillStatusClosedPaidPartially=Paga (parcialmente)
     BillShortStatusDraft=Rascunho
     BillShortStatusPaid=Paga
    -BillShortStatusPaidBackOrConverted=Reembolsada ou convertida
    +BillShortStatusPaidBackOrConverted=Reembolsado ou convertido
    +Refunded=Devolveu
     BillShortStatusConverted=Pago
     BillShortStatusCanceled=Abandonada
     BillShortStatusValidated=Validada
    @@ -141,32 +142,32 @@ BillShortStatusNotRefunded=Não reembolsado
     BillShortStatusClosedUnpaid=Fechada por pagar
     BillShortStatusClosedPaidPartially=Paga (parcialmente)
     PaymentStatusToValidShort=Por validar
    -ErrorVATIntraNotConfigured=Número de IVA intracomunitário ainda não configurado
    +ErrorVATIntraNotConfigured=Número de IVA intracomunitário ainda não definido
     ErrorNoPaiementModeConfigured=Nenhum modo de pagamento predefinido. Vá à página de configuração do módulo Fatura para corrigir.
     ErrorCreateBankAccount=Criar uma conta bancária e em seguida, vá para configuração do painel do modulo de fatura para definir métodos de pagamento
     ErrorBillNotFound=Fatura %s inexistente
    -ErrorInvoiceAlreadyReplaced=Erro, está a tentar validar uma fatura que retifica a fatura %s. Mas esta última já se encontra retificada pela fatura %s.
    +ErrorInvoiceAlreadyReplaced=Erro, você tentou validar uma fatura para substituir a fatura %s. Mas este já foi substituído pela nota fiscal %s.
     ErrorDiscountAlreadyUsed=Erro, a remessa está já assignada
     ErrorInvoiceAvoirMustBeNegative=Erro, uma fatura deste tipo deve ter um montante negativo
     ErrorInvoiceOfThisTypeMustBePositive=Erro, uma fatura deste tipo deve ter um montante positivo
     ErrorCantCancelIfReplacementInvoiceNotValidated=Erro, não pode cancelar uma fatura que tenha sido substituída por uma outra fatura e que se encontra ainda em rascunho
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Essa parte ou outra já é usada para que as séries de descontos não possam ser removidas.
     BillFrom=Emissor
     BillTo=Enviar a
     ActionsOnBill=Ações sobre a fatura
    -RecurringInvoiceTemplate=Template / Recurring invoice
    -NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified for generation.
    -FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation.
    -NotARecurringInvoiceTemplate=Not a recurring template invoice
    +RecurringInvoiceTemplate=Fatura de modelo / recorrente
    +NoQualifiedRecurringInvoiceTemplateFound=Nenhuma fatura de modelo recorrente qualificada para geração.
    +FoundXQualifiedRecurringInvoiceTemplate=Encontrado %s fatura (s) modelo (s) recorrente (s) qualificada (s) para geração.
    +NotARecurringInvoiceTemplate=Não é uma fatura modelo recorrente
     NewBill=Nova fatura
     LastBills=Últimas %s faturas
    -LatestTemplateInvoices=Latest %s template invoices
    -LatestCustomerTemplateInvoices=Latest %s customer template invoices
    -LatestSupplierTemplateInvoices=Latest %s supplier template invoices
    +LatestTemplateInvoices=Últimas facturas modelo %s
    +LatestCustomerTemplateInvoices=Últimas facturas de modelo de cliente %s
    +LatestSupplierTemplateInvoices=Últimas facturas de modelo de fornecedor %s
     LastCustomersBills=Últimas %s faturas a clientes
     LastSuppliersBills=Últimas %s faturas de fornecedor
     AllBills=Todas as faturas
    -AllCustomerTemplateInvoices=All template invoices
    +AllCustomerTemplateInvoices=Todas as faturas modelo
     OtherBills=Outras faturas
     DraftBills=Faturas rascunho
     CustomersDraftInvoices=Faturas provisórias a cliente
    @@ -179,30 +180,31 @@ ConfirmClassifyPaidBill=Tem a certeza que pretende alterar a fatura <b>%s</b> pa
     ConfirmCancelBill=Tem a certeza que pretende cancelar a fatura <b>%s</b>?
     ConfirmCancelBillQuestion=Porque é que pretende classificar esta fatura como 'abandonada'?
     ConfirmClassifyPaidPartially=Tem a certeza que pretende alterar a fatura <b>%s</b> para o estado de paga?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    -ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
    -ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=Esta fatura não foi paga completamente. Qual é o motivo para você fechar essa fatura?
    +ConfirmClassifyPaidPartiallyReasonAvoir=O restante <b> (%s %s) </ b> é um desconto concedido porque o pagamento foi feito antes do prazo. Regularizo o IVA com uma nota de crédito.
    +ConfirmClassifyPaidPartiallyReasonDiscount=O restante <b> (%s %s) </ b> é um desconto concedido porque o pagamento foi feito antes do prazo.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=O restante <b> (%s %s) </ b> é um desconto concedido porque o pagamento foi feito antes do prazo. Aceito perder o IVA sobre esse desconto.
    +ConfirmClassifyPaidPartiallyReasonDiscountVat=O restante <b> (%s %s) </ b> é um desconto concedido porque o pagamento foi feito antes do prazo. Eu recupero o IVA neste desconto sem uma nota de crédito.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Cliente devedor
     ConfirmClassifyPaidPartiallyReasonProductReturned=Produtos devolvidos em parte
     ConfirmClassifyPaidPartiallyReasonOther=Por outra Razão
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Essa opção é possível se sua fatura contenha comentários adequados. (Exemplo: "Somente o imposto correspondente ao preço efetivamente pago dá direito à dedução")
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Em alguns países, esta opção pode ser possível somente se a fatura conter a nota correta.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Essa escolha é possível se a sua fatura tiver recebido comentários adequados. (Exemplo «Apenas o imposto correspondente ao preço efetivamente pago dá direito à dedução»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Em alguns países, essa opção pode ser possível somente se sua fatura contiver notas corretas.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Esta eleição é a eleição que deve tomar-se sem as Outras não são aplicáveis
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=um <b>cliente devedor</b> é um cliente que não quer regularizar a sua divida.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Um <b> cliente ruim </ b> é um cliente que se recusa a pagar sua dívida.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Esta eleição é possível se o caso de pagamento incompleto é a raiz de uma devolução de parte dos produtos
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use esta opção se qualquer outra opção não se adequar, por exemplo, na seguinte situação: <br> - o pagamento não foi concluído porque alguns produtos foram enviados de volta <br> - montante reivindicado é muito importante porque um desconto foi esquecido <br> Em todos os casos, quantidade sobre-reivindicada deve ser corrigida no sistema de contabilidade criando uma nota de crédito.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use esta opção se todos os outros não forem adequados, por exemplo, na seguinte situação: - o pagamento não foi concluído porque alguns produtos foram remetidos de volta - o valor reivindicado é muito importante porque um desconto foi esquecido em todos os casos. over-claim deve ser corrigido no sistema de contabilidade, criando uma nota de crédito.
     ConfirmClassifyAbandonReasonOther=Outro
     ConfirmClassifyAbandonReasonOtherDesc=Esta opção será usada em todos os outros casos. Por exemplo, porque você planeia criar uma fatura de substituição.
    -ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    -ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
    +ConfirmCustomerPayment=Você confirma essa entrada de pagamento para <b> %s </ b> %s?
    +ConfirmSupplierPayment=Você confirma essa entrada de pagamento para <b> %s </ b> %s?
     ConfirmValidatePayment=Tem certeza de que deseja validar este pagamento? Nenhuma alteração pode ser efetuada assim que o pagamento for validado.
     ValidateBill=Validar fatura
     UnvalidateBill=Invalidar fatura
    -NumberOfBills=Nº de faturas
    -NumberOfBillsByMonth=Nb de faturas por mês
    +NumberOfBills=N.ª de faturas
    +NumberOfBillsByMonth=N.ª de faturas por mês
     AmountOfBills=Montante das faturas
    +AmountOfBillsHT=Quantidade de faturas (líquidas de imposto)
     AmountOfBillsByMonthHT=Quantidade de faturas por mês (sem IVA)
     ShowSocialContribution=Mostrar imposto social/fiscal
     ShowBill=Ver fatura
    @@ -210,19 +212,19 @@ ShowInvoice=Ver fatura
     ShowInvoiceReplace=Ver fatura retificativa
     ShowInvoiceAvoir=Ver deposito
     ShowInvoiceDeposit=Mostrar fatura de adiantamento
    -ShowInvoiceSituation=Show situation invoice
    +ShowInvoiceSituation=Mostrar fatura da situação
     ShowPayment=Mostrar pagamento
     AlreadyPaid=Já e
     AlreadyPaidBack=Já reembolsado
     AlreadyPaidNoCreditNotesNoDeposits=Já pago (sem notas de crédito e adiantamentos)
     Abandoned=Abandonada
     RemainderToPay=Restante a receber
    -RemainderToTake=Remaining amount to take
    -RemainderToPayBack=Remaining amount to refund
    +RemainderToTake=Quantidade remanescente a levar
    +RemainderToPayBack=Montante restante para reembolso
     Rest=Pendente
     AmountExpected=Montante reclamado
     ExcessReceived=Recebido em excesso
    -ExcessPaid=Excess paid
    +ExcessPaid=Excesso pago
     EscompteOffered=Desconto oferecido
     EscompteOfferedShort=Desconto
     SendBillRef=Submissão da fatura %s
    @@ -238,11 +240,11 @@ RemainderToBill=Restante a faturar
     SendBillByMail=Enviar fatura por email
     SendReminderBillByMail=Enviar um lembrete por E-Mail
     RelatedCommercialProposals=Orçamentos relacionados
    -RelatedRecurringCustomerInvoices=Related recurring customer invoices
    +RelatedRecurringCustomerInvoices=Faturas recorrentes de clientes relacionadas
     MenuToValid=A Confirmar
    -DateMaxPayment=Payment due on
    +DateMaxPayment=Pagamento devido em
     DateInvoice=Data da fatura
    -DatePointOfTax=Point of tax
    +DatePointOfTax=Ponto de imposto
     NoInvoice=Nenhuma fatura
     ClassifyBill=Classificar a fatura
     SupplierBillsToPay=Faturas de fornecedores pendentes de pagamento
    @@ -252,7 +254,7 @@ SetConditions=Definir termos de pagamento
     SetMode=Definir modo de pagamento
     SetRevenuStamp=Definir selo fiscal
     Billed=Faturado
    -RecurringInvoices=Recurring invoices
    +RecurringInvoices=Faturas recorrentes
     RepeatableInvoice=Fatura Modelo
     RepeatableInvoices=Faturas Modelo
     Repeatable=Modelo
    @@ -260,9 +262,9 @@ Repeatables=Modelos
     ChangeIntoRepeatableInvoice=Converter em fatura modelo
     CreateRepeatableInvoice=Criar fatura modelo
     CreateFromRepeatableInvoice=Criar a partir da fatura modelo
    -CustomersInvoicesAndInvoiceLines=Faturas a clientes e linhas de faturas
    +CustomersInvoicesAndInvoiceLines=Faturas de clientes e detalhes da fatura
     CustomersInvoicesAndPayments=Faturas a clientes e pagamentos
    -ExportDataset_invoice_1=Faturas a clientes e linhas de faturas
    +ExportDataset_invoice_1=Faturas de clientes e detalhes da fatura
     ExportDataset_invoice_2=Faturas a clientes e pagamentos
     ProformaBill=Fatura pró-forma:
     Reduction=Redução
    @@ -273,8 +275,8 @@ Discounts=Descontos
     AddDiscount=Adicionar Desconto
     AddRelativeDiscount=Criar desconto relativo
     EditRelativeDiscount=Editar desconto relativo
    -AddGlobalDiscount=Adicionar Desconto fixo
    -EditGlobalDiscounts=Editar descontos absolutos
    +AddGlobalDiscount=Criar desconto fixo
    +EditGlobalDiscounts=Editar descontos fixos
     AddCreditNote=Criar nota de crédito
     ShowDiscount=Ver o deposito
     ShowReduc=Mostrar a dedução
    @@ -282,32 +284,32 @@ RelativeDiscount=Desconto relativo
     GlobalDiscount=Desconto fixo
     CreditNote=Deposito
     CreditNotes=Recibos
    -CreditNotesOrExcessReceived=Credit notes or excess received
    +CreditNotesOrExcessReceived=Notas de crédito ou excesso recebido
     Deposit=Adiantamento
     Deposits=Adiantamentos
     DiscountFromCreditNote=Desconto resultante do deposito %s
     DiscountFromDeposit=Adiantamentos da fatura %s
    -DiscountFromExcessReceived=Payments in excess of invoice %s
    -DiscountFromExcessPaid=Payments in excess of invoice %s
    +DiscountFromExcessReceived=Pagamentos em excesso da fatura %s
    +DiscountFromExcessPaid=Pagamentos em excesso da fatura %s
     AbsoluteDiscountUse=Este tipo de crédito pode ser usado na fatura antes da sua validação
    -CreditNoteDepositUse=Invoice must be validated to use this kind of credits
    -NewGlobalDiscount=Novo Desconto fixo
    -NewRelativeDiscount=Nova parente desconto
    -DiscountType=Discount type
    +CreditNoteDepositUse= A fatura deve ser validada para utilizar este tipo de crédito
    +NewGlobalDiscount=Novo desconto fixo
    +NewRelativeDiscount=Novo desconto relativo
    +DiscountType=Tipo de desconto
     NoteReason=Nota/Motivo
     ReasonDiscount=Motivo
     DiscountOfferedBy=Acordado por
    -DiscountStillRemaining=Discounts or credits available
    -DiscountAlreadyCounted=Discounts or credits already consumed
    -CustomerDiscounts=Customer discounts
    -SupplierDiscounts=Vendors discounts
    +DiscountStillRemaining=Descontos ou créditos disponíveis
    +DiscountAlreadyCounted=Descontos ou créditos já consumidos
    +CustomerDiscounts=Descontos para clientes
    +SupplierDiscounts=Descontos de fornecedores
     BillAddress=Morada de faturação
    -HelpEscompte=Este desconto é um desconto concedido ao cliente porque o pagamento foi feito antes do prazo.
    -HelpAbandonBadCustomer=Este Montante é deixado (cliente julgado como devedor) e se considera como uma perda excepcional.
    -HelpAbandonOther=Esse montante foi abandonado, pois foi um erro (cliente ou fatura incorretos substituídos por outro por exemplo)
    -IdSocialContribution=Social/fiscal tax payment id
    +HelpEscompte=Esse desconto é um desconto concedido ao cliente porque o pagamento foi feito antes do prazo.
    +HelpAbandonBadCustomer=Este montante foi abandonado (o cliente disse ser um cliente ruim) e é considerado uma perda excepcional.
    +HelpAbandonOther=Este montante foi abandonado, pois foi um erro (cliente errado ou fatura substituída por outro, por exemplo)
    +IdSocialContribution=ID de pagamento de imposto social / fiscal
     PaymentId=ID de Pagamento
    -PaymentRef=Payment ref.
    +PaymentRef=Ref. De pagamento
     InvoiceId=ID da fatura
     InvoiceRef=Ref. da fatura
     InvoiceDateCreation=Data de criação da fatura
    @@ -321,80 +323,80 @@ InvoiceNotChecked=Nenhuma fatura selecionada
     CloneInvoice=Clonar fatura
     ConfirmCloneInvoice=Tem a certeza que pretende clonar esta fatura <b>%s</b>?
     DisabledBecauseReplacedInvoice=Ação desativada porque a fatura foi substituída
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb de pagamentos
    +DescTaxAndDividendsArea=Esta área apresenta um resumo de todos os pagamentos feitos para despesas especiais. Somente registros com pagamento durante o ano fixo são incluídos aqui.
    +NbOfPayments=N.ª de pagamentos
     SplitDiscount=Dividido em duas desconto
    -ConfirmSplitDiscount=Tem a certeza que pretende dividir este desconto de <b>%s</b> %s em 2 descontos menores?
    -TypeAmountOfEachNewDiscount=Entrada montante para cada uma das duas partes:
    -TotalOfTwoDiscountMustEqualsOriginal=Total de dois novos desconto deve ser igual ao montante original de desconto.
    +ConfirmSplitDiscount=Tem certeza de que deseja dividir este desconto de <b> %s </ b> %s em dois descontos menores?
    +TypeAmountOfEachNewDiscount=Quantidade de entrada para cada uma das duas partes:
    +TotalOfTwoDiscountMustEqualsOriginal=O total de dois novos descontos deve ser igual ao valor do desconto original.
     ConfirmRemoveDiscount=Tem certeza que deseja remover este desconto?
     RelatedBill=Fatura relacionada
     RelatedBills=Faturas relacionadas
    -RelatedCustomerInvoices=Related customer invoices
    -RelatedSupplierInvoices=Related supplier invoices
    +RelatedCustomerInvoices=Faturas de clientes relacionadas
    +RelatedSupplierInvoices=Faturas de fornecedores relacionadas
     LatestRelatedBill=Última fatura relacionada
    -WarningBillExist=Aviso, já existe uma ou mais faturas
    -MergingPDFTool=Merging PDF tool
    -AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    -PaymentNote=Payment note
    -ListOfPreviousSituationInvoices=List of previous situation invoices
    -ListOfNextSituationInvoices=List of next situation invoices
    -ListOfSituationInvoices=List of situation invoices
    -CurrentSituationTotal=Total current situation
    -DisabledBecauseNotEnouthCreditNote=To remove a situation invoice from cycle, this invoice's credit note total must cover this invoice total
    -RemoveSituationFromCycle=Remove this invoice from cycle
    -ConfirmRemoveSituationFromCycle=Remove this invoice %s from cycle ?
    -ConfirmOuting=Confirm outing
    +WarningBillExist=Atenção, uma ou mais faturas já existem
    +MergingPDFTool=Ferramenta de fusão de PDF
    +AmountPaymentDistributedOnInvoice=Quantia de pagamento distribuída na fatura
    +PaymentOnDifferentThirdBills=Permitir pagamentos em contas de terceiros diferentes, mas mesma empresa-mãe
    +PaymentNote=Nota de pagamento
    +ListOfPreviousSituationInvoices=Lista de faturas de situação anterior
    +ListOfNextSituationInvoices=Lista de faturas de próxima situação
    +ListOfSituationInvoices=Lista de faturas de situação
    +CurrentSituationTotal=Situação atual total
    +DisabledBecauseNotEnouthCreditNote=Para remover uma fatura de situação do ciclo, o total dessa nota de crédito da fatura deve cobrir esse total de faturas
    +RemoveSituationFromCycle=Remover esta fatura do ciclo
    +ConfirmRemoveSituationFromCycle=Remover esta fatura %s do ciclo?
    +ConfirmOuting=Confirme a saída
     FrequencyPer_d=Cada %s dias
     FrequencyPer_m=Cada %s meses
     FrequencyPer_y=Cada %s anos
    -FrequencyUnit=Frequency unit
    -toolTipFrequency=Examples:<br><b>Set 7, Day</b>: give a new invoice every 7 days<br><b>Set 3, Month</b>: give a new invoice every 3 month
    -NextDateToExecution=Date for next invoice generation
    -NextDateToExecutionShort=Date next gen.
    -DateLastGeneration=Date of latest generation
    -DateLastGenerationShort=Date latest gen.
    -MaxPeriodNumber=Max number of invoice generation
    -NbOfGenerationDone=Number of invoice generation already done
    -NbOfGenerationDoneShort=Number of generation done
    -MaxGenerationReached=Maximum number of generations reached
    +FrequencyUnit=Unidade de frequência
    +toolTipFrequency=Exemplos: <br> <b> Definir 7, Dia </ b>: fornecer uma nova fatura a cada 7 dias <br> <b> Definir 3, Mês </ b>: fornecer uma nova fatura a cada 3 meses
    +NextDateToExecution=Data para a próxima geração de fatura
    +NextDateToExecutionShort=Data da próxima geração
    +DateLastGeneration=Data da última geração
    +DateLastGenerationShort=Data mais recente gen.
    +MaxPeriodNumber=Número máximo de geração de fatura
    +NbOfGenerationDone=Número de geração de faturas já efetuadas
    +NbOfGenerationDoneShort=Número de geração feito
    +MaxGenerationReached=Número máximo de gerações atingidas
     InvoiceAutoValidate=Validar faturas automaticamente
    -GeneratedFromRecurringInvoice=Generated from template recurring invoice %s
    -DateIsNotEnough=Date not reached yet
    -InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s
    -WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date
    -WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date
    -ViewAvailableGlobalDiscounts=View available discounts
    +GeneratedFromRecurringInvoice=Gerado a partir do modelo de fatura recorrente %s
    +DateIsNotEnough=Data ainda não atingida
    +InvoiceGeneratedFromTemplate=Fatura %s gerada a partir da fatura modelo recorrente %s
    +WarningInvoiceDateInFuture=Atenção, a data da fatura é maior que a data atual
    +WarningInvoiceDateTooFarInFuture=Atenção, a data da fatura está muito longe da data atual
    +ViewAvailableGlobalDiscounts=Ver descontos disponíveis
     # PaymentConditions
     Statut=Estado
     PaymentConditionShortRECEP=Pronto Pagamento
     PaymentConditionRECEP=Pronto Pagamento
     PaymentConditionShort30D=30 dias
     PaymentCondition30D=30 dias
    -PaymentConditionShort30DENDMONTH=30 days of month-end
    -PaymentCondition30DENDMONTH=Within 30 days following the end of the month
    +PaymentConditionShort30DENDMONTH=30 dias do final do mês
    +PaymentCondition30DENDMONTH=Dentro de 30 dias após o final do mês
     PaymentConditionShort60D=60 dias
     PaymentCondition60D=60 dias
    -PaymentConditionShort60DENDMONTH=60 days of month-end
    -PaymentCondition60DENDMONTH=Within 60 days following the end of the month
    +PaymentConditionShort60DENDMONTH=60 dias do final do mês
    +PaymentCondition60DENDMONTH=Dentro de 60 dias após o final do mês
     PaymentConditionShortPT_DELIVERY=Envio
     PaymentConditionPT_DELIVERY=Na entrega
     PaymentConditionShortPT_ORDER=Pedido
     PaymentConditionPT_ORDER=Ao encomendar
     PaymentConditionShortPT_5050=50-50
     PaymentConditionPT_5050=50%% adiantado, 50%% na entrega
    -PaymentConditionShort10D=10 days
    -PaymentCondition10D=10 days
    -PaymentConditionShort10DENDMONTH=10 days of month-end
    -PaymentCondition10DENDMONTH=Within 10 days following the end of the month
    -PaymentConditionShort14D=14 days
    -PaymentCondition14D=14 days
    -PaymentConditionShort14DENDMONTH=14 days of month-end
    -PaymentCondition14DENDMONTH=Within 14 days following the end of the month
    +PaymentConditionShort10D=10 dias
    +PaymentCondition10D=10 dias
    +PaymentConditionShort10DENDMONTH=10 dias do final do mês
    +PaymentCondition10DENDMONTH=Dentro de 10 dias após o final do mês
    +PaymentConditionShort14D=14 dias
    +PaymentCondition14D=14 dias
    +PaymentConditionShort14DENDMONTH=14 dias do final do mês
    +PaymentCondition14DENDMONTH=Dentro de 14 dias após o final do mês
     FixAmount=Valor fixo
     VarAmount=Quantidade variável (%% total.)
    -VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s'
    +VarAmountOneLine=Quantidade variável (%% tot.) - 1 linha com o rótulo '%s'
     # PaymentType
     PaymentTypeVIR=Transferência bancária
     PaymentTypeShortVIR=Transferência bancária
    @@ -406,21 +408,21 @@ PaymentTypeCB=Cartão de crédito
     PaymentTypeShortCB=Cartão de crédito
     PaymentTypeCHQ=Cheque
     PaymentTypeShortCHQ=Cheque
    -PaymentTypeTIP=TIP (Documents against Payment)
    -PaymentTypeShortTIP=TIP Payment
    +PaymentTypeTIP=DICA (Documentos contra pagamento)
    +PaymentTypeShortTIP=SUGESTÃO DE PAGAMENTO
     PaymentTypeVAD=Pagamento online
     PaymentTypeShortVAD=Pagamento online
     PaymentTypeTRA=Letra bancária
     PaymentTypeShortTRA=Rascunho
    -PaymentTypeFAC=Factor
    -PaymentTypeShortFAC=Factor
    +PaymentTypeFAC=Fator
    +PaymentTypeShortFAC=Fator
     BankDetails=Dados bancários
     BankCode=Código banco
    -DeskCode=Código sucursal
    +DeskCode=Código do Office
     BankAccountNumber=Número conta
    -BankAccountNumberKey=Dígito Control
    +BankAccountNumberKey=Verifique os dígitos
     Residence=Débito Direto
    -IBANNumber=Código IBAN
    +IBANNumber=Número completo da conta do IBAN
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=Código BIC/SWIFT
    @@ -428,7 +430,7 @@ ExtraInfos=Informações complementarias
     RegulatedOn=Regulado em
     ChequeNumber=Cheque nº
     ChequeOrTransferNumber=Cheque/Transferência nº
    -ChequeBordereau=Check schedule
    +ChequeBordereau=Verifique o horário
     ChequeMaker=Transmissor do Cheque/Transferência
     ChequeBank=Banco do cheque
     CheckBank=Verificar
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Pagamento por transferência na seguinte cont
     VATIsNotUsedForInvoice=* IVA não aplicável  art-293B do CGI
     LawApplicationPart1=Por aplicação da lei 80.335 de 12/05/80
     LawApplicationPart2=As mercadorias permanecem em propriedade de
    -LawApplicationPart3=Vendedor até o completo cobrança de
    +LawApplicationPart3=o vendedor até o pagamento integral
     LawApplicationPart4=As suas preços
     LimitedLiabilityCompanyCapital=SRL com capital de
     UseLine=Aplicar
    @@ -460,10 +462,10 @@ ChequesReceipts=Ficha emissão de cheques
     ChequesArea=Área emissão de cheques
     ChequeDeposits=Depósito de cheques
     Cheques=Cheques
    -DepositId=Id deposit
    -NbCheque=Number of checks
    +DepositId=Depósito de identificação
    +NbCheque=Número de cheques
     CreditNoteConvertedIntoDiscount=Esta nota de crédito %s, foi convertida no desconto %s
    -UsBillingContactAsIncoiveRecipientIfExist=Utilizar a morada do contacto de cliente de faturação da fatura em vez da morada do Terceiro como destinatário das faturas
    +UsBillingContactAsIncoiveRecipientIfExist=Usar contato / endereço com o tipo "contato de cobrança" em vez do endereço de terceiros como destinatário das faturas
     ShowUnpaidAll=Mostrar todas as faturas não pagas
     ShowUnpaidLateOnly=Mostrar apenas faturas atrasadas não pagas
     PaymentInvoiceRef=Pagamento da fatura %s
    @@ -474,26 +476,27 @@ Reported=Atrasado
     DisabledBecausePayments=Não é possível, pois há alguns pagamentos
     CantRemovePaymentWithOneInvoicePaid=Não é possível remover o pagamento, uma vez que existe pelo menos uma fatura classificada como paga
     ExpectedToPay=Pagamento esperado
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Não é possível remover o pagamento reconciliado
     PayedByThisPayment=Pago por esse pagamento
    -ClosePaidInvoicesAutomatically=Classificar como "Paga" todas as faturas padrão, adiantamentos ou de substituição completamente pagas.
    +ClosePaidInvoicesAutomatically=Classifique "Pago" todas as faturas padrão, iniciais ou de substituição pagas totalmente.
     ClosePaidCreditNotesAutomatically=Classificar como "Paga" todas as notas de crédito totalmente reembolsadas.
    -ClosePaidContributionsAutomatically=Classificar como "Pago" todas as contribuições sociais ou fiscais totalmente pagas.
    -AllCompletelyPayedInvoiceWillBeClosed=Todas as faturas sem pagamentos em falta serão automaticamente fechadas e classificadas como "Pagas".
    +ClosePaidContributionsAutomatically=Classifique "Pago" todas as contribuições sociais ou fiscais pagas inteiramente.
    +AllCompletelyPayedInvoiceWillBeClosed=Todas as faturas sem saldo a pagar serão fechadas automaticamente com o status "Pago".
     ToMakePayment=Pagar
     ToMakePaymentBack=Reembolsar
     ListOfYourUnpaidInvoices=Lista de faturas não pagas
     NoteListOfYourUnpaidInvoices=Nota: Esta lista apenas contém fatura de terceiros dos quais você está definido como representante de vendas.
     RevenueStamp=Selo fiscal
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    -YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
    +YouMustCreateInvoiceFromThird=Essa opção só está disponível ao criar faturas na guia "cliente" de terceiros
    +YouMustCreateInvoiceFromSupplierThird=Essa opção só está disponível ao criar faturas na guia "fornecedor" de terceiros
    +YouMustCreateStandardInvoiceFirstDesc=Você precisa criar uma fatura padrão primeiro e convertê-la em "modelo" para criar uma nova fatura modelo
     PDFCrabeDescription=Modelo de fatura PDF Crabe. Um modelo completo de fatura (modelo recomendado)
    -PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
    -TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    +PDFSpongeDescription=Modelo PDF da fatura Esponja. Um modelo de fatura completo
    +PDFCrevetteDescription=Modelo PDF da fatura Crevette. Um modelo de fatura completo para faturas de situação
    +TerreNumRefModelDesc1=Devolve o número com o formato %syymm-nnnn para facturas standard e %syymm-nnnn para notas de crédito em que yy é ano, mm é mês e nnnn é uma sequência sem pausa e sem retorno a 0
    +MarsNumRefModelDesc1=Devolve o número com o formato %syymm-nnnn para facturas standard, %syymm-nnnn para facturas de substituição, %syymm-nnnn para facturas de adiantamento e %syymm-nnnn para notas de crédito onde yy é ano, mm é mês e nnnn é uma sequência sem pausa e sem voltar para 0
     TerreNumRefModelError=Uma conta a começar com $syymm já existe e não é compatível com este modelo de sequencia. Remove-o ou renomeia para activar este modulo
    -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    +CactusNumRefModelDesc1=Devolve o número com o formato %syymm-nnnn para facturas standard, %syymm-nnnn para notas de crédito e %syymm-nnnn para facturas de adiantamento onde yy é ano, mm é mês e nnnn é uma sequência sem pausa e sem retorno a 0
     ##### Types de contacts #####
     TypeContact_facture_internal_SALESREPFOLL=Representante que dá seguimento à fatura do cliente
     TypeContact_facture_external_BILLING=Contacto na fatura do cliente
    @@ -502,47 +505,48 @@ TypeContact_facture_external_SERVICE=Contactar o serviço ao cliente
     TypeContact_invoice_supplier_internal_SALESREPFOLL=Representante de vendas que dá seguimento à fatura do fornecedor
     TypeContact_invoice_supplier_external_BILLING=Contacto na fatura do fornecedor
     TypeContact_invoice_supplier_external_SHIPPING=Fornecedor Contactar com transporte
    -TypeContact_invoice_supplier_external_SERVICE=Supplier service contact
    +TypeContact_invoice_supplier_external_SERVICE=Contato de serviço do fornecedor
     # Situation invoices
    -InvoiceFirstSituationAsk=First situation invoice
    -InvoiceFirstSituationDesc=The <b>situation invoices</b> are tied to situations related to a progression, for example the progression of a construction. Each situation is tied to an invoice.
    -InvoiceSituation=Situation invoice
    -InvoiceSituationAsk=Invoice following the situation
    -InvoiceSituationDesc=Create a new situation following an already existing one
    -SituationAmount=Situation invoice amount(net)
    -SituationDeduction=Situation subtraction
    +InvoiceFirstSituationAsk=Fatura da primeira situação
    +InvoiceFirstSituationDesc=As <b> faturas de situação </ b> estão vinculadas a situações relacionadas a uma progressão, por exemplo, a progressão de uma construção. Cada situação está vinculada a uma fatura.
    +InvoiceSituation=Fatura de situação
    +InvoiceSituationAsk=Fatura seguindo a situação
    +InvoiceSituationDesc=Crie uma nova situação seguindo uma já existente
    +SituationAmount=Valor da fatura da situação (líquida)
    +SituationDeduction=Subtração de situação
     ModifyAllLines=Modificar todas as linhas
     CreateNextSituationInvoice=Criar situação seguinte
    -ErrorFindNextSituationInvoice=Error unable to find next situation cycle ref
    -ErrorOutingSituationInvoiceOnUpdate=Unable to outing this situation invoice.
    -ErrorOutingSituationInvoiceCreditNote=Unable to outing linked credit note.
    +ErrorFindNextSituationInvoice=Erro incapaz de encontrar a próxima referência do ciclo da situação
    +ErrorOutingSituationInvoiceOnUpdate=Não é possível exibir essa fatura de situação.
    +ErrorOutingSituationInvoiceCreditNote=Não é possível apresentar a nota de crédito vinculada.
     NotLastInCycle=Esta fatura não é a mais recente no ciclo e não deve ser modificada.
     DisabledBecauseNotLastInCycle=A situação seguinte já existe.
     DisabledBecauseFinal=Esta situação é final.
    -situationInvoiceShortcode_AS=AS
    +situationInvoiceShortcode_AS=COMO
     situationInvoiceShortcode_S=Dom
    -CantBeLessThanMinPercent=The progress can't be smaller than its value in the previous situation.
    +CantBeLessThanMinPercent=O progresso não pode ser menor que seu valor na situação anterior.
     NoSituations=Sem situações abertas
     InvoiceSituationLast=Fatura geral e final
    -PDFCrevetteSituationNumber=Situation N°%s
    -PDFCrevetteSituationInvoiceLineDecompte=Situation invoice - COUNT
    -PDFCrevetteSituationInvoiceTitle=Situation invoice
    -PDFCrevetteSituationInvoiceLine=Situation N°%s : Inv. N°%s on %s
    -TotalSituationInvoice=Total situation
    -invoiceLineProgressError=Invoice line progress can't be greater than or equal to the next invoice line
    -updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
    -ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
    -ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +PDFCrevetteSituationNumber=Situação N ° %s
    +PDFCrevetteSituationInvoiceLineDecompte=Fatura de situação - COUNT
    +PDFCrevetteSituationInvoiceTitle=Fatura de situação
    +PDFCrevetteSituationInvoiceLine=Situação N ° %s: Inv. N ° %s em %s
    +TotalSituationInvoice=Situação total
    +invoiceLineProgressError=O progresso da linha de fatura não pode ser maior ou igual à próxima linha de fatura
    +updatePriceNextInvoiceErrorUpdateline=Erro: atualização do preço na linha da fatura: %s
    +ToCreateARecurringInvoice=Para criar uma fatura recorrente para este contrato, primeiro crie esse rascunho de fatura, converta-o em um modelo de fatura e defina a frequência de geração de faturas futuras.
    +ToCreateARecurringInvoiceGene=Para gerar faturas futuras de forma regular e manual, basta acessar o menu <strong> %s - %s - %s </ strong>.
    +ToCreateARecurringInvoiceGeneAuto=Se você precisar gerar essas faturas automaticamente, peça ao seu administrador para ativar e configurar o módulo <strong> %s </ strong>. Note que ambos os métodos (manual e automático) podem ser usados ​​juntos sem risco de duplicação.
     DeleteRepeatableInvoice=Delete template invoice
    -ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
    -CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    -BillCreated=%s bill(s) created
    +ConfirmDeleteRepeatableInvoice=Tem certeza de que deseja excluir a fatura do modelo?
    +CreateOneBillByThird=Crie uma fatura por terceiro (caso contrário, uma fatura por pedido)
    +BillCreated=%s projeto (s) criado (s)
     StatusOfGeneratedDocuments=Estado da geração de documentos
    -DoNotGenerateDoc=Do not generate document file
    -AutogenerateDoc=Auto generate document file
    -AutoFillDateFrom=Set start date for service line with invoice date
    -AutoFillDateFromShort=Set start date
    -AutoFillDateTo=Set end date for service line with next invoice date
    -AutoFillDateToShort=Set end date
    -MaxNumberOfGenerationReached=Max number of gen. reached
    +DoNotGenerateDoc=Não gerar arquivo de documento
    +AutogenerateDoc=Auto gerar arquivo de documento
    +AutoFillDateFrom=Definir data de início para a linha de serviço com data da fatura
    +AutoFillDateFromShort=Definir data de início
    +AutoFillDateTo=Definir data final para a linha de serviço com a próxima data da fatura
    +AutoFillDateToShort=Definir data final
    +MaxNumberOfGenerationReached=Número máximo de gen. alcançado
    +BILL_DELETEInDolibarr=Fatura eliminada
    diff --git a/htdocs/langs/pt_PT/cashdesk.lang b/htdocs/langs/pt_PT/cashdesk.lang
    index fb9a4bb4eac..1e1aa0dc6f9 100644
    --- a/htdocs/langs/pt_PT/cashdesk.lang
    +++ b/htdocs/langs/pt_PT/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Mostrar empresa
     ShowStock=Mostrar armazém
     DeleteArticle=Clique para remover este artigo
     FilterRefOrLabelOrBC=Procurar (Ref/Etiqueta)
    -UserNeedPermissionToEditStockToUsePos=Você pede para diminuir o stock ao criar a fatura, para que o utilizador que use o Ponto de Venda necessite de permissão para editar o stock.
    +UserNeedPermissionToEditStockToUsePos=Você pede para diminuir o estoque na criação da fatura, portanto, o usuário que usa o POS precisa ter permissão para editar o estoque.
     DolibarrReceiptPrinter=Impressora de Recibos Dolibarr
    +PointOfSale=Ponto de vendas
    +PointOfSaleShort=POS
    +CloseBill=Fechar Bill
    +Floors=Andares
    +Floor=Chão
    +AddTable=Adicionar mesa
    +Place=Lugar, colocar
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Encomendar impressoras
    +SearchProduct=Pesquisar produto
    diff --git a/htdocs/langs/pt_PT/commercial.lang b/htdocs/langs/pt_PT/commercial.lang
    index c9a3d30d49c..2cbe59b9476 100644
    --- a/htdocs/langs/pt_PT/commercial.lang
    +++ b/htdocs/langs/pt_PT/commercial.lang
    @@ -50,8 +50,9 @@ ActionAffectedTo=Acção assignada a
     ActionDoneBy=Acção realizada por
     ActionAC_TEL=Chamada telefónica
     ActionAC_FAX=Enviar fax
    -ActionAC_PROP=Envío orçamento por correio
    +ActionAC_PROP=Envío de orçamento por correio
     ActionAC_EMAIL=Enviar email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Reuniões
     ActionAC_INT=Intervenção no local
     ActionAC_FAC=Enviar fatura do cliente por correio
    @@ -69,11 +70,11 @@ ActionAC_AUTO=Eventos inseridos automaticamente
     ActionAC_OTH_AUTOShort=Auto
     Stats=Estatísticas de venda
     StatusProsp=Estado da prospeção
    -DraftPropals=Orçamentos em rascunho
    +DraftPropals=Orçamentos rascunhos
     NoLimit=Sem limite
     ToOfferALinkForOnlineSignature=Link para assinatura online
    -WelcomeOnOnlineSignaturePage=Bem-vindo à página onde pode aceitar orçamentos de %s
    -ThisScreenAllowsYouToSignDocFrom=Esta página permite que você aceite e assine, ou recuse um orçamento
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
    +ThisScreenAllowsYouToSignDocFrom=Esta página permite-lhe aceitar e assinar, ou recusar um orçamento/cotação
     ThisIsInformationOnDocumentToSign=Esta é a informação no documento para aceitar ou recusar
    -SignatureProposalRef=Assinatura do orçamento%s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Recurso para assinatura online desativado ou este documento foi criado antes que o recurso fosse ativado
    diff --git a/htdocs/langs/pt_PT/companies.lang b/htdocs/langs/pt_PT/companies.lang
    index 9c812c24e54..9c149d3b2ff 100644
    --- a/htdocs/langs/pt_PT/companies.lang
    +++ b/htdocs/langs/pt_PT/companies.lang
    @@ -8,10 +8,10 @@ ConfirmDeleteContact=Deseja eliminar este contacto e toda a sua informação?
     MenuNewThirdParty=Novo Terceiro
     MenuNewCustomer=Novo Cliente
     MenuNewProspect=Novo Potencial Cliente
    -MenuNewSupplier=Novo fornecedor
    +MenuNewSupplier=Novo Fornecedor
     MenuNewPrivateIndividual=Novo Particular
    -NewCompany=Nova empresa (cliente potencial, cliente, fornecedor)
    -NewThirdParty=Novo terceiro (prospeto, cliente, fornecedor)
    +NewCompany=Nova empresa (potencial cliente, cliente, fornecedor)
    +NewThirdParty=Novo Terceiro (potencial cliente, cliente, fornecedor)
     CreateDolibarrThirdPartySupplier=Criar um terceiro (fornecedor)
     CreateThirdPartyOnly=Criar terceiro
     CreateThirdPartyAndContact=Criar um terceiro e um dos seus contactos
    @@ -25,10 +25,10 @@ ThirdPartyContact=Contacto de Terceiro
     Company=Empresa
     CompanyName=Razão social
     AliasNames=Pseudónimo (comercial, marca registada, ...)
    -AliasNameShort=Pseudónimo
    +AliasNameShort=Nome do alias
     Companies=Empresas
    -CountryIsInEEC=País da Comunidade Económica Europeia
    -ThirdPartyName=Nome de terceiros
    +CountryIsInEEC=País faz parte da Comunidade Económica Europeia
    +ThirdPartyName=Nome do Terceiro
     ThirdPartyEmail=Email do terceiro
     ThirdParty=Terceiro
     ThirdParties=Terceiros
    @@ -38,9 +38,9 @@ ThirdPartyCustomers=Clientes
     ThirdPartyCustomersStats=Clientes
     ThirdPartyCustomersWithIdProf12=Clientes com %s ó %s
     ThirdPartySuppliers=Fornecedores
    -ThirdPartyType=Tipo de Terceiro
    +ThirdPartyType=Tipo de Empresa
     Individual=Particular
    -ToCreateContactWithSameName=Isto irá criar automaticamente um contacto/morada com a mesma informação do terceiro. Na maioria dos casos, mesmo que o terceiro seja uma pessoa física, criar um terceiro apenas é suficiente.
    +ToCreateContactWithSameName=Criará um terceiro e um contato / endereço vinculado com as mesmas informações do terceiro. Na maioria dos casos, mesmo que seu Terceiro seja uma pessoa física, criar um terceiro é suficiente.
     ParentCompany=Empresa-mãe
     Subsidiaries=Subsidiárias
     ReportByMonth=Relatório por mês
    @@ -50,7 +50,7 @@ CivilityCode=Código cortesía
     RegisteredOffice=Domicilio social
     Lastname=Apelidos
     Firstname=Primeiro Nome
    -PostOrFunction=Posto de trabalho
    +PostOrFunction=Posição da tarefa
     UserTitle=Título
     NatureOfThirdParty=Natureza do terceiro
     Address=Direcção
    @@ -75,12 +75,12 @@ Zip=Código postal
     Town=Localidade
     Web=Web
     Poste= Posição
    -DefaultLang=Língua por omissão
    -VATIsUsed=Sujeito a IVA
    -VATIsUsedWhenSelling=Isto define se este terceiro inclui um imposto sobre vendas, ou não, quando faz uma fatura para seus próprios clientes
    +DefaultLang=Idioma predefinido
    +VATIsUsed=Imposto sobre vendas usado
    +VATIsUsedWhenSelling=Isso define se esse terceiro inclui um imposto de venda ou não quando faz uma fatura para seus próprios clientes
     VATIsNotUsed=Não sujeito a IVA
     CopyAddressFromSoc=Preencha a morada com a morada do terceiro
    -ThirdpartyNotCustomerNotSupplierSoNoRef=O terceiro não é cliente nem fornecedor, não contém qualquer objeto de referência
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Terceiros nem cliente nem fornecedor, nenhum objeto de referência disponível
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=O terceiro não é cliente nem fornecedor, descontos não estão disponíveis
     PaymentBankAccount=Conta bancária de pagamentos
     OverAllProposals=Orçamentos
    @@ -99,7 +99,7 @@ LocalTax2ES=IRPF
     TypeLocaltax1ES=Tipo RE
     TypeLocaltax2ES=Tipo IRPF
     WrongCustomerCode=Código cliente incorrecto
    -WrongSupplierCode=Código do fornecedor inválido
    +WrongSupplierCode=Código de fornecedor inválido
     CustomerCodeModel=Modelo de código cliente
     SupplierCodeModel=Modelo de código de fornecedor
     Gencod=Código de barras
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Número de identificação para efeitos de IVA (VIES)
    +VATIntra=Imposto sobre vendas / ID do IVA
     VATIntraShort=Número de identificação para efeitos de IVA
     VATIntraSyntaxIsValid=Sintaxe Válida
     VATReturn=Retorno do IVA
    @@ -269,23 +269,23 @@ Customer=Cliente
     CustomerRelativeDiscount=Desconto Cliente Relativo
     SupplierRelativeDiscount=Desconto relativo do fornecedor
     CustomerRelativeDiscountShort=Desconto Relativo
    -CustomerAbsoluteDiscountShort=Desconto Fixo
    +CustomerAbsoluteDiscountShort=Desconto fixo
     CompanyHasRelativeDiscount=Este cliente tem um desconto por defeito de <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Este cliente não tem descontos relativos por defeito
     HasRelativeDiscountFromSupplier=Você tem um desconto predefinido de <b> %s%%</b> deste fornecedor
     HasNoRelativeDiscountFromSupplier=Você não tem desconto relativo predefinido deste fornecedor
    -CompanyHasAbsoluteDiscount=Este cliente ainda tem créditos de desconto ou depósitos para <b>%s </b>%s
    -CompanyHasDownPaymentOrCommercialDiscount=Este cliente tem descontos disponíveis (comercial, pronto pagamento) para <b>%s</b>%s
    +CompanyHasAbsoluteDiscount=Este cliente tem descontos disponíveis (notas de créditos ou adiantamentos) para <b> %s </ b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=Este cliente tem descontos disponíveis (comerciais, adiantamentos) para <b> %s </ b> %s
     CompanyHasCreditNote=Este cliente ainda tem notas de crédito para <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=Você não tem desconto ou nota de crédito disponível neste fornecedor
     HasAbsoluteDiscountFromSupplier=Você tem descontos disponíveis (notas de créditos ou adiantamentos) para <b>%s</b> %s deste fornecedor
     HasDownPaymentOrCommercialDiscountFromSupplier=Você tem descontos disponíveis (comerciais, adiantamentos) para <b>%s</b> %s deste fornecedor
     HasCreditNoteFromSupplier=Você tem notas de crédito para <b>%s</b> %s deste fornecedor
     CompanyHasNoAbsoluteDiscount=Este cliente não tem mas descontos fixos disponiveis
    -CustomerAbsoluteDiscountAllUsers=Descontos absolutos de clientes (concedidos por todos os utilizadores)
    -CustomerAbsoluteDiscountMy=Descontos absolutos de clientes (concedidos por si)
    -SupplierAbsoluteDiscountAllUsers=Descontos absolutos do fornecedor (introduzidos por todos os utilizadores)
    -SupplierAbsoluteDiscountMy=Descontos absolutos de fornecedores (introduzidos por si)
    +CustomerAbsoluteDiscountAllUsers=Descontos de cliente fixos (concedidos por todos os utilizadores)
    +CustomerAbsoluteDiscountMy=Descontos de cliente fixos (concedidos por si)
    +SupplierAbsoluteDiscountAllUsers=Descontos de fornecedor fixos (inseridos por todos os utilizadores)
    +SupplierAbsoluteDiscountMy=Descontos de fornecedor fixos (inseridos por si)
     DiscountNone=Nenhuma
     Supplier=Fornecedor
     AddContact=Criar contacto
    @@ -303,20 +303,20 @@ AddThirdParty=Criar terceiro
     DeleteACompany=Eliminar uma Empresa
     PersonalInformations=Informação Pessoal
     AccountancyCode=Conta contabilistica
    -CustomerCode=Código Cliente
    -SupplierCode=Código do fornecedor
    -CustomerCodeShort=Código Cliente
    -SupplierCodeShort=Código do fornecedor
    -CustomerCodeDesc=Código único cliente para cada cliente
    -SupplierCodeDesc=Código do fornecedor, exclusivo para todos os fornecedores
    +CustomerCode=Código do Consumidor
    +SupplierCode=Código de Fornecedor
    +CustomerCodeShort=Código do Consumidor
    +SupplierCodeShort=Código de Fornecedor
    +CustomerCodeDesc=Código do cliente, exclusivo para todos os clientes
    +SupplierCodeDesc=Código de Fornecedor, exclusivo para todos os fornecedores
     RequiredIfCustomer=Requerida se o Terceiro for Cliente ou Cliente Potencial
     RequiredIfSupplier=Obrigatório se os terceiros forem fornecedores
    -ValidityControledByModule=Validação Controlada pelo Módulo
    -ThisIsModuleRules=Esta é a regra para este módulo
    +ValidityControledByModule=Validade controlada pelo módulo
    +ThisIsModuleRules=Regras para este módulo
     ProspectToContact=Cliente Potencial a Contactar
     CompanyDeleted=A Empresa "%s" foi Eliminada
     ListOfContacts=Lista de Contactos
    -ListOfContactsAddresses=Lista de contactos/endereços
    +ListOfContactsAddresses=Lista de Contactos
     ListOfThirdParties=Lista de Terceiros
     ShowCompany=Mostrar terceiros
     ShowContact=Mostrar Contacto
    @@ -332,21 +332,21 @@ NoContactForAnyOrderOrShipments=Este contacto não é um contacto para qualquer
     NoContactForAnyProposal=Este contacto não é um contacto para qualquer orçamento
     NoContactForAnyContract=Este contacto não é contacto de nenhum contrato
     NoContactForAnyInvoice=Este contacto não é contacto de nenhuma fatura
    -NewContact=Novo Contacto
    -NewContactAddress=Novo Contato/Morada
    +NewContact=Novo contacto
    +NewContactAddress=Novo Contacto/Morada
     MyContacts=Os Meus Contactos
     Capital=Capital
     CapitalOf=Capital Social de %s
     EditCompany=Modificar Empresa
    -ThisUserIsNot=Este utilizador não é um cliente potencial, cliente ou fornecedor
    +ThisUserIsNot=Este usuário não é um possível cliente, cliente ou fornecedor
     VATIntraCheck=Verificar
    -VATIntraCheckDesc=o link <b>%s</b> permite consultar à serviço europeu de control de números de IVA intracomunitario. Requer acesso á internet para que o serviço funcione
    +VATIntraCheckDesc=O link <b> %s </ b> utiliza o serviço europeu de verificação de IVA (VIES). É necessário um acesso externo à Internet do servidor para que este serviço funcione.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Verificar na web da Comissão Europeia
    -VATIntraManualCheck=Pode também realizar uma verificação manual na web europea <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Verificar o IVA intracomunitário no site da Comissão Europeia
    +VATIntraManualCheck=Você também pode verificar manualmente no site da Comissão Europeia <a href="%s" target="_blank"> %s </a>
     ErrorVATCheckMS_UNAVAILABLE=Verificação Impossivel. O serviço de verificação não é prestado pelo país membro (%s).
    -NorProspectNorCustomer=Nem Cliente, Nem Cliente Potencial
    -JuridicalStatus=Forma jurídica
    +NorProspectNorCustomer=Não perspectiva, ou cliente
    +JuridicalStatus=Tipo de Entidade Legal
     Staff=Empregados
     ProspectLevelShort=Cli. Potenc.
     ProspectLevel=Cliente Potencial
    @@ -387,12 +387,12 @@ ExportCardToFormat=Exportar ficha para o formato
     ContactNotLinkedToCompany=Contacto não vinculado a um Terceiro
     DolibarrLogin=Dolibarr - Iniciar Sessão
     NoDolibarrAccess=Sem Acesso
    -ExportDataset_company_1=Terceiros (empresas/fundações/pessoas físicas) e propriedades
    -ExportDataset_company_2=Contactos de Terceiro e Atributos
    -ImportDataset_company_1=Terceiros (empresas/fundações/pessoas físicas) e propriedades
    -ImportDataset_company_2=Contactos/Endereços (de terceiros ou não) e atributos
    +ExportDataset_company_1=Terceiros (empresas / fundações / pessoas físicas) e suas propriedades
    +ExportDataset_company_2=Contatos e suas propriedades
    +ImportDataset_company_1=Terceiros (empresas / fundações / pessoas físicas) e suas propriedades
    +ImportDataset_company_2=Contatos / Endereços e atributos
     ImportDataset_company_3=Contas bancárias de terceiros
    -ImportDataset_company_4=Terceiros/Representantes de vendas (atribuir utilizadores representantes de vendas a terceiros)
    +ImportDataset_company_4=Terceiros - representantes de vendas (atribua representantes de vendas / usuários a empresas)
     PriceLevel=Nível de preços
     DeliveryAddress=Direcção de Envío
     AddAddress=Adicionar Direcção
    @@ -402,16 +402,16 @@ DeleteFile=Eliminar ficheiro
     ConfirmDeleteFile=Tem a certeza que quer eliminar este ficheiro?
     AllocateCommercial=Atribuído a representante de vendas
     Organization=Organismo
    -FiscalYearInformation=Informação do Ano Fiscal
    +FiscalYearInformation=Ano fiscal
     FiscalMonthStart=Mês de Inicio do Exercício
    -YouMustAssignUserMailFirst=Você deve adicionar um e-mail a este utilizador de forma a permitir que este receba notificações por e-mail.
    +YouMustAssignUserMailFirst=Você deve criar um email para esse usuário antes de poder adicionar uma notificação por email.
     YouMustCreateContactFirst=Para adicionar a funcionalidade de notificações por e-mail, você deve definir contactos com e-mails válidos para o terceiro.
    -ListSuppliersShort=Lista de fornecedores
    -ListProspectsShort=Lista das perspectivas
    -ListCustomersShort=Lista de clientes
    -ThirdPartiesArea=Área de Terceiros e Contactos
    -LastModifiedThirdParties=Últimos %s terceiros modificados
    -UniqueThirdParties=Total de originais terceiros
    +ListSuppliersShort=Lista de Fornecedores
    +ListProspectsShort=Lista de Perspectivas
    +ListCustomersShort=Lista de Clientes
    +ThirdPartiesArea=Terceiros / Contatos
    +LastModifiedThirdParties=Última %s modificado Terceiros
    +UniqueThirdParties=Total de Terceiros
     InActivity=Aberto
     ActivityCeased=Fechado
     ThirdPartyIsClosed=O terceiro encontra-se fechado
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Risco alcançado
     OutstandingBill=Montante máximo para faturas pendentes
     OutstandingBillReached=Montante máximo para faturas pendente foi alcançado
     OrderMinAmount=Quantidade mínima para encomenda
    -MonkeyNumRefModelDesc=Devolve um número com formato %syymm-nnnn para os códigos clientes e %syymm-nnnn para os códigos de fornecedores, onde yy representa o ano, mm o mês e nnnn um contador sequencial que não quebra e não regressa a 0.
    +MonkeyNumRefModelDesc=Retorna um número com o formato %syymm-nnnn para o código do cliente e %syymm-nnnn para o código do fornecedor, onde yy é year, mm é month e nnnn é uma sequência sem quebra e sem retorno para 0.
     LeopardNumRefModelDesc=Código de cliente/fornecedor livre sem verificação. pode ser modificado em qualquer momento.
     ManagingDirectors=Nome Diretor(es) (DE, diretor, presidente ...)
     MergeOriginThirdparty=Terceiro duplicado (terceiro que deseja eliminar)
     MergeThirdparties=Gerir terceiros
    -ConfirmMergeThirdparties=Tem a certeza que pretende fundir este terceiro com o atual? Todos os objetos ligados a este serão movidos para o terceiro atual e depois o anterior será eliminado.
    +ConfirmMergeThirdparties=Tem certeza de que deseja mesclar esse terceiro no atual? Todos os objetos vinculados (faturas, pedidos, ...) serão movidos para o terceiro atual e, em seguida, o terceiro será excluído.
     ThirdpartiesMergeSuccess=Os terceiros foram fundidos
     SaleRepresentativeLogin=Nome de utilizador do representante de vendas
     SaleRepresentativeFirstname=Primeiro nome do representante de vendas
     SaleRepresentativeLastname=Último nome do representante de vendas
     ErrorThirdpartiesMerge=Houve um erro ao eliminar os terceiros. Por favor, verifique o registo. As alterações foram revertidas.
    -NewCustomerSupplierCodeProposed=O código do cliente ou fornecedor sugerido encontra-se duplicado
    +NewCustomerSupplierCodeProposed=Código do cliente ou fornecedor já utilizado, um novo código é sugerido
    diff --git a/htdocs/langs/pt_PT/compta.lang b/htdocs/langs/pt_PT/compta.lang
    index 15b70fc39e3..f770c0e4402 100644
    --- a/htdocs/langs/pt_PT/compta.lang
    +++ b/htdocs/langs/pt_PT/compta.lang
    @@ -9,7 +9,7 @@ OptionModeTrueDesc=Neste método, o balanço calcula-se sobre a base das faturas
     OptionModeVirtualDesc=Neste contexto, o balanço é calculado sobre as faturas (data de validação). Quando essas faturas são devidas, tenham sido pagas ou não, elas serão listadas no resultado do balanço.
     FeatureIsSupportedInInOutModeOnly=Função disponível somente ao modo contas CREDITOS-dividas (Ver a configuração do módulo contas)
     VATReportBuildWithOptionDefinedInModule=Montantes apresentados aqui são calculadas usando as regras definidas pelo Imposto de configuração do módulo.
    -LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using rules defined by Company setup.
    +LTReportBuildWithOptionDefinedInModule=Os valores mostrados aqui são calculados usando regras definidas pela configuração da empresa.
     Param=Parametrização
     RemainingAmountPayment=Valor restante do pagamento:
     Account=Conta
    @@ -19,12 +19,12 @@ Income=Depósitos
     Outcome=Despesas
     MenuReportInOut=Resultado / Exercício
     ReportInOut=Saldo de receitas e despesas
    -ReportTurnover=Turnover invoiced
    -ReportTurnoverCollected=Turnover collected
    +ReportTurnover=Volume de negócios faturado
    +ReportTurnoverCollected=Volume de negócios recolhido
     PaymentsNotLinkedToInvoice=Pagamentos não vinculados a qualquer fatura, portanto não vinculados a terceiros
     PaymentsNotLinkedToUser=Pagamentos não vinculados a um utilizador
     Profit=Beneficio
    -AccountingResult=Accounting result
    +AccountingResult=Resultado contabilístico
     BalanceBefore=Saldo (antes)
     Balance=Saldo
     Debit=Débito
    @@ -35,163 +35,163 @@ AmountHTVATRealPaid=Total Pago
     VATToPay=Imposto a pagar
     VATReceived=Imposto recebido
     VATToCollect=Imposto a receber
    -VATSummary=Tax monthly
    +VATSummary=Imposto mensal
     VATBalance=Resumo do imposto
     VATPaid=Imposto pago
    -LT1Summary=Tax 2 summary
    -LT2Summary=Tax 3 summary
    +LT1Summary=Resumo do Imposto 2
    +LT2Summary=Resumo do imposto 3
     LT1SummaryES=RE Balance
     LT2SummaryES=Balanço IRPF
    -LT1SummaryIN=CGST Balance
    -LT2SummaryIN=SGST Balance
    -LT1Paid=Tax 2 paid
    -LT2Paid=Tax 3 paid
    -LT1PaidES=RE Paid
    +LT1SummaryIN=Balanço CGST
    +LT2SummaryIN=Balanço SGST
    +LT1Paid=Imposto 2 pago
    +LT2Paid=Imposto 3 pago
    +LT1PaidES=RE pago
     LT2PaidES=IRPF Pago
    -LT1PaidIN=CGST Paid
    -LT2PaidIN=SGST Paid
    -LT1Customer=Tax 2 sales
    -LT1Supplier=Tax 2 purchases
    -LT1CustomerES=RE sales
    -LT1SupplierES=RE purchases
    -LT1CustomerIN=CGST sales
    -LT1SupplierIN=CGST purchases
    -LT2Customer=Tax 3 sales
    -LT2Supplier=Tax 3 purchases
    +LT1PaidIN=CGST Pago
    +LT2PaidIN=SGST Pago
    +LT1Customer=Vendas de imposto 2
    +LT1Supplier=Compras de impostos 2
    +LT1CustomerES=Vendas RE
    +LT1SupplierES=Compras RE
    +LT1CustomerIN=Vendas CGST
    +LT1SupplierIN=Compras CGST
    +LT2Customer=Vendas de imposto 3
    +LT2Supplier=Compras de imposto 3
     LT2CustomerES=Vendas IRPF
     LT2SupplierES=Compras IRPF
    -LT2CustomerIN=SGST sales
    -LT2SupplierIN=SGST purchases
    +LT2CustomerIN=Vendas do SGST
    +LT2SupplierIN=Compras do SGST
     VATCollected=IVA Recuperado
     ToPay=A pagar
     SpecialExpensesArea=Área para todos os pagamentos especiais
     SocialContribution=Imposto social ou fiscal
     SocialContributions=Impostos sociais ou fiscais
    -SocialContributionsDeductibles=Deductible social or fiscal taxes
    -SocialContributionsNondeductibles=Nondeductible social or fiscal taxes
    -LabelContrib=Label contribution
    -TypeContrib=Type contribution
    +SocialContributionsDeductibles=Impostos sociais ou fiscais dedutíveis
    +SocialContributionsNondeductibles=Impostos sociais ou fiscais não dedutíveis
    +LabelContrib=Contribuição de etiqueta
    +TypeContrib=Digite contribuição
     MenuSpecialExpenses=Despesas Especiais
     MenuTaxAndDividends=Impostos e Dividas
     MenuSocialContributions=Impostos sociais/fiscais
    -MenuNewSocialContribution=Novo imposto
    -NewSocialContribution=Novo imposto social/fiscal
    -AddSocialContribution=Add social/fiscal tax
    +MenuNewSocialContribution=Novo imposto fiscal/social
    +NewSocialContribution=Novo imposto fiscal/social
    +AddSocialContribution=Adicionar imposto social / fiscal
     ContributionsToPay=Impostos sociais/fiscais por pagar
    -AccountancyTreasuryArea=Billing and payment area
    +AccountancyTreasuryArea=Área de cobrança e pagamento
     NewPayment=Novo pagamento
     Payments=Pagamentos
     PaymentCustomerInvoice=Pagamento de fatura do cliente
    -PaymentSupplierInvoice=Vendor invoice payment
    +PaymentSupplierInvoice=Pagamento da fatura de fornecedor
     PaymentSocialContribution=Pagamento da taxa social/fiscal
     PaymentVat=Pagamento IVA
     ListPayment=Lista de pagamentos
     ListOfCustomerPayments=Lista de pagamentos de clientes
    -ListOfSupplierPayments=List of vendor payments
    -DateStartPeriod=Date start period
    -DateEndPeriod=Date end period
    -newLT1Payment=New tax 2 payment
    -newLT2Payment=New tax 3 payment
    -LT1Payment=Tax 2 payment
    -LT1Payments=Tax 2 payments
    -LT2Payment=Tax 3 payment
    -LT2Payments=Tax 3 payments
    -newLT1PaymentES=New RE payment
    +ListOfSupplierPayments=Lista de pagamentos de fornecedores
    +DateStartPeriod=Data de início do período
    +DateEndPeriod=Período final de data
    +newLT1Payment=Novo imposto 2 pagamento
    +newLT2Payment=Novo pagamento de imposto 3
    +LT1Payment=Pagamento do imposto 2
    +LT1Payments=Pagamentos de imposto 2
    +LT2Payment=Pagamento de imposto 3
    +LT2Payments=Pagamentos de imposto 3
    +newLT1PaymentES=Novo pagamento RE
     newLT2PaymentES=Nova pagamento IRPF
    -LT1PaymentES=RE Payment
    -LT1PaymentsES=RE Payments
    +LT1PaymentES=Pagamento RE
    +LT1PaymentsES=Pagamentos RE
     LT2PaymentES=Pagamento IRPF
     LT2PaymentsES=Pagamentos IRPF
     VATPayment=Pagamento de imposto sobre vendas
     VATPayments=Pagamentos de impostos sobre vendas
    -VATRefund=Sales tax refund
    -NewVATPayment=New sales tax payment
    -NewLocalTaxPayment=New tax %s payment
    -Refund=Refund
    +VATRefund=Reembolso de imposto sobre vendas
    +NewVATPayment=Novo pagamento de impostos sobre vendas
    +NewLocalTaxPayment=Novo imposto %s pagamento
    +Refund=Reembolso
     SocialContributionsPayments=Pagamentos de impostos sociais/fiscais
     ShowVatPayment=Ver Pagamentos IVA
     TotalToPay=Total a Pagar
    -BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted ascending on %s and filtered for 1 bank account
    -CustomerAccountancyCode=Customer accounting code
    -SupplierAccountancyCode=Vendor accounting code
    -CustomerAccountancyCodeShort=Cust. account. code
    -SupplierAccountancyCodeShort=Sup. account. code
    +BalanceVisibilityDependsOnSortAndFilters=O saldo é visível nesta lista apenas se a tabela estiver classificada como ascendente no %s e filtrada para uma conta bancária
    +CustomerAccountancyCode=Código de contabilidade do cliente
    +SupplierAccountancyCode=Código de contabilidade do fornecedor
    +CustomerAccountancyCodeShort=Cust. conta. código
    +SupplierAccountancyCodeShort=Sup. conta. código
     AccountNumber=Número de conta
     NewAccountingAccount=Nova conta
    -Turnover=Turnover invoiced
    -TurnoverCollected=Turnover collected
    -SalesTurnoverMinimum=Minimum turnover
    -ByExpenseIncome=By expenses & incomes
    +Turnover=Volume de negócios faturado
    +TurnoverCollected=Volume de negócios recolhido
    +SalesTurnoverMinimum=Volume de negócios mínimo
    +ByExpenseIncome=Por despesas e rendas
     ByThirdParties=Por Terceiro
     ByUserAuthorOfInvoice=Por autor da fatura
     CheckReceipt=Ficha de cheques
     CheckReceiptShort=Ficha
    -LastCheckReceiptShort=Latest %s check receipts
    -NewCheckReceipt=Novo Cheque
    -NewCheckDeposit=Novo Deposito
    +LastCheckReceiptShort=Últimos recibos de cheques %s
    +NewCheckReceipt=Novo desconto
    +NewCheckDeposit=Novo depósito de cheque
     NewCheckDepositOn=Criar Novo deposito na conta: %s
     NoWaitingChecks=Nenhum cheque aguarda depósito.
     DateChequeReceived=Data da receção do cheque
    -NbOfCheques=Nº de Cheques
    +NbOfCheques=Nº de cheques
     PaySocialContribution=Pagar um imposto social/fiscal
     ConfirmPaySocialContribution=Tem certeza de que deseja classificar este imposto social ou fiscal como pago?
     DeleteSocialContribution=Eliminar um pagamento de imposto social ou fiscal
     ConfirmDeleteSocialContribution=Tem certeza de que deseja eliminar este pagamento de imposto social/fiscal?
     ExportDataset_tax_1=Impostos e pagamentos sociais e fiscais
    -CalcModeVATDebt=Mode <b>%sVAT on commitment accounting%s</b>.
    -CalcModeVATEngagement=Mode <b>%sVAT on incomes-expenses%s</b>.
    -CalcModeDebt=Analysis of known recorded invoices even if they are not yet accounted in ledger.
    -CalcModeEngagement=Analysis of known recorded payments, even if they are not yet accounted in Ledger.
    -CalcModeBookkeeping=Analysis of <b>data journalized in Bookkeeping Ledger table</b>
    -CalcModeLT1= Mode <b>%sRE on customer invoices - suppliers invoices%s</b>
    -CalcModeLT1Debt=Mode <b>%sRE on customer invoices%s</b>
    -CalcModeLT1Rec= Mode <b>%sRE on suppliers invoices%s</b>
    -CalcModeLT2= Mode <b>%sIRPF on customer invoices - suppliers invoices%s</b>
    -CalcModeLT2Debt=Mode <b>%sIRPF on customer invoices%s</b>
    -CalcModeLT2Rec= Mode <b>%sIRPF on suppliers invoices%s</b>
    +CalcModeVATDebt=Modo <b> %sVAT no compromisso accounting%s </ b>.
    +CalcModeVATEngagement=Modo <b> %sVAT em rendimentos-expenses%s </ b>.
    +CalcModeDebt=Análise de faturas registradas, mesmo que ainda não estejam contabilizadas no razão.
    +CalcModeEngagement=Análise de pagamentos registrados conhecidos, mesmo que eles ainda não sejam contabilizados no Ledger.
    +CalcModeBookkeeping=Análise de dados com periodicidade na tabela Ledger de contabilidade.
    +CalcModeLT1= Modo <b> %sRE nas faturas do cliente - fornecedores invoices%s </ b>
    +CalcModeLT1Debt=Modo <b> %sRE no cliente invoices%s </ b>
    +CalcModeLT1Rec= Modo <b> %sRE em fornecedores invoices%s </ b>
    +CalcModeLT2= Modo <b> %sIRPF em faturas de clientes - fornecedores invoices%s </ b>
    +CalcModeLT2Debt=Modo <b> %sIRPF no cliente invoices%s </ b>
    +CalcModeLT2Rec= Modo <b> %sIRPF em fornecedores invoices%s </ b>
     AnnualSummaryDueDebtMode=Balanço da receita e despesas, resumo anual
     AnnualSummaryInputOutputMode=Balanço da receita e despesas, resumo anual
    -AnnualByCompanies=Balance of income and expenses, by predefined groups of account
    -AnnualByCompaniesDueDebtMode=Balance of income and expenses, detail by predefined groups, mode <b>%sClaims-Debts%s</b> said <b>Commitment accounting</b>.
    -AnnualByCompaniesInputOutputMode=Balance of income and expenses, detail by predefined groups, mode <b>%sIncomes-Expenses%s</b> said <b>cash accounting</b>.
    -SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on actual payments made even if they are not yet accounted in Ledger.
    -SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even if they are not yet accounted in Ledger.
    -SeeReportInBookkeepingMode=See <b>%sBookeeping report%s</b> for a calculation on <b>Bookkeeping Ledger table</b>
    +AnnualByCompanies=Saldo de receitas e despesas, por grupos predefinidos de conta
    +AnnualByCompaniesDueDebtMode=Saldo de receitas e despesas, detalhe por grupos predefinidos, modo <b> %sClaims-Debts%s </ b> disse <b> Contabilidade de compromisso </ b>.
    +AnnualByCompaniesInputOutputMode=Saldo de receitas e despesas, detalhe por grupos predefinidos, modo <b> %sIncomes-Expenses%s </ b> disse <b> contabilidade de caixa </ b>.
    +SeeReportInInputOutputMode=Consulte %sanálise de payments%s para um cálculo de pagamentos reais efetuados, mesmo que eles ainda não tenham sido contabilizados no Ledger.
    +SeeReportInDueDebtMode=Consulte %sanálise de invoices%s para um cálculo baseado em faturas registradas conhecidas, mesmo que elas ainda não tenham sido contabilizadas no Ledger.
    +SeeReportInBookkeepingMode=Consulte <b> %sRelatório de reservas%s </ b> para um cálculo na <b> tabela Razão da contabilidade </ b>
     RulesAmountWithTaxIncluded=- Os montantes exibidos contêm todas as taxas incluídas
    -RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whether they are paid or not. Is also includes paid salaries.<br>- It is based on the validation date of invoices and VAT and on the due date for expenses. For salaries defined with Salary module, the value date of payment is used.
    -RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries. <br>- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation.
    -RulesCADue=- It includes the client's due invoices whether they are paid or not. <br>- It is based on the validation date of these invoices.<br>
    +RulesResultDue=- Inclui faturas pendentes, despesas, IVA, doações, sejam elas pagas ou não. Inclui também salários pagos. <br> - Baseia-se na data de validação das faturas e do IVA e na data de vencimento das despesas. Para os salários definidos com o módulo Salário, a data-valor do pagamento é utilizada.
    +RulesResultInOut=- Inclui os pagamentos reais feitos em faturas, despesas, IVA e salários. <br> - Baseia-se nas datas de pagamento das faturas, despesas, IVA e salários. A data de doação para doação.
    +RulesCADue=- Inclui as faturas devidas do cliente, sejam elas pagas ou não. <br> - É baseado na data de validação dessas faturas. <br>
     RulesCAIn=- Inclui os pagamentos efetuados das faturas a clientes.<br>- Se baseia na data de pagamento das mesmas<br>
    -RulesCATotalSaleJournal=It includes all credit lines from the Sale journal.
    -RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME"
    -RulesResultBookkeepingPredefined=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME"
    -RulesResultBookkeepingPersonalized=It show record in your Ledger with accounting accounts <b>grouped by personalized groups</b>
    -SeePageForSetup=See menu <a href="%s">%s</a> for setup
    +RulesCATotalSaleJournal=Inclui todas as linhas de crédito do diário de venda.
    +RulesAmountOnInOutBookkeepingRecord=Inclui registro em seu livro contábil com contas contábeis que tem o grupo "DESPESA" ou "LUCRO"
    +RulesResultBookkeepingPredefined=Inclui registro em seu livro contábil com contas contábeis que tem o grupo "DESPESA" ou "LUCRO"
    +RulesResultBookkeepingPersonalized=Ele mostra um registro em seu livro contábil com contas contábeis <b> agrupadas por grupos personalizados </ b>
    +SeePageForSetup=Veja o menu <a href="%s"> %s </a> para configuração
     DepositsAreNotIncluded=- As faturas de adiantamento não estão incluídas
     DepositsAreIncluded=- As faturas de adiantamento estão incluídas
    -LT1ReportByCustomers=Report tax 2 by third party
    -LT2ReportByCustomers=Report tax 3 by third party
    -LT1ReportByCustomersES=Report by third party RE
    +LT1ReportByCustomers=Denunciar imposto 2 por terceiros
    +LT2ReportByCustomers=Denunciar imposto 3 por terceiros
    +LT1ReportByCustomersES=Relatório de terceiros RE
     LT2ReportByCustomersES=Relatório de terceiros IRPF
    -VATReport=Sale tax report
    -VATReportByPeriods=Sale tax report by period
    -VATReportByRates=Sale tax report by rates
    -VATReportByThirdParties=Sale tax report by third parties
    -VATReportByCustomers=Sale tax report by customer
    -VATReportByCustomersInInputOutputMode=Report by the customer VAT collected and paid
    -VATReportByQuartersInInputOutputMode=Report by Sale tax rate of the tax collected and paid
    -LT1ReportByQuarters=Report tax 2 by rate
    -LT2ReportByQuarters=Report tax 3 by rate
    -LT1ReportByQuartersES=Report by RE rate
    -LT2ReportByQuartersES=Report by IRPF rate
    +VATReport=Relatório fiscal de venda
    +VATReportByPeriods=Relatório fiscal de vendas por período
    +VATReportByRates=Relatório fiscal de venda por taxas
    +VATReportByThirdParties=Relatório fiscal de vendas de terceiros
    +VATReportByCustomers=Relatório fiscal de venda por cliente
    +VATReportByCustomersInInputOutputMode=Relatório do IVA do cliente recolhido e pago
    +VATReportByQuartersInInputOutputMode=Relatório por taxa de imposto de venda do imposto cobrado e pago
    +LT1ReportByQuarters=Relate imposto 2 pela taxa
    +LT2ReportByQuarters=Relate imposto 3 pela taxa
    +LT1ReportByQuartersES=Relatório por taxa de retorno
    +LT2ReportByQuartersES=Relatório por taxa de IRPF
     SeeVATReportInInputOutputMode=Ver o Relatório <b>%sIVA pago%s</b> para um modo de cálculo Standard
     SeeVATReportInDueDebtMode=Ver o Relatório <b>%sIVA devido%s</b> para um modo de cálculo com a Opção sobre o devido
    -RulesVATInServices=- For services, the report includes the VAT regulations actually received or issued on the basis of the date of payment.
    +RulesVATInServices=- Para serviços, o relatório inclui os regulamentos do IVA efetivamente recebidos ou emitidos com base na data do pagamento.
     RulesVATInProducts=Para os ativos materiais, o relatório inclui o IVA recebido ou emitido com base na data do pagamento.
     RulesVATDueServices=- Para os serviços, o relatório inclui faturas de IVA devido, pago ou não, com base na data da fatura.
     RulesVATDueProducts=- Para os ativos materiais, o relatório inclui as faturas de IVA, com base na data da fatura.
     OptionVatInfoModuleComptabilite=Nota: para os ativos materiais, seria necessário utilizar a data de entrega para ser mais justo.
    -ThisIsAnEstimatedValue=This is a preview, based on business events and not from the final ledger table, so final results may differ from this preview values
    +ThisIsAnEstimatedValue=Essa é uma visualização com base em eventos de negócios e não na tabela de razão final, portanto, os resultados finais podem diferir desses valores de visualização
     PercentOfInvoice=%%/fatura
     NotUsedForGoods=Não utilizados em bens
     ProposalStats=Estatísticas sobre os orçamentos
    @@ -208,52 +208,52 @@ DescPurchasesJournal=Relatório compras
     InvoiceRef=Ref fatura.
     CodeNotDef=Não definido
     WarningDepositsNotIncluded=As faturas de adiantamento não estão incluídas nesta versão com este módulo de contabilidade.
    -DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date.
    +DatePaymentTermCantBeLowerThanObjectDate=A data do termo de pagamento não pode ser inferior à data do objeto.
     Pcg_version=Modelos de planos de contas
    -Pcg_type=Pcg type
    -Pcg_subtype=Pcg subtype
    -InvoiceLinesToDispatch=Invoice lines to dispatch
    -ByProductsAndServices=By product and service
    +Pcg_type=Tipo Pcg
    +Pcg_subtype=Subtipo de PCG
    +InvoiceLinesToDispatch=Linhas de fatura para despacho
    +ByProductsAndServices=Por produto e serviço
     RefExt=Ref externa
    -ToCreateAPredefinedInvoice=To create a template invoice, create a standard invoice, then, without validating it, click onto button "%s".
    +ToCreateAPredefinedInvoice=Para criar uma fatura modelo, crie uma fatura padrão e, sem validá-la, clique no botão "%s".
     LinkedOrder=Associar a encomenda
     Mode1=Método 1
     Mode2=Método 2
    -CalculationRuleDesc=To calculate total VAT, there is two methods:<br>Method 1 is rounding vat on each line, then summing them.<br>Method 2 is summing all vat on each line, then rounding result.<br>Final result may differs from few cents. Default mode is mode <b>%s</b>.
    -CalculationRuleDescSupplier=According to supplier, choose appropriate method to apply same calculation rule and get same result expected by your supplier.
    -TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover collected per product is not available. This report is only available for turnover invoiced.
    -TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced.
    +CalculationRuleDesc=Para calcular o IVA total, existem dois métodos: <br> O método 1 é o arredondamento do IVA em cada linha, depois a soma dos mesmos. <br> O método 2 pode somar todos os IVAs em cada linha e depois o resultado do arredondamento. de alguns centavos. O modo padrão é o modo <b> %s </ b>.
    +CalculationRuleDescSupplier=De acordo com o fornecedor, escolha o método apropriado para aplicar a mesma regra de cálculo e obter o mesmo resultado esperado pelo seu fornecedor.
    +TurnoverPerProductInCommitmentAccountingNotRelevant=O relatório do volume de negócios recolhido por produto não está disponível. Este relatório está disponível apenas para faturamento faturado.
    +TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=O relatório do volume de negócios cobrado por taxa de imposto sobre vendas não está disponível. Este relatório está disponível apenas para faturamento faturado.
     CalculationMode=Modo de cálculo
    -AccountancyJournal=Accounting code journal
    -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup)
    -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup)
    -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
    -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
    -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
    -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties
    -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
    -CloneTax=Clone a social/fiscal tax
    -ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment
    +AccountancyJournal=Diário de códigos contábeis
    +ACCOUNTING_VAT_SOLD_ACCOUNT=Conta de contabilidade por padrão para IVA sobre vendas (usada se não definida na configuração do dicionário de IVA)
    +ACCOUNTING_VAT_BUY_ACCOUNT=Conta de contabilidade por padrão para IVA nas compras (usada se não definida na configuração do dicionário de IVA)
    +ACCOUNTING_VAT_PAY_ACCOUNT=Conta de contabilidade por padrão para pagar o IVA
    +ACCOUNTING_ACCOUNT_CUSTOMER=Conta de contabilidade usada para terceiros do cliente
    +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=A conta contábil dedicada definida no cartão de terceiros será usada apenas para a contabilidade da Subledger. Este será usado para Contabilidade Geral e como valor padrão da contabilidade do Contador, se a conta contábil do cliente dedicada a terceiros não estiver definida.
    +ACCOUNTING_ACCOUNT_SUPPLIER=Conta de contabilidade usada para fornecedores de terceiros
    +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=A conta contábil dedicada definida no cartão de terceiros será usada apenas para a contabilidade da Subledger. Este será usado para Contabilidade Geral e como valor padrão da contabilidade do Contador, se a conta de contabilidade de fornecedor dedicada a terceiros não estiver definida.
    +CloneTax=Clone um imposto social / fiscal
    +ConfirmCloneTax=Confirme o clone de um imposto social / fiscal
     CloneTaxForNextMonth=Cloná-la para o mês seguinte
     SimpleReport=Relatório simples
    -AddExtraReport=Extra reports (add foreign and national customer report)
    -OtherCountriesCustomersReport=Foreign customers report
    -BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code
    -SameCountryCustomersWithVAT=National customers report
    -BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Based on the two first letters of the VAT number being the same as your own company's country code
    -LinkedFichinter=Link to an intervention
    +AddExtraReport=Relatórios extras (adicionar relatório de cliente estrangeiro e nacional)
    +OtherCountriesCustomersReport=Relatório de clientes estrangeiros
    +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Com base nas duas primeiras letras do número de IVA diferente do código de país da sua empresa
    +SameCountryCustomersWithVAT=Relatório de clientes nacionais
    +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Com base nas duas primeiras letras do número de IVA que é o mesmo que o código de país da sua empresa
    +LinkedFichinter=Link para uma intervenção
     ImportDataset_tax_contrib=Impostos sociais/fiscais
    -ImportDataset_tax_vat=Vat payments
    -ErrorBankAccountNotFound=Error: Bank account not found
    +ImportDataset_tax_vat=Pagamentos de IVA
    +ErrorBankAccountNotFound=Erro: conta bancária não encontrada
     FiscalPeriod=Período de contabilidade
    -ListSocialContributionAssociatedProject=List of social contributions associated with the project
    -DeleteFromCat=Remove from accounting group
    -AccountingAffectation=Accounting assignement
    -LastDayTaxIsRelatedTo=Last day of period the tax is related to
    -VATDue=Sale tax claimed
    -ClaimedForThisPeriod=Claimed for the period
    -PaidDuringThisPeriod=Paid during this period
    -ByVatRate=By sale tax rate
    -TurnoverbyVatrate=Turnover invoiced by sale tax rate
    -TurnoverCollectedbyVatrate=Turnover collected by sale tax rate
    -PurchasebyVatrate=Purchase by sale tax rate
    +ListSocialContributionAssociatedProject=Lista de contribuições sociais associadas ao projeto
    +DeleteFromCat=Remover do grupo de contabilidade
    +AccountingAffectation=Atribuição contábil
    +LastDayTaxIsRelatedTo=Último dia do período em que o imposto está relacionado
    +VATDue=Imposto de venda reivindicado
    +ClaimedForThisPeriod=Reivindicado pelo período
    +PaidDuringThisPeriod=Pago durante este período
    +ByVatRate=Por taxa de imposto de venda
    +TurnoverbyVatrate=Volume de negócios faturado por taxa de imposto sobre vendas
    +TurnoverCollectedbyVatrate=Volume de negócios cobrado pela taxa de imposto sobre vendas
    +PurchasebyVatrate=Compra por taxa de imposto sobre vendas
    diff --git a/htdocs/langs/pt_PT/dict.lang b/htdocs/langs/pt_PT/dict.lang
    index 546e2a129df..e56556bf717 100644
    --- a/htdocs/langs/pt_PT/dict.lang
    +++ b/htdocs/langs/pt_PT/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Ilha Heard e McDonald
     CountryVA=Santa Sé (Vaticano)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=Índia
     CountryID=Indonésia
     CountryIR=Irão
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Coreia do Norte
     CountryKR=Coréia do Sul
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Laociano
     CountryLV=Letônia
     CountryLB=Líbano
    @@ -160,7 +160,7 @@ CountryMD=Moldávia
     CountryMN=Mongólia
     CountryMS=Montserrat
     CountryMZ=Moçambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namíbia
     CountryNR=Nauruano
     CountryNP=Nepal
    @@ -179,7 +179,7 @@ CountryPK=Paquistão
     CountryPW=Palau
     CountryPS=Território Palestiniano, Ocupado
     CountryPA=Panamá
    -CountryPG=Papuásia-Nova Guiné
    +CountryPG=Papua-Nova Guiné
     CountryPY=Paraguai
     CountryPE=Peru
     CountryPH=Filipinas
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad e Tobago
     CountryTR=Turquia
     CountryTM=Turquemenistão
    -CountryTC=Ilhas Turcas e Cailos
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvaluano
     CountryUG=Uganda
     CountryUA=Ucrania
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Maurício rupias
     CurrencySingMUR=Rupee Maurícia
     CurrencyNOK=Krones norueguês
    -CurrencySingNOK=Coroa Norueguesa
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=TND
     CurrencySingTND=Dinar tunisino
     CurrencyUSD=Dólar E.U.
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Palavra de boca
     DemandReasonTypeSRC_PARTNER=Parceiro
     DemandReasonTypeSRC_EMPLOYEE=Empregado
     DemandReasonTypeSRC_SPONSORING=Patrocínio
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Formato 4A0
     PaperFormatEU2A0=Formato 2A0
    diff --git a/htdocs/langs/pt_PT/ecm.lang b/htdocs/langs/pt_PT/ecm.lang
    index 61dd3535555..892c93c2acd 100644
    --- a/htdocs/langs/pt_PT/ecm.lang
    +++ b/htdocs/langs/pt_PT/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=N.º de documentos na diretoria
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Diretoria
     ECMSectionManual=Diretoria manual
     ECMSectionAuto=Pasta automática
    @@ -7,7 +7,7 @@ ECMSectionsManual=Pastas manuais
     ECMSectionsAuto=Pastas automáticas
     ECMSections=Pastas
     ECMRoot=Raiz do GCE
    -ECMNewSection=Nova pasta manual
    +ECMNewSection=Nova diretoria
     ECMAddSection=Adicionar pasta manual
     ECMCreationDate=Data de criação
     ECMNbOfFilesInDir=Número de ficheiros na pasta
    @@ -25,7 +25,7 @@ ECMSectionOfDocuments=Pastas de documentos
     ECMTypeAuto=Automático
     ECMDocsBySocialContributions=Documentos associados com os impostos fiscais ou sociais
     ECMDocsByThirdParties=Documentos associados a terceiros
    -ECMDocsByProposals=Documentos associcados a orçamentos
    +ECMDocsByProposals=Documentos associados aos orçamentos
     ECMDocsByOrders=Documentos associados a pedidos
     ECMDocsByContracts=Documentos associados a contratos
     ECMDocsByInvoices=Documentos associados a faturas
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documentos associados a projectos
     ECMDocsByUsers=Documentos associados a utilizadores
     ECMDocsByInterventions=Documentos associados a intervenções
     ECMDocsByExpenseReports=Documentos associados a relatórios de despesas
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Nenhuma pasta criada
     ShowECMSection=Mostrar Pasta
     DeleteSection=Remover diretório
    @@ -46,6 +48,5 @@ ECMSelectASection=Selecione uma pasta na árvore...
     DirNotSynchronizedSyncFirst=Este diretório parece ter sido ser criado ou modificado fora do módulo GCE. Você deve clicar no botão "Voltar a sincronizar" primeiro para sincronizar o disco e a base de dados para obter o conteúdo desse diretório.
     ReSyncListOfDir=Voltar a sincronizar a lista de diretórios
     HashOfFileContent=Hash do conteúdo do ficheiro
    -FileNotYetIndexedInDatabase=Ficheiro ainda não indexado na base de dados (tente voltar a carregá-lo)
    -FileSharedViaALink=Ficheiro partilhado via link
     NoDirectoriesFound=Nenhum diretório encontrado
    +FileNotYetIndexedInDatabase=Ficheiro ainda não indexado na base de dados (tente voltar a carregá-lo)
    diff --git a/htdocs/langs/pt_PT/errors.lang b/htdocs/langs/pt_PT/errors.lang
    index 0c6d157d662..100ec23e020 100644
    --- a/htdocs/langs/pt_PT/errors.lang
    +++ b/htdocs/langs/pt_PT/errors.lang
    @@ -6,7 +6,7 @@ NoErrorCommitIsDone=Nenhum erro
     ErrorButCommitIsDone=Erros encontrados, mas a validação foi efetuada apesar disso
     ErrorBadEMail=O email %s está errado
     ErrorBadUrl=O url %s está errado
    -ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing.
    +ErrorBadValueForParamNotAString=Valor ruim para o seu parâmetro. Acrescenta geralmente quando falta a tradução.
     ErrorLoginAlreadyExists=O login %s já existe.
     ErrorGroupAlreadyExists=O grupo %s já existe.
     ErrorRecordNotFound=Registo não foi encontrado.
    @@ -18,33 +18,33 @@ ErrorFailToCreateFile=Ocorreu um erro ao criar o ficheiro '<b>%s</b>'.
     ErrorFailToRenameDir=Ocorreu um erro ao mudar o nome da pasta '<b>%s</b>' para '<b>%s</b>'.
     ErrorFailToCreateDir=Ocorreu um erro ao criar a pasta '<b>%s</b>'
     ErrorFailToDeleteDir=Ocorreu um erro ao eliminar a pasta '<b>%s</b>'.
    -ErrorFailToMakeReplacementInto=Failed to make replacement into file '<b>%s</b>'.
    -ErrorFailToGenerateFile=Failed to generate file '<b>%s</b>'.
    +ErrorFailToMakeReplacementInto=Falha ao fazer a substituição no arquivo '<b> %s </ b>'.
    +ErrorFailToGenerateFile=Falha ao gerar o arquivo '<b> %s </ b>'.
     ErrorThisContactIsAlreadyDefinedAsThisType=Este contacto já está definido como contacto para este tipo.
     ErrorCashAccountAcceptsOnlyCashMoney=Esta conta bancaria é de tipo Caixa e só aceita o método de pagamento de tipo <b>especie</b>.
     ErrorFromToAccountsMustDiffers=A conta origem e destino devem ser diferentes.
     ErrorBadThirdPartyName=Nome de Terceiro incorrecto
     ErrorProdIdIsMandatory=O %s é obrigatório
     ErrorBadCustomerCodeSyntax=A sintaxis do código cliente é incorrecta
    -ErrorBadBarCodeSyntax=Bad syntax for bar code. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned.
    +ErrorBadBarCodeSyntax=Má sintaxe para código de barras. Pode ser que você defina um tipo de código de barras incorreto ou tenha definido uma máscara de código de barras para numeração que não corresponda ao valor verificado.
     ErrorCustomerCodeRequired=Código cliente obrigatório
     ErrorBarCodeRequired=Código de barras obrigatório
     ErrorCustomerCodeAlreadyUsed=Código de cliente já utilizado
     ErrorBarCodeAlreadyUsed=Código de barras em utilização
     ErrorPrefixRequired=Prefixo obrigatório
    -ErrorBadSupplierCodeSyntax=Bad syntax for vendor code
    -ErrorSupplierCodeRequired=Código de fornecedor obrigatório
    -ErrorSupplierCodeAlreadyUsed=Vendor code already used
    +ErrorBadSupplierCodeSyntax=Má sintaxe para o código do fornecedor
    +ErrorSupplierCodeRequired=Obrigatório código de fornecedor
    +ErrorSupplierCodeAlreadyUsed=Código de fornecedor já utilizado
     ErrorBadParameters=Parâmetros incorrectos
     ErrorBadValueForParameter=Valor errado '%s' para o parâmetro '%s'
    -ErrorBadImageFormat=Image file has not a supported format (Your PHP does not support functions to convert images of this format)
    +ErrorBadImageFormat=O arquivo de imagem não tem um formato suportado (seu PHP não suporta funções para converter imagens desse formato)
     ErrorBadDateFormat=&quot;%s&quot; Valor tem formato de data errado
     ErrorWrongDate=A data não está correcta!
     ErrorFailedToWriteInDir=Impossivel escrever na pasta %s
     ErrorFoundBadEmailInFile=Encontrada sintaxis incorrecta em email em %s linhas em Ficheiro (Exemplo linha %s com email=%s)
    -ErrorUserCannotBeDelete=O utilizador não pode ser eliminado. Pode estar associado a entidades do Dolibarr.
    +ErrorUserCannotBeDelete=O usuário não pode ser excluído. Talvez esteja associado a entidades do Dolibarr.
     ErrorFieldsRequired=Não se indicaram alguns campos obrigatórios
    -ErrorSubjectIsRequired=The email topic is required
    +ErrorSubjectIsRequired=O tópico do email é obrigatório
     ErrorFailedToCreateDir=Erro na criação de uma pasta. Verifique se o usuário do servidor Web tem acesso de escrita aos documentos Dolibarr. Se o parâmetro <b> safe_mode </ b> está ativo no PHP, Verifique se os arquivos php do Dolibarr são da propriedade do usuário do servidor web.
     ErrorNoMailDefinedForThisUser=E-Mail não definido para este utilizador
     ErrorFeatureNeedJavascript=Esta Funcionalidade precisa de javascript activo para funcionar. Modifique em configuração->ambiente.
    @@ -64,22 +64,23 @@ ErrorSizeTooLongForVarcharType=Tamanho demasiado longo para o tipo string (%s m
     ErrorNoValueForSelectType=Por favor, preencha o valor para lista de selecção
     ErrorNoValueForCheckBoxType=Preencha o valor da lista da caixa de seleção
     ErrorNoValueForRadioType=Por favor, preencha o valor da lista
    -ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=O campo <b>%s</b> não deve conter carácteres especiais
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorBadFormatValueList=O valor da lista não pode ter mais de uma vírgula: <u> %s </ u>, mas precisa de pelo menos um: key, value
    +ErrorFieldCanNotContainSpecialCharacters=O campo <b> %s </ b> não deve conter caracteres especiais.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=O campo <b> %s </ b> não deve conter caracteres especiais nem caracteres maiúsculos e não pode conter apenas números.
    +ErrorFieldMustHaveXChar=O campo <b> %s </ b> deve ter pelo menos %s caracteres.
     ErrorNoAccountancyModuleLoaded=Módulo de Contabilidade não activado
    -ErrorExportDuplicateProfil=This profile name already exists for this export set.
    +ErrorExportDuplicateProfil=Este nome de perfil já existe para este conjunto de exportação.
     ErrorLDAPSetupNotComplete=A configuração Dolibarr-LDAP é incompleta.
     ErrorLDAPMakeManualTest=Foi criado um Ficheiro .ldif na pasta %s. Trate de gerir manualmente este Ficheiro desde a linha de comandos para Obter mais detalhes acerca do erro.
    -ErrorCantSaveADoneUserWithZeroPercentage=Você não pode mudar uma ação de estado, se um usuário começou a realizante ação.
    +ErrorCantSaveADoneUserWithZeroPercentage=Não é possível salvar uma ação com "status não iniciado" se o campo "concluído por" também estiver preenchido.
     ErrorRefAlreadyExists=A referencia utilizada para a criação já existe
    -ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Falha ao eliminar o registo, pois tem alguns elementos associados.
    +ErrorPleaseTypeBankTransactionReportName=Por favor, insira o nome do extrato bancário onde a entrada deve ser relatada (Formato AAAA ou AAAAMMDD)
    +ErrorRecordHasChildren=Falha ao excluir registro, pois possui alguns registros filhos.
     ErrorRecordHasAtLeastOneChildOfType=O objeto tem pelo menos um elemento do tipo %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    -ErrorModuleRequireJavascript=Javascript não deve ser desativado para que este recurso de trabalho. Para ativar / desativar o JavaScript, vá ao menu Home -> Configuração -> Mostrar.
    +ErrorRecordIsUsedCantDelete=Não é possível excluir o registro. Já é usado ou incluído em outro objeto.
    +ErrorModuleRequireJavascript=Javascript não deve estar desativado para que esta funcionalidade funcione. Para ativar/desativar o JavaScript, vá para o menu Início->Configuração->Exibir.
     ErrorPasswordsMustMatch=Ambas as senhas digitadas devem corresponder entre si
    -ErrorContactEMail=Um erro técnico ocorreu. Por favor, contacte o administrador para seguir <b>%s</b> e-mail em fornecer os <b>%s</b> código de erro na sua mensagem, ou melhor ainda pela adição de uma cópia de tela da página.
    +ErrorContactEMail=Ocorreu um erro técnico. Por favor, entre em contato com o administrador para o seguinte e-mail <b> %s </ b> e forneça o código de erro <b> %s </ b> em sua mensagem ou adicione uma cópia da tela desta página.
     ErrorWrongValueForField=Valor errado para o número <b>%s</b> campo (valor <b>&quot;%s&quot;</b> não coincide com <b>%s</b> regra regex)
     ErrorFieldValueNotIn=Valor errado para <b>%s</b> campo de número <b>(&quot;%s&quot;</b> de valor não é um valor disponível em <b>%s %s</b> campo de tabela)
     ErrorFieldRefNotIn=Valor errado para <b>%s</b> número de campo <b>(&quot;%s&quot;</b> valor não é um ref <b>%s</b> existente)
    @@ -87,24 +88,25 @@ ErrorsOnXLines=<b>%s</b> sobre as linhas das fontes de erros
     ErrorFileIsInfectedWithAVirus=O programa antivírus não foi capaz de validar o arquivo (arquivo pode ser infectado por um vírus)
     ErrorSpecialCharNotAllowedForField=Os caracteres especiais não são permitidos para o campo &quot;%s&quot;
     ErrorNumRefModel=Existe uma referência em banco de dados (%s) e não é compatível com esta regra de numeração. Remover registro ou renomeado de referência para ativar este módulo.
    -ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
    +ErrorQtyTooLowForThisSupplier=Quantidade muito baixa para este fornecedor ou nenhum preço definido neste produto para este fornecedor
    +ErrorOrdersNotCreatedQtyTooLow=Algumas ordens não foram criadas por causa da quantidade muito baixa
    +ErrorModuleSetupNotComplete=A configuração do módulo parece incompleta. Vá em Home - Setup - Módulos para completar.
     ErrorBadMask=Erro na máscara
     ErrorBadMaskFailedToLocatePosOfSequence=Máscara de erro, sem número de seqüência
     ErrorBadMaskBadRazMonth=Erro, o valor de reset ruim
    -ErrorMaxNumberReachForThisMask=Max number reach for this mask
    -ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
    +ErrorMaxNumberReachForThisMask=Alcance máximo de números para esta máscara
    +ErrorCounterMustHaveMoreThan3Digits=O contador deve ter mais de 3 dígitos
     ErrorSelectAtLeastOne=Erro. Selecione pelo menos uma entrada.
    -ErrorDeleteNotPossibleLineIsConsolidated=Excluir registro não é possível porque está ligado a uma transacção bancária conciliada
    +ErrorDeleteNotPossibleLineIsConsolidated=Excluir não é possível porque o registro está vinculado a uma transação bancária conciliada
     ErrorProdIdAlreadyExist=%s é atribuído a um terço
     ErrorFailedToSendPassword=Erro ao enviar a palavra-passe
     ErrorFailedToLoadRSSFile=Falha ao obter feed RSS. Tente adicionar MAIN_SIMPLEXMLLOAD_DEBUG constante se as mensagens de erro não fornecer informações suficientes.
    -ErrorForbidden=Access denied.<br>You try to access to a page, area or feature of a disabled module or without being in an authenticated session or that is not allowed to your user.
    +ErrorForbidden=Acesso negado. <br> Você tenta acessar uma página, área ou recurso de um módulo desativado ou sem estar em uma sessão autenticada ou que não é permitido ao usuário.
     ErrorForbidden2=Os permissões para este utilizador podem ser asignados pelo o administrador Dolibarr mediante o menu %s-> %s.
     ErrorForbidden3=Dolibarr não parece funcionar numa Sessão autentificada. Consulte a documentação de Instalação de Dolibarr para saber como administrar as autenticações (htaccess, mod_auth u outro...).
     ErrorNoImagickReadimage=A função imagick_readimage não está presente nesta Instalação de PHP. a revisão não está pois disponivel. Os administradores podem desactivar este separador no menu configuração - visualização.
     ErrorRecordAlreadyExists=Registo já existente
    -ErrorLabelAlreadyExists=This label already exists
    +ErrorLabelAlreadyExists=Esta etiqueta já existe
     ErrorCantReadFile=Erro na leitura do ficheiro '&s'
     ErrorCantReadDir=Erro na leitura da pasta '%s'
     ErrorBadLoginPassword=Utilizador ou palavra-passe incorretos
    @@ -113,121 +115,123 @@ ErrorFailedToRunExternalCommand=Erro ao tentar o comando externo. verifique que
     ErrorFailedToChangePassword=Erro na modificação da palavra-passe
     ErrorLoginDoesNotExists=a conta de utilizador de <b>%s</b> não foi encontrado.
     ErrorLoginHasNoEmail=Este utilizador não tem e-mail. impossivel continuar.
    -ErrorBadValueForCode=Valor incorrecto para o código. volte a \ttentar com um Novo valor...
    +ErrorBadValueForCode=Valor incorreto para o código de segurança. Tente novamente com um novo valor...
     ErrorBothFieldCantBeNegative=Campos %s %s e não pode ser tanto negativo
    -ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
    +ErrorFieldCantBeNegativeOnInvoice=O campo <strong> %s </ strong> não pode ser negativo nesse tipo de fatura. Se você quiser adicionar uma linha de desconto, basta criar o desconto primeiro com o link %s na tela e aplicá-lo à fatura. Você também pode pedir ao seu administrador para definir a opção FACTURE_ENABLE_NEGATIVE_LINES como 1 para restaurar o comportamento antigo.
    +ErrorQtyForCustomerInvoiceCantBeNegative=A quantidade de linha nas faturas do cliente não pode ser negativa
     ErrorWebServerUserHasNotPermission=Conta de usuário utilizada para executar <b>%s</b> servidor web não tem permissão para que
     ErrorNoActivatedBarcode=Nenhum tipo de código de barras ativado
     ErrUnzipFails=Falha ao extrair %s com o ZipArchive
    -ErrNoZipEngine=No engine to zip/unzip %s file in this PHP
    +ErrNoZipEngine=Nenhum mecanismo para compactar / descompactar o arquivo %s neste PHP
     ErrorFileMustBeADolibarrPackage=O ficheiro %s deve ser um pacote Dolibarr no formato zip
    -ErrorModuleFileRequired=You must select a Dolibarr module package file
    +ErrorModuleFileRequired=Você deve selecionar um arquivo de pacote do módulo Dolibarr
     ErrorPhpCurlNotInstalled=O PHP CURL não está instalado, isto é essencial para comunicar com o Paypal
    -ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base
    -ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base
    +ErrorFailedToAddToMailmanList=Falha ao adicionar o registro %s à lista Mailman %s ou base SPIP
    +ErrorFailedToRemoveToMailmanList=Falha ao remover o registro %s para a lista do Mailman %s ou base do SPIP
     ErrorNewValueCantMatchOldValue=O novo valor não pode ser igual ao antigo
    -ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process.
    -ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check database server is running (for example, with mysql/mariadb, you can launch it from command line with 'sudo service mysql start').
    +ErrorFailedToValidatePasswordReset=Não foi possível reinicializar a senha. Pode ser que a reinicialização já tenha sido feita (esse link pode ser usado apenas uma vez). Caso contrário, tente reiniciar o processo de reinicialização.
    +ErrorToConnectToMysqlCheckInstance=Conectar-se ao banco de dados falha. Verifique se o servidor de banco de dados está em execução (por exemplo, com mysql / mariadb, você pode iniciá-lo a partir da linha de comando com 'sudo service mysql start').
     ErrorFailedToAddContact=Falha ao adicionar contato
    -ErrorDateMustBeBeforeToday=The date cannot be greater than today
    -ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode.
    +ErrorDateMustBeBeforeToday=A data não pode ser maior que hoje
    +ErrorPaymentModeDefinedToWithoutSetup=Um modo de pagamento foi definido para digitar %s, mas a configuração do módulo Fatura não foi concluída para definir informações a serem exibidas para esse modo de pagamento.
     ErrorPHPNeedModule=Erro, o php deve ter o módulo <b>%s</b> instalado para utilizar esta funcionalidade
    -ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s
    +ErrorOpenIDSetupNotComplete=Você configura o arquivo de configuração Dolibarr para permitir a autenticação OpenID, mas o URL do serviço OpenID não está definido em %s constante
     ErrorWarehouseMustDiffers=Os armazéns de origem e de destino não devem ser iguais
     ErrorBadFormat=Formato incorrecto!
    -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
    -ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
    -ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    -ErrorPriceExpression1=Cannot assign to constant '%s'
    -ErrorPriceExpression2=Cannot redefine built-in function '%s'
    -ErrorPriceExpression3=Undefined variable '%s' in function definition
    -ErrorPriceExpression4=Illegal character '%s'
    -ErrorPriceExpression5=Unexpected '%s'
    -ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
    -ErrorPriceExpression8=Unexpected operator '%s'
    -ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    -ErrorPriceExpression11=Expecting '%s'
    -ErrorPriceExpression14=Division by zero
    -ErrorPriceExpression17=Undefined variable '%s'
    -ErrorPriceExpression19=Expression not found
    -ErrorPriceExpression20=Empty expression
    -ErrorPriceExpression21=Empty result '%s'
    -ErrorPriceExpression22=Negative result '%s'
    -ErrorPriceExpression23=Unknown or non set variable '%s' in %s
    -ErrorPriceExpression24=Variable '%s' exists but has no value
    -ErrorPriceExpressionInternal=Internal error '%s'
    -ErrorPriceExpressionUnknown=Unknown error '%s'
    +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Erro, este membro ainda não está vinculado a terceiros. Vincule o membro a um terceiro existente ou crie um novo terceiro antes de criar uma assinatura com fatura.
    +ErrorThereIsSomeDeliveries=Erro, há algumas entregas vinculadas a essa remessa. Exclusão recusada.
    +ErrorCantDeletePaymentReconciliated=Não é possível excluir um pagamento que gerou uma entrada bancária reconciliada
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Não é possível excluir um pagamento compartilhado por pelo menos uma fatura com status Pago
    +ErrorPriceExpression1=Não é possível atribuir a constante '%s'
    +ErrorPriceExpression2=Não é possível redefinir a função incorporada '%s'
    +ErrorPriceExpression3=Variável indefinida '%s' na definição da função
    +ErrorPriceExpression4=Caráter ilegal '%s'
    +ErrorPriceExpression5=Inesperado '%s'
    +ErrorPriceExpression6=Número incorreto de argumentos (%s dado, %s esperado)
    +ErrorPriceExpression8=Operador inesperado '%s'
    +ErrorPriceExpression9=Ocorreu um erro inesperado
    +ErrorPriceExpression10=Operador '%s' não tem operando
    +ErrorPriceExpression11=Esperando '%s'
    +ErrorPriceExpression14=Divisão por zero
    +ErrorPriceExpression17=Variável indefinida '%s'
    +ErrorPriceExpression19=Expressão não encontrada
    +ErrorPriceExpression20=Expressão vazia
    +ErrorPriceExpression21=Resultado vazio '%s'
    +ErrorPriceExpression22=Resultado negativo '%s'
    +ErrorPriceExpression23=Variável desconhecida ou não definida '%s' em %s
    +ErrorPriceExpression24=Variável '%s' existe mas não tem valor
    +ErrorPriceExpressionInternal=Erro interno '%s'
    +ErrorPriceExpressionUnknown=Erro desconhecido '%s'
     ErrorSrcAndTargetWarehouseMustDiffers=Os armazéns de origem e de destino não devem ser iguais
    -ErrorTryToMakeMoveOnProductRequiringBatchData=Error, trying to make a stock movement without lot/serial information, on product '%s' requiring lot/serial information
    -ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=All recorded receptions must first be verified (approved or denied) before being allowed to do this action
    -ErrorCantSetReceptionToTotalDoneWithReceptionDenied=All recorded receptions must first be verified (approved) before being allowed to do this action
    -ErrorGlobalVariableUpdater0=HTTP request failed with error '%s'
    -ErrorGlobalVariableUpdater1=Invalid JSON format '%s'
    -ErrorGlobalVariableUpdater2=Missing parameter '%s'
    -ErrorGlobalVariableUpdater3=The requested data was not found in result
    -ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
    -ErrorGlobalVariableUpdater5=No global variable selected
    -ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
    -ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=Definiu um valor estimado para esta oportunidado/lead. Também deve inserir o seu estado
    -ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
    -ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    -ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
    -ErrorFileMustHaveFormat=File must have format %s
    -ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    -ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled.
    -ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order.
    -ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice.
    -ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment.
    -ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal.
    -ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'.
    -ErrorModuleNotFound=File of module was not found.
    -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s)
    -ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s)
    -ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s)
    -ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s
    -ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information.
    -ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed.
    -ErrorTaskAlreadyAssigned=Task already assigned to user
    -ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format.
    -ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (<strong>%s</strong>) does not match expected name syntax: <strong>%s</strong>
    -ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
    -ErrorNoWarehouseDefined=Error, no warehouses defined.
    -ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
    -ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
    -ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
    +ErrorTryToMakeMoveOnProductRequiringBatchData=Erro ao tentar fazer um movimento de estoque sem informações de lote / serial, no produto '%s' que requer informações de lote / serial
    +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Todas as recepções registradas devem primeiro ser verificadas (aprovadas ou negadas) antes de serem autorizadas a fazer esta ação
    +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Todas as recepções registradas devem primeiro ser verificadas (aprovadas) antes de serem autorizadas a executar esta ação
    +ErrorGlobalVariableUpdater0=Pedido HTTP falhou com o erro "%s"
    +ErrorGlobalVariableUpdater1=Formato JSON inválido '%s'
    +ErrorGlobalVariableUpdater2=Parâmetro ausente '%s'
    +ErrorGlobalVariableUpdater3=Os dados solicitados não foram encontrados no resultado
    +ErrorGlobalVariableUpdater4=Cliente SOAP falhou com o erro '%s'
    +ErrorGlobalVariableUpdater5=Nenhuma variável global selecionada
    +ErrorFieldMustBeANumeric=O campo <b> %s </ b> deve ser um valor numérico
    +ErrorMandatoryParametersNotProvided=Parâmetro (s) obrigatório (s) não fornecido (s)
    +ErrorOppStatusRequiredIfAmount=Você define um valor estimado para esse lead. Então você também deve inserir seu status
    +ErrorFailedToLoadModuleDescriptorForXXX=Falha ao carregar a classe do descritor de módulo para %s
    +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array No Descriptor do Módulo (valor incorreto para a tecla fk_menu)
    +ErrorSavingChanges=Ocorreu um erro ao salvar as alterações
    +ErrorWarehouseRequiredIntoShipmentLine=Armazém é necessário na linha para enviar
    +ErrorFileMustHaveFormat=O arquivo deve ter o formato %s
    +ErrorSupplierCountryIsNotDefined=O país para este fornecedor não está definido. Corrija isto primeiro.
    +ErrorsThirdpartyMerge=Falha ao mesclar os dois registros. Pedido cancelado.
    +ErrorStockIsNotEnoughToAddProductOnOrder=Estoque não é suficiente para o produto %s adicioná-lo em um novo pedido.
    +ErrorStockIsNotEnoughToAddProductOnInvoice=O estoque não é suficiente para o produto %s adicioná-lo em uma nova fatura.
    +ErrorStockIsNotEnoughToAddProductOnShipment=Estoque não é suficiente para o produto %s adicioná-lo em uma nova remessa.
    +ErrorStockIsNotEnoughToAddProductOnProposal=Estoque não é suficiente para o produto %s adicioná-lo em uma nova proposta.
    +ErrorFailedToLoadLoginFileForMode=Falha ao obter a chave de login para o modo '%s'.
    +ErrorModuleNotFound=Arquivo do módulo não foi encontrado.
    +ErrorFieldAccountNotDefinedForBankLine=Valor para a conta Contabilidade não definida para o ID da linha de origem %s (%s)
    +ErrorFieldAccountNotDefinedForInvoiceLine=Valor para a conta Contabilidade não definida para o ID da fatura %s (%s)
    +ErrorFieldAccountNotDefinedForLine=Valor da conta Contabilidade não definido para a linha (%s)
    +ErrorBankStatementNameMustFollowRegex=Erro, o nome do extrato bancário deve seguir a seguinte regra de sintaxe %s
    +ErrorPhpMailDelivery=Verifique se você não usa um número muito alto de destinatários e se seu conteúdo de e-mail não é semelhante a um spam. Peça também ao administrador para verificar os arquivos de logs do firewall e do servidor para obter informações mais completas.
    +ErrorUserNotAssignedToTask=O usuário deve ser atribuído à tarefa para poder inserir o tempo consumido.
    +ErrorTaskAlreadyAssigned=Tarefa já atribuída ao usuário
    +ErrorModuleFileSeemsToHaveAWrongFormat=O pacote de módulos parece ter um formato incorreto.
    +ErrorFilenameDosNotMatchDolibarrPackageRules=O nome do pacote do módulo (<strong> %s </ strong>) não corresponde à sintaxe de nome esperada: <strong> %s </ strong>
    +ErrorDuplicateTrigger=Erro, nome de disparo duplicado %s. Já carregado de %s.
    +ErrorNoWarehouseDefined=Erro, nenhum armazém definido.
    +ErrorBadLinkSourceSetButBadValueForRef=O link que você usa não é válido. Uma 'fonte' para pagamento é definida, mas o valor para 'ref' não é válido.
    +ErrorTooManyErrorsProcessStopped=Muitos erros. Processo foi parado.
    +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=A validação em massa não é possível quando a opção para aumentar / diminuir estoque é definida nesta ação (você deve validar um por um para definir o depósito para aumentar / diminuir)
     ErrorObjectMustHaveStatusDraftToBeValidated=O objeto %s deve estar no estado 'Rascunho' para ser validado.
     ErrorObjectMustHaveLinesToBeValidated=O objeto %s deve ter linhas para ser validado.
    -ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action.
    -ErrorChooseBetweenFreeEntryOrPredefinedProduct=You must choose if article is a predefined product or not
    -ErrorDiscountLargerThanRemainToPaySplitItBefore=The discount you try to apply is larger than remain to pay. Split the discount in 2 smaller discounts before.
    +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Somente faturas validadas podem ser enviadas usando a ação em massa "Enviar por e-mail".
    +ErrorChooseBetweenFreeEntryOrPredefinedProduct=Você deve escolher se o artigo é um produto pré-definido ou não
    +ErrorDiscountLargerThanRemainToPaySplitItBefore=O desconto que você tenta aplicar é maior do que continuar a pagar. Divida o desconto em 2 descontos menores antes.
     ErrorFileNotFoundWithSharedLink=Ficheiro não encontrado. É possível que a chave de partilha tenha sido modificada ou o ficheiro tenha sido removido recentemente.
    -ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
    -ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
    -ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorProductBarCodeAlreadyExists=O código de barras do produto %s já existe em outra referência de produto.
    +ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Observe também que não é possível usar o produto virtual para aumentar / diminuir automaticamente subprodutos quando pelo menos um subproduto (ou subproduto de subprodutos) precisa de um número de série / lote.
    +ErrorDescRequiredForFreeProductLines=A descrição é obrigatória para linhas com produto livre
    +ErrorAPageWithThisNameOrAliasAlreadyExists=A página / container <strong> %s </ strong> tem o mesmo nome ou alias alternativo que você usa
    +ErrorDuringChartLoad=Erro ao carregar o gráfico de conta. Se algumas contas não foram carregadas, você ainda pode inseri-las manualmente.
     # Warnings
    -WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
    +WarningPasswordSetWithNoAccount=Uma senha foi definida para este membro. No entanto, nenhuma conta de usuário foi criada. Portanto, essa senha é armazenada, mas não pode ser usada para fazer login no Dolibarr. Pode ser usado por um módulo externo / interface, mas se você não precisa definir nenhum login nem senha para um membro, você pode desativar a opção "Gerenciar um login para cada membro" da configuração do módulo de membro. Se você precisar gerenciar um login, mas não precisar de nenhuma senha, poderá manter esse campo vazio para evitar esse aviso. Nota: O email também pode ser usado como um login se o membro estiver vinculado a um usuário.
     WarningMandatorySetupNotComplete=Os parâmetros de configuração obrigatórios ainda não estão definidos
     WarningSafeModeOnCheckExecDir=Atenção, PHP <b>safe_mode</b> opção está no modo de comando devem ser armazenados dentro de um diretório declarado pelo <b>safe_mode_exec_dir</b> parâmetro php.
     WarningBookmarkAlreadyExists=Já existe um marcador com este título o esta URL.
     WarningPassIsEmpty=Atenção:A palavra-passe da base de dados está vazia. ISto é um buraco na segurança. deve agregar uma palavra-passe á sua base de dados e alterar o seu Ficheiro conf.php para reflectir isto.
     WarningConfFileMustBeReadOnly=Atenção, seu arquivo de configuração <b>(htdocs / conf / conf.php)</b> pode ser substituído pelo servidor web. Esta é uma falha de segurança grave. Modificar permissões no arquivo a ser em modo de leitura apenas para usuário do sistema operacional usado pelo servidor web. Se você usa Windows e no formato FAT para o seu disco, você deve saber que este sistema de arquivos não permite adicionar permissões em arquivo, por isso não pode ser completamente seguro.
     WarningsOnXLines=<b>%s</b> em linhas de código Avisos
    -WarningNoDocumentModelActivated=Não existe um modelo para geração de documentos, foi ativado. A modelo será escolhida por padrão até que você verifique a configuração do módulo.
    -WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=Esta alerta seguirá activa mientras a pasta exista (alerta visivel para Os Utilizadores admin somente).
    -WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
    -WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
    +WarningNoDocumentModelActivated=Nenhum modelo, para geração de documentos, foi ativado. Um modelo será escolhido por padrão até você verificar a configuração do seu módulo.
    +WarningLockFileDoesNotExists=Atenção, assim que a configuração estiver concluída, você deve desativar as ferramentas de instalação / migração, adicionando um arquivo <b> install.lock </ b> no diretório <b> %s </ b>. Falta este arquivo é uma falha de segurança.
    +WarningUntilDirRemoved=Todos os avisos de segurança (visíveis apenas por usuários administradores) permanecerão ativos enquanto a vulnerabilidade estiver presente (ou que a constante MAIN_REMOVE_INSTALL_WARNING seja adicionada em Configuração-> Outras Configurações).
    +WarningCloseAlways=Aviso, o fechamento é feito mesmo que a quantidade seja diferente entre os elementos de origem e de destino. Ative este recurso com cuidado.
    +WarningUsingThisBoxSlowDown=Atenção, usando esta caixa, diminua seriamente todas as páginas que mostram a caixa.
     WarningClickToDialUserSetupNotComplete=A configuração das informações ClickToDial do seu utilizador não está completa (consulte o separador ClickToDial no sua ficha de utilizador).
    -WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers.
    +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Recurso desativado quando a configuração de exibição é otimizada para pessoas cegas ou navegadores de texto.
     WarningPaymentDateLowerThanInvoiceDate=A data de pagamento (%s) é anterior à data da fatura (%s) para a fatura %s.
    -WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit.
    -WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
    +WarningTooManyDataPleaseUseMoreFilters=Muitos dados (mais que linhas %s). Por favor, use mais filtros ou defina a constante %s para um limite superior.
    +WarningSomeLinesWithNullHourlyRate=Algumas vezes foram registrados por alguns usuários, enquanto sua taxa horária não foi definida. Um valor de 0 %s por hora foi usado, mas isso pode resultar na avaliação incorreta do tempo gasto.
     WarningYourLoginWasModifiedPleaseLogin=O seu login foi modificado. Por motivos de segurança, você terá que iniciar a sessão com seu novo login antes da próxima ação.
    -WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Aviso, o número de destinatários diferentes é limitado a <b> %s </b> ao usar as ações em massa em listas
    -WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    +WarningAnEntryAlreadyExistForTransKey=Já existe uma entrada para a chave de tradução para este idioma
    +WarningNumberOfRecipientIsRestrictedInMassAction=Atenção, o número de destinatários diferentes é limitado a <b> %s </ b> ao usar as ações em massa nas listas
    +WarningDateOfLineMustBeInExpenseReportRange=Atenção, a data da linha não está no intervalo do relatório de despesas
    diff --git a/htdocs/langs/pt_PT/exports.lang b/htdocs/langs/pt_PT/exports.lang
    index 4886e36e09b..190d456c3a0 100644
    --- a/htdocs/langs/pt_PT/exports.lang
    +++ b/htdocs/langs/pt_PT/exports.lang
    @@ -1,39 +1,39 @@
     # Dolibarr language file - Source file is en_US - exports
    -ExportsArea=Área de exportação
    -ImportArea=Área de Importação
    -NewExport=Nova exportação
    +ExportsArea=Exportados
    +ImportArea=Importar
    +NewExport=Nova Exportação
     NewImport=Nova Importação
     ExportableDatas=Conjunto de dados exportáveis
     ImportableDatas=Conjunto de dados importáveis
     SelectExportDataSet=Escolha um conjunto predefinido de dados que deseje exportar...
     SelectImportDataSet=Escolha de dados que pretende importar ...
    -SelectExportFields=Escolha os campos que devem exportar-se, ou escolha um perfil de exportação predefinido
    -SelectImportFields=Choose source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile:
    +SelectExportFields=Escolha os campos que você deseja exportar ou selecione um perfil de exportação predefinido
    +SelectImportFields=Escolha os campos do arquivo de origem que você deseja importar e o campo de destino no banco de dados movendo-os para cima e para baixo com a âncora %s ou selecione um perfil de importação predefinido:
     NotImportedFields=Os campos não importados
    -SaveExportModel=Guardar este perfil de exportação assim pode reutiliza-lo posteriormente...
    -SaveImportModel=Guarde este perfil de importação, se pretender reutilizá-la mais tarde ...
    +SaveExportModel=Salve suas seleções como um perfil / modelo de exportação (para reutilização).
    +SaveImportModel=Salvar este perfil de importação (para reutilização) ...
     ExportModelName=Nome do perfil de exportação
    -ExportModelSaved=Perfil de exportação guardado com o nome de <b>%s</b>.
    +ExportModelSaved=Exportar perfil salvo como <b> %s </ b>.
     ExportableFields=Campos Exportáveis
     ExportedFields=Campos a Exportar
     ImportModelName=Importar nome do perfil
    -ImportModelSaved=Importar perfil guardado em <b>nome %s.</b>
    +ImportModelSaved=Importar perfil salvo como <b> %s </ b>.
     DatasetToExport=Conjunto de dados a exportar
     DatasetToImport=Selecção de dados para importar
     ChooseFieldsOrdersAndTitle=Escolha a ordem dos campos...
     FieldsTitle=Título Campos
     FieldTitle=Campo título
    -NowClickToGenerateToBuildExportFile=Agora, faça click em "Gerar" para gerar o ficheiro exportação...
    +NowClickToGenerateToBuildExportFile=Agora, selecione o formato de arquivo na caixa de combinação e clique em "Generate" para construir o arquivo de exportação ...
     AvailableFormats=Formatos Disponíveis
     LibraryShort=Biblioteca
     Step=Passo
     FormatedImport=Assistente de Importação
    -FormatedImportDesc1=Esta área permite realizar importações personalizadas de dados mediante um ajudante que evita ter conhecimentos técnicos de Dolibarr.
    -FormatedImportDesc2=O primeiro passo consiste em escolher o tipo de dado que deve importar, logo o ficheiro e a continuação escolher os campos que deseja importar.
    +FormatedImportDesc1=Este módulo permite-lhe atualizar os dados existentes ou adicionar novos objetos na base de dados a partir de um ficheiro sem conhecimentos técnicos, utilizando um assistente.
    +FormatedImportDesc2=O primeiro passo é escolher o tipo de dados que você deseja importar, o formato do arquivo de origem e os campos que você deseja importar.
     FormatedExport=Assistente de Exportação
    -FormatedExportDesc1=Esta área permite realizar exportações personalizadas dos dados mediante um ajudante que evita ter conhecimentos técnicos de Dolibarr.
    -FormatedExportDesc2=O primeiro passo consiste em escolher um dos conjuntos de dados predefinidos, a continuação escolher os campos que quer exportar para o ficheiro e em que ordem.
    -FormatedExportDesc3=Uma vez seleccionados os dados, é possível escolher o formato do ficheiro de exportação gerado.
    +FormatedExportDesc1=Essas ferramentas permitem a exportação de dados personalizados usando um assistente, para ajudá-lo no processo sem precisar de conhecimento técnico.
    +FormatedExportDesc2=O primeiro passo é escolher um conjunto de dados predefinido, em seguida, quais campos você deseja exportar e em qual ordem.
    +FormatedExportDesc3=Quando os dados a exportar são selecionados, você pode escolher o formato do arquivo de saída.
     Sheet=Folha
     NoImportableData=Não existe tipo de dados importável (não existe nenhum módulo com definições de dados importável activado)
     FileSuccessfullyBuilt=Ficheiro gerado
    @@ -50,10 +50,10 @@ LineTotalVAT=Montante do IVA para a linha
     TypeOfLineServiceOrProduct=Tipo de linha (0= produto, serviço de 1=)
     FileWithDataToImport=Arquivo com os dados de importação
     FileToImport=Fonte ficheiro a importar
    -FileMustHaveOneOfFollowingFormat=Arquivo a ser importado deve ter um dos seguintes formatos
    -DownloadEmptyExample=Download exemplo de fonte de arquivo vazio
    -ChooseFormatOfFileToImport=Escolha o formato de arquivo para usar como formato de arquivo de importação clicando no %s picto para seleccioná-lo ...
    -ChooseFileToImport=Escolha ficheiro a importar, em seguida, clique em picto %s ...
    +FileMustHaveOneOfFollowingFormat=O arquivo a ser importado deve ter um dos seguintes formatos
    +DownloadEmptyExample=Faça o download do arquivo de modelo com informações sobre o conteúdo do campo (* são campos obrigatórios)
    +ChooseFormatOfFileToImport=Escolha o formato de arquivo para usar como formato de arquivo de importação clicando no ícone %s para selecioná-lo ...
    +ChooseFileToImport=Carregar arquivo, em seguida, clique no ícone %s para selecionar o arquivo como arquivo de importação de origem ...
     SourceFileFormat=Formato de arquivo de origem
     FieldsInSourceFile=Os campos em arquivo fonte
     FieldsInTargetDatabase=Campos de destino na base de dados Dolibarr (negrito=obrigatório)
    @@ -68,54 +68,54 @@ FieldsTarget=Domínios orientados
     FieldTarget=Campo alvo
     FieldSource=Campo da Fonte
     NbOfSourceLines=Número de linhas no arquivo de origem
    -NowClickToTestTheImport=Verifique os parâmetros de importação que você definiu. Se eles estiverem correctos, clique no botão <b>&quot;%s&quot;</b> para iniciar uma simulação do processo de importação (dados não serão alterados em seu banco de dados, é apenas uma simulação para o momento) ...
    -RunSimulateImportFile=Inicie a simulação de importação
    +NowClickToTestTheImport=Verifique a configuração de importação que você definiu (verifique se você deve omitir as linhas de cabeçalho ou se elas serão marcadas como erros na simulação a seguir). <br> Clique no botão "<b> %s </ b>" para executar uma verificação da estrutura / conteúdo do arquivo e simular o processo de importação. <br> <b> Nenhum dado será alterado em seu banco de dados </ b>.
    +RunSimulateImportFile=Executar Simulação de Importação
     FieldNeedSource=Este campo requer dados do ficheiro fonte
     SomeMandatoryFieldHaveNoSource=Alguns campos obrigatórios não têm nenhuma fonte de dados de arquivo
     InformationOnSourceFile=Informações sobre a fonte de arquivo
     InformationOnTargetTables=Informações sobre os campos de destino
     SelectAtLeastOneField=Mudar de campo pelo menos uma fonte na coluna de campos para exportar
     SelectFormat=Escolha esse formato de arquivo de importação
    -RunImportFile=Lançamento arquivo de importação
    -NowClickToRunTheImport=Verifique o resultado da simulação de importação. Se tudo estiver ok, o lançamento de importação definitiva.
    -DataLoadedWithId=Todos os dados serão carregados com o seguinte ID de importação: <b>%s</b>
    -ErrorMissingMandatoryValue=Dados obrigatórios estão vazios no arquivo de origem para <b>%s</b> campo.
    -TooMuchErrors=Há ainda outra fonte <b>%s</b> linhas com erros, mas a produção tem sido limitada.
    -TooMuchWarnings=Há ainda outra fonte <b>%s</b> linhas com os avisos, mas a produção tem sido limitada.
    +RunImportFile=Importar dados
    +NowClickToRunTheImport=Verifique os resultados da simulação de importação. Corrija qualquer erro e refaça o teste. <br> Quando a simulação não relata erros, você pode continuar importando os dados para o banco de dados.
    +DataLoadedWithId=Todos os dados serão carregados com o seguinte ID de importação: <b> %s </ b> para permitir uma pesquisa neste conjunto de dados em caso de descobrir problemas no futuro.
    +ErrorMissingMandatoryValue=Os dados obrigatórios estão vazios no arquivo de origem para o campo <b> %s </ b>.
    +TooMuchErrors=Ainda existem <b> %s </ b> outras linhas de origem com erros, mas a saída foi limitada.
    +TooMuchWarnings=Ainda existem <b> %s </ b> outras linhas de origem com avisos, mas a saída foi limitada.
     EmptyLine=Linha em branco (serão descartadas)
    -CorrectErrorBeforeRunningImport=Primeiro, você deve corrigir todos os erros antes de executar a importação definitiva.
    +CorrectErrorBeforeRunningImport=Você <b> deve </ b> corrigir todos os erros <b> antes de </ b> executar a importação definitiva.
     FileWasImported=O arquivo foi importado com <b>%s</b> número.
    -YouCanUseImportIdToFindRecord=You can find all imported record in your database by filtering on field <b>import_key='%s'</b>.
    +YouCanUseImportIdToFindRecord=Você pode encontrar todos os registros importados em seu banco de dados, filtrando no campo <b> import_key = '%s' </ b>.
     NbOfLinesOK=Número de linhas sem erros e sem avisos: <b>%s.</b>
     NbOfLinesImported=Número de linhas de importados com sucesso: <b>%s.</b>
     DataComeFromNoWhere=Valor para inserir vem do nada no arquivo fonte.
     DataComeFromFileFieldNb=Valor para inserir o número vem <b>%s</b> campo no arquivo fonte.
    -DataComeFromIdFoundFromRef=Valor que vem de série <b>%s</b> campo de arquivo de origem será usado para encontrar id do objecto pai para usar <b>(%s</b> objecto Assim, o que tem a ref. Partir do arquivo fonte deve existir em Dolibarr).
    -DataComeFromIdFoundFromCodeId=Code that comes from field number <b>%s</b> of source file will be used to find id of parent object to use (So the code from source file must exists into dictionary <b>%s</b>). Note that if you know id, you can also use it into source file instead of code. Import should work in both cases.
    +DataComeFromIdFoundFromRef=O valor que vem do número de campo <b> %s </ b> do arquivo de origem será usado para encontrar o id do objeto pai a ser usado (portanto, o objeto <b> %s </ b> que possui a referência do arquivo de origem deve existir no banco de dados).
    +DataComeFromIdFoundFromCodeId=O código que vem do número de campo <b> %s </ b> do arquivo de origem será usado para localizar o id do objeto pai a ser usado (portanto, o código do arquivo de origem deve existir no dicionário <b> %s </ b> ). Observe que, se você souber o id, também poderá usá-lo no arquivo de origem em vez do código. A importação deve funcionar nos dois casos.
     DataIsInsertedInto=Dados provenientes de arquivo de origem será inserido no seguinte campo:
    -DataIDSourceIsInsertedInto=A identificação do objecto pai encontrado usando os dados no arquivo de origem, será inserido no campo seguinte:
    +DataIDSourceIsInsertedInto=O id do objeto pai foi encontrado usando os dados no arquivo de origem, será inserido no seguinte campo:
     DataCodeIDSourceIsInsertedInto=O ID da linha foi encontrado o pai a partir do código, será inserido no campo seguinte:
     SourceRequired=Valor dos dados é obrigatória
     SourceExample=Exemplo de valores de dados possíveis
     ExampleAnyRefFoundIntoElement=Qualquer ref encontrado para <b>%s</b> elemento
    -ExampleAnyCodeOrIdFoundIntoDictionary=Qualquer código (ou ID) encontrado no dicionário <b>%s</b>
    -CSVFormatDesc=<b>Comma Separated Value</b> formato de arquivo (. Csv). <br> Este é um formato de arquivo texto onde os campos são separados por separador [%s]. Se o separador é encontrado dentro de um conteúdo do campo, o campo é arredondado por volta de carácter [%s]. Caractere de escape para fugir personagem redonda é [%s].
    -Excel95FormatDesc=<b>Excel</b> file format (.xls)<br>This is native Excel 95 format (BIFF5).
    -Excel2007FormatDesc=<b>Excel</b> file format (.xlsx)<br>This is native Excel 2007 format (SpreadsheetML).
    -TsvFormatDesc=<b>Tab Separated Value</b> file format (.tsv)<br>This is a text file format where fields are separated by a tabulator [tab].
    -ExportFieldAutomaticallyAdded=Field <b>%s</b> was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ).
    -CsvOptions=Opções CSV
    -Separator=Separador
    -Enclosure=Invólucro
    +ExampleAnyCodeOrIdFoundIntoDictionary=Qualquer código (ou id.) encontrado no dicionário <b>%s</b>
    +CSVFormatDesc=Formato de arquivo <b> Comma Separated Value </ b> (.csv). <br> Este é um formato de arquivo de texto no qual os campos são separados por um separador [%s]. Se o separador for encontrado dentro de um conteúdo de campo, o campo será arredondado por um caractere arredondado [%s]. O personagem de escape para escapar do personagem redondo é [%s].
    +Excel95FormatDesc=Formato de arquivo <b> Excel </ b> (.xls) <br> Este é o formato nativo do Excel 95 (BIFF5).
    +Excel2007FormatDesc=Formato de arquivo <b> Excel </ b> (.xlsx) <br> Este é o formato nativo do Excel 2007 (SpreadsheetML).
    +TsvFormatDesc=Formato de arquivo <b> Tab Separated Value </ b> (.tsv) <br> Este é um formato de arquivo de texto no qual os campos são separados por um tabulador [tab].
    +ExportFieldAutomaticallyAdded=O campo <b> %s </ b> foi adicionado automaticamente. Isso evitará que você tenha linhas semelhantes para serem tratadas como registro duplicado (com este campo adicionado, todas as linhas possuirão seu próprio ID e serão diferentes).
    +CsvOptions=Opções de formato CSV
    +Separator=Separador de campo
    +Enclosure=Delimitador de Cadeia
     SpecialCode=Código Especial
     ExportStringFilter=%% permite a substituição de um ou mais caracteres no texto
    -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day<br>YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days<br> > YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days<br> < YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days
    -ExportNumericFilter=NNNNN filters by one value<br>NNNNN+NNNNN filters over a range of values<br>< NNNNN filters by lower values<br>> NNNNN filters by higher values
    +ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: filtra por um ano / mês / dia por YYYY + YYYY, YYYYMM + YYYYMM, YYYYMMDD + YYYYMMDD: filtros ao longo de um intervalo de anos / meses / mês <br>> AAAA,> AAAAM,> AAAAMMDD : filtros em todos os anos / meses / dias seguintes <YYYY, <YYYYMM, <YYYYMMDD: filtros em todos os anos / meses anteriores / dias
    +ExportNumericFilter=NNNNN filtra por um valor <br> NNNNN + NNNNN filtra por um intervalo de valores <br> <NNNNN filtra por valores mais baixos <br >> NNNNN filtra por valores mais altos
     ImportFromLine=Importar a partir da linha número
     EndAtLineNb=Terminar na linha número
    -ImportFromToLine=Importar as linhas número (de - a)
    -SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines
    -KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file
    +ImportFromToLine=Limite de intervalo (de - para) por exemplo. omitir linha de cabeçalho
    +SetThisValueTo2ToExcludeFirstLine=Por exemplo, defina esse valor como 3 para excluir as duas primeiras linhas
    +KeepEmptyToGoToEndOfFile=Mantenha este campo vazio para ir até o final do arquivo
     SelectPrimaryColumnsForUpdateAttempt=Selecione a(s) coluna(s) para usar como chave primária para a tentativa de atualização
     UpdateNotYetSupportedForThisImport=Atualização não é suportada para este tipo de importação (apenas inserção)
     NoUpdateAttempt=Não foi realizada nenhuma tentativa de atualização, apenas de inserção
    @@ -127,7 +127,7 @@ FilteredFields=Campos filtrados
     FilteredFieldsValues=Valor para filtrar
     FormatControlRule=Regra de controle de formato
     ## imports updates
    -KeysToUseForUpdates=Key to use for updating data
    +KeysToUseForUpdates=Chave (coluna) a ser usada para <b> atualizar </ b> dados existentes
     NbInsert=Número de linhas inseridas: %s
     NbUpdate=Número de linhas atualizadas: %s
     MultipleRecordFoundWithTheseFilters=Foram encontrados vários registos com esses filtros: %s
    diff --git a/htdocs/langs/pt_PT/help.lang b/htdocs/langs/pt_PT/help.lang
    index 089f50134bb..105b30c91e2 100644
    --- a/htdocs/langs/pt_PT/help.lang
    +++ b/htdocs/langs/pt_PT/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=On-line em tempo real / suporte remoto
     OtherSupport=Outro apoio
     ToSeeListOfAvailableRessources=Para entrar em contato / ver recursos disponíveis:
     HelpCenter=Central de Ajuda
    -DolibarrHelpCenter=Dolibarr Centro de Ajuda e Suporte
    -ToGoBackToDolibarr=Caso contrário, clique <a href="%s">aqui para utilizar Dolibarr</a>
    -TypeOfSupport=Fonte de apoio
    +DolibarrHelpCenter=Centro de ajuda e suporte Dolibarr
    +ToGoBackToDolibarr=Caso contrário, <a href="%s"> clique aqui para continuar a usar o Dolibarr </a>.
    +TypeOfSupport=Tipo de suporte
     TypeSupportCommunauty=Comunidade (grátis)
     TypeSupportCommercial=Comercial
     TypeOfHelp=Tipo
    @@ -15,12 +15,9 @@ NeedHelpCenter=Precisa de ajuda ou suporte?
     Efficiency=Eficiência
     TypeHelpOnly=Ajuda só
     TypeHelpDev=Ajuda + Desenvolvimento
    -TypeHelpDevForm=Ajuda + Desenvolvimento + Formação
    -ToGetHelpGoOnSparkAngels1=Algumas empresas podem fornecer uma forma mais rápida (por vezes imediata) e mais eficiente de suporte on-line, com acesso remoto ao seu computador. Tal ajuda pode ser encontrada <b>em %s</b> web site:
    -ToGetHelpGoOnSparkAngels3=Você também pode ir para a lista de todas as ajudas disponíveis para Dolibarr, para este clique no botão
    -ToGetHelpGoOnSparkAngels2=Às vezes, não há nenhuma empresa disponível no momento em que você faça a sua pesquisa, por isso acho que para mudar o filtro para procurar "todas as disponibilidade". Você será capaz de enviar mais pedidos.
    -BackToHelpCenter=Caso contrário, clique aqui para ir <a href="%s">de volta ao centro de ajuda home page.</a>
    -LinkToGoldMember=Você pode chamar um assistente selecionado pelo Dolibarr para o seu idioma ( %s) clicando em seu Widget (status e preço máximo são atualizadas automaticamente):
    -PossibleLanguages=Línguas de apoio
    -SubscribeToFoundation=Ajude o  projeto Dolibarr, inscreva-se na fundação
    -SeeOfficalSupport=Para obter suporte oficial do Dolibarr na sua língua: <br><b><a href="%s" target="_blank">%s</a></b>
    +TypeHelpDevForm=Ajuda + Desenvolvimento + Treinamento
    +BackToHelpCenter=Caso contrário, <a href="%s"> volte para a página inicial da Central de Ajuda </a>.
    +LinkToGoldMember=Você pode chamar um dos treinadores pré-selecionados pelo Dolibarr para o seu idioma (%s) clicando no Widget (status e preço máximo atualizados automaticamente):
    +PossibleLanguages=Idiomas suportados
    +SubscribeToFoundation=Ajude o projeto Dolibarr, assine a fundação
    +SeeOfficalSupport=Para obter suporte oficial do Dolibarr no seu idioma: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/pt_PT/holiday.lang b/htdocs/langs/pt_PT/holiday.lang
    index 2e06bb85b2b..9162c2c35e2 100644
    --- a/htdocs/langs/pt_PT/holiday.lang
    +++ b/htdocs/langs/pt_PT/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=GRH
    -Holidays=Licenças
    -CPTitreMenu=Licenças
    +Holidays=Sair
    +CPTitreMenu=Sair
     MenuReportMonth=Comunicado mensal
     MenuAddCP=Novo pedido de licença
    -NotActiveModCP=Deve ativar o módulo de Licenças para ver esta página.
    +NotActiveModCP=Você deve ativar o módulo Deixar para ver esta página.
     AddCP=Efetue um pedido de licença
     DateDebCP=Data de início
     DateFinCP=Data de fim
    @@ -15,18 +15,18 @@ ApprovedCP=Aprovado
     CancelCP=Cancelado
     RefuseCP=Recusou
     ValidatorCP=Aprovador
    -ListeCP=Lista de pedidos de licença
    -LeaveId=Leave ID
    +ListeCP=Lista de licença
    +LeaveId=ID da licença
     ReviewedByCP=Será aprovado por
    -UserForApprovalID=User for approval ID
    -UserForApprovalFirstname=Firstname of approval user
    -UserForApprovalLastname=Lastname of approval user
    -UserForApprovalLogin=Login of approval user
    +UserForApprovalID=ID do utilizador aprovador
    +UserForApprovalFirstname=Primeiro nome do usuário de aprovação
    +UserForApprovalLastname=Último nome do usuário de aprovação
    +UserForApprovalLogin=Login do utilizador aprovador
     DescCP=Descrição
     SendRequestCP=Criar pedido de licença
     DelayToRequestCP=Os pedidos de licença devem ser efetuados com pelo menos <b>%s dia(s)</b> de antecedência.
    -MenuConfCP=Fazer o balanço das licenças
    -SoldeCPUser=Balanço das licenças é <b>%s</b> dias
    +MenuConfCP=Saldo de licença
    +SoldeCPUser=Deixar saldo é <b> %s </ b> dias.
     ErrorEndDateCP=Você deve selecionar uma data de fim maior do que a data de início.
     ErrorSQLCreateCP=Ocorreu um erro SQL durante a criação:
     ErrorIDFicheCP=Ocorreu um erro, o pedido de licença não existe.
    @@ -35,14 +35,14 @@ ErrorUserViewCP=Você não está autorizado a consultar este pedido de licença.
     InfosWorkflowCP=Informação do fluxo de trabalho
     RequestByCP=Pedido por
     TitreRequestCP=Pedido de licença
    -TypeOfLeaveId=Type of leave ID
    -TypeOfLeaveCode=Type of leave code
    -TypeOfLeaveLabel=Type of leave label
    +TypeOfLeaveId=Tipo de ID de licença
    +TypeOfLeaveCode=Tipo de licença (código)
    +TypeOfLeaveLabel=Tipo de licença (nome)
     NbUseDaysCP=Número de dias de férias consumidos
    -NbUseDaysCPShort=Days consumed
    -NbUseDaysCPShortInMonth=Days consumed in month
    -DateStartInMonth=Start date in month
    -DateEndInMonth=End date in month
    +NbUseDaysCPShort=Dias consumidos
    +NbUseDaysCPShortInMonth=Dias consumidos no mês
    +DateStartInMonth=Data de início no mês
    +DateEndInMonth=Data final no mês
     EditCP=Editar
     DeleteCP=Eliminar
     ActionRefuseCP=Recusar
    @@ -71,7 +71,7 @@ DateRefusCP=Data de rejeição
     DateCancelCP=Data de cancelamento
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    -NotTheAssignedApprover=You are not the assigned approver
    +NotTheAssignedApprover=Você não é o aprovador atribuído
     MotifCP=Motivo
     UserCP=Utilizador
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,11 +81,11 @@ LogCP=Registo de actualizações de dias disponíveis
     ActionByCP=Realizado por
     UserUpdateCP=Para o utilizador
     PrevSoldeCP=Balanço prévio
    -NewSoldeCP=Novo balanço
    +NewSoldeCP=Novo Balanço
     alreadyCPexist=Um pedido de licença já foi feito para esse período.
     FirstDayOfHoliday=Primeiro dia de férias
     LastDayOfHoliday=Último dia de férias
    -BoxTitleLastLeaveRequests=Os últimos %s pedidos de licença modificados
    +BoxTitleLastLeaveRequests=Últimos %s pedidos de licença modificados
     HolidaysMonthlyUpdate=Atualização mensal
     ManualUpdate=Atualização manual
     HolidaysCancelation=Cancelamento do pedido de licença
    @@ -94,15 +94,15 @@ EmployeeFirstname=Primeiro do nome do funcionário
     TypeWasDisabledOrRemoved=O tipo de licença (ID %s) foi desativado ou removido
     LastHolidays=Últimos %s pedidos de licença
     AllHolidays=Todos os pedidos de licença
    -HalfDay=Half day
    -NotTheAssignedApprover=You are not the assigned approver
    -LEAVE_PAID=Paid vacation
    -LEAVE_SICK=Sick leave
    -LEAVE_OTHER=Other leave
    -LEAVE_PAID_FR=Paid vacation
    +HalfDay=Meio dia
    +NotTheAssignedApprover=Você não é o aprovador atribuído
    +LEAVE_PAID=Férias pagas
    +LEAVE_SICK=Baixa médica
    +LEAVE_OTHER=Outra tipo de licença
    +LEAVE_PAID_FR=Férias pagas
     ## Configuration du Module ##
    -LastUpdateCP=As últimas atualizações automáticas de alocação de licenças
    -MonthOfLastMonthlyUpdate=Mês das últimas atualizações automáticas de alocação de licenças
    +LastUpdateCP=Atualização automática mais recente da alocação de licenças
    +MonthOfLastMonthlyUpdate=Mês da última atualização automática de alocação de licenças
     UpdateConfCPOK=Atualizado com sucesso.
     Module27130Name= Gestão de pedidos de licença
     Module27130Desc= Gestão de pedidos de licença
    @@ -112,7 +112,7 @@ NoticePeriod=Período de aviso
     HolidaysToValidate=Validar pedidos de licença
     HolidaysToValidateBody=Abaixo encontra-se um pedido de licença por validar
     HolidaysToValidateDelay=Este pedido de licença ocorrerá dentro de um período inferior a %s dias.
    -HolidaysToValidateAlertSolde=O utilizador que fez este pedido de licença não tem dias disponíveis suficientes.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Pedidos de licença validados
     HolidaysValidatedBody=O seu pedido de licença para o período de %s a %s foi validado.
     HolidaysRefused=Pedido negado
    @@ -121,4 +121,9 @@ HolidaysCanceled=Pedido de licença cancelado
     HolidaysCanceledBody=O seu pedido de licença para o período de %s a %s foi cancelado.
     FollowedByACounter=1: Este tipo de licença precisa ser seguido por um contador. O contador é incrementado manualmente ou automaticamente, quando um pedido de licença é validado o contador é diminuído.<br> 0: Não seguido por um contador.
     NoLeaveWithCounterDefined=Não há tipos de licença definidos que precisam ser seguidos por um contador
    -GoIntoDictionaryHolidayTypes=Entre em <strong> Início - Configuração - Dicionários - Tipo de licenças</strong> para configurar os diferentes tipos de licença.
    +GoIntoDictionaryHolidayTypes=Vá para <strong> Home - Configuração - Dicionários - Tipo de licença </ strong> para configurar os diferentes tipos de folhas.
    +HolidaySetup=Configuração do módulo Holiday
    +HolidaysNumberingModules=Deixar modelos de numeração de pedidos
    +TemplatePDFHolidays=Modelo para solicitações de licenças PDF
    +FreeLegalTextOnHolidays=Texto livre em PDF
    +WatermarkOnDraftHolidayCards=Marcas d'água em pedidos de licença de rascunho
    diff --git a/htdocs/langs/pt_PT/install.lang b/htdocs/langs/pt_PT/install.lang
    index 3f0bd15b2e6..765c09c94fc 100644
    --- a/htdocs/langs/pt_PT/install.lang
    +++ b/htdocs/langs/pt_PT/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Basta seguir as instruções passo-a-passo.
     MiscellaneousChecks=Verificar pré-requisitos
     ConfFileExists=O ficheiro de configuração <b>%s</b> já existe.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=O ficheiro de configuração <b>%s</b> não existe e não foi possível criá-lo!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=O arquivo de configuração <b> %s </ b> não existe e não pôde ser criado!
     ConfFileCouldBeCreated=Foi criado o ficheiro de configuração <b>%s</b>.
    -ConfFileIsNotWritable=O ficheiro de configuração <b>%s</b> não é gravável. Verifique as permissões. Na primeira instalação, o seu servidor da Web tem de ter permissões de gravação para este ficheiro durante o processo de configuração ("chmod 666", por exemplo num SO, tal como o Unix).
    +ConfFileIsNotWritable=O arquivo de configuração <b> %s </ b> não é gravável. Verifique as permissões. Para a primeira instalação, seu servidor da web deve ser capaz de gravar nesse arquivo durante o processo de configuração ("chmod 666", por exemplo, em um SO Unix como).
     ConfFileIsWritable=O ficheiro de configuração <b>%s</b> é gravável.
     ConfFileMustBeAFileNotADir=O ficheiro de configuração <b> %s </b> deve ser um ficheiro, não um diretório.
    -ConfFileReload=Recarregar toda a informação do ficheiro de configuração.
    +ConfFileReload=Recarregando parâmetros do arquivo de configuração.
     PHPSupportSessions=Este PHP suporta sessões.
     PHPSupportPOSTGETOk=Este PHP suporta variáveis GET e POST.
    -PHPSupportPOSTGETKo=É possível que a sua configuração PHP não suporte as variáveis POST e/ou GET. Verifique o seu parâmetro <b>variables_order</b> no php.ini
    -PHPSupportGD=Este PHP suporta funções gráficas GD .
    -PHPSupportCurl=Esta versão do PHP suporta Curl.
    -PHPSupportUTF8=Este PHP suporte funções UTF8.
    +PHPSupportPOSTGETKo=É possível que sua configuração do PHP não suporte variáveis ​​POST e / ou GET. Verifique o parâmetro <b> variables_order </ b> no php.ini.
    +PHPSupportGD=Este PHP suporta funções gráficas do GD.
    +PHPSupportCurl=Este PHP suporta o Curl.
    +PHPSupportUTF8=Este PHP suporta funções UTF8.
     PHPMemoryOK=A sua memória máxima da sessão PHP está definida para <b>%s.</b> Isto deverá ser suficiente.
    -PHPMemoryTooLow=A sua memória máxima da sessão PHP está definida para <b>%s</b> bytes. Isto deve ser muito baixo. Altere o seu <b>php.ini</b> para definir o parâmetro <b>memory_limit</b> para pelo menos <b>%s</b> bytes.
    -Recheck=Clique aqui para um teste mais significativo
    -ErrorPHPDoesNotSupportSessions=A sua instalação PHP não suporta sessões. Esta função é necessária para que o Dolibarr funcione. Verifique a sua configuração PHP.
    -ErrorPHPDoesNotSupportGD=A sua instalação PHP não suporta a função gráfica GD. Não terá nenhum gráfico disponível.
    +PHPMemoryTooLow=Sua memória de sessão do PHP max está configurada para <b> %s </ b> bytes. Isso é muito baixo. Altere seu <b> php.ini </ b> para definir o parâmetro <b> memory_limit </ b> para pelo menos <b> %s </ b> bytes.
    +Recheck=Clique aqui para um teste mais detalhado
    +ErrorPHPDoesNotSupportSessions=Sua instalação do PHP não suporta sessões. Este recurso é necessário para permitir que o Dolibarr funcione. Verifique sua configuração do PHP e permissões do diretório de sessões.
    +ErrorPHPDoesNotSupportGD=Sua instalação do PHP não suporta funções gráficas do GD. Nenhum gráfico estará disponível.
     ErrorPHPDoesNotSupportCurl=A sua instalação PHP não suporta Curl.
    -ErrorPHPDoesNotSupportUTF8=A sua instalação PHP não suporta as funções UTF8. O Dolibarr não pode funcionar corretamente. Resolva isto antes de instalar o Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Sua instalação do PHP não suporta funções UTF8. Dolibarr não pode funcionar corretamente. Resolva isso antes de instalar o Dolibarr.
     ErrorDirDoesNotExists=A diretoria %s não existe.
    -ErrorGoBackAndCorrectParameters=Voltar atrás e corrigir os parâmetros errados.
    +ErrorGoBackAndCorrectParameters=Volte e verifique / corrija os parâmetros.
     ErrorWrongValueForParameter=Pode ter inserido um valor incorreto para o parâmetro ' %s'.
     ErrorFailedToCreateDatabase=Não foi possível criar a base de dados' %s'.
     ErrorFailedToConnectToDatabase=Não foi possível ligar à base de dados' %s'.
     ErrorDatabaseVersionTooLow=A versão da base de dados (%s) é muito antiga. É necessária a versão %s ou superior.
     ErrorPHPVersionTooLow=A versão PHP é muito antiga. É necessária a versão %s.
    -ErrorConnectedButDatabaseNotFound=Conexão ao servidor bem sucedida, mas não foi encontrada a base de dados ' %s'.
    +ErrorConnectedButDatabaseNotFound=Conexão ao servidor bem-sucedida, mas o banco de dados '%s' não foi encontrado.
     ErrorDatabaseAlreadyExists=A base de dados' %s' já existe.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Se a base de dados não existir, volte e verifique a opção "Criar base de dados".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=Se o banco de dados não existir, volte e marque a opção "Criar banco de dados".
     IfDatabaseExistsGoBackAndCheckCreate=Se a base de dados já existir, volte e desmarque a opção "Criar base de dados".
    -WarningBrowserTooOld=A versão do navegador é muito antiga. Atualize o seu navegador para uma versão mais recente do Firefox, Chrome ou Ópera.
    +WarningBrowserTooOld=A versão do navegador é muito antiga. Atualizar o seu navegador para uma versão recente do Firefox, Chrome ou Opera é altamente recomendado.
     PHPVersion=Versão PHP
     License=A utilizar a licença
     ConfigurationFile=Ficheiro de Configuração
    @@ -45,22 +45,23 @@ DolibarrDatabase=Base de Dados Dolibarr
     DatabaseType=Tipo de base de dados
     DriverType=Tipo de Controlador
     Server=Servidor
    -ServerAddressDescription=Nome ou endereço IP para o servidor de dados, normalmente 'localhost' ao banco de dados está hospedado no mesmo servidor que servidor web
    +ServerAddressDescription=Nome ou endereço de IP para o servidor da base de dados. Normalmente 'hospedeiro local' quando a base de dados está alojada no mesmo servidor que o servidor da Web.
     ServerPortDescription=A porta do servidor da base de dados. Mantenha em branco, se desconhecida.
     DatabaseServer=Servidor da Base de Dados
     DatabaseName=Nome da Base de Dados
    -DatabasePrefix=Tabela de prefixos da base de dados
    -AdminLogin=Início de sessão para o administrador da base de dados Dolibarr.
    -PasswordAgain=Contrassenha
    +DatabasePrefix=Prefixo da tabela de banco de dados
    +DatabasePrefixDescription=Prefixo da tabela do banco de dados. Se vazio, o padrão é llx_.
    +AdminLogin=Conta de usuário para o proprietário do banco de dados Dolibarr.
    +PasswordAgain=Redigite a confirmação da senha
     AdminPassword=A senha para o utilizador da base de dados Dolibarr.
     CreateDatabase=Criar base de dados
    -CreateUser=Crie o proprietário ou conceda-lhe permissão na base de dados
    +CreateUser=Crie uma conta de usuário ou conceda permissão de conta de usuário no banco de dados Dolibarr
     DatabaseSuperUserAccess=Servidor da Base de Dados - Acesso de Administrador
    -CheckToCreateDatabase=Marque a caixa se a base de dados não existir e se deverá ser criada. <br> Neste caso, deve preencher o nome/senha para a conta de administrador, no fim desta página.
    -CheckToCreateUser=Selecione se o proprietário da base de dados não existir e deve ser criado, ou se ele existe mas a base de dados não existe e as permissões devem ser concedidas.<br>Neste caso, você deve escolher seu nome de utilizador e palavra-passe e também preencher o nome de utilizador/palavra-passe para a conta do super-utilizador na parte inferior desta página. Se esta caixa estiver desmarcada, a base de dados do proprietário deve existir e deve ser possível ter acesso a esta.
    -DatabaseRootLoginDescription=Início de sessão do utilizador autorizado para criar as novas bases de dados ou novos utilizadores, obrigatório se a sua base de dados ou o administrador já existirem.
    -KeepEmptyIfNoPassword=Deixar em branco se o utilizador não tiver uma senha (evitar isto)
    -SaveConfigurationFile=Guardar valores
    +CheckToCreateDatabase=Marque a caixa se o banco de dados ainda não existir e, portanto, ele deve ser criado. <br> Nesse caso, você também deve preencher o nome de usuário e a senha da conta de superusuário na parte inferior desta página.
    +CheckToCreateUser=Marque a caixa se: <br> a conta de usuário do banco de dados ainda não existir e assim deve ser criada, ou se a conta do usuário existir, mas o banco de dados não existir e as permissões tiverem de ser concedidas. <br> Nesse caso, você deve digitar a conta de usuário e senha e <b> também </ b> o nome da conta de superusuário e senha na parte inferior desta página. Se esta caixa estiver desmarcada, o proprietário e a senha do banco de dados já devem existir.
    +DatabaseRootLoginDescription= Nome da conta do super utilizador (para criar nova base de dados ou novos utilizadores), obrigatório se a base de dados ou o seu proprietário ainda não existir.
    +KeepEmptyIfNoPassword=Deixe em branco se o superusuário não tiver senha (NÃO é recomendado)
    +SaveConfigurationFile=Salvando parâmetros para
     ServerConnection=Conexão ao servidor
     DatabaseCreation=Criação da Base de Dados
     CreateDatabaseObjects=Criação dos objetos da base de dados
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Crie chaves estrangeiras e índices para a tabela %s
     OtherKeysCreation=Chaves estrangeiras e criação de índex
     FunctionsCreation=Criação de Funções
     AdminAccountCreation=Criação da sessão do Administrador
    -PleaseTypePassword=Por favor, insira uma senha, não são permitidas senhas em branco!
    -PleaseTypeALogin=Por favor, digite um nome!
    -PasswordsMismatch=As senhas não coincidem, por favor, tente de novo!
    +PleaseTypePassword=Por favor, digite uma senha, senhas vazias não são permitidas!
    +PleaseTypeALogin=Por favor, digite um login!
    +PasswordsMismatch=As senhas diferem, por favor, tente novamente!
     SetupEnd=Fim da Configuração
     SystemIsInstalled=Esta instalação está completa.
     SystemIsUpgraded=O Dolibarr foi atualizado com sucesso.
    @@ -81,15 +82,15 @@ YouNeedToPersonalizeSetup=Precisa de configurar o Dolibarr de acordo com as suas
     AdminLoginCreatedSuccessfuly=Sessão de administrador Dolibarr '<b>%s</b>' criada com sucesso.
     GoToDolibarr=Ir para Dolibarr
     GoToSetupArea=Ir para Dolibarr (área de configuração)
    -MigrationNotFinished=A versão da base de dados não está completamente atualizada, assim terá que executar novamente o processo de atualização.
    +MigrationNotFinished=A versão do banco de dados não está completamente atualizada: execute o processo de atualização novamente.
     GoToUpgradePage=Ir novamente para a página de atualização
     WithNoSlashAtTheEnd=Sem a barra "/" no fim
    -DirectoryRecommendation=É recomendado a utilização da diretoria fora da sua diretoria das suas páginas da web.
    +DirectoryRecommendation=Recomenda-se usar um diretório fora das páginas da web.
     LoginAlreadyExists=Já existe
     DolibarrAdminLogin=Sessão Administrador Dolibarr
    -AdminLoginAlreadyExists=A conta de administrador <b>' %s'</b> Dolibarr já existe. Volte atrás, se desejar criar uma conta.
    +AdminLoginAlreadyExists=Conta de administrador Dolibarr '<b> %s </ b>' já existe. Volte se você quiser criar outro.
     FailedToCreateAdminLogin=Falha na criação da conta de Administrador do Dolibarr.
    -WarningRemoveInstallDir=Aviso: por motivos de segurança, assim que a instalação ou a atualização estiverem completas, e para evitar novamente a utilização das ferramentas de instalação, deverá adicionar um ficheiro com o nome <b>install.lock</b> na diretoria de documentos Dolibarr, para evitar a sua utilização maliciosa.</b>
    +WarningRemoveInstallDir=Atenção, por razões de segurança, assim que a instalação ou atualização estiver completa, você deve adicionar um arquivo chamado <b> install.lock </ b> no diretório de documentos do Dolibarr para evitar o uso acidental / malicioso das ferramentas de instalação novamente.
     FunctionNotAvailableInThisPHP=Não disponível neste PHP
     ChoosedMigrateScript=Escolhido migrar script
     DataMigration=Migração da base-de-dados (dados)
    @@ -97,49 +98,49 @@ DatabaseMigration=Migração da base-de-dados (estrutura + alguns dados)
     ProcessMigrateScript=Processamento do "Script"
     ChooseYourSetupMode=Escolha o seu modo de configuração e clique em "Iniciar"...
     FreshInstall=Instalação Nova
    -FreshInstallDesc=Utilize este modo, se esta for a sua primeira instalação. Se não, este modo pode reparar uma instalação anterior incompleta, mas se deseja atualizar a sua versão, selecione o modo "Atualizar".
    +FreshInstallDesc=Use este modo se esta for sua primeira instalação. Caso contrário, este modo pode reparar uma instalação anterior incompleta. Se você quiser atualizar sua versão, escolha o modo "Atualizar".
     Upgrade=Atualizar
     UpgradeDesc=Utilize este modo se tiver substituído os ficheiros Dolibarr antigos com ficheiros de uma versão mais recente. Isto irá atualizar a sua base de dados e os dados.
     Start=Iniciar
     InstallNotAllowed=Configuração não permitida pelas permissões <b>conf.php</b>
     YouMustCreateWithPermission=Deve criar o ficheiro %s e definir as permissões de gravação deste para o servidor da Web, durante o processo de instalação.
    -CorrectProblemAndReloadPage=Por favor, corrija o problema e pressione em 'F5' para recarregar a página.
    +CorrectProblemAndReloadPage=Por favor, corrija o problema e pressione F5 para recarregar a página.
     AlreadyDone=Já migrada
     DatabaseVersion=Versão da Base de Dados
     ServerVersion=Versão do Servidor da Base de Dados
     YouMustCreateItAndAllowServerToWrite=Deve criar esta diretoria e permitir que o servidor da web grave nela.
     DBSortingCollation=Ordem da ordenação dos carateres
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Pediu para criar a base de dados <b>%s</b>, mas para isso, o Dolibarr precisa de ligar ao servidor <b>%s</b> com permissões de administrador <b>%s</b>.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Pediu para criar a base de dados da sessão <b>%s,</b> mas para isso, o Dolibarr precisa de ligar ao servidor <b>%s</b> com permissões de administrador <b>%s</b>.
    -BecauseConnectionFailedParametersMayBeWrong=Como conexão falhou, de acolhimento ou super usuário parâmetros devem ser errado.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=Você selecionou criar o banco de dados <b> %s </ b>, mas para isso, o Dolibarr precisa se conectar ao servidor <b> %s </ b> com permissões de super usuário <b> %s </ b>.
    +YouAskLoginCreationSoDolibarrNeedToConnect=Você selecionou o usuário do banco de dados de criação <b> %s </ b>, mas para isso, o Dolibarr precisa se conectar ao servidor <b> %s </ b> com permissões de super usuário <b> %s </ b>.
    +BecauseConnectionFailedParametersMayBeWrong=A ligação à base de dados falhou: os parâmetros do hospedeiro ou super utilizador devem estar errados.
     OrphelinsPaymentsDetectedByMethod=Detetado o pagamento Orphelins pelo método %s
     RemoveItManuallyAndPressF5ToContinue=Remova-o manualmente e pressione F5 para continuar.
     FieldRenamed=Campo renomeado
    -IfLoginDoesNotExistsCheckCreateUser=Se a sessão ainda não existir, deve marcar a opção "Criar Utilizador"
    -ErrorConnection=Servidor <b>" %s",</b> nome do banco de dados <b>" %s",</b> login <b>" %s",</b> ou banco de dados senha pode estar errado ou PHP versão cliente pode ser muito velho para comparação de dados versão.
    +IfLoginDoesNotExistsCheckCreateUser=Se o usuário ainda não existe, você deve marcar a opção "Criar usuário"
    +ErrorConnection=Servidor "<b> %s </ b>", nome do banco de dados "<b> %s </ b>", login "<b> %s </ b>", ou a senha do banco de dados pode estar errada ou a versão do cliente PHP pode estar muito antigo em comparação com a versão do banco de dados.
     InstallChoiceRecommanded=Recomendado opção de instalar a versão do seu <b>%s %s</b> versão atual
     InstallChoiceSuggested=<b>Opção de instalação sugerida pelo instalador.</b>
    -MigrateIsDoneStepByStep=A versão de destino (%s) tem uma abertura de várias versões, então assistente de instalação vai voltar a sugerir próxima migração uma vez que esta será uma final.
    -CheckThatDatabasenameIsCorrect=Verifique se o nome do banco de dados <b>"%s"</b> está correto.
    +MigrateIsDoneStepByStep=A versão de destino (%s) tem um intervalo de várias versões. O assistente de instalação voltará para sugerir uma migração adicional quando esta estiver concluída.
    +CheckThatDatabasenameIsCorrect=Verifique se o nome do banco de dados "<b> %s </ b>" está correto.
     IfAlreadyExistsCheckOption=Se esse nome está correto e que banco de dados ainda não existe, você deve marcar a opção "Criar banco de dados".
     OpenBaseDir=parametr openbasedir PHP
    -YouAskToCreateDatabaseSoRootRequired=Marcou a caixa "Criar Base de Dados". Para isto, precisa de indicar o nome/senha do administrador (base do formulário).
    -YouAskToCreateDatabaseUserSoRootRequired=Marcou a caixa "Criar base de dados do administrador". Para isso, precisa do início de sessão/senha de administrador (base do formulário).
    -NextStepMightLastALongTime=etapa atual pode durar vários minutos. Por favor, aguarde até a próxima tela é mostrada completamente antes de continuar.
    +YouAskToCreateDatabaseSoRootRequired=Você marcou a caixa "Criar banco de dados". Para isso, você precisa fornecer o login / senha do superusuário (parte inferior do formulário).
    +YouAskToCreateDatabaseUserSoRootRequired=Você marcou a caixa "Criar proprietário do banco de dados". Para isso, você precisa fornecer o login / senha do superusuário (parte inferior do formulário).
    +NextStepMightLastALongTime=O passo atual pode levar vários minutos. Por favor, aguarde até que a próxima tela seja mostrada completamente antes de continuar.
     MigrationCustomerOrderShipping=Migrar para o transporte de armazenamento ordens do cliente
     MigrationShippingDelivery=Atualizar armazenamento de transporte
     MigrationShippingDelivery2=Atualizar armazenamento de transporte 2
     MigrationFinished=Migração terminada
    -LastStepDesc=<strong>Último passo:</strong> Defina aqui o login ea senha que você planeja usar para se conectar ao software. Não perca isso, pois é a conta para administrar todos os outros.
    +LastStepDesc=<strong> Last step </ strong>: Defina aqui o login e a senha que você deseja usar para se conectar ao Dolibarr. <b> Não perca isso, pois é a conta principal para administrar todas as outras contas de usuário adicionais. </ b>
     ActivateModule=Ative o módulo %s
     ShowEditTechnicalParameters=Clique aqui para mostrar/editar os parâmetros avançados (modo avançado)
    -WarningUpgrade=Aviso:\nEfetuou previamente uma cópia de segurança da base-de-dados?\nIsto é altamente recomendado: por exemplo, no caso de existirem falhas nos sistemas de base-de-dados (na versão 5.5.40/41/42/43 do MySQL), alguns dados ou tabelas poderão perder-se durante este processo, daí recomenda-se que faça uma cópia completa da sua base-de-dados antes de iniciar o processo de migração.\nClique em OK para iniciar o processo de migração...
    -ErrorDatabaseVersionForbiddenForMigration=A sua versão da base-de-dados é %s. Esta versão possui um erro que poderá resultar em perda de dados se efetuar uma alteração da estrutura, como é efetuada durante o processo de migração. Como tal, a migração não será possível de efetuar enquanto a versão da base-de-dados for atualizada (lista de versões que contêm erros: %s)
    -KeepDefaultValuesWamp=Você usa o DoliWamp Setup Wizard, para valores propostos aqui já estão otimizados. Alterá-los apenas se souber o que você faz.
    -KeepDefaultValuesDeb=Você pode usar o assistente de configuração Dolibarr de um Ubuntu ou um pacote Debian, então os valores propostos aqui já estão otimizados. Apenas a senha do proprietário do banco de dados para criar tem de ser concluída. Alterar parâmetros outros apenas se você sabe o que fazer.
    -KeepDefaultValuesMamp=Você usa o DoliMamp Setup Wizard, para valores propostos aqui já estão otimizados. Alterá-los apenas se souber o que você faz.
    -KeepDefaultValuesProxmox=Você usa o assistente de configuração Dolibarr de um appliance virtual Proxmox, para valores propostos aqui já são otimizados. Alterá-los apenas se você sabe o que fazer.
    -UpgradeExternalModule=Corra o processo de atualização dedicado dos módulos externos
    +WarningUpgrade=Aviso:\nVocê executou um backup de banco de dados primeiro?\nIsso é altamente recomendado. Perda de dados (devido a erros no mysql versão 5.5.40 / 41/42/43) pode ser possível durante este processo, por isso é essencial ter um despejo completo do seu banco de dados antes de iniciar qualquer migração.\n\nClique em OK para iniciar o processo de migração ...
    +ErrorDatabaseVersionForbiddenForMigration=Sua versão do banco de dados é %s. Ele tem um bug crítico, tornando possível a perda de dados se você fizer alterações estruturais em seu banco de dados, como é exigido pelo processo de migração. Por sua razão, a migração não será permitida até que você atualize seu banco de dados para uma versão de camada (corrigida) (lista de versões conhecidas de bugs: %s)
    +KeepDefaultValuesWamp=Você usou o assistente de configuração Dolibarr da DoliWamp, então os valores aqui propostos já estão otimizados. Mude-os somente se você souber o que está fazendo.
    +KeepDefaultValuesDeb=Você usou o assistente de configuração do Dolibarr a partir de um pacote do Linux (Ubuntu, Debian, Fedora ...), então os valores aqui propostos já estão otimizados. Somente a senha do proprietário do banco de dados a ser criada deve ser inserida. Altere outros parâmetros apenas se você souber o que está fazendo.
    +KeepDefaultValuesMamp=Você usou o assistente de configuração Dolibarr do DoliMamp, então os valores propostos aqui já estão otimizados. Mude-os somente se você souber o que está fazendo.
    +KeepDefaultValuesProxmox=Você usou o assistente de configuração Dolibarr de um dispositivo virtual Proxmox, portanto, os valores propostos aqui já estão otimizados. Mude-os somente se você souber o que está fazendo.
    +UpgradeExternalModule=Execute o processo de atualização dedicado do módulo externo
     SetAtLeastOneOptionAsUrlParameter=Defina pelo menos uma opção como um parâmetro no URL. Por exemplo: '...repair.php?standard=confirmed'
     NothingToDelete=Nada para limpar/eliminar
     NothingToDo=Nada para fazer
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contrato correcção de dados
     MigrationContractsNumberToUpdate=%s contrato (s) para atualizar
     MigrationContractsLineCreation=Criar uma linha de contrato contrato ref %s
     MigrationContractsNothingToUpdate=Não há mais coisas para fazer
    -MigrationContractsFieldDontExist=Campo fk_facture não existe mais. Nada a fazer.
    +MigrationContractsFieldDontExist=O campo fk_facture não existe mais. Nada para fazer.
     MigrationContractsEmptyDatesUpdate=Contrato vazio data correcção
    -MigrationContractsEmptyDatesUpdateSuccess=A correção de datas por preencher em contratos existentes foi efetuada com sucesso
    +MigrationContractsEmptyDatesUpdateSuccess=Correção de data vazia do contrato feita com sucesso
     MigrationContractsEmptyDatesNothingToUpdate=Nenhum contrato vazio com data para corrigir
     MigrationContractsEmptyCreationDatesNothingToUpdate=Nenhum contrato data de criação para corrigir
     MigrationContractsInvalidDatesUpdate=Data inválida, valor do contracto em correcção
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Actualização de entrega
     MigrationStockDetail=Atualizar stock valor dos produtos
     MigrationMenusDetail=Atualização dinâmica menus quadros
     MigrationDeliveryAddress=Atualizar endereço de entrega em transferências
    -MigrationProjectTaskActors=Migração de dados para llx_projet_task_actors tabela
    +MigrationProjectTaskActors=Migração de dados para a tabela llx_projet_task_actors
     MigrationProjectUserResp=Dados fk_user_resp domínio da migração de llx_projet para llx_element_contact
     MigrationProjectTaskTime=Atualização do tempo despendido em segundos
     MigrationActioncommElement=Atualizar os dados nas ações
     MigrationPaymentMode=A migração de dados para o modo de pagamento
     MigrationCategorieAssociation=Migração de categorias
    -MigrationEvents=Migração dos eventos de forma a adicionar o criador do evento à tabela de atribuições
    -MigrationEventsContact=Migração dos eventos de forma a adicionar o contacto do evento à tabela de atribuições
    +MigrationEvents=Migração de eventos para adicionar o proprietário do evento à tabela de atribuições
    +MigrationEventsContact=Migração de eventos para adicionar contato de evento à tabela de atribuições
     MigrationRemiseEntity=Atualize o valor do campo entity da tabela llx_societe_remise
     MigrationRemiseExceptEntity=Atualize o valor do campo entity da tabela llx_societe_remise_except
     MigrationUserRightsEntity=Atualizar o valor do campo entidade de llx_user_rights
     MigrationUserGroupRightsEntity=Atualizar o valor do campo entidade de llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Recarregar módulo %s
     MigrationResetBlockedLog=Restabelecer o módulo BlockedLog para o algoritmo v7
     ShowNotAvailableOptions=Mostrar opções indisponíveis
     HideNotAvailableOptions=Ocultar opções indisponíveis
    -ErrorFoundDuringMigration=Não pode proceder ao próximo passo porque foram reportados erros durante o processo de migração. Para ignorar os erros, pode <a href="%s">clicar aqui</a>, mas a aplicação ou algumas funcionalidades desta poderão não funcionar corretamente.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    -ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ErrorFoundDuringMigration=Erro (s) foram relatados durante o processo de migração, portanto, a próxima etapa não está disponível. Para ignorar erros, você pode <a href="%s"> clicar aqui </a>, mas o aplicativo ou alguns recursos podem não funcionar corretamente até que os erros sejam resolvidos.
    +YouTryInstallDisabledByDirLock=O aplicativo tentou fazer o upgrade automático, mas as páginas de instalação / atualização foram desativadas para segurança (o diretório foi renomeado com o sufixo .lock). <br>
    +YouTryInstallDisabledByFileLock=O aplicativo tentou fazer o upgrade automático, mas as páginas de instalação / atualização foram desativadas para segurança (pela existência de um arquivo de bloqueio <strong> install.lock </ strong> no diretório de documentos dolibarr).
    +ClickHereToGoToApp=Clique aqui para ir ao seu aplicativo
    +ClickOnLinkOrRemoveManualy=Clique no link a seguir. Se você sempre vê esta mesma página, você deve remover / renomear o arquivo install.lock no diretório de documentos.
    diff --git a/htdocs/langs/pt_PT/interventions.lang b/htdocs/langs/pt_PT/interventions.lang
    index 895d64743bc..413d4dba8c6 100644
    --- a/htdocs/langs/pt_PT/interventions.lang
    +++ b/htdocs/langs/pt_PT/interventions.lang
    @@ -2,8 +2,9 @@
     Intervention=Intervenção
     Interventions=Intervenções
     InterventionCard=Ficha de intervenção
    -NewIntervention=Nova Intervenção
    +NewIntervention=Nova intervenção
     AddIntervention=Criar intervenção
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Lista de Intervenções
     ActionsOnFicheInter=Ações de intervenção
     LastInterventions=Últimas %s intervenções 
    @@ -50,9 +51,9 @@ UseServicesDurationOnFichinter=Utilizar a duração do serviço para as interven
     UseDurationOnFichinter=Oculta o campo de duração dos registos das intervenções
     UseDateWithoutHourOnFichinter=Oculta as horas e minutos campo de data dos registos das intervenções
     InterventionStatistics=Estatísticas das intervenções
    -NbOfinterventions=Número de fichas de intervenção
    -NumberOfInterventionsByMonth=Número de fcihas de intervenção por mês (data de validação)
    -AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
    +AmountOfInteventionNotIncludedByDefault=O montante da intervenção não é incluído, por defeito, no lucro (na maioria dos casos, os quadros de horários são usados ​​para contar o tempo gasto). Adicione a opção PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT com o valor 1 em Inicio->Configurações->Outras configurações para incluí-los.
     ##### Exports #####
     InterId=ID da intervenção
     InterRef=Ref. da intervenção
    diff --git a/htdocs/langs/pt_PT/mails.lang b/htdocs/langs/pt_PT/mails.lang
    index ee313b17aec..a8e01595cbf 100644
    --- a/htdocs/langs/pt_PT/mails.lang
    +++ b/htdocs/langs/pt_PT/mails.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - mails
    -Mailing=Mailing
    +Mailing=E-mailing
     EMailing=Mailing
     EMailings=Mailings
     AllEMailings=Todos os E-Mailings
    @@ -21,7 +21,7 @@ MailFile=Ficheiro
     MailMessage=Mensagem do e-mail
     ShowEMailing=Mostrar E-Mailing
     ListOfEMailings=Lista de mailings
    -NewMailing=Novo Mailing
    +NewMailing=Novo emailing
     EditMailing=Editar Mailing
     ResetMailing=Reenviar e-mail
     DeleteMailing=Eliminar Mailing
    @@ -43,15 +43,15 @@ MailUnsubcribe=Cancelar Subscrição
     MailingStatusNotContact=Não contactar
     MailingStatusReadAndUnsubscribe=Ler e cancelar subscrição
     ErrorMailRecipientIsEmpty=A direcção do destinatario está vazia
    -WarningNoEMailsAdded=nenhum Novo e-mail a Adicionar à lista destinatarios.
    -ConfirmValidMailing=Are you sure you want to validate this emailing?
    -ConfirmResetMailing=Warning, by reinitializing emailing <b>%s</b>, you allow to make a mass sending of this email another time. Are you sure you this is what you want to do?
    -ConfirmDeleteMailing=Are you sure you want to delete this emailling?
    -NbOfUniqueEMails=Nº de e-mails únicos
    -NbOfEMails=Nº de E-mails
    +WarningNoEMailsAdded=Nenhum e-mail novo para adicionar à lista destinatários.
    +ConfirmValidMailing=Tem certeza de que deseja validar este e-mail?
    +ConfirmResetMailing=Atenção, ao reinicializar o e-mail <b> %s </ b>, você poderá reenviar este e-mail em uma correspondência em massa. Você tem certeza de que quer fazer isso?
    +ConfirmDeleteMailing=Tem certeza de que deseja excluir este e-mail?
    +NbOfUniqueEMails=Não de e-mails exclusivos
    +NbOfEMails=No. de EMails
     TotalNbOfDistinctRecipients=Número de destinatarios únicos
     NoTargetYet=Nenhum destinatario definido
    -NoRecipientEmail=No recipient email for %s
    +NoRecipientEmail=Nenhum email de destinatário para %s
     RemoveRecipient=Eliminar destinatario
     YouCanAddYourOwnPredefindedListHere=Para Criar o seu módulo de selecção e-mails, tem que ir a htdocs/core/modules/mailings/README.
     EMailTestSubstitutionReplacedByGenericValues=Em modo teste, as Variávels de substituição são sustituidas por valores genéricos
    @@ -59,111 +59,111 @@ MailingAddFile=Adicionar este Ficheiro
     NoAttachedFiles=Sem ficheiros anexos
     BadEMail=Valor inválido para o email
     CloneEMailing=Clone Emailing
    -ConfirmCloneEMailing=Are you sure you want to clone this emailing?
    +ConfirmCloneEMailing=Tem certeza de que deseja clonar este e-mail?
     CloneContent=Clone mensagem
     CloneReceivers=Clonar destinatários
    -DateLastSend=Date of latest sending
    +DateLastSend=Data do último envio
     DateSending=Data de envio
     SentTo=Enviado para <b>%s</b>
     MailingStatusRead=Ler
    -YourMailUnsubcribeOK=O e-mail <b>%s</b> foi cancelado corretamente na lista de discusões
    -ActivateCheckReadKey=Key used to encrypt URL used for "Read Receipt" and "Unsubcribe" feature
    +YourMailUnsubcribeOK=O e-mail <b> %s </ b> está corretamente desinscrito da lista de discussão
    +ActivateCheckReadKey=Chave usada para criptografar a URL usada para o recurso "Recibo de leitura" e "Cancelar inscrição"
     EMailSentToNRecipients=E-mail enviado para %s destinatários.
    -EMailSentForNElements=EMail sent for %s elements.
    -XTargetsAdded=<b>%s</b> recipients added into target list
    -OnlyPDFattachmentSupported=If the PDF documents were already generated for the objects to send, they will be attached to email. If not, no email will be sent (also, note that only pdf documents are supported as attachment in mass sending in this version).
    -AllRecipientSelected=The recipients of the %s record selected (if their email is known).
    -GroupEmails=Group emails
    -OneEmailPerRecipient=One email per recipient (by default, one email per record selected)
    -WarningIfYouCheckOneRecipientPerEmail=Warning, if you check this box, it means only one email will be sent for several different record selected, so, if your message contains substitution variables that refers to data of a record, it becomes not possible to replace them.
    -ResultOfMailSending=Result of mass EMail sending
    -NbSelected=Nb selecionado
    -NbIgnored=Nb ignorado
    -NbSent=Nb enviado
    -SentXXXmessages=%s message(s) sent.
    -ConfirmUnvalidateEmailing=Are you sure you want to change email <b>%s</b> to draft status?
    -MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters
    -MailingModuleDescContactsByCompanyCategory=Contacts by third party category
    -MailingModuleDescContactsByCategory=Contacts by categories
    -MailingModuleDescContactsByFunction=Contacts by position
    -MailingModuleDescEmailsFromFile=Emails from file
    -MailingModuleDescEmailsFromUser=Emails input by user
    -MailingModuleDescDolibarrUsers=Users with Emails
    -MailingModuleDescThirdPartiesByCategories=Third parties (by categories)
    -SendingFromWebInterfaceIsNotAllowed=Sending from web interface is not allowed.
    +EMailSentForNElements=EMail enviado para elementos %s.
    +XTargetsAdded=<b> %s </ b> destinatários adicionados à lista de segmentação
    +OnlyPDFattachmentSupported=Se os documentos PDF já foram gerados para os objetos enviarem, eles serão anexados ao email. Caso contrário, nenhum email será enviado (note também que apenas documentos PDF são suportados como anexos no envio em massa nesta versão).
    +AllRecipientSelected=Os destinatários do registro %s selecionado (se o e-mail for conhecido).
    +GroupEmails=E-mails do grupo
    +OneEmailPerRecipient=Um email por destinatário (por padrão, um email por registro selecionado)
    +WarningIfYouCheckOneRecipientPerEmail=Atenção, se você marcar esta caixa, significa que apenas um e-mail será enviado para vários registros diferentes selecionados, portanto, se sua mensagem contiver variáveis ​​de substituição referentes a dados de um registro, não será possível substituí-las.
    +ResultOfMailSending=Resultado do envio de email em massa
    +NbSelected=Não selecionado
    +NbIgnored=Não ignorado
    +NbSent=Não enviado
    +SentXXXmessages=%s mensagem (s) enviada (s).
    +ConfirmUnvalidateEmailing=Tem certeza de que deseja alterar o e-mail <b> %s </ b> para o status do rascunho?
    +MailingModuleDescContactsWithThirdpartyFilter=Contato com filtros de clientes
    +MailingModuleDescContactsByCompanyCategory=Contatos por categoria de terceiros
    +MailingModuleDescContactsByCategory=Contatos por categorias
    +MailingModuleDescContactsByFunction=Contatos por posição
    +MailingModuleDescEmailsFromFile=E-mails do arquivo
    +MailingModuleDescEmailsFromUser=Entrada de e-mails pelo usuário
    +MailingModuleDescDolibarrUsers=Usuários com e-mails
    +MailingModuleDescThirdPartiesByCategories=Terceiros (por categorias)
    +SendingFromWebInterfaceIsNotAllowed=Envio de interface web não é permitido.
     
     # Libelle des modules de liste de destinataires mailing
     LineInFile=Linha %s em Ficheiro
     RecipientSelectionModules=Módulos de selecção dos destinatarios
     MailSelectedRecipients=Destinatarios seleccionados
     MailingArea=Área mailings
    -LastMailings=Latest %s emailings
    +LastMailings=Últimos e-mails %s
     TargetsStatistics=Estatísticas destinatarios
     NbOfCompaniesContacts=Contactos únicos de empresas
     MailNoChangePossible=Destinatarios de um mailing validado não modificaveis
     SearchAMailing=Procurar um mailing
     SendMailing=Enviar mailing
     SentBy=Enviado por
    -MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients:
    -MailingNeedCommand2=Pode enviar em linha adicionando o parâmetro MAILING_LIMIT_SENDBYWEB com um valor número que indica o máximo nº de e-mails enviados por Sessão.
    -ConfirmSendingEmailing=If you want to send emailing directly from this screen, please confirm you are sure you want to send emailing now from your browser ?
    -LimitSendingEmailing=Note: Sending of emailings from web interface is done in several times for security and timeout reasons, <b>%s</b> recipients at a time for each sending session.
    +MailingNeedCommand=O envio de um email pode ser executado a partir da linha de comando. Peça ao administrador do servidor para iniciar o seguinte comando para enviar o email para todos os destinatários:
    +MailingNeedCommand2=Contudo, pode enviá-los on-line adicionando o parâmetro MAILING_LIMIT_SENDBYWEB com o valor de número máximo de e-mails que pretende enviar por sessão. Para isto, vá para Início->Configuração->Outros.
    +ConfirmSendingEmailing=Se você quiser enviar e-mails diretamente desta tela, confirme se deseja enviar e-mails a partir do seu navegador?
    +LimitSendingEmailing=Nota: O envio de e-mails da interface da web é feito várias vezes por motivos de segurança e tempo de espera, <b> %s </ b> destinatários por vez para cada sessão de envio.
     TargetsReset=Limpar lista
     ToClearAllRecipientsClickHere=Para limpar a lista dos destinatarios deste mailing, faça click ao botão
     ToAddRecipientsChooseHere=Para Adicionar destinatarios, escoja os que figuran em listas a continuação
     NbOfEMailingsReceived=Mailings em masa recibidos
    -NbOfEMailingsSend=Mass emailings sent
    +NbOfEMailingsSend=Envios em massa enviados
     IdRecord=ID registo
     DeliveryReceipt=Recibo de entrega
     YouCanUseCommaSeparatorForSeveralRecipients=Pode usar o carácter de separação <b>coma </b> para especificar multiplos destinatarios.
    -TagCheckMail=Track mail opening
    +TagCheckMail=Acompanhar a abertura de correio
     TagUnsubscribe=Endereço de cancelamento de subscrição
    -TagSignature=Signature of sending user
    +TagSignature=Assinatura do usuário de envio
     EMailRecipient=E-mail do destinatário
    -TagMailtoEmail=Recipient EMail (including html "mailto:" link)
    -NoEmailSentBadSenderOrRecipientEmail=No email sent. Bad sender or recipient email. Verify user profile.
    +TagMailtoEmail=E-mail de destinatário (incluindo o link "mailto:" html)
    +NoEmailSentBadSenderOrRecipientEmail=Nenhum email enviado. Remetente incorreto ou email do destinatário. Verifique o perfil do usuário.
     # Module Notifications
     Notifications=Notificações
     NoNotificationsWillBeSent=Nenhuma notificação por e-mail está prevista para este evento e empresa
     ANotificationsWillBeSent=1 notificação vai a ser enviada por e-mail
     SomeNotificationsWillBeSent=%s Notificações vão ser enviadas por e-mail
    -AddNewNotification=Activate a new email notification target/event
    -ListOfActiveNotifications=List all active targets/events for email notification
    +AddNewNotification=Ativar um novo alvo/evento de notificação por e-mail
    +ListOfActiveNotifications=Listar todos os destinos / eventos ativos para notificação por email
     ListOfNotificationsDone=Lista de todas as notificações de e-mail enviado
    -MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing.
    -MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter <strong>'%s'</strong> to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature.
    -MailSendSetupIs3=If you have any questions on how to setup your SMTP server, you can ask to %s.
    -YouCanAlsoUseSupervisorKeyword=You can also add the keyword <strong>__SUPERVISOREMAIL__</strong> to have email being sent to the supervisor of user (works only if an email is defined for this supervisor)
    -NbOfTargetedContacts=Current number of targeted contact emails
    -UseFormatFileEmailToTarget=Imported file must have format <strong>email;name;firstname;other</strong>
    -UseFormatInputEmailToTarget=Enter a string with format <strong>email;name;firstname;other</strong>
    +MailSendSetupIs=A configuração do envio de email foi configurada para '%s'. Este modo não pode ser usado para enviar e-mails em massa.
    +MailSendSetupIs2=Você deve primeiro ir, com uma conta admin, no menu %sHome - Setup - EMails%s para alterar o parâmetro <strong> '%s' </ strong> para usar o modo '%s'. Com esse modo, você pode inserir a configuração do servidor SMTP fornecido pelo seu provedor de serviços de Internet e usar o recurso de envio de email em massa.
    +MailSendSetupIs3=Se você tiver alguma dúvida sobre como configurar seu servidor SMTP, você pode perguntar para %s.
    +YouCanAlsoUseSupervisorKeyword=Você também pode adicionar a palavra-chave <strong> __ SUPERVISOREMAIL __ </ strong> para que o email seja enviado ao supervisor do usuário (funciona somente se um email for definido para esse supervisor)
    +NbOfTargetedContacts=Número atual de e-mails de contato segmentados
    +UseFormatFileEmailToTarget=O arquivo importado deve ter formato <strong> email; nome; nome; outro </ strong>
    +UseFormatInputEmailToTarget=Insira uma string com o formato <strong> email; nome; nome; outro </ strong>
     MailAdvTargetRecipients=Destinatários (seleção avançada)
    -AdvTgtTitle=Fill input fields to preselect the third parties or contacts/addresses to target
    -AdvTgtSearchTextHelp=Use %% as magic caracters. For exemple to find all item like <b>jean, joe, jim</b>, you can input <b>j%%</b>, you can also use ; as separator for value, and use ! for except this value. For exemple  <b>jean;joe;jim%%;!jimo;!jima%</b> will target all jean, joe, start with jim but not jimo and not everythnig taht start by jima
    -AdvTgtSearchIntHelp=Use interval to select int or float value
    +AdvTgtTitle=Preencha os campos de entrada para pré-selecionar os terceiros ou contatos / endereços para segmentar
    +AdvTgtSearchTextHelp=Use %% como curingas. Por exemplo, para encontrar todos os itens como <b> jean, joe, jim </ b>, você pode inserir <b> j%% </ b>, você também pode usar; como separador por valor e use! por exceto este valor. Por exemplo, <b> jean; joe; jim%%;! Jimo;! Jima% </ b> terá como alvo todo o jean, joe, comece com jim mas não jimo e nem tudo que começar com jima
    +AdvTgtSearchIntHelp=Use interval para selecionar int ou valor float
     AdvTgtMinVal=Valor mínimo
     AdvTgtMaxVal=Valor máximo
     AdvTgtSearchDtHelp=Utilizar intervalo para seleciona o valor da data
    -AdvTgtStartDt=Start dt.
    -AdvTgtEndDt=End dt.
    -AdvTgtTypeOfIncudeHelp=Target Email of third party and email of contact of the third party, or just third party email or just contact email
    -AdvTgtTypeOfIncude=Type of targeted email
    -AdvTgtContactHelp=Use only if you target contact into "Type of targeted email"
    +AdvTgtStartDt=Comece com dt.
    +AdvTgtEndDt=Fim dt.
    +AdvTgtTypeOfIncudeHelp=E-mail de destino de terceiros e e-mail de contato do terceiro, ou apenas e-mail de terceiros ou apenas entre em contato com o e-mail
    +AdvTgtTypeOfIncude=Tipo de email segmentado
    +AdvTgtContactHelp=Use somente se você segmentar o contato para "Tipo de e-mail segmentado"
     AddAll=Adicionar tudo
     RemoveAll=Remover tudo
    -ItemsCount=Item(s)
    -AdvTgtNameTemplate=Filter name
    -AdvTgtAddContact=Add emails according to criterias
    +ItemsCount=Unid)
    +AdvTgtNameTemplate=Nome do filtro
    +AdvTgtAddContact=Adicione e-mails de acordo com os critérios
     AdvTgtLoadFilter=Carregar filtro
     AdvTgtDeleteFilter=Eliminar filtro
     AdvTgtSaveFilter=Guardar filtro
     AdvTgtCreateFilter=Criar filtro
     AdvTgtOrCreateNewFilter=Nome do novo filtro
    -NoContactWithCategoryFound=No contact/address with a category found
    -NoContactLinkedToThirdpartieWithCategoryFound=No contact/address with a category found
    -OutGoingEmailSetup=Outgoing email setup
    -InGoingEmailSetup=Incoming email setup
    -OutGoingEmailSetupForEmailing=Outgoing email setup (for mass emailing)
    -DefaultOutgoingEmailSetup=Default outgoing email setup
    +NoContactWithCategoryFound=Nenhum contato / endereço com uma categoria encontrada
    +NoContactLinkedToThirdpartieWithCategoryFound=Nenhum contato / endereço com uma categoria encontrada
    +OutGoingEmailSetup=Configuração de email de saída
    +InGoingEmailSetup=Configuração de email de entrada
    +OutGoingEmailSetupForEmailing=Configuração de email de saída (para envio em massa)
    +DefaultOutgoingEmailSetup=Configuração de email de saída padrão
     Information=Informação
    -ContactsWithThirdpartyFilter=Contacts avec filtre client
    +ContactsWithThirdpartyFilter=Contatos com filtro de terceiros
    diff --git a/htdocs/langs/pt_PT/main.lang b/htdocs/langs/pt_PT/main.lang
    index 5158a301118..817d4dffca1 100644
    --- a/htdocs/langs/pt_PT/main.lang
    +++ b/htdocs/langs/pt_PT/main.lang
    @@ -49,22 +49,22 @@ ErrorGoToModuleSetup=Ir á configuração do módulo para corrigir
     ErrorFailedToSendMail=Erro ao envio do e-mail (emissor=%s, destinatário=%s)
     ErrorFileNotUploaded=Não foi possivel transferir o ficheiro
     ErrorInternalErrorDetected=Erro detectado
    -ErrorWrongHostParameter=Parâmetro Servidor inválido
    -ErrorYourCountryIsNotDefined=O seu país não está definido. Corrija em Configuração-Geral-Editar
    -ErrorRecordIsUsedByChild=Não foi possível eliminar este registo. Esta ser utilizado como pai pelo menos num registo filho.
    +ErrorWrongHostParameter=Parâmetro do hospedeiro inválido
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Valor incorrecto
     ErrorWrongValueForParameterX=Valor incorrecto do parâmetro %s
     ErrorNoRequestInError=Nenhuma petição em erro
    -ErrorServiceUnavailableTryLater=Serviço não disponivel actualmente. Volte a execução mais tarde.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicado num campo único
    -ErrorSomeErrorWereFoundRollbackIsDone=Encontraram-se alguns erros. Modificações desfeitas.
    -ErrorConfigParameterNotDefined=O parâmetro <b>%s</b> não está definido ao fichero de configuração Dolibarr <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Impossivel encontrar o utilizador <b>%s</b> na base de dados do Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Erro, nenhum tipo de IVA definido para o país '%s'.
     ErrorNoSocialContributionForSellerCountry=Erro, nenhum tipo de contribuição social definida para o país %s.
     ErrorFailedToSaveFile=Erro, o registo do ficheiro falhou.
    -ErrorCannotAddThisParentWarehouse=Está a tentar adicionar um armazém pai que já é filho do armazém atual
    -MaxNbOfRecordPerPage=Número máximo de registos por página
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Não tem permissão para efetuar essa operação
     SetDate=Definir data
     SelectDate=Seleccionar uma data
    @@ -78,10 +78,10 @@ FileRenamed=O ficheiro foi renomeado com sucesso
     FileGenerated=O ficheiro foi gerado com sucesso
     FileSaved=O ficheiro foi guardado com sucesso
     FileUploaded=O ficheiro foi enviado com sucesso
    -FileTransferComplete=Ficheiros foram carregados com sucesso
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=Ficheiros eliminados com sucesso
     FileWasNotUploaded=Um ficheiro foi seleccionada para ser anexado, mas ainda não foi carregado. Clique em 'Adicionar este Ficheiro' para anexar.
    -NbOfEntries=Nº de entradas
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Consultar ajuda online (necessita de acesso à Internet)
     GoToHelpPage=Ir para páginas de ajuda
     RecordSaved=Registo Guardado
    @@ -94,7 +94,7 @@ Undefined=Não Definido
     PasswordForgotten=Esqueceu-se da sua palavra-passe?
     NoAccount=Não possui conta?
     SeeAbove=Ver acima
    -HomeArea=Área Principal
    +HomeArea=Início
     LastConnexion=Ultima conexão
     PreviousConnexion=Conexão anterior
     PreviousValue=Valor anterior
    @@ -124,7 +124,7 @@ Yes=Sim
     no=Não
     No=Não
     All=Tudo
    -Home=Inicio
    +Home=Início
     Help=Ajuda
     OnlineHelp=Ajuda On-line
     PageWiki=Página Wiki
    @@ -142,6 +142,7 @@ Closed=Fechado
     Closed2=Fechado
     NotClosed=Não fechado
     Enabled=Activado
    +Enable=Ativar
     Deprecated=Obsoleto
     Disable=Desactivar
     Disabled=Desactivado
    @@ -153,7 +154,7 @@ Update=Atualizar
     Close=Fechar
     CloseBox=Remover widget do painel
     Confirm=Confirmar
    -ConfirmSendCardByMail=Deseja enviar o conteúdo desta ficha por email para <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Eliminar
     Remove=Remover
     Resiliate=Cancelar
    @@ -327,7 +328,7 @@ Copy=Copiar
     Paste=Colar
     Default=Predefinição
     DefaultValue=Valor Predefinido
    -DefaultValues=Valores predefinidos
    +DefaultValues=Default values/filters/sorting
     Price=Preço
     PriceCurrency=Preço (moeda)
     UnitPrice=Preço Unitário
    @@ -347,7 +348,7 @@ AmountTTCShort=Montante (IVA inc.)
     AmountHT=Montante (sem IVA)
     AmountTTC=Montante (IVA inc.)
     AmountVAT=Montante do IVA
    -MulticurrencyAlreadyPaid=Montante pago, moeda original
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Montante por pagar, moeda original
     MulticurrencyPaymentAmount=Montante do pagamento, moeda original
     MulticurrencyAmountHT=Montante (sem IVA), moeda original
    @@ -428,7 +429,7 @@ ActionNotApplicable=Não aplicável
     ActionRunningNotStarted=Não Iniciado
     ActionRunningShort=Em progresso
     ActionDoneShort=Terminado
    -ActionUncomplete=Incompleta
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Os últimos %s eventos relacionados
     CompanyFoundation=Empresa/Organização
     Accountant=Contabilista
    @@ -436,6 +437,7 @@ ContactsForCompany=Contactos para este terceiro
     ContactsAddressesForCompany=Contactos/moradas para este terceiro
     AddressesForCompany=Moradas para este terceiro
     ActionsOnCompany=Eventos sobre este terceiro
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Eventos sobre este membro
     ActionsOnProduct=Eventos sobre este produto
     NActionsLate=%s em atraso
    @@ -453,8 +455,8 @@ Generate=Gerar
     Duration=Duração
     TotalDuration=Duração total
     Summary=Resumo
    -DolibarrStateBoard=Estatísticas da base-de-dados
    -DolibarrWorkBoard=Abrir painel de itens
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=Nenhum elemento aberto para processar
     Available=Disponível
     NotYetAvailable=Ainda não disponivel
    @@ -468,7 +470,7 @@ and=e
     or=ou
     Other=Outro
     Others=Outros
    -OtherInformations=Outras Informações
    +OtherInformations=Other information
     Quantity=quantidade
     Qty=Quant.
     ChangedBy=Modificado por
    @@ -506,7 +508,7 @@ None=Nenhum
     NoneF=Nenhuma
     NoneOrSeveral=Nenhum ou vários
     Late=Atraso
    -LateDesc=O tempo de atraso predefinido que define se um determinado registo está atrasado ou não depende da configuração do sistema. Peça ao seu administrador do sistema para alterar o tempo de atraso predefinido.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Foto
     Photos=Fotos
    @@ -530,18 +532,6 @@ September=Setembro
     October=Outubro
     November=Novembro
     December=Dezembro
    -JanuaryMin=Janeiro
    -FebruaryMin=Fevereiro
    -MarchMin=Mar
    -AprilMin=Abril
    -MayMin=Maio
    -JuneMin=Junho
    -JulyMin=Julho
    -AugustMin=Agosto
    -SeptemberMin=Setembro
    -OctoberMin=Outubro
    -NovemberMin=Novembro
    -DecemberMin=Dezembro
     Month01=Janeiro
     Month02=Fevereiro
     Month03=Março
    @@ -646,6 +636,8 @@ SendMail=Enviar e-mail
     EMail=E-mail
     NoEMail=Sem e-mail
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Não lido
     NoMobilePhone=Sem telefone móvel
     Owner=Proprietário
     FollowingConstantsWillBeSubstituted=As seguintes constantes serão substituidas pelo seu valor correspondente.
    @@ -677,7 +669,7 @@ NeverReceived=Nunca Recebido
     Canceled=Cancelado
     YouCanChangeValuesForThisListFromDictionarySetup=Pode alterar estes valores para esta lista a partir do menu Configuração -> Dicionários
     YouCanChangeValuesForThisListFrom=Pode alterar os valores desta lista a partir do menu %s
    -YouCanSetDefaultValueInModuleSetup=Você pode predefinir o valou a usar na criação de um novo registo na configuração de módulos.
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Cor
     Documents=Documentos
     Documents2=Documentos
    @@ -687,9 +679,9 @@ MenuECM=Documentos
     MenuAWStats=Estatisticas
     MenuMembers=Membros
     MenuAgendaGoogle=Agenda Google
    -ThisLimitIsDefinedInSetup=Límite Dolibarr (menu inicio-configuração-segurança): %s Kb, PHP limit: %s Kb
    +ThisLimitIsDefinedInSetup=Límite Dolibarr (Menu inicio->configuração->segurança): %s Kb, PHP limit: %s Kb
     NoFileFound=Não existem documentos guardados nesta pasta
    -CurrentUserLanguage=Idioma Actual
    +CurrentUserLanguage=Idioma atual
     CurrentTheme=Tema Actual
     CurrentMenuManager=Gestor de menu atual
     Browser=Browser
    @@ -716,15 +708,15 @@ Merge=Junção
     DocumentModelStandardPDF=Modelo PDF padrão
     PrintContentArea=Visualizar página para impressão área de conteúdo principal
     MenuManager=Gestão do menu
    -WarningYouAreInMaintenanceMode=Atenção, você está em um modo de manutenção, tão somente <b>%s</b> login é permitido o uso de aplicativos no momento.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Erro de sistema
     CoreErrorMessage=Ocorreu um erro. Contacte o seu administrador do sistema de forma a que este proceda à análise do relatórios ou desative a opção $dolibarr_main_prod=1 para obter mais informação.
     CreditCard=Cartão de crédito
     ValidatePayment=Validar pagamento
     CreditOrDebitCard=Cartão de crédito ou débito
     FieldsWithAreMandatory=Os campos com <b>%s</b> são obrigatórios
    -FieldsWithIsForPublic=Os campos com <b>%s</b> são mostrados na lista pública dos membros. Se você não quer isso, verificar o &quot;caixa&quot; do público.
    -AccordingToGeoIPDatabase=(De acordo com GeoIP conversão)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Linha
     NotSupported=Não é suportado
     RequiredField=Campo obrigatório
    @@ -732,6 +724,8 @@ Result=Resultado
     ToTest=Teste
     ValidateBefore=O cartão deve ser validado antes de usar esta funcionalidade
     Visibility=Visibilidade
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privado
     Hidden=Oculto
     Resources=Recursos
    @@ -750,6 +744,7 @@ LinkTo=Associar a
     LinkToProposal=Associar ao orçamento
     LinkToOrder=Hiperligação para encomendar
     LinkToInvoice=Associar a fatura
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Associar a encomenda ao fornecedor
     LinkToSupplierProposal=Associar ao orçamento de fornecedor
     LinkToSupplierInvoice=Associar a fatura do fornecedor
    @@ -758,6 +753,7 @@ LinkToIntervention=Associar a intervenção
     CreateDraft=Criar Rascunho
     SetToDraft=Voltar para o rascunho
     ClickToEdit=Clique para editar
    +ClickToRefresh=Click to refresh
     EditWithEditor=Editar com CKEditor
     EditWithTextEditor=Editar com editor de texto
     EditHTMLSource=Editar código-fonte HTML
    @@ -772,14 +768,14 @@ ByDay=Por dia
     BySalesRepresentative=Por representante de vendas
     LinkedToSpecificUsers=Associado ao contacto de um utilizador
     NoResults=Sem resultados
    -AdminTools=Ferramentas de administrador
    +AdminTools=Admin Tools
     SystemTools=Ferramentas do sistema
     ModulesSystemTools=Módulos de ferramentas
     Test=Teste
     Element=Elemento
     NoPhotoYet=Sem imagem disponível ainda
     Dashboard=Painel
    -MyDashboard=O meu painel
    +MyDashboard=My Dashboard
     Deductible=Dedutível
     from=Emissor
     toward=relativamente a
    @@ -802,7 +798,7 @@ PrintFile=Imprimir Ficheiro %s
     ShowTransaction=Mostrar transação
     ShowIntervention=Mostrar intervenção
     ShowContract=Mostrar contrato
    -GoIntoSetupToChangeLogo=Vá Início - Configurar - Empresa para alterar o logótipo ou vá a Início - Configurar - Exibir para ocultar.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Negar
     Denied=Negada
     ListOf=Lista de %s
    @@ -818,12 +814,12 @@ Sincerely=Atenciosamente
     DeleteLine=Apagar a linha
     ConfirmDeleteLine=Tem a certeza que deseja eliminar esta linha?
     NoPDFAvailableForDocGenAmongChecked=Não existia documento PDF disponível para a geração de documentos entre os registos assinalados
    -TooManyRecordForMassAction=Foram selecionados demasiados registos para a ação em massa. Esta ação está restringida a um número máximo de %s registos.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=Nenhum registo selecionado
     MassFilesArea=Área para os ficheiros criados através de ações em massa
     ShowTempMassFilesArea=Mostrar área para os ficheiros criados através de ações em massa
    -ConfirmMassDeletion=Confirmação de eliminação em massa
    -ConfirmMassDeletionQuestion=Tem certeza de que deseja eliminar o registo %s selecionado ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Objetos relacionados
     ClassifyBilled=Classificar como faturado
     ClassifyUnbilled=Classificar como não faturado
    @@ -841,7 +837,7 @@ Calendar=Calendario
     GroupBy=Agrupar por...
     ViewFlatList=Vista de lista
     RemoveString=Remover texto '%s'
    -SomeTranslationAreUncomplete=Algumas línguas podem estar apenas parcialmente traduzidas ou podem conter erros. Se detetar erros de tradução, pode ajudar na melhoria da tradução registando-se em <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Link de download direto (público/externo)
     DirectDownloadInternalLink=Link de download direto (precisa de ter sessão iniciada e precisa de permissões)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Construtor de módulos
     SetMultiCurrencyCode=Definir moeda
     BulkActions=Ações em massa
     ClickToShowHelp=Clique para mostrar o balão de ajuda
    -WebSite=Site da Web
    -WebSites=Websites
    -WebSiteAccounts=Contas do website
    +WebSite=Website
    +WebSites=Sites da Web
    +WebSiteAccounts=Website accounts
     ExpenseReport=Relatório de despesas
     ExpenseReports=Relatórios de despesas
     HR=RH
     HRAndBank=RH e Banco
     AutomaticallyCalculated=Calculado automaticamente
     TitleSetToDraft=Repôr para rascunho
    -ConfirmSetToDraft=Tem a certeza que pretende repôr para o estado de Rascunho?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=ID de importação
     Events=Eventos
    -EMailTemplates=Modelos de emails
    -FileNotShared=Ficheiro não partilhado
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Projeto
     Projects=Projetos
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissões
     LineNb=Linha número
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Segunda-feira
     Tuesday=Terça-feira
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Intervenções
     SearchIntoContracts=contractos
     SearchIntoCustomerShipments=Expedições do cliente
     SearchIntoExpenseReports=Relatórios de despesas
    -SearchIntoLeaves=Licenças
    +SearchIntoLeaves=Sair
     CommentLink=Comentários
     NbComments=Número de comentários
     CommentPage=Espaço de comentários
     CommentAdded=Comentário adicionado
     CommentDeleted=Comentário eliminado
     Everybody=Todos
    -PayedBy=Pago por
    -PayedTo=Pago a
    +PayedBy=Paga por
    +PayedTo=Paid to
     Monthly=Mensal
     Quarterly=Trimestral
     Annual=Anual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local e Remoto
     KeyboardShortcut=Atalho de teclado
     AssignedTo=Atribuído a
     Deletedraft=Eliminar rascunho
    -ConfirmMassDraftDeletion=Confirmação da eliminação de rascunhos em massa
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=Ficheiro partilhado via link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=Você está atualmente no modo %s "sandbox"
    +Inventory=Inventário
    diff --git a/htdocs/langs/pt_PT/margins.lang b/htdocs/langs/pt_PT/margins.lang
    index a5b2391c681..78c13ebbe04 100644
    --- a/htdocs/langs/pt_PT/margins.lang
    +++ b/htdocs/langs/pt_PT/margins.lang
    @@ -6,12 +6,12 @@ TotalMargin=Margem total
     MarginOnProducts=Margem / Produtos
     MarginOnServices=Margem / Serviços
     MarginRate=Taxa de margem
    -MarkRate=Mark rate
    -DisplayMarginRates=Display margin rates
    -DisplayMarkRates=Display mark rates
    +MarkRate=Taxa de marca
    +DisplayMarginRates=Exibir taxas de margem
    +DisplayMarkRates=Exibir taxas de marca
     InputPrice=Inserir preço
    -margin=Profit margins management
    -margesSetup=Profit margins management setup
    +margin=Gestão de margens de lucro
    +margesSetup=Configuração de gerenciamento de margens de lucro
     MarginDetails=Detalhes da margem
     ProductMargins=Margens do produto
     CustomerMargins=Margens do cliente
    @@ -20,25 +20,25 @@ UserMargins=Margens do utilizador
     ProductService=Produto ou Serviço
     AllProducts=Todos os produtos e serviços
     ChooseProduct/Service=Escolher produto ou serviço
    -ForceBuyingPriceIfNull=Force buying/cost price to selling price if not defined
    -ForceBuyingPriceIfNullDetails=If buying/cost price not defined, and this option "ON", margin will be zero on line (buying/cost price = selling price), otherwise ("OFF"), marge will be equal to suggested default.
    +ForceBuyingPriceIfNull=Forçar compra / preço de custo ao preço de venda, se não definido
    +ForceBuyingPriceIfNullDetails=Se compra / preço de custo não definido, e esta opção "ON", a margem será zero on line (compra / preço de custo = preço de venda), caso contrário ("OFF"), a margem será igual ao padrão sugerido.
     MARGIN_METHODE_FOR_DISCOUNT=Método de margem para descontos globais
     UseDiscountAsProduct=Como um produto
     UseDiscountAsService=Como um serviço
     UseDiscountOnTotal=No subtotal
     MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Define se um desconto global é tratado como um produto, um serviço, ou apenas no subtotal para cálculo de margem
    -MARGIN_TYPE=Buying/Cost price suggested by default for margin calculation
    -MargeType1=Margin on Best vendor price
    -MargeType2=Margin on Weighted Average Price (WAP)
    +MARGIN_TYPE=Preço de compra / custo sugerido por padrão para cálculo de margem
    +MargeType1=Margem no melhor preço do fornecedor
    +MargeType2=Margem no Preço Médio Ponderado (WAP)
     MargeType3=Margem no Preço de Custo
    -MarginTypeDesc=* Margin on best buying price = Selling price - Best vendor price defined on product card<br>* Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best supplier price if WAP not yet defined<br>* Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best supplier price if WAP not yet defined
    +MarginTypeDesc=* Margem sobre o melhor preço de compra = Preço de venda - Melhor preço de fornecedor definido no cartão do produto <br> * Margem no preço médio ponderado (WAP) = Preço de venda - Preço médio ponderado pelo produto (WAP) ou melhor preço do fornecedor se WAP ainda não definido br> * Margem no preço de custo = Preço de venda - Preço de custo definido no cartão do produto ou WAP se o preço de custo não estiver definido, ou melhor preço do fornecedor se o WAP ainda não estiver definido
     CostPrice=Preço de custo
     UnitCharges=Custos unitários
     Charges=Custos
     AgentContactType=Tipo de contacto usado para comissionamento
     AgentContactTypeDetails=Defina que tipo de contacto (associado em faturas) será usado no relatório de margens, por representante de vendas
    -rateMustBeNumeric=Rate must be a numeric value
    -markRateShouldBeLesserThan100=Mark rate should be lower than 100
    -ShowMarginInfos=Show margin infos
    -CheckMargins=Margins detail
    -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between third parties and sale representatives to calculate the margin of each sale representative. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative).
    +rateMustBeNumeric=A taxa deve ser um valor numérico
    +markRateShouldBeLesserThan100=A taxa de marca deve ser menor que 100
    +ShowMarginInfos=Mostrar informações da margem
    +CheckMargins=Detalhe de margens
    +MarginPerSaleRepresentativeWarning=O relatório de margem por usuário usa o link entre terceiros e representantes de vendas para calcular a margem de cada representante de vendas. Como alguns terceiros podem não ter qualquer representante de vendas dedicado e alguns terceiros podem estar vinculados a vários, alguns valores podem não ser incluídos neste relatório (se não houver representante de vendas) e alguns podem aparecer em linhas diferentes (para cada representante de vendas) .
    diff --git a/htdocs/langs/pt_PT/members.lang b/htdocs/langs/pt_PT/members.lang
    index f846103c137..508e869f72a 100644
    --- a/htdocs/langs/pt_PT/members.lang
    +++ b/htdocs/langs/pt_PT/members.lang
    @@ -56,10 +56,10 @@ PaymentSubscription=Nova contribuição pagamento
     SubscriptionEndDate=Data fim filiação
     MembersTypeSetup=configuração dos tipos de Membros
     MemberTypeModified=Tipo de membro modificado
    -DeleteAMemberType=Delete a member type
    -ConfirmDeleteMemberType=Are you sure you want to delete this member type?
    -MemberTypeDeleted=Member type deleted
    -MemberTypeCanNotBeDeleted=Member type can not be deleted
    +DeleteAMemberType=Excluir um tipo de membro
    +ConfirmDeleteMemberType=Tem certeza de que deseja excluir este tipo de membro?
    +MemberTypeDeleted=Tipo de membro excluído
    +MemberTypeCanNotBeDeleted=O tipo de membro não pode ser excluído
     NewSubscription=Nova filiação
     NewSubscriptionDesc=Este formulário permite-lhe gravar sua inscrição como um novo membro da fundação. Se você deseja renovar a sua assinatura (se já for membro), entre em contato com Conselho da Fundação vez por %s e-mail.
     Subscription=Filiação
    @@ -68,7 +68,7 @@ SubscriptionLate=Em atraso
     SubscriptionNotReceived=Filiação não recebida
     ListOfSubscriptions=Lista de Filicações
     SendCardByMail=Enviar ficha por email
    -AddMember=Create member
    +AddMember=Criar membro
     NoTypeDefinedGoToSetup=Nenhum tipo de membro definido. ir a configuração -> Tipos de Membros
     NewMemberType=Novo tipo de membro
     WelcomeEMail=E-mail
    @@ -79,21 +79,21 @@ Physical=Pessoa Singular
     Moral=Pessoa Coletiva
     MorPhy=Pessoa Singular/Pessoa Coletiva
     Reenable=Reactivar
    -ResiliateMember=Terminate a member
    -ConfirmResiliateMember=Are you sure you want to terminate this member?
    +ResiliateMember=Terminar um membro
    +ConfirmResiliateMember=Tem certeza de que deseja encerrar este membro?
     DeleteMember=Eliminar um membro
    -ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his subscriptions)?
    +ConfirmDeleteMember=Tem certeza de que deseja excluir este membro (Excluir um membro excluirá todas as inscrições dele)?
     DeleteSubscription=Eliminar uma filiação
    -ConfirmDeleteSubscription=Are you sure you want to delete this subscription?
    +ConfirmDeleteSubscription=Tem certeza de que deseja excluir esta assinatura?
     Filehtpasswd=Ficheiro htpasswd
     ValidateMember=Confirmar um membro
     ConfirmValidateMember=Tem a certeza que deseja validar este membro?
    -FollowingLinksArePublic=Os vínculos seguintes são páginas acessiveis a todos e não protegidas por Nenhuma habilitação Dolibarr.
    +FollowingLinksArePublic=Os links a seguir são páginas abertas não protegidas por nenhuma permissão do Dolibarr. Eles não são páginas formatadas, fornecidas como exemplo para mostrar como listar banco de dados de membros.
     PublicMemberList=Lista pública de Membros
    -BlankSubscriptionForm=Public self-subscription form
    -BlankSubscriptionFormDesc=Dolibarr can provide you a public URL/website to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form may also be automatically provided.
    -EnablePublicSubscriptionForm=Enable the public website with self-subscription form
    -ForceMemberType=Force the member type
    +BlankSubscriptionForm=Formulário de inscrição própria pública
    +BlankSubscriptionFormDesc=O Dolibarr pode fornecer a você um URL / site público para permitir que visitantes externos peçam para assinar a fundação. Se um módulo de pagamento on-line estiver ativado, um formulário de pagamento também poderá ser fornecido automaticamente.
    +EnablePublicSubscriptionForm=Ativar o site público com formulário de inscrição própria
    +ForceMemberType=Forçar o tipo de membro
     ExportDataset_member_1=Membros e Filicações
     ImportDataset_member_1=Membros
     LastMembersModified=Últimos %smembros modificados
    @@ -103,36 +103,36 @@ Text=Texto largo
     Int=Numérico
     DateAndTime=data e hora
     PublicMemberCard=Ficha pública do membro
    -SubscriptionNotRecorded=Subscription not recorded
    -AddSubscription=Create subscription
    +SubscriptionNotRecorded=Assinatura não registrada
    +AddSubscription=Criar assinatura
     ShowSubscription=Mostrar filiação
     # Label of email templates
    -SendingAnEMailToMember=Sending information email to member
    -SendingEmailOnAutoSubscription=Sending email on auto registration
    -SendingEmailOnMemberValidation=Sending email on new member validation
    -SendingEmailOnNewSubscription=Sending email on new subscription
    -SendingReminderForExpiredSubscription=Sending reminder for expired subscriptions
    -SendingEmailOnCancelation=Sending email on cancelation
    +SendingAnEMailToMember=Envio de email informativo para o membro
    +SendingEmailOnAutoSubscription=Envio de email no registro automático
    +SendingEmailOnMemberValidation=Enviando email na validação de novo membro
    +SendingEmailOnNewSubscription=Enviando email na nova assinatura
    +SendingReminderForExpiredSubscription=Enviando lembrete para inscrições expiradas
    +SendingEmailOnCancelation=Envio de email no cancelamento
     # Topic of email templates
    -YourMembershipRequestWasReceived=Your membership was received.
    -YourMembershipWasValidated=Your membership was validated
    -YourSubscriptionWasRecorded=Your new subscription was recorded
    -SubscriptionReminderEmail=Subscription reminder
    -YourMembershipWasCanceled=Your membership was canceled
    +YourMembershipRequestWasReceived=Sua associação foi recebida.
    +YourMembershipWasValidated=Sua associação foi validada
    +YourSubscriptionWasRecorded=Sua nova assinatura foi registrada
    +SubscriptionReminderEmail=Lembrete de assinatura
    +YourMembershipWasCanceled=Sua associação foi cancelada
     CardContent=Conteúdo do seu cartão de membro
     # Text of email templates
    -ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.<br><br>
    -ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:<br><br>
    -ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.<br><br>
    -ThisIsContentOfSubscriptionReminderEmail=We want to let you know thet your subscription is about to expire. We hope you can make a renewal of it.<br><br>
    -ThisIsContentOfYourCard=This is a remind of the information we get about you. Feel free to contact us if something looks wrong.<br><br>
    +ThisIsContentOfYourMembershipRequestWasReceived=Queremos que você saiba que sua solicitação de adesão foi recebida. <br> <br>
    +ThisIsContentOfYourMembershipWasValidated=Queremos informar que sua associação foi validada com as seguintes informações: <br> <br>
    +ThisIsContentOfYourSubscriptionWasRecorded=Queremos informar que sua nova assinatura foi registrada. <br> <br>
    +ThisIsContentOfSubscriptionReminderEmail=Gostaríamos de informar que sua assinatura está prestes a expirar ou já expirou (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). Esperamos que você possa renová-lo. <br> <br>
    +ThisIsContentOfYourCard=Este é um lembrete das informações que recebemos sobre você. Sinta-se à vontade para nos contatar se algo parecer errado. <br> <br>
     DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Assunto do e-mail recebido em caso de auto-inscrição de um convidado
     DescADHERENT_AUTOREGISTER_NOTIF_MAIL=E-mail recebido em caso de auto-inscrição de um convidado
    -DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=Template Email to use to send email to a member on member autosubscription
    -DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Template EMail to use to send email to a member on member validation
    -DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Template Email to use to send email to a member on new subscription recording
    -DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=Template Email to use to send email remind when subscription is about to expire
    -DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Template Email to use to send email to a member on member cancelation
    +DescADHERENT_EMAIL_TEMPLATE_AUTOREGISTER=E-mail de modelo a ser usado para enviar e-mail para um membro da autosubscrição de membro
    +DescADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION=Modelo EMail para usar para enviar email para um membro na validação de membro
    +DescADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION=Modelo de e-mail para usar para enviar e-mail para um membro em nova gravação de assinatura
    +DescADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION=O modelo de e-mail a ser usado para enviar e-mails é lembrado quando a assinatura está prestes a expirar
    +DescADHERENT_EMAIL_TEMPLATE_CANCELATION=Modelo de e-mail para usar para enviar e-mail para um membro no cancelamento de membro
     DescADHERENT_MAIL_FROM=E-mail emissor para os e-mails automáticos
     DescADHERENT_ETIQUETTE_TYPE=Formato etiquetas
     DescADHERENT_ETIQUETTE_TEXT=Texto impresso na folhas de endereços dos membros
    @@ -147,8 +147,8 @@ NoThirdPartyAssociatedToMember=nenhum Terceiro asociado a este membro
     MembersAndSubscriptions= Deputados e Subscriptions
     MoreActions=Complementares de acção sobre a gravação
     MoreActionsOnSubscription=Ação complementar, sugerido por defeito durante a gravação de uma assinatura
    -MoreActionBankDirect=Create a direct entry on bank account
    -MoreActionBankViaInvoice=Create an invoice, and a payment on bank account
    +MoreActionBankDirect=Criar uma entrada direta na conta bancária
    +MoreActionBankViaInvoice=Crie uma fatura e um pagamento na conta bancária
     MoreActionInvoiceOnly=Criar uma fatura sem pagamento
     LinkToGeneratedPages=Gerar cartões de visita
     LinkToGeneratedPagesDesc=Esta tela permite gerar arquivos PDF com os cartões de negócio para todos os seus membros ou de um membro particular.
    @@ -169,7 +169,7 @@ MembersByStateDesc=Esta tela mostrar-lhe as estatísticas sobre os membros por e
     MembersByTownDesc=Esta tela mostrará estatísticas sobre membros por localidade.
     MembersStatisticsDesc=Escolha as estatísticas que você deseja ler ...
     MenuMembersStats=Estatística
    -LastMemberDate=Latest member date
    +LastMemberDate=Última data do membro
     LatestSubscriptionDate=Data da última subscrição
     Nature=Natureza
     Public=As informações são públicas
    @@ -182,17 +182,16 @@ TurnoverOrBudget=Volume de negócios (para uma empresa) ou do Orçamento (para u
     DefaultAmount=Quantidade padrão de assinatura
     CanEditAmount=Visitante pode escolher / editar montante da sua subscrição
     MEMBER_NEWFORM_PAYONLINE=Ir a página de pagamento online integrado
    -ByProperties=By nature
    -MembersStatisticsByProperties=Members statistics by nature
    -MembersByNature=This screen show you statistics on members by nature.
    -MembersByRegion=This screen show you statistics on members by region.
    +ByProperties=Por natureza
    +MembersStatisticsByProperties=Estatísticas dos membros por natureza
    +MembersByNature=Esta tela mostra estatísticas sobre membros por natureza.
    +MembersByRegion=Esta tela mostra estatísticas sobre membros por região.
     VATToUseForSubscriptions=Taxa de IVA a utilizar para assinaturas
     NoVatOnSubscription=Sem TVA para assinaturas
    -MEMBER_PAYONLINE_SENDEMAIL=Email to use for email warning when Dolibarr receive a confirmation of a validated payment for a subscription (Example: paymentdone@example.com)
    -ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for subscription line into invoice: %s
    -NameOrCompany=Name or company
    -SubscriptionRecorded=Subscription recorded
    -NoEmailSentToMember=No email sent to member
    -EmailSentToMember=Email sent to member at %s
    -SendReminderForExpiredSubscriptionTitle=Send reminder by email for expired subscription
    -SendReminderForExpiredSubscription=Send reminder by email to members when subscription is about to expire (parameter is number of days before end of subscription to send the remind)
    +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Produto utilizado para assinatura na fatura: %s
    +NameOrCompany=Nome ou empresa
    +SubscriptionRecorded=Assinatura registrada
    +NoEmailSentToMember=Nenhum email enviado para o membro
    +EmailSentToMember=E-mail enviado para o membro em %s
    +SendReminderForExpiredSubscriptionTitle=Enviar lembrete por email para assinatura expirada
    +SendReminderForExpiredSubscription=Enviar lembrete por e-mail aos membros quando a assinatura estiver prestes a expirar (o parâmetro é o número de dias antes do final da assinatura para enviar o lembrete. Pode ser uma lista de dias separados por ponto e vírgula, por exemplo, '10; 5; 0; -5 ')
    diff --git a/htdocs/langs/pt_PT/modulebuilder.lang b/htdocs/langs/pt_PT/modulebuilder.lang
    index 990426d59eb..7af2dcbba1d 100644
    --- a/htdocs/langs/pt_PT/modulebuilder.lang
    +++ b/htdocs/langs/pt_PT/modulebuilder.lang
    @@ -1,101 +1,102 @@
     # Dolibarr language file - Source file is en_US - loan
    -ModuleBuilderDesc=Esta ferramenta deve ser utilizada por utilizadores mais experientes ou programadores. Esta oferece utilitários para criar ou editar o seu próprio módulo (A documentação para o desenvolvimento manual alternativo encontra-se <a href="%s" target="_blank">aqui</a>).
    +ModuleBuilderDesc=Esta ferramenta deve ser usada apenas por usuários experientes ou desenvolvedores. Ele oferece utilitários para criar ou editar seu próprio módulo. <br> Documentação para alternativas <a href="%s" target="_blank"> desenvolvimento manual está aqui </a>.
     EnterNameOfModuleDesc=Introduza o nome do módulo/aplicação a criar, sem espaços. Use maiúsculas para separar palavras (Por exemplo: MyModule, EcommerceForShop, SyncWithMySystem ...)
    -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
    +EnterNameOfObjectDesc=Digite o nome do objeto para criar sem espaços. Use letras maiúsculas para separar palavras (por exemplo: MyObject, Student, Teacher ...). O arquivo de classe CRUD, mas também o arquivo da API, serão geradas páginas para listar / adicionar / editar / excluir objetos e arquivos SQL.
     ModuleBuilderDesc2=Caminho onde são gerados/editados os módulos (primeira diretoria alternativa definida em %s): <strong>%s</strong>
     ModuleBuilderDesc3=Módulos gerados / editáveis ​​encontrados: <strong>%s</strong>
    -ModuleBuilderDesc4=A module is detected as 'editable' when the file <strong>%s</strong> exists in root of module directory
    +ModuleBuilderDesc4=Um módulo é detectado como 'editável' quando o arquivo <strong> %s </ strong> existe na raiz do diretório do módulo
     NewModule=Novo módulo
     NewObject=Novo objeto
     ModuleKey=Chave do módulo
     ObjectKey=Chave do objeto
     ModuleInitialized=Módulo inicializado
    -FilesForObjectInitialized=Files for new object '%s' initialized
    -FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
    -ModuleBuilderDescdescription=Enter here all general information that describe your module.
    -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
    -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
    +FilesForObjectInitialized=Arquivos para o novo objeto '%s' inicializado
    +FilesForObjectUpdated=Arquivos para o objeto '%s' atualizado (arquivos .sql e arquivo .class.php)
    +ModuleBuilderDescdescription=Digite aqui todas as informações gerais que descrevem seu módulo.
    +ModuleBuilderDescspecifications=Você pode inserir aqui uma descrição detalhada das especificações do seu módulo que ainda não está estruturada em outras guias. Então você tem fácil acesso a todas as regras para desenvolver. Além disso, este conteúdo de texto será incluído na documentação gerada (consulte a última guia). Você pode usar o formato Markdown, mas é recomendável usar o formato Asciidoc (comparação entre .md e .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown).
    +ModuleBuilderDescobjects=Defina aqui os objetos que você deseja gerenciar com seu módulo. Uma classe CRUD DAO, arquivos SQL, página para listar registro de objetos, para criar / editar / visualizar um registro e uma API será gerada.
     ModuleBuilderDescmenus=Este separador é dedicado para definir entradas de menu fornecidas pelo seu módulo.
     ModuleBuilderDescpermissions=Este separador é dedicado para definir as novas permissões que deseja fornecer com o seu módulo.
     ModuleBuilderDesctriggers=Esta é a vista dos acionadores fornecidos pelo seu módulo. Para incluir o código executado quando um evento comercial acionado é iniciado, basta editar este ficheiro.
     ModuleBuilderDeschooks=Este separador é dedicado para hooks.
     ModuleBuilderDescwidgets=Este separador é dedicado para gerir/criar widgets.
     ModuleBuilderDescbuildpackage=Você pode gerar aqui um ficheiro pacote "pronto para distribuir" (um ficheiro .zip normalizado) do seu módulo e um ficheiro de documentação "pronto para distribuir". Basta clicar no botão para criar o ficheiro pacote do módulo e o ficheiro de documentação.
    -EnterNameOfModuleToDeleteDesc=Você pode eliminar o seu módulo. AVISO: Todos os ficheiros associados ao módulo, dados estruturados e documentação serão apagados definitivamente!
    -EnterNameOfObjectToDeleteDesc=Você pode eliminar um objeto. AVISO: Todos os arquivos relacionados com o objeto serão apagados definitivamente!
    +EnterNameOfModuleToDeleteDesc=Você pode excluir seu módulo. AVISO: TODOS os arquivos de dados e documentação do módulo E estruturados serão excluídos!
    +EnterNameOfObjectToDeleteDesc=Você pode excluir um objeto. AVISO: Todos os arquivos relacionados ao objeto serão excluídos!
     DangerZone=Zona de perigo
     BuildPackage=Criar pacote/documentação
     BuildDocumentation=Criar documentação
    -ModuleIsNotActive=This module was not activated yet. Go into %s to make it live or click here:
    +ModuleIsNotActive=Este módulo não está ativado ainda. Vá até %s para fazê-lo funcionar ou clique aqui:
     ModuleIsLive=Este módulo foi ativado. Qualquer alteração pode causar problemas numa característica ativa atual.
     DescriptionLong=Descrição longa
     EditorName=Nome do editor
     EditorUrl=URL do editor
     DescriptorFile=Ficheiro descritor do módulo
    -ClassFile=File for PHP DAO CRUD class
    +ClassFile=Arquivo para PHP classe DAO CRUD
     ApiClassFile=Ficheiro para a classe API PHP
     PageForList=Página PHP para a lista de registos
     PageForCreateEditView=Página PHP para criar/editar/visualizar um registo
    -PageForAgendaTab=PHP page for event tab
    -PageForDocumentTab=PHP page for document tab
    -PageForNoteTab=PHP page for note tab
    +PageForAgendaTab=Página PHP para guia de evento
    +PageForDocumentTab=Página PHP para guia do documento
    +PageForNoteTab=Página do PHP para a guia de nota
     PathToModulePackage=Caminho para o ficheiro pacote .zip do módulo/aplicação
     PathToModuleDocumentation=Caminho para o ficheiro de documentação do módulo/aplicação
     SpaceOrSpecialCharAreNotAllowed=Espaços ou caracteres especiais não são permitidos.
     FileNotYetGenerated=O ficheiro ainda não foi gerado
    -RegenerateClassAndSql=Erase and regenerate class and sql files
    -RegenerateMissingFiles=Generate missing files
    -SpecificationFile=File with business rules
    -LanguageFile=File for language
    -ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
    -NotNull=Not NULL
    -NotNullDesc=1=Set database to NOT NULL. -1=Allow null values and force value to NULL if empty ('' or 0).
    -SearchAll=Used for 'search all'
    -DatabaseIndex=Database index
    -FileAlreadyExists=File %s already exists
    -TriggersFile=File for triggers code
    -HooksFile=File for hooks code
    -ArrayOfKeyValues=Array of key-val
    -ArrayOfKeyValuesDesc=Array of keys and values if field is a combo list with fixed values
    -WidgetFile=Widget file
    -ReadmeFile=Readme file
    -ChangeLog=ChangeLog file
    -TestClassFile=File for PHP Unit Test class
    -SqlFile=Sql file
    -PageForLib=File for PHP libraries
    -SqlFileExtraFields=Sql file for complementary attributes
    -SqlFileKey=Sql file for keys
    -AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
    -UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
    -IsAMeasure=Is a measure
    -DirScanned=Directory scanned
    -NoTrigger=No trigger
    -NoWidget=No widget
    -GoToApiExplorer=Go to API explorer
    -ListOfMenusEntries=List of menu entries
    -ListOfPermissionsDefined=List of defined permissions
    -SeeExamples=See examples here
    -EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION)
    -VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only. Using a negative value means field is not shown by default on list but can be selected for viewing)
    -IsAMeasureDesc=Can the value of field be cumulated to get a total into list ? (Examples: 1 or 0)
    -SearchAllDesc=Is the field used to make a search from the quick search tool ? (Examples: 1 or 0)
    -SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax.
    -LanguageDefDesc=Enter in this files, all the key and the translation for each language file.
    -MenusDefDesc=Define here the menus provided by your module (once defined, they are visible into the menu editor %s)
    -PermissionsDefDesc=Define here the new permissions provided by your module (once defined, they are visible into the default permissions setup %s)
    -HooksDefDesc=Define in the <b>module_parts['hooks']</b> property, in the module descriptor, the context of hooks you want to manage (list of contexts can be found by a search on '<b>initHooks(</b>' in core code).<br>Edit the hook file to add code of your hooked functions (hookable functions can be found by a search on '<b>executeHooks</b>' in core code).
    -TriggerDefDesc=Define in the trigger file the code you want to execute for each business event executed.
    -SeeIDsInUse=See IDs in use in your installation
    -SeeReservedIDsRangeHere=See range of reserved IDs
    -ToolkitForDevelopers=Toolkit for Dolibarr developers
    -TryToUseTheModuleBuilder=If you have knowledge in SQL and PHP, you can try to use the native module builder wizard. Just enable the module and use the wizard by clicking the <span class="fa fa-bug"></span> on the top right menu. Warning: This is a developer feature, bad use may breaks your application.
    -SeeTopRightMenu=See <span class="fa fa-bug"></span> on the top right menu
    -AddLanguageFile=Add language file
    -YouCanUseTranslationKey=You can use here a key that is the translation key found into language file (see tab "Languages")
    -DropTableIfEmpty=(Delete table if empty)
    -TableDoesNotExists=The table %s does not exists
    -TableDropped=Table %s deleted
    -InitStructureFromExistingTable=Build the structure array string of an existing table
    -UseAboutPage=Disallow the about page
    -UseDocFolder=Disallow the documentation folder
    -UseSpecificReadme=Use a specific ReadMe
    +RegenerateClassAndSql=Apagar e regenerar arquivos de classe e sql
    +RegenerateMissingFiles=Gere arquivos ausentes
    +SpecificationFile=Arquivar com regras de negócios
    +LanguageFile=Arquivar por idioma
    +ConfirmDeleteProperty=Tem certeza de que deseja excluir a propriedade <strong> %s </ strong>? Isso irá mudar o código na classe PHP, mas também removerá a coluna da definição da tabela do objeto.
    +NotNull=Não nulo
    +NotNullDesc=1 = Definir banco de dados para NOT NULL. -1 = Permitir valores nulos e forçar valor para NULL se vazio ('' ou 0).
    +SearchAll=Usado para "pesquisar todos"
    +DatabaseIndex=Índex da Base de Dados
    +FileAlreadyExists=O arquivo %s já existe
    +TriggersFile=Arquivo para o código de gatilhos
    +HooksFile=Arquivo para o código de ganchos
    +ArrayOfKeyValues=Matriz de chave-val
    +ArrayOfKeyValuesDesc=Matriz de chaves e valores se o campo for uma lista de combinação com valores fixos
    +WidgetFile=Arquivo Widget
    +ReadmeFile=Arquivo Leiame
    +ChangeLog=Arquivo ChangeLog
    +TestClassFile=Arquivo para a classe de teste de unidade do PHP
    +SqlFile=Arquivo Sql
    +PageForLib=Arquivo para bibliotecas PHP
    +SqlFileExtraFields=Arquivo Sql para atributos complementares
    +SqlFileKey=Arquivo Sql para chaves
    +AnObjectAlreadyExistWithThisNameAndDiffCase=Um objeto já existe com este nome e um caso diferente
    +UseAsciiDocFormat=Você pode usar o formato Markdown, mas é recomendável usar o formato Asciidoc (omparison entre .md e .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
    +IsAMeasure=É uma medida
    +DirScanned=Diretório varrido
    +NoTrigger=Nenhum gatilho
    +NoWidget=Nenhum widget
    +GoToApiExplorer=Ir para o explorador de API
    +ListOfMenusEntries=Lista de entradas do menu
    +ListOfPermissionsDefined=Lista de permissões definidas
    +SeeExamples=Veja exemplos aqui
    +EnabledDesc=Condição para ter este campo ativo (Exemplos: 1 ou $ conf-> global-> MYMODULE_MYOPTION)
    +VisibleDesc=O campo está visível? (Exemplos: 0 = Nunca visível, 1 = Visível na lista e criar / atualizar / visualizar formulários, 2 = Visível apenas na lista, 3 = Visível somente no formulário criar / atualizar / visualizar. Usar um valor negativo significa que o campo não é mostrado por padrão na lista, mas pode ser selecionado para visualização)
    +IsAMeasureDesc=O valor do campo pode ser acumulado para obter um total na lista? (Exemplos: 1 ou 0)
    +SearchAllDesc=O campo é usado para fazer uma pesquisa a partir da ferramenta de pesquisa rápida? (Exemplos: 1 ou 0)
    +SpecDefDesc=Digite aqui toda a documentação que você deseja fornecer com seu módulo que ainda não está definido por outras guias. Você pode usar .md ou melhor, a rica sintaxe .asciidoc.
    +LanguageDefDesc=Entre neste arquivo, toda a chave e a tradução para cada arquivo de idioma.
    +MenusDefDesc=Defina aqui os menus fornecidos pelo seu módulo (uma vez definidos, eles são visíveis no editor de menu %s)
    +PermissionsDefDesc=Defina aqui as novas permissões fornecidas pelo seu módulo (uma vez definidas, elas são visíveis na configuração de permissões padrão %s)
    +HooksDefDesc=Defina na propriedade <b> module_parts ['hooks'] </ b>, no descritor de módulo, o contexto dos ganchos que você deseja gerenciar (lista de contextos pode ser encontrada por uma pesquisa em '<b> initHooks (</ b> 'in core code). <br> Edite o arquivo hook para adicionar código de suas funções (funções hookable podem ser encontradas por uma pesquisa em' <b> executeHooks </ b> 'no código principal).
    +TriggerDefDesc=Defina no arquivo acionador o código que você deseja executar para cada evento de negócios executado.
    +SeeIDsInUse=Veja os códigos em uso na sua instalação
    +SeeReservedIDsRangeHere=Veja o intervalo de IDs reservados
    +ToolkitForDevelopers=Toolkit para desenvolvedores do Dolibarr
    +TryToUseTheModuleBuilder=Se você tem conhecimento de SQL e PHP, você pode usar o assistente do construtor de módulo nativo. <br> Habilite o módulo <strong> %s </ strong> e use o assistente clicando no <span class = "fa-bug"> </ span> no menu superior direito. <br> Aviso: este é um recurso de desenvolvedor avançado, não <b> experimente </ b> em seu site de produção!
    +SeeTopRightMenu=Veja <span class = "fa fa-bug"> </ span> no menu superior direito
    +AddLanguageFile=Adicionar ficheiro de idiomas
    +YouCanUseTranslationKey=Você pode usar aqui uma chave que é a chave de tradução encontrada no arquivo de idioma (veja a aba "Idiomas")
    +DropTableIfEmpty=(Excluir tabela se vazia)
    +TableDoesNotExists=A tabela %s não existe
    +TableDropped=Tabela %s excluída
    +InitStructureFromExistingTable=Construir a cadeia de matriz de estrutura de uma tabela existente
    +UseAboutPage=Desativar a página sobre
    +UseDocFolder=Desativar a pasta de documentação
    +UseSpecificReadme=Use um ReadMe específico
    +RealPathOfModule=Caminho real do módulo
    diff --git a/htdocs/langs/pt_PT/opensurvey.lang b/htdocs/langs/pt_PT/opensurvey.lang
    index 11d99b98390..06159ebc70a 100644
    --- a/htdocs/langs/pt_PT/opensurvey.lang
    +++ b/htdocs/langs/pt_PT/opensurvey.lang
    @@ -11,7 +11,7 @@ PollTitle=Título da Votação
     ToReceiveEMailForEachVote=Receber um email por cada voto
     TypeDate=Tipo de data
     TypeClassic=Tipo padrão
    -OpenSurveyStep2=Selecione as suas datas entre os dias grátis (cinza). Os dias selecionados são verdes. Você pode desmarcar um dia selecionado anteriormente clicando novamente nele.
    +OpenSurveyStep2=Selecione suas datas entre os dias livres (cinza). Os dias selecionados são verdes. Você pode desmarcar um dia selecionado anteriormente, clicando novamente nele
     RemoveAllDays=Remover todos os dias
     CopyHoursOfFirstDay=Copiar horas do primeiro dia
     RemoveAllHours=Remover todas as horas
    @@ -35,9 +35,9 @@ TitleChoice=Etiqueta de escolha
     ExportSpreadsheet=Exportar resultados para uma folha de cálculo
     ExpireDate=Data Limite
     NbOfSurveys=Número de inquéritos
    -NbOfVoters=N.º de Eleitores
    +NbOfVoters=Número de eleitores
     SurveyResults=Resultados
    -PollAdminDesc=Você tem permissão para alterar todas as linhas de votação deste inquérito com o botão "Editar". Você pode também remover uma coluna ou uma linha com %s. E pode adicionar uma nova coluna com %s.
    +PollAdminDesc=Está autorizado a alterar todas as linhas de votação deste inquérito com o botão "Editar". Também pode remover uma coluna ou uma linha com %s. E também pode adicionar uma nova coluna com %s.
     5MoreChoices=Mais 5 opções
     Against=Contra
     YouAreInivitedToVote=Foi convidado a votar nesta votação
    @@ -58,4 +58,4 @@ MoreChoices=Insira mais escolhas para os inquiridos
     SurveyExpiredInfo=O inquérito foi encerrado ou o prazo de votação expirou.
     EmailSomeoneVoted=%s preencheu uma linha.\nVocê pode encontrar o seu inquérito através da hiperligação:\n%s
     ShowSurvey=Mostrar estudo
    -UserMustBeSameThanUserUsedToVote=You must have voted and use the same user name that the one used to vote, to post a comment
    +UserMustBeSameThanUserUsedToVote=Você deve ter votado e usar o mesmo nome de usuário que aquele usado para votar, para postar um comentário
    diff --git a/htdocs/langs/pt_PT/other.lang b/htdocs/langs/pt_PT/other.lang
    index 8aa53591b5b..c3fd507e4e9 100644
    --- a/htdocs/langs/pt_PT/other.lang
    +++ b/htdocs/langs/pt_PT/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Código de segurança
     NumberingShort=N°
     Tools=Utilidades
     TMenuTools=Ferramentas
    -ToolsDesc=Todas as ferramentas não incluídas noutras entradas do menu são colocadas aqui. <br><br> Todas as ferramentas podem ser alcançadas no menu à esquerda.
    +ToolsDesc=Todas as ferramentas não incluídas em outras entradas do menu estão agrupadas aqui. Todas as ferramentas podem ser acessadas através do menu à esquerda.
     Birthday=Aniversario
     BirthdayDate=Data de nascimento
     DateToBirth=Data de Nascimento
    @@ -23,7 +23,7 @@ MessageForm=Mensagem no formulário de pagamento online
     MessageOK=Mensagem na página validado o pagamento de retorno
     MessageKO=Mensagem na página de pagamento cancelado retorno
     ContentOfDirectoryIsNotEmpty=O diretório não está vazio.
    -DeleteAlsoContentRecursively=Selecione para eliminar todo o conteúdo recursivamente
    +DeleteAlsoContentRecursively=Marque para excluir todo o conteúdo recursivamente
     
     YearOfInvoice=Ano da data da fatura
     PreviousYearOfInvoice=Ano anterior à data da fatura
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Ano seguinte à data da fatura
     DateNextInvoiceBeforeGen=Data da próxima fatura (antes da geração)
     DateNextInvoiceAfterGen=Data da próxima fatura (após geração)
     
    -Notify_FICHINTER_ADD_CONTACT=Adicionado contato à intervenção
    -Notify_FICHINTER_VALIDATE=Intervenção validada
    -Notify_FICHINTER_SENTBYMAIL=Intervenções enviadas por correio
     Notify_ORDER_VALIDATE=Pedido do cliente validado
     Notify_ORDER_SENTBYMAIL=Pedido do cliente enviado pelo correio
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Para fornecedor enviada por correio
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Encomenda a fornecedor registada
     Notify_ORDER_SUPPLIER_APPROVE=Fornecedor fim aprovado
     Notify_ORDER_SUPPLIER_REFUSE=Fornecedor fim recusado
     Notify_PROPAL_VALIDATE=Orçamento validado
    -Notify_PROPAL_CLOSE_SIGNED=Orçamento para cliente fechado, assinado
    -Notify_PROPAL_CLOSE_REFUSED=Orçamento para cliente fechado, recusado
    +Notify_PROPAL_CLOSE_SIGNED=Proposta do cliente fechada assinada
    +Notify_PROPAL_CLOSE_REFUSED=Proposta do cliente fechada recusada
     Notify_PROPAL_SENTBYMAIL=Orçamento enviado por correio
     Notify_WITHDRAW_TRANSMIT=Retirada de transmissão
     Notify_WITHDRAW_CREDIT=Retirada de crédito
    @@ -51,7 +48,7 @@ Notify_COMPANY_CREATE=Terceiro criado
     Notify_COMPANY_SENTBYMAIL=Emails enviadas a partir da ficha de terceiros
     Notify_BILL_VALIDATE=Fatura do cliente validada
     Notify_BILL_UNVALIDATE=Fatura do cliente não validada
    -Notify_BILL_PAYED=Fatura a cliente paga
    +Notify_BILL_PAYED=Fatura do cliente paga
     Notify_BILL_CANCEL=Fatura do cliente cancelada
     Notify_BILL_SENTBYMAIL=Fatura do cliente enviada pelo correio
     Notify_BILL_SUPPLIER_VALIDATE=Fatura do fornecedor validado
    @@ -60,6 +57,8 @@ Notify_BILL_SUPPLIER_SENTBYMAIL=Fatura do fornecedor enviada por correio
     Notify_BILL_SUPPLIER_CANCELED=Fatura do fornecedor cancelada
     Notify_CONTRACT_VALIDATE=Contrato validado
     Notify_FICHEINTER_VALIDATE=Intervenção validado
    +Notify_FICHINTER_ADD_CONTACT=Adicionado contato à intervenção
    +Notify_FICHINTER_SENTBYMAIL=Intervenções enviadas por correio
     Notify_SHIPPING_VALIDATE=Transporte validado
     Notify_SHIPPING_SENTBYMAIL=Envio por correio
     Notify_MEMBER_VALIDATE=Membro validado
    @@ -71,27 +70,33 @@ Notify_PROJECT_CREATE=Criação do projeto
     Notify_TASK_CREATE=Tarefa criada
     Notify_TASK_MODIFY=Tarefa modificada
     Notify_TASK_DELETE=Tarefa eliminada
    +Notify_EXPENSE_REPORT_VALIDATE=Relatório de despesas validado (aprovação obrigatória)
    +Notify_EXPENSE_REPORT_APPROVE=Relatório de despesas aprovado
    +Notify_HOLIDAY_VALIDATE=Deixe o pedido validado (aprovação obrigatória)
    +Notify_HOLIDAY_APPROVE=Deixe o pedido aprovado
     SeeModuleSetup=Veja a configuração do módulo %s
     NbOfAttachedFiles=Número Ficheiros/Documentos anexos
     TotalSizeOfAttachedFiles=Tamanho Total dos Ficheiros/Documentos anexos
     MaxSize=Tamanho Máximo
    -AttachANewFile=Adicionar Novo Ficheiro/documento
    +AttachANewFile=Adicionar um novo documento/ficheiro
     LinkedObject=Objecto adjudicado
    -NbOfActiveNotifications=Número de notificações
    -PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
    -PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Exmos. Srs.,)__\n\nIrá encontrar aqui o orçamento __REF__\n\n\n__(Com os melhores cumprimentos,)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
    +NbOfActiveNotifications=Número de notificações (nº de emails de destinatários)
    +PredefinedMailTest=__(Olá)__\nEste é um email de teste enviado para __EMAIL__.\nAs duas linhas são separadas por um retorno de carro.\n\n__USER_SIGNATURE__
    +PredefinedMailTestHtml=__(Olá)__\nEste é um teste <b> mail </ b> (a palavra teste deve estar em negrito). <br> As duas linhas são separadas por um retorno de carro. <br> <br> __USER_SIGNATURE__
    +PredefinedMailContentContract=__(Olá)__\n\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Olá)__\n\nPor favor, encontre a fatura em anexo __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Olá)__\n\nGostaríamos de avisá-lo que a fatura __REF__ parece não ter sido paga. A fatura é anexada, como um lembrete.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Olá)__\n\nPor favor, encontre a proposta comercial anexa __REF__\n\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Olá)__\n\nPor favor, encontrar o pedido de preço em anexo __REF__\n\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Olá)__\n\nPor favor, encontre a ordem em anexo __REF__\n\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Olá)__\n\nPor favor, encontre o nosso pedido em anexo __REF__\n\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Olá)__\n\nPor favor, encontre a fatura em anexo __REF__\n\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Olá)__\n\nPor favor, encontrar o envio em anexo __REF__\n\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Olá)__\n\nPor favor encontre a intervenção em anexo __REF__\n\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentThirdparty=__(Olá)__\n\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentUser=__(Olá)__\n\n\n__(Atenciosamente)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentLink=Você pode clicar no link abaixo para fazer seu pagamento, se ainda não estiver pronto.\n\n%s\n\n
     DemoDesc=O Dolibarr é um ERP/CRM compacto que suporta vários módulos de negócios. Uma demonstração mostrando todos os módulos não faz sentido porque esse cenário nunca ocorre (várias centenas disponíveis). Assim, vários perfis de demonstração estão disponíveis.
     ChooseYourDemoProfil=Escolha o perfil de demonstração que melhor se adequa às suas necessidades ...
     ChooseYourDemoProfilMore=...ou crie o seu próprio perfil <br> (seleção manual de módulo)
    @@ -165,14 +170,14 @@ SizeUnitinch=polegada
     SizeUnitfoot=pé
     SizeUnitpoint=ponto
     BugTracker=Incidencias
    -SendNewPasswordDesc=Este formulário permite que você solicite uma nova palavra-passe. Esta solicitação será enviada para seu endereço de e-mail.<br>A alteração entrará em vigor quando você clicar no link de confirmação no e-mail.<br>Verifique sua caixa de entrada.
    +SendNewPasswordDesc=Este formulário permite-lhe solicitar uma nova palavra-passe. Esta será enviada para o seu endereço de e-mail.<br>A alteração será aplicada quando clicar na hiperligação de confirmação na mensagem.<br>Verifique a sua caixa de entrada.
     BackToLoginPage=Voltar à página de iniciar a sessão
     AuthenticationDoesNotAllowSendNewPassword=o modo de autenticação de Dolibarr está configurado como "<b>%s</b>".<br>em este modo Dolibarr não pode conocer ni modificar a sua palavra-passe<br>Contacte com a sua administrador para conocer as modalidades de alterar.
     EnableGDLibraryDesc=Instale ou ative a biblioteca GD na instalação do PHP para usar esta opção.
     ProfIdShortDesc=<b>ID Prof. %s</b> é uma informação dependente do país do Terceiro.<br>Por Exemplo, para o país  <b>%s</b>, é o código <b>%s</b>.
     DolibarrDemo=Demo de Dolibarr ERP/CRM
     StatsByNumberOfUnits=Estatísticas para o somatório da quantidade de produtos/serviços
    -StatsByNumberOfEntities=Estatísticas em número de entidades referentes (número de fatura, ou ordem...)
    +StatsByNumberOfEntities=Estatísticas em número de entidades de referência (nº de fatura ou ordem ...)
     NumberOfProposals=Número de orçamentos
     NumberOfCustomerOrders=Número de encomendas de clientes
     NumberOfCustomerInvoices=Número de faturas a clientes
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Número de unidades em faturas a clientes
     NumberOfUnitsSupplierProposals=Número de unidades nos orçamentos de fornecedor
     NumberOfUnitsSupplierOrders=Número de unidades em encomendas a fornecedores
     NumberOfUnitsSupplierInvoices=Número de unidades nas faturas de fornecedores
    -EMailTextInterventionAddedContact=Foi atribuída uma nova intervenção, %s, a si.
    +EMailTextInterventionAddedContact=Uma nova intervenção %s foi atribuída a você.
     EMailTextInterventionValidated=Intervenção %s validados
     EMailTextInvoiceValidated=A fatura %s foi validada.
    +EMailTextInvoicePayed=A fatura %s foi paga.
     EMailTextProposalValidated=O orçamento %s foi validado.
     EMailTextProposalClosedSigned=O orçamento %s foi fechado e assinado.
     EMailTextOrderValidated=O %s pedido foi validado.
    @@ -197,14 +203,18 @@ EMailTextOrderApprovedBy=Pedido %s Aprovado por %s
     EMailTextOrderRefused=Pedido %s Reprovado
     EMailTextOrderRefusedBy=Pedido %s Reprovado por %s
     EMailTextExpeditionValidated=O envio %s foi validado.
    +EMailTextExpenseReportValidated=O relatório de despesas %s foi validado.
    +EMailTextExpenseReportApproved=O expensereport %s foi aprovado.
    +EMailTextHolidayValidated=O pedido de licença %s foi validado.
    +EMailTextHolidayApproved=O pedido de licença %s foi aprovado.
     ImportedWithSet=Importação conjunto de dados
     DolibarrNotification=Notificação automática
    -ResizeDesc=Digite a nova largura <b>ou</b> altura nova. Razão será mantida durante o redimensionamento ...
    +ResizeDesc=Insira a nova largura <b>OU</b> altura. A proporção será mantida durante o redimensionamento...
     NewLength=Nova largura
     NewHeight=Nova altura
    -NewSizeAfterCropping=Novo tamanho após a corte
    -DefineNewAreaToPick=Definir nova área na imagem para escolher (clique na imagem à esquerda, em seguida, arraste até chegar ao canto oposto)
    -CurrentInformationOnImage=Esta ferramenta foi projetada para ajudá-lo a redimensionar ou recortar uma imagem. Esta é informação sobre a imagem editada atual
    +NewSizeAfterCropping=Novo tamanho depois de recortar
    +DefineNewAreaToPick=Definir nova área na imagem para escolher (clique esquerdo na imagem e depois arraste até chegar ao canto oposto)
    +CurrentInformationOnImage=Esta ferramenta foi projetada para ajudá-lo a redimensionar ou cortar uma imagem. Esta é a informação sobre a imagem editada atual
     ImageEditor=editor de imagem
     YouReceiveMailBecauseOfNotification=Você recebe essa mensagem porque seu e-mail foi adicionado à lista de metas a serem informados de eventos particulares no software %s %s de.
     YouReceiveMailBecauseOfNotification2=Este evento é o seguinte:
    @@ -219,9 +229,9 @@ FileIsTooBig=Arquivos muito grandes
     PleaseBePatient=Por favor, aguarde...
     NewPassword=Nova palavra-passe
     ResetPassword=Repor palavra-passe
    -RequestToResetPasswordReceived=A request to change your password has been received.
    +RequestToResetPasswordReceived=Um pedido para alterar sua senha foi recebido.
     NewKeyIs=Estas são as suas novas credenciais para efectuar login
    -NewKeyWillBe=Your new key to login to software will be
    +NewKeyWillBe=Sua nova chave para acessar o software será
     ClickHereToGoTo=Clique aqui para ir para %s
     YouMustClickToChange=No entanto, você deve primeiro clicar no seguinte link para validar esta alteração de palavra-passe
     ForgetIfNothing=Se você não solicitou esta alteração, ignore o e-mail. As suas credenciais serão mantidas em segurança.
    @@ -234,7 +244,11 @@ PermissionsDelete=Permissões removidas
     YourPasswordMustHaveAtLeastXChars=A sua palavra-passe deve ter pelo menos estes caracteres: <strong>%s</strong>
     YourPasswordHasBeenReset=A sua palavra-passe foi reposta com sucesso
     ApplicantIpAddress=Endereço IP do requerente
    -SMSSentTo=SMS sent to %s
    +SMSSentTo=SMS enviado para %s
    +MissingIds=IDs ausentes
    +ThirdPartyCreatedByEmailCollector=Terceiro criado pelo coletor de e-mail a partir do ID de email %s
    +ContactCreatedByEmailCollector=Contato / endereço criado pelo coletor de e-mail a partir do e-mail ID %s
    +ProjectCreatedByEmailCollector=Projeto criado pelo coletor de e-mail a partir do ID de email %s
     
     ##### Export #####
     ExportsArea=Área de Exportações
    @@ -248,5 +262,7 @@ WebsiteSetup=Configuração do módulo Website
     WEBSITE_PAGEURL=URL da página
     WEBSITE_TITLE=Título
     WEBSITE_DESCRIPTION=Descrição
    +WEBSITE_IMAGE=Imagem
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Palavras-chave
     LinesToImport=Linhas a importar
    diff --git a/htdocs/langs/pt_PT/paybox.lang b/htdocs/langs/pt_PT/paybox.lang
    index 2d9a0dd25a7..18ed6d8b0c8 100644
    --- a/htdocs/langs/pt_PT/paybox.lang
    +++ b/htdocs/langs/pt_PT/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Configurar módulo PayBox
     PayBoxDesc=Este módulo oferece uma página para permitir o pagamento de clientes no <a href="http://www.paybox.com" target="_blank">Paybox</a>. Isto pode ser utilizado para pagamento livre ou para um pagamento em particular de um objeto Dolibarr (fatura, ordem, ...)
     FollowingUrlAreAvailableToMakePayments=As seguintes URL estão disponiveis para permitir a um cliente efectuar um pagamento
     PaymentForm=Forma de pagamento
    -WelcomeOnPaymentPage=Bem-vindo aos nossos serviços de pagamento online
    +WelcomeOnPaymentPage=Bem-vindo ao nosso serviço de pagamento online
     ThisScreenAllowsYouToPay=Esta tela permite que você faça o seu pagamento online destinado a %s.
     ThisIsInformationOnPayment=Aqui estão as informações de pagamento para fazer
     ToComplete=A completar
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL que fornece pagamento on-line interfac
     ToOfferALinkForOnlinePaymentOnContractLine=URL que fornece linha de pagamento  interface% com base na quantidade de uma linha de contrato
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL que fornece pagamento on-line %s interface baseada numa quantidade livre
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL para oferecer uma interface on-line %s pagamento de uma subscrição de membro
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Você também pode adicionar o parâmetro url <b>&tag=<i>value</i></b>  para o endereço (exigida apenas para o pagamento livre) para ver o seu código próprio, observação do pagamento.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Configure o seu url PayBox <b>%s</b> para que o pagamento seja criado automaticamente ao confirmar.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Esta página confirma que o pagamento tenha sido gravada. Obrigado.
    -YourPaymentHasNotBeenRecorded=Você o pagamento não tenha sido gravada e transação foi cancelada. Obrigado.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Conta parâmetros
     UsageParameter=Parâmetros de uso
     InformationToFindParameters=Ajuda para encontrar informações de sua conta %s
    diff --git a/htdocs/langs/pt_PT/paypal.lang b/htdocs/langs/pt_PT/paypal.lang
    index 8120a672c4b..4f16f939c6d 100644
    --- a/htdocs/langs/pt_PT/paypal.lang
    +++ b/htdocs/langs/pt_PT/paypal.lang
    @@ -1,20 +1,19 @@
     # Dolibarr language file - Source file is en_US - paypal
     PaypalSetup=Configurar módulo do PayPal
    -PaypalDesc=Este módulo oferece uma página para permitir o pagamento de clientes no <a href="http://www.paypal.com" target="_blank">PayPal</a>. Isto pode ser utilizado para um pagamento livre ou para um pagamento em particular de um objeto Dolibarr (fatura, ordem, ...)
    -PaypalOrCBDoPayment=Pagar com Paypal (Cartão de Crédito ou Paypal)
    -PaypalDoPayment=Pague com Paypal
    +PaypalDesc=Este módulo permite o pagamento em <a href="http://www.paypal.com" target="_blank"> PayPal </a> pelos clientes. Isso pode ser usado para um pagamento gratuito ou para um pagamento em um determinado objeto Dolibarr (fatura, ordem, ...)
    +PaypalOrCBDoPayment=Pague com PayPal (cartão de crédito ou PayPal)
    +PaypalDoPayment=Pague com PayPal
     PAYPAL_API_SANDBOX=Modo de teste / sandbox
     PAYPAL_API_USER=Nome de utilizador API
     PAYPAL_API_PASSWORD=Senha API
     PAYPAL_API_SIGNATURE=Assinatura API
     PAYPAL_SSLVERSION=Versão do Curl SSL
    -PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Oferta de pagamento "integral" (Cartão de Crédito + Paypal) ou apenas "Paypal"
    +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Oferta de pagamento "integral" (cartão de crédito + PayPal) ou "PayPal" apenas
     PaypalModeIntegral=Integral
     PaypalModeOnlyPaypal=Apenas Paypal
    -ONLINE_PAYMENT_CSS_URL=URL opcional da folha de estilo CSS na página de pagamento online
    +ONLINE_PAYMENT_CSS_URL=URL opcional da folha de estilo CSS na página de pagamento on-line
     ThisIsTransactionId=Esta é id. da transação: <b>%s</b>
    -PAYPAL_ADD_PAYMENT_URL=Adicionar o url de pagamento Paypal quando enviar um documento por correio eletrónico
    -YouAreCurrentlyInSandboxMode=Você está atualmente no modo %s "sandbox"
    +PAYPAL_ADD_PAYMENT_URL=Adicione o URL do pagamento do PayPal quando enviar um documento por correio
     NewOnlinePaymentReceived=Novo pagamento online recebido
     NewOnlinePaymentFailed=Novo pagamento em linha tentado, mas falhado
     ONLINE_PAYMENT_SENDEMAIL=Correio eletrónico para avisar depois de um pagamento (bem sucedido ou não)
    @@ -28,7 +27,8 @@ ShortErrorMessage=Mensagem de Erro Abreviada
     ErrorCode=Código de Erro
     ErrorSeverityCode=Código de Severidade do Erro
     OnlinePaymentSystem=Sistema de pagamento online
    -PaypalLiveEnabled=Paypal ativado (caso contrário, este encontra-se em modo teste)
    -PaypalImportPayment=Importar pagamentos do Paypal
    +PaypalLiveEnabled=PayPal ativado ao vivo (caso contrário, modo de teste / sandbox)
    +PaypalImportPayment=Importar pagamentos do PayPal
     PostActionAfterPayment=Ações posteriores depois dos pagamentos
    -ARollbackWasPerformedOnPostActions=A rollback was performed on all Post actions. You must complete post actions manually if they are necessary.
    +ARollbackWasPerformedOnPostActions=Uma reversão foi executada em todas as ações do Post. Você deve concluir as ações de postagem manualmente, se necessário.
    +ValidationOfPaymentFailed=A validação do pagamento falhou
    diff --git a/htdocs/langs/pt_PT/printing.lang b/htdocs/langs/pt_PT/printing.lang
    index a12315ff9d0..ecba9f72f72 100644
    --- a/htdocs/langs/pt_PT/printing.lang
    +++ b/htdocs/langs/pt_PT/printing.lang
    @@ -2,15 +2,15 @@
     Module64000Name=Impressão Direta
     Module64000Desc=Ativar Sistema de impressão Direta
     PrintingSetup=Configurar o Sistema de Impressão Direta
    -PrintingDesc=Este módulo adiciona um botão Imprimir para enviar documentos diretamente para uma impressora (sem abrir documento numa aplicação à parte) com vários módulos.
    -MenuDirectPrinting=Trabalhos de impressão direta
    +PrintingDesc=Este módulo adiciona um botão Imprimir a vários módulos para permitir que os documentos sejam impressos diretamente em uma impressora sem precisar abrir o documento em outro aplicativo.
    +MenuDirectPrinting=Tarefas de impressão direta
     DirectPrint=Impressão direta
     PrintingDriverDesc=Variáveis da configuração para o controlador de impressão.
     ListDrivers=Lista de Controladores
     PrintTestDesc=Lista de Impressoras.
     FileWasSentToPrinter=O ficheiro %s foi enviado para a inpressora
    -ViaModule=via the module
    -NoActivePrintingModuleFound=No active driver to print document. Check setup of module %s.
    +ViaModule=através do módulo
    +NoActivePrintingModuleFound=Nenhum driver ativo para imprimir o documento. Verifique a configuração do módulo %s.
     PleaseSelectaDriverfromList=Por favor, selecione um controlador da lista.
     PleaseConfigureDriverfromList=Configure o driver selecionado na lista.
     SetupDriver=Configuração da driver
    @@ -19,15 +19,15 @@ UserConf=Configuração por utilizador
     PRINTGCP_INFO=Configuração da API do Google OAuth
     PRINTGCP_AUTHLINK=Autenticação
     PRINTGCP_TOKEN_ACCESS=Token OAuth do Google Cloud Print
    -PrintGCPDesc=Este controlador permite-lhe enviar documentos diretamente para uma impressora com a Impressão na Nuvem da Google.
    +PrintGCPDesc=Este driver permite enviar documentos diretamente para uma impressora usando o Google Cloud Print.
     GCP_Name=Nome
    -GCP_displayName=Exibir Nome
    +GCP_displayName=Nome a exibir
     GCP_Id=Id. da Impressora
     GCP_OwnerName=Nome do Fabricante
     GCP_State=Estado da Impressora
     GCP_connectionStatus=Estado Online
     GCP_Type=Tipo de Impressora
    -PrintIPPDesc=Este driver permite enviar documentos diretamente para uma impressora. Requer um sistema Linux com o CUPS instalado.
    +PrintIPPDesc=Este driver permite o envio de documentos diretamente para uma impressora. Requer um sistema Linux com o CUPS instalado.
     PRINTIPP_HOST=Servidor de Impressão
     PRINTIPP_PORT=Porta
     PRINTIPP_USER=Iniciar Sessão
    @@ -45,8 +45,10 @@ IPP_Color=Cor
     IPP_Device=Dispositivo
     IPP_Media=Média da impressora
     IPP_Supported=Tipo de média
    -DirectPrintingJobsDesc=Esta página lista os trabalhos de impressão encontrados para as impressoras disponíveis.
    +DirectPrintingJobsDesc=Esta página lista as tarefas de impressão encontradas para as impressoras disponíveis.
     GoogleAuthNotConfigured=A configuração do Google OAuth não foi efetuada. Ative o módulo OAuth e defina um ID/Segredo do Google.
     GoogleAuthConfigured=As credenciais do Google OAuth foram encontradas na configuração do módulo OAuth.
     PrintingDriverDescprintgcp=Variáveis ​​de configuração para o driver de impressão do Google Cloud Print.
    +PrintingDriverDescprintipp=Variáveis ​​de configuração para o driver de impressão.
     PrintTestDescprintgcp=Lista de Impressoras para a Impressão na Nuvem da Google
    +PrintTestDescprintipp=Lista de impressoras para copos.
    diff --git a/htdocs/langs/pt_PT/products.lang b/htdocs/langs/pt_PT/products.lang
    index 394c10e49dc..5cc1ff2a39c 100644
    --- a/htdocs/langs/pt_PT/products.lang
    +++ b/htdocs/langs/pt_PT/products.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - products
    -ProductRef=Ref. de produto
    +ProductRef=Ref. do produto
     ProductLabel=Etiqueta do produto
     ProductLabelTranslated=Etiqueta do produto traduzida
     ProductDescriptionTranslated=Categoria do produto traduzida
    @@ -14,15 +14,15 @@ Service=Serviço
     ProductId=ID Produto/Serviço
     Create=Criar
     Reference=Referencia
    -NewProduct=Novo Produto
    -NewService=Novo Serviço
    -ProductVatMassChange=Mass VAT change
    -ProductVatMassChangeDesc=This page can be used to modify a VAT rate defined on products or services from a value to another. Warning, this change is done on all database.
    -MassBarcodeInit=Mass barcode init
    -MassBarcodeInitDesc=This page can be used to initialize a barcode on objects that does not have barcode defined. Check before that setup of module barcode is complete.
    +NewProduct=Novo produto
    +NewService=Novo serviço
    +ProductVatMassChange=Alteração de IVA em massa
    +ProductVatMassChangeDesc=Esta página pode ser usada para modificar uma taxa de IVA definida em produtos ou serviços de um valor para outro. Atenção, essa alteração é global / feita em todo o banco de dados.
    +MassBarcodeInit=Inicialização por código de barras em massa
    +MassBarcodeInitDesc=Esta página pode ser usada para inicializar um código de barras em objetos que não possuem código de barras definido. Verifique antes que a configuração do código de barras do módulo esteja concluída.
     ProductAccountancyBuyCode=Código de contabilidade (compra)
     ProductAccountancySellCode=Código de contabilidade (venda)
    -ProductAccountancySellIntraCode=Código de contabilidade (venda intra-comunitária)
    +ProductAccountancySellIntraCode=Código contábil (venda intracomunitária)
     ProductAccountancySellExportCode=Código de contabilidade (venda exportação)
     ProductOrService=Produto ou Serviço
     ProductsAndServices=Produtos e Serviços
    @@ -57,26 +57,26 @@ ProductStatusOnBuy=Para compra
     ProductStatusNotOnBuy=Não é para compra
     ProductStatusOnBuyShort=Para compra
     ProductStatusNotOnBuyShort=Não é para compra
    -UpdateVAT=Update vat
    -UpdateDefaultPrice=Update default price
    -UpdateLevelPrices=Update prices for each level
    +UpdateVAT=Atualizar IVA
    +UpdateDefaultPrice=Atualizar preço padrão
    +UpdateLevelPrices=Atualizar preços para cada nível
     AppliedPricesFrom=Preço de venda válido a partir de
     SellingPrice=Preço de venda
     SellingPriceHT=Preço de venda (sem IVA)
     SellingPriceTTC=Preço de venda (inc. IVA)
     CostPriceDescription=Este preço (sem IVA) pode ser usado para armazenar o valor médio deste produto para sua empresa. Pode ser qualquer preço que você calcula, por exemplo, do preço médio de compra mais o custo médio de produção e distribuição.
    -CostPriceUsage=This value could be used for margin calculation.
    -SoldAmount=Sold amount
    -PurchasedAmount=Purchased amount
    +CostPriceUsage=Este valor pode ser usado para o cálculo da margem.
    +SoldAmount=Quantidade vendida
    +PurchasedAmount=Quantidade comprada
     NewPrice=Novo preço
     MinPrice=Preço de venda mínimo
    -EditSellingPriceLabel=Edit selling price label
    +EditSellingPriceLabel=Editar etiqueta de preço de venda
     CantBeLessThanMinPrice=O preço de venda não pode ser inferior ao mínimo permitido para este produto ( %s sem impostos)
     ContractStatusClosed=Fechado
     ErrorProductAlreadyExists=Um produto com a referencia %s já existe.
     ErrorProductBadRefOrLabel=O valor da referencia ou etiqueta é incorrecto
     ErrorProductClone=Ocorreu um problema ao tentar clonar o produto ou serviço.
    -ErrorPriceCantBeLowerThanMinPrice=Error, price can't be lower than minimum price.
    +ErrorPriceCantBeLowerThanMinPrice=Erro, o preço não pode ser inferior ao preço mínimo.
     Suppliers=Fornecedores
     SupplierRef=Ref. fornecedor
     ShowProduct=Mostrar produto
    @@ -97,18 +97,18 @@ NoteNotVisibleOnBill=Nota (não visível nas faturas, orçamentos, ...)
     ServiceLimitedDuration=Sim o serviço é de Duração limitada :
     MultiPricesAbility=Vários segmentos de preços por produto/serviço (cada cliente enquadra-se num segmento)
     MultiPricesNumPrices=Nº de preços
    -AssociatedProductsAbility=Ative o recurso para gerir produtos virtuais
    -AssociatedProducts=Produtos associados
    +AssociatedProductsAbility=Ativar produtos virtuais (kits)
    +AssociatedProducts=Produtos virtuais
     AssociatedProductsNumber=Nº de produtos associados
     ParentProductsNumber=Número de produtos de embalagem fonte
    -ParentProducts=Parent products
    +ParentProducts=Produtos para pais
     IfZeroItIsNotAVirtualProduct=Se 0, este produto não é um produto virtual
     IfZeroItIsNotUsedByVirtualProduct=Se 0, este produto não é usado por nenhum produto virtual
     KeywordFilter=Filtro por Chave
     CategoryFilter=Filtro por categoría
     ProductToAddSearch=Procurar produtos a Adicionar
     NoMatchFound=Não foram encontrados resultados
    -ListOfProductsServices=List of products/services
    +ListOfProductsServices=Lista de produtos / serviços
     ProductAssociationList=Lista de produtos/serviços que são componentes deste produto/pacote virtual
     ProductParentList=Lista de produtos e serviços com este produto como um componente
     ErrorAssociationIsFatherOfThis=Um dos produtos seleccionados é pai do produto em curso
    @@ -124,17 +124,17 @@ ConfirmDeleteProductLine=Tem a certeza que quer eliminar esta linha de produto?
     ProductSpecial=Especial
     QtyMin=Qtd mínima
     PriceQtyMin=Preço para esta qt. mín. (s/ o desconto)
    -PriceQtyMinCurrency=Price for this min. qty (w/o discount) (currency)
    +PriceQtyMinCurrency=Preço para este min. qty (sem desconto) (moeda)
     VATRateForSupplierProduct=Taxa de IVA (para este fornecedor/produto)
     DiscountQtyMin=Desconto predefinido para a qt.
     NoPriceDefinedForThisSupplier=Nenhum Preço/Quant. definido para este fornecedor/produto
     NoSupplierPriceDefinedForThisProduct=Nenhum Preço/Quant. Fornecedor definida para este produto
     PredefinedProductsToSell=Produtos predefinidos para venda
    -PredefinedServicesToSell=Predefined services to sell
    +PredefinedServicesToSell=Serviços pré-definidos para vender
     PredefinedProductsAndServicesToSell=Produtos/serviços predefinidos para venda
    -PredefinedProductsToPurchase=Predefined product to purchase
    -PredefinedServicesToPurchase=Predefined services to purchase
    -PredefinedProductsAndServicesToPurchase=Produtos/serviços predefinidos para compra
    +PredefinedProductsToPurchase=Produto predefinido para comprar
    +PredefinedServicesToPurchase=Serviços pré-definidos para compra
    +PredefinedProductsAndServicesToPurchase=Produtos / serviços predefinidos para compra
     NotPredefinedProducts=Produto /serviços não predefinidos
     GenerateThumb=Gerar a etiqueta
     ServiceNb=Serviço nº %s
    @@ -145,23 +145,23 @@ Finished=Produto fabricado
     RowMaterial=Matéria Prima
     CloneProduct=Copie produto ou serviço
     ConfirmCloneProduct=Tem certeza de que deseja clonar este produto ou serviço <b>%s</b>?
    -CloneContentProduct=Copie todas as principais informações do produto / serviço
    +CloneContentProduct=Clone todas as informações principais do produto / serviço
     ClonePricesProduct=Clone preços
     CloneCompositionProduct=Clonar produto/serviço embalado
     CloneCombinationsProduct=Clonar variantes de produto
     ProductIsUsed=Este produto é utilizado
    -NewRefForClone=Ref. do novo produto / serviço
    -SellingPrices=Selling prices
    -BuyingPrices=Buying prices
    +NewRefForClone=Ref. do novo produto/serviço
    +SellingPrices=Preços de venda
    +BuyingPrices=Preços de compra
     CustomerPrices=Preços aos clientes
     SuppliersPrices=Preços dos fornecedores
    -SuppliersPricesOfProductsOrServices=Supplier prices (of products or services)
    -CustomCode=Customs / Commodity / HS code
    +SuppliersPricesOfProductsOrServices=Preços de fornecedores (de produtos ou serviços)
    +CustomCode=Código Aduaneiro / Commodity / HS
     CountryOrigin=País de origem
     Nature=Natureza
    -ShortLabel=Short label
    +ShortLabel=Rótulo curto
     Unit=Unidade
    -p=u.
    +p=você.
     set=definir
     se=definir
     second=segundo
    @@ -181,47 +181,47 @@ m2=m²
     m3=m³
     liter=litro
     l=L
    -unitP=Piece
    -unitSET=Set
    +unitP=Peça
    +unitSET=Conjunto
     unitS=Segundo
     unitH=Hora
     unitD=Dia
    -unitKG=Kilogram
    -unitG=Gram
    -unitM=Meter
    -unitLM=Linear meter
    -unitM2=Square meter
    -unitM3=Cubic meter
    -unitL=Liter
    +unitKG=Quilograma
    +unitG=Grama
    +unitM=Metro
    +unitLM=Metro linear
    +unitM2=Metro quadrado
    +unitM3=Metro cúbico
    +unitL=Litro
     ProductCodeModel=Modelo de referência do produto
     ServiceCodeModel=Modelo de referência de serviço
     CurrentProductPrice=Preço atual
     AlwaysUseNewPrice=Usar sempre o preço atual do produto/serviço
     AlwaysUseFixedPrice=Utilizar o preço fixo
     PriceByQuantity=Preços diferentes por quantidade
    -DisablePriceByQty=Disable prices by quantity
    +DisablePriceByQty=Desativar preços por quantidade
     PriceByQuantityRange=Gama de quantidades
    -MultipriceRules=Price segment rules
    -UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment
    -PercentVariationOver=%% variation over %s
    -PercentDiscountOver=%% discount over %s
    -KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products
    -VariantRefExample=Example: COL
    -VariantLabelExample=Example: Color
    +MultipriceRules=Regras de segmento de preço
    +UseMultipriceRules=Utilizar regras de segmento de preço (definidas na configuração do módulo do produto) para calcular automaticamente os preços de todos os outros segmentos de acordo com o primeiro segmento
    +PercentVariationOver=variação %% sobre %s
    +PercentDiscountOver=%% desconto sobre %s
    +KeepEmptyForAutoCalculation=Mantenha vazio para calcular automaticamente o peso ou o volume dos produtos
    +VariantRefExample=Exemplo: COL
    +VariantLabelExample=Exemplo: cor
     ### composition fabrication
     Build=Produzir
     ProductsMultiPrice=Produtos e preços para cada segmento de preço
    -ProductsOrServiceMultiPrice=Customer prices (of products or services, multi-prices)
    -ProductSellByQuarterHT=Products turnover quarterly before tax
    -ServiceSellByQuarterHT=Services turnover quarterly before tax
    +ProductsOrServiceMultiPrice=Preços ao cliente (de produtos ou serviços, preços múltiplos)
    +ProductSellByQuarterHT=Volume de negócios de produtos trimestral antes de impostos
    +ServiceSellByQuarterHT=Volume de negócios dos serviços trimestral antes de impostos
     Quarter1=1º Trimestre
     Quarter2=2º Trimestre
     Quarter3=3º Trimestre
     Quarter4=4º Trimestre
     BarCodePrintsheet=Imprimir código de barras
    -PageToGenerateBarCodeSheets=With this tool, you can print sheets of bar code stickers. Choose format of your sticker page, type of barcode and value of barcode, then click on button <b>%s</b>.
    -NumberOfStickers=Number of stickers to print on page
    -PrintsheetForOneBarCode=Print several stickers for one barcode
    +PageToGenerateBarCodeSheets=Com esta ferramenta, você pode imprimir folhas de adesivos de código de barras. Escolha o formato da sua página de adesivos, o tipo de código de barras e o valor do código de barras, depois clique no botão <b> %s </ b>.
    +NumberOfStickers=Número de adesivos para imprimir na página
    +PrintsheetForOneBarCode=Imprima vários adesivos para um código de barras
     BuildPageToPrint=Gerar página para impressão
     FillBarCodeTypeAndValueManually=Preencha o tipo de código de barras e o valor, manualmente.
     FillBarCodeTypeAndValueFromProduct=Preencha o tipo de código de barras e o valor a partir do código de barras de um produto.
    @@ -229,108 +229,111 @@ FillBarCodeTypeAndValueFromThirdParty=Preencha o tipo de código de barras e o v
     DefinitionOfBarCodeForProductNotComplete=Definição do tipo ou valor do código de barras não completo para o produto %s.
     DefinitionOfBarCodeForThirdpartyNotComplete=Definição do tipo ou valor do código de barras não completo para o terceiro %s.
     BarCodeDataForProduct=Informações de código de barras do produto %s:
    -BarCodeDataForThirdparty=Barcode information of third party %s :
    -ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values)
    -PriceByCustomer=Different prices for each customer
    -PriceCatalogue=A single sell price per product/service
    -PricingRule=Rules for sell prices
    +BarCodeDataForThirdparty=Informações de código de barras de terceiros %s:
    +ResetBarcodeForAllRecords=Defina o valor do código de barras para todos os registros (isso também redefinirá o valor do código de barras já definido com novos valores)
    +PriceByCustomer=Preços diferentes para cada cliente
    +PriceCatalogue=Um único preço de venda por produto / serviço
    +PricingRule=Regras para preços de venda
     AddCustomerPrice=Adicionar preço por produto
    -ForceUpdateChildPriceSoc=Set same price on customer subsidiaries
    -PriceByCustomerLog=Log of previous customer prices
    -MinimumPriceLimit=Minimum price can't be lower then %s
    -MinimumRecommendedPrice=Minimum recommended price is : %s
    -PriceExpressionEditor=Price expression editor
    -PriceExpressionSelected=Selected price expression
    -PriceExpressionEditorHelp1="price = 2 + 2" or "2 + 2" for setting the price. Use ; to separate expressions
    -PriceExpressionEditorHelp2=You can access ExtraFields with variables like <b>#extrafield_myextrafieldkey#</b> and global variables with <b>#global_mycode#</b>
    -PriceExpressionEditorHelp3=In both product/service and supplier prices there are these variables available:<br><b>#tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min#</b>
    -PriceExpressionEditorHelp4=In product/service price only: <b>#supplier_min_price#</b><br>In supplier prices only: <b>#supplier_quantity# and #supplier_tva_tx#</b>
    -PriceExpressionEditorHelp5=Available global values:
    -PriceMode=Price mode
    +ForceUpdateChildPriceSoc=Definir o mesmo preço em subsidiárias de clientes
    +PriceByCustomerLog=Log dos preços anteriores do cliente
    +MinimumPriceLimit=O preço mínimo não pode ser menor que %s
    +MinimumRecommendedPrice=O preço mínimo recomendado é: %s
    +PriceExpressionEditor=Editor de expressão de preço
    +PriceExpressionSelected=Expressão de preço selecionada
    +PriceExpressionEditorHelp1="preço = 2 + 2" ou "2 + 2" para definir o preço. Usar ; separar expressões
    +PriceExpressionEditorHelp2=Você pode acessar ExtraFields com variáveis ​​como <b> #extrafield_myextrafieldkey # </ b> e variáveis ​​globais com <b> #global_mycode # </ b>
    +PriceExpressionEditorHelp3=Em ambos os preços de produto / serviço e fornecedor, existem estas variáveis ​​disponíveis: <br> <b> # tva_tx # # localtax1_tx # # localtax2_tx # # peso # # comprimento # # superfície # # preço_min # </ b>
    +PriceExpressionEditorHelp4=Apenas no preço do produto / serviço: <b> #supplier_min_price # </ b> <br> Apenas nos preços de fornecedor: <b> # supplier_quantity # e #supplier_tva_tx # </ b>
    +PriceExpressionEditorHelp5=Valores globais disponíveis:
    +PriceMode=Modo de preço
     PriceNumeric=Número
     DefaultPrice=Preço Predefinido
    -ComposedProductIncDecStock=Increase/Decrease stock on parent change
    -ComposedProduct=Sub-product
    +ComposedProductIncDecStock=Aumentar / Diminuir o estoque na mudança pai
    +ComposedProduct=Subproduto
     MinSupplierPrice=Preço de compra mínimo
    -MinCustomerPrice=Minimum selling price
    -DynamicPriceConfiguration=Dynamic price configuration
    -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value.
    -AddVariable=Add Variable
    -AddUpdater=Add Updater
    +MinCustomerPrice=Preço mínimo de venda
    +DynamicPriceConfiguration=Configuração dinâmica de preços
    +DynamicPriceDesc=No cartão do produto, com este módulo ativado, você deve ser capaz de definir funções matemáticas para calcular os preços do Cliente ou do Fornecedor. Tal função pode usar todos os operadores matemáticos, algumas constantes e variáveis. Você pode definir aqui as variáveis ​​que deseja usar e, se a variável precisar de uma atualização automática, a URL externa a ser usada para solicitar ao Dolibarr que atualize o valor automaticamente.
    +AddVariable=Adicionar Variável
    +AddUpdater=Adicionar atualizador
     GlobalVariables=Variáveis globais
    -VariableToUpdate=Variable to update
    -GlobalVariableUpdaters=Global variable updaters
    +VariableToUpdate=Variável para atualizar
    +GlobalVariableUpdaters=Atualizadores de Variáveis ​​Globais
     GlobalVariableUpdaterType0=Dados JSON
    -GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value,
    -GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"}
    +GlobalVariableUpdaterHelp0=Analisa os dados JSON do URL especificado, VALUE especifica a localização do valor relevante,
    +GlobalVariableUpdaterHelpFormat0=Formato para solicitação {"URL": "http://example.com/urlofjson", "VALUE": "array1, array2, targetvalue"}
     GlobalVariableUpdaterType1=WebService data
    -GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method
    -GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}}
    +GlobalVariableUpdaterHelp1=Analisa os dados do WebService da URL especificada, o NS especifica o espaço de nomes, VALUE especifica a localização do valor relevante, DATA deve conter os dados a enviar e METHOD é o método WS de chamada
    +GlobalVariableUpdaterHelpFormat1=O formato da solicitação é {"URL": "http://example.com/urlofws", "VALUE": "array, targetvalue", "NS": "http://example.com/urlofns", "METHOD" : "myWSMethod", "DATA": {"your": "data", "to": "send"}}
     UpdateInterval=Intervalo de atualização (minutos)
    -LastUpdated=Latest update
    +LastUpdated=Última atualização
     CorrectlyUpdated=Corretamente atualizado
    -PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is
    +PropalMergePdfProductActualFile=Os arquivos usados ​​para adicionar ao PDF Azur são / é
     PropalMergePdfProductChooseFile=Selecionar ficheiros PDF
    -IncludingProductWithTag=Including product/service with tag
    -DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer
    -WarningSelectOneDocument=Please select at least one document
    +IncludingProductWithTag=Incluindo produto / serviço com tag
    +DefaultPriceRealPriceMayDependOnCustomer=Preço padrão, preço real pode depender do cliente
    +WarningSelectOneDocument=Por favor, selecione pelo menos um documento
     DefaultUnitToShow=Unidade
     NbOfQtyInProposals=Quantidade nos orçamentos
    -ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view...
    -ProductsOrServicesTranslations=Products or services translation
    -TranslatedLabel=Translated label
    -TranslatedDescription=Translated description
    -TranslatedNote=Translated notes
    -ProductWeight=Weight for 1 product
    -ProductVolume=Volume for 1 product
    -WeightUnits=Weight unit
    -VolumeUnits=Volume unit
    -SizeUnits=Size unit
    -DeleteProductBuyPrice=Delete buying price
    +ClinkOnALinkOfColumn=Clique no link da coluna %s para obter uma visão detalhada ...
    +ProductsOrServicesTranslations=Tradução de produtos ou serviços
    +TranslatedLabel=Etiqueta traduzida
    +TranslatedDescription=Descrição traduzida
    +TranslatedNote=Notas traduzidas
    +ProductWeight=Peso para 1 produto
    +ProductVolume=Volume para 1 produto
    +WeightUnits=Unidade de peso
    +VolumeUnits=Unidade de volume
    +SizeUnits=Unidade de tamanho
    +DeleteProductBuyPrice=Suprimir preço de compra
     ConfirmDeleteProductBuyPrice=Tem certeza de que deseja eliminar este preço de compra?
    -SubProduct=Sub product
    -ProductSheet=Product sheet
    -ServiceSheet=Service sheet
    -PossibleValues=Possible values
    -GoOnMenuToCreateVairants=Go on menu %s - %s to prepare attribute variants (like colors, size, ...)
    -
    +SubProduct=Subproduto
    +ProductSheet=Ficha do Produto
    +ServiceSheet=Folha de serviço
    +PossibleValues=Valores possíveis
    +GoOnMenuToCreateVairants=Vá no menu %s - %s para preparar variantes de atributos (como cores, tamanho, ...)
    +UseProductFournDesc=Use descrições de fornecedores de produtos em documentos do fornecedor
    +ProductSupplierDescription=Descrição do fornecedor para o produto
     #Attributes
    -VariantAttributes=Variant attributes
    -ProductAttributes=Variant attributes for products
    -ProductAttributeName=Variant attribute %s
    -ProductAttribute=Variant attribute
    -ProductAttributeDeleteDialog=Are you sure you want to delete this attribute? All values will be deleted
    -ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" with reference "%s" of this attribute?
    -ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "<strong>%s</strong>"?
    -ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object
    +VariantAttributes=Atributos variantes
    +ProductAttributes=Atributos variantes para produtos
    +ProductAttributeName=Atributo variante %s
    +ProductAttribute=Atributo variante
    +ProductAttributeDeleteDialog=Tem certeza de que deseja excluir este atributo? Todos os valores serão excluídos
    +ProductAttributeValueDeleteDialog=Tem certeza de que deseja excluir o valor "%s" com a referência "%s" deste atributo?
    +ProductCombinationDeleteDialog=Tem certeza de que deseja excluir a variante do produto "<strong> %s </ strong>"?
    +ProductCombinationAlreadyUsed=Ocorreu um erro ao excluir a variante. Por favor, verifique se não está sendo usado em nenhum objeto
     ProductCombinations=Variantes
     PropagateVariant=Propagar variantes
    -HideProductCombinations=Hide products variant in the products selector
    -ProductCombination=Variant
    -NewProductCombination=New variant
    -EditProductCombination=Editing variant
    +HideProductCombinations=Ocultar variante de produtos no seletor de produtos
    +ProductCombination=Variante
    +NewProductCombination=Nova variante
    +EditProductCombination=Variante de edição
     NewProductCombinations=Novas variantes
     EditProductCombinations=Edição de variantes
    -SelectCombination=Select combination
    +SelectCombination=Selecione a combinação
     ProductCombinationGenerator=Gerador de variantes
    -Features=Features
    -PriceImpact=Price impact
    -WeightImpact=Weight impact
    +Features=Características
    +PriceImpact=Impacto no preço
    +WeightImpact=Impacto no peso
     NewProductAttribute=Novo atributo
    -NewProductAttributeValue=New attribute value
    -ErrorCreatingProductAttributeValue=There was an error while creating the attribute value. It could be because there is already an existing value with that reference
    -ProductCombinationGeneratorWarning=If you continue, before generating new variants, all previous ones will be DELETED. Already existing ones will be updated with the new values
    -TooMuchCombinationsWarning=Generating lots of variants may result in high CPU, memory usage and Dolibarr not able to create them. Enabling the option "%s" may help reduce memory usage.
    -DoNotRemovePreviousCombinations=Do not remove previous variants
    -UsePercentageVariations=Use percentage variations
    +NewProductAttributeValue=Novo valor de atributo
    +ErrorCreatingProductAttributeValue=Ocorreu um erro ao criar o valor do atributo. Pode ser porque já existe um valor com essa referência
    +ProductCombinationGeneratorWarning=Se você continuar, antes de gerar novas variantes, todas as anteriores serão DELETADAS. Já os existentes serão atualizados com os novos valores
    +TooMuchCombinationsWarning=Gerar muitas variantes pode resultar em alta CPU, uso de memória e o Dolibarr não consegue criá-las. Ativar a opção "%s" pode ajudar a reduzir o uso de memória.
    +DoNotRemovePreviousCombinations=Não remova variantes anteriores
    +UsePercentageVariations=Use variações percentuais
     PercentageVariation=Variação percentual
    -ErrorDeletingGeneratedProducts=There was an error while trying to delete existing product variants
    -NbOfDifferentValues=Nb of different values
    -NbProducts=Nb. of products
    -ParentProduct=Parent product
    -HideChildProducts=Hide variant products
    -ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference?
    -CloneDestinationReference=Destination product reference
    -ErrorCopyProductCombinations=There was an error while copying the product variants
    -ErrorDestinationProductNotFound=Destination product not found
    -ErrorProductCombinationNotFound=Product variant not found
    +ErrorDeletingGeneratedProducts=Ocorreu um erro ao tentar excluir variantes de produtos existentes
    +NbOfDifferentValues=No. de valores diferentes
    +NbProducts=No. de produtos
    +ParentProduct=Produto pai
    +HideChildProducts=Ocultar produtos variantes
    +ShowChildProducts=Mostrar produtos variantes
    +NoEditVariants=Vá para o cartão do produto pai e edite o impacto do preço das variantes na guia "Variantes"
    +ConfirmCloneProductCombinations=Você gostaria de copiar todas as variantes do produto para o outro produto pai com a referência fornecida?
    +CloneDestinationReference=Referência do produto de destino
    +ErrorCopyProductCombinations=Ocorreu um erro ao copiar as variantes do produto
    +ErrorDestinationProductNotFound=Produto de destino não encontrado
    +ErrorProductCombinationNotFound=Variante de produto não encontrada
    diff --git a/htdocs/langs/pt_PT/projects.lang b/htdocs/langs/pt_PT/projects.lang
    index 6030196741d..b27120ec443 100644
    --- a/htdocs/langs/pt_PT/projects.lang
    +++ b/htdocs/langs/pt_PT/projects.lang
    @@ -8,24 +8,24 @@ ProjectStatus=Estado do projeto
     SharedProject=Toda a Gente
     PrivateProject=Contactos do Projeto
     ProjectsImContactFor=Projetos nos quais sou um contacto
    -AllAllowedProjects=All project I can read (mine + public)
    +AllAllowedProjects=Todos os projetos que eu posso ler (meus + público)
     AllProjects=Todos os Projetos
    -MyProjectsDesc=This view is limited to projects you are a contact for
    +MyProjectsDesc=Essa visão é limitada a projetos para os quais você é um contato
     ProjectsPublicDesc=Esta visualização apresenta todos os projetos que está autorizado a ler.
    -TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read.
    +TasksOnProjectsPublicDesc=Esta visão apresenta todas as tarefas em projetos que você pode ler.
     ProjectsPublicTaskDesc=Esta visualização apresenta todos os projetos e tarefas que está autorizado a ler.
     ProjectsDesc=Esta visualização apresenta todos os projetos (as suas permissões de utilizador concedem-lhe a permissão para ver tudo).
    -TasksOnProjectsDesc=This view presents all tasks on all projects (your user permissions grant you permission to view everything).
    -MyTasksDesc=This view is limited to projects or tasks you are a contact for
    +TasksOnProjectsDesc=Esta visão apresenta todas as tarefas em todos os projetos (suas permissões de usuário permitem que você veja tudo).
    +MyTasksDesc=Esta visão é limitada a projetos ou tarefas para as quais você é um contato.
     OnlyOpenedProject=Apenas os projetos abertos estão visíveis (projetos em estado rascunho ou fechado não estão visíveis).
    -ClosedProjectsAreHidden=Closed projects are not visible.
    +ClosedProjectsAreHidden=Projetos fechados não são visíveis.
     TasksPublicDesc=Esta visualização apresenta todos os projetos e tarefas que está autorizado a ler.
     TasksDesc=Esta visualização apresenta todos os projetos e tarefas (as suas permissões de utilizador concedem-lhe permissão para ver tudo).
    -AllTaskVisibleButEditIfYouAreAssigned=All tasks for qualified projects are visible, but you can enter time only for task assigned to selected user. Assign task if you need to enter time on it.
    -OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it.
    +AllTaskVisibleButEditIfYouAreAssigned=Todas as tarefas para projetos qualificados são visíveis, mas você pode inserir o tempo apenas para a tarefa atribuída ao usuário selecionado. Atribuir tarefa se você precisar inserir tempo nela.
    +OnlyYourTaskAreVisible=Somente tarefas atribuídas a você estão visíveis. Atribua tarefas a si mesmo se não estiver visível e você precisar inserir tempo nela.
     ImportDatasetTasks=Tarefas dos projetos
    -ProjectCategories=Project tags/categories
    -NewProject=Novo Projeto
    +ProjectCategories=Etiquetas/categorias de projeto
    +NewProject=Novo projeto
     AddProject=Criar Projeto
     DeleteAProject=Apagar um Projeto
     DeleteATask=Apagar uma Tarefa
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Tem certeza de que deseja eliminar este projeto?
     ConfirmDeleteATask=Tem certeza de que deseja eliminar esta tarefa?
     OpenedProjects=Projetos abertos
     OpenedTasks=Abrir tarefas
    -OpportunitiesStatusForOpenedProjects=Quantia das oportunidades de projetos abertos, por estado
    -OpportunitiesStatusForProjects=Quantia das oportunidades de projetos, por estado
    +OpportunitiesStatusForOpenedProjects=Leva quantidade de projetos abertos por status
    +OpportunitiesStatusForProjects=Leva quantidade de projetos por status
     ShowProject=Mostrar Projeto
     ShowTask=Ver tarefa
     SetProject=Definir Projeto
     NoProject=Nenhum projeto definido ou possuído
    -NbOfProjects=Nr. de Projetos
    -NbOfTasks=Nb of tasks
    +NbOfProjects=Nº de projetos
    +NbOfTasks=No. de tarefas
     TimeSpent=Tempo Dispendido
     TimeSpentByYou=Tempo gasto por você
     TimeSpentByUser=Tempo gasto pelo utilizador
    @@ -55,16 +55,16 @@ TasksOnOpenedProject=Tarefas em projetos abertos
     WorkloadNotDefined=Carga de trabalho não definida
     NewTimeSpent=Tempos Dispendidos
     MyTimeSpent=Meu Tempo Dispendido
    -BillTime=Bill the time spent
    +BillTime=Bill o tempo gasto
     Tasks=Tarefas
     Task=Tarefa
     TaskDateStart=Data de início da tarefa
     TaskDateEnd=Data do fim da tarefa
     TaskDescription=Descrição da tarefa
    -NewTask=Nova Tarefa
    +NewTask=Nova tarefa
     AddTask=Criar Tarefa
    -AddTimeSpent=Create time spent
    -AddHereTimeSpentForDay=Add here time spent for this day/task
    +AddTimeSpent=Crie tempo gasto
    +AddHereTimeSpentForDay=Adicione aqui o tempo gasto para este dia / tarefa
     Activity=Atividade
     Activities=Tarefas/Atividades
     MyActivities=As Minhas Tarefas/Atividades
    @@ -75,33 +75,34 @@ ProgressDeclared=Progresso declarado
     ProgressCalculated=Progresso calculado
     Time=Tempo
     ListOfTasks=Lista de tarefas
    -GoToListOfTimeConsumed=Go to list of time consumed
    +GoToListOfTimeConsumed=Ir para a lista de tempo consumido
     GoToListOfTasks=Ir para a lista de tarefas
    -GoToGanttView=Go to Gantt view
    -GanttView=Gantt View
    -ListProposalsAssociatedProject=Lista de orçamentos associados com o projeto
    -ListOrdersAssociatedProject=Lista de encomendas de clientes associadas ao projeto
    -ListInvoicesAssociatedProject=Lista de faturas a clientes associadas ao projeto
    -ListPredefinedInvoicesAssociatedProject=Lista de faturas modelo de clientes associadas ao projeto
    -ListSupplierOrdersAssociatedProject=Lista de notas de encomenda de fornecedores associadas ao projeto
    -ListSupplierInvoicesAssociatedProject=Lista de faturas de fornecedores associadas ao projeto
    -ListContractAssociatedProject=Lista de Contratos Associados ao Projeto
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Lista de intervenções associadas ao projeto
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Lista de eventos associados ao projeto
    -ListTaskTimeUserProject=List of time consumed on tasks of project
    -ListTaskTimeForTask=List of time consumed on task
    -ActivityOnProjectToday=Activity on project today
    -ActivityOnProjectYesterday=Activity on project yesterday
    +GoToGanttView=Ir para a vista de Gantt
    +GanttView=Vista de Gantt
    +ListProposalsAssociatedProject=Lista das propostas comerciais relacionadas ao projeto
    +ListOrdersAssociatedProject=Lista de pedidos de clientes relacionados ao projeto
    +ListInvoicesAssociatedProject=Lista de faturas de clientes relacionadas ao projeto
    +ListPredefinedInvoicesAssociatedProject=Lista de faturas de modelos de clientes relacionadas ao projeto
    +ListSupplierOrdersAssociatedProject=Lista de pedidos de fornecedores relacionados ao projeto
    +ListSupplierInvoicesAssociatedProject=Lista de faturas de fornecedores relacionadas ao projeto
    +ListContractAssociatedProject=Lista de contratos relacionados ao projeto
    +ListShippingAssociatedProject=Lista de embarques relacionados ao projeto
    +ListFichinterAssociatedProject=Lista de intervenções relacionadas ao projeto
    +ListExpenseReportsAssociatedProject=Lista de relatórios de despesas relacionados ao projeto
    +ListDonationsAssociatedProject=Lista de doações relacionadas ao projeto
    +ListVariousPaymentsAssociatedProject=Lista de pagamentos diversos relacionados ao projeto
    +ListSalariesAssociatedProject=Lista de pagamentos de salários relacionados ao projeto
    +ListActionsAssociatedProject=Lista de eventos relacionados ao projeto
    +ListTaskTimeUserProject=Lista de tempo consumido em tarefas do projeto
    +ListTaskTimeForTask=Lista de tempo consumido na tarefa
    +ActivityOnProjectToday=Atividade no projeto hoje
    +ActivityOnProjectYesterday=Atividade no projeto ontem
     ActivityOnProjectThisWeek=Atividade do Projeto nesta Semana
     ActivityOnProjectThisMonth=Actividade do Projecto neste Mês
     ActivityOnProjectThisYear=Actividade do Projecto neste Ano
     ChildOfProjectTask=Link do Projeto/Tarefa
     ChildOfTask=Filho da tarefa
    -TaskHasChild=Task has child
    +TaskHasChild=Tarefa tem filho
     NotOwnerOfProject=Não é responsável por este projeto privado
     AffectedTo=Atribuido a
     CantRemoveProject=Este projeto não pode ser eliminado porque está referenciado por alguns objetos (faturas, pedidos e outros). ver lista de referencias.
    @@ -109,14 +110,14 @@ ValidateProject=Validar projeto
     ConfirmValidateProject=Tem certeza de que deseja validar este projeto?
     CloseAProject=Fechar projeto
     ConfirmCloseAProject=Tem a certeza de que deseja fechar este projeto?
    -AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it)
    +AlsoCloseAProject=Também feche o projeto (mantenha-o aberto se você ainda precisar seguir as tarefas de produção)
     ReOpenAProject=Reabrir projeto
     ConfirmReOpenAProject=Tem a certeza de que deseja reabrir este projeto?
     ProjectContact=Contactos do Projeto
    -TaskContact=Task contacts
    +TaskContact=Contatos da tarefa
     ActionsOnProject=Ações sobre o projeto
     YouAreNotContactOfProject=Não é um contato deste projeto privado
    -UserIsNotContactOfProject=User is not a contact of this private project
    +UserIsNotContactOfProject=O usuário não é um contato deste projeto privado
     DeleteATimeSpent=Excluir o tempo gasto
     ConfirmDeleteATimeSpent=Tem certeza de que deseja eliminar este tempo gasto?
     DoNotShowMyTasksOnly=Ver também as tarefas não me atribuidas
    @@ -125,20 +126,20 @@ TaskRessourceLinks=Tarefa de contactos
     ProjectsDedicatedToThisThirdParty=Projetos dedicados a este terceiro
     NoTasks=Não existem tarefas para este projeto
     LinkedToAnotherCompany=Vinculado a Terceiros
    -TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
    +TaskIsNotAssignedToUser=Tarefa não atribuída ao usuário. Use o botão '<strong> %s </ strong>' para atribuir tarefa agora.
     ErrorTimeSpentIsEmpty=Tempo dispensado está vazio
     ThisWillAlsoRemoveTasks=Esta ação também vai excluir todas as tarefas do projeto (<b>%s</b> tarefas no momento) e todas as entradas de tempo dispensadas.
    -IfNeedToUseOhterObjectKeepEmpty=Caso alguns objetos (fatura, encomenda, ...), pertencentes a um terceiro, deve estar vinculado ao projeto para criar, manter este vazio para ter o projeto sendo multi-terceiros.
    +IfNeedToUseOtherObjectKeepEmpty=Caso alguns objetos (fatura, encomenda, ...), pertencentes a um terceiro, deve estar vinculado ao projeto para criar, manter este vazio para ter o projeto sendo multi-terceiros.
     CloneProject=Clonar projeto
     CloneTasks=Clonar tarefas
     CloneContacts=Clonar contactos
     CloneNotes=Clonar notas
    -CloneProjectFiles=Clone project joined files
    -CloneTaskFiles=Clone task(s) joined files (if task(s) cloned)
    +CloneProjectFiles=Projeto clone juntou arquivos
    +CloneTaskFiles=Tarefa (s) clone (s) juntou-se a arquivos (se a tarefa foi clonada)
     CloneMoveDate=Atualizar as datas dos projetos/tarefas a partir de agora?
     ConfirmCloneProject=Tem a certeza de que deseja clonar este projeto?
     ProjectReportDate=Alterar as datas das tarefas de acordo com a nova data de início do projeto
    -ErrorShiftTaskDate=Impossible to shift task date according to new project start date
    +ErrorShiftTaskDate=Impossível deslocar a data da tarefa de acordo com a data de início do novo projeto
     ProjectsAndTasksLines=Projetos e tarefas
     ProjectCreatedInDolibarr=Projeto %s criado
     ProjectValidatedInDolibarr=Projeto %s validado
    @@ -146,14 +147,14 @@ ProjectModifiedInDolibarr=Projeto %s, modificado
     TaskCreatedInDolibarr=%s tarefas criadas
     TaskModifiedInDolibarr=%s tarefas modificadas
     TaskDeletedInDolibarr=%s tarefas apagadas
    -OpportunityStatus=Estado da oportunidade
    +OpportunityStatus=Status de lead
     OpportunityStatusShort=Estado da Opu.
    -OpportunityProbability=Probabilidade da oportunidade
    +OpportunityProbability=Probabilidade de chumbo
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Montante da oportunidade
    -OpportunityAmountShort=Opp. amount
    -OpportunityAmountAverageShort=Average Opp. amount
    -OpportunityAmountWeigthedShort=Weighted Opp. amount
    +OpportunityAmount=Quantidade de chumbo
    +OpportunityAmountShort=Opp. montante
    +OpportunityAmountAverageShort=Média Opp. montante
    +OpportunityAmountWeigthedShort=Opp ponderada montante
     WonLostExcluded=Ganho/Perdido excluído
     ##### Types de contacts #####
     TypeContact_project_internal_PROJECTLEADER=Líder do projeto
    @@ -167,47 +168,50 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Colaborador
     SelectElement=Selecionar elemento
     AddElement=Ligar ao elemento
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Modelo de documento de projeto para visão geral de objetos vinculados
    +DocumentModelBaleine=Modelo de documento de projeto para tarefas
    +DocumentModelTimeSpent=Modelo de relatório do projeto para o tempo gasto
     PlannedWorkload=Carga de trabalho prevista
    -PlannedWorkloadShort=Workload
    +PlannedWorkloadShort=Carga de trabalho
     ProjectReferers=Itens relacionados
     ProjectMustBeValidatedFirst=Primeiro deve validar o projeto
    -FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time
    -InputPerDay=Input per day
    -InputPerWeek=Input per week
    -InputDetail=Input detail
    -TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s
    +FirstAddRessourceToAllocateTime=Atribuir um recurso do usuário à tarefa para alocar tempo
    +InputPerDay=Entrada por dia
    +InputPerWeek=Entrada por semana
    +InputDetail=Detalhe da entrada
    +TimeAlreadyRecorded=Este é o tempo gasto já gravado para esta tarefa / dia e usuário %s
     ProjectsWithThisUserAsContact=Projetos com este utilizador como contacto
     TasksWithThisUserAsContact=Tarefas atribuídas a este utilizador
    -ResourceNotAssignedToProject=Not assigned to project
    -ResourceNotAssignedToTheTask=Not assigned to the task
    -TimeSpentBy=Time spent by
    -TasksAssignedTo=Tasks assigned to
    -AssignTaskToMe=Assign task to me
    -AssignTaskToUser=Assign task to %s
    -SelectTaskToAssign=Select task to assign...
    +ResourceNotAssignedToProject=Não atribuído ao projeto
    +ResourceNotAssignedToTheTask=Não atribuído à tarefa
    +NoUserAssignedToTheProject=Nenhum usuário atribuído a este projeto
    +TimeSpentBy=Tempo gasto por
    +TasksAssignedTo=Tarefas atribuídas a
    +AssignTaskToMe=Atribuir tarefa para mim
    +AssignTaskToUser=Atribuir tarefa a %s
    +SelectTaskToAssign=Selecione a tarefa para atribuir ...
     AssignTask=Atribuir 
     ProjectOverview=Resumo
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projetos para acompanhar tarefas e / ou relatar o tempo gasto (quadros de horários)
     ManageOpportunitiesStatus=Usar projetos para seguir leads/oportunidades
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Projeto/lead aberto, por estado de oportunidade
    -ProjectsStatistics=Statistics on projects/leads
    -TasksStatistics=Statistics on project/lead tasks
    -TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
    +ProjectNbProjectByMonth=Nº de projetos criados por mês
    +ProjectNbTaskByMonth=Nº de tarefas criadas por mês
    +ProjectOppAmountOfProjectsByMonth=Quantidade de leads por mês
    +ProjectWeightedOppAmountOfProjectsByMonth=Quantidade ponderada de leads por mês
    +ProjectOpenedProjectByOppStatus=Abrir projeto / liderar por status de lead
    +ProjectsStatistics=Estatísticas sobre projetos / leads
    +TasksStatistics=Estatísticas sobre tarefas de projeto / lead
    +TaskAssignedToEnterTime=Tarefa atribuída. A inserção de tempo nesta tarefa deve ser possível.
     IdTaskTime=Id task time
    -YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
    +YouCanCompleteRef=Se você quiser completar o ref com algumas informações (para usá-lo como filtros de pesquisa), é recomendável adicionar um caractere - para separá-lo, para que a numeração automática funcione corretamente nos próximos projetos. Por exemplo %s-ABC. Você também pode preferir adicionar chaves de pesquisa ao marcador. Mas a melhor prática pode ser adicionar um campo dedicado, também chamado de atributos complementares.
     OpenedProjectsByThirdparties=Projetos abertos, por terceiros
    -OnlyOpportunitiesShort=Apenas oportunidades
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Não é uma oportunidade
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Apenas leva
    +OpenedOpportunitiesShort=Ligações abertas
    +NotOpenedOpportunitiesShort=Leads não abertos
    +NotAnOpportunityShort=Não é um lead
    +OpportunityTotalAmount=Quantidade total de leads
    +OpportunityPonderatedAmount=Quantidade ponderada de leads
    +OpportunityPonderatedAmountDesc=Leva quantidade ponderada com probabilidade
     OppStatusPROSP=Prospeção
     OppStatusQUAL=Qualificação
     OppStatusPROPO=Orçamento
    @@ -216,15 +220,17 @@ OppStatusPENDING=Pendente
     OppStatusWON=Ganho
     OppStatusLOST=Perdido
     Budget=Orçamento
    -AllowToLinkFromOtherCompany=Allow to link project from other company<br><br><u>Supported values :</u><br>- Keep empty: Can link any project of the company (default)<br>- "all" : Can link any projects, even project of other companies<br>- A list of thirdparty id separated with commas : Can link all projects of these thirdparty defined (Example : 123,4795,53)<br>
    -LatestProjects=Latest %s projects
    +AllowToLinkFromOtherCompany=Permitir vincular projeto de outra empresa <br> <br> <u> Valores suportados: </ u> <br> - Manter vazio: pode vincular qualquer projeto da empresa (padrão) <br> - "todos": pode vincular todos os projetos, até mesmo projeto de outras empresas <br> - Uma lista de ID de terceiros separada com vírgulas: pode vincular todos os projetos desses terceiros definidos (Exemplo: 123,4795,53) <br>
    +LatestProjects=Últimos projetos %s
     LatestModifiedProjects=Últimos %s projetos modificados 
    -OtherFilteredTasks=Other filtered tasks
    -NoAssignedTasks=No assigned tasks (assign project/tasks the current user from the top select box to enter time on it)
    +OtherFilteredTasks=Outras tarefas filtradas
    +NoAssignedTasks=Nenhuma tarefa atribuída (atribua projeto / tarefas ao usuário atual na caixa de seleção superior para inserir a hora nele)
     # Comments trans
    -AllowCommentOnTask=Allow user comments on tasks
    -AllowCommentOnProject=Allow user comments on projects
    -DontHavePermissionForCloseProject=You do not have permissions to close the project %s
    +AllowCommentOnTask=Permitir comentários de usuários sobre tarefas
    +AllowCommentOnProject=Permitir comentários de usuários em projetos
    +DontHavePermissionForCloseProject=Você não tem permissão para fechar o projeto %s
     DontHaveTheValidateStatus=O projeto %s deve estar ativo para ser desativado
    -RecordsClosed=%s project(s) closed
    -SendProjectRef=Information project %s
    +RecordsClosed=%s projeto (s) fechado (s)
    +SendProjectRef=Projeto de informação %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=O módulo 'Pagamento dos salários dos empregados' deve estar habilitado para definir a taxa horária do empregado para ter o tempo gasto valorizado
    +NewTaskRefSuggested=Tarefa ref já usada, uma nova tarefa ref é sugerida
    diff --git a/htdocs/langs/pt_PT/propal.lang b/htdocs/langs/pt_PT/propal.lang
    index f2837c61104..be81e8fedb3 100644
    --- a/htdocs/langs/pt_PT/propal.lang
    +++ b/htdocs/langs/pt_PT/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Assinado (por faturar)
     PropalStatusNotSigned=Sem Assinar (Fechado)
     PropalStatusBilled=Faturado
     PropalStatusDraftShort=Rascunho
    -PropalStatusValidatedShort=Validado
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Fechado
     PropalStatusSignedShort=Assinado
     PropalStatusNotSignedShort=Não assinado
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Orçamento %s Inexistente
     AddToDraftProposals=Adicionar ao orçamento rascunho
     NoDraftProposals=Sem orçamentos rascunhos
     CopyPropalFrom=Criar orçamento, copiando um orçamento existente
    -CreateEmptyPropal=Criar orçamentos a partir da lista de produtos/serviços
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Prazo de validade predefinido do orçamento (em dias)
    -UseCustomerContactAsPropalRecipientIfExist=Utilizar morada de contacto de cliente, se definido em vez da morada de terceiro como morada de destinatário do orçamento
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clonar orçamento
     ConfirmClonePropal=Tem a certeza que pretende clonar o orçamento <b>%s</b>?
     ConfirmReOpenProp=Tem a certeza que pretende reabrir o orçamento <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Contacto do cliente que dá seguimento ao o
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Um modelo de orçamento completo (logótipo...)
    +DocModelCyanDescription=Um modelo de orçamento completo (logótipo...)
     DefaultModelPropalCreate=Criação do modelo padrão
     DefaultModelPropalToBill=Modelo predefinido quando fechar um orçamento (a faturar)
     DefaultModelPropalClosed=Modelo predefinido quando fechar um orçamento (não faturado)
    diff --git a/htdocs/langs/pt_PT/receiptprinter.lang b/htdocs/langs/pt_PT/receiptprinter.lang
    index e1d460b6b9f..c5b478c4175 100644
    --- a/htdocs/langs/pt_PT/receiptprinter.lang
    +++ b/htdocs/langs/pt_PT/receiptprinter.lang
    @@ -7,10 +7,10 @@ TestSentToPrinter=Teste Enviado para a Impressora %s
     ReceiptPrinter=Impressoras de recibo
     ReceiptPrinterDesc=Configurar impressoras de recibo
     ReceiptPrinterTemplateDesc=Configuração de Modelos
    -ReceiptPrinterTypeDesc=Description of Receipt Printer's type
    -ReceiptPrinterProfileDesc=Description of Receipt Printer's Profile
    +ReceiptPrinterTypeDesc=Descrição do tipo de Impressora de Recibo
    +ReceiptPrinterProfileDesc=Descrição do Perfil da Impressora de Recibos
     ListPrinters=Lista de Impressoras
    -SetupReceiptTemplate=Template Setup
    +SetupReceiptTemplate=Configuração de Modelo
     CONNECTOR_DUMMY=Impressora de Teste
     CONNECTOR_NETWORK_PRINT=Impressora de Rede
     CONNECTOR_FILE_PRINT=Impressora Local
    @@ -23,12 +23,12 @@ PROFILE_DEFAULT=Perfil Predefinido
     PROFILE_SIMPLE=Perfil Simples
     PROFILE_EPOSTEP=Epos Tep Profile
     PROFILE_P822D=Perfil P822D
    -PROFILE_STAR=Star Profile
    -PROFILE_DEFAULT_HELP=Default Profile suitable for Epson printers
    -PROFILE_SIMPLE_HELP=Simple Profile No Graphics
    -PROFILE_EPOSTEP_HELP=Epos Tep Profile Help
    -PROFILE_P822D_HELP=P822D Profile No Graphics
    -PROFILE_STAR_HELP=Star Profile
    +PROFILE_STAR=Perfil da Estrela
    +PROFILE_DEFAULT_HELP=Perfil predefinido adequado para as impressoras Epson
    +PROFILE_SIMPLE_HELP=Perfil simples sem gráficos
    +PROFILE_EPOSTEP_HELP=Epos Tep Profile Ajuda
    +PROFILE_P822D_HELP=Perfil do P822D sem gráficos
    +PROFILE_STAR_HELP=Perfil da Estrela
     DOL_ALIGN_LEFT=Texto alinhado à esquerda
     DOL_ALIGN_CENTER=Texto centrado
     DOL_ALIGN_RIGHT=Texto alinhado à direita
    @@ -37,8 +37,8 @@ DOL_USE_FONT_B=Utilizar letra B da Impressora
     DOL_USE_FONT_C=Utilizar letra C da Impressora
     DOL_PRINT_BARCODE=Imprimir código de barras
     DOL_PRINT_BARCODE_CUSTOMER_ID=Imprimir código de barras da id. do cliente
    -DOL_CUT_PAPER_FULL=Cut ticket completely
    -DOL_CUT_PAPER_PARTIAL=Cut ticket partially
    +DOL_CUT_PAPER_FULL=Cortar bilhete completamente
    +DOL_CUT_PAPER_PARTIAL=Cortar ticket parcialmente
     DOL_OPEN_DRAWER=Abrir gaveta do dinheiro
     DOL_ACTIVATE_BUZZER=Ativar campainha
     DOL_PRINT_QRCODE=Imprimir Código QR
    diff --git a/htdocs/langs/pt_PT/sms.lang b/htdocs/langs/pt_PT/sms.lang
    index 3df936b6a06..facdadb0279 100644
    --- a/htdocs/langs/pt_PT/sms.lang
    +++ b/htdocs/langs/pt_PT/sms.lang
    @@ -1,9 +1,9 @@
     # Dolibarr language file - Source file is en_US - sms
     Sms=Sms
    -SmsSetup=Configurar Sms
    -SmsDesc=Esta página permite que você defina opções globais de SMS ou características
    +SmsSetup=Configuração de SMS
    +SmsDesc=Esta página permite definir opções globais em recursos do SMS
     SmsCard=Ficha de SMS
    -AllSms=Todos Campanhas SMS
    +AllSms=Todas as campanhas de SMS
     SmsTargets=Metas
     SmsRecipients=Metas
     SmsRecipient=Alvo
    @@ -13,20 +13,20 @@ SmsTo=Alvo
     SmsTopic=Tópico de SMS
     SmsText=Mensagem
     SmsMessage=Mensagem SMS
    -ShowSms=Mostrar Sms
    -ListOfSms=Lista SMS Campanhas
    -NewSms=Nova Campanha SMS
    -EditSms=Editar Sms
    +ShowSms=Mostrar SMS
    +ListOfSms=Listar campanhas de SMS
    +NewSms=Nova campanha de SMS
    +EditSms=Editar SMS
     ResetSms=Envio Novo
    -DeleteSms=Apagar Sms campain
    -DeleteASms=Remover uma Campanha Sms
    -PreviewSms=Prever Sms
    -PrepareSms=Prepare Sms
    -CreateSms=Criar Sms
    -SmsResult=Resultado de envio de SMS
    -TestSms=Teste Sms
    -ValidSms=Validar Sms
    -ApproveSms=Aprovar Sms
    +DeleteSms=Excluir campanha de SMS
    +DeleteASms=Remover uma campanha de SMS
    +PreviewSms=SMS Previuw
    +PrepareSms=Prepare SMS
    +CreateSms=Criar SMS
    +SmsResult=Resultado do envio de SMS
    +TestSms=Teste de SMS
    +ValidSms=Validar SMS
    +ApproveSms=Aprovar SMS
     SmsStatusDraft=Rascunho
     SmsStatusValidated=Validado
     SmsStatusApproved=Aprovado
    @@ -35,16 +35,16 @@ SmsStatusSentPartialy=Enviado parcialmente
     SmsStatusSentCompletely=Enviado completamente
     SmsStatusError=Erro
     SmsStatusNotSent=Não enviado
    -SmsSuccessfulySent=Sms enviada corretamente (de %s a %s)
    +SmsSuccessfulySent=SMS enviado corretamente (de %s para %s)
     ErrorSmsRecipientIsEmpty=Número de destino está vazio
     WarningNoSmsAdded=Novo número de telefone para adicionar à lista de alvos
    -ConfirmValidSms=Confirma a validação desta campanha? 
    -NbOfUniqueSms=Nb DOF únicos números de telefone
    -NbOfSms=Nbre de números phon
    +ConfirmValidSms=Você confirma a validação desta campanha?
    +NbOfUniqueSms=Não. De números de telefone exclusivos
    +NbOfSms=Número de números de telefone
     ThisIsATestMessage=Esta é uma mensagem de teste
     SendSms=Enviar SMS
    -SmsInfoCharRemain=N º de caracteres restantes
    -SmsInfoNumero= (Formato internacional exemplo: +33899701761)
    +SmsInfoCharRemain=No. de caracteres restantes
    +SmsInfoNumero= (formato internacional, ou seja: +33899701761)
     DelayBeforeSending=Atraso antes de enviar (minutos)
     SmsNoPossibleSenderFound=Nenhum operador disponível. Verifique a configuração do seu serviço SMS. 
     SmsNoPossibleRecipientFound=Nenhum alvo disponível. Verifique a configuração do seu provedor de SMS.
    diff --git a/htdocs/langs/pt_PT/stocks.lang b/htdocs/langs/pt_PT/stocks.lang
    index d03c7f1022f..029f564a5b1 100644
    --- a/htdocs/langs/pt_PT/stocks.lang
    +++ b/htdocs/langs/pt_PT/stocks.lang
    @@ -3,9 +3,9 @@ WarehouseCard=Ficha do armazém
     Warehouse=Armazém
     Warehouses=Armazéns
     ParentWarehouse=Armazém Principal
    -NewWarehouse=Novo Armazem ou Zona de Armazenagem
    +NewWarehouse=Novo armazém / área de stock
     WarehouseEdit=Modificar armazém
    -MenuNewWarehouse=Novo Armazem
    +MenuNewWarehouse=Novo armazém
     WarehouseSource=Armazem Origem
     WarehouseSourceNotDefined=Sem armazém definido
     AddWarehouse=Criar armazém
    @@ -17,7 +17,7 @@ CancelSending=Cancelar Envío
     DeleteSending=Eliminar Envío
     Stock=Stock
     Stocks=Stocks
    -StocksByLotSerial=Stocks by lot/serial
    +StocksByLotSerial=Stocks por lote/número de série
     LotSerial=Lotes / Nr. Série
     LotSerialList=Lista de lote / nr. série
     Movements=Movimentos
    @@ -27,71 +27,70 @@ ListOfStockMovements=Lista de movimentos de stock
     ListOfInventories=Lista de inventários
     MovementId=Id. do Movimento
     StockMovementForId=Id. do Movimento %d
    -ListMouvementStockProject=List of stock movements associated to project
    +ListMouvementStockProject=Lista de movimentos de estoque associados ao projeto
     StocksArea=Área de armazéns
     Location=Localização
     LocationSummary=Nome abreviado da localização
     NumberOfDifferentProducts=Número de produtos diferentes
     NumberOfProducts=Numero total de produtos
     LastMovement=Movimentos mais recentes
    -LastMovements=Latest movements
    +LastMovements=Últimos movimentos
     Units=Unidades
     Unit=Unidade
    -StockCorrection=Stock correction
    +StockCorrection=Correção de estoque
     CorrectStock=Correcção stock
    -StockTransfer=Stock transfer
    -TransferStock=Transfer stock
    -MassStockTransferShort=Mass stock transfer
    -StockMovement=Stock movement
    -StockMovements=Stock movements
    -LabelMovement=Movement label
    +StockTransfer=Transferência de estoque
    +TransferStock=Estoque de transferência
    +MassStockTransferShort=Transferência de estoque em massa
    +StockMovement=Movimentação de estoque
    +StockMovements=Movimentos de estoque
     NumberOfUnit=Número de peças
     UnitPurchaseValue=Preço de compra Unitário
     StockTooLow=Stock insuficiente
    -StockLowerThanLimit=Stock lower than alert limit (%s)
    +StockLowerThanLimit=Estoque inferior ao limite de alerta (%s)
     EnhancedValue=Valor
     PMPValue=Valor (PMP)
     PMPValueShort=PMP
     EnhancedValueOfWarehouses=Valor de stocks
    -UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user
    -AllowAddLimitStockByWarehouse=Allow to add limit and desired stock per couple (product, warehouse) instead of per product
    -IndependantSubProductStock=Product stock and subproduct stock are independant
    +UserWarehouseAutoCreate=Crie um armazém de usuários automaticamente ao criar um usuário
    +AllowAddLimitStockByWarehouse=Permitir adicionar limite e estoque desejado por par (produto, armazém) em vez de por produto
    +IndependantSubProductStock=Estoque de produto e subproduto são independentes
     QtyDispatched=Quantidade desagregada
     QtyDispatchedShort=Qt. despachada
     QtyToDispatchShort=Qt. a despachar
     OrderDispatch=Receção da encomenda
    -RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated)
    -RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated)
    -DeStockOnBill=Diminuir stocks reais ao validar faturas/notas de crédito de clientes
    -DeStockOnValidateOrder=Diminuir stocks reais ao validar encomendas para clientes
    +RuleForStockManagementDecrease=Escolha Regra para redução automática de estoque (a redução manual é sempre possível, mesmo se uma regra de redução automática estiver ativada)
    +RuleForStockManagementIncrease=Escolha Regra para aumento automático de estoque (o aumento manual é sempre possível, mesmo se uma regra de aumento automático estiver ativada)
    +DeStockOnBill=Diminuir estoques reais na validação da fatura / nota de crédito do cliente
    +DeStockOnValidateOrder=Diminuir estoques reais na validação do pedido do cliente
     DeStockOnShipment=Diminuir stocks reais ao validar a expedição
    -DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed
    -ReStockOnBill=Incrementar os stocks físicos ao validar faturas/recibos
    -ReStockOnValidateOrder=Increase real stocks on purchase orders approbation
    -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods
    +DeStockOnShipmentOnClosing=Diminuir estoques reais na classificação de remessa fechada
    +ReStockOnBill=Aumentar os estoques reais na validação da fatura / nota de crédito do fornecedor
    +ReStockOnValidateOrder=Aumentar estoques reais na aprovação do pedido
    +ReStockOnDispatchOrder=Aumentar estoques reais no envio manual para o depósito, após o recebimento do pedido pelo fornecedor
     OrderStatusNotReadyToDispatch=A encomenda não está pronta para o despacho dos produtos no stock dos armazéns.
    -StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock
    +StockDiffPhysicTeoric=Explicação da diferença entre estoque físico e virtual
     NoPredefinedProductToDispatch=Nenhum produto predefinido para este objeto. Portanto, não é necessário enviar despachos em stock.
     DispatchVerb=Expedição
    -StockLimitShort=Limit for alert
    -StockLimit=Stock limit for alert
    -StockLimitDesc=(empty) means no warning.<br>0 can be used for a warning as soon as stock is empty.
    +StockLimitShort=Limite para alerta
    +StockLimit=Limite de estoque para alerta
    +StockLimitDesc=(vazio) significa que não há aviso. <br> 0 pode ser usado para um aviso assim que o estoque estiver vazio.
     PhysicalStock=Stock físico
     RealStock=Stock real
    -RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements.
    -RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this):
    +RealStockDesc=O estoque físico ou real é o estoque que você tem atualmente em seus armazéns / locais internos.
    +RealStockWillAutomaticallyWhen=O estoque real será alterado automaticamente de acordo com essas regras (consulte a configuração do módulo de estoque para alterar isso):
     VirtualStock=Stock virtual
    -VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...)
    +VirtualStockDesc=O estoque virtual é o estoque que você receberá uma vez que todas as ações pendentes abertas que afetam os estoques serão fechadas (pedido do fornecedor recebido, pedido do cliente enviado, ...)
     IdWarehouse=Id. armazem
     DescWareHouse=Descrição armazem
     LieuWareHouse=Localização armazem
     WarehousesAndProducts=Armazens e produtos
    -WarehousesAndProductsBatchDetail=Warehouses and products (with detail per lot/serial)
    +WarehousesAndProductsBatchDetail=Armazéns e produtos (com detalhe por lote / série)
     AverageUnitPricePMPShort=Média dos preços de entrada
     AverageUnitPricePMP=Média dos preços de entrada
     SellPriceMin=Vendendo Preço unitário
    -EstimatedStockValueSellShort=Value for sell
    -EstimatedStockValueSell=Value for sell
    +EstimatedStockValueSellShort=Valor para vender
    +EstimatedStockValueSell=Valor para vender
     EstimatedStockValueShort=Valor estimado de stock
     EstimatedStockValue=Valor estimado de stock
     DeleteAWarehouse=Excluir um armazém
    @@ -100,107 +99,112 @@ PersonalStock=Pessoal %s stock
     ThisWarehouseIsPersonalStock=Este armazém representa stock pessoal de %s %s
     SelectWarehouseForStockDecrease=Escolha depósito a ser usado para diminuição de ações
     SelectWarehouseForStockIncrease=Escolha depósito a ser usado para aumentar stock
    -NoStockAction=No stock action
    -DesiredStock=Desired optimal stock
    -DesiredStockDesc=This stock amount will be the value used to fill the stock by replenishment feature.
    -StockToBuy=To order
    -Replenishment=Replenishment
    -ReplenishmentOrders=Replenishment orders
    -VirtualDiffersFromPhysical=According to increase/decrease stock options, physical stock and virtual stock (physical + current orders) may differ
    -UseVirtualStockByDefault=Use virtual stock by default, instead of physical stock, for replenishment feature
    -UseVirtualStock=Use virtual stock
    -UsePhysicalStock=Use physical stock
    -CurentSelectionMode=Current selection mode
    +NoStockAction=Nenhuma ação de estoque
    +DesiredStock=Estoque ideal desejado
    +DesiredStockDesc=Esse valor do estoque será o valor usado para preencher o estoque pelo recurso de reabastecimento.
    +StockToBuy=Pedir
    +Replenishment=Reabastecimento
    +ReplenishmentOrders=Ordens de reabastecimento
    +VirtualDiffersFromPhysical=De acordo com as opções de aumento / redução de estoque, o estoque físico e o estoque virtual (pedidos físicos + atuais) podem diferir
    +UseVirtualStockByDefault=Usar estoque virtual por padrão, em vez de estoque físico, para o recurso de reabastecimento
    +UseVirtualStock=Use estoque virtual
    +UsePhysicalStock=Use estoque físico
    +CurentSelectionMode=Modo de seleção atual
     CurentlyUsingVirtualStock=Stock virtual
     CurentlyUsingPhysicalStock=Stock físico
    -RuleForStockReplenishment=Rule for stocks replenishment
    -SelectProductWithNotNullQty=Select at least one product with a qty not null and a supplier
    +RuleForStockReplenishment=Regra para reabastecimento de estoques
    +SelectProductWithNotNullQty=Selecione pelo menos um produto com uma quantidade não nula e um fornecedor
     AlertOnly= Só Alertas
    -WarehouseForStockDecrease=The warehouse <b>%s</b> will be used for stock decrease
    -WarehouseForStockIncrease=The warehouse <b>%s</b> will be used for stock increase
    +WarehouseForStockDecrease=O depósito <b> %s </ b> será usado para redução de estoque
    +WarehouseForStockIncrease=O depósito <b> %s </ b> será usado para aumentar o estoque
     ForThisWarehouse=Para este armazém
    -ReplenishmentStatusDesc=This is a list of all products with a stock lower than desired stock (or lower than alert value if checkbox "alert only" is checked). Using the checkbox, you can create supplier orders to fill the difference.
    -ReplenishmentOrdersDesc=This is a list of all open supplier orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here.
    -Replenishments=Replenishments
    -NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s)
    -NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s)
    -MassMovement=Mass movement
    -SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s".
    -RecordMovement=Record transfer
    +ReplenishmentStatusDesc=Esta é uma lista de todos os produtos com um estoque menor do que o estoque desejado (ou menor que o valor de alerta, se a caixa de seleção "somente alerta" estiver marcada). Usando a caixa de seleção, você pode criar pedidos de fornecedores para preencher a diferença.
    +ReplenishmentOrdersDesc=Esta é uma lista de todos os pedidos de fornecedores abertos, incluindo produtos predefinidos. Somente pedidos abertos com produtos predefinidos, portanto, os pedidos que podem afetar os estoques são visíveis aqui.
    +Replenishments=Reabastecimentos
    +NbOfProductBeforePeriod=Quantidade de produto %s em estoque antes do período selecionado (<%s)
    +NbOfProductAfterPeriod=Quantidade de produto %s em estoque após o período selecionado (> %s)
    +MassMovement=Movimento de massa
    +SelectProductInAndOutWareHouse=Selecione um produto, uma quantidade, um warehouse de origem e um warehouse de destino e clique em "%s". Assim que isso for feito para todos os movimentos necessários, clique em "%s".
    +RecordMovement=Transferência de registro
     ReceivingForSameOrder=Receções para esta encomenda
    -StockMovementRecorded=Stock movements recorded
    -RuleForStockAvailability=Rules on stock requirements
    -StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to invoice (check is done on current real stock when adding a line into invoice whatever is rule for automatic stock change)
    -StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change)
    -StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change)
    -MovementLabel=Label of movement
    -DateMovement=Date of movement
    +StockMovementRecorded=Movimentos de estoque registrados
    +RuleForStockAvailability=Regras sobre requisitos de estoque
    +StockMustBeEnoughForInvoice=O nível de estoque deve ser suficiente para adicionar produto / serviço à fatura (a verificação é feita no estoque real atual ao adicionar uma linha na fatura, qualquer que seja a regra para a modificação automática de estoque)
    +StockMustBeEnoughForOrder=O nível de estoque deve ser suficiente para adicionar produto / serviço à ordem (a verificação é feita no estoque real atual ao adicionar uma linha à ordem, qualquer que seja a regra para a troca automática de estoque)
    +StockMustBeEnoughForShipment= O nível de estoque deve ser suficiente para adicionar produto / serviço ao embarque (a verificação é feita no estoque real atual ao adicionar uma linha ao embarque, qualquer que seja a regra para a troca automática de estoque)
    +MovementLabel=Rótulo de movimento
    +TypeMovement=Tipo de movimento
    +DateMovement=Data de movimento
     InventoryCode=Movimento ou código do inventário
    -IsInPackage=Contained into package
    +IsInPackage=Contido no pacote
     WarehouseAllowNegativeTransfer=O stock pode ser negativo
    -qtyToTranferIsNotEnough=You don't have enough stock from your source warehouse and your setup does not allow negative stocks.
    +qtyToTranferIsNotEnough=Você não tem estoque suficiente do seu depósito de origem e sua configuração não permite estoques negativos.
     ShowWarehouse=Mostrar armazém
    -MovementCorrectStock=Stock correction for product %s
    -MovementTransferStock=Stock transfer of product %s into another warehouse
    -InventoryCodeShort=Inv./Mov. code
    -NoPendingReceptionOnSupplierOrder=No pending reception due to open supplier order
    -ThisSerialAlreadyExistWithDifferentDate=This lot/serial number (<strong>%s</strong>) already exists but with different eatby or sellby date (found <strong>%s</strong> but you enter <strong>%s</strong>).
    -OpenAll=Open for all actions
    -OpenInternal=Open only for internal actions
    -UseDispatchStatus=Use a dispatch status (approve/refuse) for product lines on supplier order reception
    -OptionMULTIPRICESIsOn=Option "several prices per segment" is on. It means a product has several selling price so value for sell can't be calculated
    -ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock correctly created
    -ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated
    -ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted
    -AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock
    -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product
    -InventoryDate=Inventory date
    -NewInventory=New inventory
    -inventorySetup = Inventory Setup
    -inventoryCreatePermission=Create new inventory
    -inventoryReadPermission=View inventories
    -inventoryWritePermission=Update inventories
    +MovementCorrectStock=Correção de estoque para o produto %s
    +MovementTransferStock=Transferência de estoque do produto %s para outro depósito
    +InventoryCodeShort=Inv./Mov. código
    +NoPendingReceptionOnSupplierOrder=Não há recepção pendente devido a pedido de fornecedor aberto
    +ThisSerialAlreadyExistWithDifferentDate=Este lote / número de série (<strong> %s </ strong>) já existe, mas com data diferente de eatby ou sellby (encontrado <strong> %s </ strong>, mas você insere <strong> %s </ strong>).
    +OpenAll=Aberto para todas as ações
    +OpenInternal=Aberto somente para ações internas
    +UseDispatchStatus=Usar um status de despacho (aprovar / recusar) para linhas de produtos na recepção de pedidos do fornecedor
    +OptionMULTIPRICESIsOn=A opção "vários preços por segmento" está ativada. Isso significa que um produto tem vários preços de venda, portanto, o valor para venda não pode ser calculado
    +ProductStockWarehouseCreated=Limite de estoque para estoque ideal de alerta e desejado criado corretamente
    +ProductStockWarehouseUpdated=Limite de estoque para estoque ótimo de alerta e desejado atualizado corretamente
    +ProductStockWarehouseDeleted=Limite de estoque para alerta e estoque ideal desejado corretamente excluídos
    +AddNewProductStockWarehouse=Definir novo limite para alerta e estoque ideal desejado
    +AddStockLocationLine=Diminuir quantidade, em seguida, clique para adicionar outro armazém para este produto
    +InventoryDate=Data de Inventário
    +NewInventory=Novo inventário
    +inventorySetup = Configuração de Inventário
    +inventoryCreatePermission=Criar novo inventário
    +inventoryReadPermission=Visualizar inventários
    +inventoryWritePermission=Atualizar inventários
     inventoryValidatePermission=Validar inventário
    -inventoryTitle=Inventory
    -inventoryListTitle=Inventories
    -inventoryListEmpty=No inventory in progress
    -inventoryCreateDelete=Create/Delete inventory
    -inventoryCreate=Create new
    +inventoryTitle=Inventário
    +inventoryListTitle=Os inventários
    +inventoryListEmpty=Nenhum inventário em andamento
    +inventoryCreateDelete=Criar / Excluir inventário
    +inventoryCreate=Crie um novo
     inventoryEdit=Editar
     inventoryValidate=Validado
     inventoryDraft=Em Serviço
    -inventorySelectWarehouse=Warehouse choice
    +inventorySelectWarehouse=Escolha do armazém
     inventoryConfirmCreate=Criar
    -inventoryOfWarehouse=Inventory for warehouse : %s
    -inventoryErrorQtyAdd=Error : one quantity is leaser than zero
    -inventoryMvtStock=By inventory
    -inventoryWarningProductAlreadyExists=This product is already into list
    +inventoryOfWarehouse=Inventário para depósito: %s
    +inventoryErrorQtyAdd=Erro: uma quantidade é menor que zero
    +inventoryMvtStock=Por inventário
    +inventoryWarningProductAlreadyExists=Este produto já está na lista
     SelectCategory=Filtro por categoría
    -SelectFournisseur=Supplier filter
    -inventoryOnDate=Inventory
    -INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory
    -INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found
    -INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock movement have date of inventory
    -inventoryChangePMPPermission=Allow to change PMP value for a product
    -ColumnNewPMP=New unit PMP
    -OnlyProdsInStock=Do not add product without stock
    -TheoricalQty=Theorique qty
    -TheoricalValue=Theorique qty
    -LastPA=Last BP
    -CurrentPA=Curent BP
    -RealQty=Real Qty
    -RealValue=Real Value
    -RegulatedQty=Regulated Qty
    -AddInventoryProduct=Add product to inventory
    +SelectFournisseur=Filtro de fornecedores
    +inventoryOnDate=Inventário
    +INVENTORY_DISABLE_VIRTUAL=Permitir não desmontar produto filho de um kit no inventário
    +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use o preço de compra se não for possível encontrar o último preço de compra
    +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Movimento de estoque tem data de inventário
    +inventoryChangePMPPermission=Permitir alterar o valor do PMP para um produto
    +ColumnNewPMP=Nova unidade PMP
    +OnlyProdsInStock=Não adicione produto sem estoque
    +TheoricalQty=Teorique qty
    +TheoricalValue=Teorique qty
    +LastPA=Último BP
    +CurrentPA=PB de Curadoria
    +RealQty=Qtd Real
    +RealValue=Valor real
    +RegulatedQty=Quantidade Registada
    +AddInventoryProduct=Adicionar produto ao inventário
     AddProduct=Adicionar
    -ApplyPMP=Apply PMP
    -FlushInventory=Flush inventory
    -ConfirmFlushInventory=Do you confirm this action ?
    -InventoryFlushed=Inventory flushed
    -ExitEditMode=Exit edition
    +ApplyPMP=Aplicar PMP
    +FlushInventory=Inventário nivelado
    +ConfirmFlushInventory=Você confirma esta ação?
    +InventoryFlushed=Inventário lavado
    +ExitEditMode=Edição de saída
     inventoryDeleteLine=Apagar a linha
    -RegulateStock=Regulate Stock
    +RegulateStock=Regular estoque
     ListInventory=Lista
    -StockSupportServices=Stock management support services
    -StockSupportServicesDesc=By default, you can stock only product with type "product". If on, and if module service is on, you can also stock a product with type "service"
    -ReceiveProducts=Receive items
    +StockSupportServices=Gestão de stocks suporta serviços
    +StockSupportServicesDesc=Por padrão, você pode estocar somente produtos com o tipo "produto". Se ativado, e se o serviço de módulo estiver ativado, também é possível estocar um produto com o tipo "serviço"
    +ReceiveProducts=Receber itens
    +StockIncreaseAfterCorrectTransfer=Aumentar por correção / transferência
    +StockDecreaseAfterCorrectTransfer=Diminuir pela correção / transferência
    +StockIncrease=Aumento de estoque
    +StockDecrease=Redução de estoque
    diff --git a/htdocs/langs/pt_PT/stripe.lang b/htdocs/langs/pt_PT/stripe.lang
    index d94cf0d0e4e..9600d2dd78f 100644
    --- a/htdocs/langs/pt_PT/stripe.lang
    +++ b/htdocs/langs/pt_PT/stripe.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - stripe
     StripeSetup=Configurar módulo de Stripe
    -StripeDesc=Module to offer an online payment page accepting payments with Credit/Debit card via <a href="http://www.stripe.com" target="_blank">Stripe</a>. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +StripeDesc=Módulo para oferecer uma página de pagamento on-line que aceita pagamentos com cartão de crédito / débito via <a href="http://www.stripe.com" target="_blank"> Listra </a>. Isso pode ser usado para permitir que seus clientes façam pagamentos gratuitos ou para um pagamento em um determinado objeto Dolibarr (fatura, ordem, ...)
     StripeOrCBDoPayment=Pagar com cartão de crédito ou Stripe
     FollowingUrlAreAvailableToMakePayments=As seguintes URL estão disponiveis para permitir a um cliente efectuar um pagamento
     PaymentForm=Forma de pagamento
    -WelcomeOnPaymentPage=Bem-vindo aos nossos serviços de pagamento online
    +WelcomeOnPaymentPage=Bem-vindo ao nosso serviço de pagamento online
     ThisScreenAllowsYouToPay=Esta tela permite que você faça o seu pagamento online destinado a %s.
     ThisIsInformationOnPayment=Aqui estão as informações de pagamento para fazer
     ToComplete=A completar
    @@ -23,43 +23,42 @@ ToOfferALinkForOnlinePaymentOnFreeAmount=URL que fornece pagamento on-line %s in
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL para oferecer uma interface on-line %s pagamento de uma subscrição de membro
     YouCanAddTagOnUrl=Você também pode adicionar o parâmetro url <b>&tag=<i>value</i></b>  para o endereço (exigida apenas para o pagamento livre) para ver o seu código próprio, observação do pagamento.
     SetupStripeToHavePaymentCreatedAutomatically=Configure o seu Stripe através do URL <b>%s</b> para que tenha os pagamentos criados automaticamente quando estes forem validades pelo Stripe.
    -YourPaymentHasBeenRecorded=Esta página confirma que o pagamento tenha sido gravada. Obrigado.
    -YourPaymentHasNotBeenRecorded=Você o pagamento não tenha sido gravada e transação foi cancelada. Obrigado.
     AccountParameter=Conta parâmetros
     UsageParameter=Parâmetros de uso
     InformationToFindParameters=Ajuda para encontrar informações de sua conta %s
    -STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment
    +STRIPE_CGI_URL_V2=Módulo Url of Stripe CGI para pagamento
     VendorName=Nome do fornecedor
     CSSUrlForPaymentForm=CSS url folha de estilo para forma de pagamento
     NewStripePaymentReceived=Novo pagamento Stripe recebido
     NewStripePaymentFailed=Nova tentativa de pagamento Stripo, mas falhou
     STRIPE_TEST_SECRET_KEY=Chave de teste secreta
     STRIPE_TEST_PUBLISHABLE_KEY=Chave de teste publicável
    -STRIPE_TEST_WEBHOOK_KEY=Webhook test key
    -STRIPE_LIVE_SECRET_KEY=Secret live key
    -STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key
    -STRIPE_LIVE_WEBHOOK_KEY=Webhook live key
    -ONLINE_PAYMENT_WAREHOUSE=Stock to use for stock decrease when online payment is done<br>(TODO When option to decrease stock is done on an action on invoice and the online payment generate itself the invoice ?)
    -StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode)
    -StripeImportPayment=Import Stripe payments
    -ExampleOfTestCreditCard=Example of credit card for test: %s (valid), %s (error CVC), %s (expired), %s (charge fails)
    -StripeGateways=Stripe gateways
    -OAUTH_STRIPE_TEST_ID=Stripe Connect Client ID (ca_...)
    -OAUTH_STRIPE_LIVE_ID=Stripe Connect Client ID (ca_...)
    -BankAccountForBankTransfer=Bank account for fund payouts
    -StripeAccount=Stripe account
    -StripeChargeList=List of Stripe charges
    -StripeTransactionList=List of Stripe transactions
    -StripeCustomerId=Stripe customer id
    -StripePaymentModes=Stripe payment modes
    -LocalID=Local ID
    -StripeID=Stripe ID
    -NameOnCard=Name on card
    -CardNumber=Card Number
    -ExpiryDate=Expiry Date
    +STRIPE_TEST_WEBHOOK_KEY=Chave de teste Webhook
    +STRIPE_LIVE_SECRET_KEY=Chave viva secreta
    +STRIPE_LIVE_PUBLISHABLE_KEY=Chave ao vivo publicável
    +STRIPE_LIVE_WEBHOOK_KEY=Chave ao vivo do Webhook
    +ONLINE_PAYMENT_WAREHOUSE=Estoque a ser usado para redução de estoque quando o pagamento on-line é feito <br> (TODO Quando a opção para diminuir o estoque é feita em uma ação na fatura e o pagamento on-line gera a fatura em si?)
    +StripeLiveEnabled=Stripe live enabled (caso contrário, modo de teste / sandbox)
    +StripeImportPayment=Importar pagamentos de tarja
    +ExampleOfTestCreditCard=Exemplo de cartão de crédito para teste: %s (válido), %s (erro CVC), %s (expirado), %s (falha de carga)
    +StripeGateways=Gateways listra
    +OAUTH_STRIPE_TEST_ID=ID do cliente do Stripe Connect (ca _...)
    +OAUTH_STRIPE_LIVE_ID=ID do cliente do Stripe Connect (ca _...)
    +BankAccountForBankTransfer=Conta bancária para pagamentos de fundos
    +StripeAccount=Conta da listra
    +StripeChargeList=Lista de cobranças do Stripe
    +StripeTransactionList=Lista de transações de faixa
    +StripeCustomerId=ID do cliente de faixa
    +StripePaymentModes=Modos de pagamento tarja
    +LocalID=Id. Local
    +StripeID=ID da faixa
    +NameOnCard=Nome no cartão
    +CardNumber=Número do Cartão
    +ExpiryDate=Data de Expiração
     CVN=CVN
    -DeleteACard=Delete Card
    -ConfirmDeleteCard=Are you sure you want to delete this Credit or Debit card?
    +DeleteACard=Excluir cartão
    +ConfirmDeleteCard=Tem certeza de que deseja excluir este cartão de crédito ou débito?
     CreateCustomerOnStripe=Criar cliente no Stripe
     CreateCardOnStripe=Criar ficha no Stripe
    -ShowInStripe=Show in Stripe
    +ShowInStripe=Mostrar na listra
    +StripeUserAccountForActions=Conta de usuário para usar para alguns e-mails de notificação de eventos Stripe (pagamentos de faixa)
    diff --git a/htdocs/langs/pt_PT/website.lang b/htdocs/langs/pt_PT/website.lang
    index 974fa46bc11..fa0a0e80f38 100644
    --- a/htdocs/langs/pt_PT/website.lang
    +++ b/htdocs/langs/pt_PT/website.lang
    @@ -1,84 +1,95 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Código
    -WebsiteSetupDesc=Crie aqui as entradas e o número de diferentes sites da Web que precisar. Depois vá ao menu de Sites da Web para editá-los.
    +WebsiteSetupDesc=Crie aqui os sites que você deseja usar. Em seguida, vá para o menu Websites para editá-los.
     DeleteWebsite=Eliminar site da Web
    -ConfirmDeleteWebsite=Tem a certeza que deseja eliminar este site da Web. Também irão ser removidos todas as suas páginas e conteúdo.
    +ConfirmDeleteWebsite=Tem certeza de que deseja excluir este site? Todas as suas páginas e conteúdo também serão removidos.
     WEBSITE_TYPE_CONTAINER=Tipo de página / recipiente
     WEBSITE_PAGE_EXAMPLE=Página da Web para utilizar como exemplo
     WEBSITE_PAGENAME=Nome/pseudonimo da página
    -WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALT=Nomes / aliases de páginas alternativos
    +WEBSITE_ALIASALTDesc=Use aqui a lista de outros nomes / aliases para que a página também possa ser acessada usando esses outros nomes / aliases (por exemplo, o nome antigo depois de renomear o alias para manter o backlink no trabalho antigo de link / nome). A sintaxe é: <br> alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL do ficheiro CSS externo
    -WEBSITE_CSS_INLINE=CSS file content (common to all pages)
    -WEBSITE_JS_INLINE=Javascript file content (common to all pages)
    -WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
    -WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Ficheiro .htaccess de site da Web
    -HtmlHeaderPage=HTML header (specific to this page only)
    -PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
    -EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
    +WEBSITE_CSS_INLINE=Conteúdo do arquivo CSS (comum a todas as páginas)
    +WEBSITE_JS_INLINE=Conteúdo do arquivo Javascript (comum a todas as páginas)
    +WEBSITE_HTML_HEADER=Inclusão na parte inferior do cabeçalho HTML (comum a todas as páginas)
    +WEBSITE_ROBOT=Arquivo Robot (robots.txt)
    +WEBSITE_HTACCESS=Website .htaccess file
    +HtmlHeaderPage=Cabeçalho HTML (especificar apenas para  esta página)
    +PageNameAliasHelp=Nome ou alias da página. <br> Este alias também é usado para forjar uma URL SEO quando o site é executado a partir de um host virtual de um servidor Web (como Apacke, Nginx, ...). Use o botão "<strong> %s </ strong>" para editar este alias.
    +EditTheWebSiteForACommonHeader=Nota: Se você quiser definir um cabeçalho personalizado para todas as páginas, edite o cabeçalho no nível do site em vez de na página / container.
     MediaFiles=Bliblioteca de Multimedia
    -EditCss=Editar Estilo/CSS ou cabeçalho de HTML
    +EditCss=Editar propriedades do site
     EditMenu=Editar Menu
    -EditMedias=Edit medias
    -EditPageMeta=Editar Metadados
    +EditMedias=Editar mídias
    +EditPageMeta=Editar propriedades de página / contêiner
    +EditInLine=Editar em linha
     AddWebsite=Adicionar site da Web
     Webpage=Página/recipiente da Web
     AddPage=Adicionar página/recipiente
     HomePage=Página Inicial
     PageContainer=Página/recipiente
    -PreviewOfSiteNotYetAvailable=A pré-visualização do seu site da Web <strong>%s</strong> ainda mão está disponível. Deve adicionar primeiro uma página.
    -RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +PreviewOfSiteNotYetAvailable=Pré-visualização do seu site <strong> %s </ strong> ainda não disponível. Você deve primeiro '<strong> Importar um modelo de site completo </ strong>' ou apenas '<strong> Adicionar uma página / contêiner </ strong>'.
    +RequestedPageHasNoContentYet=Página solicitada com o ID %s ainda não tem conteúdo, ou o arquivo de cache .tpl.php foi removido. Edite o conteúdo da página para resolver isso.
    +SiteDeleted=Web site '%s' excluído
     PageContent=Página / Recipiente
    -PageDeleted=Page/Contenair '%s' of website %s deleted
    -PageAdded=Page/Contenair '%s' added
    +PageDeleted=Página / Contenair '%s' do site %s eliminado
    +PageAdded=Page / Contenair '%s' adicionado
     ViewSiteInNewTab=Ver site no novo separador
     ViewPageInNewTab=Ver página no novo separador
    -SetAsHomePage=Definir como página Inicial
    +SetAsHomePage=Definir como página de 'Início'
     RealURL=URL Real
    -ViewWebsiteInProduction=Ver site no utilizando URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    -CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
    +ViewWebsiteInProduction=Ver site da Web utilizando URLs de início
    +SetHereVirtualHost=<u> Usar com Apache / NGinx /...</ u> <br> Se você pode criar, no seu servidor web (Apache, Nginx, ...), um Host Virtual dedicado com PHP habilitado e um diretório Root no <br> <strong> %s </ strong> <br> Em seguida, insira aqui o nome do host virtual que você criou, para que a visualização também possa ser feita usando esse acesso ao servidor Web dedicado, em vez de usar apenas o servidor Dolibarr.
    +YouCanAlsoTestWithPHPS=<u> Usar com servidor embutido em PHP </ u> <br> No ambiente de desenvolvimento, você pode preferir testar o site com o servidor da Web incorporado em PHP (requer PHP 5.5) executando <strong> php -S 0.0. 0,0: 8080 -t %s </ strong>
    +CheckVirtualHostPerms=Verifique também se o host virtual tem permissão <strong> %s </ strong> em arquivos para o <strong> %s </ strong>
     ReadPerm=Ler
    -WritePerm=Write
    -PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
    -PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
    -VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
    -NoPageYet=No pages yet
    -SyntaxHelp=Help on specific syntax tips
    -YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    -ClonePage=Clone page/container
    -CloneSite=Clone site
    -SiteAdded=Web site added
    -ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
    -PageIsANewTranslation=The new page is a translation of the current page ?
    -LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
    -ParentPageId=Parent page ID
    -WebsiteId=Website ID
    -CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    -FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    -IDOfPage=Id of page
    -Banner=Banner
    -BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Contas do website
    -AddWebsiteAccount=Create web site account
    -BackToListOfThirdParty=Back to list for Third Party
    -DisableSiteFirst=Disable website first
    -MyContainerTitle=My web site title
    -AnotherContainer=Another container
    -WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
    -WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
    -YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    -OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
    -GrabImagesInto=Grab also images found into css and page.
    -ImagesShouldBeSavedInto=Images should be saved into directory
    -WebsiteRootOfImages=Root directory for website images
    -SubdirOfPage=Sub-directory dedicated to page
    -AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
    -CorporateHomePage=Corporate Home page
    -EmptyPage=Empty page
    +WritePerm=Escrever
    +PreviewSiteServedByWebServer=<u> Pré-visualize %s num novo separador. </ u> <br> <br> O %s será servido por um servidor Web externo (como Apache, Nginx, IIS). Você deve instalar e configurar este servidor antes de apontar para o diretório: <br> <strong> %s </ strong> <br> URL fornecida pelo servidor externo: <br> <strong> %s </ strong>
    +PreviewSiteServedByDolibarr=<u> Prévia %s em uma nova aba. </ u> <br> <br> O %s será servido pelo servidor Dolibarr para que não seja necessário nenhum servidor web extra (como Apache, Nginx, IIS) para ser instalado. br> O inconveniente é que o URL das páginas não é de fácil utilização e começa com o caminho do seu Dolibarr. <br> URL servida por Dolibarr: <br> <strong> %s </ strong> <br> <br> Use o seu próprio servidor web externo para servir este site, criar um host virtual em seu servidor web que aponte no diretório <br> <strong> %s </ strong> <br> em seguida, digite o nome deste servidor virtual e clique no outro botão de pré-visualização .
    +VirtualHostUrlNotDefined=URL do host virtual servido pelo servidor da web externo não definido
    +NoPageYet=Ainda sem páginas
    +YouCanCreatePageOrImportTemplate=Você pode criar uma nova página ou importar um modelo de site completo
    +SyntaxHelp=Ajuda em dicas de sintaxe específicas
    +YouCanEditHtmlSourceckeditor=Você pode editar o código-fonte HTML usando o botão "Fonte" no editor.
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +ClonePage=Página / contêiner clone
    +CloneSite=Site clone
    +SiteAdded=Website added
    +ConfirmClonePage=Por favor digite o código / alias da nova página e se é uma tradução da página clonada.
    +PageIsANewTranslation=A nova página é uma tradução da página atual?
    +LanguageMustNotBeSameThanClonedPage=Você clona uma página como uma tradução. O idioma da nova página deve ser diferente do idioma da página de origem.
    +ParentPageId=ID da página principal
    +WebsiteId=ID do site
    +CreateByFetchingExternalPage=Crie uma página / contêiner buscando página de um URL externo ...
    +OrEnterPageInfoManually=Ou crie uma página do zero ou de um modelo de página ...
    +FetchAndCreate=Buscar e criar
    +ExportSite=Site de exportação
    +ImportSite=Importar modelo de site
    +IDOfPage=Id da página
    +Banner=Bandeira
    +BlogPost=Postagem no blog
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
    +AddWebsiteAccount=Crie uma conta do site
    +BackToListOfThirdParty=Voltar para lista de terceiros
    +DisableSiteFirst=Desativar primeiro site
    +MyContainerTitle=Meu título do site
    +AnotherContainer=Outro recipiente
    +WEBSITE_USE_WEBSITE_ACCOUNTS=Ativar a tabela de contas do site
    +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Ativar a tabela para armazenar contas do site (login / pass) para cada site / terceiro
    +YouMustDefineTheHomePage=Primeiro deve definir a página de Início predefinida
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
    +OnlyEditionOfSourceForGrabbedContent=Somente edição de fonte HTML é possível quando o conteúdo foi obtido de um site externo
    +GrabImagesInto=Pegue também imagens encontradas em css e página.
    +ImagesShouldBeSavedInto=As imagens devem ser salvas no diretório
    +WebsiteRootOfImages=Diretório raiz para imagens de sites
    +SubdirOfPage=Subdiretório dedicado à página
    +AliasPageAlreadyExists=A página de alias <strong> %s </ strong> já existe
    +CorporateHomePage=Página de Início da Empresa
    +EmptyPage=Página vazia
    +ExternalURLMustStartWithHttp=O URL externo deve começar com http: // ou https: //
    +ZipOfWebsitePackageToImport=Arquivo zip do pacote do site
    +ShowSubcontainers=Incluir conteúdo dinâmico
    +InternalURLOfPage=URL interno da página
    +ThisPageIsTranslationOf=Esta página / container é tradução de
    +ThisPageHasTranslationPages=Esta página / contêiner tem tradução
    diff --git a/htdocs/langs/pt_PT/withdrawals.lang b/htdocs/langs/pt_PT/withdrawals.lang
    index 4946c432c0f..2b25184b8ad 100644
    --- a/htdocs/langs/pt_PT/withdrawals.lang
    +++ b/htdocs/langs/pt_PT/withdrawals.lang
    @@ -7,14 +7,14 @@ NewStandingOrder=Nova ordem de pagamento de débito direto
     StandingOrderToProcess=Para processar
     WithdrawalsReceipts=Encomenda de débito direto
     WithdrawalReceipt=Encomenda de Débito Direto
    -LastWithdrawalReceipts=Latest %s direct debit files
    +LastWithdrawalReceipts=Últimos arquivos de débito direto %s
     WithdrawalsLines=Linhas de ordem de débito direto
    -RequestStandingOrderToTreat=Request for direct debit payment order to process
    -RequestStandingOrderTreated=Request for direct debit payment order processed
    -NotPossibleForThisStatusOfWithdrawReceiptORLine=Not yet possible. Withdraw status must be set to 'credited' before declaring reject on specific lines.
    -NbOfInvoiceToWithdraw=Nb. of qualified invoice with waiting direct debit order
    -NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment orders having defined bank account information
    -InvoiceWaitingWithdraw=Invoice waiting for direct debit
    +RequestStandingOrderToTreat=Pedido para ordem de pagamento por débito direto a processar
    +RequestStandingOrderTreated=Pedido de ordem de pagamento por débito direto processado
    +NotPossibleForThisStatusOfWithdrawReceiptORLine=Ainda não é possível. Retirar status deve ser definido como 'creditado' antes de declarar rejeitar em linhas específicas.
    +NbOfInvoiceToWithdraw=N.º de fatura qualificada com pedido de débito direto em espera
    +NbOfInvoiceToWithdrawWithInfo=Nº de fatura do cliente com ordens de pagamento por débito direto com informações definidas sobre a conta bancária
    +InvoiceWaitingWithdraw=Fatura a aguardar por débito direto
     AmountToWithdraw=Quantidade a Levantar
     WithdrawsRefused=Débito direto recusado
     NoInvoiceToWithdraw=Não existe nenhuma fatura à espera com 'Pedidos de débito direto' abertos. Vá ao separador '%s' na ficha da fatura para fazer um pedido.
    @@ -22,13 +22,13 @@ ResponsibleUser=Utilizador Responsável dos Débitos Directos
     WithdrawalsSetup=Configurar pagamento de débito direto
     WithdrawStatistics=Estatísticas de pagamento de débito direto
     WithdrawRejectStatistics=Estatísticas de pagamento de débito direto rejeitado
    -LastWithdrawalReceipt=Latest %s direct debit receipts
    -MakeWithdrawRequest=Make a direct debit payment request
    -WithdrawRequestsDone=%s direct debit payment requests recorded
    +LastWithdrawalReceipt=Últimos recibos de débito direto %s
    +MakeWithdrawRequest=Efetuar um pedido de pagamento por débito direto
    +WithdrawRequestsDone=Pedidos de pagamento por débito direto %s registrados
     ThirdPartyBankCode=Código Banco do Terceiro
    -NoInvoiceCouldBeWithdrawed=No invoice withdrawed with success. Check that invoices are on companies with a valid default BAN and that BAN has a RUM with mode <strong>%s</strong>.
    +NoInvoiceCouldBeWithdrawed=Nenhuma fatura debitada com sucesso. Verifique se as faturas estão em empresas com um IBAN válido e se o IBAN tem uma UMR (Unique Mandate Reference) com o modo <strong> %s </ strong>.
     ClassCredited=Classificar como creditado
    -ClassCreditedConfirm=Está seguro de querer classificar este débito directo como realizado sobre a sua conta bancaria?
    +ClassCreditedConfirm=Tem a certeza que quer classificar este débito direto como creditado na sua conta bancária?
     TransData=Data de Envio
     TransMetod=Método de transmissão
     Send=Enviar
    @@ -40,7 +40,7 @@ RefusedData=Data de rejeição
     RefusedReason=Motivo da rejeição
     RefusedInvoicing=Faturação da rejeição
     NoInvoiceRefused=Não cobrar a rejeição
    -InvoiceRefused=Invoice refused (Charge the rejection to customer)
    +InvoiceRefused=Fatura recusada (cobrar a rejeição ao cliente)
     StatusDebitCredit=Estado do débito/crédito
     StatusWaiting=Em espera
     StatusTrans=Enviado
    @@ -55,9 +55,9 @@ StatusMotif5=RIB inutilizável
     StatusMotif6=Conta sem saldo
     StatusMotif7=Decisão Judicial
     StatusMotif8=Outro motivo
    -CreateForSepaFRST=Create direct debit file (SEPA FRST)
    -CreateForSepaRCUR=Create direct debit file (SEPA RCUR)
    -CreateAll=Create direct debit file (all)
    +CreateForSepaFRST=Criar arquivo de débito direto (SEPA FRST)
    +CreateForSepaRCUR=Criar arquivo de débito direto (SEPA RCUR)
    +CreateAll=Criar arquivo de débito direto (todos)
     CreateGuichet=Apenas escritório
     CreateBanque=Apenas banco
     OrderWaiting=À espera de tratamento
    @@ -66,49 +66,49 @@ NotifyCredit=levantamento de crédito
     NumeroNationalEmetter=Número Nacional de Transmissor
     WithBankUsingRIB=Para contas bancárias usando RIB
     WithBankUsingBANBIC=Para contas bancárias usando IBAN / BIC / SWIFT
    -BankToReceiveWithdraw=Bank account to receive direct debit
    +BankToReceiveWithdraw=Conta bancária para receber débito direto
     CreditDate=Crédito em
    -WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported)
    +WithdrawalFileNotCapable=Não é possível gerar o arquivo de recibo de retirada para o seu país %s (Seu país não é suportado)
     ShowWithdraw=Mostrar levantamento
     IfInvoiceNeedOnWithdrawPaymentWontBeClosed=No entanto, se a fatura tiver pelo menos um pagamento ainda não processado, não será definida como paga para permitir o gestão do pagamento anterior.
    -DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Direct Debit orders to manage the direct debit payment order. When payment order is closed, payment on invoice will be automatically recorded, and invoice closed if remainder to pay is null.
    +DoStandingOrdersBeforePayments=Essa guia permite que você solicite uma ordem de pagamento por débito direto. Uma vez feito, entre no menu Banco-> Débito Direto para administrar a ordem de pagamento por débito direto. Quando a ordem de pagamento é encerrada, o pagamento na fatura será registrado automaticamente e a fatura será encerrada se o restante a pagar for nulo.
     WithdrawalFile=arquivo retirado
     SetToStatusSent=Definir o estado como "Ficheiro Enviado"
    -ThisWillAlsoAddPaymentOnInvoice=This will also record payments to invoices and will classify them as "Paid" if remain to pay is null
    -StatisticsByLineStatus=Statistics by status of lines
    +ThisWillAlsoAddPaymentOnInvoice=Isso também registrará os pagamentos para as faturas e os classificará como "Pago" se o restante a pagar for nulo
    +StatisticsByLineStatus=Estatísticas por status de linhas
     RUM=UMR
    -RUMLong=Unique Mandate Reference
    -RUMWillBeGenerated=If empty, UMR number will be generated once bank account information are saved
    -WithdrawMode=Direct debit mode (FRST or RECUR)
    -WithdrawRequestAmount=Amount of Direct debit request:
    -WithdrawRequestErrorNilAmount=Unable to create direct debit request for empty amount.
    -SepaMandate=SEPA Direct Debit Mandate
    -SepaMandateShort=SEPA Mandate
    -PleaseReturnMandate=Please return this mandate form by email to %s or by mail to
    -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank.
    -CreditorIdentifier=Creditor Identifier
    -CreditorName=Creditor’s Name
    -SEPAFillForm=(B) Please complete all the fields marked *
    +RUMLong=Referência de mandato exclusivo
    +RUMWillBeGenerated=Se estiver vazio, o número de UMR será gerado assim que as informações da conta bancária forem salvas
    +WithdrawMode=Modo de débito direto (FRST ou RECUR)
    +WithdrawRequestAmount=Quantidade de solicitação de débito direto:
    +WithdrawRequestErrorNilAmount=Não é possível criar um pedido de débito direto para o valor vazio.
    +SepaMandate=Mandato de Débito Direto SEPA
    +SepaMandateShort=Mandato SEPA
    +PleaseReturnMandate=Por favor, devolva este formulário de mandato por e-mail para %s ou por e-mail para
    +SEPALegalText=Ao assinar este formulário de mandato, você autoriza (A) %s a enviar instruções ao seu banco para debitar sua conta e (B) seu banco a debitar sua conta de acordo com as instruções de %s. Como parte de seus direitos, você tem direito a um reembolso de seu banco, de acordo com os termos e condições de seu contrato com seu banco. Um reembolso deve ser solicitado no prazo de oito semanas a partir da data em que sua conta foi debitada. Seus direitos em relação ao mandato acima são explicados em uma declaração que você pode obter do seu banco.
    +CreditorIdentifier=Identificador do Credor
    +CreditorName=Nome do Credor
    +SEPAFillForm=(B) Por favor, preencha todos os campos marcados com *
     SEPAFormYourName=O seu nome
    -SEPAFormYourBAN=Your Bank Account Name (IBAN)
    -SEPAFormYourBIC=Your Bank Identifier Code (BIC)
    -SEPAFrstOrRecur=Type of payment
    -ModeRECUR=Reccurent payment
    -ModeFRST=One-off payment
    -PleaseCheckOne=Please check one only
    -DirectDebitOrderCreated=Direct debit order %s created
    -AmountRequested=Amount requested
    +SEPAFormYourBAN=O nome da sua conta bancária (IBAN)
    +SEPAFormYourBIC=Seu código de identificação bancária (BIC)
    +SEPAFrstOrRecur=Tipo de pagamento
    +ModeRECUR=Pagamento Recorrente
    +ModeFRST=Pagamento único
    +PleaseCheckOne=Por favor, marque apenas um
    +DirectDebitOrderCreated=Ordem de débito direto %s criada
    +AmountRequested=Quantidade solicitada
     SEPARCUR=SEPA CUR
     SEPAFRST=SEPA FRST
    -ExecutionDate=Execution date
    +ExecutionDate=Data de execução
     CreateForSepa=Criar ficheiro de débito direto
     
     ### Notifications
    -InfoCreditSubject=Payment of direct debit payment order %s by the bank
    -InfoCreditMessage=The direct debit payment order %s has been paid by the bank<br>Data of payment: %s
    -InfoTransSubject=Transmission of direct debit payment order %s to bank
    -InfoTransMessage=The direct debit payment order %s has been sent to bank by %s %s.<br><br>
    +InfoCreditSubject=Pagamento da ordem de pagamento de débito direto %s pelo banco
    +InfoCreditMessage=A ordem de pagamento por débito directo %s foi paga pelo banco <br> Dados do pagamento: %s
    +InfoTransSubject=Transmissão da ordem de pagamento de débito direto %s para o banco
    +InfoTransMessage=A ordem de pagamento por débito directo %s foi enviada para o banco por %s %s. <br> <br>
     InfoTransData=Valor: %s <br> Metode: %s <br> Data: %s
    -InfoRejectSubject=Direct debit payment order refused
    -InfoRejectMessage=Hello,<br><br>the direct debit payment order of invoice %s related to the company %s, with an amount of %s has been refused by the bank.<br><br>--<br>%s
    +InfoRejectSubject=Pedido de pagamento por débito direto recusado
    +InfoRejectMessage=Olá, <br> <br> a ordem de pagamento de débito directo da factura  %s relacionada com a empresa %s, com uma quantidade de %s foi recusada pelo banco. <br> <br> <br> <br>%s
     ModeWarning=Opção para o modo real não foi definido, nós paramos depois desta simulação
    diff --git a/htdocs/langs/pt_PT/workflow.lang b/htdocs/langs/pt_PT/workflow.lang
    index 2205f9d76fa..e2fe241392b 100644
    --- a/htdocs/langs/pt_PT/workflow.lang
    +++ b/htdocs/langs/pt_PT/workflow.lang
    @@ -1,20 +1,20 @@
     # Dolibarr language file - Source file is en_US - workflow
     WorkflowSetup=Configurar módulo de fluxo de frabalho
    -WorkflowDesc=Este módulo foi criado para modificar o comportamento das ações automáticas na aplicação. Por predefinição, o fluxo de trabalho está aberto (pode fazer as coisas na ordem que desejar). Pode ativar as ações automáticas em que está interessado.
    +WorkflowDesc=Este módulo fornece algumas ações automáticas. Por padrão, o fluxo de trabalho é aberto (você pode fazer as coisas na ordem desejada), mas aqui você pode ativar algumas ações automáticas.
     ThereIsNoWorkflowToModify=Não há modificações de fluxo de trabalho disponíveis para os módulos ativados.
     # Autocreate
    -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Criar automaticamente uma encomenda de cliente após a assinatura de um orçamento (a nova encomenda terá o mesmo valor que o orçamento)
    -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal)
    -descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente após a validação de um contrato
    -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order)
    +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Criar automaticamente um pedido do cliente após a assinatura de uma proposta comercial (o novo pedido terá o mesmo valor da proposta)
    +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Criar automaticamente uma fatura do cliente depois que uma proposta comercial for assinada (a nova fatura terá o mesmo valor da proposta)
    +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Criar automaticamente uma fatura a cliente após a validação de um contrato
    +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Criar automaticamente uma fatura do cliente após o fechamento do pedido do cliente (a nova fatura terá o mesmo valor do pedido)
     # Autoclassify customer proposal or order
    -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifique o(s) orçamentos(s) associados como faturados quando uma encomenda de um cliente é classificada como faturada (e se a quantidade da encomenda for igual à quantidade total dos orçamentos assinados associados)
    -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classifique os orçamentos de clientes vinculados como faturados quando a fatura do cliente é validada (e se o valor da fatura for igual ao montante total dos orçamentos, assinados, vinculados)
    -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders)
    -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders)
    -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classifique a encomenda do cliente vinculada como enviada quando uma expedição é validada (e se a quantidade enviada por todas as expedições for idêntica à da encomenda a atualizar)
    +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classificar proposta de origem vinculada como faturada quando o pedido do cliente é definido como faturado (e se o valor do pedido é o mesmo que o valor total da proposta vinculada assinada)
    +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificar a proposta de origem vinculada como faturada quando a fatura do cliente é validada (e se o valor da fatura é o mesmo que o valor total da proposta vinculada assinada)
    +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classificar o pedido do cliente de origem vinculada como faturado quando a fatura do cliente é validada (e se o valor da fatura é o mesmo que o valor total do pedido vinculado)
    +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classificar o pedido do cliente de origem vinculada como faturado quando a fatura do cliente é definida como paga (e se o valor da fatura é o mesmo que o valor total do pedido vinculado)
    +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classificar o pedido do cliente de origem vinculada como enviado quando uma remessa é validada (e se a quantidade enviada por todas as remessas é a mesma que na ordem de atualização)
     # Autoclassify supplier order
    -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source vendor proposal(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked proposals)
    -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source purchase order(s) to billed when vendor invoice is validated (and if amount of the invoice is same than total amount of linked orders)
    +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classificar a proposta do fornecedor de origem vinculada como faturada quando a fatura do fornecedor é validada (e se o valor da fatura é o mesmo que o valor total da proposta vinculada)
    +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classificar o pedido de compra de origem vinculado como faturado quando a fatura do fornecedor é validada (e se o valor da fatura é o mesmo que o valor total do pedido vinculado)
     AutomaticCreation=Criação automática
     AutomaticClassification=Classificação automática
    diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang
    index fd9c282f388..6bc41463feb 100644
    --- a/htdocs/langs/ro_RO/admin.lang
    +++ b/htdocs/langs/ro_RO/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Dezvoltare
     VersionUnknown=Necunoscut
     VersionRecommanded=Recomandat
     FileCheck=Cercetarea integrității fișierelor
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler pentru a salva sesiunile
     SessionSavePath=Storage sesiune localizare
     PurgeSessions=Goleşte sesiunile
     ConfirmPurgeSessions=Chiar vrei să ștergi toate sesiunile? Acest lucru va deconecta fiecare utilizator (cu excepția dvs.).
    -NoSessionListWithThisHandler=Salvaţi sesiunea de manipulare configurat în PHP nu vă permite pentru a lista toate sesiunile de rulare.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Blocare  conexiuni noi
    -ConfirmLockNewSessions=Sunteţi sigur că doriţi să restricţionaţi oricare noău conexiune Dolibarr pentru tine. Numai utilizatorul <b>%s</b> va fi capabil să se conecteze după aceea.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Înlăturaţi blocarea  conexiunii
     YourSession=Sesiuniea dvs
    -Sessions=Sesiune utilizatori
    +Sessions=Users sessions
     WebUserGroup=Web Server utilizator / grup
    -NoSessionFound=PHP pare a nu permite  listarea sesiunilor active. Directorul folosit pentru salvarea sesiunilor <b>(%s)</b> ar putea fi protejat (De exemplu, de permisiunile SO sau de directiva PHP  open_basedir ).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Set caractere  al bazei de date pentru  stocarea datelor
     DBSortingCharset=Set caractereal bazei de date pentru sortarea datelor
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Utilizator extern
     InternalUsers=Utilizatori interni
     ExternalUsers=Utilizatori externi
     GUISetup=Afişare
    -SetupArea=CONFIGURARE
    +SetupArea=Setări
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Formular pentru testarear încărcării de  fişiere (în funcţie de configurare)
     IfModuleEnabled=Notă: Da este folositor numai dacă modul  <b>%s</b> este activat
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Codul nu poate conţine valoarea 0
     DisableJavascript=Dezactivează funcţiile JavaScript si Ajax (Recomandat pentru persoanele oarbe sau browserele text )
     UseSearchToSelectCompanyTooltip= De asemenea, dacă aveți un număr mare de terţi (> 100 000), puteți crește viteza prin setarea constantei COMPANY_DONOTSEARCH_ANYWHERE la 1 la Setup->Other. Căutarea va fi limitată la începutul șirului.
     UseSearchToSelectContactTooltip=De asemenea, dacă aveți un număr mare de terţi (> 100 000), puteți crește viteza prin setarea constantei COMPANY_DONOTSEARCH_ANYWHERE la 1 la Setup->Other. Căutarea va fi limitată la începutul șirului.
    -DelaiedFullListToSelectCompany=Așteptați să apăsați o cheie înainte de a încărca conținutul listei combo a terților (Aceasta poate crește performanța dacă aveți un număr mare de terțe părți, dar este mai puțin convenabil)
    -DelaiedFullListToSelectContact=Așteptați să apăsați o cheie înainte de a încărca conținutul listei combo de contacte (Aceasta poate crește performanța dacă aveți un număr mare de contacte, dar este mai puțin convenabil)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nr caractere pentru a declanşa căutare: %s
     NotAvailableWhenAjaxDisabled=Nu este disponibil, atunci când Ajax cu handicap
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview nu este disponibil
     ThemeCurrentlyActive=Tema activă în prezent
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Datele sunt stocate și returnate de către serverul de baze de date ca și în cazul în care au fost păstrate ca șiruri transmise. Timezone are efect numai atunci când se utilizează funcția UNIX_TIMESTAMP (care nu ar trebui să fie utilizate de către Dolibarr, astfel TZ al bazei de date ar trebui să aibă nici un efect, chiar dacă sa schimbat după ce a fost introduse date).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Spaţiu
     Table=Tabel
     Fields=Câmpuri
    @@ -111,14 +111,14 @@ NotConfigured=Modulul / aplicația nu a fost configurată
     Active=Activ
     SetupShort=Setări
     OtherOptions=Alte opţiuni
    -OtherSetup=Alte Setări
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Separator zecimal
     CurrentValueSeparatorThousand=Separator mii
     Destination=Destinaţii
     IdModule=ID Modul
     IdPermissions=ID Permisiuni
     LanguageBrowserParameter=Parametru %s
    -LocalisationDolibarrParameters=Parametrii Localizare
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Time Zone client (utilizator)
     ClientHour=Client Time(utilizator)
     OSTZ=Time Zone Server OS
    @@ -126,8 +126,8 @@ PHPTZ=Time Zone Server PHP
     DaylingSavingTime=Ora de vară (utilizator)
     CurrentHour=Timp  PHP (server)
     CurrentSessionTimeOut=Sesiunea curentă timeout
    -YouCanEditPHPTZ=Pentru a seta un alt fus orar PHP (nu este necesar), puteți încerca să adăugați un fișier .htaccess cu o linie precum "SetEnv TZ Europe / Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgeturi
     MaxNbOfLinesForBoxes=Număr maxim de linii pentru widgeturi
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignorați erorile de înregistrare duplicat (INSERT IGNOR
     AutoDetectLang=Autodetect (browser limbă)
     FeatureDisabledInDemo=Funcţonalitate dezactivată în demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgeturile sunt componente care prezintă unele informații pe care le puteți adăuga pentru a personaliza unele pagini. Aveți posibilitatea să alegeți între afișarea widget-ului sau nu, selectând pagina țintă și făcând clic pe "Activare" sau făcând clic pe coșul de gunoi pentru a-l dezactiva.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Numai elementele din <a href="%s"> module activate </a> sunt afişate.
    -ModulesDesc=Modulele Dolibarr definesc ce aplicație / caracteristică este activată în software. Unele aplicații / module necesită permisiuni pe care trebuie să le acordați utilizatorilor, după activarea acestora. Faceți clic pe butonul On / Off pentru a activa un modul / aplicație.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Puteți descărca mai multe module de pe site-uri externe de pe Internet ...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Găsiți aplicația / modulele externe
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Nou
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, market place oficial  pentru  module externe Dolibarr ERP / CRM
    -DoliPartnersDesc=Lista companiilor care oferă module sau caracteristici dezvoltate personalizate (Notă: oricine are experiență în programarea PHP poate oferi dezvoltare personalizată pentru un proiect open source)
    -WebSiteDesc=Site-uri web de referință pentru a găsi mai multe module ...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgeturi disponibile
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Nu stoca parole în mod clar în baza de date
     MainDbPasswordFileConfEncrypted=Baza de date parola criptat în conf.php
     InstrucToEncodePass=Pentru a fi parola codificată în dosarul <b>conf.php</b>, înlocuiţi linia  <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Pentru a avea o parolă decodificată în fișierul <b> conf.php </b>, înlocuiți linia <br> <b> $dolibarr_main_db_pass = "cripted:..."; </b> <br> cu <br> <b> $ dolibarr_main_db_pass = "%s"; </br>
    -ProtectAndEncryptPdfFiles=Protecţie a generat pdf (nu recommandd, pauzele de masă PDF Generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protecția unui document PDF îi permite să fie citit și imprimat cu orice browser PDF. Cu toate acestea, editarea și copierea nu mai sunt posibile. Rețineți că utilizarea acestei funcții face  nefunctională construirea unui fișier PDF global .
     Feature=Funcţionalitate
     DolibarrLicense=Licenţa
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=Pentru utilizator sau developer documentaţia (doc, FAQs ...), <br> aruncăm o privire la Dolibarr Wiki: <br> <a href="%s" target="_blank"><b> %s</b></a>
     ForAnswersSeeForum=Pentru orice alte întrebări / ajutor, se poate utiliza Dolibarr forum: <br> <a href="%s" target="_blank"><b> %s</b></a>
    -HelpCenterDesc1=Această zonă vă poate ajuta să obţineţi un suport de Ajutor de servicii pe Dolibarr.
    -HelpCenterDesc2=Unii o parte din acest serviciu sunt disponibile <b>numai</b> în limba <b>engleză.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Gestionarul meniu curent
     MeasuringUnit=Unitate de măsură
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Perioadă notita
     NewByMonth=New by month
     Emails=E-mailuri
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP Port (în mod implicit în <b>php.ini: %s)</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP-gazdă (în mod implicit în <b>php.ini: %s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP Port (Nu este definită în PHP pe Unix, cum ar fi sisteme)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP-gazdă (Nu este definită în PHP pe Unix, cum ar fi sisteme)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Trimite un mod sistematic ascunse carbon copie a tuturor e-mailuri trimise la
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Metoda de a folosi pentru a trimite email-uri
    -MAIN_MAIL_SMTPS_ID=SMTP ID-ul de autentificare necesare în cazul în
    -MAIN_MAIL_SMTPS_PW=SMTP parola, dacă se cere autentificare
    -MAIN_MAIL_EMAIL_TLS= Utilizaţi  criptare TLS (SSL)
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Dezactivaţi toate trimiteri SMS (în scopuri de testare sau demo-uri)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Metoda de  utilizare  pentru  trimiterea SMS-urilor
    -MAIN_MAIL_SMS_FROM=Numărul de telefon expeditor implicit   pentru trimiterea de SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Caracteristicã nu sunt disponibile pe Unix, cum ar fi sisteme. Testaţi-vă sendmail program la nivel local.
    -SubmitTranslation=Dacă traducerea este incompletă sau găsiți erori, puteți corecta prin editarea fișierului în directorul <b>langs/%s</b> și trimite schimbările la www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Configurare Modul
     ModulesSetup=Configurare Module / Aplicație
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Instrumente Multi-module
     ModuleFamilyExperimental=Module Experimentale
     ModuleFamilyFinancial=Module financiare (Contabilitate / Trezorerie)
     ModuleFamilyECM=ECM
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Manager Meniu
     MenuAdmin=Editor Meniu
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Nu utilizaţi în producţie
     ThisIsProcessToFollow=Acestia sunt pasii proiectului:
     ThisIsAlternativeProcessToFollow=Aceasta este o configurare alternativă de procesare manuală:
     StepNb=Pasul %s
    -FindPackageFromWebSite=Găsiţi un pachet care ofera facilitate dorit (de exemplu, pe site-ul web %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Descărcați pachetul (de exemplu de pe site-ul web oficial %s).
    -UnpackPackageInDolibarrRoot=Despachetați fișierele arhivate în directorul server dedicat Dolibarr: <b> %s </b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Implementarea modulului a fost terminată. Cu toate acestea, trebuie să activați și să configurați modulul în aplicație, accesând pagina pentru configurarea modulelor: <a href="%s"> %s </a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=Directorul rădăcină alternativ nu este atribuit unui director existent. <br>
     InfDirAlt=De la versiunea 3, este posibil să se definească un director rădăcină alternativ. Acest lucru vă permite să stocați, într-un director dedicat, plug-in-uri și șabloane personalizate. <br> Doar creați un director in rădăcina Dolibarr (de exemplu: personalizat).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr versiunea curentă
     CallUpdatePage=Accesați pagina care actualizează structura și datele bazei de date: %s.
     LastStableVersion=Ultima versiune stabilă
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Întârziere pentru caching de export de răspuns în câteva secunde (0 sau gol pentru nici un cache)
     DisableLinkToHelpCenter=Ascundere link-ul <b>"Aveţi nevoie de ajutor sau sprijin"</b> de la pagina de login
     DisableLinkToHelp=Ascunde link-ul Ajutor Online "<b>%s</b>"
    -AddCRIfTooLong=Nu exista un ambalaj, aşa că, dacă este linia de documente pe pagină, pentru că prea mult timp, trebuie să adăugaţi-vă revine transportului în textarea.
    -ConfirmPurge=Sigur doriți să executați această curatare? <br> Aceasta va șterge definitiv toate fișierele de date, fără a le putea restabili (fișiere ECM, fișiere atașate ...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Lungimea minimă
     LanguageFilesCachedIntoShmopSharedMemory=Fişierele  .lang încărcate în memorie partajata
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Exemple cu care rulează curent setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Lista de directoare OpenDocument template-uri
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Numărul de şabloane fişiere ODT/ODS   găsite în acele directoare
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Exemple de sintaxa: <br> c: mydir \\ <br> / Home / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> Pentru a şti cum să vă creaţi şabloane DOCX, ODT documente, înainte de a le stoca în aceste directoare, citiţi documentaţia wiki:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Pentru a utiliza Web Services (parametru &quot;dolibarrk
     TestSubmitForm=Intrare test de formă
     ThisForceAlsoTheme=Folosind acest meniu managerul va folosi, de asemenea, propria temă tot ce este alegerea de către utilizator. De asemenea, acest manager de meniu specializat pentru smartphone-uri nu functioneaza pe toate smartphone-uri. Utilizaţi un alt manager de meniu, dacă aveţi probleme pe a ta.
     ThemeDir=Director Teme
    -ConnectionTimeout=Conexiune timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Răspuns timeout
     SmsTestMessage=Mesaj de test de la PHONEFROM__ __ la __ PHONETO__
     ModuleMustBeEnabledFirst=Modulul <b> %s</b> trebuie să fie activat daca aveti nevoie de aceasta functie
     SecurityToken=Cheia pentru URL-uri sigure
    -NoSmsEngine=Nu expeditor SMS Manager disponibile. SMS expeditor manager nu sunt instalate implicit cu distribuţia (deoarece depinde de un furnizor extern), dar puteţi găsi unele pe http://www.dolistore.com
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Puteţi seta opţiunile de fiecare globale referitoare la generarea PDF
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Reguli de creare a casetelor adresa
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Ascunde descrierea produselor pe PDF ul generat
     HideRefOnPDF=Ascunde ref. produs pe PDF ul generat
     HideDetailsOnPDF=Ascunde detaliile liniilor de produs în PDF-ul generat
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parametrii pentru a asigura URL-uri
     SecurityTokenIsUnique=Utilizaţi un unic parametru securekey pentru fiecare URL
     EnterRefToBuildUrl=Introduceţi de referinţă pentru %s obiect
     GetSecuredUrl=Obţineţi URL-ul calculat
    -ButtonHideUnauthorized=Ascundeți butoanele pentru utilizatorii care nu sunt administratori pentru acțiuni neautorizate, în loc să apară butoane dezactivate în culoarea gri.
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Vechea rată TVA
     NewVATRates=Noua rată TVA
     PriceBaseTypeToChange=Modifică la prețuri cu valoarea de referință de bază definit pe
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select Listă
     ExtrafieldSelectList = Select din tabel
     ExtrafieldSeparator=Separator (nu un câmp)
     ExtrafieldPassword=Parolă
    -ExtrafieldRadio=Butoane radio (numai la alegere)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Casetele de selectare
     ExtrafieldCheckBoxFromList=Căsuțele de selectare din tabel
     ExtrafieldLink=Link către un obiect
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Link implicit
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Atenție, această valoare poate fi suprascrisă de setările specifice utilizatorului (fiecare utilizator poate seta propriul url clicktodial)
     ExternalModule=Modul extern - instalat în directorul %s
    -BarcodeInitForThirdparties=Init cod de bare în  masă pentru terţi
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Init sau reset cod de bare în  masă pentru produse şi servicii
     CurrentlyNWithoutBarCode=În prezent, aveti <strong> %s </strong>inregistrari pe <strong> %s</strong> %s fără cod de bare definit.
     InitEmptyBarCode=Valoare inițializare pentru următoarele %s înregistrări goale
     EraseAllCurrentBarCode=Ștergeți toate valorile curente de coduri de bare 
     ConfirmEraseAllCurrentBarCode=Sigur doriți să ștergeți toate valorile actuale ale codurilor de bare?
     AllBarcodeReset=Toate valorile codurilor de bare au fost eliminate
    -NoBarcodeNumberingTemplateDefined=Niciun model numeric de cod de bare disponibil in configurarea modulului cod de bare
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Afiseaza adresa societatii
     DisplayCompanyManagers=Afiseaza nume manager
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Câmp
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Utilizatori & grupuri
    +Module0Name=Utilizatorii & Grupuri
     Module0Desc=Managementul Utilizatorilor/Angajaților și Grupurilor
    -Module1Name=Terţi
    -Module1Desc=Managementul terţilor (societăţi, particulari) şi contactelor
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Comercial
     Module2Desc=Management Comercial
     Module10Name=Contabilitate
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Oferte
     Module20Desc=Managementul Ofertelor Comerciale
     Module22Name=Emailing
    @@ -495,7 +501,7 @@ Module23Desc=Monitorizarea consumului de energie
     Module25Name=Comenzi clienţi
     Module25Desc=Managementul Comenzilor Clienţi
     Module30Name=Facturi
    -Module30Desc=Facturi şi note de credit "de management pentru clienţi. Facturi de gestionare pentru furnizorii
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Furnizori
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Managementul Stocurilor (produse)
     Module53Name=Servicii
     Module53Desc=Managementul Serviciilor
     Module54Name=Contracte / Abonamente
    -Module54Desc=Managementul contractelor (servicii sau abonamente periodice)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Coduri de bare
     Module55Desc=Coduri de bare "de gestionare a
     Module56Name=Telefonie
     Module56Desc=Telefonie integrare
     Module57Name=Ordine de plată bancare directe
    -Module57Desc=Managementul ordinelor de plată prin debit direct. Acesta include generarea de fișiere SEPA pentru țările europene.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=ClickToDial integrare
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Ordine de deplasare şi Note de Cheltuieli
     Module75Desc=Managementul Ordinele de deplasare şi Notelor de Cheltuieli
     Module80Name=Livrări
     Module80Desc=Managementul Livrărilor şi a Recepţiilor
    -Module85Name=Banca si Casa
    +Module85Name=Banks and Cash
     Module85Desc=Managementul conturilor bancare şi in numerar
    -Module100Name=Site Extern
    -Module100Desc=Includeţi orice site web externe Dolibarr în meniuri şi vizualiza într-o ramă Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman şi SIP
     Module105Desc=Interfaţă Mailman sau SPIP pentru modul membru
     Module200Name=LDAP
    -Module200Desc=LDAP directorul de sincronizare
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integrare
     Module240Name=Exportul de date
    -Module240Desc=Instrument pentru a exporta date Dolibarr (cu asistenți)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Date importurile
    -Module250Desc=Instrument pentru a importa date în Dolibarr (cu asistenți)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Membri
     Module310Desc=Fundatia membri de management
     Module320Name=Feed RSS
     Module320Desc=Adauga RSS feed interiorul Dolibarr ecran pagini
    -Module330Name=Marcaje
    -Module330Desc=Management bookmark-uri
    -Module400Name=Proiecte / Oportunitati  / Prospecți
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integrare
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Plata salariilor angajaților
    -Module510Desc=Înregistrați și urmați plata salariilor angajaților dvs.
    +Module510Desc=Record and track employee payments
     Module520Name=Credit
     Module520Desc=Gestionarea creditelor
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donatii
     Module700Desc=MAnagementul Donaţiilor
     Module770Name=Rapoarte Cheltuieli
    -Module770Desc=Managementul rapoartelor de cheltuieli (transport, masă, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Generarea de documente de poștă electronică in masa
     Module1780Name=Tag-uri / Categorii
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=Fckeditor
    -Module2000Desc=Permite modificarea unor zone din text folosind un editor avansat (Bazat pe CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Preţuri dinamice
     Module2200Desc=Activați utilizarea expresii matematice pentru prețuri
     Module2300Name=Joburi programate
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Evenimente / Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Activați serviciile serverului Dolibarr SOAP care furnizează se
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Activați Servicii web a clientului Dolibarr  (Poate fi folosit pentru a da date / cererile de servere externe. Doar Comenzi Furnizor sunt acceptate  pentru moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Folosiţi serviciul online Gravatar (www.gravatar.com) pentru a arăta fotografie de utilizatori / membri (găsit cu mesajele de poştă electronică). Aveţi nevoie de un acces la internet
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP conversii Maxmind capacităţile
     Module3100Name=Skype
     Module3100Desc=Adăugați un buton Skype la utilizatori / terțe parti / contacte / membri
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-societate
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Managementul cererilor de concedii
    -Module20000Desc=Declară şi urmăreşte cererile de concedii ale angajaţilor
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lotul sau numărul de serie, consumul de date manuale și vânzări pe produse
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Punct de Vanzare
     Module50100Desc=Modulul Punct de vânzări (POS)
    +Module50150Name=Punct de vânzări
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=PayPal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Contabilitate (avansat)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=Print lP IPrinter
    -Module54000Desc=Imprimare directă (fără a deschide documentele) folosind interfața CUPS IPP (imprimanta trebuie să fie vizibilă de pe server și CUPS trebuie să fie instalat pe server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Sondaj, supraveghere sau vot
    -Module55000Desc=Modulul pentru a face sondaje online, supravegheri sau voturi (cum ar fi Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Marje
     Module59000Desc=Modul management marje
     Module60000Name=Comisioane
     Module60000Desc=Modul management comisioane
     Module62000Name=Incoterm
    -Module62000Desc=Adaugă functionalitati  pentru  gestionarea  Incoterm
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resurse
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Citeşte facturi
    @@ -651,9 +661,9 @@ Permission32=Creare / Modificare produse / servicii
     Permission34=Ştergere produse / servicii
     Permission36=Exportul de produse / servicii
     Permission38=Exportul de produse
    -Permission41=Citeste proiectele și sarcinile (proiect comun și proiecte pentru care eu sunt persoana de contact). Se poate intoduce, de asemenea, timpul consumat cu sarcinile atribuite (Timesheet), pentru mine sau pentru ierarhia mea, 
    -Permission42=Creați / modificați proiecte (proiecte și proiecte comune pentru care sunt persoana de contact). De asemenea, se pot crea sarcini și atribui proiecte și sarcini utilizatorilor.
    -Permission44=Ştergere proiecte
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export proiecte
     Permission61=Citeşte intervenţii
     Permission62=Creare / Modificare intervenţii
    @@ -686,7 +696,7 @@ Permission109=Ştergere sendings
     Permission111=Citeşte conturile financiare
     Permission112=Crea / modifica / delete şi compara tranzacţiile
     Permission113=Configurare conturi financiare( creare, gestionare categorii)
    -Permission114=Tranzactii Reconciliate
    +Permission114=Reconcile transactions
     Permission115=Tranzacţii de export şi în declaraţiile
     Permission116=Transferuri între conturile
     Permission117=Gestionare cecuri de expediţie
    @@ -694,15 +704,15 @@ Permission121=Citiţi cu terţe părţi legate de utilizator
     Permission122=Creare / Modificare terţe părţi legate de utilizator
     Permission125=Ştergere terţe părţi legate de utilizator
     Permission126=Export terţi
    -Permission141=Citește toate proiectele și sarcinile (inclusiv proiectele private pentru care nu sunt persoană de contact)
    -Permission142=Creați/modificați toate proiectele și sarcinile (inclusiv proiectele private pentru care nu sunt persoană de contact)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Şterge toate proiectele și sarcinile (inclusiv proiectele private pentru care nu sunt persoană de contact)
     Permission146=Citiţi cu furnizorii
     Permission147=Citeşte stats
     Permission151=Citiți comenzile de plată prin debitare directă
     Permission152=Creați/modificați un ordin de plată prin debit direct
     Permission153=Trimite/transmite ordine de plată prin debit direct
    -Permission154=Inregistreaza creditarea / respingerea ordinelor de plată prin debitare directă
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Citește contracte / abonamente
     Permission162=Creare / modificare contracte / abonamente
     Permission163=Activează un serviciu / abonament al unui contract
    @@ -725,7 +735,7 @@ Permission187=Inchide furnizor ordinelor
     Permission188=Anulare furnizor ordinelor
     Permission192=Creaţi linii
     Permission193=Anulare linii
    -Permission194=Citiţi cu latimea de banda de linii
    +Permission194=Read the bandwidth lines
     Permission202=Creaţi conexiuni ADSL
     Permission203=Ordinul de conexiuni ordinelor
     Permission204=Ordinul de conexiuni
    @@ -750,12 +760,12 @@ Permission244=A se vedea conţinutul ascunse categorii
     Permission251=Citiţi cu alţi utilizatori şi grupuri
     PermissionAdvanced251=Citeste alţi utilizatori
     Permission252=Creare / Modificare altor utilizatori, grupuri şi a ta permisssions
    -Permission253=Modificare de alţi utilizatori parola
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Crearea / modificarea utilizatorii interni / externi şi permisiuni
     Permission254=Ştergere sau dezactiva alţi utilizatori
     Permission255=Creaţi / modifica propriile informaţii de utilizator
     Permission256=Modificare propria parolă
    -Permission262=Extindeți accesul la toate părțile terțe (nu numai terțelor părți al căror utilizator este un reprezentant de vânzari). <br> Nu este utilizabil pentru utilizatorii externi (doar pentru uz intern, pentru propuneri, ordine, facturi, contracte etc.). <br> Nu este utilizabil pentru proiecte (doar reguli privind permisiunile de proiect, aspecte de vizibilitate și de atribuire).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Citeşte CA
     Permission272=Citeşte facturi
     Permission273=Problema facturilor
    @@ -765,7 +775,7 @@ Permission283=Ştergere contacte
     Permission286=Exportaţi contacte
     Permission291=Citeşte tarife
     Permission292=Setaţi permisiunile cu privire la tarifele de
    -Permission293=Modificare clienti tarife
    +Permission293=Modify customers tariffs
     Permission300=Citiţi cu coduri de bare
     Permission301=Creare / Modificare coduri de bare
     Permission302=Ştergere coduri de bare
    @@ -787,11 +797,9 @@ Permission401=Citiţi cu reduceri
     Permission402=Creare / Modificare reduceri
     Permission403=Validate reduceri
     Permission404=Ştergere reduceri
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Şterge salarii
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salarii
     Permission520=Citeşte credite
     Permission522=Creare/modificare credite
    @@ -844,8 +852,8 @@ Permission1251=Run masa importurile de date externe în baza de date (date de sa
     Permission1321=Export client facturi, atribute şi plăţile
     Permission1322=Reopen a paid bill
     Permission1421=Export client ordinele şi atribute
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Şterge cererile de concediu
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Tipuri terţi
    -DictionaryCompanyJuridicalType=Forme Legale Terti
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Nivel potenţial Prospect
     DictionaryCanton=Regiune / Judeţ
     DictionaryRegion=Regiuni
    @@ -894,7 +902,7 @@ DictionaryVAT=Cote TVA sau Cote Taxe Vanzări
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Conditiile de plata
     DictionaryPaymentModes=Moduri plată
    -DictionaryTypeContact=Tipuri Contact/adresă
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (DEEE)
     DictionaryPaperFormat=Formate hârtie
    @@ -908,47 +916,47 @@ DictionarySource=Originea ofertei  / comenzi
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Model pentru plan de conturi
     DictionaryAccountancyJournal=Jurnalele contabile
    -DictionaryEMailTemplates=Șabloane e-mailuri 
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Unităţi
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Tipuri concedii
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup salvate
     SetupNotSaved=Setup not saved
     BackToModuleList=Inapoi la lista de module
    -BackToDictionaryList=Inapoi la lista de dicţionare
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=TVA-ul de management
    -VATIsUsedDesc=În mod implicit, când se creează perspective, facturi, comenzi etc., rata TVA respectă regula standard activă: <br> Dacă vânzătorul nu este supus TVA, valoarea TVA este implicit 0. Sfârșitul regulii. <br> Dacă (țara de vânzare = tara de cumpărare), atunci TVA-ul este implicit egal cu TVA-ul produsului în țara de vânzare. Sfârșitul regulii. <br> Dacă vânzătorul și cumpărătorul sunt ambele în Comunitatea Europeană, iar bunurile sunt produse de transport (mașină, navă, avion), TVA-ul implicit este 0 (TVA trebuie plătit de cumpărător la vama țării sale și nu la vânzător). Sfârșitul regulii. <br> Dacă vânzătorul și cumpărătorul sunt ambele în Comunitatea Europeană, iar cumpărătorul nu este o companie, atunci TVA-ul este implicit TVA-ul produsului vândut. Sfârșitul regulii. <br> Dacă vânzătorul și cumpărătorul sunt ambii în Comunitatea Europeană, iar cumpărătorul este o companie, atunci TVA este 0 în mod prestabilit. Sfârșitul regulii. <br> În orice alt caz, valoarea implicită propusă este TVA = 0. Sfârșitul regulii.
    -VATIsNotUsedDesc=În mod implicit propuse de TVA este 0, care poate fi utilizat pentru cazuri ca asociaţiile, persoane fizice ou firme mici.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rată
     LocalTax1IsNotUsed=Nu utilizează taxa secundă
    -LocalTax1IsUsedDesc=Utilizează un al doilea tip de taxă ( altul decât TVA )
    -LocalTax1IsNotUsedDesc=Nu utilizează un al tip de taxă ( altul decât TVA )
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Tip secund taxă
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Nu utilizează taxa treia
    -LocalTax2IsUsedDesc=Utilizează un al treilea tip de taxă ( altul decât TVA )
    -LocalTax2IsNotUsedDesc=Nu utilizează un al tip de taxă ( altul decât TVA )
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Tipul trei al taxei
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= Rata de RE, în mod implicit atunci când perspectivele crearea, facturi, comenzi etc urmeze regula activă standard: <br> Dacă te cumpărător nu este supus la RE, RE implicit = 0. Sfârşitul regulă. <br> În cazul în care cumpărătorul este supus la RE apoi RE în mod implicit. Sfârşitul regulă. <br>
    -LocalTax1IsNotUsedDescES= În mod implicit RE propus este 0. Sfârşitul regulă.
    -LocalTax1IsUsedExampleES= În Spania sunt profesionisti supuse unor secţiuni specifice ale IAE spaniole.
    -LocalTax1IsNotUsedExampleES= În Spania sunt profesionişti şi societăţile şi sub rezerva la anumite secţiuni ale IAE spaniole.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= Rata de RE, în mod implicit atunci când perspectivele crearea, facturi, comenzi etc urmeze regula activă standard: <br> În cazul în care vânzătorul nu este supus IRPF, apoi IRPF implicit = 0. Sfârşitul regulă. <br> În cazul în care vânzătorul este supus IRPF apoi IRPF în mod implicit. Sfârşitul regulă. <br>
    -LocalTax2IsNotUsedDescES= În mod implicit propus IRPF este 0. Sfârşitul regulă.
    -LocalTax2IsUsedExampleES= În Spania, liber profesionişti şi specialişti independenţi, care presta servicii şi companiile care au ales sistemul de impozitare de module.
    -LocalTax2IsNotUsedExampleES= În Spania nu sunt afaceri care fac obiectul sistemului de impozitare de module.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=În mod implicit RE propus este 0. Sfârşitul regulă.
    +LocalTax1IsUsedExampleES=În Spania sunt profesionisti supuse unor secţiuni specifice ale IAE spaniole.
    +LocalTax1IsNotUsedExampleES=În Spania sunt profesionişti şi societăţile şi sub rezerva la anumite secţiuni ale IAE spaniole.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=În mod implicit propus IRPF este 0. Sfârşitul regulă.
    +LocalTax2IsUsedExampleES=În Spania, liber profesionişti şi specialişti independenţi, care presta servicii şi companiile care au ales sistemul de impozitare de module.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Rapoarte pe taxe locale
     CalcLocaltax1=Vânzări - Cumpârări
     CalcLocaltax1Desc=Rapoarte Taxe Locale este calcult ca diferenţă dintre taxele locale de vanzare şi taxele locale de cumparare
    @@ -958,7 +966,9 @@ CalcLocaltax3=Vânzări
     CalcLocaltax3Desc=Rapoarte Taxe Locale este totalul taxelor locale de vanzare
     LabelUsedByDefault=Eticheta utilizat în mod implicit în cazul în care nu poate fi găsit de traducere pentru codul
     LabelOnDocuments=Eticheta de pe documente
    -NbOfDays=Nr zile
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=La sfârşitul lunii
     CurrentNext=Current/Next
     Offset=Decalaj
    @@ -984,7 +994,7 @@ DatabaseUser=Baza de date de utilizator
     DatabasePassword=Baza de date parola
     Tables=Tabele
     TableName=Nume Tabel
    -NbOfRecord=Nr  înregistrări
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver de tip
     SummarySystem=Sistemul de informaţii rezumat
    @@ -996,7 +1006,7 @@ Skin=Tema vizuală
     DefaultSkin=Tema vizuală Implicită
     MaxSizeList=Lungime  max pentru lista
     DefaultMaxSizeList=Lungime max implicită pentru lista
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Mesajul zilei
     MessageLogin=Mesaj pagina login
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Formular de căutare permanent in meniu din  stânga
     DefaultLanguage=Limba folosita  implicit (cod limba)
     EnableMultilangInterface=Activaţi multilingv interfaţă
     EnableShowLogo=Afişare logo în meniul stânga
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Nume
     CompanyAddress=Adresă
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Titular de cont bancar %s
     BankModuleNotActive=Conturi bancare de module nu a permis
     ShowBugTrackLink=Arată link-ul "<strong>%s</strong>"
     Alerts=Alerte
    -DelaysOfToleranceBeforeWarning=Toleranta întârzieri înainte de avertisment
    -DelaysOfToleranceDesc=Acest ecran vă permite să definiţi de tolerat întârzieri înainte de o alertă este raportat de pe ecran cu picto %s târziu, pentru fiecare element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Întârziere acceptată (în zile) înainte de a alerta cu privire la evenimentele planificate (evenimentele de pe ordinea de zi) care nu au fost finalizate încă
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Întârziere acceptată (în zile) înainte de a alerta cu privire la comenzile care nu au fost procesate încă
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Întârziere toleranță (în zile) înainte de alertă cu privire la propunerile de a închide
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Toleranţă întârziere (în zile) înainte de alertă cu privire la propuneri nu facturat
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Toleranta întârziere (în zile) înainte de alertă cu privire la servicii, pentru a activa
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Toleranta întârziere (în zile) înainte de alertă cu privire la serviciile expirat
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Toleranta întârziere (în zile) înainte de alertă cu privire la facturile neachitate furnizorului
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Toleranta întârziere (în zile) înainte de alertă cu privire la facturile neachitate de client
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Toleranta întârziere (în zile) înainte de alertă în aşteptarea de pe banca de reconciliere
    -Delays_MAIN_DELAY_MEMBERS=Toleranta întârziere (în zile) înainte de alertă privind taxa de membru întârziat
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Toleranta întârziere (în zile) înainte de alertă pentru cecuri de depozit pentru a face
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=\nZona de configurare este pentru parametrii de configurare inițiali înainte de a începe să se utilizeze Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Alte meniul intrări gestiona parametri opţionali.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Audit de securitate evenimente
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=Despre Dolibarr
     InfoBrowser=Despre Browser
     InfoOS=Despre SO
    @@ -1056,20 +1066,20 @@ BrowserName=Nume Browser
     BrowserOS=Browser OS
     ListOfSecurityEvents=Lista de evenimente Dolibarr de securitate
     SecurityEventsPurged=Evenimentelor de securitate epurate
    -LogEventDesc=Puteţi activa jurnalul de evenimente de securitate Dolibarr aici. Administratorii pot vedea apoi conţinutul său prin meniul <b>System Tools - Audit.</b> Atenţie, această caracteristică poate consuma o cantitate mare de date în baza de date.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Parametrii de configurare pot fi setați numai de <b> utilizatorii administratori </b>.
     SystemInfoDesc=Sistemul de informare este diverse informaţii tehnice ai citit doar în modul şi vizibil doar pentru administratori.
     SystemAreaForAdminOnly=Această zonă este disponibil numai pentru utilizatorii de administrator. Nici una din Dolibarr permisiunile pot reduce această limită.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Puteţi alege fiecare parametru legate de Dolibarr aspect aici
     AvailableModules=Available app/modules
     ToActivateModule=Pentru a activa modulele, du-te la zona de configurare.
     SessionTimeOut=Time out pentru sesiune
    -SessionExplanation=Acest număr de sesiune se va garanta că nu expiră înainte de această întârziere. Dar PHP sessoin de management nu garanţie că întotdeauna sesiune expira după această întârziere: Acest lucru se produce în cazul în care un sistem pentru a curăţa cache-ul de sesiune se execută. <br> Notă: cu nici un sistem special, interne PHP proces va curat la fiecare sesiune <b>despre %s / %s</b> de acces, dar numai în timpul acces făcute de alte sesiuni.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Disponibil declanşează
    -TriggersDesc=Declanşările sunt fişiere care vor modifica comportamentul Dolibarr flux de lucru, o dată copiată în directorul <b>htdocs / includes / declanşează.</b> Ei realizate de noi acţiuni, pe activat Dolibarr evenimente (crearea de noi societăţi, factura de validare, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Declanşările în acest dosar sunt dezactivate <b>de-NoRun</b> sufix în numele lor.
     TriggerDisabledAsModuleDisabled=Declanşările în acest dosar sunt dezactivate ca <b>modul %s</b> este dezactivat.
     TriggerAlwaysActive=Declanşările în acest dosar sunt întotdeauna activ, ce sunt activate Dolibarr module.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Introduceți toate datele de referință. Puteți adăuga valoril
     ConstDesc=Această pagină vă permite să editați toți ceilalți parametri care nu sunt disponibili în paginile anterioare. Acestia sunt în principal parametrii rezervați pentru dezvoltatori sau soluții avansate de depanare. Pentru o listă de opțiuni <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site-deschide într-o fereastră nouă" target="_blank"> verificați aici </a>.
     MiscellaneousDesc=Toți ceilalți parametri legați de securitate sunt definiți aici.
     LimitsSetup=Limitele / Precizie
    -LimitsDesc=Puteţi defini limitele, preciziile şi optimizarile utilizate de către Dolibarr aici
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Zecimale max pentru preturi unitare
     MAIN_MAX_DECIMALS_TOT=Zecimale max pentru preturi totale
     MAIN_MAX_DECIMALS_SHOWN=Zecimale max pentru  preţurile afişate pe ecran (Adăugaţi <b>...</b> după acest număr, dacă doriţi să vezi <b>...</b> când numărul este trunchiat atunci când sunt afişate pe ecran)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Pasul de interval de rotunjire (pentru țările în care
     UnitPriceOfProduct=preţul unitar net al unui produs
     TotalPriceAfterRounding=Pret total (net / TVA / inclusiv fiscale) după rotunjirea
     ParameterActiveForNextInputOnly=Parametru de eficient pentru următoarea intrare numai
    -NoEventOrNoAuditSetup=Nici un eveniment de securitate a fost înregistrată încă. Acest lucru poate fi normală de audit, dacă nu a fost activată la "setup - securitate - audit" paginii.
    -NoEventFoundWithCriteria=Nici un eveniment de securitate a fost găsit pentru o astfel de criterii de căutare.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Vedeţi-vă locale sendmail setup
     BackupDesc=Pentru a face o copie de siguranţă completă de Dolibarr, trebuie să:
     BackupDesc2=Salvați conținutul directorului de documente (<b> %s</b>) care conține toate fișierele încărcate și generate (Deci include toate fișierele dump generate la pasul 1).
    -BackupDesc3=Salvați conținutul bazei dvs. de date (<b> %s</b>) într-un fișier dump. Pentru aceasta, puteți utiliza următorul asistent.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Arhivat directorul trebuie să fie depozitate într-un loc sigur.
     BackupDescY=Generate de fişier de imagine memorie trebuie să fie depozitate într-un loc sigur.
    -BackupPHPWarning=Backupul nu poate fi garantat cu această metodă. Preferă una precedent
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Pentru a restabili o Dolibarr de rezervă, trebuie să:
    -RestoreDesc2=Restaurați fișierul arhivă (de exemplu fișierul zip) din directorul de documente pentru a extrage arborele fișierelor in directorul de documente al unei noi instalări Dolibarr sau în acest director curent de documente (<b> %s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restaurați datele, dintr-un fișier de memorie de rezervă, în baza de date a noii instalări Dolibarr sau în baza de date a instalării curente (<b> %s</b>). Avertisment, odată ce restaurarea este terminată, trebuie să utilizați o autentificare/parolă, care a existat atunci când a fost efectuată copia de rezervă, pentru a vă conecta din nou. Pentru a restaura o bază de date de rezervă în această instalare curentă, puteți urmari acest asistent.
     RestoreMySQL=MySQL import
     ForcedToByAModule= Această regulă este obligat <b>la %s</b> către un activat modulul
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Trebuie să rulaţi această co
     YourPHPDoesNotHaveSSLSupport=SSL funcţii nu sunt disponibile în PHP dvs.
     DownloadMoreSkins=Mai multe teme de  descărcat
     SimpleNumRefModelDesc=Întoarce numărul de referinţă cu formatul %syymm-NNNN unde YY este anul, MM este luna şi NNNN este o secvenţă, fără gaură şi fără a nu putea suporta
    -ShowProfIdInAddress=Arată id professionnal cu adrese pe documente
    -ShowVATIntaInAddress=Ascunde  codul TVA Intra  cu adresa pe documente
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Parţială traducere
    -MAIN_DISABLE_METEO=Dezactivează meteo vedere
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Testaţi logati pentru a API
    -ProxyDesc=Unele caracteristici ale Dolibarr trebuie să aibă acces la Internet pentru a lucra. Definirea aici parametrii pentru aceasta. Dacă serverul Dolibarr se află în spatele unui server proxy, acei parametri Dolibarr spune cum de a accesa Internetul prin ea.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Extern de acces
     MAIN_PROXY_USE=Utilizaţi un server proxy (acces direct la internet altfel)
     MAIN_PROXY_HOST=Numele / adresa de server proxy
     MAIN_PROXY_PORT=Portul de server proxy
     MAIN_PROXY_USER=Autentifica-te pentru a utiliza server proxy
     MAIN_PROXY_PASS=Parolă pentru a utiliza server proxy
    -DefineHereComplementaryAttributes=Definiţi aici toate atributele, care nu sunt deja disponibile în mod implicit, şi că doriţi să fie sprijinite pentru %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Atribute complementare
     ExtraFieldsLines=Atribute complementare (linii)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Atribute complementare (linii de comandă)
     ExtraFieldsSupplierInvoicesLines=Atribute complementare (linii de facturare)
     ExtraFieldsThirdParties=Atribute complementare ( terţi)
    -ExtraFieldsContacts=Atribute complementare (contact/addresă )
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Atribute complementare (membri)
     ExtraFieldsMemberType=Atribute complementare (tip membri)
     ExtraFieldsCustomerInvoices=Atribute complementare (facturi)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=numai caractere minuscule,  alfanumerice fără
     SendmailOptionNotComplete=Atenţie, pe unele sisteme Linux, pentru a trimite e-mail de la e-mail, sendmail configurare execuţie trebuie să conatins optiunea-ba (mail.force_extra_parameters parametri în fişierul php.ini). Dacă nu unor destinatari a primi e-mailuri, încercaţi să editaţi acest parametru PHP cu mail.force_extra_parameters =-BA).
     PathToDocuments=Cale de acces documente
     PathDirectory=Director
    -SendmailOptionMayHurtBuggedMTA=Functionalitate pentru a trimite mesaje utilizând metoda "mail PHP direct" va genera un mesaj e-mail care nu s-ar putea să fie corect interpretat de către unele servere de e-mail . Rezultatul este că unele mail-uri nu pot fi citite de unele persoane . Este cazul unor furnizori de Internet (Ex: Orange în Franţa). Aceasta nu este o problemă în Dolibarr nici în PHP, dar primesc pe serverul de poştă electronică. Puteţi adăuga toate acestea, opţiunea MAIN_FIX_FOR_BUGGED_MTA la 1 în configurare - pentru a modifica alte Dolibarr pentru a evita acest lucru. Cu toate acestea, este posibil să aveţi probleme cu alte servere care sens strict standard SMTP. Altă soluţie (recommanded) este de a utiliza metoda "SMTP socket bibliotecă", care nu are dezavantaje.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Configurarea traducerii
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Aplicație / module activate: <b> %s </b> / <b> %s </b>
     YouMustEnableOneModule=Trebuie activat cel puţin 1 modul
    -ClassNotFoundIntoPathWarning=Clasa %s negăsită în calea PHP
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Da în vară
    -OnlyFollowingModulesAreOpenedToExternalUsers=Rețineți, numai următoarele module sunt deschise utilizatorilor externi (indiferent de permisiunea unor astfel de utilizatori) și numai dacă au fost acordate permisiuni:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Stocarea sesiune criptată prin Suhosin
     ConditionIsCurrently=Condiția este momentan %s
    -YouUseBestDriver=Utilizaţi driverul %s care este cel mai bun driver disponibil acum.
    -YouDoNotUseBestDriver=Utilizaţi driverul %s dar driverul %s este recomandat.
    -NbOfProductIsLowerThanNoPb=Aveți doar % s produse / servicii în baza de date. Aceasta nu necesită  nicio optimizare specială.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Optimizare căutare
    -YouHaveXProductUseSearchOptim=Aveți  % s produse în baza de date. Ar trebui să adăugați   constanta PRODUCT_DONOTSEARCH_ANYWHERE la 1 în Acasă-Setup-Altele, să limitați căutarea la începutul siruri de caractere ţi a face posibil ca baza de date să utilizeze indexul și să obțineți un răspuns imediat.
    -BrowserIsOK=Folosiţi navigatorul web %s. Acest navigator este ok pentru performanţă şi securitate.
    -BrowserIsKO=Folosiţi  browser-ul % s. Acest browser-ul pare a fi o alegere proasta pentru securitate, performanță și fiabilitate. Noi recomandam sa folositi Firefox, Chrome, Opera sau Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug este încărcat.
     XCacheInstalled=XCache este încărcată.
    -AddRefInList=Afișează ref client / furnizor în lista (listă select sau combobox) și mai multe hyperlinkuri. Terții vor apare cu numele "CC12345 - SC45678 - The big company coorp", în loc de "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Editarea  campului %s
     FillThisOnlyIfRequired=Exemplu: +2 (completați numai dacă problemele decalajjului fusului orar sunt cunoscute)
     GetBarCode=Dă codbare
     ##### Module password generation
     PasswordGenerationStandard=Întoarceţi-vă o parolă generate în funcţie de interne Dolibarr algoritmul: 8 caractere care conţin numere în comun şi în caractere minuscule.
    -PasswordGenerationNone=Nu sugera nici o parolă generată . Parola trebuie să fie introdusă manual.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail necesare pentru a crea un utilizator nou
     HRMSetup=Configurare Modul HRM
     ##### Company setup #####
     CompanySetup=Setări Modul Terţi
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=Funcția notificări prin e-mail permite trimiterea de email-uri automate pentru anumite evenimente Dolibarr. Recipienții notificărilor pot fi definiți.
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documente şabloane
    -DocumentModelOdt=Generare din modelele OpenDocument (Fichier .ODT ou .ODS OpenOffice, KOffice, TextEdit…)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark pe schiţa de document
     JSOnPaimentBill=Activaţi funcţia de autocompletare a liniilor de plata pe formularul de plată
    -CompanyIdProfChecker=Professional ID unic
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Trebuie sa fie unic?
    -MustBeMandatory=Este obligatorie crearea unor terțe părți?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Este obligatorie validarea facturilor?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=O export se leagă de <b>format %s</b> este disponibil la următoarea adresă: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=O export se leagă de <b>format %s</b> este disponibil la
     BillsSetup=Facturi modul de configurare
     BillsNumberingModule=Facturi şi note de credit, modul de numerotare
     BillsPDFModules=Factura modele de documente
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Nota de credit
     CreditNotes=Credit note
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Gestiona un Autentificare pentru fiecare membru
     AdherentMailRequired=EMail necesare pentru a crea un nou membru
     MemberSendInformationByMailByDefault=Validare pentru a trimite mail de confirmare a membrilor este în mod implicit
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parametrii
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test căutare LDAP
     LDAPSynchroOK=Sincronizare încercare reuşită
     LDAPSynchroKO=Eşuare încercare de sincronizare
    -LDAPSynchroKOMayBePermissions=Eşuare încercare de sincronizare. Verificaţi dacă conexiune la serverul este configurat corect şi permite LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=TCP se conecteze la serverul LDAP de succes (Server= %s, port= %s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=TCP se conecteze la serverul LDAP a eşuat (Server= %s, port= %s)
    -LDAPBindOK=Conectare/Autentificare la  serverul LDAP cu succes (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=Conectare / Authentificate la serverul LDAP a eşuat (Server= %s, port= %s, %s= admin, parola= %s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configurat pentru versiunea 3
     LDAPSetupForVersion2=LDAP server configurat pentru versiunea 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Exemplu: samaccountname
     LDAPFieldFullname=Prenume Nume
     LDAPFieldFullnameExample=Exemplu: NC
    -LDAPFieldPasswordNotCrypted=Parola nu Crypted
    -LDAPFieldPasswordCrypted=Parola Crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Exemplu: userPassword
     LDAPFieldCommonNameExample=Exemplu: NC
     LDAPFieldName=Nume
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Exemplu de valori sunt proiectate pentru <b>OpenLDAP</b> încărcate cu următoarele scheme: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Dacă utilizaţi thoose valori şi OpenLDAP, vă modifica LDAP fişier de configurare <b>slapd.conf</b> de a avea toate thoose scheme încărcate.
     ForANonAnonymousAccess=Pentru un acces autentificat (pentru o scriere de exemplu)
     PerfDolibarr=Raport performanţă setări/optimizări
    -YouMayFindPerfAdviceHere=Veți găsi pe această pagină unele verificări sau sfaturi privind performanţa.
    -NotInstalled=Neinstalat,  astfel serverul dvs nu este încetinit de acesta.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Cache aplicativ
     MemcachedNotAvailable=Niciun cache aplicatie găsit. Puteți îmbunătăți performanța prin instalarea unui server de cache memcached și un modul capabil de a utiliza acest server cache. <br>Mai multe informatii aici <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.\n<br>Rețineți că o mulțime de furnizor de web hosting nu oferă astfel de server de cache.
     MemcachedModuleAvailableButNotSetup=Modulul memcahed pentru aplicarea cache este găsit dar nu este configurat complet
     MemcachedAvailableAndSetup=Modulul Memcached  pentru a utiliza serverul memcached este activat.
     OPCodeCache=Cache OPCode
    -NoOPCodeCacheFound=Niciun cache Opcode găsit. Puteţi să folosiți un alt cache Opcode decât XCache sau eAccelerator (bun), poate nu ai cache Opcode (foarte rău).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache pentru resursele statice (CSS, img, javascript)
     FilesOfTypeCached=Fișierele de tip %s sunt puse în cache de serverul HTTP
     FilesOfTypeNotCached=Fișierele de tip %s nu sunt puse în cache de serverul HTTP
     FilesOfTypeCompressed=Fișierele de tip %s sunt comprimate de serverul HTTP
     FilesOfTypeNotCompressed=Fișierele de tip %s nu sunt comprimate de serverul HTTP
     CacheByServer=Cache pe server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache pe browser
     CompressionOfResources=Compresie a răspunsului HTTP
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=O astfel de detectare automată nu este posibilă cu browserele curente
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Produse modul de configurare
     ServiceSetup=Servicii de modul de configurare
     ProductServiceSetup=Produse şi Servicii de module de configurare
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=Max număr de produse din combos selectaţi liste (0= nici o limită)
    -ViewProductDescInFormAbility=Vizualizare descrierile de produs, în forme (de altfel ca popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Vizualizarea descrierii produsului in limba terței părți.
    -UseSearchToSelectProductTooltip=De asemenea, dacă aveți un număr mare produse (> 100 000), puteți crește viteza prin setarea constantei COMPANY_DONOTSEARCH_ANYWHERE la 1 la Setup->Other. Căutarea va fi limitată la începutul șirului.
    -UseSearchToSelectProduct=Așteptați să apăsați o cheie înainte de a încărca conținutul listei combo de produse (aceasta poate crește performanța dacă aveți un număr mare de produse, dar este mai puțin convenabil)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Implicit tip de cod de bare de a utiliza pentru produse
     SetDefaultBarcodeTypeThirdParties=Implicit tip de cod de bare de a utiliza pentru terţi
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Trimiterea de modul de configurare
     SendingsReceiptModel=Trimiterea primirea model
     SendingsNumberingModules=Trimiteri de numerotare module
     SendingsAbility=Foi de transport suport pentru livrările către clienți.
    -NoNeedForDeliveryReceipts=În majoritatea cazurilor, foile de expediere sunt utilizate atât ca foi pentru livrările clienților (lista de produse care trebuie trimise), cât și pentru foile care sunt primite și semnate de către client. Prin urmare, chitanțele livrărilor de produse reprezintă o caracteristică dublă și sunt rareori activate.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Text liber pe livrari
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Produse livrările primirea modul de numerotare
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Editor avansat
     ActivateFCKeditor=Activaţi FCKeditor pentru:
     FCKeditorForCompany=WYSIWIG crearea / editie a companiilor şi de note descriere
     FCKeditorForProduct=WYSIWIG crearea / editie a produselor / serviciilor "descrierea şi nota
    -FCKeditorForProductDetails=WYSIWIG creare / editare detalii linii de produse pentru toate entităţile (propuneri, comenzilor, facturilor, etc ..) <font class="warning"> Atenţie: Folosind această opţiune nu este recommanda deoarece astfel  pot apare  probleme la caracterele speciale şi paginare atunci când se creaza fişiere PDF.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG crearea / ediţie de mailing
     FCKeditorForUserSignature=Creare/editare WYSIWIG  a semnăturii utilizatorilor
     FCKeditorForMail=Crearea / editarea WYSIWIG pentru toate e-mailurile (cu excepția Tools-> eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Conexiunii la baza de date a reusit, dar nu arata a fi o bază de date OSCommerce (cheie %s nu a fost găsit în tabelul %s).
    -OSCommerceTestOk=Conectarea la server ' %s' pe bază de date " %s" cu utilizatorul " %s" de succes.
    -OSCommerceTestKo1=Conectarea la server ' %s' reuseste, dar baza de date " %s" nu a putut fi atins.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Conectarea la server ' %s' pe bază de date " %s" cu utilizatorul " %s" cu succes.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Conectarea la server ' %s' cu utilizatorul " %s" nu a reuşit.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=Dacă utilizați unmodul punct de vânzare  (modulul POS furnizat în mod implicit sau un alt modul extern), acest setup poate fi ignorat de către modul punctul de vânzare . Cele mai multe module de puncte  de vânzări sunt concepute pentru a crea imediat o factură și reduce stocul implicit indiferent de ce optiune  aveţi aici. Deci, dacă aveți nevoie sau nu de a avea o scădere de stoc la înregistrarea unei vinzări din punctul dvs. de vânzare, verificați de asemenea modulul POS configurat.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Meniu eliminat
     Menus=Meniuri
    @@ -1548,7 +1562,7 @@ DetailRight=Conditia pentru a afişa neautorizate gri meniuri
     DetailLangs=Lang de nume de fişier pentru eticheta cod de traducere
     DetailUser=Intern / Extern / Toate
     Target=Ţintă
    -DetailTarget=Ţintă pentru link-uri (_blank top deschide o fereastră nouă)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Nivel (-1: meniul de sus, 0: antet meniu,&gt; 0 meniu şi submeniu)
     ModifMenu=Schimbare Meniu
     DeleteMenu=Ştergere intrare în meniu
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=TVA este datorată: <br> - La livrare / plăţile pentru m
     OptionVatDebitOptionDesc=TVA este datorată: <br> - La livrare / plăţile pentru mărfurile <br> - Pe factura (de debit) pentru serviciile
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Momentul implicit  TVA-ului exigibil pentru opțiunea selectată:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Pe  livrare
     OnPayment=Pe  plată
     OnInvoice=Pe factura
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Cont cumpărare. cod
     AgendaSetup=Acţiuni de ordine de zi şi de modul de configurare
     PasswordTogetVCalExport=Cheia de a autoriza export link
     PastDelayVCalExport=Nu de export eveniment mai în vârstă decât
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Setați automat acest tip de eveniment în filtrul de căutare al vederii agenda
    -AGENDA_DEFAULT_FILTER_STATUS=Setați automat acest statut în filtrul de căutare al vederii agenda
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Care tab doriţi să deschideţi când selectaţi meniul Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click pentru a Dial modul setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=Acest modul permite efectuarea de clicuri pentru numere de telefon. Dacă faceți clic pe această pictogramă, telefonul dvs. va apela numărul de telefon. Acest lucru poate fi folosit pentru a apela un sistem de call center de la Dolibarr care poate apela numărul de telefon dintr-un sistem SIP, de exemplu.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Punctul de vânzare
     CashDeskSetup=Casierie modul de configurare
    -CashDeskThirdPartyForSell=Terț generic implicit utilizat pentru vânzări
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Case de cont pentru a utiliza pentru vinde
     CashDeskBankAccountForCheque= Cont pentru a utiliza pentru a primi plăţi prin cec
     CashDeskBankAccountForCB= Cont pentru a folosi pentru a primi plăţi în numerar de carduri de credit
    -CashDeskDoNotDecreaseStock=Dezactivați scăderea stocului atunci când o vânzare se face de la punctul de vânzare (dacă "nu", scaderea stocului se face pentru fiecare vânzare făcută din POS, indiferent de opțiunea stabilită în modulul Stoc).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Forţează și limitează depozitul să folosească scăderea stocului
    -StockDecreaseForPointOfSaleDisabled=Scădere stoc de la Point of Sale dezactivat
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Scăderea stocului în POS nu este compatibilă cu gestionarea lotului
    -CashDeskYouDidNotDisableStockDecease=Nu ai dezactivați scăderea de stocului atunci când se face o vinzare de la Point Of Sale. Astfel, este necesar un depozit.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark modul de configurare
    -BookmarkDesc=Acest modul vă permite să gestionaţi marcaje. De asemenea, puteţi adăuga comenzi rapide pentru orice Dolibarr pagini sau site-uri web externale pe partea stanga de meniu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Numărul maxim de marcaje în stânga pentru a afişa meniul
     ##### WebServices #####
     WebServicesSetup=WebServices modul de configurare
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-societate modul setup
     ##### Suppliers #####
     SuppliersSetup=Furnizorul modul de configurare
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Modele numerotaţie al facturilor furnizori
     IfSetToYesDontForgetPermission=Dacă este setat la da, nu uitați să furnizați permisiuni grupurilor sau utilizatorilor cărora li se permite a doua aprobare
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Proiect modul de configurare
     ProjectsModelModule=Proiectul de raport document model
     TasksNumberingModules=Model de numerotaţie al taskurilor
     TaskModelModule=Modele  de document de rapoarte taskuri
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Puteți găsi opțiuni pen
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=Lista notificărilor fixe
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Mergeți în fila "Notificări" a unei terțe părți pentru a adăuga sau elimina notificări pentru contacte / adrese
     Threshold=Prag
     BackupDumpWizard=Expertul pentru a crea un fișier de bază de date de rezervă pentru baza de date
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Culoare link-uri
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Tip Model
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=Fixează TimeZone
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/ro_RO/banks.lang b/htdocs/langs/ro_RO/banks.lang
    index 575df64772f..0ba7e8bd7bf 100644
    --- a/htdocs/langs/ro_RO/banks.lang
    +++ b/htdocs/langs/ro_RO/banks.lang
    @@ -7,7 +7,7 @@ BankName=Nume bancă
     FinancialAccount=Cont
     BankAccount=Cont bancar
     BankAccounts=Conturi bancare
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Arată Cont
     AccountRef=Contul financiar ref
     AccountLabel=Contul financiar etichetă
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Adresă Cont
     BankAccountCountry=Tară Cont
     BankAccountOwner=Nume Proprietar Cont
     BankAccountOwnerAddress=Adresă Proprietar Cont
    -RIBControlError=Eşec la verificarea integrităţii valorilor . Aceasta înseamnă pentru acest număr de cont nu e complet sau e greşit (verifica ţară, numere şi IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Crează cont
     NewBankAccount=Cont nou
     NewFinancialAccount=Cont financiar nou
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Decontabil
     Conciliate=Deconteaza
     Conciliation=Conciliere
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Includeţi conturile închise
     OnlyOpenedAccount=Numai conturile deschise 
    @@ -104,7 +105,7 @@ SocialContributionPayment=Plata taxe sociale sau fiscale și tva
     BankTransfer=Virament bancar
     BankTransfers=Viramente 
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=La transferul dintr-un cont în altul, Dolibarr va scrie două înregistrări (una de debit în contul sursă şi una de credit în contul destinaţie. Pentru această tranzacție va fi folosită aceeași sumă (cu excepția semnului), etichetă și dată)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=De la
     TransferTo=La
     TransferFromToDone=Un viramentr de la  <b>%s</b> la <b> %s </b>  de<b> %s</b> %s a fost creată.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Cecuri bancare
     BankChecksToReceipt=CEC-uri spre încasare
     ShowCheckReceipt=Arată borderou de cecuri remise
    -NumberOfCheques=Nr de cecuri
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Inapoi la cont
     ShowAllAccounts=Arată pentru toate conturile
    -FutureTransaction=Tranzacţie viitoare. In nici un caz de decontat.
    -SelectChequeTransactionAndGenerate=Selectaţi/ filtraţi cecurile pentru a  le include în borderoul de remise şi faceţi clic pe "Crează".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Alegeți extrasul de cont privitor la conciliere. Folosiţi o valoare numerică sortabile : YYYYMM sau YYYYMMDD
     EventualyAddCategory=În cele din urmă, precizează o categorie în care să clasezi înregistrările
     ToConciliate=Să se acorde?
    @@ -153,7 +154,7 @@ RejectCheckDate=data cecului ce a fost returnat
     CheckRejected=Cec returnat
     CheckRejectedAndInvoicesReopened=Cec returnat si facturi redeschise
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/ro_RO/bills.lang b/htdocs/langs/ro_RO/bills.lang
    index 7bfe4417ad0..1dd81b4596b 100644
    --- a/htdocs/langs/ro_RO/bills.lang
    +++ b/htdocs/langs/ro_RO/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Factură Proformă
     InvoiceProFormaDesc=<b>Factura Proformă </b> este o imagine a adevăratei facturi, dar nu are nici o valoare contabilă.
     InvoiceReplacement=Factură  de Înlocuire
     InvoiceReplacementAsk=Factură  de Înlocuire  a altei  facturi
    -InvoiceReplacementDesc=<b>;Factură de Înlocuire&lt;/b> este utilizată pentru a anula şi înlocui complet o factură fără nicio plată primită . <br><br> Notă: Doar factura fără nicio plată poate fi înlocuită. Dacă nu s-a inchis, acesta va fi închisă în mod automat cu statutul "abandonat".
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Nota de credit
     InvoiceAvoirAsk=Nota de credit pentru a corecta factura
    -InvoiceAvoirDesc=<b>Nota de credit</b> este o factură negativă folosită pentru a corecta o factură, fie că are o sumă  care diferă  de suma de plata ( clientul a plătit  prea mult din eroare, sau anumite produse nu vor fi platite complet, de exemplu vor fi returnate).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Creați Nota de credit cu liniile din factura sursă
     invoiceAvoirWithPaymentRestAmount=Creați  Nota de credit cu valoarea neachitată a facturii sursă
     invoiceAvoirLineWithPaymentRestAmount=Notă de credit pentru valoarea rămasă neplătită
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in moneda facturii
     PaidBack=Restituit
     DeletePayment=Ştergere plată
     ConfirmDeletePayment=Sunteţi sigur că doriţi să ştergeţi această plată?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Plăţi Furnizori
     ReceivedPayments=Încasări primite
     ReceivedCustomersPayments=Încasări  Clienţi
    -PayedSuppliersPayments=Plaţi efectuate catre furnizori
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Încasări  Clienţi  de validat
     PaymentsReportsForYear=Rapoarte Plăţi pentru %s
     PaymentsReports=Rapoarte Plăţi
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Conditiile de plata
     PaymentAmount=Sumă de plată
     ValidatePayment=Validează plata
     PaymentHigherThanReminderToPay=Plată mai mare decât restul de  plată
    -HelpPaymentHigherThanReminderToPay=Atentie, valoarea plăţii la una sau mai multe facturi este mai mare decât  restul de plată. <br> Corectaţi  intrarea, altfel confirmaţi si gîndiţivă  la crearea unei note de credit pentru fiecare plata în exces.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Clasează "Platită"
     ClassifyPaidPartially=Clasează "Platită Parţial"
     ClassifyCanceled=Clasează "Abandonată"
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Închisă (neplătită)
     BillStatusClosedPaidPartially=Platite (parţial)
     BillShortStatusDraft=Schiţă
     BillShortStatusPaid=Platite
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Plătite
     BillShortStatusCanceled=Abandonată
     BillShortStatusValidated=Validată
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Închisă
     BillShortStatusClosedPaidPartially=Platită (parţial)
     PaymentStatusToValidShort=De validat
    -ErrorVATIntraNotConfigured=Codul de TVA Intracomunitar nedefinit încă
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Niciun modul de plată implicit definit. Accesaţi configurarea modulului Facturi pentru a remedia acest lucru.
     ErrorCreateBankAccount=Creaţi un cont bancar, apoi accesaţi setările modulului Facturi pentru a defini modul de plată
     ErrorBillNotFound=Factura %s nu există
    -ErrorInvoiceAlreadyReplaced=Eroare, încercați să validați o factură pentru a înlocui factura % s. Aceasta a fost deja înlocuită cu factura % s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Eroare, reducerea a fost deja utilizată
     ErrorInvoiceAvoirMustBeNegative=Eroare, factura de corecţie trebuie să aibă o valoare negativă
     ErrorInvoiceOfThisTypeMustBePositive=Eroare, acest tip de factură trebuie să aibă o valoare pozitivă
     ErrorCantCancelIfReplacementInvoiceNotValidated=Eroare, nu se poate anula o factură care a fost înlocuită cu o altă factură, şi care este încă schiţă
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=De la
     BillTo=La
     ActionsOnBill=Evenimente pe factura
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Sigur doriţi să schimbaţi  factura  <b>%s</b>la statu
     ConfirmCancelBill=Sigur doriţi să anulaţi factura <b> %s</b> ?
     ConfirmCancelBillQuestion=De ce doriți clasificarea acestei facturi ca "abandonată"?
     ConfirmClassifyPaidPartially=Sigur doriţi să schimbaţi  factura  <b>%s</b>la statusul plătită ?
    -ConfirmClassifyPaidPartiallyQuestion=Această factură nu a fost achitată complet. De ce doriți închiderea acestei facturi?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Restul de plată <b>( %s %s)</b> este un discount acordat la plată, pentru că a fost făcută înainte de termen. Regularizarea TVA-ului, cu o nota de credit.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Restul de plată <b>( %s %s)</b> este un discount acordat la plată, pentru că a fost făcută înainte de termen. Accept piarderea TVA-ului pentru această reducere.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Restul de plată <b>( %s %s)</b> este un discount acordat la plată, pentru că a fost făcută înainte de termen. Recuperez TVA-ul de pe această reducere fără o notă de credit.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Client rău platnic
     ConfirmClassifyPaidPartiallyReasonProductReturned=Produse parţial returnate
     ConfirmClassifyPaidPartiallyReasonOther=Creanţă  abandonată din alte motive
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Această alegere este posibilă în cazul în care factura a fost prevăzută cu un comentariu adecvat. (Exemplu "Numai impozitul corespunzător prețului care a fost plătit de fapt, dă dreptul de deducere»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=În unele țări, această alegere ar putea fi posibilă numai în cazul în care factura dvs. conține nota corectă.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Utilizaţi această opţiune dacă toate celelalte nu se potrivesc
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Un <b>client de rau platnic</b> este un client care refuză să plătească datoria lui.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Această opţiune este utilizată atunci când plata nu este completă, deoarece unele  produse au fost returnate
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Utilizaţi această opţiune dacă toate celelalte nu se potrivesc, de exemplu, în următoarele situaţii: <br> - Plată parţială deoarece unele produse au fost returnate <br> - Suma revendicată prea mare pentru că o reducere a fost uitată <br> În toate cazurile, suma reclamată  trebuie să fie corectată în contabilitate, prin crearea unei note de credit.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Altele
     ConfirmClassifyAbandonReasonOtherDesc=Această opţiune va fi folosită în toate celelalte cazuri. De exemplu,  dacă ai dori să creezi o factura de inlocuire a facturii.
     ConfirmCustomerPayment=Confirmaţi introducerea plăţii pentru <b>%s</b> %s ?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Confirmaţi introducerea plăţii pentru <b>%s</b> %s ?
     ConfirmValidatePayment=Sunteți sigur că doriți validarea acestei plăti? Nici o schimbare nu mai este posibilă după validarea plății.
     ValidateBill=Validează factura
     UnvalidateBill=Devalidează factura
    -NumberOfBills=Nr  facturi
    -NumberOfBillsByMonth=Nr facturi pe luni
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Valoare facturi
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Valoarea facturilor pe luni (fără tva)
     ShowSocialContribution=Afisează taxa sociala/fiscala
     ShowBill=Afisează  factura
    @@ -260,9 +262,9 @@ Repeatables=Modele
     ChangeIntoRepeatableInvoice=Converteşte in model factură
     CreateRepeatableInvoice=Crează model factură
     CreateFromRepeatableInvoice=Crează din model factură 
    -CustomersInvoicesAndInvoiceLines=Facturi Clienţi şi linii facturi
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Facturi Clienţi  şi plăţi
    -ExportDataset_invoice_1=Lista Facturi Clienţi şi linii facturi
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Facturi Clienţi  şi plăţi
     ProformaBill=Factură Proforma :
     Reduction=Reducere
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Adresa de facturare
    -HelpEscompte=Această reducere este un discount acordat clientului pentru că plata  a fost făcută înainte de termen.
    -HelpAbandonBadCustomer=Această sumă a fost abandonată (client declarat  rău platnic) şi este considerată ca fiind o pierdere excepţională.
    -HelpAbandonOther=Această sumă a fost abandonată, deoarece a fost o eroare (client greșit sau factura înlocuită cu alta, de exemplu)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Id Plata taxa sociala / fiscala 
     PaymentId=ID Plată
     PaymentRef=Ref. plată
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Nicio factură selectată
     CloneInvoice=Clonează factura
     ConfirmCloneInvoice=Sigur doriţi să clonaţi această factură <b> %s</b>?
     DisabledBecauseReplacedInvoice=Acţiunea dezactivată, pentru că factura a fost înlocuită
    -DescTaxAndDividendsArea=Această zonă prezintă un rezumat al tuturor plăților efectuate pentru cheltuieli speciale. Doar înregistrările cu plăți în cursul anului fix sunt incluse aici.
    -NbOfPayments=Nr plăţi
    +DescTaxAndDividendsArea=Această zonă  prezintă un rezumat al tuturor plăţilor efectuate pentru cheltuieli speciale. Numai  înregistrările cu plaţi în cursul anului sunt incluse aici.
    +NbOfPayments=No. of payments
     SplitDiscount=Imparte reducerea în două
    -ConfirmSplitDiscount=Sigur doriți împărțirea acestei reduceri de <b>%s</b> %s în 2 reduceri mai mici?
    -TypeAmountOfEachNewDiscount=Introduceţi Valoarea, pentru fiecare din cele două părţi:
    -TotalOfTwoDiscountMustEqualsOriginal=Valoarea totală a celor două noi reduceri trebuie să fie egală cu valoarea discountului original.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Sigur doriţi să eliminaţi această reducere?
     RelatedBill=Factură asociată
     RelatedBills=Facturi asociate
     RelatedCustomerInvoices=Facturi client asociate
     RelatedSupplierInvoices=Facturi asociate Furnizor
     LatestRelatedBill=Ultima Factură asociată
    -WarningBillExist=Avertisment, una sau mai multe facturi există deja
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Instrument unire (merge) PDF
     AmountPaymentDistributedOnInvoice=Sumă plătită distribuită pe factură
    -PaymentOnDifferentThirdBills=Permite plata la parteneri diferiţi cu aceeaşi companie părinte
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Comentariu plată
     ListOfPreviousSituationInvoices=Lista facturilor de situaţie anterioare
     ListOfNextSituationInvoices=Lista facturilor de situaţie următoare
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Cec
     PaymentTypeShortCHQ=Cec
     PaymentTypeTIP=D/ P (Documente contra plata)
     PaymentTypeShortTIP=D/ P Plata
    -PaymentTypeVAD=Online
    -PaymentTypeShortVAD=Online
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Schita banca
     PaymentTypeShortTRA=Schita
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Coordonate Bancă
     BankCode=Cod Bancă
    -DeskCode=Cod Ghiseu
    +DeskCode=Office code
     BankAccountNumber=Număr cont
    -BankAccountNumberKey=RIB
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=Cod IBAN
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=Cod BIC / SWIFT
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Plata prin virament pe următorul cont bancar
     VATIsNotUsedForInvoice=* TVA neaplicabil art-293B din CGI
     LawApplicationPart1=Prin aplicarea legii 80.335 din 12.05.80
     LawApplicationPart2=mărfurile rămân în proprietatea
    -LawApplicationPart3=vânzătorului, până la  incasarea completă a
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=preţului lor.
     LimitedLiabilityCompanyCapital=SRL cu capitalul de
     UseLine=Aplică
    @@ -463,7 +465,7 @@ Cheques=Cecuri
     DepositId=Depozit id
     NbCheque=Număr cecuri
     CreditNoteConvertedIntoDiscount=Acest %s a fost transformat în %s
    -UsBillingContactAsIncoiveRecipientIfExist=Utilizaţi , adresa  de facturare a contactului  clientului în loc de o adresa terţului  ca adresa a destinatarului pentru facturi
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Afişează toate facturile neachitate
     ShowUnpaidLateOnly=Afişează numai facturile întârziate la plată
     PaymentInvoiceRef=Plată factură %s
    @@ -474,21 +476,22 @@ Reported=Întârziat
     DisabledBecausePayments=Nu este posibil, deoarece există unele plăţi
     CantRemovePaymentWithOneInvoicePaid=Nu se poate elimina plata deoarece există cel puțin o factură clasificată plătită
     ExpectedToPay=Plată prevăzută
    -CantRemoveConciliatedPayment=Nu se poate şterge o plată reconciliată
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Achitat cu aceasta plată
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Clasează "Platite" toate notele de credit rambursate în întregime
    -ClosePaidContributionsAutomatically=Închide toate contribuţiile sociale sau fiscale plătite integral
    -AllCompletelyPayedInvoiceWillBeClosed=Toate facturile cu rest de plată zero vor fi închise automat cu statusul "Plătită".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Plăteşte
     ToMakePaymentBack=Rambursează
     ListOfYourUnpaidInvoices=Lista facturilor neplătite
     NoteListOfYourUnpaidInvoices=Notă: Această listă conține numai facturile pentru partenerii la care sunteţi reprezentant de vânzării.
     RevenueStamp=Timbru fiscal
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=Intai se poate crea o factură standard si se transforma in model pentru a avea un nou model de factura.
     PDFCrabeDescription=Şablon PDF Factura Crabe . Un șablon factură complet (format recomandat)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Model factură PDF Crevette. Un model complet pentru factura de situaţie
     TerreNumRefModelDesc1=Returnează numărul sub forma %syymm-nnnn pentru facturile standard și %syymm-nnnn pentru notele de credit unde yy este anul, mm este luna și nnnn este o secvenţă fără nici o pauză și fără revenire la 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Progresul liniei din factură nu poate fi egal sau mai
     updatePriceNextInvoiceErrorUpdateline=Eroare : actualizare preţ pe linia: %s
     ToCreateARecurringInvoice=Pentru a crea o factură recurentă la acest contract, se creeaza intai o factura schita, apoi se transforma cu un model de factura si se defineste frecventa generarii facturilor urmatoare.
     ToCreateARecurringInvoiceGene=Meniu pentru a crea facturi recurente manual <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=Daca este necesara generarea automata a facturilor, se solicita administratorului de sistem activarea modulului <strong>%s</strong>. Ambele metode (manuala si automata) pot fi utilizate simultan fara riscul duplicarii.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Factură ştearsă
    diff --git a/htdocs/langs/ro_RO/cashdesk.lang b/htdocs/langs/ro_RO/cashdesk.lang
    index 261d107c4ea..affc2a1471c 100644
    --- a/htdocs/langs/ro_RO/cashdesk.lang
    +++ b/htdocs/langs/ro_RO/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Afişare companie
     ShowStock=Arată depozit
     DeleteArticle=Faceţi clic pentru a elimina acest articol
     FilterRefOrLabelOrBC=Caută (Ref/Etichetă)
    -UserNeedPermissionToEditStockToUsePos=Ca să scadă stocul la crearea facturii utilizatorul care foloseşte POSul trebuie sa aibă permisiunea de a edita stocul.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Printer încasare
    +PointOfSale=Punct de vânzări
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/ro_RO/commercial.lang b/htdocs/langs/ro_RO/commercial.lang
    index 64f5a388c24..dd615058dd1 100644
    --- a/htdocs/langs/ro_RO/commercial.lang
    +++ b/htdocs/langs/ro_RO/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Apel Telefonic
     ActionAC_FAX=Trimitere fax
     ActionAC_PROP=Trimitere  ofertă pe e-mail
     ActionAC_EMAIL=Trimitere e-mail
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Întâlniri
     ActionAC_INT=Intervenţie în site
     ActionAC_FAC=Trimitere factura client pe e-mail
    @@ -72,8 +73,8 @@ StatusProsp=Statut Prospect
     DraftPropals=Oferte Comerciale Schiţă
     NoLimit=Nelimitat 
     ToOfferALinkForOnlineSignature=Link pentru semnatura online
    -WelcomeOnOnlineSignaturePage=Bine ati venit pe pagina de acceptare a propunerii comerciale de la %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=Acest ecran vă permite  sa acceptati sisemnati , sau refuzati o oferta /propunere comerciala
     ThisIsInformationOnDocumentToSign=Aceasta este informatia pe document de accetat sau refuzat
    -SignatureProposalRef=Semnare a propunerii/ofertei comerciale %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Functionalitate pentru semnare online dezactivata sau documentul generat inainte de functionalitae a fost activat
    diff --git a/htdocs/langs/ro_RO/companies.lang b/htdocs/langs/ro_RO/companies.lang
    index 8b410df73da..f46276875e8 100644
    --- a/htdocs/langs/ro_RO/companies.lang
    +++ b/htdocs/langs/ro_RO/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Selectaţi un terţ
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Şterge un contact
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=Terţ nou
    -MenuNewCustomer=Client nou
    -MenuNewProspect=Prospect nou
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Particular nou
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Creare terţ
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Contact Terţ
     Company=Societate
     CompanyName=Nume  societate
     AliasNames=Alias nume (comercial, marca inregistrata, ...)
    -AliasNameShort=Nume Alias
    +AliasNameShort=Alias Name
     Companies=Societăţi
    -CountryIsInEEC=Ţara este în interiorul Comunităţii Economice Europene
    -ThirdPartyName=Nume Terţ
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Terţ
    -ThirdParties=Terţi
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospecte
     ThirdPartyProspectsStats=Prospecte
     ThirdPartyCustomers=Clienţi
     ThirdPartyCustomersStats=Clienţi
     ThirdPartyCustomersWithIdProf12=Clienţii cu %s sau %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Tip de terţi
    +ThirdPartyType=Type of company
     Individual=Persoană privată
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Societatea-mamă
     Subsidiaries=Filiale
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Cod postal
     Town=Oraş
     Web=Web
     Poste= Poziţie
    -DefaultLang=Limba implicită
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Oferte
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Sintaxa este validă
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Acest client are un discount <b>de %s%%</b>
     CompanyHasNoRelativeDiscount=Acest client nu are nici un discount în mod implicit
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Acest client are încă note de credit pentru <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Niciunul
    -Supplier=Furnizor
    +Supplier=Vendor
     AddContact=Creare contact
     AddContactAddress=Creare contact/adresă
     EditContact=Editare contact
    @@ -303,22 +303,22 @@ AddThirdParty=Creare terţ
     DeleteACompany=Şterge o societate
     PersonalInformations=Informaţii personale
     AccountancyCode=Cont contabil
    -CustomerCode=Cod Client
    -SupplierCode=Vendor code
    -CustomerCodeShort=Cod Client
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Cod Client,  unic pentru toţi clienţii
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Obligatoriu, dacă un terţ este un client sau prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Valabilitatea controlate de modulul
    -ThisIsModuleRules=Aici sunt regulile pentru acest modul
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect de contact
     CompanyDeleted=Societatea " %s" a fost ştearsă din baza de date.
     ListOfContacts=Lista Contacte
    -ListOfContactsAddresses=Lista  contacte
    -ListOfThirdParties=Lista  terţi
    -ShowCompany=Show third party
    +ListOfContactsAddresses=Lista Contacte
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Afişeză contact
     ContactsAllShort=Toate (fără filtru)
     ContactType=Tip Contact
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Acest contact nu este contact pentru nicio ofertă comer
     NoContactForAnyContract=Acest contact nu este  contact pentru nici un contract
     NoContactForAnyInvoice=Acest contact nu este  contact pentru nici o factură
     NewContact=Contact nou
    -NewContactAddress=Contact nou
    +NewContactAddress=New Contact/Address
     MyContacts=Contactele mele
     Capital=Capital
     CapitalOf=Capital de % s
     EditCompany=Modifică societate
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Verifică
    -VATIntraCheckDesc=Linkul  <b>%s</b>permite solicitarea verificării TVA european . Este necesar  acces la internet  pentru  ca acest  serviciu să funcționeze.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Verificaţi codul de TVA Intracomunitar de pe site-ul Comisiei Europene
    -VATIntraManualCheck=De asemenea, puteți verifica manual de la  site-ul European <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Verificare imposibilă. Verificaţi dacă serviciu nu este furnizat de către statul membru ( %s).
    -NorProspectNorCustomer=Nici prospect, nici client
    -JuridicalStatus=Forma juridică
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Efectiv
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potenţial
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export fişă în format
     ContactNotLinkedToCompany=Contact nelegat la un terţ
     DolibarrLogin=Identificator utilizator
     NoDolibarrAccess=Niciun acces utilizator
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacte şi atribute
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Nivel de Pret
     DeliveryAddress=Adresă de livrare
     AddAddress=Adaugă adresă
    @@ -402,16 +402,16 @@ DeleteFile=Şterge fişier
     ConfirmDeleteFile=Sigur  doriţi să ştergeţi acest fişier?
     AllocateCommercial=Asociat la reprezentant vânzări
     Organization=Organizaţia
    -FiscalYearInformation=Informaţii pe anul fiscal
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Luna de început a anului fiscal
    -YouMustAssignUserMailFirst=Mai întâi trebuie creată o adresa de email pentru acest utilizator pentru a putea adaugă notificări pe email pentru el
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=Pentru a putea adaugă notificări pe email, este necesară definirea unor contacte pentru terţi cu adresa de email validă
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Lista  prospecte
    -ListCustomersShort=Lista  clienţi
    -ThirdPartiesArea=Terţi şi Contacte
    -LastModifiedThirdParties=Ultimii %s parteneri  modificați
    -UniqueThirdParties=Total terţi unici
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Deschis
     ActivityCeased=Închis
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Facturi in suspensie curente
     OutstandingBill=Max. limită credit
     OutstandingBillReached=Limită credit depăsită 
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Codul este liber fîrî verificare. Acest cod poate fi modificat în orice moment.
     ManagingDirectors=Nume Manager(i) nume (CEO, director, preşedinte...)
     MergeOriginThirdparty=Duplica terț (terț dorit să-l ștergeți)
     MergeThirdparties=Imbina terti
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Autentificare reprezentant vânzări
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/ro_RO/dict.lang b/htdocs/langs/ro_RO/dict.lang
    index b6c2bc4edd6..d377fdbf25a 100644
    --- a/htdocs/langs/ro_RO/dict.lang
    +++ b/htdocs/langs/ro_RO/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Insula Heard şi McDonald
     CountryVA=Sfântul Scaun (Cetatea Vaticanului membru)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonezia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Coreea de Nord
     CountryKR=Coreea de Sud
     CountryKW=Kuweit
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Laoţiană
     CountryLV=Letonia
     CountryLB=Liban
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Montserrat
     CountryMZ=Mozambic
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad şi Tobago
     CountryTR=Turcia
     CountryTM=Turkmenistan
    -CountryTC=Insulele Turks şi Cailos
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ucraina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupii
     CurrencySingMUR=Rupie Mauritius
     CurrencyNOK=Krones norvegiană
    -CurrencySingNOK=Coroană norvegiană
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=TND
     CurrencySingTND=Dinar tunisian
     CurrencyUSD=Dolar SUA
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=din gură în gură
     DemandReasonTypeSRC_PARTNER=Partener
     DemandReasonTypeSRC_EMPLOYEE=Angajat
     DemandReasonTypeSRC_SPONSORING=Sponsor
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/ro_RO/ecm.lang b/htdocs/langs/ro_RO/ecm.lang
    index 4e1193b4c50..ffe6fc9e092 100644
    --- a/htdocs/langs/ro_RO/ecm.lang
    +++ b/htdocs/langs/ro_RO/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nr documente în director
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Director
     ECMSectionManual=Director Manual
     ECMSectionAuto=Director Automat
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documente legate de proiecte
     ECMDocsByUsers=Documente legate de utilizatori
     ECMDocsByInterventions=Documente legate de interventii
     ECMDocsByExpenseReports=Documente legate de rapoartele de cheltuieli
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Niciun directorul creat
     ShowECMSection=Arată director
     DeleteSection=Elimină director
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/ro_RO/errors.lang b/htdocs/langs/ro_RO/errors.lang
    index 7951579ab35..441e3a26315 100644
    --- a/htdocs/langs/ro_RO/errors.lang
    +++ b/htdocs/langs/ro_RO/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=&quot;%s&quot; Valoarea are formatul de dată greşit
     ErrorWrongDate=Data nu este corecta!
     ErrorFailedToWriteInDir=Nu a reuşit să scrie în directorul %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=Found incorecte de email sintaxă pentru %s linii în fişier (de exemplu linia de e-mail cu %s= %s)
    -ErrorUserCannotBeDelete=Utilizatorul nu poate fi şters. Poate fi asociat la o entitate Dolibarr.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Unele campuri obligatorii nu au fost ocupate.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Nu a reuşit să creeze un director. Verificaţi ca server Web utilizator are permisiuni pentru a scrie în directorul de Dolibarr documente. Dacă <b>safe_mode</b> parametru este activat pe această PHP, Dolibarr verifica faptul că fişierele PHP detine la server web utilizator (sau grup).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Completaţi valorile pentru lista de selecţie
     ErrorNoValueForCheckBoxType=Completaţi valorile pentru lista checkbox
     ErrorNoValueForRadioType=Completaţi valorile pentru lista radio
     ErrorBadFormatValueList=Valorile din lista nu pot avea mai mult de o virgulă: <u>%s</u>, dar trebuie să aibă cel puțin o: cheie, valoare
    -ErrorFieldCanNotContainSpecialCharacters=<b>Câmp %s</b> trebuie să nu conţine caractere speciale.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Câmpul <b>%s</b> nu trebuie să conțină caractere speciale, nici litere mari și nu poate conține doar cifre.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Modul de contabilitate neactivat 
     ErrorExportDuplicateProfil=Acest profil nume există deja pentru acest set de export.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP de potrivire nu este completă.
     ErrorLDAPMakeManualTest=A. Ldif fişier a fost generat în directorul %s. Încercaţi să încărcaţi manual de la linia de comandă pentru a avea mai multe informatii cu privire la erori.
    -ErrorCantSaveADoneUserWithZeroPercentage=Nu se poate salva o acţiune cu "statut nu a început" în cazul în domeniu "realizat de către" este, de asemenea, completat.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref utilizate pentru crearea există deja.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Nu se ppate sterge inregistrarea. Este inca utilizata sau inclusa intr-un alt obiect
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript nu trebuie să fie dezactivate pentru a avea această facilitate de lucru. Pentru a activa / dezactiva Javascript, du-te la meniul Home-> Configurare-> Display.
     ErrorPasswordsMustMatch=Ambele parolele tastate trebuie să se potrivească reciproc
    -ErrorContactEMail=O eroare de tehnică avut loc. Vă rugăm, contactaţi administratorul de a urma <b>%s</b> de e-mail ro oferi <b>%s</b> cod de eroare în mesajul Dvs., sau chiar mai bine prin adăugarea o copie ecran a acestei pagini.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Valoarea greşit pentru <b>%s</b> numărul de câmp (valoarea <b>"%s"</b> nu se potriveste cu regula <b>%s</b> regex)
     ErrorFieldValueNotIn=Valoare greşită pentru câmpul numărul <b>%s</b> (valoarea '<b>%s</b>' nu este disponibilă in câmpul <b>%s</b> din tabela <b>%s</b>)
     ErrorFieldRefNotIn=Valoare greşită pentru <b>%s</b> numărul de câmp <b>(&quot;%s&quot;</b> valoarea nu este o ref <b>%s</b> existente)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Programul antivirus nu a validet fisierul (fisieru
     ErrorSpecialCharNotAllowedForField=Caractere speciale nu sunt permise pentru domeniul "%s"
     ErrorNumRefModel=O referire există în baza de date (%s) şi nu este compatibilă cu această regulă de numerotare. înregistra Remove sau redenumite de referinţă pentru a activa acest modul.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Configurarea modulului pare a nu fi completă. Mergeți la Setup - Module pentru a finaliza.
     ErrorBadMask=Eroare pe masca
     ErrorBadMaskFailedToLocatePosOfSequence=Eroare, fără a masca numărul de ordine
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Eroare, Bad resetare valoarea
     ErrorMaxNumberReachForThisMask=Numar max atins pentru aceasta masca
     ErrorCounterMustHaveMoreThan3Digits=Contorul trebuie sa aiba mai mult de 3 cifre
     ErrorSelectAtLeastOne=Eroare. Selectaţi cel puţin o intrare.
    -ErrorDeleteNotPossibleLineIsConsolidated=Ştergerea nu este posibilă, deoarece înregistrarea este legată de tranzacţie  bancară, care a fost decontată
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s se atribuie o altă treime
     ErrorFailedToSendPassword=Nu a reuşit să trimită parola
     ErrorFailedToLoadRSSFile=Nu pentru a obţine RSS feed. Încercaţi să adăugaţi MAIN_SIMPLEXMLLOAD_DEBUG constantă în cazul în care mesajele de eroare nu furnizează suficiente informaţii.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User login <b>cu %s</b> nu a putut fi găsit.
     ErrorLoginHasNoEmail=Acest utilizator nu are nici o adresa de e-mail. Procesul de anulată.
     ErrorBadValueForCode=Bad valoare tipuri de cod. Încercaţi din nou cu o nouă valoare ...
     ErrorBothFieldCantBeNegative=%s Domenii şi %s nu poate fi atât negativ
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Cantitatea pentru linia unei facturi client nu poate fi negativa.
     ErrorWebServerUserHasNotPermission=Contul de utilizator <b>%s</b> folosite pentru a executa serverul de web nu are permisiunea, pentru că
     ErrorNoActivatedBarcode=Niciun tip de coduri de bare activat
    @@ -138,7 +141,7 @@ ErrorBadFormat=Format gresit!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Eroare, există unele livrări legate de acest transport. Ștergere refuzată.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Nu se poate șterge o plată partajată de cel puțin un factură cu statutul platită
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Nu se poate atribui la constanta '%s'
     ErrorPriceExpression2=Nu se poate redefini  funcția built-in  '%s'
     ErrorPriceExpression3=Variabila nedefinita '%s'  în definiția funcției
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Neașteptat '%s'
     ErrorPriceExpression6=Număr greșit de argumente (%s dat, %s așteptat)
     ErrorPriceExpression8=Operator neașteptat '%s'
     ErrorPriceExpression9=A apărut o eroare neașteptată
    -ErrorPriceExpression10=Iperator '%s' lipsă operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Asteptam '%s'
     ErrorPriceExpression14=Împărţirea la zero,
     ErrorPriceExpression17=Variabila  '%s' nedefinită
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=Client SOAP esuat cu eroarea '%s'
     ErrorGlobalVariableUpdater5=Nicio varialbila globala selectata
     ErrorFieldMustBeANumeric=Campul <b>%s</b> trebuie sa fie  o valoare numerica
     ErrorMandatoryParametersNotProvided= Parametrii obligatorii nu au fost furnizați 
    -ErrorOppStatusRequiredIfAmount=Stabiliți o sumă estimată pentru această oportunitate / lead. Astfel, trebuie să introduceți, de asemenea, stadiul său.
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Definire greșită pentru Menu Array in descriptorul modulului (valoare greșită pentru cheia fk_menu)
    -ErrorSavingChanges=A apărut o eroare la salvarea modificărilor
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Depozitul este obligatoriu pe linie pentru livrare
     ErrorFileMustHaveFormat=Fisierul trebuie sa aiba format '%s'
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount= O parolă a fost trimisă către acest membru. Cu toate acestea, nu a fost creat nici un cont de utilizator. Astfel, această parolă este stocată, dar nu poate fi utilizată pentru autentificare. Poate fi utilizată de către un modul / interfată externă, dar dacă nu aveți nevoie să definiți un utilizator sau o parolă pentru un membru, puteți dezactiva opțiunea "Gestionați o conectare pentru fiecare membru" din modul de configurare membri. În cazul în care aveți nevoie să gestionați un utilizator, dar nu este nevoie de parolă, aveți posibilitatea să păstrați acest câmp gol pentru a evita acest avertisment. Notă: Adresa de e-mail poate fi utilizată ca utilizator la autentificare, în cazul în care membrul este legat de un utilizator. 
     WarningMandatorySetupNotComplete=Parametri de setare obligatorii nu sunt încă definiţi
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Un marcaj cu acest titlu sau acest obiectiv (URL) e
     WarningPassIsEmpty=Atenţie, parola baza de date este gol. Aceasta este o gaura de securitate. Ar trebui să adăugaţi o parolă pentru a vă baza de date şi să vă schimbaţi conf.php fişier, pentru a reflecta acest lucru.
     WarningConfFileMustBeReadOnly=Atenţie, fişierul de configurare dvs. <b>(htdocs / conf / conf.php)</b> poate fi suprascrise de către serverul de web. Aceasta este o gaura de securitate grave. Modificare permisiuni pe fişier pentru a fi citit în modul doar pentru utilizatorul sistemului de operare folosit de server Web. Dacă utilizaţi Windows şi formatul FAT pentru discul dvs., vă trebuie să ştiţi că acest sistem de fişier nu se permite to adăuga permisiuni la dosar, deci nu poate fi complet safe.
     WarningsOnXLines=Avertismentele privind sursa <b>%s</b> linii
    -WarningNoDocumentModelActivated=Nici un model, pentru generarea de document, a fost activat. Un model va fi ales în mod implicit, până când a verifica configurarea modulului.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Atenţie, odată terminată instalarea, trebui să dezactivaţi  instrumentele instalare/migrare prin adăugarea unui fișier<b>install.lock</b> în directorul <b> %s </ b>. Absența acestui fișier este o breşă de securitate.
    -WarningUntilDirRemoved=Acest avertisment va rămâne activ, atât timp cât acest director este prezent (afişat numai la admin utilizatori).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Atenţie, închiderea are loc chiar dacă suma diferă. Nu activati aceasta funcţionalitate decât  în cunoaștinţă de cauză.
     WarningUsingThisBoxSlowDown=Atenție, folosind această casetă încetiniţi serios toate paginile ce arată caseta.
     WarningClickToDialUserSetupNotComplete=Setările informațiilor ClickToDial pentru userul dvs. nu sunt complete (vezi tabul ClickToDial pe fişal dvs. de utilizator).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters= Prea multe date (mai mult de %s linii).
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Utilizatorul-ul a fost modificat. Din motive de securitate, va trebui să vă conectați cu noul dvs. utilizator înainte de următoarea acțiune.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/ro_RO/help.lang b/htdocs/langs/ro_RO/help.lang
    index 5e9a579d4a9..57ace0c4cc4 100644
    --- a/htdocs/langs/ro_RO/help.lang
    +++ b/htdocs/langs/ro_RO/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Suport în timp real / remote
     OtherSupport=Alte tipuri de suport
     ToSeeListOfAvailableRessources=Pentru a contacta / vezi resurse disponibile:
     HelpCenter=Centrul de Ajutor
    -DolibarrHelpCenter=Dolibarr Centrul de Ajutor şi Asistenţă
    -ToGoBackToDolibarr=Altfel, faceţi clic <a href="%s">aici pentru a utiliza Dolibarr</a>
    -TypeOfSupport=Sursa suport
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Comunitate (gratuit)
     TypeSupportCommercial=Comercial
     TypeOfHelp=Tip
    @@ -15,12 +15,9 @@ NeedHelpCenter=Aveți nevoie de ajutor sau sprijin?
     Efficiency=Eficienţa
     TypeHelpOnly=Numai Ajutor
     TypeHelpDev=Ajutor + Dezvoltare
    -TypeHelpDevForm=Ajutor  + Dezvoltare + Formare
    -ToGetHelpGoOnSparkAngels1=Unele companii pot oferi rapid (chiar imediat uneori) şi  mai eficient asistenţă online, prin preluarea controlului de pe computer. Aceste ajutoare pot fi găsite pe site-ul : <b> %s</b>
    -ToGetHelpGoOnSparkAngels3=Puteți merge, de asemenea, la lista tuturor antrenorilor disponibili pentru Dolibarr, pentru aceasta click pe butonul
    -ToGetHelpGoOnSparkAngels2=Uneori, nu există nicio companie disponibilă în momentul în care faceţi dvs. căutarea, astfel schimbţi filtrul pentru a căuta  pe "toți disponibili". Veți putea trimite mai multe cereri.
    -BackToHelpCenter=Altfel, clic aici pentru a merge <a href="%s">înapoi la pentru pagina de start a Centrul de Ajutor</a>.
    -LinkToGoldMember=Puteți apela unul dintre antrenori preselectati de Dolibarr pentru limba (%s) făcând clic pe balonul Widget (statusul și prețul maxim sunt actualizate automat):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Limbi suportate
    -SubscribeToFoundation=Ajută proiectul Dolibarr, subscrie la fundație
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Pentru suport oficial Dolibarr în limba dvs:  <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/ro_RO/holiday.lang b/htdocs/langs/ro_RO/holiday.lang
    index ce65ca53ebe..90589aa0a5e 100644
    --- a/htdocs/langs/ro_RO/holiday.lang
    +++ b/htdocs/langs/ro_RO/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Concedii
    -CPTitreMenu=Concedii
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Situaţia lunară
     MenuAddCP=Cerere de concediu noua
    -NotActiveModCP=Trebuie să activaţi modulul de concedii pentru a vedea această pagină.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Crează o cerere de concediu
     DateDebCP=Dată început
     DateFinCP=Dată sfărşit
    @@ -15,13 +15,18 @@ ApprovedCP=Aprobat
     CancelCP=Şters
     RefuseCP=Refuzat
     ValidatorCP=Aprobator
    -ListeCP=Listă cereri de concedii
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Descriere
     SendRequestCP=Crează o cerere de concediu
     DelayToRequestCP=Cererile pentru concediu trebuiesc făcute cu cel puţin <b>%s zi(le)</b> înainte.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Soldul concediilor este de <b>%s</b> zile.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Trebuie să selectaţi data de sfârşit mai mare decât data de început.
     ErrorSQLCreateCP=O eroare SQL întâlnită în timpul creării:
     ErrorIDFicheCP=O eroare a intervenit, cererea de concediu nu exista
    @@ -30,7 +35,14 @@ ErrorUserViewCP=Dvs nu aveti dreptul de a citi aceata cerere de concediu.
     InfosWorkflowCP=Flux de lucru Informatii
     RequestByCP=Solicitat de
     TitreRequestCP=Cereri de concedii
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Numărul de zile de concediu consumate
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Editare
     DeleteCP=Ştergere
     ActionRefuseCP=Refuzare
    @@ -59,6 +71,7 @@ DateRefusCP=Data refuzului
     DateCancelCP=Data anulării
     DefineEventUserCP=Atribuie un concediu excepţional pentru un utilizator
     addEventToUserCP=Atribuie concediu
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Motiv
     UserCP=Utilizator
     ErrorAddEventToUserCP=O eroare a survenit in timpul adaugarii de concediu exceptional.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Actualizare realizată.
     Module27130Name= Managementul cererilor de concedii
     Module27130Desc= Managementul cererilor de concedii
    @@ -94,7 +112,7 @@ NoticePeriod=Perioadă notita
     HolidaysToValidate=Validează cereri concedii
     HolidaysToValidateBody=Mai jos este o cerere de concediu de validat
     HolidaysToValidateDelay=Această cerere de concediuva avea loc intr-o  perioadă de mai puţin de %s zile.
    -HolidaysToValidateAlertSolde=Utilizatorul care a făcut această cerere de concediu nu avea destule zile disponibile.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Cereri de concedii validate
     HolidaysValidatedBody=Cererea dvs pentru concediu  pentru %s la %s a fost validată.
     HolidaysRefused=Cerere respinsă
    @@ -103,4 +121,9 @@ HolidaysCanceled=Cereri Concedii anulate
     HolidaysCanceledBody=Cererea dvs pentru concediu  pentru %s la %s a fost anulată.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Du-te  la <strong>Home -Setup - Dictionare -Tip Concedii </strong> pentru a configura diferite tipuri de concediu.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/ro_RO/install.lang b/htdocs/langs/ro_RO/install.lang
    index b4b9554dde2..c09b2eb16fb 100644
    --- a/htdocs/langs/ro_RO/install.lang
    +++ b/htdocs/langs/ro_RO/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Doar urmaţi instrucţiunile pas cu pas.
     MiscellaneousChecks=Verificare Cerinţe preliminare 
     ConfFileExists=<b>%s</b> fişierul de configurare există.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=<b>%s</b> de fişiere de configurare nu există şi nu a putut fi creat!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Fişier de configurare <b>%s</b> ar putea fi creat.
    -ConfFileIsNotWritable=<b>%s</b> fişier de configurare nu poate fi scris. Verificaţi permisiunile. Pentru prima de instalare, serverul de web trebuie să fie acordate pentru a putea scrie în acest fişier în timpul procesului de configurare (&quot;chmod 666&quot;, de exemplu, pe un Unix ca OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=<b>%s</b> fişier de configurare este de scriere.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reîncarcă toate informaţiile din fişierul de configurare.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Acest PHP susţine sesiuni.
     PHPSupportPOSTGETOk=Acest PHP suportă variabile POST si GET.
    -PHPSupportPOSTGETKo=Este posibil de configurare PHP nu suporta variabile POST şi / sau GET. Verificaţi <b>variables_order</b> de parametru în php.ini.
    -PHPSupportGD=Acest PHP suportă  functii grafice GD.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=Acest PHP suportă  funcţii  UTF8.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=PHP max memorie sesiune este setată la <b>%s.</b> Acest lucru ar trebui să fie suficient.
    -PHPMemoryTooLow=PHP max memorie sesiune este setată la octeţi <b>%s.</b> Acest lucru ar trebui să fie prea mic. Modificarea <b>php.ini</b> pentru a seta parametrul <b>memory_limit</b> de bytes <b>%s</b> cel puţin.
    -Recheck=Click aici pentru un test mult mai semnificativ
    -ErrorPHPDoesNotSupportSessions=Instalarea dvs. PHP nu are suport pentru sesiuni. Această caracteristică este necesar pentru a face Dolibarr de lucru. Verificaţi configurarea PHP.
    -ErrorPHPDoesNotSupportGD=Instalarea dvs. PHP nu are suport pentru funcţia de grafică HG nr. Graficul nu va fi disponibil.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Instalarea dvs. PHP nu are suport pentru funcţii utf8. Dolibarr nu poate funcţiona corect. Rezolva acest lucru înainte de a instala Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directorul  %s  nu există.
    -ErrorGoBackAndCorrectParameters=Du-te înapoi şi de a corecta parametrii greşite.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Este posibil să fi tastat greşit o valoare pentru parametrul &quot;%s&quot;.
     ErrorFailedToCreateDatabase=Eşec la crearea bazei de date '%s'.
     ErrorFailedToConnectToDatabase=Eşec la conectarea la baza de date '%s'.
     ErrorDatabaseVersionTooLow=Versiunea bazei de date (%s) prea veche. Versiunea %s este necesară.
     ErrorPHPVersionTooLow=PHP versiune prea veche. %s versiune este necesar.
    -ErrorConnectedButDatabaseNotFound=Conectarea la serverul de succes, dar &quot;%s&quot; bază de date nu a fost găsit.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Baza de date  '%s' există deja.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Dacă baza de date nu există, du-te înapoi şi a verifica opţiunea &quot;Creare bază de date&quot;.
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Dacă baza de date există deja, du-te înapoi şi debifaţi &quot;Crearea bazei de date&quot; opţiune.
    -WarningBrowserTooOld=Versiune prea veche a browser-ului. Actualizarea browser-ul dvs. la o versiune recentă a Firefox, Chrome sau Opera este foarte recomandată.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=Versiunea PHP
     License=Utilizarea de licenţă
     ConfigurationFile=Fişier de configurare
    @@ -45,22 +45,23 @@ DolibarrDatabase=Baza de date Dolibarr
     DatabaseType=Tip Baza de date 
     DriverType=Tip driver
     Server=Server
    -ServerAddressDescription=Numele sau adresa IP pentru serverul de baze de date, de obicei &quot;localhost&quot;, atunci când serverul de baze de date este găzduit pe acelaşi server decât serverul de web
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Port-ul serverului de baze de date. Păstraţi gol, dacă necunoscut.
     DatabaseServer=Server  baze de date
     DatabaseName=Nume bază de date
    -DatabasePrefix=Prefix Tabel Baza de date
    -AdminLogin=Autentifica-te pentru proprietarul bazei de date Dolibarr.
    -PasswordAgain=Rescrie parola pentru a doua oară
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Parola pentru proprietarul bazei de date Dolibarr.
     CreateDatabase=Crearea bazei de date
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Serverul de baze de date - superuser de acces
    -CheckToCreateDatabase=Verificaţi dacă în cutia în cazul în care baza de date nu există şi trebuie să fie creat. <br> În acest caz, trebuie să completaţi datele de conectare / parola pentru contul de superuser, la partea de jos a acestei pagini.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login utilizatorului posibilitatea de a crea baze de date noi sau de noi utilizatori, inutil în cazul în care baza de date si login-ul bazei de date există deja (ca atunci cand sunt găzduite de către un furnizor de web hosting).
    -KeepEmptyIfNoPassword=Lasă un gol în cazul în care utilizatorul nu are nici o parola (a evita acest lucru)
    -SaveConfigurationFile=Salvaţi valorile
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Conexiune server
     DatabaseCreation=Baza de date crearea de
     CreateDatabaseObjects=Baza de date crearea de obiecte
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Crearea cheile străine şi indicii pentru %s de masă
     OtherKeysCreation=Cheile străine şi crearea de indici
     FunctionsCreation=Creare Funcţii
     AdminAccountCreation=Administrator crearea de autentificare
    -PleaseTypePassword=Vă rugăm să introduceţi o parolă, parole goale nu sunt permise!
    -PleaseTypeALogin=Vă rugăm să introduceţi un login!
    -PasswordsMismatch=Parolele diferă, vă rugăm să încercaţi din nou!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Sfârşitul de configurare
     SystemIsInstalled=Această instalare este completă.
     SystemIsUpgraded=Dolibarr a fost actualizat cu succes.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Trebuie să vă configuraţi Dolibarr pentru a se potr
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Du-te la Dolibarr
     GoToSetupArea=Du-te la Dolibarr (zona de configurare)
    -MigrationNotFinished=Versiunea de baza de date nu este complet până la data de, aşa că va trebui să rulaţi procesul de actualizare din nou.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Du-te la pagina din nou upgrade
     WithNoSlashAtTheEnd=Fără a slash &quot;/&quot; de la sfârşitul
    -DirectoryRecommendation=Este recommanded de a utiliza un director afara de directorul de paginile dvs. de web.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Există deja
     DolibarrAdminLogin=Dolibarr admin autentificare
    -AdminLoginAlreadyExists=<b>&quot;%s&quot;</b> Dolibarr cont de administrator deja există. Du-te înapoi, dacă doriţi să creaţi altul.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Atenţie, pentru motive de securitate, o dată sau de upgrade-ul de instalare este completă, trebuie să scoateţi <b>directorul de instalare sau de a adăuga un fişier numit director install.lock în documentul Dolibarr, în scopul de a evita utilizarea rău intenţionată a acestuia.</b>
    -FunctionNotAvailableInThisPHP=Nu este disponibil pe acest PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Alegeţi script-ul de migraţie
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script de prelucrare
     ChooseYourSetupMode=Alegeţi modul de configurare şi faceţi clic pe &quot;Start&quot; ...
     FreshInstall=Instalare proaspătă
    -FreshInstallDesc=Utilizaţi acest mod în cazul în care aceasta este prima de instalare. Dacă nu, acest mod se poate repara o instalare incompleta anterior, dar dacă doriţi să faceţi upgrade versiunii dvs., alegeţi &quot;Upgrade&quot; modul.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Uaktualnij
     UpgradeDesc=Utilizaţi acest mod, dacă aţi înlocuit fişierele vechi Dolibarr cu fişiere dintr-o versiune mai nouă. Acest lucru se va actualiza baza de date şi de date.
     Start=Începe
     InstallNotAllowed=Setup nu este permis de permisiuni <b>conf.php</b>
     YouMustCreateWithPermission=Trebuie să creaţi %s de fişiere şi setaţi permisiuni de scriere pe el pentru serverul de web în timpul procesului de instalare.
    -CorrectProblemAndReloadPage=Va rugam sa rezolva problema şi apăsaţi F5 pentru a reîncărca pagina.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Migrat deja
     DatabaseVersion=Versiunea bazei de date
     ServerVersion=Baza de date server de versiune
     YouMustCreateItAndAllowServerToWrite=Trebuie să creaţi acest director şi pentru a permite serverului de web pentru a scrie în ea.
     DBSortingCollation=Caracter de sortare pentru
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Să vă întreb pentru a crea <b>%s</b> de baze de date, dar pentru acest lucru, Dolibarr trebuie să se conecteze la server <b>%s</b> cu permisiuni super <b>%s</b> de utilizator.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Să vă întreb pentru a crea baza de date de logare <b>%s,</b> dar pentru acest lucru, Dolibarr trebuie să se conecteze la server <b>%s</b> cu permisiuni super <b>%s</b> de utilizator.
    -BecauseConnectionFailedParametersMayBeWrong=Aşa cum nu a reuşit conectarea, gazdă sau parametrii de super utilizator trebuie să fie greşit.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Plata orfani detectat de %s metoda
     RemoveItManuallyAndPressF5ToContinue=Scoateţi-l manual şi apăsaţi F5 pentru a continua.
     FieldRenamed=Câmp redenumit
    -IfLoginDoesNotExistsCheckCreateUser=Dacă datele de autentificare nu există încă, trebuie să verificaţi opţiunea &quot;Creare utilizator&quot;
    -ErrorConnection=Server <b>&quot;%s&quot;,</b> numele bazei de date <b>&quot;%s&quot;,</b> numele de <b>&quot;%s&quot;,</b> sau parola bazei de date poate fi greşit sau versiunea client PHP poate fi prea vechi, comparativ cu versiunea bazei de date.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Alegerea recomandate pentru a instala versiunea din <b>%s %s</b> versiunea sistemului de operare actuale
     InstallChoiceSuggested=<b>Instalaţi alegere sugerat de instalator.</b>
    -MigrateIsDoneStepByStep=Versiunea ţintă (%s) are un deficit de mai multe versiuni, astfel încât instalaţi expertul va reveni pentru a sugera migraţiei viitor, după ce acesta va fi terminat.
    -CheckThatDatabasenameIsCorrect=Verificaţi că numele bazei de date <b>&quot;%s&quot;</b> este corectă.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=În cazul în care acest nume este corectă şi că baza de date nu există încă, trebuie să verificaţi opţiunea &quot;Creare bază de date&quot;.
     OpenBaseDir= Parametru openbasedir PHP 
    -YouAskToCreateDatabaseSoRootRequired=Ai verificat caseta &quot;Crearea bazei de date&quot;. Pentru aceasta, aveţi nevoie pentru a oferi autentificare user / parola de superuser (partea de jos a formularului).
    -YouAskToCreateDatabaseUserSoRootRequired=Ai verificat caseta &quot;Crearea bazei de date proprietar&quot;. Pentru aceasta, aveţi nevoie pentru a oferi autentificare user / parola de superuser (partea de jos a formularului).
    -NextStepMightLastALongTime=Pasul curent poate dura câteva minute. Vă rugăm să aşteptaţi până când este afişat următorul ecran complet înainte de a continua.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrarea de transport maritim pentru depozitare client comenzi
     MigrationShippingDelivery=Upgrade de depozitare de transport maritim
     MigrationShippingDelivery2=Upgrade de depozitare de transport 2
     MigrationFinished=Migraţia terminată
    -LastStepDesc=<strong>Ultimul pas:</strong> Definirea aici nume de utilizator şi parola pe care intenţionaţi să îl utilizaţi pentru conectarea la software-ul. Nu pierde aceasta ca este cont pentru a administra toate celelalte.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activaţi modul %s
     ShowEditTechnicalParameters=Click aici pentru a vedea / edita  parametrii avansaţi (mod expert)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Versiunea dvs. de baze de date este %s. Un bug va poate face sa pierdeti  date critice dacă faceti o schimbare a structurii pe baza de date,asa cum este impusă de procesul de migrare. De  aceea, migrare nu va fi permisa până când faceți upgrade la  baza de date la o versiune mai mare  (lista bug-urilor  cunoscute versiunea : %s)
    -KeepDefaultValuesWamp=Puteţi utiliza expertul de configurare de la Dolibarr DoliWamp, astfel încât valorile propuse aici sunt deja optimizate. Schimbaţi-le numai daca stii ce faci.
    -KeepDefaultValuesDeb=Puteţi utiliza expertul de configurare Dolibarr dintr-un pachet Linux (Ubuntu, Debian, Fedora ...), astfel încât valorile propuse aici sunt deja optimizate. Numai parola proprietarul bazei de date pentru a crea trebuie să fie completate. Modificarea alţi parametri numai dacă ştii ce faci.
    -KeepDefaultValuesMamp=Puteţi utiliza expertul de configurare de la Dolibarr DoliMamp, astfel încât valorile propuse aici sunt deja optimizate. Schimbaţi-le numai daca stii ce faci.
    -KeepDefaultValuesProxmox=Puteţi utiliza expertul de configurare Dolibarr de la un aparat Proxmox virtuale, astfel încât valorile propuse aici sunt deja optimizate. Schimbaţi-le numai daca stii ce faci.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Migrare de date pentru oferte comerciale
     MigrationInvoice=Migrare de date pentru facturile clienţilor
     MigrationContract=Migrarea datelor pentru contracte
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade de succes
     MigrationUpdateFailed=Procesul de actualizare a eşuat
     MigrationRelationshipTables=Migrare a datelor pentru tabelele relaţie (%s)
     MigrationPaymentsUpdate=Corecţie dată de plată 
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract de date de corecţie
     MigrationContractsNumberToUpdate=Contract de %s (e) pentru a actualiza
     MigrationContractsLineCreation=Creeze o linie contract pentru %s ref contract
     MigrationContractsNothingToUpdate=Nu există mai multe lucruri de făcut
    -MigrationContractsFieldDontExist=Fk_facture domeniu nu exista mai. Nimic de a face.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Corecţie contract de gol data
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Nici data contractului gol pentru a corecta
     MigrationContractsEmptyCreationDatesNothingToUpdate=Nici o creaţie data contractului pentru a corecta
     MigrationContractsInvalidDatesUpdate=Bad data valoarea contractului de corecţie
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Actualizare Livrare
     MigrationStockDetail=Actualizarea valoarea stocului de produse
     MigrationMenusDetail=Actualizaţi tabelele de meniuri dinamice
     MigrationDeliveryAddress=Actualizaţi adresa de livrare în transporturi
    -MigrationProjectTaskActors=Migrare de date pentru tabel llx_projet_task_actors
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Migrarea datelor domeniul fk_user_resp de llx_projet la llx_element_contact
     MigrationProjectTaskTime=Actualizare de timp petrecut în secunde
     MigrationActioncommElement=Actualizare date pe acţiuni
     MigrationPaymentMode=Migrare de date pentru modul de plată
     MigrationCategorieAssociation=Migrarea categoriilor
    -MigrationEvents=Migrația evenimentelor pentru a adăuga proprietarului evenimentul în tabelul de atribuire
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reîncarcă modul %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Afişează opţiunile nedisponibile
    -HideNotAvailableOptions=Acunde opţiunile nedisponibile
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/ro_RO/interventions.lang b/htdocs/langs/ro_RO/interventions.lang
    index d2239d760e9..c8c9ebd5eb8 100644
    --- a/htdocs/langs/ro_RO/interventions.lang
    +++ b/htdocs/langs/ro_RO/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Intervenţii
     InterventionCard=Fişă intervenţie
     NewIntervention=Intervenţie nouă
     AddIntervention=Crează intervenţie
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Lista  intervenţii
     ActionsOnFicheInter=Acţiuni privind intervenţia
     LastInterventions=Ultimele %s intervenţii
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Utilizați durata serviciilor pentru intervenții
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistici intervenţii
    -NbOfinterventions=Numar Fişe intervenţie
    -NumberOfInterventionsByMonth=Numarul Fişelor intervenţie pe luna(data validare)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Id Intervenţie
    diff --git a/htdocs/langs/ro_RO/main.lang b/htdocs/langs/ro_RO/main.lang
    index 686707a81ca..c0fadffaded 100644
    --- a/htdocs/langs/ro_RO/main.lang
    +++ b/htdocs/langs/ro_RO/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Nu se poate  trimite e-mail (expeditor=% s,  destinatar =%
     ErrorFileNotUploaded=Fișierul nu a fost încărcat. Verificați ca dimensiunea să nu depășească maximul permis, că spațiu pe disc este disponibil  și că nu există deja un fișier cu același nume, în acest director.
     ErrorInternalErrorDetected=Eroare detectată
     ErrorWrongHostParameter=Parametru Server greșit
    -ErrorYourCountryIsNotDefined=Țara dvs nu este definită. Cotrectaţi mergînd la Home- Setări Societate/Fundaţie - Edit.
    -ErrorRecordIsUsedByChild=Eşec la ștergerea aceastei înregistrări. Această înregistrare este utilizată de cel puțin o înregistrarei copil.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Valoarea  incorectă
     ErrorWrongValueForParameterX=Valoarea  incorectă pentru parametrul% s
     ErrorNoRequestInError=Nicio cerere în eroare
    -ErrorServiceUnavailableTryLater=Serviciul indisponibil pentru moment. Încercaţi din nou mai târziu.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Valoare duplicat într-un câmp unic
    -ErrorSomeErrorWereFoundRollbackIsDone=Câteva erori găsite . Vom reveni asupra modificarilor
    -ErrorConfigParameterNotDefined=Parametrul <b> %s</b> nu este definit în  fişierul de configurare  Dolibarr<b>conf.php.</b>
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Utilizatorul<b>%s</b>  negăsit  în baza de date Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Eroare,  nici o cota de TVA definită pentru  ţara '% s'.
     ErrorNoSocialContributionForSellerCountry=Eroare, niciun tip taxa sociala /fiscala definit pentru ţara '%s'.
     ErrorFailedToSaveFile=Eroare,  salvarea fişierului eşuată.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Dvs nu aveti dreptusa faceti aceasta.
     SetDate=setează data
     SelectDate=selectează data
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=Fişierul a fost încărcat cu succes
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=Un fișier este selectat pentru atașament, dar nu a fost încă încărcat. Clic pe "Ataşează fișier" pentru aceasta.
    -NbOfEntries=Nr intrări
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Citeşte ajutorul online (Acces la Internet necesar)
     GoToHelpPage=Citeşte  Ajutorul
     RecordSaved=Înregistrare salvată
    @@ -142,6 +142,7 @@ Closed=Închide
     Closed2=Închis
     NotClosed=Not closed
     Enabled=Activat
    +Enable=Activare
     Deprecated=Depreciat
     Disable=Dezactivează
     Disabled=Dezactivat
    @@ -153,7 +154,7 @@ Update=Modifică
     Close=Închide
     CloseBox=Remove widget from your dashboard
     Confirm=Confirmă
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Şterge
     Remove=Elimină
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copiază
     Paste=Lipeşte
     Default=Implicit
     DefaultValue=Valoare implicită
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Preţ
     PriceCurrency=Price (currency)
     UnitPrice=Preţ unitar
    @@ -347,7 +348,7 @@ AmountTTCShort=Valoare (inc. taxe)
     AmountHT=Valoare (net)
     AmountTTC=Valoare (inc. taxe)
     AmountVAT=Valoare  TVA
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Valoare (net), moneda originala
    @@ -428,7 +429,7 @@ ActionNotApplicable=Nu se aplică
     ActionRunningNotStarted=De realizat
     ActionRunningShort=In progress
     ActionDoneShort=Terminat
    -ActionUncomplete=Incomplet
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacte pentru aceast terţ
     ContactsAddressesForCompany=Contacte pentru aceast terţ
     AddressesForCompany=Adrese pentru acest terţ
     ActionsOnCompany=Evenimente  privind  acest terţ
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Evenimente  privind  acest membru
     ActionsOnProduct=Events about this product
     NActionsLate=%s  întârziat
    @@ -453,8 +455,8 @@ Generate=Generează
     Duration=Durata
     TotalDuration=Durată totală
     Summary=Sumar
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Disponibil
     NotYetAvailable=Nedisponibil încă
    @@ -468,7 +470,7 @@ and=şi
     or=sau
     Other=Alt
     Others=Altele
    -OtherInformations=Alte informatii
    +OtherInformations=Alte informații
     Quantity=Cantitate
     Qty=Cant
     ChangedBy=Modificat de
    @@ -506,7 +508,7 @@ None=Niciunul
     NoneF=Niciunul
     NoneOrSeveral=None or several
     Late=Întârziat
    -LateDesc=Durata care defineşte dacă o înregistrare este întârziată depinde de configurare. Contactaţi administratorul pentru a schimbă durata din Acasă - Setări - Alerte.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Foto
     Photos=Fotografii
    @@ -530,18 +532,6 @@ September=Septembrie
     October=Octombrie
     November=Noiembrie
     December=Decembrie
    -JanuaryMin=Ian
    -FebruaryMin=Febr
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=Mai
    -JuneMin=Iun
    -JulyMin=Iul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Noi
    -DecemberMin=Dec
     Month01=ianuarie
     Month02=februarie
     Month03=martie
    @@ -646,6 +636,8 @@ SendMail=Trimite un email
     EMail=E-mail
     NoEMail=Niciun email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Fără număr mobil
     Owner=Proprietar
     FollowingConstantsWillBeSubstituted=Următoarele constante vor fi înlocuite cu valoarea corespunzătoare.
    @@ -677,7 +669,7 @@ NeverReceived=Niciodată primit
     Canceled=Anulată
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=Valoarea implicită pentru o nouă înregistrare se poate defini în configirarea modulului
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Culoare
     Documents=Fişiere ataşate
     Documents2=Documente
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Afișare comanda cu parola ascunsă
     UnHidePassword=Afișare comanda reală cu parola în clar
     Root=Rădăcină
    -Informations=Informatii
    +Informations=Informatie
     Page=Pagină
     Notes=Note
     AddNewLine=Adaugă linie nouă
    @@ -716,15 +708,15 @@ Merge=Îmbină
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Afişaţi pagina pentru imprimat în zona conţinutului principal
     MenuManager=Manager Meniu
    -WarningYouAreInMaintenanceMode=Atenție, vă aflați în modul de întreținere, astfel încât numai <b>%s</b> este permis să utilizeze aplicația în acest moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Eroare de sistem
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Card de credit
     ValidatePayment=Validează plata
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Campurile marcate cu <b>%s</b> sunt obligatorii
    -FieldsWithIsForPublic=Câmpurile  cu <b>%s</b> vor fi  afișate pe lista publică de membri. Dacă nu doriți acest lucru, debifaţi căsuţa "public".
    -AccordingToGeoIPDatabase=(Conform conversiei GeoIP)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Linie
     NotSupported=Nesuportat
     RequiredField=Câmp obligatoriu
    @@ -732,6 +724,8 @@ Result=Rezultat
     ToTest=Testează
     ValidateBefore=Fişa trebuie  validată înainte de a utiliza această funcţionalitate
     Visibility=Vizibilitate
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privată
     Hidden=Ascunsă
     Resources=Resurse
    @@ -750,6 +744,7 @@ LinkTo=Link la
     LinkToProposal=Link la propunere
     LinkToOrder=Link către comandă
     LinkToInvoice=Link la factura
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link către comandă furnizaor
     LinkToSupplierProposal=Link catre propunere furnizor
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Creareză schiţă
     SetToDraft=Inapoi la schiţă
     ClickToEdit=Clic pentru a edita
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=Pe zi
     BySalesRepresentative=Pe  reprezentant de vânzări
     LinkedToSpecificUsers=Link către un contact utilizator particular
     NoResults=Niciun Rezultat
    -AdminTools=Instrumente Administrare
    +AdminTools=Admin Tools
     SystemTools=Instrumente Sistem
     ModulesSystemTools=Module Instrumente
     Test=Test
     Element=Element
     NoPhotoYet=Nicio imagine disponibilă
     Dashboard=Tablou de bord
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductibile
     from=de la
     toward=spre
    @@ -802,7 +798,7 @@ PrintFile=Printeaza Fisierul %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Afişează  intervenţie
     ShowContract=Afişează contract
    -GoIntoSetupToChangeLogo=Mergi la  Home - Setup - Company pentru a schimba logo - ul sau mergi la  Home - Setup - Display pentru a ascunde.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Respinge
     Denied=Respins
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Cu sinceritate
     DeleteLine=Şterge linie
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Zona pentru fişiere generate prin acţiuni în masă
     ShowTempMassFilesArea=Afişează zona pentru fişiere generate prin acţiuni în masă
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Obiecte asociate
     ClassifyBilled=Clasează facturată
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Raport Cheltuieli
     ExpenseReports=Rapoarte Cheltuieli
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Evenimente
    -EMailTemplates=Șabloane e-mailuri 
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Proiect
     Projects=Proiecte
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permisiuni
     LineNb=Line no.
     IncotermLabel=Incoterm
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Luni
     Tuesday=Marţi
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Intervenţii
     SearchIntoContracts=Contracte
     SearchIntoCustomerShipments=Livrări Client
     SearchIntoExpenseReports=Rapoarte Cheltuieli
    -SearchIntoLeaves=Concedii
    +SearchIntoLeaves=Leave
     CommentLink=Comentarii
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Toată lumea
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Plătite de 
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Atribuit lui
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/ro_RO/other.lang b/htdocs/langs/ro_RO/other.lang
    index fb3cb243174..f468b7d5d6e 100644
    --- a/htdocs/langs/ro_RO/other.lang
    +++ b/htdocs/langs/ro_RO/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Cod de securitate
     NumberingShort=N°
     Tools=Instrumente
     TMenuTools=Instrumente
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Zi de naştere
     BirthdayDate=Data naştere
     DateToBirth=Data naşterii
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Mesaj de pe pagina de întoarcere a platii validate
     MessageKO=Mesaj de pe pagina anulat schimbul de plată
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Adaugat contact la Interventie
    -Notify_FICHINTER_VALIDATE=Validate intervenţie
    -Notify_FICHINTER_SENTBYMAIL=Intervenţie trimisă prin mail
     Notify_ORDER_VALIDATE=Comandă client validată
     Notify_ORDER_SENTBYMAIL=Comanda clientului trimise prin poştă
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Pentru furnizorul trimis prin e-mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Comandă Furnizor inregistrata
     Notify_ORDER_SUPPLIER_APPROVE=Furnizor pentru a aprobat
     Notify_ORDER_SUPPLIER_REFUSE=Furnizor pentru a refuzat
     Notify_PROPAL_VALIDATE=Ofertă client validată
    -Notify_PROPAL_CLOSE_SIGNED=Propunere client semnată inchisă
    -Notify_PROPAL_CLOSE_REFUSED=Propunere client refuzată inchisă
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Ofertă comercială  trimisă prin mail
     Notify_WITHDRAW_TRANSMIT=Transmitere de retragere
     Notify_WITHDRAW_CREDIT=Credit de retragere
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Terţ a creat
     Notify_COMPANY_SENTBYMAIL=Emailuri trimise din cardul terţului
     Notify_BILL_VALIDATE=Factura client validată
     Notify_BILL_UNVALIDATE=Factura client nevalidată
    -Notify_BILL_PAYED=Factura platita clienţilor
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Factura client anulat
     Notify_BILL_SENTBYMAIL=Factura client trimis prin e-mail
     Notify_BILL_SUPPLIER_VALIDATE=Factura furnizorului validate
    -Notify_BILL_SUPPLIER_PAYED=Factura platita cu furnizorul
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Factura Furnizor trimise prin poştă
     Notify_BILL_SUPPLIER_CANCELED=Factură Furnizor anulată
     Notify_CONTRACT_VALIDATE=Contract validate
     Notify_FICHEINTER_VALIDATE=De intervenţie validate
    +Notify_FICHINTER_ADD_CONTACT=Adaugat contact la Interventie
    +Notify_FICHINTER_SENTBYMAIL=Intervenţie trimisă prin mail
     Notify_SHIPPING_VALIDATE=Transport validate
     Notify_SHIPPING_SENTBYMAIL=Transport trimise prin poştă
     Notify_MEMBER_VALIDATE=Membru validate
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Creare proiect
     Notify_TASK_CREATE=Task creat
     Notify_TASK_MODIFY=Task modificat
     Notify_TASK_DELETE=Task sters
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Vezi setare modul %s
     NbOfAttachedFiles=Numărul de ataşat fişiere / documente
     TotalSizeOfAttachedFiles=Total marimea ataşat fişiere / documente
     MaxSize=Mărimea maximă a
     AttachANewFile=Ataşaţi un fişier nou / document
     LinkedObject=Legate de obiectul
    -NbOfActiveNotifications=Numărul de notificări (Nr de e-mailuri beneficiare)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id-ul %s</b> este una de informaţii în funcţie de ţară terţă parte. <br> De exemplu, pentru <b>ţara %s,</b> este <b>codul %s.</b>
     DolibarrDemo=Demo Dolibarr ERP / CRM
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=O noua interventie %s ti- a fost atribuita 
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Intervenţia %s validată
     EMailTextInvoiceValidated=Factura %s validată
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Oferta %s a fost validată.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Comanda %s a fost validată
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Comanda %s aprobată de către %s
     EMailTextOrderRefused=Comanda %s a fost refuzată
     EMailTextOrderRefusedBy=Comanda %s a fost refuzată de către %s
     EMailTextExpeditionValidated=Livrarea %s a fost validată.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Import de date
     DolibarrNotification=Notificare Automată
     ResizeDesc=Introduceţi lăţimea noi <b>sau</b> înălţimea noi. Raportul va fi păstrat în timpul redimensionare ...
    @@ -204,7 +214,7 @@ NewLength=Lăţime nouă
     NewHeight=Înălţime nouă
     NewSizeAfterCropping=noi dimensiuni după recoltare
     DefineNewAreaToPick=Definiţi zona noi pe imagine pentru a alege (click stanga pe imagine, apoi glisaţi până când ajunge la coltul opus)
    -CurrentInformationOnImage=Informatii privind imaginea curentă
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Editor de imagine
     YouReceiveMailBecauseOfNotification=Veţi primi acest mesaj deoarece adresa dvs. de email a fost adăugat la lista de obiective care urmează să fie informat cu privire la evenimentele special în software-ul de %s %s.
     YouReceiveMailBecauseOfNotification2=Acest eveniment este următoarea:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Export
    @@ -248,5 +262,7 @@ WebsiteSetup=Configurare modul website
     WEBSITE_PAGEURL=URL pagina
     WEBSITE_TITLE=Titlu
     WEBSITE_DESCRIPTION=Descriere
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Cuvânt cheie
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/ro_RO/paybox.lang b/htdocs/langs/ro_RO/paybox.lang
    index b0e99c72a36..bd0901dfef1 100644
    --- a/htdocs/langs/ro_RO/paybox.lang
    +++ b/htdocs/langs/ro_RO/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox modul de configurare
     PayBoxDesc=Acest modul oferă pagini pentru a permite plata pe <a href="http://www.paybox.com" target="_blank">Paybox</a> de către clienţi. Acest lucru poate fi folosit pentru un cont gratuit sau plată pentru o plată de pe un anumit obiect Dolibarr (factură, pentru, ...)
     FollowingUrlAreAvailableToMakePayments=Ca urmare a URL-uri sunt disponibile pentru a oferi o pagină de la un client pentru a face o plată pe Dolibarr obiecte
     PaymentForm=Formă de plată
    -WelcomeOnPaymentPage=Bine ati venit la serviciul de plată online
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Acest ecran vă permite de a face o plată online pentru %s.
     ThisIsInformationOnPayment=Acest lucru este de informatii cu privire la plata de a face
     ToComplete=Pentru a completa
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL-ul pentru a oferi un %s plata online i
     ToOfferALinkForOnlinePaymentOnContractLine=URL-ul pentru a oferi un %s plata online interfaţă cu utilizatorul pentru un contract de linie
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL-ul pentru a oferi un %s plata online interfaţă de utilizator pentru o suma de liber
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL-ul pentru a oferi o plată %s interfata online pentru un abonament de membru
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Puteţi, de asemenea, să adăugaţi URL-ul parametru <b>& tag= <i>valoarea</i></b> la oricare dintre aceste URL-ul (necesar doar pentru liber de plată) pentru a adăuga propriul plată comentariu tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Configuraţi-vă PayBox cu <b>URL-ul %s</b> pentru a avea de plată a creat în mod automat atunci când validate de paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Această pagină confirmă faptul că plata dvs. a fost înregistrată. Mulţumesc.
    -YourPaymentHasNotBeenRecorded=Sunteţi de plată nu a fost înregistrată şi pe tranzacţie a fost anulată. Mulţumesc.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Parametri Cont
     UsageParameter=Utilizarea parametrilor
     InformationToFindParameters=Ajutor pentru a găsi informaţiile dvs. de cont %s
    diff --git a/htdocs/langs/ro_RO/projects.lang b/htdocs/langs/ro_RO/projects.lang
    index 3ad5c5507b6..e1580006381 100644
    --- a/htdocs/langs/ro_RO/projects.lang
    +++ b/htdocs/langs/ro_RO/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Afişează proiect
     ShowTask=Arată sarcină
     SetProject=Setare proiect
     NoProject=Niciun proiect definit sau responsabil
    -NbOfProjects=Nr proiecte
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Timp comsumat
     TimeSpentByYou=Timpul consumat  da tine
     TimeSpentByUser=Timp consumat pe utilizator
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Lista oferte comerciale asociate la proiect
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Lista contracte  asociate  la  proiect
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Lista intervenţii  asociate  la  proiectului
    -ListExpenseReportsAssociatedProject=Lista rapoartelor cheltuieli  asociate proiectului
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Lista evenimentelor  asociate la proiectului
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Legat de terţe părţi, alta
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Timpul consumat nu este completat
     ThisWillAlsoRemoveTasks=Această acţiune va şterge, de asemenea, toate taskurile proiectului (<b>%s</b> ) la acest moment şitoţi timpii petrecuţi.
    -IfNeedToUseOhterObjectKeepEmpty=Dacă unele obiecte (facturi, comenzi, ...), care aparţin altui terţ, trebuie să fie legate de proiect, pentru creare, menţine acest gol pentru a avea proiectul fiind multiterţi.
    +IfNeedToUseOtherObjectKeepEmpty=Dacă unele obiecte (facturi, comenzi, ...), care aparţin altui terţ, trebuie să fie legate de proiect, pentru creare, menţine acest gol pentru a avea proiectul fiind multiterţi.
     CloneProject=Clonează proiect
     CloneTasks=Clonează taskuri
     CloneContacts=Clonează contacte
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Proiect %s modificat
     TaskCreatedInDolibarr=Task %s creat
     TaskModifiedInDolibarr=Task %s modificat
     TaskDeletedInDolibarr=Task %s sters
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Selectați elementul
     AddElement=Link către element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Volum de lucru Planificat
     PlannedWorkloadShort=Volum de muncă
     ProjectReferers=Obiecte asociate
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospect
     OppStatusQUAL=Calificare
     OppStatusPROPO=Ofertă 
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/ro_RO/propal.lang b/htdocs/langs/ro_RO/propal.lang
    index e2769afb273..efb928e171e 100644
    --- a/htdocs/langs/ro_RO/propal.lang
    +++ b/htdocs/langs/ro_RO/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Semnată (de facturat)
     PropalStatusNotSigned=Nesemnată (inchisă)
     PropalStatusBilled=Facturată
     PropalStatusDraftShort=Schiţă
    -PropalStatusValidatedShort=Validată
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Închisă
     PropalStatusSignedShort=Semnată
     PropalStatusNotSignedShort=Nesemnată
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propunearea %s nu a fost găsită
     AddToDraftProposals=Adaugă  ofertă schiţă
     NoDraftProposals=Nicio ofertă schiţă
     CopyPropalFrom=Crează ofertă comercială prin copierea uneia existente
    -CreateEmptyPropal=Crează ofertă comercială/deviz nouă sau din lista de produse / servicii
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Durata validării implicite  a ofertei (în zile)
    -UseCustomerContactAsPropalRecipientIfExist=Utilizați adresa de contact a clientului  în cazul în care este definită în loc de adresa terţului ca destinatarul ofertei
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clonează oferta comercială
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Contact client urmărire ofertă
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Model de ofertă comercială  completă (logo. ..)
    +DocModelCyanDescription=Model de ofertă comercială  completă (logo. ..)
     DefaultModelPropalCreate=Crează model implicit
     DefaultModelPropalToBill=Model implicit la închiderea unei oferte comerciale (de facturat)
     DefaultModelPropalClosed=Model implicit la închiderea unei oferte comerciale (nefacturat)
    diff --git a/htdocs/langs/ro_RO/website.lang b/htdocs/langs/ro_RO/website.lang
    index 79425dc7e14..6505bf40f76 100644
    --- a/htdocs/langs/ro_RO/website.lang
    +++ b/htdocs/langs/ro_RO/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Cod
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Şterge website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Pagina nume/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit meniu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Seteaza ca  pagina Home 
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Citit
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang
    index 785272e6df3..429eb1a8e0f 100644
    --- a/htdocs/langs/ru_RU/admin.lang
    +++ b/htdocs/langs/ru_RU/admin.lang
    @@ -4,15 +4,15 @@ Version=Версия
     Publisher=Издатель
     VersionProgram=Версия программы
     VersionLastInstall=Начальная версия установки
    -VersionLastUpgrade=Последнее обновление версии
    +VersionLastUpgrade=Обновление до последней версии
     VersionExperimental=Экспериментальная
     VersionDevelopment=Разработка
     VersionUnknown=Неизвестно
     VersionRecommanded=Рекомендуемые
     FileCheck=Проверка целостности файлов
    -FileCheckDesc=Этот инструмент позволяет проверять целостность файлов и настройку вашего приложения, сравнивая каждый файл с официальными. Можно также проверить значение некоторых установочных констант. Вы можете использовать этот инструмент, чтобы определить, были ли некоторые файлы изменены хакером, например.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Целостность файлов строго соответствует ссылке.
    -FileIntegrityIsOkButFilesWereAdded=Проверка целостности файлов прошла, однако некоторые новые файлы были добавлены.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Ошибка проверки целостности файлов. Некоторые файлы были изменены, удалены или добавлены.
     GlobalChecksum=Глобальная контрольная сумма
     MakeIntegrityAnalysisFrom=Сделайте анализ целостности файлов приложений
    @@ -30,14 +30,14 @@ SessionSaveHandler=Обработчик для сохранения сессий
     SessionSavePath=Хранение локализации сессий
     PurgeSessions=Очистка сессий
     ConfirmPurgeSessions=Вы хотите завершить все сессии? Это действие отключит всех пользователей (кроме вас).
    -NoSessionListWithThisHandler=Обработчик сохранения сессий, настроенный в вашем PHP, не позволяет получать список всех открытых сессий.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Заблокировать новые подключения
    -ConfirmLockNewSessions=Вы уверены, что хотите ограничить любые новые подключения Dolibarr к себе? Только пользователь <b>%s</b>  будет иметь возможность подключиться после этого.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Удалить блокировку подключений
     YourSession=Ваша сессия
    -Sessions=Сессия пользователя
    +Sessions=Users sessions
     WebUserGroup=Пользователь / группа Web-сервера
    -NoSessionFound=Ваш PHP, кажется, не позволяет вывести список активных сессий. Возможно, директория, используемаяя для сохранения сессий <b>(%s)</b> защищена (например, правами в ОС или директивой PHP open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Кодировка базы данных для хранения данных
     DBSortingCharset=Кодировка базы данных для сортировки данных
     ClientCharset=Клиентская кодировка
    @@ -50,7 +50,7 @@ ExternalUser=Внешний пользователь
     InternalUsers=Внутренние пользователи
     ExternalUsers=Внешние пользователи
     GUISetup=Внешний вид
    -SetupArea=Раздел настроек
    +SetupArea=Настройка
     UploadNewTemplate=Загрузить новый шаблон (ы)
     FormToTestFileUploadForm=Форма для проверки загрузки файлов (в зависимости от настройки)
     IfModuleEnabled=Примечание: "Да" влияет только тогда, когда модуль <b>%s</b> включен
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Код не может содержать значен
     DisableJavascript=Отключить JavaScript и Ajax (Рекомендуется если пользователи пользуются текстовыми браузерами)
     UseSearchToSelectCompanyTooltip=Кроме того, если у вас есть большое количество третьих лиц (> 100 000), вы можете увеличить скорость, установив постоянную COMPANY_DONOTSEARCH_ANYWHERE на 1 в Setup-> Other. Затем поиск будет ограничен началом строки.
     UseSearchToSelectContactTooltip=Кроме того, если у вас есть большое количество третьих лиц (> 100 000), вы можете увеличить скорость, установив постоянную связь CONTACT_DONOTSEARCH_ANYWHERE в 1 в Setup-> Other. Затем поиск будет ограничен началом строки.
    -DelaiedFullListToSelectCompany=Подождите, пока вы нажмете клавишу перед загрузкой содержимого списка со списком сторонних партнеров (это может повысить производительность, если у вас есть большое количество третьих сторон, но это менее удобно)
    -DelaiedFullListToSelectContact=Подождите, пока вы нажмете клавишу до загрузки содержимого списка контактов (это может повысить производительность, если у вас большое количество контактов, но это менее удобно)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Кол-во символов для запуска поиска: %s
     NotAvailableWhenAjaxDisabled=Недоступно при отключенном Ajax
     AllowToSelectProjectFromOtherCompany=В документе третьей стороны можно выбрать проект, связанный с другой третьей стороной
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Предварительный просмотр не дос
     ThemeCurrentlyActive=Текущая тема
     CurrentTimeZone=Текущий часовой пояс в настройках PHP
     MySQLTimeZone=Часовой пояс БД (MySQL)
    -TZHasNoEffect=Даты сохраняются и возвращаются сервером базы данных, как если бы они хранились в виде строки. Временной зонд имеет эффект только при использовании UNIX_TIMESTAMP (который не должен использоваться Dolibarr, поэтому база данных TZ не должна иметь эффекта, даже если она была изменена после ввода данных).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Пробел
     Table=Таблица
     Fields=Поля
    @@ -111,14 +111,14 @@ NotConfigured=Модуль/Приложение не настроен
     Active=Активная
     SetupShort=Настройка
     OtherOptions=Другие настройки
    -OtherSetup=Другие настройки
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Десятичный разделитель
     CurrentValueSeparatorThousand=Разделитель разрядов
     Destination=Назначение
     IdModule=ID модуля
     IdPermissions=ID прав доступа
     LanguageBrowserParameter=Параметр %s
    -LocalisationDolibarrParameters=Параметры локализации
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Часовой пояс пользователя
     ClientHour=Время клиента (пользователя)
     OSTZ=Часовой пояс сервера
    @@ -126,8 +126,8 @@ PHPTZ=Часовой пояс PHP сервера
     DaylingSavingTime=Летнее время
     CurrentHour=Время PHP (на PHP-сервере)
     CurrentSessionTimeOut=Тайм-аут текущей сессии
    -YouCanEditPHPTZ=Чтобы установить другой часовой пояс PHP (не требуется), вы можете попробовать добавить файл .htaccess с помощью строки «SetEnv TZ Europe/Paris»,
    -HoursOnThisPageAreOnServerTZ=Предупреждение, в отличие от других экранов, часы на этой странице не находятся в вашем локальном часовом поясе, а в часовом поясе сервера.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Виджет
     Boxes=Виджеты
     MaxNbOfLinesForBoxes=Максимальное количество строк для виджетов
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords= Игнорировать ошибки дублирующ
     AutoDetectLang=Автоопределение (язык браузера)
     FeatureDisabledInDemo=Функция отключена в демо -
     FeatureAvailableOnlyOnStable=Функция доступна только в официальных стабильных версиях
    -BoxesDesc=Виджеты компонентов отображают такую же информацию которую вы можете добавить к персонализированным страницам. Вы можете выбрать между показом виджета или не выбирая целевую страницу нажать "Активировать", или выбрать корзину для отключения.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Показаны только элементы из <a href="%s">включенных модулей</a>
    -ModulesDesc=Модули Dolibar определяют какие возможности будут включены в приложении. Некоторые приложения/модули требуют разрешения которые вы должны предоставить пользователям, после их активации. Нажмите на кнопку on/off для включения или отключения модулей.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=В интернете вы можете найти больше модулей для загрузки...
    -ModulesDeployDesc=Если разрешения для вашей файловой системы позволяют это, вы можете использовать этот инструмент для развертывания внешнего модуля. Затем модуль будет виден на вкладке<strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Поиск внешних приложений/модулей
     ModulesDevelopYourModule=Разработка собственного приложения/модулей
    -ModulesDevelopDesc=Вы можете разработать или найти партнера для разработки, ваш персонализированный модуль
    -DOLISTOREdescriptionLong=Вместо того, чтобы переходить на веб-сайт <a href="https://www.dolistore.com">www.dolistore.com</a>, чтобы найти внешний модуль, вы можете использовать этот встроенный инструмент, который сделает ваше путешествие на внешнем рынке (может быть медленным, нужен доступ в Интернет) ...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Новый
     FreeModule=Свободно
     CompatibleUpTo=Совместимость с версией %s
    @@ -211,8 +211,8 @@ Nouveauté=Новое
     AchatTelechargement=Купить/Скачать
     GoModuleSetupArea=Чтобы развернуть/установить новый модуль, перейдите в область настройки модуля с <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, официальный магазин внешних модулей Dolibarr ERP / CRM
    -DoliPartnersDesc=Список компаний, предоставляющих индивидуально разработанные модули или функции (Примечание: любой, кто имеет опыт программирования на PHP, может предоставить пользовательскую разработку для проекта с открытым исходным кодом)
    -WebSiteDesc=Ссылки на веб-сайты, чтобы найти больше модулей...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Некоторые решения для разработки собственного модуля ...
     URL=Ссылка
     BoxesAvailable=Доступные виджеты
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Не хранить пароли в открытом в
     MainDbPasswordFileConfEncrypted=Зашифровать пароль к базе в conf.php (Рекомендуется)
     InstrucToEncodePass=Чтобы поместить зашифрованный пароль в <b>conf.php</b> файл, замените строку <br><b>$dolibarr_main_db_pass ="..."</b><br>на<br><b>$dolibarr_main_db_pass"=crypted:%s"</b>
     InstrucToClearPass=Чтобы поместить не зашифрованный пароль в <b>conf.php</b> файл, замените строку <br><b>$dolibarr_main_db_pass="crypted:..."</b><br>на<br><b>$dolibarr_main_db_pass="%s"</b>
    -ProtectAndEncryptPdfFiles=Защита создаваемых PDF файлов (НЕ РЕКОМЕНДУЕТСЯ при массовом создании PDF)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Защита документов PDF допускает чтение и распечатку любым приложением просмотра файлов PDF. Однако редактирование и копирование не возможно. Использование этой возможности не позволит глобальное объединение файлов PDF.
     Feature=Возможность
     DolibarrLicense=Лицензия
    @@ -246,8 +246,8 @@ ExternalResources=Внешние ресурсы
     SocialNetworks=Социальные сети
     ForDocumentationSeeWiki=Для получения документации пользователя или разработчика (документация, часто задаваемые вопросы...),<br> посетите Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Для любых других вопросов / помощи, вы можете использовать форум Dolibarr:<br><b><a href="%s" target="_blank">%s</b></a>
    -HelpCenterDesc1=Этот раздел может помочь вам получить помощь службы поддержки по Dolibarr.
    -HelpCenterDesc2=Некоторые части этого сервиса доступны <b>только на английском языке.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Обработчик текущего меню
     MeasuringUnit=Единица измерения
     LeftMargin=Левое поле
    @@ -262,31 +262,35 @@ NoticePeriod=Период уведомления
     NewByMonth=Новые по месяцам
     Emails=Электронная почта
     EMailsSetup=Настройка электронной почты
    -EMailsDesc=Эта страница позволяет вам переписывать PHP параметры для отправки писем. В большинстве случаев в операционных системах Unix/Linux настройки PHP корректны и менять их не нужно.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Профили отправителей электронной почты
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS порт (По умолчанию в php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS сервер (по умолчанию в php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Порт (Не определен в PHP на Unix-подобных системах)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS сервер (Не определен в PHP на Unix-подобных системах)
    -MAIN_MAIL_EMAIL_FROM=Отправитель писем для автоматических рассылок (В php.ini указан: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=E-mail используется для отправки сообщений об ошибках (поля «Errors-To» в отправленных сообщениях)
    -MAIN_MAIL_AUTOCOPY_TO= Скрыто отправлять копии всех отправляемых писем на 
    -MAIN_DISABLE_ALL_MAILS=Отключить отправку всех писем (для тестирования или демонстраций)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Отправляйте все электронные письма (вместо реальных получателей, для целей тестирования)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Добавить пользователей сотрудников с электронной почтой в список разрешенных судебных органов
    -MAIN_MAIL_SENDMODE=Метод, используемый для отправки электронной почты
    -MAIN_MAIL_SMTPS_ID=SMTP ID, если требуется проверка подлинности
    -MAIN_MAIL_SMTPS_PW=SMTP пароль, если требуется проверка подлинности
    -MAIN_MAIL_EMAIL_TLS= Использовать TLS (SSL) шифрование
    -MAIN_MAIL_EMAIL_STARTTLS= Использовать шифрование TLS (STARTTLS)
    -MAIN_DISABLE_ALL_SMS=Отключить отправку всех SMS (для тестирования или демонстрации)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Метод, используемый для передачи SMS
    -MAIN_MAIL_SMS_FROM=Номер отправителя для отправки SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Письмо отправителя по умолчанию для отправки вручную (электронная почта пользователя или электронная почта компании)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=Электронная почта пользователя
     CompanyEmail=Электронная почта компании
     FeatureNotAvailableOnLinux=Функция недоступна на Unix подобных систем. Проверьте вашу программу для отправки почты локально.
    -SubmitTranslation=Если перевод на этот язык не завершен или вы нашли ошибки, вы можете исправить их отредактировав файлы в папке <b>langs/%s</b> и отправив внесенные изменения на www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=Если перевод для этого языка не завершен или вы обнаружите ошибки, вы можете исправить это, отредактировав файлы в каталог <b>langs/%s</b> и отправив измененные файлы на dolibarr.org/forum или для разработчиков на github.com/Dolibarr/dolibarr.
     ModuleSetup=Настройка модуля
     ModulesSetup=Настройка Модулей/Приложений
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Много-модульные инструменты
     ModuleFamilyExperimental=Экспериментальные модули
     ModuleFamilyFinancial=Финансовые модули (Бухгалтерия / Казначейство)
     ModuleFamilyECM=Управление электронным содержимым (ECM)
    -ModuleFamilyPortal=Веб-сайты и другие фронтальные приложения
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Интерфейсы с внешними системами
     MenuHandlers=Обработчики меню
     MenuAdmin=Редактор меню
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Не используйте в производстве
     ThisIsProcessToFollow=Это шаги для процесса:
     ThisIsAlternativeProcessToFollow=Это альтернативная настройка для обработки вручную:
     StepNb=Шаг %s
    -FindPackageFromWebSite=Поиск пакета, который обеспечивает функции которые вы хотите (например, на официальном веб-сайте %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Загрузка пакета (например, на официальном веб-сайте %s).
    -UnpackPackageInDolibarrRoot=Распаковка файлов пакета на сервере Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=Чтобы развернуть/установить внешний модуль, распакуйте упакованные файлы в каталог сервера, предназначенный для модулей: <b>%s</b>
    -SetupIsReadyForUse=Развертывание модуля завершено. Теперь необходимо включить и настроить модуль в вашей программе на странице настройки модуля: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=Альтернативная корневая директория не задана.<br>
     InfDirAlt=Начиная с 3-ей версии, можно определить альтернативный корневой каталог. Это позволяет вам хранить в специальном каталоге, плагины и настраиваемые шаблоны. <br> Просто создайте каталог в корне Dolibarr (например: custom). <br>
     InfDirExample=<br>Затем объявите его в файле <strong>conf.php</strong><br> $dolibarr_main_url_root_alt = '/custom'<br> $dolibarr_main_document_root_alt ='/path/of/dolibarr/htdocs/custom'<br>Если эти строки комментируются с помощью ''#", чтобы включить их, просто раскомментируйте, удалив символ "#''.
    -YouCanSubmitFile=На этом шаге вы можете отправить .zip-файл пакета модулей здесь:
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Текущая версия Dolibarr
     CallUpdatePage=Перейдите на страницу, где вы сможете обновить структуру базы данных и данные: %s.
     LastStableVersion=Последняя стабильная версия
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Взгляните на страницу вики для по
     UseACacheDelay= Задержка для кэширования при экспорте в секундах (0 или пусто для отключения кэширования)
     DisableLinkToHelpCenter=Скрыть ссылку <b>"нужна помощь или поддержка"</b> на странице авторизации
     DisableLinkToHelp=Скрыть ссылку интернет-справки "<b>%s</b>"
    -AddCRIfTooLong=Автоматические переносы отсутствуют, по этому если строка в документе слишком длинная, вы должны самостоятельно выполнить перевод строки в текстовом поле.
    -ConfirmPurge=Вы уверены что хотите выполнить эту очистку?<br> Это действие удалит все ваши файлы с данными без возможности восстановления (ECM файлы, прикрепленные файлы...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Минимальная длина
     LanguageFilesCachedIntoShmopSharedMemory=Файлы .lang, загружены в общую памяти
     LanguageFile=Языковой файл
    -ExamplesWithCurrentSetup=Примеры с текущими настройками
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Список каталогов с шаблонами OpenDocument
     ListOfDirectoriesForModelGenODT=Список каталогов содержащих файлы шаблонов в форматеOpenDocument. <br><br>Укажите здесь полный пусть к каталогу.<br>Каждый каталог с новой строки.<br>Для добавления каталога GED-модулей, добавьте здесь <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Файлы в этих каталогах должны заканчиваться символами <b>.odt</b> или <b>.ods</b>.
    -NumberOfModelFilesFound=Количество шаблонов в форматах ODT/ODS, найденных в этих папках
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Примеры синтаксиса: <br> C: \\ MYDIR <br> / home / mydir <br> DOL_DATA_ROOT / ecm / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> Прежде чем сохранить шаблоны в этих каталогах прочитайте документацию на Wiki чтобы узнать, как создать свой шаблоны ODT документов:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Ключ к использованию веб-служб
     TestSubmitForm=Форма тестового ввода
     ThisForceAlsoTheme=Используя этот менеджер меню будет использоваться тема выбранная пользователем. Также этот менеджер меню для смартфонах работает не на всех смартфонах. Используйте другой менеджер меню если у вас возникли проблемы.
     ThemeDir=Каталог тем оформления
    -ConnectionTimeout=Время ожидания подключения
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Время ожидания ответа
     SmsTestMessage=Пробное сообщение от __PHONEFROM__ к ​​__PHONETO__
     ModuleMustBeEnabledFirst=Для использования этой функции необходимо сначала включить модуль <b>%s</b>
     SecurityToken=Ключ для шифрования URL-адресов
    -NoSmsEngine=Нет доступного менеджера SMS-рассылки. По умолчанию менеджер SMS-рассылки не установливаются (потому что они зависят от внешних поставщиков), но вы можете найти его на %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Вы можете настроить каждую глобальную опции для создания PDF-файлов
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Правила придумывания почтовых ящиков
     HideAnyVATInformationOnPDF=Скрыть всю информацию, связанную с налогом с продаж/НДС в сгенерированном PDF-файле
     PDFRulesForSalesTax=Правила для налога с продаж/НДС
     PDFLocaltax=Правила для %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Скрывать описания продуктов в создаваемых PDF-файлах
     HideRefOnPDF=Скрывать артикул товара в создаваемых PDF-файлах
     HideDetailsOnPDF=Скрывать строки с деталями продукции в создаваемых PDF-файлах
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Параметры безопасных URL`ов
     SecurityTokenIsUnique=Использовать уникальный параметр securekey для каждого URL
     EnterRefToBuildUrl=Введите ссылку на объект %s
     GetSecuredUrl=Получить рассчитанный URL
    -ButtonHideUnauthorized=Скрыть кнопки у пользователей не являющихся администраторами вместо отображения их в отключенном виде
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Предыдущее значение НДС
     NewVATRates=Новое значение НДС
     PriceBaseTypeToChange=Изменять базовые цены на определенную величину
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Выбрать из списка
     ExtrafieldSelectList = Выбрать из таблицы
     ExtrafieldSeparator=Разделитель (не поле)
     ExtrafieldPassword=Пароль
    -ExtrafieldRadio=Радио-кнопка (только по выбору)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Флажок
     ExtrafieldCheckBoxFromList=Флажки из таблицы
     ExtrafieldLink=Ссылка на объект
     ComputedFormula=Вычисленное поле
     ComputedFormulaDesc=Вы можете ввести здесь формулу, используя другие свойства объекта или любое PHP-кодирование, чтобы получить динамическое вычисленное значение. Вы можете использовать любые совместимые с PHP формулы, включая «?» оператор условия и следующий глобальный объект: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>Предупреждение</strong>: Доступны только некоторые свойства объекта $. Если вам нужны не загруженные свойства, просто введите себе объект в формулу, как во втором примере. <br>Использование вычисленного поля означает, что вы не можете вводить себе какое-либо значение из интерфейса. Кроме того, если есть синтаксическая ошибка, формула может ничего не возвращать.<br><br> Пример формулы: <br>$object-> id <10? round ($object-> id/2, 2): ($object-> id + 2 * $user-> id) * (int) substr ($mysoc-> zip, 1, 2) <br><br> Пример для перезагрузки объектаe<br> (( $reloadedobj = new Societe ($db)) && ($reloadedobj-> fetch ($obj-> id? $obj-> id: ($obj-> rowid? $obj-> rowid: $object-> id)) > 0))? $reloadedobj-> array_options ['options_extrafieldkey'] * $reloadedobj-> capital/5: '-1' <br><br>Другой пример формулы для принудительной загрузки объекта и его родительского объекта: <br> (($reloadedobj = new Task ($db)) && ($reloadedobj-> fetch ($object-> id)> 0) && ($secondloadedobj = new Project ($db)) && ($secondloadedobj-> fetch ($reloadedobj-> fk_project)> 0))? $secondloadedobj-> ref: «Родительский проект не найден»
    -ExtrafieldParamHelpPassword=Сохраните это поле пустым, значение будет сохранено без шифрования (поле должно быть скрыто только со звездой на экране) .<br>Установите здесь значение «авто», чтобы использовать правило шифрования по умолчанию для сохранения пароля в базу данных (тогда значение read будет хешем, нет способа вернуть первоначальное значение)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=Список значений должен быть строками с ключом формата, значением (где ключ не может быть «0») <br><br>, например: <br>1, значение1<br>2, значение2<br>code3, значение3<br> ... <br><br> Для того, чтобы список был в зависимости от другого списка дополнительных атрибутов: <br>1 , value1 | options_<i>parent_list_code</i>: parent_key<br>2, value2 | options_<i>parent_list_code</i>: parent_key <br><br> Для того, чтобы список был в зависимости от другого списка: <br>1, value1 | <i>parent_list_code</i>: parent_key<br>2, value2| <i>parent_list_code</i>: parent_key
     ExtrafieldParamHelpcheckbox=Список значений должен быть строками с ключом формата, значением (где ключ не может быть «0») <br><br>, например: <br>1, значение1<br>2, значение2<br>3, значение3<br> ...
     ExtrafieldParamHelpradio=Список значений должен быть строками с ключом формата, значением (где ключ не может быть «0») <br><br>, например: <br>1, значение1<br>2, значение2<br>3, значение3<br> ...
    @@ -432,39 +436,39 @@ DefaultLink=Ссылка по умолчанию
     SetAsDefault=Установить по умолчанию
     ValueOverwrittenByUserSetup=Предупреждение: это значение может быть перезаписано в настройках пользователя (каждый пользователь может задать свои настройки ссылки ClickToDial)
     ExternalModule=Внешний модуль - установлен в директорию %s
    -BarcodeInitForThirdparties=Массовое создание штрих-кодов для Контрагентов
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Массовое создание или удаление штрих-кода для Товаров или Услуг
     CurrentlyNWithoutBarCode=В настоящее время у вас есть <strong>%s</strong>запись на <strong>%s</strong>%s без определенного штрих-кода.
     InitEmptyBarCode=Начальное значения для следующих %s пустых записей
     EraseAllCurrentBarCode=Стереть все текущие значения штрих-кодов
     ConfirmEraseAllCurrentBarCode=Вы действительно хотите удалить все текущие значения штрих-кода?
     AllBarcodeReset=Все значения штрих-кодов были удалены
    -NoBarcodeNumberingTemplateDefined=В модуле формирования штрих-кодов не определен шаблон нумерации
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Включить кеш файлов
     ShowDetailsInPDFPageFoot=Добавьте более подробную информацию в нижний колонтитул PDF-файлов, например, адрес вашей компании или имена менеджеров (для заполнения профессиональных идентификаторов, капитала компании и номера НДС).
     NoDetails=Нет подробностей в нижнем колонтитуле
     DisplayCompanyInfo=Показать адрес компании
     DisplayCompanyManagers=Отображать имена менеджеров
     DisplayCompanyInfoAndManagers=Отображать имена адресов и менеджеров компаний
    -EnableAndSetupModuleCron=Если вы хотите, чтобы этот повторяющийся счет был создан автоматически, модуль *%s* должен быть включен и правильно настроен. В противном случае генерация счетов-фактур должна быть произведена вручную из этого шаблона с помощью кнопки * Создать *. Обратите внимание, что даже если вы включили автоматическую генерацию, вы можете безопасно запустить ручную генерацию. Генерация дубликатов за тот же период невозможна.
    -ModuleCompanyCodeCustomerAquarium=%s с последующим сторонним кодом клиента для кода учета клиентов
    -ModuleCompanyCodeSupplierAquarium=%s а затем код поставщика третьей стороны для кода учета поставщика
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Верните пустой учетный код.
     ModuleCompanyCodeDigitaria=Код учета зависит от стороннего кода. Код состоит из символа «C» в первой позиции, за которым следуют первые 5 символов кода третьей стороны.
     Use3StepsApproval=По умолчанию заказы на поставку должны быть созданы и одобрены двумя разными пользователями (один шаг/пользователь для создания и один шаг/пользователь для одобрения. Обратите внимание, что если у пользователя есть как разрешение на создание и утверждение, достаточно одного шага/пользователя) , Вы можете задать эту опцию, чтобы ввести утверждение третьего шага/пользователя, если сумма превышает выделенное значение (так что потребуется 3 шага: 1 = валидация, 2 = первое утверждение и 3 = второе одобрение, если суммы достаточно). <br>Установите это для пустого, если достаточно одного утверждения (2 шага), установите его на очень низкое значение (0,1), если требуется второе утверждение (3 шага).
     UseDoubleApproval=Используйте одобрение на 3 шага, когда сумма (без налога) выше ...
    -WarningPHPMail= ПРЕДУПРЕЖДЕНИЕ. Часто лучше настроить исходящие письма на использование сервера электронной почты вашего провайдера вместо настройки по умолчанию. Некоторые поставщики электронной почты (например, Yahoo) не позволяют отправлять электронную почту с другого сервера, кроме своего собственного сервера. Ваша текущая настройка использует сервер приложения для отправки электронной почты, а не сервера вашего почтового провайдера, поэтому некоторые получатели (тот, который совместим с ограничительным протоколом DMARC), спросят у вашего поставщика электронной почты, могут ли они принять вашу электронную почту и некоторых поставщиков электронной почты (например, Yahoo) могут отвечать «нет», потому что сервер не является их сервером, поэтому некоторые из ваших отправленных писем не могут быть приняты (обратите внимание также на отправку квоты поставщика электронной почты) .<br>Если ваш поставщик электронной почты (например, Yahoo) это ограничение, вы должны изменить настройку электронной почты, чтобы выбрать другой метод «SMTP-сервер», и введите SMTP-сервер и учетные данные, предоставленные вашим провайдером электронной почты (попросите своего поставщика EMail получить учетные данные SMTP для вашей учетной записи).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=Если вашему SMTP-провайдеру электронной почты необходимо ограничить почтовый клиент некоторыми IP-адресами (это очень редко), это IP-адрес почтового пользователя (MUA) для вашего приложения ERP CRM: <strong>%s</strong>.
     ClickToShowDescription=Нажмите, чтобы посмотреть описание
    -DependsOn=Этот модуль нуждается в модуле (модулях)
    +DependsOn=This module needs the module(s)
     RequiredBy=Этому модулю требуется модуль (модулями)
    -TheKeyIsTheNameOfHtmlField=Это имя поля HTML. Для этого нужно иметь технические знания для чтения содержимого страницы HTML, чтобы получить ключевое имя поля.
    -PageUrlForDefaultValues=Вы должны указать здесь относительный URL страницы. Если вы укажете параметры в URL-адресе, значения по умолчанию будут эффективны, если все параметры будут одинаковыми. Примеры:
    -PageUrlForDefaultValuesCreate=<br> Для формы, чтобы создать новую третью сторону, она <strong> %s </strong>, <br> Если вы хотите значение по умолчанию, только если url имеет некоторый параметр, вы можете использовать <strong> %s </strong>
    -PageUrlForDefaultValuesList=<br>Для страниц, которые перечисляют третьи стороны, это <strong>%s</strong>,<br>Если вы хотите значение по умолчанию, только если url имеет некоторый параметр, вы можете использовать <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Включить использование персонализированных значений по умолчанию
    -EnableOverwriteTranslation=Включить использование переписанного перевода
    -GoIntoTranslationMenuToChangeThis=Для ключа с этим кодом был найден перевод, поэтому, чтобы изменить это значение, вы должны отредактировать его из Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Предупреждение, установка порядка сортировки по умолчанию может привести к технической ошибке при переходе на страницу списка, если поле является неизвестным. Если у вас возникла такая ошибка, вернитесь на эту страницу, чтобы удалить порядок сортировки по умолчанию и восстановить поведение по умолчанию.
     Field=Поле
     ProductDocumentTemplates=Шаблоны документов для создания документа продукта
    @@ -476,16 +480,18 @@ SendEmailsReminders=Отправить напоминания по электр
     davDescription=Добавить компонент в качестве сервера DAV
     DAVSetup=Настройка модуля DAV
     DAV_ALLOW_PUBLIC_DIR=Включить общий каталог (каталог WebDav без необходимости входа)
    -DAV_ALLOW_PUBLIC_DIRTooltip=Общий каталог WebDav - это каталог WebDAV, к которому каждый может иметь доступ (в режиме чтения и записи), без необходимости использовать/использовать существующую учетную запись для входа/пароля.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Пользователи и группы
    +Module0Name=Пользователи и Группы
     Module0Desc=Управление Пользователями / Сотрудниками и Группами
    -Module1Name=Контрагенты
    -Module1Desc=Компании и управление контактами (клиенты, перспективы...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Коммерческие
     Module2Desc=Коммерческое управление
     Module10Name=Бухгалтерия
    -Module10Desc=Простые бухгалтерские отчеты (журналы, оборот) на основе содержимого базы данных. Не использует таблицу регистров.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Предложения
     Module20Desc=Управление коммерческими предложеними
     Module22Name=Почтовые рассылки
    @@ -495,7 +501,7 @@ Module23Desc=Мониторинг потребления энергии
     Module25Name=Заказы клиентов
     Module25Desc=Управление заказами клиентов
     Module30Name=Счета-фактуры
    -Module30Desc=Управелние счет-фактурами и кредитными заметками клиентов. Управелние счет-фактурами поставщиков
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Поставщики
     Module40Desc=Поставщики и управление закупками (заказы на поставку и выставление счетов)
     Module42Name=Отчет об ошибках
    @@ -511,13 +517,13 @@ Module52Desc=Управление акциями (продукция)
     Module53Name=Услуги
     Module53Desc=Управление услугами
     Module54Name=Контакты/Подписки
    -Module54Desc=Управление договорами (услугами или связанными подписками)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Штрих-коды
     Module55Desc=Управление штрих-кодами
     Module56Name=Телефония
     Module56Desc=Интеграция телефонии
     Module57Name=Прямые банковские поручения
    -Module57Desc=Управление прямыми дебиторскими платежными поручениями. Включая создание SEPA-файлов для европейских стран.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Интеграция с системами НажатьДляЗвонка (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Транспортные расходы
     Module75Desc=Управление транспортными расходами
     Module80Name=Отгрузки
     Module80Desc=Управление отгрузкой и доставкой заказов
    -Module85Name=Банки и наличные
    +Module85Name=Banks and Cash
     Module85Desc=Управление банковскими счетами или наличными
    -Module100Name=Внешний сайт
    -Module100Desc=Этот модуль добавляет внешний сайт или страницу в меню Dolibarr и отображает его небольшом окне
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman и SPIP
     Module105Desc=Модуль интерфейса для рассылок Mailman или SPIP
     Module200Name=LDAP
    -Module200Desc=Синхронизация каталогов LDAP
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=Интергация с PostNuke
     Module240Name=Экспорт данных
    -Module240Desc=Инструмент для экспорта данных Dolibarr  (с ассистентами)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Импорт данных
    -Module250Desc=Инструмент для импорта данных Dolibarr  (с ассистентами)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Участники
     Module310Desc=Управление участниками фонда
     Module320Name=RSS-канал
     Module320Desc=Добавление RSS-каналов на страницах Dolibarr
    -Module330Name=Закладки
    -Module330Desc=Управление закладками
    -Module400Name=Проекты/Возможности/Потенциальные клиенты
    -Module400Desc=Управление проектами, возможностями/выводами и/или задачами. Вы также можете назначить любой элемент (счет-фактура, заказ, предложение, вмешательство и т. д.) в проект и получить трансверсальный вид из представления проекта.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Веб-календарь
     Module410Desc=Интеграция веб-календаря
     Module500Name=Налоги и специальные расходы
     Module500Desc=Управление другими расходами (налоги на продажу, социальные или налоговые налоги, дивиденды, ...)
     Module510Name=Выплата заработной платы работникам
    -Module510Desc=Записывайте и следите за выплатой заработной платы сотрудникам
    +Module510Desc=Record and track employee payments
     Module520Name=Ссуда
     Module520Desc=Управление ссудами
     Module600Name=Уведомления о деловых событиях
    -Module600Desc=Отправлять сообщения электронной почты (инициированные некоторыми бизнес-событиями) пользователям (настройка, определенная для каждого пользователя), контактам сторонних разработчиков (настройка, определенная для каждой третьей стороны) или фиксированным электронным письмам
    -Module600Long=Обратите внимание, что этот модуль предназначен для отправки электронных писем в режиме реального времени, когда происходит определенное деловое событие. Если вы ищете функцию отправки напоминаний по электронной почте о своих событиях в повестке дня, зайдите в настройку модуля Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Варианты продукта
    -Module610Desc=Позволяет создавать варианты продуктов на основе атрибутов (цвет, размер, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Пожертвования
     Module700Desc=Управление пожертвованиями
     Module770Name=Отчёты о затратах
    -Module770Desc=Управление и утверждение отчётов о затратах (на транспорт, еду)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Коммерческое предложение продавца
     Module1120Desc=Запросить коммерческое предложение и цены продавца
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Генерация массового сообщения
     Module1780Name=Теги/Категории
     Module1780Desc=Создание тегов/категорий (продуктов, клиентов, поставщиков, контактов или членов)
     Module2000Name=Текстовый редактор WYSIWYG
    -Module2000Desc=Позволяет редаткировать некоторые текстовые области использую расширенный редактор (основанный на CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Динамическое ценообразование
     Module2200Desc=Разрешить использовать математические операции для цен
     Module2300Name=Запланированные задания
     Module2300Desc=Запланированное управление заданиями (псевдоним cron или chrono table)
     Module2400Name=События/Повестка дня
    -Module2400Desc=Следуйте за сделанными и предстоящими событиями. Пусть приложение регистрирует автоматические события для отслеживания или записывает ручные события или rendez-vous. Это основной важный модуль для хорошего управления взаимоотношениями с клиентами или поставщиками.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Система управления документами / Управление электронным контентом. Автоматическая организация ваших сгенерированных или сохраненных документов. Поделитесь им, когда вам нужно.
     Module2600Name=API/Веб-службы (SOAP-сервер)
    @@ -590,16 +596,16 @@ Module2600Desc=Включение Dolibarr SOAP сервера предоста
     Module2610Name= API/веб-службы (сервер REST)
     Module2610Desc=Включить сервер REST для Dolibarr, предоставляющий услуги API
     Module2660Name=Вызовите WebServices (клиент SOAP)
    -Module2660Desc=Включите клиент веб-сервисов Dolibarr (можно использовать для передачи данных/запросов на внешние серверы. Заказы поставщиков поддерживаются только на данный момент)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Всемирно распознаваемый аватар
    -Module2700Desc=Использование интернет-сервиса Gravatar (www.gravatar.com), для отображения фото пользователей / участников (связанных с их электронной почтой). Необходим доступ в Интернет
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP-клиент
     Module2900Name=GeoIPMaxmind
     Module2900Desc=Подключение к службе GeoIP MaxMind для преобразования IP-адреса в название страны
     Module3100Name=Skype
     Module3100Desc=Добавить кнопку Skype в карты пользователей/третьих лиц/контактов/членов
     Module3200Name=Неограниченные архивы
    -Module3200Desc=Активировать журнал некоторых бизнес-событий в неизменный журнал. События архивируются в режиме реального времени. Журнал представляет собой таблицу цепочечных событий, которые могут быть прочитаны и экспортированы. Этот модуль может быть обязательным для некоторых стран.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=Менеджер отдела кадров
     Module4000Desc=Управление персоналом (управление отделом, контракты и чувства сотрудников)
     Module5000Name=Группы компаний
    @@ -609,27 +615,31 @@ Module6000Desc=Управление рабочим процессом (авто
     Module10000Name=Веб-сайты
     Module10000Desc=Создавайте публичные сайты с помощью редактора WYSIWG. Просто настройте свой веб-сервер (Apache, Nginx, ...), чтобы указать на выделенный каталог Dolibarr, чтобы он был онлайн в Интернете с вашим собственным доменным именем.
     Module20000Name=Заявления на отпуск
    -Module20000Desc=Управление заявлениями на отпуск и соблюдение графика отпусков работниками
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Ассортимент продукции
     Module39000Desc=Лот или серийный номер, управление питанием и продажами по продуктам
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Модуль, предлагающий страницу онлайн-оплаты, принимающую платежи с помощью кредитной/дебетовой карты через PayBox. Это можно использовать, чтобы позволить вашим клиентам делать бесплатные платежи или оплату на определенном объекте Dolibarr (счет-фактура, заказ, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Точка продаж
     Module50100Desc=Модуль точки продаж (POS).
    +Module50150Name=Точка продаж
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Модуль, чтобы предлагать страницу онлайн-платежей, принимающую платежи с использованием PayPal (кредитная карта или кредит PayPal). Это можно использовать, чтобы позволить вашим клиентам делать бесплатные платежи или оплату на определенном объекте Dolibarr (счет-фактура, заказ, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Учет (продвинутый)
    -Module50400Desc=Управление учетными записями (двойные записи, общие и вспомогательные регистры). Экспортируйте книгу в несколько других форматов программного обеспечения бухгалтерского учета.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=Модуль PrintIPP
    -Module54000Desc=Прямая печать (без открытия документа) использует интерфейс Cups IPP  (Принтер должен быть доступен с сервера, и система печати CUPS  должна быть установлена на сервере). 
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Голосование, обзор или голосование
    -Module55000Desc=Модуль для онлайн-опросов, опросов или голосов (например, Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Наценки
     Module59000Desc=Модуль управления наценками
     Module60000Name=Комиссии
     Module60000Desc=Модуль управления комиссиями
     Module62000Name=Обязанности по доставке товаров
    -Module62000Desc=Добавить функции для управления обязанностями по доставке товаров
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Ресурсы
     Module63000Desc=Управляйте ресурсами (принтеры, автомобили, комнаты, ...), затем вы можете делиться событиями
     Permission11=Просмотр счетов-фактур клиентов
    @@ -651,9 +661,9 @@ Permission32=Создание / изменение продукции / услу
     Permission34=Удаленные продукция / услуги
     Permission36=Просмотр / управление скрытой продукцией / услугами
     Permission38=Экспорт продукции
    -Permission41=Прочитайте проекты и задачи (общий проект и проекты, к которым я обращаюсь). Можно также ввести время, затраченное на меня или мою иерархию, на назначенные задачи (расписание)
    -Permission42=Создание / изменение проектов и задач (общие и мои проекты). Можно так же создать задачи и назначить пользователей для выполнения проекта и задач
    -Permission44=Удаление проектов (общих и моих проектов)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Экспорт проектов
     Permission61=Смотреть мероприятия
     Permission62=Создание / измение мероприятий
    @@ -686,7 +696,7 @@ Permission109=Удалить отправки
     Permission111=Читать финансовую отчетность
     Permission112=Создать / изменить / удалить и сравнить сделоки
     Permission113=Настройка финансовых учётных записей (создание, изменение категорий)
    -Permission114=Согласовать транзакции
    +Permission114=Reconcile transactions
     Permission115=Экспорт операций и выписок со счета
     Permission116=Перераспределение средств между счетами
     Permission117=Управление диспетчеризацией чеков
    @@ -694,15 +704,15 @@ Permission121=Просмотр контрагентов, связанных с 
     Permission122=Создать / изменить контрагентов, связанных с пользователем
     Permission125=Удалить контрагентов, связанных с пользователем
     Permission126=Экспорт контрагентов
    -Permission141=Просмотр всех проектов и задач (так же частные проекты в которых я не контактное лицо)
    -Permission142=Создать / изменить все проекты и задачи (так же частные проекты в которых я не контактное лицо)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Удалить все проекты и задачи (так же частные проекты в которых я не контактное лицо)
     Permission146=Посмотреть провайдеров
     Permission147=Посмотреть статистику
     Permission151=Посмотреть заказанные прямые дебетные платежи
     Permission152=Создать / изменить заказанные прямые дебетные платежи
     Permission153=Отправка / Передача заказанных прямых дебетовых платежей
    -Permission154=Запись Кредитных / Отклоненных прямых дебетовых платежей
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Посмотреть котракты/подписки
     Permission162=Создать/изменить котракты/подписки
     Permission163=Активировать услугу/подписку в контракте
    @@ -725,7 +735,7 @@ Permission187=Закрыть заказы поставщика
     Permission188=Отмена заказов поставщику
     Permission192=Создать строки
     Permission193=Отмена строк
    -Permission194=Посмотреть пропускную способность линий
    +Permission194=Read the bandwidth lines
     Permission202=Создать ADSL соединения
     Permission203=Заказ соединения заказов
     Permission204=Заказ подключений
    @@ -750,12 +760,12 @@ Permission244=Посмотреть содержание скрытых кате
     Permission251=Посмотреть других пользователей и группы
     PermissionAdvanced251=Посмотреть других пользователей
     Permission252=Посмотреть права доступа других пользователей
    -Permission253=Создание / Изменение других пользователей, групп и прав доступа
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Создать / изменить внутренних / внешних пользователей и права доступа
     Permission254=Создать / изменить только внешних пользователей
     Permission255=Изменить пароли других пользователей
     Permission256=Удалить или отключить других пользователей
    -Permission262=Расширенный доступ ко всем контрагентам (не только контрагентов пользователей являющихся торговыми представителями).<br> Не эффективно для внешних пользователей (всегда ограниченные только предложениями, заказами, счетами-фактурами, контрактами и т.д.).<br>Не эффективно для проектов (только правила разрешений проекта, видимости и распределение вопросов).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Читать CA
     Permission272=Читать счета
     Permission273=Выпуск счетов
    @@ -765,7 +775,7 @@ Permission283=Удалить контакты
     Permission286=Экспортировать контакты
     Permission291=Читать тарифы
     Permission292=Установка разрешений на тарифы
    -Permission293=Изменение тарифов клиентам
    +Permission293=Modify customers tariffs
     Permission300=Читать штрих-коды
     Permission301=Создать / изменить штрих-коды
     Permission302=Удалить штрих-коды
    @@ -787,11 +797,9 @@ Permission401=Читать скидки
     Permission402=Создать / изменить скидки
     Permission403=Проверить скидки
     Permission404=Удалить скидки
    -Permission501=Читать контракты/зарплаты сотрудников
    -Permission502=Создание/изменение контрактов/зарплат сотрудников
    -Permission511=Прочитать выплату зарплат
    -Permission512=Создание/изменение выплаты заработной платы
    -Permission514=Удалить зарплаты
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Экспорт зарплат
     Permission520=Открыть ссуды
     Permission522=Создать/изменить ссуды
    @@ -844,8 +852,8 @@ Permission1251=Запуск массового импорта внешних д
     Permission1321=Экспорт клиентом счета-фактуры, качества и платежей
     Permission1322=Повторно открыть оплаченный счет
     Permission1421=Экспорт заказов и атрибуты
    -Permission20001=Прочитайте запросы на отпуск (ваши отпуска и один из ваших подчиненных)
    -Permission20002=Создавайте/изменяйте ваши запросы на отпуск (ваши листья и один из ваших подчиненных)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Удалить заявления на отпуск
     Permission20004=Читайте все запросы на отпуск (даже пользователь не подчиняется)
     Permission20005=Создавать/изменять запросы на отпуск для всех (даже для пользователей, не подчиненных)
    @@ -880,8 +888,8 @@ Permission63001=Чтение ресурсов
     Permission63002=Создание/изменение ресурсов
     Permission63003=Удалить ресурсы
     Permission63004=Свяжите ресурсы с повесткой дня
    -DictionaryCompanyType= Тип компании
    -DictionaryCompanyJuridicalType= Организационно-правовая форма
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Потенциальный уровень предполагаемого клиента
     DictionaryCanton=Штат/Провинция
     DictionaryRegion=Регионы
    @@ -894,7 +902,7 @@ DictionaryVAT=Значения НДС или налога с продаж
     DictionaryRevenueStamp=Количество налоговых марок
     DictionaryPaymentConditions=Условия оплаты
     DictionaryPaymentModes=Режимы оплаты
    -DictionaryTypeContact=Типы Контактов/Адресов
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Тип страниц/контейнеров
     DictionaryEcotaxe=Экологический налог Ecotax (WEEE)
     DictionaryPaperFormat=Форматы бумаги
    @@ -908,47 +916,47 @@ DictionarySource=Происхождение Коммерческих предл
     DictionaryAccountancyCategory=Персонализированные группы для отчетов
     DictionaryAccountancysystem=Модели для диаграммы счетов
     DictionaryAccountancyJournal=Бухгалтерские журналы
    -DictionaryEMailTemplates=Шаблоны электронных писем
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Единицы
     DictionaryProspectStatus=Статус контакта
    -DictionaryHolidayTypes=Типы отпусков
    -DictionaryOpportunityStatus=Статус предполагаемого проекта
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Отчет о расходах - Категории транспорта
     DictionaryExpenseTaxRange=Отчет о расходах - Диапазон по транспортной категории
     SetupSaved=Настройки сохранены
     SetupNotSaved=Установки не сохранены
     BackToModuleList=Вернуться к списку модулей
    -BackToDictionaryList=Назад к списку словарей
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Тип налоговой печати
    -VATManagement=НДС менеджмент
    -VATIsUsedDesc=По умолчанию при создании потенциальных клиентов, счетов-фактур, заказов и т. Д. Ставка НДС соответствует действующему стандарту: <br> Если продавец не облагается НДС, то НДС по умолчанию равен 0. Конец правила. <br>Если (страна продажи = страна покупки), тогда НДС по умолчанию равен НДС продукта в стране продажи. Конец правила.  <br>Если продавец и покупатель находятся в Европейском Сообществе, а товары - это транспортные продукты (автомобиль, судно, самолет), то НДС по умолчанию равен 0 (НДС должен быть оплачен покупателем в обычном офисе его страны, а не продавец). Конец правила.  <br>Если продавец и покупатель находятся в Европейском сообществе, а покупатель не является компанией, тогда НДС по умолчанию соответствует НДС проданного продукта. Конец правила.  <br>Если продавец и покупатель находятся в Европейском Сообществе, а покупатель - компания, то по умолчанию НДС равен 0. Конец правила. <br>В любом случае предложенный дефолт равен VAT = 0. Конец правила.
    -VATIsNotUsedDesc=По умолчанию, предлагаемый НДС 0, которая может быть использована как для дела ассоциаций, отдельных лиц или небольших компаний.
    -VATIsUsedExampleFR=Во Франции это означает, что компании или организации имеют реальную финансовую систему (упрощенную реальную или нормальную реальность). Система, в которой объявляется НДС.
    -VATIsNotUsedExampleFR=Во Франции это означает ассоциации, которые не декларируются НДС, или компании, организации или либеральные профессии, которые выбрали фискальную систему микропредприятия (НДС в франшизе) и заплатили налог на франшизу без декларации НДС. Этот выбор отобразит ссылку «Не применимый НДС - art-293B CGI» на счета-фактуры.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Ставка
     LocalTax1IsNotUsed=Не использовать второй налог
    -LocalTax1IsUsedDesc=Использовать второй тип налога (отличный от НДС)
    -LocalTax1IsNotUsedDesc=Не использовать другой тип налога (отличный от НДС)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Второй тип налога
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Не использовать третий налог
    -LocalTax2IsUsedDesc=Использовать третий тип налога (отличный от НДС)
    -LocalTax2IsNotUsedDesc=Не использовать другой тип налога (отличный от НДС)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Третий тип налога
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE управления
    -LocalTax1IsUsedDescES= RE ставка по умолчанию при создании потенциального клиента, счета, заказы и т.д. последующей стандартных правил: <br> Если те покупатель не подвергается RE, RE по умолчанию = 0. Конец правления. <br> Если покупатель подвергается RE затем RE по умолчанию. Конец правления. <br>
    -LocalTax1IsNotUsedDescES= По умолчанию предлагается RE 0. Конец правления.
    -LocalTax1IsUsedExampleES= В Испании они являются профессионалами с учетом некоторых конкретных разделов испанский ИАЭ.
    -LocalTax1IsNotUsedExampleES= В Испании они являются профессиональными и общества и при условии соблюдения определенных слоев испанского ИАЭ.
    -LocalTax2ManagementES= IRPF управления
    -LocalTax2IsUsedDescES= RE ставка по умолчанию при создании потенциального клиента, счета, заказы и т.д. последующей стандартных правил: <br> Если продавец не подвергается IRPF, то IRPF по умолчанию = 0. Конец правления. <br> Если продавец подвергается IRPF то IRPF по умолчанию. Конец правления. <br>
    -LocalTax2IsNotUsedDescES= По умолчанию предлагается IRPF 0. Конец правления.
    -LocalTax2IsUsedExampleES= В Испании, фрилансеры и независимые специалисты, которые оказывают услуги и компаний, которые выбрали налоговой системы модулей.
    -LocalTax2IsNotUsedExampleES= В Испании они бизнес не облагается налогом на системе модулей.
    +LocalTax1ManagementES=RE управления
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=По умолчанию предлагается RE 0. Конец правления.
    +LocalTax1IsUsedExampleES=В Испании они являются профессионалами с учетом некоторых конкретных разделов испанский ИАЭ.
    +LocalTax1IsNotUsedExampleES=В Испании они являются профессиональными и общества и при условии соблюдения определенных слоев испанского ИАЭ.
    +LocalTax2ManagementES=IRPF управления
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=По умолчанию предлагается IRPF 0. Конец правления.
    +LocalTax2IsUsedExampleES=В Испании, фрилансеры и независимые специалисты, которые оказывают услуги и компаний, которые выбрали налоговой системы модулей.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Отчеты о местных налогах
     CalcLocaltax1=Продажи-Покупки
     CalcLocaltax1Desc=Отчёты о местных налогах  - это разница между  местными налогами с продаж и покупок
    @@ -958,7 +966,9 @@ CalcLocaltax3=Продажи
     CalcLocaltax3Desc=Отчёты о местных налогах  - это итог местных налогов с продаж
     LabelUsedByDefault=Метки, используемые по умолчанию, если нет перевода можно найти код
     LabelOnDocuments=Этикетка на документах
    -NbOfDays=Кол-во дней
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=На конец месяца
     CurrentNext=Текущая/Следующая
     Offset=Сдвиг
    @@ -984,7 +994,7 @@ DatabaseUser=Пользователь базы данных
     DatabasePassword=Пароль базы данных
     Tables=Таблицы
     TableName=Наименование таблицы
    -NbOfRecord=Кол-во записей
    +NbOfRecord=No. of records
     Host=Сервер
     DriverType=Тип драйвера
     SummarySystem=Обзор системной информации
    @@ -996,7 +1006,7 @@ Skin=Тема оформления
     DefaultSkin=Тема по умолчанию
     MaxSizeList=Максимальная длина списка
     DefaultMaxSizeList=Максимальная длина по умолчанию для списков
    -DefaultMaxSizeShortList=Максимальная длина по умолчанию для коротких списков (то есть в карточке клиента)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Сообщение дня
     MessageLogin=Сообщение на странице входа
     LoginPage=Страница авторизации
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Постоянный поиск формы на лево
     DefaultLanguage=Язык по умолчанию (код языка)
     EnableMultilangInterface=Включить многоязычный интерфейс
     EnableShowLogo=Показать логотип на левом меню
    -CompanyInfo=Информация о компании/организации
    -CompanyIds=Идентификационные данные компаний/организаций
    +CompanyInfo=Компания/Организация
    +CompanyIds=Company/Organization identities
     CompanyName=Имя
     CompanyAddress=Адрес
     CompanyZip=Индекс
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Владелец банковского счета %s
     BankModuleNotActive=Модуль Банковских счетов не активирован
     ShowBugTrackLink=Показать ссылку "<strong>%s</strong>"
     Alerts=Предупреждения
    -DelaysOfToleranceBeforeWarning=Терпимость задержки перед предупреждение
    -DelaysOfToleranceDesc=Этот экран позволяет вам определить мириться с задержками до готовности сообщения на экране при picto %s в конце каждого элемента.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Толерантность задержки (в днях) до предупреждения о запланированных событиях (событиях повестки дня) еще не завершена
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Толерантность задержки (в днях) до предупреждения о незавершенном проекте
    -Delays_MAIN_DELAY_TASKS_TODO=Допуск задержки (в днях) до предупреждения о запланированных задачах (задачах проекта) еще не завершен
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Допуск задержки (в днях) до того, как предупреждение о заказах еще не обработано
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Допуск задержки (в днях) до того, как предупреждение о заказах на поставку еще не обработано
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Задержка толерантности (в днях) до оповещения о предложениях, чтобы закрыть
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Задержка толерантности (в днях) до оповещения о предложениях не будет взиматься
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Терпимость задержки (в днях) до готовности на услуги для активации
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Терпимость задержки (в днях) до оповещения о истек услуги
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Терпимость задержки (в днях) до готовности на неоплачиваемую поставщиком счета-фактуры
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Терпимость задержки (в днях) до готовности на неоплачиваемую клиентом счета-фактуры
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Терпимость задержки (в днях) до оповещения о текущих банковских счетов
    -Delays_MAIN_DELAY_MEMBERS=Толерантность задержки (в днях) до оповещения по отсроченным членский взнос
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Терпимость задержки (в днях) до полной готовности к чеки сделать депозит
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Задержка допуска (в днях) перед предупреждением для отчетов о расходах для утверждения
    -SetupDescription1=Зона настройки предназначена для первоначальных параметров настройки перед началом использования Dolibarr.
    -SetupDescription2=Два обязательных этапа установки следующие шаги (две первые записи в левом меню настройки):
    -SetupDescription3=Настройки в меню <a href="%s">%s->%s</a>. Этот шаг требуется, поскольку он определяет данные, используемые на экранах Dolibarr, для настройки поведения программного обеспечения по умолчанию (например, для связанных с страной функций).
    -SetupDescription4=Настройки в меню <a href="%s">%s ->%s</a>. Этот шаг необходим, поскольку Dolibarr ERP/CRM представляет собой набор из нескольких модулей/приложений, все более или менее независимых. Новые функции добавляются в меню для каждого модуля, который вы активируете.
    -SetupDescription5=Другие пункты меню управления необязательных параметров.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Безопасность ревизии события
    -Audit=Аудит
    +Audit=Security events
     InfoDolibarr=О Dolibarr
     InfoBrowser=О браузере
     InfoOS=Об ОС
    @@ -1056,20 +1066,20 @@ BrowserName=Имя браузера
     BrowserOS=Операционная система браузера
     ListOfSecurityEvents=Список Dolibarr безопасность события
     SecurityEventsPurged=Безопасность событий очищены
    -LogEventDesc=Вы можете включить в журнале событий безопасности Dolibarr здесь. Администраторы могут увидеть его содержимое с помощью меню <b>System Tools - Аудит.</b> Внимание, эта функция может занимать большой объем данных в базе данных.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Параметры настройки могут быть установлены только <b> пользователем администратора </b>.
     SystemInfoDesc=Система информации разного техническую информацию Вы получите в режиме только для чтения и видимые только для администраторов.
     SystemAreaForAdminOnly=Эта область доступна для пользователей только администратором. Ни одно из разрешений Dolibarr может снизить этот предел.
    -CompanyFundationDesc=Измените на этой странице всю известную информацию о компании или фонде, которую вам нужно управлять (для этого нажмите кнопку «%s» или «%s» внизу страницы)
    -AccountantDesc=Изменить на этой странице всю известную информацию о вашем бухгалтере/бухгалтере
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=Номер файла
     DisplayDesc=Вы можете выбрать каждого параметра, связанных с Dolibarr выглядеть и чувствовать себя здесь
     AvailableModules=Доступное приложение/модули
     ToActivateModule=Чтобы активировать модуль, перейдите на настройку зоны.
     SessionTimeOut=Тайм-аут для сессии
    -SessionExplanation=Это гарантия того, что число сессии никогда не истечет до этой задержки. Но PHP sessoin управления не гарантирует, что сессия всегда заканчивается по истечении этой задержки: Это происходит, если система для очистки кэша сессии запущен. <br> Примечание: без каких-либо конкретной системы, внутренние PHP процесс чистой сессия каждые <b>примерно %s /% с</b> доступом, но только во время доступа, сделанные другими сессиями.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Доступные триггеры
    -TriggersDesc=Триггеры представляют собой файлы, которые изменяют поведение Dolibarr рабочий раз скопировать в директорию <b>htdocs / входит / триггеров.</b> Они реализованы новые действия, активированные на Dolibarr событий (создание новой компании, проверка счетов-фактур, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Триггеры этого файла отключено <b>NORUN-суффикс</b> в названии.
     TriggerDisabledAsModuleDisabled=Триггеры в этом файле будут отключены как <b>модуль %s</b> отключен.
     TriggerAlwaysActive=Триггеры в этом файле, всегда активны, независимо являются активированный Dolibarr модули.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Вставьте все справочные данные. Вы 
     ConstDesc=Эта страница позволяет редактировать все другие параметры, недоступные на предыдущих страницах. Это в основном зарезервированные параметры для разработчиков или расширенные способы устранения неполадок. Список опций <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=Все остальные параметры, связанные с безопасностью, определены здесь.
     LimitsSetup=Пределы / Точная настройка
    -LimitsDesc=Вы можете определить лимиты, уточнения и optimisations используемой Dolibarr здесь
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Макс десятичных цен за единицу
     MAIN_MAX_DECIMALS_TOT=Макс десятичных общей цены
     MAIN_MAX_DECIMALS_SHOWN=Макс десятичных цен отображается на экране (Добавить <b>...</b> После этого, если вы хотите посмотреть <b>...</b> когда число усекается когда отображаются на экране)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Шаг округления (для стран, где о
     UnitPriceOfProduct=Чистая цена единицы продукта
     TotalPriceAfterRounding=Общая стоимость (нетто / НДС / включая налоги) после округления
     ParameterActiveForNextInputOnly=Параметр эффективным для следующего ввода только
    -NoEventOrNoAuditSetup=Нет безопасности событие было зафиксировано еще. Это может быть нормально, если проверка не была включена в "Настройка - Безопасность - аудит" страница.
    -NoEventFoundWithCriteria=Нет событий безопасности была обнаружена в таких поисковых критериев.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=См. вашей локальной настройки Sendmail
     BackupDesc=Чтобы сделать полную резервную копию Dolibarr, Вам необходимо:
     BackupDesc2=Сохраните каталог содержимого документов (<b>%s</b>), который содержит все загруженные и сгенерированные файлы (поэтому он включает все файлы дампа, сгенерированные на шаге 1).
    -BackupDesc3=Сохраняет содержание вашей базы данных  (<b>%s</b>)  в файл. Для этого используйте следующей мастер.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Архивированный каталог должны храниться в безопасном месте.
     BackupDescY=Генерируемый файла дампа следует хранить в надежном месте.
    -BackupPHPWarning=Использование этого метода не гарантирует создание резервной копии. Предыдущий метод предпочтительнее.
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Для восстановления резервной Dolibarr, Вам необходимо:
    -RestoreDesc2=Восстановите файл архива (например, zip-файл) каталога документов, чтобы извлечь дерево файлов в каталог документов новой установки Dolibarr или в эту текущую документацию directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Восстановите данные из резервного файла дампа в базу данных новой установки Dolibarr или в базу данных этой текущей установки (<b>%s</b>). Предупреждение. После завершения восстановления вы должны использовать логин/пароль, существовавшие при создании резервной копии, для повторного подключения. Чтобы восстановить резервную базу данных в этой текущей установке, вы можете следовать за этим помощником.
     RestoreMySQL=Иvпорт MySQL
     ForcedToByAModule= Это правило <b>вынуждены %s</b> на активированный модуль
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Вы должны запуст
     YourPHPDoesNotHaveSSLSupport=SSL функций, не доступных в PHP
     DownloadMoreSkins=Дополнительные шкуры для загрузки
     SimpleNumRefModelDesc=Вернуться номер с форматом %syymm-NNNN, где YY это год, месяц мм и NNNN последовательность без отверстия и без сброса
    -ShowProfIdInAddress=Показать профессионала идентификатор с адресами на документах
    -ShowVATIntaInAddress=Скрыть НДС Int num с адресами на документы
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Частичный перевод
    -MAIN_DISABLE_METEO=Отключить метео зрения
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Стандартный режим
     MeteoStdModEnabled=Стандартный режим включен
     MeteoPercentageMod=Процентный режим
     MeteoPercentageModEnabled=Включен режим процента
     MeteoUseMod=Нажмите, чтобы использовать%s
     TestLoginToAPI=Испытание Войти в API
    -ProxyDesc=Некоторые особенности Dolibarr необходимо иметь доступ в Интернет для работы. Определить параметры здесь для этого. Если сервер Dolibarr находится за прокси-сервера, эти параметры рассказывает Dolibarr как получить доступ к интернет через него.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Внешний доступ
     MAIN_PROXY_USE=Использовать прокси-сервер (в противном случае прямого доступа к интернету)
     MAIN_PROXY_HOST=Имя / Адрес прокси-сервера
     MAIN_PROXY_PORT=Порт прокси-сервера
     MAIN_PROXY_USER=Войти, чтобы использовать прокси-сервер
     MAIN_PROXY_PASS=Пароль для использования прокси-сервера
    -DefineHereComplementaryAttributes=Определить здесь все атрибуты, а не уже доступны по умолчанию, и что вы хотите быть поддерживается %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Дополнительные атрибуты
     ExtraFieldsLines=Дополнительные атрибуты (строки)
     ExtraFieldsLinesRec=Дополнительные атрибуты (шаблоны счетов-фактур)
     ExtraFieldsSupplierOrdersLines=Дополнительные атбрибуты (строки заказа)
     ExtraFieldsSupplierInvoicesLines=Дополнительные атрибуты (строки счёта)
     ExtraFieldsThirdParties=Дополнительные атрибуты (контрагенты)
    -ExtraFieldsContacts=Дополнительные атрибуты (контакт/адрес)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Дополнительные атрибуты (Участник)
     ExtraFieldsMemberType=Дополнительные атрибуты (тип Участника)
     ExtraFieldsCustomerInvoices=Дополнительные атрибуты (Счета-Фактуры)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=только латинские строчны
     SendmailOptionNotComplete=Предупреждение, на некоторых системах Linux, для отправки электронной почты из электронной почты, Sendmail выполнения установки должны conatins опцию-ба (параметр mail.force_extra_parameters в файле php.ini). Если некоторые получатели не получают электронные письма, попытке изменить этот параметр с PHP mail.force_extra_parameters =-ба).
     PathToDocuments=Путь к документам
     PathDirectory=Каталог
    -SendmailOptionMayHurtBuggedMTA=Функция отправки писем с использованием метода «PHP mail direct» будет генерировать почтовое сообщение, которое может быть неправильно проанализировано некоторыми почтовыми серверами. Результатом является то, что некоторые письма не могут быть прочитаны людьми, размещенными на этих прослушиваемых платформах. Это случай для некоторых интернет-провайдеров (например: Orange во Франции). Это не проблема в Dolibarr и PHP, а на получение почтового сервера. Однако вы можете добавить опцию MAIN_FIX_FOR_BUGGED_MTA в 1 - setup - другое для модификации Dolibarr, чтобы этого избежать. Однако у вас могут возникнуть проблемы с другими серверами, которые строго соблюдают стандарт SMTP. Другое решение (рекомендуется) - использовать метод «Библиотека сокетов SMTP», который не имеет недостатков.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Настройка перевода
     TranslationKeySearch=Поиск ключа перевода или строки
     TranslationOverwriteKey=Перезаписать строку перевода
     TranslationDesc=Как установить отображаемый язык приложения: <br> * Systemwide: menu <strong>Home - Setup - Display</strong><br> * На пользователя: используйте вкладку <strong> дисплея дисплея </strong>User на карточке пользователя (нажмите на имя пользователя в верхней части экрана).
     TranslationOverwriteDesc=Вы также можете переопределить строки, заполняющие следующую таблицу. Выберите свой язык из раскрывающегося списка «%s», вставьте строку перевода в «%s» и ваш новый перевод в «%s»
    -TranslationOverwriteDesc2=Вы можете использовать другую вкладку, чтобы помочь вам узнать, какой ключ перевода использовать
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Строка перевода
     CurrentTranslationString=Текущая строка перевода
     WarningAtLeastKeyOrTranslationRequired=Критерии поиска требуются, по крайней мере, для строки ключа или перевода
     NewTranslationStringToShow=Новая строка перевода для показа
     OriginalValueWas=Исходный перевод перезаписан. Исходное значение: <br><br>%s
    -TransKeyWithoutOriginalValue=Вы заставили новый перевод для ключа перевода '<strong>%s</strong>' который не существует в каких-либо языковых файлах
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Активированное приложение/модули: <b>%s</b>/<b>%s</b>
     YouMustEnableOneModule=Вы должны включить минимум 1 модуль
    -ClassNotFoundIntoPathWarning=Класс %s не найден по PHP пути
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Да летом
    -OnlyFollowingModulesAreOpenedToExternalUsers=Примечание. Для внешних пользователей открыты только следующие модули (независимо от разрешения таких пользователей), и только если были предоставлены разрешения:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Хранилище сессий шифровано системой SUHOSIN
     ConditionIsCurrently=Текущее состояние %s
    -YouUseBestDriver=Вы используете драйвер %s, который на текущий момент является самым подходящим
    -YouDoNotUseBestDriver=Вы используете устройство %s, но драйвер этого устройства %s не рекомендуется ипользовать. 
    -NbOfProductIsLowerThanNoPb=У вас только %s Товаров/Услуг в базе данных. Это не требует никакой оптимизации.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Поисковая оптимизация
    -YouHaveXProductUseSearchOptim=У вас есть продукт %s в базе данных. Вы должны добавить константу PRODUCT_DONOTSEARCH_ANYWHERE в 1 в Home-Setup-Other, вы ограничиваете поиск начальными строками, чтобы база данных могла использовать индекс, и вы должны получить немедленный ответ.
    -BrowserIsOK=Вы используете браузер %s. Это хороший выбор с точки зрения производительности и безопасности.
    -BrowserIsKO=Вы используете веб-браузер %s. Этот браузер, как известно, является плохим выбором для обеспечения безопасности, производительности и надежности. Мы рекомендуем вам использовать Firefox, Chrome, Opera или Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug загружен.
     XCacheInstalled=XCache загружен.
    -AddRefInList=Отображение клиента/поставщика ref в списке (выберите список или combobox) и большую часть гиперссылки. Третьи стороны появятся с именем «CC12345 - SC45678 - Крупная компания coorp», а не «Крупная компания coorp».
    -AskForPreferredShippingMethod=Попросите предпочтительный метод отправки для третьих сторон.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Редакция поля %s
     FillThisOnlyIfRequired=Например, +2 (заполняйте это поле только тогда, когда ваш часовой пояс отличается от того, который используется на сервере)
     GetBarCode=Получить штрих-код
     ##### Module password generation
     PasswordGenerationStandard=Возврат пароля, полученных в соответствии с внутренними Dolibarr алгоритма: 8 символов, содержащих общие цифры и символы в нижнем регистре.
    -PasswordGenerationNone=Не предлагайте никаких сгенерированных паролей. Пароль должен быть введен вручную.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Верните пароль в соответствии с вашей личной конфигурацией.
     SetupPerso=Согласно вашей конфигурации
     PasswordPatternDesc=Описание шаблона паролей
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail, необходимые для создания ново
     HRMSetup=Настройка модуля HRM
     ##### Company setup #####
     CompanySetup=Предприятия модуль настройки
    -CompanyCodeChecker=Модуль для генерации и проверки кода сторонних производителей (клиент или поставщик)
    -AccountCodeManager=Модуль для формирования кода учета (клиент или поставщик)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=Функция уведомлений электронной почты позволяет вам тихо отправлять автоматическую почту для некоторых событий Dolibarr. Цели уведомлений могут быть определены:
     NotificationsDescUser=* для пользователей, по одному пользователю.
     NotificationsDescContact=* для сторонних контактов (клиентов или поставщиков), по одному контакту.
     NotificationsDescGlobal=* или путем установки глобальных целевых сообщений электронной почты на странице настройки модуля.
    -ModelModules=Документы шаблоны
    -DocumentModelOdt=Создавать документы из шаблонов форматов OpenDocuments (.ODT or .ODS файлы для OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark по проекту документа
     JSOnPaimentBill=Активировать фунцию автозаполнения строк платежа в платёжной форме
    -CompanyIdProfChecker=Профессиональные Id уникальным
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Должно быть уникальным?
    -MustBeMandatory=Обязательно создавать третьи лица?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Обязательно проверять счета-фактуры?
     TechnicalServicesProvided=Предоставляемые технические услуги
     #####DAV #####
    -WebDAVSetupDesc=Это ссылки для доступа к каталогу WebDAV. Он содержит открытый доступ к любому пользователю, который знает URL (если разрешен доступ к общедоступной директории) и «частный» каталог, для которого требуется существующая учетная запись/пароль для входа.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Корневой URL-адрес сервера %s: %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Экспорт ссылка <b>на %s</b> формате доступна на следующую ссылку: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Экспорт ссылка <b>на %s</b> формате
     BillsSetup=Счета модуль настройки
     BillsNumberingModule=Счета и кредитных нот нумерации модуль
     BillsPDFModules=Счет документы моделей
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Модели платежных документов
     CreditNote=Кредитное авизо
     CreditNotes=Кредитные авизо
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Управление логином для каждого
     AdherentMailRequired=Электронная почта необходимая для создания нового пользователя
     MemberSendInformationByMailByDefault=Чекбокс отправить по почте подтверждение членов по умолчанию
     VisitorCanChooseItsPaymentMode=Посетитель может выбрать один из доступных режимов оплаты
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=Установка LDAP
     LDAPGlobalParameters=Глобальные параметры
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Тестирование синхронизации т
     LDAPTestSearch= Тестировать поиск LDAP 
     LDAPSynchroOK=Синхронизация успешные испытания
     LDAPSynchroKO=Сбой синхронизации тест
    -LDAPSynchroKOMayBePermissions=Сбой синхронизации испытания. Убедитесь, что соединение с сервером правильно настроен, и позволяет LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=TCP соединение с сервером LDAP успешного (Server= %s, Порт= %s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=TCP соединение с сервером LDAP Failed (Server= %s, Порт= %s)
    -LDAPBindOK=Соединение и авторизация с сервером  LDAP прошла успешно (Сервер=%s, Порт=%s, Администратор=%s, Пароль=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=Подключение / Authentificate для LDAP-сервера Ошибка (Server= %s, Порт= %s, Admin= %s, Пароль= %s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP-сервер настроен для версии 3
     LDAPSetupForVersion2=LDAP-сервер настроен для версии 2
     LDAPDolibarrMapping=Dolibarr Картирование
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Логин (самба, activedirectory)
     LDAPFieldLoginSambaExample=Пример: samaccountname
     LDAPFieldFullname=Фамилия Имя
     LDAPFieldFullnameExample=Пример: CN
    -LDAPFieldPasswordNotCrypted=Не тайный пароль
    -LDAPFieldPasswordCrypted=Тайный пароль
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Пример: userPassword
     LDAPFieldCommonNameExample=Пример: CN
     LDAPFieldName=Имя
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=На этой странице вы можете опред
     LDAPDescValues=Пример значения для <b>OpenLDAP</b> с загружены следующие схемы: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Если вы используете thoose ценности и OpenLDAP, модифицировать LDAP конфигурационный файл <b>slapd.conf,</b> чтобы все thoose схемы загрузки.
     ForANonAnonymousAccess=Для аутентифицированных доступа (для записи, например)
     PerfDolibarr=Настройки производительности/отчёты о оптимизации
    -YouMayFindPerfAdviceHere=На этой странице вы найдете некоторые заметки и советы по улучшению производительности.
    -NotInstalled=Не установлено, так что ваш сервер не может "тормозить" из-за этого.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Прикладной кеш
     MemcachedNotAvailable=Не найдено аддитивного кэша. Вы можете повысить производительность, установив кэш-сервер Memcached и модуль, способный использовать этот сервер кеша. <br>Более подробная информация здесь. <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http: //wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>. Заметьте, что многие веб-хостинг-провайдеры не предоставляют такой сервер кеша.
     MemcachedModuleAvailableButNotSetup=Модуль memcached для прикладного кэша найден, но настройка модуля не завершена.
     MemcachedAvailableAndSetup=Включен модуль memcached, предназначенный для использования сервера memcached.
     OPCodeCache=Кэш OPCode
    -NoOPCodeCacheFound=Кэш OPCode не найден. Возможно, вы используете другой кеш (XCache или eAccelerator хорошее решение), может вы не используете кеш OPCode вовсе (это плохое решение).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=Кеш HTTP  для статичных ресурсов (файлы стилей, изображений, скриптов)
     FilesOfTypeCached=Файлы типа  %s кешируются HTTP  сервером
     FilesOfTypeNotCached=Файлы типа  %s не кешируются HTTP  сервером
     FilesOfTypeCompressed=Файлы типа  %s  сжимаются HTTP  сервером
     FilesOfTypeNotCompressed=Файлы типа  %s  сжимаются не HTTP  сервером
     CacheByServer=Кэшируется сервером
    -CacheByServerDesc=Например, с помощью директивы Apache «ExpiresByType image/gif A2592000»
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Кэшируется браузером
     CompressionOfResources=Сжатие HTTP заголовков
    -CompressionOfResourcesDesc=Например, с помощью директивы Apache «AddOutputFilterByType DEFLATE»
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Такое автоматическое обнаружение невозможно с текущими браузерами
    -DefaultValuesDesc=Вы можете определить/принудительно ввести значение по умолчанию, которое вы хотите получить, когда создаете новую запись, и/или defaut фильтры или порядок сортировки, когда ваша запись списка.
    -DefaultCreateForm=Значения по умолчанию (для форм для создания)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Фильтры поиска по умолчанию
     DefaultSortOrder=Заказы сортировки по умолчанию
     DefaultFocus=Поля фокусировки по умолчанию
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Продукты модуль настройки
     ServiceSetup=Услуги установки модуля
     ProductServiceSetup=Продукты и услуги установки модулей
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=Максимальное количество товаров в комбинации выберите списки (0= без ограничений)
    -ViewProductDescInFormAbility=Визуализация продукта описания в форме (иначе как всплывающие подсказки)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Активировать в продукте/услуге Вложенные файлы вставить опцию объединить PDF-документ продукта в предложение PDF azur, если продукт/услуга находится в предложении
    -ViewProductDescInThirdpartyLanguageAbility=Визуализация описаний продуктов на стороннем языке
    -UseSearchToSelectProductTooltip=Также, если у вас есть большое количество продуктов (> 100 000), вы можете увеличить скорость, установив постоянную PRODUCT_DONOTSEARCH_ANYWHERE на 1 в Setup-> Other. Затем поиск будет ограничен началом строки.
    -UseSearchToSelectProduct=Подождите, пока вы нажмете клавишу перед загрузкой содержимого списка товаров (это может повысить производительность, если у вас большое количество продуктов, но это менее удобно)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Стандартный вид штрих-кода, используемого для продуктов
     SetDefaultBarcodeTypeThirdParties=Стандартный вид штрих-кода, используемого для третьих сторон
     UseUnits=Определите единицу измерения для количества во время заказа, предложения или строки счетов-фактур
    @@ -1503,7 +1517,7 @@ SendingsSetup=Отправка модуля настройки
     SendingsReceiptModel=Отправка получения модели
     SendingsNumberingModules=Отправки нумерации модулей
     SendingsAbility=Поддержка листов доставки для доставки клиентов
    -NoNeedForDeliveryReceipts=В большинстве случаев транспортные листы используются как в качестве листов для доставки клиентов (список отправляемых товаров), так и листы, которые получены и подписаны клиентом. Таким образом, квитанции о доставке товаров являются дублированными и редко активируются.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Дополнительный текст для поставок
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Продукция Поставки получения нумерации модуль
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Расширенный редактор
     ActivateFCKeditor=Включить FCKeditor для:
     FCKeditorForCompany=WYSIWIG создание / издание компаний описание и сведения
     FCKeditorForProduct=WYSIWIG создания / выпуска продукции / услуг описание и сведения
    -FCKeditorForProductDetails=WYSIWIG создание/издание продуктов детализирует линии для всех объектов (предложения, заказы, счета-фактуры и т.д.). <font class="warning"> Предупреждение. Использование этой опции для этого случая серьезно не рекомендуется, так как это может создавать проблемы со специальными символами и формированием страницы при создании файлов PDF</font>.
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG создание / издание рассылок
     FCKeditorForUserSignature=Редактор WYSIWIG  для создания/изменения подписи пользователя
     FCKeditorForMail=WYSIWIG создание/издание для всей почты (кроме Tools-> eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Подключение удалось, но база данных не будет смотреть на OSCommerce данных (Ключевые% не найдено в таблице %s).
    -OSCommerceTestOk=Соединение с сервером ' %s' на базе ' %s' пользователя ' %s' успешно.
    -OSCommerceTestKo1=Соединение с сервером ' %s' успешными, но база данных ' %s' не может быть достигнута.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Соединение с сервером '%s' к БД '%s' с именем пользователя '%s' выполнено успешно.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Соединение с сервером ' %s' пользователя ' %s' провалилась.
     ##### Stock #####
     StockSetup=Настройка модуля запаса
    -IfYouUsePointOfSaleCheckModule=Если вы используете модуль точки продажи (POS-модуль, предоставленный по умолчанию или другой внешний модуль), эта настройка может быть проигнорирована модулем Point Sale. Большинство модулей модулей продаж предназначены для немедленного создания счета-фактуры и уменьшения запасов по умолчанию, независимо от того, какие здесь варианты. Таким образом, если вам нужно или не иметь снижение запасов при регистрации на продажу с вашего пункта продажи, проверьте также, что ваш POS-модуль настроен.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Удаленное Меню 
     Menus=Меню
    @@ -1548,7 +1562,7 @@ DetailRight=Условие для отображения несанкциони
     DetailLangs=Ланг имя ярлыка код перевода
     DetailUser=Стажер / Extern / Все
     Target=Цель
    -DetailTarget=Целевой показатель по ссылке (_blank началу открыть новое окно)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Уровень (-1: верхнее меню, 0: заголовок меню&gt; 0 меню и подменю)
     ModifMenu=Меню изменения
     DeleteMenu=Удалить меню
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=НДС из-за: <br> - По доставке / оплат
     OptionVatDebitOptionDesc=НДС из-за: <br> - По доставке / оплате товаров <br> - На счета (дебетовой) на услуги
     OptionPaymentForProductAndServices=Кассовая система для продуктов и услуг
     OptionPaymentForProductAndServicesDesc=НДС должен быть: <br> - на оплату товаров<br> - на оплату услуг
    -SummaryOfVatExigibilityUsedByDefault=Срок действия НДС по умолчанию в соответствии с выбранным вариантом:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=О доставке
     OnPayment=Об оплате
     OnInvoice=В счете-фактуре
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Бух. код покупок
     AgendaSetup=Акции и повестки модуль настройки
     PasswordTogetVCalExport=Ключевые разрешить экспорт ссылке
     PastDelayVCalExport=Не экспортировать события старше
    -AGENDA_USE_EVENT_TYPE=Использование типов событий (управляемых в меню Настройка -> Словари -> Тип событий повестки дня)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Автоматически устанавливать это значение по умолчанию для типа события в форме создания события
    -AGENDA_DEFAULT_FILTER_TYPE=Устанавливать автоматически этот тип события в фильтр поиска для просмотра повестки дня
    -AGENDA_DEFAULT_FILTER_STATUS=Устанавливать автоматически этот статус события в фильтр поиска для просмотра повестки дня
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Какую вкладку вы хотите открывать по умолчанию, когда выбираете из меню Повестку дня
     AGENDA_REMINDER_EMAIL=Включить напоминание о событиях <b>по электронной почте</b> (напоминание опции/задержки можно определить для каждого события). Примечание. Модуль <strong>%s</strong> должен быть включен и правильно настроен для отправки напоминания с правильной частотой.
    -AGENDA_REMINDER_BROWSER=Включить напоминание о событиях <b> в браузере пользователя</b> (когда дата события достигнута, каждый пользователь может отказаться от этого из вопроса подтверждения браузера)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Включить звуковое оповещение
     AGENDA_SHOW_LINKED_OBJECT=Показывать связанный объект в представлении повестки дня
     ##### Clicktodial #####
     ClickToDialSetup=Нажмите для набора модуля настройки
     ClickToDialUrlDesc=Url звонившего, когда клик по пиктограмме телефона сделан. В URL-адресе вы можете использовать теги<br><b>__PHONETO__</b>, которые будут заменены на номер телефона человека для вызова<br><b>__PHONEFROM__</b>, который будет заменен номером телефона вызывающего абонента (вашего) <br><b>__LOGIN__</b>, который будет заменен на clicktodial login (определенном на карточке пользователя) <br><b>__PASS__</b>, который будет заменен кликтодиальным паролем (определяется на карточке пользователя).
    -ClickToDialDesc=Этот модуль позволяет сделать номера телефонов доступными. Щелчок по этому значку вызовет телефонный звонок для вашего телефона. Это можно использовать для вызова системы центра обработки вызовов от Dolibarr, которая может звонить по номеру телефона в системе SIP, например.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Используйте только ссылку «tel:» на номера телефонов
    -ClickToDialUseTelLinkDesc=Используйте этот метод, если у ваших пользователей есть программный телефон или программный интерфейс, установленный на одном компьютере, чем браузер, и вызывается при нажатии на ссылку в вашем браузере, которая начинается с «tel:». Если вам требуется полное серверное решение (нет необходимости в установке локального программного обеспечения), вы должны установить это значение «Нет» и заполнить следующее поле.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Точка продаж
     CashDeskSetup=Кассовое модуль настройки
    -CashDeskThirdPartyForSell=Общий контрагент, используемый для продаж 
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Денежные счета, используемого для продает
     CashDeskBankAccountForCheque= Счет будет использоваться для получения выплат чеком
     CashDeskBankAccountForCB= Учетной записи для использования на получение денежных выплат по кредитным картам
    -CashDeskDoNotDecreaseStock=Отключить уменьшение запасов при продаже с точки продажи (если «нет», уменьшение запасов производится для каждой продажи, сделанной с POS, независимо от того, какая опция включена в запас модуля).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Ускорить и ограничить склад для уменьшения запасов
    -StockDecreaseForPointOfSaleDisabled=Снижение запасов от пункта продажи отключено
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Снижение запасов в POS несовместимо с управлением партиями
    -CashDeskYouDidNotDisableStockDecease=Вы не отключили снижение акций при совершении сделки с Point Of Sale. Поэтому необходим склад.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Закладка Настройка модуля
    -BookmarkDesc=Этот модуль позволяет управлять закладками. Вы также можете добавить ярлыки для любых Dolibarr страниц или externale веб-сайтов на левом меню.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Максимальное количество закладок, отображаемых в меню слева
     ##### WebServices #####
     WebServicesSetup=Webservices модуль настройки
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Проверить модуль нумерации
     MultiCompanySetup=Компания Multi-модуль настройки
     ##### Suppliers #####
     SuppliersSetup=Поставщик модуля установки
    -SuppliersCommandModel=Полный шаблон заказа покупки (логотип ...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Полный шаблон счета-фактуры поставщика (логотип ...)
     SuppliersInvoiceNumberingModel=Способ нумерации счетов-фактур Поставщика
     IfSetToYesDontForgetPermission=Если установлено "Да", не забудьте дать доступ группам или пользователям, разрешённым для повторного утверждения
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Проект модуля установки
     ProjectsModelModule=доклад документ проекта модели
     TasksNumberingModules=Модуль нумерации Задач
     TaskModelModule=Документы с отчетами о задачах
    -UseSearchToSelectProject=Подождите, пока вы нажмете клавишу перед загрузкой содержимого списка проектов (это может повысить производительность, если у вас большое количество проектов, но это менее удобно)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Сроки учета
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Вы можете найт
     ListOfNotificationsPerUser=Список уведомлений на пользователя *
     ListOfNotificationsPerUserOrContact=Список уведомлений на пользователя * или на контакт **
     ListOfFixedNotifications=Список основных уведомлений
    -GoOntoUserCardToAddMore=Перейдите на вкладку «Уведомления» пользователя, чтобы добавлять или удалять уведомления для пользователей.
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Перейдите на вкладку «Уведомления» третьей стороны, чтобы добавлять или удалять уведомления для контактов/адресов
     Threshold=Порог
     BackupDumpWizard=Мастер создания резервной копии базы данных
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Установка внешних мо
     ConfFileMustContainCustom=Для установки или создания внешнего модуля из приложения необходимо сохранить файлы модулей в каталог <strong>%s</strong>. Чтобы этот каталог обрабатывался Dolibarr, вы должны настроить <strong>conf/conf.php</strong>, чтобы добавить 2 директивные строки: <br><strong> $dolibarr_main_url_root_alt = '/custom'; </strong><br><strong> $dolibarr_main_document_root_alt = '%s/custom'; </strong>
     HighlightLinesOnMouseHover=Выделите строки таблицы при перемещении мыши
     HighlightLinesColor=Выделите цвет линии при прохождении мыши (держите пустым без подсветки)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Цвет текста заголовка страницы
     LinkColor=Цвет ссылок
     PressF5AfterChangingThis=Нажмите CTRL + F5 на клавиатуре или очистите кеш браузера после изменения этого значения, чтобы оно было эффективным
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Цвет фона для четных строк т
     MinimumNoticePeriod=Минимальный период уведомления (ваш запрос на отпуск должен быть выполнен до этой задержки)
     NbAddedAutomatically=Количество дней, добавленных в счетчики пользователей (автоматически) каждый месяц
     EnterAnyCode=Это поле содержит ссылку для идентификации строки. Введите любое значение по вашему выбору, но без специальных символов.
    -UnicodeCurrency=Введите здесь между фигурными скобками, список байтов, обозначающих символ валюты. Например: для $ введите [36] - для бразильского реального R$ [82,36] - для €, введите [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=Цвет RGB находится в формате HEX, например: FF0000
     PositionIntoComboList=Позиция строки в комбинированных списках
     SellTaxRate=Ставка налога на продажу
     RecuperableOnly=Да для НДС «Не воспринимается, а восстанавливается», предназначенный для некоторых государств во Франции. Сохраняйте значение «Нет» во всех других случаях.
     UrlTrackingDesc=Если поставщик или транспортная служба предлагают страницу или веб-сайт для проверки статуса вашего груза, вы можете ввести его здесь. Вы можете использовать ключ {TRACKID} в параметрах URL, чтобы система заменила его на значение идентификационного номера пользователя, введенного в карточку отправки.
    -OpportunityPercent=Когда вы создадите возможность, вы определите предполагаемый объем проекта/свинца. Согласно статусу возможности, эта сумма может быть умножена по этой ставке для оценки глобальной суммы, которую могут создать все ваши возможности. Значение - процент (от 0 до 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=Эта запись шаблона посвящена тому, какой элемент
     TypeOfTemplate=Тип шаблона
    -TemplateIsVisibleByOwnerOnly=Шаблон виден только владельцем
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Видимый везде
     VisibleNowhere=Невидимый нигде
     FixTZ=Исправление часового пояса
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=Вы используете последнюю стаб
     TitleExampleForMajorRelease=Пример сообщения, которое вы можете использовать для анонса этого основного выпуска (не стесняйтесь использовать его на своих веб-сайтах)
     TitleExampleForMaintenanceRelease=Пример сообщения, которое вы можете использовать для объявления этой версии обслуживания (не стесняйтесь использовать ее на своих веб-сайтах)
     ExampleOfNewsMessageForMajorRelease=Доступен Dolibarr ERP & CRM %s. Версия %s - это крупный выпуск с множеством новых функций для пользователей и разработчиков. Вы можете загрузить его из области загрузки портала https://www.dolibarr.org (подкаталог «Стабильные версии»). Вы можете прочитать <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a> полный список изменений.
    -ExampleOfNewsMessageForMaintenanceRelease=Доступен Dolibarr ERP & CRM %s. Версия %s - это версия обслуживания, поэтому она содержит только исправления ошибок. Мы рекомендуем всем, кто использует более старую версию, обновиться до этого. Как любая версия обслуживания, в эту версию нет новых функций или изменений структуры данных. Вы можете загрузить его из области загрузки портала https://www.dolibarr.org (подкаталог «Стабильные версии»). Вы можете прочитать <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a> полный список изменений.
    -MultiPriceRuleDesc=Когда опция «Несколько уровней цен на продукт/услугу» включена, вы можете определить разные цены (по одному на уровень цены) для каждого продукта. Чтобы сэкономить ваше время, вы можете ввести здесь правило, чтобы цена для каждого уровня была рассчитана по цене первого уровня, поэтому вам нужно будет ввести только цену за первый уровень для каждого продукта. Эта страница предназначена для того, чтобы сэкономить ваше время и может быть полезной только в том случае, если ваши цены на каждую левую сторону относительно первого уровня. Вы можете игнорировать эту страницу в большинстве случаев.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Шаблоны для документов продуктов
    -ToGenerateCodeDefineAutomaticRuleFirst=Чтобы иметь возможность генерировать автоматически коды, вы должны сначала определить менеджера для автоматического определения номера штрих-кода.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=См. * Примечание для списка возможных переменных замещения
     SeeChangeLog=См. Файл ChangeLog (только на английском языке)
     AllPublishers=Все издатели
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Добавить другие страницы или у
     AddModels=Добавление шаблонов документов или нумерации
     AddSubstitutions=Добавить замены клавиш
     DetectionNotPossible=Обнаружение невозможно
    -UrlToGetKeyToUseAPIs=Url для получения токена для использования API (после того, как маркер получен, он сохраняется в таблице пользователя базы данных и должен предоставляться при каждом вызове API)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Список доступных API
    -activateModuleDependNotSatisfied=Модуль «%s» не зависит от модуля «%s», который отсутствует, поэтому модуль «%1$s» может не работать. Пожалуйста, установите модуль «%2$s» или отключите модуль «%1$s», если вы хотите быть в безопасности от каких-либо сюрпризов
    -CommandIsNotInsideAllowedCommands=Команда, которую вы пытаетесь запустить, не входит в список разрешенных команд, определенных в параметре <strong>$dolibarr_main_restrict_os_commands</strong> в файл <strong> conf.php </strong>.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Целевая страница
    -SamePriceAlsoForSharedCompanies=Если вы используете многокомпонентный модуль с выбором «Единая цена», цена будет одинаковой для всех компаний, если продукты распределяются между средами
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Модуль активирован. Разрешения для активированного модуля (модулей) были предоставлены только администраторам. Возможно, вам потребуется предоставить разрешения другим пользователям или группам вручную, если это необходимо.
    -UserHasNoPermissions=Этот пользователь не имеет определенного разрешения
    -TypeCdr=Используйте «Нет», если датой платежа является дата счета-фактуры плюс дельта в днях (delta - поле «Nb дней»). Используйте «В конце месяца», если после дельта дата должна быть увеличена для достижения конца месяца (+ опционально «Смещение» в днях) <br> Использовать «Текущий/Следующий», чтобы дата платежа была первой N-й месяц (N хранится в поле «Nb дней»)
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Справочная валюта компании (перейдите в настройку компании, чтобы изменить это)
    -WarningNoteModuleInvoiceForFrenchLaw=Этот модуль %s соответствует французским законам (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=Этот модуль %s соответствует французским законам (Loi Finance 2016), поскольку модуль Non Reversible Logs автоматически активируется.
    -WarningInstallationMayBecomeNotCompliantWithLaw=Вы пытаетесь установить модуль %s, являющийся внешним модулем. Активация внешнего модуля означает, что вы доверяете издателю модуля, и вы уверены, что этот модуль не изменяет негативное поведение вашего приложения и соответствует законам вашей страны (%s). Если модуль приносит неправомерную функцию, вы становитесь ответственным за использование нелегального программного обеспечения.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Левый отступ в PDF
     MAIN_PDF_MARGIN_RIGHT=Правый отступ PDF
     MAIN_PDF_MARGIN_TOP=Верхний отступ PDF
     MAIN_PDF_MARGIN_BOTTOM=Нижний отступ PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Установите для этого значение yes, если эта группа является вычислением других групп
    -EnterCalculationRuleIfPreviousFieldIsYes=Введите правило расчета, если для предыдущего поля установлено значение Да (например, «CODEGRP1 + CODEGRP2»)
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Было найдено несколько вариантов языка
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Удаление специальных символов
     COMPANY_AQUARIUM_CLEAN_REGEX=Фильтр регулярных выражений для очистки значения (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=Контактная информация
    -GDPRContactDesc=Если вы храните данные о европейских компаниях/гражданах, вы можете сохранить здесь контакт, который несет ответственность за правило общей защиты данных
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Индекс
     ##### Resource ####
     ResourceSetup=Конфигурация ресурса модуля
     UseSearchToSelectResource=Используйте форму поиска, чтобы выбрать ресурс (а не раскрывающийся список).
     DisabledResourceLinkUser=Отключить функцию привязки ресурса к пользователям
     DisabledResourceLinkContact=Отключить функцию привязки ресурса к контактам
     ConfirmUnactivation=Подтвердите сброс модуля
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/ru_RU/banks.lang b/htdocs/langs/ru_RU/banks.lang
    index f488abe36d1..299d1baa17b 100644
    --- a/htdocs/langs/ru_RU/banks.lang
    +++ b/htdocs/langs/ru_RU/banks.lang
    @@ -7,7 +7,7 @@ BankName=Название банка
     FinancialAccount=Учетная запись
     BankAccount=Банковский счет
     BankAccounts=Банковские счета
    -BankAccountsAndGateways=Банковские счета | Шлюзы
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Показать учётную запись
     AccountRef=Финансовые счета исх
     AccountLabel=Финансовые счета этикетки
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Счет адрес
     BankAccountCountry=Счет страны
     BankAccountOwner=Имя владельца счета
     BankAccountOwnerAddress=Адрес владельца счета
    -RIBControlError=Проверка целостности значений не удается. Это означает, что информацию для этой учетной записи числа не являются полными или неправильный (проверьте стране, цифры и IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Создать аккаунт
     NewBankAccount=Новый счет
     NewFinancialAccount=Новые финансовые счета
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Записи для согласования
     Conciliable=Conciliable
     Conciliate=Согласительной
     Conciliation=Согласительная
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Согласование с запозданием
     IncludeClosedAccount=Включите закрытые счета
     OnlyOpenedAccount=Только открытые аккаунты
    @@ -104,7 +105,7 @@ SocialContributionPayment=Социальный/налоговый сбор
     BankTransfer=Банковский перевод
     BankTransfers=Банковские переводы
     MenuBankInternalTransfer=Внутренний трансфер
    -TransferDesc=Перевод с одной учетной записи на другую, Dolibarr напишет две записи (дебет в исходной учетной записи и кредит в целевой учетной записи. Для этой транзакции будет использована та же сумма (кроме знака), ярлык и дата)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=От
     TransferTo=К
     TransferFromToDone=<b>Передача%</b> от <b>S в% х %s%</b> S был записан.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Вы действительно хотите удал
     BankChecks=Банковские чеки
     BankChecksToReceipt=Проверки, ожидающие внесения депозита
     ShowCheckReceipt=Показать проверить депозита получения
    -NumberOfCheques=Nb чеков
    +NumberOfCheques=No. of check
     DeleteTransaction=Удалить запись
     ConfirmDeleteTransaction=Вы действительно хотите удалить эту запись?
     ThisWillAlsoDeleteBankRecord=Это также приведет к удалению сгенерированной записи банка
    @@ -135,8 +136,8 @@ BankTransactionLine=Банковская запись
     AllAccounts=Все банковские и кассовые счета
     BackToAccount=Перейти к ответу
     ShowAllAccounts=Шоу для всех учетных записей
    -FutureTransaction=Сделки в Futur. Ни в коем случае к согласительной процедуре.
    -SelectChequeTransactionAndGenerate=Выбор / фильтр проверяет, включать в получении депозита проверки и нажмите кнопку &quot;Создать&quot;.
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Выберите банковскую выписку, связанную с согласительной процедурой. Используйте сортируемое числовое значение: ГГГГММ или ГГГГММДД
     EventualyAddCategory=Укажите категорию для классификации записей
     ToConciliate=Согласовать?
    @@ -153,7 +154,7 @@ RejectCheckDate=Дата проверки была возвращена
     CheckRejected=Проверка возобновлена
     CheckRejectedAndInvoicesReopened=Проверка возвращена, а счета-фактуры возобновлены
     BankAccountModelModule=Шаблоны документов для банковских счетов
    -DocumentModelSepaMandate=Шаблон мандата SEPA. Полезно для европейских стран только в ЕЭС.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Шаблон для печати страницы с информацией о BAN.
     NewVariousPayment=Новые смешанные платежи
     VariousPayment=Смешанные платежи
    @@ -162,4 +163,5 @@ ShowVariousPayment=Показать смешанные платежи
     AddVariousPayment=Добавить смешанные платежи
     SEPAMandate=Мандат SEPA
     YourSEPAMandate=Ваш мандат SEPA
    -FindYourSEPAMandate=Это ваш мандат SEPA, чтобы разрешить нашей компании делать прямой дебетовый заказ в ваш банк. Благодаря возврату он подписан (сканирование подписанного документа) или отправлен по почте
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/ru_RU/bills.lang b/htdocs/langs/ru_RU/bills.lang
    index 0f8d107b4a4..290662a4260 100644
    --- a/htdocs/langs/ru_RU/bills.lang
    +++ b/htdocs/langs/ru_RU/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Формальный счёт
     InvoiceProFormaDesc=<b>Формальный счёт</b> является образом оригинального счёта, но не имеет бухгалтерской учетной записи.
     InvoiceReplacement=Замена счета-фактуры
     InvoiceReplacementAsk=Замена счета-фактуры на другой
    -InvoiceReplacementDesc=<b>Замена счёта</b>  используется для отмены и замены всего счёта, когда оплата по нему ещё не получена. \n<br><br> Примечание: только неоплаченные счета могут быть заменены. Если счёт, который вы заменяете, ещё не закрыт, он будет автоматически закрыт и помечен "потерянный".  
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Кредитовое авизо
     InvoiceAvoirAsk=Кредитовое авизо для исправления счета-фактуры
    -InvoiceAvoirDesc=<b>Кредитовое авизо</b> - это 'обратный' счёт, который используется для решения проблемы, когда выставлен счёт в сумме отличной от действительно оплаченной (если клиентом оплатил слишком много по ошибке, или  наоборот - не оплатил счёт полностью, поскольку он вернул некоторые товары).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Создать кредитное авизо со строками из оригинального счёта
     invoiceAvoirWithPaymentRestAmount=Кредитное авизо с неоплаченным остатком оригинального счёта
     invoiceAvoirLineWithPaymentRestAmount=Кредитное авизо на остаток для оплаты
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Возврат платежа
     DeletePayment=Удалить платеж
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Платежи Поставщикам
     ReceivedPayments=Полученные платежи
     ReceivedCustomersPayments=Платежи, полученные от покупателей
    -PayedSuppliersPayments=Платежи, отправленные поставщикам
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Полученные платежи покупателей для подтверждения
     PaymentsReportsForYear=Отчеты о платежах за %s
     PaymentsReports=Отчеты о платежах
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Условия платежа
     PaymentAmount=Сумма платежа
     ValidatePayment=Подтвердть платёж
     PaymentHigherThanReminderToPay=Платеж больше, чем в напоминании об оплате
    -HelpPaymentHigherThanReminderToPay=Внимание, сумма оплаты по одному или нескольким документам выше остатка к оплате. <br> Измените вашу запись, или подтвердите и подумать о создании кредитового авизо на превышения, полученные за каждый переплаченный счет-фактуру.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Классифицировать как 'Оплачен'
     ClassifyPaidPartially=Классифицировать как 'Оплачен частично'
     ClassifyCanceled=Классифицировать как 'Аннулирован'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Закрыт (неоплачен)
     BillStatusClosedPaidPartially=Оплачен (частично)
     BillShortStatusDraft=Проект
     BillShortStatusPaid=Оплачен
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Оплачено
     BillShortStatusCanceled=Аннулирован
     BillShortStatusValidated=Подтвержден
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Закрыт
     BillShortStatusClosedPaidPartially=Оплачен (частично)
     PaymentStatusToValidShort=На подтверждении
    -ErrorVATIntraNotConfigured=Размер ставки НДС еще не установлен
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Режим оплаты по умолчанию не установлен. Перейдите в настройку модуля Счетов-фактур  для исправления данной ситуации.
     ErrorCreateBankAccount=Создайт банковский счет, а затем перейдите к панели настройки модуля Счетов-фактур для установки способов оплаты
     ErrorBillNotFound=Счёт %s не существует
    -ErrorInvoiceAlreadyReplaced=Ошибка при попытке подтвеждения счета-фактуры, заменяющего счет-фактуру %s. Этот счет-фактура уже был заменен счетом-фактурой %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Ошибка, скидка уже используется
     ErrorInvoiceAvoirMustBeNegative=Ошибка, корректирующий счет-фактура должен иметь отрицательную сумму
     ErrorInvoiceOfThisTypeMustBePositive=Ошибка, такой тип счета-фактуры должен иметь положительную сумму
     ErrorCantCancelIfReplacementInvoiceNotValidated=Ошибка, невозможно отменить счет-фактуру, который был заменен на другой счет-фактуру, находящийся в статусе Проекта
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Продавец
     BillTo=Покупатель
     ActionsOnBill=Действия со счетом-фактурой
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Оставить неоплаченной <b>(%s %s)</b> предоставленную скидку, потому что платёж был сделан перед соглашением. Я уплачу НДС с помощью кредитного авизо.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Оставить неоплаченной <b>(%s %s)</b> предоставленную скидку, потому что платёж был сделан перед соглашением. Я подтверждаю потерю НДС на этой скидке.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Оставить неоплаченной <b>(%s %s)</b> предоставленную скидку, потому что платёж был сделан перед соглашением. Я восстановлю НДС на этой скидке без кредитного авизо.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Плохой Покупатель
     ConfirmClassifyPaidPartiallyReasonProductReturned=Продукция частично возвращена
     ConfirmClassifyPaidPartiallyReasonOther=Сумма, аннулированная по другим причинам
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Такой выбор возможен, только если счет-фактура был снабжен необходимым комментарием. (Например, «Только налог, соответствующий фактически уплаченной цене, дает права на вычет»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=В некоторых странах, этот выбор может быть возможным только, если ваш счет-фактура содержит правильные сведения.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Используйте этот выбор, если все остальные не подходят
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Плохой Покупатель</b> - это заказчик, который отказывается оплачивать свои долги.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Этот выбор используется при неполной оплате, когда некоторая продукция была возвращена
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Используйте этот выбор, если все остальные не подходят, например, в следующей ситуации: <br> - оплата не завершена, поскольку некоторые товары были отправлены обратно <br> - заявленная сумма очень важна, потому что скидка была забыта <br> Во всех случаях чрезмерно заявленная сумма должна быть исправлена в системе бухгалтерского учета путем создания кредитных авизо.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Другой
     ConfirmClassifyAbandonReasonOtherDesc=Этот выбор будет использоваться во всех других случаях. Например, потому, что вы планируете создать заменяющий счет-фактуру.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Подтвердить счет-фактуру
     UnvalidateBill=Unvalidate счет
    -NumberOfBills=Кол-во счетов-фактур
    -NumberOfBillsByMonth=Кол-во счетов-фактур по месяцам
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Сумма счетов-фактур
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Сумма счетов-фактур за месяц (за вычетом налога)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Показать счет-фактуру
    @@ -260,9 +262,9 @@ Repeatables=Шаблоны
     ChangeIntoRepeatableInvoice=Конвертировать в шаблон счёта
     CreateRepeatableInvoice=Создать шаблон счёта
     CreateFromRepeatableInvoice=Создать из шаблона счёта
    -CustomersInvoicesAndInvoiceLines=Счета-фактуры Покупателям и строки счетов-фактур
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Счета-фактуры Покупателям и платежи
    -ExportDataset_invoice_1=Счета-фактуры Покупателям и строки счетов-фактур
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Счета-фактуры Покупателям и платежи
     ProformaBill=Встречный вексель:
     Reduction=Сокращение
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Адрес выставления
    -HelpEscompte=Эта скидка предоставлена Покупателю за досрочный платеж.
    -HelpAbandonBadCustomer=От этой суммы отказался Покупатель (считается плохим клиентом) и она считается чрезвычайной потерей.
    -HelpAbandonOther=От этой суммы отказались из-за ошибки (например, неправильный клиент или счет-фактура был заменен на другой)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Код платежа
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Счет-фактура не выбран
     CloneInvoice=Дублировать счет-фактуру
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Действия отключены поскольку счет-фактура был заменен
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Кол-во платежей
    +DescTaxAndDividendsArea=Эта зона представляет суммарную информацию по платежам на специальные расходы. Только записи с платежами в течении фиксированного года будут показаны.
    +NbOfPayments=No. of payments
     SplitDiscount=Разделить скидку на две
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Введите сумму каждой из двух частей:
    -TotalOfTwoDiscountMustEqualsOriginal=Сумма двух новых скидок должна быть равна размеру первоначальной скидки.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Связанный счёт
     RelatedBills=Связанные счета-фактуры
     RelatedCustomerInvoices=Связанные счета клиента
     RelatedSupplierInvoices=Связанные счета поставщика
     LatestRelatedBill=Последний связанный счёт
    -WarningBillExist=Предупреждение! Счёт (или счета) уже существуют
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Чек
     PaymentTypeShortCHQ=Чек
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=Он-лайн платеж
    -PaymentTypeShortVAD=Он-лайн платеж
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Проект
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Банковские реквизиты
     BankCode=Код банка
    -DeskCode=Код описания
    +DeskCode=Office code
     BankAccountNumber=Номер счета
    -BankAccountNumberKey=Ключ
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=Номер IBAN
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=Номер BIC/SWIFT
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Оплата с помощью перевод
     VATIsNotUsedForInvoice=* Неприменяемых НДС арт-293B из CGI
     LawApplicationPart1=По применению закона 80.335 от 12/05/80
     LawApplicationPart2=товары остаются в собственности
    -LawApplicationPart3=продавца до полной оплаты
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=их стоимости.
     LimitedLiabilityCompanyCapital=SARL с капиталом
     UseLine=Применить
    @@ -463,7 +465,7 @@ Cheques=Чеки
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=Этот %s должен быть преобразован в %s
    -UsBillingContactAsIncoiveRecipientIfExist=Использовать в качестве получателя счета платежный контактный адрес клиента вместо адреса контрагента
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Показать все неоплаченные счета-фактуры
     ShowUnpaidLateOnly=Показать только просроченные неоплаченные счета-фактуры
     PaymentInvoiceRef=Оплата счета-фактуры %s
    @@ -474,21 +476,22 @@ Reported=Задержан
     DisabledBecausePayments=Невозможно, поскольку есть некоторые платежи
     CantRemovePaymentWithOneInvoicePaid=Не удается удалить оплаты поскольку есть по крайней мере один счет-фактура классифицированный как 'оплачен'
     ExpectedToPay=Ожидаемые платежи
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Оплачен этим платежом
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Все счета, без остатка к оплате будут автоматически закрыты со статусом "Оплачен".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Платить
     ToMakePaymentBack=Возврат платежа
     ListOfYourUnpaidInvoices=Список неоплаченных счетов
     NoteListOfYourUnpaidInvoices=Примечание: Этот список содержит счета только тех контрагентов, которые связаны с нами, как представители по сбыту.
     RevenueStamp=Штамп о уплате налогов
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Шаблон Счета-фактуры Crabe. Полный шаблон (вспомогательные опции НДС, скидки, условия платежей, логотип и т.д. ..)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Функция возвращает номер в формате %syymm-nnnn  для стандартных счетов и %syymm-nnnn для кредитных авизо, где yy год,  mm месяц и nnnn является непрерывной последовательностью и не возвращает 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Счёт удалён
    diff --git a/htdocs/langs/ru_RU/cashdesk.lang b/htdocs/langs/ru_RU/cashdesk.lang
    index 2374aeab2ab..3be1c68edc8 100644
    --- a/htdocs/langs/ru_RU/cashdesk.lang
    +++ b/htdocs/langs/ru_RU/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Показать компании
     ShowStock=Показать склад
     DeleteArticle=Нажмите, чтобы удалить эту статью
     FilterRefOrLabelOrBC=Поиск (ссылке/метке)
    -UserNeedPermissionToEditStockToUsePos=Вы просите уменьшить запас на складе при создании счёта, поэтому пользователь, использующий POS-терминал, должен иметь права доступа для редактирования запаса на складе.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Точка продаж
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/ru_RU/commercial.lang b/htdocs/langs/ru_RU/commercial.lang
    index 3a77c19df98..0016a1c5b31 100644
    --- a/htdocs/langs/ru_RU/commercial.lang
    +++ b/htdocs/langs/ru_RU/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Телефонный звонок
     ActionAC_FAX=Отправить факс
     ActionAC_PROP=Отправить предложение по Email
     ActionAC_EMAIL=Отправить электронное письмо
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Встречи
     ActionAC_INT=Вмешательство на сайте
     ActionAC_FAC=Отправить платежную
    @@ -72,8 +73,8 @@ StatusProsp=Проспект статус
     DraftPropals=Проект коммерческих предложений
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/ru_RU/companies.lang b/htdocs/langs/ru_RU/companies.lang
    index 61dd1940e14..34e8e3093b5 100644
    --- a/htdocs/langs/ru_RU/companies.lang
    +++ b/htdocs/langs/ru_RU/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Выберите контрагента
     ConfirmDeleteCompany=Вы хотите удалить компанию и всю связанную с ней информацию?
     DeleteContact=Удалить контакт
     ConfirmDeleteContact=Удалить этот контакт и всю связанную с ним информацию?
    -MenuNewThirdParty=Новый контрагент
    -MenuNewCustomer=Новый покупатель
    -MenuNewProspect=Новый потенциальный клиент
    -MenuNewSupplier=Новый поставщик
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Новое физическое лицо
     NewCompany=Новая компания (перспектива, клиент, поставщик)
    -NewThirdParty=Новая сторонняя сторона (перспектива, клиент, поставщик)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Создайте стороннего поставщика (поставщика)
     CreateThirdPartyOnly=Создать контрагента
     CreateThirdPartyAndContact=Создать контрагента и связанный контакт
    @@ -25,22 +25,22 @@ ThirdPartyContact=Контакт контрагента
     Company=Компания
     CompanyName=Название компании
     AliasNames=Название псевдонима (коммерческий, торговая марка, ...)
    -AliasNameShort=Название псевдонима
    +AliasNameShort=Alias Name
     Companies=Компании
    -CountryIsInEEC=Страна входит в состав Европейского экономического сообщества
    -ThirdPartyName=Наименование контрагента
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Email третьей стороны
    -ThirdParty=Контрагент
    -ThirdParties=Контрагенты
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Потенциальные клиенты
     ThirdPartyProspectsStats=Потенциальные клиенты
     ThirdPartyCustomers=Покупатели
     ThirdPartyCustomersStats=Заказчики
     ThirdPartyCustomersWithIdProf12=Покупатели с %s или %s
     ThirdPartySuppliers=Вендоры
    -ThirdPartyType=Тип контрагента
    +ThirdPartyType=Type of company
     Individual=Физическое лицо
    -ToCreateContactWithSameName=Будет автоматически создан контакт/адрес с той информацией которая связывает контрагента с контрагентом. В большинстве случаев, даже если контрагент является физическим лицом, достаточно создать одного контрагента.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Материнская компания
     Subsidiaries=Филиалы
     ReportByMonth=Отчет за месяц
    @@ -75,12 +75,12 @@ Zip=Почтовый индекс
     Town=Город
     Web=Web
     Poste= Должность
    -DefaultLang=Язык по умолчанию
    -VATIsUsed=Налог с продаж
    -VATIsUsedWhenSelling=Это определяет, включает ли эта третья сторона налог на продажу или нет, когда он делает счет-фактуру своим клиентам
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Налог с продаж не используется
     CopyAddressFromSoc=Заполнить адрес из адреса контрагента
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Третья сторона ни клиент, ни поставщик, отсутствуют доступные ссылочные объекты
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Третья сторона ни клиент, ни поставщик, скидки не доступны
     PaymentBankAccount=Банковские реквизиты
     OverAllProposals=Предложения
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Код налога с продаж
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=ID налога
     VATIntraSyntaxIsValid=Синтаксис корректен
     VATReturn=Возврат НДС
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Этот покупатель имеет скидку
     CompanyHasNoRelativeDiscount=Этот клиент не имеет относительной скидки по умолчанию
     HasRelativeDiscountFromSupplier=У вас есть скидка по умолчанию <b> %s%% </b> от этого поставщика
     HasNoRelativeDiscountFromSupplier=У вас нет скидки по умолчанию от этого поставщика
    -CompanyHasAbsoluteDiscount=Этому клиенту доступна скидка (кредитный лимит или авансовый платеж) за <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=Этот клиент имеет скидку (коммерческие, авансовые платежи) для<b> %s </b>%s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Этот клиент все еще имеет кредитный лимит или авансовый платеж за <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=У вас нет скидки на кредит от этого поставщика
     HasAbsoluteDiscountFromSupplier=У вас есть скидки (кредиты или авансовые платежи) за <b> %s </b>%s от этого поставщика
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Абсолютные скидки клиентов (
     SupplierAbsoluteDiscountAllUsers=Абсолютные скидки продавца (введенные всеми пользователями)
     SupplierAbsoluteDiscountMy=Абсолютные скидки продавца (введены самим)
     DiscountNone=Нет
    -Supplier=Поставщик
    +Supplier=Vendor
     AddContact=Создать контакт
     AddContactAddress=Создать контакт/адрес
     EditContact=Изменить контакт / адреса
    @@ -303,22 +303,22 @@ AddThirdParty=Создать контрагента
     DeleteACompany=Удалить компанию
     PersonalInformations=Личные данные
     AccountancyCode=Бухгалтерский счёт
    -CustomerCode=Код Покупателя
    -SupplierCode=Артикул
    -CustomerCodeShort=Код Покупателя
    -SupplierCodeShort=Артикул
    -CustomerCodeDesc=Код покупателя, уникальный для каждого покупателя
    -SupplierCodeDesc=Код поставщика, уникальный для всех поставщиков
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Требуется, если контрагент является покупателем или потенциальным клиентом
     RequiredIfSupplier=Требуется, если сторонняя сторона является поставщиком
    -ValidityControledByModule=Действительность контролируется модулем
    -ThisIsModuleRules=Это правила для данного модуля
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Потенциальный клиент для связи
     CompanyDeleted=Компания " %s" удалена из базы данных.
     ListOfContacts=Список контактов/адресов
     ListOfContactsAddresses=Список контактов/адресов
    -ListOfThirdParties=Список контрагентов
    -ShowCompany=Показать контрагента
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Показать контакт
     ContactsAllShort=Все (без фильтра)
     ContactType=Вид контакт
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Этот контакт не является конта
     NoContactForAnyContract=Этот контакт не является контактом договора
     NoContactForAnyInvoice=Этот контакт не является контактом счета-фактуры
     NewContact=Новый контакт/адрес
    -NewContactAddress=Новый контакт/адрес
    +NewContactAddress=New Contact/Address
     MyContacts=Мои контакты
     Capital=Капитал
     CapitalOf=Столица %s
     EditCompany=Изменить компанию
    -ThisUserIsNot=Этот пользователь не является перспективой, клиентом и поставщиком
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Проверить
    -VATIntraCheckDesc=Эта ссылка <b>%s</b> позволяет направлять запросы к Европейской службе проверки НДС. Для работы этой службы необходим внешний доступ в Интернет с сервера Dolibarr.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Проверка НДС на сайте Европейской комиссии
    -VATIntraManualCheck=Вы также можете проверить его вручную а сайте европейской комиссии <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Проверка невозможна. Сервис проверки не предоставляется государством-членом ЕС (%s).
    -NorProspectNorCustomer=Ни потенциальный клиент, ни покупатель
    -JuridicalStatus=Организационно-правовая форма
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Персонал
     ProspectLevelShort=Потенциальный
     ProspectLevel=Потенциальный клиент
    @@ -387,12 +387,12 @@ ExportCardToFormat=Экспорт карточки в формате
     ContactNotLinkedToCompany=Контакт не связан с каким-либо контрагентом
     DolibarrLogin=Имя пользователя Dolibarr
     NoDolibarrAccess=Нет доступа к Dolibarr
    -ExportDataset_company_1=Контрагенты (компании, фонды, физические лица) и свойства
    -ExportDataset_company_2=Контакты и свойства
    -ImportDataset_company_1=Контрагенты (компании, фонды, физические лица) и свойства
    -ImportDataset_company_2=Контакты/Адреса (третьих сторон или нет) и атрибуты
    -ImportDataset_company_3=Банковские счета третьих лиц
    -ImportDataset_company_4=Третьи стороны/Представители по продажам (Назначение представителей торговых представителей для компаний)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Уровень цен
     DeliveryAddress=Адрес доставки
     AddAddress=Добавить адрес
    @@ -402,16 +402,16 @@ DeleteFile=Удалить файл
     ConfirmDeleteFile=Вы уверены, что хотите удалить этот файл?
     AllocateCommercial=Назначить торгового представителя
     Organization=Организация
    -FiscalYearInformation=Информация о финансовом годе
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Первый месяц финансового года
    -YouMustAssignUserMailFirst=Вы должны создать электронную почту для этого пользователя, тогда вы сможете отправлять ему почтовые уведомления.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=Для добавления электронных уведомлений вы должны сначала указать действующий email контрагента 
    -ListSuppliersShort=Список поставщиков
    -ListProspectsShort=Список потенц. клиентов
    -ListCustomersShort=Список покупателей
    -ThirdPartiesArea=Область контрагентов и контактов
    -LastModifiedThirdParties=Недавно изменено %s контрагентов
    -UniqueThirdParties=Всего уникальных контрагентов
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Открытые
     ActivityCeased=Закрыто
     ThirdPartyIsClosed=Закрывшиеся контрагенты
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Валюта неуплаченного счёта
     OutstandingBill=Максимальный неуплаченный счёт
     OutstandingBillReached=Достигнут максимум не оплаченных счетов
     OrderMinAmount=Минимальная сумма заказа
    -MonkeyNumRefModelDesc=Возвращаемое число с форматом %syymm-nnnn для кода клиента и %syymm-nnnn для кода поставщика, где yy - год, мм - месяц, а nnnn - последовательность без перерыва и не возвращается к 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Код покупателю/поставщику не присваивается. Он может быть изменен в любое время.
     ManagingDirectors=Имя управляющего или управляющих (Коммерческого директора, директора, президента...)
     MergeOriginThirdparty=Копия контрагента (контрагент которого вы хотите удалить)
     MergeThirdparties=Объединить контрагентов
    -ConfirmMergeThirdparties=Вы хотите объединить этого контрагента с текущим? Все связанные объекты (счета, заказы, ...) будут перемещены к текущему контрагенту, затем контрагент будет удален.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Третьи стороны были объединены
     SaleRepresentativeLogin=Логин торгового представителя
     SaleRepresentativeFirstname=Имя торгового представителя
     SaleRepresentativeLastname=Фамилия торгового представителя
     ErrorThirdpartiesMerge=При удалении третьих сторон произошла ошибка. Проверьте журнал. Изменения были отменены.
    -NewCustomerSupplierCodeProposed=Новый код клиента или поставщика, предлагаемый для дублирования кода
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/ru_RU/dict.lang b/htdocs/langs/ru_RU/dict.lang
    index 7f59ed81357..5cc5233dca5 100644
    --- a/htdocs/langs/ru_RU/dict.lang
    +++ b/htdocs/langs/ru_RU/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Остров Херд и Макдональд
     CountryVA=Папский Престол (Государство-город Ватикан)
     CountryHN=Гондурас
     CountryHK=Гонконг
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=Индия
     CountryID=Индонезия
     CountryIR=Иран
    @@ -131,7 +131,7 @@ CountryKI=Кирибати
     CountryKP=Северная Корея
     CountryKR=Южная Корея
     CountryKW=Кувейт
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Лаосский
     CountryLV=Латвия
     CountryLB=Ливан
    @@ -160,7 +160,7 @@ CountryMD=Молдова
     CountryMN=Монголия
     CountryMS=Монтсеррат
     CountryMZ=Мозамбик
    -CountryMM=Birmania (Мьянма)
    +CountryMM=Myanmar (Burma)
     CountryNA=Намибия
     CountryNR=Науру
     CountryNP=Непал
    @@ -223,7 +223,7 @@ CountryTO=Тонга
     CountryTT=Тринидад и Тобаго
     CountryTR=Турция
     CountryTM=Туркменистан
    -CountryTC=Теркс и Cailos острова
    +CountryTC=Turks and Caicos Islands
     CountryTV=Тувалу
     CountryUG=Уганда
     CountryUA=Украина
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Маврикий рупий
     CurrencySingMUR=Маврикий рупия
     CurrencyNOK=Норвежских крон
    -CurrencySingNOK=Норвежская крона
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=TND
     CurrencySingTND=Тунисский динар
     CurrencyUSD=Доллары США
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Из уст в уста
     DemandReasonTypeSRC_PARTNER=Партнер
     DemandReasonTypeSRC_EMPLOYEE=Сотрудник
     DemandReasonTypeSRC_SPONSORING=Спонсорство
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Формат 4A0
     PaperFormatEU2A0=Формат 2A0
    diff --git a/htdocs/langs/ru_RU/ecm.lang b/htdocs/langs/ru_RU/ecm.lang
    index 09496b101ae..75f3092ad49 100644
    --- a/htdocs/langs/ru_RU/ecm.lang
    +++ b/htdocs/langs/ru_RU/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Кол-во документов в директории
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Директория
     ECMSectionManual=Директория в ручном режиме
     ECMSectionAuto=Директория в автоматическом режиме
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Документы, связанные с проектрами
     ECMDocsByUsers=Документы, связанные с пользователями
     ECMDocsByInterventions=Документы, связанные с меропрятиями
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Директория не создана
     ShowECMSection=Показать директорию
     DeleteSection=Удаление директории
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/ru_RU/errors.lang b/htdocs/langs/ru_RU/errors.lang
    index 542595d812b..266c8640f6b 100644
    --- a/htdocs/langs/ru_RU/errors.lang
    +++ b/htdocs/langs/ru_RU/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat= Значение '%s' имеет неверный форма
     ErrorWrongDate=Дата некорректна!
     ErrorFailedToWriteInDir=Не удалось записать в директорию %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=Найдено неверный электронный синтаксис% с линии в файл (например, строка %s с электронной почтой= %s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Некоторые обязательные поля не были заполнены.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Не удалось создать каталог. Убедитесь, что веб-сервер пользователь имеет разрешения на запись в каталог Dolibarr документы. Если параметр <b>safe_mode</b> включен по этому PHP, проверьте, что Dolibarr PHP файлы принадлежат к веб-серверу пользователей (или группы).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Пожалуйста, заполните значен
     ErrorNoValueForCheckBoxType=Пожалуйста, заполните значение для списка флажков
     ErrorNoValueForRadioType=Пожалуйста, заполните  значени для списка переключателей
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=<b>Поле %s</b> не содержит специальных символов.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Нет бухгалтерского модуля активируется
     ErrorExportDuplicateProfil=Имя этого профиля уже сущесвует для этого набора для экспорта.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP соответствия не является полной.
     ErrorLDAPMakeManualTest=. LDIF файл был создан в директории %s. Попробуйте загрузить его вручную из командной строки, чтобы иметь больше информации об ошибках.
    -ErrorCantSaveADoneUserWithZeroPercentage=Не удается сохранить действие с "Статут не началась", если поле "проделанной" также заполнены.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ссылки, используемые для создания, уже существует.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Нельзя удалить запись. Она уже используется или включена в другой объект.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript не должна быть отключена, чтобы эта функция работает. Чтобы включить / отключить Javascript, перейдите в меню Главная-> Настройка-> Экран.
     ErrorPasswordsMustMatch=Оба введенных пароля должны совпадать друг с другом
    -ErrorContactEMail=Техническая ошибка. Пожалуйста, обратитесь к администратору следующую электронную почту <b>%s</b> ан обеспечить <b>%s</b> код ошибки в ваше сообщение, или даже лучше, добавив экран копию этой страницы.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Неверное значение для области количество <b>%s</b> (значение <b>%s</b> &quot;не соответствует регулярное <b>%s</b> правило)
     ErrorFieldValueNotIn=Неверное значение для <b>%s</b> номер поля <b>%s</b> значение не является значением доступны в поле <b>%s</b> таблицы <b>%s)</b>
     ErrorFieldRefNotIn=Неверное значение для <b>%s</b> номер поля <b>(«%s&quot;</b> значение не является <b>%s</b> существующих ссылка)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Антивирусная программа не 
     ErrorSpecialCharNotAllowedForField=Специальные символы не допускаются для поля &quot;%s&quot;
     ErrorNumRefModel=Ссылка есть в базе данных (%s) и не совместимы с данным правилом нумерации. Удаление записей или переименован ссылкой для активации этого модуля.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Ошибка на маску
     ErrorBadMaskFailedToLocatePosOfSequence=Ошибка, маска без порядкового номера
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Ошибка, плохое значение сброса
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Счётчик должен иметь более 3 цифр
     ErrorSelectAtLeastOne=Ошибка. Выберите хотя бы одну запись.
    -ErrorDeleteNotPossibleLineIsConsolidated=Удаление невозможно, потому что запись связана с банком transation, который согласован
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s назначается еще одна треть
     ErrorFailedToSendPassword=Не удалось отправить пароль
     ErrorFailedToLoadRSSFile=Не в состоянии получить RSS-канал. Попробуйте добавить постоянные MAIN_SIMPLEXMLLOAD_DEBUG если сообщения об ошибках не предоставляет достаточно информации.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Пользователь с <b>логином %s</b> н
     ErrorLoginHasNoEmail=Этот пользователь не имеет адреса электронной почты. Процесс прерван.
     ErrorBadValueForCode=Плохо значения типов кода. Попробуйте еще раз с новой стоимости ...
     ErrorBothFieldCantBeNegative=Поля %s и %s не может быть и отрицательным
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Количество строк в счетах клиента не может быть отрицательным
     ErrorWebServerUserHasNotPermission=Учетная запись пользователя <b>%s</b> используется для выполнения веб-сервер не имеет разрешения для этого
     ErrorNoActivatedBarcode=Нет штрих-кодов типа активированного
    @@ -138,7 +141,7 @@ ErrorBadFormat=Неправильный формат!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Не удается удалить платёж, поскольку есть по крайней мере один счет со статусом 'оплачен'
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Невозможно назначить константой '%s'
     ErrorPriceExpression2=Невозможно задать заново встроенную функцию  '%s'
     ErrorPriceExpression3=Необъявленная переменная  '%s' в задании функции
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Непредвиденный '%s'
     ErrorPriceExpression6=Неверное количество аргументов  (%s задано, %s ожидалось)
     ErrorPriceExpression8=Непредвиденные оператор '%s'
     ErrorPriceExpression9=Произошла неожиданная ошибка
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Деление на ноль
     ErrorPriceExpression17=Необъявленная переменная  '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=Ошибка SOAP-клиента '%s'
     ErrorGlobalVariableUpdater5=Не выбрана глобальная переменная
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Обязательные параметры не определены
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Закладка этого титула или э
     WarningPassIsEmpty=Внимание, базы данных пароль пуст. Это дыра в безопасности. Вы должны добавить пароль к вашей базе данных и изменить свой conf.php файл, чтобы отразить это.
     WarningConfFileMustBeReadOnly=Внимание, ваш конфигурационный файл <b>(htdocs / CONF / conf.php)</b> может быть переписан на веб-сервере. Это серьезная дыра в безопасности. Изменение разрешений на файл находится в режиме только для чтения для операционной системы пользователя используется веб-сервер. Если вы используете Windows FAT и формат для Вашего диска, вы должны знать, что эта файловая система не позволяет добавить разрешения на файл, поэтому не может быть полностью безопасным.
     WarningsOnXLines=Предупреждения об источнике <b>%s</b> линий
    -WarningNoDocumentModelActivated=Ни одна из моделей, для генерации документов, была активирована. Модель будет выбранные по умолчанию, пока вы не проверить ваш модуль установки.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Передупреждение. Как только установка завершена, вы должны отключить возможности установки/переноса. Это возможно сделать, добавив файл <b>install.lock</b> в каталог <b>%s</b>. Если вы не сделаете это, это будет являться брешью в безопасности. 
    -WarningUntilDirRemoved=Это предупреждение остается активным до тех пор, пока эта директория присутствует (отображается только для администратора пользователей).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/ru_RU/help.lang b/htdocs/langs/ru_RU/help.lang
    index 9f55a171152..e28a5f74611 100644
    --- a/htdocs/langs/ru_RU/help.lang
    +++ b/htdocs/langs/ru_RU/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Поддержка через Интернет в реал
     OtherSupport=Другие виды поддержки
     ToSeeListOfAvailableRessources=Связаться/Смотреть имеющиеся ресурсы:
     HelpCenter=Справочный центр
    -DolibarrHelpCenter=Центр справки и поддержки Dolibarr
    -ToGoBackToDolibarr=В противном случае, нажмите <a href="%s">здесь, чтобы использовать Dolibarr</a>
    -TypeOfSupport=Источник поддержки
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Сообщество (бесплатно)
     TypeSupportCommercial=Коммерческая
     TypeOfHelp=Тип
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Эффективность
     TypeHelpOnly=Только справка
     TypeHelpDev=Справка + Разработка
    -TypeHelpDevForm=Справка + Разработка + Создание
    -ToGetHelpGoOnSparkAngels1=Некоторые компании могут обеспечить быструю (иногда неотложную) и более эффективную онлайн поддержку путем удаленного управления компьютером. Такие помощники могут быть найдены на веб-сайте <b>%s</b>:
    -ToGetHelpGoOnSparkAngels3=Вы также можете перейти к списку всех доступных тренеров Dolibarr, для этого нажмите на кнопку
    -ToGetHelpGoOnSparkAngels2=Иногда, нет доступной в данный момент компании, удовлетворяющей вашему поиски. Попробуйте изменить фильтр поиска на "все доступные", так Вы сможете отправить больше заявок.
    -BackToHelpCenter=В противном случае, нажмите здесь, чтобы вернуться <a href="%s">обратно к главной странице Справочного центра</a>.
    -LinkToGoldMember=Вы можете позвонить одному из отобранных тренеров Dolibarr на вашем языке (%s), выбрав его Виджет (статус и максимальная цена звонка обновляются автоматически):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Поддерживаемые языки
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/ru_RU/holiday.lang b/htdocs/langs/ru_RU/holiday.lang
    index 2cfbc577e50..9dd4adb55e0 100644
    --- a/htdocs/langs/ru_RU/holiday.lang
    +++ b/htdocs/langs/ru_RU/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=Отдел кадров
    -Holidays=Отпуска
    -CPTitreMenu=Отпуска
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Ежемесячная выписка
     MenuAddCP=New leave request
    -NotActiveModCP=Вы должны включить модуль "Отпуска" для просмотра этой страницы
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Подать заявление на отпуск
     DateDebCP=Начальная дата
     DateFinCP=Конечная дата
    @@ -15,18 +15,18 @@ ApprovedCP=Утверждено
     CancelCP=Отменено
     RefuseCP=Отказано
     ValidatorCP=Утвердивший
    -ListeCP=Список отпусков
    +ListeCP=List of leave
     LeaveId=Leave ID
     ReviewedByCP=Will be approved by
     UserForApprovalID=User for approval ID
    -UserForApprovalFirstname=Firstname of approval user
    -UserForApprovalLastname=Lastname of approval user
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
     UserForApprovalLogin=Login of approval user
     DescCP=Описание
     SendRequestCP=Создать заявление на отпуск
     DelayToRequestCP=Заявления об отпуске могут создаваться не ранее чем через <b>%s</b> (дней)
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=График отпусков  <b>%s</b> дней.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Выберите конечную дату позже чем начальную.
     ErrorSQLCreateCP=Ошибка SQL возникла во время создания:
     ErrorIDFicheCP=Возникла ошибка, заявление на отпуск отсутствует.
    @@ -101,8 +101,8 @@ LEAVE_SICK=Sick leave
     LEAVE_OTHER=Other leave
     LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Обновлено успешно
     Module27130Name= Управление заявлениями на отпуск
     Module27130Desc= Управление заявлениями на отпуск
    @@ -112,7 +112,7 @@ NoticePeriod=Период уведомления
     HolidaysToValidate=Подтверждение заявления на отпуск
     HolidaysToValidateBody=Ниже список заявлений на отпуск, которые требуют подтверждения
     HolidaysToValidateDelay=Это заявление на отпуск будет рассмотрено в период менее, чем %s дней.
    -HolidaysToValidateAlertSolde=У пользователя, который оставил это заявление на отпуск нет достаточного количество доступных дней. 
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Подтверждённые заявления на отпуск
     HolidaysValidatedBody=Ваше заявление на отпуск с  %s по %s  подтверждено.
     HolidaysRefused=Заявление отклонено.
    @@ -121,4 +121,9 @@ HolidaysCanceled=Отменённые заявления на отпуск
     HolidaysCanceledBody=Ваше заявление на отпуск с  %s по %s отменено. 
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/ru_RU/install.lang b/htdocs/langs/ru_RU/install.lang
    index e2171a9e4ef..057fd799c8a 100644
    --- a/htdocs/langs/ru_RU/install.lang
    +++ b/htdocs/langs/ru_RU/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Мы постарались сделать установку Dolibarr настолько простой, насколько это возможно. Просто следуйте инструкциям по установке, шаг за шагом.
     MiscellaneousChecks=Проверка системных требований
     ConfFileExists=Файл <b>конфигурации %s</b> существует.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Файл <b>конфигурации %s</b> не существует и не может быть создан!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Файл <b>конфигурации %s</b> может быть создан.
    -ConfFileIsNotWritable=Файл <b>конфигурации %s</b> недоступен для записи. Проверьте права доступа. Для первой установки, Ваш веб-сервер должен быть предоставлен чтобы иметь права доступа для записи в этот файл во время всего процесса установки ( Используйте команду "сhmod" в ОС типа Unix, c маской 666).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Файл <b>конфигурации %s</b> доступен для записи.
     ConfFileMustBeAFileNotADir=Файл конфигурации <b>%s</b> должен быть файлом, а не каталогом.
    -ConfFileReload=Перезагрузить всю информацию из файла конфигурации.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Эта версия PHP поддерживает сессии.
     PHPSupportPOSTGETOk=Эта версия PHP поддерживает переменные POST и GET.
    -PHPSupportPOSTGETKo=Возможно,  ваша версия PHP не поддерживает переменные и POST или GET. Проверьте параметр <b>variables_order</b> в php.ini.
    -PHPSupportGD=Эта версия PHP  поддерживает библиотеку.
    -PHPSupportCurl=Эта поддержка PHP Curl.
    -PHPSupportUTF8=Эта версия PHP поддерживает UTF8 функции.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK= Максимально допустимый размер памяти для сессии установлен <b>в %s.</b> Это должно быть достаточно.
    -PHPMemoryTooLow=Ваш PHP макс сессии памяти установлен <b>в %s</b> байт. Это должно быть слишком низким. Измените свой <b>php.ini</b> установить параметр <b>memory_limit,</b> по крайней <b>мере %s</b> байт.
    -Recheck=Нажмите здесь для более significative тест
    -ErrorPHPDoesNotSupportSessions=Ваш PHP установки не поддерживает сессии. Эта функция требует, чтобы Dolibarr работает. Проверьте настройки PHP.
    -ErrorPHPDoesNotSupportGD=Ваш PHP установки не поддерживает графические функции GD. Нет графике будет иметься в наличии.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Ваша установка PHP не поддерживает Curl.
    -ErrorPHPDoesNotSupportUTF8=Ваш PHP установки не поддерживает UTF8 функций. Dolibarr не может работать корректно. Решать эту перед установкой Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Каталог %s не существует.
    -ErrorGoBackAndCorrectParameters=Перейти назад и исправить неправильные параметры.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Вы ввели неправильное значение для параметра ' %s'.
     ErrorFailedToCreateDatabase=Не удается создать базу данных ' %s'.
     ErrorFailedToConnectToDatabase=Не удалось подключиться к базе данных ' %s'.
     ErrorDatabaseVersionTooLow=Версия базы данных (%s) слишком старая. Требуется версия %s или выше
     ErrorPHPVersionTooLow=Версия PHP слишком стара. Версия %s обязательна.
    -ErrorConnectedButDatabaseNotFound=Подключение к серверу базы данных, но успешным ' %s' не найден.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=База данных ' %s' уже существует.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Если база данных не существует, вернитесь назад и проверьте параметр "Создать базу данных".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Если база данных уже существует, вернитесь назад и снимите флажок "Создать базу данных" вариант.
    -WarningBrowserTooOld=Слишком старая версия браузера. Настоятельно рекомендуем обновить до свежей версии Firefox, Chrom или Opera
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=Версия PHP
     License=Использование лицензии
     ConfigurationFile=Файл конфигурации
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr База данных
     DatabaseType=Тип Базы данных
     DriverType=Тип драйвера
     Server=Сервер
    -ServerAddressDescription=Имя или IP-адрес сервера баз данных, как правило, 'локальный', когда сервер базы данных размещается на одном сервере, чем веб-сервер
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=База данных сервера порт. Держите пустым, если неизвестно.
     DatabaseServer=Сервер базы данных
     DatabaseName=Название базы данных
    -DatabasePrefix=Таблица базы данных префиксов
    -AdminLogin=Логин Dolibarr для администратора базы данных. Держите пустым, если вы подключаетесь в анонимном
    -PasswordAgain=Введите пароль еще раз
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Пароль Dolibarr для администратора базы данных. Держите пустым, если вы подключаетесь в анонимном
     CreateDatabase=Создание базы данных
    -CreateUser=Создать владельца или предоставить ему разрешение на базу данных
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=База данных - Superuser доступа
    -CheckToCreateDatabase=Флажок, если база данных не существует, и должен быть создан. <br> В этом случае, вы должны заполнить логин и пароль для учетной записи суперпользователя в нижней части этой страницы.
    -CheckToCreateUser=Установите флажок, если владелец базы данных не существует и должен быть создан, или если он существует, но база данных не существует и разрешения должны быть предоставлены. <br> В этом случае вы должны выбрать свой логин и пароль, а также заполнить логин / пароль для учетной записи суперпользователя внизу этой страницы. Если этот флажок не установлен, база данных владельца и его пароли должны существовать.
    -DatabaseRootLoginDescription=Войти на пользователя разрешается создавать новые базы данных и новых пользователей, бесполезны, если ваша база данных, и ваша база данных логин уже существует (например, когда вы Хостинг провайдер веб-хостинга).
    -KeepEmptyIfNoPassword=Оставьте пустым, если пользователь не имеет пароля (избежать этого)
    -SaveConfigurationFile=Сохранить значения
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Сервер связи
     DatabaseCreation=Создание базы данных
     CreateDatabaseObjects=Создание объектов базы данных
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Создать внешние ключи и индекс
     OtherKeysCreation=Создание внешних ключей и индексов
     FunctionsCreation=Функции создания
     AdminAccountCreation=Создание логина Администратора
    -PleaseTypePassword=Пожалуйста, введите пароль, пустые пароли не допускаются!
    -PleaseTypeALogin=Пожалуйста, введите логин!
    -PasswordsMismatch=Пароли отличаются, пожалуйста, попробуйте еще раз!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Окончание установки
     SystemIsInstalled=Эта установка завершена.
     SystemIsUpgraded=Dolibarr был обновлен успешно.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Вам нужно настроить Dolibarr, что
     AdminLoginCreatedSuccessfuly=Администратор входа в систему Dolibarr '<b>%s</b>' создан успешно.
     GoToDolibarr=Перейти к Dolibarr
     GoToSetupArea=Перейти к Dolibarr (настройка область)
    -MigrationNotFinished=Версия базы данных не совсем в курсе, так что вам придется запустить процесс обновления еще раз.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Перейти на страницу снова обновить
     WithNoSlashAtTheEnd=Без слеша "/" в конце
    -DirectoryRecommendation=Det er recommanded å bruke en ut av ditt katalogen av websidene dine.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Уже существует
     DolibarrAdminLogin=Dolibarr администратора
    -AdminLoginAlreadyExists=Dolibarr администратора учетной записи <b>' %s'</b> уже существует.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Не удалось создать учетную запись администратора Dolibarr.
    -WarningRemoveInstallDir=Предупреждение, по соображениям безопасности после того, как установить или обновить завершено, Вы должны удалить <b>каталог или переименовать его в install.lock во избежание ее злонамеренного использования.</b>
    -FunctionNotAvailableInThisPHP=Не доступно в текущей версии PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Выбранная перенести скрипт
     DataMigration=Перенос данных (данные)
     DatabaseMigration=Перенос базы данных (структура + некоторые данные)
     ProcessMigrateScript=Сценарий обработки
     ChooseYourSetupMode=Выберите режим настройки и нажмите кнопку "Пуск" ...
     FreshInstall=Свежие установить
    -FreshInstallDesc=Используйте этот режим, если это ваш первый установке. Если нет, то этот режим можно восстановить предыдущий неполной установке, но если вы хотите обновить версию, выберите "Обновить" режиме.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Обновление
     UpgradeDesc=Используйте этот режим, если вы заменили старый Dolibarr файлы с файлами из новой версии. Это позволит обновить базу данных и данных.
     Start=Главная
     InstallNotAllowed=Установка не разрешено <b>conf.php</b> разрешений
     YouMustCreateWithPermission=Вы должны создать файл %s и установить запись по этому вопросу для веб-сервера во время установки.
    -CorrectProblemAndReloadPage=Просьба решить эту проблему, и нажмите F5, чтобы перезагрузить страницу.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Уже мигрировали
     DatabaseVersion=Версия Базы данных
     ServerVersion=Версия сервера базы данных
     YouMustCreateItAndAllowServerToWrite=Вы должны создать этот каталог и позволит веб-серверу, чтобы написать на ней.
     DBSortingCollation=Характер сортировки
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Вы спросите для создания базы <b>данных %s,</b> но для этого, Dolibarr необходимо подключиться к <b>серверу %s</b> с супер <b>пользователя% с</b> разрешениями.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Вы спросите для создания базы данных <b>логин %s,</b> но для этого, Dolibarr необходимо подключиться к <b>серверу %s</b> с супер <b>пользователя% с</b> разрешениями.
    -BecauseConnectionFailedParametersMayBeWrong=В связи неудачу, принимающих или супер пользователем параметров должно быть не так.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphelins оплаты обнаружена методом %s
     RemoveItManuallyAndPressF5ToContinue=Удалите ее вручную и нажмите F5, чтобы продолжить.
     FieldRenamed=Поле переименовано
    -IfLoginDoesNotExistsCheckCreateUser=Если вход не существует еще, вы должны проверить опцию "Создать пользователя"
    -ErrorConnection=Сервер <b>" %s",</b> имя базы данных <b>" %s",</b> логин <b>" %s",</b> или базы данных паролей могут быть неправильными или PHP версии клиента может быть слишком стар, по сравнению с версией базы данных.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Anbefalt valget å installere versjon <b>%s</b> fra din nåværende versjonen <b>%s</b>
     InstallChoiceSuggested=<b>Установить выбор предложенной установки.</b>
    -MigrateIsDoneStepByStep=Целевых версия (%s) имеет разрыв в несколько версий, поэтому мастер установки вернется предложить следующий миграции раз этот будет завершен.
    -CheckThatDatabasenameIsCorrect=Sjekk at database navn <b>"%s"</b> er korrekt.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Hvis dette navnet er riktig, og at databasen ikke eksisterer ennå, du må sjekke alternativet "Opprett database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=Du merket "Opprett database". For dette, må du oppgi brukernavn / passord av superbruker (nederst på skjemaet).
    -YouAskToCreateDatabaseUserSoRootRequired=Du merket "Opprett database eier". For dette, må du oppgi brukernavn / passord av superbruker (nederst på skjemaet).
    -NextStepMightLastALongTime=Gjeldende trinn kan vare i flere minutter. Vennligst vent til neste skjermbildet vises helt før du fortsetter.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrer frakt for kundeordrer oppbevaring
     MigrationShippingDelivery=Oppgrader lagring av shipping
     MigrationShippingDelivery2=Oppgrader lagring av shipping 2
     MigrationFinished=Миграция завершена
    -LastStepDesc=<strong>Последний шаг:</strong> Определить здесь Логин и пароль, которые вы планируете использовать для подключения к программному обеспечению. Как не потерять эту, как это внимание, чтобы управлять всеми другими.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Активировать модуль %s
     ShowEditTechnicalParameters=Показать расширенные параметры (для опытных пользователей)
    -WarningUpgrade=Предупреждение:\nПервый запуск базы данных?\nЭто настоятельно рекомендуется: например, из-за некоторых ошибок в системах баз данных (например, mysql версии 5.5.40 / 41/42/43) некоторые данные или таблицы могут быть потеряны во время этого процесса, поэтому настоятельно рекомендуется иметь полный дамп вашей базы данных перед началом миграции.\n\nНажмите «ОК», чтобы начать процесс миграции ...
    -ErrorDatabaseVersionForbiddenForMigration=Версия вашей СУБД %s. Она содержит критическую ошибку, которая приводит к потере данных, если вы меняете структуру БД, как это требуется в процессе миграции. По этой причине, перенос не будет осуществлён до момента, пока вы не обновите вашу СУБД до работоспособной версии (версии с критическими ошибками %s)
    -KeepDefaultValuesWamp=Вы можете использовать мастер настройки DoliWamp, поэтому ценности предлагаемого здесь уже оптимизирован. Изменить их только, если вы знаете, что вы делаете.
    -KeepDefaultValuesDeb=Du bruker Dolibarr konfigurasjonsveiviseren fra en Ubuntu eller Debian-pakke, så verdiene foreslått her allerede er optimalisert. Bare passordet til databasen eieren til å opprette må fullføres. Endre andre parametere bare hvis du vet hva du gjør.
    -KeepDefaultValuesMamp=Вы можете использовать мастер настройки DoliMamp, поэтому ценности предлагаемого здесь уже оптимизирован. Изменить их только, если вы знаете, что вы делаете.
    -KeepDefaultValuesProxmox=Вы можете использовать мастер установки из Dolibarr прибор Proxmox виртуальные, поэтому значения предлагаемых здесь уже оптимизированы. Изменение их, только если вы знаете, что вы делаете.
    -UpgradeExternalModule=Запустить выделенный процесс обновления внешних модулей
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Задайте по крайней мере один параметр в качестве параметра в URL-адресе. Например:  '...repair.php?standard=confirmed'
     NothingToDelete=Ничего не нужно очищать/удалять
     NothingToDo=Нечего делать
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Контракт коррекция данных
     MigrationContractsNumberToUpdate=%s договора (ов) для обновления
     MigrationContractsLineCreation=Создание линии по контракту контракт исх %s
     MigrationContractsNothingToUpdate=Нет более вещи делать
    -MigrationContractsFieldDontExist=Поле fk_facture не существует больше. Ничего делать.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Контракт пустую дату коррекции
    -MigrationContractsEmptyDatesUpdateSuccess=Успешная коррекция даты
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Ни один контракт не пустой даты исправить
     MigrationContractsEmptyCreationDatesNothingToUpdate=Нет контракта дата создания исправить
     MigrationContractsInvalidDatesUpdate=Плохо стоимости контракта дата коррекции
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Поставка обновлений
     MigrationStockDetail=Обновление запасов стоимость товаров
     MigrationMenusDetail=Обновление динамического меню таблицы
     MigrationDeliveryAddress=Обновить адрес для доставки грузов в
    -MigrationProjectTaskActors=Data migrering for llx_projet_task_actors bord
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migrering feltet fk_user_resp av llx_projet å llx_element_contact
     MigrationProjectTaskTime=Oppdater tid i sekunder
     MigrationActioncommElement=Обновление данных о действиях
     MigrationPaymentMode=Миграция данных для оплаты режим
     MigrationCategorieAssociation=Миграция категорий
    -MigrationEvents=Перенос событий для добавления владельца в таблицу присваиванья
    -MigrationEventsContact=Миграция событий для добавления события контакта в таблицу присваивания
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Обновить значение поля объекта llx_societe_remise
     MigrationRemiseExceptEntity=Обновить значение поля объекта llx_societe_remise_except
     MigrationUserRightsEntity=Обновить значение поля объекта llx_user_rights
     MigrationUserGroupRightsEntity=Обновить значение поля объекта llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Перегрузите модуль %s
     MigrationResetBlockedLog=Сбросить модуль BlockedLog для алгоритма v7
    -ShowNotAvailableOptions=Показать недоступные опции
    -HideNotAvailableOptions=Скрыть недоступные опции
    -ErrorFoundDuringMigration=Ошибка была зарегистрирована во время процесса миграции, поэтому следующий шаг недоступен. Чтобы игнорировать ошибки, вы можете <a href="%s">щелкнуть здесь</a>, но приложение или некоторые функции могут работать некорректно до фиксированного.
    -YouTryInstallDisabledByDirLock=Приложение попытается выполнить обновление, но установка/обновление страниц были отключены по соображениям безопасности (каталог переименован в .lock-суффикс). <br>
    -YouTryInstallDisabledByFileLock=Приложение попытается выполнить обновление, но установка/обновление страниц страниц были отключены по соображениям безопасности (по файлу блокировки <strong>install.lock</strong> в каталоге документов dolibarr). <br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Нажмите здесь, чтобы перейти к вашей заявке
    -ClickOnLinkOrRemoveManualy=Нажмите следующую ссылку и, если вы всегда видите эту страницу, вы должны удалить файл install.lock в каталог документов вручную
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/ru_RU/interventions.lang b/htdocs/langs/ru_RU/interventions.lang
    index 676ce8b749e..23b53b0c202 100644
    --- a/htdocs/langs/ru_RU/interventions.lang
    +++ b/htdocs/langs/ru_RU/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Мероприятия
     InterventionCard=Карточка посредничества
     NewIntervention=Новое посредничество
     AddIntervention=СОздать посредничество
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Перечень мероприятий
     ActionsOnFicheInter=Действия над посредничеством
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang
    index 2b97df402fb..978cb720cc9 100644
    --- a/htdocs/langs/ru_RU/main.lang
    +++ b/htdocs/langs/ru_RU/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Не удалось отправить почту (отп
     ErrorFileNotUploaded=Файл не был загружен. Убедитесь, что его размер не превышает максимально допустимое значение, свободное место имеется на диске, и файл с таким же именем не существует в этом каталоге.
     ErrorInternalErrorDetected=Обнаружена ошибка
     ErrorWrongHostParameter=Неверный параметр хоста
    -ErrorYourCountryIsNotDefined=Ваша страна не определена. Перейдите Главная-Настройки-Редактировать и снова отправьте форму.
    -ErrorRecordIsUsedByChild=Не удалось удалить эту запись. Эта запись используется, по крайней мере, одной дочерней записью.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Неправильное значение
     ErrorWrongValueForParameterX=Неправильное значение параметра %s
     ErrorNoRequestInError=В ошибке нет никаких запросов
    -ErrorServiceUnavailableTryLater=Служба не доступна на данный момент. Попробуйте еще раз позже.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Повторяющееся значение в уникальном поле
    -ErrorSomeErrorWereFoundRollbackIsDone=Были обнаружены некоторые ошибки. Изменения отменены.
    -ErrorConfigParameterNotDefined=Параметр <b>%s</b> не определен внутри конфигурационного файла Dolibarr <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Не удалось найти пользователя <b>%s</b> в базе данных Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Ошибка, ставки НДС не установлены для страны '%s'.
     ErrorNoSocialContributionForSellerCountry=Ошибка, не определен тип социальных/налоговых взносов для страны %s.
     ErrorFailedToSaveFile=Ошибка, не удалось сохранить файл.
    -ErrorCannotAddThisParentWarehouse=Вы пытаетесь добавить родительский склад который является дочерним
    -MaxNbOfRecordPerPage=Максимальное количество записей на страницу
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Вы не авторизованы чтобы сделать это.
     SetDate=Установить дату
     SelectDate=Выбрать дату
    @@ -78,10 +78,10 @@ FileRenamed=Файл успешно переименован
     FileGenerated=Файл успешно создан
     FileSaved=Файл сохранен
     FileUploaded=Файл успешно загружен
    -FileTransferComplete=Файл(ы) успешно загружены
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=Файл(ы) успешно удалены
     FileWasNotUploaded=Файл выбран как вложение, но пока не загружен. Для этого нажмите "Вложить файл".
    -NbOfEntries=Кол-во записей
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Читать интернет-справку (необходим доступ к Интернету)
     GoToHelpPage=Читать помощь
     RecordSaved=Запись сохранена
    @@ -94,7 +94,7 @@ Undefined=Неопределено
     PasswordForgotten=Забыли пароль?
     NoAccount=Нет аккаунта?
     SeeAbove=См. выше
    -HomeArea=Начальная область
    +HomeArea=Главная
     LastConnexion=Последнее подключение
     PreviousConnexion=Предыдущий вход
     PreviousValue=Предыдущее значение
    @@ -142,6 +142,7 @@ Closed=Закрыто
     Closed2=Закрыто
     NotClosed=Не закрыто
     Enabled=Включено
    +Enable=Включено
     Deprecated=Устарело
     Disable=Выключить
     Disabled=Выключено
    @@ -153,7 +154,7 @@ Update=Обновить
     Close=Закрыть
     CloseBox=Удалить виджет с главного экрана
     Confirm=Подтвердить
    -ConfirmSendCardByMail=Отправить эту карточку на <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Удалить
     Remove=Удалить
     Resiliate=Завершить
    @@ -327,7 +328,7 @@ Copy=Копировать
     Paste=Вставить
     Default=По умолчанию
     DefaultValue=Значение по умолчанию
    -DefaultValues=Стандартное значение
    +DefaultValues=Default values/filters/sorting
     Price=Цена
     PriceCurrency=Цена (валюта)
     UnitPrice=Цена за единицу
    @@ -347,7 +348,7 @@ AmountTTCShort=Сумма (вкл-я налог)
     AmountHT=Сумма (без налога)
     AmountTTC=Сумма (вкл-я налог)
     AmountVAT=Сумма НДС
    -MulticurrencyAlreadyPaid=Уже оплачено, в исходной валюте
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Осталось оплатить, в оригинальной валюте
     MulticurrencyPaymentAmount=Сумма платежа, в оригинальной валюте
     MulticurrencyAmountHT=Сумма (нетто), в исходной валюте
    @@ -428,7 +429,7 @@ ActionNotApplicable=Не применяется
     ActionRunningNotStarted=Не начато
     ActionRunningShort=Выполняется
     ActionDoneShort=Завершено
    -ActionUncomplete=Не завершено
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Последние связанные события %s
     CompanyFoundation=Компания / организация
     Accountant=Бухгалтер
    @@ -436,6 +437,7 @@ ContactsForCompany=Контакты для этого контрагента к
     ContactsAddressesForCompany=Контакты/Адреса для этого контрагента
     AddressesForCompany=Адреса для этого контарагента
     ActionsOnCompany=Действия для этого контрагента
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=События этого участника
     ActionsOnProduct=События об этом продукте
     NActionsLate=% с опозданием
    @@ -453,8 +455,8 @@ Generate=Создать
     Duration=Продолжительность
     TotalDuration=Общая продолжительность
     Summary=Общее
    -DolibarrStateBoard=Статистика базы данных
    -DolibarrWorkBoard=Открытые элементы основной страницы
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=Нет открытого элемента для обработки
     Available=Доступно
     NotYetAvailable=Пока не доступно
    @@ -468,7 +470,7 @@ and=и
     or=или
     Other=Другой
     Others=Другие
    -OtherInformations=Другая информация
    +OtherInformations=Other information
     Quantity=Количество
     Qty=Кол-во
     ChangedBy=Изменен
    @@ -506,7 +508,7 @@ None=Никакой
     NoneF=Никакой
     NoneOrSeveral=Нет или несколько
     Late=Поздно
    -LateDesc=Появится ваша запись с задержкой или без задержки определяется в настройках. Попросите вашего администратора изменить задержку из меню Главная - Настройка - Предупреждения
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=Нет позднего пункта
     Photo=Изображение
     Photos=Изображения
    @@ -530,18 +532,6 @@ September=Сентябрь
     October=Октябрь
     November=Ноябрь
     December=Декабрь
    -JanuaryMin=Янв
    -FebruaryMin=Фев
    -MarchMin=Мар
    -AprilMin=Апр
    -MayMin=Май
    -JuneMin=Июн
    -JulyMin=Июл
    -AugustMin=Авг
    -SeptemberMin=Сен
    -OctoberMin=Окт
    -NovemberMin=Ноя
    -DecemberMin=Дек
     Month01=январь
     Month02=февраль
     Month03=март
    @@ -646,6 +636,8 @@ SendMail=Отправить письмо
     EMail=Электронная почта
     NoEMail=Нет Email
     Email=Адрес электронной почты
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Нет мобильного телефона
     Owner=Владелец
     FollowingConstantsWillBeSubstituted=Следующие константы будут подменять соответствующие значения.
    @@ -677,7 +669,7 @@ NeverReceived=Никогда не получено
     Canceled=Отменено
     YouCanChangeValuesForThisListFromDictionarySetup=Можно изменить содержание этого списка в Главная - Настройка - Словари
     YouCanChangeValuesForThisListFrom=Можно изменить значения этого списка из меню %s
    -YouCanSetDefaultValueInModuleSetup=Вы можете настроить значение по-умолчанию используемое при создании новой записи в модуле Настройка
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Цвет
     Documents=Связанные файлы
     Documents2=Документы
    @@ -716,15 +708,15 @@ Merge=Слияние
     DocumentModelStandardPDF=Стандартные PDF-шаблоны
     PrintContentArea=Показать страницу для печати области основного содержимого
     MenuManager=Менеджер меню
    -WarningYouAreInMaintenanceMode=Внимание, вы находитесь в режиме обслуживания, так что только пользователю <b>%s</b> разрешено использовать приложение в данный момент.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Системная ошибка
     CoreErrorMessage=Извините, произошла ошибка. Для получения большей информации свяжитесь с системным администратором для проверки технических событий или отключения $dolibarr_main_prod=1.
     CreditCard=Кредитная карта
     ValidatePayment=Подтвердть платёж
     CreditOrDebitCard=Кредитная или дебетовая карта
     FieldsWithAreMandatory=Поля с <b>%s</b> являются обязательными
    -FieldsWithIsForPublic=Поля с <b>%s</b> показаны для публичного списка членов. Если вы не хотите этого, проверить поле "публичный".
    -AccordingToGeoIPDatabase=(в соответствии с преобразованием GeoIP)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Строка
     NotSupported=Не поддерживается
     RequiredField=Обязательное поле
    @@ -732,6 +724,8 @@ Result=Результат
     ToTest=Тест
     ValidateBefore=Карточка должна быть проверена, прежде чем использовать эту функцию
     Visibility=Видимость
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Частный
     Hidden=Скрытый
     Resources=Ресурсы
    @@ -750,6 +744,7 @@ LinkTo=Ссылка к
     LinkToProposal=Ссылка для предложения
     LinkToOrder=Ссылка для заказа
     LinkToInvoice=Ссылка для счета
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Ссылка для заказа поставщику
     LinkToSupplierProposal=Ссылка для предложения поставщику
     LinkToSupplierInvoice=Ссылка для счета поставщику
    @@ -758,6 +753,7 @@ LinkToIntervention=Ссылка на мероприятие
     CreateDraft=Создать проект
     SetToDraft=Назад к черновику
     ClickToEdit=Нажмите, чтобы изменить
    +ClickToRefresh=Click to refresh
     EditWithEditor=Изменить с помощью CKEditor
     EditWithTextEditor=Редактировать с помощью текстового редактора
     EditHTMLSource=Редактировать HTML-источник
    @@ -772,14 +768,14 @@ ByDay=Днем
     BySalesRepresentative=По торговым представителем
     LinkedToSpecificUsers=Связан с особым контактом пользователя
     NoResults=Нет результатов
    -AdminTools=Инструменты администратора
    +AdminTools=Admin Tools
     SystemTools=Системные инструменты
     ModulesSystemTools=Настройки модулей
     Test=Тест
     Element=Элемент
     NoPhotoYet=Пока недо доступных изображений
     Dashboard=Начальная страница
    -MyDashboard=Моя главная страница
    +MyDashboard=My Dashboard
     Deductible=Подлежащий вычету
     from=от
     toward=к
    @@ -802,7 +798,7 @@ PrintFile=Печать файл %s
     ShowTransaction=Показать транзакцию на банковском счете
     ShowIntervention=Показать посредничества
     ShowContract=Показать договор
    -GoIntoSetupToChangeLogo=Используйте Главная-Настройки-Компании для изменения логотипа или  Главная-Настройки-Отображение для того, чтобы его скрыть.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Запретить
     Denied=Запрещено
     ListOf=Список %s
    @@ -818,12 +814,12 @@ Sincerely=С уважением,
     DeleteLine=Удалить строки
     ConfirmDeleteLine=Вы точно хотите удалить эту строку?
     NoPDFAvailableForDocGenAmongChecked=PDF не доступен для документов созданных из выбранных записей
    -TooManyRecordForMassAction=Выбранно слишком много записей для группового действия. Это действие запрещено для списка состоящего из %s записей.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=Нет выделенных записей
     MassFilesArea=Пространство для массовых действий с файлами
     ShowTempMassFilesArea=Показать область для массовых действий с файлами
    -ConfirmMassDeletion=Массовое подтверждение удаления
    -ConfirmMassDeletionQuestion=Вы уверены, что хотите удалить выбранную запись %s?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Связанные объекты
     ClassifyBilled=Классифицировать счета
     ClassifyUnbilled=Классифицировать невыполненные
    @@ -841,7 +837,7 @@ Calendar=Календарь
     GroupBy=Группировка по...
     ViewFlatList=Вид плоским списком
     RemoveString=Удалить строку '%s'
    -SomeTranslationAreUncomplete=Переводы на некоторые языки могут быть выполнены частично или с ошибками. Если вы обнаружите ошибки в переводе, вы можете исправить файлы переводов зарегистрировавшись по ссылке <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Прямая ссылка для скачивания (общедоступная/внешняя)
     DirectDownloadInternalLink=Прямая ссылка для скачивания (требуется регистрация и необходимые разрешения)
     Download=Загрузка
    @@ -852,25 +848,34 @@ ModuleBuilder=Создатель Модуля
     SetMultiCurrencyCode=Настройка валюты
     BulkActions=Массовые действия
     ClickToShowHelp=Нажмите для отображения подсказок
    -WebSite=Веб-сайт
    +WebSite=Website
     WebSites=Веб-сайты
    -WebSiteAccounts=Учетные записи веб-сайтов
    +WebSiteAccounts=Website accounts
     ExpenseReport=Отчёт о затратах
     ExpenseReports=Отчёты о затратах
     HR=Кадры
     HRAndBank=Кадры и Банк
     AutomaticallyCalculated=Автоматический подсчет
     TitleSetToDraft=Вернуться к черновику
    -ConfirmSetToDraft=Вы уверены что хотите вернуть  статус Черновик?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Импорт идентификатора
     Events=События
    -EMailTemplates=Шаблоны электронных писем
    -FileNotShared=Файл, не доступный для обычного пользователя
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Проект
     Projects=Проекты
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Права доступа
     LineNb=Номер строки
     IncotermLabel=Обязанности по доставке товаров
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Понедельник
     Tuesday=Вторник
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Мероприятия
     SearchIntoContracts=Договоры
     SearchIntoCustomerShipments=Отгрузки клиентам
     SearchIntoExpenseReports=Отчёты о затратах
    -SearchIntoLeaves=Отпуска
    +SearchIntoLeaves=Leave
     CommentLink=Комментарии
     NbComments=Количество комментариев
     CommentPage=Комментарии
     CommentAdded=Комментарий добавлен
     CommentDeleted=Комментарий удален
     Everybody=Общий проект
    -PayedBy=Оплачивается
    -PayedTo=Оплачивать
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=ежемесячно
     Quarterly=Ежеквартальный
     Annual=годовой
    @@ -945,6 +950,8 @@ LocalAndRemote=Локальные и удаленные
     KeyboardShortcut=Сочетание клавиш
     AssignedTo=Ответств.
     Deletedraft=Удалить проект
    -ConfirmMassDraftDeletion=Подтверждение удаления проекта
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=Файл, общий доступ по ссылке
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/ru_RU/other.lang b/htdocs/langs/ru_RU/other.lang
    index b71ac8ed0d0..a2855b66be8 100644
    --- a/htdocs/langs/ru_RU/other.lang
    +++ b/htdocs/langs/ru_RU/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Защитный код
     NumberingShort=N°
     Tools=Инструменты
     TMenuTools=Инструменты
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=День рождения
     BirthdayDate=Birthday date
     DateToBirth=Дата рождения
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Сообщение на странице проверки возвращение оплаты
     MessageKO=Сообщение на странице отменен возврат оплаты
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Посредничество подтверждено
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Kundeordre validert
     Notify_ORDER_SENTBYMAIL=Покупатель делает заказ по почте
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Поставщик поручение, отправленные по почте
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Поставщик утвердил порядок
     Notify_ORDER_SUPPLIER_REFUSE=Поставщик порядке отказалась
     Notify_PROPAL_VALIDATE=Kunden forslaget validert
    -Notify_PROPAL_CLOSE_SIGNED=Предложение клиента подписано
    -Notify_PROPAL_CLOSE_REFUSED=Предложение клиента отклонено
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Коммерческое предложение по почте
     Notify_WITHDRAW_TRANSMIT=Передача вывода
     Notify_WITHDRAW_CREDIT=Кредитный выход
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Третья партия, созданная
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Проверка векселя
     Notify_BILL_UNVALIDATE=Счёт клиента не подтверждён
    -Notify_BILL_PAYED=Клиенту счет оплачен
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Счёт клиента отменён
     Notify_BILL_SENTBYMAIL=Клиенту счет-фактура высылается по почте
     Notify_BILL_SUPPLIER_VALIDATE=Поставщик проверки счета
    -Notify_BILL_SUPPLIER_PAYED= Счёт поставщика оплачен
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Поставщиком счета по почте
     Notify_BILL_SUPPLIER_CANCELED=Счёт поставщика отменён
     Notify_CONTRACT_VALIDATE=Договор проверку
     Notify_FICHEINTER_VALIDATE=Посредничество проверено.
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Доставка проверку
     Notify_SHIPPING_SENTBYMAIL=Доставка по почте
     Notify_MEMBER_VALIDATE=Член проверки
    @@ -71,24 +70,29 @@ Notify_PROJECT_CREATE=Создание проекта
     Notify_TASK_CREATE=Задача создана
     Notify_TASK_MODIFY=Задача изменена
     Notify_TASK_DELETE=Задача удалена
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Посмотреть настройку модуля  %s
     NbOfAttachedFiles=Количество прикрепленных файлов / документов
     TotalSizeOfAttachedFiles=Общий размер присоединенных файлов / документы
     MaxSize=Максимальный размер
     AttachANewFile=Присоединить новый файл / документ
     LinkedObject=Связанные объект
    -NbOfActiveNotifications=Количество адресов (количество адресов электронной почты получателей)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
    @@ -172,7 +176,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Проф Id %s</b> является информация в зависимости от сторонних страны. <br> Например, для страны <b>с%,</b> то <b>с кодом%.</b>
     DolibarrDemo=Dolibarr ERP / CRM демо
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +189,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Посредничество %s проверено.
     EMailTextInvoiceValidated=Счет %s проверены
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Forslaget %s har blitt validert.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Ordren %s har blitt validert.
    @@ -197,6 +202,10 @@ EMailTextOrderApprovedBy=Приказ %s одобрен %s
     EMailTextOrderRefused=Приказ %s отказала
     EMailTextOrderRefusedBy=Приказ %s отказано %s
     EMailTextExpeditionValidated=Отправка %s подтверждена
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Импорт данных
     DolibarrNotification=Автоматические уведомления
     ResizeDesc=Skriv inn ny <b>bredde</b> eller ny høyde. Forhold vil bli holdt under resizing ...
    @@ -204,7 +213,7 @@ NewLength=Ny bredde
     NewHeight=Ny høyde
     NewSizeAfterCropping=Ny størrelse etter beskjæring
     DefineNewAreaToPick=Definer nytt område på bildet for å plukke (venstre klikk på bildet og dra til du kommer til motsatt hjørne)
    -CurrentInformationOnImage=Informasjon om gjeldende bilde
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Редактор изображений
     YouReceiveMailBecauseOfNotification=Du mottar denne meldingen fordi din e-post har blitt lagt til listen over mål for å bli informert om spesielle hendelser i %s programvare av %s.
     YouReceiveMailBecauseOfNotification2=Denne hendelsen er følgende:
    @@ -235,6 +244,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Экспорт области
    @@ -248,5 +261,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Название
     WEBSITE_DESCRIPTION=Описание
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/ru_RU/paybox.lang b/htdocs/langs/ru_RU/paybox.lang
    index 5359bd74783..839cc8237bf 100644
    --- a/htdocs/langs/ru_RU/paybox.lang
    +++ b/htdocs/langs/ru_RU/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Настройка модуля PayBox
     PayBoxDesc=Этот модуль предложить страниц, чтобы платеж по <a href="http://www.paybox.com" target="_blank">Paybox</a> клиентами. Это может быть использовано для свободного платежа или за плату по тому или иному объекту Dolibarr (счетов-фактур, порядка, ...)
     FollowingUrlAreAvailableToMakePayments=После URL, можно предложить страницу к клиенту сделать платеж по Dolibarr объектов
     PaymentForm=Форма оплаты
    -WelcomeOnPaymentPage=Добро пожаловать на наш интернет-платежей службы
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=На этом экране можно сделать онлайн-платежей для %s.
     ThisIsInformationOnPayment=Это данные по оплате делать
     ToComplete=Для завершения
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL предложить %s онлайн 
     ToOfferALinkForOnlinePaymentOnContractLine=URL предложить% интернет-платежей с интерфейсом пользователя на контракт линия
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL предложить% интернет-платежей с пользовательским интерфейсом для свободного сумму
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL предложить оплаты %s онлайн пользовательский интерфейс для членов подписки
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Вы также можете добавить URL параметр И <b>тег= <i>значение</i></b> для любой из этих URL (требуется только для свободного платежа), чтобы добавить свой комментарий оплаты метки.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Настройте PayBox с <b>URL %s</b> иметь платежей создается автоматически, когда подтверждено paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Эта страница подтверждает, что ваш платеж был записан. Спасибо.
    -YourPaymentHasNotBeenRecorded=Вы платеж не был записан и сделка была отменена. Спасибо.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Счет параметры
     UsageParameter=Использование параметров
     InformationToFindParameters=Помогите найти %s информацию об учетной записи
    diff --git a/htdocs/langs/ru_RU/projects.lang b/htdocs/langs/ru_RU/projects.lang
    index c68bef10d51..bf2b47d026f 100644
    --- a/htdocs/langs/ru_RU/projects.lang
    +++ b/htdocs/langs/ru_RU/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Показать проекта
     ShowTask=Показать задачу
     SetProject=Комплекс проектов
     NoProject=Нет проекта определена
    -NbOfProjects=Nb проектов
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Время, затраченное
     TimeSpentByYou=Затраченное мной время
     TimeSpentByUser=Затраченное пользователем время
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Списки коммерческих предложений, связанных с проектом
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Перечень договоров, связанных с проектом
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Список мероприятий, связанных с проектом
    -ListExpenseReportsAssociatedProject=Список отчётов о затратах, связанных с проектом
    -ListDonationsAssociatedProject=Список пожертвований, связанных с проектом
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Список мероприятий, связанных с проектом
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Связь с другими третий участни
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Время, проведенное пуста
     ThisWillAlsoRemoveTasks=Это действие приведет к удалению всех задач проекта <b>(%s</b> задач на данный момент), и все входы затраченного времени.
    -IfNeedToUseOhterObjectKeepEmpty=Если некоторые объекты (счет-фактура, заказ, ...), принадлежащей другому третьему лицу, должна быть увязана с проектом по созданию, держать этот пустой иметь проект, несколько третьих лиц.
    +IfNeedToUseOtherObjectKeepEmpty=Если некоторые объекты (счет-фактура, заказ, ...), принадлежащей другому третьему лицу, должна быть увязана с проектом по созданию, держать этот пустой иметь проект, несколько третьих лиц.
     CloneProject=Дублировать Проект
     CloneTasks=Дублировать задачи
     CloneContacts=Дублировать контакты
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Проект %s изменен
     TaskCreatedInDolibarr=Задача %s создана
     TaskModifiedInDolibarr=Задача %s изменена
     TaskDeletedInDolibarr=Задача %s удалена
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Содействующий
     SelectElement=Выберите элемент
     AddElement=Ссылка на элемент
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Запланированная нагрузка
     PlannedWorkloadShort=Рабочая нагрузка
     ProjectReferers=Связанные элементы
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Предложение
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/ru_RU/propal.lang b/htdocs/langs/ru_RU/propal.lang
    index 7303b4e0918..760d8c4eacc 100644
    --- a/htdocs/langs/ru_RU/propal.lang
    +++ b/htdocs/langs/ru_RU/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Подпись (в законопроекте)
     PropalStatusNotSigned=Не подписал (закрытые)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Черновик
    -PropalStatusValidatedShort=Утверждена
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Закрытые
     PropalStatusSignedShort=Подпись
     PropalStatusNotSignedShort=Не подписано
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Пропал% не найдены
     AddToDraftProposals=Добавить проект коммерческого предложения
     NoDraftProposals=Нет проектов коммерческих дредложений
     CopyPropalFrom=Создание коммерческого предложения, копируя существующие предложения
    -CreateEmptyPropal=Создайте пустую коммерческих предложений vierge либо из списка товаров / услуг
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=По умолчанию коммерческого предложения действительности продолжительность (в днях)
    -UseCustomerContactAsPropalRecipientIfExist=Используйте адрес клиента, если определено, вместо третьей стороной решения, как предложение, адрес получателя
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Клон коммерческого предложения
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Абонентский отдел след
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Полный текст предложения модели (logo. ..)
    +DocModelCyanDescription=Полный текст предложения модели (logo. ..)
     DefaultModelPropalCreate=Создание модели по умолчанию
     DefaultModelPropalToBill=Шаблон по умолчанию, когда закрывается коммерческое предложение (для создания счёта)
     DefaultModelPropalClosed=Шаблон по умолчанию, когда закрывается коммерческое предложение (не оплаченное)
    diff --git a/htdocs/langs/ru_RU/website.lang b/htdocs/langs/ru_RU/website.lang
    index 8526f5b8fd9..3741a4956a3 100644
    --- a/htdocs/langs/ru_RU/website.lang
    +++ b/htdocs/langs/ru_RU/website.lang
    @@ -1,8 +1,8 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Код
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
    @@ -13,22 +13,24 @@ WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -37,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Читать
     WritePerm=Write
    @@ -46,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Учетные записи веб-сайтов
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -74,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -84,3 +88,8 @@ AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
     ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/ru_UA/other.lang b/htdocs/langs/ru_UA/other.lang
    index 7cb48758942..52e21065166 100644
    --- a/htdocs/langs/ru_UA/other.lang
    +++ b/htdocs/langs/ru_UA/other.lang
    @@ -2,7 +2,6 @@
     DateToBirth=Дата до рождения
     BirthdayAlertOn=День рождения оповещения активных
     BirthdayAlertOff=День рождения оповещения неактивные
    -Notify_FICHINTER_VALIDATE=Вмешательство проверку
     Notify_BILL_PAYED=Клиенту счет-фактура оплачен
     Notify_MEMBER_VALIDATE=Член проверку
     Notify_MEMBER_SUBSCRIPTION=Член подписался
    diff --git a/htdocs/langs/sk_SK/admin.lang b/htdocs/langs/sk_SK/admin.lang
    index aa9e2f735e2..7b48adec8a9 100644
    --- a/htdocs/langs/sk_SK/admin.lang
    +++ b/htdocs/langs/sk_SK/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Vývojárska
     VersionUnknown=Neznáma
     VersionRecommanded=Odporúčaná
     FileCheck=Kontrola integrity súborov
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler pre uloženie sedenia
     SessionSavePath=Adresár pre ukladanie relácií
     PurgeSessions=Purge relácií
     ConfirmPurgeSessions=Určite chcete vyčistit pripojenia ? Táto akcia odhlási každého uživateľa ( okrem vás )
    -NoSessionListWithThisHandler=Uložiť relácie handler nakonfigurované PHP neumožňuje uviesť všetky spustené relácie.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Zakázať nové pripojenia
    -ConfirmLockNewSessions=Ste si istí, že chcete obmedziť akékoľvek nové Dolibarr spojenie na seba. Iba užívateľské <b>%s</b> budú môcť pripojiť po tom.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Povoliť nové pripojenia
     YourSession=Vaša relácia
    -Sessions=Relácie užívateľov
    +Sessions=Users sessions
     WebUserGroup=Webový server užívateľ / skupina
    -NoSessionFound=Vaše PHP Zdá sa, že nedovolí, aby zoznam aktívnych relácií. Adresár slúži na uloženie sedenie <b>(%s)</b> môžu byť chránené (napr. tým, že oprávnenie OS alebo PHP open_basedir smernice).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Znaková sada dát uložených v databáze
     DBSortingCharset=Znaková sada databázy pre radenie dát
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Externý užívateľ
     InternalUsers=Interní používatelia
     ExternalUsers=Externí používatelia
     GUISetup=Zobraziť
    -SetupArea=Nastavenie plochy
    +SetupArea=Setup
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Formulár pre testovanie nahrávania súborov (podľa nastavenia)
     IfModuleEnabled=Poznámka: áno je účinné len vtedy, ak je modul <b>%s</b> zapnutý
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kód môže obsahovať hodnotu 0
     DisableJavascript=Vypnúť JavaScript a funkcie Ajax (Odporúča sa pre nevidiace osoby alebo pri textových prehliadačoch)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Predradníka znaky na spustenie hľadania: %s
     NotAvailableWhenAjaxDisabled=Nie je k dispozícii pri Ajax vypnutej
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Náhľad nie je k dispozícii
     ThemeCurrentlyActive=Téma aktívnej
     CurrentTimeZone=Časové pásmo PHP (server)
     MySQLTimeZone=TimeZone MySql (databáza)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Miesto
     Table=Tabuľka
     Fields=Pole
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Aktívne
     SetupShort=Setup
     OtherOptions=Ďalšie možnosti
    -OtherSetup=Ďalšie nastavenia
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Desatinný oddeľovač
     CurrentValueSeparatorThousand=Oddeľovač tisícov
     Destination=Destinácia
     IdModule=ID Modulu
     IdPermissions=ID Povolení
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Parametre lokalizácie
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Časová zóna klienta (používateľ)
     ClientHour=Čas klienta (používateľa)
     OSTZ=Čas servera
    @@ -126,8 +126,8 @@ PHPTZ=PHP servera Časová zóna
     DaylingSavingTime=Letný čas
     CurrentHour=PHP Čas (server)
     CurrentSessionTimeOut=Časový limit súčasnej relácie
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Panel
     Boxes=Panely
     MaxNbOfLinesForBoxes=Maximálny počet panelov
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignorovať chyby duplicitného záznamu
     AutoDetectLang=Autodetekcia (jazyk prehliadača)
     FeatureDisabledInDemo=Funkcia zakázaný v demo
     FeatureAvailableOnlyOnStable=Táto možnosť je dostupná iba v oficiálnej stabilnej verzií
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Iba prvky z <a href="%s">povolených modulov</a> sú uvedené.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Viac modulov na stiahnutie môžete nájst na internete
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Nový
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, oficiálny trh pre Dolibarr ERP / CRM externých modulov
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Referenčná stránka pre nájdenie viacero modulov
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Odkaz
     BoxesAvailable=Dostupné doplnky
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do žiadny obchod jasná heslá v databáze, ale iba ši
     MainDbPasswordFileConfEncrypted=Databáza heslo zašifrované v conf.php (Activated odporúčané)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Ochrana generovaných súborov PDF (aktivuje sa neodporúča, rozbije hromadné generovanie PDF)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Rys
     DolibarrLicense=Licencia
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=Pre používateľov alebo vývojárov dokumentácie (doc, FAQs ...) <br> pozrite sa na Dolibarr Wiki: <br> <a href="%s" target="_blank"><b>%s</b></a>
     ForAnswersSeeForum=V prípade akýchkoľvek ďalších otázok / help, môžete použiť fórum Dolibarr: <br> <a href="%s" target="_blank"><b>%s</b></a>
    -HelpCenterDesc1=Táto oblasť vám môže pomôcť získať pomocníka služby podpory na Dolibarr.
    -HelpCenterDesc2=Niektoré časti tejto služby sú k dispozícii <b>len</b> v <b>angličtine.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Aktuálna ponuka handler
     MeasuringUnit=Meracie prístroje
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS Port (V predvolenom nastavení v php.ini: <b>%s)</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (V predvolenom nastavení v php.ini: <b>%s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS Port (Nie je definovaná v PHP na Unixe, ako napr systémy)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS Host (Nie je definovaná v PHP na Unixe, ako napr systémy)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Poslať systematicky skrytú uhlík-kópie všetkých odoslaných e-mailov
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Použitá metóda pri odosielaní e-mailov
    -MAIN_MAIL_SMTPS_ID=SMTP ID ak sa vyžaduje overenie
    -MAIN_MAIL_SMTPS_PW=Heslo SMTP Ak sa vyžaduje overenie
    -MAIN_MAIL_EMAIL_TLS= Použiť TLS (SSL) šifrovanie
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Zakázať všetky SMS sendings (len na skúšobné účely alebo ukážky)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Použitá metóda pri odosielaní SMS
    -MAIN_MAIL_SMS_FROM=Predvolené odosielateľa telefónne číslo pre posielanie SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Funkcia nie je k dispozícii pre Unix, ako napr systémy. Otestujte si svoje sendmail programu na mieste.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Nastavenie modulu
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-moduly náradie
     ModuleFamilyExperimental=Experimentálne moduly
     ModuleFamilyFinancial=Finančné moduly (Účtovníctvo / Treasury)
     ModuleFamilyECM=Elektronický Redakčný motora (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu manipulátory
     MenuAdmin=Menu Editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Nepoužívajte vo výrobe
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Krok %s
    -FindPackageFromWebSite=Nájsť balíčka, ktorý obsahuje funkciu, ktorú chcete (napr. na oficiálnych webových stránkach %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Stiahnúť  balíček ( napr. z oficiálnej stránky %s ).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr aktuálna verzia
     CallUpdatePage=Choďte na stránku úpravý databázobej štruktúry a dát. %s
     LastStableVersion= Najnovšia stabilná verzia
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Oneskorenie pre ukladanie do medzipamäte export reakcie v sekundách (0 alebo prázdne bez vyrovnávacej pamäte)
     DisableLinkToHelpCenter=Skryť odkaz <b>&quot;Potrebujete pomoc či podporu&quot;</b> na prihlasovacej stránke
     DisableLinkToHelp=Skryť odkaz na online pomoc "<b>%s</b>"
    -AddCRIfTooLong=Neexistuje žiadny automatický balení, takže ak linka je mimo stránky na dokumentoch, pretože príliš dlho, musíte pridať sami návrat vozíka do textového poľa.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimálna dĺžka
     LanguageFilesCachedIntoShmopSharedMemory=Súbory. Lang vložený do zdieľanej pamäte
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Príklady s aktuálnym systémom nastavenia
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Zoznam OpenDocument šablóny zoznamov
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Počet ODT / ODS šablóny súborov nájdete v týchto adresároch
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Príklady syntaxe: <br> c: \\ mydir <br> / Home / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> Ak chcete vedieť, ako vytvoriť svoje ODT šablóny dokumentov pred ich uložením do týchto adresárov, prečítajte si wiki dokumentácie:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Kľúč na použitie Web Services (parameter &quot;dolib
     TestSubmitForm=Vstup Testovacie formulár
     ThisForceAlsoTheme=Pomocou tohto menu správca bude tiež používať svoje vlastné tému, čo je podľa voľby užívateľa. Aj v tomto menu správcu špecializuje na chytré telefóny nie je funguje na všetkých smartphonu. Použite menu inú správcu, ak máte problémy na vás.
     ThemeDir=Skins adresár
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Reakcia timeout
     SmsTestMessage=Skúšobná správa od __ PHONEFROM__ do __ PHONETO__
     ModuleMustBeEnabledFirst=Modul  <b>%s</b> musí byť aktívny ak potrebujete túto možnosť
     SecurityToken=Kľúč k zabezpečenej URL
    -NoSmsEngine=Nie odosielateľ SMS manažér k dispozícii. SMS odosielateľa manažér nie sú nainštalované s predvolené rozloženie (pretože závisí na externom dodávateľom), ale môžete nájsť niektoré z %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Môžete nastaviť každý globálne možnosti týkajúce sa generovanie PDF
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Pravidlá sa budujú adresy boxy
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Skryť opis výrobkov z vytvoreného PDF
     HideRefOnPDF=Skryť produkty čj. na vytvorené PDF
     HideDetailsOnPDF=Skryť detaily produktu v generovanóm PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parametre na zabezpečenie URL
     SecurityTokenIsUnique=Používame unikátny securekey parameter pre každú adresu URL
     EnterRefToBuildUrl=Zadajte odkaz na objekt %s
     GetSecuredUrl=Získajte vypočítanú URL
    -ButtonHideUnauthorized=Skryť tlačítka pre non admin užívateľov kôli neoprávneným akciám namiesto zobrazenia sivých tlačidiel
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Staré Sadzba DPH
     NewVATRates=Nová sadzba DPH
     PriceBaseTypeToChange=Zmeniť na cenách s hodnotou základného odkazu uvedeného na
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Vyberte zoznam
     ExtrafieldSelectList = Vyberte z tabuľky
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Heslo
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Odkaz na objekt
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Východiskový odkaz
     SetAsDefault=Nastaviť ako predvolené
     ValueOverwrittenByUserSetup=Pozor, táto hodnota môže byť prepísaná užívateľom špecifické nastavenia (každý užívateľ môže nastaviť vlastné clicktodial url)
     ExternalModule=Externý modul - inštalovaný do adresára %s
    -BarcodeInitForThirdparties=Masové načítanie čiarových kódov pre tretie osoby
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Masové načítanie čiarových kódov alebo reset pre produkty alebo služby
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Načítať hodnotu pre %s prázdne hodnoty
     EraseAllCurrentBarCode=Zmazať aktuálne hodnoty čiarových kódov
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=Hodnoty čiarových kódov boli zmazané
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=Žiadne ďalšie detaily v pätičke
     DisplayCompanyInfo=Zobraziť adresu spoločnosti
     DisplayCompanyManagers=Zobraziť mená manažérov
     DisplayCompanyInfoAndManagers=Zobraziť adresu spoločnosti a mená manažérov
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Použiť 3 krokové povolenie ked cena ( bez DPH ) je väčšia ako...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Pole
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Používatelia a skupiny
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Tretie strany
    -Module1Desc=Firmy a správu kontaktov (zákazníci, vyhliadky ...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Obchodné
     Module2Desc=Obchodné riadenie
     Module10Name=Účtovníctvo
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Návrhy
     Module20Desc=Komerčné návrh riadenia
     Module22Name=Mass E-mailing
    @@ -495,7 +501,7 @@ Module23Desc=Sledovanie spotreby energií
     Module25Name=Zákazníckych objednávok
     Module25Desc=Zákazníka riadenie
     Module30Name=Faktúry
    -Module30Desc=Faktúra a dobropis riadenie pre zákazníkov. Faktúra konania pre dodávateľov
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Dodávatelia
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Skladové hospodárstvo (výrobky)
     Module53Name=Služby
     Module53Desc=Správa služieb
     Module54Name=Zmluvy / Predplatné
    -Module54Desc=Správa zmlúv (služieb alebo opakjúcich sa predplatení)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Čiarové kódy
     Module55Desc=Barcode riadenie
     Module56Name=Telefónia
     Module56Desc=Telefónia integrácia
     Module57Name=Objednávky platené bankovým prevodom
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integrácia ClickToDial systému (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Nákladové a výlet poznámky
     Module75Desc=Náklady a výlet poznámky riadenie
     Module80Name=Zásielky
     Module80Desc=Preprava a dodanie účelom riadenia
    -Module85Name=Banky a peňažné
    +Module85Name=Banks and Cash
     Module85Desc=Riadenie bankových účtoch alebo v hotovosti
    -Module100Name=Externé stránky
    -Module100Desc=Tento modul je externé webové stránky alebo stránku do menu Dolibarr a zobraziť ju do rámu Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Poštár a SPIP
     Module105Desc=Poštár alebo SPIP rozhranie pre členské modul
     Module200Name=LDAP
    -Module200Desc=LDAP synchronizácia adresárov
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integrácia
     Module240Name=Exporty dát
    -Module240Desc=Nástroje pre export  Dolibarr dát ( s asistentom )
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Import dát
    -Module250Desc=Nástroje pre import Dolibarr dát ( s asistentom )
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Členovia
     Module310Desc=Nadácia členovia vedenia
     Module320Name=RSS Feed
     Module320Desc=Pridať RSS kanál vnútri obrazoviek Dolibarr
    -Module330Name=Záložky
    -Module330Desc=Správca záložiek
    -Module400Name=Projekty/Príležitosti/Vyhliadky
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=WebCalendar
     Module410Desc=WebCalendar integrácia
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Pôžička
     Module520Desc=Správca pôžičiek
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Dary
     Module700Desc=Darovanie riadenie
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Masové emailové generovanie dokumentov
     Module1780Name=Štítky / Kategórie
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Povoliť úpravu niektorého textu použitím rozšíreného oditora ( Založené na CKEditor )
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamická cena
     Module2200Desc=Zapnúť používanie matematických výrazov pre ceny
     Module2300Name=Naplánované úlohy
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Webové služby ( SOAP server )
    @@ -590,16 +596,16 @@ Module2600Desc=Spustiť Dolibarr SOAP server ponukajúci služby API
     Module2610Name=API/Web služby  ( REST server )
     Module2610Desc=Zapnúť Dolibarr REST server ponúkajúci API službu
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Pomocou on-line služby (Gravatar www.gravatar.com) ukázať fotku užívateľov / členov (nájdený s ich e-maily). Potrebujete prístup k internetu
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP klient
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP MaxMind konverzie možnosti
     Module3100Name=Skype
     Module3100Desc=Pridať Skype tlačidlo na úžívateľskú kartu používateľa / tretej osoby / kontaktu
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-spoločnosť
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Web stránky
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Opustiť správcu požiadaviek
    -Module20000Desc=Deklarovať a sledovať zamestnanci opustí požiadavky
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Bod predaja
     Module50100Desc=Modul predajné miesta ( POS )
    +Module50150Name=Bod predaja
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Učtovníctvo (pokročilé)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Anketa, Dotazník, Hlasovanie
    -Module55000Desc=Modul pre vytváranie online dotazníkov a hlasovaní ( ako : Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Okraje
     Module59000Desc=Modul pre správu marže
     Module60000Name=Provízie
     Module60000Desc=Modul pre správu provízie
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Zdroje
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Prečítajte si zákazníkov faktúry
    @@ -651,9 +661,9 @@ Permission32=Vytvoriť / upraviť produktov
     Permission34=Odstrániť produkty
     Permission36=Pozri / správa skryté produkty
     Permission38=Export produktov
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Odstrániť projektov (spoločné projekty, projekt a ja som kontakt pre)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Prečítajte intervencie
     Permission62=Vytvoriť / upraviť zásahy
    @@ -686,7 +696,7 @@ Permission109=Odstrániť sendings
     Permission111=Prečítajte finančných účtov
     Permission112=Vytvoriť / upraviť / zmazať a porovnať transakcie
     Permission113=Nastavenie finančných účtov (vytvárať, spravovať kategórie)
    -Permission114=Reconciliate transakcie
    +Permission114=Reconcile transactions
     Permission115=Vývozných transakcií, a výpisy z účtov
     Permission116=Prevody medzi účtami
     Permission117=Spravovanie kontroly dispečingu
    @@ -694,15 +704,15 @@ Permission121=Prečítajte tretej strany v súvislosti s užívateľmi
     Permission122=Vytvoriť / modifikovať tretie strany spojené s používateľmi
     Permission125=Odstránenie tretej strany v súvislosti s užívateľmi
     Permission126=Export tretej strany
    -Permission141=Čítať projekty a úlohy ( taktiež súkromné projekty pre ktoré niesom kontakt )
    -Permission142=Vytvoriť/Upraviť projekty a úlohy ( taktiež súkromné projekty pre ktoré nie som kontakt )
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Zmazať projekty a úlohy ( taktiež súkromné projekty pre ktoré nie som kontakt )
     Permission146=Prečítajte si poskytovatelia
     Permission147=Prečítajte si štatistiky
     Permission151=Read direct debit payment orders
     Permission152=Vytvoriť/Upraviť inkaso objednávku
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Prečítajte si zákazky / predplatné
     Permission162=Vytvoriť / upraviť zákazky / predplatné
     Permission163=Aktivovať službu / predplatné zmluvy
    @@ -725,7 +735,7 @@ Permission187=Zavrieť dodávateľské objednávky
     Permission188=Zrušiť dodávateľských objednávok
     Permission192=Vytvorte linky
     Permission193=Zrušiť linky
    -Permission194=Prečítajte si šírku pásma, linky
    +Permission194=Read the bandwidth lines
     Permission202=Vytvorte prípojok ADSL
     Permission203=Objednať pripojenia objednávky
     Permission204=Objednať spoje
    @@ -750,12 +760,12 @@ Permission244=Pozri obsah skrytých kategórií
     Permission251=Prečítajte si ďalšie užívateľa a skupiny
     PermissionAdvanced251=Prečítajte si ďalšie užívateľa
     Permission252=Prečítajte preukazy ostatných užívateľov
    -Permission253=Vytvoriť / upraviť ďalších používateľov, skupiny a permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Vytvoriť / upraviť interné / externé užívateľa a oprávnenia
     Permission254=Vytvoriť / upraviť externí používatelia iba
     Permission255=Upraviť ostatným používateľom heslo
     Permission256=Odstrániť alebo zakázať ostatným užívateľom
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Prečítajte CA
     Permission272=Prečítajte si faktúry
     Permission273=Vydanie faktúry
    @@ -765,7 +775,7 @@ Permission283=Odstránenie kontaktov
     Permission286=Export kontaktov
     Permission291=Prečítajte tarify
     Permission292=Nastavenie povolení na sadzby
    -Permission293=Upraviť zákazníkmi tarify
    +Permission293=Modify customers tariffs
     Permission300=Prečítajte čiarových kódov
     Permission301=Vytvoriť / upraviť čiarových kódov
     Permission302=Odstrániť čiarových kódov
    @@ -787,11 +797,9 @@ Permission401=Prečítajte zľavy
     Permission402=Vytvoriť / upraviť zľavy
     Permission403=Overiť zľavy
     Permission404=Odstrániť zľavy
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Zmazať platy
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Exportovať platy
     Permission520=Čítať pôžičky
     Permission522=Vytvoriť/Upraviť pôžičky
    @@ -844,8 +852,8 @@ Permission1251=Spustiť Hmotné dovozy externých dát do databázy (načítanie
     Permission1321=Export zákazníkov faktúry, atribúty a platby
     Permission1322=Znova otvoriť zaplatený účet
     Permission1421=Export objednávok zákazníkov a atribúty
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Čítať zdroje
     Permission63002=Vytvoriť/Upraviť zdroje
     Permission63003=Zmazať zdroje
     Permission63004=Pripnúť zdroje k udalosti agendy
    -DictionaryCompanyType=Typy tretích osôb
    -DictionaryCompanyJuridicalType=Právne formy tretích osôb
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Úroveň možnej vyhlidky
     DictionaryCanton=Kraj
     DictionaryRegion=Okres
    @@ -894,7 +902,7 @@ DictionaryVAT=Sadzby DPH alebo Sociálnej dane
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Podmienky platby
     DictionaryPaymentModes=Metódy platby
    -DictionaryTypeContact=Kontakt/Adresa
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ekologická daň
     DictionaryPaperFormat=Papierový formát
    @@ -908,47 +916,47 @@ DictionarySource=Pôvod ponuky / objednávky
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Modely účtovných osnov
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Šablóny emailov
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Jednotky
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Status príležitosti pre projekt/vedenie
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Nastavenie uložené
     SetupNotSaved=Setup not saved
     BackToModuleList=Späť na zoznam modulov
    -BackToDictionaryList=Napäť do zoznamu slovníkov
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=DPH riadenia
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=V predvolenom nastavení je navrhovaná DPH 0, ktorý možno použiť v prípadoch, ako je združenie jednotlivcov ou malých podnikov.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Nepoužívajte druhá daň
    -LocalTax1IsUsedDesc=Použite druhý typ dane (okrem DPH)
    -LocalTax1IsNotUsedDesc=Nepoužívajte iný typ dane (okrem DPH)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Druhý typ dane
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Nepoužívajte tretí daň
    -LocalTax2IsUsedDesc=Použite tretí typ dane (okrem DPH)
    -LocalTax2IsNotUsedDesc=Nepoužívajte iný typ dane (okrem DPH)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Tretí druh dane
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE riadenie
    -LocalTax1IsUsedDescES= RE sadzba v predvolenom nastavení pri vytváraní vyhliadky, faktúry, objednávky atď sledovať aktívny štandardné pravidlo: <br> Ak te Kupujúci nie je vystavený RE, RE štandardne = 0. Koniec vlády. <br> Pokiaľ kupujúci vystavený RE RE potom v predvolenom nastavení. Koniec vlády. <br>
    -LocalTax1IsNotUsedDescES= V predvolenom nastavení je navrhovaná RE je 0. Koniec vlády.
    -LocalTax1IsUsedExampleES= V Španielsku sú profesionáli s výhradou niektorých špecifických častí španielskeho IAE.
    -LocalTax1IsNotUsedExampleES= V Španielsku sú profesionálne a spoločnosti a za určitých častí španielskeho IAE.
    -LocalTax2ManagementES= IRPF riadenie
    -LocalTax2IsUsedDescES= RE sadzba v predvolenom nastavení pri vytváraní vyhliadky, faktúry, objednávky atď sledovať aktívny štandardné pravidlo: <br> Ak predávajúci nie je vystavený IRPF, potom IRPF štandardne = 0. Koniec vlády. <br> Ak je predávajúci vystavený IRPF potom IRPF v predvolenom nastavení. Koniec vlády. <br>
    -LocalTax2IsNotUsedDescES= V predvolenom nastavení je navrhovaná IRPF je 0. Koniec vlády.
    -LocalTax2IsUsedExampleES= V Španielsku, na voľnej nohe a nezávislí odborníci, ktorí poskytujú služby a firmy, ktorí sa rozhodli daňového systému modulov.
    -LocalTax2IsNotUsedExampleES= V Španielsku sú bussines, ktoré nie sú predmetom daňového systému modulov.
    +LocalTax1ManagementES=RE riadenie
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=V predvolenom nastavení je navrhovaná RE je 0. Koniec vlády.
    +LocalTax1IsUsedExampleES=V Španielsku sú profesionáli s výhradou niektorých špecifických častí španielskeho IAE.
    +LocalTax1IsNotUsedExampleES=V Španielsku sú profesionálne a spoločnosti a za určitých častí španielskeho IAE.
    +LocalTax2ManagementES=IRPF riadenie
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=V predvolenom nastavení je navrhovaná IRPF je 0. Koniec vlády.
    +LocalTax2IsUsedExampleES=V Španielsku, na voľnej nohe a nezávislí odborníci, ktorí poskytujú služby a firmy, ktorí sa rozhodli daňového systému modulov.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Vypisy lokálnej dane
     CalcLocaltax1=Predaj - Platba
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Predaje
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label používa v predvolenom nastavení, pokiaľ nie je preklad možno nájsť kód
     LabelOnDocuments=Štítok na dokumenty
    -NbOfDays=Nb dní
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Na konci mesiaca
     CurrentNext=Aktuálny/Nasledujúci
     Offset=Ofset
    @@ -984,7 +994,7 @@ DatabaseUser=Databáza užívateľ
     DatabasePassword=Databáza heslo
     Tables=Tabuľky
     TableName=Názov tabuľky
    -NbOfRecord=Nb záznamov
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Typ ovládača
     SummarySystem=Systém súhrn informácií
    @@ -996,7 +1006,7 @@ Skin=Skin téma
     DefaultSkin=Default skin téma
     MaxSizeList=Maximálna dĺžka zoznamu
     DefaultMaxSizeList=Základná max. dĺžka zoznamu
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Správa dňa
     MessageLogin=Prihlasovacia stránka správu
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanentný vyhľadávací formulár na ľavom menu
     DefaultLanguage=Predvolený jazyk používať (kód jazyka)
     EnableMultilangInterface=Povoliť viacjazyčné rozhranie
     EnableShowLogo=Zobraziť logo na ľavom menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Názov
     CompanyAddress=Adresa
     CompanyZip=Zips
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Majiteľ %s bankových účtov
     BankModuleNotActive=Účty v bankách modul nie je povolený,
     ShowBugTrackLink=Zobraziť odkaz "<strong>%s</strong>"
     Alerts=Upozornenie
    -DelaysOfToleranceBeforeWarning=Tolerancia oneskorenie pred varovanie
    -DelaysOfToleranceDesc=Táto obrazovka umožňuje definovať tolerovať oneskorenie pred upozornenie je hlásený na obrazovke s %s Piktogram pre každý neskoré prvok.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Oneskorenie tolerancie (v dňoch) pred záznam o návrhoch zavrite
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Oneskorenie tolerancie (v dňoch) pred záznam o návrhoch účtované
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerancia oneskorenie (v dňoch) pred záznam o službách aktivovať
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerancia oneskorenie (v dňoch) pred záznam o prejdených služieb
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerancia oneskorenie (v dňoch) pred záznam o neuhradených dodávateľských faktúr
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Toleranciu oneskorenie (v dňoch) pred záznam o nezaplatených faktúr zákazníka
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerancia oneskorenie (v dňoch) pred prebiehajúcom zázname o bankovom zmierenie
    -Delays_MAIN_DELAY_MEMBERS=Tolerancia oneskorenie (v dňoch) pred záznam o meškaní členského poplatku
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancia oneskorenie (v dňoch) pred pohotovosti pre kontrolu vklad robiť
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=Oblasť nastavení je pre základné nastavenia pre začatím používania Dolubarru
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Ostatné položky menu spravovať voliteľné parametre.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Udalosti bezpečnostný audit
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=O Dolibarre
     InfoBrowser=O prehliadači
     InfoOS=O OS
    @@ -1056,20 +1066,20 @@ BrowserName=Meno prehliadača
     BrowserOS=OS prehliadača
     ListOfSecurityEvents=Zoznam Dolibarr udalostí zabezpečenia
     SecurityEventsPurged=Bezpečnostnej akcie očistil
    -LogEventDesc=Môžete povoliť tu zapisovanie udalostí Dolibarr zabezpečenia. Správcovia môžu potom vidieť jeho obsah pomocou <b>nástrojov systému</b> menu <b>- audit.</b> Pozor, táto funkcia môže spotrebovať veľké množstvo dát v databáze.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=Systémové informácie je rôzne technické informácie získate v režime iba pre čítanie a viditeľné len pre správcov.
     SystemAreaForAdminOnly=Táto oblasť je k dispozícii pre správcu užívateľa. Žiadny z Dolibarr oprávnenia môže znížiť tento limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Môžete si vybrať každý parameter týkajúce sa vzhľadu Dolibarr a cítiť sa tu
     AvailableModules=Available app/modules
     ToActivateModule=Pre aktiváciu modulov, prejdite na nastavenie priestoru (Domov-&gt; Nastavenie-&gt; Modules).
     SessionTimeOut=Time out na zasadnutí
    -SessionExplanation=Toto číslo zaručené, že relácia nikdy nevyprší pred týmto oneskorením, ak relácia čistič sa vykonáva vnútorné čistenie relácie PHP (a nič iné). Vnútorné PHP zasadnutie čistejšie nie je zárukou, že relácie vyprší práve po tejto doby. Jeho platnosť skončí po tom, čo toto oneskorenie, a keď relácie čistič bežal, takže každý <b>%s / %s</b> prístup, ale iba v prípade prístupu zo strany iných reláciách. <br> Poznámka: na niektorých serveroch s vonkajším mechanizmom relácie čistenie (cron pod Debian, Ubuntu ...), môže byť zničená relácie po dobu definovanú predvolenú <strong>session.gc_maxlifetime,</strong> bez ohľadu na to, čo je zadaná hodnota.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Dostupné spúšťače
    -TriggersDesc=Triggery sú súbory, ktoré sa zmení správanie Dolibarr workflow raz skopírovaný do adresára <b>htdocs / jadro / spúšťače.</b> Uvedomili si nové akcie, aktívny na akciách Dolibarr (nová spoločnosť stvorenia, faktúra validácia, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Trigger v tomto súbore sú <b>zakázané-NoRun</b> prípona vo svojom názve.
     TriggerDisabledAsModuleDisabled=Trigger v tomto súbore sú zakázané ako modul <b>%s</b> je zakázané.
     TriggerAlwaysActive=Trigger v tomto súbore sú vždy aktívne, či už sú aktivované Dolibarr moduly.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Vložte referenčné data. Môžete pridať vaše hodnoty ako zá
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=Ostatné bezpečnostné parametre sú definované tu.
     LimitsSetup=Limity / Presné nastavenie
    -LimitsDesc=Môžete definovať limity, upresnenie a optimalizácia používané Dolibarr tu
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max desatinná pre jednotkových cien
     MAIN_MAX_DECIMALS_TOT=Max desatinné miesta pre celkovej ceny
     MAIN_MAX_DECIMALS_SHOWN=Max desatinná pre ceny zobrazené na obrazovke (Pridať <b>...</b> po tejto rady, ak chcete vidieť <b>...</b> keď je číslo skrátená pri zobrazení na obrazovke)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Čistá jednotková cena produktu
     TotalPriceAfterRounding=Celková cena (bez DPH / s DPH / s DPH) po zaokrúhlení
     ParameterActiveForNextInputOnly=Parameter efektívne pre ďalší vstup iba
    -NoEventOrNoAuditSetup=Žiadna udalosť zabezpečenia bol zaznamenaný ešte. To môže byť normálne, ak audit nebol povolený &quot;Nastavenie - Zabezpečenie - auditu&quot; stránky.
    -NoEventFoundWithCriteria=Žiadna udalosť zabezpečenia bol nájdený na týchto vyhľadávacích kritériami.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Pozrite sa na miestne sendmail nastavenie
     BackupDesc=Ak chcete vykonať kompletnú zálohu Dolibarr, musíte:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Uložiť obsah databázy <b>(%s)</b> do súboru. Môžete k  tomu použiť nasledujúceho asistenta.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archívne adresár by mal byť skladovaný na bezpečnom mieste.
     BackupDescY=Vygenerovaný súbor výpisu by sa mal skladovať na bezpečnom mieste.
    -BackupPHPWarning=Záloha nemôže byť garantované s touto metódou. Preferujem predchádzajúce
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Ak chcete obnoviť zálohu Dolibarr, musíte:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= Toto pravidlo je nútený <b>%s</b> aktivovaným modulom
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Je nutné spustiť tento príka
     YourPHPDoesNotHaveSSLSupport=SSL funkcia nie je k dispozícii vo vašom PHP
     DownloadMoreSkins=Ďalšie skiny k stiahnutiu
     SimpleNumRefModelDesc=Vracia referenčné číslo vo formáte nnnn-%syymm kde yy je rok, MM je mesiac a nnnn je sekvencia bez otvoru a bez resetu
    -ShowProfIdInAddress=Zobraziť professionnal id s adresami na dokumenty
    -ShowVATIntaInAddress=Skryť DPH Intra num s adresami na dokumentoch
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Čiastočný preklad
    -MAIN_DISABLE_METEO=Zakázať meteo názor
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Otestujte prihlásiť do API
    -ProxyDesc=Niektoré funkcie Dolibarr musia mať prístup na internet k práci. Definujte tu parametre pre toto. Ak je server Dolibarr je za proxy serverom, tieto parametre Dolibarr hovorí, ako sa k internetu cez neho.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Externý prístup
     MAIN_PROXY_USE=Použitie proxy servera (inak priamy prístup k internetu)
     MAIN_PROXY_HOST=Meno / Adresa proxy servera
     MAIN_PROXY_PORT=Port proxy servera
     MAIN_PROXY_USER=Prihlásiť sa použiť proxy server
     MAIN_PROXY_PASS=Heslo používať proxy server
    -DefineHereComplementaryAttributes=Definujte tu všetky atribúty, ktoré ešte nie sú k dispozícii v predvolenom nastavení, a že chcete byť podporované %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Doplnkové atribúty
     ExtraFieldsLines=Doplnkové atribúty (linky)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Doplnkové hodnoty ( riadky objednávky ) 
     ExtraFieldsSupplierInvoicesLines=Doplnkové hodnoty ( riadky faktúry ) 
     ExtraFieldsThirdParties=Doplnkové atribúty (thirdparty)
    -ExtraFieldsContacts=Doplnkové atribúty (kontakt / adresa)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Doplnkové atribúty (člen)
     ExtraFieldsMemberType=Doplnkové atribúty (člen typ)
     ExtraFieldsCustomerInvoices=Doplnkové atribúty (faktúry)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=iba alfanumerické a malé znaky bez medzier
     SendmailOptionNotComplete=Upozornenie na niektorých operačných systémoch Linux, posielať e-maily z vášho e-mailu, musíte sendmail prevedenie inštalácie obsahuje voľbu-BA (parameter mail.force_extra_parameters do súboru php.ini). Ak niektorí príjemcovia nikdy prijímať e-maily, skúste upraviť tento parameter spoločne s PHP mail.force_extra_parameters =-BA).
     PathToDocuments=Cesta k dokumentom
     PathDirectory=Adresár
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Nastavenie prekladu
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Preprísať prekladový reľazec
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Prekladový reťazec
     CurrentTranslationString=Aktuálny prekladovy reťazec
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=Novy prekladový reťazec na zobrzenie
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Musíte povoliť aspoň jeden modul
    -ClassNotFoundIntoPathWarning=Trieda %s nenašli cestu do PHP
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Áno v lete
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Úložisko relácie šifrovaná Suhosin
     ConditionIsCurrently=Podmienkou je v súčasnej dobe %s
    -YouUseBestDriver=Pomocou ovládača %s, že je najlepší vodič súčasnej dobe k dispozícii.
    -YouDoNotUseBestDriver=Používate jednotku %s ale odporúčaná jednotka je %s
    -NbOfProductIsLowerThanNoPb=Máte len %s produktov / služieb do databázy. To však nie je nutné žiadne špeciálne optimalizácie.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Optimalizácia pre vyhľadávače
    -YouHaveXProductUseSearchOptim=Máte %s produkt do databázy. Mali by ste pridať konštantný PRODUCT_DONOTSEARCH_ANYWHERE do 1 do Home-Nastavenie-Ostatné, môžete obmedziť vyhľadávanie na začiatku reťazca, ktoré umožňujú pre databázy používať index, a vy by ste mali dostať okamžitú odpoveď.
    -BrowserIsOK=Používate %s webovom prehliadači. Tento prehliadač je v poriadku pre bezpečnosť a výkon.
    -BrowserIsKO=Používate %s webovom prehliadači. Tento prehliadač je známe, že zlá voľba pre bezpečnosť, výkon a spoľahlivosť. Sme Odporúčam vám používať Firefox, Chrome, Operu alebo Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug je načítaný
     XCacheInstalled=XCache načítaný.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Vydanie poľných %s
     FillThisOnlyIfRequired=Príklad: +2 ( vyplňte iba ak sú predpokladané problémy s časovým posunom )
     GetBarCode=Získať čiarový kód
     ##### Module password generation
     PasswordGenerationStandard=Späť heslo generované podľa interného algoritmu Dolibarr: 8 znakov obsahujúci zdieľanej čísla a znaky malými písmenami.
    -PasswordGenerationNone=Heslo musí byť vložené manuálne
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail nutné vytvoriť nového užívateľa
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Firmy modul nastavenia
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Dokumenty šablóny
    -DocumentModelOdt=Generovanie dokumentov z OpenDocuments šablón (. ODT alebo ODS. Súbory OpenOffice, KOffice, TextEdit, ...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Vodoznak na návrhu dokumentu
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Pravidlá pre profesionálne IDs
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Export odkaz na <b>%s</b> formáte je k dispozícii na nasledujúcom odkaze: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Export odkaz na <b>%s</b> formáte je k dispozícii na na
     BillsSetup=Faktúry modul nastavenia
     BillsNumberingModule=Faktúry a dobropisy číslovanie modelu
     BillsPDFModules=Fakturačné doklady modely
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Dobropis
     CreditNotes=Dobropisy
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Spravovanie Prihlásenie pre každého člena
     AdherentMailRequired=EMail nutné vytvoriť nového člena
     MemberSendInformationByMailByDefault=Zaškrtávacie políčko poslať mailom potvrdenie členom (validácia alebo nové predplatné) je v predvolenom nastavení
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=Nastavenie LDAP
     LDAPGlobalParameters=Globálne parametre
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Testovanie vyhľadávanie LDAP
     LDAPSynchroOK=Synchronizácia skúška úspešná
     LDAPSynchroKO=Nepodarilo synchronizácia testu
    -LDAPSynchroKOMayBePermissions=Nepodarilo synchronizácia test. Skontrolujte, či je prípojka na server je správne nakonfigurovaný a umožňuje LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP pripojenie k LDAP servera (Server úspešných = %s, %s port =)
     LDAPTCPConnectKO=TCP pripojenie k LDAP serveru zlyhalo (Server = %s, Port = %s)
    -LDAPBindOK=Pripojenie / autentikácia k LDAP serveru úspešný (Server =%s, Port =%s Admin =%s, Password =%s)
    -LDAPBindKO=Pripojiť / Authentificate k LDAP serveru zlyhalo (Server = %s, Port = %s, Admin = %s, Password = %s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server je nakonfigurovaný pre verziu 3
     LDAPSetupForVersion2=LDAP server je nakonfigurovaný pre verziu 2
     LDAPDolibarrMapping=Dolibarr mapovanie
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Prihlásenie (samba, ActiveDirectory)
     LDAPFieldLoginSambaExample=Príklad: sAMAccountName
     LDAPFieldFullname=Celé meno
     LDAPFieldFullnameExample=Príklad: cn
    -LDAPFieldPasswordNotCrypted=Heslo nie je šifrovaných
    -LDAPFieldPasswordCrypted=Heslo šifrovaných
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Príklad: userPassword
     LDAPFieldCommonNameExample=Príklad: cn
     LDAPFieldName=Názov
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Ukážkové hodnoty sú určené pre <b>OpenLDAP</b> s nasledujúcimi načítaných schém: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Ak používate thoose hodnoty a OpenLDAP, upravovať vaše LDAP konfiguračný súbor <b>slapd.conf</b> mať všetky thoose schémy načítať.
     ForANonAnonymousAccess=Pre overený prístup (pre prístup pre zápis napríklad)
     PerfDolibarr=Výkon Nastavenie / optimalizácia správa
    -YouMayFindPerfAdviceHere=Nájdete na tejto stránke nejaké kontroly alebo rád týkajúcich sa výkonnosti.
    -NotInstalled=Nie, takľe nie je váš server spomaliť tým.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Aplikačných medzipamäte
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCODE medzipamäte
    -NoOPCodeCacheFound=Žiadne OPCODE nájdená keš. Môže byť použiť ďalšie OPCODE pamäť než XCache alebo eAccelerator (dobré), môže byť, že nemáte OPCODE cache (veľmi zle).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache pre statické zdroje (css, img, javascript)
     FilesOfTypeCached=Súbory typu %s sú ukladané do vyrovnávacej pamäte servera HTTP
     FilesOfTypeNotCached=Súbory typu %s nie sú ukladané do medzipamäte servera HTTP
     FilesOfTypeCompressed=Súbory typu %s sú skomprimované servera HTTP
     FilesOfTypeNotCompressed=Súbory typu %s nekomprimuje servera HTTP
     CacheByServer=Cache serverom
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache v prehliadači
     CompressionOfResources=Kompresia odpovedí HTTP
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=So súčasnými prehliadačmi taká automatická detekcia nie je možná 
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Produkty modul nastavenia
     ServiceSetup=Služby modul nastavenia
     ProductServiceSetup=Produkty a služby moduly nastavenie
     NumberOfProductShowInSelect=Maximálny počet výrobkov v kombá vyberte zoznamy (0 = bez obmedzenia)
    -ViewProductDescInFormAbility=Vizualizácia popisy produktov vo formách (inak ako vyskakovacie bubline)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Predvolený typ čiarového kódu použiť pre produkty
     SetDefaultBarcodeTypeThirdParties=Predvolený typ čiarového kódu použiť k tretím osobám
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Odoslanie Nastavenie modulu
     SendingsReceiptModel=Odoslanie potvrdenky modelu
     SendingsNumberingModules=Sendings číslovanie moduly
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Pozámka pre doručovateľa
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Produkty dodávky príjem číslovanie modul
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Rozšírené editor
     ActivateFCKeditor=Aktivácia pokročilé editor pre:
     FCKeditorForCompany=WYSIWIG vytvorenie / edícii prvkami opisu a poznámku (s výnimkou výrobkov / služieb)
     FCKeditorForProduct=WYSIWIG vytvorenie / edícia produktov / služieb popis a poznámky
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG vytvorenie / edícia pre hromadné eMailings (Nástroje-&gt; e-mailom)
     FCKeditorForUserSignature=WYSIWIG vytvorenie / edícia užívateľského podpisu
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Pripojenie úspešné, ale databáza nevyzerá, že databáza Oscommerce (Kľúčové %s nenašli v tabuľke %s).
    -OSCommerceTestOk=Pripojenie k serveru &quot;%s&quot; na databázu &quot;%s&quot; s úspešní užívateľ &quot;%s.
    -OSCommerceTestKo1=Pripojenie k &quot;%s&quot; servera úspešná, ale databáza &quot;%s&quot; by nebolo možné dosiahnuť.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Pripojenie k serveru "%s" na databázu '%s' s užívateľom "%s" úspešný.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Pripojenie k serveru &quot;%s&quot; s užívateľom &quot;%s 'zlyhalo.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu zmazaný
     Menus=Ponuky
    @@ -1548,7 +1562,7 @@ DetailRight=Podmienka pre zobrazenie neoprávneným sivé menu
     DetailLangs=Lang názov súboru pre preklad kódu štítok
     DetailUser=Interná / Externá / All
     Target=Cieľ
    -DetailTarget=Cieľ pre odkazy (_blank hore otvorí nové okno)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Úroveň (-1: hlavné menu, 0: header menu&gt; 0 Menu a submenu)
     ModifMenu=Menu zmena
     DeleteMenu=Zmazať položku ponuky
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=DPH je splatná: <br> - Na dobierku za tovar (používame d
     OptionVatDebitOptionDesc=DPH je splatná: <br> - Na dobierku za tovar (používame dátumu vystavenia faktúry) <br> - Na faktúru (debetné) na služby
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Na dobierku
     OnPayment=Na zaplatenie
     OnInvoice=Na faktúre
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Nákup účet. kód
     AgendaSetup=Akcie a agenda Nastavenie modulu
     PasswordTogetVCalExport=Kľúč povoliť export odkaz
     PastDelayVCalExport=Neexportovať udalosti staršie ako
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Kliknite pre Dial Nastavenie modulu
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Bod predaja
     CashDeskSetup=Mieste predaja modulu nastavenie
    -CashDeskThirdPartyForSell=Základná tretia osoba pre predaj
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Predvolený účet použiť na príjem platieb v hotovosti
     CashDeskBankAccountForCheque= Predvolený účet použiť pre príjem platieb šekom
     CashDeskBankAccountForCB= Predvolený účet použiť pre príjem platieb prostredníctvom kreditnej karty
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Odpočítavanie skladu z miesta predaja vypnuté
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Záložka Nastavenie modulu
    -BookmarkDesc=Tento modul umožňuje spravovať záložky. Môžete tiež pridať skratky pre všetky Dolibarr stránky alebo external webových stránok na vašom ľavom menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximálny počet záložiek zobrazí v ľavom menu
     ##### WebServices #####
     WebServicesSetup=Webservices modul nastavenia
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Spoločnosť Multi-modul nastavenia
     ##### Suppliers #####
     SuppliersSetup=Dodávateľ modul nastavenia
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Dodávateľských faktúr číslovanie modelov
     IfSetToYesDontForgetPermission=Ak nastavené ANO, nezabudnite poskytnúť povolenia pre skupiny alebo užívateľov oprávnených pre povoľovanie 2. stupňa
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Projekt modul nastavenia
     ProjectsModelModule=Projekt správy Vzor dokladu
     TasksNumberingModules=Úlohy číslovanie modul
     TaskModelModule=Úlohy správy Vzor dokladu
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Možnosti pre E-Mailové u
     ListOfNotificationsPerUser=Zoznam upozornení podľa užívateľa
     ListOfNotificationsPerUserOrContact=Zoznam upozornení podľa užívateľa alebo podľa zmluvy
     ListOfFixedNotifications=Zoznam fixnych upozornení
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Maximálna hodnota
     BackupDumpWizard=Pomocník pre databázovú zálohu
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Zvýrazniť riadok pre prechode kurzora
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Farba pozadia pre párne riadky tabuľky
     MinimumNoticePeriod=Minimálny oznamovací čas ( Vaša požiadávka musi byť zaznamenaná pred týmto časom )
     NbAddedAutomatically=Počet dní pridaných do počítadla užívateľov ( automaticky ) každý mesiac
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Hodnota dane z predaja
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Typ šablôny
    -TemplateIsVisibleByOwnerOnly=Šablóna je viditelná iba pre majiteľa
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=Oprava časovej zóny
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=Všeci prispievatelia
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Pridať iné stránky alebo služby
     AddModels=Pritaď dokument alebo číselnú šablónu
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Zmazanie nie je možné
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Zoznam dostupných API
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=Užívateľ nemá definované povolenia
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zips
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/sk_SK/banks.lang b/htdocs/langs/sk_SK/banks.lang
    index 2c4aaf63a77..3a157f1d2ee 100644
    --- a/htdocs/langs/sk_SK/banks.lang
    +++ b/htdocs/langs/sk_SK/banks.lang
    @@ -7,7 +7,7 @@ BankName=Názov banky
     FinancialAccount=Účet
     BankAccount=Bankový účet
     BankAccounts=Bankové účty
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Zobraziť účet
     AccountRef=Finančný účet ref
     AccountLabel=Finančný účet štítok
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Účtovné adresa
     BankAccountCountry=Účet krajiny
     BankAccountOwner=Majiteľ účtu Názov
     BankAccountOwnerAddress=Majiteľ účtu adresa
    -RIBControlError=Kontrola integrity hodnôt zlyhá. To znamená, že informácie v tomto čísle účtu nie sú úplné alebo zle (zistiť krajinu, čísla a IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Vytvoriť účet
     NewBankAccount=Nový účet
     NewFinancialAccount=Nový finančný účet
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Môže byť porovnaná
     Conciliate=Zmieriť
     Conciliation=Zmierenie
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Zahrnúť uzatvorených účtov
     OnlyOpenedAccount=Iba otvorené účty
    @@ -104,7 +105,7 @@ SocialContributionPayment=Platba sociálnej/fiškálnej dane
     BankTransfer=Bankový prevod
     BankTransfers=Bankové prevody
     MenuBankInternalTransfer=Interný prevod
    -TransferDesc=Prevod z jedného účtu na druhý, Dolibarr zapíše dva záznamy ( debet na zdrojovom účte a kredit na cieľovom účte. Rovnaká suma, názov a čas budú použité )
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Z
     TransferTo=Na
     TransferFromToDone=Transfer z <b>%s</b> na <b>%s</b> %s <b>%s</b> zo bol zaznamenaný.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Určite chcete zmazať túto potvrdenku ?
     BankChecks=Bankové šeky
     BankChecksToReceipt=Šeký čakajúce na zaplatenie
     ShowCheckReceipt=Zobraziť skontrolovať depozitné potvrdenie
    -NumberOfCheques=Nb šeku
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Späť na účte
     ShowAllAccounts=Zobraziť pre všetky účty
    -FutureTransaction=Transakcie v Futur. Žiadny spôsob, ako sa zmieriť.
    -SelectChequeTransactionAndGenerate=Výber / filter, aby kontroly zahŕňali do obdržaní šeku vkladov a kliknite na &quot;Vytvoriť&quot;.
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Zvoľte výpis z účtu  potrebný pre náhľad. Zoraďťe podľa číselnej hodnoty YYYYMM alebo YYYYMMDD
     EventualyAddCategory=Nakoniec určiť kategóriu, v ktorej chcete klasifikovať záznamy
     ToConciliate=Na zlúčenie ?
    @@ -153,7 +154,7 @@ RejectCheckDate=Dátum kedy bol šek odmietnutý
     CheckRejected=Šek vrátený
     CheckRejectedAndInvoicesReopened=Šek vrátený a faktúra znova otvorená
     BankAccountModelModule=Šablóny dokumentov pre bankové účty
    -DocumentModelSepaMandate=Šablóny SEPA. Užitočné iba pre krajiny v EEC
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Šablóna pre tlač strany s BAN informáciami
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/sk_SK/bills.lang b/htdocs/langs/sk_SK/bills.lang
    index 453e2a0382d..eb6d8d1d264 100644
    --- a/htdocs/langs/sk_SK/bills.lang
    +++ b/htdocs/langs/sk_SK/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma faktúra
     InvoiceProFormaDesc=<b>Proforma faktúra</b> je obraz skutočnej faktúry, ale nemá evidencia hodnotu.
     InvoiceReplacement=Náhradné faktúra
     InvoiceReplacementAsk=Náhradné faktúra faktúry
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Dobropis
     InvoiceAvoirAsk=Dobropis opraviť faktúru
    -InvoiceAvoirDesc=<b>Dobropis</b> je negatívny faktúra slúži na riešenie skutočnosť, že faktúra je množstvo, ktoré sa líšia ako suma skutočne vyplatená (pretože zákazník zaplatil príliš veľa omylom, alebo nebude vyplatená úplne, pretože on sa vrátil niektoré výrobky, napríklad).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Platené späť
     DeletePayment=Odstrániť platby
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Dodávatelia platby
     ReceivedPayments=Prijaté platby
     ReceivedCustomersPayments=Platby prijaté od zákazníkov
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Prijaté platby zákazníci overujú
     PaymentsReportsForYear=Platby správy pre %s
     PaymentsReports=Platby správy
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Platobné podmienky
     PaymentAmount=Suma platby
     ValidatePayment=Overenie platby
     PaymentHigherThanReminderToPay=Platobné vyššia než upomienke na zaplatenie
    -HelpPaymentHigherThanReminderToPay=Pozor, výška platby z jedného alebo viacerých účtov je vyššia ako vo zvyšku platiť. <br> Upravte položky, inak potvrdí a premýšľať o vytvorenie dobropisu preplatku dostane pre každú preplatku faktúry.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Klasifikáciu &quot;Zaplatené&quot;
     ClassifyPaidPartially=Klasifikovať &quot;Platené čiastočne&quot;
     ClassifyCanceled=Klasifikovať &quot;Opustené&quot;
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Uzavretá (neplatené)
     BillStatusClosedPaidPartially=Platené (čiastočne)
     BillShortStatusDraft=Návrh
     BillShortStatusPaid=Platený
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Platený
     BillShortStatusCanceled=Opustený
     BillShortStatusValidated=Overené
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Zatvorené
     BillShortStatusClosedPaidPartially=Platené (čiastočne)
     PaymentStatusToValidShort=Ak chcete overiť
    -ErrorVATIntraNotConfigured=Intracommunautary DIČ zatiaľ nie je definovaný
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Žiadna predvolený platobný režim definovaný. Prejsť na faktúry module nastavení to opraviť.
     ErrorCreateBankAccount=Vytvorte si bankový účet, potom prejdite na nastavenia panela faktúr modulu definovať platobných režimov
     ErrorBillNotFound=Faktúra %s neexistuje
    -ErrorInvoiceAlreadyReplaced=Chyba pokuse o overenie faktúru nahradiť faktúry %s. Ale tento bol už nahradený faktúre %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Chyba zľava už používa
     ErrorInvoiceAvoirMustBeNegative=Chyba musí byť správna faktúra mať zápornú čiastku
     ErrorInvoiceOfThisTypeMustBePositive=Chyba musí byť tento typ faktúry majú kladné hodnoty
     ErrorCantCancelIfReplacementInvoiceNotValidated=Chyba, nemožno zrušiť, ak faktúra, ktorá bola nahradená inou faktúru, ktorá je stále v stave návrhu
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Z
     BillTo=Na
     ActionsOnBill=Akcie na faktúre
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad zákazník
     ConfirmClassifyPaidPartiallyReasonProductReturned=Produkty čiastočne vrátil
     ConfirmClassifyPaidPartiallyReasonOther=Suma opustená iného dôvodu
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Táto voľba je možné, ak faktúra boli opatrené vhodným komentárom. (Príklad &quot;Iba daň zodpovedajúcu cene, ktorá bola skutočne zaplatená dáva práva na odpočet&quot;)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=V niektorých krajinách by táto voľba byť možné iba vtedy, ak faktúra obsahuje správnu nôtu.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Použite túto voľbu, ak všetky ostatné nesluší
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Zlý zákazník</b> je zákazník, ktorý odmietne zaplatiť svoj ​​dlh.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Táto voľba sa používa, keď platba nie je kompletná, pretože niektoré z výrobkov boli vrátené
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Použite túto voľbu, ak všetky ostatné nehodí, napríklad v nasledujúcej situácii: <br> - Platba nie je kompletná, pretože niektoré výrobky boli odoslané späť <br> - Nároky suma príliš dôležité, pretože zľava bola zabudnutá <br> Vo všetkých prípadoch, čiastku cez nárokovanej musí byť opravený v systéme evidencie vytvorením dobropisu.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Ostatné
     ConfirmClassifyAbandonReasonOtherDesc=Táto voľba sa používa vo všetkých ostatných prípadoch. Napríklad preto, že máte v pláne vytvoriť nahrádzajúci faktúru.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Overiť faktúru
     UnvalidateBill=Unvalidate faktúru
    -NumberOfBills=Nb faktúr
    -NumberOfBillsByMonth=Nb faktúr mesiace
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Výška faktúr
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Výška faktúr mesačne (bez dane)
     ShowSocialContribution=Zobrazit sociálnu/fiškálnu daň
     ShowBill=Zobraziť faktúru
    @@ -260,9 +262,9 @@ Repeatables=Šablóny
     ChangeIntoRepeatableInvoice=Previesť na šablónu faktúry
     CreateRepeatableInvoice=Vytvoriť šablónu faktúry
     CreateFromRepeatableInvoice=Vytvoriť zo šablóny faktúry
    -CustomersInvoicesAndInvoiceLines=Zákazníkov faktúry a faktúra je vedenie
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Zákazníkov faktúry a platby
    -ExportDataset_invoice_1=Zákazník faktúry a faktúra je zoznam liniek
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Zákazníkov faktúry a platby
     ProformaBill=Proforma Bill:
     Reduction=Zníženie
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill adresa
    -HelpEscompte=Táto zľava je zľava poskytnutá zákazníkovi, pretože jej platba bola uskutočnená pred horizonte.
    -HelpAbandonBadCustomer=Táto suma bola opustená (zákazník povedal, aby bol zlý zákazník) a je považovaný za výnimočný voľné.
    -HelpAbandonOther=Táto suma bola opustená, pretože došlo k chybe (chybný zákazník alebo faktúra nahradený iný napríklad)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Sociálna/fiškálna daň ID
     PaymentId=Platba id
     PaymentRef=Platobná referencia
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Nie je vybraná žiadna faktúra
     CloneInvoice=Klon faktúru
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Akcia zakázané, pretože faktúra bola nahradená
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb platieb
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Rozdeliť zľavu v dvoch
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Vstupná hodnota pre každú z dvoch častí:
    -TotalOfTwoDiscountMustEqualsOriginal=Celkom dva nové zľavy musí byť rovný pôvodnú sumu zľavy.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Súvisiace faktúra
     RelatedBills=Súvisiace faktúry
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Poznámka platby
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Kontrola
     PaymentTypeShortCHQ=Kontrola
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line platby
    -PaymentTypeShortVAD=On line platby
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Návrh
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bankové spojenie
     BankCode=Kód banky
    -DeskCode=Stôl kód
    +DeskCode=Office code
     BankAccountNumber=Číslo účtu
    -BankAccountNumberKey=Kľúč
    +BankAccountNumberKey=Check digits
     Residence=Inkaso
    -IBANNumber=IBAN
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=BIC / SWIFT číslo
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Platba prevodom na bankový účet
     VATIsNotUsedForInvoice=* Neuplatňuje DPH art-293B CGI
     LawApplicationPart1=Návrhom zákona 80,335 z 12.05.80
     LawApplicationPart2=Tovar zostáva majetkom
    -LawApplicationPart3=predávajúci až do úplnej preplatenie
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=ich cena.
     LimitedLiabilityCompanyCapital=SARL s kapitálom
     UseLine=Platiť
    @@ -463,7 +465,7 @@ Cheques=Kontroly
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Použitie zákazníkov fakturačnú kontaktnú adresu miesto adresy tretích strán ako príjemcu u faktúr
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Zobraziť všetky neuhradené faktúry
     ShowUnpaidLateOnly=Zobraziť neskoré neuhradené faktúry len
     PaymentInvoiceRef=%s faktúru
    @@ -474,21 +476,22 @@ Reported=Oneskorený
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Predpokladaný platba
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Zaplatené touto platbou
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Zaplatiť
     ToMakePaymentBack=Oplatiť
     ListOfYourUnpaidInvoices=Zoznam nezaplatených faktúr
     NoteListOfYourUnpaidInvoices=Poznámka: Tento zoznam obsahuje iba faktúry pre tretie strany si sú prepojené ako obchodného zástupcu.
     RevenueStamp=Kolek
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Zmazať šablónu faktúrý
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Faktúra zmazaná
    diff --git a/htdocs/langs/sk_SK/cashdesk.lang b/htdocs/langs/sk_SK/cashdesk.lang
    index d25ddfaba61..0649f1633ab 100644
    --- a/htdocs/langs/sk_SK/cashdesk.lang
    +++ b/htdocs/langs/sk_SK/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Zobraziť spoločnosť
     ShowStock=Zobraziť skladu
     DeleteArticle=Kliknutím odstránite tento článok
     FilterRefOrLabelOrBC=Vyhľadávanie (Ref / Label)
    -UserNeedPermissionToEditStockToUsePos=Žiadate o zníženie skladu pri vytvorení faktúry, užívateľ pouzívajúci POS musí mať povolenie upravovať sklad.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr tlačiareň bločkov
    +PointOfSale=Bod predaja
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/sk_SK/commercial.lang b/htdocs/langs/sk_SK/commercial.lang
    index d568369d081..364b33eb7b7 100644
    --- a/htdocs/langs/sk_SK/commercial.lang
    +++ b/htdocs/langs/sk_SK/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefónny hovor
     ActionAC_FAX=Odoslať fax
     ActionAC_PROP=Poslať e-mailom návrh
     ActionAC_EMAIL=Odoslať e-mail
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Schôdza
     ActionAC_INT=Zásah na stránke
     ActionAC_FAC=Poslať zákazníka faktúru poštou
    @@ -72,8 +73,8 @@ StatusProsp=Prospect stav
     DraftPropals=Navrhnúť obchodné návrhy
     NoLimit=Bez limitu
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/sk_SK/companies.lang b/htdocs/langs/sk_SK/companies.lang
    index 6302122117e..20d9488886a 100644
    --- a/htdocs/langs/sk_SK/companies.lang
    +++ b/htdocs/langs/sk_SK/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Vyberte tretiu stranu
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Odstránenie kontaktu / adresa
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=Nový treťou stranou
    -MenuNewCustomer=Nový zákazník
    -MenuNewProspect=Nová Vyhliadka
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Nová súkromná osoba
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Vytvoriť tretiu stranu
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Treťou stranou kontakt / adresa
     Company=Spoločnosť
     CompanyName=Názov spoločnosti
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Firmy
    -CountryIsInEEC=Krajina je v rámci Európskeho hospodárskeho spoločenstva
    -ThirdPartyName=Tretia strana názov
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Treťou stranou
    -ThirdParties=Tretie strany
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Vyhliadky
     ThirdPartyProspectsStats=Vyhliadky
     ThirdPartyCustomers=Zákazníci
     ThirdPartyCustomersStats=Zákazníci
     ThirdPartyCustomersWithIdProf12=Zákazníci s %s alebo %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Tretí typ vyhľadávajúci večierky
    +ThirdPartyType=Type of company
     Individual=Súkromná osoba
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Materská spoločnosť
     Subsidiaries=Dcérske spoločnosti
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Poštové smerovacie číslo
     Town=Mesto
     Web=Web
     Poste= Pozícia
    -DefaultLang=Predvolený jazyk
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Návrhy
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax je platná
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Tento zákazník má predvolenú zľavu <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Tento zákazník nemá relatívnej zľavu v predvolenom nastavení
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Tento zákazník má stále dobropisy pre <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Nikto
    -Supplier=Dodávateľ
    +Supplier=Vendor
     AddContact=Vytvoriť kontakt
     AddContactAddress=Vytvoriť kontakt/adresu
     EditContact=Upraviť kontakt
    @@ -303,22 +303,22 @@ AddThirdParty=Vytvoriť tretiu stranu
     DeleteACompany=Odstránenie spoločnosť
     PersonalInformations=Osobné údaje
     AccountancyCode=Accounting account
    -CustomerCode=Zákaznícky kód
    -SupplierCode=Vendor code
    -CustomerCodeShort=Zákaznícky kód
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Zákaznícky kód, jedinečný pre všetkých zákazníkov
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Požadované, ak tretia osoba zákazníka alebo perspektíva
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Platnosť riadený modulom
    -ThisIsModuleRules=Jedná sa pravidlá pre tento modul
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect kontaktovať
     CompanyDeleted=Spoločnosť &quot;%s&quot; vymazaný z databázy.
     ListOfContacts=Zoznam kontaktov adries /
     ListOfContactsAddresses=Zoznam kontaktov adries /
    -ListOfThirdParties=Zoznam tretích strán
    -ShowCompany=Show third party
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Zobraziť kontakt
     ContactsAllShort=Všetko (Bez filtra)
     ContactType=Kontaktujte typ
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Tento kontakt nie je kontaktnou osobou pre akékoľvek k
     NoContactForAnyContract=Tento kontakt nie je kontakt u každej zákazky
     NoContactForAnyInvoice=Tento kontakt nie je kontakt pre každé faktúre
     NewContact=Nový kontakt
    -NewContactAddress=Nový kontakt / adresa
    +NewContactAddress=New Contact/Address
     MyContacts=Moje kontakty
     Capital=Kapitál
     CapitalOf=Hlavné mesto %s
     EditCompany=Upraviť spoločnosť
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Kontrola
    -VATIntraCheckDesc=Odkaz <b>%s</b> umožňuje požiadať Európsku DPH checker služby. Externý prístup k internetu zo servera je nutné pre túto službu do práce.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Skontrolujte Intracomunnautary DPH na stránke Európskej komisie
    -VATIntraManualCheck=Môžete sa tiež pozrieť ručne z európskych webových stránok <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Skontrolujte, nie je možné. Skontrolujte, služba nie je poskytovaná členským štátom (%s).
    -NorProspectNorCustomer=Ani vyhliadky, ani zákazník
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Zamestnanci
     ProspectLevelShort=Potenciál
     ProspectLevel=Prospect potenciál
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export do formátu karty
     ContactNotLinkedToCompany=Kontaktu, ktorý nie je spojený s akoukoľvek treťou stranou
     DolibarrLogin=Dolibarr prihlásenie
     NoDolibarrAccess=Žiadny prístup Dolibarr
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Kontakty a vlastnosti
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Cenová hladina
     DeliveryAddress=Dodacia adresa
     AddAddress=Pridať adresu
    @@ -402,16 +402,16 @@ DeleteFile=Zmazať súbor
     ConfirmDeleteFile=Ste si istí, že chcete zmazať tento súbor?
     AllocateCommercial=Assigned to sales representative
     Organization=Organizácia
    -FiscalYearInformation=Informácie o fiškálny rok
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Počiatočný mesiac fiškálneho roka
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Zoznam vyhliadky
    -ListCustomersShort=Zoznam zákazníkov
    -ThirdPartiesArea=Oblasť tretích strán a kontaktov
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Celkom jedinečné tretích strán
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Otvorení
     ActivityCeased=Zatvorené
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. za vynikajúce účet
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Kód je zadarmo. Tento kód je možné kedykoľvek zmeniť.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/sk_SK/dict.lang b/htdocs/langs/sk_SK/dict.lang
    index a20f900306e..36278a2eecb 100644
    --- a/htdocs/langs/sk_SK/dict.lang
    +++ b/htdocs/langs/sk_SK/dict.lang
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Severná Kórea
     CountryKR=Južná Kórea
     CountryKW=Kuvajt
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Lotyšsko
     CountryLB=Libanon
    @@ -160,7 +160,7 @@ CountryMD=Moldavsko
     CountryMN=Mongolsko
     CountryMS=Monserrat
     CountryMZ=Mozambik
    -CountryMM=Birmania (Mjanmarsko)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namíbia
     CountryNR=Nauru
     CountryNP=Nepál
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad a Tobago
     CountryTR=Turecko
     CountryTM=Turkménsko
    -CountryTC=Turks a Cailos ostrovy
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukrajina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Maurícius rupia
     CurrencySingMUR=Maurícius rupia
     CurrencyNOK=Nórske Krones
    -CurrencySingNOK=Nórska koruna
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tuniských dinárov
     CurrencySingTND=Tuniský dinár
     CurrencyUSD=Americké doláre
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Zamestnanec
     DemandReasonTypeSRC_SPONSORING=Sponzoring
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Formát 4A0
     PaperFormatEU2A0=Formát 2A0
    diff --git a/htdocs/langs/sk_SK/ecm.lang b/htdocs/langs/sk_SK/ecm.lang
    index 54ca11128af..33f3dcc9f12 100644
    --- a/htdocs/langs/sk_SK/ecm.lang
    +++ b/htdocs/langs/sk_SK/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb dokumentov v adresári
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Adresár
     ECMSectionManual=Ručné Directory
     ECMSectionAuto=Automatické adresár
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Dokumenty súvisiace s projektmi
     ECMDocsByUsers=Dokumenty súvisiace s používateľmi
     ECMDocsByInterventions=Dokumenty súvisiace so zákrokom.
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No vytvoril adresár
     ShowECMSection=Zobraziť adresár
     DeleteSection=Odstráňte adresár
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/sk_SK/errors.lang b/htdocs/langs/sk_SK/errors.lang
    index 21305653a83..4afdf927bed 100644
    --- a/htdocs/langs/sk_SK/errors.lang
    +++ b/htdocs/langs/sk_SK/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Hodnota &quot;%s&quot; má nesprávny formát dátumu
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Nepodarilo sa zapísať do adresára %s
     ErrorFoundBadEmailInFile=Našiel nesprávne email syntaxe %s riadkov v súbore (%s príklad súlade s emailom = %s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Niektoré požadované pole sa nevypĺňa.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Nepodarilo sa vytvoriť adresár. Uistite sa, že webový server má užívateľ oprávnenie na zápis do adresára dokumentov Dolibarr. Ak je parameter <b>safe_mode</b> je povolené na tomto PHP, skontrolujte, či Dolibarr php súbory, vlastné pre užívateľa webového servera (alebo skupina).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Vyplňte, prosím, hodnotu zoznamu vyberte
     ErrorNoValueForCheckBoxType=Vyplňte, prosím, hodnotu checkbox zoznamu
     ErrorNoValueForRadioType=Prosím vyplňte hodnotu pre rozhlasové zoznamu
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Terénne <b>%s</b> nesmie obsahuje špeciálne znaky.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Nie účtovníctva modul aktivovaný
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP zhoda nie je úplná.
     ErrorLDAPMakeManualTest=. LDIF súbor bol vytvorený v adresári %s. Skúste načítať ručne z príkazového riadku získať viac informácií o chybách.
    -ErrorCantSaveADoneUserWithZeroPercentage=Nemožno uložiť akciu s &quot;Štatút nezačal&quot;, ak pole &quot;vykonáva&quot; je tiež vyplnená.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref používa pre tvorbu už existuje.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript musí byť vypnutá, že táto funkcia pracovať. Ak chcete povoliť / zakázať Javascript, prejdite do ponuky Home-&gt; Nastavenie-&gt; Zobrazenie.
     ErrorPasswordsMustMatch=Obaja napísaný hesla sa musia zhodovať sa navzájom
    -ErrorContactEMail=Technické chybe. Prosím, obráťte sa na správcu, aby e-mailovú <b>%s</b> en poskytovať <b>%s</b> kód chyby v správe, alebo ešte lepšie pridaním obrazovky kópiu tejto stránky.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Chybná hodnota <b>%s</b> číslo poľa (hodnota <b>&quot;%s</b> 'nezodpovedá regex pravidiel <b>%s)</b>
     ErrorFieldValueNotIn=Chybná hodnota <b>%s</b> číslo poľa (hodnota <b>&quot;%s</b> 'nie je dostupná hodnota do poľa <b>%s</b> stolových <b>%s)</b>
     ErrorFieldRefNotIn=Chybná hodnota <b>%s</b> číslo poľa (hodnota <b>&quot;%s&quot;</b> nie je <b>%s</b> existujúce ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Antivírusový program nebol schopný overiť súb
     ErrorSpecialCharNotAllowedForField=Špeciálne znaky nie sú povolené pre pole &quot;%s&quot;
     ErrorNumRefModel=Existuje odkaz do databázy (%s) a nie je kompatibilný s týmto pravidlom číslovania. Odobrať záznam alebo premenovať odkaz na aktiváciu tohto modulu.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Chyba na masku
     ErrorBadMaskFailedToLocatePosOfSequence=Chyba maska ​​bez poradovým číslom
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Chyba, zlá hodnota po resete
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Chyba. Vyberte aspoň jednu položku.
    -ErrorDeleteNotPossibleLineIsConsolidated=Odstránenie nie je možné, pretože záznam je spojená s bankovým transakčného ktorý zmieril
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s je priradený do inej tretej
     ErrorFailedToSendPassword=Nepodarilo sa odoslať heslo
     ErrorFailedToLoadRSSFile=Nedokáže dostať RSS feed. Skúste pridať konštantný MAIN_SIMPLEXMLLOAD_DEBUG prípade chybových hlásení neposkytuje dostatok informácií.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Užívateľ s prihlásením <b>%s</b> nebol nájdený.
     ErrorLoginHasNoEmail=Tento užívateľ nemá žiadnu e-mailovú adresu. Proces prerušená.
     ErrorBadValueForCode=Bad hodnota bezpečnostného kódu. Skúste to znova s ​​novou hodnotou ...
     ErrorBothFieldCantBeNegative=Polia %s a %s nemôžu byť negatívna
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Užívateľský účet <b>%s</b> použiť na spustenie webový server nemá oprávnenie pre ktoré
     ErrorNoActivatedBarcode=Žiaden čiarový kód aktivovaný typ
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Povinné parametre sú doteraz stanovené
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Záložka s týmto názvom, alebo tento cieľ (URL)
     WarningPassIsEmpty=Pozor, databáza je heslo prázdne. Toto je bezpečnostná diera. Mali by ste pridať heslo do databázy a zmeniť svoj conf.php súboru v tomto zmysle.
     WarningConfFileMustBeReadOnly=Pozor, môže váš konfiguračný súbor <b>(htdocs / conf / conf.php)</b> musia byť prepísané webovom serveri. To je vážna bezpečnostná diera. Zmeniť oprávnenia k súboru, ktorý chcete v režime len pre čítanie pre užívateľov operačného systému používaného webového servera. Ak používate systém Windows a FAT formát disku, musíte vedieť, že je súborový systém neumožňuje pridať práva na súbore, takže nemôže byť úplne bezpečný.
     WarningsOnXLines=Upozornenie na <b>%s</b> zdrojovom zázname (s)
    -WarningNoDocumentModelActivated=Žiadny model, pre generovanie dokumentov, bol aktivovaný. Bude model zvolil ako predvolené, kým skontrolovať nastavenie modulu.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Pozor, po dokončení nastavenia, musíte zakázať inštaláciu / sťahovať nástroja pridaním súboru do adresára <b>install.lock %s.</b> Chýbajúce tento obrázok je bezpečnostná diera.
    -WarningUntilDirRemoved=Všetky bezpečnostné pokyny (viditeľné admin užívateľa) zostane aktívny tak dlho, až kým chyba je prítomná (alebo konštantné MAIN_REMOVE_INSTALL_WARNING sa pridá Nastavenie-&gt; Ostatné nastavenia).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Pozor, zatváranie sa vykonáva, aj keď suma líši zdrojových a cieľových prvkov. Povoľte túto funkciu so zvýšenou opatrnosťou.
     WarningUsingThisBoxSlowDown=Upozornenie Pri použití tohto políčka spomaliť vážne všetky stránky zobrazujúce krabici.
     WarningClickToDialUserSetupNotComplete=Nastavenie ClickToDial informácií pre užívateľa si nie sú kompletné (pozri tab ClickToDial na vaše užívateľské karty).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/sk_SK/help.lang b/htdocs/langs/sk_SK/help.lang
    index e3a362464bf..a59ed9fea66 100644
    --- a/htdocs/langs/sk_SK/help.lang
    +++ b/htdocs/langs/sk_SK/help.lang
    @@ -6,8 +6,8 @@ OtherSupport=Ďalšia podpora
     ToSeeListOfAvailableRessources=Ak chcete kontaktovať / zobrazenie dostupných zdrojov:
     HelpCenter=Nápoveda centrum
     DolibarrHelpCenter=Dolibarr Help and Support Center
    -ToGoBackToDolibarr=Inak kliknite <a href="%s">tu využiť Dolibarr</a>
    -TypeOfSupport=Zdrojom podpory
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Spoločenstva (zadarmo)
     TypeSupportCommercial=Obchodné
     TypeOfHelp=Typ
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Účinnosť
     TypeHelpOnly=Nápoveda iba
     TypeHelpDev=Nápoveda + Development
    -TypeHelpDevForm=Pomoc + + Development Formation
    -ToGetHelpGoOnSparkAngels1=Niektoré spoločnosti môžu poskytnúť rýchly (niekedy okamžitej) a efektívnejšiu online podporu tým, že vezme kontrolu nad vašim počítačom. Tieto pomocníkmi možno nájsť na internetových stránkach <b>%s:</b>
    -ToGetHelpGoOnSparkAngels3=Môžete tiež prejsť na zoznam všetkých dostupných vozidiel pre Dolibarr, pre túto kliknutím na
    -ToGetHelpGoOnSparkAngels2=Niekedy nie je spoločnosť k dispozícii v okamihu, keď vykonáte vyhľadávanie, tak si pre zmenu filter sa pozrieť na &quot;všetky dostupnosť&quot;. Budete mať možnosť posielať viac požiadaviek.
    -BackToHelpCenter=V opačnom prípade, choďte späť <a href="%s">vrátiť na pomoc strednej domovskú stránku</a> .
    -LinkToGoldMember=Môžete zavolať jednu z predvolených trénera o Dolibarr pre požadovaný jazyk (%s) kliknutím na jeho widget (stav a maximálna cena automaticky aktualizované):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Podporované jazyky
    -SubscribeToFoundation=Nápoveda Dolibarr projekt, prihláste sa do základu
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Oficiálna podpora Dolibarr vo Vašom jayzku: 
    diff --git a/htdocs/langs/sk_SK/holiday.lang b/htdocs/langs/sk_SK/holiday.lang
    index 90da146dda5..50fbcef66eb 100644
    --- a/htdocs/langs/sk_SK/holiday.lang
    +++ b/htdocs/langs/sk_SK/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Mesačný výkaz
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Dátum začatia
     DateFinCP=Dátum ukončenia
    @@ -15,13 +15,18 @@ ApprovedCP=Schválený
     CancelCP=Zrušený
     RefuseCP=Odmietol
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Popis
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Musíte vybrať koncový dátum je väčší ako dátum začatia.
     ErrorSQLCreateCP=SQL chyba pri tvorbe:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Informácie Workflow
     RequestByCP=Žiadosť
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Upraviť
     DeleteCP=Vymazať
     ActionRefuseCP=Odmietnuť
    @@ -59,6 +71,7 @@ DateRefusCP=Dátum odmietnutia
     DateCancelCP=Dátum zrušenia
     DefineEventUserCP=Priradenie výnimočnú dovolenku pre užívateľa
     addEventToUserCP=Priradenie opustiť
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Dôvod
     UserCP=Užívateľ
     ErrorAddEventToUserCP=Došlo k chybe pri pridávaní výnimočnú dovolenku.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Aktualizované úspešne.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/sk_SK/install.lang b/htdocs/langs/sk_SK/install.lang
    index 36baca36fab..39886435369 100644
    --- a/htdocs/langs/sk_SK/install.lang
    +++ b/htdocs/langs/sk_SK/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Stačí sledovať inštrukcie krok za krokom.
     MiscellaneousChecks=Kontrola predpokladov
     ConfFileExists=Konfiguračný súbor <b>%s</b> existuje.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=<b>%s</b> Konfiguračný súbor neexistuje a nemohol byť vytvorený!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=<b>%s</b> Konfiguračný súbor môže byť vytvorený.
    -ConfFileIsNotWritable=<b>%s</b> Konfiguračný súbor nie je zapisovateľný. Skontrolujte oprávnenia. Pri prvej inštalácii musí byť Váš webový server schopný zapisovať do tohto súboru počas procesu konfigurácie (napr. &quot;chmod 666&quot; na Unixe, a pod.).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Konfiguračný súbor <b>%s</b> je zapisovatelný.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Aktualizuj všetky informácie z konfiguračného súboru.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Vaše PHP podporuje relácie.
     PHPSupportPOSTGETOk=Vaše PHP podporuje premenné POST a GET.
    -PHPSupportPOSTGETKo=Je možné, že vaša inštalácia PHP nepodporuje premenné POST a / alebo GET. Skontrolujte parameter <b>variables_order</b> v php.ini.
    -PHPSupportGD=Vaše PHP podporuje grafické funkcie GD .
    -PHPSupportCurl=PHP podporuje Curl
    -PHPSupportUTF8=Vaše PHP podporuje funkcie UTF8.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Maximálna pamäť pre relácie v PHP je nastavená na <b>%s</b>. To by malo stačiť.
    -PHPMemoryTooLow=Maximálna pamäť pre relácie v PHP je nastavená na <b>%s</b>. Môže to byť príliš málo.Upravte súbor <b>php.ini</b> a nastavte parameter <b>memory_limit</b> aspoň na hodnotu <b>%s</b> bajtov.
    -Recheck=Kliknite sem pre viac signifikantný test
    -ErrorPHPDoesNotSupportSessions=Vaša inštalácia PHP nepodporuje relácie. Táto funkcia je nutná, aby Dolibarr fungoval. Skontrolujte vaše nastavenia PHP.
    -ErrorPHPDoesNotSupportGD=Vaša inštalácia PHP nepodporuje grafické funkcie GD. Grafy nebudú k dispozícii.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Vaše nainštalované PHP nepodporuje Curl
    -ErrorPHPDoesNotSupportUTF8=Vaša inštalácia PHP nepodporuje funkcie UTF8. Dolibarr nemôže pracovať správne. Pred inštaláciou Dolibarr treba tento problém vyriešiť.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Adresár %s neexistuje.
    -ErrorGoBackAndCorrectParameters=Choďte späť a opravte chybné parametre.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Možno ste zadali nesprávnu hodnotu pre parameter &quot;%s&quot;.
     ErrorFailedToCreateDatabase=Nepodarilo sa vytvoriť databázu &quot;%s&quot;.
     ErrorFailedToConnectToDatabase=Nepodarilo sa pripojiť k databáze &quot;%s&quot;.
     ErrorDatabaseVersionTooLow=Verzia databázy (%s) je príliš stará. Vyžaduje sa verzia %s alebo vyššia.
     ErrorPHPVersionTooLow=Verzia PHP je príliš stará. Vyžaduje sa verzia %s.
    -ErrorConnectedButDatabaseNotFound=Pripojenie k serveru úspešné, ale databáza &quot;%s&quot; sa nenašla.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Databáza '%s' už existuje.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Ak databáza neexistuje, vráťte sa späť a zaškrtnite voľbu &quot;Vytvoriť databázu&quot;.
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Ak databáza už existuje, vráťte sa späť a zrušte začiarknutie políčka &quot;Vytvoriť databázu&quot;.
    -WarningBrowserTooOld=Príliš stará verzia prehliadača. Aktualizácia prehliadača na poslednú verziu Firefoxu, Chrome alebo Opery je vysoko odporúčaná.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=Verzia PHP
     License=Používa sa licencia
     ConfigurationFile=Konfiguračný súbor
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr databáza
     DatabaseType=Typ databázy
     DriverType=Typ ovládača
     Server=Server
    -ServerAddressDescription=Názov alebo IP adresa databázového servera, zvyčajne &quot;localhost&quot;, keď je databázový server umiestnený na rovnakom serveri, ako web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Port databázového servera. Nechajte prázdne, ak je neznámy.
     DatabaseServer=Databázový server
     DatabaseName=Názov databázy
    -DatabasePrefix=Prefix tabuliek databázy
    -AdminLogin=Prihlásenie pre vlastníka databázy Dolibarr.
    -PasswordAgain=Zadajte heslo ešte raz
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Heslo pre vlastníka databázy Dolibarr.
     CreateDatabase=Vytvoriť databázu
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Databázový server - prístup Superuser
    -CheckToCreateDatabase=Zaškrtnite, ak databáza neexistuje a musí byť vytvorená.<br>V tom prípade musíte zadať prihlasovacie meno / heslo pre administrátora v dolnej časti tejto stránky.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Prihlásenie užívateľa oprávneného vytvárať nové databázy alebo nových užívateľov - povinné, ak vaša databáza alebo jej majiteľ ešte neexistuje.
    -KeepEmptyIfNoPassword=Ponechajte prázdne, ak užívateľ nemá heslo (neodporúčané)
    -SaveConfigurationFile=Uložiť hodnoty
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Pripojenie k serveru
     DatabaseCreation=Vytvorenie databázy
     CreateDatabaseObjects=Tvorba objektov databázy
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Vytvorte cudzie kľúče a indexy pre tabuľky %s
     OtherKeysCreation=Cudzie kľúče a indexy tvorba
     FunctionsCreation=Funkcia vytvárania
     AdminAccountCreation=Administrator login tvorba
    -PleaseTypePassword=Prosím, zadajte heslo, prázdne heslá nie je dovolené!
    -PleaseTypeALogin=Prosím zadajte prihláste sa!
    -PasswordsMismatch=Heslá sa líši, skúste to znova!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Koniec nastavenie
     SystemIsInstalled=Táto inštalácia je dokončená.
     SystemIsUpgraded=Dolibarr bol aktualizovaný úspešne.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Je potrebné nakonfigurovať Dolibarr aby vyhovoval va
     AdminLoginCreatedSuccessfuly=Dolibarr administrátorský účet '<b>%s</b>' úspešne vytvorený
     GoToDolibarr=Prejsť na Dolibarr
     GoToSetupArea=Prejsť na Dolibarr (nastavenie plochy)
    -MigrationNotFinished=Verzia databázy nie je úplne aktuálna, takže budete musieť spustiť proces aktualizácie znova.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Prejsť na stránku znova upgradovať
     WithNoSlashAtTheEnd=Bez lomítka &quot;/&quot; na koniec
    -DirectoryRecommendation=Je odporúčané používať adresár mimo adresára zo svojich webových stránok.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Už existuje
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr účtu správcu <b>&quot;%s</b> 'už existuje. Vráť sa, ak chcete vytvoriť ďalšie.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Vytvorenie Dolibarr administratórskeho účtu zlyhalo
    -WarningRemoveInstallDir=Pozor, z bezpečnostných dôvodov, akonáhle inštaláciu alebo upgrade je kompletný, aby sa zabránilo používanie inštaláciu nástroja znova, mali by ste pridať súbor s názvom <b>install.lock</b> do adresára dokumentov Dolibarr, aby sa zabránilo škodlivému využitie.
    -FunctionNotAvailableInThisPHP=Nie je k dispozícii na tejto PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Vyberte si skript migrácie
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Skript pre spracovanie
     ChooseYourSetupMode=Vyberte si režim inštalácie a kliknite na tlačidlo &quot;Štart&quot; ...
     FreshInstall=Čerstvá inštalácia
    -FreshInstallDesc=Tento režim použite, ak je to vaša prvá inštalácia. Ak nie, môžete tento režim opraviť neúplnú predchádzajúcu inštaláciu, ale ak chcete upgradovať verziu, vyberte &quot;Upgrade&quot; režime.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Vylepšiť
     UpgradeDesc=Tento režim použite, ak ste vymenili staré Dolibarr súbory sa súbory z novšej verzie. To bude aktualizovať databázy a dáta.
     Start=Začiatok
     InstallNotAllowed=Inštalácia nie je povolené <b>conf.php</b> oprávnenia
     YouMustCreateWithPermission=Musíte vytvoriť súbor %s a nastaviť povolenia na zápis na tom webovom serveri počas procesu inštalácie.
    -CorrectProblemAndReloadPage=Opravte problém a stlačte klávesu F5 pre obnovenie stránky.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Už sa sťahoval
     DatabaseVersion=Verzia databázy
     ServerVersion=Databázový server verzia
     YouMustCreateItAndAllowServerToWrite=Musíte vytvoriť tento adresár a umožniť pre webový server zapisovať do neho.
     DBSortingCollation=Znak triedením
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Pýtate sa, na vytvorenie databázy <b>%s,</b> ale k tomu, Dolibarr musíte sa pripojiť k serveru <b>%s</b> sa super užívateľských oprávnení <b>%s.</b>
    -YouAskLoginCreationSoDolibarrNeedToConnect=Pýtate sa, na vytvorenie databázy <b>%s</b> prihlásenie, ale za to, Dolibarr musíte sa pripojiť k serveru <b>%s</b> sa super užívateľských oprávnení <b>%s.</b>
    -BecauseConnectionFailedParametersMayBeWrong=Ako pripojenie zlyhalo, musí hostiteľ alebo superpoužívateľ parametre mýliť.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Siroty platba detegované metódou %s
     RemoveItManuallyAndPressF5ToContinue=Odstrániť ručne a stlačte klávesu F5 pokračovať.
     FieldRenamed=Pole premenovaný
    -IfLoginDoesNotExistsCheckCreateUser=Ak prihlásenie nie je ešte neexistuje, je nutné skontrolovať voľbu &quot;Vytvoriť užívateľa&quot;
    -ErrorConnection=Server <b>&quot;%s&quot;</b> Názov databázy <b>&quot;%s&quot;</b> login <b>&quot;%s&quot;,</b> alebo heslo databázy môže byť zle, alebo PHP verzia klienta môže byť príliš starý oproti verzii databázy.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Odporúčaná voľba pre inštaláciu verzie <b>%s</b> od aktuálnej verzie <b>%s</b>
     InstallChoiceSuggested=<b>Nainštalujte voľbou navrhol inštaláciu.</b>
    -MigrateIsDoneStepByStep=Cielená verzia (%s) má medzeru niekoľkých verziách, takže inštalácia Sprievodca vráti navrhnúť ďalšiu migráciu raz toto bude dokončená.
    -CheckThatDatabasenameIsCorrect=Skontrolujte, či je názov databázy <b>&quot;%s&quot;</b> je správna.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Ak to je správny názov a databázy doteraz neexistuje, musíte skontrolovať voľbu &quot;Vytvoriť databázu&quot;.
     OpenBaseDir=PHP OpenBasedir parametrov
    -YouAskToCreateDatabaseSoRootRequired=Pýtali ste sa okno &quot;Vytvoriť databázu&quot;. Za týmto účelom je potrebné poskytnúť login / heslo superpoužívateľa (v spodnej časti formulára).
    -YouAskToCreateDatabaseUserSoRootRequired=Pýtali ste sa okno &quot;Vytvoriť vlastníka databázy&quot;. Za týmto účelom je potrebné poskytnúť login / heslo superpoužívateľa (v spodnej časti formulára).
    -NextStepMightLastALongTime=Aktuálny krok môže trvať niekoľko minút. Počkajte prosím, kým sa zobrazí ďalšia obrazovka úplne pred pokračovaním.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrácia prepravu pre ukladanie zákazníckych objednávok
     MigrationShippingDelivery=Aktualizujte skladovanie lodnej dopravy
     MigrationShippingDelivery2=Aktualizujte skladovaní dopravy 2
     MigrationFinished=Migrácia dokončená
    -LastStepDesc=<strong>Posledný krok:</strong> Definujte tu prihlasovacie meno a heslo budete používať pre pripojenie k softvéru. Nestrácajte to, ako to je účet, spravovať všetky ostatné.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Aktivácia modulu %s
     ShowEditTechnicalParameters=Kliknite tu pre zobrazenie / editovať pokročilé parametre (expertný režim)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Verzia Vašej databázy je %s. Obsahuje kritickú chybu spôsobujúcu stratu dát v prípade zmeny štruktúry databázy; takáto zmena je však migračným procesom vyžadovaná. Migrácia preto nebude povolená kým si nezaktualizujete svoju databázu na vyššiu, opravenú verziu. (Zoznam známych chybných verzií: %s)
    -KeepDefaultValuesWamp=Používate Dolibarr inštalátor z DoliWamp čiže hodnoty sú už optimalizované. Zmenite ich iba v prípade, že viete čo robíte.
    -KeepDefaultValuesDeb=Používate Dolibarr inštalátor z Linux balíčka (Ubuntu, Debian, Fedora...), čiže hodnoty sú už optimalizované. Iba nastavenia hesla databáze su potrebné. Ostatné parametrezmente iba v prípade, že viete čo robíte.
    -KeepDefaultValuesMamp=Používate Dolibarr inštalátor z DoliMamp čiže hodnoty sú už optimalizované. Zmenite ich iba v prípade, že viete čo robíte.
    -KeepDefaultValuesProxmox=Používate Dolibarr inštalátor z Proxmox čiže hodnoty sú už optimalizované. Zmenite ich iba v prípade, že viete čo robíte.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Migrácia dát na komerčné návrhov
     MigrationInvoice=Migrácia dát pre zákazníka faktúry
     MigrationContract=Migrácia dát pre zmluvy
    -MigrationSuccessfullUpdate=Upgrade úspešný
    +MigrationSuccessfullUpdate=Aktualizujte úspešná
     MigrationUpdateFailed=Nepodarilo proces upgradu
     MigrationRelationshipTables=Migrácia dát pre vzťah tabuliek (%s)
     MigrationPaymentsUpdate=Platba korekcia dát
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Zmluva korekcia dát
     MigrationContractsNumberToUpdate=%s zmluva (y) aktualizovať
     MigrationContractsLineCreation=Vytvorte riadku zmluvy pre %s zmluvných ref
     MigrationContractsNothingToUpdate=Žiadne ďalšie vecí, ktoré sa
    -MigrationContractsFieldDontExist=Pole fk_facture neexistuje už nie. Čo robiť.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Zmluva prázdna dáta korekcia
    -MigrationContractsEmptyDatesUpdateSuccess=Úprava hodnoty úspešná
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Žiadna zmluva prázdny Dátum opraviť
     MigrationContractsEmptyCreationDatesNothingToUpdate=Žiadna zmluva dátum vytvorenia opraviť
     MigrationContractsInvalidDatesUpdate=Bad valuty zmluva korekcia
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Dodávka aktualizácie
     MigrationStockDetail=Aktualizovať hodnotu zásob výrobkov
     MigrationMenusDetail=Aktualizácia dynamická menu tabuľky
     MigrationDeliveryAddress=Aktualizovať adresu dodania zásielky
    -MigrationProjectTaskActors=Migrácia dát pre tabuľky llx_projet_task_actors
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Migrácia dát z poľa fk_user_resp llx_projet na llx_element_contact
     MigrationProjectTaskTime=Aktualizovať čas strávený v sekundách
     MigrationActioncommElement=Aktualizovať údaje o činnosti
     MigrationPaymentMode=Migrácia dát platobného režimu
     MigrationCategorieAssociation=Migrácia kategórií
    -MigrationEvents=Migrácia udalostí za účelom pridania vlastníka udalosti do priraďovacej tabuľky
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Aktualizácia hodnoty llx_societe_remise
     MigrationRemiseExceptEntity=Aktualizácia hodnoty llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Znovu načítať modul %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Zobraziť nedostupné možnosti
    -HideNotAvailableOptions=Skryť nedostupné možnosti
    -ErrorFoundDuringMigration=Počas migrácies sa vyskytol problém preto nasledujúci krok nie je dostupný. Pre ignorovanie chýb môžete <a href="%s">kliknúť tu</a>, ale niektoré funkcie aplikácie nebudu fungovať správne pokial ich neopravíte.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/sk_SK/interventions.lang b/htdocs/langs/sk_SK/interventions.lang
    index 168adfbc098..35854a9f18e 100644
    --- a/htdocs/langs/sk_SK/interventions.lang
    +++ b/htdocs/langs/sk_SK/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Zásahy
     InterventionCard=Karta zásahu
     NewIntervention=Nový zásah
     AddIntervention=Vytvoriť zásah
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Zoznam zásahov
     ActionsOnFicheInter=Akcie zamerané na zásah
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/sk_SK/main.lang b/htdocs/langs/sk_SK/main.lang
    index 93bae8c4512..7a829698002 100644
    --- a/htdocs/langs/sk_SK/main.lang
    +++ b/htdocs/langs/sk_SK/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Nepodarilo sa odoslať poštu (vysielač, prijímač = %s
     ErrorFileNotUploaded=Súbor nebol nahraný. Skontrolujte, či veľkosť nepresahuje maximálnu povolenú, že voľné miesto na disku a že už nie je súbor s rovnakým názvom v tomto adresári.
     ErrorInternalErrorDetected=Bola zistená chyba
     ErrorWrongHostParameter=Zle hostiteľ parametrov
    -ErrorYourCountryIsNotDefined=Vaša krajina nie je definovaná. Prejsť na Home-Nastavenie-Úpravy a post znovu formulár.
    -ErrorRecordIsUsedByChild=Nepodarilo sa zmazať tento záznam. Tento záznam sa používa aspoň jedno dieťa záznamov.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Chybná hodnota
     ErrorWrongValueForParameterX=Chybná hodnota parametra %s
     ErrorNoRequestInError=Žiadna požiadavka omylom
    -ErrorServiceUnavailableTryLater=Služba nie je k dispozícii pre túto chvíľu. Skúste to znova neskôr.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicitné hodnota v jedinečnej poľa
    -ErrorSomeErrorWereFoundRollbackIsDone=Niektoré boli nájdené chyby. My rollback zmien.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> nie je definovaná v súbore config Dolibarr <b>conf.php.</b>
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Nepodarilo sa nájsť užívateľa <b>%s</b> v databáze Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Chyba, žiadne sadzby DPH stanovenej pre krajinu &quot;%s&quot;.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Chyba sa nepodarilo uložiť súbor.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Nastaviť dátum
     SelectDate=Vybrať dátum
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=Súbor sa úspešne nahral
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=Súbor vybraný pre pripojenie, ale ešte nebol nahraný. Kliknite na &quot;Priložiť súbor&quot; za to.
    -NbOfEntries=Nb záznamov
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Prečítajte si pomáhať
     RecordSaved=Záznam uložený
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=Pozri vyššie
    -HomeArea=Hlavná oblasť
    +HomeArea=Domáce
     LastConnexion=Latest connection
     PreviousConnexion=Predchádzajúca pripojenie
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Zatvorené
     Closed2=Zatvorené
     NotClosed=Not closed
     Enabled=Povolené
    +Enable=Umožniť
     Deprecated=Zastaralá
     Disable=Zakázať
     Disabled=Invalidný
    @@ -153,7 +154,7 @@ Update=Aktualizovať
     Close=Zavrieť
     CloseBox=Remove widget from your dashboard
     Confirm=Potvrdiť
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Vymazať
     Remove=Odstrániť
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Kopírovať
     Paste=Pasta
     Default=Štandardné
     DefaultValue=Východisková hodnota
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Cena
     PriceCurrency=Price (currency)
     UnitPrice=Jednotková cena
    @@ -347,7 +348,7 @@ AmountTTCShort=Čiastka (s DPH)
     AmountHT=Suma (bez DPH)
     AmountTTC=Čiastka (s DPH)
     AmountVAT=Čiastka dane
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Nevzťahuje sa
     ActionRunningNotStarted=Ak chcete začať
     ActionRunningShort=In progress
     ActionDoneShort=Hotový
    -ActionUncomplete=Neúplné
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Kontakty pre túto tretiu stranu
     ContactsAddressesForCompany=Kontakty / adries tretím stranám tejto
     AddressesForCompany=Adresy pre túto tretiu stranu
     ActionsOnCompany=Akcia o tejto tretej osobe
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Akcia o tomto členovi
     ActionsOnProduct=Events about this product
     NActionsLate=%s neskoro
    @@ -453,8 +455,8 @@ Generate=Generovať
     Duration=Trvanie
     TotalDuration=Celkové trvanie
     Summary=Zhrnutie
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Dostupný
     NotYetAvailable=Zatiaľ nie je k dispozícii
    @@ -468,7 +470,7 @@ and=a
     or=alebo
     Other=Ostatné
     Others=Ostatné
    -OtherInformations=Ostatné informácie
    +OtherInformations=Other information
     Quantity=Množstvo
     Qty=Množstvo
     ChangedBy=Zmenil
    @@ -506,7 +508,7 @@ None=Nikto
     NoneF=Nikto
     NoneOrSeveral=None or several
     Late=Neskoro
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Obrázok
     Photos=Obrázky
    @@ -530,18 +532,6 @@ September=Septembra
     October=Október
     November=November
     December=December
    -JanuaryMin=Január
    -FebruaryMin=Február
    -MarchMin=Mar
    -AprilMin=Apríla
    -MayMin=Máj
    -JuneMin=Júna
    -JulyMin=Júla
    -AugustMin=Augusta
    -SeptemberMin=Septembra
    -OctoberMin=Október
    -NovemberMin=November
    -DecemberMin=Decembra
     Month01=január
     Month02=február
     Month03=pochod
    @@ -646,6 +636,8 @@ SendMail=Odoslať e-mail
     EMail=E-mail
     NoEMail=Žiadny e-mail
     Email=E-mail
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Žiadny mobil
     Owner=Majiteľ
     FollowingConstantsWillBeSubstituted=Nasledujúci konštanty bude nahradený zodpovedajúcou hodnotou.
    @@ -677,7 +669,7 @@ NeverReceived=Nikdy nedostal
     Canceled=Zrušený
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Farba
     Documents=Pripojené súbory
     Documents2=Dokumenty
    @@ -716,15 +708,15 @@ Merge=Spojiť
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Zobraziť stránku pre tlač hlavnú obsahovú časť
     MenuManager=Menu manažér
    -WarningYouAreInMaintenanceMode=Pozor, ste v režime údržby, tak len prihlásení <b>%s</b> je dovolené používať aplikácie v túto chvíľu.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Systémová chyba
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Kreditná karta
     ValidatePayment=Overenie platby
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Polia označené * sú povinné <b>%s</b>
    -FieldsWithIsForPublic=Polia s <b>%s</b> sú uvedené na verejnom zozname členov. Ak nechcete, aby to, zaškrtnúť &quot;verejný&quot; box.
    -AccordingToGeoIPDatabase=(Podľa prepočet GeoIP)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Linka
     NotSupported=Nie je podporované
     RequiredField=Povinné polia
    @@ -732,6 +724,8 @@ Result=Výsledok
     ToTest=Test
     ValidateBefore=Karta musí byť overená pred použitím tejto funkcie
     Visibility=Viditeľnosť
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Súkromný
     Hidden=Skrytý
     Resources=Zdroje
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Vytvorte návrh
     SetToDraft=Späť na návrh
     ClickToEdit=Kliknutím možno upraviť
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=Vo dne
     BySalesRepresentative=Do obchodného zástupcu
     LinkedToSpecificUsers=V súvislosti s konkrétnym kontakte s užívateľom
     NoResults=Žiadne výsledky
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=Systémové nástroje
     ModulesSystemTools=Moduly náradie
     Test=Test
     Element=Prvok
     NoPhotoYet=Žiadne fotografie zatiaľ k dispozícii
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Spoluúčasť
     from=z
     toward=k
    @@ -802,7 +798,7 @@ PrintFile=Vytlačiť súbor %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Zobraziť zásah
     ShowContract=Zobraziť zmluvy
    -GoIntoSetupToChangeLogo=Choďte na Domov - Nastavenie - Spoločnosť pre zmenu loga, alebo na Domov - Nastavenie - Zobrazenie pre skrytie loga.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Odstránenie riadka
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Klasifikovať účtované
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Kalendár
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web stránka
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Web stránky
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Udalosti
    -EMailTemplates=Šablóny emailov
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Projekt
     Projects=Projekty
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Oprávnenia
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Pondelok
     Tuesday=Utorok
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Zásahy
     SearchIntoContracts=Zmluvy
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Komentáre
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Všetci
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Priradené
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/sk_SK/other.lang b/htdocs/langs/sk_SK/other.lang
    index 09710bcfc4d..c8c42fc5c11 100644
    --- a/htdocs/langs/sk_SK/other.lang
    +++ b/htdocs/langs/sk_SK/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Bezpečnostný kód
     NumberingShort=N°
     Tools=Nástroje
     TMenuTools=Nástroje
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Narodeniny
     BirthdayDate=Birthday date
     DateToBirth=Dátum narodenia
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Správa o overených strane platobnej návrate
     MessageKO=Správa o zrušení strane platobnej návrate
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervencie overená
    -Notify_FICHINTER_SENTBYMAIL=Intervencie poštou
     Notify_ORDER_VALIDATE=Zákazníka overená
     Notify_ORDER_SENTBYMAIL=Zákazníka zasielaný poštou
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Dodávateľ odoslaná poštou
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Dodávateľská objednávka zaznamenaná
     Notify_ORDER_SUPPLIER_APPROVE=Dodávateľ aby schválila
     Notify_ORDER_SUPPLIER_REFUSE=Dodávateľ aby odmietol
     Notify_PROPAL_VALIDATE=Zákazník návrh overená
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Komerčné návrh zaslať poštou
     Notify_WITHDRAW_TRANSMIT=Prevodovka stiahnutiu
     Notify_WITHDRAW_CREDIT=Kreditné stiahnutiu
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Tretia strana vytvorená
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Zákazník faktúra overená
     Notify_BILL_UNVALIDATE=Zákazník faktúra unvalidated
    -Notify_BILL_PAYED=Zákazník platí faktúry
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Zákazník faktúra zrušená
     Notify_BILL_SENTBYMAIL=Zákazník faktúra zaslaná poštou
     Notify_BILL_SUPPLIER_VALIDATE=Dodávateľ faktúru overená
    -Notify_BILL_SUPPLIER_PAYED=Dodávateľ faktúru platí
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Dodávateľ faktúru poštou
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Zmluva overená
     Notify_FICHEINTER_VALIDATE=Intervencie overená
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervencie poštou
     Notify_SHIPPING_VALIDATE=Poštovné overená
     Notify_SHIPPING_SENTBYMAIL=Doručenie poštou
     Notify_MEMBER_VALIDATE=Člen overená
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Počet pripojených súborov / dokumentov
     TotalSizeOfAttachedFiles=Celková veľkosť pripojených súborov / dokumentov
     MaxSize=Maximálny rozmer
     AttachANewFile=Pripojte nový súbor / dokument
     LinkedObject=Prepojený objekt
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> je informácia v závislosti na tretích strán krajiny. <br> Napríklad pre krajiny <b>%s,</b> je to kód <b>%s.</b>
     DolibarrDemo=Dolibarr ERP / CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Zásah %s bol overený.
     EMailTextInvoiceValidated=Faktúra %s bol overený.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Návrh %s bol overený.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Aby %s bol overený.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Aby %s bol schválený %s.
     EMailTextOrderRefused=Aby %s bola zamietnutá.
     EMailTextOrderRefusedBy=Aby %s bolo odmietnuté podľa %s.
     EMailTextExpeditionValidated=Prepravné %s bol overený.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Dovoz súbor dát
     DolibarrNotification=Automatické upozornenie
     ResizeDesc=Zadajte novú šírku <b>alebo</b> výšku novej. Pomer budú uchovávané pri zmene veľkosti ...
    @@ -204,7 +214,7 @@ NewLength=Nová šírka
     NewHeight=Nová výška
     NewSizeAfterCropping=Nová veľkosť po oreze
     DefineNewAreaToPick=Definovať novú oblasť na obrázok pre jeho vyzdvihnutie (ľavým tlačidlom myši na obrázok a potom ťahajte, kým sa nedostanete na protiľahlej roh)
    -CurrentInformationOnImage=Tento nástroj bol navrhnutý tak, aby vám pomôže zmeniť veľkosť alebo orezať obrázok. To je informácia o aktuálnom editovaného obrázku
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Editor obrázkov
     YouReceiveMailBecauseOfNotification=Táto správa sa zobrazí, pretože Váš e-mail bol pridaný na zoznam cieľov, ktoré majú byť o jednotlivých akciách na %s %s softvéru.
     YouReceiveMailBecauseOfNotification2=Táto akcia je nasledovné:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Vývoz plocha
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Názov
     WEBSITE_DESCRIPTION=Popis
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/sk_SK/paybox.lang b/htdocs/langs/sk_SK/paybox.lang
    index a5748b77390..2326c18a84c 100644
    --- a/htdocs/langs/sk_SK/paybox.lang
    +++ b/htdocs/langs/sk_SK/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Paybox modul nastavenia
     PayBoxDesc=Tento modul ponúkajú stránky, ktoré umožnia platby na <a href="http://www.paybox.com" target="_blank">Paybox</a> zákazníkov. Toho možno využiť pre voľný platbu alebo platbu na určitý objekt Dolibarr (faktúry, objednávky, ...)
     FollowingUrlAreAvailableToMakePayments=Nasledovné adresy URL sú k dispozícii ponúknuť stránky na zákazníka, aby platbu na Dolibarr objektov
     PaymentForm=Platba formulár
    -WelcomeOnPaymentPage=Vítame Vás na našej on-line platobné služby
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Táto obrazovka vám umožní vykonať on-line platbu %s.
     ThisIsInformationOnPayment=Sú to informácie o platbe robiť
     ToComplete=Ak chcete dokončiť
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL ponúknuť %s on-line platobný užív
     ToOfferALinkForOnlinePaymentOnContractLine=URL ponúknuť %s on-line platobný užívateľské rozhranie pre zmluvy linky
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL ponúknuť %s on-line platobný užívateľské rozhranie pre voľný čiastku
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL ponúknuť %s on-line platobný užívateľské rozhranie pre členské predplatné
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Môžete tiež pridať parameter URL <b>&amp; tag = <i>hodnota</i></b> na niektorú z týchto URL (nutné iba pre voľný platby) pridať vlastný komentár platobnej tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Nastavte si Paybox s url <b>%s</b> mať platba vytvorená automaticky pri overená Paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Táto stránka potvrdzuje, že platba bola zaznamenaná. Ďakujem.
    -YourPaymentHasNotBeenRecorded=Vaša platba nebola zaznamenaná a transakcia bola zrušená. Ďakujem.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Parametre účtu
     UsageParameter=Používanie parametrov
     InformationToFindParameters=Pomôžte nájsť %s informácie o účte
    diff --git a/htdocs/langs/sk_SK/projects.lang b/htdocs/langs/sk_SK/projects.lang
    index b8a08f20a35..491170ecbe1 100644
    --- a/htdocs/langs/sk_SK/projects.lang
    +++ b/htdocs/langs/sk_SK/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Zobraziť projektu
     ShowTask=Zobraziť úloha
     SetProject=Nastavenie projektu
     NoProject=Žiadny projekt definovaný alebo vlastné
    -NbOfProjects=Nb projektov
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Čas strávený
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Zoznam obchodných návrhov spojených s projektom
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Zoznam zákaziek súvisiacich s projektom
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Zoznam výkonov spojených s projektom
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Zoznam udalostí spojených s projektom
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Súvisí s tretej strane
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Čas strávený je prázdny
     ThisWillAlsoRemoveTasks=Táto akcia bude tiež odstrániť všetky úlohy projektu <b>(%s</b> úlohy v túto chvíľu) a všetky vstupy času stráveného.
    -IfNeedToUseOhterObjectKeepEmpty=Ak sú niektoré predmety (faktúra, objednávka, ...), ktoré patria do inej tretej osobe, musí byť spojené s projektom, vytvoriť, aby bol tento prázdny mať projekt bytia multi tretej strany.
    +IfNeedToUseOtherObjectKeepEmpty=Ak sú niektoré predmety (faktúra, objednávka, ...), ktoré patria do inej tretej osobe, musí byť spojené s projektom, vytvoriť, aby bol tento prázdny mať projekt bytia multi tretej strany.
     CloneProject=Clone projekt
     CloneTasks=Clone úlohy
     CloneContacts=Clone kontakty
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Prispievateľ
     SelectElement=Vyberte prvok
     AddElement=Odkaz na elementu
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Plánované zaťaženie
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Návrh
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/sk_SK/propal.lang b/htdocs/langs/sk_SK/propal.lang
    index d50ad95f8f6..fa1b5eeeb31 100644
    --- a/htdocs/langs/sk_SK/propal.lang
    +++ b/htdocs/langs/sk_SK/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Podpis (potreby fakturácia)
     PropalStatusNotSigned=Nie ste prihlásený (uzavretý)
     PropalStatusBilled=Účtované
     PropalStatusDraftShort=Návrh
    -PropalStatusValidatedShort=Overené
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Zatvorené
     PropalStatusSignedShort=Podpísaný
     PropalStatusNotSignedShort=Nie ste prihlásený
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Prepáli %s nebol nájdený
     AddToDraftProposals=Pridať do predlohy návrhu
     NoDraftProposals=Žiadne návrhy riešení
     CopyPropalFrom=Vytvorenie obchodné návrh skopírovaním existujúceho návrhu
    -CreateEmptyPropal=Vytvorte prázdny obchodné návrhy vierge alebo zo zoznamu produktov / služieb
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Predvolené komerčné Návrh platnosť doba (v dňoch)
    -UseCustomerContactAsPropalRecipientIfExist=Použitie zákazníkov kontaktnú adresu, ak je definovaná miesto treťou stranou adresa ako adresa príjemcu návrh
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Klon obchodné návrh
     ConfirmClonePropal=Určite chcete duplikovať komerčnú ponuku <b>%s</b>?
     ConfirmReOpenProp=Určite chcete znova otvoriť komerčnú ponuku <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Kontakt so zákazníkom nasledujúce vyprac
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Kompletný návrh modelu (logo. ..)
    +DocModelCyanDescription=Kompletný návrh modelu (logo. ..)
     DefaultModelPropalCreate=Predvolené model, tvorba
     DefaultModelPropalToBill=Predvolená šablóna pri zatváraní obchodnej návrh (bude faktúrovať)
     DefaultModelPropalClosed=Predvolená šablóna pri zatváraní obchodnej návrh (nevyfakturované)
    diff --git a/htdocs/langs/sk_SK/website.lang b/htdocs/langs/sk_SK/website.lang
    index b09e03c3b1c..a060b3d43fb 100644
    --- a/htdocs/langs/sk_SK/website.lang
    +++ b/htdocs/langs/sk_SK/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kód
    -WebsiteSetupDesc=Tu vytvorte toľko riadkov kolko rôzných webstránok potrebujete. Potom choďte do menu Webstránky pre ich upravovanie.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Zmazať webstránku
    -ConfirmDeleteWebsite=Určite chcete zmazať túto web stránku. Všetky podstránka a obsah budú zmazané tiež.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Meno stránky
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL alebo externý CSS dokument
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Knižnica médií
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Upraviť menu
     EditMedias=Edit medias
    -EditPageMeta=Upraviť Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Náhľad webstránky <strong>%s</strong> nie je dostupný. Najprv musíte pridať stránk.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=Zobraziť stránku na novej karte
     SetAsHomePage=Nastaviť ako domovskú stránku
     RealURL=Skutočná URL
     ViewWebsiteInProduction=Zobraziť web stránku použitím domovskej URL
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Čítať
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang
    index 76304e5c2c0..9813c54b82b 100644
    --- a/htdocs/langs/sl_SI/admin.lang
    +++ b/htdocs/langs/sl_SI/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Razvojna
     VersionUnknown=Neznana
     VersionRecommanded=Priporočena
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Rutina za shranjevanje seje
     SessionSavePath=Lokalizacija shranjevanja seje
     PurgeSessions=Odstranitev sej
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Shranitev rutine za shranjevanje seje v vašem PHP ne omogoča prikaza seznama vseh sej, ki se izvajajo.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Zaklepanje novih povezav
    -ConfirmLockNewSessions=Ali zares želite omejiti vse nove Dolibarr povezave samo nase. Samo uporabnik <b>%s</b> se bo potem lahko priklopil.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Odstrani blokado povezovanja
     YourSession=Vaša seja
    -Sessions=Seje uporabnikov
    +Sessions=Users sessions
     WebUserGroup=Spletni strežnik uporabnik / skupina
    -NoSessionFound=Kaže, da vaš PHP ne dovoli prikaza seznama aktivnih sej. Mapa (<b>%s</b>), ki se uporablja za shranjevanje sej, je morda zaščitena (Na primer z OS dovoljenji ali z PHP direktivo open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Nabor znakov v bazi podatkov za shranjevanje podatkov
     DBSortingCharset=Nabor znakov v bazi podatkov za sortiranje podatkov
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Zunanji uporabnik
     InternalUsers=Interni uporabniki
     ExternalUsers=Zunanji uporabniki
     GUISetup=Prikaz
    -SetupArea=Področje nastavitev
    +SetupArea=Nastavitve
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Testiranje »upload-a« (v skladu z nastavitvami)
     IfModuleEnabled=Opomba: 'Da' velja samo, če je omogočen modul <b>%s</b>
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Koda ne sme vsebovati vrednosti 0
     DisableJavascript=Onemogoči JavaScript in Ajax funkcije (priporočeno za slepe osebe ali tekstualne brskalnike)
     UseSearchToSelectCompanyTooltip=Če je partnerjev zelo veliko (> 100 000), lahko hitrost povišate z nastavitvijo konstante SOCIETE_DONOTSEARCH_ANYWHERE na 1 v Nastavitve->Ostale nastavitve. Iskanje bo s tem omejeno na začetek niza.
     UseSearchToSelectContactTooltip=Če je partnerjev zelo veliko (> 100 000), lahko hitrost povišate z nastavitvijo konstante SOCIETE_DONOTSEARCH_ANYWHERE na 1 v Nastavitve->Ostale nastavitve. Iskanje bo s tem omejeno na začetek niza.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Število znakov za sproženje iskanja: %s ViewFullDateActions=Prikaži celotne datume aktivnosti na tretjem listu
     NotAvailableWhenAjaxDisabled=Ni na voljo, če je Ajax onemogočen
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Predogled ni na voljo
     ThemeCurrentlyActive=Trenutno aktivna tema
     CurrentTimeZone=Časovni pas PHP strežnika
     MySQLTimeZone=Časovni pas MySql (baze podatkov)
    -TZHasNoEffect=Podatkovni strežnik shranjuje in prikazuje podatke, kot da bi bili shranjeni v predloženih nizih. Časovna cona učinkuje samo, če uporabljate funkcijo UNIX_TIMESTAMP (te Dolibarr ne sme uporabljati, zato TZ baza ne bi smela imeti nmobenega učinka, tudi če se spremeni po vnosu podatkov).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Presledek
     Table=Tabela
     Fields=Polja
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Aktiven
     SetupShort=Nastavitve
     OtherOptions=Ostale opcije
    -OtherSetup=Ostale nastavitve
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimalno ločilo
     CurrentValueSeparatorThousand=Ločilo tisočic
     Destination=Destinacija
     IdModule=ID modula
     IdPermissions=ID dovoljenj
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Lokalizacijski parameteri
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Časovni pas klienta (uporabnika)
     ClientHour=Ura klienta (uporabnika)
     OSTZ=Časovni pas OS strežnika
    @@ -126,8 +126,8 @@ PHPTZ=Časovni pas PHP strežnika
     DaylingSavingTime=Poletni/zimski čas (uporabnik)
     CurrentHour=Ura PHP strežnika
     CurrentSessionTimeOut=Časovna omejitev trenutne seje
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Samozaznava (jezik iskalnika)
     FeatureDisabledInDemo=Funkcija onemogočena v demo različici
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Prikazani so samo elementi <a href="%s">omogočenih modulov </a>.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Nov
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, uradna tržnica za Dolibarr ERP/CRM zunanje module
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Ne shranjujte v bazi podatkov celih gesel, temveč samo
     MainDbPasswordFileConfEncrypted=Šifrirana baza podatkov v conf.php (priporočena aktivacija)
     InstrucToEncodePass=Za kodiranje gesla v datoteki <b>conf.php</b>, zamenjajte vrstico <br><b>$dolibarr_main_db_pass="...";</b><br>z<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=Za dekodiranje gesla (izbris) v datoteki <b>conf.php</b>, zamenjajte vrstico <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>z<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Zaščita generiranih pdf datotek (aktivacija ni priporočena, prekinjeno masovno generiranje pdf)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Funkcija
     DolibarrLicense=Licenca
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=Glede dokumentacije za uporabnike in razvojnike (Doc, FAQ...),<br>poglejte na Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Za vsa ostala vprašanja/pomoč lahko uporabite Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=To področje vam omogoča dostop do storitve »Dolibarr Help Support«.
    -HelpCenterDesc2=Nekateri deli te storitve so na voljo <b>samo v angleščini</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Trenutna rutina za meni
     MeasuringUnit=Merilna enota
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Čas za odobritev
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS vrata (Privzeto v php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS gostitelj (Privzeto v php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS vrata (Ni definiran v PHP na Unix ali podobnih sistemih)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS gostitelj (Ni definiran v PHP na Unix ali podobnih sistemih)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Sistematično pošilljanje skritih kopij (cc) vseh poslanih emailov za
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Načini za pošiljanje e-pošte
    -MAIN_MAIL_SMTPS_ID=SMTP ID, če je zahtevano preverjanje pristnosti
    -MAIN_MAIL_SMTPS_PW=SMTP geslo, če je zahtevano preverjanje pristnosti
    -MAIN_MAIL_EMAIL_TLS= Uporabi TLS (SSL) šifriranje
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Onemogoči vsa pošiljanja SMS (za namen testiranja ali demonstracij)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Uporabljen način pošiljanja SMS
    -MAIN_MAIL_SMS_FROM=Privzeta pošiljateljeva telefonska številka za pošiljanje SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Funkcija ni na voljo pri Unix sistemih. Preverite program za pošiljanje pošte lokalno.
    -SubmitTranslation=Če prevod v ta jezik ni narejen v celoti ali če ste v prevodu našli napake, lahko popravite datoteke v mapi <b>langs/%s</b> in pošljete vaše spremembe na www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Nastavitve modula
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Orodja za različne module
     ModuleFamilyExperimental=Eksperimentalni moduli
     ModuleFamilyFinancial=Finančni moduli (računovodstvo/blagajna)
     ModuleFamilyECM=ECM
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menijski vmesniki
     MenuAdmin=Urejevalnik menijev
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Ne uporabljajte v proizvodnji
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Korak %s
    -FindPackageFromWebSite=Poiščite paket, ki omogoča funkcijo, ki jo želite (na primer na spletni strani %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Prenesite paket (na primer z uradne spletne strani %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Trenutna različica Dolibarr
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Zakasnitev predpomnilnika za izvozni odziv v sekundah (0 ali prazno pomeni, da ni predpomnilnika)
     DisableLinkToHelpCenter=Skrij link "<b>Potrebujete pomoč ali podporo</b>" na prijavni strani
     DisableLinkToHelp=Skrij povezavo do on-line pomoči "<b>%s</b>"
    -AddCRIfTooLong=Ni avtomatskega prelamljanja besedila, zato morate v predolgo vrstico, ki sega preko robu strani, vstaviti znak za novo vrstico.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimalna dolžina
     LanguageFilesCachedIntoShmopSharedMemory=Datoteke .lang naložene v spomin v skupni rabi
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Primeri pri trenutno veljavnih nastavitvah
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Seznam map z OpenDocument predlogami
     ListOfDirectoriesForModelGenODT=Seznam map, ki vsebujejo predloge v OpenDocument formatu.<br><br>Tukaj navedite celotno pot do mape.<br>Med mapami vstavite CR.<br>Mapo GED modula dodajte tukaj <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Datoteke v tej mapi morajo imeti končnico <b>.odt</b> ali <b>.ods</b>.
    -NumberOfModelFilesFound=Število ODT/ODS predlog v teh mapah
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Primeri sintakse:<br>c:\\mydir<br>/home/mydir <br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=Z dodatkom takih oznak v predlogo, boste ob kreiranju dokumenta dobili personalizirane vrednosti:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Ključi za uporabo Web storitev (parameter "dolibarrkey"
     TestSubmitForm=Vnos testnega obrazca
     ThisForceAlsoTheme=S tem upravljalnikom menija bo uporabljena tudi lastna tema po izboru uporabnika. Prav tako ta upravljalnik menijev, specializiran za pametne telefone, ne deluje na vseh pametnih telefonih. Če imate težave z vašim upravljalnikom menijev, uporabite drugega.
     ThemeDir=Mapa s preoblekami
    -ConnectionTimeout=Časovna omejitev povezave
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Časovna omejitev odziva
     SmsTestMessage=Testno sporočilo od __PHONEFROM__ za __PHONETO__
     ModuleMustBeEnabledFirst=Če potrebujete to funkcijo, morate najprej omogočiti Modul <b>%s</b>.
     SecurityToken=Ključ za šifriranje url
    -NoSmsEngine=Na voljo ni nobenega upravljalnika SMS pošiljanja. Upravljalniki SMS pošiljanja niso nameščeni z običajno distribucijo (ker so odvisni od zunanjih dobaviteljev), vendar nekatere lahko najdete na http://www.dolistore.com
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Nastavite lahko vsak globalne možnosti, povezanih z PDF generacije
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Pravila oblikovati naslov polja
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Skrij opis proizvoda v ustvarjenem PDF
     HideRefOnPDF=Skrij reference proizvoda v ustvarjenem PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parametri za zagotovitev URL
     SecurityTokenIsUnique=Uporabite edinstven parameter securekey za vsako URL
     EnterRefToBuildUrl=Vnesite sklic za predmet %s
     GetSecuredUrl=Get izračuna URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Stara stopnja DDV
     NewVATRates=Nova stopnja DDV
     PriceBaseTypeToChange=Sprememba cen z definirano osnovno referenčno vrednostjo
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Izberi seznam
     ExtrafieldSelectList = Izberi iz tabele
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Geslo
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Poveži z objektom
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Privzeta povezava
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Pozor, ta vrednost bo morda prepisana s specifično nastavitvijo uporabnika (vsak uporabnik lahko nastavi lastno povezavo za klic s klikom)
     ExternalModule=Zunanji modul - nameščen v mapo %s
    -BarcodeInitForThirdparties=Vzpostavitev masovne črtne kode za partnerje
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Vzpostavitev ali resetiranje masovne črtne kode za proizvode in storitve
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Začetna vrednost za naslednjih %s praznih zapisov
     EraseAllCurrentBarCode=Zbrišite vse trenutne vrednosti črtnih kod
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=Vse vrednosti črtnih kod so bile odstranjene
    -NoBarcodeNumberingTemplateDefined=Nobena številčna predloga črtne kode ni omogočena v mudulu za nastavitev črtnih kod.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Polje
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Uporabniki & skupine
    +Module0Name=Uporabniki & Skupine
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Partnerji
    -Module1Desc=Upravljanje podjetij in kontaktov
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Komerciala
     Module2Desc=Upravljanje komerciale
     Module10Name=Računovodstvo
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Ponudbe
     Module20Desc=Upravljanje komercialnih ponudb
     Module22Name=Masovno E-pošiljanje
    @@ -495,7 +501,7 @@ Module23Desc=Nadzor porabe energije
     Module25Name=Naročila kupcev
     Module25Desc=Upravljanje naročil kupcev
     Module30Name=Računi
    -Module30Desc=Upravljanje računov in dobropisov za kupce. Upravljanje računov dobaviteljev
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Dobavitelji
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Upravljanje zalog proizvodov
     Module53Name=Storitve
     Module53Desc=Upravljanje storitev
     Module54Name=Pogodbe/naročnine
    -Module54Desc=Upravljanje pogodb (storitev ali ponavljajočih naročnin)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Črtne kode
     Module55Desc=Upravljanje črtnih kod
     Module56Name=Telefonija
     Module56Desc=Integracija telefonije
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=Klic s klikom
     Module58Desc=Integracija klica s klikom
     Module59Name=Vaš zaznamek
    @@ -528,45 +534,45 @@ Module75Name=Stroški in potni nalogi
     Module75Desc=Upravljanje stroškov in potnih nalogov
     Module80Name=Pošiljanja
     Module80Desc=Upravljanje pošiljanja in dobavnic
    -Module85Name=Banka in gotovina
    +Module85Name=Banks and Cash
     Module85Desc=Upravljanje bančnih in gotovinskih računov
    -Module100Name=Zunanja stran
    -Module100Desc=Vključi vsako zunanjo spletno stran v Dolibarr meni in jo prikaži v Dolibarr okvirju
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman in SPIP
     Module105Desc=Mailman ali SPIP vmesnik za modul člana
     Module200Name=LDAP
    -Module200Desc=Sinhronizacija LDAP mape
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=Integracija PostNuke
     Module240Name=Izvoz podatkov
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Uvoz podatkov
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Člani
     Module310Desc=Upravljanje članov ustanove
     Module320Name=Vir RSS
     Module320Desc=Dodajanje vira RSS na prikazane Dolibarr strani
    -Module330Name=Zaznamki
    -Module330Desc=Urejanje zaznamkov
    -Module400Name=Projekti/priložnosti/možnosti
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Internetni koledar
     Module410Desc=Integracija internetnega koledarja
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Posojilo
     Module520Desc=Upravljanje posojil
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donacije
     Module700Desc=Upravljanje donacij
     Module770Name=Stroškovno poročilo
    -Module770Desc=Poročilo upravljanja in stroškov povračil (prevoz, hrana, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Generiranje dokumenta za masovno pošto
     Module1780Name=Značke/kategorije
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=Fck urejevalnik
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dinamične cene
     Module2200Desc=Omogoči uporabo matematičnih formul za izračun cen
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Omogoči strtežnik Dolibarr SOAP, ki zagotavlja API storitve
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Omogoči strtežnik Dolibarr REST, ki zagotavlja API storitve
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Vključitev Dolibarr klienta za mrežni servis (lahko se uporablja za potisk podatkov/zahtev na zunanji strežnik. Zaenkrat so podprta samo naročila pri dobaviteljih)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Uporaba online Gravatar storitev (www.gravatar.com) za prikaz fotografij uporabnikov/članov (na osnovi njihovih emailov). Potreben je internetni dostop
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=Možnost konverzije GeoIP Maxmind
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Skupine podjetij
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Upravljanje zahtevkov za dopust
    -Module20000Desc=Določitev in sledenje zahtevkov za dopustov zaposlenih
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot ali serijska številka, upravljana po datumu prevzema in datumu prodaje
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Prodajalne
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Prodajna mesta
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Računovodstvo (napredno)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=Tiskanje IPP
    -Module54000Desc=Direktno tiskanje (brez odpiranja dokumenta) z uporabo Cups IPP vmesnika (tiskalnik mora biti viden na strežniku in nameščen mora biti CUPS ).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Izberi, oceni ali glasuj
    -Module55000Desc=Modul za izdelavo online izbora, ocenjevanja ali glasovanja (kot Doodle, Studz, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Marže
     Module59000Desc=Modul za upravljanje z maržami
     Module60000Name=Provizije
     Module60000Desc=Modul za upravljanje s provizijami
    -Module62000Name=Mednarodni poslovni izraz
    -Module62000Desc=Mednarodnemu poslovnemu izrazu dodaj lastnost
    +Module62000Name=Mednarodni Poslovni Izrazi
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Viri
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Branje računov
    @@ -651,9 +661,9 @@ Permission32=Kreiranje/spreminjanje proizvodov
     Permission34=Brisanje proizvodov
     Permission36=Pregled/upravljanje skritih proizvodov
     Permission38=Izvoz proizvodov
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Brisanje projektov
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Branje intervencij
     Permission62=Kreiranje/spreminjanje intervencij
    @@ -686,7 +696,7 @@ Permission109=Brisanje pošiljk
     Permission111=Branje finančnih postavk
     Permission112=Kreiranje/spreminjanje/brisanje in primerjava transakcij
     Permission113=Nastavitve finančnih kontov (kreiranje, upravljanje kategorij)
    -Permission114=Pobotanje transkacij
    +Permission114=Reconcile transactions
     Permission115=Izvoz transakcij in računovodskih izkazov
     Permission116=Transfer med računi
     Permission117=Upravljanje pošiljanja čekov
    @@ -694,15 +704,15 @@ Permission121=Branje partnerjev, vezanih na uporabnika
     Permission122=Kreiranje/spreminjanje partnerjev, vezanih na uporabnika
     Permission125=Brisanje partnerjev, vezanih na uporabnika
     Permission126=Izvoz partnerjev
    -Permission141=Beri vse projekte in naloge (tudi zasebne, za katere jaz nisem kontaktna oseba)
    -Permission142=Ustvari/spremeni vse projekte in naloge (tudi zasebne, za katere jaz nisem kontaktna oseba)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Izbriši vse projekte in naloge (tudi zasebne, za katere jaz nisem kontaktna oseba)
     Permission146=Brisanje ponudnikov
     Permission147=Branje statistike
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Branje pogodb/naročnin
     Permission162=Kreiranje/spreminjanje pogodb/naročnin
     Permission163=Aktiviranje pogodbene storitve/naročnine
    @@ -725,7 +735,7 @@ Permission187=Zaključek naročil pri dobaviteljih
     Permission188=Preklic naročil pri dobaviteljih
     Permission192=Kreiranje vrstic
     Permission193=Preklic vrstic
    -Permission194=Branje vrstic pasovne širine
    +Permission194=Read the bandwidth lines
     Permission202=Kreiranje ADSL povezav
     Permission203=Naročanje povezovalnih naročil
     Permission204=Naročanje povezav
    @@ -750,12 +760,12 @@ Permission244=Ogled vsebine skritih kategorij
     Permission251=Branje ostalih uporabnikov ali skupin
     PermissionAdvanced251=Branje ostalih uporabnikov
     Permission252=Kreiranje/spreminjanje ostalih uporabnikov, skupin in dovoljenj
    -Permission253=Spreminjanje gesel ostalih uporabnikov
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Kreiranje/spreminjanje notranjih/zunanjih uporabnikov in dovoljenj
     Permission254=Brisanje ali onemogočenje ostalih uporabnikov
     Permission255=Kreiranje/spreminjanje lastnih uporabniških informacij
     Permission256=Spreminjanje lastnega gesla
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Branje CA
     Permission272=Branje računov
     Permission273=Izdaja računov
    @@ -765,7 +775,7 @@ Permission283=Brisanje kontaktov
     Permission286=Izvoz kontaktov
     Permission291=Branje tarif
     Permission292=Nastavitev dovoljenj za tarife
    -Permission293=Spreminjanje tarif kupcev
    +Permission293=Modify customers tariffs
     Permission300=Branje črtnih kod
     Permission301=Kreiranje/spreminjanje črtnih kod
     Permission302=Brisanje črtnih kod
    @@ -787,11 +797,9 @@ Permission401=Branje popustov
     Permission402=Kreiranje/spreminjanje popustov
     Permission403=Potrjevanje popustov
     Permission404=Brisanje popustov
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Izbris plač
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Izvoz plač
     Permission520=Branje posojil
     Permission522=Kreiranje/spreminjanje posojil
    @@ -844,8 +852,8 @@ Permission1251=Izvajanje masovnega izvoza zunanjih podatkov v bazo podatkov (nal
     Permission1321=Izvoz računov za kupce, atributov in plačil
     Permission1322=Reopen a paid bill
     Permission1421=Izvoz naročil kupcev in atributov
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Brisanje zahtevkov za dopust
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Nivo potenciala možne stranke
     DictionaryCanton=Dežela/Provinca
     DictionaryRegion=Regije
    @@ -894,7 +902,7 @@ DictionaryVAT=Stopnje DDV ali davkov
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Pogoji plačil
     DictionaryPaymentModes=Načini plačil
    -DictionaryTypeContact=Tipi kontaktov/naslovov
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ekološka taksa (WEEE)
     DictionaryPaperFormat=Formati papirja
    @@ -908,47 +916,47 @@ DictionarySource=Izvor ponudb/naročil
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Modeli kontnih planov
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Predloge za elektronsko pošto
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Enote
     DictionaryProspectStatus=Status možnih strank
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Status priložnosti za projekt/možnost
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Nastavitve shranjene
     SetupNotSaved=Setup not saved
     BackToModuleList=Nazaj na seznam modulov
    -BackToDictionaryList=Nazaj na seznam slovarjev
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=Upravljanje DDV
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=Privzeta predlagana stopnja DDV je 0, kar se lahko uporabi za primere kot so združenja, posamezniki ali majhna podjetja.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Stopnja
     LocalTax1IsNotUsed=Ne uporabi drugega davka
    -LocalTax1IsUsedDesc=Uporabi drugo vrsto davka (poleg DDV)
    -LocalTax1IsNotUsedDesc=Ne uporabi drugih vrst davka (poleg DDV)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Druga vrsta davka
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Ne uporabi tretjega davka
    -LocalTax2IsUsedDesc=Uporabi tretjo vrsto davka (poleg DDV)
    -LocalTax2IsNotUsedDesc=Ne uporabi drugih vrst davka (poleg DDV)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Tretja vrsta davka
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= RE obrestno mero za zamudne pri ustvarjanju možnosti, izdajanje računov, naročila itd sledijo aktivni standard pravilo: <br> Če se te kupec ne veljajo RE, RE privzeto = 0. Konec pravila. <br> Če je kupec opravi potem RE RE privzeto. Konec pravila. <br>
    -LocalTax1IsNotUsedDescES= Privzeto predlagani RE je 0. Konec pravila.
    -LocalTax1IsUsedExampleES= V Španiji so strokovnjaki, z nekaterimi posebnimi deli španskega IAE.
    -LocalTax1IsNotUsedExampleES= V Španiji so strokovno in družb in ob upoštevanju nekaterih odsekih španske IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= RE obrestno mero za zamudne pri ustvarjanju možnosti, izdajanje računov, naročila itd sledijo aktivni standard pravilo: <br> Če prodajalec ne veljajo IRPF, potem IRPF privzeto = 0. Konec pravila. <br> Če je prodajalec opravi IRPF nato IRPF privzeto. Konec pravila. <br>
    -LocalTax2IsNotUsedDescES= Privzeto predlagani IRPF je 0. Konec pravila.
    -LocalTax2IsUsedExampleES= V Španiji, samostojnimi in neodvisni strokovnjaki, ki opravljajo storitve in podjetja, ki so se odločili davčni sistem modulov.
    -LocalTax2IsNotUsedExampleES= V Španiji so poslovne niso predmet davčnega sistema modulov.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Privzeto predlagani RE je 0. Konec pravila.
    +LocalTax1IsUsedExampleES=V Španiji so strokovnjaki, z nekaterimi posebnimi deli španskega IAE.
    +LocalTax1IsNotUsedExampleES=V Španiji so strokovno in družb in ob upoštevanju nekaterih odsekih španske IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Privzeto predlagani IRPF je 0. Konec pravila.
    +LocalTax2IsUsedExampleES=V Španiji, samostojnimi in neodvisni strokovnjaki, ki opravljajo storitve in podjetja, ki so se odločili davčni sistem modulov.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Poročila o lokalnih davkih
     CalcLocaltax1=Prodaja - Nabava
     CalcLocaltax1Desc=Poročila o lokalnih davkih so izračunana kot razlika med nabavnimi in prodajnimi davki
    @@ -958,7 +966,9 @@ CalcLocaltax3=Prodaja
     CalcLocaltax3Desc=Poročila o lokalnih davkih so seštevek prodajnih davkov
     LabelUsedByDefault=Privzet naziv, če za kodo ne obstaja prevod
     LabelOnDocuments=Naslov na dokumentu
    -NbOfDays=Število dni
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Na koncu meseca
     CurrentNext=Current/Next
     Offset=Odmik
    @@ -984,7 +994,7 @@ DatabaseUser=Uporabnik baze podatkov
     DatabasePassword=Geslo za bazo podatkov
     Tables=Tabele
     TableName=Ime tabele
    -NbOfRecord=Število zapisov
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Tip gonilnika
     SummarySystem=Povzetek sistemskih informacij
    @@ -996,7 +1006,7 @@ Skin=Tema preobleke
     DefaultSkin=Privzeta tema preobleke
     MaxSizeList=Največja dolžina seznama
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Sporočilo dneva
     MessageLogin=Sporočilo na prijavni strani
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Stalno polje za iskanje na levem meniju
     DefaultLanguage=Privzet jezik uporabe (koda jezika)
     EnableMultilangInterface=Omogočen večjezični vmesnik
     EnableShowLogo=Prikaži logo na levem meniju
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Ime podjetja
     CompanyAddress=Naslov
     CompanyZip=Poštna številka
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Lastnik bančnega računa %s
     BankModuleNotActive=Modul za bančne račune ni omogočen
     ShowBugTrackLink=Prikaži povezavo "<strong>%s</strong>"
     Alerts=Opozorila
    -DelaysOfToleranceBeforeWarning=Toleranca zakasnitve pred opozorilom
    -DelaysOfToleranceDesc=Ta zaslon omogoča definicijo tolerance zakasnitve preden se opozorilo prikaže na zaslonu v obliki piktograma %s za vsak zakasnjen element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Toleranca zakasnitve (v dnevih) pred opozorilom na ponudbe, ki jih je treba zaključiti
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Toleranca zakasnitve (v dnevih) pred opozorilom na nefakturirane ponudbe
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Toleranca zakasnitve (v dnevih) pred opozorilom na storitve, ki jih je potrebno aktivirati
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Toleranca zakasnitve (v dnevih) pred opozorilom na potečeno storitev
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Toleranca zakasnitve (v dnevih) pred opozorilom na neplačane račune dobavitelju
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Toleranca zakasnitve (v dnevih) pred opozorilom na neplačane račune kupcev
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Toleranca zakasnitve (v dnevih) pred opozorilom na čakajočo uskladitev z banko
    -Delays_MAIN_DELAY_MEMBERS=Toleranca zakasnitve (v dnevih) pred opozorilom na zakasnitev plačila članarine
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Toleranca zakasnitve (v dnevih) pred opozorilom na potrebo po deponiranju čeka
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Ostale postavke na meniju so namenjene upravljanju opcijskih parametrov.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Dogodki v zvezi z nadzorovanjem varnosti
    -Audit=Nadzor
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Ime brskalnika
     BrowserOS=OS brskalnika
     ListOfSecurityEvents=Seznam varnostnih dogodkov Dolibarr
     SecurityEventsPurged=Varnostni dogodki očistimo
    -LogEventDesc=Tukaj lahko omogočite beleženje dnevnika Dolibarr varnostnih dogodkov. Administratorji lahko vidijo njegovo vsebino preko menija <b>Sistemska orodja - Nadzor</b>. Pozor, ta funkcija lahko uporabi veliko količino podatkov iz baze.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=Sistemske informacije so raznovrstne tehnične informacije, ki so na voljo samo v bralnem načinu in jih vidi samo administrator.
     SystemAreaForAdminOnly=To področje je na voljo samo administratorju. Nobeno od Dolibarr dovoljenj ne more spremeniti teh omejitev.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Tukaj lahko izberete parametre, ki določajo videz in vtis aplikacije Dolibarr
     AvailableModules=Available app/modules
     ToActivateModule=Za aktivacijo modula, pojdite na področje nastavitev (Domov->Nastavitve->Moduli).
     SessionTimeOut=Potečen čas seje
    -SessionExplanation=Ta številka zagotavlja, da seja nikoli ne bo potekla pred to zakasnitvijo. Vendar pa upravljanje PHP sej ne zagotavlja, da bo seja potekla po tej zakasnitvi: To se pojavi, če je zagnan sistem za čiščenje predpomnilnika sej.<br>Opomba: Brez posebej določenega sistema bo interni PHP proces pobrisal seje približno na vsakih <b>%s/%s</b> dostopov, vendar le, med dostopanjem drugih sej.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Možni prožilci
    -TriggersDesc=Prožilci so datoteke, ki spremenijo obnašanje aplikacije Dolibarr ko so skopirani v mapo <b>htdocs/includes/triggers</b>. Zaznajo nove aktivnosti, Ki so bile aktivirane z Dolibarr dogodki (kreiranje novega podjetja, potrjevanje računa, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Prožilci v tej datoteki so onemogočeni s predpono <b>-NORUN</b> v njihovem imenu.
     TriggerDisabledAsModuleDisabled=Prožilci v tej datoteki so onemogočeni, ker je onemogočen modul <b>%s</b> .
     TriggerAlwaysActive=Prožilci v tej datoteki so aktivni vedno, ne glede na aktiven Dolibarr module.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Nastavitve omejitev/natančnosti
    -LimitsDesc=Tukaj lahko definirate omejitve, natančnost in optimizacije, ki jih uporablja Dolibarr
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Največje število decimalk za ceno enote
     MAIN_MAX_DECIMALS_TOT=Največje število decimalk za končno ceno
     MAIN_MAX_DECIMALS_SHOWN=Največje število decimalk za ceno, ki so vidne na zaslonu (Dodajte <b>...</b> za to številko, če želite videti <b>...</b>, kadar je številka skrajšana za prikaz na zaslonu)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Stopnja zaokrožive (v državah, kjer se zaokrožuje drug
     UnitPriceOfProduct=Neto cena enote proizvoda
     TotalPriceAfterRounding=Skupna cena z davkom po zaokrožitvi
     ParameterActiveForNextInputOnly=Parameter bo veljal šele pri naslednjem vnosu.
    -NoEventOrNoAuditSetup=Do sedaj še ni bil zabeležen noben varnostno problematičen dogodek. To je lahko normalno, če ni vklopljen nadzor na strani "Nastavitve - Varnost - nadzor".
    -NoEventFoundWithCriteria=Noben varnostni dogodek ne obstaja glede na podane kriterije iskanja.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Glejte lokalne nastavitve za pošiljanje pošte
     BackupDesc=Za izdelavo celotne Dolibarr varnostne kopije (backup), morate:
     BackupDesc2=Shrani vsebino mape z dokumenti (<b>%s</b>), ki vsebuje vse naložene in generirane datoteke (torej vključuje vse odložene datoteke, generirane v koraku 1).
    -BackupDesc3=Shranite vsebino vaše baze podatkov (<b>%s</b>) v izpisno datoteko. Za izvedbo lahko sledite tem napotkom.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Arhivsko mapo morate shraniti na varno mesto.
     BackupDescY=Generirano dump datoteko morate shraniti na varno mesto.
    -BackupPHPWarning=Varnostno kopiranje s to metodo ni zagotovljeno. Raje uporabite prejšnjo
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Za obnovitev Dolibarr varnostne kopije, morate:
    -RestoreDesc2=Arhivsko datoteko mape z dokumenti (na primer zip datoteko) razpakirajte kot drevesno strukturo map in datotek v novo Dolibarr instalacijo ali v trenutno mapo z dokumenti (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Obnovite podatke iz arhivske dump datoteke v bazo podatkov nove Dolibarr instalacije ali v bazo podatkov trenutne instalacije (<b>%s</b>). Pozor, ko je obnova končana, morate za ponovno prijavo uporabiti uporabniško ime/geslo, kakršno je veljalo v trenutku izdelave varnostne kopije. Za obnovitev varnostne kopije baze v trenutno instalacijo, lahko sledite tem napotkom.
     RestoreMySQL=Uvoz MySQL
     ForcedToByAModule= To pravilo je postavljeno v <b>%s</b> z aktivnim modulom
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Ta ukaz morate pognati iz ukazn
     YourPHPDoesNotHaveSSLSupport=SSL funkcije niso na voljo v vašem PHP
     DownloadMoreSkins=Prenos dodatnih preoblek
     SimpleNumRefModelDesc=Prikaže referenčno številko v formatu %syymm-nnnn pri čemer je YY leto, mm mesec in nnnn je zaporedje brez presledkov in brez resetiranja
    -ShowProfIdInAddress=Prikaži profesionalni ID z naslovi na dokumentih
    -ShowVATIntaInAddress=Skrij interno DDV številko pri naslovu na dokumentu
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Delni prevod
    -MAIN_DISABLE_METEO=Onemogočen vremenski prikaz
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Testna prijava na API
    -ProxyDesc=Nekatere Dolibarr funkcije za svoje delovanje potrebujejo internetni dostop. Tu lahko definirate ustrezne parametre. Če je Dolibarr strežnik za Proxy strežnikom, ti parametri povedo, kako naj Dolibarr dostopa skozenj.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Zunanji dostop
     MAIN_PROXY_USE=Uporabi proxy strežnik (drugače je dostop do interneta direkten)
     MAIN_PROXY_HOST=Ime/naslov proxy strežnika
     MAIN_PROXY_PORT=Vrata proxy strežnika
     MAIN_PROXY_USER=Uporabniško ime za uporabo proxy strežnika
     MAIN_PROXY_PASS=Geslo za uporabo proxy strežnika
    -DefineHereComplementaryAttributes=Tukaj doloćite vse atribute, ki niso na voljo kot privzeti, vendar želite da so podprti za %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Koplementarni atributi
     ExtraFieldsLines=Koplementarni atributi (postavke)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Koplementarni atributi (vrstice naročila)
     ExtraFieldsSupplierInvoicesLines=Koplementarni atributi (vrstice računi)
     ExtraFieldsThirdParties=Koplementarni atributi (partner)
    -ExtraFieldsContacts=Koplementarni atributi (kontakt/naslov)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Koplementarni atributi (član)
     ExtraFieldsMemberType=Koplementarni atributi (tip člana)
     ExtraFieldsCustomerInvoices=Koplementarni atributi (računi)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=samo alfanumerični znaki in male črke brez pr
     SendmailOptionNotComplete=Pozor, na nekaterih Linux sistemih mora za pošiljanje pošte z vašega naslova nastavitev vsebovati opcijo -ba (parameter mail.force_extra_parameters v vaši datoteki php.ini). Če nekateri prejemniki nikoli ne dobijo pošte, poskusite popraviti PHP parameter z mail.force_extra_parameters = -ba).
     PathToDocuments=Pot do dokumentov
     PathDirectory=Mapa
    -SendmailOptionMayHurtBuggedMTA=Funkcija za pošiljanje pošte z uporabo metode "PHP mail DIRECT" bo ustvarila poštno sporočilo, ki ga morda nekateri poštni strežniki ne bodo pravilno razčlenili. Posledica tega je, da nekatere pošte ne bodo mogli brati uporabniki, ki gostujejo na takih platformah. To veljalo za nekaj internetnih ponudnikov (npr.: Orange v Franciji). Problem ni v Dolibarr niti v PHP, ampak v sprejemanju poštnega strežnika. Lahko pa v nastavitvah dodate opcijo MAIN_FIX_FOR_BUGGED_MTA kot 1. v setup, da bi se temu izognili brez modifikacije Dolibarr. Vendar pa lahko pride do težav z drugimi strežniki, ki strogo spoštujejo SMTP standard. Druga rešitev (priporočena) je uporaba metode "SMTP socket knjižnice", ki nima teh slabosti.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Omogočiti morate vsaj 1 modul
    -ClassNotFoundIntoPathWarning=Ratzred %s ni najedn na poti PHP
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Da poleti
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Shranjevanje seje kriptirano s Suhosin
     ConditionIsCurrently=Trenutni pogoj je %s
    -YouUseBestDriver=Uporabljate gonilnik %s , ki je najboljši trenutno na voljo
    -YouDoNotUseBestDriver=Uporabljate gonilnik %s, vendar je priporočen gonilnik %s.
    -NbOfProductIsLowerThanNoPb=V bazi je samo %s proizvodov/storitev. Zato ni potrebna posebna optimizacija.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Iskanje optimizacijo
    -YouHaveXProductUseSearchOptim=V baziiomate %s proizvodov. V meni Domov-Nastavitve-Ostalo morate dodati konstanto PRODUCT_DONOTSEARCH_ANYWHERE = 1 , s čimer omejite iskanje na začetek niza, kar omogoča bazi uporabo indeksov in s tem hitrejši odziv.
    -BrowserIsOK=Uporabljate spletni brskalnik %s. Ta brskalnik je ustrezen tako glede varnosti, kot glede zmogljivosti.
    -BrowserIsKO=Uporabljate spletni brskalnik %s. Ta brskalnik je slaba izbira glede varnosti, zmogljivosti in zanesljivosti. Priporočamo uporabo Firefox, Chrome, Opera ali Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=Naložen je XDebug
     XCacheInstalled=Naložen je XCache.
    -AddRefInList=Prikaz referenčnega seznama kupcev/dobaviteljev (izberite seznam ali combobox) in večine hiper povezav. Partnerji bodo prikazani z imenom "CC12345 - SC45678 - The big company coorp", namesto kot "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=%s premenjenih polj
     FillThisOnlyIfRequired=Primer: +2 (uporabite samo, če se pojavijo težave s časovno cono)
     GetBarCode=Pridobi črtno kodo
     ##### Module password generation
     PasswordGenerationStandard=Predlaga geslo, generirano glede na interni Dolibarr algoritem: 8 mest, ki vsebujejo različne številke in male črke.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=Za kreiranje novega uporabnika je zahtevan EMail naslov
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Modul za nastavitve podjetij
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Predloge dokumentov
    -DocumentModelOdt=Ustvari dokumente iz predlog OpenDocuments (.ODT ali .ODS datoteke v programih OpenOffice, KOffice, TextEdit ,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Vodni žig na osnutku dokumenta
     JSOnPaimentBill=Aktivacija funkcije za avtomatsko izpolnitev plačilnih vrstic na obrazcu za plačilo
    -CompanyIdProfChecker=Strokovno Id edinstven
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Izvozna povezava na <b>%s</b> format je na voljo na naslednji povezavi: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Izvozna povezava na <b>%s</b> format je na voljo na nasle
     BillsSetup=Nastavitve modula za račune
     BillsNumberingModule=Modul za številčenje računov in dobropisov
     BillsPDFModules=Modeli obrazcev računov
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Dobropis
     CreditNotes=Dobropisi
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Urejanje uporabniških imen za vse člane
     AdherentMailRequired=Za kreiranje novega člana je obvezen E-Mail
     MemberSendInformationByMailByDefault=Kontrolno polje za pošiljanje potrdil članom po pošti (potrditev ali nova naročnina) je privzeto označeno
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=Nastavitve LDAP
     LDAPGlobalParameters=Globalni parametri
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test LDAP iskanja
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Test sinhronizacije ni uspel. Preveri, če je povezava s strežnikom pravilno konfigurirana in dovoljuje LDAP posodobitve
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Povezava/avtentifikacija LDAP strežnika uspešna (Strežnik=%s, Vrata=%s, Admin=%s, Geslo=%s)
    -LDAPBindKO=Povezava/avtentifikacija z LDAP strežnikom ni uspela (Strežni=%s, Vrata=%s, Admin=%s, Geslo=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Firstname Name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Name
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated acces (for a write access for example)
     PerfDolibarr=Nastavitev zmogljivosti/optimizacija poročila
    -YouMayFindPerfAdviceHere=Na tej strani najdete nekaj kontrol ali nasvetov, povezanih z zmogljivostjo.
    -NotInstalled=Ni nameščeno, zato to ni vzrok počasnosti strežnika
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Aplikativni predpomnilnik
     MemcachedNotAvailable=Ni najden aplikativni predpomnilnik. Zmogljivost lahko izboljšate z namestitvijo predpomnilniškega strežnika Memcached in modula, ki zna uporabljati ta predpomnilniški strežnik.<br>Več informacij najdete tukaj <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Vedite, da veliko gostiteljev spletnih strani ne zagotavlja takega predpomnilniškega strežnika..
     MemcachedModuleAvailableButNotSetup=Najden je predpomnilniški modul za aplikativni predpomnilnik, vendar nastavitev modula ni zaključena.
     MemcachedAvailableAndSetup=Vklopljen je predpomnilniški modul za predpomnilniški strežnik.
     OPCodeCache=OPCode predpomnilnik
    -NoOPCodeCacheFound=Ni najden OPCode predpomnilnik. Morda uporabljate drugačen OPCode predpomnilnik, kot sta XCache ali eAccelerator (v redu), morda pa nimate OPCode predpomnilnika (zelo slabo).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP predpomnilnik za statične vire (css, img, javascript)
     FilesOfTypeCached=Datoteke tipa %s so shranjene v predpomnilniku HTTP strežnika
     FilesOfTypeNotCached=Datoteke tipa %s niso shranjene v predpomnilniku HTTP strežnika
     FilesOfTypeCompressed=Datoteke tipa %s so komprimirane v HTTP strežniku
     FilesOfTypeNotCompressed=Datoteke tipa %s niso komprimirane v HTTP strežniku
     CacheByServer=Predpomnilnik v strežniku
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Predpomnilnik v brskalniku
     CompressionOfResources=Kompresija HTTP odgovorov
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Taka avtomatska zaznava ni možna v trenutnem brskalniku
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Nastavitve modula za proizvode
     ServiceSetup=Storitve modul nastavitev
     ProductServiceSetup=Izdelki in storitve moduli za nastavitev
     NumberOfProductShowInSelect=Največje število proizvodov na kombiniranih seznamih(0=brez omejitev)
    -ViewProductDescInFormAbility=Ponazoritev opisa proizvoda na obrazcu (kot pojavni opis)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Aktivacija opcije za združevanje PDF dokumenta proizvoda in PDF ponudbe azur v zavihku priložene datoteke proizvod/storitev, če je proizvod/storitev v ponudbi
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Če je število proizvodov zelo veliko (> 100 000), lahko povečate hitrost z nastavitvijo konstante PRODUCT_DONOTSEARCH_ANYWHERE na vrednost 1 v Nastavitve->Ostale nastavitve. S tem bo iskanje omejeno na začetek niza.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Privzet tip črtne kode za proizvode
     SetDefaultBarcodeTypeThirdParties=Privzet tip črtne kode za partnerje
     UseUnits=Določi mersko enoto za količino pri urejanju vrstic naročila, ponudbe ali računa
    @@ -1503,7 +1517,7 @@ SendingsSetup=Nastavitev modula za pošiljanje
     SendingsReceiptModel=Obrazci odpremnic
     SendingsNumberingModules=Moduli za številčenje pošiljk
     SendingsAbility=Podpora poslanih dokumentov za dobavo kupcem
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Prosti tekst na pošiljkah
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Modul za številčenje dobavnic
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Napredni urejevalnik
     ActivateFCKeditor=Aktiviranje FCKeditor za:
     FCKeditorForCompany=WYSIWIG kreiranje/urejanje opisa podjetij in opomb
     FCKeditorForProduct=WYSIWIG kreiranje/urejanje opisa proizvodov/storitev in opomb
    -FCKeditorForProductDetails=WYSIWIG kreiranje/urejanje vrstic za podrobnosti za vse entitete (ponudbe, naročila, računi, itd...). <font class="warning">Opozorilo: Uporaba te opcije resnično ni priporočljiva, ker lahko povzroči težave s posebnimi znaki in formatiranjem strani PDF datotek.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG kreiranje/urejanje pošte
     FCKeditorForUserSignature=WYSIWIG kreiranje/urejanje podpisa uporabnika
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Povezava je uspela, vendar baza podatkov ne izgleda kot OSCommerce baza podatkov (Ključ %s ni bil najden v tabeli %s).
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
     OSCommerceTestOk=Povezava s strežnikom '%s' na bazo podatkov '%s' uporabnika '%s' je bila uspešna.
    -OSCommerceTestKo1=Povezava s strežnikom '%s' je bila uspešna, vendar baza podatkov '%s' ni dosegljiva.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Povezava s strežnikom '%s' uporabnika '%s' ni uspela.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=Če uporabljate prodajni modul (privzeti POS modul ali drug zunanji modul), bo vaš Point Of Sale modul morda ignoriral to nastavitev. Večina prodajnih modulov privzeto takoj ustvari račun in zmanjša zalogo ne glede na opcijo, ki je tukaj izbrana. Če torej želite ali ne želite zmanjšati zalogo ob prodaji preko prodajnega modula, preverite tudi nastavitve vašega prodajnega modula.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Izbrisan meni
     Menus=Meniji
    @@ -1548,7 +1562,7 @@ DetailRight=Pogoj za prikaz neavtoriziranih zatemnitev menija
     DetailLangs=Ime jezikovne datoteke za prevod nazivnih kot
     DetailUser=Interni / zunanji / vsi
     Target=Za
    -DetailTarget=Cilj za link (_prazen vrh odpre novo okno)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Nivo (-1:zgornji meni, 0:meni v glavi, >0 meni in podmeni)
     ModifMenu=Sprememba menija
     DeleteMenu=Izbris menijskega vnosa
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=DDV zapade:<br>- ob dobavi/plačilu blaga<br>- ob plačilu
     OptionVatDebitOptionDesc=DDV zapade:<br>- ob dobavi/plačilu blaga<br>- ob računu (zapadlosti) za storitev
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Privzeta zapadlost DDV glede na izbrano opcijo:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Ob dobavi
     OnPayment=Ob plačilu
     OnInvoice=Ob izdaji računa
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Računovodska koda nabave
     AgendaSetup=Nastavitev modula za aktivnosti in dnevni red
     PasswordTogetVCalExport=Ključ za avtorizacijo izvoznega linka
     PastDelayVCalExport=Ne izvažaj dogodekov, starejših od
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Avtomatsko nastavi ta tip aktivnosti v iskalni filter v pogledu dnevnega reda
    -AGENDA_DEFAULT_FILTER_STATUS=Avtomatsko nastavi ta status aktivnosti v iskalni filter v pogledu dnevnega reda
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Kateri zavihek naj se privzeto odpre ko izberete meni Dnevni red
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Nastavitve modula za klicanje s klikom
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Prodajalna
     CashDeskSetup=Nastavitev modula za prodajalno
    -CashDeskThirdPartyForSell=Privzet generični partner, ki se uporabi za prodajo
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Račun, ki se uporabi za prejem gotovinskih plačil
     CashDeskBankAccountForCheque= Račun, ki se uporabi za prejem plačil s čeki
     CashDeskBankAccountForCB= Račun, ki se uporabi za prejem plačil s kreditnimi karticami
    -CashDeskDoNotDecreaseStock=Onemogoči zmanjšanje zaloge pri prodaji preko POS (če označite "ne", se zaloga zmanjša za vsako prodajo iz POS, ne glede na nastavljeno opcijo v modulu Zaloge).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Prisilite ali blokirajte skladišče, uporabljeno za zmanjšanje zalog
    -StockDecreaseForPointOfSaleDisabled=Onemogočeno zmanjševanje zaloge s prodajnega mesta POS
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Zmanjšanje zaloge v POS ni kompatibilno z upravljanjem lotov
    -CashDeskYouDidNotDisableStockDecease=Niste omogočili zmanjšanje zaloge ob prodaji na prodajnem mestu POS. Potrebno je skladišče.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Nastavitev modula za zaznamke
    -BookmarkDesc=Ta modul omogoča upravljanje z zaznamki. Lahko tudi dodate bližnjice na katerokoli Dolibarr stran ali zunanjo web stran na vašem levem meniju.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Največje število zaznamkov za prikaz v levem meniju
     ##### WebServices #####
     WebServicesSetup=Nastavitev modula za spletne storitve
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Nastavitev modula za več podjetij
     ##### Suppliers #####
     SuppliersSetup=Nastavitev modula za dobavitelje
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Modeli številčenja računov dobaviteljev
     IfSetToYesDontForgetPermission=Če je nastavljeno na "da", ne pozabite zagotoviti dovoljenj skupinam ali uporabnikom za drugo odobritev
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Nastavitve modula za projekte
     ProjectsModelModule=Vzorec dokumenta poročila o projektih
     TasksNumberingModules=Moduli za številčenje nalog
     TaskModelModule=Modeli obrazcev poročil o nalogah
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Opcijo za EMail obvestila
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=Seznam fiksnih obvestil
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Prag
     BackupDumpWizard=Čarovnik za ustvarjanje datoteke z varnostnimi kopijami podatkovnih baz
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Instalacijo zunanjega modula iz aplika
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Osvetli vrstice tabele, preko katerih je šla miška
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Barva ozadja za sode vrstice tabele
     MinimumNoticePeriod=Minimalni rok za obvestilo (Vaš zahtevek za odsotnost mora biti podan pred tem rokom)
     NbAddedAutomatically=Število dodanih dni pri števcu uporabnikov (avtomatsko) vsak mesec
     EnterAnyCode=To polje vsebuje referenco identifikacijske vrstice. Vnesite poljubno vrednost, vendar brez posebnih znakov.
    -UnicodeCurrency=Med oklepaja vnesite seznam bitnih števil, ki določajo valutni simbol. Na primer: za $, vnesite [36] - za brazilski real R$ [82,36] - za €, vnesite [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Položaj vrstice v kombiniranih seznamih
     SellTaxRate=Stopnja prodajnega davka
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=Če prevoznik ponuja povezavo ali spletno stran za kontrolo statusa vaše pošiljke, lahko vstopite tukaj. Lahko uporabite kodo {TRACKID} v URL parametrih, tako da jo bo sistem nadomestil s sledilno številko, ki jo uporabnik vnese v kartico pošiljke.
    -OpportunityPercent=Ko kreirate priložnost, določite oceno vrednosti projekta/možnosti. Glede na status priložnosti lahko to vrednost pomnožite s to stopnjo za oceno globalne vrednosti vaših priložnosti. Vrednost je procent (med 0 in 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=Ta podatek v predlogi je namenjen kateremu elementu
     TypeOfTemplate=Vrsta predloge
    -TemplateIsVisibleByOwnerOnly=Predloga je vidna samo lastniku
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=Fiksiranje časovne cone
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/sl_SI/banks.lang b/htdocs/langs/sl_SI/banks.lang
    index be0ea397dfe..6dca963b12f 100644
    --- a/htdocs/langs/sl_SI/banks.lang
    +++ b/htdocs/langs/sl_SI/banks.lang
    @@ -7,7 +7,7 @@ BankName=Ime banke
     FinancialAccount=Račun
     BankAccount=Bančni račun
     BankAccounts=Bančni računi
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Prikaži račun
     AccountRef=Referenca finančnega računa
     AccountLabel=Naziv finančnega računa
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Naslov računa
     BankAccountCountry=Država računa
     BankAccountOwner=Ime lastnika računa
     BankAccountOwnerAddress=Naslov lastnika računa
    -RIBControlError=Napaka pri kontroli integritete vrednosti. To pomeni, da informacije za to številko računa niso popolne ali so napačne (preverite državo, številke in IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Kreiranje računa
     NewBankAccount=Nov konto
     NewFinancialAccount=Nov finančni račun
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Se lahko uskladi
     Conciliate=Uskladi
     Conciliation=Uskladitev
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Vključi zaprte račune
     OnlyOpenedAccount=Samo odprti računi
    @@ -104,7 +105,7 @@ SocialContributionPayment=Plačilo socialnega/fiskalnega davka
     BankTransfer=Bančni transfer
     BankTransfers=Bančni transferji
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Od
     TransferTo=Na
     TransferFromToDone=Zabeležen je bil transfer od <b>%s</b> na <b>%s</b> v znesku <b>%s</b> %s.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bančni čeki
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Prikaži prevzemnico čekovnih nakazil
    -NumberOfCheques=Število čekov
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Nazaj na račun
     ShowAllAccounts=Prikaži vse račune
    -FutureTransaction=Bodoča transakcija. Ni možna uskladitev.
    -SelectChequeTransactionAndGenerate=Izberi/filtriraj čeke za vključitev v prevzemnico čekovnih nakazil in klikni na "Ustvari"
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Izberi bančni izpisek, povezan s posredovanjem. Uporabi numerično vrednost, ki se lahko sortira: YYYYMM ali YYYYMMDD
     EventualyAddCategory=Eventuelno določi kategorijo, v katero se razvrsti zapis
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Datum vrnitve čeka
     CheckRejected=Vrnjen ček
     CheckRejectedAndInvoicesReopened=Vrnjen ček in ponovno odprti računi
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/sl_SI/bills.lang b/htdocs/langs/sl_SI/bills.lang
    index afdd38ab5c8..d693ecf16d3 100644
    --- a/htdocs/langs/sl_SI/bills.lang
    +++ b/htdocs/langs/sl_SI/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Predračun
     InvoiceProFormaDesc=<b>Predračun</b> izgleda enako kot račun, vendar nima računovodske vrednosti.
     InvoiceReplacement=Nadomestni račun
     InvoiceReplacementAsk=Nadomestni račun za račun
    -InvoiceReplacementDesc=<b>Nadomestni račun</b> se uporablja za preklic in popolno zamenjavo računa, ki še ni bil plačan.<br><br>Opomba: Zamenja se lahko samo račun, ki še ni bil plačan. Če račun, ki ga nadomeščate, še ni bil zaključen, se bo avtomatsko zaključil, da postane 'opuščen'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Dobropis
     InvoiceAvoirAsk=Dobropis za korekcijo računa
    -InvoiceAvoirDesc=<b>Dobropis</b> je negativni račun, ki se uporabi za rešitev problema, ko je znesek na računu drugačen od dejansko plačanega zneska (ker je kupec pomotoma plačal preveč, ali ne bo plačal v celoti, ker je na primer vrnil nekatere proizvode).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Ustvari dobropis z vrsticami iz originalnega računa
     invoiceAvoirWithPaymentRestAmount=Ustvari dobropis iz neplačanega preostanka osnovnega računa
     invoiceAvoirLineWithPaymentRestAmount=Dobropis za preostali neplačan znesek
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Vrnjeno plačilo
     DeletePayment=Brisanje plačila
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Plačila dobaviteljem
     ReceivedPayments=Prejeta plačila
     ReceivedCustomersPayments=Prejeta plačila od kupcev
    -PayedSuppliersPayments=Plačila, plačana dobaviteljem
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Prejeta plačila od kupcev za potrditev
     PaymentsReportsForYear=Poročilo o plačilih za %s
     PaymentsReports=Poročila o plačilih
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Pogoji plačil
     PaymentAmount=Znesek plačila
     ValidatePayment=Potrdi plačilo
     PaymentHigherThanReminderToPay=Plačilo višje od opomina
    -HelpPaymentHigherThanReminderToPay=Pozor, plačilo zneska enega ali več računov  je višje od preostanka za plačilo. <br> Popravite vaš vnos, ali potrdite znesek in pripravite dobropise za prekoračene zneske za vsak preveč plačan račun.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Označeno kot 'Plačano'
     ClassifyPaidPartially=Označeno kot 'Delno plačano'
     ClassifyCanceled=Označeno kot 'Opuščeno'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Zaključeno (neplačano)
     BillStatusClosedPaidPartially=Plačano (delno)
     BillShortStatusDraft=Osnutek
     BillShortStatusPaid=Plačano
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Plačan
     BillShortStatusCanceled=Opuščeno
     BillShortStatusValidated=Potrjeno
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Zaključeno
     BillShortStatusClosedPaidPartially=Plačano (delno)
     PaymentStatusToValidShort=Za potrditev
    -ErrorVATIntraNotConfigured=DDV številka še ni definirana
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Ni določen privzet način plačila. Pojdite na nastavitve modula za račune.
     ErrorCreateBankAccount=Kreirajte bančni račun, zatem pojdite na področje Nastavitve za definiranje načina plačila
     ErrorBillNotFound=Račun s številko %s ne obstaja
    -ErrorInvoiceAlreadyReplaced=Napaka, poskusili ste potrditi račun za zamenjavo računa %s. Vendar je ta že bil nadomeščen z računom %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Napaka, popust je bil že uporabljen
     ErrorInvoiceAvoirMustBeNegative=Napaka, na popravljenem računu mora biti negativni znesek
     ErrorInvoiceOfThisTypeMustBePositive=Napaka, ta tip računa mora imeti pozitiven znesek
     ErrorCantCancelIfReplacementInvoiceNotValidated=Napaka, ne morete preklicati računa, ki je bil zamenjan z drugim računom, ki je še v statusu osnutka
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Izdajatelj
     BillTo=Prejemnik
     ActionsOnBill=Aktivnosti na računu
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Neplačan preostanek <b>(%s %s)</b> je popust zaradi predčasnega plačila. DDV je bil popravljen z dobropisom.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Neplačan preostanek <b>(%s %s)</b> je popust zaradi predčasnega plačila. Strinjam se z izgubo DDV zaradi tega popusta.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Neplačan preostanek <b>(%s %s)</b> je popust zaradi predčasnega plačila. DDV na ta popust bo vrnjen brez dobropisa.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Slab kupec
     ConfirmClassifyPaidPartiallyReasonProductReturned=Delno vračilo proizvodov
     ConfirmClassifyPaidPartiallyReasonOther=Znesek opuščen zaradi drugih razlogov
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Ta izbira je možna, če so na računu ustrezni komentarji. (Primer »Samo davek, ki ustreza dejansko plačani ceni, omogoča možnost odbitka«)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=V nekaterih državah lahko to izberete samo, če račun vsebuje popravek.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=To izbiro uporabite, če so druge neustrezne
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Slab kupec</b> je tisti, ki ne plačuje svojih obveznosti.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ta izbira se uporabi, če plačilo ni bilo kompletno zaradi vračila nekaterih proizvodov
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=To izbiro uporabite, če nobena druga ne ustreza, na primer v naslednji situaciji:<br>- plačilo ni izvršeno v celoti, ker so bili nekateri proizvodi vrnjeni<br>- znesek je bil reklamiran, ker ni bil obračunan popust<br>V vseh primerih mora biti reklamiran znesek popravljen v računovodskem sistemu s kreiranjem dobropisa.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Ostalo
     ConfirmClassifyAbandonReasonOtherDesc=Ta izbira se uporabi v vseh drugih primerih. Na primer, ker planirate izdelavo nadomestnega računa.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Potrdi račun
     UnvalidateBill=Unvalidate račun
    -NumberOfBills=Število računov
    -NumberOfBillsByMonth=Število računov po mesecih
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Znesek račuov
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Znesek računov po mesecih (brez DDV)
     ShowSocialContribution=Prikaži socialni/fiskalni davek
     ShowBill=Prikaži račun
    @@ -260,9 +262,9 @@ Repeatables=Predloge
     ChangeIntoRepeatableInvoice=Pretvori v predlogo računa
     CreateRepeatableInvoice=Ustvari predlogo računa
     CreateFromRepeatableInvoice=Ustvari iz predloge računa
    -CustomersInvoicesAndInvoiceLines=Računi za kupce in vrstice v računih
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Računi za kupce in plačila
    -ExportDataset_invoice_1=Seznam računov za kupce in vrstic v računih
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Računi za kupce in plačila
     ProformaBill=Predračun:
     Reduction=Znižanje
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Naslov za račun
    -HelpEscompte=Ta popust je bil kupcu odobren zaradi plačila pred rokom zapadlosti.
    -HelpAbandonBadCustomer=Ta znesek je bil opuščen (Kupec je označen kot 'slab kupec') in se obravnava kot potencialna izguba.
    -HelpAbandonOther=Ta znesek je bil opuščen, ker je prišlo do napake (na primer napačen kupec ali račun, zamenjan z drugim)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=ID za socialni/fiskalni davek
     PaymentId=ID plačila
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Noben račun ni izbran
     CloneInvoice=Kloniraj račun
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Aktivnost onemogočena, ker je bil račun zamenjan
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Število plačil
    +DescTaxAndDividendsArea=To področje predstavlja vsoto vseh plačil posebnih stroškov. Vključeni so le zapisi s plačili v določenem letu.
    +NbOfPayments=No. of payments
     SplitDiscount=Razdeli popust na dva
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Vnesi znesek za vsakega od obeh delov :
    -TotalOfTwoDiscountMustEqualsOriginal=Vsota obeh novih popustov mora biti enaka originalnemu znesku popustov.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Podobni račun
     RelatedBills=Povezani računi
     RelatedCustomerInvoices=Povezani računi za kupca
     RelatedSupplierInvoices=Povezani računi dobavitelja
     LatestRelatedBill=Zadnji povezan račun
    -WarningBillExist=Pozor, obstaja že en ali več računov
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Orodje za spajanje PDF
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Ček
     PaymentTypeShortCHQ=Ček
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=Elektronsko plačilo
    -PaymentTypeShortVAD=Elektronsko plačilo
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Osnutek
     PaymentTypeFAC=Faktor
     PaymentTypeShortFAC=Faktor
     BankDetails=Podatki o banki
     BankCode=Koda banke
    -DeskCode=Koda blagajne
    +DeskCode=Office code
     BankAccountNumber=Koda računa
    -BankAccountNumberKey=Ključ
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN številka
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT številka
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Plačilo z nakazilom na naslednji bančni ra
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=Blago ostane last prodajalca
    -LawApplicationPart3=do poplačila njegove celotne
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=vrednosti.
     LimitedLiabilityCompanyCapital=d.o.o. s kapitalom
     UseLine=Uporabi
    @@ -463,7 +465,7 @@ Cheques=Čeki
     DepositId=ID depozita
     NbCheque=Število čekov
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Za pošiljanje računov uporabi naslov kontakta za račune pri kupcu namesto naslova partnerja
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Prikaži vse neplačane račune
     ShowUnpaidLateOnly=Prikaži samo zapadle neplačane račune
     PaymentInvoiceRef=Račun za plačilo %s
    @@ -474,21 +476,22 @@ Reported=Odlog
     DisabledBecausePayments=Ni možno zaradi nekaterih odprtih plačil
     CantRemovePaymentWithOneInvoicePaid=Brisanje plačila ni možno, ker je vsaj en račun označen kot plačan
     ExpectedToPay=Pričakovano plačilo
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Plačano s tem plačilom
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Označi s "Plačano" vse dobropise, ki so bili v celoti vrnjeni.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Vsi računi, ki nimajo neplačanih preostankov, bodo avtomatsko zaključeni v status "Plačano".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Plačati
     ToMakePaymentBack=Vrniti plačilo
     ListOfYourUnpaidInvoices=Seznam neplačanih računov
     NoteListOfYourUnpaidInvoices=Opomba: Ta seznam vsebuje samo račune za partnerje, ki so povezani z referentom.
     RevenueStamp=Žig prihodka
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Predloga računa Crabe. Predloga kompletnega računa (Podpora DDV opcije, popusti, pogoji plačila, logo, itd...)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Predlaga številko v formatu %syymm-nnnn za standardne račune in %syymm-nnnn za dobropise kjer je yy leto, mm mesec in nnnn zaporedna številka brez presledkov in večja od 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/sl_SI/cashdesk.lang b/htdocs/langs/sl_SI/cashdesk.lang
    index f2080a4f20f..48ecc51faa4 100644
    --- a/htdocs/langs/sl_SI/cashdesk.lang
    +++ b/htdocs/langs/sl_SI/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Prikaži podjetje
     ShowStock=Prikaži skladišče
     DeleteArticle=Kliknite za izbris tega artikla
     FilterRefOrLabelOrBC=Iskanje (Referenca/Naziv)
    -UserNeedPermissionToEditStockToUsePos=Zahtevali ste zmanjšanje zaloge ob izdaji računa, torej mora imeti uporabnik POS-a dovoljenje za popravljanje zaloge
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr tiskalnik računov
    +PointOfSale=Prodajna mesta
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/sl_SI/commercial.lang b/htdocs/langs/sl_SI/commercial.lang
    index 4451550a05f..cc04da343da 100644
    --- a/htdocs/langs/sl_SI/commercial.lang
    +++ b/htdocs/langs/sl_SI/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefonski klic
     ActionAC_FAX=Poslati faks
     ActionAC_PROP=Poslati ponudbo
     ActionAC_EMAIL=Poslati e-mail
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Sestanek
     ActionAC_INT=Intervencija na lokaciji
     ActionAC_FAC=Poslati račun kupcu po pošti
    @@ -72,8 +73,8 @@ StatusProsp=Status možne stranke
     DraftPropals=Osnutek komercialne ponudbe
     NoLimit=Brez omejitev
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/sl_SI/companies.lang b/htdocs/langs/sl_SI/companies.lang
    index a8670fb6d16..5cab879e6fa 100644
    --- a/htdocs/langs/sl_SI/companies.lang
    +++ b/htdocs/langs/sl_SI/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Izberite partnerja
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Izbrišite kontakt
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=Nov partner
    -MenuNewCustomer=Nov kupec
    -MenuNewProspect=Nova možna stranka
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Nov posameznik
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Ustvari partnerja
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Kontakt pri partnerju
     Company=Podjetje
     CompanyName=Ime podjetja
     AliasNames=Drugo ime (komercialno, blagovna znamka, ...)
    -AliasNameShort=Drugo ime
    +AliasNameShort=Alias Name
     Companies=Podjetja
    -CountryIsInEEC=Država je članica Evropske Unije
    -ThirdPartyName=Ime partnerja
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Partnerji
    -ThirdParties=Partnerji
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Možne stranke
     ThirdPartyProspectsStats=Možne stranke
     ThirdPartyCustomers=Kupci
     ThirdPartyCustomersStats=Kupci
     ThirdPartyCustomersWithIdProf12=Kupci z %s ali %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Vrsta partnerja
    +ThirdPartyType=Type of company
     Individual=Posameznik
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Lastniško podjetje
     Subsidiaries=Podružnice
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Poštna številka
     Town=Mesto
     Web=Spletna stran
     Poste= Položaj
    -DefaultLang=Privzet jezik
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Ponudbe
    @@ -258,7 +258,7 @@ ProfId1DZ==
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Ime zavezanca veljavno
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Temu kupcu pripada popust v višini <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Ta kupec nima odobrenega relativnega popusta
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Ta kupec ima dobropis ali depozit v višini <b>%s %s</b>
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Brez popusta
    -Supplier=Dobavitelj
    +Supplier=Vendor
     AddContact=Ustvari kntakt
     AddContactAddress=Ustvari naslov
     EditContact=Uredi osebo / naslov
    @@ -303,22 +303,22 @@ AddThirdParty=Ustvari partnerja
     DeleteACompany=Izbriši podjetje
     PersonalInformations=Osebni podatki
     AccountancyCode=Računovodstvo račun
    -CustomerCode=Koda kupca
    -SupplierCode=Vendor code
    -CustomerCodeShort=Koda kupca
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Edinstvena koda kupca
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Obvezno, če je partner kupec ali možna stranka
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Kontrola veljavnosti z modulom
    -ThisIsModuleRules=To so pravila za ta modul
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Možna stranka v kontakt
     CompanyDeleted=Podjetje "%s" izbrisano iz baze.
     ListOfContacts=Seznam kontaktov
    -ListOfContactsAddresses=Seznam kontaktov/naslovov
    -ListOfThirdParties=Seznam partnerjev
    -ShowCompany=Show third party
    +ListOfContactsAddresses=Seznam kontaktov
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Pokaži kontakt
     ContactsAllShort=Vsi (brez filtra)
     ContactType=Vrsta kontakta
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Ta kontakt ni pravi za komercialne ponudbe
     NoContactForAnyContract=Ta kontakt ni pravi za pogodbe
     NoContactForAnyInvoice=Ta kontakt ni pravi za račune
     NewContact=Nov kontakt
    -NewContactAddress=Nov kontakt/naslov
    +NewContactAddress=New Contact/Address
     MyContacts=Moji kontakti
     Capital=Kapital
     CapitalOf=Kapital %s
     EditCompany=Uredi podjetje
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Kontrola
    -VATIntraCheckDesc=Povezava <b>%s</b> omogoča poizvedbo v evropskem sistemu za kontrolo DDV številk. Za delovanje te storitve mora imeti strežnik zunanji internetni dostop.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Kontrola davčne številke na strani Evropske komisije
    -VATIntraManualCheck=Preverite lahko tudi ročno na Evropski internetni strani <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Kontrola ni možna. Država članica ne zagotavlja storitve poizvedbe (%s).
    -NorProspectNorCustomer=Niti možna stranka, niti kupec
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Osebje
     ProspectLevelShort=Potencial
     ProspectLevel=Potencial možne stranke
    @@ -387,12 +387,12 @@ ExportCardToFormat=Izvoz podatkov v formatu
     ContactNotLinkedToCompany=Kontakt ni povezan z nobenim partnerjem
     DolibarrLogin=Uporabniško ime za Dolibarr
     NoDolibarrAccess=Nima dostopa v Dolibarr
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Kontakti in lastništvo
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Cenovni nivo
     DeliveryAddress=Naslov za dostavo
     AddAddress=Dodaj naslov
    @@ -402,16 +402,16 @@ DeleteFile=Izbriši datoteko
     ConfirmDeleteFile=Ali zares želite izbrisati to datoteko?
     AllocateCommercial=Assigned to sales representative
     Organization=Organizacija
    -FiscalYearInformation=Informacije o fiskalnem letu
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Začetni mesec fiskalnega leta
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Seznam možnih strank
    -ListCustomersShort=Seznam kupcev
    -ThirdPartiesArea=Področje partnerjev in kontaktov
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Skupno število partnerjev
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Odprt
     ActivityCeased=Neaktiven
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Trenutni neplačan račun
     OutstandingBill=Max. za neplačan račun
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Koda kupca / dobavitelja po želji. Lahko jo kadarkoli spremenite.
     ManagingDirectors=Ime direktorja(ev) (CEO, direktor, predsednik...)
     MergeOriginThirdparty=Podvojen partner (partner, ki ga želite zbrisati)
     MergeThirdparties=Združi partnerje
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/sl_SI/dict.lang b/htdocs/langs/sl_SI/dict.lang
    index 33052989974..3c6dda29515 100644
    --- a/htdocs/langs/sl_SI/dict.lang
    +++ b/htdocs/langs/sl_SI/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Vatikan
     CountryHN=Honduras
     CountryHK=Hongkong
    -CountryIS=Islandija
    +CountryIS=Iceland
     CountryIN=Indija
     CountryID=Indonezija
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Severna Koreja
     CountryKR=Južna Koreja
     CountryKW=Kuvajt
    -CountryKG=Kirgizija
    +CountryKG=Kyrgyzstan
     CountryLA=Laos
     CountryLV=Latvija
     CountryLB=Libanon
    @@ -160,7 +160,7 @@ CountryMD=Moldavija
     CountryMN=Mongolija
     CountryMS=Monserat
     CountryMZ=Mozambik
    -CountryMM=Burma (Mjanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibija
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad in Tobago
     CountryTR=Turčija
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukrajina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauricijske rupije
     CurrencySingMUR=Mauricijska rupija
     CurrencyNOK=Norveške krone
    -CurrencySingNOK=Norveška krona
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunizijski dinarji
     CurrencySingTND=Tunizijski dinar
     CurrencyUSD=Ameriški Dolarji
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Ustno
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Zaposleni
     DemandReasonTypeSRC_SPONSORING=Sponzorstvo
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/sl_SI/ecm.lang b/htdocs/langs/sl_SI/ecm.lang
    index 441aefe22c2..2ee8b31c951 100644
    --- a/htdocs/langs/sl_SI/ecm.lang
    +++ b/htdocs/langs/sl_SI/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Število dokumentov v mapi
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Mapa
     ECMSectionManual=Ročna mapa
     ECMSectionAuto=Avtomatska mapa
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Dokumenti, povezani s projekti
     ECMDocsByUsers=Dokumenti, povezani z uporabniki
     ECMDocsByInterventions=Dokumenti, povezani z intervencijami
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Ni kreiranih map
     ShowECMSection=Prikaži mapo
     DeleteSection=Odstrani mapo
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/sl_SI/errors.lang b/htdocs/langs/sl_SI/errors.lang
    index 106c288072c..b85473cc078 100644
    --- a/htdocs/langs/sl_SI/errors.lang
    +++ b/htdocs/langs/sl_SI/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Vrednost '%s &quot;je napačen zapis datuma
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Napaka pri pisanju v mapo %s
     ErrorFoundBadEmailInFile=Napačna email sintaksa v vrstici %s v datoteki (naprimer vrstica %s z emailom=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Nekatera zahtevana polja niso izpolnjena.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Kreiranje mape ni uspelo. Preverite, če ima uporabnik internetne strani dovoljenje za pisanje v mapo z Dolibarr dokumenti. Če je parameter <b>safe_mode</b> v tem PHP omogočen, preverite če je lastnik Dolibarr php datotek uporabnik web strežnika (ali skupina).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Polje <b>%s</b> ne sme vsebovati posebnih znakov.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Ni aktiviran računovodski modul
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP združevanje ni popolno.
     ErrorLDAPMakeManualTest=Datoteka .ldif je bila ustvarjena v mapi %s. Poskusite jo naložiti ročno preko ukazne vrstice, da bi dobili več podatkov o napaki.
    -ErrorCantSaveADoneUserWithZeroPercentage=Ni možno shraniti aktivnosti "statut not started" če je tudi polje "done by" izpolnjeno.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Referenca, uporabljena za kreiranje, že obstaja.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript ne sme biti izklopljen, če želite da ta funkcija deluje. Javascript vklopite/izklopite v meniju Domov->Nastavitve->Prikaz.
     ErrorPasswordsMustMatch=Obe vneseni gesli se morata ujemati
    -ErrorContactEMail=Prišlo je do tehnične napake. Prosimo, obrnite se na administratorja na naslednji Email <b>%s</b> in mu sporočite kodo napake <b>%s</b>, Še bolje pa je, če priložite kopijo strani z napako.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Napačna vrednost v polju številka <b>%s</b> (vrednost '<b>%s</b>' ne ustreza pravilu <b>%s</b>)
     ErrorFieldValueNotIn=Napačna vrednost v polju številka<b>%s</b> (vrednost '<b>%s</b>' ni vrednost, ki je na voljo v polju <b>%s</b> tabele <b>%s</b>)
     ErrorFieldRefNotIn=Napačna vrednost za <b>%s</b> številka polja (Vrednost <b>'%s</b> &quot;ni <b>%s</b> obstoječe ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Antivirusni program ni mogel potrditi datoteke (da
     ErrorSpecialCharNotAllowedForField=Posebni znaki niso dovoljeni v polju "%s"
     ErrorNumRefModel=V bazi podatkov obstaja referenca (%s), ki ni kompatibilna s tem pravilom za številčenje. Odstranite zapis ali preimenujte referenco za aktivacijo tega modula.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Napaka na maski
     ErrorBadMaskFailedToLocatePosOfSequence=Napaka, maska je brez zaporedne številke
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Napaka, napačna resetirana vrednost
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Napaka. Izberite vsaj en vnos.
    -ErrorDeleteNotPossibleLineIsConsolidated=Brisanje ni možno, ker je zapis vezan na posredovano bančno transakcijo
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s je dodeljen v drugo tretjo
     ErrorFailedToSendPassword=Ni bilo mogoče poslati gesla
     ErrorFailedToLoadRSSFile=Ne Knjiga. Poskusite dodati stalno MAIN_SIMPLEXMLLOAD_DEBUG sporočila o napakah, če ne zagotavlja dovolj informacij.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Uporabnik s prijavo <b>%s</b> ni bilo mogoče najti.
     ErrorLoginHasNoEmail=Ta uporabnik nima e-poštni naslov. Obdelati prekinjena.
     ErrorBadValueForCode=Slaba vrednost za varnostno kodo. Poskusite znova z novo vrednost ...
     ErrorBothFieldCantBeNegative=Polja %s in %s ne more biti tako negativna
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Uporabniški račun <b>%s</b> uporablja za izvedbo spletni strežnik nima dovoljenja za to
     ErrorNoActivatedBarcode=Noben tip črtne kode ni aktiviran
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Zaznamek s tem imenom ali tem ciljem (URL) že obst
     WarningPassIsEmpty=Pozor, geslo za bazo podatkov je prazno. To lahko pomeni varnostno luknjo. Zato morate dodati geslo v vašo bazo podatkov in spremeniti datoteko conf.php.
     WarningConfFileMustBeReadOnly=Pozor, vašo konfiguracijsko datoteko (<b>htdocs/conf/conf.php</b>) lahko prepiše web strežnik. To je resna varnostna luknja. Spremenite dovoljenja datoteke, da bo za uporabnika web strežnika možno samo branje. Če uporabljate Windows in FAT format diska, morate vedeti, da ta datotečni sistem ne omogoča dodajanja dovoljenj datotekam, zato ne more biti povsem varen.
     WarningsOnXLines=Opozorilo na <b>%s</b> vrstice izvorne kode
    -WarningNoDocumentModelActivated=Noben model za ustvarjanje dokumentov ni aktiviran. Dokler ne preverite nastavitve modula, bo uporabljen privzet model.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=Vsi varnostni opozorila (vidna le uporabniki admin) ostane aktiven, dokler je prisotna ranljivost (ali stalno MAIN_REMOVE_INSTALL_WARNING se doda v Setup-> druge nastavitve).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/sl_SI/help.lang b/htdocs/langs/sl_SI/help.lang
    index 795d31a8ed4..2a512534f2c 100644
    --- a/htdocs/langs/sl_SI/help.lang
    +++ b/htdocs/langs/sl_SI/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Direktna Online podpora na daljavo v realnem času
     OtherSupport=Ostale podpore
     ToSeeListOfAvailableRessources=Za kontakt/ogled virov, ki so na voljo:
     HelpCenter=Center za pomoč
    -DolibarrHelpCenter=Dolibarr center za pomoč in podporo
    -ToGoBackToDolibarr=Sicer kliknite <a href="%s">tukaj za vstop v Dolibarr</a>
    -TypeOfSupport=Vir za podporo
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Skupnost (brezplačno)
     TypeSupportCommercial=Komercialni
     TypeOfHelp=Tip
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Učinkovitost
     TypeHelpOnly=Samo pomoč
     TypeHelpDev=Pomoč+razvoj
    -TypeHelpDevForm=Pomoč+razvoj+oblikovanje
    -ToGetHelpGoOnSparkAngels1=Nekatera podjetja lahko zagotovijo hitro (včasih takojšnjo) in učinkovitejšo online podporo z direktnim dostopom do vašega računalnika. Take pomočnike lahko najdete na <b>%s</b> spletni strani:
    -ToGetHelpGoOnSparkAngels3=Lahko si ogledate tudi seznam vseh Dolibarr inštruktorjev, ki so na voljo; kliknite na gumb
    -ToGetHelpGoOnSparkAngels2=Včasih v trenutku vašega iskanja ni na voljo nobenega podjetja, zato lahko spremenite filter na "all availability". Tako boste lahko poslali več zahtevkov.
    -BackToHelpCenter=Sicer kliknite <a href="%s">tukaj za prehod nazaj na domačo stran za pomoč</a>.
    -LinkToGoldMember=Lahko pokličete enega of inštruktorjev, ki jih je Dolibarr izbral vnaprej za vaš jezik (%s) s kliko na ustrezno ikono (status in maksimalna cena se posodobita avtomatsko):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Podprti jeziki
    -SubscribeToFoundation=POmagajte projektu Dolibarr z včlanitvijo v združenje
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Za uradno Dolibarr podporo v vašem jeziku: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/sl_SI/holiday.lang b/htdocs/langs/sl_SI/holiday.lang
    index ad7f4d8208d..e5a183da459 100644
    --- a/htdocs/langs/sl_SI/holiday.lang
    +++ b/htdocs/langs/sl_SI/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Dopusti
    -CPTitreMenu=Dopusti
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Mesečno stanje
     MenuAddCP=Nov zahtevek za dopust
    -NotActiveModCP=Za ogled te strani morate aktivirati modul za dopust
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Izdelaj zahtevek za dopust
     DateDebCP=Začetni datum
     DateFinCP=Končni datum
    @@ -15,13 +15,18 @@ ApprovedCP=Odobreno
     CancelCP=Preklicano
     RefuseCP=Zavrnjeno
     ValidatorCP=Odobril
    -ListeCP=Seznam dopustov
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Opis
     SendRequestCP=Ustvari zahtevek za dopust
     DelayToRequestCP=Zahtevek za dopust mora biti vložen vsaj <b>%s dan(dni)</b> prej.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Stanje dopusta je <b>%s</b> dni.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Končni datum mora biti večji od začetnega.
     ErrorSQLCreateCP=Pri ustvarjanju SQL je prišlo do napake
     ErrorIDFicheCP=Prišlo je do napake, zahtevek za dopust ne obstaja
    @@ -30,7 +35,14 @@ ErrorUserViewCP=Nimate dovoljenja za branje tega zahtevka za dopust
     InfosWorkflowCP=Pretok informacij
     RequestByCP=Zahteval
     TitreRequestCP=Zahtevek za dopust
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Število porabljenih dni dopusta
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Uredi
     DeleteCP=Izbriši
     ActionRefuseCP=Zavrnitev
    @@ -59,6 +71,7 @@ DateRefusCP=Datum zavrnitve
     DateCancelCP=Datum preklica
     DefineEventUserCP=Dodeli izredno odsotnost uporabniku
     addEventToUserCP=Dodeli odsotnost
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Razlog
     UserCP=Uporabnik
     ErrorAddEventToUserCP=Prišlo je do napake pri dodajanju izredne odsotnosti.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Uspešno posodobljeno.
     Module27130Name= Upravljanje zahtevkov za dopust
     Module27130Desc= Upravljanje zahtevkov za dopust
    @@ -94,7 +112,7 @@ NoticePeriod=Čas za odobritev
     HolidaysToValidate=Potrdi zahtevke za dopust
     HolidaysToValidateBody=Spodaj je zahtevek za potrditev dopustov
     HolidaysToValidateDelay=Ta zahtevek za dopust se bo izvedel v obdobju manj kot %s dni.
    -HolidaysToValidateAlertSolde=Uporabnik, ki je vložil ta zahtevek za dopust, nima na voljo dovolj dni dopusta.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Potrjeni zahtevki za dopust
     HolidaysValidatedBody=Vaš zahtevek za dopust od %s do %s je bil potrjen.
     HolidaysRefused=Zahtevek je bil zavrnjen
    @@ -103,4 +121,9 @@ HolidaysCanceled=Preklican zahtevek za dopust
     HolidaysCanceledBody=Vaš zahtevek za dopust od %s do %s je bil preklican.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Pojdite na <strong>Domov - Nastavitve- Slovarji- Vrste odsotnosti</strong> zanastavitve različnih vrst odsotnosti.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/sl_SI/install.lang b/htdocs/langs/sl_SI/install.lang
    index b56ccd76359..d8b5411fe2d 100644
    --- a/htdocs/langs/sl_SI/install.lang
    +++ b/htdocs/langs/sl_SI/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Sledite navodilom korak za korakom.
     MiscellaneousChecks=Kontrola pogojev
     ConfFileExists=Konfiguracijska datoteka <b>%s</b> že obstaja.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Konfiguracijska datoteka <b>%s</b> Ne obstaja in je ni mogoče kreirati !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Konfiguracijska datoteka <b>%s</b> se lahko kreira.
    -ConfFileIsNotWritable=V konfiguracijsko datoteko <b>%s</b> ni možno zapisovanje. Preverite dovoljenja. Pri prvi instalaciji mora vaš strežnik dovoljevati možnost zapisovanja v to datoteko med postopkom konfiguracije(na primer "chmod 666" na Unix in podobnih OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=V konfiguracijsko datoteka <b>%s</b> je možno zapisovanje.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Ponovno naložite vse informacije iz konfiguracijske datoteke.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Ta PHP podpira seje.
     PHPSupportPOSTGETOk=Ta PHP podpira spremenljivke POST in GET.
    -PHPSupportPOSTGETKo=Morda vaše PHP nastavitve ne podpirajo spremenljivk POST in/ali GET. Preverite parameter <b>variables_order</b> v datoteki php.ini.
    -PHPSupportGD=Ta PHP podpira GD grafične funkcije.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=Ta PHP podpira UTF8 funkcije.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Maksimalni spomin za sejo vašega PHP je nastavljen na <b>%s</b>. To bi moralo zadoščati.
    -PHPMemoryTooLow=Maksimalni spomin za sejo vašega PHP je nastavljen na <b>%s</b> bytov. To je morda premalo. Spremenite datoteko <b>php.ini</b> in nastavite parameter <b>memory_limit</b> najmanj na <b>%s</b> bytov.
    -Recheck=Kliknite tukaj za pomembnejše teste
    -ErrorPHPDoesNotSupportSessions=Vaša PHP instalacija ne podpira sej. Ta funkcija je zahtevana za delovanje Dolibarr. Preverite vaše PHP nastavitve.
    -ErrorPHPDoesNotSupportGD=Vaša PHP instalacija ne podpira grafične funkcije GD. Grafi ne bodo na voljo.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Vaša PHP instalacija ne podpira funkcij UTF8. Dolibarr zato ne bo mogel pravilno delovati. Zadevo rešite pred namestitvijo Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Mapa %s ne obstaja.
    -ErrorGoBackAndCorrectParameters=Vrnite se nazaj in popravite napačne parametre.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Morda ste vnesli napačno vrednost parametra '%s'.
     ErrorFailedToCreateDatabase=Neuspešno kreiranje baze podatkov '%s'.
     ErrorFailedToConnectToDatabase=Neuspešna povezava z bazo podatkov '%s'.
     ErrorDatabaseVersionTooLow=Verzija baze podatkov (%s) je prestara. Zahtevana je verzija %s ali novejša.
     ErrorPHPVersionTooLow=PHP verzija je prestara. Zahtevana je verzija %s.
    -ErrorConnectedButDatabaseNotFound=Povezava s strežnikom je vzpostavljena, vendar ni najdena baza podatkov'%s'.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Baza podatkov '%s' že obstaja.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Če baza podatkov ne obstaja, se vrnite nazaj in označite opcijo "Ustvari bazo podatkov".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Če baza podatkov že obstaja, se vrnite nazaj in odznačite opcijo "Ustvari bazo podatkov".
    -WarningBrowserTooOld=Verzija brskalnika je prestara. Priporočamo nadgraditev vašega brskalnika na zadnjo verzijo Firefox, Chrome ali Opera.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Verzija
     License=Uporablja licenco
     ConfigurationFile=Konfiguracijska datoteka
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr baza podatkov
     DatabaseType=Tip baze podatkov
     DriverType=Tip gonilnika
     Server=Strežnik
    -ServerAddressDescription=Ime ali IP naslov strežnika za bazo podatkov, običajno 'localhost', če strežni baze podatkov gostuje na istem strežniku, kot spletni strežnik
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Vrata strežnika baze podatkov. Če niso znana, pustite prazno.
     DatabaseServer=Strežnik za bazo podatkov
     DatabaseName=Ime baze podatkov
    -DatabasePrefix=Baza podatkov predpona miza
    -AdminLogin=Uporabniško ime za lastnika Dolibarr baze podatkov.
    -PasswordAgain=Ponoven vnos gesla
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Geslo za lastnika Dolibarr baze podatkov.
     CreateDatabase=Ustvari bazo podatkov
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Strežnik za bazo podatkov – »Super uporabnik« dostop
    -CheckToCreateDatabase=Označite kvadratek, če baza podatkov ne obstaja in jo je potrebno ustvariti.<br>V tem primeru morate vnesti uporabniško ime/geslo za račun »Super uporabnik« na dnu te strani.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Uporabniško ime uporabnika omogoča kreiranje nove baze podatkov ali novega uporabnika, razen če vaša baza podatkov in vaše uporabniško ime že obstajata (na primer če gostujete pri spletnem ponudniku).
    -KeepEmptyIfNoPassword=Pustite prazno, če uporabnik nima gesla (temu se izogibajte)
    -SaveConfigurationFile=Shrani vrednosti
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Povezava s strežnikom
     DatabaseCreation=Ustvarjanje baze podatkov
     CreateDatabaseObjects=Ustvarjanje objektov baze podatkov
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Kreiranje tujih ključev in indeksov za tabelo %s
     OtherKeysCreation=Kreiranje tujih ključev in indeksov
     FunctionsCreation=Kreiranje funkcij
     AdminAccountCreation=Kreiranje uporabniškega imena za Administratorja
    -PleaseTypePassword=Prosim, vnesite geslo, prazno geslo ni dovoljeno !
    -PleaseTypeALogin=Prosim, vnesite uporabniško ime !
    -PasswordsMismatch=Geslo ni ustrezno, prosim, poskusite znova !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Nastavitev je zaključena
     SystemIsInstalled=Ta instalacija je zaključena.
     SystemIsUpgraded=Dolibarr Je bil uspešno nadgrajen.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Dolibarr morate konfigurirati, da bi ustrezal vašim p
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Zaženi Dolibarr
     GoToSetupArea=Zaženi Dolibarr (področje nastavitev)
    -MigrationNotFinished=Verzija vaše baze podatkov ni povsem posodobljena, zato boste morali ponovno pognati postopek nadgradnje.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Ponovno pojdite na stran za nadgradnjo
     WithNoSlashAtTheEnd=Brez poševnice "/" na koncu
    -DirectoryRecommendation=Priporoča se uporaba mape zunaj vaše mape na vaših internetnih straneh.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Že obstaja
     DolibarrAdminLogin=Uporabniško ime Dolibarr administratorja
    -AdminLoginAlreadyExists=Račun Dolibarr administratorja '<b>%s</b>' že obstaja.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Pozor, zaradi varnostnih razlogov morate po končani namestitvi ali nadgradnji odstraniti mapo <b>install<b> ali jo preimenovati v <b>install.lock</b>, da bi preprečili njeno zlonamerno uporabo.
    -FunctionNotAvailableInThisPHP=Ni na voljo pri tem PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Izberite skript za selitev
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Obdelava skripta
     ChooseYourSetupMode=Izberite vaš način namestitve in kliknite "Start"...
     FreshInstall=Sveža namestitev
    -FreshInstallDesc=Uporabite ta način, če je to vaša prva namestitev. Če ne, lahko na ta način popravite nepopolno predhodno namestitev. Če pa želite vašo verzijo nadgraditi, izberite način "Nadgraditev".
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Nadgraditev
     UpgradeDesc=Ta način uporabite, če ste zamenjali stare Dolibarr datoteke z datotekami iz novejše različice. S tem boste nadgradili vašo bazo podatkov in podatke.
     Start=Start
     InstallNotAllowed=Namestitev ni možna zaradi dovoljenj v <b>conf.php</b>
     YouMustCreateWithPermission=Ustvariti morate datoteko %s in nastaviti dovoljenja za zapisovanje za spletni strežnik med postopkom namestitve.
    -CorrectProblemAndReloadPage=Prosim, popravite težavo in pritisnite F5 za osvežitev strani.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Že prenešeno
     DatabaseVersion=Različica baze podatkov
     ServerVersion=Različica strežnika baze podatkov
     YouMustCreateItAndAllowServerToWrite=Ustvariti morate to mapo in dovoliti spletnemu strežniku zapisovanje vanjo.
     DBSortingCollation=Vrstni red znakov
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Želeli ste kreirati bazo podatkov <b>%s</b>, vendar se mora za to Dolibarr povezati s strežnikom <b>%s</b> z dovoljenji super uporabnika <b>%s</b>.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Želeli ste kreirati uporabniško ime za bazo podatkov <b>%s</b>, vendar se mora za to Dolibarr povezati s strežnikom <b>%s</b> z dovoljenji super uporabnika <b>%s</b>.
    -BecauseConnectionFailedParametersMayBeWrong=Ker povezava ni uspela, so morda parametri gostitelja ali super uporabnika napačni.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Osamljena plačila so bila zaznana z metodo %s
     RemoveItManuallyAndPressF5ToContinue=Ročno odstranite in pritisnite F5 za nadaljevanje.
     FieldRenamed=Polje je primenovano
    -IfLoginDoesNotExistsCheckCreateUser=Če uporabniško ime še ne obstaja, morate preveriti opcijo "Ustvari uporabnika"
    -ErrorConnection=Strežnik "<b>%s</b>", ime baze podatkov "<b>%s</b>", uporabniško ime "<b>%s</b>", ali geslo so morda napačni ali pa je različica PHP klienta prestara v primerjavi z različico baze podatkov.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Priporočena izbira za namestitev različice <b>%s</b> iz vaše trenutne različice <b>%s</b>
     InstallChoiceSuggested=<b>Predlagana izbira namestitve</b>.
    -MigrateIsDoneStepByStep=Ciljna verzija (%s) se razlikuje za nekaj verzij, zato bo instalacijski čarovnik predlagal naslednjo migracijo, ko bo trenutna zaključena.
    -CheckThatDatabasenameIsCorrect=Preverite, če je ime baze podatkov "<b>%s</b>" pravilno.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Če je to ime pravilno in baza podatkov še ne obstaja, morate označiti opcijo "Ustvari bazo podatkov".
     OpenBaseDir=Parameter PHP openbasedir
    -YouAskToCreateDatabaseSoRootRequired=Označili ste okvirček "Ustvari bazo podatkov". Za to morate zagotoviti uporabniško ime/geslo superuporabnika (spodnji del obrazca).
    -YouAskToCreateDatabaseUserSoRootRequired=Označili ste okvirček "Ustvari lastnika baze podatkov". Za to morate zagotoviti uporabniško ime/geslo superuporabnika (spodnji del obrazca).
    -NextStepMightLastALongTime=Trenutni korak bo morda trajal nekaj minut. Pred nadaljevanjem počakajte, dokler ni viden celoten prikaz naslednjega zaslona.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Prenos skladišča blaga za odpremo naročil kupcev
     MigrationShippingDelivery=Nadgraditev skladišča za odpremo
     MigrationShippingDelivery2=Nadgraditev skladišča za odpremo 2
     MigrationFinished=Prenos končan
    -LastStepDesc=<strong>Zadnji korak</strong>: Tukaj določite uporabniško ime in geslo, ki ju nameravate uporabiti za priklop v software. Ne izgubite ju, ker je to račun za administriranje vseh ostalih računov.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Vključite modul %s
     ShowEditTechnicalParameters=Kliknite tukaj za prikaz/popravek naprednih parametrov (expertni način)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Verzija vaše baze podatkov je %s. Vsebuje kritičnega hrošča, ki povzroči izgubo podatkov, če naredite strukturno spremembo baze, kot jo zahteva postopek migracije. Zato migracija ne bo dovoljena, dokler ne posodobite baze na višjo stabilno verzijo (seznam znanih hroščastih verzij: %s)
    -KeepDefaultValuesWamp=Za namestitev Dolibarr uporabljate čarovnika DoliWamp, zato so predlagane vrednosti že optimizirane. Spremenite jih le, če veste kaj počnete.
    -KeepDefaultValuesDeb=Za namestitev Dolibarr uporabljate čarovnika iz paketov, podobnih Ubuntu ali Debian, zato so predlagane vrednosti že optimizirane. Spremenite jih le, če veste kaj počnete.
    -KeepDefaultValuesMamp=Za namestitev Dolibarr uporabljate čarovnika DoliMamp, zato so predlagane vrednosti že optimizirane. Spremenite jih le, če veste kaj počnete.
    -KeepDefaultValuesProxmox=Za namestitev Dolibarr uporabljate čarovnika Proxmox virtual appliance, zato so predlagane vrednosti že optimizirane. Spremenite jih le, če veste kaj počnete.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Prenos podatkov o komercialnih ponudbah
     MigrationInvoice=Prenos podatkov o računih za kupce
     MigrationContract=Prenos podatkov o pogodbah
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Nadgradnja uspešna
     MigrationUpdateFailed=Postopek nadgradnje ni uspel
     MigrationRelationshipTables=Prenos podatkov za relacijske tabele (%s)
     MigrationPaymentsUpdate=Posodobitev podatkov o plačilih
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Posodobitev podatkov o pogodbah
     MigrationContractsNumberToUpdate=%s pogodb je potrebno posodobiti
     MigrationContractsLineCreation=Ustvarite vrstico v pogodbi za pogodbo št. %s
     MigrationContractsNothingToUpdate=Nič več ni potrebno narediti
    -MigrationContractsFieldDontExist=Polje fk_facture več ne obstaja. Nič več ni potrebno narediti.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Popravek manjkajočih datumov v pogodbah
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Ni potreben popravek manjkajočih datumov v pogodbah
     MigrationContractsEmptyCreationDatesNothingToUpdate=Ni potreben popravek datumov kreiranja pogodb
     MigrationContractsInvalidDatesUpdate=Popravek manjkajočih datumov v pogodbah
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Dobave so posodobljene
     MigrationStockDetail=Posodobitev vrednosti zalog proizvodov
     MigrationMenusDetail=Posodobitev tabel dinamičnih menijev
     MigrationDeliveryAddress=Posodobitev naslovov za dobavo pošiljk
    -MigrationProjectTaskActors=Prenos podatkov tabele llx_projet_task_actors
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Prenos podatkov polja fk_user_resp tabele llx_projet v llx_element_contact
     MigrationProjectTaskTime=Posodobitev porabljenega časa v sekundah
     MigrationActioncommElement=Posodobitev podatkov o aktivnostih
     MigrationPaymentMode=Podatki, migracije za način plačila
     MigrationCategorieAssociation=Migracija kategorij
    -MigrationEvents=Migracija dogodkov za dodajanje lastnika dogodka v dodelitveno tabelo
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Ponovno naložite modul %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Prikaži opcije, ki niso na voljo
    -HideNotAvailableOptions=Skrij opcije, ki niso na voljo
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/sl_SI/interventions.lang b/htdocs/langs/sl_SI/interventions.lang
    index 4ba92fc20da..b84f1fbf63d 100644
    --- a/htdocs/langs/sl_SI/interventions.lang
    +++ b/htdocs/langs/sl_SI/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Intervencije
     InterventionCard=Kartica intervencije
     NewIntervention=Nova intervencija
     AddIntervention=Dodaj intervencijo
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Seznam intervencij
     ActionsOnFicheInter=Aktivnost na intervenciji
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/sl_SI/main.lang b/htdocs/langs/sl_SI/main.lang
    index 2096075a64e..9fbf0693951 100644
    --- a/htdocs/langs/sl_SI/main.lang
    +++ b/htdocs/langs/sl_SI/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Napaka pri pošiljanju E-maila (pošiljatelj=%s, prejemnik
     ErrorFileNotUploaded=Datoteka ni bila naložena. Preverite, če velikost ne presega omejitve, če je na disku dovolj prostora ali če datoteka z istim imenom že obstaja v tej mapi.
     ErrorInternalErrorDetected=Zaznana napaka
     ErrorWrongHostParameter=Napačen parameter gostitelja
    -ErrorYourCountryIsNotDefined=Vaša država ni definirana. Pojdite na Domov-Nastavitve-Urejanje in ponovno pošljite obrazec.
    -ErrorRecordIsUsedByChild=Brisanje zapisa ni uspelo. Ta zapis uporablja vsaj en odvisni zapis.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Napačna vrednost
     ErrorWrongValueForParameterX=Napačna vrednost parametra %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Storitev trenutno ni na voljo. Ponovno poskusite kasneje.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Podvojena vrednost v enoličnem polju
    -ErrorSomeErrorWereFoundRollbackIsDone=Najdenih je bilo nekaj napak. Spremembe so razveljavljene.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> ni definiran v Dolibarr konfiguracijski datoteki <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Napaka pri iskanju uporabnika <b>%s</b> v Dolibarr bazi podatkov.
     ErrorNoVATRateDefinedForSellerCountry=Napaka, za državo '%s' niso definirane davčna stopnje.
     ErrorNoSocialContributionForSellerCountry=Napaka, za državo '%s' niso definirane stopnje socialnega/fiskalnega davka.
     ErrorFailedToSaveFile=Napaka, datoteka ni bila shranjena.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Nimate dovoljenja za to.
     SetDate=Nastavi datum
     SelectDate=Izberi datum
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=Datoteka je bila uspešno naložena
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=Izbrana je bila datoteka za prilogo, vendar še ni dodana. Kliknite na "Pripni datoteko".
    -NbOfEntries=Število vpisov
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Preberite pomoč
     RecordSaved=Zapis je shranjen
    @@ -94,7 +94,7 @@ Undefined=Nedefinirano
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=Glejte zgoraj
    -HomeArea=Domače področje
    +HomeArea=Domov
     LastConnexion=Latest connection
     PreviousConnexion=Prejšnja prijava
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Zaključen
     Closed2=Zaključen
     NotClosed=Not closed
     Enabled=Omogočen
    +Enable=Omogočeno
     Deprecated=Nasprotovanje
     Disable=Onemogoči
     Disabled=Onemogočen
    @@ -153,7 +154,7 @@ Update=Posodobi
     Close=Zapri
     CloseBox=Remove widget from your dashboard
     Confirm=Potrdi
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Briši
     Remove=Odstrani
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Kopiraj
     Paste=Prilepi
     Default=Privzeto
     DefaultValue=Privzeta vrednost
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Cena
     PriceCurrency=Price (currency)
     UnitPrice=Cena enote
    @@ -347,7 +348,7 @@ AmountTTCShort=Znesek (z DDV)
     AmountHT=Znesek (neto)
     AmountTTC=Znesek (z DDV)
     AmountVAT=Znesek DDV
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Ni na voljo
     ActionRunningNotStarted=Nezačete
     ActionRunningShort=In progress
     ActionDoneShort=Končane
    -ActionUncomplete=Nepopolno
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Kontakti tega partnerja
     ContactsAddressesForCompany=Kontakti/naslovi za tega partnerja
     AddressesForCompany=Naslovi za tega partnerja
     ActionsOnCompany=Aktivnosti v zvezi s tem partnerjem
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Dogodki okoli tega člana
     ActionsOnProduct=Events about this product
     NActionsLate=%s zamujenih
    @@ -453,8 +455,8 @@ Generate=Ustvari
     Duration=Trajanje
     TotalDuration=Skupno trajanje
     Summary=Povzetek
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Na voljo
     NotYetAvailable=Še ni na voljo
    @@ -468,7 +470,7 @@ and=in
     or=ali
     Other=ostalo
     Others=Ostali
    -OtherInformations=Ostale informacije
    +OtherInformations=Other information
     Quantity=Količina
     Qty=Kol.
     ChangedBy=Spremenil
    @@ -506,7 +508,7 @@ None=Nič
     NoneF=Nič
     NoneOrSeveral=None or several
     Late=Prekoračeno
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Slika
     Photos=Slike
    @@ -530,18 +532,6 @@ September=September
     October=Oktober
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=Maj
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Okt
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=januar
     Month02=februar
     Month03=marec
    @@ -646,6 +636,8 @@ SendMail=Pošlji e-pošto
     EMail=E-pošta
     NoEMail=Ni email-a
     Email=E-pošta
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Ni mobilnega telefona
     Owner=Lastnik
     FollowingConstantsWillBeSubstituted=Naslednje konstante bodo zamenjane z ustrezno vrednostjo.
    @@ -677,7 +669,7 @@ NeverReceived=Nikoli prejeto
     Canceled=Preklicano
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Barva
     Documents=Povezane datoteke
     Documents2=Dokumenti
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Prikaži komande s skritim geslom
     UnHidePassword=Prikaži resnične komande z vidnim geslom
     Root=Koren
    -Informations=Informacije
    +Informations=Informacija
     Page=Stran
     Notes=Opombe
     AddNewLine=Dodaj novo vrstico
    @@ -716,15 +708,15 @@ Merge=Spoji
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Prikaži stran za izpis področja z osnovno vsebino
     MenuManager=Upravljalnik menija
    -WarningYouAreInMaintenanceMode=Pozor, ste v vzdrževalnem načinu, zato je trenutno samo prijavljenemu <b>%s</b> dovoljena uporaba aplikacije.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Sistemska napaka
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Kreditna kartica
     ValidatePayment=Potrdi plačilo
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Polja z <b>%s</b> so obvezna
    -FieldsWithIsForPublic=Polja z <b>%s</b> so prikazana na javnem seznamu članov. Če tega ne želite, označite okvir "public".
    -AccordingToGeoIPDatabase=(V skladu s  GeoIP pretvorbo)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Vrstica
     NotSupported=Ni podprto
     RequiredField=Zahtevano polje
    @@ -732,6 +724,8 @@ Result=Rezultat
     ToTest=Test
     ValidateBefore=Pred uporabo te funkcije mora biti kartica potrjena
     Visibility=Vidnost
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privatno
     Hidden=Skrito
     Resources=Viri
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Povezava do naročila
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Ustvarite osnutek
     SetToDraft=Nazaj na osnutek
     ClickToEdit=Kliknite za urejanje
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=Po dnevih
     BySalesRepresentative=Z prodajni predstavnik
     LinkedToSpecificUsers=Povezano z določenim kontaktom uporabnika
     NoResults=Ni rezultata
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=Sistemska orodja
     ModulesSystemTools=Orodja za module
     Test=Test
     Element=Element
     NoPhotoYet=Slik še ni na voljo
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Odbiten
     from=od
     toward=proti
    @@ -802,7 +798,7 @@ PrintFile=Natisni datoteko %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Prikaži intervencijo
     ShowContract=Prikaži pogodbo
    -GoIntoSetupToChangeLogo=Pojdite na Domov - Nastavitve - Podjetje za spremembo logotipa oz. na Domov - Nastavitve - Prikaz za njegovo skritje.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Zavrni
     Denied=Zavrnjen
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=S spoštovanjem
     DeleteLine=Izbriši vrstico
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Klasificiraj kot fakturirano
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Koledar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Stroškovna poročila
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Dogodki
    -EMailTemplates=Predloge za elektronsko pošto
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Projekt
     Projects=Projekti
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Dovoljenja
     LineNb=Line no.
     IncotermLabel=Mednarodni Poslovni Izrazi
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Ponedeljek
     Tuesday=Torek
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Intervencije
     SearchIntoContracts=Pogodbe
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Stroškovna poročila
    -SearchIntoLeaves=Dopusti
    +SearchIntoLeaves=Leave
     CommentLink=Komentarji
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Projekti v skupni rabi
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Se nanaša na
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/sl_SI/other.lang b/htdocs/langs/sl_SI/other.lang
    index 10def3b52ed..01b564a6d4d 100644
    --- a/htdocs/langs/sl_SI/other.lang
    +++ b/htdocs/langs/sl_SI/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Varnostna koda
     NumberingShort=N°
     Tools=Orodja
     TMenuTools=Orodja
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Rojstni dan
     BirthdayDate=Birthday date
     DateToBirth=Datum rojstva
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Sporočilo na strani za potrditev plačila
     MessageKO=Sporočilo na strani za preklic plačila
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Potrjena intervencija
    -Notify_FICHINTER_SENTBYMAIL=Intervencija poslana po EMailu
     Notify_ORDER_VALIDATE=Potrjeno naročilo kupca
     Notify_ORDER_SENTBYMAIL=Naročilo po e-pošti
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Naročilo pri dobavitelju poslano po pošti
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Naročilo pri dobavitelju je shranjeno
     Notify_ORDER_SUPPLIER_APPROVE=Odobreno naročilo pri dobavitelju
     Notify_ORDER_SUPPLIER_REFUSE=Zavrnjeno naročilo pri dobavitelju
     Notify_PROPAL_VALIDATE=Potrjena ponudba kupcu
    -Notify_PROPAL_CLOSE_SIGNED=Ponudba kupcu zaključena s podpisom
    -Notify_PROPAL_CLOSE_REFUSED=Ponudba kupcu zaključena z zavrnitvijo
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Komercialna ponudba poslana po e-pošti
     Notify_WITHDRAW_TRANSMIT=Nakazilo prenosa
     Notify_WITHDRAW_CREDIT=Nakazilo kredita
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Ustvarjen partner
     Notify_COMPANY_SENTBYMAIL=Pošta poslana s kartice partnerja
     Notify_BILL_VALIDATE=Potrjen račun
     Notify_BILL_UNVALIDATE=Račun za kupca ni potrjen
    -Notify_BILL_PAYED=Plačan račun kupca
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Preklican račun kupca
     Notify_BILL_SENTBYMAIL=Račun poslan po e-pošti
     Notify_BILL_SUPPLIER_VALIDATE=Potrjen račun dobavitelja
    -Notify_BILL_SUPPLIER_PAYED=Plačan račun dobavitelja
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Račun dobavitelja poslan po pošti
     Notify_BILL_SUPPLIER_CANCELED=Preklican račun dobavitelja
     Notify_CONTRACT_VALIDATE=Potrjena pogodba
     Notify_FICHEINTER_VALIDATE=Potrjena intervencija
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervencija poslana po EMailu
     Notify_SHIPPING_VALIDATE=Potrjena odprema
     Notify_SHIPPING_SENTBYMAIL=Pošiljka poslana po pošti
     Notify_MEMBER_VALIDATE=Potrjeno članstvo
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Ustvarjanje projekta
     Notify_TASK_CREATE=Ustvarjena naloga
     Notify_TASK_MODIFY=Spremenjena naloga
     Notify_TASK_DELETE=Izbrisana naloga
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Glejte nastavitev modula %s
     NbOfAttachedFiles=Število pripetih datotek/dokumentov
     TotalSizeOfAttachedFiles=Skupna velikost pripetih datotek/dokumentov
     MaxSize=Največja velikost
     AttachANewFile=Pripni novo datoteko/dokument
     LinkedObject=Povezani objekti
    -NbOfActiveNotifications=Število obvestil (število emailov prejemnika)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> je informacija, odvisna od države partnerja.<br>Na primer za državo <b>%s</b>, je koda <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Potrjena intervencija %s
     EMailTextInvoiceValidated=Potrjen račun %s
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Potrjena ponudba %s
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Potrjeno naročilo %s
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Naročilo %s odobril %s
     EMailTextOrderRefused=Zavrnjeno naročilo %s
     EMailTextOrderRefusedBy=Naročilo %s zavrnil %s
     EMailTextExpeditionValidated=Odprema %s je bila potrjena
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Nabor podatkov za uvoz
     DolibarrNotification=Avtomatsko obvestilo
     ResizeDesc=Vnesite novo širino <b>ALI</b> novo višino. Razmerje se bo med spreminjanjem velikosti ohranilo...
    @@ -204,7 +214,7 @@ NewLength=Nova širina
     NewHeight=Nova višina
     NewSizeAfterCropping=Nova velikost po obrezovanju
     DefineNewAreaToPick=Določitev novega območja na sliki za pobiranje (levi klik na sliko in vleka kurzorja do nasprotnega vogala)
    -CurrentInformationOnImage=To orodje je namenjeno spreminjanju velikosti ali obrezovanju slike. To je informacija o trenutni sliki
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Obdelovalnik slik
     YouReceiveMailBecauseOfNotification=To sporočilo ste prejeli, ker je bil vaš email dodan na seznam interesentov za določene dogodke v program %s od %s.
     YouReceiveMailBecauseOfNotification2=Ta dogodek je naslednji:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Področje izvoza
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Naziv
     WEBSITE_DESCRIPTION=Opis
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/sl_SI/paybox.lang b/htdocs/langs/sl_SI/paybox.lang
    index f25bc8b1774..01584d70a69 100644
    --- a/htdocs/langs/sl_SI/paybox.lang
    +++ b/htdocs/langs/sl_SI/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Nastavitev modula za online plačila Paybox
     PayBoxDesc=Ta modul omogoča kupcem plačevanje na <a href="http://www.paybox.com" target="_blank">Paybox</a>. Lahko se uporabi za prosto plačevanje ali za plačilo posameznih Dolibarr postavk (račun, naročilo, ...)
     FollowingUrlAreAvailableToMakePayments=Naslednji URL naslovi so na voljo kupcem za izvedbo plačil Dolibarr postavk
     PaymentForm=Obrazec za plačilo
    -WelcomeOnPaymentPage=Dobrodošli v naši storitvi online plačil
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Ta zaslon omogoča online plačilo za %s.
     ThisIsInformationOnPayment=To je informacija o potrebnem plačilu
     ToComplete=Za dokončanje
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL naslov s ponudbo %s vmesnika za online
     ToOfferALinkForOnlinePaymentOnContractLine=URL naslov s ponudbo %s vmesnika za online plačila po pogodbi
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL naslov s ponudbo %s vmesnika za online plačila poljubnih zneskov
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL naslov s ponudbo %s vmesnika za online plačila članarin
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Vsakemu od teh URL naslovov lahko tudi dodate url parameter <b>&tag=<i>vrednost</i></b> (zahtevano samo pri poljubnih plačilih) s komentarjem vašega plačila.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Nastavite vaš PayBox z url <b>%s</b> za avtomatsko kreiranje plačil po potrditvi.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Ta stran potrjuje, da je bilo vaše plačilo sprejeto. Hvala.
    -YourPaymentHasNotBeenRecorded=Vaše plačilo ni bilo sprejeto in prenos je bil preklican. Hvala.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Parametri računa
     UsageParameter=Parametri uporabe
     InformationToFindParameters=Pomoč pri iskanju informacij računa %s
    diff --git a/htdocs/langs/sl_SI/projects.lang b/htdocs/langs/sl_SI/projects.lang
    index ae4e29c5d25..5161b5a647e 100644
    --- a/htdocs/langs/sl_SI/projects.lang
    +++ b/htdocs/langs/sl_SI/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Prikaži projekt
     ShowTask=Prikaži naloge
     SetProject=Nastavi projekt
     NoProject=Nimate definiranega ali lastnega projekta
    -NbOfProjects=Število projektov
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Porabljen čas
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Seznam komercialnih ponudb, povezanih s projektom
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Seznam pogodb, povezanih s projektom
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Seznam intervencij, povezanih s projektom
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Seznam aktivnosti, povezanih s projektom
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Povezane z drugimi partnerji
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Ni porabljenega časa
     ThisWillAlsoRemoveTasks=Ta aktivnost bo tudi izbrisala vse naloge projekta (<b>%s</b> trenutne naloge) in vse vnose porabljenega časa.
    -IfNeedToUseOhterObjectKeepEmpty=Če nekateri objekti (računi, naročila, ...), ki pripadajo drugemu partnerju, morajo biti vezani na projekt, ki se kreira, pustite polje prazno, da je projekt lahko vezan na več partnerjev.
    +IfNeedToUseOtherObjectKeepEmpty=Če nekateri objekti (računi, naročila, ...), ki pripadajo drugemu partnerju, morajo biti vezani na projekt, ki se kreira, pustite polje prazno, da je projekt lahko vezan na več partnerjev.
     CloneProject=Kloniraj projekt
     CloneTasks=Kloniraj naloge
     CloneContacts=Kloniraj kontakte
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Sodelavec
     SelectElement=Izberi element
     AddElement=Povezava do elementa
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planirana delovna obremenitev
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Ponudba
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/sl_SI/propal.lang b/htdocs/langs/sl_SI/propal.lang
    index af4b0925277..09f72c442ad 100644
    --- a/htdocs/langs/sl_SI/propal.lang
    +++ b/htdocs/langs/sl_SI/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Podpisana (potrebno fakturirati)
     PropalStatusNotSigned=Nepodpisana (zaprta)
     PropalStatusBilled=Fakturirana
     PropalStatusDraftShort=Osnutek
    -PropalStatusValidatedShort=Potrjen
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Zaprta
     PropalStatusSignedShort=Podpisana
     PropalStatusNotSignedShort=Nepodpisana
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Ponudbe %s ne najdem
     AddToDraftProposals=Dodaj osnutku ponudbe
     NoDraftProposals=Ni osnutkov ponudbe
     CopyPropalFrom=Kreiraj komercialno ponudbo s kopiranjem obstoječe ponudbe
    -CreateEmptyPropal=Kreiraj prazno komercialno ponudbo ali izberi s seznama prizvodov/storitev
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Privzeto trajanje veljavnosti komercialne ponudbe (v dneh)
    -UseCustomerContactAsPropalRecipientIfExist=Kot naslov prejemnika ponudbe uporabi naslov kontakta pri kupcu, če je na voljo, namesto naslova partnerja
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Kloniraj komercialno ponudbo
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Kontakt pri kupcu za sledenje ponudbe
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Vzorec kompletne ponudbe (logo...)
    +DocModelCyanDescription=Vzorec kompletne ponudbe (logo...)
     DefaultModelPropalCreate=Ustvarjanje privzetega modela
     DefaultModelPropalToBill=Privzeta predloga za zaključek ponudbe (za fakturiranje)
     DefaultModelPropalClosed=Privzeta predloga za zaključek ponudbe (nefakturirana)
    diff --git a/htdocs/langs/sl_SI/website.lang b/htdocs/langs/sl_SI/website.lang
    index 3a2df365141..5e075fd4343 100644
    --- a/htdocs/langs/sl_SI/website.lang
    +++ b/htdocs/langs/sl_SI/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Koda
    -WebsiteSetupDesc=Vnesite toliko zapisov, kot želite imeti spletnih strani.  Za urejanje pojdite na Menu => Websites.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Izbriši spletno stran
    -ConfirmDeleteWebsite=Ali ste prepričani, da želite izbrisati to spletno starn. Vse strani in vsebina bodo pobrisani.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Preberite
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/sq_AL/admin.lang b/htdocs/langs/sq_AL/admin.lang
    index 8ab02d9028d..4df5eb5f6f5 100644
    --- a/htdocs/langs/sq_AL/admin.lang
    +++ b/htdocs/langs/sq_AL/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Development
     VersionUnknown=Unknown
     VersionRecommanded=Recommended
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler to save sessions
     SessionSavePath=Storage session localization
     PurgeSessions=spastro lidhjet
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Sesioni juaj
    -Sessions=Users session
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Përdorues i jashtëm
     InternalUsers=Përdorues të brendshëm
     ExternalUsers=Përdorues të jashtëm
     GUISetup=Shfaq
    -SetupArea=Setup area
    +SetupArea=Konfiguro
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=E padisponueshme ku Ajax është i çaktivizuar
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Tabelë
     Fields=Fushat
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Aktiv
     SetupShort=Konfiguro
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parametër %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Brezi orar (pёrdorues)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=I lire
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Bli / Shkarko
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Konfigurimi i email
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Pёrdor TLS(SSL) enkripto
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Konfigurimi i modulit
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Editimi i menuve
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Versioni aktual i Dolibarr
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Versioni i fundit stabёl
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Gjatёsia minimale
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Fjalëkalimi
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposals
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Faturat
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Furnitorët
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barkod
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=Sinkronizimi LDAP
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=Integrimi PostNuke
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Dhurimet
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=Editor WYSIWYG
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=Klient FTP
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Krijo Linja
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Lexo CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=Shteti/Provinca
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Serveri
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Name
     CompanyAddress=Adresa
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Name
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/sq_AL/banks.lang b/htdocs/langs/sq_AL/banks.lang
    index db32ee99d62..e5729066e4d 100644
    --- a/htdocs/langs/sq_AL/banks.lang
    +++ b/htdocs/langs/sq_AL/banks.lang
    @@ -7,7 +7,7 @@ BankName=Emri i Bankës
     FinancialAccount=Llogari
     BankAccount=Llogari bankare
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/sq_AL/bills.lang b/htdocs/langs/sq_AL/bills.lang
    index 01ca0003373..77a27f75552 100644
    --- a/htdocs/langs/sq_AL/bills.lang
    +++ b/htdocs/langs/sq_AL/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Suppliers payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=Payment amount
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Paid
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Mbyllur
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Tjetër
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=Lista e faturave të papaguara
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/sq_AL/cashdesk.lang b/htdocs/langs/sq_AL/cashdesk.lang
    index b3e9f59cc14..0081f0d3cc5 100644
    --- a/htdocs/langs/sq_AL/cashdesk.lang
    +++ b/htdocs/langs/sq_AL/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/sq_AL/commercial.lang b/htdocs/langs/sq_AL/commercial.lang
    index e1f9968bd40..165c13db1ad 100644
    --- a/htdocs/langs/sq_AL/commercial.lang
    +++ b/htdocs/langs/sq_AL/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefonatё
     ActionAC_FAX=Dёrgo faks
     ActionAC_PROP=Dёrgo propozimin me email
     ActionAC_EMAIL=Dёrgo email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Takimet
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Dёrgo faturёrn klientit me email
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=Pa limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/sq_AL/companies.lang b/htdocs/langs/sq_AL/companies.lang
    index 943f8dc2a0f..175f44342f2 100644
    --- a/htdocs/langs/sq_AL/companies.lang
    +++ b/htdocs/langs/sq_AL/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Select a third party
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Fshij një kontakt/adresë
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New third party
    -MenuNewCustomer=Klient i ri
    -MenuNewProspect=New prospect
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=Kompani
     CompanyName=Emri i kompanisë
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Kompanitë
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=Third parties
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
     ThirdPartyProspectsStats=Prospects
     ThirdPartyCustomers=Klientёt
     ThirdPartyCustomersStats=Klientёt
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Kodi postar
     Town=Qyteti
     Web=Web
     Poste= Position
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposals
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Supplier
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Fshij kompani
     PersonalInformations=Të dhëna personale
     AccountancyCode=Accounting account
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Staff
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Shto adresë
    @@ -402,16 +402,16 @@ DeleteFile=Fshi skedar
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=List of prospects
    -ListCustomersShort=List of customers
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Hapur
     ActivityCeased=Mbyllur
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/sq_AL/dict.lang b/htdocs/langs/sq_AL/dict.lang
    index a9752d40757..0714eef513e 100644
    --- a/htdocs/langs/sq_AL/dict.lang
    +++ b/htdocs/langs/sq_AL/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=Indi
     CountryID=Indonezi
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Korea e Veriut
     CountryKR=Korea e Jugut
     CountryKW=Kuvait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Liban
    @@ -160,7 +160,7 @@ CountryMD=Moldavi
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambik
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turqi
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukrainë
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Punonjës
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/sq_AL/ecm.lang b/htdocs/langs/sq_AL/ecm.lang
    index e5c26493a46..f5bb7b620a3 100644
    --- a/htdocs/langs/sq_AL/ecm.lang
    +++ b/htdocs/langs/sq_AL/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/sq_AL/errors.lang b/htdocs/langs/sq_AL/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/sq_AL/errors.lang
    +++ b/htdocs/langs/sq_AL/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/sq_AL/help.lang b/htdocs/langs/sq_AL/help.lang
    index 6129cae362d..da776683a6a 100644
    --- a/htdocs/langs/sq_AL/help.lang
    +++ b/htdocs/langs/sq_AL/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Commercial
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/sq_AL/holiday.lang b/htdocs/langs/sq_AL/holiday.lang
    index be527631e06..11916fff46f 100644
    --- a/htdocs/langs/sq_AL/holiday.lang
    +++ b/htdocs/langs/sq_AL/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Lejet
    -CPTitreMenu=Lejet
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Miratuar
     CancelCP=Anulluar
     RefuseCP=Refuzuar
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Përshkrimi
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Kërkesë për leje
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=Fshi
     ActionRefuseCP=Refuzo
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/sq_AL/install.lang b/htdocs/langs/sq_AL/install.lang
    index 51a88b09e7c..35fe8a0acfc 100644
    --- a/htdocs/langs/sq_AL/install.lang
    +++ b/htdocs/langs/sq_AL/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Dёshtim nё krijimin e bazёs sё tё dhёnave '%s'
     ErrorFailedToConnectToDatabase=Dёshtim pёr tu lidhur me bazёn e tё dhёnave '%s'
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=Versioni i PHP
     License=Using license
     ConfigurationFile=Skedari i konfigurimit
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Serveri
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/sq_AL/interventions.lang b/htdocs/langs/sq_AL/interventions.lang
    index 4c93eff9d0d..a130367b14f 100644
    --- a/htdocs/langs/sq_AL/interventions.lang
    +++ b/htdocs/langs/sq_AL/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/sq_AL/main.lang b/htdocs/langs/sq_AL/main.lang
    index d7796471922..9ec8bc8178d 100644
    --- a/htdocs/langs/sq_AL/main.lang
    +++ b/htdocs/langs/sq_AL/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Mbyllur
     Closed2=Mbyllur
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Aktivizo
     Deprecated=Deprecated
     Disable=Çaktivizo
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Update
     Close=Mbyll
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Fshi
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Tjetër
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Anulluar
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tools
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Lejet
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/sq_AL/other.lang b/htdocs/langs/sq_AL/other.lang
    index e8480a82dcb..c349aa6a2c6 100644
    --- a/htdocs/langs/sq_AL/other.lang
    +++ b/htdocs/langs/sq_AL/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Përshkrimi
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/sq_AL/paybox.lang b/htdocs/langs/sq_AL/paybox.lang
    index 5c293add9e9..44aa1c17238 100644
    --- a/htdocs/langs/sq_AL/paybox.lang
    +++ b/htdocs/langs/sq_AL/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Mёnyra e pagesёs
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=Pёr tu plotёsuar
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Parametrat e llogarisё
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/sq_AL/projects.lang b/htdocs/langs/sq_AL/projects.lang
    index 9eded2361e9..ce64c2819dd 100644
    --- a/htdocs/langs/sq_AL/projects.lang
    +++ b/htdocs/langs/sq_AL/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/sq_AL/propal.lang b/htdocs/langs/sq_AL/propal.lang
    index 0b64b1387c0..0267a27c950 100644
    --- a/htdocs/langs/sq_AL/propal.lang
    +++ b/htdocs/langs/sq_AL/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Draft
    -PropalStatusValidatedShort=Validated
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Mbyllur
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/sq_AL/website.lang b/htdocs/langs/sq_AL/website.lang
    index 0f0673e3716..6ae08738815 100644
    --- a/htdocs/langs/sq_AL/website.lang
    +++ b/htdocs/langs/sq_AL/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Read
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/sr_RS/admin.lang b/htdocs/langs/sr_RS/admin.lang
    index 60c96840a90..da2954bd5f0 100644
    --- a/htdocs/langs/sr_RS/admin.lang
    +++ b/htdocs/langs/sr_RS/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Razvoj
     VersionUnknown=Nepoznato
     VersionRecommanded=Preporučeno
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Rukovalac čuvanja sesije
     SessionSavePath=Lokalizacija smeštanja sesije
     PurgeSessions=Čišćenje sesije
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Zaključaj nove konekcije
    -ConfirmLockNewSessions=Da li stvarno želiš da ograničiš sva nove Dolibarr povezivanja na sebe. Samo korisnici sa <b>%s</b>  će moći da se povežu nakon toga.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Ukloni 
     YourSession=Vaša sesija
    -Sessions=Korisnička sesija
    +Sessions=Users sessions
     WebUserGroup=Web server korisnik/grupa
    -NoSessionFound=Vaš PHP ne dozvoljava izlistavanje aktivnih sesija. Direktorijum korišćen za čuvanje sesija (<b>%s</b>) je možda zaštićen (Npr., po dozvolama OS-a ili po PHP direktivi open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=External user
     InternalUsers=Internal users
     ExternalUsers=External users
     GUISetup=Display
    -SetupArea=Setup area
    +SetupArea=Podešavanja
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=Setup
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Novo
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Rok za obaveštenje
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=Ukoliko prevod za ovaj jezik nije kompletan ili ukoliko pronađete greške, možete ga ispraviti izmenom fajlova u folderu <b>langs/%s</b> i da prosledite promene na www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=Ukoliko prevod ovog jezika nije kompletan ili ukoliko pronađete greške, možete ih ispraviti editom fajlova u folderu <b>langs/%s</b> i proslediti izmene na dolibarr.org/forum ili na github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sajtovi i druge front aplikacije
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfejsi sa eksternim sistemima
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Sakrijte link za online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=Lista foldera sa templejtima u OpenDocument formatu.<br><br>Staviti apsolutnu putanju foldera.<br>Svaki folder u listi mora biti na novoj liniji.<br>Da biste dodali folder GED modulu, ubacite ga ovde <b>DOL_DATA_ROOT/ecm/ime_vaseg_foldera</b>.<br><br>Fajlovi u tim folderima moraju imati ekstenziju <b>.odt</b> ili <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Modul <b>%s</b> mora biti aktiviran da biste koristili ovu funkcionalnost.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Polje
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Korisnici & Grupe
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposals
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Invoices
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Suppliers
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Uređivanje markera
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Planirane operacije
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Poziv WebServices (SOAP client)
    -Module2660Desc=Aktiviraj Dolibarr webservice klijent (može se koristiti da bi se podaci/zahtevi slali ka eksternim serverima. Za sada su podržane samo porudžbine dobavljača)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Maloprodaje
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Anketa ili Glasanje
    -Module55000Desc=Modul za online ankete ili glasanja (kao Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Dodavanje funkcionalnosti za upravljanje Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resursi
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Obriši zahteve za odsustvo
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=Država/Provincija
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max dužina za liste
    -DefaultMaxSizeShortList=Default max dužina kratkih lista (npr u kartici klijenta)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Name
     CompanyAddress=Address
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Prag tolerancije (u danima) pre pojavljivanja upozorenja za odobrenje troškova
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Sačuvaj sadržaj foldera (<b>%s</b>) koji sadrži sve uploadovane i generisane fajlove (tako da sadrži sve dump fajlove generisane u koraku 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Ne predlaži generisanje lozinki. Lozinke moraju biti unete ručno.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Povrati lozinku po konfiguraciji koju ste definisali.
     SetupPerso=Prema Vašoj konfiguraciji
     PasswordPatternDesc=Opis patterna lozinke
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=Podešavanja HRM modula
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Name
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Definiši jedinicu merenja za Količinu prilikom generisanja porudžbina, ponuda ili faktura
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Podrška za listove isporuke za isporuke klijentima.
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Automatski podesi ovu default vrednost za tip događaja prilikom kreiranja događaja
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=Ovaj modul omogućava klik na brojeve telefona. Klik na ovu ikonu će izvršiti poziv sa Vašeg telefona na odgovarajući broj. Ova funkcionalnost se može koristiti ukoliko se Dolibarr poveže sa call center sistemom koji može pozvati telefonski broj sa SIP sistema.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Samo koristi link "tel:" na telefonskim brojevima
    -ClickToDialUseTelLinkDesc=Koristi ovu metodu ako korisnici imaju softphone ili softverski interfejs instaliran na istom računaru gde je i browser - biće pozvana kada kliknete na link u browseru koji počinje sa "tel:". Ukoliko Vam je potrebno celokupno server rešenje (bez instalacije softvera), ovde ostavie "Ne" i popunite sledeće polje.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Boja kojom će linija biti označena kada se mišem pređe preko nje (ostavite prazno kako linija ne bi bila označena)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Boja linkova
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=Ukoliko transporter nudi web stranu za konsultovanje statusa isporuke, možete je uneti ovde. Možete koristiti reč {TRACKID} u parametrima URL-a kako bi ga sistem zamenio vrednošću broja isporuke koji će korisnik uneti u karticu isporuke.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Primer poruke koju možete koristiti da biste najavili novu verziju (možete je koristiti na Vašim sajtovima)
     TitleExampleForMaintenanceRelease=Primer poruke koju možete koristiti da biste najavili novu ispravku (možete je koristiti na Vašim sajtovima)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=Kada je uključena opcija "Više nivoa cene za proizvod/uslugu", možete definisati različite cene za svaki proizvod (po jednu za svaki nivo cene). Da biste uštedeli vreme, ovde možete uneti pravilo za automatsko računanje cene na svim nivoima na osnovu cene koju unesete za prvi nivo. Ova strana ima za cilj da uštedi Vaše vreme i može biti korisna samo ukoliko su cene za svaki od nivoa u funkciji s prvim nivoom cene. U većini slučajeva možete ignorisati ovu stranu.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/sr_RS/banks.lang b/htdocs/langs/sr_RS/banks.lang
    index 845f59755f5..b5815363cb5 100644
    --- a/htdocs/langs/sr_RS/banks.lang
    +++ b/htdocs/langs/sr_RS/banks.lang
    @@ -7,7 +7,7 @@ BankName=Ime banke
     FinancialAccount=Račun
     BankAccount=Račun u banci
     BankAccounts=Računi u banci
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Prikaži račun
     AccountRef=Finansijski račun referenca
     AccountLabel=Oznaka finansijskog računa
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Adresa računa
     BankAccountCountry=Država računa
     BankAccountOwner=Ime vlasnika računa
     BankAccountOwnerAddress=Adresa vlasnika računa
    -RIBControlError=Provera integriteta vrednosti nije uspela. To znači da informacije za ovaj broj računa ili su nepotpune ili pogrešna (proverite državu, brojeve i IBAN)
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Kreiraj račun
     NewBankAccount=Novi račun
     NewFinancialAccount=Nov finansijski račun
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Ne može se poravnati
     Conciliate=Poravnati
     Conciliation=Poravnanje
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Uključi zatvorene račune
     OnlyOpenedAccount=Samo otvoreni računi
    @@ -104,7 +105,7 @@ SocialContributionPayment=Uplate poreza/doprinosa
     BankTransfer=Bankovni prenos
     BankTransfers=Bankovni prenosi
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Od
     TransferTo=Za
     TransferFromToDone=Prenos od  <b>%s</b> to <b>%s</b> of <b>%s</b> %s je zabeležen.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bankovni ček
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Prikaži unovčen ček
    -NumberOfCheques=Br. čeka
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Nazad na račun
     ShowAllAccounts=Prikaži za sve račune
    -FutureTransaction=Transakcije u budućnosti. Ne postoji način za izmirenje.
    -SelectChequeTransactionAndGenerate=Obeleži/filtriraj čekove da ih uključite u unovčene čekove i kliknite na "Kreiraj"
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Odaberi izvod iz banke povezan sa poravnanjem. Upotrebi sledeću numeričku vrednost: YYYYMM or YYYYMMDD
     EventualyAddCategory=Na kraju, definišite kategoriju u koju želite da klasifikujete izveštaje
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Datum vraćanja čeka
     CheckRejected=Vraćen ček
     CheckRejectedAndInvoicesReopened=Ček vraćen i faktura ponovo otvorena
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/sr_RS/bills.lang b/htdocs/langs/sr_RS/bills.lang
    index 01386cf5d3e..585e371968f 100644
    --- a/htdocs/langs/sr_RS/bills.lang
    +++ b/htdocs/langs/sr_RS/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Predračun
     InvoiceProFormaDesc=<b>Predračun</b> je neobavezujući dokument koji ima sve karakteristike računa.
     InvoiceReplacement=Zamenski račun
     InvoiceReplacementAsk=Zamenski račun za račun
    -InvoiceReplacementDesc=<b>Zamenski račun</b>se koristi da bi se otkazao i potpuno zamenio račun za koji do sada nije primljena uplata.<br><br>Napomena: Samo računi bez registrovane uplate mogu biti zamenjeni. Ukoliko račun koji menjate još uvek nije zaključen, biće automatski zaključen sa statusom "napušten"
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Knjižno odobrenje (kredit nota)
     InvoiceAvoirAsk=Knjižno odobrenje za korekciju računa
    -InvoiceAvoirDesc=<b>Kredit nota</b> je negativni račun koji se koristi za korekciju računa na kome je iznos koji se razlikuje od iznosa koji je već plaćen (zato što je kupac greškom uplatio više, ili neće platiti puni iznos računa, jer je vratio neke proizvode, npr).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Refundirano
     DeletePayment=Obriši plaćanje
     ConfirmDeletePayment=Da li ste sigurni da želite da obrišete ovu uplatu?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Plaćanja dobavljačima
     ReceivedPayments=Primljene uplate
     ReceivedCustomersPayments=Uplate primljene od kupaca
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Primljene uplate kupaca za validaciju
     PaymentsReportsForYear=Izveštaj od plaćanjima za %s
     PaymentsReports=Izveštaj o plaćanjima
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Uslovi plaćanja
     PaymentAmount=Iznos za plaćanje
     ValidatePayment=Potvrdi plaćanje
     PaymentHigherThanReminderToPay=Iznos koji želite da platiteje viši od iznosa za plaćanje
    -HelpPaymentHigherThanReminderToPay=Pažnja, iznos za plaćanje na jednom ili više računa je viši od preostalog iznosa za plaćanje. <br> Izmenite svoj unos, ili potvrdite i razmislite o kreiranju knjižnog odobrenja za svaki više uplaćen račun.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Klasifikuj kao "plaćeno"
     ClassifyPaidPartially=Klasifikuj "delimično plaćeno"
     ClassifyCanceled=Klasifikuj "napušteno"
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Zatvoreno (neplaćeno)
     BillStatusClosedPaidPartially=Plaćeno (delimično)
     BillShortStatusDraft=Nacrt
     BillShortStatusPaid=Plaćeno
    -BillShortStatusPaidBackOrConverted=Refundirano ili konvertovano
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Plaćeno
     BillShortStatusCanceled=Napušteno
     BillShortStatusValidated=Potvrdjeno
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Nije refundirano
     BillShortStatusClosedUnpaid=Zatvoreno
     BillShortStatusClosedPaidPartially=Plaćeno (delimično)
     PaymentStatusToValidShort=Za potvrdu
    -ErrorVATIntraNotConfigured=PIB broj nije definisan
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Nije definisan obrazac za plaćanje. Izvršite podešavanje modula "Računi" kako biste ovo ispravili
     ErrorCreateBankAccount=Kreiraj bankovni račun, a potom idi u panel za podešavanje modula "Računi" da biste definisali načine plaćanja
     ErrorBillNotFound=Račun %s ne postoji
    -ErrorInvoiceAlreadyReplaced=Greška! Pokušavate da potvrdite račun koji treba da zameni račun %s. Ali, ovaj račun je već zamenjen računom %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Greška! Popust je već iskorišćen
     ErrorInvoiceAvoirMustBeNegative=Greška! Račun korekcije mora imati negativan iznos
     ErrorInvoiceOfThisTypeMustBePositive=Greška! Ovaj tip računa mora imati pozitivan iznos
     ErrorCantCancelIfReplacementInvoiceNotValidated=Greška! Ne možete otkazati račun koji je zamenjen drugim računom, koji je još uvek u status nacrta.
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Od
     BillTo=Za
     ActionsOnBill=Akcije nad računom
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Da li ste sigurni da želite da promeni status računa <
     ConfirmCancelBill=Da li ste sigurni da želite da otkažete račun <b>%s</b>?
     ConfirmCancelBillQuestion=Zašto želite da klasifikujete ovaj račun kao  'napušten'?
     ConfirmClassifyPaidPartially=Da li ste sigurni da želite da promeni status računa <b>%s</b> u status plaćen?
    -ConfirmClassifyPaidPartiallyQuestion=Ovaj račun nije plaćen u celosti. Iz kojih razloga želite da zatvorite ovaj račun?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Other
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Da li ste sigurni da želite da potvrdite ovu uplatu? Kada je uplata potvrdjena, promene nisu moguće.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Da li ste sigurni da želite da napravite kopiju ovog računa <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Da li ste sigurni da želite da uklonite ovaj popust?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Nacrt
     PaymentTypeFAC=Faktor
     PaymentTypeShortFAC=Faktor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=ID depozita
     NbCheque=Broj čekova
     CreditNoteConvertedIntoDiscount=Ovo %s je konvertovano u %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/sr_RS/cashdesk.lang b/htdocs/langs/sr_RS/cashdesk.lang
    index f26d33c3074..d8bee365cfe 100644
    --- a/htdocs/langs/sr_RS/cashdesk.lang
    +++ b/htdocs/langs/sr_RS/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Prikaži firmu
     ShowStock=Prikaži magacin
     DeleteArticle=Kliknite da uklonite ovaj atikal
     FilterRefOrLabelOrBC=Pretraži (Ref/Oznaku)
    -UserNeedPermissionToEditStockToUsePos=Zatražili ste da smanjite zalihe na kreiranoj fakturi, tako da korisnik koji koristi POS mora da zatraži dozvolu da izmeni zalihe.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr štampač računa
    +PointOfSale=Maloprodaje
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/sr_RS/commercial.lang b/htdocs/langs/sr_RS/commercial.lang
    index f50463d51e1..bc9f2438583 100644
    --- a/htdocs/langs/sr_RS/commercial.lang
    +++ b/htdocs/langs/sr_RS/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefonski poziv
     ActionAC_FAX=Posalji faksom
     ActionAC_PROP=Pošalji ponudu mejlom
     ActionAC_EMAIL=Pošalji mejl
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Sastanci
     ActionAC_INT=Intervencija na lokaciji
     ActionAC_FAC=Pošalji fakturu klijentu na mejl
    @@ -72,8 +73,8 @@ StatusProsp=Status prospekta
     DraftPropals=Nacrt komercijalne ponude
     NoLimit=Bez limita
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/sr_RS/companies.lang b/htdocs/langs/sr_RS/companies.lang
    index dc043bc5ae4..e95eb7d0d9c 100644
    --- a/htdocs/langs/sr_RS/companies.lang
    +++ b/htdocs/langs/sr_RS/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Izaberi subjekat
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Obriši kontakt/adresu
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=Novi subjekt
    -MenuNewCustomer=Novi klijent
    -MenuNewProspect=Novi kandidat
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Novo fizičko lice
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Kreiraj subjekt
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Kontakt/adresa subjekta
     Company=Kompanija
     CompanyName=Ime kompanije
     AliasNames=Alias (komercijalni)
    -AliasNameShort=Alias
    +AliasNameShort=Alias Name
     Companies=Kompanije
    -CountryIsInEEC=Zemlja je unutar EU
    -ThirdPartyName=Ime subjekta
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Subjekt
    -ThirdParties=Subjekti
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Kandidati
     ThirdPartyProspectsStats=Kandidati
     ThirdPartyCustomers=Klijenti
     ThirdPartyCustomersStats=Klijenti
     ThirdPartyCustomersWithIdProf12=Klijenti sa %s ili %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Tip subjekta
    +ThirdPartyType=Type of company
     Individual=Fizičko lice
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Osnovna kompanija
     Subsidiaries=SubsidiariesPoslovnice
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Poštanski broj
     Town=Grad
     Web=Web
     Poste= Pozicija
    -DefaultLang=Jezik po default-u
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Ponude
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Sintaksa je ispravna
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Klijent ima default popust od <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Klijent nema default relativni popust
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Nema
    -Supplier=Dobavljač
    +Supplier=Vendor
     AddContact=kreiraj kontakt
     AddContactAddress=Kreiraj kontakt/adresuz
     EditContact=Izmeni kontakt
    @@ -303,22 +303,22 @@ AddThirdParty=Kreiraj subjekt
     DeleteACompany=Obriši kompaniju
     PersonalInformations=Lični podaci
     AccountancyCode=Računovodstveni nalog
    -CustomerCode=Kod klijenta
    -SupplierCode=Vendor code
    -CustomerCodeShort=Kod klijenta
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Kod klijenta, jedinstven za sve klijente
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Obavezno ako je subjekt klijent ili kandidat
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Ispravnost je kontrolisana u modulu
    -ThisIsModuleRules=Ovo su pravila za ovaj modul
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Kandidat za kontaktiranje
     CompanyDeleted=Kompanija "%s" je obrisana iz baze.
     ListOfContacts=Lista kontakta/adresa
     ListOfContactsAddresses=Lista kontakta/adresa
    -ListOfThirdParties=Lista subjekata
    -ShowCompany=Show third party
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Prikaži kontakt
     ContactsAllShort=Sve (Bez filtera)
     ContactType=Tip kontakta
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Ovaj kontakt nije ni u jednoj ponudi
     NoContactForAnyContract=Ovaj kontakt nije ni u jednom ugovoru
     NoContactForAnyInvoice=Ovaj kontakt nije ni u jednom računu
     NewContact=Novi kontakt
    -NewContactAddress=Novi kontakt/adresa
    +NewContactAddress=New Contact/Address
     MyContacts=Moji kontakti
     Capital=Kapital
     CapitalOf=Kapital od %s
     EditCompany=Izmeni kompaniju
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Proveri
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Proveri Intracomunnautary VAT na sajtu Europske komisije
    -VATIntraManualCheck=Možete i ručno proveriti na evropskom web sajtu <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Provera nije moguća. Servis nije dostupan za datu državu (%s).
    -NorProspectNorCustomer=Nije kandidat ni klijent
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Zaposleni
     ProspectLevelShort=Potencijal
     ProspectLevel=Potencijal kandidata
    @@ -387,12 +387,12 @@ ExportCardToFormat=Izvozna kartica za formatiranje
     ContactNotLinkedToCompany=Kontakt nije povezan ni sa jednim subjektom
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=Nemoguć pristup Dolibarr-u
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Kontakti i podešavanja
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Nivo cene
     DeliveryAddress=Adresa dostave
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Obriši fajl
     ConfirmDeleteFile=Da li ste sigurni da želite da obrišete fajl?
     AllocateCommercial=Assigned to sales representative
     Organization=Organizacija
    -FiscalYearInformation=Informacije o fiskalnoj godini
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Prvi mesec fiskalne godine
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Lista kandidata
    -ListCustomersShort=Lista klijenata
    -ThirdPartiesArea=Subjekti i obast kontakta
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Ukupno jedinstvenih subjekata
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Otvoreno
     ActivityCeased=Zatvoreno
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Ime menadžera (CEO, direktor, predsednik...)
     MergeOriginThirdparty=Duplirani subjekt (subjekt kojeg želite obrisati)
     MergeThirdparties=Spoji subjekte
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/sr_RS/dict.lang b/htdocs/langs/sr_RS/dict.lang
    index b38d2727d9c..da707274aaa 100644
    --- a/htdocs/langs/sr_RS/dict.lang
    +++ b/htdocs/langs/sr_RS/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldavija
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turska
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dolari
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Od ova do uva
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Zaposleni
     DemandReasonTypeSRC_SPONSORING=Sponzorstvo
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/sr_RS/ecm.lang b/htdocs/langs/sr_RS/ecm.lang
    index 86091a7c03d..35750af87f0 100644
    --- a/htdocs/langs/sr_RS/ecm.lang
    +++ b/htdocs/langs/sr_RS/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Br dokumentata u folderu
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Folder
     ECMSectionManual=Ručni folder
     ECMSectionAuto=Automatski folder
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Dokumenti vezani za projekte
     ECMDocsByUsers=Dokumenti vezani za korisnike
     ECMDocsByInterventions=Dokumenti vezani za intervencije
     ECMDocsByExpenseReports=Dokumenta povezana za izveštajem o troškovima
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Folder nije kreiran
     ShowECMSection=Pokaži folder
     DeleteSection=Obriši folder
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/sr_RS/errors.lang b/htdocs/langs/sr_RS/errors.lang
    index 6d5b40cf554..a7e80297a5a 100644
    --- a/htdocs/langs/sr_RS/errors.lang
    +++ b/htdocs/langs/sr_RS/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Vrednost "%s" ima pogrešan format datma
     ErrorWrongDate=Datum nije ispravan!
     ErrorFailedToWriteInDir=Greška prilikom pisanja u folder %s
     ErrorFoundBadEmailInFile=Pronađeni su mailovi sa pogrešnom sintaksom za %s linija u fajlu (primer linija %s sa mailom %s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Neka obavezna polja nisu popunjena
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Greška prilikom kreacije foldera. Proverite da li Web server nalog ima prava da piše u Dolibarr documents folderu. Ako je parametar <b>safe_mode</b> aktivan u PHP-u, proverite da li Dolibarr php fajlovi pripadaju korisniku (ili grupi) Web server naloga.
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Molimo izaberite vrednost u select listi
     ErrorNoValueForCheckBoxType=Molimo izaberite vrednost u checkbox listi
     ErrorNoValueForRadioType=Molimo izaberite vrednost u radio listi
     ErrorBadFormatValueList=Vrednost u listi ne može imati više od jednog zareza: <u>%s</u>, ali je potreban makar jedan: ključ,vrednost
    -ErrorFieldCanNotContainSpecialCharacters=Polje <b>%s</b> ne sme sadržati specijalne karaktere.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Polje <b>%s</b> ne sme sadržati specijalne karaktere, velika slova i ne sme se sastojati samo od brojeva.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Modul računovodstvo nije aktiviran
     ErrorExportDuplicateProfil=Ovo ime profila već postoji za ovaj export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching nije završen.
     ErrorLDAPMakeManualTest=.ldif fajl je generisan u folderu %s. Pokušajte da ga učitate ručno iz komandne linije da biste imali više informacija o greškama.
    -ErrorCantSaveADoneUserWithZeroPercentage=Nemoguće saluvati akciju sa statusom "nije započet" ukoliko je polje "izvršio" popunjeno.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref korišćena za kreaciju već postoji.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Nemoguće obrisati liniju jer je već u upotrebi ili korišćena u drugom objektu.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Da bi ova funkcionalnost bila dostupna, Javascript mora biti aktiviran. Da biste uključili/isključili javascript, otvorite Home->Podešavanja->Prikaz.
     ErrorPasswordsMustMatch=Unete lozinke se moraju podudarati
    -ErrorContactEMail=Došlo je do tehničke greške. Molimo kontaktirajte administratora mailom <b>%s</b> i navedite grešku <b>%s</b> u poruci, ili pošaljite screenshot ove strane.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Pogrešna vrednost za polje broj <b>%s</b> (vrednost "<b>%s</b>" ne odgovara regex pravilu <b>%s</b>)
     ErrorFieldValueNotIn=Pogrešna vrednost za polje broj <b>%s</b> (vrednost "<b>%s</b>" nije dostupna za polje <b>%s</b> u tabeli <b>%s</b>)
     ErrorFieldRefNotIn=Pogrešna vrednost za polje broj <b>%s</b> (vrednost "<b>%s</b>" nije <b>%s</b> postoječi ref.)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Antivirus nije mogao da potvrdi fajl (moguće je d
     ErrorSpecialCharNotAllowedForField=Specijalni karakteri nisu dozvoljeni u polju "%s"
     ErrorNumRefModel=U bazi postoji referenca (%s) koja nije kompatibilna sa ovim pravilom. Uklonite taj red ili preimenujte referencu kako biste aktivirali ovaj modul.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Greška za masku
     ErrorBadMaskFailedToLocatePosOfSequence=Greška, maska bez broja sekvence
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Greška, pogrešna reset vrednost
     ErrorMaxNumberReachForThisMask=Maksimalan broj dostignut za ovu masku
     ErrorCounterMustHaveMoreThan3Digits=Brojač mora imati više od 3 cifre
     ErrorSelectAtLeastOne=Greška. Izaberite bar jednu vrednost.
    -ErrorDeleteNotPossibleLineIsConsolidated=Brisanje je nemoguće jer je red vezan za proknjiženu bankarsku transakciju.
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s je dodeljena drugom subjektu
     ErrorFailedToSendPassword=Greška prilikom slanja lozinke
     ErrorFailedToLoadRSSFile=Greška prilikom čitanja RSS-a. Pokušajte da dodate konstantu MAIN_SIMPLEXMLLOAD_DEBUG ukoliko nemate dovoljno podataka za analizu greške.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Korisnik <b>%s</b> nije pronađen.
     ErrorLoginHasNoEmail=Korisnik nema mail adresu. Operacija otkazana.
     ErrorBadValueForCode=Pogrešna vrednost za sigurnosni kod. Pokušajte ponovo sa novom vrednošću...
     ErrorBothFieldCantBeNegative=Oba polja ne mogu oba biti negativna: %s i %s
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Količina za liniju na fakturi klijenta ne može biti negativna.
     ErrorWebServerUserHasNotPermission=Korisnik <b>%s</b> nema prava za izvršavanje na web serveru
     ErrorNoActivatedBarcode=Barcode tip nije aktiviran
    @@ -138,7 +141,7 @@ ErrorBadFormat=Pogrešan format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Greška, postoje objekti vezani za ovu isporuku. Brisanje je odbijeno.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Nemoguće obrisati uplatu koja je vezana za bar jednu fakturu sa statusom Plaćeno
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Nemoguće dodeliti konstanti "%s"
     ErrorPriceExpression2=Nemoguće redefinisati built-in funkciju "%s"
     ErrorPriceExpression3=Nedefinisana promenljiva "%s" u definiciji funkcije
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Neočekivani "%s"
     ErrorPriceExpression6=Pogrešan broj parametara (zadato %s, očekivano %s)
     ErrorPriceExpression8=Neočekivani operator "%s"
     ErrorPriceExpression9=Došlo je do neočekivane greške
    -ErrorPriceExpression10=Operator "%s" očekuje operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Očekivano "%s"
     ErrorPriceExpression14=Deljenje nulom
     ErrorPriceExpression17=Nedefinisana promenljiva "%s"
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=Greška u SOAP klijentu "%s"
     ErrorGlobalVariableUpdater5=Nema selektovane globalne promenljive
     ErrorFieldMustBeANumeric=Polje <b>%s</b> mora biti numeričko
     ErrorMandatoryParametersNotProvided=Obavezni parametar(i) nije dat
    -ErrorOppStatusRequiredIfAmount=Podesili ste procenjeni iznos za ovu priliku, tako da morate uneti i status.
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Pogrešna definicija Menu Array u Module Descriptoru (pogrešna vrednost za fk_menu)
    -ErrorSavingChanges=Došlo je do greške prilikom čuvanja promena.
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Magacin je neophodan na liniji do isporuke
     ErrorFileMustHaveFormat=Mora imati format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=Lozinka je podešena za ovog člana, ali korisnik nije kreiran. To znači da je lozinka sačuvana, ali se član ne može ulogovati na Dolibarr. Informaciju može koristiti neka eksterna komponenta, ali ako nemate potrebe da definišete korisnika/lozinku za članove, možete deaktivirati opciju "Upravljanje lozinkama za svakog člana" u podešavanjima modula Članovi. Ukoliko morate da kreirate login, ali Vam nije potrebna lozinka, ostavite ovo polje prazno da se ovo upozorenje ne bi prikazivalo. Napomena: email može biti korišćen kao login ako je član povezan sa korisnikom.
     WarningMandatorySetupNotComplete=Obavezna podešavanja još nisu obavljena.
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Oznaka sa ovim naslovom ili ovim URL-om već postoj
     WarningPassIsEmpty=Upozorenje, lozinka baze je prazna. Ovo je sigurnosni propust. Trebalo bi da dodate lozinku Vašoj bazi i da izmenite fajl config.php u skladu s tim.
     WarningConfFileMustBeReadOnly=Upozorenje, Vaš konfiguracioni fajl <b>htdocs/conf/conf.php</b> može biti izmenjen od strane web servera. Ovo je ozbiljan sigurnosni propust. Izmenite prava na ovom fajlu kako bi web server mogao samo da ga čita. Ukoliko koristite Windows i FAT format za Vaš disk, morate znati da ovaj sistem ne podržava upravljanje pravima i ne može biti pouzdan.
     WarningsOnXLines=Upozorenja na <b>%s</b> izvornih linija.
    -WarningNoDocumentModelActivated=Nema aktivnog modela za generisanje dokumenata. Možete izabrati model po defaultu dok ne izmenite podešavanja modula.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Upozorenje, kada je podešavanje završeno, morate deaktivirati alate za instalaciju/migraciju tako što ćete dodati fajl <b>install.lock</b> u folder <b>%s</b>. Nedostatak ovog fajla je sigurnosni propust.
    -WarningUntilDirRemoved=Sva sigurnosna upozorenja (vidljiva samo od strane administratora) će ostati aktivna sve dok postoji problem (ili ukoliko postavite konstantu MAIN_REMOVE_INSTALL_WARNING u meniju Podešavanja->Druga podešavanja).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Upozorenje, zatvaranje će biti izvršeno čak i kada se iznos izvornih i ciljnih elemenata razlikuje. Budite pažljivi ako aktivirate ovu opciju.
     WarningUsingThisBoxSlowDown=Upozorenje, aktiviranje ove opcije će značajno usporiti prikaz svih strana koje prikazuju informaciju.
     WarningClickToDialUserSetupNotComplete=Podešavanja ClickToDial informacija za Vašeg korisnika nisu završena (pogledajte tab ClickToDial na kartici korisnika)
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Previše podataka (preko %s linija). Moli
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Vaša prijava je promenjena. Iz sigurnosnih razloga se morate ponovo ulogovati.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/sr_RS/help.lang b/htdocs/langs/sr_RS/help.lang
    index 43b8cc1f621..16b41f8b704 100644
    --- a/htdocs/langs/sr_RS/help.lang
    +++ b/htdocs/langs/sr_RS/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote podrška
     OtherSupport=Druga podrška
     ToSeeListOfAvailableRessources=Da biste kontaktirali/videli raspoložive resurse:
     HelpCenter=Help centar
    -DolibarrHelpCenter=Dolibarr help centar i podrška
    -ToGoBackToDolibarr=U suprotnom, kliknite <a href="%s">ovde da otvorite Dolibarr</a>
    -TypeOfSupport=Izvor podrške
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (besplatno)
     TypeSupportCommercial=Komercijalna
     TypeOfHelp=Tip
    @@ -15,12 +15,9 @@ NeedHelpCenter=Potrebna vam je pomoć ili podrška?
     Efficiency=Efikasnost
     TypeHelpOnly=Samo pomoć
     TypeHelpDev=Pomoć+Razvoj
    -TypeHelpDevForm=Pomoć+Razvoj+Obuka
    -ToGetHelpGoOnSparkAngels1=Neke kompanije mogu pružiti bržu (nekada i trenutnu) i efikasniju online podršku ukoliko preuzmu kontrolu nad Vašim računarom. Ovakva podrška je dostupna na <b>%s</b> web sajtu:
    -ToGetHelpGoOnSparkAngels3=Takođe možete konsultovati listu dostupnih Dolibarr eksperata - za to kliknite na dugme
    -ToGetHelpGoOnSparkAngels2=Ponekad nema dostupnih kompanija u trenutku kada vršite pretragu. Zato nemojte zaboraviti da promenite filter da biste potražili "sve dostupnosti". Bićete u mogućnosti da pošaljete više zahteva.
    -BackToHelpCenter=U suprotnom, kliknite ovde da otvorite <a href="%s">naslovnu stranu help centra</a>.
    -LinkToGoldMember=Možete pozvati jednog od preselektovanih eksperata za Dolibarr na Vašem jeziku (%s) tako što ćete kliknuti njegov Widget (status i maksimalna cena su automatski ažurirani):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Podržani jezici
    -SubscribeToFoundation=Pomozite Dolibarr projektu, učlanite se u fondaciju
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Za zvaničnu Dolibarr podršku na Vašem jeziku: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/sr_RS/holiday.lang b/htdocs/langs/sr_RS/holiday.lang
    index 5f1a64c53d9..5fd903c0361 100644
    --- a/htdocs/langs/sr_RS/holiday.lang
    +++ b/htdocs/langs/sr_RS/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Odsustva
    -CPTitreMenu=Odsustva
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Mesečna promena
     MenuAddCP=Novi zahtev za odsustvo
    -NotActiveModCP=Morate aktivirati modul Odsustva da biste videli ovu stranu.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Zatraži odsustvo
     DateDebCP=Početak
     DateFinCP=Kraj
    @@ -15,13 +15,18 @@ ApprovedCP=Odobren
     CancelCP=Otkazan
     RefuseCP=Odbijen
     ValidatorCP=Odobrava
    -ListeCP=Lista odsustva
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Opis
     SendRequestCP=Kreiraj zahtev za odsustvo
     DelayToRequestCP=Zahtevi za odsustvo moraju biti kreirani makar <b>%s dan(a)</b> pre odsustva.
    -MenuConfCP=Balans odsustva
    -SoldeCPUser=Broj slobodnih dana je <b>%s</b>.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Morate selektovati kraj posle početka.
     ErrorSQLCreateCP=Došlo je do SQL greške prilikom kreacije:
     ErrorIDFicheCP=Došlo je do greške, zahtev za odsustvo ne postoji.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=Nemate prava da vidite ovaj zahtev za odsustvo.
     InfosWorkflowCP=Tok informacija
     RequestByCP=Zatražio
     TitreRequestCP=Zahtev za odsustvo
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Broj potrošenih dana od odmora
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Izmeni
     DeleteCP=Obriši
     ActionRefuseCP=Odbij
    @@ -59,6 +71,7 @@ DateRefusCP=Datum odbijanja
     DateCancelCP=Datum otkazivanja
     DefineEventUserCP=Dodeli vanredno odsustvo za korisnika
     addEventToUserCP=Dodeli odsustvo
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Razlog
     UserCP=Korisnik
     ErrorAddEventToUserCP=Greška prilikom kreiranja vanrednog odsustva.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Uspešno ažurirano
     Module27130Name= Upravljanje zahtevima za odsustvo
     Module27130Desc= Upravljanje zahtevima za odsustvo
    @@ -94,7 +112,7 @@ NoticePeriod=Rok za obaveštenje
     HolidaysToValidate=Odobri zahteve za odsustva
     HolidaysToValidateBody=Ispod je zahtev za odobrenje
     HolidaysToValidateDelay=Ovaj zahtev se odnosi na period manji od %s dana
    -HolidaysToValidateAlertSolde=Korisnik koji je napravio zahtev nema dovoljno slobodnih dana.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Odobreni zahtevi za odsustva
     HolidaysValidatedBody=Vaš zahtev za odsustvo %s do %s je potvrđen.
     HolidaysRefused=Zahtev odbijen
    @@ -103,4 +121,9 @@ HolidaysCanceled=Otkazan zahtev za odsustvo
     HolidaysCanceledBody=Vaš zahtev za odsustvo %s do %s je otkazan.
     FollowedByACounter=1: Ovaj tip odsustva treba da se prati brojačem. Brojač se povećava ručno ili automatski i kada je odsustvo potvrđeno, brojač se smanjuje. <br> 0: Ne prati se brojačem.
     NoLeaveWithCounterDefined=Ne postoje definisana odsustva koja treba da se prate brojačem
    -GoIntoDictionaryHolidayTypes=Idite na <strong>Home - Podešavanja - Rečnik - Tip odsustva</strong> da biste podesili različite tipove odsustva.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/sr_RS/install.lang b/htdocs/langs/sr_RS/install.lang
    index 416bb2b3aa2..98838349541 100644
    --- a/htdocs/langs/sr_RS/install.lang
    +++ b/htdocs/langs/sr_RS/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Samo pratite instrukcije korak po korak.
     MiscellaneousChecks=Provera konfiguracije
     ConfFileExists=Konfiguracioni fajl <b>%s</b> postoji.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Konfiguracioni fajl <b>%s</b> ne postoji i ne može biti kreiran !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Konfiguracioni fajl <b>%s</b> može biti kreiran.
    -ConfFileIsNotWritable=Nemoguće izmeniti konfiguracioni fajl <b>%s</b>. Proverite prava. Za prvu instalaciju, Vaš web server mora imati mogućnost da izmeni ovaj fajl prilikom konfiguracije ("chmod 666" na primer na *NIX sistemu).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Konfiguracioni fajl <b>%s</b> može biti izmenjen.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Učitaj sve informacije iz konfiguracionog fajla.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=PHP podržava sesije.
     PHPSupportPOSTGETOk=PHP podržava POST i GET promenljive
    -PHPSupportPOSTGETKo=Moguće je da Vaš PHP ne podržava POST i/ili GET promenljive. Proverite parametar <b>variables_order</b> u php.ini.
    -PHPSupportGD=PHP podržava GD grafičke funkcije.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=PHP podržava UTF8 funkcije.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Maksimalna memorija za sesije je <b>%s</b>. To bi trebalo biti dovoljno.
    -PHPMemoryTooLow=Maksimalna memorija za sesije je <b>%s</b> bytes. Ovo ne bi trebalo da je dovoljno. Promenite <b>php.ini</b> i podesite <b>memory_limit</b> na najmanje <b>%s</b> bytes.
    -Recheck=Kliknite ovde za detaljniji test
    -ErrorPHPDoesNotSupportSessions=Vaš PHP ne podržava sesije. Ova funkcionalnost je neophodna za Dolibarr. Proverite PHP podešavanja.
    -ErrorPHPDoesNotSupportGD=Vaša PHP instalacija ne podržava grafičke funkcije GD. Grafici neće biti dostupni.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Vaša PHP instalacija ne podržava UTF8 funkcije. Dolibarr ne može da funkcioniše kako treba. Ispravite ovo pre instalacije Dolibarr-a.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Folder %s ne postoji.
    -ErrorGoBackAndCorrectParameters=Vratite se nazad i ispravite pogrešne parametre.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Verovatno ste uneli pogrešnu vrednost za parametar "%s"
     ErrorFailedToCreateDatabase=Greška prilikom kreacije baze podataka "%s".
     ErrorFailedToConnectToDatabase=Greška prilikom povezivanja na bazu podataka "%s".
     ErrorDatabaseVersionTooLow=Verzija baze (%s) je previš stara. Neophodna je verzija %s ili novija.
     ErrorPHPVersionTooLow=Verzija PHP instalacije je previše stara. Neophodna je verzija %s.
    -ErrorConnectedButDatabaseNotFound=Konekcija na server je uspešna, ali baza "%s" nije pronađena.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Baza "%s" već postoji.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Ukoliko baza ne postoji, vratite se nazad i selektirajte opciju "Kreiranje baze".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Ukoliko baza već postoji, vratite se nazad i od-selektirajte opciju "Kreiranje baze".
    -WarningBrowserTooOld=Vaš browser nije podržan. Preporučujemo da instalirate novu verziju Firefox, Chrome ili Opera browsera.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP verzija
     License=Korišćenje licence
     ConfigurationFile=Konfiguracioni fajl
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr baza
     DatabaseType=Tip baze
     DriverType=Tip drajvera
     Server=Server
    -ServerAddressDescription=Ime ili IP adresa servera baze, obično "localhost" kada je baza na istom serveru kao i web server.
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Port baze. Ostavite prazno ako nije poznat.
     DatabaseServer=Server baze
     DatabaseName=Ime baze
    -DatabasePrefix=Prefiks za tabele u bazi
    -AdminLogin=Login za vlasnika Dolibarr baze.
    -PasswordAgain=Ponovo unesite password
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password za vlasnika Dolibarr baze.
     CreateDatabase=Kreiraj bazu
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Server baze - superuser access
    -CheckToCreateDatabase=Selektirajte ovu opciju ukoliko baza ne postoji i mora biti kreirana.<br> U ovom slučaju, morate ispuniti login/lozinku superuser-a na dnu ove strane.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Prijava korisnika dozvoljena da kreira novu bazu ili korisnike, obavezno ako Vaša baza nema svog vlasnika ili ne postoji.
    -KeepEmptyIfNoPassword=Ostavite prazno ako user nema password (izbegavajte ovo)
    -SaveConfigurationFile=Sačuvaj vrednosti
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Konekcija na server
     DatabaseCreation=Kreacija baze
     CreateDatabaseObjects=Kreacija objekata baze
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Kreacije foreign key i indexa za tabelu %s
     OtherKeysCreation=Kreacija foreign key i indexa
     FunctionsCreation=Kreacija funkcija
     AdminAccountCreation=Kreacija Administrator login-a
    -PleaseTypePassword=Molimo unesite password, prazni passwordi nisu dozvoljeni !
    -PleaseTypeALogin=Molimo ukucajte login !
    -PasswordsMismatch=Lozinke su različite, pokušajte ponovo !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Kraj setup-a
     SystemIsInstalled=Instalacija je završena.
     SystemIsUpgraded=Dolibarr je uspešno upgrade-ovan.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Treba da konfigurišete Dolibarr kako bi ste ga prilag
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Otvorite Dolibarr
     GoToSetupArea=Otvorite Dolibarr (podešavanja)
    -MigrationNotFinished=Verzija Vaše baze nije sasvim ažurna, moraćete da ponovite upgrade proceduru.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Otvorite upgrade stranu ponovo
     WithNoSlashAtTheEnd=Bez slash-a "/" na kraju
    -DirectoryRecommendation=Preporučeno je da koristite folder van Vašeg foldera za web strane.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists= Već postoji
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administratorski nalog '<b>%s</b>' postoji. Idite nazad ako želite da kreirate drugi.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Upozorenje, iz bezbednosnih razloga, kada završite instalaciju ili nadogradnju, kako bi ste izbegli ponovno korišćenje instalacionih alata, dodajte fajl <b>install.lock</b> u Dolibarr document direktorijum, radi sprečavanja zloupotrebe.
    -FunctionNotAvailableInThisPHP=Nije dostupno na ovoj verziji PHP-a
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Izaberite skriptu za migraciju
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Procesuiranje skripte
     ChooseYourSetupMode=Izaberite mod setup-a i kliknite na "Start"...
     FreshInstall=Nova instalacija
    -FreshInstallDesc=Koristite ovaj režim ako je ovo prva instalacija. Ako ne, ovaj režim može popraviti nekompletnu prethodnu instalaciju, ali ako želite da nadogradite vašu verziju, koristite režim "Nadogradnja".
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Koristite ovaj režim da zamenite stare Dolibarr fajlove sa novim fajlovima. Ovo će nadograditi vašu bazu i podatke.
     Start=Start
     InstallNotAllowed=Setup nije dozvoljen sa ovim pravima <b>conf.php</b>
     YouMustCreateWithPermission=Morate kreirati fajl %s i postaviti dozvole upisa tokom instalacionog procesa na web serveru.
    -CorrectProblemAndReloadPage=Molimo ispravite ovaj problem i pritisnite F5 da ponovo učitate stranu.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Već migrirano
     DatabaseVersion=Verzija baze
     ServerVersion=Verzija servera baze
     YouMustCreateItAndAllowServerToWrite=Morate da kreirate ovaj folder i da dozvolite web serveru da piše u njemu.
     DBSortingCollation=Sortiranje karaktera
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Hteli ste da kreirate bazu <b>%s</b>, ali za ovo, Dolibarr mora da se konektuje na server <b>%s</b> sa dozvolama super korisnika <b>%s</b>.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Hteli ste da kreirate prijavu na bazu <b>%s</b>, ali za ovo, Dolibarr mora da se konektuje na server <b>%s</b> sa dozvolama super korisnika <b>%s</b>.
    -BecauseConnectionFailedParametersMayBeWrong=Kako je konekcija neuspešna, podaci hosta ili super korisnika su pograšno uneti.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Otkrivene zaostale uplate metodom %s
     RemoveItManuallyAndPressF5ToContinue=Uklonite ručno i stisnite F5 za nastavak.
     FieldRenamed=Polje je preimenovano
    -IfLoginDoesNotExistsCheckCreateUser=Ako login još ne postoji, morate selektirati opciju "Kreacija korisnika"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migracija je završena
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Aktiviraj modul %s
     ShowEditTechnicalParameters=Kliknite ovde da prikažete/editujete napredne parametre (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=Koristite Dolibarr čarobnjaka za instalaciju iz DoliWamp-a, tako da su zahtevane vrednosti već optimizovane. Menjajte ih samo ako znate šta radite.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Migracija podataka komercijalnih ponuda
     MigrationInvoice=Migracija podataka računa klijenata
     MigrationContract=Migracija podataka ugovora
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade uspešno završen
     MigrationUpdateFailed=Greška prilikom upgrade-ovanja
     MigrationRelationshipTables=Migracija podataka veznih tabela (%s)
     MigrationPaymentsUpdate=Ispravke podataka o plaćanju
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Ispravka podataka ugovora
     MigrationContractsNumberToUpdate=%s ugovor(a) za ažuriranje
     MigrationContractsLineCreation=Kreiraj liniju ugovora za ref ugovora %s
     MigrationContractsNothingToUpdate=Nema preostalih akcija.
    -MigrationContractsFieldDontExist=Polje fk_facture više ne postoji.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Ispravka praznih datuma u ugovorima
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Nema praznih datuma u ugovorima za ispravku
     MigrationContractsEmptyCreationDatesNothingToUpdate=Nema datuma kreacije ugovora za ispravku
     MigrationContractsInvalidDatesUpdate=Pogrešna vrednost za ispravku datuma u ugovoru
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Ažuriranje isporuka
     MigrationStockDetail=Ažuriranje vrednosti zalihe proizvoda
     MigrationMenusDetail=Ažuriranje dinamičkih menija
     MigrationDeliveryAddress=Ažuriranje adresa isporuke
    -MigrationProjectTaskActors=Migracija podataka za lx_projet_task_actors tabelu
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Migracija podataka polja fk_user_resp iz llx_projet u llx_element_contact
     MigrationProjectTaskTime=Vreme ažuriranja u sekundama
     MigrationActioncommElement=Ažuriranje podataka akcija
     MigrationPaymentMode=Migracija podataka načina plaćanja
     MigrationCategorieAssociation=Migracija kategorija
    -MigrationEvents=Migracija događaja i dodavanje vlasnika događaja u assignment tabelu
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Ponovo učitavanje modula %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Prikaži nedostupne opcije
    -HideNotAvailableOptions=Sakrij nedostupne opcije
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/sr_RS/interventions.lang b/htdocs/langs/sr_RS/interventions.lang
    index e5aeaf037d1..0a733c1b1fe 100644
    --- a/htdocs/langs/sr_RS/interventions.lang
    +++ b/htdocs/langs/sr_RS/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Intervencije
     InterventionCard=Kartica intervencije
     NewIntervention=Nova intervencija
     AddIntervention=Kreiraj intervenciju
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Lista intervencija
     ActionsOnFicheInter=Akcije intervencije
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistika intervencija
    -NbOfinterventions=Broj kartica intervencije
    -NumberOfInterventionsByMonth=Broj kartica intervencije na mesečnom nivou (datum potvrde)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Id intervencije
    diff --git a/htdocs/langs/sr_RS/main.lang b/htdocs/langs/sr_RS/main.lang
    index 32e890e7cdb..cc3aa5ed8b4 100644
    --- a/htdocs/langs/sr_RS/main.lang
    +++ b/htdocs/langs/sr_RS/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Greška u slanju mail-a (pošiljalac=%s, primalac=%s)
     ErrorFileNotUploaded=Fajl nije uploadovan. Proverite da li je fajl preveliki, da li ima dovoljno prostora na disku i da li postoji fajl sa istim imenom u ovom folderu.
     ErrorInternalErrorDetected=Detektovana je greška
     ErrorWrongHostParameter=Pogrešan host parametar
    -ErrorYourCountryIsNotDefined=Vaša zemlja nije definisana. Idite na Početna-Podešavanja-Izmene i ponovo popunite formu
    -ErrorRecordIsUsedByChild=Greška prilikom brisanja linije. Ovu liniju koristi jedan ili više drugih redova. 
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Pogrešna vrednost
     ErrorWrongValueForParameterX=Pogrešna vrednost za parametar %s
     ErrorNoRequestInError=Nema upita sa greškom
    -ErrorServiceUnavailableTryLater=Servis trenutno nije dostupan. Pokušajte ponovo.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Dupla vrednost u jedinstvenom polju
    -ErrorSomeErrorWereFoundRollbackIsDone=Detektovane su greške. Poništavamo sve promene.
    -ErrorConfigParameterNotDefined=Parametar <b>%s</b> nije definisan u Dolibarr config fajlu <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Korisnik <b>%s</b> nije pronađen u Dolibarr bazi.
     ErrorNoVATRateDefinedForSellerCountry=Greška, PDV stopa nije definisana za zemlju "%s".
     ErrorNoSocialContributionForSellerCountry=Greška, nema poreskih stopa definisanih za zemlju "%s".
     ErrorFailedToSaveFile=Greška, nemoguće sačuvati fajl.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=Nemate prava za tu akciju.
     SetDate=Postavi datum
     SelectDate=Izaberi datum
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=Fajl je uspešno uploadovan
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=Fajl je selektiran za prilog, ali još uvek nije uploadovan. Klikni na "Priloži fajl".
    -NbOfEntries=Br linija
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Pročitajte pomoć
     RecordSaved=Linija sačuvana
    @@ -94,7 +94,7 @@ Undefined=Nedefinisano
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=Pogledajte iznad
    -HomeArea=Oblast Home
    +HomeArea=Početna
     LastConnexion=Latest connection
     PreviousConnexion=Prethodna konekcija
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Zatvoreno
     Closed2=Zatvoreno
     NotClosed=Not closed
     Enabled=Uključeno
    +Enable=Aktiviraj
     Deprecated=Prevaziđeno
     Disable=Isključite
     Disabled=Isključeno
    @@ -153,7 +154,7 @@ Update=Ažuriraj
     Close=Zatvori
     CloseBox=Remove widget from your dashboard
     Confirm=Potvrdi
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Obriši
     Remove=Ukloni
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Kopiraj
     Paste=Zalepi
     Default=Default
     DefaultValue=Default vrednost
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Cena
     PriceCurrency=Price (currency)
     UnitPrice=Jedinična cena
    @@ -347,7 +348,7 @@ AmountTTCShort=Iznos (bruto)
     AmountHT=Iznos (neto)
     AmountTTC=Iznos (bruto)
     AmountVAT=Iznos poreza
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Iznos (osnovica), originalna valuta
    @@ -428,7 +429,7 @@ ActionNotApplicable=Nije primenjivo
     ActionRunningNotStarted=Započeti
     ActionRunningShort=In progress
     ActionDoneShort=Završeno
    -ActionUncomplete=nepotpuno
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Kontakti za ovaj subjekat
     ContactsAddressesForCompany=Kontakti/adrese za ovaj subjekat
     AddressesForCompany=Adrese za ovaj subjekat
     ActionsOnCompany=Događaji vezani za ovaj subjekat
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Događaji vezani za ovog člana
     ActionsOnProduct=Events about this product
     NActionsLate=%s kasni
    @@ -453,8 +455,8 @@ Generate=Gereriši
     Duration=Trajanje
     TotalDuration=Ukupno trajanje
     Summary=Rezime
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Dostupno
     NotYetAvailable=Još uvek nedostupno
    @@ -468,7 +470,7 @@ and=i
     or=ili
     Other=Drugo
     Others=Drugi
    -OtherInformations=Druge informacije
    +OtherInformations=Other information
     Quantity=Količina
     Qty=Kol.
     ChangedBy=Izmenio
    @@ -506,7 +508,7 @@ None=Ništa
     NoneF=Ništa
     NoneOrSeveral=None or several
     Late=Kasni
    -LateDesc=Odloži definisanje da li je zapis zakasneo ili ne zavisi od vašeg podešenja. Zamolite Vašeg administratora da promeni odlaganje u Naslovna-Podešenja-Upozorenja
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Slika
     Photos=Slike
    @@ -530,18 +532,6 @@ September=Septembar
     October=Oktobar
     November=Novembar
     December=Decembar
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=Maj
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Avg
    -SeptemberMin=Sep
    -OctoberMin=Okt
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=Januar
     Month02=Februar
     Month03=Mart
    @@ -646,6 +636,8 @@ SendMail=Pošalji email
     EMail=E-mail
     NoEMail=Nema maila
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Nema mobilnog telefona
     Owner=Vlasnik
     FollowingConstantsWillBeSubstituted=Sledeće konstante će biti zamenjene odgovarajućim vrednostima.
    @@ -677,7 +669,7 @@ NeverReceived=Nije primljena
     Canceled=Otkazano
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=Možete postaviti podrazumevane vrednosti pri kreiranju novog zapisa u modul podešavanja
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Boja
     Documents=Povezani fajlovi
     Documents2=Dokumenti
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Prikaži komandu sa sakrivenom lozinkom
     UnHidePassword=Prikaži realnu komandu sa vidljivom lozinkom
     Root=Root
    -Informations=Informacije
    +Informations=Informacija
     Page=Strana
     Notes=Beleške
     AddNewLine=Dodaj liniju
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Prikaži stranu za štampanje glavnog sadržaja
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Upozorenje, trenutno ste u modu održavanja, samo korisnik <b>%s</b> može trenutno koristiti aplikaciju.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Sistemska greška
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Kreditna kartica
     ValidatePayment=Potvrdi plaćanje
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Polja sa <b>%s</b> su obavezna
    -FieldsWithIsForPublic=Polja sa <b>%s</b> su prikazana na javnim listama članova. Ukoliko to ne želite, odčekirajte opciju "javno".
    -AccordingToGeoIPDatabase=(po GeoIP konvenciji)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Linija
     NotSupported=Nije podržano
     RequiredField=Obavezno polje
    @@ -732,6 +724,8 @@ Result=Rezultat
     ToTest=Test
     ValidateBefore=Kartica mora biti potvrđena pre korišćenja ove funkcionalnosti
     Visibility=Vidljivost
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privatno
     Hidden=Skriveno
     Resources=Resursi
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link ka narudžbini
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Napravi draft
     SetToDraft=Nazad u draft
     ClickToEdit=Klikni za edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=Po danu
     BySalesRepresentative=Po agentu prodaje
     LinkedToSpecificUsers=Povezano sa kontaktom korisnika
     NoResults=Nema rezultata
    -AdminTools=Administratorski alati
    +AdminTools=Admin Tools
     SystemTools=Sistemski alati
     ModulesSystemTools=Alati modua
     Test=Test
     Element=Element
     NoPhotoYet=Još nema slika
     Dashboard=Kontrolna tabla
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Može se odbiti
     from=od
     toward=ka
    @@ -802,7 +798,7 @@ PrintFile=Štampaj fajl %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Prikaži intervenciju
     ShowContract=Pokaži ugovor
    -GoIntoSetupToChangeLogo=Otvori Home - Podešavanja - Kompanija da biste izmenili logo ili Home - Setup - Prikaz da biste ga sakrili.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Odbij
     Denied=Odbijeno
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Srdačan pozdrav
     DeleteLine=Obriši red
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Zona za dokumenta kreirana masovnim akcijama
     ShowTempMassFilesArea=Prikaži zonu za dokumenta kreirana masovnim akcijama
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Označi kao naplaćenu
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Kalendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Trošak
     ExpenseReports=Troškovi
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Događaj
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Projekat
     Projects=Projekti
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Prava
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Ponedeljak
     Tuesday=Utorak
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Intervencije
     SearchIntoContracts=Ugovori
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Troškovi
    -SearchIntoLeaves=Odsustva
    +SearchIntoLeaves=Leave
     CommentLink=Komentari
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Svi
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Platio
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Dodeljeno
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/sr_RS/other.lang b/htdocs/langs/sr_RS/other.lang
    index 283cd24c7ac..1f46e34c73d 100644
    --- a/htdocs/langs/sr_RS/other.lang
    +++ b/htdocs/langs/sr_RS/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Bezbednosni kod
     NumberingShort=N°
     Tools=Alati
     TMenuTools=Alati
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Datum rođenja
     BirthdayDate=Birthday date
     DateToBirth=Datum rođenja
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Poruka na strani potvrđene uplate
     MessageKO=Poruka na strani otkazane uplate
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Dodat kontakt Intervenciji
    -Notify_FICHINTER_VALIDATE=Intervencija je potvrđena
    -Notify_FICHINTER_SENTBYMAIL=Intervencija je poslata mail-om
     Notify_ORDER_VALIDATE=Narudžbina klijenta je potvrđena
     Notify_ORDER_SENTBYMAIL=Narudžbina klijenta poslata mailom
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Narudžbina dobavljača je poslata mailom
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Narudžbina dobavljača je snimljena
     Notify_ORDER_SUPPLIER_APPROVE=Narudžbina dobavljača je odobrena
     Notify_ORDER_SUPPLIER_REFUSE=Narudžbina dobavljača je odbijena
     Notify_PROPAL_VALIDATE=Komercijalna ponuda je potvrđena
    -Notify_PROPAL_CLOSE_SIGNED=Komercijalna ponuda je zatvorena i potpisana
    -Notify_PROPAL_CLOSE_REFUSED=Komercijalna ponuda je zatvorena i odbijena
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Komercijalna ponuda poslata mailom
     Notify_WITHDRAW_TRANSMIT=Podizanje transfera
     Notify_WITHDRAW_CREDIT=Kreditno podizanje
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Subjekt kreiran
     Notify_COMPANY_SENTBYMAIL=Mailovi poslati sa kartice subjekta
     Notify_BILL_VALIDATE=Račun klijenta je potvrđen
     Notify_BILL_UNVALIDATE=Potvrda računa klijenta je otkazana
    -Notify_BILL_PAYED=Račun klijenta je plaćen
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Račun klijenta je otkazan
     Notify_BILL_SENTBYMAIL=Račun klijenta je poslat mailom
     Notify_BILL_SUPPLIER_VALIDATE=Račun dobavljača je potvrđen
    -Notify_BILL_SUPPLIER_PAYED=Račun dobavljača je plaćen
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Račun dobavljača je poslat mailom
     Notify_BILL_SUPPLIER_CANCELED=Račun dobavljača otkazan
     Notify_CONTRACT_VALIDATE=Ugovor je potvrđen
     Notify_FICHEINTER_VALIDATE=Intervencija je potvrđena
    +Notify_FICHINTER_ADD_CONTACT=Dodat kontakt Intervenciji
    +Notify_FICHINTER_SENTBYMAIL=Intervencija je poslata mail-om
     Notify_SHIPPING_VALIDATE=Isporuka je potvrđena
     Notify_SHIPPING_SENTBYMAIL=Isporuka je poslata mailom
     Notify_MEMBER_VALIDATE=Član je potvrđen
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Kreacija projekta
     Notify_TASK_CREATE=Zaduženje kreirano
     Notify_TASK_MODIFY=Zaduženje izmenjeno
     Notify_TASK_DELETE=Zaduženje obrisano
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=Vidi podešavanja modula %s
     NbOfAttachedFiles=Broj fajlova/dokumenata u prilogu
     TotalSizeOfAttachedFiles=Ukupna veličina priloženih fajlova/dokumenata
     MaxSize=Maksimalna veličina
     AttachANewFile=Priloži novi fajl/dokument
     LinkedObject=Povezan objekat
    -NbOfActiveNotifications=Broj obaveštenja (br. primalaca mailova)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> je infomacija koja zavisi od zemlje subjekta.<br>Na primer, za zemlju <b>%s</b>, to je kod <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=Nova intervencija %s je dodeljena Vama.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Intervencija %s je potvrđena.
     EMailTextInvoiceValidated=Račun %s je potvrđen.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Ponuda %s je potvrđena.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Narudžbina %s je potvrđena.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Narudžbina %s je odobrena od strane %s.
     EMailTextOrderRefused=Narudžbina %s je odbijena.
     EMailTextOrderRefusedBy=Narudžbina %s je odbijena od strane %s.
     EMailTextExpeditionValidated=Isporuka %s je potvrđena.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Podaci za import
     DolibarrNotification=Automatsko obaveštenje
     ResizeDesc=Unesite novu širinu <b>ILI</b> novu visinu. Proporcija će biti održana prilikom promene veličine...
    @@ -204,7 +214,7 @@ NewLength=Nova širina
     NewHeight=Nova visina
     NewSizeAfterCropping=Nova veličina nakon sečenja
     DefineNewAreaToPick=Definiši novu oblast na slici za izbor (kliknite levim klikom na sliku i prevucite kursor do suprotnog ugla)
    -CurrentInformationOnImage=Ovaj alat važ omogućava da izmenite veličinu ili da isečete sliku. Ovo su informacije o slici koju trenutno gledate.
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Editor slika
     YouReceiveMailBecauseOfNotification=Dobili ste ovu poruku jer je Vaš mail dodat u listu za informisanje o određenim događajima u %s softveru od %s.
     YouReceiveMailBecauseOfNotification2=Ovaj događaj je sledeće:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Oblast exporta
    @@ -248,5 +262,7 @@ WebsiteSetup=Podešavanja modula sajta
     WEBSITE_PAGEURL=URL stranice
     WEBSITE_TITLE=Naslov
     WEBSITE_DESCRIPTION=Opis
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Ključne reči
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/sr_RS/paybox.lang b/htdocs/langs/sr_RS/paybox.lang
    index cf7cacb50fc..f4962ccc049 100644
    --- a/htdocs/langs/sr_RS/paybox.lang
    +++ b/htdocs/langs/sr_RS/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=Podešavanja modula PayBox
     PayBoxDesc=Ovaj modul nudi strane za uplatu na <a href="http://www.paybox.com" target="_blank">Paybox-u</a>. Može biti korišćen za slobodne uplate, ili za uplate vezane za određeni Dolibarr objekat (faktura, narudžbenica, ...)
     FollowingUrlAreAvailableToMakePayments=Sledeći URL-ovi mogu omogućiti klijentu da izvrši uplatu na Dolibarr objekte
     PaymentForm=Forma za uplatu
    -WelcomeOnPaymentPage=Dobrodošli na naš servis online plaćanja
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Ovaj ekran vam omogućava da izvršite online uplatu u korist %s
     ThisIsInformationOnPayment=Ovo su informacije o uplati
     ToComplete=Popuniti
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL za korisnički interfejs %s online upl
     ToOfferALinkForOnlinePaymentOnContractLine=URL za korisnički interfejs %s online uplate za liniju ugovora
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL za korisnički interfejs %s online uplate za slobodan iznos
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL za korisnički interfejs %s online uplate za korisničku pretplatu
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Takođe možete dodati url parametar <b>&tag=<i>value</i></b> na bilo koji od ovih URL-ova (samo za slobodne uplate) kako biste uneli svoj sopstveni komentar za uplatu.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Podesite svoj PayBox sa url-om <b>%s</b> kako bi se uplata kreirala automatski kada je potvrđena u paybox-u.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Ova strana potvrđuje da je Vaša uplata registrovana. Hvala.
    -YourPaymentHasNotBeenRecorded=Vaša uplata nije registrovana i transakcija je otkazana. Hvala.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Parametri naloga
     UsageParameter=Parametri korišćenja
     InformationToFindParameters=Pomoć za pronalaženje informacije o Vašem %s nalogu
    diff --git a/htdocs/langs/sr_RS/projects.lang b/htdocs/langs/sr_RS/projects.lang
    index 5dfbd336f27..b9cfb6ef19b 100644
    --- a/htdocs/langs/sr_RS/projects.lang
    +++ b/htdocs/langs/sr_RS/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Količina prilika projekata na osnovu statusa
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Prikaži projekat
     ShowTask=Prikaži zadatak
     SetProject=Postavi projekat
     NoProject=Nema definisanih ni pripadajućih projekata
    -NbOfProjects=Br projekata
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Provedeno vreme
     TimeSpentByYou=Vreme koje ste Vi proveli
     TimeSpentByUser=Vreme koje je korisnik proveo
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Idi na listu utrošenog vremena
     GoToListOfTasks=Idi na listu zadataka
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Lista komercijalnih ponuda vezanih za projekat
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Lista ugovora vezanih za projekat
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Lista intervencija vezanih za projekat
    -ListExpenseReportsAssociatedProject=Lista troškova povezanih sa ovim projektom
    -ListDonationsAssociatedProject=Lista donacija vezanih za ovaj projekat
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Lista događaja vezanih za projekat
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=Lista utrošenog vremena na zadacima ovog projekta
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Aktivnost na projektu danas
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Subjekti vezani za ovaj projekat
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Provedeno vreme nije uneto
     ThisWillAlsoRemoveTasks=Ova akcija će obrisati sve zadatke ovog projekta (<b>%s</b> zadataka u ovom trenutku) i sve unose utrošenog vremena.
    -IfNeedToUseOhterObjectKeepEmpty=Ukoliko neki objekti (fakture, narudžbine, ...) pripadaju drugom subjektu, oni moraju biti povezani projektu koji se kreira. Ostavite ovu opciju praznu da bi projekat mogao da bude povezan sa više subjekata.
    +IfNeedToUseOtherObjectKeepEmpty=Ukoliko neki objekti (fakture, narudžbine, ...) pripadaju drugom subjektu, oni moraju biti povezani projektu koji se kreira. Ostavite ovu opciju praznu da bi projekat mogao da bude povezan sa više subjekata.
     CloneProject=Dupliraj projekat
     CloneTasks=Dupiraj zadatke
     CloneContacts=Dupliraj kontakte
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Zadatak %s je kreiran
     TaskModifiedInDolibarr=Zadatak %s je izmenjen
     TaskDeletedInDolibarr=Zadatak %s je obrisan
    -OpportunityStatus=Status prilike
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Status prilike
    -OpportunityProbability=Verovatnoća prilike
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Verv. pril.
    -OpportunityAmount=Iznos prilike
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Iznos prilike
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Saradnik
     SelectElement=Selektiraj element
     AddElement=Link ka elementu
     # Documents models
    -DocumentModelBeluga=Templejt projekta sa povezanim objektima
    -DocumentModelBaleine=Templejt izveštavanja projekta za zadatke
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planirano utrošeno vreme
     PlannedWorkloadShort=Utrošeno vreme
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projekti sa ovim korisnikom u kontaktima
     TasksWithThisUserAsContact=Zadaci ovog korisnika
     ResourceNotAssignedToProject=Nije dodeljen projektu
     ResourceNotAssignedToTheTask=Nije dodeljen zadatku
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Dodeli zadatak meni
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Dodeli
     ProjectOverview=Pregled
    -ManageTasks=Koristi projekte za praćenje zadataka i vremena
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Koristi projekte za praćenje prilika
    -ProjectNbProjectByMonth=Br kreiranih projekata po mesecu
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Iznos prilika po mesecu
    -ProjectWeightedOppAmountOfProjectsByMonth=Prosečni iznos prilika po mesecu
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistike na projektima/lead-ovima
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Zadatak je dodeljen. Unos vremena za ovaj zadatak je omogućen.
     IdTaskTime=Id vremena zadatka
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Samo šanse
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Nije šansa
    -OpportunityTotalAmount=Ukupan iznos prilika
    -OpportunityPonderatedAmount=Prosečni iznos prilika
    -OpportunityPonderatedAmountDesc=Količina prilika na osnovu verovatnoće
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospekcija
     OppStatusQUAL=Kvalifikacija
     OppStatusPROPO=Ponuda
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/sr_RS/propal.lang b/htdocs/langs/sr_RS/propal.lang
    index 8dc240a3803..74f4809e566 100644
    --- a/htdocs/langs/sr_RS/propal.lang
    +++ b/htdocs/langs/sr_RS/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Potpisana (za naplatu)
     PropalStatusNotSigned=Nepotpisana (zatvorena)
     PropalStatusBilled=Naplaćena
     PropalStatusDraftShort=Nacrt
    -PropalStatusValidatedShort=Potvrđen
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Zatvorena
     PropalStatusSignedShort=Potpisana
     PropalStatusNotSignedShort=Nepotpisana
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Ponuda %s nije pronađena
     AddToDraftProposals=Ubaci u draft ponude
     NoDraftProposals=Nema draft ponuda
     CopyPropalFrom=Dupliraj postojeću ponudu
    -CreateEmptyPropal=Napravi praznu ponudu ili novu ponudu iz liste proizvoda/usluga
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default trajanje validnosti komercijalne ponude (u danima)
    -UseCustomerContactAsPropalRecipientIfExist=Koristi adresu kontakta (ukoliko postoji) umesto adrese subjekta za adresu na komercijalnoj ponudi
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Dupliraj komercijalnu ponudu
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Kontakt klijenta koji prati ponudu
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Kompletan model ponude (logo...)
    +DocModelCyanDescription=Kompletan model ponude (logo...)
     DefaultModelPropalCreate=Kreacija default modela
     DefaultModelPropalToBill=Default model prilikom zatvaranja komercijalne ponude (za naplatu)
     DefaultModelPropalClosed=Default model prilikom zatvaranja komercijalne ponude (nenaplaćen)
    diff --git a/htdocs/langs/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang
    index 0ffe09de816..8a87252af7e 100644
    --- a/htdocs/langs/sv_SE/accountancy.lang
    +++ b/htdocs/langs/sv_SE/accountancy.lang
    @@ -4,61 +4,65 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Kolumnseparator för exportfil
     ACCOUNTING_EXPORT_DATE=Datumformat för exportfil
     ACCOUNTING_EXPORT_PIECE=Export the number of piece
     ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account
    -ACCOUNTING_EXPORT_LABEL=Export label
    -ACCOUNTING_EXPORT_AMOUNT=Export amount
    -ACCOUNTING_EXPORT_DEVISE=Export currency
    +ACCOUNTING_EXPORT_LABEL=Exportera titel
    +ACCOUNTING_EXPORT_AMOUNT=Exportera belopp
    +ACCOUNTING_EXPORT_DEVISE=Exportera valuta
     Selectformat=Select the format for the file
     ACCOUNTING_EXPORT_FORMAT=Select the format for the file
    -ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type
    +ACCOUNTING_EXPORT_ENDLINE=Välj vagnens returtyp
     ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name
    -ThisService=This service
    -ThisProduct=This product
    -DefaultForService=Default for service
    -DefaultForProduct=Default for product
    -CantSuggest=Can't suggest
    -AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s
    +ThisService=Tjänsten
    +ThisProduct=Den här produkten
    +DefaultForService=Standard för service
    +DefaultForProduct=Standard för produkter
    +CantSuggest=Kan inte föreslå
    +AccountancySetupDoneFromAccountancyMenu=De flesta inställningarna för bokföringen görs från menyn %s
     ConfigAccountingExpert=Konfiguration av modulen redovisningsexpert
    -Journalization=Journalization
    +Journalization=Journalisering
     Journaux=Journaler
     JournalFinancial=Finansiella journaler
     BackToChartofaccounts=Avkastning kontoplan
     Chartofaccounts=Kontoplan
     CurrentDedicatedAccountingAccount=Current dedicated account
    -AssignDedicatedAccountingAccount=New account to assign
    -InvoiceLabel=Invoice label
    -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to an accounting account
    -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to an accounting account
    -OtherInfo=Other information
    -DeleteCptCategory=Remove accounting account from group
    -ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
    -JournalizationInLedgerStatus=Status of journalization
    -AlreadyInGeneralLedger=Already journalized in ledgers
    -NotYetInGeneralLedger=Not yet journalized in ledgers
    -GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accounting group
    -DetailByAccount=Show detail by account
    -AccountWithNonZeroValues=Accounts with non zero values
    -ListOfAccounts=List of accounts
    +AssignDedicatedAccountingAccount=Nytt konto att tilldela
    +InvoiceLabel=Faktura etikett
    +OverviewOfAmountOfLinesNotBound=Översikt över antalet linjer som inte är kopplade till ett bokföringskonto
    +OverviewOfAmountOfLinesBound=Översikt över antalet linjer som redan är kopplade till ett bokföringskonto
    +OtherInfo=Övrig information
    +DeleteCptCategory=Ta bort redovisningskontot från gruppen
    +ConfirmDeleteCptCategory=Är du säker på att du vill ta bort det här bokföringskontot från kontogruppen?
    +JournalizationInLedgerStatus=Status för journalisering
    +AlreadyInGeneralLedger=Redan journaliserad i ledgers
    +NotYetInGeneralLedger=Ännu inte journaliserad i ledgers
    +GroupIsEmptyCheckSetup=Gruppen är tom, kontrollera inställningen av den personliga redovisningsgruppen
    +DetailByAccount=Visa detaljer efter konto
    +AccountWithNonZeroValues=Konton med icke-nollvärden
    +ListOfAccounts=Förteckning över konton
    +CountriesInEEC=Länder i EEG
    +CountriesNotInEEC=Länder inte i EEG
    +CountriesInEECExceptMe=Länder i EEG förutom %s
    +CountriesExceptMe=Alla länder utom %s
     
    -MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
    -MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup
    +MainAccountForCustomersNotDefined=Huvudsakliga bokföringskonto för kunder som inte definierats i installationen
    +MainAccountForSuppliersNotDefined=Huvudkonton för leverantörer som inte definierats i installationen
     MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
     MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
     
    -AccountancyArea=Accounting area
    +AccountancyArea=Redovisningsområde
     AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
     AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year...
     AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger)
     AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies...
     
    -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s
    -AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s
    +AccountancyAreaDescJournalSetup=STEG %s: Skapa eller kolla innehållet i din journallista från menyn %s
    +AccountancyAreaDescChartModel=STEG %s: Skapa en modell av kontoöversikt från menyn %s
     AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s
     
     AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s.
     AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
     AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s.
     AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
    -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
    +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s.
     AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
     AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
     AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
    @@ -77,31 +81,31 @@ ChangeAndLoad=Change and load
     Addanaccount=Lägg till ett redovisningskonto
     AccountAccounting=Redovisningskonto
     AccountAccountingShort=Konto
    -SubledgerAccount=Subledger Account
    -ShowAccountingAccount=Show accounting account
    -ShowAccountingJournal=Show accounting journal
    -AccountAccountingSuggest=Accounting account suggested
    -MenuDefaultAccounts=Default accounts
    +SubledgerAccount=Subledger-konto
    +ShowAccountingAccount=Visa bokföringskonto
    +ShowAccountingJournal=Visa bokföringskalender
    +AccountAccountingSuggest=Redovisningskonto föreslås
    +MenuDefaultAccounts=Standardkonton
     MenuBankAccounts=Bankkonton
     MenuVatAccounts=Vat accounts
     MenuTaxAccounts=Tax accounts
     MenuExpenseReportAccounts=Expense report accounts
    -MenuLoanAccounts=Loan accounts
    -MenuProductsAccounts=Product accounts
    -ProductsBinding=Products accounts
    -Ventilation=Binding to accounts
    +MenuLoanAccounts=Lån konton
    +MenuProductsAccounts=Produktkonton
    +ProductsBinding=Produkter konton
    +Ventilation=Bindande till konton
     CustomersVentilation=Customer invoice binding
    -SuppliersVentilation=Vendor invoice binding
    -ExpenseReportsVentilation=Expense report binding
    +SuppliersVentilation=Leverantörsfaktura bindande
    +ExpenseReportsVentilation=Expense rapport bindande
     CreateMvts=Create new transaction
     UpdateMvts=Modification of a transaction
    -ValidTransaction=Validate transaction
    +ValidTransaction=Validera transaktionen
     WriteBookKeeping=Journalize transactions in Ledger
     Bookkeeping=Ledger
    -AccountBalance=Account balance
    +AccountBalance=Kontobalans
     ObjectsRef=Source object ref
     CAHTF=Total purchase supplier before tax
    -TotalExpenseReport=Total expense report
    +TotalExpenseReport=Totalkostnadsrapport
     InvoiceLines=Lines of invoices to bind
     InvoiceLinesDone=Bound lines of invoices
     ExpenseReportLines=Lines of expense reports to bind
    @@ -109,16 +113,16 @@ ExpenseReportLinesDone=Bound lines of expense reports
     IntoAccount=Bind line with the accounting account
     
     
    -Ventilate=Bind
    -LineId=Id line
    +Ventilate=Binda
    +LineId=Id-linje
     Processing=Bearbetning
    -EndProcessing=Process terminated.
    +EndProcessing=Process avslutad.
     SelectedLines=Valda linjer
     Lineofinvoice=Line of faktura
    -LineOfExpenseReport=Line of expense report
    -NoAccountSelected=No accounting account selected
    +LineOfExpenseReport=Kostnadsrapport
    +NoAccountSelected=Inget konto har valts
     VentilatedinAccount=Binded successfully to the accounting account
    -NotVentilatedinAccount=Not bound to the accounting account
    +NotVentilatedinAccount=Ej bunden till bokföringskonto
     XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
     XLineFailedToBeBinded=%s products/services were not bound to any accounting account
     
    @@ -128,7 +132,7 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don
     
     ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50)
     ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50)
    -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen)
    +ACCOUNTING_LENGTH_GACCOUNT=Längden på de allmänna bokföringskontona (Om du anger värdet till 6 här visas kontot '706' som '706000' på skärmen)
     ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen)
     ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero.
     BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account
    @@ -154,21 +158,22 @@ Doctype=Typ av dokument
     Docdate=Datum
     Docref=Referens
     LabelAccount=Etikett konto
    -LabelOperation=Label operation
    +LabelOperation=Etikettoperation
     Sens=Sens
    +LetteringCode=Lettering code
     Codejournal=Journal
    -NumPiece=Piece number
    +NumPiece=Stycke nummer
     TransactionNumShort=Num. transaction
     AccountingCategory=Personalized groups
     GroupByAccountAccounting=Group by accounting account
     AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports.
    -ByAccounts=By accounts
    +ByAccounts=Enligt konton
     ByPredefinedAccountGroups=By predefined groups
     ByPersonalizedAccountGroups=By personalized groups
     ByYear=Per år
    -NotMatch=Not Set
    +NotMatch=Inte inställd
     DeleteMvt=Delete Ledger lines
    -DelYear=Year to delete
    +DelYear=År att radera
     DelJournal=Journal to delete
     ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required.
     ConfirmDeleteMvtPartial=This will delete the transaction from the Ledger (all lines related to same transaction will be deleted)
    @@ -176,35 +181,35 @@ FinanceJournal=Finance journal
     ExpenseReportsJournal=Expense reports journal
     DescFinanceJournal=Finance journal including all the types of payments by bank account
     DescJournalOnlyBindedVisible=This is a view of record that are bound to an accounting account and can be recorded into the Ledger.
    -VATAccountNotDefined=Account for VAT not defined
    -ThirdpartyAccountNotDefined=Account for third party not defined
    +VATAccountNotDefined=Konto för moms inte definierad
    +ThirdpartyAccountNotDefined=Konto för tredje part har inte definierats
     ProductAccountNotDefined=Account for product not defined
     FeeAccountNotDefined=Account for fee not defined
     BankAccountNotDefined=Account for bank not defined
     CustomerInvoicePayment=Betalning av faktura kund
    -ThirdPartyAccount=Third party account
    -NewAccountingMvt=New transaction
    -NumMvts=Numero of transaction
    -ListeMvts=List of movements
    +ThirdPartyAccount=Tredje part konto
    +NewAccountingMvt=Ny transaktion
    +NumMvts=Numero av transaktion
    +ListeMvts=Lista över rörelser
     ErrorDebitCredit=Debit och kredit kan inte ha ett värde på samma gång
     AddCompteFromBK=Add accounting accounts to the group
    -ReportThirdParty=List third party account
    +ReportThirdParty=Lista av tredje part konto
     DescThirdPartyReport=Consult here the list of the third party customers and vendors and their accounting accounts
     ListAccounts=Förteckning över redovisningskonton
    -UnknownAccountForThirdparty=Unknown third party account. We will use %s
    +UnknownAccountForThirdparty=Okänt tredje part konto. Vi kommer att använda %s
     UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
     UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unknown third party account and waiting account not defined. Blocking error
     PaymentsNotLinkedToProduct=Payment not linked to any product / service
     
    -Pcgtype=Group of account
    -Pcgsubtype=Subgroup of account
    -PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criterias for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
    +Pcgtype=Grupp av konto
    +Pcgsubtype=Undergrupp av konto
    +PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
     
     TotalVente=Total turnover before tax
     TotalMarge=Total försäljning marginal
     
     DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account
    -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
    +DescVentilMore=I de flesta fall, om du använder fördefinierade produkter eller tjänster och du ställer in kontonummeret på produkt- / servicekortet, kommer programmet att kunna göra allt bindande mellan dina fakturoreder och kontot för ditt kontoplan, bara i ett klick med knappen <strong> "%s" </ strong>. Om kontot inte anges på produkt- / servicekort eller om du fortfarande har några rader som inte är kopplade till ett konto måste du göra en manuell bindning från menyn "<strong> %s </ strong>".
     DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account
     DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account
     ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account:
    @@ -213,7 +218,7 @@ DescVentilSupplier=Consult here the list of vendor invoice lines bound or not ye
     DescVentilDoneSupplier=Consult here the list of the lines of invoices vendors and their accounting account
     DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account
     DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account
    -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on fees dictionary or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
    +DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on fees dictionary or if you still have some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
     DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account
     
     ValidateHistory=Bind Automatically
    @@ -221,6 +226,7 @@ AutomaticBindingDone=Automatic binding done
     
     ErrorAccountancyCodeIsAlreadyUse=Fel, du kan inte ta bort denna redovisningskonto eftersom den används
     MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s
    +Balancing=Balansering
     FicheVentilation=Binding card
     GeneralLedgerIsWritten=Transactions are written in the Ledger
     GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized.
    @@ -232,75 +238,76 @@ NotYetAccounted=Not yet accounted in ledger
     
     ## Admin
     ApplyMassCategories=Apply mass categories
    -AddAccountFromBookKeepingWithNoCategories=Available acccount not yet in a personalized group
    +AddAccountFromBookKeepingWithNoCategories=Available account not yet in a personalized group
     CategoryDeleted=Category for the accounting account has been removed
    -AccountingJournals=Accounting journals
    -AccountingJournal=Accounting journal
    -NewAccountingJournal=New accounting journal
    -ShowAccoutingJournal=Show accounting journal
    +AccountingJournals=Bokföringsjournal
    +AccountingJournal=Redovisnings journal
    +NewAccountingJournal=Ny bokföringsjournal
    +ShowAccoutingJournal=Visa bokföringskalender
     Nature=Naturen
    -AccountingJournalType1=Miscellaneous operations
    +AccountingJournalType1=Övrig verksamhet
     AccountingJournalType2=Försäljning
     AccountingJournalType3=Inköp
     AccountingJournalType4=Bank
    -AccountingJournalType5=Expenses report
    -AccountingJournalType8=Inventory
    -AccountingJournalType9=Has-new
    -ErrorAccountingJournalIsAlreadyUse=This journal is already use
    -AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu <b>%s</b> - <b>%s</b>
    +AccountingJournalType5=Utgift-rapport
    +AccountingJournalType8=Lager
    +AccountingJournalType9=Har nya
    +ErrorAccountingJournalIsAlreadyUse=Denna journalen används redan
    +AccountingAccountForSalesTaxAreDefinedInto=Obs! Bokföringskonto för försäljningsskatt definieras i menyn <b> %s </ b> - <b> %s </ b>
     
     ## Export
    -ExportDraftJournal=Export draft journal
    +ExportDraftJournal=Exportera utkast till journal
     Modelcsv=Modell av export
     Selectmodelcsv=Välj en modell av export
     Modelcsv_normal=Klassisk export
    -Modelcsv_CEGID=Export towards CEGID Expert Comptabilité
    -Modelcsv_COALA=Export towards Sage Coala
    -Modelcsv_bob50=Export towards Sage BOB 50
    +Modelcsv_CEGID=Exportera till CEGID Expert Comptabilité
    +Modelcsv_COALA=Exportera mot Sage Coala
    +Modelcsv_bob50=Exportera till Sage BOB 50
     Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution
     Modelcsv_quadratus=Export towards Quadratus QuadraCompta
    -Modelcsv_ebp=Export towards EBP
    -Modelcsv_cogilog=Export towards Cogilog
    -Modelcsv_agiris=Export towards Agiris
    -Modelcsv_configurable=Export Configurable
    +Modelcsv_ebp=Exportera till EBP
    +Modelcsv_cogilog=Exportera till Cogilog
    +Modelcsv_agiris=Exportera till Agiris
    +Modelcsv_configurable=Exportera CSV konfigurerbar
    +Modelcsv_FEC=Export FEC (Art. L47 A) (Test)
     ChartofaccountsId=Chart of accounts Id
     
     ## Tools - Init accounting account on product / service
     InitAccountancy=Init accountancy
     InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases.
     DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set.
    -Options=Options
    +Options=alternativ
     OptionModeProductSell=Mode sales
     OptionModeProductBuy=Mode purchases
     OptionModeProductSellDesc=Show all products with accounting account for sales.
     OptionModeProductBuyDesc=Show all products with accounting account for purchases.
     CleanFixHistory=Remove accounting code from lines that not exists into charts of account
    -CleanHistory=Reset all bindings for selected year
    -PredefinedGroups=Predefined groups
    -WithoutValidAccount=Without valid dedicated account
    -WithValidAccount=With valid dedicated account
    -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account
    +CleanHistory=Återställ alla bindningar för valt år
    +PredefinedGroups=Fördefinierade grupper
    +WithoutValidAccount=Utan giltigt dedikerat konto
    +WithValidAccount=Med giltigt dedikerat konto
    +ValueNotIntoChartOfAccount=Detta värde på bokföringskonto finns inte i kontoplan
     
     ## Dictionary
    -Range=Range of accounting account
    -Calculated=Calculated
    -Formula=Formula
    +Range=Räckvidd av bokföringskonto
    +Calculated=Beräknad
    +Formula=Formel
     
     ## Error
    -SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them
    +SomeMandatoryStepsOfSetupWereNotDone=Några obligatoriska steg för installationen var inte färdiga, var god fyll i dem
     ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries)
     ErrorInvoiceContainsLinesNotYetBounded=You try to journalize some lines of the invoice <strong>%s</strong>, but some other lines are not yet bounded to accounting account. Journalization of all invoice lines for this invoice are refused.
     ErrorInvoiceContainsLinesNotYetBoundedShort=Some lines on invoice are not bound to accounting account.
     ExportNotSupported=The export format setuped is not supported into this page
    -BookeppingLineAlreayExists=Lines already existing into bookeeping
    -NoJournalDefined=No journal defined
    -Binded=Lines bound
    -ToBind=Lines to bind
    -UseMenuToSetBindindManualy=Autodection not possible, use menu <a href="%s">%s</a> to make the binding manually
    +BookeppingLineAlreayExists=Lines already existing into bookkeeping
    +NoJournalDefined=Ingen journal definierad
    +Binded=Linjer bundna
    +ToBind=Linjer att binda
    +UseMenuToSetBindindManualy=Lines not yet bound, use menu <a href="%s">%s</a> to make the binding manually
     
     ## Import
    -ImportAccountingEntries=Accounting entries
    +ImportAccountingEntries=Redovisningsposter
     
    -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
    +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
     ExpenseReportJournal=Expense Report Journal
    -InventoryJournal=Inventory Journal
    +InventoryJournal=Inventarie journal
    diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang
    index 12181099f4a..3b84b5f514b 100644
    --- a/htdocs/langs/sv_SE/admin.lang
    +++ b/htdocs/langs/sv_SE/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Utveckling
     VersionUnknown=Okänd
     VersionRecommanded=Rekommenderad
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler för att spara sessioner
     SessionSavePath=Lagring session lokalisering
     PurgeSessions=Utrensning av sessioner
     ConfirmPurgeSessions=Vill du verkligen tömma alla sessioner? Detta kommer logga ut alla användare (förutom dig själv).
    -NoSessionListWithThisHandler=Spara session hanterare konfigureras i din PHP inte är möjligt att lista all löpande sessioner.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lås nya förbindelser
    -ConfirmLockNewSessions=Är du säker på att du vill begränsa alla nya Dolibarr anknytning till dig själv. Endast användare <b>%s</b> kommer att kunna ansluta efter det.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Ta bort lås för anslutning
     YourSession=Din session
    -Sessions=Användare session
    +Sessions=Users sessions
     WebUserGroup=Webbserver användare / grupp
    -NoSessionFound=Din PHP verkar inte tillåta att lista aktiva sessioner. Directory används för att spara sessioner <b>(%s)</b> kan skyddas (till exempel genom OS behörigheter eller PHP-direktivet open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Databas charset för att lagra data
     DBSortingCharset=Databas charset att sortera data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Extern användare
     InternalUsers=Interna användare
     ExternalUsers=Externa användare
     GUISetup=Visa
    -SetupArea=Setup område
    +SetupArea=Inställning
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Formulär för att testa filuppladdning (enligt inställningar)
     IfModuleEnabled=Anm: ja effektivt endast om modul <b>%s</b> är aktiverat
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kod får inte innehålla värdet 0
     DisableJavascript=Inaktivera JavaScript och Ajax-funktioner (rekommenderas för blinda personer eller textbaserade webbläsare)
     UseSearchToSelectCompanyTooltip=Även om du har ett stort antal tredje parter (> 100 000), kan du öka hastigheten genom att sätta konstant COMPANY_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen.
     UseSearchToSelectContactTooltip=Även om du har ett stort antal tredje parter (> 100 000), kan du öka hastigheten genom att sätta konstant CONTACT_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=NBR tecken för att utlösa Sök: %s
     NotAvailableWhenAjaxDisabled=Inte tillgänglig när Ajax funktionshindrade
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Förhandsgranska inte tillgänglig
     ThemeCurrentlyActive=Tema för tillfället
     CurrentTimeZone=PHP server tidszon
     MySQLTimeZone=Timezone MySql (databas)
    -TZHasNoEffect=Datum lagras och returneras av databasserver som om de hålls som LAGTS sträng. Den tidszon har effekt endast vid användning UNIX_TIMESTAMP funktion (som inte bör användas av Dolibarr, så databas TZ ska ha någon effekt, även om det ändras efter uppgifterna angavs).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Tabell
     Fields=Fält
    @@ -111,14 +111,14 @@ NotConfigured=Modul/Applikation är inte konfigurerad
     Active=Aktiv
     SetupShort=Inställning
     OtherOptions=Andra alternativ
    -OtherSetup=Andra inställningar
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimaltecken
     CurrentValueSeparatorThousand=Tusentalsavgränsare
     Destination=Destination
     IdModule=Modul ID
     IdPermissions=Behörighet ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Lokalisering parametrar
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Kund tidzon (användare)
     ClientHour=Kund tid (användare)
     OSTZ=Server OS tidszon
    @@ -126,8 +126,8 @@ PHPTZ=Tidszon PHP server
     DaylingSavingTime=Sommartid (användare)
     CurrentHour=PHP Tid (server)
     CurrentSessionTimeOut=Aktuell session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max antal rader för widget
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetektera (webbläsare språk)
     FeatureDisabledInDemo=Funktion avstängd i demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Endast delar av <a href="%s">aktiverade moduler</a> visas.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Ny
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, den officiella marknadsplatsen för Dolibarr ERP / CRM externa moduler
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Länk
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Har ingen butik tydlig lösenord i databasen, men endast
     MainDbPasswordFileConfEncrypted=Databas lösenord krypterat i conf.php (Aktiverad rekommenderas)
     InstrucToEncodePass=Att ha lösenord kodad i <b>conf.php</b> filen, ersätt raden <br> <b>$ Dolibarr_main_db_pass = "...";</b> <br> av <br> <b>$ Dolibarr_main_db_pass = "krypterad:%s";</b>
     InstrucToClearPass=Att ha lösenord avkodas (klar) i <b>conf.php</b> filen, ersätt raden <br> <b>$ Dolibarr_main_db_pass = "krypterat: ...";</b> <br> av <br> <b>$ Dolibarr_main_db_pass = "%s";</b>
    -ProtectAndEncryptPdfFiles=Skydd av genererade pdf-filer (Aktiverad rekommenderas inte, raster massa pdf generationen)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Huvudnummer
     DolibarrLicense=Licens
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=För användarens eller utvecklarens dokumentation (Doc, FAQs ...), <br> ta en titt på Dolibarr Wiki: <br> <a href="%s" target="_blank"><b>%s</b></a>
     ForAnswersSeeForum=För alla andra frågor / hjälp, kan du använda Dolibarr forumet: <br> <a href="%s" target="_blank"><b>%s</b></a>
    -HelpCenterDesc1=Detta område kan hjälpa dig att få en tjänst Hjälp stöd på Dolibarr.
    -HelpCenterDesc2=Någon del av denna tjänst finns <b>bara</b> på <b>engelska.</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Aktuell meny handler
     MeasuringUnit=Mätenhet
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Uppsägningstid
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPs Port (som standard i php.ini: <b>%s)</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPs Host (som standard i php.ini: <b>%s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPs Port (Ej definierad i PHP på Unix-liknande system)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPs Host (Ej definierad i PHP på Unix-liknande system)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Skicka systematiskt en dold kol-kopia av alla skickade email till
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Metod för att skicka e-post
    -MAIN_MAIL_SMTPS_ID=SMTP-ID om autentisering krävs
    -MAIN_MAIL_SMTPS_PW=SMTP-lösenord om autentisering krävs
    -MAIN_MAIL_EMAIL_TLS= Använd TLS (SSL) krypterar
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Inaktivera alla SMS sändningarna (för teständamål eller demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Metod som ska användas för att skicka SMS
    -MAIN_MAIL_SMS_FROM=Standard avsändaren telefonnummer för SMS-sändning
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Funktionen inte finns på Unix-liknande system. Testa din sendmail program lokalt.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Modul setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-moduler verktyg
     ModuleFamilyExperimental=Experimentell moduler
     ModuleFamilyFinancial=Finansiella Moduler (Redovisning / Treasury)
     ModuleFamilyECM=ECM
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Meny hanterar
     MenuAdmin=Menu Editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Använd inte i poroduktion
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Steg %s
    -FindPackageFromWebSite=Hitta ett paket som ger funktionen du vill ha (till exempel om %s webbplats).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Hämta paket (till exempel från officiella hemsida%s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr nuvarande version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Fördröjning för caching export svar i sekunder (0 eller tomt för ingen cache)
     DisableLinkToHelpCenter=Dölj länken <b>&quot;Behöver du hjälp eller stöd&quot;</b> på inloggningssidan
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=Det finns ingen automatisk förpackning, så om linjen är ur sida på handlingar eftersom alltför länge, måste du lägga dig själv vagnretur i textområdet.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minsta längd
     LanguageFilesCachedIntoShmopSharedMemory=Filer. Lang lastas i det delade minnet
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Exempel med gällande kör installationsprogrammet
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=Förteckning över OpenDocument mallar kataloger
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Antal ODT / ODS mallar funna i dessa kataloger
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Exempel på syntax: <br> C: \\ Mydir <br> / Home / Mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> Att veta hur du skapar dina odT dokumentmallar, innan du förvarar dem i dessa kataloger, läs wiki dokumentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=För att kunna använda Web Services (parameter &quot;do
     TestSubmitForm=Ingång Testformuläret
     ThisForceAlsoTheme=Med denna meny manager kommer också att använda sitt eget tema vad som är valfrihet för användaren. Även denna meny manager specialiserat för smartphones inte fungerar på alla smartphone. Använd en annan meny chef om du får problem på din.
     ThemeDir=Skins katalogen
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Respons tidsutlösning
     SmsTestMessage=Testmeddelande från __ PHONEFROM__ till __ PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Nyckeln till säkra webbadresser
    -NoSmsEngine=Ingen SMS-avsändare Manager, som finns. SMS-avsändare chef inte installeras med standard utgåvan (eftersom de är beroende av en extern leverantör) men du kan hitta några på http://www.dolistore.com
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Du kan ställa in varje globala alternativ för PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Regler för att förfalska adress lådor
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Dölj produktbeskrivningar i genererad PDF
     HideRefOnPDF=Visa ej produkt ref. i genererad PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parametrar för att säkra webbadresser
     SecurityTokenIsUnique=Använd en unik securekey parameter för varje webbadress
     EnterRefToBuildUrl=Ange referens för objekt %s
     GetSecuredUrl=Få beräknat URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Gammal momssats
     NewVATRates=Ny momssats
     PriceBaseTypeToChange=Ändra om priser med bas referensvärde som definieras på
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Välj lista
     ExtrafieldSelectList = Välj från tabell
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Lösenord
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Länk till ett objekt
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Standardlänk
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Varning, kan detta värde skrivas över av användarspecifik installation (varje användare kan ställa in sin egen clicktodial url)
     ExternalModule=Extern modul - Installerad i katalogen %s
    -BarcodeInitForThirdparties=Mäss streckkod init för thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass streckkod init eller återställning efter produkter eller tjänster
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init värde för nästa% s tomma poster
     EraseAllCurrentBarCode=Radera alla nuvarande streckkoder
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=Alla värden för streckkod har raderats
    -NoBarcodeNumberingTemplateDefined=Ingen numrering streckkod mall aktiverat i streckkodsmodul setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Fält
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=Användare & grupper
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Tredje part
    -Module1Desc=Företag och kontakt ledning
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Kommersiella
     Module2Desc=Kommersiell förvaltning
     Module10Name=Bokföring
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Förslag
     Module20Desc=Hantering av affärsförslag
     Module22Name=Massutskick av e-utskick
    @@ -495,7 +501,7 @@ Module23Desc=Övervakning av förbrukningen av energi
     Module25Name=Kundorder
     Module25Desc=Kundorder ledning
     Module30Name=Fakturor
    -Module30Desc=Fakturor och kreditnota: s förvaltning för kunder. Faktura ledning för leverantörer
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Leverantörer
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Lager hantering av produkter
     Module53Name=Tjänster
     Module53Desc=Service ledning
     Module54Name=Avtal / Prenumerationer
    -Module54Desc=Förvaltning av kontrakt (tjänster eller reccuring abonnemang)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Streckkoder
     Module55Desc=Barcode ledning
     Module56Name=Telefoni
     Module56Desc=Telefoni integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integrering av ett ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Kostnader och resor anteckningar
     Module75Desc=Kostnader och resor notera ledning
     Module80Name=Transporter
     Module80Desc=Transporter och leverans för ledning
    -Module85Name=Banker och kontanter
    +Module85Name=Banks and Cash
     Module85Desc=Förvaltning av bank eller kontanter konton
    -Module100Name=ExternalSite
    -Module100Desc=Några externa webbplats i Dolibarr menyer och visa det i en Dolibarr ram
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman och Sip
     Module105Desc=Mailman eller SPIP gränssnitt för medlemmar modulen
     Module200Name=LDAP
    -Module200Desc=LDAP katalog synkronisering
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data export
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data import
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Medlemmar
     Module310Desc=Foundation i ledningen
     Module320Name=RSS-flöde
     Module320Desc=Lägg till RSS feed inne Dolibarr skärm sidor
    -Module330Name=Bokmärken
    -Module330Desc=Förvaltning av bokmärken förvaltning
    -Module400Name=Projekt / Möjligheter / Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=WebCalendar
     Module410Desc=WebCalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Lån
     Module520Desc=Förvaltning av lån
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donationer
     Module700Desc=Donation ledning
     Module770Name=Räkningar
    -Module770Desc=Förvaltnings- och anspråk räkningar (transport, måltid, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass post dokumentgenerering
     Module1780Name=Taggar/Kategorier
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=FCKeditor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamiska priser
     Module2200Desc=Aktivera användningen av matematiska uttryck för priser
     Module2300Name=Schemalagda jobb
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Aktivera Dolibarr SOAP server tillhandahåller API-tjänster
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Aktivera Dolibarr REST servern tillhandahåller API-tjänster
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Använder online Gravatar tjänst (www.gravatar.com) för att visa foto av användare / medlemmar (hittade med sin e-post). Behöver en internet
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP-klient
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind omvandlingar kapacitet
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-bolag
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Lämna Framställningar förvaltning
    -Module20000Desc=Deklarera och följ de anställda lämnar förfrågningar
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Varu eller serienummer, äter av och bäst före-datum ledningen på produkter
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=Paybox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Redovisning (avancerad)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direktutskrift (utan att öppna dokumenten) använder Cups IPP-gränssnitt (skrivare måste vara synlig från servern, och CUPS måste vara installerad på servern).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Marginaler
     Module59000Desc=Modul för att hantera marginaler
     Module60000Name=Provision
     Module60000Desc=Modul för att hantera uppdrag
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resurser
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Läs fakturor
    @@ -651,9 +661,9 @@ Permission32=Skapa / modifiera produkter
     Permission34=Ta bort produkter
     Permission36=Se / hantera dold produkter
     Permission38=EXPORTVARA
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Ta bort projekt (gemensamma projekt och projekt som jag är kontaktperson för)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Läs insatser
     Permission62=Skapa / ändra inlägg
    @@ -686,7 +696,7 @@ Permission109=Ta bort sendings
     Permission111=Läs finansiella räkenskaper
     Permission112=Skapa / ändra / radera och jämför transaktioner
     Permission113=Ställ upp finansiella konton (skapa, handha kategorier)
    -Permission114=Avstämning av transaktioner
    +Permission114=Reconcile transactions
     Permission115=Exporttransaktioner och kontoutdrag
     Permission116=Överföringar mellan konton
     Permission117=Hantera kontroller avsändning
    @@ -694,15 +704,15 @@ Permission121=Läs tredje part kopplad till användaren
     Permission122=Skapa / ändra tredje part kopplad till användaren
     Permission125=Radera tredje part kopplad till användaren
     Permission126=Export tredje part
    -Permission141=Läsa alla projekt och uppgifter (även privata projekt jag är inte kontakta för)
    -Permission142=Skapa / ändra alla projekt och uppgifter (även privata projekt jag är inte kontakta för)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Ta bort alla projekt och uppgifter (även privata projekt jag är inte kontakta för)
     Permission146=Läs leverantörer
     Permission147=Läs statistik
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Läs kontrakt / abonnemang
     Permission162=Skapa / ändra avtal / abonnemang
     Permission163=Aktivera en tjänst / teckning av ett kontrakt
    @@ -725,7 +735,7 @@ Permission187=Stäng leverantör order
     Permission188=Avbryt leverantör order
     Permission192=Skapa linjer
     Permission193=Avbryt linjer
    -Permission194=Läs bandbredd linjer
    +Permission194=Read the bandwidth lines
     Permission202=Skapa ADSL-anslutning
     Permission203=Beställ anslutningar order
     Permission204=Beställ anslutningar
    @@ -750,12 +760,12 @@ Permission244=Se innehållet i de dolda kategorier
     Permission251=Läs andra användare och grupper
     PermissionAdvanced251=Läs andra användare
     Permission252=Skapa / ändra andra användare, grupper och permisssions
    -Permission253=Ändra andra användare lösenord
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Skapa / ändra interna / externa användare och behörigheter
     Permission254=Ta bort eller inaktivera andra användare
     Permission255=Skapa / ändra sin egen användarinformation
     Permission256=Ändra sina egna lösenord
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Läs CA
     Permission272=Läs fakturor
     Permission273=Utfärda fakturor
    @@ -765,7 +775,7 @@ Permission283=Radera kontakter
     Permission286=Exportera kontakter
     Permission291=Läs taxor
     Permission292=Ange behörigheter på den taxor
    -Permission293=Ändra kunder taxor
    +Permission293=Modify customers tariffs
     Permission300=Läs streckkoder
     Permission301=Skapa / modifiera streckkoder
     Permission302=Ta bort streckkoder
    @@ -787,11 +797,9 @@ Permission401=Läs rabatter
     Permission402=Skapa / ändra rabatter
     Permission403=Validate rabatter
     Permission404=Ta bort rabatter
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Radera löner
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export löner
     Permission520=Läs Lån
     Permission522=Skapa / ändra lån
    @@ -844,8 +852,8 @@ Permission1251=Kör massiv import av externa data till databasen (data last)
     Permission1321=Export kundfakturor, attribut och betalningar
     Permission1322=Reopen a paid bill
     Permission1421=Export kundorder och attribut
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Radera ledighets förfrågningar
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potentiella nivå
     DictionaryCanton=Delstat / provins
     DictionaryRegion=Regioner
    @@ -894,7 +902,7 @@ DictionaryVAT=Moms Priser och Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Betalningsvillkor
     DictionaryPaymentModes=Betalningssätten
    -DictionaryTypeContact=Kontakt / adresstyper
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Miljöskatt (WEEE)
     DictionaryPaperFormat=Pappersformat
    @@ -907,48 +915,48 @@ DictionaryOrderMethods=Beställningsmetoder
     DictionarySource=Ursprung av affärsförslag / beställning
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Modeller för kontoplan
    -DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=E-postmeddelanden mallar
    +DictionaryAccountancyJournal=Bokföringsjournal
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Enheter
     DictionaryProspectStatus=Prospektering Status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Möjlighet status för projektet / bly
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup sparas
     SetupNotSaved=Setup not saved
     BackToModuleList=Tillbaka till moduler lista
    -BackToDictionaryList=Tillbaka till ordlistan
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=Moms Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=Som standard föreslås moms 0 som kan användas för de fall som föreningar, privatpersoner ou små företag.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Betyg
     LocalTax1IsNotUsed=Använd inte andra skatte
    -LocalTax1IsUsedDesc=Använd en annan typ av skatt (exklusive moms)
    -LocalTax1IsNotUsedDesc=Använd inte andra typer av skatt (exklusive moms)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Andra typen av skatt
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Använd inte tredje skatt
    -LocalTax2IsUsedDesc=Använd en tredje typ av skatt (exklusive moms)
    -LocalTax2IsNotUsedDesc=Använd inte andra typer av skatt (exklusive moms)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Tredje typen av skatt
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Förvaltning
    -LocalTax1IsUsedDescES= RE räntesats som standard när du skapar framtidsutsikter, fakturor, order etc följa aktiva standard regeln: <br> Om te köparen inte utsätts för RE, RE som standard = 0. Slut på regeln. <br> Om köparen utsätts för RE sedan RE som standard. Slut på regeln. <br>
    -LocalTax1IsNotUsedDescES= Som standard föreslås RE är 0. Slut på regeln.
    -LocalTax1IsUsedExampleES= I Spanien är proffs förbehåll för vissa särskilda delar av den spanska IAE.
    -LocalTax1IsNotUsedExampleES= I Spanien de är professionella och samhällen och på vissa delar av den spanska IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= RE räntesats som standard när du skapar framtidsutsikter, fakturor, order etc följa aktiva standard regeln: <br> Om säljaren inte utsätts för IRPF, sedan IRPF som standard = 0. Slut på regeln. <br> Om säljaren är utsatt för IRPF sedan IRPF som standard. Slut på regeln. <br>
    -LocalTax2IsNotUsedDescES= Som standard föreslås IRPF är 0. Slut på regeln.
    -LocalTax2IsUsedExampleES= I Spanien, frilansare och oberoende yrkesutövare som tillhandahåller tjänster och företag som har valt skattesystemet i moduler.
    -LocalTax2IsNotUsedExampleES= I Spanien de bussines inte omfattas av skattesystemet i moduler.
    +LocalTax1ManagementES=RE Förvaltning
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Som standard föreslås RE är 0. Slut på regeln.
    +LocalTax1IsUsedExampleES=I Spanien är proffs förbehåll för vissa särskilda delar av den spanska IAE.
    +LocalTax1IsNotUsedExampleES=I Spanien de är professionella och samhällen och på vissa delar av den spanska IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Som standard föreslås IRPF är 0. Slut på regeln.
    +LocalTax2IsUsedExampleES=I Spanien, frilansare och oberoende yrkesutövare som tillhandahåller tjänster och företag som har valt skattesystemet i moduler.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Rapporter om lokala skatter
     CalcLocaltax1=Försäljning - Inköp
     CalcLocaltax1Desc=Lokala skatter rapporter beräknas med skillnaden mellan localtaxes försäljning och localtaxes inköp
    @@ -958,7 +966,9 @@ CalcLocaltax3=Försäljning
     CalcLocaltax3Desc=Lokala skatter rapporter är summan av localtaxes försäljning
     LabelUsedByDefault=Etikett som används som standard om ingen översättning kan hittas för kod
     LabelOnDocuments=Etikett på dokument
    -NbOfDays=Nb dagar
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=I slutet av månaden
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Databas användare
     DatabasePassword=Databas lösenord
     Tables=Tabeller
     TableName=Tabell namn
    -NbOfRecord=Nb av register
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver typ
     SummarySystem=Systeminformation sammandrag
    @@ -996,7 +1006,7 @@ Skin=Hud tema
     DefaultSkin=Standard hud tema
     MaxSizeList=Max längd för lista
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Dagens meddelande
     MessageLogin=Inloggningssidan meddelande
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent sökformuläret på menyn till vänster
     DefaultLanguage=Default språk att använda (språkkod)
     EnableMultilangInterface=Aktivera flerspråkigt gränssnitt
     EnableShowLogo=Visa logotypen på vänstra menyn
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Namn
     CompanyAddress=Adress
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Ägare till %s bankkonto
     BankModuleNotActive=Bankkonton modulen inte aktiverad
     ShowBugTrackLink=Visa länken <strong>"%s"</strong>
     Alerts=Varningar
    -DelaysOfToleranceBeforeWarning=Tolerans förseningar innan varning
    -DelaysOfToleranceDesc=Den här skärmen kan du definiera den tillåtna dröjsmål innan en registrering rapporteras på skärmen med Picto %s för varje försenad element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Fördröjning tolerans (i dagar) före registrering om förslag att stänga
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Fördröjning tolerans (i dagar) före registrering om förslag faktureras inte
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerans fördröjning (i dagar) före registrering om tjänster för att aktivera
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerans fördröjning (i dagar) före registrering om passerat tjänster
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerans fördröjning (i dagar) före registrering om obetalda leverantörsfakturor
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerans fördröjning (i dagar) före registrering om obetalda klient fakturor
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerans fördröjning (i dagar) före registrering om väntan bankavstämning
    -Delays_MAIN_DELAY_MEMBERS=Tolerans fördröjning (i dagar) före registrering om försenad medlemsavgift
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerans fördröjning (i dagar) före registrering om kontroller insättning för att göra
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Andra menyalternativ hantera valfria parametrar.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Säkerhetsgranskning evenemang
    -Audit=Revision
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser namn
     BrowserOS=Browser OS
     ListOfSecurityEvents=Förteckning över Dolibarr säkerhetshändelser
     SecurityEventsPurged=Säkerhetshändelser renas
    -LogEventDesc=Du kan aktivera här loggning för Dolibarr säkerhet händelser. Administratörer kan sedan se dess innehåll via menyn <b>Systemverktyg - Revision.</b> Varning, kan denna funktion konsumerar en stor mängd data i databasen.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information diverse teknisk information får du i skrivskyddad läge och synlig för administratörer bara.
     SystemAreaForAdminOnly=Detta område är tillgänglig för administratören användare. Ingen av de Dolibarr behörigheter kan minska denna gräns.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Du kan välja varje parameter i samband med Dolibarr utseendet här
     AvailableModules=Available app/modules
     ToActivateModule=För att aktivera moduler, gå på Setup-menyn (Hem-> Inställningar-> Modules).
     SessionTimeOut=Time out för session
    -SessionExplanation=Detta antal garantier för att mötet kommer aldrig ut före denna försening. Men PHP sessoin förvaltningen garanterar inte att session alltid löper ut efter denna fördröjning: Detta sker om ett system för att rensa cache session är igång. <br> Obs: utan särskilt system, interna PHP process kommer att rensa möte vart om <b>%s / %s</b> tillgång men endast vid tillträde från andra sessioner.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Tillgängliga triggers
    -TriggersDesc=Triggers är filer som kommer att ändra beteende Dolibarr arbetsflöde när kopieras till katalogen <b>htdocs / includes / triggers.</b> De insåg nya åtgärder, som aktiveras om Dolibarr händelser (nya bolaget skapande, faktura validering, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers i denna fil är inaktiverade <b>av-NORUN</b> suffixet i deras namn.
     TriggerDisabledAsModuleDisabled=Triggers i denna fil är funktionshindrade modul <b>%s</b> är inaktiverad.
     TriggerAlwaysActive=Triggers i denna fil är alltid aktiva, oavsett är det aktiverade Dolibarr moduler.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Gränser / Precision setup
    -LimitsDesc=Du kan definiera gränser, preciseringar och optimeringar som används av Dolibarr här
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimaler för priserna per enhet
     MAIN_MAX_DECIMALS_TOT=Max decimaler för total priser
     MAIN_MAX_DECIMALS_SHOWN=Max decimaler för priser som visas på skärmen (Lägg <b>...</b> efter detta nummer om du vill se <b>...</b> när numret är avkortas vid visas på skärmen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Steg avrundningsintervall (för länder där avrundning g
     UnitPriceOfProduct=Net priset per enhet för en produkt
     TotalPriceAfterRounding=Total kostnad (netto / behållare / inkl moms) efter avrundning
     ParameterActiveForNextInputOnly=Parameter effektiv för nästa inmatning
    -NoEventOrNoAuditSetup=Ingen säkerhet händelsen har registrerats ännu. Detta kan vara normalt om revisionen inte har aktiverats på &quot;setup - säkerhet - revision&quot; sidan.
    -NoEventFoundWithCriteria=Ingen säkerhet händelse har konstaterats för sådan sökning sökkriterier.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Se din lokala sendmail setup
     BackupDesc=För att göra en fullständig säkerhetskopia av Dolibarr måste du:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Spara innehållet i din databas <b>(%s)</b> i en dumpfilen. För detta kan du använda följande assistent.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Arkiverade katalogen bör förvaras på ett säkert ställe.
     BackupDescY=Den genererade dumpfilen bör förvaras på ett säkert ställe.
    -BackupPHPWarning=Backup kan inte guaranted med denna metod. Föredrar tidigare ett
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Om du vill återställa en Dolibarr säkerhetskopia måste du:
    -RestoreDesc2=Återställa arkivfil (zip-fil till exempel) av dokumentkatalog för att extrahera träd filer i dokumentkatalog av en ny Dolibarr anläggning eller i den nuvarande dokument directoy <b>(%s).</b>
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Återställa data från en backup dumpfilen, i databasen av den nya Dolibarr installationen eller i databasen av den nuvarande anläggningen <b>(%s).</b> Varning, när återställningen är klar, måste du använda en användarnamn / lösenord, som fanns när säkerhetskopian gjordes, för att ansluta igen. Om du vill återställa en backup databas i detta aktuella installationen, kan du följa den här assistent.
     RestoreMySQL=MySQL import
     ForcedToByAModule= Denna regel tvingas <b>%s</b> av en aktiverad modul
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Du måste köra det här komman
     YourPHPDoesNotHaveSSLSupport=SSL-funktioner inte är tillgängliga i din PHP
     DownloadMoreSkins=Mer skinn att ladda ner
     SimpleNumRefModelDesc=Returnera referensnummer format %syymm-nnnn där YY är år, mm månaden och nnnn är en sekvens utan hål och utan återställning
    -ShowProfIdInAddress=Visa branschorganisationer id med adresser på dokument
    -ShowVATIntaInAddress=Dölj moms Intra num med adresser på dokument
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partiell översättning
    -MAIN_DISABLE_METEO=Inaktivera meteo vy
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Testa logga in API
    -ProxyDesc=Vissa funktioner i Dolibarr måste ha en Internet-tillgång till arbete. Definiera här parametrar för detta. Om Dolibarr servern finns bakom en proxyserver, berättar dessa parametrar Dolibarr hur man kommer åt Internet via den.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Extern åtkomst
     MAIN_PROXY_USE=Använd en proxyserver (annars direkt tillgång till Internet)
     MAIN_PROXY_HOST=Namn / adress proxyserver
     MAIN_PROXY_PORT=Port of proxyserver
     MAIN_PROXY_USER=Logga in för att använda proxyservern
     MAIN_PROXY_PASS=Lösenord för att använda proxyservern
    -DefineHereComplementaryAttributes=Här definierar du alla atributes inte redan finns tillgänglig som standard, och att du vill bli stöd för %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Komplementära egenskaper
     ExtraFieldsLines=Kompletterande attribut (rader)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Kompletterande attribut (orderrader)
     ExtraFieldsSupplierInvoicesLines=Kompletterande attribut (faktura linjer)
     ExtraFieldsThirdParties=Kompletterande attribut (tredjeparts)
    -ExtraFieldsContacts=Kompletterande attribut (kontaktperson / adress)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Kompletterande attribut (medlem)
     ExtraFieldsMemberType=Kompletterande attribut (ledamot typ)
     ExtraFieldsCustomerInvoices=Kompletterande attribut (fakturor)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=endast gemena alfanumeriska tecken utan mellans
     SendmailOptionNotComplete=Varning, på vissa Linux-system, för att skicka e-post från e-post, sendmail utförande inställning måste conatins Alternativ-ba (parameter mail.force_extra_parameters i din php.ini-fil). Om vissa mottagare inte emot e-post, försök att redigera den här PHP parameter med mail.force_extra_parameters =-BA).
     PathToDocuments=Sökväg till handlingar
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Funktion för att skicka e-post med hjälp av metoden "PHP mail direct" genererar ett e-postmeddelande som kanske inte tolkas korrekt av vissa e-postservrar. Resultatet är att viss epost inte kan läsas av användare som hostas på sådana system som tolkar fel. Det är fallet för vissa internetleverantörer (t.ex. Orange i Frankrike). Detta är inte ett Dolibarr- eller PHP-problem men fel på inkommande e-post server. Du kan sätta MAIN_FIX_FOR_BUGGED_MTA till 1 i "Setup - andra" för att Dolibarr ska undvika detta. Du kan dock uppleva problem med andra servrar som strikt följer SMTP standard. Den andra lösningen (Rekomenderad) är att använda metoden "SMTP socket library" som inte har några nackdelar.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Minst 1 modul måste aktiveras
    -ClassNotFoundIntoPathWarning=Klass %s inte funnen i PHP-sökvägen
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Ja, under sommaren
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session lagring krypteras av Suhosin
     ConditionIsCurrently=Condition är för närvarande% s
    -YouUseBestDriver=Du använder drivrutinen %s som är bäst drivrutin tillgänglig för tillfället.
    -YouDoNotUseBestDriver=Du använder enhet %s men förar %s rekommenderas.
    -NbOfProductIsLowerThanNoPb=Du har bara %s produkter / tjänster i databasen. Detta innebär inte behövs någon särskild optimering.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Sökoptimering
    -YouHaveXProductUseSearchOptim=Du har %s produkter i databasen. Du bör lägga den ständiga PRODUCT_DONOTSEARCH_ANYWHERE till 1 till Home-Setup-Övrigt begränsar du sökningen till början av strängar som gör möjligt för databasen att använda index och du bör få ett omedelbart svar.
    -BrowserIsOK=Du använder webbläsaren %s. Denna webbläsare är ok för säkerhet och prestanda.
    -BrowserIsKO=Du använder webbläsaren %s. Denna webbläsare är känt för att vara ett dåligt val för säkerhet, prestanda och tillförlitlighet. Vi rekommendera att du använder Firefox, Chrome, Opera eller Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=Xdebug är laddad.
     XCacheInstalled=Xcache är laddad.
    -AddRefInList=Visa kund- / leverantörreferens i lista (välj lista eller combobox) och del av hyperlink. Tredjepart visas med namn "CC12345 - SC45678 - Stor AB" istället för "Stor AB".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition av fält %s
     FillThisOnlyIfRequired=Exempel: +2 (fyll endast om tidszon offset problem är erfarna)
     GetBarCode=Få streckkod
     ##### Module password generation
     PasswordGenerationStandard=Återgå ett lösenord som genererats enligt interna Dolibarr algoritm: 8 tecken som innehåller delade siffror och tecken med gemener.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=E krävs för att skapa en ny användare
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Företag modul setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Dokument mallar
    -DocumentModelOdt=Generera dokument från OpenDocuments mallar (.odt eller .ods filer för Openoffice, KOffice, Textedit, ...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Vattenstämpel utkast
     JSOnPaimentBill=Aktivera funktionen för att fylla automatiskt betalningslinjer på inbetalningskort
    -CompanyIdProfChecker=Professionell Id unik
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=En export länk till <b>%s</b> format finns på följande länk: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=En export länk till <b>%s</b> format finns på följande
     BillsSetup=Fakturor modul setup
     BillsNumberingModule=Fakturor och kreditnotor numrering modul
     BillsPDFModules=Faktura dokument modeller
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Kreditnota
     CreditNotes=Kreditnotor
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Hantera en inloggning för varje medlem
     AdherentMailRequired=E krävs för att skapa en ny medlem
     MemberSendInformationByMailByDefault=Kryssruta för att skicka e-post bekräftelse till medlemmar (validering eller nya abonnemang) är aktiverat som standard
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP-inställningar
     LDAPGlobalParameters=Globala parametrar
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Testa en LDAP-sökning
     LDAPSynchroOK=Synkronisering test framgångsrika
     LDAPSynchroKO=Misslyckades synkronisering test
    -LDAPSynchroKOMayBePermissions=Misslyckades synkronisering test. Kontrollera att connexion att servern är korrekt konfigurerad och tillåter LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP ansluta till LDAP-servern framgångsrika (Server = %s, Port = %s)
     LDAPTCPConnectKO=TCP ansluta till LDAP-servern misslyckades (Server = %s, Port = %s)
    -LDAPBindOK=Anslut / Authentificate till LDAP-servern framgångsrik (Server =%s, Port =%s, Admin =%s, Lösenord = %s)
    -LDAPBindKO=Anslut / Authentificate till LDAP-servern misslyckades (Server = %s, Port = %s, Admin = %s, Lösenord = %s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP-server konfigurerad för version 3
     LDAPSetupForVersion2=LDAP-server konfigurerad för version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Logga in (samba, ActiveDirectory)
     LDAPFieldLoginSambaExample=Exempel: samaccountname
     LDAPFieldFullname=Förnamn Namn
     LDAPFieldFullnameExample=Exempel: cn
    -LDAPFieldPasswordNotCrypted=Lösenord krypterat inte
    -LDAPFieldPasswordCrypted=Lösenord krypterade
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Exempel: userPassword
     LDAPFieldCommonNameExample=Exempel: cn
     LDAPFieldName=Namn
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Exempel på värden är avsedda för <b>OpenLDAP</b> med följande laddade scheman: <b>core.schema, cosine.schema, inetorgperson.schema).</b> Om du använder thoose värderingar och OpenLDAP, ändra LDAP-fil <b>slapd.conf</b> config att ha alla thoose scheman laddad.
     ForANonAnonymousAccess=För en bestyrkt tillbehör (för en skrivåtkomst till exempel)
     PerfDolibarr=Prestanda inställningar / optimering rapport
    -YouMayFindPerfAdviceHere=Du kommer att hitta på den här sidan vissa kontroller eller råd relaterade till prestanda.
    -NotInstalled=Inte installerat, så din server inte sakta ner av detta.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applikativ cache
     MemcachedNotAvailable=Ingen applikativ cache hittades. Du kan förbättra prestanda genom att installera en cache-server Memcached och en modul kunna använda denna cache-server. <br> Mer information här <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a> . <br> Observera att en hel del webbhotell leverantör inte lämnar sådana cache-server.
     MemcachedModuleAvailableButNotSetup=Modul memcached för applikativ cache hittades men installationen av modulen är inte fullständig.
     MemcachedAvailableAndSetup=Modul memcached tillägnad använda memcached server är aktiverad.
     OPCodeCache=OPCODE cache
    -NoOPCodeCacheFound=Ingen opkod cache hittades. Får du använda en annan opcode cache än xcache eller eAccelerator (bra), kanske du inte har opkod cache (mycket dåligt).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP-cache för statiska resurser (css, img, javascript)
     FilesOfTypeCached=Filer av typen %s cachelagras av HTTP-server
     FilesOfTypeNotCached=Filer av typen %s är inte cachas av HTTP-server
     FilesOfTypeCompressed=Filer av typen %s komprimeras med HTTP-server
     FilesOfTypeNotCompressed=Filer av typen %s är inte komprimerade av HTTP-server
     CacheByServer=Cache med server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache med browser
     CompressionOfResources=Komprimering av HTTP-svar
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=En sådan automatisk detektering är inte möjligt med nuvarande webbläsare
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Produkter modul setup
     ServiceSetup=Tjänster modul konfiguration
     ProductServiceSetup=Produkter och tjänster moduler setup
     NumberOfProductShowInSelect=Max antal produkter i combos välj listor (0 = ingen gräns)
    -ViewProductDescInFormAbility=Visualisering av produktbeskrivning i formulären (i övrigt enligt popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Aktivera i produkt / tjänst Bifogade fliken Filer en möjlighet att slå samman produkt PDF-dokument till förslag PDF azur om produkten / tjänsten är på förslaget
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Även om du har ett stort antal produkter (> 100 000), kan du öka hastigheten genom att sätta konstant PRODUCT_DONOTSEARCH_ANYWHERE till 1 i Setup-> Övrigt. Sökningen kommer då att begränsas till start av strängen.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Standard streckkod som ska användas för produkter
     SetDefaultBarcodeTypeThirdParties=Standard streckkod som ska användas för tredje part
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sända modul setup
     SendingsReceiptModel=Att skicka kvitto modell
     SendingsNumberingModules=Sänts numrering moduler
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Fritext på fraktsedlar
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Produkter leveranser kvitto numrering modul
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Avancerad redaktör
     ActivateFCKeditor=Aktivera FCKeditor för:
     FCKeditorForCompany=WYSIWYG skapande / upplaga av Companie beskrivning och notera
     FCKeditorForProduct=WYSIWYG skapande / upplaga av produkter / tjänster: s beskrivning och anteckning
    -FCKeditorForProductDetails=WYSIWYG skapande / redigering av artikeldetaljrader för alla enheter (offertar, order, fakturor mm).  <font class="warning">Varning: Användning av detta alternativ är inte rekommenderat då det kan leda till problem med speciella tecken och sidformatering vid framställning av PDF-filer.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWYG skapande / utgåva av försändelser
     FCKeditorForUserSignature=WYSIWYG skapande / upplaga av signatur
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Anslutning lyckats men databasen ser inte ut att vara en OSCommerce databas (Key %s som inte finns i tabellen %s).
    -OSCommerceTestOk=Anslutning till servern &quot;%s&quot; på databas %s &quot;med användare&quot; %s framgångsrika.
    -OSCommerceTestKo1=Anslutning till servern &quot;%s&quot; lyckas, men databas %s &quot;kunde inte nås.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Anslutning till servern "% s" på databasen "% s" med användare "% s framgångsrika.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Anslutning till servern &quot;%s&quot; med användare &quot;%s&quot; misslyckades.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=Om du använder en Point of Sale-modul (POS modul som standard eller annan extern modul), kan denna inställning ignoreras av din Point Of Sale modul. De flesta point of sales moduler är utformade för att skapa omedelbart en faktura och minska lager som standard oavsett är alternativ här. Så, om du behöver eller inte ha ett bestånd minskar när du registrerar en sälja från din Point of Sale, kolla även din POS-modul inrättas.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Meny utgår
     Menus=Menyer
    @@ -1548,7 +1562,7 @@ DetailRight=Villkor för att visa obehörig grå menyer
     DetailLangs=Lang filnamn för märkningen kodnyckel
     DetailUser=Intern / Extern / Alla
     Target=Målet
    -DetailTarget=Mål för länkar (_blank överst öppna ett nytt fönster)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Nivå (-1: toppmenyn 0: header-menyn&gt; 0 menyn och undermeny)
     ModifMenu=Meny förändring
     DeleteMenu=Ta bort menyalternativet
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=Mervärdesskatt skall betalas: <br> - Om leverans / betalni
     OptionVatDebitOptionDesc=Mervärdesskatt skall betalas: <br> - Om leverans / betalning för varor <br> - På fakturan (debet) för tjänster
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Tid för moms exigibility standard enligt vald alternativ:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Vid leverans
     OnPayment=Mot betalning
     OnInvoice=På faktura
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Köpa konto. kod
     AgendaSetup=Åtgärder och dagordning modul setup
     PasswordTogetVCalExport=Viktiga att tillåta export länk
     PastDelayVCalExport=Inte exporterar fall äldre än
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Ställs in automatiskt denna typ av händelse till sökfilter av dagordning view
    -AGENDA_DEFAULT_FILTER_STATUS=Ställs in automatiskt denna status för evenemang till sökfilter av dagordning view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Vilken flik vill du öppna som standard vid val av meny Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Klicka för att Dial modul setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales modul setup
    -CashDeskThirdPartyForSell=Standard generiska tredje part att använda för Sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Konto som ska användas för att ta emot kontant betalning
     CashDeskBankAccountForCheque= Konto som ska användas för att ta emot betalningar med check
     CashDeskBankAccountForCB= Konto som ska användas för att ta emot kontant betalning med kreditkort
    -CashDeskDoNotDecreaseStock=Inaktivera lager minskar när en försäljning sker från Point of Sale (om "nej", stock minskning görs för varje säljer görs från POS, vad är alternativet inställt i modul Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Tvinga och begränsa lager att använda för aktie minskning
    -StockDecreaseForPointOfSaleDisabled=Stock minskning från Point of Sale inaktiv
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock minskning av POS är inte kompatibelt med mycket hantering
    -CashDeskYouDidNotDisableStockDecease=Du har inte inaktivera lager minskning när du gör en sälja från Point of Sale. Så ett lager krävs.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bokmärk modul setup
    -BookmarkDesc=Den här modulen kan du hantera bokmärken. Du kan också lägga genvägar till alla Dolibarr sidor eller externale webbplatser på din vänstra menyn.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximalt antal bokmärken som visas i vänstermenyn
     ##### WebServices #####
     WebServicesSetup=WebServices modul setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-bolag modul setup
     ##### Suppliers #####
     SuppliersSetup=Leverantör modul setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Leverantörsfakturor numrerings modeller
     IfSetToYesDontForgetPermission=Om satt till ja, glöm inte att ge behörighet till grupper eller användare som tillåts för den andra godkännande
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Projekt modul setup
     ProjectsModelModule=S rapport dokument modell
     TasksNumberingModules=Uppgifter nummermodulen
     TaskModelModule=Uppgifter rapporter dokumentmodell
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Du kan hitta alternativ f
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=Lista över fasta anmälningar
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Tröskelvärde
     BackupDumpWizard=Guiden för att bygga databas backup dumpfilen
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Installation av extern modul från ans
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Markera tabelllinjer när musen flytta passerar över
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Bakgrundsfärg för ännu bords linjer
     MinimumNoticePeriod=Minsta varseltid (Din ledighet begäran måste göras innan denna försening)
     NbAddedAutomatically=Antal dagar som läggs till räknare av användare (automatiskt) varje månad
     EnterAnyCode=Detta fält innehåller en hänvisning till identifiera linje. Ange något värde i ditt val, men utan specialtecken.
    -UnicodeCurrency=Ange här mellan hängslen, lista över bytenummer som representerar valutasymbolen. För exemple: för $ anger [36] - för brazil real R $ [82,36] - för €, ange [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line i kombinationslistor
     SellTaxRate=Försäljning skattesats
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=När du skapar en möjlighet, kommer du har definierat en uppskattad mängd projekt / bly. Enligt status möjligheter, kan detta belopp multiplicated av denna kurs att utvärdera totala beloppet alla dina möjligheter kan generera. Värdet är procent (mellan 0 och 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=Denna mall rekord är tillägnad vilket element
     TypeOfTemplate=Typ av mall
    -TemplateIsVisibleByOwnerOnly=Mall syns av ägaren endast
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=Timezone fix
    @@ -1731,7 +1746,7 @@ CurrentChecksum=Current Checksum
     ForcedConstants=Required constant values
     MailToSendProposal=Customer proposals
     MailToSendOrder=Customer orders
    -MailToSendInvoice=Customer invoices
    +MailToSendInvoice=Kundfakturor
     MailToSendShipment=Transporter
     MailToSendIntervention=Insatser
     MailToSendSupplierRequestForQuotation=Quotation request
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/sv_SE/banks.lang b/htdocs/langs/sv_SE/banks.lang
    index ca8b861bdf4..bdeb36627ac 100644
    --- a/htdocs/langs/sv_SE/banks.lang
    +++ b/htdocs/langs/sv_SE/banks.lang
    @@ -1,13 +1,13 @@
     # Dolibarr language file - Source file is en_US - banks
     Bank=Bank
    -MenuBankCash=Bank | Cash
    -MenuVariousPayment=Miscellaneous payments
    -MenuNewVariousPayment=New Miscellaneous payment
    +MenuBankCash=Bank | Kontanter
    +MenuVariousPayment=Diverse betalningar
    +MenuNewVariousPayment=Ny diverse betalning
     BankName=Bankens namn
     FinancialAccount=Konto
     BankAccount=Bankkonto
     BankAccounts=Bankkonton
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Visa konto
     AccountRef=Finansiell balans ref
     AccountLabel=Finansiell balans etikett
    @@ -31,12 +31,12 @@ Reconciliation=Avstämning
     RIB=Bankkontonummer
     IBAN=IBAN-nummer
     BIC=BIC / SWIFT nummer
    -SwiftValid=BIC/SWIFT valid
    -SwiftVNotalid=BIC/SWIFT not valid
    -IbanValid=BAN valid
    -IbanNotValid=BAN not valid
    -StandingOrders=Direct Debit orders
    -StandingOrder=Direct debit order
    +SwiftValid=BIC / SWIFT giltig
    +SwiftVNotalid=BIC / SWIFT är ej giltigt
    +IbanValid=BAN giltig
    +IbanNotValid=BAN är ej giltigt
    +StandingOrders=Direktbetalningsorder
    +StandingOrder=Direkt debitering
     AccountStatement=Kontoutdrag
     AccountStatementShort=Uttalande
     AccountStatements=Kontoutdrag
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Konto adress
     BankAccountCountry=Konto land
     BankAccountOwner=Konto ägare namn
     BankAccountOwnerAddress=Konto ägare adress
    -RIBControlError=Integritet kontroll av värden misslyckas. Detta innebär att information om detta kontonummer är inte fullständiga eller fel (kontrollera land, siffror och IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Skapa konto
     NewBankAccount=Nytt konto
     NewFinancialAccount=Nya finansiella konto
    @@ -60,23 +60,24 @@ BankType2=Cash konto
     AccountsArea=Konton område
     AccountCard=Konto-kort
     DeleteAccount=Radera konto
    -ConfirmDeleteAccount=Are you sure you want to delete this account?
    +ConfirmDeleteAccount=Är du säker på att du vill radera detta konto?
     Account=Konto
    -BankTransactionByCategories=Bank entries by categories
    -BankTransactionForCategory=Bank entries for category <b>%s</b>
    +BankTransactionByCategories=Bankposter per kategori
    +BankTransactionForCategory=Bankposter för kategori <b> %s </b>
     RemoveFromRubrique=Ta bort kopplingen till kategori
    -RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category?
    -ListBankTransactions=List of bank entries
    +RemoveFromRubriqueConfirm=Är du säker på att du vill ta bort länken mellan posten och kategorin?
    +ListBankTransactions=Förteckning över bankposter
     IdTransaction=Transaktions-ID
    -BankTransactions=Bank entries
    -BankTransaction=Bank entry
    -ListTransactions=List entries
    +BankTransactions=Bankposter
    +BankTransaction=Bankpost
    +ListTransactions=Lista poster
     ListTransactionsByCategory=List entries/category
     TransactionsToConciliate=Entries to reconcile
     Conciliable=Kan förenas
     Conciliate=Reconcile
     Conciliation=Avstämning
    -ReconciliationLate=Reconciliation late
    +SaveStatementOnly=Save statement only
    +ReconciliationLate=Sen avstämning
     IncludeClosedAccount=Inkludera stängda konton
     OnlyOpenedAccount=Enbart öppna konton
     AccountToCredit=Hänsyn till kreditinstitut
    @@ -88,14 +89,14 @@ StatusAccountOpened=Öppen
     StatusAccountClosed=Stängt
     AccountIdShort=Antal
     LineRecord=Transaktion
    -AddBankRecord=Add entry
    -AddBankRecordLong=Add entry manually
    -Conciliated=Reconciled
    -ConciliatedBy=Förenas med
    -DateConciliating=Reconcile datum
    -BankLineConciliated=Entry reconciled
    -Reconciled=Reconciled
    -NotReconciled=Not reconciled
    +AddBankRecord=Lägg till post
    +AddBankRecordLong=Lägg till post manuellt
    +Conciliated=Avstämd
    +ConciliatedBy=Avstämd av
    +DateConciliating=Avstämningsdatum
    +BankLineConciliated=Post avstämd
    +Reconciled=Avstämd
    +NotReconciled=Inte avstämd
     CustomerInvoicePayment=Kundbetalning
     SupplierInvoicePayment=Leverantör betalning
     SubscriptionPayment=Teckning betalning
    @@ -104,20 +105,20 @@ SocialContributionPayment=Sociala och skattemässiga betalningar
     BankTransfer=Banköverföring
     BankTransfers=Banköverföringar
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Från
     TransferTo=För att
     TransferFromToDone=En överföring från <b>%s</b> till <b>%s</b> av <b>%s</b> %s har registrerats.
     CheckTransmitter=Sändare
    -ValidateCheckReceipt=Validate this check receipt?
    +ValidateCheckReceipt=Validera detta check-kvitto?
     ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt, no change will be possible once this is done?
     DeleteCheckReceipt=Delete this check receipt?
     ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bankcheckar
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Visar kontrollera insättning mottagande
    -NumberOfCheques=Nb av kontroller
    -DeleteTransaction=Delete entry
    +NumberOfCheques=Antal checkar
    +DeleteTransaction=Ta bort post
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
     BankMovements=Rörelser
    @@ -131,35 +132,36 @@ PaymentNumberUpdateFailed=Betalningsnummer kunde inte uppdateras
     PaymentDateUpdateSucceeded=Payment date updated successfully
     PaymentDateUpdateFailed=Betalningsdagen kunde inte uppdateras
     Transactions=Transaktioner
    -BankTransactionLine=Bank entry
    -AllAccounts=All bank and cash accounts
    +BankTransactionLine=Bankpost
    +AllAccounts=Alla bank- och kontonkonton
     BackToAccount=Tillbaka till konto
     ShowAllAccounts=Visa för alla konton
    -FutureTransaction=Transaktioner i Futur. Inget sätt att blidka.
    -SelectChequeTransactionAndGenerate=Välj / Filtret kontrollerar att inkludera i kontrollen insättning kvittot och klicka på &quot;Skapa&quot;.
    +FutureTransaction=Transaktion i framtiden. Inte möjligt att avstämma.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Så småningom, ange en kategori där för att klassificera de register
    -ToConciliate=To reconcile?
    +ToConciliate=Att avstämma?
     ThenCheckLinesAndConciliate=Kontrollera sedan linjerna som finns i kontoutdraget och klicka
     DefaultRIB=Standard BAN
     AllRIB=Alla BAN
     LabelRIB=BAN etikett
     NoBANRecord=Inget BAN rad
     DeleteARib=Radera BAN rad
    -ConfirmDeleteRib=Are you sure you want to delete this BAN record?
    +ConfirmDeleteRib=Är du säker på att du vill ta bort denna BAN-post?
     RejectCheck=Check returned
     ConfirmRejectCheck=Are you sure you want to mark this check as rejected?
     RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
    -VariousPayment=Miscellaneous payments
    -VariousPayments=Miscellaneous payments
    +VariousPayment=Diverse betalningar
    +VariousPayments=Diverse betalningar
     ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
    -SEPAMandate=SEPA mandate
    -YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +SEPAMandate=SEPA-mandatet
    +YourSEPAMandate=Ditt SEPA-mandat
    +FindYourSEPAMandate=Detta är ditt SEPA-mandat för att bemyndiga vårt företag att göra direkt debitering till din bank. Returnera det undertecknat (skanna av det signerade dokumentet) eller skicka det via post till
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang
    index 43d29bf6673..95d48ce8228 100644
    --- a/htdocs/langs/sv_SE/bills.lang
    +++ b/htdocs/langs/sv_SE/bills.lang
    @@ -1,13 +1,13 @@
     # Dolibarr language file - Source file is en_US - bills
     Bill=Faktura
     Bills=Fakturor
    -BillsCustomers=Customer invoices
    +BillsCustomers=Kundfakturor
     BillsCustomer=Kundfaktura
    -BillsSuppliers=Supplier invoices
    +BillsSuppliers=Leverantörsfakturor
     BillsCustomersUnpaid=Obetalda kundfakturor
    -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s
    +BillsCustomersUnpaidForCompany=Obetalda kundfakturor för %s
     BillsSuppliersUnpaid=Obetalda leverantörsfakturor
    -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s
    +BillsSuppliersUnpaidForCompany=Obetalda leverantörsfakturor för %s
     BillsLate=Sena betalningar
     BillsStatistics=Kundfakturor statistik
     BillsStatisticsSuppliers=Leverantörsfakturor statistik
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma faktura
     InvoiceProFormaDesc=<b>Proforma faktura</b> är en bild av en sann faktura men har ingen bokföring värde.
     InvoiceReplacement=Ersättnings faktura
     InvoiceReplacementAsk=Ersättnings faktura för faktura
    -InvoiceReplacementDesc=<b> Ersättning faktura </b> används för att avbryta och byta helt en faktura utan betalningar.<br><br>Anmärkning: Endast fakturor utan betalningar kan bytas ut. Om fakturan du ersätter är ännu inte avslutat, kommer den automatiskt att stängas av "övergivna".
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Kreditnota
     InvoiceAvoirAsk=Kreditnota att korrigera fakturan
    -InvoiceAvoirDesc=Den <b>kreditnota</b> är en negativ faktura används för att lösa det faktum att en faktura har ett värde som skiljer än beloppet verkligen betalat (eftersom kunden betalat för mycket av misstag, eller kommer inte betalas helt sedan han återvände vissa produkter till exempel).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Skapa kreditnota med innehållet i originalfakturan 
     invoiceAvoirWithPaymentRestAmount=Skapa kreditnota med återstående obetald faktura ursprung
     invoiceAvoirLineWithPaymentRestAmount=Kredit notering för återstående obetalda beloppet
    @@ -62,16 +62,16 @@ PaymentBack=Betalning tillbaka
     CustomerInvoicePaymentBack=Betalning tillbaka
     Payments=Betalningar
     PaymentsBack=Betalningar tillbaka
    -paymentInInvoiceCurrency=in invoices currency
    +paymentInInvoiceCurrency=i faktura valuta
     PaidBack=Återbetald
     DeletePayment=Radera betalning
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Leverantörer betalningar
     ReceivedPayments=Mottagna betalningar
     ReceivedCustomersPayments=Inbetalningar från kunder
    -PayedSuppliersPayments=Utförda leverantörsbetalningar
    +PayedSuppliersPayments=Betalningar betalade till leverantörer
     ReceivedCustomersPaymentsToValid=Mottagna kunder betalningar för att validera
     PaymentsReportsForYear=Betalningar rapporter för %s
     PaymentsReports=Betalningar rapporter
    @@ -79,11 +79,11 @@ PaymentsAlreadyDone=Betalningar redan gjort
     PaymentsBackAlreadyDone=Återbetalningar är utförda tidigare
     PaymentRule=Betalningsregel
     PaymentMode=Betalningssätt
    -PaymentTypeDC=Debit/Credit Card
    +PaymentTypeDC=Debet / Kreditkort
     PaymentTypePP=PayPal
    -IdPaymentMode=Payment type (id)
    -CodePaymentMode=Payment type (code)
    -LabelPaymentMode=Payment type (label)
    +IdPaymentMode=Betalningstyp (id)
    +CodePaymentMode=Betalningstyp (kod)
    +LabelPaymentMode=Betalningstyp (etikett)
     PaymentModeShort=Betalningssätt
     PaymentTerm=Betalningsvillkor
     PaymentConditions=Betalningsvillkor
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Betalningsvillkor
     PaymentAmount=Betalningsbelopp
     ValidatePayment=Bekräfta betalning
     PaymentHigherThanReminderToPay=Betalning högre än påminnelse att betala
    -HelpPaymentHigherThanReminderToPay=Uppmärksamheten är för betalning är en eller flera räkningar högre än resten att betala. <br> Redigera din post, bekräfta något annat och tänka på att skapa en kreditnota det felaktigt erhållna beloppet för varje överskjutande fakturor.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Klassificera "betalda"
     ClassifyPaidPartially=Klassificera "betalda delvis"
     ClassifyCanceled=Klassificera "övergivna"
    @@ -107,9 +107,9 @@ SearchACustomerInvoice=Sök efter en kundfaktura
     SearchASupplierInvoice=Sök efter en leverantörsfaktura
     CancelBill=Avbryt en faktura
     SendRemindByMail=Skicka påminnelse via e-post
    -DoPayment=Enter payment
    -DoPaymentBack=Enter refund
    -ConvertToReduc=Mark as credit available
    +DoPayment=Ange betalning
    +DoPaymentBack=Ange återbetalning
    +ConvertToReduc=Markera som kredit tillgänglig
     ConvertExcessReceivedToReduc=Convert excess received into available credit
     ConvertExcessPaidToReduc=Convert excess paid into available discount
     EnterPaymentReceivedFromCustomer=Skriv in avgifter från kunderna
    @@ -126,31 +126,32 @@ BillStatusCanceled=Övergiven
     BillStatusValidated=Validerad (måste betalas)
     BillStatusStarted=Påbörjad
     BillStatusNotPaid=Inte betalas
    -BillStatusNotRefunded=Not refunded
    +BillStatusNotRefunded=Icke återbetalad
     BillStatusClosedUnpaid=Stängd (obetald)
     BillStatusClosedPaidPartially=Betald (delvis)
     BillShortStatusDraft=Utkast
     BillShortStatusPaid=Betald
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Betald
     BillShortStatusCanceled=Övergiven
     BillShortStatusValidated=Validerad
     BillShortStatusStarted=Började
     BillShortStatusNotPaid=Inte betalas
    -BillShortStatusNotRefunded=Not refunded
    +BillShortStatusNotRefunded=Icke återbetalad
     BillShortStatusClosedUnpaid=Stängt
     BillShortStatusClosedPaidPartially=Betald (delvis)
     PaymentStatusToValidShort=För att validera
    -ErrorVATIntraNotConfigured=Intracommunautary momsregistreringsnummer ännu inte definierat
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Ingen utebliven betalning läge definieras. Gå till Faktura-modulen setup att fixa detta.
     ErrorCreateBankAccount=Skapa ett bankkonto, då gå till Setup panel Faktura-modul för att definiera betalningssätten
     ErrorBillNotFound=Faktura %s finns inte
    -ErrorInvoiceAlreadyReplaced=Fel, du försöker dig på att  godkänna en faktura för att ersätta faktura %s. Men denna har redan ersatts av faktura %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Fel, rabatt som redan används
     ErrorInvoiceAvoirMustBeNegative=Fel, måste korrigera fakturan ett negativt belopp
     ErrorInvoiceOfThisTypeMustBePositive=Fel, skall denna typ av faktura har ett positivt belopp
     ErrorCantCancelIfReplacementInvoiceNotValidated=Fel, kan inte avbryta en faktura som har ersatts av en annan faktura som fortfarande i utkast status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Från
     BillTo=Fakturamottagare
     ActionsOnBill=Åtgärder mot faktura
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Återstående obetalt <b>(%s %s)</ b> är en rabatt som beviljats ​​eftersom betalningen gjordes före villkoren. Jag reglerar momsen med en kreditnota.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Återstående obetalt <b>(%s %s)</ b> är en rabatt som beviljats ​​eftersom betalningen gjordes före villkoren. Jag godkänner förlust av momsen på denna rabatt.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Återstående obetalt <b>(%s %s)</ b> är en rabatt som beviljats ​​eftersom betalningen gjordes före villkoren. Jag återskapar momsen på denna rabatt med en kreditnota.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Dålig kund
     ConfirmClassifyPaidPartiallyReasonProductReturned=Produkter som returneras delvis
     ConfirmClassifyPaidPartiallyReasonOther=Belopp övergivna av annan orsak
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Detta val är möjligt om din faktura har försetts med lämplig kommentar. (Exempel «Endast den skatt som motsvarar det pris som verkligen har betalats ger rätt till avdrag»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=I vissa länder kan detta val är möjlig endast om fakturan innehåller rätt not.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Använd detta val om alla andra inte passar
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=En <b>dålig kund</b> är en kund som vägrar att betala sin skuld.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Detta val används när betalningen är inte fullständig eftersom vissa av produkterna var tillbaka
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Använd detta val om alla andra inte passar, till exempel i följande situation: <br> - Betalning inte fullständig eftersom vissa produkter skickas tillbaka <br> - Belopp som begärs också viktigt eftersom en rabatt glömde <br> I samtliga fall, belopp över gällande måste korrigeras i systemet för bokföring genom att skapa en kreditnota.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Andra
     ConfirmClassifyAbandonReasonOtherDesc=Detta val kommer att användas i alla andra fall. Till exempel därför att du planerar att skapa en ersättning faktura.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validera faktura
     UnvalidateBill=Ovaliderade faktura
    -NumberOfBills=Antal av fakturor
    -NumberOfBillsByMonth=Antal av fakturor per månad
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Belopp för fakturor
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Mängd av fakturor per månad (netto efter skatt)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Visa faktura
    @@ -228,7 +230,7 @@ EscompteOfferedShort=Rabatt
     SendBillRef=Inlämning av faktura %s
     SendReminderBillRef=Inlämning av faktura %s (påminnelse)
     StandingOrders=Direct debit orders
    -StandingOrder=Direct debit order
    +StandingOrder=Direkt debitering
     NoDraftBills=Inget förslag fakturor
     NoOtherDraftBills=Inga andra förslag fakturor
     NoDraftInvoices=Inget faktura-utkast
    @@ -260,9 +262,9 @@ Repeatables=Mallar
     ChangeIntoRepeatableInvoice=Konvertera till fakturamall
     CreateRepeatableInvoice=Skapa fakturamall
     CreateFromRepeatableInvoice=Skapa från fakturamall
    -CustomersInvoicesAndInvoiceLines=Kundfakturor och fakturornas linjer
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Kund fakturor och betalningar
    -ExportDataset_invoice_1=Kundfakturor listan och fakturornas linjer
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Kund fakturor och betalningar
     ProformaBill=Proforma faktura:
     Reduction=Minskning
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Faktureringsadress
    -HelpEscompte=Denna rabatt är en rabatt som kund eftersom betalningen gjordes före sikt.
    -HelpAbandonBadCustomer=Detta belopp har övergivits (kund sägs vara en dålig kund) och anses som en exceptionell lös.
    -HelpAbandonOther=Detta belopp har övergivits eftersom det var ett misstag (fel kund eller faktura ersättas av en annan till exempel)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Betalning id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Faktura vald
     CloneInvoice=Klon faktura
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Åtgärd funktionshindrade eftersom faktura har ersatts
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Antal utbetalningar
    +DescTaxAndDividendsArea=Detta område ger en sammanfattning av alla betalningar för särskilda utgifter. Endast poster med betalning under fasta året ingår här.
    +NbOfPayments=No. of payments
     SplitDiscount=Split rabatt i två
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Ingång belopp för var och en av två delar:
    -TotalOfTwoDiscountMustEqualsOriginal=Totalt för två nya rabatt måste vara lika med ursprungliga rabatt belopp.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Relaterade faktura
     RelatedBills=Relaterade fakturor
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Senast relaterad faktura
    -WarningBillExist=Varning, en eller flera fakturor finns redan
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Kontrollera
     PaymentTypeShortCHQ=Kontrollera
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=På rad betalning
    -PaymentTypeShortVAD=På rad betalning
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Utkast
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bankuppgifter
     BankCode=Bankkod
    -DeskCode=Reception kod
    +DeskCode=Office code
     BankAccountNumber=Kontonummer
    -BankAccountNumberKey=Nyckel
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN-nummer
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=BIC / SWIFT nummer
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Betalning genom överföring på följande ko
     VATIsNotUsedForInvoice=* Ej tillämpligt moms konst-293B av CGI
     LawApplicationPart1=Genom tillämpning av lagen 80,335 av 12/05/80
     LawApplicationPart2=Varan förblir egendom
    -LawApplicationPart3=säljaren tills hela inlösen av
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=deras pris.
     LimitedLiabilityCompanyCapital=SARL med kapital av
     UseLine=Tillämpa
    @@ -463,7 +465,7 @@ Cheques=Kontroller
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Använda kundens faktureringsadress adress i stället för tredje parts adress som mottagare för fakturor
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Visa alla obetalda fakturor
     ShowUnpaidLateOnly=Visa sent obetald faktura endast
     PaymentInvoiceRef=Betalning faktura %s
    @@ -474,21 +476,22 @@ Reported=Försenad
     DisabledBecausePayments=Inte möjlig eftersom det inte finns några betalningar
     CantRemovePaymentWithOneInvoicePaid=Kan inte ta bort betalning eftersom det inte finns åtminstone på fakturan klassificeras betalt
     ExpectedToPay=Förväntad utbetalning
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Betalas av denna betalning
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Beteckna "Betalda" alla fullständigt återbetalda kreditnotor.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Alla fakturor utan återstående att betala kommer automatiskt stängd för status "betald".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Betala
     ToMakePaymentBack=Återbetala
     ListOfYourUnpaidInvoices=Lista över obetalda fakturor
     NoteListOfYourUnpaidInvoices=OBS: Denna lista innehåller bara fakturor för tredje parti som du är kopplade till som en försäljning representant.
     RevenueStamp=Intäkt stämpel
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Faktura modell Crabe. En fullständig faktura modell (Stöd moms alternativet, rabatter, betalningar villkor, logotyp, etc. ..)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Återger nummer med formatet %syymm-nnnn för standardfakturor och %syymm-NNNN för kreditnotor där yy är året, mm månaden och nnnn är en sekvens med ingen paus och ingen återgång till 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/sv_SE/cashdesk.lang b/htdocs/langs/sv_SE/cashdesk.lang
    index 15bc54ee3a1..f878a4bf489 100644
    --- a/htdocs/langs/sv_SE/cashdesk.lang
    +++ b/htdocs/langs/sv_SE/cashdesk.lang
    @@ -1,6 +1,6 @@
     # Language file - Source file is en_US - cashdesk
    -CashDeskMenu=Point of salu
    -CashDesk=Point of salu
    +CashDeskMenu=Kassa
    +CashDesk=Kassa
     CashDeskBankCash=Bankkonto (kontanter)
     CashDeskBankCB=Bankkonto (kort)
     CashDeskBankCheque=Bankkonto (kontroll)
    @@ -11,24 +11,34 @@ CashDeskStock=Lager
     CashDeskOn=på
     CashDeskThirdParty=Tredje part
     ShoppingCart=Kundvagn
    -NewSell=Nya säljer
    +NewSell=Nyförsäljning
     AddThisArticle=Lägg till den här artikeln
     RestartSelling=Gå tillbaka på sälj
    -SellFinished=Sale complete
    +SellFinished=Försäljning avslutad
     PrintTicket=Skriv ut biljetten
    -NoProductFound=Ingen produkt hittades
    -ProductFound=Produkten finns
    +NoProductFound=Ingen artikel hittades
    +ProductFound=Produkt hittad
     NoArticle=Ingen artikel
     Identification=Identifiering
    -Article=Artikeln
    -Difference=Skillnaden
    +Article=Artikel
    +Difference=Skillnad
     TotalTicket=Totalt biljett
    -NoVAT=Ingen moms för denna försäljning
    -Change=Överskott mottagna
    -BankToPay=Account for payment
    -ShowCompany=Visar företaget
    -ShowStock=Visar lagret
    +NoVAT=Momsfri försäljning
    +Change=Växel mottagen
    +BankToPay=Betalningskonto
    +ShowCompany=Visa företag
    +ShowStock=Visa lager
     DeleteArticle=Klicka här för att ta bort den här artikeln
     FilterRefOrLabelOrBC=Sök (Ref / etikett)
    -UserNeedPermissionToEditStockToUsePos=Du ber att minska lager på faktura skapelse, så användare som använder POS behöver ha behörighet att redigera lager.
    -DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
    +DolibarrReceiptPrinter=Dolibarr Kvittoskrivare
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/sv_SE/commercial.lang b/htdocs/langs/sv_SE/commercial.lang
    index 81813814b9d..dbd1cd5e651 100644
    --- a/htdocs/langs/sv_SE/commercial.lang
    +++ b/htdocs/langs/sv_SE/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefonsamtal
     ActionAC_FAX=Skicka fax
     ActionAC_PROP=Skicka förslag via e-post
     ActionAC_EMAIL=Skicka e-post
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Möten
     ActionAC_INT=Intervention på plats
     ActionAC_FAC=Skicka kundfaktura med post
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Utforma kommersiella förslag
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/sv_SE/companies.lang b/htdocs/langs/sv_SE/companies.lang
    index 3360604cebf..2a0ee1467df 100644
    --- a/htdocs/langs/sv_SE/companies.lang
    +++ b/htdocs/langs/sv_SE/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Välj en tredje part
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Radera en kontakt
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=Ny tredje part
    -MenuNewCustomer=Ny kund
    -MenuNewProspect=Ny möjlig kund
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Nya privatperson
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Skapa tredje part
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Tredje part kontakt/adress
     Company=Företag
     CompanyName=Företagets namn
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Företag
    -CountryIsInEEC=Landet är inom Europeiska ekonomiska gemenskapen
    -ThirdPartyName=Tredje parts namn
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Tredje part
    -ThirdParties=Tredje part
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Möjliga kunder
     ThirdPartyProspectsStats=Möjliga kunder
     ThirdPartyCustomers=Kunder
     ThirdPartyCustomersStats=Kunder
     ThirdPartyCustomersWithIdProf12=Kunder med %s eller %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Tredje part typ
    +ThirdPartyType=Type of company
     Individual=Privatperson
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Moderbolaget
     Subsidiaries=Dotterbolag
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Postnummer
     Town=Stad
     Web=Webb
     Poste= Position
    -DefaultLang=Språk som standard
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Förslag
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntaxen är giltigt
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Denna kund har en rabatt på <b>%s%%</b>
     CompanyHasNoRelativeDiscount=Denna kund har ingen relativ rabatt som standard
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Denna kund har fortfarande kreditnotor för <b>%s %s</b>
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Ingen
    -Supplier=Leverantör
    +Supplier=Vendor
     AddContact=Skapa kontakt
     AddContactAddress=Skapa kontakt / adress
     EditContact=Redigera kontakt / adress
    @@ -303,22 +303,22 @@ AddThirdParty=Skapa tredje part
     DeleteACompany=Ta bort ett företag
     PersonalInformations=Personuppgifter
     AccountancyCode=Redovisningskonto
    -CustomerCode=Kundnummer
    -SupplierCode=Vendor code
    -CustomerCodeShort=Kundnummer
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Kundnummer, unik för varje kund
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Krävs om tredje part är en kund eller möjlig kund
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Giltigheten kontrolleras av modul
    -ThisIsModuleRules=Detta är reglerna för denna modul
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Möjlig kund att kontakta
     CompanyDeleted=Företaget "%s" raderad från databasen.
     ListOfContacts=Lista med kontakter / adresser
     ListOfContactsAddresses=Lista med kontakter / adresser
    -ListOfThirdParties=Förteckning över tredje part
    -ShowCompany=Show third party
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Visa kontakt
     ContactsAllShort=Alla (inget filter)
     ContactType=Kontakttyp
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Denna kontakt är inte kontakt i någon kommersiell offe
     NoContactForAnyContract=Denna kontakt är inte kontakt för något kontrakt
     NoContactForAnyInvoice=Denna kontakt är inte kontakt för någon faktura
     NewContact=Ny kontakt
    -NewContactAddress=Ny kontakt / adress
    +NewContactAddress=New Contact/Address
     MyContacts=Mina kontakter
     Capital=Kapital
     CapitalOf=Kapital %s
     EditCompany=Redigera företag
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Kontrollera
    -VATIntraCheckDesc=Länken <b>%s</b> gör det möjligt att söka Europeiska moms tjänsten. Tillgång till internet från servern krävs för att denna tjänst ska fungera.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Kontrollera moms inom gemenskapen på EU-kommissionens webbplats
    -VATIntraManualCheck=Du kan också kontrollera manuellt från europeiska webbplatsen <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Kontroll inte möjlig. Kontrollera om tjänsten tillhandahålls av medlemsstaten (%s).
    -NorProspectNorCustomer=Varken möjlig kund eller kund
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Personal
     ProspectLevelShort=Potentiella
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export-kort för att formatera
     ContactNotLinkedToCompany=Kontakt ej länkad till någon tredje part
     DolibarrLogin=Dolibarr inloggning
     NoDolibarrAccess=Dolibarr ej nåbar
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Kontakter och egenskaper
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Prisnivå
     DeliveryAddress=Leveransadress
     AddAddress=Lägg till adress
    @@ -402,16 +402,16 @@ DeleteFile=Ta bort fil
     ConfirmDeleteFile=Är du säker på att du vill ta bort denna fil?
     AllocateCommercial=Assigned to sales representative
     Organization=Organisation
    -FiscalYearInformation=Information om räkenskapsåret
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Första månad av verksamhetsåret
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Lista över möjliga kunder
    -ListCustomersShort=Lista över kunder
    -ThirdPartiesArea=Tredje part och kontaktyta
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Totalt unika tredje part
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Öppen
     ActivityCeased=Stängt
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Obetalda fakturor
     OutstandingBill=Max för obetald faktura
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Kund / leverantör-nummer är ledig. Denna kod kan ändras när som helst.
     ManagingDirectors=Företagledares namn (vd, direktör, ordförande ...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/sv_SE/dict.lang b/htdocs/langs/sv_SE/dict.lang
    index cacce0376e9..7f2c2ecbdd9 100644
    --- a/htdocs/langs/sv_SE/dict.lang
    +++ b/htdocs/langs/sv_SE/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard-och McDonaldöarna
     CountryVA=Heliga stolen (Vatikanen)
     CountryHN=Honduras
     CountryHK=Hongkong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=Indien
     CountryID=Indonesien
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Nordkorea
     CountryKR=Sydkorea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Lettland
     CountryLB=Libanon
    @@ -160,7 +160,7 @@ CountryMD=Moldavien
     CountryMN=Mongoliet
     CountryMS=Montserrat
     CountryMZ=Moçambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad och Tobago
     CountryTR=Kalkon
     CountryTM=Turkmenistan
    -CountryTC=Turks-och Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupier
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norska Krones
    -CurrencySingNOK=Norska kronor
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisiska dinarer
     CurrencySingTND=Tunisisk dinar
     CurrencyUSD=US-dollar
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Anställd
     DemandReasonTypeSRC_SPONSORING=Sponsor
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/sv_SE/ecm.lang b/htdocs/langs/sv_SE/ecm.lang
    index 5ee5d95bcb1..727e3a6733f 100644
    --- a/htdocs/langs/sv_SE/ecm.lang
    +++ b/htdocs/langs/sv_SE/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb av dokument i katalogen
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manuell katalog
     ECMSectionAuto=Automatisk katalog
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Handlingar som är kopplade till projekt
     ECMDocsByUsers=Dokument länkade till användare
     ECMDocsByInterventions=Dokument länkade till ärenden
     ECMDocsByExpenseReports=Dokument länkade till utgiftsrapporter
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Ingen katalog skapas
     ShowECMSection=Visa katalog
     DeleteSection=Ta bort katalog
    @@ -46,6 +48,5 @@ ECMSelectASection=Välj en mapp i trädet...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Uppdatera lista med mappar
     HashOfFileContent=Hash av filinnehåll
    -FileNotYetIndexedInDatabase=Filen är inte indexerad i databasen (försök ladda upp igen)
    -FileSharedViaALink=Fil delad via länk
     NoDirectoriesFound=Inga mappar funna
    +FileNotYetIndexedInDatabase=Filen är inte indexerad i databasen (försök ladda upp igen)
    diff --git a/htdocs/langs/sv_SE/errors.lang b/htdocs/langs/sv_SE/errors.lang
    index d41fdfe2cd4..20500f59203 100644
    --- a/htdocs/langs/sv_SE/errors.lang
    +++ b/htdocs/langs/sv_SE/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Värde &quot;%s&quot; har fel datumformat
     ErrorWrongDate=Datum är inte korrekt!
     ErrorFailedToWriteInDir=Misslyckades med att skriva i katalogen %s
     ErrorFoundBadEmailInFile=Hittade felaktig e-syntax för %s rader i filen (t.ex. linje %s med email = %s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Vissa obligatoriska fält inte fylls.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Misslyckades med att skapa en katalog. Kontrollera att webbservern användaren har rättigheter att skriva till Dolibarr dokument katalogen. Om parametern <b>safe_mode</b> är aktiv på PHP, kontrollera att Dolibarr php-filer äger till webbserver användare (eller grupp).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Vänligen fyll i värde för utvald lista
     ErrorNoValueForCheckBoxType=Vänligen fyll i värde för krysslista
     ErrorNoValueForRadioType=Vänligen fyll i värde för radiolista
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Fält <b>%s</b> inte innehåller specialtecken.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Ingen bokföring modul aktiverad
     ErrorExportDuplicateProfil=Detta profilnamn finns redan för denna export.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matchning inte är fullständig.
     ErrorLDAPMakeManualTest=A. LDIF filen har genererats i katalogen %s. Försök att läsa in den manuellt från kommandoraden för att få mer information om fel.
    -ErrorCantSaveADoneUserWithZeroPercentage=Kan inte spara en åtgärd med &quot;inte Statut startade&quot; om fältet &quot;görs av&quot; är också fylld.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref används för att skapa finns redan.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Kan inte ta bort posten. Den används redan eller ingå i annat föremål.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript måste inte avaktiveras att ha denna funktion fungerar. Aktivera / inaktivera Javascript, gå till menyn Hem-> Inställningar-> Display.
     ErrorPasswordsMustMatch=Båda skrivit lösenord måste matcha varandra
    -ErrorContactEMail=Ett tekniskt fel uppstod. Vänligen kontakta administratören att följa <b>e-%s</b> en ge <b>%s</b> felkod i ditt meddelande, eller ännu bättre genom att lägga till en skärm kopia av denna sida.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Felaktigt värde för antalet <b>%s</b> området (värde <b>&quot;%s&quot;</b> inte matchar regex regel <b>%s)</b>
     ErrorFieldValueNotIn=Fel värde för <b>%s</b> fältnummer (värde <b>&quot;%s&quot;</b> är inte ett värde tillgängligt i fält <b>%s</b> av tabell <b>%s)</b>
     ErrorFieldRefNotIn=Fel värde för <b>%s</b> fältnummer (värde <b>&quot;%s&quot;</b> är inte ett <b>%s</b> befintlig ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Antivirusprogrammet inte har kunnat validera (fil
     ErrorSpecialCharNotAllowedForField=Speciella tecken är inte tillåtna för användning i fält &quot;%s&quot;
     ErrorNumRefModel=En hänvisning finns i databasen (%s) och är inte förenligt med denna numrering regel. Ta bort post eller bytt namn hänvisning till aktivera den här modulen.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Fel på masken
     ErrorBadMaskFailedToLocatePosOfSequence=Fel, mask utan löpnummer
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Fel, dåligt återställningsvärde
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Välj minst en post.
    -ErrorDeleteNotPossibleLineIsConsolidated=Bort icke möjlig, eftersom post är kopplad till en bank Kontoinformation som blidkades
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s tilldelas ett annat tredje
     ErrorFailedToSendPassword=Misslyckades med att skicka lösenord
     ErrorFailedToLoadRSSFile=Inte få RSS-flöde. Försök att lägga konstant MAIN_SIMPLEXMLLOAD_DEBUG Om felmeddelanden inte ger tillräckligt med information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Användaren med inloggning <b>%s</b> kunde inte hittas.
     ErrorLoginHasNoEmail=Denna användare har inga e-postadress. Process avbruten.
     ErrorBadValueForCode=Dåligt värde typer för kod. Försök igen med ett nytt värde ...
     ErrorBothFieldCantBeNegative=Fält %s och %s kan inte vara både negativt
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Kvantitet för linje i kundfakturor kan inte vara negativt
     ErrorWebServerUserHasNotPermission=Användarkonto <b>%s</b> användas för att exekvera webbserver har ingen behörighet för den
     ErrorNoActivatedBarcode=Ingen streckkod typ aktiveras
    @@ -138,7 +141,7 @@ ErrorBadFormat=Dåligt format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Fel, det finns några leveranser kopplade till denna sändning. Radering vägrade.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Kan inte ta bort en betalning som delas av minst en faktura med status betalt
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Kan inte tilldela till konstant '%s'
     ErrorPriceExpression2=Kan inte omdefiniera inbyggd funktion %s
     ErrorPriceExpression3=Odefinierad variabel '%s' i funktionsdefinition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Oväntad '%s'
     ErrorPriceExpression6=Fel antal argument (%s givet, %s förväntades)
     ErrorPriceExpression8=Oväntad operatör '%s'
     ErrorPriceExpression9=Ett oväntat fel uppstod
    -ErrorPriceExpression10=Iperator %s saknar operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Förväntar '%s'
     ErrorPriceExpression14=Division med noll
     ErrorPriceExpression17=Odefinierad variabel '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Obligatoriska inställningsparametrarna har ännu inte definierat
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Ett bokmärke med denna avdelning eller detta mål
     WarningPassIsEmpty=Varning, är databasen lösenord tom. Detta är ett säkerhetshål. Du bör lägga till ett lösenord till din databas och ändra din conf.php fil som återspeglar detta.
     WarningConfFileMustBeReadOnly=Varning, konfigurationsfilen <b>(htdocs / conf / conf.php)</b> kan din skrivas över av den webbserver. Detta är ett allvarligt säkerhetshål. Ändra behörigheter på fil för att vara i skrivskyddat läge för operativsystem som användare som används av webbservern. Om du använder Windows och FAT format för din disk, måste du veta att det här filsystemet inte är möjligt att lägga till behörigheter för filen, så kan inte vara helt säker.
     WarningsOnXLines=Varningar om <b>%s</b> källrader
    -WarningNoDocumentModelActivated=Ingen modell för handling generation, har aktiverats. En modell kommer att valde som standard tills du kontrollera din modul konfiguration.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Varning, när installationen är klar måste du inaktivera installera / migrera verktyg genom att lägga till en fil <b>install.lock</b> i <b>katalogen %s.</b> Saknas denna fil så är det ett säkerhetshål.
    -WarningUntilDirRemoved=Alla säkerhetsvarningar (synlig av admin-användare) förblir aktiv så länge sårbarheten är närvarande (eller att konstant MAIN_REMOVE_INSTALL_WARNING läggs i Start-> Other Setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Varning, är stängning göras även om beloppet varierar mellan källa och mål element. Aktivera den här funktionen med försiktighet.
     WarningUsingThisBoxSlowDown=Varning, använder denna ruta bromsa allvarligt alla sidor som visar lådan.
     WarningClickToDialUserSetupNotComplete=Inställning av ClickToDial informationen för ditt användarkonto är inte fullständiga (se fliken ClickToDial på din användarkortet).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/sv_SE/help.lang b/htdocs/langs/sv_SE/help.lang
    index 8669037f3fb..696e7f5bdaa 100644
    --- a/htdocs/langs/sv_SE/help.lang
    +++ b/htdocs/langs/sv_SE/help.lang
    @@ -5,22 +5,19 @@ RemoteControlSupport=Online realtid / fjärrsupport
     OtherSupport=Annat stöd
     ToSeeListOfAvailableRessources=För att kontakta / se tillgängliga resurser:
     HelpCenter=Hjälpcenter
    -DolibarrHelpCenter=Dolibarr Hjälp-och supportcenter
    -ToGoBackToDolibarr=Annars klickar du på <a href="%s">att här använda Dolibarr</a>
    -TypeOfSupport=Källa till stöd
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Gemenskapen (gratis)
     TypeSupportCommercial=Kommersiella
     TypeOfHelp=Typ
    -NeedHelpCenter=Need help or support?
    +NeedHelpCenter=Behöver du hjälp eller stöd?
     Efficiency=Effektivitet
     TypeHelpOnly=Hjälp endast
     TypeHelpDev=Hjälp + Utveckling
    -TypeHelpDevForm=Hjälp + Utveckling + Formation
    -ToGetHelpGoOnSparkAngels1=Vissa företag kan ge en snabb (ibland omedelbart) och effektivare online support genom att ta kontroll över din dator. Sådana medhjälpare finns på <b>%s</b> webbplats:
    -ToGetHelpGoOnSparkAngels3=Du kan också gå till listan över alla tillgängliga bussar för Dolibarr, för detta, klicka på knappen
    -ToGetHelpGoOnSparkAngels2=Ibland finns det inget företag finns tillgängliga då du gör din sökning, så tänk att byta filter till för &quot;alla tillgängliga&quot;. Du kommer att kunna skicka fler förfrågningar.
    -BackToHelpCenter=Annars, här klickar du gå <a href="%s">tillbaka för att hjälpa hemsida centrum</a> .
    -LinkToGoldMember=Du kan ringa en av de tränare förvalda genom Dolibarr för ditt språk (%s) genom att klicka på hans Widget (status och högsta pris uppdateras automatiskt):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Språk som stöds
    -SubscribeToFoundation=Hjälp Dolibarr projektet, prenumerera på stiftelsen
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=För officiell Dolibarr support på ditt språk: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/sv_SE/holiday.lang b/htdocs/langs/sv_SE/holiday.lang
    index 6644a2fb337..fee4a25fe18 100644
    --- a/htdocs/langs/sv_SE/holiday.lang
    +++ b/htdocs/langs/sv_SE/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Löv
    -CPTitreMenu=Löv
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Månatlig rapport
     MenuAddCP=Ny ledighetsansökan
    -NotActiveModCP=Du måste aktivera modulen Löv att se denna sida.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Gör en förfrågan ledighet
     DateDebCP=Startdatum
     DateFinCP=Slutdatum
    @@ -15,13 +15,18 @@ ApprovedCP=Godkänd
     CancelCP=Annullerad
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=Lista över blad
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Beskrivning
     SendRequestCP=Skapa permission begäran
     DelayToRequestCP=Lämna begäran måste göras <b>minst %s dag (ar) </b> före dem.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Lämnar balans <b>är %s</b> dagar.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Du måste välja ett slutdatum senare än startdatum.
     ErrorSQLCreateCP=Ett SQL-fel uppstod under skapandet:
     ErrorIDFicheCP=Ett fel har uppstått, inte existerar begäran ledighet.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=Du har inte behörighet att läsa denna ledighet begäran.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Begäran från
     TitreRequestCP=Lämna begäran
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Antal dagars semester konsumeras
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Redigera
     DeleteCP=Ta bort
     ActionRefuseCP=Vägra
    @@ -59,6 +71,7 @@ DateRefusCP=Datum för avslag
     DateCancelCP=Datum för annullering
     DefineEventUserCP=Tilldela en exceptionell ledighet för en användare
     addEventToUserCP=Tilldela ledighet
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=Användare
     ErrorAddEventToUserCP=Ett fel uppstod när den exceptionella ledighet.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Uppdaterats.
     Module27130Name= Hantering av ledighet förfrågningar
     Module27130Desc= Hantering av ledighet förfrågningar
    @@ -94,7 +112,7 @@ NoticePeriod=Uppsägningstid
     HolidaysToValidate=Validera ledighets förfrågningar
     HolidaysToValidateBody=Nedan finns en ledighet begäran om att validera
     HolidaysToValidateDelay=Denna ledighet begäran kommer att ske inom en period på mindre än %s dagar.
    -HolidaysToValidateAlertSolde=Användaren som gjort detta lämnar de krävs inte har tillräckligt med tillgängliga dagar.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validerade ledighets förfrågningar
     HolidaysValidatedBody=Din ledighets begäran om %s till %s har validerats.
     HolidaysRefused=Begäran nekades
    @@ -103,4 +121,9 @@ HolidaysCanceled=Annulleras leaved begäran
     HolidaysCanceledBody=Din ledighet begäran om %s till %s har avbrutits.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Gå in på  <strong>Hem - Setup - Bibliotek - Typ av ledighet</strong> för att ställa in olika varianter av ledigheter.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/sv_SE/install.lang b/htdocs/langs/sv_SE/install.lang
    index 2408595ce38..782e4c0fd73 100644
    --- a/htdocs/langs/sv_SE/install.lang
    +++ b/htdocs/langs/sv_SE/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Följ bara instruktionerna steg för steg.
     MiscellaneousChecks=Förutsättningar kontrolleras
     ConfFileExists=Konfigurationsfilen <b>%s</b> finns.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Konfigurationsfilen <b>%s</b> finns inte och kunde inte skapas!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Konfigurationsfil <b>%s</b> skulle kunna skapas.
    -ConfFileIsNotWritable=Konfigurationsfilen <b>%s</b> är inte skrivbar. Kontrollera behörigheter. För den första installationen, måste din webbserver beviljas för att kunna skriva i denna fil under konfigurationen ("chmod 666" till exempel på en UNIX-liknande OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Konfigurationsfilen <b>%s</b> är skrivbar.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Ladda all information från konfigurationsfilen.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Detta stöder PHP sessioner.
     PHPSupportPOSTGETOk=Detta stöder PHP variabler POST och GET.
    -PHPSupportPOSTGETKo=Det är möjligt din PHP-installation inte stöder variabler POST eller GET. Kontrollera din parameter <b>variables_order</b> i php.ini.
    -PHPSupportGD=Denna PHP stöd GD grafiska funktioner.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=Denna PHP stöd UTF8 funktioner.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Din PHP max session minne är inställt på <b>%s.</b> Detta bör vara nog.
    -PHPMemoryTooLow=Din PHP max session minne är inställt på <b>%s</b> byte. Detta bör vara för låg. Ändra din <b>php.ini</b> för att ställa <b>memory_limit</b> parameter till minst <b>%s</b> byte.
    -Recheck=Klicka här för en mer signifikant test
    -ErrorPHPDoesNotSupportSessions=Din PHP-installation inte stöd sessioner. Denna funktion är skyldig att Dolibarr fungerar. Kolla din PHP-konfiguration.
    -ErrorPHPDoesNotSupportGD=Din PHP installation saknar stöd för grafisk funktion GD. Inga diagram kommer att finnas tillgängliga.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Din PHP-installation inte stöd för UTF8 funktioner. Dolibarr kan inte fungera korrekt. Lösa det här innan du installerar Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Nummer %s finns inte.
    -ErrorGoBackAndCorrectParameters=Gå tillbaka och rätta till felaktiga parametrar.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Du kan ha skrivit fel värde för parametern &quot;%s&quot;.
     ErrorFailedToCreateDatabase=Misslyckades med att skapa databasen %s.
     ErrorFailedToConnectToDatabase=Det gick inte att ansluta till databasen &quot;%s&quot;.
     ErrorDatabaseVersionTooLow=Databasens version (%s) för gammal. Version %s eller senare krävs.
     ErrorPHPVersionTooLow=PHP version gamla också. Version %s krävs.
    -ErrorConnectedButDatabaseNotFound=Anslutning till servern framgångsrik, men databasen %s finns inte.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Databas &quot;%s&quot; finns redan.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Om databasen inte finns, gå tillbaka och kontrollera alternativet &quot;Create database&quot;.
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Om databasen redan finns, gå tillbaka och avmarkera &quot;Skapa databasen&quot; valen.
    -WarningBrowserTooOld=För gammal version av webbläsare. Uppgradering av din webbläsare till en sen utgåva av Firefox, Chrome eller Opera är högeligen rekommenderad.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Använda licens
     ConfigurationFile=Konfigurationsfil
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Databas typ
     DriverType=Driver typ
     Server=Server
    -ServerAddressDescription=Namn eller IP-adress för databasserver, vanligtvis &quot;localhost&quot; när databasservern är värd för på samma server än webbserver
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Databasservern hamn. Håll tom om okänd.
     DatabaseServer=Databasservern
     DatabaseName=Databas namn
    -DatabasePrefix=Databas prefix tabellen
    -AdminLogin=Logga in för Dolibarr databas ägaren.
    -PasswordAgain=Skriv lösenordet en andra gång
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Lösenord för Dolibarr databas ägaren.
     CreateDatabase=Skapa databas
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Databasserver - superanvändare tillgång
    -CheckToCreateDatabase=Kryssrutan om databasen inte existerar och måste skapas. <br> I så fall måste du fylla i login / lösenord för superanvändare konto längst ner på denna sida.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Logga in på användaren möjlighet att skapa nya databaser eller nya användare, värdelösa om din databas och databasen inloggning redan finns (som när du är värd ett webbhotell leverantör).
    -KeepEmptyIfNoPassword=Lämna tomt om användaren har inget lösenord (undvik detta)
    -SaveConfigurationFile=Spara värden
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Serveranslutning
     DatabaseCreation=Databas skapas
     CreateDatabaseObjects=Databasobjekt skapande
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Skapa främmande nycklar och index för tabell %s
     OtherKeysCreation=Främmande nycklar och index skapande
     FunctionsCreation=Funktioner skapande
     AdminAccountCreation=Administratören logik skapande
    -PleaseTypePassword=Skriv in ett lösenord, är tomma lösenord tillåts inte!
    -PleaseTypeALogin=Skriv en in!
    -PasswordsMismatch=Lösenord skiljer sig, försök igen!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Slutet av installationen
     SystemIsInstalled=Denna installation är klar.
     SystemIsUpgraded=Dolibarr har uppgraderats med framgång.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Du måste konfigurera Dolibarr till era behov (utseend
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Gå till Dolibarr
     GoToSetupArea=Gå till Dolibarr (setup-området)
    -MigrationNotFinished=Version av databasen är inte helt uppdaterad, så du måste köra uppgraderingen igen.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Gå till uppgradering sida igen
     WithNoSlashAtTheEnd=Utan ett snedstreck &quot;/&quot; i slutet
    -DirectoryRecommendation=Det är rekommenderat att använda en katalog utanför din katalog av dina webbsidor.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Redan finns
     DolibarrAdminLogin=Dolibarr admin logik
    -AdminLoginAlreadyExists=Dolibarr administratörskonto <b>&quot;%s&quot;</b> finns redan.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Varning, av säkerhetsskäl, när installera eller uppgradera är klar, bör du ta bort <b>installationskatalogen eller döp om den till install.lock för att undvika dess skadliga användning.</b>
    -FunctionNotAvailableInThisPHP=Ej tillgängligt för denna PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Välj migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script bearbetning
     ChooseYourSetupMode=Välj din setup-funktionen och klicka på &quot;Start&quot; ...
     FreshInstall=Ny installation
    -FreshInstallDesc=Använd detta läge om detta är din första installation. Om inte, kan det här läget reparera en ofullständig tidigare installera, men om du vill uppgradera din version, välj &quot;Upgrade&quot;-läge.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Uppgradera
     UpgradeDesc=Använd detta läge om du har ersatt gamla Dolibarr filer med filer från en nyare version. Detta kommer att uppgradera din databas och data.
     Start=Start
     InstallNotAllowed=Setup tillåts inte av <b>conf.php</b> behörigheter
     YouMustCreateWithPermission=Du måste skapa filen %s och sätta skrivrättigheter på den för den webbserver under installationsprocessen.
    -CorrectProblemAndReloadPage=Vänligen rätta till problemet och pressen F5 ladda om sidan.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Redan har övergått
     DatabaseVersion=Databas version
     ServerVersion=Databasservern version
     YouMustCreateItAndAllowServerToWrite=Du måste skapa denna katalog och möjliggöra för webbservern att skriva in i den.
     DBSortingCollation=Tecken sorteringsordning
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Du ber att skapa databasen <b>%s,</b> men för detta Dolibarr behöver ansluta till servern <b>%s</b> med super user <b>%s</b> behörigheter.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Du ber att skapa login <b>%s</b> databas, men för detta Dolibarr behöver ansluta till servern <b>%s</b> med super user <b>%s</b> behörigheter.
    -BecauseConnectionFailedParametersMayBeWrong=Som anslutning misslyckades, måste värd-eller super parametrar användaren vara fel.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans betalning påvisas med metoden %s
     RemoveItManuallyAndPressF5ToContinue=Ta bort den manuellt och trycka på F5 för att fortsätta.
     FieldRenamed=Fält bytt namn
    -IfLoginDoesNotExistsCheckCreateUser=Om inloggningen inte finns ännu, måste du kontrollera alternativet &quot;Skapa användare&quot;
    -ErrorConnection=Server <b>&quot;%s&quot;,</b> databasens namn <b>&quot;%s&quot;</b> login <b>&quot;%s&quot;</b> eller databas lösenord kan vara felaktiga eller PHP klientversionen kan vara för gamla, medan databas version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Rekommenderat val att installera version <b>%s</b> från din nuvarande version <b>%s</b>
     InstallChoiceSuggested=<b>Installera val föreslås av installationsprogrammet.</b>
    -MigrateIsDoneStepByStep=De riktade versionen (%s) har en lucka på flera versioner, så installerar guiden kommer tillbaka att föreslå nästa migration när detta kommer att vara klar.
    -CheckThatDatabasenameIsCorrect=Kontrollera att databasen namnet <b>&quot;%s&quot;</b> är korrekt.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Om detta namn är korrekta och att databasen ännu inte finns, måste du kontrollera alternativet &quot;Create database&quot;.
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=Du markerat rutan &quot;Skapa databas&quot;. För detta måste du ange användarnamn / lösenord för superanvändare (längst ned i formuläret).
    -YouAskToCreateDatabaseUserSoRootRequired=Du markerat rutan &quot;Skapa databas ägare&quot;. För detta måste du ange användarnamn / lösenord för superanvändare (längst ned i formuläret).
    -NextStepMightLastALongTime=Aktuella steget kan ta flera minuter. Vänta tills nästa skärm visas helt innan du fortsätter.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrera leverans för kundorder lagring
     MigrationShippingDelivery=Bli lagring av frakt
     MigrationShippingDelivery2=Bli lagring av sjöfarten 2
     MigrationFinished=Migration färdiga
    -LastStepDesc=<strong>Sista steget:</strong> Definiera här login och lösenord som du planerar att använda för att ansluta till programmet. Tappa inte detta eftersom det är det konto för att administrera alla andra.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Aktivera modul %s
     ShowEditTechnicalParameters=Klicka här för att visa / redigera avancerade parametrar (expertläge)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Din databas är av version %s. Den har en kritisk bugg vilket gör dataförluster om du gör strukturförändringar på din databas, som det krävs av migrationsprocessen. För detta skäl, kommer migrationen inte tillåtas förrän du uppgraderat din databas till en nyare fast version (lista över kända buggade versioner:%s)
    -KeepDefaultValuesWamp=Du använder Dolibarr inställningsguiden från DoliWamp, värden så som här föreslås är redan optimerade. Ändra dem bara om du vet vad du gör.
    -KeepDefaultValuesDeb=Du använder Dolibarr inställningsguiden från en Ubuntu eller Debian, så värden som här föreslås är redan optimerade. Endast lösenord i databasen ägaren för att skapa måste fyllas. Ändra andra parametrar om du vet vad du gör.
    -KeepDefaultValuesMamp=Du använder Dolibarr inställningsguiden från DoliMamp, värden så som här föreslås är redan optimerade. Ändra dem bara om du vet vad du gör.
    -KeepDefaultValuesProxmox=Du använder Dolibarr inställningsguiden från en Proxmox virtuell apparat, så som föreslås här är redan optimerade. Ändra dem bara om du vet vad du gör.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Migrering av data för kommersiella förslag
     MigrationInvoice=Migrering av data för kundens fakturor
     MigrationContract=Migrering av data för kontrakt
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Bli framgångsrik
     MigrationUpdateFailed=Misslyckades uppgraderingsprocessen
     MigrationRelationshipTables=Migrering av data för relation tabeller (%s)
     MigrationPaymentsUpdate=Betalning data korrigering
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Kontrakt data korrigering
     MigrationContractsNumberToUpdate=%s kontrakt (s) att uppdatera
     MigrationContractsLineCreation=Skapa kontrakt linje för %s kontrakt ref
     MigrationContractsNothingToUpdate=Inga fler saker att göra
    -MigrationContractsFieldDontExist=Fält fk_facture inte existerar längre. Ingenting att göra.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Kontrakt tom datum korrigering
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Inga kontrakt tom datum för att korrigera
     MigrationContractsEmptyCreationDatesNothingToUpdate=Inget avtal datum för skapande att korrigera
     MigrationContractsInvalidDatesUpdate=Bad valuteringsdag kontrakt korrigering
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Leverans uppdatering
     MigrationStockDetail=Uppdatering lager Värdet av produkter
     MigrationMenusDetail=Uppdatera dynamiska menyer tabeller
     MigrationDeliveryAddress=Uppdatera leveransadress i transporter
    -MigrationProjectTaskActors=Migrering av data för llx_projet_task_actors bord
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migrationsområdet fk_user_resp av llx_projet till llx_element_contact
     MigrationProjectTaskTime=Uppdatera tid i sekunder
     MigrationActioncommElement=Uppdatera uppgifter om åtgärder
     MigrationPaymentMode=Datamigrering betalning mode
     MigrationCategorieAssociation=Migreringskategorier
    -MigrationEvents=Överföring av händelser för att lägga till händelseägaren i uppdragslista
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Visa ej tillgängliga val
    -HideNotAvailableOptions=Dölj ej tillgängliga val
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/sv_SE/interventions.lang b/htdocs/langs/sv_SE/interventions.lang
    index 75c0a003350..d174906e064 100644
    --- a/htdocs/langs/sv_SE/interventions.lang
    +++ b/htdocs/langs/sv_SE/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Insatser
     InterventionCard=Intervention kort
     NewIntervention=Nya insatser
     AddIntervention=Skapa ingripande
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Förteckning över åtgärder
     ActionsOnFicheInter=Åtgärder för ingripande
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang
    index 9dd3c43bb9f..fad9a44ca62 100644
    --- a/htdocs/langs/sv_SE/main.lang
    +++ b/htdocs/langs/sv_SE/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Det gick inte att skicka e-post (avsändare = %s, mottagar
     ErrorFileNotUploaded=Filen har inte laddats upp. Kontrollera att storleken inte överskrider högsta tillåtna, att det finns plats på disken och att det inte redan finns en fil med samma namn i den här katalogen.
     ErrorInternalErrorDetected=Fel upptäckt
     ErrorWrongHostParameter=Fel värdparameter
    -ErrorYourCountryIsNotDefined=Ert land är inte definierat. Gå till Hem-Setup-Edit och post igen formuläret.
    -ErrorRecordIsUsedByChild=Misslyckades att ta bort denna post. Denna post används av minst en barn-post.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Fel värde
     ErrorWrongValueForParameterX=Felaktigt värde för parametern %s
     ErrorNoRequestInError=Ingen begäran av misstag
    -ErrorServiceUnavailableTryLater=Tjänsten är inte tillgänglig för tillfället. Försök igen senare.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Dublett-värde i ett unikt fält
    -ErrorSomeErrorWereFoundRollbackIsDone=Fel hittades. Vi återställer förändringarna.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> är inte definierad i Dolibarr konfigurationsfil <b>conf.php.</b>
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Det gick inte att hitta användare <b>%s</b> i Dolibarr databas.
     ErrorNoVATRateDefinedForSellerCountry=Fel, ingen moms har definierats för landet '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Fel, kunde inte spara filen.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Ställ in datum
     SelectDate=Välj datum
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=Filen har laddats upp
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=En fil är vald att bifogas, men har ännu inte laddats upp. Klicka på 'Bifoga fil' för detta.
    -NbOfEntries=Antal värden
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Läs hjälpen
     RecordSaved=Post sparades
    @@ -94,7 +94,7 @@ Undefined=Odefinierad
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=Se ovan
    -HomeArea=Hem område
    +HomeArea=Hem
     LastConnexion=Latest connection
     PreviousConnexion=Tidigare anslutning
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Stängt
     Closed2=Stängt
     NotClosed=Not closed
     Enabled=Aktiverat
    +Enable=Aktivera
     Deprecated=Föråldrad
     Disable=Inaktivera
     Disabled=Inaktiverad
    @@ -153,7 +154,7 @@ Update=Uppdatera
     Close=Stäng
     CloseBox=Remove widget from your dashboard
     Confirm=Bekräfta
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Ta bort
     Remove=Ta bort
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Kopiera
     Paste=Klistra in
     Default=Standard
     DefaultValue=Standardvärde
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Pris
     PriceCurrency=Price (currency)
     UnitPrice=Pris per enhet
    @@ -347,7 +348,7 @@ AmountTTCShort=Belopp (inkl. moms)
     AmountHT=Belopp (netto efter skatt)
     AmountTTC=Belopp (inkl. moms)
     AmountVAT=Belopp moms
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Ej tillämpligt
     ActionRunningNotStarted=Inte påbörjats
     ActionRunningShort=In progress
     ActionDoneShort=Färdiga
    -ActionUncomplete=Icke klar
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Kontakter till denna tredje part
     ContactsAddressesForCompany=Kontakter / adresser för denna tredje part
     AddressesForCompany=Adresser för denna tredje part
     ActionsOnCompany=Åtgärder om denna tredje part
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Händelser om denna medlem
     ActionsOnProduct=Events about this product
     NActionsLate=%s sent
    @@ -453,8 +455,8 @@ Generate=Generera
     Duration=Längd
     TotalDuration=Total längd
     Summary=Sammanfattning
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Tillgängliga
     NotYetAvailable=Ännu inte tillgängligt
    @@ -468,7 +470,7 @@ and=och
     or=eller
     Other=Andra
     Others=Övrigt
    -OtherInformations=Övriga upplysningar
    +OtherInformations=Övrig information
     Quantity=Kvantitet
     Qty=Antal
     ChangedBy=Ändrad av
    @@ -506,7 +508,7 @@ None=Ingen
     NoneF=Ingen
     NoneOrSeveral=None or several
     Late=Sent
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Bild
     Photos=Bilder
    @@ -530,18 +532,6 @@ September=September
     October=Oktober
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=Maj
    -JuneMin=Jun
    -JulyMin=Juli
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Okt
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=Januari
     Month02=Februari
     Month03=Mars
    @@ -646,6 +636,8 @@ SendMail=Skicka e-post
     EMail=E-mail
     NoEMail=Ingen e-post
     Email=epost
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=Ingen mobiltelefon
     Owner=Ägare
     FollowingConstantsWillBeSubstituted=Följande konstanter kommer att ersätta med motsvarande värde.
    @@ -677,7 +669,7 @@ NeverReceived=Aldrig fick
     Canceled=Annullerad
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Färg
     Documents=Länkade filer
     Documents2=Dokument
    @@ -716,15 +708,15 @@ Merge=Sammanfoga
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Visa sidan för att skriva ut huvudinnehållet
     MenuManager=Menyhanteraren
    -WarningYouAreInMaintenanceMode=Varning, du är i en underhållsmode, så bara login <b>%s</b> får använda tillämpningen för tillfället.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Systemfel
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Kreditkort
     ValidatePayment=Bekräfta betalning
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fält med <b>%s</b> är obligatoriska
    -FieldsWithIsForPublic=Fält med <b>%s</b> visas på offentlig lista över medlemmar. Om du inte vill det, avmarkera "offentlig".
    -AccordingToGeoIPDatabase=(Enligt GeoIP omvandling)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Stöds inte
     RequiredField=Obligatoriskt fält
    @@ -732,6 +724,8 @@ Result=Resultat
     ToTest=Test
     ValidateBefore=Kortet måste valideras innan du använder den här funktionen
     Visibility=Synlighet
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Privat
     Hidden=Dolda
     Resources=Resurser
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Länk för att beställa
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Skapa utkast
     SetToDraft=Tillbaka till utkast
     ClickToEdit=Klicka för att redigera
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=Per dag
     BySalesRepresentative=Genom säljare
     LinkedToSpecificUsers=Länkad till särskild användarekontakt
     NoResults=Inga resultat
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=Systemverktyg
     ModulesSystemTools=Modulverktyg
     Test=Test
     Element=Element
     NoPhotoYet=Inga bilder tillgängliga
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Avdragsgill
     from=från
     toward=mot
    @@ -802,7 +798,7 @@ PrintFile=Skriv ut fil %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Visar ingripande
     ShowContract=Visa kontrakt
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Radera rad
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Klassificera billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Kalender
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Räkningar
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Evenemang
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Projekt
     Projects=Projekt
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Behörigheter
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Måndag
     Tuesday=Tisdag
    @@ -917,7 +922,7 @@ SearchIntoUsers=Användare
     SearchIntoProductsOrServices=Products or services
     SearchIntoProjects=Projekt
     SearchIntoTasks=Uppgifter
    -SearchIntoCustomerInvoices=Customer invoices
    +SearchIntoCustomerInvoices=Kundfakturor
     SearchIntoSupplierInvoices=Vendor invoices
     SearchIntoCustomerOrders=Customer orders
     SearchIntoSupplierOrders=Purchase orders
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Insatser
     SearchIntoContracts=Kontrakt
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Räkningar
    -SearchIntoLeaves=Löv
    +SearchIntoLeaves=Leave
     CommentLink=Kommentarer
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Alla
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Påverkas i
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=Fil delad via länk
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Lager
    diff --git a/htdocs/langs/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang
    index ba1c762581c..d97e72ede13 100644
    --- a/htdocs/langs/sv_SE/other.lang
    +++ b/htdocs/langs/sv_SE/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Säkerhetskod
     NumberingShort=N°
     Tools=Verktyg
     TMenuTools=Verktyg
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Födelsedag
     BirthdayDate=Birthday date
     DateToBirth=Födelsedatum
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Meddelande på validerade betalning återvänder sida
     MessageKO=Meddelande om avbokning betalning återvänder sida
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validerade
    -Notify_FICHINTER_SENTBYMAIL=Ingripande skickas per post
     Notify_ORDER_VALIDATE=Kundorder validerade
     Notify_ORDER_SENTBYMAIL=Kundorder skickas per post
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Leverantör beställning skickas per post
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Leverantör för godkänd
     Notify_ORDER_SUPPLIER_REFUSE=Leverantör för vägrat
     Notify_PROPAL_VALIDATE=Kunden förslag validerade
    -Notify_PROPAL_CLOSE_SIGNED=Kunden propal stängd tecknat
    -Notify_PROPAL_CLOSE_REFUSED=Kunden propal stängd vägrade
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Kommersiell förslag skickas per post
     Notify_WITHDRAW_TRANSMIT=Överföring tillbakadragande
     Notify_WITHDRAW_CREDIT=Credit tillbakadragande
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Tredje part som skapats
     Notify_COMPANY_SENTBYMAIL=Post som skickas från tredjepartskort
     Notify_BILL_VALIDATE=Kundfaktura validerade
     Notify_BILL_UNVALIDATE=Kundfakturan Fraktpris saknas
    -Notify_BILL_PAYED=Kundfaktura betalade
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Kundfaktura avbryts
     Notify_BILL_SENTBYMAIL=Kundfaktura skickas per post
     Notify_BILL_SUPPLIER_VALIDATE=Leverantörsfaktura validerade
    -Notify_BILL_SUPPLIER_PAYED=Leverantörsfaktura betalas
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Leverantör faktura skickas per post
     Notify_BILL_SUPPLIER_CANCELED=Leverantör faktura annulleras
     Notify_CONTRACT_VALIDATE=Kontrakt validerade
     Notify_FICHEINTER_VALIDATE=Intervention validerade
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Ingripande skickas per post
     Notify_SHIPPING_VALIDATE=Frakt validerade
     Notify_SHIPPING_SENTBYMAIL=Leverans skickas per post
     Notify_MEMBER_VALIDATE=Medlem validerade
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Projekt skapande
     Notify_TASK_CREATE=Task skapade
     Notify_TASK_MODIFY=Task modifierad
     Notify_TASK_DELETE=Uppgift utgår
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Antal bifogade filer / dokument
     TotalSizeOfAttachedFiles=Total storlek på bifogade filer / dokument
     MaxSize=Maximal storlek
     AttachANewFile=Bifoga en ny fil / dokument
     LinkedObject=Länkat objekt
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> är en information är beroende av tredje part land. <br> Till exempel för landets <b>%s,</b> det är kod <b>%s.</b>
     DolibarrDemo=Dolibarr ERP / CRM-demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Interventionen %s har validerats.
     EMailTextInvoiceValidated=Fakturan %s har validerats.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Förslaget %s har validerats.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Ordern %s har validerats.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Ordern %s har godkänts av %s.
     EMailTextOrderRefused=Ordern %s har avslagits.
     EMailTextOrderRefusedBy=Ordern %s har avslagits %s.
     EMailTextExpeditionValidated=Leveransen %s har validerats.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Import dataunderlaget
     DolibarrNotification=Automatisk anmälan
     ResizeDesc=Ange nya <b>bredd</b> eller ny höjd. Förhållandet kommer att hållas under storleksändring ...
    @@ -204,7 +214,7 @@ NewLength=Ny bredd
     NewHeight=Ny höjd
     NewSizeAfterCropping=Ny storlek efter beskärning
     DefineNewAreaToPick=Definiera nya området på bilden för att plocka (till vänster klicka på bilden och dra tills du kommer till motsatt hörn)
    -CurrentInformationOnImage=Detta verktyg har utformats för att hjälpa dig att ändra storlek på eller beskära en bild. Detta är informationer om aktuella redigerade bilden
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Bildredigerare
     YouReceiveMailBecauseOfNotification=Du får detta meddelande eftersom din e-post har lagts till i förteckningen över de mål som skall informeras om särskilda händelser i %s programvara %s.
     YouReceiveMailBecauseOfNotification2=Denna händelse är följande:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Export område
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Titel
     WEBSITE_DESCRIPTION=Beskrivning
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/sv_SE/paybox.lang b/htdocs/langs/sv_SE/paybox.lang
    index 4d65e4dda61..0c8aa46aeda 100644
    --- a/htdocs/langs/sv_SE/paybox.lang
    +++ b/htdocs/langs/sv_SE/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox modul setup
     PayBoxDesc=Denna modul erbjuder sidor för att möjliggöra betalning på <a href="http://www.paybox.com" target="_blank">Paybox</a> av kunder. Detta kan användas för en kostnadsfri betalning eller en betalning på en viss Dolibarr objekt (faktura, order, ...)
     FollowingUrlAreAvailableToMakePayments=Följande webbadresser finns att erbjuda en sida till en kund att göra en förskottsbetalning Dolibarr objekt
     PaymentForm=Inbetalningskort
    -WelcomeOnPaymentPage=Välkommen till vår online betalningssystem
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=Denna skärm tillåter dig att göra en online-betalning till %s.
     ThisIsInformationOnPayment=Detta är information om betalning för att göra
     ToComplete=För att komplettera
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL för att erbjuda en %s online gränssn
     ToOfferALinkForOnlinePaymentOnContractLine=URL för att erbjuda en %s online gränssnitt betalning användare för ett kontrakt linje
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL för att erbjuda en %s online gränssnitt betalning användare för en fri belopp
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL för att erbjuda en %s online gränssnitt betalning användare för en medlem prenumeration
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Du kan också lägga till url parameter <b>&tag = <i>värde</i></b> för någon av dessa URL (krävs endast för gratis betalning) för att lägga till din egen kommentar tagg betalning.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Konfigurera din PayBox med url <b>%s</b> ha betalning skapas automatiskt när validerats av paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Den här sidan bekräftar att din betalning har registrerats. Tack.
    -YourPaymentHasNotBeenRecorded=Din betalning inte har registrerats och transaktionen har avbrutits. Tack.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Tagen parametrar
     UsageParameter=Användning parametrar
     InformationToFindParameters=Hjälp att hitta din %s kontoinformation
    diff --git a/htdocs/langs/sv_SE/projects.lang b/htdocs/langs/sv_SE/projects.lang
    index a148b37b8ec..4859567ee70 100644
    --- a/htdocs/langs/sv_SE/projects.lang
    +++ b/htdocs/langs/sv_SE/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Visa projekt
     ShowTask=Visa uppgift
     SetProject=Ställ projekt
     NoProject=Inget projekt definieras eller ägs
    -NbOfProjects=Nb av projekt
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Tid som tillbringas
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Förteckning över de kommersiella förslag i samband med projektet
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Förteckning över avtal i samband med projektet
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Lista över åtgärder i samband med projektet
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Förteckning över åtgärder i samband med projektet
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Kopplat till annan tredje part
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Tid är tom
     ThisWillAlsoRemoveTasks=Denna åtgärd kommer också att ta bort alla aktiviteter av projekt <b>(%s</b> uppgifter på för tillfället) och alla ingångar för nedlagd tid.
    -IfNeedToUseOhterObjectKeepEmpty=Om vissa objekt (faktura, order, ...), som tillhör en annan tredje part, måste kopplas till projektet för att skapa, hålla denna tomt för att få projektet att flera tredje part.
    +IfNeedToUseOtherObjectKeepEmpty=Om vissa objekt (faktura, order, ...), som tillhör en annan tredje part, måste kopplas till projektet för att skapa, hålla denna tomt för att få projektet att flera tredje part.
     CloneProject=Klon projekt
     CloneTasks=Klon uppgifter
     CloneContacts=Klon kontakter
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Uppgift %s skapad
     TaskModifiedInDolibarr=Uppgift %s modifierade
     TaskDeletedInDolibarr=Uppgift %s raderad
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Bidragsgivare
     SelectElement=Välj elementet
     AddElement=Länk till inslag
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planerad arbetsbelastning
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Förslag
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/sv_SE/propal.lang b/htdocs/langs/sv_SE/propal.lang
    index 50a3e5e48ec..6183426e1f6 100644
    --- a/htdocs/langs/sv_SE/propal.lang
    +++ b/htdocs/langs/sv_SE/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Undertecknats (behov fakturering)
     PropalStatusNotSigned=Inte undertecknat (stängt)
     PropalStatusBilled=Fakturerade
     PropalStatusDraftShort=Förslag
    -PropalStatusValidatedShort=Validerade
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Stängt
     PropalStatusSignedShort=Signerad
     PropalStatusNotSignedShort=Inte undertecknat
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s hittades inte
     AddToDraftProposals=Lägg till förslagsutkast
     NoDraftProposals=Inga förslagsutkast 
     CopyPropalFrom=Skapa kommersiella förslag genom att kopiera befintliga förslaget
    -CreateEmptyPropal=Skapa tomma kommersiella förslag VIERGE eller från förteckningen över produkter / tjänster
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Standard kommersiella förslag giltighet längd (i dagar)
    -UseCustomerContactAsPropalRecipientIfExist=Använd kundkontakt adress om definieras i stället för tredje parts adress som förslag mottagaradressen
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Klon kommersiella förslag
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Kundkontakt följa upp förslag
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Ett fullständigt förslag modell (logo. ..)
    +DocModelCyanDescription=Ett fullständigt förslag modell (logo. ..)
     DefaultModelPropalCreate=Skapa standardmodell
     DefaultModelPropalToBill=Standardmall när ett affärsförslag sluts (att fakturera)
     DefaultModelPropalClosed=Standardmall när ett affärsförslag sluts (ofakturerat)
    diff --git a/htdocs/langs/sv_SE/sendings.lang b/htdocs/langs/sv_SE/sendings.lang
    index bf6be158005..36e8672ccf1 100644
    --- a/htdocs/langs/sv_SE/sendings.lang
    +++ b/htdocs/langs/sv_SE/sendings.lang
    @@ -36,15 +36,15 @@ StatusSendingDraftShort=Förslag
     StatusSendingValidatedShort=Validerad
     StatusSendingProcessedShort=Bearbetade
     SendingSheet=Packsedel
    -ConfirmDeleteSending=Are you sure you want to delete this shipment?
    +ConfirmDeleteSending=Är du säker på att du vill radera den här sändningen?
     ConfirmValidateSending=Are you sure you want to validate this shipment with reference <b>%s</b>?
     ConfirmCancelSending=Are you sure you want to cancel this shipment?
     DocumentModelMerou=Merou A5-modellen
     WarningNoQtyLeftToSend=Varning, att inga produkter väntar sändas.
     StatsOnShipmentsOnlyValidated=Statistik utförda på försändelser endast valideras. Datum som används är datum för godkännandet av leveransen (planerat leveransdatum är inte alltid känt).
    -DateDeliveryPlanned=Planned date of delivery
    -RefDeliveryReceipt=Ref delivery receipt
    -StatusReceipt=Status delivery receipt
    +DateDeliveryPlanned=Planerat leveransdatum
    +RefDeliveryReceipt=Ref leverans kvitto
    +StatusReceipt=Status leverans kvitto
     DateReceived=Datum leverans fick
     SendShippingByEMail=Skicka leverans via e-post
     SendShippingRef=Inlämning av leveransen %s
    @@ -56,8 +56,8 @@ ProductQtyInCustomersOrdersRunning=Product quantity into open customer orders
     ProductQtyInSuppliersOrdersRunning=Product quantity into open purchase orders
     ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent
     ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received
    -NoProductToShipFoundIntoStock=No product to ship found into warehouse <b>%s</b>. Correct stock or go back to choose another warehouse.
    -WeightVolShort=Weight/Vol.
    +NoProductToShipFoundIntoStock=No product to ship found in warehouse <b>%s</b>. Correct stock or go back to choose another warehouse.
    +WeightVolShort=Vikt / vol.
     ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments.
     
     # Sending methods
    diff --git a/htdocs/langs/sv_SE/stocks.lang b/htdocs/langs/sv_SE/stocks.lang
    index 9ef237b102c..3995ae7c8b3 100644
    --- a/htdocs/langs/sv_SE/stocks.lang
    +++ b/htdocs/langs/sv_SE/stocks.lang
    @@ -44,7 +44,6 @@ TransferStock=Transfer stock
     MassStockTransferShort=Mass stock transfer
     StockMovement=Stock movement
     StockMovements=Stock movements
    -LabelMovement=Etikett för förändring
     NumberOfUnit=Antal enheter
     UnitPurchaseValue=Inköpspris per enhet
     StockTooLow=Lager för lågt
    @@ -55,20 +54,20 @@ PMPValueShort=WAP
     EnhancedValueOfWarehouses=Lagervärde
     UserWarehouseAutoCreate=Create a user warehouse automatically when creating a user
     AllowAddLimitStockByWarehouse=Allow to add limit and desired stock per couple (product, warehouse) instead of per product
    -IndependantSubProductStock=Product stock and subproduct stock are independant
    +IndependantSubProductStock=Product stock and subproduct stock are independent
     QtyDispatched=Sänd kvantitet
     QtyDispatchedShort=Antal skickade
     QtyToDispatchShort=Antal att skicka
     OrderDispatch=Item receipts
    -RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated)
    -RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated)
    -DeStockOnBill=Minska befintligt lager vid validering av kundfakturor / kreditnotor
    -DeStockOnValidateOrder=Minska befintligt lager vid validering av kundorder
    +RuleForStockManagementDecrease=Choose Rule for automatic stock decrease (manual decrease is always possible, even if an automatic decrease rule is activated)
    +RuleForStockManagementIncrease=Choose Rule for automatic stock increase (manual increase is always possible, even if an automatic increase rule is activated)
    +DeStockOnBill=Decrease real stocks on validation of customer invoice/credit note
    +DeStockOnValidateOrder=Decrease real stocks on validation of customer order
     DeStockOnShipment=Decrease real stocks on shipping validation
     DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed
    -ReStockOnBill=Öka befintligt lager vid validering av leverantörsfakturor / kreditnotor
    -ReStockOnValidateOrder=Increase real stocks on purchase orders approbation
    -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods
    +ReStockOnBill=Increase real stocks on validation of supplier invoice/credit note
    +ReStockOnValidateOrder=Increase real stocks on purchase order approval
    +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouse, after supplier order receipt of goods
     OrderStatusNotReadyToDispatch=Beställningen har ännu inte / inte längre status som tillåter sändning av produkter till lager.
     StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock
     NoPredefinedProductToDispatch=Inga fördefinierade produkter för det här objektet. Så ingen sändning till lager krävs.
    @@ -130,10 +129,11 @@ RecordMovement=Record transfer
     ReceivingForSameOrder=Kvitton för denna beställning
     StockMovementRecorded=Sparade lageröverföringar
     RuleForStockAvailability=Regler om krav på lagerhållning
    -StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to invoice (check is done on current real stock when adding a line into invoice whatever is rule for automatic stock change)
    -StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change)
    -StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change)
    +StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to invoice (check is done on current real stock when adding a line into invoice whatever the rule for automatic stock change)
    +StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever the rule for automatic stock change)
    +StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever the rule for automatic stock change)
     MovementLabel=Etikett för lagerrörelse
    +TypeMovement=Type of movement
     DateMovement=Date of movement
     InventoryCode=Lagerrörelse- eller inventeringskod
     IsInPackage=Ingår i förpackning
    @@ -161,7 +161,7 @@ inventoryCreatePermission=Create new inventory
     inventoryReadPermission=View inventories
     inventoryWritePermission=Update inventories
     inventoryValidatePermission=Validate inventory
    -inventoryTitle=Inventory
    +inventoryTitle=Lager
     inventoryListTitle=Inventories
     inventoryListEmpty=No inventory in progress
     inventoryCreateDelete=Create/Delete inventory
    @@ -172,12 +172,12 @@ inventoryDraft=Löpande
     inventorySelectWarehouse=Warehouse choice
     inventoryConfirmCreate=Skapa
     inventoryOfWarehouse=Inventory for warehouse : %s
    -inventoryErrorQtyAdd=Error : one quantity is leaser than zero
    +inventoryErrorQtyAdd=Error : one quantity is less than zero
     inventoryMvtStock=By inventory
     inventoryWarningProductAlreadyExists=This product is already into list
     SelectCategory=Kategori filter
     SelectFournisseur=Supplier filter
    -inventoryOnDate=Inventory
    +inventoryOnDate=Lager
     INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory
     INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found
     INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock movement have date of inventory
    @@ -195,12 +195,16 @@ AddInventoryProduct=Add product to inventory
     AddProduct=Lägg till
     ApplyPMP=Apply PMP
     FlushInventory=Flush inventory
    -ConfirmFlushInventory=Do you confirm this action ?
    +ConfirmFlushInventory=Do you confirm this action?
     InventoryFlushed=Inventory flushed
     ExitEditMode=Exit edition
     inventoryDeleteLine=Radera rad
     RegulateStock=Regulate Stock
     ListInventory=Lista
    -StockSupportServices=Stock management support services
    +StockSupportServices=Stock management supports Services
     StockSupportServicesDesc=By default, you can stock only product with type "product". If on, and if module service is on, you can also stock a product with type "service"
     ReceiveProducts=Receive items
    +StockIncreaseAfterCorrectTransfer=Increase by correction/transfer
    +StockDecreaseAfterCorrectTransfer=Decrease by correction/transfer
    +StockIncrease=Stock increase
    +StockDecrease=Stock decrease
    diff --git a/htdocs/langs/sv_SE/users.lang b/htdocs/langs/sv_SE/users.lang
    index 422f0039689..465d4ee20eb 100644
    --- a/htdocs/langs/sv_SE/users.lang
    +++ b/htdocs/langs/sv_SE/users.lang
    @@ -6,10 +6,10 @@ Permission=Behörighet
     Permissions=Behörigheter
     EditPassword=Ändra lösenord
     SendNewPassword=Regenerera och skicka lösenord
    -SendNewPasswordLink=Send link to reset password
    +SendNewPasswordLink=Skicka åters.länk för lösenordet
     ReinitPassword=Regenerera lösenord
     PasswordChangedTo=Lösenord ändras till: %s
    -SubjectNewPassword=Your new password for %s
    +SubjectNewPassword=Ditt nya lösenord för %s
     GroupRights=Gruppbehörigheter
     UserRights=Användarbehörighet
     UserGUISetup=Användare displayuppställning
    @@ -35,7 +35,7 @@ SuperAdministrator=Super Administrator
     SuperAdministratorDesc=Administratör med alla rättigheter
     AdministratorDesc=Administratör
     DefaultRights=Standardbehörigheter
    -DefaultRightsDesc=Definiera här <u>standardbehörigheter</u> som automatiskt ges till en <u>ny skapat</u> användare (Gå på användarkort att ändra tillstånd av en befintlig användare).
    +DefaultRightsDesc=Define here <u>default</u> permissions that are automatically granted to a <u>new created</u> user (Go to user card to change permission of an existing user).
     DolibarrUsers=Dolibarr användare
     LastName=Efternamn
     FirstName=Förnamn
    @@ -44,9 +44,9 @@ NewGroup=Ny grupp
     CreateGroup=Skapa grupp
     RemoveFromGroup=Ta bort från grupp
     PasswordChangedAndSentTo=Lösenord ändras och skickas till <b>%s.</b>
    -PasswordChangeRequest=Request to change password for <b>%s</b>
    +PasswordChangeRequest=Begär om ändring av lösenord för <b> %s </b>
     PasswordChangeRequestSent=Begäran om att ändra lösenord för <b>%s</b> skickas till <b>%s.</b>
    -ConfirmPasswordReset=Confirm password reset
    +ConfirmPasswordReset=Bekräfta återställning av lösenord
     MenuUsersAndGroups=Användare & grupper
     LastGroupsCreated=Latest %s groups created
     LastUsersCreated=Latest %s users created
    @@ -66,7 +66,7 @@ CreateDolibarrThirdParty=Skapa en tredje part
     LoginAccountDisableInDolibarr=Konto funktionshindrade i Dolibarr.
     UsePersonalValue=Använd personlig värde
     InternalUser=Intern användare
    -ExportDataset_user_1=Dolibarr-användarnas behov och egenskaper
    +ExportDataset_user_1=Users and their properties
     DomainUser=Domän användare %s
     Reactivate=Återaktivera
     CreateInternalUserDesc=This form allows you to create an user internal to your company/organization. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card.
    @@ -85,26 +85,27 @@ UserDeleted=Användare %s bort
     NewGroupCreated=Grupp %s skapade
     GroupModified=Grupp% s modifierade
     GroupDeleted=Grupp %s bort
    -ConfirmCreateContact=Are you sure you want to create a Dolibarr account for this contact?
    +ConfirmCreateContact=Är du säker på att du vill skapa ett Dolibarr-konto för den här kontakten?
     ConfirmCreateLogin=Are you sure you want to create a Dolibarr account for this member?
     ConfirmCreateThirdParty=Are you sure you want to create a third party for this member?
     LoginToCreate=Logga in för att skapa
     NameToCreate=Namn på tredje part för att skapa
     YourRole=Din roller
     YourQuotaOfUsersIsReached=Din kvot på aktiva användare är nådd!
    -NbOfUsers=Nb av användare
    -NbOfPermissions=Nb of permissions
    +NbOfUsers=Antal användare
    +NbOfPermissions=Antal behörigheter
     DontDowngradeSuperAdmin=Endast en SuperAdmin kan nedgradera en SuperAdmin
     HierarchicalResponsible=Handledare
     HierarchicView=Hierarkisk vy
     UseTypeFieldToChange=Använd fält Typ för att ändra
     OpenIDURL=OpenID URL
     LoginUsingOpenID=Logga in med OpenID
    -WeeklyHours=Hours worked (per week)
    -ExpectedWorkedHours=Expected worked hours per week
    +WeeklyHours=Timmar arbetade (per vecka)
    +ExpectedWorkedHours=Förväntad arbetstid per vecka
     ColorUser=Färg på användaren
     DisabledInMonoUserMode=Disabled in maintenance mode
    -UserAccountancyCode=User accounting code
    -UserLogoff=User logout
    -UserLogged=User logged
    -DateEmployment=Date of Employment
    +UserAccountancyCode=Användarkonto
    +UserLogoff=Användarutloggning
    +UserLogged=Användare loggad
    +DateEmployment=Anställningsdatum
    +DateEmploymentEnd=Slutdatum för anställning
    diff --git a/htdocs/langs/sv_SE/website.lang b/htdocs/langs/sv_SE/website.lang
    index 328a805b077..60f01b8b5eb 100644
    --- a/htdocs/langs/sv_SE/website.lang
    +++ b/htdocs/langs/sv_SE/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kod
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    -DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
    +DeleteWebsite=Ta bort webbplats
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Webbsida. Htaccess-fil
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    -EditMenu=Edit menu
    +EditCss=Edit website properties
    +EditMenu=Redigera menyn
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    -AddWebsite=Add website
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
    +AddWebsite=Lägg till hemsida
     Webpage=Web page/container
     AddPage=Add page/container
    -HomePage=Home Page
    -PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +HomePage=Hemsida
    +PageContainer=Sida / behållare
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Webbplatsen '%s' raderas
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Läsa
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/sv_SE/withdrawals.lang b/htdocs/langs/sv_SE/withdrawals.lang
    index 7224d4b8b05..551a0971fdf 100644
    --- a/htdocs/langs/sv_SE/withdrawals.lang
    +++ b/htdocs/langs/sv_SE/withdrawals.lang
    @@ -6,14 +6,14 @@ StandingOrderPayment=Direct debit payment order
     NewStandingOrder=New direct debit order
     StandingOrderToProcess=För att kunna behandla
     WithdrawalsReceipts=Direct debit orders
    -WithdrawalReceipt=Direct debit order
    +WithdrawalReceipt=Direkt debitering
     LastWithdrawalReceipts=Latest %s direct debit files
     WithdrawalsLines=Direct debit order lines
     RequestStandingOrderToTreat=Request for direct debit payment order to process
     RequestStandingOrderTreated=Request for direct debit payment order processed
     NotPossibleForThisStatusOfWithdrawReceiptORLine=Ännu inte möjligt. Uttag status måste vara inställd på "kredit" innan den förklarar förkastar på specifika linjer.
    -NbOfInvoiceToWithdraw=Nb. of qualified invoice with waiting direct debit order
    -NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment orders having defined bank account information
    +NbOfInvoiceToWithdraw=No. of qualified invoice with waiting direct debit order
    +NbOfInvoiceToWithdrawWithInfo=No. of customer invoice with direct debit payment orders having defined bank account information
     InvoiceWaitingWithdraw=Invoice waiting for direct debit
     AmountToWithdraw=Belopp att dra tillbaka
     WithdrawsRefused=Direct debit refused
    @@ -26,7 +26,7 @@ LastWithdrawalReceipt=Latest %s direct debit receipts
     MakeWithdrawRequest=Make a direct debit payment request
     WithdrawRequestsDone=%s direct debit payment requests recorded
     ThirdPartyBankCode=Tredje part bankkod
    -NoInvoiceCouldBeWithdrawed=No invoice withdrawed with success. Check that invoices are on companies with a valid default BAN and that BAN has a RUM with mode <strong>%s</strong>.
    +NoInvoiceCouldBeWithdrawed=No invoice debited successfully. Check that invoices are on companies with a valid IBAN and that IBAN has a UMR (Unique Mandate Reference) with mode <strong>%s</strong>.
     ClassCredited=Klassificera krediteras
     ClassCreditedConfirm=Är du säker på att du vill klassificera detta tillbakadragande mottagande som krediteras på ditt bankkonto?
     TransData=Datum Transmission
    diff --git a/htdocs/langs/sw_SW/admin.lang b/htdocs/langs/sw_SW/admin.lang
    index d7042e784dc..8d6e8e39b04 100644
    --- a/htdocs/langs/sw_SW/admin.lang
    +++ b/htdocs/langs/sw_SW/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Development
     VersionUnknown=Unknown
     VersionRecommanded=Recommended
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler to save sessions
     SessionSavePath=Storage session localization
     PurgeSessions=Purge of sessions
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Your session
    -Sessions=Users session
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=External user
     InternalUsers=Internal users
     ExternalUsers=External users
     GUISetup=Display
    -SetupArea=Setup area
    +SetupArea=Setup
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=Setup
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposals
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Invoices
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Suppliers
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=State/Province
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Name
     CompanyAddress=Address
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Name
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/sw_SW/banks.lang b/htdocs/langs/sw_SW/banks.lang
    index 1d42581c344..5bc061f31f3 100644
    --- a/htdocs/langs/sw_SW/banks.lang
    +++ b/htdocs/langs/sw_SW/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Account
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/sw_SW/bills.lang b/htdocs/langs/sw_SW/bills.lang
    index f76ff018f9d..ed988d580e2 100644
    --- a/htdocs/langs/sw_SW/bills.lang
    +++ b/htdocs/langs/sw_SW/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Suppliers payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=Payment amount
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Paid
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Closed
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Other
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/sw_SW/cashdesk.lang b/htdocs/langs/sw_SW/cashdesk.lang
    index 1f51f375e89..353c4ee93ab 100644
    --- a/htdocs/langs/sw_SW/cashdesk.lang
    +++ b/htdocs/langs/sw_SW/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/sw_SW/commercial.lang b/htdocs/langs/sw_SW/commercial.lang
    index efadc44d700..96b8abbb937 100644
    --- a/htdocs/langs/sw_SW/commercial.lang
    +++ b/htdocs/langs/sw_SW/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/sw_SW/companies.lang b/htdocs/langs/sw_SW/companies.lang
    index b3e1e7b6c86..e5de5614886 100644
    --- a/htdocs/langs/sw_SW/companies.lang
    +++ b/htdocs/langs/sw_SW/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Select a third party
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Delete a contact/address
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New third party
    -MenuNewCustomer=New customer
    -MenuNewProspect=New prospect
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=Company
     CompanyName=Company name
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Companies
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=Third parties
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
     ThirdPartyProspectsStats=Prospects
     ThirdPartyCustomers=Customers
     ThirdPartyCustomersStats=Customers
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Position
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposals
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Supplier
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Delete a company
     PersonalInformations=Personal data
     AccountancyCode=Accounting account
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Staff
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=List of prospects
    -ListCustomersShort=List of customers
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Open
     ActivityCeased=Closed
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/sw_SW/dict.lang b/htdocs/langs/sw_SW/dict.lang
    index 61a7237f472..ad3a24e12f6 100644
    --- a/htdocs/langs/sw_SW/dict.lang
    +++ b/htdocs/langs/sw_SW/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/sw_SW/ecm.lang b/htdocs/langs/sw_SW/ecm.lang
    index 5200fa30b1d..43ddd3bf36f 100644
    --- a/htdocs/langs/sw_SW/ecm.lang
    +++ b/htdocs/langs/sw_SW/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/sw_SW/errors.lang b/htdocs/langs/sw_SW/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/sw_SW/errors.lang
    +++ b/htdocs/langs/sw_SW/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/sw_SW/help.lang b/htdocs/langs/sw_SW/help.lang
    index 6129cae362d..da776683a6a 100644
    --- a/htdocs/langs/sw_SW/help.lang
    +++ b/htdocs/langs/sw_SW/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Commercial
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/sw_SW/holiday.lang b/htdocs/langs/sw_SW/holiday.lang
    index 1c19d69732a..951af61f273 100644
    --- a/htdocs/langs/sw_SW/holiday.lang
    +++ b/htdocs/langs/sw_SW/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Description
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=Delete
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/sw_SW/install.lang b/htdocs/langs/sw_SW/install.lang
    index fb521c0c085..c92d83988ff 100644
    --- a/htdocs/langs/sw_SW/install.lang
    +++ b/htdocs/langs/sw_SW/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/sw_SW/interventions.lang b/htdocs/langs/sw_SW/interventions.lang
    index 4c93eff9d0d..a130367b14f 100644
    --- a/htdocs/langs/sw_SW/interventions.lang
    +++ b/htdocs/langs/sw_SW/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/sw_SW/main.lang b/htdocs/langs/sw_SW/main.lang
    index 5d400fafa87..b3ea678aea0 100644
    --- a/htdocs/langs/sw_SW/main.lang
    +++ b/htdocs/langs/sw_SW/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Closed
     Closed2=Closed
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Update
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Other
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tools
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/sw_SW/other.lang b/htdocs/langs/sw_SW/other.lang
    index 8ef8cc30090..021bfe65985 100644
    --- a/htdocs/langs/sw_SW/other.lang
    +++ b/htdocs/langs/sw_SW/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Description
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/sw_SW/paybox.lang b/htdocs/langs/sw_SW/paybox.lang
    index 306aaeec047..0d35ac440fa 100644
    --- a/htdocs/langs/sw_SW/paybox.lang
    +++ b/htdocs/langs/sw_SW/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/sw_SW/projects.lang b/htdocs/langs/sw_SW/projects.lang
    index e04f28689a1..d895f477bd4 100644
    --- a/htdocs/langs/sw_SW/projects.lang
    +++ b/htdocs/langs/sw_SW/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/sw_SW/propal.lang b/htdocs/langs/sw_SW/propal.lang
    index 8cf3a68167a..c258381ea85 100644
    --- a/htdocs/langs/sw_SW/propal.lang
    +++ b/htdocs/langs/sw_SW/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Draft
    -PropalStatusValidatedShort=Validated
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Closed
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/th_TH/admin.lang b/htdocs/langs/th_TH/admin.lang
    index 1b3c4fcb25f..24216389685 100644
    --- a/htdocs/langs/th_TH/admin.lang
    +++ b/htdocs/langs/th_TH/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=พัฒนาการ
     VersionUnknown=ไม่ทราบ
     VersionRecommanded=แนะนำ
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=จัดการที่จะบันทึกการ
     SessionSavePath=การจัดเก็บข้อมูลการแปลเซสชั่น
     PurgeSessions=ล้างของการประชุม
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=จัดการประหยัดเซสชั่นการกำหนดค่าใน PHP ของคุณไม่อนุญาตให้มีการแสดงรายการทั้งหมดประชุมทำงาน
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=ล็อคการเชื่อมต่อใหม่
    -ConfirmLockNewSessions=คุณแน่ใจหรือว่าต้องการ จำกัด การเชื่อมต่อ Dolibarr ใหม่ ๆ ให้กับตัวเอง <b>ผู้ใช้% s</b> เท่านั้นที่จะสามารถเชื่อมต่อหลังจากนั้น
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=ถอดตัวล็อคเชื่อมต่อ
     YourSession=เซสชั่นของคุณ
    -Sessions=เซสชั่นผู้ใช้
    +Sessions=Users sessions
     WebUserGroup=ผู้ใช้เว็บเซิร์ฟเวอร์ / กลุ่ม
    -NoSessionFound=PHP ของคุณดูเหมือนว่าจะไม่อนุญาตให้มีการแสดงรายการการประชุมที่ใช้งาน ไดเรกทอรีที่ใช้ในการบันทึกการประชุม <b>(% s)</b> อาจได้รับการคุ้มครอง (ตัวอย่างเช่นโดยการใช้สิทธิ์ OS หรือ PHP สั่ง open_basedir)
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=ฐานข้อมูล charset ในการเก็บข้อมูล
     DBSortingCharset=ฐานข้อมูล charset ในการจัดเรียงข้อมูล
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=ผู้ใช้ภายนอก
     InternalUsers=ผู้ใช้ภายใน
     ExternalUsers=ผู้ใช้ภายนอก
     GUISetup=แสดง
    -SetupArea=พื้นที่ติดตั้ง
    +SetupArea=การติดตั้ง
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=แบบทดสอบการอัปโหลดไฟล์ (ตามการตั้งค่า)
     IfModuleEnabled=หมายเหตุ: <b>ใช่จะมีผลเฉพาะถ้าโมดูล% s</b> ถูกเปิดใช้งาน
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=รหัสไม่สามารถมีค่า
     DisableJavascript=ปิดการใช้งาน JavaScript และฟังก์ชั่นอาแจ็กซ์ (แนะนำสำหรับคนตาบอดหรือเบราว์เซอร์ข้อความ)
     UseSearchToSelectCompanyTooltip=นอกจากนี้ถ้าคุณมีจำนวนมากของบุคคลที่สาม (> 100 000) คุณสามารถเพิ่มความเร็วโดยการตั้งค่า COMPANY_DONOTSEARCH_ANYWHERE คงเป็น 1 ใน Setup-> อื่น ๆ ค้นหาแล้วจะถูก จำกัด ในการเริ่มต้นของสตริง
     UseSearchToSelectContactTooltip=นอกจากนี้ถ้าคุณมีจำนวนมากของบุคคลที่สาม (> 100 000) คุณสามารถเพิ่มความเร็วโดยการตั้งค่า CONTACT_DONOTSEARCH_ANYWHERE คงเป็น 1 ใน Setup-> อื่น ๆ ค้นหาแล้วจะถูก จำกัด ในการเริ่มต้นของสตริง
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr ของตัวละครที่จะเรียกการค้นหา:% s
     NotAvailableWhenAjaxDisabled=ไม่สามารถใช้ได้เมื่ออาแจ็กซ์ปิดการใช้งาน
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=ตัวอย่างที่ไม่สามารถ
     ThemeCurrentlyActive=รูปแบบที่ใช้งานอยู่ในปัจจุบัน
     CurrentTimeZone=เขต PHP (เซิร์ฟเวอร์)
     MySQLTimeZone=เขตฐาน (ฐานข้อมูล)
    -TZHasNoEffect=วันที่มีการจัดเก็บและส่งกลับโดยเซิร์ฟเวอร์ฐานข้อมูลราวกับว่าพวกเขาจะถูกเก็บไว้เป็นสตริงยื่น เขตมีผลเฉพาะเมื่อใช้ฟังก์ชั่น UNIX_TIMESTAMP (ที่ไม่ควรนำมาใช้โดย Dolibarr ดังนั้นฐานข้อมูล TZ ควรจะมีไม่มีผลกระทบแม้ว่าการเปลี่ยนแปลงหลังจากถูกป้อนข้อมูล)
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=ช่องว่าง
     Table=ตาราง
     Fields=ทุ่ง
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=กระตือรือร้น
     SetupShort=การติดตั้ง
     OtherOptions=ตัวเลือกอื่น ๆ
    -OtherSetup=ตั้งค่าอื่น ๆ
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=คั่นทศนิยม
     CurrentValueSeparatorThousand=พันคั่น
     Destination=ปลายทาง
     IdModule=โมดูล ID
     IdPermissions=ID สิทธิ์
     LanguageBrowserParameter=s พารามิเตอร์%
    -LocalisationDolibarrParameters=พารามิเตอร์ภาษาท้องถิ่น
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=โซนเวลาไคลเอ็นต์ (ผู้ใช้)
     ClientHour=เวลาไคลเอ็นต์ (ผู้ใช้)
     OSTZ=ระบบปฏิบัติการเซิร์ฟเวอร์โซนเวลา
    @@ -126,8 +126,8 @@ PHPTZ=PHP เซิร์ฟเวอร์โซนเวลา
     DaylingSavingTime=ปรับเวลาตามฤดูกาล
     CurrentHour=PHP เวลา (เซิร์ฟเวอร์)
     CurrentSessionTimeOut=หมดเวลาการใช้งานปัจจุบัน
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (ภาษาเบราว์เซอร์)
     FeatureDisabledInDemo=ปิดใช้งานคุณลักษณะในการสาธิต
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=องค์ประกอบเฉพาะจาก <a href="%s">โมดูลที่เปิดใช้งาน</a> จะแสดง
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=ใหม่
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore สถานที่อย่างเป็นทางการสำหรับตลาด Dolibarr ERP / CRM โมดูลภายนอก
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=ลิงค์
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=จะไม่จัดเก็บรหัสผ่
     MainDbPasswordFileConfEncrypted=รหัสผ่านฐานข้อมูลการเข้ารหัสใน conf.php (เปิดใช้แนะนำ)
     InstrucToEncodePass=จะมีรหัสผ่านที่เข้ารหัสเป็นไฟล์ <b>conf.php</b> เปลี่ยนสาย <br> <b>$ dolibarr_main_db_pass = "... ";</b> <br> โดย <br> <b>$ dolibarr_main_db_pass = "crypted:% s";</b>
     InstrucToClearPass=จะมีรหัสผ่านถอดรหัส (ชัดเจน) เป็นไฟล์ <b>conf.php</b> เปลี่ยนสาย <br> <b>$ dolibarr_main_db_pass = "crypted ... ";</b> <br> โดย <br> <b>$ dolibarr_main_db_pass = "% s";</b>
    -ProtectAndEncryptPdfFiles=การคุ้มครองของไฟล์ PDF ที่สร้าง (เปิดใช้งานไม่แนะนำแบ่งไฟล์ PDF รุ่นมวล)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=ลักษณะ
     DolibarrLicense=อนุญาต
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=สำหรับผู้ใช้หรือเอกสารพัฒนา (หมอคำถามที่พบบ่อย ... ), <br> ดูที่วิกิพีเดีย Dolibarr: <br> <a href="%s" target="_blank"><b>% s</b></a>
     ForAnswersSeeForum=สำหรับคำถามใด ๆ / ความช่วยเหลือคุณสามารถใช้ฟอรั่ม Dolibarr: <br> <a href="%s" target="_blank"><b>% s</b></a>
    -HelpCenterDesc1=พื้นที่บริเวณนี้จะสามารถช่วยให้คุณได้รับบริการสนับสนุนช่วยเหลือใน Dolibarr
    -HelpCenterDesc2=<b>เป็นส่วนหนึ่งของบริการนี้บางส่วนที่มีอยู่ในภาษาอังกฤษเท่านั้น</b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=จัดการเมนูปัจจุบัน
     MeasuringUnit=หน่วยการวัด
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=ระยะเวลาการแจ้งให้ทราบ
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS พอร์ต (โดยค่าเริ่มต้นใน <b>php.ini:% s)</b>
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS โฮสต์ (โดยค่าเริ่มต้นใน <b>php.ini:% s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS พอร์ต (ไม่กำหนดเข้า PHP บนระบบปฏิบัติการยูนิกซ์เช่นระบบ)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS โฮสต์ (ไม่กำหนดเข้า PHP บนระบบปฏิบัติการยูนิกซ์เช่นระบบ)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= ส่งระบบคาร์บอนสำเนาซ่อนของอีเมลที่ส่งไปทั้งหมด
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=วิธีการที่จะใช้ในการส่งอีเมล
    -MAIN_MAIL_SMTPS_ID=ID SMTP หากตร​​วจสอบที่จำเป็น
    -MAIN_MAIL_SMTPS_PW=รหัสผ่าน SMTP หากตร​​วจสอบที่จำเป็น
    -MAIN_MAIL_EMAIL_TLS= ใช้ TLS (SSL) เข้ารหัส
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=ปิดการใช้งานตอบรับ SMS ทั้งหมด (สำหรับวัตถุประสงค์ในการทดสอบหรือการสาธิต)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=วิธีการที่จะใช้ในการส่ง SMS
    -MAIN_MAIL_SMS_FROM=เริ่มต้นหมายเลขโทรศัพท์ของผู้ส่งสำหรับการส่ง SMS
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=คุณลักษณะที่ไม่สามารถใช้ได้บน Unix เหมือนระบบ ทดสอบโปรแกรม sendmail ในประเทศของคุณ
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=การติดตั้งโมดูล
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=เครื่องมือโมดูลหลาย
     ModuleFamilyExperimental=โมดูลทดลอง
     ModuleFamilyFinancial=โมดูลการเงิน (บัญชี / กระทรวงการคลัง)
     ModuleFamilyECM=การจัดการเนื้อหาอิเล็กทรอนิกส์ (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=รถยกเมนู
     MenuAdmin=แก้ไขเมนู
    @@ -309,15 +313,15 @@ DoNotUseInProduction=อย่าใช้ในการผลิต
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=ขั้นตอนที่% s
    -FindPackageFromWebSite=หาแพคเกจที่มีคุณลักษณะที่คุณต้องการ (ตัวอย่างเช่นในเว็บไซต์อย่างเป็นทางการของ% s)
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=แพคเกจการดาวน์โหลด (เช่นจากเว็บไซต์อย่างเป็นทางการ% s)
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=รุ่นปัจจุบัน Dolibarr
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= สำหรับการตอบสนองที่ล่าช้าในการส่งออกในไม่กี่วินาทีแคช (0 หรือที่ว่างเปล่าสำหรับแคชไม่ได้)
     DisableLinkToHelpCenter=ซ่อนลิงค์ <b>"ต้องการความช่วยเหลือหรือการสนับสนุน"</b> ในหน้าเข้าสู่ระบบ
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=ไม่มีการตัดอัตโนมัติดังนั้นหากสายจะออกจากหน้าเอกสารที่ยาวเกินไปเพราะคุณต้องเพิ่มผลตอบแทนการขนส่งด้วยตัวคุณเองใน textarea
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=ระยะเวลาขั้นต่ำ
     LanguageFilesCachedIntoShmopSharedMemory=ไฟล์ .lang โหลดในหน่วยความจำที่ใช้ร่วมกัน
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=ตัวอย่างกับการตั้งค่าการทำงานในปัจจุบัน
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=รายการ OpenDocument ไดเรกทอรีแม่
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=จำนวน ODT / ODS ไฟล์แม่แบบที่พบในไดเรกทอรีเหล่านั้น
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=ตัวอย่างของไวยากรณ์: <br> C: \\ mydir <br> / home / mydir <br> DOL_DATA_ROOT / ECM / ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br> หากต้องการทราบวิธีการสร้างเอกสารของคุณ ODT แม่ก่อนที่จะเก็บไว้ในไดเรกทอรีเหล่านั้นอ่านเอกสารวิกิพีเดีย:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=กุญแจสำคัญในการใช้
     TestSubmitForm=รูปแบบการทดสอบการป้อนข้อมูล
     ThisForceAlsoTheme=การใช้ตัวจัดการเมนูนี้จะใช้รูปแบบของตัวเองสิ่งที่เป็นทางเลือกของผู้ใช้ นอกจากนี้ผู้จัดการเมนูนี้พิเศษสำหรับมาร์ทโฟนไม่ได้งานมาร์ทโฟนทั้งหมด ใช้จัดการเมนูอื่นหากคุณพบปัญหากับคุณ
     ThemeDir=ไดเรกทอรีกิน
    -ConnectionTimeout=Connexion หมดเวลา
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=หมดเวลาการตอบสนอง
     SmsTestMessage=ข้อความทดสอบจาก __PHONEFROM__ เพื่อ __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=กุญแจสำคัญในการรักษาความปลอดภัย URL ที่
    -NoSmsEngine=ไม่มีผู้จัดการผู้ส่ง SMS ที่มีอยู่ ผู้จัดการผู้ส่ง SMS ไม่ได้ติดตั้งที่มีการกระจายค่าเริ่มต้น (เพราะพวกเขาขึ้นอยู่กับผู้จัดจำหน่ายภายนอก) แต่คุณสามารถหาบางอย่างเกี่ยวกับ% s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=รูปแบบไฟล์ PDF
    -PDFDesc=คุณสามารถตั้งค่าตัวเลือกในแต่ละระดับโลกที่เกี่ยวข้องกับการสร้างรูปแบบไฟล์ PDF
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=กฎการปลอมกล่องที่อยู่
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=ซ่อนรายละเอียดผลิตภัณฑ์ที่เกี่ยวกับการสร้างรูปแบบไฟล์ PDF
     HideRefOnPDF=ซ่อนอ้างอิงผลิตภัณฑ์ ในการสร้างรูปแบบไฟล์ PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=พารามิเตอร์ URL ที่การ
     SecurityTokenIsUnique=ใช้พารามิเตอร์ SecureKey ไม่ซ้ำกันสำหรับแต่ละ URL
     EnterRefToBuildUrl=ป้อนการอ้างอิงสำหรับวัตถุ% s
     GetSecuredUrl=รับ URL คำนวณ
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=อัตราภาษีมูลค่าเพิ่มเก่า
     NewVATRates=ใหม่อัตราภาษีมูลค่าเพิ่ม
     PriceBaseTypeToChange=การปรับเปลี่ยนราคาค่าอ้างอิงกับฐานที่กำหนดไว้ใน
    @@ -408,13 +412,13 @@ ExtrafieldSelect = เลือกรายการ
     ExtrafieldSelectList = เลือกจากตาราง
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=รหัสผ่าน
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=เชื่อมโยงไปยังวัตถุ
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=เริ่มต้นการเชื่อมโยง
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=คำเตือนค่านี้อาจถูกเขียนทับโดยการตั้งค่าของผู้ใช้เฉพาะ (ผู้ใช้แต่ละคนสามารถตั้งค่า URL clicktodial ของตัวเอง)
     ExternalModule=โมดูลภายนอก - ติดตั้งลงในไดเรกทอรี% s
    -BarcodeInitForThirdparties=init บาร์โค้ดมวลสำหรับ thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=init บาร์โค้ดมวลหรือตั้งค่าสำหรับผลิตภัณฑ์หรือบริการ
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=ค่า init สำหรับถัด% ระเบียนที่ว่างเปล่า
     EraseAllCurrentBarCode=ลบทุกค่าบาร์โค้ดปัจจุบัน
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=ทั้งหมดค่าบาร์โค้ดได้ถูกลบออก
    -NoBarcodeNumberingTemplateDefined=ไม่มีแม่แบบบาร์โค้ดเลขที่เปิดใช้งานลงในการติดตั้งโมดูลบาร์โค้ด
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=สนาม
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=และกลุ่มผู้ใช้
    +Module0Name=ผู้ใช้และกลุ่ม
     Module0Desc=Users / Employees and Groups management
    -Module1Name=บุคคลที่สาม
    -Module1Desc=บริษัท และการจัดการรายชื่อผู้ติดต่อ (ลูกค้ากลุ่มเป้าหมาย ... )\n
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=เชิงพาณิชย์
     Module2Desc=การจัดการเชิงพาณิชย์
     Module10Name=การบัญชี
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=ข้อเสนอ
     Module20Desc=การจัดการข้อเสนอในเชิงพาณิชย์
     Module22Name=E-จดหมายจำนวนมาก
    @@ -495,7 +501,7 @@ Module23Desc=การตรวจสอบการใช้พลังงา
     Module25Name=คำสั่งซื้อของลูกค้า
     Module25Desc=การบริหารลูกค้าสั่งซื้อ
     Module30Name=ใบแจ้งหนี้
    -Module30Desc=ใบแจ้งหนี้และการจัดการใบลดหนี้สำหรับลูกค้า การจัดการใบแจ้งหนี้สำหรับซัพพลายเออร์
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=ซัพพลายเออร์
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=การบริหารจัดการสต็อก (ส
     Module53Name=บริการ
     Module53Desc=การจัดการบริการ
     Module54Name=สัญญา / สมัครสมาชิก
    -Module54Desc=การบริหารจัดการของสัญญา (บริการหรือการสมัครสมาชิก reccuring)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=บาร์โค้ด
     Module55Desc=การจัดการบาร์โค้ด
     Module56Name=โทรศัพท์
     Module56Desc=รวมโทรศัพท์
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=บูรณาการของระบบ ClickToDial (ดอกจัน, ... )
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=ค่าใช้จ่ายและบันทึกการ
     Module75Desc=ค่าใช้จ่ายและการจัดการบันทึกการเดินทาง
     Module80Name=การจัดส่ง
     Module80Desc=การจัดส่งและการจัดการการสั่งซื้อการจัดส่ง
    -Module85Name=ธนาคารและเงินสด
    +Module85Name=Banks and Cash
     Module85Desc=การบริหารจัดการของธนาคารหรือบัญชีเงินสด
    -Module100Name=เว็บไซต์ภายนอก
    -Module100Desc=โมดูลนี้จะรวมถึงเว็บไซต์ภายนอกหรือหน้าในเมนู Dolibarr และดูเป็นกรอบ Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=บุรุษไปรษณีย์และหลักสูตรนานาชาติ
     Module105Desc=บุรุษไปรษณีย์หรือหลักสูตรนานาชาติอินเตอร์เฟซสำหรับโมดูลสมาชิก
     Module200Name=LDAP
    -Module200Desc=ประสานไดเรกทอรี LDAP
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=บูรณาการ PostNuke
     Module240Name=ข้อมูลการส่งออก
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=การนำเข้าข้อมูล
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=สมาชิก
     Module310Desc=มูลนิธิการจัดการสมาชิก
     Module320Name=RSS Feed
     Module320Desc=เพิ่มฟีด RSS ภายใน Dolibarr หน้าจอ
    -Module330Name=ที่คั่นหน้า
    -Module330Desc=การจัดการที่คั่นหน้า
    -Module400Name=โครงการ / โอกาส / นำ
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=บูรณาการ Webcalendar
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=เงินกู้
     Module520Desc=การบริหารจัดการของเงินให้สินเชื่อ
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=การบริจาค
     Module700Desc=การจัดการการบริจาค
     Module770Name=รายงานค่าใช้จ่าย
    -Module770Desc=การบริหารจัดการและการเรียกร้องรายงานค่าใช้จ่าย (การขนส่ง, อาหาร, ... )
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=ตั๊กแตนตำข้าว
    @@ -576,13 +582,13 @@ Module1520Desc=สร้างเอกสารอีเมล์จำนว
     Module1780Name=แท็ก / หมวดหมู่
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=แก้ไขแบบ WYSIWYG
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=ราคาแบบไดนามิก
     Module2200Desc=เปิดใช้งานการใช้งานของการแสดงออกทางคณิตศาสตร์สำหรับราคา
     Module2300Name=งานที่กำหนดเวลาไว้
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=เปิดใช้งานเซิร์ฟเวอร์ S
     Module2610Name=API/Web services (REST server)
     Module2610Desc=เปิดใช้งานเซิร์ฟเวอร์ Dolibarr REST API ให้บริการ
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=เปิดใช้งานเว็บ Dolibarr บริการลูกค้า (สามารถใช้ในการผลักดันข้อมูล / การร้องขอไปยังเซิร์ฟเวอร์ภายนอก. คำสั่งผู้สนับสนุนเฉพาะสำหรับช่วงเวลา)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=ใช้บริการ Gravatar ออนไลน์ (www.gravatar.com) เพื่อแสดงภาพของผู้ใช้ / สมาชิก (พบกับอีเมลของพวกเขา) ต้องเชื่อมต่ออินเทอร์เน็ต
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=ไคลเอนต์ FTP
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind ความสามารถในการแปลง
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=ระบบบริหารจัดการทรัพยากรบุคคล
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=หลาย บริษัท
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=ขอออกจากการบริหารจัดการ
    -Module20000Desc=ประกาศและติดตามพนักงานใบร้องขอ
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=จำนวนมากหรือหมายเลขกินโดยและขายโดยการจัดการวันที่เกี่ยวกับผลิตภัณฑ์
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=จุดขาย
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=จุดขาย
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=บัญชี (ขั้นสูง)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=พิมพ์โดยตรง (โดยไม่ต้องเปิดเอกสาร) โดยใช้อินเตอร์เฟซถ้วยไอพีพี (เครื่องพิมพ์จะต้องมองเห็นจากเซิร์ฟเวอร์และ CUPS จะต้อง installe บนเซิร์ฟเวอร์)
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=อัตรากำไรขั้นต้น
     Module59000Desc=โมดูลการจัดการอัตรากำไรขั้นต้น
     Module60000Name=คณะกรรมการ
     Module60000Desc=โมดูลการจัดการค่าคอมมิชชั่น
    -Module62000Name=Incoterm
    -Module62000Desc=เพิ่มคุณสมบัติในการจัดการ Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=ทรัพยากร
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=อ่านใบแจ้งหนี้ของลูกค้า
    @@ -651,9 +661,9 @@ Permission32=สร้าง / แก้ไขผลิตภัณฑ์
     Permission34=ลบผลิตภัณฑ์
     Permission36=ดู / จัดการผลิตภัณฑ์ที่ซ่อน
     Permission38=สินค้าส่งออก
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=ลบโครงการ (โครงการและโครงการที่ใช้ร่วมกันฉันติดต่อ)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=อ่านการแทรกแซง
     Permission62=สร้าง / แก้ไขการแทรกแซง
    @@ -686,7 +696,7 @@ Permission109=ลบตอบรับ
     Permission111=อ่านบัญชีการเงิน
     Permission112=สร้าง / แก้ไข / ลบและเปรียบเทียบการทำธุรกรรม
     Permission113=การตั้งค่าบัญชีการเงิน (สร้างจัดการหมวดหมู่)
    -Permission114=Reconciliate การทำธุรกรรม
    +Permission114=Reconcile transactions
     Permission115=การทำธุรกรรมการส่งออกและงบบัญชี
     Permission116=โอนเงินระหว่างบัญชี
     Permission117=จัดการฝึกอบรมการตรวจสอบ
    @@ -694,15 +704,15 @@ Permission121=อ่านบุคคลที่สามที่เชื่
     Permission122=สร้าง / แก้ไขบุคคลที่สามที่เชื่อมโยงไปยังผู้ใช้
     Permission125=ลบบุคคลที่สามที่เชื่อมโยงไปยังผู้ใช้
     Permission126=บุคคลที่สามส่งออก
    -Permission141=อ่านทุกโครงการและงาน (ยังเป็นโครงการส่วนตัวฉันไม่ได้ติดต่อเพื่อขอ)
    -Permission142=สร้าง / แก้ไขทุกโครงการและงาน (ยังเป็นโครงการส่วนตัวฉันไม่ได้ติดต่อเพื่อขอ)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=ลบทุกโครงการและงาน (ยังเป็นโครงการส่วนตัวฉันไม่ได้ติดต่อเพื่อขอ)
     Permission146=อ่านให้บริการ
     Permission147=อ่านสถิติ
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=อ่านสัญญา / สมัครสมาชิก
     Permission162=สร้าง / แก้ไขสัญญา / สมัครสมาชิก
     Permission163=เปิดใช้งานบริการ / สมัครสมาชิกของสัญญา
    @@ -725,7 +735,7 @@ Permission187=คำสั่งซัพพลายเออร์ปิด
     Permission188=ยกเลิกคำสั่งผู้จัดจำหน่าย
     Permission192=สร้างเส้น
     Permission193=ยกเลิกสาย
    -Permission194=อ่านเส้นแบนด์วิดธ์
    +Permission194=Read the bandwidth lines
     Permission202=สร้างการเชื่อมต่อ ADSL
     Permission203=การเชื่อมต่อการสั่งซื้อสั่งซื้อสินค้า
     Permission204=การเชื่อมต่อการสั่งซื้อ
    @@ -750,12 +760,12 @@ Permission244=ดูเนื้อหาของหมวดหมู่ที
     Permission251=อ่านผู้ใช้และกลุ่มอื่น ๆ
     PermissionAdvanced251=อ่านผู้ใช้อื่น ๆ
     Permission252=อ่านสิทธิ์ของผู้อื่น
    -Permission253=สร้าง / แก้ไขผู้ใช้อื่น ๆ กลุ่มและ permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=สร้าง / แก้ไขผู้ใช้ภายใน / ภายนอกและการอนุญาต
     Permission254=สร้าง / แก้ไขผู้ใช้ภายนอกเท่านั้น
     Permission255=แก้ไขรหัสผ่านผู้ใช้อื่น ๆ
     Permission256=ลบหรือปิดการใช้งานผู้ใช้อื่น ๆ
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=อ่าน CA
     Permission272=อ่านใบแจ้งหนี้
     Permission273=ใบแจ้งหนี้ฉบับ
    @@ -765,7 +775,7 @@ Permission283=ลบรายชื่อ
     Permission286=รายชื่อที่ส่งออก
     Permission291=อ่านภาษี
     Permission292=กำหนดสิทธิในการเก็บภาษีศุลกากร
    -Permission293=การปรับเปลี่ยนอัตราภาษีศุลกากรซอ
    +Permission293=Modify customers tariffs
     Permission300=อ่านบาร์โค้ด
     Permission301=สร้าง / แก้ไขบาร์โค้ด
     Permission302=ลบบาร์โค้ด
    @@ -787,11 +797,9 @@ Permission401=อ่านส่วนลด
     Permission402=สร้าง / แก้ไขส่วนลด
     Permission403=ตรวจสอบส่วนลด
     Permission404=ลบส่วนลด
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=ลบเงินเดือน
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=เงินเดือนส่งออก
     Permission520=อ่านสินเชื่อ
     Permission522=สร้าง / แก้ไขการให้กู้ยืมเงิน
    @@ -844,8 +852,8 @@ Permission1251=เรียกมวลของการนำเข้าข
     Permission1321=ส่งออกใบแจ้งหนี้ของลูกค้าคุณลักษณะและการชำระเงิน
     Permission1322=Reopen a paid bill
     Permission1421=ส่งออกสั่งซื้อของลูกค้าและคุณลักษณะ
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=ลบออกจากการร้องขอ
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=ระดับศักยภาพ Prospect
     DictionaryCanton=รัฐ / จังหวัด
     DictionaryRegion=ภูมิภาค
    @@ -894,7 +902,7 @@ DictionaryVAT=ภาษีมูลค่าเพิ่มราคาหรื
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=เงื่อนไขการชำระเงิน
     DictionaryPaymentModes=โหมดการชำระเงิน
    -DictionaryTypeContact=ติดต่อเรา / ที่อยู่ประเภท
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=รูปแบบกระดาษ
    @@ -908,47 +916,47 @@ DictionarySource=แหล่งที่มาของข้อเสนอ /
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=รุ่นสำหรับผังบัญชี
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=แม่แบบอีเมล
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=หน่วย
     DictionaryProspectStatus=สถานะ prospection
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=สถานะการเปิดโอกาสให้โครงการ / นำ
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=การตั้งค่าที่บันทึกไว้
     SetupNotSaved=Setup not saved
     BackToModuleList=กลับไปยังรายการโมดูล
    -BackToDictionaryList=กลับไปยังรายการพจนานุกรม
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=การบริหารจัดการภาษีมูลค่าเพิ่ม
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=โดยเริ่มต้นภาษีมูลค่าเพิ่มเสนอเป็น 0 ซึ่งสามารถนำมาใช้สำหรับกรณีเช่นสมาคมบุคคลอู บริษัท ขนาดเล็ก
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=ประเมิน
     LocalTax1IsNotUsed=อย่าใช้ภาษีที่สอง
    -LocalTax1IsUsedDesc=ใช้ประเภทที่สองของภาษี (นอกเหนือจากภาษีมูลค่าเพิ่ม)
    -LocalTax1IsNotUsedDesc=อย่าใช้ชนิดอื่น ๆ ของภาษี (นอกเหนือจากภาษีมูลค่าเพิ่ม)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=ประเภทที่สองของภาษี
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=อย่าใช้ภาษีที่สาม
    -LocalTax2IsUsedDesc=ใช้ชนิดที่สามของภาษี (นอกเหนือจากภาษีมูลค่าเพิ่ม)
    -LocalTax2IsNotUsedDesc=อย่าใช้ชนิดอื่น ๆ ของภาษี (นอกเหนือจากภาษีมูลค่าเพิ่ม)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=ชนิดที่สามของภาษี
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= การบริหารจัดการเรื่อง
    -LocalTax1IsUsedDescES= อัตรา RE โดยค่าเริ่มต้นเมื่อมีการสร้างโอกาสในใบแจ้งหนี้การสั่งซื้อ ฯลฯ ตามกฎมาตรฐานที่ใช้งาน: <br> ถ้าผู้ซื้อเต้ไม่ได้อยู่ภายใต้การ RE, RE โดยค่าเริ่มต้น = 0 ในตอนท้ายของการปกครอง <br> ถ้าผู้ซื้ออยู่ภายใต้การ RE RE แล้วโดยปริยาย ในตอนท้ายของการปกครอง <br>
    -LocalTax1IsNotUsedDescES= โดยค่าเริ่มต้นเรื่องที่นำเสนอเป็น 0 ในตอนท้ายของการปกครอง
    -LocalTax1IsUsedExampleES= ในประเทศสเปนพวกเขาเป็นมืออาชีพภายใต้บางส่วนที่เฉพาะเจาะจงของสเปน IAE
    -LocalTax1IsNotUsedExampleES= ในประเทศสเปนพวกเขาเป็นมืออาชีพและสังคมและอาจมีบางส่วนของสเปน IAE
    -LocalTax2ManagementES= การบริหารจัดการ IRPF
    -LocalTax2IsUsedDescES= อัตรา RE โดยค่าเริ่มต้นเมื่อมีการสร้างโอกาสในใบแจ้งหนี้การสั่งซื้อ ฯลฯ ตามกฎมาตรฐานที่ใช้งาน: <br> หากผู้ขายไม่ได้อยู่ภายใต้การ IRPF แล้ว IRPF โดยค่าเริ่มต้น = 0 ในตอนท้ายของการปกครอง <br> หากผู้ขายได้อยู่ภายใต้การ IRPF แล้ว IRPF โดยค่าเริ่มต้น ในตอนท้ายของการปกครอง <br>
    -LocalTax2IsNotUsedDescES= โดยค่าเริ่มต้น IRPF เสนอคือ 0 สิ้นสุดของการปกครอง
    -LocalTax2IsUsedExampleES= ในสเปนมือปืนรับจ้างและอาชีพอิสระที่ให้บริการและ บริษัท ที่ได้รับเลือกให้ระบบภาษีของโมดูล
    -LocalTax2IsNotUsedExampleES= ในประเทศสเปนพวกเขาจะ bussines ไม่อยู่ภายใต้ระบบภาษีของโมดูล
    +LocalTax1ManagementES=การบริหารจัดการเรื่อง
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=โดยค่าเริ่มต้นเรื่องที่นำเสนอเป็น 0 ในตอนท้ายของการปกครอง
    +LocalTax1IsUsedExampleES=ในประเทศสเปนพวกเขาเป็นมืออาชีพภายใต้บางส่วนที่เฉพาะเจาะจงของสเปน IAE
    +LocalTax1IsNotUsedExampleES=ในประเทศสเปนพวกเขาเป็นมืออาชีพและสังคมและอาจมีบางส่วนของสเปน IAE
    +LocalTax2ManagementES=การบริหารจัดการ IRPF
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=โดยค่าเริ่มต้น IRPF เสนอคือ 0 สิ้นสุดของการปกครอง
    +LocalTax2IsUsedExampleES=ในสเปนมือปืนรับจ้างและอาชีพอิสระที่ให้บริการและ บริษัท ที่ได้รับเลือกให้ระบบภาษีของโมดูล
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=รายงานเกี่ยวกับภาษีท้องถิ่น
     CalcLocaltax1=ขาย - ซื้อ
     CalcLocaltax1Desc=รายงานภาษีท้องถิ่นที่มีการคำนวณมีความแตกต่างระหว่างการขายและการซื้อ localtaxes localtaxes
    @@ -958,7 +966,9 @@ CalcLocaltax3=ขาย
     CalcLocaltax3Desc=รายงานภาษีท้องถิ่นรวมของยอดขาย localtaxes
     LabelUsedByDefault=ฉลากใช้โดยเริ่มต้นถ้าแปลไม่สามารถพบได้สำหรับรหัส
     LabelOnDocuments=ป้ายเกี่ยวกับเอกสาร
    -NbOfDays=nb วัน
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=ในตอนท้ายของเดือน
     CurrentNext=Current/Next
     Offset=สาขา
    @@ -984,7 +994,7 @@ DatabaseUser=ผู้ใช้ฐานข้อมูล
     DatabasePassword=รหัสผ่านฐานข้อมูล
     Tables=ตาราง
     TableName=ชื่อตาราง
    -NbOfRecord=nb ของระเบียน
    +NbOfRecord=No. of records
     Host=เซิร์ฟเวอร์
     DriverType=ชนิดตัวขับ
     SummarySystem=สรุปข้อมูลระบบ
    @@ -996,7 +1006,7 @@ Skin=ธีมผิว
     DefaultSkin=ธีมเริ่มต้นผิว
     MaxSizeList=ความยาวสูงสุดสำหรับรายชื่อ
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=ข้อความของวัน
     MessageLogin=ข้อความหน้าเข้าสู่ระบบ
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=แบบฟอร์มการค้นหาถา
     DefaultLanguage=ภาษาเริ่มต้นที่จะใช้ (รหัสภาษา)
     EnableMultilangInterface=เปิดใช้งานอินเตอร์เฟซที่พูดได้หลายภาษา
     EnableShowLogo=โลโก้แสดงบนเมนูด้านซ้าย
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=ชื่อ
     CompanyAddress=ที่อยู่
     CompanyZip=ไปรษณีย์
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=เจ้าของบัญชีธนาคารขอ
     BankModuleNotActive=โมดูลบัญชีธนาคารไม่ได้เปิดใช้
     ShowBugTrackLink=แสดงการเชื่อมโยง <strong>"% s"</strong>
     Alerts=การแจ้งเตือน
    -DelaysOfToleranceBeforeWarning=ความล่าช้าความอดทนก่อนที่จะเตือน
    -DelaysOfToleranceDesc=หน้าจอนี้จะช่วยให้คุณสามารถกำหนดความล่าช้าทนแจ้งเตือนก่อนที่จะมีรายงานบนหน้าจอด้วย s picto% สำหรับแต่ละองค์ประกอบปลาย
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=ความอดทนล่าช้า (ในวัน) ก่อนที่จะแจ้งเตือนเกี่ยวกับข้อเสนอที่จะปิด
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=ความอดทนล่าช้า (ในวัน) ก่อนที่จะแจ้งเตือนเกี่ยวกับข้อเสนอการเรียกเก็บเงินไม่ได้
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=ความล่าช้าความอดทน (ในวัน) ก่อนที่จะแจ้งเตือนในการให้บริการเพื่อเปิดใช้งาน
    -Delays_MAIN_DELAY_RUNNING_SERVICES=ความล่าช้าความอดทน (ในวัน) ก่อนที่จะแจ้งเตือนเกี่ยวกับการบริการที่หมดอายุ
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=ความล่าช้าความอดทน (ในวัน) ก่อนที่จะแจ้งเตือนในใบแจ้งหนี้ที่ค้างชำระผู้จัดจำหน่าย
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=ความล่าช้าอดทน (ในวัน) ก่อนที่จะแจ้งเตือนในใบแจ้งหนี้ลูกค้าที่ค้างชำระ
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=ความล่าช้าความอดทน (ในวัน) ก่อนที่จะแจ้งเตือนเกี่ยวกับการตรวจสอบธนาคารอยู่ระหว่างดำเนินการ
    -Delays_MAIN_DELAY_MEMBERS=ความล่าช้าความอดทน (ในวัน) ก่อนที่จะแจ้งเตือนเกี่ยวกับค่าสมาชิกล่าช้า
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=ความล่าช้าความอดทน (ในวัน) ก่อนที่จะแจ้งเตือนสำหรับการฝากเงินการตรวจสอบที่จะทำ
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=รายการเมนูอื่น ๆ จัดการพารามิเตอร์ที่ไม่จำเป็น
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=ตรวจสอบเหตุการณ์การรักษาความปลอดภัย
    -Audit=การตรวจสอบบัญชี
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=ชื่อเบราว์เซอร์
     BrowserOS=ระบบปฏิบัติการเบราว์เซอร์
     ListOfSecurityEvents=รายการ Dolibarr เหตุการณ์การรักษาความปลอดภัย
     SecurityEventsPurged=เหตุการณ์การรักษาความปลอดภัยกำจัด
    -LogEventDesc=คุณสามารถเปิดใช้การเข้าสู่ระบบที่นี่สำหรับ Dolibarr เหตุการณ์การรักษาความปลอดภัย <b>ผู้ดูแลระบบแล้วสามารถมองเห็นเนื้อหาผ่านทางเครื่องมือของระบบเมนู - ตรวจสอบ</b> คำเตือนคุณลักษณะนี้สามารถใช้ข้อมูลจำนวนมากในฐานข้อมูล
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=ข้อมูลระบบข้อมูลทางด้านเทคนิคอื่น ๆ ที่คุณได้รับในโหมดอ่านอย่างเดียวและมองเห็นสำหรับผู้ดูแลระบบเท่านั้น
     SystemAreaForAdminOnly=บริเวณนี้เป็นที่ใช้ได้สำหรับผู้ใช้ผู้ดูแลระบบเท่านั้น ไม่มีสิทธิ์ Dolibarr สามารถลดขีด จำกัด นี้
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=คุณสามารถเลือกแต่ละพารามิเตอร์ที่เกี่ยวข้องกับ Dolibarr มองและความรู้สึกที่นี่
     AvailableModules=Available app/modules
     ToActivateModule=เพื่อเปิดใช้งานโมดูลไปในพื้นที่การติดตั้ง (หน้าแรก> Setup-> โมดูล)
     SessionTimeOut=หมดเวลาสำหรับเซสชั่น
    -SessionExplanation=รับประกันหมายเลขนี้ที่เซสชั่นจะไม่มีวันหมดอายุก่อนที่จะล่าช้านี้ถ้าทำความสะอาดเซสชั่นจะกระทำโดยการทำความสะอาดภายใน PHP เซสชั่น (และไม่มีอะไรอื่น) PHP เซสชั่นทำความสะอาดภายในไม่รับประกันว่าเซสชั่นจะหมดอายุหลังจากที่ล่าช้านี้ <b>มันจะหมดอายุหลังจากที่ล่าช้านี้และเมื่อทำความสะอาดเซสชั่นที่มีการวิ่งเพื่อให้ทุก% s /% s</b> เข้าถึง แต่เฉพาะในช่วงการเข้าถึงที่ทำโดยการประชุมอื่น ๆ <br> หมายเหตุ: บนเซิร์ฟเวอร์บางคนที่มีกลไกการทำความสะอาดเซสชั่นภายนอก (cron ภายใต้เดเบียน, อูบุนตู ... ), การประชุมสามารถถูกทำลายหลังจากระยะเวลาที่กำหนดโดย <strong>session.gc_maxlifetime</strong> เริ่มต้นไม่ว่าสิ่งที่มีค่าเข้ามาที่นี่
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=มีจำหน่ายทริกเกอร์
    -TriggersDesc=ทริกเกอร์เป็นไฟล์ที่จะปรับเปลี่ยนพฤติกรรมของ Dolibarr เวิร์กโฟลว์เคยถูกคัดลอกลงใน <b>htdocs</b> ไดเรกทอรี <b>/ core / ทริกเกอร์</b> พวกเขาตระหนักถึงการกระทำใหม่เปิดใช้งานเกี่ยวกับเหตุการณ์ Dolibarr (การสร้าง บริษัท ใหม่การตรวจสอบใบแจ้งหนี้, ... )
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=ทริกเกอร์ในแฟ้มนี้มีการปิดใช้งานโดยต่อท้าย <b>-NORUN</b> ในชื่อของพวกเขา
     TriggerDisabledAsModuleDisabled=<b>ทริกเกอร์ในแฟ้มนี้ถูกปิดใช้งานเป็นของโมดูล%</b> ถูกปิดใช้งาน
     TriggerAlwaysActive=ทริกเกอร์ในแฟ้มนี้มีการใช้งานอยู่เสมอสิ่งที่มีการเปิดใช้งานโมดูล Dolibarr
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=ข้อ จำกัด / การตั้งค่าความแม่นยำ
    -LimitsDesc=คุณสามารถกำหนดวงเงินแม่นยำและ optimisations ใช้โดย Dolibarr ที่นี่
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=ทศนิยมซ์ราคาต่อหน่วย
     MAIN_MAX_DECIMALS_TOT=ทศนิยมแม็กซ์ราคารวม
     MAIN_MAX_DECIMALS_SHOWN=แม็กซ์ทศนิยมสำหรับราคาที่แสดงบนหน้าจอ (เพิ่ม <b>...</b> หลังจากนี้ถ้าคุณต้องการที่จะเห็น <b>...</b> เมื่อจำนวนถูกตัดทอนเมื่อแสดงบนหน้าจอ)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=ขั้นตอนของช่วงปัดเศ
     UnitPriceOfProduct=ราคาต่อหน่วยสุทธิของผลิตภัณฑ์
     TotalPriceAfterRounding=ราคารวม (บาท / ถัง / รวมภาษี) หลังจากการปัดเศษ
     ParameterActiveForNextInputOnly=พารามิเตอร์ที่มีประสิทธิภาพสำหรับการป้อนข้อมูลต่อไปเท่านั้น
    -NoEventOrNoAuditSetup=เหตุการณ์การรักษาความปลอดภัยที่ไม่ได้รับการบันทึกไว้ยัง นี้จะมีการตรวจสอบตามปกติถ้าไม่ได้รับการเปิดใช้งานบน "การตั้งค่า - การรักษาความปลอดภัย - การตรวจสอบหน้า"
    -NoEventFoundWithCriteria=เหตุการณ์การรักษาความปลอดภัยที่ไม่ได้พบเกณฑ์การค้นหาดังกล่าว
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=ดูการตั้งค่าของคุณ sendmail ท้องถิ่น
     BackupDesc=เพื่อให้การสำรองข้อมูลที่สมบูรณ์ของ Dolibarr คุณต้อง:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=บันทึกเนื้อหาของฐานข้อมูลของคุณ <b>(% s)</b> ลงในแฟ้มการถ่ายโอนข้อมูล สำหรับนี้คุณสามารถใช้ผู้ช่วยต่อไปนี้
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=ไดเรกทอรีเก็บควรเก็บไว้ในสถานที่ที่ปลอดภัย
     BackupDescY=สร้างแฟ้มการถ่ายโอนควรเก็บไว้ในสถานที่ที่ปลอดภัย
    -BackupPHPWarning=การสำรองข้อมูลไม่สามารถ guaranted ด้วยวิธีนี้ ชอบก่อนหน้านี้
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=ในการเรียกคืนการสำรองข้อมูล Dolibarr คุณต้อง:
    -RestoreDesc2=เรียกคืนไฟล์ที่เก็บถาวร (zip ไฟล์ตัวอย่าง) ของไดเรกทอรีเอกสารที่จะดึงต้นไม้ของไฟล์ในไดเรกทอรีเอกสารของการติดตั้งใหม่หรือ Dolibarr ลงในเอกสารปัจจุบันนี้ Directoy <b>(% s)</b>
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=เรียกคืนข้อมูลจากแฟ้มการถ่ายโอนข้อมูลการสำรองข้อมูลลงในฐานข้อมูลของการติดตั้ง Dolibarr ใหม่หรือลงในฐานข้อมูลของการติดตั้งปัจจุบันนี้ <b>(% s)</b> คำเตือนเมื่อคืนเสร็จแล้วคุณต้องใช้เข้าสู่ระบบ / รหัสผ่านที่มีอยู่เมื่อการสำรองข้อมูลที่ถูกสร้างขึ้นเพื่อเชื่อมต่ออีกครั้ง เพื่อเรียกคืนฐานข้อมูลสำรองลงในนี้ติดตั้งปัจจุบันคุณสามารถทำตามนี้ช่วย
     RestoreMySQL=นำเข้า MySQL
     ForcedToByAModule= <b>กฎนี้ถูกบังคับให้% โดยการเปิดใช้งานโมดูล</b>
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=<b>คุณต้องเร
     YourPHPDoesNotHaveSSLSupport=ฟังก์ชั่น SSL ไม่สามารถใช้ได้ใน PHP ของคุณ
     DownloadMoreSkins=กินมากขึ้นในการดาวน์โหลด
     SimpleNumRefModelDesc=ส่งกลับจำนวนการอ้างอิงที่มีรูปแบบ% syymm-nnnn ที่ yy เป็นปีเป็นเดือนมิลลิเมตรและ nnnn เป็นลำดับโดยไม่ต้องหลุมและมีการตั้งค่าไม่มี
    -ShowProfIdInAddress=แสดงรหัสวิชาชีพที่มีที่อยู่ในเอกสาร
    -ShowVATIntaInAddress=ซ่อน NUM ภาษีมูลค่าเพิ่มภายในที่มีที่อยู่ในเอกสาร
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=แปลบางส่วน
    -MAIN_DISABLE_METEO=ปิดการใช้งานมุมมอง Meteo
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=เข้าสู่ระบบทดสอบ API
    -ProxyDesc=คุณลักษณะบางอย่างของ Dolibarr จำเป็นต้องมีการเข้าถึงอินเทอร์เน็ตที่ทำงาน กำหนดค่าพารามิเตอร์ที่นี่สำหรับเรื่องนี้ ถ้าเซิร์ฟเวอร์ Dolibarr อยู่เบื้องหลังเซิร์ฟเวอร์พร็อกซีพารามิเตอร์เหล่านั้นบอก Dolibarr วิธีการเข้าถึงอินเทอร์เน็ตผ่านมัน
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=การเข้าถึงจากภายนอก
     MAIN_PROXY_USE=ใช้พร็อกซีเซิร์ฟเวอร์ (เข้าถึงโดยตรงกับอินเทอร์เน็ตเป็นอย่างอื่น)
     MAIN_PROXY_HOST=ชื่อ / ที่อยู่ของเซิร์ฟเวอร์พร็อกซี่
     MAIN_PROXY_PORT=ท่าเรือร็อกซี่เซิร์ฟเวอร์
     MAIN_PROXY_USER=เข้าสู่ระบบที่จะใช้พร็อกซีเซิร์ฟเวอร์
     MAIN_PROXY_PASS=รหัสผ่านที่จะใช้พร็อกซีเซิร์ฟเวอร์
    -DefineHereComplementaryAttributes=กำหนดคุณลักษณะที่นี่ทั้งหมดไม่ได้อยู่แล้วโดยเริ่มต้นและที่คุณต้องการที่จะได้รับการสนับสนุนสำหรับ% s
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=คุณลักษณะที่สมบูรณ์
     ExtraFieldsLines=คุณลักษณะเสริม (เส้น)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=คุณลักษณะเสริม (เส้นตามลำดับ)
     ExtraFieldsSupplierInvoicesLines=คุณลักษณะเสริม (เส้นใบแจ้งหนี้)
     ExtraFieldsThirdParties=คุณลักษณะเสริม (thirdparty)
    -ExtraFieldsContacts=คุณลักษณะเสริม (ติดต่อ / ที่อยู่)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=คุณลักษณะเสริม (สมาชิก)
     ExtraFieldsMemberType=คุณลักษณะเสริม (ประเภทสมาชิก)
     ExtraFieldsCustomerInvoices=คุณลักษณะเสริม (ใบแจ้งหนี้)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=alphanumericals เท่านั้นแล
     SendmailOptionNotComplete=คำเตือนในบางระบบลินุกซ์ที่จะส่งอีเมลจากอีเมลของคุณตั้งค่าการดำเนินการต้องมี sendmail -ba ตัวเลือก (mail.force_extra_parameters พารามิเตอร์ลงในไฟล์ php.ini ของคุณ) หากผู้รับบางคนไม่เคยได้รับอีเมลพยายามที่จะแก้ไขพารามิเตอร์ PHP นี้กับ mail.force_extra_parameters = -ba)
     PathToDocuments=เส้นทางไปยังเอกสาร
     PathDirectory=สารบบ
    -SendmailOptionMayHurtBuggedMTA=คุณสมบัติที่จะส่งอีเมลโดยใช้วิธีการ "PHP mail โดยตรง" จะสร้างข้อความอีเมลที่อาจจะไม่ได้แยกวิเคราะห์ได้อย่างถูกต้องโดยบางส่วนที่ได้รับเมลเซิร์ฟเวอร์ ผลที่ได้คืออีเมลบางอย่างไม่สามารถอ่านได้โดยคนที่เป็นเจ้าภาพโดยแพลตฟอร์มร้องเหล่านั้น เป็นกรณีสำหรับบางผู้ให้บริการอินเทอร์เน็ต (Ex: ออเรนจ์ในประเทศฝรั่งเศส) ซึ่งไม่เป็นปัญหาเข้า Dolibarr หรือเข้า PHP แต่บนเซิร์ฟเวอร์อีเมลที่ได้รับ แต่คุณสามารถเพิ่มตัวเลือก MAIN_FIX_FOR_BUGGED_MTA 1 เข้าสู่การตั้งค่า - อื่น ๆ ที่จะปรับเปลี่ยน Dolibarr หลีกเลี่ยงปัญหานี้ แต่คุณอาจพบปัญหากับเซิร์ฟเวอร์อื่น ๆ ที่เคารพอย่างเคร่งครัดมาตรฐาน SMTP วิธีการแก้ปัญหาอื่น ๆ (แนะนำ) คือการใช้วิธีการ "ห้องสมุด SMTP ซ็อกเก็ต" ที่มีข้อเสียไม่มี
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=คุณต้องเปิดการใช้งานอย่างน้อย 1 โมดูล
    -ClassNotFoundIntoPathWarning=คลาส% s ไม่พบเ​​ข้ามาในเส้นทาง PHP
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=ใช่ในช่วงฤดู​​ร้อน
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=เซสชั่นการจัดเก็บข้อมูลที่มีการเข้ารหัสโดย Suhosin
     ConditionIsCurrently=สภาพปัจจุบันคือ% s
    -YouUseBestDriver=คุณสามารถใช้โปรแกรมควบคุม% s ที่เป็นคนขับรถที่ดีที่สุดที่มีอยู่ในปัจจุบัน
    -YouDoNotUseBestDriver=คุณสามารถใช้ไดรฟ์% s แต่คนขับ% s จะแนะนำ
    -NbOfProductIsLowerThanNoPb=คุณมีเพียง% s ผลิตภัณฑ์ / บริการลงในฐานข้อมูล นี้ไม่จำเป็นต้องมีการเพิ่มประสิทธิภาพใด ๆ โดยเฉพาะอย่างยิ่ง
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=ค้นหาการเพิ่มประสิทธิภาพ
    -YouHaveXProductUseSearchOptim=คุณมีผลิตภัณฑ์% s ลงในฐานข้อมูล คุณควรเพิ่ม PRODUCT_DONOTSEARCH_ANYWHERE คงที่ 1 เข้าไปในบ้านติดตั้งแบบอื่น ๆ , คุณ จำกัด การค้นหาเพื่อจุดเริ่มต้นของสายทำให้เป็นไปได้สำหรับฐานข้อมูลเพื่อใช้ดัชนีและคุณควรจะได้รับการตอบสนองทันที
    -BrowserIsOK=คุณกำลังใช้เบราว์เซอร์% s เบราว์เซอร์นี้เป็น ok สำหรับการรักษาความปลอดภัยและประสิทธิภาพการทำงาน
    -BrowserIsKO=คุณกำลังใช้เบราว์เซอร์% s เบราว์เซอร์นี้เป็นที่รู้จักกันจะเป็นทางเลือกที่ดีสำหรับการรักษาความปลอดภัยประสิทธิภาพและความน่าเชื่อถือ เรา recommand คุณใช้ Firefox, Chrome, Opera หรือ Safari
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug โหลด
     XCacheInstalled=XCache โหลด
    -AddRefInList=ลูกค้าแสดง / ผู้จัดจำหน่ายอ้างอิงในรายการ (เลือกรายการหรือ ComboBox) และส่วนใหญ่เชื่อมโยงหลายมิติ บุคคลที่สามจะปรากฏขึ้นพร้อมกับชื่อ "CC12345 - SC45678 - บริษัท ขนาดใหญ่ coorp" แทนที่จะเป็น "บริษัท ขนาดใหญ่ coorp"
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=ฉบับของสนาม% s
     FillThisOnlyIfRequired=ตัวอย่าง: 2 (กรอกข้อมูลเฉพาะในกรณีที่เขตเวลาชดเชยปัญหาที่มีประสบการณ์)
     GetBarCode=รับบาร์โค้ด
     ##### Module password generation
     PasswordGenerationStandard=กลับสร้างรหัสผ่านตามขั้นตอนวิธี Dolibarr ภายใน: 8 ตัวอักษรที่ใช้ร่วมกันที่มีตัวเลขและตัวอักษรตัวพิมพ์เล็ก
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=อีเมลที่จำเป็นในการสร
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=บริษัท ติดตั้งโมดูล
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=แม่แบบเอกสาร
    -DocumentModelOdt=เอกสารที่สร้างจากแม่แบบ OpenDocuments (.odt หรือไฟล์ .ods สำหรับ OpenOffice, KOffice, TextEdit, ... )
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=ลายน้ำในเอกสารร่าง
     JSOnPaimentBill=เปิดใช้งานคุณลักษณะในการป้อนอัตโนมัติสายการชำระเงินในรูปแบบการชำระเงิน
    -CompanyIdProfChecker=หลักเกณฑ์ในการมืออาชีพหมายเลข
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=<b>การเชื่อมโยงการส่งออกไปยังรูปแบบ% s</b> สามารถดูได้ที่ลิงค์ต่อไปนี้:% s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=<b>การเชื่อมโยงการส่ง
     BillsSetup=ใบแจ้งหนี้การติดตั้งโมดูล
     BillsNumberingModule=ใบแจ้งหนี้และบันทึกหมายเลขบัตรเครดิตรูปแบบ
     BillsPDFModules=รูปแบบเอกสารใบแจ้งหนี้
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=ใบลดหนี้
     CreditNotes=บันทึกเครดิต
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= เข้าสู่ระบบการจัดกา
     AdherentMailRequired=อีเมลจำเป็นในการสร้างสมาชิกใหม่
     MemberSendInformationByMailByDefault=ช่องทำเครื่องหมายยืนยันที่จะส่งอีเมลไปยังสมาชิก (การตรวจสอบหรือการสมัครสมาชิกใหม่) เป็นตามค่าเริ่มต้น
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=ติดตั้ง LDAP
     LDAPGlobalParameters=พารามิเตอร์ทั่วโลก
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= ทดสอบค้นหา LDAP
     LDAPSynchroOK=การประสานข้อมูลการทดสอบที่ประสบความสำเร็จ
     LDAPSynchroKO=การทดสอบการประสานล้มเหลว
    -LDAPSynchroKOMayBePermissions=การทดสอบการประสานล้มเหลว ตรวจสอบการเชื่อมโยงไปยังเซิร์ฟเวอร์ที่มีการกำหนดค่าได้อย่างถูกต้องและช่วยให้ udpates LDAP
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP เชื่อมต่อกับเซิร์ฟเวอร์ LDAP ที่ประสบความสำเร็จ (เซิร์ฟเวอร์ =% s พอร์ต =% s)
     LDAPTCPConnectKO=TCP เชื่อมต่อกับเซิร์ฟเวอร์ LDAP ล้มเหลว (เซิร์ฟเวอร์ =% s พอร์ต =% s)
    -LDAPBindOK=เชื่อมต่อ / Authentificate ไปยังเซิร์ฟเวอร์ LDAP ที่ประสบความสำเร็จ (เซิร์ฟเวอร์ =% s พอร์ต =% s, Admin =% s, รหัสผ่าน =% s)
    -LDAPBindKO=เชื่อมต่อ / Authentificate ไปยังเซิร์ฟเวอร์ LDAP ล้มเหลว (เซิร์ฟเวอร์ =% s พอร์ต =% s, Admin =% s, รหัสผ่าน =% s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=การกำหนดค่าเซิร์ฟเวอร์ LDAP สำหรับรุ่นที่ 3
     LDAPSetupForVersion2=เซิร์ฟเวอร์ LDAP การกำหนดค่าสำหรับรุ่นที่ 2
     LDAPDolibarrMapping=Dolibarr แมป
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=เข้าสู่ระบบ (samba, ActiveDirectory)
     LDAPFieldLoginSambaExample=ตัวอย่าง: samAccountName
     LDAPFieldFullname=ชื่อเต็ม
     LDAPFieldFullnameExample=ตัวอย่าง: CN
    -LDAPFieldPasswordNotCrypted=รหัสผ่านไม่ crypted
    -LDAPFieldPasswordCrypted=รหัสผ่าน crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=ตัวอย่าง: userpassword
     LDAPFieldCommonNameExample=ตัวอย่าง: CN
     LDAPFieldName=ชื่อ
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=ค่าตัวอย่างได้รับการออกแบบสำหรับ <b>OpenLDAP</b> กับแบบแผนโหลดต่อไปนี้: <b>core.schema, cosine.schema, inetorgperson.schema)</b> ถ้าคุณใช้ค่า thoose และ OpenLDAP แก้ไขไฟล์ config LDAP ของคุณ <b>slapd.conf</b> จะมีแบบแผน thoose ทั้งหมดที่โหลด
     ForANonAnonymousAccess=สำหรับการเข้าถึงรับรองความถูกต้อง (สำหรับการเข้าถึงการเขียนตัวอย่าง)
     PerfDolibarr=ผลการดำเนินงานการติดตั้ง / รายงานการเพิ่มประสิทธิภาพ
    -YouMayFindPerfAdviceHere=คุณจะพบในหน้านี้การตรวจสอบบางส่วนหรือคำแนะนำที่เกี่ยวข้องกับประสิทธิภาพ
    -NotInstalled=ไม่ได้ติดตั้งเพื่อให้เซิร์ฟเวอร์ของคุณไม่ได้ชะลอตัวลงนี้
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=แคชปรับใช้
     MemcachedNotAvailable=ไม่มีแคช applicative พบ คุณสามารถเพิ่มประสิทธิภาพการทำงานโดยการติดตั้งเซิร์ฟเวอร์แคช Memcached โมดูลและสามารถที่จะใช้เซิร์ฟเวอร์แคชนี้ <br> ข้อมูลเพิ่มเติมที่นี่ <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a> <br> โปรดทราบว่าจำนวนมากของผู้ให้บริการเว็บโฮสติ้งไม่ได้ให้เซิร์ฟเวอร์แคชดังกล่าว
     MemcachedModuleAvailableButNotSetup=โมดูล memcached สำหรับแคช applicative พบ แต่การตั้งค่าของโมดูลยังไม่สมบูรณ์
     MemcachedAvailableAndSetup=โมดูล memcached ทุ่มเทให้กับการใช้เซิร์ฟเวอร์ memcached ถูกเปิดใช้งาน
     OPCodeCache=แคช opcode
    -NoOPCodeCacheFound=ไม่มีแคช opcode พบ คุณอาจจะใช้แคช opcode อีกกว่า XCache หรือ eAccelerator (ดี) อาจจะเป็นคุณไม่ได้มีแคช opcode (ดีมาก)
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=แคช HTTP สำหรับทรัพยากรแบบคงที่ (CSS, img, JavaScript)
     FilesOfTypeCached=แฟ้ม s พิมพ์% จะถูกเก็บไว้โดยเซิร์ฟเวอร์ HTTP
     FilesOfTypeNotCached=แฟ้ม s พิมพ์% ไม่ได้เก็บไว้โดยเซิร์ฟเวอร์ HTTP
     FilesOfTypeCompressed=ไฟล์ประเภท% s จะถูกบีบอัดโดยเซิร์ฟเวอร์ HTTP
     FilesOfTypeNotCompressed=แฟ้ม s พิมพ์% ไม่ได้บีบอัดโดยเซิร์ฟเวอร์ HTTP
     CacheByServer=แคชโดยเซิร์ฟเวอร์
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=แคชเบราว์เซอร์
     CompressionOfResources=การบีบอัดของการตอบสนอง HTTP
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=ดังกล่าวตรวจสอบโดยอัตโนมัติเป็นไปไม่ได้กับเบราว์เซอร์ในปัจจุบัน
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=ผลิตภัณฑ์การติดตั้งโมดูล
     ServiceSetup=บริการติดตั้งโมดูล
     ProductServiceSetup=ผลิตภัณฑ์และบริการการติดตั้งโมดูล
     NumberOfProductShowInSelect=จำนวนสูงสุดของผลิตภัณฑ์ในคอมโบเลือกรายการ (0 = ไม่ จำกัด )
    -ViewProductDescInFormAbility=การแสดงของคำอธิบายผลิตภัณฑ์ในรูปแบบ (คำแนะนำเป็นอย่างอื่นเป็นป๊อปอัพ)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=เปิดใช้งานในผลิตภัณฑ์ / บริการที่แนบมาไฟล์ที่แท็บตัวเลือกที่จะผสานเอกสาร PDF สินค้ากับข้อเสนอในรูปแบบ PDF azur หากผลิตภัณฑ์ / บริการที่อยู่ในข้อเสนอ
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=นอกจากนี้ถ้าคุณมีจำนวนมากของผลิตภัณฑ์ (> 100 000) คุณสามารถเพิ่มความเร็วโดยการตั้งค่า PRODUCT_DONOTSEARCH_ANYWHERE คงเป็น 1 ใน Setup-> อื่น ๆ ค้นหาแล้วจะถูก จำกัด ในการเริ่มต้นของสตริง
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=ประเภทบาร์โค้ดเริ่มต้นที่จะใช้สำหรับผลิตภัณฑ์
     SetDefaultBarcodeTypeThirdParties=ประเภทบาร์โค้ดเริ่มต้นที่จะใช้สำหรับบุคคลที่สาม
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=ส่งติดตั้งโมดูล
     SendingsReceiptModel=รูปแบบการส่งใบเสร็จรับเงิน
     SendingsNumberingModules=sendings โมดูลจำนวน
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=ข้อความฟรีในการจัดส่ง
     ##### Deliveries #####
     DeliveryOrderNumberingModules=สินค้าที่ได้รับการส่งมอบโมดูลหมายเลข
    @@ -1515,18 +1529,18 @@ AdvancedEditor=ตกแต่ง
     ActivateFCKeditor=เปิดใช้งานขั้นสูงสำหรับบรรณาธิการ:
     FCKeditorForCompany=WYSIWIG สร้าง / ฉบับคำอธิบายองค์ประกอบและทราบ (ยกเว้นผลิตภัณฑ์ / บริการ)
     FCKeditorForProduct=สร้าง WYSIWIG / รุ่นของผลิตภัณฑ์ / คำอธิบายการบริการและการบันทึก
    -FCKeditorForProductDetails=WYSIWIG สร้าง / รุ่นของผลิตภัณฑ์เส้นรายละเอียดสำหรับทุกหน่วยงาน (ข้อเสนอการสั่งซื้อใบแจ้งหนี้ ฯลฯ ... ) <font class="warning">คำเตือน:. ใช้ตัวเลือกนี้สำหรับกรณีนี้อย่างจริงจังไม่แนะนำเท่าที่จะสามารถสร้างปัญหาที่มีตัวอักษรพิเศษและหน้า formating เมื่อมีการสร้างรูปแบบไฟล์ PDF ไฟล์</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= สร้าง WYSIWIG / รุ่นสำหรับ eMailings มวล (Tools-> ส่งอีเมล)
     FCKeditorForUserSignature=สร้าง WYSIWIG / ฉบับลายเซ็นของผู้ใช้
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=ประสบความสำเร็จในการเชื่อมต่อฐานข้อมูล แต่ไม่ได้ดูจะเป็นฐานข้อมูล OSCommerce (% s สำคัญไม่พบในตาราง% s)
    -OSCommerceTestOk=เชื่อมต่อกับเซิร์ฟเวอร์ '% s' ในฐานข้อมูล '% s' กับผู้ใช้ '% s' ประสบความสำเร็จ
    -OSCommerceTestKo1=เชื่อมต่อกับเซิร์ฟเวอร์ '% s' ประสบความสำเร็จ แต่ฐานข้อมูล '% s' ไม่สามารถเข้าถึงได้
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=เชื่อมต่อกับเซิร์ฟเวอร์ '% s' ในฐานข้อมูล '% s' กับผู้ใช้ '% s' ที่ประสบความสำเร็จ
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=เชื่อมต่อกับเซิร์ฟเวอร์ '% s' กับผู้ใช้ '% s' ล้มเหลว
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=ถ้าคุณใช้โมดูลจุดขาย (POS ให้โมดูลโดยค่าเริ่มต้นหรือโมดูลภายนอกอื่น) การตั้งค่านี้อาจได้รับการปฏิเสธโดยจุดขายของโมดูล จุดส่วนใหญ่ของโมดูลการขายได้รับการออกแบบเพื่อสร้างทันทีใบแจ้งหนี้และลดหุ้นโดยเริ่มต้นสิ่งที่เป็นตัวเลือกที่นี่ ดังนั้นถ้าคุณต้องการหรือไม่ที่จะมีการลดลงของหุ้นเมื่อลงทะเบียนขายจากจุดขายของคุณให้ตรวจสอบยังโมดูล POS ของคุณตั้งค่า
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=เมนูลบ
     Menus=เมนู
    @@ -1548,7 +1562,7 @@ DetailRight=สภาพที่จะแสดงเมนูสีเทา
     DetailLangs=ชื่อไฟล์ Lang สำหรับการแปลรหัสฉลาก
     DetailUser=ฝึกงาน / Extern / ทั้งหมด
     Target=เป้า
    -DetailTarget=เป้าหมายสำหรับการเชื่อมโยง (_ blank ด้านบนเปิดหน้าต่างใหม่)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=ระดับ (-1: เมนูด้านบน 0: เมนูส่วนหัว> 0 เมนูและเมนูย่อย)
     ModifMenu=เมนูการเปลี่ยนแปลง
     DeleteMenu=ลบรายการเมนู
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=ภาษีมูลค่าเพิ่มเนื่
     OptionVatDebitOptionDesc=ภาษีมูลค่าเพิ่มเนื่องจาก: <br> - ในการจัดส่งสินค้า (วันที่เราใช้ใบแจ้งหนี้) <br> - ในใบแจ้งหนี้ (เดบิต) สำหรับการให้บริการ
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=เวลาภาษีมูลค่าเพิ่ม exigibility โดยค่าเริ่มต้นเป็นไปตามตัวเลือกที่เลือก:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=ในการจัดส่ง
     OnPayment=ในการชำระเงิน
     OnInvoice=ในใบแจ้งหนี้
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=บัญชีซื้อ รหัส
     AgendaSetup=กิจกรรมและวาระการติดตั้งโมดูล
     PasswordTogetVCalExport=กุญแจสำคัญในการอนุญาตการเชื่อมโยงการส่งออก
     PastDelayVCalExport=อย่าส่งออกเหตุการณ์ที่มีอายุมากกว่า
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=ตั้งค่าโดยอัตโนมัติประเภทของเหตุการณ์นี้ในการกรองการค้นหาในมุมมองของวาระการประชุม
    -AGENDA_DEFAULT_FILTER_STATUS=ตั้งค่าโดยอัตโนมัติสถานะสำหรับการจัดกิจกรรมนี้ในการกรองการค้นหาในมุมมองของวาระการประชุม
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=ซึ่งแท็บที่คุณต้องการที่จะเปิดตามค่าเริ่มต้นเมื่อมีการเลือกวาระที่เมนู
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=คลิกเพื่อกดติดตั้งโมดูล
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=จุดขาย
     CashDeskSetup=จุดขายการติดตั้งโมดูล
    -CashDeskThirdPartyForSell=เริ่มต้นของบุคคลที่สามทั่วไปจะใช้สำหรับการขาย
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=บัญชีเริ่มต้นที่จะใช้ในการรับชำระเงินด้วยเงินสด
     CashDeskBankAccountForCheque= บัญชีเริ่มต้นที่จะใช้ในการรับชำระเงินด้วยเช็ค
     CashDeskBankAccountForCB= บัญชีเริ่มต้นที่จะใช้ในการรับชำระเงินด้วยบัตรเครดิต
    -CashDeskDoNotDecreaseStock=ปิดการใช้งานลดลงหุ้นเมื่อขายจะทำจากจุดขาย (ถ้ามี "ไม่" การลดลงของหุ้นที่จะทำสำหรับแต่ละขาย POS ทำได้จากสิ่งที่เป็นตัวเลือกที่ตั้งในสต็อกโมดูล)
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=และ จำกัด การบังคับคลังสินค้าที่จะใช้สำหรับการลดลงของหุ้น
    -StockDecreaseForPointOfSaleDisabled=หุ้นลดลงจากจุดขายปิดการใช้งาน
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=การลดลงของหุ้นใน POS เข้ากันไม่ได้กับการจัดการจำนวนมาก
    -CashDeskYouDidNotDisableStockDecease=คุณไม่ได้ปิดการใช้งานลดลงหุ้นเมื่อมีการขายจากจุดขายของ ดังนั้นคลังสินค้าจะต้อง
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark ติดตั้งโมดูล
    -BookmarkDesc=โมดูลนี้จะช่วยให้คุณสามารถจัดการบุ๊คมาร์ค นอกจากนี้คุณยังสามารถเพิ่มทางลัดไปยังหน้าเว็บใด ๆ Dolibarr หรือเว็บไซต์ externale บนเมนูด้านซ้ายของคุณ
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=จำนวนสูงสุดของบุ๊คมาร์คที่จะแสดงในเมนูด้านซ้าย
     ##### WebServices #####
     WebServicesSetup=webservices ติดตั้งโมดูล
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=หลาย บริษัท ติดตั้งโมดูล
     ##### Suppliers #####
     SuppliersSetup=ผู้ผลิตติดตั้งโมดูล
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=ผู้ผลิตใบแจ้งหนี้เลขรุ่น
     IfSetToYesDontForgetPermission=หากการตั้งค่าใช่ไม่ลืมที่จะให้สิทธิ์กับกลุ่มหรือผู้ใช้ที่ได้รับอนุญาตให้ได้รับการอนุมัติที่สอง
    @@ -1654,7 +1668,7 @@ ProjectsSetup=โครงการติดตั้งโมดูล
     ProjectsModelModule=โครงการรายงานรูปแบบเอกสาร
     TasksNumberingModules=งานจำนวนโมดูล
     TaskModelModule=รายงานงานรูปแบบเอกสาร
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=คุณอาจพบ
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=รายการของการแจ้งเตือนคงที่
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=ธรณีประตู
     BackupDumpWizard=ตัวช่วยสร้างการสร้างแฟ้มการถ่ายโอนการสำรองฐานข้อมูล
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=ติดตั้งโมดูล
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=เน้นเส้นตารางเมื่อเลื่อนเมาส์ผ่านไป
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=สีพื้นหลังสำหรับแ
     MinimumNoticePeriod=ระยะเวลาการแจ้งให้ทราบล่วงหน้าขั้นต่ำ (ตามคำขอลาของคุณจะต้องทำก่อนการหน่วงเวลานี้)
     NbAddedAutomatically=จำนวนวันที่เพิ่มเข้าไปในเคาน์เตอร์ของผู้ใช้ (โดยอัตโนมัติ) ในแต่ละเดือน
     EnterAnyCode=ฟิลด์นี้มีการอ้างอิงในการระบุสาย ป้อนค่าที่คุณเลือกได้ แต่ไม่มีตัวอักษรพิเศษ
    -UnicodeCurrency=ป้อนที่นี่ระหว่างวงเล็บรายการจำนวนไบต์ที่เป็นตัวแทนของสัญลักษณ์สกุลเงิน สำหรับ exemple: ราคา $ ป้อน [36] - ราคา $ บราซิลจริง R [82,36] - สำหรับ€ป้อน [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=ตำแหน่งของเส้นเป็นรายการคำสั่งผสม
     SellTaxRate=อัตราภาษีการขาย
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=เมื่อคุณสร้างโอกาสที่คุณจะกำหนดจำนวนเงินประมาณของโครงการ / นำ ตามสถานะของโอกาสที่เงินจำนวนนี้อาจจะ multiplicated โดยอัตรานี้ในการประเมินปริมาณทั่วโลกโอกาสของคุณอาจสร้าง ค่าร้อยละ (ระหว่าง 0 และ 100)
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=บันทึกแม่แบบนี้มีความมุ่งมั่นที่องค์ประกอบ
     TypeOfTemplate=ประเภทของแม่แบบ
    -TemplateIsVisibleByOwnerOnly=แม่แบบสามารถมองเห็นได้โดยเจ้าของเท่านั้น
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=แก้ไขเขตเวลา
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=ไปรษณีย์
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/th_TH/banks.lang b/htdocs/langs/th_TH/banks.lang
    index e048ac8042b..e3ae16cdab9 100644
    --- a/htdocs/langs/th_TH/banks.lang
    +++ b/htdocs/langs/th_TH/banks.lang
    @@ -7,7 +7,7 @@ BankName=ชื่อธนาคาร
     FinancialAccount=บัญชี
     BankAccount=บัญชีเงินฝาก
     BankAccounts=บัญชีเงินฝากธนาคาร
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=แสดงบัญชี
     AccountRef=อ้างอิงบัญชีการเงิน
     AccountLabel=ป้ายชื่อบัญชีการเงิน
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=ที่อยู่บัญชี
     BankAccountCountry=ประเทศบัญชี
     BankAccountOwner=ชื่อเจ้าของบัญชี
     BankAccountOwnerAddress=ที่อยู่เจ้าของบัญชี
    -RIBControlError=ตรวจสอบความสมบูรณ์ของค่าล้มเหลว ซึ่งหมายความว่าข้อมูลเลขที่บัญชีนี้จะไม่ได้สมบูรณ์หรือไม่ถูกต้อง (ตรวจสอบประเทศตัวเลขและ IBAN)
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=สร้างบัญชี
     NewBankAccount=บัญชีใหม่
     NewFinancialAccount=บัญชีทางการเงินใหม่
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=สามารถคืนดี
     Conciliate=คืนดี
     Conciliation=การประนีประนอม
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=รวมบัญชีปิด
     OnlyOpenedAccount=เปิดเฉพาะบัญชี
    @@ -104,7 +105,7 @@ SocialContributionPayment=สังคม / ชำระภาษีการค
     BankTransfer=โอนเงินผ่านธนาคาร
     BankTransfers=ธนาคารโอน
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=จาก
     TransferTo=ไปยัง
     TransferFromToDone=<b>การถ่ายโอนจาก% s% s% s%</b> s ได้รับการบันทึก
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=เช็คธนาคาร
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=แสดงการตรวจสอบการรับเงินฝาก
    -NumberOfCheques=nb ของการตรวจสอบ
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=กลับไปที่บัญชี
     ShowAllAccounts=แสดงสำหรับบัญชีทั้งหมด
    -FutureTransaction=การทำธุรกรรมในอนาคต วิธีที่จะประนีประนอมไม่มี
    -SelectChequeTransactionAndGenerate=เลือก / การตรวจสอบตัวกรองที่จะรวมเข้าไปในการรับฝากเช็คและคลิกที่ "สร้าง"
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=เลือกบัญชีธนาคารที่เกี่ยวข้องกับการเจรจาต่อรอง ใช้ค่าตัวเลขจัดเรียง: YYYYMM หรือ YYYYMMDD
     EventualyAddCategory=ในที่สุดระบุหมวดหมู่ในการที่จะจำแนกบันทึก
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/th_TH/bills.lang b/htdocs/langs/th_TH/bills.lang
    index f9f077e12c7..a5bcdd1a4af 100644
    --- a/htdocs/langs/th_TH/bills.lang
    +++ b/htdocs/langs/th_TH/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=ใบแจ้งหนี้ Proforma
     InvoiceProFormaDesc=<b>ใบแจ้งหนี้ Proforma</b> คือภาพของใบแจ้งหนี้ที่แท้จริง แต่มีค่าไม่มีบัญชี
     InvoiceReplacement=เปลี่ยนใบแจ้งหนี้
     InvoiceReplacementAsk=ใบแจ้งหนี้แทนใบแจ้งหนี้
    -InvoiceReplacementDesc=<b>เปลี่ยนใบแจ้งหนี้จะใช้ในการยกเลิกและแทนที่สมบูรณ์ใบแจ้งหนี้ที่มีการชำระเงินไม่รับแล้ว</b> <br><br> หมายเหตุ: เฉพาะใบแจ้งหนี้ที่มีการชำระเงินไม่มีก็สามารถที่จะเข้ามาแทนที่ หากใบแจ้งหนี้ที่จะเปลี่ยนยังไม่ปิดก็จะถูกปิดโดยอัตโนมัติเพื่อให้ 'ละทิ้ง'
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=ใบลดหนี้
     InvoiceAvoirAsk=ใบลดหนี้ใบแจ้งหนี้ที่ถูกต้อง
    -InvoiceAvoirDesc=<b>ใบลดหนี้ใบแจ้งหนี้เป็นเชิงลบที่ใช้ในการแก้ปัญหาความจริงที่ว่าใบแจ้งหนี้ที่มีจำนวนเงินที่แตกต่างกว่าจำนวนเงินที่จ่ายจริง</b> (เพราะลูกค้าจ่ายเงินมากเกินไปจากข้อผิดพลาดหรือจะไม่ได้ชำระเงินสมบูรณ์ตั้งแต่เขากลับผลิตภัณฑ์บางอย่างเช่น)
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=สร้างหมายเหตุเครดิตที่มีเส้นใบแจ้งหนี้จากแหล่งกำเนิด
     invoiceAvoirWithPaymentRestAmount=สร้างหนี้ที่ค้างชำระที่เหลืออยู่กับใบแจ้งหนี้ต้นกำเนิด
     invoiceAvoirLineWithPaymentRestAmount=หมายเหตุเครดิตสำหรับจำนวนเงินที่เหลือยังไม่ได้ชำระ
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=จ่ายคืน
     DeletePayment=ลบการชำระเงิน
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=การชำระเงินที่ผู้ซื้อผู้ขาย
     ReceivedPayments=การชำระเงินที่ได้รับ
     ReceivedCustomersPayments=การชำระเงินที่ได้รับจากลูกค้า
    -PayedSuppliersPayments=การชำระเงิน payed กับซัพพลายเออร์
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=การชำระเงินของลูกค้าที่ได้รับการตรวจสอบ
     PaymentsReportsForYear=รายงานการชำระเงินสำหรับ% s
     PaymentsReports=รายงานการชำระเงิน
    @@ -91,8 +91,8 @@ PaymentConditionsShort=เงื่อนไขการชำระเงิน
     PaymentAmount=จำนวนเงินที่ชำระ
     ValidatePayment=ตรวจสอบการชำระเงิน
     PaymentHigherThanReminderToPay=การชำระเงินที่สูงกว่าการแจ้งเตือนที่จะต้องจ่าย
    -HelpPaymentHigherThanReminderToPay=ความสนใจจำนวนเงินที่ชำระของหนึ่งหรือมากกว่าค่าใช้จ่ายที่สูงกว่าส่วนที่เหลือจะจ่าย <br> แก้ไขรายการของคุณมิฉะนั้นยืนยันและคิดเกี่ยวกับการสร้างใบลดหนี้ส่วนเกินที่ได้รับสำหรับแต่ละใบแจ้งหนี้ชำระเงินส่วนเกิน
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=จำแนก 'ชำระเงิน'
     ClassifyPaidPartially=จำแนก 'ชำระบางส่วน'
     ClassifyCanceled=จำแนก 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=ปิดให้บริการ (ค้างชำ
     BillStatusClosedPaidPartially=การชำระเงิน (บางส่วน)
     BillShortStatusDraft=ร่าง
     BillShortStatusPaid=ต้องจ่าย
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=ต้องจ่าย
     BillShortStatusCanceled=ถูกปล่อยปละละเลย
     BillShortStatusValidated=ผ่านการตรวจสอบ
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=ปิด
     BillShortStatusClosedPaidPartially=การชำระเงิน (บางส่วน)
     PaymentStatusToValidShort=ในการตรวจสอบ
    -ErrorVATIntraNotConfigured=หมายเลข VAT Intracommunautary ยังไม่ได้กำหนดไว้
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=ไม่มีโหมดการชำระเงินค่าเริ่มต้นที่กำหนดไว้ ไปที่ใบแจ้งหนี้การติดตั้งโมดูลการแก้ไขปัญหานี้
     ErrorCreateBankAccount=สร้างบัญชีธนาคารแล้วไปที่แผงติดตั้งโมดูลใบแจ้งหนี้ในการกำหนดรูปแบบการชำระเงิน
     ErrorBillNotFound=ใบแจ้งหนี้% s ไม่ได้อยู่
    -ErrorInvoiceAlreadyReplaced=ข้อผิดพลาดที่คุณพยายามที่จะตรวจสอบใบแจ้งหนี้ที่จะเปลี่ยนใบแจ้งหนี้% s แต่คนนี้ได้ถูกแทนที่ด้วยใบแจ้งหนี้% s
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=ข้อผิดพลาดลดที่ใช้แล้ว
     ErrorInvoiceAvoirMustBeNegative=ข้อผิดพลาดในใบแจ้งหนี้ที่ถูกต้องจะต้องมีมูลค่าติดลบ
     ErrorInvoiceOfThisTypeMustBePositive=ข้อผิดพลาดประเภทของใบแจ้งหนี้นี้จะต้องมีจำนวนเงินที่เป็นบวก
     ErrorCantCancelIfReplacementInvoiceNotValidated=ข้อผิดพลาดที่ไม่สามารถยกเลิกใบแจ้งหนี้ที่ได้รับการแทนที่ด้วยใบแจ้งหนี้อื่นที่ยังคงอยู่ในสถานะร่าง
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=จาก
     BillTo=ไปยัง
     ActionsOnBill=การดำเนินการในใบแจ้งหนี้
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=ที่เหลือยังไม่ได้ชำระ <b>(% s% s)</b> เป็นส่วนลดได้รับเนื่องจากการชำระเงินก่อนที่จะถูกสร้างขึ้นมาในระยะ ผมระเบียบภาษีมูลค่าเพิ่มที่มีใบลดหนี้
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=ที่เหลือยังไม่ได้ชำระ <b>(% s% s)</b> เป็นส่วนลดได้รับเนื่องจากการชำระเงินก่อนที่จะถูกสร้างขึ้นมาในระยะ ฉันยอมรับที่จะสูญเสียภาษีมูลค่าเพิ่มในส่วนลดนี้
     ConfirmClassifyPaidPartiallyReasonDiscountVat=ที่เหลือยังไม่ได้ชำระ <b>(% s% s)</b> เป็นส่วนลดได้รับเนื่องจากการชำระเงินก่อนที่จะถูกสร้างขึ้นมาในระยะ ฉันกู้คืนภาษีมูลค่าเพิ่มส่วนลดนี้โดยไม่มีใบลดหนี้
     ConfirmClassifyPaidPartiallyReasonBadCustomer=ลูกค้าที่ไม่ดี
     ConfirmClassifyPaidPartiallyReasonProductReturned=ผลิตภัณฑ์กลับมาบางส่วน
     ConfirmClassifyPaidPartiallyReasonOther=จำนวนเงินที่ถูกทอดทิ้งด้วยเหตุผลอื่น ๆ
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=ทางเลือกนี้เป็นไปได้ถ้าใบแจ้งหนี้ของคุณได้รับการให้บริการที่มีความคิดเห็นที่เหมาะสม (ตัวอย่าง«เฉพาะภาษีที่สอดคล้องกับราคาที่ได้รับการชำระเงินจริงให้สิทธิในการหัก»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=ในบางประเทศทางเลือกนี้อาจเป็นไปได้เฉพาะในกรณีที่ใบแจ้งหนี้ของคุณมีบันทึกที่ถูกต้อง
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=ใช้ทางเลือกนี้ถ้าอื่น ๆ ไม่เหมาะกับ
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>ลูกค้าที่ร้ายก็คือลูกค้าที่ปฏิเสธที่จะจ่ายหนี้ของเขา</b>
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=ทางเลือกนี้จะใช้เมื่อการชำระเงินที่ไม่สมบูรณ์เพราะบางส่วนของผลิตภัณฑ์ที่ถูกส่งกลับ
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=ใช้ทางเลือกนี้ถ้าอื่น ๆ ทั้งหมดไม่เหมาะเช่นในสถานการณ์ต่อไปนี้: <br> - การชำระเงินไม่สมบูรณ์เพราะผลิตภัณฑ์บางคนถูกส่งกลับ <br> - จำนวนเงินที่อ้างว่าสำคัญมากเกินไปเพราะส่วนลดที่ถูกลืม <br> ในทุกกรณีจำนวนเงินที่มากกว่าที่อ้างว่าจะต้องได้รับการแก้ไขในระบบบัญชีโดยการสร้างใบลดหนี้
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=อื่น ๆ
     ConfirmClassifyAbandonReasonOtherDesc=ทางเลือกนี้จะถูกนำมาใช้ในกรณีอื่น ๆ ตัวอย่างเช่นเพราะคุณวางแผนที่จะสร้างใบแจ้งหนี้แทน
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=ตรวจสอบใบแจ้งหนี้
     UnvalidateBill=ใบแจ้งหนี้ Unvalidate
    -NumberOfBills=nb ของใบแจ้งหนี้
    -NumberOfBillsByMonth=nb ของใบแจ้งหนี้เดือน
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=จำนวนเงินของใบแจ้งหนี้
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=จำนวนเงินของใบแจ้งหนี้ตามเดือน (สุทธิจากภาษี)
     ShowSocialContribution=แสดงทางสังคม / ภาษีการคลัง
     ShowBill=แสดงใบแจ้งหนี้
    @@ -260,9 +262,9 @@ Repeatables=แม่แบบ
     ChangeIntoRepeatableInvoice=แปลงเป็นแม่แบบใบแจ้งหนี้
     CreateRepeatableInvoice=สร้างแม่แบบใบแจ้งหนี้
     CreateFromRepeatableInvoice=สร้างจากแม่แบบใบแจ้งหนี้
    -CustomersInvoicesAndInvoiceLines=ใบแจ้งหนี้ของลูกค้าและเส้นใบแจ้งหนี้ของ
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=ใบแจ้งหนี้ของลูกค้าและการชำระเงิน
    -ExportDataset_invoice_1=รายการใบแจ้งหนี้ของลูกค้าและเส้นใบแจ้งหนี้ของ
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=ใบแจ้งหนี้ของลูกค้าและการชำระเงิน
     ProformaBill=Proforma บิล:
     Reduction=การลดลง
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=ที่อยู่บิล
    -HelpEscompte=ส่วนลดนี้จะได้รับส่วนลดพิเศษให้กับลูกค้าเนื่องจากการชำระเงินที่ถูกสร้างขึ้นมาก่อนวาระ
    -HelpAbandonBadCustomer=เงินจำนวนนี้ถูกทิ้งร้าง (ลูกค้าบอกว่าจะเป็นลูกค้าที่ไม่ดี) และถือเป็นหลวมพิเศษ
    -HelpAbandonOther=เงินจำนวนนี้ถูกทิ้งร้างเพราะมันเป็นข้อผิดพลาด (ลูกค้าที่ไม่ถูกต้องหรือใบแจ้งหนี้แทนที่ด้วยอื่น ๆ เป็นต้น)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=สังคม / รหัสชำระภาษีการคลัง
     PaymentId=รหัสการชำระเงิน
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=ใบแจ้งหนี้ไม่ได้เลือ
     CloneInvoice=ใบแจ้งหนี้โคลน
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=การดำเนินการปิดใช้งานเนื่องจากใบแจ้งหนี้ที่ได้รับการแทนที่
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=nb ของการชำระเงิน
    +DescTaxAndDividendsArea=พื้นที่บริเวณนี้จะนำเสนอบทสรุปของการชำระเงินสำหรับค่าใช้จ่ายพิเศษ บันทึกเท่านั้นที่มีการชำระเงินในช่วงปีคงที่จะรวมอยู่ที่นี่
    +NbOfPayments=No. of payments
     SplitDiscount=ส่วนลดในสองแยก
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=ปริมาณการป้อนข้อมูลสำหรับแต่ละสองส่วน
    -TotalOfTwoDiscountMustEqualsOriginal=รวมของทั้งสองส่วนลดใหม่จะต้องเท่ากับจำนวนส่วนลดเดิม
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=ใบแจ้งหนี้ที่เกี่ยวข้อง
     RelatedBills=ใบแจ้งหนี้ที่เกี่ยวข้อง
     RelatedCustomerInvoices=ใบแจ้งหนี้ของลูกค้าที่เกี่ยวข้อง
     RelatedSupplierInvoices=ใบแจ้งหนี้ผู้จัดจำหน่ายที่เกี่ยวข้อง
     LatestRelatedBill=ใบแจ้งหนี้ที่เกี่ยวข้องล่าสุด
    -WarningBillExist=คำเตือนหนึ่งหรือใบแจ้งหนี้มากขึ้นอยู่แล้ว
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=ผสานเครื่องมือรูปแบบไฟล์ PDF
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=ตรวจสอบ
     PaymentTypeShortCHQ=ตรวจสอบ
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=ในการชำระเงินสาย
    -PaymentTypeShortVAD=ในการชำระเงินสาย
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=ร่าง
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=ธนาคารรายละเอียด
     BankCode=รหัสธนาคาร
    -DeskCode=รหัสโต๊ะ
    +DeskCode=Office code
     BankAccountNumber=เลขที่บัญชี
    -BankAccountNumberKey=สำคัญ
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN จำนวน
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=BIC / จำนวน SWIFT
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=การชำระเงินโดยก
     VATIsNotUsedForInvoice=* ไม่รวมภาษีมูลค่าเพิ่มบังคับศิลปะ 293B ซีจี
     LawApplicationPart1=โดยการใช้กฎหมายของ 80.335 12/05/80
     LawApplicationPart2=สินค้าที่ยังคงเป็นทรัพย์สินของ
    -LawApplicationPart3=ผู้ขายจนกว่า cashing สมบูรณ์ของ
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=ราคาของพวกเขา
     LimitedLiabilityCompanyCapital=SARL กับเมืองหลวงของ
     UseLine=ใช้
    @@ -463,7 +465,7 @@ Cheques=การตรวจสอบ
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=ใช้ที่อยู่ติดต่อการเรียกเก็บเงินลูกค้าแทนการอยู่ของบุคคลที่สามในฐานะผู้รับใบแจ้งหนี้
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=แสดงใบแจ้งหนี้ที่ค้างชำระทั้งหมด
     ShowUnpaidLateOnly=แสดงใบแจ้งหนี้ที่ค้างชำระปลายเท่านั้น
     PaymentInvoiceRef=ใบแจ้งหนี้การชำระเงิน% s
    @@ -474,21 +476,22 @@ Reported=ล่าช้า
     DisabledBecausePayments=เป็นไปไม่ได้เนื่องจากมีการชำระเงินบางส่วน
     CantRemovePaymentWithOneInvoicePaid=ไม่สามารถลบการชำระเงินเนื่องจากมีอย่างน้อยหนึ่งใบแจ้งหนี้แยกจ่าย
     ExpectedToPay=การชำระเงินที่คาดว่าจะ
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=การชำระเงินโดยการชำระเงินนี้
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=จำแนก "ชำระเงิน" ทั้งหมดบันทึกเครดิตการชำระเงินทั้งหมดกลับ
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=ใบแจ้งหนี้ทั้งหมดที่มียังคงไม่มีที่จะจ่ายจะปิดโดยอัตโนมัติเพื่อให้สถานะ "ชำระเงิน"
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=จ่ายเงิน
     ToMakePaymentBack=คืนทุน
     ListOfYourUnpaidInvoices=รายการของใบแจ้งหนี้ที่ค้างชำระ
     NoteListOfYourUnpaidInvoices=หมายเหตุ: รายการนี​​้จะมีใบแจ้งหนี้เฉพาะบุคคลที่สามคุณจะเชื่อมโยงกับการเป็นตัวแทนขาย
     RevenueStamp=อากรแสตมป์
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=ใบแจ้งหนี้แม่แบบ PDF Crabe แม่แบบใบแจ้งหนี้ฉบับสมบูรณ์ (แนะนำ Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=จำนวนกลับมาพร้อมกับรูปแบบ% syymm-nnnn สำหรับใบแจ้งหนี้และมาตรฐาน% syymm-nnnn สำหรับการบันทึกเครดิตที่ yy เป็นปีเป็นเดือนมิลลิเมตรและ nnnn เป็นลำดับที่มีการหยุดพักและกลับไปที่ 0 ไม่มี
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/th_TH/cashdesk.lang b/htdocs/langs/th_TH/cashdesk.lang
    index 589abbb8085..782138c3542 100644
    --- a/htdocs/langs/th_TH/cashdesk.lang
    +++ b/htdocs/langs/th_TH/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=แสดง บริษัท
     ShowStock=แสดงคลังสินค้า
     DeleteArticle=คลิกเพื่อลบบทความนี้
     FilterRefOrLabelOrBC=ค้นหา (Ref / ป้าย)
    -UserNeedPermissionToEditStockToUsePos=คุณถามว่าจะลดลงหุ้นในการสร้างใบแจ้งหนี้เพื่อให้ผู้ใช้ที่ใช้ POS จำเป็นต้องได้รับอนุญาตให้แก้ไขหุ้น
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=จุดขาย
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/th_TH/commercial.lang b/htdocs/langs/th_TH/commercial.lang
    index 9ac93e3d89f..bfebbc5692c 100644
    --- a/htdocs/langs/th_TH/commercial.lang
    +++ b/htdocs/langs/th_TH/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=โทรศัพท์
     ActionAC_FAX=ส่งแฟ็กซ์
     ActionAC_PROP=ส่งข้อเสนอทางไปรษณีย์
     ActionAC_EMAIL=ส่งอีเมล์
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=การประชุม
     ActionAC_INT=การแทรกแซงในเว็บไซต์
     ActionAC_FAC=ส่งใบแจ้งหนี้ลูกค้าทางไปรษณีย์
    @@ -72,8 +73,8 @@ StatusProsp=สถานะ Prospect
     DraftPropals=ข้อเสนอในเชิงพาณิชย์ร่าง
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/th_TH/companies.lang b/htdocs/langs/th_TH/companies.lang
    index df60e37a159..9e4f333cedb 100644
    --- a/htdocs/langs/th_TH/companies.lang
    +++ b/htdocs/langs/th_TH/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=เลือกบุคคลที่สาม
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=ลบรายชื่อ / ที่อยู่
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=บุคคลที่สามใหม่
    -MenuNewCustomer=ลูกค้าใหม่
    -MenuNewProspect=โอกาสใหม่
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=ใหม่เอกชน
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=สร้างของบุคคลที่สาม
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=ติดต่อบุคคลที่สาม / ที
     Company=บริษัท
     CompanyName=ชื่อ บริษัท
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=บริษัท
    -CountryIsInEEC=ประเทศที่อยู่ภายในประชาคมเศรษฐกิจยุโรป
    -ThirdPartyName=ชื่อของบุคคลที่สาม
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=บุคคลที่สาม
    -ThirdParties=บุคคลที่สาม
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=ลูกค้าเป้าหมาย
     ThirdPartyProspectsStats=ลูกค้าเป้าหมาย
     ThirdPartyCustomers=ลูกค้า
     ThirdPartyCustomersStats=ลูกค้า
     ThirdPartyCustomersWithIdProf12=ลูกค้าที่มี% s% s หรือ
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=ประเภทของบุคคลที่สาม
    +ThirdPartyType=Type of company
     Individual=เอกชน
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=บริษัท แม่
     Subsidiaries=บริษัท ย่อย
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=รหัสไปรษณีย์
     Town=เมือง
     Web=เว็บ
     Poste= ตำแหน่ง
    -DefaultLang=ภาษาโดยปริยาย
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=ข้อเสนอ
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=ไวยากรณ์ที่ถูกต้อง
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=<b>ลูกค้ารายนี้มีส่
     CompanyHasNoRelativeDiscount=ลูกค้ารายนี้ไม่เคยมีใครส่วนลดญาติโดยค่าเริ่มต้น
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=<b>ลูกค้ารายนี้ยังคงมีการบันทึกเครดิตสำหรับ% s%</b> s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=ไม่
    -Supplier=ผู้ผลิต
    +Supplier=Vendor
     AddContact=สร้างรายชื่อผู้ติดต่อ
     AddContactAddress=สร้างการติดต่อ / ที่อยู่
     EditContact=ติดต่อแก้ไข
    @@ -303,22 +303,22 @@ AddThirdParty=สร้างของบุคคลที่สาม
     DeleteACompany=ลบ บริษัท
     PersonalInformations=ข้อมูลส่วนบุคคล
     AccountancyCode=บัญชีการบัญชี
    -CustomerCode=รหัสลูกค้า
    -SupplierCode=Vendor code
    -CustomerCodeShort=รหัสลูกค้า
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=รหัสลูกค้าไม่ซ้ำกันสำหรับลูกค้าทุกท่าน
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=จำเป็นต้องใช้ถ้าบุคคลที่สามเป็นลูกค้าหรือโอกาส
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=ตั้งแต่วันที่ควบคุมโดยโมดูล
    -ThisIsModuleRules=นี่คือกฎระเบียบสำหรับโมดูลนี้
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect ที่จะติดต่อ
     CompanyDeleted=บริษัท "% s" ลบออกจากฐานข้อมูล
     ListOfContacts=รายชื่อผู้ติดต่อ / ที่อยู่
    -ListOfContactsAddresses=รายชื่อผู้ติดต่อ / adresses
    -ListOfThirdParties=รายชื่อของบุคคลที่สาม
    -ShowCompany=Show third party
    +ListOfContactsAddresses=รายชื่อผู้ติดต่อ / ที่อยู่
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=แสดงรายชื่อผู้ติดต่อ
     ContactsAllShort=ทั้งหมด (ไม่กรอง)
     ContactType=ประเภทติดต่อ
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=ติดต่อนี้ไม่ได้ติด
     NoContactForAnyContract=การติดต่อที่ไม่สามารถติดต่อสำหรับการทำสัญญาใด ๆ
     NoContactForAnyInvoice=ติดต่อนี้ไม่ได้ติดต่อสำหรับใบแจ้งหนี้ใด ๆ
     NewContact=รายชื่อใหม่
    -NewContactAddress=ติดต่อใหม่ / ที่อยู่
    +NewContactAddress=New Contact/Address
     MyContacts=รายชื่อของฉัน
     Capital=เมืองหลวง
     CapitalOf=เมืองหลวงของ% s
     EditCompany=แก้ไข บริษัท
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=ตรวจสอบ
    -VATIntraCheckDesc=<b>การเชื่อมโยง% s</b> ช่วยให้การขอให้ตรวจสอบการให้บริการภาษีมูลค่าเพิ่มยุโรป อินเทอร์เน็ตจากเซิร์ฟเวอร์ภายนอกเป็นสิ่งจำเป็นสำหรับบริการนี​​้ในการทำงาน
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=ตรวจสอบ Intracomunnautary ภาษีมูลค่าเพิ่มในเว็บไซต์ของคณะกรรมการยุโรป
    -VATIntraManualCheck=นอกจากนี้คุณยังสามารถตรวจสอบด้วยตนเองจากเว็บไซต์ยุโรป <a href="%s" target="_blank">% s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=ตรวจสอบไม่ได้ บริการตรวจสอบไม่ได้ให้โดยรัฐสมาชิก (% s)
    -NorProspectNorCustomer=หรือโอกาสหรือลูกค้า
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=บุคลากร
     ProspectLevelShort=ที่อาจเกิดขึ้น
     ProspectLevel=Prospect ที่มีศักยภาพ
    @@ -387,12 +387,12 @@ ExportCardToFormat=การ์ดส่งออกไปยังรูปแ
     ContactNotLinkedToCompany=ติดต่อไม่ได้เชื่อมโยงกับบุคคลที่สาม
     DolibarrLogin=เข้าสู่ระบบ Dolibarr
     NoDolibarrAccess=ไม่สามารถเข้าถึง Dolibarr
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=รายชื่อและคุณสมบัติ
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=ระดับราคา
     DeliveryAddress=ที่อยู่จัดส่ง
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=ลบไฟล์
     ConfirmDeleteFile=คุณแน่ใจว่าคุณต้องการที่จะลบไฟล์นี้หรือไม่?
     AllocateCommercial=Assigned to sales representative
     Organization=องค์กร
    -FiscalYearInformation=ข้อมูลเกี่ยวกับปีงบประมาณ
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=เริ่มต้นเดือนของปีงบประมาณ
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=รายชื่อลูกค้าเป้าหมาย
    -ListCustomersShort=รายชื่อของลูกค้า
    -ThirdPartiesArea=บุคคลที่สามและพื้นที่ติดต่อ
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=รวมของบุคคลที่สามที่ไม่ซ้ำกัน
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=เปิด
     ActivityCeased=ปิด
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=การเรียกเก็บเงินในป
     OutstandingBill=แม็กซ์ สำหรับการเรียกเก็บเงินที่โดดเด่น
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=รหัสที่เป็นอิสระ รหัสนี้สามารถแก้ไขได้ในเวลาใดก็ได้
     ManagingDirectors=ผู้จัดการ (s) ชื่อ (ซีอีโอผู้อำนวยการประธาน ... )
     MergeOriginThirdparty=ซ้ำของบุคคลที่สาม (บุคคลที่สามต้องการลบ)
     MergeThirdparties=ผสานบุคคลที่สาม
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/th_TH/dict.lang b/htdocs/langs/th_TH/dict.lang
    index 34a2fe908ee..f264c019a8b 100644
    --- a/htdocs/langs/th_TH/dict.lang
    +++ b/htdocs/langs/th_TH/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=ได้ยินและเกาะ McDonald
     CountryVA=พระเห็น (นครรัฐวาติกัน)
     CountryHN=ฮอนดูรัส
     CountryHK=ฮ่องกง
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=อินเดีย
     CountryID=อินโดนีเซีย
     CountryIR=อิหร่าน
    @@ -131,7 +131,7 @@ CountryKI=ประเทศคิริบาส
     CountryKP=เกาหลีเหนือ
     CountryKR=เกาหลีใต้
     CountryKW=คูเวต
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=ลาว
     CountryLV=ลัตเวีย
     CountryLB=ประเทศเลบานอน
    @@ -160,7 +160,7 @@ CountryMD=มอลโดวา
     CountryMN=ประเทศมองโกเลีย
     CountryMS=Monserrat
     CountryMZ=โมซัมบิก
    -CountryMM=Birmania (พม่า)
    +CountryMM=Myanmar (Burma)
     CountryNA=นามิเบีย
     CountryNR=นาอูรู
     CountryNP=เนปาล
    @@ -223,7 +223,7 @@ CountryTO=ตองกา
     CountryTT=ตรินิแดดและโตเบโก
     CountryTR=ตุรกี
     CountryTM=เติร์กเมนิสถาน
    -CountryTC=เติกส์และหมู่เกาะ Cailos
    +CountryTC=Turks and Caicos Islands
     CountryTV=ตูวาลู
     CountryUG=ยูกันดา
     CountryUA=ยูเครน
    @@ -277,7 +277,7 @@ CurrencySingMGA=มาลากาซี
     CurrencyMUR=รูปีมอริเชียส
     CurrencySingMUR=รูปีมอริเชียส
     CurrencyNOK=นอร์เวย์ Krones
    -CurrencySingNOK=โครนนอร์เวย์
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=ดินาร์ตูนิเซีย
     CurrencySingTND=ดีนาร์ตูนิเซีย
     CurrencyUSD=สกุลเงินดอลลาร์สหรัฐ
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=มุขบาฐ
     DemandReasonTypeSRC_PARTNER=หุ้นส่วน
     DemandReasonTypeSRC_EMPLOYEE=ลูกจ้าง
     DemandReasonTypeSRC_SPONSORING=การประกัน
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=รูปแบบ 4A0
     PaperFormatEU2A0=รูปแบบ 2A0
    diff --git a/htdocs/langs/th_TH/ecm.lang b/htdocs/langs/th_TH/ecm.lang
    index 42b0f14ca89..49c71627980 100644
    --- a/htdocs/langs/th_TH/ecm.lang
    +++ b/htdocs/langs/th_TH/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=nb ของเอกสารในไดเรกทอรี
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=สารบบ
     ECMSectionManual=สมุดคู่มือ
     ECMSectionAuto=ไดเรกทอรีอัตโนมัติ
    @@ -34,6 +34,8 @@ ECMDocsByProjects=เอกสารที่เชื่อมโยงกั
     ECMDocsByUsers=เอกสารที่เชื่อมโยงกับผู้ใช้งาน
     ECMDocsByInterventions=เอกสารที่เชื่อมโยงกับการแทรกแซง
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=ไดเรกทอรีไม่มีที่สร้างขึ้น
     ShowECMSection=ไดเรกทอรีแสดง
     DeleteSection=ลบไดเรกทอรี
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/th_TH/errors.lang b/htdocs/langs/th_TH/errors.lang
    index 3a60f60475c..b1b081a8290 100644
    --- a/htdocs/langs/th_TH/errors.lang
    +++ b/htdocs/langs/th_TH/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=ค่า '% s' มีรูปแบบวันที่ไ
     ErrorWrongDate=วันที่ไม่ถูกต้อง!
     ErrorFailedToWriteInDir=ไม่สามารถเขียนในไดเรกทอรี% s
     ErrorFoundBadEmailInFile=พบไวยากรณ์อีเมลไม่ถูกต้องสำหรับ% s บรรทัดในไฟล์ (เช่นสาย% s ด้วยอีเมล =% s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=ฟิลด์ที่จำเป็นบางคนไม่เต็ม
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=ล้มเหลวในการสร้างไดเรกทอรี ตรวจสอบการใช้เว็บเซิร์ฟเวอร์ที่มีสิทธิ์ในการเขียนลงในไดเรกทอรีเอกสาร Dolibarr หาก <b>safe_mode</b> พารามิเตอร์เปิดใช้งานบน PHP นี้ตรวจสอบว่า php ไฟล์ Dolibarr เป็นเจ้าของให้กับผู้ใช้เว็บเซิร์ฟเวอร์ (หรือกลุ่ม)
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=กรุณากรอกค่าส​​ำหร
     ErrorNoValueForCheckBoxType=กรุณากรอกค่าส​​ำหรับรายการช่อง
     ErrorNoValueForRadioType=กรุณากรอกค่าส​​ำหรับรายการวิทยุ
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=<b>s สนาม%</b> ไม่ต้องมีอักขระพิเศษ
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=ไม่มีการเปิดใช้งานโมดูลบัญชี
     ErrorExportDuplicateProfil=ชื่อโปรไฟล์นี้มีอยู่แล้วสำหรับการตั้งค่าการส่งออกนี้
     ErrorLDAPSetupNotComplete=การจับคู่ Dolibarr-LDAP ไม่สมบูรณ์
     ErrorLDAPMakeManualTest=ไฟล์ .ldif ได้รับการสร้างขึ้นในไดเรกทอรี% s พยายามที่จะโหลดได้ด้วยตนเองจากบรรทัดคำสั่งที่จะมีข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาด
    -ErrorCantSaveADoneUserWithZeroPercentage=ไม่สามารถบันทึกการดำเนินการกับ "statut ไม่ได้เริ่ม" ถ้าเขต "ทำโดย" นอกจากนี้ยังเต็มไป
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref ใช้สำหรับการสร้างที่มีอยู่แล้ว
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=ไม่สามารถลบบันทึก มันถูกใช้ไปแล้วหรือรวมอยู่ในวัตถุอื่น
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=จาวาสคริปต์จะต้องไม่ถูกปิดการใช้งานจะมีคุณสมบัติการทำงานนี้ เพื่อเปิด / ปิดการใช้งานจาวาสคริไปที่เมนูหน้าแรก> Setup-> จอแสดงผล
     ErrorPasswordsMustMatch=ทั้งสองพิมพ์รหัสผ่านจะต้องตรงกับแต่ละอื่น ๆ
    -ErrorContactEMail=ข้อผิดพลาดทางเทคนิคที่เกิดขึ้น กรุณาติดต่อผู้ดูแลระบบเพื่อต่อไปนี้อีเมล <b>en% s ให้รหัสข้อผิดพลาด% s</b> ในข้อความของคุณหรือดียิ่งขึ้นโดยการเพิ่มสำเนาหน้าจอของหน้านี้
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=<b>ค่าที่ไม่ถูกต้องสำหรับจำนวนสนาม% s</b> (ค่า <b>'% s' ไม่ตรงกับกฎ% s</b> regex)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=<b>ค่าที่ไม่ถูกต้องสำหรับจำนวนสนาม% s</b> (ค่า <b>'% s' ไม่ได้อ้างอิง% s</b> ที่มีอยู่)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=โปรแกรมป้องกันไว
     ErrorSpecialCharNotAllowedForField=อักขระพิเศษไม่ได้รับอนุญาตสำหรับเขตข้อมูล "% s"
     ErrorNumRefModel=การอ้างอิงที่มีอยู่ในฐานข้อมูล (% s) และไม่ได้เข้ากันได้กับกฎหมายเลขนี้ ลบบันทึกการอ้างอิงหรือเปลี่ยนชื่อเพื่อเปิดใช้งานโมดูลนี้
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=ข้อผิดพลาดในหน้ากาก
     ErrorBadMaskFailedToLocatePosOfSequence=ข้อผิดพลาดหน้ากากไม่มีหมายเลขลำดับ
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=ข้อผิดพลาดค่าการตั
     ErrorMaxNumberReachForThisMask=เข้าถึงจำนวนซ์หน้ากากนี้
     ErrorCounterMustHaveMoreThan3Digits=เคาน์เตอร์จะต้องมีมากกว่า 3 หลัก
     ErrorSelectAtLeastOne=ความผิดพลาด เลือกอย่างน้อยหนึ่งรายการ
    -ErrorDeleteNotPossibleLineIsConsolidated=ลบไปไม่ได้เพราะการบันทึกจะเชื่อมโยงกับรายการระหว่างกันของธนาคารที่ conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=% s ได้รับมอบหมายให้สามอีก
     ErrorFailedToSendPassword=ล้มเหลวในการส่งรหัสผ่าน
     ErrorFailedToLoadRSSFile=ล้มเหลวที่จะได้รับฟีด RSS พยายามที่จะเพิ่ม MAIN_SIMPLEXMLLOAD_DEBUG คงถ้าข้อความผิดพลาดที่ไม่ได้ให้ข้อมูลที่เพียงพอ
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=ผู้ใช้ที่มี <b>s%</b> เข้า
     ErrorLoginHasNoEmail=ผู้ใช้นี้ไม่มีที่อยู่อีเมล ขั้นตอนการยกเลิก
     ErrorBadValueForCode=ค่าร้ายสำหรับรหัสรักษาความปลอดภัย ลองอีกครั้งด้วยค่าใหม่ ...
     ErrorBothFieldCantBeNegative=ทุ่ง% s% และไม่สามารถเป็นได้ทั้งในเชิงลบ
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=จำนวนบรรทัดลงในใบแจ้งหนี้ของลูกค้าที่ไม่สามารถเป็นเชิงลบ
     ErrorWebServerUserHasNotPermission=<b>บัญชีผู้ใช้% s</b> ใช้ในการดำเนินการเว็บเซิร์ฟเวอร์มีสิทธิ์ในการที่ไม่มี
     ErrorNoActivatedBarcode=ประเภทไม่มีการเปิดใช้งานบาร์โค้ด
    @@ -138,7 +141,7 @@ ErrorBadFormat=รูปแบบที่ไม่ดี!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=ข้อผิดพลาดที่มีการส่งมอบบางอย่างที่เชื่อมโยงกับการจัดส่งนี้ ลบปฏิเสธ
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=ไม่สามารถลบการชำระเงินที่ใช้ร่วมกันอย่างน้อยหนึ่งใบแจ้งหนี้ที่มีสถานะ payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=ไม่สามารถกำหนดให้คงที่ '% s'
     ErrorPriceExpression2=ไม่สามารถกำหนดฟังก์ชั่น '% s'
     ErrorPriceExpression3=ตัวแปรที่ไม่ได้กำหนด '% s' ในความหมายฟังก์ชั่น
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=ที่ไม่คาดคิด '% s'
     ErrorPriceExpression6=จำนวนที่ไม่ถูกต้องของการขัดแย้ง (% s ได้รับคาดว่า% s)
     ErrorPriceExpression8=ผู้ประกอบการที่ไม่คาดคิด '% s'
     ErrorPriceExpression9=ข้อผิดพลาดที่ไม่คาดคิดเกิดขึ้น
    -ErrorPriceExpression10=Iperator '% s' ขาดตัวถูกดำเนินการ
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=คาดหวังว่า '% s'
     ErrorPriceExpression14=หารด้วยศูนย์
     ErrorPriceExpression17=ไม่ได้กำหนดตัวแปร '% s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=ลูกค้า SOAP ล​​้มเหลว
     ErrorGlobalVariableUpdater5=ไม่มีตัวแปรทั่วโลกที่เลือก
     ErrorFieldMustBeANumeric=<b>s สนาม%</b> จะต้องเป็นค่าตัวเลข
     ErrorMandatoryParametersNotProvided=พารามิเตอร์บังคับ (s) ไม่ได้ให้
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=พารามิเตอร์การตั้งค่าบังคับไม่ได้กำหนดไว้ยัง
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=บุ๊คมาร์คที่มีชื่
     WarningPassIsEmpty=คำเตือนรหัสผ่านฐานข้อมูลเป็นที่ว่างเปล่า นี่คือหลุมการรักษาความปลอดภัย คุณควรเพิ่มรหัสผ่านไปยังฐานข้อมูลของคุณและเปลี่ยนไฟล์ conf.php ของคุณเพื่อสะท้อนถึงนี้
     WarningConfFileMustBeReadOnly=เตือนไฟล์ config ของคุณ <b>(htdocs / conf / conf.php)</b> สามารถเขียนทับโดยเว็บเซิร์ฟเวอร์ นี่คือหลุมด้านความปลอดภัยร้ายแรง ปรับเปลี่ยนสิทธิ์ในแฟ้มที่จะอยู่ในโหมดอ่านอย่างเดียวสำหรับผู้ใช้ระบบปฏิบัติการที่ใช้โดยเว็บเซิร์ฟเวอร์ หากคุณใช้รูปแบบ Windows และ FAT ดิสก์ของคุณคุณจะต้องรู้ว่าระบบไฟล์นี้จะไม่อนุญาตให้มีการเพิ่มสิทธิ์ในแฟ้มจึงไม่สามารถมีความปลอดภัยอย่างสมบูรณ์
     WarningsOnXLines=<b>คำเตือนในการบันทึกแหล่ง% s</b> (s)
    -WarningNoDocumentModelActivated=รูปแบบไม่มีสำหรับการสร้างเอกสารได้รับการเปิดใช้งาน รูปแบบจะถูกเลือกโดยค่าเริ่มต้นจนกว่าคุณจะตรวจสอบการติดตั้งโมดูลของคุณ
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=คำเตือนเมื่อการติดตั้งเสร็จแล้วคุณจะต้องปิดการใช้งานติดตั้ง / ย้ายเครื่องมือโดยการเพิ่ม <b>install.lock ไฟล์ลงในไดเรกทอรี%</b> s หายไปไฟล์นี้เป็นหลุมรักษาความปลอดภัย
    -WarningUntilDirRemoved=ทุกคำเตือนความปลอดภัย (มองเห็นได้โดยผู้ใช้ผู้ดูแลระบบเท่านั้น) จะยังคงใช้งานเป็นเวลานานเป็นช่องโหว่ที่เป็นปัจจุบัน (หรือที่ MAIN_REMOVE_INSTALL_WARNING คงที่เพิ่มเข้ามาใน Setup-> ตั้งค่าอื่น ๆ )
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=คำเตือนปิดจะทำแม้ว่าจำนวนเงินที่แตกต่างกันระหว่างแหล่งที่มาและองค์ประกอบเป้าหมาย เปิดใช้งานคุณลักษณะนี้ด้วยความระมัดระวัง
     WarningUsingThisBoxSlowDown=คำเตือนการใช้ช่องนี้ชะลอตัวลงอย่างจริงจังทุกหน้าแสดงกล่อง
     WarningClickToDialUserSetupNotComplete=การตั้งค่าข้อมูล ClickToDial สำหรับผู้ใช้ของคุณจะไม่สมบูรณ์ (ดู ClickToDial แท็บลงบนบัตรผู้ใช้ของคุณ)
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/th_TH/help.lang b/htdocs/langs/th_TH/help.lang
    index 2b1d5f0a32d..5dfcf36e154 100644
    --- a/htdocs/langs/th_TH/help.lang
    +++ b/htdocs/langs/th_TH/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=ออนไลน์เรียลไทม์ / สน
     OtherSupport=การสนับสนุนอื่น ๆ
     ToSeeListOfAvailableRessources=หากต้องการติดต่อ / ดูทรัพยากรที่มีอยู่:
     HelpCenter=ศูนย์ช่วยเหลือ
    -DolibarrHelpCenter=ช่วยเหลือ Dolibarr และศูนย์การสนับสนุน
    -ToGoBackToDolibarr=หรือคลิก <a href="%s">ที่นี่เพื่อใช้ Dolibarr</a>
    -TypeOfSupport=แหล่งที่มาของการสนับสนุน
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=ชุมชน (ฟรี)
     TypeSupportCommercial=เชิงพาณิชย์
     TypeOfHelp=ชนิด
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=ประสิทธิภาพ
     TypeHelpOnly=ช่วยเหลือเท่านั้น
     TypeHelpDev=ความช่วยเหลือ + พัฒนา
    -TypeHelpDevForm=ความช่วยเหลือ + + การพัฒนาสร้าง
    -ToGetHelpGoOnSparkAngels1=บาง บริษัท สามารถให้บริการได้อย่างรวดเร็ว (บางครั้งทันที) และมีประสิทธิภาพมากขึ้นการสนับสนุนทางออนไลน์โดยการควบคุมของเครื่องคอมพิวเตอร์ของคุณ <b>ช่วยเหลือดังกล่าวสามารถพบได้บน% s</b> เว็บไซต์:
    -ToGetHelpGoOnSparkAngels3=นอกจากนี้คุณยังสามารถไปที่รายชื่อของโค้ชที่มีอยู่ทั้งหมดสำหรับ Dolibarr สำหรับนี้คลิกที่ปุ่ม
    -ToGetHelpGoOnSparkAngels2=บางครั้งไม่มี บริษัท ที่มีอยู่ในช่วงเวลาที่คุณให้การค้นหาของคุณจึงคิดที่จะเปลี่ยนแปลงตัวกรองที่จะมองหา "ทั้งหมดพร้อมใช้งาน" คุณจะสามารถที่จะส่งคำขอเพิ่มเติม
    -BackToHelpCenter=หรือคลิกที่นี่เพื่อไป <a href="%s">กลับไปช่วยหน้าบ้านศูนย์</a>
    -LinkToGoldMember=คุณสามารถเรียกหนึ่งในโค้ชไว้ล่วงหน้าโดย Dolibarr สำหรับภาษาของคุณ (% s) โดยคลิกที่เครื่องมือของเขา (สถานะและราคาสูงสุดที่มีการปรับปรุงโดยอัตโนมัติ):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=ภาษาที่รองรับ
    -SubscribeToFoundation=ช่วยเหลือโครงการ Dolibarr สมัครให้กับมูลนิธิ
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=สำหรับการสนับสนุนอย่างเป็นทางการ Dolibarr ในภาษาของคุณ: <br> <a href="%s" target="_blank"><b>% s</b></a>
    diff --git a/htdocs/langs/th_TH/holiday.lang b/htdocs/langs/th_TH/holiday.lang
    index c4e68de470b..b46071244b8 100644
    --- a/htdocs/langs/th_TH/holiday.lang
    +++ b/htdocs/langs/th_TH/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=ระบบบริหารจัดการทรัพยากรบุคคล
    -Holidays=ใบลา
    -CPTitreMenu=ใบลา
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=คำสั่งรายเดือน
     MenuAddCP=คำขอลาใหม่
    -NotActiveModCP=คุณต้องเปิดใบโมดูลเพื่อดูหน้านี้
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=ขอลา
     DateDebCP=วันที่เริ่มต้น
     DateFinCP=วันที่สิ้นสุด
    @@ -15,13 +15,18 @@ ApprovedCP=ได้รับการอนุมัติ
     CancelCP=ยกเลิก
     RefuseCP=ปฏิเสธ
     ValidatorCP=Approbator
    -ListeCP=รายการของใบ
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=ลักษณะ
     SendRequestCP=สร้างการร้องขอลา
     DelayToRequestCP=<b>ออกจากการร้องขอจะต้องทำอย่างน้อย% s วัน (s)</b> ก่อนหน้าพวกเขา
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=<b>สมดุลใบเป็น% s</b> วัน
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=คุณต้องเลือกวันที่สิ้นสุดมากกว่าวันที่เริ่มต้น
     ErrorSQLCreateCP=ข้อผิดพลาดที่เกิดขึ้นในช่วง SQL สร้าง:
     ErrorIDFicheCP=เกิดข้อผิดพลาดขอลาไม่อยู่
    @@ -30,7 +35,14 @@ ErrorUserViewCP=คุณยังไม่ได้รับอนุญาต
     InfosWorkflowCP=ข้อมูลเวิร์กโฟลว์
     RequestByCP=การร้องขอจาก
     TitreRequestCP=คำขอฝาก
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=จำนวนวันของวันหยุดบริโภค
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=แก้ไข
     DeleteCP=ลบ
     ActionRefuseCP=ปฏิเสธ
    @@ -59,6 +71,7 @@ DateRefusCP=วันที่ของการปฏิเสธ
     DateCancelCP=วันที่มีการยกเลิก
     DefineEventUserCP=กำหนดลาพิเศษสำหรับผู้ใช้
     addEventToUserCP=กำหนดออกจาก
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=เหตุผล
     UserCP=ผู้ใช้งาน
     ErrorAddEventToUserCP=เกิดข้อผิดพลาดในขณะที่เพิ่มการลาพิเศษ
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=ปรับปรุงเรียบร้อยแล้ว
     Module27130Name= การบริหารจัดการของการร้องขอลา
     Module27130Desc= การบริหารจัดการของการร้องขอลา
    @@ -94,7 +112,7 @@ NoticePeriod=ระยะเวลาการแจ้งให้ทราบ
     HolidaysToValidate=ตรวจสอบการร้องขอลา
     HolidaysToValidateBody=ด้านล่างคำขอลาในการตรวจสอบคือ
     HolidaysToValidateDelay=คำขอลานี้จะเกิดขึ้นภายในระยะเวลาน้อยกว่า% s วัน
    -HolidaysToValidateAlertSolde=ผู้ใช้ที่ทำนี้ออกจากข้อความร้องขอไม่ได้มีวันที่เพียงพอ
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=การตรวจสอบการร้องขอลา
     HolidaysValidatedBody=คำขอลาสำหรับ% s% s ได้รับการตรวจสอบ
     HolidaysRefused=ขอปฏิเสธ
    @@ -103,4 +121,9 @@ HolidaysCanceled=ยกเลิกคำขอใบ
     HolidaysCanceledBody=คำขอลาสำหรับ% s% s ได้ถูกยกเลิก
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=<strong>ไปลงในหน้าหลัก - การติดตั้ง - พจนานุกรม - ประเภทของใบจะติดตั้งที่แตกต่างกันของใบ</strong>
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/th_TH/install.lang b/htdocs/langs/th_TH/install.lang
    index c6998307258..e63edb4c09c 100644
    --- a/htdocs/langs/th_TH/install.lang
    +++ b/htdocs/langs/th_TH/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=เพียงทำตามคำแนะนำทีละขั้นตอน
     MiscellaneousChecks=สิ่งที่ต้องมีการตรวจสอบ
     ConfFileExists=<b>การกำหนดค่าไฟล์% s</b> อยู่
    -ConfFileDoesNotExistsAndCouldNotBeCreated=<b>การกำหนดค่าไฟล์% s</b> ไม่ได้อยู่และไม่สามารถสร้าง!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=<b>การกำหนดค่าไฟล์% s</b> จะถูกสร้างขึ้น
    -ConfFileIsNotWritable=<b>การกำหนดค่าไฟล์% s</b> ไม่สามารถเขียนได้ สิทธิ์ในการตรวจสอบ สำหรับการติดตั้งครั้งแรกเว็บเซิร์ฟเวอร์ของคุณต้องได้รับเพื่อให้สามารถเขียนลงในไฟล์นี้ในระหว่างขั้นตอนการตั้งค่า ("chmod 666" ตัวอย่างเช่นในระบบปฏิบัติการยูนิกซ์เช่น OS)
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=<b>การกำหนดค่าไฟล์% s</b> เขียนได้
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=โหลดข้อมูลจากแฟ้มการกำหนดค่า
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=PHP นี้สนับสนุนการประชุม
     PHPSupportPOSTGETOk=PHP นี้สนับสนุนตัวแปร POST และ GET
    -PHPSupportPOSTGETKo=มันเป็นไปได้ที่การตั้งค่า PHP ของคุณไม่สนับสนุนตัวแปร POST และ / หรือได้รับ ตรวจสอบ <b>variables_order</b> พารามิเตอร์ใน php.ini
    -PHPSupportGD=การสนับสนุนนี้ PHP GD ฟังก์ชั่นกราฟิก
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=นี้สนับสนุน PHP ฟังก์ชั่ UTF8
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=หน่วยความจำสูงสุด PHP <b>เซสชั่นของคุณตั้ง%</b> s นี้ควรจะเพียงพอ
    -PHPMemoryTooLow=หน่วยความจำสูงสุด PHP <b>เซสชั่นของคุณตั้ง% s</b> ไบต์ นี้ควรจะต่ำเกินไป เปลี่ยน <b>php.ini</b> ของคุณเพื่อตั้งค่าพารามิเตอร์ <b>memory_limit อย่างน้อย% s</b> ไบต์
    -Recheck=คลิกที่นี่เพื่อทดสอบเพิ่มเติม significative
    -ErrorPHPDoesNotSupportSessions=การติดตั้ง PHP ของคุณไม่สนับสนุนการประชุม คุณลักษณะนี้เป็นสิ่งจำเป็นที่จะทำให้การทำงาน Dolibarr ตรวจสอบการติดตั้ง PHP ของคุณ
    -ErrorPHPDoesNotSupportGD=การติดตั้ง PHP ของคุณไม่สนับสนุนฟังก์ชั่นกราฟิก GD กราฟจะไม่สามารถใช้ได้
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=การติดตั้ง PHP ของคุณไม่สนับสนุนฟังก์ชั่น UTF8 Dolibarr ไม่สามารถทำงานได้อย่างถูกต้อง แก้ปัญหานี้ก่อนการติดตั้ง Dolibarr
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=สารบบ% s ไม่ได้อยู่
    -ErrorGoBackAndCorrectParameters=ย้อนกลับไปและแก้ไขพารามิเตอร์ที่ไม่ถูกต้อง
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=คุณอาจจะพิมพ์ค่าที่ไม่ถูกต้องสำหรับพารามิเตอร์ '% s'
     ErrorFailedToCreateDatabase=ไม่สามารถสร้างฐานข้อมูล '% s'
     ErrorFailedToConnectToDatabase=ไม่สามารถเชื่อมต่อกับฐานข้อมูล '% s'
     ErrorDatabaseVersionTooLow=รุ่นฐานข้อมูล (% s) เก่าเกินไป รุ่น s% หรือสูงกว่าที่จำเป็น
     ErrorPHPVersionTooLow=PHP รุ่นเก่าเกินไป % s รุ่นจะต้อง
    -ErrorConnectedButDatabaseNotFound=เชื่อมต่อกับเซิร์ฟเวอร์ที่ประสบความสำเร็จ แต่ฐานข้อมูล '% s' ไม่พบ
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=ฐานข้อมูล '% s' อยู่แล้ว
    -IfDatabaseNotExistsGoBackAndUncheckCreate=ถ้าฐานข้อมูลที่มีอยู่ไม่ได้กลับไปและตรวจสอบตัวเลือก "สร้างฐานข้อมูล"
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=ถ้าฐานข้อมูลที่มีอยู่แล้วให้กลับไปและยกเลิก "สร้างฐานข้อมูลตัวเลือก"
    -WarningBrowserTooOld=รุ่นเก่าเกินไปของเบราว์เซอร์ เบราว์เซอร์ของคุณอัพเกรดเป็นรุ่นล่าสุดของ Firefox, Chrome หรือ Opera เป็น recommanded สูง
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP รุ่น
     License=ใช้ใบอนุญาต
     ConfigurationFile=แฟ้มการกำหนดค่า
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr ฐานข้อมูล
     DatabaseType=ชนิดของฐานข้อมูล
     DriverType=ชนิดตัวขับ
     Server=เซิร์ฟเวอร์
    -ServerAddressDescription=ชื่อหรือที่อยู่ IP สำหรับเซิร์ฟเวอร์ฐานข้อมูลมักจะ 'localhost' เมื่อเซิร์ฟเวอร์ฐานข้อมูลโฮสต์บนเซิร์ฟเวอร์เดียวกันกว่าเว็บเซิร์ฟเวอร์
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=ฐานข้อมูลเซิร์ฟเวอร์พอร์ต ให้ว่างเปล่าถ้าไม่รู้จัก
     DatabaseServer=เซิร์ฟเวอร์ฐานข้อมูล
     DatabaseName=ชื่อฐานข้อมูล
    -DatabasePrefix=ฐานข้อมูลตารางคำนำหน้า
    -AdminLogin=เข้าสู่ระบบฐานข้อมูลสำหรับเจ้าของ Dolibarr
    -PasswordAgain=พิมพ์รหัสผ่านเป็นครั้งที่สอง
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=รหัสผ่านสำหรับเจ้าของฐานข้อมูล Dolibarr
     CreateDatabase=สร้างฐานข้อมูล
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=เซิร์ฟเวอร์ฐานข้อมูล - การเข้าถึง Superuser
    -CheckToCreateDatabase=กล่องตรวจสอบว่าฐานข้อมูลไม่ได้อยู่และจะต้องสร้างขึ้น <br> ในกรณีนี้คุณต้องกรอกข้อมูลเข้าสู่ระบบ / รหัสผ่านสำหรับบัญชี superuser ที่ด้านล่างของหน้านี้
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=เข้าสู่ระบบของผู้ใช้ที่ได้รับอนุญาตในการสร้างฐานข้อมูลใหม่หรือผู้ใช้ใหม่บังคับถ้าฐานข้อมูลหรือเจ้าของของคุณไม่ได้อยู่แล้ว
    -KeepEmptyIfNoPassword=ปล่อยว่างไว้ถ้าผู้ใช้มีรหัสผ่านไม่ (หลีกเลี่ยงปัญหานี้)
    -SaveConfigurationFile=ประหยัดค่า
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=การเชื่อมต่อเซิร์ฟเวอร์
     DatabaseCreation=การสร้างฐานข้อมูล
     CreateDatabaseObjects=ฐานข้อมูลการสร้างวัตถุ
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=สร้างปุ่มต่างประเท
     OtherKeysCreation=คีย์ต่างประเทศและการสร้างดัชนี
     FunctionsCreation=ฟังก์ชั่นการสร้าง
     AdminAccountCreation=ผู้ดูแลระบบเข้าสู่ระบบการสร้าง
    -PleaseTypePassword=กรุณาพิมพ์รหัสผ่านรห​​ัสผ่านที่ว่างเปล่าไม่ได้รับอนุญาต!
    -PleaseTypeALogin=กรุณาพิมพ์เข้าสู่ระบบ!
    -PasswordsMismatch=รหัสผ่านที่แตกต่างโปรดลองอีกครั้ง!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=ในตอนท้ายของการตั้งค่า
     SystemIsInstalled=การติดตั้งนี้เสร็จสมบูรณ์
     SystemIsUpgraded=Dolibarr ได้รับการอัพเกรดที่ประสบความสำเร็จ
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=คุณต้องกำหนดค่า Dolibarr
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=ไปที่ Dolibarr
     GoToSetupArea=ไปที่ Dolibarr (พื้นที่ติดตั้ง)
    -MigrationNotFinished=รุ่นของฐานข้อมูลของคุณไม่สมบูรณ์ถึงวันดังนั้นคุณจะต้องใช้กระบวนการปรับรุ่นอีกครั้ง
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=ไปที่หน้าอัพเกรดอีกครั้ง
     WithNoSlashAtTheEnd=โดยไม่ต้องเฉือน "/" ในตอนท้าย
    -DirectoryRecommendation=มันเป็น recommanded ใช้ไดเรกทอรีนอกไดเรกทอรีของคุณหน้าเว็บของคุณ
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=ที่มีอยู่แล้ว
     DolibarrAdminLogin=ผู้ดูแลระบบเข้าสู่ระบบ Dolibarr
    -AdminLoginAlreadyExists=Dolibarr บัญชีผู้ดูแลระบบ <b>'% s'</b> อยู่แล้ว กลับไปถ้าคุณต้องการที่จะสร้างอีกคนหนึ่ง
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=คำเตือนเพื่อความปลอดภัยเมื่อติดตั้งหรืออัพเกรดเสร็จสมบูรณ์หลีกเลี่ยงการใช้ติดตั้งเครื่องมืออีกครั้งคุณควรเพิ่มไฟล์ที่เรียกว่า <b>install.lock</b> ลงในไดเรกทอรีเอกสาร Dolibarr เพื่อที่จะหลีกเลี่ยงการใช้ที่เป็นอันตรายของมัน
    -FunctionNotAvailableInThisPHP=ไม่สามารถใช้ได้ใน PHP นี้
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=เลือกสคริปต์การย้ายถิ่น
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=การประมวลผลสคริปต์
     ChooseYourSetupMode=เลือกโหมดการตั้งค่าของคุณและคลิกที่ "เริ่มต้น" ...
     FreshInstall=ติดตั้งใหม่
    -FreshInstallDesc=ใช้โหมดนี้ถ้านี้เป็นครั้งแรกของคุณติดตั้ง ถ้าไม่ได้โหมดนี้สามารถซ่อมแซมติดตั้งก่อนหน้านี้ไม่สมบูรณ์ แต่ถ้าคุณต้องการที่จะปรับรุ่นของคุณเลือก "การอัพเกรดโหมด"
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=อัพเกรด
     UpgradeDesc=ใช้โหมดนี้ถ้าคุณได้เปลี่ยนไฟล์ Dolibarr กับไฟล์จากเวอร์ชันที่ใหม่กว่า นี้จะอัพเกรดฐานข้อมูลและข้อมูลของคุณ
     Start=เริ่มต้น
     InstallNotAllowed=ติดตั้งไม่ได้รับอนุญาตตามสิทธิ์ <b>conf.php</b>
     YouMustCreateWithPermission=คุณต้องสร้างแฟ้ม% s และกำหนดสิทธิ์ในการเขียนเกี่ยวกับมันสำหรับเว็บเซิร์ฟเวอร์ในระหว่างขั้นตอนการติดตั้ง
    -CorrectProblemAndReloadPage=โปรดแก้ไขปัญหาและกด F5 เพื่อโหลดหน้าเว็บ
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=อพยพแล้ว
     DatabaseVersion=รุ่นฐานข้อมูล
     ServerVersion=เซิร์ฟเวอร์ฐานข้อมูลรุ่น
     YouMustCreateItAndAllowServerToWrite=คุณต้องสร้างไดเรกทอรีนี้และอนุญาตให้เว็บเซิร์ฟเวอร์ที่จะเขียนลงไป
     DBSortingCollation=เรียงลำดับตัวอักษร
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=<b>คุณถามในการสร้างฐานข้อมูล%</b> แต่สำหรับเรื่องนี้ Dolibarr <b>จำเป็นต้องเชื่อมต่อกับเซิร์ฟเวอร์% s</b> ด้วยสิทธิ์ผู้ใช้ <b>super% s</b>
    -YouAskLoginCreationSoDolibarrNeedToConnect=<b>คุณถามเพื่อสร้างฐานข้อมูลเข้าสู่ระบบ%</b> แต่สำหรับเรื่องนี้ Dolibarr <b>จำเป็นต้องเชื่อมต่อกับเซิร์ฟเวอร์% s</b> ด้วยสิทธิ์ผู้ใช้ <b>super% s</b>
    -BecauseConnectionFailedParametersMayBeWrong=ขณะที่การเชื่อมต่อล้มเหลวโฮสต์หรือพารามิเตอร์ผู้ใช้ super ต้องผิด
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=การชำระเงินเด็กกำพร้าที่ตรวจพบโดยวิธี% s
     RemoveItManuallyAndPressF5ToContinue=ลบออกด้วยตนเองและกด F5 เพื่อดำเนินการต่อไป
     FieldRenamed=เปลี่ยนชื่อสนาม
    -IfLoginDoesNotExistsCheckCreateUser=หากเข้าสู่ระบบไม่ได้มีอยู่ แต่คุณต้องตรวจสอบตัวเลือก "สร้างผู้ใช้"
    -ErrorConnection=เซิร์ฟเวอร์ <b>"% s"</b> ชื่อฐานข้อมูล <b>"% s"</b> เข้าสู่ระบบ <b>"% s"</b> หรือรหัสผ่านฐานข้อมูลอาจจะผิดหรือ PHP รุ่นลูกค้าอาจจะเก่าเกินไปเมื่อเทียบกับเวอร์ชันของฐานข้อมูล
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=<b>ทางเลือกที่แนะนำในการติดตั้งเวอร์ชั่น% s จากรุ่นปัจจุบันของคุณ% s</b>
     InstallChoiceSuggested=<b>ติดตั้งทางเลือกที่แนะนำโดยการติดตั้ง</b>
    -MigrateIsDoneStepByStep=รุ่นที่มีการกำหนดเป้​​าหมาย (% s) มีช่องว่างของหลายรุ่นเพื่อให้การติดตั้งตัวช่วยสร้างจะกลับมาเพื่อแสดงให้เห็นการโยกย้ายครั้งเดียวต่อไปนี้จะแล้วเสร็จ
    -CheckThatDatabasenameIsCorrect=ตรวจสอบชื่อของฐานข้อมูลที่ <b>"% s"</b> ถูกต้อง
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=ถ้าชื่อนี้ถูกต้องและฐานข้อมูลที่ยังไม่ปรากฏอยู่คุณต้องตรวจสอบตัวเลือก "สร้างฐานข้อมูล"
     OpenBaseDir=PHP openbasedir พารามิเตอร์
    -YouAskToCreateDatabaseSoRootRequired=คุณตรวจสอบกล่อง "สร้างฐานข้อมูล" สำหรับนี้คุณจำเป็นต้องให้เข้าสู่ระบบ / รหัสผ่านของ superuser (ด้านล่างของรูปแบบ)
    -YouAskToCreateDatabaseUserSoRootRequired=คุณตรวจสอบกล่อง "สร้างเจ้าของฐานข้อมูล" สำหรับนี้คุณจำเป็นต้องให้เข้าสู่ระบบ / รหัสผ่านของ superuser (ด้านล่างของรูปแบบ)
    -NextStepMightLastALongTime=ขั้นตอนปัจจุบันอาจนานหลายนาที กรุณารอสักครู่จนกระทั่งหน้าจอต่อไปคือการแสดงให้เห็นก่อนที่จะดำเนินการต่อไป
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=โยกย้ายการจัดส่งสินค้าให้กับลูกค้าจัดเก็บข้อมูลการสั่งซื้อ
     MigrationShippingDelivery=เพิ่มระดับการจัดเก็บข้อมูลในการจัดส่ง
     MigrationShippingDelivery2=เพิ่มระดับการจัดเก็บข้อมูลในการจัดส่ง 2
     MigrationFinished=การโยกย้ายเสร็จ
    -LastStepDesc=<strong>ขั้นตอนสุดท้าย:</strong> กำหนดเข้าสู่ระบบที่นี่และรหัสผ่านที่คุณวางแผนที่จะใช้ในการเชื่อมต่อกับซอฟแวร์ ไม่หลวมนี้มันเป็นบัญ​​ชีที่จะดูแลคนอื่น ๆ ทั้งหมด
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=เปิดใช้งานโมดูล% s
     ShowEditTechnicalParameters=คลิกที่นี่เพื่อแสดง / แก้ไขพารามิเตอร์ขั้นสูง (โหมดผู้เชี่ยวชาญ)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=รุ่นฐานข้อมูลของคุณ% s แต่ก็มีข้อผิดพลาดที่สำคัญทำให้การสูญเสียข้อมูลถ้าคุณทำการเปลี่ยนแปลงโครงสร้างฐานข้อมูลของคุณเหมือนว่ามันจะถูกต้องตามกระบวนการโยกย้าย ด้วยเหตุผลของการย้ายถิ่นจะไม่ได้รับอนุญาตจนกว่าคุณจะอัพเกรดฐานข้อมูลของคุณไปเป็นรุ่นที่คงที่ที่สูงขึ้น (รายชื่อที่รู้จักกันร้องรุ่น:% s)
    -KeepDefaultValuesWamp=คุณสามารถใช้ตัวช่วยสร้างการติดตั้ง Dolibarr จาก DoliWamp ดังนั้นค่าที่นำเสนอในที่นี้จะดีที่สุดแล้ว เปลี่ยนพวกเขาเท่านั้นถ้าคุณรู้ว่าสิ่งที่คุณทำ
    -KeepDefaultValuesDeb=คุณสามารถใช้ตัวช่วยสร้างการติดตั้ง Dolibarr จากแพคเกจลินุกซ์ (Ubuntu, Debian, Fedora ... ) ดังนั้นค่าที่นำเสนอในที่นี้จะดีที่สุดแล้ว เฉพาะรหัสผ่านของเจ้าของฐานข้อมูลเพื่อสร้างจะต้องเสร็จสิ้น เปลี่ยนพารามิเตอร์อื่น ๆ เท่านั้นถ้าคุณรู้ว่าสิ่งที่คุณทำ
    -KeepDefaultValuesMamp=คุณสามารถใช้ตัวช่วยสร้างการติดตั้ง Dolibarr จาก DoliMamp ดังนั้นค่าที่นำเสนอในที่นี้จะดีที่สุดแล้ว เปลี่ยนพวกเขาเท่านั้นถ้าคุณรู้ว่าสิ่งที่คุณทำ
    -KeepDefaultValuesProxmox=คุณสามารถใช้ตัวช่วยสร้างการติดตั้ง Dolibarr จาก Proxmox เสมือนเครื่องเพื่อให้ค่าที่นำเสนอในที่นี้จะดีที่สุดแล้ว เปลี่ยนพวกเขาเท่านั้นถ้าคุณรู้ว่าสิ่งที่คุณทำ
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=การโยกย้ายข้อมูลสำหรับข้อเสนอในเชิงพาณิชย์
     MigrationInvoice=การโยกย้ายข้อมูลสำหรับใบแจ้งหนี้ของลูกค้า
     MigrationContract=การโยกย้ายข้อมูลในการทำสัญญา
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=การปรับรุ่นที่ประสบความสำเร็จ
     MigrationUpdateFailed=การอัพเกรดล้มเหลว
     MigrationRelationshipTables=การโยกย้ายข้อมูลสำหรับตารางความสัมพันธ์ (% s)
     MigrationPaymentsUpdate=แก้ไขข้อมูลการชำระเงิน
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=สัญญาแก้ไขข้อมูล
     MigrationContractsNumberToUpdate=สัญญา% s (s) เพื่อปรับปรุง
     MigrationContractsLineCreation=สร้างสายสัญญาสำหรับการอ้างอิงสัญญา% s
     MigrationContractsNothingToUpdate=ไม่มีสิ่งที่ต้องทำ
    -MigrationContractsFieldDontExist=fk_facture สนามไม่อยู่อีกต่อไป ไม่มีอะไรที่จะทำ
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=การแก้ไขสัญญาวันที่ว่างเปล่า
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=ไม่มีวันที่ทำสัญญาที่ว่างเปล่าที่จะแก้ไข
     MigrationContractsEmptyCreationDatesNothingToUpdate=วันที่สร้างสัญญายังไม่ได้แก้ไข
     MigrationContractsInvalidDatesUpdate=วันที่คิดมูลค่าการแก้ไขสัญญาที่ไม่ดี
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=การปรับปรุงการจัดส
     MigrationStockDetail=อัพเดตค่าหุ้นของผลิตภัณฑ์
     MigrationMenusDetail=ปรับปรุงตารางเมนูแบบไดนามิก
     MigrationDeliveryAddress=ที่อยู่จัดส่งการปรับปรุงในการจัดส่ง
    -MigrationProjectTaskActors=การโยกย้ายข้อมูลสำหรับตาราง llx_projet_task_actors
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=เขตการโยกย้ายข้อมูล fk_user_resp ของ llx_projet เพื่อ llx_element_contact
     MigrationProjectTaskTime=เวลาการปรับปรุงการใช้จ่ายในไม่กี่วินาที
     MigrationActioncommElement=ปรับปรุงข้อมูลเกี่ยวกับการกระทำ
     MigrationPaymentMode=การโยกย้ายข้อมูลสำหรับโหมดการชำระเงิน
     MigrationCategorieAssociation=การย้ายถิ่นของประเภท
    -MigrationEvents=การย้ายถิ่นของเหตุการณ์ที่จะเพิ่มเจ้าของเหตุการณ์ลงในตาราง assignement
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=แสดงตัวเลือกที่มีอยู่ไม่ได้
    -HideNotAvailableOptions=ซ่อนตัวเลือกที่มีอยู่ไม่ได้
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/th_TH/interventions.lang b/htdocs/langs/th_TH/interventions.lang
    index 90bb6de5e0e..9bf586e4e24 100644
    --- a/htdocs/langs/th_TH/interventions.lang
    +++ b/htdocs/langs/th_TH/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=การแทรกแซง
     InterventionCard=บัตรแทรกแซง
     NewIntervention=การแทรกแซงใหม่
     AddIntervention=การแทรกแซงสร้าง
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=รายชื่อของการแทรกแซง
     ActionsOnFicheInter=การดำเนินการเกี่ยวกับการแทรกแซง
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/th_TH/main.lang b/htdocs/langs/th_TH/main.lang
    index 21a7296109a..d2152034bd4 100644
    --- a/htdocs/langs/th_TH/main.lang
    +++ b/htdocs/langs/th_TH/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=ล้มเหลวในการส่งอีเม
     ErrorFileNotUploaded=ไฟล์ที่อัปโหลดไม่ได้ ตรวจสอบขนาดที่ไม่เกินสูงสุดที่อนุญาตที่พื้นที่ว่างที่มีอยู่บนดิสก์และนั่นก็คือไม่ได้อยู่แล้วไฟล์ที่มีชื่อเดียวกันในไดเรกทอรีนี้
     ErrorInternalErrorDetected=ข้อผิดพลาดที่ตรวจพบ
     ErrorWrongHostParameter=โฮสต์พารามิเตอร์ที่ไม่ถูกต้อง
    -ErrorYourCountryIsNotDefined=ประเทศของคุณจะไม่ได้กำหนดไว้ ไปที่บ้านติดตั้ง-แก้ไขและโพสต์รูปแบบอีกครั้ง
    -ErrorRecordIsUsedByChild=ไม่สามารถลบบันทึกนี้ บันทึกนี้ถูกนำมาใช้อย่างน้อยหนึ่งบันทึกเด็ก
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=ค่าที่ไม่ถูกต้อง
     ErrorWrongValueForParameterX=ค่าที่ไม่ถูกต้องสำหรับพารามิเตอร์% s
     ErrorNoRequestInError=คำขอในไม่มีข้อผิดพลาด
    -ErrorServiceUnavailableTryLater=ไม่มีบริการสำหรับช่วงเวลาที่ ลองใหม่อีกครั้ง
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=ค่าที่ซ้ำกันในสนามที่ไม่ซ้ำกัน
    -ErrorSomeErrorWereFoundRollbackIsDone=ข้อผิดพลาดบางคนพบว่า เราย้อนกลับการเปลี่ยนแปลง
    -ErrorConfigParameterNotDefined=<b>พารามิเตอร์% s</b> ไม่ได้กำหนดไว้ภายในไฟล์ config Dolibarr <b>conf.php</b>
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=<b>ไม่พบผู้ใช้% s</b> ในฐานข้อมูล Dolibarr
     ErrorNoVATRateDefinedForSellerCountry=ข้อผิดพลาดอัตราภาษีมูลค่าเพิ่มไม่มีกำหนดสำหรับประเทศ '% s'
     ErrorNoSocialContributionForSellerCountry=ข้อผิดพลาดที่ไม่มีทางสังคม / ประเภทภาษีทางการคลังที่กำหนดไว้สำหรับประเทศ '% s'
     ErrorFailedToSaveFile=ข้อผิดพลาดล้มเหลวที่จะบันทึกไฟล์
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=วันที่ตั้ง
     SelectDate=เลือกวันที่
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=ไฟล์อัพโหลดประสบความสำเร็จ
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=ไฟล์ที่ถูกเลือกสำหรับสิ่งที่แนบมา แต่ยังไม่ได้อัปโหลดยัง คลิกที่ "แนบไฟล์" สำหรับเรื่องนี้
    -NbOfEntries=nb ของรายการ
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=อ่านความช่วยเหลือออนไลน์ (อินเทอร์เน็ตจำเป็น)
     GoToHelpPage=อ่านความช่วยเหลือ
     RecordSaved=บันทึกที่บันทึกไว้
    @@ -94,7 +94,7 @@ Undefined=ตะคุ่ม
     PasswordForgotten=ลืมรหัสผ่าน?
     NoAccount=No account?
     SeeAbove=ดูข้างต้น
    -HomeArea=พื้นที่หน้าแรก
    +HomeArea=หน้าแรก
     LastConnexion=การเชื่อมต่อล่าสุด
     PreviousConnexion=การเชื่อมต่อก่อนหน้า
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=ปิด
     Closed2=ปิด
     NotClosed=Not closed
     Enabled=ที่เปิดใช้งาน
    +Enable=เปิดใช้งาน
     Deprecated=เลิกใช้
     Disable=ปิดการใช้งาน
     Disabled=พิการ
    @@ -153,7 +154,7 @@ Update=ปรับปรุง
     Close=ใกล้
     CloseBox=Remove widget from your dashboard
     Confirm=ยืนยัน
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=ลบ
     Remove=เอาออก
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=สำเนา
     Paste=แปะ
     Default=ผิดนัด
     DefaultValue=ค่ามาตรฐาน
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=ราคา
     PriceCurrency=Price (currency)
     UnitPrice=ราคาต่อหน่วย
    @@ -347,7 +348,7 @@ AmountTTCShort=จํานวนเงิน (รวมภาษี).
     AmountHT=จำนวนเงิน (สุทธิจากภาษี)
     AmountTTC=จํานวนเงิน (รวมภาษี).
     AmountVAT=จํานวนเงินภาษี
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=ไม่สามารถใช้งาน
     ActionRunningNotStarted=ในการเริ่มต้น
     ActionRunningShort=In progress
     ActionDoneShort=เสร็จสิ้น
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=สำหรับรายชื่อของบุคค
     ContactsAddressesForCompany=รายชื่อ / ที่อยู่สำหรับบุคคลที่สามนี้
     AddressesForCompany=สำหรับที่อยู่ของบุคคลที่สามนี้
     ActionsOnCompany=เหตุการณ์ที่เกิดขึ้นเกี่ยวกับบุคคลที่สามนี้
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=เหตุการณ์ที่เกิดขึ้นเกี่ยวกับสมาชิกในนี้
     ActionsOnProduct=Events about this product
     NActionsLate=% s ปลาย
    @@ -453,8 +455,8 @@ Generate=ผลิต
     Duration=ระยะเวลา
     TotalDuration=ระยะเวลารวม
     Summary=ย่อ
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=มีจำหน่าย
     NotYetAvailable=ยังไม่สามารถใช้ได้
    @@ -468,7 +470,7 @@ and=และ
     or=หรือ
     Other=อื่น ๆ
     Others=คนอื่น ๆ
    -OtherInformations=ข้อมูลอื่น ๆ
    +OtherInformations=Other information
     Quantity=ปริมาณ
     Qty=จำนวน
     ChangedBy=เปลี่ยนแปลงได้โดย
    @@ -506,7 +508,7 @@ None=ไม่
     NoneF=ไม่
     NoneOrSeveral=None or several
     Late=สาย
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=ภาพ
     Photos=รูปภาพ
    @@ -530,18 +532,6 @@ September=กันยายน
     October=ตุลาคม
     November=พฤศจิกายน
     December=ธันวาคม
    -JanuaryMin=ม.ค.
    -FebruaryMin=กุมภาพันธ์
    -MarchMin=ทำลาย
    -AprilMin=เมษายน
    -MayMin=พฤษภาคม
    -JuneMin=มิถุนายน
    -JulyMin=กรกฎาคม
    -AugustMin=สิงหาคม
    -SeptemberMin=กันยายน
    -OctoberMin=ตุลาคม
    -NovemberMin=พฤศจิกายน
    -DecemberMin=ธันวาคม
     Month01=มกราคม
     Month02=กุมภาพันธ์
     Month03=มีนาคม
    @@ -646,6 +636,8 @@ SendMail=ส่งอีเมล
     EMail=E-mail
     NoEMail=ไม่มีอีเมล
     Email=อีเมล์
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=ไม่มีโทรศัพท์มือถือ
     Owner=เจ้าของ
     FollowingConstantsWillBeSubstituted=ค่าคงที่ต่อไปนี้จะถูกแทนที่ด้วยค่าที่สอดคล้องกัน
    @@ -677,7 +669,7 @@ NeverReceived=ไม่เคยได้รับ
     Canceled=ยกเลิก
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=สี
     Documents=แฟ้มที่เชื่อมโยง
     Documents2=เอกสาร
    @@ -716,15 +708,15 @@ Merge=ผสาน
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=หน้าแสดงพื้นที่ในการพิมพ์เนื้อหาหลัก
     MenuManager=ผู้จัดการเมนู
    -WarningYouAreInMaintenanceMode=<b>คำเตือนคุณอยู่ในโหมดการบำรุงรักษาดังนั้นเพียง% s</b> เข้าสู่ระบบได้รับอนุญาตให้ใช้โปรแกรมในขณะนี้
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=ผิดพลาดของระบบ
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=เครดิตการ์ด
     ValidatePayment=ตรวจสอบการชำระเงิน
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=<b>เขตข้อมูลที่มี% s</b> มีผลบังคับใช้
    -FieldsWithIsForPublic=<b>เขตข้อมูลที่มี% s</b> จะปรากฏอยู่ในรายชื่อของประชาชนสมาชิก ถ้าคุณไม่อยากให้เรื่องนี้, ตรวจสอบการปิดกล่อง "สาธารณะ"
    -AccordingToGeoIPDatabase=(ตาม GeoIP แปลง)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=สาย
     NotSupported=ไม่สนับสนุน
     RequiredField=ฟิลด์ที่จำเป็น
    @@ -732,6 +724,8 @@ Result=ผล
     ToTest=ทดสอบ
     ValidateBefore=บัตรจะต้องถูกตรวจสอบก่อนที่จะใช้คุณลักษณะนี้
     Visibility=ความชัดเจน
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=ส่วนตัว
     Hidden=ซ่อนเร้น
     Resources=ทรัพยากร
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=เชื่อมโยงการสั่งซื้อ
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=สร้างร่าง
     SetToDraft=กลับไปร่าง
     ClickToEdit=คลิกเพื่อแก้ไข
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=โดยวันที่
     BySalesRepresentative=โดยตัวแทนฝ่ายขาย
     LinkedToSpecificUsers=เชื่อมโยงกับการติดต่อผู้ใช้โดยเฉพาะอย่างยิ่ง
     NoResults=ไม่มีผลลัพธ์
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=เครื่องมือของระบบ
     ModulesSystemTools=เครื่องมือโมดูล
     Test=ทดสอบ
     Element=ธาตุ
     NoPhotoYet=ภาพที่ยังไม่มี
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=หัก
     from=จาก
     toward=ไปทาง
    @@ -802,7 +798,7 @@ PrintFile=พิมพ์ไฟล์% s
     ShowTransaction=Show entry on bank account
     ShowIntervention=การแทรกแซงการแสดง
     ShowContract=แสดงสัญญา
    -GoIntoSetupToChangeLogo=ไปลงในหน้าหลัก - การติดตั้ง - บริษัท ที่จะเปลี่ยนโลโก้หรือไปลงในหน้าแรก - การติดตั้ง - จอแสดงผลที่จะซ่อน
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=ปฏิเสธ
     Denied=ปฏิเสธ
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=ลบบรรทัด
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=แบ่งประเภทเรียกเก็บเงิน
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=ปฏิทิน
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=รายงานค่าใช้จ่าย
     ExpenseReports=รายงานค่าใช้จ่าย
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=เหตุการณ์ที่เกิดขึ้น
    -EMailTemplates=แม่แบบอีเมล
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=โครงการ
     Projects=โครงการ
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=สิทธิ์
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=วันจันทร์
     Tuesday=วันอังคาร
    @@ -927,15 +932,15 @@ SearchIntoInterventions=การแทรกแซง
     SearchIntoContracts=สัญญา
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=รายงานค่าใช้จ่าย
    -SearchIntoLeaves=ใบลา
    +SearchIntoLeaves=Leave
     CommentLink=ความคิดเห็น
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=ทุกคน
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=จ่ายโดย
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=ได้รับมอบหมายให้
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/th_TH/other.lang b/htdocs/langs/th_TH/other.lang
    index 35a970cbca0..b05d7b86655 100644
    --- a/htdocs/langs/th_TH/other.lang
    +++ b/htdocs/langs/th_TH/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=รหัสรักษาความปลอดภัย
     NumberingShort=N°
     Tools=เครื่องมือ
     TMenuTools=เครื่องมือ
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=วันเกิด
     BirthdayDate=Birthday date
     DateToBirth=วันเกิด
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=ข้อความในหน้ากลับมาตรวจสอบการชำระเงิน
     MessageKO=ข้อความในหน้าผลตอบแทนการชำระเงินยกเลิก
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=การแทรกแซงการตรวจสอบ
    -Notify_FICHINTER_SENTBYMAIL=การแทรกแซงส่งทางไปรษณีย์
     Notify_ORDER_VALIDATE=การตรวจสอบการสั่งซื้อของลูกค้า
     Notify_ORDER_SENTBYMAIL=สั่งซื้อของลูกค้าส่งทางไปรษณีย์
     Notify_ORDER_SUPPLIER_SENTBYMAIL=เพื่อที่ผู้ผลิตส่งทางไปรษณีย์
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=เพื่อที่ผู้ผลิตบ
     Notify_ORDER_SUPPLIER_APPROVE=เพื่อที่ผู้ผลิตได้รับการอนุมัติ
     Notify_ORDER_SUPPLIER_REFUSE=เพื่อที่ผู้ผลิตไม่ยอม
     Notify_PROPAL_VALIDATE=ข้อเสนอของลูกค้าผ่านการตรวจสอบ
    -Notify_PROPAL_CLOSE_SIGNED=propal ลูกค้าปิดลงนาม
    -Notify_PROPAL_CLOSE_REFUSED=propal ลูกค้าไม่ยอมปิด
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=ข้อเสนอเชิงพาณิชย์ส่งทางไปรษณีย์
     Notify_WITHDRAW_TRANSMIT=ถอนการส่ง
     Notify_WITHDRAW_CREDIT=ถอนเครดิต
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=บุคคลที่สามสร้าง
     Notify_COMPANY_SENTBYMAIL=อีเมลที่ส่งจากบัตรของบุคคลที่สาม
     Notify_BILL_VALIDATE=ตรวจสอบใบแจ้งหนี้ของลูกค้า
     Notify_BILL_UNVALIDATE=ใบแจ้งหนี้ของลูกค้า unvalidated
    -Notify_BILL_PAYED=ใบแจ้งหนี้ของลูกค้า payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=ยกเลิกใบแจ้งหนี้ของลูกค้า
     Notify_BILL_SENTBYMAIL=ใบแจ้งหนี้ของลูกค้าส่งทางไปรษณีย์
     Notify_BILL_SUPPLIER_VALIDATE=ผู้ผลิตตรวจสอบใบแจ้งหนี้
    -Notify_BILL_SUPPLIER_PAYED=ใบแจ้งหนี้ผู้ผลิต payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=ใบแจ้งหนี้ที่ผู้ผลิตส่งทางไปรษณีย์
     Notify_BILL_SUPPLIER_CANCELED=ผู้ผลิตยกเลิกใบแจ้งหนี้
     Notify_CONTRACT_VALIDATE=การตรวจสอบสัญญา
     Notify_FICHEINTER_VALIDATE=การแทรกแซงการตรวจสอบ
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=การแทรกแซงส่งทางไปรษณีย์
     Notify_SHIPPING_VALIDATE=การจัดส่งสินค้าผ่านการตรวจสอบ
     Notify_SHIPPING_SENTBYMAIL=การจัดส่งสินค้าส่งทางไปรษณีย์
     Notify_MEMBER_VALIDATE=สมาชิกผ่านการตรวจสอบ
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=การสร้างโครงการ
     Notify_TASK_CREATE=งานที่สร้างขึ้น
     Notify_TASK_MODIFY=งานการแก้ไข
     Notify_TASK_DELETE=งานที่ถูกลบ
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=ดูการตั้งค่าของโมดูล% s
     NbOfAttachedFiles=จำนวนแนบไฟล์ / เอกสาร
     TotalSizeOfAttachedFiles=ขนาดของไฟล์ที่แนบมา / เอกสาร
     MaxSize=ขนาดสูงสุด
     AttachANewFile=แนบไฟล์ใหม่ / เอกสาร
     LinkedObject=วัตถุที่เชื่อมโยง
    -NbOfActiveNotifications=จำนวนการแจ้งเตือน (nb ของอีเมลผู้รับ)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>ศ Id% s</b> ข้อมูลขึ้นอยู่กับประเทศของบุคคลที่สาม <br> <b>ตัวอย่างเช่นสำหรับประเทศ% s ก็รหัส%</b> s
     DolibarrDemo=Dolibarr ERP / CRM สาธิต
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=การแทรกแซง% s ได้รับการตรวจสอบ
     EMailTextInvoiceValidated=ใบแจ้งหนี้% s ได้รับการตรวจสอบ
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=ข้อเสนอของ% s ได้รับการตรวจสอบ
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=% s เพื่อได้รับการตรวจสอบ
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=เพื่อ% s ได้รับการอนุ
     EMailTextOrderRefused=% s เพื่อได้รับการปฏิเสธ
     EMailTextOrderRefusedBy=เพื่อ% s ได้รับการปฏิเสธโดย% s
     EMailTextExpeditionValidated=จัดส่ง% s ได้รับการตรวจสอบ
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=การนำเข้าข้อมูลที่ตั้ง
     DolibarrNotification=การแจ้งเตือนอัตโนมัติ
     ResizeDesc=<b>ป้อนความกว้างใหม่หรือสูงใหม่</b> อัตราส่วนจะถูกเก็บไว้ในช่วงการปรับขนาด ...
    @@ -204,7 +214,7 @@ NewLength=ความกว้างของใหม่
     NewHeight=ความสูงใหม่
     NewSizeAfterCropping=ขนาดใหม่หลังจากการปลูกพืช
     DefineNewAreaToPick=กำหนดพื้นที่ใหม่ที่ภาพเพื่อเลือก (ซ้ายคลิกที่ภาพแล้วลากจนกว่าจะถึงมุมตรงข้าม)
    -CurrentInformationOnImage=เครื่องมือนี้ถูกออกแบบมาเพื่อช่วยให้คุณสามารถปรับขนาดหรือตัดภาพ นี้เป็นข้อมูลเกี่ยวกับการแก้ไขภาพปัจจุบัน
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=โปรแกรมแก้ไขภาพ
     YouReceiveMailBecauseOfNotification=คุณได้รับข้อความนี้เนื่องจากอีเมลของคุณได้รับการเพิ่มรายชื่อของเป้าหมายที่จะได้รับทราบถึงเหตุการณ์ที่เกิดขึ้นโดยเฉพาะอย่างยิ่งเข้าไปในซอฟต์แวร์% ของ% s
     YouReceiveMailBecauseOfNotification2=เหตุการณ์นี้เป็นดังต่อไปนี้:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=พื้นที่การส่งออก
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=ชื่อเรื่อง
     WEBSITE_DESCRIPTION=ลักษณะ
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/th_TH/paybox.lang b/htdocs/langs/th_TH/paybox.lang
    index c7ee1c0d3ad..3c36ccf09b3 100644
    --- a/htdocs/langs/th_TH/paybox.lang
    +++ b/htdocs/langs/th_TH/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox ติดตั้งโมดูล
     PayBoxDesc=หน้าเสนอโมดูลนี้จะอนุญาตให้มีการชำระเงินใน <a href="http://www.paybox.com" target="_blank">Paybox</a> จากลูกค้า นี้สามารถใช้สำหรับการชำระเงินฟรีหรือการชำระเงินบนวัตถุโดยเฉพาะอย่างยิ่ง Dolibarr (ใบแจ้งหนี้การสั่งซื้อ ... )
     FollowingUrlAreAvailableToMakePayments=URL ต่อไปนี้จะพร้อมที่จะให้หน้าให้กับลูกค้าที่จะทำให้การชำระเงินบนวัตถุ Dolibarr
     PaymentForm=รูปแบบการชำระเงิน
    -WelcomeOnPaymentPage=ยินดีต้อนรับในการให้บริการการชำระเงินออนไลน์ของเรา
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=หน้าจอนี้จะช่วยให้คุณสามารถชำระเงินออนไลน์ไปยัง% s
     ThisIsInformationOnPayment=นี้เป็นข้อมูลเกี่ยวกับการชำระเงินที่จะทำ
     ToComplete=ให้เสร็จสมบูรณ์
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL ที่จะนำเสนอส
     ToOfferALinkForOnlinePaymentOnContractLine=URL ที่จะนำเสนอส่วนติดต่อผู้ใช้การชำระเงินออนไลน์% s สำหรับสายสัญญา
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL ที่จะนำเสนอส่วนติดต่อผู้ใช้การชำระเงินออนไลน์ s% สำหรับจำนวนเงินที่ฟรี
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL ที่จะนำเสนอส่วนติดต่อผู้ใช้การชำระเงินออนไลน์% s สำหรับการสมัครสมาชิก
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=นอกจากนี้คุณยังสามารถเพิ่มพารามิเตอร์ URL <b>และแท็ก = <i>ค่าใด</i></b> ๆ ของ URL เหล่านั้น (ที่จำเป็นเท่านั้นสำหรับการชำระเงินฟรี) เพื่อเพิ่มแท็กความคิดเห็นการชำระเงินของคุณเอง
    -SetupPayBoxToHavePaymentCreatedAutomatically=ติดตั้ง PayBox <b>ของคุณด้วยสมาชิก% s</b> จะมีการชำระเงินที่สร้างขึ้นโดยอัตโนมัติเมื่อมีการตรวจสอบโดย paybox
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=หน้านี้ยืนยันว่าชำระเงินของคุณได้รับการบันทึก ขอบคุณ
    -YourPaymentHasNotBeenRecorded=ชำระเงินที่คุณยังไม่ได้รับการบันทึกไว้และได้รับการยกเลิกการทำธุรกรรม ขอบคุณ
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=พารามิเตอร์บัญชี
     UsageParameter=พารามิเตอร์การใช้งาน
     InformationToFindParameters=ช่วยในการหาข้อมูลเกี่ยวกับบัญชีของคุณ s%
    diff --git a/htdocs/langs/th_TH/projects.lang b/htdocs/langs/th_TH/projects.lang
    index d5546ceb21c..e4e419099dd 100644
    --- a/htdocs/langs/th_TH/projects.lang
    +++ b/htdocs/langs/th_TH/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=แสดงโครงการ
     ShowTask=แสดงงาน
     SetProject=โครงการตั้ง
     NoProject=ไม่มีโครงการที่กำหนดไว้หรือเป็นเจ้าของ
    -NbOfProjects=nb ของโครงการ
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=เวลาที่ใช้
     TimeSpentByYou=เวลาที่ใช้โดยคุณ
     TimeSpentByUser=เวลาที่ใช้โดยผู้ใช้
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=รายชื่อของข้อเสนอในเชิงพาณิชย์ที่เกี่ยวข้องกับโครงการ
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=รายการของสัญญาที่เกี่ยวข้องกับโครงการ
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=รายชื่อของการแทรกแซงที่เกี่ยวข้องกับโครงการ
    -ListExpenseReportsAssociatedProject=รายชื่อของรายงานค่าใช้จ่ายที่เกี่ยวข้องกับการโครงการ
    -ListDonationsAssociatedProject=รายชื่อของการบริจาคที่เกี่ยวข้องกับการโครงการ
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=รายการของเหตุการณ์ที่เกี่ยวข้องกับโครงการ
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=รายชื่อของเวลาที่ใช้ในงานของโครงการ
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=กิจกรรมในโครงการในวันนี้
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=เชื่อมโยงไปยังบุคคล
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=เวลาที่ใช้เป็นที่ว่างเปล่า
     ThisWillAlsoRemoveTasks=การดำเนินการนี้จะลบงานทั้งหมดของโครงการ <b>(% s</b> งานในขณะนี้) และปัจจัยการผลิตทั้งหมดของเวลาที่ใช้
    -IfNeedToUseOhterObjectKeepEmpty=หากวัตถ​​ุบางอย่าง (ใบแจ้งหนี้การสั่งซื้อ ... ) เป็นของอีกบุคคลที่สามจะต้องเชื่อมโยงกับโครงการที่จะสร้างให้ที่ว่างเปล่านี้จะมีโครงการที่เป็นบุคคลที่สามหลาย
    +IfNeedToUseOtherObjectKeepEmpty=หากวัตถ​​ุบางอย่าง (ใบแจ้งหนี้การสั่งซื้อ ... ) เป็นของอีกบุคคลที่สามจะต้องเชื่อมโยงกับโครงการที่จะสร้างให้ที่ว่างเปล่านี้จะมีโครงการที่เป็นบุคคลที่สามหลาย
     CloneProject=โครงการโคลน
     CloneTasks=งานโคลน
     CloneContacts=รายชื่อโคลน
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=งาน% s สร้าง
     TaskModifiedInDolibarr=งาน% s การแก้ไข
     TaskDeletedInDolibarr=งาน% s ลบ
    -OpportunityStatus=สถานะโอกาส
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=จำนวนเงินที่มีโอกาส
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=ผู้สนับสนุ
     SelectElement=องค์ประกอบที่เลือก
     AddElement=เชื่อมโยงไปยังองค์ประกอบ
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=ภาระงานที่วางแผนไว้
     PlannedWorkloadShort=จำนวนงาน
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=โครงการที่มีผู้ใ
     TasksWithThisUserAsContact=Tasks ได้รับมอบหมายให้ผู้ใช้รายนี้
     ResourceNotAssignedToProject=ไม่ได้กำหนดโครงการ
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=มอบหมายงานให้ฉัน
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=กำหนด
     ProjectOverview=ภาพรวม
    -ManageTasks=ใช้โครงการที่จะปฏิบัติตามงานและเวลา
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=ใช้โครงการที่จะนำไปสู่​​การปฏิบัติตาม / opportinuties
    -ProjectNbProjectByMonth=nb ของโครงการที่สร้างขึ้นโดย
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=สถิติในโครงการ / โอกาสในการขาย
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=งานที่ได้รับมอบหมาย เข้าครั้งในงานนี้จะเป็นไปได้
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=ข้อเสนอ
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/th_TH/propal.lang b/htdocs/langs/th_TH/propal.lang
    index c4ae988632c..4cbd7a4f08f 100644
    --- a/htdocs/langs/th_TH/propal.lang
    +++ b/htdocs/langs/th_TH/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=ลงนาม (ความต้องการของ
     PropalStatusNotSigned=ไม่ได้ลงชื่อ (ปิด)
     PropalStatusBilled=การเรียกเก็บเงิน
     PropalStatusDraftShort=ร่าง
    -PropalStatusValidatedShort=ผ่านการตรวจสอบ
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=ปิด
     PropalStatusSignedShort=ลงนาม
     PropalStatusNotSignedShort=ไม่ได้ลงนาม
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal% s ไม่พบ
     AddToDraftProposals=เพิ่มลงในร่างข้อเสนอ
     NoDraftProposals=ไม่มีร่างข้อเสนอ
     CopyPropalFrom=สร้างข้อเสนอในเชิงพาณิชย์โดยการคัดลอกข้อเสนอที่มีอยู่
    -CreateEmptyPropal=สร้างข้อเสนอในเชิงพาณิชย์ว่าง Vierge หรือจากรายการของผลิตภัณฑ์ / บริการ
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=ระยะเวลาเริ่มต้นความถูกต้องข้อเสนอในเชิงพาณิชย์ (ในวัน)
    -UseCustomerContactAsPropalRecipientIfExist=ใช้ที่อยู่การติดต่อกับลูกค้าถ้ากำหนดไว้แทนการที่อยู่ของบุคคลที่สามเป็นที่อยู่ของผู้รับข้อเสนอ
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=ข้อเสนอในเชิงพาณิชย์โคลน
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=การติดต่อกับลู
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=รูปแบบข้อเสนอฉบับสมบูรณ์ (โลโก้ ... )
    +DocModelCyanDescription=รูปแบบข้อเสนอฉบับสมบูรณ์ (โลโก้ ... )
     DefaultModelPropalCreate=เริ่มต้นการสร้างแบบจำลอง
     DefaultModelPropalToBill=แม่แบบเริ่มต้นเมื่อปิดข้อเสนอทางธุรกิจ (ที่จะออกใบแจ้งหนี้)
     DefaultModelPropalClosed=แม่แบบเริ่มต้นเมื่อปิดข้อเสนอทางธุรกิจ (ยังไม่เรียกเก็บ)
    diff --git a/htdocs/langs/th_TH/website.lang b/htdocs/langs/th_TH/website.lang
    index 84689754fdd..e2d2360c13c 100644
    --- a/htdocs/langs/th_TH/website.lang
    +++ b/htdocs/langs/th_TH/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=รหัส
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=อ่าน
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang
    index f9e263cf3d1..7cd5511fb61 100644
    --- a/htdocs/langs/tr_TR/accountancy.lang
    +++ b/htdocs/langs/tr_TR/accountancy.lang
    @@ -35,16 +35,20 @@ JournalizationInLedgerStatus=Günlükleme durumu
     AlreadyInGeneralLedger=Already journalized in ledgers
     NotYetInGeneralLedger=Not yet journalized in ledgers
     GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accounting group
    -DetailByAccount=Show detail by account
    -AccountWithNonZeroValues=Accounts with non zero values
    -ListOfAccounts=List of accounts
    +DetailByAccount=Hesaba göre detayları göster
    +AccountWithNonZeroValues=Accounts with non-zero values
    +ListOfAccounts=Hesap listesi
    +CountriesInEEC=Avrupa Ekonomi Topluluğu'ndaki Ülkeler
    +CountriesNotInEEC=Avrupa Ekonomi Topluluğu'nda Olmayan Ülkeler
    +CountriesInEECExceptMe=%s hariç Avrupa Ekonomi Topluluğu ülkeleri
    +CountriesExceptMe=%s hariç tüm ülkeler
     
    -MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
    -MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup
    -MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
    -MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
    +MainAccountForCustomersNotDefined=Müşteriler için ana muhasebe hesabı kurulumda tanımlı değil
    +MainAccountForSuppliersNotDefined=Tedarikçiler için ana muhasebe hesabı kurulumda tanımlı değil
    +MainAccountForUsersNotDefined=Kullanıcılar için ana muhasebe hesabı kurulumda tanımlı değil
    +MainAccountForVatPaymentNotDefined=KDV ödemesi için ana muhasebe hesabı kurulumda tanımlı değil
     
    -AccountancyArea=Accounting area
    +AccountancyArea=Muhasebe alanı
     AccountancyAreaDescIntro=Muhasebe modülünün kullanımı birkaç adımda tamamlanır:
     AccountancyAreaDescActionOnce=Aşağıdaki eylemler genellikle yalnızca bir kere veya yılda bir kez gerçekleştirilir...
     AccountancyAreaDescActionOnceBis=Günlükleme yaparken (Günlüklere ve Genel deftere kayıt girme) size doğru varsayılan muhasebe hesabı önererek zamandan tasarruf etmenizi sağlamak için sonraki adımlar tamamlanmalıdır.
    @@ -55,7 +59,7 @@ AccountancyAreaDescChartModel=ADIM %s: "%s" menüsünü kullanarak hesap planı
     AccountancyAreaDescChart=ADIM %s: "%s" menüsünü kullanarak hesap planınızın içeriğini oluşturun veya kontrol edin.
     
     AccountancyAreaDescVat=ADIM %s: "%s" menüsünü kullanarak her bir KDV Oranı için muhasebe hesaplarını tanımlayın.
    -AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
    +AccountancyAreaDescDefault=ADIM %s: "%s" menüsünü kullanarak varsayılan muhasebe hesaplarını tanımlayın.
     AccountancyAreaDescExpenseReport=ADIM %s: "%s" menüsünü kullanarak her bir harcama raporu türü için varsayılan muhasebe hesaplarını tanımlayın.
     AccountancyAreaDescSal=ADIM %s: "%s" menüsünü kullanarak maaş ödemeleri için varsayılan muhasebe hesaplarını tanımlayın.
     AccountancyAreaDescContrib=ADIM %s: "%s" menüsünü kullanarak özel harcamalar (çeşitli vergiler) için varsayılan muhasebe hesaplarını tanımlayın.
    @@ -73,13 +77,13 @@ AccountancyAreaDescClosePeriod=ADIM %s: Dönemi kapatın, böylece ileride bir d
     
     TheJournalCodeIsNotDefinedOnSomeBankAccount=Kurulumda zorunlu bir adım tamamlanmadı (muhasebe kodu günlüğü tüm banka hesapları için tanımlı değil)
     Selectchartofaccounts=Etkin hesap planı seç
    -ChangeAndLoad=Change and load
    +ChangeAndLoad=Değiştir ve yükle
     Addanaccount=Muhasebe hesabı ekle
     AccountAccounting=Muhasebe hesabı
     AccountAccountingShort=Hesap
     SubledgerAccount=Subledger Account
    -ShowAccountingAccount=Show accounting account
    -ShowAccountingJournal=Show accounting journal
    +ShowAccountingAccount=Muhasebe hesabını göster
    +ShowAccountingJournal=Muhasebe günlüğünü göster
     AccountAccountingSuggest=Önerilen muhasebe hesabı
     MenuDefaultAccounts=Varsayılan hesaplar
     MenuBankAccounts=Banka hesapları
    @@ -91,7 +95,7 @@ MenuProductsAccounts=Ürün hesapları
     ProductsBinding=Ürün hesapları
     Ventilation=Hesaba bağlama
     CustomersVentilation=Müşteri faturası bağlama
    -SuppliersVentilation=Vendor invoice binding
    +SuppliersVentilation=Tedarikçi faturası bağlama
     ExpenseReportsVentilation=Gider raporu bağlama
     CreateMvts=Yeni işlem oluştur
     UpdateMvts=İşlemi değiştir
    @@ -101,7 +105,7 @@ Bookkeeping=Büyük Defter
     AccountBalance=Hesap bakiyesi
     ObjectsRef=Source object ref
     CAHTF=Total purchase supplier before tax
    -TotalExpenseReport=Total expense report
    +TotalExpenseReport=Toplam gider raporu
     InvoiceLines=Bağlanacak fatura satırları
     InvoiceLinesDone=Bağlı fatura satırları
     ExpenseReportLines=Lines of expense reports to bind
    @@ -110,13 +114,13 @@ IntoAccount=Satırı muhasebe hesabına bağla
     
     
     Ventilate=Bağla
    -LineId=Id line
    +LineId=Kimlik satırı
     Processing=İşleme
     EndProcessing=İşlem sonlandırıldı.
     SelectedLines=Seçilen satırlar
     Lineofinvoice=Fatura satırı
    -LineOfExpenseReport=Line of expense report
    -NoAccountSelected=No accounting account selected
    +LineOfExpenseReport=Gider raporu satırı
    +NoAccountSelected=Hiçbir muhasebe hesabı seçilmedi
     VentilatedinAccount=Muhasebe hesabına başarıyla bağlandı
     NotVentilatedinAccount=Muhasebe hesabına bağlı değil
     XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
    @@ -156,6 +160,7 @@ Docref=Referans
     LabelAccount=Hesap etiketi
     LabelOperation=Label operation
     Sens=Sens (borsa haberleri yayınlama günlüğü)
    +LetteringCode=Lettering code
     Codejournal=Günlük
     NumPiece=Parça sayısı
     TransactionNumShort=Num. transaction
    @@ -182,12 +187,12 @@ ProductAccountNotDefined=Account for product not defined
     FeeAccountNotDefined=Account for fee not defined
     BankAccountNotDefined=Account for bank not defined
     CustomerInvoicePayment=Müşteri faturası ödemesi
    -ThirdPartyAccount=Third party account
    +ThirdPartyAccount=Üçüncü parti hesabı
     NewAccountingMvt=Yeni İşlem
     NumMvts=İşlem hareket sayısı
     ListeMvts=Hareketler Listesi
     ErrorDebitCredit=Borç ve Alacak aynı anda bir değere sahip olamaz
    -AddCompteFromBK=Add accounting accounts to the group
    +AddCompteFromBK=Gruba muhasebe hesapları ekle
     ReportThirdParty=Üçüncü taraf hesabını listele
     DescThirdPartyReport=Consult here the list of the third party customers and vendors and their accounting accounts
     ListAccounts=Muhasebe hesapları listesi
    @@ -196,15 +201,15 @@ UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
     UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unknown third party account and waiting account not defined. Blocking error
     PaymentsNotLinkedToProduct=Payment not linked to any product / service
     
    -Pcgtype=Group of account
    -Pcgsubtype=Subgroup of account
    -PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criterias for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
    +Pcgtype=Hesap grubu
    +Pcgsubtype=Hesap alt grubu
    +PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
     
     TotalVente=Vergi öncesi toplam gelir
     TotalMarge=Toplam satışlar kar oranı
     
     DescVentilCustomer=Burada bir ürün hesabına bağlı (ya da bağlı olmayan) müşteri faturaları satırları listesine bakın.
    -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
    +DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "<strong>%s</strong>".
     DescVentilDoneCustomer=Burada müşteri faturaları satırlarına ve onların ürün muhasebe hesabı listesine bakın
     DescVentilTodoCustomer=Bir ürün muhasebe hesabı ile bağlı olmayan müşteri faturaları satırlarını bağlayın
     ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account:
    @@ -213,14 +218,15 @@ DescVentilSupplier=Consult here the list of vendor invoice lines bound or not ye
     DescVentilDoneSupplier=Consult here the list of the lines of invoices vendors and their accounting account
     DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account
     DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account
    -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on fees dictionary or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
    +DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on fees dictionary or if you still have some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
     DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account
     
    -ValidateHistory=Bind Automatically
    -AutomaticBindingDone=Automatic binding done
    +ValidateHistory=Otomatik Olarak Bağla
    +AutomaticBindingDone=Otomatik bağlama bitti
     
     ErrorAccountancyCodeIsAlreadyUse=Hata, kullanıldığı için bu muhasebe hesabını silemezsiniz
     MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s
    +Balancing=Balancing
     FicheVentilation=Binding card
     GeneralLedgerIsWritten=Transactions are written in the Ledger
     GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized.
    @@ -232,18 +238,18 @@ NotYetAccounted=Not yet accounted in ledger
     
     ## Admin
     ApplyMassCategories=Toplu kategori uygula
    -AddAccountFromBookKeepingWithNoCategories=Available acccount not yet in a personalized group
    +AddAccountFromBookKeepingWithNoCategories=Available account not yet in a personalized group
     CategoryDeleted=Category for the accounting account has been removed
     AccountingJournals=Muhasebe günlükleri
    -AccountingJournal=Accounting journal
    -NewAccountingJournal=New accounting journal
    -ShowAccoutingJournal=Show accounting journal
    +AccountingJournal=Muhasebe günlüğü
    +NewAccountingJournal=Yeni muhasebe günlüğü
    +ShowAccoutingJournal=Muhasebe günlüğünü göster
     Nature=Niteliği
    -AccountingJournalType1=Miscellaneous operations
    +AccountingJournalType1=Çeşitli işlemler
     AccountingJournalType2=Satışlar
     AccountingJournalType3=Alışlar
     AccountingJournalType4=Banka
    -AccountingJournalType5=Expenses report
    +AccountingJournalType5=Gider raporu
     AccountingJournalType8=Envanter
     AccountingJournalType9=Has-new
     ErrorAccountingJournalIsAlreadyUse=This journal is already use
    @@ -262,7 +268,8 @@ Modelcsv_quadratus=Quadratus QuadraCompta'ya doğru dışaaktar
     Modelcsv_ebp=EBP'ye yönelik dışaaktarım
     Modelcsv_cogilog=Cogilog'a dışaaktar
     Modelcsv_agiris=Export towards Agiris
    -Modelcsv_configurable=Export Configurable
    +Modelcsv_configurable=Export CSV Configurable
    +Modelcsv_FEC=Export FEC (Art. L47 A) (Test)
     ChartofaccountsId=Hesap planı Id
     
     ## Tools - Init accounting account on product / service
    @@ -292,15 +299,15 @@ ErrorNoAccountingCategoryForThisCountry=No accounting account group available fo
     ErrorInvoiceContainsLinesNotYetBounded=You try to journalize some lines of the invoice <strong>%s</strong>, but some other lines are not yet bounded to accounting account. Journalization of all invoice lines for this invoice are refused.
     ErrorInvoiceContainsLinesNotYetBoundedShort=Some lines on invoice are not bound to accounting account.
     ExportNotSupported=Ayarlanan dışaaktarım biçimi bu sayfada desteklenmiyor
    -BookeppingLineAlreayExists=Satırlar zaten muhasebede bulunmaktadır
    +BookeppingLineAlreayExists=Lines already existing into bookkeeping
     NoJournalDefined=No journal defined
     Binded=Bağlanmış satırlar
     ToBind=Bağlanacak satırlar
    -UseMenuToSetBindindManualy=Autodection not possible, use menu <a href="%s">%s</a> to make the binding manually
    +UseMenuToSetBindindManualy=Lines not yet bound, use menu <a href="%s">%s</a> to make the binding manually
     
     ## Import
     ImportAccountingEntries=Accounting entries
     
    -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
    +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
     ExpenseReportJournal=Expense Report Journal
     InventoryJournal=Inventory Journal
    diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang
    index fdb0612b29d..50e87ceb26a 100644
    --- a/htdocs/langs/tr_TR/admin.lang
    +++ b/htdocs/langs/tr_TR/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Geliştirme
     VersionUnknown=Bilinmeyen
     VersionRecommanded=Önerilen
     FileCheck=Dosya bütünlüğü denetleyicisi
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Genel sağlama toplamı
     MakeIntegrityAnalysisFrom=Uygulama dosyalarının bütünlük analizini yapın
    @@ -30,14 +30,14 @@ SessionSaveHandler=Oturum kayıt yürütücüsü
     SessionSavePath=Kayıt oturumu konumlandırma
     PurgeSessions=Oturum Temizleme
     ConfirmPurgeSessions=Tüm oturumları gerçekten temizlemek istiyor musunuz? Bu işlem (kendiniz hariç), tüm kullanıcıların bağlantılarını kesecektir.
    -NoSessionListWithThisHandler=PHP nizde yapılandırılmış olan oturum kayıt işlemcisi çalışmakta olan tüm oturumların listelenmesine izin vermiyor.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Yeni bağlantıları kilitle
    -ConfirmLockNewSessions=Herhangi bir yeni Dolibarr bağlantısını yalnız kendinizle kısıtlamak istediğinizden emin misiniz? Bundan sonra yalnızca <b>%s</b> kullanıcısı bağlanabilecektir.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Bağlantı kilidini kaldır
     YourSession=Oturumunuz
    -Sessions=Kullanıcı oturumu
    +Sessions=Kullanıcılar oturumları
     WebUserGroup=Web sunucusu kullanıcısı/grubu
    -NoSessionFound=PHP niz etkin oturumların listelenmesine izin vermiyor gibi görünüyor. Oturumları kaydetmek için kullanılan (<b>%s</b>) dizini korumalı olabilir (Örneğin, işletim sistemi izinleri ve PHP yönergesi open_basedir tarafından korunuyor olabilir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Veri kaydı için veritabanı karakter seti
     DBSortingCharset=Veri sıralamak için veritabanı karakter seti
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Dış kullanıcı
     InternalUsers=İç kullanıcılar
     ExternalUsers=Dış kullanıcılar
     GUISetup=Ekran
    -SetupArea=Ayarlar alanı
    +SetupArea=Ayarlar
     UploadNewTemplate=Yeni şablon(lar) yükleyin
     FormToTestFileUploadForm=Dosya yükleme deneme formu (ayarlara göre)
     IfModuleEnabled=Not: yalnızca <b>%s</b> modülü etkinleştirildiğinde evet etkilidir.
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Kod 0 değerini içeremez
     DisableJavascript=Javascript ve Ajax fonksiyonlarını engelle (Görme engelli kişiler ve metin tarayıcılar için önerilir)
     UseSearchToSelectCompanyTooltip=Ayrıca çok fazla sayıda üçüncü partiniz varsa (>100 000), Kurulum->Diğer den COMPANY_DONOTSEARCH_ANYWHERE değişmezini 1 e ayarlayarak hızı arttırabilirsiniz. Sonra arama dizenin başlamasıyla sınırlı olacaktır.
     UseSearchToSelectContactTooltip=Ayrıca çok fazla sayıda üçüncü partiniz varsa (>100 000), Kurulum->Diğer den CONTACT_DONOTSEARCH_ANYWHERE değişmezini 1 e ayarlayarak hızı arttırabilirsiniz. Sonra arama dizenin başlamasıyla sınırlı olacaktır.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Aramayı başlatacak karakter sayısı: %s
     NotAvailableWhenAjaxDisabled=Ajax devre dışı olduğunda kullanılamaz
     AllowToSelectProjectFromOtherCompany=Bir üçüncü parti belgesinde, başka bir üçüncü partiye bağlantılı bir proje seçilebilir
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Önizleme yok
     ThemeCurrentlyActive=Geçerli etkin tema
     CurrentTimeZone=PHP Saat Dilimi (sunucu)
     MySQLTimeZone=ZamanDilimi MySql (veritabanı)
    -TZHasNoEffect=Tarihler, sanki gönderilen dizeler olarak tutulmuş gibi veritabanı sunucusu tarafından saklanır ve çağrılır. Zaman dilimi yalnızca UNIX_TIMESTAMP işlevi kullanılırken etkilenir (bu Dolibarr tarafından kullanılmamalıdır, böylece ZD veritabanının hiçbir etkisi olmaz, veri girildikten sonra değiştirilse bile)
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Boşluk
     Table=Tablo
     Fields=Alanlar
    @@ -111,7 +111,7 @@ NotConfigured=Modül/Uygulama yapılandırılmadı
     Active=Etkin
     SetupShort=Ayarlar
     OtherOptions=Diğer seçenekler
    -OtherSetup=Diğer ayarlar
    +OtherSetup=Diğer Ayarlar
     CurrentValueSeparatorDecimal=Ondalık ayırıcı
     CurrentValueSeparatorThousand=Binlik ayırıcı
     Destination=Hedef
    @@ -126,12 +126,12 @@ PHPTZ=PHP Saat Dilimi (sunucu)
     DaylingSavingTime=Yaz saati uygulaması
     CurrentHour=PHP saati (sunucu)
     CurrentSessionTimeOut=Geçerli oturumun zaman aşımı
    -YouCanEditPHPTZ=Farklı bir PHP zaman dilimi ayarlamak için (gerekli değil), "SetEnv TZ Europe/Istanbul" şeklinde satıra sahip bir .htaccess dosyası eklemeyi deneyebilirsiniz
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Uyarı: Diğer ekranların aksine bu sayfadaki saatler yerel saat diliminizde değil, sunucunun saat dilimindedir.
     Box=Ekran etiketi
     Boxes=Ekran Etiketleri
     MaxNbOfLinesForBoxes=Ekran etiketleri için ençok satır sayısı
    -AllWidgetsWereEnabled=All available widgets are enabled
    +AllWidgetsWereEnabled=Mevcut olan tüm ekran etiketleri etkinleştirildi
     PositionByDefault=Varsayılan sıra
     Position=Durum
     MenusDesc=Menü yöneticisi iki menü çubuğunun içeriğini ayarlar (yatay ve dikey).
    @@ -190,16 +190,16 @@ EncodeBinariesInHexa=İkili veriyi onaltılık olarak kodla
     IgnoreDuplicateRecords=Çifte kayıt hatalarını gözardı et (GÖZARDI ET EKLE)
     AutoDetectLang=Otoalgıla (tarayıcı dili)
     FeatureDisabledInDemo=Özellik demoda devre dışıdır
    -FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Ekran etiketleri, sayfaları kişiselleştirmek için ekleyeceğiniz bazı bilgiler gösteren ekran araçlarıdır. Bu ekran etiketlerini gösterip göstermemeyi seçebilirsiniz ya da hedef sayfayı seçip 'Etkinleştir'e tıklayabilir ya da engellemek için çöp kutusuna tıklayabilirsiniz.
    +FeatureAvailableOnlyOnStable=Özellik sadece resmi olarak kararlı sürümlerde kullanılabilir
    +BoxesDesc=Ekran Etiketleri, bazı sayfaları özelleştirmek için ekleyebileceğiniz çeşitli bilgileri gösteren bileşenlerdir. Hedef sayfayı seçip 'Etkinleştir' seçeneğini tıklayarak ekran etikeni göstermeyi veya çöp kutusuna tıklayarak devre dışı bırakıp göstermemeyi seçebilirsiniz.
     OnlyActiveElementsAreShown=Yalnızca <ahref="modules.php">etkinleştirilmiş modüllerin</a> öğeleri gösterilmiştir.
    -ModulesDesc=Dolibarr modülleri, yazılımda hangi uygulamanın/özelliğin etkinleştirildiğini tanımlar. Bazı uygulamalar/modüller onları etkinleştirdikten sonra kullanıcılara vermeniz gereken izinleri gerektirir. Bir modülü/uygulamayı etkinleştirmek için aç/kapat butonuna tıklayın.
    +ModulesDesc=Modüller/Uygulamalar, hangi özelliklerin yazılımda mevcut olduğunu belirler. Bazı modüller, modülü etkinleştirdikten sonra kullanıcılara izin verilmesini gerektirir. Açma/kapama butonuna (modül satırının sonunda yer alır) tıklayarak ilgili modülü etkinleştirebilir veya devre dışı bırakabilirsiniz.
     ModulesMarketPlaceDesc=Internette dış web sitelerinde indirmek için daha çok modül bulabilirsiniz...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Dış uygulama/modül bul
     ModulesDevelopYourModule=Kendi uygulamanızı/modüllerinizi geliştirin
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Yeni
     FreeModule=Free
     CompatibleUpTo=%ssürümü ile uyumlu 
    @@ -209,10 +209,10 @@ SeeInMarkerPlace=See in Market place
     Updated=Güncellendi
     Nouveauté=Novelty
     AchatTelechargement=Satın Al / Yükle
    -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
    +GoModuleSetupArea=Yeni bir  modül almak/yüklemek için, <a href="%s">%s</a> Modül ayar alanına gidin.
     DoliStoreDesc=DoliStore, Dolibarr ERP/CRM dış modülleri için resmi pazar yeri
    -DoliPartnersDesc=İstek üzerine modül ve özellik geliştiren firmaların listesi. (Not: Açık kaynak kullanan PHP bilen herhangi bir firma size özel geliştirme hizmetleri sağlayabilir)
    -WebSiteDesc=Daha çok modül bulabileceğiniz referans web siteleri...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Kendi modülünüzü geliştirmek için bazı çözümler...
     URL=Bağlantı
     BoxesAvailable=Mevcut ekran etiketleri
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Parolaları veritabanında saklamayın silin, yalnızca
     MainDbPasswordFileConfEncrypted=Veritabanı parolaları conf.php de şifrelendirilmiştir. (Etkinleştirme önerilir)
     InstrucToEncodePass=Parolayı <b>conf.php</b> dosyasına kodlamak için <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b> satırını değiştirin
     InstrucToClearPass=Parolayı <b>conf.php</b> dosyasına kodlamak (temiz) için <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b> satırını değiştirin
    -ProtectAndEncryptPdfFiles=Oluşturulan pdf dosyalarının korunması (Etkinleştirme önerilmez) toplu pdf oluşumunu bozar
    +ProtectAndEncryptPdfFiles=Oluşturulan PDF dosyalarının korunması - ÖNERİLMEZ (toplu PDF oluşturulmasını bozar)
     ProtectAndEncryptPdfFilesDesc=Bir PDF belgesinin korunması dosyanın herhangi bir PDF tarayıcısında okunmasını ve yazdırılmasını sağlar. Bundan düzenleme ve kopyalama yapmak olanaksızdır. Bu özelliği kulanmanın çalışmayan genel kümülatif pdf oluşturduğuna dikkat edin.
     Feature=Özellik
     DolibarrLicense=Lisans
    @@ -246,8 +246,8 @@ ExternalResources=Dış kaynaklar
     SocialNetworks=Sosyal Ağlar
     ForDocumentationSeeWiki=Kullanıcıların ve geliştiricilerin belgeleri (Doc, FAQs…), <br>Dolibarr Wiki ye bir göz atın:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=Herhangi bir başka soru/yardım için Dolibarr forumunu kullanabilirsiniz:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=Bu alan Dolibarr’dan Yardım destek hizmeti almanıza olanak sağlar.
    -HelpCenterDesc2=Bu servisin bir kısmı <b>yalnızca İngilizcedir<b>
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Geçerli menü işlemcisi
     MeasuringUnit=Ölçü birimi
     LeftMargin=Sol kenar boşluğu
    @@ -262,37 +262,41 @@ NoticePeriod=Bildirim dönemi
     NewByMonth=New by month
     Emails=E-postalar
     EMailsSetup=E-posta kurulumları
    -EMailsDesc=Bu sayfa, e-mail gönderimleri için PHP parametrelerinizin üzerine yazmanıza izin verir. Unix/Linux İşletim Sistemlerindeki çoğu durumda, PHP kurulumunuz doğrudur ve bu parametreler işe yaramaz.
    +EMailsDesc=Bu sayfa, e-posta gönderimi için varsayılan PHP parametrelerinizin üzerine yazma imkanı verir. Unix/Linux OS sistemindeki çoğu durumda PHP kurulumu doğrudur ve bu parametreler gereksizdir.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Sunucu (php.ini de varsayılan: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=Php.ini SMTP / SMTPS Host <b>(Varsayılan:% s)</b>
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Unix gibi sistemlerde PHP ye tanıtılmamıştır)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Sunucu (Unix gibi sistemlerde PHP ye tanıtılmamıştır)
    -MAIN_MAIL_EMAIL_FROM=Otomatik e-mailler için gönderen E-posta adresi (php.ini dosyasında varsayılan: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Gönderilen bütün epostaların bir gizli karbon-kopyasını sistemli olarak gönder
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Portu (php.ini içinde varsayılan değer: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Sunucusu (php.ini içinde varsayılan değer: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Portu (Unix benzeri sistemlerdeki PHP'de tanımlanmamış)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Sunucusu (Unix benzeri sistemlerdeki PHP'de tanımlanmamış)
    +MAIN_MAIL_EMAIL_FROM=Otomatik e-postalar için gönderen E-Posta adresi (php.ini içindeki varsayılan değer: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Tüm e-posta gönderimini devre dışı bırak (test veya demo kullanımı için)
     MAIN_MAIL_FORCE_SENDTO=Tüm e-mailleri şu adreslere gönder (gerçek alıcıların yerine, test amaçlı)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=E-posta göndermek için kullanılan yöntem
    -MAIN_MAIL_SMTPS_ID=Doğrulama gerektirdiğinde SMTP Kimliği
    -MAIN_MAIL_SMTPS_PW=Doğrulama gerektirdiğinde SMTP Parolası
    -MAIN_MAIL_EMAIL_TLS= TLS (SSL) şifreleme kullanın
    -MAIN_MAIL_EMAIL_STARTTLS= TLS (STARTTLS) şifreleme kullan
    -MAIN_DISABLE_ALL_SMS=Bütün SMS gönderimlerini devre dışı bırak (test ya da demo amaçlı)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=E-posta gönderme yöntemi
    +MAIN_MAIL_SMTPS_ID=SMTP ID (gönderme sunucusu kimlik doğrulama gerektiriyorsa)
    +MAIN_MAIL_SMTPS_PW=SMTP Şifresi (gönderme sunucusu kimlik doğrulama gerektiriyorsa)
    +MAIN_MAIL_EMAIL_TLS=TLS (SSL) şifreleme kullan
    +MAIN_MAIL_EMAIL_STARTTLS=TLS (STARTTLS) şifreleme kullan
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Tüm SMS gönderimlerini devre dışı bırak (test ya da demo amaçlı)
     MAIN_SMS_SENDMODE=SMS göndermek için kullanılacak yöntem
     MAIN_MAIL_SMS_FROM=SMS gönderimi için varsayılan gönderici telefon numarası
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_DEFAULT_FROMTYPE=Manuel gönderim için varsayılan gönderici e-posta adresi (Kullanıcı e-postası veya Şirket e-postası)
     UserEmail=Kullanıcı email adresi
     CompanyEmail=Firma email adresi
     FeatureNotAvailableOnLinux=Unix gibi sistemlerde bu özellik yoktur.
    -SubmitTranslation=Bu dil için çeviri tamamlanmamışsa ya da hatalar buluyorsanız, bunları <b>langs/%s</b> dizininde düzeltebilir ve değişikliklerinizi www.transifex.com/dolibarr-association/dolibarr/ a gönderebilirsiniz.
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=Bu dil için çeviri tamamlanmamışsa ya da hatalar buluyorsanız, bunları <b>langs/%s</b> dizininde düzeltebilir ve değişikliklerinizi dolibarr.org/forum adresine veya geliştiriciler için github.com/Dolibarr/dolibarr adresine gönderebilirsiniz.
     ModuleSetup=Modül kurulumu
     ModulesSetup=Modül/Uygulama kurulumu
     ModuleFamilyBase=Sistem
     ModuleFamilyCrm=Müşteri İlişkileri Yönetimi (CRM)
    -ModuleFamilySrm=Vendor Relation Management (VRM)
    +ModuleFamilySrm=Tedarikçi İlişkileri Yönetimi (VRM)
     ModuleFamilyProducts=Ürün Yönetimi (ÜY)
     ModuleFamilyHr=İnsan Kaynakları Yönetimi (İK)
     ModuleFamilyProjects=Projeler/Ortak çalışma
    @@ -301,23 +305,23 @@ ModuleFamilyTechnic=Çoklu-Modül araçları
     ModuleFamilyExperimental=Deneysel modüller
     ModuleFamilyFinancial=Mali Modüller (Muhasebe/Hazine)
     ModuleFamilyECM=Elektronik İçerik Yönetimi (ECM)
    -ModuleFamilyPortal=Web siteleri ve diğer ön uygulama
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Dış sistemli arayüzler
     MenuHandlers=Menü işlemcileri
     MenuAdmin=Menü düzenleyici
     DoNotUseInProduction=Üretimde kullanmayın
    -ThisIsProcessToFollow=İşlem adımlarıdır:
    +ThisIsProcessToFollow=İşlem adımlar şunlardır:
     ThisIsAlternativeProcessToFollow=Bu, elle işlem uygulamak için alternatif bir kurulumdur:
     StepNb=Adım %s
    -FindPackageFromWebSite=İstediğiniz özelliği sağlayan bir paket bulun (örneğin; resmi web sitesinden %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Paketi indir (örneğin resmi web sitesinden %s).
    -UnpackPackageInDolibarrRoot=Paket dosyalarını Dolibarr'da dış modüllere ayrılmış sunucu dizini içine ayıkla: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Modül yerleşimi tamamlandı. Bununla birlikte, modül ayarları sayfasına giderek modülleri uygulamanızda etkinleştirmeli ve kurmalısınız: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=Alternatif kök dizin varolan bir dizine tanımlanmamış.<br>
     InfDirAlt=Sürüm 3 ten beri bir alternatif kök dizin tanımlanabiliyor. Bu sizin ayrılmış bir dizine, eklentiler ve özel şablonlar depolamanızı sağlar.<br>Yalnızca Dolibarr kökünde bir dizin oluşturun (örn. özel).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=Bu adım için, modül paketinin .zip dosyasını buraya gönderebilirsiniz:
    +YouCanSubmitFile=Alternatif olarak, modül .zip dosya paketini yükleyebilirsiniz:
     CurrentVersion=Dolibarr geçerli sürümü
     CallUpdatePage=Veritabanı yapısını ve verileri güncelleyen sayfaya git: %s.
     LastStableVersion=Son kararlı sürüm
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Saniye olarak önbellek aktarması tepki gecikmesi (hiç önbellek yoksa 0 ya da boş)
     DisableLinkToHelpCenter=oturum açma sayfasında "<b>Yardım ya da destek gerekli</b>" bağlantısını gizle
     DisableLinkToHelp=Çevrimiçi yardım bağlantısını gizle "<b>%s</b>"
    -AddCRIfTooLong=Otomatik kaydırma yoktur, yani belge üzerinde çok uzun olmasından dolayı satır sayfa sınırı dışına çıkmışsa metin alanında kendiniz satırbaşı yapmalısınız.
    -ConfirmPurge=Bu temizleme işlemini çalıştırmak istediğinizden emin misiniz?<br>Bu işlem tüm veri dosyalarınızı bir daha geri alınamayacak şekilde tamamen silecektir (ECM dosyaları, ekli dosyalar…).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Enaz uzunluk
     LanguageFilesCachedIntoShmopSharedMemory=.lang dosyaları paylaşılan hafızaya yüklendi.
     LanguageFile=Dil dosyası
    -ExamplesWithCurrentSetup=Geçerli çalışan ayarlama örnekleri
    +ExamplesWithCurrentSetup=Tanımladığınız mevcut yapılandırma için örnekler
     ListOfDirectories=OpenDocument (AçıkBelge) temaları dizin listesi
     ListOfDirectoriesForModelGenODT=OpenDocument biçimli şablon dosyalarını içeren dizinler listesi.<br><br>Buraya tam yol dizinlerini koyun.<br>Her dizin arasına satır başı ekleyin.<br>GED modülü dizinini eklemek için buraya ekleyin<b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>O dizinlerdeki dosyaların bitiş şekli böyle omalıdır <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=O dizinlerde bulunan ODT/ODS şablon dosyası sayısı
    +NumberOfModelFilesFound=Bu dizinlerde bulunana ODT/ODS şablon dosyalarının sayısı 
     ExampleOfDirectoriesForModelGen=Sözdizimi örnekleri:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>Odt belge şablonlarının nasıl oluşturulacağını öğrenmek için o dizinlere kaydetmeden önce, wiki belgelerini okuyun:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Web Hizmetleri kullanmak için anahtar (webhizmetlerinde
     TestSubmitForm=Test formu girişi
     ThisForceAlsoTheme=Bu menü yöneticisi kullanıcı seçimi ne olursa olsun yine de kendi temasını kullanacaktır. Ayrıca bu menü yöneticisi akıllı telefonlar üzerinde çalışmayan akıllı telefonlar için özelleştirilmiştir. Kendinizinkinde bir sorun yaşarsanız başka bir menü yöneticisi kullanın.
     ThemeDir=Kaplama dizini
    -ConnectionTimeout=Bağlantı zaman aşımı
    +ConnectionTimeout=Bağlantı zamanaşımı
     ResponseTimeout=Tepki zaman aşımı
     SmsTestMessage=__ARAYANTEL__ den __ARANANTEL__ e test mesajı
     ModuleMustBeEnabledFirst=Bu özelliğe gereksinim duyarsanız öne <b>%s</b> modülünü etkinleştirmelisiniz.
     SecurityToken=URL leri güvenli kılmak için anahtar
    -NoSmsEngine=SMS gönderen yöneticisi yoktur. SMS gönderen yöneticisi varsayılan dağıtım ile kurulmamış (çünkü dış bir tedarikçiye bağlıdır) fakat http://www.dolistore.com adresinde bazılarını bulabilirsiniz
    +NoSmsEngine=Sitemde hiç bir SMS gönderme yöneticisi mevcut değil. Standart Dolibarr sürümü ile bir SMS gönderme yöneticisi yüklü gelmez, çünkü bunlar bir dış sağlayıcıya bağlıdır. Yine de %s'da birkaç tane bulabilirsiniz.
     PDF=PDF
    -PDFDesc=PDF oluşturma ile ilgili her genel seçeneği ayarlayabilirsiniz.
    +PDFDesc=PDF oluşturma ile ilgili her global seçeneği ayarlayabilirsiniz
     PDFAddressForging=Adres kutusu şekillendirme kuralları
    -HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
    -PDFRulesForSalesTax=Rules for Sales Tax / VAT
    +HideAnyVATInformationOnPDF=Oluşturulan PDF'lerde satış vergisi / KDV ile ilgili tüm bilgileri gizle
    +PDFRulesForSalesTax=Satış Vergisi / KDV için Kurallar
     PDFLocaltax=%siçin kurallar 
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Oluşturulan PDF de ürün açıklamasını gizle
     HideRefOnPDF=Oluşturulan PDF te ürün ref. ini gizle
     HideDetailsOnPDF=Oluşturulan PDF te ürün satır ayrıntılarını gizle
    @@ -387,14 +391,14 @@ UrlGenerationParameters=URL güvenliği için parametreler
     SecurityTokenIsUnique=Her URL için benzersiz bir güvenlik anahtarı kullan
     EnterRefToBuildUrl=Nesen %s için hata referansı
     GetSecuredUrl=Hesaplanan URL al
    -ButtonHideUnauthorized=Yetkisiz eylemler için yönetici olmayanlara engelli düğmeleri gri renkte göstermek yerine onları gizleyin
    +ButtonHideUnauthorized=Yönetici olmayan kullanıcıların yetkisiz eylemlerinin önüne geçmek için, butonları gri ve engellenmiş olarak göstermek yerine tamamen gizle.
     OldVATRates=Eski KDV oranı
     NewVATRates=Yeni KDV oranı
     PriceBaseTypeToChange=Buna göre tanımlanan temel referans değerli fiyatları değiştir
     MassConvert=Toplu dönüştürmeyi başlat
     String=Dizi
     TextLong=Uzun metin
    -HtmlText=Html text
    +HtmlText=HTML metni
     Int=Tam sayı
     Float=Kayan
     DateAndTime=Tarih ve saat
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Liste seç
     ExtrafieldSelectList = Tablodan seç
     ExtrafieldSeparator=Ayırıcı (bir alan değil)
     ExtrafieldPassword=Parola
    -ExtrafieldRadio=Radyo düğmeleri (sadece seçime bağlı)
    +ExtrafieldRadio=Radyo düğmeleri (sadece bir seçenek)
     ExtrafieldCheckBox=Onay kutuları
     ExtrafieldCheckBoxFromList=Tablodan onay kutuları
     ExtrafieldLink=Bir nesneye bağlantı
     ComputedFormula=Hesaplanmış alan
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Varsayılan bağlantı
     SetAsDefault=Varsayılan olarak ayarla
     ValueOverwrittenByUserSetup=Uyarı, bu değer kullanıcıya özel kurulum ile üzerine yazılabilir (her kullanıcı kendine ait clicktodial url ayarlayabilir)
     ExternalModule=Dış modül - %s dizinine kurulmuştur
    -BarcodeInitForThirdparties=Üçüncü taraflar için toplu barkod başlatma
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Ürünler ve hizmetler için toplu barkod başlatma ve sıfırlama
     CurrentlyNWithoutBarCode=Şu anda, bazı <strong>%s</strong> kayıtlarınızda <strong>%s</strong> %s tanımlı barkod bulunmamaktadır.
     InitEmptyBarCode=Sonraki %s boş kayıt için ilk değer
     EraseAllCurrentBarCode=Geçerli bütün barkod değerlerini sil
     ConfirmEraseAllCurrentBarCode=Geçerli bütün barkod değerlerini silmek istediğinizden emin misiniz?
     AllBarcodeReset=Tüm barkod değerleri silinmiştir
    -NoBarcodeNumberingTemplateDefined=Barkod modülü ayarlarında hiç bir barkod numaralandırma şablonu etkinleştirilmemiştir.
    +NoBarcodeNumberingTemplateDefined=Barkod modülünün ayarlarında hiçbir numaralandırma barkod şablonu etkinleştirilmemiş
     EnableFileCache=Dosya önbelliğini etkinleştir
     ShowDetailsInPDFPageFoot=PDF dosyalarının sayfa altlığına daha çok ayrıntı ekle, firma adresiniz, yönetici isimleri gibi (meslek numara bilgileri, sermaye Vergi numarasıyla tamamlayabilirsiniz).
     NoDetails=Sayfa altığında daha fazla bilgi yok
     DisplayCompanyInfo=Firma adresini göster
     DisplayCompanyManagers=Yönetici isimlerini göster
     DisplayCompanyInfoAndManagers=Firma adresini ve yönetici isimlerini göster
    -EnableAndSetupModuleCron=Eğer bu yinelenen faturanın otomatik olarak oluşturulmasını istiyorsanız, *%s* modülü etkinleştirilmeli ve doğru olarak ayarlanmış olmalı. Aksi durumda, faturaların oluşturulması *Oluştur* düğmesi ile bu şablondan elle yapılmalıdır. Otomatik oluşturmayı etkinleştirmiş olsanız bile yine elle oluşturmayı güvenli bir şekilde yapabilirsiniz. Aynı sırada kopya oluşturma mümkün olmaz.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=Varsayılan olarak, Satın Alma Siparişlerinin 2 farklı kullanıcı tarafından oluşturulması ve onaylanması gerekir (bir adım/kullanıcı oluşturacak ve bir adım/kullanıcı onaylayacak. Kullanıcının hem oluşturma hem de onaylama izni varsa, bir adım/kullanıcı yeterli olacaktır). Miktar belirli bir değerin üzerindeyse bu seçenekle üçüncü bir adım/kullanıcı onayı vermeyi isteyebilirsiniz (böylece 3 adım zorunlu olacaktır: 1=doğrulama, 2=ilk onay ve 3=miktar yeterli ise ikinci onay).<br>Tek onay (2 adım) yeterli ise bunu boş olarak ayarlayın, ikinci bir onay (3 adım) her zaman gerekiyorsa çok düşük bir değere ayarlayın (0.1).
     UseDoubleApproval=Tutar (vergi öncesi) bu tutardan yüksekse 3 aşamalı bir onaylama kullanın...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Açıklamayı görmek için tıkla
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=Bu modül, modül (ler) için zorunludur
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Kişiselleştirilmiş varsayılan değerlerin kullanımını etkinleştir
    -EnableOverwriteTranslation=Üzerine yazma çeviri kullanımını etkinleştir
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Üzerine yazılabilir çeviri kullanımını etkinleştir
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Alan
     ProductDocumentTemplates=Ürün belgesi oluşturmak için belge şablonları
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Kullanıcılar & gruplar
    +Module0Name=Kullanıcılar ve Gruplar
     Module0Desc=Kullanıcı / Çalışan ve Grup Yönetimi
    -Module1Name=Üçüncü partiler
    -Module1Desc=Firma ve kişi yönetimi (müşteriler, adaylar…)
    +Module1Name=Üçüncü Partiler
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Ticaret
     Module2Desc=Ticaret yönetimi
     Module10Name=Muhasebe
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Veritabanı içeriğine dayalı basit muhasebe raporları (günlükler, ciro). Herhangi defter tablosunu kullanmaz.
     Module20Name=Teklifler
     Module20Desc=Teklif yönetimi
     Module22Name=Toplu E-postalar
    @@ -495,11 +501,11 @@ Module23Desc=Enerji tüketimlerinin izlenmesi
     Module25Name=Müşteri Siparişleri
     Module25Desc=Müşteri siparişleri yönetimi
     Module30Name=Faturalar
    -Module30Desc=Müşteri faturaları ve iade faturaları yönetimi. Tedarikçi fatura yönetimi
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Tedarikçiler
    -Module40Desc=Suppliers and purchase management (purchase orders and billing)
    -Module42Name=Debug Logs
    -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes.
    +Module40Desc=Tedarikçi ve satın alma yönetimi (satın alma siparişleri ve faturalandırma)
    +Module42Name=Hata Ayıklama Günlükleri
    +Module42Desc=Günlükleme araçları (dosya, syslog, ...). Bu gibi günlükler teknik/hata ayıklama amaçları içindir.
     Module49Name=Düzenleyiciler
     Module49Desc=Düzenleyici yönetimi
     Module50Name=Ürünler
    @@ -511,13 +517,13 @@ Module52Desc=Stok yönetimi (ürünler)
     Module53Name=Hizmetler
     Module53Desc=Hizmet yönetimi
     Module54Name=Sözleşmeler/Abonelikler
    -Module54Desc=Sözleşmelerin yönetimi (hizmetler ya da yinelenen abonelikler)
    +Module54Desc=Sözleşmelerin yönetimi (hizmetler veya yinelenen abonelikler)
     Module55Name=Barkodlar
     Module55Desc=Barkod yönetimi
     Module56Name=Telefon
     Module56Desc=Telefon entegrasyonu
     Module57Name=Banka ödeme talimatları
    -Module57Desc=Ödeme talimatları ve para çekme yönetimi. Aynı zamanda Avrupa ülkeleri için SEPA belgelerinin oluşturulmasını içerir.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=TıklaAra
     Module58Desc=TıklaAra entegrasyonu
     Module59Name=Bookmark4u
    @@ -528,10 +534,10 @@ Module75Name=Giderler ve gezi harcamaları
     Module75Desc=Gider ve gezi harcamaları yönetimi
     Module80Name=Sevkiyatlar
     Module80Desc=Sevkiyat ve sipariş teslimatı yönetimi
    -Module85Name=Bankalar ve kasa
    +Module85Name=Bankalar ve Kasa
     Module85Desc=Banka veya kasa yönetimi
    -Module100Name=Dış site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=Dış Site
    +Module100Desc=Dolibarr çerçevesinde görüntülemek için Dolibarr menülerine dış web site bağlantısı ekle
     Module105Name=Mailman and SPIP
     Module105Desc=Üyelik modülü için Mailman or SPIP arayüzü
     Module200Name=LDAP
    @@ -539,50 +545,50 @@ Module200Desc=LDAP dizin senkronizasyonu
     Module210Name=PostNuke
     Module210Desc=PostNuke entegrasyonu
     Module240Name=Veri dışaaktarma
    -Module240Desc=Dolibarr verilerini dışaaktarma aracı (yardımcılı)
    +Module240Desc=Dolibarr verilerini dışa aktarma aracı (yardım ile)
     Module250Name=Veri içeaktarımı
    -Module250Desc=Dolibarr verilerini içeaktarma aracı (yardımcılı)
    +Module250Desc=Dolibarr'a veri aktarma aracı (yardım ile)
     Module310Name=Üyeler
     Module310Desc=Dernek üyeleri yönetimi
     Module320Name=RSS Besleme
     Module320Desc=Dolibarr ekran sayfaları içine RSS ekle
    -Module330Name=Yerimleri
    -Module330Desc=Yerimi yönetimi
    -Module400Name=Projeler/Fırsatlar/Adaylar
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Yer imleri ve kısayollar
    +Module330Desc=Sıklıkla gittiğiniz dahili veya harici sayfalara kısayollar oluşturun, her zaman erişilebilir hale getirin
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Web Takvimi
     Module410Desc=WebT akvimi entegrasyonu
    -Module500Name=Taxes and Special expenses
    -Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
    +Module500Name=Vergiler ve Özel Harcamalar
    +Module500Desc=Diğer giderlerin yönetimi (satış vergileri, sosyal veya mali vergiler, temettüler, ...)
     Module510Name=Çalışan ücretlerinin ödenmesi
    -Module510Desc=Çalışan ücretlerinizi kaydedin ve takip edin
    +Module510Desc=Çalışan ödemelerini kaydedin ve takip edin
     Module520Name=Borç
     Module520Desc=Borçların yönetimi
     Module600Name=İş etkinliklerine ilişkin bildirimler
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Ürün Değişkenleri
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Ürün değişkenlerinin oluşturulması (renk, ebat v.b.)
     Module700Name=Bağışlar
     Module700Desc=Bağış yönetimi
     Module770Name=Gider raporları
    -Module770Desc=Yönetim ve şikayet gider raporları )nakliye, yemek, ...)
    -Module1120Name=Vendor commercial proposal
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
    +Module1120Name=Tedarikçi faturaları
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
     Module1200Desc=Mantis entegrasyonu
     Module1520Name=Belge Oluşturma
     Module1520Desc=Toplu posta belgesi oluşturma
     Module1780Name=Etiketler/Kategoriler
    -Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
    +Module1780Desc=Etiket/kategori oluştur (ürünler, müşteriler, tedarikçiler, kişiler ve üyeler)
     Module2000Name=FCKdüzenleyici (FCKeditor)
    -Module2000Desc=Bazı metin alanlarının gelişmiş düzenleyici kullanarak düzenlenmesini sağlar (CKEditor Temelli)
    +Module2000Desc=Metin alanlarının CKEditor kullarak düzenlenmesine izin ver
     Module2200Name=Dinamik Fiyatlar
     Module2200Desc=Fiyatlar için matematik ifadelerin kullanımını etkinleştir
     Module2300Name=Planlı işler
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Etkinlik / Ajanda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web hizmetleri (SOAP sunucusu)
    @@ -590,16 +596,16 @@ Module2600Desc=API hizmetlerini sağlayan Dolibarr SOAP sunucusunu etkinleştir
     Module2610Name=API/Web hizmetleri (REST sunucusu)
     Module2610Desc=API hizmetlerini sağlayan Dolibarr REST sunucusunu etkinleştir
     Module2660Name=Çağrı WebHizmetleri (SOAP istemcisi)
    -Module2660Desc=Dolibarr web hizmetleri istemcisini etkinleştir (Dış sunuculara veri/istek iteklemek için kullanılabilir. Tedarikçi siparişleri yalnızca anında desteklenir)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Kullanıcıların/Üyelerin resimlerini (epostalarında bulunan) göstermek için çevrimiçi Gravatar hizmetini kullanın (www.gravatar.com). İnternet erişimi gerektirir.
    +Module2700Desc=Kullanıcıların/üyelerin fotoğrafını göstermek için çevrimiçi Gravatar hizmetini (www.gravatar.com) kullanın (e-postalarıyla bulunur). İnternet erişimi gerekiyor.
     Module2800Desc=FTP İstemcisi
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind dönüştürme becerileri
     Module3100Name=Skype
     Module3100Desc=Kullanıcı / üçüncü parti / kişi / üye kartlarına bir Skype düğmesi ekle
    -Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Name=Değiştirilemez Arşivler
    +Module3200Desc=Değiştirilemeyen bir iş etkinlikleri günlüğü etkinleştirin. Etkinlikler gerçek zamanlı olarak arşivlenir. Günlük, dışa aktarılabilen zincirlenmiş olayların salt okunur bir tablosudur. Bu modül bazı ülkeler için zorunlu olabilir.
     Module4000Name=IK
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Çoklu-firma
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websiteleri
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=İzin İstekleri yönetimi
    -Module20000Desc=Çalışanların izin isteklerini bildirin ve izleyin
    -Module39000Name=Products lots
    +Module20000Desc=Declare and track employees leave requests
    +Module39000Name=Ürün Lotları
     Module39000Desc=Ürünlerde ürün ya da seri numarası, son tüketme ve son satma tarihi yönetimi
    +Module40000Name=Çoklu parabirim
    +Module40000Desc=Fiyat ve belgelerde alternatif para birimlerini kullanın
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Satış Noktaları
     Module50100Desc=Satış noktası  modülü (POS)
    +Module50150Name=Satış Noktası
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Muhasebe (gelişmiş)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Muhasebe yönetimi (çift girişler, genel ve yardımcı defterleri destekleme). Defteri, diğer birçok muhasebe yazılımı formatında dışa aktarın.
     Module54000Name=IPP Yazdır
    -Module54000Desc=Cups IPP aryüzü kullanılarak doğrudan yazdırma (belgeler açılmadan)  (Yazıcı sunucudan görülmeli ve sunucuda CUPS kurulu olmalı)
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Anket, Araştırma ya da Oylama
    -Module55000Desc=Çevrimiçi anket, araştırma ya da oylama yapmak için modül (Doodle, Studs, Rdvz, gibi)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Kar Oranları
     Module59000Desc=Kar Oranı yönetimi modülü
     Module60000Name=Komisyonlar
     Module60000Desc=Komisyon yönetimi modülü
    -Module62000Name=Uluslararası ticari terimleri
    -Module62000Desc=Uluslararası ticari terimleri yönetmek için özellik ekle
    +Module62000Name=Uluslararası Ticaret Terimleri
    +Module62000Desc=Uluslararası Ticaret Terimleri'ni yönetmek için özellikler ekleyin
     Module63000Name=Kaynaklar
     Module63000Desc=Kaynakları yönetin (yazıcılar, arabalar, odalar, ...) böylece etkinliklerde paylaşabilirsiniz
     Permission11=Müşteri faturalarını oku
    @@ -651,9 +661,9 @@ Permission32=Ürün oluştur/düzenle
     Permission34=Ürün sil
     Permission36=Gizli ürünleri gör/yönet
     Permission38=Ürün dışaaktar
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Proje sil (paylaşılan projeler ve ilgilisi olduğum projeler)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Projeleri dışaaktar
     Permission61=Müdahale oku
     Permission62=Müdahale oluştur/düzenle
    @@ -686,7 +696,7 @@ Permission109=Gönderilenleri sil
     Permission111=Finansal tabloları oku
     Permission112=İşlem oluştur/düzenle/sil ve karşılaştır
     Permission113=Mali hesapları ayarla (kategoriler oluştur, yönet)
    -Permission114=İşlem uzlaştır
    +Permission114=Uzlaştırma işlemleri
     Permission115=İşlemleri ve hesap tablolarını dışaaktar
     Permission116=Hesaplar arasında aktarım
     Permission117=Çek dağıtımlarını yönet
    @@ -694,15 +704,15 @@ Permission121=Kullanıcıya bağlı üçüncü partileri oku
     Permission122=Kullanıcıya bağlı üçüncü parti oluştur/değiştir
     Permission125=Kullanıcıya bağlı üçüncü partileri sil
     Permission126=Üçüncü partileri dışaaktar
    -Permission141=Bütün proje ve görevleri oku (aynı zamanda ilgilisi olmadığım özel projeleri de)
    -Permission142=Bütün proje ve görevleri oluştur/düzenle (aynı zamanda ilgilisi olmadığım özel projeleri de)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Bütün proje ve görevleri sil (aynı zamanda ilgilisi olmadığım özel projeleri de)
     Permission146=Sağlayıcıları oku
     Permission147=İstatistikleri oku
     Permission151=Ödeme talimatlarını oku
     Permission152=Ödeme talimatı isteği oluştur/değiştir
     Permission153=Ödeme talimatı emirleri gönder/ilet 
    -Permission154=Alacaklandırılan/Reddedilen ödeme talimatlarını kaydet
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Sözleşme/abonelik oku
     Permission162=Sözleşme/abonelik oluştur/değiştir
     Permission163=Bir sözleşmeye ait bir hizmet/abonelik etkinleştir
    @@ -725,7 +735,7 @@ Permission187=Tedarikçi siparişi kapat
     Permission188=Tedarikçi siparişi iptal et
     Permission192=Satır oluştur
     Permission193=Satır iptal et
    -Permission194=Bant genişliği satırı oku
    +Permission194=Bant genişliği satırlarını okuyun
     Permission202=ADSL bağlantısı oluştur
     Permission203=Bağlantılı aiparişleri sipariş et
     Permission204=Sipariş bağlantıları
    @@ -755,7 +765,7 @@ PermissionAdvanced253=İç/dış kullanıcı ve izinlerini oluştur/değiştir
     Permission254=Yalnızca dış kullanıcıları oluştur/değiştir
     Permission255=Diğer kullanıcıların şifrelerini değiştir
     Permission256=Diğer kullanıcıları sil ya da engelle
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=CA oku
     Permission272=Fatura oku
     Permission273=Fatura dağıt
    @@ -765,7 +775,7 @@ Permission283=Kişi sil
     Permission286=Kişi dışaaktar
     Permission291=Tarife oku
     Permission292=Tarife izinlerini kur
    -Permission293=Müşteri tarifelerini değiştirmek
    +Permission293=Modify customers tariffs
     Permission300=Bar kod oku
     Permission301=Bar kod oluştur/değiştir
     Permission302=Bar kod sil
    @@ -787,11 +797,9 @@ Permission401=İndirim oku
     Permission402=İndirim oluştur/değiştir
     Permission403=İndirim doğrula
     Permission404=İndirim sil
    -Permission501=Çalışan sözleşmelerini/maaşlarını okuyun
    -Permission502=Çalışan sözleşmelerini/maaşlarını oluşturun/değiştirin
    -Permission511=Maaş ödemelerini okuyun
    -Permission512=Maaş ödemelerini oluşturun/değiştirin
    -Permission514=Ücretleri sil
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Ücretleri çıkart
     Permission520=Borçları oku
     Permission522=Borç oluştur/değiştir
    @@ -842,10 +850,10 @@ Permission1236=Tedarikçi faturalarını, özniteliklerini ve ödemelerini dış
     Permission1237=Tedarikçi siparişi ve ayrıntılarını dışaaktar
     Permission1251=Dış verilerin veritabanına toplu olarak alınmasını çalıştır (veri yükle)
     Permission1321=Müşteri faturalarını, özniteliklerin ve ödemelerini dışaaktar
    -Permission1322=Reopen a paid bill
    +Permission1322=Ödenmiş bir faturayı yeniden aç
     Permission1421=Müşteri siparişleri ve özniteliklerini dışaaktar
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=İzin isteği sil
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Kaynak oku
     Permission63002=Kaynak oluştur/düzenle
     Permission63003=Kaynak sil
     Permission63004=Gündem etkinliklerine kaynak bağlantıla
    -DictionaryCompanyType=Üçüncü taraf türleri
    -DictionaryCompanyJuridicalType=Üçüncü taraf yasal formları
    +DictionaryCompanyType=Üçüncü parti türleri
    +DictionaryCompanyJuridicalType=Üçüncü partilerin yasal formları
     DictionaryProspectLevel=Aday potansiyel düzeyi
     DictionaryCanton=Eyalet/İl
     DictionaryRegion=Bölgeler
    @@ -891,15 +899,15 @@ DictionaryCivility=Kişisel ve mesleki unvanlar
     DictionaryActions=Gündem etkinlik türleri
     DictionarySocialContributions=Sosyal ya da mali vergi türleri
     DictionaryVAT=KDV Oranları veya Satış Vergisi Oranları
    -DictionaryRevenueStamp=Amount of tax stamps
    +DictionaryRevenueStamp=Damga vergisi tutarları
     DictionaryPaymentConditions=Ödeme koşulları
     DictionaryPaymentModes=Ödeme türleri
    -DictionaryTypeContact=Kişi/Adres türleri
    -DictionaryTypeOfContainer=Type of website pages/containers
    +DictionaryTypeContact=Kişi/adres türleri
    +DictionaryTypeOfContainer=Web sitesi sayfalarının/kapsayıcılarının türü
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Kağıt biçimleri
     DictionaryFormatCards=Kart formatları
    -DictionaryFees=Expense report - Types of expense report lines
    +DictionaryFees=Gider raporu - Gider raporu satırlarının türleri
     DictionarySendingMethods=Nakliye yöntemleri
     DictionaryStaff=Personel
     DictionaryAvailability=Teslimat süresi
    @@ -908,47 +916,47 @@ DictionarySource=Teklifin/siparişin kökeni
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Hesap planı modelleri
     DictionaryAccountancyJournal=Muhasebe günlükleri
    -DictionaryEMailTemplates=Eposta şablonları
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Birimler
     DictionaryProspectStatus=Aday durumu
    -DictionaryHolidayTypes=izin türleri
    -DictionaryOpportunityStatus=Proje/aday için fırsat durumu
    -DictionaryExpenseTaxCat=Expense report - Transportation categories
    -DictionaryExpenseTaxRange=Expense report - Range by transportation category
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
    +DictionaryExpenseTaxCat=Gider raporu - Ulaşım kategorileri
    +DictionaryExpenseTaxRange=Gider raporu - Ulaştırma kategorisine göre menzil
     SetupSaved=Kurulum kaydedildi
     SetupNotSaved=Kurulum kaydedilmedi
     BackToModuleList=Modül listesine geri git
    -BackToDictionaryList=Sözlük listesine dön
    -TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=KDV Yönetimi
    -VATIsUsedDesc=Adaylar, faturalar, siparişler, v.b oluşturulurrken KDV oranı varsayılan olarak etkin standart kuralı izler:<br>Eğer satıcı KDV ne tabii değilse varsayılan KDV 0 olur, kural sonu.<br>Eğer (satıcı ülkesi=alıcı ülkesi)yse, varsayılan KDV satıcı ülkesindeki ürünün KDV dir. Kural sonu.<br>Eğer satıcı ve alıcı Avrupa Birliğindeyse ve mallar taşıma ürünleriyse (araba, gemi, uçak) varsayılan KDV 0 dır (KDV alıcı tarafından kendi ülkesindeki gümrüğe ödenir, satıcıya değil). Kural sonu.<br>Eğer satıcı ve alıcı Avrupa Birliğinde ise ve alıcı bir firma değilse, varsayılan KDV satılan ürünün KDV dir. Kural sonu.<br>Eğer satıcı ve alıcı Avrupa Birliğindeyse ve alıcı bir firmaysa varsayılan KDV 0 dır. Kural sonu.<br>Yoksa önerilen KDV=0 dır. Kural sonu.
    -VATIsNotUsedDesc=Dernekler, şahıslar ve küçük firmalar durumunda varsayılan olarak kullanılması önerilen KDV 0 dır.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +BackToDictionaryList=Sözlük listesine geri dön
    +TypeOfRevenueStamp=Damga vergisi türü
    +VATManagement=Satış Vergisi Yönetimi
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Oran
     LocalTax1IsNotUsed=İkinci vergiyi kullanma
    -LocalTax1IsUsedDesc=İkinci bir vergi türü kullan (KDV den başka)
    -LocalTax1IsNotUsedDesc=Başka vergi türü kullanma (KDV den başka)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=İkinci vergi türü
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Üçüncü vergi türü
    -LocalTax2IsUsedDesc=Üçüncü bir vergi türü kullan (KDV den başka)
    -LocalTax2IsNotUsedDesc=Başka vergi türü kullanma (KDV den başka)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Üçüncü vergi türü
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Yönetimi
    -LocalTax1IsUsedDescES= Aday, fatura, sipariş, v.s. oluştururken varsayılan RE oranı etkin standart kuralı kullanır:<br>Eğer alıcı RE ye tabi değilse, varsayılan RE = 0. Kural sonu.<br>Eğer alıcı RE ye tabiyse RE varsayılan değerdir. Kural sonu.<br>
    -LocalTax1IsNotUsedDescES= Varsayılan olarak önerilen RE 0 dır. Kural sonu.
    -LocalTax1IsUsedExampleES= İspanya’da İspanyol IAE nin bazı özel bölümlerine tabi profesyoneller vardır.
    -LocalTax1IsNotUsedExampleES= İspanya’da onlar uzman ile derneklerdir ve İspanyol IAE nin belirli bölümlerine tabiidir.
    -LocalTax2ManagementES= IRPF Yönetimi
    -LocalTax2IsUsedDescES= Adayları, faturaları, siparişleri, v.s. oluştururken kullanılan öntanımlı RE oranı geçerli standart kurala uyar: <br>Eğer satıcı IRPF ye tabii değilse, IRPF varsayılan=0. Kural sonu.<br>Eğer satıcı IRPF ye tabiiyse IRPF varsayılandır.<br>
    -LocalTax2IsNotUsedDescES= Varsayılan olarak önerilen IRPF 0. Kural sonu.
    -LocalTax2IsUsedExampleES= İspanya'da, hizmet işleri yapan serbest meslek sahipleri ve bağımsız uzmanlar ile bu vergi sistemini seçen firmalardır.
    -LocalTax2IsNotUsedExampleES= İspanya’da vergi sistemine tabi olmayan işler.
    +LocalTax1ManagementES=RE Yönetimi
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=Varsayılan olarak önerilen RE 0 dır. Kural sonu.
    +LocalTax1IsUsedExampleES=İspanya’da İspanyol IAE nin bazı özel bölümlerine tabi profesyoneller vardır.
    +LocalTax1IsNotUsedExampleES=İspanya’da onlar uzman ile derneklerdir ve İspanyol IAE nin belirli bölümlerine tabiidir.
    +LocalTax2ManagementES=IRPF Yönetimi
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=Varsayılan olarak önerilen IRPF 0. Kural sonu.
    +LocalTax2IsUsedExampleES=İspanya'da, hizmet işleri yapan serbest meslek sahipleri ve bağımsız uzmanlar ile bu vergi sistemini seçen firmalardır.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Yerel vergi raporları
     CalcLocaltax1=Satışlar - Alışlar
     CalcLocaltax1Desc=Yerel Vergi raporları, yerel satış vergileri ile yerel alış vergileri farkı olarak hesaplanır
    @@ -958,14 +966,16 @@ CalcLocaltax3=Satışlar
     CalcLocaltax3Desc=Yerel Vergi raporları satışların yerel vergileri toplamıdır
     LabelUsedByDefault=Hiçbir çeviri kodu bulunmuyorsa varsayılan olarak kullanılan etiket
     LabelOnDocuments=Belgeler üzerindeki etiket
    -NbOfDays=Gün Sayısı
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Sabit değer
    +NbOfDays=Gün sayısı
     AtEndOfMonth=Ay sonunda
     CurrentNext=Güncel/Sonraki
     Offset=Sapma
     AlwaysActive=Her zaman etkin
     Upgrade=Yükselt
     MenuUpgrade=Yükseltme / Genişletme
    -AddExtensionThemeModuleOrOther=Deploy/install external app/module
    +AddExtensionThemeModuleOrOther=Harici uygulama/modül alma/yükleme
     WebServer=Web sunucusu
     DocumentRootServer=Web sunucusu kök dizini
     DataRootServer=Veri dizini dosyaları
    @@ -996,7 +1006,7 @@ Skin=Dış görünüm teması
     DefaultSkin=Varsayılan dış görünüm teması
     MaxSizeList=Listenin ençok uzunluğu
     DefaultMaxSizeList=Liste için varsayılan ençok uzunluk
    -DefaultMaxSizeShortList=Kısa liste için ençok uzunluk (örn müşteri kartında)
    +DefaultMaxSizeShortList=Kısa listeler için varsayılan maksimum uzunluk (örn. müşteri kartında)
     MessageOfDay=Günün mesajı
     MessageLogin=Oturum açma sayfası mesajı
     LoginPage=Oturum açma sayfası
    @@ -1005,7 +1015,7 @@ PermanentLeftSearchForm=Sol menüdeki sabit arama formu
     DefaultLanguage=Kullanılan varsayılan dil (dil kodu)
     EnableMultilangInterface=Çoklu dil arayüzünü etkinleştir
     EnableShowLogo=Logoyu sol menüde göster
    -CompanyInfo=Şirket/Kuruluş bilgileri
    +CompanyInfo=Şirket/Kuruluş
     CompanyIds=Şirket/Kuruluş kimlikleri
     CompanyName=Adı
     CompanyAddress=Adresi
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Banka hesabı sahibi %s
     BankModuleNotActive=Banka hesapları modülü etkin değil
     ShowBugTrackLink=Bu bağlantıyı göster "<strong>%s</strong>"
     Alerts=Uyarılar
    -DelaysOfToleranceBeforeWarning=Uyarı öncesi süre toleransları
    -DelaysOfToleranceDesc=Bu ekran, ekranda %s resmi ile bir uyarı bildirilmeden önce tolere edilebilecek süreleri tanımlamanızı sağlar.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Planlanan etkinliklerdeki (gündem etkinliklerindeki) bekleme süresi (gün olarak) henüz tamamlanmadı
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Zamanında kapatılmamış projeler için uyarı öncesi bekleme süresi (gün olarak).
    -Delays_MAIN_DELAY_TASKS_TODO=Planlanan görevlerdeki (proje görevlerindeki) bekleme süresi (gün olarak) henüz tamamlanmadı
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Siparişler üzerindeki uyarı öncesi bekleme süresi (gün olarak) henüz işlenmedi
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Henüz kapatılmamış teklifler öncesi uyarı yapılmadan önceki süre toleransı (gün olarak).
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Henüz faturalandırılmamış teklifler öncesi uyarı yapılmadan önceki süre toleransı (gün olarak).
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Etkinleştirilecek hizmetler için uyarı öncesi gecikme toleransı (gün olarak).
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Süresi dolan hizmetler için uyarı öncesi süre toleransı (gün olarak).
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Ödenmemiş tedarikçi faturaları uyarısı öncesi süre toleransı (gün olarak)
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Ödenmemiş müşteri faturaları uyarısı öncesi süre toleransı (gün olarak)
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Bekleyen banka uzlaşmaları uyarısı öncesi süre toleransı (gün olarak)
    -Delays_MAIN_DELAY_MEMBERS=Gecikmiş üyelik ücreti uyarısı öncesi süre toleransı (gün olarak)
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Çek ödemesi uyarısı öncesi süre tolerans (gün olarak)
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Gider raporlarının onaylanmasından önceki uyarı için bekleme süresi (gün)
    -SetupDescription1=Ayarlar alanı, Dolibarr'ı kullanmaya başlamadan önceki ilk parametre ayarları içindir.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Diğer menü girişleri ile isteğe bağlı parametreleri yönetebilirsiniz.
    +DelaysOfToleranceBeforeWarning=Bir uyarı işaretini görüntülemeden önceki ek mühlet
    +DelaysOfToleranceDesc=Burada, ekranda %s sembolüyle bir uyarı bildirimi verilmeden önce her bir geç kalmış eylem için ek mühlet süresini tanımlayabilirsiniz.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Henüz tamamlanmamış planlı etkinlikler (gündem etkinlikleri) için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Zamanında kapatılmamış proje için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_TASKS_TODO=Henüz tamamlanmamış planlı görevler (proje görevleri) için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Henüz işlenmemiş siparişler için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Henüz işlenmemiş satın alma siparişleri için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Kapatılacak teklifler için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Faturalanmamış teklifler için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Etkinleştirilecek hizmetler için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Süresi dolmuş hizmetler için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Ödenmemiş tedarikçi faturaları için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Ödenmemiş müşteri faturaları için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Bekleyen banka mutabakatı için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_MEMBERS=Gecikmiş üyelik ücreti için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Yapılacak çek depozitosu için uyarı öncesinde ek mühlet (gün olarak)
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Onaylanacak gider raporları için uyarı öncesinde ek mühlet (gün olarak)
    +SetupDescription1=Dolibarr yazılımını kullanmaya başlamadan önce bazı başlangıç parametreleri tanımlanmalı, gerekli modüller etkinleştirilip ve yapılandırılmalıdır.
    +SetupDescription2=Zorunlu kurulum aşamaları, aşağıda isimleri yer alan Ayarlar menüsündeki ilk 2 adımdır:
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Dolibarr'ın varsayılan davranışını özelleştirmek için kullanılan temel parametreler (örneğin ülkeyle ilişkili özellikler)
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM yazılımı, tamamı hemen hemen bağımsız olan birçok modül ve uygulamanın koleksiyonudur. İhtiyaçlarınıza uygun olan modüller etkinleştirilmiş ve yapılandırılmış olmalıdır. Bir modülün etkinleştirilmesi ile yeni öğe ve seçenekler menülere eklenir.
    +SetupDescription5=Diğer Ayarlar menüsündeki girişler isteğe bağlı parametreler sağlar.
     LogEvents=Güvenlik denetimi etkinlikleri
    -Audit=Denetim
    +Audit=Güvenlik etkinlikleri
     InfoDolibarr=Dolibarr Bilgileri
     InfoBrowser=Tarayıcı Bilgileri
     InfoOS=OS Bilgileri
    @@ -1056,20 +1066,20 @@ BrowserName=Tarayıcı adı
     BrowserOS=Tarayıcı OS
     ListOfSecurityEvents=Dolibarr güvenlik etkinlikleri listesi
     SecurityEventsPurged=Güvenlik etkinlikleri temizlendi
    -LogEventDesc=Burada Dolibarr güvenlik etkinlikleri için günlük etkinleştirebilirsiniz. Yöneticiler sonra <b>Sistem araçları->Denetim</b> menüsünden içeriği görebilir. Uyarı, bu özellik veritabanında büyük miktarda veri tüketebilir.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Kurulum parametreleri sadece <b>yönetici olan kullanıcılar</b> tarafından ayarlanabilir.
     SystemInfoDesc=Sistem bilgileri sadece okuma modunda ve yöneticiler için görüntülenen çeşitli teknik bilgilerdir.
     SystemAreaForAdminOnly=Bu alan yalnız yönetici kullanıcılar için kullanılabilir. Hiçbir Dolibarr izini bu sınırı azaltamaz.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    -AccountantFileNumber=File number
    +CompanyFundationDesc=Şirketin/varlığın bilgilerini düzenleyin. Sayfanın sonunda yer alan "%s" veya "%s" butonuna tıklayın.
    +AccountantDesc=Muhasebecinizin veya şirket hesabınızı tutanların ayrıntılarını düzenleyin
    +AccountantFileNumber=Dosya numarası
     DisplayDesc=Dolibarr ile ilgili her bir parametreyi seçebilirsiniz
     AvailableModules=Mevcut uygulama/modüller
     ToActivateModule=Modülleri etkinleştirmek için, ayarlar alanına gidin (Giriş->Ayarlar>Modüller).
     SessionTimeOut=Oturum için zaman aşımı
    -SessionExplanation=Bu sayı oturumun bu gecikmeden önce asla sona ermeyeceğini garanti eder. Ama PHP oturum yönetimi, oturumun her zaman bu gecikmeden sonra sona ereceğini garanti etmez: Bu önbellek temizleme oturumu çalışıyor ise meydana gelir.<br>Not: hiçbir belirli sistem ile iç PHP süreci her <b>%s</b> erişiminde oturumu temizlemeyecektir ancak erişim diğer oturumlar tarafından yapılan yapılırsa temizlenir.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Mevcut tetikleyiciler
    -TriggersDesc=Tetikleyiciler <b>htdocs/core/triggers</b> dizinine kopyalandığında Dolibarr’ın iş akışının davranışlarını değiştirecek dosyalardır. Dolibarr etkinliklerinde etkinleştirilen (yeni firma oluşturma, fatura doğrulaması,…) yeni eylemleri gerçekleştirir.
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Bu dosyadaki tetikleyiciler adlarındaki <b>-NORUN</b> soneki tarafından devre dışı bırakılır.
     TriggerDisabledAsModuleDisabled=Bu dosyadaki tetikleyiciler <b>%s</b> modülü devre dışı bırakıldığında devre dışı kalır.
     TriggerAlwaysActive=Bu dosyadaki tetikleyiciler, etkin Dolibarr modülleri ne olursa olsun her zaman etkindir.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Bütün referans verisini ekleyin. Değerlerinizi varsayılana ek
     ConstDesc=Bu sayfa, önceki sayfalarda bulunmayan diğer tüm parametreleri düzenlemenizi sağlar. Bunlar çoğunlukla geliştiriciler veya gelişmiş sorun giderme için ayrılmış parametrelerdir. Seçeneklerin bir listesi için <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">buraya bakın</a>.
     MiscellaneousDesc=Burada güvenlik ile ilgili diğer tüm parametreler tanımlanır.
     LimitsSetup=Sınırlar/Doğruluk kurulumu
    -LimitsDesc=Burada Dolibarr’ın kullanımı için sınırlar, hassasiyet ve optimizasyon tanımlayabilirsiniz
    +LimitsDesc=Dolibarr tarafından kullanılan limitleri, hassasiyetleri ve iyileştirmeleri buradan tanımlayabilirsiniz
     MAIN_MAX_DECIMALS_UNIT=Birim fiyatlar için ençok ondalık
     MAIN_MAX_DECIMALS_TOT=Toplam fiyatlar için ençok ondalık
     MAIN_MAX_DECIMALS_SHOWN=Fiyatlar için ençok ondalık ekranda görüntülenir (isterseniz bu sayıdan sonra görmek istediğiniz kırpılmış <b>...</b> ekleyin)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Yuvarlama oranı basamağı (10 tabanından farklı yuvar
     UnitPriceOfProduct=Bir ürünün net birim fiyatı
     TotalPriceAfterRounding=Yuvarlama sonrası toplam fiyat (net/KDV/vergi dahil)
     ParameterActiveForNextInputOnly=Yalnız sonraki giriş için etkili Parametre
    -NoEventOrNoAuditSetup=Hiçbir güvenlik etkinliği henüz kaydedilmedi. Eğer “kurulum - güvenlik – denetim” sayfasında denetim etkinleştirilmemiş ise bu normal olabilir.
    -NoEventFoundWithCriteria=Bu arama kriteri için herhangi bir güvenlik etkinliği bulunamadı.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=Bu arama kriterleri için hiçbir güvenlik etkinliği bulunamadı
     SeeLocalSendMailSetup=Yerel postagönder kurulumunuza bakın
     BackupDesc=Tam bir Dolibarr yedeklemesi için şunları yapmalısınız:
     BackupDesc2=Bütün yüklenen ve oluşturulan dosyaları içeren belge dizini (<b>%s</b>) içeriğini kaydedin (1. Adımda oluşturulan tüm döküm dosyalarını içerir).
    -BackupDesc3=Veritabanınızın içeriğini (<b>%s</b>) bir döküm dosyasına kaydedin. Bunun için, aşağıdaki yardımcıyı kullanabilirsiniz.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Arşivlenmiş dizin güvenli bir yerde korunmalıdır.
     BackupDescY=Üretilen bilgi döküm dosyası güvenli bir yerde korunmalıdır.
    -BackupPHPWarning=Bu yöntemle yedekleme garanti edilmez. Öncekini yeğleyin
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Bir Dolibarr yedeklemesini geri yüklemek için şunları yapmalısınız:
    -RestoreDesc2=Belgeler dizinindeki dosya ağacını ayıklamak için arşiv dosyasını (örneğin zip dosyası) yeni bir Dolibarr kurulumu belge dizinine ya da bu mevcut belge dizinine ayıklayın (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Veriyi bir yedekleme döküm dosyasından, yeni Dolibarr kurulumu veritabanına ya da geçerli kurulumun veritabanına geri yükleyin (<b>%s</b>). Uyarı, geri yükleme tamamlandıktan sonra yeniden bağlanabilmek için yedekleme yapıldığı sırada varolan bir kullanıcı adı/parolası kullanmalısınız. Bu geçerli kuruluma yedekleme veritabanını geri yüklemek için aşağıdaki yardımcıyı kullanabilirsiniz.
     RestoreMySQL=MySQL içeaktar
     ForcedToByAModule= Bu kural bir aktif modül tarafından <b>s</b> ye zorlanır
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=Bu komutu <b>%s</b> kullanıcı
     YourPHPDoesNotHaveSSLSupport=SSL fonksiyonları PHP nizde mevcut değildir
     DownloadMoreSkins=Daha fazla kaplama indirin
     SimpleNumRefModelDesc=Referans sayısını %syymm-nnnn biçimi ile girin; yy yıl mm ay ve nnnn deliksiz ve sıfırlanamayan bir dizidir
    -ShowProfIdInAddress=Belgelerde uzmanlık kimliğini adresleri ile birlikte göster
    -ShowVATIntaInAddress=Belgelerde adresli KDV Intra numaralarını gizle
    +ShowProfIdInAddress=Belgeler üzerindeki adreslerde profesyonel kimliği göster
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Kısmi çeviri
    -MAIN_DISABLE_METEO=Meteo görünümünü engelle
    +MAIN_DISABLE_METEO=Meteolojik görünümü devre dışı bırak
     MeteoStdMod=Standart mod
    -MeteoStdModEnabled=Standard mode enabled
    -MeteoPercentageMod=Percentage mode
    +MeteoStdModEnabled=Standart mod etkin
    +MeteoPercentageMod=Yüzde modu
     MeteoPercentageModEnabled=Yüzde modu etkin
    -MeteoUseMod=Click to use %s
    +MeteoUseMod=%s kullanmak için tıklayın
     TestLoginToAPI=API  oturum açma denemesi
    -ProxyDesc=Dolibarr’ın bazı özelliklerinin çalışması için internet erişimi olması gerekir. Bunun için burada parametreleri tanımlayın. Dolibarr sunucusu bir proxy sunucu arkasında ise, bu parametreler üzerinden Internet erişiminin nasıl olacağını Dolibarr’a söyler.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Dış erişim
     MAIN_PROXY_USE=Bir proxy sunucusu kullan (aksi takdirde internete doğrudan erişin)
     MAIN_PROXY_HOST=Proxy sunucusu Adı/Adresi
     MAIN_PROXY_PORT=Proxy sunucusu portu
     MAIN_PROXY_USER=Proxy sunucusunu kulanmak için oturum açma
     MAIN_PROXY_PASS=Proxy sunucusunu kullanacak parola
    -DefineHereComplementaryAttributes=Burada bütün öznitelikleri tanımlayın, yalnızca mevcut varsayılanları değil desteklenmenizi istediğiniz %s leri de.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Tamamlayıcı öznitelikler
     ExtraFieldsLines=Tamamlayıcı öznitelikler (satırlar)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Tamamlayıcı öznitelikler (sipariş satırları)
     ExtraFieldsSupplierInvoicesLines=Tamamlayıcı öznitelikler (fatura satırları)
     ExtraFieldsThirdParties=Ek öznitelikler (üçüncü taraf)
    -ExtraFieldsContacts=Ek öznitelikler (kişi/adres)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Tamamlayıcı öznitelikler (üye)
     ExtraFieldsMemberType=Tamamlayıcı öznitelikler (üye türü)
     ExtraFieldsCustomerInvoices=Tamamlayıcı öznitelikler (faturalar)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=yalnızca boşluksuz olarak alfasayısal ve kü
     SendmailOptionNotComplete=Uyarı, bazı Linux sistemlerinde, epostanızdan eposta göndermek için eposta gönderme uygulaması kurulumu –ba seçeneğini içermelidir (php.ini dosyanızın içine parameter mail.force_extra_parameters). Eğer bazı alıcılar hiç eposta alamazsa, bu PHP parametresini mail.force_extra_parameters = -ba ile düzenleyin.
     PathToDocuments=Belgelerin yolu
     PathDirectory=Dizin
    -SendmailOptionMayHurtBuggedMTA="PHP doğrudan posta" yöntemini kullanarak postalar gönderme özelliği bazı posta alıcısı sunucuları tarafından doğru olarak çözümlenemeyen bir posta iletisi oluşturur. Sonuç ise bazı postaların hatalı platformlar tarafından barındırılan kişiler tarafından okunamaz olmasıdır. Bu durum bazı İnternet sağlayıcılarına özgüdür (Örn: Fransa’daki Orange gibi). Bu Dolibarr ya da PHP için bir sorun değildir ama alıcı posta sunucusu için sorundur. Ancak Dolibarr’ı bundan korumak için Kurulum->Diğer de MAIN_FIX_FOR_BUGGED_MTA yı 1 yapma seçeneğini ekleyebilirsiniz. Ancak SMTP standartlarına sıkıca uyan diğer servislerde sorunla karşılaşabilirsiniz. Diğer bir çözüm (önerilen) ise hiçbir sakıncası olmayan "SMTP soket kütüphanesi" ni kullanmaktır.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Çeviri ayarları
     TranslationKeySearch=Çeviri anahtarı veya dizesi ara
     TranslationOverwriteKey=Çeviri dizesinin üzerine yaz
    -TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
    +TranslationDesc=Görüntülenen uygulama dili şu şekilde ayarlanır: <br> * Tüm sistem için: Menü <strong>Giriş - Ayarlar - Ekran</strong><br>* Her bir kullanıcı için ayrı: Kullanıcı kartındaki <strong>Kullanıcı görüntüleme ayarı</strong> sekmesini kullanın (ekranın üst kısmındaki kullanıcı adına tıklayın).
     TranslationOverwriteDesc=Ayrıca aşağıdaki tabloyu doldurarak dizeleri geçersiz kılabilirsiniz. Dilinizi "%s" açılır tablosundan seçin, anahtar dizeyi "%s" içine ekleyin ve yeni çevirinizi de "%s" içine ekleyin.
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=Çevirmek istediğiniz kelime veya kelime dizisinin hangi anahtarı kullandığını bulmak için diğer sekmeyi (Çeviri anahtarı veya dizesi ara) kullanabilirsiniz.
     TranslationString=Çeviri dizesi
     CurrentTranslationString=Geçerli çeviri dizesi
     WarningAtLeastKeyOrTranslationRequired=En azından anahtar veya çeviri dizesi için bir arama kriteri gereklidir
     NewTranslationStringToShow=Gösterilecek yeni çeviri dizesi
     OriginalValueWas=Orijinal çevirinin üzerine yazılır. Orijinal değerler şu şekildeydi: <br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Etkinleştirilmiş uygulama/modüller: <b>%s</b>/<b>%s</b>
     YouMustEnableOneModule=Enaz 1 modül etkinleştirmelisiniz
    -ClassNotFoundIntoPathWarning=Sınıf %s PHP youlnda bulunamadı
    +ClassNotFoundIntoPathWarning=Class %s PHP yolunda bulunamadı
     YesInSummer=Yazın evet
    -OnlyFollowingModulesAreOpenedToExternalUsers=Not, izinler verildiği takdirde yalnızca aşağıdaki modüller dış kullanıcılara açıktır (bu tür kullanıcıların izinleri ne olursa olsun):
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Oturum depolaması Suhosin tarafından şifrelendi
     ConditionIsCurrently=Koşul şu anda %s durumunda
    -YouUseBestDriver=Kullandığınız sürücü %s şu anda en iyi sürücüdür.
    -YouDoNotUseBestDriver=Kullandığınız %s sürücüsüdür, %s sürücüsü önerilir.
    -NbOfProductIsLowerThanNoPb=Veritabanında yalnızca %s ürün/hizmet var. Bu, herhangi bir optimizasyon gerektirmez.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Optimizasyon ara
    -YouHaveXProductUseSearchOptim=Veritabanında %s ürün var. Giriş-Ayarlar-Diğer den PRODUCT_DONOTSEARCH_ANYWHERE değişmezini 1 olarak eklemelisiniz. Veritabanının dizin kullanmasını sağlamak için aramayı dizelerin başlangıcıyla sınırlandırır ve hemen yanıt alırsınız.
    -BrowserIsOK=%s web tarayıcısını kullanıyorsunuz. Bu tarayıcı güvenlik ve performans için uygundur.
    -BrowserIsKO=%s web tarayıcısını kullanıyorsunuz. Bu tarayıcı güvenlik, performans ve güvenirlik için kötü bir seçimdir. Firefox, Chrome, Opera veya Safari kullanmanızı öneririz.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug yüklüdür.
     XCacheInstalled=XDebug yüklüdür.
    -AddRefInList=Listede müşteri/tedarikçi ref (liste ya da açılır liste seç) ve köprülerin çoğunu göster. Üçüncü partiler "Büyük firma" yerine "CC12345 - SC45678 - Büyük firma" adıyla görüntülenecektir.
    -AskForPreferredShippingMethod=Üçüncü Partiler için yeğlenen Gönderme Yöntemini isteyin.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Üçüncü Partiler için tercih edilen gönderme yöntemini isteyin.
     FieldEdition=%s Alanının düzenlenmesi
     FillThisOnlyIfRequired=Örnek: +2 (saat dilimi farkını yalnız zaman farkı sorunları yaşıyorsanız kullanın)
     GetBarCode=Barkovizyon al
     ##### Module password generation
     PasswordGenerationStandard=Dolibarr iç algoritmasına göre bir şifre girin: 8 karakterli sayı ve küçük harf içeren.
    -PasswordGenerationNone=Oluşturulmuş hiçbir parola önermeyin. Parola el ile yazılmalıdır.
    +PasswordGenerationNone=Oluşturulan bir parola önerme. Parola manuel olarak yazılmalıdır.
     PasswordGenerationPerso=Kişisel tanımlanmış yapılandırmanıza göre bir parola girin.
     SetupPerso=Yapılandırmanıza göre
     PasswordPatternDesc=Parola modeli açıklaması
    @@ -1195,23 +1206,23 @@ UserMailRequired=Yeni bir kullanıcı oluşturmak için gerekli EPosta
     HRMSetup=İK modülü ayarları
     ##### Company setup #####
     CompanySetup=Firmalar modülü kurulumu
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Müşteri/Tedarikçi kodlarının otomatik üretimi için seçenekler
    +AccountCodeManager=Müşteri/Tedarikçi muhasebe kodlarının otomatik üretimi için seçenekler
     NotificationsDesc=Eposta özelliği, bazı Dolibarr etkinlikleri için sessiz ve otomatik olarak posta göndermenizi sağlar. Bildirim hedefleri şu şekilde tanımlanabilir:
     NotificationsDescUser=* kullanıcı başına, her seferinde bir kullanıcı.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* veya modül ayarları sayfasında genel hedef epostaları ayarlanarak.
    -ModelModules=Belge şablonları
    -DocumentModelOdt=OpenDocuments şablonlarından belgeler oluşturun (OpenOffice, KOffice, TextEdit .ODT veya .ODS dosyaları)
    +ModelModules=Belge Şablonları
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Taslak belge üzerinde filigran
     JSOnPaimentBill=Ödeme formunda ödeme satırlarını otomatik doldurma özelliğini etkinleştir
    -CompanyIdProfChecker=Uzman Kimliği kuralları
    +CompanyIdProfChecker=Profesyonel Kimlikler için Kurallar
     MustBeUnique=Eşsiz olmalıdır?
    -MustBeMandatory=Üçüncü tarafları oluşturmak zorunludur?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Faturaları doğrulamak zorunludur ?
     TechnicalServicesProvided=Sağlanan teknik hizmetler
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=<b>%s</b> biçimine göndermek için gerekli bağlantıyı aşağıdaki bağlantıdan bulabilirsiniz:%s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=<b>%s</b> biçimine göndermek için gerekli bağlantıy
     BillsSetup=Faturalar modülünün kurulumu
     BillsNumberingModule=Fatura ve iade faturaları numaralandırma modülü
     BillsPDFModules=Fatura belgesi modelleri
    +BillsPDFModulesAccordindToInvoiceType=Fatura türüne göre fatura döküman modelleri
     PaymentsPDFModules=Ödeme belge modelleri
     CreditNote=İade faturası
     CreditNotes=İade faturaları
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Her üye için bir Kullanıcı adı yürütün
     AdherentMailRequired=Yeni üye oluşturmak için E-posta gereklidir
     MemberSendInformationByMailByDefault=Üyelere onay epostası (doğrulama ya da yeni abonelik) göndermek için onay kutusu varsayılan olarak açıktır
     VisitorCanChooseItsPaymentMode=Ziyaretçi mevcut ödeme modlarından birini seçebilir
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Kurulumu
     LDAPGlobalParameters=Genel parametreler
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= LDAP arama testi
     LDAPSynchroOK=Senkronizasyon testi başarılı
     LDAPSynchroKO=Başarısız senkronizasyon testi
    -LDAPSynchroKOMayBePermissions=Başarısız senkronizasyon testi. Bu sunucuya bağlantının düzgün yapılandırılmış olduğunu ve LDAP güncellemesi sağladığını kontrol edin
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=LDAP sunucusu için TCP bağlantı başarılı (Sunucu =%s, Port =%s)
     LDAPTCPConnectKO=LDAP sunucusuna TCP bağlantısı başarısız (Server =%s başarısız, Port =% s)
    -LDAPBindOK=LDAP sunucusuna bağlantı/kimlik doğrulama başarılı (Server=%s, Port=%s, Yönetici=%s, Parola=%s)
    -LDAPBindKO=LDAP sunucusuna bağlantı/kimlik doğrulama başarısız (Server=%s, Port=%s, Yönetici=%s, Parola=%s
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP sunucusu sürüm 3 için yapılandırılmış
     LDAPSetupForVersion2=LDAP sunucusu sürüm 2 için yapılandırılmış
     LDAPDolibarrMapping=Dolibarr Eşleme
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Oturum aç (samba, activedirectory)
     LDAPFieldLoginSambaExample=Örnek: sAMAccountName
     LDAPFieldFullname=İlk Adı
     LDAPFieldFullnameExample=Örnek: cn
    -LDAPFieldPasswordNotCrypted=Parola şifrelendirilmemiş
    -LDAPFieldPasswordCrypted=Parola şifrelendirilmiş
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Örnek: kullanıcıParolası
     LDAPFieldCommonNameExample=Örnek: cn
     LDAPFieldName=Adı
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Örnek değerler aşağıdaki yüklü şemalarla <b> OpenLDAP </ b> için tasarlanmıştır: <b> core.schema, cosine.schema, inetorgperson.schema </ b>). Eğer o değerleri ve OpenLDAP kullanıyorsanız, LDAP yapılandırma dosyasını <b> slapd.conf </ b> tüm o yüklü şemaları alacak şekilde değiştirmelisiniz.
     ForANonAnonymousAccess=Bir kimlik doğrulamalı giriş için (örneğin bir yazma girişi)
     PerfDolibarr=Performans ayar/optimizasyon raporu
    -YouMayFindPerfAdviceHere=Bu sayfada bazı denetimler veya performans ile ilgili tavsiyeler bulacaksınız.
    -NotInstalled=Yüklü değil, yani sunucu bundan dolayı yavaş değil.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=\t\nUygulamalı önbellek
     MemcachedNotAvailable=Uygulanabilir önbellek bulunamadı. Performansı Memcached önbellek sunucusu ve bu önbellek sunucusunu kullanabilecek bir modül kurarak arttırabilirsiniz.<br>Daha fazla bilgiyi buradan <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>bulabilirsiniz. Bu tür önbellek sunucusunu çok fazla web barındırıcısının sağlamadığını unutmayın.
     MemcachedModuleAvailableButNotSetup=Uygulamalı önbellek için memcached modülü bulundu ama modülün kurulumu tamamlanmamış.
     MemcachedAvailableAndSetup=Memcached modülü etkinleştirilmiş memcached sunucusunu kullanmak içindir.
     OPCodeCache=OPCode önbelleği
    -NoOPCodeCacheFound=OPCode önbelleği bulunamadı. Belki XCache den başka bir OPCode önbelleği kullanabilirsiniz veya eAccelerator (iyi), belki de OPCode önbelleğiniz yoktur (çok kötü).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=Statik kaynaklar (css, img, javascript) için HTTP önbelleği
     FilesOfTypeCached=%s türündeki dosyalar HTTP sunucusu tarafından önbelleğe alınır
     FilesOfTypeNotCached=%s türündeki dosyalar HTTP sunucusu tarafından önbelleğe alınmaz
     FilesOfTypeCompressed=%s türündeki dosyalar HTTP sunucusu tarafından sıkıştırılır
     FilesOfTypeNotCompressed=%s türündeki dosyalar HTTP sunucusu tarafından sıkıştırılmaz
     CacheByServer=Sunucu önbelleği
    -CacheByServerDesc=Örneğin "ExpiresByType image/gif A2592000" Apache yönergesini kullanarak
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Tarayıcı önbelleği
     CompressionOfResources=HTTP yanıtlarının sıkıştırılması
    -CompressionOfResourcesDesc=Örneğin "AddOutputFilterByType DEFLATE" Apache yönergesini kullanarak
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Böyle bir otomatik algılama mevcut tarayıcılar için olası değildir
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Burada, yeni bir kayıt oluşturduğunuzda sahip olmak istediğiniz varsayılan değeri ve/veya kayıtlarınızı listelediğinizde varsayılan filtreleme veya sıralama düzenini tanımlayabilir/zorlayabilirsiniz.
    +DefaultCreateForm=Varsayılan değerler (formlarda oluşturmak için)
     DefaultSearchFilters=Varsayılan arama filtreleri
     DefaultSortOrder=Varsayılan sıralama düzenleri
     DefaultFocus=Varsayılan odak alanları
    +DefaultMandatory=Zorunlu form alanları
     ##### Products #####
     ProductSetup=Ürünler modülü kurulumu
     ServiceSetup=Hizmetler modülü kurulumu
     ProductServiceSetup=Ürünler ve Hizmetler modüllerinin kurulumu
     NumberOfProductShowInSelect=Açılır seçim (combo) listelerindeki ençok ürün sayısı (0 = sınır yok)
    -ViewProductDescInFormAbility=Formlarda ürün tanımlarının görselleştirilmesi (aksi durumda açılır araç ipucu olarak)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Eğer ürün/hizmet teklifte varsa Ekli Dosyalar sekmesinde ürün/hizmet seçeneğini etkinleştirin, böylece ürün PDF belgesini PDF azur teklifine birleştirirsiniz
    -ViewProductDescInThirdpartyLanguageAbility=Ürün açıklamalarının üçüncü taraf dilinde gösterilmesi
    -UseSearchToSelectProductTooltip=Ayrıca çok fazla sayıda ürününüz varsa (>100 000), Kurulum->Diğer den PRODUCT_DONOTSEARCH_ANYWHERE değişmezini 1 e ayarlayarak hızı arttırabilirsiniz. Sonra arama dizenin başlamasıyla sınırlı olacaktır.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Ürün açıklamalarını üçün partinin dilinde görüntüle
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Ürünler için kullanılacak varsayılan barkod türü
     SetDefaultBarcodeTypeThirdParties=Üçüncü partiler için kullanılacak varsayılan barkod tipi
     UseUnits=Sipariş, teklif ya da fatura satırlarının yazımı sırasında kullanmak üzere Miktar için bir ölçü birimi tanımlayın
    @@ -1503,7 +1517,7 @@ SendingsSetup=Gönderme modülü kurulumu
     SendingsReceiptModel=Makbuz gönderme modeli
     SendingsNumberingModules=Gönderi numaralandırma modülü
     SendingsAbility=Müşteri teslimatlarında sevkiyat tablolarını destekler
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Sevkiyatlarda serbest metin
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Ürün teslimat fişlerinde numaralandırma modülü
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Gelişmiş editör
     ActivateFCKeditor=Gelişmiş düzenleyiciyi şunun için etkinleştir:
     FCKeditorForCompany=Öğe açıklamaları ve notları için WYSIWIG oluşturma/düzenleme (ürünler/hizmetler hariç)
     FCKeditorForProduct=Ürünlerin/hizmetlerin açıklamaları ve notlar için WYSIWIG oluşturma/düzenleme
    -FCKeditorForProductDetails=Bütün öğelerde(teklifler, siparişler, faturalar, v.s...) ürünlerin ayrıntı satırları için WYSIWIG oluşturma/düzenleme. <font class="warning">Uyarı: Bu durum için bu seçeneğin kullanılması, özel karakterlerin kullanımında ve PDF dosyalarının oluşturulmasında sorunlar yaratacağı için ciddi olarak önerilmez.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= Postaları WYSIWIG olarak oluşturma/düzenleme
     FCKeditorForUserSignature=Kullanıcı imzasının WYSIWIG olarak oluşturulması/düzenlenmesi
     FCKeditorForMail=Tüm postaların WYSIWIG olarak oluşturması/düzenlenmesi (Araçlar->ePostlama hariç)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Bağlantı başarılı ama veritabanı bir OSCommerce veritabanı olarak görünmüyor. (Anahtar %s tablo %s te bulunamadı)
    -OSCommerceTestOk='%s' Sunucusuna '%s' veritabanında kullanıcı '% s' ile bağlantı başarılı.
    -OSCommerceTestKo1='%s' Sunucusuna bağlantı başarılı ancak veritabanı '% s' e ulaşılamadı.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk='%s' sunucusuna '%s' veritabanında kullanıcı '%s' ile bağlantı başarılı.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=’%s’ Sunucusuna ‘%s’ kullanıcısı ile bağlantı başarısız oldu.
     ##### Stock #####
    -StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=Eğer bir Satış Noktası modülü kullanıyorsanız (varsayılan olarak sağlanan ya da başka bir dış POS modülü), bu ayarlar Satış Noktası modülünüz tarafından gözardı edilebilir. Buradaki seçenekler ne olursa olsun çoğu satış notası modülü ön tanımlı olarak anında fatura oluşturacak ve stok eksiltecek şeklide tasarlanmıştır. Yani, Satış Noktanızdan bir satış kaydederken stok eksiltme gereksiniminiz varsa da yoksa da, aynı zamanda POS modülünüzün ayarlarını da denetleyin.
    +StockSetup=Stok modülü kurulumu
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menü silindi
     Menus=Menüler
    @@ -1548,7 +1562,7 @@ DetailRight=Yetkisiz gri menüleri gösterme koşulu
     DetailLangs=Etiket kodu çevirisi için Lang dosya adı
     DetailUser=İç/dış/tümü
     Target=Hedef
    -DetailTarget=Bağlantılar için hedef (_blank üst yeni bir pencere açmak için)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Düzey (-1: Üst menü, 0: başlık menüsü, >0 menü ve alt menü)
     ModifMenu=Menü değiştir
     DeleteMenu=Menü girişi sil
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=KDV nedeniyle: <br> - malların tesliminde ( fatura tarihin
     OptionVatDebitOptionDesc=KDV nedeniyle: <br> - malların tesliminde ( fatura tarihini kullanırız) <br> - hizmet faturalarında (borç)
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Seçilen seçeneğe göre KDV uygunluk süresi:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Teslimatta
     OnPayment=Ödemede
     OnInvoice=Faturada
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Alış hesap. kodu
     AgendaSetup=Etkinlik ve gündem modülü kurulumu
     PasswordTogetVCalExport=Dışaaktarma bağlantısı yetki anahtarı
     PastDelayVCalExport=Bundan daha büyük etkinliği dışaaktarma
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Etkinlik oluşturma formundaki etkinlik türü için bu varsayılan değeri otomatik olarak ayarla
    -AGENDA_DEFAULT_FILTER_TYPE=Gündem görünümü arama süzgeçinde, etkinlikler için otomatik olarak bu etkinlik türünü ayarlar
    -AGENDA_DEFAULT_FILTER_STATUS=Gündem görünümü arama süzgeçinde, etkinlikler için otomatik olarak bu durum türünü ayarlar
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Gündem menüsünü seçtiğinizde varsayılan olarak hangi sekmenin açılmasını istiyorsunuz
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Sesli bildirimi etkinleştir
     AGENDA_SHOW_LINKED_OBJECT=Bağlantılı nesneyi gündem görünümünde göster
     ##### Clicktodial #####
     ClickToDialSetup=TıklaAra modülü kurulumu
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=Bu modül telefon numaralarının tıklanabilmesini sağlar. Bu simgeye tıklanma telefonunuz ile bu telefonun aranmasını sağlar. Bu işlem Dolibarr'dan bir çağrı merkezini aramak için kullanılır, örneğin SIP sisteminde bir telefon numarasının aranması.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Telefon numaraları üzerinde yalnızca bir "tel:" linki kullan
    -ClickToDialUseTelLinkDesc=Eğer kullanıcılarınız bir softphone ya da web tarayıcıdan farklı olarak aynı bilgisayarda kurulu bir arayüz kullanıyorsa ve web tarayıcınızda "tel:" ile başlayan bir köprü tıklandığında aranıyorsa bu yöntemi kullanın. Tam bir sunucu çözümüne gereksiniminiz varsa (yerel yazılım kurulumu gereksinimi olmadan) bunu "HAYIR" olarak ayarlayın ve sonraki alanı doldurun.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Satış Noktası
     CashDeskSetup=Satış Noktası kurulum modülü
    -CashDeskThirdPartyForSell=Satışlar için kullanılacak varsayılan genel üçüncü parti
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Nakit ödemeleri almak için kullanılan varsayılan hesap
     CashDeskBankAccountForCheque= Ödemeleri çek ile almak için kullanılan varsayılan hesap
     CashDeskBankAccountForCB= Nakit ödemeleri kredi kartıyla almak için kullanılan varsayılan hesap
    -CashDeskDoNotDecreaseStock=Satış Noktasından bir satış yapıldığında stok azaltılmasını engelle ("hayır"sa POS tan yapılan her satışta stok eksiltilmesi yapılır, Stok modülündeki seçenek ayarı ne olursa olsun).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Depoyu stok azaltmada kullanmak için zorla ve sınırla
    -StockDecreaseForPointOfSaleDisabled=Satış Noktasından stok eksiltme engelli
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=POS taki stok eksiltmesi parti yönetimi ile uyumlu değildir.
    -CashDeskYouDidNotDisableStockDecease=Satış Noktasından satış yapılırken stok eksiltilmesini engellemediniz. Bu durumda depo gereklidir.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Yerimi modülü kurulumu
    -BookmarkDesc=Bu modül yerimlerini yönetmenize olanak sağlar. Ayrıca, soldaki menüden herhangi Dolibarr sayfaları veya dış web siteleri için kısayollar ekleyebilirsiniz.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Sol menüde gösterilecek ençok yerimi sayısı
     ##### WebServices #####
     WebServicesSetup=WebHizmetleri modülü kurulumu
    @@ -1637,8 +1651,8 @@ ChequeReceiptsNumberingModule=Çek Makbuzu Numaralandırma modülü
     MultiCompanySetup=Çoklu şirket modülü kurulumu
     ##### Suppliers #####
     SuppliersSetup=Tedarikçi modülü kurulumu
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    -SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
    +SuppliersCommandModel=Satınalma siparişinin tam şablonu (logo...)
    +SuppliersInvoiceModel=Tedarikçi faturasının eksiksiz şablonu (logo...)
     SuppliersInvoiceNumberingModel=Tedarikçi faturaları numaralandırma modelleri
     IfSetToYesDontForgetPermission=Evet olarak ayarlıysa, ikinci onayı sağlayacak grup ve kullanıcılara izin sağlamayı unutmayın
     ##### GeoIPMaxmind #####
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Proje modülü kurulumu
     ProjectsModelModule=Proje raporu belge modeli
     TasksNumberingModules=Görev numaralandırma modülü
     TaskModelModule=Görev raporu belge modeli
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Muhasebe dönemleri
    @@ -1675,7 +1689,7 @@ NoAmbiCaracAutoGeneration=Otomatik oluşturma için belirsiz karakter ("1","l","
     SalariesSetup=Ücretler Modülü Ayarları
     SortOrder=Sıralama düzeni
     Format=Biçim
    -TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers and vendors payment type
    +TypePaymentDesc=0:Müşteri ödeme türü, 1:Tedarikçi ödeme türü, 2:Hem müşteri hem de tedarikçi ödeme türü
     IncludePath=Yolu içerir (%s değişlende tanımlanır)
     ExpenseReportsSetup=Gider Raporları modülü Ayarları
     TemplatePDFExpenseReports=Gider raporu belgesi oluşturmak için belge şablonları
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification="Bildirimler" modülünü
     ListOfNotificationsPerUser=Kullanıcı başına bildirimler listesi*
     ListOfNotificationsPerUserOrContact=Kullanıcı başına veya kişi başına bildirimler listesi**
     ListOfFixedNotifications=Sabit bildirimler listesi
    -GoOntoUserCardToAddMore=Kullanıcılardan bildirimleri kaldırmak veya eklemek için kullanıcının "Bildirimler" sekmesine git
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Kişilerden/adreslerden bildirimleri eklemek ya da kaldırmak için üçüncü taraf kişileri "Bildirimler" sekmesine git
     Threshold=Sınır
     BackupDumpWizard=Veritabanı yedekleme döküm dosyası oluşturma sihirbazı
    @@ -1697,7 +1711,8 @@ InstallModuleFromWebHasBeenDisabledByFile=Dış modülün uygulama içerisinden
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Tablo satırlarını fare üzerine geldiğinde vurgula
     HighlightLinesColor=Fare üzerinden geçerken satır rengini vurgula (vurgulanmaması için boş bırakın)
    -TextTitleColor=Text color of Page title
    +HighlightLinesChecked=Bir satır işaretlendiğinde bu satırın rengini vurgula (vurgulanmaması için boş bırakın)
    +TextTitleColor=Sayfa başlığının metin rengi
     LinkColor=Bağlantıların rengi
     PressF5AfterChangingThis=Bu değeri değiştirdikten sonra geçerli olabilmesi için klavyede CTRL+F5 tuşlarına basın veya tarayıcınızın önbelleğini temizleyin
     NotSupportedByAllThemes=Yalnızca çekirdek temaları ile çalışır ancak dış temalar tarafından desteklenmez
    @@ -1706,22 +1721,22 @@ TopMenuBackgroundColor=Üst menü için arka plan rengi
     TopMenuDisableImages=Üst menüdeki görüntüleri gizle
     LeftMenuBackgroundColor=Sol menü için arka plan rengi
     BackgroundTableTitleColor=Tablo satırı başlığı için arka plan rengi
    -BackgroundTableTitleTextColor=Text color for Table title line
    +BackgroundTableTitleTextColor=Tablo satırı başlığı için metin rengi
     BackgroundTableLineOddColor=Tabloda tek satırlar için arka plan rengi
     BackgroundTableLineEvenColor=Tabloda çift satırlar için arka plan rengi
     MinimumNoticePeriod=Enaz bildirim süresi (İzin isteğiniz bu süreden önce yapılmalı)
     NbAddedAutomatically=Her ay (otomatik olarak) bu kullanıcının sayacına eklenen gün sayısı 
     EnterAnyCode=Bu alan satırın tanınması için bir referans içerir. Özel karakterler hariç seçeceğiniz herhangi bir değeri girebilirsiniz.
    -UnicodeCurrency=Burada ayraçlar arasına para birimi simgesini belirten bayt sayısını girin. Örneğin: $ için [36] - Brezilya Real'i için [82,36] - € için [8364] girin
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=RGB rengi HEX formatındadır, örn: FF0000
     PositionIntoComboList=Satırın kombo listesindeki konumu
     SellTaxRate=Satış vergisi oranı
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=Eğer taşıma sağlayıcı ya da taşımacı size sevkiyatınızın durumunu denetlemek için bir web sayfası ya da sitesi önerirse, bunu burada girebilirsiniz. {TRACKID} anahtarını URL parametrelerinde kullanarak kullanıcı tarafından sevkiyat kartına girilen izleme numarası değeriyle değiştirebilirsiniz.
    -OpportunityPercent=Bir fırsat oluşturduğunuzda, tahmini bir proje/aday tutarı gireceksiniz. Fırsatın durumuna göre, oluşturulacak bütün fırsatların genel tutarını hesaplamak için bu tutar bu oran ile çarpılabilir. Değer yüzde cinsindedir (0 ile 100 arasında)
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=Bu şablon kaydının ayrıldığı öğe
     TypeOfTemplate=Şablon türü
    -TemplateIsVisibleByOwnerOnly=Şablon yalnızca kullanıcı tarafından görünür
    +TemplateIsVisibleByOwnerOnly=Şablon yalnızca sahibi tarafından görülebilir
     VisibleEverywhere=Heryerde görünür
     VisibleNowhere=Hiçbir yerde görünür değil
     FixTZ=Saat Dilimi Farkı
    @@ -1734,25 +1749,25 @@ MailToSendOrder=Müşteri siparişleri
     MailToSendInvoice=Müşteri faturaları
     MailToSendShipment=Sevkiyatlar
     MailToSendIntervention=Müdahaleler
    -MailToSendSupplierRequestForQuotation=Quotation request
    -MailToSendSupplierOrder=Purchase orders
    -MailToSendSupplierInvoice=Vendor invoices
    +MailToSendSupplierRequestForQuotation=Teklif talebi
    +MailToSendSupplierOrder=Satın alma siparişleri
    +MailToSendSupplierInvoice=Tedarikçi faturaları
     MailToSendContract=Sözleşmeler
     MailToThirdparty=Üçüncü partiler
     MailToMember=Üyeler
     MailToUser=Kullanıcılar
    -MailToProject=Projects page
    +MailToProject=Projeler sayfası
     ByDefaultInList=Liste görünümünde varsayılana göre göster
     YouUseLastStableVersion=En son kararlı sürümü kullanıyorsunuz
     TitleExampleForMajorRelease=Bu ana sürümü duyurmak için kullanabileceğiniz mesaj örneği (web sitenizde rahatça kullanabilirsiniz)
     TitleExampleForMaintenanceRelease=Bu bakım sürümü duyurmak için kullanabileceğiniz mesaj örneği (web sitenizde rahatça kullanabilirsiniz)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc="Her ürün/hizmet için çok seviyeli fiyat" açık ise her ürün için farklı fiyatlar (her fiyat seviyesi için bir) tanımlayabilirsiniz. Zaman kazanmak için, burada, temel fiyata göre her seviye için kendiliğinden hesaplama yapılması için kural girebilirisiniz. Bu sayfa zaman kazanmanız için vardır ve yalnzca diğer fiyat seviyeleri temel fiyata bağlı ise kullanışlıdır. Çoğu durumda bu sayfayı gözardı edebilirsiniz.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Ürün belgeleri için şablonlar
    -ToGenerateCodeDefineAutomaticRuleFirst=Otomatik kodlar oluşturabilmek için önce otomatik olarak barkod numarası tanımlayacak bir yönetici tanımlamalısınız.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=Olası yedek değişkenlerin lstesi için * notuna bakın
    -SeeChangeLog=See ChangeLog file (english only)
    +SeeChangeLog=ChangeLog dosyasına bakın (sadece ingilizce)
     AllPublishers=Bütün yayıncılar
     UnknownPublishers=Bilinmeyen yayıncılar
     AddRemoveTabs=Sekme ekle ya da sil
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Başka sayfa ya da hizmet ekle
     AddModels=belge ya da numaralandırma şablonu ekle
     AddSubstitutions=Yedek anahtar ekle
     DetectionNotPossible=Algılama olası değil
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=Mevcut API listesi
    -activateModuleDependNotSatisfied="%s" Modülü eksik olan "%s" modülüne bağlıdır, yani "%1$s" düzgün çalışmayabilir. Lütfen  "%2$s" modülünü kurun ya da herhangi bir sürprizle karşılaşmamak için  "%1$s" modülünü devre dışı bırakın.
    -CommandIsNotInsideAllowedCommands=Çalıştırmaya çalıştığınız komut, <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> parametre dosyası içindeki izin verilen komutlar olarak tanımlanan listede yoktur.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Açılış sayfası
    -SamePriceAlsoForSharedCompanies=Çok firmalı modülü kullanıyorsanız, eğer ürünler ortamlar arasında paylaşılıyorsa "Tek fiyat" seçeneği ile fiyat aynı zamanda tüm firmalar için aynı olur
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=Kullanıcının tanımlanmış izni yok
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=Bu kullanıcının tanımlanmış bir izni yok
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Şirketin referans para birimi (bunu değiştirmek için şirketin kurulumuna gidin)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=Bu modul %s Fransız yasalarına uygun (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=PDF'deki sol boşluk
     MAIN_PDF_MARGIN_RIGHT=PDF'deki sağ boşluk
     MAIN_PDF_MARGIN_TOP=PDF'deki üst boşluk
     MAIN_PDF_MARGIN_BOTTOM=PDF'deki alt kenar boşluğu
    -SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    -SeveralLangugeVariatFound=Several language variants found
    -COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
    +NothingToSetup=Bu modül için yapılacak özel bir kurulum yok
    +SetToYesIfGroupIsComputationOfOtherGroups=Eğer bu grup diğer grupların bir hesaplaması ise bunu evet olarak ayarlayın
    +EnterCalculationRuleIfPreviousFieldIsYes=Önceki alan Evet olarak ayarlanmışsa hesaplama kuralı girin (Örneğin 'CODEGRP1+CODEGRP2')
    +SeveralLangugeVariatFound=Birçok dil varyantı bulundu
    +COMPANY_AQUARIUM_REMOVE_SPECIAL=Özel karakterleri kaldır
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Veri Koruma Görevlisi (DPO, Veri Gizliliği veya GDPR kişisi)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Araç ipucunda gösterilecek yardım metni
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Sosyal Ağlar modülünün kurulumu
    +EnableFeatureFor=<strong>%s</strong> için özellikleri etkinleştir
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=PDF üzerindeki gönderen ve alıcı adreslerinin yerini birbiriyle değiştir
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Şimdi topla
    +DateLastResult=Date last collect
    +LastResult=Son sonuç
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr İzleme Kimliği bulundu
    +WithoutDolTrackingID=Dolibarr İzleme Kimliği bulunamadı
    +FormatZip=Posta Kodu
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
    -ConfirmUnactivation=Confirm module reset
    +ConfirmUnactivation=Modül sıfırlamayı onayla
    +OnMobileOnly=Sadece küçük ekranda (akıllı telefon)
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/tr_TR/agenda.lang b/htdocs/langs/tr_TR/agenda.lang
    index bd59b25eac7..81d4c4bd2ee 100644
    --- a/htdocs/langs/tr_TR/agenda.lang
    +++ b/htdocs/langs/tr_TR/agenda.lang
    @@ -12,7 +12,7 @@ Event=Etkinlik
     Events=Etkinlikler
     EventsNb=Etkinlik sayısı
     ListOfActions=Etkinlik listesi
    -EventReports=Event reports
    +EventReports=Etkinlik raporları
     Location=Konum
     ToUserOfGroup=Gruptaki herhangi bir kullanıcı için
     EventOnFullDay=Tam gün etkinliği
    @@ -31,14 +31,15 @@ ViewWeek=Hafta görünümü
     ViewPerUser=Kullanıcı görünümü başına
     ViewPerType=Görünüm türüne göre
     AutoActions= Gündemin otomatik doldurulması
    -AgendaAutoActionDesc= Burada Dolibarr'ın gündemde bir etkinlik olarak otomatikman oluşturacağı etkinlikleri tanımlayın. Hiçbir şey işaretli değilse, bağlanılan ve görünür olan gündeme yalnızca manuel eylemler dahil olacaktır. Nesneler üzerinde yapılan iş eylemlerinin (doğrulama, durum değişikliği) otomatik izlemeleri kaydedilmeyecektir.
    -AgendaSetupOtherDesc= Bu sayfa Dolibarr etkinliklerinin dış bir takvime aktarılması için seçenekler sağlar. (thunderbird, google calendar, ...)
    +AgendaAutoActionDesc= Here you can define events which you want Dolibarr to create automatically  in Agenda. If nothing is checked, only manual actions will be included in logs and displayed in Agenda. Automatic tracking of business actions done on objects (validation, status change) will not be saved.
    +AgendaSetupOtherDesc= This page provides options to allow exports of your Dolibarr events into an external calendar (thunderbird, google calendar, ...)
     AgendaExtSitesDesc=Bu sayfa takvimlerin dış kaynaklarında Dolibarr gündemindeki etkinliklerinin görünmesini sağlar.
     ActionsEvents=Dolibarr'ın otomatik olarak gündemde bir etkinlik oluşturacağı eylemler
    -EventRemindersByEmailNotEnabled=Event reminders by email was not enabled into Agenda module setup.
    +EventRemindersByEmailNotEnabled=Event reminders by email was not enabled into %s module setup.
     ##### Agenda event labels #####
     NewCompanyToDolibarr=Üçüncü parti %s oluşturuldu
     ContractValidatedInDolibarr=Doğrulanan firma %s
    +CONTRACT_DELETEInDolibarr=Sözleşme %s silindi
     PropalClosedSignedInDolibarr=İmzalan teklif %s
     PropalClosedRefusedInDolibarr=Reddedilen teklif %s
     PropalValidatedInDolibarr=%s Teklifi doğrulandı
    @@ -84,13 +85,13 @@ PRODUCT_CREATEInDolibarr=Ürün %s oluşturuldu
     PRODUCT_MODIFYInDolibarr=Ürün %s değiştirildi
     PRODUCT_DELETEInDolibarr=Ürün %s silindi
     EXPENSE_REPORT_CREATEInDolibarr=Expense report %s created
    -EXPENSE_REPORT_VALIDATEInDolibarr=Expense report %s validated
    +EXPENSE_REPORT_VALIDATEInDolibarr=Gider raporu %s doğrulandı
     EXPENSE_REPORT_APPROVEInDolibarr=Expense report %s approved
     EXPENSE_REPORT_DELETEInDolibarr=Expense report %s deleted
    -EXPENSE_REPORT_REFUSEDInDolibarr=Expense report %s refused
    +EXPENSE_REPORT_REFUSEDInDolibarr=Gider raporu %s reddedildi
     PROJECT_CREATEInDolibarr=%s projesi oluşturuldu
    -PROJECT_MODIFYInDolibarr=Project %s modified
    -PROJECT_DELETEInDolibarr=Project %s deleted
    +PROJECT_MODIFYInDolibarr=Proje %s değiştirildi
    +PROJECT_DELETEInDolibarr=Proje %s silindi
     ##### End agenda events #####
     AgendaModelModule=Etkinlik için belge şablonları
     DateActionStart=Başlama tarihi
    @@ -100,7 +101,7 @@ AgendaUrlOptions3=<b>kullanıcı girişi=%s</b>,  bir <b>%s</b> kullanıcısına
     AgendaUrlOptionsNotAdmin=Çıktıyı <b>%s</b> kullanıcısına ait olmayan etkinliklere sınırlamak için <b>logina=!%s</b>.
     AgendaUrlOptions4=Çıktıyı <b>%s</b> kullanıcısına (sahip ve diğerleri) atanmış etkinliklere sınırlamak için <b>logint=%s</b>.
     AgendaUrlOptionsProject=<b>project=__PROJECT_ID__</b> to restrict output to actions linked to project <b>__PROJECT_ID__</b>.
    -AgendaUrlOptionsNotAutoEvent=<b>notactiontype=systemauto</b> to exclude automatic event.
    +AgendaUrlOptionsNotAutoEvent=<b>notactiontype=systemauto</b> to exclude automatic events.
     AgendaShowBirthdayEvents=Kişilerin doğum günlerini göster
     AgendaHideBirthdayEvents=Kişilerin doğum günlerini gizle
     Busy=Meşgul
    @@ -110,9 +111,9 @@ DefaultWorkingHours=Varsayılan günlük çalışma saatleri (Örnek: 9-18)
     # External Sites ical
     ExportCal=Takvim dışaaktar
     ExtSites=Dış takvimleri içeaktar
    -ExtSitesEnableThisTool=Gündemde dış takvimleri (genel ayarlarda tanımlanan) göster. Kullanıcılar tarafından tanımlanan dış takvimleri etkilemez.
    +ExtSitesEnableThisTool=Show external calendars (defined in global setup) in Agenda. Does not affect external calendars defined by users.
     ExtSitesNbOfAgenda=Takvimlerin sayısı
    -AgendaExtNb=Calendar no. %s
    +AgendaExtNb=Takvim no. %s
     ExtSiteUrlAgenda=.ical dosyasına erişmek için URL
     ExtSiteNoLabel=Tanımlama yok
     VisibleTimeRange=Görünür zaman aralığı
    diff --git a/htdocs/langs/tr_TR/banks.lang b/htdocs/langs/tr_TR/banks.lang
    index d92b96bae51..4b83891c4a7 100644
    --- a/htdocs/langs/tr_TR/banks.lang
    +++ b/htdocs/langs/tr_TR/banks.lang
    @@ -1,13 +1,13 @@
     # Dolibarr language file - Source file is en_US - banks
     Bank=Banka
    -MenuBankCash=Bank | Cash
    -MenuVariousPayment=Miscellaneous payments
    -MenuNewVariousPayment=New Miscellaneous payment
    +MenuBankCash=Banka | Kasa
    +MenuVariousPayment=Çeşitli ödemeler
    +MenuNewVariousPayment=Yeni Çeşitli ödeme
     BankName=Banka adı
     FinancialAccount=Hesap
     BankAccount=Banka hesabı
     BankAccounts=Banka hesapları
    -BankAccountsAndGateways=Banka hesapları | Ağ geçitleri
    +BankAccountsAndGateways=Banka | Ağ Geçitleri
     ShowAccount=Hesabı Göster
     AccountRef=Ticari hesap ref
     AccountLabel=Ticari hesap adı
    @@ -31,11 +31,11 @@ Reconciliation=Uzlaşma
     RIB=Banka Hesap Numarası
     IBAN=IBAN numarası
     BIC=BIC/SWIFT numarası
    -SwiftValid=BIC/SWIFT valid
    -SwiftVNotalid=BIC/SWIFT not valid
    -IbanValid=BAN valid
    -IbanNotValid=BAN not valid
    -StandingOrders=Direct Debit orders
    +SwiftValid=BIC/SWIFT geçerli
    +SwiftVNotalid=BIC/SWIFT geçerli değil
    +IbanValid=BAN geçerli
    +IbanNotValid=BAN geçerli değil
    +StandingOrders=Otomatik Ödeme talimatları
     StandingOrder=Otomatik ödeme talimatı
     AccountStatement=Hesap özeti
     AccountStatementShort=Özet
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Hesap adresi
     BankAccountCountry=Hesap ülkesi
     BankAccountOwner=Hesap sahibi adı
     BankAccountOwnerAddress=Hesap sahibi adresi
    -RIBControlError=Değerlerin bütünlük denetimi başarısız. Bu demektir ki; bu hesap numarasına ait bilgiler tam değil ya da yanlıştır (ülkeyi, numaraları ve IBAN’ı kontrol edin).
    +RIBControlError=Değerlerin bütünlük kontrolü başarısız. Bu da, bu hesap numarasının bilgilerinin eksik veya yanlış olduğu anlamına gelir (ülke, numaralar ve IBAN kontrol edin).
     CreateAccount=Hesap oluştur
     NewBankAccount=Yeni hesap
     NewFinancialAccount=Yeni ticari hesap
    @@ -60,42 +60,43 @@ BankType2=Kasa hesabı
     AccountsArea=Hesaplar alanı
     AccountCard=Hesap kartı
     DeleteAccount=Hesap sil
    -ConfirmDeleteAccount=Are you sure you want to delete this account?
    +ConfirmDeleteAccount=Bu hesabı silmek istediğinizden emin misiniz?
     Account=Hesap
    -BankTransactionByCategories=Bank entries by categories
    -BankTransactionForCategory=Bank entries for category <b>%s</b>
    +BankTransactionByCategories=Kategorilere göre banka kayıtları
    +BankTransactionForCategory=<b>%s</b> kategorisi için banka kayıtları
     RemoveFromRubrique=Kategori bağlantısını kaldır
    -RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category?
    -ListBankTransactions=List of bank entries
    +RemoveFromRubriqueConfirm=Giriş ve kategori arasındaki bağlantıyı kaldırmak istediğinizden emin misiniz?
    +ListBankTransactions=Banka kayıtlarının listesi
     IdTransaction=İşlem Kimliği
    -BankTransactions=Bank entries
    -BankTransaction=Bank entry
    -ListTransactions=List entries
    -ListTransactionsByCategory=List entries/category
    -TransactionsToConciliate=Entries to reconcile
    +BankTransactions=Banka kayıtları
    +BankTransaction=Banka girişi
    +ListTransactions=Kayıtları listele
    +ListTransactionsByCategory=Kayıtları/Kategorileri listele
    +TransactionsToConciliate=Uzlaştırılacak girişler
     Conciliable=Uzlaştırılabilir
     Conciliate=Uzlaştır
     Conciliation=Uzlaşma
    -ReconciliationLate=Reconciliation late
    +SaveStatementOnly=Yalnızca bildirimi kaydet
    +ReconciliationLate=Uzlaştırma gecikmiş
     IncludeClosedAccount=Kapalı hesapları içer
     OnlyOpenedAccount=Yalnızca açık hesaplar
     AccountToCredit=Alacak hesabı
     AccountToDebit=Borç hesabı
     DisableConciliation=Bu hesap için uzlaşma özelliğini engelle
     ConciliationDisabled=Uzlaşma özelliği engelli
    -LinkedToAConciliatedTransaction=Linked to a conciliated entry
    +LinkedToAConciliatedTransaction=Uzlaştırılmış bir girişe bağlı
     StatusAccountOpened=Açık
     StatusAccountClosed=Kapalı
     AccountIdShort=Numarası
     LineRecord=İşlem
    -AddBankRecord=Add entry
    -AddBankRecordLong=Add entry manually
    -Conciliated=Reconciled
    +AddBankRecord=Giriş ekle
    +AddBankRecordLong=El ile giriş ekle
    +Conciliated=Uzlaştırıldı
     ConciliatedBy=Uzlaştıran
     DateConciliating=Uzlaştırma tarihi
    -BankLineConciliated=Entry reconciled
    -Reconciled=Reconciled
    -NotReconciled=Not reconciled
    +BankLineConciliated=Giriş uzlaştırıldı
    +Reconciled=Uzlaştırıldı
    +NotReconciled=Uzlaştırılmadı
     CustomerInvoicePayment=Müşteri ödemesi
     SupplierInvoicePayment=Tedarikçi ödemesi
     SubscriptionPayment=Abonelik ödemesi
    @@ -104,26 +105,26 @@ SocialContributionPayment=Sosyal/mali vergi ödemesi
     BankTransfer=Banka havalesi
     BankTransfers=Banka havaleleri
     MenuBankInternalTransfer=İç aktarım
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Bir hesaptan başka bir hesaba transfer sırasında Dolibarr iki kayıt yazacaktır (kaynak hesaba borç ve hedef hesaba kredi). Bu işlem için aynı tutar (işaret hariç), etiket ve tarih kullanılacaktır.
     TransferFrom=Kimden
     TransferTo=Kime
     TransferFromToDone=<b>%s</b> den <b>%s</b> nin <b>%s</b> %s ne bir transfer kaydedildi.
     CheckTransmitter=Gönderen
    -ValidateCheckReceipt=Validate this check receipt?
    -ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt, no change will be possible once this is done?
    -DeleteCheckReceipt=Delete this check receipt?
    -ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
    +ValidateCheckReceipt=Bu çek makbuzu doğrulansın mı?
    +ConfirmValidateCheckReceipt=Bu çek makbuzunu doğrulamak istediğinizden emin misiniz? Bu işlem onayından sonra değişiklik yapılamaz.
    +DeleteCheckReceipt=Bu çek makbuzu silinsin mi?
    +ConfirmDeleteCheckReceipt=Bu çek makbuzunu silmek istediğinizden emin misiniz?
     BankChecks=Banka çekleri
     BankChecksToReceipt=Ödeme için bekleyen çekler
     ShowCheckReceipt=Çek tahsilat makbuzunu göster
     NumberOfCheques=Çek sayısı
    -DeleteTransaction=Delete entry
    -ConfirmDeleteTransaction=Are you sure you want to delete this entry?
    -ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    +DeleteTransaction=Girişi sil
    +ConfirmDeleteTransaction=Bu girişi silmek istediğinizden emin misiniz?
    +ThisWillAlsoDeleteBankRecord=Bu, oluşturulan banka girişini de silecektir
     BankMovements=Hareketler
    -PlannedTransactions=Planned entries
    +PlannedTransactions=Planlanmış girişler
     Graph=Grafikler
    -ExportDataset_banque_1=Bank entries and account statement
    +ExportDataset_banque_1=Banka kayıtları ve hesap ekstresi
     ExportDataset_banque_2=Banka cüzdanı
     TransactionOnTheOtherAccount=Diğer hesaptaki işlemler
     PaymentNumberUpdateSucceeded=Ödeme numarası güncellemesi başarılı
    @@ -131,35 +132,36 @@ PaymentNumberUpdateFailed=Ödeme numarası güncellenemedi
     PaymentDateUpdateSucceeded=Ödeme tarihi güncellemesi başarılı
     PaymentDateUpdateFailed=Ödeme tarihi güncellenemedi
     Transactions=İşlemler
    -BankTransactionLine=Bank entry
    -AllAccounts=All bank and cash accounts
    +BankTransactionLine=Banka girişi
    +AllAccounts=Tüm banka ve kasa hesapları
     BackToAccount=Hesaba geri dön
     ShowAllAccounts=Tüm hesaplar için göster
     FutureTransaction=Gelecekteki işlem. Hiçbir şekilde uzlaştırılamaz.
    -SelectChequeTransactionAndGenerate=Çek tahsilat makbuzunun içereceği çekleri seç/süz ve “Oluştur” a tıkla.
    +SelectChequeTransactionAndGenerate=Çek mevduat makbuzuna dahil etmek için çekleri seç/filtrele ve "Oluştur" butonuna tıkla.
     InputReceiptNumber=Uzlaştırma ile ilişkili banka hesap özetini seç. Sıralanabilir bir sayısal değer kullan: YYYYMM ya da YYYYMMDD
     EventualyAddCategory=Sonunda, kayıtları sınıflandırmak için bir kategori belirtin
    -ToConciliate=To reconcile?
    +ToConciliate=Uzlaştırılsın mı?
     ThenCheckLinesAndConciliate=Sonra, banka hesap özetindeki kalemleri işaretleyin ve tıklayın
     DefaultRIB=Varsayılan BAN
     AllRIB=Tüm BAN
     LabelRIB=BAN Etiketi
     NoBANRecord=BAN kaydı yok
     DeleteARib=BAN kaydını sil
    -ConfirmDeleteRib=Are you sure you want to delete this BAN record?
    +ConfirmDeleteRib=Bu BAN kaydını silmek istediğinizden emin misiniz?
     RejectCheck=Çek döndü
    -ConfirmRejectCheck=Are you sure you want to mark this check as rejected?
    +ConfirmRejectCheck=Bu çeki reddedildi olarak işaretlemek istediğinizden emin misiniz?
     RejectCheckDate=Dönen çekin tarihi
     CheckRejected=Çek döndü
     CheckRejectedAndInvoicesReopened=Çek döndü ve fatura yeniden açık yapıldı
     BankAccountModelModule=Banka hesapları için belge şablonları
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    -DocumentModelBan=Template to print a page with BAN information.
    -NewVariousPayment=New miscellaneous payments
    -VariousPayment=Miscellaneous payments
    -VariousPayments=Miscellaneous payments
    -ShowVariousPayment=Show miscellaneous payments
    -AddVariousPayment=Add miscellaneous payments
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
    +DocumentModelBan=BAN bilgisini içeren bir sayfayı yazdırmak için şablon
    +NewVariousPayment=Yeni çeşitli ödemeler
    +VariousPayment=Çeşitli ödemeler
    +VariousPayments=Çeşitli ödemeler
    +ShowVariousPayment=Çeşitli ödemeleri göster
    +AddVariousPayment=Çeşitli ödemeler ekle
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/tr_TR/bills.lang b/htdocs/langs/tr_TR/bills.lang
    index e8c312862a6..ab484eed728 100644
    --- a/htdocs/langs/tr_TR/bills.lang
    +++ b/htdocs/langs/tr_TR/bills.lang
    @@ -12,7 +12,7 @@ BillsLate=Geç ödemeler
     BillsStatistics=Müşteri faturaları istatistikleri
     BillsStatisticsSuppliers=Tedarikçi faturaları istatistikleri
     DisabledBecauseDispatchedInBookkeeping=Disabled because invoice was dispatched into bookkeeping
    -DisabledBecauseNotLastInvoice=Disabled because invoice is not erasable. Some invoices were recorded after this one and it will create holes in the counter.
    +DisabledBecauseNotLastInvoice=Fatura silinebilir olmadığı için devre dışı. Bazı faturalar bundan sonra kaydedildi ve sayaçta boşluklar oluşturacaktır.
     DisabledBecauseNotErasable=Silinemediği için devre dışı bırakıldı
     InvoiceStandard=Standart fatura
     InvoiceStandardAsk=Standart fatura
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma fatura
     InvoiceProFormaDesc=<b>Proforma fatura</b> gerçek faturanın bir görüntüsüdür ancak muhasebe değeri yoktur.
     InvoiceReplacement=Fatura değiştirme
     InvoiceReplacementAsk=Fatura değiştirme yapılacak fatura
    -InvoiceReplacementDesc=<b>Fatura değiştirme</b> henüz tahsilat yapılmamış bir faturanın iptal edilmesi ve tamamen değiştirilmesi için kullanılır.<br><br>Not: Yalnızca ödeme yapılmamış faturalar değiştirilebilir. Değiştirdiğiniz fatura eğer henüz kapataılmamışsa, kullanılmamak üzere otomatik olarak kapatılacaktır.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=İade faturası
     InvoiceAvoirAsk=Fatura düzeltmek için iade faturası
    -InvoiceAvoirDesc=<b>İade Faturası</b> bir eksi fatura olup fatura tutarının gerçekte ödenen tutardan farklı olması durumunda kullanılır (çünkü müşteri yanlışlıkla fazla ödeme yapmıştır, ya da tamamını ödemeyecektir, örneğin bazı malları iade etmiştir).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=İlk faturadan alınan kalemlerle İade Faturası oluştur
     invoiceAvoirWithPaymentRestAmount=İlk faturanın ödenmemiş bakiyeli İade Faturası
     invoiceAvoirLineWithPaymentRestAmount=Ödenmemiş kalan tutar için İade Faturası
    @@ -66,8 +66,8 @@ paymentInInvoiceCurrency=fatura para biriminde
     PaidBack=Geri ödenen
     DeletePayment=Ödeme sil
     ConfirmDeletePayment=Bu ödemeyi silmek istediğinizden emin misiniz?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Tedarikçi ödemeleri
     ReceivedPayments=Alınan ödemeler
     ReceivedCustomersPayments=Müşterilerden alınan ödemeler
    @@ -79,7 +79,7 @@ PaymentsAlreadyDone=Halihazırda yapılmış ödemeler
     PaymentsBackAlreadyDone=Zaten yapılmış geri ödemeler
     PaymentRule=Ödeme kuralı
     PaymentMode=Ödeme türü
    -PaymentTypeDC=Debit/Credit Card
    +PaymentTypeDC=Banka/Kredi Kartı
     PaymentTypePP=PayPal
     IdPaymentMode=Ödeme türü (id)
     CodePaymentMode=Ödeme türü (kod)
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Ödeme koşulları
     PaymentAmount=Ödeme tutarı
     ValidatePayment=Ödeme doğrula
     PaymentHigherThanReminderToPay=Ödeme hatırlatmasından daha yüksek ödeme
    -HelpPaymentHigherThanReminderToPay=Dikkat, bir ya da daha çok faturanın ödeme tutarı ödenecek bakiyeden yüksektir.<br> Girişinizi düzeltin, aksi durumda her fazla ödenen fatura için bir iade faturası oluşturmayı onaylayın ve düşünün.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Sınıflandırma ‘Ödendi’
     ClassifyPaidPartially=Sınıflandırma ‘Kısmen ödendi’
     ClassifyCanceled=’Terkedildi’ olarak sınıflandır
    @@ -107,8 +107,8 @@ SearchACustomerInvoice=Müşteri faturası ara
     SearchASupplierInvoice=Tedarikçi faturası ara
     CancelBill=Fatura iptal et
     SendRemindByMail=EPosta ile anımsatma gönder
    -DoPayment=Enter payment
    -DoPaymentBack=Enter refund
    +DoPayment=Ödeme girin
    +DoPaymentBack=Para iadesi girin
     ConvertToReduc=Mark as credit available
     ConvertExcessReceivedToReduc=Convert excess received into available credit
     ConvertExcessPaidToReduc=Convert excess paid into available discount
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Kapalı (ödenmemiş)
     BillStatusClosedPaidPartially=Ödenmiş (kısmen)
     BillShortStatusDraft=Taslak
     BillShortStatusPaid=Ödenmiş
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Ödenmiş
     BillShortStatusCanceled=Terkedilmiş
     BillShortStatusValidated=Doğrulanmış
    @@ -141,36 +142,36 @@ BillShortStatusNotRefunded=Geri ödeme yapılmadı
     BillShortStatusClosedUnpaid=Kapalı
     BillShortStatusClosedPaidPartially=Ödenmiş (Kısmen)
     PaymentStatusToValidShort=Doğrulanacak
    -ErrorVATIntraNotConfigured=KDV numarası henüz tanımlanmamış
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Hiç ödeme biçimi tanımlanmamış. Bunu düzeltmek için fatura modülü kurulumuna gidin.
     ErrorCreateBankAccount=Bir banka hesabı oluşturun, daha sonra ödeme biçimi tanımlamak için fatura modülünün kurulum paneline gidin.
     ErrorBillNotFound=Fatura %s mevcut değil
    -ErrorInvoiceAlreadyReplaced=Hata, fatura %s le değiştirilecek bir faturayı doğrulamaya çalışıyorsunuz. Ama bu fatura zaten fatura %s ile değiştirilmiş.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Hata, indirim zaten kullanılmış
     ErrorInvoiceAvoirMustBeNegative=Hata, doğru fatura eksi bir tutarda olmalıdır
     ErrorInvoiceOfThisTypeMustBePositive=Hata, bu türde bir fatura artı tutarda olmalıdır
     ErrorCantCancelIfReplacementInvoiceNotValidated=Hata, halen taslak durumunda olan bir faturayla değiştirilmiş bir faturayı iptal edemezsiniz
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Kimden
     BillTo=Kime
     ActionsOnBill=Fatura üzerindeki eylemler
    -RecurringInvoiceTemplate=Template / Recurring invoice
    +RecurringInvoiceTemplate=Şablon/Yinelenen fatura
     NoQualifiedRecurringInvoiceTemplateFound=Oluşturmak için gerekli nitelikte yinelenen fatura şablonu yok.
     FoundXQualifiedRecurringInvoiceTemplate=Oluşturmak için gerekli nitelikte %s yinelenen fatura(lar) şablonu bulundu.
     NotARecurringInvoiceTemplate=Bir yinelenen fatura şablonu değil
     NewBill=Yeni fatura
    -LastBills=Latest %s invoices
    -LatestTemplateInvoices=Latest %s template invoices
    -LatestCustomerTemplateInvoices=Latest %s customer template invoices
    -LatestSupplierTemplateInvoices=Latest %s supplier template invoices
    +LastBills=En son %s fatura
    +LatestTemplateInvoices=En son %s şablon fatura
    +LatestCustomerTemplateInvoices=En son %s müşteri şablon faturası
    +LatestSupplierTemplateInvoices=En son %s tedarikçi şablon faturası
     LastCustomersBills=En yeni %s müşteri faturaları 
     LastSuppliersBills=En son %s tedarikçi faturaları
     AllBills=Tüm faturalar
    -AllCustomerTemplateInvoices=All template invoices
    +AllCustomerTemplateInvoices=Tüm şablon faturaları
     OtherBills=Diğer faturalar
     DraftBills=Taslak faturalar
    -CustomersDraftInvoices=Customer draft invoices
    -SuppliersDraftInvoices=Supplier draft invoices
    +CustomersDraftInvoices=Müşteri taslak faturaları
    +SuppliersDraftInvoices=Tedarikçi taslak faturaları
     Unpaid=Ödenmemiş
     ConfirmDeleteBill=Bu faturayı silmek istediğinizden emin misiniz?
     ConfirmValidateBill=<b>%s</b> referanslı bu faturayı doğrulamak istediğiniz emin misiniz?
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=<b>%s</b> faturasının durumunu ödenmiş olarak deği
     ConfirmCancelBill=<b>%s</b> faturasını iptal etmek istediğinizden emin misiniz?
     ConfirmCancelBillQuestion=Neden bu faturayı ‘vazgeçilmiş’ olarak sınıflandırmak istiyorsunuz?
     ConfirmClassifyPaidPartially=<b>%s</b> faturasının durumunu ödenmiş olarak değiştirmek istediğinizden emin misiniz?
    -ConfirmClassifyPaidPartiallyQuestion=Bu fatura tamamen ödenmemiş. Bu faturayı kapatmak için nedenler nelerdir?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Kalan bakiye <b>(%s %s)</b> ödeme vadesinden önce yapıldığından dolayı verilmiş bir indirimdr. KDV bir iade faturasıyla ayarIanır.
    +ConfirmClassifyPaidPartiallyQuestion=Bu fatura tamamen ödenmedi. Bu faturayı kapatmanızın neden(ler)i nedir?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Kalan ödenmemiş tutar <b>(%s %s)</b> ödeme vadesinden önce ödendiğinden bir indirim olarak verilmiştir. Burada KDV sini kaybetmeyi kabul ediyorum.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Kalan bakiye <b>(%s %s)</b> ödeme vadesinden önce yapıldığından dolayı verilmiş bir indirimdr. KDV bir iade faturasıyla düzeltilir.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Kötü müşteri
     ConfirmClassifyPaidPartiallyReasonProductReturned=Ürünler kısmen iade edildi
     ConfirmClassifyPaidPartiallyReasonOther=Diğer bir nedenle terkedilen tutar
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Eğer fatura uygun yorum ile sağlanmışsa, bu seçim mümkündür. (Örneğin; «Fiyatın karşılığı olan verginin gerçekten ödenmiş olması indirim yapılması hakkını verir»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Bazı ülkelerde, bu seçenek yalnızca fatura doğru notu içeriyorsa mümkün olabilir.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Eğer diğerlerinin hiçbiri uymuyorsa bu seçimi kullanın
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Bir <b>Kötü müşteri</b> borçlarını ödemeyi reddeden müşteridir.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Bir <b>kötü müşteri</b> borcunu ödemeyi reddeden müşteridir.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Bu seçenek, bazı ürün iadelerinden dolayı ödeme tamamlanamazsa, kullanılır.
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Bu seçeneği, eğer diğerlerinin hiçbiri uymazsa kullanın, örneğin aşağıdaki durumda:<br>- bazı ürünlerin geri sevkedilmesinden dolayı ödeme tamalanamzsa<br>- istenen tutar çok önemli çünkü indirim unutulmuştur.<br> Bütün durumlarda, istenen fazla tutar muhasebe sisteminde bir iade faturası oluşturularak düzeltilir.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Diğer
     ConfirmClassifyAbandonReasonOtherDesc=Diğer bütün durumlarda bu seçenek kullanılacaktır. Örneğin; bir fatura değiştirmeyi tasarladığınızda.
     ConfirmCustomerPayment=Bu ödeme girişini <b>%s </ b>%s için onaylıyor musunuz?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Bu ödeme girişini <b>%s </ b>%s için onaylıyor musunu
     ConfirmValidatePayment=Bu ödemeyi doğrulamak istediğinizden emin misiniz? Ödeme doğrulandıktan sonra hiçbir değişiklik yapılamaz.
     ValidateBill=Fatura doğrula
     UnvalidateBill=Faturadan doğrulamayı kaldır
    -NumberOfBills=Fatura sayısı
    -NumberOfBillsByMonth=Aylık fatura sayısı
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Faturaların tutarı
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Aylık fatura tutarı (vergisiz net)
     ShowSocialContribution=Sosyal/mali vergi göster
     ShowBill=Fatura göster
    @@ -260,9 +262,9 @@ Repeatables=Şablonlar
     ChangeIntoRepeatableInvoice=Fatura şablonuna dönüştür
     CreateRepeatableInvoice=Fatura şablonu oluştur
     CreateFromRepeatableInvoice=Fatura şablonundan oluştur
    -CustomersInvoicesAndInvoiceLines=Müşteri faturaları ve fatura satırları
    +CustomersInvoicesAndInvoiceLines=Müşteri faturaları ve fatura detayları
     CustomersInvoicesAndPayments=Müşteri faturaları ve ödemeleri
    -ExportDataset_invoice_1=Müşteri faturaları listesi ve fatura satırları
    +ExportDataset_invoice_1=Müşteri faturaları ve fatura detayları
     ExportDataset_invoice_2=Müşteri faturaları ve ödemeleri
     ProformaBill=Proforma Fatura:
     Reduction=Kesinti
    @@ -300,11 +302,11 @@ DiscountOfferedBy=Veren
     DiscountStillRemaining=Discounts or credits available
     DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Müşteri indirimleri
    -SupplierDiscounts=Vendors discounts
    +SupplierDiscounts=Tedarikçi indirimleri
     BillAddress=Fatura adresi
    -HelpEscompte=Bu indirim, vadesinden önce ödeme yapıldığından dolayı müşteriye verilir.
    -HelpAbandonBadCustomer=Bu tutardan vazgeçilmiştir (müşteri kötü bir müşteri olarak kabul edildiğinden dolayı) ve istisnai bir kayıp olarak kabul edilir.
    -HelpAbandonOther=Bir hata olduğundan dolayı bu tutardan vazgeçilmiştir (örneğin yanlış müşteri ya da bir faturanın başka faturayla değiştirilmesi durumu gibi)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Sosyal/mali vergi ödeme kimliği
     PaymentId=Ödeme no
     PaymentRef=Ödeme ref.
    @@ -321,35 +323,35 @@ InvoiceNotChecked=Seçilen yok fatura
     CloneInvoice=Fatura kopyala
     ConfirmCloneInvoice=<b>%s</b> faturasını kopyalamak istediğinizden emin misiniz?
     DisabledBecauseReplacedInvoice=Eylem engellendi, çünkü fatura değiştirilmiştir
    -DescTaxAndDividendsArea=Bu alan özel harcamalar için yapılmış tüm ödemelerin bir özetini sunar.  Burası sadece sabit yıl boyunca yapılmış ödeme kaydını kapsar.
    -NbOfPayments=Ödeme sayısı
    +DescTaxAndDividendsArea=Bu alan, özel giderler için yapılmış tüm ödemelerin bir özetini sunar. Yalnızca sabit yıl boyunca yapılan ödeme kayıtları burada yeralır.
    +NbOfPayments=No. of payments
     SplitDiscount=İndirimi ikiye böl
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Her iki kısım için tutar girin:
    -TotalOfTwoDiscountMustEqualsOriginal=İki yeni indirimin toplamı orijinal indirim tutarına eşit olmalıdır.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Bu indirimi kaldırmak istediğinizden emin misiniz?
     RelatedBill=İlgili fatura
     RelatedBills=İlgili faturalar
     RelatedCustomerInvoices=İlgili müşteri faturaları
     RelatedSupplierInvoices=İlgili tedarikçi faturaları
     LatestRelatedBill=Son ilgili fatura
    -WarningBillExist=Uyarı, bir yada çok fatura zaten var
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Birleştirme PDF aracı
     AmountPaymentDistributedOnInvoice=Faturaya dağıtılan ödeme tutarı
    -PaymentOnDifferentThirdBills=Ana firmaya ait farklı üçüncü taraf faturalarında ödemeye izin ver 
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Ödeme notu
     ListOfPreviousSituationInvoices=Önceki hakediş faturaları listesi
     ListOfNextSituationInvoices=Sonraki hakediş faturaları listesi
    -ListOfSituationInvoices=List of situation invoices
    -CurrentSituationTotal=Total current situation
    +ListOfSituationInvoices=Durum faturalarının listesi
    +CurrentSituationTotal=Toplam mevcut durum
     DisabledBecauseNotEnouthCreditNote=To remove a situation invoice from cycle, this invoice's credit note total must cover this invoice total
    -RemoveSituationFromCycle=Remove this invoice from cycle
    +RemoveSituationFromCycle=Bu faturayı döngüden kaldır
     ConfirmRemoveSituationFromCycle=Remove this invoice %s from cycle ?
     ConfirmOuting=Confirm outing
     FrequencyPer_d=Her %s günde
     FrequencyPer_m=Her %s ayda
     FrequencyPer_y=Her %s yılda
    -FrequencyUnit=Frequency unit
    +FrequencyUnit=Frekans birimi
     toolTipFrequency=Examples:<br><b>Set 7, Day</b>: give a new invoice every 7 days<br><b>Set 3, Month</b>: give a new invoice every 3 month
     NextDateToExecution=Sonraki fatura oluşturulacak tarih
     NextDateToExecutionShort=Date next gen.
    @@ -365,7 +367,7 @@ DateIsNotEnough=Henüz tarihe ulaşılmadı
     InvoiceGeneratedFromTemplate=Fatura %s yinelenen fatura şablonundan %s oluşturuldu
     WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date
     WarningInvoiceDateTooFarInFuture=Uyarı, fatura tarihi şu anki tarihten çok uzak
    -ViewAvailableGlobalDiscounts=View available discounts
    +ViewAvailableGlobalDiscounts=Mevcut indirimleri görüntüle
     # PaymentConditions
     Statut=Durumu
     PaymentConditionShortRECEP=Teslimatta Peşin
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Çek
     PaymentTypeShortCHQ=Çek
     PaymentTypeTIP=TIP (Ödeme karşılığ belgeler)
     PaymentTypeShortTIP=TIP Ödemesi
    -PaymentTypeVAD=İnternetten ödeme
    -PaymentTypeShortVAD=İnternetten ödeme
    +PaymentTypeVAD=Online ödeme
    +PaymentTypeShortVAD=Online ödeme
     PaymentTypeTRA=Banka ödeme emri
     PaymentTypeShortTRA=Ödeme emri
     PaymentTypeFAC=Faktör
     PaymentTypeShortFAC=Faktör
     BankDetails=Banka ayrıntıları
     BankCode=Banka kodu
    -DeskCode=Sıra kodu
    +DeskCode=Ofis kodu
     BankAccountNumber=Hesap numarası
    -BankAccountNumberKey=Anahtar
    +BankAccountNumberKey=Basamakları kontrol et
     Residence=Otomatik ödeme
    -IBANNumber=IBAN numarası
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT numarası
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Aşağıdaki banka hesabına havale ile ödem
     VATIsNotUsedForInvoice=* KDV uygulanmaz madde-293B CGI
     LawApplicationPart1=12/05/80 tarihli 80.335 yasasının uygulanması ile
     LawApplicationPart2=mallar şunun mülkiyetinde kalır
    -LawApplicationPart3=satıcı ödemesini tamamlayıncaya kadar
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=fiyatları.
     LimitedLiabilityCompanyCapital=SARL nin sermayesi
     UseLine=Uygula
    @@ -463,32 +465,33 @@ Cheques=Çekler
     DepositId=Depozit Kimliği
     NbCheque=Çek sayısı
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Fatura alıcısı olarak üçüncü parti adresi yerine müşteri faturası kişi adresini kullan
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Tüm ödenmemiş faturaları göster
     ShowUnpaidLateOnly=Ödenmemiş bütün faturaları göster
     PaymentInvoiceRef=Fatura %s ödemesi
     ValidateInvoice=Fatura doğrula
    -ValidateInvoices=Validate invoices
    +ValidateInvoices=Faturaları doğrula
     Cash=Nakit
     Reported=Gecikmiş
     DisabledBecausePayments=Bazı ödemeler olduğundan dolayı mümkün değil
     CantRemovePaymentWithOneInvoicePaid=En az bir fatura ödenmiş olarak sınıflandırıldığı için ödemeyi silemezsiniz
     ExpectedToPay=Beklenen ödeme
    -CantRemoveConciliatedPayment=Uzlaşılmış ödeme silinemiyor
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Bu ödeme ile ödenmiş
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Tamamı ödenmiş iade faturalarını "Ödendi" olarak sınıflandır.
    -ClosePaidContributionsAutomatically=Tamamı ödenmiş tüm sosyal ve mali katkı paylarını "Ödendi" olarak sınıflandır.
    -AllCompletelyPayedInvoiceWillBeClosed=Bakiyesi kalmayan bütün faturalar otomatikmen kapatılarak "Ödendi" durumuna getirilecektir.
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Öde
     ToMakePaymentBack=Geri öde
     ListOfYourUnpaidInvoices=Ödenmemiş fatura listesi
     NoteListOfYourUnpaidInvoices=Not: Bu liste, satış temsilcisi olarak bağlı olduğunuz üçüncü partilere ait faturaları içerir.
     RevenueStamp=Bandrol
    -YouMustCreateInvoiceFromThird=Üçüncü tarafa ait "müşteri" sekmesinden fatura oluşturulduğunda seçenek geçerlidir
    -YouMustCreateInvoiceFromSupplierThird=Üçüncü tarafa ait "tedarikçi" sekmesinden fatura oluşturulduğunda seçenek geçerlidir
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=Yeni bir fatura şablonu oluşturmak için önce bir standart fatura oluşturmalı ve onu "şablona" dönüştürmelisiniz
     PDFCrabeDescription=Fatura PDF şablonu Crabe. Tam fatura şablonu  (Önerilen şablon)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Fatura PDF şablonu Crevette. Durum faturaları için eksiksiz bir fatura şablonu
     TerreNumRefModelDesc1=Standart faturalar için numarayı  %syymm-nnnn biçiminde ve iade faturaları için %syymm-nnnn biçiminde göster, yy yıl, mm ay ve nnnn boşluksuz ve 0 olmayan bir dizidir.
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,9 +536,9 @@ invoiceLineProgressError=Fatura satırı ilerleyişi sonraki fatura satırından
     updatePriceNextInvoiceErrorUpdateline=Hata : Faturanın bu satırı üzerindeki fiyatı güncelle : %s
     ToCreateARecurringInvoice=Bu sözleşme için yinelenen fattura oluşturmak için önce bu taslak faturayı oluşturun sonra onu bir fatura şablonuna dönüştürün ve sonraki faturaların oluşması için süre tanımlayın.
     ToCreateARecurringInvoiceGene=Gelecekteki faturaları düzenli ve manuel olarak oluşturmak için yalnızca <strong>%s - %s - %s</strong> menüsüne gidin.
    -ToCreateARecurringInvoiceGeneAuto=Eğer böyle otomatik oluşturulan faturalara gereksinim duyuyorsanız, yöneticinizden <strong>%s</strong> modülünü etkinleştirmesini ve ayarlamasını isteyin. Her iki yöntemin (manuel ve otomatik) tekrarlama riski olmadan birlikte kullanılabileceğini unutmayın.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Fatura şablonunu sil
    -ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
    +ConfirmDeleteRepeatableInvoice=Şablon faturasını silmek istediğinizden emin misiniz?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
     BillCreated=%s bill(s) created
     StatusOfGeneratedDocuments=Status of document generation
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Başlangıç tarihini ayarla
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Bitiş tarihini ayarla
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Fatura silindi
    diff --git a/htdocs/langs/tr_TR/cashdesk.lang b/htdocs/langs/tr_TR/cashdesk.lang
    index 3da6cad2b44..9e4b44714db 100644
    --- a/htdocs/langs/tr_TR/cashdesk.lang
    +++ b/htdocs/langs/tr_TR/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Firma göster
     ShowStock=Depo göster
     DeleteArticle=Bu malı kaldırmak için tıkla
     FilterRefOrLabelOrBC=Ara (Ref/Etiket)
    -UserNeedPermissionToEditStockToUsePos=Fatura oluştururken stok arttırmanız istenir, böylece POS kullanan kullanıcı stok düzenlemek için izne gereksinim duyar.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Fiş Yazıcısı
    +PointOfSale=Satış Noktası
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Tablo ekle
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Sipariş yazıcıları
    +SearchProduct=Ürün ara
    diff --git a/htdocs/langs/tr_TR/commercial.lang b/htdocs/langs/tr_TR/commercial.lang
    index 31e0034a764..7b5448ecec3 100644
    --- a/htdocs/langs/tr_TR/commercial.lang
    +++ b/htdocs/langs/tr_TR/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Telefon çağrısı
     ActionAC_FAX=Faks gönder
     ActionAC_PROP=Teklifi postayla gönder
     ActionAC_EMAIL=Eposta gönder
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Toplantılar
     ActionAC_INT=Siteden müdahale
     ActionAC_FAC=Müşteri faturasını postayla gönder gönder
    @@ -60,8 +61,8 @@ ActionAC_CLO=Kapat
     ActionAC_EMAILING=Toplu eposta gönder
     ActionAC_COM=Müşteri siparişini postayla gönder
     ActionAC_SHIP=Sevkiyatı postayla gönder
    -ActionAC_SUP_ORD=Send purchase order by mail
    -ActionAC_SUP_INV=Send vendor invoice by mail
    +ActionAC_SUP_ORD=Satınalma siparişini e-posta ile gönder
    +ActionAC_SUP_INV=Tedarikçi faturasını e-posta ile gönder
     ActionAC_OTH=Diğer
     ActionAC_OTH_AUTO=Otomatikman eklenen etkinlikler
     ActionAC_MANUAL=Elle eklenen etkinlikler
    @@ -72,8 +73,8 @@ StatusProsp=Aday durumu
     DraftPropals=Taslak teklifler
     NoLimit=Sınır yok
     ToOfferALinkForOnlineSignature=Online imza için link
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=%s'dan ticari teklifleri kabul etme sayfasına hoş geldiniz.
     ThisScreenAllowsYouToSignDocFrom=Bu ekran, bir teklifi kabul etmenize ve imzalamanıza veya reddetmenize olanak sağlar.
    -ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +ThisIsInformationOnDocumentToSign=Bu, kabul veya reddedilecek belge hakkında bilgidir
    +SignatureProposalRef=Ticari teklifin imzası %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/tr_TR/companies.lang b/htdocs/langs/tr_TR/companies.lang
    index bddbac42fa0..b0fcac05eb0 100644
    --- a/htdocs/langs/tr_TR/companies.lang
    +++ b/htdocs/langs/tr_TR/companies.lang
    @@ -5,14 +5,14 @@ SelectThirdParty=Bir üçüncü parti seç
     ConfirmDeleteCompany=Bu firmayı ve devralınan tüm bilgilerini silmek istediğinizden emin misiniz?
     DeleteContact=Bir kişi/adres sil
     ConfirmDeleteContact=Bu kişiyi ve devralınan tüm bilgilerini silmek istediğinizden emin misiniz?
    -MenuNewThirdParty=Yeni üçüncü parti
    -MenuNewCustomer=Yeni müşteri
    -MenuNewProspect=Yeni aday
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=Yeni Üçüncü Parti
    +MenuNewCustomer=Yeni Müşteri
    +MenuNewProspect=Yeni Aday
    +MenuNewSupplier=Yeni Tedarikçi
     MenuNewPrivateIndividual=Yeni özel şahıs
    -NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    -CreateDolibarrThirdPartySupplier=Create a third party (vendor)
    +NewCompany=Yeni firma (aday, müşteri, tedarikçi)
    +NewThirdParty=Yeni Üçüncü Parti (aday, müşteri, tedarikçi)
    +CreateDolibarrThirdPartySupplier=Bir üçüncü parti oluştur (tedarikçi)
     CreateThirdPartyOnly=Üçüncü parti oluştur
     CreateThirdPartyAndContact=Bir üçüncü parti + bağlantılı kişi oluşturun
     ProspectionArea=Aday alanı
    @@ -25,26 +25,26 @@ ThirdPartyContact=Üçüncü parti kişisi/adresi
     Company=Firma
     CompanyName=Firma adı
     AliasNames=Rumuz (ticari isim, marka ismi, ...)
    -AliasNameShort=Rumuz
    +AliasNameShort=Alias Name
     Companies=Firmalar
     CountryIsInEEC=Ülke, Avrupa Ekonomik Topluluğu içindedir
    -ThirdPartyName=Üçüncü parti adı
    +ThirdPartyName=Üçüncü Parti Adı
     ThirdPartyEmail=Üçüncü parti e-postası
    -ThirdParty=Üçüncü parti
    -ThirdParties=Üçüncü partiler
    +ThirdParty=Üçüncü Parti
    +ThirdParties=Üçüncü Partiler
     ThirdPartyProspects=Adaylar
     ThirdPartyProspectsStats=Adaylar
     ThirdPartyCustomers=Müşteriler
     ThirdPartyCustomersStats=Müşteriler
     ThirdPartyCustomersWithIdProf12=Müşteriler %s veya %s ile
    -ThirdPartySuppliers=Vendors
    -ThirdPartyType=Üçüncü parti türü
    +ThirdPartySuppliers=Tedarikçiler
    +ThirdPartyType=Şirket türü
     Individual=Özel şahıs
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Ana firma
     Subsidiaries=Bağlı firmalar
     ReportByMonth=Aya göre rapor
    -ReportByCustomers=Report by customer
    +ReportByCustomers=Müşteriye göre rapor
     ReportByQuarter=Orana göre rapor
     CivilityCode=Hitap kodu
     RegisteredOffice=Kayıtlı Ofisi
    @@ -75,13 +75,13 @@ Zip=Posta Kodu
     Town=İlçesi
     Web=Web
     Poste= Durumu
    -DefaultLang=Varsayılan dili
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    -VATIsNotUsed=Sales tax is not used
    +DefaultLang=Language default
    +VATIsUsed=KDV kullanılır
    +VATIsUsedWhenSelling=Üçüncü partinin kendi müşterilerine fatura keserken satış vergisi kullanıp kullanmadığını burada tanımlayabilirsiniz.
    +VATIsNotUsed=KDV kullanılmaz
     CopyAddressFromSoc=Adresi üçüncü parti adresiyle doldurun
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Üçüncü parti ne müşteri ne de tedarikçidir, mevcut referans nesneler yok
    +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Üçüncü parti ne müşteri ne de tedarikçidir, indirimler mevcut değil
     PaymentBankAccount=Ödeme banka hesabı
     OverAllProposals=Teklifler
     OverAllOrders=Siparişler
    @@ -99,9 +99,9 @@ LocalTax2ES=IRPF
     TypeLocaltax1ES=RE Türü
     TypeLocaltax2ES=IRPF Türü
     WrongCustomerCode=Müşteri kodu geçersiz
    -WrongSupplierCode=Vendor code invalid
    +WrongSupplierCode=Tedarikçi kodu geçersiz
     CustomerCodeModel=Müşteri kodu modeli
    -SupplierCodeModel=Vendor code model
    +SupplierCodeModel=Tedarikçi kodu modeli
     Gencod=Barkod
     ##### Professional ID #####
     ProfId1Short=Prof id1
    @@ -258,8 +258,8 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    -VATIntraShort=Tax ID
    +VATIntra=Vergi Numarası
    +VATIntraShort=Vergi Numarası
     VATIntraSyntaxIsValid=Sözdizimi geçerli
     VATReturn=KDV iadesi
     ProspectCustomer=Aday/Müşteri
    @@ -267,25 +267,25 @@ Prospect=Aday
     CustomerCard=Müşteri Kartı
     Customer=Müşteri
     CustomerRelativeDiscount=Göreceli müşteri indirimi
    -SupplierRelativeDiscount=Relative vendor discount
    +SupplierRelativeDiscount=Göreceli tedarikçi indirimi
     CustomerRelativeDiscountShort=Göreceli indirim
     CustomerAbsoluteDiscountShort=Mutlak indirim
     CompanyHasRelativeDiscount=Bu müşterinin varsayılan bir <b>%s%%</b> indirimi var
     CompanyHasNoRelativeDiscount=Bu müşterinin varsayılan hiçbir göreceli indirimi yok
     HasRelativeDiscountFromSupplier=Bu tedarikçiden varsayılan olarak <b>%s%%</b> indiriminiz var
     HasNoRelativeDiscountFromSupplier=Bu tedarikçiden varsayılan göreceli indiriminiz yok 
    -CompanyHasAbsoluteDiscount=Bu müşterinin <b>%s</b>%s için mevcut indirimi var (kredi notları veya peşinat)
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=Bu müşteri <b>%s</b>%s için indirimlere sahip (kredi notları veya peşinatlar)
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Bu müşterinin hala <b>%s</b> %s için iade faturaları var
     HasNoAbsoluteDiscountFromSupplier=Bu tedarikçiden indirim krediniz yok 
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
     HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for <b>%s</b> %s from this supplier
     HasCreditNoteFromSupplier=You have credit notes for <b>%s</b> %s from this supplier
     CompanyHasNoAbsoluteDiscount=Bu müşterinin hiçbir indirim alacağı yoktur
    -CustomerAbsoluteDiscountAllUsers=Absolute customer discounts (granted by all users)
    -CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
    -SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
    -SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
    +CustomerAbsoluteDiscountAllUsers=Mutlak müşteri indirimleri (tüm kullanıcılar tarafından verilen)
    +CustomerAbsoluteDiscountMy=Mutlak müşteri indirimleri (sizin tarafınızdan verilen)
    +SupplierAbsoluteDiscountAllUsers=Mutlak satıcı indirimleri (tüm kullanıcıları tarafından girilen)
    +SupplierAbsoluteDiscountMy=Mutlak satıcı indirimleri (tarafınızdan girilen)
     DiscountNone=Hiçbiri
     Supplier=Tedarikçi
     AddContact=Kişi oluştur
    @@ -303,22 +303,22 @@ AddThirdParty=Üçüncü parti oluştur
     DeleteACompany=Firma sil
     PersonalInformations=Kişisel bilgiler
     AccountancyCode=Muhasebe hesabı
    -CustomerCode=Müşteri kodu
    -SupplierCode=Vendor code
    -CustomerCodeShort=Müşteri kodu
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Tüm müşteriler için müşteri kodu benzersiz olmalı
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Müşteri Kodu
    +SupplierCode=Tedarikçi Kodu
    +CustomerCodeShort=Müşteri Kodu
    +SupplierCodeShort=Tedarikçi Kodu
    +CustomerCodeDesc=Müşteri Kodu, tüm müşteriler için benzersiz
    +SupplierCodeDesc=Tedarikçi Kodu, tüm tedarikçiler için benzersiz
     RequiredIfCustomer=Eğer üçüncü parti bir müşteri ya da aday ise gereklidir
    -RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Doğrulama modülü tarafından denetlenir
    -ThisIsModuleRules=Bu kural bu modül içindir
    +RequiredIfSupplier=Eğer üçünü parti tedarikçi ise gereklidir
    +ValidityControledByModule=Modül tarafından kontrol edilen geçerlilik
    +ThisIsModuleRules=Bu modül için kurallar
     ProspectToContact=İletişime geçilecek aday
     CompanyDeleted="%s" Firması veritabanından silindi.
     ListOfContacts=Kişi/adres listesi
    -ListOfContactsAddresses=Kişiler/adresler listesi
    -ListOfThirdParties=Üçüncü partiler listesi
    -ShowCompany=Üçüncü partiyi göster
    +ListOfContactsAddresses=Kişi/adres listesi
    +ListOfThirdParties=Üçüncü Partilerin Listesi
    +ShowCompany=Üçüncü Partiyi Göster
     ShowContact=Kişi göster
     ContactsAllShort=Hepsi (süzmeden)
     ContactType=Kişi tipi
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Bu kişi herhangi bir teklifin yetkilisi değildir
     NoContactForAnyContract=Bu kişi herhangi bir sözleşmenin yetkilisi değildir
     NoContactForAnyInvoice=Bu kişi herhangi bir faturanın yetkilisi değildir
     NewContact=Yeni kişi
    -NewContactAddress=Yeni kişi/adres
    +NewContactAddress=Yeni Kişi/Adres
     MyContacts=Kişilerim
     Capital=Sermaye
     CapitalOf=Sermaye %s
     EditCompany=Firma düzenle
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=Bu kullanıcı bir  aday, müşteri veya tedarikçi değildir
     VATIntraCheck=Denetle
    -VATIntraCheckDesc=<b>%s</b> bağlantısı avrupa KDV denetimi hizmetinin istenmesini sağlar. Bu hizmeti çalıştırmak için sunucudan bir dış internet erişimi gerektirir.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Avrupa Komisyonu sitesinden topluluk içi KDV ni kontrol edin
    -VATIntraManualCheck=Avrupa web sitesi <a href="%s" target="_blank">%s</a> adresinden el ile de kontrol edebilirsiniz
    +VATIntraCheckableOnEUSite=Avrupa Komisyonu web sitesinden topluluk içi KDV'yi kontrol edin
    +VATIntraManualCheck=Avrupa Komisyonu'nun <a href="%s" target="_blank">%s</a> web adresinden de manuel olarak kontrol edebilirsiniz
     ErrorVATCheckMS_UNAVAILABLE=Denetlemiyor. Denetim hizmeti üye ülke (%s) tarafından sağlanmıyor.
     NorProspectNorCustomer=Ne aday ne de müşteri
    -JuridicalStatus=Yasal form
    +JuridicalStatus=Tüzel Kişilik Türü
     Staff=Kadro
     ProspectLevelShort=Potansiyel
     ProspectLevel=Potansiyel aday
    @@ -387,31 +387,31 @@ ExportCardToFormat=Biçimlenip dışaaktarılacak kart
     ContactNotLinkedToCompany=Kişi herhangi bir üçüncü partiye bağlı değil
     DolibarrLogin=Dolibarr kullanıcı adı
     NoDolibarrAccess=Dolibarr erişimi yok
    -ExportDataset_company_1=Üçüncü partiler (Şirketler/Dernekler/Şahıslar) ve özellikleri
    +ExportDataset_company_1=Üçüncü Partiler (şirketler/dernekler/şahıslar) ve özellikleri
     ExportDataset_company_2=Kişiler ve özellikleri
    -ImportDataset_company_1=Üçüncü partiler (Şirketler/Vakıflar/Fiziki şahıslar) ve özellikleri
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ImportDataset_company_1=Üçüncü Partiler (şirketler/dernekler/şahıslar) ve özellikleri
    +ImportDataset_company_2=Kişiler/Adresler ve özellikleri
    +ImportDataset_company_3=Üçüncü Partilerin Banka hesapları
    +ImportDataset_company_4=Üçüncü Partiler- satış temsilcileri (şirketlere satış temsileri/kullanıcılar atayın)
     PriceLevel=Fiyat düzeyi
     DeliveryAddress=Teslimat adresi
     AddAddress=Adres ekle
    -SupplierCategory=Vendor category
    +SupplierCategory=Tedarikçi kategorisi
     JuridicalStatus200=Bağımsız
     DeleteFile=Dosya sil
     ConfirmDeleteFile=Bu dosyayı silmek istediğinizden emin misiniz?
     AllocateCommercial=Satış temsilcisine atanmış
     Organization=Kuruluş
    -FiscalYearInformation=Mali yıla ait bilgi
    +FiscalYearInformation=Mali Yıl
     FiscalMonthStart=Mali yılın başlangıç ayı
    -YouMustAssignUserMailFirst=Bu kişiye eposta bildirimleri ekleyebilmek için önce bu kişiye e-posta oluşturmalısınız.
    +YouMustAssignUserMailFirst=Bir e-posta bildirimi ekleyebilmek için öncelikle bu kullanıcıya bir e-posta oluşturmanız gerekir.
     YouMustCreateContactFirst=Eposta bildirimleri ekleyebilmek için önce geçerli epostası olan üçüncü taraf kişisi oluşturmanız gerekir.
    -ListSuppliersShort=List of vendors
    +ListSuppliersShort=Tedarikçi Listesi
     ListProspectsShort=Aday Listesi
    -ListCustomersShort=Müşteri listesi
    -ThirdPartiesArea=Üçüncü partiler kişi alanı
    -LastModifiedThirdParties=Değiştirilen son %s üçüncü parti
    -UniqueThirdParties=Toplam benzersiz üçüncü parti
    +ListCustomersShort=Müşteri Listesi
    +ThirdPartiesArea=Üçüncü Partiler/Kişiler
    +LastModifiedThirdParties=Değiştirilen son %s Üçüncü Parti
    +UniqueThirdParties=Üçüncü Partilerin Toplamı
     InActivity=Açık
     ActivityCeased=Kapalı
     ThirdPartyIsClosed=Üçüncü taraf kapalı
    @@ -419,16 +419,16 @@ ProductsIntoElements=%s içindeki ürünler/hizmetler listesi
     CurrentOutstandingBill=Geçerli bekleyen fatura
     OutstandingBill=Ödenmemiş fatura için ençok tutar
     OutstandingBillReached=Ödenmemiş fatura için ulaşılan ençok tutar
    -OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +OrderMinAmount=Sipariş için minimum miktar
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Müşteri/tedarikçi kodu serbesttir. Bu kod herhangi bir zamanda değiştirilebilir.
     ManagingDirectors=Yönetici(lerin) adı (CEO, müdür, başkan...)
     MergeOriginThirdparty=Çifte üçüncü parti (silmek istediğiniz üçüncü parti)
     MergeThirdparties=Üçüncü partileri birleştir
    -ConfirmMergeThirdparties=Bu üçüncü tarafı mevcut olanla birleştirmek istediğinize emin misiniz? Tüm bağlı nesneler (faturalar, siparişler, ...) mevcut üçüncü tarafa taşınacak, sonra üçüncü taraf silinecek.
    -ThirdpartiesMergeSuccess=Third parties have been merged
    +ConfirmMergeThirdparties=Bu üçüncü partiyi mevcut olanla birleştirmek istediğinizden emin misiniz? Tüm bağlantılı nesneler (teklifler, siparişler ...) mevcut üçüncü partiye taşınacak ve daha sonra taşınan üçüncü parti silinecektir.
    +ThirdpartiesMergeSuccess=Üçüncü partiler birleştirildi
     SaleRepresentativeLogin=Satış temsilcisinin kullanıcı adı
     SaleRepresentativeFirstname=Satış temsilcisinin adı
     SaleRepresentativeLastname=Satış temsilcisinin soyadı
    -ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +ErrorThirdpartiesMerge=Üçüncü partiler silinirken bir hata oluştu. Lütfen günlüğü denetleyin. Değişiklikler geri alındı.
    +NewCustomerSupplierCodeProposed=Müşteri veya tedarikçi kodu zaten daha önce kullanılmış, yeni bir kod önerilir
    diff --git a/htdocs/langs/tr_TR/compta.lang b/htdocs/langs/tr_TR/compta.lang
    index 61bd992c206..1c350d4b104 100644
    --- a/htdocs/langs/tr_TR/compta.lang
    +++ b/htdocs/langs/tr_TR/compta.lang
    @@ -13,12 +13,12 @@ LTReportBuildWithOptionDefinedInModule=Burada gösterilen tutarlar Firma ayarlar
     Param=Ayarlar
     RemainingAmountPayment=Kalan ödeme tutarı:
     Account=Hesap
    -Accountparent=Parent account
    -Accountsparent=Parent accounts
    +Accountparent=Ana hesap
    +Accountsparent=Ana hesaplar
     Income=Gelir
     Outcome=Gider
     MenuReportInOut=Gelir/Gider
    -ReportInOut=Balance of income and expenses
    +ReportInOut=Gelir ve Gider dengesi
     ReportTurnover=Turnover invoiced
     ReportTurnoverCollected=Turnover collected
     PaymentsNotLinkedToInvoice=Herhangi bir faturaya bağlı olmayan ödemeler, herhangi bir üçüncü partiye de bağlı değildir
    @@ -33,19 +33,19 @@ Piece=Muhasebe Belg.
     AmountHTVATRealReceived=Net alınan
     AmountHTVATRealPaid=Net ödenen
     VATToPay=Tax sales
    -VATReceived=Tax received
    +VATReceived=Alınan vergi
     VATToCollect=Tax purchases
    -VATSummary=Tax monthly
    +VATSummary=Aylık vergi
     VATBalance=Tax Balance
    -VATPaid=Tax paid
    +VATPaid=Ödenen vergi
     LT1Summary=Tax 2 summary
     LT2Summary=Tax 3 summary
     LT1SummaryES=RE Bakiye
     LT2SummaryES=IRPF bakiyesi
     LT1SummaryIN=CGST Balance
     LT2SummaryIN=SGST Balance
    -LT1Paid=Tax 2 paid
    -LT2Paid=Tax 3 paid
    +LT1Paid=Ödenen vergi 2
    +LT2Paid=Ödenen vergi 3
     LT1PaidES=RE Ödenen
     LT2PaidES=IRPF ödenmiş
     LT1PaidIN=CGST Paid
    @@ -76,18 +76,18 @@ MenuTaxAndDividends=Vergiler ve kar payları
     MenuSocialContributions=Sosyal/mali vergiler
     MenuNewSocialContribution=Yeni sosyal/mali
     NewSocialContribution=Yeni sosyal/mali vergi
    -AddSocialContribution=Add social/fiscal tax
    +AddSocialContribution=Sosyal/mali vergi ekle
     ContributionsToPay=Ödenecek sosyal/mali vergiler
    -AccountancyTreasuryArea=Billing and payment area
    +AccountancyTreasuryArea=Faturalama ve ödeme alanı
     NewPayment=Yeni ödeme
     Payments=Ödemeler
     PaymentCustomerInvoice=Müşteri fatura ödemesi
    -PaymentSupplierInvoice=Vendor invoice payment
    +PaymentSupplierInvoice=Tedarikçi faturası ödemesi
     PaymentSocialContribution=Sosyal/mali vergi ödemesi
     PaymentVat=KDV ödeme
     ListPayment=Ödemeler listesi
     ListOfCustomerPayments=Müşteri ödemeleri listesi
    -ListOfSupplierPayments=List of vendor payments
    +ListOfSupplierPayments=Tedarikçi ödemelerinin listesi
     DateStartPeriod=Başlangıç dönemi tarihi
     DateEndPeriod=Bitiş dönemi tarihi
     newLT1Payment=Yeni vergi 2 ödemesi
    @@ -112,15 +112,15 @@ SocialContributionsPayments=Sosyal/mali vergi ödemeleri
     ShowVatPayment=KDV ödemesi göster
     TotalToPay=Ödenecek toplam
     BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted ascending on %s and filtered for 1 bank account
    -CustomerAccountancyCode=Customer accounting code
    -SupplierAccountancyCode=Vendor accounting code
    +CustomerAccountancyCode=Müşteri muhasebe kodu
    +SupplierAccountancyCode=Tedarikçi muhasebe kodu
     CustomerAccountancyCodeShort=Müşt. hesap kodu
     SupplierAccountancyCodeShort=Ted. hesap kodu
     AccountNumber=Hesap numarası
     NewAccountingAccount=Yeni hesap
     Turnover=Turnover invoiced
     TurnoverCollected=Turnover collected
    -SalesTurnoverMinimum=Minimum turnover
    +SalesTurnoverMinimum=Minimum ciro
     ByExpenseIncome=Giderler ve gelirlere göre
     ByThirdParties=Üçüncü partiye göre
     ByUserAuthorOfInvoice=Faturayı yazana göre
    @@ -132,7 +132,7 @@ NewCheckDeposit=Yeni çek hesabı
     NewCheckDepositOn=Bu hesap için makbuz oluştur: %s
     NoWaitingChecks=Para yatırılmayı bekleyen çek yok.
     DateChequeReceived=Çek giriş tarihi
    -NbOfCheques=Çek sayısı
    +NbOfCheques=No. of checks
     PaySocialContribution=Bir sosyal/mali vergi öde
     ConfirmPaySocialContribution=Bu sosyal ya da mali vergiyi ödendi olarak sınıflandırmak istediğinizden emin misiniz?
     DeleteSocialContribution=Bir sosyal ya da mali vergi ödemesi sil
    @@ -142,7 +142,7 @@ CalcModeVATDebt=Mod <b>%sKDV, taahhüt hesabı%s için</b>.
     CalcModeVATEngagement=Mod <b>%sKDV, gelirler-giderler%s için</b>.
     CalcModeDebt=Analysis of known recorded invoices even if they are not yet accounted in ledger.
     CalcModeEngagement=Analysis of known recorded payments, even if they are not yet accounted in Ledger.
    -CalcModeBookkeeping=Analysis of <b>data journalized in Bookkeeping Ledger table</b>
    +CalcModeBookkeeping=Analysis of data journalized in Bookkeeping Ledger table.
     CalcModeLT1= Müşteri faturaları için mod <b>%sRE tedrikçi faturaları için mod %s</b>
     CalcModeLT1Debt=Biçim durumu<b>%sRE, bu müşteri faturası için%s</b>
     CalcModeLT1Rec= Biçim durumu<b>%sRE, bu tedarikçi faturası için%s</b>
    @@ -167,19 +167,19 @@ RulesAmountOnInOutBookkeepingRecord=It includes record in your Ledger with accou
     RulesResultBookkeepingPredefined=It includes record in your Ledger with accounting accounts that has the group "EXPENSE" or "INCOME"
     RulesResultBookkeepingPersonalized=It show record in your Ledger with accounting accounts <b>grouped by personalized groups</b>
     SeePageForSetup=See menu <a href="%s">%s</a> for setup
    -DepositsAreNotIncluded=- Down payment invoices are nor included
    +DepositsAreNotIncluded=- Down payment invoices are not included
     DepositsAreIncluded=- Down payment invoices are included
     LT1ReportByCustomers=Report tax 2 by third party
     LT2ReportByCustomers=Report tax 3 by third party
     LT1ReportByCustomersES=RE Üçüncü partiye göre rapor
     LT2ReportByCustomersES=Üçüncü parti IRPF Raporu
    -VATReport=Sale tax report
    +VATReport=Satış vergisi raporu
     VATReportByPeriods=Döneme göre satış vergisi raporu
    -VATReportByRates=Sale tax report by rates
    -VATReportByThirdParties=Sale tax report by third parties
    -VATReportByCustomers=Sale tax report by customer
    +VATReportByRates=Oranlara göre satış vergisi raporu
    +VATReportByThirdParties=Üçüncü taraflara göre satış vergisi raporu
    +VATReportByCustomers=Müşteriye göre satış vergisi raporu
     VATReportByCustomersInInputOutputMode=Müşteriye göre alınan ve ödenen KDV raporu
    -VATReportByQuartersInInputOutputMode=Report by Sale tax rate of the tax collected and paid
    +VATReportByQuartersInInputOutputMode=Tahsil edilen ve ödenen verginin satış vergisi oranına göre rapor
     LT1ReportByQuarters=Report tax 2 by rate
     LT2ReportByQuarters=Report tax 3 by rate
     LT1ReportByQuartersES=RE Orana göre rapor
    @@ -189,7 +189,7 @@ SeeVATReportInDueDebtMode=Akış seçenekli bir hesaplama için <b>%sKDV akış
     RulesVATInServices=- Hizmetler için, rapor ödeme tarihine dayalı olarak gerçekte alınan ya da verilen KDV düzenlemelerini içerir.
     RulesVATInProducts=- For material assets, the report includes the VAT received or issued on the basis of the date of payment.
     RulesVATDueServices=- Hizmetler için, ödenmiş ya da ödenmemiş fatura tarihini baz alan rapor fatura KDV lerini içerir.
    -RulesVATDueProducts=- For material assets, the report includes the VAT invoices, based on the invoice date.
    +RulesVATDueProducts=- Maddi varlıklar için, rapor fatura tarihine dayalı olarak KDV faturalarını içerir.
     OptionVatInfoModuleComptabilite=Not: maddi varlıklar için, daha adil olması açısından teslim tarihi kullanılmalı.
     ThisIsAnEstimatedValue=This is a preview, based on business events and not from the final ledger table, so final results may differ from this preview values
     PercentOfInvoice=%%/fatura
    @@ -224,16 +224,16 @@ CalculationRuleDescSupplier=Aynı hesaplama kuralını uygulamak ve tedarikçini
     TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover collected per product is not available. This report is only available for turnover invoiced.
     TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced.
     CalculationMode=Hesaplama modu
    -AccountancyJournal=Accounting code journal
    +AccountancyJournal=Muhasebe kodu günlüğü
     ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup)
     ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for VAT on purchases (used if not defined on VAT dictionary setup)
     ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT
     ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties
    -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined.
    -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for vendor third parties
    -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined.
    +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accounting account on third party is not defined.
    +ACCOUNTING_ACCOUNT_SUPPLIER=Tedarikçi üçüncü partileri için kullanılan muhasebe hesabı
    +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accounting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accounting account on third party is not defined.
     CloneTax=Sosyal/mali vergi kopyala
    -ConfirmCloneTax=Sosyal/mali vergi ödemesi kopyalamasını onayla
    +ConfirmCloneTax=Confirm the clone of a social/fiscal tax
     CloneTaxForNextMonth=Sonraki aya kopyala
     SimpleReport=Basit rapor
     AddExtraReport=Extra reports (add foreign and national customer report)
    @@ -246,9 +246,9 @@ ImportDataset_tax_contrib=Sosyal/mali vergiler
     ImportDataset_tax_vat=Vat payments
     ErrorBankAccountNotFound=Hata: Banka hesabı bulunamadı
     FiscalPeriod=Muhasebe dönemi
    -ListSocialContributionAssociatedProject=List of social contributions associated with the project
    +ListSocialContributionAssociatedProject=Projeyle ilişkili sosyal katkıların listesi
     DeleteFromCat=Remove from accounting group
    -AccountingAffectation=Accounting assignement
    +AccountingAffectation=Accounting assignment
     LastDayTaxIsRelatedTo=Last day of period the tax is related to
     VATDue=Sale tax claimed
     ClaimedForThisPeriod=Claimed for the period
    diff --git a/htdocs/langs/tr_TR/contracts.lang b/htdocs/langs/tr_TR/contracts.lang
    index 17ac0c9c888..2333741bf65 100644
    --- a/htdocs/langs/tr_TR/contracts.lang
    +++ b/htdocs/langs/tr_TR/contracts.lang
    @@ -31,11 +31,11 @@ NewContract=Yeni sözleşme
     NewContractSubscription=Yeni sözleşme/üyelik
     AddContract=Sözleşme oluştur
     DeleteAContract=Bir sözleşme sil
    -ActivateAllOnContract=Activate all services
    +ActivateAllOnContract=Tüm hizmetleri etkinleştir
     CloseAContract=Bir sözleşme kapat
     ConfirmDeleteAContract=Bu sözleşmeyi ve tüm hizmetlerini silmek istediğinizden emin misiniz?
     ConfirmValidateContract=Bu sözleşmeyi <b>%s</b> adıyla doğrulamak istediğinizden emin misiniz?
    -ConfirmActivateAllOnContract=This will open all services (not yet active). Are you sure you want to open all services?
    +ConfirmActivateAllOnContract=Bu, tüm hizmetleri açacaktır (henüz aktif olmayan). Tüm hizmetleri açmak istediğinizden emin misiniz?
     ConfirmCloseContract=Bu tüm hizmetleri kapatacaktır (aktif veya değil). Bu sözleşmeyi kapatmak istediğinizden emin misiniz?
     ConfirmCloseService=Bu hizmeti <b>%s</b> tarihli olarak kapatmak istediğinizden emin misiniz?
     ValidateAContract=Bir sözleşme doğrula
    @@ -67,8 +67,8 @@ CloseService=Hizmet kapat
     BoardRunningServices=Süresi dolmuş yürürlükteki hizmetler
     ServiceStatus=Hizmet durumu
     DraftContracts=Taslak sözleşmeler
    -CloseRefusedBecauseOneServiceActive=En az bir açık hizmeti olduğundan dolayı sözleşme kapatılamıyor
    -ActivateAllContracts=Activate all contract lines
    +CloseRefusedBecauseOneServiceActive=Sözleşme üzerinde en az  bir hizmet bulunduğu için kapatılamıyor
    +ActivateAllContracts=Tüm sözleşme satırlarını etkinleştir
     CloseAllContracts=Bütün sözleşme kalemlerini kapat
     DeleteContractLine=Bir sözleşme kalemi sil
     ConfirmDeleteContractLine=Bu sözleşme satırını silmek istediğinizden emin misiniz?
    @@ -87,8 +87,9 @@ ContactNameAndSignature=%s için, ad ve imza
     OnlyLinesWithTypeServiceAreUsed=Yalnızca "Hizmet" türündeki satırlar klonlanacaktır.
     CloneContract=Sözleşmeyi kopyala
     ConfirmCloneContract=<b>%s</b> sözleşmesini kopyalamak istediğinizden emin misiniz?
    -LowerDateEndPlannedShort=Lower planned end date of active services
    -SendContractRef=Contract information __REF__
    +LowerDateEndPlannedShort=Aktif hizmetlerin planlı alt bitiş tarihi
    +SendContractRef=Sözleşme bilgileri __REF__
    +OtherContracts=Diğer sözleşmeler
     ##### Types de contacts #####
     TypeContact_contrat_internal_SALESREPSIGN=Sözleşmeyi imzalalayacak satış temsilcisi
     TypeContact_contrat_internal_SALESREPFOLL=Sözleşmeyi izleyecek satış temsilcisi
    diff --git a/htdocs/langs/tr_TR/dict.lang b/htdocs/langs/tr_TR/dict.lang
    index 189416aa811..ca763352a51 100644
    --- a/htdocs/langs/tr_TR/dict.lang
    +++ b/htdocs/langs/tr_TR/dict.lang
    @@ -160,7 +160,7 @@ CountryMD=Moldavya
     CountryMN=Moğolistan
     CountryMS=Montserrat
     CountryMZ=Mozambik
    -CountryMM=Birmanya (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibya
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad ve Tobago
     CountryTR=Türkiye
     CountryTM=Türkmenistan
    -CountryTC=Türk ve Caicos Adaları
    +CountryTC=Turks ve Caicos Adaları
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukrayna
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupisi
     CurrencySingMUR=Mauritius Rupisi
     CurrencyNOK=Norveç Kronu
    -CurrencySingNOK=Norveç Kronu
    +CurrencySingNOK=Norveç kronu
     CurrencyTND=Tunus dinarı
     CurrencySingTND=Tunus dinarı
     CurrencyUSD=ABD Doları
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Başkasından duyarak
     DemandReasonTypeSRC_PARTNER=İş Ortağı
     DemandReasonTypeSRC_EMPLOYEE=Çalışan
     DemandReasonTypeSRC_SPONSORING=Destekçi
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Biçim 4A0
     PaperFormatEU2A0=Biçim 2A0
    @@ -329,7 +330,7 @@ PaperFormatCAP6=Biçim P6 Kanada
     #### Expense report categories ####
     ExpAutoCat=Araba
     ExpCycloCat=Moped
    -ExpMotoCat=Motorbike
    +ExpMotoCat=Motosiklet
     ExpAuto3CV=3 CV
     ExpAuto4CV=4 CV
     ExpAuto5CV=5 CV
    diff --git a/htdocs/langs/tr_TR/ecm.lang b/htdocs/langs/tr_TR/ecm.lang
    index 9bf6bd63247..a314155e5f2 100644
    --- a/htdocs/langs/tr_TR/ecm.lang
    +++ b/htdocs/langs/tr_TR/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Dizindeki belge sayısı
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Dizin
     ECMSectionManual=Manuel dizin
     ECMSectionAuto=Otomatik dizin
    @@ -14,7 +14,7 @@ ECMNbOfFilesInDir=Dizindeki dosya sayısı
     ECMNbOfSubDir=Alt-dizin sayısı
     ECMNbOfFilesInSubDir=Alt dizilerdeki dosya sayısı
     ECMCreationUser=Oluşturan
    -ECMArea=DMS/ECM area
    +ECMArea=DMS/ECM alanı
     ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr.
     ECMAreaDesc2=* Otomatik dizinler, bir öğenin kartından belge eklenirken otomatikman doldurulur.<br> * Manuel dizinler, belirli bir öğeye bağlı olmayan belgelerin saklanması için kullanılabilir.
     ECMSectionWasRemoved=<b>%s</b>Dizini silindi.
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Projelere bağlı belgeler
     ECMDocsByUsers=Kullanıcılara bağlantılı belgeler
     ECMDocsByInterventions=Müdahalelere bağlantılı belgeler
     ECMDocsByExpenseReports=Gider raporlarına bağlı dokümanlar
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Hiçbir dizin oluşturulmadı
     ShowECMSection=Dizini göster
     DeleteSection=Dizini kaldır
    @@ -42,10 +44,9 @@ ECMDirectoryForFiles=Dosyalar için göreceli dizin
     CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories
     CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files
     ECMFileManager=Dosya yöneticisi
    -ECMSelectASection=Select a directory in the tree...
    +ECMSelectASection=Soldaki ağaçtan bir dizin seçin...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=Dizin bulunamadı
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/tr_TR/errors.lang b/htdocs/langs/tr_TR/errors.lang
    index 0022570ca0b..3d2f664a934 100644
    --- a/htdocs/langs/tr_TR/errors.lang
    +++ b/htdocs/langs/tr_TR/errors.lang
    @@ -32,9 +32,9 @@ ErrorBarCodeRequired=Bar kod gerekli
     ErrorCustomerCodeAlreadyUsed=Müşteri kodu zaten kullanılmış
     ErrorBarCodeAlreadyUsed=Bar kod zaten kullanıldı
     ErrorPrefixRequired=Önek gerekli
    -ErrorBadSupplierCodeSyntax=Bad syntax for vendor code
    -ErrorSupplierCodeRequired=Vendor code required
    -ErrorSupplierCodeAlreadyUsed=Vendor code already used
    +ErrorBadSupplierCodeSyntax=Tedarikçi kodu için yanlış sözdizimi
    +ErrorSupplierCodeRequired=Tedarikçi kodu gereklidir
    +ErrorSupplierCodeAlreadyUsed=Tedarikçi kodu zaten kullanılmaktadır
     ErrorBadParameters=Hatalı parametreler
     ErrorBadValueForParameter=Yanlış değer '%s', parametre '%s' için
     ErrorBadImageFormat=Resim dosyası desteklenen biçimde değil (PHP niz bu biçimdeki resimlerin dönüştürülme işlevini desteklemez)
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=%s değeri yanlış tarih biçiminde
     ErrorWrongDate=Tarih doğru değil!
     ErrorFailedToWriteInDir=%s dizinine yazılamadı
     ErrorFoundBadEmailInFile=Dosyada %s satır hatalı e-posta sözdizimi bulundu (örneğin eposta=%s teki satır %s)
    -ErrorUserCannotBeDelete=Kullanıcı silinemez. Belki Dolibarr öğeleri ile ilişkili olabilir.
    +ErrorUserCannotBeDelete=Kullanıcı silinemiyor. Dolibarr varlıklarıyla ilişkili olabilir.
     ErrorFieldsRequired=Bazı gerekli alanlar doldurulmamış.
     ErrorSubjectIsRequired=E-posta konusu zorunludur
     ErrorFailedToCreateDir=Dizin oluşturulamadı. Web sunucusu kullanıcısının Dolibarr belgeleri dizinine yazma izinlerini denetleyin. Eğer bu parametre <b>guvenli_mod</b> bu PHP üzerinde etkinleştirilmişse, Dolibarr php dosyalarının web sunucusu kullanıcısına (ya da grubuna) sahip olduğunu denetleyin.
    @@ -66,20 +66,21 @@ ErrorNoValueForCheckBoxType=Lütfen onay kutusu listesi için değer girin
     ErrorNoValueForRadioType=Lütfen onay düğmesi için değer girin
     ErrorBadFormatValueList=Liste değerinde birden çok virgül bulunmaz: <u>%s</u>, ancak enaz bir: anahtar, değer gerekir
     ErrorFieldCanNotContainSpecialCharacters=<b>%s</b> alanı özel karakterler içermemelidir.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=<b>%s</b> Alanı özel karakter ve büyük harf içermemeli yalnızca sayı içermelidir.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Etkinleştirilmiş muhasebe modülü yok
     ErrorExportDuplicateProfil=Bu profil adı bu dışaaktarma seti için zaten var.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP eşleşmesi tamamlanmamış.
     ErrorLDAPMakeManualTest=A. Ldif dosyası %s dizininde oluşturuldu. Hatalar hakkında daha fazla bilgi almak için komut satırından elle yüklemeyi deneyin.
    -ErrorCantSaveADoneUserWithZeroPercentage="Başlamış durumdaki" bir eylem, "yapan" alanı dolu olsa bile kaydedilemez.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Oluşturulması için kullanılan referans zaten var.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Bazı alt kayıtları olduğundan kayıt silinemedi.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Kayıt silinemiyor. Zaten kullanılıyor veya başka bir nesne tarafından içeriliyor.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Bu özelliğin çalışması için Javascript engellenmiş olmamalıdır. Etkinleştirmek/engellemek için Giriş->Kurulum->Ekran menüsüne gidin.
     ErrorPasswordsMustMatch=Her iki yazdığınız şifrenin birbiriyle eşleşmesi gerekir
    -ErrorContactEMail=Teknik bir hata oluştu. Lütfen, aşağıdaki <b>%s</b> Eposta ile yöneticiye danışın, mesajınızda <b>%s</b> hata kodunu belirtin ve hatta bir ekran görünümünü de eklerseniz daha iyi olur.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=<b>%s</b> alan numarası için yanlış değer ('<b>%s</b>' değeri '<b>%s</b>' regex kuralı ile uyuşmuyor)
     ErrorFieldValueNotIn=<b>%s</b> alan numarası için yanlış değer ('<b>%s</b>' değeri '<b>%s</b>' tablosundaki '<b>%s</b>' alanına uygun bir değer değildir)
     ErrorFieldRefNotIn=Alan numarası <b>%s</b> için yanlış değer (değer <b>'%s'</b> bir <b>%s</b> ref mevcut değildir)
    @@ -87,7 +88,8 @@ ErrorsOnXLines=<b>%</b> kaynak satırlarındaki hatalar
     ErrorFileIsInfectedWithAVirus=Virüs koruma programı dosyayı doğrulayamıyor (dosyaya bir virüs bulaşmış olabilir)
     ErrorSpecialCharNotAllowedForField=%s alanında özel karakterlere izin verilmez
     ErrorNumRefModel=Veritabanına (%s) bir başvuru var ve bu numaralandırma kuralı ile uyumlu değildir. Kaydı kaldırın ya da bu modülü etkinleştirmek için başvurunun adını değiştirin.
    -ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorQtyTooLowForThisSupplier=Bu tedarikçi için miktar çok düşük veya bu ürüne bu tedarikçi için bir fiyat tanımlanmamış
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Modül ayarı tamamlanmamış gibi görünüyor. Tamamlamak için Giriş - Ayarlar - Modüller menüsüne git.
     ErrorBadMask=Maskede hata
     ErrorBadMaskFailedToLocatePosOfSequence=Hata, sıra numarasız  maske
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Hata, kötü sıfırlama değeri
     ErrorMaxNumberReachForThisMask=Bu maskedeki ençok sayı
     ErrorCounterMustHaveMoreThan3Digits=Sayaçta 3 ten fazla basamak olmalı
     ErrorSelectAtLeastOne=Hata. En az bir giriş seçin.
    -ErrorDeleteNotPossibleLineIsConsolidated=Kaydın silinmesi mümkün değildir çünkü kayıt uzlaştırılmış bir banka işlemiyle bağlantılıdır
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s diğer bir üçüncüye görevlendirilmiş
     ErrorFailedToSendPassword=Parola gönderilemedi
     ErrorFailedToLoadRSSFile=RSS beslemesi alınamıyor. Eğer hata mesajları yeterli bilgi sağlamıyorsa MAIN_SIMPLEXMLLOAD_DEBUG değişmezini eklemeyi deneyin.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=<b>%s</b> kullanıcı adlı kullanıcı bulunamadı.
     ErrorLoginHasNoEmail=Bu kullanıcının e-posta adresi yoktur. İşlem iptal edildi.
     ErrorBadValueForCode=Güvenlik kodu için hatalı değer. Yeni değer ile tekrar deneyin...
     ErrorBothFieldCantBeNegative=%s ve %s alanlarının ikisi birden eksi olamaz
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Müşteri faturasındaki kalem miktarı eksi olamaz
     ErrorWebServerUserHasNotPermission=Web sunucusunu çalıştırmak için kullanılan <b>%s</b> kullanıcı hesabnın bunun için izni yok
     ErrorNoActivatedBarcode=Etkinleştirilmiş barkod türü yok
    @@ -138,7 +141,7 @@ ErrorBadFormat=Hatalı biçim!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Hata, bu üye henüz henüz hiç bir üçüncü tarafa bağlantılanmamış. Üyeyi mevcut olan bir üçüncü tarafa bağlantılayın veya bu faturayla yeni bir abonelik oluşturmadan önce yeni bir üçüncü taraf oluşturun.
     ErrorThereIsSomeDeliveries=Hata, bu sevkiyata bağlı bazı teslimatlar var. Silme işlemi reddedildi.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Ödendi durumunda olan en az bir faturayla paylaşılan bir ödeme silinemez
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1='%s' Değişkenine atama yapılamıyor
     ErrorPriceExpression2='%s' Dahili işlevi yeniden tanımlanamıyor
     ErrorPriceExpression3=İşlev tanımındaki '%s' değişkeni tanımlanmamış
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Beklenmeyen '%s'
     ErrorPriceExpression6=Hatalı argüman sayısı (verilen %s, beklenen %s)
     ErrorPriceExpression8=Beklenmeyen işlemci '%s'
     ErrorPriceExpression9=Beklenmeyen bir hata oldu
    -ErrorPriceExpression10='%s' İşlemcisinin işleneni yok
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Beklenen '%s'
     ErrorPriceExpression14=Sıfıra bölünme
     ErrorPriceExpression17=Beklenmeyen değişken '%s'
    @@ -171,13 +174,13 @@ ErrorGlobalVariableUpdater4=SOAP istemcisinde '%s' hatası
     ErrorGlobalVariableUpdater5=Seçilmiş genel değişken yok
     ErrorFieldMustBeANumeric=<b>%s</b> alanı sayısal bir değer olmalıdır
     ErrorMandatoryParametersNotProvided=Zorunlu parametre(ler) girilmemiş
    -ErrorOppStatusRequiredIfAmount=Bu fırsat/aday için tahmini bir tutar ayarladınız. Durumunu da girmelisiniz
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Modül Tanımlayıcıda hatalı Menu Dizisi tanımı (fk_menu anahtarı için hatalı değer)
    -ErrorSavingChanges=Değişiklikler kaydedilirken bir hata oluştu
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Depo gemi hattı üzerinde gerekli
     ErrorFileMustHaveFormat=Dosya %s biçiminde olmalıdır
    -ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    +ErrorSupplierCountryIsNotDefined=Bu tedarikçi için bir ülke tanımlı değil. Önce bunu düzeltin.
     ErrorsThirdpartyMerge=İki kaydın birleştirilmesinde hata. İstek iptal edildi.
     ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order.
     ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=Bu üye için bir parola ayarlıdır. Ancak, hiçbir kullanıcı hesabı oluşturulmamıştır. Yani bu şifre saklanır ama Dolibarr'a giriş için kullanılamaz. Dış bir modül/arayüz tarafından kullanılıyor olabilir, ama bir üye için ne bir kullanıcı adı ne de parola tanımlamanız gerekmiyorsa "Her üye için bir kullanıcı adı yönet" seçeneğini devre dışı bırakabilirsiniz. Bir kullanıcı adı yönetmeniz gerekiyorsa ama herhangi bir parolaya gereksinim duymuyorsanız bu uyarıyı engellemek için bu alanı boş bırakabilirsiniz. Not: Eğer bir üye bir kullanıcıya bağlıysa kullanıcı adı olarak eposta adresi de kullanılabilir.
     WarningMandatorySetupNotComplete=Zorunlu kurulum parametreleri henüz tanımlanmamış
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Bu konulu ya da bu hedefli (URL) bir yerimi zaten v
     WarningPassIsEmpty=Uyarı, veritabanı parolası boş. Bu bir güvenlik açığıdır. Veritabanına bir parola eklemelesiniz ve bu yansıtmak için conf.php dosyanızı değiştirin.
     WarningConfFileMustBeReadOnly=Uyarı, web sunucusu tarafından yapılandırma dosyanızın (<b>htdocs/conf/conf.php</b>)  üzerine üzerine yazılabilir.Bu ciddi bir güvenlik açığıdır. Web sunucusun kullandığı sistem kullanıcısının çalışması için dosyadaki izinleri sadece okumaya değiştirin. Windows ve disk için FAT biçimini kullanıyorsanız, bu dosya sisteminin dosya izinleri eklemek izin vermediğini bilmelisiniz, bu nedenle tamamen güvenli olamaz.
     WarningsOnXLines=<b>%s</b> kaynak satırlarındaki uyarılar
    -WarningNoDocumentModelActivated=Hiçbir model, belge üretimi için aktive edilmemiştir. Modül kurulumunuzu kontrol edene kadar bir model varsayılan olarak seçilecektir.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Uyarı, kurulum bir kez tamalanırsa,  <b>install.lock</b> dosyasını <b>%s</b> dizinine ekleyerek kur/taşıma aracını devre dışı bırakmalısınız. Bu dosyanın olmaması ciddi bir güvenlik açığıdır.
    -WarningUntilDirRemoved=Tüm güvenlik uyarıları (sadece admin kullanıcıları tarafından görülebilir) savunmasızlık olduğu sürece etkin olur (ya da MAIN_REMOVE_INSTALL_WARNING değişmezi Kurulum->Diğer menüsünde kuruluma eklenir).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Uyarı, kaynak ve hedef öğeleri arasında tutar farklı da olsa kapanış yapılır. Bu özelliği dikkatlice etkinleştirin.
     WarningUsingThisBoxSlowDown=Uyarı, bu kutuyu kullanmak kutuyu gösteren tüm sayfaları ciddi olarak yavaşlatır.
     WarningClickToDialUserSetupNotComplete=Kullanıcınızın ClickToDial bilgileri ayarı tamamlanmamış (kullanıcı kartınızdaki ClickToDial tabına bakın)
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Çok fazla veri (%s değerinden fazla sat
     WarningSomeLinesWithNullHourlyRate=Saatlik ücretleri tanımlanmadığında bazen bazı kullanıcılar tarafından kayıt edilir. Saat başına 0 %s değeri kullanılmıştır ancak harcanan sürenin yanlış değerlendirilmesine neden olabilir.
     WarningYourLoginWasModifiedPleaseLogin=Kullanıcı adınız değiştirilmiştir. Güvenlik nedeniyle sonraki eyleminiz için yeni kullanıcı adınızla giriş yapmalısınız.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/tr_TR/exports.lang b/htdocs/langs/tr_TR/exports.lang
    index 57ae7492ed3..f7f8e8717bd 100644
    --- a/htdocs/langs/tr_TR/exports.lang
    +++ b/htdocs/langs/tr_TR/exports.lang
    @@ -1,39 +1,39 @@
     # Dolibarr language file - Source file is en_US - exports
    -ExportsArea=Dışaaktarım alanı
    -ImportArea=İçeaktarım alanı
    -NewExport=Yeni dışaaktarım
    -NewImport=Yeni içeaktarım
    +ExportsArea=Dışaaktarımlar
    +ImportArea=Import
    +NewExport=Yeni Dışa Aktarma
    +NewImport=Yeni İçe Aktarma
     ExportableDatas=Dışaaktarılabilir veri kümesi
     ImportableDatas=İçeaktarılabilir veri kümesi
     SelectExportDataSet=Dışaaktarmak istediğiniz veri kümesini seçin...
     SelectImportDataSet=İçeaktarmak istediğiniz veri kümesini seçin...
    -SelectExportFields=Dışaaktarmak istediğiniz dosyaları ya da önceden tanımlanmış bir verme profilini seçin
    -SelectImportFields=İçeaktarmak istediğiniz kaynak dosyayı ve hedef alanlarını veritabanında aşağı yukarı taşıyarak %s çapası ile seçin ya da önceden tanımlanmış bir içeaktarma profili seçin:
    +SelectExportFields=Choose the fields you want to export, or select a predefined export profile
    +SelectImportFields=Choose the source file fields you want to import and their target field in database by moving them up and down with anchor %s, or select a predefined import profile:
     NotImportedFields=Kaynak dosyadaki alanlar içeaktarılamadı
    -SaveExportModel=Yeniden kullanmak için bu dışaaktarma profilini kaydedebilirsiniz...
    -SaveImportModel=Yeniden kullanmak için bu içeaktarma profilini kaydedebilirsiniz...
    +SaveExportModel=Save your selections as an export profile/template (for reuse).
    +SaveImportModel=Save this import profile (for reuse) ...
     ExportModelName=Dışaaktarma profili adı
    -ExportModelSaved=İçeaktarma profili <b>%s</b> adıyla kaydedildi.
    +ExportModelSaved=Export profile saved as <b>%s</b>.
     ExportableFields=Dışaaktarılabilir alanlar
     ExportedFields=Dışaaktarılan alanlar
     ImportModelName=İçeaktarma profili adı
    -ImportModelSaved=İçeaktarma profili <b>%s</b> adıyla kaydedildi.
    +ImportModelSaved=Import profile saved as <b>%s</b>.
     DatasetToExport=Dışaaktarılacak veri kümesi
     DatasetToImport=Veri kümesine içeaktarılacak dosya
     ChooseFieldsOrdersAndTitle=Alan sırasını seçin...
     FieldsTitle=Alanların başlığı
     FieldTitle=Alan başlğı
    -NowClickToGenerateToBuildExportFile=Şimdi, açılan kutudan dosya biçimini seçin ve dışaaktarılacak dosyayı oluşturmak için "Oluştur" düğmesine tıklayın...
    -AvailableFormats=Kullanılabilecek biçimler
    +NowClickToGenerateToBuildExportFile=Now, select the file format in the combo box and click on "Generate" to build the export file...
    +AvailableFormats=Mevcut Formatlar
     LibraryShort=Kitaplık
     Step=Adım
    -FormatedImport=İçeaktarma yardımcısı
    -FormatedImportDesc1=Buradan, yeterli teknik bilginiz olmasa da, yardımcıyı kullanarak, istediğiniz verileri alabilirsiniz.
    -FormatedImportDesc2=İlk adımda, yüklemek istediğiniz veriyi seçerek dosyayı yükleyin ve yüklemek istediğiniz alanları seçin.
    -FormatedExport=Dışaaktarma yardımcısı
    -FormatedExportDesc1=Buradan, yeterli teknik bilginiz olmasa da, yardımcıyı kullanarak, istediğiniz verileri dışaaktarabilirsiniz.
    -FormatedExportDesc2=İlk adım önceden tanımlanmış bir veri kümesi seçerek, sonuç dosyalarınızda görmek istediğiniz alanları ve sıralarını seçmektir.
    -FormatedExportDesc3=Dışaaktarılacak veri seçildiğinde, dışaaktarmak istediğiniz dosya biçimini tanımlayabilirsiniz.
    +FormatedImport=İçe Aktarma Yardımcısı
    +FormatedImportDesc1=This module allows you to update existing data or add new objects into the database from a file without technical knowledge, using an assistant.
    +FormatedImportDesc2=First step is to choose the kind of data you want to import, then the format of the source file, then the fields you want to import.
    +FormatedExport=Dışa Aktarma Yardımcısı
    +FormatedExportDesc1=These tools allow the export of personalized data using an assistant, to help you in the process without requiring technical knowledge.
    +FormatedExportDesc2=First step is to choose a predefined dataset, then which fields you want to export, and in which order.
    +FormatedExportDesc3=When data to export are selected, you can choose the format of the output file.
     Sheet=Sayfa
     NoImportableData=İçeaktarılacak veri yok (veri içeaktarmaya izin veren tanımlara sahip bir modül yok)
     FileSuccessfullyBuilt=Dosya oluşturuldu
    @@ -50,10 +50,10 @@ LineTotalVAT=Satırın KDV tutarı
     TypeOfLineServiceOrProduct=Satır türü (0 = ürün, 1 = hizmet)
     FileWithDataToImport=İçeaktarılacak verileri içeren dosya
     FileToImport=İçeaktarılacak kaynak dosya
    -FileMustHaveOneOfFollowingFormat=İçeaktarılacak dosya aşağıdaki biçimlerden birinde olmalıdır
    -DownloadEmptyExample=Örnek boş kaynak dosyasını indirin
    -ChooseFormatOfFileToImport=%s görseline tıklayarak içeaktarılacak dosya biçimi olarak kullanılacak dosya biçimini seçin...
    -ChooseFileToImport=Dosyayı yükledikten sonra %s görseline tıklayarak içeaktarılacak dosya biçimi olarak kullanılacak dosya biçimini seçin...
    +FileMustHaveOneOfFollowingFormat=File to import must have one of following formats
    +DownloadEmptyExample=Şablon dosyasını alan içeriği bilgisiyle indir (* olanlar zorunlu alanlardır)
    +ChooseFormatOfFileToImport=Choose the file format to use as import file format by clicking on the %s icon to select it...
    +ChooseFileToImport=Upload file then click on the %s icon to select file as source import file...
     SourceFileFormat=Kaynak dosya biçimi
     FieldsInSourceFile=Kaynak dosyadaki alanlar
     FieldsInTargetDatabase=Dolibarr veritabanındaki hedef alanlar (koyu=zorunlu)
    @@ -68,52 +68,52 @@ FieldsTarget=Hedeflenen alanlar
     FieldTarget=Hedeflenen alan
     FieldSource=Kaynak alan
     NbOfSourceLines=Kaynak dosyadaki satır sayısı
    -NowClickToTestTheImport=Seçtiğiniz içeaktarma ayarlarını denetleyin. Doğru görünüyorsa, alma denemesini başlatmak için "<b>%s</b>" düğmesine tıklayın (veritabanınızda hiçbir veri değiştirilmeden işlemin provası yapılır)…
    -RunSimulateImportFile=İçeaktarma denemesini başlat
    +NowClickToTestTheImport=Check the import setup you defined (check if you must omit the header lines, or these will be flagged as errors in the following simulation).<br>Click on the "<b>%s</b>" button to run a check of the file structure/contents and simulate the import process.<br><b>No data will be changed in your database</b>.
    +RunSimulateImportFile=Run Import Simulation
     FieldNeedSource=Bu alanlar kaynak dosyadan bir veri gerektirir
     SomeMandatoryFieldHaveNoSource=Veri dosyasında, bazı zorunlu alanların kaynağı yok
     InformationOnSourceFile=Kaynak dosya bilgileri
     InformationOnTargetTables=Hedef alan bilgileri
     SelectAtLeastOneField=En az bir kaynak alanı dışaaktarılacak alanlar bölümüne koyun
     SelectFormat=Bu içeaktarma dosya biçimini seçin
    -RunImportFile=Dosya içeaktarmayı başlatın
    -NowClickToRunTheImport=İçeaktarma denemesi sonucunu denetleyin. Herşey yolundaysa, kesin içeaktarmayı başlatın.
    -DataLoadedWithId=Bütün veriler bu içeaktarma id'i ile yüklenecektir: <b>%s</b>
    -ErrorMissingMandatoryValue=Kaynak dosyada alan için zorunlu veri boş <b>%s</b>.
    -TooMuchErrors=Kaynak dosyasında, liste sınırlandığından görüntülenmeyen <b>%s</b> hatalı satır daha var.
    -TooMuchWarnings=Kaynak dosyasında, liste sınırlandığından görüntülenmeyen <b>%s</b> uyarı içeren satır daha var.
    +RunImportFile=Import Data
    +NowClickToRunTheImport=Check the results of the import simulation. Correct any errors and re-test.<br>When the simulation reports no errors you may proceed to import the data into the database.
    +DataLoadedWithId=All data will be loaded with the following import id: <b>%s</b> to enable a search on this set of data in case of discovering problems in the future.
    +ErrorMissingMandatoryValue=Mandatory data is empty in the source file for field <b>%s</b>.
    +TooMuchErrors=There are still <b>%s</b> other source lines with errors but output has been limited.
    +TooMuchWarnings=There are still <b>%s</b> other source lines with warnings but output has been limited.
     EmptyLine=Boş satır (atlanacak)
    -CorrectErrorBeforeRunningImport=Kesin alma işleminden önce tüm hataları düzeltmelisiniz.
    +CorrectErrorBeforeRunningImport=You <b>must</b> correct all errors <b>before</b> running the definitive import.
     FileWasImported=Dosya <b>%s</b> sayısı ile alındı.
    -YouCanUseImportIdToFindRecord=Veritabanınızı <b>import_key='%s'</b> alanında süzerseniz alınmış tüm kayıtları bulabilirsiniz.
    +YouCanUseImportIdToFindRecord=You can find all the imported records in your database by filtering on field <b>import_key='%s'</b>.
     NbOfLinesOK=Hatasız ve uyarı içermeyen satır sayısı:<b>%s</b>.
     NbOfLinesImported=Sorunsuz içeaktarılan satır sayısı:<b>%s</b>.
     DataComeFromNoWhere=Eklenecek değer kaynak dosyada hiç bir yerden gelmiyor.
     DataComeFromFileFieldNb=Eklenecek değer kaynak dosyada <b>%s</b> numaralı alandan geliyor.
    -DataComeFromIdFoundFromRef=Kaynak dosyanın <b>%s</b> numaralı alanından gelen değer, üst nesne kodunun bulunması için kullanılacak (yani kaynak dosyadaki ilgili <b>%s</b> nesnesi önceden Dolibarr içinde bulunmalıdır).
    -DataComeFromIdFoundFromCodeId=Kaynak dosyanın <b>%s</b> alan numarasından  gelen kod, ana öğenin id'inin bulunmasında kullanılacaktır (Yani kaynak dosyadan gelen kod <b>%s</b> sözlüğü içinde mutlaka bulunmalıdır). Id'i biliyorsanız, ayrıca kod yerine kaynak dosyası içinde onu kullanabileceğinizi unutmayın. İçeaktarımın her iki durumda da çalışması gerekir.
    +DataComeFromIdFoundFromRef=Value that comes from field number <b>%s</b> of source file will be used to find the id of the parent object to use (so the object <b>%s</b> that has the ref. from source file must exist in the database).
    +DataComeFromIdFoundFromCodeId=Code that comes from field number <b>%s</b> of source file will be used to find the id of the parent object to use (so the code from source file must exist in the dictionary <b>%s</b>). Note that if you know the id, you can also use it in the source file instead of the code. Import should work in both cases.
     DataIsInsertedInto=Kaynak dosyadan gelen veri şu alana eklenecek:
    -DataIDSourceIsInsertedInto=Kaynak dosyadaki, veriyi kullanan üst nesne kodu, şu alana eklenecek:
    +DataIDSourceIsInsertedInto=The id of parent object was found using the data in the source file, will be inserted into the following field:
     DataCodeIDSourceIsInsertedInto=Koddan bulunan üst satır kodu , şu alana eklenecek:
     SourceRequired=Veri değeri zorunludur
     SourceExample=Olası veri değeri örneği
     ExampleAnyRefFoundIntoElement=<b>%s</b> bileşeni için bulunan ilgi
     ExampleAnyCodeOrIdFoundIntoDictionary=<b>%s</b> sözlüğünde bulunan herhangi bir kod (veya kimlik)
    -CSVFormatDesc=<b>Virgülle Ayrılmış Değer</b> dosya biçimi (.csv).<br>Alanların birbirinden ayıraç ile ayrıldığı bir metin dosyası biçimi [ %s ]. Bir alan içeriğinde ayıraç bulunursa, yuvarlatma karakteri ile alan yuvarlanır [ %s ]. Yuvarlatma karakterinden çıkmak için Escape karakteri kullanılır [%s].
    -Excel95FormatDesc=<b>Excel</b> dosya biçimi (.xls)<br>Doğal Excel 95 biçimi (BIFF5).
    -Excel2007FormatDesc=<b>Excel</b> dosya biçimi (.xlsx)<br>Doğal Excel 2007 biçimi (ÇalışmasayfasıML).
    +CSVFormatDesc=<b>Comma Separated Value</b> file format (.csv).<br>This is a text file format where fields are separated by a separator [ %s ]. If separator is found inside a field content, field is rounded by round character [ %s ]. Escape character to escape round character is [ %s ].
    +Excel95FormatDesc=<b>Excel</b> file format (.xls)<br>This is the native Excel 95 format (BIFF5).
    +Excel2007FormatDesc=<b>Excel</b> file format (.xlsx)<br>This is the native Excel 2007 format (SpreadsheetML).
     TsvFormatDesc=<b>Sekmeyle Ayrılmış Değer</b> dosya biçimi (.tsv)<br>Alanların sekme karakteri ile ayrıldığı metin dosyası biçimi [tab].
     ExportFieldAutomaticallyAdded=<b>%s</b> alanı kendiliğinden eklenmiştir. Benzer satırların çift kayıt olarak değerlendirilmesini önler (eklenen bu alan sayesinde, tüm alanlar kendi kodlarını alarak birbirinden farklı olur).
    -CsvOptions=CSV Ayarları
    -Separator=Ayıraç
    -Enclosure=Ek
    +CsvOptions=CSV format seçenekleri
    +Separator=Alan Ayırıcı
    +Enclosure=String Delimiter
     SpecialCode=Özel kod
     ExportStringFilter=%% metinde bir ya da fazla karakterin değiştirilmesine izin verir
     ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : bir yıılık yıl/ay/gün süzgeçi<br>YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : yıllar arası yıllar/aylar/günler süzgeçi<br> > YYYY, > YYYYMM, > YYYYMMDD : izleyen tüm yıllar için yıılar/aylar/günler süzgeçi<br> < YYYY, < YYYYMM, < YYYYMMDD : bütün önceki yıllar/aylar/günler süzgeçi
     ExportNumericFilter=Tek bir değere göre NNNNN filtreler<br>Bir dizi değer üzerinden NNNNN+NNNNN filtreler<br>Daha düşük değerlere göre < NNNNN filtreler<br>Daha düşük değerlere göre > NNNNN filtreler
     ImportFromLine=İçeaktarımın başladığı satır numarası
     EndAtLineNb=Satır numarası sonu
    -ImportFromToLine=Satır numaralarını içe aktar (buradan - buraya)
    +ImportFromToLine=Limit range (from - to) eg. to omit header line
     SetThisValueTo2ToExcludeFirstLine=Örneğin, İlk 2 satırı dışarıda tutmak için bu değeri 3 e ayarlayın
     KeepEmptyToGoToEndOfFile=Dosya sonuna gitmek için bu alanı boş bırakın
     SelectPrimaryColumnsForUpdateAttempt=Güncelleme girişimi için birincil anahtar olarak kullanmak üzere sütun(lar) seçin
    @@ -127,7 +127,7 @@ FilteredFields=Süzülmüş alanlar
     FilteredFieldsValues=Süzgeç değeri
     FormatControlRule=Biçim denetimi kuralı
     ## imports updates
    -KeysToUseForUpdates=Verileri güncellemek için kullanılacak anahtar
    +KeysToUseForUpdates=Key (column) to use for <b>updating</b> existing data
     NbInsert=Eklenen satır sayısı: %s
     NbUpdate=Güncellenmiş satır sayısı: %s
     MultipleRecordFoundWithTheseFilters=Bu filtrelerle birden çok kayıt bulundu: %s
    diff --git a/htdocs/langs/tr_TR/help.lang b/htdocs/langs/tr_TR/help.lang
    index 24588ff63e6..54e22a67922 100644
    --- a/htdocs/langs/tr_TR/help.lang
    +++ b/htdocs/langs/tr_TR/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Çevrimiçi gerçek zamanlı/uzaktan destek
     OtherSupport=Diğer destek
     ToSeeListOfAvailableRessources=İletişim için/mevcut kaynaklara bakın:
     HelpCenter=Yardım merkezi
    -DolibarrHelpCenter=Dolibarr yardım ve destek merkezi
    -ToGoBackToDolibarr=Aksi takdirde Dolibarr’ı kullanmak için<a href="%s">burayı tıklayın</a>
    -TypeOfSupport=Destek Kaynağı
    +DolibarrHelpCenter=Dolibarr Yardım ve Destek Merkezi
    +ToGoBackToDolibarr=Aksi takdirde, <a href="%s">Dolibarr'ı kullanmaya devam etmek için buraya tıklayın</a>.
    +TypeOfSupport=Destek türü
     TypeSupportCommunauty=Genel (ücretsiz)
     TypeSupportCommercial=Ticaret
     TypeOfHelp=Tür
    @@ -15,12 +15,9 @@ NeedHelpCenter=Yardım veya desteğe mi ihtiyacınız var?
     Efficiency=Verim
     TypeHelpOnly=Yalnızca yardım
     TypeHelpDev=Yardım+Geliştirme
    -TypeHelpDevForm=Yardım+Geliştirme+Biçimlendirme
    -ToGetHelpGoOnSparkAngels1=Bazı firmalar ve bilgisayarınızın kontrolünü alarak daha hızlı çevrimiçi destek verir (bazen anında). Bu tür yardımcılar <b>%s</b> web sitesinden bulunabilir:
    -ToGetHelpGoOnSparkAngels3=Ayrıca Dolibarr’n tüm eğiticileri listesine bakabilirsiniz, bunun için burayı tıklayın
    -ToGetHelpGoOnSparkAngels2=Bazen, arama yaptığınız sırada bir firma bulunmaz, bu nedenle süzgeçi “uygun olanların hepsi” değiştirerek aramayı düşünün.
    -BackToHelpCenter=Aksi durumda yardım merkezine geri gitmek için <a href="%s">burayı </a>.
    -LinkToGoldMember=Bo parçaçcığı (widget) tıklayarak Dolibar tarafından sizin için dilinizde önseçilen eğitmeni arayabilirsiniz (durumu ve ençok ücreti otomatikmen güncellenir):
    +TypeHelpDevForm=Yardım + Geliştirme + Eğitim
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Desteklenen diller
    -SubscribeToFoundation=Dolibarr projesine yardım edin, vakıfa abone olun
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Kendi dilinizde Dolibarr desteği için: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/tr_TR/holiday.lang b/htdocs/langs/tr_TR/holiday.lang
    index 3f8a59efe74..4d3beabd170 100644
    --- a/htdocs/langs/tr_TR/holiday.lang
    +++ b/htdocs/langs/tr_TR/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=IK
    -Holidays=İzinler
    -CPTitreMenu=İzinler
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Aylık özet
     MenuAddCP=Yeni izin isteği
    -NotActiveModCP=Bu sayfayı görmek için İzinler modülünü etkinleştirmelisiniz
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Bir izin isteği yap
     DateDebCP=Başlama tarihi
     DateFinCP=Bitiş tarihi
    @@ -15,13 +15,18 @@ ApprovedCP=Onaylandı
     CancelCP=İptal edildi
     RefuseCP=Reddedildi
     ValidatorCP=Onaylayan
    -ListeCP=İzinler listesi
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Şunun tarafından onaylanacak
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Açıklama
     SendRequestCP=İzin isteği oluştur
     DelayToRequestCP=İzin istekleri enaz <b>%s gün</b> önce yapolmalıdır.
    -MenuConfCP=İzinlerin bakiyesi
    -SoldeCPUser=İzin bakiyesi <b>%s</b> gündür.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Başlama tarihinden büyük bir bitiş tarihi seçmelisiniz.
     ErrorSQLCreateCP=Oluşturma sırasında bir SQL hatası oluştu:
     ErrorIDFicheCP=Bir hata oluştu, izin isteği yok.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=İzin isteklerini okumak için yetkiniz yok.
     InfosWorkflowCP=Bilgi işakışı
     RequestByCP=İsteyen
     TitreRequestCP=İzin isteği
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Tüketilen tatil gün sayısı
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Düzenle
     DeleteCP=Sil
     ActionRefuseCP=Reddet
    @@ -59,6 +71,7 @@ DateRefusCP=Ret tarihi
     DateCancelCP=İptal tarihi
     DefineEventUserCP=Bir kullanıcı için özel izin tahsis et
     addEventToUserCP=İzin Tahsisi
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Neden
     UserCP=Kullanıcı
     ErrorAddEventToUserCP=Özel izin eklenirken hata oluştu.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Çalışanın ilk adı
     TypeWasDisabledOrRemoved=Ayrılma türü (id %s) devre dışı bırakıldı veya kaldırıldı
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Yarım gün
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=İzin tahsislerinin son otomatik güncellenmesi
    -MonthOfLastMonthlyUpdate=Tahsis edilen izinlerin otomatik güncellendiği son ay
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Güncelleme başarılı
     Module27130Name= İzin istekleri yönetimi
     Module27130Desc= İzin istekleri yönetimi
    @@ -94,7 +112,7 @@ NoticePeriod=Bildirim dönemi
     HolidaysToValidate=İzin isteği doğrula
     HolidaysToValidateBody=Doğrulanacak izin isteği aşağıdadır
     HolidaysToValidateDelay=Bu izin isteği %s günden kısa bir sürede gerçekleşecektir.
    -HolidaysToValidateAlertSolde=Bu izin isteğini yapan kullanıcının yeterli uygun günü yok.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Doğrulanmış izin istekleri
     HolidaysValidatedBody=İzin isteğiniz %s - %s arası doğrulanmıştır.
     HolidaysRefused=İstek reddedildi
    @@ -103,4 +121,9 @@ HolidaysCanceled=İptal edilen izin istekleri
     HolidaysCanceledBody=%s - %s arası izin isteğiniz iptal edilmiştir.
     FollowedByACounter=1: Bu türdeki bir izin isteği bir sayaçla izlenmelidir. Bu sayaç elle ya da otomatik olarak arttırılır ve bir izin isteği doğrulandığında sayaç azaltılır.<br>0: Bir sayaçla izlenmez.
     NoLeaveWithCounterDefined=Bir sayaçla izlenmek üzere tanımlanan hiç izin isteği yok.
    -GoIntoDictionaryHolidayTypes=Farklı izin türleri ayarlamak için <strong>Giriş - Ayarlar - Sözlükler - İzin türleri</strong> menüsüne git.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=PDF'deki serbest metin
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/tr_TR/install.lang b/htdocs/langs/tr_TR/install.lang
    index 1e2f10367b4..9908ba51f14 100644
    --- a/htdocs/langs/tr_TR/install.lang
    +++ b/htdocs/langs/tr_TR/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Sadece adım adım yönergeleri izleyin.
     MiscellaneousChecks=Önkoşulların onayı
     ConfFileExists=Yapılandırma dosyası <b>%s</b> var.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Yapılandırma dosyası <b>%s</b> yoktur ve oluşturulamıyor!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Yapılandırma dosyası <b>%s</b> oluşturulabilir.
    -ConfFileIsNotWritable=Yapılandırma dosyası <b>%s</b> yazılabilir değil. Yetkileri kontrol edin. İlk yüklemede web sunucusuna yapılandırma işlemi sırasında bu dosyaya yazabilme hakkının verilmiş olması gerekir ( "örneğin, chmod 666, bir Unix işletim sistemindeki gibi).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Yapılandırma dosyası <b>%s</b>  yazılabilir.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Bütün bilgileri yapılandırma dosyasından geri yükle.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=Bu PHP oturumları destekliyor.
     PHPSupportPOSTGETOk=Bu PHP GÖNDER ve AL değişkenlerini destekliyor.
    -PHPSupportPOSTGETKo=Bu PHP kurulumunun GÖNDER ve AL  değişkenlerini desteklememesi mümkündür. Php.ini içindeki <b>variables_order</b> parametresini kontrol edin.
    -PHPSupportGD=Bu PHP GD grafik işlevlerini destekliyor.
    -PHPSupportCurl=Bu PHP Curl. destekliyor.
    -PHPSupportUTF8=Bu PHP UTF8 işlevlerini destekliyor.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=Bu PHP, UTF8 işlevlerini destekliyor.
     PHPMemoryOK=PHP nizin ençok oturum belleği <b>%s</b> olarak ayarlanmış. Bu yeterli olacaktır.
    -PHPMemoryTooLow=PHP nizin ençok oturum belleği <b>%s</b> bayt olarak ayarlanmış. Bu çok düşük olabilir. <b>php.ini</b> dosyanızdaki <b>memory_limit</b> parametresi ayarını enaz <b>%s</b> bayt olacak şekilde değiştirin.
    -Recheck=Daha belirleyici bir test için burayı tıklayın
    -ErrorPHPDoesNotSupportSessions=PHP kurulumunuz oturumları desteklemiyor. Bu özellik Dolibarr 'ın çalışması için gereklidir. PHP kurulumunuzu kontrol edin.
    -ErrorPHPDoesNotSupportGD=PHP kurulumunuz GD grafik işlevini desteklemiyor. Hiçbir grafik görüntülenemeyecektir.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Daha detaylı bir test için buraya tıklayın
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=PHP kurulumunuz GD grafiksel fonksiyonları desteklemiyor. Hiçbir grafik mevcut olmayacak.
     ErrorPHPDoesNotSupportCurl=PHP kurulumunuz Curl. desteklemiyor
     ErrorPHPDoesNotSupportUTF8=PHP kurulumunuz UTF8 işlevlerini desteklemiyor. Dolibarr düzgün çalışamaz. Dolibarr'ı yüklemeden önce bunu çözün.
     ErrorDirDoesNotExists=%s Dizini yoktur.
    -ErrorGoBackAndCorrectParameters=Geri gidin ve yanlış parametreleri düzeltin.
    +ErrorGoBackAndCorrectParameters=Geri gidin ve parametreleri kontrol edin/düzeltin.
     ErrorWrongValueForParameter=Parametresi '%s' için yanlış değer yazmış olabilirsiniz'.
     ErrorFailedToCreateDatabase=Veritabanı '%s' oluşturulamadı.
     ErrorFailedToConnectToDatabase=Veritabanı '%s' e bağlanılamadı.
     ErrorDatabaseVersionTooLow=Veritabanı sürümü (%s) çok eski. Sürüm %s ya da daha yükseği gerekir.
     ErrorPHPVersionTooLow=PHP sürümü çok eski. %s Sürümü gereklidir.
    -ErrorConnectedButDatabaseNotFound=Sunucu bağlantısı başarılı ancak veritabanı '%s' bulunamadı.
    +ErrorConnectedButDatabaseNotFound=Sunucuya bağlantı başarılı fakat '%s' veritabanı bulunamadı.
     ErrorDatabaseAlreadyExists=Veritabanı '%s' zaten var.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Eğer veritabanı yoksa, geri gidin ve "Veritabanı oluştur" seçeneğini işaretleyin.
    +IfDatabaseNotExistsGoBackAndUncheckCreate=Veritabanı mevcut değilse geri gidin ve "Veritabanı oluştur" seçeneğini kontrol edin.
     IfDatabaseExistsGoBackAndCheckCreate=Eğer veritabanı zaten mevcutsa, geri gidin ve "Veritabanı oluştur" seçeneğindeki işareti kaldırın.
    -WarningBrowserTooOld=Çok eski bir web tarayıcısı. Web tarayıcınızı Firefox, Chrome yada Opera 'nın enson sürümüne yükseltmeniz son derece önerilir.
    +WarningBrowserTooOld=Tarayıcı sürümü çok eski. Tarayıcınızı Firefox, Chrome veya Opera'nın en son sürümlerine güncellemeniz önemle tavsiye edilir.
     PHPVersion=PHP Sürümü
     License=Lisans kullanımı
     ConfigurationFile=Yapılandırma dosyası
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Veritabanı
     DatabaseType=Veritabanı türü
     DriverType=Sürücü türü
     Server=Sunucu
    -ServerAddressDescription=Veritabanı sunucusunun adı ya da ip’ si, veritabanı sunucusunun, web tarayıcısı ile aynı sunucuda barındırıldığı durumlarda genellikle 'localhost' olur
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Veritabanı sunucusu bağlantı noktası. Eğer bilinmiyorsa boş tutun.
     DatabaseServer=Veritabanı sunucusu
     DatabaseName=Veritabanı adı
    -DatabasePrefix=Veritabanı tablo öneki
    -AdminLogin=Dolibarr veritabanı kullanıcı adı.
    -PasswordAgain=Parolayı ikinci kez yeniden yaz
    +DatabasePrefix=Veritabanı tablosu öneki
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=Dolibarr veritabanı sahibi için kullanıcı hesabı
    +PasswordAgain=Parola onayını tekrar girin
     AdminPassword=Dolibarr veritabanı sahibi parolası.
     CreateDatabase=Veritabanı oluştur
    -CreateUser=Sahip oluşturun ve veritabanında ona izin verin
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Veritabanı sunucusu - süperkullanıcı erişimi
    -CheckToCreateDatabase=Eğer veritabanı yoksa ve oluşturulması gerekiyorsa kutuyu işaretleyin.<br>Bu durumda, bu sayfanın altına süperkullanıcı hesabı için kullanıcı adı/parola girmelisiniz.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Yeni veritabanı ve yeni kullanıcı oluşturabilecek kullanıcı girişi, veritabanınız ve veritabanı girişiniz zaten varsa gereksizdir (sanki bir web sağlayıcı tarafından barındırılıyor gibi).
    -KeepEmptyIfNoPassword=Eğer kullanıcının herhangi bir parolası yoksa boş bırakın (bundan kaçının)
    -SaveConfigurationFile=Değerleri saklayın
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Sunucu bağlantısı
     DatabaseCreation=Veritabanı oluşturma
     CreateDatabaseObjects=Veritabanı nesneleri oluşturma
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Yabancı tuşları ve tablo için dizin oluşturma %s
     OtherKeysCreation=Yabancı tuşları ve indeksleri oluşturma
     FunctionsCreation=İşlevler oluşturma
     AdminAccountCreation=Yönetici girişi oluşturma
    -PleaseTypePassword=Lütfen bir parola yazın, boş parolaya izin verilmez!
    -PleaseTypeALogin=Lütfen bir kullanıcı adı yazın!
    -PasswordsMismatch=Parolalar farklıdır, lütfen yeniden deneyin!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Şifreler farklıdır, lütfen tekrar deneyin!
     SetupEnd=Kurulum sonu
     SystemIsInstalled=Bu kurulum tamamlandı.
     SystemIsUpgraded=Dolibarr başarıyla yükseltildi.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=İhtiyaçlarınıza uygun olarak Dolibarr'ı yapıland
     AdminLoginCreatedSuccessfuly=Dolibarr yönetici girişi '<b>%s</b>' başarıyla oluşturuldu.
     GoToDolibarr=Dolibarr'a git
     GoToSetupArea=Dolibarr'a git (ayarlar alanı)
    -MigrationNotFinished=Veritabanı sürümü tamamen güncel değildir, bu nedenle yükseltme işlemini yeniden çalıştırmanız gerekir.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Yükseltme sayfasına yeniden git
     WithNoSlashAtTheEnd=Sonunda taksim olmadan "/"
    -DirectoryRecommendation=Web sayfalarınızın dizininin dışında bir dizin kullanmanız önerilir.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Zaten var
     DolibarrAdminLogin=Dolibarr yönetici girişi
    -AdminLoginAlreadyExists=Dolibarr yönetici hesabı '<b>%s</b>' zaten var. Yeni bir tane oluşturmak istiyorsanız geri gidin.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Dolibarr yönetici hesabı oluşturulmasında hata.
    -WarningRemoveInstallDir=Uyarı, güvenlik nedeniyle, kurulum veya yükseltme tamamlandığında, araçların yeniden kurulumunu önlemek için  <b>install.lock</b> adlı bir dosyayı kötü amaçlı kullanımları önlemek için Dolibarr belge dizinine eklemelisiniz.
    -FunctionNotAvailableInThisPHP=Bu PHP de geçerli değil
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Bu PHP'de mevcut değil
     ChoosedMigrateScript=Komut dizisi taşıma seç
    -DataMigration=Database migration (data)
    -DatabaseMigration=Database migration (structure + some data)
    +DataMigration=Veritabanı taşıma (veri)
    +DatabaseMigration=Veritabanı taşıma (yapı + bazı veriler)
     ProcessMigrateScript=Komut dizisi işleme
     ChooseYourSetupMode=Kurulum biçimini seçin ve "Başlat" ı tıklayın...
     FreshInstall=Yeni yükleme
    -FreshInstallDesc=Eğer bu sizin ilk yüklemeniz ise bu biçimi kullanın. Eğer ilk değilse, bu biçim bir önceki eksik yüklemeyi onarır, ama eğer sürümünüzü yükseltmek istiyorsanız, "Yükseltme" biçimini seçin.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Yükseltme
     UpgradeDesc=Eğer eski Dolibarr dosyalarını daha yeni bir sürümün dosyaları ile değiştirdiyseniz bu biçimi kullanın. Bu, veritabanını ve veriyi yükseltecektir.
     Start=Başlat
     InstallNotAllowed=Kuruluma <b>conf.php</b> izin vermiyor
     YouMustCreateWithPermission=%s Dosyasını oluşturmanız ve kurulum sırasında web sunucusunda yazma izinlerini ayarlamanız gerekir.
    -CorrectProblemAndReloadPage=Lütfen sorunu çözün ve sayfayı yeniden yüklemek için F5 tuşuna basın.
    +CorrectProblemAndReloadPage=Lütfen sorunu düzeltin ve sayfayı tekrar yüklemek için F5 tuşuna basın.
     AlreadyDone=Zaten taşındı
     DatabaseVersion=Veritabanı sürümü
     ServerVersion=Veritabanı sunucusu sürümü
     YouMustCreateItAndAllowServerToWrite=Bu dizini oluşturmanız ve web sunucusuna yazmak için vermeniz gerekir.
     DBSortingCollation=Karakter sıralama düzeni
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=<b>%s</b> veritabanını oluşturmanız istenebilir, bunun için, Dolibarr <b>%s</b> sunucusuna <b>%s</b> süper kullanıcı izniyle bağlanmak ister.
    -YouAskLoginCreationSoDolibarrNeedToConnect=<b>%s</b> Veritabanı girişi oluşturmanız istenebilir, bunun için, Dolibarr <b>%s</b> sunucusuna <b>%s</b> süperkullanıcı izniyle bağlanmak ister.
    -BecauseConnectionFailedParametersMayBeWrong=Bağlantı yapılamazsa, sunucu ya da süper kullanıcı parametreleri yanlış olmalıdır.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=%s yöntemi ile belirlenen sahipsiz ödemeler
     RemoveItManuallyAndPressF5ToContinue=El ile kaldırın ve devam etmek için F5 tuşuna basın.
     FieldRenamed=Alan yeniden adlandırıldı
    -IfLoginDoesNotExistsCheckCreateUser=Eğer kullanıcı adı henüz yoksa , "Kullanıcı oluştur" seçeneğini işaretlemelisiniz
    -ErrorConnection=Sunucu "<b>%s</b>" veritabanı adı "<b>%s</b>", kullanıcı adı "<b>%s</b>" ya da veritabanı parolası yanlış olabilir ya da PHP istemci sürümü veritabanı sürümüne göre çok eski olabilir.
    +IfLoginDoesNotExistsCheckCreateUser=Kullanıcı henüz mevcut değilse "Kullanıcı oluştur" seçeneğini kontrol etmelisiniz
    +ErrorConnection=Sunucu "<b>%s</b>", veritabanı adı "<b>%s</b>", kullanıcı adı "<b>%s</b>",  ya da veritabanı şifresi yanlış olabilir veya PHP istemci sürümü veritabanı sürümüne göre çok eski olabilir.
     InstallChoiceRecommanded=<b>%s</b> Geçerli sürümünüzden  <b>%s</b> sürümünü kurmak için önerilen seçim
     InstallChoiceSuggested=<b>Yükleyici tarafından önerilen seçimi kur</b>.
    -MigrateIsDoneStepByStep=Hedeflenen sürümde (%s) çeşitli sürüm boşlukları var, bu nedenle sihirbaz bunun tamamlanması için geri dönecektir.
    -CheckThatDatabasenameIsCorrect=Veritabanı adı "<b>%s</b>" nin doğruluğunu denetleyin.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Eğer bu isim doğru ise ve veritabanı henüz mevcut değilse, "Veritabanı oluştur" seçeneğini işaretlemelisiniz.
     OpenBaseDir=PHP openbasedir parametresi
    -YouAskToCreateDatabaseSoRootRequired="Veritabanı oluştur" kutusunu işaretlediniz. Bunun için süperkullanıcı kullanıcı adı/parola girmeniz (formun altına) gerekir.
    -YouAskToCreateDatabaseUserSoRootRequired="Veritabanı sahibi oluştur" kutusunu işaretlediniz. Bunun için süperkullanıcı kullanıcı adı/parola girmeniz (formun altına) gerekir.
    -NextStepMightLastALongTime=Geçerli işlem birkaç dakika sürebilir. Lütfen devam etmeden önce sonraki ekranın tamamen görüntülenmesini bekleyin.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Müşteri siparişleri kaydı için nakliye taşıma
     MigrationShippingDelivery=Nakliyenin saklanması bitti
     MigrationShippingDelivery2=Nakliye 2 nin saklanması bitti
     MigrationFinished=Taşıma bitti
    -LastStepDesc=<strong>Son adım</strong>: Burada yazılıma bağlanmayı düşündüğünüz kullanıcı adı ve parolayı tanımlayın. Herkesi yönetecek hesap olduğundan dolayı bu bilgileri kaybetmeyin.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=%s modülünü etkinleştir
     ShowEditTechnicalParameters=Gelişmiş parametreleri (uzman modu) göstermek/düzenlemek için burayı tıklayın
    -WarningUpgrade=Uyarı:\nİlkin bir veritabanı yedeklemesi yaptınız mı?\nBu şiddetle önerilir: örneğin, veritabanı sistemindeki bazı hatalar nedeniyle (örneğin mysql version 5.5.40/41/42/43), bu işlem sırasında bazı veri ve tablolar kaybolabilir, bu yüzden taşıma işlemi başlamadan önce veritabanının tam bir dökümünün olması önemle önerilir.\n\nTaşıma işlemini başlatmak için TAMAM'a tıklayın...
    -ErrorDatabaseVersionForbiddenForMigration=Veritabanınızın sürümü %s. Veritabanınızın yapısını değiştirirseniz veri kaybı yapacak bir kritik hata vardır, taşıma işlemi tarafından istenmesi gibi. Bu nedenle, veritabanınızı daha yüksek kararlı bir sürüme yükseltinceye kadar taşımaya izin verilmeyecektir (bilinen hatalar listesi sürümü: %s)
    -KeepDefaultValuesWamp=DoliWamp üzerinden Dolibarr kurulum sihirbazını kullanın, burada sunulan değerler hali hazırda optimize edilmiştir. Yalnızca ne yapacağınızı biliyorsanız bunları değiştirin.
    -KeepDefaultValuesDeb=Bir Linux paketi (Ubuntu, Debian, Fedora ...) üzerinden Dolibarr kurulum sihirbazını kullanın, burada sunulan değerler hali hazırda optimize edilmiştir. Yalnızca veritabanı sahibinin parolasının tamamlanması gerekir. Yalnızca ne yapacağınızı biliyorsanız parametreleri değiştirin.
    -KeepDefaultValuesMamp=DoliMamp üzerinden Dolibarr kurulum sihirbazını kullanın, burada sunulan değerler hali hazırda optimize edilmiştir. Yalnızca ne yapacağınızı biliyorsanız bunları değiştirin.
    -KeepDefaultValuesProxmox=Proxmox sanal aygıt  üzerinden Dolibarr kurulum sihirbazını kullanın, burada sunulan değerler hali hazırda optimize edilmiştir. Yalnızca ne yapacağınızı biliyorsanız bunları değiştirin.
    -UpgradeExternalModule=Harici modüllerin özel yükseltme işlemini çalıştırın
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Yapacak bir şey yok
    @@ -147,7 +148,7 @@ NothingToDo=Yapacak bir şey yok
     # upgrade
     MigrationFixData=Standart dışı veri onarımı
     MigrationOrder=Müşteri siparişleri için veri taşıma
    -MigrationSupplierOrder=Data migration for vendor's orders
    +MigrationSupplierOrder=Tedarikçi siparişleri için veri taşıma
     MigrationProposal=Teklifler için veri taşıma
     MigrationInvoice=Müşteri faturaları için veri taşıma
     MigrationContract=Sözleşmeler için veri taşıma
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Sözleşme verisi düzeltme
     MigrationContractsNumberToUpdate=Güncellenecek %s sözleşme(ler) var
     MigrationContractsLineCreation=Sözleşme ref %s için sözleşme satırı oluştur
     MigrationContractsNothingToUpdate=Daha fazla yapacak şey yok
    -MigrationContractsFieldDontExist=fk_facture Alanı artık yok. Hiçbir şey yapmaya gerek yok.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Boş sözleşme tarihi düzeltme
    -MigrationContractsEmptyDatesUpdateSuccess=Sözleşmedeki boş tarih başarıyla düzeltildi
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Düzeltilecek boş sözleşme tarihi yok
     MigrationContractsEmptyCreationDatesNothingToUpdate=Düzeltilecek sözleşme oluşturma tarihi yok
     MigrationContractsInvalidDatesUpdate=Sözleşme düzeltmede hatalı değer
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Teslimat güncelleme
     MigrationStockDetail=Ürünlerin stok değerini güncelle
     MigrationMenusDetail=Dinamik menüler tablolarını güncelle
     MigrationDeliveryAddress=Yüklemelerde teslimat adresini güncelle
    -MigrationProjectTaskActors=llx_projet_task_actors table için veri taşıma tablosu
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Veri taşıma alanı fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Saniyede olarak harcanan süreyi güncelle
     MigrationActioncommElement=Eylemlere ilişkin veri güncellemesi
     MigrationPaymentMode=Ödeme biçimi için veri taşıma
     MigrationCategorieAssociation=Kategorilerin taşınması
    -MigrationEvents=Atama tablosuna etkinlik sahibi eklemek için gerekli taşıma eylemleri
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=value of llx_societe_remise varlık alanını güncelle
     MigrationRemiseExceptEntity=llx_societe_remise_except varlık alanını güncelle
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Modülü yeniden yükle %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Kullanılamayacak seçenekler görüntülensin
    -HideNotAvailableOptions=Kullanılamayacak seçenekler gizlensin
    -ErrorFoundDuringMigration=Taşıma işlemi sırasında hata bildirildiğinden sonraki adıma geçilemeyecektir. Hataları gözardı etmek için, <a href="%s">buraya tıklayabilirsiniz</a>, ancak onarılana kadar uygulama ya da bazı özellikleri çalışmayabilecektir.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    -ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
    +ClickHereToGoToApp=Uygulamanıza gitmek için buraya tıklayın
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/tr_TR/interventions.lang b/htdocs/langs/tr_TR/interventions.lang
    index da07cd35987..954f469d849 100644
    --- a/htdocs/langs/tr_TR/interventions.lang
    +++ b/htdocs/langs/tr_TR/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Müdahaleler
     InterventionCard=Müdahale kartı
     NewIntervention=Yeni müdahale
     AddIntervention=Müdahale oluştur
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Müdahaleler listesi
     ActionsOnFicheInter=Müdahale eylemleri
     LastInterventions=Son %s müdahale
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Siparişlerden oluşturulan müdahaleler için hi
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Müdahale istatistikleri
    -NbOfinterventions=Müdahale kartları sayısı
    -NumberOfInterventionsByMonth=Aylık (doğrulama tarihi) müdahale kartları sayısı
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Müdahale kimliği
    diff --git a/htdocs/langs/tr_TR/mails.lang b/htdocs/langs/tr_TR/mails.lang
    index 5468d2ff391..f55c087a830 100644
    --- a/htdocs/langs/tr_TR/mails.lang
    +++ b/htdocs/langs/tr_TR/mails.lang
    @@ -45,10 +45,10 @@ MailingStatusReadAndUnsubscribe=Oku ve aboneliği kaldır
     ErrorMailRecipientIsEmpty=Eposta alıcısı boş
     WarningNoEMailsAdded=Alıcının listesine ekli yeni Eposta yok.
     ConfirmValidMailing=Bu e-postayı doğrulamak istediğinizden emin misiniz?
    -ConfirmResetMailing=Warning, by reinitializing emailing <b>%s</b>, you allow to make a mass sending of this email another time. Are you sure you this is what you want to do?
    -ConfirmDeleteMailing=Bu e-postayı silmek istediğinizden emin misiniz?
    -NbOfUniqueEMails=Benzersiz eposta sayısı
    -NbOfEMails=Eposta sayısı
    +ConfirmResetMailing=Warning, by re-initializing emailing <b>%s</b> , you will allow resending this email in a mass mailing. Are you sure you want to do this?
    +ConfirmDeleteMailing=Are you sure you want to delete this emailing?
    +NbOfUniqueEMails=No. of unique emails
    +NbOfEMails=No. of EMails
     TotalNbOfDistinctRecipients=Farklı alıcıların sayısı
     NoTargetYet=Henüz hiç bir alıcı tanımlanmadı (‘Alıcılar’ sekmesine gidin)
     NoRecipientEmail=%s için alıcı E-postası yok
    @@ -66,26 +66,26 @@ DateLastSend=Enson gönderim tarihi
     DateSending=Gönderme tarihi
     SentTo=<b>%s</b> ye gönderilen
     MailingStatusRead=Okundu
    -YourMailUnsubcribeOK=<b>%s</b> Epostası postalama listesinden başarıyla çıkarıldı
    -ActivateCheckReadKey="Okuma Alındısı" ve "Abonelik İptali" için kullanılan URL şifrelemesi içi Anahtar
    +YourMailUnsubcribeOK=The email <b>%s</b>  is correctly unsubscribe from mailing list
    +ActivateCheckReadKey=Key used to encrypt URL used for "Read Receipt" and "Unsubscribe" feature
     EMailSentToNRecipients=EMail sent to %s recipients.
     EMailSentForNElements=Eposta gönderilen öğeler: %s.
     XTargetsAdded=<b>%s</b> alıcılar listesine eklendi
    -OnlyPDFattachmentSupported=If the PDF documents were already generated for the objects to send, they will be attached to email. If not, no email will be sent (also, note that only pdf documents are supported as attachment in mass sending in this version).
    +OnlyPDFattachmentSupported=If the PDF documents were already generated for the objects to send, they will be attached to email. If not, no email will be sent (also, note that only pdf documents are supported as attachments in mass sending in this version).
     AllRecipientSelected=The recipients of the %s record selected (if their email is known).
     GroupEmails=Grup e-postaları
     OneEmailPerRecipient=One email per recipient (by default, one email per record selected)
     WarningIfYouCheckOneRecipientPerEmail=Warning, if you check this box, it means only one email will be sent for several different record selected, so, if your message contains substitution variables that refers to data of a record, it becomes not possible to replace them.
     ResultOfMailSending=Toplu Eposta gönderimi sonuçu
    -NbSelected=Seçilen sayısı
    -NbIgnored=Yoksayılan sayısı
    -NbSent=Gönderilen sayısı
    +NbSelected=No. selected
    +NbIgnored=No. ignored
    +NbSent=No. sent
     SentXXXmessages=%s message(s) sent.
     ConfirmUnvalidateEmailing=Are you sure you want to change email <b>%s</b> to draft status?
     MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters
    -MailingModuleDescContactsByCompanyCategory=Contacts by third party category
    -MailingModuleDescContactsByCategory=Contacts by categories
    -MailingModuleDescContactsByFunction=Contacts by position
    +MailingModuleDescContactsByCompanyCategory=Üçüncü parti kategorisine göre kişiler
    +MailingModuleDescContactsByCategory=Kategorilere göre kişiler
    +MailingModuleDescContactsByFunction=Pozisyona göre kişiler
     MailingModuleDescEmailsFromFile=Dosyadan e-postalar
     MailingModuleDescEmailsFromUser=Kullanıcı tarafından girilen e-postalar
     MailingModuleDescDolibarrUsers=E-postaları olan kullanıcılar
    @@ -139,7 +139,7 @@ UseFormatFileEmailToTarget=Imported file must have format <strong>email;name;fir
     UseFormatInputEmailToTarget=Enter a string with format <strong>email;name;firstname;other</strong>
     MailAdvTargetRecipients=Alıcılar (gelişmiş seçim)
     AdvTgtTitle=Fill input fields to preselect the third parties or contacts/addresses to target
    -AdvTgtSearchTextHelp=Bunları %% sihirli karakter olarak kullanın. Örneğin; <b>jean, joe, jim</b> gibi tüm öğeleri bulmak için bunları <b>j%%</b> girebilirsiniz, aynı zamanda ayraç olarak ; kullanabilirsiniz, bu değer hariç için ! kullanabilirsiniz. Örneğin; <b>jean;joe;jim%%;!jimo;!jima%</b> dizgesi hedefi şu olacaktır: jim ile başlayan ancak jimo ile başlamayan ve jima ile başlayan her şeyi değil
    +AdvTgtSearchTextHelp=Use %% as wildcards. For example to find all item like <b>jean, joe, jim</b>, you can input <b>j%%</b>, you can also use ; as separator for value, and use ! for except this value. For example  <b>jean;joe;jim%%;!jimo;!jima%</b> will target all jean, joe, start with jim but not jimo and not everything that starts with jima
     AdvTgtSearchIntHelp=Tam sayı veya kayan değer seçmek için aralık kullanın
     AdvTgtMinVal=En düşük değer
     AdvTgtMaxVal=En yüksek değer
    @@ -153,7 +153,7 @@ AddAll=Hepsini ekle
     RemoveAll=Hepsini sil
     ItemsCount=Öğe(ler)
     AdvTgtNameTemplate=Süzgeç adı
    -AdvTgtAddContact=Epostaları kriterlere göre ekle
    +AdvTgtAddContact=Add emails according to criteria
     AdvTgtLoadFilter=Süzgeç yükle
     AdvTgtDeleteFilter=Süzgeç sil
     AdvTgtSaveFilter=Süzgeç kaydet
    @@ -166,4 +166,4 @@ InGoingEmailSetup=Gelen e-posta kurulumu
     OutGoingEmailSetupForEmailing=Giden e-posta kurulumu (toplu e-posta için)
     DefaultOutgoingEmailSetup=Varsayılan giden e-posta kurulumu
     Information=Bilgi
    -ContactsWithThirdpartyFilter=Contacts avec filtre client
    +ContactsWithThirdpartyFilter=Contacts with third party filter
    diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang
    index 73715b5e57c..3b921978004 100644
    --- a/htdocs/langs/tr_TR/main.lang
    +++ b/htdocs/langs/tr_TR/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Posta gönderilemedi (gönderen)
     ErrorFileNotUploaded=Dosya gönderilemedi. Boyutun izin verilen ençok dosya boyutunu aşmadığını denetleyin, bu dizinde yeterli boş alan olmalı ve aynı isimde başka bir dosya olmamalı.
     ErrorInternalErrorDetected=Hata algılandı
     ErrorWrongHostParameter=Yanlış ana parametre
    -ErrorYourCountryIsNotDefined=Ülkeniz tanımlı değil. Giriş-Ayarlar-Düzenle ye git ve formu yeniden gönder.
    -ErrorRecordIsUsedByChild=Bu kayıt silinemedi. Bu kayıt en az bir alt kayıt tarafından kullanılmaktadır.
    +ErrorYourCountryIsNotDefined=Ülkeniz tanımlı değil. Giriş-Ayarlar-Düzenle kısmına git ve formu yeniden gönder.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Yanlış değer
     ErrorWrongValueForParameterX=Parametresi %s için yanlış değer
     ErrorNoRequestInError=Hatalı istek yok
    -ErrorServiceUnavailableTryLater=Hizmet şu an için kullanılamıyor. Daha sonra yeniden deneyin.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Benzersiz bir alanda yinelenen değer
    -ErrorSomeErrorWereFoundRollbackIsDone=Bazı hatalar bulundu. Değişikler geri alındı.
    -ErrorConfigParameterNotDefined=Parametre <b>%s</b> Dolibarr yapılandırma dosyasında <b>conf.php</b> tanımlı değil.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Dolibarr veritabanında kullanıcı <b>%s</b> bulunamadı.
     ErrorNoVATRateDefinedForSellerCountry=Hata, ülke '%s' için herhangi bir KDV oranı tanımlanmamış.
     ErrorNoSocialContributionForSellerCountry=Hata, '%s' ülkesi için sosyal/mali vergi tipi tanımlanmamış.
     ErrorFailedToSaveFile=Hata, dosya kaydedilemedi.
    -ErrorCannotAddThisParentWarehouse=Zaten şu anki deponun bir alt deposu olan bir üst depo eklemeye çalışıyorsunuz
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Sayfa başına maksimum kayıt sayısı
     NotAuthorized=Bunu yapmak için yetkiniz yok.
     SetDate=Ayar tarihi
     SelectDate=Bir tarih seç
    @@ -92,9 +92,9 @@ DolibarrInHttpAuthenticationSoPasswordUseless=Yapılandırma dosyası <b>conf.ph
     Administrator=Yönetici
     Undefined=Tanımlanmamış
     PasswordForgotten=Parola mı unutuldu?
    -NoAccount=No account?
    +NoAccount=Hesap yok mu?
     SeeAbove=Yukarı bak
    -HomeArea=Giriş alanı
    +HomeArea=Giriş
     LastConnexion=Son bağlantı
     PreviousConnexion=Önceki bağlantı
     PreviousValue=Önceki değer
    @@ -142,6 +142,7 @@ Closed=Kapalı
     Closed2=Kapalı
     NotClosed=Kapalı değil
     Enabled=Etkin
    +Enable=Etkin
     Deprecated=Kullanılmayan
     Disable=Engelle
     Disabled=Engelli
    @@ -153,7 +154,7 @@ Update=Güncelle
     Close=Kapat
     CloseBox=Kontrol panelinizden ekran etiketini kaldırın
     Confirm=Onayla
    -ConfirmSendCardByMail=Bu kartın içeriğini posta ile gerçekten <b>%s</b> adresine göndermek istiyor musunuz?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Sil
     Remove=Kaldır
     Resiliate=Sonlandır
    @@ -232,7 +233,7 @@ Limit=Sınır
     Limits=Sınırlar
     Logout=Çıkış
     NoLogoutProcessWithAuthMode=Kimlik denetimi modu <b>%s</b> için uygulanabilir bağlantı kesme özelliği yok
    -Connection=Kullanıcı adı
    +Connection=Oturum Aç
     Setup=Ayarlar
     Alert=Uyarı
     MenuWarnings=Uyarılar
    @@ -327,7 +328,7 @@ Copy=Kopyala
     Paste=Yapıştır
     Default=Varsayılan
     DefaultValue=Varsayılan değer
    -DefaultValues=Varsayılan değerler
    +DefaultValues=Varsayılan değerler/filtreler/sıralama
     Price=Fiyat
     PriceCurrency=Fiyat (para birimi)
     UnitPrice=Birim fiyat
    @@ -347,7 +348,7 @@ AmountTTCShort=Tutar (KDV dahil)
     AmountHT=Tutar (KDV hariç)
     AmountTTC=Miktarı (KDV dahil)
     AmountVAT=KDV tutarı
    -MulticurrencyAlreadyPaid=Ödenmiş, orijinal para birimi
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Ödemeye devam edin, orijinal para birimi
     MulticurrencyPaymentAmount=Ödeme tutarı, orijinal para birimi
     MulticurrencyAmountHT=Tutar (vergisiz net), ilk para birimi
    @@ -416,7 +417,7 @@ Favorite=Sık kullanılan
     ShortInfo=Bilgi.
     Ref=Ref.
     ExternalRef=Ref. stajyer
    -RefSupplier=Ref. vendor
    +RefSupplier=Referans tedarikçi
     RefPayment=Ref. ödeme
     CommercialProposalsShort=Teklifler
     Comment=Açıklama
    @@ -428,14 +429,15 @@ ActionNotApplicable=Uygulanamaz
     ActionRunningNotStarted=Başlayacak
     ActionRunningShort=Devam etmekte
     ActionDoneShort=Bitti
    -ActionUncomplete=Tamamlanmamış
    -LatestLinkedEvents=Latest %s linked events
    +ActionUncomplete=Incomplete
    +LatestLinkedEvents=Bununla bağlantılı son %s etkinlik
     CompanyFoundation=Şirket/Kuruluş
    -Accountant=Accountant
    +Accountant=Muhasebeci
     ContactsForCompany=Bu üçüncü partinin kişileri
     ContactsAddressesForCompany=Bu üçüncü partinin kişleri/adresleri
     AddressesForCompany=Bu üçüncü partinin adresleri
     ActionsOnCompany=Bu üçüncü parti hakkındaki etkinlikler
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Bu üye hakkındaki etkinlikler
     ActionsOnProduct=Bu ürünle ilgili etkinlikler
     NActionsLate=%s son
    @@ -453,8 +455,8 @@ Generate=Oluştur
     Duration=Süre
     TotalDuration=Toplam süre
     Summary=Özet
    -DolibarrStateBoard=Veritabanı istatistikleri
    -DolibarrWorkBoard=Açık ögeler gösterge tablosu
    +DolibarrStateBoard=Veritabanı İstatistikleri
    +DolibarrWorkBoard=Bekleyen İşlemler
     NoOpenedElementToProcess=İşlenecek hiçbir açık öğe yok
     Available=Mevcut
     NotYetAvailable=Henüz mevcut değil
    @@ -506,7 +508,7 @@ None=Hiçbiri
     NoneF=Hiçbiri
     NoneOrSeveral=Yok veya Birkaç
     Late=Son
    -LateDesc=Bir kayıdın sizin ayarlarınıza dayanarak gecikmiş olduğu ya da olmadığını tanımlayabilmek için gerekli süre. Yöneticinizden Giriş - Ayarlar - Uyarılar menüsünden süreyi değiştirmesini isteyin.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Resim
     Photos=Resimler
    @@ -530,18 +532,6 @@ September=Eylül
     October=Ekim
     November=Kasım
     December=Aralık
    -JanuaryMin=Ara
    -FebruaryMin=Şub
    -MarchMin=Mar
    -AprilMin=Nis
    -MayMin=May
    -JuneMin=Haz
    -JulyMin=Tem
    -AugustMin=Ağu
    -SeptemberMin=Eyl
    -OctoberMin=Eki
    -NovemberMin=Kas
    -DecemberMin=Ara
     Month01=Ocak
     Month02=Şubat
     Month03=Mart
    @@ -622,9 +612,9 @@ BuildDoc=Doc oluştur
     Entity=Varlık
     Entities=Varlıklar
     CustomerPreview=Müşteri önizleme
    -SupplierPreview=Vendor preview
    +SupplierPreview=Tedarikçi önizlemesi
     ShowCustomerPreview=Müşteri önizlemeyi göster
    -ShowSupplierPreview=Show vendor preview
    +ShowSupplierPreview=Tedarikçi önizlemesini göster
     RefCustomer=Müşteri Ref.
     Currency=Para birimi
     InfoAdmin=Yöneticiler için bilgi
    @@ -646,6 +636,8 @@ SendMail=E-posta gönder
     EMail=E-posta
     NoEMail=E-posta yok
     Email=Eposta
    +AlreadyRead=Alreay read
    +NotRead=Okunmayan
     NoMobilePhone=Cep telefonu yok
     Owner=Sahibi
     FollowingConstantsWillBeSubstituted=Aşağıdaki değişmezler uygun değerlerin yerine konacaktır.
    @@ -677,7 +669,7 @@ NeverReceived=Hiç alınmadı
     Canceled=Vazgeçildi
     YouCanChangeValuesForThisListFromDictionarySetup=Bu listenin değerlerini Kurulum - Sözlükler menüsünden değiştirebilirsiniz
     YouCanChangeValuesForThisListFrom=Bu listenin değerlerini %s menüsünden değiştirebilirsiniz
    -YouCanSetDefaultValueInModuleSetup=Modül ayarlarında yeni bir kayıt oluştururken kullanılacak varsayılan değeri belirleybilirsiniz
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Renk
     Documents=Bağlı dosyalar
     Documents2=Belgeler
    @@ -703,7 +695,7 @@ DateOfSignature=İmza tarihi
     HidePassword=Komutu gizli parola ile göster
     UnHidePassword=Gerçek komutu açık parola ile göster
     Root=Kök
    -Informations=Bilgiler
    +Informations=Bilgi
     Page=Sayfa
     Notes=Notlar
     AddNewLine=Yeni satır ekle
    @@ -716,15 +708,15 @@ Merge=Birleştir
     DocumentModelStandardPDF=Standart PDF şablonu
     PrintContentArea=Yazdırılıcak Sayfanın ana içerik alanını göster
     MenuManager=Menu yöneticisi
    -WarningYouAreInMaintenanceMode=Uyarı, bakım modundasınız, şu anda uygulamayı kullanmak için yalnızca <b>%s</b> girişine izin veriliyor.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Sistem hatası
     CoreErrorMessage=Üzgünüz, bir hata oluştu. Günlükleri kontrol etmek için sistem yöneticinize başvurun veya daha fazla bilgi almak için $dolibarr_main_prod=1 devre dışı bırakın.
     CreditCard=Kredi kartı
     ValidatePayment=Ödeme doğrula
     CreditOrDebitCard=Kredi veya banka kartı
     FieldsWithAreMandatory=<b>%s</b> olan alanları zorunludur
    -FieldsWithIsForPublic=Üyelerin genel listelerinde <b>%s</b> olan alanlar gösterilir. Bunu istemiyorsanız, “genel” kutusundan işareti kaldırın.
    -AccordingToGeoIPDatabase=(GeoIP dönüşümüne göre)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Satır
     NotSupported=Desteklenmez
     RequiredField=Gerekli alan
    @@ -732,6 +724,8 @@ Result=Sonuç
     ToTest=Denem
     ValidateBefore=Bu özelliği kullanmadan önce kart doğrulanmalıdır
     Visibility=Görünürlük
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Özel
     Hidden=Gizli
     Resources=Kaynaklar
    @@ -750,6 +744,7 @@ LinkTo=Buna bağlantıla
     LinkToProposal=Teklife bağlantıla
     LinkToOrder=Siparişe bağlantıla
     LinkToInvoice=Faturaya bağlantıla
    +LinkToTemplateInvoice=Şablon faturasına bağlantı
     LinkToSupplierOrder=Tedarikçi siparişine bağlantıla
     LinkToSupplierProposal=Tedarikçi teklifine bağlantıla
     LinkToSupplierInvoice=Tedarikçi faturasına bağlantıla
    @@ -758,6 +753,7 @@ LinkToIntervention=Müdahaleye bağlantıla
     CreateDraft=Taslak oluştur
     SetToDraft=Taslağa geri dön
     ClickToEdit=Düzenlemek için tıklayın
    +ClickToRefresh=Click to refresh
     EditWithEditor=CKEditor ile düzenle
     EditWithTextEditor=Metin düzenleyicisiyle düzenle
     EditHTMLSource=HTML Kaynağını Düzenle
    @@ -772,7 +768,7 @@ ByDay=Güne göre
     BySalesRepresentative=Satış temsilcisine göre
     LinkedToSpecificUsers=Belirli bir kullanıcı kişisine bağlantılı
     NoResults=Sonuç yok
    -AdminTools=Yönetici araçları
    +AdminTools=Yönetici Araçları
     SystemTools=Sistem araçları
     ModulesSystemTools=Modül araçları
     Test=Deneme
    @@ -802,7 +798,7 @@ PrintFile=%s Dosyasını Yazdır
     ShowTransaction=Girişi banka hesabında göster
     ShowIntervention=Müdahale göster
     ShowContract=Sözleşmeye bakın
    -GoIntoSetupToChangeLogo=Logoyu değiştirmek için Giriş - Ayarlar - Firma menüsüne ya da gizlemek için Giriş - Ayarlar - Ekran menüsüne git.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Ret
     Denied=Reddedildi
     ListOf=%s listesi
    @@ -818,15 +814,15 @@ Sincerely=Saygılar
     DeleteLine=Satır sil
     ConfirmDeleteLine=Bu satırı silmek istediğinizden emin misiniz?
     NoPDFAvailableForDocGenAmongChecked=Kontrol edilen kayıtlar arasında doküman üretimi için PDF mevcut değildi
    -TooManyRecordForMassAction=Toplu eylem için çok fazla kayıt seçildi. Eylem %s kayıt listesi ile sınırlıdır.
    +TooManyRecordForMassAction=Toplu işlem için çok sayıda kayıt seçilmiş. Bu işlem %s kayıt ile sınırlıdır.
     NoRecordSelected=Seçilen kayıt yok
     MassFilesArea=Toplu işlemler tarafından yapılan dosyalar için alan
     ShowTempMassFilesArea=Toplu işlemler tarafından yapılan dosyalar alanını göster
     ConfirmMassDeletion=Toplu silme onayı
    -ConfirmMassDeletionQuestion=Seçilen %s kaydı silmek istediğinizden emin misiniz?
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=İlgili Nesneler
     ClassifyBilled=Faturalandı olarak sınıflandır
    -ClassifyUnbilled=Classify unbilled
    +ClassifyUnbilled=Faturalandırılmamış olarak sınıflandır
     Progress=İlerleme
     FrontOffice=Ön ofis
     BackOffice=Arka ofis
    @@ -841,9 +837,9 @@ Calendar=Takvim
     GroupBy=Gruplandır...
     ViewFlatList=Düz listeyi incele
     RemoveString='%s' dizisini kaldır
    -SomeTranslationAreUncomplete=Bazı diller kısmen tercüme edilmiş veya hatalar içeriyor olabilir. Eğer böyle bir durum tespit ederseniz <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> adresinden kayıt olarak dil dosyalarını düzeltebilirsiniz.
    +SomeTranslationAreUncomplete=Sunulan dillerden bazıları sadece kısmen çevrilmiş olabilir veya çeviri hatalarına sahip olabilir. Lütfen <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> adresi üzerinden kayıt yaparak dilinizdeki çeviri hatalarını düzeltmeye yardımcı olun ve yazılımın gelişimine katkıda bulunun.
     DirectDownloadLink=Direct download link (public/external)
    -DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
    +DirectDownloadInternalLink=Direkt indirme linki (giriş yapılmış olmalı ve izin gerekli)
     Download=İndir
     DownloadDocument=Belgeyi indir
     ActualizeCurrency=Para birimini güncelle
    @@ -853,7 +849,7 @@ SetMultiCurrencyCode=Para birimini ayarla
     BulkActions=Toplu eylemler
     ClickToShowHelp=Araç ipucu yardımını göstermek için tıklayın
     WebSite=Web sitesi
    -WebSites=Web siteleri
    +WebSites=Websiteleri
     WebSiteAccounts=Web sitesi hesapları
     ExpenseReport=Gider raporu
     ExpenseReports=Gider raporları
    @@ -861,16 +857,25 @@ HR=İK
     HRAndBank=İK ve Banka
     AutomaticallyCalculated=Otomatik olarak hesaplandı
     TitleSetToDraft=Taslağa geri dön
    -ConfirmSetToDraft=Taslak durumuna dönmek istediğinizden emin misiniz?
    +ConfirmSetToDraft=Taslak durumuna geri dönmek istediğinizden emin misiniz?
     ImportId=İçe aktarma ID'si
     Events=Etkinlikler
    -EMailTemplates=Eposta şablonları
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=E-posta şablonları
    +FileNotShared=File not shared to external public
     Project=Proje
     Projects=Projeler
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=Açık projeleri listele
    +NewLeadOrProject=New lead or project
     Rights=İzinler
     LineNb=Satır no.
     IncotermLabel=Uluslararası Ticaret Terimleri
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Pazartesi
     Tuesday=Salı
    @@ -907,7 +912,7 @@ Select2NotFound=Hiç sonuç bulunamadı
     Select2Enter=Gir
     Select2MoreCharacter=ya da daha fazla harf
     Select2MoreCharacters=ya da daha fazla harf
    -Select2MoreCharactersMore=<strong>Search syntax:</strong><br><kbd><strong> |</strong></kbd><kbd> OR</kbd> (a|b)<br><kbd><strong>*</strong></kbd><kbd> Any character</kbd> (a*b)<br><kbd><strong>^</strong></kbd><kbd> Start with</kbd> (^ab)<br><kbd><strong>$</strong></kbd><kbd> End with</kbd> (ab$)<br>
    +Select2MoreCharactersMore=<strong>Arama sözdizimi:</strong><br><kbd><strong> |</strong></kbd><kbd> VEYA</kbd> (a|b)<br><kbd><strong>*</strong></kbd><kbd>Herhangi bir karakter</kbd> (a*b)<br><kbd><strong>^</strong></kbd><kbd>İle başlayın (^ab)</kbd><br><kbd><strong>$</strong></kbd><kbd> İle biten</kbd> (ab$)<br>
     Select2LoadingMoreResults=Daha fazla sonuç yükleniyor...
     Select2SearchInProgress=Arama sürmekte...
     SearchIntoThirdparties=Üçüncü partiler
    @@ -918,16 +923,16 @@ SearchIntoProductsOrServices=Ürünler ya da hizmetler
     SearchIntoProjects=Projeler
     SearchIntoTasks=Görevler
     SearchIntoCustomerInvoices=Müşteri faturaları
    -SearchIntoSupplierInvoices=Vendor invoices
    +SearchIntoSupplierInvoices=Tedarikçi faturaları
     SearchIntoCustomerOrders=Müşteri siparişleri
    -SearchIntoSupplierOrders=Purchase orders
    +SearchIntoSupplierOrders=Satın alma siparişleri
     SearchIntoCustomerProposals=Müşteri teklifleri
    -SearchIntoSupplierProposals=Vendor proposals
    +SearchIntoSupplierProposals=Tedarikçi teklifleri
     SearchIntoInterventions=Müdahaleler
     SearchIntoContracts=Sözleşmeler
     SearchIntoCustomerShipments=Müşteri sevkiyatları
     SearchIntoExpenseReports=Gider raporları
    -SearchIntoLeaves=İzinler
    +SearchIntoLeaves=Leave
     CommentLink=Açıklamalar
     NbComments=Yorum sayısı
     CommentPage=Comments space
    @@ -935,7 +940,7 @@ CommentAdded=Yorum eklendi
     CommentDeleted=Yorum silindi
     Everybody=Herkes
     PayedBy=Ödeyen
    -PayedTo=Ödenen
    +PayedTo=Paid to
     Monthly=Aylık
     Quarterly=Üç aylık
     Annual=Yıllık
    @@ -944,7 +949,9 @@ Remote=Remote
     LocalAndRemote=Local and Remote
     KeyboardShortcut=Klavye kısayolu
     AssignedTo=Görevlendirilen
    -Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    -FileSharedViaALink=File shared via a link
    -
    +Deletedraft=Taslak sil
    +ConfirmMassDraftDeletion=Toplu taslak silme onayı
    +FileSharedViaALink=Dosya bir bağlantı üzerinden paylaşıldı
    +SelectAThirdPartyFirst=Önce bir üçüncü parti seçin...
    +YouAreCurrentlyInSandboxMode=Şu anda %s "sandbox" modundasınız
    +Inventory=Envanter
    diff --git a/htdocs/langs/tr_TR/modulebuilder.lang b/htdocs/langs/tr_TR/modulebuilder.lang
    index 2e70cbd2d69..77bc996625e 100644
    --- a/htdocs/langs/tr_TR/modulebuilder.lang
    +++ b/htdocs/langs/tr_TR/modulebuilder.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - loan
    -ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative <a href="%s" target="_blank">manual development is here</a>).
    +ModuleBuilderDesc=This tool must be used by only by experienced users or developers. It gives you utilities to build or edit your own module.<br>Documentation for alternative <a href="%s" target="_blank">manual development is here</a>.
     EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...)
     EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated.
     ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): <strong>%s</strong>
    @@ -12,8 +12,8 @@ ObjectKey=Nesne anahtarı
     ModuleInitialized=Module initialized
     FilesForObjectInitialized=Yeni nesne '%s' için dosyalar başlatıldı
     FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file)
    -ModuleBuilderDescdescription=Enter here all general information that describe your module.
    -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
    +ModuleBuilderDescdescription=Modülünüzü tanımlayan tüm genel bilgileri buraya girin
    +ModuleBuilderDescspecifications=You can enter here a detailed description of the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommended to use Asciidoc format (comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown).
     ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated.
     ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module.
     ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module.
    @@ -21,12 +21,12 @@ ModuleBuilderDesctriggers=This is the view of triggers provided by your module.
     ModuleBuilderDeschooks=This tab is dedicated to hooks.
     ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets.
     ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file.
    -EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost !
    -EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost !
    +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: ALL files of module AND structured data and documentation will be deleted!
    +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be deleted!
     DangerZone=Tehlikeli bölge
     BuildPackage=Build package/documentation
     BuildDocumentation=Dökümantasyon oluşturun
    -ModuleIsNotActive=This module was not activated yet. Go into %s to make it live or click here:
    +ModuleIsNotActive=This module is not activated yet. Go to %s to make it live or click here:
     ModuleIsLive=This module has been activated. Any change on it may break a current active feature.
     DescriptionLong=Uzun açıklama
     EditorName=Editörün adı
    @@ -34,7 +34,7 @@ EditorUrl=Editörün URL'si
     DescriptorFile=Modülün tanımlayıcı dosyası
     ClassFile=PHP DAO CRUD sınıfı için dosya
     ApiClassFile=PHP API sınıfı için dosya
    -PageForList=PHP page for list of record
    +PageForList=Kayıt listesi için PHP sayfası
     PageForCreateEditView=PHP page to create/edit/view a record
     PageForAgendaTab=Etkinlik sekmesi için PHP sayfası
     PageForDocumentTab=Belge sekmesi için PHP sayfası
    @@ -47,7 +47,7 @@ RegenerateClassAndSql=Erase and regenerate class and sql files
     RegenerateMissingFiles=Eksik dosyaları oluştur
     SpecificationFile=File with business rules
     LanguageFile=Dil için dosya
    -ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong> ? This will change code in PHP class but also remove column from table definition of object.
    +ConfirmDeleteProperty=Are you sure you want to delete the property <strong>%s</strong>? This will change code in PHP class but also remove column from table definition of object.
     NotNull=Not NULL
     NotNullDesc=1=Set database to NOT NULL. -1=Allow null values and force value to NULL if empty ('' or 0).
     SearchAll='Tümünü ara' için kullanılır
    @@ -66,19 +66,19 @@ PageForLib=PHP kütüphaneleri için dosya
     SqlFileExtraFields=Tamamlayıcı nitelikler için Sql dosyası
     SqlFileKey=Anahtarlar için Sql dosyası
     AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case
    -UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
    +UseAsciiDocFormat=You can use Markdown format, but it is recommended to use Asciidoc format (omparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown)
     IsAMeasure=Is a measure
     DirScanned=Taranan dizin
     NoTrigger=No trigger
     NoWidget=No widget
     GoToApiExplorer=Go to API explorer
    -ListOfMenusEntries=Menü girişlerinin listesi
    +ListOfMenusEntries=Menü kayıtlarının listesi
     ListOfPermissionsDefined=Tanımlanan izinlerin listesi
    -SeeExamples=See examples here
    +SeeExamples=Burada örneklere bakın
     EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION)
     VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only. Using a negative value means field is not shown by default on list but can be selected for viewing)
    -IsAMeasureDesc=Can the value of field be cumulated to get a total into list ? (Examples: 1 or 0)
    -SearchAllDesc=Is the field used to make a search from the quick search tool ? (Examples: 1 or 0)
    +IsAMeasureDesc=Can the value of field be cumulated to get a total into list? (Examples: 1 or 0)
    +SearchAllDesc=Is the field used to make a search from the quick search tool? (Examples: 1 or 0)
     SpecDefDesc=Enter here all documentation you want to provide with your module that is not already defined by other tabs. You can use .md or better, the rich .asciidoc syntax.
     LanguageDefDesc=Enter in this files, all the key and the translation for each language file.
     MenusDefDesc=Define here the menus provided by your module (once defined, they are visible into the menu editor %s)
    @@ -88,14 +88,15 @@ TriggerDefDesc=Define in the trigger file the code you want to execute for each
     SeeIDsInUse=See IDs in use in your installation
     SeeReservedIDsRangeHere=See range of reserved IDs
     ToolkitForDevelopers=Toolkit for Dolibarr developers
    -TryToUseTheModuleBuilder=If you have knowledge in SQL and PHP, you can try to use the native module builder wizard. Just enable the module and use the wizard by clicking the <span class="fa fa-bug"></span> on the top right menu. Warning: This is a developer feature, bad use may breaks your application.
    +TryToUseTheModuleBuilder=If you have knowledge of SQL and PHP, you may use the native module builder wizard.<br>Enable the module <strong>%s</strong> and use the wizard by clicking the <span class="fa fa-bug"></span> on the top right menu.<br>Warning: This is an advanced developer feature, do <b>not</b> experiment on your production site!
     SeeTopRightMenu=See <span class="fa fa-bug"></span> on the top right menu
    -AddLanguageFile=Add language file
    +AddLanguageFile=Dil dosyası ekle
     YouCanUseTranslationKey=You can use here a key that is the translation key found into language file (see tab "Languages")
     DropTableIfEmpty=(Delete table if empty)
     TableDoesNotExists=The table %s does not exists
     TableDropped=Table %s deleted
     InitStructureFromExistingTable=Build the structure array string of an existing table
    -UseAboutPage=Disallow the about page
    -UseDocFolder=Disallow the documentation folder
    +UseAboutPage=Hakkında sayfasını devre dışı bırak
    +UseDocFolder=Dökümantasyon klasörünü devre dışı bırak
     UseSpecificReadme=Use a specific ReadMe
    +RealPathOfModule=Modülün gerçek yolu
    diff --git a/htdocs/langs/tr_TR/oauth.lang b/htdocs/langs/tr_TR/oauth.lang
    index afd5ec1247d..d51609c0731 100644
    --- a/htdocs/langs/tr_TR/oauth.lang
    +++ b/htdocs/langs/tr_TR/oauth.lang
    @@ -14,7 +14,7 @@ DeleteAccess=Belirteçi silmek için burayı tıkla
     UseTheFollowingUrlAsRedirectURI=OAuth sağlayıcınız üzerinde kimlik oluştururken Yönlendirme URI olarak aşağıdaki URL'yi kullanın:
     ListOfSupportedOauthProviders=OAuth2 sağlayıcınız tarafınıdan verilen kimlik bilgilerini burada girin. Burada yalnızca desteklenen OAuth2 sağlayıcılar görünür. Bu ayarlar OAuth2 kimlik doğrulaması gerektiren diğer modüller tarafından da kullanılabilir.
     OAuthSetupForLogin=Page to generate an OAuth token
    -SeePreviousTab=See previous tab
    +SeePreviousTab=Önceki sekmeye bakın
     OAuthIDSecret=OAuth ID and Secret
     TOKEN_REFRESH=Belirteç Yenilemesi Mevcuttur
     TOKEN_EXPIRED=Token expired
    diff --git a/htdocs/langs/tr_TR/orders.lang b/htdocs/langs/tr_TR/orders.lang
    index a81da61f28e..222d4128d62 100644
    --- a/htdocs/langs/tr_TR/orders.lang
    +++ b/htdocs/langs/tr_TR/orders.lang
    @@ -1,6 +1,6 @@
     # Dolibarr language file - Source file is en_US - orders
     OrdersArea=Müşteri siparişleri alanı
    -SuppliersOrdersArea=Purchase orders area
    +SuppliersOrdersArea=Satın alma siparişleri alanı
     OrderCard=Sipariş kartı
     OrderId=Sipariş Kimliği
     Order=Sipariş
    @@ -13,18 +13,18 @@ OrderToProcess=İşlenecek sipariş
     NewOrder=Yeni sipariş
     ToOrder=Sipariş yap
     MakeOrder=Sipariş yap
    -SupplierOrder=Purchase order
    -SuppliersOrders=Purchase orders
    -SuppliersOrdersRunning=Current purchase orders
    +SupplierOrder=Satın alma emri
    +SuppliersOrders=Satın alma siparişleri
    +SuppliersOrdersRunning=Mevcut satın alma siparişleri
     CustomerOrder=Müşteri siparişi
     CustomersOrders=Müşteri Siparişleri
     CustomersOrdersRunning=Geçerli müşteri siparişleri
    -CustomersOrdersAndOrdersLines=Müşteri siparişleri ve sipariş kalemleri
    +CustomersOrdersAndOrdersLines=Müşteri siparişleri ve sipariş detayları
     OrdersDeliveredToBill=Faturaya gönderilen müşteri siparişleri
     OrdersToBill=Teslim edilecek müşteri siparişleri
     OrdersInProcess=İşlemde olan müşteri siparişleri
     OrdersToProcess=İşlenecek müşteri siparişleri
    -SuppliersOrdersToProcess=Purchase orders to process
    +SuppliersOrdersToProcess=İşlenecek satın alma siparişleri
     StatusOrderCanceledShort=İptal edilmiş
     StatusOrderDraftShort=Taslak
     StatusOrderValidatedShort=Doğrulanmış
    @@ -75,20 +75,20 @@ ShowOrder=Siparişi göster
     OrdersOpened=İşlenecek siparişler
     NoDraftOrders=Taslak sipariş yok
     NoOrder=Sipariş yok
    -NoSupplierOrder=No purchase order
    +NoSupplierOrder=Satın alma siparişi yok
     LastOrders=Son %s müşteri siparişi
     LastCustomerOrders=Son %s müşteri siparişi
    -LastSupplierOrders=Latest %s purchase orders
    +LastSupplierOrders=En son %s satın alma siparişi
     LastModifiedOrders=Değiştirilen son %s sipariş
     AllOrders=Bütün siparişler
     NbOfOrders=Sipariş sayısı
     OrdersStatistics=Sipariş istatistikleri
    -OrdersStatisticsSuppliers=Purchase order statistics
    +OrdersStatisticsSuppliers=Satın alma siparişi istatistikleri
     NumberOfOrdersByMonth=Aylık sipariş sayısı
     AmountOfOrdersByMonthHT=Aylık sipariş tutarı (vergisiz net)
     ListOfOrders=Sipariş listesi
     CloseOrder=Siparişi kapat
    -ConfirmCloseOrder=Bu siparişi "teslim edildi" şeklinde ayarlamak istediğinizden emin misiniz? Bir sipariş teslim edildikten sonra "faturalandı" olarak ayarlanabilir.
    +ConfirmCloseOrder=Bu siparişi teslim edildi olarak ayarlamak istediğinizden emin misiniz? Bir sipariş teslim edildiğinde, faturalandırıldı olarak ayarlanabilir.
     ConfirmDeleteOrder=Bu siparişi silmek istediğinizden emin misiniz?
     ConfirmValidateOrder=Bu siparişi <b>%s</b> adı altında onaylamak istediğinizden emin misiniz?
     ConfirmUnvalidateOrder=<b>%s</b> siparişini taslak durumuna geri yüklemek istediğinizden emin misiniz?
    @@ -97,11 +97,11 @@ ConfirmMakeOrder=Are you sure you want to confirm you made this order on <b>%s</
     GenerateBill=Fatura oluştur
     ClassifyShipped=Teslim edildi sınıflandır
     DraftOrders=Taslak siparişler
    -DraftSuppliersOrders=Draft purchase orders
    +DraftSuppliersOrders=Taslak satın alma siparişleri
     OnProcessOrders=İşlemdeki siparişler
     RefOrder=Sipariş ref.
     RefCustomerOrder=Müşterinin sipariş ref.
    -RefOrderSupplier=Ref. order for vendor
    +RefOrderSupplier=Satıcı için referans siparişi
     RefOrderSupplierShort=Ref. order vendor
     SendOrderByMail=Siparişi postayla gönder
     ActionsOnOrder=Sipariş etkinlikleri
    @@ -116,7 +116,7 @@ DispatchSupplierOrder=%s tedarikçi siparişini al
     FirstApprovalAlreadyDone=İlk onay zaten yapılmış
     SecondApprovalAlreadyDone=İkinci onaylama zaten yapılmış
     SupplierOrderReceivedInDolibarr=Purchase Order %s received %s
    -SupplierOrderSubmitedInDolibarr=Purchase Order %s submited
    +SupplierOrderSubmitedInDolibarr=Purchase Order %s submitted
     SupplierOrderClassifiedBilled=Purchase Order %s set billed
     OtherOrders=Diğer siparişler
     ##### Types de contacts #####
    @@ -127,7 +127,7 @@ TypeContact_commande_external_SHIPPING=Müşteri nakliye yetkilisi
     TypeContact_commande_external_CUSTOMER=Müşteri sipariş izleme yetkilisi
     TypeContact_order_supplier_internal_SALESREPFOLL=Representative following-up purchase order
     TypeContact_order_supplier_internal_SHIPPING=Sevkiyat izleme temsilcisi
    -TypeContact_order_supplier_external_BILLING=Vendor invoice contact
    +TypeContact_order_supplier_external_BILLING=Tedarikçi faturası kişisi
     TypeContact_order_supplier_external_SHIPPING=Vendor shipping contact
     TypeContact_order_supplier_external_CUSTOMER=Vendor contact following-up order
     Error_COMMANDE_SUPPLIER_ADDON_NotDefined=COMMANDE_SUPPLIER_ADDON değişmezi tanımlanmamış
    @@ -141,6 +141,7 @@ OrderByWWW=Çevrimiçi
     OrderByPhone=Telefon
     # Documents models
     PDFEinsteinDescription=Bir tam sipariş modeli (logo. ..)
    +PDFEratostheneDescription=Bir tam sipariş modeli (logo. ..)
     PDFEdisonDescription=Basit bir sipariş modeli
     PDFProformaDescription=Eksiksiz bir proforma fatura (logo...)
     CreateInvoiceForThisCustomer=Sipariş Faturala
    diff --git a/htdocs/langs/tr_TR/other.lang b/htdocs/langs/tr_TR/other.lang
    index 23fc9f59bf6..89eeb617c67 100644
    --- a/htdocs/langs/tr_TR/other.lang
    +++ b/htdocs/langs/tr_TR/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Güvenlik kodu
     NumberingShort=N°
     Tools=Araçlar
     TMenuTools=Araçlar
    -ToolsDesc=Diğer menü girişlerine dahil olmayan çeşitli tüm araçlar burada toplanmıştır. <br><br>Tüm araçlara sol menüde ulaşılabilir.
    +ToolsDesc=Diğer menü girişlerinde bulunmayan tüm araçlar burada gruplandırılmıştır.<br>Tüm araçlara sol menüden erişilebilir.
     Birthday=Doğumgünü
     BirthdayDate=Doğumgünü tarihi
     DateToBirth=Doğum Tarihi
    @@ -23,7 +23,7 @@ MessageForm=Online ödeme formundaki mesaj
     MessageOK=Doğrulama sayfası mesajı
     MessageKO=İptal edilen ödeme sayfası mesajı
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Fatura tarihi yılı
     PreviousYearOfInvoice=Fatura tarihinden önceki yıl
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Fatura tarihinden sonraki yıl
     DateNextInvoiceBeforeGen=Bir sonraki faturanın tarihi (oluşturulmadan önce)
     DateNextInvoiceAfterGen=Bir sonraki faturanın tarihi (oluşturulduktan sonra)
     
    -Notify_FICHINTER_ADD_CONTACT=Müdahaleye kişi eklendi
    -Notify_FICHINTER_VALIDATE=Müdahale doğrulandı
    -Notify_FICHINTER_SENTBYMAIL=Müdahale posta ile gönderildi
     Notify_ORDER_VALIDATE=Müşteri siparişi onaylandı
     Notify_ORDER_SENTBYMAIL=Müşteri siparişi posta ile gönderildi
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Tedarikçi siparişi posta ile gönderildi
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Tedarikçi siparişi kaydedildi.
     Notify_ORDER_SUPPLIER_APPROVE=Tedarikçi siparişi onaylandı
     Notify_ORDER_SUPPLIER_REFUSE=Tedarikçi siparişi reddedildi
     Notify_PROPAL_VALIDATE=Müşteri teklifi onaylandı
    -Notify_PROPAL_CLOSE_SIGNED=Müşteri teklifi kapalı imzalı
    -Notify_PROPAL_CLOSE_REFUSED=Müşteri teklifi kapalı reddedildi
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Teklif posta ile gönderildi
     Notify_WITHDRAW_TRANSMIT=Havale çekme
     Notify_WITHDRAW_CREDIT=Kredi çekme
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Üçüncü parti oluşturuldu
     Notify_COMPANY_SENTBYMAIL=Eposta üçüncü parti kartından gönderildi
     Notify_BILL_VALIDATE=Müşteri faturası onaylandı
     Notify_BILL_UNVALIDATE=Müşteri faturasından doğrulama kaldırıldı
    -Notify_BILL_PAYED=Müşteri faturası ödendi
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Müşteri faturası iptal edildi
     Notify_BILL_SENTBYMAIL=Müşteri faturası postayla gönderildi
     Notify_BILL_SUPPLIER_VALIDATE=Tedarikçi faturası onaylandı
    -Notify_BILL_SUPPLIER_PAYED=Tedarikçi faturası ödendi
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Tedarikçi faturası posta ile gönderildi
     Notify_BILL_SUPPLIER_CANCELED=Tefarikçi faturası iptal edildi
     Notify_CONTRACT_VALIDATE=Sözleşme onaylandı
     Notify_FICHEINTER_VALIDATE=Müdahele onaylandı
    +Notify_FICHINTER_ADD_CONTACT=Müdahaleye kişi eklendi
    +Notify_FICHINTER_SENTBYMAIL=Müdahale posta ile gönderildi
     Notify_SHIPPING_VALIDATE=Sevkiyat onaylandı
     Notify_SHIPPING_SENTBYMAIL=Sevkiyat posta ile gönderildi
     Notify_MEMBER_VALIDATE=Üye onaylandı
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Proje oluşturma
     Notify_TASK_CREATE=Görev oluşturuldu
     Notify_TASK_MODIFY=Görev bilgileri değiştirildi
     Notify_TASK_DELETE=Görev silindi
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=%s modülü ayarlarına bak
     NbOfAttachedFiles=Eklenen dosya/belge sayısı
     TotalSizeOfAttachedFiles=Eklenen dosyaların/belgelerin toplam boyutu
     MaxSize=Ençok boyut
     AttachANewFile=Yeni bir dosya/belge ekle
     LinkedObject=Bağlantılı nesne
    -NbOfActiveNotifications=Bildirim sayısı (alıcı epostaları sayısı)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nBu, __EMAIL__ adresine gönderilen bir test mailidir.\nİki satır bir satırbaşı ile birbirinden ayrılır.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nBu bir <b>test</b> mailidir (test kelimesi kalın olmalıdır). <br> İki satır bir satırbaşı ile birbirinden ayrılır. <br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nBurada fiyat talebini bulacaksınız __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nBurada siparişi bulacaksınız __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nBurada siparişimizi bulacaksınız __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nBurada faturayı bulacaksınız __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nBurada sevkiyatı bulacaksınız __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nBurada müdahaleyi bulacaksınız __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr, çeşitli iş modüllerini destekleyen kompakt bir ERP/CRM çözümüdür. Tüm modüllerin sergilendiği bir demonun mantığı yoktur, çünkü böyle bir senaryo asla gerçekleşmez (birkaç yüz adet mevcut). Bu nedenle birkaç demo profili vardır.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Bu seçeneği kullanmak için PHP nizdeki GD kütüphanesini
     ProfIdShortDesc=<b>Uzman no %s</b> üçüncü parti ülkesine bağlı bir bilgidir.<br>Örneğin, <b>%s</b> ülkesi için kodu<b>%s</b>dir.
     DolibarrDemo=Dolibarr ERP/CRM demosu
     StatsByNumberOfUnits=Ürün/hizmet miktarının toplamı için istatistikler
    -StatsByNumberOfEntities=Yönlendiren varlıkların sayı istatistikleri (Fatura veya sipariş sayısı ...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Teklif sayısı
     NumberOfCustomerOrders=Müşteri siparişlerinin sayısı
     NumberOfCustomerInvoices=Müşteri faturalarının sayısı
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Müşteri faturalarındaki birim sayısı
     NumberOfUnitsSupplierProposals=Tedarikçi tekliflerinde yer alan birim sayısı
     NumberOfUnitsSupplierOrders=Tedarikçi siparişlerindeki birim sayısı
     NumberOfUnitsSupplierInvoices=Tedarikçi faturalarındaki birim sayısı
    -EMailTextInterventionAddedContact=Bir yeni müdahale olan %s size atandı
    +EMailTextInterventionAddedContact=Yeni bir müdahale %s size atandı.
     EMailTextInterventionValidated=Müdahele %s doğrulanmıştır.
     EMailTextInvoiceValidated=Fatura %s doğrulanmıştır.
    +EMailTextInvoicePayed=Fatura %s ödendi.
     EMailTextProposalValidated=Teklif % doğrulanmıştır.
     EMailTextProposalClosedSigned=Teklif %s kapalı imzalandı.
     EMailTextOrderValidated=Sipariş %s doğrulanmıştır.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=%s Siparişi %s tarafından onaylanmıştır.
     EMailTextOrderRefused=%s Teklifi reddedilmiştir.
     EMailTextOrderRefusedBy=%s Teklifi %tarafından reddedilmiştir.
     EMailTextExpeditionValidated=%s sevkiyatı onaylandı.
    +EMailTextExpenseReportValidated=Gider raporu %s doğrulandı.
    +EMailTextExpenseReportApproved=Gider raporu %s onaylandı.
    +EMailTextHolidayValidated=İzin talebi %s doğrulandı.
    +EMailTextHolidayApproved=İzin talebi %s onaylandı.
     ImportedWithSet=Ver setinin içeaktarımı
     DolibarrNotification=Otomatik bilgilendirme
     ResizeDesc=Yeni genişliği <b>VEYA</b> yeni yüksekliği gir. Yeniden boyutlandırma sırasında oran kotunacaktır...
    @@ -204,7 +214,7 @@ NewLength=Yeni genişlik
     NewHeight=Yeni yükseklik
     NewSizeAfterCropping=Kırpmadan sonraki yeni boyut
     DefineNewAreaToPick=Alınacak görüntü üzerinde yeni alan tanımla (görüntü üzerine sol klikle sonra karşı köşeye ulaşana kadar sürükle)
    -CurrentInformationOnImage=Bu araç bir görüntüyü yeniden boyutlandırmanızı veya kırpmanızı sağlar. Bu, düzenlenmiş güncel görüntünün bilgisidir
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Görüntü düzenleyici
     YouReceiveMailBecauseOfNotification=Bu mesajı aldınız çünkü epostanız %s e ait %s yazılımında belirli etkinlikler hakkında bilgilendirilecekler listesine eklenmiştir.
     YouReceiveMailBecauseOfNotification2=Bu etkinlik şudur:
    @@ -219,7 +229,7 @@ FileIsTooBig=Dosyalar çok büyük
     PleaseBePatient=Lütfen sabırlı olun...
     NewPassword=Yeni şifre
     ResetPassword=Şifreyi sıfırla
    -RequestToResetPasswordReceived=A request to change your password has been received.
    +RequestToResetPasswordReceived=Şifreni değiştirmek için bir talep alındı.
     NewKeyIs=Oturum açmak için yeni anahtarınız
     NewKeyWillBe=Yazılımda oturum açmak için yeni anahtarınız bu olacaktır
     ClickHereToGoTo=%s e gitmek için buraya tıkla
    @@ -234,7 +244,11 @@ PermissionsDelete=İzinler kaldırıldı
     YourPasswordMustHaveAtLeastXChars=Şifreniz en az <strong>%s</strong> karakter içermelidir
     YourPasswordHasBeenReset=Şifreniz başarılı bir şekilde sıfırlandı
     ApplicantIpAddress=Başvuru sahibinin IP adresi
    -SMSSentTo=SMS sent to %s
    +SMSSentTo=SMS şuna gönderildi: %s
    +MissingIds=Eksik ID'ler
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Dışaaktar alanı
    @@ -248,5 +262,7 @@ WebsiteSetup=Websitesi modülü ayarları
     WEBSITE_PAGEURL=Sayfanın URL si
     WEBSITE_TITLE=Unvan
     WEBSITE_DESCRIPTION=Açıklama
    +WEBSITE_IMAGE=Görüntü
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Anahtar kelimeler
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/tr_TR/paybox.lang b/htdocs/langs/tr_TR/paybox.lang
    index de5a99e2622..8a5d7be7ae3 100644
    --- a/htdocs/langs/tr_TR/paybox.lang
    +++ b/htdocs/langs/tr_TR/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox modülü kurulumu
     PayBoxDesc=Bu modül <a href="http://www.paybox.com" target="_blank">Paybox</a> üzerinden müşteriler tarafından ödeme yapılmasını sağlar. Bu bir ücretsiz ödeme veya belirli bir Dolibarr nesnesine (fatura, siparş,…) bir ödeme yapmak için kullanılabilir
     FollowingUrlAreAvailableToMakePayments=Aşağıdaki URL'ler bir müşteriye Dolibarr nesnelerine bir ödeme yapmak için bir sayfa sunmak için kullanılabilir
     PaymentForm=Ödeme Formu
    -WelcomeOnPaymentPage=Çevrimiçi ödeme hizmetimize hoşgeldiniz
    +WelcomeOnPaymentPage=Çevrimiçi ödeme hizmetimize hoş geldiniz
     ThisScreenAllowsYouToPay=Bu ekran %s için çevrimiçi bir ödeme yapmanızı sağlar
     ThisIsInformationOnPayment=Bu yapılacak ödeme hakkında bilgidir
     ToComplete=Tamamlanacak
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=Bir müşteri faturası için çevrimiçi
     ToOfferALinkForOnlinePaymentOnContractLine=Bir sözleşme satırı için çevrimiçi %s ödemesi kullanıcı arayüzü sunan URL
     ToOfferALinkForOnlinePaymentOnFreeAmount=Bir serbest ödeme için çevrimiçi %s ödemesi kullanıcı arayüzü sunan URL
     ToOfferALinkForOnlinePaymentOnMemberSubscription=Bir müşteri üye aboneliği çevrimiçi %s ödemesi kullanıcı arayüzü sunan URL
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=Ayrıca; o URL'lerden herhangi birine <b>&tag=<i>value</i></b> url parametresini ekleyerek kendi ödeme açıklamanızın etiketini girebilirsiniz.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Paybox tarafından doğrulandığında ödemenin otomatik olarak oluşturulması için PayBox'ı <b>%s</b> url'si ile ayarlayın.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=Bu sayfa ödeme kaydedilmiş olduğunu onaylar. Teşekkür ederim.
    -YourPaymentHasNotBeenRecorded=Ödemeniz kaydedimelmiştir  ve işlem iptal edilmiştir. Teşekkür ederiz.
    +YourPaymentHasNotBeenRecorded=Ödemeniz kaydedilmedi ve işlem iptal edildi. Teşekkür ederiz.
     AccountParameter=Hesap parametreleri
     UsageParameter=Kullanım parametreleri
     InformationToFindParameters=%s Hesap bilgilerinizi bulmanız için yardım
    diff --git a/htdocs/langs/tr_TR/paypal.lang b/htdocs/langs/tr_TR/paypal.lang
    index 700ebd55da1..800a9202489 100644
    --- a/htdocs/langs/tr_TR/paypal.lang
    +++ b/htdocs/langs/tr_TR/paypal.lang
    @@ -1,20 +1,19 @@
     # Dolibarr language file - Source file is en_US - paypal
     PaypalSetup=PayPal modülü kurulumu
    -PaypalDesc=Bu modül  <a href="http://www.paypal.com" target="_blank">PayPal</a> üzerinden müşteriler tarafından ödeme yapılmasını sağlar. Bu bir ücretsiz ödeme veya belirli bir Dolibarr nesnesine (fatura, siparş,…) bir ödeme yapmak için kullanılabilir
    -PaypalOrCBDoPayment=PayPal ile öde (Kredi Kartı veya Paypal)
    -PaypalDoPayment=Paypal ile ödeme
    +PaypalDesc=This module allows payment on <a href="http://www.paypal.com" target="_blank">PayPal</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
    +PaypalOrCBDoPayment=PayPal ile öde (Kredi Kartı veya PayPal)
    +PaypalDoPayment=PayPal ile öde
     PAYPAL_API_SANDBOX=Test/sandbox modu
     PAYPAL_API_USER=API kullanıcı adı
     PAYPAL_API_PASSWORD=API parolası
     PAYPAL_API_SIGNATURE=API imzası
     PAYPAL_SSLVERSION=Curl SSL Sürümü
    -PAYPAL_API_INTEGRAL_OR_PAYPALONLY="Dahili" (kredi kartı+paypal) ya da sadece "Paypal" ödemesi sunar
    +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Offer payment "integral" (Credit card+PayPal) or "PayPal" only
     PaypalModeIntegral=Tümlev
     PaypalModeOnlyPaypal=Yalnızca PayPal
    -ONLINE_PAYMENT_CSS_URL=Online ödeme sayfasındaki CSS stil sayfasının isteğe bağlı URL'si
    +ONLINE_PAYMENT_CSS_URL=Optional URL of CSS stylesheet on online payment page
     ThisIsTransactionId=Bu işlem kimliğidir: <b>%s</b>
    -PAYPAL_ADD_PAYMENT_URL=Posta yoluyla bir belge gönderdiğinizde, Paypal ödeme url'sini ekleyin
    -YouAreCurrentlyInSandboxMode=Şu anda %s "sandbox" modundasınız
    +PAYPAL_ADD_PAYMENT_URL=Add the url of PayPal payment when you send a document by mail
     NewOnlinePaymentReceived=Yeni online ödeme alındı
     NewOnlinePaymentFailed=Yeni online ödeme denendi ancak başarısız oldu
     ONLINE_PAYMENT_SENDEMAIL=Bir ödemeden sonra uyarı Epostası (başarılı ya da değil)
    @@ -28,7 +27,8 @@ ShortErrorMessage=Kısa Hata Mesajı
     ErrorCode=Hata Kodu
     ErrorSeverityCode=Hata Önem Kodu
     OnlinePaymentSystem=Online ödeme sistemi
    -PaypalLiveEnabled=Paypal canlı etkin (aksi takdirde test/sanal alan modu)
    -PaypalImportPayment=Import Paypal payments
    +PaypalLiveEnabled=PayPal live enabled (otherwise test/sandbox mode)
    +PaypalImportPayment=Import PayPal payments
     PostActionAfterPayment=Post actions after payments
     ARollbackWasPerformedOnPostActions=A rollback was performed on all Post actions. You must complete post actions manually if they are necessary.
    +ValidationOfPaymentFailed=Validation of payment has failed
    diff --git a/htdocs/langs/tr_TR/projects.lang b/htdocs/langs/tr_TR/projects.lang
    index 04ec0ebc21b..acdf52aac7d 100644
    --- a/htdocs/langs/tr_TR/projects.lang
    +++ b/htdocs/langs/tr_TR/projects.lang
    @@ -29,18 +29,18 @@ NewProject=Yeni proje
     AddProject=Proje oluştur
     DeleteAProject=Bir proje sil
     DeleteATask=Bir görev sil
    -ConfirmDeleteAProject=Are you sure you want to delete this project?
    -ConfirmDeleteATask=Are you sure you want to delete this task?
    +ConfirmDeleteAProject=Bu projeyi silmek istediğinizden emin misiniz?
    +ConfirmDeleteATask=Bu görevi silmek istediğinizden emin misiniz?
     OpenedProjects=Açık projeler
     OpenedTasks=Açık görevler
    -OpportunitiesStatusForOpenedProjects=Projelerin durumuna göre fırsat tutarı
    -OpportunitiesStatusForProjects=Projelerin durumuna göre fırsat tutarı
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Proje göster
     ShowTask=Görev göster
     SetProject=Proje ayarla
     NoProject=Tanımlı ya da sahip olunan hiçbir proje yok
    -NbOfProjects=Proje sayısı
    -NbOfTasks=Görev sayısı
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Harcanan süre
     TimeSpentByYou=Tarafınızdan harcanan süre
     TimeSpentByUser=Kullanıcı tarafından harcanan süre
    @@ -79,18 +79,19 @@ GoToListOfTimeConsumed=Tüketilen süre listesine git
     GoToListOfTasks=Görevler listesine git
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Proje ile ilgili tekliflerin listesi
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=Proje ile ilgili müşteri siparişlerinin listesi
    +ListInvoicesAssociatedProject=Proje ile ilgili müşteri faturalarının listesi
    +ListPredefinedInvoicesAssociatedProject=Proje ile ilgili müşteri şablon faturalarının listesi
    +ListSupplierOrdersAssociatedProject=Proje ile ilgili tedarikçi siparişlerinin listesi
    +ListSupplierInvoicesAssociatedProject=Proje ile ilgili tedarikçi faturalarının listesi
     ListContractAssociatedProject=Proje ile ilgili sözleşmelerin listesi
    -ListShippingAssociatedProject=Projeyle ilişkili nakliyelerin listesi
    +ListShippingAssociatedProject=List of shippings related to the project
     ListFichinterAssociatedProject=Proje ile ilgili müdahalelerin listesi
    -ListExpenseReportsAssociatedProject=Bu proje ile ilişkili gider raporları listesi
    -ListDonationsAssociatedProject=Bu proje ile ilişkilendirilmiş bağış listesi
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=Proje ile ilgili çeşitli ödemeler listesi
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
     ListActionsAssociatedProject=Proje ile ilgili etkinliklerin listesi
     ListTaskTimeUserProject=Projelere harcanan sürelerin listesi
     ListTaskTimeForTask=List of time consumed on task
    @@ -106,12 +107,12 @@ NotOwnerOfProject=Bu özel projenin sahibi değil
     AffectedTo=Tahsis edilen
     CantRemoveProject=Bu proje kaldırılamıyor çünkü Bazı diğer nesneler tarafından başvurulUYOR (fatura, sipariş veya diğerleri). Başvuru sekmesine bakın.
     ValidateProject=Proje doğrula
    -ConfirmValidateProject=Are you sure you want to validate this project?
    +ConfirmValidateProject=Bu projeyi doğrulamak istediğinizden emin misiniz?
     CloseAProject=Proje kapat
    -ConfirmCloseAProject=Are you sure you want to close this project?
    +ConfirmCloseAProject=Bu projeyi kapatmak istediğinizden emin misiniz?
     AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it)
     ReOpenAProject=Proje aç
    -ConfirmReOpenAProject=Are you sure you want to re-open this project?
    +ConfirmReOpenAProject=Bu projeyi tekrar açmak istediğinizden emin misiniz?
     ProjectContact=Proje ilgilileri
     TaskContact=Task contacts
     ActionsOnProject=Proje etkinlikleri
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Diğer üçüncü partiye bağlantılı
     TaskIsNotAssignedToUser=Görev kullanıcıya atanmadı. Görevi şimdi atamak için '<strong>%s</strong>' düğmesini kullanın.
     ErrorTimeSpentIsEmpty=Harcanan süre boş
     ThisWillAlsoRemoveTasks=Bu eylem aynı zamanda projenin tüm görevlerini (şu andaki <b>%s</b> görevleri) ve tüm harcanan süre girişlernii siler .
    -IfNeedToUseOhterObjectKeepEmpty=Eğer bazı nesneler başka bir üçüncü partiye aitse  (fatura, sipariş, ...), oluşturulması  için bu projeye bağlanmalıdır, projenin birden çok üçüncü partiye bağlı olması için bunu boş bırakın.
    +IfNeedToUseOtherObjectKeepEmpty=Eğer bazı nesneler başka bir üçüncü partiye aitse  (fatura, sipariş, ...), oluşturulması  için bu projeye bağlanmalıdır, projenin birden çok üçüncü partiye bağlı olması için bunu boş bırakın.
     CloneProject=Proje klonla
     CloneTasks=Görev klonla
     CloneContacts=Kişi klonla
    @@ -136,21 +137,21 @@ CloneNotes=Not klonla
     CloneProjectFiles=Birleşik proje dosyalarını kopyala
     CloneTaskFiles=Birleşik görev(ler) dosyalarını kopyala (görev(ler) kopyalanmışsa)
     CloneMoveDate=Update project/tasks dates from now?
    -ConfirmCloneProject=Are you sure to clone this project?
    +ConfirmCloneProject=Bu projeyi kopyalamak istediğinizden emin misiniz?
     ProjectReportDate=Change task dates according to new project start date
     ErrorShiftTaskDate=Görev tarihini yeni proje başlama tarihine göre kaydırmak olası değil
     ProjectsAndTasksLines=Projeler ve görevler
     ProjectCreatedInDolibarr=%s projesi oluşturuldu
     ProjectValidatedInDolibarr=Project %s validated
    -ProjectModifiedInDolibarr=Project %s modified
    +ProjectModifiedInDolibarr=Proje %s değiştirildi
     TaskCreatedInDolibarr=%s görev oluşturuldu
     TaskModifiedInDolibarr=%s görev değiştirildi
     TaskDeletedInDolibarr=%s görev silindi
    -OpportunityStatus=Fırsat durumu
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Fırs. durumu
    -OpportunityProbability=Fırsat olabilirliği
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Fırs. olabil.
    -OpportunityAmount=Fırsat tutarı
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Fırs. tutarı
     OpportunityAmountAverageShort=Ortalama Fırsat tutarı
     OpportunityAmountWeigthedShort=Ağırlıklı Fırsat tutarı
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Katılımcı
     SelectElement=Öğe seç
     AddElement=Öğeye bağlan
     # Documents models
    -DocumentModelBeluga=Bağlantılı nesnelere gözatmak için proje şablonu
    -DocumentModelBaleine=Görevler proje raporu şablonu
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planlı işyükü
     PlannedWorkloadShort=İşyükü
     ProjectReferers=İlgili öğeler
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=İlgili olarak bu kullanıcı olan projeler
     TasksWithThisUserAsContact=Bu kullanıcıya atanmış görevler
     ResourceNotAssignedToProject=Projeye atanmamış
     ResourceNotAssignedToTheTask=Bu göreve atanmamış
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Görevi bana ata
    @@ -189,25 +192,26 @@ AssignTaskToUser=Görevi %s kullanıcısına ata
     SelectTaskToAssign=Atanacak görevi seçin...
     AssignTask=Ata
     ProjectOverview=Genel bakış
    -ManageTasks=Görev ve süre izlemek için projeleri kullan
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Adayları/fırsatları izlemek için projeleri kullan
    -ProjectNbProjectByMonth=Aylık oluşturulan proje sayısı
    -ProjectNbTaskByMonth=Aylık oluşturulan görevlerin sayısı
    -ProjectOppAmountOfProjectsByMonth=Aylık fırsat tutarı
    -ProjectWeightedOppAmountOfProjectsByMonth=Aylık fırsat ağırlıklı tutarı
    -ProjectOpenedProjectByOppStatus=Fırsat durumuna göre açık proje/aday
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Projeler/adaylar için istatistikler
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Atanan görevler. Bu göreve süre girmek mümkün olmalı.
     IdTaskTime=Görev zamanı kimliği
     YouCanCompleteRef=Eğer referansı bazı bilgilerle tamamlamak isterseniz (arama süzgeçleri olarak kullanmak üzere), ayırmak için bir - karakteri eklemeniz önerilir, böylece otomatik numaralandırma sonraki projeler için de çalışacaktır. Örneğin; %s-ABC. Etikete arama anahtarları da eklemeyi yeğleyebilirsiniz. Ama en iyisi özel bir alan olarak da adlandırılan tamamlayıcı özellikler eklemek olabilir.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Yalnızca fırsatlar
    -OpenedOpportunitiesShort=Açık fırsatlar
    -NotAnOpportunityShort=Bir fırsat değil
    -OpportunityTotalAmount=Fırsatlar toplam tutarı
    -OpportunityPonderatedAmount=Fırsatların ağırlık tutarı
    -OpportunityPonderatedAmountDesc=Olasılıkla ölçülen fırsat tutarı
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Araştırma
     OppStatusQUAL=Nitelendirme
     OppStatusPROPO=Teklif
    @@ -219,12 +223,14 @@ Budget=Bütçe
     AllowToLinkFromOtherCompany=Allow to link project from other company<br><br><u>Supported values :</u><br>- Keep empty: Can link any project of the company (default)<br>- "all" : Can link any projects, even project of other companies<br>- A list of thirdparty id separated with commas : Can link all projects of these thirdparty defined (Example : 123,4795,53)<br>
     LatestProjects=Son %s proje
     LatestModifiedProjects=Latest %s modified projects
    -OtherFilteredTasks=Other filtered tasks
    +OtherFilteredTasks=Diğer filtrelenmiş görevler
     NoAssignedTasks=No assigned tasks (assign project/tasks the current user from the top select box to enter time on it)
     # Comments trans
    -AllowCommentOnTask=Allow user comments on tasks
    +AllowCommentOnTask=Görevlere kullanıcı yorumlarına izin ver
     AllowCommentOnProject=Allow user comments on projects
     DontHavePermissionForCloseProject=You do not have permissions to close the project %s
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/tr_TR/propal.lang b/htdocs/langs/tr_TR/propal.lang
    index 7360e82b13f..d5ef01b45d0 100644
    --- a/htdocs/langs/tr_TR/propal.lang
    +++ b/htdocs/langs/tr_TR/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=İmzalı(faturalanacak)
     PropalStatusNotSigned=İmzalanmamış (kapalı)
     PropalStatusBilled=Faturalanmış
     PropalStatusDraftShort=Taslak
    -PropalStatusValidatedShort=Doğrulandı
    +PropalStatusValidatedShort=Doğrulanmış (açık)
     PropalStatusClosedShort=Kapalı
     PropalStatusSignedShort=İmzalı
     PropalStatusNotSignedShort=İmzalanmamış
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=%s teklifi bulunamadı
     AddToDraftProposals=Taslak teklife ekle
     NoDraftProposals=Taslak teklif yok
     CopyPropalFrom=Varolan teklifi kopyalayarak teklif oluştur
    -CreateEmptyPropal=Boş teklif oluştur veya ürünler/hizmetler listesinden oluştur
    +CreateEmptyPropal=Boş veya Ürünler/Hizmetler listesinden ticari teklif oluştur
     DefaultProposalDurationValidity=Varsayılan teklif geçerlilik süresi (gün olarak)
    -UseCustomerContactAsPropalRecipientIfExist=Teklif alıcısı olarak üçüncü parti yerine, eğer tanımlanmışsa, kişi adresini kullan
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Teklif kopyala
     ConfirmClonePropal=Ticari teklifi çoğaltmak istediğinizden emin misiniz? <b>%s</b>?
     ConfirmReOpenProp=Ticari teklifi geri açmak istediğinizden emin misiniz <b>%s</b>?
    @@ -75,9 +75,10 @@ AvailabilityTypeAV_1M=1 ay
     TypeContact_propal_internal_SALESREPFOLL=Teklif izleme temsilcisi
     TypeContact_propal_external_BILLING=Müşteri faturası ilgilisi
     TypeContact_propal_external_CUSTOMER=Müşteri teklif izleme ilgilisi
    -TypeContact_propal_external_SHIPPING=Customer contact for delivery
    +TypeContact_propal_external_SHIPPING=Teslimat için müşteri iletişim kişisi
     # Document models
     DocModelAzurDescription=Eksiksiz bir teklif modeli (logo. ..)
    +DocModelCyanDescription=Eksiksiz bir teklif modeli (logo. ..)
     DefaultModelPropalCreate=Varsayılan model oluşturma
     DefaultModelPropalToBill=Bir teklifi kapatma sırasında varsayılan şablon (faturalanacak)
     DefaultModelPropalClosed=Bir teklifi kapatma sırasında varsayılan şablon (faturalanmamış)
    diff --git a/htdocs/langs/tr_TR/sendings.lang b/htdocs/langs/tr_TR/sendings.lang
    index 321e4d61a7d..19adab408d7 100644
    --- a/htdocs/langs/tr_TR/sendings.lang
    +++ b/htdocs/langs/tr_TR/sendings.lang
    @@ -53,10 +53,10 @@ LinkToTrackYourPackage=Paketinizi izleyeceğiniz bağlantı
     ShipmentCreationIsDoneFromOrder=Şu an için, yeni bir sevkiyatın oluşturulması sipariş kartından yapılmıştır.
     ShipmentLine=Sevkiyat kalemi
     ProductQtyInCustomersOrdersRunning=Product quantity into open customer orders
    -ProductQtyInSuppliersOrdersRunning=Product quantity into open purchase orders
    +ProductQtyInSuppliersOrdersRunning=Açık satın alma siparişlerindeki ürün miktarı
     ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent
     ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received
    -NoProductToShipFoundIntoStock=Bu <b>%s</b> deposunda sevk edilecek hiç mal bulunamadı. Stoğu düzeltin ya da bir başka depo seçmek için geri gidin.
    +NoProductToShipFoundIntoStock=No product to ship found in warehouse <b>%s</b>. Correct stock or go back to choose another warehouse.
     WeightVolShort=Ağırlık/Hac.
     ValidateOrderFirstBeforeShipment=Sevkiyatları yapabilmek için önce siparişi doğrulamlısınız.
     
    diff --git a/htdocs/langs/tr_TR/sms.lang b/htdocs/langs/tr_TR/sms.lang
    index 88a8d7510ea..21badfbe3f0 100644
    --- a/htdocs/langs/tr_TR/sms.lang
    +++ b/htdocs/langs/tr_TR/sms.lang
    @@ -1,7 +1,7 @@
     # Dolibarr language file - Source file is en_US - sms
     Sms=Sms
    -SmsSetup=Sms kurulums
    -SmsDesc=Bu sayfa, SMS özelliklerinin genel seçeneklerini tanımlamanıza olanak tanır
    +SmsSetup=SMS setup
    +SmsDesc=This page allows you to define global options on SMS features
     SmsCard=SMS Kartı
     AllSms=Tüm SMS kampanyaları
     SmsTargets=Hedefler
    @@ -13,20 +13,20 @@ SmsTo=Hedef
     SmsTopic=SMS Konusu
     SmsText=Mesaj
     SmsMessage=SMS Mesajı
    -ShowSms=Sms görüntüle
    -ListOfSms=SMS kampanyaları listesi
    +ShowSms=SMS göster
    +ListOfSms=SMS kampanyalarını listele
     NewSms=Yeni SMS kampanyası
    -EditSms=Sms düzenle
    +EditSms=SMS'i düzenle
     ResetSms=Yeni gönderim
    -DeleteSms=Sms kampanyası sil
    -DeleteASms=Bir Sms kampanyası kaldır
    -PreviewSms=Sms önizle
    -PrepareSms=Sms hazırla
    -CreateSms=Sms oluştur
    -SmsResult=SMS gönderimi sonucu
    -TestSms=Sms Testi
    -ValidSms=Sms Doğrula
    -ApproveSms=Sms onayla
    +DeleteSms=SMS kampanyasını sil
    +DeleteASms=Bir SMS kampanyası kaldır
    +PreviewSms=SMS Önizleme 
    +PrepareSms=SMS hazırla
    +CreateSms=SMS oluştur
    +SmsResult=SMS gönderiminin sonucu
    +TestSms=SMS'i test et
    +ValidSms=SMS'i doğrula
    +ApproveSms=SMS'i onayla
     SmsStatusDraft=Taslak
     SmsStatusValidated=Doğrulanmış
     SmsStatusApproved=Onaylı
    @@ -35,17 +35,17 @@ SmsStatusSentPartialy=Kısmen gönderildi
     SmsStatusSentCompletely=Tamamen gönderildi
     SmsStatusError=Hata
     SmsStatusNotSent=Gönderilmedi
    -SmsSuccessfulySent=Sms doğru olarak gönderildi (%s ten %s e)
    +SmsSuccessfulySent=SMS doğru şekilde gönderildi (%s'nda %s'a)
     ErrorSmsRecipientIsEmpty=Hedef sayısı boş
     WarningNoSmsAdded=Hedef listesine eklenecek herhangi hiç bir yeni bir telefon numarası yok
     ConfirmValidSms=Bu kampanyanın doğrulanmasını onaylıyor musunuz?
    -NbOfUniqueSms=Benzersiz telefon numaraları sayısı
    -NbOfSms=Telefon numaraları sayısı
    +NbOfUniqueSms=Benzersiz telefon numarası sayısı
    +NbOfSms=Telefon numarası sayısı
     ThisIsATestMessage=Bu bir test mesajıdır
     SendSms=SMS gönder
     SmsInfoCharRemain=Kalan karakter sayısı
    -SmsInfoNumero= (Uluslar arası biçim örneği: +33899701761)
    +SmsInfoNumero= (uluslararası format, örn : +33899701761)
     DelayBeforeSending=Gönderimden önceki süre (Dakika)
     SmsNoPossibleSenderFound=Gönderen yok. SMS sağlayıcınızın ayarlarını denetleyin.
     SmsNoPossibleRecipientFound=Hedef yok. SMS sağlayıcı kurulumu kontrol edin.
    -DisableStopIfSupported=Disable STOP message (if supported)
    +DisableStopIfSupported=STOP mesajını devre dışı bırak (destekleniyorsa)
    diff --git a/htdocs/langs/tr_TR/stocks.lang b/htdocs/langs/tr_TR/stocks.lang
    index 0d8e11d8788..0acac9b844e 100644
    --- a/htdocs/langs/tr_TR/stocks.lang
    +++ b/htdocs/langs/tr_TR/stocks.lang
    @@ -44,7 +44,6 @@ TransferStock=Stok aktarma
     MassStockTransferShort=Toplu stok aktarma
     StockMovement=Stok hareketi
     StockMovements=Stok hareketleri
    -LabelMovement=Taşıma etiketi
     NumberOfUnit=Birim sayısı
     UnitPurchaseValue=Alış birim fiyatı
     StockTooLow=Stok çok düşük
    @@ -55,20 +54,20 @@ PMPValueShort=AOF
     EnhancedValueOfWarehouses=Depolar değeri
     UserWarehouseAutoCreate=Kullanıcı oluştururken otomatik olarak bir kullanıcı deposu yarat
     AllowAddLimitStockByWarehouse=Allow to add limit and desired stock per couple (product, warehouse) instead of per product
    -IndependantSubProductStock=Ürün stoku ve yan ürün stoku bağımsızdır
    +IndependantSubProductStock=Product stock and subproduct stock are independent
     QtyDispatched=Sevkedilen miktar
     QtyDispatchedShort=Dağıtılan mik
     QtyToDispatchShort=Dağıtılacak mik
     OrderDispatch=Öğe makbuzları
    -RuleForStockManagementDecrease=Otomatik stok eksiltme yönetimi kuralı (elle eksiltme her zaman olasıdır, otomatik eksiltme kuralı etkin bile olsa)
    -RuleForStockManagementIncrease=Otomatik stok arttırma yönetimi kuralı (elle arttırmae her zaman olasıdır, otomatik arttırma kuralı etkin bile olsa)
    -DeStockOnBill=Müşteri faturalarının/iade faturalarının doğrulanması üzerine gerçek stokları azalt
    -DeStockOnValidateOrder=Müşteri siparişlerinin doğrulanması üzerine gerçek stokları azalt
    +RuleForStockManagementDecrease=Choose Rule for automatic stock decrease (manual decrease is always possible, even if an automatic decrease rule is activated)
    +RuleForStockManagementIncrease=Choose Rule for automatic stock increase (manual increase is always possible, even if an automatic increase rule is activated)
    +DeStockOnBill=Decrease real stocks on validation of customer invoice/credit note
    +DeStockOnValidateOrder=Decrease real stocks on validation of customer order
     DeStockOnShipment=Sevkiyatın onaylanmasıyla gerçek stoku eksilt
     DeStockOnShipmentOnClosing=Sevkiyatın kapalı olarak sınıflandırılmasıyla gerçek stoğu eksilt
    -ReStockOnBill=Müşteri faturalarının/iade faturalarının doğrulanması üzerine gerçek stokları arttır
    -ReStockOnValidateOrder=Increase real stocks on purchase orders approbation
    -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods
    +ReStockOnBill=Increase real stocks on validation of supplier invoice/credit note
    +ReStockOnValidateOrder=Increase real stocks on purchase order approval
    +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouse, after supplier order receipt of goods
     OrderStatusNotReadyToDispatch=Sipariş henüz yoksa veya stok deposundan gönderime izin veren bir durum varsa.
     StockDiffPhysicTeoric=Fiziki ve sanal stok arasındaki farkın açıklaması
     NoPredefinedProductToDispatch=Bu nesne için önceden tanımlanmış ürünlenyok. Yani stoktan sevk gerekli değildir.
    @@ -130,10 +129,11 @@ RecordMovement=Kayıt transferi
     ReceivingForSameOrder=Bu siparişten yapılan kabuller
     StockMovementRecorded=Stok hareketleri kaydedildi
     RuleForStockAvailability=Stok gereksinimi kuralları
    -StockMustBeEnoughForInvoice=Stok düzeyi faturaya ürün/hizmet eklemeye yeterli olmalıdır (geçerli gerçek stoğa satır eklerken, otomatik stok değiştirme kuralı ne olursa olsun, kontrol yapılır)
    -StockMustBeEnoughForOrder=Stok düzeyi siparişe ürün/hizmet eklemeye yeterli olmalıdır (geçerli gerçek stoğa satır eklerken, otomatik stok değiştirme kuralı ne olursa olsun, kontrol yapılır)
    -StockMustBeEnoughForShipment= Stok düzeyi sevkiyata ürün/hizmet eklemeye yeterli olmalıdır (geçerli gerçek stoğa satır eklerken, otomatik stok değiştirme kuralı ne olursa olsun, kontrol yapılır)
    +StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to invoice (check is done on current real stock when adding a line into invoice whatever the rule for automatic stock change)
    +StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever the rule for automatic stock change)
    +StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever the rule for automatic stock change)
     MovementLabel=Hareket etiketi
    +TypeMovement=Type of movement
     DateMovement=Date of movement
     InventoryCode=Hareket veya stok kodu
     IsInPackage=Pakette içerilir
    @@ -171,8 +171,8 @@ inventoryValidate=Doğrulandı
     inventoryDraft=Yürürlükte
     inventorySelectWarehouse=Depo seçimi
     inventoryConfirmCreate=Oluştur
    -inventoryOfWarehouse=Inventory for warehouse : %s
    -inventoryErrorQtyAdd=Hata: bir miktar sıfırdan küçük
    +inventoryOfWarehouse=Depo için envanter: %s
    +inventoryErrorQtyAdd=Error : one quantity is less than zero
     inventoryMvtStock=By inventory
     inventoryWarningProductAlreadyExists=Bu ürün listede zaten var
     SelectCategory=Kategori süzgeçi
    @@ -199,8 +199,12 @@ ConfirmFlushInventory=Bu eylemi onaylıyor musunuz?
     InventoryFlushed=Envanter boşaltıldı
     ExitEditMode=Exit edition
     inventoryDeleteLine=Satır sil
    -RegulateStock=Regulate Stock
    +RegulateStock=Stoğu Düzenle
     ListInventory=Liste
    -StockSupportServices=Stock management support services
    +StockSupportServices=Stock management supports Services
     StockSupportServicesDesc=By default, you can stock only product with type "product". If on, and if module service is on, you can also stock a product with type "service"
     ReceiveProducts=Receive items
    +StockIncreaseAfterCorrectTransfer=Increase by correction/transfer
    +StockDecreaseAfterCorrectTransfer=Decrease by correction/transfer
    +StockIncrease=Stock increase
    +StockDecrease=Stock decrease
    diff --git a/htdocs/langs/tr_TR/stripe.lang b/htdocs/langs/tr_TR/stripe.lang
    index 691687eb9d0..38b0bc87921 100644
    --- a/htdocs/langs/tr_TR/stripe.lang
    +++ b/htdocs/langs/tr_TR/stripe.lang
    @@ -4,7 +4,7 @@ StripeDesc=Module to offer an online payment page accepting payments with Credit
     StripeOrCBDoPayment=Kredi kartı veya Stripe ile ödeme yapın
     FollowingUrlAreAvailableToMakePayments=Aşağıdaki URL'ler bir müşteriye Dolibarr nesnelerine bir ödeme yapmak için bir sayfa sunmak için kullanılabilir
     PaymentForm=Ödeme Formu
    -WelcomeOnPaymentPage=Çevrimiçi ödeme hizmetimize hoşgeldiniz
    +WelcomeOnPaymentPage=Çevrimiçi ödeme hizmetimize hoş geldiniz
     ThisScreenAllowsYouToPay=Bu ekran %s için çevrimiçi bir ödeme yapmanızı sağlar
     ThisIsInformationOnPayment=Bu yapılacak ödeme hakkında bilgidir
     ToComplete=Tamamlanacak
    @@ -23,8 +23,6 @@ ToOfferALinkForOnlinePaymentOnFreeAmount=Bir serbest ödeme için çevrimiçi %s
     ToOfferALinkForOnlinePaymentOnMemberSubscription=Bir müşteri üye aboneliği çevrimiçi %s ödemesi kullanıcı arayüzü sunan URL
     YouCanAddTagOnUrl=Ayrıca; o URL'lerden herhangi birine <b>&tag=<i>value</i></b> url parametresini ekleyerek kendi ödeme açıklamanızın etiketini girebilirsiniz.
     SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url <b>%s</b> to have payment created automatically when validated by Stripe.
    -YourPaymentHasBeenRecorded=Bu sayfa ödeme kaydedilmiş olduğunu onaylar. Teşekkür ederim.
    -YourPaymentHasNotBeenRecorded=Ödemeniz kaydedimelmiştir  ve işlem iptal edilmiştir. Teşekkür ederiz.
     AccountParameter=Hesap parametreleri
     UsageParameter=Kullanım parametreleri
     InformationToFindParameters=%s Hesap bilgilerinizi bulmanız için yardım
    @@ -46,20 +44,21 @@ ExampleOfTestCreditCard=Example of credit card for test: %s (valid), %s (error C
     StripeGateways=Stripe gateways
     OAUTH_STRIPE_TEST_ID=Stripe Connect Client ID (ca_...)
     OAUTH_STRIPE_LIVE_ID=Stripe Connect Client ID (ca_...)
    -BankAccountForBankTransfer=Bank account for fund payouts
    -StripeAccount=Stripe account
    +BankAccountForBankTransfer=Fon ödemeleri için banka hesabı
    +StripeAccount=Stripe hesabı
     StripeChargeList=List of Stripe charges
     StripeTransactionList=List of Stripe transactions
    -StripeCustomerId=Stripe customer id
    +StripeCustomerId=Stripe müşteri kimliği
     StripePaymentModes=Stripe payment modes
     LocalID=Local ID
    -StripeID=Stripe ID
    +StripeID=Stripe Kimliği
     NameOnCard=Name on card
     CardNumber=Kart Numarası
     ExpiryDate=Expiry Date
     CVN=CVN
    -DeleteACard=Delete Card
    +DeleteACard=Kartı Sil
     ConfirmDeleteCard=Are you sure you want to delete this Credit or Debit card?
     CreateCustomerOnStripe=Create customer on Stripe
     CreateCardOnStripe=Create card on Stripe
     ShowInStripe=Show in Stripe
    +StripeUserAccountForActions=User account to use for some emails notification of Stripe events (Stripe payouts)
    diff --git a/htdocs/langs/tr_TR/supplier_proposal.lang b/htdocs/langs/tr_TR/supplier_proposal.lang
    index 4ea0b55d442..77f20d0e291 100644
    --- a/htdocs/langs/tr_TR/supplier_proposal.lang
    +++ b/htdocs/langs/tr_TR/supplier_proposal.lang
    @@ -1,22 +1,22 @@
     # Dolibarr language file - Source file is en_US - supplier_proposal
    -SupplierProposal=Vendor commercial proposals
    -supplier_proposalDESC=Manage price requests to vendors
    +SupplierProposal=Tedarikçi teklifleri
    +supplier_proposalDESC=Tedarikçilere yapılan fiyat isteklerini yönet
     SupplierProposalNew=Yeni fiyat isteği
     CommRequest=Fiyat isteği
     CommRequests=Fiyat istekleri
     SearchRequest=İstek ara
     DraftRequests=Taslak istekler
    -SupplierProposalsDraft=Draft vendor proposals
    +SupplierProposalsDraft=Taslak tedarikçi teklifleri
     LastModifiedRequests=Değiştirilen son %s fiyat isteği
     RequestsOpened=Fiyat isteği aç
    -SupplierProposalArea=Vendor proposals area
    -SupplierProposalShort=Vendor proposal
    -SupplierProposals=Vendor proposals
    -SupplierProposalsShort=Vendor proposals
    +SupplierProposalArea=Tedarikçi teklifleri alanı
    +SupplierProposalShort=Tedarikçi teklifi
    +SupplierProposals=Tedarikçi teklifleri
    +SupplierProposalsShort=Tedarikçi teklifleri
     NewAskPrice=Yeni fiyat isteği
     ShowSupplierProposal=Fiyat isteği göster
     AddSupplierProposal=Fiyat isteği oluştur
    -SupplierProposalRefFourn=Vendor ref
    +SupplierProposalRefFourn=Tedarikçi referans
     SupplierProposalDate=Teslim tarihi
     SupplierProposalRefFournNotice="Kabul edildi" olarak kapatmadan önce tedarikçi referansını tutmayı düşün.
     ConfirmValidateAsk=Bu fiyat talebini <b>%s</b> adı altında onaylamak istediğinizden emin misiniz?
    @@ -47,9 +47,9 @@ CommercialAsk=Fiyat isteği
     DefaultModelSupplierProposalCreate=Varsayılan model oluşturma
     DefaultModelSupplierProposalToBill=Bir fiyat isteğini kapatma sırasında (kabul edilmiş) varsayılan şablon
     DefaultModelSupplierProposalClosed=Bir fiyat isteğini kapatma sırasında (reddedilmiş) varsayılan şablon 
    -ListOfSupplierProposals=List of vendor proposal requests
    -ListSupplierProposalsAssociatedProject=List of vendor proposals associated with project
    -SupplierProposalsToClose=Vendor proposals to close
    -SupplierProposalsToProcess=Vendor proposals to process
    +ListOfSupplierProposals=Tedarikçi teklif isteklerinin listesi
    +ListSupplierProposalsAssociatedProject=Proje ile ilgili tedarikçi tekliflerinin listesi
    +SupplierProposalsToClose=Kapatılacak tedarikçi teklifleri
    +SupplierProposalsToProcess=İşlenecek tedarikçi teklifleri
     LastSupplierProposals=Son %s fiyat talepleri
     AllPriceRequests=Tüm istekler
    diff --git a/htdocs/langs/tr_TR/suppliers.lang b/htdocs/langs/tr_TR/suppliers.lang
    index 9ee2099f4b2..0a9f5f5a512 100644
    --- a/htdocs/langs/tr_TR/suppliers.lang
    +++ b/htdocs/langs/tr_TR/suppliers.lang
    @@ -1,11 +1,11 @@
     # Dolibarr language file - Source file is en_US - suppliers
    -Suppliers=Vendors
    -SuppliersInvoice=Vendor invoice
    -ShowSupplierInvoice=Show Vendor Invoice
    -NewSupplier=New vendor
    +Suppliers=Tedarikçiler
    +SuppliersInvoice=Tedarikçi faturası
    +ShowSupplierInvoice=Tedarikçi Faturası Göster
    +NewSupplier=Yeni tedarikçi
     History=Geçmiş
    -ListOfSuppliers=List of vendors
    -ShowSupplier=Show vendor
    +ListOfSuppliers=Tedarikçi listesi
    +ShowSupplier=Tedarikçiyi göster
     OrderDate=Sipariş tarihi
     BuyingPriceMin=En iyi alış fiyatı
     BuyingPriceMinShort=En iyi alış fiyatı
    @@ -14,34 +14,34 @@ TotalSellingPriceMinShort=Yan ürün satış fiyatları toplamı
     SomeSubProductHaveNoPrices=Bazı altürünlerin fiyatı yok
     AddSupplierPrice=Alış fiyatı ekle
     ChangeSupplierPrice=Alış fiyatı değiştir
    -SupplierPrices=Vendor prices
    +SupplierPrices=Tedarikçi fiyatları
     ReferenceSupplierIsAlreadyAssociatedWithAProduct=Bu referanslı tedarikçi zaten bu referans ile ilişkili: %s
    -NoRecordedSuppliers=No vendor recorded
    -SupplierPayment=Vendor payment
    -SuppliersArea=Vendor area
    -RefSupplierShort=Ref. vendor
    +NoRecordedSuppliers=Hiçbir tedarikçi kaydı yok
    +SupplierPayment=Tedarikçi ödemesi
    +SuppliersArea=Tedarikçi alanı
    +RefSupplierShort=Referans tedarikçi
     Availability=Uygunluğu
    -ExportDataset_fournisseur_1=Vendor invoices list and invoice lines
    -ExportDataset_fournisseur_2=Vendor invoices and payments
    -ExportDataset_fournisseur_3=Purchase orders and order lines
    +ExportDataset_fournisseur_1=Tedarikçi faturaları ve fatura detayları
    +ExportDataset_fournisseur_2=Tedarikçi faturaları ve ödemeleri
    +ExportDataset_fournisseur_3=Satın alma siparişleri ve sipariş detayları
     ApproveThisOrder=Bu siparişi onayla
     ConfirmApproveThisOrder=Siparişi uygun bulmak istediğinizden emin misiniz <b>%s</b>?
     DenyingThisOrder=Bu siparişi reddet
     ConfirmDenyingThisOrder=Bu siparişi reddetmek istediğinizden emin misiniz <b>%s</b>?
     ConfirmCancelThisOrder=Bu siparişi iptal etmek istediğinizden emin misiniz <b>%s</b>?
    -AddSupplierOrder=Create Purchase Order
    -AddSupplierInvoice=Create vendor invoice
    -ListOfSupplierProductForSupplier=List of products and prices for vendor <b>%s</b>
    -SentToSuppliers=Sent to vendors
    -ListOfSupplierOrders=List of purchase orders
    -MenuOrdersSupplierToBill=Purchase orders to invoice
    +AddSupplierOrder=Satınalma Siparişi Oluştur
    +AddSupplierInvoice=Tedarikçi faturası oluştur
    +ListOfSupplierProductForSupplier=<b>%s</b> tedarikçisi için ürün ve fiyat listesi
    +SentToSuppliers=Tedarikçilere gönderilen
    +ListOfSupplierOrders=Satın alma siparişlerinin listesi
    +MenuOrdersSupplierToBill=Faturalanacak satın alma siparişleri
     NbDaysToDelivery=Gün olarak teslim süresi
     DescNbDaysToDelivery=Bu siparişteki en büyük teslimat gecikmesi olan ürünler
    -SupplierReputation=Vendor reputation
    +SupplierReputation=Tedarikçi itibarı
     DoNotOrderThisProductToThisSupplier=Sipariş verme
     NotTheGoodQualitySupplier=Hatalı kalite
     ReputationForThisProduct=İtibar
     BuyerName=Alıcı adı
     AllProductServicePrices=Tüm ürün/hizmet fiyatları
     AllProductReferencesOfSupplier=Tüm tedarikçi ürün/hizmet referansları
    -BuyingPriceNumShort=Vendor prices
    +BuyingPriceNumShort=Tedarikçi fiyatları
    diff --git a/htdocs/langs/tr_TR/trips.lang b/htdocs/langs/tr_TR/trips.lang
    index 13e7b1c6a89..0be18335dff 100644
    --- a/htdocs/langs/tr_TR/trips.lang
    +++ b/htdocs/langs/tr_TR/trips.lang
    @@ -10,28 +10,28 @@ ListOfFees=Ücretler listesi
     TypeFees=Ücret türleri
     ShowTrip=Gider raporu göster
     NewTrip=Yeni gider raporu
    -LastExpenseReports=Latest %s expense reports
    -AllExpenseReports=All expense reports
    +LastExpenseReports=Son %s gider raporu
    +AllExpenseReports=Tüm gider raporları
     CompanyVisited=Ziyaret edilen Şirket/Kuruluş
     FeesKilometersOrAmout=Tutar ya da kilometre
     DeleteTrip=Gider raporu sil
    -ConfirmDeleteTrip=Are you sure you want to delete this expense report?
    +ConfirmDeleteTrip=Bu gider raporunu silmek istediğinizden emin misiniz?
     ListTripsAndExpenses=Giderler raporları listesi
     ListToApprove=Onay bekliyor
     ExpensesArea=Gider raporları alanı
     ClassifyRefunded=Sınıflandırma 'İade edildi'
     ExpenseReportWaitingForApproval=Onay için yeni bir gider raporu sunulmuştur
    -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.<br> - User: %s<br> - Period: %s<br>Click here to validate: %s
    -ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval
    +ExpenseReportWaitingForApprovalMessage=Bir gider raporu gönderildi ve onay bekleniyor. <br> - Kullanıcı: %s<br> - Dönem: %s<br>Doğrulamak için buraya tıklayın:%s
    +ExpenseReportWaitingForReApproval=Yeniden onay için bir gider raporu gönderildi
     ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.<br>The %s, you refused to approve the expense report for this reason: %s.<br>A new version has been proposed and waiting for your approval.<br> - User: %s<br> - Period: %s<br>Click here to validate: %s
    -ExpenseReportApproved=An expense report was approved
    -ExpenseReportApprovedMessage=The expense report %s was approved.<br> - User: %s<br> - Approved by: %s<br>Click here to show the expense report: %s
    -ExpenseReportRefused=An expense report was refused
    -ExpenseReportRefusedMessage=The expense report %s was refused.<br> - User: %s<br> - Refused by: %s<br> - Motive for refusal: %s<br>Click here to show the expense report: %s
    -ExpenseReportCanceled=An expense report was canceled
    -ExpenseReportCanceledMessage=The expense report %s was canceled.<br> - User: %s<br> - Canceled by: %s<br> - Motive for cancellation: %s<br>Click here to show the expense report: %s
    -ExpenseReportPaid=An expense report was paid
    -ExpenseReportPaidMessage=The expense report %s was paid.<br> - User: %s<br> - Paid by: %s<br>Click here to show the expense report: %s
    +ExpenseReportApproved=Bir gider raporu onaylandı
    +ExpenseReportApprovedMessage=Gider raporu %s onaylandı.<br> - Kullanıcı: %s<br> - Onaylayan: %s<br>Gider raporunu görüntülemek için buraya tıklayın: %s
    +ExpenseReportRefused=Bir gider raporu reddedildi
    +ExpenseReportRefusedMessage=Gider raporu %s reddedildi.<br> - Kullanıcı: %s<br> - Reddeden: %s<br>- Reddetme sebebi: %s<br>Gider raporunu görüntülemek için buraya tıklayın: %s 
    +ExpenseReportCanceled=Bir gider raporu iptal edildi
    +ExpenseReportCanceledMessage=Gider raporu %s iptal edildi.<br> - Kullanıcı: %s<br> - İptal eden: %s<br> - İptal sebebi: %s<br>Gider raporunu görüntülemek için buraya tıklayın: %s
    +ExpenseReportPaid=Bir gider raporu ödendi
    +ExpenseReportPaidMessage=Gider raporu %s ödendi.<br> - Kullanıcı: %s<br> - Ödeyen: %s<br>Gider raporunu görüntülemek için buraya tıklayın: %s
     TripId=Gider raporu kimliği
     AnyOtherInThisListCanValidate=Doğrulama için bilgilendirilecek kişi
     TripSociete=Firma bilgisi
    @@ -49,7 +49,7 @@ TF_PEAGE=Geçiş parası
     TF_ESSENCE=Yakıt
     TF_HOTEL=Otel
     TF_TAXI=Taksi
    -EX_KME=Mileage costs
    +EX_KME=Kilometre maliyetleri
     EX_FUE=Fuel CV
     EX_HOT=Otel
     EX_PAR=Parking CV
    @@ -59,7 +59,7 @@ EX_IND=Indemnity transportation subscription
     EX_SUM=Maintenance supply
     EX_SUO=Ofis malzemeleri
     EX_CAR=Araba kiralama
    -EX_DOC=Documentation
    +EX_DOC=Dökümantasyon
     EX_CUR=Customers receiving
     EX_OTR=Other receiving
     EX_POS=Postage
    @@ -71,7 +71,7 @@ EX_FUE_VP=Fuel PV
     EX_TOL_VP=Toll PV
     EX_PAR_VP=Parking PV
     EX_CAM_VP=PV maintenance and repair
    -DefaultCategoryCar=Default transportation mode
    +DefaultCategoryCar=Varsayılan taşıma modu
     DefaultRangeNumber=Varsayılan aralık numarası
     
     Error_EXPENSEREPORT_ADDON_NotDefined=Error, the rule for expense report numbering ref was not defined into setup of module 'Expense Report'
    @@ -99,34 +99,34 @@ ExpenseReportRef=Ref. expense report
     ValidateAndSubmit=Doğrula ve onay için gönder
     ValidatedWaitingApproval=Doğrulanmış (onay bekliyor)
     NOT_AUTHOR=Bu gider raporunu yazan siz değilsiniz. İşlem iptal edildi.
    -ConfirmRefuseTrip=Are you sure you want to deny this expense report?
    +ConfirmRefuseTrip=Bu harcama raporunu reddetmek istediğinizden emin misiniz?
     ValideTrip=Gider raporunu onayla
    -ConfirmValideTrip=Are you sure you want to approve this expense report?
    +ConfirmValideTrip=Bu harcama raporunu onaylamak istediğinizden emin misiniz?
     PaidTrip=Bir gider raporu öde
    -ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"?
    -ConfirmCancelTrip=Are you sure you want to cancel this expense report?
    +ConfirmPaidTrip=Bu gider raporunun durumunu "Ödendi" olarak değiştirmek istediğinizden emin misiniz?
    +ConfirmCancelTrip=Bu harcama raporunu iptal etmek istediğinizden emin misiniz?
     BrouillonnerTrip=Gider raporu durumunu yeniden "Taslak" durumuna getir
    -ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"?
    +ConfirmBrouillonnerTrip=Bu gider raporunu "Taslak" durumuna taşımak istediğinizden emin misiniz?
     SaveTrip=Gider raporunu doğrula
    -ConfirmSaveTrip=Are you sure you want to validate this expense report?
    +ConfirmSaveTrip=Bu gider raporunu doğrulamak istediğinizden emin misiniz?
     NoTripsToExportCSV=Bu dönem için dışaaktarılacak gider raporu yok.
     ExpenseReportPayment=Gider raporu ödemesi
     ExpenseReportsToApprove=Onaylanacak gider raporları
     ExpenseReportsToPay=Ödenecek gider raporları
    -CloneExpenseReport=Clone expense report
    -ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ?
    +CloneExpenseReport=Gider raporunu kopyala
    +ConfirmCloneExpenseReport=Bu gider raporunu kopyalamak istediğinizden emin misiniz?
     ExpenseReportsIk=Expense report milles index
    -ExpenseReportsRules=Expense report rules
    +ExpenseReportsRules=Gider raporu kuralları
     ExpenseReportIkDesc=You can modify the calculation of kilometers expense by category and range who they are previously defined. <b>d</b> is the distance in kilometers
     ExpenseReportRulesDesc=You can create or update any rules of calculation. This part will be used when user will create a new expense report
     expenseReportOffset=Sapma
    -expenseReportCoef=Coefficient
    +expenseReportCoef=Katsayı
     expenseReportTotalForFive=Example with <u>d</u> = 5
     expenseReportRangeFromTo=from %d to %d
     expenseReportRangeMoreThan=more than %d
    -expenseReportCoefUndefined=(value not defined)
    -expenseReportCatDisabled=Category disabled - see the c_exp_tax_cat dictionary
    -expenseReportRangeDisabled=Range disabled - see the c_exp_tax_range dictionay
    +expenseReportCoefUndefined=(değer tanımlanmamış)
    +expenseReportCatDisabled=Kategori devre dışı - c_exp_tax_cat sözlüğüne bakın
    +expenseReportRangeDisabled=Aralık devre dışı - c_exp_tax_range sözlüğüne bakın
     expenseReportPrintExample=offset + (d x coef) = %s
     ExpenseReportApplyTo=Apply to
     ExpenseReportDomain=Domain to apply
    @@ -135,10 +135,10 @@ ExpenseReportDateStart=Başlama tarihi
     ExpenseReportDateEnd=Bitiş tarihi
     ExpenseReportLimitAmount=Limite amount
     ExpenseReportRestrictive=Restrictive
    -AllExpenseReport=All type of expense report
    -OnExpense=Expense line
    -ExpenseReportRuleSave=Expense report rule saved
    -ExpenseReportRuleErrorOnSave=Error: %s
    +AllExpenseReport=Her türlü gider raporu
    +OnExpense=Gider satırı
    +ExpenseReportRuleSave=Gider raporu kuralı kaydedildi
    +ExpenseReportRuleErrorOnSave=Hata: %s
     RangeNum=Range %d
     
     ExpenseReportConstraintViolationError=Constraint violation id [%s]: %s  is superior to %s %s
    diff --git a/htdocs/langs/tr_TR/website.lang b/htdocs/langs/tr_TR/website.lang
    index 10e4e2720f3..2a694baa6ac 100644
    --- a/htdocs/langs/tr_TR/website.lang
    +++ b/htdocs/langs/tr_TR/website.lang
    @@ -1,15 +1,16 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Kod
    -WebsiteSetupDesc=Burada istediğiniz sayıda farklı websitesi oluşturun. Sonra Websitesi menüsüne giderek bunları düzenleyin.
    +WebsiteSetupDesc=Kullanmak istediğiniz web sitelerini burada oluşturun. Daha sonra bunları düzenlemek için "Web siteleri" menüsüne gidin.
     DeleteWebsite=Websitesi sil
    -ConfirmDeleteWebsite=Bu websitesini silmek istediğinizden emin misiniz? Bütün sayfaları ve içeriği silinecektir.
    -WEBSITE_TYPE_CONTAINER=Type of page/container
    -WEBSITE_PAGE_EXAMPLE=Web page to use as example
    +ConfirmDeleteWebsite=Bu web sitesini silmek istediğinizden emin misiniz? Tüm sayfalar ve içerik de kaldırılacak.
    +WEBSITE_TYPE_CONTAINER=Sayfa/kapsayıcı türü
    +WEBSITE_PAGE_EXAMPLE=Örnek olarak kullanılacak web sayfası
     WEBSITE_PAGENAME=Sayfa adı/rumuz
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=Dış CSS dosyası URL si
    -WEBSITE_CSS_INLINE=CSS file content (common to all pages)
    -WEBSITE_JS_INLINE=Javascript file content (common to all pages)
    +WEBSITE_CSS_INLINE=CSS dosya içeriği (tüm sayfalarda ortak)
    +WEBSITE_JS_INLINE=Javascript dosya içeriği (tüm sayfalarda ortak)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot dosyası (robots.txt)
     WEBSITE_HTACCESS=Web sitesinin .htaccess dosyası
    @@ -17,17 +18,19 @@ HtmlHeaderPage=HTML başlığı (yalnızca bu sayfaya özgü)
     PageNameAliasHelp=Sayfanın adı veya takma adı.<br>Bu takma ad, web sitesi bir web sunucusunun (Apacke, Nginx gibi ...) Sanal host'undan çalıştırıldığında bir SEO URL'si oluşturmak için de kullanılır. Bu takma adı düzenlemek için "<strong>%s</strong>" düşmesini kullanın.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Medya kütüphanesi
    -EditCss=Stil/CSS veya HTML başlığı düzenle
    +EditCss=Web sitesi özelliklerini düzenle
     EditMenu=Menü düzenle
     EditMedias=Medyaları düzenle
    -EditPageMeta=Meta Düzenle
    -AddWebsite=Add website
    +EditPageMeta=Sayfa/kapsayıcı özelliklerini düzenle
    +EditInLine=Satır içi düzenle
    +AddWebsite=Web sitesi ekle
     Webpage=Web sayfası/kapsayıcı
     AddPage=Sayfa/kapsayıcı ekle
     HomePage=Ana Sayfa
    -PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Web sitenizin <strong>%s</strong> önizlemesi henüz hazır değil. Önce bir sayfa eklemelisiniz.
    +PageContainer=Sayfa/kapsayıcı
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=İstenen %s kimlik numaralı sayfa henüz bir içeriğe sahip değil, önbellek dosyası .tpl.php kaldırıldı. Bu sorunu çözmek için sayfa içeriğini düzenleyin.
    +SiteDeleted='%s' web sitesi silindi
     PageContent=Sayfa/Kapsayıcı
     PageDeleted=%s websitesinin Sayfa/Kapsayıcı '%s'  öğesi silindi
     PageAdded=Sayfa/Kapsayıcı '%s'  eklendi
    @@ -36,49 +39,57 @@ ViewPageInNewTab=Siteyi yeni sekmede izle
     SetAsHomePage=Giriş Sayfası olarak ayarla
     RealURL=Gerçek URL
     ViewWebsiteInProduction=Web sitesini giriş URL si kullanarak izle
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Okundu
    -WritePerm=Write
    +WritePerm=Yaz
     PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=Harici web sunucusu tarafından sunulan sanal host URL'si tanımlanmamış
     NoPageYet=Henüz hiç sayfa yok
    -SyntaxHelp=Help on specific syntax tips
    -YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanCreatePageOrImportTemplate=Yeni bir sayfa oluşturabilir veya tam bir web sitesi şablonunu içe aktarabilirsiniz
    +SyntaxHelp=Belirli sözdizimi ipuçları hakkında yardım
    +YouCanEditHtmlSourceckeditor=Düzenleyicideki "Kaynak" düğmesini kullanarak HTML kaynak kodunu düzenleyebilirsiniz
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Sayfa/kapsayıcı kopyala
     CloneSite=Siteyi kopyala
    -SiteAdded=Web site added
    +SiteAdded=Web sitesi eklendi
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
    -PageIsANewTranslation=The new page is a translation of the current page ?
    +PageIsANewTranslation=Yeni sayfa mevcut sayfanın çevirisi mi?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Üst sayfa kimliği
     WebsiteId=Web Sitesi Kimliği
    -CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    -FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +CreateByFetchingExternalPage=Harici bir URL'den sayfa çekerek sayfa/kapsayıcı oluştur...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
    +FetchAndCreate=Getir ve Oluştur
    +ExportSite=Web sitesini dışa aktar
    +ImportSite=Web sitesi şablonunu içe aktar
     IDOfPage=Sayfanın kimliği
     Banner=Banner
    -BlogPost=Blog post
    +BlogPost=Blog yazısı
     WebsiteAccount=Web sitesi hesabı
     WebsiteAccounts=Web sitesi hesapları
     AddWebsiteAccount=Web sitesi hesabı oluştur
    -BackToListOfThirdParty=Back to list for Third Party
    +BackToListOfThirdParty=Üçüncü Parti listesine geri dön
     DisableSiteFirst=Önce web sitesini devre dışı bırak
     MyContainerTitle=Web sitemin başlığı
    -AnotherContainer=Another container
    -WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
    +AnotherContainer=Diğer kapsayıcı
    +WEBSITE_USE_WEBSITE_ACCOUNTS=Web sitesi hesap tablosunu etkinleştir
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=Öncelikle varsayılan Giriş sayfasını tanımlamanız gerekir
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
    -ImagesShouldBeSavedInto=Images should be saved into directory
    -WebsiteRootOfImages=Root directory for website images
    -SubdirOfPage=Sub-directory dedicated to page
    +ImagesShouldBeSavedInto=Görüntüler dizine kaydedilmelidir
    +WebsiteRootOfImages=Web sitesi görüntü dosyaları için kök dizin
    +SubdirOfPage=Sayfaya adanmış alt-dizin
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Kurumsal Giriş sayfası
     EmptyPage=Boş sayfa
    +ExternalURLMustStartWithHttp=Harici URL http:// veya https:// ile başlamalıdır
    +ZipOfWebsitePackageToImport=Web sitesi paketinin zip dosyası
    +ShowSubcontainers=Dinamik içeriği dahil et
    +InternalURLOfPage=Sayfanın iç URL'si
    +ThisPageIsTranslationOf=Bu sayfa/kapsayıcı şunun çevirisidir:
    +ThisPageHasTranslationPages=Bu sayfa/kapsayıcı'nın çevirisi mevcut
    diff --git a/htdocs/langs/tr_TR/withdrawals.lang b/htdocs/langs/tr_TR/withdrawals.lang
    index 31f4b4a099f..c0892de25dd 100644
    --- a/htdocs/langs/tr_TR/withdrawals.lang
    +++ b/htdocs/langs/tr_TR/withdrawals.lang
    @@ -1,23 +1,23 @@
     # Dolibarr language file - Source file is en_US - withdrawals
    -CustomersStandingOrdersArea=Direct debit payment orders area
    +CustomersStandingOrdersArea=Otomatik ödeme talimatları alanı
     SuppliersStandingOrdersArea=Direct credit payment orders area
     StandingOrdersPayment=Direct debit payment orders
     StandingOrderPayment=Otomatik ödeme talimatı
    -NewStandingOrder=New direct debit order
    +NewStandingOrder=Yeni otomatik ödeme talimatı
     StandingOrderToProcess=İşlenecek
     WithdrawalsReceipts=Otomatik ödeme talimatları
     WithdrawalReceipt=Otomatik ödeme talimatı
    -LastWithdrawalReceipts=Latest %s direct debit files
    -WithdrawalsLines=Direct debit order lines
    +LastWithdrawalReceipts=Son %s otomatik ödeme dosyaları
    +WithdrawalsLines=Otomatik ödeme talimatı satırları
     RequestStandingOrderToTreat=Request for direct debit payment order to process
     RequestStandingOrderTreated=Request for direct debit payment order processed
     NotPossibleForThisStatusOfWithdrawReceiptORLine=Henüz olası değil. Özel satırlarda reddedildi olarak bildirilmeden önce paraçekme durumu 'alacaklandırıldı' olarak ayarlkanmalıdır.
    -NbOfInvoiceToWithdraw=Nb. of qualified invoice with waiting direct debit order
    -NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment orders having defined bank account information
    -InvoiceWaitingWithdraw=Invoice waiting for direct debit
    +NbOfInvoiceToWithdraw=No. of qualified invoice with waiting direct debit order
    +NbOfInvoiceToWithdrawWithInfo=No. of customer invoice with direct debit payment orders having defined bank account information
    +InvoiceWaitingWithdraw=Otomatik ödeme için bekleyen fatura
     AmountToWithdraw=Çekilecek tutar
     WithdrawsRefused=Direct debit refused
    -NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request.
    +NoInvoiceToWithdraw=Açık 'Otomatik ödeme talepli' bekleyen hiçbir müşteri faturası yok. Bir talepte bulunmak için fatura kartındaki '%s' sekmesine gidin.
     ResponsibleUser=Sorumlu kullanıcı
     WithdrawalsSetup=Direct debit payment setup
     WithdrawStatistics=Direct debit payment statistics
    @@ -26,7 +26,7 @@ LastWithdrawalReceipt=Latest %s direct debit receipts
     MakeWithdrawRequest=Make a direct debit payment request
     WithdrawRequestsDone=%s direct debit payment requests recorded
     ThirdPartyBankCode=Üçüncü parti banka kodu
    -NoInvoiceCouldBeWithdrawed=No invoice withdrawed with success. Check that invoices are on companies with a valid default BAN and that BAN has a RUM with mode <strong>%s</strong>.
    +NoInvoiceCouldBeWithdrawed=No invoice debited successfully. Check that invoices are on companies with a valid IBAN and that IBAN has a UMR (Unique Mandate Reference) with mode <strong>%s</strong>.
     ClassCredited=Alacak olarak sınıflandır
     ClassCreditedConfirm=Bu para çekme makbuzunu bankanıza alacak olarak sınıflandırmak istediğinizden emin misiniz?
     TransData=Havale tarihi
    @@ -96,7 +96,7 @@ SEPAFrstOrRecur=Type of payment
     ModeRECUR=Reccurent payment
     ModeFRST=One-off payment
     PleaseCheckOne=Please check one only
    -DirectDebitOrderCreated=Direct debit order %s created
    +DirectDebitOrderCreated=Otomatik ödeme talimatı %s oluşturuldu
     AmountRequested=Amount requested
     SEPARCUR=SEPA CUR
     SEPAFRST=SEPA FRST
    diff --git a/htdocs/langs/uk_UA/admin.lang b/htdocs/langs/uk_UA/admin.lang
    index 919f3160b0a..bcb094a1313 100644
    --- a/htdocs/langs/uk_UA/admin.lang
    +++ b/htdocs/langs/uk_UA/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Розробча
     VersionUnknown=Невизначена
     VersionRecommanded=Рекомендована
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler to save sessions
     SessionSavePath=Storage session localization
     PurgeSessions=Purge of sessions
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Ваш сеанс
    -Sessions=Users session
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=External user
     InternalUsers=Internal users
     ExternalUsers=External users
     GUISetup=Display
    -SetupArea=Setup area
    +SetupArea=Setup
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=Setup
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Пропозиції
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Рахунки-фактури
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Suppliers
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=State/Province
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Умови платежу
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Name
     CompanyAddress=Address
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Кредитове авізо
     CreditNotes=Кредитове авізо
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Name
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/uk_UA/banks.lang b/htdocs/langs/uk_UA/banks.lang
    index 3148777e43b..e2b66e85156 100644
    --- a/htdocs/langs/uk_UA/banks.lang
    +++ b/htdocs/langs/uk_UA/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Account
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Продавець
     TransferTo=Покупець
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/uk_UA/bills.lang b/htdocs/langs/uk_UA/bills.lang
    index bf9a1015f88..614d594f415 100644
    --- a/htdocs/langs/uk_UA/bills.lang
    +++ b/htdocs/langs/uk_UA/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Рахунок проформа
     InvoiceProFormaDesc=<b>Рахунок проформа</b> є образом оригінального рахунку, але не має бухгалтерського облікового запису.
     InvoiceReplacement=Заміна рахунка-фактури
     InvoiceReplacementAsk=Заміна рахунка-фактури на інший
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Кредитове авізо
     InvoiceAvoirAsk=Кредитове авізо для коригування рахунка-фактури
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Створити кредитове авізо зі строками з оригінального рахунка
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Повернення платежу
     DeletePayment=Видалити платіж
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Платежі Постачальникам
     ReceivedPayments=Отримані платежі
     ReceivedCustomersPayments=Платежі, отримані від покупців
    -PayedSuppliersPayments=Плетежі, відправлені постачальникам
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Отримані платежі покупців для підтвердження
     PaymentsReportsForYear=Звіти про платежі за %s
     PaymentsReports=Звіти про платежі
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Умови платежу
     PaymentAmount=Сума платежу
     ValidatePayment=Підтвердити платіж
     PaymentHigherThanReminderToPay=Платіж більший, ніж в нагадуванні про оплату
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Класифікувати як 'Сплачений'
     ClassifyPaidPartially=Класифікувати як 'Сплачений частково'
     ClassifyCanceled=Класифікувати як 'Анулюваний'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Закритий (неоплачений)
     BillStatusClosedPaidPartially=Сплачений (частково)
     BillShortStatusDraft=Проект
     BillShortStatusPaid=Сплачений
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Сплачений
     BillShortStatusCanceled=Анулюваний
     BillShortStatusValidated=Підтверджений
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Закритий
     BillShortStatusClosedPaidPartially=Сплачений (частково)
     PaymentStatusToValidShort=На підтвердженні
    -ErrorVATIntraNotConfigured=Номер платника ПДВ ще не встановлений
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Режим оплати за умовчанням не встановлений. Перейдіть в налаштування модуля Рахунків-фактур для виправлення цієї ситуації.
     ErrorCreateBankAccount=Створіть банківський рахунок, а потім перейдіть до панелі налаштування модуля Рахунків-фактур для установки способів оплати
     ErrorBillNotFound=Рахунок %s не існує
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Помилка, знижка вже використовується
     ErrorInvoiceAvoirMustBeNegative=Помилка, правильний рахунок-фактура повинен мати негативну суму
     ErrorInvoiceOfThisTypeMustBePositive=Помилка, такий тип рахунку-фактури повинен мати позитивну суму
     ErrorCantCancelIfReplacementInvoiceNotValidated=Помилка, неможливо відмінити рахунок-фактуру, який був замінений на іншій рахунок-фактуру, що знаходиться в статусі проекту
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Продавець
     BillTo=Покупець
     ActionsOnBill=Дії з рахунком-фактурою
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Поганий Покупець
     ConfirmClassifyPaidPartiallyReasonProductReturned=Продукція частково повернена
     ConfirmClassifyPaidPartiallyReasonOther=Сума, анульована з інших причин
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Такий вибір можливий, тільки якщо рахунок-фактура був забезпечений необхідним коментарем. (Наприклад, "Тільки податок, що відповідає фактично сплаченій ціні, надає права на вирахування")
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=У деяких країнах, цей вибір може бути можливим тільки, якщо ваш рахунок-фактура містить правильні відомості.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Використайте цей вибір, якщо усі інші не підходять
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>Поганий Покупець</b> - це замовник, який відмовляється оплачувати свої борги.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Цей вибір використовується при неповній оплаті, коли деяка продукція була повернена
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Використайте цей вибір, якщо усі інші не підходять, наприклад, в наступній ситуації: <br> - оплата не завершена, оскільки деякі товари були відправлені назад <br> - заявлена сума дуже важлива, тому що знижка була забута <br> У всіх випадках надмірно заявлена сума має бути виправлена в системі бухгалтерського обліку шляхом створення кредитних авізо.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Інший
     ConfirmClassifyAbandonReasonOtherDesc=Цей вибір використовуватиметься в усіх інших випадках. Наприклад, тому, що ви плануєте створити замінюючий рахунок-фактуру.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Підтвердити рахунок-фактуру
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=К-ть рахунків-фактур
    -NumberOfBillsByMonth=К-ть рахунків-фактур по місяцях
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Сума рахунків-фактур
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Сума рахунків-фактур за місяць (за вирахуванням податку)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Показати рахунок-фактуру
    @@ -260,9 +262,9 @@ Repeatables=Шаблони
     ChangeIntoRepeatableInvoice=Конвертувати в шаблон рахунки
     CreateRepeatableInvoice=Створити шаблон рахунка-фактури
     CreateFromRepeatableInvoice=Створити з шаблону рахунок-фактуру
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Рахунки-фактури і платежі Покупця
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Рахунки-фактури і платежі Покупця
     ProformaBill=Proforma Bill:
     Reduction=Скорочення
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Адреса виставляння
    -HelpEscompte=Ця знижка надана Покупцеві за достроковий платіж.
    -HelpAbandonBadCustomer=Від цієї суми відмовився Покупець (вважається поганим клієнтом) і вона вважається надзвичайною втратою.
    -HelpAbandonOther=Від цієї суми відмовилися через помилку (наприклад, неправильний клієнт або рахунок-фактура був замінений на іншій)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Код платежу
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Рахунок-фактура не вибраний
     CloneInvoice=Дублювати рахунок-фактуру
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Дії відключені оскільки рахунок-фактура був замінений
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=К-ть платежів
    +DescTaxAndDividendsArea=Ця зона представляє сумарну інформацію по платежах на спеціальні витрати. Тут будуть показані лише записи з платежами протягом фіксованого року.
    +NbOfPayments=No. of payments
     SplitDiscount=Розділити знижку на дві
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Введіть суму кожної з двох частин:
    -TotalOfTwoDiscountMustEqualsOriginal=Сума двох нових знижок має дорівнювати розміру первинної знижки.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Попередження! Рахунок чи рахунки вже існують
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Чек
     PaymentTypeShortCHQ=Чек
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=Он-лайн платіж
    -PaymentTypeShortVAD=Он-лайн платіж
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Проект
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Банківські реквізити
     BankCode=Код банку
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Номер рахунка
    -BankAccountNumberKey=Ключ
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=Номер IBAN
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=Номер BIC/SWIFT
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=товари залишаються у власності
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Застосувати
    @@ -463,7 +465,7 @@ Cheques=Чеки
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Показати усі несплачені рахунки-фактури
     ShowUnpaidLateOnly=Паказати лише прострочені несплачені рахунки-фактури
     PaymentInvoiceRef=Оплата рахунка-фактури %s
    @@ -474,21 +476,22 @@ Reported=Затриман
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Повернення платежу
     ListOfYourUnpaidInvoices=Список неоплачених рахунків
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/uk_UA/cashdesk.lang b/htdocs/langs/uk_UA/cashdesk.lang
    index c6cb40c26df..79323e7519d 100644
    --- a/htdocs/langs/uk_UA/cashdesk.lang
    +++ b/htdocs/langs/uk_UA/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/uk_UA/commercial.lang b/htdocs/langs/uk_UA/commercial.lang
    index 1a440031dca..8b3d9eb8b2a 100644
    --- a/htdocs/langs/uk_UA/commercial.lang
    +++ b/htdocs/langs/uk_UA/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/uk_UA/companies.lang b/htdocs/langs/uk_UA/companies.lang
    index fc7592571e3..0c4e45e969c 100644
    --- a/htdocs/langs/uk_UA/companies.lang
    +++ b/htdocs/langs/uk_UA/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Select a third party
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Delete a contact/address
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New third party
    -MenuNewCustomer=New customer
    -MenuNewProspect=New prospect
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=Company
     CompanyName=Company name
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Companies
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=Third parties
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
     ThirdPartyProspectsStats=Prospects
     ThirdPartyCustomers=Customers
     ThirdPartyCustomersStats=Customers
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Position
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Пропозиції
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Supplier
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Delete a company
     PersonalInformations=Personal data
     AccountancyCode=Accounting account
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Чек
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Staff
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=List of prospects
    -ListCustomersShort=List of customers
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Open
     ActivityCeased=Зачинено
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/uk_UA/dict.lang b/htdocs/langs/uk_UA/dict.lang
    index 61a7237f472..ad3a24e12f6 100644
    --- a/htdocs/langs/uk_UA/dict.lang
    +++ b/htdocs/langs/uk_UA/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/uk_UA/ecm.lang b/htdocs/langs/uk_UA/ecm.lang
    index 5200fa30b1d..43ddd3bf36f 100644
    --- a/htdocs/langs/uk_UA/ecm.lang
    +++ b/htdocs/langs/uk_UA/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/uk_UA/errors.lang b/htdocs/langs/uk_UA/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/uk_UA/errors.lang
    +++ b/htdocs/langs/uk_UA/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/uk_UA/help.lang b/htdocs/langs/uk_UA/help.lang
    index 6129cae362d..da776683a6a 100644
    --- a/htdocs/langs/uk_UA/help.lang
    +++ b/htdocs/langs/uk_UA/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Commercial
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/uk_UA/holiday.lang b/htdocs/langs/uk_UA/holiday.lang
    index 7add4c4483f..0f12aecc9c8 100644
    --- a/htdocs/langs/uk_UA/holiday.lang
    +++ b/htdocs/langs/uk_UA/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Description
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=Delete
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Підстава
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/uk_UA/install.lang b/htdocs/langs/uk_UA/install.lang
    index fb521c0c085..c92d83988ff 100644
    --- a/htdocs/langs/uk_UA/install.lang
    +++ b/htdocs/langs/uk_UA/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/uk_UA/interventions.lang b/htdocs/langs/uk_UA/interventions.lang
    index 02430a826d3..53e3ed2f550 100644
    --- a/htdocs/langs/uk_UA/interventions.lang
    +++ b/htdocs/langs/uk_UA/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/uk_UA/main.lang b/htdocs/langs/uk_UA/main.lang
    index b927b6f9165..341eaf28f03 100644
    --- a/htdocs/langs/uk_UA/main.lang
    +++ b/htdocs/langs/uk_UA/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=Файл не завантажений. Переконайтеся, що розмір не перевищує максимально допустимий, що достатньо вільного місця на диску і що не існує вже файл з таким же ім'ям в цій директорії.
     ErrorInternalErrorDetected=Виявлено помилку
     ErrorWrongHostParameter=Неправильний параметр хосту
    -ErrorYourCountryIsNotDefined=Ваша країна не визначена. Перейти до Головна-Налаштування-Редагувати і знову відправте форму.\n
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Головна
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Зачинено
     Closed2=Зачинено
     NotClosed=Not closed
     Enabled=Дозволено
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Update
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Інший
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Інша інформація
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Кредитна картка
     ValidatePayment=Підтвердити платіж
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Тест
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tools
     ModulesSystemTools=Modules tools
     Test=Тест
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Календар
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Події
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Призначено
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/uk_UA/other.lang b/htdocs/langs/uk_UA/other.lang
    index 8ef8cc30090..021bfe65985 100644
    --- a/htdocs/langs/uk_UA/other.lang
    +++ b/htdocs/langs/uk_UA/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Description
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/uk_UA/paybox.lang b/htdocs/langs/uk_UA/paybox.lang
    index 592fcd05f00..a65cc41e46b 100644
    --- a/htdocs/langs/uk_UA/paybox.lang
    +++ b/htdocs/langs/uk_UA/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/uk_UA/projects.lang b/htdocs/langs/uk_UA/projects.lang
    index feeb06a5af4..1210ea29243 100644
    --- a/htdocs/langs/uk_UA/projects.lang
    +++ b/htdocs/langs/uk_UA/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/uk_UA/propal.lang b/htdocs/langs/uk_UA/propal.lang
    index 68ba1ad545f..e72bdcaae4a 100644
    --- a/htdocs/langs/uk_UA/propal.lang
    +++ b/htdocs/langs/uk_UA/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Виставлений
     PropalStatusDraftShort=Проект
    -PropalStatusValidatedShort=Підтверджений
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Зачинено
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/uk_UA/website.lang b/htdocs/langs/uk_UA/website.lang
    index 9116f5cc204..396d576e87e 100644
    --- a/htdocs/langs/uk_UA/website.lang
    +++ b/htdocs/langs/uk_UA/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Code
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Читати
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/uz_UZ/admin.lang b/htdocs/langs/uz_UZ/admin.lang
    index d7042e784dc..8d6e8e39b04 100644
    --- a/htdocs/langs/uz_UZ/admin.lang
    +++ b/htdocs/langs/uz_UZ/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Development
     VersionUnknown=Unknown
     VersionRecommanded=Recommended
     FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Handler to save sessions
     SessionSavePath=Storage session localization
     PurgeSessions=Purge of sessions
     ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself).
    -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Lock new connections
    -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user <b>%s</b> will be able to connect after that.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Remove connection lock
     YourSession=Your session
    -Sessions=Users session
    +Sessions=Users sessions
     WebUserGroup=Web server user/group
    -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Database charset to store data
     DBSortingCharset=Database charset to sort data
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=External user
     InternalUsers=Internal users
     ExternalUsers=External users
     GUISetup=Display
    -SetupArea=Setup area
    +SetupArea=Setup
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Form to test file upload (according to setup)
     IfModuleEnabled=Note: yes is effective only if module <b>%s</b> is enabled
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Code can't contain value 0
     DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr of characters to trigger search: %s
     NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Preview not available
     ThemeCurrentlyActive=Theme currently active
     CurrentTimeZone=TimeZone PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Space
     Table=Table
     Fields=Fields
    @@ -111,14 +111,14 @@ NotConfigured=Module/Application not configured
     Active=Active
     SetupShort=Setup
     OtherOptions=Other options
    -OtherSetup=Other setup
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Decimal separator
     CurrentValueSeparatorThousand=Thousand separator
     Destination=Destination
     IdModule=Module ID
     IdPermissions=Permissions ID
     LanguageBrowserParameter=Parameter %s
    -LocalisationDolibarrParameters=Localisation parameters
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Client Time Zone (user)
     ClientHour=Client time (user)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Current session timeout
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=Widget
     Boxes=Widgets
     MaxNbOfLinesForBoxes=Max number of lines for widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE)
     AutoDetectLang=Autodetect (browser language)
     FeatureDisabledInDemo=Feature disabled in demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Only elements from <a href="%s">enabled modules</a> are shown.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Find external app/modules
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=New
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Reference websites to find more modules...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Link
     BoxesAvailable=Widgets available
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Do no store clear passwords in database but store only e
     MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended)
     InstrucToEncodePass=To have password encoded into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="...";</b><br>by<br><b>$dolibarr_main_db_pass="crypted:%s";</b>
     InstrucToClearPass=To have password decoded (clear) into the <b>conf.php</b> file, replace the line <br><b>$dolibarr_main_db_pass="crypted:...";</b><br>by<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working.
     Feature=Feature
     DolibarrLicense=License
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Current menu handler
     MeasuringUnit=Measuring unit
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Notice period
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=Emails setup
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Method to use to send EMails
    -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required
    -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required
    -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Method to use to send SMS
    -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Module setup
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Multi-modules tools
     ModuleFamilyExperimental=Experimental modules
     ModuleFamilyFinancial=Financial Modules (Accounting/Treasury)
     ModuleFamilyECM=Electronic Content Management (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Menu handlers
     MenuAdmin=Menu editor
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Do not use in production
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Step %s
    -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr current version
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Minimum length
     LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Examples with current running setup
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Input test form
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Skins directory
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=You can set each global options related to the PDF generation
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Rules to forge address boxes
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Hide products description on generated PDF
     HideRefOnPDF=Hide products ref. on generated PDF
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Parameters to secure URLs
     SecurityTokenIsUnique=Use a unique securekey parameter for each URL
     EnterRefToBuildUrl=Enter reference for object %s
     GetSecuredUrl=Get calculated URL
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Old VAT rate
     NewVATRates=New VAT rate
     PriceBaseTypeToChange=Modify on prices with base reference value defined on
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Select list
     ExtrafieldSelectList = Select from table
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Password
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Checkboxes from table
     ExtrafieldLink=Link to an object
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Default link
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
     ExternalModule=External module - Installed into directory %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Erase all current barcode values
     ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
     AllBarcodeReset=All barcode values have been removed
    -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Field
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Users & groups
    +Module0Name=Users & Groups
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Third parties
    -Module1Desc=Companies and contact management (customers, prospects...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Commercial
     Module2Desc=Commercial management
     Module10Name=Accounting
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Proposals
     Module20Desc=Commercial proposal management
     Module22Name=Mass E-mailings
    @@ -495,7 +501,7 @@ Module23Desc=Monitoring the consumption of energies
     Module25Name=Customer Orders
     Module25Desc=Customer order management
     Module30Name=Invoices
    -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Suppliers
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Stock management (products)
     Module53Name=Services
     Module53Desc=Service management
     Module54Name=Contracts/Subscriptions
    -Module54Desc=Management of contracts (services or reccuring subscriptions)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Barcodes
     Module55Desc=Barcode management
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Expense and trip notes
     Module75Desc=Expense and trip notes management
     Module80Name=Shipments
     Module80Desc=Shipments and delivery order management
    -Module85Name=Banks and cash
    +Module85Name=Banks and Cash
     Module85Desc=Management of bank or cash accounts
    -Module100Name=External site
    -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=LDAP directory synchronisation
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke integration
     Module240Name=Data exports
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Data imports
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Members
     Module310Desc=Foundation members management
     Module320Name=RSS Feed
     Module320Desc=Add RSS feed inside Dolibarr screen pages
    -Module330Name=Bookmarks
    -Module330Desc=Bookmarks management
    -Module400Name=Projects/Opportunities/Leads
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Webcalendar
     Module410Desc=Webcalendar integration
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module510Desc=Record and track employee payments
     Module520Name=Loan
     Module520Desc=Management of loans
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Donations
     Module700Desc=Donation management
     Module770Name=Expense reports
    -Module770Desc=Management and claim expense reports (transportation, meal, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Mass mail document generation
     Module1780Name=Tags/Categories
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Dynamic Prices
     Module2200Desc=Enable the usage of math expressions for prices
     Module2300Name=Scheduled jobs
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Multi-company
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Leave Requests management
    -Module20000Desc=Declare and follow employees leaves requests
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lot or serial number, eat-by and sell-by date management on products
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Point of sales
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Point of sales
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Accounting (advanced)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Margins
     Module59000Desc=Module to manage margins
     Module60000Name=Commissions
     Module60000Desc=Module to manage commissions
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Resources
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Read customer invoices
    @@ -651,9 +661,9 @@ Permission32=Create/modify products
     Permission34=Delete products
     Permission36=See/manage hidden products
     Permission38=Export products
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Delete projects (shared project and projects i'm contact for)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Read interventions
     Permission62=Create/modify interventions
    @@ -686,7 +696,7 @@ Permission109=Delete sendings
     Permission111=Read financial accounts
     Permission112=Create/modify/delete and compare transactions
     Permission113=Setup financial accounts (create, manage categories)
    -Permission114=Reconciliate transactions
    +Permission114=Reconcile transactions
     Permission115=Export transactions and account statements
     Permission116=Transfers between accounts
     Permission117=Manage cheques dispatching
    @@ -694,15 +704,15 @@ Permission121=Read third parties linked to user
     Permission122=Create/modify third parties linked to user
     Permission125=Delete third parties linked to user
     Permission126=Export third parties
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Read providers
     Permission147=Read stats
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Read contracts/subscriptions
     Permission162=Create/modify contracts/subscriptions
     Permission163=Activate a service/subscription of a contract
    @@ -725,7 +735,7 @@ Permission187=Close supplier orders
     Permission188=Cancel supplier orders
     Permission192=Create lines
     Permission193=Cancel lines
    -Permission194=Read the bandwith lines
    +Permission194=Read the bandwidth lines
     Permission202=Create ADSL connections
     Permission203=Order connections orders
     Permission204=Order connections
    @@ -750,12 +760,12 @@ Permission244=See the contents of the hidden categories
     Permission251=Read other users and groups
     PermissionAdvanced251=Read other users
     Permission252=Read permissions of other users
    -Permission253=Create/modify other users, groups and permisssions
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Create/modify internal/external users and permissions
     Permission254=Create/modify external users only
     Permission255=Modify other users password
     Permission256=Delete or disable other users
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Read CA
     Permission272=Read invoices
     Permission273=Issue invoices
    @@ -765,7 +775,7 @@ Permission283=Delete contacts
     Permission286=Export contacts
     Permission291=Read tariffs
     Permission292=Set permissions on the tariffs
    -Permission293=Modify costumers tariffs
    +Permission293=Modify customers tariffs
     Permission300=Read bar codes
     Permission301=Create/modify bar codes
     Permission302=Delete bar codes
    @@ -787,11 +797,9 @@ Permission401=Read discounts
     Permission402=Create/modify discounts
     Permission403=Validate discounts
     Permission404=Delete discounts
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=Delete salaries
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Export salaries
     Permission520=Read Loans
     Permission522=Create/modify loans
    @@ -844,8 +852,8 @@ Permission1251=Run mass imports of external data into database (data load)
     Permission1321=Export customer invoices, attributes and payments
     Permission1322=Reopen a paid bill
     Permission1421=Export customer orders and attributes
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Delete leave requests
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Prospect potential level
     DictionaryCanton=State/Province
     DictionaryRegion=Regions
    @@ -894,7 +902,7 @@ DictionaryVAT=VAT Rates or Sales Tax Rates
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Payment terms
     DictionaryPaymentModes=Payment modes
    -DictionaryTypeContact=Contact/Address types
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Paper formats
    @@ -908,47 +916,47 @@ DictionarySource=Origin of proposals/orders
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Models for chart of accounts
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Emails templates
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Units
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Setup saved
     SetupNotSaved=Setup not saved
     BackToModuleList=Back to modules list
    -BackToDictionaryList=Back to dictionaries list
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=VAT Management
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Rate
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Reports on local taxes
     CalcLocaltax1=Sales - Purchases
     CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases
    @@ -958,7 +966,9 @@ CalcLocaltax3=Sales
     CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales
     LabelUsedByDefault=Label used by default if no translation can be found for code
     LabelOnDocuments=Label on documents
    -NbOfDays=Nb of days
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=At end of month
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Database user
     DatabasePassword=Database password
     Tables=Tables
     TableName=Table name
    -NbOfRecord=Nb of records
    +NbOfRecord=No. of records
     Host=Server
     DriverType=Driver type
     SummarySystem=System information summary
    @@ -996,7 +1006,7 @@ Skin=Skin theme
     DefaultSkin=Default skin theme
     MaxSizeList=Max length for list
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Message of the day
     MessageLogin=Login page message
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Permanent search form on left menu
     DefaultLanguage=Default language to use (language code)
     EnableMultilangInterface=Enable multilingual interface
     EnableShowLogo=Show logo on left menu
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Name
     CompanyAddress=Address
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Owner of bank account %s
     BankModuleNotActive=Bank accounts module not enabled
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Alerts
    -DelaysOfToleranceBeforeWarning=Tolerance delays before warning
    -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Other menu entries manage optional parameters.
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Security audit events
    -Audit=Audit
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=About Browser
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Browser name
     BrowserOS=Browser OS
     ListOfSecurityEvents=List of Dolibarr security events
     SecurityEventsPurged=Security events purged
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only.
     SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here
     AvailableModules=Available app/modules
     ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Available triggers
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Insert all reference data. You can add your values to the default
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Limits/Precision setup
    -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices
     MAIN_MAX_DECIMALS_TOT=Max decimals for total prices
     MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add <b>...</b> after this number if you want to see <b>...</b> when number is truncated when shown on screen)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Net unit price of a product
     TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding
     ParameterActiveForNextInputOnly=Parameter effective for next input only
    -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page.
    -NoEventFoundWithCriteria=No security event has been found for such search criterias.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=See your local sendmail setup
     BackupDesc=To make a complete backup of Dolibarr, you must:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Archived directory should be stored in a secure place.
     BackupDescY=The generated dump file should be stored in a secure place.
    -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=To restore a Dolibarr backup, you must:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL import
     ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP
     DownloadMoreSkins=More skins to download
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Show professionnal id with addresses on documents
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Disable meteo view
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Test login to API
    -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=External access
     MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet)
     MAIN_PROXY_HOST=Name/Address of proxy server
     MAIN_PROXY_PORT=Port of proxy server
     MAIN_PROXY_USER=Login to use the proxy server
     MAIN_PROXY_PASS=Password to use the proxy server
    -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Complementary attributes
     ExtraFieldsLines=Complementary attributes (lines)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
     ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines)
     ExtraFieldsThirdParties=Complementary attributes (thirdparty)
    -ExtraFieldsContacts=Complementary attributes (contact/address)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Complementary attributes (member)
     ExtraFieldsMemberType=Complementary attributes (member type)
     ExtraFieldsCustomerInvoices=Complementary attributes (invoices)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Path to documents
     PathDirectory=Directory
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=You must at least enable 1 module
    -ClassNotFoundIntoPathWarning=Class %s not found into PHP path
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Condition is currently %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Search optimization
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance.
    -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Edition of field %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Get barcode
     ##### Module password generation
     PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=EMail required to create a new user
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Companies module setup
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Documents templates
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark on draft document
     JSOnPaimentBill=Activate feature to autofill payment lines on payment form
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at following link: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=An export link to <b>%s</b> format is available at follow
     BillsSetup=Invoices module setup
     BillsNumberingModule=Invoices and credit notes numbering model
     BillsPDFModules=Invoice documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Credit note
     CreditNotes=Credit notes
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Manage a Login for each member
     AdherentMailRequired=EMail required to create a new member
     MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP Setup
     LDAPGlobalParameters=Global parameters
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Full name
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Example : cn
     LDAPFieldName=Name
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Performance setup/optimizing report
    -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
    -NotInstalled=Not installed, so your server is not slow down by this.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Products module setup
     ServiceSetup=Services module setup
     ProductServiceSetup=Products and Services modules setup
     NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
    -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Default barcode type to use for products
     SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Sending module setup
     SendingsReceiptModel=Sending receipt model
     SendingsNumberingModules=Sendings numbering modules
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text on shipments
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Products deliveries receipt numbering module
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Advanced editor
     ActivateFCKeditor=Activate advanced editor for:
     FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services)
     FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing)
     FCKeditorForUserSignature=WYSIWIG creation/edition of user signature
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu deleted
     Menus=Menus
    @@ -1548,7 +1562,7 @@ DetailRight=Condition to display unauthorized grey menus
     DetailLangs=Lang file name for label code translation
     DetailUser=Intern / Extern / All
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Menu change
     DeleteMenu=Delete menu entry
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=VAT is due:<br>- on delivery for goods (we use invoice date
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=On delivery
     OnPayment=On payment
     OnInvoice=On invoice
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Purchase account. code
     AgendaSetup=Events and agenda module setup
     PasswordTogetVCalExport=Key to authorize export link
     PastDelayVCalExport=Do not export event older than
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Point of sales
     CashDeskSetup=Point of sales module setup
    -CashDeskThirdPartyForSell=Default generic third party to use for sells
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Default account to use to receive cash payments
     CashDeskBankAccountForCheque= Default account to use to receive payments by cheque
     CashDeskBankAccountForCB= Default account to use to receive payments by credit cards
    -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease
    -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management
    -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required.
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Bookmark module setup
    -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu
     ##### WebServices #####
     WebServicesSetup=Webservices module setup
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Multi-company module setup
     ##### Suppliers #####
     SuppliersSetup=Supplier module setup
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Supplier invoices numbering models
     IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Project module setup
     ProjectsModelModule=Project reports document model
     TasksNumberingModules=Tasks numbering module
     TaskModelModule=Tasks reports document model
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for E
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=List of fixed notifications
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Wizard to build database backup dump file
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Background color for even table lines
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/uz_UZ/banks.lang b/htdocs/langs/uz_UZ/banks.lang
    index 1d42581c344..5bc061f31f3 100644
    --- a/htdocs/langs/uz_UZ/banks.lang
    +++ b/htdocs/langs/uz_UZ/banks.lang
    @@ -7,7 +7,7 @@ BankName=Bank name
     FinancialAccount=Account
     BankAccount=Bank account
     BankAccounts=Bank accounts
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Show Account
     AccountRef=Financial account ref
     AccountLabel=Financial account label
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Account address
     BankAccountCountry=Account country
     BankAccountOwner=Account owner name
     BankAccountOwnerAddress=Account owner address
    -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Create account
     NewBankAccount=New account
     NewFinancialAccount=New financial account
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Entries to reconcile
     Conciliable=Can be reconciled
     Conciliate=Reconcile
     Conciliation=Reconciliation
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Reconciliation late
     IncludeClosedAccount=Include closed accounts
     OnlyOpenedAccount=Only open accounts
    @@ -104,7 +105,7 @@ SocialContributionPayment=Social/fiscal tax payment
     BankTransfer=Bank transfer
     BankTransfers=Bank transfers
     MenuBankInternalTransfer=Internal transfer
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=From
     TransferTo=To
     TransferFromToDone=A transfer from <b>%s</b> to <b>%s</b> of <b>%s</b> %s has been recorded.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
     BankChecks=Bank checks
     BankChecksToReceipt=Checks awaiting deposit
     ShowCheckReceipt=Show check deposit receipt
    -NumberOfCheques=Nb of check
    +NumberOfCheques=No. of check
     DeleteTransaction=Delete entry
     ConfirmDeleteTransaction=Are you sure you want to delete this entry?
     ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    @@ -135,8 +136,8 @@ BankTransactionLine=Bank entry
     AllAccounts=All bank and cash accounts
     BackToAccount=Back to account
     ShowAllAccounts=Show for all accounts
    -FutureTransaction=Transaction in futur. No way to conciliate.
    -SelectChequeTransactionAndGenerate=Select/filter checks to include into the check deposit receipt and click on "Create".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=To reconcile?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/uz_UZ/bills.lang b/htdocs/langs/uz_UZ/bills.lang
    index f76ff018f9d..ed988d580e2 100644
    --- a/htdocs/langs/uz_UZ/bills.lang
    +++ b/htdocs/langs/uz_UZ/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Proforma invoice
     InvoiceProFormaDesc=<b>Proforma invoice</b> is an image of a true invoice but has no accountancy value.
     InvoiceReplacement=Replacement invoice
     InvoiceReplacementAsk=Replacement invoice for invoice
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Credit note
     InvoiceAvoirAsk=Credit note to correct invoice
    -InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to solve fact that an invoice has an amount that differs than amount really paid (because customer paid too much by error, or will not paid completely since he returned some products for example).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Paid back
     DeletePayment=Delete payment
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Suppliers payments
     ReceivedPayments=Received payments
     ReceivedCustomersPayments=Payments received from customers
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Received customers payments to validate
     PaymentsReportsForYear=Payments reports for %s
     PaymentsReports=Payments reports
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Payment terms
     PaymentAmount=Payment amount
     ValidatePayment=Validate payment
     PaymentHigherThanReminderToPay=Payment higher than reminder to pay
    -HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess received for each overpaid invoices.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Classify 'Paid'
     ClassifyPaidPartially=Classify 'Paid partially'
     ClassifyCanceled=Classify 'Abandoned'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Closed (unpaid)
     BillStatusClosedPaidPartially=Paid (partially)
     BillShortStatusDraft=Draft
     BillShortStatusPaid=Paid
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Paid
     BillShortStatusCanceled=Abandoned
     BillShortStatusValidated=Validated
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Closed
     BillShortStatusClosedPaidPartially=Paid (partially)
     PaymentStatusToValidShort=To validate
    -ErrorVATIntraNotConfigured=Intracommunautary VAT number not yet defined
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=No default payment mode defined. Go to Invoice module setup to fix this.
     ErrorCreateBankAccount=Create a bank account, then go to Setup panel of Invoice module to define payment modes
     ErrorBillNotFound=Invoice %s does not exist
    -ErrorInvoiceAlreadyReplaced=Error, you try to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Error, discount already used
     ErrorInvoiceAvoirMustBeNegative=Error, correct invoice must have a negative amount
     ErrorInvoiceOfThisTypeMustBePositive=Error, this type of invoice must have a positive amount
     ErrorCantCancelIfReplacementInvoiceNotValidated=Error, can't cancel an invoice that has been replaced by another invoice that is still in draft status
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=To
     ActionsOnBill=Actions on invoice
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Bad customer
     ConfirmClassifyPaidPartiallyReasonProductReturned=Products partially returned
     ConfirmClassifyPaidPartiallyReasonOther=Amount abandoned for other reason
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice have been provided with suitable comment. (Example «Only the tax corresponding to the price that have been actually paid gives rights to deduction»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct note.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Use this choice if all other does not suit
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuse to pay his debt.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=This choice is used when payment is not complete because some of products were returned
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all other does not suit, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Other
     ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Validate invoice
     UnvalidateBill=Unvalidate invoice
    -NumberOfBills=Nb of invoices
    -NumberOfBillsByMonth=Nb of invoices by month
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Amount of invoices
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Amount of invoices by month (net of tax)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=Show invoice
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=Customer invoices and invoice's lines
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Customer invoices and payments
    -ExportDataset_invoice_1=Customer invoices list and invoice's lines
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Customer invoices and payments
     ProformaBill=Proforma Bill:
     Reduction=Reduction
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Bill address
    -HelpEscompte=This discount is a discount granted to customer because its payment was made before term.
    -HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose.
    -HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=Payment id
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=No invoice selected
     CloneInvoice=Clone invoice
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb of payments
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=Split discount in two
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Input amount for each of two parts :
    -TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Related invoice
     RelatedBills=Related invoices
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Check
     PaymentTypeShortCHQ=Check
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=On line payment
    -PaymentTypeShortVAD=On line payment
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Draft
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=Bank details
     BankCode=Bank code
    -DeskCode=Desk code
    +DeskCode=Office code
     BankAccountNumber=Account number
    -BankAccountNumberKey=Key
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN number
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT number
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Payment by transfer on the following bank acc
     VATIsNotUsedForInvoice=* Non applicable VAT art-293B of CGI
     LawApplicationPart1=By application of the law 80.335 of 12/05/80
     LawApplicationPart2=the goods remain the property of
    -LawApplicationPart3=the seller until the complete cashing of
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=their price.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Apply
    @@ -463,7 +465,7 @@ Cheques=Checks
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Show all unpaid invoices
     ShowUnpaidLateOnly=Show late unpaid invoices only
     PaymentInvoiceRef=Payment invoice %s
    @@ -474,21 +476,22 @@ Reported=Delayed
     DisabledBecausePayments=Not possible since there are some payments
     CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least one invoice classified paid
     ExpectedToPay=Expected payment
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Paid by this payment
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/uz_UZ/cashdesk.lang b/htdocs/langs/uz_UZ/cashdesk.lang
    index 1f51f375e89..353c4ee93ab 100644
    --- a/htdocs/langs/uz_UZ/cashdesk.lang
    +++ b/htdocs/langs/uz_UZ/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Show company
     ShowStock=Show warehouse
     DeleteArticle=Click to remove this article
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Point of sales
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/uz_UZ/commercial.lang b/htdocs/langs/uz_UZ/commercial.lang
    index efadc44d700..96b8abbb937 100644
    --- a/htdocs/langs/uz_UZ/commercial.lang
    +++ b/htdocs/langs/uz_UZ/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Phone call
     ActionAC_FAX=Send fax
     ActionAC_PROP=Send proposal by mail
     ActionAC_EMAIL=Send Email
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Meetings
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Send customer invoice by mail
    @@ -72,8 +73,8 @@ StatusProsp=Prospect status
     DraftPropals=Draft commercial proposals
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/uz_UZ/companies.lang b/htdocs/langs/uz_UZ/companies.lang
    index b3e1e7b6c86..e5de5614886 100644
    --- a/htdocs/langs/uz_UZ/companies.lang
    +++ b/htdocs/langs/uz_UZ/companies.lang
    @@ -5,13 +5,13 @@ SelectThirdParty=Select a third party
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Delete a contact/address
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=New third party
    -MenuNewCustomer=New customer
    -MenuNewProspect=New prospect
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=New private individual
     NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
     CreateDolibarrThirdPartySupplier=Create a third party (vendor)
     CreateThirdPartyOnly=Create third party
     CreateThirdPartyAndContact=Create a third party + a child contact
    @@ -25,22 +25,22 @@ ThirdPartyContact=Third party contact/address
     Company=Company
     CompanyName=Company name
     AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNameShort=Alias Name
     Companies=Companies
    -CountryIsInEEC=Country is inside European Economic Community
    -ThirdPartyName=Third party name
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
     ThirdPartyEmail=Third party email
    -ThirdParty=Third party
    -ThirdParties=Third parties
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=Prospects
     ThirdPartyProspectsStats=Prospects
     ThirdPartyCustomers=Customers
     ThirdPartyCustomersStats=Customers
     ThirdPartyCustomersWithIdProf12=Customers with %s or %s
     ThirdPartySuppliers=Vendors
    -ThirdPartyType=Third party type
    +ThirdPartyType=Type of company
     Individual=Private individual
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Parent company
     Subsidiaries=Subsidiaries
     ReportByMonth=Report by month
    @@ -75,12 +75,12 @@ Zip=Zip Code
     Town=City
     Web=Web
     Poste= Position
    -DefaultLang=Language by default
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
     VATIsNotUsed=Sales tax is not used
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Proposals
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Syntax is valid
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=This customer has a default discount of <b>%s%%</b>
     CompanyHasNoRelativeDiscount=This customer has no relative discount by default
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=This customer still has credit notes for <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=None
    -Supplier=Supplier
    +Supplier=Vendor
     AddContact=Create contact
     AddContactAddress=Create contact/address
     EditContact=Edit contact
    @@ -303,22 +303,22 @@ AddThirdParty=Create third party
     DeleteACompany=Delete a company
     PersonalInformations=Personal data
     AccountancyCode=Accounting account
    -CustomerCode=Customer code
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Customer code, unique for all customers
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Required if third party is a customer or prospect
     RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Validity controled by module
    -ThisIsModuleRules=This is rules for this module
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=Prospect to contact
     CompanyDeleted=Company "%s" deleted from database.
     ListOfContacts=List of contacts/addresses
    -ListOfContactsAddresses=List of contacts/adresses
    -ListOfThirdParties=List of third parties
    -ShowCompany=Show third party
    +ListOfContactsAddresses=List of contacts/addresses
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Show contact
     ContactsAllShort=All (No filter)
     ContactType=Contact type
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=This contact is not a contact for any commercial proposa
     NoContactForAnyContract=This contact is not a contact for any contract
     NoContactForAnyInvoice=This contact is not a contact for any invoice
     NewContact=New contact
    -NewContactAddress=New contact/address
    +NewContactAddress=New Contact/Address
     MyContacts=My contacts
     Capital=Capital
     CapitalOf=Capital of %s
     EditCompany=Edit company
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Check
    -VATIntraCheckDesc=The link <b>%s</b> allows to ask the european VAT checker service. An external internet access from server is required for this service to work.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Nor prospect, nor customer
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Staff
     ProspectLevelShort=Potential
     ProspectLevel=Prospect potential
    @@ -387,12 +387,12 @@ ExportCardToFormat=Export card to format
     ContactNotLinkedToCompany=Contact not linked to any third party
     DolibarrLogin=Dolibarr login
     NoDolibarrAccess=No Dolibarr access
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Contacts and properties
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Price level
     DeliveryAddress=Delivery address
     AddAddress=Add address
    @@ -402,16 +402,16 @@ DeleteFile=Delete file
     ConfirmDeleteFile=Are you sure you want to delete this file?
     AllocateCommercial=Assigned to sales representative
     Organization=Organization
    -FiscalYearInformation=Information on the fiscal year
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Starting month of the fiscal year
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=List of prospects
    -ListCustomersShort=List of customers
    -ThirdPartiesArea=Third parties and contact area
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Total of unique third parties
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Open
     ActivityCeased=Closed
     ThirdPartyIsClosed=Third party is closed
    @@ -420,15 +420,15 @@ CurrentOutstandingBill=Current outstanding bill
     OutstandingBill=Max. for outstanding bill
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=The code is free. This code can be modified at any time.
     ManagingDirectors=Manager(s) name (CEO, director, president...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/uz_UZ/dict.lang b/htdocs/langs/uz_UZ/dict.lang
    index 61a7237f472..ad3a24e12f6 100644
    --- a/htdocs/langs/uz_UZ/dict.lang
    +++ b/htdocs/langs/uz_UZ/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Heard Island and McDonald
     CountryVA=Holy See (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hong Kong
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=India
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=North Korea
     CountryKR=South Korea
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lao
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mongolia
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad and Tobago
     CountryTR=Turkey
     CountryTM=Turkmenistan
    -CountryTC=Turks and Cailos Islands
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraine
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Mauritius rupees
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Norwegian krones
    -CurrencySingNOK=Norwegian krone
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Tunisian dinars
     CurrencySingTND=Tunisian dinar
     CurrencyUSD=US Dollars
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Word of mouth
     DemandReasonTypeSRC_PARTNER=Partner
     DemandReasonTypeSRC_EMPLOYEE=Employee
     DemandReasonTypeSRC_SPONSORING=Sponsorship
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Format 4A0
     PaperFormatEU2A0=Format 2A0
    diff --git a/htdocs/langs/uz_UZ/ecm.lang b/htdocs/langs/uz_UZ/ecm.lang
    index 5200fa30b1d..43ddd3bf36f 100644
    --- a/htdocs/langs/uz_UZ/ecm.lang
    +++ b/htdocs/langs/uz_UZ/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb of documents in directory
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Directory
     ECMSectionManual=Manual directory
     ECMSectionAuto=Automatic directory
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=Show directory
     DeleteSection=Remove directory
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/uz_UZ/errors.lang b/htdocs/langs/uz_UZ/errors.lang
    index 0ca7488b8cb..a5555f85c82 100644
    --- a/htdocs/langs/uz_UZ/errors.lang
    +++ b/htdocs/langs/uz_UZ/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=Failed to write in directory %s
     ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Some required fields were not filled.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter <b>safe_mode</b> is enabled on this PHP, check that Dolibarr php files owns to web server user (or group).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=No accountancy module activated
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP matching is not complete.
     ErrorLDAPMakeManualTest=A .ldif file has been generated in directory %s. Try to load it manually from command line to have more information on errors.
    -ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "statut not started" if field "done by" is also filled.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Ref used for creation already exists.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript must not be disabled to have this feature working. To enable/disable Javascript, go to menu Home->Setup->Display.
     ErrorPasswordsMustMatch=Both typed passwords must match each other
    -ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> en provide the error code <b>%s</b> in your message, or even better by adding a screen copy of this page.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Wrong value for field number <b>%s</b> (value '<b>%s</b>' does not match regex rule <b>%s</b>)
     ErrorFieldValueNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a value available into field <b>%s</b> of table <b>%s</b>)
     ErrorFieldRefNotIn=Wrong value for field number <b>%s</b> (value '<b>%s</b>' is not a <b>%s</b> existing ref)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
     ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
     ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Error on mask
     ErrorBadMaskFailedToLocatePosOfSequence=Error, mask without sequence number
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Error, bad reset value
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Error. Select at least one entry.
    -ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transation that is conciliated
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s is assigned to another third
     ErrorFailedToSendPassword=Failed to send password
     ErrorFailedToLoadRSSFile=Fails to get RSS feed. Try to add constant MAIN_SIMPLEXMLLOAD_DEBUG if error messages does not provide enough information.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=User with login <b>%s</b> could not be found.
     ErrorLoginHasNoEmail=This user has no email address. Process aborted.
     ErrorBadValueForCode=Bad value for security code. Try again with new value...
     ErrorBothFieldCantBeNegative=Fields %s and %s can't be both negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=User account <b>%s</b> used to execute web server has no permission for that
     ErrorNoActivatedBarcode=No barcode type activated
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=A bookmark with this title or this target (URL) alr
     WarningPassIsEmpty=Warning, database password is empty. This is a security hole. You should add a password to your database and change your conf.php file to reflect this.
     WarningConfFileMustBeReadOnly=Warning, your config file (<b>htdocs/conf/conf.php</b>) can be overwritten by the web server. This is a serious security hole. Modify permissions on file to be in read only mode for operating system user used by Web server. If you use Windows and FAT format for your disk, you must know that this file system does not allow to add permissions on file, so can't be completely safe.
     WarningsOnXLines=Warnings on <b>%s</b> source record(s)
    -WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other setup).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/uz_UZ/help.lang b/htdocs/langs/uz_UZ/help.lang
    index 6129cae362d..da776683a6a 100644
    --- a/htdocs/langs/uz_UZ/help.lang
    +++ b/htdocs/langs/uz_UZ/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Online real time / remote support
     OtherSupport=Other support
     ToSeeListOfAvailableRessources=To contact/see available resources:
     HelpCenter=Help center
    -DolibarrHelpCenter=Dolibarr help and support center
    -ToGoBackToDolibarr=Otherwise, click <a href="%s">here to use Dolibarr</a>
    -TypeOfSupport=Source of support
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Community (free)
     TypeSupportCommercial=Commercial
     TypeOfHelp=Type
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Efficiency
     TypeHelpOnly=Help only
     TypeHelpDev=Help+Development
    -TypeHelpDevForm=Help+Development+Formation
    -ToGetHelpGoOnSparkAngels1=Some companies can provide a fast (sometime immediate) and more efficient online support by taking control of your computer. Such helpers can be found on <b>%s</b> web site:
    -ToGetHelpGoOnSparkAngels3=You can also go to the list of all available coaches for Dolibarr, for this click on button
    -ToGetHelpGoOnSparkAngels2=Sometimes, there is no company available at the moment you make your search, so think to change the filter to look for "all availability". You will be able to send more requests.
    -BackToHelpCenter=Otherwise, click here to go <a href="%s">back to help center home page</a>.
    -LinkToGoldMember=You can call one of the coach preselected by Dolibarr for your language (%s) by clicking his Widget (status and maximum price are automatically updated):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Supported languages
    -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=For official Dolibarr support in your language: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/uz_UZ/holiday.lang b/htdocs/langs/uz_UZ/holiday.lang
    index 1c19d69732a..951af61f273 100644
    --- a/htdocs/langs/uz_UZ/holiday.lang
    +++ b/htdocs/langs/uz_UZ/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Leaves
    -CPTitreMenu=Leaves
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=New leave request
    -NotActiveModCP=You must enable the module Leaves to view this page.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Make a leave request
     DateDebCP=Start date
     DateFinCP=End date
    @@ -15,13 +15,18 @@ ApprovedCP=Approved
     CancelCP=Canceled
     RefuseCP=Refused
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Description
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=You are not authorized to read this leave request.
     InfosWorkflowCP=Information Workflow
     RequestByCP=Requested by
     TitreRequestCP=Leave request
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Number of days of vacation consumed
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Edit
     DeleteCP=Delete
     ActionRefuseCP=Refuse
    @@ -59,6 +71,7 @@ DateRefusCP=Date of refusal
     DateCancelCP=Date of cancellation
     DefineEventUserCP=Assign an exceptional leave for a user
     addEventToUserCP=Assign leave
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Reason
     UserCP=User
     ErrorAddEventToUserCP=An error occurred while adding the exceptional leave.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -94,7 +112,7 @@ NoticePeriod=Notice period
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -103,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leaves</strong> to setup the different types of leaves.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/uz_UZ/install.lang b/htdocs/langs/uz_UZ/install.lang
    index fb521c0c085..c92d83988ff 100644
    --- a/htdocs/langs/uz_UZ/install.lang
    +++ b/htdocs/langs/uz_UZ/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Just follow the instructions step by step.
     MiscellaneousChecks=Prerequisites check
     ConfFileExists=Configuration file <b>%s</b> exists.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created !
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Configuration file <b>%s</b> could be created.
    -ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Configuration file <b>%s</b> is writable.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Reload all information from configuration file.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=This PHP supports sessions.
     PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
    -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter <b>variables_order</b> in php.ini.
    -PHPSupportGD=This PHP support GD graphical functions.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=This PHP support UTF8 functions.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
    -PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This should be too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    -Recheck=Click here for a more significative test
    -ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup.
    -ErrorPHPDoesNotSupportGD=Your PHP installation does not support graphical function GD. No graph will be available.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr can't work correctly. Solve this before installing Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Directory %s does not exist.
    -ErrorGoBackAndCorrectParameters=Go backward and correct wrong parameters.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'.
     ErrorFailedToCreateDatabase=Failed to create database '%s'.
     ErrorFailedToConnectToDatabase=Failed to connect to database '%s'.
     ErrorDatabaseVersionTooLow=Database version (%s) too old. Version %s or higher is required.
     ErrorPHPVersionTooLow=PHP version too old. Version %s is required.
    -ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Database '%s' already exists.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option.
    -WarningBrowserTooOld=Too old version of browser. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP Version
     License=Using license
     ConfigurationFile=Configuration file
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr Database
     DatabaseType=Database type
     DriverType=Driver type
     Server=Server
    -ServerAddressDescription=Name or ip address for database server, usually 'localhost' when database server is hosted on same server than web server
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Database server port. Keep empty if unknown.
     DatabaseServer=Database server
     DatabaseName=Database name
    -DatabasePrefix=Database prefix table
    -AdminLogin=Login for Dolibarr database owner.
    -PasswordAgain=Retype password a second time
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Password for Dolibarr database owner.
     CreateDatabase=Create database
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Database server - Superuser access
    -CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
    -KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
    -SaveConfigurationFile=Save values
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Server connection
     DatabaseCreation=Database creation
     CreateDatabaseObjects=Database objects creation
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Create foreign keys and indexes for table %s
     OtherKeysCreation=Foreign keys and indexes creation
     FunctionsCreation=Functions creation
     AdminAccountCreation=Administrator login creation
    -PleaseTypePassword=Please type a password, empty passwords are not allowed !
    -PleaseTypeALogin=Please type a login !
    -PasswordsMismatch=Passwords differs, please try again !
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=End of setup
     SystemIsInstalled=This installation is complete.
     SystemIsUpgraded=Dolibarr has been upgraded successfully.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (app
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Go to Dolibarr
     GoToSetupArea=Go to Dolibarr (setup area)
    -MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Go to upgrade page again
     WithNoSlashAtTheEnd=Without the slash "/" at the end
    -DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Already exists
     DolibarrAdminLogin=Dolibarr admin login
    -AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
    -FunctionNotAvailableInThisPHP=Not available on this PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Choose migration script
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Script processing
     ChooseYourSetupMode=Choose your setup mode and click "Start"...
     FreshInstall=Fresh install
    -FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install, but if you want to upgrade your version, choose "Upgrade" mode.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Upgrade
     UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
     Start=Start
     InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
     YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
    -CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Already migrated
     DatabaseVersion=Database version
     ServerVersion=Database server version
     YouMustCreateItAndAllowServerToWrite=You must create this directory and allow for the web server to write into it.
     DBSortingCollation=Character sorting order
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login <b>%s</b>, but for this, Dolibarr need to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    -BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Orphans payment detected by method %s
     RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue.
     FieldRenamed=Field renamed
    -IfLoginDoesNotExistsCheckCreateUser=If login does not exists yet, you must check option "Create user"
    -ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or PHP client version may be too old compared to database version.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Recommended choice to install version <b>%s</b> from your current version <b>%s</b>
     InstallChoiceSuggested=<b>Install choice suggested by installer</b>.
    -MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions, so install wizard will come back to suggest next migration once this one will be finished.
    -CheckThatDatabasenameIsCorrect=Check that database name "<b>%s</b>" is correct.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=If this name is correct and that database does not exist yet, you must check option "Create database".
     OpenBaseDir=PHP openbasedir parameter
    -YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide login/password of superuser (bottom of form).
    -YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide login/password of superuser (bottom of form).
    -NextStepMightLastALongTime=Current step may last several minutes. Please wait until the next screen is shown completely before continuing.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Migrate shipping for customer orders storage
     MigrationShippingDelivery=Upgrade storage of shipping
     MigrationShippingDelivery2=Upgrade storage of shipping 2
     MigrationFinished=Migration finished
    -LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Activate module %s
     ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do.
    -KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do.
    -KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Data migration for commercial proposals
     MigrationInvoice=Data migration for customer's invoices
     MigrationContract=Data migration for contracts
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Upgrade successful
     MigrationUpdateFailed=Failed upgrade process
     MigrationRelationshipTables=Data migration for relationship tables (%s)
     MigrationPaymentsUpdate=Payment data correction
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Contract data correction
     MigrationContractsNumberToUpdate=%s contract(s) to update
     MigrationContractsLineCreation=Create contract line for contract ref %s
     MigrationContractsNothingToUpdate=No more things to do
    -MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Contract empty date correction
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct
     MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct
     MigrationContractsInvalidDatesUpdate=Bad value date contract correction
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Delivery update
     MigrationStockDetail=Update stock value of products
     MigrationMenusDetail=Update dynamic menus tables
     MigrationDeliveryAddress=Update delivery address in shipments
    -MigrationProjectTaskActors=Data migration for llx_projet_task_actors table
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Data migration field fk_user_resp of llx_projet to llx_element_contact
     MigrationProjectTaskTime=Update time spent in seconds
     MigrationActioncommElement=Update data on actions
     MigrationPaymentMode=Data migration for payment mode
     MigrationCategorieAssociation=Migration of categories
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Show not available options
    -HideNotAvailableOptions=Hide not available options
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/uz_UZ/interventions.lang b/htdocs/langs/uz_UZ/interventions.lang
    index 4c93eff9d0d..a130367b14f 100644
    --- a/htdocs/langs/uz_UZ/interventions.lang
    +++ b/htdocs/langs/uz_UZ/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Interventions
     InterventionCard=Intervention card
     NewIntervention=New intervention
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=List of interventions
     ActionsOnFicheInter=Actions on intervention
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/uz_UZ/main.lang b/htdocs/langs/uz_UZ/main.lang
    index ed1777f9aec..0a050508edb 100644
    --- a/htdocs/langs/uz_UZ/main.lang
    +++ b/htdocs/langs/uz_UZ/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s)
     ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory.
     ErrorInternalErrorDetected=Error detected
     ErrorWrongHostParameter=Wrong host parameter
    -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form.
    -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Wrong value
     ErrorWrongValueForParameterX=Wrong value for parameter %s
     ErrorNoRequestInError=No request in error
    -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Duplicate value in a unique field
    -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes.
    -ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined inside Dolibarr config file <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Failed to find user <b>%s</b> in Dolibarr database.
     ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Error, failed to save file.
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Set date
     SelectDate=Select a date
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=The file was successfully uploaded
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Read help
     RecordSaved=Record saved
    @@ -94,7 +94,7 @@ Undefined=Undefined
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=See above
    -HomeArea=Home area
    +HomeArea=Home
     LastConnexion=Latest connection
     PreviousConnexion=Previous connection
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Closed
     Closed2=Closed
     NotClosed=Not closed
     Enabled=Enabled
    +Enable=Enable
     Deprecated=Deprecated
     Disable=Disable
     Disabled=Disabled
    @@ -153,7 +154,7 @@ Update=Update
     Close=Close
     CloseBox=Remove widget from your dashboard
     Confirm=Confirm
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Delete
     Remove=Remove
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Paste
     Default=Default
     DefaultValue=Default value
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Price
     PriceCurrency=Price (currency)
     UnitPrice=Unit price
    @@ -347,7 +348,7 @@ AmountTTCShort=Amount (inc. tax)
     AmountHT=Amount (net of tax)
     AmountTTC=Amount (inc. tax)
     AmountVAT=Amount tax
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Not applicable
     ActionRunningNotStarted=To start
     ActionRunningShort=In progress
     ActionDoneShort=Finished
    -ActionUncomplete=Uncomplete
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Contacts for this third party
     ContactsAddressesForCompany=Contacts/addresses for this third party
     AddressesForCompany=Addresses for this third party
     ActionsOnCompany=Events about this third party
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Events about this member
     ActionsOnProduct=Events about this product
     NActionsLate=%s late
    @@ -453,8 +455,8 @@ Generate=Generate
     Duration=Duration
     TotalDuration=Total duration
     Summary=Summary
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Available
     NotYetAvailable=Not yet available
    @@ -468,7 +470,7 @@ and=and
     or=or
     Other=Other
     Others=Others
    -OtherInformations=Other informations
    +OtherInformations=Other information
     Quantity=Quantity
     Qty=Qty
     ChangedBy=Changed by
    @@ -506,7 +508,7 @@ None=None
     NoneF=None
     NoneOrSeveral=None or several
     Late=Late
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Picture
     Photos=Pictures
    @@ -530,18 +532,6 @@ September=September
     October=October
     November=November
     December=December
    -JanuaryMin=Jan
    -FebruaryMin=Feb
    -MarchMin=Mar
    -AprilMin=Apr
    -MayMin=May
    -JuneMin=Jun
    -JulyMin=Jul
    -AugustMin=Aug
    -SeptemberMin=Sep
    -OctoberMin=Oct
    -NovemberMin=Nov
    -DecemberMin=Dec
     Month01=January
     Month02=February
     Month03=March
    @@ -646,6 +636,8 @@ SendMail=Send email
     EMail=E-mail
     NoEMail=No email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Owner
     FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value.
    @@ -677,7 +669,7 @@ NeverReceived=Never received
     Canceled=Canceled
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Color
     Documents=Linked files
     Documents2=Documents
    @@ -703,7 +695,7 @@ DateOfSignature=Date of signature
     HidePassword=Show command with password hidden
     UnHidePassword=Show real command with clear password
     Root=Root
    -Informations=Informations
    +Informations=Information
     Page=Page
     Notes=Notes
     AddNewLine=Add new line
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Show page to print main content area
     MenuManager=Menu manager
    -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login <b>%s</b> is allowed to use application at the moment.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=System error
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Credit card
     ValidatePayment=Validate payment
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Fields with <b>%s</b> are mandatory
    -FieldsWithIsForPublic=Fields with <b>%s</b> are shown on public list of members. If you don't want this, check off the "public" box.
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Line
     NotSupported=Not supported
     RequiredField=Required field
    @@ -732,6 +724,8 @@ Result=Result
     ToTest=Test
     ValidateBefore=Card must be validated before using this feature
     Visibility=Visibility
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Private
     Hidden=Hidden
     Resources=Resources
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Link to order
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Create draft
     SetToDraft=Back to draft
     ClickToEdit=Click to edit
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=By day
     BySalesRepresentative=By sales representative
     LinkedToSpecificUsers=Linked to a particular user contact
     NoResults=No results
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=System tools
     ModulesSystemTools=Modules tools
     Test=Test
     Element=Element
     NoPhotoYet=No pictures available yet
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Deductible
     from=from
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=Print File %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Show intervention
     ShowContract=Show contract
    -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Delete line
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Classify billed
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Calendar
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Expense reports
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Events
    -EMailTemplates=Emails templates
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Project
     Projects=Projects
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Permissions
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Monday
     Tuesday=Tuesday
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Contracts
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Expense reports
    -SearchIntoLeaves=Leaves
    +SearchIntoLeaves=Leave
     CommentLink=Comments
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Everybody
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Assigned to
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/uz_UZ/other.lang b/htdocs/langs/uz_UZ/other.lang
    index 8ef8cc30090..021bfe65985 100644
    --- a/htdocs/langs/uz_UZ/other.lang
    +++ b/htdocs/langs/uz_UZ/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Security code
     NumberingShort=N°
     Tools=Tools
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Birthday
     BirthdayDate=Birthday date
     DateToBirth=Date of birth
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Intervention validated
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=Customer order validated
     Notify_ORDER_SENTBYMAIL=Customer order sent by mail
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
     Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
     Notify_PROPAL_VALIDATE=Customer proposal validated
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
     Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
     Notify_WITHDRAW_CREDIT=Credit withdrawal
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Third party created
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=Customer invoice validated
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=Customer invoice payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Customer invoice canceled
     Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
     Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
    -Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=Contract validated
     Notify_FICHEINTER_VALIDATE=Intervention validated
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=Shipping validated
     Notify_SHIPPING_SENTBYMAIL=Shipping sent by mail
     Notify_MEMBER_VALIDATE=Member validated
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Number of attached files/documents
     TotalSizeOfAttachedFiles=Total size of attached files/documents
     MaxSize=Maximum size
     AttachANewFile=Attach a new file/document
     LinkedObject=Linked object
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Prof Id %s</b> is an information depending on third party country.<br>For example, for country <b>%s</b>, it's code <b>%s</b>.
     DolibarrDemo=Dolibarr ERP/CRM demo
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=The intervention %s has been validated.
     EMailTextInvoiceValidated=The invoice %s has been validated.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=The proposal %s has been validated.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=The order %s has been validated.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=The order %s has been approved by %s.
     EMailTextOrderRefused=The order %s has been refused.
     EMailTextOrderRefusedBy=The order %s has been refused by %s.
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Importation data set
     DolibarrNotification=Automatic notification
     ResizeDesc=Enter new width <b>OR</b> new height. Ratio will be kept during resizing...
    @@ -204,7 +214,7 @@ NewLength=New width
     NewHeight=New height
     NewSizeAfterCropping=New size after cropping
     DefineNewAreaToPick=Define new area on image to pick (left click on image then drag until you reach the opposite corner)
    -CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is informations on current edited image
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Image editor
     YouReceiveMailBecauseOfNotification=You receive this message because your email has been added to list of targets to be informed of particular events into %s software of %s.
     YouReceiveMailBecauseOfNotification2=This event is the following:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Exports area
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Title
     WEBSITE_DESCRIPTION=Description
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/uz_UZ/paybox.lang b/htdocs/langs/uz_UZ/paybox.lang
    index 306aaeec047..0d35ac440fa 100644
    --- a/htdocs/langs/uz_UZ/paybox.lang
    +++ b/htdocs/langs/uz_UZ/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/uz_UZ/projects.lang b/htdocs/langs/uz_UZ/projects.lang
    index e04f28689a1..d895f477bd4 100644
    --- a/htdocs/langs/uz_UZ/projects.lang
    +++ b/htdocs/langs/uz_UZ/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Show project
     ShowTask=Show task
     SetProject=Set project
     NoProject=No project defined or owned
    -NbOfProjects=Nb of projects
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Time spent
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=List of the commercial proposals associated with the project
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=List of contracts associated with the project
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=List of interventions associated with the project
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=List of events associated with the project
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Linked to other third party
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Time spent is empty
     ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (<b>%s</b> tasks at the moment) and all inputs of time spent.
    -IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
    +IfNeedToUseOtherObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties.
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributor
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Proposal
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/uz_UZ/propal.lang b/htdocs/langs/uz_UZ/propal.lang
    index 8cf3a68167a..c258381ea85 100644
    --- a/htdocs/langs/uz_UZ/propal.lang
    +++ b/htdocs/langs/uz_UZ/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Signed (needs billing)
     PropalStatusNotSigned=Not signed (closed)
     PropalStatusBilled=Billed
     PropalStatusDraftShort=Draft
    -PropalStatusValidatedShort=Validated
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Closed
     PropalStatusSignedShort=Signed
     PropalStatusNotSignedShort=Not signed
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal %s not found
     AddToDraftProposals=Add to draft proposal
     NoDraftProposals=No draft proposals
     CopyPropalFrom=Create commercial proposal by copying existing proposal
    -CreateEmptyPropal=Create empty commercial proposals vierge or from list of products/services
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Default commercial proposal validity duration (in days)
    -UseCustomerContactAsPropalRecipientIfExist=Use customer contact address if defined instead of third party address as proposal recipient address
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Clone commercial proposal
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Customer contact following-up proposal
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=A complete proposal model (logo...)
    +DocModelCyanDescription=A complete proposal model (logo...)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced)
     DefaultModelPropalClosed=Default template when closing a business proposal (unbilled)
    diff --git a/htdocs/langs/vi_VN/admin.lang b/htdocs/langs/vi_VN/admin.lang
    index c306183fa8f..91b4353b1a7 100644
    --- a/htdocs/langs/vi_VN/admin.lang
    +++ b/htdocs/langs/vi_VN/admin.lang
    @@ -10,9 +10,9 @@ VersionDevelopment=Phát triển
     VersionUnknown=Không rõ
     VersionRecommanded=Khuyên dùng
     FileCheck=Kiểm tra tính toàn vẹn của tập tin
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
     FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
     FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
     GlobalChecksum=Global checksum
     MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    @@ -30,14 +30,14 @@ SessionSaveHandler=Quản lý lưu phiên làm việc
     SessionSavePath=Lưu trữ phiên làm việc bản địa hóa
     PurgeSessions=Thanh lọc phiên làm việc
     ConfirmPurgeSessions=Bạn thật sự muốn làm sạch tất cả các phiên làm việc ? Điều này sẽ ngắt kết nối tất cả người dùng ( ngoại trừ bạn).
    -NoSessionListWithThisHandler=Phần quản lý lưu phiên làm việc được cấu hình trong PHP của bạn không cho phép để liệt kê tất cả các phiên đang chạy.
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=Khóa kết nối mới
    -ConfirmLockNewSessions=Bạn có chắc muốn hạn chế bất kỳ kết nối Dolibarr mới đến chính bạn. Chỉ người dùng <b>%s</b> sẽ có thể được kết nối sau đó.
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=Bỏ việc khóa kết nôi
     YourSession=Phiên làm việc của bạn
    -Sessions=Phiên làm việc của người dùng
    +Sessions=Users sessions
     WebUserGroup=Người dùng/nhóm trên máy chủ
    -NoSessionFound=PHP của bạn không cho phép liệt kê các phiên làm việc hiện có. Thư mục đã dùng để lưu các phiên làm việc (<b>%s</b>) có thể được bảo vệ (Thí dụ, tùy theo sự cho phép của hệ điệu hành hoặc mối liên hệ giữa open_basedir trong PHP).
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=Cơ sở dữ liệu bộ ký tự để lưu trữ dữ liệu
     DBSortingCharset=Cơ sở dữ liệu bộ ký tự để sắp xếp dữ liệu
     ClientCharset=Client charset
    @@ -50,7 +50,7 @@ ExternalUser=Người dùng bên ngoài
     InternalUsers=Người dùng bên trong
     ExternalUsers=Người dùng bên ngoài
     GUISetup=Hiển thị
    -SetupArea=Khu vực thiết lập
    +SetupArea=Thiết lập
     UploadNewTemplate=Upload new template(s)
     FormToTestFileUploadForm=Mẫu để thử nghiệm việc tải lên tập tin (dựa theo thiết lập)
     IfModuleEnabled=Ghi chú: Yes chỉ có tác dụng nếu module <b>%s</b> được mở
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=Mã lệnh không thể chứa giá trị 0
     DisableJavascript=Vô hiệu hóa chức năng JavaScript và Ajax (Đề xuất cho người mù hoặc văn bản trình duyệt)
     UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
     UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=Nbr của characters để kích hoạt tìm kiếm: %s
     NotAvailableWhenAjaxDisabled=Hiện không có sẵn khi Ajax bị vô hiệu
     AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    @@ -80,7 +80,7 @@ PreviewNotAvailable=Xem trước không sẵn có
     ThemeCurrentlyActive=Giao diện hiện đã kích hoạt
     CurrentTimeZone=Mã vùng thời gian PHP (server)
     MySQLTimeZone=TimeZone MySql (database)
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=Khoảng trống
     Table=Bảng
     Fields=Trường
    @@ -111,14 +111,14 @@ NotConfigured=Mô-đun/ Ứng dụng chưa được cấu hình
     Active=Kích hoạt
     SetupShort=Cài đặt
     OtherOptions=Tùy chọn khác
    -OtherSetup=Cài đặt khác
    +OtherSetup=Other Setup
     CurrentValueSeparatorDecimal=Phân cách thập phân
     CurrentValueSeparatorThousand=Phân cách phần ngàn
     Destination=Đích đến
     IdModule=ID module
     IdPermissions=ID phân quyền
     LanguageBrowserParameter=Thông số %s
    -LocalisationDolibarrParameters=Thông số địa phương hóa
    +LocalisationDolibarrParameters=Localization parameters
     ClientTZ=Time Zone khách hàng (người sử dụng)
     ClientHour=Thời gian khách hàng (người sử dụng)
     OSTZ=Server OS Time Zone
    @@ -126,8 +126,8 @@ PHPTZ=PHP server Time Zone
     DaylingSavingTime=Daylight saving time
     CurrentHour=PHP Time (server)
     CurrentSessionTimeOut=Thời hạn phiên làm việc hiện tại
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=widget
     Boxes=widgets
     MaxNbOfLinesForBoxes=Số đòng tối đa cho widgets
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=Bỏ qua các lỗi của bản ghi trùng lặp (INSERT
     AutoDetectLang=Tự động phát hiện (ngôn ngữ trình duyệt)
     FeatureDisabledInDemo=Tính năng đã vô hiệu hóa trong bản demo
     FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=Widgets là thành phần hiển thị 1 vài thông tin ở đó bạn có thể thêm 1 số trang cá nhân. Bạn có thể lựa chọn giữa hiển thị widget hoặc không bằng cách chọn trang đích và nhấp vào 'Kích hoạt', hoặc nhấp vào biểu tượng thùng rác để vô hiệu hóa nó.
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=Chỉ có các yếu tố từ <a href="%s">module kích hoạt</a> được hiển thị.
    -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application.
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=Bạn có thể tìm thấy nhiều mô-đun để tải về ở các websites trên Internet ...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=Tìm ứng dụng bên ngoài/ mô-đun
     ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=Mới
     FreeModule=Free
     CompatibleUpTo=Compatible with version %s
    @@ -211,8 +211,8 @@ Nouveauté=Novelty
     AchatTelechargement=Buy / Download
     GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
     DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    -WebSiteDesc=Tham khảo các website để tìm thêm nhiều mô-dun...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=Some solutions to develop your own module...
     URL=Liên kết
     BoxesAvailable=Widgets có sẵn
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=Không chứa mật khẩu đã xóa trong cơ sở dữ
     MainDbPasswordFileConfEncrypted=Cơ sở dữ liệu mật khẩu được mã hóa trong conf.php (Đã kích hoạt được Khuyến nghị)
     InstrucToEncodePass=Để có mật khẩu mã hóa vào tập tin <b>conf.php</b>, thay thế dòng <br><b>$dolibarr_main_db_pass="..."</b><br> thành<br><b>$dolibarr_main_db_pass="crypted:%s"</b>
     InstrucToClearPass=Để có mật khẩu được giải mã (trống) vào tập tin <b>conf.php</b>, thay thế dòng <br><b>$dolibarr_main_db_pass="crypted:..."</b><br> thành<br><b>$dolibarr_main_db_pass="%s"</b>
    -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=Bảo vệ tài liệu PDF giữ cho nó sẵn sàng để đọc và in với bất kỳ trình duyệt PDF nào. Tuy nhiên, chỉnh sửa và sao chép là không thể nữa. Lưu ý rằng việc sử dụng tính năng này làm cho xây dựng một bộ PDF thống nhất không hoạt động.
     Feature=Đặc tính
     DolibarrLicense=Giấy phép
    @@ -246,8 +246,8 @@ ExternalResources=External resources
     SocialNetworks=Social Networks
     ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),<br>take a look at the Dolibarr Wiki:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:<br><b><a href="%s" target="_blank">%s</a></b>
    -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr.
    -HelpCenterDesc2=Some part of this service are available in <b>english only</b>.
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=Điều khiển menu hiện tại
     MeasuringUnit=Đơn vị đo
     LeftMargin=Left margin
    @@ -262,31 +262,35 @@ NoticePeriod=Kỳ thông báo
     NewByMonth=New by month
     Emails=Emails
     EMailsSetup=cài đặt Emails
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=Emails sender profiles
    -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    -MAIN_MAIL_AUTOCOPY_TO= Gửi một bản CC một cách tự động cho tất cả các email được gửi
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=Phương pháp sử dụng để gửi email
    -MAIN_MAIL_SMTPS_ID=SMTP ID nếu có yêu cầu xác thực
    -MAIN_MAIL_SMTPS_PW=Mật khẩu SMTP nếu có yêu cầu xác thực
    -MAIN_MAIL_EMAIL_TLS= Sử dụng TLS (SSL) mã hóa
    -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt
    -MAIN_DISABLE_ALL_SMS=Vô hiệu hoá tất cả sendings SMS (cho mục đích thử nghiệm hoặc trình diễn)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=Phương pháp sử dụng để gửi SMS
    -MAIN_MAIL_SMS_FROM=Số điện thoại mặc định cho việc gửi SMS gửi
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
     UserEmail=User email
     CompanyEmail=Company email
     FeatureNotAvailableOnLinux=Tính năng không có sẵn trên Unix như hệ thống. Kiểm tra chương trình sendmail bản địa của bạn.
    -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory <b>langs/%s</b> and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr.
     ModuleSetup=Cài đặt module
     ModulesSetup=Modules/Application setup
    @@ -301,7 +305,7 @@ ModuleFamilyTechnic=Công cụ đa module
     ModuleFamilyExperimental=Module thử nghiệm
     ModuleFamilyFinancial=Module tài chính (Kế toán/Ngân quỹ)
     ModuleFamilyECM=Quản lý nội dung điện tử (ECM)
    -ModuleFamilyPortal=Web sites and other frontal application
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=Interfaces with external systems
     MenuHandlers=Điều khiển menu
     MenuAdmin=Biên tập menu
    @@ -309,15 +313,15 @@ DoNotUseInProduction=Không sử dụng trong sản xuất
     ThisIsProcessToFollow=This is steps to process:
     ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
     StepNb=Bước %s
    -FindPackageFromWebSite=Tìm một gói phần mềm cung cấp các tính năng mà bạn muốn (ví dụ như trên trang web chính thức %s).
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=Download package (for example from official web site %s).
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
     InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
     InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Phiên bản hiện tại Dolibarr
     CallUpdatePage=Go to the page that updates the database structure and data: %s.
     LastStableVersion=Latest stable version
    @@ -347,15 +351,15 @@ SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and t
     UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache)
     DisableLinkToHelpCenter=Hide link "<b>Need help or support</b>" on login page
     DisableLinkToHelp=Hide link to online help "<b>%s</b>"
    -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea.
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=Chiều dài tối thiểu
     LanguageFilesCachedIntoShmopSharedMemory=Tập tin .lang được nạp vào bộ nhớ chia sẻ
     LanguageFile=Language file
    -ExamplesWithCurrentSetup=Ví dụ với cài đặt đang chạy hiện tại
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=List of OpenDocument templates directories
     ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.<br><br>Put here full path of directories.<br>Add a carriage return between eah directory.<br>To add a directory of the GED module, add here <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br>Files in those directories must end with <b>.odt</b> or <b>.ods</b>.
    -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=Examples of syntax:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>To know how to create your odt document templates, before storing them in those directories, read wiki documentation:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webs
     TestSubmitForm=Form kiểm tra đầu vào
     ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours.
     ThemeDir=Thư mục giao diện
    -ConnectionTimeout=Connexion timeout
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=Response timeout
     SmsTestMessage=Tin nhắn kiểm tra từ __PHONEFROM__ để __PHONETO__
     ModuleMustBeEnabledFirst=Module <b>%s</b> must be enabled first if you need this feature.
     SecurityToken=Key to secure URLs
    -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF
    -PDFDesc=Bạn có thể thiết lập cho mỗi tùy chọn toàn cầu liên quan đến việc tạo PDF
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=Quy tắc bắt buộc hộp địa chỉ
     HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
     PDFRulesForSalesTax=Rules for Sales Tax / VAT
     PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=Ẩn mô tả sản phẩm vào PDF được tạo ra
     HideRefOnPDF=Ẩn các sản phẩm tham chiếu trên PDF được tạo ra
     HideDetailsOnPDF=Hide product lines details on generated PDF
    @@ -387,7 +391,7 @@ UrlGenerationParameters=Các thông số để bảo mật URL
     SecurityTokenIsUnique=Sử dụng một tham số securekey duy nhất cho mỗi URL
     EnterRefToBuildUrl=Nhập tham chiếu cho đối tượng %s
     GetSecuredUrl=Nhận URL được tính
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=Thuế suất VAT cũ
     NewVATRates=Thuế suất VAT mới
     PriceBaseTypeToChange=Sửa đổi về giá với giá trị tham chiếu cơ sở được xác định trên
    @@ -408,13 +412,13 @@ ExtrafieldSelect = Lựa chọn danh sách
     ExtrafieldSelectList = Chọn từ bảng
     ExtrafieldSeparator=Separator (not a field)
     ExtrafieldPassword=Mật khẩu
    -ExtrafieldRadio=Radio buttons (on choice only)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=Checkboxes
     ExtrafieldCheckBoxFromList=Hộp đánh dấu từ bảng
     ExtrafieldLink=Liên kết với một đối tượng
     ComputedFormula=Computed field
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=Liên kết mặc định
     SetAsDefault=Set as default
     ValueOverwrittenByUserSetup=Cảnh báo, giá trị này có thể được ghi đè bởi các thiết lập cụ thể người sử dụng (mỗi người dùng có thể thiết lập url clicktodial riêng của mình)
     ExternalModule=Module bên ngoài được cài đặt vào thư mục %s
    -BarcodeInitForThirdparties=Mass barcode init for thirdparties
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services
     CurrentlyNWithoutBarCode=Hiện tại, bạn có <strong>%s</strong> bản ghi <strong>%s</strong> %s không xác định được mã vạch
     InitEmptyBarCode=Init value for next %s empty records
     EraseAllCurrentBarCode=Xóa tất cả các giá trị hiện tại của mã vạch
     ConfirmEraseAllCurrentBarCode=Bạn có chắc muốn xóa tất cả các giá trị mã vạch hiện tại?
     AllBarcodeReset=Tất cả giá trị mã vạch đã được loại bỏ
    -NoBarcodeNumberingTemplateDefined=Không có mẫu mã vạch đánh số được kích hoạt trong cài đặt mô-đun mã vạch.
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=Enable file cache
     ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
     NoDetails=No more details in footer
     DisplayCompanyInfo=Display company address
     DisplayCompanyManagers=Display manager names
     DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=Return an empty accounting code.
     ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
     Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
     UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
     ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    +DependsOn=This module needs the module(s)
     RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=Dòng
     ProductDocumentTemplates=Document templates to generate product document
    @@ -476,16 +480,18 @@ SendEmailsReminders=Send agenda reminders by emails
     davDescription=Add a component to be a DAV server
     DAVSetup=Setup of module DAV
     DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
    -Module0Name=Người dùng & nhóm
    +Module0Name=Người dùng & Nhóm
     Module0Desc=Users / Employees and Groups management
    -Module1Name=Bên thứ ba
    -Module1Desc=Quản lý liên lạc và công ty (khách hàng, khách hàng tiềm năng ...)
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=Thương mại
     Module2Desc=Quản lý thương mại
     Module10Name=Kế toán
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=Đơn hàng đề xuất
     Module20Desc=Quản lý đơn hàng đề xuất
     Module22Name=Gửi Email hàng loạt
    @@ -495,7 +501,7 @@ Module23Desc=Giám sát việc tiêu thụ năng lượng
     Module25Name=Đơn hàng khách hàng
     Module25Desc=Quản lý đơn hàng khách hàng
     Module30Name=Hoá đơn
    -Module30Desc=Quản lý hóa đơn và giấy báo có cho khách hàng. Quản lý hóa đơn cho các nhà cung cấp
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=Nhà cung cấp
     Module40Desc=Suppliers and purchase management (purchase orders and billing)
     Module42Name=Debug Logs
    @@ -511,13 +517,13 @@ Module52Desc=Quản lý tồn kho (sản phẩm)
     Module53Name=Dịch vụ
     Module53Desc=Quản lý dịch vụ
     Module54Name=Hợp đồng/Thuê bao
    -Module54Desc=Quản lý hợp đồng (dịch vụ hoặc thuê bao định kỳ)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=Mã vạch
     Module55Desc=Quản lý mã vạch
     Module56Name=Telephony
     Module56Desc=Telephony integration
     Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=ClickToDial
     Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=Phiếu công tác phí
     Module75Desc=Quản lý phiếu công tác phí
     Module80Name=Vận chuyển
     Module80Desc=Quản lý phiếu xuất kho và phiếu giao hàng
    -Module85Name=Ngân hàng và tiền mặt
    +Module85Name=Banks and Cash
     Module85Desc=Quản lý tài khoản ngân hàng hoặc tiền mặt
    -Module100Name=Trang web bên ngoài
    -Module100Desc=Module này bao gồm một trang web bên ngoài hoặc trang trong menu Dolibarr và xem nó trong một khung Dolibarr
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=Mailman or SPIP interface for member module
     Module200Name=LDAP
    -Module200Desc=Đồng bộ hóa thư mục LDAP
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=Tích hợp PostNuke
     Module240Name=Xuất dữ liệu
    -Module240Desc=Tool to export Dolibarr data (with assistants)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=Nhập dữ liệu
    -Module250Desc=Tool to import data in Dolibarr  (with assistants)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=Thành viên
     Module310Desc=Quản lý thành viên của tổ chức
     Module320Name=RSS Feed
     Module320Desc=Thêm nguồn cấp dữ liệu RSS trong trang màn hình Dolibarr
    -Module330Name=Bookmarks
    -Module330Desc=Quản lý bookmark
    -Module400Name=Dự án/Cơ hội/Đầu mối
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
     Module410Name=Lịch trên web
     Module410Desc=Tích hợp lịch trên web
     Module500Name=Taxes and Special expenses
     Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
     Module510Name=Thanh toán của tiền lương nhân công
    -Module510Desc=Bản ghi và theo dõi thanh toán của tiền lương nhân công
    +Module510Desc=Record and track employee payments
     Module520Name=Cho vay
     Module520Desc=Quản lý cho vay
     Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=Tài trợ
     Module700Desc=Quản lý tài trợ
     Module770Name=Báo cáo chi tiêu
    -Module770Desc=Báo cáo quản lý và claim chi phí (di chuyển, ăn uống, ...)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=Vendor commercial proposal
     Module1120Desc=Request vendor commercial proposal and prices
     Module1200Name=Mantis
    @@ -576,13 +582,13 @@ Module1520Desc=Xuất chứng từ Mass mail
     Module1780Name=Gán thẻ/phân nhóm
     Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
     Module2000Name=WYSIWYG editor
    -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=Giá linh hoạt
     Module2200Desc=Cho phép sử dụng các biểu thức toán học cho giá
     Module2300Name=Việc theo lịch trình
     Module2300Desc=Scheduled jobs management (alias cron or chrono table)
     Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
     Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
     Module2600Name=API/Web services (SOAP server)
    @@ -590,16 +596,16 @@ Module2600Desc=Enable the Dolibarr SOAP server providing API services
     Module2610Name=API/Web services (REST server)
     Module2610Desc=Enable the Dolibarr REST server providing API services
     Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Kích hoạt các dịch vụ web Dolibarr client (có thể được sử dụng để đẩy dữ liệu / yêu cầu đến các máy chủ bên ngoài. Đơn hàng Nhà cung cấp chỉ được hỗ trợ cho thời điểm này)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=Sử dụng dịch vụ trực tuyến Gravatar (www.gravatar.com) để hiển thị hình ảnh của người sử dụng / thành viên (được tìm thấy với các email của họ). Cần truy cập internet
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP Client
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind conversions capabilities
     Module3100Name=Skype
     Module3100Desc=Add a Skype button into users / third parties / contacts / members cards
     Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=HRM
     Module4000Desc=Human resources management (management of department, employee contracts and feelings)
     Module5000Name=Đa công ty
    @@ -609,27 +615,31 @@ Module6000Desc=Workflow management (automatic creation of object and/or automati
     Module10000Name=Websites
     Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
     Module20000Name=Quản lý phiếu nghỉ phép
    -Module20000Desc=Khai báo và theo dõi phiếu nghỉ phép của nhân viên
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=Products lots
     Module39000Desc=Lô hoặc số sê ri, quản lý ngày eat-by và sell-by trên sản phẩm
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=Điểm bán hàng
     Module50100Desc=Point of sales module (POS).
    +Module50150Name=Điểm bán hàng
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=Kế toán (nâng cao)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server).
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=Poll, Survey or Vote
    -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=Lợi nhuận
     Module59000Desc=Module quản lý lợi nhuận
     Module60000Name=Hoa hồng
     Module60000Desc=Module quản lý hoa hồng
    -Module62000Name=Incoterm
    -Module62000Desc=Add features to manage Incoterm
    +Module62000Name=Incoterms
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=Tài nguyên
     Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events
     Permission11=Xem hóa đơn khách hàng
    @@ -651,9 +661,9 @@ Permission32=Tạo/chỉnh sửa sản phẩm
     Permission34=Xóa sản phẩm
     Permission36=Xem/quản lý sản phẩm ẩn
     Permission38=Xuất dữ liệu sản phẩm
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=Xóa dự án (dự án chia sẻ và các dự án tôi liên lạc)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=Export projects
     Permission61=Xem intervention
     Permission62=Tạo/chỉnh sửa intervention
    @@ -686,7 +696,7 @@ Permission109=Xóa sendings
     Permission111=Xem tài khoản tài chính
     Permission112=Tạo/chỉnh sửa/xóa và so sánh giao dịch
     Permission113=Cài đặt tài khoản tài chính (tạo, quản lý phân nhóm)
    -Permission114=Reconciliate giao dịch
    +Permission114=Reconcile transactions
     Permission115=Xuất dữ liệu giao dịch và bảng kê tài khoản
     Permission116=Chuyển giữa các tài khoản
     Permission117=Quản lý việc gửi séc
    @@ -694,15 +704,15 @@ Permission121=Xem bên thứ ba liên quan đến người dùng
     Permission122=Tạo/chỉnh sửa bên thứ ba liên quan đến người dùng
     Permission125=Xóa bên thứ ba liên quan đến người dùng
     Permission126=Xuất dữ liệu bên thứ ba
    -Permission141=Read all projects and tasks (also private projects i am not contact for)
    -Permission142=Create/modify all projects and tasks (also private projects i am not contact for)
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=Delete all projects and tasks (also private projects i am not contact for)
     Permission146=Xem nhà cung cấp
     Permission147=Xem thống kê
     Permission151=Read direct debit payment orders
     Permission152=Create/modify a direct debit payment orders
     Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=Xem hợp đồng/thuê bao
     Permission162=Tạo/chỉnh sửa hợp đồng/thuê bao
     Permission163=Kích hoạt dịch vụ/thuê bao của hợp đồng
    @@ -725,7 +735,7 @@ Permission187=Đóng đơn hàng nhà cung cấp
     Permission188=Hủy bỏ đơn hàng nhà cung cấp
     Permission192=Tạo dòng chi tiết
     Permission193=Hủy bỏ dòng chi tiết
    -Permission194=Xem dòng băng thông
    +Permission194=Read the bandwidth lines
     Permission202=Tạo kết nối ADSL
     Permission203=Lệnh kết nối đơn hàng
     Permission204=Lệnh kết nối
    @@ -750,12 +760,12 @@ Permission244=Xem nội dung của phân nhóm ẩn
     Permission251=Xem người dùng và nhóm khác
     PermissionAdvanced251=Xem người dùng khác
     Permission252=Xem phân quyền của người dùng khác
    -Permission253=Tạo/chỉnh sửa người dùng khác, nhóm và phân quyền
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=Tạo/chỉnh sửa người sử dụng nội bộ / bên ngoài và phân quyền
     Permission254=Tạo/chỉnh sửa chỉ người dùng bên ngoài
     Permission255=Chỉnh sửa mật khẩu của người dùng khác
     Permission256=Xóa hoặc vô hiệu người dùng khác
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=Xem CA
     Permission272=Xem hóa đơn
     Permission273=Xuất hóa đơn
    @@ -765,7 +775,7 @@ Permission283=Xóa liên lạc
     Permission286=Xuất dữ liệu liên lạc
     Permission291=Xem thuế
     Permission292=Chỉnh phân quyền trên mức thuế
    -Permission293=Chính sửa mức thuế khách hàng
    +Permission293=Modify customers tariffs
     Permission300=Xem mã vạch
     Permission301=Tạo/chỉnh sửa mã vạch
     Permission302=Xóa mã vạch
    @@ -787,11 +797,9 @@ Permission401=Xem giảm giá
     Permission402=Tạo/chỉnh sửa giảm giá
     Permission403=Xác nhận giảm giá
     Permission404=Xóa giảm giá
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Tạo/ chỉnh sửa thanh toán của tiền lượng
    -Permission514=Xóa lương
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=Xuất dữ liệu lương
     Permission520=Xem cho vay
     Permission522=Tạo/Chỉnh sửa cho vay
    @@ -844,8 +852,8 @@ Permission1251=Chạy nhập dữ liệu khối cho dữ liệu bên ngoài vào
     Permission1321=Xuất dữ liệu Hóa đơn khách hàng, các thuộc tính và thanh toán
     Permission1322=Reopen a paid bill
     Permission1421=Xuất dữ liệu Đơn hàng và các thuộc tính
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=Xóa yêu cầu nghỉ phép
     Permission20004=Read all leave requests (even of user not subordinates)
     Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    @@ -880,8 +888,8 @@ Permission63001=Read resources
     Permission63002=Create/modify resources
     Permission63003=Delete resources
     Permission63004=Link resources to agenda events
    -DictionaryCompanyType=Types of thirdparties
    -DictionaryCompanyJuridicalType=Legal forms of thirdparties
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=Mức khách hàng tiềm năng
     DictionaryCanton=Bang/Tỉnh
     DictionaryRegion=Vùng
    @@ -894,7 +902,7 @@ DictionaryVAT=Tỉ suất VAT hoặc Tỉ xuất thuế bán hàng
     DictionaryRevenueStamp=Amount of tax stamps
     DictionaryPaymentConditions=Điều khoản thanh toán
     DictionaryPaymentModes=Phương thức thanh toán
    -DictionaryTypeContact=Loại Liên lạc/Địa chỉ
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=Type of website pages/containers
     DictionaryEcotaxe=Ecotax (WEEE)
     DictionaryPaperFormat=Định dạng giấy
    @@ -908,47 +916,47 @@ DictionarySource=Chứng từ gốc của đơn hàng đề xuất/đơn hàng
     DictionaryAccountancyCategory=Personalized groups for reports
     DictionaryAccountancysystem=Kiểu biểu đồ tài khoản
     DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=Mẫu email
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=Đơn vị
     DictionaryProspectStatus=Prospection status
    -DictionaryHolidayTypes=Types of leaves
    -DictionaryOpportunityStatus=Opportunity status for project/lead
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=Expense report - Transportation categories
     DictionaryExpenseTaxRange=Expense report - Range by transportation category
     SetupSaved=Cài đặt đã lưu
     SetupNotSaved=Setup not saved
     BackToModuleList=Trở lại danh sách module
    -BackToDictionaryList=Trở lại danh sách từ điển
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=Quản lý thuế VAT
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies.
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=Tỷ suất
     LocalTax1IsNotUsed=Do not use second tax
    -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT)
    -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=Second type of tax
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=Do not use third tax
    -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT)
    -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=Third type of tax
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE Management
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule.
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF Management
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule.
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE Management
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=By default the proposed RE is 0. End of rule.
    +LocalTax1IsUsedExampleES=In Spain they are professionals subject to some specific sections of the Spanish IAE.
    +LocalTax1IsNotUsedExampleES=In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    +LocalTax2ManagementES=IRPF Management
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=By default the proposed IRPF is 0. End of rule.
    +LocalTax2IsUsedExampleES=In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=Báo cáo thuế địa phương
     CalcLocaltax1=Bán - Mua
     CalcLocaltax1Desc=Báo cáo Thuế địa phương được tính toán với sự khác biệt giữa localtaxes bán hàng và mua hàng localtaxes
    @@ -958,7 +966,9 @@ CalcLocaltax3=Bán
     CalcLocaltax3Desc=Báo cáo Thuế địa phương là tổng của localtaxes bán hàng
     LabelUsedByDefault=Nhãn được sử dụng bởi mặc định nếu không có bản dịch có thể được tìm thấy với code đó
     LabelOnDocuments=Nhãn trên các tài liệu
    -NbOfDays=Nb của ngày
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=Vào cuối tháng
     CurrentNext=Current/Next
     Offset=Offset
    @@ -984,7 +994,7 @@ DatabaseUser=Người dùng cơ sở dữ liệu
     DatabasePassword=Mật khẩu cơ sở dữ liệu
     Tables=Bảng
     TableName=Tên bảng
    -NbOfRecord=Nb của bản ghi
    +NbOfRecord=No. of records
     Host=Máy chủ
     DriverType=Driver type
     SummarySystem=Tóm tắt thông tin hệ thống
    @@ -996,7 +1006,7 @@ Skin=Chủ đề giao diện
     DefaultSkin=Chủ đề giao diện mặc định
     MaxSizeList=Chiều dài tối đa cho danh sách
     DefaultMaxSizeList=Default max length for lists
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=Tin trong ngày
     MessageLogin=Tin trang đăng nhập
     LoginPage=Login page
    @@ -1005,8 +1015,8 @@ PermanentLeftSearchForm=Forrm tìm kiếm cố định trên menu bên trái
     DefaultLanguage=Ngôn ngữ mặc định để sử dụng (mã ngôn ngữ)
     EnableMultilangInterface=Kích hoạt giao diện đa ngôn ngữ
     EnableShowLogo=Hiển thị logo trên menu bên trái
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=Company/Organization
    +CompanyIds=Company/Organization identities
     CompanyName=Tên
     CompanyAddress=Địa chỉ
     CompanyZip=Zip
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=Chủ sở hữu của tài khoản ngân hàng %s
     BankModuleNotActive=Module tài khoản ngân hàng chưa được mở
     ShowBugTrackLink=Show link "<strong>%s</strong>"
     Alerts=Cảnh báo
    -DelaysOfToleranceBeforeWarning=Khoảng trì hoãn trước cảnh báo
    -DelaysOfToleranceDesc=Màn hình này cho phép bạn xác định trì hoãn trước khi chấp nhận một cảnh báo được báo cáo trên màn hình với Picto %s cho mỗi phần tử cuối.
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Khoảng trì hoãn (theo ngày) trước khi cảnh báo về đơn hàng đề xuất để đóng
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=Khoảng trì hoãn (theo ngày) trước khi cảnh báo về đơn hàng đề xuất không ra hóa đơn
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Khoảng trì hoãn (theo ngày) trước khi cảnh báo về dịch vụ để kích hoạt
    -Delays_MAIN_DELAY_RUNNING_SERVICES=Khoảng trì hoãn (theo ngày) trước khi cảnh báo về dịch vụ hết hạn
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Khoảng trì hoãn (theo ngày) trước khi cảnh báo về hóa đơn chưa thanh toán nhà cung cấp
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Khoảng trì hoãn (theo ngày) trước khi cảnh báo về hóa đơn chưa thanh toán của khách hàng
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Khoảng trì hoãn (theo ngày) trước khi cảnh báo về pending bank reconciliation
    -Delays_MAIN_DELAY_MEMBERS=Khoảng trì hoãn (theo ngày) trước khi cảnh báo về lệ phí thành viên bị trì hoãn
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Khoảng trì hoãn (theo ngày) trước khi cảnh báo đối với séc ứng trước để làm
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr.
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=Thông số tùy chọn quản lý thông tin menu đầu vào khác
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=Sự kiện kiểm toán bảo mật
    -Audit=Kiểm toán
    +Audit=Security events
     InfoDolibarr=About Dolibarr
     InfoBrowser=Thông tin trình duyệt
     InfoOS=About OS
    @@ -1056,20 +1066,20 @@ BrowserName=Tên trình duyệt
     BrowserOS=Trình duyệt hệ điều hành
     ListOfSecurityEvents=Danh sách các sự kiện bảo mật Dolibarr
     SecurityEventsPurged=Sự kiện bảo mật được thanh lọc
    -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu <b>System tools - Audit</b>. Warning, this feature can consume a large amount of data in database.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
     SystemInfoDesc=Hệ thống thông tin là thông tin kỹ thuật linh tinh bạn nhận được trong chế độ chỉ đọc và có thể nhìn thấy chỉ cho quản trị viên.
     SystemAreaForAdminOnly=Khu vực này hiện có sẵn cho những người dùng quản trị. Không ai trong số phân quyền Dolibarr có thể làm giảm giới hạn này.
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=File number
     DisplayDesc=Bạn có thể chọn từng thông số liên quan đến Dolibarr nhìn và cảm thấy ở đây
     AvailableModules=Available app/modules
     ToActivateModule=Để kích hoạt mô-đun, đi vào Cài đặt Khu vực (Nhà-> Cài đặt-> Modules).
     SessionTimeOut=Time out for session
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=Trigger có sẵn
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=Triggers in this file are disabled by the <b>-NORUN</b> suffix in their name.
     TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module <b>%s</b> is disabled.
     TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules.
    @@ -1079,7 +1089,7 @@ DictionaryDesc=Chèn vào tất cả giá trị tham khảo. Bạn có thể th
     ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
     MiscellaneousDesc=All other security related parameters are defined here.
     LimitsSetup=Cài đặt Giới hạn và độ chính xác
    -LimitsDesc=Bạn có thể xác định giới hạn, độ chính xác và tối ưu hoá được sử dụng bởi Dolibarr ở đây
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=Số thập phân tối đa cho đơn giá
     MAIN_MAX_DECIMALS_TOT=Số thập phân tối đa cho tổng giá
     MAIN_MAX_DECIMALS_SHOWN=Max số thập phân cho giá được hiển thị trên màn hình (Add <b>...</b> sau khi con số này nếu bạn muốn xem <b>...</b> khi số là cắt ngắn khi hiển thị trên màn hình)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is d
     UnitPriceOfProduct=Đơn giá chưa thuế của một sản phẩm
     TotalPriceAfterRounding=Tổng giá (chưa thuế/VAT/bao gồm thuế) sau khi làm tròn
     ParameterActiveForNextInputOnly=Thông số hiệu quả cho chỉ đầu vào kế tiếp
    -NoEventOrNoAuditSetup=Chưa có sự kiện bảo mật được ghi nhận. Đây có thể là bình thường nếu kiểm toán đã không được kích hoạt trên trang "Cài đặt - Bảo mật - kiểm toán".
    -NoEventFoundWithCriteria=Không có sự kiện bảo mật đã được tìm thấy cho các tiêu chí tìm kiếm như vậy.
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=Xem thiết lập sendmail địa phương của bạn
     BackupDesc=Để thực hiện một sao lưu đầy đủ của Dolibarr, bạn phải:
     BackupDesc2=Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (So it includes all dump files generated at step 1).
    -BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use following assistant.
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=Thư mục lưu trữ nên được lưu trữ ở một nơi an toàn.
     BackupDescY=Tạo ra các tập tin dump nên được lưu trữ ở một nơi an toàn.
    -BackupPHPWarning=Sao lưu không thể được guaranted với phương pháp này. Tham chiếu trước đó
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=Để khôi phục lại một bản sao lưu Dolibarr, bạn phải:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
     RestoreMySQL=MySQL nhập dữ liệu
     ForcedToByAModule= Quy luật này buộc <b>%s</b> bởi một mô-đun được kích hoạt
    @@ -1108,31 +1118,31 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from
     YourPHPDoesNotHaveSSLSupport=Chức năng SSL không có sẵn trong chương trình PHP
     DownloadMoreSkins=Nhiều giao diện để tải về
     SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset
    -ShowProfIdInAddress=Hiển thị id professionnal với các địa chỉ trên các tài liệu
    -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=Partial translation
    -MAIN_DISABLE_METEO=Vô hiệu phần xem thời tiết
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=Standard mode
     MeteoStdModEnabled=Standard mode enabled
     MeteoPercentageMod=Percentage mode
     MeteoPercentageModEnabled=Percentage mode enabled
     MeteoUseMod=Click to use %s
     TestLoginToAPI=Kiểm tra đăng nhập vào API
    -ProxyDesc=Một số tính năng của Dolibarr cần phải có một kết nối Internet để làm việc. Xác định các thông số ở đây cho việc này. Nếu máy chủ Dolibarr là phía sau một máy chủ proxy, các tham số cho Dolibarr làm thế nào để truy cập Internet thông qua nó.
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=Truy cập bên ngoài
     MAIN_PROXY_USE=Sử dụng một máy chủ proxy (truy cập nếu không trực tiếp đến internet)
     MAIN_PROXY_HOST=Tên / Địa chỉ của máy chủ proxy
     MAIN_PROXY_PORT=Cổng của máy chủ proxy
     MAIN_PROXY_USER=Đăng nhập để sử dụng máy chủ proxy
     MAIN_PROXY_PASS=Mật khẩu để sử dụng máy chủ proxy
    -DefineHereComplementaryAttributes=Xác định đây tất cả các thuộc tính, không phải đã có sẵn theo mặc định, và bạn muốn được hỗ trợ cho %s.
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=Thuộc tính bổ sung
     ExtraFieldsLines=Thuộc tính bổ sung (dòng)
     ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
     ExtraFieldsSupplierOrdersLines=Thuộc tính bổ sung (chi tiết đơn hàng)
     ExtraFieldsSupplierInvoicesLines=Thuộc tính bổ sung (chi tiết hóa đơn)
     ExtraFieldsThirdParties=Thuộc tính bổ sung (của bên thứ ba)
    -ExtraFieldsContacts=Thuộc tính bổ sung (liên lạc/địa chỉ)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=Thuộc tính bổ sung (thành viên)
     ExtraFieldsMemberType=Thuộc tính bổ sung (loại thành viên)
     ExtraFieldsCustomerInvoices=Thuộc tính bổ sung (hoá đơn)
    @@ -1146,43 +1156,44 @@ AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters
     SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
     PathToDocuments=Đường dẫn đến tài liệu
     PathDirectory=Thư mục
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=Setup of translation
     TranslationKeySearch=Search a translation key or string
     TranslationOverwriteKey=Overwrite a translation string
     TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
     TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=Translation string
     CurrentTranslationString=Current translation string
     WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
     NewTranslationStringToShow=New translation string to show
     OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=Bạn phải có ít nhất 1 mô-đun cho phép
    -ClassNotFoundIntoPathWarning=Lớp %s không tìm thấy con đường vào PHP
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=Yes in summer
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=Session storage encrypted by Suhosin
     ConditionIsCurrently=Điều kiện là hiện tại %s
    -YouUseBestDriver=You use driver %s that is best driver available currently.
    -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended.
    -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=Tối ưu hóa tìm kiếm
    -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response.
    -BrowserIsOK=Bạn đang sử dụng trình duyệt web %s. Trình duyệt này là ok cho bảo mật và hiệu suất.
    -BrowserIsKO=Bạn đang sử dụng trình duyệt web %s. Trình duyệt này được biết đến là một lựa chọn tốt cho bảo mật, hiệu suất và độ tin cậy. Chúng tôi recommand bạn sử dụng Firefox, Chrome, Opera hay Safari.
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug is loaded.
     XCacheInstalled=XCache is loaded.
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=Biên soạn của trường %s
     FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
     GetBarCode=Nhận mã vạch
     ##### Module password generation
     PasswordGenerationStandard=Quay trở lại một mật khẩu được tạo ra theo thuật toán Dolibarr nội bộ: 8 ký tự có chứa số chia sẻ và ký tự trong chữ thường.
    -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually.
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=Return a password according to your personally defined configuration.
     SetupPerso=According to your configuration
     PasswordPatternDesc=Password pattern description
    @@ -1195,23 +1206,23 @@ UserMailRequired=Email được yêu cầu để tạo một người dùng mớ
     HRMSetup=HRM module setup
     ##### Company setup #####
     CompanySetup=Cài đặt module Công ty
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined:
     NotificationsDescUser=* per users, one user at time.
     NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
     NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=Tài liệu mẫu
    -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=Watermark vào dự thảo văn bản
     JSOnPaimentBill=Kích hoạt tính năng tự động điền vào các dòng thanh toán trên form thanh toán
    -CompanyIdProfChecker=Rules on Professional Ids
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
     MustBeInvoiceMandatory=Mandatory to validate invoices?
     TechnicalServicesProvided=Technical services provided
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=Root URL of %s server : %s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=Một liên kết xuất dữ liệu sang định dạng <b>%s</b> có sẵn tại liên kết sau đây: %s
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=Một liên kết xuất dữ liệu sang định dạng
     BillsSetup=Cài đặt module hóa đơn
     BillsNumberingModule=Mô hình đánh số Hoá đơn và giấy báo có
     BillsPDFModules=Mô hình chứng từ hóa đơn
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=Payment documents models
     CreditNote=Lưu ý tín dụng
     CreditNotes=Giấy báo có
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= Quản lý một Đăng nhập cho mỗi thành viên
     AdherentMailRequired=Email được yêu cầu để tạo ra một thành viên mới
     MemberSendInformationByMailByDefault=Hộp kiểm để gửi thư xác nhận cho các thành viên (xác nhận hoặc đăng ký mới) là theo mặc định
     VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=Thiết lập LDAP
     LDAPGlobalParameters=Các thông số toàn cầu
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=Test member type synchronization
     LDAPTestSearch= Test a LDAP search
     LDAPSynchroOK=Synchronization test successful
     LDAPSynchroKO=Failed synchronization test
    -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
     LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
    -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP server configured for version 3
     LDAPSetupForVersion2=LDAP server configured for version 2
     LDAPDolibarrMapping=Dolibarr Mapping
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory)
     LDAPFieldLoginSambaExample=Example : samaccountname
     LDAPFieldFullname=Họ và tên
     LDAPFieldFullnameExample=Example : cn
    -LDAPFieldPasswordNotCrypted=Password not crypted
    -LDAPFieldPasswordCrypted=Password crypted
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=Example : userPassword
     LDAPFieldCommonNameExample=Ví dụ: cn
     LDAPFieldName=Tên
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP
     LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
     ForANonAnonymousAccess=For an authenticated access (for a write access for example)
     PerfDolibarr=Báo cáo cài đặt trình diễn/ tối ưu hóa
    -YouMayFindPerfAdviceHere=Bạn sẽ tìm thấy trên trang này một số kiểm tra và lời khuyên liên quan đến hiệu suất.
    -NotInstalled=Không cài đặt, vì vậy máy chủ của bạn không chậm vì điều này.
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=Applicative cache
     MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
     MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
     MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
     OPCodeCache=OPCode cache
    -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
     FilesOfTypeCached=Files of type %s are cached by HTTP server
     FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
     FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
     FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
     CacheByServer=Cache by server
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=Cache by browser
     CompressionOfResources=Compression of HTTP responses
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=Default search filters
     DefaultSortOrder=Default sort orders
     DefaultFocus=Default focus fields
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=Cài đặt module sản phẩm
     ServiceSetup=Cài đặt module dịch vụ
     ProductServiceSetup=Cài đặt module Sản phẩm và Dịch vụ
     NumberOfProductShowInSelect=Số lượng tối đa của sản phẩm trong danh sách combo chọn (0 = không giới hạn)
    -ViewProductDescInFormAbility=Hình ảnh hóa của mô tả sản phẩm bằng trong các biểu mẫu (nếu không bật lên cửa sổ tooltip)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
     MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Hình ảnh hóa mô tả sản phẩm trên ngôn ngữ bên thứ ba
    -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=Loại mã vạch mặc định để sử dụng cho các sản phẩm
     SetDefaultBarcodeTypeThirdParties=Loại mã vạch mặc định để sử dụng cho các bên thứ ba
     UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    @@ -1503,7 +1517,7 @@ SendingsSetup=Cài đặt module Gửi
     SendingsReceiptModel=Mô hình biên nhận Gửi
     SendingsNumberingModules=Module đánh số Gửi
     SendingsAbility=Support shipping sheets for customer deliveries
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=Free text trên phiếu vận chuyển
     ##### Deliveries #####
     DeliveryOrderNumberingModules=Module đánh số phiếu giao nhận sản phẩm
    @@ -1515,18 +1529,18 @@ AdvancedEditor=Trình soạn thảo nâng cao
     ActivateFCKeditor=Kích hoạt trình soạn thảo nâng cao cho:
     FCKeditorForCompany=WYSIWIG tạo / sửa của các yếu tố mô tả và ghi chú (trừ các sản phẩm / dịch vụ)
     FCKeditorForProduct=WYSIWIG tạo / sửa của sản phẩm / dịch vụ mô tả và ghi chú
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Công cụ->eMailing)
     FCKeditorForUserSignature=WYSIWIG tạo / sửa chữ ký người sử dụng
     FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s).
    -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull.
    -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached.
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=Connection to server '%s' with user '%s' failed.
     ##### Stock #####
     StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=Nếu bạn sử dụng module điểm bán hàng(module POS được cung cấp mặc định hoặc mô-đun bên ngoài khác), thiết lập này có thể được bỏ qua bởi Module Điểm bán hàng. Hầu hết module điểm bán hàng được thiết kế để tạo lập tức một hóa đơn và giảm tồn kho theo mặc định bất cứ điều gì là tùy chọn ở đây. Vì vậy, nếu bạn cần hay không giảm tồn kho khi đăng ký bán từ điểm bán hàng của bạn, kiểm tra lại cài đặt module POS của bạn.
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=Menu bị xóa
     Menus=Menu
    @@ -1548,7 +1562,7 @@ DetailRight=Điều kiện để hiển thị menu không được phép màu x
     DetailLangs=Tên file lang cho việc dịch mã nhãn
     DetailUser=Trong/ Ngoài/ Tất cả
     Target=Target
    -DetailTarget=Target for links (_blank top open a new window)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
     ModifMenu=Thay đổi menu
     DeleteMenu=Xóa menu vào
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=Thuế GTGT là do: <br> - Giao hàng đối với hàng h
     OptionVatDebitOptionDesc=VAT is due:<br>- on delivery for goods (we use invoice date)<br>- on invoice (debit) for services
     OptionPaymentForProductAndServices=Cash basis for products and services
     OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=Ngày giao hàng
     OnPayment=Ngày thanh toán
     OnInvoice=Trên hóa đơn
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=Mã kế toán mua hàng
     AgendaSetup=Cài đặt module sự kiện và chương trình nghị sự
     PasswordTogetVCalExport=Khóa được phép xuất liên kết
     PastDelayVCalExport=Không xuất dữ liệu sự kiện cũ hơn
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Thiết lập tự động loại sự kiện này vào khung bộ lọc tìm kiếm chương trình nghị sự
    -AGENDA_DEFAULT_FILTER_STATUS=Thiết lập tự động trạng thái này cho các sự kiện vào khung bộ lọc tìm kiếm chương trình nghị sự
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=Tab mà bạn muốn mở mặc định khi lựa chọn menu chương trình nghị sự
     AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
     AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
     ##### Clicktodial #####
     ClickToDialSetup=Click To Dial module setup
     ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=Use just a link "tel:" on phone numbers
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=Điểm bán hàng
     CashDeskSetup=Cài đặt module điểm bán hàng
    -CashDeskThirdPartyForSell=Bên thứ ba mặc định chung để sử dụng cho Bán
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=Tài khoản mặc định để sử dụng để nhận thanh toán bằng tiền mặt
     CashDeskBankAccountForCheque= Tài khoản mặc định để sử dụng để nhận thanh toán bằng séc
     CashDeskBankAccountForCB= Tài khoản mặc định để sử dụng để nhận thanh toán bằng thẻ tín dụng
    -CashDeskDoNotDecreaseStock=Vô hiệu giảm tồn kho khi bán được thực hiện từ Điểm bán hàng (nếu "không", giảm tồn kho được thực hiện đối với mỗi lần bán được thực hiện từ POS, bất cứ cái gì thiết lập tùy chọn trong module tồn kho).
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=Buộc và hạn chế kho hàng để sử dụng cho giảm tồn kho
    -StockDecreaseForPointOfSaleDisabled=Giảm tồn kho từ Điểm bán hàng đã bị vô hiệu
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=Giảm tồn kho trong POS thì không tương thích với quản lý lô hàng
    -CashDeskYouDidNotDisableStockDecease=Bạn không vô hiệu giảm tồn kho khi tạo một lần bán từ Điểm bán hàng. Vì vậy kho hàng thì được yêu cầu
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=Cài đặt module Bookmark
    -BookmarkDesc=Module này cho phép bạn quản lý bookmark. Bạn cũng có thể thêm các phím tắt cho bất kỳ trang Dolibarr hoặc các trang web externale trên menu bên trái của bạn.
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=Số lượng tối đa các bookmark để hiển thị trong menu bên trái
     ##### WebServices #####
     WebServicesSetup=Cài đặt module webservices
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
     MultiCompanySetup=Thiết lập mô-đun đa công ty
     ##### Suppliers #####
     SuppliersSetup=Thiết lập mô-đun nhà cung cấp
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
     SuppliersInvoiceNumberingModel=Mô hình đánh số hóa đơn nhà cung cấp
     IfSetToYesDontForgetPermission=Nếu chỉnh là có, đừng quên cung cấp phân quyền cho nhóm hoặc người dùng được phép cho duyệt lần hai.
    @@ -1654,7 +1668,7 @@ ProjectsSetup=Cài đặt module dự án
     ProjectsModelModule=Kiểu chứng từ báo cáo dự án
     TasksNumberingModules=Module đánh số tác vụ
     TaskModelModule=Kiểu chứng từ báo cáo tác vụ
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=Accounting periods
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=Bạn có thể thấy tù
     ListOfNotificationsPerUser=List of notifications per user*
     ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
     ListOfFixedNotifications=Danh sách thông báo cố định
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
     Threshold=Threshold
     BackupDumpWizard=Thủ thuật tạo file dump sao lưu dự phòng cơ sở dữ liệu
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Cài đặt các module bên ngoài t
     ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
     HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=Text color of Page title
     LinkColor=Color of links
     PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=Màu nền của hàng chẵn
     MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay)
     NbAddedAutomatically=Number of days added to counters of users (automatically) each month
     EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=The RGB color is in HEX format, eg: FF0000
     PositionIntoComboList=Position of line into combo lists
     SellTaxRate=Sale tax rate
     RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
     UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=This template record is dedicated to which element
     TypeOfTemplate=Type of template
    -TemplateIsVisibleByOwnerOnly=Template is visible by owner only
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=Visible everywhere
     VisibleNowhere=Visible nowhere
     FixTZ=TimeZone fix
    @@ -1747,10 +1762,10 @@ YouUseLastStableVersion=You use the latest stable version
     TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
     TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=Templates for product documents
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=See * note for list of possible substitution variables
     SeeChangeLog=See ChangeLog file (english only)
     AllPublishers=All publishers
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=Add other pages or services
     AddModels=Add document or numbering templates
     AddSubstitutions=Add keys substitutions
     DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=List of available APIs
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=Landing page
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
     ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=Left margin on PDF
     MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
     MAIN_PDF_MARGIN_TOP=Top margin on PDF
     MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=Several language variants found
     COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
     COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=Zip
     ##### Resource ####
     ResourceSetup=Configuration du module Resource
     UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
     DisabledResourceLinkUser=Disable feature to link a resource to users
     DisabledResourceLinkContact=Disable feature to link a resource to contacts
     ConfirmUnactivation=Confirm module reset
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/vi_VN/banks.lang b/htdocs/langs/vi_VN/banks.lang
    index 8684c5da5b8..88d213e6e65 100644
    --- a/htdocs/langs/vi_VN/banks.lang
    +++ b/htdocs/langs/vi_VN/banks.lang
    @@ -7,7 +7,7 @@ BankName=Tên ngân hàng
     FinancialAccount=Tài khoản
     BankAccount=Tài khoản ngân hàng
     BankAccounts=Tài khoản ngân hàng
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=Bank | Gateways
     ShowAccount=Hiện tài khoản
     AccountRef=Tài khoản tài chính ref
     AccountLabel=Nhãn tài khoản tài chính
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=Địa chỉ tài khoản
     BankAccountCountry=Quốc gia tài khoản
     BankAccountOwner=Tên chủ tài khoản
     BankAccountOwnerAddress=Địa chỉ chủ sở hữu tài khoản
    -RIBControlError=Kiểm tra tính toàn vẹn của các giá trị bị lỗi. Điều này có nghĩa là thông tin về số tài khoản này là không đầy đủ hoặc sai (kiểm tra cả nước, con số và IBAN).
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=Tạo tài khoản
     NewBankAccount=Tài khoản mới
     NewFinancialAccount=Tài khoản tài chính mới
    @@ -76,6 +76,7 @@ TransactionsToConciliate=Mục cần đối chiếu
     Conciliable=Có thể được đối chiếu
     Conciliate=Đối chiếu
     Conciliation=Đối chiếu
    +SaveStatementOnly=Save statement only
     ReconciliationLate=Đối chiếu sau
     IncludeClosedAccount=Bao gồm các tài khoản đã đóng
     OnlyOpenedAccount=Chỉ tài khoản đang mở
    @@ -104,7 +105,7 @@ SocialContributionPayment=Thanh toán xã hội/ fiscal tax
     BankTransfer=Chuyển khoản ngân hàng
     BankTransfers=Chuyển khoản ngân hàng
     MenuBankInternalTransfer=Chuyển tiền nội bộ
    -TransferDesc=Chuyển khoản từ 1 từ khoản này tới tài khoản khác. Hệ thống sẽ ghi 2 biểu ghi (1 ghi nợ trong tài khoản gốc và 1 tín dụng trong tài khoản nhận). Tổng số tương đương (kí hiệu trừ), nhãn và ngày sẽ được sử dụng cho giao dịch này.
    +TransferDesc=Transfer from one account to another one, Dolibarr will write two records (a debit in source account and a credit in target account). The same amount (except sign), label and date will be used for this transaction)
     TransferFrom=Từ
     TransferTo=Đến
     TransferFromToDone=Một chuyển khoản từ <b>%s</b> đến <b>%s</b> của <b>%s</b> %s đã được ghi lại.
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=Bạn có muốn xóa biên nhận séc này?
     BankChecks=Séc ngân hàng
     BankChecksToReceipt=Séc đợi tiền gửi
     ShowCheckReceipt=Hiện chứng từ séc ứng trước
    -NumberOfCheques=Nb của séc
    +NumberOfCheques=No. of check
     DeleteTransaction=Xóa mục kê khai
     ConfirmDeleteTransaction=Bạn có muốn xóa kê khai này?
     ThisWillAlsoDeleteBankRecord=Đồng thời còn xóa kê khai ngân hàng đã tạo
    @@ -135,8 +136,8 @@ BankTransactionLine=Kê khai ngân hàng
     AllAccounts=All bank and cash accounts
     BackToAccount=Trở lại tài khoản
     ShowAllAccounts=Hiển thị tất cả tài khoản
    -FutureTransaction=Giao dịch trong futur. Không có cách nào để đối chiếu
    -SelectChequeTransactionAndGenerate=Chọn / kiểm tra bộ lọc để đưa vào nhận tiền gửi kiểm tra và bấm vào "Tạo".
    +FutureTransaction=Transaction in future. No way to reconcile.
    +SelectChequeTransactionAndGenerate=Select/filter checks to include in the check deposit receipt and click on "Create".
     InputReceiptNumber=Chọn bảng kê ngân hàng có quan hệ với việc đối chiếu. Sử dụng giá trị số có thể sắp xếp: YYYYMM hoặc YYYYMMDD
     EventualyAddCategory=Cuối cùng, chỉ định một danh mục trong đó để phân loại các hồ sơ
     ToConciliate=Để đối chiếu
    @@ -153,7 +154,7 @@ RejectCheckDate=Ngày séc bị trả lại
     CheckRejected=Séc bị trả lại
     CheckRejectedAndInvoicesReopened=Séc bị trả lại và hóa đơn bị mở lại
     BankAccountModelModule=Mẫu tài liệu dàng cho tài khoản ngân hàng
    -DocumentModelSepaMandate=Mẫu lệnh SEPA. Chỉ dùng cho các nước trong khối EEC
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Mẫu để in 1 trang với thông tin BAN
     NewVariousPayment=New miscellaneous payments
     VariousPayment=Miscellaneous payments
    @@ -162,4 +163,5 @@ ShowVariousPayment=Show miscellaneous payments
     AddVariousPayment=Add miscellaneous payments
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/vi_VN/bills.lang b/htdocs/langs/vi_VN/bills.lang
    index efdab877df9..67514bc0e1f 100644
    --- a/htdocs/langs/vi_VN/bills.lang
    +++ b/htdocs/langs/vi_VN/bills.lang
    @@ -25,10 +25,10 @@ InvoiceProFormaAsk=Hóa đơn hình thức
     InvoiceProFormaDesc=<b>Hóa đơn hình thức</b> là một hình ảnh của một hóa đơn thực, nhưng không có giá trị kế toán.
     InvoiceReplacement=Hóa đơn thay thế
     InvoiceReplacementAsk=Hóa đơn thay thế cho hóa đơn
    -InvoiceReplacementDesc=<b>Hóa đơn thay thế</b> được sử dụng để hủy bỏ và thay thế hoàn toàn một hóa đơn không có thanh toán đã nhận được. <br><br> Ghi chú: Chỉ có hoá đơn không có thanh toán trên nó có thể được thay thế. Nếu bạn thay thế hóa đơn chưa đóng, nó sẽ được tự động đóng để 'bị loại bỏ'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=Giấy báo có
     InvoiceAvoirAsk=Giấy báo có để chỉnh sửa hóa đơn
    -InvoiceAvoirDesc=Những <b>giấy báo có</b> là một hóa đơn âm được sử dụng để giải quyết thực tế là một hóa đơn có số tiền đó khác hơn so với số tiền thực sự trả tiền (do khách hàng trả tiền quá nhiều bởi lỗi, hoặc sẽ không được thanh toán hoàn toàn kể từ khi anh ta trả lại một số sản phẩm chẳng hạn).
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Tạo Giấy báo có với chi tiết từ hóa đơn gốc
     invoiceAvoirWithPaymentRestAmount=Tạo Giấy báo có với phần chưa trả còn lại từ hóa đơn gốc
     invoiceAvoirLineWithPaymentRestAmount=Số tiền chưa trả còn lại trên Giấy báo có
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=Đã trả lại
     DeletePayment=Xóa thanh toán
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=Nhà cung cấp thanh toán
     ReceivedPayments=Đã nhận thanh toán
     ReceivedCustomersPayments=Thanh toán đã nhận được từ khách hàng
    -PayedSuppliersPayments=Thanh toán đã trả cho nhà cung cấp
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=Đã nhận thanh toán khách hàng để xác nhận
     PaymentsReportsForYear=Báo cáo thanh toán cho %s
     PaymentsReports=Báo cáo thanh toán
    @@ -91,8 +91,8 @@ PaymentConditionsShort=Điều khoản thanh toán
     PaymentAmount=Số tiền thanh toán
     ValidatePayment=Xác nhận thanh toán
     PaymentHigherThanReminderToPay=Thanh toán cao hơn so với đề nghị trả
    -HelpPaymentHigherThanReminderToPay=Chú ý, số tiền thanh toán của một hoặc nhiều hóa đơn là cao hơn so với phần còn lại để trả. <br> Chỉnh sửa mục nhập của bạn, nếu không xác nhận và suy nghĩ về việc tạo ra một giấy báo có của phần dư nhận được cho mỗi hoá đơn đã nộp dư.
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=Phân loại 'Đã trả'
     ClassifyPaidPartially=Phân loại 'Đã trả một phần'
     ClassifyCanceled=Phân loại 'Đã loại bỏ'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=Đã đóng (chưa trả)
     BillStatusClosedPaidPartially=Đã trả (một phần)
     BillShortStatusDraft=Dự thảo
     BillShortStatusPaid=Đã trả
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=Đã trả
     BillShortStatusCanceled=Đã loại bỏ
     BillShortStatusValidated=Đã xác nhận
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=Đã đóng
     BillShortStatusClosedPaidPartially=Đã trả (một phần)
     PaymentStatusToValidShort=Để xác nhận
    -ErrorVATIntraNotConfigured=Số thuế VAT Intracommunautary chưa được xác định
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=Không có chế độ thanh toán mặc định được xác định. Tới phần thiết lập mô-đun hóa đơn để sửa lỗi này.
     ErrorCreateBankAccount=Tạo một tài khoản ngân hàng, sau đó đi vào bảng Thiết lập của mô-đun hóa đơn để xác định chế độ thanh toán
     ErrorBillNotFound=Hoá đơn %s không tồn tại
    -ErrorInvoiceAlreadyReplaced=Lỗi, bạn cố gắng để xác nhận một hóa đơn để thay thế hóa đơn %s. Nhưng hóa đơn này đã được thay thế bằng hóa đơn %s.
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=Lỗi, giảm giá đã được sử dụng
     ErrorInvoiceAvoirMustBeNegative=Lỗi, chỉnh sửa hóa đơn phải có một số tiền âm.
     ErrorInvoiceOfThisTypeMustBePositive=Lỗi, hóa đơn loại này phải có một số tiền dương
     ErrorCantCancelIfReplacementInvoiceNotValidated=Lỗi, không thể hủy bỏ một hóa đơn đã được thay thế bằng hóa đơn khác mà vẫn còn trong tình trạng dự thảo
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=Từ
     BillTo=Đến
     ActionsOnBill=Hành động trên hoá đơn
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Phần chưa trả còn lại <b>(%s %s)</b> là giảm giá đã gán vì khoản thanh toán đã được thực hiện trước thời hạn. Tôi hợp thức VAT với giấy báo có
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Phần chưa trả còn lại <b>(%s %s)</b> là giảm giá đã gán vì thanh toán đã được thực hiện trước thời hạn. Tôi chấp nhận mất thuế VAT trên giảm giá này.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Phần chưa thanh trả còn lại <b>(%s %s)</b> là giảm giá được cấp vì thanh toán đã được thực hiện trước thời hạn. Tôi thu hồi thuế VAT đối với giảm giá này mà không có một giấy báo có.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=Khách hàng xấu
     ConfirmClassifyPaidPartiallyReasonProductReturned=Sản phẩm đã trả lại một phần
     ConfirmClassifyPaidPartiallyReasonOther=Số tiền đã bị loại bỏ cho lý do khác
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Sự lựa chọn này là có thể nếu hóa đơn của bạn đã được cung cấp với ghi chú phù hợp. (Ví dụ «Chỉ có thuế tương ứng với mức giá mà đã được trả thực tế thì có quyền khấu trừ»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Ở một số nước, sự lựa chọn này là có thể chỉ khi hóa đơn của bạn chứa ghi chú chỉnh sửa.
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=Sử dụng lựa chọn này nếu tất cả các khác không phù hợp
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Một <b>khách hàng xấu</b> là một khách hàng mà từ chối trả nợ của mình.
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Lựa chọn này được sử dụng khi thanh toán không đầy đủ vì một số sản phẩm đã được trả lại
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=Sử dụng lựa chọn này nếu tất cả các khác không phù hợp, ví dụ như trong tình huống sau đây: <br> - Thanh toán không hoàn thành vì một số sản phẩm được vận chuyển trở lại <br> - Số tiền đòi quá lớn bởi vì quên giảm giá  <br> Trong mọi trường hợp, số tiền đòi vượt phải được chính sửa trong hệ thống kế toán bằng cách tạo ra một giấy báo có.
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=Khác
     ConfirmClassifyAbandonReasonOtherDesc=Lựa chọn này sẽ được sử dụng trong tất cả các trường hợp khác. Ví dụ bởi vì bạn có kế hoạch để tạo ra một hóa đơn thay thế.
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=Xác nhận hóa đơn
     UnvalidateBill=Chưa xác nhận hóa đơn
    -NumberOfBills=Nb của hoá đơn
    -NumberOfBillsByMonth=Nb của hoá đơn theo tháng
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=Số tiền của hóa đơn
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=Số tiền của hóa đơn theo tháng (có thuế)
     ShowSocialContribution=Xem thuế social/fiscal
     ShowBill=Hiện thị hóa đơn
    @@ -260,9 +262,9 @@ Repeatables=Mẫu
     ChangeIntoRepeatableInvoice=Chuyển đổi thành hóa đơn mẫu
     CreateRepeatableInvoice=Tạo hóa đơn mẫu
     CreateFromRepeatableInvoice=Tạo từ hóa đơn mẫu
    -CustomersInvoicesAndInvoiceLines=Hoá đơn khách hàng và chi tiết hóa đơn
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=Hóa đơn khách hàng và thanh toán
    -ExportDataset_invoice_1=Danh sách hóa đơn khách hàng và chi tiết hóa đơn
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=Hóa đơn khách hàng và thanh toán
     ProformaBill=Ra hóa đơn hình thức:
     Reduction=Khấu trừ
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=Địa chỉ ra hóa đơn
    -HelpEscompte=Giảm giá này được cấp cho các khách hàng bởi vì thanh toán của nó đã được thực hiện trước thời hạn.
    -HelpAbandonBadCustomer=Số tiền này đã bị loại bỏ (khách hàng được cho là một khách hàng xấu) và được coi là một ngoại lệ .
    -HelpAbandonOther=Số tiền này đã bị loại bỏ vì đó là một lỗi (ví dụ khách hàng sai hoặc hóa đơn được thay thế bằng hóa đơn khác)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=ID thanh toán
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=Không có hoá đơn được chọn
     CloneInvoice=Nhân bản hóa đơn
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=Hành động vô hiệu hóa vì hóa đơn đã được thay thế
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=Nb của thanh toán
    +DescTaxAndDividendsArea=Khu vực này trình bày một bản tóm tắt của tất cả các khoản thanh toán cho các chi phí đặc biệt. Chỉ có những hồ sơ mà thanh toán trong năm cố định được bao gồm ở đây.
    +NbOfPayments=No. of payments
     SplitDiscount=Tách chiết khấu thành 2
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=Số tiền đầu vào cho mỗi hai phần:
    -TotalOfTwoDiscountMustEqualsOriginal=Tổng của hai giảm giá mới phải bằng số tiền giảm giá ban đầu.
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=Hóa đơn liên quan
     RelatedBills=Hoá đơn liên quan
     RelatedCustomerInvoices=Hóa đơn khách hàng liên quan
     RelatedSupplierInvoices=Hóa đơn nhà cung cấp liên quan
     LatestRelatedBill=Hóa đơn liên quan mới nhất
    -WarningBillExist=Cảnh báo, một hoặc nhiều hóa đơn đã tồn tại
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Công cụ sáp nhập PDF
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Ghi chú thanh toán
     ListOfPreviousSituationInvoices=Danh sách hóa đơn tình huống trước đó
     ListOfNextSituationInvoices=Danh sách hóa đơn tình huống tiếp theo
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=Séc
     PaymentTypeShortCHQ=Séc
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=Thanh toán trực tuyến
    -PaymentTypeShortVAD=Thanh toán trực tuyến
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=Dự thảo
     PaymentTypeFAC=Tác nhân
     PaymentTypeShortFAC=Tác nhân
     BankDetails=Chi tiết ngân hàng
     BankCode=Mã ngân hàng
    -DeskCode=Đang quầy
    +DeskCode=Office code
     BankAccountNumber=Số tài khoản
    -BankAccountNumberKey=Khóa
    +BankAccountNumberKey=Check digits
     Residence=Thấu chi trực ti
    -IBANNumber=Số IBAN
    +IBANNumber=IBAN complete account number
     IBAN=IBAN
     BIC=BIC / SWIFT
     BICNumber=Số BIC / SWIFT
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=Thanh toán bằng chuyển khoản vào tài
     VATIsNotUsedForInvoice=* Không áp dụng thuế VAT art-293B of CGI
     LawApplicationPart1=Bằng cách áp dụng luật 80.335 of 12/05/80
     LawApplicationPart2=hàng hóa duy trì đặc tính của
    -LawApplicationPart3=người bán vẫn thanh toán tiền mặt hoàn toàn
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=giá của họ.
     LimitedLiabilityCompanyCapital=SARL with Capital of
     UseLine=Áp dụng
    @@ -463,7 +465,7 @@ Cheques=Séc
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=Sử dụng địa chỉ liên lạc khách hàng để ra hóa đơn thay vì địa chỉ của bên thứ ba như là người nhận hoá đơn
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=Hiển thị tất cả các hoá đơn chưa trả
     ShowUnpaidLateOnly=Hiển thị chỉ hoá đơn chưa trả cuối
     PaymentInvoiceRef=Hóa đơn thanh toán %s
    @@ -474,21 +476,22 @@ Reported=Bị trễ
     DisabledBecausePayments=Không được khi có nhiều khoản thanh toán
     CantRemovePaymentWithOneInvoicePaid=Không thể xóa bỏ thanh toán khi có ít nhất một hóa đơn được phân loại đã trả
     ExpectedToPay=Thanh toán dự kiến
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=Đã trả bởi khoản thanh toán này
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Phân loại các "Đã trả" tất cả các giấy báo có đã trả đủ trở lại.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=Tất cả hóa đơn chưa trả sẽ được tự động đóng sang trạng thái "Đã trả".
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Trả
     ToMakePaymentBack=Trả lại
     ListOfYourUnpaidInvoices=Danh sách các hoá đơn chưa trả
     NoteListOfYourUnpaidInvoices=Ghi chú: Danh sách này chỉ chứa các hoá đơn cho bên thứ ba mà bạn liên quan như là một đại diện bán hàng.
     RevenueStamp=Doanh thu đóng dấu
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=Hóa đơn mẫu PDF Crabe. Một mẫu hóa đơn đầy đủ (mẫu đề nghị)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Quay về số với định dạng %ssyymm-nnnn cho hóa đơn chuẩn và %syymm-nnnn cho các giấy báo có nơi mà yy là năm, mm là tháng và nnnn là một chuỗi ngắt và không trở về 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Xóa hóa đơn mẫu
     ConfirmDeleteRepeatableInvoice=Bạn có chắc chắn muốn xóa hóa đơn mẫu?
     CreateOneBillByThird=Tạo 1 hóa đơn theo tổ chức (hoặc, 1 hóa đơn theo đơn hàng)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=Invoice deleted
    diff --git a/htdocs/langs/vi_VN/cashdesk.lang b/htdocs/langs/vi_VN/cashdesk.lang
    index 67cacc8fc12..b002ef35cd6 100644
    --- a/htdocs/langs/vi_VN/cashdesk.lang
    +++ b/htdocs/langs/vi_VN/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=Hiện công ty
     ShowStock=Hiện kho
     DeleteArticle=Nhấn vào đây để gỡ bỏ bài viết này
     FilterRefOrLabelOrBC=Tìm kiếm (Ref / Label)
    -UserNeedPermissionToEditStockToUsePos=Bạn yêu cầu để giảm chứng khoán vào việc tạo ra hóa đơn, vì vậy người dùng có sử dụng POS cần phải có sự cho phép để chỉnh sửa chứng khoán.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=Điểm bán hàng
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/vi_VN/commercial.lang b/htdocs/langs/vi_VN/commercial.lang
    index 618167645e7..604365fec6f 100644
    --- a/htdocs/langs/vi_VN/commercial.lang
    +++ b/htdocs/langs/vi_VN/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=Gọi điện thoại
     ActionAC_FAX=Gửi fax
     ActionAC_PROP=Gửi đơn hàng đề xuất qua thư
     ActionAC_EMAIL=Gởi thư
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=Cuộc họp
     ActionAC_INT=Intervention on site
     ActionAC_FAC=Gửi hóa đơn khách hàng bằng thư
    @@ -72,8 +73,8 @@ StatusProsp=Trạng thái KH tiềm năng
     DraftPropals=Dự thảo đơn hàng đề xuất
     NoLimit=No limit
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/vi_VN/companies.lang b/htdocs/langs/vi_VN/companies.lang
    index 7f5f7c14362..1d1dbde38e7 100644
    --- a/htdocs/langs/vi_VN/companies.lang
    +++ b/htdocs/langs/vi_VN/companies.lang
    @@ -5,16 +5,16 @@ SelectThirdParty=Chọn một bên thứ ba
     ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
     DeleteContact=Xóa một liên lạc/địa chỉ
     ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=Bên thứ ba mới
    -MenuNewCustomer=Khách hàng mới
    -MenuNewProspect=KH tiềm năng mới
    -MenuNewSupplier=New vendor
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=Cá nhân mới
    -NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    -CreateDolibarrThirdPartySupplier=Create a third party (vendor)
    +NewCompany=Công ty mới (khách nàng tiềm năng, khách hàng, nhà cung cấp)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
    +CreateDolibarrThirdPartySupplier=Tạo bên thứ ba mới (nhà cung cấp)
     CreateThirdPartyOnly=Tạo bên thứ ba
    -CreateThirdPartyAndContact=Create a third party + a child contact
    +CreateThirdPartyAndContact=Tạo 1 bên thứ ba + 1 đầu mối cấp con
     ProspectionArea=Khu vực khảo sát
     IdThirdParty=ID bên thứ ba
     IdCompany=ID công ty
    @@ -24,27 +24,27 @@ ThirdPartyContacts=Liên lạc bên thứ ba
     ThirdPartyContact=Liên lạc/địa chỉ bên thứ ba
     Company=Công ty
     CompanyName=Tên công ty
    -AliasNames=Alias name (commercial, trademark, ...)
    -AliasNameShort=Alias name
    +AliasNames=Tên viết tắt (tài chính, thương hiệu)
    +AliasNameShort=Alias Name
     Companies=Các công ty
    -CountryIsInEEC=Quốc gia thuộc Cộng đồng Kinh tế châu Âu
    -ThirdPartyName=Tên của bên thứ ba
    -ThirdPartyEmail=Third party email
    -ThirdParty=Bên thứ ba
    -ThirdParties=Các bên thứ ba
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
    +ThirdPartyEmail=Email bên thứ ba
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=KH tiềm năng
     ThirdPartyProspectsStats=Các KH tiềm năng
     ThirdPartyCustomers=Các khách hàng
     ThirdPartyCustomersStats=Các khách hàng
     ThirdPartyCustomersWithIdProf12=Khách hàng  với %s hoặc %s
    -ThirdPartySuppliers=Vendors
    -ThirdPartyType=Loại bên thứ ba
    +ThirdPartySuppliers=Nhà cung cấp
    +ThirdPartyType=Type of company
     Individual=Cá nhân
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=Công ty mẹ
     Subsidiaries=Các chi nhánh
    -ReportByMonth=Report by month
    -ReportByCustomers=Report by customer
    +ReportByMonth=Báo cáo theo tháng
    +ReportByCustomers=Báo cáo theo khách hàng
     ReportByQuarter=Báo cáo theo tỷ lệ
     CivilityCode=Mã Civility
     RegisteredOffice=Trụ sở đăng ký
    @@ -52,12 +52,12 @@ Lastname=Họ
     Firstname=Tên
     PostOrFunction=Vị trí công việc
     UserTitle=Tiêu đề
    -NatureOfThirdParty=Nature of Third party
    +NatureOfThirdParty=Nature của Third party
     Address=Địa chỉ
     State=Bang/Tỉnh
    -StateShort=State
    +StateShort=Tỉnh/ thành
     Region=Vùng
    -Region-State=Region - State
    +Region-State=Vùng - Tỉnh/ thành
     Country=Quốc gia
     CountryCode=Mã quốc gia
     CountryId=ID quốc gia
    @@ -69,18 +69,18 @@ Chat=Chat
     PhonePro=Prof. phone
     PhonePerso=Pers. phone
     PhoneMobile=Mobile
    -No_Email=Refuse mass e-mailings
    +No_Email=Từ chối gửi email hàng loạt
     Fax=Fax
     Zip=Mã Zip
     Town=Thành phố
     Web=Web
     Poste= Chức vụ
    -DefaultLang=Ngôn ngữ mặc định
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    -VATIsNotUsed=Sales tax is not used
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
    +VATIsNotUsed=Thuế kinh doanh không được dùng
     CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
     PaymentBankAccount=Payment bank account
     OverAllProposals=Đơn hàng đề xuất
    @@ -258,7 +258,7 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    +VATIntra=Sales Tax/VAT ID
     VATIntraShort=Tax ID
     VATIntraSyntaxIsValid=Cú pháp hợp lệ
     VATReturn=VAT return
    @@ -274,8 +274,8 @@ CompanyHasRelativeDiscount=Khách hàng này có giảm giá mặc định là <
     CompanyHasNoRelativeDiscount=Khách hàng này không có mặc định giảm giá theo %
     HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
     HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=Khách hàng này vẫn có ghi nợ cho <b>%s</b> %s
     HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
     HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    @@ -287,7 +287,7 @@ CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
     SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
     SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
     DiscountNone=Không
    -Supplier=Nhà cung cấp
    +Supplier=Vendor
     AddContact=Tạo liên lạc
     AddContactAddress=Tạo liên lạc/địa chỉ
     EditContact=Sửa liên lạc
    @@ -303,22 +303,22 @@ AddThirdParty=Tạo bên thứ ba
     DeleteACompany=Xóa một công ty
     PersonalInformations=Dữ liệu cá nhân
     AccountancyCode=Tài khoản kế toán
    -CustomerCode=Mã khách hàng
    -SupplierCode=Vendor code
    -CustomerCodeShort=Mã khách hàng
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=Mã khách hàng, duy nhất cho tất cả khách hàng
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=Yêu cầu nếu bên thứ ba là một khách hàng hoặc KH tiềm năng
    -RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=Xác nhận kiểm soát bởi mô-đun
    -ThisIsModuleRules=Đây là quy tắc cho các mô-đun này
    +RequiredIfSupplier=Buộc phải nhập nếu bên thứ ba là nhà cung cấp
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=KH tiềm năng để liên lạc
     CompanyDeleted=Công ty "%s" đã xóa khỏi cơ sở dữ liệu.
     ListOfContacts=Danh sách liên lạc/địa chỉ
     ListOfContactsAddresses=Danh sách liên lạc/địa chỉ
    -ListOfThirdParties=Danh sách các bên thứ ba
    -ShowCompany=Show third party
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=Hiện liên lạc
     ContactsAllShort=Tất cả (không lọc)
     ContactType=Loại liên lạc
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=Liên lạc này không phải cho bất kỳ đơn hàn
     NoContactForAnyContract=Liên lạc này không phải cho bất kỳ hợp đồng nào
     NoContactForAnyInvoice=Liên lạc này không phải cho bất kỳ hóa đơn nào
     NewContact=Liên lạc mới
    -NewContactAddress=Liên lạc/địa chỉ mới
    +NewContactAddress=New Contact/Address
     MyContacts=Liên lạc của tôi
     Capital=Vốn
     CapitalOf=Vốn của %s
     EditCompany=Chỉnh sửa công ty
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=Kiểm tra
    -VATIntraCheckDesc=Các liên kết <b>%s</b> cho phép yêu cầu các dịch vụ kiểm tra thuế VAT châu Âu. Một truy cập internet từ máy chủ bên ngoài là cần thiết cho dịch vụ này để làm việc.
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site
    -VATIntraManualCheck=You can also check manually from european web site <a href="%s" target="_blank">%s</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s).
    -NorProspectNorCustomer=Cũng không phải khách hàng tiềm năng, cũng không phải khách hàng
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=Nhân viên
     ProspectLevelShort=Tiềm năng
     ProspectLevel=KH tiềm năng
    @@ -387,12 +387,12 @@ ExportCardToFormat=Thẻ xuất để định dạng
     ContactNotLinkedToCompany=Liên lạc không liên quan đến bất kỳ bên thứ ba
     DolibarrLogin=Đăng nhập Dolibarr
     NoDolibarrAccess=Không truy cập Dolibarr
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=Liên lạc và các thuộc tính
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=Mức giá
     DeliveryAddress=Địa chỉ giao hàng
     AddAddress=Thêm địa chỉ
    @@ -402,33 +402,33 @@ DeleteFile=Xóa tập tin
     ConfirmDeleteFile=Bạn có chắc muốn xóa tập tin này?
     AllocateCommercial=Assigned to sales representative
     Organization=Tổ chức
    -FiscalYearInformation=Thông tin về năm tài chính
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=Tháng bắt đầu của năm tài chính
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=Danh sách KH tiềm năng
    -ListCustomersShort=Danh sách khách hàng
    -ThirdPartiesArea=Bên thứ ba và các khu vực liên lạc
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=Tổng của bên thứ ba duy nhất
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=Mở
     ActivityCeased=Đóng
    -ThirdPartyIsClosed=Third party is closed
    -ProductsIntoElements=List of products/services into %s
    +ThirdPartyIsClosed=Bên thứ ba bị đóng
    +ProductsIntoElements=Danh sách sản phẩm/ dịch vụ vào %s
     CurrentOutstandingBill=Công nợ hiện tại
     OutstandingBill=Công nợ tối đa
     OutstandingBillReached=Max. for outstanding bill reached
     OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=Mã này tự do. Mã này có thể được sửa đổi bất cứ lúc nào.
     ManagingDirectors=Tên quản lý (CEO, giám đốc, chủ tịch...)
     MergeOriginThirdparty=Duplicate third party (third party you want to delete)
     MergeThirdparties=Merge third parties
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
     ThirdpartiesMergeSuccess=Third parties have been merged
     SaleRepresentativeLogin=Login of sales representative
     SaleRepresentativeFirstname=First name of sales representative
     SaleRepresentativeLastname=Last name of sales representative
     ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/vi_VN/dict.lang b/htdocs/langs/vi_VN/dict.lang
    index 9ae85913a6b..c1cafab6419 100644
    --- a/htdocs/langs/vi_VN/dict.lang
    +++ b/htdocs/langs/vi_VN/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=Đảo Heard và McDonald
     CountryVA=Tòa Thánh (Vatican City State)
     CountryHN=Honduras
     CountryHK=Hồng Kông
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=Ấn Độ
     CountryID=Indonesia
     CountryIR=Iran
    @@ -131,7 +131,7 @@ CountryKI=Kiribati
     CountryKP=Bắc Triều Tiên
     CountryKR=Hàn Quốc
     CountryKW=Kuwait
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=Lào
     CountryLV=Latvia
     CountryLB=Lebanon
    @@ -160,7 +160,7 @@ CountryMD=Moldova
     CountryMN=Mông Cổ
     CountryMS=Monserrat
     CountryMZ=Mozambique
    -CountryMM=Birmania (Myanmar)
    +CountryMM=Myanmar (Burma)
     CountryNA=Namibia
     CountryNR=Nauru
     CountryNP=Nepal
    @@ -223,7 +223,7 @@ CountryTO=Tonga
     CountryTT=Trinidad và Tobago
     CountryTR=Thổ Nhĩ Kỳ
     CountryTM=Turkmenistan
    -CountryTC=Quần đảo Turks và Cailos
    +CountryTC=Turks and Caicos Islands
     CountryTV=Tuvalu
     CountryUG=Uganda
     CountryUA=Ukraina
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=Rupee Mauritius
     CurrencySingMUR=Mauritius rupee
     CurrencyNOK=Krones Na Uy
    -CurrencySingNOK=Krone Na Uy
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=Dinar Tunisia
     CurrencySingTND=Dinar Tunisia
     CurrencyUSD=Đô la Mỹ
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=Truyền miệng
     DemandReasonTypeSRC_PARTNER=Đối tác
     DemandReasonTypeSRC_EMPLOYEE=Nhân viên
     DemandReasonTypeSRC_SPONSORING=Tài trợ
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=Định dạng 4A0
     PaperFormatEU2A0=Định dạng 2A0
    diff --git a/htdocs/langs/vi_VN/ecm.lang b/htdocs/langs/vi_VN/ecm.lang
    index e61c4097892..2fa6698265a 100644
    --- a/htdocs/langs/vi_VN/ecm.lang
    +++ b/htdocs/langs/vi_VN/ecm.lang
    @@ -1,12 +1,12 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=Nb các tài liệu trong thư mục
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=Thư mục
    -ECMSectionManual=Hướng dẫn sử dụng thư mục
    +ECMSectionManual=Thư mục
     ECMSectionAuto=Thư mục tự động
    -ECMSectionsManual=Hướng dẫn sử dụng cây
    +ECMSectionsManual=Cây thư mục
     ECMSectionsAuto=Cây tự động
     ECMSections=Thư mục
    -ECMRoot=ECM Root
    +ECMRoot=Gốc
     ECMNewSection=Thư mục mới
     ECMAddSection=Thêm thư mục
     ECMCreationDate=Ngày tạo
    @@ -14,11 +14,11 @@ ECMNbOfFilesInDir=Số lượng hồ sơ trong thư mục
     ECMNbOfSubDir=Số thư mục con
     ECMNbOfFilesInSubDir=Số ảnh trong thư mục con
     ECMCreationUser=Người tạo
    -ECMArea=DMS/ECM area
    -ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr.
    +ECMArea=Vùng DMS/ECM
    +ECMAreaDesc=Vùng DMS/ECM (Document Management System / Electronic Content Management) cho phép bạn lưu, chia sẻ và tìm nhanh mọi loại tài liệu trong hệ thống.
     ECMAreaDesc2=* Thư mục tự động được điền tự động khi thêm tài liệu từ thẻ của một phần tử. <br> * Hướng dẫn sử dụng các thư mục có thể được sử dụng để lưu các tài liệu không liên quan đến một yếu tố cụ thể.
     ECMSectionWasRemoved=Thư <b>mục% s</b> đã bị xóa.
    -ECMSectionWasCreated=Directory <b>%s</b> has been created.
    +ECMSectionWasCreated=Thư mục <b>%s</b> đã được tạo
     ECMSearchByKeywords=Tìm kiếm theo từ khóa
     ECMSearchByEntity=Tìm kiếm theo đối tượng
     ECMSectionOfDocuments=Thư mục tài liệu
    @@ -31,9 +31,11 @@ ECMDocsByContracts=Các tài liệu liên quan đến hợp đồng
     ECMDocsByInvoices=Các tài liệu liên quan đến hoá đơn cho khách hàng
     ECMDocsByProducts=Các tài liệu liên quan đến sản phẩm
     ECMDocsByProjects=Các tài liệu liên quan đến dự án
    -ECMDocsByUsers=Documents linked to users
    +ECMDocsByUsers=Tài liệu liên kết với người dùng
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=Không có thư mục được tạo ra
     ShowECMSection=Hiện thư mục
     DeleteSection=Hủy bỏ thư mục
    @@ -46,6 +48,5 @@ ECMSelectASection=Select a directory in the tree...
     DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
     ReSyncListOfDir=Resync list of directories
     HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
     NoDirectoriesFound=No directories found
    +FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    diff --git a/htdocs/langs/vi_VN/errors.lang b/htdocs/langs/vi_VN/errors.lang
    index 2a2fc25379a..0b2b27ffb6e 100644
    --- a/htdocs/langs/vi_VN/errors.lang
    +++ b/htdocs/langs/vi_VN/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=Giá trị '% s' có định dạng sai ngày
     ErrorWrongDate=Ngày là không đúng!
     ErrorFailedToWriteInDir=Không thể viết trong thư mục% s
     ErrorFoundBadEmailInFile=Tìm thấy cú pháp email không chính xác cho% s dòng trong tập tin (ví dụ dòng% s với email =% s)
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=Một số trường yêu cầu không được lấp đầy.
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=Không thể tạo một thư mục. Kiểm tra xem người sử dụng máy chủ web có quyền ghi vào thư mục tài liệu Dolibarr. Nếu tham số <b>safe_mode</b> được kích hoạt trên PHP này, hãy kiểm tra các tập tin php Dolibarr sở hữu cho người sử dụng máy chủ web (hoặc một nhóm).
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Xin vui lòng điền giá trị so với danh sách l
     ErrorNoValueForCheckBoxType=Xin vui lòng điền giá trị so với danh sách hộp
     ErrorNoValueForRadioType=Xin vui lòng điền giá trị so với danh sách phát thanh
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=<b>Dòng% s</b> không được chứa các ký tự đặc biệt.
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=Không có mô-đun kế toán kích hoạt
     ErrorExportDuplicateProfil=Tên hồ sơ này đã tồn tại cho bộ xuất khẩu này.
     ErrorLDAPSetupNotComplete=Dolibarr-LDAP phù hợp là không đầy đủ.
     ErrorLDAPMakeManualTest=Một tập tin .ldif đã được tạo ra trong thư mục% s. Hãy thử để tải nó bằng tay từ dòng lệnh để có thêm thông tin về lỗi.
    -ErrorCantSaveADoneUserWithZeroPercentage=Không thể lưu một hành động với "statut không bắt đầu" nếu trường "được thực hiện bởi" cũng được làm đầy.
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=Tài liệu tham khảo dùng để tạo đã tồn tại.
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
     ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Không thể xóa kỷ lục. Nó đã được sử dụng hoặc đưa vào đối tượng khác.
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=Javascript không được vô hiệu hóa để làm việc có tính năng này. Để kích hoạt / vô hiệu hóa Javascript, bạn vào menu chủ-> Setup-> Display.
     ErrorPasswordsMustMatch=Cả hai mật khẩu gõ phải phù hợp với nhau
    -ErrorContactEMail=Một lỗi kỹ thuật xảy ra. Xin vui lòng liên hệ với quản trị viên để sau <b>email% s</b> en cung cấp các mã <b>lỗi% s</b> trong thông điệp của bạn, hoặc thậm chí tốt hơn bằng cách thêm một bản sao màn hình của trang này.
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=Giá trị sai số cho lĩnh <b>vực% s</b> (giá trị <b>'% s'</b> không phù hợp với quy tắc <b>regex% s)</b>
     ErrorFieldValueNotIn=Giá trị sai số cho lĩnh <b>vực% s</b> (giá trị <b>'% s'</b> không phải là một giá trị có sẵn vào lĩnh <b>vực% s</b> của <b>bảng% s)</b>
     ErrorFieldRefNotIn=Giá trị sai số cho lĩnh <b>vực% s</b> (giá trị <b>'% s'</b> không phải là ref <b>hiện% s)</b>
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=Các chương trình chống virus đã không th
     ErrorSpecialCharNotAllowedForField=Ký tự đặc biệt không được phép cho lĩnh vực "% s"
     ErrorNumRefModel=Một tham chiếu tồn tại vào cơ sở dữ liệu (% s) và không tương thích với quy tắc đánh số này. Di chuyển hồ sơ hoặc tài liệu tham khảo đổi tên để kích hoạt module này.
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=Lỗi trên mặt nạ
     ErrorBadMaskFailedToLocatePosOfSequence=Lỗi, mặt nạ mà không có số thứ tự
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=Lỗi, giá trị thiết lập lại xấu
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=Lỗi. Chọn ít nhất một mục.
    -ErrorDeleteNotPossibleLineIsConsolidated=Xóa không thể vì hồ sơ được liên kết với một ngân hàng transation được hoà giải
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=% S được gán cho một phần ba
     ErrorFailedToSendPassword=Không gửi mật khẩu
     ErrorFailedToLoadRSSFile=Không có nguồn cấp dữ liệu RSS. Cố gắng thêm MAIN_SIMPLEXMLLOAD_DEBUG liên tục nếu các thông báo lỗi không cung cấp đủ thông tin.
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=Người sử dụng có đăng <b>nhập% s</b> không
     ErrorLoginHasNoEmail=Thành viên này không có địa chỉ email. Quá trình hủy bỏ.
     ErrorBadValueForCode=Bad giá trị so với mã bảo vệ. Hãy thử lại với giá trị mới ...
     ErrorBothFieldCantBeNegative=Fields% s và% s không thể được cả hai tiêu cực
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=Tài khoản người <b>dùng% s</b> được sử dụng để thực hiện các máy chủ web không có sự cho phép cho điều đó
     ErrorNoActivatedBarcode=Không có loại mã vạch kích hoạt
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad định dạng!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Lỗi, có một số việc giao hàng có liên quan đến lô hàng này. Xóa từ chối.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Không thể xóa một khoản thanh toán được chia sẻ bởi ít nhất một hóa đơn với tình trạng payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Thiết lập các thông số bắt buộc chưa được xác định
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=Dấu trang với danh hiệu này hay mục tiêu
     WarningPassIsEmpty=Cảnh báo, mật khẩu cơ sở dữ liệu rỗng. Đây là một lỗ hổng bảo mật. Bạn nên thêm một mật khẩu để cơ sở dữ liệu của bạn và thay đổi tập tin conf.php của bạn để phản ánh điều này.
     WarningConfFileMustBeReadOnly=Cảnh báo, tập tin cấu hình của bạn <b>(htdocs / conf / conf.php)</b> có thể được ghi đè bởi các máy chủ web. Đây là một lỗ hổng bảo mật nghiêm trọng. Sửa đổi quyền của tập tin được trong chế độ chỉ đọc cho người sử dụng hệ điều hành được sử dụng bởi máy chủ Web. Nếu bạn sử dụng Windows và định dạng FAT cho đĩa cứng của bạn, bạn phải biết rằng hệ thống tập tin này không cho phép để thêm quyền truy cập vào tập tin, vì vậy không thể hoàn toàn an toàn.
     WarningsOnXLines=Cảnh báo trên hồ sơ <b>nguồn% s</b> (s)
    -WarningNoDocumentModelActivated=Không có mô hình, để phát tài liệu, đã được kích hoạt. Một mô hình sẽ được chọn lựa theo mặc định cho đến khi bạn kiểm tra cài đặt module của bạn.
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Cảnh báo, một khi cài đặt xong, bạn phải vô hiệu hóa cài đặt / di chuyển các công cụ bằng cách thêm một <b>install.lock</b> tập tin vào thư <b>mục% s.</b> Thiếu tập tin này là một lỗ hổng bảo mật.
    -WarningUntilDirRemoved=Tất cả các cảnh báo bảo mật (có thể nhìn thấy bằng cách chỉ sử dụng admin) sẽ vẫn hoạt động miễn là dễ bị tổn thương có mặt (hoặc MAIN_REMOVE_INSTALL_WARNING liên tục được thêm vào trong Setup-> thiết lập khác).
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Cảnh báo, đóng cửa được thực hiện ngay cả khi số lượng khác nhau giữa các nguồn và đích yếu tố. Bật tính năng này một cách thận trọng.
     WarningUsingThisBoxSlowDown=Cảnh báo, sử dụng hộp này làm chậm nghiêm túc tất cả các trang hiển thị hộp.
     WarningClickToDialUserSetupNotComplete=Thiết lập các thông tin ClickToDial cho người dùng của bạn không hoàn thành (xem tab ClickToDial vào thẻ người dùng của bạn).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/vi_VN/help.lang b/htdocs/langs/vi_VN/help.lang
    index 215cf3ee8a5..774e153632a 100644
    --- a/htdocs/langs/vi_VN/help.lang
    +++ b/htdocs/langs/vi_VN/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=Trực tuyến thời gian thực / hỗ trợ từ xa
     OtherSupport=Hỗ trợ khác
     ToSeeListOfAvailableRessources=Để liên hệ / xem các nguồn lực có sẵn:
     HelpCenter=Trung tâm trợ giúp
    -DolibarrHelpCenter=Dolibarr trợ giúp và trung tâm hỗ trợ
    -ToGoBackToDolibarr=Nếu không, bấm <a href="%s">vào đây để sử dụng Dolibarr</a>
    -TypeOfSupport=Nguồn hỗ trợ
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=Cộng đồng (miễn phí)
     TypeSupportCommercial=Thương mại
     TypeOfHelp=Loại
    @@ -15,12 +15,9 @@ NeedHelpCenter=Need help or support?
     Efficiency=Hiệu quả
     TypeHelpOnly=Chỉ giúp
     TypeHelpDev=Trợ giúp + Phát triển
    -TypeHelpDevForm=Trợ giúp phát triển + + hình thành
    -ToGetHelpGoOnSparkAngels1=Một số công ty có thể cung cấp một hỗ trợ trực tuyến nhanh chóng (đôi khi ngay lập tức) và hiệu quả hơn bằng cách kiểm soát máy tính của bạn. Giúp đỡ này có thể được tìm thấy trên trang <b>web% s:</b>
    -ToGetHelpGoOnSparkAngels3=Bạn cũng có thể vào danh sách của tất cả các huấn luyện viên cho Dolibarr, cho điều này bấm vào nút
    -ToGetHelpGoOnSparkAngels2=Đôi khi, không có công ty có sẵn tại thời điểm bạn thực hiện tìm kiếm của bạn, vì vậy suy nghĩ để thay đổi bộ lọc để tìm kiếm "tất cả sẵn sàng". Bạn sẽ có thể gửi nhiều yêu cầu.
    -BackToHelpCenter=Nếu không, bấm vào đây để đi <a href="%s">lại để giúp trang chủ trung tâm</a> .
    -LinkToGoldMember=Bạn có thể gọi một trong những huấn luyện viên chọn trước bởi Dolibarr cho ngôn ngữ (% s) bằng cách nhấp vào Widget của mình (tình trạng và giá tối đa sẽ được tự động cập nhật):
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=Ngôn ngữ được hỗ trợ
    -SubscribeToFoundation=Giúp dự án Dolibarr, đăng ký với cơ sở
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=Để được hỗ trợ Dolibarr chính thức ngôn ngữ của bạn: <br> <a href="%s" target="_blank"><b>% S</b></a>
    diff --git a/htdocs/langs/vi_VN/holiday.lang b/htdocs/langs/vi_VN/holiday.lang
    index 42239163d7b..62016f65eb3 100644
    --- a/htdocs/langs/vi_VN/holiday.lang
    +++ b/htdocs/langs/vi_VN/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=HRM
    -Holidays=Nghỉ phép
    -CPTitreMenu=Nghỉ phép
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Báo cáo hàng tháng
     MenuAddCP=Xin nghỉ phép
    -NotActiveModCP=Bạn phải kích hoạt mô đun nghỉ phép để xem trang này.
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=Tạo một yêu cầu nghỉ phép
     DateDebCP=Ngày bắt đầu
     DateFinCP=Ngày kết thúc
    @@ -15,13 +15,18 @@ ApprovedCP=Đã phê duyệt
     CancelCP=Đã hủy
     RefuseCP=Bị từ chối
     ValidatorCP=Người duyệt
    -ListeCP=Danh sách nghỉ phép
    +ListeCP=List of leave
    +LeaveId=Leave ID
     ReviewedByCP=Will be approved by
    +UserForApprovalID=User for approval ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=Login of approval user
     DescCP=Mô tả
     SendRequestCP=Tạo yêu cầu nghỉ phép
     DelayToRequestCP=Để lại yêu cầu phải được thực hiện vào <b>ngày</b> thứ nhất <b>là% s (s)</b> trước họ.
    -MenuConfCP=Số ngày nghỉ còn lại
    -SoldeCPUser=Nghỉ phép số dư <b>là% s</b> ngày.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=Bạn phải chọn ngày kết thúc lớn hơn ngày bắt đầu.
     ErrorSQLCreateCP=Đã xảy ra lỗi SQL trong quá trình tạo:
     ErrorIDFicheCP=Một lỗi đã xảy ra, yêu cầu nghỉ phép không tồn tại.
    @@ -30,7 +35,14 @@ ErrorUserViewCP=Bạn không được cấp phép để xem yêu cầu nghỉ ph
     InfosWorkflowCP=Thông tin Quy trình làm việc
     RequestByCP=Theo yêu cầu của
     TitreRequestCP=Yêu cầu rời
    +TypeOfLeaveId=Type of leave ID
    +TypeOfLeaveCode=Type of leave code
    +TypeOfLeaveLabel=Type of leave label
     NbUseDaysCP=Số ngày nghỉ tiêu thụ
    +NbUseDaysCPShort=Days consumed
    +NbUseDaysCPShortInMonth=Days consumed in month
    +DateStartInMonth=Start date in month
    +DateEndInMonth=End date in month
     EditCP=Chỉnh sửa
     DeleteCP=Xóa
     ActionRefuseCP=Từ chối
    @@ -59,6 +71,7 @@ DateRefusCP=Ngày từ chối
     DateCancelCP=Ngày hủy
     DefineEventUserCP=Chỉ định một nghỉ phép đặc biệt cho người sử dụng
     addEventToUserCP=Chỉ định nghỉ
    +NotTheAssignedApprover=You are not the assigned approver
     MotifCP=Lý do
     UserCP=Người dùng
     ErrorAddEventToUserCP=Đã xảy ra lỗi khi thêm ngày nghỉ đặc biệt.
    @@ -81,10 +94,15 @@ EmployeeFirstname=Employee first name
     TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
     LastHolidays=Latest %s leave requests
     AllHolidays=All leave requests
    -
    +HalfDay=Half day
    +NotTheAssignedApprover=You are not the assigned approver
    +LEAVE_PAID=Paid vacation
    +LEAVE_SICK=Sick leave
    +LEAVE_OTHER=Other leave
    +LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Cập nhật thành công.
     Module27130Name= Quản lý các yêu cầu nghỉ
     Module27130Desc= Quản lý các yêu cầu nghỉ phép
    @@ -94,7 +112,7 @@ NoticePeriod=Kỳ thông báo
     HolidaysToValidate=Xác nhận yêu cầu nghỉ phép
     HolidaysToValidateBody=Dưới đây là một yêu cầu nghỉ việc để xác nhận
     HolidaysToValidateDelay=Yêu cầu nghỉ phép này sẽ diễn ra trong một thời gian ít hơn% s ngày.
    -HolidaysToValidateAlertSolde=Người dùng đã thực hiện điều này để lại reques không có đủ ngày có sẵn.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Yêu cầu xác nhận nghỉ
     HolidaysValidatedBody=Yêu cầu nghỉ phép của bạn cho% s đến% s đã được xác nhận.
     HolidaysRefused=Yêu cầu bị từ chối
    @@ -103,4 +121,9 @@ HolidaysCanceled=Yêu cầu hủy bỏ nghỉ phép
     HolidaysCanceledBody=Yêu cầu nghỉ phép của bạn cho% s đến% s đã được hủy bỏ.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=Chưa địn nghĩa hình thức nghỉ phép để có thể theo dõi số lượng ngày nghỉ
    -GoIntoDictionaryHolidayTypes=Vào <strong>Trang chủ - Thiết lập - Từ điển - Hình thức nghỉ phép</strong> để thiết lập các hình thức nghỉ phép khác nhau.
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/vi_VN/install.lang b/htdocs/langs/vi_VN/install.lang
    index 6da0d52f3a7..a7108cf8f27 100644
    --- a/htdocs/langs/vi_VN/install.lang
    +++ b/htdocs/langs/vi_VN/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=Chỉ cần làm theo các hướng dẫn từng bước.
     MiscellaneousChecks=Điều kiện tiên quyết kiểm tra
     ConfFileExists=Cấu hình tập tin <b>%s</b> tồn tại.
    -ConfFileDoesNotExistsAndCouldNotBeCreated=Cấu hình tập tin <b>%s</b> không tồn tại và không thể được tạo ra!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=Cấu hình tập tin <b>%s</b> có thể được tạo ra.
    -ConfFileIsNotWritable=Tập tin cấu hình <b>%s</b> là không thể ghi. Kiểm tra quyền truy cập. Đối với lần đầu tiên cài đặt, máy chủ web của bạn phải được cấp để có thể viết vào tập tin này trong quá trình cấu hình ("chmod 666" ví dụ trên Unix như hệ điều hành).
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=Tập tin cấu hình <b>%s</b> có thể ghi.
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=Cập nhật lại thông tin từ tập tin cấu hình.
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=PHP này hỗ trợ phiên.
     PHPSupportPOSTGETOk=PHP này hỗ trợ các biến POST và GET.
    -PHPSupportPOSTGETKo=Có thể thiết lập PHP của bạn không hỗ trợ các biến POST và / hoặc GET. Kiểm tra <b>variables_order</b> tham số của bạn trong php.ini.
    -PHPSupportGD=Điều này hỗ trợ PHP GD chức năng đồ họa.
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=PHP hỗ trợ chức năng này UTF8.
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=PHP bộ nhớ phiên tối đa của bạn được thiết lập <b>%s</b>. Điều này là đủ.
    -PHPMemoryTooLow=PHP bộ nhớ phiên tối đa của bạn được thiết lập <b>%s</b> byte. Điều này cần được quá thấp. Thay đổi <b>php.ini</b> của bạn để thiết lập thông số <b>memory_limit</b> ít nhất <b>%s</b> byte.
    -Recheck=Nhấn vào đây để kiểm tra significative hơn
    -ErrorPHPDoesNotSupportSessions=Cài đặt PHP của bạn không hỗ trợ phiên. Tính năng này là cần thiết để làm cho Dolibarr làm việc. Kiểm tra thiết lập PHP của bạn.
    -ErrorPHPDoesNotSupportGD=Cài đặt PHP của bạn không hỗ trợ chức năng đồ họa GD. Không có đồ thị sẽ có sẵn.
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=Cài đặt PHP của bạn không hỗ trợ chức năng UTF8. Dolibarr không thể làm việc một cách chính xác. Giải quyết này trước khi cài đặt Dolibarr.
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=Thư mục %s không tồn tại.
    -ErrorGoBackAndCorrectParameters=Tới lạc hậu và chính xác các thông số sai.
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=Bạn có thể gõ một giá trị sai cho tham số '%s'.
     ErrorFailedToCreateDatabase=Không thể tạo cơ sở dữ liệu '%s'.
     ErrorFailedToConnectToDatabase=Không thể kết nối với cơ sở dữ liệu '%s'.
     ErrorDatabaseVersionTooLow=Phiên bản cơ sở dữ liệu (%s) quá già. Phiên bản %s hoặc cao hơn là cần thiết.
     ErrorPHPVersionTooLow=PHP phiên bản quá cũ. Phiên bản %s là bắt buộc.
    -ErrorConnectedButDatabaseNotFound=Kết nối với máy chủ thành công nhưng không tìm thấy cơ sở dữ liệu '%s'.
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=Cơ sở dữ liệu '%s' đã tồn tại.
    -IfDatabaseNotExistsGoBackAndUncheckCreate=Nếu cơ sở dữ liệu không tồn tại, quay trở lại và kiểm tra tùy chọn "Tạo cơ sở dữ liệu".
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=Nếu cơ sở dữ liệu đã tồn tại, quay trở lại và bỏ chọn "Tạo cơ sở dữ liệu" tùy chọn.
    -WarningBrowserTooOld=Quá phiên bản cũ của trình duyệt. Nâng cấp trình duyệt của bạn đến một phiên bản mới của trình duyệt Firefox, Chrome hay Opera là rất recommanded.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=Phiên bản PHP
     License=Sử dụng giấy phép
     ConfigurationFile=Tập tin cấu hình
    @@ -45,22 +45,23 @@ DolibarrDatabase=Cơ sở dữ liệu Dolibarr
     DatabaseType=Loại cơ sở dữ liệu
     DriverType=Loại điều khiển
     Server=Máy chủ
    -ServerAddressDescription=Tên tài khoản hoặc địa chỉ ip cho máy chủ cơ sở dữ liệu, thường là 'localhost' khi máy chủ cơ sở dữ liệu được lưu trữ trên cùng một máy chủ hơn so với máy chủ web
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=Cổng máy chủ cơ sở dữ liệu. Giữ sản phẩm nào nếu chưa biết.
     DatabaseServer=Máy chủ cơ sở dữ liệu
     DatabaseName=Tên cơ sở dữ liệu
    -DatabasePrefix=Bảng cơ sở dữ liệu tiền tố
    -AdminLogin=Đăng nhập cho chủ sở hữu cơ sở dữ liệu Dolibarr.
    -PasswordAgain=Nhập lại mật khẩu một lần thứ hai
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=Mật khẩu cho chủ sở hữu cơ sở dữ liệu Dolibarr.
     CreateDatabase=Tạo cơ sở dữ liệu
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=Máy chủ cơ sở dữ liệu - truy cập superuser
    -CheckToCreateDatabase=Kiểm tra hộp nếu cơ sở dữ liệu không tồn tại và phải được tạo ra. <br> Trong trường hợp này, bạn phải điền tên đăng nhập / mật khẩu cho tài khoản superuser ở dưới cùng của trang này.
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=Đăng nhập của người dùng được phép để tạo ra cơ sở dữ liệu mới hoặc người dùng mới, bắt buộc nếu cơ sở dữ liệu của bạn hoặc chủ sở hữu của nó không đã tồn tại.
    -KeepEmptyIfNoPassword=Để trống nếu người dùng không có mật khẩu (tránh điều này)
    -SaveConfigurationFile=Lưu giá trị
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=Kết nối máy chủ
     DatabaseCreation=Tạo ra cơ sở dữ liệu
     CreateDatabaseObjects=Cơ sở dữ liệu đối tượng sáng tạo
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=Tạo các phím nước ngoài và các chỉ số cho
     OtherKeysCreation=Phím và chỉ số nước ngoài tạo
     FunctionsCreation=Chức năng sáng tạo
     AdminAccountCreation=Tạo đăng nhập quản trị
    -PleaseTypePassword=Xin vui lòng nhập một mật khẩu, mật khẩu rỗng không được phép!
    -PleaseTypeALogin=Xin vui lòng nhập một tên đăng nhập!
    -PasswordsMismatch=Có khác nhau mật khẩu, hãy thử lại!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=Kết thúc cài đặt
     SystemIsInstalled=Cài đặt này hoàn tất.
     SystemIsUpgraded=Dolibarr đã được nâng cấp thành công.
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=Bạn cần phải cấu hình cho phù hợp với nh
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=Tới Dolibarr
     GoToSetupArea=Tới Dolibarr (setup)
    -MigrationNotFinished=Phiên bản cơ sở dữ liệu của bạn không phải là hoàn toàn cập nhật, vì vậy bạn sẽ phải chạy quá trình nâng cấp một lần nữa.
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=Tới nâng cấp trang lại
     WithNoSlashAtTheEnd=Nếu không có các dấu gạch chéo "/" ở cuối
    -DirectoryRecommendation=Nó được recommanded sử dụng một thư mục bên ngoài thư mục của bạn của trang web của bạn.
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=Đã tồn tại
     DolibarrAdminLogin=Dolibarr quản trị đăng nhập
    -AdminLoginAlreadyExists=Dolibarr tài khoản quản trị '<b>%s</b>' đã tồn tại. Quay trở lại, nếu bạn muốn tạo một số khác.
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=Cảnh báo, vì lý do bảo mật, một khi cài đặt hoặc nâng cấp hoàn thành, để tránh sử dụng các công cụ cài đặt một lần nữa, bạn nên thêm một tập tin gọi là <b>install.lock</b> vào thư mục tài liệu Dolibarr, để tránh việc sử dụng độc hại của nó.
    -FunctionNotAvailableInThisPHP=Không có sẵn trên PHP này
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=Chọn kịch bản di cư
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=Xử lý kịch bản
     ChooseYourSetupMode=Chọn chế độ cài đặt của bạn và bấm vào nút "Bắt đầu" ...
     FreshInstall=Cài đặt mới
    -FreshInstallDesc=Sử dụng chế độ này nếu điều này là cài đặt đầu tiên của bạn. Nếu không, chế độ này có thể sửa chữa cài đặt trước đó không đầy đủ, nhưng nếu bạn muốn nâng cấp phiên bản của bạn, chọn "Nâng cấp" chế độ.
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=Nâng cấp
     UpgradeDesc=Sử dụng chế độ này nếu bạn đã thay thế các tập tin Dolibarr cũ với các tập tin từ một phiên bản mới hơn. Điều này sẽ nâng cấp cơ sở dữ liệu và dữ liệu của bạn.
     Start=Bắt đầu
     InstallNotAllowed=Thiết lập không cho phép quyền <b>conf.php</b>
     YouMustCreateWithPermission=Bạn phải tạo tập tin% s và cho phép ghi vào nó cho máy chủ web trong quá trình cài đặt.
    -CorrectProblemAndReloadPage=Hãy khắc phục vấn đề và bấm F5 để tải lại trang.
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=Đã di cư
     DatabaseVersion=Phiên bản cơ sở dữ liệu
     ServerVersion=Phiên bản máy chủ cơ sở dữ liệu
     YouMustCreateItAndAllowServerToWrite=Bạn phải tạo thư mục này và cho phép các máy chủ web để viết vào đó.
     DBSortingCollation=Nhân vật thứ tự sắp xếp
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=Bạn hỏi để tạo ra cơ sở dữ liệu <b>%s</b>, nhưng cho điều này, Dolibarr cần kết nối với máy chủ <b>%s</b> với quyền super user <b>%s</b>.
    -YouAskLoginCreationSoDolibarrNeedToConnect=Bạn hỏi để tạo ra cơ sở dữ liệu đăng nhập <b>%s</b>,</b> nhưng cho điều này, Dolibarr cần kết nối với máy chủ <b>%s</b> với quyền super user <b>%s</b>.
    -BecauseConnectionFailedParametersMayBeWrong=Khi kết nối thành công, máy chủ hoặc người sử dụng siêu thông số phải là sai.
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=Trẻ em mồ côi thanh toán được phát hiện bằng phương pháp% s
     RemoveItManuallyAndPressF5ToContinue=Loại bỏ nó bằng tay và bấm F5 để tiếp tục.
     FieldRenamed=Dòng đổi tên
    -IfLoginDoesNotExistsCheckCreateUser=Nếu đăng nhập không tồn tại được nêu ra, bạn phải kiểm tra tùy chọn "Tạo người dùng"
    -ErrorConnection=Server "<b>%s</b>" tên cơ sở dữ liệu "<b>%s</b>" đăng nhập "<b>%s</b>" hoặc mật khẩu cơ sở dữ liệu có thể sai hoặc phiên bản client PHP có thể là quá cũ so với phiên bản cơ sở dữ liệu.
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=Đề nghị lựa chọn để cài đặt phiên bản <b>%s</b> từ phiên bản hiện tại của bạn <b>%s</b>
     InstallChoiceSuggested=<b>Cài đặt lựa chọn được đề xuất bởi trình cài đặt.</b>
    -MigrateIsDoneStepByStep=Phiên bản mục tiêu (%s) có một khoảng cách của một số phiên bản, vì vậy cài đặt chương trình sẽ trở lại với đề nghị di chuyển tiếp theo lần này sẽ được hoàn thành.
    -CheckThatDatabasenameIsCorrect=Kiểm tra xem tên "<b>%s</b>" cơ sở dữ liệu là chính xác.
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=Nếu tên này là chính xác và cơ sở dữ liệu chưa tồn tại, bạn phải kiểm tra tùy chọn "Tạo cơ sở dữ liệu".
     OpenBaseDir=PHP openbasedir tham số
    -YouAskToCreateDatabaseSoRootRequired=Bạn đã chọn hộp "Tạo cơ sở dữ liệu". Đối với điều này, bạn cần cung cấp tên đăng nhập / mật khẩu của siêu người dùng (dưới cùng của mẫu).
    -YouAskToCreateDatabaseUserSoRootRequired=Bạn đã chọn hộp "Tạo chủ sở hữu cơ sở dữ liệu". Đối với điều này, bạn cần cung cấp tên đăng nhập / mật khẩu của siêu người dùng (dưới cùng của mẫu).
    -NextStepMightLastALongTime=Bước hiện tại có thể kéo dài vài phút. Hãy đợi cho đến khi màn hình tiếp theo được thể hiện hoàn toàn trước khi tiếp tục.
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=Di chuyển vận chuyển cho các đơn đặt hàng của khách hàng lưu trữ
     MigrationShippingDelivery=Nâng cấp lưu trữ vận chuyển
     MigrationShippingDelivery2=Nâng cấp lưu trữ vận chuyển 2
     MigrationFinished=Di cư đã hoàn thành
    -LastStepDesc=<strong>Bước cuối cùng:</strong> Xác định đây đăng nhập và mật khẩu bạn có kế hoạch sử dụng để kết nối với phần mềm. Đừng mất này vì nó là tài khoản để quản lý tất cả những người khác.
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=Kích hoạt module %s
     ShowEditTechnicalParameters=Click vào đây để hiển thị các thông số tiên tiến / chỉnh sửa (chế độ chuyên môn)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s)
    -KeepDefaultValuesWamp=Bạn sử dụng các hướng dẫn cài đặt Dolibarr từ DoliWamp, vì vậy giá trị đề xuất ở đây đã được tối ưu hóa. Thay đổi chúng chỉ khi bạn biết những gì bạn làm.
    -KeepDefaultValuesDeb=Bạn sử dụng các hướng dẫn cài đặt Dolibarr từ một gói phần mềm Linux (Ubuntu, Debian, Fedora ...), do đó giá trị đề xuất ở đây đã được tối ưu hóa. Chỉ có mật khẩu của chủ sở hữu cơ sở dữ liệu để tạo ra phải được hoàn tất. Thay đổi các thông số khác chỉ khi bạn biết những gì bạn làm.
    -KeepDefaultValuesMamp=Bạn sử dụng các hướng dẫn cài đặt Dolibarr từ DoliMamp, vì vậy giá trị đề xuất ở đây đã được tối ưu hóa. Thay đổi chúng chỉ khi bạn biết những gì bạn làm.
    -KeepDefaultValuesProxmox=Bạn sử dụng các hướng dẫn cài đặt Dolibarr từ một thiết bị ảo Proxmox, vì vậy giá trị đề xuất ở đây đã được tối ưu hóa. Thay đổi chúng chỉ khi bạn biết những gì bạn làm.
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=Di chuyển dữ liệu cho đề xuất thương mại
     MigrationInvoice=Di chuyển dữ liệu cho hóa đơn của khách hàng
     MigrationContract=Di chuyển dữ liệu cho các hợp đồng
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=Nâng cấp thành công
     MigrationUpdateFailed=Quá trình nâng cấp thất bại
     MigrationRelationshipTables=Di chuyển dữ liệu cho các bảng mối quan hệ (%s)
     MigrationPaymentsUpdate=Chỉnh sửa dữ liệu thanh toán
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=Hợp đồng sửa chữa dữ liệu
     MigrationContractsNumberToUpdate=Hợp đồng %s (các) để cập nhật
     MigrationContractsLineCreation=Tạo dòng hợp đồng cho hợp đồng ref %s
     MigrationContractsNothingToUpdate=Không có những thứ nhiều hơn để làm
    -MigrationContractsFieldDontExist=Dòng fk_facture không tồn tại nữa. Không có gì để làm.
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=Hợp đồng sửa chữa ngày rỗng
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=Không có hợp đồng ngày trống để sửa chữa
     MigrationContractsEmptyCreationDatesNothingToUpdate=Không có ngày tạo lập hợp đồng để sửa chữa
     MigrationContractsInvalidDatesUpdate=Điều chỉnh hợp đồng ngày giá trị xấu
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=Cập nhật Giao hàng tận nơi
     MigrationStockDetail=Cập nhật giá trị cổ phiếu của sản phẩm
     MigrationMenusDetail=Cập nhật bảng menu động
     MigrationDeliveryAddress=Cập nhật địa chỉ giao hàng trong lô hàng
    -MigrationProjectTaskActors=Di chuyển dữ liệu cho bảng llx_projet_task_actors
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=Di chuyển dữ liệu lĩnh vực fk_user_resp của llx_projet để llx_element_contact
     MigrationProjectTaskTime=Cập nhật dành thời gian trong vài giây
     MigrationActioncommElement=Cập nhật dữ liệu về các hoạt động
     MigrationPaymentMode=Di chuyển dữ liệu cho phương thức thanh toán
     MigrationCategorieAssociation=Di chuyển các loại
    -MigrationEvents=Migration of events to add event owner into assignement table
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=Hiển thị tùy chọn không có sẵn
    -HideNotAvailableOptions=Ẩn các tùy chọn không có sẵn
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/vi_VN/interventions.lang b/htdocs/langs/vi_VN/interventions.lang
    index fc59f21f80e..a0134fb6939 100644
    --- a/htdocs/langs/vi_VN/interventions.lang
    +++ b/htdocs/langs/vi_VN/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=Các can thiệp
     InterventionCard=Thẻ can thiệp
     NewIntervention=Can thiệp mới
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=Danh sách can thiệp
     ActionsOnFicheInter=Hành động can thiệp vào
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/vi_VN/main.lang b/htdocs/langs/vi_VN/main.lang
    index 8fd88af55d9..b3a80cd0cae 100644
    --- a/htdocs/langs/vi_VN/main.lang
    +++ b/htdocs/langs/vi_VN/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=Lỗi gửi mail (người gửi=%s, người nhận=%s)
     ErrorFileNotUploaded=Tập tin không được tải lên. Kiểm tra kích thước không vượt quá tối đa cho phép, không gian miễn phí có sẵn trên đĩa và không có một tập tin đã có cùng tên trong thư mục này.
     ErrorInternalErrorDetected=Lỗi được phát hiện
     ErrorWrongHostParameter=Tham số máy chủ sai
    -ErrorYourCountryIsNotDefined=Quốc gia của bạn không được xác định. Đi đến Trang chủ-Thiết lập-Chỉnh sửa và đăng lại mẫu.
    -ErrorRecordIsUsedByChild=Không thể xóa bản ghi này. Bản ghi này được sử dụng bởi ít nhất một bản ghi con.
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=Giá trị sai
     ErrorWrongValueForParameterX=Giá trị sai cho tham số %s
     ErrorNoRequestInError=Không yêu cầu do lỗi
    -ErrorServiceUnavailableTryLater=Dịch vụ không sẵn sàng cho thời điểm này. Hãy thử lại sau.
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
     ErrorDuplicateField=Trùng giá trị trong trường duy nhất
    -ErrorSomeErrorWereFoundRollbackIsDone=Một vài lỗi đã được tìm thấy. Chúng tôi đã thay đổi trở lại
    -ErrorConfigParameterNotDefined=Thông số <b>%s</b> không được định nghĩa bên trong tập tin cấu hình Dolibarr <b>conf.php</b>.
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
     ErrorCantLoadUserFromDolibarrDatabase=Không tìm thấy người dùng <b>%s</b> trong cơ sở dữ liệu Dolibarr.
     ErrorNoVATRateDefinedForSellerCountry=Lỗi, không xác định tỉ lệ VAT cho quốc gia '%s'.
     ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'.
     ErrorFailedToSaveFile=Lỗi, lưu tập tin thất bại
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
     NotAuthorized=You are not authorized to do that.
     SetDate=Thiết lập ngày
     SelectDate=Chọn một ngày
    @@ -78,10 +78,10 @@ FileRenamed=The file was successfully renamed
     FileGenerated=The file was successfully generated
     FileSaved=The file was successfully saved
     FileUploaded=Các tập tin được tải lên thành công
    -FileTransferComplete=File(s) was uploaded successfully
    +FileTransferComplete=File(s) uploaded successfully
     FilesDeleted=File(s) successfully deleted
     FileWasNotUploaded=Một tập tin được chọn để đính kèm nhưng vẫn chưa được tải lên. Bấm vào nút "Đính kèm tập tin" cho việc này.
    -NbOfEntries=Nb of entries
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=Read online help (Internet access needed)
     GoToHelpPage=Đọc giúp đỡ
     RecordSaved=Bản ghi đã lưu
    @@ -94,7 +94,7 @@ Undefined=Không xác định
     PasswordForgotten=Password forgotten?
     NoAccount=No account?
     SeeAbove=Xem ở trên
    -HomeArea=Khu vực nhà
    +HomeArea=Nhà
     LastConnexion=Latest connection
     PreviousConnexion=Kết nối trước
     PreviousValue=Previous value
    @@ -142,6 +142,7 @@ Closed=Đã đóng
     Closed2=Đã đóng
     NotClosed=Not closed
     Enabled=Đã bật
    +Enable=Kích hoạt
     Deprecated=Đã bác bỏ
     Disable=Tắt
     Disabled=Đã tắt
    @@ -153,7 +154,7 @@ Update=Cập nhật
     Close=Đóng
     CloseBox=Remove widget from your dashboard
     Confirm=Xác nhận
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=Xóa
     Remove=Gỡ bỏ
     Resiliate=Terminate
    @@ -327,7 +328,7 @@ Copy=Copy
     Paste=Dán
     Default=Mặc định
     DefaultValue=Giá trị mặc định
    -DefaultValues=Default values
    +DefaultValues=Default values/filters/sorting
     Price=Giá
     PriceCurrency=Price (currency)
     UnitPrice=Đơn giá
    @@ -347,7 +348,7 @@ AmountTTCShort=Số tiền (gồm thuế)
     AmountHT=Số tiền (chưa thuế)
     AmountTTC=Số tiền (gồm thuế)
     AmountVAT=Số tiền thuế
    -MulticurrencyAlreadyPaid=Already payed, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
     MulticurrencyRemainderToPay=Remain to pay, original currency
     MulticurrencyPaymentAmount=Payment amount, original currency
     MulticurrencyAmountHT=Amount (net of tax), original currency
    @@ -428,7 +429,7 @@ ActionNotApplicable=Không áp dụng
     ActionRunningNotStarted=Để bắt đầu
     ActionRunningShort=In progress
     ActionDoneShort=Đã hoàn tất
    -ActionUncomplete=Không hoàn tất
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=Latest %s linked events
     CompanyFoundation=Company/Organization
     Accountant=Accountant
    @@ -436,6 +437,7 @@ ContactsForCompany=Liên lạc cho bên thứ ba này
     ContactsAddressesForCompany=Liên lạc/địa chỉ cho bên thứ ba này
     AddressesForCompany=Địa chỉ cho bên thứ ba này
     ActionsOnCompany=Sự kiện về bên thứ ba này
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=Sự kiện về thành viên này
     ActionsOnProduct=Events about this product
     NActionsLate=%s cuối
    @@ -453,8 +455,8 @@ Generate=Xuất ra
     Duration=Thời hạn
     TotalDuration=Tổng thời hạn
     Summary=Tóm tắt
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
     NoOpenedElementToProcess=No opened element to process
     Available=Sẵn có
     NotYetAvailable=Chưa có
    @@ -468,7 +470,7 @@ and=và
     or=hoặc
     Other=Khác
     Others=Khác
    -OtherInformations=Thông tin khác
    +OtherInformations=Other information
     Quantity=Số lượng
     Qty=Số lượng
     ChangedBy=Thay đổi bằng
    @@ -506,7 +508,7 @@ None=Không
     NoneF=Không
     NoneOrSeveral=None or several
     Late=Trễ
    -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
     NoItemLate=No late item
     Photo=Hình ảnh
     Photos=Hình ảnh
    @@ -530,18 +532,6 @@ September=Tháng Chín
     October=Tháng Mười
     November=Tháng mười một
     December=Tháng Mười Hai
    -JanuaryMin=Tháng Một
    -FebruaryMin=Tháng Hai
    -MarchMin=Tháng Ba
    -AprilMin=Tháng Tư
    -MayMin=Tháng Năm
    -JuneMin=Tháng Sáu
    -JulyMin=Tháng Bảy
    -AugustMin=Tháng Tám
    -SeptemberMin=Tháng Chín
    -OctoberMin=Tháng Mười
    -NovemberMin=Tháng mười một
    -DecemberMin=Tháng Mười Hai
     Month01=Tháng Một
     Month02=Tháng Hai
     Month03=Tháng Ba
    @@ -646,6 +636,8 @@ SendMail=Gửi email
     EMail=E-mail
     NoEMail=Không có email
     Email=Email
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=No mobile phone
     Owner=Chủ sở hữu
     FollowingConstantsWillBeSubstituted=Các hằng số sau đây sẽ được thay thế bằng giá trị tương ứng.
    @@ -677,7 +669,7 @@ NeverReceived=Chưa từng nhận
     Canceled=Đã hủy
     YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
     YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=Màu
     Documents=Tập tin liên kết
     Documents2=Chứng từ
    @@ -716,15 +708,15 @@ Merge=Merge
     DocumentModelStandardPDF=Standard PDF template
     PrintContentArea=Hiển thị trang in khu vực nội dung chính
     MenuManager=Menu quản lý
    -WarningYouAreInMaintenanceMode=Cảnh báo, bạn đang trong chế độ bảo trì, vì vậy chỉ có đăng nhập <b>%s</b> là được phép sử dụng ứng dụng tại thời điểm này.
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=Lỗi hệ thống
     CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
     CreditCard=Thẻ tín dụng
     ValidatePayment=Xác nhận thanh toán
     CreditOrDebitCard=Credit or debit card
     FieldsWithAreMandatory=Các trường với <b>%s</b> là bắt buộc
    -FieldsWithIsForPublic=Các trường với <b>%s</b> được hiển thị trên danh sách công khai của các thành viên. Nếu bạn không muốn điều này, đánh dấu vào hộp "công khai".
    -AccordingToGeoIPDatabase=(according to GeoIP convertion)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=Dòng
     NotSupported=Không được hỗ trợ
     RequiredField=Dòng bắt buộc
    @@ -732,6 +724,8 @@ Result=Kết quả
     ToTest=Kiểm tra
     ValidateBefore=Thẻ phải được xác nhận trước khi sử dụng tính năng này
     Visibility=Hiển thị
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=Cá nhân
     Hidden=Đã ẩn
     Resources=Tài nguyên
    @@ -750,6 +744,7 @@ LinkTo=Link to
     LinkToProposal=Link to proposal
     LinkToOrder=Liên kết để đặt hàng
     LinkToInvoice=Link to invoice
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=Link to supplier order
     LinkToSupplierProposal=Link to supplier proposal
     LinkToSupplierInvoice=Link to supplier invoice
    @@ -758,6 +753,7 @@ LinkToIntervention=Link to intervention
     CreateDraft=Tạo dự thảo
     SetToDraft=Trở về dự thảo
     ClickToEdit=Nhấn vào để sửa
    +ClickToRefresh=Click to refresh
     EditWithEditor=Edit with CKEditor
     EditWithTextEditor=Edit with Text editor
     EditHTMLSource=Edit HTML Source
    @@ -772,14 +768,14 @@ ByDay=Theo ngày
     BySalesRepresentative=Theo Đại diện bán hàng
     LinkedToSpecificUsers=Đã liên kết với một số liên lạc người dùng cụ thể
     NoResults=Không có kết quả
    -AdminTools=Admin tools
    +AdminTools=Admin Tools
     SystemTools=Công cụ hệ thống
     ModulesSystemTools=Module công cụ
     Test=Kiểm tra
     Element=Yếu tố
     NoPhotoYet=Chưa có ảnh chưa
     Dashboard=Dashboard
    -MyDashboard=My dashboard
    +MyDashboard=My Dashboard
     Deductible=Giảm trừ doanh thu
     from=từ
     toward=hướng
    @@ -802,7 +798,7 @@ PrintFile=In tập tin %s
     ShowTransaction=Show entry on bank account
     ShowIntervention=Hiện can thiệp
     ShowContract=Hiện hợp đồng
    -GoIntoSetupToChangeLogo=Vào Nhà-Thiết lập-Công ty để đổi logo hoặc vào Nhà-Thiết lập-Hiển thị để ẩn.
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=Deny
     Denied=Denied
     ListOf=List of %s
    @@ -818,12 +814,12 @@ Sincerely=Sincerely
     DeleteLine=Xóa dòng
     ConfirmDeleteLine=Are you sure you want to delete this line?
     NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=No record selected
     MassFilesArea=Area for files built by mass actions
     ShowTempMassFilesArea=Show area of files built by mass actions
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=Related Objects
     ClassifyBilled=Xác định đã ra hóa đơn
     ClassifyUnbilled=Classify unbilled
    @@ -841,7 +837,7 @@ Calendar=Lịch
     GroupBy=Group by...
     ViewFlatList=View flat list
     RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=Direct download link (public/external)
     DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
     Download=Download
    @@ -852,25 +848,34 @@ ModuleBuilder=Module Builder
     SetMultiCurrencyCode=Set currency
     BulkActions=Bulk actions
     ClickToShowHelp=Click to show tooltip help
    -WebSite=Web site
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +WebSite=Website
    +WebSites=Websites
    +WebSiteAccounts=Website accounts
     ExpenseReport=Expense report
     ExpenseReports=Báo cáo chi tiêu
     HR=HR
     HRAndBank=HR and Bank
     AutomaticallyCalculated=Automatically calculated
     TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=Import id
     Events=Sự kiện
    -EMailTemplates=Mẫu email
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=Dự án
     Projects=Các dự án
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=Phân quyền
     LineNb=Line no.
     IncotermLabel=Incoterms
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=Thứ Hai
     Tuesday=Thứ Ba
    @@ -927,15 +932,15 @@ SearchIntoInterventions=Interventions
     SearchIntoContracts=Hợp đồng
     SearchIntoCustomerShipments=Customer shipments
     SearchIntoExpenseReports=Báo cáo chi tiêu
    -SearchIntoLeaves=Nghỉ phép
    +SearchIntoLeaves=Leave
     CommentLink=Chú thích
     NbComments=Number of comments
     CommentPage=Comments space
     CommentAdded=Comment added
     CommentDeleted=Comment deleted
     Everybody=Mọi người
    -PayedBy=Payed by
    -PayedTo=Payed to
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=Monthly
     Quarterly=Quarterly
     Annual=Annual
    @@ -945,6 +950,8 @@ LocalAndRemote=Local and Remote
     KeyboardShortcut=Keyboard shortcut
     AssignedTo=Giao cho
     Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=File shared via a link
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=Inventory
    diff --git a/htdocs/langs/vi_VN/other.lang b/htdocs/langs/vi_VN/other.lang
    index a6a8f19ccb2..aadf0444a54 100644
    --- a/htdocs/langs/vi_VN/other.lang
    +++ b/htdocs/langs/vi_VN/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=Mã bảo vệ
     NumberingShort=N°
     Tools=Công cụ
     TMenuTools=Công cụ
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=Sinh nhật
     BirthdayDate=Birthday date
     DateToBirth=Ngày tháng năm sinh
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=Message on validated payment return page
     MessageKO=Message on canceled payment return page
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=Can thiệp xác nhận
    -Notify_FICHINTER_SENTBYMAIL=Can thiệp gửi qua đường bưu điện
     Notify_ORDER_VALIDATE=Đơn đặt hàng được xác nhận
     Notify_ORDER_SENTBYMAIL=Đơn đặt hàng được gửi qua đường bưu điện
     Notify_ORDER_SUPPLIER_SENTBYMAIL=Để nhà cung cấp gửi qua đường bưu điện
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=Để nhà cung cấp đã được phê duyệt
     Notify_ORDER_SUPPLIER_REFUSE=Để nhà cung cấp từ chối
     Notify_PROPAL_VALIDATE=Đề nghị khách hàng xác nhận
    -Notify_PROPAL_CLOSE_SIGNED=Propal khách hàng đóng cửa ký
    -Notify_PROPAL_CLOSE_REFUSED=Propal khách hàng Mỹ đóng cửa từ chối
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=Đề nghị thương mại gửi qua đường bưu điện
     Notify_WITHDRAW_TRANSMIT=Rút truyền
     Notify_WITHDRAW_CREDIT=Rút tín dụng
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=Bên thứ ba tạo ra
     Notify_COMPANY_SENTBYMAIL=Mail được gửi từ thẻ của bên thứ ba
     Notify_BILL_VALIDATE=Hóa đơn khách hàng xác nhận
     Notify_BILL_UNVALIDATE=Hóa đơn của khách hàng unvalidated
    -Notify_BILL_PAYED=Hóa đơn của khách hàng payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=Hóa đơn của khách hàng bị hủy bỏ
     Notify_BILL_SENTBYMAIL=Hóa đơn của khách hàng gửi qua đường bưu điện
     Notify_BILL_SUPPLIER_VALIDATE=Nhà cung cấp hóa đơn xác nhận
    -Notify_BILL_SUPPLIER_PAYED=Nhà cung cấp hóa đơn payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=Nhà cung cấp hóa đơn gửi qua đường bưu điện
     Notify_BILL_SUPPLIER_CANCELED=Nhà cung cấp hóa đơn hủy bỏ
     Notify_CONTRACT_VALIDATE=Hợp đồng xác nhận
     Notify_FICHEINTER_VALIDATE=Can thiệp xác nhận
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Can thiệp gửi qua đường bưu điện
     Notify_SHIPPING_VALIDATE=Vận chuyển xác nhận
     Notify_SHIPPING_SENTBYMAIL=Vận Chuyển gửi qua đường bưu điện
     Notify_MEMBER_VALIDATE=Thành viên được xác nhận
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Dự án sáng tạo
     Notify_TASK_CREATE=Nhiệm vụ tạo
     Notify_TASK_MODIFY=Nhiệm vụ sửa đổi
     Notify_TASK_DELETE=Công tác xóa
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=Số đính kèm tập tin / tài liệu
     TotalSizeOfAttachedFiles=Tổng dung lượng của các file đính kèm / tài liệu
     MaxSize=Kích thước tối đa
     AttachANewFile=Đính kèm một tập tin mới / tài liệu
     LinkedObject=Đối tượng liên quan
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>Id Giáo sư% s</b> là một thông tin phụ thuộc vào quốc gia của bên thứ ba. <br> Ví dụ, đối với đất <b>nước% s,</b> đó là <b>mã% s.</b>
     DolibarrDemo=Giới thiệu Dolibarr ERP / CRM
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=Number of proposals
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=Number of units on supplier proposals
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=Sự can thiệp% s đã được xác nhận.
     EMailTextInvoiceValidated=Hóa đơn% s đã được xác nhận.
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=Đề nghị% s đã được xác nhận.
     EMailTextProposalClosedSigned=The proposal %s has been closed signed.
     EMailTextOrderValidated=Trình tự% s đã được xác nhận.
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=Trình tự% s đã được phê duyệt bởi% s.
     EMailTextOrderRefused=Trình tự% s đã bị từ chối.
     EMailTextOrderRefusedBy=Trình tự% s đã bị từ chối bởi% s.
     EMailTextExpeditionValidated=Vận chuyển% s đã được xác nhận.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=Thiết lập dữ liệu nhập khẩu
     DolibarrNotification=Tự động thông báo
     ResizeDesc=Nhập chiều rộng mới <b>hoặc</b> tầm cao mới. Tỷ lệ sẽ được giữ trong thời gian thay đổi kích thước ...
    @@ -204,7 +214,7 @@ NewLength=Chiều rộng mới
     NewHeight=Tầm cao mới
     NewSizeAfterCropping=Kích thước mới sau khi cắt xén
     DefineNewAreaToPick=Xác định khu vực mới vào hình để chọn (nhấp chuột vào hình ảnh bên trái sau đó kéo cho đến khi bạn đạt đến góc đối diện)
    -CurrentInformationOnImage=Công cụ này được thiết kế để giúp bạn thay đổi kích thước hoặc cắt hình ảnh. Đây là thông tin về hình ảnh thay đổi nội dung hiện tại
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=Biên tập hình ảnh
     YouReceiveMailBecauseOfNotification=Bạn nhận được thông báo này vì email của bạn đã được thêm vào danh sách các mục tiêu được thông báo về sự kiện đặc biệt vào phần mềm% s% s.
     YouReceiveMailBecauseOfNotification2=Sự kiện này là như sau:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=Khu vực xuất khẩu
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=Tiêu đề
     WEBSITE_DESCRIPTION=Mô tả
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/vi_VN/paybox.lang b/htdocs/langs/vi_VN/paybox.lang
    index 3f05b90e54e..2837a47f8b4 100644
    --- a/htdocs/langs/vi_VN/paybox.lang
    +++ b/htdocs/langs/vi_VN/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox module setup
     PayBoxDesc=This module offer pages to allow payment on <a href="http://www.paybox.com" target="_blank">Paybox</a> by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...)
     FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects
     PaymentForm=Payment form
    -WelcomeOnPaymentPage=Welcome on our online payment service
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s.
     ThisIsInformationOnPayment=This is information on payment to do
     ToComplete=To complete
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user inte
     ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line
     ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount
     ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url <b>%s</b> to have payment created automatically when validated by paybox.
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you.
    -YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you.
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=Account parameters
     UsageParameter=Usage parameters
     InformationToFindParameters=Help to find your %s account information
    diff --git a/htdocs/langs/vi_VN/projects.lang b/htdocs/langs/vi_VN/projects.lang
    index 4820ff1a573..79c801631b8 100644
    --- a/htdocs/langs/vi_VN/projects.lang
    +++ b/htdocs/langs/vi_VN/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=Are you sure you want to delete this project?
     ConfirmDeleteATask=Are you sure you want to delete this task?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=Hiển thị dự án
     ShowTask=Hiện tác vụ
     SetProject=Lập dự án
     NoProject=Không có dự án được xác định hoặc tự tạo
    -NbOfProjects=Nb của dự án
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=Thời gian đã qua
     TimeSpentByYou=Thời gian đã qua bởi bạn
     TimeSpentByUser=Thời gian đã qua bởi người dùng
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=Danh sách các đơn hàng đề xuất được gắn với dự án
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=Danh sách các hợp đồng được gắn với dự án
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=Danh sách các sự can thiệp được gắn với dự án
    -ListExpenseReportsAssociatedProject=Danh sách các báo cáo chi phí liên quan đến dự án
    -ListDonationsAssociatedProject=Danh sách hiến tặng liên quan đến dự án
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=Danh sách các hoạt động được gắn với dự án
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=Được liên kết đến các bên thứ ba
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=Thời gian đã qua đang trống
     ThisWillAlsoRemoveTasks=Thao tác này sẽ xóa toàn bộ các tác vụ của dự án (<b>%s</b> các tác vụ ở thời điểm hiện tại) và toàn bộ dữ liệu đã nhập vào trong suốt thời gian vừa qua.
    -IfNeedToUseOhterObjectKeepEmpty=Nếu một số đối tượng (hóa đơn, đơn hàng, ...), thuộc về một bên thứ ba khác, phải có liên kết đến dự án để tạo, giữ phần này trống để dự án có sự tham gia của nhiều bên thứ ba khác
    +IfNeedToUseOtherObjectKeepEmpty=Nếu một số đối tượng (hóa đơn, đơn hàng, ...), thuộc về một bên thứ ba khác, phải có liên kết đến dự án để tạo, giữ phần này trống để dự án có sự tham gia của nhiều bên thứ ba khác
     CloneProject=Nhân bản dự án
     CloneTasks=Nhân bản tác vụ
     CloneContacts=Nhân bản liên lạc
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=Project %s modified
     TaskCreatedInDolibarr=Tác vụ %s được tạo
     TaskModifiedInDolibarr=Tác vụ %s đã chỉnh sửa
     TaskDeletedInDolibarr=Tác vụ %s đã xóa
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Cộng sự
     SelectElement=Chọn yếu tố
     AddElement=Liên kết đến yếu tố
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Khối lượng công việc dự tính
     PlannedWorkloadShort=Khối lượng công việc
     ProjectReferers=Related items
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Giao việc cho tôi
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Phân công
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=Use projects to follow leads/opportinuties
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=Statistics on projects/leads
     TasksStatistics=Statistics on project/lead tasks
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=Đơn hàng đề xuất
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/vi_VN/propal.lang b/htdocs/langs/vi_VN/propal.lang
    index 02f23259285..8a55e33ed76 100644
    --- a/htdocs/langs/vi_VN/propal.lang
    +++ b/htdocs/langs/vi_VN/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=Đã ký (cần ra hóa đơn)
     PropalStatusNotSigned=Không ký (đã đóng)
     PropalStatusBilled=Đã ra hóa đơn
     PropalStatusDraftShort=Dự thảo
    -PropalStatusValidatedShort=Đã xác nhận
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=Đã đóng
     PropalStatusSignedShort=Đã ký
     PropalStatusNotSignedShort=Không ký
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Đơn hàng đề xuất %s không tìm thấy
     AddToDraftProposals=Thêm vào dự thảo đề xuất
     NoDraftProposals=Không có đề xuất dự thảo
     CopyPropalFrom=Tạo đơn hàng đề xuất bằng cách sao chép đề nghị hiện tại
    -CreateEmptyPropal=Tạo đơn hàng đề xuất trống hoặc từ danh sách các sản phẩm / dịch vụ
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=Thời gian hiệu lực mặc định của đơn hàng đề xuất (theo ngày)
    -UseCustomerContactAsPropalRecipientIfExist=Dùng địa chỉ liên lạc của khách hàng nếu được xác định thay vì địa chỉ của bên thứ ba như là địa chỉ người nhận đơn hàng đề xuất
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=Sao chép đơn hàng đề xuất
     ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
     ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=Liên hệ với khách hàng sau-up đề
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=Một mô hình đề xuất đầy đủ (logo ...)
    +DocModelCyanDescription=Một mô hình đề xuất đầy đủ (logo ...)
     DefaultModelPropalCreate=Tạo mô hình mặc định
     DefaultModelPropalToBill=Mặc định mẫu khi đóng cửa một đề xuất kinh doanh (được lập hoá đơn)
     DefaultModelPropalClosed=Mặc định mẫu khi đóng cửa một đề xuất kinh doanh (chưa lập hoá đơn)
    diff --git a/htdocs/langs/vi_VN/website.lang b/htdocs/langs/vi_VN/website.lang
    index c5ec67f23bc..d25bdbd99ed 100644
    --- a/htdocs/langs/vi_VN/website.lang
    +++ b/htdocs/langs/vi_VN/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=Mã
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=Đọc
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/zh_CN/accountancy.lang b/htdocs/langs/zh_CN/accountancy.lang
    index 79eea3e0bff..56fccded57e 100644
    --- a/htdocs/langs/zh_CN/accountancy.lang
    +++ b/htdocs/langs/zh_CN/accountancy.lang
    @@ -1,7 +1,7 @@
     # Dolibarr language file - en_US - Accounting Expert
     Accounting=会计
    -ACCOUNTING_EXPORT_SEPARATORCSV=列分隔符的导出文件
    -ACCOUNTING_EXPORT_DATE=日期格式导出文件
    +ACCOUNTING_EXPORT_SEPARATORCSV=导出文件的列分隔符
    +ACCOUNTING_EXPORT_DATE=导出文件的日期格式
     ACCOUNTING_EXPORT_PIECE=导出件数
     ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=导出全局账号
     ACCOUNTING_EXPORT_LABEL=导出标签
    @@ -9,248 +9,254 @@ ACCOUNTING_EXPORT_AMOUNT=导出数量
     ACCOUNTING_EXPORT_DEVISE=导出货币
     Selectformat=请选择文件格式
     ACCOUNTING_EXPORT_FORMAT=请选择文件格式
    -ACCOUNTING_EXPORT_ENDLINE=Select the carriage return type
    -ACCOUNTING_EXPORT_PREFIX_SPEC=文件唯一前缀
    -ThisService=This service
    -ThisProduct=This product
    -DefaultForService=Default for service
    -DefaultForProduct=Default for product
    -CantSuggest=Can't suggest
    -AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s
    -ConfigAccountingExpert=配置财务会计专家模块
    -Journalization=Journalization
    +ACCOUNTING_EXPORT_ENDLINE=选择运费类型
    +ACCOUNTING_EXPORT_PREFIX_SPEC=指定文件名前缀
    +ThisService=这项服务
    +ThisProduct=这个产品
    +DefaultForService=默认服务
    +DefaultForProduct=默认产品
    +CantSuggest=无法建议
    +AccountancySetupDoneFromAccountancyMenu=大多数会计设置都是从​​菜单%s完成的
    +ConfigAccountingExpert=会计专家模块的配置
    +Journalization=记帐
     Journaux=日记帐
    -JournalFinancial=财务日记帐
    -BackToChartofaccounts=返回科目表
    -Chartofaccounts=账户图表
    -CurrentDedicatedAccountingAccount=Current dedicated account
    -AssignDedicatedAccountingAccount=New account to assign
    -InvoiceLabel=Invoice label
    -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to an accounting account
    -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to an accounting account
    -OtherInfo=Other information
    -DeleteCptCategory=Remove accounting account from group
    -ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ?
    -JournalizationInLedgerStatus=Status of journalization
    -AlreadyInGeneralLedger=Already journalized in ledgers
    -NotYetInGeneralLedger=Not yet journalized in ledgers
    -GroupIsEmptyCheckSetup=Group is empty, check setup of the personalized accounting group
    -DetailByAccount=Show detail by account
    -AccountWithNonZeroValues=Accounts with non zero values
    -ListOfAccounts=List of accounts
    +JournalFinancial=财务总监日记帐
    +BackToChartofaccounts=返回会计科目表
    +Chartofaccounts=会计科目表
    +CurrentDedicatedAccountingAccount=当前专用帐户
    +AssignDedicatedAccountingAccount=要分配的新帐户
    +InvoiceLabel=发票标签
    +OverviewOfAmountOfLinesNotBound=未绑定到会计科目的行数的概述
    +OverviewOfAmountOfLinesBound=已绑定到会计科目的行数的概述
    +OtherInfo=其他信息
    +DeleteCptCategory=从组中删除会计帐户
    +ConfirmDeleteCptCategory=您确定要从会计科目组中删除此会计科目吗?
    +JournalizationInLedgerStatus=记帐状态
    +AlreadyInGeneralLedger=已经在分类账中记录
    +NotYetInGeneralLedger=尚未在分类账中记录
    +GroupIsEmptyCheckSetup=组为空,检查个性化会计组的设置
    +DetailByAccount=按帐户显示详细信息
    +AccountWithNonZeroValues=具有非零值的帐户
    +ListOfAccounts=帐户清单
    +CountriesInEEC=欧共体国家
    +CountriesNotInEEC=非欧共体国家
    +CountriesInEECExceptMe=欧共体国家除了%s
    +CountriesExceptMe=除%s以外的所有国家/地区
     
    -MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup
    -MainAccountForSuppliersNotDefined=Main accounting account for vendors not defined in setup
    -MainAccountForUsersNotDefined=Main accounting account for users not defined in setup
    -MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup
    +MainAccountForCustomersNotDefined=未在设置中定义的顾客的主要会计科目
    +MainAccountForSuppliersNotDefined=未在设置中定义的供应商的主要会计科目
    +MainAccountForUsersNotDefined=未在设置中定义的用户的主要会计科目
    +MainAccountForVatPaymentNotDefined=未在设置中定义的税款支付的主要会计科目
     
    -AccountancyArea=Accounting area
    -AccountancyAreaDescIntro=Usage of the accountancy module is done in several step:
    -AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year...
    -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger)
    -AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies...
    +AccountancyArea=会计区
    +AccountancyAreaDescIntro=会计模块的使用分几步完成:
    +AccountancyAreaDescActionOnce=以下动作通常只执行一次,或每年执行一次......
    +AccountancyAreaDescActionOnceBis=下一步将在未来节省您将来的时间,在记帐时使用正确的默认会计科目(在日记帐和总帐中写入记录时)
    +AccountancyAreaDescActionFreq=对于非常大的公司,通常每月,每周或每天执行以下操作......
     
    -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s
    -AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s
    -AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s
    +AccountancyAreaDescJournalSetup=步骤%s:从菜单%s创建或检查日常报表的内容
    +AccountancyAreaDescChartModel=步骤%s:从菜单%s创建一个会计科目表模型
    +AccountancyAreaDescChart=步骤%s:从菜单%s创建或检查您的会计科目表内容
     
    -AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s.
    -AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
    -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s.
    -AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
    -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
    -AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s.
    -AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s.
    -AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s.
    -AccountancyAreaDescBank=STEP %s: Define accounting accounts and journal code for each bank and financial accounts. For this, use the menu entry %s.
    -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s.
    +AccountancyAreaDescVat=步骤%s:为每个税率定义会计科目,使用菜单%s。
    +AccountancyAreaDescDefault=步骤%s:定义默认会计科目,使用菜单%s。
    +AccountancyAreaDescExpenseReport=步骤%s:为每种类型的费用报告定义默认会计科目,使用菜单%s。
    +AccountancyAreaDescSal=步骤%s:定义支付工资的默认会计科目,使用菜单%s。
    +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s.
    +AccountancyAreaDescDonation=步骤%s:定义捐赠的默认会计科目,使用菜单%s。
    +AccountancyAreaDescMisc=步骤%s:为杂项交易定义强制性默认帐户和默认会计科目,使用菜单%s。
    +AccountancyAreaDescLoan=步骤%s:定义贷款的默认会计科目,使用菜单%s。
    +AccountancyAreaDescBank=步骤%s:为每个银行和财务帐户定义会计科目和日常报表代码,使用菜单%s。
    +AccountancyAreaDescProd=步骤%s:在您的产品/服务上定义会计科目,使用菜单%s。
     
    -AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s.
    -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu <strong>%s</strong>, and click into button <strong>%s</strong>.
    -AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports.
    +AccountancyAreaDescBind=步骤%s:检查现有%s行与会计科目之间的绑定, 使程序通过单击完成对分类帐中的交易进行日志记录。完成缺失的绑定,使用菜单%s。
    +AccountancyAreaDescWriteRecords=步骤%s:将交易写入分类帐,进入菜单<strong> %s </strong>,然后点击按钮<strong> %s</strong>。
    +AccountancyAreaDescAnalyze=步骤%s:添加或编辑现有交易并生成报告和导出。
     
    -AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future.
    +AccountancyAreaDescClosePeriod=STEP %s:关闭期间,以便禁止修改。
     
    -TheJournalCodeIsNotDefinedOnSomeBankAccount=A mandatory step in setup was not complete (accounting code journal not defined for all bank accounts)
    -Selectchartofaccounts=Select active chart of accounts
    -ChangeAndLoad=Change and load
    -Addanaccount=添加一个会计帐户
    -AccountAccounting=会计账户
    +TheJournalCodeIsNotDefinedOnSomeBankAccount=设置中的必要步骤未完成(未为所有银行帐户定义会计代码日记帐)
    +Selectchartofaccounts=选择活动的会计科目表
    +ChangeAndLoad=改变和加载
    +Addanaccount=添加一个会计科目
    +AccountAccounting=会计科目
     AccountAccountingShort=账户
    -SubledgerAccount=Subledger Account
    -ShowAccountingAccount=Show accounting account
    -ShowAccountingJournal=Show accounting journal
    -AccountAccountingSuggest=Accounting account suggested
    -MenuDefaultAccounts=Default accounts
    +SubledgerAccount=分类账账户
    +ShowAccountingAccount=显示会计科目
    +ShowAccountingJournal=显示会计日常报表
    +AccountAccountingSuggest=建议会计科目
    +MenuDefaultAccounts=默认帐户
     MenuBankAccounts=银行帐户
    -MenuVatAccounts=Vat accounts
    -MenuTaxAccounts=Tax accounts
    -MenuExpenseReportAccounts=Expense report accounts
    -MenuLoanAccounts=Loan accounts
    -MenuProductsAccounts=Product accounts
    -ProductsBinding=Products accounts
    -Ventilation=Binding to accounts
    -CustomersVentilation=Customer invoice binding
    -SuppliersVentilation=Vendor invoice binding
    -ExpenseReportsVentilation=Expense report binding
    -CreateMvts=Create new transaction
    -UpdateMvts=Modification of a transaction
    -ValidTransaction=Validate transaction
    -WriteBookKeeping=Journalize transactions in Ledger
    -Bookkeeping=Ledger
    +MenuVatAccounts=增值税账户
    +MenuTaxAccounts=税务帐户
    +MenuExpenseReportAccounts=费用报告帐户
    +MenuLoanAccounts=贷款账户
    +MenuProductsAccounts=产品帐户
    +ProductsBinding=产品帐户
    +Ventilation=绑定到帐户
    +CustomersVentilation=顾客发票绑定
    +SuppliersVentilation=供应商发票绑定
    +ExpenseReportsVentilation=费用报告绑定
    +CreateMvts=创建新交易
    +UpdateMvts=修改交易
    +ValidTransaction=验证交易
    +WriteBookKeeping=在帐目中记录交易
    +Bookkeeping=分类帐
     AccountBalance=账目平衡
    -ObjectsRef=Source object ref
    -CAHTF=税前供应商采购总计
    -TotalExpenseReport=Total expense report
    -InvoiceLines=Lines of invoices to bind
    -InvoiceLinesDone=Bound lines of invoices
    -ExpenseReportLines=Lines of expense reports to bind
    -ExpenseReportLinesDone=Bound lines of expense reports
    -IntoAccount=Bind line with the accounting account
    +ObjectsRef=源对象引用
    +CAHTF=税前采购供应商总计
    +TotalExpenseReport=总费用报告
    +InvoiceLines=要绑定的发票行
    +InvoiceLinesDone=已绑定的发票行
    +ExpenseReportLines=要绑定的费用行报告
    +ExpenseReportLinesDone=已绑定的费用报告行
    +IntoAccount=用会计科目绑定行
     
     
    -Ventilate=Bind
    -LineId=Id line
    -Processing=处理
    -EndProcessing=Process terminated.
    +Ventilate=绑定
    +LineId=Id行
    +Processing=处理中
    +EndProcessing=流程终止
     SelectedLines=选定的行
     Lineofinvoice=发票行
    -LineOfExpenseReport=Line of expense report
    -NoAccountSelected=No accounting account selected
    -VentilatedinAccount=Binded successfully to the accounting account
    -NotVentilatedinAccount=Not bound to the accounting account
    -XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account
    -XLineFailedToBeBinded=%s products/services were not bound to any accounting account
    +LineOfExpenseReport=费用报告行
    +NoAccountSelected=未选定会计科目
    +VentilatedinAccount=已绑定到会计科目
    +NotVentilatedinAccount=未绑定到会计科目
    +XLineSuccessfullyBinded=%s产品/服务绑定到会计科目
    +XLineFailedToBeBinded=%s产品/服务未绑定到会计科目
     
    -ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50)
    -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements
    -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements
    +ACCOUNTING_LIMIT_LIST_VENTILATION=每页显示的要绑定的元素数量(建议最大值:50)
    +ACCOUNTING_LIST_SORT_VENTILATION_TODO=按“最近"对“即将绑定”页面进行排序
    +ACCOUNTING_LIST_SORT_VENTILATION_DONE=按"最近"对"绑定完成"页面进行排序
     
    -ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50)
    -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50)
    -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen)
    -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen)
    -ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero.
    -BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account
    -ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal
    +ACCOUNTING_LENGTH_DESCRIPTION=在X字符后截断列表中的产品和服务描述(最佳X= 50)
    +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=在X字符后截断列表中的产品和服务帐户描述表单(最佳X= 50)
    +ACCOUNTING_LENGTH_GACCOUNT=一般会计科目的长度(如果您在此处将值设置为6,则帐户'706'将在屏幕上显示为'706000')
    +ACCOUNTING_LENGTH_AACCOUNT=第三方会计科目的长度(如果您在此处将值设置为6,则帐户'401'将在屏幕上显示为'401000')
    +ACCOUNTING_MANAGE_ZERO=允许在会计帐户结束时管理不同数量的零。一些国家(如瑞士)需要。如果保持关闭(默认),您可以设置以下2个参数以要求应用程序添加虚拟零。
    +BANK_DISABLE_DIRECT_INPUT=禁止在银行帐户中直接记录交易
    +ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=在日记帐上启用草稿导出
     
    -ACCOUNTING_SELL_JOURNAL=卖杂志
    -ACCOUNTING_PURCHASE_JOURNAL=购买杂志
    -ACCOUNTING_MISCELLANEOUS_JOURNAL=其他杂志
    -ACCOUNTING_EXPENSEREPORT_JOURNAL=费用报表日记
    -ACCOUNTING_SOCIAL_JOURNAL=社交杂志
    -ACCOUNTING_HAS_NEW_JOURNAL=Has new Journal
    +ACCOUNTING_SELL_JOURNAL=销售日记帐
    +ACCOUNTING_PURCHASE_JOURNAL=采购日记帐
    +ACCOUNTING_MISCELLANEOUS_JOURNAL=杂项日记帐
    +ACCOUNTING_EXPENSEREPORT_JOURNAL=费用报表日记帐
    +ACCOUNTING_SOCIAL_JOURNAL=社会日记帐
    +ACCOUNTING_HAS_NEW_JOURNAL=有新的日常报表
     
    -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transfer
    -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait
    -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations
    +ACCOUNTING_ACCOUNT_TRANSFER_CASH=会计科目-转账
    +ACCOUNTING_ACCOUNT_SUSPENSE=会计科目-等待
    +DONATION_ACCOUNTINGACCOUNT=会计科目-登记捐款
     
    -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (used if not defined in the product sheet)
    -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet)
    -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet)
    -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet)
    +ACCOUNTING_PRODUCT_BUY_ACCOUNT=购买产品的默认会计科目(如果未在产品说明书中定义,则使用)
    +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=销售产品的默认会计科目(如果未在产品说明书中定义,则使用)
    +ACCOUNTING_SERVICE_BUY_ACCOUNT=已购买服务的默认会计科目(如果未在服务单中定义,则使用)
    +ACCOUNTING_SERVICE_SOLD_ACCOUNT=默认情况下,已售出服务的会计科目(如果未在服务单中定义,则使用)
     
     Doctype=文件类型
     Docdate=日期
     Docref=参考
     LabelAccount=标签帐户
    -LabelOperation=Label operation
    +LabelOperation=标签操作
     Sens=SENS
    +LetteringCode=刻字代码
     Codejournal=日记帐
     NumPiece=件数
     TransactionNumShort=Num. transaction
    -AccountingCategory=Personalized groups
    -GroupByAccountAccounting=Group by accounting account
    -AccountingAccountGroupsDesc=You can define here some groups of accounting account. They will be used for personalized accounting reports.
    -ByAccounts=By accounts
    -ByPredefinedAccountGroups=By predefined groups
    -ByPersonalizedAccountGroups=By personalized groups
    +AccountingCategory=会计分类
    +GroupByAccountAccounting=按会计科目分组
    +AccountingAccountGroupsDesc=您可以在此处定义一些会计科目组。它们将用于会计分类报告。
    +ByAccounts=按帐户
    +ByPredefinedAccountGroups=按预定义的组
    +ByPersonalizedAccountGroups=通过个性化团体
     ByYear=在今年
     NotMatch=未设定
    -DeleteMvt=Delete Ledger lines
    +DeleteMvt=删除分类帐行
     DelYear=删除整年
    -DelJournal=删除整月
    -ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required.
    -ConfirmDeleteMvtPartial=This will delete the transaction from the Ledger (all lines related to same transaction will be deleted)
    +DelJournal=日记帐删除
    +ConfirmDeleteMvt=这将删除年份和/或特定日常报表的所有账目行。至少需要一个标准。
    +ConfirmDeleteMvtPartial=这将从分类帐中删除该交易(将删除与同一交易相关的所有行)
     FinanceJournal=财务账
    -ExpenseReportsJournal=Expense reports journal
    +ExpenseReportsJournal=费用报告日常报表
     DescFinanceJournal=财务账包括全部银行账户付款类型
    -DescJournalOnlyBindedVisible=This is a view of record that are bound to an accounting account and can be recorded into the Ledger.
    -VATAccountNotDefined=Account for VAT not defined
    -ThirdpartyAccountNotDefined=Account for third party not defined
    -ProductAccountNotDefined=Account for product not defined
    -FeeAccountNotDefined=Account for fee not defined
    -BankAccountNotDefined=Account for bank not defined
    +DescJournalOnlyBindedVisible=这是记录的视图,它绑定到会计帐户并可以记录到分类帐中。
    +VATAccountNotDefined=未定义增值税的帐户
    +ThirdpartyAccountNotDefined=未定义的第三方帐户
    +ProductAccountNotDefined=未定义产品的帐户
    +FeeAccountNotDefined=未定义费用的帐户
    +BankAccountNotDefined=银行帐户未定义
     CustomerInvoicePayment=付款发票的客户
    -ThirdPartyAccount=Third party account
    -NewAccountingMvt=New transaction
    -NumMvts=Numero of transaction
    -ListeMvts=List of movements
    +ThirdPartyAccount=第三方帐户
    +NewAccountingMvt=新交易
    +NumMvts=Numero的交易
    +ListeMvts=运动清单
     ErrorDebitCredit=借记卡和信用卡在同一时间不能有一个值
    -AddCompteFromBK=Add accounting accounts to the group
    -ReportThirdParty=List third party account
    -DescThirdPartyReport=Consult here the list of the third party customers and vendors and their accounting accounts
    -ListAccounts=会计账目清单
    -UnknownAccountForThirdparty=Unknown third party account. We will use %s
    -UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error
    -UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Unknown third party account and waiting account not defined. Blocking error
    -PaymentsNotLinkedToProduct=Payment not linked to any product / service
    +AddCompteFromBK=将会计科目添加到组中
    +ReportThirdParty=列出第三方帐户
    +DescThirdPartyReport=请在此处查看第三方客户和供应商及其会计帐户的列表
    +ListAccounts=会计科目清单
    +UnknownAccountForThirdparty=未知的第三方帐户。我们将使用%s
    +UnknownAccountForThirdpartyBlocking=未知的第三方帐户。阻止错误
    +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=未定义未知的第三方帐户和等待帐户。阻止错误
    +PaymentsNotLinkedToProduct=付款未与任何产品/服务相关联
     
    -Pcgtype=Group of account
    -Pcgsubtype=Subgroup of account
    -PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criterias for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
    +Pcgtype=帐户组
    +Pcgsubtype=帐户子组
    +PcgtypeDesc=Group and subgroup of account are used as predefined 'filter' and 'grouping' criteria for some accounting reports. For example, 'INCOME' or 'EXPENSE' are used as groups for accounting accounts of products to build the expense/income report.
     
     TotalVente=Total turnover before tax
     TotalMarge=总销售利润率
     
    -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account
    -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
    -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account
    -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account
    -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account:
    +DescVentilCustomer=请在此处查看与产品会计科目绑定(或不绑定)的客户发票行列表
    +DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on product/service cards or if you still have some lines not bound to an account, you will have to make a manual binding from the menu "<strong>%s</strong>".
    +DescVentilDoneCustomer=请在此查看发票客户及其产品会计科目的行列表
    +DescVentilTodoCustomer=绑定尚未与产品会计科目绑定的发票行
    +ChangeAccount=使用以下会计科目更改所选行的产品/服务会计科目:
     Vide=-
    -DescVentilSupplier=Consult here the list of vendor invoice lines bound or not yet bound to a product accounting account
    -DescVentilDoneSupplier=Consult here the list of the lines of invoices vendors and their accounting account
    -DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account
    -DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account
    -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on fees dictionary or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
    -DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account
    +DescVentilSupplier=请在此处查看已绑定或尚未绑定到产品会计科目的供应商发票行列表
    +DescVentilDoneSupplier=请在此查询发票供应商及其会计科目的行列表
    +DescVentilTodoExpenseReport=绑定费用报表行尚未绑定费用会计帐户
    +DescVentilExpenseReport=请在此处查看费用会计帐户绑定(或不绑定)的费用报表行列表
    +DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button <strong>"%s"</strong>. If account was not set on fees dictionary or if you still have some lines not bound to any account, you will have to make a manual binding from the menu "<strong>%s</strong>".
    +DescVentilDoneExpenseReport=请在此查询费用报表行及其费用会计帐户清单
     
    -ValidateHistory=Bind Automatically
    -AutomaticBindingDone=Automatic binding done
    +ValidateHistory=自动绑定
    +AutomaticBindingDone=自动绑定完成
     
    -ErrorAccountancyCodeIsAlreadyUse=错误,你不能删除这个会计帐户,因为它是用来
    -MvtNotCorrectlyBalanced=Movement not correctly balanced. Debit = %s | Credit = %s
    -FicheVentilation=Binding card
    -GeneralLedgerIsWritten=Transactions are written in the Ledger
    -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be journalized. If there is no other error message, this is probably because they were already journalized.
    -NoNewRecordSaved=No more record to journalize
    -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account
    -ChangeBinding=Change the binding
    -Accounted=Accounted in ledger
    -NotYetAccounted=Not yet accounted in ledger
    +ErrorAccountancyCodeIsAlreadyUse=错误,你不能删除这个会计科目,因为正被使用。
    +MvtNotCorrectlyBalanced=运动不正确平衡。借方= %s | Credit = %s
    +Balancing=平衡
    +FicheVentilation=绑定卡
    +GeneralLedgerIsWritten=交易是在Ledger中写的
    +GeneralLedgerSomeRecordWasNotRecorded=某些交易无法记录。如果没有其他错误消息,这可能是因为它们已经被记录。
    +NoNewRecordSaved=没有更多的记录记录
    +ListOfProductsWithoutAccountingAccount=未绑定到任何会计科目的产品列表
    +ChangeBinding=更改绑定
    +Accounted=占总账
    +NotYetAccounted=尚未计入分类帐
     
     ## Admin
     ApplyMassCategories=应用批量类别
    -AddAccountFromBookKeepingWithNoCategories=Available acccount not yet in a personalized group
    -CategoryDeleted=Category for the accounting account has been removed
    -AccountingJournals=Accounting journals
    -AccountingJournal=Accounting journal
    -NewAccountingJournal=New accounting journal
    -ShowAccoutingJournal=Show accounting journal
    +AddAccountFromBookKeepingWithNoCategories=Available account not yet in a personalized group
    +CategoryDeleted=会计科目的类别已被删除
    +AccountingJournals=会计日常报表
    +AccountingJournal=会计日常报表
    +NewAccountingJournal=新建会计日常报表
    +ShowAccoutingJournal=显示会计日常报表
     Nature=属性
    -AccountingJournalType1=Miscellaneous operations
    +AccountingJournalType1=杂项业务
     AccountingJournalType2=销售
     AccountingJournalType3=采购
     AccountingJournalType4=银行
    -AccountingJournalType5=Expenses report
    -AccountingJournalType8=Inventory
    -AccountingJournalType9=Has-new
    -ErrorAccountingJournalIsAlreadyUse=This journal is already use
    -AccountingAccountForSalesTaxAreDefinedInto=Note: Accounting account for Sales tax are defined into menu <b>%s</b> - <b>%s</b>
    +AccountingJournalType5=费用报告
    +AccountingJournalType8=库存
    +AccountingJournalType9=拥有全新
    +ErrorAccountingJournalIsAlreadyUse=该日常报表已经使用
    +AccountingAccountForSalesTaxAreDefinedInto=注意:销售税的会计科目已定义到菜单<b> %s </b>  -  <b> %s</b>
     
     ## Export
    -ExportDraftJournal=Export draft journal
    +ExportDraftJournal=导出日常报表草稿
     Modelcsv=导出型号
     Selectmodelcsv=请选择一个导出模板
     Modelcsv_normal=典型的导出
    @@ -261,25 +267,26 @@ Modelcsv_ciel=向 Sage Ciel Compta 或 Compta Evolution导出
     Modelcsv_quadratus=向 Quadratus QuadraCompta导出
     Modelcsv_ebp=向 EBP导出
     Modelcsv_cogilog=导出到 Cogilog
    -Modelcsv_agiris=Export towards Agiris
    -Modelcsv_configurable=Export Configurable
    -ChartofaccountsId=Chart of accounts Id
    +Modelcsv_agiris=向Agiris出口
    +Modelcsv_configurable=导出CSV可配置
    +Modelcsv_FEC=Export FEC (Art. L47 A) (Test)
    +ChartofaccountsId=会计科目表ID
     
     ## Tools - Init accounting account on product / service
     InitAccountancy=初始化会计
    -InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accounting account defined for sales and purchases.
    -DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set.
    +InitAccountancyDesc=此页面可用于初始化没有为销售和购买定义的会计科目的产品和服务的会计科目。
    +DefaultBindingDesc=此页面可用于设置默认帐户,用于在未设置特定会计帐户时链接有关付款工资,捐款,税金和增值税的交易记录。
     Options=选项
     OptionModeProductSell=销售模式
     OptionModeProductBuy=采购模式
    -OptionModeProductSellDesc=Show all products with accounting account for sales.
    -OptionModeProductBuyDesc=Show all products with accounting account for purchases.
    -CleanFixHistory=Remove accounting code from lines that not exists into charts of account
    -CleanHistory=Reset all bindings for selected year
    -PredefinedGroups=Predefined groups
    -WithoutValidAccount=Without valid dedicated account
    -WithValidAccount=With valid dedicated account
    -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account
    +OptionModeProductSellDesc=显示所有具有销售会计帐户的产品。
    +OptionModeProductBuyDesc=显示所有带有会计帐户的产品。
    +CleanFixHistory=将不存在于会计科目表中的行删除科目代码
    +CleanHistory=重置所选年份的所有绑定
    +PredefinedGroups=预定义的组
    +WithoutValidAccount=没有有效的专用帐户
    +WithValidAccount=有效的专用帐户
    +ValueNotIntoChartOfAccount=会计科目的这个值不存在于会计科目表中
     
     ## Dictionary
     Range=会计科目范围
    @@ -287,20 +294,20 @@ Calculated=计算
     Formula=公式
     
     ## Error
    -SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them
    -ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries)
    -ErrorInvoiceContainsLinesNotYetBounded=You try to journalize some lines of the invoice <strong>%s</strong>, but some other lines are not yet bounded to accounting account. Journalization of all invoice lines for this invoice are refused.
    -ErrorInvoiceContainsLinesNotYetBoundedShort=Some lines on invoice are not bound to accounting account.
    +SomeMandatoryStepsOfSetupWereNotDone=一些强制性的安装步骤没有完成,请完成它们
    +ErrorNoAccountingCategoryForThisCountry=没有%s可用的的会计科目组(请参阅主页 - 设置 - 词典)
    +ErrorInvoiceContainsLinesNotYetBounded=您尝试记录发票的某些行<strong> %s </strong>,但其他一些行尚未绑定到会计帐户。此发票的所有发票行的日记帐均被拒绝。
    +ErrorInvoiceContainsLinesNotYetBoundedShort=发票上的某些行未绑定到会计帐户。
     ExportNotSupported=本页不支持设置导出格式
    -BookeppingLineAlreayExists=已存在的账簿明细行
    -NoJournalDefined=No journal defined
    -Binded=Lines bound
    -ToBind=Lines to bind
    -UseMenuToSetBindindManualy=Autodection not possible, use menu <a href="%s">%s</a> to make the binding manually
    +BookeppingLineAlreayExists=已经存在于簿记中的行
    +NoJournalDefined=没有定义日常报表
    +Binded=线条约束
    +ToBind=要绑定的行
    +UseMenuToSetBindindManualy=Lines not yet bound, use menu <a href="%s">%s</a> to make the binding manually
     
     ## Import
    -ImportAccountingEntries=Accounting entries
    +ImportAccountingEntries=会计分录
     
    -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
    -ExpenseReportJournal=Expense Report Journal
    -InventoryJournal=Inventory Journal
    +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manually in the Ledger. If your journalization is up to date, the bookkeeping view is more accurate.
    +ExpenseReportJournal=费用报告日常报表
    +InventoryJournal=库存日常报表
    diff --git a/htdocs/langs/zh_CN/admin.lang b/htdocs/langs/zh_CN/admin.lang
    index e7399c01294..5f71767b1a5 100644
    --- a/htdocs/langs/zh_CN/admin.lang
    +++ b/htdocs/langs/zh_CN/admin.lang
    @@ -1,7 +1,7 @@
     # Dolibarr language file - Source file is en_US - admin
     Foundation=机构
     Version=版本
    -Publisher=Publisher
    +Publisher=出版者
     VersionProgram=程序版本
     VersionLastInstall=初始安装版本
     VersionLastUpgrade=最新版本升级
    @@ -9,70 +9,70 @@ VersionExperimental=试验
     VersionDevelopment=开发
     VersionUnknown=未知
     VersionRecommanded=推荐
    -FileCheck=Files integrity checker
    -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example.
    -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference.
    -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added.
    -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added.
    -GlobalChecksum=Global checksum
    -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from
    -LocalSignature=Embedded local signature (less reliable)
    -RemoteSignature=Remote distant signature (more reliable)
    +FileCheck=文件完整性检查程序
    +FileCheckDesc=This tool allows you to check the integrity of files and the setup of your application, comparing each file with the official one. The value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker, for example.
    +FileIntegrityIsStrictlyConformedWithReference=文件完整性严格符合参考。
    +FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files have been added.
    +FileIntegritySomeFilesWereRemovedOrModified=文件完整性检查失败。某些文件已被修改,删除或添加。
    +GlobalChecksum=全局校验和
    +MakeIntegrityAnalysisFrom=对应用程序文件进行完整性分析
    +LocalSignature=嵌入式本地签名(不太可靠)
    +RemoteSignature=远程遥控签名(更可靠)
     FilesMissing=缺少文件
     FilesUpdated=已更新的文件
    -FilesModified=Modified Files
    -FilesAdded=Added Files
    -FileCheckDolibarr=Check integrity of application files
    -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package
    -XmlNotFound=Xml Integrity File of application not found
    +FilesModified=已修改的文件
    +FilesAdded=增加的文件
    +FileCheckDolibarr=检查应用程序文件的完整性
    +AvailableOnlyOnPackagedVersions=完整性检查的本地文件仅在从官方软件包安装应用程序时可用
    +XmlNotFound=找不到程序的Xml完整性文件
     SessionId=会话 ID
     SessionSaveHandler=会话保存处理程序
     SessionSavePath=存储会话本地化
     PurgeSessions=清空会话
     ConfirmPurgeSessions=您真的要清除所有会话吗?它将断开每个用户(您自己除外)。
    -NoSessionListWithThisHandler=你 PHP 中设置的保存会话处理程序不允许列出运行中的会话。
    +NoSessionListWithThisHandler=您 PHP 中设置的保存会话处理程序不允许列出运行中的会话。
     LockNewSessions=锁定新连接
    -ConfirmLockNewSessions=你确定要限制 Dolibarr 的所有新连接?这样做将只有当前用户 <b>%s</b> 可以连接。
    +ConfirmLockNewSessions=你确定要限制 Dolibarr 的所有新连接,只允许您自己连入?此后将只有用户 <b>%s</b> 可以连入。
     UnlockNewSessions=取消连接锁定
     YourSession=你的会话
     Sessions=用户会话
     WebUserGroup=Web 服务器用户/组
     NoSessionFound=你的 PHP 设置似乎不允许列出运行中的会话。会话的存储目录 <b>%s</b>可能受到系统权限或PHP open_basedir 指令的保护。
     DBStoringCharset=数据库保存数据的字符编码
    -DBSortingCharset=数据库数据排序的字符编码
    -ClientCharset=Client charset
    -ClientSortingCharset=Client collation
    +DBSortingCharset=数据库排序数据的字符编码
    +ClientCharset=客户端的字符编码
    +ClientSortingCharset=客户核对
     WarningModuleNotActive=<b> %s </b>模块必须启用
    -WarningOnlyPermissionOfActivatedModules=仅与已启用模块相关的权限显示在此。您可以在 主页->设定->模块页面中启用其它模块。
    +WarningOnlyPermissionOfActivatedModules=仅与已启用模块相关的权限显示在此。您可以在 "主页"->"设置"->"模块"页面中启用其它模块。
     DolibarrSetup=Dolibarr安装或升级向导
     InternalUser=内部员工用户
     ExternalUser=外部用户
     InternalUsers=内部员工用户
     ExternalUsers=外部用户
     GUISetup=主题
    -SetupArea=设置区
    -UploadNewTemplate=Upload new template(s)
    +SetupArea=设置
    +UploadNewTemplate=上传新模板
     FormToTestFileUploadForm=文件上传功能测试
     IfModuleEnabled=注:“是”仅在模块 <b>%s</b> 启用时有效
     RemoveLock=如果存在文件 <b>%s</b> 则删除,以便可以使用升级工具。
     RestoreLock=恢复文件<b> %s </b>的只读权限,以禁止升级工具的使用。
     SecuritySetup=安全设置
    -SecurityFilesDesc=Define here options related to security about uploading files.
    +SecurityFilesDesc=在此定义与上载文件的安全性相关的选项。
     ErrorModuleRequirePHPVersion=错误,此模块要求 PHP 版本 %s 或更高
     ErrorModuleRequireDolibarrVersion=错误,此模块要求 Dolibarr 版本 %s 或更高
     ErrorDecimalLargerThanAreForbidden=错误,不支持超过 <b>%s</b> 的精度。
    -DictionarySetup=词典的设置
    +DictionarySetup=字典的设置
     Dictionary=字典库
    -ErrorReservedTypeSystemSystemAuto=类型值 'system' 与 'systemauto' 是系统保留值。不能以'user'为值添加您的记录
    +ErrorReservedTypeSystemSystemAuto=类型的值'system'和'systemauto'保留。您可以使用“user”作为值来添加自己的记录
     ErrorCodeCantContainZero=编码不能包含 0
     DisableJavascript=禁用JavaScript和Ajax功能(推荐 盲人或文本浏览器)
    -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    -UseSearchToSelectContactTooltip=同样地如果你有大批量的合伙人 (> 100 000), 你也可以通过设置常数 CONTACT_DONOTSEARCH_ANYWHERE 来提高速度到 1 在设置->其他菜单下设置。 搜索将被限制为字符串开始。
    -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient)
    -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient)
    +UseSearchToSelectCompanyTooltip=此外,如果您有大量第三方(> 100 000),您可以通过在"设置"-> "其他"中将常量COMPANY_DONOTSEARCH_ANYWHERE设置为1来提高速度。然后搜索将限制为以字符串的开头。
    +UseSearchToSelectContactTooltip=此外,如果您有大量第三方(> 100 000),您可以通过在"设置"-> "其他"中将常量CONTACT_DONOTSEARCH_ANYWHERE设置为1来提高速度。然后搜索将限制为以字符串开头。
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=触发搜索的字符数量:%s
     NotAvailableWhenAjaxDisabled=Ajax 禁用时不可用
    -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party
    +AllowToSelectProjectFromOtherCompany=在合作方的文档上,可以选择链接到另一个合作方的项目
     JavascriptDisabled=禁用 JavaScript
     UsePreviewTabs=使用预览标签
     ShowPreview=显示预览
    @@ -80,25 +80,25 @@ PreviewNotAvailable=无预览
     ThemeCurrentlyActive=当前使用的主题
     CurrentTimeZone=PHP 服务器的时区
     MySQLTimeZone=MySql 服务器的时区
    -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=空间
     Table=表
     Fields=字段
     Index=索引
     Mask=格式掩码
    -NextValue=下一个编码
    -NextValueForInvoices=下一个发票编码
    -NextValueForCreditNotes=下一个票据编码
    -NextValueForDeposit=Next value (down payment)
    -NextValueForReplacements=下一值(替换)
    -MustBeLowerThanPHPLimit=注意:无论这个参数值是多少,您的 PHP 参数已经限制每个上传文件大小为<b>%s</b> %s,
    +NextValue=下一个值
    +NextValueForInvoices=下一个值(发票)
    +NextValueForCreditNotes=下一个值(贷方记录)
    +NextValueForDeposit=下一个值(首付)
    +NextValueForReplacements=下一个值(替换)
    +MustBeLowerThanPHPLimit=注:无论这个参数值是多少,您的 PHP 参数已经限制每个上传文件大小为<b>%s</b> %s,
     NoMaxSizeByPHPLimit=注:您的 PHP 配置参数中没有设置限制
    -MaxSizeForUploadedFiles=上传文件的最大大小 (0 表示禁止上传)
    +MaxSizeForUploadedFiles=上传文件的最大尺寸(0表示不允许上传)
     UseCaptchaCode=登陆页面启用图形验证码
     AntiVirusCommand= 防毒命令的完整路径
     AntiVirusCommandExample= ClamWin 示例:c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>ClamAv 实例:/usr/bin/clamscan
     AntiVirusParam= 更多命令行参数
    -AntiVirusParamExample= ClamWin 示例: --database
    +AntiVirusParamExample= ClamWin的示例: -  database =“C:\\ Program Files(x86)\\ ClamWin \\ lib”
     ComptaSetup=会计模块设置
     UserSetup=用户管理设置
     MultiCurrencySetup=多币种设置
    @@ -126,16 +126,16 @@ PHPTZ=PHP服务器时区
     DaylingSavingTime=夏令时间
     CurrentHour=PHP 服务器时间
     CurrentSessionTimeOut=当前会话超时
    -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris"
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=插件
     Boxes=插件
    -MaxNbOfLinesForBoxes=插件清单最大数值
    -AllWidgetsWereEnabled=All available widgets are enabled
    +MaxNbOfLinesForBoxes=插件显示行数
    +AllWidgetsWereEnabled=全部插件已启用
     PositionByDefault=默认顺序
     Position=位置
    -MenusDesc=菜单栏管理者设置两个菜单栏内容(包括横向和纵向)
    -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.<br>Some modules add menu entries (in menu <b>All</b> mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module.
    +MenusDesc=菜单管理器定义两菜单中的内容(横向和纵向菜单栏)。
    +MenusEditorDesc=菜单编辑器允许您定义个性化的菜单项。请谨慎使用,以免造成部分菜单项无法访问,影响 Dolibarr 的稳定性。<br>一些模块会添加菜单项(通常在 <b>所有(All)</b>菜单下)。如果您错误的移除了其中的一些菜单项,可以通过禁用/重新启用相应的模块来恢复。
     MenuForUsers=用户菜单
     LangFile=.lang 文件
     System=系统
    @@ -143,15 +143,15 @@ SystemInfo=系统信息
     SystemToolsArea=系统工具区
     SystemToolsAreaDesc=此区域提供管理员功能。请点选菜单来管理你想要的内容。
     Purge=清空
    -PurgeAreaDesc=该页面允许您删除所有由Dolibarr自动生成和储存的文件(临时文件和所有在<b>%s</b>目录里的文件)。不必要使用该功能。它是为那些把Dolibarr安装在第三方的服务器并且没有删除文件权限的使用者提供的一个应急操作。
    -PurgeDeleteLogFile=Delete log files, including <b>%s</b> defined for Syslog module (no risk of losing data)
    -PurgeDeleteTemporaryFiles=删除临时文件(无数据丢失风险)
    +PurgeAreaDesc=此页面允许您删除目录<b>%s</b>或临时文件夹中 Dolibarr 生成或存储的所有文件。通常无需使用此功能。它为Dolibarr托管在服务器上,但服务供应商未提供删除权限的用户而设。
    +PurgeDeleteLogFile=删除系统日志模块定义的日志文件<b>%s</b>(无数据丢失风险)
    +PurgeDeleteTemporaryFiles=删除所有临时文件(无数据丢失风险)
     PurgeDeleteTemporaryFilesShort=删除临时文件
     PurgeDeleteAllFilesInDocumentsDir=删除 <b>%s</b> 目录中的所有文件。临时文件、数据库备份转储文件、系统档案条目(第三方、账单)的附件及 电子文档管理 模块中上传的文件。
     PurgeRunNow=立即清空
     PurgeNothingToDelete=未删除目录或文件
     PurgeNDirectoriesDeleted=<b>%s</b> 个文件或目录删除。
    -PurgeNDirectoriesFailed=Failed to delete <b>%s</b> files or directories.
    +PurgeNDirectoriesFailed=删除 <b>%s</b>文件或目录失败
     PurgeAuditEvents=清空所有安全事件
     ConfirmPurgeAuditEvents=您确定要清除所有安全事件吗?所有安全日志将被删除,但不会删除其他数据。
     GenerateBackup=生成备份
    @@ -187,33 +187,33 @@ ExtendedInsert=扩展 INSERT
     NoLockBeforeInsert=INSERT 命令前后没有锁定命令
     DelayedInsert=延迟插入
     EncodeBinariesInHexa=二进制数据以十六进制编码
    -IgnoreDuplicateRecords=忽略错误的重复记录(插入忽略)
    +IgnoreDuplicateRecords=忽略重复记录错误(INSERT IGNORE)
     AutoDetectLang=自动检测(浏览器的语言)
     FeatureDisabledInDemo=功能在演示版中已禁用
    -FeatureAvailableOnlyOnStable=Feature only available on official stable versions
    -BoxesDesc=小组件展示一些可以添加到您个人页面的信息。您可以通过选择目标页面点击“激活”或关闭按钮来选择显示或关闭这些小组件。
    +FeatureAvailableOnlyOnStable=功能仅适用于官方稳定版本
    +BoxesDesc=资讯框是一些页面中显示信息的屏幕区域。你可以选择目标页面并点击“启用”或垃圾桶按钮来显示或禁用这些信息域。
     OnlyActiveElementsAreShown=仅显示 <a href="%s">已启用模块</a> 的元素。
    -ModulesDesc=Dolibarr 模块定义在软件中启用了哪些应用程序/功能。部分模块/应用在激活后必须授予用户使用权限。单击“状态”列中的开/关按钮来启用或禁用模块/功能。
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=你能在外部互联网查找到并下载更多的功能模块...
    -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab <strong>%s</strong>.
    -ModulesMarketPlaces=更多应用/模块
    -ModulesDevelopYourModule=Develop your own app/modules
    -ModulesDevelopDesc=You can develop or find a partner to develop for you, your personalised module
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
    +ModulesMarketPlaces=更多模块...
    +ModulesDevelopYourModule=开发自己的模块
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=新建
    -FreeModule=Free
    -CompatibleUpTo=Compatible with version %s
    -NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
    -CompatibleAfterUpdate=This module requires an update to your Dolibarr %s (Min %s - Max %s).
    -SeeInMarkerPlace=See in Market place
    -Updated=Updated
    -Nouveauté=Novelty
    -AchatTelechargement=Buy / Download
    -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at <a href="%s">%s</a>.
    +FreeModule=空余
    +CompatibleUpTo=与版本%s兼容
    +NotCompatible=此模块似乎与您的Dolibarr %s(Min %s  -  Max %s)不兼容。
    +CompatibleAfterUpdate=此模块需要更新Dolibarr %s(Min %s  -  Max %s)。
    +SeeInMarkerPlace=在市场上看到
    +Updated=已更新
    +Nouveauté=新颖
    +AchatTelechargement=购买/下载
    +GoModuleSetupArea=要部署/安装新模块,请转到<a href="%s"> %s </a>上的模块设置区域。
     DoliStoreDesc=DoliStore,为 Dolibarr 的 ERP/CRM 的外部模块官方市场
    -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project)
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
     WebSiteDesc=参考网址查找更多模块...
    -DevelopYourModuleDesc=Some solutions to develop your own module...
    +DevelopYourModuleDesc=一些开发自己模块的解决方案......
     URL=链接
     BoxesAvailable=插件可用
     BoxesActivated=插件已启用
    @@ -221,78 +221,82 @@ ActivateOn=启用
     ActiveOn=启用
     SourceFile=来源文件
     AvailableOnlyIfJavascriptAndAjaxNotDisabled=仅当 JavaScript 启用时可用
    -Required=必须
    -UsedOnlyWithTypeOption=仅使用部分日程选项
    +Required=必要
    +UsedOnlyWithTypeOption=仅供某些议程选项使用
     Security=安全
     Passwords=密码
     DoNotStoreClearPassword=不在数据库中储存明文密码,只存储加密后的密码(建议启用)
     MainDbPasswordFileConfEncrypted=加密 conf.php 中的数据库密码(推荐启用)
    -InstrucToEncodePass=如果要在<b>conf.php</b>中使用明文密码,请将<br><b>$dolibarr_main_db_pass="...";</b><br>替换为br><b>$dolibarr_main_db_pass="crypted:%s";</b>
    -InstrucToClearPass=如果要在<b>conf.php</b>中使用明文密码,请将<br><b>$dolibarr_main_db_pass="crypted:...";</b><br>替换为<br><b>$dolibarr_main_db_pass="%s";</b>
    -ProtectAndEncryptPdfFiles=保护生成的PDF文件(不推荐,影响PDF的批量生成)
    +InstrucToEncodePass=要将 <b>conf.php</b> 文件中的密码加密,替换行 <br><b>$ dolibarr_main_db_pass="..."</b><br> 为 <br><b>$dolibarr_main_db_pass="crypted:%s"</b>
    +InstrucToClearPass=要在<b>conf.php</b>文件中使用将明文密码,替换行<br><b>$ dolibarr_main_db_pass="crypted:..."</b><br>为<br><b>$dolibarr_main_db_pass="%s"</b>
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=PDF保护允许在PDF浏览器中阅读和打印PDF,但无法编辑和复制内容。请注意,使用此功能将导致生成全局多页合并PDF的功能无效(例如未支付账单)。
    -Feature=功能特色
    +Feature=功能
     DolibarrLicense=授权
    -Developpers=开发商/贡献者
    +Developpers=开发者/贡献者
     OfficialWebSite=Dolibarr 国际官方网站
     OfficialWebSiteLocal=内部网站 (%s)
     OfficialWiki=Dolibarr Wiki 上的文档
     OfficialDemo=Dolibarr在线演示
    -OfficialMarketPlace=官方市场提供外部扩展模型/模块
    +OfficialMarketPlace=官方市场提供外部模块/扩展
     OfficialWebHostingService=引用网络托管服务(云主机)
     ReferencedPreferredPartners=首选合作伙伴
    -OtherResources=Other resources
    -ExternalResources=External resources
    -SocialNetworks=Social Networks
    +OtherResources=其他资源
    +ExternalResources=外部资源
    +SocialNetworks=社交网络
     ForDocumentationSeeWiki=用户或开发人员用文档(文档,常见问题…),<br>参见 Dolibarr 百科:<br><b><a href="%s" target="_blank">%s</a></b>
     ForAnswersSeeForum=您有任何其他问题/帮助,可以到 Dolibarr 论坛: <br> <b><a href="%s" target="_blank">%s</a></b>简体中文翻译可到Dolibarr爱好者交流Q群技术交流:206239089
    -HelpCenterDesc1=此处可以帮助你获得 Dolibarr 帮助支持服务。
    -HelpCenterDesc2=此服务的一些部分,<b>仅有英文</b> 可用。
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=此资源的一些部分,<b>仅有英文</b> 可用。
     CurrentMenuHandler=当前菜单处理程序
     MeasuringUnit=计量单位
    -LeftMargin=Left margin
    -TopMargin=Top margin
    -PaperSize=Paper type
    -Orientation=Orientation
    -SpaceX=Space X
    -SpaceY=Space Y
    -FontSize=Font size
    -Content=Content
    -NoticePeriod=通知期限
    -NewByMonth=New by month
    +LeftMargin=左页边距
    +TopMargin=顶页边距
    +PaperSize=纸张类型
    +Orientation=方向
    +SpaceX=空间X.
    +SpaceY=空间Y.
    +FontSize=字体大小
    +Content=内容
    +NoticePeriod=通知期
    +NewByMonth=按月新增
     Emails=电子邮件
     EMailsSetup=电子邮件设置
    -EMailsDesc=This page allows you to overwrite your PHP parameters for emails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless.
    -EmailSenderProfiles=Emails sender profiles
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
    +EmailSenderProfiles=电子邮件发件人资料
     MAIN_MAIL_SMTP_PORT=SMTP/SMTPS 端口 ( php.ini 文件中的默认值:<b>%s</b>)
     MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS 主机 ( php.ini 文件中的默认值:<b>%s</b>)
     MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS 端口 ( Unix 类系统下未在 PHP 中定义)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS 主机 ( Unix 类系统下未在 PHP 中定义)
    -MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (By default in php.ini: <b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=Eemail used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
     MAIN_MAIL_AUTOCOPY_TO= BCC 所有发送邮件至
    -MAIN_DISABLE_ALL_MAILS=Disable all emails sendings (for test purposes or demos)
    -MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employees users with email into allowed destinaries list
    -MAIN_MAIL_SENDMODE=电邮发送方法
    -MAIN_MAIL_SMTPS_ID=SMTP ID,如果要求验证
    -MAIN_MAIL_SMTPS_PW=SMTP 密码,如果要求验证
    -MAIN_MAIL_EMAIL_TLS= 使用 TLS(SSL)加密
    -MAIN_MAIL_EMAIL_STARTTLS= 使用 TLS(SSL)加密
    -MAIN_DISABLE_ALL_SMS=禁用所有短信发送(用于测试目的或演示)
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
    +MAIN_MAIL_FORCE_SENDTO=发送电子邮件至(替换真正的收件人,用于测试目的)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=短信发送方法
    -MAIN_MAIL_SMS_FROM=发送短信的默认发件人号码
    -MAIN_MAIL_DEFAULT_FROMTYPE=Sender email by default for manual sendings (User email or Company email)
    -UserEmail=User email
    -CompanyEmail=Company email
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=Default sender email for manual sending (User email or Company email)
    +UserEmail=用户邮箱
    +CompanyEmail=公司邮箱
     FeatureNotAvailableOnLinux=功能在 Unix 类系统下不可用。请在本地测试您的sendmail程序。
    -SubmitTranslation=如果您发现当前语言的翻译不完整或有误,您可以通过编辑 <b>langs/%s</b> 文件更正它,并将修改后的文件提交至  www.transifex.com/dolibarr-association/dolibarr/
    -SubmitTranslationENUS=如果您发现当前语言的翻译不完整或有误,您可以通过编辑 <b>langs/%s</b> 文件更正它,并将修改后的文件提交至 dolibarr.org/forum 或github开发者 github.com/Dolibarr/dolibarr.
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslationENUS=如果您发现当前语言的翻译不完整或有误,您可以通过编辑 <b>langs/%s</b> 文件更正它,并将修改后的文件提交至  www.transifex.com/dolibarr-association/dolibarr/(或者提交至QQ群:206239089)
     ModuleSetup=模块设置
    -ModulesSetup=Modules/Application setup
    +ModulesSetup=模块设置
     ModuleFamilyBase=系统
     ModuleFamilyCrm=客户关系管理(CRM)
    -ModuleFamilySrm=Vendor Relation Management (VRM)
    +ModuleFamilySrm=供应商关系管理(VRM)
     ModuleFamilyProducts=产品管理
     ModuleFamilyHr=人力资源管理 (HR)
     ModuleFamilyProjects=项目/协同工作
    @@ -301,63 +305,63 @@ ModuleFamilyTechnic=多模块工具
     ModuleFamilyExperimental=试验性模块
     ModuleFamilyFinancial=财务模块(会计/金库)
     ModuleFamilyECM=电子文档管理(ECM)
    -ModuleFamilyPortal=网页和其他正面应用程序
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=系统外部扩展接口
     MenuHandlers=菜单处理程序
     MenuAdmin=菜单编辑器
     DoNotUseInProduction=请勿用于生产环境
     ThisIsProcessToFollow=步骤如下:
    -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually:
    +ThisIsAlternativeProcessToFollow=这是手动处理的替代设置:
     StepNb=第 %s 步
    -FindPackageFromWebSite=搜索你需要的功能(例如在官方 %s )。
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=下载安装包 (例如从官方网站上 %s)
    -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: <b>%s</b>
    -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: <b>%s</b>
    -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: <a href="%s">%s</a>.
    -NotExistsDirect=The alternative root directory is not defined to an existing directory.<br>
    -InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.<br>Just create a directory at the root of Dolibarr (eg: custom).<br>
    -InfDirExample=<br>Then declare it in the file <strong>conf.php</strong><br> $dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>If these lines are commented with "#", to enable them, just uncomment by removing the "#" character.
    -YouCanSubmitFile=For this step, you can submit the .zip file of module package here :
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
    +NotExistsDirect=未设置可选备用根目录。<br>
    +InfDirAlt=自 v3 版本开始,Dolibarr 可以定义备用根目录地址。这令您可以将插件和自定义模板保存至同一位置。<br>您只需在Dolibarr的根目录下创建一个目录(例如custom)。<br>
    +InfDirExample=<br>然后在文件<strong> conf.php</strong>中声明它。<br> $ dolibarr_main_url_root_alt ='/ custom'<br> $ dolibarr_main_document_root_alt ='/ path / of / dolibarr / htdocs / custom'<br>如果这些行用“#”注释,要启用它们,只需删除“#”字符即可取消注释。
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr 当前版本
    -CallUpdatePage=升级更新数据库和数据请到: %s.
    +CallUpdatePage=请到数据库的结构和数据更新页面:%s。
     LastStableVersion=最新稳定版
    -LastActivationDate=Latest activation date
    -LastActivationAuthor=Latest activation author
    -LastActivationIP=Latest activation IP
    +LastActivationDate=最新激活日期
    +LastActivationAuthor=最新激活作者
    +LastActivationIP=最新激活IP
     UpdateServerOffline=离线升级服务器
    -WithCounter=Manage a counter
    -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:<br><b>{000000}</b> corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask. <br><b>{000000+000}</b> same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s. <br><b>{000000@x}</b> same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required. <br><b>{dd}</b> day (01 to 31).<br><b>{mm}</b> month (01 to 12).<br><b>{yy}</b>, <b>{yyyy}</b> or <b>{y}</b> year over 2, 4 or 1 numbers. <br>
    -GenericMaskCodes2=<b>{cccc}</b> the client code on n characters<br><b>{cccc000}</b> the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.<br><b>{tttt}</b> The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.<br>
    +WithCounter=管理柜台
    +GenericMaskCodes=您可自由设置格式掩码。在 %s 格式掩码中, 有如下计数标记可用:<br><b>{000000}</b>表示按顺序递增的序号。序号位数与掩码中0的个数相同,不足自动补零,达最大值后自动归零。<br><b>{000000+000}</b> 同上但 %s 起始序号从 + 后的数值记起。<br><b>{000000@x}</b> 与第一种相同,但序号到X月时自动清零(x=1~12 、0=程序设置中的财年起始月、99=每月清零)。 如果使用此种掩码且 x >= 2 ,则必须同时使用日期掩码 {yy}{mm} 或 {yyyy}{mm}。<br><b>{dd}</b> 天 (01~31)。<br><b>{mm}</b> 月 (01~12)。<br><b>{yy}</b>,<b>{yyyy}</b> 或 <b>{y}</b> 代表 2位, 4位 或 1 位年。<br><br>
    +GenericMaskCodes2=<b>{cccc}</b> 客户代码<br><b>{cccc000}</b> 客户代码ccc后跟客户引用序号000。<br><b>{tttt}></b> 公司类型代码。(参见公司类型的下拉菜单项目列表)。<br>
     GenericMaskCodes3=其它非标记字符将维持不变。<br>不允许使用空格<br>
    -GenericMaskCodes4a=<u>Example on the 99th %s of the third party TheCompany, with date 2007-01-31:</u><br>
    -GenericMaskCodes4b=<u>例如合伙人创建于 2007-03-01:</u><br>
    +GenericMaskCodes4a=<u>例如: 2007-01-31 第三方“TheCompany”的第99笔 %s :</u> <br>
    +GenericMaskCodes4b=<u>例如合作方创建于 2007-03-01:</u><br>
     GenericMaskCodes4c=<u>例如: 于 2007-03-1 建立的产品资料:</u><br>
    -GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> will give <b>ABC0701-000099</b><br><b>{0000+100@1}-ZZZ/{dd}/XXX</b> will give <b>0199-ZZZ/31/XXX</b><br><b>IN{yy}{mm}-{0000}-{t}</b> will give <b>IN0701-0099-A</b> if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI'
    +GenericMaskCodes5=格式掩码: <b>ABC{yy}{mm}-{000000}</b> 将生成编号 <b>ABC0701-000099</b><br> 格式掩码:<b>{0000+100}-ZZZ/{dd}/XXX</b> 将生成编号 <b>0199-ZZZ/31/XXX</b>
     GenericNumRefModelDesc=根据事先定义的格式掩码,返回一个可定制编号,详见说明。
     ServerAvailableOnIPOrPort=可用服务器地址: <b>%s:</b><b>%s</b>
     ServerNotAvailableOnIPOrPort=服务器地址: <b>%s:</b><b>%s</b> 不可用
     DoTestServerAvailability=测试服务器连通性
     DoTestSend=测试发送
     DoTestSendHTML=测试发送 HTML
    -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask.
    +ErrorCantUseRazIfNoYearInMask=错误,如果序列{yy}或{yyyy}不在掩码中,则不能使用选项@来重置计数器。
     ErrorCantUseRazInStartedYearIfNoYearMonthInMask=错误,格式掩码中标记 @ 必须与{yy}{mm}或{yyyy}{mm}同时使用。
     UMask=Unix/Linux/BSD 文件系统下新文件的 umask 参数。
     UMaskExplanation=定义服务器上 Dolibarr 创建文件的默认权限(例如上传的文件)。<br>它必须是八进制值(例如,0666就表示人人可读可写)。 <br>此参数对Windows服务器无效。
    -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organization
    +SeeWikiForAllTeam=全部参与者及其机构的完整列表参见wiki页面
     UseACacheDelay= 缓存导出响应的延迟时间(0或留空表示禁用缓存)
     DisableLinkToHelpCenter=隐藏登陆页面中的“<b>需要帮助或支持</b>”链接
     DisableLinkToHelp=隐藏在线帮助链接 "<b>%s</b>"
    -AddCRIfTooLong=注意:没有自动换行功能,所以如果一行文字太长会超出纸张,请务必按下Enter键换行。
    -ConfirmPurge=Are you sure you want to execute this purge?<br>This will delete definitely all your data files with no way to restore them (ECM files, attached files...).
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=最小长度
     LanguageFilesCachedIntoShmopSharedMemory=文件 .lang 已加载到共享内存
    -LanguageFile=Language file
    -ExamplesWithCurrentSetup=当前运行设置的实例
    +LanguageFile=语言文件
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=开源办公软件文档模板目录列表
     ListOfDirectoriesForModelGenODT=包含开源办公软件的格式的文档的模板目录列表。<br><br>请在此填写完整的目录路径。<br>每填写一个目录路径结尾按回车换行。<br>添加一个 GED 模块目录, 如下 <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>。<br><br>该目录中的文件格式必须是 <b>.odt</b> 格式或 <b>.ods</b>格式。
    -NumberOfModelFilesFound=这些目录中发现的 ODT/ODS 格式的模板文件数量
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=参考语法格式:<br>c:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
    -FollowingSubstitutionKeysCanBeUsed=<br>了解如何建立和保存ODT文件范本到指定目录,请阅读说明文档:
    +FollowingSubstitutionKeysCanBeUsed=<br>要知道如何建立您的ODT文件范本并储存在指定目录,请至wiki网站:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
     FirstnameNamePosition=姓 /名 位置顺序
     DescWeather=当事件逾期/延误达到以下数值范围时,主看板将显示如下图标:
    @@ -365,141 +369,143 @@ KeyForWebServicesAccess=使用 SOAP 服务的密钥 (webservices 中的"dolibarr
     TestSubmitForm=可在以下表单输入资料来测试
     ThisForceAlsoTheme=使用此菜单管理器将同时使用其主题,无论用户如何设置。同时此菜单管理器专为智能手机而设计但并不适用于所有手机。如果您的手机上使用有问题请选择其它主题。
     ThemeDir=主题目录
    -ConnectionTimeout=连接超时
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=响应超时
     SmsTestMessage=测试消息从 __PHONEFROM__ 至 __ PHONETO__
     ModuleMustBeEnabledFirst=必须先行激活启用 <b>%s</b> 模块如果你需要使用这个功能的话。
     SecurityToken=保护URL链接的密钥
    -NoSmsEngine=无短信发送管理程序可用。SMS发件人管理器没有安装默认分布 (因为他们依赖于一个外部供应商) 但你能在这儿找到一些 %s
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF格式
    -PDFDesc=你可以设置PDF生成有关的每个全局选项
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=PDF 中地址生成规则
    -HideAnyVATInformationOnPDF=Hide all information related to Sales tax / VAT on generated PDF
    -PDFRulesForSalesTax=Rules for Sales Tax / VAT
    -PDFLocaltax=Rules for %s
    -HideLocalTaxOnPDF=Hide %s rate into pdf column tax sale
    -HideDescOnPDF=生成 PDF 中隐藏产品描述信息
    -HideRefOnPDF=隐藏生成 PDF 中的产品编号
    -HideDetailsOnPDF=在生成的PDF文档中隐藏产品详情
    -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position
    +HideAnyVATInformationOnPDF=生成的PDF中隐藏税率的信息
    +PDFRulesForSalesTax=销售税/增值税规则
    +PDFLocaltax=%s的规则
    +HideLocalTaxOnPDF=将%s税率隐藏到pdf栏税收销售中
    +HideDescOnPDF=生成的PDF 中隐藏产品描述信息
    +HideRefOnPDF=生成的PDF 中的隐藏产品编号
    +HideDetailsOnPDF=生成的PDF中隐藏产品详情
    +PlaceCustomerAddressToIsoLocation=使用法国标准位置(La Poste)作为客户地址位置
     Library=资料库
     UrlGenerationParameters=URL地址的保护参数
     SecurityTokenIsUnique=为每个URL使用唯一的securekey参数值
     EnterRefToBuildUrl=输入对象 %s 的编号
     GetSecuredUrl=获取算得的URL地址
    -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=以前的增值税率(VAT)
     NewVATRates=新建增值税率(VAT)
     PriceBaseTypeToChange=设置了基本参考价值的产品的价格
     MassConvert=执行批量转换
     String=字符串
    -TextLong=Long text 长文本型
    -HtmlText=Html text
    +TextLong=长文本
    +HtmlText=Html文字
     Int=整型
     Float=浮点型
     DateAndTime=日期与小时
     Unique=唯一
    -Boolean=Boolean (one checkbox)
    +Boolean=布尔值(复选框)
     ExtrafieldPhone = 电话
     ExtrafieldPrice = 价格
     ExtrafieldMail = 电子邮件
    -ExtrafieldUrl = Url
    +ExtrafieldUrl = 网址
     ExtrafieldSelect = 选择列表
     ExtrafieldSelectList = 从表格中选取
    -ExtrafieldSeparator=Separator (not a field)
    +ExtrafieldSeparator=分隔符(不是字段)
     ExtrafieldPassword=密码
    -ExtrafieldRadio=Radio buttons (on choice only)
    -ExtrafieldCheckBox=Checkboxes
    -ExtrafieldCheckBoxFromList=Checkboxes from table
    -ExtrafieldLink=连接到项目
    -ComputedFormula=Computed field
    -ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=Keep this field empty means value will be stored without encryption (field must be only hidden with star on screen).<br>Set here value 'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retreive original value)
    -ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list :<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list :<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
    -ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    -ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example : <br>1,value1<br>2,value2<br>3,value3<br>...
    -ExtrafieldParamHelpsellist=List of values comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>- idfilter is necessarly a primary int key<br>- filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    -ExtrafieldParamHelpchkbxlst=List of values comes from a table<br>Syntax : table_name:label_field:id_field::filter<br>Example : c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax  extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list :<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
    -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax : ObjectName:Classpath<br>Examples :<br>Societe:societe/class/societe.class.php<br>Contact:contact/class/contact.class.php
    +ExtrafieldRadio=Radio buttons (one choice only)
    +ExtrafieldCheckBox=复选框
    +ExtrafieldCheckBoxFromList=表格中的复选框
    +ExtrafieldLink=连接到对象
    +ComputedFormula=计算字段
    +ComputedFormulaDesc=您可以使用对象的其他属性或任何PHP编码在此输入公式以获得动态计算值。您可以使用任何PHP兼容的公式,包括“?”条件运算符,并跟随全局对象:<strong> $ db,$ conf,$ langs,$ mysoc,$ user,$ object</strong>。<br> <strong>警告</strong>:只有$object的某些属性可能是可用的。如果你需要一个未加载的属性,只需在第二个例子中自己将对象提取到公式中。<br>使用计算字段意味着你无法从界面输入任何值。此外,如果存在语法错误,则公式可能不返回任何内容。<br> <br>公式示例:<br> $ object-> id <10? round($ object-> id / 2,2):( $ object-> id + 2 * $ user-> id)*(int)substr($ mysoc-> zip,1,2)<br> <br>重新加载对象的示例<br>(($ reloadedobj = new Societe($ db))&&($ reloadedobj-> fetch($ obj-> id?$ obj-> id:($ obj-> rowid?$ obj-> rowid:$ object-> id))> 0))? $ reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5:' -  1'<br> <br> 强制加载对象及其父对象的公式的其他示例:<br>($ reloadedobj = new Task($ db))&&($ reloadedobj-> fetch($ object-> id)> 0)&&($ secondloadedobj = new Project($ db))&&($ secondloadedobj-> fetch($ reloadedobj-> fk_project )> 0))? $ secondloadedobj-> ref:'未找到父项目'
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
    +ExtrafieldParamHelpselect=值列表必须是格式为键/值对的行(其中键不能为'0')<br> <br>\n例如: <br>  1,value1<br> 2,value2 <br> code3,value3 <br>... <br> <br>\n 为了使列表具有另一个补充属性列表: <br> 1,value1 | options_<i>parent_list_code </i>:parent_key <br> 2,value2 | options_<i>parent_list_code</i> :parent_key<br><br>\n为了使列表依赖于另一个列表:   <br> 1,value1 | <i> parent_list_code</i>:parent_key<br> 2,value2 | <i> parent_list_code </i>:parent_key
    +ExtrafieldParamHelpcheckbox=值列表必须是格式为键/值对(其中键不能为'0')<br> <br>例如: <br> 1,value1 <br> 2,value2 <br>3,value3<br> ...
    +ExtrafieldParamHelpradio=值列表必须是格式为键/值对(其中键不能为'0')<br> <br>  例如:<br> 1,value1 <br> 2,value2 <br> 3,value3<br> ...
    +ExtrafieldParamHelpsellist=参数列表来自一个表<br>语法 : table_name:label_field:id_field::filter<br>例如 : c_typent:libelle:id::filter<br><br>过滤器可以是一个简单的测试 (eg active=1) 只显示活动值<br>你也可以使用 $ID$ 在当前id过滤器当前对象<br>用 SELECT 过滤器 $SEL$<br>如果你想在 extrafields 过滤器使用语法  extra.fieldcode=... (哪里栏位代码 extrafield)<br><br>为了有列表取决于另一个 :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
    +ExtrafieldParamHelpchkbxlst=参数列表来自一个表<br>语法 : table_name:label_field:id_field::filter<br>例如 : c_typent:libelle:id::filter<br><br>过滤器可以是一个简单的测试 (eg active=1) 只显示活动值<br>你也可以使用 $ID$ 在当前id过滤器当前对象<br>用 SELECT 过滤器 $SEL$<br>如果你想在 extrafields 过滤器使用语法  extra.fieldcode=... (哪里栏位代码 extrafield)<br><br>为了有列表取决于另一个 :<br>c_typent:libelle:id:parent_list_code|parent_column:filter
    +ExtrafieldParamHelplink=参数必须是ObjectName:Classpath <br>语法:ObjectName:Classpath <br>示例:<br> Societe:societe / class / societe.class.php <br>联系人:contact / class / contact.class.php
     LibraryToBuildPDF=已使用资料库以支持生成PDF文件
    -LocalTaxDesc=一些国家适用于每个发票行2或3的税。如果是这样的情况下,选择的类型的第二和第三税和其速率。可能的类型有: <br> 1:地方税适用的产品和服务,而增值税(localtax的计算量不含税) <br> 2:地方税适用的产品和服务,包括增值税(localtax的计算量+纳税主体) <br> 3:地方税适用的产品不含增值税(localtax的计算量不含税) <br> 4:地方税适用的产品包括增值税(localtax的计算量+主缸) <br> 5:地方税适用于服务,而增值税(localtax的计算量不含税) <br> 6:地方税适用于服务包括增值税(localtax的计算量+税)
    +LocalTaxDesc=在一些国家,每个账单行有 2 或 3 项税。(大陆不适用)如果是这样,请选择第二和第三项税的类型及税率。Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax)
     SMS=短信
     LinkToTestClickToDial=输入一个电话号码来为用户显示网络电话网址测试功能 <strong>%s</strong>
     RefreshPhoneLink=刷新链接
    -LinkToTest=为用户生成的可访问链接 strong>%s</strong> (单击电话号码来测试)
    +LinkToTest=为用户生成的可访问链接<strong>%s</strong> (单击电话号码来测试)
     KeepEmptyToUseDefault=不填表示使用默认值
     DefaultLink=默认链接
     SetAsDefault=设为默认
     ValueOverwrittenByUserSetup=警告,此设置可能被用户设置所覆盖(用户可以设置各自的网络电话链接)
     ExternalModule=附加模块 - 安装于 %s 目录下
    -BarcodeInitForThirdparties=合伙人条码批量初始化
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=产品或服务条码批量初始化或重置
    -CurrentlyNWithoutBarCode=Currently, you have <strong>%s</strong> record on <strong>%s</strong> %s without barcode defined.
    -InitEmptyBarCode=Init value for next %s empty records
    +CurrentlyNWithoutBarCode=目前,您在<strong> %s </ strong> %s上没有定义条形码时有<strong> %s </ strong>记录。
    +InitEmptyBarCode=初始值为下一个%s空记录
     EraseAllCurrentBarCode=抹掉现存所有条码值
    -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values?
    -AllBarcodeReset=所有现存条码值已经被抹掉
    -NoBarcodeNumberingTemplateDefined=条码编号模版在条形码模块中没有被启用。
    +ConfirmEraseAllCurrentBarCode=您确定要删除所有当前条形码值吗?
    +AllBarcodeReset=所有现存条码值已经被删除
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=启用文件缓存
    -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number).
    +ShowDetailsInPDFPageFoot=在PDF文件的页脚中添加更多详细信息,例如公司地址或经理姓名(以填写专业ID,公司资本和增值税号)。
     NoDetails=页脚无更多详情
     DisplayCompanyInfo=显示公司地址
    -DisplayCompanyManagers=显示管理员名称
    -DisplayCompanyInfoAndManagers=Display company address and manager names
    -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible.
    -ModuleCompanyCodeCustomerAquarium=%s followed by third party customer code for a customer accounting code
    -ModuleCompanyCodeSupplierAquarium=%s followed by third party supplier code for a supplier accounting code
    -ModuleCompanyCodePanicum=Return an empty accounting code.
    -ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code.
    -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
    -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
    -WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
    -WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
    -ClickToShowDescription=Click to show description
    -DependsOn=This module need the module(s)
    -RequiredBy=This module is required by module(s)
    -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field.
    -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples:
    -PageUrlForDefaultValuesCreate=<br>For form to create a new thirdparty, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>For page that list thirdparties, it is <strong>%s</strong>,<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    -EnableDefaultValues=Enable usage of personalized default values
    -EnableOverwriteTranslation=Enable usage of overwrote translation
    -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation.
    -WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
    -Field=栏位
    -ProductDocumentTemplates=Document templates to generate product document
    -FreeLegalTextOnExpenseReports=Free legal text on expense reports
    -WatermarkOnDraftExpenseReports=Watermark on draft expense reports
    -AttachMainDocByDefault=Set this to 1 if you want to attach main document to email by default (if applicable)
    -FilesAttachedToEmail=Attach file
    -SendEmailsReminders=Send agenda reminders by emails
    -davDescription=Add a component to be a DAV server
    -DAVSetup=Setup of module DAV
    -DAV_ALLOW_PUBLIC_DIR=Enable the public directory (WebDav directory with no login required)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DisplayCompanyManagers=显示经理姓名
    +DisplayCompanyInfoAndManagers=显示公司地址和经理姓名
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
    +ModuleCompanyCodePanicum=返回一个空的科目代码
    +ModuleCompanyCodeDigitaria=科目代码取决于合作方的代码。代码以C开头,后跟合作方代码的 5 个字符
    +Use3StepsApproval=默认情况下,需要由2个不同的用户创建和批准采购订单(一步/用户创建和一步/用户批准。请注意,如果用户同时拥有创建和批准权限,则一步/用户就足够了) 。如果金额高于专用值,您可以要求使用此选项引入第三步/用户批准(因此需要3个步骤:1 =验证,2 =首次批准,3 =如果金额足够则为第二批准)。 <br>如果一个批准(2个步骤)足够,则将其设置为空,如果始终需要第二个批准(3个步骤),则将其设置为非常低的值(0.1)。
    +UseDoubleApproval=当金额(不含税)高于......时,使用3步批准
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
    +WarningPHPMail2=如果您的电子邮件SMTP提供商需要将电子邮件客户端限制为某些IP地址(非常罕见),则这是您的ERP CRM应用程序的邮件用户代理(MUA)的IP地址:<strong> %s</strong>。
    +ClickToShowDescription=单击以显示说明
    +DependsOn=This module needs the module(s)
    +RequiredBy=本模块被以下模块需要
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +EnableDefaultValues=启用个性化默认值的使用
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
    +WarningSettingSortOrder=警告,如果字段是未知字段,则在列表页面上设置默认排序顺序可能会导致技术错误。如果遇到此类错误,请返回此页面以删除默认排序顺序并恢复默认行为。
    +Field=字段
    +ProductDocumentTemplates=文档模板以生成产品文档
    +FreeLegalTextOnExpenseReports=费用报告中的免费法律文本
    +WatermarkOnDraftExpenseReports=草稿费用报告上的水印
    +AttachMainDocByDefault=如果要在默认情况下将主文档附加到电子邮件,请将此项设置为1(如果适用)
    +FilesAttachedToEmail=附加文件
    +SendEmailsReminders=通过电子邮件发送议程提醒
    +davDescription=添加组件作为DAV服务器
    +DAVSetup=模块DAV的设置
    +DAV_ALLOW_PUBLIC_DIR=启用公共目录(不需要登录的WebDav目录)
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=Enable the root directy of DMS/ECM module (login required)
    +DAV_ALLOW_ECM_DIRTooltip=The root directory where all files are manually uploaded when using the DMS/ECM module. Like for the feature from the web interface, you will need a valid login/password with granted permissions to access it.
     # Modules
     Module0Name=用户和组
    -Module0Desc=Users / Employees and Groups management
    -Module1Name=合伙人
    -Module1Desc=公司和联络人管理(客户、准客户潜在客户...等等)模块
    +Module0Desc=用户/员工和组管理
    +Module1Name=Third Parties
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=商业交易
     Module2Desc=交易管理
     Module10Name=会计
    -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. Does not use any ledger table.
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=报价
     Module20Desc=报价管理模块
     Module22Name=邮件群发
     Module22Desc=电子邮件群发的管理
     Module23Name=能耗
     Module23Desc=能耗监测
    -Module25Name=客户订单
    -Module25Desc=客户订单管理模块
    +Module25Name=销售订单
    +Module25Desc=销售订单管理
     Module30Name=发票
    -Module30Desc=客户发票和信用记录管理。供应商发票管理。
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=供应商
    -Module40Desc=Suppliers and purchase management (purchase orders and billing)
    -Module42Name=Debug Logs
    -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes.
    +Module40Desc=供应商和采购管理(采购订单和账单)
    +Module42Name=调试日志
    +Module42Desc=记录设施(文件,系统日志,......)。此类日志用于技术/调试目的。
     Module49Name=编辑器
     Module49Desc=编辑器管理
     Module50Name=产品
    @@ -511,13 +517,13 @@ Module52Desc=产品库存的管理
     Module53Name=服务
     Module53Desc=服务的管理
     Module54Name=联系人/订阅
    -Module54Desc=联系人管理(服务或常规订阅)模块
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=条码
     Module55Desc=条码管理
     Module56Name=电话
     Module56Desc=电话整合
    -Module57Name=Direct bank payment orders
    -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries.
    +Module57Name=长期订单
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=网络电话
     Module58Desc=网络电话系统集成(Asterisk ...)
     Module59Name=Bookmark4u
    @@ -528,108 +534,112 @@ Module75Name=差旅费用记录
     Module75Desc=费用和差旅记录的管理
     Module80Name=运输
     Module80Desc=运输和交货单快递单管理模块
    -Module85Name=银行和现金
    +Module85Name=Banks and Cash
     Module85Desc=银行或现金帐户管理
    -Module100Name=外部站点
    -Module100Desc=此模块添加外部网站链接或页面到 Dolibarr 的菜单或页面框架中
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman 及 SPIP
     Module105Desc=会员模块的 Mailman 或 SPIP 接口
     Module200Name=LDAP
    -Module200Desc=LDAP目录同步
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke 整合
     Module240Name=数据导出
    -Module240Desc=将数据从Dolibarr导出的工具(助手)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=数据导入
    -Module250Desc=将数据导入Dolibarr的工具(助手)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=会员
     Module310Desc=机构会员管理模块
     Module320Name=RSS 源
     Module320Desc=添加 RSS 源至 Dolibarr 主屏幕页面
    -Module330Name=书签
    -Module330Desc=书签管理
    -Module400Name=项目/机会/线索
    -Module400Desc=Management of projects, opportunities/leads and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    -Module410Name=Webcalendar
    -Module410Desc=Webcalendar 整合
    -Module500Name=Taxes and Special expenses
    -Module500Desc=Management of other expenses (sale taxes, social or fiscal taxes, dividends, ...)
    -Module510Name=Payment of employee wages
    -Module510Desc=Record and follow payment of your employee wages
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=Projects or Leads
    +Module400Desc=Management of projects, leads/opportunities and/or tasks. You can also assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view.
    +Module410Name=日历
    +Module410Desc=日历整合
    +Module500Name=税、保险、红利、股息管理
    +Module500Desc=管理其他费用(销售税,社会税或财政税,股息......)
    +Module510Name=工资管理
    +Module510Desc=Record and track employee payments
     Module520Name=贷款
     Module520Desc=贷款管理模块
    -Module600Name=Notifications on business events
    -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails
    -Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda.
    -Module610Name=Product Variants
    -Module610Desc=Allows creation of products variant based on attributes (color, size, ...)
    +Module600Name=商业活动通知
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
    +Module610Name=产品变体
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=捐赠
     Module700Desc=捐赠管理模块
     Module770Name=费用报表
    -Module770Desc=管理和索取费用报表 (交通费, 餐费,等等 ...)模块
    -Module1120Name=Vendor commercial proposal
    -Module1120Desc=Request vendor commercial proposal and prices
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
    +Module1120Name=供应商商业提案
    +Module1120Desc=请求供应商商业提案和价格
     Module1200Name=Mantis
     Module1200Desc=Mantis 整合
     Module1520Name=文档生成
     Module1520Desc=生成文档群发邮件
     Module1780Name=标签/分类
    -Module1780Desc=Create tags/category (products, customers, vendors, contacts or members)
    +Module1780Desc=创建标签/类别(产品,客户,供应商,联系人或成员)
     Module2000Name=所见即所得编辑器
    -Module2000Desc=允许以高级富文本的编辑方式来编辑文本内容(基于 CKEditor)
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=动态定价
     Module2200Desc=允许价格的数学表达式
     Module2300Name=计划任务
    -Module2300Desc=Scheduled jobs management (alias cron or chrono table)
    -Module2400Name=Events/Agenda
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2300Desc=预定的工作管理(别名cron或chrono表)
    +Module2400Name=事件/日程
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=DMS / ECM
    -Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need.
    +Module2500Desc=文件管理系统/电子内容管理。自动组织生成或存储的文档。在需要时分享。
     Module2600Name=API/Web 服务 (SOAP 服务器)
     Module2600Desc=允许 Dolibarr SOAP 服务器提供 API 服务
     Module2610Name=API/Web 服务 (REST 服务器)
     Module2610Desc=允许 Dolibarr REST 服务器提供 API 服务
    -Module2660Name=Call WebServices (SOAP client)
    -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment)
    +Module2660Name=调用WebServices(SOAP客户端)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=使用在线 Gravatar 服务(www.gravatar.com),通过搜索电子邮件地址来显示用户/成员的头像。此功能需要连网。
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP 客户端
     Module2900Name=Maxmind网站的GeoIP全球IP地址数据库
     Module2900Desc=Maxmind的geoip数据库的转换能力
     Module3100Name=Skype
    -Module3100Desc=添加 Skype 聊天按钮到用户 / 合伙人 / 联系人 / 会员信息资料卡
    -Module3200Name=Unalterable Archives
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3100Desc=添加 Skype 聊天按钮到用户 / 合作方 / 联系人 / 会员信息资料卡
    +Module3200Name=不可改变的档案
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=人事管理
    -Module4000Desc=Human resources management (management of department, employee contracts and feelings)
    +Module4000Desc=人力资源管理(部门管理,员工合同和感受)
     Module5000Name=多公司
     Module5000Desc=允许你管理多个公司
     Module6000Name=工作流程
    -Module6000Desc=Workflow management (automatic creation of object and/or automatic status change)
    +Module6000Desc=工作流管理(自动创建对象和/或自动状态更改)
     Module10000Name=网站
    -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
    +Module10000Desc=使用WYSIWG编辑器创建公共网站。只需将您的Web服务器(Apache,Nginx,...)设置为指向专用的Dolibarr目录,即可使用您自己的域名在Internet上联机。
     Module20000Name=请假申请管理
    -Module20000Desc=请假申请提交和跟进管理模块
    -Module39000Name=Products lots
    +Module20000Desc=Declare and track employees leave requests
    +Module39000Name=产品很多
     Module39000Desc=产品的批号或序列号,保质期和销售日期管理
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=钱箱
    -Module50000Desc=Module to offer an online payment page accepting payments with Credit/Debit card via PayBox. This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=POS
    -Module50100Desc= (POS)POS模块.
    +Module50100Desc=(POS)POS模块.
    +Module50150Name=POS
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=Module to offer an online payment page accepting payments using PayPal (credit card or PayPal credit). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=会计(高级)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=IPP打印
    -Module54000Desc=不打开文档而使用 Cups IPP 界面直接打印 (打印机必须在服务器可见,Cups 必须安装在服务器上)。
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=问卷, 调查或投票
    -Module55000Desc=该模块将生成在线的问卷, 调查或投票 (类似于 Doodle, Studs, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=利润空间
     Module59000Desc=利润空间管理模块
     Module60000Name=佣金
     Module60000Desc=佣金管理模块
    -Module62000Name=国际贸易术语
    -Module62000Desc=添加功能来管理国际贸易术语
    +Module62000Name=国际贸易术语解释通则
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=资源
     Module63000Desc=资源管理 (打印机, 车辆, 房间, ...)然后你可以分享到活动中
     Permission11=读取销售账单
    @@ -651,9 +661,9 @@ Permission32=创建/变更产品信息
     Permission34=删除产品信息
     Permission36=查看/管理隐藏产品
     Permission38=导出产品信息
    -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks
    -Permission44=删除项目(共享的项目和我参与的项目)
    +Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
    +Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
    +Permission44=Delete projects (shared project and projects I'm contact for)
     Permission45=导出项目
     Permission61=读取干预
     Permission62=创建/变更干预
    @@ -686,37 +696,37 @@ Permission109=删除发货单
     Permission111=读取财务帐目
     Permission112=创建/变更/删除和比较交易
     Permission113=设置财政账户 (创建和管理分类)
    -Permission114=调和交易
    +Permission114=Reconcile transactions
     Permission115=导出交易和帐户报表
     Permission116=账户间转账
     Permission117=支票调度管理
    -Permission121=读取合伙人信息关联用户
    -Permission122=创建/变更与用户相关联的合伙人信息
    -Permission125=删除与用户相关联的合伙人信息
    -Permission126=导出合伙人信息
    -Permission141=读取所有项目和任务 (包括我未参与的项目)
    -Permission142=创建/变更所有项目和项目 (包括我未参与的项目)
    +Permission121=读取合作方信息关联用户
    +Permission122=创建/变更与用户相关联的合作方信息
    +Permission125=删除与用户相关联的合作方信息
    +Permission126=导出合作方信息
    +Permission141=Read all projects and tasks (also private projects I am not a contact for)
    +Permission142=Create/modify all projects and tasks (also private projects I am not a contact for)
     Permission144=删除所有项目和项目 (包括我未参与的项目)
     Permission146=读取供应商
     Permission147=读取统计
    -Permission151=Read direct debit payment orders
    -Permission152=Create/modify a direct debit payment orders
    -Permission153=Send/Transmit direct debit payment orders
    -Permission154=Record Credits/Rejects of direct debit payment orders
    +Permission151=阅读长期订单
    +Permission152=创建/修改长期订单
    +Permission153=阅读长期订单收据
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=读取联系人/订阅
     Permission162=创建/变更联系人/订阅
     Permission163=启用联系人服务/订阅
     Permission164=禁用联系人服务/订阅
     Permission165=删除联系人/订阅
     Permission167=导出联系人
    -Permission171=Read trips and expenses (yours and your subordinates)
    +Permission171=读取行程及开支 (自己和其下属)
     Permission172=创建/变更行程及开支
     Permission173=删除行程及开支
     Permission174=读取所有行程和开支
    -Permission178=导出形成及开支
    +Permission178=导出行程及开支
     Permission180=读取供应商资料
     Permission181=读取采购订单
    -Permission182=创建/变更供应商订单
    +Permission182=创建/变更采购订单
     Permission183=确认可采购订单
     Permission184=批准采购订单
     Permission185=订购或取消采购订单
    @@ -725,7 +735,7 @@ Permission187=关闭采购订单
     Permission188=取消采购订单
     Permission192=添加线路
     Permission193=取消线路
    -Permission194=读取
    +Permission194=Read the bandwidth lines
     Permission202=创建 ADSL 连接
     Permission203=订立连接订单
     Permission204=订购连接
    @@ -733,7 +743,7 @@ Permission205=链接管理
     Permission206=读取链接
     Permission211=读取电话
     Permission212=订购线路
    -Permission213=启用明细
    +Permission213=激活线路
     Permission214=安装电话
     Permission215=安装商
     Permission221=读取邮件
    @@ -750,12 +760,12 @@ Permission244=查看隐藏类别的内容
     Permission251=读取其他用户和群组资料
     PermissionAdvanced251=读取其他用户
     Permission252=读取其他用户的使用权限
    -Permission253=创建/变更其他用户、群组资料及其权限
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=创建/变更内部/外部用户和权限
     Permission254=只能创建/变更外部用户资料
     Permission255=修改其他用户密码
     Permission256=删除或暂时关闭其他用户
    -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).<br>Not effective for projects (only rules on project permissions, visibility and assignement matters).
    +Permission262=Extend access to all third parties (not only third parties that user is a sale representative for).<br>Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc.).<br>Not effective for projects (only rules on project permissions, visibility and assignment matters).
     Permission271=读取 CA
     Permission272=读取发票
     Permission273=开具发票
    @@ -765,7 +775,7 @@ Permission283=删除联络人资料
     Permission286=导出联络人资料
     Permission291=读取关税
     Permission292=设置关税权限
    -Permission293=修改客户关税
    +Permission293=Modify customers tariffs
     Permission300=读取条码
     Permission301=创建/变更条码
     Permission302=删除条码
    @@ -787,11 +797,9 @@ Permission401=读取折扣
     Permission402=创建/变更折扣
     Permission403=确认折扣
     Permission404=删除折扣
    -Permission501=Read employee contracts/salaries
    -Permission502=Create/modify employee contracts/salaries
    -Permission511=Read payment of salaries
    -Permission512=Create/modify payment of salaries
    -Permission514=删除工资
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=导出工资
     Permission520=读取贷款
     Permission522=创建/变更贷款
    @@ -842,13 +850,13 @@ Permission1236=导出供应商发票、属性及其付款资料
     Permission1237=导出采购订单及其详情
     Permission1251=导入大量外部数据到数据库(载入资料)
     Permission1321=导出客户发票、属性及其付款资料
    -Permission1322=Reopen a paid bill
    +Permission1322=重新开立付费账单
     Permission1421=导出客户订单及属性资料
    -Permission20001=Read leave requests (your leaves and the one of your subordinates)
    -Permission20002=Create/modify your leave requests (yours leaves and the one of your subordinates)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=删除请假申请
    -Permission20004=Read all leave requests (even of user not subordinates)
    -Permission20005=Create/modify leave requests for everybody (even of user not subordinates)
    +Permission20004=阅读所有请假申请(即使是非下属用户)
    +Permission20005=为每个人创建/修改请假申请(即使是非下属用户)
     Permission20006=管理员请假申请 (setup and update balance)
     Permission23001=读取排定任务
     Permission23002=创建/更新排定任务
    @@ -879,9 +887,9 @@ Permission59003=读取每位用户利润
     Permission63001=读取资源
     Permission63002=创建/变更资源
     Permission63003=删除资源
    -Permission63004=Link resources to agenda events
    -DictionaryCompanyType=合伙人类型
    -DictionaryCompanyJuridicalType=合伙人法律条款
    +Permission63004=将资源链接到议程事件
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=准客户级别
     DictionaryCanton=州/省
     DictionaryRegion=地区
    @@ -891,64 +899,64 @@ DictionaryCivility=个人和专业技术职称
     DictionaryActions=活动议程类型
     DictionarySocialContributions=财政税和增值税类别
     DictionaryVAT=增值税率和消费税率
    -DictionaryRevenueStamp=Amount of tax stamps
    +DictionaryRevenueStamp=税票金额
     DictionaryPaymentConditions=付款条件
     DictionaryPaymentModes=付款方式
    -DictionaryTypeContact=联络人/地址类型
    -DictionaryTypeOfContainer=Type of website pages/containers
    +DictionaryTypeContact=Contacts/addresses types
    +DictionaryTypeOfContainer=网站页面/容器的类型
     DictionaryEcotaxe=Ecotax 指令
     DictionaryPaperFormat=纸张格式
    -DictionaryFormatCards=Cards formats
    -DictionaryFees=Expense report - Types of expense report lines
    +DictionaryFormatCards=卡片格式
    +DictionaryFees=费用报表 - 费用报表行的类型
     DictionarySendingMethods=运输方式
     DictionaryStaff=员工
     DictionaryAvailability=送货延迟
     DictionaryOrderMethods=订单类型
     DictionarySource=报价/订单来源方式
    -DictionaryAccountancyCategory=Personalized groups for reports
    -DictionaryAccountancysystem=账户图标模块
    -DictionaryAccountancyJournal=Accounting journals
    -DictionaryEMailTemplates=电子邮件模板
    +DictionaryAccountancyCategory=报告的个性化组
    +DictionaryAccountancysystem=会计科目表模型
    +DictionaryAccountancyJournal=会计日常报表
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=单位
     DictionaryProspectStatus=准客户状态
    -DictionaryHolidayTypes=请假类型
    -DictionaryOpportunityStatus=项目/线索的机会状态
    -DictionaryExpenseTaxCat=Expense report - Transportation categories
    -DictionaryExpenseTaxRange=Expense report - Range by transportation category
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
    +DictionaryExpenseTaxCat=费用报告 - 运输类别
    +DictionaryExpenseTaxRange=费用报告 - 按运输类别排列
     SetupSaved=设置已经成功保存
    -SetupNotSaved=Setup not saved
    +SetupNotSaved=安装程序未保存
     BackToModuleList=返回模块列表
    -BackToDictionaryList=回到字典库
    -TypeOfRevenueStamp=Type of tax stamp
    -VATManagement=增值税管理
    -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold.  End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
    -VATIsNotUsedDesc=默认情况下,建议的营业税为0,可用于像机构、个人或小型公司。
    -VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which VAT is declared.
    -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration.  This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
    +BackToDictionaryList=Back to list of Dictionaries
    +TypeOfRevenueStamp=税票类型
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=税率
     LocalTax1IsNotUsed=不使用第二税率
    -LocalTax1IsUsedDesc=使用其它类型税率(非增值税)
    -LocalTax1IsNotUsedDesc=不使用其它类型税率(非增值税VAT)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=第二税率类型
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=不使用第三税率
    -LocalTax2IsUsedDesc=使用其它税率类型(非增值税VAT)
    -LocalTax2IsNotUsedDesc=不使用其它类型税率(非增值税VAT)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=第三税率类型
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE 管理(大陆不适用)
    -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If te buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    -LocalTax1IsNotUsedDescES= 默认情况下,建议RE为0。规则结束。
    -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE.
    -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE.
    -LocalTax2ManagementES= IRPF 管理(大陆不适用)
    -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    -LocalTax2IsNotUsedDescES= 默认情况下,建议IRPF为0。规则结束。
    -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules.
    -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules.
    +LocalTax1ManagementES=RE 管理(大陆不适用)
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=默认情况下,建议RE为0。规则结束。
    +LocalTax1IsUsedExampleES=在西班牙,他们是受西班牙IAE某些特定部分影响的专业人士。
    +LocalTax1IsNotUsedExampleES=在西班牙,他们是专业人士和社团,并受西班牙IAE的某些部分的约束。
    +LocalTax2ManagementES=IRPF 管理(大陆不适用)
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=默认情况下,建议IRPF为0。规则结束。
    +LocalTax2IsUsedExampleES=在西班牙,提供服务的自由职业者和独立专业人士以及选择模块税制的公司。
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=地税报表
     CalcLocaltax1=销售 - 采购
     CalcLocaltax1Desc=地税报表已经分别计算了在销售和采购时所产生的不同税。
    @@ -958,14 +966,16 @@ CalcLocaltax3=销售
     CalcLocaltax3Desc=地税报表是销售总计
     LabelUsedByDefault=如果代码没有翻译则默认使用以下标签
     LabelOnDocuments=文档中的标签
    -NbOfDays=天数
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=月末
    -CurrentNext=Current/Next
    +CurrentNext=当前/下一项
     Offset=偏移
    -AlwaysActive=此项必须始终保持启用状态
    +AlwaysActive=始终启用
     Upgrade=升级
     MenuUpgrade=升级/扩展
    -AddExtensionThemeModuleOrOther=Deploy/install external app/module
    +AddExtensionThemeModuleOrOther=部署/安装外部模块
     WebServer=网页服务器
     DocumentRootServer=网页服务器的根目录
     DataRootServer=数据文件的目录
    @@ -984,29 +994,29 @@ DatabaseUser=数据库用户
     DatabasePassword=数据库密码
     Tables=表
     TableName=表名称
    -NbOfRecord=记录数
    +NbOfRecord=No. of records
     Host=服务器
     DriverType=驱动类型
     SummarySystem=系统信息摘要
     SummaryConst=Dolibarr所有设置参数清单
    -MenuCompanySetup=Company/Organization
    +MenuCompanySetup=公司/组织
     DefaultMenuManager= 标准菜单管理
     DefaultMenuSmartphoneManager=智能手机菜单管理
     Skin=外观主题
     DefaultSkin=默认外观主题
     MaxSizeList=最大列表长度
     DefaultMaxSizeList=列表默认最大值
    -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=每日消息
     MessageLogin=登陆页面显示消息
    -LoginPage=Login page
    -BackgroundImageLogin=Background image
    +LoginPage=登录页面
    +BackgroundImageLogin=背景图
     PermanentLeftSearchForm=常驻左侧菜单搜寻框
     DefaultLanguage=默认语言(语言代码)
     EnableMultilangInterface=启用多语言界面
     EnableShowLogo=左侧菜单中显示LOGO公司标志
    -CompanyInfo=Company/organization information
    -CompanyIds=Company/organization identities
    +CompanyInfo=公司/组织
    +CompanyIds=Company/Organization identities
     CompanyName=名称
     CompanyAddress=地址
     CompanyZip=邮编
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=银行帐户 %s 的户主
     BankModuleNotActive=银行账户模块没有启用
     ShowBugTrackLink=显示链接 "<strong>%s</strong>"
     Alerts=警告
    -DelaysOfToleranceBeforeWarning=超时警告前延迟的阀值
    -DelaysOfToleranceDesc=这里您可以设置主看板区出现逾期提醒 (带有%s图标) 前的逾期时间。
    -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
    -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=合同逾期未关闭最大逾期时间 (天)
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=报价单逾期收款最大逾期时间 (天)
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=服务逾期生效最大逾期时间 (天)
    -Delays_MAIN_DELAY_RUNNING_SERVICES=服务超期过期最大逾期时间 (天)
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=采购账单延误付款最大逾期时间 (天)
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=销售账单延误付款最大逾期时间 (天)
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=银行对账推迟最大逾期时间 (天)
    -Delays_MAIN_DELAY_MEMBERS=会员费用最大逾期时间 (天) 
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=支票兑现最大逾期时间 (天) 
    -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve
    -SetupDescription1=在开始使用Dolibarr之前请先进行初始化设置相关参数。
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=其他管理菜单可选参数。
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=安全稽核事件
    -Audit=安全稽核
    +Audit=Security events
     InfoDolibarr=关于Dolibarr
     InfoBrowser=关于浏览器
     InfoOS=关于OS
    @@ -1056,136 +1066,137 @@ BrowserName=浏览器名称
     BrowserOS=浏览器操作系统
     ListOfSecurityEvents=安全事件清单
     SecurityEventsPurged=安全事件清除
    -LogEventDesc=这里您可以启用 Dolibarr 的安全事件日志记录。管理员可以通过<b>系统工具-稽核</b>查看其内容。警告,此功能会消耗大量的数据库空间。
    -AreaForAdminOnly=Setup parameters can be set by <b>administrator users</b> only.
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
    +AreaForAdminOnly=此功能仅供<b>管理员用户</b> 使用。
     SystemInfoDesc=系统信息指以只读方式显示的其它技术信息,只对系统管理员可见。
     SystemAreaForAdminOnly=此区仅供管理员用户使用。Dolibarr 中没有权限可越过此限制。
    -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "%s" or "%s" button at bottom of page)
    -AccountantDesc=Edit on this page all known information about your accountant/bookkeeper
    -AccountantFileNumber=File number
    +CompanyFundationDesc=Edit the information of the company/entity. Click on "%s" or "%s" button at the bottom of the page.
    +AccountantDesc=Edit the details of your accountant/bookkeeper
    +AccountantFileNumber=文件编号
     DisplayDesc=这里可以选择 Dolibarr 外观效果相关的所有参数
    -AvailableModules=Available app/modules
    -ToActivateModule=要启用模块,请到“设定”区 (首页->设定->模块)。
    +AvailableModules=可用模块
    +ToActivateModule=要启用模块,请到“设定”区 (“首页”->“设定”->“模块”)。
     SessionTimeOut=会话超时
    -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every <b>%s/%s</b> access, but only during access made by other sessions.<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default <strong>session.gc_maxlifetime</strong>, no matter what the value entered here.
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=可用的触发器
    -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=文件中的触发器代码可以通过文件名中的 <b>-NoRun</b> 前缀禁用。
     TriggerDisabledAsModuleDisabled=此文件中的触发器将在<b>%s</b>模块禁用时禁用。
     TriggerAlwaysActive=无论 Dolibarr 的各模块是否启用,此文件中的触发器一直处于启用状态。
     TriggerActiveAsModuleActive=此文件中的触发器将于 <b>%s</b> 模块启用后启用。
     GeneratedPasswordDesc=在此设定新密码的生成规则,如果您选择使用自动生成的密码。
     DictionaryDesc=输入全部参考数据.你能添加你的参数值为默认值。
    -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options <a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">check here</a>.
    +ConstDesc=此页面允许您编辑以前页面中不可用的所有其他参数。这些主要是供开发人员调试用的保留参数。有关选项列表,请<a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">点击此处</a>。
     MiscellaneousDesc=所有其他安全相关的参数定义在这里。
     LimitsSetup=范围及精确度
    -LimitsDesc=这里您可以设置 Dolibarr 的范围、精度和优化参数。
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=单价小数位
     MAIN_MAX_DECIMALS_TOT=总价小数位
     MAIN_MAX_DECIMALS_SHOWN=屏幕显示小数位(如果你希望系统内部数值显示时遇到小数位截断的情况下显示<b>...</b>,请在此数值后加上<b>...</b>)
    -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps)
    +MAIN_ROUNDING_RULE_TOT=舍入范围的步骤(对于在除了基数10之外的其他位置进行舍入的国家。例如,如果通过0.05步进行舍入,则放置0.05)
     UnitPriceOfProduct=税前单价
     TotalPriceAfterRounding=四舍五入后的总价 (税前价/增值税/税后价)
     ParameterActiveForNextInputOnly=参数仅在下次输入数值起生效。
    -NoEventOrNoAuditSetup=尚无安全事件被记录。“设置 - 安全 - 稽核”页面的稽核功能未启用则属于正常现象。
    -NoEventFoundWithCriteria=未发现符合搜索条件的安全事件。
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=参见您的本机 sendmail 设置
     BackupDesc=为了生成一个完整的 Dolibarr 备份,你必须:
     BackupDesc2=保存文件目录<b>(%S)</b>的内容,包含所有上传和生成的文件(包括在步骤1中产生的所有转储文件)。
    -BackupDesc3=保存数据库 (<b>%s</b>) 至转储文件。对于此,你可能需要以下助手:
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=存档的文档目录应存储在一个安全的地方。
     BackupDescY=生成的转储文件应存放在安全的地方。
    -BackupPHPWarning=此方法不保证成功生成备份。建议使用前者
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=要还原Dolibarr备份,您必须:
    -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (<b>%s</b>).
    -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant.
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
    +RestoreDesc3=将数据从备份转储文件还原到新Dolibarr安装的数据库或当前安装的数据库(<b> %s </ b>)。警告,一旦恢复完成,您必须使用备份时存在的登录/密码再次连接。要将备份数据库还原到当前安装,您可以关注此助手。
     RestoreMySQL=MySQL 导入
     ForcedToByAModule= 此规则被一个启用中的模块强制应用于 <b>%s</b>
    -PreviousDumpFiles=Generated database backup files
    +PreviousDumpFiles=生成的数据库备份文件
     WeekStartOnDay=每周的第一天
     RunningUpdateProcessMayBeRequired=似乎需要运行升级程序(程序版本 %s 与数据库版本 %s 不符)
     YouMustRunCommandFromCommandLineAfterLoginToUser=您必须以 <b>%s</b> 用户在MySQL控制台登陆后通过命令行运行此命令否则您必须在命令行的末尾使用 -W 选项来提供 <b>%s</b> 的密码。
     YourPHPDoesNotHaveSSLSupport=SSL 在您的 PHP 中不可用
     DownloadMoreSkins=下载更多外观主题
     SimpleNumRefModelDesc=依照 %syymm-nnnn 的格式返回引用编号,其中yy是年、mm是月、nnnn 是自动填零补全的序号。
    -ShowProfIdInAddress=文件中显示专业编号及地址
    -ShowVATIntaInAddress=隐藏增值税代码
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=部分翻译
    -MAIN_DISABLE_METEO=禁用天气图标
    -MeteoStdMod=Standard mode
    -MeteoStdModEnabled=Standard mode enabled
    -MeteoPercentageMod=Percentage mode
    -MeteoPercentageModEnabled=Percentage mode enabled
    -MeteoUseMod=Click to use %s
    +MAIN_DISABLE_METEO=Disable meteorological view
    +MeteoStdMod=标准模式
    +MeteoStdModEnabled=标准模式已启用
    +MeteoPercentageMod=百分比模式
    +MeteoPercentageModEnabled=已启用百分比模式
    +MeteoUseMod=点击使用%s
     TestLoginToAPI=测试 API 登陆
    -ProxyDesc=Dolibarr 的一些功能需要互联网连接。请在此设置联网参数。如果 Dolibarr 服务器上网需要代理服务器,请设置下面的代理参数。
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=外部访问
     MAIN_PROXY_USE=使用代理服务器(否则直接访问互联网)
     MAIN_PROXY_HOST=代理服务器的名称/地址
     MAIN_PROXY_PORT=代理服务器的端口
     MAIN_PROXY_USER=登陆使用代理服务器
     MAIN_PROXY_PASS=使用代理服务器的密码
    -DefineHereComplementaryAttributes=此处定义所有默认安装中没有,但您又希望能在 %s 中使用的属性。
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=自定义属性
     ExtraFieldsLines=自定义属性 (行列)
    -ExtraFieldsLinesRec=Complementary attributes (templates invoices lines)
    -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines)
    +ExtraFieldsLinesRec=补充属性(模板发票行)
    +ExtraFieldsSupplierOrdersLines=补充属性(订单行)
     ExtraFieldsSupplierInvoicesLines=自定义属性(发票明细)
    -ExtraFieldsThirdParties=自定义属性 (合伙人)
    -ExtraFieldsContacts=自定义属性 (联系人/地址)
    +ExtraFieldsThirdParties=自定义属性 (合作方)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=自定义属性 (会员)
     ExtraFieldsMemberType=自定义属性 (会员类型)
     ExtraFieldsCustomerInvoices=自定义属性(发票)
    -ExtraFieldsCustomerInvoicesRec=Complementary attributes (templates invoices)
    +ExtraFieldsCustomerInvoicesRec=补充属性(模板发票)
     ExtraFieldsSupplierOrders=自定义属性 (订单)
     ExtraFieldsSupplierInvoices=自定义属性 (账单)
     ExtraFieldsProject=自定义属性 (项目)
     ExtraFieldsProjectTask=自定义属性 (任务)
     ExtraFieldHasWrongValue=属性 %s 有一个错误的值。
     AlphaNumOnlyLowerCharsAndNoSpace=仅限英文大小写字母不含空格
    -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba).
    +SendmailOptionNotComplete=警告,在某些Linux系统上,要从您的电子邮件发送电子邮件,sendmail执行设置必须包含选项-ba(参数mail.force_extra_parameters到您的php.ini文件中)。如果某些收件人从未收到电子邮件,请尝试使用mail.force_extra_parameters = -ba编辑此PHP参数。
     PathToDocuments=文件路径
     PathDirectory=目录
    -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages.
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=翻译设置
     TranslationKeySearch=搜索翻译键值或字符串
     TranslationOverwriteKey=覆盖翻译字符串
    -TranslationDesc=How to set displayed application language :<br>* Systemwide: menu <strong>Home - Setup - Display</strong><br>* Per user: Use the <strong>User display setup</strong> tab on user card (click on username at the top of the screen).
    -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s"
    -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use
    +TranslationDesc=如何设置显示的应用程序语言:<br> *全系统:菜单<strong>“主页” - “设置” - “显示”</strong> <br> *每位用户:使用用户卡上的<strong>用户显示设置</strong>标签(点击屏幕顶部的用户名)。
    +TranslationOverwriteDesc=您还可以覆盖填充下表的字符串。从“%s”下拉列表中选择您的语言,将翻译键字符串插入“%s”并将新翻译成“%s”
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=翻译字符串
    -CurrentTranslationString=Current translation string
    -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string
    +CurrentTranslationString=当前翻译字符串
    +WarningAtLeastKeyOrTranslationRequired=至少对于密钥或翻译字符串,需要搜索条件
     NewTranslationStringToShow=显示新翻译字符串
    -OriginalValueWas=The original translation is overwritten. Original value was:<br><br>%s
    -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exists in any language files
    -TotalNumberOfActivatedModules=Activated application/modules: <b>%s</b> / <b>%s</b>
    +OriginalValueWas=原始翻译被覆盖。原值是:<br> <br> %s
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
    +TotalNumberOfActivatedModules=启用的功能模块总共: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=您必须至少启用 1 个模块
    -ClassNotFoundIntoPathWarning=PHP 路径中未发现 类 %s
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=是(在夏天)
    -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=会话存储空间已用 Suhosin 加密
     ConditionIsCurrently=当前条件为 %s
    -YouUseBestDriver=你使用的驱动程序 %s 就是目前最佳驱动程式。
    -YouDoNotUseBestDriver=你用的驱动是 %s 但驱动 %s 才是最佳驱动.
    -NbOfProductIsLowerThanNoPb=你只有 %s  的产品/服务在数据库。这并不需要任何特别的优化。
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=搜索优化
    -YouHaveXProductUseSearchOptim=你有 %s 产品进入数据库。你应该加常数PRODUCT_DONOTSEARCH_ANYWHERE 1到 首页-设置-其他,你将限制数据库开始搜索范围索引的使用字符串,你应该得到即时响应。
    -BrowserIsOK=您正在使用 %s 浏览器。这个浏览器安全和性能都ok。
    -BrowserIsKO=您正在使用 %s 浏览器。这个浏览器的安全性,性能和可靠性都不错。我们推荐您使用火狐,Chrome,Opera和Safari。
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=XDebug 已经加载。
     XCacheInstalled=XCache已经加载。
    -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
    -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties.
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=%s 字段的编辑
     FillThisOnlyIfRequired=例如:+2 (请只在时区错误问题出现时填写)
     GetBarCode=获取条码
     ##### Module password generation
     PasswordGenerationStandard=返回一个根据 Dolibarr 内部算法生成的密码:8个字符,包含小写数字和字母。
    -PasswordGenerationNone=不生成任何的密码。必须手动输入一个密码。
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=返回一个字符串用于设置你的个人密码。
    -SetupPerso=According to your configuration
    -PasswordPatternDesc=Password pattern description
    +SetupPerso=根据你的配置
    +PasswordPatternDesc=密码模式说明
     ##### Users setup #####
     RuleForGeneratedPasswords=生成推荐密码和验证密码的规则
     DisableForgetPasswordLinkOnLogonPage=禁用登陆页面的“找回密码”功能超链接
    @@ -1195,31 +1206,32 @@ UserMailRequired=新创建用户时需要输入电子邮箱地址
     HRMSetup=人力资源管理模块设置
     ##### Company setup #####
     CompanySetup=客户/供应商模块及其相关参数设置
    -CompanyCodeChecker=Module for third parties code generation and checking (customer or vendor)
    -AccountCodeManager=Module for accounting code generation (customer or vendor)
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=Email邮件提醒通知功能允许你给一些Dolibarr活动,自动发送提醒通知邮件。提醒通知的目标可定义:
    -NotificationsDescUser=* per users, one user at time.
    -NotificationsDescContact=* per third parties contacts (customers or vendors), one contact at time.
    -NotificationsDescGlobal=* or by setting global target emails in module setup page.
    -ModelModules=文件模板
    -DocumentModelOdt=生成开源办公软件专用格式的(如OpenOffice, KOffice, TextEdit,...等的.ODT格式,.ODS格式)的模板文档。
    +NotificationsDescUser=*每个用户,一个用户。
    +NotificationsDescContact=*每个第三方联系人(客户或供应商),一次联系。
    +NotificationsDescGlobal=*或在模块设置页面中设置全局目标电子邮件。
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=为草稿文档加水印
     JSOnPaimentBill=激活启用在线支付功能来自动填充付款的形式
    -CompanyIdProfChecker=专业ID号码规则
    -MustBeUnique=Must be unique?
    -MustBeMandatory=Mandatory to create third parties?
    -MustBeInvoiceMandatory=Mandatory to validate invoices?
    -TechnicalServicesProvided=Technical services provided
    +CompanyIdProfChecker=Rules for Professional IDs
    +MustBeUnique=必须是独特的吗?
    +MustBeMandatory=Mandatory to create third parties (if vat number or type of company defined) ?
    +MustBeInvoiceMandatory=是否必须验证发票?
    +TechnicalServicesProvided=提供技术服务
     #####DAV #####
    -WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access to.
    -WebDavServer=Root URL of %s server : %s
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
    +WebDavServer=%s服务器的根URL:%s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=<b>%s</b>格式的导出文件可以通过链接 %s 下载
     ##### Invoices #####
     BillsSetup=发票模块设置
     BillsNumberingModule=发票与信用记录编号模块
     BillsPDFModules=发票文档模板
    -PaymentsPDFModules=Payment documents models
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
    +PaymentsPDFModules=付款文件模型
     CreditNote=信用记录
     CreditNotes=信用记录
     ForceInvoiceDate=强制发票中的日期为确认日期
    @@ -1239,15 +1251,15 @@ FreeLegalTextOnProposal=报价单中的额外说明文本
     WatermarkOnDraftProposal=为商业计划书草案添加水印(无则留空)
     BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=询问银行账户
     ##### SupplierProposal #####
    -SupplierProposalSetup=Price requests vendors module setup
    -SupplierProposalNumberingModules=Price requests vendors numbering models
    -SupplierProposalPDFModules=Price requests vendors documents models
    -FreeLegalTextOnSupplierProposal=Free text on price requests vendors
    -WatermarkOnDraftSupplierProposal=Watermark on draft price requests vendors (none if empty)
    +SupplierProposalSetup=价格请求供应商模块设置
    +SupplierProposalNumberingModules=价格要求供应商编号模型
    +SupplierProposalPDFModules=价格请求供应商文档模型
    +FreeLegalTextOnSupplierProposal=价格请求供应商的自由文本
    +WatermarkOnDraftSupplierProposal=草案价格上的水印要求供应商(如果是空的则没有)
     BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=询问目标询价申请的银行账号
    -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order
    +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=要求仓库来源订购
     ##### Suppliers Orders #####
    -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of purchase order
    +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=询问采购订单的银行帐户目的地
     ##### Orders #####
     OrdersSetup=订单管理设置
     OrdersNumberingModules=订单编号模块
    @@ -1274,7 +1286,8 @@ MemberMainOptions=主要选项
     AdherentLoginRequired= 管理人员登陆
     AdherentMailRequired=创建新会员时要求填写电子邮箱地址
     MemberSendInformationByMailByDefault=设置向会员发送邮件确认(会员确认或添加订阅)复选框默认为启用
    -VisitorCanChooseItsPaymentMode=Visitor can choose among available payment modes
    +VisitorCanChooseItsPaymentMode=访客可以选择可用的付款方式
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP 设置
     LDAPGlobalParameters=全局参数
    @@ -1292,7 +1305,7 @@ LDAPSynchronizeUsers=LDAP 中用户的组织
     LDAPSynchronizeGroups=LDAP 中群组的组织
     LDAPSynchronizeContacts=LDAP 联系人的组织
     LDAPSynchronizeMembers=LDAP 中公司成员的组织
    -LDAPSynchronizeMembersTypes=Organization of foundation's members types in LDAP
    +LDAPSynchronizeMembersTypes=在LDAP中组织基金会的成员类型
     LDAPPrimaryServer=主服务器
     LDAPSecondaryServer=副服务器
     LDAPServerPort=服务器端口
    @@ -1302,7 +1315,7 @@ LDAPServerUseTLS=使用 TLS
     LDAPServerUseTLSExample=您的 LDAP 服务器使用 TLS
     LDAPServerDn=服务器的 DN
     LDAPAdminDn=管理员的 DN
    -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory)
    +LDAPAdminDnExample=完整DN(例如:cn = admin,dc = example,dc = com或cn = Administrator,cn = Users,dc = example,dc = com表示活动目录)
     LDAPPassword=管理员密码
     LDAPUserDn=用户的 DN
     LDAPUserDnExample=完整的 DN (例如:ou=users,dc=example,dc=com)
    @@ -1316,21 +1329,21 @@ LDAPDnContactActive=联系人的同步
     LDAPDnContactActiveExample=已激活/取消的同步
     LDAPDnMemberActive=会员同步
     LDAPDnMemberActiveExample=已激活/取消的同步
    -LDAPDnMemberTypeActive=Members types' synchronization
    +LDAPDnMemberTypeActive=成员类型的同步
     LDAPDnMemberTypeActiveExample=已激活/取消的同步
     LDAPContactDn=Dolibarr 联系人的 DN
     LDAPContactDnExample=完整的 DN (例如:ou=contacts,dc=example,dc=com)
     LDAPMemberDn=Dolibarr 会员DN
     LDAPMemberDnExample=完整的 DN (例如:ou=members,dc=example,dc=com)
    -LDAPMemberObjectClassList=objectClass 列表
    +LDAPMemberObjectClassList=对象类 列表
     LDAPMemberObjectClassListExample=定义记录属性的 (例如:AD 的 top,groupOfUniqueNames) 的objectClass列表
    -LDAPMemberTypeDn=Dolibarr members types DN
    -LDAPMemberTypepDnExample=Complete DN (ex: ou=memberstypes,dc=example,dc=com)
    -LDAPMemberTypeObjectClassList=objectClass 列表
    +LDAPMemberTypeDn=Dolibarr成员类型DN
    +LDAPMemberTypepDnExample=完整DN(例如:ou = memberstypes,dc = example,dc = com)
    +LDAPMemberTypeObjectClassList=对象类 列表
     LDAPMemberTypeObjectClassListExample=定义记录属性的 (例如:AD 的 top,groupOfUniqueNames) 的objectClass列表
    -LDAPUserObjectClassList=objectClass 列表
    +LDAPUserObjectClassList=对象类 列表
     LDAPUserObjectClassListExample=定义记录属性的 (例如:AD 的 top,groupOfUniqueNames) 的objectClass列表
    -LDAPGroupObjectClassList=objectClass 列表
    +LDAPGroupObjectClassList=对象类 列表
     LDAPGroupObjectClassListExample=定义记录属性的 (例如:AD 的 top,groupOfUniqueNames) 的objectClass列表
     LDAPContactObjectClassList=objectClass 列表
     LDAPContactObjectClassListExample=定义记录属性的 (例如:AD 的 top,groupOfUniqueNames) 的objectClass列表
    @@ -1339,15 +1352,15 @@ LDAPTestSynchroContact=测试联系人的同步
     LDAPTestSynchroUser=测试用户的同步
     LDAPTestSynchroGroup=测试组的同步
     LDAPTestSynchroMember=测试会员的同步
    -LDAPTestSynchroMemberType=Test member type synchronization
    +LDAPTestSynchroMemberType=测试成员类型同步
     LDAPTestSearch= 测试 LDAP 搜索
     LDAPSynchroOK=同步测试成功
     LDAPSynchroKO=同步测试失败
    -LDAPSynchroKOMayBePermissions=同步测试失败。请检查连接服务器已经正确设置并允许LDAP更新
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP 连接到 LDAP 服务器连接成功 (服务器=%s, 端口=%s)
     LDAPTCPConnectKO=TCP 连接到 LDAP 服务器连接失败 (服务器=%s, 端口=%s)
    -LDAPBindOK=连接/认证 LDAP 服务器成功(服务器=%s, 端口=%s, 账号=%s, 密码=%s)
    -LDAPBindKO=LDAP 服务器连接/认证 失败(服务器=%s,用户=%s,密码=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=LDAP服务器版本配置为 v3
     LDAPSetupForVersion2=LDAP服务器版本配置为 v2
     LDAPDolibarrMapping=Dolibarr 映射
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=登陆 (samba,activedirectory)
     LDAPFieldLoginSambaExample=例如: sam账号名
     LDAPFieldFullname=全名
     LDAPFieldFullnameExample=例如: 中国
    -LDAPFieldPasswordNotCrypted=明文密码
    -LDAPFieldPasswordCrypted=加密密码
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=例如:用户密码
     LDAPFieldCommonNameExample=例如: 中国
     LDAPFieldName=名称
    @@ -1405,47 +1418,48 @@ LDAPDescContact=此页面中可以定义 Dolibarr 联系人各项数据在 LDAP
     LDAPDescUsers=此页面中可以定义 Dolibarr 用户各项数据在 LDAP 树中的 LDAP 属性名称。
     LDAPDescGroups=此页面中可以定义 Dolibarr 中用户组各项数据在 LDAP 树中的 LDAP 属性名称。
     LDAPDescMembers=此页面中可以定义 Dolibarr 会员各项数据在 LDAP 树中的 LDAP 属性名称。
    -LDAPDescMembersTypes=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members types.
    +LDAPDescMembersTypes=此页面允许您在LDAP树中为Dolibarr成员类型上的每个数据定义LDAP属性名称。
     LDAPDescValues=例值以载入如下模式的 <b>OpenLDAP</b>为例:<b>core.schema, cosine.schema, inetorgperson.schema</b>)如果您使用OpenLDAP和这些例值,请修改您的 LDAP 配置文件<b>slapd.conf</b>来载入全部这些模式。
     ForANonAnonymousAccess=存取访问要求验证, (例如读写访问)
     PerfDolibarr=性能设置/优化报告
    -YouMayFindPerfAdviceHere=你会发现此页面上的一些性能相关的检查或建议。
    -NotInstalled=没有安装,所以你的服务器没有减慢。
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=应用型缓存
    -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
    -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
    -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.
    +MemcachedNotAvailable=找不到应用缓存。您可以通过安装缓存服务器Memcached和能够使用此缓存服务器的模块来增强性能。<br>更多信息,请访问<a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN"> http: //wiki.dolibarr.org/index.php/Module_MemCached_EN </a>。请注意,很多网络托管服务提供商都没有提供此类缓存服务器。
    +MemcachedModuleAvailableButNotSetup=找到应用程序缓存的memcached模块,但模块设置不完整。
    +MemcachedAvailableAndSetup=启用专用于使用memcached服务器的模块memcached。
     OPCodeCache=操作码缓存
    -NoOPCodeCacheFound=操作码缓存。可能是你使用了XCache或eAccelerator的另一个操作码缓存比(好),可能是你没有操作码缓存(非常糟糕)。
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=HTTP缓存的静态资源(CSS,JavaScript,IMG)
     FilesOfTypeCached=HTTP服务器 %s 类型的文件缓存
     FilesOfTypeNotCached=HTTP服务器不缓存的文件类型%s
     FilesOfTypeCompressed=HTTP服务器 %s 类型的文件被压缩
     FilesOfTypeNotCompressed=HTTP服务器 %s 类型的文件不会被压缩
     CacheByServer=缓存服务器
    -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000"
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=通过浏览器缓存
     CompressionOfResources=压缩的HTTP响应
    -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=这种自动检测在该浏览器中不适用
    -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record.
    -DefaultCreateForm=Default values (on forms to create)
    -DefaultSearchFilters=Default search filters
    -DefaultSortOrder=Default sort orders
    -DefaultFocus=Default focus fields
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
    +DefaultSearchFilters=默认搜索过滤器
    +DefaultSortOrder=默认排序顺序
    +DefaultFocus=默认焦点字段
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=产品模块设置
     ServiceSetup=服务模块设置
     ProductServiceSetup=产品和服务模块的设置
     NumberOfProductShowInSelect=下拉列表中的产品最大笔数(0=无限制)
    -ViewProductDescInFormAbility=表单中是否可以直接显示产品描述资料(如果关闭则用弹出工具提示显示)
    -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal
    -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language
    -UseSearchToSelectProductTooltip=此外,如果你有大量的产品(> 10万),你可以通过设置 - >其他不变PRODUCT_DONOTSEARCH_ANYWHERE设置为1,提高速度。搜索将被限制在开始的字符串。
    -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
    +ViewProductDescInFormAbility=Display product descriptions in forms (otherwise as popup tooltip)
    +MergePropalProductCard=在产品/服务附加文件选项卡中激活如果产品/服务在提案中,则将产品PDF文档合并到提案PDF azur的选项
    +ViewProductDescInThirdpartyLanguageAbility=Display products descriptions in the language of the third party
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=默认的条码类型
    -SetDefaultBarcodeTypeThirdParties=合伙人默认条码类型
    -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
    +SetDefaultBarcodeTypeThirdParties=合作方默认条码类型
    +UseUnits=在订单,建议或发票行版本中定义数量的度量单位
     ProductCodeChecker= (产品或服务)编号的生成与检查模块
     ProductOtherConf= 产品/服务 配置
     IsNotADir=这不是目录!
    @@ -1458,9 +1472,9 @@ SyslogFilename=文件名称和路径
     YouCanUseDOL_DATA_ROOT=您可以使用 DOL_DATA_ROOT/dolibarr.log 来表示“documents”目录下的日志文件。您可以设置不同的路径来保存此文件。
     ErrorUnknownSyslogConstant=常量 %s 不是已知的 Syslog 常数
     OnlyWindowsLOG_USER=Windows 仅支持 LOG_USER
    -CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug)
    -SyslogFileNumberOfSaves=Log backups
    -ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency
    +CompressSyslogs=压缩和备份调试日志文件(由模块Log生成以进行调试)
    +SyslogFileNumberOfSaves=日志备份
    +ConfigureCleaningCronjobToSetFrequencyOfSaves=配置清理预定作业以设置日志备份频率
     ##### Donations #####
     DonationsSetup=捐赠模块设置
     DonationsReceiptModel=捐赠收据模板
    @@ -1479,11 +1493,11 @@ BarcodeDescC39=Code 39 条码
     BarcodeDescC128=Code 128 条码
     BarcodeDescDATAMATRIX=二维条形码类型
     BarcodeDescQRCODE=二维码类型
    -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".<br>For example: /usr/local/bin/genbarcode
    +GenbarcodeLocation=条形码生成命令行工具(内部引擎用于某些条形码类型)。必须与“genbarcode”兼容。<br>例如:/ usr / local / bin / genbarcode
     BarcodeInternalEngine=内部引擎
     BarCodeNumberManager=自动定义条形码管理器
     ##### Prelevements #####
    -WithdrawalsSetup=Setup of module Direct debit payment orders
    +WithdrawalsSetup=模块设置直接借记支付订单
     ##### ExternalRSS #####
     ExternalRSSSetup=外部 RSS 的导入设置
     NewRSS=新增 RSS 源
    @@ -1503,7 +1517,7 @@ SendingsSetup=运输模块设置
     SendingsReceiptModel=运输模板
     SendingsNumberingModules=运输编号模块
     SendingsAbility=支持为客户送货时采用发货单
    -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=运单中的额外说明文本
     ##### Deliveries #####
     DeliveryOrderNumberingModules=收货回执编号模块
    @@ -1515,23 +1529,23 @@ AdvancedEditor=高级编辑
     ActivateFCKeditor=为以下为功能启用高级编辑器功能:
     FCKeditorForCompany=描述及注解采用所见即所得的方式建立或编辑(不含产品及服务)
     FCKeditorForProduct=产品/服务的描述及注解采用所见即所得的方式建立或编辑
    -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files.</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= 以所见即所得方式创建/编辑群发邮件(工具->电邮寄送)
     FCKeditorForUserSignature=以所见即所得方式创建/编辑用户签名
    -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing)
    +FCKeditorForMail=所有邮件的WYSIWIG创建/版本(工具 - > eMailing除外)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=虽然数据库连上了,但是看起来这个不是电子商城的数据库(在 table %s 里没看到Key %s )。
    -OSCommerceTestOk=成功连接到服务器'%s'的数据库'%s'上,身份用户 '%s'。
    -OSCommerceTestKo1=服务器'%s'连接成功,但无法打开数据库'%s'。
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=以用户身份'%s'连接至服务器'%s' 失败。
     ##### Stock #####
    -StockSetup=Stock module setup
    -IfYouUsePointOfSaleCheckModule=如果你使用了POS模块,那么这个设置可能会被POS模块忽略。大多数POS模块都是设计来创建快速发票以及在销售后减掉该商品的库存,无论其他模块的设置如何。所以,如果你不希望在POS模块进行销售时减掉库存,那么请同样检查一下POS模块的设置。
    +StockSetup=库存模块设置
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=菜单(项)已删除
     Menus=菜单
     TreeMenuPersonalized=个性化选单
    -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry
    +NotTopTreeMenuPersonalized=个性化菜单未链接到顶部菜单条目
     NewMenu=新建菜单
     Menu=菜单的选择
     MenuHandler=菜单处理程序
    @@ -1548,22 +1562,22 @@ DetailRight=菜单显示为变灰禁用的条件
     DetailLangs=标签翻译使用的 .lang 文件名
     DetailUser=内部 / 外部 / 全部
     Target=目标
    -DetailTarget=目标链接 (_blank代码来打开新窗口)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=级 (-1:顶部菜单,0:头菜单,> 0菜单和子菜单)
     ModifMenu=菜单变化
     DeleteMenu=删除选单项
    -ConfirmDeleteMenu=Are you sure you want to delete menu entry <b>%s</b>?
    -FailedToInitializeMenu=Failed to initialize menu
    +ConfirmDeleteMenu=您确定要删除菜单项<b> %s</b>吗?
    +FailedToInitializeMenu=无法初始化菜单
     ##### Tax #####
     TaxSetup=财政税和增值税模块设置
     OptionVatMode=增值税到期
    -OptionVATDefault=Standard basis
    +OptionVATDefault=标准依据
     OptionVATDebitOption=权责发生制
     OptionVatDefaultDesc=增值税到期: <br> - 商品完成交货(按账单的时间)<br> - 服务付款
     OptionVatDebitOptionDesc=增值税到期: <br> - 交货/付款商品 (按账单的时间) <br> - 服务的付款明细(借记)发出
    -OptionPaymentForProductAndServices=Cash basis for products and services
    -OptionPaymentForProductAndServicesDesc=VAT is due:<br>- on payment for goods<br>- on payments for services
    -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option:
    +OptionPaymentForProductAndServices=产品和服务的现金基础
    +OptionPaymentForProductAndServicesDesc=增值税到期:<br>  - 货物付款<br>  - 服务付款
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=交货时
     OnPayment=付款时
     OnInvoice=发出发票时
    @@ -1572,58 +1586,58 @@ SupposedToBeInvoiceDate=所用账单日期
     Buy=采购
     Sell=销售
     InvoiceDateUsed=所用账单日期
    -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organization), so there is no VAT options to setup.
    -AccountancyCode=Accounting Code
    +YourCompanyDoesNotUseVAT=贵公司已被定义为不含增值税 (首页->设定->公司/机构),所以没有设置增值税的选项。
    +AccountancyCode=科目代码
     AccountancyCodeSell=销售账户代码
     AccountancyCodeBuy=采购账户代码
     ##### Agenda #####
     AgendaSetup=事件及行程模块设置
     PasswordTogetVCalExport=导出链接的授权密钥
     PastDelayVCalExport=不导出早于这个日期的时间
    -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form
    -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view
    -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view
    -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda
    -AGENDA_REMINDER_EMAIL=Enable event reminder <b>by emails</b> (remind option/delay can be defined on each event). Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent at the correct frequency.
    -AGENDA_REMINDER_BROWSER=Enable event reminder <b>on users browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    -AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification
    -AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
    +AGENDA_DEFAULT_VIEW=选择菜单议程时,您希望在默认情况下打开哪个选项卡
    +AGENDA_REMINDER_EMAIL=<b>通过电子邮件</b>启用事件提醒(可以在每个事件上定义提醒选项/延迟)。注意:必须启用模块<strong> %s </strong>并正确设置才能以正确的频率发送提醒。
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
    +AGENDA_REMINDER_BROWSER_SOUND=启用声音通知
    +AGENDA_SHOW_LINKED_OBJECT=将链接对象显示在议程视图中
     ##### Clicktodial #####
     ClickToDialSetup=点击拨号模块设置
    -ClickToDialUrlDesc=Url called when a click on phone picto is done.  In URL, you can use tags<br><b>__PHONETO__</b> that will be replaced with the phone number of person to call<br><b>__PHONEFROM__</b> that will be replaced with phone number of calling person (yours)<br><b>__LOGIN__</b> that will be replaced with clicktodial login (defined on user card)<br><b>__PASS__</b> that will be replaced with clicktodial password (defined on user card).
    -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    -ClickToDialUseTelLink=在电话号码上链接 "tel:" 
    -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
    +ClickToDialUrlDesc=当点击手机图片完成时,网址会被呼叫。在网址中,您可以使用标记为<br> <b> __ PHONETO __ </b>,这些标记将替换为要拨打电话号码的人员的电话号码<br><b> __ PHONEFROM __ </b>将替换为通话电话号码person(你的)<br> <b> __ LOGIN __</b>将替换为clicktodial登录(在用户卡上定义)<br> <b> __ PASS __ </b>将替换为clicktodial密码(在用户上定义)卡)。
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
    +ClickToDialUseTelLink=在电话号码上链接 "tel:"
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=POS
     CashDeskSetup=POS 模块设置
    -CashDeskThirdPartyForSell=使用默认通用合伙人来销售
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=接收现金付款的默认帐户
     CashDeskBankAccountForCheque= 接收支票付款的默认帐户
     CashDeskBankAccountForCB= 接收信用卡支付的默认帐户
    -CashDeskDoNotDecreaseStock=禁用POS模块销售时的库存减少功能(如果选择”否“,则无论库存模块设置如何,每一笔经过POS模块的销售都会减掉该商品的库存)。
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=强制和限制仓库库存减少
    -StockDecreaseForPointOfSaleDisabled=POS模块库存减少功能被禁用
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=POS模块中的库存较少功能不适用于库的管理
    -CashDeskYouDidNotDisableStockDecease=你没有禁用POS模块的库存减少功能,所以必须有一个仓库可以使用。
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=书签模块设置
    -BookmarkDesc=此模块可以管理您的书签您也可以将Dolibarr的任意页面加入您的左侧菜单中。
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=左侧菜单中显示书签的最大数量
     ##### WebServices #####
     WebServicesSetup=SOAP Webservice 模块设置
     WebServicesDesc=启用此模块,Dolibarr成为Web服务器提供其他Web服务。
     WSDLCanBeDownloadedHere=提供服务的 WSDL描述文件可以从此处下载
    -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL
    +EndPointIs=SOAP客户端必须将其请求发送到URL上提供的Dolibarr端点
     ##### API ####
     ApiSetup=API模块设置
    -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services.
    -ApiProductionMode=Enable production mode (this will activate use of a cache for services management)
    -ApiExporerIs=You can explore and test the APIs at URL
    -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed
    +ApiDesc=通过启用此模块,Dolibarr成为REST服务器以提供各种Web服务。
    +ApiProductionMode=启用生产模式(这将激活使用缓存进行服务管理)
    +ApiExporerIs=您可以在URL上浏览和测试API
    +OnlyActiveElementsAreExposed=仅公开已启用模块中的元素
     ApiKey=API的Key
    -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it.
    +WarningAPIExplorerDisabled=API资源管理器已被禁用。 API资源管理器不需要提供API服务。它是开发人员查找/测试REST API的工具。如果您需要此工具,请进入模块API REST的设置以激活它。
     ##### Bank #####
     BankSetupModule=银行模块设置
     FreeLegalTextOnChequeReceipts=支票回执中的额外说明文本
    @@ -1632,13 +1646,13 @@ BankOrderGlobal=一般
     BankOrderGlobalDesc=一般的显示顺序
     BankOrderES=西班牙语
     BankOrderESDesc=西班牙语显示顺序
    -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module
    +ChequeReceiptsNumberingModule=检查收据编号模块
     ##### Multicompany #####
     MultiCompanySetup=多公司模块设置
     ##### Suppliers #####
     SuppliersSetup=供应商模块设置
    -SuppliersCommandModel=Complete template of prchase order (logo...)
    -SuppliersInvoiceModel=Complete template of vendor invoice (logo...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
    +SuppliersInvoiceModel=采购账单的完整模板(LOGO标识...)
     SuppliersInvoiceNumberingModel=采购账单编号模块
     IfSetToYesDontForgetPermission=如果选择"是",请不要忘记为用户和组设置二次审核的权限
     ##### GeoIPMaxmind #####
    @@ -1654,19 +1668,19 @@ ProjectsSetup=项目模块设置
     ProjectsModelModule=项目报告文档模板
     TasksNumberingModules=任务编号模块
     TaskModelModule=任务报告文档模板
    -UseSearchToSelectProject=Wait you press a key before loading content of project combo list (This may increase performance if you have a large number of project, but it is less convenient)
    +UseSearchToSelectProject=Wait until a key is pressed before loading content of Project combo list.<br>This may improve performance if you have a large number of projects, but it is less convenient.
     ##### ECM (GED) #####
     ##### Fiscal Year #####
    -AccountingPeriods=Accounting periods
    -AccountingPeriodCard=Accounting period
    -NewFiscalYear=New accounting period
    -OpenFiscalYear=Open accounting period
    -CloseFiscalYear=Close accounting period
    -DeleteFiscalYear=Delete accounting period
    -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period?
    -ShowFiscalYear=Show accounting period
    +AccountingPeriods=会计期间
    +AccountingPeriodCard=会计期间
    +NewFiscalYear=新会计期间
    +OpenFiscalYear=开放会计期间
    +CloseFiscalYear=关闭会计期间
    +DeleteFiscalYear=删除会计期间
    +ConfirmDeleteFiscalYear=您确定要删除此会计期间吗?
    +ShowFiscalYear=显示会计期间
     AlwaysEditable=允许编辑
    -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application)
    +MAIN_APPLICATION_TITLE=强制显示应用程序的名称(警告:在此处设置您自己的名称可能会在使用DoliDroid移动应用程序时破坏自动填充登录功能)
     NbMajMin=最少的大写字符数
     NbNumMin=最少的数字数
     NbSpeMin=最少的特殊字符数
    @@ -1675,90 +1689,91 @@ NoAmbiCaracAutoGeneration=不使用模糊字符 (例如"1","l","i","|","0","O")
     SalariesSetup=薪酬模块设置
     SortOrder=排序顺序
     Format=格式
    -TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers and vendors payment type
    +TypePaymentDesc=0:客户支付类型,1:供应商支付类型,2:客户和供应商的付款方式
     IncludePath=包含路径 (定义变量 %s)
     ExpenseReportsSetup=费用报表模块设置
     TemplatePDFExpenseReports=用于生成费用报表文件的文件模板
    -ExpenseReportsIkSetup=Setup of module Expense Reports - Milles index
    -ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules
    -ExpenseReportNumberingModules=Expense reports numbering module
    -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only.
    +ExpenseReportsIkSetup=模块费用报告的设置 -  Milles索引
    +ExpenseReportsRulesSetup=模块费用报告的设置 - 规则
    +ExpenseReportNumberingModules=费用报告编号模块
    +NoModueToManageStockIncrease=没有能够管理自动库存增加的模块已被激活。库存增加仅在手动输入时完成。
     YouMayFindNotificationsFeaturesIntoModuleNotification=你需要在"Notification"通知模块中设置并启用EMail通知 功能才能使用它 。
    -ListOfNotificationsPerUser=List of notifications per user*
    -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact**
    +ListOfNotificationsPerUser=每个用户的通知列表*
    +ListOfNotificationsPerUserOrContact=每个用户*或每个联系人的通知列表**
     ListOfFixedNotifications=固定通知列表
    -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users
    -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
    +GoOntoContactCardToAddMore=转到合作方的“通知”标签,添加或删除联系人/地址的通知
     Threshold=阈值
     BackupDumpWizard=数据库转储备份向导
    -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason:
    -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do.
    -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file <strong>%s</strong> to allow this feature.
    -ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to add the 2 directive lines:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
    +SomethingMakeInstallFromWebNotPossible=由于以下原因,无法从Web界面安装外部模块:
    +SomethingMakeInstallFromWebNotPossible2=因此,此处描述的升级过程只是特权用户可以执行的手动步骤。
    +InstallModuleFromWebHasBeenDisabledByFile=管理员已禁用从应用程序安装外部模块。您必须要求他删除文件<strong> %s </strong>以允许此功能。
    +ConfFileMustContainCustom=从应用程序安装或构建外部模块需要将模块文件保存到目录<strong> %s</strong>中。要让Dolibarr处理此目录,您必须设置<strong> conf / conf.php </strong>以添加2个指令行:<br> <strong> $ dolibarr_main_url_root_alt ='/ custom'; </strong> <br>的<strong> $ dolibarr_main_document_root_alt = '%s /自定义';</strong>
     HighlightLinesOnMouseHover=当鼠标经过表格明细时高亮显示
    -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
    -TextTitleColor=Text color of Page title
    +HighlightLinesColor=当鼠标经过时突出显示线条的颜色(保持为空而没有突出显示)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
    +TextTitleColor=页面标题的文字颜色
     LinkColor=颜色链接
    -PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective
    -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes
    +PressF5AfterChangingThis=在键盘上按CTRL + F5或更改此值后清除浏览器缓存以使其生效
    +NotSupportedByAllThemes=将与核心主题一起使用,可能不受外部主题的支持
     BackgroundColor=背景颜色
     TopMenuBackgroundColor=顶部菜单背景颜色
     TopMenuDisableImages=隐藏顶部菜单图片
     LeftMenuBackgroundColor=左侧菜单背景颜色
     BackgroundTableTitleColor=清单表格表头背景颜色
    -BackgroundTableTitleTextColor=Text color for Table title line
    +BackgroundTableTitleTextColor=表标题行的文本颜色
     BackgroundTableLineOddColor=表格奇数背景颜色
     BackgroundTableLineEvenColor=表格偶数背景颜色
     MinimumNoticePeriod=最小通知间隔
    -NbAddedAutomatically=Number of days added to counters of users (automatically) each month
    -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters.
    -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    -ColorFormat=The RGB color is in HEX format, eg: FF0000
    -PositionIntoComboList=Position of line into combo lists
    +NbAddedAutomatically=每月添加到用户计数器(自动)的天数
    +EnterAnyCode=该字段包含标识行的引用。输入您选择的任何值,但不包含特殊字符。
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
    +ColorFormat=RGB颜色采用HEX格式,例如:FF0000
    +PositionIntoComboList=行位置到组合列表中
     SellTaxRate=消费税率
    -RecuperableOnly=Yes for VAT "Not Perceived but Recoverable" dedicated for some state in France. Keep value to "No" in all other cases.
    +RecuperableOnly=适用于法国某些州的增值税“Not Perceived but Recoverable”是的。在所有其他情况下,将值保持为“否”。
     UrlTrackingDesc=如果运输公司提供页面来追踪运单状态,你可以将网页输入到这里。你可以在网址中使用 {TRACKID} 字段来替换实际运单号,以便在链接进入时直接进入到该运单的运输状态。
    -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    -TemplateForElement=This template record is dedicated to which element
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
    +TemplateForElement=此模板记录专用于哪个元素
     TypeOfTemplate=模板类型
    -TemplateIsVisibleByOwnerOnly=只有创建者对mubankejian
    -VisibleEverywhere=Visible everywhere
    -VisibleNowhere=Visible nowhere
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
    +VisibleEverywhere=四处可见
    +VisibleNowhere=无处可见
     FixTZ=时区修复
     FillFixTZOnlyIfRequired=例:+2 (只有问题发生时才填写)
     ExpectedChecksum=预计校验
     CurrentChecksum=当前校验
    -ForcedConstants=Required constant values
    +ForcedConstants=必需的常量值
     MailToSendProposal=客户报价
     MailToSendOrder=客户订单
     MailToSendInvoice=客户发票
     MailToSendShipment=运输
     MailToSendIntervention=干预
    -MailToSendSupplierRequestForQuotation=Quotation request
    -MailToSendSupplierOrder=Purchase orders
    -MailToSendSupplierInvoice=Vendor invoices
    +MailToSendSupplierRequestForQuotation=报价请求
    +MailToSendSupplierOrder=订单
    +MailToSendSupplierInvoice=供应商发票
     MailToSendContract=合同
    -MailToThirdparty=合伙人
    +MailToThirdparty=合作方
     MailToMember=会员
     MailToUser=用户
    -MailToProject=Projects page
    +MailToProject=项目页面
     ByDefaultInList=默认显示列表视图
    -YouUseLastStableVersion=You use the latest stable version
    -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites)
    -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites)
    -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases.
    +YouUseLastStableVersion=您使用最新的稳定版本
    +TitleExampleForMajorRelease=您可以用来宣布此主要版本的消息示例(可以在您的网站上使用它)
    +TitleExampleForMaintenanceRelease=您可以用来宣布此维护版本的消息示例(可以在您的网站上使用它)
    +ExampleOfNewsMessageForMajorRelease=Dolibarr ERP&CRM %s可用。版本%s是一个主要版本,为用户和开发人员提供了许多新功能。您可以从https://www.dolibarr.org portal(子目录稳定版本)的下载区下载它。您可以阅读<a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a>以获取完整的更改列表。
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=产品文件模板
    -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number.
    -SeeSubstitutionVars=See * note for list of possible substitution variables
    -SeeChangeLog=See ChangeLog file (english only)
    -AllPublishers=All publishers
    -UnknownPublishers=Unknown publishers
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
    +SeeSubstitutionVars=有关可能的替换变量列表,请参阅* note
    +SeeChangeLog=请参阅ChangeLog文件(仅英文)
    +AllPublishers=所有出版商
    +UnknownPublishers=未知的发布商
     AddRemoveTabs=添加或删除标签
    -AddDataTables=Add object tables
    -AddDictionaries=Add dictionaries tables
    -AddData=Add objects or dictionaries data
    +AddDataTables=添加对象表
    +AddDictionaries=添加词典表
    +AddData=添加对象或词典数据
     AddBoxes=添加插件
     AddSheduledJobs=添加计划任务
     AddHooks=添加钩子
    @@ -1769,35 +1784,71 @@ AddExportProfiles=添加导出配置
     AddImportProfiles=添加导入配置
     AddOtherPagesOrServices=添加其他页面或服务
     AddModels=添加文档或数据模板
    -AddSubstitutions=Add keys substitutions
    -DetectionNotPossible=Detection not possible
    -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call)
    +AddSubstitutions=添加密钥替换
    +DetectionNotPossible=检测不可能
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=可用的API列表
    -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter <strong>$dolibarr_main_restrict_os_commands</strong> into <strong>conf.php</strong> file.
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=加载页
    -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments
    -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary.
    -UserHasNoPermissions=This user has no permission defined
    -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days")
    -BaseCurrency=Reference currency of the company (go into setup of company to change this)
    -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016).
    -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software.
    -MAIN_PDF_MARGIN_LEFT=Left margin on PDF
    -MAIN_PDF_MARGIN_RIGHT=Right margin on PDF
    -MAIN_PDF_MARGIN_TOP=Top margin on PDF
    -MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
    -SetToYesIfGroupIsComputationOfOtherGroups=Set this to yes if this group is a computation of other groups
    -EnterCalculationRuleIfPreviousFieldIsYes=Enter calculcation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    -SeveralLangugeVariatFound=Several language variants found
    -COMPANY_AQUARIUM_REMOVE_SPECIAL=Remove special characters
    -COMPANY_AQUARIUM_CLEAN_REGEX=Regex filter to clean value (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR contact
    -GDPRContactDesc=If you store data about European companies/citizen, you can store here the contact who is responsible for the General Data Protection Regulation
    +SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", the price will also be the same for all companies if products are shared between environments
    +ModuleEnabledAdminMustCheckRights=模块已激活。已激活模块的权限仅授予管理员用户。如有必要,您可能需要手动向其他用户或组授予权限。
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
    +BaseCurrency=公司的参考货币(进入公司设置改变这个)
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
    +MAIN_PDF_MARGIN_LEFT=PDF的左边距
    +MAIN_PDF_MARGIN_RIGHT=PDF的右边距
    +MAIN_PDF_MARGIN_TOP=PDF的上边距
    +MAIN_PDF_MARGIN_BOTTOM=PDF的底部边距
    +NothingToSetup=There is no specific setup to do for this module.
    +SetToYesIfGroupIsComputationOfOtherGroups=如果此组是其他组的计算,则将此值设置为yes
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
    +SeveralLangugeVariatFound=找到了几种语言变体
    +COMPANY_AQUARIUM_REMOVE_SPECIAL=删除特殊字符
    +COMPANY_AQUARIUM_CLEAN_REGEX=正则表达式过滤器清理值(COMPANY_AQUARIUM_CLEAN_REGEX)
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=You can delete this file on server with Command Line:<br>%s
    +ChartLoaded=Chart of account loaded
    +SocialNetworkSetup=Setup of module Social Networks
    +EnableFeatureFor=Enable features for <strong>%s</strong>
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=邮编
     ##### Resource ####
    -ResourceSetup=Configuration du module Resource
    -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list).
    -DisabledResourceLinkUser=Disable feature to link a resource to users
    -DisabledResourceLinkContact=Disable feature to link a resource to contacts
    -ConfirmUnactivation=Confirm module reset
    +ResourceSetup=配置模块资源
    +UseSearchToSelectResource=使用搜索表单选择资源(而不是下拉列表)。
    +DisabledResourceLinkUser=禁用将资源链接到用户的功能
    +DisabledResourceLinkContact=禁用将资源链接到联系人的功能
    +ConfirmUnactivation=确认模块重置
    +OnMobileOnly=On small screen (smartphone) only
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/zh_CN/banks.lang b/htdocs/langs/zh_CN/banks.lang
    index bdf90957a3b..991d3a1d502 100644
    --- a/htdocs/langs/zh_CN/banks.lang
    +++ b/htdocs/langs/zh_CN/banks.lang
    @@ -1,13 +1,13 @@
     # Dolibarr language file - Source file is en_US - banks
     Bank=银行
    -MenuBankCash=Bank | Cash
    -MenuVariousPayment=Miscellaneous payments
    -MenuNewVariousPayment=New Miscellaneous payment
    +MenuBankCash=银行|现金
    +MenuVariousPayment=杂项付款
    +MenuNewVariousPayment=新的杂项付款
     BankName=银行名称
     FinancialAccount=帐户
     BankAccount=银行帐户
     BankAccounts=银行帐户
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=银行|网关
     ShowAccount=显示帐户
     AccountRef=财务帐号
     AccountLabel=财务帐户标签
    @@ -31,12 +31,12 @@ Reconciliation=和解
     RIB=银行帐号
     IBAN=IBAN号码
     BIC=的BIC / SWIFT的号码
    -SwiftValid=BIC/SWIFT valid
    -SwiftVNotalid=BIC/SWIFT not valid
    -IbanValid=BAN valid
    -IbanNotValid=BAN not valid
    -StandingOrders=Direct Debit orders
    -StandingOrder=Direct debit order
    +SwiftValid=BIC / SWIFT有效
    +SwiftVNotalid=BIC / SWIFT无效
    +IbanValid=BAN有效
    +IbanNotValid=BAN无效
    +StandingOrders=直接借记订单
    +StandingOrder=直接借记订单
     AccountStatement=户口结单
     AccountStatementShort=声明
     AccountStatements=户口结单
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=帐户地址
     BankAccountCountry=国家
     BankAccountOwner=帐户持有人姓名
     BankAccountOwnerAddress=帐户持有人地址
    -RIBControlError=值的完整性检查失败。这意味着此帐号的信息不完整或错误(检查国家,数字和IBAN)。
    +RIBControlError=值的完整性检查失败。这意味着此帐号的信息不完整或不正确(请检查国家/地区,号码和IBAN)。
     CreateAccount=创建帐户
     NewBankAccount=新帐户
     NewFinancialAccount=新建财务账号
    @@ -60,42 +60,43 @@ BankType2=现金帐户
     AccountsArea=帐户区
     AccountCard=户口信息
     DeleteAccount=删除帐户
    -ConfirmDeleteAccount=Are you sure you want to delete this account?
    +ConfirmDeleteAccount=您确定要删除此帐户吗?
     Account=帐户
    -BankTransactionByCategories=Bank entries by categories
    -BankTransactionForCategory=Bank entries for category <b>%s</b>
    +BankTransactionByCategories=银行分类条目
    +BankTransactionForCategory=类别<b> %s</b>的银行条目
     RemoveFromRubrique=删除链接分类
    -RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category?
    -ListBankTransactions=List of bank entries
    +RemoveFromRubriqueConfirm=您确定要删除条目和类别之间的链接吗?
    +ListBankTransactions=银行条目清单
     IdTransaction=交易ID
    -BankTransactions=Bank entries
    -BankTransaction=Bank entry
    -ListTransactions=List entries
    -ListTransactionsByCategory=List entries/category
    -TransactionsToConciliate=Entries to reconcile
    +BankTransactions=银行条目
    +BankTransaction=银行条目
    +ListTransactions=列表条目
    +ListTransactionsByCategory=列表条目/类别
    +TransactionsToConciliate=调和的条目
     Conciliable=可以两全
     Conciliate=调和
     Conciliation=和解
    -ReconciliationLate=Reconciliation late
    +SaveStatementOnly=仅保存声明
    +ReconciliationLate=调解逾期
     IncludeClosedAccount=包括失效账户
     OnlyOpenedAccount=仅有效账户
     AccountToCredit=帐户信用
     AccountToDebit=帐户转帐
     DisableConciliation=此帐户的禁用和解功能
     ConciliationDisabled=和解功能禁用
    -LinkedToAConciliatedTransaction=Linked to a conciliated entry
    +LinkedToAConciliatedTransaction=与调解的条目相关联
     StatusAccountOpened=打开
     StatusAccountClosed=禁用
     AccountIdShort=数字
     LineRecord=交易
    -AddBankRecord=Add entry
    -AddBankRecordLong=Add entry manually
    -Conciliated=Reconciled
    +AddBankRecord=添加条目
    +AddBankRecordLong=手动添加条目
    +Conciliated=调解
     ConciliatedBy=由调和
     DateConciliating=核对日期
    -BankLineConciliated=Entry reconciled
    -Reconciled=Reconciled
    -NotReconciled=Not reconciled
    +BankLineConciliated=进入调解
    +Reconciled=调解
    +NotReconciled=未调解
     CustomerInvoicePayment=客户付款
     SupplierInvoicePayment=供应商付款
     SubscriptionPayment=认购款项
    @@ -104,26 +105,26 @@ SocialContributionPayment=支付社保/财政税
     BankTransfer=银行转帐
     BankTransfers=银行转帐
     MenuBankInternalTransfer=内部转移
    -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
    +TransferDesc=从一个帐户转移到另一个帐户,Dolibarr将写两条记录(源帐户中的借记和目标帐户中的贷记)。此交易将使用相同金额(标志除外),标签和日期)
     TransferFrom=从
     TransferTo=至
     TransferFromToDone=从<b>%s</b>向<b>%s</b>转帐<b>%s</b>已被记录。
     CheckTransmitter=发射机
    -ValidateCheckReceipt=Validate this check receipt?
    -ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt, no change will be possible once this is done?
    -DeleteCheckReceipt=Delete this check receipt?
    -ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
    +ValidateCheckReceipt=验证此支票收据?
    +ConfirmValidateCheckReceipt=您确定要验证此支票收据,一旦完成,是否可以进行更改?
    +DeleteCheckReceipt=删除此支票收据?
    +ConfirmDeleteCheckReceipt=您确定要删除此支票收据吗?
     BankChecks=银行支票
     BankChecksToReceipt=等待支票存款
     ShowCheckReceipt=显示检查存单
     NumberOfCheques=支票数
    -DeleteTransaction=Delete entry
    -ConfirmDeleteTransaction=Are you sure you want to delete this entry?
    -ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
    +DeleteTransaction=删除条目
    +ConfirmDeleteTransaction=您确定要删除此条目吗?
    +ThisWillAlsoDeleteBankRecord=这也将删除生成的银行条目
     BankMovements=移动
    -PlannedTransactions=Planned entries
    +PlannedTransactions=计划的条目
     Graph=图表
    -ExportDataset_banque_1=Bank entries and account statement
    +ExportDataset_banque_1=银行条目和帐户对帐单
     ExportDataset_banque_2=存款单
     TransactionOnTheOtherAccount=交易的其他帐户
     PaymentNumberUpdateSucceeded=款项更新成功
    @@ -131,35 +132,36 @@ PaymentNumberUpdateFailed=付款数目无法更新
     PaymentDateUpdateSucceeded=付款日期更新成功
     PaymentDateUpdateFailed=付款日期无法更新
     Transactions=交易
    -BankTransactionLine=Bank entry
    -AllAccounts=All bank and cash accounts
    +BankTransactionLine=银行条目
    +AllAccounts=所有银行和现金账户
     BackToAccount=回到帐户
     ShowAllAccounts=显示所有帐户
    -FutureTransaction=在FUTUR的交易。调解没有办法。
    -SelectChequeTransactionAndGenerate=选择/筛选检查纳入支票存款收据,并单击“创建”。
    +FutureTransaction=未来的交易。无法调和。
    +SelectChequeTransactionAndGenerate=选择/过滤支票以包括在支票存款收据中,然后单击“创建”。
     InputReceiptNumber=选择与税率有关的银行声明。 使用一个合适的数值: YYYYMM 或 YYYYMMDD
     EventualyAddCategory=最后,指定一个范畴对其中的记录进行分类
    -ToConciliate=To reconcile?
    +ToConciliate=调和?
     ThenCheckLinesAndConciliate=然后按一下,连线检查银行对账单。
     DefaultRIB=默认BAN
     AllRIB=全部BAN
     LabelRIB=BAN标签
     NoBANRecord=空空如也——没有BAN记录
     DeleteARib=删除BAN记录
    -ConfirmDeleteRib=Are you sure you want to delete this BAN record?
    +ConfirmDeleteRib=您确定要删除此BAN记录吗?
     RejectCheck=退回的支票
    -ConfirmRejectCheck=Are you sure you want to mark this check as rejected?
    +ConfirmRejectCheck=您确定要将此支票标记为已拒绝吗?
     RejectCheckDate=支票被退回的日期
     CheckRejected=退回的支票
     CheckRejectedAndInvoicesReopened=检查退回发票并重新打开发票
    -BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    -DocumentModelBan=Template to print a page with BAN information.
    -NewVariousPayment=New miscellaneous payments
    -VariousPayment=Miscellaneous payments
    -VariousPayments=Miscellaneous payments
    -ShowVariousPayment=Show miscellaneous payments
    -AddVariousPayment=Add miscellaneous payments
    -SEPAMandate=SEPA mandate
    -YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +BankAccountModelModule=银行账户的文档模板
    +DocumentModelSepaMandate=SEPA任务模板。仅适用于欧洲经济共同体的欧洲国家。
    +DocumentModelBan=用于打印具有BAN信息的页面的模板。
    +NewVariousPayment=新的杂项付款
    +VariousPayment=杂项付款
    +VariousPayments=杂项付款
    +ShowVariousPayment=显示杂项付款
    +AddVariousPayment=添加杂项付款
    +SEPAMandate=SEPA授权
    +YourSEPAMandate=您的SEPA授权
    +FindYourSEPAMandate=这是您的SEPA授权,授权我们公司向您的银行直接扣款。返回签名(扫描签名文档)或通过邮件发送给
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/zh_CN/bills.lang b/htdocs/langs/zh_CN/bills.lang
    index 22dcbab9683..8e0f70bb12c 100644
    --- a/htdocs/langs/zh_CN/bills.lang
    +++ b/htdocs/langs/zh_CN/bills.lang
    @@ -1,37 +1,37 @@
     # Dolibarr language file - Source file is en_US - bills
     Bill=发票
     Bills=发票
    -BillsCustomers=客户发票
    +BillsCustomers=顾客发票
     BillsCustomer=客户发票
     BillsSuppliers=供应商发票
    -BillsCustomersUnpaid=客户未付发票
    -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s
    +BillsCustomersUnpaid=未付款顾客发票
    +BillsCustomersUnpaidForCompany=%s的未付款顾客发票
     BillsSuppliersUnpaid=未付供应商发票
    -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s
    +BillsSuppliersUnpaidForCompany=未付款的供应商发票为%s
     BillsLate=逾期付款
     BillsStatistics=客户发票统计
     BillsStatisticsSuppliers=供应商发票统计
    -DisabledBecauseDispatchedInBookkeeping=Disabled because invoice was dispatched into bookkeeping
    -DisabledBecauseNotLastInvoice=Disabled because invoice is not erasable. Some invoices were recorded after this one and it will create holes in the counter.
    +DisabledBecauseDispatchedInBookkeeping=已禁用,因为发票已发送到簿记中
    +DisabledBecauseNotLastInvoice=禁用,因为发票不可擦除。在此之后记录了一些发票,它将在柜台上创建漏洞。
     DisabledBecauseNotErasable=禁止删除
     InvoiceStandard=标准发票
     InvoiceStandardAsk=标准发票
     InvoiceStandardDesc=这种发票是一种常见的发票。
    -InvoiceDeposit=Down payment invoice
    -InvoiceDepositAsk=Down payment invoice
    -InvoiceDepositDesc=This kind of invoice is done when a down payment has been received.
    +InvoiceDeposit=首付发票
    +InvoiceDepositAsk=首付发票
    +InvoiceDepositDesc=这种发票是在收到预付款时完成的。
     InvoiceProForma=形式发票
     InvoiceProFormaAsk=形式发票
     InvoiceProFormaDesc=<b>形式发票</b>是发票的形式,但其没有真正的会计价值。
     InvoiceReplacement=更换发票
     InvoiceReplacementAsk=为发票更换发票
    -InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and replace completely an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=信用记录
     InvoiceAvoirAsk=更正发票的信用记录
    -InvoiceAvoirDesc=<b>信用记录</b>是一个阐述事实的证明,即发票已缴纳的数额相差实在比额(因为顾客错误地多付款,或是因为其归还了部分产品,所以将完全不支付)。
    -invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
    -invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
    -invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
    +invoiceAvoirWithLines=使用原始发票中的行创建贷方通知单
    +invoiceAvoirWithPaymentRestAmount=使用剩余未付原始发票创建贷方通知单
    +invoiceAvoirLineWithPaymentRestAmount=剩余未付金额的信用票据
     ReplaceInvoice=替换%s的发票
     ReplacementInvoice=更换发票
     ReplacedByInvoice=被发票 %s 替换
    @@ -43,7 +43,7 @@ ConsumedBy=消耗
     NotConsumed=不消耗
     NoReplacableInvoice=没有替换的发票
     NoInvoiceToCorrect=没有发票,以纠正
    -InvoiceHasAvoir=Was source of one or several credit notes
    +InvoiceHasAvoir=是一个或几个信用票据的来源
     CardBill=发票信息
     PredefinedInvoices=预定义的发票
     Invoice=发票
    @@ -62,16 +62,16 @@ PaymentBack=付款
     CustomerInvoicePaymentBack=付款
     Payments=付款
     PaymentsBack=付款
    -paymentInInvoiceCurrency=in invoices currency
    +paymentInInvoiceCurrency=在发票货币
     PaidBack=已退款
     DeletePayment=删除付款
    -ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmDeletePayment=您确定要删除此付款吗?
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=供应商付款
     ReceivedPayments=收到的付款
     ReceivedCustomersPayments=收到客户付款
    -PayedSuppliersPayments=支付给供应商的付款
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=收到需要确认的客户付款
     PaymentsReportsForYear=客户 %s 的付款报告
     PaymentsReports=付款报表
    @@ -79,10 +79,10 @@ PaymentsAlreadyDone=付款已完成
     PaymentsBackAlreadyDone=付款已完成
     PaymentRule=付款规则
     PaymentMode=付款方式
    -PaymentTypeDC=Debit/Credit Card
    +PaymentTypeDC=借记卡/信用卡
     PaymentTypePP=PayPal
     IdPaymentMode=付款方式 (id)
    -CodePaymentMode=Payment type (code)
    +CodePaymentMode=付款方式(代码)
     LabelPaymentMode=付款方式 (标签)
     PaymentModeShort=付款方式
     PaymentTerm=付款条件
    @@ -91,8 +91,8 @@ PaymentConditionsShort=付款条件
     PaymentAmount=付款金额
     ValidatePayment=确认付款
     PaymentHigherThanReminderToPay=付款金额比需要支付的金额高
    -HelpPaymentHigherThanReminderToPay=注意,一个或更多的票据付款金额比其他支付更高。 <br>编辑您的进入,否则确认并考虑建立一个每个多缴发票收到超出信用注记。
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=归类为 已支付
     ClassifyPaidPartially=归类分 部分支付
     ClassifyCanceled=归类为 已丢弃
    @@ -107,128 +107,130 @@ SearchACustomerInvoice=搜索客户发票
     SearchASupplierInvoice=搜索供应商发票
     CancelBill=取消发票
     SendRemindByMail=通过电子邮件发送提醒
    -DoPayment=Enter payment
    -DoPaymentBack=Enter refund
    -ConvertToReduc=Mark as credit available
    -ConvertExcessReceivedToReduc=Convert excess received into available credit
    -ConvertExcessPaidToReduc=Convert excess paid into available discount
    +DoPayment=输入付款
    +DoPaymentBack=输入退款
    +ConvertToReduc=标记为可用信用
    +ConvertExcessReceivedToReduc=将超出的收入转换为可用信用
    +ConvertExcessPaidToReduc=将超额付款转换为可用折扣
     EnterPaymentReceivedFromCustomer=输入从客户收到的付款
     EnterPaymentDueToCustomer=为客户创建付款延迟
     DisabledBecauseRemainderToPayIsZero=禁用,因为未支付金额为0
     PriceBase=价格基准
     BillStatus=发票状态
    -StatusOfGeneratedInvoices=Status of generated invoices
    +StatusOfGeneratedInvoices=生成的发票的状态
     BillStatusDraft=草案(需要确认)
     BillStatusPaid=已支付
    -BillStatusPaidBackOrConverted=Credit note refund or marked as credit available
    -BillStatusConverted=Paid (ready for consumption in final invoice)
    +BillStatusPaidBackOrConverted=信用票据退款或标记为可用信用
    +BillStatusConverted=付费(准备在最终发票中消费)
     BillStatusCanceled=已丢弃
     BillStatusValidated=已确认 (需要付款)
     BillStatusStarted=开始
     BillStatusNotPaid=未支付
    -BillStatusNotRefunded=Not refunded
    +BillStatusNotRefunded=没有退款
     BillStatusClosedUnpaid=已关闭 (未支付)
     BillStatusClosedPaidPartially=已支付 (部分)
     BillShortStatusDraft=草稿
     BillShortStatusPaid=已支付
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=已支付
     BillShortStatusCanceled=已丢弃
     BillShortStatusValidated=已确认
     BillShortStatusStarted=开始
     BillShortStatusNotPaid=未支付
    -BillShortStatusNotRefunded=Not refunded
    +BillShortStatusNotRefunded=没有退款
     BillShortStatusClosedUnpaid=禁用
     BillShortStatusClosedPaidPartially=已支付 (部分)
     PaymentStatusToValidShort=需要确认
    -ErrorVATIntraNotConfigured=Intracommunautary增值税号码目前尚未定义。
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=没有默认的支付方式定义。前往发票模块设置,以解决这个问题。
     ErrorCreateBankAccount=创建一个银行帐户,然后到安装发票模块小组,确定付款方式
     ErrorBillNotFound=发票%s不存在
    -ErrorInvoiceAlreadyReplaced=错误,您尝试验证发票来取代发票%,但是,这一发票已被发票%s取代
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=错误,已经使用优惠
     ErrorInvoiceAvoirMustBeNegative=错误,这种类型的发票必须有一个负数
     ErrorInvoiceOfThisTypeMustBePositive=错误,这种类型的发票必须有一个正数
     ErrorCantCancelIfReplacementInvoiceNotValidated=错误,无法取消一个已经被处于草稿状态发票替代的发票
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=发送方
     BillTo=接收方
     ActionsOnBill=发票的动作
    -RecurringInvoiceTemplate=Template / Recurring invoice
    -NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified for generation.
    -FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation.
    -NotARecurringInvoiceTemplate=Not a recurring template invoice
    +RecurringInvoiceTemplate=模板/重复发票
    +NoQualifiedRecurringInvoiceTemplateFound=没有经常生成的模板发票。
    +FoundXQualifiedRecurringInvoiceTemplate=找到%s经常生效的模板发票。
    +NotARecurringInvoiceTemplate=不是定期模板发票
     NewBill=新建发票
    -LastBills=Latest %s invoices
    -LatestTemplateInvoices=Latest %s template invoices
    -LatestCustomerTemplateInvoices=Latest %s customer template invoices
    -LatestSupplierTemplateInvoices=Latest %s supplier template invoices
    -LastCustomersBills=Latest %s customer invoices
    -LastSuppliersBills=Latest %s supplier invoices
    +LastBills=最新的%s发票
    +LatestTemplateInvoices=最新的%s模板发票
    +LatestCustomerTemplateInvoices=最新的%s顾客临时发票
    +LatestSupplierTemplateInvoices=最新的%s供应商模板发票
    +LastCustomersBills=最新%s顾客发票
    +LastSuppliersBills=最新的%s供应商发票
     AllBills=全部发票
    -AllCustomerTemplateInvoices=All template invoices
    +AllCustomerTemplateInvoices=所有模板发票
     OtherBills=其他发票
     DraftBills=发票草稿
    -CustomersDraftInvoices=Customer draft invoices
    -SuppliersDraftInvoices=Supplier draft invoices
    +CustomersDraftInvoices=顾客草稿发票
    +SuppliersDraftInvoices=供货商草稿发票
     Unpaid=未付
    -ConfirmDeleteBill=Are you sure you want to delete this invoice?
    -ConfirmValidateBill=Are you sure you want to validate this invoice with reference <b>%s</b>?
    -ConfirmUnvalidateBill=Are you sure you want to change invoice <b>%s</b> to draft status?
    -ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
    -ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
    -ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    -ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
    -ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
    +ConfirmDeleteBill=您确定要删除此发票吗?
    +ConfirmValidateBill=您确定要参考<b> %s </b>验证此发票吗?
    +ConfirmUnvalidateBill=您确定要将发票<b> %s </b>更改为草稿状态吗?
    +ConfirmClassifyPaidBill=您确定要将发票<b> %s </b>更改为已付款状态吗?
    +ConfirmCancelBill=你确定要取消发票<b>%s</b>吗 ?
    +ConfirmCancelBillQuestion=为什么要将此发票分类为“废弃”?
    +ConfirmClassifyPaidPartially=你确定要将发票<b>%s</b>更改为已支付状态吗?
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyReasonDiscount=剩余未付<b>(%s %s)</b>是一项折扣,因为付款是在期前完成的。
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVat=其余部分支付<b>(%s的%s)</b>是一个折扣,因为获得付款之前任期。我接受失去这个折扣的增值税。
    +ConfirmClassifyPaidPartiallyReasonDiscountVat=其余部分支付<b>(%s的%s)</b>是一个折扣,因为获得付款之前任期。我在此折扣不恢复信贷注意到增值税。
     ConfirmClassifyPaidPartiallyReasonBadCustomer=坏顾客
     ConfirmClassifyPaidPartiallyReasonProductReturned=产品部分退回
     ConfirmClassifyPaidPartiallyReasonOther=因其他原因而放弃余额
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=这个选择是可能的,如果您的发票已提供适当的说明。 (例«只有相应的税收已实际支付给权利扣除价格»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=在一些国家,这种选择是可能的,如果您的发票上只包含正确的说明。
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=使用这个选择,如果所有其他不适合
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>糟糕的客户</b>是一个客户,拒绝支付他的债务。
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=这个选择是付款时使用的是不完整的,因为一些产品被退回
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=使用这个选择,如果所有其他不适合,例如,在以下情况: <br> - 付款不完整,因为有些产品被运回<br> - 索赔额太重要了,因为忘记了一个折扣<br>在所有情况下,金额逾自称必须在会计系统通过建立一个信用更正说明。
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=其他
     ConfirmClassifyAbandonReasonOtherDesc=这一选择将用于所有的其他情形。例如,因为你要创建一个替代发票。
    -ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    -ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
    -ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
    +ConfirmCustomerPayment=您确认<b> %s </ b> %s的付款输入?
    +ConfirmSupplierPayment=你确认这笔<b>%s</b> %s的支付吗?
    +ConfirmValidatePayment=您确定要验证此付款吗?付款验证后,无法进行任何更改。
     ValidateBill=确认发票
     UnvalidateBill=取消确认发票
    -NumberOfBills=发票数
    -NumberOfBillsByMonth=按月发票数
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=发票金额
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=按月发票金额 (税后)
     ShowSocialContribution=显示财政税/增值税
     ShowBill=显示发票
     ShowInvoice=显示发票
     ShowInvoiceReplace=显示替换发票
     ShowInvoiceAvoir=显示信用记录
    -ShowInvoiceDeposit=Show down payment invoice
    -ShowInvoiceSituation=Show situation invoice
    +ShowInvoiceDeposit=显示付款发票
    +ShowInvoiceSituation=显示情况发票
     ShowPayment=显示支付
     AlreadyPaid=已支付
     AlreadyPaidBack=已支付
    -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments)
    +AlreadyPaidNoCreditNotesNoDeposits=已经支付(没有信用票据和预付款)
     Abandoned=已丢弃
     RemainderToPay=未付金额
     RemainderToTake=应付金额
    -RemainderToPayBack=Remaining amount to refund
    +RemainderToPayBack=剩余金额退款
     Rest=待办
     AmountExpected=索赔额
     ExcessReceived=找零
    -ExcessPaid=Excess paid
    +ExcessPaid=超额付款
     EscompteOffered=折扣额 (付款条件前付款)
     EscompteOfferedShort=折扣
     SendBillRef=发票 %s  的提交
     SendReminderBillRef=发票 %s  的提交 (提醒)
    -StandingOrders=Direct debit orders
    -StandingOrder=Direct debit order
    +StandingOrders=直接借记订单
    +StandingOrder=直接借记订单
     NoDraftBills=没有发票草稿
     NoOtherDraftBills=没有其他发票草稿
     NoDraftInvoices=没有发票草稿
    @@ -240,19 +242,19 @@ SendReminderBillByMail=通过电子邮件发送提醒
     RelatedCommercialProposals=相关商业报价
     RelatedRecurringCustomerInvoices=再次关联客户发票
     MenuToValid=需要确认
    -DateMaxPayment=Payment due on
    +DateMaxPayment=付款到期
     DateInvoice=发票日期
    -DatePointOfTax=Point of tax
    +DatePointOfTax=税点
     NoInvoice=没有发票
     ClassifyBill=分类发票
     SupplierBillsToPay=未付供应商发票
    -CustomerBillsUnpaid=客户未付发票
    +CustomerBillsUnpaid=未付款顾客发票
     NonPercuRecuperable=非可收回
     SetConditions=设置付款条件
     SetMode=设置支付方式
     SetRevenuStamp=设置印花税
     Billed=帐单
    -RecurringInvoices=Recurring invoices
    +RecurringInvoices=定期发票
     RepeatableInvoice=模板发票
     RepeatableInvoices=模板发票
     Repeatable=模板
    @@ -260,9 +262,9 @@ Repeatables=模板
     ChangeIntoRepeatableInvoice=转换为模板发票
     CreateRepeatableInvoice=创建模板发票
     CreateFromRepeatableInvoice=从模板发票创建
    -CustomersInvoicesAndInvoiceLines=客户发票和发票的路线
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=客户发票和付款
    -ExportDataset_invoice_1=客户发票清单和发票的路线
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=客户发票和付款
     ProformaBill=形式发票:
     Reduction=降价
    @@ -282,29 +284,29 @@ RelativeDiscount=相对折扣
     GlobalDiscount=全球折扣
     CreditNote=信用记录
     CreditNotes=信用记录
    -CreditNotesOrExcessReceived=Credit notes or excess received
    -Deposit=Down payment
    -Deposits=Down payments
    +CreditNotesOrExcessReceived=信用票据或超额收到
    +Deposit=首付
    +Deposits=首付
     DiscountFromCreditNote=从信用记录折扣 %s
    -DiscountFromDeposit=Down payments from invoice %s
    -DiscountFromExcessReceived=Payments in excess of invoice %s
    -DiscountFromExcessPaid=Payments in excess of invoice %s
    +DiscountFromDeposit=发票%s的预付款
    +DiscountFromExcessReceived=付款超过发票%s
    +DiscountFromExcessPaid=付款超过发票%s
     AbsoluteDiscountUse=这种信用值可以在发票被确认前使用
    -CreditNoteDepositUse=Invoice must be validated to use this kind of credits
    +CreditNoteDepositUse=必须验证发票才能使用此类信用
     NewGlobalDiscount=新的绝对折扣
     NewRelativeDiscount=新的相对折扣
    -DiscountType=Discount type
    +DiscountType=折扣类型
     NoteReason=备注/原因
     ReasonDiscount=原因
     DiscountOfferedBy=授予人
    -DiscountStillRemaining=Discounts or credits available
    -DiscountAlreadyCounted=Discounts or credits already consumed
    -CustomerDiscounts=Customer discounts
    -SupplierDiscounts=Vendors discounts
    +DiscountStillRemaining=提供折扣或积分
    +DiscountAlreadyCounted=已消费的折扣或积分
    +CustomerDiscounts=客户折扣
    +SupplierDiscounts=供应商折扣
     BillAddress=账单地址
    -HelpEscompte=这是给予客户优惠折扣,因为客户在付款条件日期前已经付清全款。
    -HelpAbandonBadCustomer=这一数额已被放弃(客户说是一个坏的客户),并作为一个特殊的松散考虑。
    -HelpAbandonOther=这一数额已被放弃,因为这是一个错误(错误的顾客或由其他替代例如发票)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=财政税/增值税代码
     PaymentId=付款编号
     PaymentRef=付款编号
    @@ -319,57 +321,57 @@ RemoveDiscount=删除折扣
     WatermarkOnDraftBill=基于发票草稿(无则留空)
     InvoiceNotChecked=没有选取发票
     CloneInvoice=复制发票
    -ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
    +ConfirmCloneInvoice=你确定要复制发票 <b>%s</b> 吗 ?
     DisabledBecauseReplacedInvoice=发票已经被取代,动作被拒绝
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=付款号码
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=折扣分为两部分
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=输入金额两部分的金额:
    -TotalOfTwoDiscountMustEqualsOriginal=两个新的折扣总额必须等于原来折扣金额。
    -ConfirmRemoveDiscount=Are you sure you want to remove this discount?
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
    +ConfirmRemoveDiscount=您确定要删除此折扣吗?
     RelatedBill=关联发票
     RelatedBills=关联发票
     RelatedCustomerInvoices=关联客户发票
     RelatedSupplierInvoices=关联供应商发票
     LatestRelatedBill=最新关联发票
    -WarningBillExist=警告,一个或多个发票已经存在
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=PDF 合并工具
    -AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +AmountPaymentDistributedOnInvoice=付款金额在发票上分配
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=付款备注
    -ListOfPreviousSituationInvoices=List of previous situation invoices
    -ListOfNextSituationInvoices=List of next situation invoices
    -ListOfSituationInvoices=List of situation invoices
    -CurrentSituationTotal=Total current situation
    -DisabledBecauseNotEnouthCreditNote=To remove a situation invoice from cycle, this invoice's credit note total must cover this invoice total
    -RemoveSituationFromCycle=Remove this invoice from cycle
    -ConfirmRemoveSituationFromCycle=Remove this invoice %s from cycle ?
    -ConfirmOuting=Confirm outing
    +ListOfPreviousSituationInvoices=以前的情况发票清单
    +ListOfNextSituationInvoices=下一个情况发票清单
    +ListOfSituationInvoices=情况发票清单
    +CurrentSituationTotal=总现状
    +DisabledBecauseNotEnouthCreditNote=要从周期中删除情况发票,此发票的贷方通知单总计必须涵盖此发票总额
    +RemoveSituationFromCycle=从周期中删除此发票
    +ConfirmRemoveSituationFromCycle=从周期中删除此发票%s?
    +ConfirmOuting=确认外出
     FrequencyPer_d=每 %s 天
     FrequencyPer_m=每 %s 月
     FrequencyPer_y=每 %s 年
    -FrequencyUnit=Frequency unit
    -toolTipFrequency=Examples:<br><b>Set 7, Day</b>: give a new invoice every 7 days<br><b>Set 3, Month</b>: give a new invoice every 3 month
    -NextDateToExecution=Date for next invoice generation
    -NextDateToExecutionShort=Date next gen.
    -DateLastGeneration=Date of latest generation
    -DateLastGenerationShort=Date latest gen.
    -MaxPeriodNumber=Max number of invoice generation
    -NbOfGenerationDone=Number of invoice generation already done
    -NbOfGenerationDoneShort=Number of generation done
    -MaxGenerationReached=Maximum number of generations reached
    -InvoiceAutoValidate=Validate invoices automatically
    -GeneratedFromRecurringInvoice=Generated from template recurring invoice %s
    -DateIsNotEnough=Date not reached yet
    -InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s
    -WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date
    -WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date
    -ViewAvailableGlobalDiscounts=View available discounts
    +FrequencyUnit=频率单位
    +toolTipFrequency=例如:<br /><b>设置 7 / 天</b>: 每 7 天给它一张新发票<br /><b>设置 3 / 个月</b>: 每 3 个月给发一张发票过去
    +NextDateToExecution=下一次发票生成的日期
    +NextDateToExecutionShort=下一代日期。
    +DateLastGeneration=最新一代的日期
    +DateLastGenerationShort=最新日期。
    +MaxPeriodNumber=最大发票数量
    +NbOfGenerationDone=已完成的发票数量
    +NbOfGenerationDoneShort=完成的代数
    +MaxGenerationReached=达到最大代数
    +InvoiceAutoValidate=自动验证发票
    +GeneratedFromRecurringInvoice=从模板重复发票%s生成
    +DateIsNotEnough=尚未达到日期
    +InvoiceGeneratedFromTemplate=从周期性模板发票%s生成的发票%s
    +WarningInvoiceDateInFuture=警告,发票日期高于当前日期
    +WarningInvoiceDateTooFarInFuture=警告,发票日期与当前日期相差太远
    +ViewAvailableGlobalDiscounts=查看可用折扣
     # PaymentConditions
     Statut=状态
    -PaymentConditionShortRECEP=Due Upon Receipt
    -PaymentConditionRECEP=Due Upon Receipt
    +PaymentConditionShortRECEP=由于收到
    +PaymentConditionRECEP=由于收到
     PaymentConditionShort30D=30天
     PaymentCondition30D=30天
     PaymentConditionShort30DENDMONTH=30天后的那个月底
    @@ -384,22 +386,22 @@ PaymentConditionShortPT_ORDER=订单
     PaymentConditionPT_ORDER=在订单
     PaymentConditionShortPT_5050=50-50
     PaymentConditionPT_5050=预付50%% ,50%%货到后付款
    -PaymentConditionShort10D=10 days
    -PaymentCondition10D=10 days
    -PaymentConditionShort10DENDMONTH=10 days of month-end
    -PaymentCondition10DENDMONTH=Within 10 days following the end of the month
    -PaymentConditionShort14D=14 days
    -PaymentCondition14D=14 days
    -PaymentConditionShort14DENDMONTH=14 days of month-end
    -PaymentCondition14DENDMONTH=Within 14 days following the end of the month
    +PaymentConditionShort10D=10天
    +PaymentCondition10D=10天
    +PaymentConditionShort10DENDMONTH=月末10天
    +PaymentCondition10DENDMONTH=在月底之后的10天内
    +PaymentConditionShort14D=14天
    +PaymentCondition14D=14天
    +PaymentConditionShort14DENDMONTH=月末14天
    +PaymentCondition14DENDMONTH=在月底之后的14天内
     FixAmount=固定金额
     VarAmount=可变金额(%% tot.)
    -VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s'
    +VarAmountOneLine=可变金额(%% tot。) -  1行标签'%s'
     # PaymentType
     PaymentTypeVIR=银行转帐
     PaymentTypeShortVIR=银行转帐
    -PaymentTypePRE=Direct debit payment order
    -PaymentTypeShortPRE=Debit payment order
    +PaymentTypePRE=直接付款订单
    +PaymentTypeShortPRE=借记卡付款单
     PaymentTypeLIQ=现金
     PaymentTypeShortLIQ=现金
     PaymentTypeCB=信用卡
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=支票
     PaymentTypeShortCHQ=支票
     PaymentTypeTIP=TIP (付款交单)
     PaymentTypeShortTIP=TIP款项
    -PaymentTypeVAD=在线支付
    -PaymentTypeShortVAD=在线支付
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=银行账单草稿
     PaymentTypeShortTRA=草稿
     PaymentTypeFAC=因素
     PaymentTypeShortFAC=因素
     BankDetails=银行详情
     BankCode=银行代码
    -DeskCode=台代码
    +DeskCode=Office code
     BankAccountNumber=帐号
    -BankAccountNumberKey=关键
    +BankAccountNumberKey=Check digits
     Residence=直接借记
    -IBANNumber=IBAN号码
    +IBANNumber=IBAN complete account number
     IBAN=银行IBAN
     BIC=BIC/SWIFT
     BICNumber=BIC/SWIFT 号码
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=款项转账至以下银行帐户
     VATIsNotUsedForInvoice=* 不得包含增值税, 详见CGI-293B
     LawApplicationPart1=通过对应用的12/05/80法80.335
     LawApplicationPart2=货物仍然是该人士/组织的资产
    -LawApplicationPart3=卖方直到完全兑现
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=他们的价格。
     LimitedLiabilityCompanyCapital=有限责任公司(SARL)注册资金
     UseLine=申请
    @@ -460,40 +462,41 @@ ChequesReceipts=检查收据
     ChequesArea=支票存款区
     ChequeDeposits=支票存款
     Cheques=支票
    -DepositId=Id deposit
    -NbCheque=Number of checks
    -CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=使用客户账单联络方式而不是合伙人的联络方式作为发票的接收人
    +DepositId=Id存款
    +NbCheque=支票数量
    +CreditNoteConvertedIntoDiscount=此%s已被转换为%s
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=显示所有未付发票
     ShowUnpaidLateOnly=只显示超时未付发票
     PaymentInvoiceRef=%s的付款发票
     ValidateInvoice=确认发票
    -ValidateInvoices=Validate invoices
    +ValidateInvoices=验证发票
     Cash=现金
     Reported=延迟
     DisabledBecausePayments=不可操作,因为已经接收了付款
     CantRemovePaymentWithOneInvoicePaid=无法删除,因为至少有一份发票被归类为已支付
     ExpectedToPay=预期付款
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=已由此付款来支付
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=分类“付费”的所有信贷注意到完全支付。
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=全部发票仍然没有支付将被自动关闭状态“支付最高”。
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=支付
     ToMakePaymentBack=支付
     ListOfYourUnpaidInvoices=未付发票清单
    -NoteListOfYourUnpaidInvoices=注:此清单只包含链接到您作为一个销售代表的合伙人发票。
    +NoteListOfYourUnpaidInvoices=注:此清单只包含链接到指派给您作为销售代表的合作方发票。
     RevenueStamp=印花税票
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    -YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
    +YouMustCreateStandardInvoiceFirstDesc=您必须先创建标准发票并将其转换为“模板”以创建新模板发票
     PDFCrabeDescription=发票模板Crabe。一个完整的发票模板(支援增值税选项,折扣,付款条件,标识等..)
    -PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
    +PDFCrevetteDescription=发票PDF模板Crevette。情况发票的完整发票模板
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    +MarsNumRefModelDesc1=标准发票的格式为%syymm-nnnn,换发票为%syymm-nnnn,预付款发票为%syymm-nnnn,yy为年份为%syymm-nnnn,mm为月,nnnn为没有中断的序列回到0
     TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module.
    -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    +CactusNumRefModelDesc1=返回编号为标准发票的格式为%syymm-nnnn,信用票据为%syymm-nnnn,yy为年的预付款发票为%syymm-nnnn,mm为月,nnnn为没有中断且不返回0的序列
     ##### Types de contacts #####
     TypeContact_facture_internal_SALESREPFOLL=代表跟进客户发票
     TypeContact_facture_external_BILLING=客户发票联络人
    @@ -504,45 +507,46 @@ TypeContact_invoice_supplier_external_BILLING=供应商发票联络人
     TypeContact_invoice_supplier_external_SHIPPING=供应商送货联络人
     TypeContact_invoice_supplier_external_SERVICE=供应商服务联络人
     # Situation invoices
    -InvoiceFirstSituationAsk=First situation invoice
    -InvoiceFirstSituationDesc=The <b>situation invoices</b> are tied to situations related to a progression, for example the progression of a construction. Each situation is tied to an invoice.
    -InvoiceSituation=Situation invoice
    -InvoiceSituationAsk=Invoice following the situation
    -InvoiceSituationDesc=Create a new situation following an already existing one
    -SituationAmount=Situation invoice amount(net)
    -SituationDeduction=Situation subtraction
    +InvoiceFirstSituationAsk=第一种情况发票
    +InvoiceFirstSituationDesc=<b>现状发票</b>与进展相关的情况有关,例如建筑的进展。每种情况都与发票挂钩。
    +InvoiceSituation=情况发票
    +InvoiceSituationAsk=根据情况发票
    +InvoiceSituationDesc=在已有的情况之后创建新情况
    +SituationAmount=情况发票金额(净额)
    +SituationDeduction=情况减法
     ModifyAllLines=全部变更
    -CreateNextSituationInvoice=Create next situation
    -ErrorFindNextSituationInvoice=Error unable to find next situation cycle ref
    -ErrorOutingSituationInvoiceOnUpdate=Unable to outing this situation invoice.
    -ErrorOutingSituationInvoiceCreditNote=Unable to outing linked credit note.
    -NotLastInCycle=This invoice is not the latest in cycle and must not be modified.
    -DisabledBecauseNotLastInCycle=The next situation already exists.
    -DisabledBecauseFinal=This situation is final.
    -situationInvoiceShortcode_AS=AS
    +CreateNextSituationInvoice=创建下一个情况
    +ErrorFindNextSituationInvoice=错误无法找到下一个情况循环参考
    +ErrorOutingSituationInvoiceOnUpdate=无法出租这种情况发票。
    +ErrorOutingSituationInvoiceCreditNote=无法外出联系信用票据。
    +NotLastInCycle=此发票不是最新的发票,不得修改。
    +DisabledBecauseNotLastInCycle=下一种情况已经存在。
    +DisabledBecauseFinal=这种情况是最终的。
    +situationInvoiceShortcode_AS=如
     situationInvoiceShortcode_S=S
    -CantBeLessThanMinPercent=The progress can't be smaller than its value in the previous situation.
    -NoSituations=No open situations
    -InvoiceSituationLast=Final and general invoice
    -PDFCrevetteSituationNumber=Situation N°%s
    -PDFCrevetteSituationInvoiceLineDecompte=Situation invoice - COUNT
    -PDFCrevetteSituationInvoiceTitle=Situation invoice
    -PDFCrevetteSituationInvoiceLine=Situation N°%s : Inv. N°%s on %s
    -TotalSituationInvoice=Total situation
    -invoiceLineProgressError=Invoice line progress can't be greater than or equal to the next invoice line
    -updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
    -ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
    -ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    -DeleteRepeatableInvoice=Delete template invoice
    -ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
    -CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    -BillCreated=%s bill(s) created
    -StatusOfGeneratedDocuments=Status of document generation
    -DoNotGenerateDoc=Do not generate document file
    -AutogenerateDoc=Auto generate document file
    -AutoFillDateFrom=Set start date for service line with invoice date
    -AutoFillDateFromShort=Set start date
    -AutoFillDateTo=Set end date for service line with next invoice date
    -AutoFillDateToShort=Set end date
    -MaxNumberOfGenerationReached=Max number of gen. reached
    +CantBeLessThanMinPercent=进展不能小于以前情况下的价值。
    +NoSituations=没有开放的情况
    +InvoiceSituationLast=最终和一般发票
    +PDFCrevetteSituationNumber=情况N°%s
    +PDFCrevetteSituationInvoiceLineDecompte=情况发票 -  COUNT
    +PDFCrevetteSituationInvoiceTitle=情况发票
    +PDFCrevetteSituationInvoiceLine=情况N°%s:Inv。 N°%s,电话:%s
    +TotalSituationInvoice=总情况
    +invoiceLineProgressError=发票行进度不能大于或等于下一个发票行
    +updatePriceNextInvoiceErrorUpdateline=错误:发票行更新价格:%s
    +ToCreateARecurringInvoice=要为此合同创建定期发票,请先创建此草稿发票,然后将其转换为发票模板,并定义生成未来发票的频率。
    +ToCreateARecurringInvoiceGene=要定期和手动生成未来发票,只需进入菜单<strong> %s  -  %s  -  %s </strong>。
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +DeleteRepeatableInvoice=删除模板发票
    +ConfirmDeleteRepeatableInvoice=您确定要删除模板发票吗?
    +CreateOneBillByThird=每个合作方创建一个发票(否则,每个订单一个发票)
    +BillCreated=%s条例草案已创建
    +StatusOfGeneratedDocuments=文件生成的状态
    +DoNotGenerateDoc=不生成文档文件
    +AutogenerateDoc=自动生成文档文件
    +AutoFillDateFrom=使用发票日期设置服务项目的开始日期
    +AutoFillDateFromShort=设置开始日期
    +AutoFillDateTo=使用下一个发票日期设置服务项目的结束日期
    +AutoFillDateToShort=设置结束日期
    +MaxNumberOfGenerationReached=最大数量。到达
    +BILL_DELETEInDolibarr=发票已删除
    diff --git a/htdocs/langs/zh_CN/cashdesk.lang b/htdocs/langs/zh_CN/cashdesk.lang
    index 9eb442c8c0c..398501cef4d 100644
    --- a/htdocs/langs/zh_CN/cashdesk.lang
    +++ b/htdocs/langs/zh_CN/cashdesk.lang
    @@ -14,7 +14,7 @@ ShoppingCart=零售单
     NewSell=新零售单
     AddThisArticle=添加项目
     RestartSelling=回去就卖
    -SellFinished=Sale complete
    +SellFinished=销售完成
     PrintTicket=打印零售记录
     NoProductFound=空空如也——没有找到项目
     ProductFound=找到产品
    @@ -25,10 +25,20 @@ Difference=差异
     TotalTicket=总计
     NoVAT=没有为本零售单计算增值税
     Change=找零
    -BankToPay=Account for payment
    +BankToPay=付款帐户
     ShowCompany=显示公司
     ShowStock=显示仓库
     DeleteArticle=删除项目
     FilterRefOrLabelOrBC=搜索 (REF /标签)
    -UserNeedPermissionToEditStockToUsePos=你已经要求在POS销售时进行库存更新,所以操作POS模块的用户必须有更改库存的权限。
    +UserNeedPermissionToEditStockToUsePos=您要求减少发票创建的库存,因此使用POS的用户需要具有编辑库存的权限。
     DolibarrReceiptPrinter=Dolibarr 发票打印机
    +PointOfSale=POS
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=地板
    +Floor=地板
    +AddTable=添加表格
    +Place=地点
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=订购打印机
    +SearchProduct=搜索产品
    diff --git a/htdocs/langs/zh_CN/commercial.lang b/htdocs/langs/zh_CN/commercial.lang
    index 3c6915c5314..1f3db8e0946 100644
    --- a/htdocs/langs/zh_CN/commercial.lang
    +++ b/htdocs/langs/zh_CN/commercial.lang
    @@ -10,7 +10,7 @@ NewAction=新建事件
     AddAction=新建事件
     AddAnAction=新建事件
     AddActionRendezVous=新建会议
    -ConfirmDeleteAction=Are you sure you want to delete this event?
    +ConfirmDeleteAction=你确定要删除这个事件?
     CardAction=事件卡
     ActionOnCompany=关联公司
     ActionOnContact=关联联系人
    @@ -18,8 +18,8 @@ TaskRDVWith=与 %s 会议
     ShowTask=显示任务
     ShowAction=显示事件
     ActionsReport=事件报告
    -ThirdPartiesOfSaleRepresentative=Third parties with sales representative
    -SaleRepresentativesOfThirdParty=Sales representatives of third party
    +ThirdPartiesOfSaleRepresentative=第三方与销售代表
    +SaleRepresentativesOfThirdParty=合作方销售代表
     SalesRepresentative=销售代表
     SalesRepresentatives=销售代表
     SalesRepresentativeFollowUp=销售代表 (跟进)
    @@ -29,12 +29,12 @@ ShowCustomer=显示客户
     ShowProspect=显示准客户
     ListOfProspects=准客户列表
     ListOfCustomers=客户列表
    -LastDoneTasks=Latest %s completed actions
    +LastDoneTasks=最新的%s完成了行动
     LastActionsToDo=最早的 %s 未完成动作
     DoneAndToDoActions=已完成和未完成任务
     DoneActions=已完成的动作
     ToDoActions=不完整的事件
    -SendPropalRef=提交商业报价 %s 
    +SendPropalRef=提交商业报价 %s
     SendOrderRef=订单 %s 的提交
     StatusNotApplicable=不适用
     StatusActionToDo=需要完成
    @@ -52,6 +52,7 @@ ActionAC_TEL=电话
     ActionAC_FAX=发送传真
     ActionAC_PROP=通过邮件发送报价
     ActionAC_EMAIL=发送电子邮件
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=会议
     ActionAC_INT=干预
     ActionAC_FAC=通过邮件发送客户发票
    @@ -60,20 +61,20 @@ ActionAC_CLO=关闭
     ActionAC_EMAILING=发送群发电子邮件
     ActionAC_COM=通过邮件发送客户订单
     ActionAC_SHIP=发送发货单
    -ActionAC_SUP_ORD=Send purchase order by mail
    -ActionAC_SUP_INV=Send vendor invoice by mail
    +ActionAC_SUP_ORD=通过邮件发送采购订单
    +ActionAC_SUP_INV=通过邮件发送供应商发票
     ActionAC_OTH=其他
     ActionAC_OTH_AUTO=自动插入事件
     ActionAC_MANUAL=手动插入事件
     ActionAC_AUTO=自动插入事件
    -ActionAC_OTH_AUTOShort=Auto
    +ActionAC_OTH_AUTOShort=自动
     Stats=销售统计
     StatusProsp=准客户状态
     DraftPropals=起草商业报价
     NoLimit=没有限制
    -ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    -ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
    -ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    -FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    +ToOfferALinkForOnlineSignature=链接在线签名
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
    +ThisScreenAllowsYouToSignDocFrom=此屏幕允许您接受,签署或拒绝报价/商业提案
    +ThisIsInformationOnDocumentToSign=这是关于接受或拒绝的文件的信息
    +SignatureProposalRef=Signature of quote/commercial proposal %s
    +FeatureOnlineSignDisabled=禁用联机签名的功能或在启用功能之前生成的文档
    diff --git a/htdocs/langs/zh_CN/companies.lang b/htdocs/langs/zh_CN/companies.lang
    index ffa926a2207..93a93863ce4 100644
    --- a/htdocs/langs/zh_CN/companies.lang
    +++ b/htdocs/langs/zh_CN/companies.lang
    @@ -1,20 +1,20 @@
     # Dolibarr language file - Source file is en_US - companies
     ErrorCompanyNameAlreadyExists=公司名称%s已经存在。请使用其它名称。
     ErrorSetACountryFirst=请先设置国家
    -SelectThirdParty=选择业务伙伴
    -ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information?
    +SelectThirdParty=选择合伙人
    +ConfirmDeleteCompany=你确定要删除本公司及所有关联信息?
     DeleteContact=删除联络人
    -ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information?
    -MenuNewThirdParty=新建合伙人
    -MenuNewCustomer=新建客户
    -MenuNewProspect=新建准客户
    -MenuNewSupplier=New vendor
    +ConfirmDeleteContact=你确定要删除这个联系人和所有关联信息?
    +MenuNewThirdParty=New Third Party
    +MenuNewCustomer=New Customer
    +MenuNewProspect=New Prospect
    +MenuNewSupplier=New Vendor
     MenuNewPrivateIndividual=新私营个体
    -NewCompany=New company (prospect, customer, vendor)
    -NewThirdParty=New third party (prospect, customer, vendor)
    -CreateDolibarrThirdPartySupplier=Create a third party (vendor)
    +NewCompany=新建公司 (准客户,客户,供应商)
    +NewThirdParty=New Third Party (prospect, customer, vendor)
    +CreateDolibarrThirdPartySupplier=创建合伙人(供应商)
     CreateThirdPartyOnly=创建合伙人
    -CreateThirdPartyAndContact=Create a third party + a child contact
    +CreateThirdPartyAndContact=创建合伙人+联系人
     ProspectionArea=准客户区
     IdThirdParty=合伙人ID号
     IdCompany=公司ID
    @@ -25,26 +25,26 @@ ThirdPartyContact=合伙人联络人/地址
     Company=公司
     CompanyName=公司名称
     AliasNames=别名(商号,商标,...)
    -AliasNameShort=别名
    +AliasNameShort=Alias Name
     Companies=公司
    -CountryIsInEEC=国家是欧洲共同体一员
    -ThirdPartyName=合伙人名称
    -ThirdPartyEmail=Third party email
    -ThirdParty=合伙人
    -ThirdParties=合伙人
    +CountryIsInEEC=Country is inside the European Economic Community
    +ThirdPartyName=Third Party Name
    +ThirdPartyEmail=合伙人电子邮件
    +ThirdParty=Third Party
    +ThirdParties=Third Parties
     ThirdPartyProspects=准客户
     ThirdPartyProspectsStats=准客户
     ThirdPartyCustomers=客户
     ThirdPartyCustomersStats=客户
     ThirdPartyCustomersWithIdProf12=与%s或%客户s
    -ThirdPartySuppliers=Vendors
    -ThirdPartyType=合伙人类型
    +ThirdPartySuppliers=供应商
    +ThirdPartyType=Type of company
     Individual=私营个体
    -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough.
    +ToCreateContactWithSameName=Will create a Third Party and a linked Contact/Address with same information as the Third Party. In most cases, even if your Third Party is a physical person, creating a Third Party alone is enough.
     ParentCompany=母公司
     Subsidiaries=附属公司
    -ReportByMonth=Report by month
    -ReportByCustomers=Report by customer
    +ReportByMonth=按月报告
    +ReportByCustomers=顾客报告
     ReportByQuarter=按报表等级
     CivilityCode=文明守则
     RegisteredOffice=注册给办公室
    @@ -52,12 +52,12 @@ Lastname=姓氏
     Firstname=名字
     PostOrFunction=工作岗位
     UserTitle=称谓
    -NatureOfThirdParty=Nature of Third party
    +NatureOfThirdParty=合伙人的性质
     Address=地址
     State=州/省
     StateShort=国家
     Region=地区
    -Region-State=Region - State
    +Region-State=地区 - 州
     Country=国家
     CountryCode=国家代码
     CountryId=国家编号
    @@ -75,14 +75,14 @@ Zip=邮政编码
     Town=城市
     Web=网站
     Poste= 位置
    -DefaultLang=默认语言
    -VATIsUsed=Sales tax is used
    -VATIsUsedWhenSelling=This define if this third party includes a sale tax or not when it makes an invoice to its own customers
    -VATIsNotUsed=Sales tax is not used
    -CopyAddressFromSoc=Fill address with third party address
    -ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available refering objects
    -ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=Third party neither customer nor supplier, discounts are not available
    -PaymentBankAccount=Payment bank account
    +DefaultLang=Language default
    +VATIsUsed=Sales tax used
    +VATIsUsedWhenSelling=This defines if this third party includes a sale tax or not when it makes an invoice to its own customers
    +VATIsNotUsed=不含增值税
    +CopyAddressFromSoc=使用合伙人地址填写地址
    +ThirdpartyNotCustomerNotSupplierSoNoRef=Third party neither customer nor vendor, no available referring objects
    +ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=合伙人既不是顾客也不是供应商,折扣不可用
    +PaymentBankAccount=付款银行帐户
     OverAllProposals=报价
     OverAllOrders=订单
     OverAllInvoices=发票
    @@ -99,9 +99,9 @@ LocalTax2ES=IRPF
     TypeLocaltax1ES=RE 类型
     TypeLocaltax2ES=IRPF 类型
     WrongCustomerCode=客户代码无效
    -WrongSupplierCode=Vendor code invalid
    +WrongSupplierCode=供应商代码无效
     CustomerCodeModel=客户代码模板
    -SupplierCodeModel=Vendor code model
    +SupplierCodeModel=供应商代码模型
     Gencod=条码
     ##### Professional ID #####
     ProfId1Short=Prof. id 1
    @@ -258,36 +258,36 @@ ProfId1DZ=钢筋混凝土
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=Sales tax ID
    -VATIntraShort=Tax ID
    +VATIntra=Sales Tax/VAT ID
    +VATIntraShort=税号
     VATIntraSyntaxIsValid=语法是有效的
    -VATReturn=VAT return
    +VATReturn=增值税退税
     ProspectCustomer=准客户/客户
     Prospect=准客户
     CustomerCard=客户信息
     Customer=客户
     CustomerRelativeDiscount=相对客户折扣
    -SupplierRelativeDiscount=Relative vendor discount
    +SupplierRelativeDiscount=相对供应商折扣
     CustomerRelativeDiscountShort=相对折扣
     CustomerAbsoluteDiscountShort=绝对优惠
     CompanyHasRelativeDiscount=这个客户有一个<b>%s的%%</b>的折扣
     CompanyHasNoRelativeDiscount=此客户没有默认相对折扣
    -HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
    -HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    +HasRelativeDiscountFromSupplier=您从该供应商处获得<b> %s%% </b>的默认折扣
    +HasNoRelativeDiscountFromSupplier=您没有此供应商的默认相对折扣
    +CompanyHasAbsoluteDiscount=This customer has discounts available (credits notes or down payments) for <b>%s</b> %s
    +CompanyHasDownPaymentOrCommercialDiscount=This customer has discounts available (commercial, down payments) for <b>%s</b> %s
     CompanyHasCreditNote=此客户仍然有信用票据<b>或s%%s</b>的前存款
    -HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
    -HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    -HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for <b>%s</b> %s from this supplier
    -HasCreditNoteFromSupplier=You have credit notes for <b>%s</b> %s from this supplier
    +HasNoAbsoluteDiscountFromSupplier=您没有此供应商提供的折扣信用额度
    +HasAbsoluteDiscountFromSupplier=您可以从该供应商处获得<b> %s </b> %s的折扣(信用票据或预付款)
    +HasDownPaymentOrCommercialDiscountFromSupplier=您可以从该供应商处购买<b> %s </b> %s的折扣(商业,预付定金)
    +HasCreditNoteFromSupplier=您的<b> %s </b> %s从该供应商的贷方记录
     CompanyHasNoAbsoluteDiscount=此客户没有提供贴息贷款
    -CustomerAbsoluteDiscountAllUsers=Absolute customer discounts (granted by all users)
    -CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
    -SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
    -SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
    +CustomerAbsoluteDiscountAllUsers=绝对优惠(所有用户授予)
    +CustomerAbsoluteDiscountMy=绝对优惠(由自己授予)
    +SupplierAbsoluteDiscountAllUsers=绝对供应商折扣(由所有用户输入)
    +SupplierAbsoluteDiscountMy=绝对供应商折扣(由您自己输入)
     DiscountNone=无
    -Supplier=供应商
    +Supplier=Vendor
     AddContact=创建联系人
     AddContactAddress=创建联系人/地址
     EditContact=编辑联系人/地址
    @@ -295,30 +295,30 @@ EditContactAddress=编辑联系人/地址
     Contact=联系人
     ContactId=联系人id
     ContactsAddresses=联系方式/地址
    -FromContactName=Name:
    +FromContactName=名称:
     NoContactDefinedForThirdParty=此合伙人未确定联络人
     NoContactDefined=合伙人未设定联系人
     DefaultContact=默认接触
     AddThirdParty=创建合伙人
     DeleteACompany=删除公司
     PersonalInformations=个人资料
    -AccountancyCode=会计账户
    -CustomerCode=客户代码
    -SupplierCode=Vendor code
    -CustomerCodeShort=客户代码
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=客户代码,为所有客户提供唯一的客户代码值
    -SupplierCodeDesc=Vendor code, unique for all vendors
    +AccountancyCode=会计科目
    +CustomerCode=Customer Code
    +SupplierCode=Vendor Code
    +CustomerCodeShort=Customer Code
    +SupplierCodeShort=Vendor Code
    +CustomerCodeDesc=Customer Code, unique for all customers
    +SupplierCodeDesc=Vendor Code, unique for all vendors
     RequiredIfCustomer=要求合伙人为客户或是准客户
    -RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=有效性控制模块
    -ThisIsModuleRules=这是本单元的规则
    +RequiredIfSupplier=如果合伙人是供应商,则必需
    +ValidityControledByModule=Validity controlled by module
    +ThisIsModuleRules=Rules for this module
     ProspectToContact=准客户到联系人
     CompanyDeleted=公司“%的”从数据库中删除。
     ListOfContacts=联系人列表
    -ListOfContactsAddresses=联系人/地址列表
    -ListOfThirdParties=合伙人列表
    -ShowCompany=Show third party
    +ListOfContactsAddresses=联系人列表
    +ListOfThirdParties=List of Third Parties
    +ShowCompany=Show Third Party
     ShowContact=显示联系人
     ContactsAllShort=全部 (不筛选)
     ContactType=联系人类型
    @@ -333,20 +333,20 @@ NoContactForAnyProposal=不是任何报价的联系人
     NoContactForAnyContract=不是任何合同的联系人
     NoContactForAnyInvoice=不是任何发票的联系人
     NewContact=新建联系人
    -NewContactAddress=新建联系人/地址
    +NewContactAddress=New Contact/Address
     MyContacts=我的联系人
     Capital=注册资金
     CapitalOf=注册资金 %s
     EditCompany=编辑公司
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    +ThisUserIsNot=This user is not a prospect, customer or vendor
     VATIntraCheck=支票
    -VATIntraCheckDesc=<b>%s的</b>允许该链接要求欧盟增值税检查服务。从服务器的外部网络连接需要这项服务工作。
    +VATIntraCheckDesc=The link <b>%s</b> uses the European VAT checker service (VIES). An external internet access from server is required for this service to work.
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=欧盟委员会现场检查Intracomunnautary增值税
    -VATIntraManualCheck=您也可以手动检查站点从欧洲网站<a href="%s" target="_blank">%s的</a>
    +VATIntraCheckableOnEUSite=Check intra-Community VAT on the European Commission website
    +VATIntraManualCheck=You can also check manually on the European Commission website <a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=检查不可能的。检查服务是没有提供的会员国(%s)中。
    -NorProspectNorCustomer=不是准客户,也不是客户
    -JuridicalStatus=法律条款
    +NorProspectNorCustomer=Not prospect, or customer
    +JuridicalStatus=Legal Entity Type
     Staff=员工人数
     ProspectLevelShort=潜力
     ProspectLevel=潜在的准客户
    @@ -387,48 +387,48 @@ ExportCardToFormat=导出名片格式
     ContactNotLinkedToCompany=联系人未链接到任何合伙人
     DolibarrLogin=登陆Dolibarr
     NoDolibarrAccess=没有Dolibarr访问
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=联系人和特征
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ExportDataset_company_2=Contacts and their properties
    +ImportDataset_company_1=Third Parties (companies/foundations/physical people) and their properties
    +ImportDataset_company_2=Contacts/Addresses and attributes
    +ImportDataset_company_3=Bank accounts of Third Parties
    +ImportDataset_company_4=Third Parties - sales representatives (assign sales representatives/users to companies)
     PriceLevel=价格级别
     DeliveryAddress=送货地址
     AddAddress=添加地址
    -SupplierCategory=Vendor category
    +SupplierCategory=供应商类别
     JuridicalStatus200=独立
     DeleteFile=删除文件
     ConfirmDeleteFile=你确定要删除这个文件?
     AllocateCommercial=分配给销售代表
     Organization=组织
    -FiscalYearInformation=会计年度信息
    +FiscalYearInformation=Fiscal Year
     FiscalMonthStart=会计年度初始月
    -YouMustAssignUserMailFirst=您必须为此账户添加电子邮箱,首先可为他添加电子邮件通知功能。
    +YouMustAssignUserMailFirst=You must create an email for this user prior to being able to add an email notification.
     YouMustCreateContactFirst=能够添加电子邮件通知, 首先你必须填写合伙人的有效Email地址
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=准客户列表
    -ListCustomersShort=客户列表
    -ThirdPartiesArea=合伙人信息区
    -LastModifiedThirdParties=最近变更的 %s 位合伙人
    -UniqueThirdParties=合伙人小计
    +ListSuppliersShort=List of Vendors
    +ListProspectsShort=List of Prospects
    +ListCustomersShort=List of Customers
    +ThirdPartiesArea=Third Parties/Contacts
    +LastModifiedThirdParties=Last %s modified Third Parties
    +UniqueThirdParties=Total of Third Parties
     InActivity=打开
     ActivityCeased=禁用
    -ThirdPartyIsClosed=Third party is closed
    +ThirdPartyIsClosed=合伙人已关闭
     ProductsIntoElements= %s 的中产品/服务列表
     CurrentOutstandingBill=当前优质账单
     OutstandingBill=优质账单最大值
     OutstandingBillReached=已达到最大优质账单值
    -OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +OrderMinAmount=订单的最低金额
    +MonkeyNumRefModelDesc=Return a number with the format %syymm-nnnn for the customer code and %syymm-nnnn for the vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
     LeopardNumRefModelDesc=客户/供应商代码是免费的。此代码可以随时修改。
     ManagingDirectors=公司高管(s)称呼 (CEO, 董事长, 总裁...)
    -MergeOriginThirdparty=重复第三方(第三方要删除)
    +MergeOriginThirdparty=重复合伙人(合伙人要删除)
     MergeThirdparties=合并合伙人
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    -ThirdpartiesMergeSuccess=Third parties have been merged
    +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the third party will be deleted.
    +ThirdpartiesMergeSuccess=第三方已合并
     SaleRepresentativeLogin=销售代表登陆
    -SaleRepresentativeFirstname=First name of sales representative
    -SaleRepresentativeLastname=Last name of sales representative
    -ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +SaleRepresentativeFirstname=销售代表的名字
    +SaleRepresentativeLastname=销售代表的姓氏
    +ErrorThirdpartiesMerge=删除第三方时出错。请检查日志。变更已被恢复。
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/zh_CN/dict.lang b/htdocs/langs/zh_CN/dict.lang
    index bab583c41ff..dd2fa2c81e1 100644
    --- a/htdocs/langs/zh_CN/dict.lang
    +++ b/htdocs/langs/zh_CN/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=赫德岛和麦当劳
     CountryVA=罗马教廷(梵蒂冈城国)
     CountryHN=洪都拉斯
     CountryHK=香港
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=印度
     CountryID=印度尼西亚
     CountryIR=伊朗
    @@ -131,7 +131,7 @@ CountryKI=基里巴斯
     CountryKP=北朝鲜
     CountryKR=韩国
     CountryKW=科威特
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=老挝
     CountryLV=拉脱维亚
     CountryLB=黎巴嫩
    @@ -160,7 +160,7 @@ CountryMD=摩尔多瓦
     CountryMN=蒙古
     CountryMS=蒙特塞拉特
     CountryMZ=莫桑比克
    -CountryMM=Birmania(缅甸)
    +CountryMM=Myanmar (Burma)
     CountryNA=纳米比亚
     CountryNR=瑙鲁
     CountryNP=尼泊尔
    @@ -223,7 +223,7 @@ CountryTO=汤加
     CountryTT=特里尼达和多巴哥
     CountryTR=土耳其
     CountryTM=土库曼斯坦
    -CountryTC=特克斯群岛和Cailos
    +CountryTC=Turks and Caicos Islands
     CountryTV=图瓦卢
     CountryUG=乌干达
     CountryUA=乌克兰
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=毛里求斯卢比
     CurrencySingMUR=毛里求斯卢比
     CurrencyNOK=挪威克朗
    -CurrencySingNOK=挪威克朗
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=突尼斯第纳尔
     CurrencySingTND=突尼斯第纳尔
     CurrencyUSD=美元
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=口碑
     DemandReasonTypeSRC_PARTNER=伙伴
     DemandReasonTypeSRC_EMPLOYEE=雇员
     DemandReasonTypeSRC_SPONSORING=赞助
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=4A0格式
     PaperFormatEU2A0=2A0格式
    @@ -328,8 +329,8 @@ PaperFormatCAP5=加拿大 P5格式
     PaperFormatCAP6=加拿大 P6格式
     #### Expense report categories ####
     ExpAutoCat=汽车
    -ExpCycloCat=Moped
    -ExpMotoCat=Motorbike
    +ExpCycloCat=助力车
    +ExpMotoCat=摩托车
     ExpAuto3CV=3 CV
     ExpAuto4CV=4 CV
     ExpAuto5CV=5 CV
    @@ -351,7 +352,7 @@ ExpAuto10PCV=10 CV and more
     ExpAuto11PCV=11 CV and more
     ExpAuto12PCV=12 CV and more
     ExpAuto13PCV=13 CV and more
    -ExpCyclo=Capacity lower to 50cm3
    -ExpMoto12CV=Motorbike 1 or 2 CV
    -ExpMoto345CV=Motorbike 3, 4 or 5 CV
    -ExpMoto5PCV=Motorbike 5 CV and more
    +ExpCyclo=容量低至50cm3
    +ExpMoto12CV=摩托车1或2 CV
    +ExpMoto345CV=摩托车3,4或5 CV
    +ExpMoto5PCV=摩托车5 CV等等
    diff --git a/htdocs/langs/zh_CN/ecm.lang b/htdocs/langs/zh_CN/ecm.lang
    index df401ec6161..6789b37456d 100644
    --- a/htdocs/langs/zh_CN/ecm.lang
    +++ b/htdocs/langs/zh_CN/ecm.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=铌在目录中的文档
    +ECMNbOfDocs=No. of documents in directory
     ECMSection=目录
     ECMSectionManual=手册目录
     ECMSectionAuto=自动目录
    @@ -14,17 +14,17 @@ ECMNbOfFilesInDir=在目录中的文件数
     ECMNbOfSubDir=数子目录
     ECMNbOfFilesInSubDir=子目录中的文件数量
     ECMCreationUser=创造者
    -ECMArea=DMS/ECM area
    -ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr.
    +ECMArea=电子文档管理
    +ECMAreaDesc=DMS / ECM(文档管理系统/电子内容管理)区域允许您快速保存,共享和搜索Dolibarr中的所有类型的文档。
     ECMAreaDesc2=*自动填写目录时自动加入一个元素从卡的文件。 <br> *手动目录可以用来保存未链接到一个特定元素的文件。
     ECMSectionWasRemoved=目录<b>%s</b>已被删除。
    -ECMSectionWasCreated=Directory <b>%s</b> has been created.
    +ECMSectionWasCreated=目录<b> %s</b>已创建。
     ECMSearchByKeywords=搜寻关键字
     ECMSearchByEntity=搜索对象
     ECMSectionOfDocuments=目录中的文件
     ECMTypeAuto=自动
     ECMDocsBySocialContributions=社会或财政税相关文档
    -ECMDocsByThirdParties=合伙人相关文档
    +ECMDocsByThirdParties=合作方相关文档
     ECMDocsByProposals=报价相关文档
     ECMDocsByOrders=客户订单相关文档
     ECMDocsByContracts=文件与合约
    @@ -33,19 +33,20 @@ ECMDocsByProducts=产品相关文档
     ECMDocsByProjects=项目相关文件
     ECMDocsByUsers=用户相关文档
     ECMDocsByInterventions=干预相关文档
    -ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByExpenseReports=与费用报告相关的文件
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=没有目录中创建
     ShowECMSection=显示目录
     DeleteSection=删除目录
    -ConfirmDeleteSection=Can you confirm you want to delete the directory <b>%s</b>?
    +ConfirmDeleteSection=您能否确认要删除目录<b> %s </b>?
     ECMDirectoryForFiles=相对目录的文件
    -CannotRemoveDirectoryContainsFilesOrDirs=Removal not possible because it contains some files or sub-directories
    -CannotRemoveDirectoryContainsFiles=Removal not possible because it contains some files
    +CannotRemoveDirectoryContainsFilesOrDirs=不可删除,因为它包含一些文件或子目录
    +CannotRemoveDirectoryContainsFiles=不可删除,因为它包含一些文件
     ECMFileManager=档案管理员
    -ECMSelectASection=Select a directory in the tree...
    -DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory.
    -ReSyncListOfDir=Resync list of directories
    -HashOfFileContent=Hash of file content
    -FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
    -FileSharedViaALink=File shared via a link
    -NoDirectoriesFound=No directories found
    +ECMSelectASection=请在左侧目录树中选取目录...
    +DirNotSynchronizedSyncFirst=此目录似乎是在ECM模块外部创建或修改的。您必须先单击“重新同步”按钮以同步磁盘和数据库以获取此目录的内容。
    +ReSyncListOfDir=重新同步目录列表
    +HashOfFileContent=散列文件内容
    +NoDirectoriesFound=找不到目录
    +FileNotYetIndexedInDatabase=文件尚未编入数据库(尝试重新上传)
    diff --git a/htdocs/langs/zh_CN/errors.lang b/htdocs/langs/zh_CN/errors.lang
    index 80b8871fd69..f17650d5136 100644
    --- a/htdocs/langs/zh_CN/errors.lang
    +++ b/htdocs/langs/zh_CN/errors.lang
    @@ -6,35 +6,35 @@ NoErrorCommitIsDone=没有错误,我们承诺
     ErrorButCommitIsDone=发现错误我们将进行验证
     ErrorBadEMail=电子邮件%s是错误的
     ErrorBadUrl=网址 %s 有误
    -ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing.
    +ErrorBadValueForParamNotAString=参数值不正确。它通常在缺少翻译时附加。
     ErrorLoginAlreadyExists=登陆%s已经存在。
     ErrorGroupAlreadyExists=组%s已经存在。
     ErrorRecordNotFound=记录没有找到。
     ErrorFailToCopyFile=无法复制文件<b>'%s'</b>成<b>'%s'。</b>
    -ErrorFailToCopyDir=Failed to copy directory '<b>%s</b>' into '<b>%s</b>'.
    +ErrorFailToCopyDir=无法将目录“<b> %s </b>”复制到“<b> %s </b>”中。
     ErrorFailToRenameFile=无法重新命名为<b>“%s'</b>文件<b>'%s'。</b>
     ErrorFailToDeleteFile=无法删除文件<b>'%s'</b>的。
     ErrorFailToCreateFile=无法创建文件<b>'%s'</b>的。
     ErrorFailToRenameDir=无法重命名目录<b>'%s'</b>到<b>%s'</b>的。
     ErrorFailToCreateDir=无法创建目录<b>'%s'</b>的。
     ErrorFailToDeleteDir=无法删除目录<b>'%s'</b>的。
    -ErrorFailToMakeReplacementInto=Failed to make replacement into file '<b>%s</b>'.
    -ErrorFailToGenerateFile=Failed to generate file '<b>%s</b>'.
    +ErrorFailToMakeReplacementInto=无法更换到文件'<b> %s </b>'。
    +ErrorFailToGenerateFile=无法生成文件'<b> %s </b>'。
     ErrorThisContactIsAlreadyDefinedAsThisType=这个联络已定义为这种类型的接触。
     ErrorCashAccountAcceptsOnlyCashMoney=这是一个银行帐户的现金帐户,所以只接受现金支付的类型。
     ErrorFromToAccountsMustDiffers=源和目标的银行帐户必须是不同的。
    -ErrorBadThirdPartyName=错误的合伙人名称
    +ErrorBadThirdPartyName=错误的合作方名称
     ErrorProdIdIsMandatory=%s 是强制性的
     ErrorBadCustomerCodeSyntax=错误的客户代码
    -ErrorBadBarCodeSyntax=Bad syntax for bar code. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned.
    +ErrorBadBarCodeSyntax=条形码的语法错误。可能是您设置了错误的条形码类型,或者您为编号设置了条形码掩码,该条形码掩码与扫描的值不匹配。
     ErrorCustomerCodeRequired=客户代码需要
     ErrorBarCodeRequired=需要条形码
     ErrorCustomerCodeAlreadyUsed=客户代码已被使用
     ErrorBarCodeAlreadyUsed=条码已存在且已使用
     ErrorPrefixRequired=前缀要求
    -ErrorBadSupplierCodeSyntax=Bad syntax for vendor code
    -ErrorSupplierCodeRequired=Vendor code required
    -ErrorSupplierCodeAlreadyUsed=Vendor code already used
    +ErrorBadSupplierCodeSyntax=供应商代码的语法错误
    +ErrorSupplierCodeRequired=需要供应商代码
    +ErrorSupplierCodeAlreadyUsed=已使用供应商代码
     ErrorBadParameters=错误的参数
     ErrorBadValueForParameter=错误值 '%s' 参数 '%s'
     ErrorBadImageFormat=图片格式不支持(你的PHP不支持图片格式转换功能)
    @@ -42,9 +42,9 @@ ErrorBadDateFormat=值“%s”有错误的日期格式
     ErrorWrongDate=日期不正确!
     ErrorFailedToWriteInDir=无法写在目录%s
     ErrorFoundBadEmailInFile=找到%S的语法不正确的电子邮件文件中的行(例如行%的电子邮件s =%s)的
    -ErrorUserCannotBeDelete=用户不能删除。也许它已经关联到Dolibarr实体对象了。
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=一些必要的栏位都没有填补。
    -ErrorSubjectIsRequired=The email topic is required
    +ErrorSubjectIsRequired=电子邮件主题是必需的
     ErrorFailedToCreateDir=无法创建一个目录。检查Web服务器的用户有权限写入Dolibarr文件目录。如果参数<b>safe_mode设置</b>为启用这个PHP,检查Dolibarr php文件到Web服务器的用户拥有(或组)。
     ErrorNoMailDefinedForThisUser=没有邮件定义该用户
     ErrorFeatureNeedJavascript=此功能需要Javascript被激活才能工作。更改此设置 - 显示。
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=请填写选取列表值
     ErrorNoValueForCheckBoxType=请填写复选框列表值
     ErrorNoValueForRadioType=请填写电台列表的值
     ErrorBadFormatValueList=列表值不能有一个以上的逗号: <u>%s</u>, 但至少需要一个: key,value
    -ErrorFieldCanNotContainSpecialCharacters=栏位<b>%s</b>必须不包含特殊字符。
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=没有激活启用任何财务会计模块
     ErrorExportDuplicateProfil=导出设定配置名称已存在
     ErrorLDAPSetupNotComplete=Dolibarr - LDAP的匹配是不完整的。
     ErrorLDAPMakeManualTest=甲。LDIF文件已经生成在目录%s的尝试加载命令行手动有更多的错误信息。
    -ErrorCantSaveADoneUserWithZeroPercentage=无法储存与行动“规约未启动”如果领域“做的”,也是填补。
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=号的创作已经存在。
    -ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    -ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=不能删除记录。它已被使用或者包含在其他对象中。
    +ErrorPleaseTypeBankTransactionReportName=请输入必须报告条目的银行对账单名称(格式YYYYMM或YYYYMMDD)
    +ErrorRecordHasChildren=Failed to delete record since it has some child records.
    +ErrorRecordHasAtLeastOneChildOfType=对象至少有一个类型为%s的子项
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=不能禁用JavaScript必须有此功能的工作。要启用/禁用JavaScript,进入菜单首页->安装->“显示。
     ErrorPasswordsMustMatch=这两种类型的密码必须相互匹配
    -ErrorContactEMail=一个技术性错误发生。请联系管理员,以下连接提供错误代码<b>%s</b>在您的邮件,甚至更好,加入了这个页面的屏幕拷贝的电子邮件<b>%s。</b>
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=<b>s'</b>的领域的一些错误值<b>的%s(</b>价值<b>'%</b>不匹配正则表达式规则<b>%s)</b>
     ErrorFieldValueNotIn=栏位数字参数值错误 <b>%s</b> (值 '<b>%s</b>' 不允许填写在这个栏位 <b>%s</b> 表格 <b>%s</b>)
     ErrorFieldRefNotIn=栏位数字错误 <b>%s</b> (value '<b>%s</b>'不是一个<b>%s</b>现有编号)
    @@ -87,24 +88,25 @@ ErrorsOnXLines=<b>%</b>误差<b>的</b>源上线
     ErrorFileIsInfectedWithAVirus=防病毒程序无法验证文件(文件可能被病毒感染)
     ErrorSpecialCharNotAllowedForField=特殊字符不为外地允许“%s的”
     ErrorNumRefModel=存在一个引用(%s)和编号是不符合本规则兼容到数据库。记录中删除或重命名参考激活此模块。
    -ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorQtyTooLowForThisSupplier=此供应商的数量太低,或者此供应商未定义此产品的价格
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=模块设置看起来未完成设置。请到 主页->设置->模块菜单 完成模块的设置。
     ErrorBadMask=在面具的错误
     ErrorBadMaskFailedToLocatePosOfSequence=没有序列号错误,面具
     ErrorBadMaskBadRazMonth=错误,坏的复位值
    -ErrorMaxNumberReachForThisMask=Max number reach for this mask
    +ErrorMaxNumberReachForThisMask=此掩码的最大数量范围
     ErrorCounterMustHaveMoreThan3Digits=计数器必须有3个以上的数字
     ErrorSelectAtLeastOne=错误。请至少选取一个条目。
    -ErrorDeleteNotPossibleLineIsConsolidated=不能删除该记录已经关联到银行交易并已过账了
    -ErrorProdIdAlreadyExist=%s被分配到其他合伙人
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
    +ErrorProdIdAlreadyExist=%s被分配到其他合作方
     ErrorFailedToSendPassword=无法传送密码
     ErrorFailedToLoadRSSFile=未能得到RSS提要。尝试添加恒定MAIN_SIMPLEXMLLOAD_DEBUG,如果错误消息不提供足够的信息。
    -ErrorForbidden=Access denied.<br>You try to access to a page, area or feature of a disabled module or without being in an authenticated session or that is not allowed to your user.
    +ErrorForbidden=访问被拒绝。<br>您尝试访问已禁用模块的页面,区域或功能,或者不在经过身份验证的会话中或不允许您的用户访问。
     ErrorForbidden2=此登陆权限可在你的Dolibarr管理员菜单 %s->%s中定义。
     ErrorForbidden3=看来Dolibarr是不是通过身份验证的会话中使用。以在Dolibarr安装文件就会知道如何管理认证(htaccess的,mod_auth或其他...).
     ErrorNoImagickReadimage=功能imagick_readimage是没有发现在这个PHP。没有预览可用。管理员可以从菜单中禁用此设置 - 显示选项卡。
     ErrorRecordAlreadyExists=记录已存在
    -ErrorLabelAlreadyExists=This label already exists
    +ErrorLabelAlreadyExists=此标签已存在
     ErrorCantReadFile=无法读取档案'%s'
     ErrorCantReadDir=无法读取目录'%s'
     ErrorBadLoginPassword=帐号密码不正确
    @@ -115,30 +117,31 @@ ErrorLoginDoesNotExists=登陆账号 <b>%s</b> 有误——系统中没有这个
     ErrorLoginHasNoEmail=此账户未设定Email地址。无法使用该功能.
     ErrorBadValueForCode=代码有错误的值类型。再次尝试以新的价值...
     ErrorBothFieldCantBeNegative=栏位%s和%s不能都为负的
    -ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
    +ErrorQtyForCustomerInvoiceCantBeNegative=进入客户发票的数量不能为负数
     ErrorWebServerUserHasNotPermission=<b>%s</b>用来执行Web服务器用户帐户没有该权限
     ErrorNoActivatedBarcode=没有激活的条码类型
     ErrUnzipFails=%s 无法解压缩与解压缩
    -ErrNoZipEngine=No engine to zip/unzip %s file in this PHP
    +ErrNoZipEngine=没有引擎在这个PHP中压缩/解压缩%s文件
     ErrorFileMustBeADolibarrPackage=%s 文件必须是Dolibarr zip格式包
    -ErrorModuleFileRequired=You must select a Dolibarr module package file
    +ErrorModuleFileRequired=您必须选择Dolibarr模块包文件
     ErrorPhpCurlNotInstalled=PHP Curl没有安装,这需要与支付宝协调
     ErrorFailedToAddToMailmanList=Failed to add record %s to Mailman list %s or SPIP base
     ErrorFailedToRemoveToMailmanList=Failed to remove record %s to Mailman list %s or SPIP base
     ErrorNewValueCantMatchOldValue=新价值不能等于旧的价值
     ErrorFailedToValidatePasswordReset=重新初始化密码密码失败。重新初始化密码已经完成(该链接可以只用一次)。如果没有,请尝试重新启动初始化过程。
    -ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check database server is running (for example, with mysql/mariadb, you can launch it from command line with 'sudo service mysql start').
    +ErrorToConnectToMysqlCheckInstance=连接数据库失败。检查数据库服务器是否正在运行(例如,使用mysql / mariadb,您可以使用'sudo service mysql start'从命令行启动它)。
     ErrorFailedToAddContact=无法添加联系人
    -ErrorDateMustBeBeforeToday=The date cannot be greater than today
    -ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode.
    -ErrorPHPNeedModule=Error, your PHP must have module <b>%s</b> installed to use this feature.
    -ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s
    -ErrorWarehouseMustDiffers=Source and target warehouses must differs
    +ErrorDateMustBeBeforeToday=日期不能超过今天
    +ErrorPaymentModeDefinedToWithoutSetup=付款模式设置为键入%s但未完成模块发票的设置以定义要为此付款模式显示的信息。
    +ErrorPHPNeedModule=错误,您的PHP必须安装模块<b> %s </b>才能使用此功能。
    +ErrorOpenIDSetupNotComplete=您设置Dolibarr配置文件以允许OpenID身份验证,但OpenID服务的URL未定义为常量%s
    +ErrorWarehouseMustDiffers=源仓库和目标仓库必须不同
     ErrorBadFormat=格式错误!
    -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
    +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=错误,此成员尚未链接到任何合作方。在创建订阅发票之前,将成员链接到现有合作方或创建新的合作方。
     ErrorThereIsSomeDeliveries=错误,此运输已被关联到某交货,即可能已经交货了不能反悔了。拒绝删除。
    -ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentReconciliated=无法删除已生成已对帐的银行条目的付款
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=无法分配到常数 '%s'
     ErrorPriceExpression2=不能重新定义内置函数 '%s'
     ErrorPriceExpression3=未定义的变量 '%s' 在函数的定义
    @@ -147,22 +150,22 @@ ErrorPriceExpression5=意外 '%s'
     ErrorPriceExpression6=错误的数量参数值 (%s given, %s expected)
     ErrorPriceExpression8=操作意外 '%s'
     ErrorPriceExpression9=发生意外错误
    -ErrorPriceExpression10=运算符 '%s' 缺少操作数
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=预料 '%s'
     ErrorPriceExpression14=除以零
     ErrorPriceExpression17=未定义的变量 '%s'
    -ErrorPriceExpression19=表达式未发现 
    +ErrorPriceExpression19=表达式未发现
     ErrorPriceExpression20=空白表达式
     ErrorPriceExpression21=空白结果 '%s'
     ErrorPriceExpression22=负结果 '%s'
    -ErrorPriceExpression23=Unknown or non set variable '%s' in %s
    -ErrorPriceExpression24=Variable '%s' exists but has no value
    +ErrorPriceExpression23=%s中的未知或未设置变量'%s'
    +ErrorPriceExpression24=变量'%s'存在但没有值
     ErrorPriceExpressionInternal=内部错误 '%s'
     ErrorPriceExpressionUnknown=未知错误 '%s'
    -ErrorSrcAndTargetWarehouseMustDiffers=Source and target warehouses must differs
    -ErrorTryToMakeMoveOnProductRequiringBatchData=Error, trying to make a stock movement without lot/serial information, on product '%s' requiring lot/serial information
    -ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=All recorded receptions must first be verified (approved or denied) before being allowed to do this action
    -ErrorCantSetReceptionToTotalDoneWithReceptionDenied=All recorded receptions must first be verified (approved) before being allowed to do this action
    +ErrorSrcAndTargetWarehouseMustDiffers=源仓库和目标仓库必须不同
    +ErrorTryToMakeMoveOnProductRequiringBatchData=在产品'%s'上尝试在没有批次/序列信息的情况下进行库存移动时出错,需要批次/序列信息
    +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=在允许执行此操作之前,必须首先验证(批准或拒绝)所有录制的接收
    +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=在允许执行此操作之前,必须首先验证(批准)所有录制的接收
     ErrorGlobalVariableUpdater0=HTTP 请求失败错误为 '%s'
     ErrorGlobalVariableUpdater1=无效 JSON 格式 '%s'
     ErrorGlobalVariableUpdater2=丢失参数 '%s'
    @@ -170,64 +173,65 @@ ErrorGlobalVariableUpdater3=请求数据在结果中没找到
     ErrorGlobalVariableUpdater4=SOAP 客户端失败错误为 '%s'
     ErrorGlobalVariableUpdater5=没有全局变量选择
     ErrorFieldMustBeANumeric=填写 <b>%s</b> 必须为数字值
    -ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    -ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
    -ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    -ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
    -ErrorFileMustHaveFormat=File must have format %s
    -ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    +ErrorMandatoryParametersNotProvided=未提供强制参数
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
    +ErrorFailedToLoadModuleDescriptorForXXX=无法加载%s的模块描述符类
    +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=模块描述符中菜单数组的错误定义(关键字fk_menu的错误值)
    +ErrorSavingChanges=An error has occurred when saving the changes
    +ErrorWarehouseRequiredIntoShipmentLine=在运输线上需要仓库
    +ErrorFileMustHaveFormat=文件格式必须为%s
    +ErrorSupplierCountryIsNotDefined=未定义此供应商的国家/地区。先纠正这个问题。
     ErrorsThirdpartyMerge=两条记录合并失败。请求已取消。
    -ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order.
    -ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice.
    -ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment.
    -ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal.
    -ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'.
    -ErrorModuleNotFound=File of module was not found.
    -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s)
    -ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s)
    -ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s)
    -ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s
    -ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information.
    -ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed.
    -ErrorTaskAlreadyAssigned=Task already assigned to user
    -ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format.
    -ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (<strong>%s</strong>) does not match expected name syntax: <strong>%s</strong>
    -ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s.
    -ErrorNoWarehouseDefined=Error, no warehouses defined.
    -ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid.
    -ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
    -ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease)
    -ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated.
    -ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated.
    -ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action.
    -ErrorChooseBetweenFreeEntryOrPredefinedProduct=You must choose if article is a predefined product or not
    -ErrorDiscountLargerThanRemainToPaySplitItBefore=The discount you try to apply is larger than remain to pay. Split the discount in 2 smaller discounts before.
    -ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was modified or file was removed recently.
    -ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
    -ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
    -ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorStockIsNotEnoughToAddProductOnOrder=产品%s的库存不足以将其添加到新订单中。
    +ErrorStockIsNotEnoughToAddProductOnInvoice=产品%s的库存不足以将其添加到新发票中。
    +ErrorStockIsNotEnoughToAddProductOnShipment=产品%s的库存不足以将其添加到新货件中。
    +ErrorStockIsNotEnoughToAddProductOnProposal=产品%s的库存不足以将其添加到新提案中。
    +ErrorFailedToLoadLoginFileForMode=无法获取模式'%s'的登录密钥。
    +ErrorModuleNotFound=找不到模块文件。
    +ErrorFieldAccountNotDefinedForBankLine=未为源行标识%s(%s)定义的会计科目值
    +ErrorFieldAccountNotDefinedForInvoiceLine=未为发票标识%s(%s)定义的会计科目值
    +ErrorFieldAccountNotDefinedForLine=未为该行定义的会计科目值(%s)
    +ErrorBankStatementNameMustFollowRegex=错误,银行对帐单名称必须遵循以下语法规则%s
    +ErrorPhpMailDelivery=检查您是否使用了过多的收件人,并且您的电子邮件内容与垃圾邮件不相似。还请管理员检查防火墙和服务器日志文件以获取更完整的信息。
    +ErrorUserNotAssignedToTask=必须为用户分配用户才能输入消耗的时间。
    +ErrorTaskAlreadyAssigned=任务已分配给用户
    +ErrorModuleFileSeemsToHaveAWrongFormat=模块包似乎格式错误。
    +ErrorFilenameDosNotMatchDolibarrPackageRules=模块包的名称(<strong> %s </strong>)与预期的名称语法不匹配:<strong> %s </strong>
    +ErrorDuplicateTrigger=错误,重复的触发器名称%s。已经从%s加载。
    +ErrorNoWarehouseDefined=错误,没有定义仓库。
    +ErrorBadLinkSourceSetButBadValueForRef=您使用的链接无效。定义了付款的“来源”,但“参考”的值无效。
    +ErrorTooManyErrorsProcessStopped=错误太多了。过程停止了。
    +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=在此操作上设置增加/减少库存的选项时,无法进行批量验证(您必须逐个验证,以便您可以定义仓库以增加/减少)
    +ErrorObjectMustHaveStatusDraftToBeValidated=对象%s必须为'草稿'状态。
    +ErrorObjectMustHaveLinesToBeValidated=对象%s必须有要验证的行。
    +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=只有经过验证的发票才能使用“通过电子邮件发送”批量操作发送。
    +ErrorChooseBetweenFreeEntryOrPredefinedProduct=您必须选择文章是否为预定义产品
    +ErrorDiscountLargerThanRemainToPaySplitItBefore=您尝试申请的折扣大于剩余支付。之前将折扣分为2个较小的折扣。
    +ErrorFileNotFoundWithSharedLink=找不到档案。可能是修改了共享密钥或最近删除了文件。
    +ErrorProductBarCodeAlreadyExists=产品条形码%s已存在于其他产品参考中。
    +ErrorNoteAlsoThatSubProductCantBeFollowedByLot=还要注意,当至少一个子产品(或子产品的子产品)需要序列号/批号时,使用虚拟产品来自动增加/减少子产品是不可能的。
    +ErrorDescRequiredForFreeProductLines=对于包含免费产品的行,必须说明
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
    -WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
    +WarningPasswordSetWithNoAccount=为此成员设置了密码。但是,未创建任何用户帐户。因此,此密码已存储,但无法用于登录Dolibarr。它可以由外部模块/接口使用,但如果您不需要为成员定义任何登录名或密码,则可以从成员模块设置中禁用“管理每个成员的登录名”选项。如果您需要管理登录但不需要任何密码,则可以将此字段保留为空以避免此警告。注意:如果成员链接到用户,则电子邮件也可用作登录。
     WarningMandatorySetupNotComplete=初始参数尚未设置
     WarningSafeModeOnCheckExecDir=警告,PHP的选项<b>safe_mode设置</b>为在此情况下命令必须在<b>safe_mode_exec_dir之</b>存储参数的PHP目录内宣布。
     WarningBookmarkAlreadyExists=本标题或此目标(网址)书签已存在。
     WarningPassIsEmpty=警告,数据库密码是空的。这是一个安全漏洞。您应该添加一个密码到您的数据库,并改变你的conf.php文件,以反映这一点。
     WarningConfFileMustBeReadOnly=警告:您的服务器配置文件 (<b>htdocs/conf/conf.php</b>——LiAnGjiA注:初始安装时需要允许Dolibarr读写权限安装完成后为了安全着想则需要取消写入权限害怕被公鸡啦) 有写入权限。这是个非常严重的漏洞。其允许服务器权限级别的文件读取与写入,有被恶意利用的风险。假如你是Windows的磁盘格式是FAT格式,你必须将该配置文件的权限修改为只读权限,并请继续加强其他服务器安全防护工作。
     WarningsOnXLines=<b>%S上</b>的源代码行警告
    -WarningNoDocumentModelActivated=没有模板,对文档生成,已被激活。一个模板是选用默认,直到您检查您的模块设置。
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=警告:一旦您安装完成Dolibarr则必须将install整个目录移走并在目录 <b>%s</b>下添加一个 <b>install.lock</b> 文件来防止他人的恶意重装。如若缺少此文件则将是个安全漏洞哦。
    -WarningUntilDirRemoved=全部的安全警告(仅管理员用户可见普通用户看不到的)只要该漏洞一直存在且你并未修复漏洞,那么安全警告将持续呈现给您。(或在设置->其他设置中将参数MAIN_REMOVE_INSTALL_WARNING添加进去)。
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=即使源和目标之间金额不同进行警告,禁用。启用此功能时要小心。
    -WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
    +WarningUsingThisBoxSlowDown=警告,使用此框会严重减慢显示该框的所有页面。
     WarningClickToDialUserSetupNotComplete=即将完工的网络电话资料信息设置 (详见用户资料信息页的网络电话).
    -WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers.
    -WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s.
    -WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit.
    -WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
    -WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
    -WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    -WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=当为盲人或文本浏览器优化显示设置时,功能被禁用。
    +WarningPaymentDateLowerThanInvoiceDate=发票%s的付款日期(%s)早于发票日期(%s)。
    +WarningTooManyDataPleaseUseMoreFilters=数据太多(超过%s行)。请使用更多过滤器或将常数%s设置为更高的限制。
    +WarningSomeLinesWithNullHourlyRate=一些用户记录了一些时间,而他们的小时费率没有定义。使用的值为每小时0 %s,但这可能导致错误的估计时间。
    +WarningYourLoginWasModifiedPleaseLogin=您的登录已被修改。出于安全考虑,您必须在下一步操作之前使用新登录名登录。
    +WarningAnEntryAlreadyExistForTransKey=此语言的翻译密钥已存在条目
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
    +WarningDateOfLineMustBeInExpenseReportRange=警告,行日期不在费用报表范围内
    diff --git a/htdocs/langs/zh_CN/help.lang b/htdocs/langs/zh_CN/help.lang
    index cf35dd3de5d..d12483eefae 100644
    --- a/htdocs/langs/zh_CN/help.lang
    +++ b/htdocs/langs/zh_CN/help.lang
    @@ -5,22 +5,19 @@ RemoteControlSupport=网上实时/远程支持
     OtherSupport=其他支持
     ToSeeListOfAvailableRessources=查看/联络可用的资源:
     HelpCenter=帮助中心
    -DolibarrHelpCenter=Dolibarr帮助和支持中心
    -ToGoBackToDolibarr=或者,请点击<a href="%s">返回</a>简体中文翻译可到Dolibarr爱好者交流Q群技术交流:206239089
    -TypeOfSupport=源支持
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=社区(免费)
     TypeSupportCommercial=商业
     TypeOfHelp=类型
    -NeedHelpCenter=Need help or support?
    +NeedHelpCenter=需要帮助或支持?
     Efficiency=效率
     TypeHelpOnly=只有帮助
     TypeHelpDev=帮助+开发
    -TypeHelpDevForm=帮助+开发+形成
    -ToGetHelpGoOnSparkAngels1=有些公司可以提供快速(有时直接的),并采取更有效的在线控制您的计算机支持。这些佣工可以是<b>%s</b>网站上找到:
    -ToGetHelpGoOnSparkAngels3=您还可以到所有可用的Dolibarr教练列表,点击这个按钮
    -ToGetHelpGoOnSparkAngels2=有时,是目前公司没有可供您进行搜索,所以想改变过滤器,以寻找“所有的可用性”。您将能够发送更多的请求。
    -BackToHelpCenter=或者,请点击<a href="%s">返回帮助中心</a> 。简体中文翻译可到Dolibarr爱好者交流Q群技术交流:206239089
    -LinkToGoldMember=你可以调用由Dolibarr预选您的语言(%s的按一下他的小工具(状态和最高价格自动更新))的教练之一:
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=支持的语言
    -SubscribeToFoundation=帮助Dolibarr项目,认购的机构
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=使用您的语言的 Dolibarr 官方支持: <br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/zh_CN/holiday.lang b/htdocs/langs/zh_CN/holiday.lang
    index 571fad17dbe..4c21e49d14e 100644
    --- a/htdocs/langs/zh_CN/holiday.lang
    +++ b/htdocs/langs/zh_CN/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=人事管理
    -Holidays=请假
    -CPTitreMenu=请假
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=月结单
     MenuAddCP=新建请假请求
    -NotActiveModCP=你必须先启用请假模块再查看本页。
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=做一个请假申请
     DateDebCP=开始日期
     DateFinCP=结束日期
    @@ -15,13 +15,18 @@ ApprovedCP=批准
     CancelCP=取消
     RefuseCP=拒绝
     ValidatorCP=同意
    -ListeCP=请假记录
    -ReviewedByCP=Will be approved by
    +ListeCP=List of leave
    +LeaveId=请假申请 ID
    +ReviewedByCP=审批人:
    +UserForApprovalID=用户的批准ID
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
    +UserForApprovalLogin=登录审批用户
     DescCP=描述
     SendRequestCP=创建请假请求
     DelayToRequestCP=超过 <b>%s 天(s)</b> 必须请假.
    -MenuConfCP=请假平衡
    -SoldeCPUser=请假平衡 <b>%s</b> 天。
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=你选取的结束日期必须大于起始日期要不然时光逆转就说不过去啦。
     ErrorSQLCreateCP=创建过程中发生了一个SQL错误:
     ErrorIDFicheCP=出现一个错误,请假申请不存在。
    @@ -30,7 +35,14 @@ ErrorUserViewCP=您无权阅读该请假申请。
     InfosWorkflowCP=工作流程信息
     RequestByCP=申请人
     TitreRequestCP=请假条
    +TypeOfLeaveId=请假ID的类型
    +TypeOfLeaveCode=请假类型
    +TypeOfLeaveLabel=请假标签的类型
     NbUseDaysCP=消耗的休假天数
    +NbUseDaysCPShort=消耗的天数
    +NbUseDaysCPShortInMonth=一个月消耗的天数
    +DateStartInMonth=以月开始日期
    +DateEndInMonth=截止日期
     EditCP=编辑
     DeleteCP=删除
     ActionRefuseCP=拒绝
    @@ -59,6 +71,7 @@ DateRefusCP=拒绝日期
     DateCancelCP=注销日期
     DefineEventUserCP=为用户分配一个特殊的假期
     addEventToUserCP=指定休假
    +NotTheAssignedApprover=您不是指定的审批人
     MotifCP=雷森
     UserCP=用户
     ErrorAddEventToUserCP=添加外部请假时出错异常。
    @@ -76,15 +89,20 @@ BoxTitleLastLeaveRequests=最近变更的 %s 份请假申请
     HolidaysMonthlyUpdate=每月更新
     ManualUpdate=手动更新
     HolidaysCancelation=请假申请取消
    -EmployeeLastname=Employee last name
    -EmployeeFirstname=Employee first name
    -TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed
    -LastHolidays=Latest %s leave requests
    -AllHolidays=All leave requests
    -
    +EmployeeLastname=员工姓氏
    +EmployeeFirstname=员工名字
    +TypeWasDisabledOrRemoved=请假类型(id %s)已被禁用或删除
    +LastHolidays=最新的%s请假
    +AllHolidays=所有请假
    +HalfDay=半天
    +NotTheAssignedApprover=您不是指定的审批人
    +LEAVE_PAID=带薪休假
    +LEAVE_SICK=病假
    +LEAVE_OTHER=其他请假
    +LEAVE_PAID_FR=带薪休假
     ## Configuration du Module ##
    -LastUpdateCP=最后自动更新请假分配
    -MonthOfLastMonthlyUpdate=本月最后自动更新请假分配
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=更新成功。
     Module27130Name= 管理请假申请
     Module27130Desc= 管理请假申请
    @@ -94,13 +112,18 @@ NoticePeriod=通知期限
     HolidaysToValidate=批准请假申请
     HolidaysToValidateBody=下面是请假申请批准
     HolidaysToValidateDelay=这个请假申请的时间要求小于 %s 天.
    -HolidaysToValidateAlertSolde=用户请假申请的天数超出准假时间天数范围。
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=批准请假申请
     HolidaysValidatedBody=你的请假申请 %s 到 %s 已批准。
     HolidaysRefused=申请否认
     HolidaysRefusedBody=你的请假申请 %s 到 %s 被否认的原因如下 :
     HolidaysCanceled=已取消请假申请
     HolidaysCanceledBody=你的请假申请 %s 到 %s 已取消。
    -FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
    -NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=点击 <strong>主页 - 设置 - 词汇表 - 请假类型表</strong> 设置请假类型不同的事由。
    +FollowedByACounter=1:这种假期需要一个计数器。计数器手动或自动递增,当验证请假时,计数器递减。<br> 0:无计数器。
    +NoLeaveWithCounterDefined=没有定义的休假类型需要由计数器跟随
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/zh_CN/install.lang b/htdocs/langs/zh_CN/install.lang
    index 2e2ee9abe0d..b84c97eaecc 100644
    --- a/htdocs/langs/zh_CN/install.lang
    +++ b/htdocs/langs/zh_CN/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=按照安装指南手册一步步执行即可。
     MiscellaneousChecks=服务器环境检查
     ConfFileExists=配置文件 <b>%s</b> 已存在。
    -ConfFileDoesNotExistsAndCouldNotBeCreated=配置文件<b>%s</b>不存在并且无法创建请给予写入权限!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=已创建好 <b>%s</b> 配置文件。
    -ConfFileIsNotWritable=配置文件 <b>%s</b> 没有写权限。烦请再次检查权限设置。首次安装时,Web服务器必须设置该配置文件为可写权限 (例如Unix系统中需要用"chmod 666"命令来赋予权限)。
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=配置文件 <b>%s</b> 为可写权限。
    -ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=从新的配置文件中加载全部信息。
    +ConfFileMustBeAFileNotADir=配置文件<b> %s </b>必须是文件,而不是目录。
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=PHP多线程支持。
     PHPSupportPOSTGETOk=PHP的POST和GET支持。
    -PHPSupportPOSTGETKo=有可能你的PHP安装程序不支持变量POST或GET。检查php.ini中参数 <b>variables_order</b> 的设置。
    -PHPSupportGD=PHP开启GD图形功能。
    -PHPSupportCurl=PHP的 Curl支持。
    -PHPSupportUTF8=PHP开启UTF8功能。
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=您的PHP最大session会话内存设置为<b>%s</b>。这应该够了的。
    -PHPMemoryTooLow=您的PHP最大session会话内存设置为 <b>%s</b>bytes字节。这太低了点儿。请修改 <b>php.ini</b> 中 <b>memory_limit</b>的参数的设置值改大点儿至少  <b>%s</b> bytes字节。
    -Recheck=点击这里有更多的有意义的测试
    -ErrorPHPDoesNotSupportSessions=您的PHP安装不支持 sessions会话。而Dolibarr要求 sessions会话功能必须启用并激活Dolibarr才能正常运行。烦请再次检查PHP配置参数是否启用 sessions会话功能。
    -ErrorPHPDoesNotSupportGD=您的PHP安装不支持GD图形功能。作图功能将失效。
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=你的PHP服务器不支持Curl。
    -ErrorPHPDoesNotSupportUTF8=您的PHP安装不支持UTF8的功能。 Dolibarr不能正常工作。安装Dolibarr之前请先解决UTF8支持问题。
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=目录 %s 不存在。
    -ErrorGoBackAndCorrectParameters=请返回上页并修正里面错误的参数然后再继续下一步。
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=您可能输入了一个错误的参数值的 '%s' 。
     ErrorFailedToCreateDatabase=无法创建数据库 '%s'。
     ErrorFailedToConnectToDatabase=无法连接到数据库 '%s'。
     ErrorDatabaseVersionTooLow=数据库版本 (%s) 太低了,需要 %s 或更高版本。
     ErrorPHPVersionTooLow=PHP的版本太旧了。至少需要 %s 版本。
    -ErrorConnectedButDatabaseNotFound=成功连接到数据库服务器的,但不存在 '%s' 数据库,没找着啊,亲。
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=数据库 '%s' 已存在。
    -IfDatabaseNotExistsGoBackAndUncheckCreate=如果数据库不存在,请返回检查并选择“创建数据库”。
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=如果数据库已经存在,请返回并取消选中“创建数据库”选项。
    -WarningBrowserTooOld=浏览器的版本太旧,您的浏览器得升级到最新的版本才行,我们建议您使用Firefox,Chrome或Opera等更棒的浏览器。
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP版本
     License=使用许可
     ConfigurationFile=配置文件
    @@ -45,22 +45,23 @@ DolibarrDatabase=配置Dolibarr数据库
     DatabaseType=数据库类型
     DriverType=驱动类型
     Server=服务器
    -ServerAddressDescription=这里填写数据库服务器域名或IP地址,当数据库服务器的地址存放在Web服务器相同的服务器的时候,通常填的是'localhost'本机
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=这里填写数据库服务器端口。如果不懂的话请略过不动它原来是什么就是什么就好啦。
     DatabaseServer=数据库服务器
     DatabaseName=数据库名称
    -DatabasePrefix=数据库表前缀
    -AdminLogin=这里填写Dolibarr数据库的账号。
    -PasswordAgain=确认密码
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=这里填写Dolibarr数据库的密码。
     CreateDatabase=创建数据库
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=数据库服务器 - 超级用户
    -CheckToCreateDatabase=勾选此选项则表示如果数据库不存在则创建数据库。<br>在这种情况下, 勾选之后会在页底显示填写超级数据库账号和密码的输入框。
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=选中此项表示使用有创建数据库并且可创建数据库登陆账号的权限,前提是假如填写的数据库不存在。
    -KeepEmptyIfNoPassword=如果账号无需密码则保留空白不填写(最好避免空密码这种情况不安全呀)
    -SaveConfigurationFile=保存参数
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=服务器连接
     DatabaseCreation=创建数据库
     CreateDatabaseObjects=创建数据库对象
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=创建表的外键和索引 %s
     OtherKeysCreation=创建外键和索引
     FunctionsCreation=创建主要功能模块
     AdminAccountCreation=创建管理员登陆账号
    -PleaseTypePassword=请输入密码,密码不得为空!
    -PleaseTypeALogin=请输入登陆账号!
    -PasswordsMismatch=密码不正确,请重试!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=安装成功
     SystemIsInstalled=安装结束。
     SystemIsUpgraded=Dolibarr升级成功。
    @@ -81,73 +82,73 @@ YouNeedToPersonalizeSetup=请您进入后台管理并设定相关功能模块的
     AdminLoginCreatedSuccessfuly=Dolibarr后台管理账号 '<b>%s</b>' 创建完毕。
     GoToDolibarr=前往Dolibarr
     GoToSetupArea=欢迎进入 Dolibarr 美妙世界 (后台管理)
    -MigrationNotFinished=您的数据库的版本是不完全最新的,所以你必须再次运行升级过程。
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=转到页再次升级
    -WithNoSlashAtTheEnd=注意:末尾没有斜杠 "/" 
    -DirectoryRecommendation=基于安全及习惯做法我们推荐你使用网页目录以外的目录当然使用默认的也是可以的不强求。
    +WithNoSlashAtTheEnd=注意:末尾没有斜杠 "/"
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=已存在
     DolibarrAdminLogin=Dolibarr后台管理账号名
    -AdminLoginAlreadyExists=Dolibarr管理员帐户<b>'%s'</b>已经存在。
    -FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=温馨提示,出于安全考量,安装或升级完成后你应删除<b>安装目录<b>或重命名为 <b>install.lock</b> ,以避免被他人恶意利用重装Dolibarr。
    -FunctionNotAvailableInThisPHP=此服务器上的PHP不支持
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
    +FailedToCreateAdminLogin=无法创建Dolibarr管理员帐户。
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=选择迁移脚本
    -DataMigration=Database migration (data)
    -DatabaseMigration=Database migration (structure + some data)
    +DataMigration=数据库迁移(数据)
    +DatabaseMigration=数据库迁移(结构+一些数据)
     ProcessMigrateScript=脚本处理
     ChooseYourSetupMode=选择你的安装模式,然后点击“开始”...
     FreshInstall=全新安装
    -FreshInstallDesc=如果这是你第一次安装,请使用此模式然后点击"开始"。如果不是,这个模式可以修复前次的不完全的安装。但是如果你想升级你的版本,请选择底下的“升级”模式如果它可用的话显示不可用就没得选啦。
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=升级
     UpgradeDesc=如果你使用这种模式已经取代了从一个较新版本的文件旧Dolibarr文件。这将提升您的数据库和数据。
     Start=开始
     InstallNotAllowed=安装程序不容许<b>conf.php</b>权限
     YouMustCreateWithPermission=您必须创建文件%s,并且给予Dolibarr安装程序的读取和写入该文件的权限。
    -CorrectProblemAndReloadPage=请修正未打勾项之后,该给读写权限就给chmod 777该怎样就修正之后,按F5刷新页面再安装或升级Dolibarr。
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=已迁移
     DatabaseVersion=数据库版本
     ServerVersion=数据库服务器版本
     YouMustCreateItAndAllowServerToWrite=您必须创建此目录和Web服务器允许写进去。
     DBSortingCollation=字符排序
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=你问到创建数据库<b>%s,</b>但对于这一点,Dolibarr需要连接到伺服器<b>%S</b>与超级用户<b>%s</b>的权限。
    -YouAskLoginCreationSoDolibarrNeedToConnect=你问到创建数据库登陆 <b>%s</b>, 但是对于这一点,Dolibarr需要连接到伺服器<b>%s</b> 与超级用户 <b>%s</b> 的权限。
    -BecauseConnectionFailedParametersMayBeWrong=作为连接失败,主机或超级用户参数一定是错误的。
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=孤儿付款检测方法%s
     RemoveItManuallyAndPressF5ToContinue=手动删除它,然后按F5键继续。
     FieldRenamed=重命名栏位
    -IfLoginDoesNotExistsCheckCreateUser=如果登陆名不存在,则你必须检查选项“创建用户”
    -ErrorConnection=服务器 "<b>%s</b>", 数据库名称 "<b>%s</b>", 并登陆 "<b>%s</b>", 或数据库密码可能是错误或PHP的客户端版本可能太旧版本相比,数据库。
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=推荐选择<b>你</b>的安装版本<b>%%s</b>从当前版本
     InstallChoiceSuggested=<b>通过安装向导安装所选</b> 。
    -MigrateIsDoneStepByStep=目标版本(%s)有好几个版本的差距,因此,安装向导会回来一次将完成这一个建议未来的迁移。
    -CheckThatDatabasenameIsCorrect=检查数据库名称<b>“%s”</b>是正确的。
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=如果此名称是正确的,该数据库尚不存在,你必须检查选项“创建数据库”。
     OpenBaseDir=PHP的openbasedir参数
    -YouAskToCreateDatabaseSoRootRequired=你选中的选框“创建数据库”。为此,您需要提供登陆/密码的超级用户(表单底部)。
    -YouAskToCreateDatabaseUserSoRootRequired=你选中的选框“创建数据库所有者”。为此,您需要提供登陆/密码的超级用户(表单底部)。
    -NextStepMightLastALongTime=当前操作可能会持续几分钟。请耐心等待网页自动跳转至下一页面,谢谢合作!
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=客户订单送货迁移存储
     MigrationShippingDelivery=送货升级存储
     MigrationShippingDelivery2=送货升级存储 2
     MigrationFinished=迁移完成
    -LastStepDesc=<strong>最后设置管理员登陆账号及密码</strong> :此处定义的是后台管理的登陆账号和密码。所创建的账号密码可别弄丢了哟!
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=激活启用模块%s
     ShowEditTechnicalParameters=点击此处显示/编辑高级参数(专家模式)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=您的数据库版本为%s。此版本有关键性错误:如果进行数据结构调整(数据迁移过程必须调整数据结构),您会丢失数据。因此,直到您升级数据库到更高级无错误版本前,不允许迁移操作(已知有问题的版本列表:%s)
    -KeepDefaultValuesWamp=您使用从DoliWamp Dolibarr安装向导,所以这里建议值已经进行了优化。他们唯一的变化,如果你知道你做什么。
    -KeepDefaultValuesDeb=您使用从Ubuntu或者Debian软件包的Dolibarr安装向导,所以这里建议值已经进行了优化。只有数据库的所有者创建的密码必须完成。其他参数的变化,如果你只知道你做什么。
    -KeepDefaultValuesMamp=您使用从DoliMamp Dolibarr安装向导,所以这里建议值已经进行了优化。他们唯一的变化,如果你知道你做什么。
    -KeepDefaultValuesProxmox=您使用Proxmox的虚拟设备的Dolibarr安装向导,因此,这里提出的价值已经优化。改变他们,只有当你知道你做什么。
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    -SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
    -NothingToDelete=Nothing to clean/delete
    -NothingToDo=Nothing to do
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
    +SetAtLeastOneOptionAsUrlParameter=将至少一个选项设置为URL中的参数。例如:'... repair.php?standard = confirmed'
    +NothingToDelete=无需清理/删除
    +NothingToDo=空闲
     #########
     # upgrade
     MigrationFixData=修正了非规范化数据
     MigrationOrder=数据迁移的客户订单
    -MigrationSupplierOrder=Data migration for vendor's orders
    +MigrationSupplierOrder=供应商订单的数据迁移
     MigrationProposal=数据迁移的商业报价
     MigrationInvoice=数据迁移的客户发票
     MigrationContract=数据迁移合同
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=合同数据校正
     MigrationContractsNumberToUpdate=%的合同(县)更新
     MigrationContractsLineCreation=创建合同号线中1%的合同
     MigrationContractsNothingToUpdate=没有更多的事情要做
    -MigrationContractsFieldDontExist=栏位 fk_facture 不存在。啥也没干。
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=合同空日期更正
    -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=没有合同的日期,以正确的空
     MigrationContractsEmptyCreationDatesNothingToUpdate=没有合同,以正确的创建日期
     MigrationContractsInvalidDatesUpdate=合同日期更正错误的价值
    @@ -173,13 +174,13 @@ MigrationContractsInvalidDateFix=正确的%s的合同(合同日期=%s后,开
     MigrationContractsInvalidDatesNumber=%s 联系人已变更
     MigrationContractsInvalidDatesNothingToUpdate=无不良日至正确的价值
     MigrationContractsIncoherentCreationDateUpdate=合同无效值创建日期更正
    -MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done successfully
    +MigrationContractsIncoherentCreationDateUpdateSuccess=差值合约创建日期更正成功完成
     MigrationContractsIncoherentCreationDateNothingToUpdate=对合同成立之日起,纠正不良的价值
     MigrationReopeningContracts=未平仓合约关闭错误
     MigrationReopenThisContract=重新打开%s的合同
     MigrationReopenedContractsNumber=%s 联系人变更
     MigrationReopeningContractsNothingToUpdate=没有合同,打开封闭
    -MigrationBankTransfertsUpdate=Update links between bank entry and a bank transfer
    +MigrationBankTransfertsUpdate=更新银行条目和银行转帐之间的链接
     MigrationBankTransfertsNothingToUpdate=所有链接是最新的
     MigrationShipmentOrderMatching=发送收据更新
     MigrationDeliveryOrderMatching=送达回执更新
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=送货更新
     MigrationStockDetail=更新产品的库存值
     MigrationMenusDetail=最新动态菜单表
     MigrationDeliveryAddress=更新货物的配送地址
    -MigrationProjectTaskActors=数据llx_projet_task_actors迁移表
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=数据迁移llx_projet领域fk_user_resp到llx_element_contact
     MigrationProjectTaskTime=更新时间花费在几秒钟内
     MigrationActioncommElement=更新动作数据
     MigrationPaymentMode=付款方式的数据迁移
     MigrationCategorieAssociation=迁移类别
    -MigrationEvents=迁移事件数据:将事件所有者数据添加到任务列表
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=更新 llx_societe_remise 的实际栏位参数值
     MigrationRemiseExceptEntity=更新 llx_societe_remise_except 的实际栏位参数值
    -MigrationUserRightsEntity=Update entity field value of llx_user_rights
    -MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserRightsEntity=更新llx_user_rights的实体字段值
    +MigrationUserGroupRightsEntity=更新llx_usergroup_rights的实体字段值
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=重载模块%s
    -MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=显示不可用的选项
    -HideNotAvailableOptions=隐藏不可用的选项
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    -ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +MigrationResetBlockedLog=重置模块BlockedLog for v7算法
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
    +ClickHereToGoToApp=点击此处转到您的申请
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/zh_CN/interventions.lang b/htdocs/langs/zh_CN/interventions.lang
    index a15d4a532c1..60a3f3c6707 100644
    --- a/htdocs/langs/zh_CN/interventions.lang
    +++ b/htdocs/langs/zh_CN/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=干预
     InterventionCard=干预卡
     NewIntervention=新的干预
     AddIntervention=创建干预
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=干预列表
     ActionsOnFicheInter=干预活动
     LastInterventions=最新 %s干预
    @@ -15,18 +16,18 @@ ValidateIntervention=验证干预
     ModifyIntervention=变更干预
     DeleteInterventionLine=删除干预行
     CloneIntervention=复制干预
    -ConfirmDeleteIntervention=Are you sure you want to delete this intervention?
    -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name <b>%s</b>?
    -ConfirmModifyIntervention=Are you sure you want to modify this intervention?
    -ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line?
    -ConfirmCloneIntervention=Are you sure you want to clone this intervention?
    +ConfirmDeleteIntervention=您确定要删除此干预吗?
    +ConfirmValidateIntervention=您确定要在名称<b> %s </b>下批准此干预吗?
    +ConfirmModifyIntervention=您确定要修改此干预吗?
    +ConfirmDeleteInterventionLine=您确定要删除此干预线吗?
    +ConfirmCloneIntervention=您确定要克隆此干预吗?
     NameAndSignatureOfInternalContact=干预的签名和盖章::
     NameAndSignatureOfExternalContact=客户的签名和盖章::
     DocumentModelStandard=标准文档模板的干预
     InterventionCardsAndInterventionLines=干预和干预明细
     InterventionClassifyBilled=分类“帐单”
     InterventionClassifyUnBilled=归类 'Unbilled'
    -InterventionClassifyDone=Classify "Done"
    +InterventionClassifyDone=分类“完成”
     StatusInterInvoiced=帐单
     SendInterventionRef=提交的干预 %s
     SendInterventionByMail=通过邮件发送干预
    @@ -39,28 +40,28 @@ InterventionSentByEMail=干预 %s 通过电子邮件发送
     InterventionDeletedInDolibarr=干预 %s 已删除
     InterventionsArea=干预区
     DraftFichinter=干预草稿
    -LastModifiedInterventions= 最近变更的 %s 干预
    -FichinterToProcess=Interventions to process
    +LastModifiedInterventions=最近变更的 %s 干预
    +FichinterToProcess=要处理的干预措施
     ##### Types de contacts #####
     TypeContact_fichinter_external_CUSTOMER=随访客户联系
     # Modele numérotation
    -PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card
    +PrintProductsOnFichinter=在干预卡上也打印“产品”类型(不仅是服务)
     PrintProductsOnFichinterDetails=从订单生成干预
     UseServicesDurationOnFichinter=使用服务持续时间从订单生成干预
    -UseDurationOnFichinter=Hides the duration field for intervention records
    -UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
    +UseDurationOnFichinter=隐藏干预记录的持续时间字段
    +UseDateWithoutHourOnFichinter=隐藏干预记录的日期字段的小时和分钟
     InterventionStatistics=干预统计
    -NbOfinterventions=干预信息卡数量
    -NumberOfInterventionsByMonth=按月筛选干预信息卡数量(认证日期)
    -AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
    +AmountOfInteventionNotIncludedByDefault=默认情况下,干预金额不包括在利润中(在大多数情况下,时间表用于计算花费的时间)。将选项PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT添加到1到home-setup-other以包含它们。
     ##### Exports #####
    -InterId=Intervention id
    +InterId=干预身份
     InterRef=干预编号
    -InterDateCreation=Date creation intervention
    -InterDuration=Duration intervention
    -InterStatus=Status intervention
    -InterNote=Note intervention
    -InterLineId=Line id intervention
    -InterLineDate=Line date intervention
    -InterLineDuration=Line duration intervention
    -InterLineDesc=Line description intervention
    +InterDateCreation=日期创建干预
    +InterDuration=持续干预
    +InterStatus=现状干预
    +InterNote=注意干预
    +InterLineId=线路ID干预
    +InterLineDate=行日期干预
    +InterLineDuration=线路持续时间干预
    +InterLineDesc=线描述干预
    diff --git a/htdocs/langs/zh_CN/main.lang b/htdocs/langs/zh_CN/main.lang
    index 7d9a9c1c458..c45ee7d448c 100644
    --- a/htdocs/langs/zh_CN/main.lang
    +++ b/htdocs/langs/zh_CN/main.lang
    @@ -1,5 +1,5 @@
     # Dolibarr language file - Source file is en_US - main
    -DIRECTION=ltr
    +DIRECTION=升
     # Note for Chinese:
     # msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader)
     # stsongstdlight or cid0cs are for simplified Chinese
    @@ -24,12 +24,12 @@ FormatDateHourSecShort=%Y/%m/%d %I:%M:%S %p
     FormatDateHourTextShort=%b %d, %Y, %I:%M %p
     FormatDateHourText=%B %d, %Y, %I:%M %p
     DatabaseConnection=数据库连接
    -NoTemplateDefined=No template available for this email type
    -AvailableVariables=Available substitution variables
    +NoTemplateDefined=此电子邮件类型没有可用的模板
    +AvailableVariables=可用的替代变量
     NoTranslation=没有翻译
     Translation=翻译
     NoRecordFound=空空如也——没有找到记录
    -NoRecordDeleted=No record deleted
    +NoRecordDeleted=未删除记录
     NotEnoughDataYet=数据不足
     NoError=没有错误
     Error=错误
    @@ -40,75 +40,75 @@ ErrorFileDoesNotExists=文件%s不存在
     ErrorFailedToOpenFile=无法打开文件%s
     ErrorCanNotCreateDir=无法创建目录 %s
     ErrorCanNotReadDir=无法读取目录 %s
    -ErrorConstantNotDefined=不是定义的参数%
    +ErrorConstantNotDefined=参数%s未定义
     ErrorUnknown=未知错误
     ErrorSQL=SQL错误
     ErrorLogoFileNotFound=徽标LOGO文件'%s'没有找到
    -ErrorGoToGlobalSetup=Go to 'Company/Organization' setup to fix this
    +ErrorGoToGlobalSetup=转到“公司/组织”设置以解决此问题
     ErrorGoToModuleSetup=前往模块设置来解决此
     ErrorFailedToSendMail=无法发送邮件(发件人=%s后,接收器=%s)的
     ErrorFileNotUploaded=文件没有上传。检查大小不超过允许的最大值,即在磁盘上的可用空间是可用和有没有这已经与in这个目录同名文件。
     ErrorInternalErrorDetected=检测到错误
     ErrorWrongHostParameter=错误的主机参数
    -ErrorYourCountryIsNotDefined=你的国家是没有定义。回到首页安装程序,编辑和后再次形成。
    -ErrorRecordIsUsedByChild=无法删除此记录。此记录至少使用子记录。
    +ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post the form again.
    +ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record.
     ErrorWrongValue=错误的值
    -ErrorWrongValueForParameterX=错误的参数值之%
    -ErrorNoRequestInError=在错误的请求
    -ErrorServiceUnavailableTryLater=服务暂时无法使用。请稍后再试。
    -ErrorDuplicateField=在唯一的栏位中复制值
    -ErrorSomeErrorWereFoundRollbackIsDone=有些发现错误。我们回滚更改。
    -ErrorConfigParameterNotDefined=参数<b>%s</b>是没有定义的配置文件里面Dolibarr <b>conf.php。</b>
    -ErrorCantLoadUserFromDolibarrDatabase=在Dolibarr数据库<b>%s</b>无法找到用户账号。
    -ErrorNoVATRateDefinedForSellerCountry=错误,没有增值税税率确定为国家'%s'的。
    -ErrorNoSocialContributionForSellerCountry=错误, 这个国家未定义社会/财政税类型 '%s'.
    +ErrorWrongValueForParameterX=错误的参数值%s
    +ErrorNoRequestInError=无请求错误
    +ErrorServiceUnavailableTryLater=Service not available at the moment. Try again later.
    +ErrorDuplicateField=在唯一的栏位中使用了重复值
    +ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back.
    +ErrorConfigParameterNotDefined=Parameter <b>%s</b> is not defined in Dolibarr config file <b>conf.php</b>.
    +ErrorCantLoadUserFromDolibarrDatabase=在数据库无法找到用户<b>%s</b>
    +ErrorNoVATRateDefinedForSellerCountry=错误,没有为国家'%s'设置增值税税率。
    +ErrorNoSocialContributionForSellerCountry=错误,没有为国家'%s'定义社会/财政税类型
     ErrorFailedToSaveFile=错误,无法保存文件。
    -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one
    -MaxNbOfRecordPerPage=Max number of record per page
    -NotAuthorized=You are not authorized to do that.
    +ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of a current one
    +MaxNbOfRecordPerPage=Max number of records per page
    +NotAuthorized=您无权执行此操作。
     SetDate=设置日期
     SelectDate=请选择日期
     SeeAlso=另请参阅 %s
     SeeHere=看这里
     ClickHere=点击这里
    -Here=Here
    +Here=这里
     Apply=申请
     BackgroundColorByDefault=默认的背景颜色
    -FileRenamed=The file was successfully renamed
    -FileGenerated=The file was successfully generated
    -FileSaved=The file was successfully saved
    +FileRenamed=该文件已成功重命名
    +FileGenerated=该文件已成功生成
    +FileSaved=该文件已成功保存
     FileUploaded=文件上传成功
    -FileTransferComplete=File(s) was uploaded successfully
    -FilesDeleted=File(s) successfully deleted
    -FileWasNotUploaded=一个文件被选中的附件,但还没有上传。点击“附加文件”为这一点。
    -NbOfEntries=铌条目
    +FileTransferComplete=File(s) uploaded successfully
    +FilesDeleted=文件已成功删除
    +FileWasNotUploaded=一个文件被选中的附件,但还没有上传。点击“附加文件”上传。
    +NbOfEntries=No. of entries
     GoToWikiHelpPage=阅读在线帮助文档 (需要访问外网)
     GoToHelpPage=阅读帮助
     RecordSaved=记录已保存
     RecordDeleted=记录已删除
     LevelOfFeature=权限级别
     NotDefined=未定义
    -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to <b>%s</b> in configuration file <b>conf.php</b>.<br>This means that the password database is external to Dolibarr, so changing this field may have no effect.
    +DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr身份验证模式在配置文件<b> conf.php </ b>中设置为<b> %s </ b>。<br>这意味着密码数据库在Dolibarr外部,因此更改此字段可能无效。
     Administrator=管理员
     Undefined=未定义
     PasswordForgotten=忘记密码?
    -NoAccount=No account?
    +NoAccount=没有账号?
     SeeAbove=见上文
    -HomeArea=首页信息状态区
    +HomeArea=主页
     LastConnexion=最后上线时间
     PreviousConnexion=上次上线时间
     PreviousValue=上一个值
     ConnectedOnMultiCompany=对实体连接
     ConnectedSince=当前连接状态
     AuthenticationMode=认证模式
    -RequestedUrl=Requested URL
    +RequestedUrl=请求的URL
     DatabaseTypeManager=数据库类型管理员
     RequestLastAccessInError=最后数据库访问请求错误
     ReturnCodeLastAccessInError=返回最后数据库访问请求错误代码
     InformationLastAccessInError=最后数据库访问请求错误信息
     DolibarrHasDetectedError=Dolibarr检测到一个技术性错误
    -YouCanSetOptionDolibarrMainProdToZero=You can read log file or set option $dolibarr_main_prod to '0' in your config file to get more information.
    -InformationToHelpDiagnose=This information can be useful for diagnostic purposes (you can set option $dolibarr_main_prod to '1' to remove such notices)
    +YouCanSetOptionDolibarrMainProdToZero=您可以在配置文件中读取日志文件或将选项$ dolibarr_main_prod设置为“0”以获取更多信息。
    +InformationToHelpDiagnose=此信息可用于诊断目的(您可以将选项$ dolibarr_main_prod设置为'1'以删除此类通知)
     MoreInformation=更多信息
     TechnicalInformation=技术信息
     TechnicalID=技术ID
    @@ -123,7 +123,7 @@ yes=是
     Yes=是
     no=没有
     No=否
    -All=All
    +All=所有
     Home=主页
     Help=帮助
     OnlineHelp=在线帮助
    @@ -133,15 +133,16 @@ Always=总是
     Never=从来没有
     Under=下
     Period=期间
    -PeriodEndDate=结束日期的期限
    -SelectedPeriod=Selected period
    -PreviousPeriod=Previous period
    +PeriodEndDate=期限的结束日期
    +SelectedPeriod=选定期间
    +PreviousPeriod=上一期间
     Activate=激活
     Activated=启用
     Closed=关闭
     Closed2=关闭
    -NotClosed=Not closed
    +NotClosed=没有关闭
     Enabled=生效
    +Enable=生效
     Deprecated=已过时
     Disable=禁用
     Disabled=禁用
    @@ -153,30 +154,30 @@ Update=更新
     Close=关闭
     CloseBox=将插件从你的看板中移除
     Confirm=确认
    -ConfirmSendCardByMail=Do you really want to send content of this card by mail to <b>%s</b>?
    +ConfirmSendCardByMail=Do you really want to send the content of this card by mail to <b>%s</b>?
     Delete=删除
     Remove=移除
    -Resiliate=Terminate
    +Resiliate=终止
     Cancel=取消
     Modify=变更
     Edit=编辑
     Validate=验证
     ValidateAndApprove=验证和同意
    -ToValidate=为了验证
    -NotValidated=Not validated
    +ToValidate=验证
    +NotValidated=未经验证
     Save=保存
     SaveAs=另存为
     TestConnection=测试连接
     ToClone=复制
     ConfirmClone=选取你想要复制的数据:
    -NoCloneOptionsSpecified=没有数据复制界定。
    +NoCloneOptionsSpecified=未定义可复制数据
     Of=的
     Go=下一步
     Run=运行
     CopyOf=复制
     Show=显示
    -Hide=Hide
    -ShowCardHere=广告单
    +Hide=隐藏
    +ShowCardHere=显示卡片
     Search=搜索
     SearchOf=搜索
     Valid=有效
    @@ -185,10 +186,10 @@ Disapprove=不同意
     ReOpen=重新开放
     Upload=发送文件
     ToLink=链接
    -Select=请选取
    +Select=选取
     Choose=选择
     Resize=调整大小
    -ResizeOrCrop=Resize or Crop
    +ResizeOrCrop=调整大小或裁剪
     Recenter=Recenter
     Author=操作者
     User=用户
    @@ -198,15 +199,15 @@ Groups=群组
     NoUserGroupDefined=未定义用户群组
     Password=密码
     PasswordRetype=重新输入您的密码
    -NoteSomeFeaturesAreDisabled=注意了注意了在这个Demo演示中很多功能/模块都是禁用的。
    +NoteSomeFeaturesAreDisabled=注意:在这个示范中很多功能/模块都是禁用的。
     Name=名称
     Person=人
     Parameter=参数
     Parameters=参数
     Value=值
     PersonalValue=自定义
    -NewObject=New %s
    -NewValue=新的价值
    +NewObject=新%s
    +NewValue=新值
     CurrentValue=当前值
     Code=编码
     Type=类型
    @@ -220,9 +221,9 @@ Info=日志
     Family=家庭
     Description=描述
     Designation=描述
    -Model=Doc template
    -DefaultModel=Default doc template
    -Action=活动
    +Model=文档模板
    +DefaultModel=默认文档模板
    +Action=事件
     About=关于
     Number=数字
     NumberByMonth=按月份数
    @@ -231,15 +232,15 @@ Numero=数字
     Limit=限制
     Limits=范围
     Logout=注销
    -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode <b>%s</b>
    +NoLogoutProcessWithAuthMode=没有具有身份验证模式的应用程序断开连接功能<b> %s </ b>
     Connection=登陆
     Setup=设置
     Alert=生日提醒
     MenuWarnings=警告
     Previous=以前
    -Next=未来
    -Cards=牌
    -Card=信息
    +Next=下一个
    +Cards=信息卡
    +Card=信息卡
     Now=现在
     HourStart=开始时间
     Date=日期
    @@ -258,7 +259,7 @@ DateClosing=截止日期
     DateDue=截止日期
     DateValue=确认日期
     DateValueShort=确认日期
    -DateOperation=发生日期
    +DateOperation=操作日期
     DateOperationShort=操作日期
     DateLimit=限定日期
     DateRequest=申请日期
    @@ -267,35 +268,35 @@ DateBuild=报告生成日期
     DatePayment=付款日期
     DateApprove=批准日期
     DateApprove2=批准日期(二次批准)
    -RegistrationDate=Registration date
    +RegistrationDate=注册日期
     UserCreation=创建用户
     UserModification=修改用户
    -UserValidation=Validation user
    +UserValidation=批准用户
     UserCreationShort=创建用户
     UserModificationShort=修改用户
    -UserValidationShort=Valid. user
    +UserValidationShort=批准用户
     DurationYear=年
     DurationMonth=月
     DurationWeek=周
     DurationDay=天
    -DurationYears=岁
    -DurationMonths=个月
    +DurationYears=年
    +DurationMonths=月
     DurationWeeks=周
     DurationDays=天
     Year=年
     Month=月
     Week=周
    -WeekShort=星期
    +WeekShort=周
     Day=天
    -Hour=小时
    -Minute=分钟
    -Second=第二
    -Years=岁
    -Months=个月
    +Hour=时
    +Minute=分
    +Second=秒
    +Years=年
    +Months=月
     Days=天
     days=天
     Hours=时间
    -Minutes=纪要
    +Minutes=分钟
     Seconds=秒
     Weeks=星期
     Today=今日
    @@ -303,20 +304,20 @@ Yesterday=昨天
     Tomorrow=明天
     Morning=早上
     Afternoon=中午
    -Quadri=Quadri
    +Quadri=四
     MonthOfDay=本月的一天
    -HourShort=Ĥ
    -MinuteShort=mn
    +HourShort=时
    +MinuteShort=分
     Rate=税率
    -CurrencyRate=Currency conversion rate
    +CurrencyRate=汇率
     UseLocalTax=含税
     Bytes=B
     KiloBytes=KB
     MegaBytes=MB
     GigaBytes=GB
    -TeraBytes=TB级
    -UserAuthor=User of creation
    -UserModif=User of last update
    +TeraBytes=TB
    +UserAuthor=创建的用户
    +UserModif=更新的用户
     b=b.
     Kb=Kb
     Mb=兆
    @@ -324,35 +325,35 @@ Gb=千兆
     Tb=Tb
     Cut=剪切
     Copy=复制
    -Paste=糊
    +Paste=粘贴
     Default=默认
     DefaultValue=默认值
    -DefaultValues=默认值
    +DefaultValues=Default values/filters/sorting
     Price=价格
    -PriceCurrency=Price (currency)
    +PriceCurrency=价格(货币)
     UnitPrice=单价
    -UnitPriceHT=单位价格(净值)
    -UnitPriceHTCurrency=Unit price (net) (currency)
    +UnitPriceHT=单价(净值)
    +UnitPriceHTCurrency=单价(净值)(货币)
     UnitPriceTTC=单价
    -PriceU=向上
    -PriceUHT=不含税价格
    -PriceUHTCurrency=U.P (货币)
    -PriceUTTC=U.P. (inc. tax)
    +PriceU=单价
    +PriceUHT=单价(不含税)
    +PriceUHTCurrency=单价(货币)
    +PriceUTTC=单价(含税)
     Amount=金额
     AmountInvoice=发票金额
    -AmountInvoiced=Amount invoiced
    +AmountInvoiced=发票金额
     AmountPayment=付款金额
     AmountHTShort=金额(净值)
     AmountTTCShort=金额(含税)
     AmountHT=金额(税后)
     AmountTTC=金额(含税)
     AmountVAT=增值税总金额
    -MulticurrencyAlreadyPaid=Already payed, original currency
    -MulticurrencyRemainderToPay=Remain to pay, original currency
    -MulticurrencyPaymentAmount=Payment amount, original currency
    -MulticurrencyAmountHT=Amount (net of tax), original currency
    -MulticurrencyAmountTTC=Amount (inc. of tax), original currency
    -MulticurrencyAmountVAT=Amount tax, original currency
    +MulticurrencyAlreadyPaid=Already paid, original currency
    +MulticurrencyRemainderToPay=保持支付,原始货币
    +MulticurrencyPaymentAmount=付款金额,原始货币
    +MulticurrencyAmountHT=金额(税后净额),原始货币
    +MulticurrencyAmountTTC=金额(包括税),原始货币
    +MulticurrencyAmountVAT=金额税,原始货币
     AmountLT1=税额2
     AmountLT2=税额3
     AmountLT1ES=RE 额
    @@ -360,7 +361,7 @@ AmountLT2ES=IRPF 额
     AmountTotal=总金额
     AmountAverage=平均金额
     PriceQtyMinHT=价格数量分钟。 (税后)
    -PriceQtyMinHTCurrency=Price quantity min. (net of tax) (currency)
    +PriceQtyMinHTCurrency=价格数量最小。 (扣除税款)(货币)
     Percentage=百分比
     Total=总计
     SubTotal=小计
    @@ -373,39 +374,39 @@ Totalforthispage=本页总计
     TotalTTC=共计(含税)
     TotalTTCToYourCredit=共计(含税)你的信用
     TotalVAT=增值税总金额
    -TotalVATIN=Total IGST
    +TotalVATIN=IGST总数
     TotalLT1=总税2
     TotalLT2=总税项3
     TotalLT1ES=共有再生能源
     TotalLT2ES=共有IRPF
    -TotalLT1IN=Total CGST
    -TotalLT2IN=Total SGST
    +TotalLT1IN=总CGST
    +TotalLT2IN=SGST总计
     HT=不含税
     TTC=含增值税
    -INCVATONLY=Inc. VAT
    -INCT=Inc. all taxes
    -VAT=增值税
    +INCVATONLY=含增值税
    +INCT=所有税收
    +VAT=销售税
     VATIN=IGST
     VATs=销售税
    -VATINs=IGST taxes
    -LT1=Sales tax 2
    -LT1Type=Sales tax 2 type
    -LT2=Sales tax 3
    -LT2Type=Sales tax 3 type
    -LT1ES=稀土
    +VATINs=IGST税
    +LT1=销售税2
    +LT1Type=销售税2种
    +LT2=销售税3
    +LT2Type=销售税3种类型
    +LT1ES=编号
     LT2ES=IRPF
     LT1IN=CGST
     LT2IN=SGST
     VATRate=增值税率
    -VATCode=Tax Rate code
    -VATNPR=Tax Rate NPR
    -DefaultTaxRate=Default tax rate
    +VATCode=税率代码
    +VATNPR=税率NPR
    +DefaultTaxRate=默认税率
     Average=平均
     Sum=总和
     Delta=增量
    -RemainToPay=Remain to pay
    -Module=Module/Application
    -Modules=Modules/Applications
    +RemainToPay=继续付钱
    +Module=模块/应用程序
    +Modules=模块/应用
     Option=选项
     List=列表
     FullList=全部列表
    @@ -416,7 +417,7 @@ Favorite=收藏夹
     ShortInfo=信息
     Ref=编号
     ExternalRef=外部编号
    -RefSupplier=Ref. vendor
    +RefSupplier=供应商编号
     RefPayment=付款编号
     CommercialProposalsShort=报价单
     Comment=说明
    @@ -426,56 +427,57 @@ ActionsToDoShort=未完成
     ActionsDoneShort=完成
     ActionNotApplicable=不适用
     ActionRunningNotStarted=等待
    -ActionRunningShort=In progress
    +ActionRunningShort=进行中
     ActionDoneShort=已完成
    -ActionUncomplete=未完成
    -LatestLinkedEvents=Latest %s linked events
    -CompanyFoundation=Company/Organization
    -Accountant=Accountant
    +ActionUncomplete=Incomplete
    +LatestLinkedEvents=最新的%s链接事件
    +CompanyFoundation=公司/组织
    +Accountant=会计
     ContactsForCompany=合伙人联系方式
     ContactsAddressesForCompany=这个合伙人联系人/地址
     AddressesForCompany=这个合伙人的地址
    -ActionsOnCompany=关于这个合伙人的动作
    -ActionsOnMember=此会员相关活动
    -ActionsOnProduct=Events about this product
    +ActionsOnCompany=有关此合伙人的事件
    +ActionsOnContact=Events about this contact/address
    +ActionsOnMember=有关此会员的事件
    +ActionsOnProduct=有关此产品的事件
     NActionsLate=逾期 %s
     ToDo=未完成
    -Completed=Completed
    -Running=In progress
    +Completed=已完成
    +Running=进行中
     RequestAlreadyDone=申请已记录
     Filter=筛选
    -FilterOnInto=Search criteria '<strong>%s</strong>' into fields %s
    +FilterOnInto=将条件“<strong> %s </strong>”搜索到字段%s
     RemoveFilter=清除筛选
     ChartGenerated=图表生成
    -ChartNotGenerated=图不会生成
    +ChartNotGenerated=图表不生成
     GeneratedOn=生成于%s
     Generate=生成
     Duration=为期
     TotalDuration=总时间
     Summary=摘要
    -DolibarrStateBoard=Database statistics
    -DolibarrWorkBoard=Open items dashboard
    -NoOpenedElementToProcess=No opened element to process
    +DolibarrStateBoard=Database Statistics
    +DolibarrWorkBoard=Pending Items
    +NoOpenedElementToProcess=没有要打开的元素
     Available=可用的
    -NotYetAvailable=尚未提供
    +NotYetAvailable=不可用的
     NotAvailable=不可用
     Categories=标签/分类
     Category=标签/分类
     By=由
    -From=From
    +From=从
     to=至
     and=和
     or=或
     Other=其他
     Others=其他
    -OtherInformations=其它信息
    +OtherInformations=Other information
     Quantity=数量
     Qty=数量
    -ChangedBy=改变
    -ApprovedBy=被批准
    -ApprovedBy2=被批准(二次核准)
    -Approved=批准
    -Refused=拒绝
    +ChangedBy=改变者:
    +ApprovedBy=批准者:
    +ApprovedBy2=批准(二次核准)者:
    +Approved=已获批准
    +Refused=已被拒绝
     ReCalculate=重新计算
     ResultKo=失败
     Reporting=报告
    @@ -483,19 +485,19 @@ Reportings=报告
     Draft=草稿
     Drafts=草稿
     StatusInterInvoiced=
    -Validated=验证
    +Validated=批准
     Opened=打开
     New=新建
     Discount=折扣
     Unknown=未知
     General=一般
    -Size=大小
    -OriginalSize=Original size
    +Size=尺寸
    +OriginalSize=原始尺寸
     Received=已收
     Paid=已支付
     Topic=主题
    -ByCompanies=由合伙人
    -ByUsers=By user
    +ByCompanies=按合伙人
    +ByUsers=按用户
     Links=链接
     Link=链接
     Rejects=拒绝
    @@ -504,20 +506,20 @@ NextStep=下一步
     Datas=数据
     None=无
     NoneF=无
    -NoneOrSeveral=None or several
    +NoneOrSeveral=没有或几个
     Late=逾期
    -LateDesc=延迟的定义假如一条记录逾期或者取决于你的配置设定。请向管理员询问并从首页菜单->设置->警告菜单下修改相应设置。
    -NoItemLate=No late item
    +LateDesc=The delay to define if a record is late or not depends on your setup. Ask your admin to change the delay from menu Home - Setup - Alerts.
    +NoItemLate=没有迟到的项目
     Photo=图片
     Photos=图片
     AddPhoto=添加图片
     DeletePicture=删除图片
     ConfirmDeletePicture=确认删除图片吗?
     Login=登陆
    -LoginEmail=Login (email)
    -LoginOrEmail=Login or Email
    +LoginEmail=登录(电子邮件)
    +LoginOrEmail=登录或电邮
     CurrentLogin=当前登陆
    -EnterLoginDetail=Enter login details
    +EnterLoginDetail=输入登录详情
     January=一月
     February=二月
     March=三月
    @@ -530,18 +532,6 @@ September=九月
     October=十月
     November=十一月
     December=十二月
    -JanuaryMin=1
    -FebruaryMin=2
    -MarchMin=3
    -AprilMin=4
    -MayMin=5
    -JuneMin=6
    -JulyMin=7
    -AugustMin=8
    -SeptemberMin=9
    -OctoberMin=10
    -NovemberMin=11
    -DecemberMin=12
     Month01=一月
     Month02=二月
     Month03=三月
    @@ -566,50 +556,50 @@ MonthShort09=9
     MonthShort10=10
     MonthShort11=11
     MonthShort12=12
    -MonthVeryShort01=J
    -MonthVeryShort02=F
    -MonthVeryShort03=M
    -MonthVeryShort04=A
    -MonthVeryShort05=M
    -MonthVeryShort06=J
    -MonthVeryShort07=J
    -MonthVeryShort08=A
    -MonthVeryShort09=S
    -MonthVeryShort10=O
    -MonthVeryShort11=N
    -MonthVeryShort12=D
    +MonthVeryShort01=1
    +MonthVeryShort02=2
    +MonthVeryShort03=3
    +MonthVeryShort04=4
    +MonthVeryShort05=5
    +MonthVeryShort06=6
    +MonthVeryShort07=7
    +MonthVeryShort08=8
    +MonthVeryShort09=9
    +MonthVeryShort10=10
    +MonthVeryShort11=11
    +MonthVeryShort12=12
     AttachedFiles=附件
    -JoinMainDoc=Join main document
    -DateFormatYYYYMM=为YYYY - MM
    -DateFormatYYYYMMDD=为YYYY - MM - dd的
    -DateFormatYYYYMMDDHHMM=为YYYY - MM - dd的小时:不锈钢
    +JoinMainDoc=加入主要文件
    +DateFormatYYYYMM=YYYY-MM
    +DateFormatYYYYMMDD=YYYY-MM-DD
    +DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS
     ReportName=报告名称
    -ReportPeriod=报告期内
    +ReportPeriod=报告期间
     ReportDescription=描述
     Report=报告
     Keyword=关键字
    -Origin=Origin
    -Legend=传说
    +Origin=原始
    +Legend=图例
     Fill=填
     Reset=复位
     File=文件
     Files=文件
     NotAllowed=不允许
     ReadPermissionNotAllowed=读取权限不允许
    -AmountInCurrency= %s 金额
    +AmountInCurrency= %s 货币的金额
     Example=举例
     Examples=范例
     NoExample=没有示例
     FindBug=报告错误
    -NbOfThirdParties=合伙人数量值
    -NbOfLines=线数
    -NbOfObjects=数对象
    -NbOfObjectReferers=关联料号
    +NbOfThirdParties=合伙人数量
    +NbOfLines=行数
    +NbOfObjects=对象数
    +NbOfObjectReferers=关联数量
     Referers=关联物料
     TotalQuantity=总数量
     DateFromTo=从%s到%s
    -DateFrom=第05期从%
    -DateUntil=直到%s的
    +DateFrom=从%s
    +DateUntil=直到%s
     Check=检查
     Uncheck=不检查
     Internal=内部
    @@ -619,119 +609,123 @@ Externals=外部
     Warning=警告
     Warnings=警告
     BuildDoc=生成Doc文件
    -Entity=实体
    +Entity=环境
     Entities=实体
    -CustomerPreview=客户预览
    -SupplierPreview=Vendor preview
    -ShowCustomerPreview=显示客户预览
    -ShowSupplierPreview=Show vendor preview
    -RefCustomer=客户编号
    +CustomerPreview=顾客预览
    +SupplierPreview=供应商预览
    +ShowCustomerPreview=显示顾客预览
    +ShowSupplierPreview=显示供应商预览
    +RefCustomer=顾客编号
     Currency=货币
    -InfoAdmin=信息管理员
    +InfoAdmin=管理员信息
     Undo=复原
     Redo=重做
     ExpandAll=全部展开
     UndoExpandAll=全部折叠
    -SeeAll=See all
    +SeeAll=查看全部
     Reason=原因
     FeatureNotYetSupported=功能尚不支持
     CloseWindow=关闭窗口
     Response=反应
     Priority=优先级
     SendByMail=通过电子邮件发送
    -MailSentBy=通过电子邮件发送
    +MailSentBy=电子邮件发送者:
     TextUsedInTheMessageBody=电子邮件正文
     SendAcknowledgementByMail=发送确认邮件
     SendMail=发送电子邮件
     EMail=E-mail
     NoEMail=没有电子邮件
     Email=电子邮件
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=没有手机号码
    -Owner=用户
    +Owner=拥有者
     FollowingConstantsWillBeSubstituted=以下常量将与相应的值代替。
     Refresh=刷新
     BackToList=返回列表
     GoBack=回去
    -CanBeModifiedIfOk=可以变更,如果有效
    -CanBeModifiedIfKo=可以进行变更,如果不有效
    -ValueIsValid=值是有效的
    -ValueIsNotValid=Value is not valid
    -RecordCreatedSuccessfully=Record created successfully
    +CanBeModifiedIfOk=经批准可修改
    +CanBeModifiedIfKo=不经批准也可修改
    +ValueIsValid=值有效
    +ValueIsNotValid=值无效
    +RecordCreatedSuccessfully=记录创建成功
     RecordModifiedSuccessfully=记录变更成功
    -RecordsModified=%s record modified
    -RecordsDeleted=%s record deleted
    +RecordsModified=%s记录已修改
    +RecordsDeleted=%s记录已删除
     AutomaticCode=自动代码
     FeatureDisabled=功能禁用
     MoveBox=拖动插件
     Offered=提供
     NotEnoughPermissions=您没有这个动作的权限
    -SessionName=会议名称
    +SessionName=会话名称
     Method=方法
     Receive=收到
    -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected
    -ExpectedValue=Expected Value
    +CompleteOrNoMoreReceptionExpected=完成或没有更多的预期
    +ExpectedValue=期望值
     CurrentValue=当前值
     PartialWoman=局部的
     TotalWoman=总计
     NeverReceived=从未收到
    -Canceled=取消
    -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries
    -YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s
    -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup
    +Canceled=已取消
    +YouCanChangeValuesForThisListFromDictionarySetup=您可以从菜单Setup  -  Dictionaries更改此列表的值
    +YouCanChangeValuesForThisListFrom=您可以从菜单%s更改此列表的值
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=颜色
     Documents=链接的文件
     Documents2=文件
     UploadDisabled=上传禁用
     MenuAccountancy=会计
     MenuECM=文件
    -MenuAWStats=awstats的
    +MenuAWStats=AWStats
     MenuMembers=会员
     MenuAgendaGoogle=谷歌议程
     ThisLimitIsDefinedInSetup=来自Dolibarr本身的大小限制(菜单:home-setup-security)为:%s Kb,而PHP的限制为: %s Kb
     NoFileFound=这个目录没保存有文档
     CurrentUserLanguage=当前语言
     CurrentTheme=当前主题样式
    -CurrentMenuManager=当前后台管理菜单主题样式
    +CurrentMenuManager=当前菜单管理器
     Browser=浏览器
    -Layout=Layout
    -Screen=屏幕分辨率
    -DisabledModules=禁用模块
    +Layout=布局
    +Screen=屏幕
    +DisabledModules=已禁用模块
     For=为
    -ForCustomer=对于客户
    +ForCustomer=对于顾客
     Signature=签名
    -DateOfSignature=Date of signature
    +DateOfSignature=签字日期
     HidePassword=显示命令的隐藏密码
     UnHidePassword=真正拿出明确的密码命令
    -Root=Root
    +Root=根
     Informations=信息
     Page=页面
     Notes=备注
     AddNewLine=添加新行
     AddFile=添加文件
    -FreeZone=Not a predefined product/service
    -FreeLineOfType=Not a predefined entry of type
    +FreeZone=不是预定义的产品/服务
    +FreeLineOfType=不是预定义的类型条目
     CloneMainAttributes=复制项目含主属性
     PDFMerge=PDF合并
     Merge=合并
    -DocumentModelStandardPDF=Standard PDF template
    -PrintContentArea=打印中间大区域中显示的文字内容
    +DocumentModelStandardPDF=标准PDF模板
    +PrintContentArea=显示打印页面,用来打印主要内容区域
     MenuManager=菜单管理器
    -WarningYouAreInMaintenanceMode=警告,你是在维护模式,因此,目前只有登陆<b>%s</b>才被允许使用应用。
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=系统错误
    -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information.
    +CoreErrorMessage=对不起,发生了错误。请与您的系统管理员联系以检查日志或禁用$ dolibarr_main_prod = 1以获取更多信息。
     CreditCard=信用卡
     ValidatePayment=确认付款
    -CreditOrDebitCard=Credit or debit card
    -FieldsWithAreMandatory=与<b>%或学科</b>是强制性
    -FieldsWithIsForPublic= 公开显示<b>%s</b> 域的成员列表。如果你不想要这个,检查“公共”框。
    -AccordingToGeoIPDatabase=(根据geoip的转换)
    -Line=线
    +CreditOrDebitCard=信用卡或借记卡
    +FieldsWithAreMandatory=字段<b>%s</b>是强制性的
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
    +Line=行
     NotSupported=不支持
     RequiredField=必填字段
     Result=结果
     ToTest=测试
     ValidateBefore=卡在使用之前必须经过验证此功能
     Visibility=性质
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=私人
     Hidden=隐蔽
     Resources=资源
    @@ -741,7 +735,7 @@ Before=前
     After=后
     IPAddress=IP地址
     Frequency=频率
    -IM=IM
    +IM=即时通讯
     NewAttribute=新建属性
     AttributeCode=属性代码
     URLPhoto=照片/徽标的URL
    @@ -750,6 +744,7 @@ LinkTo=链接到
     LinkToProposal=链接到报价
     LinkToOrder=链接到订单
     LinkToInvoice=链接到发票
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=链接到供应商订单
     LinkToSupplierProposal=链接到供应商报价
     LinkToSupplierInvoice=链接到供应商发票
    @@ -758,54 +753,55 @@ LinkToIntervention=链接到干预
     CreateDraft=创建草稿
     SetToDraft=返回草稿
     ClickToEdit=单击“编辑”
    -EditWithEditor=Edit with CKEditor
    -EditWithTextEditor=Edit with Text editor
    -EditHTMLSource=Edit HTML Source
    +ClickToRefresh=Click to refresh
    +EditWithEditor=使用CKEditor编辑
    +EditWithTextEditor=用文本编辑器编辑
    +EditHTMLSource=编辑HTML源
     ObjectDeleted=删除对象%s
     ByCountry=按国家
    -ByTown=由镇
    +ByTown=按城镇
     ByDate=按日期
     ByMonthYear=按月/年
    -ByYear=在今年
    -ByMonth=按月份
    -ByDay=白天
    +ByYear=按年
    +ByMonth=按月
    +ByDay=按天
     BySalesRepresentative=按销售代表
    -LinkedToSpecificUsers=链接到一个特定的用户
    +LinkedToSpecificUsers=链接到指定的用户联系人
     NoResults=没有结果
    -AdminTools=管理员工具
    +AdminTools=Admin Tools
     SystemTools=系统工具
     ModulesSystemTools=模块工具
     Test=测试
     Element=元素
     NoPhotoYet=还没有图片
     Dashboard=看板
    -MyDashboard=个人看板
    +MyDashboard=My Dashboard
     Deductible=可抵扣
     from=从
     toward=往
     Access=访问
    -SelectAction=Select action
    -SelectTargetUser=Select target user/employee
    +SelectAction=选择行动
    +SelectTargetUser=选择目标用户/员工
     HelpCopyToClipboard=按快捷键 Ctrl+C 复制
    -SaveUploadedFileWithMask=Save file on server with name "<strong>%s</strong>" (otherwise "%s")
    +SaveUploadedFileWithMask=将文件保存在服务器上,名称为“<strong> %s </strong>”(否则为“%s”)
     OriginFileName=原始文件名
     SetDemandReason=设置源
     SetBankAccount=定义银行账户
    -AccountCurrency=Account currency
    +AccountCurrency=账户币种
     ViewPrivateNote=查看备注
     XMoreLines=%s 明细(s) 隐藏
    -ShowMoreLines=Show more/less lines
    -PublicUrl=公网URL
    -AddBox=添加选项框
    -SelectElementAndClick=Select an element and click %s
    +ShowMoreLines=显示更多/更少的行
    +PublicUrl=公开网址
    +AddBox=添加信息框
    +SelectElementAndClick=选择一个元素,然后单击%s
     PrintFile=打印文件 %s
    -ShowTransaction=Show entry on bank account
    +ShowTransaction=在银行帐户条目
     ShowIntervention=显示干预
     ShowContract=查看合同
    -GoIntoSetupToChangeLogo=点击菜单 主页 -> 设置 -> 公司 来修改LOGO或 主页 -> 设置 -> 显示菜单隐藏它。
    +GoIntoSetupToChangeLogo=Go to Home - Setup - Company to change logo or go to Home - Setup - Display to hide.
     Deny=否认
     Denied=否认
    -ListOf=List of %s
    +ListOf=列表%s
     ListOfTemplates=模板列表
     Gender=性别
     Genderman=男人
    @@ -813,64 +809,73 @@ Genderwoman=女人
     ViewList=列表视图
     Mandatory=强制性
     Hello=你好
    -GoodBye=GoodBye
    +GoodBye=再见
     Sincerely=诚恳地
     DeleteLine=删除行
    -ConfirmDeleteLine=Are you sure you want to delete this line?
    -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record
    -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record.
    -NoRecordSelected=No record selected
    +ConfirmDeleteLine=您确定要删除此行吗?
    +NoPDFAvailableForDocGenAmongChecked=在已检查记录中没有PDF可用于生成文档
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
    +NoRecordSelected=未选定记录
     MassFilesArea=批量动作生成文件区
     ShowTempMassFilesArea=显示批量动作生成文件区
    -ConfirmMassDeletion=Bulk delete confirmation
    -ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=关联项目
     ClassifyBilled=归为已付款
    -ClassifyUnbilled=Classify unbilled
    +ClassifyUnbilled=分类未开单
     Progress=进展
     FrontOffice=前台
     BackOffice=后台
     View=查看
     Export=导出
     Exports=导出
    -ExportFilteredList=Export filtered list
    -ExportList=Export list
    +ExportFilteredList=导出筛选列表
    +ExportList=导出清单
     ExportOptions=导出选项
     Miscellaneous=各项设定
     Calendar=日历
    -GroupBy=Group by...
    -ViewFlatList=View flat list
    -RemoveString=Remove string '%s'
    -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>.
    -DirectDownloadLink=Direct download link (public/external)
    -DirectDownloadInternalLink=Direct download link (need to be logged and need permissions)
    -Download=Download
    -DownloadDocument=Download document
    -ActualizeCurrency=Update currency rate
    +GroupBy=分组:
    +ViewFlatList=查看全部列表
    +RemoveString=删除字符串'%s'
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
    +DirectDownloadLink=直接下载链接(公共/外部)
    +DirectDownloadInternalLink=直接下载链接(需要登录且需要权限)
    +Download=下载
    +DownloadDocument=下载文件
    +ActualizeCurrency=更新货币汇率
     Fiscalyear=财务年度
    -ModuleBuilder=Module Builder
    -SetMultiCurrencyCode=Set currency
    -BulkActions=Bulk actions
    -ClickToShowHelp=Click to show tooltip help
    -WebSite=网站
    -WebSites=Web sites
    -WebSiteAccounts=Web site accounts
    +ModuleBuilder=模块工厂
    +SetMultiCurrencyCode=设置货币
    +BulkActions=批量行动
    +ClickToShowHelp=单击以显示工具提示帮助
    +WebSite=Website
    +WebSites=网站
    +WebSiteAccounts=Website accounts
     ExpenseReport=费用报表
     ExpenseReports=费用报表
     HR=HR
    -HRAndBank=HR and Bank
    -AutomaticallyCalculated=Automatically calculated
    -TitleSetToDraft=Go back to draft
    -ConfirmSetToDraft=Are you sure you want to go back to Draft status ?
    -ImportId=Import id
    +HRAndBank=人力资源和银行
    +AutomaticallyCalculated=自动计算
    +TitleSetToDraft=回到草案
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
    +ImportId=导入ID
     Events=事件
    -EMailTemplates=电子邮件模板
    -FileNotShared=File not shared to exernal public
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=项目
     Projects=项目
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=权限
    -LineNb=Line no.
    +LineNb=行号
     IncotermLabel=国际贸易术语解释通则
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=星期一
     Tuesday=星期二
    @@ -879,13 +884,13 @@ Thursday=星期四
     Friday=星期五
     Saturday=星期六
     Sunday=星期日
    -MondayMin=莫
    -TuesdayMin=涂
    -WednesdayMin=我们
    -ThursdayMin=日
    -FridayMin=神父
    -SaturdayMin=萨
    -SundayMin=苏
    +MondayMin=一
    +TuesdayMin=二
    +WednesdayMin=三
    +ThursdayMin=四
    +FridayMin=五
    +SaturdayMin=六
    +SundayMin=日
     Day1=星期一
     Day2=星期二
     Day3=星期三
    @@ -893,21 +898,21 @@ Day4=星期四
     Day5=星期五
     Day6=星期六
     Day0=星期日
    -ShortMonday=M
    -ShortTuesday=Ŧ
    -ShortWednesday=W
    -ShortThursday=Ŧ
    -ShortFriday=F
    -ShortSaturday=S
    -ShortSunday=S
    -SelectMailModel=Select an email template
    -SetRef=设置编号
    -Select2ResultFoundUseArrows=Some results found. Use arrows to select.
    +ShortMonday=一
    +ShortTuesday=二
    +ShortWednesday=三
    +ShortThursday=四
    +ShortFriday=五
    +ShortSaturday=六
    +ShortSunday=日
    +SelectMailModel=选择电子邮件模板
    +SetRef=套编号
    +Select2ResultFoundUseArrows=发现结果。使用箭头选择。
     Select2NotFound=空空如也——没有结果
    -Select2Enter=请输入至少
    +Select2Enter=输入
     Select2MoreCharacter=个以上的字符
     Select2MoreCharacters=个以上的字符
    -Select2MoreCharactersMore=<strong>Search syntax:</strong><br><kbd><strong> |</strong></kbd><kbd> OR</kbd> (a|b)<br><kbd><strong>*</strong></kbd><kbd> Any character</kbd> (a*b)<br><kbd><strong>^</strong></kbd><kbd> Start with</kbd> (^ab)<br><kbd><strong>$</strong></kbd><kbd> End with</kbd> (ab$)<br>
    +Select2MoreCharactersMore=<strong>搜索语法:</strong> <br> <kbd> <strong> | </strong> </kbd> <kbd>或</kbd>(a|b)<br> <kbd> <strong> * </strong> </kbd> <kbd>任何字符</kbd>(a * b)<br> <kbd> <strong> ^ </strong> </kbd> <kbd>以(^ ab)开头</kbd> <br> <kbd> <strong> $ </strong> </kbd> 以<kbd>(ab $)结尾<br>
     Select2LoadingMoreResults=正在加载更多结果...
     Select2SearchInProgress=正在搜索...
     SearchIntoThirdparties=合伙人
    @@ -918,33 +923,35 @@ SearchIntoProductsOrServices=产品或服务
     SearchIntoProjects=项目
     SearchIntoTasks=任务
     SearchIntoCustomerInvoices=客户发票
    -SearchIntoSupplierInvoices=Vendor invoices
    +SearchIntoSupplierInvoices=供应商发票
     SearchIntoCustomerOrders=客户订单
    -SearchIntoSupplierOrders=Purchase orders
    +SearchIntoSupplierOrders=订单
     SearchIntoCustomerProposals=客户报价
    -SearchIntoSupplierProposals=Vendor proposals
    +SearchIntoSupplierProposals=供应商提案
     SearchIntoInterventions=干预
     SearchIntoContracts=合同
     SearchIntoCustomerShipments=客户运输
     SearchIntoExpenseReports=费用报表
    -SearchIntoLeaves=请假
    +SearchIntoLeaves=Leave
     CommentLink=说明
    -NbComments=Number of comments
    -CommentPage=Comments space
    -CommentAdded=Comment added
    -CommentDeleted=Comment deleted
    +NbComments=评论数量
    +CommentPage=评论空间
    +CommentAdded=评论补充
    +CommentDeleted=评论已删除
     Everybody=全体同仁
    -PayedBy=Payed by
    -PayedTo=Payed to
    -Monthly=Monthly
    -Quarterly=Quarterly
    -Annual=Annual
    -Local=Local
    -Remote=Remote
    -LocalAndRemote=Local and Remote
    -KeyboardShortcut=Keyboard shortcut
    +PayedBy=付款人
    +PayedTo=Paid to
    +Monthly=月度
    +Quarterly=季度
    +Annual=全年
    +Local=本地
    +Remote=远程
    +LocalAndRemote=本地和远程
    +KeyboardShortcut=快捷键
     AssignedTo=分配给
    -Deletedraft=Delete draft
    -ConfirmMassDraftDeletion=Draft Bulk delete confirmation
    -FileSharedViaALink=File shared via a link
    -
    +Deletedraft=删除草稿
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
    +FileSharedViaALink=文件通过链接共享
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=库存
    diff --git a/htdocs/langs/zh_CN/other.lang b/htdocs/langs/zh_CN/other.lang
    index a764575a79a..c5cebc71bdc 100644
    --- a/htdocs/langs/zh_CN/other.lang
    +++ b/htdocs/langs/zh_CN/other.lang
    @@ -3,37 +3,34 @@ SecurityCode=验证码
     NumberingShort=N°
     Tools=工具
     TMenuTools=工具
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=生日
     BirthdayDate=生日
     DateToBirth=生日
     BirthdayAlertOn=生日提醒活跃
     BirthdayAlertOff=生日提醒无效
    -TransKey=Translation of the key TransKey
    -MonthOfInvoice=Month (number 1-12) of invoice date
    -TextMonthOfInvoice=Month (text) of invoice date
    -PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date
    -TextPreviousMonthOfInvoice=Previous month (text) of invoice date
    -NextMonthOfInvoice=Following month (number 1-12) of invoice date
    -TextNextMonthOfInvoice=Following month (text) of invoice date
    -ZipFileGeneratedInto=Zip file generated into <b>%s</b>.
    -DocFileGeneratedInto=Doc file generated into <b>%s</b>.
    -JumpToLogin=Disconnected. Go to login page...
    -MessageForm=Message on online payment form
    +TransKey=关键TransKey的翻译
    +MonthOfInvoice=发票日期的月份(编号1-12)
    +TextMonthOfInvoice=发票日期的月份(文本)
    +PreviousMonthOfInvoice=发票日期的上个月(编号1-12)
    +TextPreviousMonthOfInvoice=发票日期的上个月(文本)
    +NextMonthOfInvoice=发票日期的下个月(编号1-12)
    +TextNextMonthOfInvoice=发票日期的月份(文本)
    +ZipFileGeneratedInto=Zip文件生成<b> %s </b>。
    +DocFileGeneratedInto=Doc文件生成<b> %s </b>。
    +JumpToLogin=断开。转到登录页面...
    +MessageForm=在线支付表格上的消息
     MessageOK=讯息验证支付返回页面
     MessageKO=取消支付返回页面的讯息
    -ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +ContentOfDirectoryIsNotEmpty=该目录的内容不为空。
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
    -YearOfInvoice=Year of invoice date
    -PreviousYearOfInvoice=Previous year of invoice date
    -NextYearOfInvoice=Following year of invoice date
    -DateNextInvoiceBeforeGen=Date of next invoice (before generation)
    -DateNextInvoiceAfterGen=Date of next invoice (after generation)
    +YearOfInvoice=发票日期年份
    +PreviousYearOfInvoice=上一年的发票日期
    +NextYearOfInvoice=发票日期后一年
    +DateNextInvoiceBeforeGen=下一张发票的日期(发电前)
    +DateNextInvoiceAfterGen=下一张发票的日期(发电后)
     
    -Notify_FICHINTER_ADD_CONTACT=添加联络人到干预
    -Notify_FICHINTER_VALIDATE=干预验证
    -Notify_FICHINTER_SENTBYMAIL=通过邮件发送的干预
     Notify_ORDER_VALIDATE=验证客户订单
     Notify_ORDER_SENTBYMAIL=通过邮件发送的客户订单
     Notify_ORDER_SUPPLIER_SENTBYMAIL=通过邮件发送的供应商的订单
    @@ -41,66 +38,73 @@ Notify_ORDER_SUPPLIER_VALIDATE=供应商订单记录
     Notify_ORDER_SUPPLIER_APPROVE=供应商为了批准
     Notify_ORDER_SUPPLIER_REFUSE=供应商订单被拒绝
     Notify_PROPAL_VALIDATE=验证客户的建议
    -Notify_PROPAL_CLOSE_SIGNED=客户允许关闭已签署
    -Notify_PROPAL_CLOSE_REFUSED=客户允许关闭已拒绝
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=通过邮件发送的商业报价
     Notify_WITHDRAW_TRANSMIT=传输撤军
     Notify_WITHDRAW_CREDIT=信贷撤离
     Notify_WITHDRAW_EMIT=执行撤离
    -Notify_COMPANY_CREATE=合伙人已创建
    -Notify_COMPANY_SENTBYMAIL=从合伙人信息卡发邮件
    +Notify_COMPANY_CREATE=合作方已创建
    +Notify_COMPANY_SENTBYMAIL=从合作方信息卡发邮件
     Notify_BILL_VALIDATE=客户发票已验证
     Notify_BILL_UNVALIDATE=未经验证客户发票
    -Notify_BILL_PAYED=客户发票已支付
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=客户发票已取消
     Notify_BILL_SENTBYMAIL=通过邮件发送的客户发票
     Notify_BILL_SUPPLIER_VALIDATE=供应商发票验证
    -Notify_BILL_SUPPLIER_PAYED=供应商发票已支付
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=通过邮件发送的供应商发票
     Notify_BILL_SUPPLIER_CANCELED=取消供应商发票
     Notify_CONTRACT_VALIDATE=合同验证
     Notify_FICHEINTER_VALIDATE=干预验证
    +Notify_FICHINTER_ADD_CONTACT=添加联络人到干预
    +Notify_FICHINTER_SENTBYMAIL=通过邮件发送的干预
     Notify_SHIPPING_VALIDATE=送货验证
     Notify_SHIPPING_SENTBYMAIL=通过电子邮件发送送货信息资料
     Notify_MEMBER_VALIDATE=会员验证
     Notify_MEMBER_MODIFY=会员变更
     Notify_MEMBER_SUBSCRIPTION=会员订阅
    -Notify_MEMBER_RESILIATE=Member terminated
    +Notify_MEMBER_RESILIATE=会员终止
     Notify_MEMBER_DELETE=会员删除
     Notify_PROJECT_CREATE=项目创建
     Notify_TASK_CREATE=创建任务
     Notify_TASK_MODIFY=任务变更
     Notify_TASK_DELETE=删除任务
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=参见模块设置 %s
     NbOfAttachedFiles=所附文件数/文件
     TotalSizeOfAttachedFiles=所附文件/文档的总大小
     MaxSize=最大尺寸
     AttachANewFile=添加一个新附件
     LinkedObject=链接对象
    -NbOfActiveNotifications=通知数量(收到邮件数量)
    -PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
    -PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
    -DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
    +PredefinedMailTest=__(你好)__\n这是发送到__EMAIL__的测试邮件。\n这两条线由回车分隔。\n\n__USER_SIGNATURE__
    +PredefinedMailTestHtml=__(你好)__\n这是<b>测试</ b>邮件(单词test必须以粗体显示)。<br>这两行用回车符分隔。<br> <br> __USER_SIGNATURE__
    +PredefinedMailContentContract=__(你好)__\n\n\n__(此致)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentThirdparty=__(你好)__\n\n\n__(此致)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentUser=__(你好)__\n\n\n__(此致)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentLink=如果尚未完成,您可以点击下面的链接进行付款。\n\n%s\n\n
    +DemoDesc=Dolibarr是一个支持多个业务模块的紧凑型ERP / CRM。展示所有模块的演示没有任何意义,因为这种情况永远不会发生(几百个可用)。因此,有几个演示配置文件可用。
     ChooseYourDemoProfil=选择最适合您所需的演示配置文件…
    -ChooseYourDemoProfilMore=...or build your own profile<br>(manual module selection)
    +ChooseYourDemoProfilMore=...或建立自己的个人资料<br>(手动模块选择)
     DemoFundation=基础会员管理
     DemoFundation2=管理成员及银行账户的基础
    -DemoCompanyServiceOnly=Company or freelance selling service only
    +DemoCompanyServiceOnly=公司或自由销售服务
     DemoCompanyShopWithCashDesk=管理与现金办公桌店
    -DemoCompanyProductAndStocks=Company selling products with a shop
    -DemoCompanyAll=Company with multiple activities (all main modules)
    +DemoCompanyProductAndStocks=公司与一家商店销售产品
    +DemoCompanyAll=公司有多项活动(所有主要模块)
     CreatedBy=创建者 %s
     ModifiedBy=修改者 %s
     ValidatedBy=由%验证s
    @@ -165,31 +169,32 @@ SizeUnitinch=英寸
     SizeUnitfoot=脚
     SizeUnitpoint=点
     BugTracker=bug跟踪系统
    -SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.<br>Change will become effective once you click on the confirmation link in the email.<br>Check your inbox.
    +SendNewPasswordDesc=此表单允许您请求新密码。它将被发送到您的电子邮件地址。<br>一旦您点击电子邮件中的确认链接,更改将生效。<br>检查您的收件箱。
     BackToLoginPage=返回登陆界面
     AuthenticationDoesNotAllowSendNewPassword=认证模式为<b>%s。</b> <br>在这种模式下,Dolibarr不能知道,也不更改密码。 <br>联系您的系统管理员,如果您想更改您的密码。
     EnableGDLibraryDesc=这个选项安装或启用PHP的GD支持库。
    -ProfIdShortDesc=<b>Prof Id %s</b> 取决于合伙人的国别。 <br>例如,对于<b>%s</b>, 它的代码是<b>%s</b>.。
    +ProfIdShortDesc=<b>Prof Id %s</b> 取决于合作方的国别。 <br>例如,对于<b>%s</b>, 它的代码是<b>%s</b>.。
     DolibarrDemo=Dolibarr的ERP / CRM的演示
    -StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    -NumberOfProposals=Number of proposals
    -NumberOfCustomerOrders=Number of customer orders
    -NumberOfCustomerInvoices=Number of customer invoices
    -NumberOfSupplierProposals=Number of supplier proposals
    -NumberOfSupplierOrders=Number of supplier orders
    -NumberOfSupplierInvoices=Number of supplier invoices
    -NumberOfUnitsProposals=Number of units on proposals
    -NumberOfUnitsCustomerOrders=Number of units on customer orders
    -NumberOfUnitsCustomerInvoices=Number of units on customer invoices
    -NumberOfUnitsSupplierProposals=Number of units on supplier proposals
    -NumberOfUnitsSupplierOrders=Number of units on supplier orders
    -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=你有一个新干预%s任务。
    +StatsByNumberOfUnits=产品/服务数量总和的统计
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
    +NumberOfProposals=提案数量
    +NumberOfCustomerOrders=客户订单数量
    +NumberOfCustomerInvoices=客户发票数量
    +NumberOfSupplierProposals=供应商提案数量
    +NumberOfSupplierOrders=供应商订单数量
    +NumberOfSupplierInvoices=供应商发票数量
    +NumberOfUnitsProposals=提案上的单位数量
    +NumberOfUnitsCustomerOrders=客户订单上的单位数量
    +NumberOfUnitsCustomerInvoices=客户发票上的单位数量
    +NumberOfUnitsSupplierProposals=供应商提案上的单位数量
    +NumberOfUnitsSupplierOrders=供应商订单上的单位数量
    +NumberOfUnitsSupplierInvoices=供应商发票上的单位数量
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=干预%s已被验证。
     EMailTextInvoiceValidated=发票%s已被确认。
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=这项建议%s已经验证。
    -EMailTextProposalClosedSigned=The proposal %s has been closed signed.
    +EMailTextProposalClosedSigned=提案%s已经签署。
     EMailTextOrderValidated=该命令%s已被验证。
     EMailTextOrderApproved=该命令%s已被批准。
     EMailTextOrderValidatedBy=这个订单 %s 由记录人员 %s 进行录入.
    @@ -197,6 +202,10 @@ EMailTextOrderApprovedBy=该命令 %s已被 %s的批准
     EMailTextOrderRefused=该命令%s已被拒绝。
     EMailTextOrderRefusedBy=该命令%s已经拒绝%s的
     EMailTextExpeditionValidated=该送货 %s 已验证。
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=输入数据集
     DolibarrNotification=自动通知
     ResizeDesc=输入新的高度新的宽度<b>或</b> 。比率将维持在调整大小...
    @@ -204,7 +213,7 @@ NewLength=新宽度
     NewHeight=新高度
     NewSizeAfterCropping=新的尺寸裁剪后
     DefineNewAreaToPick=定义图像的新领域挑选(图像左侧单击然后拖动,直到到达对面角落)
    -CurrentInformationOnImage=对当前图像信息
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=图像编辑器
     YouReceiveMailBecauseOfNotification=您收到此消息,因为您的电子邮件已被添加到列表的目标是特定的事件通知到%%的S软件第
     YouReceiveMailBecauseOfNotification2=此事件是:
    @@ -217,9 +226,9 @@ StartUpload=开始上传
     CancelUpload=取消上传
     FileIsTooBig=文件过大
     PleaseBePatient=请耐心等待...
    -NewPassword=New password
    -ResetPassword=Reset password
    -RequestToResetPasswordReceived=A request to change your password has been received.
    +NewPassword=新密码
    +ResetPassword=重设密码
    +RequestToResetPasswordReceived=已收到更改密码的请求。
     NewKeyIs=你的新登陆码如上
     NewKeyWillBe=你的新登陆码将会是
     ClickHereToGoTo=点击这里 %s
    @@ -228,19 +237,23 @@ ForgetIfNothing=如果不想改密码,直接忽略这个邮件,你的密码
     IfAmountHigherThan=如果数额高于 <strong>%s</strong>
     SourcesRepository=源库
     Chart=图表
    -PassEncoding=Password encoding
    -PermissionsAdd=Permissions added
    -PermissionsDelete=Permissions removed
    -YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</strong> chars
    -YourPasswordHasBeenReset=Your password has been reset successfully
    -ApplicantIpAddress=IP address of applicant
    -SMSSentTo=SMS sent to %s
    +PassEncoding=密码编码
    +PermissionsAdd=权限已添加
    +PermissionsDelete=权限已删除
    +YourPasswordMustHaveAtLeastXChars=您的密码必须至少包含<strong> %s </strong>字符
    +YourPasswordHasBeenReset=您的密码已成功重置
    +ApplicantIpAddress=申请人的IP地址
    +SMSSentTo=短信发送到%s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=导出区
     AvailableFormats=可用的格式
     LibraryUsed=使用的资料库
    -LibraryVersion=Library version
    +LibraryVersion=图书馆版
     ExportableDatas=导出的数据
     NoExportableData=没有导出的数据(导出加载的数据,或丢失的权限没有模块)
     ##### External sites #####
    @@ -248,5 +261,7 @@ WebsiteSetup=建立模块化的网页
     WEBSITE_PAGEURL=页面URL地址
     WEBSITE_TITLE=标题
     WEBSITE_DESCRIPTION=描述
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=关键字
    -LinesToImport=Lines to import
    +LinesToImport=要导入的行
    diff --git a/htdocs/langs/zh_CN/paybox.lang b/htdocs/langs/zh_CN/paybox.lang
    index 4b0d021dfdb..212d9da6863 100644
    --- a/htdocs/langs/zh_CN/paybox.lang
    +++ b/htdocs/langs/zh_CN/paybox.lang
    @@ -3,14 +3,14 @@ PayBoxSetup=PayBox模块设置
     PayBoxDesc=该模块提供的网页,以便在付款<a href="http://www.paybox.com" target="_blank">Paybox</a>客户。这可以用来为一个自由付款或就某一Dolibarr对象(发票,订货,付款...)
     FollowingUrlAreAvailableToMakePayments=以下网址可提供给客户的网页上,能够作出Dolibarr支付对象
     PaymentForm=付款方式
    -WelcomeOnPaymentPage=欢迎您来到我们的在线支付服务
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=这个屏幕允许你进行网上支付%s。
     ThisIsInformationOnPayment=这是在做付款信息
     ToComplete=要完成
     YourEMail=付款确认的电子邮件
     Creditor=债权人
     PaymentCode=付款代码
    -PayBoxDoPayment=Pay with Credit or Debit Card (Paybox)
    +PayBoxDoPayment=使用信用卡或借记卡付款(Paybox)
     ToPay=执行付款
     YouWillBeRedirectedOnPayBox=您将被重定向担保Paybox页,输入您的信用卡信息
     Continue=下一个
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=网址提供发票一%s在线支付的用
     ToOfferALinkForOnlinePaymentOnContractLine=网址提供了一个合同线%s在线支付的用户界面
     ToOfferALinkForOnlinePaymentOnFreeAmount=网址提供一个免费的网上支付金额%s用户界面
     ToOfferALinkForOnlinePaymentOnMemberSubscription=网址为会员提供订阅%s在线支付的用户界面
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=You can also add url parameter <b>&tag=<i>value</i></b> to any of those URL (required only for free payment) to add your own payment comment tag.
    -SetupPayBoxToHavePaymentCreatedAutomatically=设置您的<b>%s</b> PayBox与网址有paybox付款时自动创建的验证。
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=本页面确认您的付款已记录。谢谢。
    -YourPaymentHasNotBeenRecorded=您的付款并没有被记录和交易已取消。谢谢。
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=帐户参数
     UsageParameter=使用参数
     InformationToFindParameters=帮助,找到你的%s帐户信息
    diff --git a/htdocs/langs/zh_CN/products.lang b/htdocs/langs/zh_CN/products.lang
    index a29b4170ef1..2d9bf6054ab 100644
    --- a/htdocs/langs/zh_CN/products.lang
    +++ b/htdocs/langs/zh_CN/products.lang
    @@ -17,24 +17,24 @@ Reference=编号
     NewProduct=新建产品
     NewService=新建服务
     ProductVatMassChange=批量 VAT 变更
    -ProductVatMassChangeDesc=此页面可用来修改产品或服务的增值税(VAT)。警告,此操作将影响整个数据库。
    +ProductVatMassChangeDesc=This page can be used to modify a VAT rate defined on products or services from one value to another. Warning, this change is global/done on all database.
     MassBarcodeInit=批量条码初始化
    -MassBarcodeInitDesc=This page can be used to initialize a barcode on objects that does not have barcode defined. Check before that setup of module barcode is complete.
    -ProductAccountancyBuyCode=Accounting code (purchase)
    -ProductAccountancySellCode=Accounting code (sale)
    -ProductAccountancySellIntraCode=Accounting code (sale intra-community)
    -ProductAccountancySellExportCode=Accounting code (sale export)
    +MassBarcodeInitDesc=此页面可用于初始化未定义条形码的对象上的条形码。在模块条形码设置完成之前检查。
    +ProductAccountancyBuyCode=科目代码(采购)
    +ProductAccountancySellCode=科目代码(销售)
    +ProductAccountancySellIntraCode=Accounting code (sale intra-Community)
    +ProductAccountancySellExportCode=科目代码(销售导出)
     ProductOrService=产品或服务
     ProductsAndServices=产品和服务
     ProductsOrServices=产品或服务
    -ProductsPipeServices=Products | Services
    -ProductsOnSaleOnly=Products for sale only
    -ProductsOnPurchaseOnly=Products for purchase only
    -ProductsNotOnSell=Products not for sale and not for purchase
    -ProductsOnSellAndOnBuy=可销售的产品和可采购的产品
    -ServicesOnSaleOnly=Services for sale only
    -ServicesOnPurchaseOnly=Services for purchase only
    -ServicesNotOnSell=Services not for sale and not for purchase
    +ProductsPipeServices=产品|服务
    +ProductsOnSaleOnly=产品(仅出售)
    +ProductsOnPurchaseOnly=产品(仅购买)
    +ProductsNotOnSell=产品(不出售也不采购)
    +ProductsOnSellAndOnBuy=产品(可销售、可采购)
    +ServicesOnSaleOnly=服务(仅销售)
    +ServicesOnPurchaseOnly=服务(仅采购)
    +ServicesNotOnSell=服务(非出售也非采购)
     ServicesOnSellAndOnBuy=可销售的服务与可采购的服务
     LastModifiedProductsAndServices=最近变更的 %s 个产品/服务
     LastRecordedProducts=最近登记的 %s 产品
    @@ -64,19 +64,19 @@ AppliedPricesFrom=价格起始时间
     SellingPrice=售价
     SellingPriceHT=售价(税前)
     SellingPriceTTC=售价(税后)
    -CostPriceDescription=This price (net of tax) can be used to store the average amount this product cost to your company. It may be any price you calculate yourself, for example from the average buying price plus average production and distribution cost.
    -CostPriceUsage=This value could be used for margin calculation.
    +CostPriceDescription=此价格(税后净额)可用于存储此产品为贵公司带来的平均金额。它可能是您自己计算的任何价格,例如平均购买价格加上平均生产和分销成本。
    +CostPriceUsage=该值可用于保证金计算。
     SoldAmount=销售总额
     PurchasedAmount=采购总额
     NewPrice=新增价格
     MinPrice=最低销售价
    -EditSellingPriceLabel=Edit selling price label
    +EditSellingPriceLabel=编辑销售价格标签
     CantBeLessThanMinPrice=售价不能低于此产品的最低价格 (%s 税前)。此消息也可能在您输入折扣巨大时出现
     ContractStatusClosed=已禁用
     ErrorProductAlreadyExists=编号为 %s 的产品已存在。
     ErrorProductBadRefOrLabel=输入的编号或标签无效,请输入符合要求的编号或标签。
     ErrorProductClone=试图同时复制该产品或服务会有一个问题。
    -ErrorPriceCantBeLowerThanMinPrice=Error, price can't be lower than minimum price.
    +ErrorPriceCantBeLowerThanMinPrice=错误,价格不能低于最低价格。
     Suppliers=供应商
     SupplierRef=供应商产品编码
     ShowProduct=显示产品
    @@ -97,8 +97,8 @@ NoteNotVisibleOnBill=备注 (账单、报价...中不可见)
     ServiceLimitedDuration=如果产品是有限期的服务:
     MultiPricesAbility=每部分价格产品/服务(每位客户的一部分)
     MultiPricesNumPrices=价格个数
    -AssociatedProductsAbility=Activate the feature to manage virtual products
    -AssociatedProducts=虚拟产品
    +AssociatedProductsAbility=Activate virtual products (kits)
    +AssociatedProducts=Virtual products
     AssociatedProductsNumber=组成此虚拟产品的产品数量
     ParentProductsNumber=父级包装产品的数量
     ParentProducts=父产品
    @@ -108,7 +108,7 @@ KeywordFilter=关键词筛选
     CategoryFilter=分类筛选
     ProductToAddSearch=搜索要添加的产品
     NoMatchFound=未发现匹配项目
    -ListOfProductsServices=List of products/services
    +ListOfProductsServices=产品/服务清单
     ProductAssociationList=组成此虚拟产品/包装的产品/服务列表
     ProductParentList=由此产品组成的虚拟产品或服务
     ErrorAssociationIsFatherOfThis=所选产品中有当前产品的父级产品
    @@ -124,7 +124,7 @@ ConfirmDeleteProductLine=您确定要删除这行产品吗?
     ProductSpecial=Special
     QtyMin=起订量
     PriceQtyMin=最小数量价格 (w/o 折扣)
    -PriceQtyMinCurrency=Price for this min. qty (w/o discount) (currency)
    +PriceQtyMinCurrency=这分钟的价格。数量(没有折扣)(货币)
     VATRateForSupplierProduct=(产品/供应商)增值税税率
     DiscountQtyMin=默认数量折扣
     NoPriceDefinedForThisSupplier=此供应商/产品未设置价格/数量
    @@ -134,7 +134,7 @@ PredefinedServicesToSell=预定服务到销售
     PredefinedProductsAndServicesToSell=预定产品/服务到销售
     PredefinedProductsToPurchase=预定产品到采购
     PredefinedServicesToPurchase=预定服务到采购
    -PredefinedProductsAndServicesToPurchase=预定产品/服务到采购
    +PredefinedProductsAndServicesToPurchase=Predefined products/services to purchase
     NotPredefinedProducts=没有预定产品/服务
     GenerateThumb=生成 缩略图
     ServiceNb=服务 #%s
    @@ -144,11 +144,11 @@ ListServiceByPopularity=服务列表(按人气)
     Finished=成品
     RowMaterial=原料
     CloneProduct=复制产品或服务
    -ConfirmCloneProduct=Are you sure you want to clone product or service <b>%s</b>?
    -CloneContentProduct=复制产品/服务的所有主要信息
    -ClonePricesProduct=Clone prices
    +ConfirmCloneProduct=您确定要克隆产品或服务<b> %s </b>吗?
    +CloneContentProduct=Clone all main information of product/service
    +ClonePricesProduct=克隆价格
     CloneCompositionProduct=复制已打包包装的产品/服务
    -CloneCombinationsProduct=Clone product variants
    +CloneCombinationsProduct=复制产品变体
     ProductIsUsed=此产品已使用
     NewRefForClone=新产品/服务的编号
     SellingPrices=售价
    @@ -156,14 +156,14 @@ BuyingPrices=买价
     CustomerPrices=客户价格
     SuppliersPrices=供应商价格
     SuppliersPricesOfProductsOrServices=供应商价格(产品或服务)
    -CustomCode=Customs / Commodity / HS code
    +CustomCode=海关/商品/ HS编码
     CountryOrigin=产地国
     Nature=属性
     ShortLabel=标签别名
     Unit=单位
     p=u.
    -set=设置
    -se=设置
    +set=套
    +se=套
     second=秒
     s=s
     hour=小时
    @@ -181,39 +181,39 @@ m2=m²
     m3=m³
     liter=升
     l=L
    -unitP=Piece
    -unitSET=Set
    +unitP=片
    +unitSET=组
     unitS=第二
     unitH=小时
     unitD=天
    -unitKG=Kilogram
    -unitG=Gram
    -unitM=Meter
    -unitLM=Linear meter
    -unitM2=Square meter
    -unitM3=Cubic meter
    -unitL=Liter
    +unitKG=公斤
    +unitG=公克
    +unitM=仪表
    +unitLM=线性仪表
    +unitM2=平方米
    +unitM3=立方米
    +unitL=升
     ProductCodeModel=产品编号模板
     ServiceCodeModel=服务编号模板
     CurrentProductPrice=当前价格
     AlwaysUseNewPrice=始终使用产品/服务的当前价格
     AlwaysUseFixedPrice=使用固定价格
     PriceByQuantity=不同数量价格
    -DisablePriceByQty=Disable prices by quantity
    +DisablePriceByQty=按数量禁用价格
     PriceByQuantityRange=定量范围
     MultipriceRules=市场价格规则
    -UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment
    +UseMultipriceRules=Use price segment rules (defined into product module setup) to auto calculate prices of all other segments according to first segment
     PercentVariationOver=%% 变化 %s
    -PercentDiscountOver=%% discount over %s
    -KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products
    -VariantRefExample=Example: COL
    -VariantLabelExample=Example: Color
    +PercentDiscountOver=%%折扣超过%s
    +KeepEmptyForAutoCalculation=保持空白,以便根据产品的重量或体积自动计算
    +VariantRefExample=示例:COL
    +VariantLabelExample=示例:颜色
     ### composition fabrication
     Build=生产
    -ProductsMultiPrice=Products and prices for each price segment
    +ProductsMultiPrice=每个价格段的产品和价格
     ProductsOrServiceMultiPrice=客户价格(产品或服务,多价格)
     ProductSellByQuarterHT=产品税前季度营业额
    -ServiceSellByQuarterHT=Services turnover quarterly before tax
    +ServiceSellByQuarterHT=服务周转税前季度
     Quarter1=一季度
     Quarter2=二季度
     Quarter3=三季度
    @@ -221,30 +221,30 @@ Quarter4=四季度
     BarCodePrintsheet=条码打印
     PageToGenerateBarCodeSheets=有了这个工具,你就可以在标签纸上打印条码啦。首先选择标签纸的条码格式,输入条码参数值, 最后点击这个按钮 <b>%s</b>。
     NumberOfStickers=要打印的标签数量
    -PrintsheetForOneBarCode=Print several stickers for one barcode
    +PrintsheetForOneBarCode=为一个条形码打印几个贴纸
     BuildPageToPrint=生成打印页面
     FillBarCodeTypeAndValueManually=填入所要打印的条码类型和常规参数值
     FillBarCodeTypeAndValueFromProduct=将产品的条码值填入所要打印的条码类型和参数值
    -FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party.
    -DefinitionOfBarCodeForProductNotComplete=Definition of type or value of bar code not complete for product %s.
    -DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of bar code non complete for third party %s.
    +FillBarCodeTypeAndValueFromThirdParty=填写条形码类型和合作方条形码的值。
    +DefinitionOfBarCodeForProductNotComplete=产品%s的条形码类型或值的定义。
    +DefinitionOfBarCodeForThirdpartyNotComplete=合作方%s的条形码类型或值的定义。
     BarCodeDataForProduct=产品条码信息 %s :
    -BarCodeDataForThirdparty=Barcode information of third party %s :
    -ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values)
    +BarCodeDataForThirdparty=合作方条码信息%s:
    +ResetBarcodeForAllRecords=为所有记录定义条形码值(这也将重置已使用新值定义的条形码值)
     PriceByCustomer=每位客户不同价格
     PriceCatalogue=每产品/服务单独销售价
    -PricingRule=销售价格规则
    +PricingRule=Rules for selling prices
     AddCustomerPrice=为客户添加价格
    -ForceUpdateChildPriceSoc=Set same price on customer subsidiaries
    -PriceByCustomerLog=Log of previous customer prices
    +ForceUpdateChildPriceSoc=在客户子公司设置相同的价格
    +PriceByCustomerLog=记录以前的客户价格
     MinimumPriceLimit=最低价格不允许低于 %s
     MinimumRecommendedPrice=推荐最低价格 : %s
     PriceExpressionEditor=价格表达式编辑器
     PriceExpressionSelected=选择价格表达式
     PriceExpressionEditorHelp1="price = 2 + 2" 或 "2 + 2" 价格设置. 使用 ; 单独的表达式
    -PriceExpressionEditorHelp2=You can access ExtraFields with variables like <b>#extrafield_myextrafieldkey#</b> and global variables with <b>#global_mycode#</b>
    -PriceExpressionEditorHelp3=In both product/service and supplier prices there are these variables available:<br><b>#tva_tx# #localtax1_tx# #localtax2_tx# #weight# #length# #surface# #price_min#</b>
    -PriceExpressionEditorHelp4=In product/service price only: <b>#supplier_min_price#</b><br>In supplier prices only: <b>#supplier_quantity# and #supplier_tva_tx#</b>
    +PriceExpressionEditorHelp2=您可以使用<b> #extrafield_myextrafieldkey#</b>等变量访问ExtraFields,使用<b> #global_mycode#</b>访问全局变量
    +PriceExpressionEditorHelp3=在产品/服务和供应商价格中都有以下变量:<br> <b>#tva_tx ## localtax1_tx ## localtax2_tx ## weight ## length ## surface##price_min#</b>
    +PriceExpressionEditorHelp4=仅限产品/服务价格:<b> #supplier_min_price#</b> <br>仅限供应商价格:<b>#supplier_quantity#和#supplier_tva_tx#</b>
     PriceExpressionEditorHelp5=全局变量值:
     PriceMode=价格模式
     PriceNumeric=数字
    @@ -252,85 +252,88 @@ DefaultPrice=默认价格
     ComposedProductIncDecStock=增加/减少父库存变化
     ComposedProduct=子产品
     MinSupplierPrice=最低购买价格
    -MinCustomerPrice=Minimum selling price
    +MinCustomerPrice=最低售价
     DynamicPriceConfiguration=动态价格配置
    -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value.
    +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update the value automatically.
     AddVariable=添加变量
     AddUpdater=添加更新
     GlobalVariables=全局变量
     VariableToUpdate=变量到更新
     GlobalVariableUpdaters=全局变量更新
    -GlobalVariableUpdaterType0=JSON data
    -GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value,
    -GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"}
    -GlobalVariableUpdaterType1=WebService data
    -GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method
    -GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}}
    +GlobalVariableUpdaterType0=JSON数据
    +GlobalVariableUpdaterHelp0=从指定的URL解析JSON数据,VALUE指定相关值的位置,
    +GlobalVariableUpdaterHelpFormat0=请求格式{“URL”:“http://example.com/urlofjson”,“VALUE”:“array1,array2,targetvalue”}
    +GlobalVariableUpdaterType1=WebService数据
    +GlobalVariableUpdaterHelp1=从指定的URL解析WebService数据,NS指定命名空间,VALUE指定相关值的位置,DATA应包含要发送的数据,METHOD是调用WS方法
    +GlobalVariableUpdaterHelpFormat1=请求格式为{“URL”:“http://example.com/urlofws”,“VALUE”:“array,targetvalue”,“NS”:“http://example.com/urlofns”,“METHOD” :“myWSMethod”,“DATA”:{“your”:“data”,“to”:“send”}}
     UpdateInterval=升级更新间隔(分钟)
    -LastUpdated=Latest update
    +LastUpdated=最新更新
     CorrectlyUpdated=当前更新
     PropalMergePdfProductActualFile=文件添加到 PDF Azur are/is
     PropalMergePdfProductChooseFile=选择PDF文件
     IncludingProductWithTag=包括产品/服务标签
    -DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer
    -WarningSelectOneDocument=Please select at least one document
    +DefaultPriceRealPriceMayDependOnCustomer=默认价格,实际价格可能取决于客户
    +WarningSelectOneDocument=请至少选择一个文档
     DefaultUnitToShow=单位
     NbOfQtyInProposals=报价数
    -ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view...
    -ProductsOrServicesTranslations=Products or services translation
    +ClinkOnALinkOfColumn=单击%s列的链接以获取详细视图...
    +ProductsOrServicesTranslations=产品或服务翻译
     TranslatedLabel=翻译标签
     TranslatedDescription=翻译描述
     TranslatedNote=翻译备注
    -ProductWeight=Weight for 1 product
    -ProductVolume=产品 1 参数值
    +ProductWeight=1个产品的重量
    +ProductVolume=1个产品的体积
     WeightUnits=重量单位
     VolumeUnits=体积单位
     SizeUnits=大小单位
     DeleteProductBuyPrice=删除买价
     ConfirmDeleteProductBuyPrice=您确定想要删除买价吗?
    -SubProduct=Sub product
    -ProductSheet=Product sheet
    -ServiceSheet=Service sheet
    -PossibleValues=Possible values
    -GoOnMenuToCreateVairants=Go on menu %s - %s to prepare attribute variants (like colors, size, ...)
    -
    +SubProduct=子产品
    +ProductSheet=产品表
    +ServiceSheet=服务单
    +PossibleValues=可能的值
    +GoOnMenuToCreateVairants=继续菜单%s  -  %s准备属性变体(如颜色,大小......)
    +UseProductFournDesc=Use supplier descriptions of products in supplier documents
    +ProductSupplierDescription=Supplier description for the product
     #Attributes
    -VariantAttributes=Variant attributes
    -ProductAttributes=Variant attributes for products
    -ProductAttributeName=Variant attribute %s
    -ProductAttribute=Variant attribute
    -ProductAttributeDeleteDialog=Are you sure you want to delete this attribute? All values will be deleted
    -ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" with reference "%s" of this attribute?
    -ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "<strong>%s</strong>"?
    -ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object
    -ProductCombinations=Variants
    -PropagateVariant=Propagate variants
    -HideProductCombinations=Hide products variant in the products selector
    -ProductCombination=Variant
    -NewProductCombination=New variant
    -EditProductCombination=Editing variant
    -NewProductCombinations=New variants
    -EditProductCombinations=Editing variants
    -SelectCombination=Select combination
    -ProductCombinationGenerator=Variants generator
    -Features=Features
    -PriceImpact=Price impact
    -WeightImpact=Weight impact
    +VariantAttributes=变体属性
    +ProductAttributes=产品的变体属性
    +ProductAttributeName=变体属性%s
    +ProductAttribute=变体属性
    +ProductAttributeDeleteDialog=您确定要删除此属性吗?所有值都将被删除
    +ProductAttributeValueDeleteDialog=您确定要删除该属性的引用“%s”的值“%s”吗?
    +ProductCombinationDeleteDialog=您确定要删除产品“<strong> %s </strong>”的变体吗?
    +ProductCombinationAlreadyUsed=删除变体时出错。请检查它是否在任何物体中使用
    +ProductCombinations=变种
    +PropagateVariant=传播变种
    +HideProductCombinations=隐藏产品选择器中的产品变体
    +ProductCombination=变种
    +NewProductCombination=新变种
    +EditProductCombination=编辑变体
    +NewProductCombinations=新变种
    +EditProductCombinations=编辑变体
    +SelectCombination=选择组合
    +ProductCombinationGenerator=变种发电机
    +Features=特征
    +PriceImpact=价格影响
    +WeightImpact=重量影响
     NewProductAttribute=新建属性
    -NewProductAttributeValue=New attribute value
    -ErrorCreatingProductAttributeValue=There was an error while creating the attribute value. It could be because there is already an existing value with that reference
    -ProductCombinationGeneratorWarning=If you continue, before generating new variants, all previous ones will be DELETED. Already existing ones will be updated with the new values
    -TooMuchCombinationsWarning=Generating lots of variants may result in high CPU, memory usage and Dolibarr not able to create them. Enabling the option "%s" may help reduce memory usage.
    -DoNotRemovePreviousCombinations=Do not remove previous variants
    -UsePercentageVariations=Use percentage variations
    -PercentageVariation=Percentage variation
    -ErrorDeletingGeneratedProducts=There was an error while trying to delete existing product variants
    -NbOfDifferentValues=Nb of different values
    -NbProducts=Nb. of products
    -ParentProduct=Parent product
    -HideChildProducts=Hide variant products
    -ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference?
    -CloneDestinationReference=Destination product reference
    -ErrorCopyProductCombinations=There was an error while copying the product variants
    -ErrorDestinationProductNotFound=Destination product not found
    -ErrorProductCombinationNotFound=Product variant not found
    +NewProductAttributeValue=新属性值
    +ErrorCreatingProductAttributeValue=创建属性值时出错。可能是因为该引用已存在现有值
    +ProductCombinationGeneratorWarning=如果继续,在生成新变体之前,所有先前的变体都将被删除。现有的将使用新值更新
    +TooMuchCombinationsWarning=生成大量变体可能会导致高CPU,内存使用率,Dolibarr无法创建它们。启用选项“%s”可能有助于减少内存使用量。
    +DoNotRemovePreviousCombinations=不要删除以前的变种
    +UsePercentageVariations=使用百分比变化
    +PercentageVariation=百分率变化
    +ErrorDeletingGeneratedProducts=尝试删除现有产品变体时出错
    +NbOfDifferentValues=No. of different values
    +NbProducts=No. of products
    +ParentProduct=父产品
    +HideChildProducts=隐藏变体产品
    +ShowChildProducts=Show variant products
    +NoEditVariants=Go to Parent product card and edit variants price impact in the variants tab
    +ConfirmCloneProductCombinations=您是否要将所有产品变体复制到具有给定参考的其他父产品?
    +CloneDestinationReference=目的地产品参考
    +ErrorCopyProductCombinations=复制产品变体时出错
    +ErrorDestinationProductNotFound=找不到目的地产品
    +ErrorProductCombinationNotFound=未找到产品变体
    diff --git a/htdocs/langs/zh_CN/projects.lang b/htdocs/langs/zh_CN/projects.lang
    index eec25ad997f..8b9db6c1f65 100644
    --- a/htdocs/langs/zh_CN/projects.lang
    +++ b/htdocs/langs/zh_CN/projects.lang
    @@ -7,40 +7,40 @@ ProjectsArea=项目区
     ProjectStatus=项目状态
     SharedProject=全体同仁
     PrivateProject=项目联系人
    -ProjectsImContactFor=Projects I'm explicitely a contact of
    -AllAllowedProjects=All project I can read (mine + public)
    +ProjectsImContactFor=项目我明确地是一个联系人
    +AllAllowedProjects=我能阅读的所有项目(我的+公共)
     AllProjects=所有项目
    -MyProjectsDesc=This view is limited to projects you are a contact for
    +MyProjectsDesc=此视图仅限于您作为联系人的项目
     ProjectsPublicDesc=这种观点提出了所有你被允许阅读的项目。
    -TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read.
    +TasksOnProjectsPublicDesc=此视图显示允许您阅读的项目的所有任务。
     ProjectsPublicTaskDesc=这种观点提出的所有项目,您可阅读任务。
     ProjectsDesc=这种观点提出的所有项目(你的用户权限批准你认为一切)。
    -TasksOnProjectsDesc=This view presents all tasks on all projects (your user permissions grant you permission to view everything).
    -MyTasksDesc=This view is limited to projects or tasks you are a contact for
    -OnlyOpenedProject=Only open projects are visible (projects in draft or closed status are not visible).
    +TasksOnProjectsDesc=此视图显示所有项目的所有任务(您的用户权限授予您查看所有项目的权限)。
    +MyTasksDesc=此视图仅限于您作为联系人的项目或任务
    +OnlyOpenedProject=只能看到打开的项目(草稿或关闭状态的项目不可见)。
     ClosedProjectsAreHidden=已关闭的项目是不可见的。
     TasksPublicDesc=这种观点提出的所有项目,您可阅读任务。
     TasksDesc=这种观点提出的所有项目和任务(您的用户权限批准你认为一切)。
    -AllTaskVisibleButEditIfYouAreAssigned=All tasks for qualified projects are visible, but you can enter time only for task assigned to selected user. Assign task if you need to enter time on it.
    -OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it.
    -ImportDatasetTasks=Tasks of projects
    -ProjectCategories=Project tags/categories
    +AllTaskVisibleButEditIfYouAreAssigned=合格项目的所有任务都是可见的,但您只能为分配给所选用户的任务输入时间。如果需要在其上输入时间,请分配任务。
    +OnlyYourTaskAreVisible=只有分配给您的任务才可见。如果任务不可见并且您需要在其上输入时间,则将任务分配给您自己。
    +ImportDatasetTasks=项目任务
    +ProjectCategories=项目标签/类别
     NewProject=新建项目
     AddProject=创建项目
     DeleteAProject=删除一个项目
     DeleteATask=删除任务
    -ConfirmDeleteAProject=Are you sure you want to delete this project?
    -ConfirmDeleteATask=Are you sure you want to delete this task?
    +ConfirmDeleteAProject=您确定要删除此项目吗?
    +ConfirmDeleteATask=您确定要删除此任务吗?
     OpenedProjects=打开项目
     OpenedTasks=打开任务
    -OpportunitiesStatusForOpenedProjects=按有效项目状态机会值
    -OpportunitiesStatusForProjects=按项目状态机会值
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=显示项目
     ShowTask=显示任务
     SetProject=设置项目
     NoProject=没有项目或拥有的定义
    -NbOfProjects=项目数量
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=花费的时间
     TimeSpentByYou=你花费的时间
     TimeSpentByUser=用户花费时间
    @@ -55,7 +55,7 @@ TasksOnOpenedProject=打开项目任务
     WorkloadNotDefined=工作量没有定义
     NewTimeSpent=所花费的时间
     MyTimeSpent=我的时间花
    -BillTime=Bill the time spent
    +BillTime=时间成本
     Tasks=任务
     Task=任务
     TaskDateStart=任务开始日期
    @@ -63,8 +63,8 @@ TaskDateEnd=任务结束日期
     TaskDescription=任务描述
     NewTask=新建任务
     AddTask=创建任务
    -AddTimeSpent=Create time spent
    -AddHereTimeSpentForDay=Add here time spent for this day/task
    +AddTimeSpent=创造时间成本
    +AddHereTimeSpentForDay=为天/任务添加时间成本
     Activity=活动
     Activities=任务/活动
     MyActivities=我的任务/活动
    @@ -75,82 +75,83 @@ ProgressDeclared=进度
     ProgressCalculated=计算进展
     Time=时间
     ListOfTasks=任务列表
    -GoToListOfTimeConsumed=Go to list of time consumed
    +GoToListOfTimeConsumed=转到消耗的时间列表
     GoToListOfTasks=任务列表
    -GoToGanttView=Go to Gantt view
    -GanttView=Gantt View
    -ListProposalsAssociatedProject=项目相关的商业报价列表
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=项目有关的合同列表
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=项目相关的干预措施列表
    -ListExpenseReportsAssociatedProject=项目相关费用报销列表
    -ListDonationsAssociatedProject=项目相关捐款列表
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=项目有关的行动列表
    +GoToGanttView=转到甘特视图
    +GanttView=甘特视图
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=项目相关任务时间列表
    -ListTaskTimeForTask=List of time consumed on task
    -ActivityOnProjectToday=Activity on project today
    -ActivityOnProjectYesterday=Activity on project yesterday
    +ListTaskTimeForTask=任务消耗的时间列表
    +ActivityOnProjectToday=今天的项目活动
    +ActivityOnProjectYesterday=昨天的项目活动
     ActivityOnProjectThisWeek=本周项目活动
     ActivityOnProjectThisMonth=本月项目活动
     ActivityOnProjectThisYear=今年项目活动
     ChildOfProjectTask=子项目/任务
    -ChildOfTask=Child of task
    -TaskHasChild=Task has child
    +ChildOfTask=子项目/任务
    +TaskHasChild=任务有子内容
     NotOwnerOfProject=不是所有者的私人项目
     AffectedTo=分配给
     CantRemoveProject=这个项目不能删除,因为它是由一些(其他对象引用的发票,订单或其他)。见参照资料标签。
     ValidateProject=验证谟
    -ConfirmValidateProject=Are you sure you want to validate this project?
    +ConfirmValidateProject=您确定要验证此项目吗?
     CloseAProject=关闭项目
    -ConfirmCloseAProject=Are you sure you want to close this project?
    -AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it)
    +ConfirmCloseAProject=您确定要关闭此项目吗?
    +AlsoCloseAProject=也关闭项目(如果你仍然需要关注生产任务,请保持打开状态)
     ReOpenAProject=打开的项目
    -ConfirmReOpenAProject=Are you sure you want to re-open this project?
    +ConfirmReOpenAProject=您确定要重新打开此项目吗?
     ProjectContact=项目联系人
    -TaskContact=Task contacts
    +TaskContact=任务联系人
     ActionsOnProject=项目活动
     YouAreNotContactOfProject=你是不是这个私人项目联系
    -UserIsNotContactOfProject=User is not a contact of this private project
    +UserIsNotContactOfProject=用户不是此私人项目的联系人
     DeleteATimeSpent=删除的时间
    -ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent?
    +ConfirmDeleteATimeSpent=你确定要删除这段时间吗?
     DoNotShowMyTasksOnly=查看未分配给我的任务
     ShowMyTasksOnly=查看仅分配给我的任务
    -TaskRessourceLinks=Contacts task
    -ProjectsDedicatedToThisThirdParty=这个项目致力于合伙人
    +TaskRessourceLinks=联系人任务
    +ProjectsDedicatedToThisThirdParty=这个项目致力于合作方
     NoTasks=该项目没有任务
    -LinkedToAnotherCompany=链接到其他合伙人
    -TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
    +LinkedToAnotherCompany=链接到其他合作方
    +TaskIsNotAssignedToUser=任务未分配给用户。使用按钮“<strong> %s </strong>”立即分配任务。
     ErrorTimeSpentIsEmpty=所花费的时间是空的
     ThisWillAlsoRemoveTasks=这一行动也将删除所有项目任务 (<b>%s</b> 任务的时刻) ,花全部的时间都投入。
    -IfNeedToUseOhterObjectKeepEmpty=如果某些对象(发票,订单,...),属于其他合伙人,必须与该项目以创建,保持这个空项目多的合伙人。
    +IfNeedToUseOhterObjectKeepEmpty=如果某些对象(发票,订单,...),属于其他合作方,必须与该项目以创建,保持这个空项目多的合作方。
     CloneProject=复制项目
     CloneTasks=复制任务
     CloneContacts=复制联系人
     CloneNotes=复制备注
     CloneProjectFiles=复制项目嵌入文件中
     CloneTaskFiles=复制任务(s) 嵌入到文件中 (假如任务(s) 已复制的话)
    -CloneMoveDate=Update project/tasks dates from now?
    -ConfirmCloneProject=Are you sure to clone this project?
    -ProjectReportDate=Change task dates according to new project start date
    +CloneMoveDate=从现在起更新项目/任务日期?
    +ConfirmCloneProject=你确定要克隆这个项目吗?
    +ProjectReportDate=根据新项目开始日期更改任务日期
     ErrorShiftTaskDate=根据新项目的开始日期,不可能的改变任务日期
     ProjectsAndTasksLines=项目和任务
     ProjectCreatedInDolibarr=项目 %s  创建
    -ProjectValidatedInDolibarr=Project %s validated
    -ProjectModifiedInDolibarr=Project %s modified
    +ProjectValidatedInDolibarr=项目%s已通过验证
    +ProjectModifiedInDolibarr=项目%s修改
     TaskCreatedInDolibarr=任务 %s 已创建
     TaskModifiedInDolibarr=任务 %s 已变更
     TaskDeletedInDolibarr=任务 %s 已删除
    -OpportunityStatus=机会状态
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=机会概率
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=机会数值
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=机会数值
     OpportunityAmountAverageShort=平均机会值
     OpportunityAmountWeigthedShort=加权机会值
    @@ -167,47 +168,50 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=捐助
     SelectElement=选择元素
     AddElement=链接到元素
     # Documents models
    -DocumentModelBeluga=项目模板链接到对象视图
    -DocumentModelBaleine=任务项目报告模板
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=计划的工作量
     PlannedWorkloadShort=工作量
     ProjectReferers=关联物料
     ProjectMustBeValidatedFirst=项目首先必须认证
    -FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time
    +FirstAddRessourceToAllocateTime=将用户资源分配给任务以分配时间
     InputPerDay=输入天数
     InputPerWeek=输入周数
    -InputDetail=Input detail
    -TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s
    +InputDetail=输入细节
    +TimeAlreadyRecorded=这是此任务/日和用户%s已记录的时间
     ProjectsWithThisUserAsContact=项目的用户作为联系人
     TasksWithThisUserAsContact=任务分配给这个用户
     ResourceNotAssignedToProject=未分配到项目
    -ResourceNotAssignedToTheTask=Not assigned to the task
    -TimeSpentBy=Time spent by
    -TasksAssignedTo=Tasks assigned to
    +ResourceNotAssignedToTheTask=未分配给任务
    +NoUserAssignedToTheProject=No users assigned to this project
    +TimeSpentBy=花费的时间
    +TasksAssignedTo=分配给的任务
     AssignTaskToMe=分配任务给自己
    -AssignTaskToUser=Assign task to %s
    -SelectTaskToAssign=Select task to assign...
    +AssignTaskToUser=将任务分配给%s
    +SelectTaskToAssign=选择要分配的任务...
     AssignTask=分配
     ProjectOverview=概览
    -ManageTasks=用项目跟进任务和工时
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=用项目跟进机会/线索
    -ProjectNbProjectByMonth=按月份筛选创建项目数
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=按月的机会加权数值
    -ProjectOpenedProjectByOppStatus=按机会状态打开项目/线索
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=统计项目/线索
    -TasksStatistics=Statistics on project/lead tasks
    -TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
    -IdTaskTime=Id task time
    -YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
    -OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=机会数值总计
    -OpportunityPonderatedAmount=机会加权数值
    -OpportunityPonderatedAmountDesc=机会加权数值机率
    +TasksStatistics=项目/主要任务的统计数据
    +TaskAssignedToEnterTime=任务已分配。应该可以输入此任务的时间。
    +IdTaskTime=Id任务时间
    +YouCanCompleteRef=如果你想用一些信息来完成参考(将它用作搜索过滤器),建议添加一个 - 字符来分隔它,这样自动编号仍然可以正常用于下一个项目。例如%s-ABC。您可能还希望将搜索键添加到标签中。但最佳做法可能是添加专用字段,也称为补充属性。
    +OpenedProjectsByThirdparties=由第三方开放项目
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=准客户
     OppStatusQUAL=授权
     OppStatusPROPO=报价
    @@ -216,15 +220,17 @@ OppStatusPENDING=待办
     OppStatusWON=赢得
     OppStatusLOST=失去
     Budget=预算
    -AllowToLinkFromOtherCompany=Allow to link project from other company<br><br><u>Supported values :</u><br>- Keep empty: Can link any project of the company (default)<br>- "all" : Can link any projects, even project of other companies<br>- A list of thirdparty id separated with commas : Can link all projects of these thirdparty defined (Example : 123,4795,53)<br>
    -LatestProjects=Latest %s projects
    -LatestModifiedProjects=Latest %s modified projects
    -OtherFilteredTasks=Other filtered tasks
    -NoAssignedTasks=No assigned tasks (assign project/tasks the current user from the top select box to enter time on it)
    +AllowToLinkFromOtherCompany=允许链接其他公司的项目<br> <br> <u>支持的值:</u><br>  - 保持空:可以链接公司的任何项目(默认)<br>  - “all”:可以链接任何项目,甚至其他公司的项目<br>  - 用逗号分隔的合作方ID列表:可以链接这些合作方定义的所有项目(例如:123,4795,53)<br>
    +LatestProjects=最新的%s项目
    +LatestModifiedProjects=最新的%s编辑过的项目
    +OtherFilteredTasks=其他过滤任务
    +NoAssignedTasks=没有分配任务(从顶部选择框分配当前用户的项目/任务以在其上输入时间)
     # Comments trans
    -AllowCommentOnTask=Allow user comments on tasks
    -AllowCommentOnProject=Allow user comments on projects
    -DontHavePermissionForCloseProject=You do not have permissions to close the project %s
    -DontHaveTheValidateStatus=The project %s must be open to be closed
    -RecordsClosed=%s project(s) closed
    -SendProjectRef=Information project %s
    +AllowCommentOnTask=允许用户对任务发表评论
    +AllowCommentOnProject=允许用户对项目发表评论
    +DontHavePermissionForCloseProject=您无权关闭项目%s
    +DontHaveTheValidateStatus=项目%s必须打开才能关闭
    +RecordsClosed=%s项目已结束
    +SendProjectRef=信息项目%s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/zh_CN/propal.lang b/htdocs/langs/zh_CN/propal.lang
    index a662e5d7711..ff4878f066f 100644
    --- a/htdocs/langs/zh_CN/propal.lang
    +++ b/htdocs/langs/zh_CN/propal.lang
    @@ -13,8 +13,8 @@ Prospect=准客户
     DeleteProp=删除报价单
     ValidateProp=确定报价单
     AddProp=创建建议
    -ConfirmDeleteProp=Are you sure you want to delete this commercial proposal?
    -ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name <b>%s</b>?
    +ConfirmDeleteProp=您确定要删除此商业提案吗?
    +ConfirmValidateProp=您确定要以名称<b> %s </b>验证此商业提案吗?
     LastPropals=最近的 %s 份报价
     LastModifiedProposals=最近变更的 %s 份报价
     AllPropals=全部报价单
    @@ -28,12 +28,12 @@ ShowPropal=显示报价
     PropalsDraft=草稿
     PropalsOpened=打开
     PropalStatusDraft=草稿(需要验证)
    -PropalStatusValidated=Validated (proposal is opened)
    +PropalStatusValidated=已验证(提案已打开)
     PropalStatusSigned=已签署(待付款)
     PropalStatusNotSigned=未签署(已关闭)
     PropalStatusBilled=已到账
     PropalStatusDraftShort=草稿
    -PropalStatusValidatedShort=已确认
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=已禁用
     PropalStatusSignedShort=已签署
     PropalStatusNotSignedShort=未签署
    @@ -53,12 +53,12 @@ ErrorPropalNotFound=未发现报价单 %s
     AddToDraftProposals=添加至报价草稿
     NoDraftProposals=没有报价草稿
     CopyPropalFrom=通过复制(并变更)现有报价单创建新报价单
    -CreateEmptyPropal=新建空白报价单
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=默认报价单有效期(按天计算)
    -UseCustomerContactAsPropalRecipientIfExist=报价单中使用客户联系人信息中的地址,不使用客户公司的办公地址是。
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=复制报价单
    -ConfirmClonePropal=Are you sure you want to clone the commercial proposal <b>%s</b>?
    -ConfirmReOpenProp=Are you sure you want to open back the commercial proposal <b>%s</b>?
    +ConfirmClonePropal=您确定要克隆商业提案<b> %s </b>吗?
    +ConfirmReOpenProp=您确定要打开商业提案<b> %s </b>吗?
     ProposalsAndProposalsLines=报价单和报价项目
     ProposalLine=报价项目
     AvailabilityPeriod=交货延迟期
    @@ -75,9 +75,10 @@ AvailabilityTypeAV_1M=1 个月
     TypeContact_propal_internal_SALESREPFOLL=跟进报价的销售代表
     TypeContact_propal_external_BILLING=客户账单联系人
     TypeContact_propal_external_CUSTOMER=跟进报价的客户联系人
    -TypeContact_propal_external_SHIPPING=Customer contact for delivery
    +TypeContact_propal_external_SHIPPING=客户联系以便交付
     # Document models
     DocModelAzurDescription=完整的订单模版 (LOGO标志...)
    +DocModelCyanDescription=完整的订单模版 (LOGO标志...)
     DefaultModelPropalCreate=设置默认模板
     DefaultModelPropalToBill=关闭订单时使用的默认模板(待生成账单)
     DefaultModelPropalClosed=关闭订单时使用的默认模板(待付款)
    diff --git a/htdocs/langs/zh_CN/website.lang b/htdocs/langs/zh_CN/website.lang
    index 6fb270ee4f0..a8039393ecc 100644
    --- a/htdocs/langs/zh_CN/website.lang
    +++ b/htdocs/langs/zh_CN/website.lang
    @@ -1,84 +1,95 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=代码
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=删除网址
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    -WEBSITE_TYPE_CONTAINER=Type of page/container
    -WEBSITE_PAGE_EXAMPLE=Web page to use as example
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
    +WEBSITE_TYPE_CONTAINER=页面/容器的类型
    +WEBSITE_PAGE_EXAMPLE=以网页为例
     WEBSITE_PAGENAME=页面名字/别名
    -WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALT=替代页面名称/别名
    +WEBSITE_ALIASALTDesc=在此处使用其他名称/别名列表,以便也可以使用此其他名称/别名访问该页面(例如,重命名别名后的旧名称以保持旧链接/名称工作的反向链接)。语法是:<br> alternativename1,alternativename2,...
     WEBSITE_CSS_URL=外部CSS文件的URL地址
    -WEBSITE_CSS_INLINE=CSS file content (common to all pages)
    -WEBSITE_JS_INLINE=Javascript file content (common to all pages)
    -WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
    -WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    -HtmlHeaderPage=HTML header (specific to this page only)
    -PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
    -EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
    +WEBSITE_CSS_INLINE=CSS文件内容(所有页面共有)
    +WEBSITE_JS_INLINE=Javascript文件内容(所有页面共有)
    +WEBSITE_HTML_HEADER=在HTML标题的底部添加(对所有页面通用)
    +WEBSITE_ROBOT=机器人文件(robots.txt)
    +WEBSITE_HTACCESS=Website .htaccess file
    +HtmlHeaderPage=HTML标头(仅限此页面)
    +PageNameAliasHelp=页面的名称或别名。<br>当从Web服务器的虚拟主机(如Apacke,Nginx,...)运行网站时,此别名也用于伪造SEO URL。使用“<strong> %s </strong>”按钮编辑此别名。
    +EditTheWebSiteForACommonHeader=注意:如果要为所有页面定义个性化标题,请在站点级别而不是页面/容器上编辑标题。
     MediaFiles=媒体库
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=编辑菜单
    -EditMedias=Edit medias
    -EditPageMeta=编辑 Meta
    -AddWebsite=Add website
    -Webpage=Web page/container
    -AddPage=Add page/container
    -HomePage=Home Page
    -PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    -RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    -PageContent=Page/Contenair
    -PageDeleted=Page/Contenair '%s' of website %s deleted
    -PageAdded=Page/Contenair '%s' added
    +EditMedias=编辑媒体
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
    +AddWebsite=添加网站
    +Webpage=网页/容器
    +AddPage=添加页面/容器
    +HomePage=主页
    +PageContainer=页/容器
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
    +RequestedPageHasNoContentYet=ID为%s的请求页面尚无内容,或者删除了缓存文件.tpl.php。编辑页面内容以解决此问题。
    +SiteDeleted=Web site '%s' deleted
    +PageContent=页/ Contenair
    +PageDeleted=页面/ contenair'%s'的网站%s已删除
    +PageAdded=Page / Contenair'%s'补充道
     ViewSiteInNewTab=在新标签页查看网站
     ViewPageInNewTab=在新标签页查看页面
     SetAsHomePage=设为首页
     RealURL=真实URL地址
     ViewWebsiteInProduction=使用主页URL网址查看网页
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    -CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +CheckVirtualHostPerms=还要检查虚拟主机是否有权限<strong> %s </strong>将文件转换为<br> <strong> %s </strong>
     ReadPerm=阅读
    -WritePerm=Write
    -PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:<br><strong>%s</strong><br>URL served by external server:<br><strong>%s</strong>
    -PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
    -VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
    -NoPageYet=No pages yet
    -SyntaxHelp=Help on specific syntax tips
    -YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    -ClonePage=Clone page/container
    -CloneSite=Clone site
    -SiteAdded=Web site added
    -ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
    -PageIsANewTranslation=The new page is a translation of the current page ?
    -LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
    -ParentPageId=Parent page ID
    -WebsiteId=Website ID
    -CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    -FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    -IDOfPage=Id of page
    -Banner=Banner
    -BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    -AddWebsiteAccount=Create web site account
    -BackToListOfThirdParty=Back to list for Third Party
    -DisableSiteFirst=Disable website first
    -MyContainerTitle=My web site title
    -AnotherContainer=Another container
    -WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
    -WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
    -YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    -OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
    -GrabImagesInto=Grab also images found into css and page.
    -ImagesShouldBeSavedInto=Images should be saved into directory
    -WebsiteRootOfImages=Root directory for website images
    -SubdirOfPage=Sub-directory dedicated to page
    -AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
    -CorporateHomePage=Corporate Home page
    -EmptyPage=Empty page
    +WritePerm=写
    +PreviewSiteServedByWebServer=<u>在新标签页中预览%s。</u> <br> <br> %s将由外部Web服务器(如Apache,Nginx,IIS)提供服务。您必须先安装并设置此服务器才能指向目录:<br> <strong> %s </strong> <br>外部服务器提供的URL:<br> <strong> %s </strong>
    +PreviewSiteServedByDolibarr=<u>在新选项卡中预览%s。</u> <br> <br> %s将由Dolibarr服务器提供服务,因此不需要安装任何额外的Web服务器(如Apache,Nginx,IIS)。 <br>不方便的是,页面的URL不是用户友好的,并且以Dolibarr的路径开头。<br> Dolibarr提供的URL:<br> <strong> %s </strong> <br> <br>使用您自己的外部Web服务器为此Web站点提供服务,在Web服务器上创建指向目录的虚拟主机<br> <strong> %s </strong> <br>然后输入此虚拟服务器的名称并单击其他预览按钮。
    +VirtualHostUrlNotDefined=未定义外部Web服务器所服务的虚拟主机的URL
    +NoPageYet=还没有页面
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
    +SyntaxHelp=有关特定语法提示的帮助
    +YouCanEditHtmlSourceckeditor=您可以使用编辑器中的“源”按钮编辑HTML源代码。
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +ClonePage=克隆页面/容器
    +CloneSite=克隆网站
    +SiteAdded=Website added
    +ConfirmClonePage=请输入新页面的代码/别名,如果它是克隆页面的翻译。
    +PageIsANewTranslation=新页面是当前页面的翻译?
    +LanguageMustNotBeSameThanClonedPage=您将页面克隆为翻译。新页面的语言必须与源页面的语言不同。
    +ParentPageId=父页面ID
    +WebsiteId=网站ID
    +CreateByFetchingExternalPage=通过从外部URL获取页面来创建页面/容器...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
    +FetchAndCreate=获取并创建
    +ExportSite=Export website
    +ImportSite=Import website template
    +IDOfPage=页面ID
    +Banner=旗帜
    +BlogPost=博客文章
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
    +AddWebsiteAccount=创建网站帐户
    +BackToListOfThirdParty=返回合伙人列表
    +DisableSiteFirst=首先停用网站
    +MyContainerTitle=我的网站标题
    +AnotherContainer=另一个容器
    +WEBSITE_USE_WEBSITE_ACCOUNTS=启用网站帐户表
    +WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=启用该表以存储每个网站/合伙人的网站帐户(登录/通过)
    +YouMustDefineTheHomePage=您必须先定义默认主页
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
    +OnlyEditionOfSourceForGrabbedContent=当从外部站点获取内容时,只能使用HTML源代码
    +GrabImagesInto=抓住发现到css和页面的图像。
    +ImagesShouldBeSavedInto=图像应保存到目录中
    +WebsiteRootOfImages=网站图像的根目录
    +SubdirOfPage=专用于页面的子目录
    +AliasPageAlreadyExists=别名页面<strong> %s </strong>已存在
    +CorporateHomePage=企业主页
    +EmptyPage=空页面
    +ExternalURLMustStartWithHttp=外部URL必须以http://或https://开头
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/langs/zh_TW/admin.lang b/htdocs/langs/zh_TW/admin.lang
    index 81b5ae4ba7b..c6716500d44 100644
    --- a/htdocs/langs/zh_TW/admin.lang
    +++ b/htdocs/langs/zh_TW/admin.lang
    @@ -3,20 +3,20 @@ Foundation=基金會
     Version=版本
     Publisher=發佈者
     VersionProgram=版本計劃
    -VersionLastInstall=初始安裝版
    -VersionLastUpgrade=升級最新版本
    +VersionLastInstall=初始安裝版本
    +VersionLastUpgrade=最新版本升級
     VersionExperimental=實驗性
     VersionDevelopment=開發
     VersionUnknown=未知
     VersionRecommanded=推薦的
     FileCheck=檔案完整檢查器
    -FileCheckDesc=此工具可每一筆與官方檔案相互檢查檔案完整性及設定應用程式。也包含了一些設定值。你也可用此工具檢查檔案是否被駭客修改過。
    -FileIntegrityIsStrictlyConformedWithReference=檔案完整性符合參考值。
    -FileIntegrityIsOkButFilesWereAdded=檔案完整性已檢查過,但增加一些檔案。
    +FileCheckDesc=此工具允許您檢查檔案的完整性和應用程序的設置,將每個檔案與官方檔案進行比對。還有一些設置常量的值也會檢查。例如,您可以使用此工具來檢測某些檔案是否被黑客修改過。
    +FileIntegrityIsStrictlyConformedWithReference=檔案完整性嚴格符合參考。
    +FileIntegrityIsOkButFilesWereAdded=檔案完整性檢查已通過,但已添加一些新檔案。
     FileIntegritySomeFilesWereRemovedOrModified=檔案完整性檢查扶敗。有檔案被修改、移除或新增。
    -GlobalChecksum=Global checksum
    -MakeIntegrityAnalysisFrom=製作應用程式檔完整性分析來自
    -LocalSignature=嵌入本地簽名檔 (較不可靠)
    +GlobalChecksum=全域校驗
    +MakeIntegrityAnalysisFrom=製作應用程式檔案完整性分析來自
    +LocalSignature=嵌入式本地簽名(不太可靠)
     RemoteSignature=遠端簽名 (較可靠)
     FilesMissing=遺失檔案
     FilesUpdated=已上傳檔案
    @@ -24,20 +24,20 @@ FilesModified=已修改檔案
     FilesAdded=新增檔案
     FileCheckDolibarr=檢查應用程式檔案完整性
     AvailableOnlyOnPackagedVersions=當安裝來自官方的應用程式時本地檔案完整檢查才可用。
    -XmlNotFound=沒有應用程式 xml 的完整性檔
    +XmlNotFound=未找到應用程式 xml 的完整性檔案
     SessionId=連線階段ID
     SessionSaveHandler=儲存連線階段處理程序
     SessionSavePath=存儲連線階段位置
     PurgeSessions=清除的連線會議
     ConfirmPurgeSessions=您確定要清除所有的連線階段?這會導致離線(除您之外)。
    -NoSessionListWithThisHandler=在您的 PHP 中設定儲存連線階段處理程序中是不允許列出全部執行中的連線。
    +NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow listing all running sessions.
     LockNewSessions=鎖定新的連線
    -ConfirmLockNewSessions=您確定要限制任何新 Dolibarr 連接到自己。之後只有用戶<b>%s</b>能夠連線。
    +ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself? Only user <b>%s</b> will be able to connect after that.
     UnlockNewSessions=移除連線鎖定
     YourSession=您的連線階段
    -Sessions=用戶連線階段
    +Sessions=Users sessions
     WebUserGroup=網頁伺服器的用戶/組
    -NoSessionFound=您的 PHP 似乎不容許列出啟動的連線。用於保存連線<b>(%s)</b>資料夾的可能受到保護(例如,由作業系統的權限,或由 PHP 指令的 open_basedir)。
    +NoSessionFound=Your PHP seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) might be protected (For example, by OS permissions or by PHP directive open_basedir).
     DBStoringCharset=儲存資料的資料庫字集
     DBSortingCharset=資料排序以資料庫字集
     ClientCharset=客戶端字集
    @@ -50,7 +50,7 @@ ExternalUser=外部用戶
     InternalUsers=內部用戶們
     ExternalUsers=外部用戶們
     GUISetup=顯示設定
    -SetupArea=設定區
    +SetupArea=設定
     UploadNewTemplate=上傳新的範例
     FormToTestFileUploadForm=上傳測試檔案(根據設定)
     IfModuleEnabled=註:若模組<b>%s</b>是啓用時,「是的」有效。
    @@ -68,8 +68,8 @@ ErrorCodeCantContainZero=不含 0 值
     DisableJavascript=不啓動 JavaScript and Ajax 功能 (建議盲人或是文字型瀏覽器使用)
     UseSearchToSelectCompanyTooltip=另外您若有大量合作方 (> 100,000), 您可在 "設定 -> 其他" 設定常數 COMPANY_DONOTSEARCH_ANYWHERE 為 1 增加速度。蒐尋則只限在字串的開頭。
     UseSearchToSelectContactTooltip=另外您若有大量合作方 (> 100,000), 您可在 " 設定 -> 其他" 中設定常數 CONTACT_DONOTSEARCH_ANYWHERE 為 1 以增加速度。蒐尋則只限在字串的開頭。
    -DelaiedFullListToSelectCompany=等你在載入合作方組合明細表的內容之前按下一個鍵 (如果你有大量的合作方這可增加效能,不過會減少便利)
    -DelaiedFullListToSelectContact=等你在載入連絡人組合明細表的內容之前按下一個鍵 (如果你有大量的連絡人這可增加效能,不過會減少便利)
    +DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
    +DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
     NumberOfKeyToSearch=需要 %s 個字元進行搜尋
     NotAvailableWhenAjaxDisabled=當 Ajax 不啓動時,此不可用。
     AllowToSelectProjectFromOtherCompany=在合作方的文件上,可選擇已結專案到另外合作方。
    @@ -80,7 +80,7 @@ PreviewNotAvailable=無法預覽
     ThemeCurrentlyActive=目前可用的主題
     CurrentTimeZone=PHP (服務器) 的時區
     MySQLTimeZone=MySql (資料庫) 的時區
    -TZHasNoEffect=資料庫伺服器內已儲存及返回值的日期,就像他保存為傳送的字串一樣。當使用 UNIX_TIMESTAMP 功能(此不是由 Dolibarr 使用,所以資料庫時區是無效的,就算是已輸入資料已變更也是)時,時區是有效的。
    +TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submitted string. The timezone has effect only when using the UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered).
     Space=空間
     Table=表格
     Fields=欄位
    @@ -94,7 +94,7 @@ NextValueForReplacements=下一個值(代替)
     MustBeLowerThanPHPLimit=註:你的 PHP 限制每個上傳檔案的大小為<b>%s%s</b>,因此不用此參數的值
     NoMaxSizeByPHPLimit=註:你的 PHP 偏好設定為無限制
     MaxSizeForUploadedFiles=上傳檔案最大值(0 為禁止上傳)
    -UseCaptchaCode=在登錄頁中的使用圖形碼 (CAPTCHA)
    +UseCaptchaCode=在登入頁中的使用圖形碼 (CAPTCHA)
     AntiVirusCommand= 防毒命令的完整路徑
     AntiVirusCommandExample= 例如 ClamWin 為 c:\\Progra~1\\ClamWin\\bin\\clamscan.exe<br>例如 ClamAv 為 /usr/bin/clamscan
     AntiVirusParam= 在命令列中更多的參數
    @@ -118,7 +118,7 @@ Destination=目地的
     IdModule=模組 ID
     IdPermissions=存取 ID
     LanguageBrowserParameter=%s的參數
    -LocalisationDolibarrParameters=本地化參數
    +LocalisationDolibarrParameters=本地參數
     ClientTZ=客戶時區(用戶)
     ClientHour=客戶時間(用戶)
     OSTZ=伺服器作業系統時區
    @@ -126,8 +126,8 @@ PHPTZ=PHP伺服器時區
     DaylingSavingTime=夏令時間
     CurrentHour=PHP (伺服器)時間
     CurrentSessionTimeOut=目前連線階段的時間已到
    -YouCanEditPHPTZ=設定不同 PHP 時區 (非必要), 您可試著在 .htacces 檔案中增一行字串如 "SetEnv TZ Europe/Paris" 。
    -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server.
    +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a .htaccess file with a line like this "SetEnv TZ Europe/Paris"
    +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but of the timezone of the server.
     Box=小工具
     Boxes=各式小工具
     MaxNbOfLinesForBoxes=各式小工具最大行數
    @@ -191,15 +191,15 @@ IgnoreDuplicateRecords=忽略重覆資料的錯誤訊息 (INSERT IGNORE)
     AutoDetectLang=自動檢測(瀏覽器的語言)
     FeatureDisabledInDemo=在展示中禁用功能
     FeatureAvailableOnlyOnStable=在官方穩定版本中可用的功能
    -BoxesDesc=小工具是顯示您自行增加個人化的資料。您可選擇顯示小工具或由選定目標頁點選啟動或禁用。
    +BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the trashcan to disable it.
     OnlyActiveElementsAreShown=僅從<a href="%s">啟用模組</a>後元件才會顯示。
    -ModulesDesc=Dolibarr 程式/功能的模組可在軟體內啟用。某些程式/模組您必須允許用戶權限,之後再啟動。點選按鈕 on/off 啟用模組/程式。
    +ModulesDesc=The modules/applications determine which features are available in the software. Some modules require permissions to be granted to users after activating the module. Click the on/off button (at end of module line) to enable/disable a module/application.
     ModulesMarketPlaceDesc=您可在外部網頁中找到更多可下載的模組...
    -ModulesDeployDesc=若檔案系統的權限允許,則可以使用此工具來部署外部模組。 該模組將在選項卡上顯示<strong>%s</strong>。
    +ModulesDeployDesc=If permissions on your file system allow it, you can use this tool to deploy an external module. The module will then be visible on the tab <strong>%s</strong>.
     ModulesMarketPlaces=找外部 app / 模組
     ModulesDevelopYourModule=發展您自己的應用程式及模組
    -ModulesDevelopDesc=您可以發展或找到夥伴一起發展您的個人化模組
    -DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will make the seach on the external market place for you (may be slow, need an internet access)...
    +ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
    +DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
     NewModule=新
     FreeModule=Free
     CompatibleUpTo=與版本%s相容
    @@ -211,8 +211,8 @@ Nouveauté=新奇
     AchatTelechargement=購買 / 下載
     GoModuleSetupArea=要部署/安裝新模組,請轉到模組設定區域<a href="%s">%s</a>。
     DoliStoreDesc=DoliStore 是 Dolibarr ERP / CRM 外部模組的官方市集
    -DoliPartnersDesc=各家公司提供客制發展模組功能的明細表(注意:任何有經驗的PHP程式編輯人員可提供客制化發展的開放原始碼專案)
    -WebSiteDesc=參考網頁找到更多模組...
    +DoliPartnersDesc=List of companies providing custom-developed modules or features.<br>Note: since Dolibarr is an open source application, <i>anyone</i> experienced in PHP programming may develop a module.
    +WebSiteDesc=External websites for more add-on (non-core) modules...
     DevelopYourModuleDesc=某些解決方式要您自行發展模組...
     URL=連線
     BoxesAvailable=可用小工具
    @@ -229,7 +229,7 @@ DoNotStoreClearPassword=在資料庫中不要存明碼,要存成加密(建議
     MainDbPasswordFileConfEncrypted=在 conf.php 中資料庫密碼加密(建議啟動)
     InstrucToEncodePass=為使已編碼好的密碼放到<b>conf.php</b>檔案中,應採用<br><b>$dolibarr_main_db_pass="crypted:%s";</b>此行代替<br><b>$dolibarr_main_db_pass="...";</b><br>
     InstrucToClearPass=為使密碼(明碼)放到 <b> conf.php </b> 檔案中,應採用<br><b>$dolibarr_main_db_pass="%s";</b>此行代替 <br><b> $dolibarr_main_db_pass="crypted:...";</b><br>
    -ProtectAndEncryptPdfFiles=產生 pdf 檔案的保護(不建議啟動,會中斷大量 pdf 的產生)
    +ProtectAndEncryptPdfFiles=Protection of generated PDF files NOT recommended (breaks mass PDF generation)
     ProtectAndEncryptPdfFilesDesc=保留可由 pdf 流灠器閱讀及列印的 pdf 文件保護。因此不能編輯及複製。注意使用此功能會使合併 pdf 無法使用。
     Feature=功能特色
     DolibarrLicense=授權
    @@ -246,8 +246,8 @@ ExternalResources=外部資源
     SocialNetworks=社會網路
     ForDocumentationSeeWiki=有關用戶或開發人員的文件(文件,常見問題...), <br>可在Dolibarr維基查閱: <br> <a href="%s" target="_blank"><b>%s的</b></a>
     ForAnswersSeeForum=有關任何其他問題/幫助,您可以使用Dolibarr論壇: <br> <a href="%s" target="_blank"><b>%s的</b></a>
    -HelpCenterDesc1=此區可以幫助你取得 Dolibarr 的幫忙支援服務。
    -HelpCenterDesc2=某些服務<b>僅可使用英文</b> 。
    +HelpCenterDesc1=Here are some resources for getting help and support with Dolibarr.
    +HelpCenterDesc2=Some of these resources are only available in <b>english</b>.
     CurrentMenuHandler=目前選單處理者
     MeasuringUnit=衡量單位
     LeftMargin=左邊邊界
    @@ -262,31 +262,35 @@ NoticePeriod=通知期
     NewByMonth=新的一個月
     Emails=各式電子郵件
     EMailsSetup=電子郵件設定
    -EMailsDesc=此頁允許您複寫您電子郵件傳送的 php 參數。在 Unix/Linux 系統中多數案例,您 php 設定正確及參數是無效的。
    +EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
     EmailSenderProfiles=電子郵件傳送者簡歷
    -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS 連接埠 ( 在 php.ini 中預設值:<b>%s</b>)
    -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS 主機 ( 在 php.ini 中是預設的:<b>%s</b>)
    -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS 連接埠 ( 在 Unix like 系統內,沒有定義在 PHP中)
    -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS 主機 ( 在 Unix like 系統內,沒有定義在 PHP 中)
    -MAIN_MAIL_EMAIL_FROM=自動化電子郵件的寄件者(在 php.ini中預設值:<b>%s</b>)
    -MAIN_MAIL_ERRORS_TO=發生錯誤時退回的電子郵件(發送的電子郵件中的欄位“錯誤 - 收件人”)
    -MAIN_MAIL_AUTOCOPY_TO= 系統私下寄送所有發送的電子郵件副件給
    -MAIN_DISABLE_ALL_MAILS=禁用傳送所有電子郵件(適用於測試目的或是展示)
    +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix-like systems)
    +MAIN_MAIL_EMAIL_FROM=Sender email for automatic emails (default value in php.ini: <b>%s</b>)
    +MAIN_MAIL_ERRORS_TO=Email used for error returns emails (fields 'Errors-To' in emails sent)
    +MAIN_MAIL_AUTOCOPY_TO= Copy (Bcc) all sent emails to
    +MAIN_DISABLE_ALL_MAILS=Disable all email sending (for test purposes or demos)
     MAIN_MAIL_FORCE_SENDTO=傳送全部電子郵件到(此為測試用,不是真正的收件人)
    -MAIN_MAIL_ENABLED_USER_DEST_SELECT=使用電子郵件將員工用戶增加到允許的目標清單表中
    -MAIN_MAIL_SENDMODE=傳送電子郵件方法
    -MAIN_MAIL_SMTPS_ID=SMTP 帳號(如果需要驗證)
    -MAIN_MAIL_SMTPS_PW=SMTP 密碼(如果需要驗證)
    -MAIN_MAIL_EMAIL_TLS= 使用 TLS (SSL) 的加密
    -MAIN_MAIL_EMAIL_STARTTLS= 使用 TLS (STARTTLS) 加密
    -MAIN_DISABLE_ALL_SMS=禁用傳送所有簡訊/SMS(適用於測試目的或展示)
    +MAIN_MAIL_ENABLED_USER_DEST_SELECT=Add employee users with email into allowed recipient list
    +MAIN_MAIL_SENDMODE=Email sending method
    +MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
    +MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
    +MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
    +MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
    +MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
    +MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
    +MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
    +MAIN_MAIL_EMAIL_DKIM_PRIVATE_KEY=Private key for dkim signing
    +MAIN_DISABLE_ALL_SMS=Disable all SMS sending (for test purposes or demos)
     MAIN_SMS_SENDMODE=使用傳送簡訊/SMS的方法
    -MAIN_MAIL_SMS_FROM=傳送簡訊/SMS的傳送者預設電話號碼
    -MAIN_MAIL_DEFAULT_FROMTYPE=人工傳送時預設的寄件者電子郵件(用戶電子郵件或公司電子郵件)
    +MAIN_MAIL_SMS_FROM=Default sender phone number for SMS sending
    +MAIN_MAIL_DEFAULT_FROMTYPE=非系統產生寄送時預設的寄件者(用戶電子郵件或公司電子郵件)
     UserEmail=用戶電子郵件
     CompanyEmail=公司電子郵件
     FeatureNotAvailableOnLinux=在Unix系列系統中不能使用功能。在本地測試您的寄送郵件程式。
    -SubmitTranslation=若未完整地翻譯您的語言或您找到錯誤,您可透過編輯檔案放到<b>langs/%s</b>的資料夾中修正他們,或是傳送您做的異動到 www.transifex.com/dolibarr-association/dolibarr/
    +SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files in directory <b>langs/%s</b> and submit your change to www.transifex.com/dolibarr-association/dolibarr/
     SubmitTranslationENUS=若您的語言翻譯尚未完成,或是您到錯誤,您可以透過編輯在資料夾 <b>langs/%s</b>中的檔案修正它,並把修改後檔案傳送到 dolibarr.org/forum 或是給在  github.com/Dolibarr/dolibarr 開發者。
     ModuleSetup=模組設定
     ModulesSetup=模組/程式設定
    @@ -295,13 +299,13 @@ ModuleFamilyCrm=客戶關係管理(CRM)
     ModuleFamilySrm=供應商關係管理(VRM)
     ModuleFamilyProducts=產品管理 (PM)
     ModuleFamilyHr=人力資源管理 (HR)
    -ModuleFamilyProjects=專案 / 協同作業
    +ModuleFamilyProjects=各專案 / 協同作業
     ModuleFamilyOther=其他
     ModuleFamilyTechnic=多種模組工具
     ModuleFamilyExperimental=實驗性模組
     ModuleFamilyFinancial=財務模組(會計/財務)
     ModuleFamilyECM=數位內容管理 (ECM)
    -ModuleFamilyPortal=網站及其他應用程式
    +ModuleFamilyPortal=Websites and other frontal application
     ModuleFamilyInterface=外部系統的介面
     MenuHandlers=選單處理程序
     MenuAdmin=選單編輯器
    @@ -309,15 +313,15 @@ DoNotUseInProduction=請勿在實際工作環境使用
     ThisIsProcessToFollow=此處理步驟:
     ThisIsAlternativeProcessToFollow=代替的人工設定程序:
     StepNb=步驟 %s 
    -FindPackageFromWebSite=尋找您想要功能的套件(在官網 %s 上有範例)。
    +FindPackageFromWebSite=Find a package that provides features you want (for example on official web site %s).
     DownloadPackageFromWebSite=下載套件(在官網%s上有範例)。
    -UnpackPackageInDolibarrRoot=解壓縮的套件檔案到伺服器下的 dolibarr 資料夾:<b>%s</b>
    -UnpackPackageInModulesRoot=要部署/安裝外部模組,請將打包的檔案解壓縮到專用於模組的服務器資料夾中:<b>%s</b>
    -SetupIsReadyForUse=模組的發展已完成。您必須透過模組設定頁面啟用及在您的程式中設定模組:<a href="%s">%s</a>
    +UnpackPackageInDolibarrRoot=Unpack/unzip the packaged files into the server directory dedicated to Dolibarr: <b>%s</b>
    +UnpackPackageInModulesRoot=To deploy/install an external module, unpack/unzip the packaged files into the server directory dedicated to external modules:<br><b>%s</b>
    +SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going to the page setup modules: <a href="%s">%s</a>.
     NotExistsDirect=替代根資料夾的資訊沒有定義到已存在的資料夾中。<br>
     InfDirAlt=從第3版起,可定義替代根資料夾。此允許您儲存到指定資料夾、插件及客製化範本。<br>只要在 dolibarr 的根資料夾內建立資料夾(例如: 客戶)。<br>
     InfDirExample=<br>在 <strong>conf.php</strong> 檔案宣告 <br>$dolibarr_main_url_root_alt='/custom'<br>$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'<br>若這幾行已用"#"方式註解了,啟用他,也就是移除 "#"。
    -YouCanSubmitFile=此步驟,您可傳送模組套件的 .zip 檔案到此:
    +YouCanSubmitFile=Alternatively, you may upload the module .zip file package:
     CurrentVersion=Dolibarr 目前版本
     CallUpdatePage=到此頁昇級資料庫架構及資料:%s。
     LastStableVersion=最新穩定版本
    @@ -345,17 +349,17 @@ UMask=在 Unix/Linux/BSD/Mac 的檔案系統中新檔案的 UMask 參數。
     UMaskExplanation=此參數允許您定義在伺服器上由 Dolibarr 建立的檔案的權限(例如在上載檔案時)。 <br>這是八進位(例如,0666 為全部人可讀寫)。<br>此參數無法在 Windows 伺服器上使用。
     SeeWikiForAllTeam=在 wiki 頁面中查看所有角色及其組織的完整清單明細
     UseACacheDelay= 以秒為單位的遞延匯出反應的時間(0或空格為沒有緩衝)
    -DisableLinkToHelpCenter=登錄頁面上隱藏連線“ <b>需要幫助或支援</b>"
    +DisableLinkToHelpCenter=登入頁面上隱藏連線“ <b>需要幫助或支援</b>"
     DisableLinkToHelp=隱藏連線到線上幫助 "<b>%s</b>"
    -AddCRIfTooLong=沒有自動換行功能,若一行太長,請自行按下 Enter 鍵換行。
    -ConfirmPurge=您確認要執行刪除嗎?<br>此會刪您所有資料,且無法還復(含 ECM 檔案及各式夾檔)。
    +AddCRIfTooLong=There is no automatic text wrapping, text that is too long will not display on documents. Please add carriage returns in the text area if needed.
    +ConfirmPurge=Are you sure you want to execute this purge?<br>This will permanently delete all your data files with no way to restore them (ECM files, attached files...).
     MinLength=最小長度
     LanguageFilesCachedIntoShmopSharedMemory=.lang 檔案載入分享記憶體中
     LanguageFile=語系檔
    -ExamplesWithCurrentSetup=現在執行範例設定
    +ExamplesWithCurrentSetup=Examples with current configuration
     ListOfDirectories=OpenDocument 範本資料夾下的清單明細
     ListOfDirectoriesForModelGenODT=包含 OpenDocument 格式範本的資料夾清單明細。<br><br>資料夾完整路徑放在這裡。<br>每一資料夾之間要用 enter 鍵。<br>為增加 GED 模組的資料夾,請放在<b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>。<br><br>在這些資料夾的檔案結尾必須是 <b>.odt</b> 或 <b>.ods</b>。
    -NumberOfModelFilesFound=在這些資料夾中找到 ODT/ODS 範本檔數量
    +NumberOfModelFilesFound=Number of ODT/ODS template files found in these directories
     ExampleOfDirectoriesForModelGen=語法範例:<br> ç:\\mydir<br>/home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
     FollowingSubstitutionKeysCanBeUsed=<br>要知道如何建立您的ODT文件範本,並儲存在這些資料夾,請上 wiki 網站:
     FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
    @@ -365,19 +369,19 @@ KeyForWebServicesAccess=輸入使用 Web 服務(在 WebServices 的參數是
     TestSubmitForm=輸入測試表單
     ThisForceAlsoTheme=無論用戶的選擇為何,使用此選單管理器也將使用其本身的主題。此選單管理器是專適用於智慧手機,但並不適用於全部的智慧手機。若您遇到問題,請使用另一個選單管理器。
     ThemeDir=skins資料夾
    -ConnectionTimeout=連線超時
    +ConnectionTimeout=Connection timeout
     ResponseTimeout=回應超時
     SmsTestMessage=測試訊息從 __PHONEFROM__ 到 __PHONETO__
     ModuleMustBeEnabledFirst=若您需要此功能,您首先要啟用模組<b>%s</b>。
     SecurityToken=安全的網址的值
    -NoSmsEngine=沒有簡訊/SMS傳送器可用。簡訊/SMS傳送器預設沒有安裝(因為需要外部供應商),但你可在 %s 找到。
    +NoSmsEngine=No SMS sender manager available. A SMS sender manager is not installed with the default distribution because they depend on an external supplier, but you can find some on %s
     PDF=PDF格式
    -PDFDesc=您可以設定每個全域選項關連到 PDF產生器
    +PDFDesc=You can set each global option related to the PDF generation
     PDFAddressForging=產生地址規則
     HideAnyVATInformationOnPDF=在產生的 PDF 中隱藏銷售稅 / 營業稅的全部資訊
     PDFRulesForSalesTax=銷售稅 / 營業稅的規則
     PDFLocaltax=%s的規則
    -HideLocalTaxOnPDF=將 %s 稅率隱藏到 pdf 列銷售稅中
    +HideLocalTaxOnPDF=Hide %s rate in pdf column tax sale
     HideDescOnPDF=在產生的 PDF 上隱藏產品描述
     HideRefOnPDF=在產生的 PDF 上隱藏產品參考號
     HideDetailsOnPDF=在產生的 PDF 上產品線詳細資訊
    @@ -387,7 +391,7 @@ UrlGenerationParameters=將網址安全化的參數
     SecurityTokenIsUnique=每個URL使用獨特的安全/securekey參數
     EnterRefToBuildUrl=輸入對象%s的參考值
     GetSecuredUrl=取得計算後網址
    -ButtonHideUnauthorized=當非管理權限的用戶在非授權行動時改成隱藏按鈕,而非灰色禁用鈕。
    +ButtonHideUnauthorized=Hide buttons for non-admin users for unauthorized actions instead of showing greyed disabled buttons
     OldVATRates=舊營業稅率
     NewVATRates=新營業稅率
     PriceBaseTypeToChange=根據已定義的基礎參考價參修改價格
    @@ -408,13 +412,13 @@ ExtrafieldSelect = 選擇清單明細
     ExtrafieldSelectList = 從表格選取
     ExtrafieldSeparator=分隔 (非欄位)
     ExtrafieldPassword=密碼
    -ExtrafieldRadio=雷達鈕 (限選擇性質)
    +ExtrafieldRadio=Radio buttons (one choice only)
     ExtrafieldCheckBox=勾選方框
     ExtrafieldCheckBoxFromList=從表格來的確認框
     ExtrafieldLink=連線到物件
     ComputedFormula=計算欄位
     ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: <strong>$db, $conf, $langs, $mysoc, $user, $object</strong>.<br><strong>WARNING</strong>: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.<br>Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.<br><br>Example of formula:<br>$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)<br><br>Example to reload object<br>(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'<br><br>Other example of formula to force load of object and its parent object:<br>(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found'
    -ExtrafieldParamHelpPassword=不要加密儲存,此欄位保持空白(在螢幕中欄位有星星的必須隱藏)。<br>此處值設定為'自動'則使用預設的加密規則儲存密碼到資料庫(沒有辦法讀取原始值)
    +ExtrafieldParamHelpPassword=Leaving this field blank means this value will be stored without encryption (field must be only hidden with star on screen).<br>Set  'auto' to use the default encryption rule to save password into database (then value read will be the hash only, no way to retrieve original value)
     ExtrafieldParamHelpselect=此行的清單明細值,其格式為關鍵字,值(關鍵字不為'0')<br><br>例如:<br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>為使清單明細可依賴於其他補充屬性清單明細:<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key<br><br>為使清單明細可依賴於另一清單明細:<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
     ExtrafieldParamHelpcheckbox=此行的清單明細值,其格式為關鍵字,值 (關鍵字不能為 '0')<br><br>例如:<br>1,value1<br>2,value2<br>3,value3<br>...
     ExtrafieldParamHelpradio=此行的清單明細值,其格式為關鍵字,值 (關鍵字不能為 '0')<br><br>例如:<br>1,value1<br>2,value2<br>3,value3<br>...
    @@ -432,39 +436,39 @@ DefaultLink=預設連線
     SetAsDefault=設定成預設值
     ValueOverwrittenByUserSetup=警告,用戶指定設定會覆蓋該值(每位用戶可設定自己的 URL )
     ExternalModule=外部模組 - 已安裝到資料夾 %s
    -BarcodeInitForThirdparties=合作方的大量條碼初始值
    +BarcodeInitForthird-parties=Mass barcode init for third-parties
     BarcodeInitForProductsOrServices=大量條碼初始值或是重新設產品或服務
     CurrentlyNWithoutBarCode=目前您在沒有條碼的<strong>%s</strong>%s中有<strong>%s</strong>的記錄。
     InitEmptyBarCode=下一筆%s記錄初始值
     EraseAllCurrentBarCode=刪除目前全部的條碼現有值
     ConfirmEraseAllCurrentBarCode=您確定您要刪除目前全部的條碼現有值?
     AllBarcodeReset=全部的條碼值已刪除
    -NoBarcodeNumberingTemplateDefined=沒有啟用條碼模組設定的編號條碼範本
    +NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled in the barcode module setup.
     EnableFileCache=啟用檔案快取
     ShowDetailsInPDFPageFoot=增加更多詳細資料到 PDF 檔案的頁腳,像您公司地址,或是管理者名稱 (要完成專業證號、公司資本額及VAT字號)。
     NoDetails=頁腳沒有更多的詳細資料
     DisplayCompanyInfo=顯示公司地址
     DisplayCompanyManagers=顯示管理者名稱
     DisplayCompanyInfoAndManagers=顯示公司地址及管理者名稱
    -EnableAndSetupModuleCron=若您要自動地產生循環發票,模組"%s"必須啟用且正確設定。然而各式發票的產生必須從此範例的 "建立" 鈕以人工完成。注意即使你啟用自動產生,你仍可安全地以人工方式執行而產生。在相同時間內不能重覆產生發票。
    -ModuleCompanyCodeCustomerAquarium=%s後面是合作方客戶代碼,用於客戶會計代碼
    -ModuleCompanyCodeSupplierAquarium=%s後面是合作方供應商代碼,用於供應商會計代碼
    +EnableAndSetupModuleCron=If you want to have this recurring invoice generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template using the *Create* button. Note that even if you enabled automatic generation, you can still safely launch manual generation. Generation of duplicates for the same period is not possible.
    +ModuleCompanyCodeCustomerAquarium=%s followed by customer code for a customer accounting code
    +ModuleCompanyCodeSupplierAquarium=%s followed by supplier code for a supplier accounting code
     ModuleCompanyCodePanicum=回傳空白會計代碼。
     ModuleCompanyCodeDigitaria=會計代碼依著合作方代碼。代碼是由第一個字母 "C" 接下來是合作方代碼的前面5 個字母組成的。
     Use3StepsApproval=存預設情況下,採購訂單需要由 2 個不同的用戶建立和核准 (一個步驟/用戶建立,另一個步驟/用戶核准。請注意,若用戶同時具有建立和批准的權限,則一個步驟/用戶就足夠了) 。 若金額高於指定值時,您可以通過此選項進行要求以引入第三步/用戶核准 (因此需要3個步驟:1 =驗證,2 =首次批准,3 =若金額足夠,則為第二次批准) 。 <br>若一次核准 ( 2個步驟) 就足夠,則將不做任何設定,若總是需要第二次批准 (3個步驟),則將其設置為非常低的值 (0.1)。
     UseDoubleApproval=當金額(未稅)大於...時使用3步驟核准
    -WarningPHPMail=警告:通常設定寄出的電子郵件為您提供的電子郵件伺服器以代替預設值是比較好的。某些電子郵件提供者(像 Yahoo)不允許您傳送電子郵件從另一個伺服器到他們自己的伺服器。您正確的設定要使用應用軟體的伺服器傳送電子郵件而不是您的電子郵件提供者,所以某些收件者(與限制性DMARC協議兼容的一種)會詢問您的電子郵件提供者,若他們可接受您的電子郵件及某些電子郵件提供者(像 Yahoo)可能回應"no",因為伺服器不是他們的伺服器,所以少數您寄的電子郵件可能不被接受(也還要小心你的電子郵件提供者發送大小限制)。<br>若您的電子郵件提供者(像 Yahoo)有限制,您必須變更您電子郵件設定為選用其他方法 "SMTP 伺服器" 及輸入 SMTP 伺服器及由您電子郵件提供者提供的認證(詢問您的電子郵件提供者為您的電子郵件帳戶取得 SMTP 認證)。
    +WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not their, so few of your sent Emails may not be accepted (be careful also of your email provider's sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your Email provider to get SMTP credentials for your account).
     WarningPHPMail2=若您的電子郵件 SMTP 供應商需要將電子郵件客戶端限制為某些 IP 地址(非常罕見),則您的ERP CRM 應用程序的 IP 地址:<strong>%s</strong>
    -ClickToShowDescription=點一下顯示描述
    -DependsOn=此模組需要其他各式模組
    +ClickToShowDescription=點選顯示描述
    +DependsOn=This module needs the module(s)
     RequiredBy=模組需要此模組
    -TheKeyIsTheNameOfHtmlField=HTML 欄位名稱。此需要一點知識去閱讀 HTML 頁面的內容以取得主要欄位的名稱。
    -PageUrlForDefaultValues=您必須在此輸入相對頁面的URL。 若您在URL中包含參數時,若所有參數都設為相同的值,則預設值將生效。 例如:
    -PageUrlForDefaultValuesCreate=<br>對表單來建立新的合作方,他是 <strong>%s</strong>,<br>若只要在 url 中有一些參數時才需要預設值,則可以使用 <strong>%s</strong>
    -PageUrlForDefaultValuesList=<br>此頁為合作方清單,是<strong>%s</strong>,<br>若只有當 url 有參數時才需要預設值,您可使用 <strong>%s</strong>
    +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. Technical knowledge is required to read the content of the HTML page to get the key name of a field.
    +PageUrlForDefaultValues=You must enter the relative path of the page in URL. If you include parameters in URL, the default values will be effective if all parameters are set to same value.
    +PageUrlForDefaultValuesCreate=<br>Example:<br>For the form to create a new thirdparty, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/", so use path like <strong>mymodule/mypage.php</strong> and not custom/mymodule/mypage.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
    +PageUrlForDefaultValuesList=<br>Example:<br>For the page that list third-parties, it is <strong>%s</strong>.<br>For URL of external modules installed into custom directory, do not include the "custom/" so use path like <strong>mymodule/mypagelist.php</strong> and not custom/mymodule/mypagelist.php.<br>If you want default value only if url has some parameter, you can use <strong>%s</strong>
     EnableDefaultValues=啟用個人使用的預設值
    -EnableOverwriteTranslation=啟用使用覆寫翻譯
    -GoIntoTranslationMenuToChangeThis=此程式碼值找到翻譯,因此要更改此值,您必須到 首頁 - 設定 - 翻譯 進行編輯。
    +EnableOverwriteTranslation=Enable usage of overwritten translation
    +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code. To change this value, you must edit it from Home-Setup-translation.
     WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior.
     Field=欄位
     ProductDocumentTemplates=文件範例產生產品文件檔
    @@ -475,17 +479,19 @@ FilesAttachedToEmail=附加檔案
     SendEmailsReminders=用電子郵件傳送行程提醒
     davDescription=新增元件到 DAV 伺服器
     DAVSetup=DAV 模組設定
    -DAV_ALLOW_PUBLIC_DIR=啟用公開資料夾(不再登入 WebDav 資料夾)
    -DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access to (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_PUBLIC_DIR=啟用公開資料夾(不須登入使用的 WebDav 資料夾)
    +DAV_ALLOW_PUBLIC_DIRTooltip=The WebDav public directory is a WebDAV directory everybody can access  (in read and write mode), with no need to have/use an existing login/password account.
    +DAV_ALLOW_ECM_DIR=啟動 DMS/ECM 模組的根目錄(需要登入)
    +DAV_ALLOW_ECM_DIRTooltip=當使用 DMS/ECM 模組時,所有採用人工方式上傳的檔案根目錄/資料夾。像從網頁介面的某些功能需要您有效地登入/密碼以便有取存權限。
     # Modules
     Module0Name=用戶和群組
     Module0Desc=用戶/員工以及群組管理
    -Module1Name=合作方
    -Module1Desc=公司和聯絡人的管理(客戶、潛在客戶)
    +Module1Name=各式合作方
    +Module1Desc=Companies and contacts management (customers, prospects...)
     Module2Name=商業
     Module2Desc=商業管理
     Module10Name=會計
    -Module10Desc=基於資料庫內容的簡單會計報告(日記簿、營業額、周轉)。 不使用任何總帳表單。
    +Module10Desc=Simple accounting reports (journals, turnover) based on database content. Does not use any ledger table.
     Module20Name=提案/建議書
     Module20Desc=商業提案/建議書的管理
     Module22Name=大量發送的電子郵件
    @@ -495,7 +501,7 @@ Module23Desc=監測的能源消耗
     Module25Name=客戶訂單
     Module25Desc=客戶訂單管理
     Module30Name=發票
    -Module30Desc=客戶發票和貸方通知單的管理。供應商發票的管理。
    +Module30Desc=Management of invoices and credit notes for customers. Management of invoices and credit notes for suppliers
     Module40Name=供應商
     Module40Desc=各式供應商及採購管理(採購訂單及計費)
     Module42Name=除錯日誌
    @@ -511,13 +517,13 @@ Module52Desc=產品庫存的管理
     Module53Name=服務
     Module53Desc=服務的管理
     Module54Name=合約/訂閱
    -Module54Desc=合約管理 (服務或定期訂閱)
    +Module54Desc=Management of contracts (services or recurring subscriptions)
     Module55Name=條碼
     Module55Desc=條碼的管理
     Module56Name=電話
     Module56Desc=電話整合
     Module57Name=直接由銀行付款命令
    -Module57Desc=直接借方付款命令管理。包含適用歐洲國家 SEPA 檔案的產生。
    +Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for European countries.
     Module58Name=點選撥打
     Module58Desc=點選撥打系統(Asterisk, ...)的整合
     Module59Name=Bookmark4u
    @@ -528,45 +534,45 @@ Module75Name=費用和出差筆記
     Module75Desc=費用和旅遊音符的管理
     Module80Name=裝貨
     Module80Desc=裝貨和交貨單的管理
    -Module85Name=銀行及現金
    +Module85Name=Banks and Cash
     Module85Desc=銀行或現金帳戶管理
    -Module100Name=外部網站
    -Module100Desc=本模組將一個外部網站或網頁含到 Dolibarr 選單中,並使用 Dolibarr 框架內檢視。
    +Module100Name=External Site
    +Module100Desc=Add external website link into Dolibarr menus to view it in a Dolibarr frame
     Module105Name=Mailman and SPIP
     Module105Desc=會員模組用的 Mailman 或 SPIP 介面
     Module200Name=LDAP
    -Module200Desc=LDAP 資料夾的同步
    +Module200Desc=LDAP directory synchronization
     Module210Name=PostNuke
     Module210Desc=PostNuke 的整合
     Module240Name=匯出資料
    -Module240Desc=匯出 Dolibarr 資料的工具 (協助)
    +Module240Desc=Tool to export Dolibarr data (with assistance)
     Module250Name=資料匯入
    -Module250Desc=匯入 Dolibarr 資料的工具 (協助)
    +Module250Desc=Tool to import data into Dolibarr (with assistance)
     Module310Name=會員
     Module310Desc=基金會會員管理
     Module320Name=RSS 訂閱
     Module320Desc=在 Dolibarr 螢幕頁增加 RSS 訂閱
    -Module330Name=書籤
    -Module330Desc=書籤管理
    -Module400Name=專案/機會/潛在客戶
    -Module400Desc=各式專案、機會/潛在客戶及或任務的管理。您也可以分配任何元件(發票、訂單、提案/建議書、干預/介入...)到專案及從專案檢視中以橫向檢視。
    +Module330Name=Bookmarks and shortcuts
    +Module330Desc=Create shortcuts, always accessible, to the internal or external pages to which you frequently access
    +Module400Name=各專案或潛在
    +Module400Desc=各專案、潛在/機會及/或任務的管理。你也可指派任何元件(發票、訂單、報價單、干預...)到專案中及從專案中檢視中取得橫向檢視。
     Module410Name=Webcalendar
     Module410Desc=Webcalendar 整合
     Module500Name=稅賦及特定費用
     Module500Desc=其他費用管理(銷售稅、社會或年度稅、股利...)
     Module510Name=支付員工薪資
    -Module510Desc=記錄及接下來支付您員工薪資
    +Module510Desc=Record and track employee payments
     Module520Name=借款
     Module520Desc=借款的管理
     Module600Name=商業事件通知
    -Module600Desc=傳送電子郵件通知 ( 由某些商業事件引起 ) 給用戶 ( 在每位用戶中設定 )、給合作方通訊錄 ( 在每位合作方中設定 ) 或是給固定的電子郵件
    -Module600Long=請注意,此模組專用於在發生專用商務事件時發送即時的電子郵件。若您正在尋找通過您的行程事件的電子郵件傳送提醒的功能,請進入行程模組的設定。
    +Module600Desc=Send email notifications triggered by a business event, for users (setup defined on each user), third-party contacts (setup defined on each third party) or to defined emails
    +Module600Long=Note that this module sends emails in real-time when a specific business event occurs. If you are looking for a feature to send email reminders of agenda events, go into the setup of module Agenda.
     Module610Name=產品變種
    -Module610Desc=允許基於屬性(顏色、大小...)建立產品變種
    +Module610Desc=Creation of product variants (color, size etc.)
     Module700Name=捐贈
     Module700Desc=捐款的管理
     Module770Name=費用報表
    -Module770Desc=管理及認列費用報表(交通、餐飲...等)
    +Module770Desc=Manage and claim expense reports (transportation, meal, ...)
     Module1120Name=供應商商業提案/建議書
     Module1120Desc=回覆供應商商業提案/建議書及報價
     Module1200Name=Mantis 工作管理
    @@ -576,13 +582,13 @@ Module1520Desc=大量郵件文件的產生
     Module1780Name=標籤/分類
     Module1780Desc=建立標籤/類別(產品、客戶、供應商、通訊錄或會員)
     Module2000Name=所視即所得編輯器
    -Module2000Desc=允許使用進階的編輯器 ( CKEditor ) 編輯某些文字區
    +Module2000Desc=Allow text fields to be edited using CKEditor
     Module2200Name=浮動價格
     Module2200Desc=啟用價格的數學表達式
     Module2300Name=排程工作
     Module2300Desc=排程工作管理(連到 cron 或是 chrono table)
     Module2400Name=事件/行程
    -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. This is the main important module for a good Customer or Supplier Relationship Management.
    +Module2400Desc=Track events. Let Dolibarr log automatic events for tracking purposes or record manual events or meetings. This is the main module for good Customer or Supplier Relationship Management.
     Module2500Name=檔案管理系統(DMS) / 電子控制管理(ECM)
     Module2500Desc=文件管理系統 / 電子內容管理。您產生或是儲存的文件會自動整理組織。當您有需要就分享吧。
     Module2600Name=API/Web 服務 ( SOAP 伺服器 )
    @@ -590,46 +596,50 @@ Module2600Desc=啟用 Dolibarr SOAP 伺服器提供 API 服務
     Module2610Name=API/Web 服務( REST 伺服器)
     Module2610Desc=啟用 Dolibarr REST 伺服器提供 API 服務
     Module2660Name=呼叫網站服務 (SOAP 客戶端)
    -Module2660Desc=啟用 Dolibarr 網站服務客戶端(可以使用傳送資料及要求到外部伺服器。目前只支援供應商訂單)
    +Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Only Supplier orders currently supported.)
     Module2700Name=Gravatar
    -Module2700Desc=使用線上的 Gravatar 服務 ( www.gravatar.com ),以顯示用戶/會員的照片 (使用本身的電子郵件尋找)。此需要連上網
    +Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Needs Internet access
     Module2800Desc=FTP 客戶端
     Module2900Name=GeoIPMaxmind
     Module2900Desc=GeoIP Maxmind 的轉換功能
     Module3100Name=Skype
     Module3100Desc=增加 Skype 鈕到用戶 / 合作方 / 通訊錄 / 會員資料卡中
     Module3200Name=不可改變的檔案
    -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries.
    +Module3200Desc=Enable an unalterable log of business events. Events are archived in real-time. The log is a read-only table of chained events that can be exported. This module may be mandatory for some countries.
     Module4000Name=人資
     Module4000Desc=人力資源管理(部門、員工合約及感受的管理)
     Module5000Name=多個公司
     Module5000Desc=允許您管理多個公司
     Module6000Name=工作流程
    -Module6000Desc=Workflow management (automatic creation of object and/or automatic status change)
    +Module6000Desc=工作流程管理(自動建立物件和/或自動更改狀況)
     Module10000Name=網站
     Module10000Desc=透過所見即所視的編輯器建立公開網站。只要設定您網站伺服器 (Apache, Nginx,...) 指向專用的 Dolibarr 資料夾,使其通過 internet 連線到您自己的網域即可。
     Module20000Name=離職申請管理
    -Module20000Desc=聲明並遵守員工離職申請
    +Module20000Desc=Declare and track employees leave requests
     Module39000Name=產品批次
     Module39000Desc=在產品中批次或序號、有效日及銷售日的管理
    +Module40000Name=Multicurrency
    +Module40000Desc=Use alternative currencies in prices and documents
     Module50000Name=PayBox
    -Module50000Desc=提供使用 PayBox 的借貸卡做為線上支付方式的模組。此可允許您客戶免付款或是用在特定Dolibarr元件 ( 發票、訂單 ... ) 上付款。
    +Module50000Desc=Offer customers a PayBox online payment page (credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50100Name=收銀機
     Module50100Desc=收銀機模組 ( POS )
    +Module50150Name=收銀機
    +Module50150Desc=Point of sales module (Touch screen POS).
     Module50200Name=Paypal
    -Module50200Desc=提供使用 PayPal ( 信用卡或是 PayPal 信用) 做為線上支付方式的模組。此可允許您客戶免付款或是在特定 Dolibarr 元件 ( 發票、訂單 ... ) 上付款。
    +Module50200Desc=Offer customers a PayPal online payment page (PayPal account or credit/debit cards). This can be used to allow your customers to make free payments or for a payment on a particular Dolibarr object (invoice, order, ...)
     Module50400Name=會計(進階)
    -Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software format.
    +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
     Module54000Name=PrintIPP
    -Module54000Desc=直接列印(不用打開文件)使用 Cups IPP 介面(印表機可在伺服器上看到,且 CUPS 必須已安裝在伺服器上)。
    +Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
     Module55000Name=問卷、調查或票選
    -Module55000Desc=製作問卷、調查或票選的模組(像 Doodle, Styds, Rdvz, ...)
    +Module55000Desc=Module to create online polls, surveys or votes (like Doodle, Studs, Rdvz, ...)
     Module59000Name=利潤
     Module59000Desc=模組管理利潤
     Module60000Name=委員會
     Module60000Desc=模組管理委員會
     Module62000Name=交易條件
    -Module62000Desc=新增功能管理交易條件
    +Module62000Desc=Add features to manage Incoterms
     Module63000Name=資源
     Module63000Desc=管理資源 (印表機、車子、會議室...) 您可在之後分享到事件中
     Permission11=讀取客戶發票
    @@ -651,10 +661,10 @@ Permission32=建立/修改產品資訊
     Permission34=刪除產品資訊
     Permission36=查看/管理隱藏的產品
     Permission38=匯出產品資訊
    -Permission41=讀取專案及任務(分享專案及有關我的專案聯絡人)。也可針對自己或是層級已分配的任務輸入處理時間(時間表)
    -Permission42=建立/修改專案(分享專案及有關我的專案聯絡人)。也可建立任務及分配用戶的專案及任務
    -Permission44=刪除專案(分享專案及有關我的專案聯絡人)
    -Permission45=匯出各式專案
    +Permission41=讀取各專案及各任務(已分享的專案及以我為連絡人的各專案)。也可在被指派的任務對自已或等級中輸入耗用的時間(時間表)
    +Permission42=建立/修改各專案(已分享或以我為連絡人的各專案)。也可以建立各任務及指派用戶到專案及各任務
    +Permission44=刪除各專案(已分享的各專案及以我當任連絡人的各專案)
    +Permission45=匯出各專案
     Permission61=讀取干預/介入
     Permission62=建立/修改干預/介入
     Permission64=刪除干預/介入
    @@ -686,7 +696,7 @@ Permission109=刪除出貨單
     Permission111=讀取財務會計項目
     Permission112=建立/修改/刪除及比較交易
     Permission113=設定財務會計項目(建立、管理分類)
    -Permission114=調整各式交易
    +Permission114=Reconcile transactions
     Permission115=匯出交易和會計描述
     Permission116=帳戶之間交易
     Permission117=管理支票調度
    @@ -694,15 +704,15 @@ Permission121=讀取已連線到用戶的合作方
     Permission122=建立/修改已連線到用戶的合作方
     Permission125=刪除已連線到用戶的合作方
     Permission126=匯出合作方資料
    -Permission141=讀取全部專案及任務(也含我無法聯絡的私人專案)
    -Permission142=建立/修改全部專案及任務(也含我無法聯絡的私人專案)
    -Permission144=刪除全部專案及任務(也含我無法聯絡的私人專案)
    +Permission141=讀取各專案(已分享的各專案及以我當任連絡人的各專案)
    +Permission142=建立/修改全部專案及任務(也包含我不是連絡人的私人專案)
    +Permission144=刪除全部專案及任務(也包含我不是連絡人的私人專案)
     Permission146=讀取提供者
     Permission147=讀取狀況
     Permission151=讀取直接貸方付款訂單
     Permission152=建立/修改直接貸方付款訂單
     Permission153=傳送/傳輸直接貸方付款訂單
    -Permission154=記錄直接貸方付款訂單的點數/拒絕
    +Permission154=Record Credits/Rejections of direct debit payment orders
     Permission161=讀取合約/訂閱
     Permission162=建立/修改合約/訂閱
     Permission163=啟動服務合約/合約的訂閱
    @@ -725,7 +735,7 @@ Permission187=結束供應商訂單情(結案)
     Permission188=取消供應商訂單
     Permission192=建立行
     Permission193=取消行
    -Permission194=讀取頻寬線路
    +Permission194=Read the bandwidth lines
     Permission202=建立ADSL連線
     Permission203=訂購連接訂單
     Permission204=訂購連接
    @@ -750,12 +760,12 @@ Permission244=查看隱藏分類的內容
     Permission251=讀取其他用戶和群組資訊
     PermissionAdvanced251=讀取其他用戶
     Permission252=讀取其他用戶的權限
    -Permission253=建立/修改其他用戶、群組及其權限
    +Permission253=Create/modify other users, groups and permissions
     PermissionAdvanced253=建立/修改內部/外部用戶和權限
     Permission254=只能建立/修改外部用戶資訊
     Permission255=修改其他用戶密碼
     Permission256=刪除或禁用其他用戶
    -Permission262=延伸存取到全部合作方 (不只是用戶是銷售代表的合作方) 。<br>對外部用戶無效 ( 限於自已的提案/建議書、訂單、發票、合約等)。<br>對專案無效 (只有專案權限、可見性和分配事宜的規則)。
    +Permission262=延伸存取全部合作方(不只是合作方的業務代表)。<br>對外部用戶無效(對提案建議書、訂單、發票、通訊錄等)。<br>對專案無效(在專案取存、顯示及指派事件的規則)
     Permission271=讀取 CA
     Permission272=讀取發票
     Permission273=發票問題
    @@ -765,7 +775,7 @@ Permission283=刪除聯絡人資訊
     Permission286=匯出聯絡人資訊
     Permission291=讀取關稅
     Permission292=設定關稅權限
    -Permission293=修改客戶的關稅
    +Permission293=Modify customers tariffs
     Permission300=讀取條碼
     Permission301=建立/修改條碼
     Permission302=刪除條碼
    @@ -787,11 +797,9 @@ Permission401=讀取折扣
     Permission402=建立/修改折扣
     Permission403=驗證折扣
     Permission404=刪除折扣
    -Permission501=讀取員工合約/薪資
    -Permission502=建立/修改員工合約/薪資
    -Permission511=讀取薪資的付款方式
    -Permission512=建立/修改支付的薪資
    -Permission514=刪除薪資
    +Permission511=Read payments of salaries
    +Permission512=Create/modify payments of salaries
    +Permission514=Delete payments of salaries
     Permission517=匯出薪資
     Permission520=讀取借款
     Permission522=建立/修改借款
    @@ -844,8 +852,8 @@ Permission1251=執行匯入大量外部資料到資料庫的功能 (載入資料
     Permission1321=匯出客戶發票、屬性及其付款資訊
     Permission1322=重啟已付帳單
     Permission1421=匯出客戶訂單及屬性資訊
    -Permission20001=讀取離職需求(您的離職及您的下屬)
    -Permission20002=建立/修改您離職需求(您的離職及您的下屬)
    +Permission20001=Read leave requests (your leave and that of your subordinates)
    +Permission20002=Create/modify your leave requests (your leave and that of your subordinates)
     Permission20003=刪除離職需求
     Permission20004=讀取全部離職需求 (甚至非您下屬的用戶)
     Permission20005=建立/修改全部人離職需求(甚至非您下屬的用戶)
    @@ -880,8 +888,8 @@ Permission63001=讀取資源
     Permission63002=建立/修改資源
     Permission63003=刪除資源
     Permission63004=連線資源到行程事件
    -DictionaryCompanyType=合作方類型
    -DictionaryCompanyJuridicalType=合作方的法律形式
    +DictionaryCompanyType=Types of third-parties
    +DictionaryCompanyJuridicalType=Legal forms of third-parties
     DictionaryProspectLevel=展望潛在水準
     DictionaryCanton=州/省
     DictionaryRegion=地區
    @@ -894,7 +902,7 @@ DictionaryVAT=營業稅率或銷售稅率
     DictionaryRevenueStamp=稅票金額
     DictionaryPaymentConditions=付款條件
     DictionaryPaymentModes=付款方式
    -DictionaryTypeContact=聯絡人/地址類型
    +DictionaryTypeContact=Contacts/addresses types
     DictionaryTypeOfContainer=網站頁面/容器的類型
     DictionaryEcotaxe=Ecotax(WEEE)
     DictionaryPaperFormat=文件格式
    @@ -908,47 +916,47 @@ DictionarySource=原始的提案/建議書/訂單
     DictionaryAccountancyCategory=報表的個人化群組
     DictionaryAccountancysystem=會計項目表的模組
     DictionaryAccountancyJournal=各式會計日記簿
    -DictionaryEMailTemplates=電子郵件的範本
    +DictionaryEMailTemplates=Email Templates
     DictionaryUnits=單位
     DictionaryProspectStatus=預測狀況
    -DictionaryHolidayTypes=離職類型
    -DictionaryOpportunityStatus=專案/潛在客戶的機會狀況
    +DictionaryHolidayTypes=Types of leave
    +DictionaryOpportunityStatus=Lead status for project/lead
     DictionaryExpenseTaxCat=費用報表 -  交通各式類別
     DictionaryExpenseTaxRange=費用報表 - 依交通類別劃分範圍
     SetupSaved=設定值已儲存
     SetupNotSaved=設定未儲存
     BackToModuleList=返回模組清單明細
    -BackToDictionaryList=回到各式分類明細表
    +BackToDictionaryList=Back to list of Dictionaries
     TypeOfRevenueStamp=稅票的類別
    -VATManagement=營業稅管理
    -VATIsUsedDesc=當建立潛在客戶、發票、訂單等營業稅稅率會以下列標準規則啟動:<br>若賣方不接受營業稅,則營業稅預設為 0 的規則。<br>若(買賣雙方國家)相同時,營業稅率會預設為賣方國家的產品營業稅。<br>若賣方與買方皆歐盟國家且貨物是運輸產品(車子、船舶、飛機),則預設營業稅為 0 ( 營業稅由買方支付給買方國家,非賣方 )。<br>若賣方與買方皆歐盟國家且買方非公司組織,則營業稅預設為銷售產品的營業稅。<br>若賣方與買方皆歐盟國家且買方是公司組織,則營業稅預設為 0。<br>其他例子則預設營業稅為 0。
    -VATIsNotUsedDesc=預設情況下建議的營業稅為 0,可用於像協會、個人或是小型公司。
    -VATIsUsedExampleFR=在法國,指的是有實際會計年度 (簡單真實或一般真實)的公司或組織。是營業稅適用的系統。
    -VATIsNotUsedExampleFR=在法國,指的是選擇微型企業會計年度(特許的營業稅)如非適用營業稅之協會或是公司、組織或是自由專門職業且支付不適用營業稅的特許營業稅。此選項會在發票顯示為"不適用營業稅 - art-293B of CGI"。
    +VATManagement=Sale Tax Management
    +VATIsUsedDesc=By default when creating prospects, invoices, orders etc. the Sale Tax rate follows the active standard rule:<br>If the seller is not subject to Sale tax, then Sale tax defaults to 0. End of rule.<br>If the (seller's country = buyer's country), then the Sale tax by default equals the Sale tax of the product in the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and goods are transport-related products (haulage, shipping, airline), the default Sale tax is 0. This rule is dependant on the seller's country - please consult with your accountant. The Sale tax should be paid by the buyer to their customs office in their country and not to the seller. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is not a company (with a registered intra-Community Sale tax number) then the Sale tax by defaults to the Sale tax of the seller's country. End of rule.<br>If the seller and buyer are both in the European Community and the buyer is a company (with a registered intra-Community Sale tax number), then the Sale tax is 0 by default. End of rule.<br>In any other case the proposed default is Sale tax=0. End of rule.
    +VATIsNotUsedDesc=By default the proposed Sale tax is 0 which can be used for cases like associations, individuals or small companies.
    +VATIsUsedExampleFR=In France, it means companies or organizations having a real fiscal system (Simplified real or normal real).  A system in which Sale tax is declared.
    +VATIsNotUsedExampleFR=In France, it means associations that are non Sale tax declared or companies, organizations or liberal professions that have chosen the micro enterprise fiscal system (Sale tax in franchise) and paid a franchise Sale tax without any Sale tax declaration.  This choice will display the reference "Non applicable Sale tax - art-293B of CGI" on invoices.
     ##### Local Taxes #####
     LTRate=稅率
     LocalTax1IsNotUsed=不使用第二種稅率
    -LocalTax1IsUsedDesc=使用第二稅率類型(除營業稅外)
    -LocalTax1IsNotUsedDesc=不使用其他稅率類型(除營業稅外)
    +LocalTax1IsUsedDesc=Use a second type of tax (other than first one)
    +LocalTax1IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax1Management=第二種稅率類型
     LocalTax1IsUsedExample=
     LocalTax1IsNotUsedExample=
     LocalTax2IsNotUsed=不使用第三種稅率
    -LocalTax2IsUsedDesc=使用第三種稅率類型(除營業稅外)
    -LocalTax2IsNotUsedDesc=不使用其他稅率類型(除營業稅外)
    +LocalTax2IsUsedDesc=Use a third type of tax (other than first one)
    +LocalTax2IsNotUsedDesc=Do not use other type of tax (other than first one)
     LocalTax2Management=第三種稅率類型
     LocalTax2IsUsedExample=
     LocalTax2IsNotUsedExample=
    -LocalTax1ManagementES= RE 管理
    -LocalTax1IsUsedDescES= 當在建立潛在客戶、發票、訂單等後續活動的標準規定,其預設 RE 率為: <br>如果買方沒有受RE,預設 RE = 0。<br>如果買方是接受 RE 則預設為 RE。 <br>
    -LocalTax1IsNotUsedDescES= 預設的 RE 建議值為0。
    -LocalTax1IsUsedExampleES= 在西班牙他們是受到西班牙 IAE 某些特別規範的專業人士。
    -LocalTax1IsNotUsedExampleES= 在西班牙他們是專業及社會人士且受到西班牙 IAE 某些特別的規範。
    -LocalTax2ManagementES= IRPF 管理
    -LocalTax2IsUsedDescES= 當在建立潛在客戶、發票、訂單等後續活動的標準規定,其預設 RE 率為: <br>如果賣方不接受 IRPF,則 IRPF 預設 = 0。 <br>如果賣方受 IRPF 規範,則 IRPF 為預設。 <br>
    -LocalTax2IsNotUsedDescES= 預設的 IRPF 建議值為0。
    -LocalTax2IsUsedExampleES= 在西班牙,自由職業者及提供服務的專業人士及選擇稅務系統模組的公司。
    -LocalTax2IsNotUsedExampleES= 在西班牙他們是生意不是稅務系統模組話題。
    +LocalTax1ManagementES=RE 管理
    +LocalTax1IsUsedDescES=The RE rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the buyer is not subjected to RE, RE by default=0. End of rule.<br>If the buyer is subjected to RE then the RE by default. End of rule.<br>
    +LocalTax1IsNotUsedDescES=預設的 RE 建議值為0。
    +LocalTax1IsUsedExampleES=在西班牙他們是受到西班牙 IAE 某些特別規範的專業人士。
    +LocalTax1IsNotUsedExampleES=在西班牙他們是專業及社會人士且受到西班牙 IAE 某些特別的規範。
    +LocalTax2ManagementES=IRPF 管理
    +LocalTax2IsUsedDescES=The IRPF rate by default when creating prospects, invoices, orders etc. follow the active standard rule:<br>If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.<br>If the seller is subjected to IRPF then the IRPF by default. End of rule.<br>
    +LocalTax2IsNotUsedDescES=預設的 IRPF 建議值為0。
    +LocalTax2IsUsedExampleES=在西班牙,自由職業者及提供服務的專業人士及選擇稅務系統模組的公司。
    +LocalTax2IsNotUsedExampleES=In Spain they are businesses not subject to tax system of modules.
     CalcLocaltax=地方稅報表
     CalcLocaltax1=銷貨 - 採購
     CalcLocaltax1Desc=地方稅報表是由銷貨的地方稅與採購的地方稅之差異。
    @@ -958,7 +966,9 @@ CalcLocaltax3=可否銷售
     CalcLocaltax3Desc=地方稅報表是地方稅銷貨總數
     LabelUsedByDefault=若代號沒有找翻譯字句,則預設使用標籤
     LabelOnDocuments=文件上的標籤
    -NbOfDays=Nb 的天數
    +LabelOrTranslationKey=Label or translation key
    +ValueOfConstantKey=Value of constant
    +NbOfDays=No. of days
     AtEndOfMonth=月底
     CurrentNext=現在/下一個
     Offset=抵銷
    @@ -984,7 +994,7 @@ DatabaseUser=資料庫用戶
     DatabasePassword=資料庫密碼
     Tables=表格
     TableName=表格名稱
    -NbOfRecord=Nb 的記錄
    +NbOfRecord=No. of records
     Host=服務器
     DriverType=驅動程式類型
     SummarySystem=系統資訊摘要
    @@ -996,16 +1006,16 @@ Skin=佈景主題
     DefaultSkin=預設佈景主題
     MaxSizeList=清單明細的最大長度
     DefaultMaxSizeList=預設清單明細的最大長度
    -DefaultMaxSizeShortList=縮短名單預設最大長度(即在客戶卡中)
    +DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
     MessageOfDay=一天的訊息
    -MessageLogin=登錄頁的訊息
    +MessageLogin=登入頁的訊息
     LoginPage=登入頁面
     BackgroundImageLogin=背景圖片
     PermanentLeftSearchForm=左側選單上的尋找表單
     DefaultLanguage=預設使用語言(語言代號)
     EnableMultilangInterface=啟用多語言界面
     EnableShowLogo=在左側選單顯示組織標誌
    -CompanyInfo=公司/組織資訊
    +CompanyInfo=公司/組織
     CompanyIds=公司/組織身分
     CompanyName=名稱
     CompanyAddress=地址
    @@ -1021,30 +1031,30 @@ OwnerOfBankAccount=銀行帳戶的擁有者%s
     BankModuleNotActive=銀行帳戶模組沒有啟用
     ShowBugTrackLink=顯示連線"<strong>%s</strong>"
     Alerts=警告
    -DelaysOfToleranceBeforeWarning=警告提醒
    -DelaysOfToleranceDesc=此螢幕允許您定義對每一元件用形狀%s的螢幕警告提醒。
    -Delays_MAIN_DELAY_ACTIONS_TODO=在已計劃的事件(行程事件)中尚未完成的警告提醒(以天計)
    -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=沒有即時結束專案的警告提醒(以天計)
    -Delays_MAIN_DELAY_TASKS_TODO=計劃中任務(專案任務)尚未完成前的警告提醒(以天計)
    -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=對訂單尚未完成程序的警告提醒(以天計)
    -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
    -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=在結束提案/建議書前的警告提醒(以天計)
    -Delays_MAIN_DELAY_PROPALS_TO_BILL=提案/建議書沒有計費的警告提醒(以天計)
    -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=對服務尚未啟動的警告提醒(以天計)
    -Delays_MAIN_DELAY_RUNNING_SERVICES=對過期服務的警告提醒(以天計)
    -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=對尚未付款供應商發票的警告提醒(以天計)
    -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=對尚未付款客戶發票的警告提醒(以天計)
    -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=正在等待銀行對帳的警告提醒(以天計)
    -Delays_MAIN_DELAY_MEMBERS=對延遲會員費用的警告提醒(以天計)
    -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=檢查存款的警告提醒(以天計)
    -Delays_MAIN_DELAY_EXPENSEREPORTS=費用報表核准前的警告提醒(以天計)
    -SetupDescription1=在使用 Dolibarr 前"設定區"是一開始要設定的參數。
    -SetupDescription2=The two mandatory setup steps are the following steps (the two first entries in the left setup menu):
    -SetupDescription3=Settings in menu <a href="%s">%s -> %s</a>. This step is required because it defines data used on Dolibarr screens to customize the default behavior of the software (for country-related features for example).
    -SetupDescription4=Settings in menu <a href="%s">%s -> %s</a>. This step is required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features are added to menus for every module you activate.
    -SetupDescription5=其他選單項管理可選的參數。
    +DelaysOfToleranceBeforeWarning=Delays before displaying an alert warning
    +DelaysOfToleranceDesc=This screen allows you to define the delay before an alert is reported onscreen with a %s icon for each late element.
    +Delays_MAIN_DELAY_ACTIONS_TODO=Delay (in days) before alert on planned events (agenda events) not completed yet
    +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay (in days) before alert on project not closed in time
    +Delays_MAIN_DELAY_TASKS_TODO=Delay (in days) before alert on planned tasks (project tasks) not completed yet
    +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay (in days) before alert on orders not processed yet
    +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay (in days) before alert on purchase orders not processed yet
    +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay (in days) before alert on proposals to close
    +Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay (in days) before alert on proposals not billed
    +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Delay (in days) before alert on services to activate
    +Delays_MAIN_DELAY_RUNNING_SERVICES=Delay (in days) before alert on expired services
    +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Delay (in days) before alert on unpaid supplier invoices
    +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Delay (in days) before alert on unpaid client invoices
    +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Delay (in days) before alert on pending bank reconciliation
    +Delays_MAIN_DELAY_MEMBERS=Delay (in days) before alert on delayed membership fee
    +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Delay (in days) before alert for cheque deposit to do
    +Delays_MAIN_DELAY_EXPENSEREPORTS=Delay (in days) before alert for expense reports to approve
    +SetupDescription1=Before starting to use Dolibarr some initial parameters must be defined and modules enabled/configured.
    +SetupDescription2=The mandatory setup steps are the 2 first steps in the Setup menu, namely :
    +SetupDescription3=<a href="%s">%s -> %s</a><br>Basic parameters used to customize the default behavior of Dolibarr (e.g for country-related features).
    +SetupDescription4=<a href="%s">%s -> %s</a><br>Dolibarr ERP/CRM is a collection of many modules/applications, all more or less independent. The modules relevant to your needs must be enabled and configured. New items/options are added to menus with the activation of a module.
    +SetupDescription5=Other Setup menu entries provides optional parameters.
     LogEvents=安全稽核事件
    -Audit=稽核
    +Audit=Security events
     InfoDolibarr=關於 Dolibarr
     InfoBrowser=有關於瀏覽器
     InfoOS=關於作業系統
    @@ -1056,20 +1066,20 @@ BrowserName=瀏覽器名稱
     BrowserOS=瀏覽器操作系統
     ListOfSecurityEvents=Dolibarr 安全事件清單明細
     SecurityEventsPurged=清除安全事件
    -LogEventDesc=您可以啟用記錄 Dolibarr 安全事件日誌。管理員就可以透過選單<b>系統工具-稽核</b> 看到內容。警告,此功能在資料庫中消耗了大量資料。
    +LogEventDesc=You can enable here the logging for security events. Administrators can then see its content via menu <b>%s - %s</b>. Warning, this feature can consume a large amount of data in database.
     AreaForAdminOnly=設定參數僅由<b>管理員用戶</b>設定。
     SystemInfoDesc=僅供具有系統管理員以唯讀及可見模式取得系統資訊。
     SystemAreaForAdminOnly=此區僅供具有管理員權限用戶。Dolibarr 權限都不能減少此限制。
    -CompanyFundationDesc=在此頁面上編輯您需要管理的公司或基金會的所有已知資訊(點選頁面的”%s“或"%s"按鈕)
    -AccountantDesc=在此頁面上編輯有關於您的會計師/記帳士的資訊
    +CompanyFundationDesc=編輯公司/項目的資訊。點選在頁面下方的 "%s" 或 "%s" 按鈕。
    +AccountantDesc=Edit the details of your accountant/bookkeeper
     AccountantFileNumber=檔案數
     DisplayDesc=您可以選擇與 Dolibarr 的外觀及感受有關的每一項參數
     AvailableModules=可用的程式/模組
     ToActivateModule=為啟動模組則到設定區(首頁 -> 設定 -> 模組)。
     SessionTimeOut=連線階段超時
    -SessionExplanation=當此連線階段由內部PHP連線階段清除器清除時(沒有別的),此數字保證連線階段在遞延前不會到期。內部PHP連線階段清除器不會保證此遞延後的連線階段將會到期。當連線階段清除器在執行時,則此遞延之後將會到期,所以每個<b>%s/%s</b>存取,不只限制由其他階段存取的期間。<br>注意:有外部連線階段清除機器的某些伺服器( DEBIAN, UBUNTU 下的 CRON),不論參數值多少,當預設參數<strong>session.gc_maxlifetime</strong>定義後,連線階段會被破壞。
    +SessionExplanation=This number guarantees that the session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guarantee that the session will expire after this delay. It will expire, after this delay, and when the session cleaner is run, so every <b>%s/%s</b> access, but only during access made by other sessions (if value is 0, it means clearing of session is done only by an external process).<br>Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by an external setup, no matter what the value entered here is.
     TriggersAvailable=可用的觸發器
    -TriggersDesc=觸發器是可以修改Dolibarr工作流程行為的檔案,一旦複製到該資料夾<b>/htdocs/core/triggers</b>。他們實現了新的行動,啟動 Dolibarr 事件(新公司的建立,發票驗證...)。
    +TriggersDesc=Triggers are files that will modify the behavior of Dolibarr workflow once copied into the directory <b>htdocs/core/triggers</b>. They realize new actions, activated on Dolibarr events (new company creation, invoice validation, ...).
     TriggerDisabledByName=在此檔案中觸發器是禁用的,其名稱尾碼<b>-NORUN</b>。
     TriggerDisabledAsModuleDisabled=當模組<b>%s</b>禁用時,此檔案中觸發器是禁用的。
     TriggerAlwaysActive=此檔案中觸發器是活躍的,無論啟動任何 Dolibarr 模組。
    @@ -1079,7 +1089,7 @@ DictionaryDesc=插入全部參考資料。您可加入您的預設值。
     ConstDesc=此頁允許您編輯所有不在前頁的參數。這些主要是為開發人員或進階故障排除預留參數。<a href="https://wiki.dolibarr.org/index.php/Setup_Other#List_of_known_hidden_options" title="External Site - opens in a new window" target="_blank">在此可檢查</a>選項清單明細。
     MiscellaneousDesc=所有其他與安全參數有關的在此定義。
     LimitsSetup=限制及精準度設定
    -LimitsDesc=在此 Dolibarr 使用您定義的限制、精準度及最佳化。
    +LimitsDesc=You can define limits, precisions and optimizations used by Dolibarr here
     MAIN_MAX_DECIMALS_UNIT=單價的小數點
     MAIN_MAX_DECIMALS_TOT=總價的小數點
     MAIN_MAX_DECIMALS_SHOWN=在螢幕上顯示價格的最大位數小數點 (新增<b>...</b>想看到新增的數字<b>...</b>當螢幕上顯示數字被截掉時)
    @@ -1087,17 +1097,17 @@ MAIN_ROUNDING_RULE_TOT=捨去範圍的步驟 (對於基數為10以外的國家/
     UnitPriceOfProduct=產品的淨單位價格
     TotalPriceAfterRounding=捨去後總價格(淨價/營業稅/含稅價)
     ParameterActiveForNextInputOnly=下一個輸入參數才能有效
    -NoEventOrNoAuditSetup=尚未有被記錄的安全事件。若“設定 - 安全 - 稽核”頁面沒有啟用稽核,則為正常的。
    -NoEventFoundWithCriteria=沒有搜尋到此條件的安全事件。
    +NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "Setup - Security - Events" page.
    +NoEventFoundWithCriteria=No security event has been found for this search criteria.
     SeeLocalSendMailSetup=查看本地的 sendmail 的設定
     BackupDesc=為了完整的 Dolibarr 備份,您必須:
     BackupDesc2=儲存文件資料夾內容 (<b>%s</b>) 包含所有已上傳及產生的檔案 ( 所以此包含在步驟1中所有產生的轉存檔案 )
    -BackupDesc3=儲存您資料庫的內容(<b>%s</b>)到轉存檔案。為完成此您要使用接下來的助理。
    +BackupDesc3=Save content of your database (<b>%s</b>) into a dump file. For this, you can use the following assistant.
     BackupDescX=資料夾應該被存放於安全的地方。
     BackupDescY=產生的轉存檔案應存放於安全的地方。
    -BackupPHPWarning=此法不能保證可備份。使用上一個
    +BackupPHPWarning=Backup cannot be guaranteed with this method. Previous one recommended.
     RestoreDesc=還原 Dolibarr 備份檔,您必須:
    -RestoreDesc2=還原文件資料夾的檔案 (例如 ZIP 檔) 是將以樹狀目錄的方式解壓檔案到新安裝 Dolibarr 的文件資料夾內或是解到目前文件資料夾(<b>%s</b>)。
    +RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directory (<b>%s</b>).
     RestoreDesc3=從備份轉存檔案還原的資料匯入到新安裝的 Dolibarr 或是目前已安裝的程式 (<b>%s</b>)。警告,一旦還原完成,您必須使用回復的資料庫中的用戶及密碼重新連線。還原備份資料庫到目前已安裝的程式,你可以依照接以下的幫助處理。
     RestoreMySQL=匯入 MySQL
     ForcedToByAModule= 啟動的模組<b>%s</b>都強制適用此規則
    @@ -1108,81 +1118,82 @@ YouMustRunCommandFromCommandLineAfterLoginToUser=用戶<b>%s</b>在登入終端
     YourPHPDoesNotHaveSSLSupport=在您 PHP 中 SSL 的功能是不使用
     DownloadMoreSkins=更多佈景主題下載
     SimpleNumRefModelDesc=編號會依照 %syymm-nnnn 的參數規則產生編號。其中yy是年、mm是月、nnnn 是不間斷且不重設的序列數字。
    -ShowProfIdInAddress=顯示在文件中專業  ID
    -ShowVATIntaInAddress=隱藏在文件中營業稅內部編號
    +ShowProfIdInAddress=Show professional id with addresses on documents
    +ShowVATIntaInAddress=Hide intra-Community VAT number with addresses on documents
     TranslationUncomplete=部分翻譯
    -MAIN_DISABLE_METEO=禁用氣象檢視
    +MAIN_DISABLE_METEO=Disable meteorological view
     MeteoStdMod=標準模式
     MeteoStdModEnabled=標準模式啟用
     MeteoPercentageMod=百分比模式
     MeteoPercentageModEnabled=百分比模式啟用
     MeteoUseMod=點擊使用 %s
     TestLoginToAPI=測試登入到 API
    -ProxyDesc=Dolibarr 的某些功能需要連上網路工作。此定義為這類參數。,如果 Dolibarr 服務器是在隱藏在代理服務器後,則那些參數為通知 Dolibarr 要如何通過它來連上網路。
    +ProxyDesc=Some features of Dolibarr need to have internet access to work. Define here the parameters for this. If the Dolibarr server is behind a Proxy server, these parameters tell Dolibarr how to access the internet through it.
     ExternalAccess=外部存取
     MAIN_PROXY_USE=使用代理服務器(否則直接連上網路存取)
     MAIN_PROXY_HOST=代理服務器的名稱/位置
     MAIN_PROXY_PORT=代理服務器的連接埠
     MAIN_PROXY_USER=登入使用代理服務器
     MAIN_PROXY_PASS=使用代理服務器的密碼
    -DefineHereComplementaryAttributes=在此定義全部屬性,也包含了預設可用的屬性,以便讓 %s 模組可以支援顯示。
    +DefineHereComplementaryAttributes=Define any attributes not already available by default, that you want to be supported for %s here.
     ExtraFields=補充屬性
     ExtraFieldsLines=補充屬性(行)
     ExtraFieldsLinesRec=補充屬性 ( 範本發票行)
     ExtraFieldsSupplierOrdersLines=補充屬性(訂單行)
     ExtraFieldsSupplierInvoicesLines=補充屬性(發票行)
     ExtraFieldsThirdParties=補充屬性(合作方)
    -ExtraFieldsContacts=補充屬性(聯絡資訊/地址)
    +ExtraFieldsContacts=Complementary attributes (contacts/address)
     ExtraFieldsMember=補充屬性(會員)
     ExtraFieldsMemberType=補充屬性(會員類型)
     ExtraFieldsCustomerInvoices=補充屬性(發票)
     ExtraFieldsCustomerInvoicesRec=互補屬性(範本發票)
     ExtraFieldsSupplierOrders=補充屬性(訂單)
     ExtraFieldsSupplierInvoices=補充屬性(發票)
    -ExtraFieldsProject=補充屬性(專案)
    +ExtraFieldsProject=補充屬性(各專案)
     ExtraFieldsProjectTask=補充屬性(任務)
     ExtraFieldHasWrongValue=屬性 %s 有錯誤值。
     AlphaNumOnlyLowerCharsAndNoSpace=只限字母數字和小寫字元且沒有空格
     SendmailOptionNotComplete=警告,在某些Linux系統,從您的電子郵件發送電子郵件,必須包含 sendmail 的執行設置選項 -ba(在您的 php.ini 檔案設定參數 mail.force_extra_parameters )。如果收件人沒有收到電子郵件,嘗試編輯 mail.force_extra_parameters = -ba 這個PHP參數。
     PathToDocuments=文件路徑
     PathDirectory=資料夾
    -SendmailOptionMayHurtBuggedMTA=傳送郵件使用 "PHP mail direct" 的功能可能會由接收方郵件伺服器產生不正確的郵件訊息。結果是某些郵件無法讀取。這是因為某些網路供應商(例如在法國的 Orange)。這不是 Dolibarr 也不是 PHP 問題,而是接收郵件伺服器的問題。然而您可修改在「設定-其他」並增加一個選項 MAIN_FIX_FOR_BUGGED_MTA 為 1 以避免這個問題。然而您也可能有經歷過其他嚴格遵守 SMTP 標準的伺服器問題。因此其他解決方式 (建議) 是使用 "SMTP socket library" 會比較沒有風險。
    +SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might not be parsed correctly by some receiving mail servers. The result is that some mails can't be read by people hosted by those bugged platforms. This is the case for some Internet providers (Ex: Orange in France). This is not a problem with Dolibarr or PHP but with the receiving mail server. You can however add an option MAIN_FIX_FOR_BUGGED_MTA to 1 in Setup - Other to modify Dolibarr to avoid this. However, you may experience problems with other servers that strictly use the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" which has no disadvantages.
     TranslationSetup=翻譯設定
     TranslationKeySearch=尋找翻譯值或字串
     TranslationOverwriteKey=覆寫翻譯字串
     TranslationDesc=如何設定顯示應用程式語言: <br>* 系統上: 選單 <strong> 首頁 - 設定 - 顯示</strong><br> * 每個人: 在用戶卡 (點選螢幕最上方的用戶) 使用 <strong>用戶顯示設定</strong> 分頁。
     TranslationOverwriteDesc=您也可以用覆寫的方式填滿接下來的表格。選擇您的語言從 "%s" 下拉,插入翻譯字串到 "%s" 及您的新翻譯到 "%s"
    -TranslationOverwriteDesc2=您可使用其他分頁幫助您使用知道的翻譯值
    +TranslationOverwriteDesc2=You can use the other tab to help you know which translation key to use
     TranslationString=翻譯字串
     CurrentTranslationString=目前翻譯字串
     WarningAtLeastKeyOrTranslationRequired=搜索條件至少要有一個值或翻譯字串
     NewTranslationStringToShow=顯示新翻譯字串
     OriginalValueWas=已覆蓋原始翻譯。 原始值是:<br><br>%s
    -TransKeyWithoutOriginalValue=您強制不存在於任何語言檔案中新翻譯的翻譯值 '<strong>%s</strong>' 
    +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '<strong>%s</strong>' that does not exist in any language files
     TotalNumberOfActivatedModules=已啟動程式/模組: <b>%s</b> / <b>%s</b>
     YouMustEnableOneModule=您至少要啟用 1 個模組
    -ClassNotFoundIntoPathWarning=在 PHP 路徑沒有找到 Class %s
    +ClassNotFoundIntoPathWarning=Class %s not found in PHP path
     YesInSummer=是的,在夏天
    -OnlyFollowingModulesAreOpenedToExternalUsers=注意,接下來的模組由外部用戶 ( 無論用戶的權限為何 ) 開啟且只有授權的情況下:
    +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only the following modules are opened to external users (whatever the permissions of such users) and only if permissions are granted:
     SuhosinSessionEncrypt=以 Suhosin 加密方式儲存連線階段
     ConditionIsCurrently=目前情況 %s
    -YouUseBestDriver=目前您可用的驅動程式 %s。
    -YouDoNotUseBestDriver=您必須驅動%s,但建議用%s的驅動程式
    -NbOfProductIsLowerThanNoPb=您只能放%s產品/服務到資料庫中。不用任何的最佳化程序。
    +YouUseBestDriver=You use driver %s which is the best driver available currently.
    +YouDoNotUseBestDriver=You use driver %s but driver %s is recommended.
    +NbOfProductIsLowerThanNoPb=You have only %s products/services in the database. This does not require any particular optimization.
     SearchOptim=最佳化的蒐尋
    -YouHaveXProductUseSearchOptim=您放%s產品到資料庫中。您必須在「首頁-設定-其他」增加常數 PRODUCT_DONOTSEARCH_ANYWHERE 為 1 。您限制在資料庫中使用索引以便一輸入字串即蒐尋,以便您立即反應。
    -BrowserIsOK=您使用瀏覽器為%s。此瀏覽器在安全及效能上是沒問題的。
    -BrowserIsKO=您使用中的瀏覽器為%s。此瀏覽器在安全、效能及可靠上是不好的選。我們建議您使用 Firefox, Chrome, Opera 或 Safari。
    +YouHaveXProductUseSearchOptim=You have %s products in the database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Home-Setup-Other. Limit the search to the beginning of strings which makes it possible for the database to use indexes and you should get an immediate response.
    +BrowserIsOK=You are using the %s web browser. This browser is ok for security and performance.
    +BrowserIsKO=You are using the %s web browser. This browser is known to be a bad choice for security, performance and reliability. We recommend using Firefox, Chrome, Opera or Safari.
     XDebugInstalled=已載入 XDebug。
     XCacheInstalled=已載入 XCache。
    -AddRefInList=在清單明細(選擇清單明細或是混合框)中顯示客戶/供應商參考資訊及超連結。合作方將以"CC12345 - SC45678 - The big company coorp"代替"The big company coorp"的名稱顯現。
    -AskForPreferredShippingMethod=詢問合作方的預備傳送方法
    +AddRefInList=Display Customer/Supplier ref. info list (select list or combobox) and most of hyperlink.<br>Third Parties will appear with a name format of "CC12345 - SC45678 - The Big Company corp." instead of "The Big Company corp".
    +AddAdressInList=Display Customer/Supplier adress info list (select list or combobox)<br>Third Parties will appear with a name format of "The Big Company corp. - 21 jump street 123456 Big town - USA" instead of "The Big Company corp".
    +AskForPreferredShippingMethod=Ask for preferred shipping method for Third Parties.
     FieldEdition=欗位的編輯 %s
     FillThisOnlyIfRequired=例如: +2 (若遇到時區偏移問題時才填寫)
     GetBarCode=取得條碼
     ##### Module password generation
     PasswordGenerationStandard=回到由 Dolibarr 本身算法所產生的密碼:8個字元,包含小寫數字和字元。
    -PasswordGenerationNone=不建議產生任何密碼,必須由人工輸入。
    +PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
     PasswordGenerationPerso=根據您個人定義的偏號設定返回密碼。
     SetupPerso=根據你的偏好設定
     PasswordPatternDesc=密碼模式描述
    @@ -1195,23 +1206,23 @@ UserMailRequired=建立用戶時需要輸入電子郵件資訊
     HRMSetup=人資模組設定
     ##### Company setup #####
     CompanySetup=各式公司模組設定
    -CompanyCodeChecker=合作方代碼產生及檢查(客戶或供應商)模組
    -AccountCodeManager=會計代碼產生(客戶或供應商)模組
    +CompanyCodeChecker=Options for automatic generation of customer / vendor codes
    +AccountCodeManager=Options for automatic generation of customer / vendor accounting codes
     NotificationsDesc=電子郵件通知功能允許您在某些 Dolibarr 事件時自動傳送郵件。通知的標的如下:
     NotificationsDescUser=在時間內 * 每位用戶,一用戶。
     NotificationsDescContact=* 每位合作方通訊錄(客戶或供應商),一次一位連絡人。
     NotificationsDescGlobal=* 或在模組設定頁面中設定全域目標的電子郵件。
    -ModelModules=文件範本
    -DocumentModelOdt=從 OpenDocument 的範本產生文件(可由 OpenOffice, KOffice, TextEdit 開啟的 .ODT 或.ODS檔案)
    +ModelModules=Document Templates
    +DocumentModelOdt=Generate documents from OpenDocument templates (.ODT / .ODS files from LibreOffice, OpenOffice, KOffice, TextEdit,...)
     WatermarkOnDraft=在草稿文件上產生浮水印字串(如果以下文字框不是空字串)
     JSOnPaimentBill=啟動在付款表單中自動填入付款行的功能
    -CompanyIdProfChecker=專業術語欄位ID是否獨一無二
    +CompanyIdProfChecker=Rules for Professional IDs
     MustBeUnique=必須是唯一值?
    -MustBeMandatory=強制建立合作方?
    +MustBeMandatory=強制的建立合作方(若稅籍編號或公司已定義類別時)?
     MustBeInvoiceMandatory=強制驗證發票?
     TechnicalServicesProvided=提供的科技服務
     #####DAV #####
    -WebDAVSetupDesc=此是連線到 WebDAV 資料夾。此包含開放給任何知道 URL 用戶的”公開“檔案目錄(若資料夾允許公開)及需要已登入帳號/密碼的”不公開“資料夾的存取。
    +WebDAVSetupDesc=This is the links to access the WebDAV directory. It contains a "public" dir open to any user knowing the URL (if public directory access allowed) and a "private" directory that need an existing login account/password to access.
     WebDavServer=%s伺服器的根目錄 URL:%s
     ##### Webcal setup #####
     WebCalUrlForVCalExport=匯出連接到 <b>%s</b> 格式可在以下連結:%s的
    @@ -1219,6 +1230,7 @@ WebCalUrlForVCalExport=匯出連接到 <b>%s</b> 格式可在以下連結:%s
     BillsSetup=發票模組設定
     BillsNumberingModule=發票及貸方通知單編號模組
     BillsPDFModules=發票文件模組
    +BillsPDFModulesAccordindToInvoiceType=Invoice documents models according to invoice type
     PaymentsPDFModules=付款文件模式
     CreditNote=貸方通知單
     CreditNotes=貸方通知單
    @@ -1275,6 +1287,7 @@ AdherentLoginRequired= 管理每位會員登入
     AdherentMailRequired=建立一位新會員需要電子郵件
     MemberSendInformationByMailByDefault=預設傳送電子郵件以驗證成員(驗證或新訂閲)的確認鍵是開啟的
     VisitorCanChooseItsPaymentMode=訪客可選擇適合的付款模式
    +MEMBER_REMINDER_EMAIL=Enable automatic reminder <b>by emails</b> of expired subscriptions. Note: Module <strong>%s</strong> must be enabled and correctly setup to have reminder sent.
     ##### LDAP setup #####
     LDAPSetup=LDAP 設定
     LDAPGlobalParameters=全域參數
    @@ -1343,11 +1356,11 @@ LDAPTestSynchroMemberType=測試會員類型同步
     LDAPTestSearch= 測試 LDAP 蒐尋
     LDAPSynchroOK=同步測試成功
     LDAPSynchroKO=同步測試失敗
    -LDAPSynchroKOMayBePermissions=同步測試失敗。檢查連線到伺服器的設定是否正確,並允許 LDAP 的昇級
    +LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that the connection to the server is correctly configured and allows LDAP updates
     LDAPTCPConnectOK=TCP 成功地連線到 LDAP 伺服器 ( 伺服器 = %s, 連接埠 = %s )
     LDAPTCPConnectKO=TCP 連線到 LDAP 伺服器失敗 (伺服器 = %s, 連接埠 = %s )
    -LDAPBindOK=成功地連線/驗證到 LDAP 伺服器 ( 伺服器=%s, 連線埠=%s, 管理者 =%s, 密碼=%s)
    -LDAPBindKO=連接/驗證到 LDAP 伺服器失敗 ( 伺服器=%s, 連接埠=%s, 管理者=%s, 密碼=%s)
    +LDAPBindOK=Connect/Authenticate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s)
    +LDAPBindKO=Connect/Authenticate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s)
     LDAPSetupForVersion3=第 3 版的 LDAP 伺服器設定
     LDAPSetupForVersion2=第 2 版的 LDAP 伺服器設定
     LDAPDolibarrMapping=Dolibarr 映射
    @@ -1360,8 +1373,8 @@ LDAPFieldLoginSamba=登入 (samba, activedirectory)
     LDAPFieldLoginSambaExample=例如:samaccountname
     LDAPFieldFullname=全名
     LDAPFieldFullnameExample=例如:CN
    -LDAPFieldPasswordNotCrypted=不加密的密碼
    -LDAPFieldPasswordCrypted=密碼加密的
    +LDAPFieldPasswordNotCrypted=Password not encrypted
    +LDAPFieldPasswordCrypted=Password encrypted
     LDAPFieldPasswordExample=例如:userPassword
     LDAPFieldCommonNameExample=例如:CN
     LDAPFieldName=名稱
    @@ -1386,7 +1399,7 @@ LDAPFieldTown=鄉鎮區
     LDAPFieldTownExample=例如:l
     LDAPFieldCountry=國家
     LDAPFieldDescription=描述
    -LDAPFieldDescriptionExample=例如:說明
    +LDAPFieldDescriptionExample=例如:描述
     LDAPFieldNotePublic=公開註解
     LDAPFieldNotePublicExample=例如:公開註解
     LDAPFieldGroupMembers= 群組會員
    @@ -1409,40 +1422,41 @@ LDAPDescMembersTypes=此頁面允許您在 LDAP樹狀圖中對在 Dolibarr 會
     LDAPDescValues=例如 <b>OpenLDAP</b> 的設計值是載入以下架構: <b>core.schema, cosine.schema, inetorgpersion.schema</b>)。若您使用這些值及 OpenLDAP, 修改您的 LDAP 設定檔 <b>slapd.conf</b> 這些 schemas 將全載入。
     ForANonAnonymousAccess=已驗證存取(例如在寫入的存取)
     PerfDolibarr=設定/最佳化效能報表
    -YouMayFindPerfAdviceHere=您可在此頁找到相關效能的檢查項或是建議。
    -NotInstalled=未安裝,所以您伺服器不會減少速度。
    +YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
    +NotInstalled=Not installed, so your server is not slowed down by this.
     ApplicativeCache=應用程式的快取
     MemcachedNotAvailable=沒有找到應用程式快取。你可安裝快取伺服器 Memcached 及該伺服器啟動該模組以增加效能。<br>更多的資訊在<a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>。<br>注意多數的伺服器供應商不提供類似的快取伺服器。
     MemcachedModuleAvailableButNotSetup=找到可快取模組的應用程式快取,但模組設定沒有完成。
     MemcachedAvailableAndSetup=啟用由可快取模組決定使用 memcached 伺服器
     OPCodeCache=OPCode 快取
    -NoOPCodeCacheFound=沒找到 OPCode 快取。可能您使用另外的 Xcache 或 eAccelerator (好的選擇) 取代 OPCode 快取,也可能您沒有 OPCode 快取 (很糟的選擇)。
    +NoOPCodeCacheFound=No OPCode cache found. Maybe you are using an OPCode cache other than XCache or eAccelerator (good), or maybe you don't have OPCode cache (very bad).
     HTTPCacheStaticResources=統計資源 (css, img, javascipt) 的 HTTP 快取
     FilesOfTypeCached=HTTP 伺服器已快取%s類型的檔案
     FilesOfTypeNotCached=HTTP 伺服器沒有快取%s類型的檔案
     FilesOfTypeCompressed=HTTP 伺服器已壓縮%s類型的檔案
     FilesOfTypeNotCompressed=HTTP 伺服器沒有已壓縮%s類型的檔案
     CacheByServer=伺服器的快取
    -CacheByServerDesc=例如,使用Apache指令“ExpiresByType image / gif A2592000”
    +CacheByServerDesc=For example using the Apache directive "ExpiresByType image/gif A2592000"
     CacheByClient=瀏覽器的快取
     CompressionOfResources=HTTP 壓縮的反應
    -CompressionOfResourcesDesc=例如:使用 Apache 指令 "AddOutputFilterByType DEFLATE"
    +CompressionOfResourcesDesc=For example using the Apache directive "AddOutputFilterByType DEFLATE"
     TestNotPossibleWithCurrentBrowsers=如自動針測目前的瀏覽器是不可能的
    -DefaultValuesDesc=您可以在此定義/強制建立新記錄時的預設值,以及/或者在列表清單記錄時進行過濾或排序。
    -DefaultCreateForm=預設值(在表單上建立)
    +DefaultValuesDesc=Here you can define/force the default value you want to have when you create a new record, and/or default filters or sort order when your list records.
    +DefaultCreateForm=Default values (to create on forms)
     DefaultSearchFilters=預設尋找過濾器
     DefaultSortOrder=預設排序訂單
     DefaultFocus=預設焦點欄位
    +DefaultMandatory=Mandatory form fields
     ##### Products #####
     ProductSetup=產品模組設定
     ServiceSetup=服務模組設定
     ProductServiceSetup=產品和服務模組設定
     NumberOfProductShowInSelect=在混合選擇清單明細中,最大可供選擇的產品數量(0 =沒有限制)
    -ViewProductDescInFormAbility=在表單上顯示產品描述資訊 (否則則採用彈出式訊息框方式顯示)
    +ViewProductDescInFormAbility=在表格中顯示產品描述(不然就是以彈出方式工具提示)
     MergePropalProductCard=若產品/服務在提案/建議書內,啟動產品/服務中夾檔分頁有選項可將產品 PDF 文件整合成報價/建議書/提案的 azur 式的 PDF
    -ViewProductDescInThirdpartyLanguageAbility=在合作方語言中顯示產品描述資訊
    -UseSearchToSelectProductTooltip=另外您有大量產品編號(>100,000),您可在 " 設定 -> 其他 "中設定常數 PRODUCT_DONOTSEARCH_ANYWHERE 為 1 增加速度。蒐尋則只限在字串的開頭。
    -UseSearchToSelectProduct=請按任一鍵前載入產品混合清單明細的內容(若您有大量的產品時此會增加效率,但會減少方便性)
    +ViewProductDescInThirdpartyLanguageAbility=在合作方的語言中顯示產品描述
    +UseSearchToSelectProductTooltip=Also if you have a large number of products (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
    +UseSearchToSelectProduct=Wait until you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient)
     SetDefaultBarcodeTypeProducts=產品的預設條碼類型
     SetDefaultBarcodeTypeThirdParties=給合作方使用的預設條碼類型
     UseUnits=定義在訂單、提案/建議書,或是發票版本的衡量單位
    @@ -1503,7 +1517,7 @@ SendingsSetup=出貨單模組設定
     SendingsReceiptModel=出貨單據模式
     SendingsNumberingModules=出貨單編號模組設定
     SendingsAbility=支援客戶的裝貨單
    -NoNeedForDeliveryReceipts=在多數案件中,裝貨單可當成送貨給客戶的送貨單(出貨的清單明細)及客戶收貨且簽收的簽收單。所以客戶送貨收據是有重覆功能且很少啟動的。
    +NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that are received and signed by customer. Hence the product deliveries receipt is a duplicated feature and is rarely activated.
     FreeLegalTextOnShippings=裝貨加註文字
     ##### Deliveries #####
     DeliveryOrderNumberingModules=產品交貨收據編號模組
    @@ -1515,18 +1529,18 @@ AdvancedEditor=進階編輯器
     ActivateFCKeditor=以下為進階的編輯器功能,請決定啟用或關閉:
     FCKeditorForCompany=描述及註解採用所見即所視的方式建立或編輯(不含產品及服務)
     FCKeditorForProduct=產品/服務的描述及註解採用所見即所視的方式建立或編輯
    -FCKeditorForProductDetails=針對所有項目(提案/建議書、訂單、發票等)的產品描述採用所見即所視的方式建立及編輯。<font class="warning">警告:當建立 PDF 檔案時會在特定字元或頁面格式時會產生問題,因此鄭重地不建議使用此選項。</font>
    +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). <font class="warning">Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formatting when building PDF files.</font>
     FCKeditorForMailing= 以所見即所視的建立/編輯電子郵件 ( 工具 --> 電子郵件 )
     FCKeditorForUserSignature=以所見即所視的建立/編輯用戶簽名檔
     FCKeditorForMail=以所見即所視的建立/編輯全部電子郵件( 除工具 --> 電子郵件外)
     ##### OSCommerce 1 #####
    -OSCommerceErrorConnectOkButWrongDatabase=資料庫連接成功,但資料庫不是OSCommerce的資料庫(在%s表中的關鍵值不是%s)。
    -OSCommerceTestOk=成功地使用用戶'%s'連線到伺服器'%s'上的資料庫'%s'。
    -OSCommerceTestKo1=成功地連線到伺服器'%s',但是資料庫'%s'的無法連上。
    +OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database does not appear to be an OSCommerce database (Key %s not found in table %s).
    +OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successful.
    +OSCommerceTestKo1=Connection to server '%s' succeeded but database '%s' could not be reached.
     OSCommerceTestKo2=連接到服務器'%s的與用戶'%s'的失敗。
     ##### Stock #####
     StockSetup=庫存模組設定
    -IfYouUsePointOfSaleCheckModule=若使用收銀機模組(收銀機模組預設已提供,或是額外模組),此設定可能會被收銀機模組忽略。大多數收銀機模組是預設馬上開立發票及馬上減少庫存,因此不論此處選項設定為何。所以若當在收銀機操作時,您需要或是不要減少庫存,請檢查您收銀機模組的設定。
    +IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
     ##### Menu #####
     MenuDeleted=選單中刪除
     Menus=選單
    @@ -1548,7 +1562,7 @@ DetailRight=未經批准的條件,顯示灰色菜單
     DetailLangs=長檔案名稱的標籤代碼轉換
     DetailUser=實習生/外部/所有
     Target=目標
    -DetailTarget=目標的連結(_blank top 開一新視窗)
    +DetailTarget=Target for links (_blank top opens a new window)
     DetailLevel=層級(-1:頂部選單,0:頭選單,> 0 選單和子選單)
     ModifMenu=選單上的變化
     DeleteMenu=刪除選單項
    @@ -1563,7 +1577,7 @@ OptionVatDefaultDesc=營業稅的發生時間: <br> - 交貨商品時(本系
     OptionVatDebitOptionDesc=營業稅的發生時間: <br> - 交貨商品(本系統使用發票日期)<br> - 服務部分則為發票(貸方通知單)
     OptionPaymentForProductAndServices=產品及服務的現金基礎
     OptionPaymentForProductAndServicesDesc=營業稅是由於:<br>-支付商品<br>-支付服務費用
    -SummaryOfVatExigibilityUsedByDefault=根據所選的選項預設營業稅時間:
    +SummaryOfVatExigibilityUsedByDefault=Time of VAT eligibility by default according to chosen option:
     OnDelivery=關於交貨
     OnPayment=關於付款
     OnInvoice=關於發票
    @@ -1580,36 +1594,36 @@ AccountancyCodeBuy=採購會計代號
     AgendaSetup=事件及行程模組設定
     PasswordTogetVCalExport=授權匯出連線的值
     PastDelayVCalExport=不要匯出大於~的事件
    -AGENDA_USE_EVENT_TYPE=使用事件類型(管理可到選單設定-->各式分類-->行程事件類型)
    -AGENDA_USE_EVENT_TYPE_DEFAULT=事件類型設定為自動的預設值放到建立事件表單中
    -AGENDA_DEFAULT_FILTER_TYPE=設定自動帶入事件類型到事件檢視的尋找過濾器中
    -AGENDA_DEFAULT_FILTER_STATUS=設定自動帶入事件狀況到事件檢視的尋找過濾器中
    +AGENDA_USE_EVENT_TYPE=Use events types (managed in menu Setup -> Dictionaries -> Type of agenda events)
    +AGENDA_USE_EVENT_TYPE_DEFAULT=Automatically set this default value for type of event in event create form
    +AGENDA_DEFAULT_FILTER_TYPE=Automatically set this type of event in search filter of agenda view
    +AGENDA_DEFAULT_FILTER_STATUS=Automatically set this status for events in search filter of agenda view
     AGENDA_DEFAULT_VIEW=當選定選單行事功能時預設要打開的分頁
     AGENDA_REMINDER_EMAIL=啟用<b>透過電子郵件</b>傳送事件鬧鐘(提醒選項/延遲可以在每個事件上定義)。注意:模組<strong>%s</strong>必須啟用且正確設定鬧鐘才能正確的發送。
    -AGENDA_REMINDER_BROWSER=啟用<b>在用戶瀏覽器</b>顯示事件鬧鐘(若事件日期已到期,每位用戶可以拒絕來自瀏覽器確認的問題。)
    +AGENDA_REMINDER_BROWSER=Enable event reminder <b>on user's browser</b> (when event date is reached, each user is able to refuse this from the browser confirmation question)
     AGENDA_REMINDER_BROWSER_SOUND=啟用音效警告
     AGENDA_SHOW_LINKED_OBJECT=顯示已連接物件到行程的檢視中
     ##### Clicktodial #####
     ClickToDialSetup=點擊撥號模組設定
     ClickToDialUrlDesc=當點選電話圖示時則呼叫 URL。在 URL中,你可使用標籤<br><b>__PHONETO__</b>,他可取代個人的電話號碼以撥打<br><b>__PHONEFROM__</b>,他可以取代個人的電話號碼(您自己的)<br><b>__LOGIN__</b>,他可以取代點選撥打登錄(在用戶卡中定義)<br><b>__PASS__</b>,他可以取代點選撥打密碼(在用戶卡中定義)。
    -ClickToDialDesc=此模組可以直接點選電話號碼。點選圖示會呼叫您手機撥號。這可用於call center 也就是從 Dolibarr 撥號到 SIP 系統。
    +ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example.
     ClickToDialUseTelLink=在電話號碼中使用 "tel:" 連線
    -ClickToDialUseTelLinkDesc=若用戶有智慧型手機或是在同一台電腦上已裝上軟體介面時使用此方法,則當您在瀏覽器上點選時連線到 "tel:" 進行呼叫。若您需要完整服務的解決方案(不需要安裝軟體到本機中),您必須設定為 "否" 及填寫下一欄位。
    +ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on the same computer as the browser, and called when you click on a link in your browser that starts with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field.
     ##### Point Of Sales (CashDesk) #####
     CashDesk=收銀機
     CashDeskSetup=收銀機模組設定
    -CashDeskThirdPartyForSell=在銷售時預設的合作方
    +CashDeskThirdPartyForSell=Default generic third party to use for sales
     CashDeskBankAccountForSell=預設收到合作方現金付款之帳戶
     CashDeskBankAccountForCheque= 預設收到合作方付款支票之帳戶
     CashDeskBankAccountForCB= 預設收到合作方信用卡支付之帳戶
    -CashDeskDoNotDecreaseStock=禁用當在收銀機銷售完成時滅少庫存(若為「否」,代表為不論庫存模組如何設定,當透過收銀機完成銷售後,立即減少庫存)。
    +CashDeskDoNotDecreaseStock=Disable stock decrease when a sale is done from Point of Sale (if "no", stock decrease is done for each sale done from POS, irrespective of the option set in module Stock).
     CashDeskIdWareHouse=庫存減少時強制並限制倉庫使用
    -StockDecreaseForPointOfSaleDisabled=禁用由收銀機減少庫存
    +StockDecreaseForPointOfSaleDisabled=Stock decrease from Point of Sale disabled
     StockDecreaseForPointOfSaleDisabledbyBatch=在收銀機中庫存減少與批次管理不相容
    -CashDeskYouDidNotDisableStockDecease=您不能禁用透過收銀機銷售時減少庫存。因此必需有倉庫。
    +CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sale from Point of Sale. Hence a warehouse is required.
     ##### Bookmark #####
     BookmarkSetup=書籤模組設定
    -BookmarkDesc=這個模組允許您管理書籤。您可在左側選單中以增加捷徑方式連線到 Dolibarr 任何頁面或外部網站。
    +BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or external web sites on your left menu.
     NbOfBoomarkToShow=在左側選單中顯示最大數量的書籤
     ##### WebServices #####
     WebServicesSetup=網站伺服器模組設定
    @@ -1637,7 +1651,7 @@ ChequeReceiptsNumberingModule=檢查收據編號模組
     MultiCompanySetup=多公司模組設定
     ##### Suppliers #####
     SuppliersSetup=供應商模組設定
    -SuppliersCommandModel=採購訂單的完整範本 (標誌...)
    +SuppliersCommandModel=Complete template of purchase order (logo...)
     SuppliersInvoiceModel=供應商發票的完整範本(logo. ...)
     SuppliersInvoiceNumberingModel=供應商發票編號模組
     IfSetToYesDontForgetPermission=若設定為「是的」,則別忘了提供群組或用戶允許第二次批准的權限
    @@ -1649,12 +1663,12 @@ YouCanDownloadFreeDatFileTo=你可以下載一個在%s Maxmind GeoIP 國家 檔
     YouCanDownloadAdvancedDatFileTo=您也可以在%s下載更<b>新的完整版本</b>的 Maxmind GeoIP 國家檔案
     TestGeoIPResult=IP - > 國家轉換的測試
     ##### Projects #####
    -ProjectsNumberingModules=專案編號模組
    +ProjectsNumberingModules=各專案編號模組
     ProjectsSetup=專案模組設定
     ProjectsModelModule=專案的報告文件模式
     TasksNumberingModules=任務編號模組
     TaskModelModule=任務報告文件模式
    -UseSearchToSelectProject=在載入專案組合列表的內容之前,等您按下任一個鍵 ( 若您有大量專案,這可能會提高效能,但它不太方便 )
    +UseSearchToSelectProject=等到按下某個鍵後再載入專案組合列表的內容。<br>如果你有很大量的專案時,此可改善效能,但不方便。
     ##### ECM (GED) #####
     ##### Fiscal Year #####
     AccountingPeriods=會計期間
    @@ -1687,7 +1701,7 @@ YouMayFindNotificationsFeaturesIntoModuleNotification=您可在啟用電子郵
     ListOfNotificationsPerUser=每位用戶* 的通知明細表
     ListOfNotificationsPerUserOrContact=每位用戶* 或每位連絡人** 的通知明細表
     ListOfFixedNotifications=固定通知的明細表
    -GoOntoUserCardToAddMore=到用戶的 "通知" 分頁增加或刪除用戶的通知
    +GoOntoUserCardToAddMore=Go to the tab "Notifications" of a user to add or remove notifications for users
     GoOntoContactCardToAddMore=移到合作方的「通知」分頁以便針對通訊錄/地址等增加或移除通知
     Threshold=Threshold
     BackupDumpWizard=構建資料庫備份轉儲檔案的精靈
    @@ -1697,6 +1711,7 @@ InstallModuleFromWebHasBeenDisabledByFile=您的管理塤 已禁用從應用程
     ConfFileMustContainCustom=從應用程式安裝或綁定外部模組需要儲存模組檔案到資料夾<strong>%s</strong>。為由 Dolibarr 擁有此資料夾的處理權,您必須在<strong>conf/conf.php</strong>中新增兩行指令:<br><strong>$dolibarr_main_url_root_alt='/custom';</strong><br><strong>$dolibarr_main_document_root_alt='%s/custom';</strong>
     HighlightLinesOnMouseHover=滑鼠移過時會顯示表格線
     HighlightLinesColor=滑鼠移過時顯示線條的顏色(保持為空白不顯示)
    +HighlightLinesChecked=Highlight color of the line when it is checked (keep empty for no highlight)
     TextTitleColor=頁面標題的文字顏色
     LinkColor=連線的顏色
     PressF5AfterChangingThis=在鍵盤上按 CTRL+F5 或變更此值後清除您的瀏覽器的快取以使其生效
    @@ -1712,16 +1727,16 @@ BackgroundTableLineEvenColor=表單偶數行的背景顏色
     MinimumNoticePeriod=最短通知期限(您的請假必須在前完成)
     NbAddedAutomatically=每月(自動)新增到用戶計數器的天數
     EnterAnyCode=此欄包含定義的參考值。您輸入除特定字元外的任何值。
    -UnicodeCurrency=在括號之間輸入代表貨幣符號的字元數列表。例如: $,輸入 [36] - 巴西 R$ [82,36] - €,輸入 [8364]
    +UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For example: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364]
     ColorFormat=在 HEX 格式中 RGB 顏色,例如: FF0000
     PositionIntoComboList=行的位置放到組合清單中
     SellTaxRate=銷貨稅率
     RecuperableOnly=在法國某些州增值稅是 “Not Perceived but Recoverable”。 在其他情況下,則將該值保持為“否”。
     UrlTrackingDesc=若提供者或運輸服務提供頁面或網站以便確認您的運送,您可在此輸入。您可使用 {TRACKID}值放到 URL 參數中,因此系統將會用戶輸入的追踪碼取代此值放到裝貨單中。
    -OpportunityPercent=當您建立一個機會時,您也要評估專案/潛在的金額 。根據機會的狀況,此金額可能是估計全球金額乘上您的機會所產生的。該值是百分比表示(介於 0 ~ 100)
    +OpportunityPercent=When you create a lead, you will define an estimated amount of project/lead. According to status of lead, this amount may be multiplied by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
     TemplateForElement=這個範本記錄專用於哪個元件
     TypeOfTemplate=範本類型
    -TemplateIsVisibleByOwnerOnly=只有擁有者才可看到範本
    +TemplateIsVisibleByOwnerOnly=Template is visible to owner only
     VisibleEverywhere=到處可見
     VisibleNowhere=現在可看見
     FixTZ=修正時區
    @@ -1741,16 +1756,16 @@ MailToSendContract=Contracts
     MailToThirdparty=合作方
     MailToMember= 會員
     MailToUser=Users
    -MailToProject=專案頁面
    +MailToProject=各專案頁面
     ByDefaultInList=以預設方式顯示檢視明細表
     YouUseLastStableVersion=您可使用最新穩定版本
     TitleExampleForMajorRelease=您可用公佈的主要發行版本做為訊息的例子(隨時可在您網站上使用它)
     TitleExampleForMaintenanceRelease=您可用公佈的維護版本做為訊息的例子(隨時可在您網站上使用它)
     ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s 可以使用。%s 的版本對用戶及開發者是擁有許多新功能的主要發行。您可從 https://www.dolibarr.org portal 下載區 (是穩定版本的子資料夾) 下載。您可讀取 <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog"> ChangeLog </a> 有完整變動明細表。
    -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s 可以使用。 %s 的版本是維護版本,所以僅修復程式臭蟲。我們建議使用舊版人們昇級到此。當任何維護發行時沒有新功能,也沒有資料結構變更到此版本。您可從 https://www.dolibarr.org portal 下載區 (是穩定版本的子資料夾) 下載。您可讀取 <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> 有完整變動明細表。
    -MultiPriceRuleDesc=當啟用 "每個產品/服務有數個價格" 時,您針對不同產品定義不同價格(每個價格水準)。為節省您的時間,您可輸入根據第一層的價格水準而自動計算的每一層價格水準,所以只要每個產品中輸入第一層的價格即可。此頁面適用於節省您的時間及每一層的價格是相對於第一層的價格。在多數情況您可忽略此頁面。
    +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features or data structure change is present in this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read <a href="https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog">ChangeLog</a> for complete list of changes.
    +MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, here you can enter a rule to have a price for each level autocalculated according to the price of first level, so you will have to only enter a price for the first level on each product. This page is here to save you time and can be useful only if your prices for each level are relative to first level. You can ignore this page in most cases.
     ModelModulesProduct=產品文件的範本
    -ToGenerateCodeDefineAutomaticRuleFirst=為能自動地產生代號,您必須先定義管理自動定義的條碼數字。
    +ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate codes automatically, you must first define a manager to auto define barcode number.
     SeeSubstitutionVars=請參閱 * 註釋以取得可能的替代變數名單
     SeeChangeLog=查看變更日誌檔案(限英文版)
     AllPublishers=全部發佈者
    @@ -1771,33 +1786,69 @@ AddOtherPagesOrServices=增加其他頁面或服務
     AddModels=新增文件檔或編號的範例檔
     AddSubstitutions=新增替換值
     DetectionNotPossible=不可能檢測
    -UrlToGetKeyToUseAPIs=使用 API 取得 URL (一旦收到就會儲存在資料庫用戶表中,並且必須在每次 API 呼叫中提供)
    +UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved in database user table and must be provided on each API call)
     ListOfAvailableAPIs=可用 APIs 的明細表
    -activateModuleDependNotSatisfied=模組 "%s" 相依於模組 "%s" 已遺失,所以模組 "%1$s" 可能無法正確運作。如果你想避免任何安全意外,請安裝模組 "%2$s" 或是禁用模組 "%1$s"
    -CommandIsNotInsideAllowedCommands=您試著執行的命令不是內部可執行的已定義到參數的指令<strong>$dolibarr_main_restrict_os_commands</strong>到<strong>conf.php</strong>檔案。
    +activateModuleDependNotSatisfied=Module "%s" depends on module "%s", that is missing, so module "%1$s" may not work correctly. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
    +CommandIsNotInsideAllowedCommands=The command you are trying to run is not in the list of allowed commands defined in parameter <strong>$dolibarr_main_restrict_os_commands</strong> in the <strong>conf.php</strong> file.
     LandingPage=登入頁面
    -SamePriceAlsoForSharedCompanies=當您使用多公司模組中選擇 “單一價格” 時,若產品為共享環境時,則所有公司的價格也將相同。
    +SamePriceAlsoForSharedCompanies=若你使用公司模組時選擇"單一價格"時,且共用產品時,所有公司的價格也都會一樣。
     ModuleEnabledAdminMustCheckRights=模組已被啟動。 已啟動模組的權限僅限管理員用戶。 若必要,您可能需要人工方式開授予權限給其他用戶或群組。
    -UserHasNoPermissions=此用戶沒有權限
    -TypeCdr=使用 "無" 若付款日期條件是發票日期加上增量天 (增量是 "幾天" )<br>使用 "月底",則在增量天後,日期必須是到月底 ( + 為可偏移的天數) <br>使用 "目前/下次" 則將付款條件日期定為當月的第一個 N 天 ( N 是指 "天數" )
    +UserHasNoPermissions=This user has no permissions defined
    +TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "%s")<br>Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "%s" in days)<br>Use "Current/Next" to have payment term date being the first Nth of the month after delta (delta is field "%s", N is stored into field "%s")
     BaseCurrency=參考的公司貨幣 (可到公司設定去變更)
    -WarningNoteModuleInvoiceForFrenchLaw=模組 %s 是符合法國法律(Loi Finance 2016)
    -WarningNoteModulePOSForFrenchLaw=該模組 %s 符合法國法律 (Loi Finance 2016),因為模組 Non Reversible Logs 會自動啟動。
    -WarningInstallationMayBecomeNotCompliantWithLaw=您試著安裝模組 %s 此模組來自外部。啟動外部模組代表您信任模組的發佈者及您確定此模組不會對您的應用程序的行為產生負面影響,並且符合您所在國家/地區的法律(%s)。若此模組帶來不合法功能,您要負起使用不合法軟體的責任。
    +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016).
    +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with French laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated.
    +WarningInstallationMayBecomeNotCompliantWithLaw=You are trying to install module %s that is an external module. Activating an external module means you trust the publisher of that module and that you are sure that this module does not adversely impact the behavior of your application, and is compliant with laws of your country (%s). If the module introduces an illegal feature, you become responsible for the use of illegal software.
     MAIN_PDF_MARGIN_LEFT=在 PDF 的左邊邊界
     MAIN_PDF_MARGIN_RIGHT=在 PDF 的右邊邊界
     MAIN_PDF_MARGIN_TOP=在 PDF 的上面邊界
     MAIN_PDF_MARGIN_BOTTOM=在 PDF 下面邊界
    +NothingToSetup=There is no specific setup to do for this module.
     SetToYesIfGroupIsComputationOfOtherGroups=若該群組是其他群組的計算值,則將其設定為 yes
    -EnterCalculationRuleIfPreviousFieldIsYes=若先前欄位設為“是”,則輸入計算規則(例如 'CODEGRP1 + CODEGRP2')
    +EnterCalculationRuleIfPreviousFieldIsYes=Enter calculation rule if previous field was set to Yes (For example 'CODEGRP1+CODEGRP2')
     SeveralLangugeVariatFound=發現數個語言變數
     COMPANY_AQUARIUM_REMOVE_SPECIAL=刪除特殊字元
     COMPANY_AQUARIUM_CLEAN_REGEX=正則表達式過濾器來清理價值 (COMPANY_AQUARIUM_CLEAN_REGEX)
    -GDPRContact=GDPR 連絡人
    -GDPRContactDesc=若您儲存有關歐洲的公司或公民的資料時,您可以在這裡儲存負責“一般資料保護條例”的連絡人
    +GDPRContact=Data Protection Officer (DPO, Data Privacy or GDPR contact)
    +GDPRContactDesc=If you store data about European companies/citizen, you can store the contact who is responsible for the General Data Protection Regulation here
    +HelpOnTooltip=Help text to show on tooltip
    +HelpOnTooltipDesc=Put text or a translation key here for the text to show on a tooltip when this field appears in a form
    +YouCanDeleteFileOnServerWith=您可以用命令列的方式在伺服器上刪除此檔案:<br>%s
    +ChartLoaded=載入會計項目表
    +SocialNetworkSetup=設定社交網路模組
    +EnableFeatureFor=針對 <strong>%s</strong> 啓用功能
    +VATIsUsedIsOff=Note: The option to use sales Tax or VAT has been set to <strong>Off</strong> in the menu %s - %s, so Sale tax or Vat used will always be 0 for sales.
    +SwapSenderAndRecipientOnPDF=Swap sender and recipient address on PDF
    +FeatureSupportedOnTextFieldsOnly=Warning, feature supported on text fields only
    +EmailCollector=Email collector
    +EmailCollectorDescription=Add a scheduled job and a setup page to scan regularly email boxes (using IMAP protocol) and record emails received into your application, at the right place and/or create some record automatically (like leads).
    +NewEmailCollector=New Email Collector
    +EMailHost=Host of email IMAP server
    +MailboxSourceDirectory=Mailbox source directory
    +MailboxTargetDirectory=Mailbox target directory
    +EmailcollectorOperations=Operations to do by collector
    +CollectNow=Collect now
    +DateLastResult=Date last collect
    +LastResult=Last result
    +EmailCollectorConfirmCollectTitle=Email collect confirmation
    +EmailCollectorConfirmCollect=Do you want to run the collect for this collector now ?
    +NoNewEmailToProcess=No new email (matching filters) to process
    +NothingProcessed=Nothing done
    +XEmailsDoneYActionsDone=%s emails qualified, %s emails successfuly processed (for %s record/actions done) by collector
    +RecordEvent=Record email event
    +CreateLeadAndThirdParty=Create lead (and thirdparty if necessary)
    +CodeLastResult=Result code of last collect
    +NbOfEmailsInInbox=Number of email in source directory
    +LoadThirdPartyFromName=Load thirdparty from name (load only)
    +LoadThirdPartyFromNameOrCreate=Load thirdparty from name (create if not found)
    +WithDolTrackingID=Dolibarr Tracking ID found
    +WithoutDolTrackingID=Dolibarr Tracking ID not found
    +FormatZip=郵遞區號
     ##### Resource ####
     ResourceSetup=du 模組資源的偏好設定
     UseSearchToSelectResource=使用尋找表單選取資源 (下拉式清單)
     DisabledResourceLinkUser=禁用資源連線到用戶的功能
     DisabledResourceLinkContact=禁用資源連線到通訊錄的功能
     ConfirmUnactivation=確認模組重設
    +OnMobileOnly=只在小螢幕(智慧型手機)
    +DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
    diff --git a/htdocs/langs/zh_TW/banks.lang b/htdocs/langs/zh_TW/banks.lang
    index 08f9263f6cb..56076960df8 100644
    --- a/htdocs/langs/zh_TW/banks.lang
    +++ b/htdocs/langs/zh_TW/banks.lang
    @@ -1,24 +1,24 @@
     # Dolibarr language file - Source file is en_US - banks
     Bank=銀行
    -MenuBankCash=Bank | Cash
    +MenuBankCash=銀行 | 現金
     MenuVariousPayment=雜項付款
     MenuNewVariousPayment=新的雜項付款
     BankName=銀行名稱
     FinancialAccount=帳戶
     BankAccount=銀行帳戶
     BankAccounts=各式銀行帳戶
    -BankAccountsAndGateways=Bank accounts | Gateways
    +BankAccountsAndGateways=銀行 | 入口
     ShowAccount=顯示金額
     AccountRef=金融帳戶參考值
    -AccountLabel=金融帳戶標簽
    +AccountLabel=金融帳戶標籤
     CashAccount=現金帳戶
     CashAccounts=各式現金帳戶
     CurrentAccounts=目前各式帳戶
     SavingAccounts=各式儲蓄帳戶
    -ErrorBankLabelAlreadyExists=金融帳戶標簽已存在
    +ErrorBankLabelAlreadyExists=金融帳戶標籤已存在
     BankBalance=餘額
    -BankBalanceBefore=Balance before
    -BankBalanceAfter=Balance after
    +BankBalanceBefore=餘額前
    +BankBalanceAfter=餘額後
     BalanceMinimalAllowed=允許的最小餘額
     BalanceMinimalDesired=所需的最少餘額
     InitialBankBalance=期初餘額
    @@ -31,10 +31,10 @@ Reconciliation=調節
     RIB=銀行帳戶的號碼
     IBAN=IBAN 號碼
     BIC=BIC/SWIFT 的號碼
    -SwiftValid=BIC/SWIFT valid
    -SwiftVNotalid=BIC/SWIFT not valid
    -IbanValid=BAN valid
    -IbanNotValid=BAN not valid
    +SwiftValid=BIC/SWIFT 有效
    +SwiftVNotalid=BIC/SWIFT 無效
    +IbanValid=BAN 有效
    +IbanNotValid=BAN 無效
     StandingOrders=Direct Debit orders
     StandingOrder=Direct debit order
     AccountStatement=帳戶報表
    @@ -46,7 +46,7 @@ BankAccountDomiciliation=帳戶地址
     BankAccountCountry=帳戶的國家
     BankAccountOwner=帳戶持有人姓名
     BankAccountOwnerAddress=帳戶持有人地址
    -RIBControlError=值的完整性檢查失敗。這意味著此帳戶的資訊不完整或錯誤(檢查國家,號碼和IBAN)。
    +RIBControlError=Integrity check of values fails. This means the information for this account number is incomplete or incorrect (check country, numbers and IBAN).
     CreateAccount=建立帳戶
     NewBankAccount=新帳戶
     NewFinancialAccount=新的金融帳戶
    @@ -72,39 +72,40 @@ BankTransactions=銀行分錄
     BankTransaction=銀行項目
     ListTransactions=分錄明細表
     ListTransactionsByCategory=分錄/類別明細表
    -TransactionsToConciliate=調整分錄
    +TransactionsToConciliate=要調節的分錄
     Conciliable=可以調節的
    -Conciliate=調節
    +Conciliate=要調節
     Conciliation=調節
    -ReconciliationLate=Reconciliation late
    +SaveStatementOnly=只儲存報表
    +ReconciliationLate=稍後調節
     IncludeClosedAccount=包括已結束帳戶
     OnlyOpenedAccount=僅開放的各式帳戶
    -AccountToCredit=帳戶信用
    -AccountToDebit=帳戶轉帳
    +AccountToCredit=要貸方的帳戶
    +AccountToDebit=要借方的帳戶
     DisableConciliation=此帳戶禁用調節功能
     ConciliationDisabled=調節功能禁用
    -LinkedToAConciliatedTransaction=Linked to a conciliated entry
    +LinkedToAConciliatedTransaction=連結到調節項目
     StatusAccountOpened=開放
     StatusAccountClosed=已結束
     AccountIdShort=數字
     LineRecord=交易
     AddBankRecord=新增一項
     AddBankRecordLong=人工方式新增一項
    -Conciliated=Reconciled
    +Conciliated=已調節
     ConciliatedBy=由調節
     DateConciliating=調節日期
     BankLineConciliated=項目已調節
    -Reconciled=Reconciled
    -NotReconciled=Not reconciled
    +Reconciled=已調節
    +NotReconciled=未調節
     CustomerInvoicePayment=客戶付款
     SupplierInvoicePayment=供應商付款
    -SubscriptionPayment=認購款項
    +SubscriptionPayment=訂閱付款
     WithdrawalPayment=提款支付
     SocialContributionPayment=社會/財務稅負繳款單
     BankTransfer=銀行轉帳
     BankTransfers=銀行轉帳
    -MenuBankInternalTransfer=Internal transfer
    -TransferDesc=從某帳戶轉到另一帳戶,Dolibarr會寫成兩筆(在來源帳戶的貸方及目的地帳戶的借方。此交易將使用相同金額、標籤及日期)
    +MenuBankInternalTransfer=內部轉帳
    +TransferDesc=從某一帳戶轉到另一帳戶時,Dolibarr 會寫成成兩筆記錄(來源帳戶是貸方,目標帳戶是借方)。此交易有相同金額、標籤、日期。
     TransferFrom=從
     TransferTo=至
     TransferFromToDone=從<b>%s</b>到<b>%s</b>的<b>%s</b>%s轉帳已記錄。
    @@ -116,7 +117,7 @@ ConfirmDeleteCheckReceipt=您確認定您要刪除此張支票收據?
     BankChecks=銀行支票
     BankChecksToReceipt=託收票據
     ShowCheckReceipt=顯示支票入存收據
    -NumberOfCheques=檢查數量
    +NumberOfCheques=票據號碼
     DeleteTransaction=刪除項目
     ConfirmDeleteTransaction=您確定要刪除此筆項目
     ThisWillAlsoDeleteBankRecord=也會刪除產生的銀行項目
    @@ -124,7 +125,7 @@ BankMovements=移動
     PlannedTransactions=已安排的項目
     Graph=圖像
     ExportDataset_banque_1=銀行項目及會計項目描述
    -ExportDataset_banque_2=Deposit slip
    +ExportDataset_banque_2=存款單
     TransactionOnTheOtherAccount=在其他帳戶的交易
     PaymentNumberUpdateSucceeded=付款號碼更新成功
     PaymentNumberUpdateFailed=付款號碼無法更新
    @@ -132,11 +133,11 @@ PaymentDateUpdateSucceeded=付款日期更新成功
     PaymentDateUpdateFailed=付款日期可能無法更新
     Transactions=交易
     BankTransactionLine=銀行項目
    -AllAccounts=All bank and cash accounts
    +AllAccounts=所有銀行及現金帳戶
     BackToAccount=回到帳戶
     ShowAllAccounts=顯示所有帳戶
    -FutureTransaction=未來的交易。沒有其他方式調節。
    -SelectChequeTransactionAndGenerate="選擇/篩選器"檢查包含支票存款收據並點擊“建立”。
    +FutureTransaction=未來的交易。不可調節。
    +SelectChequeTransactionAndGenerate="選擇/篩選器"支票包含在支票存款的收據並點擊“建立”。
     InputReceiptNumber=選擇要調節的銀行對帳單。使用可排序的數值: YYYYMM 或 YYYYMMDD
     EventualyAddCategory=Eventually, specify a category in which to classify the records
     ToConciliate=調節嗎?
    @@ -153,7 +154,7 @@ RejectCheckDate=Date the check was returned
     CheckRejected=Check returned
     CheckRejectedAndInvoicesReopened=Check returned and invoices reopened
     BankAccountModelModule=Document templates for bank accounts
    -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
    +DocumentModelSepaMandate=Template of SEPA mandate. Useful for European countries in EEC only.
     DocumentModelBan=Template to print a page with BAN information.
     NewVariousPayment=新的雜項付款
     VariousPayment=雜項付款
    @@ -162,4 +163,5 @@ ShowVariousPayment=顯示雜項付款
     AddVariousPayment=新增雜項付款
     SEPAMandate=SEPA mandate
     YourSEPAMandate=Your SEPA mandate
    -FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
    +FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Return it signed (scan of the signed document) or send it by mail to
    +AutoReportLastAccountStatement=Automaticaly fill the field 'numero of bank statement' with last statement numero when making reconciliation
    diff --git a/htdocs/langs/zh_TW/bills.lang b/htdocs/langs/zh_TW/bills.lang
    index 18341a60767..0f9294bbede 100644
    --- a/htdocs/langs/zh_TW/bills.lang
    +++ b/htdocs/langs/zh_TW/bills.lang
    @@ -13,22 +13,22 @@ BillsStatistics=客戶發票統計
     BillsStatisticsSuppliers=供應商發票統計
     DisabledBecauseDispatchedInBookkeeping=Disabled because invoice was dispatched into bookkeeping
     DisabledBecauseNotLastInvoice=Disabled because invoice is not erasable. Some invoices were recorded after this one and it will create holes in the counter.
    -DisabledBecauseNotErasable=Disabled because cannot be erased
    +DisabledBecauseNotErasable=因為不能刪除所以禁用
     InvoiceStandard=標準發票
     InvoiceStandardAsk=標準發票
     InvoiceStandardDesc=這是一種常見的發票。
    -InvoiceDeposit=Down payment invoice
    -InvoiceDepositAsk=Down payment invoice
    -InvoiceDepositDesc=This kind of invoice is done when a down payment has been received.
    +InvoiceDeposit=訂金發票
    +InvoiceDepositAsk=訂金發票
    +InvoiceDepositDesc=當有訂金時這類發票就已完成。
     InvoiceProForma=形式發票
     InvoiceProFormaAsk=形式發票
     InvoiceProFormaDesc=<b>形式發票</b>是發票的形象,但沒有真實的會計價值。
     InvoiceReplacement=更換發票
     InvoiceReplacementAsk=更換發票的發票
    -InvoiceReplacementDesc=<b>更換發票</b>僅用於取消或代替未付款項但已收貨的發票\n<br><br>注意:僅有未付款發票才可被更換。若被更換發票尚未被關閉,系統將自動'放棄'此發票。
    +InvoiceReplacementDesc=<b>Replacement invoice</b> is used to cancel and completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
     InvoiceAvoir=貸方通知單
     InvoiceAvoirAsk=貸方通知單到正確發票
    -InvoiceAvoirDesc=<b>貸方通知單</b>是一種負數發票,用來解決發票金額不同於實際支付之事實(範例:因為客戶因錯誤支付,或是他退回某些產品而不支付)。
    +InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice has an amount that differs from the amount really paid (eg customer paid too much by mistake, or will not pay completely since he returned some products).
     invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
     invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice
     invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount
    @@ -66,12 +66,12 @@ paymentInInvoiceCurrency=in invoices currency
     PaidBack=返回款項
     DeletePayment=刪除付款
     ConfirmDeletePayment=Are you sure you want to delete this payment?
    -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
    +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
    +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?<br>The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this supplier.
     SupplierPayments=已收到的供應商付款單據清單
     ReceivedPayments=收到的付款
     ReceivedCustomersPayments=已收到的客戶付款單據清單
    -PayedSuppliersPayments=Payments payed to suppliers
    +PayedSuppliersPayments=Payments paid to suppliers
     ReceivedCustomersPaymentsToValid=待驗證的客戶已付款單據
     PaymentsReportsForYear=報告s為%付款
     PaymentsReports=收支報告
    @@ -91,8 +91,8 @@ PaymentConditionsShort=付款條件
     PaymentAmount=付款金額
     ValidatePayment=驗證付款
     PaymentHigherThanReminderToPay=付款支付更高的比提醒
    -HelpPaymentHigherThanReminderToPay=註意,一個或更多的票據付款金額比其他支付更高。 <br>編輯您的進入,否則確認並考慮建立一個每個多繳發票收到超出信用註記。
    -HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay. <br> Edit your entry, otherwise confirm and think about creating a credit note of the excess paid for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPay=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess received for each overpaid invoice.
    +HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the outstanding amount to pay. <br> Edit your entry, otherwise confirm and consider creating a credit note for the excess paid for each overpaid invoice.
     ClassifyPaid=分類'有償'
     ClassifyPaidPartially=分類薪部分'
     ClassifyCanceled=分類'已放棄'
    @@ -131,7 +131,8 @@ BillStatusClosedUnpaid=關閉(無薪)
     BillStatusClosedPaidPartially=支付(部分)
     BillShortStatusDraft=草案
     BillShortStatusPaid=支付
    -BillShortStatusPaidBackOrConverted=Refund or converted
    +BillShortStatusPaidBackOrConverted=Refunded or converted
    +Refunded=Refunded
     BillShortStatusConverted=已支付
     BillShortStatusCanceled=已放棄
     BillShortStatusValidated=驗證
    @@ -141,16 +142,16 @@ BillShortStatusNotRefunded=Not refunded
     BillShortStatusClosedUnpaid=關閉
     BillShortStatusClosedPaidPartially=支付(部分)
     PaymentStatusToValidShort=為了驗證
    -ErrorVATIntraNotConfigured=Intracommunautary增值稅數目尚未確定
    +ErrorVATIntraNotConfigured=Intra-Community VAT number not yet defined
     ErrorNoPaiementModeConfigured=沒有默認的支付方式定義。前往發票模塊設置,以解決這個問題。
     ErrorCreateBankAccount=創建一個銀行帳戶,然後到安裝發票模塊小組,確定付款方式
     ErrorBillNotFound=發票%s不存在
    -ErrorInvoiceAlreadyReplaced=錯誤,您嘗試驗證發票發票%,以取代第但是,這一條已改為%s的發票
    +ErrorInvoiceAlreadyReplaced=Error, you tried to validate an invoice to replace invoice %s. But this one has already been replaced by invoice %s.
     ErrorDiscountAlreadyUsed=錯誤,已經使用優惠
     ErrorInvoiceAvoirMustBeNegative=錯誤的,正確的發票必須有一個負數
     ErrorInvoiceOfThisTypeMustBePositive=錯誤,這種類型的發票必須有一個正數
     ErrorCantCancelIfReplacementInvoiceNotValidated=錯誤,無法取消一個已經被另一個發票仍處於草案狀態取代發票
    -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed.
    +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount series cannot be removed.
     BillFrom=From
     BillTo=Bill To
     ActionsOnBill=行動對發票
    @@ -179,20 +180,20 @@ ConfirmClassifyPaidBill=Are you sure you want to change invoice <b>%s</b> to sta
     ConfirmCancelBill=Are you sure you want to cancel invoice <b>%s</b>?
     ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'?
     ConfirmClassifyPaidPartially=Are you sure you want to change invoice <b>%s</b> to status paid?
    -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice?
    -ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularise the VAT with a credit note.
    +ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What is the reason/s for you closing this invoice?
    +ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I regularize the VAT with a credit note.
     ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term.
     ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I accept to lose the VAT on this discount.
     ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid <b>(%s %s)</b> is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note.
     ConfirmClassifyPaidPartiallyReasonBadCustomer=壞顧客
     ConfirmClassifyPaidPartiallyReasonProductReturned=產品部分退貨
     ConfirmClassifyPaidPartiallyReasonOther=其他原因而放棄金額
    -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=這個選擇是可能的,如果您的發票已提供適當的評論。 (例«只有相應的稅收已實際支付給權利扣除價格»)
    -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=在一些國家,這種選擇是可能的,如果您的發票上只包含正確的說明。
    +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=This choice is possible if your invoice has been provided with suitable comments. (Example «Only the tax corresponding to the price that has been actually paid gives rights to deduction»)
    +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=In some countries, this choice might be possible only if your invoice contains correct notes.
     ConfirmClassifyPaidPartiallyReasonAvoirDesc=使用這個選擇,如果所有其他不適合
    -ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=<b>糟糕的客戶</b>是一個客戶,拒絕支付他的債務。
    +ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=A <b>bad customer</b> is a customer that refuses to pay his debt.
     ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=這個選擇是付款時使用的是不完整的,因為一些產品被退回
    -ConfirmClassifyPaidPartiallyReasonOtherDesc=使用這個選擇,如果所有其他不適合,例如,在以下情況: <br> - 付款不完整,因為有些產品被運回<br> - 索賠額太重要了,因為忘記了一個折扣<br>在所有情況下,金額逾自稱必須在會計系統通過建立一個信用更正說明。
    +ConfirmClassifyPaidPartiallyReasonOtherDesc=Use this choice if all others are not suitable, for example in following situation:<br>- payment not complete because some products were shipped back<br>- amount claimed too important because a discount was forgotten<br>In all cases, amount over-claimed must be corrected in accountancy system by creating a credit note.
     ConfirmClassifyAbandonReasonOther=其他
     ConfirmClassifyAbandonReasonOtherDesc=這一選擇將用於所有的其他情形。例如,因為你要創建一個替代發票。
     ConfirmCustomerPayment=Do you confirm this payment input for <b>%s</b> %s?
    @@ -200,9 +201,10 @@ ConfirmSupplierPayment=Do you confirm this payment input for <b>%s</b> %s?
     ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated.
     ValidateBill=驗證發票
     UnvalidateBill=未驗證發票
    -NumberOfBills=發票數
    -NumberOfBillsByMonth=每月發票(invoice)數
    +NumberOfBills=No. of invoices
    +NumberOfBillsByMonth=No. of invoices per month
     AmountOfBills=發票金額
    +AmountOfBillsHT=Amount of invoices (net of tax)
     AmountOfBillsByMonthHT=每月發票(invoice)金額(稅後)
     ShowSocialContribution=Show social/fiscal tax
     ShowBill=顯示發票
    @@ -260,9 +262,9 @@ Repeatables=Templates
     ChangeIntoRepeatableInvoice=Convert into template invoice
     CreateRepeatableInvoice=Create template invoice
     CreateFromRepeatableInvoice=Create from template invoice
    -CustomersInvoicesAndInvoiceLines=客戶發票和發票的路線
    +CustomersInvoicesAndInvoiceLines=Customer invoices and invoice details
     CustomersInvoicesAndPayments=客戶發票和付款
    -ExportDataset_invoice_1=客戶發票清單和發票的路線
    +ExportDataset_invoice_1=Customer invoices and invoice details
     ExportDataset_invoice_2=客戶發票和付款
     ProformaBill=備考條例草案:
     Reduction=減少
    @@ -302,9 +304,9 @@ DiscountAlreadyCounted=Discounts or credits already consumed
     CustomerDiscounts=Customer discounts
     SupplierDiscounts=Vendors discounts
     BillAddress=條例草案的報告
    -HelpEscompte=這是給予客戶優惠折扣,因為它的任期作出之前付款。
    -HelpAbandonBadCustomer=此金額已放棄(客戶說是一個壞的客戶),並作為一個特殊的松散考慮。
    -HelpAbandonOther=這一數額已被放棄,因為這是一個錯誤(錯誤的顧客或由其他替代例如發票)
    +HelpEscompte=This discount is a discount granted to customer because payment was made before term.
    +HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loss.
    +HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by another for example)
     IdSocialContribution=Social/fiscal tax payment id
     PaymentId=付款編號
     PaymentRef=Payment ref.
    @@ -321,22 +323,22 @@ InvoiceNotChecked=選擇無發票
     CloneInvoice=克隆發票
     ConfirmCloneInvoice=Are you sure you want to clone this invoice <b>%s</b>?
     DisabledBecauseReplacedInvoice=行動禁用,因為發票已被取代
    -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here.
    -NbOfPayments=鈮付款
    +DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only records with payment during the fixed year are included here.
    +NbOfPayments=No. of payments
     SplitDiscount=斯普利特折扣2
    -ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 lower discounts?
    -TypeAmountOfEachNewDiscount=輸入金額為每兩部分:
    -TotalOfTwoDiscountMustEqualsOriginal=兩個新的折扣總額必須等於原來折扣金額。
    +ConfirmSplitDiscount=Are you sure you want to split this discount of <b>%s</b> %s into 2 smaller discounts?
    +TypeAmountOfEachNewDiscount=Input amount for each of two parts:
    +TotalOfTwoDiscountMustEqualsOriginal=Total of two new discounts must be equal to original discount amount.
     ConfirmRemoveDiscount=Are you sure you want to remove this discount?
     RelatedBill=相關發票
     RelatedBills=有關發票
     RelatedCustomerInvoices=Related customer invoices
     RelatedSupplierInvoices=Related supplier invoices
     LatestRelatedBill=Latest related invoice
    -WarningBillExist=Warning, one or more invoice already exist
    +WarningBillExist=Warning, one or more invoices already exist
     MergingPDFTool=Merging PDF tool
     AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
    -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company
    +PaymentOnDifferentThirdBills=Allow payments on different third parties bills but same parent company
     PaymentNote=Payment note
     ListOfPreviousSituationInvoices=List of previous situation invoices
     ListOfNextSituationInvoices=List of next situation invoices
    @@ -408,19 +410,19 @@ PaymentTypeCHQ=支票
     PaymentTypeShortCHQ=支票
     PaymentTypeTIP=TIP (Documents against Payment)
     PaymentTypeShortTIP=TIP Payment
    -PaymentTypeVAD=在線支付
    -PaymentTypeShortVAD=在線支付
    +PaymentTypeVAD=Online payment
    +PaymentTypeShortVAD=Online payment
     PaymentTypeTRA=Bank draft
     PaymentTypeShortTRA=草案
     PaymentTypeFAC=Factor
     PaymentTypeShortFAC=Factor
     BankDetails=銀行的詳細資料
     BankCode=銀行代碼
    -DeskCode=臺代碼
    +DeskCode=Office code
     BankAccountNumber=帳號
    -BankAccountNumberKey=關鍵
    +BankAccountNumberKey=Check digits
     Residence=Direct debit
    -IBANNumber=IBAN號碼
    +IBANNumber=IBAN complete account number
     IBAN=銀行IBAN
     BIC=BIC號碼 / SWIFT號碼
     BICNumber=BIC號碼 / SWIFT號碼
    @@ -445,7 +447,7 @@ PaymentByTransferOnThisBankAccount=付款至以下帳戶
     VATIsNotUsedForInvoice=* 不得包含VAT, 詳見CGI-293B
     LawApplicationPart1=通過對應用的12/05/80法80.335
     LawApplicationPart2=貨物仍然是財產
    -LawApplicationPart3=賣方直到完全兌現
    +LawApplicationPart3=the seller until full payment of
     LawApplicationPart4=他們的價格。
     LimitedLiabilityCompanyCapital=SARL公司與資本
     UseLine=套用
    @@ -463,7 +465,7 @@ Cheques=檢查
     DepositId=Id deposit
     NbCheque=Number of checks
     CreditNoteConvertedIntoDiscount=This %s has been converted into %s
    -UsBillingContactAsIncoiveRecipientIfExist=使用客戶帳單的連絡人地址,而不是作以合作方上地址作為發票收件人
    +UsBillingContactAsIncoiveRecipientIfExist=Use contact/address with type 'billing contact' instead of third party address as recipient for invoices
     ShowUnpaidAll=顯示所有未付款的發票
     ShowUnpaidLateOnly=只顯示遲遲未付款的發票
     PaymentInvoiceRef=%s的付款發票
    @@ -474,21 +476,22 @@ Reported=延遲
     DisabledBecausePayments=不可能的,因為有一些付款
     CantRemovePaymentWithOneInvoicePaid=無法刪除,因為至少有付款發票分類所許
     ExpectedToPay=預期付款
    -CantRemoveConciliatedPayment=Can't remove conciliated payment
    +CantRemoveConciliatedPayment=Can't remove reconciled payment
     PayedByThisPayment=氟離子選擇電極通過此付款
    -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid.
    +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices paid entirely.
     ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back.
    -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid.
    -AllCompletelyPayedInvoiceWillBeClosed=所有發票仍然沒有支付將被自動關閉狀態“支付最高”。
    +ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions paid entirely.
    +AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remainder to pay will be automatically closed with status "Paid".
     ToMakePayment=Pay
     ToMakePaymentBack=Pay back
     ListOfYourUnpaidInvoices=List of unpaid invoices
     NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative.
     RevenueStamp=Revenue stamp
    -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party
    -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party
    +YouMustCreateInvoiceFromThird=This option is only available when creating invoices from tab "customer" of third party
    +YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoices from tab "supplier" of third party
     YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice
     PDFCrabeDescription=一個完整的PDF發票(invoice)文件範本(支援營業稅選項,折扣,付款條件..)
    +PDFSpongeDescription=Invoice PDF template Sponge. A complete invoice template
     PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices
     TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
     MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
    @@ -533,7 +536,7 @@ invoiceLineProgressError=Invoice line progress can't be greater than or equal to
     updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s
     ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices.
     ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu <strong>%s - %s - %s</strong>.
    -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
    +ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask your administrator to enable and setup module <strong>%s</strong>. Note that both method (manual and automatic) can be used together with no risk of duplication.
     DeleteRepeatableInvoice=Delete template invoice
     ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice?
     CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order)
    @@ -546,3 +549,4 @@ AutoFillDateFromShort=Set start date
     AutoFillDateTo=Set end date for service line with next invoice date
     AutoFillDateToShort=Set end date
     MaxNumberOfGenerationReached=Max number of gen. reached
    +BILL_DELETEInDolibarr=發票已刪除
    diff --git a/htdocs/langs/zh_TW/cashdesk.lang b/htdocs/langs/zh_TW/cashdesk.lang
    index eca3f4a92ac..a0d0704b6bc 100644
    --- a/htdocs/langs/zh_TW/cashdesk.lang
    +++ b/htdocs/langs/zh_TW/cashdesk.lang
    @@ -30,5 +30,15 @@ ShowCompany=顯示公司
     ShowStock=顯示倉庫
     DeleteArticle=點擊刪除此文章
     FilterRefOrLabelOrBC=Search (Ref/Label)
    -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock.
    +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that uses POS needs to have permission to edit stock.
     DolibarrReceiptPrinter=Dolibarr Receipt Printer
    +PointOfSale=收銀機
    +PointOfSaleShort=POS
    +CloseBill=Close Bill
    +Floors=Floors
    +Floor=Floor
    +AddTable=Add table
    +Place=Place
    +TakeposConnectorNecesary='TakePOS Connector' required
    +OrderPrinters=Order printers
    +SearchProduct=Search product
    diff --git a/htdocs/langs/zh_TW/commercial.lang b/htdocs/langs/zh_TW/commercial.lang
    index c3f4c586b0d..337a9b9ff74 100644
    --- a/htdocs/langs/zh_TW/commercial.lang
    +++ b/htdocs/langs/zh_TW/commercial.lang
    @@ -52,6 +52,7 @@ ActionAC_TEL=電話
     ActionAC_FAX=發送傳真
     ActionAC_PROP=通過郵件發送提案/建議書
     ActionAC_EMAIL=發送電子郵件
    +ActionAC_EMAIL_IN=Reception of Email
     ActionAC_RDV=會議
     ActionAC_INT=Intervention on site
     ActionAC_FAC=通過郵件發送客戶發票
    @@ -72,8 +73,8 @@ StatusProsp=潛在狀態
     DraftPropals=商業提案/建議書草稿
     NoLimit=無限制
     ToOfferALinkForOnlineSignature=Link for online signature
    -WelcomeOnOnlineSignaturePage=Welcome on the page to accept commerical proposals from %s
    +WelcomeOnOnlineSignaturePage=Welcome to the page to accept commercial proposals from %s
     ThisScreenAllowsYouToSignDocFrom=This screen allow you to accept and sign, or refuse, a quote/commercial proposal
     ThisIsInformationOnDocumentToSign=This is information on document to accept or refuse
    -SignatureProposalRef=Signature of quote/commerical proposal %s
    +SignatureProposalRef=Signature of quote/commercial proposal %s
     FeatureOnlineSignDisabled=Feature for online signing disabled or document generated before the feature was enabled
    diff --git a/htdocs/langs/zh_TW/companies.lang b/htdocs/langs/zh_TW/companies.lang
    index 5fb63ab7c33..c355399f73a 100644
    --- a/htdocs/langs/zh_TW/companies.lang
    +++ b/htdocs/langs/zh_TW/companies.lang
    @@ -1,17 +1,17 @@
     # Dolibarr language file - Source file is en_US - companies
     ErrorCompanyNameAlreadyExists=公司名稱%s已經存在。選擇另外一個。
     ErrorSetACountryFirst=請先設定國家
    -SelectThirdParty=請選擇客戶/供應商
    -ConfirmDeleteCompany=您確定要刪除此公司和所有繼承的資訊嗎?
    -DeleteContact=刪除聯絡人
    +SelectThirdParty=請選擇合作方
    +ConfirmDeleteCompany=您確定要刪除此公司和所有關連的資訊嗎?
    +DeleteContact=刪除連絡人/地址
     ConfirmDeleteContact=您確定要刪除這個連絡人和所有關連資訊?
    -MenuNewThirdParty=新的合作方
    +MenuNewThirdParty=新合作方
     MenuNewCustomer=新客戶
    -MenuNewProspect=新潛力者
    +MenuNewProspect=新的潛在者
     MenuNewSupplier=新供應商
     MenuNewPrivateIndividual=新的私營個體
    -NewCompany=新公司(潪力者、客戶、供應商)
    -NewThirdParty=新合作方(潪力者、客戶、供應商)
    +NewCompany=新公司(潛在者、客戶、供應商)
    +NewThirdParty=新合作方(潛在者、客戶、供應商)
     CreateDolibarrThirdPartySupplier=建立合作方(供應商)
     CreateThirdPartyOnly=建立合作方
     CreateThirdPartyAndContact=建立合作方+其連絡人
    @@ -27,20 +27,20 @@ CompanyName=公司名稱
     AliasNames=別名(商業的,商標,...)
     AliasNameShort=別名
     Companies=公司
    -CountryIsInEEC=國家屬於歐盟經濟體內
    +CountryIsInEEC=在歐盟區的國家
     ThirdPartyName=合作方名稱
     ThirdPartyEmail=合作方電子郵件
     ThirdParty=合作方
     ThirdParties=各式合作方
    -ThirdPartyProspects=潛力者
    -ThirdPartyProspectsStats=潛力者
    +ThirdPartyProspects=潛在者
    +ThirdPartyProspectsStats=潛在者
     ThirdPartyCustomers=客戶
     ThirdPartyCustomersStats=客戶
     ThirdPartyCustomersWithIdProf12=%s或%s的客戶
     ThirdPartySuppliers=供應商
    -ThirdPartyType=合作方類別
    +ThirdPartyType=公司型態
     Individual=私營個體
    -ToCreateContactWithSameName=將自動建立與合作方下的合作方相同資訊的連絡人/地址。在大多數情況下,即使合作方就是等於實際連絡人,您只要建立合作方就足夠了。
    +ToCreateContactWithSameName=當在合作方時,用相同資訊建立合作方及連接到連絡人/地址。即使合作方是自類人,一般仍只要單獨建立合作方就夠了。
     ParentCompany=母公司
     Subsidiaries=附屬公司
     ReportByMonth=月報表
    @@ -75,12 +75,12 @@ Zip=郵遞區號
     Town=城市
     Web=網站
     Poste= 位置
    -DefaultLang=預設語系
    -VATIsUsed=使用中的銷售稅
    -VATIsUsedWhenSelling=這定義了當該合作方向其客戶開具發票時是否包含銷售稅
    +DefaultLang=預設語言
    +VATIsUsed=使用銷售稅
    +VATIsUsedWhenSelling=這定義了合作方在向其客戶開具發票時是否包含銷售稅
     VATIsNotUsed=不使用的銷售稅
     CopyAddressFromSoc=填上合作方的地址
    -ThirdpartyNotCustomerNotSupplierSoNoRef=合作方既不是客戶也不是供應商,沒有可用的引用物件
    +ThirdpartyNotCustomerNotSupplierSoNoRef=合作方不是客戶也不是供應商,不能參考到物件
     ThirdpartyIsNeitherCustomerNorClientSoCannotHaveDiscounts=合作方既不是客戶也不是供應商,折扣不適用
     PaymentBankAccount=付款銀行帳戶
     OverAllProposals=提案/建議書
    @@ -258,12 +258,12 @@ ProfId1DZ=RC
     ProfId2DZ=Art.
     ProfId3DZ=NIF
     ProfId4DZ=NIS
    -VATIntra=銷售稅 ID
    +VATIntra=銷售稅/增值稅編號
     VATIntraShort=稅務 ID
     VATIntraSyntaxIsValid=語法是有效的
     VATReturn=增值稅退稅
    -ProspectCustomer=潛力/客戶
    -Prospect=潛力
    +ProspectCustomer=潛在者/客戶
    +Prospect=潛在者
     CustomerCard=客戶卡
     Customer=客戶
     CustomerRelativeDiscount=相對客戶折扣
    @@ -272,90 +272,90 @@ CustomerRelativeDiscountShort=相對折扣
     CustomerAbsoluteDiscountShort=無條件折扣
     CompanyHasRelativeDiscount=此客戶有預設的<b>%s%%</b>的折扣
     CompanyHasNoRelativeDiscount=此客戶預設沒有相對的折扣
    -HasRelativeDiscountFromSupplier=You have a default discount of <b>%s%%</b> from this supplier
    -HasNoRelativeDiscountFromSupplier=You have no default relative discount from this supplier
    -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for <b>%s</b> %s
    -CompanyHasDownPaymentOrCommercialDiscount=This customer has discount available (commercial, down payments) for <b>%s</b> %s
    -CompanyHasCreditNote=此客戶仍然有信用票據<b>%s或%s</b>的前存款
    -HasNoAbsoluteDiscountFromSupplier=You have no discount credit available from this supplier
    -HasAbsoluteDiscountFromSupplier=You have discounts available (credits notes or down payments) for <b>%s</b> %s from this supplier
    -HasDownPaymentOrCommercialDiscountFromSupplier=You have discounts available (commercial, down payments) for <b>%s</b> %s from this supplier
    -HasCreditNoteFromSupplier=You have credit notes for <b>%s</b> %s from this supplier
    -CompanyHasNoAbsoluteDiscount=此客戶沒有無條件折扣條件
    -CustomerAbsoluteDiscountAllUsers=Absolute customer discounts (granted by all users)
    -CustomerAbsoluteDiscountMy=Absolute customer discounts (granted by yourself)
    -SupplierAbsoluteDiscountAllUsers=Absolute vendor discounts (entered by all users)
    -SupplierAbsoluteDiscountMy=Absolute vendor discounts (entered by yourself)
    +HasRelativeDiscountFromSupplier=此供應商你有預設<b>%s%%</b>折扣
    +HasNoRelativeDiscountFromSupplier=此供應商你沒沒有預設相對折扣
    +CompanyHasAbsoluteDiscount=在<b>%s</b>%s此客戶有折扣(貸方通知單或預付款)
    +CompanyHasDownPaymentOrCommercialDiscount=在 <b>%s</b>%s 此客戶有折扣(貸方通知單或預付款)
    +CompanyHasCreditNote=在<b>%s</b>%s情況下,此客戶仍然有貸方通知單
    +HasNoAbsoluteDiscountFromSupplier=在此供應商下,您沒有可用的折扣
    +HasAbsoluteDiscountFromSupplier=在此供應商的<b>%s</b>%s的情況下,您有可用折扣(貸方通知單或預付訂金)
    +HasDownPaymentOrCommercialDiscountFromSupplier=在此供應商的<b>%s</b>%s您有可用折扣(商業,預付訂金)
    +HasCreditNoteFromSupplier=在此供應商的<b>%s</b>%s情況下您有貸方通知單
    +CompanyHasNoAbsoluteDiscount=此客戶沒有可用的折扣條件
    +CustomerAbsoluteDiscountAllUsers=完整的客戶折扣(由全體用戶授權)
    +CustomerAbsoluteDiscountMy=完整的客戶折扣(由您授權)
    +SupplierAbsoluteDiscountAllUsers=完整的供應商折扣(由全體用戶授權)
    +SupplierAbsoluteDiscountMy=完整的供應商折扣(由您授權)
     DiscountNone=無
     Supplier=供應商
     AddContact=建立聯絡人資訊
     AddContactAddress=建立聯絡資訊及地址
     EditContact=編輯聯絡人/地址
     EditContactAddress=編輯聯絡資訊及地址
    -Contact=聯絡人
    -ContactId=Contact id
    -ContactsAddresses=聯絡資訊/地址
    -FromContactName=Name:
    -NoContactDefinedForThirdParty=此客戶/供應商沒有定義聯絡人
    -NoContactDefined=此客戶(供應商)沒有定義聯絡人
    -DefaultContact=預設聯絡人
    -AddThirdParty=新增客戶/供應商
    +Contact=連絡人
    +ContactId=連絡人ID
    +ContactsAddresses=通訊錄/地址
    +FromContactName=名稱:
    +NoContactDefinedForThirdParty=此合作方沒有定義連絡人
    +NoContactDefined=此沒有定義連絡人
    +DefaultContact=預設連絡人/地址
    +AddThirdParty=建立合作方
     DeleteACompany=刪除公司
     PersonalInformations=個人資料
    -AccountancyCode=Accounting account
    -CustomerCode=客戶代碼
    -SupplierCode=Vendor code
    -CustomerCodeShort=Customer code
    -SupplierCodeShort=Vendor code
    -CustomerCodeDesc=客戶代碼(唯一碼,不同客戶有不同代碼)
    -SupplierCodeDesc=Vendor code, unique for all vendors
    -RequiredIfCustomer=必需填入(如果是客戶或潛在)
    -RequiredIfSupplier=Required if third party is a vendor
    -ValidityControledByModule=正確性是由此模組控制
    -ThisIsModuleRules=這是此模組的規則
    -ProspectToContact=展望接觸
    -CompanyDeleted=公司“%S”已從資料庫中刪除。
    -ListOfContacts=聯絡人名單
    -ListOfContactsAddresses=聯絡人及地址清單
    -ListOfThirdParties=客戶/供應商清單
    +AccountancyCode=會計項目
    +CustomerCode=客戶代號
    +SupplierCode=供應商代號
    +CustomerCodeShort=客戶代號
    +SupplierCodeShort=供應商代號
    +CustomerCodeDesc=全部客戶只能有一種客戶代號
    +SupplierCodeDesc=全部供應商只能一種供應商代號
    +RequiredIfCustomer=若合作方屬於客戶或潛在者,則必需填入
    +RequiredIfSupplier=若合作方是供應商,則必需填入
    +ValidityControledByModule=由模組控制驗證
    +ThisIsModuleRules=此模組的規則
    +ProspectToContact=連絡潛在者
    +CompanyDeleted=公司“%s”已從資料庫中刪除。
    +ListOfContacts=通訊錄/地址名單
    +ListOfContactsAddresses=通訊錄/地址名單
    +ListOfThirdParties=合作方明細表
     ShowCompany=顯示合作方
    -ShowContact=顯示聯絡
    +ShowContact=顯示連絡人
     ContactsAllShort=全部(不過濾)
    -ContactType=聯絡型式
    -ContactForOrders=訂單聯絡人
    -ContactForOrdersOrShipments=訂單或送貨聯絡人
    +ContactType=連絡人型式
    +ContactForOrders=訂單連絡人
    +ContactForOrdersOrShipments=訂單或送貨連絡人
     ContactForProposals=提案/建議書連絡人
    -ContactForContracts=合約聯絡人
    -ContactForInvoices=發票聯絡人
    -NoContactForAnyOrder=非訂單聯絡人
    -NoContactForAnyOrderOrShipments=非訂單或送貨聯絡人
    +ContactForContracts=合約連絡人
    +ContactForInvoices=發票連絡人
    +NoContactForAnyOrder=此連絡人非訂單連絡人
    +NoContactForAnyOrderOrShipments=此連絡人非訂單或送貨連絡人
     NoContactForAnyProposal=此連絡人不屬於任何商業提案/建議書連絡人
    -NoContactForAnyContract=非合同聯絡人
    -NoContactForAnyInvoice=非發票聯絡人
    -NewContact=新增聯絡人
    -NewContactAddress=新增聯絡人及地址
    -MyContacts=我的聯絡人
    +NoContactForAnyContract=此連絡人非合約連絡人
    +NoContactForAnyInvoice=此連絡人非發票連絡人
    +NewContact=新增連絡人
    +NewContactAddress=新連絡人/地址
    +MyContacts=我的通訊錄
     Capital=資本
    -CapitalOf=資本 %s
    -EditCompany=編輯公司
    -ThisUserIsNot=This user is not a prospect, customer nor vendor
    -VATIntraCheck=查詢
    -VATIntraCheckDesc=<b>%s</b>連結允許連上"歐盟營業稅檢查服務"網頁。連上此網頁需具有外部網際網路連線能力。
    +CapitalOf=%s的資本
    +EditCompany=編輯公司資料
    +ThisUserIsNot=此用戶非潛在者、客戶或是供應商
    +VATIntraCheck=確認
    +VATIntraCheckDesc=此連線<b>%s</b>使用歐洲加值稅檢查服務(European VAT checker service (VIES))。此服務需要從服務器連到外部網路才能運行。
     VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do
    -VATIntraCheckableOnEUSite=在"歐盟營業稅檢查服務"網頁,查詢 Intracomunnautary 營業稅
    -VATIntraManualCheck=您也可以自行到"歐盟營業稅檢查服務"網頁 <a href="%s" target="_blank">%s</a> 手動檢查
    +VATIntraCheckableOnEUSite=檢查在歐盟區網站內的區內增值稅
    +VATIntraManualCheck=您也可在歐盟網站以人工方式確認<a href="%s" target="_blank">%s</a>
     ErrorVATCheckMS_UNAVAILABLE=檢查不可能的。檢查服務是沒有提供的會員國(%s)中。
    -NorProspectNorCustomer=供應商
    -JuridicalStatus=Legal form
    +NorProspectNorCustomer=非潛在者或客戶
    +JuridicalStatus=法人類型
     Staff=員工人數
     ProspectLevelShort=潛在等級
    -ProspectLevel=潛在等級
    +ProspectLevel=潛在者的可能性
     ContactPrivate=私人
     ContactPublic=公開
     ContactVisibility=隱私性
     ContactOthers=其他
     OthersNotLinkedToThirdParty=其他人,不與客戶/供應商做連接
    -ProspectStatus=潛在狀態
    +ProspectStatus=潛在者狀況
     PL_NONE=無
     PL_UNKNOWN=未知
     PL_LOW=低
    @@ -373,62 +373,62 @@ TE_PRIVATE=私營個體
     TE_OTHER=其他
     StatusProspect-1=無需聯絡
     StatusProspect0=從未聯絡過
    -StatusProspect1=To be contacted
    +StatusProspect1=待連絡
     StatusProspect2=聯絡中
     StatusProspect3=完成連絡
    -ChangeDoNotContact=禁止聯絡
    -ChangeNeverContacted=未曾接觸
    -ChangeToContact=Change status to 'To be contacted'
    -ChangeContactInProcess=聯絡中
    -ChangeContactDone=改變狀態為 " 完成連絡 "
    -ProspectsByStatus=潛在狀態
    +ChangeDoNotContact=改成“禁止連絡”
    +ChangeNeverContacted=改成"未曾連絡過“
    +ChangeToContact=改成”待連絡“
    +ChangeContactInProcess=改成”連絡中“
    +ChangeContactDone=改成 " 完成連絡 "
    +ProspectsByStatus=依狀況排序的潛在者
     NoParentCompany=無
     ExportCardToFormat=匯出格式
    -ContactNotLinkedToCompany=聯系不與任何第三方
    -DolibarrLogin=登錄系統時間
    +ContactNotLinkedToCompany=連絡人沒有連接到任何合作方
    +DolibarrLogin=Dolibarr 登入
     NoDolibarrAccess=沒有任何系統存取記錄
    -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ExportDataset_company_2=聯系和屬性
    -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties
    -ImportDataset_company_2=Contacts/Addresses (of third parties or not) and attributes
    -ImportDataset_company_3=Bank accounts of third parties
    -ImportDataset_company_4=Third parties/Sales representatives (Assign sales representatives users to companies)
    +ExportDataset_company_1=各式合作方(公司/基金會/自類人)及其屬性
    +ExportDataset_company_2=通訊錄及其性質
    +ImportDataset_company_1=各式合作方(公司/基金會/自類人)及其屬性
    +ImportDataset_company_2=通訊錄/地址及其屬性
    +ImportDataset_company_3=合作方的銀行帳戶
    +ImportDataset_company_4=各式合作方-業務代表(指派業務代表/用戶到公司)
     PriceLevel=價格水平
     DeliveryAddress=送貨地址
     AddAddress=添加地址
    -SupplierCategory=Vendor category
    -JuridicalStatus200=Independent
    +SupplierCategory=供應商類別
    +JuridicalStatus200=獨立
     DeleteFile=刪除文件
     ConfirmDeleteFile=你確定要刪除這個文件?
    -AllocateCommercial=Assigned to sales representative
    +AllocateCommercial=指定業務代表
     Organization=組織
    -FiscalYearInformation=信息財政年度
    -FiscalMonthStart=本財年開始一個月
    -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him.
    -YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party
    -ListSuppliersShort=List of vendors
    -ListProspectsShort=潛在名單
    -ListCustomersShort=客戶名單
    -ThirdPartiesArea=客戶/供應商資料區
    -LastModifiedThirdParties=Latest %s modified third parties
    -UniqueThirdParties=客戶/供應商圖表種類數
    +FiscalYearInformation=會計年度
    +FiscalMonthStart=會計年度開始月份
    +YouMustAssignUserMailFirst=您必須先為此用戶建立電子郵件(email),然後才能新增電子郵件(email)通知。
    +YouMustCreateContactFirst=為了增加 email 通知,你必須先在合作方的通訊錄有合法 email
    +ListSuppliersShort=供應商明細表
    +ListProspectsShort=潛在者清單
    +ListCustomersShort=客戶明細表
    +ThirdPartiesArea=各式合作方/通訊錄
    +LastModifiedThirdParties=最新修改的合作方%s
    +UniqueThirdParties=合作方的總數
     InActivity=開放
     ActivityCeased=關閉
    -ThirdPartyIsClosed=Third party is closed
    -ProductsIntoElements=產品列表於 %s
    -CurrentOutstandingBill=目前未兌現票據
    -OutstandingBill=最高數量的未兌現票據
    -OutstandingBillReached=Max. for outstanding bill reached
    -OrderMinAmount=Minimum amount for order
    -MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for vendor code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0.
    +ThirdPartyIsClosed=合作方已關閉
    +ProductsIntoElements=產品/服務列表於 %s
    +CurrentOutstandingBill=目前未付帳單
    +OutstandingBill=未付帳單的最大金額
    +OutstandingBillReached=已達最大金額的未付帳單
    +OrderMinAmount=最小訂購量
    +MonkeyNumRefModelDesc=客戶代號回復 %s yymm-nnnn ,且供應商代號為 %s yymm-nnnn 的數字格式,其中 yy 指的是年度,mm指的是月份,nnnn指的是不間斷或返回 0 的序號。
     LeopardNumRefModelDesc=客戶/供應商編號規則不受限制,此編碼可以隨時修改。(可開啟Elephant or Monkey模組來設定編碼規則)
     ManagingDirectors=主管(們)姓名 (執行長, 部門主管, 總裁...)
     MergeOriginThirdparty=重複的客戶/供應商 (你想刪除的客戶/供應商)
     MergeThirdparties=合併客戶/供應商
    -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted.
    -ThirdpartiesMergeSuccess=Third parties have been merged
    -SaleRepresentativeLogin=Login of sales representative
    -SaleRepresentativeFirstname=First name of sales representative
    -SaleRepresentativeLastname=Last name of sales representative
    -ErrorThirdpartiesMerge=There was an error when deleting the third parties. Please check the log. Changes have been reverted.
    -NewCustomerSupplierCodeProposed=New customer or vendor code suggested on duplicate code
    +ConfirmMergeThirdparties=您確定要合併此合作方到目前的資料?所有已連結的物件( 發票、訂單...)將會移到目前的合作方,並刪除被合併的合作方。
    +ThirdpartiesMergeSuccess=合作方已合併
    +SaleRepresentativeLogin=業務代表的登入
    +SaleRepresentativeFirstname=業務代表的名字
    +SaleRepresentativeLastname=業務代表的姓氏
    +ErrorThirdpartiesMerge=刪除合作方時發生錯誤。請檢查日誌。原變更已被回復。
    +NewCustomerSupplierCodeProposed=Customer or vendor code already used, a new code is suggested
    diff --git a/htdocs/langs/zh_TW/dict.lang b/htdocs/langs/zh_TW/dict.lang
    index 85310a761c9..25fa301a4bf 100644
    --- a/htdocs/langs/zh_TW/dict.lang
    +++ b/htdocs/langs/zh_TW/dict.lang
    @@ -116,7 +116,7 @@ CountryHM=赫德島和麥當勞
     CountryVA=羅馬教廷(梵蒂岡城國)
     CountryHN=洪都拉斯
     CountryHK=香港
    -CountryIS=Icelande
    +CountryIS=Iceland
     CountryIN=印度
     CountryID=印度尼西亞
     CountryIR=伊朗
    @@ -131,7 +131,7 @@ CountryKI=基裏巴斯
     CountryKP=北朝鮮
     CountryKR=韓國
     CountryKW=科威特
    -CountryKG=Kyrghyztan
    +CountryKG=Kyrgyzstan
     CountryLA=老撾
     CountryLV=拉脫維亞
     CountryLB=黎巴嫩
    @@ -160,7 +160,7 @@ CountryMD=摩爾多瓦
     CountryMN=蒙古
     CountryMS=蒙特塞拉特
     CountryMZ=莫桑比克
    -CountryMM=Birmania(緬甸)
    +CountryMM=Myanmar (Burma)
     CountryNA=納米比亞
     CountryNR=瑙魯
     CountryNP=尼泊爾
    @@ -223,7 +223,7 @@ CountryTO=湯加
     CountryTT=特裏尼達和多巴哥
     CountryTR=土耳其
     CountryTM=土庫曼斯坦
    -CountryTC=特克斯群島和Cailos
    +CountryTC=Turks and Caicos Islands
     CountryTV=圖瓦盧
     CountryUG=烏幹達
     CountryUA=烏克蘭
    @@ -277,7 +277,7 @@ CurrencySingMGA=Ariary
     CurrencyMUR=毛裏求斯盧比
     CurrencySingMUR=毛裏求斯盧比
     CurrencyNOK=挪威克朗
    -CurrencySingNOK=挪威克朗
    +CurrencySingNOK=Norwegian kronas
     CurrencyTND=突尼斯第納爾
     CurrencySingTND=突尼斯第納爾
     CurrencyUSD=美元
    @@ -306,6 +306,7 @@ DemandReasonTypeSRC_WOM=口碑
     DemandReasonTypeSRC_PARTNER=夥伴
     DemandReasonTypeSRC_EMPLOYEE=員工
     DemandReasonTypeSRC_SPONSORING=贊助
    +DemandReasonTypeSRC_SRC_CUSTOMER=Incoming contact of a customer
     #### Paper formats ####
     PaperFormatEU4A0=4A0 格式
     PaperFormatEU2A0=2A0 格式
    diff --git a/htdocs/langs/zh_TW/ecm.lang b/htdocs/langs/zh_TW/ecm.lang
    index fe14f4ebc96..9968512283c 100644
    --- a/htdocs/langs/zh_TW/ecm.lang
    +++ b/htdocs/langs/zh_TW/ecm.lang
    @@ -1,20 +1,20 @@
     # Dolibarr language file - Source file is en_US - ecm
    -ECMNbOfDocs=鈮在目錄中的文檔
    -ECMSection=目錄
    -ECMSectionManual=手冊目錄
    -ECMSectionAuto=自動目錄
    -ECMSectionsManual=手冊樹
    -ECMSectionsAuto=自動樹
    -ECMSections=目錄
    -ECMRoot=ECM Root
    -ECMNewSection=新目錄
    -ECMAddSection=添加手冊目錄
    +ECMNbOfDocs=在資料夾中的文件數量
    +ECMSection=資料夾
    +ECMSectionManual=自行加入資料夾
    +ECMSectionAuto=系統產生資料夾
    +ECMSectionsManual=自行加入的樹狀圖
    +ECMSectionsAuto=系統產生的樹狀圖
    +ECMSections=各資料夾
    +ECMRoot=電子控制管理的開始資料夾
    +ECMNewSection=新資料夾
    +ECMAddSection=新增資料夾
     ECMCreationDate=建立日期
    -ECMNbOfFilesInDir=在目錄中的文件數
    -ECMNbOfSubDir=數子目錄
    -ECMNbOfFilesInSubDir=Number of files in sub-directories
    +ECMNbOfFilesInDir=在資料夾中的檔案數量
    +ECMNbOfSubDir=各子資料夾數量
    +ECMNbOfFilesInSubDir=在各子資料夾的檔案數量
     ECMCreationUser=創造者
    -ECMArea=DMS/ECM area
    +ECMArea=檔案管理/電子控制管理區
     ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr.
     ECMAreaDesc2=*自動填寫目錄時自動加入一個元素從卡的文件。 <br> *手動目錄可以用來保存未鏈接到一個特定元素的文件。
     ECMSectionWasRemoved=目錄<b>%s</b>已被刪除。
    @@ -34,6 +34,8 @@ ECMDocsByProjects=Documents linked to projects
     ECMDocsByUsers=Documents linked to users
     ECMDocsByInterventions=Documents linked to interventions
     ECMDocsByExpenseReports=Documents linked to expense reports
    +ECMDocsByHolidays=Documents linked to holidays
    +ECMDocsBySupplierProposals=Documents linked to supplier proposals
     ECMNoDirectoryYet=No directory created
     ShowECMSection=顯示目錄
     DeleteSection=刪除目錄
    diff --git a/htdocs/langs/zh_TW/errors.lang b/htdocs/langs/zh_TW/errors.lang
    index 0546500cf5b..7b97953995d 100644
    --- a/htdocs/langs/zh_TW/errors.lang
    +++ b/htdocs/langs/zh_TW/errors.lang
    @@ -42,7 +42,7 @@ ErrorBadDateFormat=值“%s”有錯誤的日期格式
     ErrorWrongDate=Date is not correct!
     ErrorFailedToWriteInDir=無法寫在目錄%s
     ErrorFoundBadEmailInFile=找到%S的語法不正確的電子郵件文件中的行(例如行%的電子郵件s =%s)的
    -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities.
    +ErrorUserCannotBeDelete=User cannot be deleted. Maybe it is associated to Dolibarr entities.
     ErrorFieldsRequired=一些必要的欄位都沒有填補。
     ErrorSubjectIsRequired=The email topic is required
     ErrorFailedToCreateDir=無法創建一個目錄。檢查Web服務器的用戶有權限寫入Dolibarr文件目錄。如果參數<b>safe_mode設置</b>為啟用這個PHP,檢查Dolibarr php文件到Web服務器的用戶擁有(或組)。
    @@ -65,21 +65,22 @@ ErrorNoValueForSelectType=Please fill value for select list
     ErrorNoValueForCheckBoxType=Please fill value for checkbox list
     ErrorNoValueForRadioType=Please fill value for radio list
     ErrorBadFormatValueList=The list value cannot have more than one comma: <u>%s</u>, but need at least one: key,value
    -ErrorFieldCanNotContainSpecialCharacters=菲爾德<b>%s</b>必須不包含特殊字符。
    -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldCanNotContainSpecialCharacters=The field <b>%s</b> must not contains special characters.
    +ErrorFieldCanNotContainSpecialNorUpperCharacters=The field <b>%s</b> must not contain special characters, nor upper case characters and cannot contain only numbers.
    +ErrorFieldMustHaveXChar=The field <b>%s</b> must have at least %s characters.
     ErrorNoAccountancyModuleLoaded=沒有一個會計模塊激活
     ErrorExportDuplicateProfil=This profile name already exists for this export set.
     ErrorLDAPSetupNotComplete=Dolibarr - LDAP的匹配是不完整的。
     ErrorLDAPMakeManualTest=甲。LDIF文件已經生成在目錄%s的嘗試加載命令行手動有更多的錯誤信息。
    -ErrorCantSaveADoneUserWithZeroPercentage=若欄位也填上 "由誰完成" 則不能將行動存成 "未開始的狀態"
    +ErrorCantSaveADoneUserWithZeroPercentage=Can't save an action with "status not started" if field "done by" is also filled.
     ErrorRefAlreadyExists=號的創作已經存在。
     ErrorPleaseTypeBankTransactionReportName=Please enter the bank statement name where the entry has to be reported (Format YYYYMM or YYYYMMDD)
    -ErrorRecordHasChildren=Failed to delete record since it has some childs.
    -ErrorRecordHasAtLeastOneChildOfType=Object has at least one child of type %s
    -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object.
    +ErrorRecordHasChildren=刪除失敗是因有子項記錄。
    +ErrorRecordHasAtLeastOneChildOfType=物件至少有一子項類別%s
    +ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into another object.
     ErrorModuleRequireJavascript=不能禁用JavaScript必須有此功能的工作。要啟用/禁用JavaScript,進入菜單首頁->安裝->“顯示。
     ErrorPasswordsMustMatch=這兩種類型的密碼必須相互匹配
    -ErrorContactEMail=一個技術性錯誤發生。請聯系管理員,以下連接提供錯誤代碼<b>%s</b>在您的郵件,甚至更好,加入了這個頁面的屏幕拷貝的電子郵件<b>%s。</b>
    +ErrorContactEMail=A technical error occured. Please, contact administrator to following email <b>%s</b> and provide the error code <b>%s</b> in your message, or add a screen copy of this page.
     ErrorWrongValueForField=<b>s'</b>的領域的一些錯誤值<b>的%s(</b>價值<b>'%</b>不匹配正則表達式規則<b>%s)</b>
     ErrorFieldValueNotIn=場數<b>%s</b>錯誤值(值<b>'%s'</b>是不是一個值到領域表<b>%s %s)</b>
     ErrorFieldRefNotIn=錯場數<b>%s</b>值(值<b>'%s'</b>是不是一個的<b>%s</b>現有文獻)
    @@ -88,6 +89,7 @@ ErrorFileIsInfectedWithAVirus=防病毒程序無法驗證文件(文件可能
     ErrorSpecialCharNotAllowedForField=特殊字符不為外地允許“%s的”
     ErrorNumRefModel=存在一個引用(%s)和編號是不符合本規則兼容到數據庫。記錄中刪除或重命名參考激活此模塊。
     ErrorQtyTooLowForThisSupplier=Quantity too low for this vendor or no price defined on this product for this supplier
    +ErrorOrdersNotCreatedQtyTooLow=Some orders haven't been created beacuse of too low quantity
     ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete.
     ErrorBadMask=錯誤的遮罩參數值
     ErrorBadMaskFailedToLocatePosOfSequence=沒有序列號錯誤,面具
    @@ -95,7 +97,7 @@ ErrorBadMaskBadRazMonth=錯誤,壞的復位值
     ErrorMaxNumberReachForThisMask=Max number reach for this mask
     ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits
     ErrorSelectAtLeastOne=錯誤。選擇至少一個條目。
    -ErrorDeleteNotPossibleLineIsConsolidated=刪除沒有可能的,因為記錄是調解到的銀行transation,
    +ErrorDeleteNotPossibleLineIsConsolidated=Delete not possible because record is linked to a bank transaction that is conciliated
     ErrorProdIdAlreadyExist=%s被分配到另一個第三
     ErrorFailedToSendPassword=無法傳送密碼
     ErrorFailedToLoadRSSFile=未能得到RSS提要。嘗試添加恒定MAIN_SIMPLEXMLLOAD_DEBUG,如果錯誤消息不提供足夠的信息。
    @@ -115,6 +117,7 @@ ErrorLoginDoesNotExists=<b>如何正確</b>使用手機與登錄<b>%</b>找不
     ErrorLoginHasNoEmail=這位用戶沒有電子郵件地址。進程中止。
     ErrorBadValueForCode=代碼有錯誤的值類型。再次嘗試以新的價值...
     ErrorBothFieldCantBeNegative=領域的%s及%s可以不消極
    +ErrorFieldCantBeNegativeOnInvoice=Field <strong>%s</strong> can't be negative on such type of invoice. If you want to add a discount line, just create the discount first with link %s on screen and apply it to invoice. You can also ask your admin to set option FACTURE_ENABLE_NEGATIVE_LINES to 1 to restore old behaviour.
     ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative
     ErrorWebServerUserHasNotPermission=<b>%s</b>用來執行Web服務器用戶帳戶沒有該權限
     ErrorNoActivatedBarcode=沒有激活的條碼類型
    @@ -138,7 +141,7 @@ ErrorBadFormat=Bad format!
     ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice.
     ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused.
     ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled
    -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed
    +ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Paid
     ErrorPriceExpression1=Cannot assign to constant '%s'
     ErrorPriceExpression2=Cannot redefine built-in function '%s'
     ErrorPriceExpression3=Undefined variable '%s' in function definition
    @@ -147,7 +150,7 @@ ErrorPriceExpression5=Unexpected '%s'
     ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected)
     ErrorPriceExpression8=Unexpected operator '%s'
     ErrorPriceExpression9=An unexpected error occured
    -ErrorPriceExpression10=Iperator '%s' lacks operand
    +ErrorPriceExpression10=Operator '%s' lacks operand
     ErrorPriceExpression11=Expecting '%s'
     ErrorPriceExpression14=Division by zero
     ErrorPriceExpression17=Undefined variable '%s'
    @@ -171,10 +174,10 @@ ErrorGlobalVariableUpdater4=SOAP client failed with error '%s'
     ErrorGlobalVariableUpdater5=No global variable selected
     ErrorFieldMustBeANumeric=Field <b>%s</b> must be a numeric value
     ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided
    -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status
    +ErrorOppStatusRequiredIfAmount=You set an estimated amount for this lead. So you must also enter its status
     ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s
     ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu)
    -ErrorSavingChanges=An error has ocurred when saving the changes
    +ErrorSavingChanges=An error has occurred when saving the changes
     ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship
     ErrorFileMustHaveFormat=File must have format %s
     ErrorSupplierCountryIsNotDefined=Country for this vendor is not defined. Correct this first.
    @@ -208,7 +211,8 @@ ErrorFileNotFoundWithSharedLink=File was not found. May be the share key was mod
     ErrorProductBarCodeAlreadyExists=The product barcode %s already exists on another product reference.
     ErrorNoteAlsoThatSubProductCantBeFollowedByLot=Note also that using virtual product to have auto increase/decrease of subproducts is not possible when at least one subproduct (or subproduct of subproducts) needs a serial/lot number.
     ErrorDescRequiredForFreeProductLines=Description is mandatory for lines with free product
    -
    +ErrorAPageWithThisNameOrAliasAlreadyExists=The page/container <strong>%s</strong> has the same name or alternative alias that the one your try to use
    +ErrorDuringChartLoad=Error when loading chart of account. If few accounts were not loaded, you can still enter them manually.
     # Warnings
     WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
     WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
    @@ -217,9 +221,9 @@ WarningBookmarkAlreadyExists=本標題或此目標(網址)書簽已存在。
     WarningPassIsEmpty=警告,數據庫密碼是空的。這是一個安全漏洞。您應該添加一個密碼到您的數據庫,並改變你的conf.php文件,以反映這一點。
     WarningConfFileMustBeReadOnly=警告,你的配置文件<b>(conf.php htdocs中/ conf /中</b> ),可覆蓋由Web服務器。這是一個嚴重的安全漏洞。在文件修改權限在閱讀作業系統由Web服務器使用的用戶只模式。如果您的磁盤使用Windows和FAT格式的,你要知道,這個文件系統不允許添加文件的權限,因此不能完全安全的。
     WarningsOnXLines=<b>%S上</b>的源代碼行警告
    -WarningNoDocumentModelActivated=沒有模型,對文檔生成,已被激活。一個模式是選用默認,直到您檢查您的模塊設置。
    +WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be chosen by default until you check your module setup.
     WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable install/migrate tools by adding a file <b>install.lock</b> into directory <b>%s</b>. Missing this file is a security hole.
    -WarningUntilDirRemoved=所有安全警告(可見由管理員用戶只)將保持活躍,只要是存在的脆弱性(或常數MAIN_REMOVE_INSTALL_WARNING是在安裝程序->其他設置添加)。
    +WarningUntilDirRemoved=All security warnings (visible by admin users only) will remain active as long as the vulnerability is present (or that constant MAIN_REMOVE_INSTALL_WARNING is added in Setup->Other Setup).
     WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution.
     WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box.
     WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card).
    @@ -229,5 +233,5 @@ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Pleas
     WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent.
     WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action.
     WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language
    -WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the bulk actions on lists
    +WarningNumberOfRecipientIsRestrictedInMassAction=Warning, number of different recipient is limited to <b>%s</b> when using the mass actions on lists
     WarningDateOfLineMustBeInExpenseReportRange=Warning, the date of line is not in the range of the expense report
    diff --git a/htdocs/langs/zh_TW/help.lang b/htdocs/langs/zh_TW/help.lang
    index ac22c7a46a7..a38115b05d7 100644
    --- a/htdocs/langs/zh_TW/help.lang
    +++ b/htdocs/langs/zh_TW/help.lang
    @@ -5,9 +5,9 @@ RemoteControlSupport=網上實時/遠程支持
     OtherSupport=其他支持
     ToSeeListOfAvailableRessources=聯絡/查看可用的資源:
     HelpCenter=說明中心
    -DolibarrHelpCenter=Dolibarr幫助和支持中心
    -ToGoBackToDolibarr=否則,請點擊<a href="%s">這裏使用Dolibarr</a>
    -TypeOfSupport=源支持
    +DolibarrHelpCenter=Dolibarr Help and Support Center
    +ToGoBackToDolibarr=Otherwise, <a href="%s">click here to continue to use Dolibarr</a>.
    +TypeOfSupport=Type of support
     TypeSupportCommunauty=社區(免費)
     TypeSupportCommercial=商業
     TypeOfHelp=說明類型
    @@ -15,12 +15,9 @@ NeedHelpCenter=需要幫助或支援嗎?
     Efficiency=效率
     TypeHelpOnly=只需要說明
     TypeHelpDev=說明+開發
    -TypeHelpDevForm=說明+開發+表格
    -ToGetHelpGoOnSparkAngels1=有些公司可以提供快速(有時直接的),並采取更有效的在線控制您的計算機支持。這些傭工可以是<b>%s</b>網站上找到:
    -ToGetHelpGoOnSparkAngels3=您還可以到所有可用的Dolibarr教練列表,點擊這個按鈕
    -ToGetHelpGoOnSparkAngels2=有時,是目前公司沒有可供您進行搜尋,所以想改變篩選器,以尋找“所有的可用性”。您將能夠發送更多的請求。
    -BackToHelpCenter=否則,請點擊這裏進入<a href="%s">返回幫助中心主頁</a> 。
    -LinkToGoldMember=你可以調用由Dolibarr預選您的語言(%s的按一下他的小工具(狀態和最高價格自動更新))的教練之一:
    +TypeHelpDevForm=Help+Development+Training
    +BackToHelpCenter=Otherwise, <a href="%s">go back to Help center home page</a>.
    +LinkToGoldMember=You can call one of the trainers preselected by Dolibarr for your language (%s) by clicking their Widget (status and maximum price are automatically updated):
     PossibleLanguages=支持的語言
    -SubscribeToFoundation=幫助 Dolibarr 專案,訂閱基金會
    +SubscribeToFoundation=Help the Dolibarr project, subscribe to the foundation
     SeeOfficalSupport=用您的語言給 Dolibarr 官方支持:<br><b><a href="%s" target="_blank">%s</a></b>
    diff --git a/htdocs/langs/zh_TW/holiday.lang b/htdocs/langs/zh_TW/holiday.lang
    index d76910503b5..7c3418d2f28 100644
    --- a/htdocs/langs/zh_TW/holiday.lang
    +++ b/htdocs/langs/zh_TW/holiday.lang
    @@ -1,10 +1,10 @@
     # Dolibarr language file - Source file is en_US - holiday
     HRM=人資
    -Holidays=休假
    -CPTitreMenu=休假
    +Holidays=Leave
    +CPTitreMenu=Leave
     MenuReportMonth=Monthly statement
     MenuAddCP=新的請假單
    -NotActiveModCP=您必須要啟用排休模組才能看到此頁面
    +NotActiveModCP=You must enable the module Leave to view this page.
     AddCP=提出假單
     DateDebCP=開始日期
     DateFinCP=結束日期
    @@ -15,18 +15,18 @@ ApprovedCP=批準
     CancelCP=取消
     RefuseCP=拒絕
     ValidatorCP=Approbator
    -ListeCP=List of leaves
    +ListeCP=List of leave
     LeaveId=Leave ID
     ReviewedByCP=Will be approved by
     UserForApprovalID=User for approval ID
    -UserForApprovalFirstname=Firstname of approval user
    -UserForApprovalLastname=Lastname of approval user
    +UserForApprovalFirstname=First name of approval user
    +UserForApprovalLastname=Last name of approval user
     UserForApprovalLogin=Login of approval user
     DescCP=描述
     SendRequestCP=Create leave request
     DelayToRequestCP=Leave requests must be made at least <b>%s day(s)</b> before them.
    -MenuConfCP=Balance of leaves
    -SoldeCPUser=Leaves balance is <b>%s</b> days.
    +MenuConfCP=Balance of leave
    +SoldeCPUser=Leave balance is <b>%s</b> days.
     ErrorEndDateCP=You must select an end date greater than the start date.
     ErrorSQLCreateCP=An SQL error occurred during the creation:
     ErrorIDFicheCP=An error has occurred, the leave request does not exist.
    @@ -101,8 +101,8 @@ LEAVE_SICK=Sick leave
     LEAVE_OTHER=Other leave
     LEAVE_PAID_FR=Paid vacation
     ## Configuration du Module ##
    -LastUpdateCP=Latest automatic update of leaves allocation
    -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation
    +LastUpdateCP=Latest automatic update of leave allocation
    +MonthOfLastMonthlyUpdate=Month of latest automatic update of leave allocation
     UpdateConfCPOK=Updated successfully.
     Module27130Name= Management of leave requests
     Module27130Desc= Management of leave requests
    @@ -112,7 +112,7 @@ NoticePeriod=通知期
     HolidaysToValidate=Validate leave requests
     HolidaysToValidateBody=Below is a leave request to validate
     HolidaysToValidateDelay=This leave request will take place within a period of less than %s days.
    -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days.
    +HolidaysToValidateAlertSolde=The user who made this leave request does not have enough available days.
     HolidaysValidated=Validated leave requests
     HolidaysValidatedBody=Your leave request for %s to %s has been validated.
     HolidaysRefused=Request denied
    @@ -121,4 +121,9 @@ HolidaysCanceled=Canceled leaved request
     HolidaysCanceledBody=Your leave request for %s to %s has been canceled.
     FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.<br>0: Not followed by a counter.
     NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter
    -GoIntoDictionaryHolidayTypes=到 <strong> 首頁 - 設定 - 各式分類 - 離職類型 </strong> 設定不同離職類型。 
    +GoIntoDictionaryHolidayTypes=Go into <strong>Home - Setup - Dictionaries - Type of leave</strong> to setup the different types of leaves.
    +HolidaySetup=Setup of module Holiday
    +HolidaysNumberingModules=Leave requests numbering models
    +TemplatePDFHolidays=Template for leave requests PDF
    +FreeLegalTextOnHolidays=Free text on PDF
    +WatermarkOnDraftHolidayCards=Watermarks on draft leave requests
    diff --git a/htdocs/langs/zh_TW/install.lang b/htdocs/langs/zh_TW/install.lang
    index 2aa83d6dc06..b7b3777594c 100644
    --- a/htdocs/langs/zh_TW/install.lang
    +++ b/htdocs/langs/zh_TW/install.lang
    @@ -2,37 +2,37 @@
     InstallEasy=只需按照分步說明。
     MiscellaneousChecks=先決條件檢查
     ConfFileExists=配置文件<b>%s</b>存在。
    -ConfFileDoesNotExistsAndCouldNotBeCreated=配置文件<b>%s</b>不存在,無法創建!
    +ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file <b>%s</b> does not exist and could not be created!
     ConfFileCouldBeCreated=<b>%s的</b>配置文件可以被創建。
    -ConfFileIsNotWritable=配置文件<b>%s</b>不是寫。檢查權限。對於第一次安裝,您的Web服務器必須被授予能夠進入這個文件寫在配置過程中(“文件模式,例如666”在一個像Unix的作業系統)。
    +ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permissions. For first install, your web server must be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS).
     ConfFileIsWritable=配置文件<b>%s</b>是可寫的。
     ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
    -ConfFileReload=重新載入配置文件的所有信息。
    +ConfFileReload=Reloading parameters from configuration file.
     PHPSupportSessions=這個PHP支持會議。
     PHPSupportPOSTGETOk=這個PHP支持的變量的POST和GET。
    -PHPSupportPOSTGETKo=有可能你的PHP安裝程序不支持變量POST和/或GET。檢查你的php.ini中參數<b>的變數</b> 。
    -PHPSupportGD=這個PHP支持廣東的圖形功能。
    -PHPSupportCurl=This PHP support Curl.
    -PHPSupportUTF8=這個PHP支持UTF8的功能。
    +PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
    +PHPSupportGD=This PHP supports GD graphical functions.
    +PHPSupportCurl=This PHP supports Curl.
    +PHPSupportUTF8=This PHP supports UTF8 functions.
     PHPMemoryOK=您的PHP最大會話內存設置為<b>%s。</b>這應該是足夠的。
    -PHPMemoryTooLow=您的PHP最大會話內存設置為<b>%s</b>字節。這應該是太低了。改變你的<b>php.ini中</b>設置<b>memory_limit的</b>參數至少<b>%s</b>字節。
    -Recheck=點擊這裏,更多的有意義的測試
    -ErrorPHPDoesNotSupportSessions=您的PHP安裝不支持會話。此功能必須作出Dolibarr工作。檢查你的PHP安裝程序。
    -ErrorPHPDoesNotSupportGD=您的PHP安裝不支持圖形功能的廣東。不圖將可用。
    +PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
    +Recheck=Click here for a more detailed test
    +ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to allow Dolibarr to work. Check your PHP setup and permissions of the sessions directory.
    +ErrorPHPDoesNotSupportGD=Your PHP installation does not support GD graphical functions. No graphs will be available.
     ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl.
    -ErrorPHPDoesNotSupportUTF8=您的PHP安裝不支持UTF8的功能。 Dolibarr不能正常工作。解決這個安裝之前Dolibarr。
    +ErrorPHPDoesNotSupportUTF8=Your PHP installation does not support UTF8 functions. Dolibarr cannot work correctly. Resolve this before installing Dolibarr.
     ErrorDirDoesNotExists=目錄%s不存在。
    -ErrorGoBackAndCorrectParameters=後退和糾正錯誤的參數。
    +ErrorGoBackAndCorrectParameters=Go back and check/correct the parameters.
     ErrorWrongValueForParameter=您可能輸入一個參數的錯誤值%s'的。
     ErrorFailedToCreateDatabase=無法創建數據庫'%s'的。
     ErrorFailedToConnectToDatabase=無法連接到數據庫'%s'的。
     ErrorDatabaseVersionTooLow=資料庫版本 (%s) 太舊. 需要至少版本 %s 或更新版本
     ErrorPHPVersionTooLow=PHP的版本太舊。版本%s是必需的。
    -ErrorConnectedButDatabaseNotFound=連接到數據庫服務器的成功,但'%s'不存在。
    +ErrorConnectedButDatabaseNotFound=Connection to server successful but database '%s' not found.
     ErrorDatabaseAlreadyExists=數據庫'%s'已經存在。
    -IfDatabaseNotExistsGoBackAndUncheckCreate=如果數據庫不存在,請返回並檢查選擇“創建數據庫”。
    +IfDatabaseNotExistsGoBackAndUncheckCreate=If the database does not exist, go back and check option "Create database".
     IfDatabaseExistsGoBackAndCheckCreate=如果數據庫已經存在,請返回並取消選中“創建數據庫”選項。
    -WarningBrowserTooOld=瀏覽器版本太舊. 建議使用Firefox,Chrome, Opera瀏覽器並升級到較新版本.
    +WarningBrowserTooOld=Version of browser is too old. Upgrading your browser to a recent version of Firefox, Chrome or Opera is highly recommended.
     PHPVersion=PHP版本
     License=使用許可
     ConfigurationFile=配置文件
    @@ -45,22 +45,23 @@ DolibarrDatabase=Dolibarr數據庫
     DatabaseType=數據庫類型
     DriverType=驅動類型
     Server=服務器
    -ServerAddressDescription=名稱或IP數據庫服務器,通常填入'localhost'當數據庫服務器的地址存放在Web服務器相同的服務器比
    +ServerAddressDescription=Name or ip address for the database server. Usually 'localhost' when the database server is hosted on the same server as the web server.
     ServerPortDescription=數據庫服務器端口。保持空如果不明。
     DatabaseServer=數據庫服務器
     DatabaseName=數據庫名稱
    -DatabasePrefix=數據庫前綴表
    -AdminLogin=登錄為Dolibarr數據庫所有者。
    -PasswordAgain=第二次再次輸入密碼
    +DatabasePrefix=Database table prefix
    +DatabasePrefixDescription=Database table prefix. If empty, defaults to llx_.
    +AdminLogin=User account for the Dolibarr database owner.
    +PasswordAgain=Retype password confirmation
     AdminPassword=密碼Dolibarr數據庫所有者。
     CreateDatabase=創建數據庫
    -CreateUser=Create owner or grant him permission on database
    +CreateUser=Create user account or grant user account permission on the Dolibarr database
     DatabaseSuperUserAccess=數據庫服務器 - 超級用戶
    -CheckToCreateDatabase=檢查中,如果數據庫不存在,必須創建。 <br>在這種情況下,必須填寫登錄/密碼為超級用戶帳戶在本頁面底部。
    -CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
    -DatabaseRootLoginDescription=允許創建新的數據庫或新用戶,無用的,如果你的數據庫和數據庫登錄已經存在就像當你在一個網站舉辦的托管服務提供商是(用戶登錄)。
    -KeepEmptyIfNoPassword=給空如果用戶沒有密碼(避免這種情況)
    -SaveConfigurationFile=保存價值
    +CheckToCreateDatabase=Check the box if the database does not exist yet and so must be created.<br>In this case, you must also fill in the user name and password for the superuser account at the bottom of this page.
    +CheckToCreateUser=Check the box if:<br>the database user account does not yet exist and so must be created, or<br>if the user account exists but the database does not exist and permissions must be granted.<br>In this case, you must enter the user account and password and <b>also</b> the superuser account name and password at the bottom of this page. If this box is unchecked, database owner and password must already exist.
    +DatabaseRootLoginDescription=Superuser account name (to create new databases or new users), mandatory if the database or its owner does not already exist.
    +KeepEmptyIfNoPassword=Leave empty if superuser has no password (NOT recommended)
    +SaveConfigurationFile=Saving parameters to
     ServerConnection=服務器連接
     DatabaseCreation=數據庫的創建
     CreateDatabaseObjects=數據庫對象的創建
    @@ -71,9 +72,9 @@ CreateOtherKeysForTable=創建外鍵和索引的表%s
     OtherKeysCreation=外鍵和索引創建
     FunctionsCreation=創造功能
     AdminAccountCreation=管理員登錄創作
    -PleaseTypePassword=請鍵入一個密碼,空密碼不得!
    -PleaseTypeALogin=請輸入登錄!
    -PasswordsMismatch=密碼不同,請再試一次!
    +PleaseTypePassword=Please type a password, empty passwords are not allowed!
    +PleaseTypeALogin=Please type a login!
    +PasswordsMismatch=Passwords differs, please try again!
     SetupEnd=安裝完
     SystemIsInstalled=此安裝已完成。
     SystemIsUpgraded=Dolibarr已經升級成功。
    @@ -81,65 +82,65 @@ YouNeedToPersonalizeSetup=您需要配置Dolibarr以滿足您的需求(外觀
     AdminLoginCreatedSuccessfuly=Dolibarr administrator login '<b>%s</b>' created successfully.
     GoToDolibarr=前往Dolibarr
     GoToSetupArea=前往Dolibarr(安裝面積)
    -MigrationNotFinished=您的數據庫的版本是不完全最新的,所以你必須再次運行升級過程。
    +MigrationNotFinished=The database version is not completely up to date: run the upgrade process again.
     GoToUpgradePage=轉到頁再次升級
     WithNoSlashAtTheEnd=沒有斜杠“/”在年底
    -DirectoryRecommendation=這是推薦使用的目錄以外的你對你的網頁目錄。
    +DirectoryRecommendation=It is recommended to use a directory outside of the web pages.
     LoginAlreadyExists=已存在
     DolibarrAdminLogin=Dolibarr管理員登陸
    -AdminLoginAlreadyExists=Dolibarr管理員帳戶<b>'%s'</b>已經存在。
    +AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back if you want to create another one.
     FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
    -WarningRemoveInstallDir=警告,出於安全原因,一旦安裝或升級完成後,你應該刪除<b>安裝目錄或重命名為install.lock,以避免其惡意使用。</b>
    -FunctionNotAvailableInThisPHP=不是可以用這個PHP
    +WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, you should add a file called <b>install.lock</b> into the Dolibarr document directory in order to prevent the accidental/malicious use of the install tools again.
    +FunctionNotAvailableInThisPHP=Not available in this PHP
     ChoosedMigrateScript=選擇遷移腳本
     DataMigration=Database migration (data)
     DatabaseMigration=Database migration (structure + some data)
     ProcessMigrateScript=腳本處理
     ChooseYourSetupMode=選擇你的安裝模式,然後點擊“開始”...
     FreshInstall=全新安裝
    -FreshInstallDesc=使用此模式,如果這是你第一次安裝。如果沒有,這個模式可以不完全修復前安裝,但是如果你想升級你的版本,選擇“升級”模式。
    +FreshInstallDesc=Use this mode if this is your first install. If not, this mode can repair a incomplete previous install. If you want to upgrade your version, choose "Upgrade" mode.
     Upgrade=升級
     UpgradeDesc=如果你使用這種模式已經取代了從一個較新版本的文件舊Dolibarr文件。這將提升您的數據庫和數據。
     Start=開始
     InstallNotAllowed=安裝程序不容許<b>conf.php</b>權限
     YouMustCreateWithPermission=您必須創建文件%s,並為網絡服務器在安裝過程中寫上它的權限。
    -CorrectProblemAndReloadPage=請修正這個問題,請按F5重新載入頁面。
    +CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload the page.
     AlreadyDone=已遷移
     DatabaseVersion=數據庫版本
     ServerVersion=數據庫服務器版本
     YouMustCreateItAndAllowServerToWrite=您必須創建此目錄和Web服務器允許寫進去。
     DBSortingCollation=字符排序
    -YouAskDatabaseCreationSoDolibarrNeedToConnect=你問到創建數據庫<b>%s,</b>但對於這一點,Dolibarr需要連接到伺服器<b>%S</b>與超級用戶<b>%s</b>的權限。
    -YouAskLoginCreationSoDolibarrNeedToConnect=你問到創建數據庫登錄<b>%s,</b>但是對於這一點,Dolibarr需要連接到伺服器<b>%S</b>與超級用戶<b>%s</b>的權限。
    -BecauseConnectionFailedParametersMayBeWrong=作為連接失敗,主機或超級用戶參數一定是錯誤的。
    +YouAskDatabaseCreationSoDolibarrNeedToConnect=You selected create database <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +YouAskLoginCreationSoDolibarrNeedToConnect=You selected create database user <b>%s</b>, but for this, Dolibarr needs to connect to server <b>%s</b> with super user <b>%s</b> permissions.
    +BecauseConnectionFailedParametersMayBeWrong=The database connection failed: the host or super user parameters must be wrong.
     OrphelinsPaymentsDetectedByMethod=孤兒付款檢測方法%s
     RemoveItManuallyAndPressF5ToContinue=手動刪除它,然後按F5鍵繼續。
     FieldRenamed=場更名
    -IfLoginDoesNotExistsCheckCreateUser=如果登錄不存在,但你必須檢查選項“創建用戶”
    -ErrorConnection=服務器<b>“%s”,</b>數據庫名稱<b>“%s”,</b>並登錄<b>“%的</b> ”,或數據庫密碼可能是錯誤或PHP的客戶端版本可能太舊版本相比,數據庫。
    +IfLoginDoesNotExistsCheckCreateUser=If the user does not exist yet, you must check option "Create user"
    +ErrorConnection=Server "<b>%s</b>", database name "<b>%s</b>", login "<b>%s</b>", or database password may be wrong or the PHP client version may be too old compared to the database version.
     InstallChoiceRecommanded=推薦選擇<b>你</b>的安裝版本<b>%%s</b>從當前版本
     InstallChoiceSuggested=<b>選擇安裝所建議的安裝程序</b> 。
    -MigrateIsDoneStepByStep=目標版本(%s)有好幾個版本的差距,因此,安裝向導會回來一次將完成這一個建議未來的遷移。
    -CheckThatDatabasenameIsCorrect=檢查數據庫名稱<b>“%s”</b>是正確的。
    +MigrateIsDoneStepByStep=The targeted version (%s) has a gap of several versions. The install wizard will come back to suggest a further migration once this one is complete.
    +CheckThatDatabasenameIsCorrect=Check that the database name "<b>%s</b>" is correct.
     IfAlreadyExistsCheckOption=如果此名稱是正確的,該數據庫尚不存在,你必須檢查選項“創建數據庫”。
     OpenBaseDir=PHP的openbasedir參數
    -YouAskToCreateDatabaseSoRootRequired=你選中的方塊“創建數據庫”。為此,您需要提供登錄/密碼的超級用戶(形式的底部)。
    -YouAskToCreateDatabaseUserSoRootRequired=你選中的方塊“創建數據庫所有者”。為此,您需要提供登錄/密碼的超級用戶(形式的底部)。
    -NextStepMightLastALongTime=當前步驟可能會持續幾分鐘。請等待下一個屏幕顯示完全,然後再繼續。
    +YouAskToCreateDatabaseSoRootRequired=You checked the box "Create database". For this, you need to provide the login/password of superuser (bottom of form).
    +YouAskToCreateDatabaseUserSoRootRequired=You checked the box "Create database owner". For this, you need to provide the login/password of superuser (bottom of form).
    +NextStepMightLastALongTime=The current step may take several minutes. Please wait until the next screen is shown completely before continuing.
     MigrationCustomerOrderShipping=客戶訂單出貨遷移存儲
     MigrationShippingDelivery=升級存儲航運
     MigrationShippingDelivery2=升級存儲航運2
     MigrationFinished=遷移完成
    -LastStepDesc=<strong>最後一步</strong> :此處定義的登錄名和密碼,您打算使用連接到軟件。不松,因為它是帳戶管理所有其他。
    +LastStepDesc=<strong>Last step</strong>: Define here the login and password you wish to use to connect to Dolibarr. <b>Do not lose this as it is the master account to administer all other/additional user accounts.</b>
     ActivateModule=激活模塊%s
     ShowEditTechnicalParameters=點選這裡以顯示/編輯進階參數設定(專家模式)
    -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
    -ErrorDatabaseVersionForbiddenForMigration=您的資料庫版本是 %s. 如果您需要使用遷移程序進行資料庫結構的變更, 這個版本有嚴重錯誤使得資料遺失.因此, 直到您升級資料庫版本到較新的已解決版本(已知有問題的版本: %s),遷移程序將不會被允許執行.
    -KeepDefaultValuesWamp=您使用從DoliWamp Dolibarr安裝向導,所以這裏建議值已經進行了優化。他們唯一的變化,如果你知道你做什麽。
    -KeepDefaultValuesDeb=您使用從Ubuntu或者Debian軟件包的Dolibarr安裝向導,所以這裏建議值已經進行了優化。只有數據庫的所有者創建的密碼必須完成。其他參數的變化,如果你只知道你做什麽。
    -KeepDefaultValuesMamp=您使用從DoliMamp Dolibarr安裝向導,所以這裏建議值已經進行了優化。他們唯一的變化,如果你知道你做什麽。
    -KeepDefaultValuesProxmox=您使用Proxmox的虛擬設備的Dolibarr安裝向導,因此,這裏提出的價值已經優化。改變他們,只有當你知道你做什麽。
    -UpgradeExternalModule=Run dedicated upgrade process of external modules
    +WarningUpgrade=Warning:\nDid you run a database backup first?\nThis is highly recommended. Loss of data (due to for example bugs in mysql version 5.5.40/41/42/43) may be possible during this process, so it is essential to take a complete dump of your database before starting any migration.\n\nClick OK to start migration process...
    +ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug, making data loss possible if you make structural changes in your database, such as is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a layer (patched) version (list of known buggy versions: %s)
    +KeepDefaultValuesWamp=You used the Dolibarr setup wizard from DoliWamp, so values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesDeb=You used the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so the values proposed here are already optimized. Only the password of the database owner to create must be entered. Change other parameters only if you know what you are doing.
    +KeepDefaultValuesMamp=You used the Dolibarr setup wizard from DoliMamp, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +KeepDefaultValuesProxmox=You used the Dolibarr setup wizard from a Proxmox virtual appliance, so the values proposed here are already optimized. Change them only if you know what you are doing.
    +UpgradeExternalModule=Run dedicated upgrade process of external module
     SetAtLeastOneOptionAsUrlParameter=Set at least one option as a parameter in URL. For example:  '...repair.php?standard=confirmed'
     NothingToDelete=Nothing to clean/delete
     NothingToDo=Nothing to do
    @@ -151,7 +152,7 @@ MigrationSupplierOrder=Data migration for vendor's orders
     MigrationProposal=商業提案/建議書的資料移轉
     MigrationInvoice=數據遷移的客戶的發票
     MigrationContract=數據遷移合同
    -MigrationSuccessfullUpdate=Upgrade successfull
    +MigrationSuccessfullUpdate=升級成功
     MigrationUpdateFailed=升級過程中失敗
     MigrationRelationshipTables=數據遷移的關系表(%s)的
     MigrationPaymentsUpdate=支付數據校正
    @@ -163,9 +164,9 @@ MigrationContractsUpdate=合同數據校正
     MigrationContractsNumberToUpdate=%的合同(縣)更新
     MigrationContractsLineCreation=創建合同號線中1%的合同
     MigrationContractsNothingToUpdate=沒有更多的事情要做
    -MigrationContractsFieldDontExist=場fk_facture不存在了。無事可做。
    +MigrationContractsFieldDontExist=Field fk_facture does not exist anymore. Nothing to do.
     MigrationContractsEmptyDatesUpdate=合同空日期更正
    -MigrationContractsEmptyDatesUpdateSuccess=合約空白日期成功地更正完成
    +MigrationContractsEmptyDatesUpdateSuccess=Contract empty date correction done successfully
     MigrationContractsEmptyDatesNothingToUpdate=沒有合同的日期,以正確的空
     MigrationContractsEmptyCreationDatesNothingToUpdate=沒有合同,以正確的創建日期
     MigrationContractsInvalidDatesUpdate=合同日期更正錯誤的價值
    @@ -187,24 +188,25 @@ MigrationDeliveryDetail=送貨更新
     MigrationStockDetail=更新產品的股票價值
     MigrationMenusDetail=最新動態菜單表
     MigrationDeliveryAddress=在貨物的配送地址更新
    -MigrationProjectTaskActors=數據llx_projet_task_actors遷移表
    +MigrationProjectTaskActors=Data migration for table llx_projet_task_actors
     MigrationProjectUserResp=數據遷移llx_projet領域fk_user_resp到llx_element_contact
     MigrationProjectTaskTime=更新時間花費在幾秒鐘內
     MigrationActioncommElement=在行動上的更新數據
     MigrationPaymentMode=付款方式的數據遷移
     MigrationCategorieAssociation=目錄遷移
    -MigrationEvents=事件遷移正進行新增事件負責人到指定的表格
    -MigrationEventsContact=Migration of events to add event contact into assignement table
    +MigrationEvents=Migration of events to add event owner into assignment table
    +MigrationEventsContact=Migration of events to add event contact into assignment table
     MigrationRemiseEntity=Update entity field value of llx_societe_remise
     MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except
     MigrationUserRightsEntity=Update entity field value of llx_user_rights
     MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights
    +MigrationUserPhotoPath=Migration of photo paths for users
     MigrationReloadModule=Reload module %s
     MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
    -ShowNotAvailableOptions=顯示不可用的選項
    -HideNotAvailableOptions= 隱藏不可用的選項
    -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
    -YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
    -YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
    +ShowNotAvailableOptions=Show unavailable options
    +HideNotAvailableOptions=Hide unavailable options
    +ErrorFoundDuringMigration=Error(s) were reported during the migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but the application or some features may not work correctly until the errors are resolved.
    +YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
    +YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
     ClickHereToGoToApp=Click here to go to your application
    -ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
    +ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
    diff --git a/htdocs/langs/zh_TW/interventions.lang b/htdocs/langs/zh_TW/interventions.lang
    index ae954f2257c..52ee414935b 100644
    --- a/htdocs/langs/zh_TW/interventions.lang
    +++ b/htdocs/langs/zh_TW/interventions.lang
    @@ -4,6 +4,7 @@ Interventions=干預
     InterventionCard=干預卡
     NewIntervention=新的幹預
     AddIntervention=Create intervention
    +ChangeIntoRepeatableIntervention=Change to repeatable intervention
     ListOfInterventions=名單幹預
     ActionsOnFicheInter=幹預的行動
     LastInterventions=Latest %s interventions
    @@ -50,8 +51,8 @@ UseServicesDurationOnFichinter=Use services duration for interventions generated
     UseDurationOnFichinter=Hides the duration field for intervention records
     UseDateWithoutHourOnFichinter=Hides hours and minutes off the date field for intervention records
     InterventionStatistics=Statistics of interventions
    -NbOfinterventions=Nb of intervention cards
    -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation)
    +NbOfinterventions=No. of intervention cards
    +NumberOfInterventionsByMonth=No. of intervention cards by month (date of validation)
     AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them.
     ##### Exports #####
     InterId=Intervention id
    diff --git a/htdocs/langs/zh_TW/main.lang b/htdocs/langs/zh_TW/main.lang
    index c04b7119083..6206d945598 100644
    --- a/htdocs/langs/zh_TW/main.lang
    +++ b/htdocs/langs/zh_TW/main.lang
    @@ -50,21 +50,21 @@ ErrorFailedToSendMail=無法傳送郵件 (寄件人=%s、收件人=%s)
     ErrorFileNotUploaded=檔案沒有上傳。檢查檔案大小沒有超過可允許的最大值,即磁碟上的可用空間以及在此資料夾中有沒有相同檔案。
     ErrorInternalErrorDetected=錯誤檢測
     ErrorWrongHostParameter=錯誤的主機參數
    -ErrorYourCountryIsNotDefined=沒有定義您的國家。到首頁-設定-編輯和後再次填寫表單。
    -ErrorRecordIsUsedByChild=無法刪除此記錄。此記錄至少已使用到一個子記錄。
    +ErrorYourCountryIsNotDefined=你沒有定義國家。請到「首頁-設定-編輯」再填入表單中。
    +ErrorRecordIsUsedByChild=刪除此筆記錄失敗。此記錄至少有一筆子記錄。
     ErrorWrongValue=錯誤的值
     ErrorWrongValueForParameterX=參數%s的錯誤值
     ErrorNoRequestInError=在錯誤狀況下,沒有要求
    -ErrorServiceUnavailableTryLater=服務暫時無法使用。請稍後再試。
    +ErrorServiceUnavailableTryLater=現在沒有服務。請稍後再試一次。
     ErrorDuplicateField=在唯一的欄位有重覆的值
    -ErrorSomeErrorWereFoundRollbackIsDone=發現某些錯誤。我們會滾動式修改。
    -ErrorConfigParameterNotDefined=參數<b>%s</b>沒有定義在 Dolibarr 配置檔案 <b>conf.php</b>裡。
    +ErrorSomeErrorWereFoundRollbackIsDone=找到一些錯誤。變更已經回滾(Changes have been rolled back.)。
    +ErrorConfigParameterNotDefined=在 Dolibarr 設定檔案 <b> conf.php </b> 中參數 <b>%s</b> 未定義。
     ErrorCantLoadUserFromDolibarrDatabase=在 Dolibarr 資料庫中無法找到用戶<b>%s</b>。
     ErrorNoVATRateDefinedForSellerCountry=錯誤,沒有定義 '%s' 國家的營業稅率。
     ErrorNoSocialContributionForSellerCountry=錯誤,在 '%s' 國家中沒有定義社會/財務稅務類別。
     ErrorFailedToSaveFile=錯誤,無法儲存檔案。
    -ErrorCannotAddThisParentWarehouse=您正在試著新增目前已經是子倉庫的父倉庫
    -MaxNbOfRecordPerPage=每頁記錄的最大數
    +ErrorCannotAddThisParentWarehouse=你可試著增加目前有一個下游倉庫的上游倉庫
    +MaxNbOfRecordPerPage=每頁記錄最大數量
     NotAuthorized=您無權這樣做。
     SetDate=設定日期
     SelectDate=選擇日期
    @@ -78,10 +78,10 @@ FileRenamed=檔案已成功地變更名稱
     FileGenerated=檔案已成功地產生
     FileSaved=檔案已成功地儲存
     FileUploaded=檔案已成功地上傳
    -FileTransferComplete=檔案成功地已上傳
    +FileTransferComplete=(各)檔案已成功地上傳
     FilesDeleted=檔案已成功地刪除
     FileWasNotUploaded=夾檔所選定的檔案尚未上傳。點選 "附加檔案"。
    -NbOfEntries=條目的數量
    +NbOfEntries=項目數量
     GoToWikiHelpPage=讀取線上求助 (需要連上網路)
     GoToHelpPage=讀取求助
     RecordSaved=記錄保存
    @@ -94,7 +94,7 @@ Undefined=未定義
     PasswordForgotten=忘記密碼?
     NoAccount=沒有帳號?
     SeeAbove=見上文
    -HomeArea=首頁區
    +HomeArea=首頁
     LastConnexion=最新一次連線
     PreviousConnexion=上次連線時間
     PreviousValue=之前值
    @@ -142,6 +142,7 @@ Closed=結案
     Closed2=結案
     NotClosed=尚未結案
     Enabled=啟用
    +Enable=啓用
     Deprecated=放棄
     Disable=禁用
     Disabled=已禁用
    @@ -153,7 +154,7 @@ Update=更新
     Close=結案
     CloseBox=從儀表表中移除小工具
     Confirm=確認
    -ConfirmSendCardByMail=您真要透過電子郵件發送給 <b>%s</b> 此卡片的內容?
    +ConfirmSendCardByMail=你真的要郵寄此卡片的內容給 <b>%s</b>?
     Delete=刪除
     Remove=移除
     Resiliate=終止
    @@ -327,7 +328,7 @@ Copy=複製
     Paste=貼上
     Default=預設
     DefaultValue=預設值
    -DefaultValues=預設值
    +DefaultValues=預設值/過濾值/排序
     Price=價格
     PriceCurrency=價格(目前)
     UnitPrice=單位價格
    @@ -347,7 +348,7 @@ AmountTTCShort=金額(含稅)
     AmountHT=金額(稅後)
     AmountTTC=金額(含稅)
     AmountVAT=稅金
    -MulticurrencyAlreadyPaid=已支付, 原來幣別
    +MulticurrencyAlreadyPaid=已付款,原幣別
     MulticurrencyRemainderToPay=保持付款, 原來幣別
     MulticurrencyPaymentAmount=付款金額, 原來幣別
     MulticurrencyAmountHT=金額(稅後), 原來幣別
    @@ -428,7 +429,7 @@ ActionNotApplicable=不適用
     ActionRunningNotStarted=從頭開始
     ActionRunningShort=進行中
     ActionDoneShort=已完成
    -ActionUncomplete=尚未完成
    +ActionUncomplete=Incomplete
     LatestLinkedEvents=最新 %s 已連結的事件
     CompanyFoundation=公司/組織
     Accountant=會計人員
    @@ -436,6 +437,7 @@ ContactsForCompany=此合作方的通訊錄
     ContactsAddressesForCompany=此合作方的通訊錄及地址
     AddressesForCompany=此合作方的地址
     ActionsOnCompany=此合作方的各種事件
    +ActionsOnContact=Events about this contact/address
     ActionsOnMember=此會員的各種事件
     ActionsOnProduct=此產品的各種事件
     NActionsLate=%s的後期
    @@ -454,7 +456,7 @@ Duration=為期
     TotalDuration=總時間
     Summary=摘要
     DolibarrStateBoard=資料庫統計
    -DolibarrWorkBoard=開放項目儀表板
    +DolibarrWorkBoard=待定貨物
     NoOpenedElementToProcess=沒有已開放元件要處理
     Available=可用的
     NotYetAvailable=尚不可用
    @@ -468,7 +470,7 @@ and=和
     or=或
     Other=其他
     Others=其他
    -OtherInformations=其他信息
    +OtherInformations=其他資訊
     Quantity=數量
     Qty=量
     ChangedBy=修改者
    @@ -506,7 +508,7 @@ None=無
     NoneF=無
     NoneOrSeveral=沒有或幾個
     Late=最新
    -LateDesc=延遲定義記錄是否延遲取決於您的設定。 詢問您的管理員如何從主頁的選單 - 設定 - 警告更改延遲。
    +LateDesc=記錄是否延遲取決於您的設定。 請您的管理員從選單「首頁 - 設置 - 警告」變更延遲。
     NoItemLate=No late item
     Photo=圖片
     Photos=圖片
    @@ -530,18 +532,6 @@ September=九月
     October=十月
     November=十一月
     December=十二月
    -JanuaryMin=一月
    -FebruaryMin=二月
    -MarchMin=三月
    -AprilMin=四月
    -MayMin=五月
    -JuneMin=六月
    -JulyMin=七月
    -AugustMin=八月
    -SeptemberMin=九月
    -OctoberMin=十月
    -NovemberMin=十一月
    -DecemberMin=十二月
     Month01=Jan
     Month02=Feb
     Month03=Mar
    @@ -646,6 +636,8 @@ SendMail=傳送電子郵件
     EMail=電子郵件
     NoEMail=沒有電子郵件
     Email=電子郵件
    +AlreadyRead=Alreay read
    +NotRead=Not read
     NoMobilePhone=沒有手機
     Owner=擁有者
     FollowingConstantsWillBeSubstituted=接下來常數將代替相對應的值。
    @@ -677,7 +669,7 @@ NeverReceived=從未收到
     Canceled=取消
     YouCanChangeValuesForThisListFromDictionarySetup=您可從選單「設定-各式分類」改變此明細表的值
     YouCanChangeValuesForThisListFrom=您可從選單 %s 修改此明細表的值
    -YouCanSetDefaultValueInModuleSetup=當建立一筆新記錄時您可以在設定模組中設定要使用的預設值
    +YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record in module setup
     Color=彩色
     Documents=附加檔案
     Documents2=文件
    @@ -703,7 +695,7 @@ DateOfSignature=簽名日期
     HidePassword=顯示命令時隱藏密碼
     UnHidePassword=顯示實際命令時顯示密碼
     Root=根目錄
    -Informations=資訊
    +Informations=Information
     Page=頁面
     Notes=備註
     AddNewLine=新增一行
    @@ -716,15 +708,15 @@ Merge=合併
     DocumentModelStandardPDF=標準 PDF 範本
     PrintContentArea=顯示頁面列印的主要內容區域
     MenuManager=選單管理器
    -WarningYouAreInMaintenanceMode=警告,您在維護模式,因此目前只能允許登入<b>%s</b>及使用應用程式。
    +WarningYouAreInMaintenanceMode=Warning, you are in maintenance mode, so only login <b>%s</b> is allowed to use the application at this time.
     CoreErrorTitle=系統錯誤
     CoreErrorMessage=很抱歉,產生錯誤。連絡您系統管理員以確認記錄檔或禁用 $dolibarr_main_prod=1 取得更多資訊。
     CreditCard=信用卡
     ValidatePayment=驗證付款
     CreditOrDebitCard=信用或金融卡
     FieldsWithAreMandatory=<b>%s</b>的欄位是強制性
    -FieldsWithIsForPublic=在公開會員明細表中 <b>%s</b> 的欄位是顯示。如果你不想要顯示,檢查“公共”盒並關閉。
    -AccordingToGeoIPDatabase=(根據 GeoIP 的轉換)
    +FieldsWithIsForPublic=Fields with <b>%s</b> are shown in public list of members. If you don't want this, uncheck the "public" box.
    +AccordingToGeoIPDatabase=(according to GeoIP conversion)
     Line=線
     NotSupported=不支持
     RequiredField=必填欄位
    @@ -732,6 +724,8 @@ Result=結果
     ToTest=測試
     ValidateBefore=卡片在使用之前必須經過驗證此功能
     Visibility=能見度
    +Totalizable=Totalizable
    +TotalizableDesc=This field is totalizable in list
     Private=私人
     Hidden=隱蔽
     Resources=資源
    @@ -750,6 +744,7 @@ LinkTo=連線到
     LinkToProposal=連線到報價單/提案/建議書
     LinkToOrder=連線到訂單
     LinkToInvoice=連線到發票
    +LinkToTemplateInvoice=Link to template invoice
     LinkToSupplierOrder=連線到供應商訂單
     LinkToSupplierProposal=連線到供應商報價/提案/建議書
     LinkToSupplierInvoice=連線到供應商發票
    @@ -758,6 +753,7 @@ LinkToIntervention=連線到干預
     CreateDraft=建立草稿
     SetToDraft=回到草稿
     ClickToEdit=點擊後“編輯”
    +ClickToRefresh=Click to refresh
     EditWithEditor=用 CKEditor 編輯
     EditWithTextEditor=用文字編輯器編輯
     EditHTMLSource=編輯 HTML 來源檔
    @@ -772,14 +768,14 @@ ByDay=依日期
     BySalesRepresentative=依業務代表
     LinkedToSpecificUsers=連線到特定用戶連絡人
     NoResults=無結果
    -AdminTools=管理者工具
    +AdminTools=Admin Tools
     SystemTools=系統工具
     ModulesSystemTools=模組工具
     Test=測試
     Element=元件
     NoPhotoYet=還沒有圖片
     Dashboard=儀表板
    -MyDashboard=我的儀表板
    +MyDashboard=My Dashboard
     Deductible=免賠額
     from=從
     toward=toward
    @@ -802,7 +798,7 @@ PrintFile=列印檔案 %s
     ShowTransaction=在銀行帳戶中顯示交易
     ShowIntervention=顯示干預
     ShowContract=顯示合約
    -GoIntoSetupToChangeLogo=移到首頁 - 設定 - 公司 以變更標誌或是移到 首頁 - 設定 - 顯示 中隱藏
    +GoIntoSetupToChangeLogo=回到「首頁-設定-公司」以變更 logo 或是到「首頁-設定-顯示」設定成隱藏
     Deny=拒絕
     Denied=拒絕
     ListOf=%s 的明細表
    @@ -818,12 +814,12 @@ Sincerely=敬祝商祺
     DeleteLine=刪除行
     ConfirmDeleteLine=您認定您要刪除此行嗎?
     NoPDFAvailableForDocGenAmongChecked=在確定記錄的中沒有可用的 PDF 可以產生文件
    -TooManyRecordForMassAction=大量行動選取了記錄。該操作僅限於 %s 記錄明細表。
    +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records.
     NoRecordSelected=沒有記錄被選取
     MassFilesArea=透過大量操作構建的文件區域
     ShowTempMassFilesArea=顯示透過大量操作構建的文件區域
    -ConfirmMassDeletion=大量刪除確認
    -ConfirmMassDeletionQuestion=您確定您要刪除 %s 的記錄?
    +ConfirmMassDeletion=Mass delete confirmation
    +ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record?
     RelatedObjects=相關物件
     ClassifyBilled=分類計費
     ClassifyUnbilled=分類未開單
    @@ -841,7 +837,7 @@ Calendar=日曆
     GroupBy=群組依...
     ViewFlatList=大圖示明細表
     RemoveString=移除字串‘%s’
    -SomeTranslationAreUncomplete=某些語言可能已翻譯部分或可能包含錯誤。若您發現了,可在 <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a>註冊並修改語言檔。
    +SomeTranslationAreUncomplete=Some of the languages offered may be only partially translated or may contain errors. Please help to correct your language by registering at <a href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/</a> to add your improvements.
     DirectDownloadLink=直接下載的連線(公開/外部)
     DirectDownloadInternalLink=直接下載的連線(需要登入及存取權限)
     Download=下載
    @@ -852,25 +848,34 @@ ModuleBuilder=模組建立者
     SetMultiCurrencyCode=設定幣別
     BulkActions=大量動作
     ClickToShowHelp=點一下顯示工具提示
    -WebSite=網站
    -WebSites=各式網站
    -WebSiteAccounts=網站帳號
    +WebSite=Website
    +WebSites=網站
    +WebSiteAccounts=Website accounts
     ExpenseReport=費用報表
     ExpenseReports=費用報表
     HR=人資
     HRAndBank=人資與銀行
     AutomaticallyCalculated=自動計算
     TitleSetToDraft=回到草稿
    -ConfirmSetToDraft=您確定您要回到草稿狀態?
    +ConfirmSetToDraft=Are you sure you want to go back to Draft status?
     ImportId=輸入ID
     Events=事件
    -EMailTemplates=Email 的範本
    -FileNotShared=檔案沒有分享到外部
    +EMailTemplates=Email templates
    +FileNotShared=File not shared to external public
     Project=專案
     Projects=各式專案
    +LeadOrProject=Lead | Project
    +LeadsOrProjects=Leads | Projects
    +Lead=Lead
    +Leads=Leads
    +ListOpenLeads=List open leads
    +ListOpenProjects=List open projects
    +NewLeadOrProject=New lead or project
     Rights=權限
     LineNb=行數號
     IncotermLabel=交易條件
    +TabLetteringCustomer=Customer lettering
    +TabLetteringSupplier=Supplier lettering
     # Week day
     Monday=星期一
     Tuesday=星期二
    @@ -927,15 +932,15 @@ SearchIntoInterventions=干預/介入
     SearchIntoContracts=合約
     SearchIntoCustomerShipments=客戶關係
     SearchIntoExpenseReports=費用報表
    -SearchIntoLeaves=休假
    +SearchIntoLeaves=Leave
     CommentLink=註解
     NbComments=註解數
     CommentPage=註解空間
     CommentAdded=註解已新增
     CommentDeleted=註解已刪除
     Everybody=每個人
    -PayedBy=由誰付款
    -PayedTo=付款給
    +PayedBy=Paid by
    +PayedTo=Paid to
     Monthly=每月
     Quarterly=每季
     Annual=每年
    @@ -945,6 +950,8 @@ LocalAndRemote=本地與遠端
     KeyboardShortcut=鍵盤快捷鍵
     AssignedTo=指定給
     Deletedraft=刪除草稿
    -ConfirmMassDraftDeletion=草稿大量刪除確認
    +ConfirmMassDraftDeletion=Draft mass delete confirmation
     FileSharedViaALink=透過連線分享檔案
    -
    +SelectAThirdPartyFirst=Select a third party first...
    +YouAreCurrentlyInSandboxMode=You are currently in the %s "sandbox" mode
    +Inventory=庫存
    diff --git a/htdocs/langs/zh_TW/members.lang b/htdocs/langs/zh_TW/members.lang
    index 4547ea00687..f4bbd3d9c1b 100644
    --- a/htdocs/langs/zh_TW/members.lang
    +++ b/htdocs/langs/zh_TW/members.lang
    @@ -88,7 +88,7 @@ ConfirmDeleteSubscription=Are you sure you want to delete this subscription?
     Filehtpasswd=htpasswd文件
     ValidateMember=驗證會員
     ConfirmValidateMember=Are you sure you want to validate this member?
    -FollowingLinksArePublic=下面的鏈接是沒有任何Dolibarr權限保護打開的網頁。他們不是格式化網頁,提供的例子,說明如何列出成員數據庫。
    +FollowingLinksArePublic=The following links are open pages not protected by any Dolibarr permission. They are not formatted pages, provided as example to show how to list members database.
     PublicMemberList=公共成員名單
     BlankSubscriptionForm=Public self-subscription form
     BlankSubscriptionFormDesc=Dolibarr can provide you a public URL/website to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form may also be automatically provided.
    @@ -124,7 +124,7 @@ CardContent=內容您的會員卡
     ThisIsContentOfYourMembershipRequestWasReceived=We want to let you know that your membership request was received.<br><br>
     ThisIsContentOfYourMembershipWasValidated=We want to let you know that your membership was validated with the following information:<br><br>
     ThisIsContentOfYourSubscriptionWasRecorded=We want to let you know that your new subscription was recorded.<br><br>
    -ThisIsContentOfSubscriptionReminderEmail=We want to let you know thet your subscription is about to expire. We hope you can make a renewal of it.<br><br>
    +ThisIsContentOfSubscriptionReminderEmail=We want to let you know that your subscription is about to expire or is already expired (__MEMBER_LAST_SUBSCRIPTION_DATE_END__). We hope you can make a renewal of it.<br><br>
     ThisIsContentOfYourCard=This is a remind of the information we get about you. Feel free to contact us if something looks wrong.<br><br>
     DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Subject of the e-mail received in case of auto-inscription of a guest
     DescADHERENT_AUTOREGISTER_NOTIF_MAIL=E-mail received in case of auto-inscription of a guest
    @@ -188,11 +188,10 @@ MembersByNature=This screen show you statistics on members by nature.
     MembersByRegion=This screen show you statistics on members by region.
     VATToUseForSubscriptions=VAT rate to use for subscriptions
     NoVatOnSubscription=No TVA for subscriptions
    -MEMBER_PAYONLINE_SENDEMAIL=Email to use for email warning when Dolibarr receive a confirmation of a validated payment for a subscription (Example: paymentdone@example.com)
     ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for subscription line into invoice: %s
     NameOrCompany=Name or company
     SubscriptionRecorded=Subscription recorded
     NoEmailSentToMember=No email sent to member
     EmailSentToMember=Email sent to member at %s
     SendReminderForExpiredSubscriptionTitle=Send reminder by email for expired subscription
    -SendReminderForExpiredSubscription=Send reminder by email to members when subscription is about to expire (parameter is number of days before end of subscription to send the remind)
    +SendReminderForExpiredSubscription=Send reminder by email to members when subscription is about to expire (parameter is number of days before end of subscription to send the remind. It can be a list of days separated by a semicolon, for example '10;5;0;-5')
    diff --git a/htdocs/langs/zh_TW/other.lang b/htdocs/langs/zh_TW/other.lang
    index 2a7b0282b2b..90c42c2ec4a 100644
    --- a/htdocs/langs/zh_TW/other.lang
    +++ b/htdocs/langs/zh_TW/other.lang
    @@ -3,7 +3,7 @@ SecurityCode=安全代碼
     NumberingShort=N°
     Tools=工具
     TMenuTools=Tools
    -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.<br><br>All the tools can be reached in the left menu.
    +ToolsDesc=All tools not included in other menu entries are grouped here.<br>All the tools can be accessed via the left menu.
     Birthday=生日
     BirthdayDate=Birthday date
     DateToBirth=出生日期
    @@ -23,7 +23,7 @@ MessageForm=Message on online payment form
     MessageOK=訊息驗證支付返回頁面
     MessageKO=取消支付返回頁面的訊息
     ContentOfDirectoryIsNotEmpty=Content of this directory is not empty.
    -DeleteAlsoContentRecursively=Check to delete all content recursiveley
    +DeleteAlsoContentRecursively=Check to delete all content recursively
     
     YearOfInvoice=Year of invoice date
     PreviousYearOfInvoice=Previous year of invoice date
    @@ -31,9 +31,6 @@ NextYearOfInvoice=Following year of invoice date
     DateNextInvoiceBeforeGen=Date of next invoice (before generation)
     DateNextInvoiceAfterGen=Date of next invoice (after generation)
     
    -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    -Notify_FICHINTER_VALIDATE=幹預驗證
    -Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_ORDER_VALIDATE=驗證客戶訂單
     Notify_ORDER_SENTBYMAIL=通過郵件發送的客戶訂單
     Notify_ORDER_SUPPLIER_SENTBYMAIL=通過郵件發送的供應商的訂單
    @@ -41,8 +38,8 @@ Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
     Notify_ORDER_SUPPLIER_APPROVE=供應商為了批準
     Notify_ORDER_SUPPLIER_REFUSE=供應商的訂單被拒絕
     Notify_PROPAL_VALIDATE=驗證客戶的客戶提案/建議書
    -Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
    -Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
    +Notify_PROPAL_CLOSE_SIGNED=Customer proposal closed signed
    +Notify_PROPAL_CLOSE_REFUSED=Customer proposal closed refused
     Notify_PROPAL_SENTBYMAIL=通過郵件發送的商業提案/建議書
     Notify_WITHDRAW_TRANSMIT=傳輸撤軍
     Notify_WITHDRAW_CREDIT=信貸撤離
    @@ -51,15 +48,17 @@ Notify_COMPANY_CREATE=第三方創建
     Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
     Notify_BILL_VALIDATE=客戶發票驗證
     Notify_BILL_UNVALIDATE=Customer invoice unvalidated
    -Notify_BILL_PAYED=客戶發票payed
    +Notify_BILL_PAYED=Customer invoice paid
     Notify_BILL_CANCEL=客戶發票取消
     Notify_BILL_SENTBYMAIL=通過郵件發送的客戶發票
     Notify_BILL_SUPPLIER_VALIDATE=供應商發票驗證
    -Notify_BILL_SUPPLIER_PAYED=供應商發票payed
    +Notify_BILL_SUPPLIER_PAYED=Supplier invoice paid
     Notify_BILL_SUPPLIER_SENTBYMAIL=通過郵件發送的供應商發票
     Notify_BILL_SUPPLIER_CANCELED=Supplier invoice cancelled
     Notify_CONTRACT_VALIDATE=合同驗證
     Notify_FICHEINTER_VALIDATE=幹預驗證
    +Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention
    +Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
     Notify_SHIPPING_VALIDATE=航運驗證
     Notify_SHIPPING_SENTBYMAIL=通過電子郵件發送的航運
     Notify_MEMBER_VALIDATE=會員驗證
    @@ -71,25 +70,31 @@ Notify_PROJECT_CREATE=Project creation
     Notify_TASK_CREATE=Task created
     Notify_TASK_MODIFY=Task modified
     Notify_TASK_DELETE=Task deleted
    +Notify_EXPENSE_REPORT_VALIDATE=Expense report validated (approval required)
    +Notify_EXPENSE_REPORT_APPROVE=Expense report approved
    +Notify_HOLIDAY_VALIDATE=Leave request validated (approval required)
    +Notify_HOLIDAY_APPROVE=Leave request approved
     SeeModuleSetup=See setup of module %s
     NbOfAttachedFiles=所附文件數/文件
     TotalSizeOfAttachedFiles=附件大小總計
     MaxSize=檔案最大
     AttachANewFile=附加一個新的檔案/文件
     LinkedObject=鏈接對象
    -NbOfActiveNotifications=Number of notifications (nb of recipient emails)
    +NbOfActiveNotifications=Number of notifications (no. of recipient emails)
     PredefinedMailTest=__(Hello)__\nThis is a test mail sent to __EMAIL__.\nThe two lines are separated by a carriage return.\n\n__USER_SIGNATURE__
     PredefinedMailTestHtml=__(Hello)__\nThis is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__USER_SIGNATURE__
    -PredefinedMailContentSendInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to not be payed. So this is the invoice in attachment again, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendProposal=__(Hello)__\n\nYou will find here the commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nYou will find here the price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendOrder=__(Hello)__\n\nYou will find here the order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nYou will find here our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nYou will find here the invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendShipping=__(Hello)__\n\nYou will find here the shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    -PredefinedMailContentSendFichInter=__(Hello)__\n\nYou will find here the intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContract=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendInvoiceReminder=__(Hello)__\n\nWe would like to warn you that the invoice  __REF__ seems to have not been paid. The invoice is attached, as a reminder.\n\n__ONLINE_PAYMENT_TEXT_AND_URL__\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendProposal=__(Hello)__\n\nPlease find attached commercial proposal __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierProposal=__(Hello)__\n\nPlease find attached price request __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendOrder=__(Hello)__\n\nPlease find attached order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierOrder=__(Hello)__\n\nPlease find attached our order __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendSupplierInvoice=__(Hello)__\n\nPlease find attached invoice __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendShipping=__(Hello)__\n\nPlease find attached shipping __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentSendFichInter=__(Hello)__\n\nPlease find attached intervention __REF__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentThirdparty=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
    +PredefinedMailContentContact=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentUser=__(Hello)__\n\n\n__(Sincerely)__\n\n__USER_SIGNATURE__
     PredefinedMailContentLink=You can click on the link below to make your payment if it is not already done.\n\n%s\n\n
     DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available.
    @@ -172,7 +177,7 @@ EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use
     ProfIdShortDesc=<b>教授ID為%s</b>是一個國家的信息取決於第三方。 <br>例如,對於國家的<b>%s,</b>它的代碼<b>的%s。</b>
     DolibarrDemo=Dolibarr的ERP / CRM的演示
     StatsByNumberOfUnits=Statistics for sum of qty of products/services
    -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...)
    +StatsByNumberOfEntities=Statistics in number of referring entities (no. of invoice, or order...)
     NumberOfProposals=提案/建議書的數量
     NumberOfCustomerOrders=Number of customer orders
     NumberOfCustomerInvoices=Number of customer invoices
    @@ -185,9 +190,10 @@ NumberOfUnitsCustomerInvoices=Number of units on customer invoices
     NumberOfUnitsSupplierProposals=供應商提案/建議書的單位數量
     NumberOfUnitsSupplierOrders=Number of units on supplier orders
     NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
    -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you.
    +EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
     EMailTextInterventionValidated=幹預%s已被驗證。
     EMailTextInvoiceValidated=發票%s已被確認。
    +EMailTextInvoicePayed=The invoice %s has been paid.
     EMailTextProposalValidated=此提案/建議書 %s 已經驗證。
     EMailTextProposalClosedSigned=此提案/建議書 %s 已結束簽約。
     EMailTextOrderValidated=該命令%s已被驗證。
    @@ -197,6 +203,10 @@ EMailTextOrderApprovedBy=該命令%s已被%s批準
     EMailTextOrderRefused=該命令%s已被拒絕。
     EMailTextOrderRefusedBy=該命令%s已經%s拒絕
     EMailTextExpeditionValidated=The shipping %s has been validated.
    +EMailTextExpenseReportValidated=The expense report %s has been validated.
    +EMailTextExpenseReportApproved=The expensereport %s has been approved.
    +EMailTextHolidayValidated=The leave request %s has been validated.
    +EMailTextHolidayApproved=The leave request %s has been approved.
     ImportedWithSet=輸入數據集
     DolibarrNotification=自動通知
     ResizeDesc=輸入新的高度新的寬度<b>或</b> 。比率將維持在調整大小...
    @@ -204,7 +214,7 @@ NewLength=新寬
     NewHeight=新高度
     NewSizeAfterCropping=新的尺寸裁剪後
     DefineNewAreaToPick=定義圖像的新領域挑選(圖像左側單擊然後拖動,直到到達對面角落)
    -CurrentInformationOnImage=對當前圖像信息
    +CurrentInformationOnImage=This tool was designed to help you to resize or crop an image. This is the information on the current edited image
     ImageEditor=圖像編輯器
     YouReceiveMailBecauseOfNotification=您收到此消息,因為您的電子郵件已被添加到列表的目標是特定的事件通知到%%s的軟件第
     YouReceiveMailBecauseOfNotification2=此事件是:
    @@ -235,6 +245,10 @@ YourPasswordMustHaveAtLeastXChars=Your password must have at least <strong>%s</s
     YourPasswordHasBeenReset=Your password has been reset successfully
     ApplicantIpAddress=IP address of applicant
     SMSSentTo=SMS sent to %s
    +MissingIds=Missing ids
    +ThirdPartyCreatedByEmailCollector=Third party created by email collector from email ID %s
    +ContactCreatedByEmailCollector=Contact/address created by email collector from email ID %s
    +ProjectCreatedByEmailCollector=Project created by email collector from email ID %s
     
     ##### Export #####
     ExportsArea=出口地區
    @@ -248,5 +262,7 @@ WebsiteSetup=Setup of module website
     WEBSITE_PAGEURL=URL of page
     WEBSITE_TITLE=標題
     WEBSITE_DESCRIPTION=廠商品號/品名/商品描述
    +WEBSITE_IMAGE=Image
    +WEBSITE_IMAGEDesc=Relative path of the image media. You can keep this empty as this is rarely used (it can be used by dynamic content to show a preview of a list of blog posts).
     WEBSITE_KEYWORDS=Keywords
     LinesToImport=Lines to import
    diff --git a/htdocs/langs/zh_TW/paybox.lang b/htdocs/langs/zh_TW/paybox.lang
    index 2a58d969488..f2b92bd4087 100644
    --- a/htdocs/langs/zh_TW/paybox.lang
    +++ b/htdocs/langs/zh_TW/paybox.lang
    @@ -3,7 +3,7 @@ PayBoxSetup=PayBox模塊設置
     PayBoxDesc=該模塊提供的網頁,以便在付款<a href="http://www.paybox.com" target="_blank">Paybox</a>客戶。這可以用來為一個自由付款或就某一Dolibarr對象(發票,訂貨,付款...)
     FollowingUrlAreAvailableToMakePayments=以下網址可提供給客戶的網頁上,能夠作出Dolibarr支付對象
     PaymentForm=付款方式
    -WelcomeOnPaymentPage=歡迎您來到我們的在線支付服務
    +WelcomeOnPaymentPage=Welcome to our online payment service
     ThisScreenAllowsYouToPay=這個屏幕允許你進行網上支付%s。
     ThisIsInformationOnPayment=這是在做付款信息
     ToComplete=要完成
    @@ -20,10 +20,11 @@ ToOfferALinkForOnlinePaymentOnInvoice=網址提供發票一%s在線支付的用
     ToOfferALinkForOnlinePaymentOnContractLine=網址提供了一個合同線%s在線支付的用戶界面
     ToOfferALinkForOnlinePaymentOnFreeAmount=網址提供一個免費的網上支付金額%s用戶界面
     ToOfferALinkForOnlinePaymentOnMemberSubscription=網址為會員提供訂閱%s在線支付的用戶界面
    +ToOfferALinkForOnlinePaymentOnDonation=URL to offer a %s online payment user interface for payment of donation
     YouCanAddTagOnUrl=您還可以添加<b>標簽=</b> url參數<b>及<i>價值</i></b>的任何網址(只需要支付免費)添加自己的註釋標記付款。
    -SetupPayBoxToHavePaymentCreatedAutomatically=設置您的<b>%s</b> PayBox與網址有paybox付款時自動創建的驗證。
    +SetupPayBoxToHavePaymentCreatedAutomatically=Setup your Paybox with url <b>%s</b> to have payment created automatically when validated by Paybox.
     YourPaymentHasBeenRecorded=本頁面確認您的付款已記錄。謝謝。
    -YourPaymentHasNotBeenRecorded=您的付款並沒有被記錄和交易已取消。謝謝。
    +YourPaymentHasNotBeenRecorded=Your payment has NOT been recorded and the transaction has been canceled. Thank you.
     AccountParameter=帳戶參數
     UsageParameter=使用參數
     InformationToFindParameters=幫助,找到你的%s帳戶信息
    diff --git a/htdocs/langs/zh_TW/projects.lang b/htdocs/langs/zh_TW/projects.lang
    index ae068e55c55..b9404a028dc 100644
    --- a/htdocs/langs/zh_TW/projects.lang
    +++ b/htdocs/langs/zh_TW/projects.lang
    @@ -33,14 +33,14 @@ ConfirmDeleteAProject=您確定要刪除此專案嗎?
     ConfirmDeleteATask=您確定要刪除此任務嗎?
     OpenedProjects=Open projects
     OpenedTasks=Open tasks
    -OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status
    -OpportunitiesStatusForProjects=Opportunities amount of projects by status
    +OpportunitiesStatusForOpenedProjects=Leads amount of open projects by status
    +OpportunitiesStatusForProjects=Leads amount of projects by status
     ShowProject=顯示專案
     ShowTask=顯示任務
     SetProject=設定專案
     NoProject=有定義的專案或擁有者
    -NbOfProjects=專案號
    -NbOfTasks=Nb of tasks
    +NbOfProjects=No. of projects
    +NbOfTasks=No. of tasks
     TimeSpent=花費的時間
     TimeSpentByYou=Time spent by you
     TimeSpentByUser=Time spent by user
    @@ -79,19 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
     GoToListOfTasks=Go to list of tasks
     GoToGanttView=Go to Gantt view
     GanttView=Gantt View
    -ListProposalsAssociatedProject=指定給專案的商業提案/建議書清單
    -ListOrdersAssociatedProject=List of customer orders associated with the project
    -ListInvoicesAssociatedProject=List of customer invoices associated with the project
    -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
    -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
    -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
    -ListContractAssociatedProject=名單與項目有關的合同
    -ListShippingAssociatedProject=List of shippings associated with the project
    -ListFichinterAssociatedProject=名單與項目相關的幹預措施
    -ListExpenseReportsAssociatedProject=List of expense reports associated with the project
    -ListDonationsAssociatedProject=List of donations associated with the project
    -ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
    -ListActionsAssociatedProject=名單與項目有關的行動
    +ListProposalsAssociatedProject=List of the commercial proposals related to the project
    +ListOrdersAssociatedProject=List of customer orders related to the project
    +ListInvoicesAssociatedProject=List of customer invoices related to the project
    +ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
    +ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
    +ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
    +ListContractAssociatedProject=List of contracts related to the project
    +ListShippingAssociatedProject=List of shippings related to the project
    +ListFichinterAssociatedProject=List of interventions related to the project
    +ListExpenseReportsAssociatedProject=List of expense reports related to the project
    +ListDonationsAssociatedProject=List of donations related to the project
    +ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
    +ListSalariesAssociatedProject=List of payments of salaries related to the project
    +ListActionsAssociatedProject=List of events related to the project
     ListTaskTimeUserProject=List of time consumed on tasks of project
     ListTaskTimeForTask=List of time consumed on task
     ActivityOnProjectToday=Activity on project today
    @@ -99,9 +100,9 @@ ActivityOnProjectYesterday=Activity on project yesterday
     ActivityOnProjectThisWeek=對項目活動周
     ActivityOnProjectThisMonth=本月初對項目活動
     ActivityOnProjectThisYear=今年對項目活動
    -ChildOfProjectTask=兒童的項目/任務
    -ChildOfTask=Child of task
    -TaskHasChild=Task has child
    +ChildOfProjectTask=專案/任務的子項
    +ChildOfTask=任務的子項
    +TaskHasChild=任務有子項任務
     NotOwnerOfProject=不是所有者的私人項目
     AffectedTo=受影響
     CantRemoveProject=這個項目不能刪除,因為它是由一些(其他對象引用的發票,訂單或其他)。見參照資訊標簽。
    @@ -128,7 +129,7 @@ LinkedToAnotherCompany=鏈接到其他第三方
     TaskIsNotAssignedToUser=Task not assigned to user. Use button '<strong>%s</strong>' to assign task now.
     ErrorTimeSpentIsEmpty=所花費的時間是空的
     ThisWillAlsoRemoveTasks=這一行動也將刪除所有項目任務<b>(%s</b>任務的時刻),花全部的時間都投入。
    -IfNeedToUseOhterObjectKeepEmpty=如果某些對象(發票,訂單,...),屬於其他第三方,必須與該項目以創建,保持這個空項目多的第三方。
    +IfNeedToUseOtherObjectKeepEmpty=如果某些對象(發票,訂單,...),屬於其他第三方,必須與該項目以創建,保持這個空項目多的第三方。
     CloneProject=Clone project
     CloneTasks=Clone tasks
     CloneContacts=Clone contacts
    @@ -146,11 +147,11 @@ ProjectModifiedInDolibarr=專案 %s 已修改
     TaskCreatedInDolibarr=Task %s created
     TaskModifiedInDolibarr=Task %s modified
     TaskDeletedInDolibarr=Task %s deleted
    -OpportunityStatus=Opportunity status
    +OpportunityStatus=Lead status
     OpportunityStatusShort=Opp. status
    -OpportunityProbability=Opportunity probability
    +OpportunityProbability=Lead probability
     OpportunityProbabilityShort=Opp. probab.
    -OpportunityAmount=Opportunity amount
    +OpportunityAmount=Lead amount
     OpportunityAmountShort=Opp. amount
     OpportunityAmountAverageShort=Average Opp. amount
     OpportunityAmountWeigthedShort=Weighted Opp. amount
    @@ -167,8 +168,9 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=投稿
     SelectElement=Select element
     AddElement=Link to element
     # Documents models
    -DocumentModelBeluga=Project template for linked objects overview
    -DocumentModelBaleine=Project report template for tasks
    +DocumentModelBeluga=Project document template for linked objects overview
    +DocumentModelBaleine=Project document template for tasks
    +DocumentModelTimeSpent=Project report template for time spent
     PlannedWorkload=Planned workload
     PlannedWorkloadShort=Workload
     ProjectReferers=相關項目
    @@ -182,6 +184,7 @@ ProjectsWithThisUserAsContact=Projects with this user as contact
     TasksWithThisUserAsContact=Tasks assigned to this user
     ResourceNotAssignedToProject=Not assigned to project
     ResourceNotAssignedToTheTask=Not assigned to the task
    +NoUserAssignedToTheProject=No users assigned to this project
     TimeSpentBy=Time spent by
     TasksAssignedTo=Tasks assigned to
     AssignTaskToMe=Assign task to me
    @@ -189,25 +192,26 @@ AssignTaskToUser=Assign task to %s
     SelectTaskToAssign=Select task to assign...
     AssignTask=Assign
     ProjectOverview=Overview
    -ManageTasks=Use projects to follow tasks and time
    +ManageTasks=Use projects to follow tasks and/or report time spent (timesheets)
     ManageOpportunitiesStatus=專案用於以下潛在/有機會的客戶
    -ProjectNbProjectByMonth=Nb of created projects by month
    -ProjectNbTaskByMonth=Nb of created tasks by month
    -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month
    -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month
    -ProjectOpenedProjectByOppStatus=依機會狀況開啟專案/潛在客戶
    +ProjectNbProjectByMonth=No. of created projects by month
    +ProjectNbTaskByMonth=No. of created tasks by month
    +ProjectOppAmountOfProjectsByMonth=Amount of leads by month
    +ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of leads by month
    +ProjectOpenedProjectByOppStatus=Open project/lead by lead status
     ProjectsStatistics=專案/潛在客戶的統計
     TasksStatistics=專案/潛在客戶任務的統計
     TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible.
     IdTaskTime=Id task time
     YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes.
     OpenedProjectsByThirdparties=Open projects by third parties
    -OnlyOpportunitiesShort=Only opportunities
    -OpenedOpportunitiesShort=Open opportunities
    -NotAnOpportunityShort=Not an opportunity
    -OpportunityTotalAmount=Opportunities total amount
    -OpportunityPonderatedAmount=Opportunities weighted amount
    -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability
    +OnlyOpportunitiesShort=Only leads
    +OpenedOpportunitiesShort=Open leads
    +NotOpenedOpportunitiesShort=Not open leads
    +NotAnOpportunityShort=Not a lead
    +OpportunityTotalAmount=Total amount of leads
    +OpportunityPonderatedAmount=Weighted amount of leads
    +OpportunityPonderatedAmountDesc=Leads amount weighted with probability
     OppStatusPROSP=Prospection
     OppStatusQUAL=Qualification
     OppStatusPROPO=提案/建議書
    @@ -228,3 +232,5 @@ DontHavePermissionForCloseProject=You do not have permissions to close the proje
     DontHaveTheValidateStatus=The project %s must be open to be closed
     RecordsClosed=%s project(s) closed
     SendProjectRef=Information project %s
    +ModuleSalaryToDefineHourlyRateMustBeEnabled=Module 'Payment of employee wages' must be enabled to define employee hourly rate to have time spent valorized
    +NewTaskRefSuggested=Task ref already used, a new task ref is suggested
    diff --git a/htdocs/langs/zh_TW/propal.lang b/htdocs/langs/zh_TW/propal.lang
    index 03aab775251..fd50b254c8f 100644
    --- a/htdocs/langs/zh_TW/propal.lang
    +++ b/htdocs/langs/zh_TW/propal.lang
    @@ -33,7 +33,7 @@ PropalStatusSigned=簽名(需要收費)
     PropalStatusNotSigned=不簽署(非公開)
     PropalStatusBilled=帳單
     PropalStatusDraftShort=草案
    -PropalStatusValidatedShort=驗證
    +PropalStatusValidatedShort=Validated (open)
     PropalStatusClosedShort=關閉
     PropalStatusSignedShort=簽名
     PropalStatusNotSignedShort=未簽署
    @@ -53,9 +53,9 @@ ErrorPropalNotFound=Propal%s不符合
     AddToDraftProposals=增加提案/建議書草稿
     NoDraftProposals=沒有提案/建議書草稿
     CopyPropalFrom=利用現有的商業提案/建議書建立商業提案/建議書
    -CreateEmptyPropal=從產品/服務清單或空白建立提案/建議書
    +CreateEmptyPropal=Create empty commercial proposal or from list of products/services
     DefaultProposalDurationValidity=預設的商業提案/建議書有效期(天數)
    -UseCustomerContactAsPropalRecipientIfExist=使用客戶連絡人地址(如果已定義)而非合作方地址作為提案/建議書收件人地址
    +UseCustomerContactAsPropalRecipientIfExist=Use contact/address with type 'Contact following-up proposal' if defined instead of third party address as proposal recipient address
     ClonePropal=完整複製商業提案/建議書
     ConfirmClonePropal=您確定您要完整複製商業提案/建議書<b>%s</b>?
     ConfirmReOpenProp=您確定要打開商業提案/建議書<b>%s</b>嗎?
    @@ -78,6 +78,7 @@ TypeContact_propal_external_CUSTOMER=後續提案/建議書的客戶連絡人
     TypeContact_propal_external_SHIPPING=Customer contact for delivery
     # Document models
     DocModelAzurDescription=一個完整的提案/建議書模型(logo. ..)
    +DocModelCyanDescription=一個完整的提案/建議書模型(logo. ..)
     DefaultModelPropalCreate=Default model creation
     DefaultModelPropalToBill=當結束企業提案/建議書時使用預設範本(開立發票)
     DefaultModelPropalClosed=當結束企業提案/建議書時使用預設範本(尚未計價)
    diff --git a/htdocs/langs/zh_TW/users.lang b/htdocs/langs/zh_TW/users.lang
    index cc0c96f5a6c..74ff1311bdc 100644
    --- a/htdocs/langs/zh_TW/users.lang
    +++ b/htdocs/langs/zh_TW/users.lang
    @@ -35,7 +35,7 @@ SuperAdministrator=超級管理員
     SuperAdministratorDesc=全域管理員
     AdministratorDesc=管理員
     DefaultRights=預設權限
    -DefaultRightsDesc=這裏定義<u>預設</u> 權限自動授予一位<u>新建立</u>的用戶(移到用戶卡上改變現有的用戶權限)。
    +DefaultRightsDesc=Define here <u>default</u> permissions that are automatically granted to a <u>new created</u> user (Go to user card to change permission of an existing user).
     DolibarrUsers=Dolibarr用戶
     LastName=姓氏
     FirstName=名字
    @@ -66,7 +66,7 @@ CreateDolibarrThirdParty=建立一位合作方
     LoginAccountDisableInDolibarr=在 Dolibarr 中帳戶已禁用。
     UsePersonalValue=使用個人設定值
     InternalUser=內部用戶
    -ExportDataset_user_1=Dolibarr的用戶和屬性
    +ExportDataset_user_1=Users and their properties
     DomainUser=域用戶%s
     Reactivate=重新啟用
     CreateInternalUserDesc=This form allows you to create an user internal to your company/organization. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card.
    @@ -92,8 +92,8 @@ LoginToCreate=登錄創建
     NameToCreate=第三黨的名稱創建
     YourRole=您的角色
     YourQuotaOfUsersIsReached=你的活躍用戶達到配額!
    -NbOfUsers=用戶數
    -NbOfPermissions=Nb of permissions
    +NbOfUsers=No. of users
    +NbOfPermissions=No. of permissions
     DontDowngradeSuperAdmin=只有超級管理員可以降級超級管理員
     HierarchicalResponsible=Supervisor
     HierarchicView=Hierarchical view
    @@ -108,3 +108,4 @@ UserAccountancyCode=User accounting code
     UserLogoff=User logout
     UserLogged=User logged
     DateEmployment=Date of Employment
    +DateEmploymentEnd=End date of Employment
    diff --git a/htdocs/langs/zh_TW/website.lang b/htdocs/langs/zh_TW/website.lang
    index 7bbcf5348b2..18b7f659750 100644
    --- a/htdocs/langs/zh_TW/website.lang
    +++ b/htdocs/langs/zh_TW/website.lang
    @@ -1,33 +1,36 @@
     # Dolibarr language file - Source file is en_US - website
     Shortname=碼
    -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them.
    +WebsiteSetupDesc=Create here the websites you wish to use. Then go into menu Websites to edit them.
     DeleteWebsite=Delete website
    -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed.
    +ConfirmDeleteWebsite=Are you sure you want to delete this web site? All its pages and content will also be removed.
     WEBSITE_TYPE_CONTAINER=Type of page/container
     WEBSITE_PAGE_EXAMPLE=Web page to use as example
     WEBSITE_PAGENAME=Page name/alias
     WEBSITE_ALIASALT=Alternative page names/aliases
    +WEBSITE_ALIASALTDesc=Use here list of other name/aliases so the page can also be accessed using this other names/aliases (for example the old name after renaming the alias to keep backlink on old link/name working). Syntax is:<br>alternativename1, alternativename2, ...
     WEBSITE_CSS_URL=URL of external CSS file
     WEBSITE_CSS_INLINE=CSS file content (common to all pages)
     WEBSITE_JS_INLINE=Javascript file content (common to all pages)
     WEBSITE_HTML_HEADER=Addition at bottom of HTML Header (common to all pages)
     WEBSITE_ROBOT=Robot file (robots.txt)
    -WEBSITE_HTACCESS=Web site .htaccess file
    +WEBSITE_HTACCESS=Website .htaccess file
     HtmlHeaderPage=HTML header (specific to this page only)
     PageNameAliasHelp=Name or alias of the page.<br>This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "<strong>%s</strong>" to edit this alias.
     EditTheWebSiteForACommonHeader=Note: If you want to define a personalized header for all pages, edit the header on the site level instead of on the page/container.
     MediaFiles=Media library
    -EditCss=Edit Style/CSS or HTML header
    +EditCss=Edit website properties
     EditMenu=Edit menu
     EditMedias=Edit medias
    -EditPageMeta=Edit Meta
    +EditPageMeta=Edit page/container properties
    +EditInLine=Edit inline
     AddWebsite=Add website
     Webpage=Web page/container
     AddPage=Add page/container
     HomePage=Home Page
     PageContainer=Page/container
    -PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first add a page.
    +PreviewOfSiteNotYetAvailable=Preview of your website <strong>%s</strong> not yet available. You must first '<strong>Import a full website template</strong>' or just '<strong>Add a page/container</strong>'.
     RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this.
    +SiteDeleted=Web site '%s' deleted
     PageContent=Page/Contenair
     PageDeleted=Page/Contenair '%s' of website %s deleted
     PageAdded=Page/Contenair '%s' added
    @@ -36,8 +39,8 @@ ViewPageInNewTab=View page in new tab
     SetAsHomePage=Set as Home page
     RealURL=Real URL
     ViewWebsiteInProduction=View web site using home URLs
    -SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    -YouCanAlsoTestWithPHPS=On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
    +SetHereVirtualHost=<u>Use with Apache/NGinx/...</u><br>If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on<br><strong>%s</strong><br>then enter here the virtual hostname you have created, so the preview can be done also using this dedicated web server access instead of only using Dolibarr server.
    +YouCanAlsoTestWithPHPS=<u>Use with PHP embedded server</u><br>On develop environment, you may prefer to test the site with the PHP embedded web server (PHP 5.5 required) by running<br><strong>php -S 0.0.0.0:8080 -t %s</strong>
     CheckVirtualHostPerms=Check also that virtual host has permission <strong>%s</strong> on files into<br><strong>%s</strong>
     ReadPerm=閱讀
     WritePerm=Write
    @@ -45,26 +48,28 @@ PreviewSiteServedByWebServer=<u>Preview %s in a new tab.</u><br><br>The %s will
     PreviewSiteServedByDolibarr=<u>Preview %s in a new tab.</u><br><br>The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.<br>The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.<br>URL served by Dolibarr:<br><strong>%s</strong><br><br>To use your own external web server to serve this web site, create a virtual host on your web server that point on directory<br><strong>%s</strong><br>then enter the name of this virtual server and click on the other preview button.
     VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined
     NoPageYet=No pages yet
    +YouCanCreatePageOrImportTemplate=You can create a new page or import a full website template
     SyntaxHelp=Help on specific syntax tips
     YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor.
    -YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax:<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open access), syntax is:<br><strong>&lt;a href="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
    +YouCanEditHtmlSource=<br><span class="fa fa-bug"></span> You can include PHP code into this source using tags <strong>&lt;?php ?&gt;</strong>. The following global variables are available: $conf, $db, $mysoc, $user, $website, $websitepage, $weblangs.<br><br><span class="fa fa-bug"></span> You can also include content of another Page/Container with the following syntax:<br><strong>&lt;?php includeContainer('alias_of_container_to_include'); ?&gt;</strong><br><br><span class="fa fa-bug"></span> You can make a redirect to another Page/Container with the following syntax (Note: do not output any content before a redirect):<br><strong>&lt;?php redirectToContainer('alias_of_container_to_redirect_to'); ?&gt;</strong><br><br><span class="fa fa-link"></span> To add a link to another page, use the syntax:<br><strong>&lt;a href="alias_of_page_to_link_to.php"&gt;mylink&lt;a&gt;</strong><br><br><span class="fa fa-download"></span> To include a <strong>link to download</strong> a file stored into the <strong>documents</strong> directory, use the <strong>document.php</strong> wrapper:<br>Example, for a file into documents/ecm (need to be logged), syntax is:<br><strong>&lt;a href="/document.php?modulepart=ecm&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file into documents/medias (open directory for public access), syntax is:<br><strong>&lt;a href="/document.php?modulepart=medias&file=[relative_dir/]filename.ext"&gt;</strong><br>For a file shared with a share link (open access using the sharing hash key of file), syntax is:<br><strong>&lt;a href="/document.php?hashp=publicsharekeyoffile"&gt;</strong><br><br><span class="fa fa-picture-o"></span> To include an <strong>image</strong> stored into the <strong>documents</strong> directory, use the <strong>viewimage.php</strong> wrapper:<br>Example, for an image into documents/medias (open directory for public access), syntax is:<br><strong>&lt;img src="/viewimage.php?modulepart=medias&amp;file=[relative_dir/]filename.ext"&gt;</strong><br>
     ClonePage=Clone page/container
     CloneSite=Clone site
    -SiteAdded=Web site added
    +SiteAdded=Website added
     ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page.
     PageIsANewTranslation=The new page is a translation of the current page ?
     LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page.
     ParentPageId=Parent page ID
     WebsiteId=Website ID
     CreateByFetchingExternalPage=Create page/container by fetching page from external URL...
    -OrEnterPageInfoManually=Or create empty page from scratch...
    +OrEnterPageInfoManually=Or create page from scratch or from a page template...
     FetchAndCreate=Fetch and Create
    -ExportSite=Export site
    +ExportSite=Export website
    +ImportSite=Import website template
     IDOfPage=Id of page
     Banner=Banner
     BlogPost=Blog post
    -WebsiteAccount=Web site account
    -WebsiteAccounts=Web site accounts
    +WebsiteAccount=Website account
    +WebsiteAccounts=Website accounts
     AddWebsiteAccount=Create web site account
     BackToListOfThirdParty=Back to list for Third Party
     DisableSiteFirst=Disable website first
    @@ -73,7 +78,7 @@ AnotherContainer=Another container
     WEBSITE_USE_WEBSITE_ACCOUNTS=Enable the web site account table
     WEBSITE_USE_WEBSITE_ACCOUNTSTooltip=Enable the table to store web site accounts (login/pass) for each website / thirdparty
     YouMustDefineTheHomePage=You must first define the default Home page
    -OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is initiliazed by grabbing it from an external page (WYSIWYG editor will not be available)
    +OnlyEditionOfSourceForGrabbedContentFuture=Warning: Creating a web page by importing an external web page is reserved to experienced user. Depending on the complexity of source page, the result of importation may differs once imported from original. Also if the source page use common CSS style or not compatible javascript, it may break the look or features of the Website editor when working on this page. This method is faster way to have a page but it is recommanded to create your new page from scratch or from a suggested page template.<br>Note also that only edition of HTML source will be possible when a page content has been initialized by grabbing it from an external page ("Online" editor will NOT be available)
     OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabbed from an external site
     GrabImagesInto=Grab also images found into css and page.
     ImagesShouldBeSavedInto=Images should be saved into directory
    @@ -82,3 +87,9 @@ SubdirOfPage=Sub-directory dedicated to page
     AliasPageAlreadyExists=Alias page <strong>%s</strong> already exists
     CorporateHomePage=Corporate Home page
     EmptyPage=Empty page
    +ExternalURLMustStartWithHttp=External URL must start with http:// or https://
    +ZipOfWebsitePackageToImport=Zip file of website package
    +ShowSubcontainers=Include dynamic content
    +InternalURLOfPage=Internal URL of page
    +ThisPageIsTranslationOf=This page/container is translation of
    +ThisPageHasTranslationPages=This page/container has translation
    diff --git a/htdocs/livraison/card.php b/htdocs/livraison/card.php
    index d6cefb24d83..b6e9c904f80 100644
    --- a/htdocs/livraison/card.php
    +++ b/htdocs/livraison/card.php
    @@ -2,10 +2,10 @@
     /* Copyright (C) 2003-2005	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2010	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2005		Simon TOSSER			<simon@kornog-computing.com>
    - * Copyright (C) 2005-2014	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2007		Franky Van Liedekerke	<franky.van.liedekerke@telenet.be>
      * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
    - * Copyright (C) 2015			  Claudio Aschieri		<c.aschieri@19.coop>
    + * Copyright (C) 2015	    Claudio Aschieri		<c.aschieri@19.coop>
      *
      * 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
    @@ -241,7 +241,6 @@ if ($action == 'update_extras_line')
     			$error++;
     		}
     	}
    -
     }
     
     
    @@ -292,6 +291,7 @@ elseif ($action == 'remove_file')
     }
     */
     
    +include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
     
     /*
      *	View
    @@ -356,7 +356,6 @@ else
     			{
     				$expedition_id = GETPOST("expid");
     				print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id.'&expid='.$expedition_id.'&backtopage='.urlencode($backtopage),$langs->trans("DeleteDeliveryReceipt"),$langs->trans("DeleteDeliveryReceiptConfirm",$object->ref),'confirm_delete','','',1);
    -
     			}
     
     			/*
    @@ -365,7 +364,6 @@ else
     			if ($action == 'valid')
     			{
     				print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans("ValidateDeliveryReceipt"),$langs->trans("ValidateDeliveryReceiptConfirm",$object->ref),'confirm_valid','','',1);
    -
     			}
     
     
    @@ -506,7 +504,7 @@ else
     				print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
     				print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     				print '<input type="hidden" name="action" value="setdate_livraison">';
    -				$form->select_date($object->date_delivery?$object->date_delivery:-1, 'liv_', 1, 1, '', "setdate_livraison", 1, 1);
    +				print $form->selectDate($object->date_delivery?$object->date_delivery:-1, 'liv_', 1, 1, '', "setdate_livraison", 1, 1);
     				print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
     				print '</form>';
     			}
    @@ -524,7 +522,7 @@ else
     		        print '<table width="100%" class="nobordernopadding"><tr><td>';
     		        print $langs->trans('IncotermLabel');
     		        print '<td><td align="right">';
    -		        if ($user->rights->expedition->livraison->creer) print '<a href="'.DOL_URL_ROOT.'/livaison/card.php?id='.$object->id.'&action=editincoterm">'.img_edit().'</a>';
    +		        if ($user->rights->expedition->livraison->creer) print '<a href="'.DOL_URL_ROOT.'/livraison/card.php?id='.$object->id.'&action=editincoterm">'.img_edit().'</a>';
     		        else print '&nbsp;';
     		        print '</td></tr></table>';
     		        print '</td>';
    @@ -586,7 +584,7 @@ else
     			print '</div>';
     
     			/*
    -			 * Lignes produits
    +			 * Products lines
     			 */
     
     			$num_prod = count($object->lines);
    @@ -604,11 +602,8 @@ else
     				print '<td align="center">'.$langs->trans("QtyReceived").'</td>';
     				print "</tr>\n";
     			}
    -			$var=true;
     			while ($i < $num_prod)
     			{
    -
    -
     				print '<tr class="oddeven">';
     				if ($object->lines[$i]->fk_product > 0)
     				{
    @@ -686,7 +681,7 @@ else
     						$line->array_options = array_merge($line->array_options, $srcLine->array_options);
     					}
     					print '<tr class="oddeven">';
    -					print $line->showOptionals($extrafieldsline, $mode, array('style'=>$bc[$var], 'colspan'=>$colspan),$i);
    +					print $line->showOptionals($extrafieldsline, $mode, array('style'=>'class="oddeven"', 'colspan'=>$colspan),$i);
     					print '</tr>';
     				}
     
    @@ -784,6 +779,6 @@ else
     	}
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php
    index 46b3c113ff2..9968f4d3d38 100644
    --- a/htdocs/livraison/class/livraison.class.php
    +++ b/htdocs/livraison/class/livraison.class.php
    @@ -1,10 +1,10 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville  <rodolphe@quiedeville.org>
    - * Copyright (C) 2005-2014 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2007 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
    - * Copyright (C) 2011-2012 Philippe Grand	     <philippe.grand@atoo-net.com>
    - * Copyright (C) 2013      Florian Henry		  	<florian.henry@open-concept.pro>
    + * Copyright (C) 2011-2018 Philippe Grand	     <philippe.grand@atoo-net.com>
    + * Copyright (C) 2013      Florian Henry	     <florian.henry@open-concept.pro>
      * Copyright (C) 2014-2015 Marcos García         <marcosgdf@gmail.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
     /**
      *  \file       htdocs/livraison/class/livraison.class.php
      *  \ingroup    delivery
    - *  \brief      Fichier de la classe de gestion des bons de livraison
    + *  \brief      Delivery Order Management Class File
      */
     
     require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
    @@ -39,19 +39,34 @@ if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande
      */
     class Livraison extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element="delivery";
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element="fk_livraison";
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element="livraison";
    +
    +	/**
    +	 * @var int    Name of subtable line
    +	 */
     	public $table_element_line="livraisondet";
     
    -	var $brouillon;
    -	var $socid;
    -	var $ref_customer;
    +	public $brouillon;
    +	public $socid;
    +	public $ref_customer;
     
    -	var $date_delivery;    // Date really received
    -	var $date_creation;
    -	var $date_valid;
    -	var $model_pdf;
    +	public $date_delivery;    // Date really received
    +	public $date_creation;
    +	public $date_valid;
    +	public $model_pdf;
     
     	/**
     	 * Constructor
    @@ -149,7 +164,7 @@ class Livraison extends CommonObject
     
     
     				/*
    -				 *  Insertion des produits dans la base
    +				 *  Inserting products into the database
     				 */
     				$num=count($this->lines);
     				for ($i = 0; $i < $num; $i++)
    @@ -212,6 +227,7 @@ class Livraison extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Create a line
     	 *
    @@ -223,6 +239,7 @@ class Livraison extends CommonObject
     	 */
     	function create_line($origin_id, $qty, $fk_product, $description)
     	{
    +        // phpcs:enable
     		$error = 0;
     		$idprod = $fk_product;
     		$j = 0;
    @@ -301,7 +318,7 @@ class Livraison extends CommonObject
     
     				if ($this->statut == 0) $this->brouillon = 1;
     
    -				// Retreive all extrafield
    +				// Retreive all extrafields
     				// fetch optionals attributes and labels
     				$this->fetch_optionals();
     
    @@ -352,7 +369,7 @@ class Livraison extends CommonObject
     		{
     			if (! empty($conf->global->LIVRAISON_ADDON_NUMBER))
     			{
    -				// Definition du nom de module de numerotation de commande
    +				// Setting the command numbering module name
     				$modName = $conf->global->LIVRAISON_ADDON_NUMBER;
     
     				if (is_readable(DOL_DOCUMENT_ROOT .'/core/modules/livraison/'.$modName.'.php'))
    @@ -361,7 +378,7 @@ class Livraison extends CommonObject
     
     					$now=dol_now();
     
    -					// Recuperation de la nouvelle reference
    +					// Retrieving the new reference
     					$objMod = new $modName($this->db);
     					$soc = new Societe($this->db);
     					$soc->fetch($this->socid);
    @@ -376,8 +393,7 @@ class Livraison extends CommonObject
     		            }
                 		$this->newref = $numref;
     
    -					// Tester si non deja au statut valide. Si oui, on arrete afin d'eviter
    -					// de decrementer 2 fois le stock.
    +					// Test if is not already in valid status. If so, we stop to avoid decrementing the stock twice.
     					$sql = "SELECT ref";
     					$sql.= " FROM ".MAIN_DB_PREFIX."livraison";
     					$sql.= " WHERE ref = '".$this->db->escape($numref)."'";
    @@ -483,15 +499,17 @@ class Livraison extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
    -	 * 	Cree le bon de livraison depuis une expedition existante
    +	 * 	Creating the delivery slip from an existing shipment
     	 *
    -	 *	@param	User	$user            Utilisateur qui cree
    -	 *	@param  int		$sending_id      Id de l'expedition qui sert de modele
    +	 *	@param	User	$user            User who creates
    +	 *	@param  int		$sending_id      Id of the expedition that serves as a model
     	 *	@return	integer
     	 */
     	function create_from_sending($user, $sending_id)
     	{
    +        // phpcs:enable
     		$expedition = new Expedition($this->db);
     		$result=$expedition->fetch($sending_id);
     
    @@ -528,6 +546,7 @@ class Livraison extends CommonObject
     		return $this->create($user);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Update a livraison line (only extrafields)
     	 *
    @@ -537,6 +556,7 @@ class Livraison extends CommonObject
     	 */
     	function update_line($id, $array_options=0)
     	{
    +        // phpcs:enable
     		global $conf;
     		$error = 0;
     
    @@ -725,6 +745,7 @@ class Livraison extends CommonObject
     		return $result;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Load lines
     	 *
    @@ -732,6 +753,7 @@ class Livraison extends CommonObject
     	 */
     	function fetch_lines()
     	{
    +        // phpcs:enable
     		$this->lines = array();
     
     		$sql = "SELECT ld.rowid, ld.fk_product, ld.description, ld.subprice, ld.total_ht, ld.qty as qty_shipped, ld.fk_origin_line, ";
    @@ -794,6 +816,7 @@ class Livraison extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Renvoi le libelle d'un statut donne
     	 *
    @@ -803,31 +826,32 @@ class Livraison extends CommonObject
     	 */
     	function LibStatut($statut,$mode)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode==0)
     		{
     			if ($statut==-1) return $langs->trans('StatusDeliveryCanceled');
    -			if ($statut==0)  return $langs->trans('StatusDeliveryDraft');
    -			if ($statut==1)  return $langs->trans('StatusDeliveryValidated');
    +			elseif ($statut==0)  return $langs->trans('StatusDeliveryDraft');
    +			elseif ($statut==1)  return $langs->trans('StatusDeliveryValidated');
     		}
    -		if ($mode==1)
    +		elseif ($mode==1)
     		{
     			if ($statut==-1) return $langs->trans($this->statuts[$statut]);
    -			if ($statut==0)  return $langs->trans($this->statuts[$statut]);
    -			if ($statut==1)  return $langs->trans($this->statuts[$statut]);
    +			elseif ($statut==0)  return $langs->trans($this->statuts[$statut]);
    +			elseif ($statut==1)  return $langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut==-1) return img_picto($langs->trans('StatusDeliveryCanceled'),'statut5').' '.$langs->trans('StatusDeliveryCanceled');
    -			if ($statut==0)  return img_picto($langs->trans('StatusDeliveryDraft'),'statut0').' '.$langs->trans('StatusDeliveryDraft');
    -			if ($statut==1)  return img_picto($langs->trans('StatusDeliveryValidated'),'statut4').' '.$langs->trans('StatusDeliveryValidated');
    +			elseif ($statut==0)  return img_picto($langs->trans('StatusDeliveryDraft'),'statut0').' '.$langs->trans('StatusDeliveryDraft');
    +			elseif ($statut==1)  return img_picto($langs->trans('StatusDeliveryValidated'),'statut4').' '.$langs->trans('StatusDeliveryValidated');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($statut==-1) return $langs->trans('StatusDeliveryCanceled').' '.img_picto($langs->trans('StatusDeliveryCanceled'),'statut5');
    -			if ($statut==0)  return $langs->trans('StatusDeliveryDraft').' '.img_picto($langs->trans('StatusDeliveryDraft'),'statut0');
    -			if ($statut==1)  return $langs->trans('StatusDeliveryValidated').' '.img_picto($langs->trans('StatusDeliveryValidated'),'statut4');
    +			elseif ($statut==0)  return $langs->trans('StatusDeliveryDraft').' '.img_picto($langs->trans('StatusDeliveryDraft'),'statut0');
    +			elseif ($statut==1)  return $langs->trans('StatusDeliveryValidated').' '.img_picto($langs->trans('StatusDeliveryValidated'),'statut4');
     		}
     	}
     
    @@ -965,6 +989,7 @@ class Livraison extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Set the planned delivery date
     	 *
    @@ -974,6 +999,7 @@ class Livraison extends CommonObject
     	 */
     	function set_date_livraison($user, $date_livraison)
     	{
    +        // phpcs:enable
     		if ($user->rights->expedition->creer)
     		{
     			$sql = "UPDATE ".MAIN_DB_PREFIX."livraison";
    @@ -1047,17 +1073,19 @@ class Livraison extends CommonObject
     
     		return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
     	}
    -
     }
     
     
     
     /**
    - *  Classe de gestion des lignes de bons de livraison
    + *  Management class of delivery note lines
      */
     class LivraisonLigne extends CommonObjectLine
     {
    -	var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	// From llx_expeditiondet
     	var $qty;
    @@ -1066,23 +1094,39 @@ class LivraisonLigne extends CommonObjectLine
     	var $price;
     	var $fk_product;
     	var $origin_id;
    -	var $label;       // Label produit
    -	var $description;  // Description produit
    +
    +    /**
    +     * @var string delivery note lines label
    +     */
    +    public $label;
    +
    +	/**
    +	 * @var string product description
    +	 */
    +	public $description;
    +
     	/**
     	 * @deprecated
     	 * @see product_ref
     	 */
    -	var $ref;
    +	public $ref;
     	/**
     	 * @deprecated
     	 * @see product_label;
     	 */
    -	var $libelle;
    +	public $libelle;
     
     	public $product_ref;
     	public $product_label;
     
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='livraisondet';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='livraisondet';
     
     	/**
    @@ -1094,5 +1138,4 @@ class LivraisonLigne extends CommonObjectLine
     	{
     		$this->db=$db;
     	}
    -
     }
    diff --git a/htdocs/loan/calcmens.php b/htdocs/loan/calcmens.php
    index fbe1cecab2d..df6db76e1f2 100644
    --- a/htdocs/loan/calcmens.php
    +++ b/htdocs/loan/calcmens.php
    @@ -50,7 +50,7 @@ $echance++;
     $capital=$cap_rest;
     while ($echance<=$nbterm) {
     
    -	$mens = round($object->calc_mens($capital,$rate,$nbterm-$echance+1),2,PHP_ROUND_HALF_UP);
    +	$mens = round($object->calcMonthlyPayments($capital, $rate, $nbterm-$echance+1), 2, PHP_ROUND_HALF_UP);
     
     	$int = ($capital*($rate/12));
     	$int = round($int,2,PHP_ROUND_HALF_UP);
    @@ -63,4 +63,3 @@ while ($echance<=$nbterm) {
     }
     
     echo json_encode($output);
    -
    diff --git a/htdocs/loan/card.php b/htdocs/loan/card.php
    index d7e81c9e2dd..cec094ef04d 100644
    --- a/htdocs/loan/card.php
    +++ b/htdocs/loan/card.php
    @@ -135,6 +135,7 @@ if (empty($reshook))
     				$object->note_private 			= GETPOST('note_private','none');
     				$object->note_public 			= GETPOST('note_public','none');
     				$object->fk_project 			= GETPOST('projectid','int');
    +				$object->insurance_amount       = GETPOST('insurance_amount', 'int');
     
     				$accountancy_account_capital	= GETPOST('accountancy_account_capital');
     				$accountancy_account_insurance	= GETPOST('accountancy_account_insurance');
    @@ -148,7 +149,7 @@ if (empty($reshook))
     				if ($id <= 0)
     				{
     					$error++;
    -					setEventMessages($object->error, $object->errors, 'errors');
    +					setEventMessages($object->db->lastqueryerror, $object->errors, 'errors');
     					$action = 'create';
     				}
     			}
    @@ -238,7 +239,7 @@ if (empty($reshook))
     
     $form = new Form($db);
     $formproject = new FormProjets($db);
    -if (! empty($conf->accounting->enabled)) $formaccounting = New FormAccounting($db);
    +if (! empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db);
     
     $title = $langs->trans("Loan") . ' - ' . $langs->trans("Card");
     $help_url = 'EN:Module_Loan|FR:Module_Emprunt';
    @@ -264,7 +265,7 @@ if ($action == 'create')
     	print '<table class="border" width="100%">';
     
     	// Label
    -	print '<tr><td class="fieldrequired titlefieldcreate">'.$langs->trans("Label").'</td><td><input name="label" size="40" maxlength="255" value="'.dol_escape_htmltag(GETPOST('label')).'"></td></tr>';
    +	print '<tr><td class="fieldrequired titlefieldcreate">'.$langs->trans("Label").'</td><td><input name="label" class="minwidth300" maxlength="255" value="'.dol_escape_htmltag(GETPOST('label')).'" autofocus="autofocus"></td></tr>';
     
     	// Bank account
     	if (! empty($conf->banque->enabled))
    @@ -286,13 +287,13 @@ if ($action == 'create')
     	// Date Start
     	print "<tr>";
     	print '<td class="fieldrequired">'.$langs->trans("DateStart").'</td><td>';
    -	print $form->select_date($datestart?$datestart:-1,'start','','','','add',1,1,1);
    +	print $form->selectDate($datestart?$datestart:-1,'start','','','','add',1,1);
     	print '</td></tr>';
     
     	// Date End
     	print "<tr>";
     	print '<td class="fieldrequired">'.$langs->trans("DateEnd").'</td><td>';
    -	print $form->select_date($dateend?$dateend:-1,'end','','','','add',1,1,1);
    +	print $form->selectDate($dateend?$dateend:-1,'end','','','','add',1,1);
     	print '</td></tr>';
     
     	// Number of terms
    @@ -301,6 +302,9 @@ if ($action == 'create')
     	// Rate
     	print '<tr><td class="fieldrequired">'.$langs->trans("Rate").'</td><td><input name="rate" size="5" value="' . dol_escape_htmltag(GETPOST("rate")) . '"> %</td></tr>';
     
    +	// insurance amount
    +	print '<tr><td>'.$langs->trans("Insurance").'</td><td><input name="insurance_amount" size="10" value="' . dol_escape_htmltag(GETPOST("insurance_amount")) . '" placeholder="'.$langs->trans('Amount').'"></td></tr>';
    +	
     	// Project
     	if (! empty($conf->projet->enabled))
     	{
    @@ -434,7 +438,7 @@ if ($id > 0)
     
     		// Loan card
     
    -		$linkback = '<a href="' . DOL_URL_ROOT . '/loan/index.php">' . $langs->trans("BackToList") . '</a>';
    +		$linkback = '<a href="' . DOL_URL_ROOT . '/loan/list.php">' . $langs->trans("BackToList") . '</a>';
     
     		$morehtmlref='<div class="refidno">';
     		// Ref loan
    @@ -495,13 +499,25 @@ if ($id > 0)
     		{
     			print '<tr><td class="titlefield">'.$langs->trans("LoanCapital").'</td><td>'.price($object->capital,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
     		}
    +		
    +		// Insurance
    +		if ($action == 'edit')
    +		{
    +		    print '<tr><td class="titlefield">'.$langs->trans("Insurance").'</td><td>';
    +		    print '<input name="insurance_amount" size="10" value="' . $object->insurance_amount . '"></td></tr>';
    +		    print '</td></tr>';
    +		}
    +		else
    +		{
    +		    print '<tr><td class="titlefield">'.$langs->trans("Insurance").'</td><td>'.price($object->insurance_amount,0,$outputlangs,1,-1,-1,$conf->currency).'</td></tr>';
    +		}
     
     		// Date start
     		print '<tr><td>'.$langs->trans("DateStart")."</td>";
     		print "<td>";
     		if ($action == 'edit')
     		{
    -			print $form->select_date($object->datestart, 'start', 0, 0, 0, 'update', 1, 0, 1);
    +			print $form->selectDate($object->datestart, 'start', 0, 0, 0, 'update', 1, 0);
     		}
     		else
     		{
    @@ -514,7 +530,7 @@ if ($id > 0)
     		print "<td>";
     		if ($action == 'edit')
     		{
    -			print $form->select_date($object->dateend, 'end', 0, 0, 0, 'update', 1, 0, 1);
    +			print $form->selectDate($object->dateend, 'end', 0, 0, 0, 'update', 1, 0);
     		}
     		else
     		{
    @@ -771,7 +787,7 @@ if ($id > 0)
     				// Edit
     				if ($object->paid == 0 && $user->rights->loan->write)
     				{
    -					print '<a href="javascript:popEcheancier()" class="butAction">'.$langs->trans('CreateCalcSchedule').'</a>';
    +					// print '<a href="javascript:popEcheancier()" class="butAction">'.$langs->trans('CreateCalcSchedule').'</a>';
     
     					print '<a class="butAction" href="'.DOL_URL_ROOT.'/loan/card.php?id='.$object->id.'&amp;action=edit">'.$langs->trans("Modify").'</a>';
     				}
    @@ -779,7 +795,7 @@ if ($id > 0)
     				// Emit payment
     				if ($object->paid == 0 && ((price2num($object->capital) > 0 && round($staytopay) < 0) || (price2num($object->capital) > 0 && round($staytopay) > 0)) && $user->rights->loan->write)
     				{
    -					print '<a class="butAction" href="'.DOL_URL_ROOT.'/loan/payment/payment.php?id='.$object->id.'&amp;action=create">'.$langs->trans("DoPayment").'</a>';
    +					print '<a class="butAction" href="'.DOL_URL_ROOT.'/loan/payment/payment.php?id='.$object->id.'&amp;action=create&last=true">'.$langs->trans("DoPayment").'</a>';
     				}
     
     				// Classify 'paid'
    @@ -805,6 +821,6 @@ if ($id > 0)
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/loan/class/loan.class.php b/htdocs/loan/class/loan.class.php
    index a4518960839..3805704fbb9 100644
    --- a/htdocs/loan/class/loan.class.php
    +++ b/htdocs/loan/class/loan.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2014-2018  Alexandre Spangaro   <aspangaro@zendsi.com>
    - * Copyright (C) 2015       Frederic France      <frederic.france@free.fr>
    + * Copyright (C) 2015-2018  Frédéric France      <frederic.france@netlogic.fr>
      *
      * 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
    @@ -29,16 +29,33 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class Loan extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='loan';
    +
     	public $table='loan';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='loan';
     
     	public $picto = 'bill';
     
    +	/**
    +	 * @var int ID
    +	 */
     	public $rowid;
    +
     	public $datestart;
     	public $dateend;
    -	public $label;
    +
    +    /**
    +     * @var string Loan label
    +     */
    +    public $label;
    +
     	public $capital;
     	public $nbterm;
     	public $rate;
    @@ -49,9 +66,27 @@ class Loan extends CommonObject
     	public $date_creation;
     	public $date_modification;
     	public $date_validation;
    +	
    +	public $insurance_amount;
    +
    +	/**
    +     * @var int Bank ID
    +     */
     	public $fk_bank;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_modif;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_project;
     
     
    @@ -63,7 +98,6 @@ class Loan extends CommonObject
     	function __construct($db)
     	{
     		$this->db = $db;
    -		return 1;
     	}
     
     	/**
    @@ -74,7 +108,7 @@ class Loan extends CommonObject
     	 */
     	function fetch($id)
     	{
    -		$sql = "SELECT l.rowid, l.label, l.capital, l.datestart, l.dateend, l.nbterm, l.rate, l.note_private, l.note_public,";
    +		$sql = "SELECT l.rowid, l.label, l.capital, l.datestart, l.dateend, l.nbterm, l.rate, l.note_private, l.note_public, l.insurance_amount,";
     		$sql.= " l.paid, l.accountancy_account_capital, l.accountancy_account_insurance, l.accountancy_account_interest, l.fk_projet as fk_project";
     		$sql.= " FROM ".MAIN_DB_PREFIX."loan as l";
     		$sql.= " WHERE l.rowid = ".$id;
    @@ -97,6 +131,7 @@ class Loan extends CommonObject
     				$this->rate					= $obj->rate;
     				$this->note_private			= $obj->note_private;
     				$this->note_public			= $obj->note_public;
    +				$this->insurance_amount     = $obj->insurance_amount;
     				$this->paid					= $obj->paid;
     
     				$this->account_capital		= $obj->accountancy_account_capital;
    @@ -137,15 +172,17 @@ class Loan extends CommonObject
     
     		// clean parameters
     		$newcapital=price2num($this->capital,'MT');
    +		if (empty($this->insurance_amount)) $this->insurance_amount = 0;
    +		$newinsuranceamount=price2num($this->insurance_amount, 'MT');
     		if (isset($this->note_private)) $this->note_private = trim($this->note_private);
     		if (isset($this->note_public)) $this->note_public = trim($this->note_public);
     		if (isset($this->account_capital)) $this->account_capital = trim($this->account_capital);
     		if (isset($this->account_insurance)) $this->account_insurance = trim($this->account_insurance);
     		if (isset($this->account_interest)) $this->account_interest = trim($this->account_interest);
    -		if (isset($this->fk_bank)) $this->fk_bank=trim($this->fk_bank);
    -		if (isset($this->fk_user_creat)) $this->fk_user_creat=trim($this->fk_user_creat);
    -		if (isset($this->fk_user_modif)) $this->fk_user_modif=trim($this->fk_user_modif);
    -		if (isset($this->fk_project)) $this->fk_project=trim($this->fk_project);
    +		if (isset($this->fk_bank)) $this->fk_bank = (int) $this->fk_bank;
    +		if (isset($this->fk_user_creat)) $this->fk_user_creat = (int) $this->fk_user_creat;
    +		if (isset($this->fk_user_modif)) $this->fk_user_modif = (int) $this->fk_user_modif;
    +		if (isset($this->fk_project)) $this->fk_project = (int) $this->fk_project;
     
     		// Check parameters
     		if (! $newcapital > 0 || empty($this->datestart) || empty($this->dateend))
    @@ -173,7 +210,7 @@ class Loan extends CommonObject
     
     		$sql = "INSERT INTO ".MAIN_DB_PREFIX."loan (label, fk_bank, capital, datestart, dateend, nbterm, rate, note_private, note_public,";
     		$sql.= " accountancy_account_capital, accountancy_account_insurance, accountancy_account_interest, entity,";
    -		$sql.= " datec, fk_projet, fk_user_author)";
    +		$sql.= " datec, fk_projet, fk_user_author, insurance_amount)";
     		$sql.= " VALUES ('".$this->db->escape($this->label)."',";
     		$sql.= " '".$this->db->escape($this->fk_bank)."',";
     		$sql.= " '".price2num($newcapital)."',";
    @@ -189,7 +226,8 @@ class Loan extends CommonObject
     		$sql.= " ".$conf->entity.",";
     		$sql.= " '".$this->db->idate($now)."',";
     		$sql.= " ".(empty($this->fk_project)?'NULL':$this->fk_project).",";
    -		$sql.= " ".$user->id;
    +		$sql.= " ".$user->id.",";
    +		$sql.= " '".price2num($newinsuranceamount)."'";
     		$sql.= ")";
     
     		dol_syslog(get_class($this)."::create", LOG_DEBUG);
    @@ -278,7 +316,6 @@ class Loan extends CommonObject
     			$this->db->rollback();
     			return -1;
     		}
    -
     	}
     
     
    @@ -308,7 +345,8 @@ class Loan extends CommonObject
     		$sql.= " accountancy_account_insurance = '".$this->db->escape($this->account_insurance)."',";
     		$sql.= " accountancy_account_interest = '".$this->db->escape($this->account_interest)."',";
     		$sql.= " fk_projet=".(empty($this->fk_project)?'NULL':$this->fk_project).",";
    -		$sql.= " fk_user_modif = ".$user->id;
    +		$sql.= " fk_user_modif = ".$user->id.",";
    +		$sql.= " insurance_amount = '".price2num($this->db->escape($this->insurance_amount))."'";
     		$sql.= " WHERE rowid=".$this->id;
     
     		dol_syslog(get_class($this)."::update", LOG_DEBUG);
    @@ -326,6 +364,7 @@ class Loan extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Tag loan as payed completely
     	 *
    @@ -334,6 +373,7 @@ class Loan extends CommonObject
     	 */
     	function set_paid($user)
     	{
    +        // phpcs:enable
     		$sql = "UPDATE ".MAIN_DB_PREFIX."loan SET";
     		$sql.= " paid = 1";
     		$sql.= " WHERE rowid = ".$this->id;
    @@ -358,6 +398,7 @@ class Loan extends CommonObject
     		return $this->LibStatut($this->paid,$mode,$alreadypaid);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return label for given status
     	 *
    @@ -368,51 +409,47 @@ class Loan extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0,$alreadypaid=-1)
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->loadLangs(array("customers","bills"));
     
    -		if ($mode == 0)
    +		if ($mode == 0 || $mode == 1)
     		{
     			if ($statut ==  0) return $langs->trans("Unpaid");
    -			if ($statut ==  1) return $langs->trans("Paid");
    +			elseif ($statut ==  1) return $langs->trans("Paid");
     		}
    -		if ($mode == 1)
    -		{
    -			if ($statut ==  0) return $langs->trans("Unpaid");
    -			if ($statut ==  1) return $langs->trans("Paid");
    -		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut ==  0 && $alreadypaid <= 0) return img_picto($langs->trans("Unpaid"), 'statut1').' '.$langs->trans("Unpaid");
    -			if ($statut ==  0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3').' '.$langs->trans("BillStatusStarted");
    -			if ($statut ==  1) return img_picto($langs->trans("Paid"), 'statut6').' '.$langs->trans("Paid");
    +			elseif ($statut ==  0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3').' '.$langs->trans("BillStatusStarted");
    +			elseif ($statut ==  1) return img_picto($langs->trans("Paid"), 'statut6').' '.$langs->trans("Paid");
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut ==  0 && $alreadypaid <= 0) return img_picto($langs->trans("Unpaid"), 'statut1');
    -			if ($statut ==  0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3');
    -			if ($statut ==  1) return img_picto($langs->trans("Paid"), 'statut6');
    +			elseif ($statut ==  0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3');
    +			elseif ($statut ==  1) return img_picto($langs->trans("Paid"), 'statut6');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut ==  0 && $alreadypaid <= 0) return img_picto($langs->trans("Unpaid"), 'statut1').' '.$langs->trans("Unpaid");
    -			if ($statut ==  0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3').' '.$langs->trans("BillStatusStarted");
    -			if ($statut ==  1) return img_picto($langs->trans("Paid"), 'statut6').' '.$langs->trans("Paid");
    +			elseif ($statut ==  0 && $alreadypaid > 0) return img_picto($langs->trans("BillStatusStarted"), 'statut3').' '.$langs->trans("BillStatusStarted");
    +			elseif ($statut ==  1) return img_picto($langs->trans("Paid"), 'statut6').' '.$langs->trans("Paid");
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut ==  0 && $alreadypaid <= 0) return $langs->trans("Unpaid").' '.img_picto($langs->trans("Unpaid"), 'statut1');
    -			if ($statut ==  0 && $alreadypaid > 0) return $langs->trans("BillStatusStarted").' '.img_picto($langs->trans("BillStatusStarted"), 'statut3');
    -			if ($statut ==  1) return $langs->trans("Paid").' '.img_picto($langs->trans("Paid"), 'statut6');
    +			elseif ($statut ==  0 && $alreadypaid > 0) return $langs->trans("BillStatusStarted").' '.img_picto($langs->trans("BillStatusStarted"), 'statut3');
    +			elseif ($statut ==  1) return $langs->trans("Paid").' '.img_picto($langs->trans("Paid"), 'statut6');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($statut ==  0 && $alreadypaid <= 0) return $langs->trans("Unpaid").' '.img_picto($langs->trans("Unpaid"), 'statut1');
    -			if ($statut ==  0 && $alreadypaid > 0) return $langs->trans("BillStatusStarted").' '.img_picto($langs->trans("BillStatusStarted"), 'statut3');
    -			if ($statut ==  1) return $langs->trans("Paid").' '.img_picto($langs->trans("Paid"), 'statut6');
    +			elseif ($statut ==  0 && $alreadypaid > 0) return $langs->trans("BillStatusStarted").' '.img_picto($langs->trans("BillStatusStarted"), 'statut3');
    +			elseif ($statut ==  1) return $langs->trans("Paid").' '.img_picto($langs->trans("Paid"), 'statut6');
     		}
     
    -		return "Error, mode/status not found";
    +		else return "Error, mode/status not found";
     	}
     
     
    @@ -431,9 +468,9 @@ class Loan extends CommonObject
     
     		$tooltip = '<u>' . $langs->trans("ShowLoan") . '</u>';
     		if (! empty($this->ref))
    -			$tooltip .= '<br><b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
    +			$tooltip .= '<br><strong>' . $langs->trans('Ref') . ':</strong> ' . $this->ref;
     		if (! empty($this->label))
    -			$tooltip .= '<br><b>' . $langs->trans('Label') . ':</b> ' . $this->label;
    +			$tooltip .= '<br><strong>' . $langs->trans('Label') . ':</strong> ' . $this->label;
     
     		$linkstart = '<a href="'.DOL_URL_ROOT.'/loan/card.php?id='.$this->id.'" title="'.str_replace('\n', '', dol_escape_htmltag($tooltip, 1)).'" class="classfortooltip">';
     		$linkend = '</a>';
    @@ -445,7 +482,7 @@ class Loan extends CommonObject
     
     		return $result;
     	}
    -	
    +
     	/**
     	 *  Initialise an instance with random values.
     	 *  Used to build previews or test instances.
    @@ -456,9 +493,9 @@ class Loan extends CommonObject
     	function initAsSpecimen()
     	{
     	    global $user, $langs, $conf;
    -	    
    +
     	    $now=dol_now();
    -	    
    +
     	    // Initialise parameters
     	    $this->id = 0;
     	    $this->fk_bank = 1;
    @@ -519,7 +556,6 @@ class Loan extends CommonObject
     	{
     		$sql = 'SELECT l.rowid, l.datec, l.fk_user_author, l.fk_user_modif,';
     		$sql.= ' l.tms';
    -		$sql.= ' FROM '.MAIN_DB_PREFIX.'loan as l';
     		$sql.= ' WHERE l.rowid = '.$id;
     
     		dol_syslog(get_class($this).'::info', LOG_DEBUG);
    diff --git a/htdocs/loan/class/loanschedule.class.php b/htdocs/loan/class/loanschedule.class.php
    index a430f79366e..7373bfb4ab1 100644
    --- a/htdocs/loan/class/loanschedule.class.php
    +++ b/htdocs/loan/class/loanschedule.class.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2017	Florian HENRY <florian.henry@atm-consulting.fr>
    +/* Copyright (C) 2017       Florian HENRY           <florian.henry@atm-consulting.fr>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -17,8 +18,8 @@
     
     /**
      *      \file       htdocs/loan/class/loanschedule.class.php
    - *		\ingroup    facture
    - *		\brief      File of class to manage schedule of loans
    + *      \ingroup    loan
    + *      \brief      File of class to manage schedule of loans
      */
     
     require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
    @@ -29,36 +30,76 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class LoanSchedule extends CommonObject
     {
    -	public $element='loan_schedule';			//!< Id that identify managed objects
    -	public $table_element='loan_schedule';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='loan_schedule';
     
    -	var $fk_loan;
    -	var $datec='';
    -	var $tms='';
    -	var $datep='';
    -    var $amounts=array();   // Array of amounts
    -    var $amount_capital;    // Total amount of payment
    -	var $amount_insurance;
    -	var $amount_interest;
    -	var $fk_typepayment;
    -	var $num_payment;
    -	var $fk_bank;
    -	var $fk_user_creat;
    -	var $fk_user_modif;
    -	var $lines=array();
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='loan_schedule';
    +
    +    /**
    +     * @var int Loan ID
    +     */
    +    public $fk_loan;
    +
    +    /**
    +     * @var string Create date
    +     */
    +    public $datec='';
    +	public $tms='';
    +
    +    /**
    +     * @var string Payment date
    +     */
    +    public $datep='';
    +
    +    public $amounts=array();   // Array of amounts
    +    public $amount_capital;    // Total amount of payment
    +	public $amount_insurance;
    +	public $amount_interest;
    +
    +    /**
    +     * @var int Payment Type ID
    +     */
    +    public $fk_typepayment;
    +
    +    /**
    +     * @var int Payment ID
    +     */
    +    public $num_payment;
    +
    +    /**
    +     * @var int Bank ID
    +     */
    +    public $fk_bank;
    +
    +    /**
    +     * @var int Bank ID
    +     */
    +    public $fk_user_creat;
    +
    +    /**
    +     * @var int User ID
    +     */
    +    public $fk_user_modif;
    +
    +	public $lines=array();
     
     	/**
     	 * @deprecated
     	 * @see amount, amounts
     	 */
    -	var $total;
    +	public $total;
     
     	/**
     	 *	Constructor
     	 *
     	 *  @param		DoliDB		$db      Database handler
     	 */
    -	function __construct($db)
    +	public function __construct($db)
     	{
     		$this->db = $db;
     	}
    @@ -70,7 +111,7 @@ class LoanSchedule extends CommonObject
     	 *  @param      User		$user   User making payment
     	 *  @return     int     			<0 if KO, id of payment if OK
     	 */
    -	function create($user)
    +	public function create($user)
     	{
     		global $conf, $langs;
     
    @@ -79,21 +120,21 @@ class LoanSchedule extends CommonObject
             $now=dol_now();
     
             // Validate parameters
    -		if (! $this->datepaid)
    +		if (! $this->datep)
     		{
     			$this->error='ErrorBadValueForParameter';
     			return -1;
     		}
     
     		// Clean parameters
    -		if (isset($this->fk_loan)) 			$this->fk_loan = trim($this->fk_loan);
    +		if (isset($this->fk_loan)) $this->fk_loan = (int) $this->fk_loan;
     		if (isset($this->amount_capital))	$this->amount_capital = trim($this->amount_capital?$this->amount_capital:0);
     		if (isset($this->amount_insurance))	$this->amount_insurance = trim($this->amount_insurance?$this->amount_insurance:0);
     		if (isset($this->amount_interest))	$this->amount_interest = trim($this->amount_interest?$this->amount_interest:0);
    -		if (isset($this->fk_typepayment))	$this->fk_typepayment = trim($this->fk_typepayment);
    -		if (isset($this->fk_bank))			$this->fk_bank = trim($this->fk_bank);
    -		if (isset($this->fk_user_creat))	$this->fk_user_creat = trim($this->fk_user_creat);
    -		if (isset($this->fk_user_modif))	$this->fk_user_modif = trim($this->fk_user_modif);
    +		if (isset($this->fk_typepayment)) $this->fk_typepayment = (int) $this->fk_typepayment;
    +		if (isset($this->fk_bank)) $this->fk_bank = (int) $this->fk_bank;
    +		if (isset($this->fk_user_creat)) $this->fk_user_creat = (int) $this->fk_user_creat;
    +		if (isset($this->fk_user_modif)) $this->fk_user_modif = (int) $this->fk_user_modif;
     
             $totalamount = $this->amount_capital + $this->amount_insurance + $this->amount_interest;
             $totalamount = price2num($totalamount);
    @@ -112,7 +153,7 @@ class LoanSchedule extends CommonObject
     			$sql = "INSERT INTO ".MAIN_DB_PREFIX.$this->table_element." (fk_loan, datec, datep, amount_capital, amount_insurance, amount_interest,";
     			$sql.= " fk_typepayment, fk_user_creat, fk_bank)";
     			$sql.= " VALUES (".$this->fk_loan.", '".$this->db->idate($now)."',";
    -			$sql.= " '".$this->db->idate($this->datepaid)."',";
    +			$sql.= " '".$this->db->idate($this->datep)."',";
     			$sql.= " ".$this->amount_capital.",";
     			$sql.= " ".$this->amount_insurance.",";
     			$sql.= " ".$this->amount_interest.",";
    @@ -131,7 +172,6 @@ class LoanSchedule extends CommonObject
                     $this->error=$this->db->lasterror();
     				$error++;
     			}
    -
     		}
     
     		if ($totalamount != 0 && ! $error)
    @@ -155,7 +195,7 @@ class LoanSchedule extends CommonObject
     	 *  @param	int		$id         Id object
     	 *  @return int         		<0 if KO, >0 if OK
     	 */
    -	function fetch($id)
    +	public function fetch($id)
     	{
     		global $langs;
     		$sql = "SELECT";
    @@ -183,37 +223,35 @@ class LoanSchedule extends CommonObject
     
     		dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
     		$resql=$this->db->query($sql);
    -		if ($resql)
    -	{
    -		if ($this->db->num_rows($resql))
    -		{
    -			$obj = $this->db->fetch_object($resql);
    +		if ($resql) {
    +            if ($this->db->num_rows($resql)) {
    +                $obj = $this->db->fetch_object($resql);
     
    -			$this->id = $obj->rowid;
    -			$this->ref = $obj->rowid;
    +                $this->id = $obj->rowid;
    +                $this->ref = $obj->rowid;
     
    -			$this->fk_loan = $obj->fk_loan;
    -			$this->datec = $this->db->jdate($obj->datec);
    -			$this->tms = $this->db->jdate($obj->tms);
    -			$this->datep = $this->db->jdate($obj->datep);
    -			$this->amount_capital = $obj->amount_capital;
    -			$this->amount_insurance = $obj->amount_insurance;
    -			$this->amount_interest = $obj->amount_interest;
    -			$this->fk_typepayment = $obj->fk_typepayment;
    -			$this->num_payment = $obj->num_payment;
    -			$this->note_private = $obj->note_private;
    -			$this->note_public = $obj->note_public;
    -			$this->fk_bank = $obj->fk_bank;
    -			$this->fk_user_creat = $obj->fk_user_creat;
    -			$this->fk_user_modif = $obj->fk_user_modif;
    +                $this->fk_loan = $obj->fk_loan;
    +                $this->datec = $this->db->jdate($obj->datec);
    +                $this->tms = $this->db->jdate($obj->tms);
    +                $this->datep = $this->db->jdate($obj->datep);
    +                $this->amount_capital = $obj->amount_capital;
    +                $this->amount_insurance = $obj->amount_insurance;
    +                $this->amount_interest = $obj->amount_interest;
    +                $this->fk_typepayment = $obj->fk_typepayment;
    +                $this->num_payment = $obj->num_payment;
    +                $this->note_private = $obj->note_private;
    +                $this->note_public = $obj->note_public;
    +                $this->fk_bank = $obj->fk_bank;
    +                $this->fk_user_creat = $obj->fk_user_creat;
    +                $this->fk_user_modif = $obj->fk_user_modif;
     
    -			$this->type_code = $obj->type_code;
    -			$this->type_libelle = $obj->type_libelle;
    +                $this->type_code = $obj->type_code;
    +                $this->type_libelle = $obj->type_libelle;
     
    -			$this->bank_account   = $obj->fk_account;
    -			$this->bank_line      = $obj->fk_bank;
    -		}
    -		$this->db->free($resql);
    +                $this->bank_account = $obj->fk_account;
    +                $this->bank_line = $obj->fk_bank;
    +            }
    +            $this->db->free($resql);
     
     			return 1;
     		}
    @@ -232,7 +270,7 @@ class LoanSchedule extends CommonObject
     	 *  @param  int		$notrigger	    0=launch triggers after, 1=disable triggers
     	 *  @return int         			<0 if KO, >0 if OK
     	 */
    -	function update($user=0, $notrigger=0)
    +	public function update($user=0, $notrigger=0)
     	{
     		global $conf, $langs;
     		$error=0;
    @@ -316,7 +354,7 @@ class LoanSchedule extends CommonObject
     	 *  @param  int		$notrigger		0=launch triggers after, 1=disable triggers
     	 *  @return int						<0 if KO, >0 if OK
     	 */
    -	function delete($user, $notrigger=0)
    +	public function delete($user, $notrigger=0)
     	{
     		global $conf, $langs;
     		$error=0;
    @@ -367,13 +405,20 @@ class LoanSchedule extends CommonObject
     		}
     	}
     
    -	function calc_mens($capital,$rate,$nbterm)
    +	/**
    +	 * Calculate Monthly Payments
    +	 *
    +	 * @param   double  $capital        Capital
    +	 * @param   double  $rate           rate
    +	 * @param   int     $nbterm         nb term
    +	 * @return  double                  mensuality
    +	 */
    +	public function calcMonthlyPayments($capital, $rate, $nbterm)
     	{
     		$result='';
     
    -		if (!empty($capital)&&!empty($rate)&&!empty($nbterm))
    -		{
    -			$result=($capital*($rate/12))/(1-pow((1+($rate/12)),($nbterm*-1)));
    +		if (!empty($capital) && !empty($rate) && !empty($nbterm)) {
    +			$result = ($capital*($rate/12))/(1-pow((1+($rate/12)),($nbterm*-1)));
     		}
     
     		return $result;
    @@ -386,7 +431,7 @@ class LoanSchedule extends CommonObject
     	 *  @param	int		$loanid     Id object
     	 *  @return int         		<0 if KO, >0 if OK
     	 */
    -	function fetchAll($loanid)
    +	public function fetchAll($loanid)
     	{
     		global $langs;
     
    @@ -416,7 +461,7 @@ class LoanSchedule extends CommonObject
     		{
     			while($obj = $this->db->fetch_object($resql))
     			{
    -				$line = New LoanSchedule($this->db);
    +				$line = new LoanSchedule($this->db);
     				$line->id = $obj->rowid;
     				$line->ref = $obj->rowid;
     
    @@ -448,11 +493,11 @@ class LoanSchedule extends CommonObject
     	}
     
     	/**
    -	 *  trans_paiment
    +	 *  transPayment
     	 *
     	 *  @return void
     	 */
    -	function trans_paiment()
    +	private function transPayment()
     	{
     		require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php';
     		require_once DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php';
    @@ -467,7 +512,7 @@ class LoanSchedule extends CommonObject
     
     		if($resql){
     			while($obj = $this->db->fetch_object($resql)){
    -				$lastrecorded = $this->lastpaiment($obj->rowid);
    +				$lastrecorded = $this->lastPayment($obj->rowid);
     				$toinsert = $this->paimenttorecord($obj->rowid, $lastrecorded);
     				if(count($toinsert)>0){
     					foreach ($toinsert as $echid){
    @@ -489,12 +534,12 @@ class LoanSchedule extends CommonObject
     
     
     	/**
    -	 *  trans_paiment
    +	 *  lastpayment
     	 *
     	 *  @param  int    $loanid     Loan id
     	 *  @return int                < 0 if KO, Date > 0 if OK
     	 */
    -	function lastpaiment($loanid)
    +	private function lastPayment($loanid)
     	{
     		$sql = "SELECT p.datep";
     		$sql.= " FROM ".MAIN_DB_PREFIX."payment_loan as p ";
    @@ -519,7 +564,7 @@ class LoanSchedule extends CommonObject
     	 *  @param  int        $datemax    Date max
     	 *  @return array                  Array of id
     	 */
    -	function paimenttorecord($loanid, $datemax)
    +	public function paimenttorecord($loanid, $datemax)
     	{
     		$sql = "SELECT p.rowid";
     		$sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element." as p ";
    @@ -534,10 +579,8 @@ class LoanSchedule extends CommonObject
     			{
     				$result[] = $obj->rowid;
     			}
    -
     		}
     
     		return $result;
     	}
     }
    -
    diff --git a/htdocs/loan/class/paymentloan.class.php b/htdocs/loan/class/paymentloan.class.php
    index 595aead109e..b9cbe0d6b58 100644
    --- a/htdocs/loan/class/paymentloan.class.php
    +++ b/htdocs/loan/class/paymentloan.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2014-2018  Alexandre Spangaro   <aspangaro@zendsi.com>
    - * Copyright (C) 2015       Frederic France      <frederic.france@free.fr>
    + * Copyright (C) 2015-2018  Frederic France      <frederic.france@netlogic.fr>
      *
      * 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
    @@ -30,35 +30,78 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class PaymentLoan extends CommonObject
     {
    -	public $element='payment_loan';			//!< Id that identify managed objects
    -	public $table_element='payment_loan';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='payment_loan';
     
    -	var $fk_loan;
    -	var $datec='';
    -	var $tms='';
    -	var $datep='';
    -	var $amounts=array();   // Array of amounts
    -	var $amount_capital;    // Total amount of payment
    -	var $amount_insurance;
    -	var $amount_interest;
    -	var $fk_typepayment;
    -	var $num_payment;
    -	var $fk_bank;
    -	var $fk_user_creat;
    -	var $fk_user_modif;
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='payment_loan';
    +
    +    /**
    +     * @var int Loan ID
    +     */
    +    public $fk_loan;
    +
    +    /**
    +     * @var string Create date
    +     */
    +    public $datec='';
    +
    +    public $tms='';
    +
    +    /**
    +     * @var string Payment date
    +     */
    +    public $datep='';
    +
    +    public $amounts=array();   // Array of amounts
    +
    +    public $amount_capital;    // Total amount of payment
    +
    +    public $amount_insurance;
    +
    +    public $amount_interest;
    +
    +    /**
    +     * @var int Payment type ID
    +     */
    +    public $fk_typepayment;
    +
    +    /**
    +     * @var int Payment ID
    +     */
    +    public $num_payment;
    +
    +    /**
    +     * @var int Bank ID
    +     */
    +    public $fk_bank;
    +
    +    /**
    +     * @var int User ID
    +     */
    +    public $fk_user_creat;
    +
    +    /**
    +     * @var int user ID
    +     */
    +    public $fk_user_modif;
     
     	/**
     	 * @deprecated
     	 * @see amount, amounts
     	 */
    -	var $total;
    +    public $total;
     
     	/**
     	 *	Constructor
     	 *
     	 *  @param		DoliDB		$db      Database handler
     	 */
    -	function __construct($db)
    +	public function __construct($db)
     	{
     		$this->db = $db;
     	}
    @@ -79,24 +122,24 @@ class PaymentLoan extends CommonObject
     		$now=dol_now();
     
     		// Validate parameters
    -		if (! $this->datepaid)
    +		if (! $this->datep)
     		{
     			$this->error='ErrorBadValueForParameter';
     			return -1;
     		}
     
     		// Clean parameters
    -		if (isset($this->fk_loan)) 			$this->fk_loan = trim($this->fk_loan);
    +		if (isset($this->fk_loan)) $this->fk_loan = (int) $this->fk_loan;
     		if (isset($this->amount_capital))	$this->amount_capital = price2num($this->amount_capital?$this->amount_capital:0);
    -		if (isset($this->amount_insurance))	$this->amount_insurance = price2num($this->amount_insurance?$this->amount_insurance:0);
    +		if (isset($this->amount_insurance)) $this->amount_insurance = price2num($this->amount_insurance?$this->amount_insurance:0);
     		if (isset($this->amount_interest))	$this->amount_interest = price2num($this->amount_interest?$this->amount_interest:0);
    -		if (isset($this->fk_typepayment))	$this->fk_typepayment = trim($this->fk_typepayment);
    -		if (isset($this->num_payment))		$this->num_payment = trim($this->num_payment);
    +		if (isset($this->fk_typepayment)) $this->fk_typepayment = (int) $this->fk_typepayment;
    +		if (isset($this->num_payment)) $this->num_payment = (int) $this->num_payment;
     		if (isset($this->note_private))     $this->note_private = trim($this->note_private);
     		if (isset($this->note_public))      $this->note_public = trim($this->note_public);
    -		if (isset($this->fk_bank))			$this->fk_bank = trim($this->fk_bank);
    -		if (isset($this->fk_user_creat))	$this->fk_user_creat = trim($this->fk_user_creat);
    -		if (isset($this->fk_user_modif))	$this->fk_user_modif = trim($this->fk_user_modif);
    +		if (isset($this->fk_bank)) $this->fk_bank = (int) $this->fk_bank;
    +		if (isset($this->fk_user_creat)) $this->fk_user_creat = (int) $this->fk_user_creat;
    +		if (isset($this->fk_user_modif)) $this->fk_user_modif = (int) $this->fk_user_modif;
     
     		$totalamount = $this->amount_capital + $this->amount_insurance + $this->amount_interest;
     		$totalamount = price2num($totalamount);
    @@ -112,7 +155,7 @@ class PaymentLoan extends CommonObject
     			$sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_loan (fk_loan, datec, datep, amount_capital, amount_insurance, amount_interest,";
     			$sql.= " fk_typepayment, num_payment, note_private, note_public, fk_user_creat, fk_bank)";
     			$sql.= " VALUES (".$this->chid.", '".$this->db->idate($now)."',";
    -			$sql.= " '".$this->db->idate($this->datepaid)."',";
    +			$sql.= " '".$this->db->idate($this->datep)."',";
     			$sql.= " ".$this->amount_capital.",";
     			$sql.= " ".$this->amount_insurance.",";
     			$sql.= " ".$this->amount_interest.",";
    @@ -130,7 +173,6 @@ class PaymentLoan extends CommonObject
     				$this->error=$this->db->lasterror();
     				$error++;
     			}
    -
     		}
     
     		if ($totalamount != 0 && ! $error)
    @@ -209,8 +251,8 @@ class PaymentLoan extends CommonObject
     				$this->type_code = $obj->type_code;
     				$this->type_libelle = $obj->type_libelle;
     
    -				$this->bank_account   = $obj->fk_account;
    -				$this->bank_line      = $obj->fk_bank;
    +				$this->bank_account = $obj->fk_account;
    +				$this->bank_line = $obj->fk_bank;
     			}
     			$this->db->free($resql);
     
    @@ -237,20 +279,19 @@ class PaymentLoan extends CommonObject
     		$error=0;
     
     		// Clean parameters
    -		if (isset($this->fk_loan)) $this->fk_loan=trim($this->fk_loan);
    +		if (isset($this->fk_loan)) $this->fk_loan = (int) $this->fk_loan;
     		if (isset($this->amount_capital)) $this->amount_capital=trim($this->amount_capital);
     		if (isset($this->amount_insurance)) $this->amount_insurance=trim($this->amount_insurance);
     		if (isset($this->amount_interest)) $this->amount_interest=trim($this->amount_interest);
    -		if (isset($this->fk_typepayment)) $this->fk_typepayment=trim($this->fk_typepayment);
    -		if (isset($this->num_payment)) $this->num_payment=trim($this->num_payment);
    +		if (isset($this->fk_typepayment)) $this->fk_typepayment = (int) $this->fk_typepayment;
    +		if (isset($this->num_payment)) $this->num_payment = (int) $this->num_payment;
     		if (isset($this->note_private)) $this->note=trim($this->note_private);
     		if (isset($this->note_public)) $this->note=trim($this->note_public);
    -		if (isset($this->fk_bank)) $this->fk_bank=trim($this->fk_bank);
    -		if (isset($this->fk_user_creat)) $this->fk_user_creat=trim($this->fk_user_creat);
    -		if (isset($this->fk_user_modif)) $this->fk_user_modif=trim($this->fk_user_modif);
    +		if (isset($this->fk_bank)) $this->fk_bank = (int) $this->fk_bank;
    +		if (isset($this->fk_user_creat)) $this->fk_user_creat = (int) $this->fk_user_creat;
    +		if (isset($this->fk_user_modif)) $this->fk_user_modif = (int) $this->fk_user_modif;
     
     		// Check parameters
    -		// Put here code to add control on parameters values
     
     		// Update request
     		$sql = "UPDATE ".MAIN_DB_PREFIX."payment_loan SET";
    @@ -412,7 +453,7 @@ class PaymentLoan extends CommonObject
     
     			// Insert payment into llx_bank
     			$bank_line_id = $acc->addline(
    -				$this->datepaid,
    +				$this->datep,
     				$this->paymenttype,  // Payment mode id or code ("CHQ or VIR for example")
     				$label,
     				$total,
    @@ -472,6 +513,7 @@ class PaymentLoan extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update link between loan's payment and the line generate in llx_bank
     	 *
    @@ -480,12 +522,14 @@ class PaymentLoan extends CommonObject
     	 */
     	function update_fk_bank($id_bank)
     	{
    +        // phpcs:enable
     		$sql = "UPDATE ".MAIN_DB_PREFIX."payment_loan SET fk_bank = ".$id_bank." WHERE rowid = ".$this->id;
     
     		dol_syslog(get_class($this)."::update_fk_bank", LOG_DEBUG);
     		$result = $this->db->query($sql);
     		if ($result)
     		{
    +		    $this->fk_bank = $id_bank;
     			return 1;
     		}
     		else
    diff --git a/htdocs/loan/createschedule.php b/htdocs/loan/createschedule.php
    index e895edeec62..7a68d3e38a8 100644
    --- a/htdocs/loan/createschedule.php
    +++ b/htdocs/loan/createschedule.php
    @@ -35,7 +35,7 @@ $object = new Loan($db);
     $object->fetch($loanid);
     
     // Load translation files required by the page
    -$langs->loadLangs(array("loan"));
    +$langs->loadLangs(array("compta","bills","loan"));
     
     if ($action == 'createecheancier') {
     
    @@ -45,23 +45,24 @@ if ($action == 'createecheancier') {
     		$date =  GETPOST('hi_date'.$i,'int');
     		$mens = GETPOST('mens'.$i);
     		$int = GETPOST('hi_interets'.$i);
    +		$insurance = GETPOST('hi_insurance'.$i);
     
     		$echeance = new LoanSchedule($db);
     
     		$echeance->fk_loan = $object->id;
     		$echeance->datec = dol_now();
     		$echeance->tms = dol_now();
    -		$echeance->datepaid = $date;
    +		$echeance->datep = $date;
     		$echeance->amount_capital = $mens-$int;
    -		$echeance->amount_insurance = 0;
    +		$echeance->amount_insurance = $insurance;
     		$echeance->amount_interest = $int;
     		$echeance->fk_typepayment = 3;
    -		$echeance->fk_bank = 1;
    +		$echeance->fk_bank = 0;
     		$echeance->fk_user_creat = $user->id;
     		$echeance->fk_user_modif = $user->id;
     		$result=$echeance->create($user);
     		if ($result<0) {
    -			setEventMessages(null, $echeance->errors,'errors');
    +			setEventMessages($echeance->error, $echeance->errors,'errors');
     		}
     		$i++;
     	}
    @@ -75,11 +76,13 @@ if ($action == 'updateecheancier') {
     		$mens = GETPOST('mens'.$i);
     		$int = GETPOST('hi_interets'.$i);
     		$id = GETPOST('hi_rowid'.$i);
    +		$insurance = GETPOST('hi_insurance'.$i);
    +		
     		$echeance = new LoanSchedule($db);
     		$echeance->fetch($id);
     		$echeance->tms = dol_now();
     		$echeance->amount_capital = $mens-$int;
    -		$echeance->amount_insurance = 0;
    +		$echeance->amount_insurance = $insurance;
     		$echeance->amount_interest = $int;
     		$echeance->fk_user_modif = $user->id;
     		$result= $echeance->update($user,0);
    @@ -143,37 +146,45 @@ if(count($echeance->lines)>0)
     }
     print '<table class="border" width="100%">';
     print '<tr class="liste_titre">';
    -print '<th align="center" colspan="5">';
    +$colspan = 6;
    +if (count($echeance->lines)>0) $colspan++;
    +print '<th align="center" colspan="'.$colspan.'">';
     print $langs->trans("FinancialCommitment");
     print '</th>';
     print '</tr>';
     
     print '<tr class="liste_titre">';
    -Print '<th width="10%" align="center">'.$langs->trans("Term").'</th>';
    -Print '<th width="10%" align="center">'.$langs->trans("Date").'</th>';
    +Print '<th width="5%" align="center">'.$langs->trans("Term").'</th>';
    +Print '<th width="5%" align="center">'.$langs->trans("Date").'</th>';
    +print '<th width="15%" align="center">'.$langs->trans("Insurance");
    +Print '<th width="15%" align="center">'.$langs->trans("InterestAmount").'</th>';
     Print '<th width="10%" align="center">'.$langs->trans("Amount").'</th>';
    -Print '<th width="20%" align="center">'.$langs->trans("InterestAmount").'</th>';
     Print '<th width="40%" align="center">'.$langs->trans("CapitalRemain");
     print ' ('.price2num($object->capital).')';
     print '<input type="hidden" name="hi_capital0" id ="hi_capital0" value="'.$object->capital.'">';
     print '</th>';
    +if (count($echeance->lines)>0) print '<th>'.$langs->trans('DoPayment').'</th>';
     print '</tr>'."\n";
     
     if ($object->nbterm > 0 && count($echeance->lines)==0)
     {
     	$i=1;
     	$capital = $object->capital;
    +	$insurance = $object->insurance_amount/$object->nbterm;
    +	$insurance = price2num($insurance, 'MT');
    +	$regulInsurance = price2num($object->insurance_amount - ($insurance * $object->nbterm));
     	while($i <$object->nbterm+1)
     	{
    -		$mens = price2num($echeance->calc_mens($capital, $object->rate/100, $object->nbterm-$i+1), 'MT');
    +		$mens = price2num($echeance->calcMonthlyPayments($capital, $object->rate/100, $object->nbterm-$i+1), 'MT');
     		$int = ($capital*($object->rate/12))/100;
     		$int = price2num($int, 'MT');
     		$cap_rest = price2num($capital - ($mens-$int), 'MT');
     		print '<tr>';
     		print '<td align="center" id="n'.$i.'">' . $i .'</td>';
     		print '<td align="center" id ="date' .$i .'"><input type="hidden" name="hi_date' .$i .'" id ="hi_date' .$i .'" value="' . dol_time_plus_duree($object->datestart, $i-1, 'm') . '">' . dol_print_date(dol_time_plus_duree($object->datestart, $i-1, 'm'),'day') . '</td>';
    -		print '<td align="center"><input name="mens'.$i.'" id="mens'.$i.'" size="5" value="'.$mens.'" ech="'.$i.'"> €</td>';
    +		print '<td align="center" id="insurance'.$i.'">'.price($insurance+(($i == 1) ? $regulInsurance : 0),0,'',1).' €</td><input type="hidden" name="hi_insurance' .$i .'" id ="hi_insurance' .$i .'" value="' . ($insurance+(($i == 1) ? $regulInsurance : 0)) . '">';
     		print '<td align="center" id="interets'.$i.'">'.price($int,0,'',1).' €</td><input type="hidden" name="hi_interets' .$i .'" id ="hi_interets' .$i .'" value="' . $int . '">';
    +		print '<td align="center"><input name="mens'.$i.'" id="mens'.$i.'" size="5" value="'.$mens.'" ech="'.$i.'"> €</td>';
     		print '<td align="center" id="capital'.$i.'">'.price($cap_rest).' €</td><input type="hidden" name="hi_capital' .$i .'" id ="hi_capital' .$i .'" value="' . $cap_rest . '">';
     		print '</tr>'."\n";
     		$i++;
    @@ -184,6 +195,9 @@ elseif(count($echeance->lines)>0)
     {
     	$i=1;
     	$capital = $object->capital;
    +	$insurance = $object->insurance_amount/$object->nbterm;
    +	$insurance = price2num($insurance, 'MT');
    +	$regulInsurance = price2num($object->insurance_amount - ($insurance * $object->nbterm));
     	foreach ($echeance->lines as $line){
     		$mens = $line->amount_capital+$line->amount_insurance+$line->amount_interest;
     		$int = $line->amount_interest;
    @@ -191,13 +205,16 @@ elseif(count($echeance->lines)>0)
     		print '<tr>';
     		print '<td align="center" id="n'.$i.'"><input type="hidden" name="hi_rowid' .$i .'" id ="hi_rowid' .$i .'" value="' . $line->id . '">' . $i .'</td>';
     		print '<td align="center" id ="date' .$i .'"><input type="hidden" name="hi_date' .$i .'" id ="hi_date' .$i .'" value="' . $line->datep . '">' . dol_print_date($line->datep,'day') . '</td>';
    +		print '<td align="center" id="insurance'.$i.'">'.price($insurance+(($i == 1) ? $regulInsurance : 0),0,'',1).' €</td><input type="hidden" name="hi_insurance' .$i .'" id ="hi_insurance' .$i .'" value="' . ($insurance+(($i == 1) ? $regulInsurance : 0)) . '">';
    +		print '<td align="center" id="interets'.$i.'">'.price($int,0,'',1).' €</td><input type="hidden" name="hi_interets' .$i .'" id ="hi_interets' .$i .'" value="' . $int . '">';
     		if($line->datep > dol_now()){
     			print '<td align="center"><input name="mens'.$i.'" id="mens'.$i.'" size="5" value="'.$mens.'" ech="'.$i.'"> €</td>';
     		}else{
     			print '<td align="center">' . price($mens) . ' €</td><input type="hidden" name="mens' .$i .'" id ="mens' .$i .'" value="' . $mens . '">';
     		}
    -		print '<td align="center" id="interets'.$i.'">'.price($int,0,'',1).' €</td><input type="hidden" name="hi_interets' .$i .'" id ="hi_interets' .$i .'" value="' . $int . '">';
    +		
     		print '<td align="center" id="capital'.$i.'">'.price($cap_rest).' €</td><input type="hidden" name="hi_capital' .$i .'" id ="hi_capital' .$i .'" value="' . $cap_rest . '">';
    +		print '<td align="center"><a class="butAction" href="'.DOL_URL_ROOT.'/loan/payment/payment.php?id='.$object->id.'&amp;action=create">'.$langs->trans('DoPayment').'</a></td>';
     		print '</tr>'."\n";
     		$i++;
     		$capital = $cap_rest;
    @@ -210,8 +227,6 @@ print '</br>';
     print '<div align="center"><input class="button" type="submit" value="'.$langs->trans("Save").'"></div>';
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    -
    -
    -
    diff --git a/htdocs/loan/document.php b/htdocs/loan/document.php
    index f9d17c563fa..553bbc258e8 100644
    --- a/htdocs/loan/document.php
    +++ b/htdocs/loan/document.php
    @@ -124,7 +124,7 @@ if ($object->id)
     	}
     	$morehtmlref.='</div>';
     
    -	$linkback = '<a href="' . DOL_URL_ROOT . '/loan/index.php">' . $langs->trans("BackToList") . '</a>';
    +	$linkback = '<a href="' . DOL_URL_ROOT . '/loan/list.php">' . $langs->trans("BackToList") . '</a>';
     
     	$object->totalpaid = $totalpaid;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    @@ -134,7 +134,7 @@ if ($object->id)
     	print '<div class="underbanner clearboth"></div>';
     
     
    -    // Construit liste des fichiers
    +    // Build file list
         $filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
         $totalsize=0;
         foreach($filearray as $key => $file)
    @@ -163,7 +163,6 @@ else
         print $langs->trans("ErrorUnknown");
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/loan/info.php b/htdocs/loan/info.php
    index d5b6e673f7c..cc923b17fea 100644
    --- a/htdocs/loan/info.php
    +++ b/htdocs/loan/info.php
    @@ -96,7 +96,7 @@ if (! empty($conf->projet->enabled)) {
     }
     $morehtmlref.='</div>';
     
    -$linkback = '<a href="' . DOL_URL_ROOT . '/loan/index.php">' . $langs->trans("BackToList") . '</a>';
    +$linkback = '<a href="' . DOL_URL_ROOT . '/loan/list.php">' . $langs->trans("BackToList") . '</a>';
     
     $object->totalpaid = $totalpaid;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    @@ -113,5 +113,6 @@ print '</td></tr></table>';
     
     print '</div>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/loan/index.php b/htdocs/loan/list.php
    similarity index 99%
    rename from htdocs/loan/index.php
    rename to htdocs/loan/list.php
    index a032139c8fa..780d28df081 100644
    --- a/htdocs/loan/index.php
    +++ b/htdocs/loan/list.php
    @@ -19,7 +19,7 @@
      */
     
     /**
    - *  \file       htdocs/loan/index.php
    + *  \file       htdocs/loan/list.php
      *  \ingroup    loan
      *  \brief      Page to list all loans
      */
    @@ -104,7 +104,6 @@ if ($resql)
     {
     	$num = $db->num_rows($resql);
     	$i = 0;
    -	$var=true;
     
     	$param='';
     	if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
    @@ -167,7 +166,6 @@ if ($resql)
     		$loan_static->ref = $obj->rowid;
     		$loan_static->label = $obj->label;
     
    -		$var = !$var;
     		print '<tr class="oddeven">';
     
     		// Ref
    @@ -204,6 +202,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/loan/note.php b/htdocs/loan/note.php
    index f38ed50e431..e066ef07a8e 100644
    --- a/htdocs/loan/note.php
    +++ b/htdocs/loan/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2007  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2013       Florian Henry           <florian.henry@open-concept.pro>
      * Copyright (C) 2015       Frederic France         <frederic.france@free.fr>
      * Copyright (C) 2016-2018  Alexandre Spangaro      <aspangaro@zendsi.com>
    @@ -113,7 +113,7 @@ if ($id > 0)
     	}
     	$morehtmlref.='</div>';
     
    -	$linkback = '<a href="' . DOL_URL_ROOT . '/loan/index.php">' . $langs->trans("BackToList") . '</a>';
    +	$linkback = '<a href="' . DOL_URL_ROOT . '/loan/list.php">' . $langs->trans("BackToList") . '</a>';
     
     	$object->totalpaid = $totalpaid;   // To give a chance to dol_banner_tab to use already paid amount to show correct status
     
    @@ -129,6 +129,7 @@ if ($id > 0)
         dol_fiche_end();
     }
     
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/loan/payment/card.php b/htdocs/loan/payment/card.php
    index e19e33bc31e..017f6a26254 100644
    --- a/htdocs/loan/payment/card.php
    +++ b/htdocs/loan/payment/card.php
    @@ -54,11 +54,14 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->loan->del
     {
     	$db->begin();
     
    +	$sql = "UPDATE ".MAIN_DB_PREFIX."loan_schedule SET fk_bank = 0 WHERE fk_bank = ".$payment->fk_bank;
    +	$db->query($sql);
    +	
     	$result = $payment->delete($user);
     	if ($result > 0)
     	{
     		$db->commit();
    -		header("Location: ".DOL_URL_ROOT."/loan/index.php");
    +		header("Location: ".DOL_URL_ROOT."/loan/list.php");
     		exit;
     	}
     	else
    @@ -286,14 +289,12 @@ if (empty($action) && ! empty($user->rights->loan->delete))
     	}
     	else
     	{
    -		print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("CantRemovePaymentWithOneInvoicePaid")).'">'.$langs->trans('Delete').'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("CantRemovePaymentWithOneInvoicePaid")).'">'.$langs->trans('Delete').'</a>';
     	}
     }
     
     print '</div>';
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/loan/payment/payment.php b/htdocs/loan/payment/payment.php
    index ee83bf17f00..2ca310a1689 100644
    --- a/htdocs/loan/payment/payment.php
    +++ b/htdocs/loan/payment/payment.php
    @@ -1,6 +1,6 @@
     <?php
    -/* Copyright (C) 2014-2018  Alexandre Spangaro   <aspangaro@zendsi.com>
    - * Copyright (C) 2015       Frederic France      <frederic.france@free.fr>
    +/* Copyright (C) 2014-2018  Alexandre Spangaro      <aspangaro@zendsi.com>
    + * Copyright (C) 2015-2018  Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -24,6 +24,7 @@
     
     require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/loan/class/loanschedule.class.php';
     require_once DOL_DOCUMENT_ROOT.'/loan/class/paymentloan.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     
    @@ -32,6 +33,8 @@ $langs->loadLangs(array("bills","loan"));
     $chid=GETPOST('id','int');
     $action=GETPOST('action','aZ09');
     $cancel=GETPOST('cancel','alpha');
    +$line_id = GETPOST('line_id', 'int');
    +$last=GETPOST('last');
     
     // Security check
     $socid=0;
    @@ -43,9 +46,41 @@ if ($user->societe_id > 0)
     $loan = new Loan($db);
     $loan->fetch($chid);
     
    +if($last)
    +{
    +    $ls = new LoanSchedule($db);
    +    // grab all loanschedule
    +    $res = $ls->fetchAll($chid);
    +    if ($res > 0)
    +    {
    +        foreach ($ls->lines as $l)
    +        {
    +            // get the last unpaid loanschedule
    +            if (empty($l->fk_bank))
    +            {
    +                $line_id = $l->id;
    +                break;
    +            }
    +        }
    +    }
    +}
    +
    +if (!empty($line_id))
    +{
    +    $line = new LoanSchedule($db);
    +    $res = $line->fetch($line_id);
    +    if ($res > 0){
    +        $amount_capital = price($line->amount_capital);
    +        $amount_insurance = price($line->amount_insurance);
    +        $amount_interest = price($line->amount_interest);
    +    }
    +}
    +
    +
     /*
      * Actions
      */
    +
     if ($action == 'add_payment')
     {
     	$error=0;
    @@ -69,72 +104,77 @@ if ($action == 'add_payment')
     		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Date")), null, 'errors');
     		$error++;
     	}
    -    if (! empty($conf->banque->enabled) && ! GETPOST('accountid', 'int') > 0)
    -    {
    -        setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountToCredit")), null, 'errors');
    -        $error++;
    -    }
    +	if (! empty($conf->banque->enabled) && ! GETPOST('accountid', 'int') > 0)
    +	{
    +		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountToCredit")), null, 'errors');
    +		$error++;
    +	}
     
     	if (! $error)
     	{
     		$paymentid = 0;
     
    -        $amount = GETPOST('amount_capital') + GETPOST('amount_insurance') + GETPOST('amount_interest');
    -        if ($amount == 0)
    -        {
    -            setEventMessages($langs->trans('ErrorNoPaymentDefined'), null, 'errors');
    -            $error++;
    -        }
    +		$amount = GETPOST('amount_capital') + GETPOST('amount_insurance') + GETPOST('amount_interest');
    +		if ($amount == 0)
    +		{
    +			setEventMessages($langs->trans('ErrorNoPaymentDefined'), null, 'errors');
    +			$error++;
    +		}
     
    -        if (! $error)
    -        {
    -    		$db->begin();
    +		if (! $error)
    +		{
    +			$db->begin();
     
    -    		// Create a line of payments
    -    		$payment = new PaymentLoan($db);
    -    		$payment->chid				= $chid;
    -    		$payment->datepaid			= $datepaid;
    -            $payment->label             = $loan->label;
    +			// Create a line of payments
    +			$payment = new PaymentLoan($db);
    +			$payment->chid				= $chid;
    +			$payment->datep = $datepaid;
    +			$payment->label             = $loan->label;
     			$payment->amount_capital	= GETPOST('amount_capital');
     			$payment->amount_insurance	= GETPOST('amount_insurance');
     			$payment->amount_interest	= GETPOST('amount_interest');
    -			$payment->paymenttype		= GETPOST('paymenttype');
    -    		$payment->num_payment		= GETPOST('num_payment');
    -    		$payment->note_private      = GETPOST('note_private','none');
    -    		$payment->note_public       = GETPOST('note_public','none');
    +			$payment->paymenttype = GETPOST('paymenttype', 'int');
    +			$payment->num_payment		= GETPOST('num_payment');
    +			$payment->note_private      = GETPOST('note_private','none');
    +			$payment->note_public       = GETPOST('note_public','none');
     
    -    		if (! $error)
    -    		{
    -    		    $paymentid = $payment->create($user);
    -                if ($paymentid < 0)
    -                {
    -                    setEventMessages($payment->error, $payment->errors, 'errors');
    -                    $error++;
    -                }
    -    		}
    +			if (! $error)
    +			{
    +				$paymentid = $payment->create($user);
    +				if ($paymentid < 0)
    +				{
    +					setEventMessages($payment->error, $payment->errors, 'errors');
    +					$error++;
    +				}
    +			}
     
    -            if (! $error)
    -            {
    -                $result = $payment->addPaymentToBank($user, $chid, 'payment_loan', '(LoanPayment)', GETPOST('accountid', 'int'), '', '');
    -                if (! $result > 0)
    -                {
    -                    setEventMessages($payment->error, $payment->errors, 'errors');
    -                    $error++;
    -                }
    -            }
    +			if (! $error)
    +			{
    +				$result = $payment->addPaymentToBank($user, $chid, 'payment_loan', '(LoanPayment)', GETPOST('accountid', 'int'), '', '');
    +				if (! $result > 0)
    +				{
    +					setEventMessages($payment->error, $payment->errors, 'errors');
    +					$error++;
    +				}
    +				elseif(isset($line))
    +				{
    +					$line->fk_bank = $payment->fk_bank;
    +					$line->update($user);
    +				}
    +			}
     
    -    	    if (! $error)
    -            {
    -                $db->commit();
    -                $loc = DOL_URL_ROOT.'/loan/card.php?id='.$chid;
    -                header('Location: '.$loc);
    -                exit;
    -            }
    -            else
    -            {
    -                $db->rollback();
    -            }
    -        }
    +			if (! $error)
    +			{
    +				$db->commit();
    +				$loc = DOL_URL_ROOT.'/loan/card.php?id='.$chid;
    +				header('Location: '.$loc);
    +				exit;
    +			}
    +			else
    +			{
    +				$db->rollback();
    +			}
    +		}
     	}
     
     	$action = 'create';
    @@ -161,6 +201,7 @@ if ($action == 'create')
     	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     	print '<input type="hidden" name="id" value="'.$chid.'">';
     	print '<input type="hidden" name="chid" value="'.$chid.'">';
    +	print '<input type="hidden" name="line_id" value="'.$line_id.'">';
     	print '<input type="hidden" name="action" value="add_payment">';
     
         dol_fiche_head();
    @@ -200,7 +241,7 @@ if ($action == 'create')
     	print '<tr><td class="titlefield fieldrequired">'.$langs->trans("Date").'</td><td colspan="2">';
     	$datepaid = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
     	$datepayment = empty($conf->global->MAIN_AUTOFILL_DATE)?(empty($_POST["remonth"])?-1:$datepaye):0;
    -	$form->select_date($datepayment, '', '', '', '', "add_payment", 1, 1);
    +	print $form->selectDate($datepayment, '', '', '', '', "add_payment", 1, 1);
     	print "</td>";
     	print '</tr>';
     
    @@ -233,11 +274,11 @@ if ($action == 'create')
     
     	print '</table>';
     
    -    dol_fiche_end();
    +	dol_fiche_end();
     
     	print '<table class="noborder" width="100%">';
     	print '<tr class="liste_titre">';
    -	print '<td align="left">'.$langs->trans("DateDue").'</td>';
    +	print '<td class="left">'.$langs->trans("DateDue").'</td>';
     	print '<td align="right">'.$langs->trans("LoanCapital").'</td>';
     	print '<td align="right">'.$langs->trans("AlreadyPaid").'</td>';
     	print '<td align="right">'.$langs->trans("RemainderToPay").'</td>';
    @@ -264,7 +305,7 @@ if ($action == 'create')
     	print '<td align="right">';
     	if ($sumpaid < $loan->capital)
     	{
    -		print $langs->trans("LoanCapital") .': <input type="text" size="8" name="amount_capital">';
    +	    print $langs->trans("LoanCapital") .': <input type="text" size="8" name="amount_capital" value="'.$amount_capital.'">';
     	}
     	else
     	{
    @@ -273,7 +314,7 @@ if ($action == 'create')
     	print '<br>';
     	if ($sumpaid < $loan->capital)
     	{
    -		print $langs->trans("Insurance") .': <input type="text" size="8" name="amount_insurance">';
    +		print $langs->trans("Insurance") .': <input type="text" size="8" name="amount_insurance" value="'.$amount_insurance.'">';
     	}
     	else
     	{
    @@ -282,7 +323,7 @@ if ($action == 'create')
     	print '<br>';
     	if ($sumpaid < $loan->capital)
     	{
    -		print $langs->trans("Interest") .': <input type="text" size="8" name="amount_interest">';
    +		print $langs->trans("Interest") .': <input type="text" size="8" name="amount_interest" value="'.$amount_interest.'">';
     	}
     	else
     	{
    diff --git a/htdocs/loan/schedule.php b/htdocs/loan/schedule.php
    new file mode 100644
    index 00000000000..30ba126aefb
    --- /dev/null
    +++ b/htdocs/loan/schedule.php
    @@ -0,0 +1,251 @@
    +<?php
    +/* Copyright (C) 2017      Franck Moreau        <franck.moreau@theobald.com>
    + * Copyright (C) 2018      Alexandre Spangaro   <aspangaro@zendsi.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *  \file       htdocs/loan/createschedule.php
    + *  \ingroup    loan
    + *  \brief      Schedule card
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/loan.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/loan/class/loanschedule.class.php';
    +
    +$loanid = GETPOST('loanid', 'int');
    +$action = GETPOST('action','aZ09');
    +
    +$object = new Loan($db);
    +$object->fetch($loanid);
    +
    +// Load translation files required by the page
    +$langs->loadLangs(array("compta","bills","loan"));
    +
    +$title = $langs->trans("Loan") . ' - ' . $langs->trans("Card");
    +$help_url = 'EN:Module_Loan|FR:Module_Emprunt';
    +llxHeader("",$title,$help_url);
    +
    +$head=loan_prepare_head($object);
    +dol_fiche_head($head, 'FinancialCommitment', $langs->trans("Loan"), -1, 'bill');
    +
    +if ($action == 'createecheancier') {
    +    
    +    $i=1;
    +    while($i <$object->nbterm+1){
    +        
    +        $date =  GETPOST('hi_date'.$i,'int');
    +        $mens = GETPOST('mens'.$i);
    +        $int = GETPOST('hi_interets'.$i);
    +        $insurance = GETPOST('hi_insurance'.$i);
    +        
    +        $echeance = new LoanSchedule($db);
    +        
    +        $echeance->fk_loan = $object->id;
    +        $echeance->datec = dol_now();
    +        $echeance->tms = dol_now();
    +        $echeance->datep = $date;
    +        $echeance->amount_capital = $mens-$int;
    +        $echeance->amount_insurance = $insurance;
    +        $echeance->amount_interest = $int;
    +        $echeance->fk_typepayment = 3;
    +        $echeance->fk_bank = 0;
    +        $echeance->fk_user_creat = $user->id;
    +        $echeance->fk_user_modif = $user->id;
    +        $result=$echeance->create($user);
    +        if ($result<0) {
    +            setEventMessages($echeance->error, $echeance->errors,'errors');
    +        }
    +        $i++;
    +    }
    +}
    +
    +if ($action == 'updateecheancier') {
    +    
    +    $i=1;
    +    while($i <$object->nbterm+1){
    +        
    +        $mens = GETPOST('mens'.$i);
    +        $int = GETPOST('hi_interets'.$i);
    +        $id = GETPOST('hi_rowid'.$i);
    +        $insurance = GETPOST('hi_insurance'.$i);
    +        
    +        $echeance = new LoanSchedule($db);
    +        $echeance->fetch($id);
    +        $echeance->tms = dol_now();
    +        $echeance->amount_capital = $mens-$int;
    +        $echeance->amount_insurance = $insurance;
    +        $echeance->amount_interest = $int;
    +        $echeance->fk_user_modif = $user->id;
    +        $result= $echeance->update($user,0);
    +        if ($result<0) {
    +            setEventMessages(null, $echeance->errors,'errors');
    +        }
    +        $i++;
    +    }
    +}
    +
    +$echeance = new LoanSchedule($db);
    +$echeance->fetchAll($object->id);
    +
    +$var = ! $var;
    +
    +
    +?>
    +<script type="text/javascript" language="javascript">
    +$(document).ready(function() {
    +	$('[name^="mens"]').focusout(function() {
    +		var echeance=$(this).attr('ech');
    +		var mens=$(this).val();
    +		var idcap=echeance-1;
    +		idcap = '#hi_capital'+idcap;
    +		var capital=$(idcap).val();
    +		console.log("Change montly amount echeance="+echeance+" idcap="+idcap+" capital="+capital);
    +		$.ajax({
    +			  dataType: 'json',
    +			  url: 'calcmens.php',
    +			  data: { echeance: echeance, mens: mens, capital:capital, rate:<?php echo $object->rate/100;?> , nbterm : <?php echo $object->nbterm;?>},
    +			  success: function(data) {
    +				$.each(data, function(index, element) {
    +					var idcap_res='#hi_capital'+index;
    +					var idcap_res_srt='#capital'+index;
    +					var interet_res='#hi_interets'+index;
    +					var interet_res_str='#interets'+index;
    +					var men_res='#mens'+index;
    +					$(idcap_res).val(element.cap_rest);
    +					$(idcap_res_srt).text(element.cap_rest_str+' €');
    +					$(interet_res).val(element.interet);
    +					$(interet_res_str).text(element.interet_str+' €');
    +					$(men_res).val(element.mens);
    +				});
    +			}
    +		});
    +	});
    +});
    +</script>
    +<?php
    +
    +
    +print '<form name="createecheancier" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
    +print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    +print '<input type="hidden" name="loanid" value="' . $loanid . '">';
    +if(count($echeance->lines)>0)
    +{
    +	print '<input type="hidden" name="action" value="updateecheancier">';
    +}else{
    +	print '<input type="hidden" name="action" value="createecheancier">';
    +}
    +print '<table class="border" width="100%">';
    +print '<tr class="liste_titre">';
    +$colspan = 6;
    +if (count($echeance->lines)>0) $colspan++;
    +print '<th align="center" colspan="'.$colspan.'">';
    +print $langs->trans("FinancialCommitment");
    +print '</th>';
    +print '</tr>';
    +
    +print '<tr class="liste_titre">';
    +Print '<th width="5%" align="center">'.$langs->trans("Term").'</th>';
    +Print '<th width="5%" align="center">'.$langs->trans("Date").'</th>';
    +print '<th width="15%" align="center">'.$langs->trans("Insurance");
    +Print '<th width="15%" align="center">'.$langs->trans("InterestAmount").'</th>';
    +Print '<th width="10%" align="center">'.$langs->trans("Amount").'</th>';
    +Print '<th width="40%" align="center">'.$langs->trans("CapitalRemain");
    +print ' ('.price2num($object->capital).')';
    +print '<input type="hidden" name="hi_capital0" id ="hi_capital0" value="'.$object->capital.'">';
    +print '</th>';
    +if (count($echeance->lines)>0) print '<th>'.$langs->trans('DoPayment').'</th>';
    +print '</tr>'."\n";
    +
    +if ($object->nbterm > 0 && count($echeance->lines)==0)
    +{
    +	$i=1;
    +	$capital = $object->capital;
    +	$insurance = $object->insurance_amount/$object->nbterm;
    +	$insurance = price2num($insurance, 'MT');
    +	$regulInsurance = price2num($object->insurance_amount - ($insurance * $object->nbterm));
    +	while($i <$object->nbterm+1)
    +	{
    +		$mens = price2num($echeance->calcMonthlyPayments($capital, $object->rate/100, $object->nbterm-$i+1), 'MT');
    +		$int = ($capital*($object->rate/12))/100;
    +		$int = price2num($int, 'MT');
    +		$insu = ($insurance+(($i == 1) ? $regulInsurance : 0));
    +		$cap_rest = price2num($capital - ($mens-$int), 'MT');
    +		print '<tr>';
    +		print '<td align="center" id="n'.$i.'">' . $i .'</td>';
    +		print '<td align="center" id ="date' .$i .'"><input type="hidden" name="hi_date' .$i .'" id ="hi_date' .$i .'" value="' . dol_time_plus_duree($object->datestart, $i-1, 'm') . '">' . dol_print_date(dol_time_plus_duree($object->datestart, $i-1, 'm'),'day') . '</td>';
    +		print '<td align="center" id="insurance'.$i.'">'.price($insurance+(($i == 1) ? $regulInsurance : 0),0,'',1).' €</td><input type="hidden" name="hi_insurance' .$i .'" id ="hi_insurance' .$i .'" value="' . ($insurance+(($i == 1) ? $regulInsurance : 0)) . '">';
    +		print '<td align="center" id="interets'.$i.'">'.price($int,0,'',1).' €</td><input type="hidden" name="hi_interets' .$i .'" id ="hi_interets' .$i .'" value="' . $int . '">';
    +		print '<td align="center"><input name="mens'.$i.'" id="mens'.$i.'" size="5" value="'.$mens.'" ech="'.$i.'"> €</td>';
    +		print '<td align="center" id="capital'.$i.'">'.price($cap_rest).' €</td><input type="hidden" name="hi_capital' .$i .'" id ="hi_capital' .$i .'" value="' . $cap_rest . '">';
    +		print '</tr>'."\n";
    +		$i++;
    +		$capital = $cap_rest;
    +	}
    +}
    +elseif(count($echeance->lines)>0)
    +{
    +	$i=1;
    +	$capital = $object->capital;
    +	$insurance = $object->insurance_amount/$object->nbterm;
    +	$insurance = price2num($insurance, 'MT');
    +	$regulInsurance = price2num($object->insurance_amount - ($insurance * $object->nbterm));
    +	$printed = false;
    +	foreach ($echeance->lines as $line){
    +		$mens = $line->amount_capital+$line->amount_interest;
    +		$int = $line->amount_interest;
    +		$insu = ($insurance+(($i == 1) ? $regulInsurance : 0));
    +		$cap_rest = price2num($capital - ($mens-$int), 'MT');
    +		
    +		print '<tr>';
    +		print '<td align="center" id="n'.$i.'"><input type="hidden" name="hi_rowid' .$i .'" id ="hi_rowid' .$i .'" value="' . $line->id . '">' . $i .'</td>';
    +		print '<td align="center" id ="date' .$i .'"><input type="hidden" name="hi_date' .$i .'" id ="hi_date' .$i .'" value="' . $line->datep . '">' . dol_print_date($line->datep,'day') . '</td>';
    +		print '<td align="center" id="insurance'.$i.'">'.price($insu,0,'',1).' €</td><input type="hidden" name="hi_insurance' .$i .'" id ="hi_insurance' .$i .'" value="' . $insu . '">';
    +		print '<td align="center" id="interets'.$i.'">'.price($int,0,'',1).' €</td><input type="hidden" name="hi_interets' .$i .'" id ="hi_interets' .$i .'" value="' . $int . '">';
    +		if($line->datep > dol_now() && empty($line->fk_bank)){
    +			print '<td align="center"><input name="mens'.$i.'" id="mens'.$i.'" size="5" value="'.$mens.'" ech="'.$i.'"> €</td>';
    +		}else{
    +			print '<td align="center">' . price($mens) . ' €</td><input type="hidden" name="mens' .$i .'" id ="mens' .$i .'" value="' . $mens . '">';
    +		}
    +		
    +		print '<td align="center" id="capital'.$i.'">'.price($cap_rest).' €</td><input type="hidden" name="hi_capital' .$i .'" id ="hi_capital' .$i .'" value="' . $cap_rest . '">';
    +		print '<td align="center">';
    +		if (!empty($line->fk_bank)) print $langs->trans('Paid');
    +		elseif (!$printed)
    +		{
    +		    print '<a class="butAction" href="'.DOL_URL_ROOT.'/loan/payment/payment.php?id='.$object->id.'&amp;action=create&line_id='.$line->id.'">'.$langs->trans('DoPayment').'</a>';
    +		    $printed = true;
    +		}
    +		print '</td>';
    +		print '</tr>'."\n";
    +		$i++;
    +		$capital = $cap_rest;
    +	}
    +}
    +
    +print '</table>';
    +print '</br>';
    +print '</br>';
    +if (count($echeance->lines)==0) $label = $langs->trans("Create");
    +else $label = $langs->trans("Save");
    +print '<div align="center"><input class="button" type="submit" value="'.$label.'"></div>';
    +print '</form>';
    +
    +// End of page
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/mailmanspip/class/mailmanspip.class.php b/htdocs/mailmanspip/class/mailmanspip.class.php
    index f7ae2608da5..213febdc4b5 100644
    --- a/htdocs/mailmanspip/class/mailmanspip.class.php
    +++ b/htdocs/mailmanspip/class/mailmanspip.class.php
    @@ -1,11 +1,12 @@
     <?php
    -/* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
    - * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
    - * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    - * Copyright (C) 2012      Marcos García        <marcosgdf@gmail.com>
    +/* Copyright (C) 2002-2003  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2002-2003  Jean-Louis Bergamo      <jlb@j1b.org>
    + * Copyright (C) 2004-2013  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2004       Sebastien Di Cintio     <sdicintio@ressource-toi.org>
    + * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
    + * Copyright (C) 2009       Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2012       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -38,13 +39,25 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
      */
     class MailmanSpip
     {
    -    var $db;
    -    var $error;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -    var $mladded_ok;
    -    var $mladded_ko;
    -    var $mlremoved_ok;
    -    var $mlremoved_ko;
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +    /**
    +     * @var string[]	Array of error strings
    +     */
    +    public $errors = array();
    +
    +    public $mladded_ok;
    +    public $mladded_ko;
    +    public $mlremoved_ok;
    +    public $mlremoved_ko;
     
     
         /**
    @@ -163,6 +176,7 @@ class MailmanSpip
             return $result;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Fonction qui donne les droits redacteurs dans spip
          *
    @@ -171,6 +185,7 @@ class MailmanSpip
          */
         function add_to_spip($object)
         {
    +        // phpcs:enable
             dol_syslog(get_class($this)."::add_to_spip");
     
             if ($this->isSpipEnabled())
    @@ -205,6 +220,7 @@ class MailmanSpip
             return 0;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Fonction qui enleve les droits redacteurs dans spip
          *
    @@ -213,6 +229,7 @@ class MailmanSpip
          */
         function del_to_spip($object)
         {
    +        // phpcs:enable
             dol_syslog(get_class($this)."::del_to_spip");
     
             if ($this->isSpipEnabled())
    @@ -244,6 +261,7 @@ class MailmanSpip
             return 0;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Fonction qui dit si cet utilisateur est un redacteur existant dans spip
          *
    @@ -252,6 +270,7 @@ class MailmanSpip
          */
         function is_in_spip($object)
         {
    +        // phpcs:enable
             if ($this->isSpipEnabled())
             {
                 if ($this->checkSpipConfig())
    @@ -294,6 +313,7 @@ class MailmanSpip
             return -1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Subscribe an email to all mailing-lists
          *
    @@ -303,6 +323,7 @@ class MailmanSpip
          */
         function add_to_mailman($object,$listes='')
         {
    +        // phpcs:enable
             global $conf,$langs,$user;
     
             dol_syslog(get_class($this)."::add_to_mailman");
    @@ -365,6 +386,7 @@ class MailmanSpip
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Unsubscribe an email from all mailing-lists
          *  Used when a user is resiliated
    @@ -375,6 +397,7 @@ class MailmanSpip
          */
         function del_to_mailman($object,$listes='')
         {
    +        // phpcs:enable
             global $conf,$langs,$user;
     
             dol_syslog(get_class($this)."::del_to_mailman");
    @@ -436,5 +459,4 @@ class MailmanSpip
     	        }
             }
         }
    -
     }
    diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php
    index ca182c7b337..f4fd328c62b 100644
    --- a/htdocs/main.inc.php
    +++ b/htdocs/main.inc.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2004       Sebastien Di Cintio     <sdicintio@ressource-toi.org>
      * Copyright (C) 2004       Benoit Mortier          <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2015  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2014  Philippe Grand          <philippe.grand@atoo-net.com>
      * Copyright (C) 2008       Matteli
      * Copyright (C) 2011-2016  Juanjo Menent           <jmenent@2byte.es>
    @@ -68,6 +68,22 @@ if (function_exists('get_magic_quotes_gpc'))	// magic_quotes_* deprecated in PHP
     	}
     }
     
    +// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +/**
    + * Security: SQL Injection and XSS Injection (scripts) protection (Filters on GET, POST, PHP_SELF).
    + *
    + * @param       string      $val        Value
    + * @param       string      $type       1=GET, 0=POST, 2=PHP_SELF, 3=GET without sql reserved keywords (the less tolerant test)
    + * @return      int                     >0 if there is an injection, 0 if none
    + * @deprecated                          use testSqlAndScriptInject
    + * @see testSqlAndScriptInject($val, $type)
    + */
    +function test_sql_and_script_inject($val, $type)
    +{
    +    // phpcs:enable
    +    return testSqlAndScriptInject($val, $type);
    +}
    +
     /**
      * Security: SQL Injection and XSS Injection (scripts) protection (Filters on GET, POST, PHP_SELF).
      *
    @@ -75,7 +91,7 @@ if (function_exists('get_magic_quotes_gpc'))	// magic_quotes_* deprecated in PHP
      * @param		string		$type		1=GET, 0=POST, 2=PHP_SELF, 3=GET without sql reserved keywords (the less tolerant test)
      * @return		int						>0 if there is an injection, 0 if none
      */
    -function test_sql_and_script_inject($val, $type)
    +function testSqlAndScriptInject($val, $type)
     {
     	$inj = 0;
     	// For SQL Injection (only GET are used to be included into bad escaped SQL requests)
    @@ -158,7 +174,7 @@ function analyseVarsForSqlAndScriptsInjection(&$var, $type)
     	}
     	else
     	{
    -		return (test_sql_and_script_inject($var, $type) <= 0);
    +		return (testSqlAndScriptInject($var, $type) <= 0);
     	}
     }
     
    @@ -256,8 +272,6 @@ if (isset($_SERVER["HTTP_USER_AGENT"]))
     	$conf->browser->os=$tmp['browseros'];
     	$conf->browser->version=$tmp['browserversion'];
     	$conf->browser->layout=$tmp['layout'];     // 'classic', 'phone', 'tablet'
    -	$conf->browser->phone=$tmp['phone'];	   // TODO deprecated, use ->layout
    -	$conf->browser->tablet=$tmp['tablet'];	   // TODO deprecated, use ->layout
     	//var_dump($conf->browser);
     
     	if ($conf->browser->layout == 'phone') $conf->dol_no_mouse_hover=1;
    @@ -349,6 +363,8 @@ if ((! empty($conf->global->MAIN_VERSION_LAST_UPGRADE) && ($conf->global->MAIN_V
     	}
     }
     
    +//var_dump(GETPOST('token').' '.$_SESSION['token'].' - '.$_SESSION['newtoken'].' '.$_SERVER['SCRIPT_FILENAME']);
    +
     // Creation of a token against CSRF vulnerabilities
     if (! defined('NOTOKENRENEWAL'))
     {
    @@ -359,24 +375,30 @@ if (! defined('NOTOKENRENEWAL'))
     	$token = dol_hash(uniqid(mt_rand(), true)); // Generates a hash of a random number
     	$_SESSION['newtoken'] = $token;
     }
    +
    +//var_dump(GETPOST('token').' '.$_SESSION['token'].' - '.$_SESSION['newtoken'].' '.$_SERVER['SCRIPT_FILENAME']);
    +
    +// Check token
     if ((! defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && ! empty($conf->global->MAIN_SECURITY_CSRF_WITH_TOKEN))
     	|| defined('CSRFCHECK_WITH_TOKEN'))	// Check validity of token, only if option MAIN_SECURITY_CSRF_WITH_TOKEN enabled or if constant CSRFCHECK_WITH_TOKEN is set
     {
    -	if ($_SERVER['REQUEST_METHOD'] == 'POST' && ! GETPOST('token','alpha')) // Note, offender can still send request by GET
    +	if ($_SERVER['REQUEST_METHOD'] == 'POST' && ! GETPOSTISSET('token')) // Note, offender can still send request by GET
     	{
    -		print "Access refused by CSRF protection in main.inc.php. Token not provided.\n";
    -		print "If you access your server behind a proxy using url rewriting, you might check that all HTTP header is propagated (or add the line \$dolibarr_nocsrfcheck=1 into your conf.php file).\n";
    +		print "Access by POST method refused by CSRF protection in main.inc.php. Token not provided.\n";
    +		print "If you access your server behind a proxy using url rewriting, you might check that all HTTP header is propagated (or add the line \$dolibarr_nocsrfcheck=1 into your conf.php file or MAIN_SECURITY_CSRF_WITH_TOKEN to 0 into setup).\n";
     		die;
     	}
    -	if ($_SERVER['REQUEST_METHOD'] === 'POST')  // This test must be after loading $_SESSION['token'].
    +
    +	//if ($_SERVER['REQUEST_METHOD'] === 'POST')  // This test must be after loading $_SESSION['token'].
    +	//{
    +	if (GETPOSTISSET('token') && GETPOST('token', 'alpha') != $_SESSION['token'])
     	{
    -		if (GETPOST('token', 'alpha') != $_SESSION['token'])
    -		{
    -			dol_syslog("Invalid token in ".$_SERVER['HTTP_REFERER'].", action=".GETPOST('action','aZ09').", _POST['token']=".GETPOST('token','alpha').", _SESSION['token']=".$_SESSION['token'], LOG_WARNING);
    -			//print 'Unset POST by CSRF protection in main.inc.php.';	// Do not output anything because this create problems when using the BACK button on browsers.
    -			unset($_POST);
    -		}
    +		dol_syslog("Invalid token, so we disable POST and some GET parameters - referer=".$_SERVER['HTTP_REFERER'].", action=".GETPOST('action','aZ09').", _GET|POST['token']=".GETPOST('token','alpha').", _SESSION['token']=".$_SESSION['token'], LOG_WARNING);
    +		//print 'Unset POST by CSRF protection in main.inc.php.';	// Do not output anything because this create problems when using the BACK button on browsers.
    +		unset($_POST);
    +		unset($_GET['confirm']);
     	}
    +	//}
     }
     
     // Disable modules (this must be after session_start and after conf has been loaded)
    @@ -486,7 +508,7 @@ if (! defined('NOLOGIN'))
     				$_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadValueForCode");
     				$test=false;
     
    -				// TODO @deprecated Remove this. Hook must be used, not this trigger.
    +				// Call trigger for the "security events" log
     				$user->trigger_mesg='ErrorBadValueForCode - login='.GETPOST("username","alpha",2);
     				// Call of triggers
     				include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    @@ -565,7 +587,7 @@ if (! defined('NOLOGIN'))
     				// We set a generic message if not defined inside function checkLoginPassEntity or subfunctions
     				if (empty($_SESSION["dol_loginmesg"])) $_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword");
     
    -				// TODO @deprecated Remove this. Hook must be used, not this trigger.
    +				// Call trigger for the "security events" log
     				$user->trigger_mesg=$langs->trans("ErrorBadLoginPassword").' - login='.GETPOST("username","alpha",2);
     				// Call of triggers
     				include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php';
    @@ -613,18 +635,16 @@ if (! defined('NOLOGIN'))
     
     				$_SESSION["dol_loginmesg"]=$langs->trans("ErrorCantLoadUserFromDolibarrDatabase",$login);
     
    -				// TODO @deprecated Remove this. Hook must be used, not this trigger.
     				$user->trigger_mesg='ErrorCantLoadUserFromDolibarrDatabase - login='.$login;
     			}
     			if ($resultFetchUser < 0)
     			{
     				$_SESSION["dol_loginmesg"]=$user->error;
     
    -				// TODO @deprecated Remove this. Hook must be used, not this trigger.
     				$user->trigger_mesg=$user->error;
     			}
     
    -			// Call triggers
    +			// Call triggers for the "security events" log
     			include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
     			$interface=new Interfaces($db);
     			$result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf);
    @@ -672,19 +692,16 @@ if (! defined('NOLOGIN'))
     
     				$_SESSION["dol_loginmesg"]=$langs->trans("ErrorCantLoadUserFromDolibarrDatabase",$login);
     
    -				// TODO @deprecated Remove this. Hook must be used, not this trigger.
     				$user->trigger_mesg='ErrorCantLoadUserFromDolibarrDatabase - login='.$login;
     			}
     			if ($resultFetchUser < 0)
     			{
     				$_SESSION["dol_loginmesg"]=$user->error;
     
    -				// TODO @deprecated Remove this. Hook must be used, not this trigger.
     				$user->trigger_mesg=$user->error;
     			}
     
    -			// TODO @deprecated Remove this. Hook must be used, not this trigger.
    -			// Call triggers
    +			// Call triggers for the "security events" log
     			include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
     			$interface=new Interfaces($db);
     			$result=$interface->run_triggers('USER_LOGIN_FAILED',$user,$user,$langs,$conf);
    @@ -789,7 +806,7 @@ if (! defined('NOLOGIN'))
     
     		$loginfo = 'TZ='.$_SESSION["dol_tz"].';TZString='.$_SESSION["dol_tz_string"].';Screen='.$_SESSION["dol_screenwidth"].'x'.$_SESSION["dol_screenheight"];
     
    -		// TODO @deprecated Remove this. Hook must be used, not this trigger.
    +		// Call triggers for the "security events" log
     		$user->trigger_mesg = $loginfo;
     		// Call triggers
     		include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    @@ -811,7 +828,7 @@ if (! defined('NOLOGIN'))
     		{
     			$db->rollback();
     			session_destroy();
    -			dol_print_error($db,'Error in some hooks afterLogin (or old trigger USER_LOGIN)');
    +			dol_print_error($db,'Error in some triggers USER_LOGIN or in some hooks afterLogin');
     			exit;
     		}
     		else
    @@ -904,12 +921,11 @@ if ((! empty($conf->browser->layout) && $conf->browser->layout == 'phone')
     // If we force to use jmobile, then we reenable javascript
     if (! empty($conf->dol_use_jmobile)) $conf->use_javascript_ajax=1;
     // Replace themes bugged with jmobile with eldy
    -if (! empty($conf->dol_use_jmobile) && in_array($conf->theme,array('bureau2crea','cameleo','amarok')))
    +if (! empty($conf->dol_use_jmobile) && in_array($conf->theme, array('bureau2crea','cameleo','amarok')))
     {
     	$conf->theme='eldy';
     	$conf->css  =  "/theme/".$conf->theme."/style.css.php";
     }
    -//var_dump($conf->browser->phone);
     
     if (! defined('NOREQUIRETRAN'))
     {
    @@ -997,7 +1013,7 @@ else
     	define('ROWS_9',8);
     }
     
    -$heightforframes=48;
    +$heightforframes=50;
     
     // Init menu manager
     if (! defined('NOREQUIREMENU'))
    @@ -1075,7 +1091,7 @@ if (! function_exists("llxHeader"))
     
     		if (empty($conf->dol_hide_leftmenu))
     		{
    -			left_menu('', $help_url, '', '', 1, $title, 1);
    +			left_menu('', $help_url, '', '', 1, $title, 1);		// $menumanager is retreived with a global $menumanager inside this function
     		}
     
     		// main area
    @@ -1104,7 +1120,8 @@ function top_httphead($contenttype='text/html', $forcenocache=0)
     	else header("Content-Type: ".$contenttype);
     	// Security options
     	header("X-Content-Type-Options: nosniff");  // With the nosniff option, if the server says the content is text/html, the browser will render it as text/html (note that most browsers now force this option to on)
    -	header("X-Frame-Options: SAMEORIGIN");      // Frames allowed only if on same domain (stop some XSS attacks)
    +	if (! defined('XFRAMEOPTIONS_ALLOWALL')) header("X-Frame-Options: SAMEORIGIN");      // Frames allowed only if on same domain (stop some XSS attacks)
    +	else header("X-Frame-Options: ALLOWALL");
     	//header("X-XSS-Protection: 1");      		// XSS protection of some browsers (note: use of Content-Security-Policy is more efficient). Disabled as deprecated.
     	if (! defined('FORCECSP'))
     	{
    @@ -1176,15 +1193,21 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
     	//print '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">'."\n";
     	if (empty($disablehead))
     	{
    -		$ext='layout='.$conf->browser->layout.'&version='.urlencode(DOL_VERSION);
    +	    if (! is_object($hookmanager)) $hookmanager = new HookManager($db);
    +	    $hookmanager->initHooks("main");
    +
    +	    $ext='layout='.$conf->browser->layout.'&version='.urlencode(DOL_VERSION);
     
     		print "<head>\n";
    +
     		if (GETPOST('dol_basehref','alpha')) print '<base href="'.dol_escape_htmltag(GETPOST('dol_basehref','alpha')).'">'."\n";
    +
     		// Displays meta
     		print '<meta charset="UTF-8">'."\n";
     		print '<meta name="robots" content="noindex'.($disablenofollow?'':',nofollow').'">'."\n";	// Do not index
     		print '<meta name="viewport" content="width=device-width, initial-scale=1.0">'."\n";		// Scale for mobile device
     		print '<meta name="author" content="Dolibarr Development Team">'."\n";
    +
     		// Favicon
     		$favicon=dol_buildpath('/theme/'.$conf->theme.'/img/favicon.ico',1);
     		if (! empty($conf->global->MAIN_FAVICON_URL)) $favicon=$conf->global->MAIN_FAVICON_URL;
    @@ -1193,6 +1216,9 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
     		//if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print '<link rel="copyright" title="GNU General Public License" href="http://www.gnu.org/copyleft/gpl.html#SEC1">'."\n";
     		//if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) print '<link rel="author" title="Dolibarr Development Team" href="https://www.dolibarr.org">'."\n";
     
    +		// Auto refresh page
    +		if (GETPOST('autorefresh','int') > 0) print '<meta http-equiv="refresh" content="'.GETPOST('autorefresh','int').'">';
    +
     		// Displays title
     		$appli=constant('DOL_APPLICATION_TITLE');
     		if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE;
    @@ -1203,8 +1229,6 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
     		else if ($title) $titletoshow = dol_htmlentities($appli.' - '.$title);
     		else $titletoshow = dol_htmlentities($appli);
     
    -		if (! is_object($hookmanager)) $hookmanager = new HookManager($db);
    -		$hookmanager->initHooks("main");
     		$parameters=array('title'=>$titletoshow);
     		$result=$hookmanager->executeHooks('setHtmlTitle',$parameters);		// Note that $action and $object may have been modified by some hooks
     		if ($result > 0) $titletoshow = $hookmanager->resPrint;				// Replace Title to show
    @@ -1232,8 +1256,8 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
     			print '<!-- Includes CSS for JQuery (Ajax library) -->'."\n";
     			$jquerytheme = 'base';
     			if (!empty($conf->global->MAIN_USE_JQUERY_THEME)) $jquerytheme = $conf->global->MAIN_USE_JQUERY_THEME;
    -			if (constant('JS_JQUERY_UI')) print '<link rel="stylesheet" type="text/css" href="'.JS_JQUERY_UI.'css/'.$jquerytheme.'/jquery-ui.min.css'.($ext?'?'.$ext:'').'">'."\n";  // JQuery
    -			else print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/css/'.$jquerytheme.'/jquery-ui.css'.($ext?'?'.$ext:'').'">'."\n";    // JQuery
    +			if (constant('JS_JQUERY_UI')) print '<link rel="stylesheet" type="text/css" href="'.JS_JQUERY_UI.'css/'.$jquerytheme.'/jquery-ui.min.css'.($ext?'?'.$ext:'').'">'."\n";  // Forced JQuery
    +			else print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/css/'.$jquerytheme.'/jquery-ui.css'.($ext?'?'.$ext:'').'">'."\n";              // JQuery
     			if (! defined('DISABLE_JQUERY_JNOTIFY')) print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/jnotify/jquery.jnotify-alt.min.css'.($ext?'?'.$ext:'').'">'."\n";          // JNotify
     			if (! defined('DISABLE_SELECT2') && (! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) || defined('REQUIRE_JQUERY_MULTISELECT')))     // jQuery plugin "mutiselect", "multiple-select", "select2"...
     			{
    @@ -1246,6 +1270,11 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
     		{
     			print '<!-- Includes CSS for font awesome -->'."\n";
     			print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/theme/common/fontawesome/css/font-awesome.min.css'.($ext?'?'.$ext:'').'">'."\n";
    +			if (! empty($conf->global->MAIN_USE_FONT_AWESOME_5))
    +			{
    +                print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/theme/common/fontawesome-5/css/all.min.css'.($ext?'?'.$ext:'').'">'."\n";
    +                print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/theme/common/fontawesome-5/css/v4-shims.min.css'.($ext?'?'.$ext:'').'">'."\n";
    +			}
     		}
     
     		print '<!-- Includes CSS for Dolibarr theme -->'."\n";
    @@ -1366,7 +1395,11 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
                 	$tmpplugin=empty($conf->global->MAIN_USE_JQUERY_MULTISELECT)?constant('REQUIRE_JQUERY_MULTISELECT'):$conf->global->MAIN_USE_JQUERY_MULTISELECT;
                 	print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/'.$tmpplugin.'/dist/js/'.$tmpplugin.'.full.min.js'.($ext?'?'.$ext:'').'"></script>'."\n";	// We include full because we need the support of containerCssClass
                 }
    -        }
    +            if (! defined('DISABLE_MULTISELECT'))     // jQuery plugin "mutiselect" to select with checkboxes
    +            {
    +            	print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/multiselect/jquery.multi-select.js'.($ext?'?'.$ext:'').'"></script>'."\n";
    +            }
    +		}
     
             if (! $disablejs && ! empty($conf->use_javascript_ajax))
             {
    @@ -1432,7 +1465,6 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
                         }
                         else
                         {
    -                        if (! preg_match('/^\//',$jsfile)) $jsfile='/'.$jsfile;	// For backward compatibility
                             print '<script type="text/javascript" src="'.dol_buildpath($jsfile,1).'"></script>'."\n";
                         }
                     }
    @@ -1442,6 +1474,10 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
             if (! empty($head)) print $head."\n";
             if (! empty($conf->global->MAIN_HTML_HEADER)) print $conf->global->MAIN_HTML_HEADER."\n";
     
    +        $parameters=array();
    +        $result=$hookmanager->executeHooks('addHtmlHeader',$parameters);	// Note that $action and $object may have been modified by some hooks
    +        print $hookmanager->resPrint;				// Replace Title to show
    +
             print "</head>\n\n";
         }
     
    @@ -1462,7 +1498,7 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
      *  @param		string	$morequerystring	Query string to add to the link "print" to get same parameters (use only if autodetect fails)
      *  @param      string	$helppagename    	Name of wiki page for help ('' by default).
      * 				     		                Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage
    - * 									                   For other external page: http://server/url
    + * 						                    For other external page: http://server/url
      *  @return		void
      */
     function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $helppagename='')
    @@ -1524,7 +1560,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a
     			{
     				$logouthtmltext.=$langs->trans("Logout").'<br>';
     
    -				$logouttext .='<a href="'.DOL_URL_ROOT.'/user/logout.php">';
    +				$logouttext .='<a accesskey="l" href="'.DOL_URL_ROOT.'/user/logout.php">';
     				//$logouttext .= img_picto($langs->trans('Logout').":".$langs->trans('Logout'), 'logout_top.png', 'class="login"', 0, 0, 1);
     				$logouttext .='<span class="fa fa-sign-out atoplogin"></span>';
     				$logouttext .='</a>';
    @@ -1577,7 +1613,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a
     		}
     
     		// Link to print main content area
    -		if (empty($conf->global->MAIN_PRINT_DISABLELINK) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && empty($conf->browser->phone))
    +		if (empty($conf->global->MAIN_PRINT_DISABLELINK) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $conf->browser->layout != 'phone')
     		{
     			$qs=dol_escape_htmltag($_SERVER["QUERY_STRING"]);
     
    @@ -1662,7 +1698,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a
      *  @param  array	$menu_array_before 	       	Table of menu entries to show before entries of menu handler. This param is deprectaed and must be provided to ''.
      *  @param  string	$helppagename    	       	Name of wiki page for help ('' by default).
      * 				     		                   	Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage
    - * 									         		       For other external page: http://server/url
    + * 									         	For other external page: http://server/url
      *  @param  string	$notused             		Deprecated. Used in past to add content into left menu. Hooks can be used now.
      *  @param  array	$menu_array_after           Table of menu entries to show after entries of menu handler
      *  @param  int		$leftmenuwithoutmainarea    Must be set to 1. 0 by default for backward compatibility with old modules.
    @@ -1723,7 +1759,7 @@ function left_menu($menu_array_before, $helppagename='', $notused='', $menu_arra
     		if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) || empty($conf->use_javascript_ajax))
     		{
     			$urltosearch=DOL_URL_ROOT.'/core/search_page.php?showtitlebefore=1';
    -			$searchform='<div class="blockvmenuimpair blockvmenusearchphone"><div id="divsearchforms1"><a href="'.$urltosearch.'" alt="'.dol_escape_htmltag($langs->trans("ShowSearchFields")).'">'.$langs->trans("Search").'...</a></div></div>';
    +			$searchform='<div class="blockvmenuimpair blockvmenusearchphone"><div id="divsearchforms1"><a href="'.$urltosearch.'" accesskey="s" alt="'.dol_escape_htmltag($langs->trans("ShowSearchFields")).'">'.$langs->trans("Search").'...</a></div></div>';
     		}
     		elseif ($conf->use_javascript_ajax && ! empty($conf->global->MAIN_USE_OLD_SEARCH_FORM))
     		{
    @@ -1741,7 +1777,7 @@ function left_menu($menu_array_before, $helppagename='', $notused='', $menu_arra
     		// Define $bookmarks
     		if (! empty($conf->bookmark->enabled) && $user->rights->bookmark->lire)
     		{
    -			include_once (DOL_DOCUMENT_ROOT.'/bookmarks/bookmarks.lib.php');
    +			include_once DOL_DOCUMENT_ROOT.'/bookmarks/bookmarks.lib.php';
     			$langs->load("bookmarks");
     
     			$bookmarks=printBookmarksList($db, $langs);
    @@ -1802,9 +1838,8 @@ function left_menu($menu_array_before, $helppagename='', $notused='', $menu_arra
     			$bugbaseurl.= '?title=';
     			$bugbaseurl.= urlencode("Bug: ");
     			$bugbaseurl.= '&body=';
    -			// TODO use .github/ISSUE_TEMPLATE.md to generate?
    -			$bugbaseurl .= urlencode("# Bug\n");
    -			$bugbaseurl .= urlencode("\n");
    +			$bugbaseurl.= urlencode("# Bug\n");
    +			$bugbaseurl.= urlencode("\n");
     			$bugbaseurl.= urlencode("## Environment\n");
     			$bugbaseurl.= urlencode("- **Version**: " . DOL_VERSION . "\n");
     			$bugbaseurl.= urlencode("- **OS**: " . php_uname('s') . "\n");
    @@ -1919,9 +1954,10 @@ function getHelpParamFor($helppagename,$langs)
      *  @param  string  $prefhtmlinputname  Complement for id to avoid multiple same id in the page
      *  @param	string	$img				Image to use
      *  @param	string	$showtitlebefore	Show title before input text instead of into placeholder. This can be set when output is dedicated for text browsers.
    + *  @param	string	$autofocus			Set autofocus on field
      *  @return	string
      */
    -function printSearchForm($urlaction, $urlobject, $title, $htmlmorecss, $htmlinputname, $accesskey='', $prefhtmlinputname='',$img='', $showtitlebefore=0)
    +function printSearchForm($urlaction, $urlobject, $title, $htmlmorecss, $htmlinputname, $accesskey='', $prefhtmlinputname='',$img='', $showtitlebefore=0, $autofocus=0)
     {
     	global $conf,$langs,$user;
     
    @@ -1935,6 +1971,7 @@ function printSearchForm($urlaction, $urlobject, $title, $htmlmorecss, $htmlinpu
     	$ret.=' style="text-indent: 22px; background-image: url(\''.$img.'\'); background-repeat: no-repeat; background-position: 3px;"';
     	$ret.=($accesskey?' accesskey="'.$accesskey.'"':'');
     	$ret.=' placeholder="'.strip_tags($title).'"';
    +	$ret.=($autofocus?' autofocus':'');
     	$ret.=' name="'.$htmlinputname.'" id="'.$prefhtmlinputname.$htmlinputname.'" />';
     	//$ret.='<input type="submit" class="button" style="padding-top: 4px; padding-bottom: 4px; padding-left: 6px; padding-right: 6px" value="'.$langs->trans("Go").'">';
     	$ret.='<button type="submit" class="button" style="padding-top: 4px; padding-bottom: 4px; padding-left: 6px; padding-right: 6px">';
    @@ -2089,4 +2126,3 @@ if (! function_exists("llxFooter"))
     		print "</html>\n";
     	}
     }
    -
    diff --git a/htdocs/margin/admin/margin.php b/htdocs/margin/admin/margin.php
    index d37dfe0c83b..3d8d5ec2ab9 100644
    --- a/htdocs/margin/admin/margin.php
    +++ b/htdocs/margin/admin/margin.php
    @@ -26,13 +26,10 @@ include '../../main.inc.php';
     
     require_once DOL_DOCUMENT_ROOT.'/margin/lib/margins.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
    -require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php');
    -require_once(DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php");
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
    +require_once DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php";
     
    -$langs->load("admin");
    -$langs->load("bills");
    -$langs->load("margins");
    -$langs->load("stocks");
    +$langs->loadLangs(array("admin", "bills", "margins", "stocks"));
     
     if (! $user->admin) accessforbidden();
     
    @@ -126,14 +123,12 @@ print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
     print '<td width=300>'.$langs->trans("Description").'</td>';
     print '<td colspan="2" align="center">'.$langs->trans("Value").'</td>'."\n";
    -print '<td align="left">'.$langs->trans("Description").'</td>'."\n";
    +print '<td class="left">'.$langs->trans("Description").'</td>'."\n";
     print '</tr>';
     
    -$var=true;
     $form = new Form($db);
     
     // GLOBAL DISCOUNT MANAGEMENT
    -
     print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     print "<input type=\"hidden\" name=\"action\" value=\"typemarges\">";
    @@ -165,7 +160,6 @@ print '</tr>';
     print '</form>';
     
     // DISPLAY MARGIN RATES
    -
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("DisplayMarginRates").'</td>';
     print '<td colspan="2" align="center">';
    @@ -189,7 +183,6 @@ print '<td>'.$langs->trans('MarginRate').' = '.$langs->trans('Margin').' / '.$la
     print '</tr>';
     
     // DISPLAY MARK RATES
    -
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("DisplayMarkRates").'</td>';
     print '<td colspan="2" align="center">';
    @@ -248,7 +241,7 @@ print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     print "<input type=\"hidden\" name=\"action\" value=\"remises\">";
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("MARGIN_METHODE_FOR_DISCOUNT").'</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     print Form::selectarray('MARGIN_METHODE_FOR_DISCOUNT', $methods, $conf->global->MARGIN_METHODE_FOR_DISCOUNT);
     print '</td>';
     print '<td>';
    @@ -259,13 +252,12 @@ print '</tr>';
     print '</form>';
     
     // INTERNAL CONTACT TYPE USED AS COMMERCIAL AGENT
    -
     print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     print "<input type=\"hidden\" name=\"action\" value=\"contact\">";
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("AgentContactType").'</td>';
    -print '<td align="left">';
    +print '<td class="left">';
     $formcompany = new FormCompany($db);
     $facture = new Facture($db);
     print $formcompany->selectTypeContact($facture, $conf->global->AGENT_CONTACT_TYPE, "AGENT_CONTACT_TYPE","internal","code",1);
    @@ -283,5 +275,6 @@ dol_fiche_end();
     
     print '<br>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php
    index 2e80fe5ced2..71922b77aa2 100644
    --- a/htdocs/margin/agentMargins.php
    +++ b/htdocs/margin/agentMargins.php
    @@ -110,11 +110,11 @@ print '</td></tr>';
     // Start date
     print '<td>'.$langs->trans('DateStart').' ('.$langs->trans("DateValidation").')</td>';
     print '<td>';
    -$form->select_date($startdate,'startdate','','',1,"sel",1,1);
    +print $form->selectDate($startdate, 'startdate', '', '', 1, "sel", 1, 1);
     print '</td>';
     print '<td>'.$langs->trans('DateEnd').' ('.$langs->trans("DateValidation").')</td>';
     print '<td>';
    -$form->select_date($enddate,'enddate','','',1,"sel",1,1);
    +print $form->selectDate($enddate, 'enddate', '', '', 1, "sel", 1, 1);
     print '</td>';
     print '<td style="text-align: center;">';
     print '<input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans('Refresh')).'" />';
    @@ -139,7 +139,7 @@ $sql.= ", ".MAIN_DB_PREFIX."facturedet as d";
     $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
     $sql.= ", ".MAIN_DB_PREFIX."user as u";
     $sql.= " WHERE f.fk_soc = s.rowid";
    -$sql.= ' AND f.entity IN ('.getEntity('facture').')';
    +$sql.= ' AND f.entity IN ('.getEntity('invoice').')';
     $sql.= " AND sc.fk_soc = f.fk_soc";
     $sql.= " AND (d.product_type = 0 OR d.product_type = 1)";
     if (! empty($conf->global->AGENT_CONTACT_TYPE))
    @@ -208,7 +208,6 @@ if ($result)
     
     	if ($num > 0)
     	{
    -		$var=true;
     
     		while ($i < $num /*&& $i < $conf->liste_limit*/)
     		{
    @@ -229,8 +228,6 @@ if ($result)
     				$markRate = ($pv != 0)?(100 * $marge / $pv):'' ;
     			}
     
    -
    -
     			print '<tr class="oddeven">';
     			if ($agentid > 0) {
     				$companystatic->id=$objp->socid;
    @@ -271,6 +268,6 @@ $(document).ready(function() {
     });
     </script>'."\n";
     
    +// End of page
     llxFooter();
     $db->close();
    -
    diff --git a/htdocs/margin/checkMargins.php b/htdocs/margin/checkMargins.php
    index 0612c143497..1fbadfdaa20 100644
    --- a/htdocs/margin/checkMargins.php
    +++ b/htdocs/margin/checkMargins.php
    @@ -49,7 +49,7 @@ $offset = $limit * $page;
     $pageprev = $page - 1;
     $pagenext = $page + 1;
     if (! $sortorder) $sortorder = "DESC";
    -if (! $sortfield) $sortfield = 'f.facnumber';
    +if (! $sortfield) $sortfield = 'f.ref';
     
     $startdate = $enddate = '';
     
    @@ -143,7 +143,7 @@ $title = $langs->trans("Margins");
     
     llxHeader('', $title);
     
    -// print_fiche_titre($text);
    +// print load_fiche_titre($text);
     
     $param='';
     if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    @@ -165,11 +165,11 @@ print '<table class="border" width="100%">';
     
     print '<tr><td class="titlefield">' . $langs->trans('DateStart') . ' (' . $langs->trans("DateValidation") . ')</td>';
     print '<td>';
    -$form->select_date($startdate, 'startdate', '', '', 1, "sel", 1, 1);
    +print $form->selectDate($startdate, 'startdate', '', '', 1, "sel", 1, 1);
     print '</td>';
     print '<td>' . $langs->trans('DateEnd') . ' (' . $langs->trans("DateValidation") . ')</td>';
     print '<td>';
    -$form->select_date($enddate, 'enddate', '', '', 1, "sel", 1, 1);
    +print $form->selectDate($enddate, 'enddate', '', '', 1, "sel", 1, 1);
     print '</td>';
     print '<td style="text-align: center;">';
     print '<input type="submit" class="button" value="' . dol_escape_htmltag($langs->trans('Refresh')) . '" name="button_search" />';
    @@ -185,16 +185,16 @@ $massactionbutton='';
     
     
     $sql = "SELECT";
    -$sql .= " f.facnumber, f.rowid as invoiceid, d.rowid as invoicedetid, d.buy_price_ht, d.total_ht, d.subprice, d.label, d.description , d.qty";
    +$sql .= " f.ref, f.rowid as invoiceid, d.rowid as invoicedetid, d.buy_price_ht, d.total_ht, d.subprice, d.label, d.description , d.qty";
     $sql .= " ,d.fk_product";
     $sql .= " FROM " . MAIN_DB_PREFIX . "facture as f ";
     $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facturedet as d  ON d.fk_facture = f.rowid";
     $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON d.fk_product = p.rowid";
     $sql .= " WHERE f.fk_statut > 0";
    -$sql .= " AND f.entity IN (" . getEntity('facture') . ") ";
    +$sql .= " AND f.entity IN (" . getEntity('invoice') . ") ";
     if (! empty($startdate)) $sql .= " AND f.datef >= '" . $db->idate($startdate) . "'";
     if (! empty($enddate))   $sql .= " AND f.datef <= '" . $db->idate($enddate) . "'";
    -if ($search_ref) $sql.=natural_search('f.facnumber', $search_ref);
    +if ($search_ref) $sql.=natural_search('f.ref', $search_ref);
     $sql .= " AND d.buy_price_ht IS NOT NULL";
     $sql .= $db->order($sortfield, $sortorder);
     
    @@ -249,7 +249,7 @@ if ($result) {
     	print "</tr>\n";
     
     	print '<tr class="liste_titre">';
    -	print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder);
    +	print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder);
     	print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "", "", $param, 'width=20%', $sortfield, $sortorder);
     	print_liste_field_titre("UnitPriceHT", $_SERVER["PHP_SELF"], "d.subprice", "", $param, 'align="right"', $sortfield, $sortorder);
     	print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "d.buy_price_ht", "", $param, 'align="right"', $sortfield, $sortorder);
    @@ -321,5 +321,6 @@ print '</form>';
     
     $db->free($result);
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/margin/customerMargins.php b/htdocs/margin/customerMargins.php
    index 45b604d1919..5e04ebff091 100644
    --- a/htdocs/margin/customerMargins.php
    +++ b/htdocs/margin/customerMargins.php
    @@ -159,11 +159,11 @@ print '</tr>';
     // Start date
     print '<td>'.$langs->trans('DateStart').' ('.$langs->trans("DateValidation").')</td>';
     print '<td>';
    -$form->select_date($startdate,'startdate','','',1,"sel",1,1);
    +print $form->selectDate($startdate, 'startdate', '', '', 1, "sel", 1, 1);
     print '</td>';
     print '<td>'.$langs->trans('DateEnd').' ('.$langs->trans("DateValidation").')</td>';
     print '<td>';
    -$form->select_date($enddate,'enddate','','',1,"sel",1,1);
    +print $form->selectDate($enddate, 'enddate', '', '', 1, "sel", 1, 1);
     print '</td>';
     print '<td style="text-align: center;">';
     print '<input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans('Refresh')).'" />';
    @@ -202,7 +202,7 @@ print '</form>';
     
     $sql = "SELECT";
     $sql.= " s.rowid as socid, s.nom as name, s.code_client, s.client,";
    -if ($client) $sql.= " f.rowid as facid, f.facnumber, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,";
    +if ($client) $sql.= " f.rowid as facid, f.ref, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,";
     $sql.= " sum(d.total_ht) as selling_price,";
     // Note: qty and buy_price_ht is always positive (if not, your database may be corrupted, you can update this)
     $sql.= " sum(".$db->ifsql('d.total_ht < 0','d.qty * d.buy_price_ht * -1','d.qty * d.buy_price_ht').") as buying_price,";
    @@ -235,7 +235,7 @@ $sql.= " AND f.datef <= '".$db->idate($enddate)."'";
     $sql .= " AND d.buy_price_ht IS NOT NULL";
     if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1)
     $sql .= " AND d.buy_price_ht <> 0";
    -if ($client) $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, f.rowid, f.facnumber, f.total, f.datef, f.paye, f.fk_statut";
    +if ($client) $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut";
     else $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client";
     $sql.=$db->order($sortfield,$sortorder);
     // TODO: calculate total to display then restore pagination
    @@ -260,7 +260,7 @@ if ($result)
     
     	print '<tr class="liste_titre">';
     	if (! empty($client)) {
    -  		print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.facnumber","","&amp;socid=".$socid,'',$sortfield,$sortorder);
    +  		print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&amp;socid=".$socid,'',$sortfield,$sortorder);
       		print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&amp;socid=".$socid,'align="center"',$sortfield,$sortorder);
     	}
     	else
    @@ -304,7 +304,7 @@ if ($result)
     			if ($client) {
     		        print '<td>';
     				$invoicestatic->id=$objp->facid;
    -				$invoicestatic->ref=$objp->facnumber;
    +				$invoicestatic->ref=$objp->ref;
     				print $invoicestatic->getNomUrl(1);
     				print "</td>\n";
     				print "<td align=\"center\">";
    @@ -383,5 +383,6 @@ $(document).ready(function() {
     </script>
     ';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/margin/productMargins.php b/htdocs/margin/productMargins.php
    index d827f5d985e..ae79cc7957f 100644
    --- a/htdocs/margin/productMargins.php
    +++ b/htdocs/margin/productMargins.php
    @@ -117,7 +117,6 @@ else {
     	print '<td class="maxwidthonsmartphone" colspan="4">';
     	print $form->select_produits('','id','',20,0,1,2,'',1, array(), 0, 'All');
     	print '</td></tr>';
    -
     }
     
     // Categories
    @@ -134,11 +133,11 @@ print '</tr>';
     print '<tr>';
     print '<td class="titlefield">'.$langs->trans('DateStart').' ('.$langs->trans("DateValidation").')</td>';
     print '<td>';
    -$form->select_date($startdate,'startdate','','',1,"sel",1,1);
    +print $form->selectDate($startdate, 'startdate', '', '', 1, "sel", 1, 1);
     print '</td>';
     print '<td>'.$langs->trans('DateEnd').' ('.$langs->trans("DateValidation").')</td>';
     print '<td>';
    -$form->select_date($enddate,'enddate','','',1,"sel",1,1);
    +print $form->selectDate($enddate, 'enddate', '', '', 1, "sel", 1, 1);
     print '</td>';
     print '<td style="text-align: center;">';
     print '<input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans('Refresh')).'" />';
    @@ -177,7 +176,7 @@ print '</form>';
     
     $sql = "SELECT p.label, p.rowid, p.fk_product_type, p.ref, p.entity as pentity,";
     if ($id > 0) $sql.= " d.fk_product,";
    -if ($id > 0) $sql.= " f.rowid as facid, f.facnumber, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,";
    +if ($id > 0) $sql.= " f.rowid as facid, f.ref, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,";
     $sql.= " SUM(d.total_ht) as selling_price,";
     // Note: qty and buy_price_ht is always positive (if not your database may be corrupted, you can update this)
     $sql.= " SUM(".$db->ifsql('d.total_ht < 0','d.qty * d.buy_price_ht * -1','d.qty * d.buy_price_ht').") as buying_price,";
    @@ -190,7 +189,7 @@ if (! empty($TSelectedCats)) {
     	$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=p.rowid';
     }
     $sql.= " WHERE f.fk_soc = s.rowid";
    -$sql.= ' AND f.entity IN ('.getEntity('facture').')';
    +$sql.= ' AND f.entity IN ('.getEntity('invoice').')';
     $sql.= " AND f.fk_statut > 0";
     $sql.= " AND d.fk_facture = f.rowid";
     if ($id > 0)
    @@ -205,7 +204,7 @@ if (!empty($enddate))
     $sql .= " AND d.buy_price_ht IS NOT NULL";
     if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1)
     	$sql .= " AND d.buy_price_ht <> 0";
    -if ($id > 0) $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity, d.fk_product, f.rowid, f.facnumber, f.total, f.datef, f.paye, f.fk_statut";
    +if ($id > 0) $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity, d.fk_product, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut";
     else $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity";
     $sql.=$db->order($sortfield,$sortorder);
     // TODO: calculate total to display then restore pagination
    @@ -234,7 +233,7 @@ if ($result)
     
     	print '<tr class="liste_titre">';
     	if ($id > 0) {
    -  		print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.facnumber","","&amp;id=".$id,'',$sortfield,$sortorder);
    +  		print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&amp;id=".$id,'',$sortfield,$sortorder);
       		print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&amp;id=".$id,'align="center"',$sortfield,$sortorder);
       	}
       	else
    @@ -278,7 +277,7 @@ if ($result)
     			if ($id > 0) {
     				print '<td>';
     				$invoicestatic->id=$objp->facid;
    -				$invoicestatic->ref=$objp->facnumber;
    +				$invoicestatic->ref=$objp->ref;
     				print $invoicestatic->getNomUrl(1);
     				print "</td>\n";
     				print "<td align=\"center\">";
    @@ -316,7 +315,6 @@ if ($result)
     			$cumul_achat += $objp->buying_price;
     			$cumul_vente += $objp->selling_price;
     		}
    -
     	}
     
     	// affichage totaux marges
    @@ -367,5 +365,6 @@ $(document).ready(function() {
     </script>
     ';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/margin/tabs/productMargins.php b/htdocs/margin/tabs/productMargins.php
    index e6c51e2217d..cbdc253da1c 100644
    --- a/htdocs/margin/tabs/productMargins.php
    +++ b/htdocs/margin/tabs/productMargins.php
    @@ -26,10 +26,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
     require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     
    -$langs->load("companies");
    -$langs->load("bills");
    -$langs->load("products");
    -$langs->load("margins");
    +$langs->loadLangs(array("companies", "bills", "products", "margins"));
     
     $id = GETPOST('id', 'int');
     $ref = GETPOST('ref', 'alpha');
    @@ -134,7 +131,7 @@ if ($id > 0 || ! empty($ref))
     
             if ($user->rights->facture->lire) {
                 $sql = "SELECT s.nom as name, s.rowid as socid, s.code_client,";
    -            $sql.= " f.rowid as facid, f.facnumber, f.total as total_ht,";
    +            $sql.= " f.rowid as facid, f.ref, f.total as total_ht,";
                 $sql.= " f.datef, f.paye, f.fk_statut as statut, f.type,";
                 if (!$user->rights->societe->client->voir && !$socid) $sql.= " sc.fk_soc, sc.fk_user,";
                 $sql.= " sum(d.total_ht) as selling_price,";							// may be negative or positive
    @@ -147,14 +144,14 @@ if ($id > 0 || ! empty($ref))
                 if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
                 $sql.= " WHERE f.fk_soc = s.rowid";
                 $sql.= " AND f.fk_statut > 0";
    -            $sql.= " AND s.entity = ".$conf->entity;
    +            $sql.= " AND f.entity IN (".getEntity('invoice').")";
                 $sql.= " AND d.fk_facture = f.rowid";
                 $sql.= " AND d.fk_product =".$object->id;
                 if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
                 if (! empty($socid)) $sql.= " AND f.fk_soc = $socid";
                 $sql .= " AND d.buy_price_ht IS NOT NULL";
                 if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0";
    -            $sql.= " GROUP BY s.nom, s.rowid, s.code_client, f.rowid, f.facnumber, f.total, f.datef, f.paye, f.fk_statut, f.type";
    +            $sql.= " GROUP BY s.nom, s.rowid, s.code_client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut, f.type";
                 if (!$user->rights->societe->client->voir && !$socid) $sql.= ", sc.fk_soc, sc.fk_user";
                 $sql.= $db->order($sortfield,$sortorder);
                 // TODO: calculate total to display then restore pagination
    @@ -172,7 +169,7 @@ if ($id > 0 || ! empty($ref))
                     print '<table class="noborder" width="100%">';
     
                     print '<tr class="liste_titre">';
    -                print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.facnumber","","&amp;id=".$object->id,'',$sortfield,$sortorder);
    +                print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&amp;id=".$object->id,'',$sortfield,$sortorder);
                     print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","&amp;id=".$object->id,'',$sortfield,$sortorder);
                     print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","","&amp;id=".$object->id,'',$sortfield,$sortorder);
                     print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&amp;id=".$object->id,'align="center"',$sortfield,$sortorder);
    @@ -202,7 +199,7 @@ if ($id > 0 || ! empty($ref))
                             print '<tr class="oddeven">';
                             print '<td>';
                             $invoicestatic->id=$objp->facid;
    -                        $invoicestatic->ref=$objp->facnumber;
    +                        $invoicestatic->ref=$objp->ref;
                             print $invoicestatic->getNomUrl(1);
                             print "</td>\n";
                             print '<td><a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$objp->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.dol_trunc($objp->name,44).'</a></td>';
    @@ -273,5 +270,6 @@ print '
         </script>
     ';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/margin/tabs/thirdpartyMargins.php b/htdocs/margin/tabs/thirdpartyMargins.php
    index 2faaf737fd9..ec18a498b0a 100644
    --- a/htdocs/margin/tabs/thirdpartyMargins.php
    +++ b/htdocs/margin/tabs/thirdpartyMargins.php
    @@ -26,10 +26,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
     require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     
    -$langs->load("companies");
    -$langs->load("bills");
    -$langs->load("products");
    -$langs->load("margins");
    +$langs->loadLangs(array("companies", "bills", "products", "margins"));
     
     // Security check
     $socid = GETPOST('socid','int');
    @@ -147,7 +144,7 @@ if ($socid > 0)
         print '<br>';
     
         $sql = "SELECT distinct s.nom, s.rowid as socid, s.code_client,";
    -    $sql.= " f.rowid as facid, f.facnumber, f.total as total_ht,";
    +    $sql.= " f.rowid as facid, f.ref, f.total as total_ht,";
         $sql.= " f.datef, f.paye, f.fk_statut as statut, f.type,";
         $sql.= " sum(d.total_ht) as selling_price,";						// may be negative or positive
         $sql.= " sum(d.qty * d.buy_price_ht) as buying_price,";				// always positive
    @@ -157,12 +154,12 @@ if ($socid > 0)
         $sql.= ", ".MAIN_DB_PREFIX."facturedet as d";
         $sql.= " WHERE f.fk_soc = s.rowid";
         $sql.= " AND f.fk_statut > 0";
    -    $sql.= " AND f.entity = ".$conf->entity;
    +    $sql.= " AND f.entity IN (".getEntity('invoice').")";
         $sql.= " AND d.fk_facture = f.rowid";
         $sql.= " AND f.fk_soc = $socid";
         $sql.= " AND d.buy_price_ht IS NOT NULL";
         if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0";
    -    $sql.= " GROUP BY s.nom, s.rowid, s.code_client, f.rowid, f.facnumber, f.total, f.datef, f.paye, f.fk_statut, f.type";
    +    $sql.= " GROUP BY s.nom, s.rowid, s.code_client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut, f.type";
         $sql.= $db->order($sortfield,$sortorder);
         // TODO: calculate total to display then restore pagination
         //$sql.= $db->plimit($conf->liste_limit +1, $offset);
    @@ -180,7 +177,7 @@ if ($socid > 0)
         	print "<table class=\"noborder\" width=\"100%\">";
     
         	print '<tr class="liste_titre">';
    -    	print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.facnumber","","&amp;socid=".$_REQUEST["socid"],'',$sortfield,$sortorder);
    +    	print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&amp;socid=".$_REQUEST["socid"],'',$sortfield,$sortorder);
         	print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&amp;socid=".$_REQUEST["socid"],'align="center"',$sortfield,$sortorder);
         	print_liste_field_titre("SoldAmount",$_SERVER["PHP_SELF"],"selling_price","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
         	print_liste_field_titre("PurchasedAmount",$_SERVER["PHP_SELF"],"buying_price","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
    @@ -214,7 +211,7 @@ if ($socid > 0)
         			print '<tr class="oddeven">';
         			print '<td>';
         			$invoicestatic->id=$objp->facid;
    -    			$invoicestatic->ref=$objp->facnumber;
    +    			$invoicestatic->ref=$objp->ref;
         			print $invoicestatic->getNomUrl(1);
         			print "</td>\n";
         			print "<td align=\"center\">";
    @@ -287,5 +284,6 @@ print '
         </script>
     ';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/master.inc.php b/htdocs/master.inc.php
    index 52c4c9780c7..10ff15fbabf 100644
    --- a/htdocs/master.inc.php
    +++ b/htdocs/master.inc.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Sebastien Di Cintio		<sdicintio@ressource-toi.org>
      * Copyright (C) 2004		Benoit Mortier			<benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2005		Simon Tosser			<simon@kornog-computing.com>
      * Copyright (C) 2006		Andre Cianfarani		<andre.cianfarani@acdeveloppement.net>
      * Copyright (C) 2010		Juanjo Menent			<jmenent@2byte.es>
    @@ -80,7 +80,7 @@ if (! empty($dolibarr_main_document_root_alt))
     	{
     		if (preg_match('/^http(s)?:/',$value))
     		{
    -			// TODO: Make this a warning rather than an error since the correct value can be derived in most cases
    +			// Show error message
     			$correct_value = str_replace($dolibarr_main_url_root, '', $value);
     			print '<b>Error:</b><br>'."\n";
     			print 'Wrong <b>$dolibarr_main_url_root_alt</b> value in <b>conf.php</b> file.<br>'."\n";
    diff --git a/htdocs/modulebuilder/admin/setup.php b/htdocs/modulebuilder/admin/setup.php
    new file mode 100644
    index 00000000000..6ca9bfe2a1e
    --- /dev/null
    +++ b/htdocs/modulebuilder/admin/setup.php
    @@ -0,0 +1,165 @@
    +<?php
    +/* Copyright (C) 2018 Nicolas ZABOURI   <info@inovea-conseil.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *  \file       htdocs/modulebuilder/admin/setup.php
    + *  \ingroup    modulebuilder
    + *  \brief      Page setup for modulebuilder module
    + */
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php';
    +
    +global $conf,$langs,$user, $db;
    +$langs->loadLangs(array("admin", "other", "modulebuilder"));
    +
    +if (!$user->admin || empty($conf->modulebuilder->enabled))
    +    accessforbidden();
    +
    +$action = GETPOST('action', 'alpha');
    +$backtopage = GETPOST('backtopage', 'alpha');
    +
    +/*
    + * Actions
    + */
    +if($action=="update"){
    +   $res1=dolibarr_set_const($db, 'MODULEBUILDER_SPECIFIC_README', GETPOST('MODULEBUILDER_SPECIFIC_README'), 'chaine', 0, '', $conf->entity);
    +   if ($res1 < 0)
    +    {
    +        setEventMessages('ErrorFailedToSaveDate', null, 'errors');
    +        $db->rollback();
    +    }
    +    else
    +    {
    +        setEventMessages('RecordModifiedSuccessfully', null, 'mesgs');
    +        $db->commit();
    +    }
    +}
    +
    +if (preg_match('/set_(.*)/', $action, $reg)) {
    +    $code = $reg[1];
    +    $values = GETPOST($code);
    +    if (is_array($values))
    +        $values = implode(',', $values);
    +
    +    if (dolibarr_set_const($db, $code, $values, 'chaine', 0, '', $conf->entity) > 0) {
    +        header("Location: " . $_SERVER["PHP_SELF"]);
    +        exit;
    +    } else {
    +        dol_print_error($db);
    +    }
    +}
    +
    +if (preg_match('/del_(.*)/', $action, $reg)) {
    +    $code = $reg[1];
    +    if (dolibarr_del_const($db, $code, 0) > 0) {
    +        Header("Location: " . $_SERVER["PHP_SELF"]);
    +        exit;
    +    } else {
    +        dol_print_error($db);
    +    }
    +}
    +
    +
    +/*
    + * 	View
    + */
    +
    +$form = new Form($db);
    +
    +llxHeader('', $langs->trans("ModulebuilderSetup"));
    +
    +$linkback = '';
    +if (GETPOST('withtab', 'alpha')) {
    +    $linkback = '<a href="' . ($backtopage ? $backtopage : DOL_URL_ROOT . '/admin/modules.php') . '">' . $langs->trans("BackToModuleList") . '</a>';
    +}
    +
    +print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
    +print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +print '<input type="hidden" name="action" value="update">';
    +
    +print load_fiche_titre($langs->trans("ModuleSetup") . ' ' . $langs->trans('Modulebuilder'), $linkback);
    +
    +if (GETPOST('withtab', 'alpha')) {
    +    dol_fiche_head($head, 'modulebuilder', '', -1);
    +}
    +
    +print '<span class="opacitymedium">' . $langs->trans("ModuleBuilderDesc") . "</span><br>\n";
    +
    +print '<br>';
    +
    +print '<table class="noborder" width="100%">';
    +
    +print '<tr class="liste_titre">';
    +print '<td>' . $langs->trans("Key") . '</td>';
    +print '<td>' . $langs->trans("Value") . '</td>';
    +print "</tr>\n";
    +
    +
    +if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
    +{
    +	// What is use cas of this 2 options ?
    +
    +	print '<tr class="oddeven">';
    +	print '<td>' . $langs->trans("UseAboutPage") . '</td>';
    +	print '<td align="center">';
    +	if ($conf->use_javascript_ajax) {
    +	    print ajax_constantonoff('MODULEBUILDER_USE_ABOUT');
    +	} else {
    +	    if (empty($conf->global->MODULEBUILDER_USE_ABOUT)) {
    +	        print '<a href="' . $_SERVER['PHP_SELF'] . '?action=set_MODULEBUILDER_USE_ABOUT">' . img_picto($langs->trans("Disabled"), 'off') . '</a>';
    +	    } else {
    +	        print '<a href="' . $_SERVER['PHP_SELF'] . '?action=del_MODULEBUILDER_USE_ABOUT">' . img_picto($langs->trans("Enabled"), 'on') . '</a>';
    +	    }
    +	}
    +	print '</td></tr>';
    +
    +	print '<tr class="oddeven">';
    +	print '<td>' . $langs->trans("UseDocFolder") . '</td>';
    +	print '<td align="center">';
    +	if ($conf->use_javascript_ajax) {
    +	    print ajax_constantonoff('MODULEBUILDER_USE_DOCFOLDER');
    +	} else {
    +	    if (empty($conf->global->MODULEBUILDER_USE_DOCFOLDER)) {
    +	        print '<a href="' . $_SERVER['PHP_SELF'] . '?action=set_MODULEBUILDER_USE_DOCFOLDER">' . img_picto($langs->trans("Disabled"), 'off') . '</a>';
    +	    } else {
    +	        print '<a href="' . $_SERVER['PHP_SELF'] . '?action=del_MODULEBUILDER_USE_DOCFOLDER">' . img_picto($langs->trans("Enabled"), 'on') . '</a>';
    +	    }
    +	}
    +	print '</td></tr>';
    +}
    +
    +print '<tr class="oddeven">';
    +print '<td class="tdtop">' . $langs->trans("UseSpecificReadme") . '</td>';
    +print '<td>';
    +print '<textarea class="centpercent" rows="20" name="MODULEBUILDER_SPECIFIC_README">'.$conf->global->MODULEBUILDER_SPECIFIC_README.'</textarea>';
    +print '</td>';
    +print '</tr>';
    +print '</table>';
    +
    +print '<center><input type="submit" class="button" value="'.$langs->trans("Save").'" name="Button"></center>';
    +
    +if (GETPOST('withtab', 'alpha')) {
    +    dol_fiche_end();
    +}
    +
    +print '<br>';
    +
    +print '</form>';
    +
    +// End of page
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php
    index f6646813843..171f4259a36 100644
    --- a/htdocs/modulebuilder/index.php
    +++ b/htdocs/modulebuilder/index.php
    @@ -35,7 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/utils.class.php';
     
     // Load translation files required by the page
    -$langs->loadLangs(array("admin", "modulebuilder", "other", "cron"));
    +$langs->loadLangs(array("admin", "modulebuilder", "other", "cron", "errors"));
     
     $action=GETPOST('action','aZ09');
     $confirm=GETPOST('confirm','alpha');
    @@ -71,6 +71,11 @@ if (! empty($tmpdir[1]))
     	$dirread=$tmpdir[1];
     	$forceddirread=1;
     }
    +if (GETPOST('dirins','alpha'))
    +{
    +	$dirread = $dirins = GETPOST('dirins','alpha');
    +	$forceddirread=1;
    +}
     
     $FILEFLAG='modulebuilder.txt';
     
    @@ -121,6 +126,15 @@ if ($dirins && $action == 'initmodule' && $modulename)
     			}
     		}
     
    +		if (!empty($conf->global->MODULEBUILDER_USE_ABOUT))
    +		{
    +			dol_delete_file($destdir.'/admin/about.php');
    +		}
    +		if (!empty($conf->global->MODULEBUILDER_USE_DOCFOLDER))
    +		{
    +			dol_delete_dir($destdir.'/doc/');
    +		}
    +
     		// Delete some files related to object (because to previous dolCopyDir has copied everything)
     		dol_delete_file($destdir.'/myobject_card.php');
     		dol_delete_file($destdir.'/myobject_note.php');
    @@ -165,6 +179,12 @@ if ($dirins && $action == 'initmodule' && $modulename)
     				setEventMessages($langs->trans("ErrorFailToMakeReplacementInto", $phpfileval['fullname']), null, 'errors');
     			}
     		}
    +
    +		if (!empty($conf->global->MODULEBUILDER_SPECIFIC_README))
    +		{
    +			dol_delete_file($destdir.'/README.md');
    +			file_put_contents($destdir.'/README.md', $conf->global->MODULEBUILDER_SPECIFIC_README);
    +		}
     	}
     
     	if (! $error)
    @@ -896,17 +916,31 @@ $dirsincustom=dol_dir_list($dirread, 'directories');
     if (is_array($dirsincustom) && count($dirsincustom) > 0) {
     	foreach ($dirsincustom as $dircustomcursor) {
     		$fullname = $dircustomcursor['fullname'];
    -		if (dol_is_file($fullname . '/' . $FILEFLAG)) {
    +		if (dol_is_file($fullname . '/' . $FILEFLAG))
    +		{
     			// Get real name of module (MyModule instead of mymodule)
    -			$descriptorfiles = dol_dir_list($fullname . '/core/modules/', 'files', 0, 'mod.*\.class\.php$');
    +			$dirtoscanrel = basename($fullname).'/core/modules/';
    +
    +			$descriptorfiles = dol_dir_list(dirname($fullname).'/'.$dirtoscanrel, 'files', 0, 'mod.*\.class\.php$');
    +			if (empty($descriptorfiles))	// If descriptor not found into module dir, we look into main module dir.
    +			{
    +				$dirtoscanrel = 'core/modules/';
    +				$descriptorfiles = dol_dir_list($fullname.'/../'.$dirtoscanrel, 'files', 0, 'mod'.strtoupper(basename($fullname)).'\.class\.php$');
    +			}
     			$modulenamewithcase = '';
    +			$moduledescriptorrelpath = '';
    +			$moduledescriptorfullpath = '';
    +
     			foreach ($descriptorfiles as $descriptorcursor) {
     				$modulenamewithcase = preg_replace('/^mod/', '', $descriptorcursor['name']);
     				$modulenamewithcase = preg_replace('/\.class\.php$/', '', $modulenamewithcase);
    +				$moduledescriptorrelpath = $dirtoscanrel.$descriptorcursor['name'];
    +				$moduledescriptorfullpath = $descriptorcursor['fullname'];
    +				//var_dump($descriptorcursor);
     			}
     			if ($modulenamewithcase)
     			{
    -				$listofmodules[$dircustomcursor['name']] = $modulenamewithcase;
    +				$listofmodules[$dircustomcursor['name']] = array('modulenamewithcase'=>$modulenamewithcase, 'moduledescriptorrelpath'=> $moduledescriptorrelpath, 'moduledescriptorfullpath'=>$moduledescriptorfullpath);
     			}
     			//var_dump($listofmodules);
     		}
    @@ -914,7 +948,7 @@ if (is_array($dirsincustom) && count($dirsincustom) > 0) {
     }
     if ($forceddirread && empty($listofmodules))
     {
    -	$listofmodules[strtolower($module)] = $module;
    +	$listofmodules[strtolower($module)] = array('modulenamewithcase'=>$module, 'moduledescriptorrelpath'=> 'notyetimplemented', 'moduledescriptorfullpath'=> 'notyetimplemented');
     }
     
     // Show description of content
    @@ -968,7 +1002,8 @@ if (! empty($module) && $module != 'initmodule' && $module != 'deletemodule')
     	$modulelowercase=strtolower($module);
     
     	// Load module
    -	dol_include_once($modulelowercase.'/core/modules/mod'.$module.'.class.php');
    +	$fullpathdirtodescriptor = $listofmodules[strtolower($module)]['moduledescriptorrelpath'];
    +	dol_include_once($fullpathdirtodescriptor);
     	$class='mod'.$module;
     
     	if (class_exists($class))
    @@ -1002,11 +1037,11 @@ $head[$h][1] = $langs->trans("NewModule");
     $head[$h][2] = 'initmodule';
     $h++;
     
    -foreach($listofmodules as $tmpmodule => $tmpmodulewithcase)
    +foreach($listofmodules as $tmpmodule => $tmpmodulearray)
     {
    -	$head[$h][0] = $_SERVER["PHP_SELF"].'?module='.$tmpmodulewithcase.($forceddirread?'@'.$dirread:'');
    -	$head[$h][1] = $tmpmodulewithcase;
    -	$head[$h][2] = $tmpmodulewithcase;
    +	$head[$h][0] = $_SERVER["PHP_SELF"].'?module='.$tmpmodulearray['modulenamewithcase'].($forceddirread?'@'.$dirread:'');
    +	$head[$h][1] = $tmpmodulearray['modulenamewithcase'];
    +	$head[$h][2] = $tmpmodulearray['modulenamewithcase'];
     	$h++;
     }
     
    @@ -1139,13 +1174,20 @@ elseif (! empty($module))
     		$head2[$h][2] = 'buildpackage';
     		$h++;
     
    +		// Link to enable / disable
     		print $modulestatusinfo;
     		print ' '.$linktoenabledisable;
    -		print '<br><br>';
    +		print '<br>';
    +
    +		if (realpath($dirread.'/'.$modulelowercase) != $dirread.'/'.$modulelowercase)
    +		{
    +			print $langs->trans("RealPathOfModule").' : <strong>'.realpath($dirread.'/'.$modulelowercase).'</strong><br>';
    +		}
    +		print '<br>';
     
     		if ($tab == 'description')
     		{
    -			$pathtofile = $modulelowercase.'/core/modules/mod'.$module.'.class.php';
    +			$pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath'];
     			$pathtofilereadme = $modulelowercase.'/README.md';
     			$pathtochangelog = $modulelowercase.'/ChangeLog.md';
     
    @@ -1170,7 +1212,7 @@ elseif (! empty($module))
     				print '<br>';
     				print '<br>';
     
    -				print_fiche_titre($langs->trans("DescriptorFile"));
    +				print load_fiche_titre($langs->trans("DescriptorFile"));
     
     				if (! empty($moduleobj))
     				{
    @@ -1234,22 +1276,23 @@ elseif (! empty($module))
     					print '<br><br>';
     
     					// Readme file
    -					print_fiche_titre($langs->trans("ReadmeFile"));
    +					print load_fiche_titre($langs->trans("ReadmeFile"));
     
     					print '<div class="underbanner clearboth"></div>';
     					print '<div class="fichecenter">';
    -
    -					print $moduleobj->getDescLong();
    +					if (dol_is_file($dirread.'/'.$pathtofilereadme)) print $moduleobj->getDescLong();
    +					else print $langs->trans("ErrorFileNotFound", $pathtofilereadme);
     
     					print '<br><br>';
     
     					// ChangeLog
    -					print_fiche_titre($langs->trans("ChangeLog"));
    +					print load_fiche_titre($langs->trans("ChangeLog"));
     
     					print '<div class="underbanner clearboth"></div>';
     					print '<div class="fichecenter">';
     
    -					print $moduleobj->getChangeLog();
    +					if (dol_is_file($dirread.'/'.$pathtochangelog)) print $moduleobj->getChangeLog();
    +					else print $langs->trans("ErrorFileNotFound", $pathtochangelog);
     
     					print '</div>';
     				}
    @@ -1520,6 +1563,8 @@ elseif (! empty($module))
     				if ($action != 'editfile' || empty($file))
     				{
     					try {
    +						//$pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath'];
    +
     						$pathtoclass    = strtolower($module).'/class/'.strtolower($tabobj).'.class.php';
     						$pathtoapi      = strtolower($module).'/class/api_'.strtolower($module).'.class.php';
     						$pathtoagenda   = strtolower($module).'/'.strtolower($tabobj).'_agenda.php';
    @@ -1531,24 +1576,28 @@ elseif (! empty($module))
     						$pathtosql      = strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($tabobj).'.sql';
     						$pathtosqlextra = strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($tabobj).'_extrafields.sql';
     						$pathtosqlkey   = strtolower($module).'/sql/llx_'.strtolower($module).'_'.strtolower($tabobj).'.key.sql';
    -						$pathtolib      = strtolower($module).'/lib/'.strtolower($tabobj).'.lib.php';
    +						$pathtolib      = strtolower($module).'/lib/'.strtolower($module).'.lib.php';
    +						$pathtoobjlib   = strtolower($module).'/lib/'.strtolower($module).'_'.strtolower($tabobj).'.lib.php';
     						$pathtopicto    = strtolower($module).'/img/object_'.strtolower($tabobj).'.png';
     						$pathtoscript   = strtolower($module).'/scripts/'.strtolower($tabobj).'.php';
     
    -						$realpathtoclass    = dol_buildpath($pathtoclass, 0, 1);
    -						$realpathtoapi      = dol_buildpath($pathtoapi, 0, 1);
    -						$realpathtoagenda   = dol_buildpath($pathtoagenda, 0, 1);
    -						$realpathtocard     = dol_buildpath($pathtocard, 0, 1);
    -						$realpathtodocument = dol_buildpath($pathtodocument, 0, 1);
    -						$realpathtolist     = dol_buildpath($pathtolist, 0, 1);
    -						$realpathtonote     = dol_buildpath($pathtonote, 0, 1);
    -						$realpathtophpunit  = dol_buildpath($pathtophpunit, 0, 1);
    -						$realpathtosql      = dol_buildpath($pathtosql, 0, 1);
    -						$realpathtosqlextra = dol_buildpath($pathtosqlextra, 0, 1);
    -						$realpathtosqlkey   = dol_buildpath($pathtosqlkey, 0, 1);
    -						$realpathtolib      = dol_buildpath($pathtolib, 0, 1);
    -						$realpathtopicto    = dol_buildpath($pathtopicto, 0, 1);
    -						$realpathtoscript   = dol_buildpath($pathtoscript, 0, 1);
    +						//var_dump($pathtolib);
    +
    +						$realpathtoclass    = dol_buildpath($pathtoclass, 0, 2);
    +						$realpathtoapi      = dol_buildpath($pathtoapi, 0, 2);
    +						$realpathtoagenda   = dol_buildpath($pathtoagenda, 0, 2);
    +						$realpathtocard     = dol_buildpath($pathtocard, 0, 2);
    +						$realpathtodocument = dol_buildpath($pathtodocument, 0, 2);
    +						$realpathtolist     = dol_buildpath($pathtolist, 0, 2);
    +						$realpathtonote     = dol_buildpath($pathtonote, 0, 2);
    +						$realpathtophpunit  = dol_buildpath($pathtophpunit, 0, 2);
    +						$realpathtosql      = dol_buildpath($pathtosql, 0, 2);
    +						$realpathtosqlextra = dol_buildpath($pathtosqlextra, 0, 2);
    +						$realpathtosqlkey   = dol_buildpath($pathtosqlkey, 0, 2);
    +						$realpathtolib      = dol_buildpath($pathtolib, 0, 2);
    +						$realpathtoobjlib   = dol_buildpath($pathtoobjlib, 0, 2);
    +						$realpathtopicto    = dol_buildpath($pathtopicto, 0, 2);
    +						$realpathtoscript   = dol_buildpath($pathtoscript, 0, 2);
     
     						print '<div class="fichehalfleft">';
     						print '<span class="fa fa-file-o"></span> '.$langs->trans("ClassFile").' : <strong>'.($realpathtoclass?'':'<strike>').$pathtoclass.($realpathtoclass?'':'</strike>').'</strong>';
    @@ -1567,6 +1616,9 @@ elseif (! empty($module))
     						print '<span class="fa fa-file-o"></span> '.$langs->trans("PageForLib").' : <strong>'.($realpathtolib?'':'<strike>').$pathtolib.($realpathtolib?'':'</strike>').'</strong>';
     						print ' <a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&tabobj='.$tabobj.'&module='.$module.($forceddirread?'@'.$dirread:'').'&action=editfile&format=php&file='.urlencode($pathtolib).'">'.img_picto($langs->trans("Edit"), 'edit').'</a>';
     						print '<br>';
    +						print '<span class="fa fa-file-o"></span> '.$langs->trans("PageForObjLib").' : <strong>'.($realpathtoobjlib?'':'<strike>').$pathtoobjlib.($realpathtoobjlib?'':'</strike>').'</strong>';
    +						print ' <a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&tabobj='.$tabobj.'&module='.$module.($forceddirread?'@'.$dirread:'').'&action=editfile&format=php&file='.urlencode($pathtoobjlib).'">'.img_picto($langs->trans("Edit"), 'edit').'</a>';
    +						print '<br>';
     						print '<span class="fa fa-file-image-o"></span> '.$langs->trans("Image").' : <strong>'.($realpathtopicto?'':'<strike>').$pathtopicto.($realpathtopicto?'':'</strike>').'</strong>';
     						//print ' <a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&tabobj='.$tabobj.'&module='.$module.($forceddirread?'@'.$dirread:'').'&action=editfile&format=php&file='.urlencode($pathtopicto).'">'.img_picto($langs->trans("Edit"), 'edit').'</a>';
     						print '<br>';
    @@ -1629,7 +1681,7 @@ elseif (! empty($module))
     						}
     						else
     						{
    -							$result = @include_once($dirread.'/'.$pathtoclass);
    +							$result = @include_once $dirread.'/'.$pathtoclass;
     						}
     						if (class_exists($tabobj))
     						{
    @@ -1669,24 +1721,24 @@ elseif (! empty($module))
     							print '<div class="div-table-responsive">';
     							print '<table class="noborder">';
     							print '<tr class="liste_titre">';
    -							print '<td>'.$langs->trans("Property");
    -							print ' (<a href="https://wiki.dolibarr.org/index.php/Language_and_development_rules#Table_and_fields_structures" target="_blank">'.$langs->trans("Example").'</a>)';
    -							print '</td>';
    -							print '<td>';
    +							print '<th class="liste_titre">'.$langs->trans("Property");
    +							print ' (<a class="" href="https://wiki.dolibarr.org/index.php/Language_and_development_rules#Table_and_fields_structures" target="_blank">'.$langs->trans("SeeExamples").'</a>)';
    +							print '</th>';
    +							print '<th>';
     							print $form->textwithpicto($langs->trans("Label"), $langs->trans("YouCanUseTranslationKey"));
    -							print '</td>';
    -							print '<td>'.$langs->trans("Type").'</td>';
    -							print '<td>'.$form->textwithpicto($langs->trans("ArrayOfKeyValues"), $langs->trans("ArrayOfKeyValuesDesc")).'</td>';
    -							print '<td class="center">'.$form->textwithpicto($langs->trans("NotNull"), $langs->trans("NotNullDesc")).'</td>';
    -							print '<td class="center">'.$langs->trans("DefaultValue").'</td>';
    -							print '<td class="center">'.$langs->trans("DatabaseIndex").'</td>';
    -							print '<td class="right">'.$langs->trans("Position").'</td>';
    -							print '<td class="center">'.$form->textwithpicto($langs->trans("Enabled"), $langs->trans("EnabledDesc")).'</td>';
    -							print '<td class="center">'.$form->textwithpicto($langs->trans("Visible"), $langs->trans("VisibleDesc")).'</td>';
    -							print '<td class="center">'.$form->textwithpicto($langs->trans("IsAMeasure"), $langs->trans("IsAMeasureDesc")).'</td>';
    -							print '<td class="center">'.$form->textwithpicto($langs->trans("SearchAll"), $langs->trans("SearchAllDesc")).'</td>';
    -							print '<td>'.$langs->trans("Comment").'</td>';
    -							print '<td></td>';
    +							print '</th>';
    +							print '<th>'.$langs->trans("Type").'</td>';
    +							print '<th>'.$form->textwithpicto($langs->trans("ArrayOfKeyValues"), $langs->trans("ArrayOfKeyValuesDesc")).'</th>';
    +							print '<th class="center">'.$form->textwithpicto($langs->trans("NotNull"), $langs->trans("NotNullDesc")).'</th>';
    +							print '<th class="center">'.$langs->trans("DefaultValue").'</th>';
    +							print '<th class="center">'.$langs->trans("DatabaseIndex").'</th>';
    +							print '<th class="right">'.$langs->trans("Position").'</th>';
    +							print '<th class="center">'.$form->textwithpicto($langs->trans("Enabled"), $langs->trans("EnabledDesc")).'</th>';
    +							print '<th class="center">'.$form->textwithpicto($langs->trans("Visible"), $langs->trans("VisibleDesc")).'</th>';
    +							print '<th class="center">'.$form->textwithpicto($langs->trans("IsAMeasure"), $langs->trans("IsAMeasureDesc")).'</th>';
    +							print '<th class="center">'.$form->textwithpicto($langs->trans("SearchAll"), $langs->trans("SearchAllDesc")).'</th>';
    +							print '<th>'.$langs->trans("Comment").'</th>';
    +							print '<th></th>';
     							print '</tr>';
     
     							// We must use $reflectorpropdefault['fields'] to get list of fields because $tmpobjet->fields may have been
    @@ -1855,7 +1907,7 @@ elseif (! empty($module))
     
     		if ($tab == 'menus')
     		{
    -			$pathtofile = $modulelowercase.'/core/modules/mod'.$module.'.class.php';
    +			$pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath'];
     
     			//$menus = $moduleobj->;
     
    @@ -1980,7 +2032,7 @@ elseif (! empty($module))
     
     		if ($tab == 'permissions')
     		{
    -			$pathtofile = $modulelowercase.'/core/modules/mod'.$module.'.class.php';
    +			$pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath'];
     
     			//$perms = $moduleobj->;
     
    @@ -2110,7 +2162,7 @@ elseif (! empty($module))
     				print $langs->trans("HooksDefDesc").'<br>';
     				print '<br>';
     
    -				$pathtofile = $modulelowercase.'/core/modules/mod'.$module.'.class.php';
    +				$pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath'];
     				print '<span class="fa fa-file-o"></span> '.$langs->trans("DescriptorFile").' : <strong>'.$pathtofile.'</strong>';
     				print ' <a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.'&action=editfile&format=php&file='.urlencode($pathtofile).'">'.img_picto($langs->trans("Edit"), 'edit').'</a>';
     				print '<br>';
    @@ -2255,7 +2307,7 @@ elseif (! empty($module))
     
     		if ($tab == 'cron')
     		{
    -			$pathtofile = $modulelowercase.'/core/modules/mod'.$module.'.class.php';
    +			$pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath'];
     
     			$cronjobs = $moduleobj->cronjobs;
     
    @@ -2389,7 +2441,8 @@ elseif (! empty($module))
     			$FILENAMEZIP='';
     
     			// Load module
    -			dol_include_once($modulelowercase.'/core/modules/mod'.$module.'.class.php');
    +			$pathtofile = $listofmodules[strtolower($module)]['moduledescriptorrelpath'];
    +			dol_include_once($pathtofile);
     			$class='mod'.$module;
     
     			if (class_exists($class))
    @@ -2476,8 +2529,6 @@ elseif (! empty($module))
     
     dol_fiche_end(); // End modules
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/modulebuilder/template/admin/about.php b/htdocs/modulebuilder/template/admin/about.php
    index b72917daff0..e580c6c7457 100644
    --- a/htdocs/modulebuilder/template/admin/about.php
    +++ b/htdocs/modulebuilder/template/admin/about.php
    @@ -25,15 +25,15 @@
     // Load Dolibarr environment
     $res=0;
     // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
    -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
    +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
     // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
     $tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
     while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
    -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php";
    +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php";
     // Try main.inc.php using relative path
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    -if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
    +if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php";
    +if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php";
     if (! $res) die("Include of main fails");
     
     // Libraries
    diff --git a/htdocs/modulebuilder/template/admin/setup.php b/htdocs/modulebuilder/template/admin/setup.php
    index fd2c509233b..6e0be4d0011 100644
    --- a/htdocs/modulebuilder/template/admin/setup.php
    +++ b/htdocs/modulebuilder/template/admin/setup.php
    @@ -25,15 +25,15 @@
     // Load Dolibarr environment
     $res=0;
     // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
    -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
    +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
     // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
     $tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
     while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
    -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php";
    +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php";
     // Try main.inc.php using relative path
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    -if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
    +if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php";
    +if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php";
     if (! $res) die("Include of main fails");
     
     global $langs, $user;
    @@ -85,7 +85,7 @@ $head = mymoduleAdminPrepareHead();
     dol_fiche_head($head, 'settings', '', -1, "mymodule@mymodule");
     
     // Setup page goes here
    -echo $langs->trans("MyModuleSetupPage");
    +echo $langs->trans("MyModuleSetupPage").'<br><br>';
     
     
     if ($action == 'edit')
    @@ -99,13 +99,10 @@ if ($action == 'edit')
     
     	foreach($arrayofparameters as $key => $val)
     	{
    -		if (isset($val['enabled']) && empty($val['enabled'])) continue;
    -
     		print '<tr class="oddeven"><td>';
     		print $form->textwithpicto($langs->trans($key),$langs->trans($key.'Tooltip'));
     		print '</td><td><input name="'.$key.'"  class="flat '.(empty($val['css'])?'minwidth200':$val['css']).'" value="' . $conf->global->$key . '"></td></tr>';
     	}
    -
     	print '</table>';
     
     	print '<br><div class="center">';
    @@ -117,21 +114,28 @@ if ($action == 'edit')
     }
     else
     {
    -	print '<table class="noborder" width="100%">';
    -	print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
    -
    -	foreach($arrayofparameters as $key => $val)
    +	if (! empty($arrayofparameters))
     	{
    -		print '<tr class="oddeven"><td>';
    -		print $form->textwithpicto($langs->trans($key),$langs->trans($key.'Tooltip'));
    -		print '</td><td>' . $conf->global->$key . '</td></tr>';
    +		print '<table class="noborder" width="100%">';
    +		print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("Parameter").'</td><td>'.$langs->trans("Value").'</td></tr>';
    +
    +		foreach($arrayofparameters as $key => $val)
    +		{
    +			print '<tr class="oddeven"><td>';
    +			print $form->textwithpicto($langs->trans($key),$langs->trans($key.'Tooltip'));
    +			print '</td><td>' . $conf->global->$key . '</td></tr>';
    +		}
    +
    +		print '</table>';
    +
    +		print '<div class="tabsAction">';
    +		print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a>';
    +		print '</div>';
    +	}
    +	else
    +	{
    +		print '<br>'.$langs->trans("NothingToSetup");
     	}
    -
    -	print '</table>';
    -
    -	print '<div class="tabsAction">';
    -	print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a>';
    -	print '</div>';
     }
     
     
    @@ -140,3 +144,4 @@ dol_fiche_end();
     
     llxFooter();
     $db->close();
    +
    diff --git a/htdocs/modulebuilder/template/class/actions_mymodule.class.php b/htdocs/modulebuilder/template/class/actions_mymodule.class.php
    index 789e4e469f9..64076e07359 100644
    --- a/htdocs/modulebuilder/template/class/actions_mymodule.class.php
    +++ b/htdocs/modulebuilder/template/class/actions_mymodule.class.php
    @@ -32,10 +32,12 @@ class ActionsMyModule
          * @var DoliDB Database handler.
          */
         public $db;
    +
         /**
    -     * @var string Error
    +     * @var string Error code (or message)
          */
         public $error = '';
    +
         /**
          * @var array Errors
          */
    @@ -135,7 +137,6 @@ class ActionsMyModule
     	        foreach($parameters['toselect'] as $objectid)
     	        {
     	            // Do action on each object id
    -
     	        }
     	    }
     
    @@ -240,5 +241,4 @@ class ActionsMyModule
     	}
     
     	/* Add here any other hooked methods... */
    -
     }
    diff --git a/htdocs/modulebuilder/template/class/api_mymodule.class.php b/htdocs/modulebuilder/template/class/api_mymodule.class.php
    index 5b77c477429..ab559a26612 100644
    --- a/htdocs/modulebuilder/template/class/api_mymodule.class.php
    +++ b/htdocs/modulebuilder/template/class/api_mymodule.class.php
    @@ -41,7 +41,7 @@ class MyModuleApi extends DolibarrApi
          * @var array   $FIELDS     Mandatory fields, checked when create and update object
          */
         static $FIELDS = array(
    -        'name'
    +        'name',
         );
     
     
    @@ -109,7 +109,8 @@ class MyModuleApi extends DolibarrApi
          *
          * @url	GET /myobjects/
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -119,6 +120,7 @@ class MyModuleApi extends DolibarrApi
             $restictonsocid = 0;	// Set to 1 if there is a field socid in table of object
     
             // If the internal user must only see his customers, force searching by him
    +        $search_sale = 0;
             if ($restictonsocid && ! DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) $search_sale = DolibarrApiAccess::$user->id;
     
             $sql = "SELECT t.rowid";
    @@ -128,7 +130,7 @@ class MyModuleApi extends DolibarrApi
             if ($restictonsocid && (!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale
             $sql.= " WHERE 1 = 1";
     
    -		// Example of use $mode
    +        // Example of use $mode
             //if ($mode == 1) $sql.= " AND s.client IN (1, 3)";
             //if ($mode == 2) $sql.= " AND s.client IN (2, 3)";
     
    @@ -197,8 +199,8 @@ class MyModuleApi extends DolibarrApi
         function post($request_data = null)
         {
             if(! DolibarrApiAccess::$user->rights->myobject->create) {
    -			throw new RestException(401);
    -		}
    +            throw new RestException(401);
    +        }
             // Check mandatory fields
             $result = $this->_validate($request_data);
     
    @@ -223,8 +225,8 @@ class MyModuleApi extends DolibarrApi
         function put($id, $request_data = null)
         {
             if(! DolibarrApiAccess::$user->rights->myobject->create) {
    -			throw new RestException(401);
    -		}
    +            throw new RestException(401);
    +        }
     
             $result = $this->myobject->fetch($id);
             if( ! $result ) {
    @@ -263,9 +265,9 @@ class MyModuleApi extends DolibarrApi
                 throw new RestException(404, 'MyObject not found');
             }
     
    -		if( ! DolibarrApi::_checkAccessToResource('myobject',$this->myobject->id)) {
    -			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -		}
    +        if( ! DolibarrApi::_checkAccessToResource('myobject',$this->myobject->id)) {
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
     
     		if( !$this->myobject->delete(DolibarrApiAccess::$user, 0))
             {
    @@ -278,7 +280,6 @@ class MyModuleApi extends DolibarrApi
                     'message' => 'MyObject deleted'
                 )
             );
    -
         }
     
     
    diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php
    index 12f31439985..6f3b76a4f1b 100644
    --- a/htdocs/modulebuilder/template/class/myobject.class.php
    +++ b/htdocs/modulebuilder/template/class/myobject.class.php
    @@ -36,18 +36,22 @@ class MyObject extends CommonObject
     	 * @var string ID to identify managed object
     	 */
     	public $element = 'myobject';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'mymodule_myobject';
    +
     	/**
     	 * @var int  Does myobject support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     	 */
     	public $ismultientitymanaged = 0;
    +
     	/**
     	 * @var int  Does myobject support extrafields ? 0=No, 1=Yes
     	 */
     	public $isextrafieldmanaged = 1;
    +
     	/**
     	 * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
     	 */
    @@ -84,29 +88,72 @@ class MyObject extends CommonObject
     	    'label'         =>array('type'=>'varchar(255)', 'label'=>'Label',            'enabled'=>1, 'visible'=>1,  'position'=>30,  'searchall'=>1, 'css'=>'minwidth200', 'help'=>'Help text', 'showoncombobox'=>1),
     	    'amount'        =>array('type'=>'double(24,8)', 'label'=>'Amount',           'enabled'=>1, 'visible'=>1,  'default'=>'null', 'position'=>40,  'searchall'=>0, 'isameasure'=>1, 'help'=>'Help text'),
     		'fk_soc' 		=>array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'visible'=>1, 'enabled'=>1, 'position'=>50, 'notnull'=>-1, 'index'=>1, 'help'=>'LinkToThirparty'),
    -		'description'   =>array('type'=>'text',			'label'=>'Descrption',		 'enabled'=>1, 'visible'=>0,  'position'=>60),
    +		'description'   =>array('type'=>'text',			'label'=>'Description',		 'enabled'=>1, 'visible'=>0,  'position'=>60),
     		'note_public'   =>array('type'=>'html',			'label'=>'NotePublic',		 'enabled'=>1, 'visible'=>0,  'position'=>61),
     		'note_private'  =>array('type'=>'html',			'label'=>'NotePrivate',		 'enabled'=>1, 'visible'=>0,  'position'=>62),
     		'date_creation' =>array('type'=>'datetime',     'label'=>'DateCreation',     'enabled'=>1, 'visible'=>-2, 'notnull'=>1,  'position'=>500),
     	    'tms'           =>array('type'=>'timestamp',    'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1,  'position'=>501),
    -		//'date_valid'    =>array('type'=>'datetime',     'label'=>'DateCreation',     'enabled'=>1, 'visible'=>-2, 'position'=>502),
    +		//'date_validation'    =>array('type'=>'datetime',     'label'=>'DateCreation',     'enabled'=>1, 'visible'=>-2, 'position'=>502),
     		'fk_user_creat' =>array('type'=>'integer',      'label'=>'UserAuthor',       'enabled'=>1, 'visible'=>-2, 'notnull'=>1,  'position'=>510, 'foreignkey'=>'llx_user.rowid'),
     		'fk_user_modif' =>array('type'=>'integer',      'label'=>'UserModif',        'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>511),
     		//'fk_user_valid' =>array('type'=>'integer',      'label'=>'UserValidation',        'enabled'=>1, 'visible'=>-1, 'position'=>512),
     		'import_key'    =>array('type'=>'varchar(14)',  'label'=>'ImportId',         'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'index'=>0,  'position'=>1000),
    -	    'status'        =>array('type'=>'integer',      'label'=>'Status',           'enabled'=>1, 'visible'=>1,  'notnull'=>1, 'default'=>0, 'index'=>1,  'position'=>1000, 'arrayofkeyval'=>array(0=>'Draft', 1=>'Active', -1=>'Cancel')),
    +	    'status'        =>array('type'=>'integer',      'label'=>'Status',           'enabled'=>1, 'visible'=>1,  'notnull'=>1, 'default'=>0, 'index'=>1,  'position'=>1000, 'arrayofkeyval'=>array(0=>'Draft', 1=>'Active', -1=>'Canceled')),
     	);
     
    +	/**
    +	 * @var int ID
    +	 */
     	public $rowid;
    +
    +	/**
    +	 * @var string Ref
    +	 */
     	public $ref;
    +
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
    -	public $label;
    +
    +	/**
    +     * @var string label
    +     */
    +    public $label;
    +
    +    /**
    +     * @var string amount
    +     */
     	public $amount;
    +
    +	/**
    +	 * @var int Status
    +	 */
     	public $status;
    +
    +	/**
    +     * @var string date_creation
    +     */
     	public $date_creation;
    +
    +	/**
    +     * @var string tms
    +     */
     	public $tms;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_modif;
    +
    +	/**
    +     * @var string import_key
    +     */
     	public $import_key;
     	// END MODULEBUILDER PROPERTIES
     
    @@ -118,18 +165,22 @@ class MyObject extends CommonObject
     	 * @var int    Name of subtable line
     	 */
     	//public $table_element_line = 'myobjectdet';
    +
     	/**
     	 * @var int    Field with ID of parent key if this field has a parent
     	 */
     	//public $fk_element = 'fk_myobject';
    +
     	/**
     	 * @var int    Name of subtable class that manage subtable lines
     	 */
     	//public $class_element_line = 'MyObjectline';
    +
     	/**
     	 * @var array  Array of child tables (child tables to delete before deleting a record)
     	 */
     	//protected $childtables=array('myobjectdet');
    +
     	/**
     	 * @var MyObjectLine[]     Array of subtable lines
     	 */
    @@ -144,7 +195,7 @@ class MyObject extends CommonObject
     	 */
     	public function __construct(DoliDB $db)
     	{
    -		global $conf, $user;
    +		global $conf, $langs, $user;
     
     		$this->db = $db;
     
    @@ -159,6 +210,18 @@ class MyObject extends CommonObject
     				unset($this->fields[$key]);
     			}
     		}
    +
    +		// Translate some data of arrayofkeyval
    +		foreach($this->fields as $key => $val)
    +		{
    +			if (is_array($this->fields['status']['arrayofkeyval']))
    +			{
    +				foreach($this->fields['status']['arrayofkeyval'] as $key2 => $val2)
    +				{
    +					$this->fields['status']['arrayofkeyval'][$key2]=$langs->trans($val2);
    +				}
    +			}
    +		}
     	}
     
     	/**
    @@ -174,7 +237,7 @@ class MyObject extends CommonObject
     	}
     
     	/**
    -	 * Clone and object into another one
    +	 * Clone an object into another one
     	 *
     	 * @param  	User 	$user      	User that creates
     	 * @param  	int 	$fromid     Id of object to clone
    @@ -182,7 +245,7 @@ class MyObject extends CommonObject
     	 */
     	public function createFromClone(User $user, $fromid)
     	{
    -		global $hookmanager, $langs;
    +		global $langs, $hookmanager, $extrafields;
     	    $error = 0;
     
     	    dol_syslog(__METHOD__, LOG_DEBUG);
    @@ -202,6 +265,20 @@ class MyObject extends CommonObject
     	    $object->ref = "copy_of_".$object->ref;
     	    $object->title = $langs->trans("CopyOf")." ".$object->title;
     	    // ...
    +	    // Clear extrafields that are unique
    +	    if (is_array($object->array_options) && count($object->array_options) > 0)
    +	    {
    +	    	$extrafields->fetch_name_optionals_label($this->element);
    +	    	foreach($object->array_options as $key => $option)
    +	    	{
    +	    		$shortkey = preg_replace('/options_/', '', $key);
    +	    		if (! empty($extrafields->attributes[$this->element]['unique'][$shortkey]))
    +	    		{
    +	    			//var_dump($key); var_dump($clonedObj->array_options[$key]); exit;
    +	    			unset($object->array_options[$key]);
    +	    		}
    +	    	}
    +	    }
     
     	    // Create clone
     		$object->context['createfromclone'] = 'createfromclone';
    @@ -212,6 +289,8 @@ class MyObject extends CommonObject
     	        $this->errors = $object->errors;
     	    }
     
    +	    unset($object->context['createfromclone']);
    +
     	    // End
     	    if (!$error) {
     	        $this->db->commit();
    @@ -250,6 +329,84 @@ class MyObject extends CommonObject
     		return count($this->lines)?1:0;
     	}*/
     
    +	/**
    +	 * Load list of objects in memory from the database.
    +	 *
    +	 * @param  string      $sortorder    Sort Order
    +	 * @param  string      $sortfield    Sort field
    +	 * @param  int         $limit        limit
    +	 * @param  int         $offset       Offset
    +	 * @param  array       $filter       Filter array. Example array('field'=>'valueforlike', 'customurl'=>...)
    +	 * @param  string      $filtermode   Filter mode (AND or OR)
    +	 * @return array|int                 int <0 if KO, array of pages if OK
    +	 */
    +	public function fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, array $filter=array(), $filtermode='AND')
    +	{
    +		global $conf;
    +
    +		dol_syslog(__METHOD__, LOG_DEBUG);
    +
    +		$records=array();
    +
    +		$sql = 'SELECT';
    +		$sql .= ' t.rowid';
    +		// TODO Get all fields
    +		$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element. ' as t';
    +		$sql .= ' WHERE t.entity = '.$conf->entity;
    +		// Manage filter
    +		$sqlwhere = array();
    +		if (count($filter) > 0) {
    +			foreach ($filter as $key => $value) {
    +				if ($key=='t.rowid') {
    +					$sqlwhere[] = $key . '='. $value;
    +				}
    +				elseif (strpos($key,'date') !== false) {
    +					$sqlwhere[] = $key.' = \''.$this->db->idate($value).'\'';
    +				}
    +				elseif ($key=='customsql') {
    +					$sqlwhere[] = $value;
    +				}
    +				else {
    +					$sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\'';
    +				}
    +			}
    +		}
    +		if (count($sqlwhere) > 0) {
    +			$sql .= ' AND (' . implode(' '.$filtermode.' ', $sqlwhere).')';
    +		}
    +
    +		if (!empty($sortfield)) {
    +			$sql .= $this->db->order($sortfield, $sortorder);
    +		}
    +		if (!empty($limit)) {
    +			$sql .=  ' ' . $this->db->plimit($limit, $offset);
    +		}
    +
    +		$resql = $this->db->query($sql);
    +		if ($resql) {
    +			$num = $this->db->num_rows($resql);
    +
    +			while ($obj = $this->db->fetch_object($resql))
    +			{
    +				$record = new self($this->db);
    +
    +				$record->id = $obj->rowid;
    +				// TODO Get other fields
    +
    +				//var_dump($record->id);
    +				$records[$record->id] = $record;
    +			}
    +			$this->db->free($resql);
    +
    +			return $records;
    +		} else {
    +			$this->errors[] = 'Error ' . $this->db->lasterror();
    +			dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
    +
    +			return -1;
    +		}
    +	}
    +
     	/**
     	 * Update object into database
     	 *
    @@ -272,6 +429,7 @@ class MyObject extends CommonObject
     	public function delete(User $user, $notrigger = false)
     	{
     		return $this->deleteCommon($user, $notrigger);
    +		//return $this->deleteCommon($user, $notrigger, 1);
     	}
     
     	/**
    @@ -293,7 +451,6 @@ class MyObject extends CommonObject
             if (! empty($conf->dol_no_mouse_hover)) $notooltip=1;   // Force disable tooltips
     
             $result = '';
    -        $companylink = '';
     
             $label = '<u>' . $langs->trans("MyObject") . '</u>';
             $label.= '<br>';
    @@ -339,7 +496,7 @@ class MyObject extends CommonObject
     		$result .= $linkend;
     		//if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
     
    -		global $action;
    +		global $action,$hookmanager;
     		$hookmanager->initHooks(array('myobjectdao'));
     		$parameters=array('id'=>$this->id, 'getnomurl'=>$result);
     		$reshook=$hookmanager->executeHooks('getNomUrl',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    @@ -355,11 +512,12 @@ class MyObject extends CommonObject
     	 *  @param  int		$mode          0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
     	 *  @return	string 			       Label of status
     	 */
    -	function getLibStatut($mode=0)
    +	public function getLibStatut($mode=0)
     	{
     		return $this->LibStatut($this->status, $mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
     	/**
     	 *  Return the status
     	 *
    @@ -367,8 +525,9 @@ class MyObject extends CommonObject
     	 *  @param  int		$mode          0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
     	 *  @return string 			       Label of status
     	 */
    -	function LibStatut($status, $mode=0)
    +	public function LibStatut($status, $mode=0)
     	{
    +		// phpcs:enable
     		if (empty($this->labelstatus))
     		{
     			global $langs;
    @@ -381,44 +540,44 @@ class MyObject extends CommonObject
     		{
     			return $this->labelstatus[$status];
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			return $this->labelstatus[$status];
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
    -			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4').' '.$this->labelstatus[$status];
    -			if ($status == 0) return img_picto($this->labelstatus[$status],'statut5').' '.$this->labelstatus[$status];
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
    -			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4');
    -			if ($status == 0) return img_picto($this->labelstatus[$status],'statut5');
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
    -			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4').' '.$this->labelstatus[$status];
    -			if ($status == 0) return img_picto($this->labelstatus[$status],'statut5').' '.$this->labelstatus[$status];
    +			if ($status == 1) return img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
    +			elseif ($status == 0) return img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle').' '.$this->labelstatus[$status];
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
    -			if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4');
    -			if ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5');
    +			if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
    -			if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4');
    -			if ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5');
    +			if ($status == 1) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut4', '', false, 0, 0, '', 'valignmiddle');
    +			elseif ($status == 0) return $this->labelstatus[$status].' '.img_picto($this->labelstatus[$status],'statut5', '', false, 0, 0, '', 'valignmiddle');
     		}
     	}
     
     	/**
    -	 *	Charge les informations d'ordre info dans l'objet commande
    +	 *	Load the info information in the object
     	 *
    -	 *	@param  int		$id       Id of order
    +	 *	@param  int		$id       Id of object
     	 *	@return	void
     	 */
    -	function info($id)
    +	public function info($id)
     	{
     		$sql = 'SELECT rowid, date_creation as datec, tms as datem,';
     		$sql.= ' fk_user_creat, fk_user_modif';
    @@ -458,7 +617,6 @@ class MyObject extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -480,7 +638,7 @@ class MyObject extends CommonObject
     
     	/**
     	 * Action executed by scheduler
    -	 * CAN BE A CRON TASK. In such a case, paramerts come from the schedule job setup field 'Parameters'
    +	 * CAN BE A CRON TASK. In such a case, parameters come from the schedule job setup field 'Parameters'
     	 *
     	 * @return	int			0 if OK, <>0 if KO (this function is used also by cron so only 0 is OK)
     	 */
    @@ -522,4 +680,4 @@ class MyObjectLine
     	// @var mixed Sample line property 2
     	public $prop2;
     }
    -*/
    \ No newline at end of file
    +*/
    diff --git a/htdocs/modulebuilder/template/core/boxes/mymodulewidget1.php b/htdocs/modulebuilder/template/core/boxes/mymodulewidget1.php
    index 85592006a14..edd2f627bb5 100644
    --- a/htdocs/modulebuilder/template/core/boxes/mymodulewidget1.php
    +++ b/htdocs/modulebuilder/template/core/boxes/mymodulewidget1.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2004-2017  Laurent Destailleur <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      * Copyright (C) ---Put here your own copyright and developer email---
      *
      * This program is free software: you can redistribute it and/or modify
    @@ -196,11 +197,12 @@ class mymodulewidget1 extends ModeleBoxes
     	/**
     	 * Method to show box. Called by Dolibarr eatch time it wants to display the box.
     	 *
    -	 * @param array $head Array with properties of box title
    -	 * @param array $contents Array with properties of box lines
    +	 * @param array $head       Array with properties of box title
    +	 * @param array $contents   Array with properties of box lines
    +     * @param int   $nooutput   No print, only return string
     	 * @return void
     	 */
    -	public function showBox($head = null, $contents = null)
    +	public function showBox($head = null, $contents = null, $nooutput = 0)
     	{
     		// You may make your own code here…
     		// … or use the parent's class function using the provided head and contents templates
    diff --git a/htdocs/modulebuilder/template/core/modules/mailings/mailinglist_mymodule_myobject.modules.php b/htdocs/modulebuilder/template/core/modules/mailings/mailinglist_mymodule_myobject.modules.php
    index cd8612cb7d1..460df7e96bf 100644
    --- a/htdocs/modulebuilder/template/core/modules/mailings/mailinglist_mymodule_myobject.modules.php
    +++ b/htdocs/modulebuilder/template/core/modules/mailings/mailinglist_mymodule_myobject.modules.php
    @@ -27,7 +27,11 @@ class mailing_mailinglist_mymodule_myobject extends MailingTargets
     	var $enabled=0;
     	var $require_module=array();
     	var $picto='mymodule@mymodule';
    -	var $db;
    +
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     
     	/**
    @@ -88,17 +92,17 @@ class mailing_mailinglist_mymodule_myobject extends MailingTargets
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  This is the main function that returns the array of emails
     	 *
     	 *  @param	int		$mailing_id    	Id of emailing
    -	 *  @param	array	$filtersarray   Requete sql de selection des destinataires
     	 *  @return int           			<0 if error, number of emails added if ok
     	 */
    -	function add_to_target($mailing_id,$filtersarray=array())
    +	function add_to_target($mailing_id)
     	{
    +        // phpcs:enable
     		$target = array();
    -		$cibles = array();
     		$j = 0;
     
     
    @@ -108,7 +112,7 @@ class mailing_mailinglist_mymodule_myobject extends MailingTargets
     		if (! empty($_POST['filter']) && $_POST['filter'] != 'none') $sql.= " AND status = '".$this->db->escape($_POST['filter'])."'";
     		$sql.= " ORDER BY email";
     
    -		// Stocke destinataires dans cibles
    +		// Stocke destinataires dans target
     		$result=$this->db->query($sql);
     		if ($result)
     		{
    @@ -123,7 +127,7 @@ class mailing_mailinglist_mymodule_myobject extends MailingTargets
     				$obj = $this->db->fetch_object($result);
     				if ($old <> $obj->email)
     				{
    -					$cibles[$j] = array(
    +					$target[$j] = array(
     						'email' => $obj->email,
     						'name' => $obj->lastname,
     						'id' => $obj->id,
    @@ -156,7 +160,7 @@ class mailing_mailinglist_mymodule_myobject extends MailingTargets
     
     		// ----- Your code end here -----
     
    -		return parent::add_to_target($mailing_id, $cibles);
    +		return parent::add_to_target($mailing_id, $target);
     	}
     
     
    @@ -195,6 +199,4 @@ class mailing_mailinglist_mymodule_myobject extends MailingTargets
     		if ($a < 0) return -1;
     		return $a;
     	}
    -
     }
    -
    diff --git a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php
    index aac3f6b2c5f..5781b93e94d 100644
    --- a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php
    +++ b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php
    @@ -1,5 +1,6 @@
     <?php
     /* Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2018	   Nicolas ZABOURI 	<info@inovea-conseil.com>
      * Copyright (C) ---Put here your own copyright and developer email---
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -27,15 +28,11 @@
     include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
     
     
    -// The class name should start with a lower case mod for Dolibarr to pick it up
    -// so we ignore the Squiz.Classes.ValidClassName.NotCamelCaps rule.
    -// @codingStandardsIgnoreStart
     /**
      *  Description and activation class for module MyModule
      */
     class modMyModule extends DolibarrModules
     {
    -	// @codingStandardsIgnoreEnd
     	/**
     	 * Constructor. Define names, constants, directories, boxes, permissions
     	 *
    @@ -58,21 +55,24 @@ class modMyModule extends DolibarrModules
     		$this->family = "other";
     		// Module position in the family on 2 digits ('01', '10', '20', ...)
     		$this->module_position = '90';
    -		// Gives the possibility to the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this)
    +		// Gives the possibility for the module, to provide his own family info and position of this family (Overwrite $this->family and $this->module_position. Avoid this)
     		//$this->familyinfo = array('myownfamily' => array('position' => '01', 'label' => $langs->trans("MyOwnFamily")));
     
    -		// Module label (no space allowed), used if translation string 'ModuleMyModuleName' not found (MyModue is name of module).
    +		// Module label (no space allowed), used if translation string 'ModuleMyModuleName' not found (MyModule is name of module).
     		$this->name = preg_replace('/^mod/i','',get_class($this));
    -		// Module description, used if translation string 'ModuleMyModuleDesc' not found (MyModue is name of module).
    +		// Module description, used if translation string 'ModuleMyModuleDesc' not found (MyModule is name of module).
     		$this->description = "MyModuleDescription";
     		// Used only if file README.md and README-LL.md not found.
    -		$this->descriptionlong = "MyModuleDescription (Long)";
    +		$this->descriptionlong = "MyModule description (Long)";
     
     		$this->editor_name = 'Editor name';
     		$this->editor_url = 'https://www.example.com';
     
     		// Possible values for version are: 'development', 'experimental', 'dolibarr', 'dolibarr_deprecated' or a version string like 'x.y.z'
     		$this->version = '1.0';
    +
    +        //Url to the file with your last numberversion of this module
    +        //$this->url_last_version = 'http://www.example.com/versionmodule.txt';
     		// Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
     		$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
     		// Name of image file used for this module.
    @@ -80,24 +80,21 @@ class modMyModule extends DolibarrModules
     		// If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module'
     		$this->picto='generic';
     
    -		// Defined all module parts (triggers, login, substitutions, menus, css, etc...)
    -		// for default path (eg: /mymodule/core/xxxxx) (0=disable, 1=enable)
    -		// for specific path of parts (eg: /mymodule/core/modules/barcode)
    -		// for specific css file (eg: /mymodule/css/mymodule.css.php)
    +		// Define some features supported by module (triggers, login, substitutions, menus, css, etc...)
     		$this->module_parts = array(
    -		                        	'triggers' => 1,                                 	// Set this to 1 if module has its own trigger directory (core/triggers)
    -									'login' => 0,                                    	// Set this to 1 if module has its own login method file (core/login)
    -									'substitutions' => 1,                            	// Set this to 1 if module has its own substitution function file (core/substitutions)
    -									'menus' => 0,                                    	// Set this to 1 if module has its own menus handler directory (core/menus)
    -									'theme' => 0,                                    	// Set this to 1 if module has its own theme directory (theme)
    -		                        	'tpl' => 0,                                      	// Set this to 1 if module overwrite template dir (core/tpl)
    -									'barcode' => 0,                                  	// Set this to 1 if module has its own barcode directory (core/modules/barcode)
    -									'models' => 0,                                   	// Set this to 1 if module has its own models directory (core/modules/xxx)
    -									'css' => array('/mymodule/css/mymodule.css.php'),	// Set this to relative path of css file if module has its own css file
    -	 								'js' => array('/mymodule/js/mymodule.js.php'),          // Set this to relative path of js file if module must load a js on all pages
    -									'hooks' => array('data'=>array('hookcontext1','hookcontext2'), 'entity'=>'0'), 	// Set here all hooks context managed by module. To find available hook context, make a "grep -r '>initHooks(' *" on source code. You can also set hook context 'all'
    -									'moduleforexternal' => 0							// Set this to 1 if feature of module are opened to external users
    -		                        );
    +		    'triggers' => 1,                                 	// Set this to 1 if module has its own trigger directory (core/triggers)
    +			'login' => 0,                                    	// Set this to 1 if module has its own login method file (core/login)
    +			'substitutions' => 1,                            	// Set this to 1 if module has its own substitution function file (core/substitutions)
    +			'menus' => 0,                                    	// Set this to 1 if module has its own menus handler directory (core/menus)
    +			'theme' => 0,                                    	// Set this to 1 if module has its own theme directory (theme)
    +		    'tpl' => 0,                                      	// Set this to 1 if module overwrite template dir (core/tpl)
    +			'barcode' => 0,                                  	// Set this to 1 if module has its own barcode directory (core/modules/barcode)
    +			'models' => 0,                                   	// Set this to 1 if module has its own models directory (core/modules/xxx)
    +			'css' => array('/mymodule/css/mymodule.css.php'),	// Set this to relative path of css file if module has its own css file
    +	 		'js' => array('/mymodule/js/mymodule.js.php'),          // Set this to relative path of js file if module must load a js on all pages
    +			'hooks' => array('data'=>array('hookcontext1','hookcontext2'), 'entity'=>'0'), 	// Set here all hooks context managed by module. To find available hook context, make a "grep -r '>initHooks(' *" on source code. You can also set hook context 'all'
    +			'moduleforexternal' => 0							// Set this to 1 if feature of module are opened to external users
    +		);
     
     		// Data directories to create when module is enabled.
     		// Example: this->dirs = array("/mymodule/temp","/mymodule/subdir");
    @@ -108,14 +105,14 @@ class modMyModule extends DolibarrModules
     
     		// Dependencies
     		$this->hidden = false;			// A condition to hide module
    -		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled
    -		$this->requiredby = array();	// List of module class names to disable if this one is disabled
    -		$this->conflictwith = array();	// List of module class names as string this module is in conflict with
    +		$this->depends = array();		// List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...)
    +		$this->requiredby = array();	// List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...)
    +		$this->conflictwith = array();	// List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...)
     		$this->langfiles = array("mymodule@mymodule");
    -		$this->phpmin = array(5,3);					// Minimum version of PHP required by module
    -		$this->need_dolibarr_version = array(4,0);	// Minimum version of Dolibarr required by module
    -		$this->warnings_activation = array();                     // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
    -		$this->warnings_activation_ext = array();                 // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
    +		//$this->phpmin = array(5,4);					// Minimum version of PHP required by module
    +		$this->need_dolibarr_version = array(4,0);		// Minimum version of Dolibarr required by module
    +		$this->warnings_activation = array();			// Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
    +		$this->warnings_activation_ext = array();		// Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
     		//$this->automatic_activation = array('FR'=>'MyModuleWasAutomaticallyActivatedBecauseOfYourCountryChoice');
     		//$this->always_enabled = true;								// If true, can't be disabled
     
    @@ -200,10 +197,10 @@ class modMyModule extends DolibarrModules
     		// Cronjobs (List of cron jobs entries to add when module is enabled)
     		// unit_frequency must be 60 for minute, 3600 for hour, 86400 for day, 604800 for week
     		$this->cronjobs = array(
    -			0=>array('label'=>'MyJob label', 'jobtype'=>'method', 'class'=>'/mymodule/class/myobject.class.php', 'objectname'=>'MyObject', 'method'=>'doScheduledJob', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>'$conf->mymodule->enabled')
    +			0=>array('label'=>'MyJob label', 'jobtype'=>'method', 'class'=>'/mymodule/class/myobject.class.php', 'objectname'=>'MyObject', 'method'=>'doScheduledJob', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>'$conf->mymodule->enabled', 'priority'=>50)
     		);
    -		// Example: $this->cronjobs=array(0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>'$conf->mymodule->enabled'),
    -		//                                1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>'$conf->mymodule->enabled')
    +		// Example: $this->cronjobs=array(0=>array('label'=>'My label', 'jobtype'=>'method', 'class'=>'/dir/class/file.class.php', 'objectname'=>'MyClass', 'method'=>'myMethod', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>2, 'unitfrequency'=>3600, 'status'=>0, 'test'=>'$conf->mymodule->enabled', 'priority'=>50),
    +		//                                1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'param1, param2', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24, 'status'=>0, 'test'=>'$conf->mymodule->enabled', 'priority'=>50)
     		// );
     
     
    @@ -324,7 +321,7 @@ class modMyModule extends DolibarrModules
     		//$result1=$extrafields->addExtraField('myattr1', "New Attr 1 label", 'boolean', 1,  3, 'thirdparty',   0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
     		//$result2=$extrafields->addExtraField('myattr2', "New Attr 2 label", 'varchar', 1, 10, 'project',      0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
     		//$result3=$extrafields->addExtraField('myattr3', "New Attr 3 label", 'varchar', 1, 10, 'bank_account', 0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
    -		//$result4=$extrafields->addExtraField('myattr4', "New Attr 4 label", 'select',  1,  3, 'thirdparty',   0, 1, '', array('options'=>array('code1'=>'Val1','code2'=>'Val2','code3'=>'Val3')), 1 '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
    +		//$result4=$extrafields->addExtraField('myattr4', "New Attr 4 label", 'select',  1,  3, 'thirdparty',   0, 1, '', array('options'=>array('code1'=>'Val1','code2'=>'Val2','code3'=>'Val3')), 1,'', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
     		//$result5=$extrafields->addExtraField('myattr5', "New Attr 5 label", 'text',    1, 10, 'user',         0, 0, '', '', 1, '', 0, 0, '', '', 'mymodule@mymodule', '$conf->mymodule->enabled');
     
     		$sql = array();
    @@ -346,5 +343,4 @@ class modMyModule extends DolibarrModules
     
     		return $this->_remove($sql, $options);
     	}
    -
     }
    diff --git a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php
    index b325f2f7443..1935054893b 100644
    --- a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php
    +++ b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php
    @@ -113,11 +113,6 @@ class InterfaceMyModuleTriggers extends DolibarrTriggers
     		    //case 'USER_SETINGROUP':
     		    //case 'USER_REMOVEFROMGROUP':
     
    -		    //case 'USER_LOGIN':
    -		    //case 'USER_LOGIN_FAILED':
    -		    //case 'USER_LOGOUT':
    -		    //case 'USER_UPDATE_SESSION':      // Warning: To increase performances, this action is triggered only if constant MAIN_ACTIVATE_UPDATESESSIONTRIGGER is set to 1.
    -
     		    // Actions
     		    //case 'ACTION_MODIFY':
     		    //case 'ACTION_CREATE':
    diff --git a/htdocs/modulebuilder/template/css/mymodule.css.php b/htdocs/modulebuilder/template/css/mymodule.css.php
    index 5787fa4f64c..9f3860f1484 100644
    --- a/htdocs/modulebuilder/template/css/mymodule.css.php
    +++ b/htdocs/modulebuilder/template/css/mymodule.css.php
    @@ -35,20 +35,22 @@ if (! defined('NOREQUIREAJAX'))   define('NOREQUIREAJAX','1');
     // Load Dolibarr environment
     $res=0;
     // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
    -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
    +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
     // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
     $tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
     while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/../main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/../main.inc.php");
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php";
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/../main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/../main.inc.php";
     // Try main.inc.php using relative path
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    -if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
    +if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php";
    +if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php";
     if (! $res) die("Include of main fails");
     
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     
    -session_cache_limiter(false);
    +session_cache_limiter('public');
    +// false or '' = keep cache instruction added by server
    +// 'public'  = remove cache instruction added by server and if no cache-control added later, a default cache delay (10800) will be added by PHP.
     
     // Load user to have $user->conf loaded (not done by default here because of NOLOGIN constant defined) and load permission if we need to use them in CSS
     /*if (empty($user->id) && ! empty($_SESSION['dol_login']))
    @@ -62,7 +64,7 @@ session_cache_limiter(false);
     header('Content-type: text/css');
     // Important: Following code is to cache this file to avoid page request by browser at each Dolibarr page access.
     // You can use CTRL+F5 to refresh your browser cache.
    -if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate');
    +if (empty($dolibarr_nocache)) header('Cache-Control: max-age=10800, public, must-revalidate');
     else header('Cache-Control: no-cache');
     
     ?>
    diff --git a/htdocs/modulebuilder/template/doc/user/Makefile b/htdocs/modulebuilder/template/doc/user/Makefile
    deleted file mode 100644
    index 5c33e8bf0a3..00000000000
    --- a/htdocs/modulebuilder/template/doc/user/Makefile
    +++ /dev/null
    @@ -1,225 +0,0 @@
    -# Makefile for Sphinx documentation
    -#
    -
    -# You can set these variables from the command line.
    -SPHINXOPTS    =
    -SPHINXBUILD   = sphinx-build
    -PAPER         =
    -BUILDDIR      = build
    -
    -# Internal variables.
    -PAPEROPT_a4     = -D latex_paper_size=a4
    -PAPEROPT_letter = -D latex_paper_size=letter
    -ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
    -# the i18n builder cannot share the environment and doctrees with the others
    -I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
    -
    -.PHONY: help
    -help:
    -	@echo "Please use \`make <target>' where <target> is one of"
    -	@echo "  html       to make standalone HTML files"
    -	@echo "  dirhtml    to make HTML files named index.html in directories"
    -	@echo "  singlehtml to make a single large HTML file"
    -	@echo "  pickle     to make pickle files"
    -	@echo "  json       to make JSON files"
    -	@echo "  htmlhelp   to make HTML files and a HTML help project"
    -	@echo "  qthelp     to make HTML files and a qthelp project"
    -	@echo "  applehelp  to make an Apple Help Book"
    -	@echo "  devhelp    to make HTML files and a Devhelp project"
    -	@echo "  epub       to make an epub"
    -	@echo "  epub3      to make an epub3"
    -	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
    -	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
    -	@echo "  latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
    -	@echo "  text       to make text files"
    -	@echo "  man        to make manual pages"
    -	@echo "  texinfo    to make Texinfo files"
    -	@echo "  info       to make Texinfo files and run them through makeinfo"
    -	@echo "  gettext    to make PO message catalogs"
    -	@echo "  changes    to make an overview of all changed/added/deprecated items"
    -	@echo "  xml        to make Docutils-native XML files"
    -	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
    -	@echo "  linkcheck  to check all external links for integrity"
    -	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
    -	@echo "  coverage   to run coverage check of the documentation (if enabled)"
    -	@echo "  dummy      to check syntax errors of document sources"
    -
    -.PHONY: clean
    -clean:
    -	rm -rf $(BUILDDIR)/*
    -
    -.PHONY: html
    -html:
    -	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
    -	@echo
    -	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
    -
    -.PHONY: dirhtml
    -dirhtml:
    -	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
    -	@echo
    -	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
    -
    -.PHONY: singlehtml
    -singlehtml:
    -	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
    -	@echo
    -	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
    -
    -.PHONY: pickle
    -pickle:
    -	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
    -	@echo
    -	@echo "Build finished; now you can process the pickle files."
    -
    -.PHONY: json
    -json:
    -	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
    -	@echo
    -	@echo "Build finished; now you can process the JSON files."
    -
    -.PHONY: htmlhelp
    -htmlhelp:
    -	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
    -	@echo
    -	@echo "Build finished; now you can run HTML Help Workshop with the" \
    -	      ".hhp project file in $(BUILDDIR)/htmlhelp."
    -
    -.PHONY: qthelp
    -qthelp:
    -	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
    -	@echo
    -	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
    -	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
    -	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Mymodule.qhcp"
    -	@echo "To view the help file:"
    -	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Mymodule.qhc"
    -
    -.PHONY: applehelp
    -applehelp:
    -	$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
    -	@echo
    -	@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
    -	@echo "N.B. You won't be able to view it unless you put it in" \
    -	      "~/Library/Documentation/Help or install it in your application" \
    -	      "bundle."
    -
    -.PHONY: devhelp
    -devhelp:
    -	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
    -	@echo
    -	@echo "Build finished."
    -	@echo "To view the help file:"
    -	@echo "# mkdir -p $$HOME/.local/share/devhelp/Mymodule"
    -	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Mymodule"
    -	@echo "# devhelp"
    -
    -.PHONY: epub
    -epub:
    -	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
    -	@echo
    -	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
    -
    -.PHONY: epub3
    -epub3:
    -	$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
    -	@echo
    -	@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
    -
    -.PHONY: latex
    -latex:
    -	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
    -	@echo
    -	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
    -	@echo "Run \`make' in that directory to run these through (pdf)latex" \
    -	      "(use \`make latexpdf' here to do that automatically)."
    -
    -.PHONY: latexpdf
    -latexpdf:
    -	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
    -	@echo "Running LaTeX files through pdflatex..."
    -	$(MAKE) -C $(BUILDDIR)/latex all-pdf
    -	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
    -
    -.PHONY: latexpdfja
    -latexpdfja:
    -	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
    -	@echo "Running LaTeX files through platex and dvipdfmx..."
    -	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
    -	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
    -
    -.PHONY: text
    -text:
    -	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
    -	@echo
    -	@echo "Build finished. The text files are in $(BUILDDIR)/text."
    -
    -.PHONY: man
    -man:
    -	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
    -	@echo
    -	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
    -
    -.PHONY: texinfo
    -texinfo:
    -	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
    -	@echo
    -	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
    -	@echo "Run \`make' in that directory to run these through makeinfo" \
    -	      "(use \`make info' here to do that automatically)."
    -
    -.PHONY: info
    -info:
    -	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
    -	@echo "Running Texinfo files through makeinfo..."
    -	make -C $(BUILDDIR)/texinfo info
    -	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
    -
    -.PHONY: gettext
    -gettext:
    -	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
    -	@echo
    -	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
    -
    -.PHONY: changes
    -changes:
    -	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
    -	@echo
    -	@echo "The overview file is in $(BUILDDIR)/changes."
    -
    -.PHONY: linkcheck
    -linkcheck:
    -	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
    -	@echo
    -	@echo "Link check complete; look for any errors in the above output " \
    -	      "or in $(BUILDDIR)/linkcheck/output.txt."
    -
    -.PHONY: doctest
    -doctest:
    -	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
    -	@echo "Testing of doctests in the sources finished, look at the " \
    -	      "results in $(BUILDDIR)/doctest/output.txt."
    -
    -.PHONY: coverage
    -coverage:
    -	$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
    -	@echo "Testing of coverage in the sources finished, look at the " \
    -	      "results in $(BUILDDIR)/coverage/python.txt."
    -
    -.PHONY: xml
    -xml:
    -	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
    -	@echo
    -	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
    -
    -.PHONY: pseudoxml
    -pseudoxml:
    -	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
    -	@echo
    -	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
    -
    -.PHONY: dummy
    -dummy:
    -	$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
    -	@echo
    -	@echo "Build finished. Dummy builder generates no files."
    diff --git a/htdocs/modulebuilder/template/doc/user/make.bat b/htdocs/modulebuilder/template/doc/user/make.bat
    deleted file mode 100644
    index 35018adf3ba..00000000000
    --- a/htdocs/modulebuilder/template/doc/user/make.bat
    +++ /dev/null
    @@ -1,281 +0,0 @@
    -@ECHO OFF
    -
    -REM Command file for Sphinx documentation
    -
    -if "%SPHINXBUILD%" == "" (
    -	set SPHINXBUILD=sphinx-build
    -)
    -set BUILDDIR=build
    -set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
    -set I18NSPHINXOPTS=%SPHINXOPTS% source
    -if NOT "%PAPER%" == "" (
    -	set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
    -	set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
    -)
    -
    -if "%1" == "" goto help
    -
    -if "%1" == "help" (
    -	:help
    -	echo.Please use `make ^<target^>` where ^<target^> is one of
    -	echo.  html       to make standalone HTML files
    -	echo.  dirhtml    to make HTML files named index.html in directories
    -	echo.  singlehtml to make a single large HTML file
    -	echo.  pickle     to make pickle files
    -	echo.  json       to make JSON files
    -	echo.  htmlhelp   to make HTML files and a HTML help project
    -	echo.  qthelp     to make HTML files and a qthelp project
    -	echo.  devhelp    to make HTML files and a Devhelp project
    -	echo.  epub       to make an epub
    -	echo.  epub3      to make an epub3
    -	echo.  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter
    -	echo.  text       to make text files
    -	echo.  man        to make manual pages
    -	echo.  texinfo    to make Texinfo files
    -	echo.  gettext    to make PO message catalogs
    -	echo.  changes    to make an overview over all changed/added/deprecated items
    -	echo.  xml        to make Docutils-native XML files
    -	echo.  pseudoxml  to make pseudoxml-XML files for display purposes
    -	echo.  linkcheck  to check all external links for integrity
    -	echo.  doctest    to run all doctests embedded in the documentation if enabled
    -	echo.  coverage   to run coverage check of the documentation if enabled
    -	echo.  dummy      to check syntax errors of document sources
    -	goto end
    -)
    -
    -if "%1" == "clean" (
    -	for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
    -	del /q /s %BUILDDIR%\*
    -	goto end
    -)
    -
    -
    -REM Check if sphinx-build is available and fallback to Python version if any
    -%SPHINXBUILD% 1>NUL 2>NUL
    -if errorlevel 9009 goto sphinx_python
    -goto sphinx_ok
    -
    -:sphinx_python
    -
    -set SPHINXBUILD=python -m sphinx.__init__
    -%SPHINXBUILD% 2> nul
    -if errorlevel 9009 (
    -	echo.
    -	echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
    -	echo.installed, then set the SPHINXBUILD environment variable to point
    -	echo.to the full path of the 'sphinx-build' executable. Alternatively you
    -	echo.may add the Sphinx directory to PATH.
    -	echo.
    -	echo.If you don't have Sphinx installed, grab it from
    -	echo.http://sphinx-doc.org/
    -	exit /b 1
    -)
    -
    -:sphinx_ok
    -
    -
    -if "%1" == "html" (
    -	%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. The HTML pages are in %BUILDDIR%/html.
    -	goto end
    -)
    -
    -if "%1" == "dirhtml" (
    -	%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
    -	goto end
    -)
    -
    -if "%1" == "singlehtml" (
    -	%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
    -	goto end
    -)
    -
    -if "%1" == "pickle" (
    -	%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished; now you can process the pickle files.
    -	goto end
    -)
    -
    -if "%1" == "json" (
    -	%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished; now you can process the JSON files.
    -	goto end
    -)
    -
    -if "%1" == "htmlhelp" (
    -	%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished; now you can run HTML Help Workshop with the ^
    -.hhp project file in %BUILDDIR%/htmlhelp.
    -	goto end
    -)
    -
    -if "%1" == "qthelp" (
    -	%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished; now you can run "qcollectiongenerator" with the ^
    -.qhcp project file in %BUILDDIR%/qthelp, like this:
    -	echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Mymodule.qhcp
    -	echo.To view the help file:
    -	echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Mymodule.ghc
    -	goto end
    -)
    -
    -if "%1" == "devhelp" (
    -	%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished.
    -	goto end
    -)
    -
    -if "%1" == "epub" (
    -	%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. The epub file is in %BUILDDIR%/epub.
    -	goto end
    -)
    -
    -if "%1" == "epub3" (
    -	%SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. The epub3 file is in %BUILDDIR%/epub3.
    -	goto end
    -)
    -
    -if "%1" == "latex" (
    -	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
    -	goto end
    -)
    -
    -if "%1" == "latexpdf" (
    -	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
    -	cd %BUILDDIR%/latex
    -	make all-pdf
    -	cd %~dp0
    -	echo.
    -	echo.Build finished; the PDF files are in %BUILDDIR%/latex.
    -	goto end
    -)
    -
    -if "%1" == "latexpdfja" (
    -	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
    -	cd %BUILDDIR%/latex
    -	make all-pdf-ja
    -	cd %~dp0
    -	echo.
    -	echo.Build finished; the PDF files are in %BUILDDIR%/latex.
    -	goto end
    -)
    -
    -if "%1" == "text" (
    -	%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. The text files are in %BUILDDIR%/text.
    -	goto end
    -)
    -
    -if "%1" == "man" (
    -	%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. The manual pages are in %BUILDDIR%/man.
    -	goto end
    -)
    -
    -if "%1" == "texinfo" (
    -	%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
    -	goto end
    -)
    -
    -if "%1" == "gettext" (
    -	%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
    -	goto end
    -)
    -
    -if "%1" == "changes" (
    -	%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.The overview file is in %BUILDDIR%/changes.
    -	goto end
    -)
    -
    -if "%1" == "linkcheck" (
    -	%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Link check complete; look for any errors in the above output ^
    -or in %BUILDDIR%/linkcheck/output.txt.
    -	goto end
    -)
    -
    -if "%1" == "doctest" (
    -	%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Testing of doctests in the sources finished, look at the ^
    -results in %BUILDDIR%/doctest/output.txt.
    -	goto end
    -)
    -
    -if "%1" == "coverage" (
    -	%SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Testing of coverage in the sources finished, look at the ^
    -results in %BUILDDIR%/coverage/python.txt.
    -	goto end
    -)
    -
    -if "%1" == "xml" (
    -	%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. The XML files are in %BUILDDIR%/xml.
    -	goto end
    -)
    -
    -if "%1" == "pseudoxml" (
    -	%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
    -	goto end
    -)
    -
    -if "%1" == "dummy" (
    -	%SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy
    -	if errorlevel 1 exit /b 1
    -	echo.
    -	echo.Build finished. Dummy builder generates no files.
    -	goto end
    -)
    -
    -:end
    diff --git a/htdocs/modulebuilder/template/doc/user/source/conf.py b/htdocs/modulebuilder/template/doc/user/source/conf.py
    deleted file mode 100644
    index 130bd5a12e5..00000000000
    --- a/htdocs/modulebuilder/template/doc/user/source/conf.py
    +++ /dev/null
    @@ -1,428 +0,0 @@
    -#!/usr/bin/env python3
    -# -*- coding: utf-8 -*-
    -#
    -# My Module documentation build configuration file, created by
    -# sphinx-quickstart on Mon Sep 26 17:54:17 2016.
    -#
    -# This file is execfile()d with the current directory set to its
    -# containing dir.
    -#
    -# Note that not all possible configuration values are present in this
    -# autogenerated file.
    -#
    -# All configuration values have a default; values that are commented out
    -# serve to show the default.
    -
    -# If extensions (or modules to document with autodoc) are in another directory,
    -# add these directories to sys.path here. If the directory is relative to the
    -# documentation root, use os.path.abspath to make it absolute, like shown here.
    -#
    -# import os
    -# import sys
    -# sys.path.insert(0, os.path.abspath('.'))
    -
    -# -- General configuration ------------------------------------------------
    -
    -# If your documentation needs a minimal Sphinx version, state it here.
    -#
    -# needs_sphinx = '1.0'
    -
    -# Add any Sphinx extension module names here, as strings. They can be
    -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
    -# ones.
    -extensions = [
    -    'sphinx.ext.todo',
    -    'sphinx.ext.imgmath',
    -    'sphinx.ext.githubpages',
    -]
    -
    -# Add any paths that contain templates here, relative to this directory.
    -templates_path = ['_templates']
    -
    -# The suffix(es) of source filenames.
    -# You can specify multiple suffix as a list of string:
    -#
    -# source_suffix = ['.rst', '.md']
    -source_suffix = '.rst'
    -
    -# The encoding of source files.
    -#
    -# source_encoding = 'utf-8-sig'
    -
    -# The master toctree document.
    -master_doc = 'index'
    -
    -# General information about the project.
    -project = 'My Module'
    -copyright = '2016, Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>'
    -author = 'Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>'
    -
    -# The version info for the project you're documenting, acts as replacement for
    -# |version| and |release|, also used in various other places throughout the
    -# built documents.
    -#
    -# The short X.Y version.
    -version = 'development'
    -# The full version, including alpha/beta/rc tags.
    -release = 'development'
    -
    -# The language for content autogenerated by Sphinx. Refer to documentation
    -# for a list of supported languages.
    -#
    -# This is also used if you do content translation via gettext catalogs.
    -# Usually you set "language" from the command line for these cases.
    -language = None
    -
    -# There are two options for replacing |today|: either, you set today to some
    -# non-false value, then it is used:
    -#
    -# today = ''
    -#
    -# Else, today_fmt is used as the format for a strftime call.
    -#
    -# today_fmt = '%B %d, %Y'
    -
    -# List of patterns, relative to source directory, that match files and
    -# directories to ignore when looking for source files.
    -# This patterns also effect to html_static_path and html_extra_path
    -exclude_patterns = []
    -
    -# The reST default role (used for this markup: `text`) to use for all
    -# documents.
    -#
    -# default_role = None
    -
    -# If true, '()' will be appended to :func: etc. cross-reference text.
    -#
    -# add_function_parentheses = True
    -
    -# If true, the current module name will be prepended to all description
    -# unit titles (such as .. function::).
    -#
    -# add_module_names = True
    -
    -# If true, sectionauthor and moduleauthor directives will be shown in the
    -# output. They are ignored by default.
    -#
    -# show_authors = False
    -
    -# The name of the Pygments (syntax highlighting) style to use.
    -pygments_style = 'sphinx'
    -
    -# A list of ignored prefixes for module index sorting.
    -# modindex_common_prefix = []
    -
    -# If true, keep warnings as "system message" paragraphs in the built documents.
    -# keep_warnings = False
    -
    -# If true, `todo` and `todoList` produce output, else they produce nothing.
    -todo_include_todos = True
    -
    -
    -# -- Options for HTML output ----------------------------------------------
    -
    -# The theme to use for HTML and HTML Help pages.  See the documentation for
    -# a list of builtin themes.
    -#
    -html_theme = 'alabaster'
    -
    -# Theme options are theme-specific and customize the look and feel of a theme
    -# further.  For a list of options available for each theme, see the
    -# documentation.
    -#
    -# html_theme_options = {}
    -
    -# Add any paths that contain custom themes here, relative to this directory.
    -# html_theme_path = []
    -
    -# The name for this set of Sphinx documents.
    -# "<project> v<release> documentation" by default.
    -#
    -# html_title = 'My Module vdevelopment'
    -
    -# A shorter title for the navigation bar.  Default is the same as html_title.
    -#
    -# html_short_title = None
    -
    -# The name of an image file (relative to this directory) to place at the top
    -# of the sidebar.
    -#
    -# html_logo = None
    -
    -# The name of an image file (relative to this directory) to use as a favicon of
    -# the docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
    -# pixels large.
    -#
    -# html_favicon = None
    -
    -# Add any paths that contain custom static files (such as style sheets) here,
    -# relative to this directory. They are copied after the builtin static files,
    -# so a file named "default.css" will overwrite the builtin "default.css".
    -html_static_path = ['_static']
    -
    -# Add any extra paths that contain custom files (such as robots.txt or
    -# .htaccess) here, relative to this directory. These files are copied
    -# directly to the root of the documentation.
    -#
    -# html_extra_path = []
    -
    -# If not None, a 'Last updated on:' timestamp is inserted at every page
    -# bottom, using the given strftime format.
    -# The empty string is equivalent to '%b %d, %Y'.
    -#
    -# html_last_updated_fmt = None
    -
    -# If true, SmartyPants will be used to convert quotes and dashes to
    -# typographically correct entities.
    -#
    -# html_use_smartypants = True
    -
    -# Custom sidebar templates, maps document names to template names.
    -#
    -# html_sidebars = {}
    -
    -# Additional templates that should be rendered to pages, maps page names to
    -# template names.
    -#
    -# html_additional_pages = {}
    -
    -# If false, no module index is generated.
    -#
    -# html_domain_indices = True
    -
    -# If false, no index is generated.
    -#
    -# html_use_index = True
    -
    -# If true, the index is split into individual pages for each letter.
    -#
    -# html_split_index = False
    -
    -# If true, links to the reST sources are added to the pages.
    -#
    -# html_show_sourcelink = True
    -
    -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
    -#
    -# html_show_sphinx = True
    -
    -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
    -#
    -# html_show_copyright = True
    -
    -# If true, an OpenSearch description file will be output, and all pages will
    -# contain a <link> tag referring to it.  The value of this option must be the
    -# base URL from which the finished HTML is served.
    -#
    -# html_use_opensearch = ''
    -
    -# This is the file name suffix for HTML files (e.g. ".xhtml").
    -# html_file_suffix = None
    -
    -# Language to be used for generating the HTML full-text search index.
    -# Sphinx supports the following languages:
    -#   'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
    -#   'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr', 'zh'
    -#
    -# html_search_language = 'en'
    -
    -# A dictionary with options for the search language support, empty by default.
    -# 'ja' uses this config value.
    -# 'zh' user can custom change `jieba` dictionary path.
    -#
    -# html_search_options = {'type': 'default'}
    -
    -# The name of a javascript file (relative to the configuration directory) that
    -# implements a search results scorer. If empty, the default will be used.
    -#
    -# html_search_scorer = 'scorer.js'
    -
    -# Output file base name for HTML help builder.
    -htmlhelp_basename = 'Mymoduledoc'
    -
    -# -- Options for LaTeX output ---------------------------------------------
    -
    -latex_elements = {
    -     # The paper size ('letterpaper' or 'a4paper').
    -     #
    -     # 'papersize': 'letterpaper',
    -
    -     # The font size ('10pt', '11pt' or '12pt').
    -     #
    -     # 'pointsize': '10pt',
    -
    -     # Additional stuff for the LaTeX preamble.
    -     #
    -     # 'preamble': '',
    -
    -     # Latex figure (float) alignment
    -     #
    -     # 'figure_align': 'htbp',
    -}
    -
    -# Grouping the document tree into LaTeX files. List of tuples
    -# (source start file, target name, title,
    -#  author, documentclass [howto, manual, or own class]).
    -latex_documents = [
    -    (master_doc, 'Mymodule.tex', 'My Module Documentation',
    -     'Raphaël Doursenaud \\textless{}rdoursenaud@gpcsolutions.fr\\textgreater{}', 'manual'),
    -]
    -
    -# The name of an image file (relative to this directory) to place at the top of
    -# the title page.
    -#
    -# latex_logo = None
    -
    -# For "manual" documents, if this is true, then toplevel headings are parts,
    -# not chapters.
    -#
    -# latex_use_parts = False
    -
    -# If true, show page references after internal links.
    -#
    -# latex_show_pagerefs = False
    -
    -# If true, show URL addresses after external links.
    -#
    -# latex_show_urls = False
    -
    -# Documents to append as an appendix to all manuals.
    -#
    -# latex_appendices = []
    -
    -# It false, will not define \strong, \code, 	itleref, \crossref ... but only
    -# \sphinxstrong, ..., \sphinxtitleref, ... To help avoid clash with user added
    -# packages.
    -#
    -# latex_keep_old_macro_names = True
    -
    -# If false, no module index is generated.
    -#
    -# latex_domain_indices = True
    -
    -
    -# -- Options for manual page output ---------------------------------------
    -
    -# One entry per manual page. List of tuples
    -# (source start file, name, description, authors, manual section).
    -man_pages = [
    -    (master_doc, 'mymodule', 'My Module Documentation',
    -     [author], 1)
    -]
    -
    -# If true, show URL addresses after external links.
    -#
    -# man_show_urls = False
    -
    -
    -# -- Options for Texinfo output -------------------------------------------
    -
    -# Grouping the document tree into Texinfo files. List of tuples
    -# (source start file, target name, title, author,
    -#  dir menu entry, description, category)
    -texinfo_documents = [
    -    (master_doc, 'Mymodule', 'My Module Documentation',
    -     author, 'Mymodule', 'One line description of project.',
    -     'Miscellaneous'),
    -]
    -
    -# Documents to append as an appendix to all manuals.
    -#
    -# texinfo_appendices = []
    -
    -# If false, no module index is generated.
    -#
    -# texinfo_domain_indices = True
    -
    -# How to display URL addresses: 'footnote', 'no', or 'inline'.
    -#
    -# texinfo_show_urls = 'footnote'
    -
    -# If true, do not generate a @detailmenu in the "Top" node's menu.
    -#
    -# texinfo_no_detailmenu = False
    -
    -
    -# -- Options for Epub output ----------------------------------------------
    -
    -# Bibliographic Dublin Core info.
    -epub_title = project
    -epub_author = author
    -epub_publisher = author
    -epub_copyright = copyright
    -
    -# The basename for the epub file. It defaults to the project name.
    -# epub_basename = project
    -
    -# The HTML theme for the epub output. Since the default themes are not
    -# optimized for small screen space, using the same theme for HTML and epub
    -# output is usually not wise. This defaults to 'epub', a theme designed to save
    -# visual space.
    -#
    -# epub_theme = 'epub'
    -
    -# The language of the text. It defaults to the language option
    -# or 'en' if the language is not set.
    -#
    -# epub_language = ''
    -
    -# The scheme of the identifier. Typical schemes are ISBN or URL.
    -# epub_scheme = ''
    -
    -# The unique identifier of the text. This can be a ISBN number
    -# or the project homepage.
    -#
    -# epub_identifier = ''
    -
    -# A unique identification for the text.
    -#
    -# epub_uid = ''
    -
    -# A tuple containing the cover image and cover page html template filenames.
    -#
    -# epub_cover = ()
    -
    -# A sequence of (type, uri, title) tuples for the guide element of content.opf.
    -#
    -# epub_guide = ()
    -
    -# HTML files that should be inserted before the pages created by sphinx.
    -# The format is a list of tuples containing the path and title.
    -#
    -# epub_pre_files = []
    -
    -# HTML files that should be inserted after the pages created by sphinx.
    -# The format is a list of tuples containing the path and title.
    -#
    -# epub_post_files = []
    -
    -# A list of files that should not be packed into the epub file.
    -epub_exclude_files = ['search.html']
    -
    -# The depth of the table of contents in toc.ncx.
    -#
    -# epub_tocdepth = 3
    -
    -# Allow duplicate toc entries.
    -#
    -# epub_tocdup = True
    -
    -# Choose between 'default' and 'includehidden'.
    -#
    -# epub_tocscope = 'default'
    -
    -# Fix unsupported image types using the Pillow.
    -#
    -# epub_fix_images = False
    -
    -# Scale large images.
    -#
    -# epub_max_image_width = 0
    -
    -# How to display URL addresses: 'footnote', 'no', or 'inline'.
    -#
    -# epub_show_urls = 'inline'
    -
    -# If false, no index is generated.
    -#
    -# epub_use_index = True
    diff --git a/htdocs/modulebuilder/template/doc/user/source/index.rst b/htdocs/modulebuilder/template/doc/user/source/index.rst
    deleted file mode 100644
    index 48f2a6e49d8..00000000000
    --- a/htdocs/modulebuilder/template/doc/user/source/index.rst
    +++ /dev/null
    @@ -1,22 +0,0 @@
    -.. My Module documentation master file, created by
    -   sphinx-quickstart on Mon Sep 26 17:54:17 2016.
    -   You can adapt this file completely to your liking, but it should at least
    -   contain the root `toctree` directive.
    -
    -Welcome to My Module's documentation!
    -=====================================
    -
    -Contents:
    -
    -.. toctree::
    -   :maxdepth: 2
    -
    -
    -
    -Indices and tables
    -==================
    -
    -* :ref:`genindex`
    -* :ref:`modindex`
    -* :ref:`search`
    -
    diff --git a/htdocs/modulebuilder/template/js/mymodule.js.php b/htdocs/modulebuilder/template/js/mymodule.js.php
    index 07f44756615..6a3447625a5 100644
    --- a/htdocs/modulebuilder/template/js/mymodule.js.php
    +++ b/htdocs/modulebuilder/template/js/mymodule.js.php
    @@ -38,15 +38,15 @@ if (!defined('NOREQUIREAJAX'))  define('NOREQUIREAJAX','1');
     // Load Dolibarr environment
     $res=0;
     // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
    -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
    +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
     // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
     $tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
     while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/../main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/../main.inc.php");
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php";
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/../main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/../main.inc.php";
     // Try main.inc.php using relative path
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    -if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
    +if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php";
    +if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php";
     if (! $res) die("Include of main fails");
     
     // Define js type
    diff --git a/htdocs/modulebuilder/template/mymoduleindex.php b/htdocs/modulebuilder/template/mymoduleindex.php
    index bf56d00ede0..61413f2393f 100644
    --- a/htdocs/modulebuilder/template/mymoduleindex.php
    +++ b/htdocs/modulebuilder/template/mymoduleindex.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -27,16 +27,16 @@
     // Load Dolibarr environment
     $res=0;
     // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
    -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
    +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
     // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
     $tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
     while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
    -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php";
    +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php";
     // Try main.inc.php using relative path
    -if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php");
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    -if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
    +if (! $res && file_exists("../main.inc.php")) $res=@include "../main.inc.php";
    +if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php";
    +if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php";
     if (! $res) die("Include of main fails");
     
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    @@ -233,6 +233,6 @@ if (! empty($conf->mymodule->enabled) && $user->rights->mymodule->read)
     
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/modulebuilder/template/myobject_agenda.php b/htdocs/modulebuilder/template/myobject_agenda.php
    index 3322fb527d3..b1da52ad4aa 100644
    --- a/htdocs/modulebuilder/template/myobject_agenda.php
    +++ b/htdocs/modulebuilder/template/myobject_agenda.php
    @@ -25,16 +25,16 @@
     // Load Dolibarr environment
     $res=0;
     // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
    -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
    +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
     // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
     $tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
     while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
    -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php";
    +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php";
     // Try main.inc.php using relative path
    -if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php");
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    -if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
    +if (! $res && file_exists("../main.inc.php")) $res=@include "../main.inc.php";
    +if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php";
    +if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php";
     if (! $res) die("Include of main fails");
     
     require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
    @@ -232,7 +232,7 @@ if ($object->id > 0)
         	}
         	else
         	{
    -        	print '<a class="butActionRefused" href="#">'.$langs->trans("AddAction").'</a>';
    +        	print '<a class="butActionRefused classfortooltip" href="#">'.$langs->trans("AddAction").'</a>';
         	}
         }
     
    @@ -256,7 +256,6 @@ if ($object->id > 0)
         }
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php
    index 3d811d53381..1004ebd20f8 100644
    --- a/htdocs/modulebuilder/template/myobject_card.php
    +++ b/htdocs/modulebuilder/template/myobject_card.php
    @@ -45,20 +45,20 @@
     // Load Dolibarr environment
     $res=0;
     // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
    -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
    +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
     // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
     $tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
     while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
    -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php";
    +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php";
     // Try main.inc.php using relative path
    -if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php");
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    -if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
    +if (! $res && file_exists("../main.inc.php")) $res=@include "../main.inc.php";
    +if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php";
    +if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php";
     if (! $res) die("Include of main fails");
     
    -include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php');
    -include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php');
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     dol_include_once('/mymodule/class/myobject.class.php');
     dol_include_once('/mymodule/lib/mymodule_myobject.lib.php');
     
    @@ -68,7 +68,7 @@ $langs->loadLangs(array("mymodule@mymodule","other"));
     // Get parameters
     $id			= GETPOST('id', 'int');
     $ref        = GETPOST('ref', 'alpha');
    -$action		= GETPOST('action', 'alpha');
    +$action		= GETPOST('action', 'aZ09');
     $confirm    = GETPOST('confirm', 'alpha');
     $cancel     = GETPOST('cancel', 'aZ09');
     $contextpage= GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'myobjectcard';   // To manage different context of search
    @@ -81,14 +81,14 @@ $diroutputmassaction=$conf->mymodule->dir_output . '/temp/massgeneration/'.$user
     $hookmanager->initHooks(array('myobjectcard','globalcard'));     // Note that conf->hooks_modules contains array
     // Fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // Initialize array of search criterias
     $search_all=trim(GETPOST("search_all",'alpha'));
     $search=array();
     foreach($object->fields as $key => $val)
     {
    -    if (GETPOST('search_'.$key,'alpha')) $search[$key]=GETPOST('search_'.$key,'alpha');
    +	if (GETPOST('search_'.$key,'alpha')) $search[$key]=GETPOST('search_'.$key,'alpha');
     }
     
     if (empty($action) && empty($id) && empty($ref)) $action='view';
    @@ -100,7 +100,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php';  // Must be inclu
     //if ($user->societe_id > 0) access_forbidden();
     //if ($user->societe_id > 0) $socid = $user->societe_id;
     //$isdraft = (($object->statut == MyObject::STATUS_DRAFT) ? 1 : 0);
    -//$result = restrictedArea($user, 'mymodule', $id, '', '', 'fk_soc', 'rowid', null, $isdraft);
    +//$result = restrictedArea($user, 'mymodule', $object->id, '', '', 'fk_soc', 'rowid', $isdraft);
     
     
     /*
    @@ -118,14 +118,20 @@ if (empty($reshook))
     	$error=0;
     
     	$permissiontoadd = $user->rights->mymodule->write;
    -	$permissiontodelete = $user->rights->mymodule->delete;
    -	if (empty($backtopage)) $backtopage = dol_buildpath('/mymodule/myobject_card.php',1).'?id='.($id > 0 ? $id : '__ID__');
    -	$backurlforlist = dol_buildpath('/mymodule/myobject_list.php',1);
    +	$permissiontodelete = $user->rights->mymodule->delete || ($permissiontoadd && $object->status == 0);
    +    	$backurlforlist = dol_buildpath('/mymodule/myobject_list.php',1);
    +	if (empty($backtopage)) {
    +	    if (empty($id)) $backtopage = $backurlforlist;
    +	    else $backtopage = dol_buildpath('/mymodule/myobject_card.php',1).($id > 0 ? $id : '__ID__');
    +    	}
     	$triggermodname = 'MYMODULE_MYOBJECT_MODIFY';	// Name of trigger action code to execute when we modify record
     
     	// Actions cancel, add, update, delete or clone
     	include DOL_DOCUMENT_ROOT.'/core/actions_addupdatedelete.inc.php';
     
    +	// Actions when linking object each other
    +	include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php';		// Must be include, not include_once
    +
     	// Actions when printing a doc from card
     	include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
     
    @@ -271,12 +277,11 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     	    $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('XXX'), $text, 'confirm_xxx', $formquestion, 0, 1, 220);
     	}
     
    -	if (! $formconfirm) {
    -	    $parameters = array('lineid' => $lineid);
    -	    $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    -	    if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    -	    elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    -	}
    +	// Call Hook formConfirm
    +	$parameters = array('lineid' => $lineid);
    +	$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +	if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +	elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
     
     	// Print form confirm
     	print $formconfirm;
    @@ -317,9 +322,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     	        if (! empty($object->fk_project)) {
     	            $proj = new Project($db);
     	            $proj->fetch($object->fk_project);
    -	            $morehtmlref.='<a href="'.DOL_URL_ROOT.'/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
    -	            $morehtmlref.=$proj->ref;
    -	            $morehtmlref.='</a>';
    +	            $morehtmlref.=$proj->getNomUrl();
     	        } else {
     	            $morehtmlref.='';
     	        }
    @@ -347,7 +350,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     	print '</table>';
     	print '</div>';
     	print '</div>';
    -	print '</div>';
     
     	print '<div class="clearboth"></div><br>';
     
    @@ -373,7 +375,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
         		}
         		else
         		{
    -    			print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Modify').'</a>'."\n";
    +    			print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Modify').'</a>'."\n";
         		}
     
         		// Clone
    @@ -402,7 +404,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
         		}
         		else
         		{
    -    			print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Delete').'</a>'."\n";
    +    			print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Delete').'</a>'."\n";
         		}
         	}
         	print '</div>'."\n";
    @@ -411,7 +413,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     
     	// Select mail models is same action as presend
     	if (GETPOST('modelselected')) {
    -	    $action = 'presend';
    +		$action = 'presend';
     	}
     
     	if ($action != 'presend')
    @@ -464,7 +466,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     	 */
     }
     
    -
     // End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/modulebuilder/template/myobject_document.php b/htdocs/modulebuilder/template/myobject_document.php
    index dfdc16d69d9..4e2b19e3afc 100644
    --- a/htdocs/modulebuilder/template/myobject_document.php
    +++ b/htdocs/modulebuilder/template/myobject_document.php
    @@ -25,16 +25,16 @@
     // Load Dolibarr environment
     $res=0;
     // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
    -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
    +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
     // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
     $tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
     while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
    -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php";
    +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php";
     // Try main.inc.php using relative path
    -if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php");
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    -if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
    +if (! $res && file_exists("../main.inc.php")) $res=@include "../main.inc.php";
    +if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php";
    +if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php";
     if (! $res) die("Include of main fails");
     
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    @@ -113,7 +113,7 @@ if ($object->id)
     	dol_fiche_head($head, 'document', $langs->trans("MyObject"), -1, 'myobject@mymodule');
     
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -161,6 +161,6 @@ else
     	accessforbidden('',0,0);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php
    index 1d06e2eaac7..eeabbb11b1e 100644
    --- a/htdocs/modulebuilder/template/myobject_list.php
    +++ b/htdocs/modulebuilder/template/myobject_list.php
    @@ -39,23 +39,24 @@
     //if (! defined("MAIN_LANG_DEFAULT"))        define('MAIN_LANG_DEFAULT','auto');					// Force lang to a particular value
     //if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE','aloginmodule');		// Force authentication handler
     //if (! defined("NOREDIRECTBYMAINTOLOGIN"))  define('NOREDIRECTBYMAINTOLOGIN',1);		// The main.inc.php does not make a redirect if not logged, instead show simple error message
    +//if (! defined("XFRAMEOPTIONS_ALLOWALL"))   define('XFRAMEOPTIONS_ALLOWALL',1);		// Do not add the HTTP header 'X-Frame-Options: SAMEORIGIN' but 'X-Frame-Options: ALLOWALL'
     
     // Load Dolibarr environment
     $res=0;
     // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
    -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
    +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
     // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
     $tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
     while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
    -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php";
    +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php";
     // Try main.inc.php using relative path
    -if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php");
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    -if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
    +if (! $res && file_exists("../main.inc.php")) $res=@include "../main.inc.php";
    +if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php";
    +if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php";
     if (! $res) die("Include of main fails");
     
    -require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php');
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     dol_include_once('/mymodule/class/myobject.class.php');
    @@ -88,13 +89,13 @@ $pagenext = $page + 1;
     //if (! $sortorder) $sortorder="DESC";
     
     // Initialize technical objects
    -$object=new MyObject($db);
    +$object = new MyObject($db);
     $extrafields = new ExtraFields($db);
    -$diroutputmassaction=$conf->mymodule->dir_output . '/temp/massgeneration/'.$user->id;
    +$diroutputmassaction = $conf->mymodule->dir_output . '/temp/massgeneration/'.$user->id;
     $hookmanager->initHooks(array('myobjectlist'));     // Note that conf->hooks_modules contains array
     // Fetch optionals attributes and labels
    -$extralabels = $extrafields->fetch_name_optionals_label('myobject');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$extralabels = $extrafields->fetch_name_optionals_label('myobject');	// Load $extrafields->attributes['myobject']
    +$search_array_options = $extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // Default sort order (if not yet defined by previous GETPOST)
     if (! $sortfield) $sortfield="t.".key($object->fields);   // Set here default search field. By default 1st field in definition.
    @@ -147,8 +148,6 @@ $arrayfields = dol_sort_array($arrayfields, 'position');
     
     /*
      * Actions
    - *
    - * Put here all code to do according to value of "$action" parameter
      */
     
     if (GETPOST('cancel','alpha')) { $action='list'; $massaction=''; }
    @@ -192,8 +191,6 @@ if (empty($reshook))
     
     /*
      * View
    - *
    - * Put here all code to render page
      */
     
     $form=new Form($db);
    @@ -292,7 +289,7 @@ if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) &&
     {
     	$obj = $db->fetch_object($resql);
     	$id = $obj->rowid;
    -	header("Location: ".DOL_URL_ROOT.'/mymodule/myobject_card.php?id='.$id);
    +	header("Location: ".dol_buildpath('/mymodule/myobject_card.php', 1).'?id='.$id);
     	exit;
     }
     
    @@ -336,7 +333,7 @@ $arrayofmassactions =  array(
     	//'builddoc'=>$langs->trans("PDFMerge"),
     );
     if ($user->rights->mymodule->delete) $arrayofmassactions['predelete']=$langs->trans("Delete");
    -if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    +if (GETPOST('nomassaction','int') || in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
     $massactionbutton=$form->selectMassAction('', $arrayofmassactions);
     
     print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
    @@ -352,10 +349,16 @@ print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
     $newcardbutton='';
     //if ($user->rights->mymodule->creer)
     //{
    -	$newcardbutton='<a class="butActionNew" href="card.php?action=create"><span class="valignmiddle">'.$langs->trans('New').'</span>';
    +	$newcardbutton='<a class="butActionNew" href="myobject_card.php?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']).'"><span class="valignmiddle">'.$langs->trans('New').'</span>';
     	$newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
     	$newcardbutton.= '</a>';
     //}
    +//else
    +//{
    +//    $newcardbutton='<a class="butActionNewRefused" href="#">'.$langs->trans('New');
    +//    $newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    +//    $newcardbutton.= '</a>';
    +//}
     
     print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_companies', 0, $newcardbutton, '', $limit);
     
    @@ -402,11 +405,11 @@ print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"")
     print '<tr class="liste_titre">';
     foreach($object->fields as $key => $val)
     {
    -	$align='';
    -	if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center';
    -	if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap';
    -	if ($key == 'status') $align.=($align?' ':'').'center';
    -	if (! empty($arrayfields['t.'.$key]['checked'])) print '<td class="liste_titre'.($align?' '.$align:'').'"><input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag($search[$key]).'"></td>';
    +	$cssforfield='';
    +	if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +	if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +	if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
    +	if (! empty($arrayfields['t.'.$key]['checked'])) print '<td class="liste_titre'.($cssforfield?' '.$cssforfield:'').'"><input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag($search[$key]).'"></td>';
     }
     // Extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
    @@ -428,11 +431,14 @@ print '</tr>'."\n";
     print '<tr class="liste_titre">';
     foreach($object->fields as $key => $val)
     {
    -	$align='';
    -	if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center';
    -	if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap';
    -	if ($key == 'status') $align.=($align?' ':'').'center';
    -	if (! empty($arrayfields['t.'.$key]['checked'])) print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n";
    +	$cssforfield='';
    +	if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +	if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +	if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
    +	if (! empty($arrayfields['t.'.$key]['checked']))
    +	{
    +		print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($cssforfield?'class="'.$cssforfield.'"':''), $sortfield, $sortorder, ($cssforfield?$cssforfield.' ':''))."\n";
    +	}
     }
     // Extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
    @@ -475,14 +481,21 @@ while ($i < min($num, $limit))
     	print '<tr class="oddeven">';
     	foreach($object->fields as $key => $val)
     	{
    -		$align='';
    -		if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center';
    -		if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap';
    -		if ($key == 'status') $align.=($align?' ':'').'center';
    -		if (! empty($arrayfields['t.'.$key]['checked']))
    +	    $cssforfield='';
    +	    if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +	    elseif ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
    +
    +	    if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +	    elseif ($key == 'ref') $cssforfield.=($cssforfield?' ':'').'nowrap';
    +
    +	    if (! empty($arrayfields['t.'.$key]['checked']))
     		{
     			print '<td';
    -			if ($align) print ' class="'.$align.'"';
    +			if ($cssforfield || $val['css']) print ' class="';
    +			print $cssforfield;
    +			if ($cssforfield && $val['css']) print ' ';
    +			print $val['css'];
    +			if ($cssforfield || $val['css']) print '"';
     			print '>';
     			print $object->showOutputField($val, $key, $obj->$key, '');
     			print '</td>';
    @@ -529,8 +542,8 @@ if (isset($totalarray['pos']))
     		{
     			if ($i == 1)
     			{
    -				if ($num < $limit) print '<td align="left">'.$langs->trans("Total").'</td>';
    -				else print '<td align="left">'.$langs->trans("Totalforthispage").'</td>';
    +				if ($num < $limit) print '<td class="left">'.$langs->trans("Total").'</td>';
    +				else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
     			}
     			else print '<td></td>';
     		}
    @@ -563,7 +576,7 @@ if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nb
     	$hidegeneratedfilelistifempty=1;
     	if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) $hidegeneratedfilelistifempty=0;
     
    -	require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php');
    +	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     	$formfile = new FormFile($db);
     
     	// Show list of available documents
    diff --git a/htdocs/modulebuilder/template/myobject_note.php b/htdocs/modulebuilder/template/myobject_note.php
    index 1a26d9abeb4..876c5e105a6 100644
    --- a/htdocs/modulebuilder/template/myobject_note.php
    +++ b/htdocs/modulebuilder/template/myobject_note.php
    @@ -25,16 +25,16 @@
     // Load Dolibarr environment
     $res=0;
     // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
    -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
    +if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
     // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
     $tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
     while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
    -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php";
    +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php";
     // Try main.inc.php using relative path
    -if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php");
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    -if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
    +if (! $res && file_exists("../main.inc.php")) $res=@include "../main.inc.php";
    +if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php";
    +if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php";
     if (! $res) die("Include of main fails");
     
     dol_include_once('/mymodule/class/myobject.class.php');
    @@ -159,6 +159,6 @@ if ($id > 0 || ! empty($ref))
     	dol_fiche_end();
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/modulebuilder/template/scripts/myobject.php b/htdocs/modulebuilder/template/scripts/myobject.php
    old mode 100755
    new mode 100644
    index 0aad12e2e35..67bcdea1d74
    --- a/htdocs/modulebuilder/template/scripts/myobject.php
    +++ b/htdocs/modulebuilder/template/scripts/myobject.php
    @@ -47,12 +47,12 @@ $res=0;
     // Try master.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
     $tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
     while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/master.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/master.inc.php");
    -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/master.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/master.inc.php");
    +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/master.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/master.inc.php";
    +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/master.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/master.inc.php";
     // Try master.inc.php using relative path
    -if (! $res && file_exists("../master.inc.php")) $res=@include("../master.inc.php");
    -if (! $res && file_exists("../../master.inc.php")) $res=@include("../../master.inc.php");
    -if (! $res && file_exists("../../../master.inc.php")) $res=@include("../../../master.inc.php");
    +if (! $res && file_exists("../master.inc.php")) $res=@include "../master.inc.php";
    +if (! $res && file_exists("../../master.inc.php")) $res=@include "../../master.inc.php";
    +if (! $res && file_exists("../../../master.inc.php")) $res=@include "../../../master.inc.php";
     if (! $res) die("Include of master fails");
     // After this $db, $mysoc, $langs, $conf and $hookmanager are defined (Opened $db handler to database will be closed at end of file).
     // $user is created but empty.
    diff --git a/htdocs/modulebuilder/template/test/phpunit/MyModuleFunctionalTest.php b/htdocs/modulebuilder/template/test/phpunit/MyModuleFunctionalTest.php
    index a70cc9bee8d..8adf184e24f 100644
    --- a/htdocs/modulebuilder/template/test/phpunit/MyModuleFunctionalTest.php
    +++ b/htdocs/modulebuilder/template/test/phpunit/MyModuleFunctionalTest.php
    @@ -99,6 +99,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     
     	/**
     	 * Global test setup
    +     * @return void
     	 */
     	public static function setUpBeforeClass()
     	{
    @@ -106,6 +107,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     
     	/**
     	 * Unit test setup
    +     * @return void
     	 */
     	public function setUp()
     	{
    @@ -115,6 +117,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     
     	/**
     	 * Verify pre conditions
    +     * @return void
     	 */
     	protected function assertPreConditions()
     	{
    @@ -122,6 +125,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     
     	/**
     	 * Handle Dolibarr authentication
    +     * @return void
     	 */
     	private function authenticate()
     	{
    @@ -142,6 +146,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     
     	/**
     	 * Test enabling developer mode
    +     * @return bool
     	 */
     	public function testEnableDeveloperMode()
     	{
    @@ -161,6 +166,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     	 * Test enabling the module
     	 *
     	 * @depends testEnableDeveloperMode
    +     * @return bool
     	 */
     	public function testModuleEnabled()
     	{
    @@ -186,6 +192,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     	 * Test access to the configuration page
     	 *
     	 * @depends testModuleEnabled
    +     * @return bool
     	 */
     	public function testConfigurationPage()
     	{
    @@ -198,6 +205,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     	 * Test access to the about page
     	 *
     	 * @depends testConfigurationPage
    +     * @return bool
     	 */
     	public function testAboutPage()
     	{
    @@ -210,6 +218,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     	 * Test about page is rendering Markdown
     	 *
     	 * @depends testAboutPage
    +     * @return bool
     	 */
     	public function testAboutPageRendersMarkdownReadme()
     	{
    @@ -226,6 +235,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     	 * Test box is properly declared
     	 *
     	 * @depends testModuleEnabled
    +     * @return bool
     	 */
     	public function testBoxDeclared()
     	{
    @@ -238,6 +248,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     	 * Test trigger is properly enabled
     	 *
     	 * @depends testModuleEnabled
    +     * @return bool
     	 */
     	public function testTriggerDeclared()
     	{
    @@ -254,6 +265,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     	 * Test trigger is properly declared
     	 *
     	 * @depends testTriggerDeclared
    +     * @return bool
     	 */
     	public function testTriggerEnabled()
     	{
    @@ -268,6 +280,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     
     	/**
     	 * Verify post conditions
    +     * @return void
     	 */
     	protected function assertPostConditions()
     	{
    @@ -275,6 +288,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     
     	/**
     	 * Unit test teardown
    +     * @return void
     	 */
     	public function tearDown()
     	{
    @@ -282,6 +296,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
     
     	/**
     	 * Global test teardown
    +     * @return void
     	 */
     	public static function tearDownAfterClass()
     	{
    diff --git a/htdocs/modulebuilder/template/test/phpunit/MyObjectTest.php b/htdocs/modulebuilder/template/test/phpunit/MyObjectTest.php
    index f2ea5b9934b..b62e2231313 100644
    --- a/htdocs/modulebuilder/template/test/phpunit/MyObjectTest.php
    +++ b/htdocs/modulebuilder/template/test/phpunit/MyObjectTest.php
    @@ -32,6 +32,7 @@ class MyObjectTest extends \PHPUnit_Framework_TestCase
     {
     	/**
     	 * Global test setup
    +     * @return void
     	 */
     	public static function setUpBeforeClass()
     	{
    @@ -40,6 +41,7 @@ class MyObjectTest extends \PHPUnit_Framework_TestCase
     
     	/**
     	 * Unit test setup
    +     * @return void
     	 */
     	protected function setUp()
     	{
    @@ -48,6 +50,7 @@ class MyObjectTest extends \PHPUnit_Framework_TestCase
     
     	/**
     	 * Verify pre conditions
    +     * @return void
     	 */
     	protected function assertPreConditions()
     	{
    @@ -56,6 +59,7 @@ class MyObjectTest extends \PHPUnit_Framework_TestCase
     
     	/**
     	 * A sample test
    +     * @return bool
     	 */
     	public function testSomething()
     	{
    @@ -66,6 +70,7 @@ class MyObjectTest extends \PHPUnit_Framework_TestCase
     
     	/**
     	 * Verify post conditions
    +     * @return void
     	 */
     	protected function assertPostConditions()
     	{
    @@ -74,6 +79,7 @@ class MyObjectTest extends \PHPUnit_Framework_TestCase
     
     	/**
     	 * Unit test teardown
    +     * @return void
     	 */
     	protected function tearDown()
     	{
    @@ -82,6 +88,7 @@ class MyObjectTest extends \PHPUnit_Framework_TestCase
     
     	/**
     	 * Global test teardown
    +     * @return void
     	 */
     	public static function tearDownAfterClass()
     	{
    @@ -92,6 +99,7 @@ class MyObjectTest extends \PHPUnit_Framework_TestCase
     	 * Unsuccessful test
     	 *
     	 * @param  Exception $e    Exception
    +     * @return void
     	 * @throws Exception
     	 */
     	protected function onNotSuccessfulTest(Exception $e)
    diff --git a/htdocs/multicurrency/class/multicurrency.class.php b/htdocs/multicurrency/class/multicurrency.class.php
    index 2881e23a21b..549f0fd411a 100644
    --- a/htdocs/multicurrency/class/multicurrency.class.php
    +++ b/htdocs/multicurrency/class/multicurrency.class.php
    @@ -20,15 +20,14 @@
      */
     
     /**
    - * \file    dev/skeletons/skeleton_class.class.php
    - * \ingroup mymodule othermodule1 othermodule2
    - * \brief   This file is an example for a CRUD class file (Create/Read/Update/Delete)
    - *          Put some comments here
    + * \file    htdocs/multicurrency/class/multicurrency.class.php
    + * \ingroup multicurrency
    + * \brief   This file is a CRUD class file (Create/Read/Update/Delete) for multicurrency
      */
     
     // Put here all includes required by your class file
    -require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
    -require_once DOL_DOCUMENT_ROOT ."/core/class/commonobjectline.class.php";
    +require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
    +require_once DOL_DOCUMENT_ROOT .'/core/class/commonobjectline.class.php';
     
     /**
      * Class Currency
    @@ -42,10 +41,12 @@ class MultiCurrency extends CommonObject
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'multicurrency';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'multicurrency';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
    @@ -60,26 +61,32 @@ class MultiCurrency extends CommonObject
     	 * @var mixed Sample property 1
     	 */
     	public $id;
    +
     	/**
     	 * @var mixed Sample property 1
     	 */
     	public $code;
    +
     	/**
     	 * @var mixed Sample property 2
     	 */
     	public $name;
    +
     	/**
    -	 * @var mixed Sample property 2
    +	 * @var int Entity
     	 */
     	public $entity;
    +
     	/**
     	 * @var mixed Sample property 2
     	 */
     	public $date_create;
    +
     	/**
     	 * @var mixed Sample property 2
     	 */
     	public $fk_user;
    +
     	/**
     	 * @var mixed Sample property 2
     	 */
    @@ -93,7 +100,7 @@ class MultiCurrency extends CommonObject
     	public function __construct(DoliDB $db)
     	{
     		$this->db = &$db;
    -		
    +
     		return 1;
     	}
     
    @@ -108,21 +115,21 @@ class MultiCurrency extends CommonObject
     	public function create(User $user, $trigger = true)
     	{
     		global $conf,$langs;
    -		
    +
     		dol_syslog('Currency::create', LOG_DEBUG);
     
     		$error = 0;
    -		
    +
     		if (self::checkCodeAlreadyExists($this->code))
     		{
     			$error++;
     			$this->errors[] = $langs->trans('multicurrency_code_already_added');
     			return -1;
     		}
    -		
    +
     		if (empty($this->entity) || $this->entity <= 0) $this->entity = $conf->entity;
     		$now=date('Y-m-d H:i:s');
    -		
    +
     		// Insert request
     		$sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . '(';
     		$sql .= ' code,';
    @@ -152,7 +159,7 @@ class MultiCurrency extends CommonObject
     			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element);
     			$this->date_create = $now;
     			$this->fk_user = $user->id;
    -			
    +
     			if ($trigger) {
     				$result=$this->call_trigger('CURRENCY_CREATE', $user);
     				if ($result < 0) $error++;
    @@ -181,7 +188,7 @@ class MultiCurrency extends CommonObject
     	public function fetch($id, $code = null)
     	{
     		dol_syslog('Currency::fetch', LOG_DEBUG);
    -		
    +
     		global $conf;
     
     		$sql = 'SELECT';
    @@ -192,7 +199,7 @@ class MultiCurrency extends CommonObject
     
     		dol_syslog(__METHOD__,LOG_DEBUG);
     		$resql = $this->db->query($sql);
    -		
    +
     		if ($resql) {
     			$numrows = $this->db->num_rows($resql);
     			if ($numrows) {
    @@ -204,7 +211,7 @@ class MultiCurrency extends CommonObject
     				$this->entity = $obj->entity;
     				$this->date_create = $obj->date_create;
     				$this->fk_user = $obj->fk_user;
    -				
    +
     				$this->fetchAllCurrencyRate();
     				$this->getRate();
     			}
    @@ -234,7 +241,7 @@ class MultiCurrency extends CommonObject
     		$sql.= ' FROM ' . MAIN_DB_PREFIX . $this->table_element_line. ' as cr';
     		$sql.= ' WHERE cr.fk_multicurrency = '.$this->id;
     		$sql.= ' ORDER BY cr.date_sync DESC';
    -		
    +
     		$this->rates = array();
     
     		dol_syslog(__METHOD__,LOG_DEBUG);
    @@ -245,7 +252,7 @@ class MultiCurrency extends CommonObject
     			while ($obj = $this->db->fetch_object($resql)) {
     				$rate = new CurrencyRate($this->db);
     				$rate->fetch($obj->rowid);
    -				
    +
     				$this->rates[] = $rate;
     			}
     			$this->db->free($resql);
    @@ -272,19 +279,19 @@ class MultiCurrency extends CommonObject
     		$error = 0;
     
     		dol_syslog('Currency::update', LOG_DEBUG);
    -		
    +
     		// Clean parameters
     		$this->name = trim($this->name);
     		$this->code = trim($this->code);
    -		
    +
     		// Check parameters
     		if (empty($this->code)) {
     			$error++;
     			dol_syslog('Currency::update $this->code can not be empty', LOG_ERR);
    -			
    +
     			return -1;
     		}
    -		
    +
     		// Update request
     		$sql = 'UPDATE ' . MAIN_DB_PREFIX . $this->table_element . ' SET';
     		$sql .= ' name=\''.$this->db->escape($this->name).'\'';
    @@ -328,7 +335,7 @@ class MultiCurrency extends CommonObject
     	public function delete($trigger = true)
     	{
     		global $user;
    -		
    +
     		dol_syslog('Currency::delete', LOG_DEBUG);
     
     		$error = 0;
    @@ -347,7 +354,7 @@ class MultiCurrency extends CommonObject
     				$this->errors[] = 'Error ' . $this->db->lasterror();
     				dol_syslog('Currency::delete  ' . join(',', $this->errors), LOG_ERR);
     			}
    -			
    +
     			$sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element;
     			$sql .= ' WHERE rowid=' . $this->id;
     
    @@ -371,7 +378,7 @@ class MultiCurrency extends CommonObject
     			return 1;
     		}
     	}
    -	
    +
     	/**
     	 * Delete rates in database
     	 *
    @@ -386,137 +393,136 @@ class MultiCurrency extends CommonObject
     				return false;
     			}
     		}
    -		
    +
     		return true;
     	}
    -	
    +
     	/**
    -	 * Delete rate in database 
    -	 * 
    +	 * Delete rate in database
    +	 *
     	 * @param double	$rate	rate value
    -	 * 
    +	 *
     	 * @return int -1 if KO, 1 if OK
     	 */
    -	 public function addRate($rate)
    -	 {
    +	public function addRate($rate)
    +	{
     	 	$currencyRate = new CurrencyRate($this->db);
     		$currencyRate->rate = $rate;
    -		
    -		if ($currencyRate->create($this->id) > 0) 
    +
    +		if ($currencyRate->create($this->id) > 0)
     		{
     			$this->rate = $currencyRate;
     			return 1;
     		}
    -		else 
    +		else
     		{
     			$this->rate = null;
     			return -1;
     		}
     	 }
    -	 
    -	 /**
    -	  * Try get label of code in llx_currency then add rate
    -	  * 
    -	  * @param	string	$code	currency code
    -	  * @param	double	$rate	new rate
    -	  * 
    -	  * @return int -1 if KO, 1 if OK, 2 if label found and OK
    -	  */
    +
    +	/**
    +	 * Try get label of code in llx_currency then add rate.
    +	 *
    +	 * @param	string	$code	currency code
    +	 * @param	double	$rate	new rate
    +	 *
    +	 * @return int -1 if KO, 1 if OK, 2 if label found and OK
    +	 */
     	function addRateFromDolibarr($code, $rate)
     	{
     	 	global $db, $user;
    -		
    +
     		$currency = new MultiCurrency($db);
     		$currency->code = $code;
     		$currency->name = $code;
    -		
    +
     	 	$sql = 'SELECT label FROM '.MAIN_DB_PREFIX.'c_currencies WHERE code_iso = \''.$db->escape($code).'\'';
    -	 	
    +
     	 	dol_syslog(__METHOD__,LOG_DEBUG);
     		$resql = $db->query($sql);
     		if ($resql && ($line = $db->fetch_object($resql)))
     		{
     			$currency->name = $line->label;
     		}
    -		
    +
     		if ($currency->create($user) > 0)
     		{
     			$currency->addRate($rate);
    -			
    +
     			if (!empty($line)) return 2;
     			else return 1;
     		}
    -		
    -		return -1;	
    +
    +		return -1;
     	}
    -	 
    +
     	 /**
     	 * Add new entry into llx_multicurrency_rate to historise
    -	 * 
    +	 *
     	 * @param double	$rate	rate value
    -	  * 
    +	  *
     	 * @return int <0 if KO, >0 if OK
     	 */
    -	 public function updateRate($rate)
    -	 {
    +	public function updateRate($rate)
    +	{
     	 	return $this->addRate($rate);
     	 }
    -	
    +
     	/**
    -	 * Fetch CurrencyRate object in $this->rate 
    -	 * 
    +	 * Fetch CurrencyRate object in $this->rate
    +	 *
     	 * @return int <0 if KO, 0 if not found, >0 if OK
     	 */
    -	 public function getRate()
    -	 {
    +	public function getRate()
    +	{
     	 	$sql = 'SELECT cr.rowid';
     		$sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element_line.' as cr';
     		$sql.= ' WHERE cr.fk_multicurrency = '.$this->id;
     		$sql.= ' AND cr.date_sync = (SELECT MAX(cr2.date_sync) FROM '.MAIN_DB_PREFIX.$this->table_element_line.' AS cr2 WHERE cr2.fk_multicurrency = '.$this->id.')';
    -		
    +
     		dol_syslog(__METHOD__,LOG_DEBUG);
     		$resql = $this->db->query($sql);
     		if ($resql && ($obj = $this->db->fetch_object($resql))) {
     			$this->rate = new CurrencyRate($this->db);
     			return $this->rate->fetch($obj->rowid);
     		}
    -		
     	 }
    -	 
    +
     	 /**
    -	 * Get id of currency from code 
    +	 * Get id of currency from code
     	 *
     	 * @param DoliDB	$db		object db
     	 * @param string	$code	code value search
    -	 * 
    +	 *
     	 * @return 0 if not found, >0 if OK
     	 */
    -	 public static function getIdFromCode(&$db, $code)
    -	 {
    +	public static function getIdFromCode(&$db, $code)
    +	{
     	 	global $conf;
    -		
    +
     	 	$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'multicurrency WHERE code = \''.$db->escape($code).'\' AND entity = '.$conf->entity;
    -	 	
    +
     	 	dol_syslog(__METHOD__,LOG_DEBUG);
     		$resql = $db->query($sql);
     		if ($resql && $obj = $db->fetch_object($resql)) return $obj->rowid;
     		else return 0;
     	 }
    -	 
    +
     	 /**
    -	 * Get id and rate of currency from code 
    -	 * 
    +	 * Get id and rate of currency from code
    +	 *
     	 * @param DoliDB	$db		object db
     	 * @param string	$code	code value search
     	 * @param date		$date_document	date from document (propal, order, invoice, ...)
    -	 * 
    +	 *
     	 * @return 	array	[0] => id currency
     	 *					[1] => rate
     	 */
    -	 public static function getIdAndTxFromCode(&$db, $code, $date_document='')
    -	 {
    +	public static function getIdAndTxFromCode(&$db, $code, $date_document='')
    +	{
     		global $conf;
    -		
    +
     	 	$sql1 = 'SELECT m.rowid, mc.rate FROM '.MAIN_DB_PREFIX.'multicurrency m';
     		$sql1.= ' LEFT JOIN '.MAIN_DB_PREFIX.'multicurrency_rate mc ON (m.rowid = mc.fk_multicurrency)';
     		$sql1.= ' WHERE m.code = \''.$db->escape($code).'\'';
    @@ -524,10 +530,10 @@ class MultiCurrency extends CommonObject
     		$sql2= '';
     		if (!empty($conf->global->MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE) && !empty($date_document)) $sql2.= ' AND DATE_FORMAT(mc.date_sync, "%Y-%m-%d") = "'.date('Y-m-d', $date_document).'"';
     		$sql3.= ' ORDER BY mc.date_sync DESC LIMIT 1';
    -		
    +
     		dol_syslog(__METHOD__,LOG_DEBUG);
     		$resql = $db->query($sql1.$sql2.$sql3);
    -		
    +
     		if ($resql && $obj = $db->fetch_object($resql)) return array($obj->rowid, $obj->rate);
     		else
     		{
    @@ -536,67 +542,67 @@ class MultiCurrency extends CommonObject
     				$resql = $db->query($sql1.$sql3);
     				if ($resql && $obj = $db->fetch_object($resql)) return array($obj->rowid, $obj->rate);
     			}
    -			
    +
     			return array(0, 1);
     		}
    -	 }  
    -	 
    +	 }
    +
     	 /**
     	  * Get the conversion of amount with invoice rate
    -	  * 
    +	  *
     	  * @param	int		$fk_facture		id of facture
     	  * @param	double	$amount			amount to convert
     	  * @param	string	$way			dolibarr mean the amount is in dolibarr currency
     	  * @param	string	$table			facture or facture_fourn
    -	  * 
     	  * @return	double					amount converted
     	  */
     	  public static function getAmountConversionFromInvoiceRate($fk_facture, $amount, $way='dolibarr', $table='facture')
     	  {
     		 global $db;
    -		 
    +
     		 $multicurrency_tx = self::getInvoiceRate($fk_facture, $table);
    -		 
    -		 if ($multicurrency_tx) 
    +
    +		 if ($multicurrency_tx)
     		 {
     		 	if ($way == 'dolibarr') return $amount * $multicurrency_tx;
     			else return $amount / $multicurrency_tx;
     		 }
     		 else return $amount;
     	  }
    -	  
    -	  /**
    -	   *  Get current invoite rate
    -	   * 
    -	   *  @param	int 	$fk_facture 	id of facture
    -	   *  @param 	string 	$table 			facture or facture_fourn
    -	   */
    -	   public static function getInvoiceRate($fk_facture, $table='facture')
    -	   {
    -		 global $db;
    -		 
    -		 $sql = 'SELECT multicurrency_tx FROM '.MAIN_DB_PREFIX.$table.' WHERE rowid = '.$fk_facture;
    -		 
    -		 dol_syslog(__METHOD__,LOG_DEBUG);
    -		 $resql = $db->query($sql);
    -		 if ($resql && ($line = $db->fetch_object($resql)))
    -		 {
    -		 	return $line->multicurrency_tx;
    -		 }
    -		 
    -		 return false;
    -	   }
    +
    +	/**
    +	 *  Get current invoite rate
    +	 *
    +	 *  @param	int 	$fk_facture 	id of facture
    +	 *  @param 	string 	$table 			facture or facture_fourn
    +     *  @return bool
    +	 */
    +	public static function getInvoiceRate($fk_facture, $table='facture')
    +	{
    +		global $db;
    +
    +		$sql = 'SELECT multicurrency_tx FROM '.MAIN_DB_PREFIX.$table.' WHERE rowid = '.$fk_facture;
    +
    +		dol_syslog(__METHOD__,LOG_DEBUG);
    +		$resql = $db->query($sql);
    +		if ($resql && ($line = $db->fetch_object($resql)))
    +		{
    +			return $line->multicurrency_tx;
    +		}
    +
    +		return false;
    +	}
     
     	/**
     	 * With free account we can't set source then recalcul all rates to force another source
    -	 * 
    -	 * @param	stdClass	$TRate	Object containing all currencies rates	
    +	 *
    +	 * @param   stdClass	$TRate	Object containing all currencies rates
     	 * @return	-1 if KO, 0 if nothing, 1 if OK
     	 */
    -	public static function  recalculRates(&$TRate)
    +	public static function recalculRates(&$TRate)
     	{
     		global $conf;
    -		
    +
     		if (!empty($conf->global->MULTICURRENCY_ALTERNATE_SOURCE))
     		{
     			$alternate_source = 'USD'.$conf->global->MULTICURRENCY_ALTERNATE_SOURCE;
    @@ -607,25 +613,26 @@ class MultiCurrency extends CommonObject
     				{
     					$rate *= $coef;
     				}
    -				
    +
     				return 1;
     			}
    -			
    +
     			return -1; // Alternate souce not found
     		}
    -		
    +
     		return 0; // Nothing to do
     	}
    -	
    +
     	/**
     	 *  Sync rates from api
    -	 * 
    +	 *
     	 *  @param 	array 	$response 	array of reponse from api to sync dolibarr rates
    +     * @return void
     	 */
     	public static function syncRates($response)
     	{
     		global $db,$conf;
    -		
    +
     		$ch = curl_init('http://apilayer.net/api/live?access_key='.$key.'');
                     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                     $response = curl_exec($ch);
    @@ -634,11 +641,11 @@ class MultiCurrency extends CommonObject
     
                     if ($response->success)
                     {
    -		
    +
     			$TRate = $response->quotes;
     			$timestamp = $response->timestamp;
     
    -			if (self::recalculRates($TRate) >= 0) 
    +			if (self::recalculRates($TRate) >= 0)
     			{
     				foreach ($TRate as $currency_code => $rate)
     				{
    @@ -648,11 +655,11 @@ class MultiCurrency extends CommonObject
     					{
     						$obj->updateRate($rate);
     					}
    -					else 
    +					else
     					{
     						self::addRateFromDolibarr($code, $rate);
     					}
    -				}	
    +				}
     			}
     		}
     		else
    @@ -660,21 +667,21 @@ class MultiCurrency extends CommonObject
     			setEventMessages($langs->trans('multicurrency_syncronize_error', $response->error->info), null, 'errors');
     		}
     	}
    -	
    +
     	/**
     	 * Check in database if the current code already exists
    -	 * 
    +	 *
     	 * @param	string	$code 	current code to search
     	 * @return	boolean         True if exists, false if not exists
     	 */
    -	 public static function checkCodeAlreadyExists($code)
    -	 {
    +	public static function checkCodeAlreadyExists($code)
    +	{
     	 	global $db;
    -		
    +
     	 	$currency = new MultiCurrency($db);
     		if ($currency->fetch('', $code) > 0) return true;
     		else return false;
    -	 }
    +	}
     }
     
     /**
    @@ -686,31 +693,37 @@ class CurrencyRate extends CommonObjectLine
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'multicurrency_rate';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'multicurrency_rate';
    +
     	/**
     	 * @var int ID
     	 */
     	public $id;
    +
     	/**
     	 * @var double Rate
     	 */
     	public $rate;
    +
     	/**
     	 * @var date Date synchronisation
     	 */
     	public $date_sync;
    +
     	/**
     	 * @var int Id of currency
     	 */
     	public $fk_multicurrency;
    +
     	/**
     	 * @var int Id of entity
     	 */
     	public $entity;
    -	
    +
     	/**
     	 * Constructor
     	 *
    @@ -719,10 +732,10 @@ class CurrencyRate extends CommonObjectLine
     	public function __construct(DoliDB $db)
     	{
     		$this->db = &$db;
    -		
    +
     		return 1;
     	}
    -	
    +
     	/**
     	 * Create object into database
     	 *
    @@ -734,14 +747,14 @@ class CurrencyRate extends CommonObjectLine
     	public function create($fk_multicurrency, $trigger = true)
     	{
     		global $conf, $user;
    -		
    +
     		dol_syslog('CurrencyRate::create', LOG_DEBUG);
     
     		$error = 0;
     		$this->rate = price2num($this->rate);
     		if (empty($this->entity) || $this->entity <= 0) $this->entity = $conf->entity;
     		$now=date('Y-m-d H:i:s');
    -		
    +
     		// Insert request
     		$sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . '(';
     		$sql .= ' rate,';
    @@ -769,7 +782,7 @@ class CurrencyRate extends CommonObjectLine
     			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element);
     			$this->fk_multicurrency = $fk_multicurrency;
     			$this->date_sync = $now;
    -			
    +
     			if ($trigger) {
     				$result=$this->call_trigger('CURRENCYRATE_CREATE', $user);
     				if ($result < 0) $error++;
    @@ -829,7 +842,7 @@ class CurrencyRate extends CommonObjectLine
     			return - 1;
     		}
     	}
    -	
    +
     	/**
     	 * Update object into database
     	 *
    @@ -840,13 +853,13 @@ class CurrencyRate extends CommonObjectLine
     	public function update($trigger = true)
     	{
     		global $user;
    -		
    +
     		$error = 0;
     
     		dol_syslog('CurrencyRate::update', LOG_DEBUG);
    -		
    +
     		$this->rate = price2num($this->rate);
    -		
    +
     		// Update request
     		$sql = 'UPDATE ' . MAIN_DB_PREFIX . $this->table_element . ' SET';
     		$sql .= ' rate='.$this->rate;
    @@ -878,7 +891,7 @@ class CurrencyRate extends CommonObjectLine
     			return 1;
     		}
     	}
    -	
    +
     	/**
     	 * Delete object in database
     	 *
    @@ -889,7 +902,7 @@ class CurrencyRate extends CommonObjectLine
     	public function delete($trigger = true)
     	{
     		global $user;
    -		
    +
     		dol_syslog('CurrencyRate::delete', LOG_DEBUG);
     
     		$error = 0;
    @@ -925,5 +938,4 @@ class CurrencyRate extends CommonObjectLine
     			return 1;
     		}
     	}
    -	
     }
    diff --git a/htdocs/opensurvey/card.php b/htdocs/opensurvey/card.php
    index fda06d67012..2a2b3f85ae4 100644
    --- a/htdocs/opensurvey/card.php
    +++ b/htdocs/opensurvey/card.php
    @@ -1,6 +1,7 @@
     <?php
    -/* Copyright (C) 2013-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2014      Marcos García		<marcosgdf@gmail.com>
    +/* Copyright (C) 2013-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2014       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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,12 +23,12 @@
      *	\brief      Page to edit survey
      */
     
    -require_once('../main.inc.php');
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/class/doleditor.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php");
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/doleditor.class.php";
    +require_once DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php";
    +require_once DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php";
     
     
     // Security check
    @@ -306,7 +307,7 @@ print '</td></tr>';
     
     // Expire date
     print '<tr><td>'.$langs->trans('ExpireDate').'</td><td colspan="2">';
    -if ($action == 'edit') print $form->select_date($expiredate?$expiredate:$object->date_fin,'expire',0,0,0,'',1,0,1);
    +if ($action == 'edit') print $form->selectDate($expiredate?$expiredate:$object->date_fin, 'expire', 0, 0, 0, '', 1, 0);
     else
     {
         print dol_print_date($object->date_fin,'day');
    @@ -430,6 +431,6 @@ if ($object->allow_comments) {
     
     print '</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/opensurvey/class/opensurveysondage.class.php b/htdocs/opensurvey/class/opensurveysondage.class.php
    index a2b6096d77c..807d550e35c 100644
    --- a/htdocs/opensurvey/class/opensurveysondage.class.php
    +++ b/htdocs/opensurvey/class/opensurveysondage.class.php
    @@ -24,9 +24,9 @@
      */
     
     // Put here all includes required by your class file
    -require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php");
    -//require_once(DOL_DOCUMENT_ROOT."/societe/class/societe.class.php");
    -//require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php");
    +require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php";
    +//require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php";
    +//require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php";
     
     
     /**
    @@ -34,8 +34,16 @@ require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php");
      */
     class Opensurveysondage extends CommonObject
     {
    -	public $element='opensurvey_sondage';			//!< Id that identify managed objects
    -	public $table_element='opensurvey_sondage';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='opensurvey_sondage';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='opensurvey_sondage';
    +
         public $picto = 'opensurvey';
     
     	public $id_sondage;
    @@ -44,6 +52,10 @@ class Opensurveysondage extends CommonObject
     	 * @see description
     	 */
     	public $commentaires;
    +
    +	/**
    +	 * @var string description
    +	 */
     	public $description;
     
     	public $mail_admin;
    @@ -99,7 +111,6 @@ class Opensurveysondage extends CommonObject
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    @@ -127,7 +138,6 @@ class Opensurveysondage extends CommonObject
     
             // Insert request
     		$sql = "INSERT INTO ".MAIN_DB_PREFIX."opensurvey_sondage(";
    -
     		$sql.= "id_sondage,";
     		$sql.= "commentaires,";
     		$sql.= "fk_user_creat,";
    @@ -140,7 +150,6 @@ class Opensurveysondage extends CommonObject
     		$sql.= "allow_spy,";
     		$sql.= "sujet";
             $sql.= ") VALUES (";
    -
     		$sql.= "'".$this->db->escape($this->id_sondage)."',";
     		$sql.= " ".(empty($this->commentaires)?'NULL':"'".$this->db->escape($this->commentaires)."'").",";
     		$sql.= " ".$user->id.",";
    @@ -152,7 +161,6 @@ class Opensurveysondage extends CommonObject
     		$sql.= " ".$this->db->escape($this->allow_comments).",";
     		$sql.= " ".$this->db->escape($this->allow_spy).",";
     		$sql.= " '".$this->db->escape($this->sujet)."'";
    -
     		$sql.= ")";
     
     		$this->db->begin();
    @@ -218,7 +226,7 @@ class Opensurveysondage extends CommonObject
     		$sql.= " t.sujet,";
     		$sql.= " t.tms";
             $sql.= " FROM ".MAIN_DB_PREFIX."opensurvey_sondage as t";
    -        $sql.= " WHERE t.id_sondage = '".$this->db->escape($numsurvey)."'";
    +        $sql.= " WHERE t.id_sondage = '".$this->db->escape($id ? $id : $numsurvey)."'";
     
         	dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
             $resql=$this->db->query($sql);
    @@ -348,11 +356,16 @@ class Opensurveysondage extends CommonObject
          *  @param	string	$numsondage			Num sondage admin to delete
          *  @return	int					 		<0 if KO, >0 if OK
          */
    -    function delete(User $user, $notrigger, $numsondage)
    +    function delete(User $user, $notrigger=0, $numsondage='')
         {
     		global $conf, $langs;
     		$error=0;
     
    +		if (empty($numsondage))
    +		{
    +		    $numsondage = $this->id_sondage;
    +		}
    +
     		$this->db->begin();
     
     		if (! $error)
    @@ -459,6 +472,7 @@ class Opensurveysondage extends CommonObject
     		return $result;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return array of lines
     	 *
    @@ -466,6 +480,7 @@ class Opensurveysondage extends CommonObject
     	 */
     	function fetch_lines()
     	{
    +        // phpcs:enable
     		$ret=array();
     
     		$sql = "SELECT id_users, nom as name, reponses FROM ".MAIN_DB_PREFIX."opensurvey_user_studs";
    @@ -614,6 +629,7 @@ class Opensurveysondage extends CommonObject
     	    return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return label of status
     	 *
    @@ -623,6 +639,7 @@ class Opensurveysondage extends CommonObject
     	 */
     	function LibStatut($status,$mode)
     	{
    +        // phpcs:enable
     	    global $langs, $conf;
     
     	    //print 'x'.$status.'-'.$billed;
    @@ -663,5 +680,4 @@ class Opensurveysondage extends CommonObject
     	        if ($status==self::STATUS_CLOSED) return '<span class="hideonsmartphone">'.$langs->trans('Closed').' </span>'.img_picto($langs->trans('Closed'),'statut6');
     	    }
     	}
    -
     }
    diff --git a/htdocs/opensurvey/css/style.css b/htdocs/opensurvey/css/style.css
    index 7e359bd134e..ab17de0a0ac 100644
    --- a/htdocs/opensurvey/css/style.css
    +++ b/htdocs/opensurvey/css/style.css
    @@ -1,6 +1,6 @@
     /* Copyright (C) 2004-2015	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2006		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2007-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2012		Juanjo Menent			<jmenent@2byte.es>
      *
    @@ -104,10 +104,10 @@ borghesi@unistra.fr
     Ce logiciel est régi par la licence CeCILL-B soumise au droit français et
     respectant les principes de diffusion des logiciels libres. Vous pouvez
     utiliser, modifier et/ou redistribuer ce programme sous les conditions
    -de la licence CeCILL-B telle que diffusée par le CEA, le CNRS et l'INRIA 
    +de la licence CeCILL-B telle que diffusée par le CEA, le CNRS et l'INRIA
     sur le site "http://www.cecill.info".
     
    -Le fait que vous puissiez accéder à cet en-tête signifie que vous avez 
    +Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
     pris connaissance de la licence CeCILL-B, et que vous en avez accepté les
     termes. Vous pouvez trouver une copie de la licence dans le fichier LICENCE.
     
    @@ -120,10 +120,10 @@ Creation : Feb 2008
     borghesi@unistra.fr
     
     This software is governed by the CeCILL-B license under French law and
    -abiding by the rules of distribution of free software. You can  use, 
    +abiding by the rules of distribution of free software. You can  use,
     modify and/ or redistribute the software under the terms of the CeCILL-B
     license as circulated by CEA, CNRS and INRIA at the following URL
    -"http://www.cecill.info". 
    +"http://www.cecill.info".
     
     The fact that you are presently reading this means that you have had
     knowledge of the CeCILL-B license and that you accept its terms. You can
    @@ -133,12 +133,12 @@ find a copy of this license in the file LICENSE.
     */
     
     /*
    -Le fichier style.css est le fichier de style de studs. Il se trouve à la racine 
    +Le fichier style.css est le fichier de style de studs. Il se trouve à la racine
     du répertoire studs. Il contient toutes les mises en forme des fichiers PHP
     de Studs.
     */
     /*bandeau de titre*/
    -div.bandeau{ 
    +div.bandeau{
     	line-height:35px;
     	text-align:center;
     	background-color: #0b419b;
    @@ -146,7 +146,7 @@ div.bandeau{
     	vertical-align:middle;
     	font-size:35px;
     	font-family:arial, sans-serif;
    -	padding:8px; 
    +	padding:8px;
     	height:35px;
     	position:static;
     	top:6px;
    @@ -154,30 +154,30 @@ div.bandeau{
     	right:6px;
     
     }
    -div.logo{ 
    +div.logo{
     	height:64px;
     	float:right;
     	top:8px;
     	right:8px;
     	margin-left: 0;
    -	margin-right:0; 
    +	margin-right:0;
     	margin-bottom:auto;
     }
     /*Sous bandeau avec bouton de navigation*/
    -div.bandeautitre{ 
    +div.bandeautitre{
     	height:17px;
     	font-size:14px;
     	font-weight:bold;
     	text-align:center;
     	vertical-align:middle;
     	font-family:arial, sans-serif;
    - 	padding:3px; 
    + 	padding:3px;
     	position:static;
     	top:57px;
     	left:6px;
     	right:6px;
    -} 
    -div.sousbandeau{ 
    +}
    +div.sousbandeau{
     	height:17px;
     	background-color: #DDDDDD;
     	font-size:11px;
    @@ -191,15 +191,15 @@ div.sousbandeau{
     	right:6px;
     }
     /*bandeau de pied*/
    -div.surbandeaupied{ 
    +div.surbandeaupied{
     	background-color: #0077DD;
     	position:absolute;
     	bottom:30px;
     	left:6px;
    -	right:6px; 
    +	right:6px;
     	height:6px;
     }
    -div.bandeaupied{ 
    +div.bandeaupied{
     	text-align:center;
     	background-color: #0b419b;
     	color:white;
    @@ -209,29 +209,29 @@ div.bandeaupied{
     	position:fixed;
     	bottom:6px;
     	left:6px;
    -	right:6px; 
    +	right:6px;
     	margin:2px;
     }
    -div.surbandeaupiedmobile{ 
    +div.surbandeaupiedmobile{
     	background-color: #0077DD;
    -	position:static; 
    +	position:static;
     	bottom:32px;
     	left:6px;
    -	right:6px; 
    +	right:6px;
     	height:6px;
     }
    -div.bandeaupiedmobile{ 
    +div.bandeaupiedmobile{
     	text-align:center;
     	background-color: #0b419b;
     	color:white;
     	font-size:11px;
     	font-family:arial, sans-serif;
    -	padding:6px; 
    -	position:static; 
    +	padding:6px;
    +	position:static;
     }
     /*les boutons se trouvant dans le sousbandeau*/
     div.sousbandeau a, div.sousbandeau span.sousbandeaulangue a {
    - 	background-color: #0b419b; 
    + 	background-color: #0b419b;
     	height:16px;
     	padding: 2px 6px 2px 6px;
     	vertical-align:middle;
    @@ -249,7 +249,7 @@ span.sousbandeaulangue {
     	float:right;
     }
     /*corps de la page index.php*/
    -div.corps{ 
    +div.corps{
     	font-size:12px;
     	font-family:arial, sans-serif;
     	position:static;
    @@ -257,10 +257,10 @@ div.corps{
     }
     div.corps  table{
     	font-family:arial, sans-serif;
    -	font-size:12px;	
    +	font-size:12px;
     	font-weight:bold;
     }
    -div.corpscentre{ 
    +div.corpscentre{
     	font-size:12px;
     	font-family:arial, sans-serif;
     	text-align:center;
    @@ -285,7 +285,7 @@ div.jourschoisis {
     div.bodydate {
     	padding:10px;
     	font-family:arial, sans-serif;
    -	font-size:12px;	
    +	font-size:12px;
     	text-align:center;
     	position:static;
     	top:330px;
    @@ -294,7 +294,7 @@ div.bodydate {
     }
     div.bodydate table{
     	font-family:arial, sans-serif;
    -	font-size:12px;	
    +	font-size:12px;
     	font-weight:bold;
     }
     /*cadre de commentaires*/
    @@ -302,7 +302,7 @@ div.presentationdate {
     	width:100%;
     	font-family:arial, sans-serif;
     	text-align:center;
    -	font-size:12px;	
    +	font-size:12px;
     	border-top:1px solid;
     	border-bottom:1px solid;
     	border-left: none;
    @@ -321,14 +321,14 @@ div.presentationdatefin {
         border: 1px solid;
         margin-top: 10px;
     	margin-left: 30%;
    -    margin-right: 30%; 
    +    margin-right: 30%;
     	position:static;
     }
     /*cadre principal de studs.php*/
     div.cadre {
    -	padding:10px; 
    +	padding:10px;
     	font-family:arial, sans-serif;
    -	font-size:12px;	
    +	font-size:12px;
     	position:static;
     	top:235px;
     	text-align:center;
    @@ -350,54 +350,54 @@ div.cadre td {
     }
     /*case de tableau OK dans affichage de sondage*/
     div.cadre td.ok {
    -	background-color: #66FF99; 
    -	font-size:12px;	
    +	background-color: #66FF99;
    +	font-size:12px;
     	text-align:center;
     }
     /*Case de tableau NON dans affichage de sondage*/
     div.cadre td.non {
    -	background-color: #FF7777; 
    +	background-color: #FF7777;
     	min-width: 60px;
     }
     /*Case de tableau VIDE dans affichage de sondage*/
     div.cadre td.vide {
    -	background-color: #DDDDDD; 
    +	background-color: #DDDDDD;
     	text-align:center;
     }
     /*Case de tableau contenant les noms dans affichage de sondage*/
     div.cadre td.nom {
    -	background-color: #DDDDDD; 
    -	font-size:12px;	 
    +	background-color: #DDDDDD;
    +	font-size:12px;
     	text-align:center;
     }
     div.cadre td.casevide {
    -	background-color: white; 
    +	background-color: white;
     	text-align:center;
     }
     /*les cases contenant les sommes de chaque colonne dans l'affichage de calendrier*/
     div.cadre td.somme {
     	font-weight:  bold;
    -	font-size:14px; 
    +	font-size:14px;
     }
     
     /*Case de tableau SUJET dans affichage de sondage*/
     div.cadre td.sujet, div.cadre td.jour, div.cadre td.heure {
     	border: 2px;
    -	background-color: #DDDDDD; 
    +	background-color: #DDDDDD;
     	font-size:14px;
     	padding:1px 5px;
     }
     
     div.cadre td.annee {
     	border: 2px;
    -	background-color: #969696; 
    +	background-color: #969696;
     	font-weight: bold;
     	font-size:14px;
     	padding:1px 5px;
     }
     div.cadre td.mois {
     	border: 2px;
    -	background-color: #C0C0C0; 
    +	background-color: #C0C0C0;
     	font-weight: bold;
     	font-size:14px;
     	padding:1px 5px;
    @@ -421,7 +421,7 @@ div.calendrier td.joursemaine {
     	font-family:arial, sans-serif;
     	font-size:14px;
     	border: 2px;
    -	background-color: white; 
    +	background-color: white;
     }
     div.calendrier td.jourwe {
     	width:65px;
    @@ -429,7 +429,7 @@ div.calendrier td.jourwe {
     	font-family:arial, sans-serif;
     	font-size:14px;
     	border: 2px;
    -	background-color: #C0C0C0; 
    +	background-color: #C0C0C0;
     }
     /*jour avant le premier jour du mois dans calendrier*/
     div.calendrier td.avant {
    @@ -438,21 +438,21 @@ div.calendrier td.avant {
     	border: 2px;
     	font-family:arial, sans-serif;
     	font-size:13px;
    -	background-color: #DDDDDD; 
    +	background-color: #DDDDDD;
     }
     /*jour libre dans calendrier*/
     div.calendrier td.libre {
     	width:65px;
     	text-align: center;
     	border: 2px;
    -	background-color: #66FF99; 
    +	background-color: #66FF99;
     }
     /*jour deja selectionné dans calendrier*/
     div.calendrier td.choisi {
     	width:65px;
     	text-align: center;
     	border: 2px;
    -	background-color: #0077DD; 
    +	background-color: #0077DD;
     }
     /* Le paragraphe de fin */
     p.affichageresultats{
    diff --git a/htdocs/opensurvey/exportcsv.php b/htdocs/opensurvey/exportcsv.php
    index 90fd56cd4d1..b36a5256059 100644
    --- a/htdocs/opensurvey/exportcsv.php
    +++ b/htdocs/opensurvey/exportcsv.php
    @@ -23,10 +23,10 @@
      */
     
     
    -require_once('../main.inc.php');
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php");
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php";
     
     $action=GETPOST('action','aZ09');
     $numsondage = '';
    diff --git a/htdocs/opensurvey/fonctions.php b/htdocs/opensurvey/fonctions.php
    index 84b33297fbb..3df5b37c88f 100644
    --- a/htdocs/opensurvey/fonctions.php
    +++ b/htdocs/opensurvey/fonctions.php
    @@ -29,7 +29,8 @@
      * @param Opensurveysondage $object Current viewing poll
      * @return array Tabs for the opensurvey section
      */
    -function opensurvey_prepare_head(Opensurveysondage $object) {
    +function opensurvey_prepare_head(Opensurveysondage $object)
    +{
     
     	global $langs, $conf;
     
    @@ -78,7 +79,7 @@ function llxHeaderSurvey($title, $head="", $disablejs=0, $disablehead=0, $arrayo
     	// Print logo
     	if ($mysoc->logo) {
     		if (file_exists($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small)) {
    -			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file=thumbs/'.urlencode($mysoc->logo_small);
    +			$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_small);
     		}
     	}
     
    diff --git a/htdocs/opensurvey/index.php b/htdocs/opensurvey/index.php
    index 663d4ad704a..4c60a807445 100644
    --- a/htdocs/opensurvey/index.php
    +++ b/htdocs/opensurvey/index.php
    @@ -21,9 +21,9 @@
      *	\brief      Home page of opensurvey area
      */
     
    -require_once('../main.inc.php');
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
     
     // Security check
     if (!$user->rights->opensurvey->read) accessforbidden();
    @@ -78,8 +78,6 @@ print '</table>';
     
     print '</div></div></div>';
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/opensurvey/list.php b/htdocs/opensurvey/list.php
    index 0471abcddb9..93086de389f 100644
    --- a/htdocs/opensurvey/list.php
    +++ b/htdocs/opensurvey/list.php
    @@ -22,13 +22,13 @@
      *	\brief      Page to list surveys
      */
     
    -require_once('../main.inc.php');
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php");
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php";
     
    -// Security check
    -if (!$user->rights->opensurvey->read) accessforbidden();
    +// Load translation files required by the page
    +$langs->load("opensurvey");
     
     $action     = GETPOST('action','aZ09')?GETPOST('action','aZ09'):'view';				// The action 'add', 'create', 'edit', 'update', 'view', ...
     $massaction = GETPOST('massaction','alpha');											// The bulk action (combo box choice into lists)
    @@ -41,7 +41,6 @@ $backtopage = GETPOST('backtopage','alpha');											// Go back to a dedicated
     $optioncss  = GETPOST('optioncss','aZ');												// Option for the css output (always '' except when 'print')
     
     $id=GETPOST('id','alpha');
    -$numsondage= $id;
     $search_ref = GETPOST('search_ref', 'alpha');
     $search_title = GETPOST('search_title', 'alpha');
     $search_status = GETPOST('search_status', 'alpha');
    @@ -51,26 +50,87 @@ $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
     $sortfield = GETPOST('sortfield','alpha');
     $sortorder = GETPOST('sortorder','alpha');
     $page = GETPOST('page','int');
    -if (empty($page) || $page == -1) { $page = 0; }     // If $page is not defined, or '' or -1
    +if (empty($page) || $page == -1 || GETPOST('button_search','alpha') || GETPOST('button_removefilter','alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; }     // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action
     $offset = $limit * $page;
     $pageprev = $page - 1;
     $pagenext = $page + 1;
    +
    +// Initialize technical objects
    +$object = new Opensurveysondage($db);
    +$opensurvey_static = new Opensurveysondage($db);
    +
    +$extrafields = new ExtraFields($db);
    +$diroutputmassaction = $conf->opensurvey->dir_output . '/temp/massgeneration/'.$user->id;
    +$hookmanager->initHooks(array('surveylist'));     // Note that conf->hooks_modules contains array
    +// Fetch optionals attributes and labels
    +$extralabels = $extrafields->fetch_name_optionals_label('survey');	// Load $extrafields->attributes['myobject']
    +$search_array_options = $extrafields->getOptionalsFromPost($object->table_element,'','search_');
    +
    +// Default sort order (if not yet defined by previous GETPOST)
     if (! $sortfield) $sortfield="p.date_fin";
     if (! $sortorder) $sortorder="DESC";
     
    -// Load translation files required by the page
    -$langs->load("opensurvey");
    +// Security check
    +if (!$user->rights->opensurvey->read) accessforbidden();
    +
    +// Definition of fields for list
    +$arrayfields=array();
    +foreach($object->fields as $key => $val)
    +{
    +    // If $val['visible']==0, then we never show the field
    +    if (! empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>$val['enabled'], 'position'=>$val['position']);
    +}
    +// Extra fields
    +if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0)
    +{
    +    foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val)
    +    {
    +        if (! empty($extrafields->attributes[$object->table_element]['list'][$key]))
    +            $arrayfields["ef.".$key]=array('label'=>$extrafields->attributes[$object->table_element]['label'][$key], 'checked'=>(($extrafields->attributes[$object->table_element]['list'][$key]<0)?0:1), 'position'=>$extrafields->attributes[$object->table_element]['pos'][$key], 'enabled'=>(abs($extrafields->attributes[$object->table_element]['list'][$key])!=3 && $extrafields->attributes[$object->table_element]['perms'][$key]));
    +    }
    +}
    +$object->fields = dol_sort_array($object->fields, 'position');
    +$arrayfields = dol_sort_array($arrayfields, 'position');
     
     
     /*
      * Actions
      */
     
    -if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
    +if (GETPOST('cancel','alpha')) { $action='list'; $massaction=''; }
    +if (! GETPOST('confirmmassaction','alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; }
    +
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +if (empty($reshook))
     {
    -	$search_status='';
    -	$search_title='';
    -	$search_ref='';
    +    // Selection of new fields
    +    include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
    +
    +    // Purge search criteria
    +    if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') ||GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
    +    {
    +        $search_status='';
    +        $search_title='';
    +        $search_ref='';
    +        $toselect='';
    +        $search_array_options=array();
    +    }
    +    if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')
    +        || GETPOST('button_search_x','alpha') || GETPOST('button_search.x','alpha') || GETPOST('button_search','alpha'))
    +    {
    +        $massaction='';     // Protection to avoid mass action if we force a new search during a mass action confirmation
    +    }
    +
    +    // Mass actions
    +    $objectclass='Opensurveysondage';
    +    $objectlabel='Opensurveysondage';
    +    $permtoread = $user->rights->opensurvey->read;
    +    $permtodelete = $user->rights->opensurvey->write;
    +    $uploaddir = $conf->opensurvey->dir_output;
    +    include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
     }
     
     
    @@ -79,40 +139,15 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
      */
     
     $form=new Form($db);
    -$opensurvey_static = new Opensurveysondage($db);
     
     $now = dol_now();
     
    -llxHeader('', $langs->trans("OpenSurveyArea"));
    -
    -$param='';
    -$fieldtosortuser=empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)?'firstname':'lastname';
    +//$help_url="EN:Module_MyObject|FR:Module_MyObject_FR|ES:Módulo_MyObject";
    +$help_url='';
    +$title = $langs->trans('OpenSurveyArea');
     
     
    -
    -
    -
    -
    -
    -
    -
    -
    -$newcardbutton='';
    -if (!$user->rights->opensurvey->creer)
    -{
    -	$newcardbutton='<a class="butActionNew" href="'.DOL_URL_ROOT.'/opensurvey/wizard/index.php"><span class="valignmiddle">'.$langs->trans('NewSurvey').'</span>';
    -	$newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    -	$newcardbutton.= '</a>';
    -}
    -else
    -{
    -	$newcardbutton='<a class="butActionNewRefused" href="#">'.$langs->trans('NewSurvey');
    -	$newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    -	$newcardbutton.= '</a>';
    -}
    -
    -
    -$sql = "SELECT p.id_sondage, p.fk_user_creat, p.format, p.date_fin, p.status, p.titre, p.nom_admin,";
    +$sql = "SELECT p.id_sondage as rowid, p.fk_user_creat, p.format, p.date_fin, p.status, p.titre, p.nom_admin,";
     $sql.= " u.login, u.firstname, u.lastname";
     $sql.= " FROM ".MAIN_DB_PREFIX."opensurvey_sondage as p";
     $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user u ON u.rowid = p.fk_user_creat";
    @@ -122,44 +157,124 @@ if ($search_expired == 'expired') $sql.=" AND p.date_fin < '".$db->idate($now)."
     if ($search_expired == 'opened')  $sql.=" AND p.date_fin >= '".$db->idate($now)."'";
     if ($search_ref) $sql.=natural_search("p.id_sondage", $search_ref);
     if ($search_title) $sql.=natural_search("p.titre", $search_title);
    -$sql.= $db->order($sortfield,$sortorder);
    +// Add where from extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
    +// Add where from hooks
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +$sql.=$hookmanager->resPrint;
    +
    +$sql.=$db->order($sortfield,$sortorder);
     
     // Count total nb of records
     $nbtotalofrecords = '';
     if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
     {
    -	$result = $db->query($sql);
    -	$nbtotalofrecords = $db->num_rows($result);
    -	if (($page * $limit) > $nbtotalofrecords)	// if total resultset is smaller then paging size (filtering), goto and load page 0
    +	$resql = $db->query($sql);
    +	$nbtotalofrecords = $db->num_rows($resql);
    +	if (($page * $limit) > $nbtotalofrecords)	// if total of record found is smaller than page * limit, goto and load page 0
     	{
     		$page = 0;
     		$offset = 0;
     	}
     }
    +// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set.
    +if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords)
    +{
    +	$num = $nbtotalofrecords;
    +}
    +else
    +{
    +    $sql.= $db->plimit($limit+1, $offset);
     
    -$sql.= $db->plimit($limit+1, $offset);
    +    $resql=$db->query($sql);
    +    if (! $resql)
    +    {
    +        dol_print_error($db);
    +        exit;
    +    }
     
    -$resql=$db->query($sql);
    -if (! $resql) dol_print_error($db);
    +    $num = $db->num_rows($resql);
    +}
     
    -$num=$db->num_rows($resql);
    +// Direct jump if only one record found
    +if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all)
    +{
    +	$obj = $db->fetch_object($resql);
    +	$id = $obj->rowid;
    +	header("Location: ".dol_buildpath('/opensurvey/card.php', 1).'?id='.$id);
    +	exit;
    +}
     
     
    +llxHeader('', $title, $help_url);
     
    +$arrayofselected=is_array($toselect)?$toselect:array();
    +
    +$param='';
    +if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
    +if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
    +$fieldtosortuser=empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)?'firstname':'lastname';
    +
    +if ($optioncss != '')     $param.='&optioncss='.urlencode($optioncss);
    +// Add $param from extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
    +
    +// List of mass actions available
    +$arrayofmassactions =  array(
    +    //'presend'=>$langs->trans("SendByMail"),
    +    //'builddoc'=>$langs->trans("PDFMerge"),
    +);
    +if ($user->rights->opensurvey->write) $arrayofmassactions['predelete']=$langs->trans("Delete");
    +if (GETPOST('nomassaction','int') || in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    +$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
     
     
     // List of surveys into database
     
    -print '<form action="'.$_SERVER["PHP_SELF"].'" method="post" name="formulaire">';
    +print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
    +if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
     print '<input type="hidden" name="action" value="list">';
     print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
     print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
     print '<input type="hidden" name="page" value="'.$page.'">';
    +print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
     
    -print_barre_liste($langs->trans("OpenSurveyArea"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionsbutton, $num, $nbtotalofrecords, 'title_generic.png', 0, $newcardbutton, '', $limit);
    +$newcardbutton='';
    +if (! empty($user->rights->opensurvey->write))
    +{
    +    $newcardbutton='<a class="butActionNew" href="'.DOL_URL_ROOT.'/opensurvey/wizard/index.php"><span class="valignmiddle">'.$langs->trans('NewSurvey').'</span>';
    +    $newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    +    $newcardbutton.= '</a>';
    +}
    +else
    +{
    +    $newcardbutton='<a class="butActionNewRefused" href="#">'.$langs->trans('NewSurvey');
    +    $newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    +    $newcardbutton.= '</a>';
    +}
    +
    +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_generic.png', 0, $newcardbutton, '', $limit);
    +
    +// Add code for pre mass action (confirmation or email presend form)
    +$topicmail="SendOpenSurveyRef";
    +$modelmail="opensurvey";
    +$objecttmp=new Opensurveysondage($db);
    +$trackid='surv'.$object->id;
    +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
    +
    +if ($sall)
    +{
    +    foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
    +    print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall).'</div>';
    +}
     
     $moreforfilter = '';
    +/*$moreforfilter.='<div class="divsearchfield">';
    +$moreforfilter.= $langs->trans('MyFilter') . ': <input type="text" name="search_myfield" value="'.dol_escape_htmltag($search_myfield).'">';
    +$moreforfilter.= '</div>';*/
     
     $parameters=array();
     $reshook=$hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object);    // Note that $action and $object may have been modified by hook
    @@ -174,7 +289,8 @@ if (! empty($moreforfilter))
     }
     
     $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);	// This also change content of $arrayfields
    +$selectedfields='';
     $selectedfields.=(count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : '');
     
     print '<div class="div-table-responsive">';
    @@ -191,12 +307,21 @@ print '<td class="liste_titre"></td>';
     print '<td class="liste_titre"></td>';
     $arraystatus=array('-1'=>'&nbsp;','0'=>$langs->trans("Draft"),'1'=>$langs->trans("Opened"),'2'=>$langs->trans("Closed"));
     print '<td class="liste_titre" align="center">'. $form->selectarray('search_status', $arraystatus, $search_status).'</td>';
    +// Extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
    +
    +// Fields from hook
    +$parameters=array('arrayfields'=>$arrayfields);
    +$reshook=$hookmanager->executeHooks('printFieldListOption', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +// Action column
     print '<td class="liste_titre" align="right">';
     $searchpicto=$form->showFilterButtons();
     print $searchpicto;
     print '</td>';
     print '</tr>'."\n";
     
    +
     // Fields title label
     // --------------------------------------------------------------------
     print '<tr class="liste_titre">';
    @@ -207,7 +332,13 @@ print_liste_field_titre("Author", $_SERVER["PHP_SELF"], "u.".$fieldtosortuser, $
     print_liste_field_titre("NbOfVoters", $_SERVER["PHP_SELF"], "", $param,"",'align="right"',$sortfield,$sortorder);
     print_liste_field_titre("ExpireDate", $_SERVER["PHP_SELF"], "p.date_fin", $param,"",'align="center"',$sortfield,$sortorder);
     print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "p.status", $param,"",'align="center"',$sortfield,$sortorder);
    -print_liste_field_titre('');
    +// Extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
    +// Hook fields
    +$parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder);
    +$reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"],'','','','align="center"',$sortfield,$sortorder,'maxwidthsearch ')."\n";
     print '</tr>'."\n";
     
     
    @@ -230,8 +361,8 @@ while ($i < min($num, $limit))
     	}
     	else dol_print_error($db);
     
    -	$opensurvey_static->id=$obj->id_sondage;
    -	$opensurvey_static->ref=$obj->id_sondage;
    +	$opensurvey_static->id=$obj->rowid;
    +	$opensurvey_static->ref=$obj->rowid;
     	$opensurvey_static->title=$obj->titre;
     	$opensurvey_static->status=$obj->status;
     	$opensurvey_static->date_fin=$db->jdate($obj->date_fin);
    @@ -278,24 +409,87 @@ while ($i < min($num, $limit))
     
     	print'<td align="center">'.$opensurvey_static->getLibStatut(5).'</td>'."\n";
     
    -	print'<td align="center"></td>'."\n";
    +	// Extra fields
    +	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
    +	// Fields from hook
    +	$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
    +	$reshook=$hookmanager->executeHooks('printFieldListValue', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +	print $hookmanager->resPrint;
    +	// Action column
    +	print '<td class="nowrap" align="center">';
    +	if ($massactionbutton || $massaction)   // 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($obj->rowid, $arrayofselected)) $selected=1;
    +	    print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>';
    +	}
    +	print '</td>';
     
     	print '</tr>'."\n";
     	$i++;
     }
     
    +// Show total line
    +if (isset($totalarray['pos']))
    +{
    +    print '<tr class="liste_total">';
    +    $i=0;
    +    while ($i < $totalarray['nbfield'])
    +    {
    +        $i++;
    +        if (! empty($totalarray['pos'][$i]))  print '<td align="right">'.price($totalarray['val'][$totalarray['pos'][$i]]).'</td>';
    +        else
    +        {
    +            if ($i == 1)
    +            {
    +                if ($num < $limit) print '<td class="left">'.$langs->trans("Total").'</td>';
    +                else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
    +            }
    +            else print '<td></td>';
    +        }
    +    }
    +    print '</tr>';
    +}
    +
     // If no record found
     if ($num == 0)
     {
    -    $colspan=8;
    -    //foreach($arrayfields as $key => $val) { if (! empty($val['checked'])) $colspan++; }
    -    print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>';
    +	$colspan=1;
    +	foreach($arrayfields as $key => $val) { if (! empty($val['checked'])) $colspan++; }
    +	print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>';
     }
     
    +
    +$db->free($resql);
    +
    +$parameters=array('arrayfields'=>$arrayfields, 'sql'=>$sql);
    +$reshook=$hookmanager->executeHooks('printFieldListFooter', $parameters, $object);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +
     print '</table>'."\n";
    -print '</div>';
    -print '</form>';
    +print '</div>'."\n";
     
    +print '</form>'."\n";
    +
    +if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords))
    +{
    +    $hidegeneratedfilelistifempty=1;
    +    if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) $hidegeneratedfilelistifempty=0;
    +
    +    require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    +    $formfile = new FormFile($db);
    +
    +    // Show list of available documents
    +    $urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder;
    +    $urlsource.=str_replace('&amp;','&',$param);
    +
    +    $filedir=$diroutputmassaction;
    +    $genallowed=$user->rights->mymodule->read;
    +    $delallowed=$user->rights->mymodule->create;
    +
    +    print $formfile->showdocuments('massfilesarea_mymodule','',$filedir,$urlsource,0,$delallowed,'',1,1,0,48,1,$param,$title,'','','',null,$hidegeneratedfilelistifempty);
    +}
    +
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/opensurvey/results.php b/htdocs/opensurvey/results.php
    index cd6e6ed3225..34945504943 100644
    --- a/htdocs/opensurvey/results.php
    +++ b/htdocs/opensurvey/results.php
    @@ -1,6 +1,7 @@
     <?php
    -/* Copyright (C) 2013-2015 Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2014      Marcos García       <marcosgdf@gmail.com>
    +/* Copyright (C) 2013-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2014       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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,12 +23,11 @@
      *	\brief      Page to preview votes of a survey
      */
     
    -$res=0;
    -require_once('../main.inc.php');
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php");
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php";
    +require_once DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php";
     
     
     // Security check
    @@ -459,7 +459,7 @@ print '</td></tr>';
     
     // Expire date
     print '<tr><td>'.$langs->trans('ExpireDate').'</td><td colspan="2">';
    -if ($action == 'edit') print $form->select_date($expiredate?$expiredate:$object->date_fin,'expire',0,0,0,'',1,0,1);
    +if ($action == 'edit') print $form->selectDate($expiredate?$expiredate:$object->date_fin, 'expire', 0, 0, 0, '', 1, 0);
     else print dol_print_date($object->date_fin,'day');
     print '</td></tr>';
     
    @@ -492,7 +492,6 @@ if ($action != 'edit')
     				});
     		    </script>';
     	print ' <a href="'.$url.'" target="_blank">'.$langs->trans("Link").'</a>';
    -
     }
     
     print '</td></tr>';
    @@ -1051,18 +1050,20 @@ $toutsujet = explode(",", $object->sujet);  // With old versions, this field was
     
     $compteursujet = 0;
     $meilleursujet = '';
    -for ($i = 0; $i < $nbcolonnes; $i++) {
    -	if (isset($sumfor[$i]) === true && isset($meilleurecolonne) === true && $sumfor[$i] == $meilleurecolonne) {
    +for ($i = 0; $i < $nbcolonnes; $i++)
    +{
    +	if (isset($sumfor[$i]) === true && isset($meilleurecolonne) === true && $sumfor[$i] == $meilleurecolonne)
    +	{
     		$meilleursujet.=", ";
     
     		if ($object->format == "D") {
     			$meilleursujetexport = $toutsujet[$i];
    -
    +			//var_dump($toutsujet);
                 if (strpos($toutsujet[$i], '@') !== false) {
     				$toutsujetdate = explode("@", $toutsujet[$i]);
    -				$meilleursujet .= dol_print_date($toutsujetdate[0],'daytext'). ' ('.dol_print_date($toutsujetdate[0],'%A').')' . ' - ' . $toutsujetdate[1];
    +				$meilleursujet .= dol_print_date($toutsujetdate[0],'daytext'). ($toutsujetdate[0] ? ' ('.dol_print_date($toutsujetdate[0],'%A').')' : '') . ' - ' . $toutsujetdate[1];
     			} else {
    -				$meilleursujet .= dol_print_date($toutsujet[$i],'daytext'). ' ('.dol_print_date($toutsujet[$i],'%A').')';
    +				$meilleursujet .= dol_print_date($toutsujet[$i],'daytext'). ($toutsujet[$i] ? ' ('.dol_print_date($toutsujet[$i],'%A').')' : '');
     			}
     		}
     		else
    @@ -1084,9 +1085,9 @@ if ($nbofcheckbox >= 2)
     	print '<p class="affichageresultats">'."\n";
     
     	if (isset($meilleurecolonne) && $compteursujet == "1") {
    -		print "<img src=\"".DOL_URL_ROOT.'/opensurvey/img/medaille.png'."\"> " . $langs->trans('TheBestChoice') . ": <b>".$meilleursujet." </b>" . $langs->trans("with") . " <b>".$meilleurecolonne."</b>" . $vote_str . ".\n";
    +		print "<img src=\"".DOL_URL_ROOT.'/opensurvey/img/medaille.png'."\"> " . $langs->trans('TheBestChoice') . ": <b>".$meilleursujet." </b>" . $langs->trans("with") . " <b>".$meilleurecolonne."</b> " . $vote_str . ".\n";
     	} elseif (isset($meilleurecolonne)) {
    -		print "<img src=\"".DOL_URL_ROOT.'/opensurvey/img/medaille.png'."\"> " . $langs->trans('TheBestChoices') . ": <b>".$meilleursujet." </b>" . $langs->trans("with") . " <b>".$meilleurecolonne."</b>" . $vote_str . ".\n";
    +		print "<img src=\"".DOL_URL_ROOT.'/opensurvey/img/medaille.png'."\"> " . $langs->trans('TheBestChoices') . ": <b>".$meilleursujet." </b>" . $langs->trans("with") . " <b>".$meilleurecolonne."</b> " . $vote_str . ".\n";
     	}
     	print '<br></p><br>'."\n";
     }
    diff --git a/htdocs/opensurvey/wizard/choix_autre.php b/htdocs/opensurvey/wizard/choix_autre.php
    index a415d6b4987..366842513c8 100644
    --- a/htdocs/opensurvey/wizard/choix_autre.php
    +++ b/htdocs/opensurvey/wizard/choix_autre.php
    @@ -22,10 +22,10 @@
      *	\brief      Page to create a new survey (choice selection)
      */
     
    -require_once('../../main.inc.php');
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php");
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php";
     
     // Security check
     if (!$user->rights->opensurvey->write) accessforbidden();
    @@ -161,6 +161,6 @@ print '<a name=bas></a>'."\n";
     print '<br><br><br>'."\n";
     print '</div>'."\n";
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/opensurvey/wizard/choix_date.php b/htdocs/opensurvey/wizard/choix_date.php
    index 7dd0168c77a..5aa478d9450 100644
    --- a/htdocs/opensurvey/wizard/choix_date.php
    +++ b/htdocs/opensurvey/wizard/choix_date.php
    @@ -22,10 +22,10 @@
      *	\brief      Page to create a new survey (date selection)
      */
     
    -require_once('../../main.inc.php');
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php");
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php";
     
     // Security check
     if (!$user->rights->opensurvey->write) accessforbidden();
    @@ -564,6 +564,6 @@ print '</form>'."\n";
     print '<br><br><br><br>'."\n";
     print '</div></div>'."\n";
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/opensurvey/wizard/create_survey.php b/htdocs/opensurvey/wizard/create_survey.php
    index 0dfc2505ce3..8664e616c55 100644
    --- a/htdocs/opensurvey/wizard/create_survey.php
    +++ b/htdocs/opensurvey/wizard/create_survey.php
    @@ -2,6 +2,7 @@
     /* Copyright (C) 2013-2014 Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2014      Marcos García       <marcosgdf@gmail.com>
      * Copyright (C) 2015-2016 Alexandre Spangaro  <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -23,11 +24,11 @@
      *	\brief      Page to create a new survey
      */
     
    -require_once('../../main.inc.php');
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/class/doleditor.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php");
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/doleditor.class.php";
    +require_once DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php";
     
     // Security check
     if (!$user->rights->opensurvey->write) accessforbidden();
    @@ -156,7 +157,7 @@ print '</tr>'."\n";
     
     print '<tr><td class="fieldrequired">'.  $langs->trans("ExpireDate")  .'</td><td>';
     
    -print $form->select_date($champdatefin?$champdatefin:-1,'champdatefin','','','',"add",1,0,1);
    +print $form->selectDate($champdatefin?$champdatefin:-1, 'champdatefin', '', '', '', "add", 1, 0);
     
     print '</tr>'."\n";
     print '</table>'."\n";
    @@ -204,6 +205,6 @@ else
     print '<br><br><br>'."\n";
     print '</form>'."\n";
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/opensurvey/wizard/index.php b/htdocs/opensurvey/wizard/index.php
    index 4d03b7d2d8f..2e62a02fbae 100644
    --- a/htdocs/opensurvey/wizard/index.php
    +++ b/htdocs/opensurvey/wizard/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2013	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2014	Marcos García		<marcosgdf@gmail.com>
    - * Copyright (C) 2016	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2016	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -57,6 +57,6 @@ print '<div style="clear:both;"></div>';
     print '</div>';
     print '</div></form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/paybox/admin/paybox.php b/htdocs/paybox/admin/paybox.php
    index bee538bf9d5..11329042da4 100644
    --- a/htdocs/paybox/admin/paybox.php
    +++ b/htdocs/paybox/admin/paybox.php
    @@ -71,6 +71,9 @@ if ($action == 'setvalue' && $user->admin)
     	if (! $result > 0) $error++;
     	$result=dolibarr_set_const($db, "PAYMENT_SECURITY_TOKEN_UNIQUE",GETPOST('PAYMENT_SECURITY_TOKEN_UNIQUE','alpha'),'chaine',0,'',$conf->entity);
     	if (! $result > 0) $error++;
    +        $result=dolibarr_set_const($db, "PAYBOX_HMAC_KEY", dol_encode(GETPOST('PAYBOX_HMAC_KEY','alpha')),'chaine',0,'',$conf->entity);
    +	if (! $result > 0) $error++;
    +        
     
         if (! $error)
       	{
    @@ -145,6 +148,12 @@ print '<input size="32" type="text" name="PAYBOX_PBX_IDENTIFIANT" value="'.$conf
     print '<br>'.$langs->trans("Example").': 2 ('.$langs->trans("Test").')';
     print '</td></tr>';
     
    +print '<tr class="oddeven"><td>';
    +print '<span class="fieldrequired">'.$langs->trans("PAYBOX_HMAC_KEY").'</span></td><td>';
    +print '<input size="100" type="text" name="PAYBOX_HMAC_KEY" value="'.dol_decode($conf->global->PAYBOX_HMAC_KEY).'">';
    +print '<br>'.$langs->trans("Example").': 2 ('.$langs->trans("Test").')';
    +print '</td></tr>';
    +
     print '<tr class="liste_titre">';
     print '<td>'.$langs->trans("UsageParameter").'</td>';
     print '<td>'.$langs->trans("Value").'</td>';
    @@ -250,5 +259,6 @@ print '<br><br>';
     
     include DOL_DOCUMENT_ROOT.'/core/tpl/onlinepaymentlinks.tpl.php';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/paybox/lib/paybox.lib.php b/htdocs/paybox/lib/paybox.lib.php
    index a4106488f53..849d8a7129c 100644
    --- a/htdocs/paybox/lib/paybox.lib.php
    +++ b/htdocs/paybox/lib/paybox.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2007 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -92,16 +92,41 @@ function print_paybox_redirect($PRICE,$CURRENCY,$EMAIL,$urlok,$urlko,$TAG)
         $IBS_REFUSE=$urlko;
         $IBS_BKGD="#FFFFFF";
         $IBS_WAIT="2000";
    -	$IBS_LANG="GBR"; 	// By default GBR=english (FRA, GBR, ESP, ITA et DEU...)
    -	if (preg_match('/^FR/i',$langs->defaultlang)) $IBS_LANG="FRA";
    -	if (preg_match('/^ES/i',$langs->defaultlang)) $IBS_LANG="ESP";
    -	if (preg_match('/^IT/i',$langs->defaultlang)) $IBS_LANG="ITA";
    -	if (preg_match('/^DE/i',$langs->defaultlang)) $IBS_LANG="DEU";
    -	if (preg_match('/^NL/i',$langs->defaultlang)) $IBS_LANG="NLD";
    -	if (preg_match('/^SE/i',$langs->defaultlang)) $IBS_LANG="SWE";
    -	$IBS_OUTPUT='E';
    -	$PBX_SOURCE='HTML';
    -	$PBX_TYPEPAIEMENT='CARTE';
    +    $IBS_LANG="GBR"; 	// By default GBR=english (FRA, GBR, ESP, ITA et DEU...)
    +    if (preg_match('/^FR/i',$langs->defaultlang)) $IBS_LANG="FRA";
    +    if (preg_match('/^ES/i',$langs->defaultlang)) $IBS_LANG="ESP";
    +    if (preg_match('/^IT/i',$langs->defaultlang)) $IBS_LANG="ITA";
    +    if (preg_match('/^DE/i',$langs->defaultlang)) $IBS_LANG="DEU";
    +    if (preg_match('/^NL/i',$langs->defaultlang)) $IBS_LANG="NLD";
    +    if (preg_match('/^SE/i',$langs->defaultlang)) $IBS_LANG="SWE";
    +    $IBS_OUTPUT='E';
    +    $PBX_SOURCE='HTML';
    +    $PBX_TYPEPAIEMENT='CARTE';
    +    
    +    $msg = "PBX_IDENTIFIANT=".$PBX_IDENTIFIANT.
    +           "&PBX_MODE=".$IBS_MODE.
    +           "&PBX_SITE=".$IBS_SITE.
    +           "&PBX_RANG=".$IBS_RANG.
    +           "&PBX_TOTAL=".$IBS_TOTAL.
    +           "&PBX_DEVISE=".$IBS_DEVISE.
    +           "&PBX_CMD=".$IBS_CMD.
    +           "&PBX_PORTEUR=".$IBS_PORTEUR.
    +           "&PBX_RETOUR=".$IBS_RETOUR.
    +           "&PBX_EFFECTUE=".$IBS_EFFECTUE.
    +           "&PBX_ANNULE=".$IBS_ANNULE.
    +           "&PBX_REFUSE=".$IBS_REFUSE.
    +           "&PBX_TXT=".$IBS_TXT.
    +           "&PBX_BKGD=".$IBS_BKGD.
    +           "&PBX_WAIT=".$IBS_WAIT.
    +           "&PBX_LANGUE=".$IBS_LANG.
    +           "&PBX_OUTPUT=".$IBS_OUTPUT.
    +           "&PBX_SOURCE=".$PBX_SOURCE.
    +           "&PBX_TYPEPAIEMENT=".$PBX_TYPEPAIEMENT;
    +    
    +    $binKey = pack("H*", dol_decode($conf->global->PAYBOX_HMAC_KEY));
    +            
    +    $hmac = strtoupper(hash_hmac('sha512', $msg, $binKey));
    +           
     
         dol_syslog("Soumission Paybox", LOG_DEBUG);
         dol_syslog("IBS_MODE: $IBS_MODE", LOG_DEBUG);
    @@ -157,7 +182,7 @@ function print_paybox_redirect($PRICE,$CURRENCY,$EMAIL,$urlok,$urlko,$TAG)
         print '<input type="hidden" name="PBX_OUTPUT" value="'.$IBS_OUTPUT.'">'."\n";
         print '<input type="hidden" name="PBX_SOURCE" value="'.$PBX_SOURCE.'">'."\n";
         print '<input type="hidden" name="PBX_TYPEPAIEMENT" value="'.$PBX_TYPEPAIEMENT.'">'."\n";
    -
    +    print '<input type="hidden" name="PBX_HMAC" value="'.$hmac.'">'."\n";
         print '</form>'."\n";
     
     
    diff --git a/htdocs/paypal/admin/paypal.php b/htdocs/paypal/admin/paypal.php
    index f15667ced51..1669639c52e 100644
    --- a/htdocs/paypal/admin/paypal.php
    +++ b/htdocs/paypal/admin/paypal.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2013	Laurent Destailleur		<eldy@users.sourceforge.org>
    - * Copyright (C) 2011-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2011-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012  Juanjo Menent			<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -326,5 +326,6 @@ $token='';
     
     include DOL_DOCUMENT_ROOT.'/core/tpl/onlinepaymentlinks.tpl.php';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/paypal/lib/paypal.lib.php b/htdocs/paypal/lib/paypal.lib.php
    index 4855799c508..37cc2fdbeba 100644
    --- a/htdocs/paypal/lib/paypal.lib.php
    +++ b/htdocs/paypal/lib/paypal.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2011-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2011-2012	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -287,7 +287,6 @@ function print_paypal_redirect($paymentAmount,$currencyCodeType,$paymentType,$re
     
             return $mesg;
         }
    -
     }
     
     /**
    @@ -401,7 +400,7 @@ function callSetExpressCheckout($paymentAmount, $currencyCodeType, $paymentType,
     	    $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT;		// This is to use external domain name found into config file
     	    //$urlwithroot=DOL_MAIN_URL_ROOT;					// This is to use same domain name than current
     
    -	    $urllogo=$urlwithroot."/viewimage.php?modulepart=mycompany&file=".$mysoc->logo;
    +	    $urllogo=$urlwithroot."/viewimage.php?modulepart=mycompany&file=".urlencode('logos/'.$mysoc->logo);
     	    $nvpstr = $nvpstr . "&LOGOIMG=" . urlencode($urllogo);
         }
         if (! empty($conf->global->PAYPAL_BRANDNAME))
    diff --git a/htdocs/paypal/lib/paypalfunctions.lib.php b/htdocs/paypal/lib/paypalfunctions.lib.php
    index 92b24ec60fb..00f67bfa1f0 100644
    --- a/htdocs/paypal/lib/paypalfunctions.lib.php
    +++ b/htdocs/paypal/lib/paypalfunctions.lib.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2010-2011 Laurent Destailleur  <eldy@users.sourceforge.org>
    - * Copyright (C) 2011      Regis Houssin  		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2011      Regis Houssin  		<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/printing/admin/printing.php b/htdocs/printing/admin/printing.php
    index 96b9cad3849..c4b2bb12111 100644
    --- a/htdocs/printing/admin/printing.php
    +++ b/htdocs/printing/admin/printing.php
    @@ -109,12 +109,12 @@ if ($action == 'setvalue' && $user->admin)
     
     $form = new Form($db);
     
    -llxHeader('',$langs->trans("PrintingSetup"));
    +llxHeader('', $langs->trans("PrintingSetup"));
     
     $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
     print load_fiche_titre($langs->trans("PrintingSetup"),$linkback,'title_setup');
     
    -$head=printingadmin_prepare_head($mode);
    +$head = printingAdminPrepareHead($mode);
     
     if ($mode == 'setup' && $user->admin)
     {
    @@ -127,7 +127,6 @@ if ($mode == 'setup' && $user->admin)
         print $langs->trans("PrintingDriverDesc".$driver)."<br><br>\n";
     
         print '<table class="noborder" width="100%">'."\n";
    -    $var=true;
         print '<tr class="liste_titre">';
         print '<th>'.$langs->trans("Parameters").'</th>';
         print '<th>'.$langs->trans("Value").'</th>';
    @@ -135,8 +134,7 @@ if ($mode == 'setup' && $user->admin)
         print "</tr>\n";
         $submit_enabled=0;
     
    -    if (! empty($driver))
    -    {
    +    if (! empty($driver)) {
             require_once DOL_DOCUMENT_ROOT.'/core/modules/printing/'.$driver.'.modules.php';
             $classname = 'printing_'.$driver;
             $langs->load($driver);
    @@ -146,7 +144,6 @@ if ($mode == 'setup' && $user->admin)
             $submit_enabled=0;
             foreach ($printer->conf as $key)
             {
    -
                 switch ($key['type']) {
                     case "text":
                     case "password":
    @@ -248,7 +245,6 @@ if ($mode == 'config' && $user->admin)
     
         print '<table class="noborder" width="100%">'."\n";
     
    -    $var=true;
         print '<tr class="liste_titre">';
         print '<th>'.$langs->trans("Description").'</th>';
         print '<th class="center">'.$langs->trans("Active").'</th>';
    @@ -307,7 +303,7 @@ if ($mode == 'test' && $user->admin)
             $langs->load($driver);
             $printer = new $classname($db);
             //print '<pre>'.print_r($printer, true).'</pre>';
    -        if (count($printer->getlist_available_printers())) {
    +        if (count($printer->getlistAvailablePrinters())) {
                 if ($printer->listAvailablePrinters()==0) {
                     print $printer->resprint;
                 } else {
    @@ -317,7 +313,6 @@ if ($mode == 'test' && $user->admin)
             else {
                 print $langs->trans('PleaseConfigureDriverfromList');
             }
    -
         } else {
             print $langs->trans('PleaseSelectaDriverfromList');
         }
    @@ -333,7 +328,6 @@ if ($mode == 'userconf' && $user->admin)
         print $langs->trans('PrintUserConfDesc'.$driver)."<br><br>\n";
     
         print '<table class="noborder" width="100%">';
    -    $var=true;
         print '<tr class="liste_titre">';
         print '<th>'.$langs->trans("User").'</th>';
         print '<th>'.$langs->trans("PrintModule").'</th>';
    @@ -362,9 +356,8 @@ if ($mode == 'userconf' && $user->admin)
         print '</table>';
     
         dol_fiche_end();
    -
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/printing/index.php b/htdocs/printing/index.php
    index 384d0834cc0..a95e3517be6 100644
    --- a/htdocs/printing/index.php
    +++ b/htdocs/printing/index.php
    @@ -1,6 +1,6 @@
     <?php
    -/* Copyright (C) 2014-2015  Frederic France      <frederic.france@free.fr>
    - * Copyright (C) 2016       Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2014-2018  Frederic France         <frederic.france@netlogic.fr>
    + * Copyright (C) 2016       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
    @@ -40,34 +40,31 @@ $langs->load("printing");
      * View
      */
     
    -llxHeader("",$langs->trans("Printing"));
    +llxHeader("", $langs->trans("Printing"));
     
    -print_barre_liste($langs->trans("Printing"), 0, $_SERVER["PHP_SELF"], '', '', '', '<a class="button" href="'.$_SERVER["PHP_SELF"].'">'.$langs->trans("Refresh").'</a>', 0, 0, 'title_setup.png');
    +print_barre_liste($langs->trans("Printing"), 0, $_SERVER["PHP_SELF"], '', '', '', '<a class="button" href="' . $_SERVER["PHP_SELF"] . '">' . $langs->trans("Refresh") . '</a>', 0, 0, 'title_setup.png');
     
     print $langs->trans("DirectPrintingJobsDesc").'<br><br>';
     
     // List Jobs from printing modules
     $object = new PrintingDriver($db);
     $result = $object->listDrivers($db, 10);
    -foreach ($result as $driver) 
    -{
    +foreach ($result as $driver) {
         require_once DOL_DOCUMENT_ROOT.'/core/modules/printing/'.$driver.'.modules.php';
         $classname = 'printing_'.$driver;
         $langs->load($driver);
         $printer = new $classname($db);
    -    if ($conf->global->{$printer->active}) 
    -    {
    -        //$printer->list_jobs('commande');
    -        $result = $printer->list_jobs();
    +    if ($conf->global->{$printer->active}) {
    +        //$printer->listJobs('commande');
    +        $result = $printer->listJobs();
             print $printer->resprint;
    -        
    -        if ($result > 0) 
    -        {
    +
    +        if ($result > 0) {
                 setEventMessages($printer->error, $printer->errors, 'errors');
             }
         }
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/printing/lib/printing.lib.php b/htdocs/printing/lib/printing.lib.php
    index 697e986cd56..53257891e25 100644
    --- a/htdocs/printing/lib/printing.lib.php
    +++ b/htdocs/printing/lib/printing.lib.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2015       Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -26,10 +27,10 @@
     /**
      *  Define head array for tabs of printing tools setup pages
      *
    - *  @param	string	$mode		Mode
    - *  @return         			Array of head
    + *  @param  string  $mode       Mode
    + *  @return array               Array of head
      */
    -function printingadmin_prepare_head($mode)
    +function printingAdminPrepareHead($mode)
     {
         global $langs, $conf;
     
    @@ -41,28 +42,26 @@ function printingadmin_prepare_head($mode)
         $head[$h][2] = 'config';
         $h++;
     
    -    if ($mode == 'setup')
    -    {
    -	    $head[$h][0] = DOL_URL_ROOT."/printing/admin/printing.php?mode=setup&driver=".GETPOST('driver','alpha');
    -	    $head[$h][1] = $langs->trans("SetupDriver");
    -	    $head[$h][2] = 'setup';
    -	    $h++;
    +    if ($mode == 'setup') {
    +        $head[$h][0] = DOL_URL_ROOT."/printing/admin/printing.php?mode=setup&driver=".GETPOST('driver','alpha');
    +        $head[$h][1] = $langs->trans("SetupDriver");
    +        $head[$h][2] = 'setup';
    +        $h++;
         }
     
    -    if ($mode == 'test')
    -    {
    -	    $head[$h][0] = DOL_URL_ROOT."/printing/admin/printing.php?mode=test&driver=".GETPOST('driver','alpha');
    -	    $head[$h][1] = $langs->trans("TargetedPrinter");
    -	    $head[$h][2] = 'test';
    -	    $h++;
    +    if ($mode == 'test') {
    +        $head[$h][0] = DOL_URL_ROOT."/printing/admin/printing.php?mode=test&driver=".GETPOST('driver','alpha');
    +        $head[$h][1] = $langs->trans("TargetedPrinter");
    +        $head[$h][2] = 'test';
    +        $h++;
         }
     
    -		/** TODO This feature seem to be not ready yet.
    -	    $head[$h][0] = DOL_URL_ROOT."/printing/admin/printing.php?mode=userconf";
    -	    $head[$h][1] = $langs->trans("UserConf");
    -	    $head[$h][2] = 'userconf';
    -	    $h++;
    -	    */
    +    /** TODO This feature seem to be not ready yet.
    +    $head[$h][0] = DOL_URL_ROOT."/printing/admin/printing.php?mode=userconf";
    +    $head[$h][1] = $langs->trans("UserConf");
    +    $head[$h][2] = 'userconf';
    +    $h++;
    +    */
     
         //$object=new stdClass();
     
    @@ -76,4 +75,3 @@ function printingadmin_prepare_head($mode)
     
         return $head;
     }
    -
    diff --git a/htdocs/product/admin/dynamic_prices.php b/htdocs/product/admin/dynamic_prices.php
    index 348380e9b37..4f40c85e2a9 100644
    --- a/htdocs/product/admin/dynamic_prices.php
    +++ b/htdocs/product/admin/dynamic_prices.php
    @@ -357,5 +357,6 @@ if ($action == 'create_updater' || $action == 'edit_updater') {
         print '</form>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/admin/price_rules.php b/htdocs/product/admin/price_rules.php
    index 0049daeaa7d..730a8fd31f2 100644
    --- a/htdocs/product/admin/price_rules.php
    +++ b/htdocs/product/admin/price_rules.php
    @@ -14,7 +14,7 @@
      *
      * You should have received a copy of the GNU General Public License
      * along with this program. If not, see <http://www.gnu.org/licenses/>.
    - * 
    + *
      * Page to set how to autocalculate price for each level when option
      * PRODUCT_MULTIPRICE is on.
      */
    @@ -92,7 +92,6 @@ if ($_POST) {
     				setEventMessages($langs->trans('ErrorSavingChanges'), null, 'errors');
     			}
     		}
    -
     	}
     
     	setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
    @@ -145,7 +144,7 @@ for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++) {
     	$price_options[$i] = $langs->trans('SellingPrice').' '.$i;
     }
     
    -$genPriceOptions = function($level) use ($price_options) {
    +$genPriceOptions = function ($level) use ($price_options) {
     
     	$return = array();
     
    @@ -190,16 +189,16 @@ $genPriceOptions = function($level) use ($price_options) {
     		<?php endfor ?>
     	</table>
     
    -<?php 
    +<?php
     
     dol_fiche_end();
     
     print '<div style="text-align: center">
     		<input type="submit" value="'.$langs->trans('Save').'" class="button">
     	</div>';
    -	
    +
     print '</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/admin/product.php b/htdocs/product/admin/product.php
    index bb214ffc06a..334640e87d3 100644
    --- a/htdocs/product/admin/product.php
    +++ b/htdocs/product/admin/product.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
      * Copyright (C) 2006-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2007      Auguria SARL         <info@auguria.org>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2012      Christophe Battarel  <christophe.battarel@altairis.fr>
      * Copyright (C) 2012      Cedric Salvador      <csalvador@gpcsolutions.fr>
    @@ -127,7 +127,6 @@ if ($action == 'other')
     				$res = dolibarr_set_const($db, $rule, 0, 'chaine', 0, '', $conf->entity);
     			}
     		}
    -
     	}
     
     	$value = GETPOST('PRODUIT_SOUSPRODUITS','alpha');
    @@ -144,6 +143,18 @@ if ($action == 'other')
     
     	$value = GETPOST('activate_usesearchtoselectproduct','alpha');
     	$res = dolibarr_set_const($db, "PRODUIT_USE_SEARCH_TO_SELECT", $value,'chaine',0,'',$conf->entity);
    +	
    +	$value = GETPOST('activate_useProdFournDesc', 'alpha');
    +	$res = dolibarr_set_const($db, "PRODUIT_FOURN_TEXTS", $value,'chaine',0,'',$conf->entity);
    +	if ($value) {
    +	    $sql_test = "SELECT count(desc_fourn) as cpt FROM ".MAIN_DB_PREFIX."product_fournisseur_price WHERE 1";
    +	    $resql = $db->query($sql_test);
    +	    if (!$resql && $db->lasterrno == 'DB_ERROR_NOSUCHFIELD') // if the field does not exist, we create it
    +	    {
    +	        $sql_new = "ALTER TABLE ".MAIN_DB_PREFIX."product_fournisseur_price ADD COLUMN desc_fourn text";
    +	        $resql_new = $db->query($sql_new);
    +	    }
    +	}
     }
     
     if ($action == 'specimen') // For products
    @@ -180,13 +191,13 @@ if ($action == 'specimen') // For products
     		}
     		else
     		{
    -			setEventMessage($obj->error,'errors');
    +			setEventMessages($obj->error, $obj->errors, 'errors');
     			dol_syslog($obj->error, LOG_ERR);
     		}
     	}
     	else
     	{
    -		setEventMessage($langs->trans("ErrorModuleNotFound"),'errors');
    +		setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
     		dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
     	}
     }
    @@ -401,7 +412,6 @@ print "</tr>\n";
     
     clearstatcache();
     
    -$var=true;
     foreach ($dirmodels as $reldir)
     {
         foreach (array('','/doc') as $valdir)
    @@ -438,7 +448,6 @@ foreach ($dirmodels as $reldir)
     
     	                        if ($modulequalified)
     	                        {
    -	                            $var = !$var;
     	                            print '<tr class="oddeven"><td width="100">';
     	                            print (empty($module->name)?$name:$module->name);
     	                            print "</td><td>\n";
    @@ -524,12 +533,10 @@ print "<br>";
     print load_fiche_titre($langs->trans("ProductOtherConf"), '', '');
     
     
    -
     print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     print '<input type="hidden" name="action" value="other">';
     
    -$var=true;
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
     print '<td>'.$langs->trans("Parameters").'</td>'."\n";
    @@ -545,6 +552,7 @@ $rowspan = 4;
     if (! empty($conf->global->PRODUIT_MULTIPRICES) || ! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) $rowspan++;
     if (empty($conf->global->PRODUIT_USE_SEARCH_TO_SELECT)) $rowspan++;
     if (! empty($conf->global->MAIN_MULTILANGS)) $rowspan++;
    +if (! empty($conf->fournisseur->enabled)) $rowspan++;
     
     
     print '<tr class="oddeven">';
    @@ -569,7 +577,6 @@ print '</tr>';
     // multiprix nombre de prix a proposer
     if (! empty($conf->global->PRODUIT_MULTIPRICES) || ! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES))
     {
    -
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("MultiPricesNumPrices").'</td>';
     	print '<td align="right"><input size="3" type="text" class="flat" name="value_PRODUIT_MULTIPRICES_LIMIT" value="'.$conf->global->PRODUIT_MULTIPRICES_LIMIT.'"></td>';
    @@ -611,7 +618,6 @@ print '</tr>';
     
     if (empty($conf->global->PRODUIT_USE_SEARCH_TO_SELECT))
     {
    -
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("NumberOfProductShowInSelect").'</td>';
     	print '<td align="right"><input size="3" type="text" class="flat" name="value_PRODUIT_LIMIT_SIZE" value="'.$conf->global->PRODUIT_LIMIT_SIZE.'"></td>';
    @@ -619,7 +625,6 @@ if (empty($conf->global->PRODUIT_USE_SEARCH_TO_SELECT))
     }
     
     // Visualiser description produit dans les formulaires activation/desactivation
    -
     print '<tr class="oddeven">';
     print '<td>'.$langs->trans("ViewProductDescInFormAbility").'</td>';
     print '<td width="60" align="right">';
    @@ -652,7 +657,6 @@ print '</tr>';
     // View product description in thirdparty language
     if (! empty($conf->global->MAIN_MULTILANGS))
     {
    -
     	print '<tr class="oddeven">';
     	print '<td>'.$langs->trans("ViewProductDescInThirdpartyLanguageAbility").'</td>';
     	print '<td width="60" align="right">';
    @@ -661,12 +665,20 @@ if (! empty($conf->global->MAIN_MULTILANGS))
     	print '</tr>';
     }
     
    +if (! empty($conf->fournisseur->enabled))
    +{
    +    print '<tr class="oddeven">';
    +    print '<td>'.$langs->trans("UseProductFournDesc").'</td>';
    +    print '<td width="60" align="right">';
    +    print $form->selectyesno("activate_useProdFournDesc", (! empty($conf->global->PRODUIT_FOURN_TEXTS)?$conf->global->PRODUIT_FOURN_TEXTS:0), 1);
    +    print '</td>';
    +    print '</tr>';
    +}
     
     if (! empty($conf->global->PRODUCT_CANVAS_ABILITY))
     {
     	// Add canvas feature
     	$dir = DOL_DOCUMENT_ROOT . "/product/canvas/";
    -	$var = false;
     
     	print '<tr class="liste_titre">';
     	print '<td>'.$langs->trans("ProductSpecial").'</td>'."\n";
    @@ -694,8 +706,7 @@ if (! empty($conf->global->PRODUCT_CANVAS_ABILITY))
     
         				if ($conf->$module->enabled)
         				{
    -
    -    					print "<tr ".$bc[$var]."><td>";
    +    					print '<tr class="oddeven"><td>';
     
         					print $object->description;
     
    @@ -732,7 +743,7 @@ print '</table>';
     
     print '</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
     
    diff --git a/htdocs/product/admin/product_extrafields.php b/htdocs/product/admin/product_extrafields.php
    index 849b346244d..23780df895e 100644
    --- a/htdocs/product/admin/product_extrafields.php
    +++ b/htdocs/product/admin/product_extrafields.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2012		Marcos García			<marcosgdf@gmail.com>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -94,7 +94,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -107,8 +107,8 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    -    print load_fiche_titre($langs->trans('NewAttribute'));
    +	print '<br><div id="newattrib"></div>';
    +	print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
     }
    @@ -126,6 +126,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/admin/product_lot_extrafields.php b/htdocs/product/admin/product_lot_extrafields.php
    index be3651344ff..911c96e1b88 100644
    --- a/htdocs/product/admin/product_lot_extrafields.php
    +++ b/htdocs/product/admin/product_lot_extrafields.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2012		Marcos García			<marcosgdf@gmail.com>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -84,7 +84,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -97,8 +97,8 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    -    print load_fiche_titre($langs->trans('NewAttribute'));
    +	print '<br><div id="newattrib"></div>';
    +	print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
     }
    @@ -116,6 +116,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/admin/product_tools.php b/htdocs/product/admin/product_tools.php
    index 291aba9bcf1..4ab8698f4cb 100644
    --- a/htdocs/product/admin/product_tools.php
    +++ b/htdocs/product/admin/product_tools.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2012	   Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2012	   Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2013-2015 Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -267,7 +267,6 @@ if ($action == 'convert')
     		{
     			setEventMessages($langs->trans("Error"), null, 'errors');
     		}
    -
     	}
     }
     
    @@ -294,8 +293,6 @@ if (empty($mysoc->country_code))
     else
     {
     
    -	$var=true;
    -
     	print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
     	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'" />';
     	print '<input type="hidden" name="action" value="convert" />';
    @@ -344,6 +341,6 @@ else
     	print '</form>';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/agenda.php b/htdocs/product/agenda.php
    index 5ef9defc1d4..20ba4a5cc69 100644
    --- a/htdocs/product/agenda.php
    +++ b/htdocs/product/agenda.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005      Brice Davoleau       <brice.davoleau@gmail.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2007      Patrick Raguin  		<patrick.raguin@gmail.com>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
    @@ -203,7 +203,6 @@ if ($id > 0 || $ref)
         }
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/ajax/products.php b/htdocs/product/ajax/products.php
    index cce0f4254a0..6a286d6e7d2 100644
    --- a/htdocs/product/ajax/products.php
    +++ b/htdocs/product/ajax/products.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
    - * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/product/canvas/product/actions_card_product.class.php b/htdocs/product/canvas/product/actions_card_product.class.php
    index 3c0fc4d2b2f..cf9fcff98c8 100644
    --- a/htdocs/product/canvas/product/actions_card_product.class.php
    +++ b/htdocs/product/canvas/product/actions_card_product.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2018 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -64,6 +64,7 @@ class ActionsCardProduct
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Assign custom values for canvas (for example into this->tpl to be used by templates)
     	 *
    @@ -74,6 +75,7 @@ class ActionsCardProduct
     	 */
     	function assign_values(&$action, $id=0, $ref='')
     	{
    +        // phpcs:enable
     		global $limit, $offset, $sortfield, $sortorder;
             global $conf, $langs, $user, $mysoc, $canvas;
     		global $form, $formproduct;
    @@ -123,20 +125,6 @@ class ActionsCardProduct
     			$this->tpl['tva_tx'] = $form->load_tva("tva_tx",-1,$mysoc,'');
     		}
     
    -		if ($action == 'create' || $action == 'edit')
    -		{
    -			// Status
    -			$statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSell"));
    -			$this->tpl['status'] = $form->selectarray('statut',$statutarray,$this->status);
    -
    -			//To Buy
    -			$statutarray=array('1' => $langs->trans("Yes"), '0' => $langs->trans("No"));
    -			$this->tpl['tobuy'] = $form->selectarray('tobuy',$statutarray,$this->status_buy);
    -
    -            $this->tpl['description'] = $this->description;
    -            $this->tpl['note'] = $this->note;
    -		}
    -
     		if ($action == 'view')
     		{
                 $head = product_prepare_head($this->object);
    @@ -180,10 +168,13 @@ class ActionsCardProduct
     		{
         		// Status
         		$statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSell"));
    -    		$this->tpl['status'] = $form->selectarray('statut',$statutarray,$_POST["statut"]);
    +    		$this->tpl['status'] = $form->selectarray('statut',$statutarray,$this->object->status);
     
         		$statutarray=array('1' => $langs->trans("ProductStatusOnBuy"), '0' => $langs->trans("ProductStatusNotOnBuy"));
    -    		$this->tpl['status_buy'] = $form->selectarray('statut_buy',$statutarray,$_POST["statut_buy"]);
    +    		$this->tpl['status_buy'] = $form->selectarray('statut_buy',$statutarray,$this->object->status_buy);
    +
    +    		$this->tpl['description'] = $this->description;
    +    		$this->tpl['note'] = $this->note;
     
     		    // Finished
     			$statutarray=array('1' => $langs->trans("Finished"), '0' => $langs->trans("RowMaterial"));
    @@ -208,10 +199,6 @@ class ActionsCardProduct
     
     		if ($action == 'view')
     		{
    -    		// Status
    -    		$this->tpl['status'] = $this->object->getLibStatut(2,0);
    -    		$this->tpl['status_buy'] = $this->object->getLibStatut(2,1);
    -
         		// Photo
     			$this->tpl['nblignes'] = 4;
     			if ($this->object->is_photo_available($conf->product->multidir_output[$this->object->entity]))
    @@ -253,7 +240,6 @@ class ActionsCardProduct
     		{
     	        $this->LoadListDatas($limit, $offset, $sortfield, $sortorder);
     		}
    -
     	}
     
     
    @@ -268,7 +254,7 @@ class ActionsCardProduct
     
     		$this->field_list = array();
     
    -		$sql = "SELECT rowid, name, alias, title, align, sort, search, enabled, rang";
    +		$sql = "SELECT rowid, name, alias, title, align, sort, search, visible, enabled, rang";
     		$sql.= " FROM ".MAIN_DB_PREFIX."c_field_list";
     		$sql.= " WHERE element = '".$this->db->escape($this->fieldListName)."'";
     		$sql.= " AND entity = ".$conf->entity;
    @@ -293,6 +279,7 @@ class ActionsCardProduct
     				$fieldlist["align"]		= $obj->align;
     				$fieldlist["sort"]		= $obj->sort;
     				$fieldlist["search"]	= $obj->search;
    +				$fieldlist["visible"]	= $obj->visible;
     				$fieldlist["enabled"]	= verifCond($obj->enabled);
     				$fieldlist["order"]		= $obj->rang;
     
    @@ -309,6 +296,7 @@ class ActionsCardProduct
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Fetch datas list and save into ->list_datas
     	 *
    @@ -320,6 +308,7 @@ class ActionsCardProduct
     	 */
     	function LoadListDatas($limit, $offset, $sortfield, $sortorder)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
             $this->getFieldList();
    @@ -445,6 +434,4 @@ class ActionsCardProduct
     			dol_print_error($this->db);
     		}
     	}
    -
     }
    -
    diff --git a/htdocs/product/canvas/product/tpl/card_create.tpl.php b/htdocs/product/canvas/product/tpl/card_create.tpl.php
    index bc4b5409688..ca668037e93 100644
    --- a/htdocs/product/canvas/product/tpl/card_create.tpl.php
    +++ b/htdocs/product/canvas/product/tpl/card_create.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2018 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    @@ -30,7 +30,10 @@ $statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSe
     
     <!-- BEGIN PHP TEMPLATE -->
     
    -<?php print load_fiche_titre($langs->trans("Product")); ?>
    +<?php
    +print load_fiche_titre($langs->trans("NewProduct"),'','title_products.png');
    +dol_fiche_head('');
    +?>
     
     <?php dol_htmloutput_errors((is_numeric($object->error)?'':$object->error),$object->errors); ?>
     
    @@ -65,7 +68,7 @@ $statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSe
     
     <tr>
     <td class="fieldrequired"><?php echo $langs->trans("Status").' ('.$langs->trans("Buy").')'; ?></td>
    -<td><?php echo $form->selectarray('statut_buy',$statutarray,$object->status_tobuy); ?></td>
    +<td><?php echo $form->selectarray('statut_buy',$statutarray,$object->status_buy); ?></td>
     </tr>
     
     <?php if (! empty($conf->stock->enabled)) { ?>
    diff --git a/htdocs/product/canvas/product/tpl/card_edit.tpl.php b/htdocs/product/canvas/product/tpl/card_edit.tpl.php
    index 6c13bddb6a1..36a4b7543c6 100644
    --- a/htdocs/product/canvas/product/tpl/card_edit.tpl.php
    +++ b/htdocs/product/canvas/product/tpl/card_edit.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2018 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    @@ -31,7 +31,9 @@ $statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSe
     <!-- BEGIN PHP TEMPLATE -->
     
     <?php
    -print load_fiche_titre($langs->trans("Product"));
    +$head=product_prepare_head($object);
    +$titre=$langs->trans("CardProduct".$object->type);
    +dol_fiche_head($head, 'card', $titre, 0, 'product');
     
     dol_htmloutput_errors($object->error,$object->errors);
     ?>
    @@ -65,7 +67,7 @@ dol_htmloutput_errors($object->error,$object->errors);
     
     <tr>
     <td class="fieldrequired"><?php echo $langs->trans("Status").' ('.$langs->trans("Buy").')'; ?></td>
    -<td><?php echo $form->selectarray('statut_buy',$statutarray,$object->status_tobuy); ?></td>
    +<td><?php echo $form->selectarray('statut_buy',$statutarray,$object->status_buy); ?></td>
     </tr>
     
     <?php if (! empty($conf->stock->enabled)) { ?>
    diff --git a/htdocs/product/canvas/product/tpl/card_view.tpl.php b/htdocs/product/canvas/product/tpl/card_view.tpl.php
    index 44b1f96203b..082a983305b 100644
    --- a/htdocs/product/canvas/product/tpl/card_view.tpl.php
    +++ b/htdocs/product/canvas/product/tpl/card_view.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2018 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    @@ -27,7 +27,20 @@ $object=$GLOBALS['object'];
     ?>
     
     <!-- BEGIN PHP TEMPLATE -->
    -<?php echo $langs->trans("Product"); ?>
    +<?php
    +$head=product_prepare_head($object);
    +$titre=$langs->trans("CardProduct".$object->type);
    +
    +dol_fiche_head($head, 'card', $titre, -1, 'product');
    +
    +$linkback = '<a href="'.DOL_URL_ROOT.'/product/list.php?restore_lastsearch_values=1&type='.$object->type.'">'.$langs->trans("BackToList").'</a>';
    +$object->next_prev_filter=" fk_product_type = ".$object->type;
    +
    +$shownav = 1;
    +if ($user->societe_id && ! in_array('product', explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL))) $shownav=0;
    +
    +dol_banner_tab($object, 'ref', $linkback, $shownav, 'ref');
    +?>
     
     <?php dol_htmloutput_errors($object->error,$object->errors); ?>
     
    @@ -50,16 +63,6 @@ $object=$GLOBALS['object'];
     
     </tr>
     
    -<tr>
    -<td><?php echo $langs->trans("Status").' ('.$langs->trans("Sell").')'; ?></td>
    -<td><?php echo $object->status; ?></td>
    -</tr>
    -
    -<tr>
    -<td><?php echo $langs->trans("Status").' ('.$langs->trans("Buy").')'; ?></td>
    -<td><?php echo $object->status_buy; ?></td>
    -</tr>
    -
     <tr>
     <td class="tdtop"><?php echo $langs->trans("Description"); ?></td>
     <td colspan="2"><?php echo $object->description; ?></td>
    diff --git a/htdocs/product/canvas/product/tpl/list.tpl.php b/htdocs/product/canvas/product/tpl/list.tpl.php
    deleted file mode 100644
    index e5c315e8148..00000000000
    --- a/htdocs/product/canvas/product/tpl/list.tpl.php
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -<?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    - *
    - * 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
    - * the Free Software Foundation; either version 3 of the License, or
    - * (at your option) any later version.
    - *
    - * This program is distributed in the hope that it will be useful,
    - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - * GNU General Public License for more details.
    - *
    - * You should have received a copy of the GNU General Public License
    - * along with this program. If not, see <http://www.gnu.org/licenses/>.
    - */
    -
    -// Protection to avoid direct call of template
    -if (empty($conf) || ! is_object($conf))
    -{
    -	print "Error, template page can't be called as URL";
    -	exit;
    -}
    -
    -?>
    -
    -<!-- BEGIN PHP TEMPLATE -->
    -
    -<table class="notopnoleftnoright allwidth" style="margin-bottom: 2px;">
    -<tr>
    -	<td class="nobordernopadding" width="40" align="left" valign="middle">
    -		<?php echo $title_picto; ?>
    -	</td>
    -	<td class="nobordernopadding" valign="middle">
    -    	<div class="titre"><?php echo $title_text; ?></div>
    -	</td>
    -</tr>
    -</table>
    -
    -<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" name="formulaire">
    -<input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>">
    -<input type="hidden" name="action" value="list">
    -<input type="hidden" name="sortfield" value="<?php echo $sortfield; ?>">
    -<input type="hidden" name="sortorder" value="<?php echo $sortorder; ?>">
    -<input type="hidden" name="canvas" value="default">
    -<input type="hidden" name="type" value="0">
    -
    -<table class="liste allwidth">
    -
    -<!-- FIELDS TITLE -->
    -
    -<tr class="liste_titre">
    -	<?php
    - 	foreach($fieldlist as $field) {
    - 		if ($field['enabled']) {
    - 			if ($field['sort'])	{ ?>
    - 				<td class="liste_titre" align="<?php echo $field['align']; ?>"><?php echo $field['title']; ?>
    - 					<a href="<?php echo $_SERVER["PHP_SELF"];?>?sortfield=<?php echo $field['name']; ?>&amp;sortorder=asc&amp;begin=&amp;tosell=&amp;canvas=default&amp;fourn_id=&amp;snom=&amp;sref=">
    - 						<img src="<?php echo DOL_URL_ROOT; ?>/theme/<?php echo $conf->theme; ?>/img/1downarrow.png" border="0" alt="A-Z" title="A-Z">
    - 					</a>
    -  					<a href="<?php echo $_SERVER["PHP_SELF"];?>?sortfield=<?php echo $field['name']; ?>&amp;sortorder=desc&amp;begin=&amp;tosell=&amp;canvas=default&amp;fourn_id=&amp;snom=&amp;sref=">
    -  						<img src="<?php echo DOL_URL_ROOT; ?>/theme/<?php echo $conf->theme; ?>/img/1uparrow.png" border="0" alt="Z-A" title="Z-A">
    -  					</a>
    -  				</td>
    -  		<?php } else { ?>
    -  				<td class="liste_titre" align="<?php echo $field['align']; ?>"><?php echo $field['title']; ?></td>
    -	<?php } } } ?>
    -</tr>
    -
    - <!-- FIELDS SEARCH -->
    -
    -<tr class="liste_titre">
    -	<?php
    - 	$num = count($fieldlist);
    - 	foreach($fieldlist as $key => $searchfield)	{
    - 		if ($searchfield['enabled']) {
    - 			if ($searchfield['search'])	{ ?>
    -  				<td class="liste_titre" align="<?php echo $searchfield['align']; ?>"><input class="flat" type="text" name="s<?php echo $searchfield['alias']; ?>" value=""></td>
    -	<?php } else if ($key == $num) {
    -        print '<td class="liste_titre" align="right">';
    -        $searchpicto=$form->showFilterAndCheckAddButtons(0);
    -        print $searchpicto;
    -        print '</td>';
    -	} else { ?>
    -  			<td class="liste_titre">&nbsp;</td>
    - 	<?php } } } ?>
    -</tr>
    -
    -<!-- FIELDS DATA -->
    -
    -<?php
    -$var=true;
    -foreach($datas as $line) {
    -		?>
    -	<tr <?php echo $bc[$var]; ?>>
    -   		<?php
    -   		foreach($line as $key => $value) {
    -   			foreach($fieldlist as $field) {
    -   				if ($field['alias'] == $key) { ?>
    -   					<td align="<?php echo $field['align']; ?>"><?php echo $value; ?></td>
    -   		<?php } } } ?>
    -   	</tr>
    -<?php } ?>
    -
    -</table>
    -</form>
    -
    -<!-- END PHP TEMPLATE -->
    \ No newline at end of file
    diff --git a/htdocs/product/canvas/service/actions_card_service.class.php b/htdocs/product/canvas/service/actions_card_service.class.php
    index af227e54b0b..7ba746af06e 100644
    --- a/htdocs/product/canvas/service/actions_card_service.class.php
    +++ b/htdocs/product/canvas/service/actions_card_service.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2018 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -63,6 +63,7 @@ class ActionsCardService
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *    Assign custom values for canvas (for example into this->tpl to be used by templates)
     	 *
    @@ -73,6 +74,7 @@ class ActionsCardService
     	 */
     	function assign_values(&$action, $id=0, $ref='')
     	{
    +        // phpcs:enable
     		global $limit, $offset, $sortfield, $sortorder;
             global $conf, $langs, $user, $mysoc, $canvas;
     		global $form, $formproduct;
    @@ -122,20 +124,6 @@ class ActionsCardService
     			$this->tpl['tva_tx'] = $form->load_tva("tva_tx",-1,$mysoc,'');
     		}
     
    -		if ($action == 'create' || $action == 'edit')
    -		{
    -			// Status
    -			$statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSell"));
    -			$this->tpl['status'] = $form->selectarray('statut',$statutarray,$this->status);
    -
    -			//To Buy
    -			$statutarray=array('1' => $langs->trans("Yes"), '0' => $langs->trans("No"));
    -			$this->tpl['tobuy'] = $form->selectarray('tobuy',$statutarray,$this->status_buy);
    -
    -            $this->tpl['description'] = $this->description;
    -            $this->tpl['note'] = $this->note;
    -		}
    -
     		if ($action == 'view')
     		{
                 $head = product_prepare_head($this->object);
    @@ -182,10 +170,13 @@ class ActionsCardService
     		{
         		// Status
         		$statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSell"));
    -    		$this->tpl['status'] = $form->selectarray('statut',$statutarray,$_POST["statut"]);
    +    		$this->tpl['status'] = $form->selectarray('statut',$statutarray,$this->object->status);
     
         		$statutarray=array('1' => $langs->trans("ProductStatusOnBuy"), '0' => $langs->trans("ProductStatusNotOnBuy"));
    -    		$this->tpl['status_buy'] = $form->selectarray('statut_buy',$statutarray,$_POST["statut_buy"]);
    +    		$this->tpl['status_buy'] = $form->selectarray('statut_buy',$statutarray,$this->object->status_buy);
    +
    +    		$this->tpl['description'] = $this->description;
    +    		$this->tpl['note'] = $this->note;
     
     		    // Duration unit
     			// TODO creer fonction
    @@ -203,10 +194,6 @@ class ActionsCardService
     
     		if ($action == 'view')
     		{
    -    		// Status
    -    		$this->tpl['status'] = $this->object->getLibStatut(2,0);
    -    		$this->tpl['status_buy'] = $this->object->getLibStatut(2,1);
    -
     		    // Photo
     			$this->tpl['nblignes'] = 4;
     			if ($this->object->is_photo_available($conf->service->multidir_output[$this->object->entity]))
    @@ -232,7 +219,6 @@ class ActionsCardService
     		{
     	        $this->LoadListDatas($limit, $offset, $sortfield, $sortorder);
     		}
    -
     	}
     
     
    @@ -247,7 +233,7 @@ class ActionsCardService
     
             $this->field_list = array();
     
    -		$sql = "SELECT rowid, name, alias, title, align, sort, search, enabled, rang";
    +		$sql = "SELECT rowid, name, alias, title, align, sort, search, visible, enabled, rang";
     		$sql.= " FROM ".MAIN_DB_PREFIX."c_field_list";
     		$sql.= " WHERE element = '".$this->db->escape($this->fieldListName)."'";
     		$sql.= " AND entity = ".$conf->entity;
    @@ -272,6 +258,7 @@ class ActionsCardService
     				$fieldlist["align"]		= $obj->align;
     				$fieldlist["sort"]		= $obj->sort;
     				$fieldlist["search"]	= $obj->search;
    +				$fieldlist["visible"]	= $obj->visible;
     				$fieldlist["enabled"]	= verifCond($obj->enabled);
     				$fieldlist["order"]		= $obj->rang;
     
    @@ -287,6 +274,7 @@ class ActionsCardService
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Fetch datas list and save into ->list_datas
     	 *
    @@ -298,6 +286,7 @@ class ActionsCardService
     	 */
     	function LoadListDatas($limit, $offset, $sortfield, $sortorder)
     	{
    +        // phpcs:enable
     		global $conf;
     		global $search_categ,$sall,$sref,$search_barcode,$snom,$catid;
     
    @@ -377,6 +366,4 @@ class ActionsCardService
     			print $sql;
     		}
     	}
    -
     }
    -
    diff --git a/htdocs/product/canvas/service/tpl/card_create.tpl.php b/htdocs/product/canvas/service/tpl/card_create.tpl.php
    index b9dc10fd5dc..79f40d4f6e0 100644
    --- a/htdocs/product/canvas/service/tpl/card_create.tpl.php
    +++ b/htdocs/product/canvas/service/tpl/card_create.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2018 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    @@ -30,7 +30,10 @@ $statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSe
     
     <!-- BEGIN PHP TEMPLATE CREATE.TPL -->
     
    -<?php print load_fiche_titre($langs->trans("Service")); ?>
    +<?php
    +print load_fiche_titre($langs->trans("NewService"),'','title_products.png');
    +dol_fiche_head('');
    +?>
     
     <?php dol_htmloutput_errors($this->control->tpl['error'],$this->control->tpl['errors']); ?>
     
    @@ -62,7 +65,7 @@ $statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSe
     
     <tr>
     <td class="fieldrequired"><?php echo $langs->trans("Status").' ('.$langs->trans("Buy").')'; ?></td>
    -<td><?php echo $form->selectarray('statut_buy',$statutarray,$object->status_tobuy); ?></td>
    +<td><?php echo $form->selectarray('statut_buy',$statutarray,$object->status_buy); ?></td>
     </tr>
     
     <tr><td><?php echo $langs->trans("Duration"); ?></td>
    diff --git a/htdocs/product/canvas/service/tpl/card_edit.tpl.php b/htdocs/product/canvas/service/tpl/card_edit.tpl.php
    index 6fc3bf3273a..2c48be3e0ef 100644
    --- a/htdocs/product/canvas/service/tpl/card_edit.tpl.php
    +++ b/htdocs/product/canvas/service/tpl/card_edit.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2018 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    @@ -31,7 +31,9 @@ $statutarray=array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSe
     <!-- BEGIN PHP TEMPLATE EDIT.TPL -->
     
     <?php
    -print load_fiche_titre($langs->trans("Service"));
    +$head=product_prepare_head($object);
    +$titre=$langs->trans("CardProduct".$object->type);
    +dol_fiche_head($head, 'card', $titre, 0, 'service');
     
     dol_htmloutput_errors($object->error,$object->errors);
     ?>
    @@ -62,7 +64,7 @@ dol_htmloutput_errors($object->error,$object->errors);
     
     <tr>
     <td class="fieldrequired"><?php echo $langs->trans("Status").' ('.$langs->trans("Buy").')'; ?></td>
    -<td><?php echo $form->selectarray('statut_buy',$statutarray,$object->status_tobuy); ?></td>
    +<td><?php echo $form->selectarray('statut_buy',$statutarray,$object->status_buy); ?></td>
     </tr>
     
     <tr><td><?php echo $langs->trans("Duration"); ?></td>
    diff --git a/htdocs/product/canvas/service/tpl/card_view.tpl.php b/htdocs/product/canvas/service/tpl/card_view.tpl.php
    index fc129132dee..02cefb38e7d 100644
    --- a/htdocs/product/canvas/service/tpl/card_view.tpl.php
    +++ b/htdocs/product/canvas/service/tpl/card_view.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2018 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    @@ -27,7 +27,20 @@ $object=$GLOBALS['object'];
     ?>
     
     <!-- BEGIN PHP TEMPLATE VIEW.TPL -->
    -<?php echo $langs->trans("Service"); ?>
    +<?php
    +$head=product_prepare_head($object);
    +$titre=$langs->trans("CardProduct".$object->type);
    +
    +dol_fiche_head($head, 'card', $titre, -1, 'service');
    +
    +$linkback = '<a href="'.DOL_URL_ROOT.'/product/list.php?restore_lastsearch_values=1&type='.$object->type.'">'.$langs->trans("BackToList").'</a>';
    +$object->next_prev_filter=" fk_product_type = ".$object->type;
    +
    +$shownav = 1;
    +if ($user->societe_id && ! in_array('product', explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL))) $shownav=0;
    +
    +dol_banner_tab($object, 'ref', $linkback, $shownav, 'ref');
    +?>
     
     <?php dol_htmloutput_errors($object->error,$object->errors); ?>
     
    @@ -50,16 +63,6 @@ $object=$GLOBALS['object'];
     
     </tr>
     
    -<tr>
    -<td><?php echo $langs->trans("Status").' ('.$langs->trans("Sell").')'; ?></td>
    -<td><?php echo $object->status; ?></td>
    -</tr>
    -
    -<tr>
    -<td><?php echo $langs->trans("Status").' ('.$langs->trans("Buy").')'; ?></td>
    -<td><?php echo $object->status_buy; ?></td>
    -</tr>
    -
     <tr>
     <td class="tdtop"><?php echo $langs->trans("Description"); ?></td>
     <td colspan="2"><?php echo $object->description; ?></td>
    diff --git a/htdocs/product/canvas/service/tpl/list.tpl.php b/htdocs/product/canvas/service/tpl/list.tpl.php
    deleted file mode 100644
    index ef6d461fc5c..00000000000
    --- a/htdocs/product/canvas/service/tpl/list.tpl.php
    +++ /dev/null
    @@ -1,107 +0,0 @@
    -<?php
    -/* Copyright (C) 2010 Regis Houssin <regis.houssin@capnetworks.com>
    - *
    - * 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
    - * the Free Software Foundation; either version 3 of the License, or
    - * (at your option) any later version.
    - *
    - * This program is distributed in the hope that it will be useful,
    - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - * GNU General Public License for more details.
    - *
    - * You should have received a copy of the GNU General Public License
    - * along with this program. If not, see <http://www.gnu.org/licenses/>.
    - */
    -
    -// Protection to avoid direct call of template
    -if (empty($conf) || ! is_object($conf))
    -{
    -	print "Error, template page can't be called as URL";
    -	exit;
    -}
    -
    -?>
    -
    -<!-- BEGIN PHP TEMPLATE -->
    -
    -<table class="notopnoleftnoright allwidth" style="margin-bottom: 2px;">
    -<tr>
    -	<td class="nobordernopadding" width="40" align="left" valign="middle">
    -		<?php echo $title_picto; ?>
    -	</td>
    -	<td class="nobordernopadding" valign="middle">
    -    	<div class="titre"><?php echo $title_text; ?></div>
    -	</td>
    -</tr>
    -</table>
    -
    -<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" name="formulaire">
    -<input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>">
    -<input type="hidden" name="action" value="list">
    -<input type="hidden" name="sortfield" value="<?php echo $sortfield; ?>">
    -<input type="hidden" name="sortorder" value="<?php echo $sortorder; ?>">
    -<input type="hidden" name="canvas" value="service">
    -<input type="hidden" name="type" value="1">
    -
    -<table class="liste allwidth">
    -
    -<!-- FIELDS TITLE -->
    -
    -<tr class="liste_titre">
    -	<?php
    - 	foreach($fieldlist as $field) {
    - 		if ($field['enabled']) {
    - 			if ($field['sort'])	{ ?>
    - 				<td class="liste_titre" align="<?php echo $field['align']; ?>"><?php echo $field['title']; ?>
    - 					<a href="<?php echo $_SERVER["PHP_SELF"];?>?sortfield=<?php echo $field['name']; ?>&amp;sortorder=asc&amp;begin=&amp;tosell=&amp;canvas=default&amp;fourn_id=&amp;snom=&amp;sref=">
    - 						<img src="<?php echo DOL_URL_ROOT; ?>/theme/<?php echo $conf->theme; ?>/img/1downarrow.png" border="0" alt="A-Z" title="A-Z">
    - 					</a>
    -  					<a href="<?php echo $_SERVER["PHP_SELF"];?>?sortfield=<?php echo $field['name']; ?>&amp;sortorder=desc&amp;begin=&amp;tosell=&amp;canvas=default&amp;fourn_id=&amp;snom=&amp;sref=">
    -  						<img src="<?php echo DOL_URL_ROOT; ?>/theme/<?php echo $conf->theme; ?>/img/1uparrow.png" border="0" alt="Z-A" title="Z-A">
    -  					</a>
    -  				</td>
    -  		<?php } else { ?>
    -  				<td class="liste_titre" align="<?php echo $field['align']; ?>"><?php echo $field['title']; ?></td>
    -	<?php } } } ?>
    -</tr>
    -
    - <!-- FIELDS SEARCH -->
    -
    -<tr class="liste_titre">
    -	<?php
    - 	$num = count($fieldlist);
    - 	foreach($fieldlist as $key => $searchfield)	{
    - 		if ($searchfield['enabled']) {
    - 			if ($searchfield['search'])	{ ?>
    -  				<td class="liste_titre" align="<?php echo $searchfield['align']; ?>"><input class="flat" type="text" name="s<?php echo $searchfield['alias']; ?>" value=""></td>
    -	<?php } else if ($key == $num) {
    -        print '<td class="liste_titre" align="right">';
    -        $searchpicto=$form->showFilterAndCheckAddButtons(0);
    -        print $searchpicto;
    -        print '</td>';
    - 			} else { ?>
    -  			<td class="liste_titre">&nbsp;</td>
    - 	<?php } } } ?>
    -</tr>
    -
    -<!-- FIELDS DATA -->
    -
    -<?php
    -foreach($datas as $line) {
    -		?>
    -	<tr class="oddeven">
    -   		<?php
    -   		foreach($line as $key => $value) {
    -   			foreach($fieldlist as $field) {
    -   				if ($field['alias'] == $key) { ?>
    -   					<td align="<?php echo $field['align']; ?>"><?php echo $value; ?></td>
    -   		<?php } } } ?>
    -   	</tr>
    -<?php } ?>
    -
    -</table>
    -</form>
    -
    -<!-- END PHP TEMPLATE -->
    \ No newline at end of file
    diff --git a/htdocs/product/card.php b/htdocs/product/card.php
    index 1fe43240305..698d65795f1 100644
    --- a/htdocs/product/card.php
    +++ b/htdocs/product/card.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2007	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2005		Eric Seigne				<eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2015	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2006		Andre Cianfarani		<acianfa@free.fr>
      * Copyright (C) 2006		Auguria SARL			<info@auguria.org>
      * Copyright (C) 2010-2015	Juanjo Menent			<jmenent@2byte.es>
    @@ -112,7 +112,7 @@ if (! empty($canvas))
     // Security check
     $fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref : ''));
     $fieldtype = (! empty($id) ? 'rowid' : 'ref');
    -$result=restrictedArea($user,'produit|service',$fieldvalue,'product&product','','',$fieldtype,$objcanvas);
    +$result=restrictedArea($user,'produit|service',$fieldvalue,'product&product','','',$fieldtype);
     
     // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
     $hookmanager->initHooks(array('productcard','globalcard'));
    @@ -477,7 +477,6 @@ if (empty($reshook))
                         $action = 'edit';
                     }
                 }
    -
             }
         }
     
    @@ -689,7 +688,7 @@ if (empty($reshook))
                     if (($result = $propal->defineBuyPrice($pu_ht, GETPOST('remise_percent'), $object->id)) < 0)
                     {
                         dol_syslog($langs->trans('FailedToGetCostPrice'));
    -                    setEventMessage($langs->trans('FailedToGetCostPrice'), 'errors');
    +                    setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors');
                     }
                     else
                     {
    @@ -732,7 +731,7 @@ if (empty($reshook))
                     if (($result = $commande->defineBuyPrice($pu_ht, GETPOST('remise_percent'), $object->id)) < 0)
                     {
                         dol_syslog($langs->trans('FailedToGetCostPrice'));
    -                    setEventMessage($langs->trans('FailedToGetCostPrice'), 'errors');
    +                    setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors');
                     }
                     else
                     {
    @@ -775,7 +774,7 @@ if (empty($reshook))
                     if (($result = $facture->defineBuyPrice($pu_ht, GETPOST('remise_percent'), $object->id)) < 0)
                     {
                         dol_syslog($langs->trans('FailedToGetCostPrice'));
    -                    setEventMessage($langs->trans('FailedToGetCostPrice'), 'errors');
    +                    setEventMessages($langs->trans('FailedToGetCostPrice'), null, 'errors');
                     }
                     else
                     {
    @@ -977,7 +976,7 @@ else
     	        }
     	        require_once DOL_DOCUMENT_ROOT.'/core/class/html.formbarcode.class.php';
                 $formbarcode = new FormBarCode($db);
    -	        print $formbarcode->select_barcode_type($fk_barcode_type, 'fk_barcode_type', 1);
    +            print $formbarcode->selectBarcodeType($fk_barcode_type, 'fk_barcode_type', 1);
     	        print '</td><td>'.$langs->trans("BarcodeValue").'</td><td>';
     	        $tmpcode=isset($_POST['barcode'])?GETPOST('barcode'):$object->barcode;
     	        if (empty($tmpcode) && ! empty($modBarCodeProduct->code_auto)) $tmpcode=$modBarCodeProduct->getNextValue($object,$type);
    @@ -1047,7 +1046,7 @@ else
                 // Weight
                 print '<tr><td>'.$langs->trans("Weight").'</td><td colspan="3">';
                 print '<input name="weight" size="4" value="'.GETPOST('weight').'">';
    -            print $formproduct->select_measuring_units("weight_units","weight");
    +            print $formproduct->select_measuring_units("weight_units", "weight", (empty($conf->global->MAIN_WEIGHT_DEFAULT_UNIT)?0:$conf->global->MAIN_WEIGHT_DEFAULT_UNIT));
                 print '</td></tr>';
                 // Length
                 if (empty($conf->global->PRODUCT_DISABLE_SIZE))
    @@ -1067,11 +1066,14 @@ else
                     print $formproduct->select_measuring_units("surface_units","surface");
                     print '</td></tr>';
                 }
    -            // Volume
    -            print '<tr><td>'.$langs->trans("Volume").'</td><td colspan="3">';
    -            print '<input name="volume" size="4" value="'.GETPOST('volume').'">';
    -            print $formproduct->select_measuring_units("volume_units","volume");
    -            print '</td></tr>';
    +            if (empty($conf->global->PRODUCT_DISABLE_VOLUME))
    +            {
    +                // Volume
    +                print '<tr><td>'.$langs->trans("Volume").'</td><td colspan="3">';
    +                print '<input name="volume" size="4" value="'.GETPOST('volume').'">';
    +                print $formproduct->select_measuring_units("volume_units","volume");
    +                print '</td></tr>';
    +            }
             }
     
             // Units
    @@ -1340,7 +1342,7 @@ else
     		        }
     		        require_once DOL_DOCUMENT_ROOT.'/core/class/html.formbarcode.class.php';
     	            $formbarcode = new FormBarCode($db);
    -		        print $formbarcode->select_barcode_type($fk_barcode_type, 'fk_barcode_type', 1);
    +                print $formbarcode->selectBarcodeType($fk_barcode_type, 'fk_barcode_type', 1);
     		        print '</td><td>'.$langs->trans("BarcodeValue").'</td><td>';
     		        $tmpcode=isset($_POST['barcode'])?GETPOST('barcode'):$object->barcode;
     		        if (empty($tmpcode) && ! empty($modBarCodeProduct->code_auto)) $tmpcode=$modBarCodeProduct->getNextValue($object,$type);
    @@ -1636,7 +1638,7 @@ else
     				}
                     if ($action == 'editbarcodetype')
                     {
    -                    $formbarcode->form_barcode_type($_SERVER['PHP_SELF'].'?id='.$object->id,$object->barcode_type,'fk_barcode_type');
    +                    print $formbarcode->formBarcodeType($_SERVER['PHP_SELF'].'?id='.$object->id, $object->barcode_type, 'fk_barcode_type');
                     }
                     else
                     {
    @@ -1940,7 +1942,6 @@ else
     
                 dol_fiche_end();
             }
    -
         }
         else if ($action != 'create')
         {
    @@ -2036,12 +2037,12 @@ if ($action != 'create' && $action != 'edit')
                 }
                 else
         		{
    -                print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("ProductIsUsed").'">'.$langs->trans("Delete").'</a></div>';
    +                print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("ProductIsUsed").'">'.$langs->trans("Delete").'</a></div>';
                 }
             }
             else
         	{
    -            print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("Delete").'</a></div>';
    +            print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans("Delete").'</a></div>';
             }
         }
     
    @@ -2199,6 +2200,6 @@ if ($action != 'create' && $action != 'edit' && $action != 'delete')
         print '</div></div></div>';
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/class/api_products.class.php b/htdocs/product/class/api_products.class.php
    index 8ba4eaaecc8..afacbb158b5 100644
    --- a/htdocs/product/class/api_products.class.php
    +++ b/htdocs/product/class/api_products.class.php
    @@ -46,44 +46,52 @@ class Products extends DolibarrApi
          */
         function __construct()
         {
    -		global $db, $conf;
    -		$this->db = $db;
    +        global $db, $conf;
    +        $this->db = $db;
             $this->product = new Product($this->db);
         }
     
         /**
    -     * Get properties of a product object
    +     * Get properties of a product object (from its ID, Ref, Ref_ext or Barcode)
          *
          * Return an array with product information.
          * TODO implement getting a product by ref or by $ref_ext
          *
    -     * @param 	int 	$id     			ID of product
    -     * @param	int		$includestockdata	Load also information about stock (slower)
    -     * @return 	array|mixed 				Data without useless information
    -	 *
    +     * @param  int    $id               ID of product
    +     * @param  string $ref              Ref of element
    +     * @param  string $ref_ext          Ref ext of element
    +     * @param  string $barcode          Barcode of element
    +     * @param  int    $includestockdata Load also information about stock (slower)
    +     * @return array|mixed                 Data without useless information
    +     *
          * @throws 401
          * @throws 403
          * @throws 404
          */
    -    function get($id, $includestockdata=0)
    +    function get($id, $ref='', $ref_ext='', $barcode='', $includestockdata=0)
         {
    -        if(! DolibarrApiAccess::$user->rights->produit->lire) {
    -			throw new RestException(403);
    -		}
    -
    -        $result = $this->product->fetch($id);
    -        if( ! $result ) {
    -            throw new RestException(404, 'Product not found');
    +        if (empty($id) && empty($ref) && empty($ref_ext) && empty($barcode)) {
    +            throw new RestException(400, 'bad value for parameter id, ref, ref_ext or barcode');
             }
     
    -		if( ! DolibarrApi::_checkAccessToResource('product',$this->product->id)) {
    -			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -		}
    +        $id = (empty($id)?0:$id);
    +        
    +        if(! DolibarrApiAccess::$user->rights->produit->lire) {
    +            throw new RestException(403);
    +        }
     
    -		if ($includestockdata)
    -		{
    -        	$this->product->load_stock();
    -		}
    +        $result = $this->product->fetch($id, $ref, $ref_ext, $barcode);
    +        if(! $result ) {
    +            throw new RestException(404, 'Product not found');
    +        }
    +        
    +        if(! DolibarrApi::_checkAccessToResource('product', $this->product->id)) {
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
    +
    +        if ($includestockdata) {
    +               $this->product->load_stock();
    +        }
     
             return $this->_cleanObjectDatas($this->product);
         }
    @@ -93,16 +101,17 @@ class Products extends DolibarrApi
          *
          * Get a list of products
          *
    -     * @param string	$sortfield	Sort field
    -     * @param string	$sortorder	Sort order
    -     * @param int		$limit		Limit for list
    -     * @param int		$page		Page number
    -     * @param int		$mode		Use this param to filter list (0 for all, 1 for only product, 2 for only service)
    -     * @param int		$category	Use this param to filter list by category
    -     * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.tobuy:=:0) and (t.tosell:=:1)"
    +     * @param  string $sortfield  Sort field
    +     * @param  string $sortorder  Sort order
    +     * @param  int    $limit      Limit for list
    +     * @param  int    $page       Page number
    +     * @param  int    $mode       Use this param to filter list (0 for all, 1 for only product, 2 for only service)
    +     * @param  int    $category   Use this param to filter list by category
    +     * @param  string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.tobuy:=:0) and (t.tosell:=:1)"
          * @return array                Array of product objects
          */
    -    function index($sortfield = "t.ref", $sortorder = 'ASC', $limit = 100, $page = 0, $mode=0, $category=0, $sqlfilters = '') {
    +    function index($sortfield = "t.ref", $sortorder = 'ASC', $limit = 100, $page = 0, $mode = 0, $category = 0, $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -111,36 +120,34 @@ class Products extends DolibarrApi
     
             $sql = "SELECT t.rowid, t.ref, t.ref_ext";
             $sql.= " FROM ".MAIN_DB_PREFIX."product as t";
    -        if ($category > 0)
    -        {
    +        if ($category > 0) {
                 $sql.= ", ".MAIN_DB_PREFIX."categorie_product as c";
             }
             $sql.= ' WHERE t.entity IN ('.getEntity('product').')';
             // Select products of given category
    -        if ($category > 0)
    -        {
    +        if ($category > 0) {
                 $sql.= " AND c.fk_categorie = ".$db->escape($category);
                 $sql.= " AND c.fk_product = t.rowid ";
             }
    -        // Show products
    -        if ($mode == 1) $sql.= " AND t.fk_product_type = 0";
    -        // Show services
    -        if ($mode == 2) $sql.= " AND t.fk_product_type = 1";
    +        if ($mode == 1) {
    +            // Show only products
    +            $sql.= " AND t.fk_product_type = 0";
    +        } elseif ($mode == 2) {
    +            // Show only services
    +            $sql.= " AND t.fk_product_type = 1";
    +        }
             // Add sql filters
    -        if ($sqlfilters)
    -        {
    -            if (! DolibarrApi::_checkFilters($sqlfilters))
    -            {
    +        if ($sqlfilters) {
    +            if (! DolibarrApi::_checkFilters($sqlfilters)) {
                     throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
                 }
    -	        $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
    +            $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
                 $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
             }
     
             $sql.= $db->order($sortfield, $sortorder);
    -        if ($limit)	{
    -            if ($page < 0)
    -            {
    +        if ($limit) {
    +            if ($page < 0) {
                     $page = 0;
                 }
                 $offset = $limit * $page;
    @@ -149,10 +156,10 @@ class Products extends DolibarrApi
             }
     
             $result = $db->query($sql);
    -        if ($result)
    -        {
    +        if ($result) {
                 $num = $db->num_rows($result);
                 $min = min($num, ($limit <= 0 ? $num : $limit));
    +            $i = 0;
                 while ($i < $min)
                 {
                     $obj = $db->fetch_object($result);
    @@ -166,7 +173,7 @@ class Products extends DolibarrApi
             else {
                 throw new RestException(503, 'Error when retrieve product list : '.$db->lasterror());
             }
    -        if( ! count($obj_ret)) {
    +        if(! count($obj_ret)) {
                 throw new RestException(404, 'No product found');
             }
             return $obj_ret;
    @@ -175,14 +182,14 @@ class Products extends DolibarrApi
         /**
          * Create product object
          *
    -     * @param   array   $request_data   Request data
    -     * @return  int     ID of product
    +     * @param  array $request_data Request data
    +     * @return int     ID of product
          */
         function post($request_data = null)
         {
             if(! DolibarrApiAccess::$user->rights->produit->creer) {
    -			throw new RestException(401);
    -		}
    +            throw new RestException(401);
    +        }
             // Check mandatory fields
             $result = $this->_validate($request_data);
     
    @@ -200,8 +207,8 @@ class Products extends DolibarrApi
          * Update product.
          * Price will be updated by this API only if option is set on "One price per product". See other APIs for other price modes.
          *
    -     * @param int   $id             Id of product to update
    -     * @param array $request_data   Datas
    +     * @param  int   $id           Id of product to update
    +     * @param  array $request_data Datas
          * @return int
          *
          * @throws RestException
    @@ -210,99 +217,102 @@ class Products extends DolibarrApi
          */
         function put($id, $request_data = null)
         {
    -    	global $conf;
    +        global $conf;
     
             if(! DolibarrApiAccess::$user->rights->produit->creer) {
    -			throw new RestException(401);
    -		}
    +            throw new RestException(401);
    +        }
     
             $result = $this->product->fetch($id);
    -        if( ! $result ) {
    +        if(! $result ) {
                 throw new RestException(404, 'Product not found');
             }
     
    -		if( ! DolibarrApi::_checkAccessToResource('product',$this->product->id)) {
    -			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -		}
    +        if(! DolibarrApi::_checkAccessToResource('product', $this->product->id)) {
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
     
    -		$oldproduct = dol_clone($this->product, 0);
    +        $oldproduct = dol_clone($this->product, 0);
     
             foreach($request_data as $field => $value) {
    -            if ($field == 'id') continue;
    +            if ($field == 'id') { continue;
    +            }
                 $this->product->$field = $value;
             }
     
             $result = $this->product->update($id, DolibarrApiAccess::$user, 1, 'update');
     
             // If price mode is 1 price per product
    -        if ($result > 0 && ! empty($conf->global->PRODUCT_PRICE_UNIQ))
    -        {
    -        	// We update price only if it was changed
    -        	$pricemodified = false;
    -        	if ($this->product->price_base_type != $oldproduct->price_base_type) $pricemodified = true;
    -        	else
    -        	{
    -        		if ($this->product->tva_tx != $oldproduct->tva_tx) $pricemodified = true;
    -        		if ($this->product->tva_npr != $oldproduct->tva_npr) $pricemodified = true;
    -        		if ($this->product->default_vat_code != $oldproduct->default_vat_code) $pricemodified = true;
    +        if ($result > 0 && ! empty($conf->global->PRODUCT_PRICE_UNIQ)) {
    +            // We update price only if it was changed
    +            $pricemodified = false;
    +            if ($this->product->price_base_type != $oldproduct->price_base_type) { $pricemodified = true;
    +            } else
    +            {
    +                if ($this->product->tva_tx != $oldproduct->tva_tx) { $pricemodified = true;
    +                }
    +                if ($this->product->tva_npr != $oldproduct->tva_npr) { $pricemodified = true;
    +                }
    +                if ($this->product->default_vat_code != $oldproduct->default_vat_code) { $pricemodified = true;
    +                }
     
    -        		if ($this->product->price_base_type == 'TTC')
    -	        	{
    -	        		if ($this->product->price_ttc != $oldproduct->price_ttc) $pricemodified = true;
    -	        		if ($this->product->price_min_ttc != $oldproduct->price_min_ttc) $pricemodified = true;
    -	        	}
    -	        	else
    -	        	{
    -	        		if ($this->product->price != $oldproduct->price) $pricemodified = true;
    -	        		if ($this->product->price_min != $oldproduct->price_min) $pricemodified = true;
    -		      	}
    -        	}
    +                if ($this->product->price_base_type == 'TTC') {
    +                    if ($this->product->price_ttc != $oldproduct->price_ttc) { $pricemodified = true;
    +                    }
    +                    if ($this->product->price_min_ttc != $oldproduct->price_min_ttc) { $pricemodified = true;
    +                    }
    +                }
    +                else
    +                {
    +                    if ($this->product->price != $oldproduct->price) { $pricemodified = true;
    +                    }
    +                    if ($this->product->price_min != $oldproduct->price_min) { $pricemodified = true;
    +                    }
    +                }
    +            }
     
    -        	if ($pricemodified)
    -        	{
    -        		$newvat = $this->product->tva_tx;
    -        		$newnpr = $this->product->tva_npr;
    -        		$newvatsrccode = $this->product->default_vat_code;
    +            if ($pricemodified) {
    +                $newvat = $this->product->tva_tx;
    +                $newnpr = $this->product->tva_npr;
    +                $newvatsrccode = $this->product->default_vat_code;
     
    -        		$newprice = $this->product->price;
    -        		$newpricemin = $this->product->price_min;
    -        		if ($this->product->price_base_type == 'TTC')
    -        		{
    -        			$newprice = $this->product->price_ttc;
    -        			$newpricemin = $this->product->price_min_ttc;
    -        		}
    +                $newprice = $this->product->price;
    +                $newpricemin = $this->product->price_min;
    +                if ($this->product->price_base_type == 'TTC') {
    +                    $newprice = $this->product->price_ttc;
    +                    $newpricemin = $this->product->price_min_ttc;
    +                }
     
    -        		$result = $this->product->updatePrice($newprice, $this->product->price_base_type, DolibarrApiAccess::$user, $newvat, $newpricemin, 0, $newnpr, 0, 0, array(), $newvatsrccode);
    -        	}
    +                $result = $this->product->updatePrice($newprice, $this->product->price_base_type, DolibarrApiAccess::$user, $newvat, $newpricemin, 0, $newnpr, 0, 0, array(), $newvatsrccode);
    +            }
             }
     
    -        if ($result <= 0)
    -        {
    -			throw new RestException(500, "Error updating product", array_merge(array($this->product->error), $this->product->errors));
    -		}
    +        if ($result <= 0) {
    +            throw new RestException(500, "Error updating product", array_merge(array($this->product->error), $this->product->errors));
    +        }
     
    -		return $this->get($id);
    +        return $this->get($id);
         }
     
         /**
          * Delete product
          *
    -     * @param   int     $id   Product ID
    -     * @return  array
    +     * @param  int $id Product ID
    +     * @return array
          */
         function delete($id)
         {
             if(! DolibarrApiAccess::$user->rights->produit->supprimer) {
    -			throw new RestException(401);
    -		}
    +            throw new RestException(401);
    +        }
             $result = $this->product->fetch($id);
    -        if( ! $result ) {
    +        if(! $result ) {
                 throw new RestException(404, 'Product not found');
             }
     
    -		if( ! DolibarrApi::_checkAccessToResource('product',$this->product->id)) {
    -			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    -		}
    +        if(! DolibarrApi::_checkAccessToResource('product', $this->product->id)) {
    +            throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +        }
     
             // The Product::delete() method uses the global variable $user.
             global $user;
    @@ -315,41 +325,41 @@ class Products extends DolibarrApi
         /**
          * Get categories for a product
          *
    -     * @param int		$id         ID of product
    -     * @param string	$sortfield	Sort field
    -     * @param string	$sortorder	Sort order
    -     * @param int		$limit		Limit for list
    -     * @param int		$page		Page number
    +     * @param int    $id        ID of product
    +     * @param string $sortfield Sort field
    +     * @param string $sortorder Sort order
    +     * @param int    $limit     Limit for list
    +     * @param int    $page      Page number
          *
          * @return mixed
          *
          * @url GET {id}/categories
          */
    -	function getCategories($id, $sortfield = "s.rowid", $sortorder = 'ASC', $limit = 0, $page = 0)
    -	{
    -		if (! DolibarrApiAccess::$user->rights->categorie->lire) {
    -			throw new RestException(401);
    -		}
    +    function getCategories($id, $sortfield = "s.rowid", $sortorder = 'ASC', $limit = 0, $page = 0)
    +    {
    +        if (! DolibarrApiAccess::$user->rights->categorie->lire) {
    +            throw new RestException(401);
    +        }
     
    -		$categories = new Categorie($this->db);
    +        $categories = new Categorie($this->db);
     
    -		$result = $categories->getListForItem($id, 'product', $sortfield, $sortorder, $limit, $page);
    +        $result = $categories->getListForItem($id, 'product', $sortfield, $sortorder, $limit, $page);
     
    -		if (empty($result)) {
    -			throw new RestException(404, 'No category found');
    -		}
    +        if (empty($result)) {
    +            throw new RestException(404, 'No category found');
    +        }
     
    -		if ($result < 0) {
    -			throw new RestException(503, 'Error when retrieve category list : '.array_merge(array($categories->error), $categories->errors));  
    -		}
    +        if ($result < 0) {
    +            throw new RestException(503, 'Error when retrieve category list : '.array_merge(array($categories->error), $categories->errors));
    +        }
     
    -		return $result;
    +        return $result;
         }
     
         /**
          * Get prices per segment for a product
          *
    -     * @param int		$id         ID of product
    +     * @param int $id ID of product
          *
          * @return mixed
          *
    @@ -357,41 +367,40 @@ class Products extends DolibarrApi
          */
         function getCustomerPricesPerSegment($id)
         {
    -    	global $conf;
    +        global $conf;
     
    -    	if (! DolibarrApiAccess::$user->rights->produit->lire) {
    -    		throw new RestException(401);
    -    	}
    +        if (! DolibarrApiAccess::$user->rights->produit->lire) {
    +            throw new RestException(401);
    +        }
     
    -    	if (empty($conf->global->PRODUIT_MULTIPRICES))
    -    	{
    -    		throw new RestException(400, 'API not available: this mode of pricing is not enabled by setup');
    -    	}
    +        if (empty($conf->global->PRODUIT_MULTIPRICES)) {
    +            throw new RestException(400, 'API not available: this mode of pricing is not enabled by setup');
    +        }
     
    -    	$result = $this->product->fetch($id);
    -    	if ( ! $result ) {
    -    		throw new RestException(404, 'Product not found');
    -    	}
    +        $result = $this->product->fetch($id);
    +        if (! $result ) {
    +            throw new RestException(404, 'Product not found');
    +        }
     
    -    	if ($result < 0) {
    -    		throw new RestException(503, 'Error when retrieve prices list : '.array_merge(array($this->product->error), $this->product->errors));
    -    	}
    +        if ($result < 0) {
    +            throw new RestException(503, 'Error when retrieve prices list : '.array_merge(array($this->product->error), $this->product->errors));
    +        }
     
    -    	return array(
    -    	'multiprices'=>$this->product->multiprices,
    -    	'multiprices_inc_tax'=>$this->product->multiprices_ttc,
    -    	'multiprices_min'=>$this->product->multiprices_min,
    -    	'multiprices_min_inc_tax'=>$this->product->multiprices_min_ttc,
    -    	'multiprices_vat'=>$this->product->multiprices_tva_tx,
    -    	'multiprices_base_type'=>$this->product->multiprices_base_type,
    -    	//'multiprices_default_vat_code'=>$this->product->multiprices_default_vat_code
    -    	);
    +        return array(
    +        'multiprices'=>$this->product->multiprices,
    +        'multiprices_inc_tax'=>$this->product->multiprices_ttc,
    +        'multiprices_min'=>$this->product->multiprices_min,
    +        'multiprices_min_inc_tax'=>$this->product->multiprices_min_ttc,
    +        'multiprices_vat'=>$this->product->multiprices_tva_tx,
    +        'multiprices_base_type'=>$this->product->multiprices_base_type,
    +        //'multiprices_default_vat_code'=>$this->product->multiprices_default_vat_code
    +        );
         }
     
         /**
          * Get prices per customer for a product
          *
    -     * @param int		$id         ID of product
    +     * @param int $id ID of product
          *
          * @return mixed
          *
    @@ -399,34 +408,33 @@ class Products extends DolibarrApi
          */
         function getCustomerPricesPerCustomer($id)
         {
    -    	global $conf;
    +        global $conf;
     
    -    	if (! DolibarrApiAccess::$user->rights->produit->lire) {
    -    		throw new RestException(401);
    -    	}
    +        if (! DolibarrApiAccess::$user->rights->produit->lire) {
    +            throw new RestException(401);
    +        }
     
    -    	if (empty($conf->global->PRODUIT_CUSTOMER_PRICES))
    -    	{
    -    		throw new RestException(400, 'API not available: this mode of pricing is not enabled by setup');
    -    	}
    +        if (empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
    +            throw new RestException(400, 'API not available: this mode of pricing is not enabled by setup');
    +        }
     
    -    	$result = $this->product->fetch($id);
    -    	if ( ! $result ) {
    -    		throw new RestException(404, 'Product not found');
    -    	}
    +        $result = $this->product->fetch($id);
    +        if (! $result ) {
    +            throw new RestException(404, 'Product not found');
    +        }
     
    -    	if ($result < 0) {
    -    		throw new RestException(503, 'Error when retrieve prices list : '.array_merge(array($this->product->error), $this->product->errors));
    -    	}
    +        if ($result < 0) {
    +            throw new RestException(503, 'Error when retrieve prices list : '.array_merge(array($this->product->error), $this->product->errors));
    +        }
     
    -    	throw new RestException(501, 'Feature not yet available');
    -    	//return $result;
    +        throw new RestException(501, 'Feature not yet available');
    +        //return $result;
         }
     
         /**
          * Get prices per quantity for a product
          *
    -     * @param int		$id         ID of product
    +     * @param int $id ID of product
          *
          * @return mixed
          *
    @@ -434,40 +442,40 @@ class Products extends DolibarrApi
          */
         function getCustomerPricesPerQuantity($id)
         {
    -    	global $conf;
    +        global $conf;
     
    -    	if (! DolibarrApiAccess::$user->rights->produit->lire) {
    -    		throw new RestException(401);
    -    	}
    +        if (! DolibarrApiAccess::$user->rights->produit->lire) {
    +            throw new RestException(401);
    +        }
     
    -    	if (empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY))
    -    	{
    -    		throw new RestException(400, 'API not available: this mode of pricing is not enabled by setup');
    -    	}
    +        if (empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) {
    +            throw new RestException(400, 'API not available: this mode of pricing is not enabled by setup');
    +        }
     
    -    	$result = $this->product->fetch($id);
    -    	if ( ! $result ) {
    -    		throw new RestException(404, 'Product not found');
    -    	}
    +        $result = $this->product->fetch($id);
    +        if (! $result ) {
    +            throw new RestException(404, 'Product not found');
    +        }
     
    -    	if ($result < 0) {
    -    		throw new RestException(503, 'Error when retrieve prices list : '.array_merge(array($this->product->error), $this->product->errors));
    -    	}
    +        if ($result < 0) {
    +            throw new RestException(503, 'Error when retrieve prices list : '.array_merge(array($this->product->error), $this->product->errors));
    +        }
     
    -    	return array(
    -    		'prices_by_qty'=>$this->product->prices_by_qty[0],				// 1 if price by quantity was activated for the product
    -    		'prices_by_qty_list'=>$this->product->prices_by_qty_list[0]
    -    	);
    +        return array(
    +        'prices_by_qty'=>$this->product->prices_by_qty[0],                // 1 if price by quantity was activated for the product
    +        'prices_by_qty_list'=>$this->product->prices_by_qty_list[0]
    +        );
         }
     
     
         /**
          * Clean sensible object datas
          *
    -     * @param   object  $object    Object to clean
    -     * @return    array    Array of cleaned object properties
    +     * @param  object $object Object to clean
    +     * @return array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    @@ -490,7 +498,7 @@ class Products extends DolibarrApi
         /**
          * Validate fields before create or update object
          *
    -     * @param array $data   Datas to validate
    +     * @param  array $data Datas to validate
          * @return array
          * @throws RestException
          */
    @@ -498,8 +506,9 @@ class Products extends DolibarrApi
         {
             $product = array();
             foreach (Products::$FIELDS as $field) {
    -            if (!isset($data[$field]))
    +            if (!isset($data[$field])) {
                     throw new RestException(400, "$field field missing");
    +            }
                 $product[$field] = $data[$field];
             }
             return $product;
    diff --git a/htdocs/product/class/html.formproduct.class.php b/htdocs/product/class/html.formproduct.class.php
    index 6ae31645a50..5356d212c38 100644
    --- a/htdocs/product/class/html.formproduct.class.php
    +++ b/htdocs/product/class/html.formproduct.class.php
    @@ -29,8 +29,15 @@ require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
      */
     class FormProduct
     {
    -	var $db;
    -	var $error;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     	// Cache arrays
     	var $cache_warehouses=array();
    @@ -45,8 +52,6 @@ class FormProduct
     	function __construct($db)
     	{
     		$this->db = $db;
    -
    -		return 1;
     	}
     
     
    @@ -160,6 +165,7 @@ class FormProduct
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
     	/**
     	 * Return full path to current warehouse in $tab (recursive function)
     	 *
    @@ -167,8 +173,9 @@ class FormProduct
     	 * @param	String	$final_label	full label with all parents, separated by ' >> ' (completed on each call)
     	 * @return	String					full label with all parents, separated by ' >> '
     	 */
    -	private function get_parent_path($tab, $final_label='') {
    -
    +    private function get_parent_path($tab, $final_label='')
    +    {
    +        //phpcs:enable
     		if(empty($final_label)) $final_label = $tab['label'];
     
     		if(empty($tab['parent_id'])) return $final_label;
    @@ -180,7 +187,6 @@ class FormProduct
     		}
     
     		return $final_label;
    -
     	}
     
     	/**
    @@ -274,6 +280,7 @@ class FormProduct
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Output a combo box with list of units
     	 *  pour l'instant on ne definit pas les unites dans la base
    @@ -286,9 +293,11 @@ class FormProduct
     	 */
     	function select_measuring_units($name='measuring_units', $measuring_style='', $default='0', $adddefault=0)
     	{
    +        //phpcs:enable
     		print $this->load_measuring_units($name, $measuring_style, $default, $adddefault);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return a combo box with list of units
     	 *  For the moment, units labels are defined in measuring_units_string
    @@ -301,6 +310,7 @@ class FormProduct
     	 */
     	function load_measuring_units($name='measuring_units', $measuring_style='', $default='0', $adddefault=0)
     	{
    +        //phpcs:enable
     		global $langs,$conf,$mysoc;
     		$langs->load("other");
     
    @@ -483,4 +493,4 @@ class FormProduct
     			}
     		}
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php
    index 66f7e288efa..bbdc1d456ee 100644
    --- a/htdocs/product/class/product.class.php
    +++ b/htdocs/product/class/product.class.php
    @@ -1,10 +1,10 @@
     <?php
    -/* Copyright (C) 2001-2007	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    +/* Copyright (C) 2001-2007    Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2015	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2006		Andre Cianfarani		<acianfa@free.fr>
      * Copyright (C) 2007-2011	Jean Heimburger			<jean@tiaris.info>
    - * Copyright (C) 2010-2013	Juanjo Menent			<jmenent@2byte.es>
    + * Copyright (C) 2010-2018	Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2012       Cedric Salvador         <csalvador@gpcsolutions.fr>
      * Copyright (C) 2013-2014	Cedric GROSS			<c.gross@kreiz-it.fr>
      * Copyright (C) 2013-2016	Marcos García			<marcosgdf@gmail.com>
    @@ -30,9 +30,9 @@
      */
     
     /**
    - *	\file       htdocs/product/class/product.class.php
    - *	\ingroup    produit
    - *	\brief      File of class to manage predefined products or services
    + *    \file       htdocs/product/class/product.class.php
    + *    \ingroup    produit
    + *    \brief      File of class to manage predefined products or services
      */
     require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
     require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php';
    @@ -43,594 +43,647 @@ require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
      */
     class Product extends CommonObject
     {
    -	public $element='product';
    -	public $table_element='product';
    -	public $fk_element='fk_product';
    -	protected $childtables=array('supplier_proposaldet', 'propaldet','commandedet','facturedet','contratdet','facture_fourn_det','commande_fournisseurdet');    // To test if we can delete object
    -	public $ismultientitymanaged = 1;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +    /**
    +     * @var string ID to identify managed object
    +     */
    +    public $element='product';
     
    -	/**
    -	 * {@inheritdoc}
    -	 */
    -	protected $table_ref_field = 'ref';
    +    /**
    +     * @var string Name of table without prefix where object is stored
    +     */
    +    public $table_element='product';
     
    -	public $regeximgext='\.gif|\.jpg|\.jpeg|\.png|\.bmp|\.xpm|\.xbm'; // See also into images.lib.php
    +    /**
    +     * @var int Field with ID of parent key if this field has a parent
    +     */
    +    public $fk_element='fk_product';
     
    -	/*
    -	 * @deprecated
    -	 * @see label
    -	 */
    -	public $libelle;
    -	/**
    -	 * Product label
    -	 * @var string
    -	 */
    -	public $label;
    +    protected $childtables=array('supplier_proposaldet', 'propaldet','commandedet','facturedet','contratdet','facture_fourn_det','commande_fournisseurdet');    // To test if we can delete object
     
    -	/**
    -     	* Product descripion
    -     	* @var string
    -     	*/
    -	public $description;
    +    /**
    +     * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +     *
    +     * @var int
    +     */
    +    public $ismultientitymanaged = 1;
     
    -	/**
    -	 * Check TYPE constants
    -	 * @var int
    -	 */
    -	public $type = self::TYPE_PRODUCT;
    +    /**
    +     * {@inheritdoc}
    +     */
    +    protected $table_ref_field = 'ref';
     
    -	/**
    -	 * Selling price
    -	 * @var float
    -	 */
    -	public $price;			// Price net
    +    public $regeximgext='\.gif|\.jpg|\.jpeg|\.png|\.bmp|\.xpm|\.xbm'; // See also into images.lib.php
     
    -	/**
    -	 * Price with tax
    -	 * @var float
    -	 */
    -	public $price_ttc;
    +    /*
    +    * @deprecated
    +    * @see label
    +    */
    +    public $libelle;
    +    /**
    +     * Product label
    +     *
    +     * @var string
    +     */
    +    public $label;
     
    -	/**
    -	 * Minimum price net
    -	 * @var float
    -	 */
    -	public $price_min;
    +    /**
    +     * Product descripion
    +     *
    +     * @var string
    +     */
    +    public $description;
     
    -	/**
    -	 * Minimum price with tax
    -	 * @var float
    -	 */
    -	public $price_min_ttc;
    +    /**
    +     * Check TYPE constants
    +     *
    +     * @var int
    +     */
    +    public $type = self::TYPE_PRODUCT;
     
    -	/*
    -	 * Base price ('TTC' for price including tax or 'HT' for net price)
    -	 * @var float
    -	 */
    -	public $price_base_type;
    +    /**
    +     * Selling price
    +     *
    +     * @var float
    +     */
    +    public $price;            // Price net
     
    -	//! Arrays for multiprices
    -	public $multiprices=array();
    -	public $multiprices_ttc=array();
    -	public $multiprices_base_type=array();
    -	public $multiprices_min=array();
    -	public $multiprices_min_ttc=array();
    -	public $multiprices_tva_tx=array();
    -	public $multiprices_recuperableonly=array();
    +    /**
    +     * Price with tax
    +     *
    +     * @var float
    +     */
    +    public $price_ttc;
     
    -	//! Price by quantity arrays
    -	public $price_by_qty;
    -	public $prices_by_qty=array();
    -	public $prices_by_qty_id=array();
    -	public $prices_by_qty_list=array();
    +    /**
    +     * Minimum price net
    +     *
    +     * @var float
    +     */
    +    public $price_min;
     
    -	//! Default VAT code for product (link to code into llx_c_tva but without foreign keys)
    -	public $default_vat_code;
    +    /**
    +     * Minimum price with tax
    +     *
    +     * @var float
    +     */
    +    public $price_min_ttc;
     
    -	//! Default VAT rate of product
    -	public $tva_tx;
    +    /*
    +    * Base price ('TTC' for price including tax or 'HT' for net price)
    +    * @var float
    +    */
    +    public $price_base_type;
     
    -	//! French VAT NPR (0 or 1)
    +    //! Arrays for multiprices
    +    public $multiprices=array();
    +    public $multiprices_ttc=array();
    +    public $multiprices_base_type=array();
    +    public $multiprices_min=array();
    +    public $multiprices_min_ttc=array();
    +    public $multiprices_tva_tx=array();
    +    public $multiprices_recuperableonly=array();
    +
    +    //! Price by quantity arrays
    +    public $price_by_qty;
    +    public $prices_by_qty=array();
    +    public $prices_by_qty_id=array();
    +    public $prices_by_qty_list=array();
    +
    +    //! Default VAT code for product (link to code into llx_c_tva but without foreign keys)
    +    public $default_vat_code;
    +
    +    //! Default VAT rate of product
    +    public $tva_tx;
    +
    +    //! French VAT NPR (0 or 1)
         public $tva_npr=0;
     
    -	//! Other local taxes
    -	public $localtax1_tx;
    -	public $localtax2_tx;
    -	public $localtax1_type;
    -	public $localtax2_type;
    +    //! Other local taxes
    +    public $localtax1_tx;
    +    public $localtax2_tx;
    +    public $localtax1_type;
    +    public $localtax2_type;
     
    -	/**
    -	 * Stock real
    -	 * @var int
    -	 */
    -	public $stock_reel = 0;
    +    /**
    +     * Stock real
    +     *
    +     * @var int
    +     */
    +    public $stock_reel = 0;
     
    -	/**
    -	 * Stock virtual
    -	 * @var int
    -	 */
    -	public $stock_theorique;
    +    /**
    +     * Stock virtual
    +     *
    +     * @var int
    +     */
    +    public $stock_theorique;
     
    -	/**
    -	 * Cost price
    -	 * @var float
    -	 */
    -	public $cost_price;
    +    /**
    +     * Cost price
    +     *
    +     * @var float
    +     */
    +    public $cost_price;
     
    -	//! Average price value for product entry into stock (PMP)
    -	public $pmp;
    +    //! Average price value for product entry into stock (PMP)
    +    public $pmp;
     
    -	/**
    -	 * Stock alert
    -	 * @var int
    -	 */
    -	public $seuil_stock_alerte=0;
    +    /**
    +     * Stock alert
    +     *
    +     * @var int
    +     */
    +    public $seuil_stock_alerte=0;
     
    -	/**
    -	 * Ask for replenishment when $desiredstock < $stock_reel
    -	 */
    -	public $desiredstock=0;
    +    /**
    +     * Ask for replenishment when $desiredstock < $stock_reel
    +     */
    +    public $desiredstock=0;
     
    -	/*
    -	 * Service expiration
    -	 */
    -	public $duration_value;
    +    /*
    +    * Service expiration
    +    */
    +    public $duration_value;
     
    -	/**
    -	 * Exoiration unit
    -	 */
    -	public $duration_unit;
    +    /**
    +     * Exoiration unit
    +     */
    +    public $duration_unit;
     
    -	/**
    -	 * Status indicates whether the product is on sale '1' or not '0'
    -	 * @var int
    -	 */
    -	public $status=0;
    +    /**
    +     * Status indicates whether the product is on sale '1' or not '0'
    +     *
    +     * @var int
    +     */
    +    public $status=0;
     
    -	/**
    -	 * Status indicate whether the product is available for purchase '1' or not '0'
    -	 * @var int
    -	 */
    -	public $status_buy=0;
    +    /**
    +     * Status indicate whether the product is available for purchase '1' or not '0'
    +     *
    +     * @var int
    +     */
    +    public $status_buy=0;
     
    -	/**
    -	 * Status indicates whether the product is a finished product '1' or a raw material '0'
    -	 * @var int
    -	 */
    -	public $finished;
    +    /**
    +     * Status indicates whether the product is a finished product '1' or a raw material '0'
    +     *
    +     * @var int
    +     */
    +    public $finished;
     
    -	/**
    -	 * We must manage lot/batch number, sell-by date and so on : '1':yes '0':no
    -	 * @var int
    -	 */
    -	public $status_batch=0;
    +    /**
    +     * We must manage lot/batch number, sell-by date and so on : '1':yes '0':no
    +     *
    +     * @var int
    +     */
    +    public $status_batch=0;
     
    -	/**
    -	 * Customs code
    -	 * @var
    -	 */
    -	public $customcode;
    +    /**
    +     * Customs code
    +     *
    +     * @var
    +     */
    +    public $customcode;
     
    -	/**
    -	 * Product URL
    -	 * @var string
    -	 */
    -	public $url;
    +    /**
    +     * Product URL
    +     *
    +     * @var string
    +     */
    +    public $url;
     
    -	//! Unites de mesure
    -	public $weight;
    -	public $weight_units;
    -	public $length;
    -	public $length_units;
    -	public $surface;
    -	public $surface_units;
    -	public $volume;
    -	public $volume_units;
    +    //! Unites de mesure
    +    public $weight;
    +    public $weight_units;
    +    public $length;
    +    public $length_units;
    +    public $surface;
    +    public $surface_units;
    +    public $volume;
    +    public $volume_units;
     
    -	public $accountancy_code_sell;
    -	public $accountancy_code_sell_intra;
    -	public $accountancy_code_sell_export;
    -	public $accountancy_code_buy;
    +    public $accountancy_code_sell;
    +    public $accountancy_code_sell_intra;
    +    public $accountancy_code_sell_export;
    +    public $accountancy_code_buy;
     
    -	/**
    -	 * Main barcode
    -	 * barcode value
    -	 * @var
    -	 */
    -	public $barcode;
    +    /**
    +     * Main barcode
    +     * barcode value
    +     *
    +     * @var
    +     */
    +    public $barcode;
     
    -	/**
    -	 * Additional barcodes (Some products have different barcodes according to the country of origin of manufacture)
    -	 * @var array
    -	 */
    -	public $barcodes_extra=array();
    +    /**
    +     * Additional barcodes (Some products have different barcodes according to the country of origin of manufacture)
    +     *
    +     * @var array
    +     */
    +    public $barcodes_extra=array();
     
    -	public $stats_propale=array();
    -	public $stats_commande=array();
    -	public $stats_contrat=array();
    -	public $stats_facture=array();
    +    public $stats_propale=array();
    +    public $stats_commande=array();
    +    public $stats_contrat=array();
    +    public $stats_facture=array();
         public $stats_commande_fournisseur=array();
     
    -	public $multilangs=array();
    +    public $multilangs=array();
     
    -	//! Taille de l'image
    -	public $imgWidth;
    -	public $imgHeight;
    +    //! Taille de l'image
    +    public $imgWidth;
    +    public $imgHeight;
     
    -	public $date_creation;
    -	public $date_modification;
    +    public $date_creation;
    +    public $date_modification;
     
    -	//! Id du fournisseur
    -	public $product_fourn_id;
    +    //! Id du fournisseur
    +    public $product_fourn_id;
     
    -	//! Product ID already linked to a reference supplier
    -	public $product_id_already_linked;
    +    //! Product ID already linked to a reference supplier
    +    public $product_id_already_linked;
     
    -	public $nbphoto=0;
    +    public $nbphoto=0;
     
    -	//! Contains detail of stock of product into each warehouse
    -	public $stock_warehouse=array();
    +    //! Contains detail of stock of product into each warehouse
    +    public $stock_warehouse=array();
     
    -	public $oldcopy;
    +    public $oldcopy;
     
    +    public $fk_default_warehouse;
    +    /**
    +     * @var int ID
    +     */
         public $fk_price_expression;
     
         /* To store supplier price found */
    -	public $fourn_pu;
    -	public $fourn_price_base_type;
    -	public $fourn_socid;
    +    public $fourn_pu;
    +    public $fourn_price_base_type;
    +    public $fourn_socid;
     
    -	/**
    -	 * @deprecated
    -	 * @see ref_supplier
    -	 */
    -	public $ref_fourn;
    -	public $ref_supplier;
    +    /**
    +     * @deprecated
    +     * @see        $ref_supplier
    +     */
    +    public $ref_fourn;
    +    public $ref_supplier;
     
    -	/**
    -	 * Unit code ('km', 'm', 'l', 'p', ...)
    -	 * @var string
    -	 */
    -	public $fk_unit;
    +    /**
    +     * Unit code ('km', 'm', 'l', 'p', ...)
    +     *
    +     * @var string
    +     */
    +    public $fk_unit;
     
    -	/**
    -	 * Price is generated using multiprice rules
    -	 * @var int
    -	 */
    -	public $price_autogen = 0;
    +    /**
    +     * Price is generated using multiprice rules
    +     *
    +     * @var int
    +     */
    +    public $price_autogen = 0;
     
     
    -	/**
    -	 * Regular product
    -	 */
    -	const TYPE_PRODUCT = 0;
    -	/**
    -	 * Service
    -	 */
    -	const TYPE_SERVICE = 1;
    -	/**
    -	 * Advanced feature: assembly kit
    -	 */
    -	const TYPE_ASSEMBLYKIT = 2;
    -	/**
    -	 * Advanced feature: stock kit
    -	 */
    -	const TYPE_STOCKKIT = 3;
    +    public $fields = array(
    +    'rowid'         =>array('type'=>'integer',      'label'=>'TechnicalID',      'enabled'=>1, 'visible'=>-2, 'notnull'=>1,  'index'=>1, 'position'=>1, 'comment'=>'Id'),
    +    'ref'           =>array('type'=>'varchar(128)', 'label'=>'Ref',              'enabled'=>1, 'visible'=>1,  'notnull'=>1,  'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'),
    +    'entity'        =>array('type'=>'integer',      'label'=>'Entity',           'enabled'=>1, 'visible'=>0,  'default'=>1, 'notnull'=>1,  'index'=>1, 'position'=>20),
    +    'note_public'   =>array('type'=>'html',            'label'=>'NotePublic',         'enabled'=>1, 'visible'=>0,  'position'=>61),
    +    'note'          =>array('type'=>'html',            'label'=>'NotePrivate',         'enabled'=>1, 'visible'=>0,  'position'=>62),
    +    'datec'         =>array('type'=>'datetime',     'label'=>'DateCreation',     'enabled'=>1, 'visible'=>-2, 'notnull'=>1,  'position'=>500),
    +    'tms'           =>array('type'=>'timestamp',    'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1,  'position'=>501),
    +    //'date_valid'    =>array('type'=>'datetime',     'label'=>'DateCreation',     'enabled'=>1, 'visible'=>-2, 'position'=>502),
    +    'fk_user_author'=>array('type'=>'integer',      'label'=>'UserAuthor',       'enabled'=>1, 'visible'=>-2, 'notnull'=>1,  'position'=>510, 'foreignkey'=>'llx_user.rowid'),
    +    'fk_user_modif' =>array('type'=>'integer',      'label'=>'UserModif',        'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>511),
    +    //'fk_user_valid' =>array('type'=>'integer',      'label'=>'UserValidation',        'enabled'=>1, 'visible'=>-1, 'position'=>512),
    +    'import_key'    =>array('type'=>'varchar(14)',  'label'=>'ImportId',         'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'index'=>0,  'position'=>1000),
    +    //'tosell'       =>array('type'=>'integer',      'label'=>'Status',           'enabled'=>1, 'visible'=>1,  'notnull'=>1, 'default'=>0, 'index'=>1,  'position'=>1000, 'arrayofkeyval'=>array(0=>'Draft', 1=>'Active', -1=>'Cancel')),
    +    //'tobuy'        =>array('type'=>'integer',      'label'=>'Status',           'enabled'=>1, 'visible'=>1,  'notnull'=>1, 'default'=>0, 'index'=>1,  'position'=>1000, 'arrayofkeyval'=>array(0=>'Draft', 1=>'Active', -1=>'Cancel')),
    +    );
    +
    +    /**
    +     * Regular product
    +     */
    +    const TYPE_PRODUCT = 0;
    +    /**
    +     * Service
    +     */
    +    const TYPE_SERVICE = 1;
    +    /**
    +     * Advanced feature: assembly kit
    +     */
    +    const TYPE_ASSEMBLYKIT = 2;
    +    /**
    +     * Advanced feature: stock kit
    +     */
    +    const TYPE_STOCKKIT = 3;
     
     
    -	/**
    -	 *  Constructor
    -	 *
    -	 *  @param      DoliDB		$db      Database handler
    -	 */
    -	function __construct($db)
    -	{
    -		global $langs;
    +    /**
    +     *  Constructor
    +     *
    +     * @param DoliDB $db Database handler
    +     */
    +    function __construct($db)
    +    {
    +        $this->db = $db;
    +        $this->canvas = '';
    +    }
     
    -		$this->db = $db;
    -		$this->canvas = '';
    -	}
    +    /**
    +     *    Check that ref and label are ok
    +     *
    +     * @return int         >1 if OK, <=0 if KO
    +     */
    +    function check()
    +    {
    +        $this->ref = dol_sanitizeFileName(stripslashes($this->ref));
     
    -	/**
    -	 *    Check that ref and label are ok
    -	 *
    -	 *    @return     int         >1 if OK, <=0 if KO
    -	 */
    -	function check()
    -	{
    -		$this->ref = dol_sanitizeFileName(stripslashes($this->ref));
    +        $err = 0;
    +        if (dol_strlen(trim($this->ref)) == 0) {
    +            $err++;
    +        }
     
    -		$err = 0;
    -		if (dol_strlen(trim($this->ref)) == 0)
    -		$err++;
    +        if (dol_strlen(trim($this->label)) == 0) {
    +            $err++;
    +        }
     
    -		if (dol_strlen(trim($this->label)) == 0)
    -		$err++;
    -
    -		if ($err > 0)
    -		{
    -			return 0;
    -		}
    -		else
    -		{
    -			return 1;
    -		}
    -	}
    -
    -	/**
    -	 *	Insert product into database
    -	 *
    -	 *	@param	User	$user     		User making insert
    -	 *  @param	int		$notrigger		Disable triggers
    -	 *	@return int			     		Id of product/service if OK, < 0 if KO
    -	 */
    -	function create($user,$notrigger=0)
    -	{
    -		global $conf, $langs;
    -
    -        	$error=0;
    -
    -		// Clean parameters
    -		$this->ref = dol_string_nospecial(trim($this->ref));
    -		$this->label = trim($this->label);
    -		$this->price_ttc=price2num($this->price_ttc);
    -		$this->price=price2num($this->price);
    -		$this->price_min_ttc=price2num($this->price_min_ttc);
    -		$this->price_min=price2num($this->price_min);
    -		if (empty($this->tva_tx))    	$this->tva_tx = 0;
    -		if (empty($this->tva_npr))    	$this->tva_npr = 0;
    -		//Local taxes
    -		if (empty($this->localtax1_tx)) $this->localtax1_tx = 0;
    -		if (empty($this->localtax2_tx)) $this->localtax2_tx = 0;
    -		if (empty($this->localtax1_type)) $this->localtax1_type = '0';
    -		if (empty($this->localtax2_type)) $this->localtax2_type = '0';
    -
    -		if (empty($this->price))     	$this->price = 0;
    -		if (empty($this->price_min)) 	$this->price_min = 0;
    -
    -		// Price by quantity
    -		if (empty($this->price_by_qty)) 	$this->price_by_qty = 0;
    -
    -		if (empty($this->status))    	$this->status = 0;
    -		if (empty($this->status_buy))   $this->status_buy = 0;
    -
    -		$price_ht=0;
    -		$price_ttc=0;
    -		$price_min_ht=0;
    -		$price_min_ttc=0;
    -
    -		//
    -		if ($this->price_base_type == 'TTC' && $this->price_ttc > 0)
    -		{
    -			$price_ttc = price2num($this->price_ttc,'MU');
    -			$price_ht = price2num($this->price_ttc / (1 + ($this->tva_tx / 100)),'MU');
    -		}
    -
    -		//
    -		if ($this->price_base_type != 'TTC' && $this->price > 0)
    -		{
    -			$price_ht = price2num($this->price,'MU');
    -			$price_ttc = price2num($this->price * (1 + ($this->tva_tx / 100)),'MU');
    -		}
    -
    -		//
    -		if (($this->price_min_ttc > 0) && ($this->price_base_type == 'TTC'))
    -		{
    -			$price_min_ttc = price2num($this->price_min_ttc,'MU');
    -			$price_min_ht = price2num($this->price_min_ttc / (1 + ($this->tva_tx / 100)),'MU');
    -		}
    -
    -		//
    -		if (($this->price_min > 0) && ($this->price_base_type != 'TTC'))
    -		{
    -			$price_min_ht = price2num($this->price_min,'MU');
    -			$price_min_ttc = price2num($this->price_min * (1 + ($this->tva_tx / 100)),'MU');
    -		}
    -
    -		$this->accountancy_code_buy = trim($this->accountancy_code_buy);
    -		$this->accountancy_code_sell= trim($this->accountancy_code_sell);
    -		$this->accountancy_code_sell_intra= trim($this->accountancy_code_sell_intra);
    -		$this->accountancy_code_sell_export= trim($this->accountancy_code_sell_export);
    -
    -		// Barcode value
    -		$this->barcode=trim($this->barcode);
    -
    -		// Check parameters
    -		if (empty($this->label))
    -		{
    -			$this->error='ErrorMandatoryParametersNotProvided';
    -			return -1;
    -		}
    -
    -		if (empty($this->ref))
    -		{
    -			// Load object modCodeProduct
    -			$module=(! empty($conf->global->PRODUCT_CODEPRODUCT_ADDON)?$conf->global->PRODUCT_CODEPRODUCT_ADDON:'mod_codeproduct_leopard');
    -			if ($module != 'mod_codeproduct_leopard')	// Do not load module file for leopard
    -			{
    -				if (substr($module, 0, 16) == 'mod_codeproduct_' && substr($module, -3) == 'php')
    -				{
    -					$module = substr($module, 0, dol_strlen($module)-4);
    -				}
    -				dol_include_once('/core/modules/product/'.$module.'.php');
    -				$modCodeProduct = new $module;
    -				if (! empty($modCodeProduct->code_auto))
    -				{
    -					$this->ref = $modCodeProduct->getNextValue($this,$this->type);
    -				}
    -				unset($modCodeProduct);
    -			}
    -
    -			if (empty($this->ref))
    -			{
    -				$this->error='ProductModuleNotSetupForAutoRef';
    -				return -2;
    -			}
    -		}
    -
    -		dol_syslog(get_class($this)."::create ref=".$this->ref." price=".$this->price." price_ttc=".$this->price_ttc." tva_tx=".$this->tva_tx." price_base_type=".$this->price_base_type, LOG_DEBUG);
    -
    -		$now=dol_now();
    -
    -		$this->db->begin();
    -
    -		// For automatic creation during create action (not used by Dolibarr GUI, can be used by scripts)
    -		if ($this->barcode == -1) $this->barcode = $this->get_barcode($this,$this->barcode_type_code);
    -
    -		// Check more parameters
    -		// If error, this->errors[] is filled
    -		$result = $this->verify();
    -
    -		if ($result >= 0)
    -		{
    -			$sql = "SELECT count(*) as nb";
    -			$sql.= " FROM ".MAIN_DB_PREFIX."product";
    -			$sql.= " WHERE entity IN (".getEntity('product').")";
    -			$sql.= " AND ref = '" .$this->db->escape($this->ref)."'";
    -
    -			$result = $this->db->query($sql);
    -			if ($result)
    -			{
    -				$obj = $this->db->fetch_object($result);
    -				if ($obj->nb == 0)
    -				{
    -					// Produit non deja existant
    -					$sql = "INSERT INTO ".MAIN_DB_PREFIX."product (";
    -					$sql.= "datec";
    -					$sql.= ", entity";
    -					$sql.= ", ref";
    -					$sql.= ", ref_ext";
    -					$sql.= ", price_min";
    -					$sql.= ", price_min_ttc";
    -					$sql.= ", label";
    -					$sql.= ", fk_user_author";
    -					$sql.= ", fk_product_type";
    -					$sql.= ", price";
    -					$sql.= ", price_ttc";
    -					$sql.= ", price_base_type";
    -					$sql.= ", tobuy";
    -					$sql.= ", tosell";
    -					$sql.= ", accountancy_code_buy";
    -					$sql.= ", accountancy_code_sell";
    -					$sql.= ", accountancy_code_sell_intra";
    -					$sql.= ", accountancy_code_sell_export";
    -					$sql.= ", canvas";
    -					$sql.= ", finished";
    -					$sql.= ", tobatch";
    -					$sql.= ", fk_unit";
    -					$sql.= ") VALUES (";
    -					$sql.= "'".$this->db->idate($now)."'";
    -					$sql.= ", ".$conf->entity;
    -					$sql.= ", '".$this->db->escape($this->ref)."'";
    -					$sql.= ", ".(! empty($this->ref_ext)?"'".$this->db->escape($this->ref_ext)."'":"null");
    -					$sql.= ", ".price2num($price_min_ht);
    -					$sql.= ", ".price2num($price_min_ttc);
    -					$sql.= ", ".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null");
    -					$sql.= ", ".$user->id;
    -					$sql.= ", ".$this->type;
    -					$sql.= ", ".price2num($price_ht);
    -					$sql.= ", ".price2num($price_ttc);
    -					$sql.= ", '".$this->db->escape($this->price_base_type)."'";
    -					$sql.= ", ".$this->status;
    -					$sql.= ", ".$this->status_buy;
    -					$sql.= ", '".$this->db->escape($this->accountancy_code_buy)."'";
    -					$sql.= ", '".$this->db->escape($this->accountancy_code_sell)."'";
    -					$sql.= ", '".$this->db->escape($this->accountancy_code_sell_intra)."'";
    -					$sql.= ", '".$this->db->escape($this->accountancy_code_sell_export)."'";
    -					$sql.= ", '".$this->db->escape($this->canvas)."'";
    -					$sql.= ", ".((! isset($this->finished) || $this->finished < 0 || $this->finished == '') ? 'null' : (int) $this->finished);
    -					$sql.= ", ".((empty($this->status_batch) || $this->status_batch < 0)? '0':$this->status_batch);
    -					$sql.= ", ".(!$this->fk_unit ? 'NULL' : $this->fk_unit);
    -					$sql.= ")";
    -
    -					dol_syslog(get_class($this)."::Create", LOG_DEBUG);
    -					$result = $this->db->query($sql);
    -					if ( $result )
    -					{
    -						$id = $this->db->last_insert_id(MAIN_DB_PREFIX."product");
    -
    -						if ($id > 0)
    -						{
    -							$this->id				= $id;
    -							$this->price			= $price_ht;
    -							$this->price_ttc		= $price_ttc;
    -							$this->price_min		= $price_min_ht;
    -							$this->price_min_ttc	= $price_min_ttc;
    -
    -							$result = $this->_log_price($user);
    -							if ($result > 0)
    -							{
    -								if ($this->update($id, $user, true, 'add') <= 0)
    -								{
    -									$error++;
    -								}
    -							}
    -							else
    -							{
    -								$error++;
    -								$this->error=$this->db->lasterror();
    -							}
    -						}
    -						else
    -						{
    -							$error++;
    -							$this->error='ErrorFailedToGetInsertedId';
    -						}
    -					}
    -					else
    -					{
    -						$error++;
    -						$this->error=$this->db->lasterror();
    -					}
    -				}
    -				else
    -				{
    -					// Product already exists with this ref
    -					$langs->load("products");
    -					$error++;
    -					$this->error = "ErrorProductAlreadyExists";
    -				}
    -			}
    -			else
    -			{
    -				$error++;
    -				$this->error=$this->db->lasterror();
    -			}
    -
    -			if (! $error && ! $notrigger)
    -			{
    -				// Call trigger
    -				$result=$this->call_trigger('PRODUCT_CREATE',$user);
    -				if ($result < 0) { $error++; }
    -				// End call triggers
    -			}
    -
    -			if (! $error)
    -			{
    -				$this->db->commit();
    -				return $this->id;
    -			}
    -			else
    -			{
    -				$this->db->rollback();
    -				return -$error;
    -			}
    +        if ($err > 0) {
    +            return 0;
             }
             else
    -       {
    -            $this->db->rollback();
    -            dol_syslog(get_class($this)."::Create fails verify ".join(',',$this->errors), LOG_WARNING);
    -            return -3;
    +        {
    +            return 1;
    +        }
    +    }
    +
    +    /**
    +     *    Insert product into database
    +     *
    +     * @param  User $user      User making insert
    +     * @param  int  $notrigger Disable triggers
    +     * @return int                         Id of product/service if OK, < 0 if KO
    +     */
    +    function create($user,$notrigger=0)
    +    {
    +        global $conf, $langs;
    +
    +            $error=0;
    +
    +        // Clean parameters
    +        $this->ref = dol_string_nospecial(trim($this->ref));
    +        $this->label = trim($this->label);
    +        $this->price_ttc=price2num($this->price_ttc);
    +        $this->price=price2num($this->price);
    +        $this->price_min_ttc=price2num($this->price_min_ttc);
    +        $this->price_min=price2num($this->price_min);
    +        if (empty($this->tva_tx)) {        $this->tva_tx = 0;
    +        }
    +        if (empty($this->tva_npr)) {        $this->tva_npr = 0;
    +        }
    +        //Local taxes
    +        if (empty($this->localtax1_tx)) { $this->localtax1_tx = 0;
    +        }
    +        if (empty($this->localtax2_tx)) { $this->localtax2_tx = 0;
    +        }
    +        if (empty($this->localtax1_type)) { $this->localtax1_type = '0';
    +        }
    +        if (empty($this->localtax2_type)) { $this->localtax2_type = '0';
             }
     
    -	}
    +        if (empty($this->price)) {         $this->price = 0;
    +        }
    +        if (empty($this->price_min)) {     $this->price_min = 0;
    +        }
    +
    +        // Price by quantity
    +        if (empty($this->price_by_qty)) {     $this->price_by_qty = 0;
    +        }
    +
    +        if (empty($this->status)) {        $this->status = 0;
    +        }
    +        if (empty($this->status_buy)) {   $this->status_buy = 0;
    +        }
    +
    +        $price_ht=0;
    +        $price_ttc=0;
    +        $price_min_ht=0;
    +        $price_min_ttc=0;
    +
    +        //
    +        if ($this->price_base_type == 'TTC' && $this->price_ttc > 0) {
    +            $price_ttc = price2num($this->price_ttc, 'MU');
    +            $price_ht = price2num($this->price_ttc / (1 + ($this->tva_tx / 100)), 'MU');
    +        }
    +
    +        //
    +        if ($this->price_base_type != 'TTC' && $this->price > 0) {
    +            $price_ht = price2num($this->price, 'MU');
    +            $price_ttc = price2num($this->price * (1 + ($this->tva_tx / 100)), 'MU');
    +        }
    +
    +        //
    +        if (($this->price_min_ttc > 0) && ($this->price_base_type == 'TTC')) {
    +            $price_min_ttc = price2num($this->price_min_ttc, 'MU');
    +            $price_min_ht = price2num($this->price_min_ttc / (1 + ($this->tva_tx / 100)), 'MU');
    +        }
    +
    +        //
    +        if (($this->price_min > 0) && ($this->price_base_type != 'TTC')) {
    +            $price_min_ht = price2num($this->price_min, 'MU');
    +            $price_min_ttc = price2num($this->price_min * (1 + ($this->tva_tx / 100)), 'MU');
    +        }
    +
    +        $this->accountancy_code_buy = trim($this->accountancy_code_buy);
    +        $this->accountancy_code_sell= trim($this->accountancy_code_sell);
    +        $this->accountancy_code_sell_intra= trim($this->accountancy_code_sell_intra);
    +        $this->accountancy_code_sell_export= trim($this->accountancy_code_sell_export);
    +
    +        // Barcode value
    +        $this->barcode=trim($this->barcode);
    +
    +        // Check parameters
    +        if (empty($this->label)) {
    +            $this->error='ErrorMandatoryParametersNotProvided';
    +            return -1;
    +        }
    +
    +        if (empty($this->ref)) {
    +            // Load object modCodeProduct
    +            $module=(! empty($conf->global->PRODUCT_CODEPRODUCT_ADDON)?$conf->global->PRODUCT_CODEPRODUCT_ADDON:'mod_codeproduct_leopard');
    +            if ($module != 'mod_codeproduct_leopard')    // Do not load module file for leopard
    +            {
    +                if (substr($module, 0, 16) == 'mod_codeproduct_' && substr($module, -3) == 'php') {
    +                    $module = substr($module, 0, dol_strlen($module)-4);
    +                }
    +                dol_include_once('/core/modules/product/'.$module.'.php');
    +                $modCodeProduct = new $module;
    +                if (! empty($modCodeProduct->code_auto)) {
    +                    $this->ref = $modCodeProduct->getNextValue($this, $this->type);
    +                }
    +                unset($modCodeProduct);
    +            }
    +
    +            if (empty($this->ref)) {
    +                $this->error='ProductModuleNotSetupForAutoRef';
    +                return -2;
    +            }
    +        }
    +
    +        dol_syslog(get_class($this)."::create ref=".$this->ref." price=".$this->price." price_ttc=".$this->price_ttc." tva_tx=".$this->tva_tx." price_base_type=".$this->price_base_type, LOG_DEBUG);
    +
    +        $now=dol_now();
    +
    +        $this->db->begin();
    +
    +        // For automatic creation during create action (not used by Dolibarr GUI, can be used by scripts)
    +        if ($this->barcode == -1) { $this->barcode = $this->get_barcode($this, $this->barcode_type_code);
    +        }
    +
    +        // Check more parameters
    +        // If error, this->errors[] is filled
    +        $result = $this->verify();
    +
    +        if ($result >= 0) {
    +            $sql = "SELECT count(*) as nb";
    +            $sql.= " FROM ".MAIN_DB_PREFIX."product";
    +            $sql.= " WHERE entity IN (".getEntity('product').")";
    +            $sql.= " AND ref = '" .$this->db->escape($this->ref)."'";
    +
    +            $result = $this->db->query($sql);
    +            if ($result) {
    +                $obj = $this->db->fetch_object($result);
    +                if ($obj->nb == 0) {
    +                    // Produit non deja existant
    +                    $sql = "INSERT INTO ".MAIN_DB_PREFIX."product (";
    +                    $sql.= "datec";
    +                    $sql.= ", entity";
    +                    $sql.= ", ref";
    +                    $sql.= ", ref_ext";
    +                    $sql.= ", price_min";
    +                    $sql.= ", price_min_ttc";
    +                    $sql.= ", label";
    +                    $sql.= ", fk_user_author";
    +                    $sql.= ", fk_product_type";
    +                    $sql.= ", price";
    +                    $sql.= ", price_ttc";
    +                    $sql.= ", price_base_type";
    +                    $sql.= ", tobuy";
    +                    $sql.= ", tosell";
    +                    $sql.= ", accountancy_code_buy";
    +                    $sql.= ", accountancy_code_sell";
    +                    $sql.= ", accountancy_code_sell_intra";
    +                    $sql.= ", accountancy_code_sell_export";
    +                    $sql.= ", canvas";
    +                    $sql.= ", finished";
    +                    $sql.= ", tobatch";
    +                    $sql.= ", fk_unit";
    +                    $sql.= ") VALUES (";
    +                    $sql.= "'".$this->db->idate($now)."'";
    +                    $sql.= ", ".$conf->entity;
    +                    $sql.= ", '".$this->db->escape($this->ref)."'";
    +                    $sql.= ", ".(! empty($this->ref_ext)?"'".$this->db->escape($this->ref_ext)."'":"null");
    +                    $sql.= ", ".price2num($price_min_ht);
    +                    $sql.= ", ".price2num($price_min_ttc);
    +                    $sql.= ", ".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null");
    +                    $sql.= ", ".$user->id;
    +                    $sql.= ", ".$this->type;
    +                    $sql.= ", ".price2num($price_ht);
    +                    $sql.= ", ".price2num($price_ttc);
    +                    $sql.= ", '".$this->db->escape($this->price_base_type)."'";
    +                    $sql.= ", ".$this->status;
    +                    $sql.= ", ".$this->status_buy;
    +                    $sql.= ", '".$this->db->escape($this->accountancy_code_buy)."'";
    +                    $sql.= ", '".$this->db->escape($this->accountancy_code_sell)."'";
    +                    $sql.= ", '".$this->db->escape($this->accountancy_code_sell_intra)."'";
    +                    $sql.= ", '".$this->db->escape($this->accountancy_code_sell_export)."'";
    +                    $sql.= ", '".$this->db->escape($this->canvas)."'";
    +                    $sql.= ", ".((! isset($this->finished) || $this->finished < 0 || $this->finished == '') ? 'null' : (int) $this->finished);
    +                    $sql.= ", ".((empty($this->status_batch) || $this->status_batch < 0)? '0':$this->status_batch);
    +                    $sql.= ", ".(!$this->fk_unit ? 'NULL' : $this->fk_unit);
    +                    $sql.= ")";
    +
    +                    dol_syslog(get_class($this)."::Create", LOG_DEBUG);
    +                    $result = $this->db->query($sql);
    +                    if ($result ) {
    +                        $id = $this->db->last_insert_id(MAIN_DB_PREFIX."product");
    +
    +                        if ($id > 0) {
    +                            $this->id                = $id;
    +                            $this->price            = $price_ht;
    +                            $this->price_ttc        = $price_ttc;
    +                            $this->price_min        = $price_min_ht;
    +                            $this->price_min_ttc    = $price_min_ttc;
    +
    +                            $result = $this->_log_price($user);
    +                            if ($result > 0) {
    +                                if ($this->update($id, $user, true, 'add') <= 0) {
    +                                    $error++;
    +                                }
    +                            }
    +                            else
    +                            {
    +                                 $error++;
    +                                 $this->error=$this->db->lasterror();
    +                            }
    +                        }
    +                        else
    +                        {
    +                            $error++;
    +                            $this->error='ErrorFailedToGetInsertedId';
    +                        }
    +                    }
    +                    else
    +                    {
    +                        $error++;
    +                        $this->error=$this->db->lasterror();
    +                    }
    +                }
    +                else
    +                {
    +                    // Product already exists with this ref
    +                    $langs->load("products");
    +                    $error++;
    +                    $this->error = "ErrorProductAlreadyExists";
    +                }
    +            }
    +            else
    +            {
    +                $error++;
    +                $this->error=$this->db->lasterror();
    +            }
    +
    +            if (! $error && ! $notrigger) {
    +                // Call trigger
    +                $result=$this->call_trigger('PRODUCT_CREATE', $user);
    +                if ($result < 0) { $error++;
    +                }
    +                // End call triggers
    +            }
    +
    +            if (! $error) {
    +                $this->db->commit();
    +                return $this->id;
    +            }
    +            else
    +            {
    +                $this->db->rollback();
    +                return -$error;
    +            }
    +        }
    +        else
    +          {
    +            $this->db->rollback();
    +            dol_syslog(get_class($this)."::Create fails verify ".join(',', $this->errors), LOG_WARNING);
    +            return -3;
    +        }
    +    }
     
     
         /**
          *    Check properties of product are ok (like name, barcode, ...).
          *    All properties must be already loaded on object (this->barcode, this->barcode_type_code, ...).
          *
    -     *    @return     int		0 if OK, <0 if KO
    +     * @return int        0 if OK, <0 if KO
          */
         function verify()
         {
    @@ -639,57 +692,54 @@ class Product extends CommonObject
             $result = 0;
             $this->ref = trim($this->ref);
     
    -        if (! $this->ref)
    -        {
    +        if (! $this->ref) {
                 $this->errors[] = 'ErrorBadRef';
                 $result = -2;
             }
     
             $rescode = $this->check_barcode($this->barcode, $this->barcode_type_code);
    -        if ($rescode)
    -        {
    -        	if ($rescode == -1)
    -        	{
    -        		$this->errors[] = 'ErrorBadBarCodeSyntax';
    -        	}
    -        	elseif ($rescode == -2)
    -        	{
    -        		$this->errors[] = 'ErrorBarCodeRequired';
    -        	}
    -        	elseif ($rescode == -3)
    -        	{
    -        		// Note: Common usage is to have barcode unique. For variants, we should have a different barcode.
    -        		$this->errors[] = 'ErrorBarCodeAlreadyUsed';
    -        	}
    +        if ($rescode) {
    +            if ($rescode == -1) {
    +                $this->errors[] = 'ErrorBadBarCodeSyntax';
    +            }
    +            elseif ($rescode == -2) {
    +                $this->errors[] = 'ErrorBarCodeRequired';
    +            }
    +            elseif ($rescode == -3) {
    +                // Note: Common usage is to have barcode unique. For variants, we should have a different barcode.
    +                $this->errors[] = 'ErrorBarCodeAlreadyUsed';
    +            }
     
    -        	$result = -3;
    +            $result = -3;
             }
     
             return $result;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Check barcode
          *
    -     *	@param	string	$valuetotest	Value to test
    -     *  @param	string	$typefortest	Type of barcode (ISBN, EAN, ...)
    -     *  @return int						0 if OK
    -     * 									-1 ErrorBadBarCodeSyntax
    -     * 									-2 ErrorBarCodeRequired
    -     * 									-3 ErrorBarCodeAlreadyUsed
    +     * @param  string $valuetotest Value to test
    +     * @param  string $typefortest Type of barcode (ISBN, EAN, ...)
    +     * @return int                        0 if OK
    +     *                                     -1 ErrorBadBarCodeSyntax
    +     *                                     -2 ErrorBarCodeRequired
    +     *                                     -3 ErrorBarCodeAlreadyUsed
          */
         function check_barcode($valuetotest,$typefortest)
         {
    +        // phpcs:enable
             global $conf;
    -        if (! empty($conf->barcode->enabled) && ! empty($conf->global->BARCODE_PRODUCT_ADDON_NUM))
    -        {
    -        	$module=strtolower($conf->global->BARCODE_PRODUCT_ADDON_NUM);
    +        if (! empty($conf->barcode->enabled) && ! empty($conf->global->BARCODE_PRODUCT_ADDON_NUM)) {
    +            $module=strtolower($conf->global->BARCODE_PRODUCT_ADDON_NUM);
     
    -            $dirsociete=array_merge(array('/core/modules/barcode/'),$conf->modules_parts['barcode']);
    +            $dirsociete=array_merge(array('/core/modules/barcode/'), $conf->modules_parts['barcode']);
                 foreach ($dirsociete as $dirroot)
                 {
                     $res=dol_include_once($dirroot.$module.'.php');
    -                if ($res) break;
    +                if ($res) { break;
    +                }
                 }
     
                 $mod = new $module();
    @@ -699,95 +749,102 @@ class Product extends CommonObject
                 return $result;
             }
             else
    -		{
    +        {
                 return 0;
             }
         }
     
    -	/**
    -	 *	Update a record into database.
    -	 *  If batch flag is set to on, we create records into llx_product_batch
    -	 *
    -	 *	@param	int		$id         Id of product
    -	 *	@param  User	$user       Object user making update
    -	 *	@param	int		$notrigger	Disable triggers
    -	 *	@param	string	$action		Current action for hookmanager ('add' or 'update')
    -	 *	@return int         		1 if OK, -1 if ref already exists, -2 if other error
    -	 */
    -	function update($id, $user, $notrigger=false, $action='update')
    -	{
    -		global $langs, $conf, $hookmanager;
    +    /**
    +     *    Update a record into database.
    +     *  If batch flag is set to on, we create records into llx_product_batch
    +     *
    +     * @param  int    $id        Id of product
    +     * @param  User   $user      Object user making update
    +     * @param  int    $notrigger Disable triggers
    +     * @param  string $action    Current action for hookmanager ('add' or 'update')
    +     * @return int                 1 if OK, -1 if ref already exists, -2 if other error
    +     */
    +    function update($id, $user, $notrigger=false, $action='update')
    +    {
    +        global $langs, $conf, $hookmanager;
     
    -		$error=0;
    +        $error=0;
     
    -		// Check parameters
    -		if (! $this->label) $this->label = 'MISSING LABEL';
    +        // Check parameters
    +        if (! $this->label) { $this->label = 'MISSING LABEL';
    +        }
     
    -		// Clean parameters
    -		$this->ref = dol_string_nospecial(trim($this->ref));
    -		$this->label = trim($this->label);
    -		$this->description = trim($this->description);
    -		$this->note = (isset($this->note) ? trim($this->note) : null);
    -		$this->weight = price2num($this->weight);
    -		$this->weight_units = trim($this->weight_units);
    -		$this->length = price2num($this->length);
    -		$this->length_units = trim($this->length_units);
    -		$this->width = price2num($this->width);
    -		$this->width_units = trim($this->width_units);
    -		$this->height = price2num($this->height);
    -		$this->height_units = trim($this->height_units);
    -		// set unit not defined
    -		if ($this->length_units) $this->width_units = $this->length_units;    // Not used yet
    -		if ($this->length_units) $this->height_units = $this->length_units;    // Not used yet
    -		// Automated compute surface and volume if not filled
    -		if (empty($this->surface) && !empty($this->length) && !empty($this->width) && $this->length_units == $this->width_units)
    -		{
    -			$this->surface = $this->length * $this->width;
    -			$this->surface_units = measuring_units_squared($this->length_units);
    -		}
    -		if (empty($this->volume) && !empty($this->surface_units) && !empty($this->height) && $this->length_units == $this->height_units)
    -		{
    -			$this->volume =  $this->surface * $this->height;
    -			$this->volume_units = measuring_units_cubed($this->height_units);
    -		}
    +        // Clean parameters
    +        $this->ref = dol_string_nospecial(trim($this->ref));
    +        $this->label = trim($this->label);
    +        $this->description = trim($this->description);
    +        $this->note = (isset($this->note) ? trim($this->note) : null);
    +        $this->weight = price2num($this->weight);
    +        $this->weight_units = trim($this->weight_units);
    +        $this->length = price2num($this->length);
    +        $this->length_units = trim($this->length_units);
    +        $this->width = price2num($this->width);
    +        $this->width_units = trim($this->width_units);
    +        $this->height = price2num($this->height);
    +        $this->height_units = trim($this->height_units);
    +        // set unit not defined
    +        if ($this->length_units) { $this->width_units = $this->length_units;    // Not used yet
    +        }
    +        if ($this->length_units) { $this->height_units = $this->length_units;    // Not used yet
    +        }
    +        // Automated compute surface and volume if not filled
    +        if (empty($this->surface) && !empty($this->length) && !empty($this->width) && $this->length_units == $this->width_units) {
    +            $this->surface = $this->length * $this->width;
    +            $this->surface_units = measuring_units_squared($this->length_units);
    +        }
    +        if (empty($this->volume) && !empty($this->surface_units) && !empty($this->height) && $this->length_units == $this->height_units) {
    +            $this->volume =  $this->surface * $this->height;
    +            $this->volume_units = measuring_units_cubed($this->height_units);
    +        }
     
    -		$this->surface = price2num($this->surface);
    -		$this->surface_units = trim($this->surface_units);
    -		$this->volume = price2num($this->volume);
    -		$this->volume_units = trim($this->volume_units);
    -		if (empty($this->tva_tx))    			$this->tva_tx = 0;
    -		if (empty($this->tva_npr))    			$this->tva_npr = 0;
    -		if (empty($this->localtax1_tx))			$this->localtax1_tx = 0;
    -		if (empty($this->localtax2_tx))			$this->localtax2_tx = 0;
    -		if (empty($this->localtax1_type))		$this->localtax1_type = '0';
    -		if (empty($this->localtax2_type))		$this->localtax2_type = '0';
    -		if (empty($this->status))				$this->status = 0;
    -		if (empty($this->status_buy))			$this->status_buy = 0;
    +        $this->surface = price2num($this->surface);
    +        $this->surface_units = trim($this->surface_units);
    +        $this->volume = price2num($this->volume);
    +        $this->volume_units = trim($this->volume_units);
    +        if (empty($this->tva_tx)) {                $this->tva_tx = 0;
    +        }
    +        if (empty($this->tva_npr)) {                $this->tva_npr = 0;
    +        }
    +        if (empty($this->localtax1_tx)) {            $this->localtax1_tx = 0;
    +        }
    +        if (empty($this->localtax2_tx)) {            $this->localtax2_tx = 0;
    +        }
    +        if (empty($this->localtax1_type)) {        $this->localtax1_type = '0';
    +        }
    +        if (empty($this->localtax2_type)) {        $this->localtax2_type = '0';
    +        }
    +        if (empty($this->status)) {                $this->status = 0;
    +        }
    +        if (empty($this->status_buy)) {            $this->status_buy = 0;
    +        }
     
    -        if (empty($this->country_id))           $this->country_id = 0;
    +        if (empty($this->country_id)) {           $this->country_id = 0;
    +        }
     
             // Barcode value
             $this->barcode=trim($this->barcode);
     
    -		$this->accountancy_code_buy = trim($this->accountancy_code_buy);
    -		$this->accountancy_code_sell= trim($this->accountancy_code_sell);
    -		$this->accountancy_code_sell_intra= trim($this->accountancy_code_sell_intra);
    -		$this->accountancy_code_sell_export= trim($this->accountancy_code_sell_export);
    +        $this->accountancy_code_buy = trim($this->accountancy_code_buy);
    +        $this->accountancy_code_sell= trim($this->accountancy_code_sell);
    +        $this->accountancy_code_sell_intra= trim($this->accountancy_code_sell_intra);
    +        $this->accountancy_code_sell_export= trim($this->accountancy_code_sell_export);
     
     
             $this->db->begin();
     
             // Check name is required and codes are ok or unique.
             // If error, this->errors[] is filled
    -        if ($action != 'add')
    -        {
    -        	$result = $this->verify();	// We don't check when update called during a create because verify was already done
    +        if ($action != 'add') {
    +            $result = $this->verify();    // We don't check when update called during a create because verify was already done
             }
     
    -        if ($result >= 0)
    -        {
    -            if (empty($this->oldcopy))
    -            {
    +        if ($result >= 0) {
    +            if (empty($this->oldcopy)) {
                     $org=new self($this->db);
                     $org->fetch($this->id);
                     $this->oldcopy=$org;
    @@ -795,8 +852,7 @@ class Product extends CommonObject
     
                 // Test if batch management is activated on existing product
                 // If yes, we create missing entries into product_batch
    -            if ($this->hasbatch() && !$this->oldcopy->hasbatch())
    -            {
    +            if ($this->hasbatch() && !$this->oldcopy->hasbatch()) {
                     //$valueforundefinedlot = 'Undefined';  // In previous version, 39 and lower
                     $valueforundefinedlot = '000000';
     
    @@ -808,13 +864,11 @@ class Product extends CommonObject
                         $qty_batch = 0;
                         foreach ($ObjW->detail_batch as $detail)    // Each lines of detail in product_batch of the current $ObjW = product_stock
                         {
    -                        if ($detail->batch == $valueforundefinedlot || $detail->batch == 'Undefined')
    -                        {
    +                        if ($detail->batch == $valueforundefinedlot || $detail->batch == 'Undefined') {
                                 // We discard this line, we will create it later
                                 $sqlclean="DELETE FROM ".MAIN_DB_PREFIX."product_batch WHERE batch in('Undefined', '".$valueforundefinedlot."') AND fk_product_stock = ".$ObjW->id;
                                 $result = $this->db->query($sqlclean);
    -                            if (! $result)
    -                            {
    +                            if (! $result) {
                                     dol_print_error($this->db);
                                     exit;
                                 }
    @@ -825,15 +879,13 @@ class Product extends CommonObject
                         }
                         // Quantities in batch details are not same as stock quantity,
                         // so we add a default batch record to complete and get same qty in parent and child table
    -                    if ($ObjW->real <> $qty_batch)
    -                    {
    +                    if ($ObjW->real <> $qty_batch) {
                             $ObjBatch = new Productbatch($this->db);
                             $ObjBatch->batch = $valueforundefinedlot;
                             $ObjBatch->qty = ($ObjW->real - $qty_batch);
                             $ObjBatch->fk_product_stock = $ObjW->id;
     
    -                        if ($ObjBatch->create($user,1) < 0)
    -                        {
    +                        if ($ObjBatch->create($user, 1) < 0) {
                                 $error++;
                                 $this->errors=$ObjBatch->errors;
                             }
    @@ -841,702 +893,678 @@ class Product extends CommonObject
                     }
                 }
     
    -	        // For automatic creation
    -	        if ($this->barcode == -1) $this->barcode = $this->get_barcode($this,$this->barcode_type_code);
    +            // For automatic creation
    +            if ($this->barcode == -1) { $this->barcode = $this->get_barcode($this, $this->barcode_type_code);
    +            }
     
    -			$sql = "UPDATE ".MAIN_DB_PREFIX."product";
    -			$sql.= " SET label = '" . $this->db->escape($this->label) ."'";
    -			$sql.= ", ref = '" . $this->db->escape($this->ref) ."'";
    -			$sql.= ", ref_ext = ".(! empty($this->ref_ext)?"'".$this->db->escape($this->ref_ext)."'":"null");
    -			$sql.= ", default_vat_code = ".($this->default_vat_code ? "'".$this->db->escape($this->default_vat_code)."'" : "null");
    -			$sql.= ", tva_tx = " . $this->tva_tx;
    -			$sql.= ", recuperableonly = " . $this->tva_npr;
    -			$sql.= ", localtax1_tx = " . $this->localtax1_tx;
    -			$sql.= ", localtax2_tx = " . $this->localtax2_tx;
    -			$sql.= ", localtax1_type = " . ($this->localtax1_type!=''?"'".$this->db->escape($this->localtax1_type)."'":"'0'");
    -			$sql.= ", localtax2_type = " . ($this->localtax2_type!=''?"'".$this->db->escape($this->localtax2_type)."'":"'0'");
    +            $sql = "UPDATE ".MAIN_DB_PREFIX."product";
    +            $sql.= " SET label = '" . $this->db->escape($this->label) ."'";
    +            $sql.= ", ref = '" . $this->db->escape($this->ref) ."'";
    +            $sql.= ", ref_ext = ".(! empty($this->ref_ext)?"'".$this->db->escape($this->ref_ext)."'":"null");
    +            $sql.= ", default_vat_code = ".($this->default_vat_code ? "'".$this->db->escape($this->default_vat_code)."'" : "null");
    +            $sql.= ", tva_tx = " . $this->tva_tx;
    +            $sql.= ", recuperableonly = " . $this->tva_npr;
    +            $sql.= ", localtax1_tx = " . $this->localtax1_tx;
    +            $sql.= ", localtax2_tx = " . $this->localtax2_tx;
    +            $sql.= ", localtax1_type = " . ($this->localtax1_type!=''?"'".$this->db->escape($this->localtax1_type)."'":"'0'");
    +            $sql.= ", localtax2_type = " . ($this->localtax2_type!=''?"'".$this->db->escape($this->localtax2_type)."'":"'0'");
     
    -			$sql.= ", barcode = ". (empty($this->barcode)?"null":"'".$this->db->escape($this->barcode)."'");
    -			$sql.= ", fk_barcode_type = ". (empty($this->barcode_type)?"null":$this->db->escape($this->barcode_type));
    +            $sql.= ", barcode = ". (empty($this->barcode)?"null":"'".$this->db->escape($this->barcode)."'");
    +            $sql.= ", fk_barcode_type = ". (empty($this->barcode_type)?"null":$this->db->escape($this->barcode_type));
     
    -			$sql.= ", tosell = " . (int) $this->status;
    -			$sql.= ", tobuy = " . (int) $this->status_buy;
    -			$sql.= ", tobatch = " . ((empty($this->status_batch) || $this->status_batch < 0) ? '0' : (int) $this->status_batch);
    -			$sql.= ", finished = " . ((! isset($this->finished) || $this->finished < 0) ? "null" : (int) $this->finished);
    -			$sql.= ", weight = " . ($this->weight!='' ? "'".$this->db->escape($this->weight)."'" : 'null');
    -			$sql.= ", weight_units = " . ($this->weight_units!='' ? "'".$this->db->escape($this->weight_units)."'": 'null');
    -			$sql.= ", length = " . ($this->length!='' ? "'".$this->db->escape($this->length)."'" : 'null');
    -			$sql.= ", length_units = " . ($this->length_units!='' ? "'".$this->db->escape($this->length_units)."'" : 'null');
    -			$sql.= ", width= " . ($this->width!='' ? "'".$this->db->escape($this->width)."'" : 'null');
    -			$sql.= ", width_units = " . ($this->width_units!='' ? "'".$this->db->escape($this->width_units)."'" : 'null');
    -			$sql.= ", height = " . ($this->height!='' ? "'".$this->db->escape($this->height)."'" : 'null');
    -			$sql.= ", height_units = " . ($this->height_units!='' ? "'".$this->db->escape($this->height_units)."'" : 'null');
    -			$sql.= ", surface = " . ($this->surface!='' ? "'".$this->db->escape($this->surface)."'" : 'null');
    -			$sql.= ", surface_units = " . ($this->surface_units!='' ? "'".$this->db->escape($this->surface_units)."'" : 'null');
    -			$sql.= ", volume = " . ($this->volume!='' ? "'".$this->db->escape($this->volume)."'" : 'null');
    -			$sql.= ", volume_units = " . ($this->volume_units!='' ? "'".$this->db->escape($this->volume_units)."'" : 'null');
    -			$sql.= ", fk_default_warehouse = " . ($this->fk_default_warehouse > 0 ? $this->db->escape($this->fk_default_warehouse) : 'null');
    -			$sql.= ", seuil_stock_alerte = " . ((isset($this->seuil_stock_alerte) && $this->seuil_stock_alerte != '') ? "'".$this->db->escape($this->seuil_stock_alerte)."'" : "null");
    -			$sql.= ", description = '" . $this->db->escape($this->description) ."'";
    -			$sql.= ", url = " . ($this->url?"'".$this->db->escape($this->url)."'":'null');
    -			$sql.= ", customcode = '" .        $this->db->escape($this->customcode) ."'";
    -	        $sql.= ", fk_country = " . ($this->country_id > 0 ? (int) $this->country_id : 'null');
    -	        $sql.= ", note = ".(isset($this->note) ? "'" .$this->db->escape($this->note)."'" : 'null');
    -			$sql.= ", duration = '" . $this->db->escape($this->duration_value . $this->duration_unit) ."'";
    -			$sql.= ", accountancy_code_buy = '" . $this->db->escape($this->accountancy_code_buy)."'";
    -			$sql.= ", accountancy_code_sell= '" . $this->db->escape($this->accountancy_code_sell)."'";
    -			$sql.= ", accountancy_code_sell_intra= '" . $this->db->escape($this->accountancy_code_sell_intra)."'";
    -			$sql.= ", accountancy_code_sell_export= '" . $this->db->escape($this->accountancy_code_sell_export)."'";
    -			$sql.= ", desiredstock = " . ((isset($this->desiredstock) && $this->desiredstock != '') ? (int) $this->desiredstock : "null");
    -			$sql.= ", cost_price = " . ($this->cost_price != '' ? $this->db->escape($this->cost_price) : 'null');
    -	        $sql.= ", fk_unit= " . ((! $this->fk_unit) ? 'NULL' : (int) $this->fk_unit);
    -	        $sql.= ", price_autogen = " . (!$this->price_autogen ? 0 : 1);
    -			$sql.= ", fk_price_expression = ".($this->fk_price_expression != 0 ? (int) $this->fk_price_expression : 'NULL');
    -			$sql.= ", fk_user_modif = ".($user->id > 0 ? $user->id : 'NULL');
    -			// stock field is not here because it is a denormalized value from product_stock.
    -			$sql.= " WHERE rowid = " . $id;
    +            $sql.= ", tosell = " . (int) $this->status;
    +            $sql.= ", tobuy = " . (int) $this->status_buy;
    +            $sql.= ", tobatch = " . ((empty($this->status_batch) || $this->status_batch < 0) ? '0' : (int) $this->status_batch);
    +            $sql.= ", finished = " . ((! isset($this->finished) || $this->finished < 0) ? "null" : (int) $this->finished);
    +            $sql.= ", weight = " . ($this->weight!='' ? "'".$this->db->escape($this->weight)."'" : 'null');
    +            $sql.= ", weight_units = " . ($this->weight_units!='' ? "'".$this->db->escape($this->weight_units)."'": 'null');
    +            $sql.= ", length = " . ($this->length!='' ? "'".$this->db->escape($this->length)."'" : 'null');
    +            $sql.= ", length_units = " . ($this->length_units!='' ? "'".$this->db->escape($this->length_units)."'" : 'null');
    +            $sql.= ", width= " . ($this->width!='' ? "'".$this->db->escape($this->width)."'" : 'null');
    +            $sql.= ", width_units = " . ($this->width_units!='' ? "'".$this->db->escape($this->width_units)."'" : 'null');
    +            $sql.= ", height = " . ($this->height!='' ? "'".$this->db->escape($this->height)."'" : 'null');
    +            $sql.= ", height_units = " . ($this->height_units!='' ? "'".$this->db->escape($this->height_units)."'" : 'null');
    +            $sql.= ", surface = " . ($this->surface!='' ? "'".$this->db->escape($this->surface)."'" : 'null');
    +            $sql.= ", surface_units = " . ($this->surface_units!='' ? "'".$this->db->escape($this->surface_units)."'" : 'null');
    +            $sql.= ", volume = " . ($this->volume!='' ? "'".$this->db->escape($this->volume)."'" : 'null');
    +            $sql.= ", volume_units = " . ($this->volume_units!='' ? "'".$this->db->escape($this->volume_units)."'" : 'null');
    +            $sql.= ", fk_default_warehouse = " . ($this->fk_default_warehouse > 0 ? $this->db->escape($this->fk_default_warehouse) : 'null');
    +            $sql.= ", seuil_stock_alerte = " . ((isset($this->seuil_stock_alerte) && $this->seuil_stock_alerte != '') ? "'".$this->db->escape($this->seuil_stock_alerte)."'" : "null");
    +            $sql.= ", description = '" . $this->db->escape($this->description) ."'";
    +            $sql.= ", url = " . ($this->url?"'".$this->db->escape($this->url)."'":'null');
    +            $sql.= ", customcode = '" .        $this->db->escape($this->customcode) ."'";
    +            $sql.= ", fk_country = " . ($this->country_id > 0 ? (int) $this->country_id : 'null');
    +            $sql.= ", note = ".(isset($this->note) ? "'" .$this->db->escape($this->note)."'" : 'null');
    +            $sql.= ", duration = '" . $this->db->escape($this->duration_value . $this->duration_unit) ."'";
    +            $sql.= ", accountancy_code_buy = '" . $this->db->escape($this->accountancy_code_buy)."'";
    +            $sql.= ", accountancy_code_sell= '" . $this->db->escape($this->accountancy_code_sell)."'";
    +            $sql.= ", accountancy_code_sell_intra= '" . $this->db->escape($this->accountancy_code_sell_intra)."'";
    +            $sql.= ", accountancy_code_sell_export= '" . $this->db->escape($this->accountancy_code_sell_export)."'";
    +            $sql.= ", desiredstock = " . ((isset($this->desiredstock) && $this->desiredstock != '') ? (int) $this->desiredstock : "null");
    +            $sql.= ", cost_price = " . ($this->cost_price != '' ? $this->db->escape($this->cost_price) : 'null');
    +            $sql.= ", fk_unit= " . (!$this->fk_unit ? 'NULL' : (int) $this->fk_unit);
    +            $sql.= ", price_autogen = " . (!$this->price_autogen ? 0 : 1);
    +            $sql.= ", fk_price_expression = ".($this->fk_price_expression != 0 ? (int) $this->fk_price_expression : 'NULL');
    +            $sql.= ", fk_user_modif = ".($user->id > 0 ? $user->id : 'NULL');
    +            // stock field is not here because it is a denormalized value from product_stock.
    +            $sql.= " WHERE rowid = " . $id;
     
    -			dol_syslog(get_class($this)."::update", LOG_DEBUG);
    +            dol_syslog(get_class($this)."::update", LOG_DEBUG);
     
    -			$resql=$this->db->query($sql);
    -			if ($resql)
    -			{
    -				$this->id = $id;
    +            $resql=$this->db->query($sql);
    +            if ($resql) {
    +                $this->id = $id;
     
    -				// Multilangs
    -				if (! empty($conf->global->MAIN_MULTILANGS))
    -				{
    -					if ( $this->setMultiLangs($user) < 0)
    -					{
    -						$this->error=$langs->trans("Error")." : ".$this->db->error()." - ".$sql;
    -						return -2;
    -					}
    -				}
    +                // Multilangs
    +                if (! empty($conf->global->MAIN_MULTILANGS)) {
    +                    if ($this->setMultiLangs($user) < 0) {
    +                           $this->error=$langs->trans("Error")." : ".$this->db->error()." - ".$sql;
    +                           return -2;
    +                    }
    +                }
     
    -				$action='update';
    +                $action='update';
     
    -				// Actions on extra fields
    -				if (! $error && empty($conf->global->MAIN_EXTRAFIELDS_DISABLED))
    -				{
    -					$result=$this->insertExtraFields();
    -					if ($result < 0)
    -					{
    -						$error++;
    -					}
    -				}
    +                // Actions on extra fields
    +                if (! $error && empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) {
    +                    $result=$this->insertExtraFields();
    +                    if ($result < 0) {
    +                        $error++;
    +                    }
    +                }
     
    -				if (! $error && ! $notrigger)
    -				{
    -                    // Call trigger
    -                    $result=$this->call_trigger('PRODUCT_MODIFY',$user);
    -                    if ($result < 0) { $error++; }
    +                if (! $error && ! $notrigger) {
    +                                // Call trigger
    +                                $result=$this->call_trigger('PRODUCT_MODIFY', $user);
    +                    if ($result < 0) { $error++;
    +                    }
                         // End call triggers
    -				}
    +                }
     
    -				if (! $error && (is_object($this->oldcopy) && $this->oldcopy->ref !== $this->ref))
    -				{
    -					// We remove directory
    -					if ($conf->product->dir_output)
    -					{
    -						$olddir = $conf->product->dir_output . "/" . dol_sanitizeFileName($this->oldcopy->ref);
    -						$newdir = $conf->product->dir_output . "/" . dol_sanitizeFileName($this->ref);
    -						if (file_exists($olddir))
    -						{
    -							//include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
    -							//$res = dol_move($olddir, $newdir);
    -							// do not use dol_move with directory
    -							$res = @rename($olddir, $newdir);
    -							if (! $res)
    -							{
    -							    $langs->load("errors");
    -								$this->error=$langs->trans('ErrorFailToRenameDir',$olddir,$newdir);
    -								$error++;
    -							}
    -						}
    -					}
    -				}
    +                if (! $error && (is_object($this->oldcopy) && $this->oldcopy->ref !== $this->ref)) {
    +                    // We remove directory
    +                    if ($conf->product->dir_output) {
    +                        $olddir = $conf->product->dir_output . "/" . dol_sanitizeFileName($this->oldcopy->ref);
    +                        $newdir = $conf->product->dir_output . "/" . dol_sanitizeFileName($this->ref);
    +                        if (file_exists($olddir)) {
    +                                 //include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
    +                                 //$res = dol_move($olddir, $newdir);
    +                                 // do not use dol_move with directory
    +                                 $res = @rename($olddir, $newdir);
    +                            if (! $res) {
    +                                $langs->load("errors");
    +                                $this->error=$langs->trans('ErrorFailToRenameDir', $olddir, $newdir);
    +                                $error++;
    +                            }
    +                        }
    +                    }
    +                }
     
    -				if (! $error)
    -				{
    -					if ($conf->variants->enabled) {
    +                if (! $error) {
    +                    if ($conf->variants->enabled) {
     
    -						require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php';
    +                        include_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php';
     
    -						$comb = new ProductCombination($this->db);
    +                        $comb = new ProductCombination($this->db);
     
    -						foreach ($comb->fetchAllByFkProductParent($this->id) as $currcomb) {
    -							$currcomb->updateProperties($this);
    -						}
    -					}
    +                        foreach ($comb->fetchAllByFkProductParent($this->id) as $currcomb) {
    +                                 $currcomb->updateProperties($this);
    +                        }
    +                    }
     
    -					$this->db->commit();
    -					return 1;
    -				}
    -				else
    -				{
    -					$this->db->rollback();
    -					return -$error;
    -				}
    -			}
    -			else
    -			{
    -				if ($this->db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS')
    -				{
    -					$langs->load("errors");
    -					if (empty($conf->barcode->enabled) || empty($this->barcode)) $this->error=$langs->trans("Error")." : ".$langs->trans("ErrorProductAlreadyExists",$this->ref);
    -					else $this->error=$langs->trans("Error")." : ".$langs->trans("ErrorProductBarCodeAlreadyExists",$this->barcode);
    -					$this->errors[]=$this->error;
    -					$this->db->rollback();
    -					return -1;
    -				}
    -				else
    -				{
    -					$this->error=$langs->trans("Error")." : ".$this->db->error()." - ".$sql;
    -					$this->errors[]=$this->error;
    -					$this->db->rollback();
    -					return -2;
    -				}
    -			}
    +                    $this->db->commit();
    +                    return 1;
    +                }
    +                else
    +                {
    +                    $this->db->rollback();
    +                    return -$error;
    +                }
    +            }
    +            else
    +            {
    +                if ($this->db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
    +                    $langs->load("errors");
    +                    if (empty($conf->barcode->enabled) || empty($this->barcode)) { $this->error=$langs->trans("Error")." : ".$langs->trans("ErrorProductAlreadyExists", $this->ref);
    +                    } else { $this->error=$langs->trans("Error")." : ".$langs->trans("ErrorProductBarCodeAlreadyExists", $this->barcode);
    +                    }
    +                    $this->errors[]=$this->error;
    +                    $this->db->rollback();
    +                    return -1;
    +                }
    +                else
    +                {
    +                    $this->error=$langs->trans("Error")." : ".$this->db->error()." - ".$sql;
    +                    $this->errors[]=$this->error;
    +                    $this->db->rollback();
    +                    return -2;
    +                }
    +            }
             }
             else
    -       {
    +          {
                 $this->db->rollback();
    -            dol_syslog(get_class($this)."::Update fails verify ".join(',',$this->errors), LOG_WARNING);
    +            dol_syslog(get_class($this)."::Update fails verify ".join(',', $this->errors), LOG_WARNING);
                 return -3;
             }
    -	}
    +    }
     
    -	/**
    -	 *  Delete a product from database (if not used)
    -	 *
    -	 *	@param      User	$user       Product id (usage of this is deprecated, delete should be called without parameters on a fetched object)
    -	 *  @param      int     $notrigger  Do not execute trigger
    -	 * 	@return		int					< 0 if KO, 0 = Not possible, > 0 if OK
    -	 */
    -	function delete(User $user, $notrigger=0)
    -	{
    -		// Deprecation warning
    -		if ($id > 0) {
    -			dol_syslog(__METHOD__ . " with parameter is deprecated", LOG_WARNING);
    -		}
    +    /**
    +     *  Delete a product from database (if not used)
    +     *
    +     * @param  User $user      Product id (usage of this is deprecated, delete should be called without parameters on a fetched object)
    +     * @param  int  $notrigger Do not execute trigger
    +     * @return int                    < 0 if KO, 0 = Not possible, > 0 if OK
    +     */
    +    function delete(User $user, $notrigger=0)
    +    {
    +        // Deprecation warning
    +        if ($id > 0) {
    +            dol_syslog(__METHOD__ . " with parameter is deprecated", LOG_WARNING);
    +        }
     
    -		global $conf, $langs;
    -		require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
    +        global $conf, $langs;
    +        include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
     
    -		$error=0;
    +        $error=0;
     
    -		// Clean parameters
    -		if (empty($id)) $id=$this->id;
    -		else $this->fetch($id);
    +        // Clean parameters
    +        if (empty($id)) { $id=$this->id;
    +        } else { $this->fetch($id);
    +        }
     
    -		// Check parameters
    -		if (empty($id))
    -		{
    -			$this->error = "Object must be fetched before calling delete";
    -			return -1;
    -		}
    -		if (($this->type == Product::TYPE_PRODUCT && empty($user->rights->produit->supprimer)) || ($this->type == Product::TYPE_SERVICE && empty($user->rights->service->supprimer)))
    -		{
    -			$this->error = "ErrorForbidden";
    -			return 0;
    -		}
    +        // Check parameters
    +        if (empty($id)) {
    +            $this->error = "Object must be fetched before calling delete";
    +            return -1;
    +        }
    +        if (($this->type == Product::TYPE_PRODUCT && empty($user->rights->produit->supprimer)) || ($this->type == Product::TYPE_SERVICE && empty($user->rights->service->supprimer))) {
    +            $this->error = "ErrorForbidden";
    +            return 0;
    +        }
     
    -		$objectisused = $this->isObjectUsed($id);
    -		if (empty($objectisused))
    -		{
    -			$this->db->begin();
    +        $objectisused = $this->isObjectUsed($id);
    +        if (empty($objectisused)) {
    +            $this->db->begin();
     
    -			if (! $error && empty($notrigger))
    -			{
    +            if (! $error && empty($notrigger)) {
                     // Call trigger
    -                $result=$this->call_trigger('PRODUCT_DELETE',$user);
    -                if ($result < 0) { $error++; }
    +                $result=$this->call_trigger('PRODUCT_DELETE', $user);
    +                if ($result < 0) { $error++;
    +                }
                     // End call triggers
    -			}
    +            }
     
    -			// Delete from product_batch on product delete
    -			if (! $error)
    -			{
    -				$sql = "DELETE FROM ".MAIN_DB_PREFIX.'product_batch';
    -				$sql.= " WHERE fk_product_stock IN (";
    -				$sql.= "SELECT rowid FROM ".MAIN_DB_PREFIX.'product_stock';
    -				$sql.= " WHERE fk_product = ".$id.")";
    +            // Delete from product_batch on product delete
    +            if (! $error) {
    +                $sql = "DELETE FROM ".MAIN_DB_PREFIX.'product_batch';
    +                $sql.= " WHERE fk_product_stock IN (";
    +                $sql.= "SELECT rowid FROM ".MAIN_DB_PREFIX.'product_stock';
    +                $sql.= " WHERE fk_product = ".$id.")";
     
    -				$result = $this->db->query($sql);
    -				if (! $result)
    -				{
    -					$error++;
    -					$this->errors[] = $this->db->lasterror();
    -				}
    -			}
    +                $result = $this->db->query($sql);
    +                if (! $result) {
    +                    $error++;
    +                    $this->errors[] = $this->db->lasterror();
    +                }
    +            }
     
    -   			// Delete all child tables
    -			if (! $error)
    -			{
    -				$elements = array('product_fournisseur_price','product_price','product_lang','categorie_product','product_stock','product_customer_price','product_lot');  // product_batch is done before
    -    			foreach($elements as $table)
    -    			{
    -    				if (! $error)
    -    				{
    -    					$sql = "DELETE FROM ".MAIN_DB_PREFIX.$table;
    -    					$sql.= " WHERE fk_product = ".$id;
    -
    -    					$result = $this->db->query($sql);
    -    					if (! $result)
    -    					{
    -    						$error++;
    -    						$this->errors[] = $this->db->lasterror();
    -    					}
    -    				}
    -    			}
    -			}
    -
    -			if (!$error) {
    -
    -				require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php';
    -				require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination2ValuePair.class.php';
    -
    -				//If it is a parent product, then we remove the association with child products
    -				$prodcomb = new ProductCombination($this->db);
    -
    -				if ($prodcomb->deleteByFkProductParent($user, $id) < 0) {
    -					$error++;
    -					$this->errors[] = 'Error deleting combinations';
    -				}
    -
    -				//We also check if it is a child product
    -				if (!$error && ($prodcomb->fetchByFkProductChild($id) > 0) && ($prodcomb->delete($user) < 0)) {
    -					$error++;
    -					$this->errors[] = 'Error deleting child combination';
    -				}
    -			}
    -
    -			// Delete from product_association
    -			if (!$error){
    -				$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_association";
    -				$sql.= " WHERE fk_product_pere = ".$id." OR fk_product_fils = ".$id;
    -
    -				$result = $this->db->query($sql);
    -				if (! $result)
    -				{
    -					$error++;
    -					$this->errors[] = $this->db->lasterror();
    -				}
    -			}
    -
    -			// Delete product
    -			if (! $error)
    -			{
    -				$sqlz = "DELETE FROM ".MAIN_DB_PREFIX."product";
    -				$sqlz.= " WHERE rowid = ".$id;
    -
    -				$resultz = $this->db->query($sqlz);
    -				if ( ! $resultz )
    -				{
    -					$error++;
    -					$this->errors[] = $this->db->lasterror();
    -				}
    -			}
    -
    -			if (! $error)
    -			{
    -				// We remove directory
    -				$ref = dol_sanitizeFileName($this->ref);
    -				if ($conf->product->dir_output)
    -				{
    -					$dir = $conf->product->dir_output . "/" . $ref;
    -					if (file_exists($dir))
    -					{
    -						$res=@dol_delete_dir_recursive($dir);
    -						if (! $res)
    -						{
    -							$this->errors[] = 'ErrorFailToDeleteDir';
    -							$error++;
    -						}
    -					}
    -				}
    -			}
    -
    -			// Remove extrafields
    -			if ((! $error) && (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED))) // For avoid conflicts if trigger used
    -			{
    -				$result=$this->deleteExtraFields();
    -				if ($result < 0)
    -				{
    -					$error++;
    -					dol_syslog(get_class($this)."::delete error -4 ".$this->error, LOG_ERR);
    -				}
    -			}
    -
    -			if (! $error)
    -			{
    -				$this->db->commit();
    -				return 1;
    -			}
    -			else
    -			{
    -				foreach($this->errors as $errmsg)
    -				{
    -					dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
    -					$this->error.=($this->error?', '.$errmsg:$errmsg);
    -				}
    -				$this->db->rollback();
    -				return -$error;
    -			}
    -		}
    -		else
    -		{
    -			$this->error = "ErrorRecordIsUsedCantDelete";
    -			return 0;
    -		}
    -	}
    -
    -	/**
    -	 *	Update or add a translation for a product
    -	 *
    -	 *	@param     User	   $user                   Object user making update
    -	 *	@return	   int		<0 if KO, >0 if OK
    -	 */
    -	function setMultiLangs($user)
    -	{
    -		global $conf, $langs;
    -
    -		$langs_available = $langs->get_available_languages(DOL_DOCUMENT_ROOT, 0, 2);
    -		$current_lang = $langs->getDefaultLang();
    -
    -		foreach ($langs_available as $key => $value)
    -		{
    -			if ($key == $current_lang)
    -			{
    -				$sql = "SELECT rowid";
    -				$sql.= " FROM ".MAIN_DB_PREFIX."product_lang";
    -				$sql.= " WHERE fk_product=".$this->id;
    -				$sql.= " AND lang='".$key."'";
    -
    -				$result = $this->db->query($sql);
    -
    -				if ($this->db->num_rows($result)) // if there is already a description line for this language
    -				{
    -					$sql2 = "UPDATE ".MAIN_DB_PREFIX."product_lang";
    -					$sql2.= " SET ";
    -					$sql2.= " label='".$this->db->escape($this->label)."',";
    -					$sql2.= " description='".$this->db->escape($this->description)."'";
    -					if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) $sql2.= ", note='".$this->db->escape($this->other)."'";
    -					$sql2.= " WHERE fk_product=".$this->id." AND lang='".$this->db->escape($key)."'";
    -				}
    -				else
    -				{
    -					$sql2 = "INSERT INTO ".MAIN_DB_PREFIX."product_lang (fk_product, lang, label, description";
    -					if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) $sql2.=", note";
    -					$sql2.= ")";
    -					$sql2.= " VALUES(".$this->id.",'".$this->db->escape($key)."','". $this->db->escape($this->label)."',";
    -					$sql2.= " '".$this->db->escape($this->description)."'";
    -					if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) $sql2.= ", '".$this->db->escape($this->other)."'";
    -					$sql2.= ")";
    -				}
    -				dol_syslog(get_class($this).'::setMultiLangs key = current_lang = '.$key);
    -				if (! $this->db->query($sql2))
    -				{
    -					$this->error=$this->db->lasterror();
    -					return -1;
    -				}
    -			}
    -			else if (isset($this->multilangs[$key]))
    -			{
    -				$sql = "SELECT rowid";
    -				$sql.= " FROM ".MAIN_DB_PREFIX."product_lang";
    -				$sql.= " WHERE fk_product=".$this->id;
    -				$sql.= " AND lang='".$key."'";
    -
    -				$result = $this->db->query($sql);
    -
    -				if ($this->db->num_rows($result)) // if there is already a description line for this language
    -				{
    -					$sql2 = "UPDATE ".MAIN_DB_PREFIX."product_lang";
    -					$sql2.= " SET ";
    -					$sql2.= " label='".$this->db->escape($this->multilangs["$key"]["label"])."',";
    -					$sql2.= " description='".$this->db->escape($this->multilangs["$key"]["description"])."'";
    -					if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) $sql2.= ", note='".$this->db->escape($this->multilangs["$key"]["other"])."'";
    -					$sql2.= " WHERE fk_product=".$this->id." AND lang='".$this->db->escape($key)."'";
    -				}
    -				else
    -				{
    -					$sql2 = "INSERT INTO ".MAIN_DB_PREFIX."product_lang (fk_product, lang, label, description";
    -					if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) $sql2.=", note";
    -					$sql2.= ")";
    -					$sql2.= " VALUES(".$this->id.",'".$this->db->escape($key)."','". $this->db->escape($this->multilangs["$key"]["label"])."',";
    -					$sql2.= " '".$this->db->escape($this->multilangs["$key"]["description"])."'";
    -					if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) $sql2.= ", '".$this->db->escape($this->multilangs["$key"]["other"])."'";
    -					$sql2.= ")";
    -				}
    -
    -				// We do not save if main fields are empty
    -				if ($this->multilangs["$key"]["label"] || $this->multilangs["$key"]["description"])
    -				{
    -    				if (! $this->db->query($sql2))
    -    				{
    -    					$this->error=$this->db->lasterror();
    -    					return -1;
    -    				}
    -				}
    -			}
    -			else
    -			{
    -				// language is not current language and we didn't provide a multilang description for this language
    -			}
    -		}
    -
    -		// Call trigger
    -		$result = $this->call_trigger('PRODUCT_SET_MULTILANGS',$user);
    -		if ($result < 0) {
    -			$this->error = $this->db->lasterror();
    -			return -1;
    -		}
    -		// End call triggers
    -
    -		return 1;
    -	}
    -
    -	/**
    -	 *	Delete a language for this product
    -	 *
    -	 *  @param		string	$langtodelete		Language code to delete
    -	 *	@param		User	$user       Object user making delete
    -	 *
    -	 *	@return		int							<0 if KO, >0 if OK
    -	 */
    -	function delMultiLangs($langtodelete, $user)
    -	{
    -		$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_lang";
    -		$sql.= " WHERE fk_product=".$this->id." AND lang='".$this->db->escape($langtodelete)."'";
    -
    -		dol_syslog(get_class($this).'::delMultiLangs', LOG_DEBUG);
    -		$result = $this->db->query($sql);
    -		if ($result)
    -		{
    -			// Call trigger
    -			$result = $this->call_trigger('PRODUCT_DEL_MULTILANGS',$user);
    -			if ($result < 0) {
    -				$this->error = $this->db->lasterror();
    -				dol_syslog(get_class($this).'::delMultiLangs error='.$this->error, LOG_ERR);
    -				return -1;
    -			}
    -			// End call triggers
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->lasterror();
    -			dol_syslog(get_class($this).'::delMultiLangs error='.$this->error, LOG_ERR);
    -			return -1;
    -		}
    -	}
    -
    -	/*
    -	 * Sets an accountancy code for a product.
    -	 * Also calls PRODUCT_MODIFY trigger when modified
    -	 *
    -	 * @param string $type It can be 'buy', 'sell', 'sell_intra' or 'sell_export'
    -	 * @param string $value Accountancy code
    -	 * @return int <0 KO >0 OK
    -	 */
    -	public function setAccountancyCode($type, $value)
    -	{
    -		global $user, $langs, $conf;
    -
    -		$this->db->begin();
    -
    -		if ($type == 'buy') {
    -			$field = 'accountancy_code_buy';
    -		} elseif ($type == 'sell') {
    -			$field = 'accountancy_code_sell';
    -		} elseif ($type == 'sell_intra') {
    -			$field = 'accountancy_code_sell_intra';
    -		} elseif ($type == 'sell_export') {
    -			$field = 'accountancy_code_sell_export';
    -		} else {
    -			return -1;
    -		}
    -
    -		$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET ";
    -		$sql.= "$field = '".$this->db->escape($value)."'";
    -		$sql.= " WHERE rowid = ".$this->id;
    -
    -		dol_syslog(get_class($this)."::".__FUNCTION__." sql=".$sql, LOG_DEBUG);
    -		$resql = $this->db->query($sql);
    -
    -		if ($resql)
    -		{
    -			// Call triggers
    -			include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    -			$interface=new Interfaces($this->db);
    -			$result=$interface->run_triggers('PRODUCT_MODIFY',$this,$user,$langs,$conf);
    -			if ($result < 0)
    -			{
    -				$this->errors=$interface->errors;
    -				$this->db->rollback();
    -				return -1;
    -			}
    -			// End call triggers
    -
    -			$this->$field = $value;
    -
    -			$this->db->commit();
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->lasterror();
    -			$this->db->rollback();
    -			return -1;
    -		}
    -	}
    -
    -	/**
    -	 *	Load array this->multilangs
    -	 *
    -	 *	@return		int		<0 if KO, >0 if OK
    -	 */
    -	function getMultiLangs()
    -	{
    -		global $langs;
    -
    -		$current_lang = $langs->getDefaultLang();
    -
    -		$sql = "SELECT lang, label, description, note as other";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product_lang";
    -		$sql.= " WHERE fk_product=".$this->id;
    -
    -		$result = $this->db->query($sql);
    -		if ($result)
    -		{
    -			while ($obj = $this->db->fetch_object($result))
    -			{
    -				//print 'lang='.$obj->lang.' current='.$current_lang.'<br>';
    -				if ($obj->lang == $current_lang)  // si on a les traduct. dans la langue courante on les charge en infos principales.
    -				{
    -					$this->label		= $obj->label;
    -					$this->description	= $obj->description;
    -					$this->other	    = $obj->other;
    -				}
    -				$this->multilangs["$obj->lang"]["label"]		= $obj->label;
    -				$this->multilangs["$obj->lang"]["description"]	= $obj->description;
    -				$this->multilangs["$obj->lang"]["other"]		= $obj->other;
    -			}
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error="Error: ".$this->db->lasterror()." - ".$sql;
    -			return -1;
    -		}
    -	}
    -
    -
    -
    -	/**
    -	 *  Insert a track that we changed a customer price
    -	 *
    -	 *	@param  	User	$user       User making change
    -	 *	@param		int		$level		price level to change
    -	 *	@return		int					<0 if KO, >0 if OK
    -	 */
    -	function _log_price($user,$level=0)
    -	{
    -		global $conf;
    -
    -		$now=dol_now();
    -
    -		// Clean parameters
    -		if (empty($this->price_by_qty)) $this->price_by_qty=0;
    -
    -		// Add new price
    -		$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_price(price_level,date_price, fk_product, fk_user_author, price, price_ttc, price_base_type,tosell, tva_tx, default_vat_code, recuperableonly,";
    -		$sql.= " localtax1_tx, localtax2_tx, localtax1_type, localtax2_type, price_min,price_min_ttc,price_by_qty,entity,fk_price_expression) ";
    -		$sql.= " VALUES(".($level?$level:1).", '".$this->db->idate($now)."',".$this->id.",".$user->id.",".$this->price.",".$this->price_ttc.",'".$this->db->escape($this->price_base_type)."',".$this->status.",".$this->tva_tx.", ".($this->default_vat_code?("'".$this->db->escape($this->default_vat_code)."'"):"null").",".$this->tva_npr.",";
    -		$sql.= " ".$this->localtax1_tx.", ".$this->localtax2_tx.", '".$this->db->escape($this->localtax1_type)."', '".$this->db->escape($this->localtax2_type)."', ".$this->price_min.",".$this->price_min_ttc.",".$this->price_by_qty.",".$conf->entity.",".($this->fk_price_expression > 0?$this->fk_price_expression:'null');
    -		$sql.= ")";
    -
    -		dol_syslog(get_class($this)."::_log_price", LOG_DEBUG);
    -		$resql=$this->db->query($sql);
    -		if(! $resql)
    -		{
    -			$this->error=$this->db->lasterror();
    -			dol_print_error($this->db);
    -			return -1;
    -		}
    -		else
    -		{
    -			return 1;
    -		}
    -	}
    -
    -
    -	/**
    -	 *  Delete a price line
    -	 *
    -	 * 	@param		User	$user	Object user
    -	 * 	@param		int		$rowid	Line id to delete
    -	 * 	@return		int				<0 if KO, >0 if OK
    -	 */
    -	function log_price_delete($user, $rowid)
    -	{
    -		$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_price_by_qty";
    -		$sql.= " WHERE fk_product_price=".$rowid;
    -		$resql=$this->db->query($sql);
    -
    -		$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_price";
    -		$sql.= " WHERE rowid=".$rowid;
    -		$resql=$this->db->query($sql);
    -		if ($resql)
    -		{
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->lasterror();
    -			return -1;
    -		}
    -	}
    -
    -
    -	/**
    -	 *	Read price used by a provider.
    -	 *	We enter as input couple prodfournprice/qty or triplet qty/product_id/fourn_ref.
    -	 *  This also set some properties on product like ->buyprice, ->fourn_pu, ...
    -	 *
    -	 *  @param     	int		$prodfournprice     Id du tarif = rowid table product_fournisseur_price
    -	 *  @param     	double	$qty                Quantity asked or -1 to get first entry found
    -	 *	@param		int		$product_id			Filter on a particular product id
    -	 * 	@param		string	$fourn_ref			Filter on a supplier price ref. 'none' to exclude ref in search.
    -	 *  @param      int     $fk_soc             If of supplier
    -	 *  @return    	int 						<-1 if KO, -1 if qty not enough, 0 if OK but nothing found, id_product if OK and found. May also initialize some properties like (->ref_supplier, buyprice, fourn_pu, vatrate_supplier...)
    -	 */
    -	function get_buyprice($prodfournprice, $qty, $product_id=0, $fourn_ref='', $fk_soc=0)
    -	{
    -		global $conf;
    -		$result = 0;
    -
    -		// We do a first seach with a select by searching with couple prodfournprice and qty only (later we will search on triplet qty/product_id/fourn_ref)
    -		$sql = "SELECT pfp.rowid, pfp.price as price, pfp.quantity as quantity, pfp.remise_percent,";
    -		$sql.= " pfp.fk_product, pfp.ref_fourn, pfp.fk_soc, pfp.tva_tx, pfp.fk_supplier_price_expression";
    -		$sql.= " ,pfp.default_vat_code";
    -        $sql.= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
    -		$sql.= " WHERE pfp.rowid = ".$prodfournprice;
    -		if ($qty > 0) $sql.= " AND pfp.quantity <= ".$qty;
    -		$sql.= " ORDER BY pfp.quantity DESC";
    -
    -		dol_syslog(get_class($this)."::get_buyprice first search by prodfournprice/qty", LOG_DEBUG);
    -		$resql = $this->db->query($sql);
    -		if ($resql)
    -		{
    -			$obj = $this->db->fetch_object($resql);
    -			if ($obj && $obj->quantity > 0)		// If we found a supplier prices from the id of supplier price
    -			{
    -                if (!empty($conf->dynamicprices->enabled) && !empty($obj->fk_supplier_price_expression))
    +            // Delete all child tables
    +            if (! $error) {
    +                $elements = array('product_fournisseur_price','product_price','product_lang','categorie_product','product_stock','product_customer_price','product_lot');  // product_batch is done before
    +                foreach($elements as $table)
                     {
    -					require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php';
    +                    if (! $error) {
    +                        $sql = "DELETE FROM ".MAIN_DB_PREFIX.$table;
    +                        $sql.= " WHERE fk_product = ".$id;
    +
    +                        $result = $this->db->query($sql);
    +                        if (! $result) {
    +                            $error++;
    +                            $this->errors[] = $this->db->lasterror();
    +                        }
    +                    }
    +                }
    +            }
    +
    +            if (!$error) {
    +
    +                include_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php';
    +                include_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination2ValuePair.class.php';
    +
    +                //If it is a parent product, then we remove the association with child products
    +                $prodcomb = new ProductCombination($this->db);
    +
    +                if ($prodcomb->deleteByFkProductParent($user, $id) < 0) {
    +                    $error++;
    +                    $this->errors[] = 'Error deleting combinations';
    +                }
    +
    +                //We also check if it is a child product
    +                if (!$error && ($prodcomb->fetchByFkProductChild($id) > 0) && ($prodcomb->delete($user) < 0)) {
    +                    $error++;
    +                    $this->errors[] = 'Error deleting child combination';
    +                }
    +            }
    +
    +            // Delete from product_association
    +            if (!$error) {
    +                $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_association";
    +                $sql.= " WHERE fk_product_pere = ".$id." OR fk_product_fils = ".$id;
    +
    +                $result = $this->db->query($sql);
    +                if (! $result) {
    +                    $error++;
    +                    $this->errors[] = $this->db->lasterror();
    +                }
    +            }
    +
    +            // Delete product
    +            if (! $error) {
    +                $sqlz = "DELETE FROM ".MAIN_DB_PREFIX."product";
    +                $sqlz.= " WHERE rowid = ".$id;
    +
    +                $resultz = $this->db->query($sqlz);
    +                if (! $resultz ) {
    +                    $error++;
    +                    $this->errors[] = $this->db->lasterror();
    +                }
    +            }
    +
    +            if (! $error) {
    +                // We remove directory
    +                $ref = dol_sanitizeFileName($this->ref);
    +                if ($conf->product->dir_output) {
    +                    $dir = $conf->product->dir_output . "/" . $ref;
    +                    if (file_exists($dir)) {
    +                        $res=@dol_delete_dir_recursive($dir);
    +                        if (! $res) {
    +                            $this->errors[] = 'ErrorFailToDeleteDir';
    +                            $error++;
    +                        }
    +                    }
    +                }
    +            }
    +
    +            // Remove extrafields
    +            if ((! $error) && (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED))) // For avoid conflicts if trigger used
    +            {
    +                $result=$this->deleteExtraFields();
    +                if ($result < 0) {
    +                    $error++;
    +                    dol_syslog(get_class($this)."::delete error -4 ".$this->error, LOG_ERR);
    +                }
    +            }
    +
    +            if (! $error) {
    +                $this->db->commit();
    +                return 1;
    +            }
    +            else
    +            {
    +                foreach($this->errors as $errmsg)
    +                {
    +                    dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
    +                    $this->error.=($this->error?', '.$errmsg:$errmsg);
    +                }
    +                $this->db->rollback();
    +                return -$error;
    +            }
    +        }
    +        else
    +        {
    +            $this->error = "ErrorRecordIsUsedCantDelete";
    +            return 0;
    +        }
    +    }
    +
    +    /**
    +     *    Update or add a translation for a product
    +     *
    +     * @param  User $user Object user making update
    +     * @return int        <0 if KO, >0 if OK
    +     */
    +    function setMultiLangs($user)
    +    {
    +        global $conf, $langs;
    +
    +        $langs_available = $langs->get_available_languages(DOL_DOCUMENT_ROOT, 0, 2);
    +        $current_lang = $langs->getDefaultLang();
    +
    +        foreach ($langs_available as $key => $value)
    +        {
    +            if ($key == $current_lang) {
    +                $sql = "SELECT rowid";
    +                $sql.= " FROM ".MAIN_DB_PREFIX."product_lang";
    +                $sql.= " WHERE fk_product=".$this->id;
    +                $sql.= " AND lang='".$key."'";
    +
    +                $result = $this->db->query($sql);
    +
    +                if ($this->db->num_rows($result)) // if there is already a description line for this language
    +                {
    +                    $sql2 = "UPDATE ".MAIN_DB_PREFIX."product_lang";
    +                    $sql2.= " SET ";
    +                    $sql2.= " label='".$this->db->escape($this->label)."',";
    +                    $sql2.= " description='".$this->db->escape($this->description)."'";
    +                    if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) { $sql2.= ", note='".$this->db->escape($this->other)."'";
    +                    }
    +                    $sql2.= " WHERE fk_product=".$this->id." AND lang='".$this->db->escape($key)."'";
    +                }
    +                else
    +                {
    +                    $sql2 = "INSERT INTO ".MAIN_DB_PREFIX."product_lang (fk_product, lang, label, description";
    +                    if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) { $sql2.=", note";
    +                    }
    +                    $sql2.= ")";
    +                    $sql2.= " VALUES(".$this->id.",'".$this->db->escape($key)."','". $this->db->escape($this->label)."',";
    +                    $sql2.= " '".$this->db->escape($this->description)."'";
    +                    if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) { $sql2.= ", '".$this->db->escape($this->other)."'";
    +                    }
    +                    $sql2.= ")";
    +                }
    +                dol_syslog(get_class($this).'::setMultiLangs key = current_lang = '.$key);
    +                if (! $this->db->query($sql2)) {
    +                    $this->error=$this->db->lasterror();
    +                    return -1;
    +                }
    +            }
    +            else if (isset($this->multilangs[$key])) {
    +                $sql = "SELECT rowid";
    +                $sql.= " FROM ".MAIN_DB_PREFIX."product_lang";
    +                $sql.= " WHERE fk_product=".$this->id;
    +                $sql.= " AND lang='".$key."'";
    +
    +                $result = $this->db->query($sql);
    +
    +                if ($this->db->num_rows($result)) // if there is already a description line for this language
    +                {
    +                    $sql2 = "UPDATE ".MAIN_DB_PREFIX."product_lang";
    +                    $sql2.= " SET ";
    +                    $sql2.= " label='".$this->db->escape($this->multilangs["$key"]["label"])."',";
    +                    $sql2.= " description='".$this->db->escape($this->multilangs["$key"]["description"])."'";
    +                    if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) { $sql2.= ", note='".$this->db->escape($this->multilangs["$key"]["other"])."'";
    +                    }
    +                    $sql2.= " WHERE fk_product=".$this->id." AND lang='".$this->db->escape($key)."'";
    +                }
    +                else
    +                {
    +                    $sql2 = "INSERT INTO ".MAIN_DB_PREFIX."product_lang (fk_product, lang, label, description";
    +                    if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) { $sql2.=", note";
    +                    }
    +                    $sql2.= ")";
    +                    $sql2.= " VALUES(".$this->id.",'".$this->db->escape($key)."','". $this->db->escape($this->multilangs["$key"]["label"])."',";
    +                    $sql2.= " '".$this->db->escape($this->multilangs["$key"]["description"])."'";
    +                    if (! empty($conf->global->PRODUCT_USE_OTHER_FIELD_IN_TRANSLATION)) { $sql2.= ", '".$this->db->escape($this->multilangs["$key"]["other"])."'";
    +                    }
    +                    $sql2.= ")";
    +                }
    +
    +                // We do not save if main fields are empty
    +                if ($this->multilangs["$key"]["label"] || $this->multilangs["$key"]["description"]) {
    +                    if (! $this->db->query($sql2)) {
    +                        $this->error=$this->db->lasterror();
    +                        return -1;
    +                    }
    +                }
    +            }
    +            else
    +            {
    +                // language is not current language and we didn't provide a multilang description for this language
    +            }
    +        }
    +
    +        // Call trigger
    +        $result = $this->call_trigger('PRODUCT_SET_MULTILANGS', $user);
    +        if ($result < 0) {
    +            $this->error = $this->db->lasterror();
    +            return -1;
    +        }
    +        // End call triggers
    +
    +        return 1;
    +    }
    +
    +    /**
    +     *    Delete a language for this product
    +     *
    +     * @param string $langtodelete Language code to delete
    +     * @param User   $user         Object user making delete
    +     *
    +     * @return int                            <0 if KO, >0 if OK
    +     */
    +    function delMultiLangs($langtodelete, $user)
    +    {
    +        $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_lang";
    +        $sql.= " WHERE fk_product=".$this->id." AND lang='".$this->db->escape($langtodelete)."'";
    +
    +        dol_syslog(get_class($this).'::delMultiLangs', LOG_DEBUG);
    +        $result = $this->db->query($sql);
    +        if ($result) {
    +            // Call trigger
    +            $result = $this->call_trigger('PRODUCT_DEL_MULTILANGS', $user);
    +            if ($result < 0) {
    +                $this->error = $this->db->lasterror();
    +                dol_syslog(get_class($this).'::delMultiLangs error='.$this->error, LOG_ERR);
    +                return -1;
    +            }
    +            // End call triggers
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->lasterror();
    +            dol_syslog(get_class($this).'::delMultiLangs error='.$this->error, LOG_ERR);
    +            return -1;
    +        }
    +    }
    +
    +    /*
    +    * Sets an accountancy code for a product.
    +    * Also calls PRODUCT_MODIFY trigger when modified
    +    *
    +    * @param string $type It can be 'buy', 'sell', 'sell_intra' or 'sell_export'
    +    * @param string $value Accountancy code
    +    * @return int <0 KO >0 OK
    +    */
    +    public function setAccountancyCode($type, $value)
    +    {
    +        global $user, $langs, $conf;
    +
    +        $this->db->begin();
    +
    +        if ($type == 'buy') {
    +            $field = 'accountancy_code_buy';
    +        } elseif ($type == 'sell') {
    +            $field = 'accountancy_code_sell';
    +        } elseif ($type == 'sell_intra') {
    +            $field = 'accountancy_code_sell_intra';
    +        } elseif ($type == 'sell_export') {
    +            $field = 'accountancy_code_sell_export';
    +        } else {
    +            return -1;
    +        }
    +
    +        $sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET ";
    +        $sql.= "$field = '".$this->db->escape($value)."'";
    +        $sql.= " WHERE rowid = ".$this->id;
    +
    +        dol_syslog(get_class($this)."::".__FUNCTION__." sql=".$sql, LOG_DEBUG);
    +        $resql = $this->db->query($sql);
    +
    +        if ($resql) {
    +            // Call triggers
    +            include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
    +            $interface=new Interfaces($this->db);
    +            $result=$interface->run_triggers('PRODUCT_MODIFY', $this, $user, $langs, $conf);
    +            if ($result < 0) {
    +                $this->errors=$interface->errors;
    +                $this->db->rollback();
    +                return -1;
    +            }
    +            // End call triggers
    +
    +            $this->$field = $value;
    +
    +            $this->db->commit();
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->lasterror();
    +            $this->db->rollback();
    +            return -1;
    +        }
    +    }
    +
    +    /**
    +     *    Load array this->multilangs
    +     *
    +     * @return int        <0 if KO, >0 if OK
    +     */
    +    function getMultiLangs()
    +    {
    +        global $langs;
    +
    +        $current_lang = $langs->getDefaultLang();
    +
    +        $sql = "SELECT lang, label, description, note as other";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product_lang";
    +        $sql.= " WHERE fk_product=".$this->id;
    +
    +        $result = $this->db->query($sql);
    +        if ($result) {
    +            while ($obj = $this->db->fetch_object($result))
    +            {
    +                //print 'lang='.$obj->lang.' current='.$current_lang.'<br>';
    +                if ($obj->lang == $current_lang)  // si on a les traduct. dans la langue courante on les charge en infos principales.
    +                {
    +                    $this->label        = $obj->label;
    +                    $this->description    = $obj->description;
    +                    $this->other        = $obj->other;
    +                }
    +                $this->multilangs["$obj->lang"]["label"]        = $obj->label;
    +                $this->multilangs["$obj->lang"]["description"]    = $obj->description;
    +                $this->multilangs["$obj->lang"]["other"]        = $obj->other;
    +            }
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error="Error: ".$this->db->lasterror()." - ".$sql;
    +            return -1;
    +        }
    +    }
    +
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Insert a track that we changed a customer price
    +     *
    +     * @param  User $user  User making change
    +     * @param  int  $level price level to change
    +     * @return int                    <0 if KO, >0 if OK
    +     */
    +    function _log_price($user,$level=0)
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $now=dol_now();
    +
    +        // Clean parameters
    +        if (empty($this->price_by_qty)) { $this->price_by_qty=0;
    +        }
    +
    +        // Add new price
    +        $sql = "INSERT INTO ".MAIN_DB_PREFIX."product_price(price_level,date_price, fk_product, fk_user_author, price, price_ttc, price_base_type,tosell, tva_tx, default_vat_code, recuperableonly,";
    +        $sql.= " localtax1_tx, localtax2_tx, localtax1_type, localtax2_type, price_min,price_min_ttc,price_by_qty,entity,fk_price_expression) ";
    +        $sql.= " VALUES(".($level?$level:1).", '".$this->db->idate($now)."',".$this->id.",".$user->id.",".$this->price.",".$this->price_ttc.",'".$this->db->escape($this->price_base_type)."',".$this->status.",".$this->tva_tx.", ".($this->default_vat_code?("'".$this->db->escape($this->default_vat_code)."'"):"null").",".$this->tva_npr.",";
    +        $sql.= " ".$this->localtax1_tx.", ".$this->localtax2_tx.", '".$this->db->escape($this->localtax1_type)."', '".$this->db->escape($this->localtax2_type)."', ".$this->price_min.",".$this->price_min_ttc.",".$this->price_by_qty.",".$conf->entity.",".($this->fk_price_expression > 0?$this->fk_price_expression:'null');
    +        $sql.= ")";
    +
    +        dol_syslog(get_class($this)."::_log_price", LOG_DEBUG);
    +        $resql=$this->db->query($sql);
    +        if(! $resql) {
    +            $this->error=$this->db->lasterror();
    +            dol_print_error($this->db);
    +            return -1;
    +        }
    +        else
    +        {
    +            return 1;
    +        }
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Delete a price line
    +     *
    +     * @param  User $user  Object user
    +     * @param  int  $rowid Line id to delete
    +     * @return int                <0 if KO, >0 if OK
    +     */
    +    function log_price_delete($user, $rowid)
    +    {
    +        // phpcs:enable
    +        $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_price_by_qty";
    +        $sql.= " WHERE fk_product_price=".$rowid;
    +        $resql=$this->db->query($sql);
    +
    +        $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_price";
    +        $sql.= " WHERE rowid=".$rowid;
    +        $resql=$this->db->query($sql);
    +        if ($resql) {
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->lasterror();
    +            return -1;
    +        }
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *    Read price used by a provider.
    +     *    We enter as input couple prodfournprice/qty or triplet qty/product_id/fourn_ref.
    +     *  This also set some properties on product like ->buyprice, ->fourn_pu, ...
    +     *
    +     * @param  int    $prodfournprice Id du tarif = rowid table product_fournisseur_price
    +     * @param  double $qty            Quantity asked or -1 to get first entry found
    +     * @param  int    $product_id     Filter on a particular product id
    +     * @param  string $fourn_ref      Filter on a supplier price ref. 'none' to exclude ref in search.
    +     * @param  int    $fk_soc         If of supplier
    +     * @return int                         <-1 if KO, -1 if qty not enough, 0 if OK but nothing found, id_product if OK and found. May also initialize some properties like (->ref_supplier, buyprice, fourn_pu, vatrate_supplier...)
    +     */
    +    function get_buyprice($prodfournprice, $qty, $product_id=0, $fourn_ref='', $fk_soc=0)
    +    {
    +        // phpcs:enable
    +        global $conf;
    +        $result = 0;
    +
    +        // We do a first seach with a select by searching with couple prodfournprice and qty only (later we will search on triplet qty/product_id/fourn_ref)
    +        $sql = "SELECT pfp.rowid, pfp.price as price, pfp.quantity as quantity, pfp.remise_percent,";
    +        $sql.= " pfp.fk_product, pfp.ref_fourn, pfp.desc_fourn, pfp.fk_soc, pfp.tva_tx, pfp.fk_supplier_price_expression";
    +        $sql.= " ,pfp.default_vat_code";
    +        $sql.= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
    +        $sql.= " WHERE pfp.rowid = ".$prodfournprice;
    +        if ($qty > 0) { $sql.= " AND pfp.quantity <= ".$qty;
    +        }
    +        $sql.= " ORDER BY pfp.quantity DESC";
    +
    +        dol_syslog(get_class($this)."::get_buyprice first search by prodfournprice/qty", LOG_DEBUG);
    +        $resql = $this->db->query($sql);
    +        if ($resql) {
    +            $obj = $this->db->fetch_object($resql);
    +            if ($obj && $obj->quantity > 0)        // If we found a supplier prices from the id of supplier price
    +            {
    +                if (!empty($conf->dynamicprices->enabled) && !empty($obj->fk_supplier_price_expression)) {
    +                    include_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php';
                         $prod_supplier = new ProductFournisseur($this->db);
                         $prod_supplier->product_fourn_price_id = $obj->rowid;
                         $prod_supplier->id = $obj->fk_product;
    @@ -1546,2077 +1574,2222 @@ class Product extends CommonObject
                         $priceparser = new PriceParser($this->db);
                         $price_result = $priceparser->parseProductSupplier($prod_supplier);
                         if ($price_result >= 0) {
    -                    	$obj->price = $price_result;
    +                        $obj->price = $price_result;
                         }
                     }
                     $this->product_fourn_price_id = $obj->rowid;
    -				$this->buyprice = $obj->price;                      // deprecated
    -				$this->fourn_pu = $obj->price / $obj->quantity;     // Unit price of product of supplier
    -				$this->fourn_price_base_type = 'HT';                // Price base type
    -				$this->fourn_socid = $obj->fk_soc;                  // Company that offer this price
    -				$this->ref_fourn = $obj->ref_fourn;                 // deprecated
    -				$this->ref_supplier = $obj->ref_fourn;              // Ref supplier
    -				$this->remise_percent = $obj->remise_percent;       // remise percent if present and not typed
    -				$this->vatrate_supplier = $obj->tva_tx;             // Vat ref supplier
    -				$this->default_vat_code = $obj->default_vat_code;   // Vat code supplier
    +                $this->buyprice = $obj->price;                      // deprecated
    +                $this->fourn_pu = $obj->price / $obj->quantity;     // Unit price of product of supplier
    +                $this->fourn_price_base_type = 'HT';                // Price base type
    +                $this->fourn_socid = $obj->fk_soc;                  // Company that offer this price
    +                $this->ref_fourn = $obj->ref_fourn;                 // deprecated
    +                $this->ref_supplier = $obj->ref_fourn;              // Ref supplier
    +                $this->desc_supplier = $obj->desc_fourn;            // desc supplier
    +                $this->remise_percent = $obj->remise_percent;       // remise percent if present and not typed
    +                $this->vatrate_supplier = $obj->tva_tx;             // Vat ref supplier
    +                $this->default_vat_code = $obj->default_vat_code;   // Vat code supplier
                     $this->fourn_multicurrency_price       = $obj->multicurrency_price;
                     $this->fourn_multicurrency_unitprice   = $obj->multicurrency_unitprice;
                     $this->fourn_multicurrency_tx          = $obj->multicurrency_tx;
                     $this->fourn_multicurrency_id          = $obj->fk_multicurrency;
                     $this->fourn_multicurrency_code        = $obj->multicurrency_code;
    -				$result=$obj->fk_product;
    -				return $result;
    -			}
    -			else // If not found
    -			{
    -				// We do a second search by doing a select again but searching with less reliable criteria: couple qty/id product, and if set fourn_ref or fk_soc.
    -				$sql = "SELECT pfp.rowid, pfp.price as price, pfp.quantity as quantity, pfp.fk_soc,";
    -				$sql.= " pfp.fk_product, pfp.ref_fourn as ref_supplier, pfp.tva_tx, pfp.fk_supplier_price_expression";
    -				$sql.= " ,pfp.default_vat_code";
    +                $result=$obj->fk_product;
    +                return $result;
    +            }
    +            else // If not found
    +            {
    +                // We do a second search by doing a select again but searching with less reliable criteria: couple qty/id product, and if set fourn_ref or fk_soc.
    +                $sql = "SELECT pfp.rowid, pfp.price as price, pfp.quantity as quantity, pfp.fk_soc,";
    +                $sql.= " pfp.fk_product, pfp.ref_fourn as ref_supplier, pfp.desc_fourn as desc_supplier, pfp.tva_tx, pfp.fk_supplier_price_expression";
    +                $sql.= " ,pfp.default_vat_code";
                     $sql.= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code";
    -				$sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
    -				$sql.= " WHERE pfp.fk_product = ".$product_id;
    -				if ($fourn_ref != 'none') $sql.= " AND pfp.ref_fourn = '".$fourn_ref."'";
    -				if ($fk_soc > 0) $sql.= " AND pfp.fk_soc = ".$fk_soc;
    -				if ($qty > 0) $sql.= " AND pfp.quantity <= ".$qty;
    -				$sql.= " ORDER BY pfp.quantity DESC";
    -				$sql.= " LIMIT 1";
    +                $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
    +                $sql.= " WHERE pfp.fk_product = ".$product_id;
    +                if ($fourn_ref != 'none') { $sql.= " AND pfp.ref_fourn = '".$fourn_ref."'";
    +                }
    +                if ($fk_soc > 0) { $sql.= " AND pfp.fk_soc = ".$fk_soc;
    +                }
    +                if ($qty > 0) { $sql.= " AND pfp.quantity <= ".$qty;
    +                }
    +                $sql.= " ORDER BY pfp.quantity DESC";
    +                $sql.= " LIMIT 1";
     
    -				dol_syslog(get_class($this)."::get_buyprice second search from qty/ref/product_id", LOG_DEBUG);
    -				$resql = $this->db->query($sql);
    -				if ($resql)
    -				{
    -					$obj = $this->db->fetch_object($resql);
    -					if ($obj && $obj->quantity > 0)		// If found
    -					{
    -		                if (!empty($conf->dynamicprices->enabled) && !empty($obj->fk_supplier_price_expression))
    -		                {
    -							require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php';
    -		                    $prod_supplier = new ProductFournisseur($this->db);
    -		                    $prod_supplier->product_fourn_price_id = $obj->rowid;
    -		                    $prod_supplier->id = $obj->fk_product;
    -		                    $prod_supplier->fourn_qty = $obj->quantity;
    -		                    $prod_supplier->fourn_tva_tx = $obj->tva_tx;
    -		                    $prod_supplier->fk_supplier_price_expression = $obj->fk_supplier_price_expression;
    -		                    $priceparser = new PriceParser($this->db);
    -		                    $price_result = $priceparser->parseProductSupplier($prod_supplier);
    -		                    if ($result >= 0) {
    -		                    	$obj->price = $price_result;
    -		                    }
    -		                }
    -		                $this->product_fourn_price_id = $obj->rowid;
    -						$this->buyprice = $obj->price;                      // deprecated
    -						$this->fourn_qty = $obj->quantity;					// min quantity for price for a virtual supplier
    -						$this->fourn_pu = $obj->price / $obj->quantity;     // Unit price of product for a virtual supplier
    -						$this->fourn_price_base_type = 'HT';                // Price base type for a virtual supplier
    -						$this->fourn_socid = $obj->fk_soc;                  // Company that offer this price
    -						$this->ref_fourn = $obj->ref_supplier;              // deprecated
    -						$this->ref_supplier = $obj->ref_supplier;           // Ref supplier
    -						$this->remise_percent = $obj->remise_percent;       // remise percent if present and not typed
    -						$this->vatrate_supplier = $obj->tva_tx;             // Vat ref supplier
    -						$this->default_vat_code = $obj->default_vat_code;   // Vat code supplier
    +                dol_syslog(get_class($this)."::get_buyprice second search from qty/ref/product_id", LOG_DEBUG);
    +                $resql = $this->db->query($sql);
    +                if ($resql) {
    +                    $obj = $this->db->fetch_object($resql);
    +                    if ($obj && $obj->quantity > 0)        // If found
    +                    {
    +                        if (!empty($conf->dynamicprices->enabled) && !empty($obj->fk_supplier_price_expression)) {
    +                            include_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php';
    +                            $prod_supplier = new ProductFournisseur($this->db);
    +                            $prod_supplier->product_fourn_price_id = $obj->rowid;
    +                            $prod_supplier->id = $obj->fk_product;
    +                            $prod_supplier->fourn_qty = $obj->quantity;
    +                            $prod_supplier->fourn_tva_tx = $obj->tva_tx;
    +                            $prod_supplier->fk_supplier_price_expression = $obj->fk_supplier_price_expression;
    +                            $priceparser = new PriceParser($this->db);
    +                            $price_result = $priceparser->parseProductSupplier($prod_supplier);
    +                            if ($result >= 0) {
    +                                $obj->price = $price_result;
    +                            }
    +                        }
    +                        $this->product_fourn_price_id = $obj->rowid;
    +                        $this->buyprice = $obj->price;                      // deprecated
    +                        $this->fourn_qty = $obj->quantity;                    // min quantity for price for a virtual supplier
    +                        $this->fourn_pu = $obj->price / $obj->quantity;     // Unit price of product for a virtual supplier
    +                        $this->fourn_price_base_type = 'HT';                // Price base type for a virtual supplier
    +                        $this->fourn_socid = $obj->fk_soc;                  // Company that offer this price
    +                        $this->ref_fourn = $obj->ref_supplier;              // deprecated
    +                        $this->ref_supplier = $obj->ref_supplier;           // Ref supplier
    +                        $this->desc_supplier = $obj->desc_supplier;         // desc supplier
    +                        $this->remise_percent = $obj->remise_percent;       // remise percent if present and not typed
    +                        $this->vatrate_supplier = $obj->tva_tx;             // Vat ref supplier
    +                        $this->default_vat_code = $obj->default_vat_code;   // Vat code supplier
                             $this->fourn_multicurrency_price       = $obj->multicurrency_price;
                             $this->fourn_multicurrency_unitprice   = $obj->multicurrency_unitprice;
                             $this->fourn_multicurrency_tx          = $obj->multicurrency_tx;
                             $this->fourn_multicurrency_id          = $obj->fk_multicurrency;
                             $this->fourn_multicurrency_code        = $obj->multicurrency_code;
    -						$result=$obj->fk_product;
    -						return $result;
    -					}
    -					else
    -					{
    -						return -1;	// Ce produit n'existe pas avec cet id tarif fournisseur ou existe mais qte insuffisante, ni pour le couple produit/ref fournisseur dans la quantité.
    -					}
    -				}
    -				else
    -				{
    -					$this->error=$this->db->lasterror();
    -					return -3;
    -				}
    -			}
    -		}
    -		else
    -		{
    -			$this->error=$this->db->lasterror();
    -			return -2;
    -		}
    -	}
    +                        $result=$obj->fk_product;
    +                        return $result;
    +                    }
    +                    else
    +                    {
    +                        return -1;    // Ce produit n'existe pas avec cet id tarif fournisseur ou existe mais qte insuffisante, ni pour le couple produit/ref fournisseur dans la quantité.
    +                    }
    +                }
    +                else
    +                {
    +                    $this->error=$this->db->lasterror();
    +                    return -3;
    +                }
    +            }
    +        }
    +        else
    +        {
    +            $this->error=$this->db->lasterror();
    +            return -2;
    +        }
    +    }
     
     
    -	/**
    -	 *	Modify customer price of a product/Service
    -	 *
    -	 *	@param  	double	$newprice		    New price
    -	 *	@param  	string	$newpricebase	    HT or TTC
    -	 *	@param  	User	$user        	    Object user that make change
    -	 *	@param  	double	$newvat			    New VAT Rate (For example 8.5. Should not be a string)
    -	 *  @param		double	$newminprice	    New price min
    -	 *  @param		int		$level			    0=standard, >0 = level if multilevel prices
    -	 *  @param     	int		$newnpr             0=Standard vat rate, 1=Special vat rate for French NPR VAT
    -	 *  @param     	int		$newpbq             1 if it has price by quantity
    -	 *  @param 		int 	$ignore_autogen     Used to avoid infinite loops
    -     *	@param      array	$localtaxes_array	Array with localtaxes info array('0'=>type1,'1'=>rate1,'2'=>type2,'3'=>rate2) (loaded by getLocalTaxesFromRate(vatrate, 0, ...) function).
    -     *  @param      string  $newdefaultvatcode  Default vat code
    -	 * 	@return		int						    <0 if KO, >0 if OK
    -	 */
    -	function updatePrice($newprice, $newpricebase, $user, $newvat='',$newminprice=0, $level=0, $newnpr=0, $newpbq=0, $ignore_autogen=0, $localtaxes_array=array(), $newdefaultvatcode='')
    -	{
    -		global $conf,$langs;
    +    /**
    +     *    Modify customer price of a product/Service
    +     *
    +     * @param  double $newprice          New price
    +     * @param  string $newpricebase      HT or TTC
    +     * @param  User   $user              Object user that make change
    +     * @param  double $newvat            New VAT Rate (For example 8.5. Should not be a string)
    +     * @param  double $newminprice       New price min
    +     * @param  int    $level             0=standard, >0 = level if multilevel prices
    +     * @param  int    $newnpr            0=Standard vat rate, 1=Special vat rate for French NPR VAT
    +     * @param  int    $newpbq            1 if it has price by quantity
    +     * @param  int    $ignore_autogen    Used to avoid infinite loops
    +     * @param  array  $localtaxes_array  Array with localtaxes info array('0'=>type1,'1'=>rate1,'2'=>type2,'3'=>rate2) (loaded by getLocalTaxesFromRate(vatrate, 0, ...) function).
    +     * @param  string $newdefaultvatcode Default vat code
    +     * @return int                            <0 if KO, >0 if OK
    +     */
    +    function updatePrice($newprice, $newpricebase, $user, $newvat='',$newminprice=0, $level=0, $newnpr=0, $newpbq=0, $ignore_autogen=0, $localtaxes_array=array(), $newdefaultvatcode='')
    +    {
    +        global $conf,$langs;
     
    -		$id=$this->id;
    +        $id=$this->id;
     
    -		dol_syslog(get_class($this)."::update_price id=".$id." newprice=".$newprice." newpricebase=".$newpricebase." newminprice=".$newminprice." level=".$level." npr=".$newnpr." newdefaultvatcode=".$newdefaultvatcode);
    +        dol_syslog(get_class($this)."::update_price id=".$id." newprice=".$newprice." newpricebase=".$newpricebase." newminprice=".$newminprice." level=".$level." npr=".$newnpr." newdefaultvatcode=".$newdefaultvatcode);
     
    -		// Clean parameters
    -		if (empty($this->tva_tx))  $this->tva_tx=0;
    -        if (empty($newnpr)) $newnpr=0;
    +        // Clean parameters
    +        if (empty($this->tva_tx)) {  $this->tva_tx=0;
    +        }
    +        if (empty($newnpr)) { $newnpr=0;
    +        }
     
    -		// Check parameters
    -		if ($newvat == '') $newvat=$this->tva_tx;
    +        // Check parameters
    +        if ($newvat == '') { $newvat=$this->tva_tx;
    +        }
     
    -		// If multiprices are enabled, then we check if the current product is subject to price autogeneration
    -		// Price will be modified ONLY when the first one is the one that is being modified
    -		if ((!empty($conf->global->PRODUIT_MULTIPRICES) || ! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) && !$ignore_autogen && $this->price_autogen && ($level == 1))
    -		{
    -			return $this->generateMultiprices($user, $newprice, $newpricebase, $newvat, $newnpr, $newpbq);
    -		}
    +        // If multiprices are enabled, then we check if the current product is subject to price autogeneration
    +        // Price will be modified ONLY when the first one is the one that is being modified
    +        if ((!empty($conf->global->PRODUIT_MULTIPRICES) || ! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) && !$ignore_autogen && $this->price_autogen && ($level == 1)) {
    +            return $this->generateMultiprices($user, $newprice, $newpricebase, $newvat, $newnpr, $newpbq);
    +        }
     
    -		if (! empty($newminprice) && ($newminprice > $newprice))
    -		{
    -			$this->error='ErrorPriceCantBeLowerThanMinPrice';
    -			return -1;
    -		}
    +        if (! empty($newminprice) && ($newminprice > $newprice)) {
    +            $this->error='ErrorPriceCantBeLowerThanMinPrice';
    +            return -1;
    +        }
     
    -		if ($newprice !== '' || $newprice === 0)
    -		{
    -			if ($newpricebase == 'TTC')
    -			{
    -				$price_ttc = price2num($newprice,'MU');
    -				$price = price2num($newprice) / (1 + ($newvat / 100));
    -				$price = price2num($price,'MU');
    +        if ($newprice !== '' || $newprice === 0) {
    +            if ($newpricebase == 'TTC') {
    +                $price_ttc = price2num($newprice, 'MU');
    +                $price = price2num($newprice) / (1 + ($newvat / 100));
    +                $price = price2num($price, 'MU');
     
    -				if ($newminprice != '' || $newminprice == 0)
    -				{
    -					$price_min_ttc = price2num($newminprice,'MU');
    -					$price_min = price2num($newminprice) / (1 + ($newvat / 100));
    -					$price_min = price2num($price_min,'MU');
    -				}
    -				else
    -				{
    -					$price_min=0;
    -					$price_min_ttc=0;
    -				}
    -			}
    -			else
    -			{
    -				$price = price2num($newprice,'MU');
    -				$price_ttc = ( $newnpr != 1 ) ? price2num($newprice) * (1 + ($newvat / 100)) : $price;
    -				$price_ttc = price2num($price_ttc,'MU');
    +                if ($newminprice != '' || $newminprice == 0) {
    +                    $price_min_ttc = price2num($newminprice, 'MU');
    +                    $price_min = price2num($newminprice) / (1 + ($newvat / 100));
    +                    $price_min = price2num($price_min, 'MU');
    +                }
    +                else
    +                {
    +                    $price_min=0;
    +                    $price_min_ttc=0;
    +                }
    +            }
    +            else
    +            {
    +                $price = price2num($newprice, 'MU');
    +                $price_ttc = ( $newnpr != 1 ) ? price2num($newprice) * (1 + ($newvat / 100)) : $price;
    +                $price_ttc = price2num($price_ttc, 'MU');
     
    -				if ( $newminprice !== '' || $newminprice === 0)
    -				{
    -					$price_min = price2num($newminprice,'MU');
    -					$price_min_ttc = price2num($newminprice) * (1 + ($newvat / 100));
    -					$price_min_ttc = price2num($price_min_ttc,'MU');
    -					//print 'X'.$newminprice.'-'.$price_min;
    -				}
    -				else
    -				{
    -					$price_min=0;
    -					$price_min_ttc=0;
    -				}
    -			}
    -			//print 'x'.$id.'-'.$newprice.'-'.$newpricebase.'-'.$price.'-'.$price_ttc.'-'.$price_min.'-'.$price_min_ttc;
    +                if ($newminprice !== '' || $newminprice === 0) {
    +                    $price_min = price2num($newminprice, 'MU');
    +                    $price_min_ttc = price2num($newminprice) * (1 + ($newvat / 100));
    +                    $price_min_ttc = price2num($price_min_ttc, 'MU');
    +                    //print 'X'.$newminprice.'-'.$price_min;
    +                }
    +                else
    +                {
    +                    $price_min=0;
    +                    $price_min_ttc=0;
    +                }
    +            }
    +            //print 'x'.$id.'-'.$newprice.'-'.$newpricebase.'-'.$price.'-'.$price_ttc.'-'.$price_min.'-'.$price_min_ttc;
     
    -			if (count($localtaxes_array) > 0)
    -			{
    -			    $localtaxtype1=$localtaxes_array['0'];
    -			    $localtax1=$localtaxes_array['1'];
    -			    $localtaxtype2=$localtaxes_array['2'];
    -			    $localtax2=$localtaxes_array['3'];
    -			}
    -			else     // old method. deprecated because ot can't retreive type
    -			{
    -	       		$localtaxtype1='0';
    -			    $localtax1=get_localtax($newvat,1);
    -	       		$localtaxtype2='0';
    -			    $localtax2=get_localtax($newvat,2);
    -			}
    -			if (empty($localtax1)) $localtax1=0;	// If = '' then = 0
    -			if (empty($localtax2)) $localtax2=0;	// If = '' then = 0
    +            if (count($localtaxes_array) > 0) {
    +                $localtaxtype1=$localtaxes_array['0'];
    +                $localtax1=$localtaxes_array['1'];
    +                $localtaxtype2=$localtaxes_array['2'];
    +                $localtax2=$localtaxes_array['3'];
    +            }
    +            else     // old method. deprecated because ot can't retreive type
    +            {
    +                $localtaxtype1='0';
    +                $localtax1=get_localtax($newvat, 1);
    +                $localtaxtype2='0';
    +                $localtax2=get_localtax($newvat, 2);
    +            }
    +            if (empty($localtax1)) { $localtax1=0;    // If = '' then = 0
    +            }
    +            if (empty($localtax2)) { $localtax2=0;    // If = '' then = 0
    +            }
     
    -			$this->db->begin();
    +            $this->db->begin();
     
    -			// Ne pas mettre de quote sur les numeriques decimaux.
    -			// Ceci provoque des stockages avec arrondis en base au lieu des valeurs exactes.
    -			$sql = "UPDATE ".MAIN_DB_PREFIX."product SET";
    -			$sql.= " price_base_type='".$newpricebase."',";
    -			$sql.= " price=".$price.",";
    -			$sql.= " price_ttc=".$price_ttc.",";
    -			$sql.= " price_min=".$price_min.",";
    -			$sql.= " price_min_ttc=".$price_min_ttc.",";
    -			$sql.= " localtax1_tx=".($localtax1>=0?$localtax1:'NULL').",";
    -			$sql.= " localtax2_tx=".($localtax2>=0?$localtax2:'NULL').",";
    -			$sql.= " localtax1_type=".($localtaxtype1!=''?"'".$localtaxtype1."'":"'0'").",";
    -			$sql.= " localtax2_type=".($localtaxtype2!=''?"'".$localtaxtype2."'":"'0'").",";
    +            // Ne pas mettre de quote sur les numeriques decimaux.
    +            // Ceci provoque des stockages avec arrondis en base au lieu des valeurs exactes.
    +            $sql = "UPDATE ".MAIN_DB_PREFIX."product SET";
    +            $sql.= " price_base_type='".$newpricebase."',";
    +            $sql.= " price=".$price.",";
    +            $sql.= " price_ttc=".$price_ttc.",";
    +            $sql.= " price_min=".$price_min.",";
    +            $sql.= " price_min_ttc=".$price_min_ttc.",";
    +            $sql.= " localtax1_tx=".($localtax1>=0?$localtax1:'NULL').",";
    +            $sql.= " localtax2_tx=".($localtax2>=0?$localtax2:'NULL').",";
    +            $sql.= " localtax1_type=".($localtaxtype1!=''?"'".$localtaxtype1."'":"'0'").",";
    +            $sql.= " localtax2_type=".($localtaxtype2!=''?"'".$localtaxtype2."'":"'0'").",";
                 $sql.= " default_vat_code=".($newdefaultvatcode?"'".$this->db->escape($newdefaultvatcode)."'":"null").",";
    -			$sql.= " tva_tx='".price2num($newvat)."',";
    +            $sql.= " tva_tx='".price2num($newvat)."',";
                 $sql.= " recuperableonly='".$newnpr."'";
    -			$sql.= " WHERE rowid = ".$id;
    +            $sql.= " WHERE rowid = ".$id;
     
    -			dol_syslog(get_class($this)."::update_price", LOG_DEBUG);
    -			$resql=$this->db->query($sql);
    -			if ($resql)
    -			{
    -				$this->multiprices[$level] = $price;
    -				$this->multiprices_ttc[$level] = $price_ttc;
    -				$this->multiprices_min[$level]= $price_min;
    -				$this->multiprices_min_ttc[$level]= $price_min_ttc;
    -				$this->multiprices_base_type[$level]= $newpricebase;
    -				$this->multiprices_default_vat_code[$level]= $newdefaultvatcode;
    -				$this->multiprices_tva_tx[$level]= $newvat;
    -				$this->multiprices_recuperableonly[$level]= $newnpr;
    +            dol_syslog(get_class($this)."::update_price", LOG_DEBUG);
    +            $resql=$this->db->query($sql);
    +            if ($resql) {
    +                $this->multiprices[$level] = $price;
    +                $this->multiprices_ttc[$level] = $price_ttc;
    +                $this->multiprices_min[$level]= $price_min;
    +                $this->multiprices_min_ttc[$level]= $price_min_ttc;
    +                $this->multiprices_base_type[$level]= $newpricebase;
    +                $this->multiprices_default_vat_code[$level]= $newdefaultvatcode;
    +                $this->multiprices_tva_tx[$level]= $newvat;
    +                $this->multiprices_recuperableonly[$level]= $newnpr;
     
    -				$this->price = $price;
    -				$this->price_ttc = $price_ttc;
    -				$this->price_min = $price_min;
    -				$this->price_min_ttc = $price_min_ttc;
    -				$this->price_base_type = $newpricebase;
    -				$this->default_vat_code = $newdefaultvatcode;
    -				$this->tva_tx = $newvat;
    -				$this->tva_npr = $newnpr;
    -				//Local taxes
    -				$this->localtax1_tx = $localtax1;
    -				$this->localtax2_tx = $localtax2;
    -				$this->localtax1_type = $localtaxtype1;
    -				$this->localtax2_type = $localtaxtype2;
    +                $this->price = $price;
    +                $this->price_ttc = $price_ttc;
    +                $this->price_min = $price_min;
    +                $this->price_min_ttc = $price_min_ttc;
    +                $this->price_base_type = $newpricebase;
    +                $this->default_vat_code = $newdefaultvatcode;
    +                $this->tva_tx = $newvat;
    +                $this->tva_npr = $newnpr;
    +                //Local taxes
    +                $this->localtax1_tx = $localtax1;
    +                $this->localtax2_tx = $localtax2;
    +                $this->localtax1_type = $localtaxtype1;
    +                $this->localtax2_type = $localtaxtype2;
     
    -				// Price by quantity
    -				$this->price_by_qty = $newpbq;
    +                // Price by quantity
    +                $this->price_by_qty = $newpbq;
     
    -				$this->_log_price($user,$level);	// Save price for level into table product_price
    +                $this->_log_price($user, $level);    // Save price for level into table product_price
     
    -				$this->level = $level;				// Store level of price edited for trigger
    +                $this->level = $level;                // Store level of price edited for trigger
     
                     // Call trigger
    -                $result=$this->call_trigger('PRODUCT_PRICE_MODIFY',$user);
    -                if ($result < 0)
    -                {
    -                	$this->db->rollback();
    -                	return -1;
    +                $result=$this->call_trigger('PRODUCT_PRICE_MODIFY', $user);
    +                if ($result < 0) {
    +                    $this->db->rollback();
    +                    return -1;
                     }
                     // End call triggers
     
                     $this->db->commit();
    -			}
    -			else
    -			{
    -				$this->db->rollback();
    -			    dol_print_error($this->db);
    -			}
    -		}
    +            }
    +            else
    +            {
    +                $this->db->rollback();
    +                dol_print_error($this->db);
    +            }
    +        }
     
    -		return 1;
    -	}
    +        return 1;
    +    }
     
         /**
          *  Sets the supplier price expression
          *
    -     *  @param  int     $expression_id	Expression
    -     *  @return int                 	<0 if KO, >0 if OK
    -	 * @deprecated Use Product::update instead
    +     * @param      int $expression_id Expression
    +     * @return     int                     <0 if KO, >0 if OK
    +     * @deprecated Use Product::update instead
          */
         function setPriceExpression($expression_id)
         {
    -		global $user;
    +        global $user;
     
    -		$this->fk_price_expression = $expression_id;
    +        $this->fk_price_expression = $expression_id;
     
    -		return $this->update($this->id, $user);
    +        return $this->update($this->id, $user);
         }
     
    -	/**
    -	 *  Load a product in memory from database
    -	 *
    -	 *  @param	int		$id      			Id of product/service to load
    -	 *  @param  string	$ref     			Ref of product/service to load
    -	 *  @param	string	$ref_ext			Ref ext of product/service to load
    -     *  @param	int		$ignore_expression  Ignores the math expression for calculating price and uses the db value instead
    -	 *  @return int     					<0 if KO, 0 if not found, >0 if OK
    -	 */
    -	function fetch($id='', $ref='', $ref_ext='', $ignore_expression=0)
    -	{
    -	    include_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +    /**
    +     *  Load a product in memory from database
    +     *
    +     * @param  int    $id                Id of product/service to load
    +     * @param  string $ref               Ref of product/service to load
    +     * @param  string $ref_ext           Ref ext of product/service to load
    +     * @param  string $barcode           Barcode of product/service to load
    +     * @param  int    $ignore_expression Ignores the math expression for calculating price and uses the db value instead
    +     * @return int                         <0 if KO, 0 if not found, >0 if OK
    +     */
    +    function fetch($id='', $ref='', $ref_ext='', $barcode='', $ignore_expression=0)
    +    {
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     
    -		global $langs, $conf;
    +        global $langs, $conf;
     
    -		dol_syslog(get_class($this)."::fetch id=".$id." ref=".$ref." ref_ext=".$ref_ext);
    +        dol_syslog(get_class($this)."::fetch id=".$id." ref=".$ref." ref_ext=".$ref_ext);
     
    -		// Check parameters
    -		if (! $id && ! $ref && ! $ref_ext)
    -		{
    -			$this->error='ErrorWrongParameters';
    -			dol_syslog(get_class($this)."::fetch ".$this->error);
    -			return -1;
    -		}
    +        // Check parameters
    +        if (! $id && ! $ref && ! $ref_ext && ! $barcode) {
    +            $this->error='ErrorWrongParameters';
    +            dol_syslog(get_class($this)."::fetch ".$this->error);
    +            return -1;
    +        }
     
    -		$sql = "SELECT rowid, ref, ref_ext, label, description, url, note as note_private, customcode, fk_country, price, price_ttc,";
    -		$sql.= " price_min, price_min_ttc, price_base_type, cost_price, default_vat_code, tva_tx, recuperableonly as tva_npr, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type, tosell,";
    -		$sql.= " tobuy, fk_product_type, duration, fk_default_warehouse, seuil_stock_alerte, canvas, weight, weight_units,";
    -		$sql.= " length, length_units, width, width_units, height, height_units,";
    -		$sql.= " surface, surface_units, volume, volume_units, barcode, fk_barcode_type, finished,";
    -		$sql.= " accountancy_code_buy, accountancy_code_sell, accountancy_code_sell_intra, accountancy_code_sell_export, stock, pmp,";
    -		$sql.= " datec, tms, import_key, entity, desiredstock, tobatch, fk_unit,";
    -		$sql.= " fk_price_expression, price_autogen";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product";
    -		if ($id) $sql.= " WHERE rowid = ".$this->db->escape($id);
    -		else
    -		{
    -			$sql.= " WHERE entity IN (".getEntity($this->element).")";
    -			if ($ref) $sql.= " AND ref = '".$this->db->escape($ref)."'";
    -			else if ($ref_ext) $sql.= " AND ref_ext = '".$this->db->escape($ref_ext)."'";
    -		}
    +        $sql = "SELECT rowid, ref, ref_ext, label, description, url, note as note_private, customcode, fk_country, price, price_ttc,";
    +        $sql.= " price_min, price_min_ttc, price_base_type, cost_price, default_vat_code, tva_tx, recuperableonly as tva_npr, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type, tosell,";
    +        $sql.= " tobuy, fk_product_type, duration, fk_default_warehouse, seuil_stock_alerte, canvas, weight, weight_units,";
    +        $sql.= " length, length_units, width, width_units, height, height_units,";
    +        $sql.= " surface, surface_units, volume, volume_units, barcode, fk_barcode_type, finished,";
    +        $sql.= " accountancy_code_buy, accountancy_code_sell, accountancy_code_sell_intra, accountancy_code_sell_export, stock, pmp,";
    +        $sql.= " datec, tms, import_key, entity, desiredstock, tobatch, fk_unit,";
    +        $sql.= " fk_price_expression, price_autogen";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product";
    +        if ($id) { $sql.= " WHERE rowid = ".$this->db->escape($id);
    +        } else
    +        {
    +            $sql.= " WHERE entity IN (".getEntity($this->element).")";
    +            if ($ref) { $sql.= " AND ref = '".$this->db->escape($ref)."'";
    +            } else if ($ref_ext) { $sql.= " AND ref_ext = '".$this->db->escape($ref_ext)."'";
    +            } else if ($barcode) { $sql.= " AND barcode = '".$this->db->escape($barcode)."'";
    +            }
    +        }
     
    -		$resql = $this->db->query($sql);
    -		if ( $resql )
    -		{
    -			if ($this->db->num_rows($resql) > 0)
    -			{
    -				$obj = $this->db->fetch_object($resql);
    +        $resql = $this->db->query($sql);
    +        if ($resql ) {
    +            if ($this->db->num_rows($resql) > 0) {
    +                $obj = $this->db->fetch_object($resql);
     
    -				$this->id							= $obj->rowid;
    -				$this->ref							= $obj->ref;
    -				$this->ref_ext						= $obj->ref_ext;
    -				$this->label						= $obj->label;
    -				$this->description					= $obj->description;
    -				$this->url							= $obj->url;
    -				$this->note_private					= $obj->note_private;
    -				$this->note							= $obj->note_private;  // deprecated
    +                $this->id                            = $obj->rowid;
    +                $this->ref                            = $obj->ref;
    +                $this->ref_ext                        = $obj->ref_ext;
    +                $this->label                        = $obj->label;
    +                $this->description                    = $obj->description;
    +                $this->url                            = $obj->url;
    +                $this->note_private                    = $obj->note_private;
    +                $this->note                            = $obj->note_private;  // deprecated
     
    -				$this->type							= $obj->fk_product_type;
    -				$this->status						= $obj->tosell;
    -				$this->status_buy					= $obj->tobuy;
    -				$this->status_batch					= $obj->tobatch;
    +                $this->type                            = $obj->fk_product_type;
    +                $this->status                        = $obj->tosell;
    +                $this->status_buy                    = $obj->tobuy;
    +                $this->status_batch                    = $obj->tobatch;
     
    -				$this->customcode					= $obj->customcode;
    -				$this->country_id					= $obj->fk_country;
    -				$this->country_code					= getCountry($this->country_id,2,$this->db);
    -				$this->price						= $obj->price;
    -				$this->price_ttc					= $obj->price_ttc;
    -				$this->price_min					= $obj->price_min;
    -				$this->price_min_ttc				= $obj->price_min_ttc;
    -				$this->price_base_type				= $obj->price_base_type;
    -				$this->cost_price					= $obj->cost_price;
    -				$this->default_vat_code				= $obj->default_vat_code;
    -				$this->tva_tx						= $obj->tva_tx;
    -				//! French VAT NPR
    -				$this->tva_npr						= $obj->tva_npr;
    -				$this->recuperableonly				= $obj->tva_npr;       // For backward compatibility
    -				//! Local taxes
    -				$this->localtax1_tx					= $obj->localtax1_tx;
    -				$this->localtax2_tx					= $obj->localtax2_tx;
    -				$this->localtax1_type				= $obj->localtax1_type;
    -				$this->localtax2_type				= $obj->localtax2_type;
    +                $this->customcode                    = $obj->customcode;
    +                $this->country_id                    = $obj->fk_country;
    +                $this->country_code                    = getCountry($this->country_id, 2, $this->db);
    +                $this->price                        = $obj->price;
    +                $this->price_ttc                    = $obj->price_ttc;
    +                $this->price_min                    = $obj->price_min;
    +                $this->price_min_ttc                = $obj->price_min_ttc;
    +                $this->price_base_type                = $obj->price_base_type;
    +                $this->cost_price                    = $obj->cost_price;
    +                $this->default_vat_code                = $obj->default_vat_code;
    +                $this->tva_tx                        = $obj->tva_tx;
    +                //! French VAT NPR
    +                $this->tva_npr                        = $obj->tva_npr;
    +                $this->recuperableonly                = $obj->tva_npr;       // For backward compatibility
    +                //! Local taxes
    +                $this->localtax1_tx                    = $obj->localtax1_tx;
    +                $this->localtax2_tx                    = $obj->localtax2_tx;
    +                $this->localtax1_type                = $obj->localtax1_type;
    +                $this->localtax2_type                = $obj->localtax2_type;
     
    -				$this->finished						= $obj->finished;
    -				$this->duration						= $obj->duration;
    -				$this->duration_value				= substr($obj->duration,0,dol_strlen($obj->duration)-1);
    -				$this->duration_unit				= substr($obj->duration,-1);
    -				$this->canvas						= $obj->canvas;
    -				$this->weight						= $obj->weight;
    -				$this->weight_units					= $obj->weight_units;
    -				$this->length						= $obj->length;
    -				$this->length_units					= $obj->length_units;
    -				$this->width						= $obj->width;
    -				$this->width_units					= $obj->width_units;
    -				$this->height						= $obj->height;
    -				$this->height_units					= $obj->height_units;
    +                $this->finished                        = $obj->finished;
    +                $this->duration                        = $obj->duration;
    +                $this->duration_value                = substr($obj->duration, 0, dol_strlen($obj->duration)-1);
    +                $this->duration_unit                = substr($obj->duration, -1);
    +                $this->canvas                        = $obj->canvas;
    +                $this->weight                        = $obj->weight;
    +                $this->weight_units                    = $obj->weight_units;
    +                $this->length                        = $obj->length;
    +                $this->length_units                    = $obj->length_units;
    +                $this->width                        = $obj->width;
    +                $this->width_units                    = $obj->width_units;
    +                $this->height                        = $obj->height;
    +                $this->height_units                    = $obj->height_units;
     
    -				$this->surface						= $obj->surface;
    -				$this->surface_units				= $obj->surface_units;
    -				$this->volume						= $obj->volume;
    -				$this->volume_units					= $obj->volume_units;
    -				$this->barcode						= $obj->barcode;
    -				$this->barcode_type					= $obj->fk_barcode_type;
    +                $this->surface                        = $obj->surface;
    +                $this->surface_units                = $obj->surface_units;
    +                $this->volume                        = $obj->volume;
    +                $this->volume_units                    = $obj->volume_units;
    +                $this->barcode                        = $obj->barcode;
    +                $this->barcode_type                    = $obj->fk_barcode_type;
     
    -				$this->accountancy_code_buy			= $obj->accountancy_code_buy;
    -				$this->accountancy_code_sell		= $obj->accountancy_code_sell;
    -				$this->accountancy_code_sell_intra	= $obj->accountancy_code_sell_intra;
    -				$this->accountancy_code_sell_export	= $obj->accountancy_code_sell_export;
    +                $this->accountancy_code_buy            = $obj->accountancy_code_buy;
    +                $this->accountancy_code_sell        = $obj->accountancy_code_sell;
    +                $this->accountancy_code_sell_intra    = $obj->accountancy_code_sell_intra;
    +                $this->accountancy_code_sell_export    = $obj->accountancy_code_sell_export;
     
    -				$this->fk_default_warehouse			= $obj->fk_default_warehouse;
    -				$this->seuil_stock_alerte			= $obj->seuil_stock_alerte;
    -				$this->desiredstock					= $obj->desiredstock;
    -				$this->stock_reel					= $obj->stock;
    -				$this->pmp							= $obj->pmp;
    +                $this->fk_default_warehouse            = $obj->fk_default_warehouse;
    +                $this->seuil_stock_alerte            = $obj->seuil_stock_alerte;
    +                $this->desiredstock                    = $obj->desiredstock;
    +                $this->stock_reel                    = $obj->stock;
    +                $this->pmp                            = $obj->pmp;
     
    -				$this->date_creation				= $obj->datec;
    -				$this->date_modification			= $obj->tms;
    -				$this->import_key					= $obj->import_key;
    -				$this->entity						= $obj->entity;
    +                $this->date_creation                = $obj->datec;
    +                $this->date_modification            = $obj->tms;
    +                $this->import_key                    = $obj->import_key;
    +                $this->entity                        = $obj->entity;
     
    -				$this->ref_ext						= $obj->ref_ext;
    -				$this->fk_price_expression			= $obj->fk_price_expression;
    -				$this->fk_unit						= $obj->fk_unit;
    -				$this->price_autogen				= $obj->price_autogen;
    +                $this->ref_ext                        = $obj->ref_ext;
    +                $this->fk_price_expression            = $obj->fk_price_expression;
    +                $this->fk_unit                        = $obj->fk_unit;
    +                $this->price_autogen                = $obj->price_autogen;
     
    -				$this->db->free($resql);
    +                $this->db->free($resql);
     
    -				// Retreive all extrafield
    -				// fetch optionals attributes and labels
    -				$this->fetch_optionals();
    +                // Retreive all extrafield
    +                // fetch optionals attributes and labels
    +                $this->fetch_optionals();
     
    -				// multilangs
    -				if (! empty($conf->global->MAIN_MULTILANGS)) $this->getMultiLangs();
    +                // multilangs
    +                if (! empty($conf->global->MAIN_MULTILANGS)) { $this->getMultiLangs();
    +                }
     
    -				// Load multiprices array
    -				if (! empty($conf->global->PRODUIT_MULTIPRICES))				// prices per segment
    -				{
    -					for ($i=1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++)
    -					{
    -						$sql = "SELECT price, price_ttc, price_min, price_min_ttc,";
    -						$sql.= " price_base_type, tva_tx, default_vat_code, tosell, price_by_qty, rowid, recuperableonly";
    -						$sql.= " FROM ".MAIN_DB_PREFIX."product_price";
    -						$sql.= " WHERE entity IN (".getEntity('productprice').")";
    -						$sql.= " AND price_level=".$i;
    -						$sql.= " AND fk_product = ".$this->id;
    -						$sql.= " ORDER BY date_price DESC, rowid DESC";
    -						$sql.= " LIMIT 1";
    -						$resql = $this->db->query($sql);
    -						if ($resql)
    -						{
    -							$result = $this->db->fetch_array($resql);
    -
    -							$this->multiprices[$i]=$result["price"];
    -							$this->multiprices_ttc[$i]=$result["price_ttc"];
    -							$this->multiprices_min[$i]=$result["price_min"];
    -							$this->multiprices_min_ttc[$i]=$result["price_min_ttc"];
    -							$this->multiprices_base_type[$i]=$result["price_base_type"];
    -							// Next two fields are used only if PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL is on
    -							$this->multiprices_tva_tx[$i]=$result["tva_tx"];     // TODO Add ' ('.$result['default_vat_code'].')'
    -							$this->multiprices_recuperableonly[$i]=$result["recuperableonly"];
    -
    -							// Price by quantity
    -							/*
    -							$this->prices_by_qty[$i]=$result["price_by_qty"];
    -							$this->prices_by_qty_id[$i]=$result["rowid"];
    -							// Récuperation de la liste des prix selon qty si flag positionné
    -							if ($this->prices_by_qty[$i] == 1)
    -							{
    -								$sql = "SELECT rowid, price, unitprice, quantity, remise_percent, remise, price_base_type";
    -								$sql.= " FROM ".MAIN_DB_PREFIX."product_price_by_qty";
    -								$sql.= " WHERE fk_product_price = ".$this->prices_by_qty_id[$i];
    -								$sql.= " ORDER BY quantity ASC";
    -								$resultat=array();
    -								$resql = $this->db->query($sql);
    -								if ($resql)
    -								{
    -									$ii=0;
    -									while ($result= $this->db->fetch_array($resql)) {
    -										$resultat[$ii]=array();
    -										$resultat[$ii]["rowid"]=$result["rowid"];
    -										$resultat[$ii]["price"]= $result["price"];
    -										$resultat[$ii]["unitprice"]= $result["unitprice"];
    -										$resultat[$ii]["quantity"]= $result["quantity"];
    -										$resultat[$ii]["remise_percent"]= $result["remise_percent"];
    -										$resultat[$ii]["remise"]= $result["remise"];					// deprecated
    -										$resultat[$ii]["price_base_type"]= $result["price_base_type"];
    -										$ii++;
    -									}
    -									$this->prices_by_qty_list[$i]=$resultat;
    -								}
    -								else
    -								{
    -									dol_print_error($this->db);
    -									return -1;
    -								}
    -							}*/
    -						}
    -						else
    -						{
    -							dol_print_error($this->db);
    -							return -1;
    -						}
    -					}
    -				}
    -				elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))			// prices per customers
    -				{
    -					// Nothing loaded by default. List may be very long.
    -				}
    -				else if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY))	// prices per quantity
    -				{
    -					$sql = "SELECT price, price_ttc, price_min, price_min_ttc,";
    -					$sql.= " price_base_type, tva_tx, default_vat_code, tosell, price_by_qty, rowid";
    -					$sql.= " FROM ".MAIN_DB_PREFIX."product_price";
    -					$sql.= " WHERE fk_product = ".$this->id;
    -					$sql.= " ORDER BY date_price DESC, rowid DESC";
    -					$sql.= " LIMIT 1";
    -					$resql = $this->db->query($sql);
    -					if ($resql)
    -					{
    -						$result = $this->db->fetch_array($resql);
    -
    -						// Price by quantity
    -						$this->prices_by_qty[0]=$result["price_by_qty"];
    -						$this->prices_by_qty_id[0]=$result["rowid"];
    -						// Récuperation de la liste des prix selon qty si flag positionné
    -						if ($this->prices_by_qty[0] == 1)
    -						{
    -							$sql = "SELECT rowid,price, unitprice, quantity, remise_percent, remise, remise, price_base_type";
    -							$sql.= " FROM ".MAIN_DB_PREFIX."product_price_by_qty";
    -							$sql.= " WHERE fk_product_price = ".$this->prices_by_qty_id[0];
    -							$sql.= " ORDER BY quantity ASC";
    -							$resultat=array();
    -							$resql = $this->db->query($sql);
    -							if ($resql)
    -							{
    -								$ii=0;
    -								while ($result= $this->db->fetch_array($resql)) {
    -									$resultat[$ii]=array();
    -									$resultat[$ii]["rowid"]=$result["rowid"];
    -									$resultat[$ii]["price"]= $result["price"];
    -									$resultat[$ii]["unitprice"]= $result["unitprice"];
    -									$resultat[$ii]["quantity"]= $result["quantity"];
    -									$resultat[$ii]["remise_percent"]= $result["remise_percent"];
    -									//$resultat[$ii]["remise"]= $result["remise"];					// deprecated
    -									$resultat[$ii]["price_base_type"]= $result["price_base_type"];
    -									$ii++;
    -								}
    -								$this->prices_by_qty_list[0]=$resultat;
    -							}
    -							else
    -							{
    -								dol_print_error($this->db);
    -								return -1;
    -							}
    -						}
    -					}
    -					else
    -					{
    -						dol_print_error($this->db);
    -						return -1;
    -					}
    -				}
    -				else if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES))	// prices per customer and quantity
    -				{
    -					for ($i=1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++)
    -					{
    -						$sql = "SELECT price, price_ttc, price_min, price_min_ttc,";
    -						$sql.= " price_base_type, tva_tx, default_vat_code, tosell, price_by_qty, rowid, recuperableonly";
    -						$sql.= " FROM ".MAIN_DB_PREFIX."product_price";
    -						$sql.= " WHERE entity IN (".getEntity('productprice').")";
    -						$sql.= " AND price_level=".$i;
    -						$sql.= " AND fk_product = ".$this->id;
    -						$sql.= " ORDER BY date_price DESC, rowid DESC";
    -						$sql.= " LIMIT 1";
    -						$resql = $this->db->query($sql);
    -						if ($resql)
    -						{
    -							$result = $this->db->fetch_array($resql);
    -
    -							$this->multiprices[$i]=$result["price"];
    -							$this->multiprices_ttc[$i]=$result["price_ttc"];
    -							$this->multiprices_min[$i]=$result["price_min"];
    -							$this->multiprices_min_ttc[$i]=$result["price_min_ttc"];
    -							$this->multiprices_base_type[$i]=$result["price_base_type"];
    -							// Next two fields are used only if PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL is on
    -							$this->multiprices_tva_tx[$i]=$result["tva_tx"];     // TODO Add ' ('.$result['default_vat_code'].')'
    -							$this->multiprices_recuperableonly[$i]=$result["recuperableonly"];
    -
    -							// Price by quantity
    -							$this->prices_by_qty[$i]=$result["price_by_qty"];
    -							$this->prices_by_qty_id[$i]=$result["rowid"];
    -							// Récuperation de la liste des prix selon qty si flag positionné
    -							if ($this->prices_by_qty[$i] == 1)
    -							{
    -								$sql = "SELECT rowid, price, unitprice, quantity, remise_percent, remise, price_base_type";
    -								$sql.= " FROM ".MAIN_DB_PREFIX."product_price_by_qty";
    -								$sql.= " WHERE fk_product_price = ".$this->prices_by_qty_id[$i];
    -								$sql.= " ORDER BY quantity ASC";
    -								$resultat=array();
    -								$resql = $this->db->query($sql);
    -								if ($resql)
    -								{
    -									$ii=0;
    -									while ($result= $this->db->fetch_array($resql)) {
    -										$resultat[$ii]=array();
    -										$resultat[$ii]["rowid"]=$result["rowid"];
    -										$resultat[$ii]["price"]= $result["price"];
    -										$resultat[$ii]["unitprice"]= $result["unitprice"];
    -										$resultat[$ii]["quantity"]= $result["quantity"];
    -										$resultat[$ii]["remise_percent"]= $result["remise_percent"];
    -										$resultat[$ii]["remise"]= $result["remise"];					// deprecated
    -										$resultat[$ii]["price_base_type"]= $result["price_base_type"];
    -										$ii++;
    -									}
    -									$this->prices_by_qty_list[$i]=$resultat;
    -								}
    -								else
    -								{
    -									dol_print_error($this->db);
    -									return -1;
    -								}
    -							}
    -						}
    -						else
    -						{
    -							dol_print_error($this->db);
    -							return -1;
    -						}
    -					}
    -				}
    -
    -                if (!empty($conf->dynamicprices->enabled) && !empty($this->fk_price_expression) && empty($ignore_expression))
    +                // Load multiprices array
    +                if (! empty($conf->global->PRODUIT_MULTIPRICES))                // prices per segment
                     {
    -					require_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php';
    -                	$priceparser = new PriceParser($this->db);
    -                    $price_result = $priceparser->parseProduct($this);
    -                    if ($price_result >= 0)
    +                    for ($i=1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++)
                         {
    -                        $this->price = $price_result;
    -                        // Calculate the VAT
    -						$this->price_ttc = price2num($this->price) * (1 + ($this->tva_tx / 100));
    -						$this->price_ttc = price2num($this->price_ttc,'MU');
    +                        $sql = "SELECT price, price_ttc, price_min, price_min_ttc,";
    +                        $sql.= " price_base_type, tva_tx, default_vat_code, tosell, price_by_qty, rowid, recuperableonly";
    +                        $sql.= " FROM ".MAIN_DB_PREFIX."product_price";
    +                        $sql.= " WHERE entity IN (".getEntity('productprice').")";
    +                        $sql.= " AND price_level=".$i;
    +                        $sql.= " AND fk_product = ".$this->id;
    +                        $sql.= " ORDER BY date_price DESC, rowid DESC";
    +                        $sql.= " LIMIT 1";
    +                        $resql = $this->db->query($sql);
    +                        if ($resql) {
    +                            $result = $this->db->fetch_array($resql);
    +
    +                            $this->multiprices[$i]=$result["price"];
    +                            $this->multiprices_ttc[$i]=$result["price_ttc"];
    +                            $this->multiprices_min[$i]=$result["price_min"];
    +                            $this->multiprices_min_ttc[$i]=$result["price_min_ttc"];
    +                            $this->multiprices_base_type[$i]=$result["price_base_type"];
    +                            // Next two fields are used only if PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL is on
    +                            $this->multiprices_tva_tx[$i]=$result["tva_tx"];     // TODO Add ' ('.$result['default_vat_code'].')'
    +                            $this->multiprices_recuperableonly[$i]=$result["recuperableonly"];
    +
    +                            // Price by quantity
    +                            /*
    +                            $this->prices_by_qty[$i]=$result["price_by_qty"];
    +                            $this->prices_by_qty_id[$i]=$result["rowid"];
    +                            // Récuperation de la liste des prix selon qty si flag positionné
    +                            if ($this->prices_by_qty[$i] == 1)
    +                            {
    +                            $sql = "SELECT rowid, price, unitprice, quantity, remise_percent, remise, price_base_type";
    +                            $sql.= " FROM ".MAIN_DB_PREFIX."product_price_by_qty";
    +                            $sql.= " WHERE fk_product_price = ".$this->prices_by_qty_id[$i];
    +                            $sql.= " ORDER BY quantity ASC";
    +                            $resultat=array();
    +                            $resql = $this->db->query($sql);
    +                            if ($resql)
    +                            {
    +                            $ii=0;
    +                            while ($result= $this->db->fetch_array($resql)) {
    +                            $resultat[$ii]=array();
    +                            $resultat[$ii]["rowid"]=$result["rowid"];
    +                            $resultat[$ii]["price"]= $result["price"];
    +                            $resultat[$ii]["unitprice"]= $result["unitprice"];
    +                            $resultat[$ii]["quantity"]= $result["quantity"];
    +                            $resultat[$ii]["remise_percent"]= $result["remise_percent"];
    +                            $resultat[$ii]["remise"]= $result["remise"];                    // deprecated
    +                            $resultat[$ii]["price_base_type"]= $result["price_base_type"];
    +                            $ii++;
    +                            }
    +                            $this->prices_by_qty_list[$i]=$resultat;
    +                            }
    +                            else
    +                            {
    +                            dol_print_error($this->db);
    +                            return -1;
    +                            }
    +                            }*/
    +                        }
    +                        else
    +                        {
    +                            dol_print_error($this->db);
    +                            return -1;
    +                        }
    +                    }
    +                }
    +                elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))            // prices per customers
    +                {
    +                    // Nothing loaded by default. List may be very long.
    +                }
    +                else if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY))    // prices per quantity
    +                {
    +                    $sql = "SELECT price, price_ttc, price_min, price_min_ttc,";
    +                    $sql.= " price_base_type, tva_tx, default_vat_code, tosell, price_by_qty, rowid";
    +                    $sql.= " FROM ".MAIN_DB_PREFIX."product_price";
    +                    $sql.= " WHERE fk_product = ".$this->id;
    +                    $sql.= " ORDER BY date_price DESC, rowid DESC";
    +                    $sql.= " LIMIT 1";
    +                    $resql = $this->db->query($sql);
    +                    if ($resql) {
    +                        $result = $this->db->fetch_array($resql);
    +
    +                        // Price by quantity
    +                        $this->prices_by_qty[0]=$result["price_by_qty"];
    +                        $this->prices_by_qty_id[0]=$result["rowid"];
    +                        // Récuperation de la liste des prix selon qty si flag positionné
    +                        if ($this->prices_by_qty[0] == 1) {
    +                            $sql = "SELECT rowid,price, unitprice, quantity, remise_percent, remise, remise, price_base_type";
    +                            $sql.= " FROM ".MAIN_DB_PREFIX."product_price_by_qty";
    +                            $sql.= " WHERE fk_product_price = ".$this->prices_by_qty_id[0];
    +                            $sql.= " ORDER BY quantity ASC";
    +                            $resultat=array();
    +                            $resql = $this->db->query($sql);
    +                            if ($resql) {
    +                                      $ii=0;
    +                                while ($result= $this->db->fetch_array($resql)) {
    +                                    $resultat[$ii]=array();
    +                                    $resultat[$ii]["rowid"]=$result["rowid"];
    +                                    $resultat[$ii]["price"]= $result["price"];
    +                                    $resultat[$ii]["unitprice"]= $result["unitprice"];
    +                                    $resultat[$ii]["quantity"]= $result["quantity"];
    +                                    $resultat[$ii]["remise_percent"]= $result["remise_percent"];
    +                                    //$resultat[$ii]["remise"]= $result["remise"];                    // deprecated
    +                                    $resultat[$ii]["price_base_type"]= $result["price_base_type"];
    +                                    $ii++;
    +                                }
    +                                    $this->prices_by_qty_list[0]=$resultat;
    +                            }
    +                            else
    +                            {
    +                                    dol_print_error($this->db);
    +                                    return -1;
    +                            }
    +                        }
    +                    }
    +                    else
    +                    {
    +                        dol_print_error($this->db);
    +                        return -1;
    +                    }
    +                }
    +                else if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES))    // prices per customer and quantity
    +                {
    +                    for ($i=1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++)
    +                    {
    +                        $sql = "SELECT price, price_ttc, price_min, price_min_ttc,";
    +                        $sql.= " price_base_type, tva_tx, default_vat_code, tosell, price_by_qty, rowid, recuperableonly";
    +                        $sql.= " FROM ".MAIN_DB_PREFIX."product_price";
    +                        $sql.= " WHERE entity IN (".getEntity('productprice').")";
    +                        $sql.= " AND price_level=".$i;
    +                        $sql.= " AND fk_product = ".$this->id;
    +                        $sql.= " ORDER BY date_price DESC, rowid DESC";
    +                        $sql.= " LIMIT 1";
    +                        $resql = $this->db->query($sql);
    +                        if ($resql) {
    +                            $result = $this->db->fetch_array($resql);
    +
    +                            $this->multiprices[$i]=$result["price"];
    +                            $this->multiprices_ttc[$i]=$result["price_ttc"];
    +                            $this->multiprices_min[$i]=$result["price_min"];
    +                            $this->multiprices_min_ttc[$i]=$result["price_min_ttc"];
    +                            $this->multiprices_base_type[$i]=$result["price_base_type"];
    +                            // Next two fields are used only if PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL is on
    +                            $this->multiprices_tva_tx[$i]=$result["tva_tx"];     // TODO Add ' ('.$result['default_vat_code'].')'
    +                            $this->multiprices_recuperableonly[$i]=$result["recuperableonly"];
    +
    +                            // Price by quantity
    +                            $this->prices_by_qty[$i]=$result["price_by_qty"];
    +                            $this->prices_by_qty_id[$i]=$result["rowid"];
    +                            // Récuperation de la liste des prix selon qty si flag positionné
    +                            if ($this->prices_by_qty[$i] == 1) {
    +                                         $sql = "SELECT rowid, price, unitprice, quantity, remise_percent, remise, price_base_type";
    +                                         $sql.= " FROM ".MAIN_DB_PREFIX."product_price_by_qty";
    +                                         $sql.= " WHERE fk_product_price = ".$this->prices_by_qty_id[$i];
    +                                         $sql.= " ORDER BY quantity ASC";
    +                                         $resultat=array();
    +                                         $resql = $this->db->query($sql);
    +                                if ($resql) {
    +                                    $ii=0;
    +                                    while ($result= $this->db->fetch_array($resql)) {
    +                                                       $resultat[$ii]=array();
    +                                                       $resultat[$ii]["rowid"]=$result["rowid"];
    +                                                       $resultat[$ii]["price"]= $result["price"];
    +                                                       $resultat[$ii]["unitprice"]= $result["unitprice"];
    +                                                       $resultat[$ii]["quantity"]= $result["quantity"];
    +                                                       $resultat[$ii]["remise_percent"]= $result["remise_percent"];
    +                                                       $resultat[$ii]["remise"]= $result["remise"];                    // deprecated
    +                                                       $resultat[$ii]["price_base_type"]= $result["price_base_type"];
    +                                                       $ii++;
    +                                    }
    +                                    $this->prices_by_qty_list[$i]=$resultat;
    +                                }
    +                                else
    +                                         {
    +                                    dol_print_error($this->db);
    +                                    return -1;
    +                                }
    +                            }
    +                        }
    +                        else
    +                        {
    +                            dol_print_error($this->db);
    +                            return -1;
    +                        }
                         }
                     }
     
    -				// We should not load stock during the fetch. If someone need stock of product, he must call load_stock after fetching product.
    -				// Instead we just init the stock_warehouse array
    -				$this->stock_warehouse = array();
    -
    -				return 1;
    -			}
    -			else
    -			{
    -				return 0;
    -			}
    -		}
    -		else
    -		{
    -			dol_print_error($this->db);
    -			return -1;
    -		}
    -	}
    -
    -
    -	/**
    -	 *  Charge tableau des stats propale pour le produit/service
    -	 *
    -	 *  @param    int	$socid      Id societe
    -	 *  @return   array       		Tableau des stats
    -	 */
    -	function load_stats_propale($socid=0)
    -	{
    -		global $conf;
    -		global $user;
    -
    -		$sql = "SELECT COUNT(DISTINCT p.fk_soc) as nb_customers, COUNT(DISTINCT p.rowid) as nb,";
    -		$sql.= " COUNT(pd.rowid) as nb_rows, SUM(pd.qty) as qty";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."propaldet as pd";
    -		$sql.= ", ".MAIN_DB_PREFIX."propal as p";
    -		$sql.= ", ".MAIN_DB_PREFIX."societe as s";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE p.rowid = pd.fk_propal";
    -		$sql.= " AND p.fk_soc = s.rowid";
    -		$sql.= " AND p.entity IN (".getEntity('propal').")";
    -		$sql.= " AND pd.fk_product = ".$this->id;
    -		if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		//$sql.= " AND pr.fk_statut != 0";
    -		if ($socid > 0)	$sql.= " AND p.fk_soc = ".$socid;
    -
    -		$result = $this->db->query($sql);
    -		if ( $result )
    -		{
    -			$obj=$this->db->fetch_object($result);
    -			$this->stats_propale['customers']=$obj->nb_customers;
    -			$this->stats_propale['nb']=$obj->nb;
    -			$this->stats_propale['rows']=$obj->nb_rows;
    -			$this->stats_propale['qty']=$obj->qty?$obj->qty:0;
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error();
    -			return -1;
    -		}
    -	}
    -
    -
    -	/**
    -	 *  Charge tableau des stats propale pour le produit/service
    -	 *
    -	 *  @param    int	$socid      Id thirdparty
    -	 *  @return   array       		Tableau des stats
    -	 */
    -	function load_stats_proposal_supplier($socid=0)
    -	{
    -		global $conf;
    -		global $user;
    -
    -		$sql = "SELECT COUNT(DISTINCT p.fk_soc) as nb_suppliers, COUNT(DISTINCT p.rowid) as nb,";
    -		$sql.= " COUNT(pd.rowid) as nb_rows, SUM(pd.qty) as qty";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."supplier_proposaldet as pd";
    -		$sql.= ", ".MAIN_DB_PREFIX."supplier_proposal as p";
    -		$sql.= ", ".MAIN_DB_PREFIX."societe as s";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE p.rowid = pd.fk_supplier_proposal";
    -		$sql.= " AND p.fk_soc = s.rowid";
    -		$sql.= " AND p.entity IN (".getEntity('supplier_proposal').")";
    -		$sql.= " AND pd.fk_product = ".$this->id;
    -		if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		//$sql.= " AND pr.fk_statut != 0";
    -		if ($socid > 0)	$sql.= " AND p.fk_soc = ".$socid;
    -
    -		$result = $this->db->query($sql);
    -		if ( $result )
    -		{
    -			$obj=$this->db->fetch_object($result);
    -			$this->stats_proposal_supplier['suppliers']=$obj->nb_suppliers;
    -			$this->stats_proposal_supplier['nb']=$obj->nb;
    -			$this->stats_proposal_supplier['rows']=$obj->nb_rows;
    -			$this->stats_proposal_supplier['qty']=$obj->qty?$obj->qty:0;
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error();
    -			return -1;
    -		}
    -	}
    -
    -
    -	/**
    -	 *  Charge tableau des stats commande client pour le produit/service
    -	 *
    -	 *  @param    int    $socid           Id societe pour filtrer sur une societe
    -	 *  @param    string $filtrestatut    Id statut pour filtrer sur un statut
    -	 *  @param    int    $forVirtualStock Ignore rights filter for virtual stock calculation.
    -	 *  @return   array                  Array of stats (nb=nb of order, qty=qty ordered)
    -	 */
    -	function load_stats_commande($socid=0,$filtrestatut='', $forVirtualStock = 0)
    -	{
    -		global $conf,$user;
    -
    -		$sql = "SELECT COUNT(DISTINCT c.fk_soc) as nb_customers, COUNT(DISTINCT c.rowid) as nb,";
    -		$sql.= " COUNT(cd.rowid) as nb_rows, SUM(cd.qty) as qty";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd";
    -		$sql.= ", ".MAIN_DB_PREFIX."commande as c";
    -		$sql.= ", ".MAIN_DB_PREFIX."societe as s";
    -		if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE c.rowid = cd.fk_commande";
    -		$sql.= " AND c.fk_soc = s.rowid";
    -		$sql.= " AND c.entity IN (".getEntity('commande').")";
    -		$sql.= " AND cd.fk_product = ".$this->id;
    -		if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		if ($socid > 0)	$sql.= " AND c.fk_soc = ".$socid;
    -		if ($filtrestatut <> '') $sql.= " AND c.fk_statut in (".$filtrestatut.")";
    -
    -		$result = $this->db->query($sql);
    -		if ( $result )
    -		{
    -			$obj=$this->db->fetch_object($result);
    -			$this->stats_commande['customers']=$obj->nb_customers;
    -			$this->stats_commande['nb']=$obj->nb;
    -			$this->stats_commande['rows']=$obj->nb_rows;
    -			$this->stats_commande['qty']=$obj->qty?$obj->qty:0;
    -
    -			// if it's a virtual product, maybe it is in order by extension
    -			if (! empty($conf->global->ORDER_ADD_ORDERS_WITH_PARENT_PROD_IF_INCDEC))
    -			{
    -				$TFather = $this->getFather();
    -				if (is_array($TFather) && !empty($TFather)) {
    -					foreach($TFather as &$fatherData) {
    -						$pFather = new Product($this->db);
    -						$pFather->id = $fatherData['id'];
    -						$qtyCoef = $fatherData['qty'];
    -
    -						if ($fatherData['incdec']) {
    -							$pFather->load_stats_commande($socid, $filtrestatut);
    -
    -							$this->stats_commande['customers']+=$pFather->stats_commande['customers'];
    -							$this->stats_commande['nb']+=$pFather->stats_commande['nb'];
    -							$this->stats_commande['rows']+=$pFather->stats_commande['rows'];
    -							$this->stats_commande['qty']+=$pFather->stats_commande['qty'] * $qtyCoef;
    -
    -						}
    -					}
    -				}
    -			}
    -
    -			// If stock decrease is on invoice validation, the theorical stock continue to
    -			// count the orders to ship in theorical stock when some are already removed b invoice validation.
    -			// If option DECREASE_ONLY_UNINVOICEDPRODUCTS is on, we make a compensation.
    -			if (! empty($conf->global->STOCK_CALCULATE_ON_BILL))
    -			{
    -				if (! empty($conf->global->DECREASE_ONLY_UNINVOICEDPRODUCTS))
    -				{
    -					$adeduire = 0;
    -					$sql = "SELECT sum(fd.qty) as count FROM ".MAIN_DB_PREFIX."facturedet fd ";
    -					$sql .= " JOIN ".MAIN_DB_PREFIX."facture f ON fd.fk_facture = f.rowid ";
    -					$sql .= " JOIN ".MAIN_DB_PREFIX."element_element el ON el.fk_target = f.rowid and el.targettype = 'facture' and sourcetype = 'commande'";
    -					$sql .= " JOIN ".MAIN_DB_PREFIX."commande c ON el.fk_source = c.rowid ";
    -					$sql .= " WHERE c.fk_statut IN (".$filtrestatut.") AND c.facture = 0 AND fd.fk_product = ".$this->id;
    -					dol_syslog(__METHOD__.":: sql $sql", LOG_NOTICE);
    -
    -					$resql = $this->db->query($sql);
    -					if ( $resql )
    -					{
    -						if ($this->db->num_rows($resql) > 0)
    -						{
    -							$obj = $this->db->fetch_object($resql);
    -							$adeduire += $obj->count;
    -						}
    -					}
    -
    -					$this->stats_commande['qty'] -= $adeduire;
    -				}
    -			}
    -
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error();
    -			return -1;
    -		}
    -	}
    -
    -	/**
    -	 *  Charge tableau des stats commande fournisseur pour le produit/service
    -	 *
    -	 *  @param    int      $socid           Id societe pour filtrer sur une societe
    -	 *  @param    string   $filtrestatut    Id des statuts pour filtrer sur des statuts
    -	 *  @param    int      $forVirtualStock Ignore rights filter for virtual stock calculation.
    -	 *  @return   array                     Tableau des stats
    -	 */
    -	function load_stats_commande_fournisseur($socid=0,$filtrestatut='', $forVirtualStock = 0)
    -	{
    -		global $conf,$user;
    -
    -		$sql = "SELECT COUNT(DISTINCT c.fk_soc) as nb_suppliers, COUNT(DISTINCT c.rowid) as nb,";
    -		$sql.= " COUNT(cd.rowid) as nb_rows, SUM(cd.qty) as qty";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd";
    -		$sql.= ", ".MAIN_DB_PREFIX."commande_fournisseur as c";
    -		$sql.= ", ".MAIN_DB_PREFIX."societe as s";
    -		if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE c.rowid = cd.fk_commande";
    -		$sql.= " AND c.fk_soc = s.rowid";
    -		$sql.= " AND c.entity IN (".getEntity('supplier_order').")";
    -		$sql.= " AND cd.fk_product = ".$this->id;
    -		if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		if ($socid > 0) $sql.= " AND c.fk_soc = ".$socid;
    -		if ($filtrestatut != '') $sql.= " AND c.fk_statut in (".$filtrestatut.")"; // Peut valoir 0
    -
    -		$result = $this->db->query($sql);
    -		if ( $result )
    -		{
    -			$obj=$this->db->fetch_object($result);
    -			$this->stats_commande_fournisseur['suppliers']=$obj->nb_suppliers;
    -			$this->stats_commande_fournisseur['nb']=$obj->nb;
    -			$this->stats_commande_fournisseur['rows']=$obj->nb_rows;
    -			$this->stats_commande_fournisseur['qty']=$obj->qty?$obj->qty:0;
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error().' sql='.$sql;
    -			return -1;
    -		}
    -	}
    -
    -	/**
    -	 *  Charge tableau des stats expedition client pour le produit/service
    -	 *
    -	 *  @param    int    $socid           Id societe pour filtrer sur une societe
    -	 *  @param    string $filtrestatut    Id statut pour filtrer sur un statut
    -	 *  @param    int    $forVirtualStock Ignore rights filter for virtual stock calculation.
    -	 *  @return   array                   Tableau des stats
    -	 */
    -	function load_stats_sending($socid=0,$filtrestatut='', $forVirtualStock = 0)
    -	{
    -		global $conf,$user;
    -
    -		$sql = "SELECT COUNT(DISTINCT e.fk_soc) as nb_customers, COUNT(DISTINCT e.rowid) as nb,";
    -		$sql.= " COUNT(ed.rowid) as nb_rows, SUM(ed.qty) as qty";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed";
    -		$sql.= ", ".MAIN_DB_PREFIX."commandedet as cd";
    -		$sql.= ", ".MAIN_DB_PREFIX."commande as c";
    -		$sql.= ", ".MAIN_DB_PREFIX."expedition as e";
    -		$sql.= ", ".MAIN_DB_PREFIX."societe as s";
    -		if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE e.rowid = ed.fk_expedition";
    -		$sql.= " AND c.rowid = cd.fk_commande";
    -		$sql.= " AND e.fk_soc = s.rowid";
    -		$sql.= " AND e.entity IN (".getEntity('expedition').")";
    -		$sql.= " AND ed.fk_origin_line = cd.rowid";
    -		$sql.= " AND cd.fk_product = ".$this->id;
    -		if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) $sql.= " AND e.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		if ($socid > 0)	$sql.= " AND e.fk_soc = ".$socid;
    -		if ($filtrestatut <> '') $sql.= " AND c.fk_statut in (".$filtrestatut.")";
    -
    -		$result = $this->db->query($sql);
    -		if ( $result )
    -		{
    -			$obj=$this->db->fetch_object($result);
    -			$this->stats_expedition['customers']=$obj->nb_customers;
    -			$this->stats_expedition['nb']=$obj->nb;
    -			$this->stats_expedition['rows']=$obj->nb_rows;
    -			$this->stats_expedition['qty']=$obj->qty?$obj->qty:0;
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error();
    -			return -1;
    -		}
    -	}
    -
    -	/**
    -	 *  Charge tableau des stats réception fournisseur pour le produit/service
    -	 *
    -	 *  @param    int    $socid           Id societe pour filtrer sur une societe
    -	 *  @param    string $filtrestatut    Id statut pour filtrer sur un statut
    -	 *  @param    int    $forVirtualStock Ignore rights filter for virtual stock calculation.
    -	 *  @return   array                   Tableau des stats
    -	 */
    -	function load_stats_reception($socid=0,$filtrestatut='', $forVirtualStock = 0)
    -	{
    -		global $conf,$user;
    -
    -		$sql = "SELECT COUNT(DISTINCT cf.fk_soc) as nb_customers, COUNT(DISTINCT cf.rowid) as nb,";
    -		$sql.= " COUNT(fd.rowid) as nb_rows, SUM(fd.qty) as qty";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as fd";
    -		$sql.= ", ".MAIN_DB_PREFIX."commande_fournisseur as cf";
    -		$sql.= ", ".MAIN_DB_PREFIX."societe as s";
    -		if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE cf.rowid = fd.fk_commande";
    -		$sql.= " AND cf.fk_soc = s.rowid";
    -		$sql.= " AND cf.entity IN (".getEntity('supplier_order').")";
    -		$sql.= " AND fd.fk_product = ".$this->id;
    -		if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) $sql.= " AND cf.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		if ($socid > 0)	$sql.= " AND cf.fk_soc = ".$socid;
    -		if ($filtrestatut <> '') $sql.= " AND cf.fk_statut in (".$filtrestatut.")";
    -
    -		$result = $this->db->query($sql);
    -		if ( $result )
    -		{
    -			$obj=$this->db->fetch_object($result);
    -			$this->stats_reception['suppliers']=$obj->nb_customers;
    -			$this->stats_reception['nb']=$obj->nb;
    -			$this->stats_reception['rows']=$obj->nb_rows;
    -			$this->stats_reception['qty']=$obj->qty?$obj->qty:0;
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error();
    -			return -1;
    -		}
    -	}
    -
    -	/**
    -	 *  Charge tableau des stats contrat pour le produit/service
    -	 *
    -	 *  @param    int	$socid      Id societe
    -	 *  @return   array       		Tableau des stats
    -	 */
    -	function load_stats_contrat($socid=0)
    -	{
    -		global $conf;
    -		global $user;
    -
    -		$sql = "SELECT COUNT(DISTINCT c.fk_soc) as nb_customers, COUNT(DISTINCT c.rowid) as nb,";
    -		$sql.= " COUNT(cd.rowid) as nb_rows, SUM(cd.qty) as qty";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."contratdet as cd";
    -		$sql.= ", ".MAIN_DB_PREFIX."contrat as c";
    -		$sql.= ", ".MAIN_DB_PREFIX."societe as s";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE c.rowid = cd.fk_contrat";
    -		$sql.= " AND c.fk_soc = s.rowid";
    -		$sql.= " AND c.entity IN (".getEntity('contract').")";
    -		$sql.= " AND cd.fk_product = ".$this->id;
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		//$sql.= " AND c.statut != 0";
    -		if ($socid > 0)	$sql.= " AND c.fk_soc = ".$socid;
    -
    -		$result = $this->db->query($sql);
    -		if ( $result )
    -		{
    -			$obj=$this->db->fetch_object($result);
    -			$this->stats_contrat['customers']=$obj->nb_customers;
    -			$this->stats_contrat['nb']=$obj->nb;
    -			$this->stats_contrat['rows']=$obj->nb_rows;
    -			$this->stats_contrat['qty']=$obj->qty?$obj->qty:0;
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error().' sql='.$sql;
    -			return -1;
    -		}
    -	}
    -
    -	/**
    -	 *  Charge tableau des stats facture pour le produit/service
    -	 *
    -	 *  @param    int		$socid      Id societe
    -	 *  @return   array       			Tableau des stats
    -	 */
    -	function load_stats_facture($socid=0)
    -	{
    -		global $conf;
    -		global $user;
    -
    -		$sql = "SELECT COUNT(DISTINCT f.fk_soc) as nb_customers, COUNT(DISTINCT f.rowid) as nb,";
    -		$sql.= " COUNT(fd.rowid) as nb_rows, SUM(fd.qty) as qty";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."facturedet as fd";
    -		$sql.= ", ".MAIN_DB_PREFIX."facture as f";
    -		$sql.= ", ".MAIN_DB_PREFIX."societe as s";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE f.rowid = fd.fk_facture";
    -		$sql.= " AND f.fk_soc = s.rowid";
    -		$sql.= " AND f.entity IN (".getEntity('facture').")";
    -		$sql.= " AND fd.fk_product = ".$this->id;
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		//$sql.= " AND f.fk_statut != 0";
    -		if ($socid > 0)	$sql .= " AND f.fk_soc = ".$socid;
    -
    -		$result = $this->db->query($sql);
    -		if ( $result )
    -		{
    -			$obj=$this->db->fetch_object($result);
    -			$this->stats_facture['customers']=$obj->nb_customers;
    -			$this->stats_facture['nb']=$obj->nb;
    -			$this->stats_facture['rows']=$obj->nb_rows;
    -			$this->stats_facture['qty']=$obj->qty?$obj->qty:0;
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error();
    -			return -1;
    -		}
    -	}
    -
    -	/**
    -	 *  Charge tableau des stats facture pour le produit/service
    -	 *
    -	 *  @param    int		$socid      Id societe
    -	 *  @return   array       			Tableau des stats
    -	 */
    -	function load_stats_facture_fournisseur($socid=0)
    -	{
    -		global $conf;
    -		global $user;
    -
    -		$sql = "SELECT COUNT(DISTINCT f.fk_soc) as nb_suppliers, COUNT(DISTINCT f.rowid) as nb,";
    -		$sql.= " COUNT(fd.rowid) as nb_rows, SUM(fd.qty) as qty";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn_det as fd";
    -		$sql.= ", ".MAIN_DB_PREFIX."facture_fourn as f";
    -		$sql.= ", ".MAIN_DB_PREFIX."societe as s";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE f.rowid = fd.fk_facture_fourn";
    -		$sql.= " AND f.fk_soc = s.rowid";
    -		$sql.= " AND f.entity IN (".getEntity('facture_fourn').")";
    -		$sql.= " AND fd.fk_product = ".$this->id;
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		//$sql.= " AND f.fk_statut != 0";
    -		if ($socid > 0)	$sql .= " AND f.fk_soc = ".$socid;
    -
    -		$result = $this->db->query($sql);
    -		if ( $result )
    -		{
    -			$obj=$this->db->fetch_object($result);
    -			$this->stats_facture_fournisseur['suppliers']=$obj->nb_suppliers;
    -			$this->stats_facture_fournisseur['nb']=$obj->nb;
    -			$this->stats_facture_fournisseur['rows']=$obj->nb_rows;
    -			$this->stats_facture_fournisseur['qty']=$obj->qty?$obj->qty:0;
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error();
    -			return -1;
    -		}
    -	}
    -
    -	/**
    -	 *  Return an array formated for showing graphs
    -	 *
    -	 *  @param		string	$sql        Request to execute
    -	 *  @param		string	$mode		'byunit'=number of unit, 'bynumber'=nb of entities
    -	 *  @param      int     $year       Year (0=current year)
    -	 *  @return   	array       		<0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    -	 */
    -	function _get_stats($sql, $mode, $year=0)
    -	{
    -		$resql = $this->db->query($sql);
    -		if ($resql)
    -		{
    -			$num = $this->db->num_rows($resql);
    -			$i = 0;
    -			while ($i < $num)
    -			{
    -				$arr = $this->db->fetch_array($resql);
    -				if ($mode == 'byunit')   $tab[$arr[1]] = $arr[0];	// 1st field
    -				if ($mode == 'bynumber') $tab[$arr[1]] = $arr[2];	// 3rd field
    -				$i++;
    -			}
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error().' sql='.$sql;
    -			return -1;
    -		}
    -
    -		if (empty($year))
    -		{
    -		    $year = strftime('%Y',time());
    -		    $month = strftime('%m',time());
    -		}
    -		else
    -		{
    -		    $month=12;    // We imagine we are at end of year, so we get last 12 month before, so all correct year.
    -		}
    -		$result = array();
    -
    -		for ($j = 0 ; $j < 12 ; $j++)
    -		{
    -			$idx=ucfirst(dol_trunc(dol_print_date(dol_mktime(12,0,0,$month,1,$year),"%b"),3,'right','UTF-8',1));
    -			$monthnum=sprintf("%02s",$month);
    -
    -			$result[$j] = array($idx,isset($tab[$year.$month])?$tab[$year.$month]:0);
    -			//            $result[$j] = array($monthnum,isset($tab[$year.$month])?$tab[$year.$month]:0);
    -
    -			$month = "0".($month - 1);
    -			if (dol_strlen($month) == 3)
    -			{
    -				$month = substr($month,1);
    -			}
    -			if ($month == 0)
    -			{
    -				$month = 12;
    -				$year = $year - 1;
    -			}
    -		}
    -
    -		return array_reverse($result);
    -	}
    -
    -
    -	/**
    -	 *  Return nb of units or customers invoices in which product is included
    -	 *
    -	 *  @param  	int		$socid                   Limit count on a particular third party id
    -	 *  @param		string	$mode		             'byunit'=number of unit, 'bynumber'=nb of entities
    -	 *  @param      int     $filteronproducttype     0=To filter on product only, 1=To filter on services only
    -	 *  @param      int     $year                    Year (0=last 12 month)
    -	 *  @param      string  $morefilter              More sql filters
    -	 * 	@return   	array       		             <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    -	 */
    -	function get_nb_vente($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    -	{
    -		global $conf;
    -		global $user;
    -
    -		$sql = "SELECT sum(d.qty), date_format(f.datef, '%Y%m')";
    -		if ($mode == 'bynumber') $sql.= ", count(DISTINCT f.rowid)";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."facturedet as d, ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."societe as s";
    -		if ($filteronproducttype >= 0) $sql.=", ".MAIN_DB_PREFIX."product as p";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE f.rowid = d.fk_facture";
    -		if ($this->id > 0) $sql.= " AND d.fk_product =".$this->id;
    -		else $sql.=" AND d.fk_product > 0";
    -		if ($filteronproducttype >= 0) $sql.= " AND p.rowid = d.fk_product AND p.fk_product_type =".$filteronproducttype;
    -		$sql.= " AND f.fk_soc = s.rowid";
    -		$sql.= " AND f.entity IN (".getEntity('facture').")";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		if ($socid > 0)	$sql.= " AND f.fk_soc = $socid";
    -		$sql.=$morefilter;
    -		$sql.= " GROUP BY date_format(f.datef,'%Y%m')";
    -		$sql.= " ORDER BY date_format(f.datef,'%Y%m') DESC";
    -
    -		return $this->_get_stats($sql,$mode, $year);
    -	}
    -
    -
    -	/**
    -	 *  Return nb of units or supplier invoices in which product is included
    -	 *
    -	 *  @param  	int		$socid                   Limit count on a particular third party id
    -	 * 	@param		string	$mode		             'byunit'=number of unit, 'bynumber'=nb of entities
    -	 *  @param      int     $filteronproducttype     0=To filter on product only, 1=To filter on services only
    -	 *  @param      int     $year                    Year (0=last 12 month)
    -	 *  @param      string  $morefilter              More sql filters
    -	 * 	@return   	array       		             <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    -	 */
    -	function get_nb_achat($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    -	{
    -		global $conf;
    -		global $user;
    -
    -		$sql = "SELECT sum(d.qty), date_format(f.datef, '%Y%m')";
    -		if ($mode == 'bynumber') $sql.= ", count(DISTINCT f.rowid)";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn_det as d, ".MAIN_DB_PREFIX."facture_fourn as f, ".MAIN_DB_PREFIX."societe as s";
    -        if ($filteronproducttype >= 0) $sql.=", ".MAIN_DB_PREFIX."product as p";
    -        if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE f.rowid = d.fk_facture_fourn";
    -		if ($this->id > 0) $sql.= " AND d.fk_product =".$this->id;
    -		else $sql.=" AND d.fk_product > 0";
    -		if ($filteronproducttype >= 0) $sql.= " AND p.rowid = d.fk_product AND p.fk_product_type =".$filteronproducttype;
    -		$sql.= " AND f.fk_soc = s.rowid";
    -		$sql.= " AND f.entity IN (".getEntity('facture_fourn').")";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		if ($socid > 0)	$sql.= " AND f.fk_soc = $socid";
    -		$sql.=$morefilter;
    -		$sql.= " GROUP BY date_format(f.datef,'%Y%m')";
    -		$sql.= " ORDER BY date_format(f.datef,'%Y%m') DESC";
    -
    -		return $this->_get_stats($sql,$mode, $year);
    -	}
    -
    -	/**
    -	 *  Return nb of units or proposals in which product is included
    -	 *
    -	 *  @param  	int		$socid                   Limit count on a particular third party id
    -	 * 	@param		string	$mode		             'byunit'=number of unit, 'bynumber'=nb of entities
    -	 *  @param      int     $filteronproducttype     0=To filter on product only, 1=To filter on services only
    -	 *  @param      int     $year                    Year (0=last 12 month)
    -	 *  @param      string  $morefilter              More sql filters
    -	 * 	@return   	array       		             <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    -	 */
    -	function get_nb_propal($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    -	{
    -		global $conf;
    -		global $user;
    -
    -		$sql = "SELECT sum(d.qty), date_format(p.datep, '%Y%m')";
    -		if ($mode == 'bynumber') $sql.= ", count(DISTINCT p.rowid)";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."propaldet as d, ".MAIN_DB_PREFIX."propal as p, ".MAIN_DB_PREFIX."societe as s";
    -        if ($filteronproducttype >= 0) $sql.=", ".MAIN_DB_PREFIX."product as prod";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE p.rowid = d.fk_propal";
    -		if ($this->id > 0) $sql.= " AND d.fk_product =".$this->id;
    -		else $sql.=" AND d.fk_product > 0";
    -		if ($filteronproducttype >= 0) $sql.= " AND prod.rowid = d.fk_product AND prod.fk_product_type =".$filteronproducttype;
    -		$sql.= " AND p.fk_soc = s.rowid";
    -		$sql.= " AND p.entity IN (".getEntity('propal').")";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		if ($socid > 0)	$sql.= " AND p.fk_soc = ".$socid;
    -		$sql.=$morefilter;
    -		$sql.= " GROUP BY date_format(p.datep,'%Y%m')";
    -		$sql.= " ORDER BY date_format(p.datep,'%Y%m') DESC";
    -
    -		return $this->_get_stats($sql,$mode, $year);
    -	}
    -
    -	/**
    -	 *  Return nb of units or proposals in which product is included
    -	 *
    -	 *  @param  	int		$socid                   Limit count on a particular third party id
    -	 * 	@param		string	$mode		             'byunit'=number of unit, 'bynumber'=nb of entities
    -	 *  @param      int     $filteronproducttype     0=To filter on product only, 1=To filter on services only
    -	 *  @param      int     $year                    Year (0=last 12 month)
    -	 *  @param      string  $morefilter              More sql filters
    -	 * 	@return   	array       		             <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    -	 */
    -	function get_nb_propalsupplier($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    -	{
    -		global $conf;
    -		global $user;
    -
    -		$sql = "SELECT sum(d.qty), date_format(p.date_valid, '%Y%m')";
    -		if ($mode == 'bynumber') $sql.= ", count(DISTINCT p.rowid)";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."supplier_proposaldet as d, ".MAIN_DB_PREFIX."supplier_proposal as p, ".MAIN_DB_PREFIX."societe as s";
    -        if ($filteronproducttype >= 0) $sql.=", ".MAIN_DB_PREFIX."product as prod";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE p.rowid = d.fk_supplier_proposal";
    -		if ($this->id > 0) $sql.= " AND d.fk_product =".$this->id;
    -		else $sql.=" AND d.fk_product > 0";
    -		if ($filteronproducttype >= 0) $sql.= " AND prod.rowid = d.fk_product AND prod.fk_product_type =".$filteronproducttype;
    -		$sql.= " AND p.fk_soc = s.rowid";
    -		$sql.= " AND p.entity IN (".getEntity('supplier_proposal').")";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		if ($socid > 0)	$sql.= " AND p.fk_soc = ".$socid;
    -		$sql.=$morefilter;
    -		$sql.= " GROUP BY date_format(p.date_valid,'%Y%m')";
    -		$sql.= " ORDER BY date_format(p.date_valid,'%Y%m') DESC";
    -
    -		return $this->_get_stats($sql,$mode, $year);
    -	}
    -
    -	/**
    -	 *  Return nb of units or orders in which product is included
    -	 *
    -	 *  @param  	int		$socid                   Limit count on a particular third party id
    -	 *  @param		string	$mode		             'byunit'=number of unit, 'bynumber'=nb of entities
    -	 *  @param      int     $filteronproducttype     0=To filter on product only, 1=To filter on services only
    -	 *  @param      int     $year                    Year (0=last 12 month)
    -	 *  @param      string  $morefilter              More sql filters
    -	 * 	@return   	array       		             <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    -	 */
    -	function get_nb_order($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    -	{
    -		global $conf, $user;
    -
    -		$sql = "SELECT sum(d.qty), date_format(c.date_commande, '%Y%m')";
    -		if ($mode == 'bynumber') $sql.= ", count(DISTINCT c.rowid)";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."commandedet as d, ".MAIN_DB_PREFIX."commande as c, ".MAIN_DB_PREFIX."societe as s";
    -        if ($filteronproducttype >= 0) $sql.=", ".MAIN_DB_PREFIX."product as p";
    -        if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE c.rowid = d.fk_commande";
    -		if ($this->id > 0) $sql.= " AND d.fk_product =".$this->id;
    -		else $sql.=" AND d.fk_product > 0";
    -		if ($filteronproducttype >= 0) $sql.= " AND p.rowid = d.fk_product AND p.fk_product_type =".$filteronproducttype;
    -		$sql.= " AND c.fk_soc = s.rowid";
    -		$sql.= " AND c.entity IN (".getEntity('commande').")";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		if ($socid > 0)	$sql.= " AND c.fk_soc = ".$socid;
    -		$sql.=$morefilter;
    -		$sql.= " GROUP BY date_format(c.date_commande,'%Y%m')";
    -		$sql.= " ORDER BY date_format(c.date_commande,'%Y%m') DESC";
    -
    -		return $this->_get_stats($sql,$mode, $year);
    -	}
    -
    -	/**
    -	 *  Return nb of units or orders in which product is included
    -	 *
    -	 *  @param  	int		$socid                   Limit count on a particular third party id
    -	 *  @param		string	$mode		             'byunit'=number of unit, 'bynumber'=nb of entities
    -	 *  @param      int     $filteronproducttype     0=To filter on product only, 1=To filter on services only
    -	 *  @param      int     $year                    Year (0=last 12 month)
    -	 *  @param      string  $morefilter              More sql filters
    -	 * 	@return   	array       		             <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    -	 */
    -	function get_nb_ordersupplier($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    -	{
    -		global $conf, $user;
    -
    -		$sql = "SELECT sum(d.qty), date_format(c.date_commande, '%Y%m')";
    -		if ($mode == 'bynumber') $sql.= ", count(DISTINCT c.rowid)";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as d, ".MAIN_DB_PREFIX."commande_fournisseur as c, ".MAIN_DB_PREFIX."societe as s";
    -        if ($filteronproducttype >= 0) $sql.=", ".MAIN_DB_PREFIX."product as p";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    -		$sql.= " WHERE c.rowid = d.fk_commande";
    -		if ($this->id > 0) $sql.= " AND d.fk_product =".$this->id;
    -		else $sql.=" AND d.fk_product > 0";
    -		if ($filteronproducttype >= 0) $sql.= " AND p.rowid = d.fk_product AND p.fk_product_type =".$filteronproducttype;
    -		$sql.= " AND c.fk_soc = s.rowid";
    -		$sql.= " AND c.entity IN (".getEntity('supplier_order').")";
    -		if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    -		if ($socid > 0)	$sql.= " AND c.fk_soc = ".$socid;
    -		$sql.=$morefilter;
    -		$sql.= " GROUP BY date_format(c.date_commande,'%Y%m')";
    -		$sql.= " ORDER BY date_format(c.date_commande,'%Y%m') DESC";
    -
    -		return $this->_get_stats($sql,$mode, $year);
    -	}
    -
    -	/**
    -	 *  Link a product/service to a parent product/service
    -	 *
    -	 *  @param      int	$id_pere    Id of parent product/service
    -	 *  @param      int	$id_fils    Id of child product/service
    -	 *  @param		int	$qty		Quantity
    -	 *  @param		int	$incdec		1=Increase/decrease stock of child when parent stock increase/decrease
    -	 *  @return     int        		< 0 if KO, > 0 if OK
    -	 */
    -	function add_sousproduit($id_pere, $id_fils, $qty, $incdec=1)
    -	{
    -		// Clean parameters
    -		if (! is_numeric($id_pere)) $id_pere=0;
    -		if (! is_numeric($id_fils)) $id_fils=0;
    -		if (! is_numeric($incdec)) $incdec=0;
    -
    -		$result=$this->del_sousproduit($id_pere, $id_fils);
    -		if ($result < 0) return $result;
    -
    -		// Check not already father of id_pere (to avoid father -> child -> father links)
    -		$sql = 'SELECT fk_product_pere from '.MAIN_DB_PREFIX.'product_association';
    -		$sql .= ' WHERE fk_product_pere  = '.$id_fils.' AND fk_product_fils = '.$id_pere;
    -		if (! $this->db->query($sql))
    -		{
    -			dol_print_error($this->db);
    -			return -1;
    -		}
    -		else
    -		{
    -			$result = $this->db->query($sql);
    -			if ($result)
    -			{
    -				$num = $this->db->num_rows($result);
    -				if($num > 0)
    -				{
    -					$this->error="isFatherOfThis";
    -					return -1;
    -				}
    -				else
    -				{
    -					$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'product_association(fk_product_pere,fk_product_fils,qty,incdec)';
    -					$sql .= ' VALUES ('.$id_pere.', '.$id_fils.', '.$qty.', '.$incdec.')';
    -					if (! $this->db->query($sql))
    -					{
    -						dol_print_error($this->db);
    -						return -1;
    -					}
    -					else
    -					{
    -						return 1;
    -					}
    -				}
    -			}
    -		}
    -	}
    -
    -	/**
    -	 *  Modify composed product
    -	 *
    -	 *  @param      int	$id_pere    Id of parent product/service
    -	 *  @param      int	$id_fils    Id of child product/service
    -	 *  @param		int	$qty		Quantity
    -	 *  @param		int	$incdec		1=Increase/decrease stock of child when parent stock increase/decrease
    -	 * 	@return     int        		< 0 if KO, > 0 if OK
    -	 */
    -	function update_sousproduit($id_pere, $id_fils, $qty, $incdec=1)
    -	{
    -		// Clean parameters
    -		if (! is_numeric($id_pere)) $id_pere=0;
    -		if (! is_numeric($id_fils)) $id_fils=0;
    -		if (! is_numeric($incdec)) $incdec=1;
    -		if (! is_numeric($qty)) $qty=1;
    -
    -		$sql = 'UPDATE '.MAIN_DB_PREFIX.'product_association SET ';
    -		$sql.= 'qty='.$qty;
    -		$sql.= ',incdec='.$incdec;
    -		$sql .= ' WHERE fk_product_pere='.$id_pere.' AND fk_product_fils='.$id_fils;
    -
    -		if (!$this->db->query($sql))
    -		{
    -			dol_print_error($this->db);
    -			return -1;
    -		}
    -		else
    -		{
    -			return 1;
    -		}
    -
    -	}
    -
    -	/**
    -	 *  Retire le lien entre un sousproduit et un produit/service
    -	 *
    -	 *  @param      int	$fk_parent		Id du produit auquel ne sera plus lie le produit lie
    -	 *  @param      int	$fk_child		Id du produit a ne plus lie
    -	 *  @return     int			    	< 0 if KO, > 0 if OK
    -	 */
    -	function del_sousproduit($fk_parent, $fk_child)
    -	{
    -		if (! is_numeric($fk_parent)) $fk_parent=0;
    -		if (! is_numeric($fk_child)) $fk_child=0;
    -
    -		$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_association";
    -		$sql.= " WHERE fk_product_pere  = ".$fk_parent;
    -		$sql.= " AND fk_product_fils = ".$fk_child;
    -
    -		dol_syslog(get_class($this).'::del_sousproduit', LOG_DEBUG);
    -		if (! $this->db->query($sql))
    -		{
    -			dol_print_error($this->db);
    -			return -1;
    -		}
    -
    -		return 1;
    -	}
    -
    -	/**
    -	 *  Verifie si c'est un sous-produit
    -	 *
    -	 *  @param      int	$fk_parent		Id du produit auquel le produit est lie
    -	 *  @param      int	$fk_child		Id du produit lie
    -	 *  @return     int			    	< 0 si erreur, > 0 si ok
    -	 */
    -	function is_sousproduit($fk_parent, $fk_child)
    -	{
    -		$sql = "SELECT fk_product_pere, qty, incdec";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product_association";
    -		$sql.= " WHERE fk_product_pere  = '".$fk_parent."'";
    -		$sql.= " AND fk_product_fils = '".$fk_child."'";
    -
    -		$result = $this->db->query($sql);
    -		if ($result)
    -		{
    -			$num = $this->db->num_rows($result);
    -
    -			if($num > 0)
    -			{
    -				$obj = $this->db->fetch_object($result);
    -				$this->is_sousproduit_qty = $obj->qty;
    -				$this->is_sousproduit_incdec = $obj->incdec;
    -
    -				return true;
    -			}
    -			else
    -			{
    -				return false;
    -			}
    -		}
    -		else
    -		{
    -			dol_print_error($this->db);
    -			return -1;
    -		}
    -	}
    -
    -
    -	/**
    -	 *  Add a supplier price for the product.
    -	 *  Note: Duplicate ref is accepted for different quantity only, or for different companies.
    -	 *
    -	 *  @param      User	$user       User that make link
    -	 *  @param      int		$id_fourn   Supplier id
    -	 *  @param      string	$ref_fourn  Supplier ref
    -	 *  @param		float	$quantity	Quantity minimum for price
    -	 *  @return     int         		< 0 if KO, 0 if link already exists for this product, > 0 if OK
    -	 */
    -	function add_fournisseur($user, $id_fourn, $ref_fourn, $quantity)
    -	{
    -		global $conf;
    -
    -		$now=dol_now();
    -
    -    	dol_syslog(get_class($this)."::add_fournisseur id_fourn = ".$id_fourn." ref_fourn=".$ref_fourn." quantity=".$quantity, LOG_DEBUG);
    -
    -		if ($ref_fourn)
    -		{
    -    		$sql = "SELECT rowid, fk_product";
    -    		$sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price";
    -    		$sql.= " WHERE fk_soc = ".$id_fourn;
    -    		$sql.= " AND ref_fourn = '".$this->db->escape($ref_fourn)."'";
    -    		$sql.= " AND fk_product != ".$this->id;
    -    		$sql.= " AND entity IN (".getEntity('productsupplierprice').")";
    -
    -    		$resql=$this->db->query($sql);
    -    		if ($resql)
    -    		{
    -    			$obj = $this->db->fetch_object($resql);
    -                if ($obj)
    -                {
    -        			// If the supplier ref already exists but for another product (duplicate ref is accepted for different quantity only or different companies)
    -                    $this->product_id_already_linked = $obj->fk_product;
    -    				return -3;
    -    			}
    -                $this->db->free($resql);
    -    		}
    -		}
    -
    -		$sql = "SELECT rowid";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price";
    -		$sql.= " WHERE fk_soc = ".$id_fourn;
    -		if ($ref_fourn) $sql.= " AND ref_fourn = '".$this->db->escape($ref_fourn)."'";
    -		else $sql.= " AND (ref_fourn = '' OR ref_fourn IS NULL)";
    -		$sql.= " AND quantity = '".$quantity."'";
    -		$sql.= " AND fk_product = ".$this->id;
    -		$sql.= " AND entity IN (".getEntity('productsupplierprice').")";
    -
    -		$resql=$this->db->query($sql);
    -		if ($resql)
    -		{
    -    		$obj = $this->db->fetch_object($resql);
    -
    -		    // The reference supplier does not exist, we create it for this product.
    -			if (! $obj)
    -			{
    -				$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_fournisseur_price(";
    -				$sql.= "datec";
    -				$sql.= ", entity";
    -				$sql.= ", fk_product";
    -				$sql.= ", fk_soc";
    -				$sql.= ", ref_fourn";
    -				$sql.= ", quantity";
    -				$sql.= ", fk_user";
    -				$sql.= ", tva_tx";
    -				$sql.= ") VALUES (";
    -				$sql.= "'".$this->db->idate($now)."'";
    -				$sql.= ", ".$conf->entity;
    -				$sql.= ", ".$this->id;
    -				$sql.= ", ".$id_fourn;
    -				$sql.= ", '".$this->db->escape($ref_fourn)."'";
    -				$sql.= ", ".$quantity;
    -				$sql.= ", ".$user->id;
    -				$sql.= ", 0";
    -				$sql.= ")";
    -
    -				if ($this->db->query($sql))
    -				{
    -					$this->product_fourn_price_id = $this->db->last_insert_id(MAIN_DB_PREFIX."product_fournisseur_price");
    -					return 1;
    -				}
    -				else
    -				{
    -					$this->error=$this->db->lasterror();
    -					return -1;
    -				}
    -			}
    -			// If the supplier price already exists for this product and quantity
    -			else
    -			{
    -				$this->product_fourn_price_id = $obj->rowid;
    -				return 0;
    -			}
    -		}
    -		else
    -		{
    -			$this->error=$this->db->lasterror();
    -			return -2;
    -		}
    -	}
    -
    -
    -	/**
    -	 *  Renvoie la liste des fournisseurs du produit/service
    -	 *
    -	 *  @return 	array		Tableau des id de fournisseur
    -	 */
    -	function list_suppliers()
    -	{
    -		global $conf;
    -
    -		$list = array();
    -
    -		$sql = "SELECT DISTINCT p.fk_soc";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as p";
    -		$sql.= " WHERE p.fk_product = ".$this->id;
    -		$sql.= " AND p.entity = ".$conf->entity;
    -
    -		$result = $this->db->query($sql);
    -		if ($result)
    -		{
    -			$num = $this->db->num_rows($result);
    -			$i=0;
    -			while ($i < $num)
    -			{
    -				$obj = $this->db->fetch_object($result);
    -				$list[$i] = $obj->fk_soc;
    -				$i++;
    -			}
    -		}
    -
    -		return $list;
    -	}
    -
    -	/**
    -	 *  Recopie les prix d'un produit/service sur un autre
    -	 *
    -	 *  @param	int		$fromId     Id product source
    -	 *  @param  int		$toId       Id product target
    -	 *  @return nt         			< 0 if KO, > 0 if OK
    -	 */
    -	function clone_price($fromId, $toId)
    -	{
    -		$this->db->begin();
    -
    -		// les prix
    -		$sql = "INSERT ".MAIN_DB_PREFIX."product_price (";
    -		$sql.= " fk_product, date_price, price, tva_tx, localtax1_tx, localtax2_tx, fk_user_author, tosell)";
    -		$sql.= " SELECT ".$toId . ", date_price, price, tva_tx, localtax1_tx, localtax2_tx, fk_user_author, tosell";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product_price ";
    -		$sql.= " WHERE fk_product = ". $fromId;
    -
    -		dol_syslog(get_class($this).'::clone_price', LOG_DEBUG);
    -		if (! $this->db->query($sql))
    -		{
    -			$this->db->rollback();
    -			return -1;
    -		}
    -		$this->db->commit();
    -		return 1;
    -	}
    -
    -	/**
    -	 * Clone links between products
    -	 *
    -	 * @param  int		$fromId		Product id
    -	 * @param  int		$toId		Product id
    -	 * @return int                  <0 if KO, >0 if OK
    -	 */
    -	function clone_associations($fromId, $toId)
    -	{
    -		$this->db->begin();
    -
    -		$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'product_association (fk_product_pere, fk_product_fils, qty)';
    -		$sql.= " SELECT ".$toId.", fk_product_fils, qty FROM ".MAIN_DB_PREFIX."product_association";
    -		$sql.= " WHERE fk_product_pere = ".$fromId;
    -
    -		dol_syslog(get_class($this).'::clone_association', LOG_DEBUG);
    -		if (! $this->db->query($sql))
    -		{
    -			$this->db->rollback();
    -			return -1;
    -		}
    -
    -		$this->db->commit();
    -		return 1;
    -	}
    -
    -	/**
    -	 *  Recopie les fournisseurs et prix fournisseurs d'un produit/service sur un autre
    -	 *
    -	 *  @param    int	$fromId      Id produit source
    -	 *  @param    int	$toId        Id produit cible
    -	 *  @return   int    		     < 0 si erreur, > 0 si ok
    -	 */
    -	function clone_fournisseurs($fromId, $toId)
    -	{
    -		$this->db->begin();
    -
    -		$now=dol_now();
    -
    -		// les fournisseurs
    -		/*$sql = "INSERT ".MAIN_DB_PREFIX."product_fournisseur ("
    -		. " datec, fk_product, fk_soc, ref_fourn, fk_user_author )"
    -		. " SELECT '".$this->db->idate($now)."', ".$toId.", fk_soc, ref_fourn, fk_user_author"
    -		. " FROM ".MAIN_DB_PREFIX."product_fournisseur"
    -		. " WHERE fk_product = ".$fromId;
    -
    -		if ( ! $this->db->query($sql ) )
    -		{
    -			$this->db->rollback();
    -			return -1;
    -		}*/
    -
    -		// les prix de fournisseurs.
    -		$sql = "INSERT ".MAIN_DB_PREFIX."product_fournisseur_price (";
    -		$sql.= " datec, fk_product, fk_soc, price, quantity, fk_user)";
    -		$sql.= " SELECT '".$this->db->idate($now)."', ".$toId. ", fk_soc, price, quantity, fk_user";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price";
    -		$sql.= " WHERE fk_product = ".$fromId;
    -
    -		dol_syslog(get_class($this).'::clone_fournisseurs', LOG_DEBUG);
    -		$resql=$this->db->query($sql);
    -		if (! $resql)
    -		{
    -			$this->db->rollback();
    -			return -1;
    -		}
    -		else
    -		{
    -		    $this->db->commit();
    -		    return 1;
    -		}
    -	}
    -
    -	/**
    -	 *  Fonction recursive uniquement utilisee par get_arbo_each_prod, recompose l'arborescence des sousproduits
    -	 * 	Define value of this->res
    -	 *
    -	 *	@param		array		$prod			Products array
    -	 *	@param		string		$compl_path		Directory path of parents to add before
    -	 *	@param		int			$multiply		Because each sublevel must be multiplicated by parent nb
    -	 *	@param		int			$level			Init level
    -	 *  @param		int			$id_parent		Id parent
    -	 *  @return 	void
    -	 */
    -	function fetch_prod_arbo($prod, $compl_path="", $multiply=1, $level=1, $id_parent=0)
    -	{
    -		global $conf,$langs;
    -
    -		$product = new Product($this->db);
    -		//var_dump($prod);
    -		foreach($prod as $id_product => $desc_pere)	// $id_product is 0 (first call starting with root top) or an id of a sub_product
    -		{
    -			if (is_array($desc_pere))	// If desc_pere is an array, this means it's a child
    -			{
    -				$id=(! empty($desc_pere[0]) ? $desc_pere[0] :'');
    -				$nb=(! empty($desc_pere[1]) ? $desc_pere[1] :'');
    -				$type=(! empty($desc_pere[2]) ? $desc_pere[2] :'');
    -				$label=(! empty($desc_pere[3]) ? $desc_pere[3] :'');
    -				$incdec=!empty($desc_pere[4]) ? $desc_pere[4] : 0;
    -
    -				if ($multiply < 1) $multiply=1;
    -
    -				//print "XXX We add id=".$id." - label=".$label." - nb=".$nb." - multiply=".$multiply." fullpath=".$compl_path.$label."\n";
    -				$this->fetch($id);		// Load product
    -				$this->load_stock('nobatch,novirtual');	// Load stock to get true this->stock_reel
    -				$this->res[]= array(
    -					'id'=>$id,					// Id product
    -					'id_parent'=>$id_parent,
    -					'ref'=>$this->ref,			// Ref product
    -					'nb'=>$nb,					// Nb of units that compose parent product
    -					'nb_total'=>$nb*$multiply,	// Nb of units for all nb of product
    -					'stock'=>$this->stock_reel,	// Stock
    -					'stock_alert'=>$this->seuil_stock_alerte,	// Stock alert
    -					'label'=>$label,
    -					'fullpath'=>$compl_path.$label,			// Label
    -					'type'=>$type,				// Nb of units that compose parent product
    -					'desiredstock'=>$this->desiredstock,
    -					'level'=>$level,
    -					'incdec'=>$incdec,
    -					'entity'=>$this->entity
    -				);
    -
    -				// Recursive call if there is childs to child
    -				if (is_array($desc_pere['childs']))
    -				{
    -					//print 'YYY We go down for '.$desc_pere[3]." -> \n";
    -					$this->fetch_prod_arbo($desc_pere['childs'], $compl_path.$desc_pere[3]." -> ", $desc_pere[1]*$multiply, $level+1, $id);
    -				}
    -			}
    -		}
    -	}
    -
    -	/**
    -	 *  Build the tree of subproducts into an array
    -	 *  this->sousprods is loaded by this->get_sousproduits_arbo()
    -	 *
    -	 *	@param		int		$multiply		Because each sublevel must be multiplicated by parent nb
    -	 *  @return 	array 					$this->res
    -	 */
    -	function get_arbo_each_prod($multiply=1)
    -	{
    -		$this->res = array();
    -		if (isset($this->sousprods) && is_array($this->sousprods))
    -		{
    -			foreach($this->sousprods as $prod_name => $desc_product)
    -			{
    -				if (is_array($desc_product)) $this->fetch_prod_arbo($desc_product,"",$multiply,1,$this->id);
    -			}
    -		}
    -		//var_dump($this->res);
    -		return $this->res;
    -	}
    -
    -	/**
    -	 *  Return all parent products for current product (first level only)
    -	 *
    -	 *  @return 	int			Nb of father + child
    -	 */
    -	function hasFatherOrChild()
    -	{
    -		$nb = 0;
    -
    -		$sql = "SELECT COUNT(pa.rowid) as nb";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product_association as pa";
    -		$sql.= " WHERE pa.fk_product_fils = ".$this->id." OR pa.fk_product_pere = ".$this->id;
    -		$resql = $this->db->query($sql);
    -		if ($resql)
    -		{
    -			$obj = $this->db->fetch_object($resql);
    -			if ($obj) $nb = $obj->nb;
    -		}
    -		else
    -		{
    -			return -1;
    -		}
    -
    -		return $nb;
    -	}
    -
    -	/**
    -	 *  Return all parent products for current product (first level only)
    -	 *
    -	 *  @return 	array 		Array of product
    -	 */
    -	function getFather()
    -	{
    -		$sql = "SELECT p.rowid, p.label as label, p.ref as ref, pa.fk_product_pere as id, p.fk_product_type, pa.qty, pa.incdec, p.entity";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product_association as pa,";
    -		$sql.= " ".MAIN_DB_PREFIX."product as p";
    -		$sql.= " WHERE p.rowid = pa.fk_product_pere";
    -		$sql.= " AND pa.fk_product_fils = ".$this->id;
    -
    -		$res = $this->db->query($sql);
    -		if ($res)
    -		{
    -			$prods = array ();
    -			while ($record = $this->db->fetch_array($res))
    -			{
    -				// $record['id'] = $record['rowid'] = id of father
    -				$prods[$record['id']]['id'] = $record['rowid'];
    -				$prods[$record['id']]['ref'] = $record['ref'];
    -				$prods[$record['id']]['label'] = $record['label'];
    -				$prods[$record['id']]['qty'] = $record['qty'];
    -				$prods[$record['id']]['incdec'] = $record['incdec'];
    -				$prods[$record['id']]['fk_product_type'] =  $record['fk_product_type'];
    -				$prods[$record['id']]['entity'] =  $record['entity'];
    -			}
    -			return $prods;
    -		}
    -		else
    -		{
    -			dol_print_error($this->db);
    -			return -1;
    -		}
    -	}
    -
    -
    -	/**
    -	 *  Return childs of product $id
    -	 *
    -	 * 	@param		int		$id					Id of product to search childs of
    -	 *  @param		int		$firstlevelonly		Return only direct child
    -	 *  @param		int		$level				Level of recursing call (start to 1)
    -	 *  @return     array       				Return array(prodid=>array(0=prodid, 1=>qty, 2=> ...)
    -	 */
    -	function getChildsArbo($id, $firstlevelonly=0, $level=1)
    -	{
    -		global $alreadyfound;
    -
    -		$sql = "SELECT p.rowid, p.label as label, pa.qty as qty, pa.fk_product_fils as id, p.fk_product_type, pa.incdec";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product as p";
    -		$sql.= ", ".MAIN_DB_PREFIX."product_association as pa";
    -		$sql.= " WHERE p.rowid = pa.fk_product_fils";
    -		$sql.= " AND pa.fk_product_pere = ".$id;
    -		$sql.= " AND pa.fk_product_fils != ".$id;	// This should not happens, it is to avoid infinite loop if it happens
    -
    -		dol_syslog(get_class($this).'::getChildsArbo id='.$id.' level='.$level, LOG_DEBUG);
    -
    -		if ($level == 1) $alreadyfound=array($id=>1);	// We init array of found object to start of tree, so if we found it later (should not happened), we stop immediatly
    -		// Protection against infinite loop
    -		if ($level > 30) return array();
    -
    -		$res  = $this->db->query($sql);
    -		if ($res)
    -		{
    -			$prods = array();
    -			while ($rec = $this->db->fetch_array($res))
    -			{
    -				if (! empty($alreadyfound[$rec['rowid']]))
    -				{
    -					dol_syslog(get_class($this).'::getChildsArbo the product id='.$rec['rowid'].' was already found at a higher level in tree. We discard to avoid infinite loop', LOG_WARNING);
    -					continue;
    -				}
    -				$alreadyfound[$rec['rowid']]=1;
    -				$prods[$rec['rowid']]= array(
    -					0=>$rec['rowid'],
    -					1=>$rec['qty'],
    -					2=>$rec['fk_product_type'],
    -					3=>$this->db->escape($rec['label']),
    -					4=>$rec['incdec']
    -				);
    -				//$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty'],2=>$rec['fk_product_type']);
    -				//$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty']);
    -				if (empty($firstlevelonly))
    -				{
    -					$listofchilds=$this->getChildsArbo($rec['rowid'], 0, $level + 1);
    -					foreach($listofchilds as $keyChild => $valueChild)
    -					{
    -						$prods[$rec['rowid']]['childs'][$keyChild] = $valueChild;
    -					}
    -				}
    -			}
    -
    -			return $prods;
    -		}
    -		else
    -		{
    -			dol_print_error($this->db);
    -			return -1;
    -		}
    -	}
    -
    -	/**
    -	 * 	Return tree of all subproducts for product. Tree contains id, name and quantity.
    -	 * 	Set this->sousprods
    -	 *
    -	 *  @return    	void
    -	 */
    -	function get_sousproduits_arbo()
    -	{
    -	    $parent=array();
    -
    -		foreach($this->getChildsArbo($this->id) as $keyChild => $valueChild)	// Warning. getChildsArbo can call getChildsArbo recursively. Starting point is $value[0]=id of product
    -		{
    -			$parent[$this->label][$keyChild] = $valueChild;
    -		}
    -		foreach($parent as $key => $value)		// key=label, value is array of childs
    -		{
    -			$this->sousprods[$key] = $value;
    -		}
    -	}
    -
    -	/**
    -	 *	Return clicable link of object (with eventually picto)
    -	 *
    -	 *	@param		int		$withpicto					Add picto into link
    -	 *	@param		string	$option						Where point the link ('stock', 'composition', 'category', 'supplier', '')
    -	 *	@param		int		$maxlength					Maxlength of ref
    -     *  @param      int     $save_lastsearch_value		-1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    -	 *	@return		string								String with URL
    -	 */
    -	function getNomUrl($withpicto=0, $option='', $maxlength=0, $save_lastsearch_value=-1)
    -	{
    -		global $conf, $langs, $hookmanager;
    -		include_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
    -
    -		$result='';
    -        $newref=$this->ref;
    -        if ($maxlength) $newref=dol_trunc($newref,$maxlength,'middle');
    -
    -        if ($this->type == Product::TYPE_PRODUCT) $label = '<u>' . $langs->trans("ShowProduct") . '</u>';
    -        if ($this->type == Product::TYPE_SERVICE) $label = '<u>' . $langs->trans("ShowService") . '</u>';
    -        if (! empty($this->ref))
    -            $label .= '<br><b>' . $langs->trans('ProductRef') . ':</b> ' . $this->ref;
    -        if (! empty($this->label))
    -            $label .= '<br><b>' . $langs->trans('ProductLabel') . ':</b> ' . $this->label;
    -
    -        if ($this->type == Product::TYPE_PRODUCT)
    -        {
    -            if ($this->weight)  $label.="<br><b>".$langs->trans("Weight").'</b>: '.$this->weight.' '.measuring_units_string($this->weight_units,"weight");
    -    		if ($this->length)  $label.="<br><b>".$langs->trans("Length").'</b>: '.$this->length.' '.measuring_units_string($this->length_units,'length');
    -    		if ($this->surface) $label.="<br><b>".$langs->trans("Surface").'</b>: '.$this->surface.' '.measuring_units_string($this->surface_units,'surface');
    -    		if ($this->volume)  $label.="<br><b>".$langs->trans("Volume").'</b>: '.$this->volume.' '.measuring_units_string($this->volume_units,'volume');
    -        }
    -
    -        if ($this->type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
    -        {
    -    		if (! empty($conf->productbatch->enabled))
    +                if (!empty($conf->dynamicprices->enabled) && !empty($this->fk_price_expression) && empty($ignore_expression)) {
    +                       include_once DOL_DOCUMENT_ROOT.'/product/dynamic_price/class/price_parser.class.php';
    +                    $priceparser = new PriceParser($this->db);
    +                       $price_result = $priceparser->parseProduct($this);
    +                    if ($price_result >= 0) {
    +                        $this->price = $price_result;
    +                        // Calculate the VAT
    +                        $this->price_ttc = price2num($this->price) * (1 + ($this->tva_tx / 100));
    +                        $this->price_ttc = price2num($this->price_ttc, 'MU');
    +                    }
    +                }
    +
    +                // We should not load stock during the fetch. If someone need stock of product, he must call load_stock after fetching product.
    +                // Instead we just init the stock_warehouse array
    +                $this->stock_warehouse = array();
    +
    +                return 1;
    +            }
    +            else
                 {
    -            	$langs->load("productbatch");
    -                $label.="<br><b>".$langs->trans("ManageLotSerial").'</b>: '.$this->getLibStatut(0,2);
    +                return 0;
                 }
             }
    -        if ($this->type == Product::TYPE_SERVICE)
    +        else
             {
    +            dol_print_error($this->db);
    +            return -1;
    +        }
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Charge tableau des stats propale pour le produit/service
    +     *
    +     * @param  int $socid Id societe
    +     * @return array               Tableau des stats
    +     */
    +    function load_stats_propale($socid=0)
    +    {
    +        // phpcs:enable
    +        global $conf;
    +        global $user;
    +
    +        $sql = "SELECT COUNT(DISTINCT p.fk_soc) as nb_customers, COUNT(DISTINCT p.rowid) as nb,";
    +        $sql.= " COUNT(pd.rowid) as nb_rows, SUM(pd.qty) as qty";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."propaldet as pd";
    +        $sql.= ", ".MAIN_DB_PREFIX."propal as p";
    +        $sql.= ", ".MAIN_DB_PREFIX."societe as s";
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE p.rowid = pd.fk_propal";
    +        $sql.= " AND p.fk_soc = s.rowid";
    +        $sql.= " AND p.entity IN (".getEntity('propal').")";
    +        $sql.= " AND pd.fk_product = ".$this->id;
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql .= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        //$sql.= " AND pr.fk_statut != 0";
    +        if ($socid > 0) {    $sql.= " AND p.fk_soc = ".$socid;
    +        }
    +
    +        $result = $this->db->query($sql);
    +        if ($result ) {
    +            $obj=$this->db->fetch_object($result);
    +            $this->stats_propale['customers']=$obj->nb_customers;
    +            $this->stats_propale['nb']=$obj->nb;
    +            $this->stats_propale['rows']=$obj->nb_rows;
    +            $this->stats_propale['qty']=$obj->qty?$obj->qty:0;
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error();
    +            return -1;
    +        }
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Charge tableau des stats propale pour le produit/service
    +     *
    +     * @param  int $socid Id thirdparty
    +     * @return array               Tableau des stats
    +     */
    +    function load_stats_proposal_supplier($socid=0)
    +    {
    +        // phpcs:enable
    +        global $conf;
    +        global $user;
    +
    +        $sql = "SELECT COUNT(DISTINCT p.fk_soc) as nb_suppliers, COUNT(DISTINCT p.rowid) as nb,";
    +        $sql.= " COUNT(pd.rowid) as nb_rows, SUM(pd.qty) as qty";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."supplier_proposaldet as pd";
    +        $sql.= ", ".MAIN_DB_PREFIX."supplier_proposal as p";
    +        $sql.= ", ".MAIN_DB_PREFIX."societe as s";
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE p.rowid = pd.fk_supplier_proposal";
    +        $sql.= " AND p.fk_soc = s.rowid";
    +        $sql.= " AND p.entity IN (".getEntity('supplier_proposal').")";
    +        $sql.= " AND pd.fk_product = ".$this->id;
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql .= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        //$sql.= " AND pr.fk_statut != 0";
    +        if ($socid > 0) {    $sql.= " AND p.fk_soc = ".$socid;
    +        }
    +
    +        $result = $this->db->query($sql);
    +        if ($result ) {
    +            $obj=$this->db->fetch_object($result);
    +            $this->stats_proposal_supplier['suppliers']=$obj->nb_suppliers;
    +            $this->stats_proposal_supplier['nb']=$obj->nb;
    +            $this->stats_proposal_supplier['rows']=$obj->nb_rows;
    +            $this->stats_proposal_supplier['qty']=$obj->qty?$obj->qty:0;
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error();
    +            return -1;
    +        }
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Charge tableau des stats commande client pour le produit/service
    +     *
    +     * @param  int    $socid           Id societe pour filtrer sur une societe
    +     * @param  string $filtrestatut    Id statut pour filtrer sur un statut
    +     * @param  int    $forVirtualStock Ignore rights filter for virtual stock calculation.
    +     * @return array                  Array of stats (nb=nb of order, qty=qty ordered)
    +     */
    +    function load_stats_commande($socid=0,$filtrestatut='', $forVirtualStock = 0)
    +    {
    +        // phpcs:enable
    +        global $conf,$user;
    +
    +        $sql = "SELECT COUNT(DISTINCT c.fk_soc) as nb_customers, COUNT(DISTINCT c.rowid) as nb,";
    +        $sql.= " COUNT(cd.rowid) as nb_rows, SUM(cd.qty) as qty";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd";
    +        $sql.= ", ".MAIN_DB_PREFIX."commande as c";
    +        $sql.= ", ".MAIN_DB_PREFIX."societe as s";
    +        if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) { $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE c.rowid = cd.fk_commande";
    +        $sql.= " AND c.fk_soc = s.rowid";
    +        $sql.= " AND c.entity IN (".getEntity('commande').")";
    +        $sql.= " AND cd.fk_product = ".$this->id;
    +        if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) { $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        if ($socid > 0) {    $sql.= " AND c.fk_soc = ".$socid;
    +        }
    +        if ($filtrestatut <> '') { $sql.= " AND c.fk_statut in (".$filtrestatut.")";
    +        }
    +
    +        $result = $this->db->query($sql);
    +        if ($result ) {
    +            $obj=$this->db->fetch_object($result);
    +            $this->stats_commande['customers']=$obj->nb_customers;
    +            $this->stats_commande['nb']=$obj->nb;
    +            $this->stats_commande['rows']=$obj->nb_rows;
    +            $this->stats_commande['qty']=$obj->qty?$obj->qty:0;
    +
    +            // if it's a virtual product, maybe it is in order by extension
    +            if (! empty($conf->global->ORDER_ADD_ORDERS_WITH_PARENT_PROD_IF_INCDEC)) {
    +                $TFather = $this->getFather();
    +                if (is_array($TFather) && !empty($TFather)) {
    +                    foreach($TFather as &$fatherData) {
    +                        $pFather = new Product($this->db);
    +                        $pFather->id = $fatherData['id'];
    +                        $qtyCoef = $fatherData['qty'];
    +
    +                        if ($fatherData['incdec']) {
    +                            $pFather->load_stats_commande($socid, $filtrestatut);
    +
    +                            $this->stats_commande['customers']+=$pFather->stats_commande['customers'];
    +                            $this->stats_commande['nb']+=$pFather->stats_commande['nb'];
    +                            $this->stats_commande['rows']+=$pFather->stats_commande['rows'];
    +                            $this->stats_commande['qty']+=$pFather->stats_commande['qty'] * $qtyCoef;
    +                        }
    +                    }
    +                }
    +            }
    +
    +            // If stock decrease is on invoice validation, the theorical stock continue to
    +            // count the orders to ship in theorical stock when some are already removed b invoice validation.
    +            // If option DECREASE_ONLY_UNINVOICEDPRODUCTS is on, we make a compensation.
    +            if (! empty($conf->global->STOCK_CALCULATE_ON_BILL)) {
    +                if (! empty($conf->global->DECREASE_ONLY_UNINVOICEDPRODUCTS)) {
    +                    $adeduire = 0;
    +                    $sql = "SELECT sum(fd.qty) as count FROM ".MAIN_DB_PREFIX."facturedet fd ";
    +                    $sql .= " JOIN ".MAIN_DB_PREFIX."facture f ON fd.fk_facture = f.rowid ";
    +                    $sql .= " JOIN ".MAIN_DB_PREFIX."element_element el ON el.fk_target = f.rowid and el.targettype = 'facture' and sourcetype = 'commande'";
    +                    $sql .= " JOIN ".MAIN_DB_PREFIX."commande c ON el.fk_source = c.rowid ";
    +                    $sql .= " WHERE c.fk_statut IN (".$filtrestatut.") AND c.facture = 0 AND fd.fk_product = ".$this->id;
    +                    dol_syslog(__METHOD__.":: sql $sql", LOG_NOTICE);
    +
    +                    $resql = $this->db->query($sql);
    +                    if ($resql ) {
    +                        if ($this->db->num_rows($resql) > 0) {
    +                            $obj = $this->db->fetch_object($resql);
    +                            $adeduire += $obj->count;
    +                        }
    +                    }
    +
    +                    $this->stats_commande['qty'] -= $adeduire;
    +                }
    +            }
    +
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error();
    +            return -1;
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Charge tableau des stats commande fournisseur pour le produit/service
    +     *
    +     * @param  int    $socid           Id societe pour filtrer sur une societe
    +     * @param  string $filtrestatut    Id des statuts pour filtrer sur des statuts
    +     * @param  int    $forVirtualStock Ignore rights filter for virtual stock calculation.
    +     * @return array                     Tableau des stats
    +     */
    +    function load_stats_commande_fournisseur($socid=0,$filtrestatut='', $forVirtualStock = 0)
    +    {
    +        // phpcs:enable
    +        global $conf,$user;
    +
    +        $sql = "SELECT COUNT(DISTINCT c.fk_soc) as nb_suppliers, COUNT(DISTINCT c.rowid) as nb,";
    +        $sql.= " COUNT(cd.rowid) as nb_rows, SUM(cd.qty) as qty";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd";
    +        $sql.= ", ".MAIN_DB_PREFIX."commande_fournisseur as c";
    +        $sql.= ", ".MAIN_DB_PREFIX."societe as s";
    +        if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) { $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE c.rowid = cd.fk_commande";
    +        $sql.= " AND c.fk_soc = s.rowid";
    +        $sql.= " AND c.entity IN (".getEntity('supplier_order').")";
    +        $sql.= " AND cd.fk_product = ".$this->id;
    +        if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) { $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        if ($socid > 0) { $sql.= " AND c.fk_soc = ".$socid;
    +        }
    +        if ($filtrestatut != '') { $sql.= " AND c.fk_statut in (".$filtrestatut.")"; // Peut valoir 0
    +        }
    +
    +        $result = $this->db->query($sql);
    +        if ($result ) {
    +            $obj=$this->db->fetch_object($result);
    +            $this->stats_commande_fournisseur['suppliers']=$obj->nb_suppliers;
    +            $this->stats_commande_fournisseur['nb']=$obj->nb;
    +            $this->stats_commande_fournisseur['rows']=$obj->nb_rows;
    +            $this->stats_commande_fournisseur['qty']=$obj->qty?$obj->qty:0;
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error().' sql='.$sql;
    +            return -1;
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Charge tableau des stats expedition client pour le produit/service
    +     *
    +     * @param  int    $socid           Id societe pour filtrer sur une societe
    +     * @param  string $filtrestatut    Id statut pour filtrer sur un statut
    +     * @param  int    $forVirtualStock Ignore rights filter for virtual stock calculation.
    +     * @return array                   Tableau des stats
    +     */
    +    function load_stats_sending($socid=0,$filtrestatut='', $forVirtualStock = 0)
    +    {
    +        // phpcs:enable
    +        global $conf,$user;
    +
    +        $sql = "SELECT COUNT(DISTINCT e.fk_soc) as nb_customers, COUNT(DISTINCT e.rowid) as nb,";
    +        $sql.= " COUNT(ed.rowid) as nb_rows, SUM(ed.qty) as qty";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed";
    +        $sql.= ", ".MAIN_DB_PREFIX."commandedet as cd";
    +        $sql.= ", ".MAIN_DB_PREFIX."commande as c";
    +        $sql.= ", ".MAIN_DB_PREFIX."expedition as e";
    +        $sql.= ", ".MAIN_DB_PREFIX."societe as s";
    +        if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) { $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE e.rowid = ed.fk_expedition";
    +        $sql.= " AND c.rowid = cd.fk_commande";
    +        $sql.= " AND e.fk_soc = s.rowid";
    +        $sql.= " AND e.entity IN (".getEntity('expedition').")";
    +        $sql.= " AND ed.fk_origin_line = cd.rowid";
    +        $sql.= " AND cd.fk_product = ".$this->id;
    +        if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) { $sql.= " AND e.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        if ($socid > 0) {    $sql.= " AND e.fk_soc = ".$socid;
    +        }
    +        if ($filtrestatut <> '') { $sql.= " AND c.fk_statut in (".$filtrestatut.")";
    +        }
    +
    +        $result = $this->db->query($sql);
    +        if ($result ) {
    +            $obj=$this->db->fetch_object($result);
    +            $this->stats_expedition['customers']=$obj->nb_customers;
    +            $this->stats_expedition['nb']=$obj->nb;
    +            $this->stats_expedition['rows']=$obj->nb_rows;
    +            $this->stats_expedition['qty']=$obj->qty?$obj->qty:0;
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error();
    +            return -1;
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Charge tableau des stats réception fournisseur pour le produit/service
    +     *
    +     * @param  int    $socid           Id societe pour filtrer sur une societe
    +     * @param  string $filtrestatut    Id statut pour filtrer sur un statut
    +     * @param  int    $forVirtualStock Ignore rights filter for virtual stock calculation.
    +     * @return array                   Tableau des stats
    +     */
    +    function load_stats_reception($socid=0,$filtrestatut='', $forVirtualStock = 0)
    +    {
    +        // phpcs:enable
    +        global $conf,$user;
    +
    +        $sql = "SELECT COUNT(DISTINCT cf.fk_soc) as nb_customers, COUNT(DISTINCT cf.rowid) as nb,";
    +        $sql.= " COUNT(fd.rowid) as nb_rows, SUM(fd.qty) as qty";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as fd";
    +        $sql.= ", ".MAIN_DB_PREFIX."commande_fournisseur as cf";
    +        $sql.= ", ".MAIN_DB_PREFIX."societe as s";
    +        if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) { $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE cf.rowid = fd.fk_commande";
    +        $sql.= " AND cf.fk_soc = s.rowid";
    +        $sql.= " AND cf.entity IN (".getEntity('supplier_order').")";
    +        $sql.= " AND fd.fk_product = ".$this->id;
    +        if (!$user->rights->societe->client->voir && !$socid && !$forVirtualStock) { $sql.= " AND cf.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        if ($socid > 0) {    $sql.= " AND cf.fk_soc = ".$socid;
    +        }
    +        if ($filtrestatut <> '') { $sql.= " AND cf.fk_statut in (".$filtrestatut.")";
    +        }
    +
    +        $result = $this->db->query($sql);
    +        if ($result ) {
    +            $obj=$this->db->fetch_object($result);
    +            $this->stats_reception['suppliers']=$obj->nb_customers;
    +            $this->stats_reception['nb']=$obj->nb;
    +            $this->stats_reception['rows']=$obj->nb_rows;
    +            $this->stats_reception['qty']=$obj->qty?$obj->qty:0;
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error();
    +            return -1;
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Charge tableau des stats contrat pour le produit/service
    +     *
    +     * @param  int $socid Id societe
    +     * @return array               Tableau des stats
    +     */
    +    function load_stats_contrat($socid=0)
    +    {
    +        // phpcs:enable
    +        global $conf;
    +        global $user;
    +
    +        $sql = "SELECT COUNT(DISTINCT c.fk_soc) as nb_customers, COUNT(DISTINCT c.rowid) as nb,";
    +        $sql.= " COUNT(cd.rowid) as nb_rows, SUM(cd.qty) as qty";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."contratdet as cd";
    +        $sql.= ", ".MAIN_DB_PREFIX."contrat as c";
    +        $sql.= ", ".MAIN_DB_PREFIX."societe as s";
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE c.rowid = cd.fk_contrat";
    +        $sql.= " AND c.fk_soc = s.rowid";
    +        $sql.= " AND c.entity IN (".getEntity('contract').")";
    +        $sql.= " AND cd.fk_product = ".$this->id;
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        //$sql.= " AND c.statut != 0";
    +        if ($socid > 0) {    $sql.= " AND c.fk_soc = ".$socid;
    +        }
    +
    +        $result = $this->db->query($sql);
    +        if ($result ) {
    +            $obj=$this->db->fetch_object($result);
    +            $this->stats_contrat['customers']=$obj->nb_customers;
    +            $this->stats_contrat['nb']=$obj->nb;
    +            $this->stats_contrat['rows']=$obj->nb_rows;
    +            $this->stats_contrat['qty']=$obj->qty?$obj->qty:0;
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error().' sql='.$sql;
    +            return -1;
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Charge tableau des stats facture pour le produit/service
    +     *
    +     * @param  int $socid Id societe
    +     * @return array                   Tableau des stats
    +     */
    +    function load_stats_facture($socid=0)
    +    {
    +        // phpcs:enable
    +        global $conf;
    +        global $user;
    +
    +        $sql = "SELECT COUNT(DISTINCT f.fk_soc) as nb_customers, COUNT(DISTINCT f.rowid) as nb,";
    +        $sql.= " COUNT(fd.rowid) as nb_rows, SUM(fd.qty) as qty";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."facturedet as fd";
    +        $sql.= ", ".MAIN_DB_PREFIX."facture as f";
    +        $sql.= ", ".MAIN_DB_PREFIX."societe as s";
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE f.rowid = fd.fk_facture";
    +        $sql.= " AND f.fk_soc = s.rowid";
    +        $sql.= " AND f.entity IN (".getEntity('invoice').")";
    +        $sql.= " AND fd.fk_product = ".$this->id;
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        //$sql.= " AND f.fk_statut != 0";
    +        if ($socid > 0) {    $sql .= " AND f.fk_soc = ".$socid;
    +        }
    +
    +        $result = $this->db->query($sql);
    +        if ($result ) {
    +            $obj=$this->db->fetch_object($result);
    +            $this->stats_facture['customers']=$obj->nb_customers;
    +            $this->stats_facture['nb']=$obj->nb;
    +            $this->stats_facture['rows']=$obj->nb_rows;
    +            $this->stats_facture['qty']=$obj->qty?$obj->qty:0;
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error();
    +            return -1;
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Charge tableau des stats facture pour le produit/service
    +     *
    +     * @param  int $socid Id societe
    +     * @return array                   Tableau des stats
    +     */
    +    function load_stats_facture_fournisseur($socid=0)
    +    {
    +        // phpcs:enable
    +        global $conf;
    +        global $user;
    +
    +        $sql = "SELECT COUNT(DISTINCT f.fk_soc) as nb_suppliers, COUNT(DISTINCT f.rowid) as nb,";
    +        $sql.= " COUNT(fd.rowid) as nb_rows, SUM(fd.qty) as qty";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn_det as fd";
    +        $sql.= ", ".MAIN_DB_PREFIX."facture_fourn as f";
    +        $sql.= ", ".MAIN_DB_PREFIX."societe as s";
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE f.rowid = fd.fk_facture_fourn";
    +        $sql.= " AND f.fk_soc = s.rowid";
    +        $sql.= " AND f.entity IN (".getEntity('facture_fourn').")";
    +        $sql.= " AND fd.fk_product = ".$this->id;
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        //$sql.= " AND f.fk_statut != 0";
    +        if ($socid > 0) {    $sql .= " AND f.fk_soc = ".$socid;
    +        }
    +
    +        $result = $this->db->query($sql);
    +        if ($result ) {
    +            $obj=$this->db->fetch_object($result);
    +            $this->stats_facture_fournisseur['suppliers']=$obj->nb_suppliers;
    +            $this->stats_facture_fournisseur['nb']=$obj->nb;
    +            $this->stats_facture_fournisseur['rows']=$obj->nb_rows;
    +            $this->stats_facture_fournisseur['qty']=$obj->qty?$obj->qty:0;
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error();
    +            return -1;
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return an array formated for showing graphs
    +     *
    +     * @param  string $sql  Request to execute
    +     * @param  string $mode 'byunit'=number of unit, 'bynumber'=nb of entities
    +     * @param  int    $year Year (0=current year)
    +     * @return array               <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    +     */
    +    function _get_stats($sql, $mode, $year=0)
    +    {
    +        // phpcs:enable
    +        $resql = $this->db->query($sql);
    +        if ($resql) {
    +            $num = $this->db->num_rows($resql);
    +            $i = 0;
    +            while ($i < $num)
    +            {
    +                $arr = $this->db->fetch_array($resql);
    +                if ($mode == 'byunit') {   $tab[$arr[1]] = $arr[0];    // 1st field
    +                }
    +                if ($mode == 'bynumber') { $tab[$arr[1]] = $arr[2];    // 3rd field
    +                }
    +                $i++;
    +            }
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error().' sql='.$sql;
    +            return -1;
    +        }
    +
    +        if (empty($year)) {
    +            $year = strftime('%Y', time());
    +            $month = strftime('%m', time());
    +        }
    +        else
    +        {
    +            $month=12;    // We imagine we are at end of year, so we get last 12 month before, so all correct year.
    +        }
    +        $result = array();
    +
    +        for ($j = 0 ; $j < 12 ; $j++)
    +        {
    +            $idx=ucfirst(dol_trunc(dol_print_date(dol_mktime(12, 0, 0, $month, 1, $year), "%b"), 3, 'right', 'UTF-8', 1));
    +            $monthnum=sprintf("%02s", $month);
    +
    +            $result[$j] = array($idx,isset($tab[$year.$month])?$tab[$year.$month]:0);
    +            //            $result[$j] = array($monthnum,isset($tab[$year.$month])?$tab[$year.$month]:0);
    +
    +            $month = "0".($month - 1);
    +            if (dol_strlen($month) == 3) {
    +                $month = substr($month, 1);
    +            }
    +            if ($month == 0) {
    +                $month = 12;
    +                $year = $year - 1;
    +            }
    +        }
    +
    +        return array_reverse($result);
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return nb of units or customers invoices in which product is included
    +     *
    +     * @param  int    $socid               Limit count on a particular third party id
    +     * @param  string $mode                'byunit'=number of unit, 'bynumber'=nb of entities
    +     * @param  int    $filteronproducttype 0=To filter on product only, 1=To filter on services only
    +     * @param  int    $year                Year (0=last 12 month)
    +     * @param  string $morefilter          More sql filters
    +     * @return array                            <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    +     */
    +    function get_nb_vente($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    +    {
    +        // phpcs:enable
    +        global $conf;
    +        global $user;
    +
    +        $sql = "SELECT sum(d.qty), date_format(f.datef, '%Y%m')";
    +        if ($mode == 'bynumber') { $sql.= ", count(DISTINCT f.rowid)";
    +        }
    +        $sql.= " FROM ".MAIN_DB_PREFIX."facturedet as d, ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."societe as s";
    +        if ($filteronproducttype >= 0) { $sql.=", ".MAIN_DB_PREFIX."product as p";
    +        }
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE f.rowid = d.fk_facture";
    +        if ($this->id > 0) { $sql.= " AND d.fk_product =".$this->id;
    +        } else { $sql.=" AND d.fk_product > 0";
    +        }
    +        if ($filteronproducttype >= 0) { $sql.= " AND p.rowid = d.fk_product AND p.fk_product_type =".$filteronproducttype;
    +        }
    +        $sql.= " AND f.fk_soc = s.rowid";
    +        $sql.= " AND f.entity IN (".getEntity('invoice').")";
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        if ($socid > 0) {    $sql.= " AND f.fk_soc = $socid";
    +        }
    +        $sql.=$morefilter;
    +        $sql.= " GROUP BY date_format(f.datef,'%Y%m')";
    +        $sql.= " ORDER BY date_format(f.datef,'%Y%m') DESC";
    +
    +        return $this->_get_stats($sql, $mode, $year);
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return nb of units or supplier invoices in which product is included
    +     *
    +     * @param  int    $socid               Limit count on a particular third party id
    +     * @param  string $mode                'byunit'=number of unit, 'bynumber'=nb of entities
    +     * @param  int    $filteronproducttype 0=To filter on product only, 1=To filter on services only
    +     * @param  int    $year                Year (0=last 12 month)
    +     * @param  string $morefilter          More sql filters
    +     * @return array                            <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    +     */
    +    function get_nb_achat($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    +    {
    +        // phpcs:enable
    +        global $conf;
    +        global $user;
    +
    +        $sql = "SELECT sum(d.qty), date_format(f.datef, '%Y%m')";
    +        if ($mode == 'bynumber') { $sql.= ", count(DISTINCT f.rowid)";
    +        }
    +        $sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn_det as d, ".MAIN_DB_PREFIX."facture_fourn as f, ".MAIN_DB_PREFIX."societe as s";
    +        if ($filteronproducttype >= 0) { $sql.=", ".MAIN_DB_PREFIX."product as p";
    +        }
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE f.rowid = d.fk_facture_fourn";
    +        if ($this->id > 0) { $sql.= " AND d.fk_product =".$this->id;
    +        } else { $sql.=" AND d.fk_product > 0";
    +        }
    +        if ($filteronproducttype >= 0) { $sql.= " AND p.rowid = d.fk_product AND p.fk_product_type =".$filteronproducttype;
    +        }
    +        $sql.= " AND f.fk_soc = s.rowid";
    +        $sql.= " AND f.entity IN (".getEntity('facture_fourn').")";
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= " AND f.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        if ($socid > 0) {    $sql.= " AND f.fk_soc = $socid";
    +        }
    +        $sql.=$morefilter;
    +        $sql.= " GROUP BY date_format(f.datef,'%Y%m')";
    +        $sql.= " ORDER BY date_format(f.datef,'%Y%m') DESC";
    +
    +        return $this->_get_stats($sql, $mode, $year);
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return nb of units or proposals in which product is included
    +     *
    +     * @param  int    $socid               Limit count on a particular third party id
    +     * @param  string $mode                'byunit'=number of unit, 'bynumber'=nb of entities
    +     * @param  int    $filteronproducttype 0=To filter on product only, 1=To filter on services only
    +     * @param  int    $year                Year (0=last 12 month)
    +     * @param  string $morefilter          More sql filters
    +     * @return array                            <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    +     */
    +    function get_nb_propal($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    +    {
    +        // phpcs:enable
    +        global $conf;
    +        global $user;
    +
    +        $sql = "SELECT sum(d.qty), date_format(p.datep, '%Y%m')";
    +        if ($mode == 'bynumber') { $sql.= ", count(DISTINCT p.rowid)";
    +        }
    +        $sql.= " FROM ".MAIN_DB_PREFIX."propaldet as d, ".MAIN_DB_PREFIX."propal as p, ".MAIN_DB_PREFIX."societe as s";
    +        if ($filteronproducttype >= 0) { $sql.=", ".MAIN_DB_PREFIX."product as prod";
    +        }
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE p.rowid = d.fk_propal";
    +        if ($this->id > 0) { $sql.= " AND d.fk_product =".$this->id;
    +        } else { $sql.=" AND d.fk_product > 0";
    +        }
    +        if ($filteronproducttype >= 0) { $sql.= " AND prod.rowid = d.fk_product AND prod.fk_product_type =".$filteronproducttype;
    +        }
    +        $sql.= " AND p.fk_soc = s.rowid";
    +        $sql.= " AND p.entity IN (".getEntity('propal').")";
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        if ($socid > 0) {    $sql.= " AND p.fk_soc = ".$socid;
    +        }
    +        $sql.=$morefilter;
    +        $sql.= " GROUP BY date_format(p.datep,'%Y%m')";
    +        $sql.= " ORDER BY date_format(p.datep,'%Y%m') DESC";
    +
    +        return $this->_get_stats($sql, $mode, $year);
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return nb of units or proposals in which product is included
    +     *
    +     * @param  int    $socid               Limit count on a particular third party id
    +     * @param  string $mode                'byunit'=number of unit, 'bynumber'=nb of entities
    +     * @param  int    $filteronproducttype 0=To filter on product only, 1=To filter on services only
    +     * @param  int    $year                Year (0=last 12 month)
    +     * @param  string $morefilter          More sql filters
    +     * @return array                            <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    +     */
    +    function get_nb_propalsupplier($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    +    {
    +        // phpcs:enable
    +        global $conf;
    +        global $user;
    +
    +        $sql = "SELECT sum(d.qty), date_format(p.date_valid, '%Y%m')";
    +        if ($mode == 'bynumber') { $sql.= ", count(DISTINCT p.rowid)";
    +        }
    +        $sql.= " FROM ".MAIN_DB_PREFIX."supplier_proposaldet as d, ".MAIN_DB_PREFIX."supplier_proposal as p, ".MAIN_DB_PREFIX."societe as s";
    +        if ($filteronproducttype >= 0) { $sql.=", ".MAIN_DB_PREFIX."product as prod";
    +        }
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE p.rowid = d.fk_supplier_proposal";
    +        if ($this->id > 0) { $sql.= " AND d.fk_product =".$this->id;
    +        } else { $sql.=" AND d.fk_product > 0";
    +        }
    +        if ($filteronproducttype >= 0) { $sql.= " AND prod.rowid = d.fk_product AND prod.fk_product_type =".$filteronproducttype;
    +        }
    +        $sql.= " AND p.fk_soc = s.rowid";
    +        $sql.= " AND p.entity IN (".getEntity('supplier_proposal').")";
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= " AND p.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        if ($socid > 0) {    $sql.= " AND p.fk_soc = ".$socid;
    +        }
    +        $sql.=$morefilter;
    +        $sql.= " GROUP BY date_format(p.date_valid,'%Y%m')";
    +        $sql.= " ORDER BY date_format(p.date_valid,'%Y%m') DESC";
    +
    +        return $this->_get_stats($sql, $mode, $year);
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return nb of units or orders in which product is included
    +     *
    +     * @param  int    $socid               Limit count on a particular third party id
    +     * @param  string $mode                'byunit'=number of unit, 'bynumber'=nb of entities
    +     * @param  int    $filteronproducttype 0=To filter on product only, 1=To filter on services only
    +     * @param  int    $year                Year (0=last 12 month)
    +     * @param  string $morefilter          More sql filters
    +     * @return array                            <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    +     */
    +    function get_nb_order($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    +    {
    +        // phpcs:enable
    +        global $conf, $user;
    +
    +        $sql = "SELECT sum(d.qty), date_format(c.date_commande, '%Y%m')";
    +        if ($mode == 'bynumber') { $sql.= ", count(DISTINCT c.rowid)";
    +        }
    +        $sql.= " FROM ".MAIN_DB_PREFIX."commandedet as d, ".MAIN_DB_PREFIX."commande as c, ".MAIN_DB_PREFIX."societe as s";
    +        if ($filteronproducttype >= 0) { $sql.=", ".MAIN_DB_PREFIX."product as p";
    +        }
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE c.rowid = d.fk_commande";
    +        if ($this->id > 0) { $sql.= " AND d.fk_product =".$this->id;
    +        } else { $sql.=" AND d.fk_product > 0";
    +        }
    +        if ($filteronproducttype >= 0) { $sql.= " AND p.rowid = d.fk_product AND p.fk_product_type =".$filteronproducttype;
    +        }
    +        $sql.= " AND c.fk_soc = s.rowid";
    +        $sql.= " AND c.entity IN (".getEntity('commande').")";
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        if ($socid > 0) {    $sql.= " AND c.fk_soc = ".$socid;
    +        }
    +        $sql.=$morefilter;
    +        $sql.= " GROUP BY date_format(c.date_commande,'%Y%m')";
    +        $sql.= " ORDER BY date_format(c.date_commande,'%Y%m') DESC";
    +
    +        return $this->_get_stats($sql, $mode, $year);
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return nb of units or orders in which product is included
    +     *
    +     * @param  int    $socid               Limit count on a particular third party id
    +     * @param  string $mode                'byunit'=number of unit, 'bynumber'=nb of entities
    +     * @param  int    $filteronproducttype 0=To filter on product only, 1=To filter on services only
    +     * @param  int    $year                Year (0=last 12 month)
    +     * @param  string $morefilter          More sql filters
    +     * @return array                            <0 if KO, result[month]=array(valuex,valuey) where month is 0 to 11
    +     */
    +    function get_nb_ordersupplier($socid, $mode, $filteronproducttype=-1, $year=0, $morefilter='')
    +    {
    +        // phpcs:enable
    +        global $conf, $user;
    +
    +        $sql = "SELECT sum(d.qty), date_format(c.date_commande, '%Y%m')";
    +        if ($mode == 'bynumber') { $sql.= ", count(DISTINCT c.rowid)";
    +        }
    +        $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as d, ".MAIN_DB_PREFIX."commande_fournisseur as c, ".MAIN_DB_PREFIX."societe as s";
    +        if ($filteronproducttype >= 0) { $sql.=", ".MAIN_DB_PREFIX."product as p";
    +        }
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +        }
    +        $sql.= " WHERE c.rowid = d.fk_commande";
    +        if ($this->id > 0) { $sql.= " AND d.fk_product =".$this->id;
    +        } else { $sql.=" AND d.fk_product > 0";
    +        }
    +        if ($filteronproducttype >= 0) { $sql.= " AND p.rowid = d.fk_product AND p.fk_product_type =".$filteronproducttype;
    +        }
    +        $sql.= " AND c.fk_soc = s.rowid";
    +        $sql.= " AND c.entity IN (".getEntity('supplier_order').")";
    +        if (!$user->rights->societe->client->voir && !$socid) { $sql.= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +        }
    +        if ($socid > 0) {    $sql.= " AND c.fk_soc = ".$socid;
    +        }
    +        $sql.=$morefilter;
    +        $sql.= " GROUP BY date_format(c.date_commande,'%Y%m')";
    +        $sql.= " ORDER BY date_format(c.date_commande,'%Y%m') DESC";
    +
    +        return $this->_get_stats($sql, $mode, $year);
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Link a product/service to a parent product/service
    +     *
    +     * @param  int $id_pere Id of parent product/service
    +     * @param  int $id_fils Id of child product/service
    +     * @param  int $qty     Quantity
    +     * @param  int $incdec  1=Increase/decrease stock of child when parent stock increase/decrease
    +     * @return int                < 0 if KO, > 0 if OK
    +     */
    +    function add_sousproduit($id_pere, $id_fils, $qty, $incdec=1)
    +    {
    +        // phpcs:enable
    +        // Clean parameters
    +        if (! is_numeric($id_pere)) { $id_pere=0;
    +        }
    +        if (! is_numeric($id_fils)) { $id_fils=0;
    +        }
    +        if (! is_numeric($incdec)) { $incdec=0;
    +        }
    +
    +        $result=$this->del_sousproduit($id_pere, $id_fils);
    +        if ($result < 0) { return $result;
    +        }
    +
    +        // Check not already father of id_pere (to avoid father -> child -> father links)
    +        $sql = 'SELECT fk_product_pere from '.MAIN_DB_PREFIX.'product_association';
    +        $sql .= ' WHERE fk_product_pere  = '.$id_fils.' AND fk_product_fils = '.$id_pere;
    +        if (! $this->db->query($sql)) {
    +            dol_print_error($this->db);
    +            return -1;
    +        }
    +        else
    +        {
    +            $result = $this->db->query($sql);
    +            if ($result) {
    +                $num = $this->db->num_rows($result);
    +                if($num > 0) {
    +                    $this->error="isFatherOfThis";
    +                    return -1;
    +                }
    +                else
    +                {
    +                    $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'product_association(fk_product_pere,fk_product_fils,qty,incdec)';
    +                    $sql .= ' VALUES ('.$id_pere.', '.$id_fils.', '.$qty.', '.$incdec.')';
    +                    if (! $this->db->query($sql)) {
    +                         dol_print_error($this->db);
    +                         return -1;
    +                    }
    +                    else
    +                    {
    +                         return 1;
    +                    }
    +                }
    +            }
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Modify composed product
    +     *
    +     * @param  int $id_pere Id of parent product/service
    +     * @param  int $id_fils Id of child product/service
    +     * @param  int $qty     Quantity
    +     * @param  int $incdec  1=Increase/decrease stock of child when parent stock increase/decrease
    +     * @return int                < 0 if KO, > 0 if OK
    +     */
    +    function update_sousproduit($id_pere, $id_fils, $qty, $incdec=1)
    +    {
    +        // phpcs:enable
    +        // Clean parameters
    +        if (! is_numeric($id_pere)) { $id_pere=0;
    +        }
    +        if (! is_numeric($id_fils)) { $id_fils=0;
    +        }
    +        if (! is_numeric($incdec)) { $incdec=1;
    +        }
    +        if (! is_numeric($qty)) { $qty=1;
    +        }
    +
    +        $sql = 'UPDATE '.MAIN_DB_PREFIX.'product_association SET ';
    +        $sql.= 'qty='.$qty;
    +        $sql.= ',incdec='.$incdec;
    +        $sql .= ' WHERE fk_product_pere='.$id_pere.' AND fk_product_fils='.$id_fils;
    +
    +        if (!$this->db->query($sql)) {
    +            dol_print_error($this->db);
    +            return -1;
    +        }
    +        else
    +        {
    +            return 1;
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Retire le lien entre un sousproduit et un produit/service
    +     *
    +     * @param  int $fk_parent Id du produit auquel ne sera plus lie le produit lie
    +     * @param  int $fk_child  Id du produit a ne plus lie
    +     * @return int                    < 0 if KO, > 0 if OK
    +     */
    +    function del_sousproduit($fk_parent, $fk_child)
    +    {
    +        // phpcs:enable
    +        if (! is_numeric($fk_parent)) { $fk_parent=0;
    +        }
    +        if (! is_numeric($fk_child)) { $fk_child=0;
    +        }
    +
    +        $sql = "DELETE FROM ".MAIN_DB_PREFIX."product_association";
    +        $sql.= " WHERE fk_product_pere  = ".$fk_parent;
    +        $sql.= " AND fk_product_fils = ".$fk_child;
    +
    +        dol_syslog(get_class($this).'::del_sousproduit', LOG_DEBUG);
    +        if (! $this->db->query($sql)) {
    +            dol_print_error($this->db);
    +            return -1;
    +        }
    +
    +        return 1;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Verifie si c'est un sous-produit
    +     *
    +     * @param  int $fk_parent Id du produit auquel le produit est lie
    +     * @param  int $fk_child  Id du produit lie
    +     * @return int                    < 0 si erreur, > 0 si ok
    +     */
    +    function is_sousproduit($fk_parent, $fk_child)
    +    {
    +        // phpcs:enable
    +        $sql = "SELECT fk_product_pere, qty, incdec";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product_association";
    +        $sql.= " WHERE fk_product_pere  = '".$fk_parent."'";
    +        $sql.= " AND fk_product_fils = '".$fk_child."'";
    +
    +        $result = $this->db->query($sql);
    +        if ($result) {
    +            $num = $this->db->num_rows($result);
    +
    +            if($num > 0) {
    +                $obj = $this->db->fetch_object($result);
    +                $this->is_sousproduit_qty = $obj->qty;
    +                $this->is_sousproduit_incdec = $obj->incdec;
    +
    +                return true;
    +            }
    +            else
    +            {
    +                return false;
    +            }
    +        }
    +        else
    +        {
    +            dol_print_error($this->db);
    +            return -1;
    +        }
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Add a supplier price for the product.
    +     *  Note: Duplicate ref is accepted for different quantity only, or for different companies.
    +     *
    +     * @param  User   $user      User that make link
    +     * @param  int    $id_fourn  Supplier id
    +     * @param  string $ref_fourn Supplier ref
    +     * @param  float  $quantity  Quantity minimum for price
    +     * @return int                 < 0 if KO, 0 if link already exists for this product, > 0 if OK
    +     */
    +    function add_fournisseur($user, $id_fourn, $ref_fourn, $quantity)
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $now=dol_now();
    +
    +        dol_syslog(get_class($this)."::add_fournisseur id_fourn = ".$id_fourn." ref_fourn=".$ref_fourn." quantity=".$quantity, LOG_DEBUG);
    +
    +        if ($ref_fourn) {
    +            $sql = "SELECT rowid, fk_product";
    +            $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price";
    +            $sql.= " WHERE fk_soc = ".$id_fourn;
    +            $sql.= " AND ref_fourn = '".$this->db->escape($ref_fourn)."'";
    +            $sql.= " AND fk_product != ".$this->id;
    +            $sql.= " AND entity IN (".getEntity('productsupplierprice').")";
    +
    +            $resql=$this->db->query($sql);
    +            if ($resql) {
    +                $obj = $this->db->fetch_object($resql);
    +                if ($obj) {
    +                    // If the supplier ref already exists but for another product (duplicate ref is accepted for different quantity only or different companies)
    +                    $this->product_id_already_linked = $obj->fk_product;
    +                    return -3;
    +                }
    +                $this->db->free($resql);
    +            }
    +        }
    +
    +        $sql = "SELECT rowid";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price";
    +        $sql.= " WHERE fk_soc = ".$id_fourn;
    +        if ($ref_fourn) { $sql.= " AND ref_fourn = '".$this->db->escape($ref_fourn)."'";
    +        } else { $sql.= " AND (ref_fourn = '' OR ref_fourn IS NULL)";
    +        }
    +        $sql.= " AND quantity = '".$quantity."'";
    +        $sql.= " AND fk_product = ".$this->id;
    +        $sql.= " AND entity IN (".getEntity('productsupplierprice').")";
    +
    +        $resql=$this->db->query($sql);
    +        if ($resql) {
    +            $obj = $this->db->fetch_object($resql);
    +
    +            // The reference supplier does not exist, we create it for this product.
    +            if (! $obj) {
    +                $sql = "INSERT INTO ".MAIN_DB_PREFIX."product_fournisseur_price(";
    +                $sql.= "datec";
    +                $sql.= ", entity";
    +                $sql.= ", fk_product";
    +                $sql.= ", fk_soc";
    +                $sql.= ", ref_fourn";
    +                $sql.= ", quantity";
    +                $sql.= ", fk_user";
    +                $sql.= ", tva_tx";
    +                $sql.= ") VALUES (";
    +                $sql.= "'".$this->db->idate($now)."'";
    +                $sql.= ", ".$conf->entity;
    +                $sql.= ", ".$this->id;
    +                $sql.= ", ".$id_fourn;
    +                $sql.= ", '".$this->db->escape($ref_fourn)."'";
    +                $sql.= ", ".$quantity;
    +                $sql.= ", ".$user->id;
    +                $sql.= ", 0";
    +                $sql.= ")";
    +
    +                if ($this->db->query($sql)) {
    +                    $this->product_fourn_price_id = $this->db->last_insert_id(MAIN_DB_PREFIX."product_fournisseur_price");
    +                    return 1;
    +                }
    +                else
    +                {
    +                    $this->error=$this->db->lasterror();
    +                    return -1;
    +                }
    +            }
    +            // If the supplier price already exists for this product and quantity
    +            else
    +            {
    +                $this->product_fourn_price_id = $obj->rowid;
    +                return 0;
    +            }
    +        }
    +        else
    +        {
    +            $this->error=$this->db->lasterror();
    +            return -2;
    +        }
    +    }
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Renvoie la liste des fournisseurs du produit/service
    +     *
    +     * @return array        Tableau des id de fournisseur
    +     */
    +    function list_suppliers()
    +    {
    +        // phpcs:enable
    +        global $conf;
    +
    +        $list = array();
    +
    +        $sql = "SELECT DISTINCT p.fk_soc";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as p";
    +        $sql.= " WHERE p.fk_product = ".$this->id;
    +        $sql.= " AND p.entity = ".$conf->entity;
    +
    +        $result = $this->db->query($sql);
    +        if ($result) {
    +            $num = $this->db->num_rows($result);
    +            $i=0;
    +            while ($i < $num)
    +            {
    +                $obj = $this->db->fetch_object($result);
    +                $list[$i] = $obj->fk_soc;
    +                $i++;
    +            }
    +        }
    +
    +        return $list;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Recopie les prix d'un produit/service sur un autre
    +     *
    +     * @param  int $fromId Id product source
    +     * @param  int $toId   Id product target
    +     * @return int                     < 0 if KO, > 0 if OK
    +     */
    +    function clone_price($fromId, $toId)
    +    {
    +        // phpcs:enable
    +        $this->db->begin();
    +
    +        // les prix
    +        $sql = "INSERT ".MAIN_DB_PREFIX."product_price (";
    +        $sql.= " fk_product, date_price, price, tva_tx, localtax1_tx, localtax2_tx, fk_user_author, tosell)";
    +        $sql.= " SELECT ".$toId . ", date_price, price, tva_tx, localtax1_tx, localtax2_tx, fk_user_author, tosell";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product_price ";
    +        $sql.= " WHERE fk_product = ". $fromId;
    +
    +        dol_syslog(get_class($this).'::clone_price', LOG_DEBUG);
    +        if (! $this->db->query($sql)) {
    +            $this->db->rollback();
    +            return -1;
    +        }
    +        $this->db->commit();
    +        return 1;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     * Clone links between products
    +     *
    +     * @param  int $fromId Product id
    +     * @param  int $toId   Product id
    +     * @return int                  <0 if KO, >0 if OK
    +     */
    +    function clone_associations($fromId, $toId)
    +    {
    +        // phpcs:enable
    +        $this->db->begin();
    +
    +        $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'product_association (fk_product_pere, fk_product_fils, qty)';
    +        $sql.= " SELECT ".$toId.", fk_product_fils, qty FROM ".MAIN_DB_PREFIX."product_association";
    +        $sql.= " WHERE fk_product_pere = ".$fromId;
    +
    +        dol_syslog(get_class($this).'::clone_association', LOG_DEBUG);
    +        if (! $this->db->query($sql)) {
    +            $this->db->rollback();
    +            return -1;
    +        }
    +
    +        $this->db->commit();
    +        return 1;
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Recopie les fournisseurs et prix fournisseurs d'un produit/service sur un autre
    +     *
    +     * @param  int $fromId Id produit source
    +     * @param  int $toId   Id produit cible
    +     * @return int                 < 0 si erreur, > 0 si ok
    +     */
    +    function clone_fournisseurs($fromId, $toId)
    +    {
    +        // phpcs:enable
    +        $this->db->begin();
    +
    +        $now=dol_now();
    +
    +        // les fournisseurs
    +        /*$sql = "INSERT ".MAIN_DB_PREFIX."product_fournisseur ("
    +        . " datec, fk_product, fk_soc, ref_fourn, fk_user_author )"
    +        . " SELECT '".$this->db->idate($now)."', ".$toId.", fk_soc, ref_fourn, fk_user_author"
    +        . " FROM ".MAIN_DB_PREFIX."product_fournisseur"
    +        . " WHERE fk_product = ".$fromId;
    +
    +        if ( ! $this->db->query($sql ) )
    +        {
    +        $this->db->rollback();
    +        return -1;
    +        }*/
    +
    +        // les prix de fournisseurs.
    +        $sql = "INSERT ".MAIN_DB_PREFIX."product_fournisseur_price (";
    +        $sql.= " datec, fk_product, fk_soc, price, quantity, fk_user)";
    +        $sql.= " SELECT '".$this->db->idate($now)."', ".$toId. ", fk_soc, price, quantity, fk_user";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price";
    +        $sql.= " WHERE fk_product = ".$fromId;
    +
    +        dol_syslog(get_class($this).'::clone_fournisseurs', LOG_DEBUG);
    +        $resql=$this->db->query($sql);
    +        if (! $resql) {
    +            $this->db->rollback();
    +            return -1;
    +        }
    +        else
    +        {
    +            $this->db->commit();
    +            return 1;
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Fonction recursive uniquement utilisee par get_arbo_each_prod, recompose l'arborescence des sousproduits
    +     *     Define value of this->res
    +     *
    +     * @param  array  $prod       Products array
    +     * @param  string $compl_path Directory path of parents to add before
    +     * @param  int    $multiply   Because each sublevel must be multiplicated by parent nb
    +     * @param  int    $level      Init level
    +     * @param  int    $id_parent  Id parent
    +     * @return void
    +     */
    +    function fetch_prod_arbo($prod, $compl_path="", $multiply=1, $level=1, $id_parent=0)
    +    {
    +        // phpcs:enable
    +        global $conf,$langs;
    +
    +        $product = new Product($this->db);
    +        //var_dump($prod);
    +        foreach($prod as $id_product => $desc_pere)    // $id_product is 0 (first call starting with root top) or an id of a sub_product
    +        {
    +            if (is_array($desc_pere))    // If desc_pere is an array, this means it's a child
    +            {
    +                $id=(! empty($desc_pere[0]) ? $desc_pere[0] :'');
    +                $nb=(! empty($desc_pere[1]) ? $desc_pere[1] :'');
    +                $type=(! empty($desc_pere[2]) ? $desc_pere[2] :'');
    +                $label=(! empty($desc_pere[3]) ? $desc_pere[3] :'');
    +                $incdec=!empty($desc_pere[4]) ? $desc_pere[4] : 0;
    +
    +                if ($multiply < 1) { $multiply=1;
    +                }
    +
    +                //print "XXX We add id=".$id." - label=".$label." - nb=".$nb." - multiply=".$multiply." fullpath=".$compl_path.$label."\n";
    +                $this->fetch($id);        // Load product
    +                $this->load_stock('nobatch,novirtual');    // Load stock to get true this->stock_reel
    +                $this->res[]= array(
    +                 'id'=>$id,                    // Id product
    +                 'id_parent'=>$id_parent,
    +                 'ref'=>$this->ref,            // Ref product
    +                 'nb'=>$nb,                    // Nb of units that compose parent product
    +                 'nb_total'=>$nb*$multiply,    // Nb of units for all nb of product
    +                 'stock'=>$this->stock_reel,    // Stock
    +                 'stock_alert'=>$this->seuil_stock_alerte,    // Stock alert
    +                 'label'=>$label,
    +                 'fullpath'=>$compl_path.$label,            // Label
    +                 'type'=>$type,                // Nb of units that compose parent product
    +                 'desiredstock'=>$this->desiredstock,
    +                 'level'=>$level,
    +                 'incdec'=>$incdec,
    +                 'entity'=>$this->entity
    +                );
    +
    +                // Recursive call if there is childs to child
    +                if (is_array($desc_pere['childs'])) {
    +                       //print 'YYY We go down for '.$desc_pere[3]." -> \n";
    +                       $this->fetch_prod_arbo($desc_pere['childs'], $compl_path.$desc_pere[3]." -> ", $desc_pere[1]*$multiply, $level+1, $id);
    +                }
    +            }
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Build the tree of subproducts into an array
    +     *  this->sousprods is loaded by this->get_sousproduits_arbo()
    +     *
    +     * @param  int $multiply Because each sublevel must be multiplicated by parent nb
    +     * @return array                     $this->res
    +     */
    +    function get_arbo_each_prod($multiply=1)
    +    {
    +        // phpcs:enable
    +        $this->res = array();
    +        if (isset($this->sousprods) && is_array($this->sousprods)) {
    +            foreach($this->sousprods as $prod_name => $desc_product)
    +            {
    +                if (is_array($desc_product)) { $this->fetch_prod_arbo($desc_product, "", $multiply, 1, $this->id);
    +                }
    +            }
    +        }
    +        //var_dump($this->res);
    +        return $this->res;
    +    }
    +
    +    /**
    +     *  Return all parent products for current product (first level only)
    +     *
    +     * @return int            Nb of father + child
    +     */
    +    public function hasFatherOrChild()
    +    {
    +        $nb = 0;
    +
    +        $sql = "SELECT COUNT(pa.rowid) as nb";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product_association as pa";
    +        $sql.= " WHERE pa.fk_product_fils = ".$this->id." OR pa.fk_product_pere = ".$this->id;
    +        $resql = $this->db->query($sql);
    +        if ($resql) {
    +            $obj = $this->db->fetch_object($resql);
    +            if ($obj) { $nb = $obj->nb;
    +            }
    +        }
    +        else
    +        {
    +            return -1;
    +        }
    +
    +        return $nb;
    +    }
    +
    +    /**
    +     * Return if a product has variants or not
    +     *
    +     * @return int        Number of variants
    +     */
    +    public function hasVariants()
    +    {
    +        $nb = 0;
    +        $sql = "SELECT count(rowid) as nb FROM ".MAIN_DB_PREFIX."product_attribute_combination WHERE fk_product_parent = ".$this->id;
    +        $sql.= " AND entity IN (".getEntity('product').")";
    +
    +        $resql = $this->db->query($sql);
    +        if ($resql) {
    +            $obj = $this->db->fetch_object($resql);
    +            if ($obj) { $nb = $obj->nb;
    +            }
    +        }
    +
    +        return $nb;
    +    }
    +
    +
    +    /**
    +     * Return if loaded product is a variant
    +     *
    +     * @return int
    +     */
    +    public function isVariant()
    +    {
    +        global $conf;
    +        if (!empty($conf->variants->enabled)) {
    +            $sql = "SELECT rowid FROM " . MAIN_DB_PREFIX . "product_attribute_combination WHERE fk_product_child = " . $this->id . " AND entity IN (" . getEntity('product') . ")";
    +
    +            $query = $this->db->query($sql);
    +
    +            if ($query) {
    +                if (!$this->db->num_rows($query)) {
    +                    return false;
    +                }
    +                return true;
    +            } else {
    +                dol_print_error($this->db);
    +                return -1;
    +            }
    +        } else {
    +            return false;
    +        }
    +    }
    +
    +    /**
    +     *  Return all parent products for current product (first level only)
    +     *
    +     * @return array         Array of product
    +     */
    +    public function getFather()
    +    {
    +        $sql = "SELECT p.rowid, p.label as label, p.ref as ref, pa.fk_product_pere as id, p.fk_product_type, pa.qty, pa.incdec, p.entity";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product_association as pa,";
    +        $sql.= " ".MAIN_DB_PREFIX."product as p";
    +        $sql.= " WHERE p.rowid = pa.fk_product_pere";
    +        $sql.= " AND pa.fk_product_fils = ".$this->id;
    +
    +        $res = $this->db->query($sql);
    +        if ($res) {
    +            $prods = array ();
    +            while ($record = $this->db->fetch_array($res))
    +            {
    +                // $record['id'] = $record['rowid'] = id of father
    +                $prods[$record['id']]['id'] = $record['rowid'];
    +                $prods[$record['id']]['ref'] = $record['ref'];
    +                $prods[$record['id']]['label'] = $record['label'];
    +                $prods[$record['id']]['qty'] = $record['qty'];
    +                $prods[$record['id']]['incdec'] = $record['incdec'];
    +                $prods[$record['id']]['fk_product_type'] =  $record['fk_product_type'];
    +                $prods[$record['id']]['entity'] =  $record['entity'];
    +            }
    +            return $prods;
    +        }
    +        else
    +        {
    +            dol_print_error($this->db);
    +            return -1;
    +        }
    +    }
    +
    +
    +    /**
    +     *  Return childs of product $id
    +     *
    +     * @param  int $id             Id of product to search childs of
    +     * @param  int $firstlevelonly Return only direct child
    +     * @param  int $level          Level of recursing call (start to 1)
    +     * @return array                       Return array(prodid=>array(0=prodid, 1=>qty, 2=> ...)
    +     */
    +    public function getChildsArbo($id, $firstlevelonly=0, $level=1)
    +    {
    +        global $alreadyfound;
    +
    +        $sql = "SELECT p.rowid, p.label as label, pa.qty as qty, pa.fk_product_fils as id, p.fk_product_type, pa.incdec";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product as p";
    +        $sql.= ", ".MAIN_DB_PREFIX."product_association as pa";
    +        $sql.= " WHERE p.rowid = pa.fk_product_fils";
    +        $sql.= " AND pa.fk_product_pere = ".$id;
    +        $sql.= " AND pa.fk_product_fils != ".$id;    // This should not happens, it is to avoid infinite loop if it happens
    +
    +        dol_syslog(get_class($this).'::getChildsArbo id='.$id.' level='.$level, LOG_DEBUG);
    +
    +        if ($level == 1) { $alreadyfound=array($id=>1);    // We init array of found object to start of tree, so if we found it later (should not happened), we stop immediatly
    +        }
    +        // Protection against infinite loop
    +        if ($level > 30) { return array();
    +        }
    +
    +        $res  = $this->db->query($sql);
    +        if ($res) {
    +            $prods = array();
    +            while ($rec = $this->db->fetch_array($res))
    +            {
    +                if (! empty($alreadyfound[$rec['rowid']])) {
    +                    dol_syslog(get_class($this).'::getChildsArbo the product id='.$rec['rowid'].' was already found at a higher level in tree. We discard to avoid infinite loop', LOG_WARNING);
    +                    continue;
    +                }
    +                $alreadyfound[$rec['rowid']]=1;
    +                $prods[$rec['rowid']]= array(
    +                 0=>$rec['rowid'],
    +                 1=>$rec['qty'],
    +                 2=>$rec['fk_product_type'],
    +                 3=>$this->db->escape($rec['label']),
    +                 4=>$rec['incdec']
    +                );
    +                //$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty'],2=>$rec['fk_product_type']);
    +                //$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty']);
    +                if (empty($firstlevelonly)) {
    +                       $listofchilds=$this->getChildsArbo($rec['rowid'], 0, $level + 1);
    +                    foreach($listofchilds as $keyChild => $valueChild)
    +                       {
    +                        $prods[$rec['rowid']]['childs'][$keyChild] = $valueChild;
    +                    }
    +                }
    +            }
    +
    +            return $prods;
    +        }
    +        else
    +        {
    +            dol_print_error($this->db);
    +            return -1;
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *     Return tree of all subproducts for product. Tree contains id, name and quantity.
    +     *     Set this->sousprods
    +     *
    +     * @return void
    +     */
    +    function get_sousproduits_arbo()
    +    {
    +        // phpcs:enable
    +        $parent=array();
    +
    +        foreach($this->getChildsArbo($this->id) as $keyChild => $valueChild)    // Warning. getChildsArbo can call getChildsArbo recursively. Starting point is $value[0]=id of product
    +        {
    +            $parent[$this->label][$keyChild] = $valueChild;
    +        }
    +        foreach($parent as $key => $value)        // key=label, value is array of childs
    +        {
    +            $this->sousprods[$key] = $value;
    +        }
    +    }
    +
    +    /**
    +     *    Return clicable link of object (with eventually picto)
    +     *
    +     * @param  int    $withpicto             Add picto into link
    +     * @param  string $option                Where point the link ('stock', 'composition', 'category', 'supplier', '')
    +     * @param  int    $maxlength             Maxlength of ref
    +     * @param  int    $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
    +     * @param  int    $notooltip			 No tooltip
    +     * @return string                                String with URL
    +     */
    +    public function getNomUrl($withpicto=0, $option='', $maxlength=0, $save_lastsearch_value=-1, $notooltip=0)
    +    {
    +        global $conf, $langs, $hookmanager;
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
    +
    +        $result='';
    +        $newref=$this->ref;
    +        if ($maxlength) { $newref=dol_trunc($newref, $maxlength, 'middle');
    +        }
    +
    +        if ($this->type == Product::TYPE_PRODUCT) { $label = '<u>' . $langs->trans("ShowProduct") . '</u>';
    +        }
    +        if ($this->type == Product::TYPE_SERVICE) { $label = '<u>' . $langs->trans("ShowService") . '</u>';
    +        }
    +        if (! empty($this->ref)) {
    +            $label .= '<br><b>' . $langs->trans('ProductRef') . ':</b> ' . $this->ref;
    +        }
    +        if (! empty($this->label)) {
    +            $label .= '<br><b>' . $langs->trans('ProductLabel') . ':</b> ' . $this->label;
    +        }
    +
    +        if ($this->type == Product::TYPE_PRODUCT) {
    +            if ($this->weight) {  $label.="<br><b>".$langs->trans("Weight").'</b>: '.$this->weight.' '.measuring_units_string($this->weight_units, "weight");
    +            }
    +            if ($this->length) {  $label.="<br><b>".$langs->trans("Length").'</b>: '.$this->length.' '.measuring_units_string($this->length_units, 'length');
    +            }
    +            if ($this->surface) { $label.="<br><b>".$langs->trans("Surface").'</b>: '.$this->surface.' '.measuring_units_string($this->surface_units, 'surface');
    +            }
    +            if ($this->volume) {  $label.="<br><b>".$langs->trans("Volume").'</b>: '.$this->volume.' '.measuring_units_string($this->volume_units, 'volume');
    +            }
    +        }
    +
    +        if ($this->type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES)) {
    +            if (! empty($conf->productbatch->enabled)) {
    +                   $langs->load("productbatch");
    +                $label.="<br><b>".$langs->trans("ManageLotSerial").'</b>: '.$this->getLibStatut(0, 2);
    +            }
    +        }
    +        //if ($this->type == Product::TYPE_SERVICE)
    +        //{
                 //
    +        //}
    +        if (! empty($conf->accounting->enabled) && $this->status) {
    +            include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
    +            $label.= '<br><b>' . $langs->trans('ProductAccountancySellCode') . ':</b> '. length_accountg($this->accountancy_code_sell);
    +            $label.= '<br><b>' . $langs->trans('ProductAccountancySellIntraCode') . ':</b> '. length_accountg($this->accountancy_code_sell_export);
    +            $label.= '<br><b>' . $langs->trans('ProductAccountancySellExportCode') . ':</b> '. length_accountg($this->accountancy_code_sell_intra);
             }
    -        if (! empty($conf->accounting->enabled) && $this->status)
    -        {
    -        	include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
    -        	$label.= '<br><b>' . $langs->trans('ProductAccountancySellCode') . ':</b> '. length_accountg($this->accountancy_code_sell);
    -        	$label.= '<br><b>' . $langs->trans('ProductAccountancySellIntraCode') . ':</b> '. length_accountg($this->accountancy_code_sell_export);
    -        	$label.= '<br><b>' . $langs->trans('ProductAccountancySellExportCode') . ':</b> '. length_accountg($this->accountancy_code_sell_intra);
    +        if (! empty($conf->accounting->enabled) && $this->status_buy) {
    +            include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
    +            $label.= '<br><b>' . $langs->trans('ProductAccountancyBuyCode') . ':</b> '. length_accountg($this->accountancy_code_buy);
             }
    -        if (! empty($conf->accounting->enabled) && $this->status_buy)
    -        {
    -        	include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
    -        	$label.= '<br><b>' . $langs->trans('ProductAccountancyBuyCode') . ':</b> '. length_accountg($this->accountancy_code_buy);
    -        }
    -        if (! empty($this->entity))
    -        {
    +        if (! empty($this->entity)) {
                 $tmpphoto = $this->show_photos('product', $conf->product->multidir_output[$this->entity], 1, 1, 0, 0, 0, 80);
    -            if ($this->nbphoto > 0) $label .= '<br>' . $tmpphoto;
    +            if ($this->nbphoto > 0) { $label .= '<br>' . $tmpphoto;
    +            }
             }
     
    -		$linkclose='';
    -		if (empty($notooltip))
    -		{
    -		    if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
    -		    {
    -		        $label=$langs->trans("ShowOrder");
    -		        $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    -		    }
    +        $linkclose='';
    +        if (empty($notooltip)) {
    +            if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
    +                $label=$langs->trans("ShowProduct");
    +                $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    +            }
     
    -		    $linkclose.= ' title="'.dol_escape_htmltag($label, 1, 1).'"';
    -		    $linkclose.= ' class="classfortooltip"';
    +            $linkclose.= ' title="'.dol_escape_htmltag($label, 1, 1).'"';
    +            $linkclose.= ' class="classfortooltip"';
     
    -		    /*
    -	        $hookmanager->initHooks(array('productdao'));
    -	        $parameters=array('id'=>$this->id);
    -	        $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    -	        if ($reshook > 0) $linkclose = $hookmanager->resPrint;
    -	        */
    -		}
    +            /*
    +            $hookmanager->initHooks(array('productdao'));
    +            $parameters=array('id'=>$this->id);
    +            $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +            if ($reshook > 0) $linkclose = $hookmanager->resPrint;
    +            */
    +        }
     
             if ($option == 'supplier' || $option == 'category') {
                 $url = DOL_URL_ROOT.'/product/fournisseurs.php?id='.$this->id;
    @@ -3628,12 +3801,13 @@ class Product extends CommonObject
                 $url = DOL_URL_ROOT.'/product/card.php?id='.$this->id;
             }
     
    -        if ($option !== 'nolink')
    -        {
    -        	// Add param to save lastsearch_values or not
    -        	$add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    -        	if ($save_lastsearch_value == -1 && preg_match('/list\.php/',$_SERVER["PHP_SELF"])) $add_save_lastsearch_values=1;
    -        	if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1';
    +        if ($option !== 'nolink') {
    +            // Add param to save lastsearch_values or not
    +            $add_save_lastsearch_values=($save_lastsearch_value == 1 ? 1 : 0);
    +            if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) { $add_save_lastsearch_values=1;
    +            }
    +            if ($add_save_lastsearch_values) { $url.='&save_lastsearch_values=1';
    +            }
             }
     
             $linkstart = '<a href="'.$url.'"';
    @@ -3641,715 +3815,738 @@ class Product extends CommonObject
             $linkend='</a>';
     
             $result.=$linkstart;
    -		if ($withpicto) {
    -			if ($this->type == Product::TYPE_PRODUCT) $result.=(img_object(($notooltip?'':$label), 'product', ($notooltip?'class="paddingright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1));
    -			if ($this->type == Product::TYPE_SERVICE) $result.=(img_object(($notooltip?'':$label), 'service',  ($notooltip?'class="paddinright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1));
    -		}
    -		$result.= $newref;
    -		$result.= $linkend;
    +        if ($withpicto) {
    +            if ($this->type == Product::TYPE_PRODUCT) { $result.=(img_object(($notooltip?'':$label), 'product', ($notooltip?'class="paddingright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1));
    +            }
    +            if ($this->type == Product::TYPE_SERVICE) { $result.=(img_object(($notooltip?'':$label), 'service', ($notooltip?'class="paddinright"':'class="paddingright classfortooltip"'), 0, 0, $notooltip?0:1));
    +            }
    +        }
    +        $result.= $newref;
    +        $result.= $linkend;
     
    -		global $action;
    -		$hookmanager->initHooks(array('productdao'));
    -		$parameters=array('id'=>$this->id, 'getnomurl'=>$result);
    -		$reshook=$hookmanager->executeHooks('getNomUrl',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    -		if ($reshook > 0) $result = $hookmanager->resPrint;
    -		else $result .= $hookmanager->resPrint;
    +        global $action;
    +        $hookmanager->initHooks(array('productdao'));
    +        $parameters=array('id'=>$this->id, 'getnomurl'=>$result);
    +        $reshook=$hookmanager->executeHooks('getNomUrl', $parameters, $this, $action);    // Note that $action and $object may have been modified by some hooks
    +        if ($reshook > 0) { $result = $hookmanager->resPrint;
    +        } else { $result .= $hookmanager->resPrint;
    +        }
     
    -		return $result;
    -	}
    +        return $result;
    +    }
     
     
    -	/**
    -	 *  Create a document onto disk according to template module.
    -	 *
    -	 * 	@param	    string		$modele			Force model to use ('' to not force)
    -	 * 	@param		Translate	$outputlangs	Object langs to use for output
    -	 *  @param      int			$hidedetails    Hide details of lines
    -	 *  @param      int			$hidedesc       Hide description
    -	 *  @param      int			$hideref        Hide ref
    -	 * 	@return     int         				0 if KO, 1 if OK
    -	 */
    -	public function generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0)
    -	{
    -		global $conf,$user,$langs;
    +    /**
    +     *  Create a document onto disk according to template module.
    +     *
    +     * @param  string    $modele      Force model to use ('' to not force)
    +     * @param  Translate $outputlangs Object langs to use for output
    +     * @param  int       $hidedetails Hide details of lines
    +     * @param  int       $hidedesc    Hide description
    +     * @param  int       $hideref     Hide ref
    +     * @return int                         0 if KO, 1 if OK
    +     */
    +    public function generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0)
    +    {
    +        global $conf,$user,$langs;
     
    -		$langs->load("products");
    +        $langs->load("products");
     
    -		// Positionne le modele sur le nom du modele a utiliser
    -		if (! dol_strlen($modele))
    -		{
    -			if (! empty($conf->global->PRODUCT_ADDON_PDF))
    -			{
    -				$modele = $conf->global->PRODUCT_ADDON_PDF;
    -			}
    -			else
    -			{
    -				$modele = 'strato';
    -			}
    -		}
    +        // Positionne le modele sur le nom du modele a utiliser
    +        if (! dol_strlen($modele)) {
    +            if (! empty($conf->global->PRODUCT_ADDON_PDF)) {
    +                $modele = $conf->global->PRODUCT_ADDON_PDF;
    +            }
    +            else
    +            {
    +                $modele = 'strato';
    +            }
    +        }
     
    -		$modelpath = "core/modules/product/doc/";
    +        $modelpath = "core/modules/product/doc/";
     
    -		return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref);
    -	}
    +        return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref);
    +    }
     
    -	/**
    -	 *	Return label of status of object
    -	 *
    -	 *	@param      int	$mode       0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
    -	 *	@param      int	$type       0=Sell, 1=Buy, 2=Batch Number management
    -	 *	@return     string      	Label of status
    -	 */
    -	function getLibStatut($mode=0, $type=0)
    -	{
    -		switch ($type)
    -		{
    -			case 0:
    -				return $this->LibStatut($this->status,$mode,$type);
    -			case 1:
    -				return $this->LibStatut($this->status_buy,$mode,$type);
    -			case 2:
    -				return $this->LibStatut($this->status_batch,$mode,$type);
    -			default:
    -				//Simulate previous behavior but should return an error string
    -				return $this->LibStatut($this->status_buy,$mode,$type);
    -		}
    -	}
    +    /**
    +     *    Return label of status of object
    +     *
    +     * @param  int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
    +     * @param  int $type 0=Sell, 1=Buy, 2=Batch Number management
    +     * @return string          Label of status
    +     */
    +    public function getLibStatut($mode=0, $type=0)
    +    {
    +        switch ($type)
    +        {
    +        case 0:
    +            return $this->LibStatut($this->status, $mode, $type);
    +        case 1:
    +            return $this->LibStatut($this->status_buy, $mode, $type);
    +        case 2:
    +            return $this->LibStatut($this->status_batch, $mode, $type);
    +        default:
    +            //Simulate previous behavior but should return an error string
    +            return $this->LibStatut($this->status_buy, $mode, $type);
    +        }
    +    }
     
    -	/**
    -	 *	Return label of a given status
    -	 *
    -	 *	@param      int		$status     Statut
    -	 *	@param      int		$mode       0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
    -	 *	@param      int		$type       0=Status "to sell", 1=Status "to buy", 2=Status "to Batch"
    -	 *	@return     string      		Label of status
    -	 */
    -	function LibStatut($status,$mode=0,$type=0)
    -	{
    -		global $conf, $langs;
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *    Return label of a given status
    +     *
    +     * @param  int $status Statut
    +     * @param  int $mode   0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
    +     * @param  int $type   0=Status "to sell", 1=Status "to buy", 2=Status "to Batch"
    +     * @return string              Label of status
    +     */
    +    function LibStatut($status,$mode=0,$type=0)
    +    {
    +        // phpcs:enable
    +        global $conf, $langs;
     
    -		$langs->load('products');
    -		if (! empty($conf->productbatch->enabled)) $langs->load("productbatch");
    +        $langs->load('products');
    +        if (! empty($conf->productbatch->enabled)) { $langs->load("productbatch");
    +        }
     
    -		if ($type == 2)
    -		{
    -			switch ($mode)
    -			{
    -				case 0:
    -					return ($status == 0 ? $langs->trans('ProductStatusNotOnBatch') : $langs->trans('ProductStatusOnBatch'));
    -				case 1:
    -					return ($status == 0 ? $langs->trans('ProductStatusNotOnBatchShort') : $langs->trans('ProductStatusOnBatchShort'));
    -				case 2:
    -					return $this->LibStatut($status,3,2).' '.$this->LibStatut($status,1,2);
    -				case 3:
    -					if ($status == 0)
    -					{
    -						return img_picto($langs->trans('ProductStatusNotOnBatch'),'statut5');
    -					}
    -					return img_picto($langs->trans('ProductStatusOnBatch'),'statut4');
    -				case 4:
    -					return $this->LibStatut($status,3,2).' '.$this->LibStatut($status,0,2);
    -				case 5:
    -					return $this->LibStatut($status,1,2).' '.$this->LibStatut($status,3,2);
    -				default:
    -					return $langs->trans('Unknown');
    -			}
    -		}
    -		if ($mode == 0)
    -		{
    -			if ($status == 0) return ($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort'));
    -			if ($status == 1) return ($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort'));
    -		}
    -		if ($mode == 1)
    -		{
    -			if ($status == 0) return ($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy'));
    -			if ($status == 1) return ($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy'));
    -		}
    -		if ($mode == 2)
    -		{
    -			if ($status == 0) return img_picto($langs->trans('ProductStatusNotOnSell'),'statut5', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort'));
    -			if ($status == 1) return img_picto($langs->trans('ProductStatusOnSell'),'statut4', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort'));
    -		}
    -		if ($mode == 3)
    -		{
    -			if ($status == 0) return img_picto(($type==0 ? $langs->trans('ProductStatusNotOnSell') : $langs->trans('ProductStatusNotOnBuy')),'statut5', 'class="pictostatus"');
    -			if ($status == 1) return img_picto(($type==0 ? $langs->trans('ProductStatusOnSell') : $langs->trans('ProductStatusOnBuy')),'statut4', 'class="pictostatus"');
    -		}
    -		if ($mode == 4)
    -		{
    -			if ($status == 0) return img_picto($langs->trans('ProductStatusNotOnSell'),'statut5', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy'));
    -			if ($status == 1) return img_picto($langs->trans('ProductStatusOnSell'),'statut4', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy'));
    -		}
    -		if ($mode == 5)
    -		{
    -			if ($status == 0) return ($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy')), 'statut5', 'class="pictostatus"');
    -			if ($status == 1) return ($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy')),'statut4', 'class="pictostatus"');
    -		}
    -		if ($mode == 6)
    -		{
    -			if ($status == 0) return ($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy')), 'statut5', 'class="pictostatus"');
    -			if ($status == 1) return ($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy')),'statut4', 'class="pictostatus"');
    -		}
    -		return $langs->trans('Unknown');
    -	}
    +        if ($type == 2) {
    +            switch ($mode)
    +            {
    +            case 0:
    +                return ($status == 0 ? $langs->trans('ProductStatusNotOnBatch') : $langs->trans('ProductStatusOnBatch'));
    +            case 1:
    +                return ($status == 0 ? $langs->trans('ProductStatusNotOnBatchShort') : $langs->trans('ProductStatusOnBatchShort'));
    +            case 2:
    +                return $this->LibStatut($status, 3, 2).' '.$this->LibStatut($status, 1, 2);
    +            case 3:
    +                if ($status == 0) {
    +                    return img_picto($langs->trans('ProductStatusNotOnBatch'), 'statut5');
    +                }
    +                return img_picto($langs->trans('ProductStatusOnBatch'), 'statut4');
    +            case 4:
    +                return $this->LibStatut($status, 3, 2).' '.$this->LibStatut($status, 0, 2);
    +            case 5:
    +                return $this->LibStatut($status, 1, 2).' '.$this->LibStatut($status, 3, 2);
    +            default:
    +                return $langs->trans('Unknown');
    +            }
    +        }
    +        if ($mode == 0) {
    +            if ($status == 0) { return ($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort'));
    +            } elseif ($status == 1) { return ($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort'));
    +            }
    +        }
    +        elseif ($mode == 1) {
    +            if ($status == 0) { return ($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy'));
    +            } elseif ($status == 1) { return ($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy'));
    +            }
    +        }
    +        elseif ($mode == 2) {
    +            if ($status == 0) { return img_picto($langs->trans('ProductStatusNotOnSell'), 'statut5', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort'));
    +            } elseif ($status == 1) { return img_picto($langs->trans('ProductStatusOnSell'), 'statut4', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort'));
    +            }
    +        }
    +        elseif ($mode == 3) {
    +            if ($status == 0) { return img_picto(($type==0 ? $langs->trans('ProductStatusNotOnSell') : $langs->trans('ProductStatusNotOnBuy')), 'statut5', 'class="pictostatus"');
    +            } elseif ($status == 1) { return img_picto(($type==0 ? $langs->trans('ProductStatusOnSell') : $langs->trans('ProductStatusOnBuy')), 'statut4', 'class="pictostatus"');
    +            }
    +        }
    +        elseif ($mode == 4) {
    +            if ($status == 0) { return img_picto($langs->trans('ProductStatusNotOnSell'), 'statut5', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy'));
    +            } elseif ($status == 1) { return img_picto($langs->trans('ProductStatusOnSell'), 'statut4', 'class="pictostatus"').' '.($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy'));
    +            }
    +        }
    +        elseif ($mode == 5) {
    +            if ($status == 0) { return ($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy')), 'statut5', 'class="pictostatus"');
    +            } elseif ($status == 1) { return ($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy')), 'statut4', 'class="pictostatus"');
    +            }
    +        }
    +        elseif ($mode == 6) {
    +            if ($status == 0) { return ($type==0 ? $langs->trans('ProductStatusNotOnSellShort'):$langs->trans('ProductStatusNotOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusNotOnSell'):$langs->trans('ProductStatusNotOnBuy')), 'statut5', 'class="pictostatus"');
    +            } elseif ($status == 1) { return ($type==0 ? $langs->trans('ProductStatusOnSellShort'):$langs->trans('ProductStatusOnBuyShort')).' '.img_picto(($type==0 ? $langs->trans('ProductStatusOnSell'):$langs->trans('ProductStatusOnBuy')), 'statut4', 'class="pictostatus"');
    +            }
    +        }
    +        return $langs->trans('Unknown');
    +    }
     
     
    -	/**
    -	 *  Retourne le libelle du finished du produit
    -	 *
    -	 *  @return     string		Libelle
    -	 */
    -	function getLibFinished()
    -	{
    -		global $langs;
    -		$langs->load('products');
    +    /**
    +     *  Retourne le libelle du finished du produit
    +     *
    +     * @return string        Libelle
    +     */
    +    function getLibFinished()
    +    {
    +        global $langs;
    +        $langs->load('products');
     
    -		if ($this->finished == '0') return $langs->trans("RowMaterial");
    -		if ($this->finished == '1') return $langs->trans("Finished");
    -		return '';
    -	}
    +        if ($this->finished == '0') { return $langs->trans("RowMaterial");
    +        }
    +        if ($this->finished == '1') { return $langs->trans("Finished");
    +        }
    +        return '';
    +    }
     
     
    -	/**
    -	 *  Adjust stock in a warehouse for product
    -	 *
    -	 *  @param  	User	$user           user asking change
    -	 *  @param  	int		$id_entrepot    id of warehouse
    -	 *  @param  	double	$nbpiece        nb of units
    -	 *  @param  	int		$movement       0 = add, 1 = remove
    -	 * 	@param		string	$label			Label of stock movement
    -	 * 	@param		double	$price			Unit price HT of product, used to calculate average weighted price (PMP in french). If 0, average weighted price is not changed.
    -	 *  @param		string	$inventorycode	Inventory code
    -	 *  @param  	string	$origin_element Origin element type
    -	 *  @param  	int		$origin_id      Origin id of element
    -	 * 	@return     int     				<0 if KO, >0 if OK
    -	 */
    -	function correct_stock($user, $id_entrepot, $nbpiece, $movement, $label='', $price=0, $inventorycode='', $origin_element='', $origin_id=null)
    -	{
    -		if ($id_entrepot)
    -		{
    -			$this->db->begin();
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Adjust stock in a warehouse for product
    +     *
    +     * @param  User   $user           user asking change
    +     * @param  int    $id_entrepot    id of warehouse
    +     * @param  double $nbpiece        nb of units
    +     * @param  int    $movement       0 = add, 1 = remove
    +     * @param  string $label          Label of stock movement
    +     * @param  double $price          Unit price HT of product, used to calculate average weighted price (PMP in french). If 0, average weighted price is not changed.
    +     * @param  string $inventorycode  Inventory code
    +     * @param  string $origin_element Origin element type
    +     * @param  int    $origin_id      Origin id of element
    +     * @return int                     <0 if KO, >0 if OK
    +     */
    +    function correct_stock($user, $id_entrepot, $nbpiece, $movement, $label='', $price=0, $inventorycode='', $origin_element='', $origin_id=null)
    +    {
    +        // phpcs:enable
    +        if ($id_entrepot) {
    +            $this->db->begin();
     
    -			require_once DOL_DOCUMENT_ROOT .'/product/stock/class/mouvementstock.class.php';
    +            include_once DOL_DOCUMENT_ROOT .'/product/stock/class/mouvementstock.class.php';
     
    -			$op[0] = "+".trim($nbpiece);
    -			$op[1] = "-".trim($nbpiece);
    +            $op[0] = "+".trim($nbpiece);
    +            $op[1] = "-".trim($nbpiece);
     
    -			$movementstock=new MouvementStock($this->db);
    -			$movementstock->setOrigin($origin_element, $origin_id);
    -			$result=$movementstock->_create($user,$this->id,$id_entrepot,$op[$movement],$movement,$price,$label,$inventorycode);
    +            $movementstock=new MouvementStock($this->db);
    +            $movementstock->setOrigin($origin_element, $origin_id);
    +            $result=$movementstock->_create($user, $this->id, $id_entrepot, $op[$movement], $movement, $price, $label, $inventorycode);
     
    -			if ($result >= 0)
    -			{
    -				$this->db->commit();
    -				return 1;
    -			}
    -			else
    -			{
    -			    $this->error=$movementstock->error;
    -			    $this->errors=$movementstock->errors;
    +            if ($result >= 0) {
    +                $this->db->commit();
    +                return 1;
    +            }
    +            else
    +            {
    +                $this->error=$movementstock->error;
    +                $this->errors=$movementstock->errors;
     
    -				$this->db->rollback();
    -				return -1;
    -			}
    -		}
    -	}
    +                $this->db->rollback();
    +                return -1;
    +            }
    +        }
    +    }
     
    -	/**
    -	 *  Adjust stock in a warehouse for product with batch number
    -	 *
    -	 *  @param  	User	$user           user asking change
    -	 *  @param  	int		$id_entrepot    id of warehouse
    -	 *  @param  	double	$nbpiece        nb of units
    -	 *  @param  	int		$movement       0 = add, 1 = remove
    -	 * 	@param		string	$label			Label of stock movement
    -	 * 	@param		double	$price			Price to use for stock eval
    -	 * 	@param		date	$dlc			eat-by date
    -	 * 	@param		date	$dluo			sell-by date
    -	 * 	@param		string	$lot			Lot number
    -	 *  @param		string	$inventorycode	Inventory code
    -	 *  @param  	string	$origin_element Origin element type
    -	 *  @param  	int		$origin_id      Origin id of element
    -	 * 	@return     int     				<0 if KO, >0 if OK
    -	 */
    -	function correct_stock_batch($user, $id_entrepot, $nbpiece, $movement, $label='', $price=0, $dlc='', $dluo='',$lot='', $inventorycode='', $origin_element='', $origin_id=null)
    -	{
    -		if ($id_entrepot)
    -		{
    -			$this->db->begin();
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Adjust stock in a warehouse for product with batch number
    +     *
    +     * @param  User   $user           user asking change
    +     * @param  int    $id_entrepot    id of warehouse
    +     * @param  double $nbpiece        nb of units
    +     * @param  int    $movement       0 = add, 1 = remove
    +     * @param  string $label          Label of stock movement
    +     * @param  double $price          Price to use for stock eval
    +     * @param  date   $dlc            eat-by date
    +     * @param  date   $dluo           sell-by date
    +     * @param  string $lot            Lot number
    +     * @param  string $inventorycode  Inventory code
    +     * @param  string $origin_element Origin element type
    +     * @param  int    $origin_id      Origin id of element
    +     * @return int                     <0 if KO, >0 if OK
    +     */
    +    function correct_stock_batch($user, $id_entrepot, $nbpiece, $movement, $label='', $price=0, $dlc='', $dluo='',$lot='', $inventorycode='', $origin_element='', $origin_id=null)
    +    {
    +        // phpcs:enable
    +        if ($id_entrepot) {
    +            $this->db->begin();
     
    -			require_once DOL_DOCUMENT_ROOT .'/product/stock/class/mouvementstock.class.php';
    +            include_once DOL_DOCUMENT_ROOT .'/product/stock/class/mouvementstock.class.php';
     
    -			$op[0] = "+".trim($nbpiece);
    -			$op[1] = "-".trim($nbpiece);
    +            $op[0] = "+".trim($nbpiece);
    +            $op[1] = "-".trim($nbpiece);
     
    -			$movementstock=new MouvementStock($this->db);
    -			$movementstock->setOrigin($origin_element, $origin_id);
    -			$result=$movementstock->_create($user,$this->id,$id_entrepot,$op[$movement],$movement,$price,$label,$inventorycode,'',$dlc,$dluo,$lot);
    +            $movementstock=new MouvementStock($this->db);
    +            $movementstock->setOrigin($origin_element, $origin_id);
    +            $result=$movementstock->_create($user, $this->id, $id_entrepot, $op[$movement], $movement, $price, $label, $inventorycode, '', $dlc, $dluo, $lot);
     
    -			if ($result >= 0)
    -			{
    -				$this->db->commit();
    -				return 1;
    -			}
    -			else
    -			{
    -			    $this->error=$movementstock->error;
    -			    $this->errors=$movementstock->errors;
    +            if ($result >= 0) {
    +                $this->db->commit();
    +                return 1;
    +            }
    +            else
    +            {
    +                $this->error=$movementstock->error;
    +                $this->errors=$movementstock->errors;
     
    -				$this->db->rollback();
    -				return -1;
    -			}
    -		}
    -	}
    +                $this->db->rollback();
    +                return -1;
    +            }
    +        }
    +    }
     
    -	/**
    -	 *    Load information about stock of a product into ->stock_reel, ->stock_warehouse[] (including stock_warehouse[idwarehouse]->detail_batch for batch products)
    -	 *    This function need a lot of load. If you use it on list, use a cache to execute it once for each product id.
    -	 *    If ENTREPOT_EXTRA_STATUS set, filtering on warehouse status possible.
    -	 *
    -	 *    @param      string   $option 		'' = Load all stock info, also from closed and internal warehouses,
    -	 *										'nobatch' = Do not load batch information,
    -	 *										'novirtual' = Do not load virtual stock,
    -	 *										'warehouseopen' = Load stock from open warehouses only,
    -	 *										'warehouseclosed' = Load stock from closed warehouses only,
    -	 *										'warehouseinternal' = Load stock from warehouses for internal correction/transfer only
    -	 *    @return     int                   < 0 if KO, > 0 if OK
    -	 *    @see		  load_virtual_stock, getBatchInfo
    -	 */
    -	function load_stock($option='')
    -	{
    -		global $conf;
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *    Load information about stock of a product into ->stock_reel, ->stock_warehouse[] (including stock_warehouse[idwarehouse]->detail_batch for batch products)
    +     *    This function need a lot of load. If you use it on list, use a cache to execute it once for each product id.
    +     *    If ENTREPOT_EXTRA_STATUS set, filtering on warehouse status possible.
    +     *
    +     * @param  string $option '' = Load all stock info, also from closed and internal warehouses,
    +     * @return int                   < 0 if KO, > 0 if OK
    +     * @see    load_virtual_stock(), loadBatchInfo()
    +     */
    +    function load_stock($option='')
    +    {
    +        // phpcs:enable
    +        global $conf;
     
    -		$this->stock_reel = 0;
    -		$this->stock_warehouse = array();
    -		$this->stock_theorique = 0;
    +        $this->stock_reel = 0;
    +        $this->stock_warehouse = array();
    +        $this->stock_theorique = 0;
     
    -		$warehouseStatus = array();
    +        $warehouseStatus = array();
     
    -		if (preg_match('/warehouseclosed/', $option))
    -		{
    -			$warehouseStatus[] = Entrepot::STATUS_CLOSED;
    -		}
    -		if (preg_match('/warehouseopen/', $option))
    -		{
    -			$warehouseStatus[] = Entrepot::STATUS_OPEN_ALL;
    -		}
    -		if (preg_match('/warehouseinternal/', $option))
    -		{
    -			$warehouseStatus[] = Entrepot::STATUS_OPEN_INTERNAL;
    -		}
    +        if (preg_match('/warehouseclosed/', $option)) {
    +            $warehouseStatus[] = Entrepot::STATUS_CLOSED;
    +        }
    +        if (preg_match('/warehouseopen/', $option)) {
    +            $warehouseStatus[] = Entrepot::STATUS_OPEN_ALL;
    +        }
    +        if (preg_match('/warehouseinternal/', $option)) {
    +            $warehouseStatus[] = Entrepot::STATUS_OPEN_INTERNAL;
    +        }
     
    -		$sql = "SELECT ps.rowid, ps.reel, ps.fk_entrepot";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps";
    -		$sql.= ", ".MAIN_DB_PREFIX."entrepot as w";
    -		$sql.= " WHERE w.entity IN (".getEntity('stock').")";
    -		$sql.= " AND w.rowid = ps.fk_entrepot";
    -		$sql.= " AND ps.fk_product = ".$this->id;
    -		if ($conf->global->ENTREPOT_EXTRA_STATUS && count($warehouseStatus)) $sql.= " AND w.statut IN (".$this->db->escape(implode(',',$warehouseStatus)).")";
    +        $sql = "SELECT ps.rowid, ps.reel, ps.fk_entrepot";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps";
    +        $sql.= ", ".MAIN_DB_PREFIX."entrepot as w";
    +        $sql.= " WHERE w.entity IN (".getEntity('stock').")";
    +        $sql.= " AND w.rowid = ps.fk_entrepot";
    +        $sql.= " AND ps.fk_product = ".$this->id;
    +        if ($conf->global->ENTREPOT_EXTRA_STATUS && count($warehouseStatus)) { $sql.= " AND w.statut IN (".$this->db->escape(implode(',', $warehouseStatus)).")";
    +        }
     
    -		dol_syslog(get_class($this)."::load_stock", LOG_DEBUG);
    -		$result = $this->db->query($sql);
    -		if ($result)
    -		{
    -			$num = $this->db->num_rows($result);
    -			$i=0;
    -			if ($num > 0)
    -			{
    -				while ($i < $num)
    -				{
    -					$row = $this->db->fetch_object($result);
    -					$this->stock_warehouse[$row->fk_entrepot] = new stdClass();
    -					$this->stock_warehouse[$row->fk_entrepot]->real = $row->reel;
    -					$this->stock_warehouse[$row->fk_entrepot]->id = $row->rowid;
    -					if ((! preg_match('/nobatch/', $option)) && $this->hasbatch()) $this->stock_warehouse[$row->fk_entrepot]->detail_batch=Productbatch::findAll($this->db, $row->rowid, 1, $this->id);
    -					$this->stock_reel+=$row->reel;
    -					$i++;
    -				}
    -			}
    -			$this->db->free($result);
    +        dol_syslog(get_class($this)."::load_stock", LOG_DEBUG);
    +        $result = $this->db->query($sql);
    +        if ($result) {
    +            $num = $this->db->num_rows($result);
    +            $i=0;
    +            if ($num > 0) {
    +                while ($i < $num)
    +                {
    +                    $row = $this->db->fetch_object($result);
    +                    $this->stock_warehouse[$row->fk_entrepot] = new stdClass();
    +                    $this->stock_warehouse[$row->fk_entrepot]->real = $row->reel;
    +                    $this->stock_warehouse[$row->fk_entrepot]->id = $row->rowid;
    +                    if ((! preg_match('/nobatch/', $option)) && $this->hasbatch()) { $this->stock_warehouse[$row->fk_entrepot]->detail_batch=Productbatch::findAll($this->db, $row->rowid, 1, $this->id);
    +                    }
    +                    $this->stock_reel+=$row->reel;
    +                    $i++;
    +                }
    +            }
    +            $this->db->free($result);
     
    -			if (! preg_match('/novirtual/', $option))
    -			{
    -			    $this->load_virtual_stock();		// This also load stats_commande_fournisseur, ...
    -			}
    +            if (! preg_match('/novirtual/', $option)) {
    +                $this->load_virtual_stock();        // This also load stats_commande_fournisseur, ...
    +            }
     
    -			return 1;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->lasterror();
    -			return -1;
    -		}
    -	}
    +            return 1;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->lasterror();
    +            return -1;
    +        }
    +    }
     
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Load value ->stock_theorique of a product. Property this->id must be defined.
     	 *    This function need a lot of load. If you use it on list, use a cache to execute it one for each product id.
     	 *
     	 *    @return   int             < 0 if KO, > 0 if OK
    -	 *    @see		load_stock, getBatchInfo
    +	 *    @see		load_stock(), loadBatchInfo()
     	 */
    -    function load_virtual_stock()
    -    {
    -        global $conf;
    +	function load_virtual_stock()
    +	{
    +		// phpcs:enable
    +		global $conf, $hookmanager, $action;
     
    -        $stock_commande_client=0;
    -        $stock_commande_fournisseur=0;
    -        $stock_sending_client=0;
    -        $stock_reception_fournisseur=0;
    +		$stock_commande_client=0;
    +		$stock_commande_fournisseur=0;
    +		$stock_sending_client=0;
    +		$stock_reception_fournisseur=0;
     
    -        if (! empty($conf->commande->enabled))
    -        {
    -            $result=$this->load_stats_commande(0,'1,2', 1);
    -            if ($result < 0) dol_print_error($this->db,$this->error);
    -            $stock_commande_client=$this->stats_commande['qty'];
    -        }
    -        if (! empty($conf->expedition->enabled))
    -        {
    -            $result=$this->load_stats_sending(0,'1,2', 1);
    -            if ($result < 0) dol_print_error($this->db,$this->error);
    -            $stock_sending_client=$this->stats_expedition['qty'];
    -        }
    -        if (! empty($conf->fournisseur->enabled))
    -        {
    -            $result=$this->load_stats_commande_fournisseur(0,'1,2,3,4', 1);
    -            if ($result < 0) dol_print_error($this->db,$this->error);
    -            $stock_commande_fournisseur=$this->stats_commande_fournisseur['qty'];
    +		if (! empty($conf->commande->enabled))
    +		{
    +			$result=$this->load_stats_commande(0,'1,2', 1);
    +			if ($result < 0) dol_print_error($this->db,$this->error);
    +			$stock_commande_client=$this->stats_commande['qty'];
    +		}
    +		if (! empty($conf->expedition->enabled))
    +		{
    +			$result=$this->load_stats_sending(0,'1,2', 1);
    +			if ($result < 0) dol_print_error($this->db,$this->error);
    +			$stock_sending_client=$this->stats_expedition['qty'];
    +		}
    +		if (! empty($conf->fournisseur->enabled))
    +		{
    +			$result=$this->load_stats_commande_fournisseur(0,'1,2,3,4', 1);
    +			if ($result < 0) dol_print_error($this->db,$this->error);
    +			$stock_commande_fournisseur=$this->stats_commande_fournisseur['qty'];
     
    -            $result=$this->load_stats_reception(0,'4', 1);
    -            if ($result < 0) dol_print_error($this->db,$this->error);
    -            $stock_reception_fournisseur=$this->stats_reception['qty'];
    -        }
    +			$result=$this->load_stats_reception(0,'4', 1);
    +			if ($result < 0) dol_print_error($this->db,$this->error);
    +			$stock_reception_fournisseur=$this->stats_reception['qty'];
    +		}
     
    -        // Stock decrease mode
    -        if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || ! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) {
    -            $this->stock_theorique=$this->stock_reel-$stock_commande_client+$stock_sending_client;
    -        }
    -        if (! empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER)) {
    -            $this->stock_theorique=$this->stock_reel;
    -        }
    -        if (! empty($conf->global->STOCK_CALCULATE_ON_BILL)) {
    -            $this->stock_theorique=$this->stock_reel-$stock_commande_client;
    -        }
    -        // Stock Increase mode
    -        if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)) {
    +		// Stock decrease mode
    +		if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || ! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) {
    +			$this->stock_theorique=$this->stock_reel-$stock_commande_client+$stock_sending_client;
    +		}
    +		if (! empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER)) {
    +			$this->stock_theorique=$this->stock_reel;
    +		}
    +		if (! empty($conf->global->STOCK_CALCULATE_ON_BILL)) {
    +			$this->stock_theorique=$this->stock_reel-$stock_commande_client;
    +		}
    +		// Stock Increase mode
    +		 if (! empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || ! empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) {
                 $this->stock_theorique+=$stock_commande_fournisseur-$stock_reception_fournisseur;
             }
    -        if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER)) {
    -            $this->stock_theorique-=$stock_reception_fournisseur;
    -        }
    -        if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)) {
    -            $this->stock_theorique+=$stock_commande_fournisseur-$stock_reception_fournisseur;
    -        }
    -    }
    +		if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)) {
    +			$this->stock_theorique+=$stock_commande_fournisseur-$stock_reception_fournisseur;
    +		}
    +		if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER)) {
    +			$this->stock_theorique-=$stock_reception_fournisseur;
    +		}
    +		if (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)) {
    +			$this->stock_theorique+=$stock_commande_fournisseur-$stock_reception_fournisseur;
    +		}
    +
    +		if (! is_object($hookmanager)) {
    +			include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
    +			$hookmanager=new HookManager($this->db);
    +		}
    +		$hookmanager->initHooks(array('productdao'));
    +		$parameters=array('id'=>$this->id);
    +		// Note that $action and $object may have been modified by some hooks
    +		$reshook=$hookmanager->executeHooks('loadvirtualstock', $parameters, $this, $action);
    +		if ($reshook > 0) $this->stock_theorique = $hookmanager->resArray['stock_theorique'];
    +
    +		return 1;
    +	}
     
     
    -	/**
    -	 *  Load existing information about a serial
    -	 *
    -	 *	@param		string		$batch		Lot/serial number
    -	 *  @return     array					Array with record into product_batch
    -	 *  @see		load_stock, load_virtual_stock
    -	 */
    +    /**
    +     *  Load existing information about a serial
    +     *
    +     * @param  string $batch Lot/serial number
    +     * @return array                    Array with record into product_batch
    +     * @see    load_stock(), load_virtual_stock()
    +     */
         function loadBatchInfo($batch)
         {
    -    	$result=array();
    +        $result=array();
     
    -    	$sql = "SELECT pb.batch, pb.eatby, pb.sellby, SUM(pb.qty) FROM ".MAIN_DB_PREFIX."product_batch as pb, ".MAIN_DB_PREFIX."product_stock as ps";
    -    	$sql.= " WHERE pb.fk_product_stock = ps.rowid AND ps.fk_product = ".$this->id." AND pb.batch = '".$this->db->escape($batch)."'";
    -    	$sql.= " GROUP BY pb.batch, pb.eatby, pb.sellby";
    -    	dol_syslog(get_class($this)."::loadBatchInfo load first entry found for lot/serial = ".$batch, LOG_DEBUG);
    -    	$resql = $this->db->query($sql);
    -    	if ($resql)
    -    	{
    -    		$num = $this->db->num_rows($resql);
    -    		$i=0;
    -    		while ($i < $num)
    -    		{
    -    			$obj = $this->db->fetch_object($resql);
    -				$result[]=array('batch'=>$batch, 'eatby'=>$this->db->jdate($obj->eatby), 'sellby'=>$this->db->jdate($obj->sellby), 'qty'=>$obj->qty);
    -				$i++;
    -    		}
    -    		return $result;
    -    	}
    -    	else
    -    	{
    -    		dol_print_error($this->db);
    -    		$this->db->rollback();
    -    		return array();
    -    	}
    +        $sql = "SELECT pb.batch, pb.eatby, pb.sellby, SUM(pb.qty) AS qty FROM ".MAIN_DB_PREFIX."product_batch as pb, ".MAIN_DB_PREFIX."product_stock as ps";
    +        $sql.= " WHERE pb.fk_product_stock = ps.rowid AND ps.fk_product = ".$this->id." AND pb.batch = '".$this->db->escape($batch)."'";
    +        $sql.= " GROUP BY pb.batch, pb.eatby, pb.sellby";
    +        dol_syslog(get_class($this)."::loadBatchInfo load first entry found for lot/serial = ".$batch, LOG_DEBUG);
    +        $resql = $this->db->query($sql);
    +        if ($resql) {
    +            $num = $this->db->num_rows($resql);
    +            $i=0;
    +            while ($i < $num)
    +            {
    +                $obj = $this->db->fetch_object($resql);
    +                $result[]=array('batch'=>$batch, 'eatby'=>$this->db->jdate($obj->eatby), 'sellby'=>$this->db->jdate($obj->sellby), 'qty'=>$obj->qty);
    +                $i++;
    +            }
    +            return $result;
    +        }
    +        else
    +        {
    +            dol_print_error($this->db);
    +            $this->db->rollback();
    +            return array();
    +        }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Move an uploaded file described into $file array into target directory $sdir.
    +     *
    +     * @param  string $sdir Target directory
    +     * @param  string $file Array of file info of file to upload: array('name'=>..., 'tmp_name'=>...)
    +     * @return int                    <0 if KO, >0 if OK
    +     */
    +    function add_photo($sdir, $file)
    +    {
    +        // phpcs:enable
    +        global $conf;
     
    -	/**
    -	 *  Move an uploaded file described into $file array into target directory $sdir.
    -	 *
    -	 *  @param  string	$sdir       Target directory
    -	 *  @param  string	$file       Array of file info of file to upload: array('name'=>..., 'tmp_name'=>...)
    -	 *  @return	int					<0 if KO, >0 if OK
    -	 */
    -	function add_photo($sdir, $file)
    -	{
    -		global $conf;
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
    -		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +        $result = 0;
     
    -		$result = 0;
    +        $dir = $sdir;
    +        if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { $dir .= '/'. get_exdir($this->id, 2, 0, 0, $this, 'product') . $this->id ."/photos";
    +        } else { $dir .= '/'.get_exdir(0, 0, 0, 0, $this, 'product').dol_sanitizeFileName($this->ref);
    +        }
     
    -		$dir = $sdir;
    -		if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) $dir .= '/'. get_exdir($this->id,2,0,0,$this,'product') . $this->id ."/photos";
    -		else $dir .= '/'.get_exdir(0,0,0,0,$this,'product').dol_sanitizeFileName($this->ref);
    +        dol_mkdir($dir);
     
    -		dol_mkdir($dir);
    +        $dir_osencoded=$dir;
     
    -		$dir_osencoded=$dir;
    +        if (is_dir($dir_osencoded)) {
    +            $originImage = $dir . '/' . $file['name'];
     
    -		if (is_dir($dir_osencoded))
    -		{
    -			$originImage = $dir . '/' . $file['name'];
    +            // Cree fichier en taille origine
    +            $result=dol_move_uploaded_file($file['tmp_name'], $originImage, 1);
     
    -			// Cree fichier en taille origine
    -			$result=dol_move_uploaded_file($file['tmp_name'], $originImage, 1);
    +            if (file_exists(dol_osencode($originImage))) {
    +                // Create thumbs
    +                $this->addThumbs($originImage);
    +            }
    +        }
     
    -			if (file_exists(dol_osencode($originImage)))
    -			{
    -				// Create thumbs
    -				$this->addThumbs($originImage);
    -			}
    -		}
    +        if (is_numeric($result) && $result > 0) { return 1;
    +        } else { return -1;
    +        }
    +    }
     
    -		if (is_numeric($result) && $result > 0) return 1;
    -		else return -1;
    -	}
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Return if at least one photo is available
    +     *
    +     * @param  string $sdir Directory to scan
    +     * @return boolean                 True if at least one photo is available, False if not
    +     */
    +    function is_photo_available($sdir)
    +    {
    +        // phpcs:enable
    +        include_once DOL_DOCUMENT_ROOT .'/core/lib/files.lib.php';
    +        include_once DOL_DOCUMENT_ROOT .'/core/lib/images.lib.php';
     
    -	/**
    -	 *  Return if at least one photo is available
    -	 *
    -	 *  @param      string		$sdir       Directory to scan
    -	 *  @return     boolean     			True if at least one photo is available, False if not
    -	 */
    -	function is_photo_available($sdir)
    -	{
    -	    include_once DOL_DOCUMENT_ROOT .'/core/lib/files.lib.php';
    -	    include_once DOL_DOCUMENT_ROOT .'/core/lib/images.lib.php';
    +        global $conf;
     
    -		global $conf;
    +        $dir = $sdir;
    +        if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { $dir .= '/'. get_exdir($this->id, 2, 0, 0, $this, 'product') . $this->id ."/photos/";
    +        } else { $dir .= '/'.get_exdir(0, 0, 0, 0, $this, 'product').dol_sanitizeFileName($this->ref).'/';
    +        }
     
    -		$dir = $sdir;
    -		if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) $dir .= '/'. get_exdir($this->id,2,0,0,$this,'product') . $this->id ."/photos/";
    -		else $dir .= '/'.get_exdir(0,0,0,0,$this,'product').dol_sanitizeFileName($this->ref).'/';
    +        $nbphoto=0;
     
    -		$nbphoto=0;
    +        $dir_osencoded=dol_osencode($dir);
    +        if (file_exists($dir_osencoded)) {
    +            $handle=opendir($dir_osencoded);
    +            if (is_resource($handle)) {
    +                while (($file = readdir($handle)) !== false)
    +                {
    +                    if (! utf8_check($file)) { $file=utf8_encode($file);    // To be sure data is stored in UTF8 in memory
    +                    }
    +                    if (dol_is_file($dir.$file) && image_format_supported($file) > 0) { return true;
    +                    }
    +                }
    +            }
    +        }
    +        return false;
    +    }
     
    -		$dir_osencoded=dol_osencode($dir);
    -		if (file_exists($dir_osencoded))
    -		{
    -			$handle=opendir($dir_osencoded);
    -			if (is_resource($handle))
    -			{
    -			    while (($file = readdir($handle)) !== false)
    -    			{
    -    				if (! utf8_check($file)) $file=utf8_encode($file);	// To be sure data is stored in UTF8 in memory
    -    				if (dol_is_file($dir.$file) && image_format_supported($file) > 0) return true;
    -    			}
    -			}
    -		}
    -		return false;
    -	}
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Retourne tableau de toutes les photos du produit
    +     *
    +     * @param  string $dir   Repertoire a scanner
    +     * @param  int    $nbmax Nombre maximum de photos (0=pas de max)
    +     * @return array                   Tableau de photos
    +     */
    +    function liste_photos($dir,$nbmax=0)
    +    {
    +        // phpcs:enable
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
     
    +        $nbphoto=0;
    +        $tabobj=array();
     
    -	/**
    -	 *  Retourne tableau de toutes les photos du produit
    -	 *
    -	 *  @param      string		$dir        Repertoire a scanner
    -	 *  @param      int			$nbmax      Nombre maximum de photos (0=pas de max)
    -	 *  @return     array       			Tableau de photos
    -	 */
    -	function liste_photos($dir,$nbmax=0)
    -	{
    -	    include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    -	    include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
    +        $dir_osencoded=dol_osencode($dir);
    +        $handle=@opendir($dir_osencoded);
    +        if (is_resource($handle)) {
    +            while (($file = readdir($handle)) !== false)
    +            {
    +                if (! utf8_check($file)) { $file=utf8_encode($file);    // readdir returns ISO
    +                }
    +                if (dol_is_file($dir.$file) && image_format_supported($file) >= 0) {
    +                    $nbphoto++;
     
    -		$nbphoto=0;
    -		$tabobj=array();
    +                    // On determine nom du fichier vignette
    +                    $photo=$file;
    +                    $photo_vignette='';
    +                    if (preg_match('/('.$this->regeximgext.')$/i', $photo, $regs)) {
    +                        $photo_vignette=preg_replace('/'.$regs[0].'/i', '', $photo).'_small'.$regs[0];
    +                    }
     
    -		$dir_osencoded=dol_osencode($dir);
    -		$handle=@opendir($dir_osencoded);
    -		if (is_resource($handle))
    -		{
    -			while (($file = readdir($handle)) !== false)
    -			{
    -				if (! utf8_check($file)) $file=utf8_encode($file);	// readdir returns ISO
    -				if (dol_is_file($dir.$file) && image_format_supported($file) >= 0)
    -				{
    -					$nbphoto++;
    +                    $dirthumb = $dir.'thumbs/';
     
    -					// On determine nom du fichier vignette
    -					$photo=$file;
    -					$photo_vignette='';
    -					if (preg_match('/('.$this->regeximgext.')$/i', $photo, $regs))
    -					{
    -						$photo_vignette=preg_replace('/'.$regs[0].'/i', '', $photo).'_small'.$regs[0];
    -					}
    +                    // Objet
    +                    $obj=array();
    +                    $obj['photo']=$photo;
    +                    if ($photo_vignette && dol_is_file($dirthumb.$photo_vignette)) { $obj['photo_vignette']='thumbs/' . $photo_vignette;
    +                    } else { $obj['photo_vignette']="";
    +                    }
     
    -					$dirthumb = $dir.'thumbs/';
    +                    $tabobj[$nbphoto-1]=$obj;
     
    -					// Objet
    -					$obj=array();
    -					$obj['photo']=$photo;
    -					if ($photo_vignette && dol_is_file($dirthumb.$photo_vignette)) $obj['photo_vignette']='thumbs/' . $photo_vignette;
    -					else $obj['photo_vignette']="";
    +                    // On continue ou on arrete de boucler ?
    +                    if ($nbmax && $nbphoto >= $nbmax) { break;
    +                    }
    +                }
    +            }
     
    -					$tabobj[$nbphoto-1]=$obj;
    +            closedir($handle);
    +        }
     
    -					// On continue ou on arrete de boucler ?
    -					if ($nbmax && $nbphoto >= $nbmax) break;
    -				}
    -			}
    +        return $tabobj;
    +    }
     
    -			closedir($handle);
    -		}
    -
    -		return $tabobj;
    -	}
    -
    -	/**
    -	 *  Efface la photo du produit et sa vignette
    -	 *
    -	 *  @param  string		$file        Chemin de l'image
    -	 *  @return	void
    -	 */
    -	function delete_photo($file)
    -	{
    -	    require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    -	    require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Efface la photo du produit et sa vignette
    +     *
    +     * @param  string $file Chemin de l'image
    +     * @return void
    +     */
    +    function delete_photo($file)
    +    {
    +        // phpcs:enable
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +        include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
     
             $dir = dirname($file).'/'; // Chemin du dossier contenant l'image d'origine
    -		$dirthumb = $dir.'/thumbs/'; // Chemin du dossier contenant la vignette
    -		$filename = preg_replace('/'.preg_quote($dir,'/').'/i','',$file); // Nom du fichier
    +        $dirthumb = $dir.'/thumbs/'; // Chemin du dossier contenant la vignette
    +        $filename = preg_replace('/'.preg_quote($dir, '/').'/i', '', $file); // Nom du fichier
     
    -		// On efface l'image d'origine
    -		dol_delete_file($file, 0, 0, 0, $this); // For triggers
    +        // On efface l'image d'origine
    +        dol_delete_file($file, 0, 0, 0, $this); // For triggers
     
    -		// Si elle existe, on efface la vignette
    -		if (preg_match('/('.$this->regeximgext.')$/i',$filename,$regs))
    -		{
    -			$photo_vignette=preg_replace('/'.$regs[0].'/i','',$filename).'_small'.$regs[0];
    -			if (file_exists(dol_osencode($dirthumb.$photo_vignette)))
    -			{
    -				dol_delete_file($dirthumb.$photo_vignette);
    -			}
    +        // Si elle existe, on efface la vignette
    +        if (preg_match('/('.$this->regeximgext.')$/i', $filename, $regs)) {
    +            $photo_vignette=preg_replace('/'.$regs[0].'/i', '', $filename).'_small'.$regs[0];
    +            if (file_exists(dol_osencode($dirthumb.$photo_vignette))) {
    +                dol_delete_file($dirthumb.$photo_vignette);
    +            }
     
    -			$photo_vignette=preg_replace('/'.$regs[0].'/i','',$filename).'_mini'.$regs[0];
    -			if (file_exists(dol_osencode($dirthumb.$photo_vignette)))
    -			{
    -				dol_delete_file($dirthumb.$photo_vignette);
    -			}
    -		}
    -	}
    +            $photo_vignette=preg_replace('/'.$regs[0].'/i', '', $filename).'_mini'.$regs[0];
    +            if (file_exists(dol_osencode($dirthumb.$photo_vignette))) {
    +                dol_delete_file($dirthumb.$photo_vignette);
    +            }
    +        }
    +    }
     
    -	/**
    -	 *  Load size of image file
    -	 *
    -	 *  @param  string	$file        Path to file
    -	 *  @return	void
    -	 */
    -	function get_image_size($file)
    -	{
    -		$file_osencoded=dol_osencode($file);
    -		$infoImg = getimagesize($file_osencoded); // Get information on image
    -		$this->imgWidth = $infoImg[0]; // Largeur de l'image
    -		$this->imgHeight = $infoImg[1]; // Hauteur de l'image
    -	}
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Load size of image file
    +     *
    +     * @param  string $file Path to file
    +     * @return void
    +     */
    +    function get_image_size($file)
    +    {
    +        // phpcs:enable
    +        $file_osencoded=dol_osencode($file);
    +        $infoImg = getimagesize($file_osencoded); // Get information on image
    +        $this->imgWidth = $infoImg[0]; // Largeur de l'image
    +        $this->imgHeight = $infoImg[1]; // Hauteur de l'image
    +    }
     
    -	/**
    -	 *  Load indicators this->nb for the dashboard
    -	 *
    -	 *  @return    int                 <0 if KO, >0 if OK
    -	 */
    -	function load_state_board()
    -	{
    -		global $conf, $user, $hookmanager;
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Load indicators this->nb for the dashboard
    +     *
    +     * @return int                 <0 if KO, >0 if OK
    +     */
    +    function load_state_board()
    +    {
    +        // phpcs:enable
    +        global $conf, $user, $hookmanager;
     
    -		$this->nb=array();
    +        $this->nb=array();
     
    -		$sql = "SELECT count(p.rowid) as nb, fk_product_type";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."product as p";
    -		$sql.= ' WHERE p.entity IN ('.getEntity($this->element, 1).')';
    -		// Add where from hooks
    -		if (is_object($hookmanager))
    -		{
    -		    $parameters=array();
    -		    $reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters);    // Note that $action and $object may have been modified by hook
    -		    $sql.=$hookmanager->resPrint;
    -		}
    +        $sql = "SELECT count(p.rowid) as nb, fk_product_type";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."product as p";
    +        $sql.= ' WHERE p.entity IN ('.getEntity($this->element, 1).')';
    +        // Add where from hooks
    +        if (is_object($hookmanager)) {
    +            $parameters=array();
    +            $reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters);    // Note that $action and $object may have been modified by hook
    +            $sql.=$hookmanager->resPrint;
    +        }
             $sql.= ' GROUP BY fk_product_type';
     
    -		$resql=$this->db->query($sql);
    -		if ($resql)
    -		{
    -			while ($obj=$this->db->fetch_object($resql))
    -			{
    -				if ($obj->fk_product_type == 1) $this->nb["services"]=$obj->nb;
    -				else $this->nb["products"]=$obj->nb;
    -			}
    +        $resql=$this->db->query($sql);
    +        if ($resql) {
    +            while ($obj=$this->db->fetch_object($resql))
    +            {
    +                if ($obj->fk_product_type == 1) { $this->nb["services"]=$obj->nb;
    +                } else { $this->nb["products"]=$obj->nb;
    +                }
    +            }
                 $this->db->free($resql);
    -			return 1;
    -		}
    -		else
    -		{
    -			dol_print_error($this->db);
    -			$this->error=$this->db->error();
    -			return -1;
    -		}
    -	}
    +            return 1;
    +        }
    +        else
    +        {
    +            dol_print_error($this->db);
    +            $this->error=$this->db->error();
    +            return -1;
    +        }
    +    }
     
         /**
          * Return if object is a product
          *
    -     * @return  boolean     True if it's a product
    +     * @return boolean     True if it's a product
          */
    -	function isProduct()
    -	{
    -		return ($this->type == Product::TYPE_PRODUCT ? true : false);
    -	}
    +    function isProduct()
    +    {
    +        return ($this->type == Product::TYPE_PRODUCT ? true : false);
    +    }
     
         /**
          * Return if object is a product
          *
    -     * @return  boolean     True if it's a service
    +     * @return boolean     True if it's a service
          */
    -	function isService()
    -	{
    -		return ($this->type == Product::TYPE_SERVICE ? true : false);
    -	}
    +    function isService()
    +    {
    +        return ($this->type == Product::TYPE_SERVICE ? true : false);
    +    }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Get a barcode from the module to generate barcode values.
          *  Return value is stored into this->barcode
          *
    -     *	@param	Product		$object		Object product or service
    -     *	@param	string		$type		Barcode type (ean, isbn, ...)
    -     *  @return void
    +     * @param  Product $object Object product or service
    +     * @param  string  $type   Barcode type (ean, isbn, ...)
    +     * @return void
          */
         function get_barcode($object,$type='')
         {
    +        // phpcs:enable
             global $conf;
     
             $result='';
    -        if (! empty($conf->global->BARCODE_PRODUCT_ADDON_NUM))
    -        {
    -            $dirsociete=array_merge(array('/core/modules/barcode/'),$conf->modules_parts['barcode']);
    +        if (! empty($conf->global->BARCODE_PRODUCT_ADDON_NUM)) {
    +            $dirsociete=array_merge(array('/core/modules/barcode/'), $conf->modules_parts['barcode']);
                 foreach ($dirsociete as $dirroot)
                 {
                     $res=dol_include_once($dirroot.$conf->global->BARCODE_PRODUCT_ADDON_NUM.'.php');
    -                if ($res) break;
    +                if ($res) { break;
    +                }
                 }
                 $var = $conf->global->BARCODE_PRODUCT_ADDON_NUM;
                 $mod = new $var;
     
    -            $result=$mod->getNextValue($object,$type);
    +            $result=$mod->getNextValue($object, $type);
     
                 dol_syslog(get_class($this)."::get_barcode barcode=".$result." module=".$var);
             }
    @@ -4359,9 +4556,9 @@ class Product extends CommonObject
         /**
          *  Initialise an instance with random values.
          *  Used to build previews or test instances.
    -     *	id must be 0 if object instance is a specimen.
    +     *    id must be 0 if object instance is a specimen.
          *
    -     *  @return	void
    +     * @return void
          */
         function initAsSpecimen()
         {
    @@ -4374,12 +4571,12 @@ class Product extends CommonObject
             $this->id=0;
             $this->ref = 'PRODUCT_SPEC';
             $this->label = 'PRODUCT SPECIMEN';
    -        $this->description = 'This is description of this product specimen that was created the '.dol_print_date($now,'dayhourlog').'.';
    +        $this->description = 'This is description of this product specimen that was created the '.dol_print_date($now, 'dayhourlog').'.';
             $this->specimen=1;
             $this->country_id=1;
             $this->tosell=1;
             $this->tobuy=1;
    -		$this->tobatch=0;
    +        $this->tobatch=0;
             $this->note='This is a comment (private)';
             $this->date_creation = $now;
             $this->date_modification = $now;
    @@ -4399,240 +4596,240 @@ class Product extends CommonObject
             $this->volume = 300;
             $this->volume_unit = 0;
     
    -        $this->barcode=-1;	// Create barcode automatically
    +        $this->barcode=-1;    // Create barcode automatically
         }
     
    -	/**
    -	 *	Returns the text label from units dictionary
    -	 *
    -	 * 	@param	string $type Label type (long or short)
    -	 *	@return	string|int <0 if ko, label if ok
    -	 */
    -	function getLabelOfUnit($type='long')
    -	{
    -		global $langs;
    +    /**
    +     *    Returns the text label from units dictionary
    +     *
    +     * @param  string $type Label type (long or short)
    +     * @return string|int <0 if ko, label if ok
    +     */
    +    function getLabelOfUnit($type='long')
    +    {
    +        global $langs;
     
    -		if (!$this->fk_unit) {
    -			return '';
    -		}
    +        if (!$this->fk_unit) {
    +            return '';
    +        }
     
    -		$langs->load('products');
    +        $langs->load('products');
     
    -		$label_type = 'label';
    +        $label_type = 'label';
     
    -		if ($type == 'short')
    -		{
    -			$label_type = 'short_label';
    -		}
    +        if ($type == 'short') {
    +            $label_type = 'short_label';
    +        }
     
    -		$sql = 'select '.$label_type.' from '.MAIN_DB_PREFIX.'c_units where rowid='.$this->fk_unit;
    -		$resql = $this->db->query($sql);
    -		if($resql && $this->db->num_rows($resql) > 0)
    -		{
    -			$res = $this->db->fetch_array($resql);
    -			$label = $res[$label_type];
    -			$this->db->free($resql);
    -			return $label;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->error().' sql='.$sql;
    -			dol_syslog(get_class($this)."::getLabelOfUnit Error ".$this->error, LOG_ERR);
    -			return -1;
    -		}
    -	}
    +        $sql = 'select '.$label_type.' from '.MAIN_DB_PREFIX.'c_units where rowid='.$this->fk_unit;
    +        $resql = $this->db->query($sql);
    +        if($resql && $this->db->num_rows($resql) > 0) {
    +            $res = $this->db->fetch_array($resql);
    +            $label = $res[$label_type];
    +            $this->db->free($resql);
    +            return $label;
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error().' sql='.$sql;
    +            dol_syslog(get_class($this)."::getLabelOfUnit Error ".$this->error, LOG_ERR);
    +            return -1;
    +        }
    +    }
     
         /**
          * Return if object has a sell-by date or eat-by date
          *
    -     * @return  boolean     True if it's has
    +     * @return boolean     True if it's has
          */
    -	function hasbatch()
    -	{
    -		return ($this->status_batch == 1 ? true : false);
    -	}
    +    function hasbatch()
    +    {
    +        return ($this->status_batch == 1 ? true : false);
    +    }
     
     
    -	/**
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
          * Return minimum product recommended price
          *
    -	 * @return	int			Minimum recommanded price that is higher price among all suppliers * PRODUCT_MINIMUM_RECOMMENDED_PRICE
    +     * @return int            Minimum recommanded price that is higher price among all suppliers * PRODUCT_MINIMUM_RECOMMENDED_PRICE
          */
    -	function min_recommended_price()
    -	{
    -		global $conf;
    +    function min_recommended_price()
    +    {
    +        // phpcs:enable
    +        global $conf;
     
    -		$maxpricesupplier=0;
    +        $maxpricesupplier=0;
     
    -		if (! empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
    -		{
    -			require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php';
    -			$product_fourn = new ProductFournisseur($this->db);
    -			$product_fourn_list = $product_fourn->list_product_fournisseur_price($this->id, '', '');
    +        if (! empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE)) {
    +            include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php';
    +            $product_fourn = new ProductFournisseur($this->db);
    +            $product_fourn_list = $product_fourn->list_product_fournisseur_price($this->id, '', '');
     
    -			if (is_array($product_fourn_list) && count($product_fourn_list)>0)
    -			{
    -				foreach($product_fourn_list as $productfourn)
    -				{
    -					if ($productfourn->fourn_unitprice > $maxpricesupplier)
    -					{
    -						$maxpricesupplier = $productfourn->fourn_unitprice;
    -					}
    -				}
    +            if (is_array($product_fourn_list) && count($product_fourn_list)>0) {
    +                foreach($product_fourn_list as $productfourn)
    +                {
    +                    if ($productfourn->fourn_unitprice > $maxpricesupplier) {
    +                        $maxpricesupplier = $productfourn->fourn_unitprice;
    +                    }
    +                }
     
    -				$maxpricesupplier *= $conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE;
    -			}
    -		}
    +                $maxpricesupplier *= $conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE;
    +            }
    +        }
     
    -		return $maxpricesupplier;
    -	}
    +        return $maxpricesupplier;
    +    }
     
     
    -	/**
    -	 * Sets object to supplied categories.
    -	 *
    -	 * Deletes object from existing categories not supplied.
    -	 * Adds it to non existing supplied categories.
    -	 * Existing categories are left untouch.
    -	 *
    -	 * @param int[]|int $categories Category or categories IDs
    -	 */
    -	public function setCategories($categories) {
    -		// Handle single category
    -		if (! is_array($categories)) {
    -			$categories = array($categories);
    -		}
    +    /**
    +     * Sets object to supplied categories.
    +     *
    +     * Deletes object from existing categories not supplied.
    +     * Adds it to non existing supplied categories.
    +     * Existing categories are left untouch.
    +     *
    +     * @param  int[]|int $categories Category or categories IDs
    +     * @return void
    +     */
    +    public function setCategories($categories)
    +    {
    +        // Handle single category
    +        if (! is_array($categories)) {
    +            $categories = array($categories);
    +        }
     
    -		// Get current categories
    -		require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
    -		$c = new Categorie($this->db);
    -		$existing = $c->containing($this->id, Categorie::TYPE_PRODUCT, 'id');
    +        // Get current categories
    +        include_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
    +        $c = new Categorie($this->db);
    +        $existing = $c->containing($this->id, Categorie::TYPE_PRODUCT, 'id');
     
    -		// Diff
    -		if (is_array($existing)) {
    -			$to_del = array_diff($existing, $categories);
    -			$to_add = array_diff($categories, $existing);
    -		} else {
    -			$to_del = array(); // Nothing to delete
    -			$to_add = $categories;
    -		}
    +        // Diff
    +        if (is_array($existing)) {
    +            $to_del = array_diff($existing, $categories);
    +            $to_add = array_diff($categories, $existing);
    +        } else {
    +            $to_del = array(); // Nothing to delete
    +            $to_add = $categories;
    +        }
     
    -		// Process
    -		foreach($to_del as $del) {
    -			if ($c->fetch($del) > 0) {
    -				$c->del_type($this, 'product');
    -			}
    -		}
    -		foreach ($to_add as $add) {
    -			if ($c->fetch($add) > 0) {
    -				$c->add_type($this, 'product');
    -			}
    -		}
    +        // Process
    +        foreach($to_del as $del) {
    +            if ($c->fetch($del) > 0) {
    +                $c->del_type($this, 'product');
    +            }
    +        }
    +        foreach ($to_add as $add) {
    +            if ($c->fetch($add) > 0) {
    +                $c->add_type($this, 'product');
    +            }
    +        }
     
    -		return;
    -	}
    +        return;
    +    }
     
    -	/**
    -	 * Function used to replace a thirdparty id with another one.
    -	 *
    -	 * @param DoliDB 	$db 			Database handler
    -	 * @param int 		$origin_id 		Old thirdparty id
    -	 * @param int 		$dest_id 		New thirdparty id
    -	 * @return bool
    -	 */
    -	public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id)
    -	{
    -		$tables = array(
    -			'product_customer_price',
    -			'product_customer_price_log'
    -		);
    +    /**
    +     * Function used to replace a thirdparty id with another one.
    +     *
    +     * @param  DoliDB $db        Database handler
    +     * @param  int    $origin_id Old thirdparty id
    +     * @param  int    $dest_id   New thirdparty id
    +     * @return bool
    +     */
    +    public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id)
    +    {
    +        $tables = array(
    +        'product_customer_price',
    +        'product_customer_price_log'
    +        );
     
    -		return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
    -	}
    +        return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
    +    }
     
    -	/**
    -	 * Generates prices for a product based on product multiprice generation rules
    -	 *
    -	 * @param User $user User that updates the prices
    -	 * @param float $baseprice Base price
    -	 * @param string $price_type Base price type
    -	 * @param float $price_vat VAT % tax
    -	 * @param int $npr NPR
    -	 * @param string $psq ¿?
    -	 * @return int -1 KO, 1 OK
    -	 */
    -	public function generateMultiprices(User $user, $baseprice, $price_type, $price_vat, $npr, $psq)
    -	{
    -		global $conf, $db;
    +    /**
    +     * Generates prices for a product based on product multiprice generation rules
    +     *
    +     * @param  User   $user       User that updates the prices
    +     * @param  float  $baseprice  Base price
    +     * @param  string $price_type Base price type
    +     * @param  float  $price_vat  VAT % tax
    +     * @param  int    $npr        NPR
    +     * @param  string $psq        ¿?
    +     * @return int -1 KO, 1 OK
    +     */
    +    public function generateMultiprices(User $user, $baseprice, $price_type, $price_vat, $npr, $psq)
    +    {
    +        global $conf, $db;
     
    -		$sql = "SELECT rowid, level, fk_level, var_percent, var_min_percent FROM ".MAIN_DB_PREFIX."product_pricerules";
    -		$query = $db->query($sql);
    +        $sql = "SELECT rowid, level, fk_level, var_percent, var_min_percent FROM ".MAIN_DB_PREFIX."product_pricerules";
    +        $query = $db->query($sql);
     
    -		$rules = array();
    +        $rules = array();
     
    -		while ($result = $db->fetch_object($query)) {
    -			$rules[$result->level] = $result;
    -		}
    +        while ($result = $db->fetch_object($query)) {
    +            $rules[$result->level] = $result;
    +        }
     
    -		//Because prices can be based on other level's prices, we temporarily store them
    -		$prices = array(
    -			1 => $baseprice
    -		);
    +        //Because prices can be based on other level's prices, we temporarily store them
    +        $prices = array(
    +        1 => $baseprice
    +        );
     
    -		for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++) {
    +        for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++) {
     
    -			$price = $baseprice;
    -			$price_min = $baseprice;
    +            $price = $baseprice;
    +            $price_min = $baseprice;
     
    -			//We have to make sure it does exist and it is > 0
    -			//First price level only allows changing min_price
    -			if ($i > 1 && isset($rules[$i]->var_percent) && $rules[$i]->var_percent) {
    -				$price = $prices[$rules[$i]->fk_level] * (1 + ($rules[$i]->var_percent/100));
    -			}
    +            //We have to make sure it does exist and it is > 0
    +            //First price level only allows changing min_price
    +            if ($i > 1 && isset($rules[$i]->var_percent) && $rules[$i]->var_percent) {
    +                $price = $prices[$rules[$i]->fk_level] * (1 + ($rules[$i]->var_percent/100));
    +            }
     
    -			$prices[$i] = $price;
    +            $prices[$i] = $price;
     
    -			//We have to make sure it does exist and it is > 0
    -			if (isset($rules[$i]->var_min_percent) && $rules[$i]->var_min_percent) {
    -				$price_min = $price * (1 - ($rules[$i]->var_min_percent/100));
    -			}
    +            //We have to make sure it does exist and it is > 0
    +            if (isset($rules[$i]->var_min_percent) && $rules[$i]->var_min_percent) {
    +                $price_min = $price * (1 - ($rules[$i]->var_min_percent/100));
    +            }
     
    -			//Little check to make sure the price is modified before triggering generation
    -			$check_amount = (($price == $this->multiprices[$i]) && ($price_min == $this->multiprices_min[$i]));
    -			$check_type = ($baseprice == $this->multiprices_base_type[$i]);
    +            //Little check to make sure the price is modified before triggering generation
    +            $check_amount = (($price == $this->multiprices[$i]) && ($price_min == $this->multiprices_min[$i]));
    +            $check_type = ($baseprice == $this->multiprices_base_type[$i]);
     
    -			if ($check_amount && $check_type) {
    -				continue;
    -			}
    +            if ($check_amount && $check_type) {
    +                continue;
    +            }
     
    -			if ($this->updatePrice($price, $price_type, $user, $price_vat, $price_min, $i, $npr, $psq, true) < 0) {
    -				return -1;
    -			}
    -		}
    +            if ($this->updatePrice($price, $price_type, $user, $price_vat, $price_min, $i, $npr, $psq, true) < 0) {
    +                return -1;
    +            }
    +        }
     
    -		return 1;
    -	}
    +        return 1;
    +    }
     
    -	/**
    -	 * Returns the rights used for this class
    -	 * @return stdClass
    -	 */
    -	public function getRights()
    -	{
    -		global $user;
    +    /**
    +     * Returns the rights used for this class
    +     *
    +     * @return stdClass
    +     */
    +    public function getRights()
    +    {
    +        global $user;
     
    -		if ($this->isProduct()) {
    -			return $user->rights->produit;
    -		} else {
    -			return $user->rights->service;
    -		}
    -	}
    +        if ($this->isProduct()) {
    +            return $user->rights->produit;
    +        } else {
    +            return $user->rights->service;
    +        }
    +    }
     
         /**
          *  Load information for tab info
          *
    -     *  @param  int		$id     Id of thirdparty to load
    -     *  @return	void
    +     * @param  int $id Id of thirdparty to load
    +     * @return void
          */
         function info($id)
         {
    @@ -4642,10 +4839,8 @@ class Product extends CommonObject
             $sql.= " WHERE p.rowid = ".$id;
     
             $result=$this->db->query($sql);
    -        if ($result)
    -        {
    -            if ($this->db->num_rows($result))
    -            {
    +        if ($result) {
    +            if ($this->db->num_rows($result)) {
                     $obj = $this->db->fetch_object($result);
     
                     $this->id = $obj->rowid;
    @@ -4662,18 +4857,16 @@ class Product extends CommonObject
                         $this->user_modification = $muser;
                     }
     
    -                $this->ref			     = $obj->ref;
    +                $this->ref                 = $obj->ref;
                     $this->date_creation     = $this->db->jdate($obj->date_creation);
                     $this->date_modification = $this->db->jdate($obj->date_modification);
                 }
     
                 $this->db->free($result);
    -
             }
             else
    -		{
    +        {
                 dol_print_error($this->db);
             }
         }
    -
     }
    diff --git a/htdocs/product/class/productbatch.class.php b/htdocs/product/class/productbatch.class.php
    index 48afbcc9dbb..d16c6ccc6ec 100644
    --- a/htdocs/product/class/productbatch.class.php
    +++ b/htdocs/product/class/productbatch.class.php
    @@ -22,7 +22,7 @@
      *  \brief      Manage record and specific data for batch number management
      */
     
    -require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php");
    +require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php";
     
     
     /**
    @@ -30,16 +30,24 @@ require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php");
      */
     class Productbatch extends CommonObject
     {
    -	var $element='productbatch';			//!< Id that identify managed objects
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='productbatch';
    +
     	private static $_table_element='product_batch';		//!< Name of table without prefix where object is stored
     
    -	var $tms='';
    -	var $fk_product_stock;
    -	var $sellby='';
    -	var $eatby='';
    -	var $batch='';
    -	var $qty;
    +	public $tms='';
    +	public $fk_product_stock;
    +	public $sellby='';
    +	public $eatby='';
    +	public $batch='';
    +	public $qty;
     	public $warehouseid;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_product;
     
     
    @@ -52,7 +60,6 @@ class Productbatch extends CommonObject
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    @@ -69,7 +76,7 @@ class Productbatch extends CommonObject
     		$error=0;
     
     		// Clean parameters
    -		$this->clean_param();
    +		$this->cleanParam();
     
     		// Check parameters
     		// Put here code to add control on parameters values
    @@ -200,7 +207,7 @@ class Productbatch extends CommonObject
     		$error=0;
     
     		// Clean parameters
    -		$this->clean_param();
    +		$this->cleanParam();
     
     		// TODO Check qty is ok for stock move. Negative may not be allowed.
     		if ($this->qty < 0)
    @@ -331,8 +338,6 @@ class Productbatch extends CommonObject
     
     		$object=new Productbatch($this->db);
     
    -		$object->context['createfromclone']='createfromclone';
    -
      		$this->db->begin();
     
     		// Load source object
    @@ -344,6 +349,7 @@ class Productbatch extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone']='createfromclone';
     		$result=$object->create($user);
     
     		// Other options
    @@ -356,7 +362,6 @@ class Productbatch extends CommonObject
     		if (! $error)
     		{
     
    -
     		}
     
     		unset($object->context['createfromclone']);
    @@ -391,16 +396,14 @@ class Productbatch extends CommonObject
     		$this->eatby='';
     		$this->batch='';
     		$this->import_key='';
    -
    -
     	}
     
     	/**
     	 *  Clean fields (triming)
     	 *
    -	 *	@return	void
    +	 *  @return	void
     	 */
    -	private function clean_param()
    +	private function cleanParam()
     	{
     		if (isset($this->fk_product_stock)) $this->fk_product_stock=(int) trim($this->fk_product_stock);
     		if (isset($this->batch)) $this->batch=trim($this->batch);
    @@ -539,5 +542,4 @@ class Productbatch extends CommonObject
                 return -1;
             }
         }
    -
     }
    diff --git a/htdocs/product/class/productcustomerprice.class.php b/htdocs/product/class/productcustomerprice.class.php
    index fdff7b1fe6d..d39849780c1 100644
    --- a/htdocs/product/class/productcustomerprice.class.php
    +++ b/htdocs/product/class/productcustomerprice.class.php
    @@ -28,36 +28,62 @@ require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
      */
     class Productcustomerprice extends CommonObject
     {
    -	var $element = 'product_customer_price'; // !< Id that identify managed objects
    -	var $table_element = 'product_customer_price'; // !< Name of table without prefix where object is stored
    -	var $entity;
    -	var $datec = '';
    -	var $tms = '';
    -	var $fk_product;
    -	var $fk_soc;
    -	var $price;
    -	var $price_ttc;
    -	var $price_min;
    -	var $price_min_ttc;
    -	var $price_base_type;
    -	var $tva_tx;
    -	var $recuperableonly;
    -	var $localtax1_type;
    -	var $localtax1_tx;
    -	var $localtax2_type;
    -	var $localtax2_tx;
    -	var $fk_user;
    -	var $lines = array ();
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element = 'product_customer_price';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element = 'product_customer_price';
    +
    +	/**
    +	 * @var int Entity
    +	 */
    +	public $entity;
    +
    +	public $datec = '';
    +	public $tms = '';
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_product;
    +
    +	/**
    +	 * @var int Thirdparty ID
    +	 */
    +  public $fk_soc;
    +
    +	public $price;
    +	public $price_ttc;
    +	public $price_min;
    +	public $price_min_ttc;
    +	public $price_base_type;
    +	public $tva_tx;
    +	public $recuperableonly;
    +	public $localtax1_type;
    +	public $localtax1_tx;
    +	public $localtax2_type;
    +	public $localtax2_tx;
    +
    +	/**
    +	 * @var int User ID
    +	 */
    +	public $fk_user;
    +
    +	public $lines = array ();
    +
     
     	/**
     	 * Constructor
     	 *
     	 * @param DoliDb $db handler
     	 */
    -	function __construct($db) {
    -
    +    function __construct($db)
    +    {
     		$this->db = $db;
    -		return 1;
     	}
     
     	/**
    @@ -68,7 +94,8 @@ class Productcustomerprice extends CommonObject
     	 * @param int $forceupdateaffiliate update price on each soc child
     	 * @return int <0 if KO, Id of created object if OK
     	 */
    -	function create($user, $notrigger = 0, $forceupdateaffiliate = 0) {
    +    function create($user, $notrigger = 0, $forceupdateaffiliate = 0)
    +    {
     
     		global $conf, $langs;
     		$error = 0;
    @@ -294,6 +321,7 @@ class Productcustomerprice extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Load all customer prices in memory from database
     	 *
    @@ -306,6 +334,7 @@ class Productcustomerprice extends CommonObject
     	 */
     	function fetch_all($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, $filter = array())
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ( empty($sortfield)) $sortfield = "t.rowid";
    @@ -342,7 +371,7 @@ class Productcustomerprice extends CommonObject
     		$sql .= " AND prod.rowid=t.fk_product ";
     		$sql .= " AND prod.entity IN (" . getEntity('product') . ")";
     		$sql .= " AND t.entity IN (" . getEntity('productprice') . ")";
    -		
    +
     		// Manage filter
     		if (count($filter) > 0) {
     			foreach ( $filter as $key => $value ) {
    @@ -407,6 +436,7 @@ class Productcustomerprice extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Load all objects in memory from database
     	 *
    @@ -419,6 +449,7 @@ class Productcustomerprice extends CommonObject
     	 */
     	function fetch_all_log($sortorder, $sortfield, $limit, $offset, $filter = array())
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if (! empty($sortfield)) $sortfield = "t.rowid";
    @@ -522,7 +553,8 @@ class Productcustomerprice extends CommonObject
     	 * @param int $forceupdateaffiliate update price on each soc child
     	 * @return int <0 if KO, >0 if OK
     	 */
    -	function update($user = 0, $notrigger = 0, $forceupdateaffiliate = 0) {
    +    function update($user = 0, $notrigger = 0, $forceupdateaffiliate = 0)
    +    {
     
     		global $conf, $langs;
     		$error = 0;
    @@ -719,7 +751,8 @@ class Productcustomerprice extends CommonObject
     	 * @param int $forceupdateaffiliate update price on each soc child
     	 * @return int <0 if KO, >0 if OK
     	 */
    -	function setPriceOnAffiliateThirdparty($user, $forceupdateaffiliate) {
    +    function setPriceOnAffiliateThirdparty($user, $forceupdateaffiliate)
    +    {
     
     		$error = 0;
     
    @@ -811,7 +844,8 @@ class Productcustomerprice extends CommonObject
     	 * @param int $notrigger triggers after, 1=disable triggers
     	 * @return int <0 if KO, >0 if OK
     	 */
    -	function delete($user, $notrigger = 0) {
    +    function delete($user, $notrigger = 0)
    +    {
     
     		global $conf, $langs;
     		$error = 0;
    @@ -864,7 +898,8 @@ class Productcustomerprice extends CommonObject
     	 * @param int $fromid of object to clone
     	 * @return int id of clone
     	 */
    -	function createFromClone($fromid) {
    +    function createFromClone($fromid)
    +    {
     
     		global $user, $langs;
     
    @@ -872,8 +907,6 @@ class Productcustomerprice extends CommonObject
     
     		$object = new Productcustomerprice($this->db);
     
    -		$object->context['createfromclone']='createfromclone';
    -
     		$this->db->begin();
     
     		// Load source object
    @@ -885,6 +918,7 @@ class Productcustomerprice extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone']='createfromclone';
     		$result = $object->create($user);
     
     		// Other options
    @@ -894,6 +928,7 @@ class Productcustomerprice extends CommonObject
     		}
     
     		if (! $error) {
    +
     		}
     
     		unset($object->context['createfromclone']);
    @@ -914,7 +949,8 @@ class Productcustomerprice extends CommonObject
     	 *
     	 * @return void
     	 */
    -	function initAsSpecimen() {
    +    function initAsSpecimen()
    +    {
     
     		$this->id = 0;
     
    @@ -943,24 +979,46 @@ class Productcustomerprice extends CommonObject
      */
     class PriceByCustomerLine
     {
    -	var $id;
    -	var $entity;
    -	var $datec = '';
    -	var $tms = '';
    -	var $fk_product;
    -	var $fk_soc;
    -	var $price;
    -	var $price_ttc;
    -	var $price_min;
    -	var $price_min_ttc;
    -	var $price_base_type;
    -	var $default_vat_code;
    -	var $tva_tx;
    -	var $recuperableonly;
    -	var $localtax1_tx;
    -	var $localtax2_tx;
    -	var $fk_user;
    -	var $import_key;
    -	var $socname;
    -	var $prodref;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +	/**
    +	 * @var int Entity
    +	 */
    +	public $entity;
    +
    +	public $datec = '';
    +	public $tms = '';
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_product;
    +
    +	/**
    +	 * @var int Thirdparty ID
    +	 */
    +    public $fk_soc;
    +
    +	public $price;
    +	public $price_ttc;
    +	public $price_min;
    +	public $price_min_ttc;
    +	public $price_base_type;
    +	public $default_vat_code;
    +	public $tva_tx;
    +	public $recuperableonly;
    +	public $localtax1_tx;
    +	public $localtax2_tx;
    +
    +	/**
    +	 * @var int User ID
    +	 */
    +	public $fk_user;
    +
    +	public $import_key;
    +	public $socname;
    +	public $prodref;
     }
    diff --git a/htdocs/product/class/propalmergepdfproduct.class.php b/htdocs/product/class/propalmergepdfproduct.class.php
    index 87fdd132878..3aeae37249c 100644
    --- a/htdocs/product/class/propalmergepdfproduct.class.php
    +++ b/htdocs/product/class/propalmergepdfproduct.class.php
    @@ -22,7 +22,7 @@
      *  \brief      This file is an CRUD class file (Create/Read/Update/Delete)
      */
     
    -require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php");
    +require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php";
     
     
     
    @@ -31,8 +31,15 @@ require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php");
      */
     class Propalmergepdfproduct extends CommonObject
     {
    -	var $element='propal_merge_pdf_product';			//!< Id that identify managed objects
    -	var $table_element='propal_merge_pdf_product';		//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='propal_merge_pdf_product';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='propal_merge_pdf_product';
     
     	var $fk_product;
     	var $file_name;
    @@ -55,7 +62,6 @@ class Propalmergepdfproduct extends CommonObject
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    @@ -201,8 +207,6 @@ class Propalmergepdfproduct extends CommonObject
     				$this->datec = $this->db->jdate($obj->datec);
     				$this->tms = $this->db->jdate($obj->tms);
     				$this->import_key = $obj->import_key;
    -
    -
                 }
                 $this->db->free($resql);
     
    @@ -216,6 +220,7 @@ class Propalmergepdfproduct extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Load object in memory from the database
          *
    @@ -225,6 +230,7 @@ class Propalmergepdfproduct extends CommonObject
          */
         function fetch_by_product($product_id, $lang='')
         {
    +        // phpcs:enable
         	global $langs,$conf;
     
         	$sql = "SELECT";
    @@ -275,11 +281,7 @@ class Propalmergepdfproduct extends CommonObject
     	    			}else {
     	    				$this->lines[$obj->file_name]=$line;
     	    			}
    -
    -
         			}
    -
    -
         		}
         		$this->db->free($resql);
     
    @@ -313,9 +315,6 @@ class Propalmergepdfproduct extends CommonObject
     		if (isset($this->fk_user_mod)) $this->fk_user_mod=trim($this->fk_user_mod);
     		if (isset($this->lang)) $this->lang=trim($this->lang);
     
    -
    -
    -
     		// Check parameters
     		// Put here code to add a control on parameters values
     
    @@ -431,6 +430,7 @@ class Propalmergepdfproduct extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Delete object in database
     	 *
    @@ -442,6 +442,7 @@ class Propalmergepdfproduct extends CommonObject
     	 */
     	function delete_by_product($user, $product_id, $lang_id='',  $notrigger=0)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     		$error=0;
     
    @@ -495,6 +496,7 @@ class Propalmergepdfproduct extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Delete object in database
     	 *
    @@ -503,6 +505,7 @@ class Propalmergepdfproduct extends CommonObject
     	 */
     	function delete_by_file($user)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     		$error=0;
     
    @@ -579,6 +582,7 @@ class Propalmergepdfproduct extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone']='createfromclone';
     		$result=$object->create($user);
     
     		// Other options
    @@ -591,9 +595,10 @@ class Propalmergepdfproduct extends CommonObject
     		if (! $error)
     		{
     
    -
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (! $error)
     		{
    @@ -625,10 +630,7 @@ class Propalmergepdfproduct extends CommonObject
     		$this->datec='';
     		$this->tms='';
     		$this->import_key='';
    -
    -
     	}
    -
     }
     
     /**
    @@ -636,18 +638,38 @@ class Propalmergepdfproduct extends CommonObject
      */
     class PropalmergepdfproductLine
     {
    -	var $id;
    +	/**
    +	 * @var int ID
    +	 */
    +	public $id;
     
    -	var $fk_product;
    -	var $file_name;
    -	var $lang;
    -	var $fk_user_author;
    -	var $fk_user_mod;
    -	var $datec='';
    -	var $tms='';
    -	var $import_key;
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_product;
     
    -	function __construct() {
    -		return 1;
    -	}
    +	public $file_name;
    +	public $lang;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_author;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_mod;
    +
    +	public $datec='';
    +	public $tms='';
    +	public $import_key;
    +
    +    /**
    +     *  Constructor
    +     */
    +    function __construct()
    +    {
    +        return 1;
    +    }
     }
    diff --git a/htdocs/product/composition/card.php b/htdocs/product/composition/card.php
    index a1cd63eea12..521b9dfeca7 100644
    --- a/htdocs/product/composition/card.php
    +++ b/htdocs/product/composition/card.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2007  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2005       Eric Seigne             <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2018  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2018  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2006       Andre Cianfarani        <acianfa@free.fr>
      * Copyright (C) 2011-2014  Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    @@ -407,7 +407,6 @@ if ($id > 0 || ! empty($ref))
     						{
     							print '<td align="center"><input type="text" value="'.$nb_of_subproduct.'" name="TProduct['.$productstatic->id.'][qty]" size="4" /></td>';
     							print '<td align="center"><input type="checkbox" name="TProduct['.$productstatic->id.'][incdec]" value="1" '.($value['incdec']==1?'checked':''  ).' /></td>';
    -
     						}
     						else{
     							print '<td>'.$nb_of_subproduct.'</td>';
    @@ -551,7 +550,6 @@ if ($id > 0 || ! empty($ref))
     			{
     				$num = $db->num_rows($resql);
     				$i=0;
    -				$var=true;
     
     				if($num == 0) print '<tr><td colspan="4">'.$langs->trans("NoMatchFound").'</td></tr>';
     
    @@ -635,7 +633,6 @@ if ($id > 0 || ! empty($ref))
     					}
     					$i++;
     				}
    -
     			}
     			else
     			{
    @@ -655,11 +652,9 @@ if ($id > 0 || ! empty($ref))
     
     			print '</form>';
     		}
    -
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/document.php b/htdocs/product/document.php
    index 34337218a62..1e426e512cb 100644
    --- a/htdocs/product/document.php
    +++ b/htdocs/product/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
      * Copyright (C) 2013      Florian Henry          <florian.henry@open-concept.pro>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    @@ -113,7 +113,6 @@ if (empty($reshook))
     
     	// Action submit/delete file/link
     	include_once DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
    -
     }
     
     if ($action=='filemerge')
    @@ -197,7 +196,7 @@ if ($object->id)
         print $hookmanager->resPrint;
     	if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     
     	if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO))    // For backward compatiblity, we scan also old dirs
    @@ -288,11 +287,11 @@ if ($object->id)
     
         			print  '<tr class="liste_titre"><td>';
     
    -    			$delauft_lang = empty($lang_id) ? $langs->getDefaultLang() : $lang_id;
    +    			$default_lang = empty($lang_id) ? $langs->getDefaultLang() : $lang_id;
     
         			$langs_available = $langs->get_available_languages(DOL_DOCUMENT_ROOT, 12);
     
    -			    print Form::selectarray('lang_id', $langs_available, $delauft_lang, 0, 0, 0, '', 0, 0, 0, 'ASC');
    +			    print Form::selectarray('lang_id', $langs_available, $default_lang, 0, 0, 0, '', 0, 0, 0, 'ASC');
     
         			if ($conf->global->MAIN_MULTILANGS) {
         				print  '<input type="submit" class="button" name="refresh" value="' . $langs->trans('Refresh') . '">';
    @@ -301,25 +300,18 @@ if ($object->id)
         			print  '</td></tr>';
         		}
     
    -    		$style = 'impair';
         		foreach ($filearray as $filetoadd)
         		{
         			if ($ext = pathinfo($filetoadd['name'], PATHINFO_EXTENSION) == 'pdf')
         			{
    -    				if ($style == 'pair') {
    -    					$style = 'impair';
    -    				} else {
    -    					$style = 'pair';
    -    				}
    -
         				$checked = '';
         				$filename = $filetoadd['name'];
     
         				if ($conf->global->MAIN_MULTILANGS)
         				{
    -    					if (array_key_exists($filetoadd['name'] . '_' . $delauft_lang, $filetomerge->lines))
    +    					if (array_key_exists($filetoadd['name'] . '_' . $default_lang, $filetomerge->lines))
         					{
    -    						$filename = $filetoadd['name'] . ' - ' . $langs->trans('Language_' . $delauft_lang);
    +    						$filename = $filetoadd['name'] . ' - ' . $langs->trans('Language_' . $default_lang);
         						$checked = ' checked ';
         					}
         				}
    @@ -331,7 +323,7 @@ if ($object->id)
         					}
         				}
     
    -    				print  '<tr class="' . $style . '"><td>';
    +    				print  '<tr class="oddeven"><td>';
         				print  '<input type="checkbox" ' . $checked . ' name="filetoadd[]" id="filetoadd" value="' . $filetoadd['name'] . '">' . $filename . '</input>';
         				print  '</td></tr>';
         			}
    @@ -352,6 +344,6 @@ else
     	print $langs->trans("ErrorUnknown");
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/dynamic_price/class/price_expression.class.php b/htdocs/product/dynamic_price/class/price_expression.class.php
    index 5ce3068c144..6b73b413522 100644
    --- a/htdocs/product/dynamic_price/class/price_expression.class.php
    +++ b/htdocs/product/dynamic_price/class/price_expression.class.php
    @@ -29,12 +29,32 @@
      */
     class PriceExpression
     {
    -	var $db;							//!< To store db handler
    -	var $error;							//!< To return error code (or message)
    -	var $errors=array();				//!< To return several error codes (or messages)
    -    var $id;
    -    var $title;
    -	var $expression;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +    public $title;
    +    public $expression;
    +
    +    /**
    +     * @var string Name of table without prefix where object is stored
    +     */
         public $table_element = "c_price_expression";
     
         /**
    @@ -45,7 +65,6 @@ class PriceExpression
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    @@ -127,7 +146,7 @@ class PriceExpression
                 $this->error='ErrorWrongParameters';
                 return -1;
             }
    -        
    +
             $sql = "SELECT title, expression";
             $sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element;
             $sql.= " WHERE rowid = ".$id;
    @@ -156,6 +175,7 @@ class PriceExpression
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    List all price expressions
          *
    @@ -163,6 +183,7 @@ class PriceExpression
          */
         function list_price_expression()
         {
    +        // phpcs:enable
             $sql = "SELECT rowid, title, expression";
             $sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element;
             $sql.= " ORDER BY title";
    @@ -193,6 +214,7 @@ class PriceExpression
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Returns any existing rowid with specified title
          *
    @@ -201,6 +223,7 @@ class PriceExpression
          */
         function find_title($title)
         {
    +        // phpcs:enable
             $sql = "SELECT rowid";
             $sql.= " FROM ".MAIN_DB_PREFIX.$this->table_element;
             $sql.= " WHERE title = '".$this->db->escape($title)."'";
    @@ -299,7 +322,7 @@ class PriceExpression
     		$error=0;
     
     		$rowid = $this->id;
    -		
    +
     		$this->db->begin();
     
     		if (! $error)
    diff --git a/htdocs/product/dynamic_price/class/price_global_variable.class.php b/htdocs/product/dynamic_price/class/price_global_variable.class.php
    index 97a3ee1f4e6..4cd900979ab 100644
    --- a/htdocs/product/dynamic_price/class/price_global_variable.class.php
    +++ b/htdocs/product/dynamic_price/class/price_global_variable.class.php
    @@ -29,14 +29,39 @@
      */
     class PriceGlobalVariable
     {
    -    var $db;							//!< To store db handler
    -    var $error;							//!< To return error code (or message)
    -    var $errors=array();				//!< To return several error codes (or messages)
    -    var $id;
    -    var $code;
    -    var $description;
    -    var $value;
    -    public $table_element = "c_price_global_variable";
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +    /**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +    public $code;
    +
    +    /**
    +	 * @var string description
    +	 */
    +	public $description;
    +
    +    public $value;
    +
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element = "c_price_global_variable";
     
         /**
          *  Constructor
    @@ -46,7 +71,6 @@ class PriceGlobalVariable
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    diff --git a/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php b/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php
    index f4595062098..c4dda3481bb 100644
    --- a/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php
    +++ b/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php
    @@ -29,30 +29,60 @@
      */
     class PriceGlobalVariableUpdater
     {
    -    var $db;							//!< To store db handler
    -    var $error;							//!< To return error code (or message)
    -    var $errors=array();				//!< To return several error codes (or messages)
    -    var $types=array(0, 1);				//!< Updater types
    -    var $update_min = 5;				//!< Minimal update rate
    -    var $id;
    -    var $type;
    -    var $description;
    -    var $parameters;
    -    var $fk_variable;
    -    var $update_interval;				//!< Interval in mins
    -    var $next_update;					//!< Next update timestamp
    -    var $last_status;
    -    public $table_element = "c_price_global_variable_updater";
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +    /**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
    +    public $types=array(0, 1);				//!< Updater types
    +    public $update_min = 5;				//!< Minimal update rate
    +
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +    public $type;
    +
    +    /**
    +	 * @var string description
    +	 */
    +	public $description;
    +
    +    public $parameters;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_variable;
    +
    +    public $update_interval;				//!< Interval in mins
    +    public $next_update;					//!< Next update timestamp
    +    public $last_status;
    +
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element = "c_price_global_variable_updater";
     
         /**
          *  Constructor
          *
    -     *  @param	DoliDb		$db      Database handler
    +     *  @param  DoliDb      $db      Database handler
          */
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
     
    @@ -530,6 +560,7 @@ class PriceGlobalVariableUpdater
             return 1;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Update next_update into database
          *
    @@ -540,6 +571,7 @@ class PriceGlobalVariableUpdater
          */
         function update_next_update($next_update, $user=0, $notrigger=0)
         {
    +        // phpcs:enable
             $error=0;
     
             $this->next_update = $next_update;
    @@ -574,6 +606,7 @@ class PriceGlobalVariableUpdater
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Update last_status into database
          *
    @@ -584,6 +617,7 @@ class PriceGlobalVariableUpdater
          */
         function update_status($last_status, $user=0, $notrigger=0)
         {
    +        // phpcs:enable
             $error=0;
     
             $this->last_status = $last_status;
    diff --git a/htdocs/product/dynamic_price/class/price_parser.class.php b/htdocs/product/dynamic_price/class/price_parser.class.php
    index 867a30faaeb..3249671d173 100644
    --- a/htdocs/product/dynamic_price/class/price_parser.class.php
    +++ b/htdocs/product/dynamic_price/class/price_parser.class.php
    @@ -335,4 +335,4 @@ class PriceParser
     		));
     		return $this->parseExpression($product, $expression, $extra_values);
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/product/dynamic_price/editor.php b/htdocs/product/dynamic_price/editor.php
    index 9187775f8e9..3e4a87fe9f9 100644
    --- a/htdocs/product/dynamic_price/editor.php
    +++ b/htdocs/product/dynamic_price/editor.php
    @@ -219,7 +219,7 @@ print '<input type="submit" class="butAction" value="'.$langs->trans("Save").'">
     print '<span id="back" class="butAction">'.$langs->trans("Back").'</span>';
     if ($eid == 0)
     {
    -	print '<div class="inline-block divButAction"><span id="action-delete" class="butActionRefused">'.$langs->trans('Delete').'</span></div>'."\n";
    +	print '<div class="inline-block divButAction"><span id="action-delete" class="butActionRefused classfortooltip">'.$langs->trans('Delete').'</span></div>'."\n";
     }
     else
     {
    @@ -244,5 +244,6 @@ print '<script type="text/javascript">
     	}
     </script>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php
    index 0d4563c10c1..08459729e87 100644
    --- a/htdocs/product/fournisseurs.php
    +++ b/htdocs/product/fournisseurs.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2012 Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2012      Christophe Battarel  <christophe.battarel@altairis.fr>
      * Copyright (C) 2014      Ion Agorria          <ion@agorria.com>
    @@ -156,6 +156,7 @@ if (empty($reshook))
     		$price_expression = GETPOST('eid', 'int') ? GETPOST('eid', 'int') : ''; // Discard expression if not in expression mode
     		$delivery_time_days = GETPOST('delivery_time_days', 'int') ? GETPOST('delivery_time_days', 'int') : '';
     		$supplier_reputation = GETPOST('supplier_reputation');
    +		$supplier_description = GETPOST('supplier_description', 'alpha');
     
     		if ($tva_tx == '')
     		{
    @@ -256,9 +257,9 @@ if (empty($reshook))
                     	$multicurrency_price = price2num(GETPOST("multicurrency_price",'alpha'));
                     	$multicurrency_code = GETPOST("multicurrency_code",'alpha');
     
    -                    $ret = $object->update_buyprice($quantity, $newprice, $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation, array(), '', $multicurrency_price, $_POST["multicurrency_price_base_type"], $multicurrency_tx, $multicurrency_code);
    +                    $ret = $object->update_buyprice($quantity, $newprice, $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation, array(), '', $multicurrency_price, $_POST["multicurrency_price_base_type"], $multicurrency_tx, $multicurrency_code, $supplier_description);
                     } else {
    -                    $ret = $object->update_buyprice($quantity, $newprice, $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation);
    +                    $ret = $object->update_buyprice($quantity, $newprice, $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation, array(), '', 0, 'HT', 1, '', $supplier_description);
                     }
     				if ($ret < 0)
     				{
    @@ -678,6 +679,23 @@ SCRIPT;
     					}
     				}
     
    +				// Product description of the supplier
    +				if (! empty($conf->global->PRODUIT_FOURN_TEXTS))
    +				{
    +				    //WYSIWYG Editor
    +				    require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    +
    +    				print '<tr>';
    +    				print '<td>'.$langs->trans('ProductSupplierDescription').'</td>';
    +    				print '<td>';
    +
    +    				$doleditor = new DolEditor('supplier_description', $object->desc_supplier, '', 160, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_PRODUCTDESC, ROWS_4, '90%');
    +    				$doleditor->Create();
    +
    +    				print '</td>';
    +    				print '</tr>';
    +				}
    +
     				if (is_object($hookmanager))
     				{
     					$parameters=array('id_fourn'=>$id_fourn,'prod_id'=>$object->id);
    @@ -733,16 +751,17 @@ SCRIPT;
     				$num = count($product_fourn_list);
     				if (($num + ($offset * $limit)) < $nbtotalofrecords) $num++;
     
    -			    print_barre_liste($langs->trans('SupplierPrices'), $page, $_SERVEUR ['PHP_SELF'], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy.png', 0, '', '', $limit, 1);
    +				print_barre_liste($langs->trans('SupplierPrices'), $page, $_SERVEUR ['PHP_SELF'], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy.png', 0, '', '', $limit, 1);
     
     				// Suppliers list title
    -			    print '<div class="div-table-responsive">';
    -			    print '<table class="noborder" width="100%">';
    +				print '<div class="div-table-responsive">';
    +				print '<table class="noborder" width="100%">';
     				if ($object->isProduct()) $nblignefour=4;
     				else $nblignefour=4;
     
     				$param="&id=".$object->id;
     				print '<tr class="liste_titre">';
    +				print_liste_field_titre("AppliedPricesFrom",$_SERVER["PHP_SELF"],"pfp.datec","",$param,"",$sortfield,$sortorder);
     				print_liste_field_titre("Suppliers",$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
     				print_liste_field_titre("SupplierRef",$_SERVER["PHP_SELF"],"","",$param,"",$sortfield,$sortorder);
     				if (!empty($conf->global->FOURN_PRODUCT_AVAILABILITY)) print_liste_field_titre("Availability",$_SERVER["PHP_SELF"],"pfp.fk_availability","",$param,"",$sortfield,$sortorder);
    @@ -765,18 +784,18 @@ SCRIPT;
     
     				if (is_array($product_fourn_list))
     				{
    -					$var=true;
     
     					foreach($product_fourn_list as $productfourn)
     					{
    -
    -
     						print '<tr class="oddeven">';
     
    +						// Date from
    +						print '<td>'.dol_print_date($productfourn->date_creation, 'dayhour').'</td>';
    +
     						// Supplier
     						print '<td>'.$productfourn->getSocNomUrl(1,'supplier').'</td>';
     
    -						// Supplier
    +						// Supplier ref
     						print '<td align="left">'.$productfourn->fourn_ref.'</td>';
     
     						// Availability
    @@ -880,7 +899,6 @@ else
     	print $langs->trans("ErrorUnknown");
     }
     
    -
     // End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/index.php b/htdocs/product/index.php
    index 9f11813fdee..56519e6f46b 100644
    --- a/htdocs/product/index.php
    +++ b/htdocs/product/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2006  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2014  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2014-2016  Charlie BENKE           <charlie@patas-monkey.com>
      * Copyright (C) 2015       Jean-François Ferry     <jfefe@aternatik.fr>
      *
    @@ -152,7 +152,6 @@ if (! empty($conf->product->enabled))
     	$statProducts.= '<tr class="oddeven">';
     	$statProducts.= '<td><a href="list.php?type=0&amp;tosell=1&amp;tobuy=1">'.$langs->trans("ProductsOnSellAndOnBuy").'</a></td><td align="right">'.round($prodser[0][3]).'</td>';
     	$statProducts.= "</tr>";
    -
     }
     if (! empty($conf->service->enabled))
     {
    @@ -168,7 +167,6 @@ if (! empty($conf->service->enabled))
     	$statServices.= '<tr class="oddeven">';
     	$statServices.= '<td><a href="list.php?type=1&amp;tosell=1&amp;tobuy=1">'.$langs->trans("ServicesOnSellAndOnBuy").'</a></td><td align="right">'.round($prodser[1][3]).'</td>';
     	$statServices.= "</tr>";
    -
     }
     $total=0;
     if ($type == '0')
    @@ -397,8 +395,8 @@ if (! empty($conf->global->MAIN_SHOW_PRODUCT_ACTIVITY_TRIM))
     
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
     
     
    @@ -420,7 +418,7 @@ function activitytrim($product_type)
     	$sql = "SELECT DATE_FORMAT(p.datep,'%Y') as annee, DATE_FORMAT(p.datep,'%m') as mois, SUM(fd.total_ht) as Mnttot";
     	$sql.= " FROM ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."facturedet as fd";
     	$sql.= " , ".MAIN_DB_PREFIX."paiement as p,".MAIN_DB_PREFIX."paiement_facture as pf";
    -	$sql.= " WHERE f.entity = " . $conf->entity;
    +	$sql.= " WHERE f.entity IN (".getEntity('invoice').")";
     	$sql.= " AND f.rowid = fd.fk_facture";
     	$sql.= " AND pf.fk_facture = f.rowid";
     	$sql.= " AND pf.fk_paiement= p.rowid";
    @@ -457,8 +455,6 @@ function activitytrim($product_type)
     		}
     		$i = 0;
     
    -		$var=true;
    -
     		while ($i < $num)
     		{
     			$objp = $db->fetch_object($result);
    @@ -466,7 +462,6 @@ function activitytrim($product_type)
     			{
     				if ($trim1+$trim2+$trim3+$trim4 > 0)
     				{
    -
     					print '<tr class="oddeven"><td align=left>'.$tmpyear.'</td>';
     					print '<td align=right>'.price($trim1).'</td>';
     					print '<td align=right>'.price($trim2).'</td>';
    @@ -500,7 +495,6 @@ function activitytrim($product_type)
     		}
     		if ($trim1+$trim2+$trim3+$trim4 > 0)
     		{
    -
     			print '<tr class="oddeven"><td align=left>'.$tmpyear.'</td>';
     			print '<td align=right>'.price($trim1).'</td>';
     			print '<td align=right>'.price($trim2).'</td>';
    diff --git a/htdocs/product/inventory/ajax/ajax.inventory.php b/htdocs/product/inventory/ajax/ajax.inventory.php
    index 4884d7ab065..56459ab7be9 100644
    --- a/htdocs/product/inventory/ajax/ajax.inventory.php
    +++ b/htdocs/product/inventory/ajax/ajax.inventory.php
    @@ -1,51 +1,50 @@
     <?php
     
    -    require '../../../main.inc.php';
    -    require_once DOL_DOCUMENT_ROOT.'/product/inventory/class/inventory.class.php';
    -  
    -    $get = GETPOST('get');
    -    $put = GETPOST('put');
    -    
    +require '../../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/product/inventory/class/inventory.class.php';
    +
    +$get = GETPOST('get');
    +$put = GETPOST('put');
    +
         switch ($put)
         {
             case 'qty':
             	if (empty($user->rights->stock->creer)) { echo -1; exit; }
    -            
    +
                 $fk_det_inventory = GETPOST('fk_det_inventory');
    -            
    +
                 $det = new Inventorydet($db);
                 if( $det->fetch( $fk_det_inventory))
                 {
                     $det->qty_view+=GETPOST('qty');
                     $res = $det->update($user);
    -                
    +
                     echo $det->qty_view;
                 }
                 else
                 {
                     echo -2;
    -            }            
    -           
    +            }
    +
                 break;
    -			
    +
             case 'pmp':
             	if (empty($user->rights->stock->creer) || empty($user->rights->stock->changePMP)) { echo -1; exit; }
    -            
    +
                 $fk_det_inventory = GETPOST('fk_det_inventory');
    -            
    +
                 $det = new Inventorydet($db);
                 if( $det->fetch( $fk_det_inventory))
                 {
                     $det->new_pmp=price2num(GETPOST('pmp'));
                     $det->update($user);
    -                
    +
                     echo $det->new_pmp;
                 }
                 else
                 {
                     echo -2;
    -            }            
    -            
    +            }
    +
                 break;
         }
    - 
    diff --git a/htdocs/product/inventory/card.php b/htdocs/product/inventory/card.php
    index 80b17a5e31d..eaa2f3dffc2 100644
    --- a/htdocs/product/inventory/card.php
    +++ b/htdocs/product/inventory/card.php
    @@ -53,7 +53,7 @@ $diroutputmassaction=$conf->stock->dir_output . '/temp/massgeneration/'.$user->i
     $hookmanager->initHooks(array('inventorycard'));     // Note that conf->hooks_modules contains array
     // Fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('inventory');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost('inventory','','search_');
     
     // Initialize array of search criterias
     $search_all=trim(GETPOST("search_all",'alpha'));
    @@ -224,12 +224,11 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     	    $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteInventory'), $langs->trans('ConfirmDeleteOrder'), 'confirm_delete', '', 0, 1);
     	}
     
    -	if (! $formconfirm) {
    -	    $parameters = array('lineid' => $lineid);
    -	    $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    -	    if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    -	    elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    -	}
    +	// Call Hook formConfirm
    +	$parameters = array('lineid' => $lineid);
    +	$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +	if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +	elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
     
     	// Print form confirm
     	print $formconfirm;
    @@ -337,7 +336,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
         		}
         		else
         		{
    -    			print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Modify').'</a>'."\n";
    +    			print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Modify').'</a>'."\n";
         		}
     
         		if ($permissiontodelete)
    @@ -346,7 +345,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
         		}
         		else
         		{
    -    			print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Delete').'</a>'."\n";
    +    			print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans('Delete').'</a>'."\n";
         		}
         	}
         	print '</div>'."\n";
    @@ -409,7 +408,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     	*/
     }
     
    -
     // End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/inventory/class/inventory.class.php b/htdocs/product/inventory/class/inventory.class.php
    index dc4f600b529..076e3392bc0 100644
    --- a/htdocs/product/inventory/class/inventory.class.php
    +++ b/htdocs/product/inventory/class/inventory.class.php
    @@ -38,6 +38,7 @@ class Inventory extends CommonObject
     	 * @var string ID to identify managed object
     	 */
     	public $element = 'inventory';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
    @@ -47,6 +48,7 @@ class Inventory extends CommonObject
     	 * @var array  Does inventory support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     	 */
     	public $ismultientitymanaged = 1;
    +
     	/**
     	 * @var string String with name of icon for inventory
     	 */
    @@ -76,7 +78,7 @@ class Inventory extends CommonObject
     	 */
     	public $fields=array(
     		'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'visible'=>-1, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>'Id',),
    -		'ref'        => array('type'=>'varchar(64)', 'label'=>'Ref', 'visible'=>1, 'enabled'=>1, 'position'=>10, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>'Reference of object', 'css'=>'maxwidth200'),
    +		'ref' => array('type'=>'varchar(64)', 'label'=>'Ref', 'visible'=>1, 'enabled'=>1, 'position'=>10, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>'Reference of object', 'css'=>'maxwidth200'),
     		'entity'         => array('type'=>'integer', 'label'=>'Entity', 'visible'=>0, 'enabled'=>1, 'position'=>20, 'notnull'=>1, 'index'=>1,),
     		'title'          => array('type'=>'varchar(255)', 'label'=>'Label', 'visible'=>1, 'enabled'=>1, 'position'=>25, 'css'=>'minwidth300'),
     		'fk_warehouse'   => array('type'=>'integer:Entrepot:product/stock/class/entrepot.class.php', 'label'=>'Warehouse', 'visible'=>1, 'enabled'=>1, 'position'=>30, 'index'=>1, 'help'=>'LinkToThirparty'),
    @@ -97,19 +99,53 @@ class Inventory extends CommonObject
     		'status' => array('type'=>'integer', 'label'=>'Status', 'visible'=>1, 'enabled'=>1, 'position'=>1000, 'default'=>0, 'arrayofkeyval'=>array(0=>'Todo', 1=>'Done', -1=>'Cancel')),
     	);
     
    +	/**
    +	 * @var int ID
    +	 */
     	public $rowid;
    +
    +	/**
    +	 * @var string Ref
    +	 */
     	public $ref;
    +
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_warehouse;
    +
     	public $date_inventory;
     	public $title;
    +
    +	/**
    +	 * @var int Status
    +	 */
     	public $status;
    +
     	public $date_creation;
     	public $date_validation;
     	public $tms;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_modif;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_valid;
    +
     	public $import_key;
     	// END MODULEBUILDER PROPERTIES
     
    @@ -121,18 +157,22 @@ class Inventory extends CommonObject
     	 * @var int    Name of subtable line
     	 */
     	//public $table_element_line = 'inventorydet';
    +
     	/**
     	 * @var int    Field with ID of parent key if this field has a parent
     	 */
     	//public $fk_element = 'fk_inventory';
    +
     	/**
     	 * @var int    Name of subtable class that manage subtable lines
     	 */
     	//public $class_element_line = 'Inventoryline';
    +
     	/**
     	 * @var array  Array of child tables (child tables to delete before deleting a record)
     	 */
     	//protected $childtables=array('inventorydet');
    +
     	/**
     	 * @var InventoryLine[]     Array of subtable lines
     	 */
    @@ -207,6 +247,8 @@ class Inventory extends CommonObject
     			$this->errors = $object->errors;
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (!$error) {
     			$this->db->commit();
    @@ -333,6 +375,7 @@ class Inventory extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return the status
     	 *
    @@ -342,50 +385,51 @@ class Inventory extends CommonObject
     	 */
     	static function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
     		{
     			$prefix='';
     			if ($status == 0) return $langs->trans('Draft');
    -			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == -1) return $langs->trans('Canceled');
    +			elseif ($status == 1) return $langs->trans('Enabled');
    +			elseif ($status == -1) return $langs->trans('Canceled');
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($status == 0) return $langs->trans('Draft');
    -			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == -1) return $langs->trans('Canceled');
    +			elseif ($status == 1) return $langs->trans('Enabled');
    +			elseif ($status == -1) return $langs->trans('Canceled');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status == 0) return img_picto($langs->trans('Draft'),'statut0').' '.$langs->trans('Draft');
    -			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    -			if ($status == -1) return img_picto($langs->trans('Canceled'),'statut6').' '.$langs->trans('Canceled');
    +			elseif ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    +			elseif ($status == -1) return img_picto($langs->trans('Canceled'),'statut6').' '.$langs->trans('Canceled');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status == 0) return img_picto($langs->trans('Draft'),'statut0');
    -			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == -1) return img_picto($langs->trans('Canceled'),'statut6');
    +			elseif ($status == 1) return img_picto($langs->trans('Enabled'),'statut4');
    +			elseif ($status == -1) return img_picto($langs->trans('Canceled'),'statut6');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status == 0) return img_picto($langs->trans('Draft'),'statut0').' '.$langs->trans('Draft');
    -			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    -			if ($status == -1) return img_picto($langs->trans('Canceled'),'statut6').' '.$langs->trans('Canceled');
    +			elseif ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    +			elseif ($status == -1) return img_picto($langs->trans('Canceled'),'statut6').' '.$langs->trans('Canceled');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status == 0) return $langs->trans('Draft').' '.img_picto($langs->trans('Draft'),'statut0');
    -			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == -1) return $langs->trans('Canceled').' '.img_picto($langs->trans('Canceled'),'statut6');
    +			elseif ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
    +			elseif ($status == -1) return $langs->trans('Canceled').' '.img_picto($langs->trans('Canceled'),'statut6');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($status == 0) return $langs->trans('Draft').' '.img_picto($langs->trans('Draft'),'statut0');
    -			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == -1) return $langs->trans('Canceled').' '.img_picto($langs->trans('Canceled'),'statut6');
    +			elseif ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
    +			elseif ($status == -1) return $langs->trans('Canceled').' '.img_picto($langs->trans('Canceled'),'statut6');
     		}
     	}
     
    @@ -435,7 +479,6 @@ class Inventory extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -453,7 +496,6 @@ class Inventory extends CommonObject
     	{
     		$this->initAsSpecimenCommon();
     	}
    -
     }
     
     /**
    @@ -465,10 +507,12 @@ class InventoryObjectLine
     	 * @var int ID
     	 */
     	public $id;
    +
     	/**
     	 * @var mixed Sample line property 1
     	 */
     	public $prop1;
    +
     	/**
     	 * @var mixed Sample line property 2
     	 */
    diff --git a/htdocs/product/inventory/lib/inventory.lib.php b/htdocs/product/inventory/lib/inventory.lib.php
    index aa8c9c9677d..d6230e4f3e7 100644
    --- a/htdocs/product/inventory/lib/inventory.lib.php
    +++ b/htdocs/product/inventory/lib/inventory.lib.php
    @@ -25,7 +25,7 @@
     /**
      *  Define head array for tabs of inventory tools setup pages
      *
    - *  @return			Array of head
    + *  @return array Array of head
      */
     function inventoryAdminPrepareHead()
     {
    @@ -40,7 +40,7 @@ function inventoryAdminPrepareHead()
         $head[$h][1] = $langs->trans("Parameters");
         $head[$h][2] = 'settings';
         $h++;
    -    
    +
     
         // Show more tabs from modules
         // Entries must be declared in modules descriptor with line
    @@ -55,10 +55,19 @@ function inventoryAdminPrepareHead()
         return $head;
     }
     
    +/**
    + *  Define head array for tabs of inventory tools setup pages
    + *
    + *  @param  Inventory   $inventory      Object inventory
    + *  @param  string      $title          parameter
    + *  @param  string      $get            parameter
    + *
    + *  @return array                       Array of head
    + */
     function inventoryPrepareHead(&$inventory, $title='Inventory', $get='')
     {
     	global $langs;
    -	
    +
     	return array(
     		array(dol_buildpath('/product/inventory/card.php?id='.$inventory->id.$get, 1), $langs->trans($title),'inventory')
     	);
    @@ -66,26 +75,33 @@ function inventoryPrepareHead(&$inventory, $title='Inventory', $get='')
     
     
     
    +/**
    + *  Define head array for tabs of inventory tools setup pages
    + *
    + *  @param   Inventory  $inventory      Object inventory
    + *
    + *  @return string                      html of products
    + */
     function inventorySelectProducts(&$inventory)
     {
     	global $conf,$db,$langs;
    -	
    +
     	$except_product_id = array();
    -	
    +
     	foreach ($inventory->Inventorydet as $Inventorydet)
     	{
     		$except_product_id[] = $Inventorydet->fk_product;
     	}
    -	
    +
     	ob_start();
     	$form = new Form($db);
     	$form->select_produits(-1, 'fk_product');
    -	
    +
     	$TChildWarehouses = array($inventory->fk_warehouse);
     	$e = new Entrepot($db);
     	$e->fetch($inventory->fk_warehouse);
     	if(method_exists($e, 'get_children_warehouses')) $e->get_children_warehouses($e->id, $TChildWarehouses);
    -	
    +
     	$Tab = array();
     	$sql = 'SELECT rowid, label
     			FROM '.MAIN_DB_PREFIX.'entrepot WHERE rowid IN('.implode(', ', $TChildWarehouses).')';
    @@ -96,9 +112,8 @@ function inventorySelectProducts(&$inventory)
     	}
     	print '&nbsp;&nbsp;&nbsp;';
     	print $langs->trans('Warehouse').' : '.$form::selectarray('fk_warehouse', $Tab);
    -	
    +
     	$select_html = ob_get_clean();
    -	
    +
     	return $select_html;
     }
    -
    diff --git a/htdocs/product/inventory/list.php b/htdocs/product/inventory/list.php
    index 74422cc2601..95bb82aea50 100644
    --- a/htdocs/product/inventory/list.php
    +++ b/htdocs/product/inventory/list.php
    @@ -59,7 +59,7 @@ $diroutputmassaction=$conf->inventory->dir_output . '/temp/massgeneration/'.$use
     $hookmanager->initHooks(array('inventorylist'));     // Note that conf->hooks_modules contains array
     // Fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('inventory');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // Default sort order (if not yet defined by previous GETPOST)
     if (! $sortfield) $sortfield="t.".key($object->fields);   // Set here default search field. By default 1st field in definition.
    @@ -525,7 +525,7 @@ if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nb
     	$hidegeneratedfilelistifempty=1;
     	if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) $hidegeneratedfilelistifempty=0;
     
    -	require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php');
    +	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     	$formfile = new FormFile($db);
     
     	// Show list of available documents
    diff --git a/htdocs/product/inventory/tpl/inventory.tpl.php b/htdocs/product/inventory/tpl/inventory.tpl.php
    index 1946e63918d..0b89ac8a647 100644
    --- a/htdocs/product/inventory/tpl/inventory.tpl.php
    +++ b/htdocs/product/inventory/tpl/inventory.tpl.php
    @@ -165,7 +165,6 @@ if (empty($conf) || ! is_object($conf))
     				<?php } ?>
     			</tr>
     			<?php $i++;
    -
             }
     
     		_footerList($view,$total_pmp,$total_pmp_actual,$total_pa,$total_pa_actual, $total_current_pa,$total_current_pa_actual);
    @@ -202,7 +201,7 @@ if (empty($conf) || ! is_object($conf))
     			<?php if ($can_validate == 1) { ?>
     
     				<!-- <a href="<?php echo $view_url; ?>?id=<?php echo $object->id; ?>&action=exportCSV" class="butAction"><?php echo $langs->trans('ExportCSV') ?></a> -->
    -				<a href="#" title="<?php echo $langs->trans('InventoryAlreadyValidated'); ?>" class="butActionRefused"><?php echo $langs->trans('Delete') ?></a>
    +				<a href="#" title="<?php echo $langs->trans('InventoryAlreadyValidated'); ?>" class="butActionRefused classfortooltip"><?php echo $langs->trans('Delete') ?></a>
     
     			<?php } ?>
     		</div>
    diff --git a/htdocs/product/list.php b/htdocs/product/list.php
    index 7c7619fe0d5..5047ba16100 100644
    --- a/htdocs/product/list.php
    +++ b/htdocs/product/list.php
    @@ -1,9 +1,9 @@
     <?php
     /* Copyright (C) 2001-2006  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2012-2016  Marcos García           <marcosgdf@gmail.com>
    - * Copyright (C) 2013-2016	Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2013-2018	Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2013-2015  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2013       Jean Heimburger         <jean@tiaris.info>
      * Copyright (C) 2013       Cédric Salvador         <csalvador@gpcsolutions.fr>
    @@ -53,7 +53,7 @@ $sall=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alp
     $search_ref=GETPOST("search_ref");
     $search_barcode=GETPOST("search_barcode");
     $search_label=GETPOST("search_label");
    -$search_type = GETPOST("search_type",'int');
    +$search_type = GETPOST("search_type", 'int');
     $search_sale = GETPOST("search_sale");
     $search_categ = GETPOST("search_categ",'int');
     $search_tosell = GETPOST("search_tosell", 'int');
    @@ -66,11 +66,11 @@ $search_accountancy_code_buy = GETPOST("search_accountancy_code_buy",'alpha');
     $optioncss = GETPOST('optioncss','alpha');
     $type=GETPOST("type","int");
     
    -//Show/hide child products. Hidden by default
    -if (!$_POST) {
    -	$search_hidechildproducts = 'on';
    +//Show/hide child products
    +if (!empty($conf->variants->enabled) && ! empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD)) {
    +	$show_childproducts = GETPOST('search_show_childproducts');
     } else {
    -	$search_hidechildproducts = GETPOST('search_hidechildproducts');
    +	$show_childproducts = '';
     }
     
     $diroutputmassaction=$conf->product->dir_output . '/temp/massgeneration/'.$user->id;
    @@ -99,7 +99,7 @@ $form=new Form($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('product');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     if (empty($action)) $action='list';
     
    @@ -120,7 +120,7 @@ else $result=restrictedArea($user,'produit|service','','','','','',$objcanvas);
     
     // Define virtualdiffersfromphysical
     $virtualdiffersfromphysical=0;
    -if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER))
    +if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) || ! empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) )
     {
     	$virtualdiffersfromphysical=1;		// According to increase/decrease stock options, virtual and physical stock may differs.
     }
    @@ -219,6 +219,8 @@ if (empty($reshook))
     		$search_tobuy="";
     		$search_tobatch='';
     		//$search_type='';						// There is 2 types of list: a list of product and a list of services. No list with both. So when we clear search criteria, we must keep the filter on type.
    +
    +		$show_childproducts = '';
     		$search_accountancy_code_sell='';
     		$search_accountancy_code_buy='';
     		$search_array_options=array();
    @@ -265,7 +267,7 @@ $sql.= ' p.fk_product_type, p.duration, p.tosell, p.tobuy, p.seuil_stock_alerte,
     $sql.= ' p.tobatch, p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export, p.accountancy_code_buy,';
     $sql.= ' p.datec as date_creation, p.tms as date_update, p.pmp,';
     $sql.= ' MIN(pfp.unitprice) as minsellprice';
    -if (!empty($conf->variants->enabled) && $search_hidechildproducts && ($search_type === 0)) {
    +if (!empty($conf->variants->enabled) && (!empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD) && ! $show_childproducts )) {
     	$sql .= ', pac.rowid prod_comb_id';
     }
     // Add fields from extrafields
    @@ -282,10 +284,12 @@ if (! empty($search_categ) || ! empty($catid)) $sql.= ' LEFT JOIN '.MAIN_DB_PREF
     $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON p.rowid = pfp.fk_product";
     // multilang
     if (! empty($conf->global->MAIN_MULTILANGS)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_lang as pl ON pl.fk_product = p.rowid AND pl.lang = '".$langs->getDefaultLang() ."'";
    -if (!empty($conf->variants->enabled) && $search_hidechildproducts && ($search_type === 0)) {
    +
    +if (!empty($conf->variants->enabled) && (!empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD) && ! $show_childproducts )) {
     	$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_attribute_combination pac ON pac.fk_product_child = p.rowid";
     }
     
    +
     $sql.= ' WHERE p.entity IN ('.getEntity('product').')';
     if ($sall) $sql .= natural_search(array_keys($fieldstosearchall), $sall);
     // if the type is not 1, we show all products (type = 0,2,3)
    @@ -294,6 +298,11 @@ if (dol_strlen($search_type) && $search_type != '-1')
     	if ($search_type == 1) $sql.= " AND p.fk_product_type = 1";
     	else $sql.= " AND p.fk_product_type <> 1";
     }
    +
    +if (!empty($conf->variants->enabled) && (!empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD) && ! $show_childproducts )) {
    +	$sql .= " AND pac.rowid IS NULL";
    +}
    +
     if ($search_ref)     $sql .= natural_search('p.ref', $search_ref);
     if ($search_label)   $sql .= natural_search('p.label', $search_label);
     if ($search_barcode) $sql .= natural_search('p.barcode', $search_barcode);
    @@ -308,7 +317,7 @@ if ($fourn_id > 0)  $sql.= " AND pfp.fk_soc = ".$fourn_id;
     if ($search_tobatch != '' && $search_tobatch >= 0)   $sql.= " AND p.tobatch = ".$db->escape($search_tobatch);
     if ($search_accountancy_code_sell) $sql.= natural_search('p.accountancy_code_sell', $search_accountancy_code_sell);
     if ($search_accountancy_code_buy)  $sql.= natural_search('p.accountancy_code_buy', $search_accountancy_code_buy);
    -if (!empty($conf->variants->enabled) && $search_hidechildproducts && ($search_type === 0)) $sql .= " AND pac.rowid IS NULL";
    +
     // Add where from extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
     // Add where from hooks
    @@ -318,7 +327,10 @@ $sql.=$hookmanager->resPrint;
     $sql.= " GROUP BY p.rowid, p.ref, p.label, p.barcode, p.price, p.price_ttc, p.price_base_type,";
     $sql.= " p.fk_product_type, p.duration, p.tosell, p.tobuy, p.seuil_stock_alerte, p.desiredstock,";
     $sql.= ' p.datec, p.tms, p.entity, p.tobatch, p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export, p.accountancy_code_buy, p.pmp';
    -if (!empty($conf->variants->enabled) && $search_hidechildproducts && ($search_type === 0)) $sql .= ', pac.rowid';
    +
    +if (!empty($conf->variants->enabled) && (!empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD) && ! $show_childproducts )) {
    +	$sql .= ', pac.rowid';
    +}
     // Add fields from extrafields
     if (! empty($extrafields->attributes[$object->table_element]['label'])) {
     	foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key : '');
    @@ -345,6 +357,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
     $sql.= $db->plimit($limit + 1, $offset);
     
     $resql = $db->query($sql);
    +
     if ($resql)
     {
     	$num = $db->num_rows($resql);
    @@ -392,6 +405,7 @@ if ($resql)
     	if ($search_tobuy != '') $param.="&search_tobuy=".urlencode($search_tobuy);
     	if ($fourn_id > 0) $param.=($fourn_id?"&fourn_id=".$fourn_id:"");
     	if ($seach_categ) $param.=($search_categ?"&search_categ=".urlencode($search_categ):"");
    +	if ($show_childproducts) $param.=($show_childproducts?"&search_show_childproducts=".urlencode($show_childproducts):"");
     	if ($type != '') $param.='&type='.urlencode($type);
     	if ($search_type != '') $param.='&search_type='.urlencode($search_type);
     	if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss);
    @@ -403,6 +417,7 @@ if ($resql)
     
     	// List of mass actions available
     	$arrayofmassactions =  array(
    +		'generate_doc'=>$langs->trans("Generate"),
     	//'presend'=>$langs->trans("SendByMail"),
     	//'builddoc'=>$langs->trans("PDFMerge"),
     	);
    @@ -450,530 +465,521 @@ if ($resql)
     		print "</div><br>";
     	}
     
    -	if (! empty($canvas) && file_exists(DOL_DOCUMENT_ROOT.'/product/canvas/'.$canvas.'/actions_card_'.$canvas.'.class.php'))
    +	if ($sall)
     	{
    -		$fieldlist = $object->field_list;
    -		$datas = $object->list_datas;
    -		$picto='title.png';
    -		$title_picto = img_picto('',$picto);
    -		$title_text = $title;
    -
    -		// Default templates directory
    -		$template_dir = DOL_DOCUMENT_ROOT . '/product/canvas/'.$canvas.'/tpl/';
    -		// Check if a custom template is present
    -		if (file_exists(DOL_DOCUMENT_ROOT . '/theme/'.$conf->theme.'/tpl/product/'.$canvas.'/list.tpl.php'))
    -		{
    -			$template_dir = DOL_DOCUMENT_ROOT . '/theme/'.$conf->theme.'/tpl/product/'.$canvas.'/';
    -		}
    -
    -		include $template_dir.'list.tpl.php';	// Include native PHP templates
    +		foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
    +		print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall).'</div>';
     	}
    -	else
    +
    +	// Filter on categories
    +	$moreforfilter='';
    +	if (! empty($conf->categorie->enabled))
     	{
    -		if ($sall)
    +		$moreforfilter.='<div class="divsearchfield">';
    +		$moreforfilter.=$langs->trans('Categories'). ': ';
    +		$moreforfilter.=$htmlother->select_categories(Categorie::TYPE_PRODUCT,$search_categ,'search_categ',1);
    +		$moreforfilter.='</div>';
    +	}
    +
    +	//Show/hide child products. Hidden by default
    +	if (!empty($conf->variants->enabled) && !empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD )) {
    +		$moreforfilter.='<div class="divsearchfield">';
    +		$moreforfilter.= '<input type="checkbox" id="search_show_childproducts" name="search_show_childproducts"'.($show_childproducts ? 'checked="checked"':'').'>';
    +		$moreforfilter.= ' <label for="search_show_childproducts">'.$langs->trans('ShowChildProducts').'</label>';
    +		$moreforfilter.='</div>';
    +	}
    +
    +	$parameters=array();
    +	$reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
    +	if (empty($reshook)) $moreforfilter.=$hookmanager->resPrint;
    +	else $moreforfilter=$hookmanager->resPrint;
    +
    +	if ($moreforfilter)
    +	{
    +		print '<div class="liste_titre liste_titre_bydiv centpercent">';
    +		print $moreforfilter;
    +		print '</div>';
    +	}
    +
    +	$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
    +	$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
    +	if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1);
    +
    +	print '<div class="div-table-responsive">';
    +	print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
    +
    +	// Lines with input filters
    +	print '<tr class="liste_titre_filter">';
    +	if (! empty($arrayfields['p.ref']['checked']))
    +	{
    +		print '<td class="liste_titre" align="left">';
    +		print '<input class="flat" type="text" name="search_ref" size="8" value="'.dol_escape_htmltag($search_ref).'">';
    +		print '</td>';
    +	}
    +	if (! empty($arrayfields['pfp.ref_fourn']['checked']))
    +	{
    +		print '<td class="liste_titre" align="left">';
    +		print '<input class="flat" type="text" name="search_ref_supplier" size="8" value="'.dol_escape_htmltag($search_ref_supplier).'">';
    +		print '</td>';
    +	}
    +	if (! empty($arrayfields['p.label']['checked']))
    +	{
    +		print '<td class="liste_titre" align="left">';
    +		print '<input class="flat" type="text" name="search_label" size="12" value="'.dol_escape_htmltag($search_label).'">';
    +		print '</td>';
    +	}
    +	// Type
    +	if (! empty($arrayfields['p.fk_product_type']['checked']))
    +	{
    +		print '<td class="liste_titre" align="left">';
    +		$array=array('-1'=>'&nbsp;', '0'=>$langs->trans('Product'), '1'=>$langs->trans('Service'));
    +		print $form->selectarray('search_type', $array, $search_type);
    +		print '</td>';
    +	}
    +	// Barcode
    +	if (! empty($arrayfields['p.barcode']['checked']))
    +	{
    +		print '<td class="liste_titre">';
    +		print '<input class="flat" type="text" name="search_barcode" size="6" value="'.dol_escape_htmltag($search_barcode).'">';
    +		print '</td>';
    +	}
    +	// Duration
    +	if ((string) $type == '1' && ! empty($arrayfields['p.duration']['checked']))
    +	{
    +		print '<td class="liste_titre">';
    +		print '&nbsp;';
    +		print '</td>';
    +	}
    +	// Sell price
    +	if (! empty($arrayfields['p.sellprice']['checked']))
    +	{
    +		print '<td class="liste_titre" align="right">';
    +		print '</td>';
    +	}
    +	// Minimum buying Price
    +	if (! empty($arrayfields['p.minbuyprice']['checked']))
    +	{
    +		print '<td class="liste_titre">';
    +		print '&nbsp;';
    +		print '</td>';
    +	}
    +	// Number buying Price
    +	if (! empty($arrayfields['p.numbuyprice']['checked']))
    +	{
    +		print '<td class="liste_titre">';
    +		print '&nbsp;';
    +		print '</td>';
    +	}
    +	// WAP
    +	if (! empty($arrayfields['p.pmp']['checked']))
    +	{
    +		print '<td class="liste_titre">';
    +		print '&nbsp;';
    +		print '</td>';
    +	}
    +	// Limit for alert
    +	if (! empty($arrayfields['p.seuil_stock_alerte']['checked']))
    +	{
    +		print '<td class="liste_titre">';
    +		print '&nbsp;';
    +		print '</td>';
    +	}
    +	// Desired stock
    +	if (! empty($arrayfields['p.desiredstock']['checked']))
    +	{
    +		print '<td class="liste_titre">';
    +		print '&nbsp;';
    +		print '</td>';
    +	}
    +	// Stock
    +	if (! empty($arrayfields['p.stock']['checked'])) print '<td class="liste_titre">&nbsp;</td>';
    +	// Stock
    +	if (! empty($arrayfields['stock_virtual']['checked'])) print '<td class="liste_titre">&nbsp;</td>';
    +	// To batch
    +	if (! empty($arrayfields['p.tobatch']['checked'])) print '<td class="liste_titre center">'.$form->selectyesno($search_tobatch, '', '', '', 1).'</td>';
    +	// Accountancy code sell
    +	if (! empty($arrayfields['p.accountancy_code_sell']['checked'])) print '<td class="liste_titre"><input class="flat" type="text" name="search_accountancy_code_sell" size="6" value="'.dol_escape_htmltag($search_accountancy_code_sell).'"></td>';
    +	// Accountancy code sell
    +	if (! empty($arrayfields['p.accountancy_code_buy']['checked'])) print '<td class="liste_titre"><input class="flat" type="text" name="search_accountancy_code_buy" size="6" value="'.dol_escape_htmltag($search_accountancy_code_buy).'"></td>';
    +	// Extra fields
    +	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
    +	// Fields from hook
    +	$parameters=array('arrayfields'=>$arrayfields);
    +	$reshook=$hookmanager->executeHooks('printFieldListOption',$parameters);    // Note that $action and $object may have been modified by hook
    +	print $hookmanager->resPrint;
    +	// Date creation
    +	if (! empty($arrayfields['p.datec']['checked']))
    +	{
    +		print '<td class="liste_titre">';
    +		print '</td>';
    +	}
    +	// Date modification
    +	if (! empty($arrayfields['p.tms']['checked']))
    +	{
    +		print '<td class="liste_titre">';
    +		print '</td>';
    +	}
    +	if (! empty($arrayfields['p.tosell']['checked']))
    +	{
    +		print '<td class="liste_titre" align="right">';
    +		print $form->selectarray('search_tosell', array('0'=>$langs->trans('ProductStatusNotOnSellShort'),'1'=>$langs->trans('ProductStatusOnSellShort')),$search_tosell,1);
    +		print '</td >';
    +	}
    +	if (! empty($arrayfields['p.tobuy']['checked']))
    +	{
    +		print '<td class="liste_titre" align="right">';
    +		print $form->selectarray('search_tobuy', array('0'=>$langs->trans('ProductStatusNotOnBuyShort'),'1'=>$langs->trans('ProductStatusOnBuyShort')),$search_tobuy,1);
    +		print '</td>';
    +	}
    +	print '<td class="liste_titre" align="middle">';
    +	$searchpicto=$form->showFilterButtons();
    +	print $searchpicto;
    +	print '</td>';
    +
    +	print '</tr>';
    +
    +	print '<tr class="liste_titre">';
    +	if (! empty($arrayfields['p.ref']['checked']))  print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"],"p.ref","",$param,"",$sortfield,$sortorder);
    +	if (! empty($arrayfields['pfp.ref_fourn']['checked']))  print_liste_field_titre($arrayfields['pfp.ref_fourn']['label'], $_SERVER["PHP_SELF"],"pfp.ref_fourn","",$param,"",$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.label']['checked']))  print_liste_field_titre($arrayfields['p.label']['label'], $_SERVER["PHP_SELF"],"p.label","",$param,"",$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.fk_product_type']['checked']))  print_liste_field_titre($arrayfields['p.fk_product_type']['label'], $_SERVER["PHP_SELF"],"p.fk_product_type","",$param,"",$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.barcode']['checked']))  print_liste_field_titre($arrayfields['p.barcode']['label'], $_SERVER["PHP_SELF"],"p.barcode","",$param,"",$sortfield,$sortorder);
    +	if ((string) $type == '1' && ! empty($arrayfields['p.duration']['checked']))  print_liste_field_titre($arrayfields['p.duration']['label'], $_SERVER["PHP_SELF"],"p.duration","",$param,'align="center"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.sellprice']['checked']))  print_liste_field_titre($arrayfields['p.sellprice']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.minbuyprice']['checked']))  print_liste_field_titre($arrayfields['p.minbuyprice']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.numbuyprice']['checked']))  print_liste_field_titre($arrayfields['p.numbuyprice']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.pmp']['checked']))  print_liste_field_titre($arrayfields['p.pmp']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.seuil_stock_alerte']['checked']))  print_liste_field_titre($arrayfields['p.seuil_stock_alerte']['label'], $_SERVER["PHP_SELF"],"p.seuil_stock_alerte","",$param,'align="right"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.desiredstock']['checked']))  print_liste_field_titre($arrayfields['p.desiredstock']['label'], $_SERVER["PHP_SELF"],"p.desiredstock","",$param,'align="right"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.stock']['checked']))  print_liste_field_titre($arrayfields['p.stock']['label'], $_SERVER["PHP_SELF"],"p.stock","",$param,'align="right"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['stock_virtual']['checked']))  print_liste_field_titre($arrayfields['stock_virtual']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.tobatch']['checked']))  print_liste_field_titre($arrayfields['p.tobatch']['label'], $_SERVER["PHP_SELF"],"p.tobatch","",$param,'align="center"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.accountancy_code_sell']['checked']))  print_liste_field_titre($arrayfields['p.accountancy_code_sell']['label'], $_SERVER["PHP_SELF"],"p.accountancy_code_sell","",$param,'',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.accountancy_code_buy']['checked']))  print_liste_field_titre($arrayfields['p.accountancy_code_buy']['label'], $_SERVER["PHP_SELF"],"p.accountancy_code_buy","",$param,'',$sortfield,$sortorder);
    +	// Extra fields
    +	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
    +	// Hook fields
    +	$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;
    +	if (! empty($arrayfields['p.datec']['checked']))  print_liste_field_titre($arrayfields['p.datec']['label'],$_SERVER["PHP_SELF"],"p.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.tms']['checked']))    print_liste_field_titre($arrayfields['p.tms']['label'],$_SERVER["PHP_SELF"],"p.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.tosell']['checked'])) print_liste_field_titre($arrayfields['p.tosell']['label'],$_SERVER["PHP_SELF"],"p.tosell","",$param,'align="right"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['p.tobuy']['checked']))  print_liste_field_titre($arrayfields['p.tobuy']['label'],$_SERVER["PHP_SELF"],"p.tobuy","",$param,'align="right"',$sortfield,$sortorder);
    +	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
    +	print "</tr>\n";
    +
    +
    +	$product_static=new Product($db);
    +	$product_fourn =new ProductFournisseur($db);
    +
    +	$i = 0;
    +	$totalarray=array();
    +	while ($i < min($num,$limit))
    +	{
    +		$obj = $db->fetch_object($resql);
    +
    +		// Multilangs
    +		if (! empty($conf->global->MAIN_MULTILANGS)) // si l'option est active
     		{
    -			foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
    -			print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall).'</div>';
    +			$sql = "SELECT label";
    +			$sql.= " FROM ".MAIN_DB_PREFIX."product_lang";
    +			$sql.= " WHERE fk_product=".$obj->rowid;
    +			$sql.= " AND lang='". $db->escape($langs->getDefaultLang()) ."'";
    +			$sql.= " LIMIT 1";
    +
    +			$result = $db->query($sql);
    +			if ($result)
    +			{
    +				$objtp = $db->fetch_object($result);
    +				if (! empty($objtp->label)) $obj->label = $objtp->label;
    +			}
     		}
     
    -		// Filter on categories
    -		$moreforfilter='';
    -		if (! empty($conf->categorie->enabled))
    +		$product_static->id = $obj->rowid;
    +		$product_static->ref = $obj->ref;
    +		$product_static->ref_fourn = $obj->ref_supplier;
    +		$product_static->label = $obj->label;
    +		$product_static->type = $obj->fk_product_type;
    +		$product_static->status_buy = $obj->tobuy;
    +		$product_static->status     = $obj->tosell;
    +		$product_static->status_batch = $obj->tobatch;
    +		$product_static->entity = $obj->entity;
    +		$product_static->pmp = $obj->pmp;
    +		$product_static->accountancy_code_sell = $obj->accountancy_code_sell;
    +		$product_static->accountancy_code_sell_export = $obj->accountancy_code_sell_export;
    +		$product_static->accountancy_code_sell_intra = $obj->accountancy_code_sell_intra;
    +		$product_static->accountancy_code_buy = $obj->accountancy_code_buy;
    +
    +		if ((! empty($conf->stock->enabled) && $user->rights->stock->lire && $search_type != 1) || ! empty($conf->global->STOCK_DISABLE_OPTIM_LOAD))	// To optimize call of load_stock
     		{
    -			$moreforfilter.='<div class="divsearchfield">';
    -			$moreforfilter.=$langs->trans('Categories'). ': ';
    -			$moreforfilter.=$htmlother->select_categories(Categorie::TYPE_PRODUCT,$search_categ,'search_categ',1);
    -			$moreforfilter.='</div>';
    +			if ($obj->fk_product_type != 1 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))    // Not a service
    +			{
    +				$product_static->load_stock('nobatch');             // Load stock_reel + stock_warehouse. This also call load_virtual_stock()
    +			}
     		}
     
    -		//Show/hide child products. Hidden by default
    -		if (!empty($conf->variants->enabled) && $search_type === 0) {
    -			$moreforfilter.='<div class="divsearchfield">';
    -			$moreforfilter.= '<input type="checkbox" id="search_hidechildproducts" name="search_hidechildproducts" value="on"'.($search_hidechildproducts ? 'checked="checked"' : '').'>';
    -			$moreforfilter.= ' <label for="search_hidechildproducts">'.$langs->trans('HideChildProducts').'</label>';
    -			$moreforfilter.='</div>';
    -		}
     
    -		$parameters=array();
    -		$reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
    -		if (empty($reshook)) $moreforfilter.=$hookmanager->resPrint;
    -		else $moreforfilter=$hookmanager->resPrint;
    +		print '<tr class="oddeven">';
     
    -		if ($moreforfilter)
    -		{
    -			print '<div class="liste_titre liste_titre_bydiv centpercent">';
    -			print $moreforfilter;
    -			print '</div>';
    -		}
    -
    -		$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
    -		$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
    -		if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1);
    -
    -		print '<div class="div-table-responsive">';
    -		print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
    -
    -		// Lines with input filters
    -		print '<tr class="liste_titre_filter">';
    +		// Ref
     		if (! empty($arrayfields['p.ref']['checked']))
     		{
    -			print '<td class="liste_titre" align="left">';
    -			print '<input class="flat" type="text" name="search_ref" size="8" value="'.dol_escape_htmltag($search_ref).'">';
    -			print '</td>';
    +			print '<td class="tdoverflowmax200">';
    +			print $product_static->getNomUrl(1);
    +			print "</td>\n";
    +			if (! $i) $totalarray['nbfield']++;
     		}
    +		// Ref supplier
     		if (! empty($arrayfields['pfp.ref_fourn']['checked']))
     		{
    -			print '<td class="liste_titre" align="left">';
    -			print '<input class="flat" type="text" name="search_ref_supplier" size="8" value="'.dol_escape_htmltag($search_ref_supplier).'">';
    -			print '</td>';
    +			print '<td class="tdoverflowmax200">';
    +			print $product_static->getNomUrl(1);
    +			print "</td>\n";
    +			if (! $i) $totalarray['nbfield']++;
     		}
    +		// Label
     		if (! empty($arrayfields['p.label']['checked']))
     		{
    -			print '<td class="liste_titre" align="left">';
    -			print '<input class="flat" type="text" name="search_label" size="12" value="'.dol_escape_htmltag($search_label).'">';
    -			print '</td>';
    +			print '<td class="tdoverflowmax200">'.dol_trunc($obj->label,40).'</td>';
    +			if (! $i) $totalarray['nbfield']++;
     		}
    +
     		// Type
     		if (! empty($arrayfields['p.fk_product_type']['checked']))
     		{
    -			print '<td class="liste_titre" align="left">';
    -			$array=array('-1'=>'&nbsp;', '0'=>$langs->trans('Product'), '1'=>$langs->trans('Service'));
    -			print $form->selectarray('search_type', $array, $search_type);
    -			print '</td>';
    +			print '<td>'.$obj->fk_product_type.'</td>';
    +			if (! $i) $totalarray['nbfield']++;
     		}
    +
     		// Barcode
     		if (! empty($arrayfields['p.barcode']['checked']))
     		{
    -			print '<td class="liste_titre">';
    -			print '<input class="flat" type="text" name="search_barcode" size="6" value="'.dol_escape_htmltag($search_barcode).'">';
    -			print '</td>';
    +			print '<td>'.$obj->barcode.'</td>';
    +			if (! $i) $totalarray['nbfield']++;
     		}
    +
     		// Duration
    -		if (! empty($arrayfields['p.duration']['checked']))
    +		if ((string) $type == '1' && ! empty($arrayfields['p.duration']['checked']))
     		{
    -			print '<td class="liste_titre">';
    -			print '&nbsp;';
    +			print '<td align="center">';
    +
    +			if (preg_match('/([^a-z]+)[a-z]$/i',$obj->duration))
    +			{
    +				$duration_value	= substr($obj->duration,0,dol_strlen($obj->duration)-1);
    +				$duration_unit	= substr($obj->duration,-1);
    +
    +				if ((float) $duration_value > 1)
    +				{
    +				    $dur=array("i"=>$langs->trans("Minutes"),"h"=>$langs->trans("Hours"),"d"=>$langs->trans("Days"),"w"=>$langs->trans("Weeks"),"m"=>$langs->trans("Months"),"y"=>$langs->trans("Years"));
    +				}
    +				else if ((float) $duration_value > 0)
    +				{
    +				    $dur=array("i"=>$langs->trans("Minute"),"h"=>$langs->trans("Hour"),"d"=>$langs->trans("Day"),"w"=>$langs->trans("Week"),"m"=>$langs->trans("Month"),"y"=>$langs->trans("Year"));
    +				}
    +				print $duration_value;
    +				print (! empty($duration_unit) && isset($dur[$duration_unit]) ? ' '.$langs->trans($dur[$duration_unit]) : '');
    +			}
    +			else
    +			{
    +				print $obj->duration;
    +			}
     			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
     		}
    +
     		// Sell price
     		if (! empty($arrayfields['p.sellprice']['checked']))
     		{
    -			print '<td class="liste_titre" align="right">';
    +			print '<td class="right nowraponall">';
    +			if ($obj->tosell)
    +			{
    +				if ($obj->price_base_type == 'TTC') print price($obj->price_ttc).' '.$langs->trans("TTC");
    +				else print price($obj->price).' '.$langs->trans("HT");
    +			}
     			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
     		}
    -		// Minimum buying Price
    +
    +		// Better buy price
     		if (! empty($arrayfields['p.minbuyprice']['checked']))
     		{
    -			print '<td class="liste_titre">';
    -			print '&nbsp;';
    +			print  '<td class="right nowraponall">';
    +			if ($obj->tobuy && $obj->minsellprice != '')
    +			{
    +				//print price($obj->minsellprice).' '.$langs->trans("HT");
    +				if ($product_fourn->find_min_price_product_fournisseur($obj->rowid) > 0)
    +				{
    +					if ($product_fourn->product_fourn_price_id > 0)
    +					{
    +						if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire)
    +						{
    +							$htmltext=$product_fourn->display_price_product_fournisseur(1, 1, 0, 1);
    +							print $form->textwithpicto(price($product_fourn->fourn_unitprice * (1 - $product_fourn->fourn_remise_percent/100) - $product_fourn->fourn_remise).' '.$langs->trans("HT"),$htmltext);
    +						}
    +						else print price($product_fourn->fourn_unitprice).' '.$langs->trans("HT");
    +					}
    +				}
    +			}
     			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
     		}
    -		// Number buying Price
    +
    +		// Number of buy prices
     		if (! empty($arrayfields['p.numbuyprice']['checked']))
     		{
    -			print '<td class="liste_titre">';
    -			print '&nbsp;';
    +			print  '<td align="right">';
    +			if ($obj->tobuy)
    +			{
    +				if (count($productFournList = $product_fourn->list_product_fournisseur_price($obj->rowid)) > 0)
    +				{
    +					$htmltext=$product_fourn->display_price_product_fournisseur(1, 1, 0, 1, $productFournList);
    +					print $form->textwithpicto(count($productFournList),$htmltext);
    +				}
    +			}
     			print '</td>';
     		}
    +
     		// WAP
     		if (! empty($arrayfields['p.pmp']['checked']))
     		{
    -			print '<td class="liste_titre">';
    -			print '&nbsp;';
    +			print '<td class="nowrap" align="right">';
    +			print price($product_static->pmp, 1, $langs);
     			print '</td>';
     		}
    -		// Limit for alert
    +
    +		// Limit alert
     		if (! empty($arrayfields['p.seuil_stock_alerte']['checked']))
     		{
    -			print '<td class="liste_titre">';
    -			print '&nbsp;';
    +			print '<td align="right">';
    +			if ($obj->fk_product_type != 1)
    +			{
    +				print $obj->seuil_stock_alerte;
    +			}
     			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
     		}
     		// Desired stock
     		if (! empty($arrayfields['p.desiredstock']['checked']))
     		{
    -			print '<td class="liste_titre">';
    -			print '&nbsp;';
    +			print '<td align="right">';
    +			if ($obj->fk_product_type != 1)
    +			{
    +				print $obj->desiredstock;
    +			}
     			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
    +		}
    +		// Stock real
    +		if (! empty($arrayfields['p.stock']['checked']))
    +		{
    +			print '<td align="right">';
    +			if ($obj->fk_product_type != 1)
    +			{
    +				if ($obj->seuil_stock_alerte != '' && $product_static->stock_reel < (float) $obj->seuil_stock_alerte) print img_warning($langs->trans("StockLowerThanLimit", $obj->seuil_stock_alerte)).' ';
    +				print $product_static->stock_reel;
    +			}
    +			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
    +		}
    +		// Stock virtual
    +		if (! empty($arrayfields['stock_virtual']['checked']))
    +		{
    +			print '<td align="right">';
    +			if ($obj->fk_product_type != 1)
    +			{
    +				if ($obj->seuil_stock_alerte != '' && $product_static->stock_theorique < (float) $obj->seuil_stock_alerte) print img_warning($langs->trans("StockLowerThanLimit", $obj->seuil_stock_alerte)).' ';
    +				print $product_static->stock_theorique;
    +			}
    +			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
    +		}
    +		// Lot/Serial
    +		if (! empty($arrayfields['p.tobatch']['checked']))
    +		{
    +			print '<td align="center">';
    +			print yn($obj->tobatch);
    +			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
     		}
    -		// Stock
    -		if (! empty($arrayfields['p.stock']['checked'])) print '<td class="liste_titre">&nbsp;</td>';
    -		// Stock
    -		if (! empty($arrayfields['stock_virtual']['checked'])) print '<td class="liste_titre">&nbsp;</td>';
    -		// To batch
    -		if (! empty($arrayfields['p.tobatch']['checked'])) print '<td class="liste_titre center">'.$form->selectyesno($search_tobatch, '', '', '', 1).'</td>';
     		// Accountancy code sell
    -		if (! empty($arrayfields['p.accountancy_code_sell']['checked'])) print '<td class="liste_titre"><input class="flat" type="text" name="search_accountancy_code_sell" size="6" value="'.dol_escape_htmltag($search_accountancy_code_sell).'"></td>';
    +		if (! empty($arrayfields['p.accountancy_code_sell']['checked']))
    +		{
    +			print '<td>'.$obj->accountancy_code_sell.'</td>';
    +			if (! $i) $totalarray['nbfield']++;
    +		}
     		// Accountancy code sell
    -		if (! empty($arrayfields['p.accountancy_code_buy']['checked'])) print '<td class="liste_titre"><input class="flat" type="text" name="search_accountancy_code_buy" size="6" value="'.dol_escape_htmltag($search_accountancy_code_buy).'"></td>';
    +		if (! empty($arrayfields['p.accountancy_code_buy']['checked']))
    +		{
    +			print '<td>'.$obj->accountancy_code_buy.'</td>';
    +			if (! $i) $totalarray['nbfield']++;
    +		}
     		// Extra fields
    -		include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
    +		include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
     		// Fields from hook
    -		$parameters=array('arrayfields'=>$arrayfields);
    -		$reshook=$hookmanager->executeHooks('printFieldListOption',$parameters);    // Note that $action and $object may have been modified by hook
    +		$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
    +		$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters);    // Note that $action and $object may have been modified by hook
     		print $hookmanager->resPrint;
     		// Date creation
     		if (! empty($arrayfields['p.datec']['checked']))
     		{
    -			print '<td class="liste_titre">';
    +			print '<td align="center">';
    +			print dol_print_date($obj->date_creation, 'dayhour', 'tzuser');
     			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
     		}
     		// Date modification
     		if (! empty($arrayfields['p.tms']['checked']))
     		{
    -			print '<td class="liste_titre">';
    +			print '<td align="center">';
    +			print dol_print_date($obj->date_update, 'dayhour', 'tzuser');
     			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
     		}
    +
    +		// Status (to sell)
     		if (! empty($arrayfields['p.tosell']['checked']))
     		{
    -			print '<td class="liste_titre" align="right">';
    -			print $form->selectarray('search_tosell', array('0'=>$langs->trans('ProductStatusNotOnSellShort'),'1'=>$langs->trans('ProductStatusOnSellShort')),$search_tosell,1);
    -			print '</td >';
    -		}
    -		if (! empty($arrayfields['p.tobuy']['checked']))
    -		{
    -			print '<td class="liste_titre" align="right">';
    -			print $form->selectarray('search_tobuy', array('0'=>$langs->trans('ProductStatusNotOnBuyShort'),'1'=>$langs->trans('ProductStatusOnBuyShort')),$search_tobuy,1);
    -			print '</td>';
    -		}
    -		print '<td class="liste_titre" align="middle">';
    -		$searchpicto=$form->showFilterButtons();
    -		print $searchpicto;
    -		print '</td>';
    -
    -		print '</tr>';
    -
    -		print '<tr class="liste_titre">';
    -		if (! empty($arrayfields['p.ref']['checked']))  print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"],"p.ref","",$param,"",$sortfield,$sortorder);
    -		if (! empty($arrayfields['pfp.ref_fourn']['checked']))  print_liste_field_titre($arrayfields['pfp.ref_fourn']['label'], $_SERVER["PHP_SELF"],"pfp.ref_fourn","",$param,"",$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.label']['checked']))  print_liste_field_titre($arrayfields['p.label']['label'], $_SERVER["PHP_SELF"],"p.label","",$param,"",$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.fk_product_type']['checked']))  print_liste_field_titre($arrayfields['p.fk_product_type']['label'], $_SERVER["PHP_SELF"],"p.fk_product_type","",$param,"",$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.barcode']['checked']))  print_liste_field_titre($arrayfields['p.barcode']['label'], $_SERVER["PHP_SELF"],"p.barcode","",$param,"",$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.duration']['checked']))  print_liste_field_titre($arrayfields['p.duration']['label'], $_SERVER["PHP_SELF"],"p.duration","",$param,'align="center"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.sellprice']['checked']))  print_liste_field_titre($arrayfields['p.sellprice']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.minbuyprice']['checked']))  print_liste_field_titre($arrayfields['p.minbuyprice']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.numbuyprice']['checked']))  print_liste_field_titre($arrayfields['p.numbuyprice']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.pmp']['checked']))  print_liste_field_titre($arrayfields['p.pmp']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.seuil_stock_alerte']['checked']))  print_liste_field_titre($arrayfields['p.seuil_stock_alerte']['label'], $_SERVER["PHP_SELF"],"p.seuil_stock_alerte","",$param,'align="right"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.desiredstock']['checked']))  print_liste_field_titre($arrayfields['p.desiredstock']['label'], $_SERVER["PHP_SELF"],"p.desiredstock","",$param,'align="right"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.stock']['checked']))  print_liste_field_titre($arrayfields['p.stock']['label'], $_SERVER["PHP_SELF"],"p.stock","",$param,'align="right"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['stock_virtual']['checked']))  print_liste_field_titre($arrayfields['stock_virtual']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.tobatch']['checked']))  print_liste_field_titre($arrayfields['p.tobatch']['label'], $_SERVER["PHP_SELF"],"p.tobatch","",$param,'align="center"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.accountancy_code_sell']['checked']))  print_liste_field_titre($arrayfields['p.accountancy_code_sell']['label'], $_SERVER["PHP_SELF"],"p.accountancy_code_sell","",$param,'',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.accountancy_code_buy']['checked']))  print_liste_field_titre($arrayfields['p.accountancy_code_buy']['label'], $_SERVER["PHP_SELF"],"p.accountancy_code_buy","",$param,'',$sortfield,$sortorder);
    -		// Extra fields
    -		include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
    -		// Hook fields
    -		$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;
    -		if (! empty($arrayfields['p.datec']['checked']))  print_liste_field_titre($arrayfields['p.datec']['label'],$_SERVER["PHP_SELF"],"p.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.tms']['checked']))    print_liste_field_titre($arrayfields['p.tms']['label'],$_SERVER["PHP_SELF"],"p.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.tosell']['checked'])) print_liste_field_titre($arrayfields['p.tosell']['label'],$_SERVER["PHP_SELF"],"p.tosell","",$param,'align="right"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['p.tobuy']['checked']))  print_liste_field_titre($arrayfields['p.tobuy']['label'],$_SERVER["PHP_SELF"],"p.tobuy","",$param,'align="right"',$sortfield,$sortorder);
    -		print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
    -		print "</tr>\n";
    -
    -
    -		$product_static=new Product($db);
    -		$product_fourn =new ProductFournisseur($db);
    -
    -		$i = 0;
    -		$totalarray=array();
    -		while ($i < min($num,$limit))
    -		{
    -			$obj = $db->fetch_object($resql);
    -
    -			// Multilangs
    -			if (! empty($conf->global->MAIN_MULTILANGS)) // si l'option est active
    -			{
    -				$sql = "SELECT label";
    -				$sql.= " FROM ".MAIN_DB_PREFIX."product_lang";
    -				$sql.= " WHERE fk_product=".$obj->rowid;
    -				$sql.= " AND lang='". $db->escape($langs->getDefaultLang()) ."'";
    -				$sql.= " LIMIT 1";
    -
    -				$result = $db->query($sql);
    -				if ($result)
    -				{
    -					$objtp = $db->fetch_object($result);
    -					if (! empty($objtp->label)) $obj->label = $objtp->label;
    -				}
    -			}
    -
    -			$product_static->id = $obj->rowid;
    -			$product_static->ref = $obj->ref;
    -			$product_static->ref_fourn = $obj->ref_supplier;
    -			$product_static->label = $obj->label;
    -			$product_static->type = $obj->fk_product_type;
    -			$product_static->status_buy = $obj->tobuy;
    -			$product_static->status     = $obj->tosell;
    -			$product_static->status_batch = $obj->tobatch;
    -			$product_static->entity = $obj->entity;
    -			$product_static->pmp = $obj->pmp;
    -			$product_static->accountancy_code_sell = $obj->accountancy_code_sell;
    -			$product_static->accountancy_code_sell_export = $obj->accountancy_code_sell_export;
    -			$product_static->accountancy_code_sell_intra = $obj->accountancy_code_sell_intra;
    -			$product_static->accountancy_code_buy = $obj->accountancy_code_buy;
    -
    -			if ((! empty($conf->stock->enabled) && $user->rights->stock->lire && $search_type != 1) || ! empty($conf->global->STOCK_DISABLE_OPTIM_LOAD))	// To optimize call of load_stock
    -			{
    -				if ($obj->fk_product_type != 1 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))    // Not a service
    -				{
    -					$product_static->load_stock('nobatch');             // Load stock_reel + stock_warehouse. This also call load_virtual_stock()
    -				}
    -			}
    -
    -
    -			print '<tr class="oddeven">';
    -
    -			// Ref
    -			if (! empty($arrayfields['p.ref']['checked']))
    -			{
    -				print '<td class="tdoverflowmax200">';
    -				print $product_static->getNomUrl(1);
    -				print "</td>\n";
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Ref supplier
    -			if (! empty($arrayfields['pfp.ref_fourn']['checked']))
    -			{
    -				print '<td class="tdoverflowmax200">';
    -				print $product_static->getNomUrl(1);
    -				print "</td>\n";
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Label
    -			if (! empty($arrayfields['p.label']['checked']))
    -			{
    -				print '<td class="tdoverflowmax200">'.dol_trunc($obj->label,40).'</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -
    -			// Type
    -			if (! empty($arrayfields['p.fk_product_type']['checked']))
    -			{
    -				print '<td>'.$obj->fk_product_type.'</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -
    -			// Barcode
    -			if (! empty($arrayfields['p.barcode']['checked']))
    -			{
    -				print '<td>'.$obj->barcode.'</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -
    -			// Duration
    -			if (! empty($arrayfields['p.duration']['checked']))
    -			{
    -				print '<td align="center">';
    -				if (preg_match('/([^a-z]+)[a-z]/i',$obj->duration))
    -				{
    -					if (preg_match('/([^a-z]+)y/i',$obj->duration,$regs)) print $regs[1].' '.$langs->trans("DurationYear");
    -					elseif (preg_match('/([^a-z]+)m/i',$obj->duration,$regs)) print $regs[1].' '.$langs->trans("DurationMonth");
    -					elseif (preg_match('/([^a-z]+)w/i',$obj->duration,$regs)) print $regs[1].' '.$langs->trans("DurationWeek");
    -					elseif (preg_match('/([^a-z]+)d/i',$obj->duration,$regs)) print $regs[1].' '.$langs->trans("DurationDay");
    -					//elseif (preg_match('/([^a-z]+)h/i',$obj->duration,$regs)) print $regs[1].' '.$langs->trans("DurationHour");
    -					else print $obj->duration;
    -				}
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -
    -			// Sell price
    -			if (! empty($arrayfields['p.sellprice']['checked']))
    -			{
    -				print '<td align="right">';
    -				if ($obj->tosell)
    -				{
    -					if ($obj->price_base_type == 'TTC') print price($obj->price_ttc).' '.$langs->trans("TTC");
    -					else print price($obj->price).' '.$langs->trans("HT");
    -				}
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -
    -			// Better buy price
    -			if (! empty($arrayfields['p.minbuyprice']['checked']))
    -			{
    -				print  '<td align="right">';
    -				if ($obj->tobuy && $obj->minsellprice != '')
    -				{
    -					//print price($obj->minsellprice).' '.$langs->trans("HT");
    -					if ($product_fourn->find_min_price_product_fournisseur($obj->rowid) > 0)
    -					{
    -						if ($product_fourn->product_fourn_price_id > 0)
    -						{
    -							if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire)
    -							{
    -								$htmltext=$product_fourn->display_price_product_fournisseur(1, 1, 0, 1);
    -								print $form->textwithpicto(price($product_fourn->fourn_unitprice * (1 - $product_fourn->fourn_remise_percent/100) - $product_fourn->fourn_remise).' '.$langs->trans("HT"),$htmltext);
    -							}
    -							else print price($product_fourn->fourn_unitprice).' '.$langs->trans("HT");
    -						}
    -					}
    -				}
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -
    -			// Number of buy prices
    -			if (! empty($arrayfields['p.numbuyprice']['checked']))
    -			{
    -				print  '<td align="right">';
    -				if ($obj->tobuy)
    -				{
    -					if (count($productFournList = $product_fourn->list_product_fournisseur_price($obj->rowid)) > 0)
    -					{
    -						$htmltext=$product_fourn->display_price_product_fournisseur(1, 1, 0, 1, $productFournList);
    -						print $form->textwithpicto(count($productFournList),$htmltext);
    -					}
    -				}
    -				print '</td>';
    -			}
    -
    -			// WAP
    -			if (! empty($arrayfields['p.pmp']['checked']))
    -			{
    -				print '<td class="nowrap" align="right">';
    -				print price($product_static->pmp, 1, $langs);
    -				print '</td>';
    -			}
    -
    -			// Limit alert
    -			if (! empty($arrayfields['p.seuil_stock_alerte']['checked']))
    -			{
    -				print '<td align="right">';
    -				if ($obj->fk_product_type != 1)
    -				{
    -					print $obj->seuil_stock_alerte;
    -				}
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Desired stock
    -			if (! empty($arrayfields['p.desiredstock']['checked']))
    -			{
    -				print '<td align="right">';
    -				if ($obj->fk_product_type != 1)
    -				{
    -					print $obj->desiredstock;
    -				}
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Stock real
    -			if (! empty($arrayfields['p.stock']['checked']))
    -			{
    -				print '<td align="right" class="nowraponall">';
    -				if ($obj->fk_product_type != 1)
    -				{
    -					if ($obj->seuil_stock_alerte != '' && $product_static->stock_reel < (float) $obj->seuil_stock_alerte) print img_warning($langs->trans("StockLowerThanLimit", $obj->seuil_stock_alerte)).' ';
    -					print $product_static->stock_reel;
    -				}
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Stock virtual
    -			if (! empty($arrayfields['stock_virtual']['checked']))
    -			{
    -				print '<td align="right" class="nowraponall">';
    -				if ($obj->fk_product_type != 1)
    -				{
    -					if ($obj->seuil_stock_alerte != '' && $product_static->stock_theorique < (float) $obj->seuil_stock_alerte) print img_warning($langs->trans("StockLowerThanLimit", $obj->seuil_stock_alerte)).' ';
    -					print $product_static->stock_theorique;
    -				}
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Lot/Serial
    -			if (! empty($arrayfields['p.tobatch']['checked']))
    -			{
    -				print '<td align="center">';
    -				print yn($obj->tobatch);
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Accountancy code sell
    -			if (! empty($arrayfields['p.accountancy_code_sell']['checked']))
    -			{
    -				print '<td>'.$obj->accountancy_code_sell.'</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Accountancy code sell
    -			if (! empty($arrayfields['p.accountancy_code_buy']['checked']))
    -			{
    -				print '<td>'.$obj->accountancy_code_buy.'</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Extra fields
    -			include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
    -			// Fields from hook
    -			$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
    -			$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters);    // Note that $action and $object may have been modified by hook
    -			print $hookmanager->resPrint;
    -			// Date creation
    -			if (! empty($arrayfields['p.datec']['checked']))
    -			{
    -				print '<td align="center">';
    -				print dol_print_date($obj->date_creation, 'dayhour', 'tzuser');
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Date modification
    -			if (! empty($arrayfields['p.tms']['checked']))
    -			{
    -				print '<td align="center">';
    -				print dol_print_date($obj->date_update, 'dayhour', 'tzuser');
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -
    -			// Status (to sell)
    -			if (! empty($arrayfields['p.tosell']['checked']))
    -			{
    -				print '<td align="right" nowrap="nowrap">';
    -				if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer && ! empty($conf->global->MAIN_DIRECT_STATUS_UPDATE)) {
    -					print ajax_object_onoff($product_static, 'status', 'tosell', 'ProductStatusOnSell', 'ProductStatusNotOnSell');
    -				} else {
    -					print $product_static->LibStatut($obj->tosell,5,0);
    -				}
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Status (to buy)
    -			if (! empty($arrayfields['p.tobuy']['checked']))
    -			{
    -				print '<td align="right" nowrap="nowrap">';
    -				if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer && ! empty($conf->global->MAIN_DIRECT_STATUS_UPDATE)) {
    -					print ajax_object_onoff($product_static, 'status_buy', 'tobuy', 'ProductStatusOnBuy', 'ProductStatusNotOnBuy');
    -				} else {
    -					print $product_static->LibStatut($obj->tobuy,5,1);
    -				}
    -				print '</td>';
    -				if (! $i) $totalarray['nbfield']++;
    -			}
    -			// Action
    -			print '<td class="nowrap" align="center">';
    -			if ($massactionbutton || $massaction)   // 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($obj->rowid, $arrayofselected)) $selected=1;
    -				print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>';
    +			print '<td align="right" nowrap="nowrap">';
    +			if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer && ! empty($conf->global->MAIN_DIRECT_STATUS_UPDATE)) {
    +				print ajax_object_onoff($product_static, 'status', 'tosell', 'ProductStatusOnSell', 'ProductStatusNotOnSell');
    +			} else {
    +				print $product_static->LibStatut($obj->tosell,5,0);
     			}
     			print '</td>';
     			if (! $i) $totalarray['nbfield']++;
    -
    -			print "</tr>\n";
    -			$i++;
     		}
    +		// Status (to buy)
    +		if (! empty($arrayfields['p.tobuy']['checked']))
    +		{
    +			print '<td align="right" nowrap="nowrap">';
    +			if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer && ! empty($conf->global->MAIN_DIRECT_STATUS_UPDATE)) {
    +				print ajax_object_onoff($product_static, 'status_buy', 'tobuy', 'ProductStatusOnBuy', 'ProductStatusNotOnBuy');
    +			} else {
    +				print $product_static->LibStatut($obj->tobuy,5,1);
    +			}
    +			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
    +		}
    +		// Action
    +		print '<td class="nowrap" align="center">';
    +		if ($massactionbutton || $massaction)   // 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($obj->rowid, $arrayofselected)) $selected=1;
    +			print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>';
    +		}
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
     
    -		$db->free($resql);
    -
    -		print "</table>";
    -		print "</div>";
    +		print "</tr>\n";
    +		$i++;
     	}
    +
    +	$db->free($resql);
    +
    +	print "</table>";
    +	print "</div>";
     	print '</form>';
     }
     else
    @@ -981,6 +987,6 @@ else
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/note.php b/htdocs/product/note.php
    index c0e9d77ea83..e77360b46be 100644
    --- a/htdocs/product/note.php
    +++ b/htdocs/product/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2013      Florian Henry	  	<florian.henry@open-concept.pro>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    @@ -115,6 +115,7 @@ if ($id > 0 || ! empty($ref))
         dol_fiche_end();
     }
     
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/product/popuprop.php b/htdocs/product/popuprop.php
    index d6aa23fe2c0..687054d1cde 100644
    --- a/htdocs/product/popuprop.php
    +++ b/htdocs/product/popuprop.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2005 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2015       Jean-François Ferry	<jfefe@aternatik.fr>
      *
    @@ -207,6 +207,6 @@ print "</table>";
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/price.php b/htdocs/product/price.php
    index d87807f72f9..92975883cbb 100644
    --- a/htdocs/product/price.php
    +++ b/htdocs/product/price.php
    @@ -2,11 +2,11 @@
     /* Copyright (C) 2001-2007	Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2005		Eric Seigne				<eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2006		Andre Cianfarani			<acianfa@free.fr>
      * Copyright (C) 2014		Florian Henry			<florian.henry@open-concept.pro>
    - * Copyright (C) 2014-2016	Juanjo Menent			<jmenent@2byte.es>
    - * Copyright (C) 2014-2015 	Philippe Grand 		    <philippe.grand@atoo-net.com>
    + * Copyright (C) 2014-2018	Juanjo Menent			<jmenent@2byte.es>
    + * Copyright (C) 2014-2018 	Philippe Grand 		    <philippe.grand@atoo-net.com>
      * Copyright (C) 2014		Ion agorria				<ion@agorria.com>
      * Copyright (C) 2015		Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2015		Marcos García			<marcosgdf@gmail.com>
    @@ -47,7 +47,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
     }
     
     // Load translation files required by the page
    -$langs->loadLangs(array('products', 'bills', 'companies'));
    +$langs->loadLangs(array('products', 'bills', 'companies', 'other'));
     
     $mesg=''; $error=0; $errors=array();
     
    @@ -352,7 +352,10 @@ if (empty($reshook))
     					break;
     				}
     
    -				$res = $object->updatePrice($newprice, $val['price_base_type'], $user, $val['vat_tx'], $newprice_min, $key, $val['npr'], $psq, 0, $val['localtaxes_array'], $val['default_vat_code']);
    +				if($object->multiprices[$key]!=$newprice || $object->multiprices_min[$key]!=$newprice_min || $object->multiprices_base_type[$key]!=$val['price_base_type'])
    +       				$res = $object->updatePrice($newprice, $val['price_base_type'], $user, $val['vat_tx'], $newprice_min, $key, $val['npr'], $psq, 0, $val['localtaxes_array'], $val['default_vat_code']);
    +				else $res=0;
    +
     
     				if ($res < 0) {
     					$error ++;
    @@ -466,7 +469,7 @@ if (empty($reshook))
     
     			$result = $db->query($sql);
     		} else {
    -			setEventMessage('delete_price_by_qty Missing Ids','errors');
    +			setEventMessages(('delete_price_by_qty'.$langs->transnoentities(MissingIds)), null,'errors');
     		}
     	}
     
    @@ -479,7 +482,7 @@ if (empty($reshook))
     
     		$result = $db->query($sql);
     		} else {
    -			setEventMessage('delete_all_price_by_qty Missing Ids','errors');
    +			setEventMessages(('delete_price_by_qty'.$langs->transnoentities(MissingIds)), null,'errors');
     		}
     	}
     
    @@ -786,7 +789,6 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES) || ! empty($conf->global->PRODUI
             	else print vatrate($object->tva_tx . ($object->tva_npr ? '*' : ''), true);*/
             	print '</td></tr>';
     		}
    -
     	}
     	else
     	{
    @@ -1110,30 +1112,33 @@ if (! $action || $action == 'delete' || $action == 'showlog_customer_price' || $
     {
     	print "\n" . '<div class="tabsAction">' . "\n";
     
    -	if (empty($conf->global->PRODUIT_MULTIPRICES) && empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES))
    -	{
    -    	if ($user->rights->produit->creer || $user->rights->service->creer) {
    -    		print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?action=edit_price&amp;id=' . $object->id . '">' . $langs->trans("UpdateDefaultPrice") . '</a></div>';
    -    	}
    -	}
    +    if ($object->isVariant()) {
    +		if ($user->rights->produit->creer || $user->rights->service->creer) {
    +			print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NoEditVariants")).'">'.$langs->trans("UpdateDefaultPrice").'</a></div>';
    +		}
    +	} else {
    +		if (empty($conf->global->PRODUIT_MULTIPRICES) && empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) {
    +			if ($user->rights->produit->creer || $user->rights->service->creer) {
    +				print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?action=edit_price&amp;id=' . $object->id . '">' . $langs->trans("UpdateDefaultPrice") . '</a></div>';
    +			}
    +		}
     
    -	if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
    -	{
    -	    if ($user->rights->produit->creer || $user->rights->service->creer) {
    -	 		print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?action=add_customer_price&amp;id=' . $object->id . '">' . $langs->trans("AddCustomerPrice") . '</a></div>';
    -	  	}
    -	}
    +		if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
    +			if ($user->rights->produit->creer || $user->rights->service->creer) {
    +				print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?action=add_customer_price&amp;id=' . $object->id . '">' . $langs->trans("AddCustomerPrice") . '</a></div>';
    +			}
    +		}
     
    -	if (! empty($conf->global->PRODUIT_MULTIPRICES) || ! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES))
    -	{
    -	    if ($user->rights->produit->creer || $user->rights->service->creer) {
    -    		print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?action=edit_vat&amp;id=' . $object->id . '">' . $langs->trans("UpdateVAT") . '</a></div>';
    -    	}
    +		if (!empty($conf->global->PRODUIT_MULTIPRICES) || !empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) {
    +			if ($user->rights->produit->creer || $user->rights->service->creer) {
    +				print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?action=edit_vat&amp;id=' . $object->id . '">' . $langs->trans("UpdateVAT") . '</a></div>';
    +			}
     
    -	    if ($user->rights->produit->creer || $user->rights->service->creer) {
    -    		print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?action=edit_price&amp;id=' . $object->id . '">' . $langs->trans("UpdateLevelPrices") . '</a></div>';
    -    	}
    -	}
    +			if ($user->rights->produit->creer || $user->rights->service->creer) {
    +				print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?action=edit_price&amp;id=' . $object->id . '">' . $langs->trans("UpdateLevelPrices") . '</a></div>';
    +			}
    +		}
    +    }
     
     	print "\n</div>\n";
     }
    @@ -1408,7 +1413,6 @@ if ($action == 'edit_price' && $object->getRights()->creer)
     		print '&nbsp;&nbsp;&nbsp;';
     		print '<input type="submit" class="button" name="cancel" value="' . $langs->trans("Cancel") . '"></div>';
     		print '</form>';
    -
     	}
     }
     
    @@ -2194,6 +2198,6 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/reassort.php b/htdocs/product/reassort.php
    index 9ee9ab0aead..d14bfeb9df2 100644
    --- a/htdocs/product/reassort.php
    +++ b/htdocs/product/reassort.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2006  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2018  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2018  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2013       Cédric Salvador         <csalvador@gpcsolutions.fr>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
    @@ -77,7 +77,7 @@ if (! empty($canvas))
     
     // Define virtualdiffersfromphysical
     $virtualdiffersfromphysical=0;
    -if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER))
    +if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)|| ! empty($conf->global->STOCK_CALCULATE_ON_RECEPTION))
     {
         $virtualdiffersfromphysical=1;		// According to increase/decrease stock options, virtual and physical stock may differs.
     }
    @@ -317,7 +317,6 @@ if ($resql)
     	        foreach($warehouses_list as &$wh) {
     	            print_liste_field_titre($wh['label'], '', '','','','align="right"');
     	        }
    -
     	    }
     	}
     	if ($virtualdiffersfromphysical) print_liste_field_titre("VirtualStock",$_SERVER["PHP_SELF"], "",$param,"",'align="right"',$sortfield,$sortorder);
    @@ -381,7 +380,7 @@ if ($resql)
     			print $product->stock_theorique;
     			print '</td>';
     		}
    -		print '<td align="right"><a href="'.DOL_URL_ROOT.'/product/stock/mouvement.php?idproduct='.$product->id.'">'.$langs->trans("Movements").'</a></td>';
    +		print '<td align="right"><a href="'.DOL_URL_ROOT.'/product/stock/movement_list.php?idproduct='.$product->id.'">'.$langs->trans("Movements").'</a></td>';
     		print '<td align="right" class="nowrap">'.$product->LibStatut($objp->statut,5,0).'</td>';
             print '<td align="right" class="nowrap">'.$product->LibStatut($objp->tobuy,5,1).'</td>';
     		print '<td></td>';
    @@ -395,13 +394,12 @@ if ($resql)
     	print '</form>';
     
     	$db->free($resql);
    -
     }
     else
     {
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/reassortlot.php b/htdocs/product/reassortlot.php
    index 3a58924108d..2f1827d2647 100644
    --- a/htdocs/product/reassortlot.php
    +++ b/htdocs/product/reassortlot.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2006  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2018  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2018  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2013       Cédric Salvador         <csalvador@gpcsolutions.fr>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2016       Ferran Marcet			<fmarcet@2byte.es>
    @@ -408,7 +408,7 @@ if ($resql)
             //if ($objp->seuil_stock_alerte && ($objp->stock_physique < $objp->seuil_stock_alerte)) print img_warning($langs->trans("StockTooLow")).' ';
     		print $objp->stock_physique;
     		print '</td>';
    -		print '<td align="right"><a href="'.DOL_URL_ROOT.'/product/stock/mouvement.php?idproduct='.$product_static->id.'&search_warehouse='.$objp->fk_entrepot.'&search_batch='.($objp->batch != 'Undefined' ? $objp->batch : 'Undefined').'">'.$langs->trans("Movements").'</a></td>';
    +		print '<td align="right"><a href="'.DOL_URL_ROOT.'/product/stock/movement_list.php?idproduct='.$product_static->id.'&search_warehouse='.$objp->fk_entrepot.'&search_batch='.($objp->batch != 'Undefined' ? $objp->batch : 'Undefined').'">'.$langs->trans("Movements").'</a></td>';
     		print '<td align="right" class="nowrap">'.$product_static->LibStatut($objp->statut,5,0).'</td>';
             print '<td align="right" class="nowrap">'.$product_static->LibStatut($objp->tobuy,5,1).'</td>';
             print '<td></td>';
    @@ -421,13 +421,12 @@ if ($resql)
     	print '</form>';
     
     	$db->free($resql);
    -
     }
     else
     {
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/stats/card.php b/htdocs/product/stats/card.php
    index dd12d9d7bf2..40848e6bb81 100644
    --- a/htdocs/product/stats/card.php
    +++ b/htdocs/product/stats/card.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2007	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (c) 2004-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2005		Eric Seigne				<eric.seigne@ryxeo.com>
      * Copyright (C) 2013		Juanjo Menent			<jmenent@2byte.es>
      *
    @@ -433,6 +433,6 @@ if (! $id)
         dol_fiche_end();
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/stats/commande.php b/htdocs/product/stats/commande.php
    index 77941d940df..083dcd6ea52 100644
    --- a/htdocs/product/stats/commande.php
    +++ b/htdocs/product/stats/commande.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014	   Florian Henry		<florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -257,5 +257,6 @@ if ($id > 0 || ! empty($ref))
     	dol_print_error();
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/stats/commande_fournisseur.php b/htdocs/product/stats/commande_fournisseur.php
    index da5c8f24911..21bb3f6fd9a 100644
    --- a/htdocs/product/stats/commande_fournisseur.php
    +++ b/htdocs/product/stats/commande_fournisseur.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014	   Florian Henry		<florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -265,5 +265,6 @@ if ($id > 0 || ! empty($ref)) {
     	dol_print_error();
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/stats/contrat.php b/htdocs/product/stats/contrat.php
    index c01cbd40530..86e8e0ed616 100644
    --- a/htdocs/product/stats/contrat.php
    +++ b/htdocs/product/stats/contrat.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -236,6 +236,6 @@ else
     	dol_print_error();
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/stats/facture.php b/htdocs/product/stats/facture.php
    index d0c75ac90b4..6cf8c13208a 100644
    --- a/htdocs/product/stats/facture.php
    +++ b/htdocs/product/stats/facture.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014	   Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2014	   Florian Henry		<florian.henry@open-concept.pro>
      *
    @@ -147,7 +147,7 @@ if ($id > 0 || ! empty($ref))
             elseif ($user->rights->facture->lire)
             {
                 $sql = "SELECT DISTINCT s.nom as name, s.rowid as socid, s.code_client,";
    -            $sql.= " f.facnumber, f.datef, f.paye, f.type, f.fk_statut as statut, f.rowid as facid,";
    +            $sql.= " f.ref, f.datef, f.paye, f.type, f.fk_statut as statut, f.rowid as facid,";
                 $sql.= " d.rowid, d.total_ht as total_ht, d.qty";           // We must keep the d.rowid here to not loose record because of the distinct used to ignore duplicate line when link on societe_commerciaux is used
                 if (!$user->rights->societe->client->voir && !$socid) $sql.= ", sc.fk_soc, sc.fk_user ";
                 $sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
    @@ -155,7 +155,7 @@ if ($id > 0 || ! empty($ref))
                 $sql.= ", ".MAIN_DB_PREFIX."facturedet as d";
                 if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
                 $sql.= " WHERE f.fk_soc = s.rowid";
    -            $sql.= " AND f.entity IN (".getEntity('facture').")";
    +            $sql.= " AND f.entity IN (".getEntity('invoice').")";
                 $sql.= " AND d.fk_facture = f.rowid";
                 $sql.= " AND d.fk_product =".$product->id;
                 if (! empty($search_month))
    @@ -239,7 +239,7 @@ if ($id > 0 || ! empty($ref))
                             $total_qty+=$objp->qty;
     
                             $invoicestatic->id=$objp->facid;
    -						$invoicestatic->ref=$objp->facnumber;
    +						$invoicestatic->ref=$objp->ref;
     						$societestatic->fetch($objp->socid);
     						$paiement = $invoicestatic->getSommePaiement();
     
    @@ -278,5 +278,6 @@ if ($id > 0 || ! empty($ref))
     	dol_print_error();
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/stats/facture_fournisseur.php b/htdocs/product/stats/facture_fournisseur.php
    index 6bd722220ba..95bea4650c4 100644
    --- a/htdocs/product/stats/facture_fournisseur.php
    +++ b/htdocs/product/stats/facture_fournisseur.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013	   Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2014	   Florian Henry		<florian.henry@open-concept.pro>
      *
    @@ -263,5 +263,6 @@ if ($id > 0 || ! empty($ref))
     	dol_print_error();
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/stats/propal.php b/htdocs/product/stats/propal.php
    index 80256037dfe..1c2d0f56e3c 100644
    --- a/htdocs/product/stats/propal.php
    +++ b/htdocs/product/stats/propal.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014	   Florian Henry		<florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -261,5 +261,6 @@ if ($id > 0 || ! empty($ref))
     	dol_print_error();
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/stats/supplier_proposal.php b/htdocs/product/stats/supplier_proposal.php
    index cac015171cf..55cafd034cf 100644
    --- a/htdocs/product/stats/supplier_proposal.php
    +++ b/htdocs/product/stats/supplier_proposal.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014	   Florian Henry		<florian.henry@open-concept.pro>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -260,5 +260,6 @@ if ($id > 0 || ! empty($ref))
     	dol_print_error();
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/stock/card.php b/htdocs/product/stock/card.php
    index 41e70a6fbf9..1d9cbd7952f 100644
    --- a/htdocs/product/stock/card.php
    +++ b/htdocs/product/stock/card.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2006	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2005		Simon Tosser			<simon@kornog-computing.com>
    - * Copyright (C) 2005-2014	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2016	    Francis Appels       	<francis.appels@yahoo.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -298,12 +298,11 @@ else
     				$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$object->id,$langs->trans("DeleteAWarehouse"),$langs->trans("ConfirmDeleteWarehouse",$object->libelle),"confirm_delete",'',0,2);
     			}
     
    -			if (! $formconfirm) {
    -			    $parameters = array();
    -			    $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    -			    if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    -			    elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    -			}
    +			// Call Hook formConfirm
    +			$parameters = array();
    +			$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +			if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +			elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
     
     			// Print form confirm
     			print $formconfirm;
    @@ -333,7 +332,6 @@ else
     				print '<tr><td>'.$langs->trans("ParentWarehouse").'</td><td>';
     				print $e->getNomUrl(3);
     				print '</td></tr>';
    -
     			}
     
     			// Description
    @@ -385,7 +383,7 @@ else
     			if ($lastmovementdate)
     			{
     			    print dol_print_date($lastmovementdate,'dayhour').' ';
    -			    print '(<a href="'.DOL_URL_ROOT.'/product/stock/mouvement.php?id='.$object->id.'">'.$langs->trans("FullList").'</a>)';
    +			    print '(<a href="'.DOL_URL_ROOT.'/product/stock/movement_list.php?id='.$object->id.'">'.$langs->trans("FullList").'</a>)';
     			}
     			else
     			{
    @@ -421,12 +419,12 @@ else
     					if ($user->rights->stock->creer)
     						print "<a class=\"butAction\" href=\"card.php?action=edit&id=".$object->id."\">".$langs->trans("Modify")."</a>";
     					else
    -						print "<a class=\"butActionRefused\" href=\"#\">".$langs->trans("Modify")."</a>";
    +						print "<a class=\"butActionRefused classfortooltip\" href=\"#\">".$langs->trans("Modify")."</a>";
     
     					if ($user->rights->stock->supprimer)
     						print "<a class=\"butActionDelete\" href=\"card.php?action=delete&id=".$object->id."\">".$langs->trans("Delete")."</a>";
     					else
    -						print "<a class=\"butActionRefused\" href=\"#\">".$langs->trans("Delete")."</a>";
    +						print "<a class=\"butActionRefused classfortooltip\" href=\"#\">".$langs->trans("Delete")."</a>";
     				}
     			}
     
    @@ -568,7 +566,6 @@ else
                     print '<td class="liste_total">&nbsp;</td>';
     				print '<td class="liste_total">&nbsp;</td>';
     				print '</tr>';
    -
     			}
     			else
     			{
    @@ -659,7 +656,6 @@ else
     			print '</div>';
     
     			print '</form>';
    -
     		}
     	}
     }
    @@ -707,7 +703,6 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
     	}
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/stock/class/api_stockmovements.class.php b/htdocs/product/stock/class/api_stockmovements.class.php
    index 16d21c02eb3..2dc45a262ab 100644
    --- a/htdocs/product/stock/class/api_stockmovements.class.php
    +++ b/htdocs/product/stock/class/api_stockmovements.class.php
    @@ -93,7 +93,8 @@ class StockMovements extends DolibarrApi
          *
     	 * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -153,15 +154,15 @@ class StockMovements extends DolibarrApi
     		return $obj_ret;
         }
     
    -/*
    -    * @param   int     $product_id         Id product id {@min 1}
    -    * @param   int     $warehouse_id       Id warehouse {@min 1}
    -    * @param   float   $qty                Qty to add (Use negative value for a stock decrease) {@min 0} {@message qty must be higher than 0}
    -    * @param   string  $lot                Lot
    -    * @param   string  $movementcode       Movement code {@example INV123}
    -    * @param   string  $movementlabel      Movement label {@example Inventory number 123}
    -    * @param   string  $price              To update AWP (Average Weighted Price) when you make a stock increase (qty must be higher then 0).
    -    */
    +    /*
    +     * @param   int     $product_id         Id product id {@min 1}
    +     * @param   int     $warehouse_id       Id warehouse {@min 1}
    +     * @param   float   $qty                Qty to add (Use negative value for a stock decrease) {@min 0} {@message qty must be higher than 0}
    +     * @param   string  $lot                Lot
    +     * @param   string  $movementcode       Movement code {@example INV123}
    +     * @param   string  $movementlabel      Movement label {@example Inventory number 123}
    +     * @param   string  $price              To update AWP (Average Weighted Price) when you make a stock increase (qty must be higher then 0).
    +     */
     
     
         /**
    @@ -279,7 +280,8 @@ class StockMovements extends DolibarrApi
          * @param   MouvementStock  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    diff --git a/htdocs/product/stock/class/api_warehouses.class.php b/htdocs/product/stock/class/api_warehouses.class.php
    index 10b76d22a25..91ee105acb7 100644
    --- a/htdocs/product/stock/class/api_warehouses.class.php
    +++ b/htdocs/product/stock/class/api_warehouses.class.php
    @@ -92,7 +92,8 @@ class Warehouses extends DolibarrApi
          *
     	 * @throws RestException
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -248,7 +249,8 @@ class Warehouses extends DolibarrApi
          * @param   Entrepot  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    diff --git a/htdocs/product/stock/class/entrepot.class.php b/htdocs/product/stock/class/entrepot.class.php
    index 039918ea66c..9bc0fd8477f 100644
    --- a/htdocs/product/stock/class/entrepot.class.php
    +++ b/htdocs/product/stock/class/entrepot.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2008 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2008 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011	   Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2016	   Francis Appels       <francis.appels@yahoo.com>
      *
    @@ -33,8 +33,16 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class Entrepot extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='stock';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='entrepot';
    +
     	public $picto='stock';
     
     	/**
    @@ -52,18 +60,32 @@ class Entrepot extends CommonObject
     	 */
     	const STATUS_OPEN_INTERNAL = 2;
     
    -	var $libelle;
    -	var $description;
    -	var $statut;
    -	var $lieu;
    -	var $address;
    +	public $libelle;
    +
    +	/**
    +	 * @var string description
    +	 */
    +	public $description;
    +
    +	public $statut;
    +	public $lieu;
    +
    +	/**
    +	 * @var string Address
    +	 */
    +	public $address;
    +
     	//! Code Postal
    -	var $zip;
    -	var $town;
    -	var $fk_parent;
    +	public $zip;
    +	public $town;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_parent;
     
     	// List of short language codes for status
    -	var $statuts = array();
    +	public $statuts = array();
     
     	/**
     	 *  Constructor
    @@ -85,7 +107,6 @@ class Entrepot extends CommonObject
     		{
     			$this->statuts[self::STATUS_OPEN_ALL] = 'Opened';
     		}
    -
     	}
     
     	/**
    @@ -159,7 +180,6 @@ class Entrepot extends CommonObject
     			$this->db->rollback();
     			return -1;
     		}
    -
     	}
     
     	/**
    @@ -293,7 +313,6 @@ class Entrepot extends CommonObject
     			$this->error=$this->db->lasterror();
     			return -1;
     		}
    -
     	}
     
     
    @@ -397,11 +416,9 @@ class Entrepot extends CommonObject
     
     				$this->date_creation     = $this->db->jdate($obj->datec);
     				$this->date_modification = $this->db->jdate($obj->datem);
    -
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -410,6 +427,7 @@ class Entrepot extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of all warehouses
     	 *
    @@ -418,6 +436,7 @@ class Entrepot extends CommonObject
     	 */
     	function list_array($status=1)
     	{
    +        // phpcs:enable
     		$liste = array();
     
     		$sql = "SELECT rowid, ref as label";
    @@ -441,6 +460,7 @@ class Entrepot extends CommonObject
     		return $liste;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return number of unique different product into a warehouse
     	 *
    @@ -448,6 +468,7 @@ class Entrepot extends CommonObject
     	 */
     	function nb_different_products()
     	{
    +        // phpcs:enable
     		$ret=array();
     
     		$sql = "SELECT count(distinct p.rowid) as nb";
    @@ -473,6 +494,7 @@ class Entrepot extends CommonObject
     		return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return stock and value of warehosue
     	 *
    @@ -480,6 +502,7 @@ class Entrepot extends CommonObject
     	 */
     	function nb_products()
     	{
    +        // phpcs:enable
     		$ret=array();
     
     		$sql = "SELECT sum(ps.reel) as nb, sum(ps.reel * p.pmp) as value";
    @@ -517,6 +540,7 @@ class Entrepot extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return label of a given status
     	 *
    @@ -526,6 +550,7 @@ class Entrepot extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$langs->load('stocks');
    @@ -643,6 +668,7 @@ class Entrepot extends CommonObject
             $this->country_code='FR';
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return full path to current warehouse
     	 *
    @@ -650,6 +676,7 @@ class Entrepot extends CommonObject
     	 */
     	function get_full_arbo()
     	{
    +        // phpcs:enable
             global $user,$langs,$conf;
     
             $TArbo = array(empty($this->label)?$this->libelle:$this->label);
    @@ -683,14 +710,17 @@ class Entrepot extends CommonObject
             return implode(' >> ', array_reverse($TArbo));
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return array of children warehouses ids from $id warehouse (recursive function)
     	 *
     	 * @param	int		$id					id parent warehouse
    -	 * @param	array()	$TChildWarehouses	array which will contain all children (param by reference)
    -	 * @return	array()	$TChildWarehouses	array which will contain all children
    +	 * @param	array	$TChildWarehouses	array which will contain all children (param by reference)
    +	 * @return	array	$TChildWarehouses	array which will contain all children
     	 */
    -	function get_children_warehouses($id, &$TChildWarehouses) {
    +    function get_children_warehouses($id, &$TChildWarehouses)
    +    {
    +        // phpcs:enable
     
     		$sql = 'SELECT rowid
     				FROM '.MAIN_DB_PREFIX.'entrepot
    @@ -705,9 +735,8 @@ class Entrepot extends CommonObject
     		}
     
     		return $TChildWarehouses;
    -
     	}
    -	
    +
     	/**
     	 *	Create object on disk
     	 *
    @@ -739,5 +768,4 @@ class Entrepot extends CommonObject
     
     		return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref);
     	}
    -
     }
    diff --git a/htdocs/product/stock/class/mouvementstock.class.php b/htdocs/product/stock/class/mouvementstock.class.php
    index 825034b87cb..e19df0aaa1a 100644
    --- a/htdocs/product/stock/class/mouvementstock.class.php
    +++ b/htdocs/product/stock/class/mouvementstock.class.php
    @@ -34,6 +34,7 @@ class MouvementStock extends CommonObject
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'stockmouvement';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
    @@ -43,14 +44,34 @@ class MouvementStock extends CommonObject
     	public $product_id;
     	public $warehouse_id;
     	public $qty;
    +
    +	/**
    +	 * @var int Type of movement
    +	 * 0=input (stock increase by a stock transfer), 1=output (stock decrease after by a stock transfer),
    +	 * 2=output (stock decrease), 3=input (stock increase)
    +	 * Note that qty should be > 0 with 0 or 3, < 0 with 1 or 2.
    +	 */
     	public $type;
     
     	public $tms = '';
     	public $datem = '';
     	public $price;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_author;
    -	public $label;
    +
    +	/**
    +     * @var string stock movements label
    +     */
    +    public $label;
    +
    +    /**
    +     * @var int ID
    +     */
     	public $fk_origin;
    +
     	public $origintype;
     	public $inventorycode;
     	public $batch;
    @@ -301,8 +322,8 @@ class MouvementStock extends CommonObject
         		    if (! $foundforbatch || $qtyisnotenough)
         		    {
         		        $langs->load("stocks");
    -        		    $this->error = $langs->trans('qtyToTranferLotIsNotEnough');
    -        		    $this->errors[] = $langs->trans('qtyToTranferLotIsNotEnough');
    +    		        $this->error = $langs->trans('qtyToTranferLotIsNotEnough').' : '.$product->ref;
    +    		        $this->errors[] = $langs->trans('qtyToTranferLotIsNotEnough').' : '.$product->ref;
             		    $this->db->rollback();
             		    return -8;
         		    }
    @@ -312,8 +333,8 @@ class MouvementStock extends CommonObject
         		    if (empty($product->stock_warehouse[$entrepot_id]->real) || $product->stock_warehouse[$entrepot_id]->real < abs($qty))
         		    {
         		        $langs->load("stocks");
    -    		        $this->error = $langs->trans('qtyToTranferIsNotEnough');
    -    		        $this->errors[] = $langs->trans('qtyToTranferIsNotEnough');
    +    		        $this->error = $langs->trans('qtyToTranferIsNotEnough').' : '.$product->ref;
    +    		        $this->errors[] = $langs->trans('qtyToTranferIsNotEnough').' : '.$product->ref;
         		        $this->db->rollback();
         		        return -8;
         		    }
    @@ -349,6 +370,7 @@ class MouvementStock extends CommonObject
     
     			dol_syslog(get_class($this)."::_create insert record into stock_mouvement", LOG_DEBUG);
     			$resql = $this->db->query($sql);
    +			
     			if ($resql)
     			{
     				$mvid = $this->db->last_insert_id(MAIN_DB_PREFIX."stock_mouvement");
    @@ -391,7 +413,7 @@ class MouvementStock extends CommonObject
     					$error = -2;
     				}
     			}
    -
    +			
     			// Calculate new PMP.
     			$newpmp=0;
     			if (! $error)
    @@ -421,7 +443,6 @@ class MouvementStock extends CommonObject
     					$newpmp = $oldpmp;
     				}
     			}
    -
     			// Update stock quantity
     			if (! $error)
     			{
    @@ -448,7 +469,6 @@ class MouvementStock extends CommonObject
     				{
     					$fk_product_stock = $this->db->last_insert_id(MAIN_DB_PREFIX."product_stock");
     				}
    -
     			}
     
     			// Update detail stock for batch product
    @@ -777,8 +797,8 @@ class MouvementStock extends CommonObject
     	 * Create or update batch record (update table llx_product_batch). No check is done here, done by parent.
     	 *
     	 * @param	array|int	$dluo	      Could be either
    -	 *                                     - int if row id of product_batch table
    -	 *                                     - or complete array('fk_product_stock'=>, 'batchnumber'=>)
    +	 *                                    - int if row id of product_batch table
    +	 *                                    - or complete array('fk_product_stock'=>, 'batchnumber'=>)
     	 * @param	int			$qty	      Quantity of product with batch number. May be a negative amount.
     	 * @return 	int   				      <0 if KO, else return productbatch id
     	 */
    @@ -857,6 +877,7 @@ class MouvementStock extends CommonObject
     		return $result;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return Url link of origin object
     	 *
    @@ -866,6 +887,7 @@ class MouvementStock extends CommonObject
     	 */
     	function get_origin($fk_origin, $origintype)
     	{
    +        // phpcs:enable
     	    $origin='';
     
     		switch ($origintype) {
    @@ -985,7 +1007,7 @@ class MouvementStock extends CommonObject
     		$label.= '<br><b>' . $langs->trans('Qty') . ':</b> ' .$this->qty;
     		$label.= '</div>';
     
    -		$link = '<a href="'.DOL_URL_ROOT.'/product/stock/mouvement.php?id='.$this->warehouse_id.'&msid='.$this->id.'"';
    +		$link = '<a href="'.DOL_URL_ROOT.'/product/stock/movement_list.php?id='.$this->warehouse_id.'&msid='.$this->id.'"';
     		$link.= ($notooltip?'':' title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip'.($morecss?' '.$morecss:'').'"');
     		$link.= '>';
     		$linkend='</a>';
    @@ -1010,6 +1032,7 @@ class MouvementStock extends CommonObject
     		return $this->LibStatut($mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un status donne
     	 *
    @@ -1018,29 +1041,26 @@ class MouvementStock extends CommonObject
     	 */
     	function LibStatut($mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
    -		if ($mode == 0)
    +		if ($mode == 0 || $mode == 1)
     		{
     			return $langs->trans('StatusNotApplicable');
     		}
    -		if ($mode == 1)
    -		{
    -			return $langs->trans('StatusNotApplicable');
    -		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			return img_picto($langs->trans('StatusNotApplicable'),'statut9').' '.$langs->trans('StatusNotApplicable');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			return img_picto($langs->trans('StatusNotApplicable'),'statut9');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			return img_picto($langs->trans('StatusNotApplicable'),'statut9').' '.$langs->trans('StatusNotApplicable');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			return $langs->trans('StatusNotApplicable').' '.img_picto($langs->trans('StatusNotApplicable'),'statut9');
     		}
    @@ -1059,7 +1079,7 @@ class MouvementStock extends CommonObject
     	public function generateDocument($modele, $outputlangs='',$hidedetails=0,$hidedesc=0,$hideref=0)
     	{
     		global $conf,$user,$langs;
    -	
    +
     		$langs->load("stocks");
     
     		if (! dol_strlen($modele)) {
    diff --git a/htdocs/product/stock/class/productlot.class.php b/htdocs/product/stock/class/productlot.class.php
    index 2ac89def512..60ce7bc02d2 100644
    --- a/htdocs/product/stock/class/productlot.class.php
    +++ b/htdocs/product/stock/class/productlot.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2014       Juanjo Menent       <jmenent@2byte.es>
      * Copyright (C) 2015       Florian Henry       <florian.henry@open-concept.pro>
      * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
    - * Copyright (C) ---Put here your own copyright and developer email---
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -39,6 +39,7 @@ class Productlot extends CommonObject
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'productlot';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
    @@ -46,6 +47,10 @@ class Productlot extends CommonObject
     
     	public $picto='barcode';
     
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
         public $ismultientitymanaged = 1;
     
     	/**
    @@ -54,21 +59,32 @@ class Productlot extends CommonObject
     	public $lines = array();
     
     	/**
    +	 * @var int Entity
     	 */
    -
     	public $entity;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_product;
    +
     	public $batch;
     	public $eatby = '';
     	public $sellby = '';
     	public $datec = '';
     	public $tms = '';
    -	public $fk_user_creat;
    -	public $fk_user_modif;
    -	public $import_key;
     
     	/**
    -	 */
    +     * @var int ID
    +     */
    +	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_modif;
    +
    +	public $import_key;
     
     
     	/**
    @@ -99,19 +115,19 @@ class Productlot extends CommonObject
     		// Clean parameters
     
     		if (isset($this->entity)) {
    -			 $this->entity = trim($this->entity);
    +			 $this->entity = (int) $this->entity;
     		}
     		if (isset($this->fk_product)) {
    -			 $this->fk_product = trim($this->fk_product);
    +			 $this->fk_product = (int) $this->fk_product;
     		}
     		if (isset($this->batch)) {
     			 $this->batch = trim($this->batch);
     		}
     		if (isset($this->fk_user_creat)) {
    -			 $this->fk_user_creat = trim($this->fk_user_creat);
    +			 $this->fk_user_creat = (int) $this->fk_user_creat;
     		}
     		if (isset($this->fk_user_modif)) {
    -			 $this->fk_user_modif = trim($this->fk_user_modif);
    +			 $this->fk_user_modif = (int) $this->fk_user_modif;
     		}
     		if (isset($this->import_key)) {
     			 $this->import_key = trim($this->import_key);
    @@ -280,19 +296,19 @@ class Productlot extends CommonObject
     		// Clean parameters
     
     		if (isset($this->entity)) {
    -			 $this->entity = trim($this->entity);
    +			 $this->entity = (int) $this->entity;
     		}
     		if (isset($this->fk_product)) {
    -			 $this->fk_product = trim($this->fk_product);
    +			 $this->fk_product = (int) $this->fk_product;
     		}
     		if (isset($this->batch)) {
     			 $this->batch = trim($this->batch);
     		}
     		if (isset($this->fk_user_creat)) {
    -			 $this->fk_user_creat = trim($this->fk_user_creat);
    +			 $this->fk_user_creat = (int) $this->fk_user_creat;
     		}
     		if (isset($this->fk_user_modif)) {
    -			 $this->fk_user_modif = trim($this->fk_user_modif);
    +			 $this->fk_user_modif = (int) $this->fk_user_modif;
     		}
     		if (isset($this->import_key)) {
     			 $this->import_key = trim($this->import_key);
    @@ -342,9 +358,6 @@ class Productlot extends CommonObject
     		}
     
     		if (!$error && !$notrigger) {
    -			// Uncomment this and change MYOBJECT to your own tag if you
    -			// want this action calls a trigger.
    -
     			// Call triggers
     			$result=$this->call_trigger('PRODUCTLOT_MODIFY',$user);
     			if ($result < 0) { $error++; }
    @@ -379,8 +392,8 @@ class Productlot extends CommonObject
     
     		$this->db->begin();
     
    -		if (!$error) {
    -			if (!$notrigger) {
    +		//if (!$error) {
    +			//if (!$notrigger) {
     				// Uncomment this and change MYOBJECT to your own tag if you
     				// want this action calls a trigger.
     
    @@ -388,8 +401,8 @@ class Productlot extends CommonObject
     				//$result=$this->call_trigger('MYOBJECT_DELETE',$user);
     				//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
     				//// End call triggers
    -			}
    -		}
    +			//}
    +		//}
     
     		if (!$error) {
     			$sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element;
    @@ -441,6 +454,7 @@ class Productlot extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result = $object->create($user);
     
     		// Other options
    @@ -450,6 +464,8 @@ class Productlot extends CommonObject
     			dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (!$error) {
     			$this->db->commit();
    @@ -474,6 +490,7 @@ class Productlot extends CommonObject
     	    return $this->LibStatut(0,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return label of a given status
     	 *
    @@ -483,6 +500,7 @@ class Productlot extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     	    global $langs;
     
     	    //$langs->load('stocks');
    @@ -569,17 +587,15 @@ class Productlot extends CommonObject
     	{
     		$this->id = 0;
     
    -		$this->entity = '';
    -		$this->fk_product = '';
    +		$this->entity = null;
    +		$this->fk_product = null;
     		$this->batch = '';
     		$this->eatby = '';
     		$this->sellby = '';
     		$this->datec = '';
     		$this->tms = '';
    -		$this->fk_user_creat = '';
    -		$this->fk_user_modif = '';
    +		$this->fk_user_creat = null;
    +		$this->fk_user_modif = null;
     		$this->import_key = '';
     	}
    -
     }
    -
    diff --git a/htdocs/product/stock/class/productstockentrepot.class.php b/htdocs/product/stock/class/productstockentrepot.class.php
    index 1d4691d5ff3..c5c66ad8d50 100644
    --- a/htdocs/product/stock/class/productstockentrepot.class.php
    +++ b/htdocs/product/stock/class/productstockentrepot.class.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2014-2016  Juanjo Menent       <jmenent@2byte.es>
      * Copyright (C) 2015       Florian Henry       <florian.henry@open-concept.pro>
      * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
    - * Copyright (C) ---Put here your own copyright and developer email---
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -44,24 +44,28 @@ class ProductStockEntrepot extends CommonObject
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'ProductStockEntrepot';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'product_warehouse_properties';
     
    -	/**
    -	 */
    -
     	public $tms = '';
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_product;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_entrepot;
    +
     	public $seuil_stock_alerte;
     	public $desiredstock;
     	public $import_key;
     
    -	/**
    -	 */
    -
     
     	/**
     	 * Constructor
    @@ -89,8 +93,8 @@ class ProductStockEntrepot extends CommonObject
     
     		// Clean parameters
     
    -		if (isset($this->fk_product)) $this->fk_product = trim($this->fk_product);
    -		if (isset($this->fk_entrepot)) $this->fk_entrepot = trim($this->fk_entrepot);
    +		if (isset($this->fk_product)) $this->fk_product = (int) $this->fk_product;
    +		if (isset($this->fk_entrepot)) $this->fk_entrepot = (int) $this->fk_entrepot;
     		if (isset($this->seuil_stock_alerte)) $this->seuil_stock_alerte = trim($this->seuil_stock_alerte);
     		if (isset($this->desiredstock)) $this->desiredstock = trim($this->desiredstock);
     		if (isset($this->import_key)) $this->import_key = trim($this->import_key);
    @@ -131,7 +135,7 @@ class ProductStockEntrepot extends CommonObject
     		if (!$error) {
     			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element);
     
    -			if (!$notrigger) {
    +			//if (!$notrigger) {
     				// Uncomment this and change MYOBJECT to your own tag if you
     				// want this action to call a trigger.
     
    @@ -139,7 +143,7 @@ class ProductStockEntrepot extends CommonObject
     				//$result=$this->call_trigger('MYOBJECT_CREATE',$user);
     				//if ($result < 0) $error++;
     				//// End call triggers
    -			}
    +			//}
     		}
     
     		// Commit or rollback
    @@ -309,8 +313,8 @@ class ProductStockEntrepot extends CommonObject
     
     		// Clean parameters
     
    -		if (isset($this->fk_product)) $this->fk_product = trim($this->fk_product);
    -		if (isset($this->fk_entrepot)) $this->fk_entrepot = trim($this->fk_entrepot);
    +		if (isset($this->fk_product)) $this->fk_product = (int) $this->fk_product;
    +		if (isset($this->fk_entrepot)) $this->fk_entrepot = (int) $this->fk_entrepot;
     		if (isset($this->seuil_stock_alerte)) $this->seuil_stock_alerte = trim($this->seuil_stock_alerte);
     		if (isset($this->desiredstock)) $this->desiredstock = trim($this->desiredstock);
     		if (isset($this->import_key)) $this->import_key = trim($this->import_key);
    @@ -341,7 +345,7 @@ class ProductStockEntrepot extends CommonObject
     			dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR);
     		}
     
    -		if (!$error && !$notrigger) {
    +		//if (!$error && !$notrigger) {
     			// Uncomment this and change MYOBJECT to your own tag if you
     			// want this action calls a trigger.
     
    @@ -349,7 +353,7 @@ class ProductStockEntrepot extends CommonObject
     			//$result=$this->call_trigger('MYOBJECT_MODIFY',$user);
     			//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
     			//// End call triggers
    -		}
    +		//}
     
     		// Commit or rollback
     		if ($error) {
    @@ -379,8 +383,7 @@ class ProductStockEntrepot extends CommonObject
     
     		$this->db->begin();
     
    -		if (!$error) {
    -			if (!$notrigger) {
    +		//if (!$error && !$notrigger) {
     				// Uncomment this and change MYOBJECT to your own tag if you
     				// want this action calls a trigger.
     
    @@ -388,8 +391,7 @@ class ProductStockEntrepot extends CommonObject
     				//$result=$this->call_trigger('MYOBJECT_DELETE',$user);
     				//if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
     				//// End call triggers
    -			}
    -		}
    +		//}
     
     		if (!$error) {
     			$sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element;
    @@ -441,6 +443,7 @@ class ProductStockEntrepot extends CommonObject
     		// ...
     
     		// Create clone
    +		$object->context['createfromclone'] = 'createfromclone';
     		$result = $object->create($user);
     
     		// Other options
    @@ -450,6 +453,8 @@ class ProductStockEntrepot extends CommonObject
     			dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR);
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (!$error) {
     			$this->db->commit();
    @@ -512,6 +517,7 @@ class ProductStockEntrepot extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un status donne
     	 *
    @@ -521,38 +527,38 @@ class ProductStockEntrepot extends CommonObject
     	 */
     	function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
     		{
    -			$prefix='';
     			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == 0) return $langs->trans('Disabled');
    +			elseif ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == 0) return $langs->trans('Disabled');
    +			elseif ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
    +			elseif ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
     		}
     	}
     
    @@ -568,13 +574,10 @@ class ProductStockEntrepot extends CommonObject
     		$this->id = 0;
     
     		$this->tms = '';
    -		$this->fk_product = '';
    -		$this->fk_entrepot = '';
    +		$this->fk_product = null;
    +		$this->fk_entrepot = null;
     		$this->seuil_stock_alerte = '';
     		$this->desiredstock = '';
     		$this->import_key = '';
    -
    -
     	}
    -
     }
    diff --git a/htdocs/product/stock/fiche-valo.php b/htdocs/product/stock/fiche-valo.php
    index 400c6183ca4..d815e56a00b 100644
    --- a/htdocs/product/stock/fiche-valo.php
    +++ b/htdocs/product/stock/fiche-valo.php
    @@ -140,5 +140,6 @@ if ($_GET["id"])
     	print "</div>";
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/stock/index.php b/htdocs/product/stock/index.php
    index fd2c1d48168..61990fa1cfb 100644
    --- a/htdocs/product/stock/index.php
    +++ b/htdocs/product/stock/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -97,7 +97,6 @@ if ($result)
                 $i++;
             }
             $db->free($result);
    -
         }
         print "</table>";
     }
    @@ -143,7 +142,7 @@ if ($resql)
     		print '<th>'.$langs->trans("EatByDate").'</th>';
     	}
     	print '<th>'.$langs->trans("Warehouse").'</th>';
    -	print '<th align="right"><a class="notasortlink" href="'.DOL_URL_ROOT.'/product/stock/mouvement.php">'.$langs->trans("FullList").'</a></th>';
    +	print '<th align="right"><a class="notasortlink" href="'.DOL_URL_ROOT.'/product/stock/movement_list.php">'.$langs->trans("FullList").'</a></th>';
     	print "</tr>\n";
     
     	$i=0;
    @@ -185,6 +184,6 @@ if ($resql)
     //print '</td></tr></table>';
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/stock/info.php b/htdocs/product/stock/info.php
    index 4653a56495d..065dd448a8d 100644
    --- a/htdocs/product/stock/info.php
    +++ b/htdocs/product/stock/info.php
    @@ -73,6 +73,6 @@ dol_print_object_info($object);
     
     print '</div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/stock/list.php b/htdocs/product/stock/list.php
    index aba8655fae1..5682b6855d3 100644
    --- a/htdocs/product/stock/list.php
    +++ b/htdocs/product/stock/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2004	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2014	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2015       Juanjo Menent           <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -271,7 +271,6 @@ else
       dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/stock/massstockmove.php b/htdocs/product/stock/massstockmove.php
    index eae89aca648..66ed28b8ec8 100644
    --- a/htdocs/product/stock/massstockmove.php
    +++ b/htdocs/product/stock/massstockmove.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2013-2018 Laurent Destaileur	<ely@users.sourceforge.net>
    - * Copyright (C) 2014	   Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2014	   Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -161,7 +161,7 @@ if ($action == 'createmovements')
     	if (! GETPOST("label"))
     	{
     		$error++;
    -		setEventMessages($langs->trans("ErrorFieldRequired"),$langs->transnoentitiesnoconv("LabelMovement"), null, 'errors');
    +		setEventMessages($langs->trans("ErrorFieldRequired"),$langs->transnoentitiesnoconv("MovementLabel"), null, 'errors');
     	}
     
     	$db->begin();
    @@ -334,8 +334,6 @@ $buttonrecordnoent=$langs->transnoentitiesnoconv("RecordMovement");
     print '<span class="opacitymedium">'.$langs->trans("SelectProductInAndOutWareHouse",$titletoaddnoent,$buttonrecordnoent).'</span><br>';
     print '<br>'."\n";
     
    -$var=true;
    -
     // Form to add a line
     print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST" name="formulaire">';
     print '<input type="hidden" name="token" value="' .$_SESSION['newtoken'] . '">';
    @@ -402,8 +400,6 @@ print '</tr>';
     
     foreach($listofdata as $key => $val)
     {
    -
    -
     	$productstatic->fetch($val['id_product']);
     	$warehousestatics->fetch($val['id_sw']);
     	$warehousestatict->fetch($val['id_tw']);
    @@ -455,7 +451,7 @@ print '<table class="noborder" width="100%">';
     	print '</td>';
     	print '</tr>';
     	print '<tr>';
    -	print '<td>'.$langs->trans("LabelMovement").'</td>';
    +	print '<td>'.$langs->trans("MovementLabel").'</td>';
     	print '<td>';
     	print '<input type="text" name="label" class="quatrevingtpercent" value="'.dol_escape_htmltag($labelmovement).'">';
     	print '</td>';
    @@ -466,7 +462,6 @@ print '<div class="center"><input class="button" type="submit" name="valid" valu
     
     print '</form>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/movement_list.php
    similarity index 94%
    rename from htdocs/product/stock/mouvement.php
    rename to htdocs/product/stock/movement_list.php
    index 410396a152b..f6a694c57fa 100644
    --- a/htdocs/product/stock/mouvement.php
    +++ b/htdocs/product/stock/movement_list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2006	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2014	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2014	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2015		Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2018		Ferran Marcet			<fmarcet@2byte.es>
      *
    @@ -20,7 +20,7 @@
      */
     
     /**
    - *	\file       htdocs/product/stock/mouvement.php
    + *	\file       htdocs/product/stock/movement_list.php
      *	\ingroup    stock
      *	\brief      Page to list stock movements
      */
    @@ -43,7 +43,7 @@ if (! empty($conf->projet->enabled))
     }
     
     // Load translation files required by the page
    -$langs->loadLangs(array('products', 'stocks'));
    +$langs->loadLangs(array('products', 'stocks', 'orders'));
     if (! empty($conf->productbatch->enabled)) $langs->load("productbatch");
     
     // Security check
    @@ -90,7 +90,7 @@ $formfile = new FormFile($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('movement');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     $arrayfields=array(
         'm.rowid'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
    @@ -103,8 +103,8 @@ $arrayfields=array(
         'e.ref'=>array('label'=>$langs->trans("Warehouse"), 'checked'=>1, 'enabled'=>(! $id > 0)),	// If we are on specific warehouse, we hide it
         'm.fk_user_author'=>array('label'=>$langs->trans("Author"), 'checked'=>0),
         'm.inventorycode'=>array('label'=>$langs->trans("InventoryCodeShort"), 'checked'=>1),
    -    'm.label'=>array('label'=>$langs->trans("LabelMovement"), 'checked'=>1),
    -    'm.type_mouvement'=>array('label'=>$langs->trans("Type Mouvement"), 'checked'=>1),
    +    'm.label'=>array('label'=>$langs->trans("MovementLabel"), 'checked'=>1),
    +    'm.type_mouvement'=>array('label'=>$langs->trans("TypeMovement"), 'checked'=>1),
         'origin'=>array('label'=>$langs->trans("Origin"), 'checked'=>1),
     	'm.value'=>array('label'=>$langs->trans("Qty"), 'checked'=>1),
     	'm.price'=>array('label'=>$langs->trans("UnitPurchaseValue"), 'checked'=>0),
    @@ -385,7 +385,7 @@ if ($action == "transfert_stock" && ! $cancel)
                     }
                     else
                     {
    -                    header("Location: mouvement.php?id=".$object->id);
    +                    header("Location: movement_list.php?id=".$object->id);
                         exit;
                     }
                 }
    @@ -478,11 +478,11 @@ if (! empty($search_movement))      $sql.= natural_search('m.label', $search_mov
     if (! empty($search_inventorycode)) $sql.= natural_search('m.inventorycode', $search_inventorycode);
     if (! empty($search_product_ref))   $sql.= natural_search('p.ref', $search_product_ref);
     if (! empty($search_product))       $sql.= natural_search('p.label', $search_product);
    -if ($search_warehouse > 0)          $sql.= " AND e.rowid = '".$db->escape($search_warehouse)."'";
    +if ($search_warehouse != '' && $search_warehouse != '-1')          $sql.= natural_search('e.rowid', $search_warehouse, 2);
     if (! empty($search_user))          $sql.= natural_search('u.login', $search_user);
     if (! empty($search_batch))         $sql.= natural_search('m.batch', $search_batch);
     if ($search_qty != '')				$sql.= natural_search('m.value', $search_qty, 1);
    -if ($search_type_mouvement)	$sql.= " AND m.type_mouvement = '".$db->escape($search_type_mouvement)."'";
    +if ($search_type_mouvement != '' && $search_type_mouvement != '-1')	$sql.= natural_search('m.type_mouvement', $search_type_mouvement, 2);
     // Add where from extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
     // Add where from hooks
    @@ -579,8 +579,10 @@ if ($resql)
     
             print '<table class="border" width="100%">';
     
    +        print '<tr>';
    +
             // Description
    -        print '<tr><td class="titlefield tdtop">'.$langs->trans("Description").'</td><td>'.dol_htmlentitiesbr($object->description).'</td></tr>';
    +        print '<td class="titlefield tdtop">'.$langs->trans("Description").'</td><td>'.dol_htmlentitiesbr($object->description).'</td></tr>';
     
             $calcproductsunique=$object->nb_different_products();
             $calcproducts=$object->nb_products();
    @@ -841,13 +843,14 @@ if ($resql)
     	    // Type of movement
     	    print '<td class="liste_titre" align="center">';
     	    //print '<input class="flat" type="text" size="3" name="search_type_mouvement" value="'.dol_escape_htmltag($search_type_mouvement).'">';
    -		print '<select name="search_type_mouvement">';
    +		print '<select id="search_type_mouvement" name="search_type_mouvement" class="maxwidth150">';
     		print '<option value="" '.(($search_type_mouvement=="")?'selected="selected"':'').'></option>';
    -		print '<option value="0" '.(($search_type_mouvement=="0")?'selected="selected"':'').'>0</option>';
    -		print '<option value="1" '.(($search_type_mouvement=="1")?'selected="selected"':'').'>1</option>';
    -		print '<option value="2" '.(($search_type_mouvement=="2")?'selected="selected"':'').'>2</option>';
    -		print '<option value="3" '.(($search_type_mouvement=="3")?'selected="selected"':'').'>3</option>';
    +		print '<option value="0" '.(($search_type_mouvement=="0")?'selected="selected"':'').'>'.$langs->trans('StockIncreaseAfterCorrectTransfer').'</option>';
    +		print '<option value="1" '.(($search_type_mouvement=="1")?'selected="selected"':'').'>'.$langs->trans('StockDecreaseAfterCorrectTransfer').'</option>';
    +		print '<option value="2" '.(($search_type_mouvement=="2")?'selected="selected"':'').'>'.$langs->trans('StockDecrease').'</option>';
    +		print '<option value="3" '.(($search_type_mouvement=="3")?'selected="selected"':'').'>'.$langs->trans('StockIncrease').'</option>';
     		print '</select>';
    +		print ajax_combobox('search_type_mouvement');
     		// TODO: add new function $formentrepot->selectTypeOfMovement(...) like
     		// print $formproduct->selectWarehouses($search_warehouse, 'search_warehouse', 'warehouseopen,warehouseinternal', 1, 0, 0, '', 0, 0, null, 'maxwidth200');
     	    print '</td>';
    @@ -966,7 +969,7 @@ if ($resql)
     			$origin = '';
     		}
     
    -        print "<tr>";
    +        print '<tr class="oddeven">';
             // Id movement
             if (! empty($arrayfields['m.rowid']['checked']))
             {
    @@ -980,7 +983,7 @@ if ($resql)
             if (! empty($arrayfields['p.ref']['checked']))
             {
     	        // Product ref
    -	        print '<td>';
    +	        print '<td class="nowraponall">';
     	        print $productstatic->getNomUrl(1,'stock',16);
     	        print "</td>\n";
             }
    @@ -997,7 +1000,7 @@ if ($resql)
             }
             if (! empty($arrayfields['m.batch']['checked']))
             {
    -	    	print '<td align="center">';
    +	    	print '<td class="center nowraponall">';
     	    	if ($productlot->id > 0) print $productlot->getNomUrl(1);
     	    	else print $productlot->batch;		// the id may not be defined if movement was entered when lot was not saved or if lot was removed after movement.
     	    	print '</td>';
    @@ -1027,7 +1030,15 @@ if ($resql)
             if (! empty($arrayfields['m.inventorycode']['checked']))
             {
     	        // Inventory code
    -	        print '<td>'.$objp->inventorycode.'</td>';
    +	        print '<td>'.'<a href="'
    +								.DOL_URL_ROOT.'/product/stock/movement_list.php'
    +								.'?id='.$objp->entrepot_id
    +								.'&amp;search_inventorycode='.$objp->inventorycode
    +							    .'&amp;search_type_mouvement='.$objp->type_mouvement
    +						.'">'
    +							.$objp->inventorycode
    +						.'</a>'
    +					.'</td>';
             }
             if (! empty($arrayfields['m.label']['checked']))
             {
    @@ -1037,12 +1048,25 @@ if ($resql)
     		if (! empty($arrayfields['m.type_mouvement']['checked']))
             {
                 // Type of movement
    -        	print '<td align="center">'.$objp->type_mouvement.'</td>';
    +        		switch($objp->type_mouvement){
    +                case "0":
    +                    print '<td align="center">'.$langs->trans('StockIncreaseAfterCorrectTransfer').'</td>';
    +                    break;
    +                case "1":
    +                    print '<td align="center">'.$langs->trans('StockDecreaseAfterCorrectTransfer').'</td>';
    +                    break;
    +                case "2":
    +                    print '<td align="center">'.$langs->trans('StockDecrease').'</td>';
    +                    break;
    +                case "3":
    +                    print '<td align="center">'.$langs->trans('StockIncrease').'</td>';
    +                    break;
    +            }
             }
             if (! empty($arrayfields['origin']['checked']))
             {
             	// Origin of movement
    -        	print '<td>'.$origin.'</td>';
    +        	print '<td class="nowraponall">'.$origin.'</td>';
             }
             if (! empty($arrayfields['m.value']['checked']))
             {
    @@ -1165,7 +1189,6 @@ if ($action != 'create' && $action != 'edit' && $action != 'delete' && $id>0)
     }
     */
     
    +// End of page
     llxFooter();
    -
     $db->close();
    -
    diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php
    index 01ca0bb37e6..2f9904a3221 100644
    --- a/htdocs/product/stock/product.php
    +++ b/htdocs/product/stock/product.php
    @@ -1,13 +1,14 @@
     <?php
    -/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    +/* Copyright (C) 2001-2007  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
      * Copyright (C) 2005      Simon TOSSER         <simon@kornog-computing.com>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Cédric Salvador      <csalvador.gpcsolutions.fr>
    - * Copyright (C) 2013-2015 Juanjo Menent	    <jmenent@2byte.es>
    + * Copyright (C) 2013-2018 Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2014-2015 Cédric Gross         <c.gross@kreiz-it.fr>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -44,6 +45,13 @@ if (! empty($conf->projet->enabled))
     	require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     }
     
    +if (! empty($conf->variants->enabled)) {
    +	require_once DOL_DOCUMENT_ROOT . '/variants/class/ProductAttribute.class.php';
    +	require_once DOL_DOCUMENT_ROOT . '/variants/class/ProductAttributeValue.class.php';
    +	require_once DOL_DOCUMENT_ROOT . '/variants/class/ProductCombination.class.php';
    +	require_once DOL_DOCUMENT_ROOT . '/variants/class/ProductCombination2ValuePair.class.php';
    +}
    +
     // Load translation files required by the page
     $langs->loadlangs(array('products', 'orders', 'bills', 'stocks', 'sendings'));
     if (! empty($conf->productbatch->enabled)) $langs->load("productbatch");
    @@ -80,7 +88,6 @@ $extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
     if ($id > 0 || ! empty($ref))
     {
         $result = $object->fetch($id, $ref);
    -
     }
     
     if(empty($id) && !empty($object->id)) $id = $object->id;
    @@ -130,32 +137,33 @@ if ($action == 'addlimitstockwarehouse' && !empty($user->rights->produit->creer)
     	if($maj_ok) {
     
     		$pse = new ProductStockEntrepot($db);
    -		if($pse->fetch(0, $id, GETPOST('fk_entrepot')) > 0) {
    +		if ($pse->fetch(0, $id, GETPOST('fk_entrepot','int')) > 0) {
     			// Update
     			$pse->seuil_stock_alerte = $seuil_stock_alerte;
     			$pse->desiredstock  	 = $desiredstock;
    -			if($pse->update($user) > 0) setEventMessage($langs->trans('ProductStockWarehouseUpdated'));
    +			if($pse->update($user) > 0) setEventMessages($langs->trans('ProductStockWarehouseUpdated'), null, 'mesgs');
     		} else {
     			// Create
     			$pse->fk_entrepot 		 = GETPOST('fk_entrepot');
     			$pse->fk_product  	 	 = $id;
     			$pse->seuil_stock_alerte = GETPOST('seuil_stock_alerte');
     			$pse->desiredstock  	 = GETPOST('desiredstock');
    -			if($pse->create($user) > 0) setEventMessage($langs->trans('ProductStockWarehouseCreated'));
    +			if($pse->create($user) > 0) setEventMessages($langs->trans('ProductStockWarehouseCreated'), null, 'mesgs');
     		}
     	}
     
     	header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
     	exit;
    -
     }
     
     if($action == 'delete_productstockwarehouse' && !empty($user->rights->produit->creer))
     {
     
     	$pse = new ProductStockEntrepot($db);
    +
     	$pse->fetch(GETPOST('fk_productstockwarehouse','int'));
    -	if($pse->delete($user) > 0) setEventMessage($langs->trans('ProductStockWarehouseDeleted'));
    +	if ($pse->delete($user) > 0) setEventMessages($langs->trans('ProductStockWarehouseDeleted'), null, 'mesgs');
    +
     	$action = '';
     }
     
    @@ -169,7 +177,7 @@ if ($action == 'setseuil_stock_alerte' && !empty($user->rights->produit->creer))
         if ($result < 0)
         	setEventMessages($object->error, $object->errors, 'errors');
         //else
    -    //	setEventMessage($lans->trans("SavedRecordSuccessfully"));
    +    //	setEventMessages($lans->trans("SavedRecordSuccessfully"), null, 'mesgs');
         $action='';
     }
     
    @@ -510,6 +518,8 @@ if ($id > 0 || $ref)
     	$object = new Product($db);
     	$result = $object->fetch($id,$ref);
     
    +	$variants = $object->hasVariants();
    +
     	$object->load_stock();
     
     	$title = $langs->trans('ProductServiceCard');
    @@ -550,174 +560,163 @@ if ($id > 0 || $ref)
             print '<div class="underbanner clearboth"></div>';
             print '<table class="border tableforfield" width="100%">';
     
    -		if ($conf->productbatch->enabled)
    -		{
    -			print '<tr><td class="titlefield">'.$langs->trans("ManageLotSerial").'</td><td>';
    -			print $object->getLibStatut(0,2);
    -			print '</td></tr>';
    -		}
    +		if (! $variants) {
     
    -		// PMP
    -		print '<tr><td class="titlefield">'.$langs->trans("AverageUnitPricePMP").'</td>';
    -		print '<td>';
    -		if ($object->pmp > 0) print price($object->pmp).' '.$langs->trans("HT");
    -		print '</td>';
    -		print '</tr>';
    +			if ($conf->productbatch->enabled) {
    +				print '<tr><td class="titlefield">' . $langs->trans("ManageLotSerial") . '</td><td>';
    +				print $object->getLibStatut(0, 2);
    +				print '</td></tr>';
    +			}
     
    -		// Minimum Price
    -		print '<tr><td>'.$langs->trans("BuyingPriceMin").'</td>';
    -		print '<td>';
    -		$product_fourn = new ProductFournisseur($db);
    -		if ($product_fourn->find_min_price_product_fournisseur($object->id) > 0)
    -		{
    -			if ($product_fourn->product_fourn_price_id > 0) print $product_fourn->display_price_product_fournisseur();
    -			else print $langs->trans("NotDefined");
    -		}
    -		print '</td></tr>';
    +			// PMP
    +			print '<tr><td class="titlefield">' . $langs->trans("AverageUnitPricePMP") . '</td>';
    +			print '<td>';
    +			if ($object->pmp > 0) print price($object->pmp) . ' ' . $langs->trans("HT");
    +			print '</td>';
    +			print '</tr>';
     
    -		if (empty($conf->global->PRODUIT_MULTIPRICES))
    -		{
    -			// Price
    -			print '<tr><td>' . $langs->trans("SellingPrice") . '</td><td>';
    -			if ($object->price_base_type == 'TTC') {
    -				print price($object->price_ttc) . ' ' . $langs->trans($object->price_base_type);
    -			} else {
    -				print price($object->price) . ' ' . $langs->trans($object->price_base_type);
    +			// Minimum Price
    +			print '<tr><td>' . $langs->trans("BuyingPriceMin") . '</td>';
    +			print '<td>';
    +			$product_fourn = new ProductFournisseur($db);
    +			if ($product_fourn->find_min_price_product_fournisseur($object->id) > 0) {
    +				if ($product_fourn->product_fourn_price_id > 0) print $product_fourn->display_price_product_fournisseur();
    +				else print $langs->trans("NotDefined");
     			}
     			print '</td></tr>';
     
    -			// Price minimum
    -			print '<tr><td>' . $langs->trans("MinPrice") . '</td><td>';
    -			if ($object->price_base_type == 'TTC') {
    -				print price($object->price_min_ttc) . ' ' . $langs->trans($object->price_base_type);
    +			if (empty($conf->global->PRODUIT_MULTIPRICES)) {
    +				// Price
    +				print '<tr><td>' . $langs->trans("SellingPrice") . '</td><td>';
    +				if ($object->price_base_type == 'TTC') {
    +					print price($object->price_ttc) . ' ' . $langs->trans($object->price_base_type);
    +				} else {
    +					print price($object->price) . ' ' . $langs->trans($object->price_base_type);
    +				}
    +				print '</td></tr>';
    +
    +				// Price minimum
    +				print '<tr><td>' . $langs->trans("MinPrice") . '</td><td>';
    +				if ($object->price_base_type == 'TTC') {
    +					print price($object->price_min_ttc) . ' ' . $langs->trans($object->price_base_type);
    +				} else {
    +					print price($object->price_min) . ' ' . $langs->trans($object->price_base_type);
    +				}
    +				print '</td></tr>';
     			} else {
    -				print price($object->price_min) . ' ' . $langs->trans($object->price_base_type);
    +				// Price
    +				print '<tr><td>' . $langs->trans("SellingPrice") . '</td><td>';
    +				print $langs->trans("Variable");
    +				print '</td></tr>';
    +
    +				// Price minimum
    +				print '<tr><td>' . $langs->trans("MinPrice") . '</td><td>';
    +				print $langs->trans("Variable");
    +				print '</td></tr>';
     			}
    -			print '</td></tr>';
    -		}
    -		else
    -		{
    -			// Price
    -			print '<tr><td>' . $langs->trans("SellingPrice") . '</td><td>';
    -			print $langs->trans("Variable");
    +
    +			// Stock alert threshold
    +			print '<tr><td>' . $form->editfieldkey($form->textwithpicto($langs->trans("StockLimit"), $langs->trans("StockLimitDesc"), 1), 'seuil_stock_alerte', $object->seuil_stock_alerte, $object, $user->rights->produit->creer) . '</td><td>';
    +			print $form->editfieldval("StockLimit", 'seuil_stock_alerte', $object->seuil_stock_alerte, $object, $user->rights->produit->creer, 'string');
     			print '</td></tr>';
     
    -			// Price minimum
    -			print '<tr><td>' . $langs->trans("MinPrice") . '</td><td>';
    -			print $langs->trans("Variable");
    +			// Hook formObject
    +			$parameters = array();
    +			$reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action);    // Note that $action and $object may have been modified by hook
    +			print $hookmanager->resPrint;
    +
    +			// Desired stock
    +			print '<tr><td>' . $form->editfieldkey($form->textwithpicto($langs->trans("DesiredStock"), $langs->trans("DesiredStockDesc"), 1), 'desiredstock', $object->desiredstock, $object, $user->rights->produit->creer);
    +			print '</td><td>';
    +			print $form->editfieldval("DesiredStock", 'desiredstock', $object->desiredstock, $object, $user->rights->produit->creer, 'string');
     			print '</td></tr>';
    +
    +			// Real stock
    +			$text_stock_options = $langs->trans("RealStockDesc") . '<br>';
    +			$text_stock_options .= $langs->trans("RealStockWillAutomaticallyWhen") . '<br>';
    +			$text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || !empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE) ? $langs->trans("DeStockOnShipment") . '<br>' : '');
    +			$text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER) ? $langs->trans("DeStockOnValidateOrder") . '<br>' : '');
    +			$text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_BILL) ? $langs->trans("DeStockOnBill") . '<br>' : '');
    +			$text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL) ? $langs->trans("ReStockOnBill") . '<br>' : '');
    +			$text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) ? $langs->trans("ReStockOnValidateOrder") . '<br>' : '');
    +			$text_stock_options .= (!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) ? $langs->trans("ReStockOnDispatchOrder") . '<br>' : '');
    +       		$text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || ! empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)?$langs->trans("StockOnReception").'<br>':'');
    +
    +			print '<tr><td>';
    +			print $form->textwithpicto($langs->trans("PhysicalStock"), $text_stock_options, 1);
    +			print '</td>';
    +			print '<td>' . price2num($object->stock_reel, 'MS');
    +			if ($object->seuil_stock_alerte != '' && ($object->stock_reel < $object->seuil_stock_alerte)) print ' ' . img_warning($langs->trans("StockLowerThanLimit", $object->seuil_stock_alerte));
    +			print '</td>';
    +			print '</tr>';
    +
    +			$stocktheo = price2num($object->stock_theorique, 'MS');
    +
    +			$found = 0;
    +			$helpondiff = '<strong>' . $langs->trans("StockDiffPhysicTeoric") . ':</strong><br>';
    +			// Number of customer orders running
    +			if (!empty($conf->commande->enabled)) {
    +				if ($found) $helpondiff .= '<br>'; else $found = 1;
    +				$helpondiff .= $langs->trans("ProductQtyInCustomersOrdersRunning") . ': ' . $object->stats_commande['qty'];
    +				$result = $object->load_stats_commande(0, '0', 1);
    +				if ($result < 0) dol_print_error($db, $object->error);
    +				$helpondiff .= ' (' . $langs->trans("ProductQtyInDraft") . ': ' . $object->stats_commande['qty'] . ')';
    +			}
    +
    +			// Number of product from customer order already sent (partial shipping)
    +			if (!empty($conf->expedition->enabled)) {
    +				if ($found) $helpondiff .= '<br>'; else $found = 1;
    +				$result = $object->load_stats_sending(0, '2', 1);
    +				$helpondiff .= $langs->trans("ProductQtyInShipmentAlreadySent") . ': ' . $object->stats_expedition['qty'];
    +			}
    +
    +			// Number of supplier order running
    +			if (!empty($conf->fournisseur->enabled)) {
    +				if ($found) $helpondiff .= '<br>'; else $found = 1;
    +				$result = $object->load_stats_commande_fournisseur(0, '3,4', 1);
    +				$helpondiff .= $langs->trans("ProductQtyInSuppliersOrdersRunning") . ': ' . $object->stats_commande_fournisseur['qty'];
    +				$result = $object->load_stats_commande_fournisseur(0, '0,1,2', 1);
    +				if ($result < 0) dol_print_error($db, $object->error);
    +				$helpondiff .= ' (' . $langs->trans("ProductQtyInDraftOrWaitingApproved") . ': ' . $object->stats_commande_fournisseur['qty'] . ')';
    +			}
    +
    +			// Number of product from supplier order already received (partial receipt)
    +			if (!empty($conf->fournisseur->enabled)) {
    +				if ($found) $helpondiff .= '<br>'; else $found = 1;
    +				$helpondiff .= $langs->trans("ProductQtyInSuppliersShipmentAlreadyRecevied") . ': ' . $object->stats_reception['qty'];
    +			}
    +
    +			// Calculating a theorical value
    +			print '<tr><td>';
    +			print $form->textwithpicto($langs->trans("VirtualStock"), $langs->trans("VirtualStockDesc"));
    +			print '</td>';
    +			print "<td>";
    +			//print (empty($stocktheo)?0:$stocktheo);
    +			print $form->textwithpicto((empty($stocktheo) ? 0 : $stocktheo), $helpondiff);
    +			if ($object->seuil_stock_alerte != '' && ($object->stock_theorique < $object->seuil_stock_alerte)) print ' ' . img_warning($langs->trans("StockLowerThanLimit", $object->seuil_stock_alerte));
    +			print '</td>';
    +			print '</tr>';
    +
    +			// Last movement
    +			$sql = "SELECT max(m.datem) as datem";
    +			$sql .= " FROM " . MAIN_DB_PREFIX . "stock_mouvement as m";
    +			$sql .= " WHERE m.fk_product = '" . $object->id . "'";
    +			$resqlbis = $db->query($sql);
    +			if ($resqlbis) {
    +				$obj = $db->fetch_object($resqlbis);
    +				$lastmovementdate = $db->jdate($obj->datem);
    +			} else {
    +				dol_print_error($db);
    +			}
    +			print '<tr><td class="tdtop">' . $langs->trans("LastMovement") . '</td><td>';
    +			if ($lastmovementdate) {
    +				print dol_print_date($lastmovementdate, 'dayhour') . ' ';
    +				print '(<a href="' . DOL_URL_ROOT . '/product/stock/movement_list.php?idproduct=' . $object->id . '">' . $langs->trans("FullList") . '</a>)';
    +			} else {
    +				print '<a href="' . DOL_URL_ROOT . '/product/stock/movement_list.php?idproduct=' . $object->id . '">' . $langs->trans("None") . '</a>';
    +			}
    +			print "</td></tr>";
     		}
    -
    -        // Stock alert threshold
    -        print '<tr><td>'.$form->editfieldkey($form->textwithpicto($langs->trans("StockLimit"), $langs->trans("StockLimitDesc"), 1),'seuil_stock_alerte',$object->seuil_stock_alerte,$object,$user->rights->produit->creer).'</td><td>';
    -        print $form->editfieldval("StockLimit",'seuil_stock_alerte',$object->seuil_stock_alerte,$object,$user->rights->produit->creer,'string');
    -        print '</td></tr>';
    -
    -		// Hook formObject
    -		$parameters=array();
    -		$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action);    // Note that $action and $object may have been modified by hook
    -		print $hookmanager->resPrint;
    -
    -        // Desired stock
    -        print '<tr><td>'.$form->editfieldkey($form->textwithpicto($langs->trans("DesiredStock"), $langs->trans("DesiredStockDesc"), 1),'desiredstock',$object->desiredstock,$object,$user->rights->produit->creer);
    -        print '</td><td>';
    -        print $form->editfieldval("DesiredStock",'desiredstock',$object->desiredstock,$object,$user->rights->produit->creer,'string');
    -        print '</td></tr>';
    -
    -        // Real stock
    -        $text_stock_options = $langs->trans("RealStockDesc").'<br>';
    -        $text_stock_options.= $langs->trans("RealStockWillAutomaticallyWhen").'<br>';
    -        $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || ! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)?$langs->trans("DeStockOnShipment").'<br>':'');
    -        $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER)?$langs->trans("DeStockOnValidateOrder").'<br>':'');
    -        $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_BILL)?$langs->trans("DeStockOnBill").'<br>':'');
    -        $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_BILL)?$langs->trans("ReStockOnBill").'<br>':'');
    -        $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER)?$langs->trans("ReStockOnValidateOrder").'<br>':'');
    -        $text_stock_options.= (! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)?$langs->trans("ReStockOnDispatchOrder").'<br>':'');
    -        print '<tr><td>';
    -        print $form->textwithpicto($langs->trans("PhysicalStock"), $text_stock_options, 1);
    -        print '</td>';
    -		print '<td>'.price2num($object->stock_reel, 'MS');
    -		if ($object->seuil_stock_alerte != '' && ($object->stock_reel < $object->seuil_stock_alerte)) print ' '.img_warning($langs->trans("StockLowerThanLimit", $object->seuil_stock_alerte));
    -		print '</td>';
    -		print '</tr>';
    -
    -		$stocktheo = price2num($object->stock_theorique, 'MS');
    -
    -		$found=0;
    -		$helpondiff='<strong>'.$langs->trans("StockDiffPhysicTeoric").':</strong><br>';
    -		// Number of customer orders running
    -		if (! empty($conf->commande->enabled))
    -		{
    -		    if ($found) $helpondiff.='<br>'; else $found=1;
    -		    $helpondiff.=$langs->trans("ProductQtyInCustomersOrdersRunning").': '.$object->stats_commande['qty'];
    -		    $result=$object->load_stats_commande(0,'0', 1);
    -		    if ($result < 0) dol_print_error($db,$object->error);
    -		    $helpondiff.=' ('.$langs->trans("ProductQtyInDraft").': '.$object->stats_commande['qty'].')';
    -		}
    -
    -		// Number of product from customer order already sent (partial shipping)
    -		if (! empty($conf->expedition->enabled))
    -		{
    -		    if ($found) $helpondiff.='<br>'; else $found=1;
    -		    $result=$object->load_stats_sending(0,'2', 1);
    -		    $helpondiff.=$langs->trans("ProductQtyInShipmentAlreadySent").': '.$object->stats_expedition['qty'];
    -		}
    -
    -		// Number of supplier order running
    -		if (! empty($conf->fournisseur->enabled))
    -		{
    -		    if ($found) $helpondiff.='<br>'; else $found=1;
    -		    $result=$object->load_stats_commande_fournisseur(0,'3,4', 1);
    -		    $helpondiff.=$langs->trans("ProductQtyInSuppliersOrdersRunning").': '.$object->stats_commande_fournisseur['qty'];
    -		    $result=$object->load_stats_commande_fournisseur(0,'0,1,2', 1);
    -		    if ($result < 0) dol_print_error($db,$object->error);
    -		    $helpondiff.=' ('.$langs->trans("ProductQtyInDraftOrWaitingApproved").': '.$object->stats_commande_fournisseur['qty'].')';
    -		}
    -
    -		// Number of product from supplier order already received (partial receipt)
    -		if (! empty($conf->fournisseur->enabled))
    -		{
    -		    if ($found) $helpondiff.='<br>'; else $found=1;
    -		    $helpondiff.=$langs->trans("ProductQtyInSuppliersShipmentAlreadyRecevied").': '.$object->stats_reception['qty'];
    -		}
    -
    -        // Calculating a theorical value
    -        print '<tr><td>';
    -        print $form->textwithpicto($langs->trans("VirtualStock"), $langs->trans("VirtualStockDesc"));
    -        print '</td>';
    -        print "<td>";
    -        //print (empty($stocktheo)?0:$stocktheo);
    -        print $form->textwithpicto((empty($stocktheo)?0:$stocktheo), $helpondiff);
    -        if ($object->seuil_stock_alerte != '' && ($object->stock_theorique < $object->seuil_stock_alerte)) print ' '.img_warning($langs->trans("StockLowerThanLimit", $object->seuil_stock_alerte));
    -        print '</td>';
    -        print '</tr>';
    -
    -		// Last movement
    -		$sql = "SELECT max(m.datem) as datem";
    -		$sql.= " FROM ".MAIN_DB_PREFIX."stock_mouvement as m";
    -		$sql.= " WHERE m.fk_product = '".$object->id."'";
    -		$resqlbis = $db->query($sql);
    -		if ($resqlbis)
    -		{
    -			$obj = $db->fetch_object($resqlbis);
    -			$lastmovementdate=$db->jdate($obj->datem);
    -		}
    -		else
    -		{
    -			dol_print_error($db);
    -		}
    -		print '<tr><td class="tdtop">'.$langs->trans("LastMovement").'</td><td>';
    -		if ($lastmovementdate)
    -		{
    -		    print dol_print_date($lastmovementdate,'dayhour').' ';
    -		    print '(<a href="'.DOL_URL_ROOT.'/product/stock/mouvement.php?idproduct='.$object->id.'">'.$langs->trans("FullList").'</a>)';
    -		}
    -		else
    -		{
    -		     print '<a href="'.DOL_URL_ROOT.'/product/stock/mouvement.php?idproduct='.$object->id.'">'.$langs->trans("None").'</a>';
    -		}
    -		print "</td></tr>";
    -
     		print "</table>";
     
             print '</div>';
    @@ -762,230 +761,326 @@ if (empty($reshook))
     	{
     	    print "<div class=\"tabsAction\">\n";
     
    -	    if ($user->rights->stock->mouvement->creer)
    -	    {
    -	        print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=correction">'.$langs->trans("CorrectStock").'</a>';
    -	    }
    -
    -	    //if (($user->rights->stock->mouvement->creer) && ! $object->hasbatch())
    -	    if ($user->rights->stock->mouvement->creer)
    +		if ($user->rights->stock->mouvement->creer)
     		{
    -			print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=transfert">'.$langs->trans("TransferStock").'</a>';
    +			if (! $variants) {
    +				print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=correction">' . $langs->trans("CorrectStock") . '</a>';
    +			}
    +			else
    +			{
    +				print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("ActionAvailableOnVariantProductOnly").'">' . $langs->trans("CorrectStock") . '</a>';
    +			}
    +		}
    +		else
    +		{
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">' . $langs->trans("CorrectStock") . '</a>';
    +		}
    +
    +		//if (($user->rights->stock->mouvement->creer) && ! $object->hasbatch())
    +		if ($user->rights->stock->mouvement->creer)
    +		{
    +			if (! $variants) {
    +				print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=transfert">' . $langs->trans("TransferStock") . '</a>';
    +			}
    +			else
    +			{
    +				print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("ActionAvailableOnVariantProductOnly").'">' . $langs->trans("TransferStock") . '</a>';
    +			}
    +		}
    +		else
    +		{
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">' . $langs->trans("CorrectStock") . '</a>';
     		}
     
     		print '</div>';
     	}
    -
     }
     
     
    -/*
    - * Stock detail (by warehouse). May go down into batch details.
    - */
    +if (! $variants) {
    +	/*
    +	 * Stock detail (by warehouse). May go down into batch details.
    +	 */
     
    -print '<div class="div-table-responsive">';
    -print '<table class="noborder" width="100%">';
    -print '<tr class="liste_titre">';
    -print '<td colspan="4">'.$langs->trans("Warehouse").'</td>';
    -print '<td align="right">'.$langs->trans("NumberOfUnit").'</td>';
    -print '<td align="right">'.$langs->trans("AverageUnitPricePMPShort").'</td>';
    -print '<td align="right">'.$langs->trans("EstimatedStockValueShort").'</td>';
    -print '<td align="right">'.$langs->trans("SellPriceMin").'</td>';
    -print '<td align="right">'.$langs->trans("EstimatedStockValueSellShort").'</td>';
    -print '</tr>';
    -if ((! empty($conf->productbatch->enabled)) && $object->hasbatch())
    -{
    -	print '<tr class="liste_titre"><td width="10%"></td>';
    -	print '<td align="right" width="10%">'.$langs->trans("batch_number").'</td>';
    -	print '<td align="center" width="10%">'.$langs->trans("EatByDate").'</td>';
    -	print '<td align="center" width="10%">'.$langs->trans("SellByDate").'</td>';
    -	print '<td></td>';
    -	print '<td></td>';
    -	print '<td></td>';
    -	print '<td></td>';
    -	print '<td></td>';
    -	print '</tr>';
    -}
    +	print '<div class="div-table-responsive">';
     
    -$sql = "SELECT e.rowid, e.ref as label, e.lieu, ps.reel, ps.rowid as product_stock_id, p.pmp";
    -$sql.= " FROM ".MAIN_DB_PREFIX."entrepot as e,";
    -$sql.= " ".MAIN_DB_PREFIX."product_stock as ps";
    -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = ps.fk_product";
    -$sql.= " WHERE ps.reel != 0";
    -$sql.= " AND ps.fk_entrepot = e.rowid";
    -$sql.= " AND e.entity IN (".getEntity('stock').")";
    -$sql.= " AND ps.fk_product = ".$object->id;
    -$sql.= " ORDER BY e.ref";
    -
    -$entrepotstatic=new Entrepot($db);
    -$product_lot_static=new Productlot($db);
    -
    -$total=0;
    -$totalvalue=$totalvaluesell=0;
    -
    -$resql=$db->query($sql);
    -if ($resql)
    -{
    -	$num = $db->num_rows($resql);
    -	$total=$totalwithpmp;
    -	$i=0; $var=false;
    -	while ($i < $num)
    -	{
    -		$obj = $db->fetch_object($resql);
    -		$entrepotstatic->id=$obj->rowid;
    -		$entrepotstatic->libelle=$obj->label;
    -		$entrepotstatic->lieu=$obj->lieu;
    -		$stock_real = price2num($obj->reel, 'MS');
    -		print '<tr class="oddeven">';
    -		print '<td colspan="4">'.$entrepotstatic->getNomUrl(1).'</td>';
    -		print '<td align="right">'.$stock_real.($stock_real < 0 ?' '.img_warning():'').'</td>';
    -		// PMP
    -		print '<td align="right">'.(price2num($object->pmp)?price2num($object->pmp,'MU'):'').'</td>';
    -		// Value purchase
    -		print '<td align="right">'.(price2num($object->pmp)?price(price2num($object->pmp*$obj->reel,'MT')):'').'</td>';
    -        // Sell price
    -		print '<td align="right">';
    -        if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($object->price,'MU'),1);
    -        else print $langs->trans("Variable");
    -        print '</td>';
    -        // Value sell
    -        print '<td align="right">';
    -        if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($object->price*$obj->reel,'MT'),1).'</td>';
    -        else print $langs->trans("Variable");
    -		print '</tr>'; ;
    -		$total += $obj->reel;
    -		if (price2num($object->pmp)) $totalwithpmp += $obj->reel;
    -		$totalvalue = $totalvalue + ($object->pmp*$obj->reel);
    -        $totalvaluesell = $totalvaluesell + ($object->price*$obj->reel);
    -		// Batch Detail
    -		if ((! empty($conf->productbatch->enabled)) && $object->hasbatch())
    -		{
    -			$details=Productbatch::findAll($db, $obj->product_stock_id, 0, $object->id);
    -			if ($details<0) dol_print_error($db);
    -			foreach ($details as $pdluo)
    -			{
    -				$product_lot_static->id = $pdluo->lotid;
    -				$product_lot_static->batch = $pdluo->batch;
    -				$product_lot_static->eatby = $pdluo->eatby;
    -				$product_lot_static->sellby = $pdluo->sellby;
    -
    -			    if ($action == 'editline' && GETPOST('lineid','int') == $pdluo->id)
    -			    { //Current line edit
    -			        print "\n".'<tr>';
    -			        print '<td colspan="9">';
    -			        print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
    -			        print '<input type="hidden" name="pdluoid" value="'.$pdluo->id.'"><input type="hidden" name="action" value="updateline"><input type="hidden" name="id" value="'.$id.'"><table class="noborder" width="100%"><tr><td width="10%"></td>';
    -			        print '<td align="right" width="10%"><input type="text" name="batch_number" value="'.$pdluo->batch.'"></td>';
    -			        print '<td align="center" width="10%">';
    -			        $form->select_date($pdluo->eatby,'eatby','','',1,'',1,0,1);
    -			        print '</td>';
    -			        print '<td align="center" width="10%">';
    -			        $form->select_date($pdluo->sellby,'sellby','','',1,'',1,0,1);
    -			        print '</td>';
    -			        print '<td align="right" width="10%">'.$pdluo->qty.($pdluo->qty<0?' '.img_warning():'').'</td>';
    -			        print '<td colspan="4"><input type="submit" class="button" id="savelinebutton" name="save" value="'.$langs->trans("Save").'">';
    -		            print '<input type="submit" class="button" id="cancellinebutton" name="Cancel" value="'.$langs->trans("Cancel").'"></td></tr>';
    -			        print '</table>';
    -			        print '</form>';
    -			        print '</td></tr>';
    -			    }
    -			    else
    -				{
    -                    print "\n".'<tr><td align="right">';
    -                    print img_picto($langs->trans("Tranfer"),'uparrow','class="hideonsmartphone"').' ';
    -					print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;id_entrepot='.$entrepotstatic->id.'&amp;action=transfert&amp;pdluoid='.$pdluo->id.'">'.$langs->trans("TransferStock").'</a>';
    -					// Disabled, because edition of stock content must use the "Correct stock menu".
    -					// Do not use this, or data will be wrong (bad tracking of movement label, inventory code, ...
    -                    //print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$id.'&amp;action=editline&amp;lineid='.$pdluo->id.'#'.$pdluo->id.'">';
    -                    //print img_edit().'</a></td>';
    -                    print '<td align="right">';
    -                    print $product_lot_static->getNomUrl(1);
    -                    print '</td>';
    -                    print '<td align="center">'. dol_print_date($pdluo->eatby,'day') .'</td>';
    -                    print '<td align="center">'. dol_print_date($pdluo->sellby,'day') .'</td>';
    -                    print '<td align="right">'.$pdluo->qty.($pdluo->qty<0?' '.img_warning():'').'</td>';
    -                    print '<td colspan="4"></td></tr>';
    -			    }
    -			}
    -		}
    -		$i++;
    -	}
    -}
    -else dol_print_error($db);
    -
    -print '<tr class="liste_total"><td align="right" class="liste_total" colspan="4">'.$langs->trans("Total").':</td>';
    -print '<td class="liste_total" align="right">'.price2num($total, 'MS').'</td>';
    -print '<td class="liste_total" align="right">';
    -print ($totalwithpmp?price(price2num($totalvalue/$totalwithpmp,'MU')):'&nbsp;');	// This value may have rounding errors
    -print '</td>';
    -// Value purchase
    -print '<td class="liste_total" align="right">';
    -print $totalvalue?price(price2num($totalvalue,'MT'),1):'&nbsp;';
    -print '</td>';
    -print '<td class="liste_total" align="right">';
    -if (empty($conf->global->PRODUIT_MULTIPRICES)) print ($total?price($totalvaluesell/$total,1):'&nbsp;');
    -else print $langs->trans("Variable");
    -print '</td>';
    -// Value to sell
    -print '<td class="liste_total" align="right">';
    -if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($totalvaluesell,'MT'),1);
    -else print $langs->trans("Variable");
    -print '</td>';
    -print "</tr>";
    -print "</table>";
    -print '</div>';
    -
    -if (!empty($conf->global->STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE))
    -{
    -	print '<br><br>';
    -	print_titre($langs->trans('AddNewProductStockWarehouse'));
    -
    -	if (!empty($user->rights->produit->creer)){
    -		print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
    -		print '<input type="hidden" name="action" value="addlimitstockwarehouse">';
    -		print '<input type="hidden" name="id" value="'.$id.'">';
    -	}
     	print '<table class="noborder" width="100%">';
    -	if (!empty($user->rights->produit->creer)){
    -		print '<tr class="liste_titre"><td width="40%">'.$formproduct->selectWarehouses('', 'fk_entrepot').'</td>';
    -		print '<td align="right"><input name="seuil_stock_alerte" type="text" placeholder="'.$langs->trans("StockLimit").'" /></td>';
    -		print '<td align="right"><input name="desiredstock" type="text" placeholder="'.$langs->trans("DesiredStock").'" /></td>';
    -		print '<td align="right"><input type="submit" value="'.$langs->trans('Save').'" class="button" /></td>';
    -		print '</tr>';
    -	}else{
    -		print '<tr class="liste_titre"><td width="40%">'.$langs->trans("Warehouse").'</td>';
    -		print '<td align="right">'.$langs->trans("StockLimit").'</td>';
    -		print '<td align="right">'.$langs->trans("DesiredStock").'</td>';
    +	print '<tr class="liste_titre">';
    +	print '<td colspan="4">' . $langs->trans("Warehouse") . '</td>';
    +	print '<td align="right">' . $langs->trans("NumberOfUnit") . '</td>';
    +	print '<td align="right">' . $langs->trans("AverageUnitPricePMPShort") . '</td>';
    +	print '<td align="right">' . $langs->trans("EstimatedStockValueShort") . '</td>';
    +	print '<td align="right">' . $langs->trans("SellPriceMin") . '</td>';
    +	print '<td align="right">' . $langs->trans("EstimatedStockValueSellShort") . '</td>';
    +	print '</tr>';
    +	if ((!empty($conf->productbatch->enabled)) && $object->hasbatch()) {
    +		print '<tr class="liste_titre"><td width="10%"></td>';
    +		print '<td align="right" width="10%">' . $langs->trans("batch_number") . '</td>';
    +		print '<td align="center" width="10%">' . $langs->trans("EatByDate") . '</td>';
    +		print '<td align="center" width="10%">' . $langs->trans("SellByDate") . '</td>';
    +		print '<td></td>';
    +		print '<td></td>';
    +		print '<td></td>';
    +		print '<td></td>';
    +		print '<td></td>';
     		print '</tr>';
     	}
     
    -	$pse = new ProductStockEntrepot($db);
    -	$lines = $pse->fetchAll($id);
    +	$sql = "SELECT e.rowid, e.ref as label, e.lieu, ps.reel, ps.rowid as product_stock_id, p.pmp";
    +	$sql .= " FROM " . MAIN_DB_PREFIX . "entrepot as e,";
    +	$sql .= " " . MAIN_DB_PREFIX . "product_stock as ps";
    +	$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = ps.fk_product";
    +	$sql .= " WHERE ps.reel != 0";
    +	$sql .= " AND ps.fk_entrepot = e.rowid";
    +	$sql .= " AND e.entity IN (" . getEntity('stock') . ")";
    +	$sql .= " AND ps.fk_product = " . $object->id;
    +	$sql .= " ORDER BY e.ref";
     
    -	if (!empty($lines))
    -	{
    -		$var=false;
    -		foreach($lines as $line)
    -		{
    -			$ent = new Entrepot($db);
    -			$ent->fetch($line['fk_entrepot']);
    -			print '<tr class="oddeven"><td width="40%">'.$ent->getNomUrl(3).'</td>';
    -			print '<td align="right">'.$line['seuil_stock_alerte'].'</td>';
    -			print '<td align="right">'.$line['desiredstock'].'</td>';
    -			if (!empty($user->rights->produit->creer)){
    -			    print '<td align="right"><a href="?id='.$id.'&fk_productstockwarehouse='.$line['id'].'&action=delete_productstockwarehouse">'.img_delete().'</a></td>';
    +	$entrepotstatic = new Entrepot($db);
    +	$product_lot_static = new Productlot($db);
    +
    +	$total = 0;
    +	$totalvalue = $totalvaluesell = 0;
    +
    +	$resql = $db->query($sql);
    +	if ($resql) {
    +		$num = $db->num_rows($resql);
    +		$total = $totalwithpmp;
    +		$i = 0;
    +		$var = false;
    +		while ($i < $num) {
    +			$obj = $db->fetch_object($resql);
    +			$entrepotstatic->id = $obj->rowid;
    +			$entrepotstatic->libelle = $obj->label;
    +			$entrepotstatic->lieu = $obj->lieu;
    +			$stock_real = price2num($obj->reel, 'MS');
    +			print '<tr class="oddeven">';
    +			print '<td colspan="4">' . $entrepotstatic->getNomUrl(1) . '</td>';
    +			print '<td align="right">' . $stock_real . ($stock_real < 0 ? ' ' . img_warning() : '') . '</td>';
    +			// PMP
    +			print '<td align="right">' . (price2num($object->pmp) ? price2num($object->pmp, 'MU') : '') . '</td>';
    +			// Value purchase
    +			print '<td align="right">' . (price2num($object->pmp) ? price(price2num($object->pmp * $obj->reel, 'MT')) : '') . '</td>';
    +			// Sell price
    +			print '<td align="right">';
    +			if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($object->price, 'MU'), 1);
    +			else print $langs->trans("Variable");
    +			print '</td>';
    +			// Value sell
    +			print '<td align="right">';
    +			if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($object->price * $obj->reel, 'MT'), 1) . '</td>';
    +			else print $langs->trans("Variable");
    +			print '</tr>';
    +			$total += $obj->reel;
    +			if (price2num($object->pmp)) $totalwithpmp += $obj->reel;
    +			$totalvalue = $totalvalue + ($object->pmp * $obj->reel);
    +			$totalvaluesell = $totalvaluesell + ($object->price * $obj->reel);
    +			// Batch Detail
    +			if ((!empty($conf->productbatch->enabled)) && $object->hasbatch()) {
    +				$details = Productbatch::findAll($db, $obj->product_stock_id, 0, $object->id);
    +				if ($details < 0) dol_print_error($db);
    +				foreach ($details as $pdluo) {
    +					$product_lot_static->id = $pdluo->lotid;
    +					$product_lot_static->batch = $pdluo->batch;
    +					$product_lot_static->eatby = $pdluo->eatby;
    +					$product_lot_static->sellby = $pdluo->sellby;
    +
    +					if ($action == 'editline' && GETPOST('lineid', 'int') == $pdluo->id) { //Current line edit
    +						print "\n" . '<tr>';
    +						print '<td colspan="9">';
    +						print '<form action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
    +						print '<input type="hidden" name="pdluoid" value="' . $pdluo->id . '"><input type="hidden" name="action" value="updateline"><input type="hidden" name="id" value="' . $id . '"><table class="noborder" width="100%"><tr><td width="10%"></td>';
    +						print '<td align="right" width="10%"><input type="text" name="batch_number" value="' . $pdluo->batch . '"></td>';
    +						print '<td align="center" width="10%">';
    +						print $form->selectDate($pdluo->eatby, 'eatby', '', '', 1, '', 1, 0);
    +						print '</td>';
    +						print '<td align="center" width="10%">';
    +						print $form->selectDate($pdluo->sellby, 'sellby', '', '', 1, '', 1, 0);
    +						print '</td>';
    +						print '<td align="right" width="10%">' . $pdluo->qty . ($pdluo->qty < 0 ? ' ' . img_warning() : '') . '</td>';
    +						print '<td colspan="4"><input type="submit" class="button" id="savelinebutton" name="save" value="' . $langs->trans("Save") . '">';
    +						print '<input type="submit" class="button" id="cancellinebutton" name="Cancel" value="' . $langs->trans("Cancel") . '"></td></tr>';
    +						print '</table>';
    +						print '</form>';
    +						print '</td></tr>';
    +					} else {
    +						print "\n" . '<tr><td align="right">';
    +						print img_picto($langs->trans("Tranfer"), 'uparrow', 'class="hideonsmartphone"') . ' ';
    +						print '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;id_entrepot=' . $entrepotstatic->id . '&amp;action=transfert&amp;pdluoid=' . $pdluo->id . '">' . $langs->trans("TransferStock") . '</a>';
    +						// Disabled, because edition of stock content must use the "Correct stock menu".
    +						// Do not use this, or data will be wrong (bad tracking of movement label, inventory code, ...
    +						//print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$id.'&amp;action=editline&amp;lineid='.$pdluo->id.'#'.$pdluo->id.'">';
    +						//print img_edit().'</a></td>';
    +						print '<td align="right">';
    +						print $product_lot_static->getNomUrl(1);
    +						print '</td>';
    +						print '<td align="center">' . dol_print_date($pdluo->eatby, 'day') . '</td>';
    +						print '<td align="center">' . dol_print_date($pdluo->sellby, 'day') . '</td>';
    +						print '<td align="right">' . $pdluo->qty . ($pdluo->qty < 0 ? ' ' . img_warning() : '') . '</td>';
    +						print '<td colspan="4"></td></tr>';
    +					}
    +				}
     			}
    +			$i++;
    +		}
    +	} else dol_print_error($db);
    +
    +	print '<tr class="liste_total"><td align="right" class="liste_total" colspan="4">' . $langs->trans("Total") . ':</td>';
    +	print '<td class="liste_total" align="right">' . price2num($total, 'MS') . '</td>';
    +	print '<td class="liste_total" align="right">';
    +	print ($totalwithpmp ? price(price2num($totalvalue / $totalwithpmp, 'MU')) : '&nbsp;');    // This value may have rounding errors
    +	print '</td>';
    +// Value purchase
    +	print '<td class="liste_total" align="right">';
    +	print $totalvalue ? price(price2num($totalvalue, 'MT'), 1) : '&nbsp;';
    +	print '</td>';
    +	print '<td class="liste_total" align="right">';
    +	if (empty($conf->global->PRODUIT_MULTIPRICES)) print ($total ? price($totalvaluesell / $total, 1) : '&nbsp;');
    +	else print $langs->trans("Variable");
    +	print '</td>';
    +// Value to sell
    +	print '<td class="liste_total" align="right">';
    +	if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($totalvaluesell, 'MT'), 1);
    +	else print $langs->trans("Variable");
    +	print '</td>';
    +	print "</tr>";
    +	print "</table>";
    +	print '</div>';
    +
    +	if (!empty($conf->global->STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE)) {
    +		print '<br><br>';
    +		print load_fiche_titre($langs->trans('AddNewProductStockWarehouse'));
    +
    +		if (!empty($user->rights->produit->creer)) {
    +			print '<form action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
    +			print '<input type="hidden" name="action" value="addlimitstockwarehouse">';
    +			print '<input type="hidden" name="id" value="' . $id . '">';
    +		}
    +		print '<table class="noborder" width="100%">';
    +		if (!empty($user->rights->produit->creer)) {
    +			print '<tr class="liste_titre"><td width="40%">' . $formproduct->selectWarehouses('', 'fk_entrepot') . '</td>';
    +			print '<td align="right"><input name="seuil_stock_alerte" type="text" placeholder="' . $langs->trans("StockLimit") . '" /></td>';
    +			print '<td align="right"><input name="desiredstock" type="text" placeholder="' . $langs->trans("DesiredStock") . '" /></td>';
    +			print '<td align="right"><input type="submit" value="' . $langs->trans('Save') . '" class="button" /></td>';
    +			print '</tr>';
    +		} else {
    +			print '<tr class="liste_titre"><td width="40%">' . $langs->trans("Warehouse") . '</td>';
    +			print '<td align="right">' . $langs->trans("StockLimit") . '</td>';
    +			print '<td align="right">' . $langs->trans("DesiredStock") . '</td>';
     			print '</tr>';
     		}
    -	}
     
    -	print "</table>";
    +		$pse = new ProductStockEntrepot($db);
    +		$lines = $pse->fetchAll($id);
     
    -	if (!empty($user->rights->produit->creer)){
    -	    print '</form>';
    +		if (!empty($lines)) {
    +			$var = false;
    +			foreach ($lines as $line) {
    +				$ent = new Entrepot($db);
    +				$ent->fetch($line['fk_entrepot']);
    +				print '<tr class="oddeven"><td width="40%">' . $ent->getNomUrl(3) . '</td>';
    +				print '<td align="right">' . $line['seuil_stock_alerte'] . '</td>';
    +				print '<td align="right">' . $line['desiredstock'] . '</td>';
    +				if (!empty($user->rights->produit->creer)) {
    +					print '<td align="right"><a href="?id=' . $id . '&fk_productstockwarehouse=' . $line['id'] . '&action=delete_productstockwarehouse">' . img_delete() . '</a></td>';
    +				}
    +				print '</tr>';
    +			}
    +		}
    +
    +		print "</table>";
    +
    +		if (!empty($user->rights->produit->creer)) {
    +			print '</form>';
    +		}
     	}
    +} else {
    +	// List of variants
    +
    +	$prodstatic = new Product($db);
    +	$prodcomb = new ProductCombination($db);
    +	$comb2val = new ProductCombination2ValuePair($db);
    +	$productCombinations = $prodcomb->fetchAllByFkProductParent($object->id);
    +
    +	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    +	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +	print '<input type="hidden" name="action" value="massaction">';
    +	print '<input type="hidden" name="id" value="'.$id.'">';
    +	print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
    +
    +	// load variants
    +	$title = $langs->trans("ProductCombinations");
    +
    +	print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0);
    +
    +	print '<div class="div-table-responsive">';
    +	?>
    +	<table class="liste">
    +		<tr class="liste_titre">
    +			<td class="liste_titre"><?php echo $langs->trans('Product') ?></td>
    +			<td class="liste_titre"><?php echo $langs->trans('Combination') ?></td>
    +			<td class="liste_titre center"><?php echo $langs->trans('OnSell') ?></td>
    +			<td class="liste_titre center"><?php echo $langs->trans('OnBuy') ?></td>
    +			<td class="liste_titre right"><?php echo $langs->trans('Stock') ?></td>
    +			<td class="liste_titre"></td>
    +		</tr>
    +		<?php
    +
    +		if (count($productCombinations))
    +		{
    +			$stock_total= 0;
    +			foreach ($productCombinations as $currcomb)
    +			{
    +				$prodstatic->fetch($currcomb->fk_product_child);
    +				$prodstatic->load_stock();
    +				$stock_total+=$prodstatic->stock_reel;
    +				?>
    +				<tr class="oddeven">
    +					<td><?php echo $prodstatic->getNomUrl(1) ?></td>
    +					<td>
    +						<?php
    +
    +						$productCombination2ValuePairs = $comb2val->fetchByFkCombination($currcomb->id);
    +						$iMax = count($productCombination2ValuePairs);
    +
    +						for ($i = 0; $i < $iMax; $i++) {
    +							echo dol_htmlentities($productCombination2ValuePairs[$i]);
    +
    +							if ($i !== ($iMax - 1)) {
    +								echo ', ';
    +							}
    +						} ?>
    +					</td>
    +					<td style="text-align: center;"><?php echo $prodstatic->getLibStatut(2, 0) ?></td>
    +					<td style="text-align: center;"><?php echo $prodstatic->getLibStatut(2, 1) ?></td>
    +					<td class="right"><?php echo $prodstatic->stock_reel ?></td>
    +					<td class="right">
    +						<a class="paddingleft paddingright" href="<?php echo dol_buildpath('/product/stock/product.php?id='.$currcomb->fk_product_child, 2) ?>"><?php echo img_edit() ?></a>
    +					</td>
    +					<?php
    +					?>
    +				</tr>
    +				<?php
    +			}
    +
    +			print '<tr class="liste_total">';
    +			print '<td colspan="4" align="left">'.$langs->trans("Total").'</td>';
    +			print '<td align="right">'.$stock_total.'</td>';
    +			print '</tr>';
    +		}
    +		else
    +		{
    +			print '<tr><td colspan="8"><span class="opacitymedium">'.$langs->trans("None").'</span></td></tr>';
    +		}
    +		?>
    +	</table>
    +
    +	<?php
    +	print '</div>';
    +
    +	print '</form>';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/stock/productlot_card.php b/htdocs/product/stock/productlot_card.php
    index 7c2f4f148ad..dff2aa8e0e0 100644
    --- a/htdocs/product/stock/productlot_card.php
    +++ b/htdocs/product/stock/productlot_card.php
    @@ -1,7 +1,6 @@
     <?php
    -/* Copyright (C) 2007-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2007-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2018      All-3kcis       		 <contact@all-3kcis.fr>
    - * Copyright (C) ---Put here your own copyright and developer email---
      *
      * 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
    @@ -256,7 +255,6 @@ if (empty($reshook))
         $upload_dir = $conf->productbatch->multidir_output[$conf->entity];
         $permissioncreate = $usercancreate;
         include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
    -
     }
     
     
    @@ -318,7 +316,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     	}
     
     
    -	$linkback = '<a href="' . DOL_URL_ROOT . '/product/stock/productlot_list.php' . '">' . $langs->trans("BackToList") . '</a>';
    +	$linkback = '<a href="' . DOL_URL_ROOT . '/product/stock/productlot_list.php?restore_lastsearch_values=1">' . $langs->trans("BackToList") . '</a>';
     
         $shownav = 1;
         if ($user->societe_id && ! in_array('batch', explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL))) $shownav=0;
    @@ -388,7 +386,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     
     	print '<a href="'.DOL_URL_ROOT.'/product/reassortlot.php?sref='.urlencode($producttmp->ref).'&search_batch='.urlencode($object->batch).'">'.$langs->trans("ShowCurrentStockOfLot").'</a><br>';
     	print '<br>';
    -	print '<a href="'.DOL_URL_ROOT.'/product/stock/mouvement.php?search_product_ref='.urlencode($producttmp->ref).'&search_batch='.urlencode($object->batch).'">'.$langs->trans("ShowLogOfMovementIfLot").'</a><br>';
    +	print '<a href="'.DOL_URL_ROOT.'/product/stock/movement_list.php?search_product_ref='.urlencode($producttmp->ref).'&search_batch='.urlencode($object->batch).'">'.$langs->trans("ShowLogOfMovementIfLot").'</a><br>';
     
     	print '<br>';
     }
    @@ -414,10 +412,8 @@ if (empty($action))
         $somethingshown=$formfile->numoffiles;
     
         print '</div>';
    -
     }
     
    -
     // End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/stock/productlot_document.php b/htdocs/product/stock/productlot_document.php
    index f79a0d74d98..c5c1e7c37f0 100644
    --- a/htdocs/product/stock/productlot_document.php
    +++ b/htdocs/product/stock/productlot_document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
      * Copyright (C) 2013      Florian Henry          <florian.henry@open-concept.pro>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    @@ -95,7 +95,6 @@ if (empty($reshook))
     
     	// Action submit/delete file/link
     	include_once DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
    -
     }
     
     $permtoedit = $user->rights->produit->creer;
    @@ -122,7 +121,7 @@ if ($object->id)
         print $hookmanager->resPrint;
     	if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     
     	$totalsize=0;
    @@ -132,7 +131,7 @@ if ($object->id)
     	}
     
     
    -    $linkback = '<a href="' . DOL_URL_ROOT . '/product/stock/productlot_list.php' . '">' . $langs->trans("BackToList") . '</a>';
    +    $linkback = '<a href="' . DOL_URL_ROOT . '/product/stock/productlot_list.php?restore_lastsearch_values=1">' . $langs->trans("BackToList") . '</a>';
     
         $shownav = 1;
         if ($user->societe_id && ! in_array('batch', explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL))) $shownav=0;
    @@ -156,8 +155,6 @@ if ($object->id)
         $permission = ( $user->rights->produit->creer );
         $param = '&id=' . $object->id;
         include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
    -
    -
     }
     else
     {
    diff --git a/htdocs/product/stock/productlot_list.php b/htdocs/product/stock/productlot_list.php
    index 479c5a0c15c..6de8be264a9 100644
    --- a/htdocs/product/stock/productlot_list.php
    +++ b/htdocs/product/stock/productlot_list.php
    @@ -79,7 +79,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('product_lot');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -398,14 +398,12 @@ if ($resql)
     	$productlot = new Productlot($db);
     
     	$i=0;
    -	$var=true;
     	$totalarray=array();
     	while ($i < min($num, $limit))
     	{
     		$obj = $db->fetch_object($resql);
     		if ($obj)
     		{
    -			$var = !$var;
     
     			$productlot->id = $obj->rowid;
     			$productlot->batch = $obj->batch;
    @@ -556,7 +554,6 @@ else
     	dol_print_error($db);
     }
     
    -
     // End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php
    index bb7f5f0539e..5d36da10429 100644
    --- a/htdocs/product/stock/replenish.php
    +++ b/htdocs/product/stock/replenish.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2013		Cédric Salvador		<csalvador@gpcsolutions.fr>
    - * Copyright (C) 2013-2016	Laurent Destaileur	<ely@users.sourceforge.net>
    - * Copyright (C) 2014		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2013-2018	Laurent Destaileur	<ely@users.sourceforge.net>
    + * Copyright (C) 2014		Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2016		Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2016		ATM Consulting		<support@atm-consulting.fr>
      *
    @@ -42,6 +42,9 @@ if ($user->societe_id) {
     }
     $result=restrictedArea($user,'produit|service');
     
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$hookmanager->initHooks(array('stockreplenishlist'));
    +
     //checks if a product has been ordered
     
     $action = GETPOST('action','alpha');
    @@ -79,13 +82,18 @@ if (!$sortorder) {
     $virtualdiffersfromphysical=0;
     if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT)
     || ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER)
    -|| ! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE))
    +|| ! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)
    +|| !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION)
    +|| !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE))
     {
         $virtualdiffersfromphysical=1;		// According to increase/decrease stock options, virtual and physical stock may differs.
     }
     $usevirtualstock=0;
     if ($mode == 'virtual') $usevirtualstock=1;
     
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
     
     /*
      * Actions
    @@ -678,6 +686,11 @@ while ($i < ($limit ? min($num, $limit) : $num))
     	}
     	$i++;
     }
    +
    +$parameters=array('sql'=>$sql);
    +$reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +
     print '</table>';
     print '</div>';
     
    diff --git a/htdocs/product/stock/replenishorders.php b/htdocs/product/stock/replenishorders.php
    index 942ca82bc04..c0e2973b4f8 100644
    --- a/htdocs/product/stock/replenishorders.php
    +++ b/htdocs/product/stock/replenishorders.php
    @@ -1,7 +1,8 @@
     <?php
     /*
    - * Copyright (C) 2013	Cédric Salvador	<csalvador@gpcsolutions.fr>
    - * Copyright (C) 2014	Regis Houssin	<regis.houssin@capnetworks.com>
    + * Copyright (C) 2013       Cédric Salvador         <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2014       Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -56,7 +57,7 @@ $sortfield = GETPOST("sortfield");
     $sortorder = GETPOST("sortorder");
     if (!$sortorder) $sortorder = 'DESC';
     if (!$sortfield) $sortfield = 'cf.date_creation';
    -$page = GETPOST("page");
    +$page = GETPOST('page','int') ? GETPOST('page','int') : 0;
     if ($page < 0) $page = 0;
     $offset = $limit * $page;
     
    @@ -118,7 +119,7 @@ $sql.= ' WHERE cf.fk_soc = s.rowid ';
     $sql.= ' AND cf.entity = ' . $conf->entity;
     if ($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) {
         $sql .= ' AND cf.fk_statut < 3';
    -} elseif ($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) {
    +} elseif ($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER|| !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION) || !empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE)) {
         $sql .= ' AND cf.fk_statut < 6';	// We want also status 5, we will keep them visible if dispatching is not yet finished (tested with function dolDispatchToDo).
     } else {
         $sql .= ' AND cf.fk_statut < 5';
    @@ -195,76 +196,76 @@ if ($resql)
              '<input type="text" class="flat" name="search_ttc" value="' . dol_escape_htmltag($sttc) . '">'.
              '</td>'.
              '<td class="liste_titre">'.
    -         $form->select_date($search_date, 'search_date', 0, 0, 1, '', 1, 0, 1, 0, '').
    +         $form->selectDate($search_date, 'search_date', 0, 0, 1, '', 1, 0, 0, '').
              '</td>'.
              '<td class="liste_titre" align="right">';
    -         $searchpicto=$form->showFilterAndCheckAddButtons(0);
    -         print $searchpicto;
    -         '</td>'.
    -         '</tr>';
    +    $searchpicto = $form->showFilterAndCheckAddButtons(0);
    +    print $searchpicto;
    +    print '</td>';
    +    print '</tr>';
     
    -         print '<tr class="liste_titre">';
    -         print_liste_field_titre(
    -             'Ref',
    -             $_SERVER['PHP_SELF'],
    -             'cf.ref',
    -             '',
    -             $param,
    -             '',
    -             $sortfield,
    -             $sortorder
    -             );
    -         print_liste_field_titre(
    -             'Company',
    -             $_SERVER['PHP_SELF'],
    -             's.nom',
    -             '',
    -             $param,
    -             '',
    -             $sortfield,
    -             $sortorder
    -             );
    -         print_liste_field_titre(
    -             'Author',
    -             $_SERVER['PHP_SELF'],
    -             'u.login',
    -             '',
    -             '',
    -             '',
    -             $sortfield,
    -             $sortorder
    -             );
    -         print_liste_field_titre(
    -             'AmountTTC',
    -             $_SERVER['PHP_SELF'],
    -             'cf.total_ttc',
    -             '',
    -             $param,
    -             '',
    -             $sortfield,
    -             $sortorder
    -             );
    -         print_liste_field_titre(
    -             'OrderCreation',
    -             $_SERVER['PHP_SELF'],
    -             'cf.date_creation',
    -             '',
    -             $param,
    -             '',
    -             $sortfield,
    -             $sortorder
    -             );
    -         print_liste_field_titre(
    -             'Status',
    -             $_SERVER['PHP_SELF'],
    -             'cf.fk_statut',
    -             '',
    -             $param,
    -             'align="right"',
    -             $sortfield,
    -             $sortorder
    -             );
    -         print '</tr>';
    +    print '<tr class="liste_titre">';
    +    print_liste_field_titre(
    +        'Ref',
    +        $_SERVER['PHP_SELF'],
    +        'cf.ref',
    +        '',
    +        $param,
    +        '',
    +        $sortfield,
    +        $sortorder
    +    );
    +    print_liste_field_titre(
    +        'Company',
    +        $_SERVER['PHP_SELF'],
    +        's.nom',
    +        '',
    +        $param,
    +        '',
    +        $sortfield,
    +        $sortorder
    +    );
    +    print_liste_field_titre(
    +        'Author',
    +        $_SERVER['PHP_SELF'],
    +        'u.login',
    +        '',
    +        '',
    +        '',
    +        $sortfield,
    +        $sortorder
    +    );
    +    print_liste_field_titre(
    +        'AmountTTC',
    +        $_SERVER['PHP_SELF'],
    +        'cf.total_ttc',
    +        '',
    +        $param,
    +        '',
    +        $sortfield,
    +        $sortorder
    +    );
    +    print_liste_field_titre(
    +        'OrderCreation',
    +        $_SERVER['PHP_SELF'],
    +        'cf.date_creation',
    +        '',
    +        $param,
    +        '',
    +        $sortfield,
    +        $sortorder
    +    );
    +    print_liste_field_titre(
    +        'Status',
    +        $_SERVER['PHP_SELF'],
    +        'cf.fk_statut',
    +        '',
    +        $param,
    +        'align="right"',
    +        $sortfield,
    +        $sortorder
    +    );
    +    print '</tr>';
     
         $userstatic = new User($db);
     
    @@ -324,8 +325,8 @@ if ($resql)
             }
             $i++;
         }
    -    print '</table>'.
    -         '</form>';
    +    print '</table>';
    +    print '</form>';
     
         $db->free($resql);
     
    @@ -336,6 +337,6 @@ else
     	dol_print_error($db);
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/stock/tpl/stockcorrection.tpl.php b/htdocs/product/stock/tpl/stockcorrection.tpl.php
    index 3d2e1c99e9b..ce947c2003b 100644
    --- a/htdocs/product/stock/tpl/stockcorrection.tpl.php
    +++ b/htdocs/product/stock/tpl/stockcorrection.tpl.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2010-2017 Laurent Destailleur <eldy@users.sourceforge.net>
    +/* Copyright (C) 2010-2017  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -19,8 +20,7 @@
      */
     
     // Protection to avoid direct call of template
    -if (empty($conf) || ! is_object($conf))
    -{
    +if (empty($conf) || ! is_object($conf)) {
     	print "Error, template page can't be called as URL";
     	exit;
     }
    @@ -119,11 +119,11 @@ if (empty($conf) || ! is_object($conf))
     			print '<tr>';
     			print '<td>'.$langs->trans("EatByDate").'</td><td>';
     			$eatbyselected=dol_mktime(0, 0, 0, GETPOST('eatbymonth'), GETPOST('eatbyday'), GETPOST('eatbyyear'));
    -			$form->select_date($eatbyselected,'eatby','','',1,"");
    +			print $form->selectDate($eatbyselected,'eatby','','',1,"");
     			print '</td>';
     			print '<td>'.$langs->trans("SellByDate").'</td><td>';
     			$sellbyselected=dol_mktime(0, 0, 0, GETPOST('sellbymonth'), GETPOST('sellbyday'), GETPOST('sellbyyear'));
    -			$form->select_date($sellbyselected,'sellby','','',1,"");
    +			print $form->selectDate($sellbyselected,'sellby','','',1,"");
     			print '</td>';
     			print '</tr>';
     		}
    diff --git a/htdocs/product/stock/tpl/stocktransfer.tpl.php b/htdocs/product/stock/tpl/stocktransfer.tpl.php
    index 136f0f0702a..370010b07eb 100644
    --- a/htdocs/product/stock/tpl/stocktransfer.tpl.php
    +++ b/htdocs/product/stock/tpl/stocktransfer.tpl.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2010-2017 Laurent Destailleur <eldy@users.sourceforge.net>
    +/* Copyright (C) 2010-2017  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -114,10 +115,10 @@ if (empty($conf) || ! is_object($conf))
     
     			print '<tr>';
     			print '<td>'.$langs->trans("EatByDate").'</td><td>';
    -			print $form->select_date(($d_eatby?$d_eatby:$pdluo->eatby),'eatby','','',1,"", 1, 0, 1, ($pdluoid > 0 ? 1 : 0));		// If form was opened for a specific pdluoid, field is disabled
    +			print $form->selectDate(($d_eatby?$d_eatby:$pdluo->eatby),'eatby','','',1,"", 1, 0, ($pdluoid > 0 ? 1 : 0));		// If form was opened for a specific pdluoid, field is disabled
     			print '</td>';
     			print '<td>'.$langs->trans("SellByDate").'</td><td>';
    -			print $form->select_date(($d_sellby?$d_sellby:$pdluo->sellby),'sellby','','',1,"", 1, 0, 1, ($pdluoid > 0 ? 1 : 0));		// If form was opened for a specific pdluoid, field is disabled
    +			print $form->selectDate(($d_sellby?$d_sellby:$pdluo->sellby),'sellby','','',1,"", 1, 0, ($pdluoid > 0 ? 1 : 0));		// If form was opened for a specific pdluoid, field is disabled
     			print '</td>';
     			print '</tr>';
     		}
    diff --git a/htdocs/product/stock/valo.php b/htdocs/product/stock/valo.php
    index be8ee2d500e..45f96510e38 100644
    --- a/htdocs/product/stock/valo.php
    +++ b/htdocs/product/stock/valo.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -128,7 +128,6 @@ if ($result)
             print '<td align="right">'.price(price2num($totalsell,'MT'),1,$langs,0,0,-1,$conf->currency).'</td>';
             print '<td align="right">&nbsp;</td>';
             print "</tr>\n";
    -
         }
     
         $db->free($result);
    @@ -150,14 +149,12 @@ if ($result)
             $url=DOL_URL_ROOT.'/viewimage.php?modulepart=graph_stock&amp;file='.$file;
             print '<br><img src="'.$url.'">';
         }
    -
     }
     else
     {
         dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/product/traduction.php b/htdocs/product/traduction.php
    index c96e1c0f025..855675be956 100644
    --- a/htdocs/product/traduction.php
    +++ b/htdocs/product/traduction.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2005-2018 Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2005-2018 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2010-2012 Destailleur Laurent <eldy@users.sourceforge.net>
      * Copyright (C) 2014 	   Henry Florian <florian.henry@open-concept.pro>
    @@ -276,7 +276,6 @@ if ($action == 'edit')
     	print '</div>';
     
     	print '</form>';
    -
     }
     else if ($action != 'add')
     {
    @@ -354,5 +353,6 @@ if ($action == 'add' && ($user->rights->produit->creer || $user->rights->service
     	print '<br>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/projet/activity/index.php b/htdocs/projet/activity/index.php
    index 92719093650..f5897650740 100644
    --- a/htdocs/projet/activity/index.php
    +++ b/htdocs/projet/activity/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2006-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2010      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010      Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -23,7 +23,7 @@
      *	\brief      Page activite perso du module projet
      */
     
    -require ("../../main.inc.php");
    +require "../../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
    @@ -325,7 +325,6 @@ if (! empty($conf->global->PROJECT_TASK_TIME_MONTH))
         		print '</td>';
         		print '<td align="right">'.convertSecondToTime($row->nb, 'allhourmin').'</td>';
         		print "</tr>\n";
    -
         	}
         	$db->free($resql);
         }
    @@ -376,7 +375,6 @@ if (! empty($conf->global->PROJECT_TASK_TIME_YEAR))
     			print '</td>';
     			print '<td align="right">'.convertSecondToTime($row->nb, 'allhourmin').'</td>';
     			print "</tr>\n";
    -
     		}
     		$db->free($resql);
     	}
    @@ -570,13 +568,11 @@ if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_S
     	{
     		dol_print_error($db);
     	}
    -
     }
     
     
     print '</div></div></div>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/activity/perday.php b/htdocs/projet/activity/perday.php
    index 26b7179b74c..5665a2fb505 100644
    --- a/htdocs/projet/activity/perday.php
    +++ b/htdocs/projet/activity/perday.php
    @@ -1,8 +1,9 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010      François Legastelois <flegastelois@teclib.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -24,7 +25,7 @@
      *	\brief      List activities of tasks (per day entry)
      */
     
    -require ("../../main.inc.php");
    +require "../../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
    @@ -369,7 +370,7 @@ $nav.=dol_print_date(dol_mktime(0,0,0,$month,$day,$year),"%A").' ';
     $nav.=" <span id=\"month_name\">".dol_print_date(dol_mktime(0,0,0,$month,$day,$year),"day")." </span>\n";
     $nav.='<a class="inline-block valignmiddle" href="?year='.$next_year."&amp;month=".$next_month."&amp;day=".$next_day.$param.'">'.img_next($langs->trans("Next"))."</a>\n";
     $nav.=" &nbsp; (<a href=\"?year=".$nowyear."&amp;month=".$nowmonth."&amp;day=".$nowday.$param."\">".$langs->trans("Today")."</a>)";
    -$nav.='<br>'.$form->select_date(-1,'',0,0,2,"addtime",1,0,1).' ';
    +$nav.='<br>'.$form->selectDate(-1, '', 0, 0, 2, "addtime", 1, 0).' ';
     $nav.=' <input type="submit" name="submitdateselect" class="button valignmiddle" value="'.$langs->trans("Refresh").'">';
     
     $picto='calendarweek';
    @@ -387,7 +388,7 @@ $head=project_timesheet_prepare_head($mode, $usertoprocess);
     dol_fiche_head($head, 'inputperday', $langs->trans('TimeSpent'), -1, 'task');
     
     // Show description of content
    -print '<div class="hideonsmartphone">';
    +print '<div class="hideonsmartphone opacitymedium">';
     if ($mine || ($usertoprocess->id == $user->id)) print $langs->trans("MyTasksDesc").'.'.($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'<br>';
     else
     {
    @@ -543,7 +544,7 @@ print '<td class="center">'.$langs->trans("Note").'</td>';
     print '<td class="center"></td>';
     print "</tr>\n";
     
    -$colspan = 6+(empty($conf->global->PROJECT_TIMESHEET_DISABLEBREAK_ON_PROJECT)?0:2);;
    +$colspan = 6+(empty($conf->global->PROJECT_TIMESHEET_DISABLEBREAK_ON_PROJECT)?0:2);
     
     if ($conf->use_javascript_ajax)
     {
    @@ -713,6 +714,6 @@ if ($conf->use_javascript_ajax)
     	print '</script>';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/activity/perweek.php b/htdocs/projet/activity/perweek.php
    index bf6a95c9e0e..af468d03921 100644
    --- a/htdocs/projet/activity/perweek.php
    +++ b/htdocs/projet/activity/perweek.php
    @@ -1,8 +1,9 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010      François Legastelois <flegastelois@teclib.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -24,7 +25,7 @@
      *	\brief      List activities of tasks (per week entry)
      */
     
    -require ("../../main.inc.php");
    +require "../../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
    @@ -372,7 +373,7 @@ $nav ='<a class="inline-block valignmiddle" href="?year='.$prev_year."&month=".$
     $nav.=" <span id=\"month_name\">".dol_print_date(dol_mktime(0,0,0,$first_month,$first_day,$first_year),"%Y").", ".$langs->trans("WeekShort")." ".$week." </span>\n";
     $nav.='<a class="inline-block valignmiddle" href="?year='.$next_year."&month=".$next_month."&day=".$next_day.$param.'">'.img_next($langs->trans("Next"))."</a>\n";
     $nav.=" &nbsp; (<a href=\"?year=".$nowyear."&month=".$nowmonth."&day=".$nowday.$param."\">".$langs->trans("Today")."</a>)";
    -$nav.='<br>'.$form->select_date(-1,'',0,0,2,"addtime",1,0,1).' ';
    +$nav.='<br>'.$form->selectDate(-1, '', 0, 0, 2, "addtime", 1, 0).' ';
     $nav.=' <input type="submit" name="submitdateselect" class="button" value="'.$langs->trans("Refresh").'">';
     
     $picto='calendarweek';
    @@ -389,7 +390,7 @@ $head=project_timesheet_prepare_head($mode, $usertoprocess);
     dol_fiche_head($head, 'inputperweek', $langs->trans('TimeSpent'), -1, 'task');
     
     // Show description of content
    -print '<div class="hideonsmartphone">';
    +print '<div class="hideonsmartphone opacitymedium">';
     if ($mine || ($usertoprocess->id == $user->id)) print $langs->trans("MyTasksDesc").'.'.($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'<br>';
     else
     {
    @@ -751,7 +752,6 @@ if ($conf->use_javascript_ajax)
     	print '</script>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/admin/project.php b/htdocs/projet/admin/project.php
    index 80a13582d4d..71755fbdca3 100644
    --- a/htdocs/projet/admin/project.php
    +++ b/htdocs/projet/admin/project.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2014	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2014	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2016	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2011-2015	Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2011-2018	Philippe Grand		<philippe.grand@atoo-net.com>
    @@ -910,5 +910,6 @@ print '</table>';
     
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/projet/admin/project_extrafields.php b/htdocs/projet/admin/project_extrafields.php
    index d247408079c..00a0853ce19 100644
    --- a/htdocs/projet/admin/project_extrafields.php
    +++ b/htdocs/projet/admin/project_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2015		Juanjo Menent			<jmenent@2byte.es>
      *
    @@ -30,8 +30,7 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     
    -$langs->load("project");
    -$langs->load("admin");
    +$langs->loadLangs(array("project", "admin"));
     
     $extrafields = new ExtraFields($db);
     $form = new Form($db);
    @@ -113,6 +112,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/admin/project_task_extrafields.php b/htdocs/projet/admin/project_task_extrafields.php
    index 32e4af98f89..3a5b3c5749f 100644
    --- a/htdocs/projet/admin/project_task_extrafields.php
    +++ b/htdocs/projet/admin/project_task_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2015		Juanjo Menent			<jmenent@2byte.es>
      *
    @@ -112,6 +112,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/ajax/projects.php b/htdocs/projet/ajax/projects.php
    index f2417df5353..46699ba01dd 100644
    --- a/htdocs/projet/ajax/projects.php
    +++ b/htdocs/projet/ajax/projects.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
    - * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2014-2015 Marcos García       <marcosgdf@gmail.com>
      *
    diff --git a/htdocs/projet/card.php b/htdocs/projet/card.php
    index b92df257dd7..7c5b3ab17e3 100644
    --- a/htdocs/projet/card.php
    +++ b/htdocs/projet/card.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -333,7 +333,6 @@ if (empty($reshook))
     			if (GETPOST('socid','int') > 0) $object->fetch_thirdparty(GETPOST('socid','int'));
     			else unset($object->thirdparty);
     		}
    -
     	}
     
     	// Build doc
    @@ -472,6 +471,17 @@ $help_url="EN:Module_Projects|FR:Module_Projets|ES:M&oacute;dulo_Proyectos";
     
     llxHeader("",$title,$help_url);
     
    +$titleboth=$langs->trans("LeadsOrProjects");
    +$titlenew = $langs->trans("NewLeadOrProject");	// Leads and opportunities by default
    +if ($conf->global->PROJECT_USE_OPPORTUNITIES == 0)
    +{
    +	$titleboth=$langs->trans("Projects");
    +	$titlenew = $langs->trans("NewProject");
    +}
    +if ($conf->global->PROJECT_USE_OPPORTUNITIES == 2) {	// 2 = leads only
    +	$titleboth=$langs->trans("Leads");
    +	$titlenew = $langs->trans("NewLead");
    +}
     
     if ($action == 'create' && $user->rights->projet->creer)
     {
    @@ -482,7 +492,7 @@ if ($action == 'create' && $user->rights->projet->creer)
     	$thirdparty=new Societe($db);
     	if ($socid > 0) $thirdparty->fetch($socid);
     
    -	print load_fiche_titre($langs->trans("NewProject"), '', 'title_project');
    +	print load_fiche_titre($titlenew, '', 'title_project');
     
     	print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
     	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    @@ -542,7 +552,7 @@ if ($action == 'create' && $user->rights->projet->creer)
     	   	$text=$form->select_company(GETPOST('socid','int'), 'socid', $filteronlist, 'SelectThirdParty', 1, 0, array(), 0, 'minwidth300');
     		if (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) && empty($conf->dol_use_jmobile))
     		{
    -			$texthelp=$langs->trans("IfNeedToUseOhterObjectKeepEmpty");
    +			$texthelp=$langs->trans("IfNeedToUseOtherObjectKeepEmpty");
     			print $form->textwithtooltip($text.' '.img_help(),$texthelp,1);
     		}
     		else print $text;
    @@ -569,12 +579,12 @@ if ($action == 'create' && $user->rights->projet->creer)
     
     	// Date start
     	print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
    -	print $form->select_date(($date_start?$date_start:''),'projectstart',0,0,0,'',1,0,1);
    +	print $form->selectDate(($date_start?$date_start:''), 'projectstart', 0, 0, 0, '', 1, 0);
     	print '</td></tr>';
     
     	// Date end
     	print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
    -	print $form->select_date(($date_end?$date_end:-1),'projectend',0,0,0,'',1,0,1);
    +	print $form->selectDate(($date_end?$date_end:-1), 'projectend', 0, 0, 0, '', 1, 0);
     	print '</td></tr>';
     
     	if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
    @@ -610,7 +620,7 @@ if ($action == 'create' && $user->rights->projet->creer)
     	print '</td></tr>';
     
     	// Bill time
    -	if (! empty($conf->global->PROJECT_BILL_TIME_SPENT))
    +	if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_BILL_TIME_SPENT))
     	{
     		print '<tr><td>'.$langs->trans("BillTime").'</td>';
     		print '<td><input type="checkbox" name="bill_time"'.(GETPOST('bill_time','alpha')!=''?' checked="checked"':'').'"></td>';
    @@ -779,7 +789,7 @@ elseif ($object->id > 0)
     			$text=$form->select_company($object->thirdparty->id, 'socid', $filteronlist, 'None', 1, 0, array(), 0, 'minwidth300');
     			if (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS) && empty($conf->dol_use_jmobile))
     			{
    -				$texthelp=$langs->trans("IfNeedToUseOhterObjectKeepEmpty");
    +				$texthelp=$langs->trans("IfNeedToUseOtherObjectKeepEmpty");
     				print $form->textwithtooltip($text.' '.img_help(), $texthelp, 1, 0, '', '', 2);
     			}
     			else print $text;
    @@ -822,7 +832,7 @@ elseif ($object->id > 0)
     
     		// Date start
     		print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
    -		print $form->select_date($object->date_start?$object->date_start:-1,'projectstart',0,0,0,'',1,0,1);
    +		print $form->selectDate($object->date_start?$object->date_start:-1, 'projectstart', 0, 0, 0, '', 1, 0);
     		print ' &nbsp; &nbsp; <input type="checkbox" class="valignmiddle" name="reportdate" value="yes" ';
     		if ($comefromclone){print ' checked ';}
     		print '/> '. $langs->trans("ProjectReportDate");
    @@ -830,7 +840,7 @@ elseif ($object->id > 0)
     
     		// Date end
     		print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
    -		print $form->select_date($object->date_end?$object->date_end:-1,'projectend',0,0,0,'',1,0,1);
    +		print $form->selectDate($object->date_end?$object->date_end:-1, 'projectend', 0, 0, 0, '', 1, 0);
     		print '</td></tr>';
     
     		// Budget
    @@ -845,7 +855,7 @@ elseif ($object->id > 0)
     		print '</td></tr>';
     
     		// Bill time
    -		if (! empty($conf->global->PROJECT_BILL_TIME_SPENT))
    +		if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_BILL_TIME_SPENT))
     		{
     			print '<tr><td>'.$langs->trans("BillTime").'</td>';
     			print '<td><input type="checkbox" name="bill_time"'.((GETPOSTISSET('bill_time')?GETPOST('bill_time','alpha'):$object->bill_time) ? ' checked="checked"' : '').'"></td>';
    @@ -910,7 +920,7 @@ elseif ($object->id > 0)
     		print '<div class="fichehalfleft">';
     		print '<div class="underbanner clearboth"></div>';
     
    -		print '<table class="border" width="100%">';
    +		print '<table class="border tableforfield" width="100%">';
     
     		// Visibility
     		print '<tr><td class="titlefield">'.$langs->trans("Visibility").'</td><td>';
    @@ -967,7 +977,7 @@ elseif ($object->id > 0)
     		print '<div class="ficheaddleft">';
     		print '<div class="underbanner clearboth"></div>';
     
    -		print '<table class="border" width="100%">';
    +		print '<table class="border tableforfield" width="100%">';
     
     		// Description
     		print '<td class="titlefield tdtop">'.$langs->trans("Description").'</td><td>';
    @@ -975,7 +985,7 @@ elseif ($object->id > 0)
     		print '</td></tr>';
     
     		// Bill time
    -		if (! empty($conf->global->PROJECT_BILL_TIME_SPENT))
    +		if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_BILL_TIME_SPENT))
     		{
     			print '<tr><td>'.$langs->trans("BillTime").'</td>';
     			print '<td>'.yn($object->bill_time).'</td>';
    @@ -1108,7 +1118,7 @@ elseif ($object->id > 0)
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('Modify').'</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('Modify').'</a></div>';
     				}
     			}
     
    @@ -1121,7 +1131,7 @@ elseif ($object->id > 0)
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('Validate').'</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('Validate').'</a></div>';
     				}
     			}
     
    @@ -1134,7 +1144,7 @@ elseif ($object->id > 0)
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('Close').'</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('Close').'</a></div>';
     				}
     			}
     
    @@ -1147,7 +1157,7 @@ elseif ($object->id > 0)
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('ReOpen').'</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('ReOpen').'</a></div>';
     				}
     			}
     
    @@ -1215,7 +1225,7 @@ elseif ($object->id > 0)
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('ToClone').'</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('ToClone').'</a></div>';
     				}
     			}
     
    @@ -1228,7 +1238,7 @@ elseif ($object->id > 0)
     				}
     				else
     				{
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('Delete').'</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('Delete').'</a></div>';
     				}
     			}
     		 }
    @@ -1289,6 +1299,6 @@ else
     	print $langs->trans("RecordNotFound");
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/class/api_projects.class.php b/htdocs/projet/class/api_projects.class.php
    index ab157bf237c..a1f2ce6d26c 100644
    --- a/htdocs/projet/class/api_projects.class.php
    +++ b/htdocs/projet/class/api_projects.class.php
    @@ -98,7 +98,8 @@ class Projects extends DolibarrApi
          * @param string           $sqlfilters          Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')"
          * @return  array                               Array of project objects
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -214,7 +215,8 @@ class Projects extends DolibarrApi
          *
          * @url	GET {id}/tasks
          */
    -    function getLines($id, $includetimespent=0) {
    +    function getLines($id, $includetimespent=0)
    +    {
           if(! DolibarrApiAccess::$user->rights->projet->lire) {
     		  	throw new RestException(401);
     		  }
    @@ -256,7 +258,8 @@ class Projects extends DolibarrApi
          *
          * @return int
          */
    -    function getRoles($id, $userid=0) {
    +    function getRoles($id, $userid=0)
    +    {
             global $db;
     
             if(! DolibarrApiAccess::$user->rights->projet->lire) {
    @@ -300,7 +303,8 @@ class Projects extends DolibarrApi
          * @return int
          */
         /*
    -    function postLine($id, $request_data = null) {
    +    function postLine($id, $request_data = null)
    +    {
           if(! DolibarrApiAccess::$user->rights->projet->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -362,7 +366,8 @@ class Projects extends DolibarrApi
          * @return object
          */
         /*
    -    function putLine($id, $lineid, $request_data = null) {
    +    function putLine($id, $lineid, $request_data = null)
    +    {
           if(! DolibarrApiAccess::$user->rights->projet->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -418,7 +423,8 @@ class Projects extends DolibarrApi
          *
          * @return int
          */
    -    function put($id, $request_data = null) {
    +    function put($id, $request_data = null)
    +    {
           if(! DolibarrApiAccess::$user->rights->projet->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -477,7 +483,6 @@ class Projects extends DolibarrApi
                     'message' => 'Project deleted'
                 )
             );
    -
         }
     
         /**
    @@ -535,7 +540,8 @@ class Projects extends DolibarrApi
          * @param   object  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    @@ -592,7 +598,6 @@ class Projects extends DolibarrApi
                 if (!isset($data[$field]))
                     throw new RestException(400, "$field field missing");
                 $object[$field] = $data[$field];
    -
             }
             return $object;
         }
    diff --git a/htdocs/projet/class/api_tasks.class.php b/htdocs/projet/class/api_tasks.class.php
    index 3125546c10a..050e7313e95 100644
    --- a/htdocs/projet/class/api_tasks.class.php
    +++ b/htdocs/projet/class/api_tasks.class.php
    @@ -106,7 +106,8 @@ class Tasks extends DolibarrApi
          * @param string           $sqlfilters          Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')"
          * @return  array                               Array of project objects
          */
    -    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '')
    +    {
             global $db, $conf;
     
             $obj_ret = array();
    @@ -221,7 +222,8 @@ class Tasks extends DolibarrApi
          * @url	GET {id}/tasks
          */
         /*
    -    function getLines($id, $includetimespent=0) {
    +    function getLines($id, $includetimespent=0)
    +    {
           if(! DolibarrApiAccess::$user->rights->projet->lire) {
     		  	throw new RestException(401);
     		  }
    @@ -263,7 +265,8 @@ class Tasks extends DolibarrApi
          *
          * @return int
          */
    -    function getRoles($id, $userid=0) {
    +    function getRoles($id, $userid=0)
    +    {
             global $db;
     
             if(! DolibarrApiAccess::$user->rights->projet->lire) {
    @@ -305,7 +308,8 @@ class Tasks extends DolibarrApi
          * @return int
          */
         /*
    -    function postLine($id, $request_data = null) {
    +    function postLine($id, $request_data = null)
    +    {
           if(! DolibarrApiAccess::$user->rights->projet->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -367,7 +371,8 @@ class Tasks extends DolibarrApi
          * @return object
          */
         /*
    -    function putLine($id, $lineid, $request_data = null) {
    +    function putLine($id, $lineid, $request_data = null)
    +    {
           if(! DolibarrApiAccess::$user->rights->projet->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -422,7 +427,8 @@ class Tasks extends DolibarrApi
          *
          * @return int
          */
    -    function put($id, $request_data = null) {
    +    function put($id, $request_data = null)
    +    {
           if(! DolibarrApiAccess::$user->rights->projet->creer) {
     		  	throw new RestException(401);
     		  }
    @@ -481,7 +487,6 @@ class Tasks extends DolibarrApi
                     'message' => 'Task deleted'
                 )
             );
    -
         }
     
     
    @@ -550,7 +555,8 @@ class Tasks extends DolibarrApi
          * @param   object  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
             $object = parent::_cleanObjectDatas($object);
     
    @@ -604,7 +610,6 @@ class Tasks extends DolibarrApi
                 if (!isset($data[$field]))
                     throw new RestException(400, "$field field missing");
                 $object[$field] = $data[$field];
    -
             }
             return $object;
         }
    diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php
    index a704c7d641e..6cb54cfb572 100644
    --- a/htdocs/projet/class/project.class.php
    +++ b/htdocs/projet/class/project.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013	   Florian Henry        <florian.henry@open-concept.pro>
      * Copyright (C) 2014-2017 Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2017      Ferran Marcet        <fmarcet@2byte.es>
    @@ -33,11 +33,32 @@ require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
     class Project extends CommonObject
     {
     
    -    public $element = 'project';    //!< Id that identify managed objects
    -    public $table_element = 'projet';  //!< Name of table without prefix where object is stored
    -    public $table_element_line = 'projet_task';
    -    public $fk_element = 'fk_projet';
    -    public $ismultientitymanaged = 1;  // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element = 'project';
    +
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element = 'projet';
    +
    +    /**
    +	 * @var int    Name of subtable line
    +	 */
    +	public $table_element_line = 'projet_task';
    +
    +    /**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
    +	public $fk_element = 'fk_projet';
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +    public $ismultientitymanaged = 1;
    +
         public $picto = 'projectpub';
     
         /**
    @@ -45,38 +66,43 @@ class Project extends CommonObject
          */
         protected $table_ref_field = 'ref';
     
    -    var $description;
    +    /**
    +	 * @var string description
    +	 */
    +	public $description;
    +
     	/**
     	 * @var string
     	 * @deprecated
     	 * @see title
     	 */
     	public $titre;
    -    var $title;
    -    var $date_start;
    -    var $date_end;
    -    var $date_close;
     
    -    var $socid;             // To store id of thirdparty
    -    var $thirdparty_name;   // To store name of thirdparty (defined only in some cases)
    +    public $title;
    +    public $date_start;
    +    public $date_end;
    +    public $date_close;
     
    -    var $user_author_id;    //!< Id of project creator. Not defined if shared project.
    -	var $user_close_id;
    -    var $public;      //!< Tell if this is a public or private project
    -    var $budget_amount;
    -    var $bill_time;			// Is the time spent on project must be invoiced or not
    +    public $socid;             // To store id of thirdparty
    +    public $thirdparty_name;   // To store name of thirdparty (defined only in some cases)
     
    -    var $statuts_short;
    -    var $statuts_long;
    +    public $user_author_id;    //!< Id of project creator. Not defined if shared project.
    +	public $user_close_id;
    +    public $public;      //!< Tell if this is a public or private project
    +    public $budget_amount;
    +    public $bill_time;			// Is the time spent on project must be invoiced or not
     
    -    var $statut;			// 0=draft, 1=opened, 2=closed
    -    var $opp_status;		// opportunity status, into table llx_c_lead_status
    -	var $opp_percent;		// opportunity probability
    +    public $statuts_short;
    +    public $statuts_long;
     
    -    var $oldcopy;
    +    public $statut;			// 0=draft, 1=opened, 2=closed
    +    public $opp_status;		// opportunity status, into table llx_c_lead_status
    +	public $opp_percent;		// opportunity probability
     
    -    var $weekWorkLoad;			// Used to store workload details of a projet
    -    var $weekWorkLoadPerTask;	// Used to store workload details of tasks of a projet
    +    public $oldcopy;
    +
    +    public $weekWorkLoad;			// Used to store workload details of a projet
    +    public $weekWorkLoadPerTask;	// Used to store workload details of tasks of a projet
     
     	/**
     	 * @var int Creation date
    @@ -84,16 +110,19 @@ class Project extends CommonObject
     	 * @see date_c
     	 */
     	public $datec;
    +
     	/**
     	 * @var int Creation date
     	 */
     	public $date_c;
    +
     	/**
     	 * @var int Modification date
     	 * @deprecated
     	 * @see date_m
     	 */
     	public $datem;
    +
     	/**
     	 * @var int Modification date
     	 */
    @@ -108,10 +137,12 @@ class Project extends CommonObject
     	 * Draft status
     	 */
     	const STATUS_DRAFT = 0;
    +
     	/**
     	 * Open/Validated status
     	 */
     	const STATUS_VALIDATED = 1;
    +
     	/**
     	 * Closed status
     	 */
    @@ -148,6 +179,10 @@ class Project extends CommonObject
     
             $now=dol_now();
     
    +        // Clean parameters
    +        $this->note_private = dol_substr($this->note_private, 0, 65535);
    +        $this->note_public = dol_substr($this->note_public, 0, 65535);
    +
             // Check parameters
             if (!trim($this->ref))
             {
    @@ -162,6 +197,7 @@ class Project extends CommonObject
                 return -1;
             }
     
    +        // Create project
             $this->db->begin();
     
             $sql = "INSERT INTO " . MAIN_DB_PREFIX . "projet (";
    @@ -180,6 +216,8 @@ class Project extends CommonObject
             $sql.= ", opp_amount";
             $sql.= ", budget_amount";
             $sql.= ", bill_time";
    +        $sql.= ", note_private";
    +        $sql.= ", note_public";
             $sql.= ", entity";
             $sql.= ") VALUES (";
             $sql.= "'" . $this->db->escape($this->ref) . "'";
    @@ -197,6 +235,8 @@ class Project extends CommonObject
             $sql.= ", " . (strcmp($this->opp_amount,'') ? price2num($this->opp_amount) : 'null');
             $sql.= ", " . (strcmp($this->budget_amount,'') ? price2num($this->budget_amount) : 'null');
             $sql.= ", " . ($this->bill_time ? 1 : 0);
    +        $sql.= ", ".($this->note_private ? "'".$this->db->escape($this->note_private)."'" : 'null');
    +        $sql.= ", ".($this->note_public ? "'".$this->db->escape($this->note_public)."'" : 'null');
             $sql.= ", ".$conf->entity;
             $sql.= ")";
     
    @@ -468,6 +508,7 @@ class Project extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Return list of projects
          *
    @@ -476,6 +517,7 @@ class Project extends CommonObject
          */
         function liste_array($socid='')
         {
    +        // phpcs:enable
             global $conf;
     
             $projects = array();
    @@ -509,6 +551,7 @@ class Project extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Return list of elements for type, linked to a project
          *
    @@ -517,10 +560,12 @@ class Project extends CommonObject
          * 	@param		string		$datefieldname	name of date field for filter
          *  @param		int			$dates			Start date
          *  @param		int			$datee			End date
    +	 *	@param		string		$projectkey		Equivalent key  to fk_projet for actual type
          * 	@return		mixed						Array list of object ids linked to project, < 0 or string if error
          */
    -    function get_element_list($type, $tablename, $datefieldname='', $dates='', $datee='')
    +    function get_element_list($type, $tablename, $datefieldname='', $dates='', $datee='', $projectkey='fk_projet')
         {
    +        // phpcs:enable
             $elements = array();
     
             if ($this->id <= 0) return $elements;
    @@ -529,11 +574,11 @@ class Project extends CommonObject
     
     		if ($type == 'agenda')
             {
    -        	$sql = "SELECT id as rowid FROM " . MAIN_DB_PREFIX . "actioncomm WHERE fk_project IN (". $ids .")";
    +        	$sql = "SELECT id as rowid FROM " . MAIN_DB_PREFIX . "actioncomm WHERE fk_project IN (". $ids .") AND entity IN (".getEntity('agenda').")";
             }
             elseif ($type == 'expensereport')
     		{
    -            $sql = "SELECT ed.rowid FROM " . MAIN_DB_PREFIX . "expensereport as e, " . MAIN_DB_PREFIX . "expensereport_det as ed WHERE e.rowid = ed.fk_expensereport AND ed.fk_projet IN (". $ids .")";
    +            $sql = "SELECT ed.rowid FROM " . MAIN_DB_PREFIX . "expensereport as e, " . MAIN_DB_PREFIX . "expensereport_det as ed WHERE e.rowid = ed.fk_expensereport AND e.entity IN (".getEntity('expensereport').") AND ed.fk_projet IN (". $ids .")";
     		}
             elseif ($type == 'project_task')
     		{
    @@ -545,11 +590,11 @@ class Project extends CommonObject
     		}
     		elseif ($type == 'stock_mouvement')
     		{
    -			$sql = 'SELECT ms.rowid, ms.fk_user_author as fk_user FROM ' . MAIN_DB_PREFIX . "stock_mouvement as ms WHERE ms.origintype = 'project' AND ms.fk_origin  IN (". $ids .") AND ms.type_mouvement = 1";
    +			$sql = 'SELECT ms.rowid, ms.fk_user_author as fk_user FROM ' . MAIN_DB_PREFIX . "stock_mouvement as ms, " . MAIN_DB_PREFIX . "entrepot as e WHERE e.rowid = ms.fk_entrepot AND e.entity IN (".getEntity('stock').") AND ms.origintype = 'project' AND ms.fk_origin IN (". $ids .") AND ms.type_mouvement = 1";
     		}
             else
     		{
    -            $sql = "SELECT rowid FROM " . MAIN_DB_PREFIX . $tablename." WHERE fk_projet IN (". $ids .")";
    +            $sql = "SELECT rowid FROM " . MAIN_DB_PREFIX . $tablename." WHERE ".$projectkey." IN (". $ids .") AND entity IN (".getEntity($type).")";
     		}
     
     		if ($dates > 0)
    @@ -626,9 +671,10 @@ class Project extends CommonObject
     
             // Set fk_projet into elements to null
             $listoftables=array(
    -        		'facture'=>'fk_projet','propal'=>'fk_projet','commande'=>'fk_projet',
    -                'facture_fourn'=>'fk_projet','commande_fournisseur'=>'fk_projet','supplier_proposal'=>'fk_projet',
    -        		'expensereport_det'=>'fk_projet','contrat'=>'fk_projet','fichinter'=>'fk_projet','don'=>'fk_projet'
    +        		'propal'=>'fk_projet', 'commande'=>'fk_projet', 'facture'=>'fk_projet',
    +        		'supplier_proposal'=>'fk_projet', 'commande_fournisseur'=>'fk_projet', 'facture_fourn'=>'fk_projet',
    +        		'expensereport_det'=>'fk_projet', 'contrat'=>'fk_projet', 'fichinter'=>'fk_projet', 'don'=>'fk_projet',
    +        		'actioncomm'=>'fk_project'
             		);
             foreach($listoftables as $key => $value)
             {
    @@ -723,10 +769,10 @@ class Project extends CommonObject
                 return -1;
             }
         }
    -    
    +
         /**
          * 		Delete tasks with no children first, then task with children recursively
    -     *  
    +     *
          *  	@param     	User		$user		User
          *		@return		int				<0 if KO, 1 if OK
          */
    @@ -754,7 +800,7 @@ class Project extends CommonObject
             {
                 if (count($this->lines)) $this->deleteTasks($this->lines);
             }
    -        
    +
             return 1;
         }
     
    @@ -896,6 +942,7 @@ class Project extends CommonObject
             return $this->LibStatut($this->statut, $mode);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Renvoi status label for a status
          *
    @@ -905,6 +952,7 @@ class Project extends CommonObject
          */
         function LibStatut($statut, $mode=0)
         {
    +        // phpcs:enable
             global $langs;
     
             if ($mode == 0)
    @@ -1462,7 +1510,6 @@ class Project extends CommonObject
     							$tab_conv_child_parent[$tasktoclone->id] =  $new_task_id;
     						}
     				    }
    -
     			    }
     
     			    //Parse all clone node to be sure to update new parent
    @@ -1568,15 +1615,17 @@ class Project extends CommonObject
     	}
     
     
    -	 /**
    -	  *    Associate element to a project
    -	  *
    -	  *    @param	string	$tableName			Table of the element to update
    -	  *    @param	int		$elementSelectId	Key-rowid of the line of the element to update
    -	  *    @return	int							1 if OK or < 0 if KO
    -	  */
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *    Associate element to a project
    +	 *
    +	 *    @param	string	$tableName			Table of the element to update
    +	 *    @param	int		$elementSelectId	Key-rowid of the line of the element to update
    +	 *    @return	int							1 if OK or < 0 if KO
    +     */
     	function update_element($tableName, $elementSelectId)
     	{
    +        // phpcs:enable
     		$sql="UPDATE ".MAIN_DB_PREFIX.$tableName;
     
     		if ($tableName == "actioncomm")
    @@ -1598,9 +1647,9 @@ class Project extends CommonObject
     		}else {
     			return 1;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Associate element to a project
     	 *
    @@ -1610,6 +1659,7 @@ class Project extends CommonObject
     	 */
     	function remove_element($tableName, $elementSelectId)
     	{
    +        // phpcs:enable
     		$sql="UPDATE ".MAIN_DB_PREFIX.$tableName;
     
     		if ($TableName=="actioncomm")
    @@ -1631,7 +1681,6 @@ class Project extends CommonObject
     		}else {
     			return 1;
     		}
    -
     	}
     
     	/**
    @@ -1732,6 +1781,7 @@ class Project extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Load indicators for dashboard (this->nbtodo and this->nbtodolate)
          *
    @@ -1740,6 +1790,7 @@ class Project extends CommonObject
          */
         function load_board($user)
         {
    +        // phpcs:enable
             global $conf, $langs;
     
             // For external user, no check is done on company because readability is managed by public status of project and assignement.
    @@ -1816,6 +1867,7 @@ class Project extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Charge indicateurs this->nb pour le tableau de bord
     	 *
    @@ -1823,6 +1875,7 @@ class Project extends CommonObject
     	 */
     	function load_state_board()
     	{
    +        // phpcs:enable
     	    global $user;
     
     	    $this->nb=array();
    @@ -1914,7 +1967,6 @@ class Project extends CommonObject
     	        }
     
     	        $this->db->free($result);
    -
     	    }
     	    else
     	    {
    @@ -1930,6 +1982,7 @@ class Project extends CommonObject
     	 * Existing categories are left untouch.
     	 *
     	 * @param int[]|int $categories Category or categories IDs
    +     * @return void
     	 */
     	public function setCategories($categories)
     	{
    @@ -1996,6 +2049,4 @@ class Project extends CommonObject
     
     	    $this->lines = $taskstatic->getTasksArray(0, $user, $this->id, 0, 0);
     	}
    -
     }
    -
    diff --git a/htdocs/projet/class/projectstats.class.php b/htdocs/projet/class/projectstats.class.php
    index 22793fd844e..ae30ac43dae 100644
    --- a/htdocs/projet/class/projectstats.class.php
    +++ b/htdocs/projet/class/projectstats.class.php
    @@ -29,7 +29,12 @@ class ProjectStats extends Stats
     	public $socid;
     	public $year;
     
    -	function __construct($db)
    +    /**
    +     * Constructor
    +     *
    +     * @param   DoliDB $db     Database handler
    +     */
    +    function __construct($db)
     	{
     		global $conf, $user;
     
    @@ -172,7 +177,7 @@ class ProjectStats extends Stats
     		if (! empty($this->status))
     			$sqlwhere[] = " t.fk_opp_status IN (" . $this->status . ")";
     
    -		if (! $user->rights->projet->all->lire) $sqlwhere[] = " AND p.rowid IN (".$projectsListId.")";     // public and assigned to, or restricted to company for external users
    +		if (! $user->rights->projet->all->lire) $sqlwhere[] = " t.rowid IN (".$projectsListId.")";     // public and assigned to, or restricted to company for external users
     
     		if (count($sqlwhere) > 0) {
     			$sqlwhere_str = ' WHERE ' . implode(' AND ', $sqlwhere);
    @@ -493,7 +498,6 @@ class ProjectStats extends Stats
     			} else {
     				$res[$key]=array($total_row[0],0);
     			}
    -
     		}
     		// var_dump($res);print '<br>';
     		return $res;
    diff --git a/htdocs/projet/class/task.class.php b/htdocs/projet/class/task.class.php
    index a0477461b4e..49e0c34a0dc 100644
    --- a/htdocs/projet/class/task.class.php
    +++ b/htdocs/projet/class/task.class.php
    @@ -1,7 +1,8 @@
     <?php
     /* Copyright (C) 2008-2014	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2014       Marcos García       <marcosgdf@gmail.com>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -31,46 +32,84 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
      */
     class Task extends CommonObject
     {
    -	public $element='project_task';		//!< Id that identify managed objects
    -	public $table_element='projet_task';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='project_task';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='projet_task';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element='fk_task';
    +
     	public $picto = 'task';
     	protected $childtables=array('projet_task_time');    // To test if we can delete object
     
    -	var $fk_task_parent;
    -	var $label;
    -	var $description;
    -	var $duration_effective;		// total of time spent on this task
    -	var $planned_workload;
    -	var $date_c;
    -	var $date_start;
    -	var $date_end;
    -	var $progress;
    -	var $fk_statut;
    -	var $priority;
    -	var $fk_user_creat;
    -	var $fk_user_valid;
    -	var $rang;
    +	/**
    +     * @var int ID parent task
    +     */
    +    public $fk_task_parent;
     
    -	var $timespent_min_date;
    -	var $timespent_max_date;
    -	var $timespent_total_duration;
    -	var $timespent_total_amount;
    -	var $timespent_nblinesnull;
    -	var $timespent_nblines;
    +    /**
    +     * @var string Label of task
    +     */
    +    public $label;
    +
    +	/**
    +	 * @var string description
    +	 */
    +	public $description;
    +
    +	public $duration_effective;		// total of time spent on this task
    +	public $planned_workload;
    +	public $date_c;
    +	public $date_start;
    +	public $date_end;
    +	public $progress;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_statut;
    +
    +	public $priority;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_user_valid;
    +
    +	public $rang;
    +
    +	public $timespent_min_date;
    +	public $timespent_max_date;
    +	public $timespent_total_duration;
    +	public $timespent_total_amount;
    +	public $timespent_nblinesnull;
    +	public $timespent_nblines;
     	// For detail of lines of timespent record, there is the property ->lines in common
     
     	// Var used to call method addTimeSpent(). Bad practice.
    -	var $timespent_id;
    -	var $timespent_duration;
    -	var $timespent_old_duration;
    -	var $timespent_date;
    -	var $timespent_datehour;		// More accurate start date (same than timespent_date but includes hours, minutes and seconds)
    -	var $timespent_withhour;		// 1 = we entered also start hours for timesheet line
    -	var $timespent_fk_user;
    -	var $timespent_note;
    +	public $timespent_id;
    +	public $timespent_duration;
    +	public $timespent_old_duration;
    +	public $timespent_date;
    +	public $timespent_datehour;		// More accurate start date (same than timespent_date but includes hours, minutes and seconds)
    +	public $timespent_withhour;		// 1 = we entered also start hours for timesheet line
    +	public $timespent_fk_user;
    +	public $timespent_note;
     
    -	var $comments = array();
    +	public $comments = array();
     
     	public $oldcopy;
     
    @@ -302,7 +341,7 @@ class Task extends CommonObject
     		// Clean parameters
     		if (isset($this->fk_project)) $this->fk_project=trim($this->fk_project);
     		if (isset($this->ref)) $this->ref=trim($this->ref);
    -		if (isset($this->fk_task_parent)) $this->fk_task_parent=trim($this->fk_task_parent);
    +		if (isset($this->fk_task_parent)) $this->fk_task_parent = (int) $this->fk_task_parent;
     		if (isset($this->label)) $this->label=trim($this->label);
     		if (isset($this->description)) $this->description=trim($this->description);
     		if (isset($this->duration_effective)) $this->duration_effective=trim($this->duration_effective);
    @@ -667,12 +706,12 @@ class Task extends CommonObject
     
     		$this->fk_projet='';
     		$this->ref='TK01';
    -		$this->fk_task_parent='';
    +		$this->fk_task_parent=null;
     		$this->label='Specimen task TK01';
     		$this->duration_effective='';
    -		$this->fk_user_creat='';
    +		$this->fk_user_creat=null;
     		$this->progress='25';
    -		$this->fk_statut='';
    +		$this->fk_statut=null;
     		$this->note='This is a specimen task not';
     	}
     
    @@ -1323,6 +1362,18 @@ class Task extends CommonObject
     
     		$ret = 0;
     
    +		// Check parameters
    +		if ($this->timespent_date == '')
    +		{
    +		    $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("Date"));
    +		    return -1;
    +		}
    +		if (! ($this->timespent_fk_user > 0))
    +		{
    +		    $this->error = $langs->trans("ErrorFieldRequired", $langs->transnoentities("User"));
    +		    return -1;
    +		}
    +
     		// Clean parameters
     		if (empty($this->timespent_datehour)) $this->timespent_datehour = $this->timespent_date;
     		if (isset($this->timespent_note)) $this->timespent_note = trim($this->timespent_note);
    @@ -1529,7 +1580,6 @@ class Task extends CommonObject
     			{
     				$clone_task->date_end			= $now + $clone_task->date_end - $orign_project_dt_start;
     			}
    -
     		}
     
     		if (!$clone_prog)
    @@ -1698,6 +1748,7 @@ class Task extends CommonObject
     		return $this->LibStatut($this->fk_statut, $mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Return status label for an object
     	 *
    @@ -1707,6 +1758,7 @@ class Task extends CommonObject
     	 */
     	function LibStatut($statut, $mode=0)
     	{
    +        // phpcs:enable
     		// list of Statut of the task
     		$this->statuts[0]='Draft';
     		$this->statuts[1]='ToDo';
    @@ -1725,59 +1777,59 @@ class Task extends CommonObject
     		{
     			return $langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			return $langs->trans($this->statuts_short[$statut]);
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts_short[$statut]);
    -			if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut1').' '.$langs->trans($this->statuts_short[$statut]);
    -			if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut3').' '.$langs->trans($this->statuts_short[$statut]);
    -			if ($statut==3) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts_short[$statut]);
    -			if ($statut==4) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts_short[$statut]);
    -			if ($statut==5) return img_picto($langs->trans($this->statuts_short[$statut]),'statut5').' '.$langs->trans($this->statuts_short[$statut]);
    +			elseif ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut1').' '.$langs->trans($this->statuts_short[$statut]);
    +			elseif ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut3').' '.$langs->trans($this->statuts_short[$statut]);
    +			elseif ($statut==3) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts_short[$statut]);
    +			elseif ($statut==4) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts_short[$statut]);
    +			elseif ($statut==5) return img_picto($langs->trans($this->statuts_short[$statut]),'statut5').' '.$langs->trans($this->statuts_short[$statut]);
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0');
    -			if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut1');
    -			if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut3');
    -			if ($statut==3) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    -			if ($statut==4) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    -			if ($statut==5) return img_picto($langs->trans($this->statuts_short[$statut]),'statut5');
    +			elseif ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut1');
    +			elseif ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut3');
    +			elseif ($statut==3) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    +			elseif ($statut==4) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    +			elseif ($statut==5) return img_picto($langs->trans($this->statuts_short[$statut]),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut==0) return img_picto($langs->trans($this->statuts_short[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]);
    -			if ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut1').' '.$langs->trans($this->statuts[$statut]);
    -			if ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]);
    -			if ($statut==3) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
    -			if ($statut==4) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
    -			if ($statut==5) return img_picto($langs->trans($this->statuts_short[$statut]),'statut5').' '.$langs->trans($this->statuts[$statut]);
    +			elseif ($statut==1) return img_picto($langs->trans($this->statuts_short[$statut]),'statut1').' '.$langs->trans($this->statuts[$statut]);
    +			elseif ($statut==2) return img_picto($langs->trans($this->statuts_short[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]);
    +			elseif ($statut==3) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
    +			elseif ($statut==4) return img_picto($langs->trans($this->statuts_short[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
    +			elseif ($statut==5) return img_picto($langs->trans($this->statuts_short[$statut]),'statut5').' '.$langs->trans($this->statuts[$statut]);
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			/*if ($statut==0) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut0');
    -			if ($statut==1) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut1');
    -			if ($statut==2) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut3');
    -			if ($statut==3) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    -			if ($statut==4) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    -			if ($statut==5) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut5');
    +			elseif ($statut==1) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut1');
    +			elseif ($statut==2) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut3');
    +			elseif ($statut==3) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    +			elseif ($statut==4) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    +			elseif ($statut==5) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut5');
     			*/
    -			//return $this->progress.' %';
    +			//else return $this->progress.' %';
     			return '&nbsp;';
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			/*if ($statut==0) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut0');
    -			if ($statut==1) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut1');
    -			if ($statut==2) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut3');
    -			if ($statut==3) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    -			if ($statut==4) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    -			if ($statut==5) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut5');
    +			elseif ($statut==1) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut1');
    +			elseif ($statut==2) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut3');
    +			elseif ($statut==3) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    +			elseif ($statut==4) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6');
    +			elseif ($statut==5) return $langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut5');
     			*/
    -			//return $this->progress.' %';
    +			//else return $this->progress.' %';
     			return '&nbsp;';
     		}
     	}
    @@ -1815,6 +1867,7 @@ class Task extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Load indicators for dashboard (this->nbtodo and this->nbtodolate)
     	 *
    @@ -1823,6 +1876,7 @@ class Task extends CommonObject
     	 */
     	function load_board($user)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		// For external user, no check is done on company because readability is managed by public status of project and assignement.
    @@ -1888,6 +1942,7 @@ class Task extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Charge indicateurs this->nb de tableau de bord
     	 *
    @@ -1895,6 +1950,7 @@ class Task extends CommonObject
     	 */
     	function load_state_board()
     	{
    +        // phpcs:enable
     		global $user;
     
     		$mine=0; $socid=$user->societe_id;
    @@ -1955,4 +2011,4 @@ class Task extends CommonObject
     
     		return ($datetouse > 0 && ($datetouse < ($now - $conf->projet->task->warning_delay)));
     	}
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/projet/class/taskstats.class.php b/htdocs/projet/class/taskstats.class.php
    index 20a3a67d1d3..4164c1427b6 100644
    --- a/htdocs/projet/class/taskstats.class.php
    +++ b/htdocs/projet/class/taskstats.class.php
    @@ -29,10 +29,13 @@ class TaskStats extends Stats
     	public $socid;
     	public $year;
     
    +    /**
    +     * Constructor of the class
    +     *
    +     * @param   DoliDb  $db     Database handler
    +     */
     	function __construct($db)
     	{
    -		global $conf, $user;
    -
     		$this->db = $db;
     
     		require_once 'task.class.php';
    diff --git a/htdocs/projet/comment.php b/htdocs/projet/comment.php
    index 3dfd0bb3ca4..4d13161042d 100644
    --- a/htdocs/projet/comment.php
    +++ b/htdocs/projet/comment.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -184,6 +184,6 @@ print '<br>';
     // Include comment tpl view
     include DOL_DOCUMENT_ROOT . '/core/tpl/bloc_comment.tpl.php';
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/projet/contact.php b/htdocs/projet/contact.php
    index 2f4ee0fba06..3a68eb9b5d4 100644
    --- a/htdocs/projet/contact.php
    +++ b/htdocs/projet/contact.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010      Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010      Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2012-2015 Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -240,6 +240,14 @@ if ($id > 0 || ! empty($ref))
         print nl2br($object->description);
         print '</td></tr>';
     
    +    // Bill time
    +    if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_BILL_TIME_SPENT))
    +    {
    +    	print '<tr><td>'.$langs->trans("BillTime").'</td><td>';
    +    	print yn($object->bill_time);
    +    	print '</td></tr>';
    +    }
    +
         // Categories
         if ($conf->categorie->enabled) {
             print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td>';
    @@ -268,6 +276,6 @@ if ($id > 0 || ! empty($ref))
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/document.php b/htdocs/projet/document.php
    index 9ac1b74f604..47188547d8d 100644
    --- a/htdocs/projet/document.php
    +++ b/htdocs/projet/document.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2013 Cédric Salvador      <csalvador@gpcsolutions.fr>
      *
    @@ -152,13 +152,12 @@ if ($object->id > 0)
     	$permission = ($userWrite > 0);
     	$permtoedit = ($userWrite > 0);
     	include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
    -
     }
     else
     {
     	dol_print_error('','NoRecordFound');
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php
    index 3f611e5525e..5daa37a6465 100644
    --- a/htdocs/projet/element.php
    +++ b/htdocs/projet/element.php
    @@ -1,9 +1,9 @@
     <?php
     /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012-2016 Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2015-2017 Alexandre Spangaro	<aspangaro@zendsi.com>
    + * Copyright (C) 2015-2018 Alexandre Spangaro   <aspangaro@zendsi.com>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2016      Josep Lluís Amador   <joseplluis@lliuretic.cat>
      *
    @@ -43,7 +43,7 @@ if (! empty($conf->fournisseur->enabled))	require_once DOL_DOCUMENT_ROOT.'/fourn
     if (! empty($conf->fournisseur->enabled))	require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
     if (! empty($conf->contrat->enabled))		require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php';
     if (! empty($conf->ficheinter->enabled))	require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php';
    -if (! empty($conf->expedition->enabled))    require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
    +if (! empty($conf->expedition->enabled))	require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
     if (! empty($conf->deplacement->enabled))	require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php';
     if (! empty($conf->expensereport->enabled))	require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
     if (! empty($conf->agenda->enabled))		require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
    @@ -52,17 +52,19 @@ if (! empty($conf->loan->enabled))			require_once DOL_DOCUMENT_ROOT.'/loan/class
     if (! empty($conf->stock->enabled))			require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php';
     if (! empty($conf->tax->enabled))			require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php';
     if (! empty($conf->banque->enabled))		require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php';
    +if (! empty($conf->salaries->enabled))		require_once DOL_DOCUMENT_ROOT.'/compta/salaries/class/paymentsalary.class.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array('projects', 'companies', 'suppliers', 'compta'));
    -if (! empty($conf->facture->enabled))  	    $langs->load("bills");
    -if (! empty($conf->commande->enabled)) 	    $langs->load("orders");
    -if (! empty($conf->propal->enabled))   	    $langs->load("propal");
    +if (! empty($conf->facture->enabled))		$langs->load("bills");
    +if (! empty($conf->commande->enabled))		$langs->load("orders");
    +if (! empty($conf->propal->enabled))		$langs->load("propal");
     if (! empty($conf->ficheinter->enabled))	$langs->load("interventions");
     if (! empty($conf->deplacement->enabled))	$langs->load("trips");
     if (! empty($conf->expensereport->enabled)) $langs->load("trips");
     if (! empty($conf->don->enabled))			$langs->load("donations");
     if (! empty($conf->loan->enabled))			$langs->load("loan");
    +if (! empty($conf->salaries->enabled))		$langs->load("salaries");
     
     $id=GETPOST('id','int');
     $ref=GETPOST('ref','alpha');
    @@ -215,6 +217,14 @@ print '<td class="titlefield tdtop">'.$langs->trans("Description").'</td><td>';
     print nl2br($object->description);
     print '</td></tr>';
     
    +// Bill time
    +if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_BILL_TIME_SPENT))
    +{
    +	print '<tr><td>'.$langs->trans("BillTime").'</td><td>';
    +	print yn($object->bill_time);
    +	print '</td></tr>';
    +}
    +
     // Categories
     if($conf->categorie->enabled) {
         print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td>';
    @@ -289,7 +299,7 @@ $listofreferent=array(
     	'title'=>"ListSupplierProposalsAssociatedProject",
     	'class'=>'SupplierProposal',
     	'table'=>'supplier_proposal',
    -	'datefieldname'=>'date',
    +	'datefieldname'=>'date_valid',
     	'urlnew'=>DOL_URL_ROOT.'/supplier_proposal/card.php?action=create&projectid='.$id,	// No socid parameter here, the socid is often the customer and we create a supplier object
         'lang'=>'supplier_proposal',
         'buttonnew'=>'AddSupplierProposal',
    @@ -439,6 +449,19 @@ $listofreferent=array(
     	'datefieldname'=>'datem',
     	'disableamount'=>0,
     	'test'=>($conf->stock->enabled && $user->rights->stock->mouvement->lire && ! empty($conf->global->STOCK_MOVEMENT_INTO_PROJECT_OVERVIEW))),
    +'salaries'=>array(
    +	'name'=>"Salaries",
    +	'title'=>"ListSalariesAssociatedProject",
    +	'class'=>'PaymentSalary',
    +	'table'=>'payment_salary',
    +	'datefieldname'=>'datev',
    +	'margin'=>'minus',
    +	'disableamount'=>0,
    +	'urlnew'=>DOL_URL_ROOT.'/compta/salaries/card.php?action=create&projectid='.$id,
    +	'lang'=>'salaries',
    +	'buttonnew'=>'AddSalaryPayment',
    +	'testnew'=>$user->rights->salaries->write,
    +	'test'=>$conf->salaries->enabled && $user->rights->salaries->read),
     'variouspayment'=>array(
     	'name'=>"VariousPayments",
     	'title'=>"ListVariousPaymentsAssociatedProject",
    @@ -474,7 +497,6 @@ $resHook = $hookmanager->executeHooks('completeListOfReferent', $parameters, $ob
     if(!empty($hookmanager->resArray)) {
     
     	$listofreferent = array_merge($listofreferent, $hookmanager->resArray);
    -
     }
     
     if ($action=="addelement")
    @@ -514,10 +536,10 @@ if (! $showdatefilter)
     	print '<input type="hidden" name="action" value="view">';
     	print '<table class="center"><tr>';
     	print '<td>'.$langs->trans("From").' ';
    -	print $form->select_date($dates,'dates',0,0,1,'',1,0,1);
    +	print $form->selectDate($dates, 'dates', 0, 0, 1, '', 1, 0);
     	print '</td>';
     	print '<td>'.$langs->trans("to").' ';
    -	print $form->select_date($datee,'datee',0,0,1,'',1,0,1);
    +	print $form->selectDate($datee, 'datee', 0, 0, 1, '', 1, 0);
     	print '</td>';
     	print '<td>';
     	print '<input type="submit" name="refresh" value="'.$langs->trans("Refresh").'" class="button">';
    @@ -533,11 +555,8 @@ if (! $showdatefilter)
     
     // Show balance for whole project
     
    -$langs->load("suppliers");
    -$langs->load("bills");
    -$langs->load("orders");
    -$langs->load("proposals");
    -$langs->load("margins");
    +$langs->loadLangs(array("suppliers", "bills", "orders", "proposals", "margins"));
    +
     if (!empty($conf->stock->enabled)) $langs->load('stocks');
     
     print load_fiche_titre($langs->trans("Profit"), '', 'title_accountancy');
    @@ -559,11 +578,12 @@ foreach ($listofreferent as $key => $value)
     	$datefieldname=$value['datefieldname'];
     	$qualified=$value['test'];
     	$margin = $value['margin'];
    +	$project_field = $value['project_field'];
     	if ($qualified && isset($margin))		// If this element must be included into profit calculation ($margin is 'minus' or 'plus')
     	{
     		$element = new $classname($db);
     
    -		$elementarray = $object->get_element_list($key, $tablename, $datefieldname, $dates, $datee);
    +		$elementarray = $object->get_element_list($key, $tablename, $datefieldname, $dates, $datee, !empty($project_field)?$project_field:'fk_projet');
     
     		if (count($elementarray)>0 && is_array($elementarray))
     		{
    @@ -674,8 +694,8 @@ foreach ($listofreferent as $key => $value)
     // and the final balance
     print '<tr class="liste_total">';
     print '<td align="right" colspan=2 >'.$langs->trans("Profit").'</td>';
    -print '<td align="right" >'.price($balance_ht).'</td>';
    -print '<td align="right" >'.price($balance_ttc).'</td>';
    +print '<td align="right" >'.price(price2num($balance_ht, 'MT')).'</td>';
    +print '<td align="right" >'.price(price2num($balance_ttc, 'MT')).'</td>';
     print '</tr>';
     
     print "</table>";
    @@ -698,10 +718,11 @@ foreach ($listofreferent as $key => $value)
     	$urlnew=$value['urlnew'];
     	$buttonnew=$value['buttonnew'];
         $testnew=$value['testnew'];
    +	$project_field=$value['project_field'];
    +
     	$exclude_select_element = array('payment_various');
     	if (!empty($value['exclude_select_element'])) $exclude_select_element[] = $value['exclude_select_element'];
     
    -
     	if ($qualified)
     	{
     		// If we want the project task array to have details of users
    @@ -723,7 +744,7 @@ foreach ($listofreferent as $key => $value)
     
            	if (empty($conf->global->PROJECT_LINK_ON_OVERWIEW_DISABLED) && $idtofilterthirdparty && !in_array($tablename,$exclude_select_element))
            	{
    -			$selectList=$formproject->select_element($tablename, $idtofilterthirdparty, 'minwidth300');
    +			$selectList=$formproject->select_element($tablename, $idtofilterthirdparty, 'minwidth300',-2,!empty($project_field)?$project_field:'fk_projet');
     			if (! $selectList || ($selectList<0))
     			{
     				setEventMessages($formproject->error,$formproject->errors,'errors');
    @@ -774,7 +795,7 @@ foreach ($listofreferent as $key => $value)
     		print '<td>';
     		if (in_array($tablename, array('projet_task')) && $key == 'project_task') print '';		// if $key == 'project_task', we don't want details per user
     		elseif (in_array($tablename, array('payment_various'))) print '';						// if $key == 'payment_various', we don't have any thirdparty
    -		elseif (in_array($tablename, array('expensereport_det','don','projet_task','stock_mouvement'))) print $langs->trans("User");
    +		elseif (in_array($tablename, array('expensereport_det','don','projet_task','stock_mouvement','payment_salary'))) print $langs->trans("User");
     		else print $langs->trans("ThirdParty");
     		print '</td>';
     		// Amount HT
    @@ -791,7 +812,7 @@ foreach ($listofreferent as $key => $value)
     		else print '<td align="right" width="200">'.$langs->trans("Status").'</td>';
     		print '</tr>';
     
    -		$elementarray = $object->get_element_list($key, $tablename, $datefieldname, $dates, $datee);
    +		$elementarray = $object->get_element_list($key, $tablename, $datefieldname, $dates, $datee,!empty($project_field)?$project_field:'fk_projet');
     		if (is_array($elementarray) && count($elementarray)>0)
     		{
     			$total_ht = 0;
    @@ -859,7 +880,9 @@ foreach ($listofreferent as $key => $value)
     				{
     					if (empty($conf->global->PROJECT_DISABLE_UNLINK_FROM_OVERVIEW) || $user->admin)		// PROJECT_DISABLE_UNLINK_FROM_OVERVIEW is empty by defaut, so this test true
     					{
    -						print '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $projectid . '&action=unlink&tablename=' . $tablename . '&elementselect=' . $element->id . '">' . img_picto($langs->trans('Unlink'), 'editdelete') . '</a>';
    +						print '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $projectid . '&action=unlink&tablename=' . $tablename . '&elementselect=' . $element->id . '" class="reposition">';
    +						print img_picto($langs->trans('Unlink'), 'unlink');
    +						print '</a>';
     					}
     				}
     				print "</td>\n";
    @@ -872,7 +895,7 @@ foreach ($listofreferent as $key => $value)
     				}
     				else
     				{
    -				    // Show ref with link
    +					// Show ref with link
     					if ($element instanceof Task)
     					{
     						print $element->getNomUrl(1,'withproject','time');
    @@ -882,16 +905,16 @@ foreach ($listofreferent as $key => $value)
     
     					$element_doc = $element->element;
     					$filename=dol_sanitizeFileName($element->ref);
    -					$filedir=$conf->{$element_doc}->dir_output . '/' . dol_sanitizeFileName($element->ref);
    +					$filedir=$conf->{$element_doc}->multidir_output[$element->entity] . '/' . dol_sanitizeFileName($element->ref);
     
     					if ($element_doc === 'order_supplier') {
     						$element_doc='commande_fournisseur';
    -						$filedir = $conf->fournisseur->commande->dir_output.'/'.dol_sanitizeFileName($element->ref);
    +						$filedir = $conf->fournisseur->commande->multidir_output[$element->entity].'/'.dol_sanitizeFileName($element->ref);
     					}
     					else if ($element_doc === 'invoice_supplier') {
     						$element_doc='facture_fournisseur';
     						$filename = get_exdir($element->id,2,0,0,$element,'product').dol_sanitizeFileName($element->ref);
    -						$filedir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($element->id,2,0,0,$element,'invoice_supplier').dol_sanitizeFileName($element->ref);
    +						$filedir = $conf->fournisseur->facture->multidir_output[$element->entity].'/'.get_exdir($element->id,2,0,0,$element,'invoice_supplier').dol_sanitizeFileName($element->ref);
     					}
     
     					print '<div class="inline-block valignmiddle">'.$formfile->getDocumentsLink($element_doc, $filename, $filedir).'</div>';
    @@ -907,6 +930,7 @@ foreach ($listofreferent as $key => $value)
     				$date=''; $total_time_by_line = null;
     				if ($tablename == 'expensereport_det') $date = $element->date;      // No draft status on lines
     				elseif ($tablename == 'stock_mouvement') $date = $element->datem;
    +				elseif ($tablename == 'payment_salary') $date = $element->datev;
     				elseif ($tablename == 'payment_various') $date = $element->datev;
     				elseif ($tablename == 'chargesociales') $date = $element->date_ech;
     				elseif (! empty($element->status) || ! empty($element->statut) || ! empty($element->fk_status))
    @@ -952,6 +976,12 @@ foreach ($listofreferent as $key => $value)
                     	$tmpuser->fetch($expensereport->fk_user_author);
                     	print $tmpuser->getNomUrl(1,'',48);
                     }
    +				else if ($tablename == 'payment_salary')
    +				{
    +					$tmpuser=new User($db);
    +					$tmpuser->fetch($element->fk_user);
    +					print $tmpuser->getNomUrl(1,'',48);
    +				}
     				else if ($tablename == 'don' || $tablename == 'stock_mouvement')
                     {
                     	if ($element->fk_user_author > 0)
    @@ -973,7 +1003,7 @@ foreach ($listofreferent as $key => $value)
     				{
     				    $total_ht_by_line=null;
     				    $othermessage='';
    -					if ($tablename == 'don' || $tablename == 'chargesociales' || $tablename == 'payment_various') $total_ht_by_line=$element->amount;
    +					if ($tablename == 'don' || $tablename == 'chargesociales' || $tablename == 'payment_various' || $tablename == 'payment_salary') $total_ht_by_line=$element->amount;
     					else if($tablename == 'fichinter') $total_ht_by_line=$element->getAmount();
     					elseif ($tablename == 'stock_mouvement') $total_ht_by_line=$element->price*abs($element->qty);
     					elseif (in_array($tablename, array('projet_task')))
    @@ -1014,7 +1044,7 @@ foreach ($listofreferent as $key => $value)
     				if (empty($value['disableamount']))
     				{
     				    $total_ttc_by_line=null;
    -					if ($tablename == 'don' || $tablename == 'chargesociales' || $tablename == 'payment_various') $total_ttc_by_line=$element->amount;
    +					if ($tablename == 'don' || $tablename == 'chargesociales' || $tablename == 'payment_various' || $tablename == 'payment_salary') $total_ttc_by_line=$element->amount;
     					else if($tablename == 'fichinter') $total_ttc_by_line=$element->getAmount();
     					elseif ($tablename == 'stock_mouvement') $total_ttc_by_line=$element->price*abs($element->qty);
     					elseif ($tablename == 'projet_task')
    @@ -1163,10 +1193,8 @@ if ($conf->use_javascript_ajax)
     	print $comboenhancement;
     }
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
     
     
    diff --git a/htdocs/projet/ganttchart.inc.php b/htdocs/projet/ganttchart.inc.php
    index bc85e5bae78..dc76e098b59 100644
    --- a/htdocs/projet/ganttchart.inc.php
    +++ b/htdocs/projet/ganttchart.inc.php
    @@ -271,8 +271,6 @@ function constructGanttLine($tarr, $task, $task_dependencies, $level=0, $project
     
         $s.= "g.AddTaskItem(new JSGantt.TaskItem('".$taskid."', '".dol_escape_js(trim($name))."', '".$start_date."', '".$end_date."', '".$css."', '".$link."', ".$task['task_milestone'].", '".dol_escape_js($resources)."', ".($percent >= 0 ? $percent : 0).", ".$line_is_auto_group.", '".$parent."', 1, '".$dependency."', '".(empty($task["task_is_group"]) ? (($percent >= 0 && $percent != '') ? $percent.'%' : '') : '')."', '".dol_escape_js($note)."', g));";
         echo $s;
    -
    -
     }
     
     /**
    diff --git a/htdocs/projet/ganttview.php b/htdocs/projet/ganttview.php
    index e49eaa2700d..723b96c6b44 100644
    --- a/htdocs/projet/ganttview.php
    +++ b/htdocs/projet/ganttview.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -23,7 +23,7 @@
      *	\brief      Gantt diagramm of a project
      */
     
    -require ("../main.inc.php");
    +require "../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
    @@ -365,7 +365,6 @@ else
     	print '<div class="opacitymedium">'.$langs->trans("NoTasks").'</div>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php
    index 906cb3783f1..e613c5642ad 100644
    --- a/htdocs/projet/index.php
    +++ b/htdocs/projet/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -318,7 +318,6 @@ if (! empty($conf->global->PROJECT_SHOW_PROJECT_LIST_ON_PROJECT_AREA))
     
     print '</div></div></div>';
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/info.php b/htdocs/projet/info.php
    index 4c30fd6c451..d491e55a080 100644
    --- a/htdocs/projet/info.php
    +++ b/htdocs/projet/info.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -18,8 +18,8 @@
     
     /**
      *      \file       htdocs/projet/info.php
    - *      \ingroup    commande
    - *		\brief      Page with info on project
    + *      \ingroup    project
    + *		\brief      Page with events on project
      */
     
     require '../main.inc.php';
    @@ -34,7 +34,7 @@ $langs->load("projects");
     $id     = GETPOST('id','int');
     $ref    = GETPOST('ref','alpha');
     $socid  = GETPOST('socid','int');
    -$action = GETPOST('action','alpha');
    +$action = GETPOST('action','aZ09');
     
     $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
     $sortfield = GETPOST("sortfield","alpha");
    @@ -50,16 +50,15 @@ $pagenext = $page + 1;
     
     if (GETPOST('actioncode','array'))
     {
    -    $actioncode=GETPOST('actioncode','array',3);
    -    if (! count($actioncode)) $actioncode='0';
    +	$actioncode=GETPOST('actioncode','array',3);
    +	if (! count($actioncode)) $actioncode='0';
     }
     else
     {
    -    $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT));
    +	$actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT));
     }
     $search_agenda_label=GETPOST('search_agenda_label');
     
    -
     // Security check
     $id = GETPOST("id",'int');
     $socid=0;
    @@ -71,7 +70,7 @@ if (!$user->rights->projet->lire)	accessforbidden();
     
     
     /*
    - *	Actions
    + * Actions
      */
     
     $parameters=array('id'=>$socid);
    @@ -81,8 +80,8 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
     // Purge search criteria
     if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All test are required to be compatible with all browsers
     {
    -    $actioncode='';
    -    $search_agenda_label='';
    +	$actioncode='';
    +	$search_agenda_label='';
     }
     
     
    @@ -170,7 +169,7 @@ if (! empty($conf->agenda->enabled))
         }
         else
         {
    -        $morehtmlcenter.='<a class="butActionRefused" href="#">'.$langs->trans("AddAction").'</a>';
    +        $morehtmlcenter.='<a class="butActionRefused classfortooltip" href="#">'.$langs->trans("AddAction").'</a>';
         }
     }
     
    @@ -192,6 +191,6 @@ if (!empty($object->id))
         show_actions_done($conf,$langs,$db,$object,null,0,$actioncode, '', $filters, $sortfield, $sortorder);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php
    index 37caf6f4e69..e36a000674b 100644
    --- a/htdocs/projet/list.php
    +++ b/htdocs/projet/list.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Bariley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Cédric Salvador      <csalvador@gpcsolutions.fr>
      * Copyright (C) 2015 	   Claudio Aschieri     <c.aschieri@19.coop>
      * Copyright (C) 2018 	   Ferran Marcet	    <fmarcet@2byte.es>
    @@ -105,7 +105,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('projet');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -128,6 +128,7 @@ $arrayfields=array(
     	'p.fk_opp_status'=>array('label'=>$langs->trans("OpportunityStatusShort"), 'checked'=>1, 'enabled'=>($conf->global->PROJECT_USE_OPPORTUNITIES?1:0), 'position'=>104),
     	'p.opp_percent'=>array('label'=>$langs->trans("OpportunityProbabilityShort"), 'checked'=>1, 'enabled'=>($conf->global->PROJECT_USE_OPPORTUNITIES?1:0), 'position'=>105),
     	'p.budget_amount'=>array('label'=>$langs->trans("Budget"), 'checked'=>0, 'position'=>110),
    +	'p.bill_time'=>array('label'=>$langs->trans("BillTimeShort"), 'checked'=>0, 'position'=>115),
     	'p.datec'=>array('label'=>$langs->trans("DateCreationShort"), 'checked'=>0, 'position'=>500),
     	'p.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
     	'p.fk_statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
    @@ -279,7 +280,7 @@ if (count($listofprojectcontacttype) == 0) $listofprojectcontacttype[0]='0';
     
     $distinct='DISTINCT';   // We add distinct until we are added a protection to be sure a contact of a project and task is only once.
     $sql = "SELECT ".$distinct." p.rowid as id, p.ref, p.title, p.fk_statut, p.fk_opp_status, p.public, p.fk_user_creat";
    -$sql.= ", p.datec as date_creation, p.dateo as date_start, p.datee as date_end, p.opp_amount, p.opp_percent, p.tms as date_update, p.budget_amount";
    +$sql.= ", p.datec as date_creation, p.dateo as date_start, p.datee as date_end, p.opp_amount, p.opp_percent, p.tms as date_update, p.budget_amount, p.bill_time";
     $sql.= ", s.nom as name, s.rowid as socid";
     $sql.= ", cls.code as opp_status_code";
     // We'll need these fields in order to filter by categ
    @@ -352,6 +353,7 @@ if ($search_opp_status)
     	if (is_numeric($search_opp_status) && $search_opp_status > 0) $sql .= " AND p.fk_opp_status = ".$db->escape($search_opp_status);
     	if ($search_opp_status == 'all') $sql .= " AND p.fk_opp_status IS NOT NULL";
     	if ($search_opp_status == 'openedopp') $sql .= " AND p.fk_opp_status IS NOT NULL AND p.fk_opp_status NOT IN (SELECT rowid FROM ".MAIN_DB_PREFIX."c_lead_status WHERE code IN ('WON','LOST'))";
    +	if ($search_opp_status == 'notopenedopp') $sql .= " AND (p.fk_opp_status IS NULL OR p.fk_opp_status IN (SELECT rowid FROM ".MAIN_DB_PREFIX."c_lead_status WHERE code IN ('WON')))";
     	if ($search_opp_status == 'none') $sql .= " AND p.fk_opp_status IS NULL";
     }
     if ($search_public!='') $sql .= " AND p.public = ".$db->escape($search_public);
    @@ -385,9 +387,8 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
     
     $sql.= $db->plimit($limit + 1,$offset);
     
    -//print $sql;
     dol_syslog("list allowed project", LOG_DEBUG);
    -//print $sql;
    +
     $resql = $db->query($sql);
     if (! $resql)
     {
    @@ -424,7 +425,7 @@ if ($search_ref != '') 			$param.='&search_ref='.$search_ref;
     if ($search_label != '') 		$param.='&search_label='.$search_label;
     if ($search_societe != '') 		$param.='&search_societe='.$search_societe;
     if ($search_status >= 0) 		$param.='&search_status='.$search_status;
    -if ((is_numeric($search_opp_status) && $search_opp_status >= 0) || in_array($search_opp_status, array('all','openedopp','none'))) 	    $param.='&search_opp_status='.urlencode($search_opp_status);
    +if ((is_numeric($search_opp_status) && $search_opp_status >= 0) || in_array($search_opp_status, array('all','openedopp','notopenedopp','none'))) 	    $param.='&search_opp_status='.urlencode($search_opp_status);
     if ($search_opp_percent != '') 	$param.='&search_opp_percent='.urlencode($search_opp_percent);
     if ($search_public != '') 		$param.='&search_public='.$search_public;
     if ($search_project_user != '')   $param.='&search_project_user='.$search_project_user;
    @@ -437,6 +438,7 @@ include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
     
     // List of mass actions available
     $arrayofmassactions =  array(
    +	'generate_doc'=>$langs->trans("Generate"),
     //    'presend'=>$langs->trans("SendByMail"),
     //    'builddoc'=>$langs->trans("PDFMerge"),
     );
    @@ -538,18 +540,21 @@ print '<div class="div-table-responsive">';
     print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
     
     print '<tr class="liste_titre_filter">';
    +// Project ref
     if (! empty($arrayfields['p.ref']['checked']))
     {
     	print '<td class="liste_titre">';
     	print '<input type="text" class="flat" name="search_ref" value="'.dol_escape_htmltag($search_ref).'" size="6">';
     	print '</td>';
     }
    +// Project label
     if (! empty($arrayfields['p.title']['checked']))
     {
     	print '<td class="liste_titre">';
     	print '<input type="text" class="flat" name="search_label" size="8" value="'.dol_escape_htmltag($search_label).'">';
     	print '</td>';
     }
    +// Third party
     if (! empty($arrayfields['s.nom']['checked']))
     {
     	print '<td class="liste_titre">';
    @@ -592,6 +597,7 @@ if (! empty($arrayfields['p.public']['checked']))
     	print $form->selectarray('search_public',$array,$search_public);
     	print '</td>';
     }
    +// Opp status
     if (! empty($arrayfields['p.fk_opp_status']['checked']))
     {
     	print '<td class="liste_titre nowrap center">';
    @@ -616,6 +622,12 @@ if (! empty($arrayfields['p.budget_amount']['checked']))
     	print '<input type="text" class="flat" name="search_budget_amount" size="4" value="'.$search_budget_amount.'">';
     	print '</td>';
     }
    +if (! empty($arrayfields['p.bill_time']['checked']))
    +{
    +	print '<td class="liste_titre nowrap" align="right">';
    +	print '';
    +	print '</td>';
    +}
     // Extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
     
    @@ -665,6 +677,7 @@ if (! empty($arrayfields['p.fk_opp_status']['checked'])) print_liste_field_titre
     if (! empty($arrayfields['p.opp_amount']['checked']))    print_liste_field_titre($arrayfields['p.opp_amount']['label'],$_SERVER["PHP_SELF"],'p.opp_amount',"",$param,'align="right"',$sortfield,$sortorder);
     if (! empty($arrayfields['p.opp_percent']['checked']))   print_liste_field_titre($arrayfields['p.opp_percent']['label'],$_SERVER["PHP_SELF"],'p.opp_percent',"",$param,'align="right"',$sortfield,$sortorder);
     if (! empty($arrayfields['p.budget_amount']['checked'])) print_liste_field_titre($arrayfields['p.budget_amount']['label'],$_SERVER["PHP_SELF"],'p.budget_amount',"",$param,'align="right"',$sortfield,$sortorder);
    +if (! empty($arrayfields['p.bill_time']['checked']))     print_liste_field_titre($arrayfields['p.bill_time']['label'],$_SERVER["PHP_SELF"],'p.bill_time',"",$param,'align="right"',$sortfield,$sortorder);
     // Extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
     // Hook fields
    @@ -843,6 +856,17 @@ while ($i < min($num,$limit))
     			if (! $i) $totalarray['nbfield']++;
     			if (! $i) $totalarray['totalbudgetfield']=$totalarray['nbfield'];
     		}
    +		// Bill time
    +		if (! empty($arrayfields['p.bill_time']['checked']))
    +		{
    +			print '<td align="right">';
    +			if ($obj->bill_time)
    +			{
    +				print yn($obj->bill_time);
    +			}
    +			print '</td>';
    +			if (! $i) $totalarray['nbfield']++;
    +		}
     		// Extra fields
     		include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
     		// Fields from hook
    @@ -883,7 +907,6 @@ while ($i < min($num,$limit))
     		if (! $i) $totalarray['nbfield']++;
     
     		print "</tr>\n";
    -
     	}
     
     	$i++;
    @@ -919,7 +942,6 @@ print "</table>\n";
     print '</div>';
     print "</form>\n";
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/note.php b/htdocs/projet/note.php
    index 7a7db5141f4..adbd98c37c8 100644
    --- a/htdocs/projet/note.php
    +++ b/htdocs/projet/note.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010 Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -119,6 +119,6 @@ if ($id > 0 || ! empty($ref))
     	dol_fiche_end();
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/stats/index.php b/htdocs/projet/stats/index.php
    index 38e9bc327bc..831917a76f6 100644
    --- a/htdocs/projet/stats/index.php
    +++ b/htdocs/projet/stats/index.php
    @@ -302,6 +302,7 @@ print '</table>';
     print '</form>';
     print '<br><br>';
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre" height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
    @@ -348,6 +349,7 @@ foreach ($data_all_year as $val)
     }
     
     print '</table>';
    +print '</div>';
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
     
    @@ -373,6 +375,6 @@ print $stringtoshow;
     print '</div></div></div>';
     print '<div style="clear:both"></div>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php
    index 09e067a57fe..fb2399175c2 100644
    --- a/htdocs/projet/tasks.php
    +++ b/htdocs/projet/tasks.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2017 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -23,7 +23,7 @@
      *	\brief      List all tasks of a project
      */
     
    -require ("../main.inc.php");
    +require "../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
    @@ -91,13 +91,14 @@ $planned_workload=$planned_workloadhour*3600+$planned_workloadmin*60;
     $userAccess=0;
     
     
    -$parameters=array('id'=>$id);
    -$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    -if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
     /*
      * Actions
      */
     
    +$parameters=array('id'=>$id);
    +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
     // Purge search criteria
     if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
     {
    @@ -245,7 +246,18 @@ if ($action == 'createtask' && $user->rights->projet->creer)
     			}
     			else
     			{
    -			    setEventMessages($task->error,$task->errors,'errors');
    +				if ($db->lasterrno() == 'DB_ERROR_RECORD_ALREADY_EXISTS')
    +				{
    +					$langs->load("projects");
    +					setEventMessages($langs->trans('NewTaskRefSuggested'),'', 'warnings');
    +					$duplicate_code_error = true;
    +				}
    +				else
    +				{
    +					setEventMessages($task->error,$task->errors,'errors');
    +				}
    +				$action = 'create';
    +				$error++;
     			}
     		}
     
    @@ -404,6 +416,14 @@ if ($id > 0 || ! empty($ref))
         print nl2br($object->description);
         print '</td></tr>';
     
    +    // Bill time
    +    if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_BILL_TIME_SPENT))
    +    {
    +    	print '<tr><td>'.$langs->trans("BillTime").'</td><td>';
    +    	print yn($object->bill_time);
    +    	print '</td></tr>';
    +    }
    +
         // Categories
         if($conf->categorie->enabled) {
             print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td>';
    @@ -430,102 +450,118 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third
     
     	print load_fiche_titre($langs->trans("NewTask"), '', 'title_project');
     
    -	print '<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
    -	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print '<input type="hidden" name="action" value="createtask">';
    -	print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
    -	if (! empty($object->id)) print '<input type="hidden" name="id" value="'.$object->id.'">';
    -
    -	dol_fiche_head('');
    -
    -	print '<table class="border" width="100%">';
    -
    -	$defaultref='';
    -	$obj = empty($conf->global->PROJECT_TASK_ADDON)?'mod_task_simple':$conf->global->PROJECT_TASK_ADDON;
    -	if (! empty($conf->global->PROJECT_TASK_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/core/modules/project/task/".$conf->global->PROJECT_TASK_ADDON.".php"))
    +	if ($object->statut == Project::STATUS_CLOSED)
     	{
    -		require_once DOL_DOCUMENT_ROOT ."/core/modules/project/task/".$conf->global->PROJECT_TASK_ADDON.'.php';
    -		$modTask = new $obj;
    -		$defaultref = $modTask->getNextValue($object->thirdparty,null);
    -	}
    -
    -	if (is_numeric($defaultref) && $defaultref <= 0) $defaultref='';
    -
    -	// Ref
    -	print '<tr><td class="titlefieldcreate"><span class="fieldrequired">'.$langs->trans("Ref").'</span></td><td>';
    -	print ($_POST["ref"]?$_POST["ref"]:$defaultref);
    -	print '<input type="hidden" name="taskref" value="'.($_POST["ref"]?$_POST["ref"]:$defaultref).'">';
    -	print '</td></tr>';
    -
    -	print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td>';
    -	print '<input type="text" name="label" autofocus class="minwidth500" value="'.$label.'">';
    -	print '</td></tr>';
    -
    -	// List of projects
    -	print '<tr><td class="fieldrequired">'.$langs->trans("ChildOfProjectTask").'</td><td>';
    -	print $formother->selectProjectTasks(GETPOST('task_parent'), $projectid?$projectid:$object->id, 'task_parent', 0, 0, 1, 1, 0, '0,1', 'maxwidth500');
    -	print '</td></tr>';
    -
    -	print '<tr><td>'.$langs->trans("AffectedTo").'</td><td>';
    -	$contactsofproject=(! empty($object->id)?$object->getListContactId('internal'):'');
    -	if (is_array($contactsofproject) && count($contactsofproject))
    -	{
    -		print $form->select_dolusers($user->id, 'userid', 0, '', 0, '', $contactsofproject, 0, 0, 0, '', 0, '', 'maxwidth300');
    +		print '<div class="warning">';
    +		$langs->load("errors");
    +		print $langs->trans("WarningProjectClosed");
    +		print '</div>';
     	}
     	else
     	{
    -		print $langs->trans("NoUserAssignedToTheProject");
    +		print '<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
    +		print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +		print '<input type="hidden" name="action" value="createtask">';
    +		print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
    +		if (! empty($object->id)) print '<input type="hidden" name="id" value="'.$object->id.'">';
    +
    +		dol_fiche_head('');
    +
    +		print '<table class="border" width="100%">';
    +
    +		$defaultref='';
    +		$obj = empty($conf->global->PROJECT_TASK_ADDON)?'mod_task_simple':$conf->global->PROJECT_TASK_ADDON;
    +		if (! empty($conf->global->PROJECT_TASK_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/core/modules/project/task/".$conf->global->PROJECT_TASK_ADDON.".php"))
    +		{
    +			require_once DOL_DOCUMENT_ROOT ."/core/modules/project/task/".$conf->global->PROJECT_TASK_ADDON.'.php';
    +			$modTask = new $obj;
    +			$defaultref = $modTask->getNextValue($object->thirdparty,null);
    +		}
    +
    +		if (is_numeric($defaultref) && $defaultref <= 0) $defaultref='';
    +
    +		// Ref
    +		print '<tr><td class="titlefieldcreate"><span class="fieldrequired">'.$langs->trans("Ref").'</span></td><td>';
    +		if (empty($duplicate_code_error))
    +		{
    +			print (GETPOSTISSET("ref")?GETPOST("ref",'alpha'):$defaultref);
    +		}
    +		else
    +		{
    +			print $defaultref;
    +		}
    +		print '<input type="hidden" name="taskref" value="'.($_POST["ref"]?$_POST["ref"]:$defaultref).'">';
    +		print '</td></tr>';
    +
    +		print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td>';
    +		print '<input type="text" name="label" autofocus class="minwidth500" value="'.$label.'">';
    +		print '</td></tr>';
    +
    +		// List of projects
    +		print '<tr><td class="fieldrequired">'.$langs->trans("ChildOfProjectTask").'</td><td>';
    +		print $formother->selectProjectTasks(GETPOST('task_parent'), $projectid?$projectid:$object->id, 'task_parent', 0, 0, 1, 1, 0, '0,1', 'maxwidth500');
    +		print '</td></tr>';
    +
    +		print '<tr><td>'.$langs->trans("AffectedTo").'</td><td>';
    +		$contactsofproject=(! empty($object->id)?$object->getListContactId('internal'):'');
    +		if (is_array($contactsofproject) && count($contactsofproject))
    +		{
    +			print $form->select_dolusers($user->id, 'userid', 0, '', 0, '', $contactsofproject, 0, 0, 0, '', 0, '', 'maxwidth300');
    +		}
    +		else
    +		{
    +			print $langs->trans("NoUserAssignedToTheProject");
    +		}
    +		print '</td></tr>';
    +
    +		// Date start
    +		print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
    +		print $form->selectDate(($date_start?$date_start:''), 'dateo', 1, 1, 0, '', 1, 1);
    +		print '</td></tr>';
    +
    +		// Date end
    +		print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
    +		print $form->selectDate(($date_end?$date_end:-1),'datee', -1, 1, 0, '', 1, 1);
    +		print '</td></tr>';
    +
    +		// Planned workload
    +		print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td>';
    +		print $form->select_duration('planned_workload', $planned_workload?$planned_workload : 0, 0, 'text');
    +		print '</td></tr>';
    +
    +		// Progress
    +		print '<tr><td>'.$langs->trans("ProgressDeclared").'</td><td colspan="3">';
    +		print $formother->select_percent($progress,'progress',0,5,0,100,1);
    +		print '</td></tr>';
    +
    +		// Description
    +		print '<tr><td class="tdtop">'.$langs->trans("Description").'</td>';
    +		print '<td>';
    +		print '<textarea name="description" class="quatrevingtpercent" rows="'.ROWS_4.'">'.$description.'</textarea>';
    +		print '</td></tr>';
    +
    +		// Other options
    +		$parameters=array();
    +		$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$taskstatic,$action); // Note that $action and $object may have been modified by hook
    +	    print $hookmanager->resPrint;
    +
    +	    if (empty($reshook) && ! empty($extrafields_task->attribute_label))
    +		{
    +			print $taskstatic->showOptionals($extrafields_task,'edit');		// Do not use $object here that is object of project
    +		}
    +
    +		print '</table>';
    +
    +		dol_fiche_end();
    +
    +		print '<div align="center">';
    +		print '<input type="submit" class="button" name="add" value="'.$langs->trans("Add").'">';
    +		print ' &nbsp; &nbsp; ';
    +		print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
    +		print '</div>';
    +
    +		print '</form>';
     	}
    -	print '</td></tr>';
    -
    -	// Date start
    -	print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
    -	print $form->select_date(($date_start?$date_start:''),'dateo',1,1,0,'',1,1,1);
    -	print '</td></tr>';
    -
    -	// Date end
    -	print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
    -	print $form->select_date(($date_end?$date_end:-1),'datee',-1,1,0,'',1,1,1);
    -	print '</td></tr>';
    -
    -	// Planned workload
    -	print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td>';
    -	print $form->select_duration('planned_workload', $planned_workload?$planned_workload : 0, 0, 'text');
    -	print '</td></tr>';
    -
    -	// Progress
    -	print '<tr><td>'.$langs->trans("ProgressDeclared").'</td><td colspan="3">';
    -	print $formother->select_percent($progress,'progress',0,5,0,100,1);
    -	print '</td></tr>';
    -
    -	// Description
    -	print '<tr><td class="tdtop">'.$langs->trans("Description").'</td>';
    -	print '<td>';
    -	print '<textarea name="description" class="quatrevingtpercent" rows="'.ROWS_4.'">'.$description.'</textarea>';
    -	print '</td></tr>';
    -
    -	// Other options
    -	$parameters=array();
    -	$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$taskstatic,$action); // Note that $action and $object may have been modified by hook
    -    print $hookmanager->resPrint;
    -
    -    if (empty($reshook) && ! empty($extrafields_task->attribute_label))
    -	{
    -		print $taskstatic->showOptionals($extrafields_task,'edit');		// Do not use $object here that is object of project
    -	}
    -
    -	print '</table>';
    -
    -	dol_fiche_end();
    -
    -	print '<div align="center">';
    -	print '<input type="submit" class="button" name="add" value="'.$langs->trans("Add").'">';
    -	print ' &nbsp; &nbsp; ';
    -	print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
    -	print '</div>';
    -
    -	print '</form>';
    -
     }
     else if ($id > 0 || ! empty($ref))
     {
    @@ -726,6 +762,6 @@ else if ($id > 0 || ! empty($ref))
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/tasks/comment.php b/htdocs/projet/tasks/comment.php
    index cb4888f6335..9bdb1c2cec0 100644
    --- a/htdocs/projet/tasks/comment.php
    +++ b/htdocs/projet/tasks/comment.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -23,7 +23,7 @@
      *	\brief      Page of a project task
      */
     
    -require ("../../main.inc.php");
    +require "../../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
    @@ -275,10 +275,9 @@ if ($id > 0 || ! empty($ref))
     
     		// Include comment tpl view
     		include DOL_DOCUMENT_ROOT . '/core/tpl/bloc_comment.tpl.php';
    -
     	}
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php
    index 21cd32f4514..e6de0743d66 100644
    --- a/htdocs/projet/tasks/contact.php
    +++ b/htdocs/projet/tasks/contact.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2015	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -23,7 +23,7 @@
      *	\brief      Actors of a task
      */
     
    -require ("../../main.inc.php");
    +require "../../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
    @@ -326,7 +326,7 @@ if ($id > 0 || ! empty($ref))
     		dol_fiche_end();
     
     		/*
    -		 * Lignes de contacts
    +		 * Lines of contacts
     		 */
     /*
     		// Contacts lines (modules that overwrite templates must declare this into descriptor)
    @@ -340,22 +340,19 @@ if ($id > 0 || ! empty($ref))
     
     		/*
     		 * Add a new contact line
    -		 * Non affiche en mode modification de ligne
     		 */
     		print '<table class="noborder" width="100%">';
     
     		if ($action != 'editline' && $user->rights->projet->creer)
     		{
     			print '<tr class="liste_titre">';
    -			print '<td>'.$langs->trans("Source").'</td>';
    +			print '<td>'.$langs->trans("Nature").'</td>';
     			print '<td>'.$langs->trans("ThirdParty").'</td>';
    -			print '<td>'.$langs->trans("TaskContact").'</td>';
    +			print '<td>'.$langs->trans("Users").'</td>';
     			print '<td>'.$langs->trans("ContactType").'</td>';
     			print '<td colspan="3">&nbsp;</td>';
     			print "</tr>\n";
     
    -			$var = false;
    -
     			print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$id.'" method="POST">';
     			print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     			print '<input type="hidden" name="action" value="addcontact">';
    @@ -438,7 +435,6 @@ if ($id > 0 || ! empty($ref))
     		print "</tr>\n";
     
     		$companystatic = new Societe($db);
    -		$var = true;
     
     		foreach(array('internal','external') as $source)
     		{
    @@ -448,9 +444,7 @@ if ($id > 0 || ! empty($ref))
     			$i = 0;
     			while ($i < $num)
     			{
    -				$var = !$var;
    -
    -				print '<tr '.$bc[$var].' valign="top">';
    +				print '<tr class="oddeven" valign="top">';
     
     				// Source
     				print '<td align="left">';
    @@ -512,7 +506,7 @@ if ($id > 0 || ! empty($ref))
     				{
     					print '&nbsp;';
     					print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=deleteline&lineid='.$tab[$i]['rowid'].($withproject?'&withproject=1':'').'">';
    -					print img_delete();
    +					print img_picto($langs->trans('Unlink'), 'unlink');
     					print '</a>';
     				}
     				print '</td>';
    @@ -523,7 +517,6 @@ if ($id > 0 || ! empty($ref))
     			}
     		}
     		print "</table>";
    -
     	}
     	else
     	{
    @@ -538,7 +531,6 @@ if (is_object($hookmanager))
     	$reshook=$hookmanager->executeHooks('formContactTpl',$parameters,$object,$action);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/tasks/document.php b/htdocs/projet/tasks/document.php
    index d1e11a196d2..b8ff9a175ab 100644
    --- a/htdocs/projet/tasks/document.php
    +++ b/htdocs/projet/tasks/document.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2012      Florian Henry        <florian.henry@open-concept.pro>
      * Copyright (C) 2013      Cédric Salvador      <csalvador@gpcsolutions.fr>
    @@ -294,7 +294,6 @@ else
     	exit;
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php
    index 14703f6d3eb..e1a77f0b824 100644
    --- a/htdocs/projet/tasks/list.php
    +++ b/htdocs/projet/tasks/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2006-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2010 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2018	   Ferran Marcet        <fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -24,7 +24,7 @@
      *	\brief      List all task of a project
      */
     
    -require ("../../main.inc.php");
    +require "../../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
    @@ -42,7 +42,7 @@ $toselect = GETPOST('toselect', 'array');
     
     $id=GETPOST('id','int');
     
    -$search_all=GETPOST('search_all', 'alphanohtml');
    +$search_all=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml'));
     $search_categ=GETPOST("search_categ",'alpha');
     $search_project=GETPOST('search_project');
     if (! isset($_GET['search_projectstatus']) && ! isset($_POST['search_projectstatus']))
    @@ -79,7 +79,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('projet_task');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // Security check
     $socid=0;
    @@ -336,10 +336,9 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
     }
     
     $sql.= $db->plimit($limit + 1,$offset);
    -//print $sql;
     
     dol_syslog("list allowed project", LOG_DEBUG);
    -//print $sql;
    +
     $resql = $db->query($sql);
     if (! $resql)
     {
    @@ -841,5 +840,6 @@ print '</div>';
     
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/projet/tasks/note.php b/htdocs/projet/tasks/note.php
    index 568114ca3b4..b19d3ed5b0a 100644
    --- a/htdocs/projet/tasks/note.php
    +++ b/htdocs/projet/tasks/note.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -21,7 +21,7 @@
      *	\brief      Page to show information on a task
      */
     
    -require ("../../main.inc.php");
    +require "../../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
    @@ -249,6 +249,6 @@ if ($object->id > 0)
     	dol_fiche_end();
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/projet/tasks/stats/index.php b/htdocs/projet/tasks/stats/index.php
    index fa9ebcf3b52..020a7969a64 100644
    --- a/htdocs/projet/tasks/stats/index.php
    +++ b/htdocs/projet/tasks/stats/index.php
    @@ -167,6 +167,8 @@ print '</table>';
     print '</form>';
     print '<br><br>';
     
    +
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre" height="24">';
     print '<td align="center">'.$langs->trans("Year").'</td>';
    @@ -195,6 +197,7 @@ foreach ($data_all_year as $val)
     }
     
     print '</table>';
    +print '</div>';
     
     print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
     
    @@ -212,6 +215,6 @@ print $stringtoshow;
     print '</div></div></div>';
     print '<div style="clear:both"></div>';
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php
    index 706d0f640de..7b96d2e2ea1 100644
    --- a/htdocs/projet/tasks/task.php
    +++ b/htdocs/projet/tasks/task.php
    @@ -1,7 +1,8 @@
     <?php
     /* Copyright (C) 2005		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@inodbox.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -23,7 +24,7 @@
      *	\brief      Page of a project task
      */
     
    -require ("../../main.inc.php");
    +require "../../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
    @@ -332,12 +333,12 @@ if ($id > 0 || ! empty($ref))
     		}
     		else
     		{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('AddTask').'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotOwnerOfProject").'">'.$langs->trans('AddTask').'</a>';
     		}
     		}
     		else
     		{
    -		print '<a class="butActionRefused" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans('AddTask').'</a>';
    +		print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans('AddTask').'</a>';
     		}
     
     		print '</div>';
    @@ -390,12 +391,12 @@ if ($id > 0 || ! empty($ref))
     
     			// Date start
     			print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
    -			print $form->select_date($object->date_start,'dateo',1,1,0,'',1,0,1);
    +			print $form->selectDate($object->date_start, 'dateo', 1, 1, 0, '', 1, 0);
     			print '</td></tr>';
     
     			// Date end
     			print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
    -			print $form->select_date($object->date_end?$object->date_end:-1,'datee',1,1,0,'',1,0,1);
    +			print $form->selectDate($object->date_end?$object->date_end:-1, 'datee', 1, 1, 0, '', 1, 0);
     			print '</td></tr>';
     
     			// Planned workload
    @@ -579,7 +580,7 @@ if ($id > 0 || ! empty($ref))
     				}
     				else
     				{
    -					print '<a class="butActionRefused" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans('Modify').'</a>';
    +					print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans('Modify').'</a>';
     				}
     
     				// Delete
    @@ -591,12 +592,12 @@ if ($id > 0 || ! empty($ref))
     				    }
     				    else
     				    {
    -				        print '<a class="butActionRefused" href="#" title="'.$langs->trans("TaskHasChild").'">'.$langs->trans('Delete').'</a>';
    +				        print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("TaskHasChild").'">'.$langs->trans('Delete').'</a>';
     				    }
     				}
     				else
     				{
    -					print '<a class="butActionRefused" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans('Delete').'</a>';
    +					print '<a class="butActionRefused classfortooltip" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans('Delete').'</a>';
     				}
     
     				print '</div>';
    @@ -628,6 +629,6 @@ if ($id > 0 || ! empty($ref))
     	}
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php
    index ca53c373184..e2b00923eef 100644
    --- a/htdocs/projet/tasks/time.php
    +++ b/htdocs/projet/tasks/time.php
    @@ -1,9 +1,10 @@
     <?php
     /* Copyright (C) 2005		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2018	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2018		Ferran Marcet			<fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -36,14 +37,19 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
     // Load translation files required by the page
     $langs->load('projects');
     
    -$id=GETPOST('id','int');
    -$projectid=GETPOST('projectid','int');
    -$ref=GETPOST('ref','alpha');
    -$action=GETPOST('action','alpha');
    -$confirm=GETPOST('confirm','alpha');
    -$cancel=GETPOST('cancel','alpha');
    -$withproject=GETPOST('withproject','int');
    -$project_ref=GETPOST('project_ref','alpha');
    +$action     = GETPOST('action','alpha');
    +$massaction = GETPOST('massaction','alpha');											// The bulk action (combo box choice into lists)
    +$confirm    = GETPOST('confirm','alpha');
    +$cancel     = GETPOST('cancel','alpha');
    +$toselect   = GETPOST('toselect', 'array');												// Array of ids of elements selected into a list
    +$contextpage= GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'myobjectlist';   // To manage different context of search
    +$backtopage = GETPOST('backtopage','alpha');											// Go back to a dedicated page
    +
    +$id         = GETPOST('id','int');
    +$projectid  = GETPOST('projectid','int');
    +$ref        = GETPOST('ref','alpha');
    +$withproject= GETPOST('withproject','int');
    +$project_ref= GETPOST('project_ref','alpha');
     
     $search_day=GETPOST('search_day','int');
     $search_month=GETPOST('search_month','int');
    @@ -56,6 +62,7 @@ $search_value=GETPOST('search_value','int');
     $search_task_ref=GETPOST('search_task_ref','alpha');
     $search_task_label=GETPOST('search_task_label','alpha');
     $search_user=GETPOST('search_user','int');
    +$search_valuebilled=GETPOST('search_valuebilled', 'int');
     
     // Security check
     $socid=0;
    @@ -115,6 +122,7 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
         $search_task_ref='';
         $search_task_label='';
         $search_user=0;
    +    $search_valuebilled='';
         $toselect='';
         $search_array_options=array();
         $action='';
    @@ -160,7 +168,7 @@ if ($action == 'addtimespent' && $user->rights->projet->lire)
     			$object->timespent_note = $_POST["timespent_note"];
     			if (GETPOST('progress', 'int') > 0) $object->progress = GETPOST('progress', 'int');		// If progress is -1 (not defined), we do not change value
     			$object->timespent_duration = $_POST["timespent_durationhour"]*60*60;	// We store duration in seconds
    -			$object->timespent_duration+= $_POST["timespent_durationmin"]*60;		// We store duration in seconds
    +			$object->timespent_duration+= ($_POST["timespent_durationmin"]?$_POST["timespent_durationmin"]:0)*60;   // We store duration in seconds
     	        if (GETPOST("timehour") != '' && GETPOST("timehour") >= 0)	// If hour was entered
     	        {
     				$object->timespent_date = dol_mktime(GETPOST("timehour"),GETPOST("timemin"),0,GETPOST("timemonth"),GETPOST("timeday"),GETPOST("timeyear"));
    @@ -190,7 +198,7 @@ if ($action == 'addtimespent' && $user->rights->projet->lire)
     	}
     }
     
    -if ($action == 'updateline' && ! $_POST["cancel"] && $user->rights->projet->lire)
    +if (($action == 'updateline' || $action == 'updatesplitline') && ! $_POST["cancel"] && $user->rights->projet->lire)
     {
     	$error=0;
     
    @@ -277,16 +285,24 @@ if (! empty($project_ref) && ! empty($withproject))
     
     // To show all time lines for project
     $projectidforalltimes=0;
    -if (GETPOST('projectid','none'))
    +if (GETPOST('projectid','int'))
     {
     	$projectidforalltimes=GETPOST('projectid','int');
     }
    +elseif (GETPOST('project_ref','alpha'))
    +{
    +    $projectstatic->fetch(0, GETPOST('project_ref','alpha'));
    +    $projectidforalltimes=$projectstatic->id;
    +    $withproject=1;
    +}
     
     
     /*
      * View
      */
     
    +$arrayofselected=is_array($toselect)?$toselect:array();
    +
     llxHeader("",$langs->trans("Task"));
     
     $form = new Form($db);
    @@ -317,6 +333,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
         }
     
         $userWrite = $projectstatic->restrictedProjectArea($user,'write');
    +    $linktocreatetime = '';
     
     	if ($projectstatic->id > 0)
     	{
    @@ -398,8 +415,16 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
                 print nl2br($projectstatic->description);
                 print '</td></tr>';
     
    +            // Bill time
    +            if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_BILL_TIME_SPENT))
    +            {
    +	            print '<tr><td>'.$langs->trans("BillTime").'</td><td>';
    +	            print yn($projectstatic->bill_time);
    +	            print '</td></tr>';
    +            }
    +
                 // Categories
    -            if($conf->categorie->enabled) {
    +            if ($conf->categorie->enabled) {
                     print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td>';
                     print $form->showCategories($projectstatic->id,'project',1);
                     print "</td></tr>";
    @@ -416,6 +441,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     			dol_fiche_end();
     
     			print '<br>';
    +		}
     
     			// Link to create time
     			//if ((empty($id) && empty($ref)) || ! empty($projectidforalltimes))
    @@ -427,12 +453,12 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
         			    	if (! empty($projectidforalltimes))		// We are on tab 'Time Spent' of project
         			    	{
         			    		$backtourl = $_SERVER['PHP_SELF'].'?projectid='.$projectstatic->id.($withproject?'&withproject=1':'');
    -    			    		$linktocreatetime = '<a class="butActionNew" href="'.$_SERVER['PHP_SELF'].'?withproject=1&projectid='.$projectstatic->id.'&action=createtime'.$param.'&backtopage='.urlencode($backtourl).'">'.$langs->trans('AddTimeSpent').'<span class="fa fa-plus-circle valignmiddle"></span></a>';
    +    			    		$linktocreatetime = '<a class="butActionNew" href="'.$_SERVER['PHP_SELF'].'?'.($withproject?'withproject=1':'').'&projectid='.$projectstatic->id.'&action=createtime'.$param.'&backtopage='.urlencode($backtourl).'">'.$langs->trans('AddTimeSpent').'<span class="fa fa-plus-circle valignmiddle"></span></a>';
         			    	}
         			    	else									// We are on tab 'Time Spent' of task
         			    	{
         			    		$backtourl = $_SERVER['PHP_SELF'].'?id='.$object->id.($withproject?'&withproject=1':'');
    -    			    		$linktocreatetime = '<a class="butActionNew" href="'.$_SERVER['PHP_SELF'].'?withproject=1'.($object->id > 0 ? '&id='.$object->id : '&projectid='.$projectstatic->id).'&action=createtime'.$param.'&backtopage='.urlencode($backtourl).'">'.$langs->trans('AddTimeSpent').'<span class="fa fa-plus-circle valignmiddle"></span></a>';
    +    			    		$linktocreatetime = '<a class="butActionNew" href="'.$_SERVER['PHP_SELF'].'?'.($withproject?'withproject=1':'').($object->id > 0 ? '&id='.$object->id : '&projectid='.$projectstatic->id).'&action=createtime'.$param.'&backtopage='.urlencode($backtourl).'">'.$langs->trans('AddTimeSpent').'<span class="fa fa-plus-circle valignmiddle"></span></a>';
         			    	}
         			    }
         			    else
    @@ -445,7 +471,6 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
         				$linktocreatetime = '<a class="butActionNewRefused" href="#" title="'.$langs->trans("NotEnoughPermissions").'">'.$langs->trans('AddTime').'<span class="fa fa-plus-circle valignmiddle"></span></a>';
         			}
     			//}
    -		}
     	}
     
     	if (empty($projectidforalltimes))
    @@ -506,7 +531,10 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     
     		// Planned workload
     		print '<tr><td>'.$langs->trans("PlannedWorkload").'</td><td>';
    -		print convertSecondToTime($object->planned_workload,'allhourmin');
    +		if ($object->planned_workload)
    +		{
    +			print convertSecondToTime($object->planned_workload,'allhourmin');
    +		}
     		print '</td></tr>';
     
     		print '</table>';
    @@ -519,7 +547,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     
     		// Progress declared
     		print '<tr><td class="titlefield">'.$langs->trans("ProgressDeclared").'</td><td>';
    -		print $object->progress.' %';
    +		print $object->progress != '' ? $object->progress.' %' : '';
     		print '</td></tr>';
     
     		// Progress calculated
    @@ -531,7 +559,9 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     			else print '0 %';
     		}
     		else print '<span class="opacitymedium">'.$langs->trans("WorkloadNotDefined").'</span>';
    -		print '</td></tr>';
    +		print '</td>';
    +
    +		print '</tr>';
     
     		print '</table>';
     
    @@ -546,7 +576,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     		print '<!-- List of time spent for task -->'."\n";
     
     		$title=$langs->trans("ListTaskTimeForTask");
    -		//print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $linktotasks, $num, $totalnboflines, 'title_generic.png', 0, '', '', 0, 1);
    +		//print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $linktotasks, $num, $nbtotalofrecords, 'title_generic.png', 0, '', '', 0, 1);
     		print load_fiche_titre($title, $linktocreatetime, 'title_generic.png');
     
     		/*
    @@ -580,7 +610,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     			print '<td class="maxwidthonsmartphone">';
     			//$newdate=dol_mktime(12,0,0,$_POST["timemonth"],$_POST["timeday"],$_POST["timeyear"]);
     			$newdate='';
    -			print $form->select_date($newdate, 'time', ($conf->browser->layout == 'phone'?2:1), 1, 2, "timespent_date", 1, 0, 1);
    +			print $form->selectDate($newdate, 'time', ($conf->browser->layout == 'phone'?2:1), 1, 2, "timespent_date", 1, 0);
     			print '</td>';
     
     			// Contributor
    @@ -652,7 +682,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     	    $arrayfields['t.note']=array('label'=>$langs->trans("Note"), 'checked'=>1);
     	    $arrayfields['t.task_duration']=array('label'=>$langs->trans("Duration"), 'checked'=>1);
     	    $arrayfields['value'] =array('label'=>$langs->trans("Value"), 'checked'=>1, 'enabled'=>(empty($conf->salaries->enabled)?0:1));
    -	    $arrayfields['valuebilled'] =array('label'=>$langs->trans("AmountInvoiced"), 'checked'=>1, 'enabled'=>(empty($conf->global->PROJECT_BILL_TIME_SPENT)?0:1));
    +	    $arrayfields['valuebilled'] =array('label'=>$langs->trans("Billed"), 'checked'=>1, 'enabled'=>((! empty($conf->global->PROJECT_HIDE_TASKS) || empty($conf->global->PROJECT_BILL_TIME_SPENT))?0:1));
     	    // Extra fields
     	    if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
     	    {
    @@ -662,6 +692,52 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     	        }
     	    }
     
    +	    if (! empty($withproject) && $projectstatic->bill_time)
    +	    {
    +	        $arrayofmassactions =  array(
    +    	        'generateinvoice'=>$langs->trans("GenerateInvoice"),
    +    	        //'builddoc'=>$langs->trans("PDFMerge"),
    +    	    );
    +    	    //if ($user->rights->projet->creer) $arrayofmassactions['predelete']=$langs->trans("Delete");
    +    	    if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    +    	    $massactionbutton=$form->selectMassAction('', $arrayofmassactions);
    +	    }
    +
    +	    $param='';
    +	    if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
    +	    if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
    +	    if ($search_month > 0) $param.= '&search_month='.urlencode($search_month);
    +	    if ($search_year > 0) $param.= '&search_year='.urlencode($search_year);
    +	    if ($search_user > 0) $param.= '&search_user='.urlencode($search_user);
    +	    if ($search_task_ref != '') $param.= '&search_task_ref='.urlencode($search_task_ref);
    +	    if ($search_task_label != '') $param.= '&search_task_label='.urlencode($search_task_label);
    +	    if ($search_note != '') $param.= '&search_note='.urlencode($search_note);
    +	    if ($search_duration != '') $param.= '&amp;search_field2='.urlencode($search_duration);
    +	    if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss);
    +	    /*
    +	     // Add $param from extra fields
    +	     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
    +	     */
    +	    if ($id) $param.='&id='.urlencode($id);
    +	    if ($projectid) $param.='&projectid='.urlencode($projectid);
    +	    if ($withproject) $param.='&withproject='.urlencode($withproject);
    +
    +	    print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    +	    if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
    +	    print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +	    print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    +	    if ($action == 'editline') print '<input type="hidden" name="action" value="updateline">';
    +	    elseif ($action == 'splitline') print '<input type="hidden" name="action" value="updatesplitline">';
    +	    elseif ($action == 'createtime' && empty($id) && $user->rights->projet->lire) print '<input type="hidden" name="action" value="addtimespent">';
    +	    else print '<input type="hidden" name="action" value="list">';
    +	    print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
    +	    print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
    +	    print '<input type="hidden" name="page" value="'.$page.'">';
    +
    +	    print '<input type="hidden" name="id" value="'.$id.'">';
    +	    print '<input type="hidden" name="projectid" value="'.$projectidforalltimes.'">';
    +	    print '<input type="hidden" name="withproject" value="'.$withproject.'">';
    +
     		/*
     		 *  List of time spent
     		 */
    @@ -669,11 +745,12 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     
     		$sql = "SELECT t.rowid, t.fk_task, t.task_date, t.task_datehour, t.task_date_withhour, t.task_duration, t.fk_user, t.note, t.thm,";
     		$sql .= " pt.ref, pt.label,";
    -		$sql .= " u.lastname, u.firstname, u.login, u.photo,";
    -		$sql .= " il.fk_facture as invoice_id, il.total_ht";
    +		$sql .= " u.lastname, u.firstname, u.login, u.photo, u.statut as user_status,";
    +		$sql .= " il.fk_facture as invoice_id, inv.fk_statut";
     		$sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t";
     		$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."facturedet as il ON il.rowid = t.invoice_line_id";
    -		$sql .= ", ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."user as u";
    +		$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."facture as inv ON inv.rowid = il.fk_facture,";
    +		$sql .= " ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."user as u";
     		$sql .= " WHERE t.fk_user = u.rowid AND t.fk_task = pt.rowid";
     		if (empty($projectidforalltimes)) $sql .= " AND t.fk_task =".$object->id;
     		else $sql.= " AND pt.fk_projet IN (".$projectidforalltimes.")";
    @@ -682,6 +759,8 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     		if ($search_task_ref) $sql .= natural_search('pt.ref', $search_task_ref);
     		if ($search_task_label) $sql .= natural_search('pt.label', $search_task_label);
     		if ($search_user > 0) $sql .= natural_search('t.fk_user', $search_user);
    +		if ($search_valuebilled == '1') $sql .= ' AND t.invoice_id > 0';
    +		if ($search_valuebilled == '0') $sql .= ' AND (t.invoice_id = 0 OR t.invoice_id IS NULL)';
     		if ($search_month > 0)
     		{
     			if ($search_year > 0 && empty($search_day))
    @@ -695,23 +774,49 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     		{
     			$sql.= " AND t.task_datehour BETWEEN '".$db->idate(dol_get_first_day($search_year,1,false))."' AND '".$db->idate(dol_get_last_day($search_year,12,false))."'";
     		}
    -
    +        //$sql .= ' GROUP BY t.rowid, t.fk_task, t.task_date, t.task_datehour, t.task_date_withhour, t.task_duration, t.fk_user, t.note, t.thm, pt.ref, pt.label, u.lastname, u.firstname, u.login, u.photo, u.statut, il.fk_facture';
     		$sql .= $db->order($sortfield, $sortorder);
     
    -		$resql = $db->query($sql);
    -		if ($resql)
    +		// Count total nb of records
    +		$nbtotalofrecords = '';
    +		if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
     		{
    -			$num = $db->num_rows($resql);
    -			$totalnboflines=$num;
    +		    $resql = $db->query($sql);
    +		    $nbtotalofrecords = $db->num_rows($resql);
    +		    if (($page * $limit) > $nbtotalofrecords)	// if total of record found is smaller than page * limit, goto and load page 0
    +		    {
    +		        $page = 0;
    +		        $offset = 0;
    +		    }
    +		}
    +		// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set.
    +		if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords)
    +		{
    +		    $num = $nbtotalofrecords;
    +		}
    +		else
    +		{
    +		    $sql.= $db->plimit($limit+1, $offset);
     
    +		    $resql=$db->query($sql);
    +		    if (! $resql)
    +		    {
    +		        dol_print_error($db);
    +		        exit;
    +		    }
    +
    +		    $num = $db->num_rows($resql);
    +		}
    +
    +		if ($num >= 0)
    +		{
     			if (! empty($projectidforalltimes))
     			{
     				print '<!-- List of time spent for project -->'."\n";
     
     				$title=$langs->trans("ListTaskTimeUserProject");
    -			    //$linktotasks='<a href="'.DOL_URL_ROOT.'/projet/tasks.php?id='.$projectstatic->id.'">'.$langs->trans("GoToListOfTasks").'</a>';
    -			    //print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $linktotasks, $num, $totalnboflines, 'title_generic.png', 0, '', '', 0, 1);
    -			    print load_fiche_titre($title, $linktocreatetime, 'title_generic.png');
    +
    +				print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_generic', 0, $linktocreatetime, '', $limit);
     			}
     
     			$i = 0;
    @@ -728,18 +833,12 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     			dol_print_error($db);
     		}
     
    -
     		/*
     		 * Form to add time spent
     		 */
     		if ($action == 'createtime' && empty($id) && $user->rights->projet->lire)
     		{
    -			print '<!-- form to add time spent -->'."\n";
    -			print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    -			print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -			print '<input type="hidden" name="action" value="addtimespent">';
    -			print '<input type="hidden" name="projectid" value="'.$projectstatic->id.'">';
    -			print '<input type="hidden" name="withproject" value="'.$withproject.'">';
    +			print '<!-- table to add time spent -->'."\n";
     
     			print '<table class="noborder nohover" width="100%">';
     
    @@ -750,6 +849,10 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     			print '<td>'.$langs->trans("Note").'</td>';
     			print '<td>'.$langs->trans("NewTimeSpent").'</td>';
     			print '<td>'.$langs->trans("ProgressDeclared").'</td>';
    +			if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_BILL_TIME_SPENT))
    +			{
    +			    print '<td></td>';
    +			}
     			print '<td></td>';
     			print "</tr>\n";
     
    @@ -759,7 +862,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     			print '<td class="maxwidthonsmartphone">';
     			//$newdate=dol_mktime(12,0,0,$_POST["timemonth"],$_POST["timeday"],$_POST["timeyear"]);
     			$newdate='';
    -			print $form->select_date($newdate, 'time', ($conf->browser->layout == 'phone'?2:1), 1, 2, "timespent_date", 1, 0, 1);
    +			print $form->selectDate($newdate, 'time', ($conf->browser->layout == 'phone'?2:1), 1, 2, "timespent_date", 1, 0);
     			print '</td>';
     
     			// Task
    @@ -799,63 +902,24 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     			print $formother->select_percent(GETPOST('progress')?GETPOST('progress'):$object->progress, 'progress', 0, 5, 0, 100, 1);
     			print '</td>';
     
    +			// Invoiced
    +			if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_BILL_TIME_SPENT))
    +			{
    +			    print '<td>';
    +			    print '</td>';
    +			}
    +
     			print '<td align="center">';
     			print '<input type="submit" name="save" class="button" value="'.$langs->trans("Add").'">';
     			print ' &nbsp; ';
     			print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';
     			print '</td></tr>';
     
    -			print '</table></form>';
    +			print '</table>';
     
     			print '<br>';
     		}
     
    -
    -		$arrayofselected=is_array($toselect)?$toselect:array();
    -
    -		$param='';
    -		if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    -		if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    -		if ($search_month > 0) $param.= '&search_month='.urlencode($search_month);
    -		if ($search_year > 0) $param.= '&search_year='.urlencode($search_year);
    -		if ($search_user > 0) $param.= '&search_user='.urlencode($search_user);
    -		if ($search_task_ref != '') $param.= '&search_task_ref='.urlencode($search_task_ref);
    -		if ($search_task_label != '') $param.= '&search_task_label='.urlencode($search_task_label);
    -		if ($search_note != '') $param.= '&search_note='.urlencode($search_note);
    -		if ($search_duration != '') $param.= '&amp;search_field2='.urlencode($search_duration);
    -		if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss);
    -		/*
    -		// Add $param from extra fields
    -		include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
    -		*/
    -		if ($id) $param.='&id='.urlencode($id);
    -		if ($projectid) $param.='&projectid='.urlencode($projectid);
    -		if ($withproject) $param.='&withproject='.urlencode($withproject);
    -
    -
    -		$arrayofmassactions =  array(
    -		    //'presend'=>$langs->trans("SendByMail"),
    -		    //'builddoc'=>$langs->trans("PDFMerge"),
    -		);
    -		//if ($user->rights->projet->creer) $arrayofmassactions['predelete']=$langs->trans("Delete");
    -		if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    -		$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
    -
    -
    -		print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id='.$id.'">';
    -        if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
    -		print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	    print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    -		if ($action == 'editline') print '<input type="hidden" name="action" value="updateline">';
    -		else print '<input type="hidden" name="action" value="list">';
    -	    print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
    -	    print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
    -	    print '<input type="hidden" name="page" value="'.$page.'">';
    -
    -		print '<input type="hidden" name="id" value="'.$id.'">';
    -		print '<input type="hidden" name="projectid" value="'.$projectidforalltimes.'">';
    -		print '<input type="hidden" name="withproject" value="'.$withproject.'">';
    -
     		$moreforfilter = '';
     
     		$parameters=array();
    @@ -872,6 +936,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     
     		$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
     		$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
    +		$selectedfields.=(count($arrayofmassactions) ? $form->showCheckAddButtons('checkforselect', 1) : '');
     
             print '<div class="div-table-responsive">';
     		print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
    @@ -901,7 +966,8 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     		// Value in main currency
             if (! empty($arrayfields['value']['checked'])) print '<td class="liste_titre"></td>';
             // Value billed
    -        if (! empty($arrayfields['valuebilled']['checked'])) print '<td class="liste_titre"></td>';
    +        if (! empty($arrayfields['valuebilled']['checked'])) print '<td class="liste_titre center">'.$form->selectyesno('search_valuebilled', $search_valuebilled, 1, false, 1).'</td>';
    +
             /*
     		// Extra fields
     		include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
    @@ -912,7 +978,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     		print $hookmanager->resPrint;
     		// Action column
     		print '<td class="liste_titre center">';
    -		$searchpicto=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
    +		$searchpicto=$form->showFilterButtons();
     		print $searchpicto;
     		print '</td>';
     		print '</tr>'."\n";
    @@ -928,7 +994,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     		if (! empty($arrayfields['t.note']['checked']))           print_liste_field_titre($arrayfields['t.note']['label'],$_SERVER['PHP_SELF'],'t.note','',$param,'',$sortfield,$sortorder);
     		if (! empty($arrayfields['t.task_duration']['checked']))  print_liste_field_titre($arrayfields['t.task_duration']['label'],$_SERVER['PHP_SELF'],'t.task_duration','',$param,'align="right"',$sortfield,$sortorder);
     		if (! empty($arrayfields['value']['checked']))            print_liste_field_titre($arrayfields['value']['label'],$_SERVER['PHP_SELF'],'','',$param,'align="right"',$sortfield,$sortorder);
    -		if (! empty($arrayfields['valuebilled']['checked']))      print_liste_field_titre($arrayfields['valuebilled']['label'],$_SERVER['PHP_SELF'],'il.total_ht','',$param,'align="right"',$sortfield,$sortorder);
    +		if (! empty($arrayfields['valuebilled']['checked']))      print_liste_field_titre($arrayfields['valuebilled']['label'],$_SERVER['PHP_SELF'],'il.total_ht','',$param,'align="center"',$sortfield,$sortorder);
     		/*
         	// Extra fields
     		include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
    @@ -951,6 +1017,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     		$totalarray=array();
     		foreach ($tasks as $task_time)
     		{
    +		    if ($i >= $limit) break;
     
     			print '<tr class="oddeven">';
     
    @@ -961,13 +1028,13 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     			if (! empty($arrayfields['t.task_date']['checked']))
     			{
         			print '<td class="nowrap">';
    -    			if ($_GET['action'] == 'editline' && $_GET['lineid'] == $task_time->rowid)
    +    			if ($action == 'editline' && $_GET['lineid'] == $task_time->rowid)
         			{
         				if (empty($task_time->task_date_withhour))
         				{
    -    					print $form->select_date(($date2?$date2:$date1),'timeline',3,3,2,"timespent_date",1,0,1);
    +    					print $form->selectDate(($date2?$date2:$date1), 'timeline', 3, 3, 2, "timespent_date", 1, 0);
         				}
    -    				else print $form->select_date(($date2?$date2:$date1),'timeline',1,1,2,"timespent_date",1,0,1);
    +    				else print $form->selectDate(($date2?$date2:$date1), 'timeline', 1, 1, 2, "timespent_date", 1, 0);
         			}
         			else
         			{
    @@ -1008,7 +1075,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
                 if (! empty($arrayfields['author']['checked']))
                 {
                     print '<td>';
    -    			if ($_GET['action'] == 'editline' && $_GET['lineid'] == $task_time->rowid)
    +    			if ($action == 'editline' && $_GET['lineid'] == $task_time->rowid)
         			{
     			        if (empty($object->id)) $object->fetch($id);
         			    $contactsoftask=$object->getListContactId('internal');
    @@ -1028,6 +1095,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
         				$userstatic->lastname	= $task_time->lastname;
         				$userstatic->firstname 	= $task_time->firstname;
         				$userstatic->photo      = $task_time->photo;
    +    				$userstatic->statut     = $task_time->user_status;
         				print $userstatic->getNomUrl(-1);
         			}
         			print '</td>';
    @@ -1038,7 +1106,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
                 if (! empty($arrayfields['t.note']['checked']))
                 {
                     print '<td align="left">';
    -    			if ($_GET['action'] == 'editline' && $_GET['lineid'] == $task_time->rowid)
    +    			if ($action == 'editline' && $_GET['lineid'] == $task_time->rowid)
         			{
         				print '<textarea name="timespent_note_line" width="95%" rows="'.ROWS_2.'">'.$task_time->note.'</textarea>';
         			}
    @@ -1049,12 +1117,16 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
         			print '</td>';
         			if (! $i) $totalarray['nbfield']++;
                 }
    +            elseif ($action == 'editline' && $_GET['lineid'] == $task_time->rowid)
    +            {
    +                print '<input type="hidden" name="timespent_note_line" value="'.$task_time->note.'">';
    +            }
     
     			// Time spent
                 if (! empty($arrayfields['t.task_duration']['checked']))
                 {
         			print '<td align="right">';
    -    			if ($_GET['action'] == 'editline' && $_GET['lineid'] == $task_time->rowid)
    +    			if ($action == 'editline' && $_GET['lineid'] == $task_time->rowid)
         			{
         				print '<input type="hidden" name="old_duration" value="'.$task_time->task_duration.'">';
         				print $form->select_duration('new_duration',$task_time->task_duration,0,'text');
    @@ -1081,15 +1153,32 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
         			$totalarray['totalvalue'] += $value;
                 }
     
    -            // Value billed
    +            // Invoiced - Value billed
                 if (! empty($arrayfields['valuebilled']['checked']))
                 {
    -            	print '<td align="right">';
    -            	$valuebilled = price2num($task_time->total_ht);
    -            	if (isset($task_time->total_ht)) print price($valuebilled, 1, $langs, 1, -1, -1, $conf->currency);
    -            	print '</td>';
    +                print '<td align="center">';    // invoice_id and invoice_line_id
    +                if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_BILL_TIME_SPENT))
    +                {
    +                    if ($projectstatic->bill_time)
    +                    {
    +                        if ($task_time->invoice_id)
    +                        {
    +                            $tmpinvoice->fetch($task_time->invoice_id);
    +                            print $tmpinvoice->getNomUrl(1);
    +                        }
    +                        else
    +                        {
    +                            print $langs->trans("No");
    +                        }
    +                    }
    +                    else
    +                    {
    +                        print '<span class="opacitymedium">'.$langs->trans("NA").'</span>';
    +                    }
    +                }
    +                print '</td>';
                 	if (! $i) $totalarray['nbfield']++;
    -            	if (! $i) $totalarray['totalvaluefield']=$totalarray['nbfield'];
    +            	if (! $i) $totalarray['totalvaluebilledfield']=$totalarray['nbfield'];
                 	$totalarray['totalvaluebilled'] += $valuebilled;
                 }
     
    @@ -1105,7 +1194,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     
                 // Action column
     			print '<td class="center nowraponall">';
    -			if ($action == 'editline' && $_GET['lineid'] == $task_time->rowid)
    +			if (($action == 'editline' || $action == 'splitline') && $_GET['lineid'] == $task_time->rowid)
     			{
     				print '<input type="hidden" name="lineid" value="'.$_GET['lineid'].'">';
     				print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
    @@ -1116,8 +1205,15 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     			{
     				if ($task_time->fk_user == $user->id || in_array($task_time->fk_user, $childids) || $user->rights->projet->all->creer)
     				{
    -					//$param = ($projectidforalltimes?'projectid='.$projectidforalltimes.'&amp;':'').'.($withproject?'&amp;withproject=1':'');
    -					print '&nbsp;';
    +				    if ($conf->MAIN_FEATURES_LEVEL >= 2)
    +				    {
    +    				    print '&nbsp;';
    +    				    print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?id='.$task_time->fk_task.'&amp;action=splitline&amp;lineid='.$task_time->rowid.$param.'">';
    +    				    print img_split();
    +    				    print '</a>';
    +				    }
    +
    +				    print '&nbsp;';
     					print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?id='.$task_time->fk_task.'&amp;action=editline&amp;lineid='.$task_time->rowid.$param.'">';
     					print img_edit();
     					print '</a>';
    @@ -1126,6 +1222,14 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     					print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?id='.$task_time->fk_task.'&amp;action=deleteline&amp;lineid='.$task_time->rowid.$param.'">';
     					print img_delete();
     					print '</a>';
    +
    +					if ($massactionbutton || $massaction)   // 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($task_time->rowid, $arrayofselected)) $selected=1;
    +					    print '&nbsp;';
    +					    print '<input id="cb'.$task_time->rowid.'" class="flat checkforselect marginleftonly" type="checkbox" name="toselect[]" value="'.$task_time->rowid.'"'.($selected?' checked="checked"':'').'>';
    +					}
     			    }
     			}
             	print '</td>';
    @@ -1133,6 +1237,304 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     
     			print "</tr>\n";
     
    +			// Add line to split
    +
    +			if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid)
    +			{
    +			    print '<tr class="oddeven">';
    +
    +			    // Date
    +			    if (! empty($arrayfields['t.task_date']['checked']))
    +			    {
    +			        print '<td class="nowrap">';
    +			        if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid)
    +			        {
    +			            if (empty($task_time->task_date_withhour))
    +			            {
    +			                print $form->selectDate(($date2?$date2:$date1), 'timeline', 3, 3, 2, "timespent_date", 1, 0);
    +			            }
    +			            else print $form->selectDate(($date2?$date2:$date1), 'timeline', 1, 1, 2, "timespent_date", 1, 0);
    +			        }
    +			        else
    +			        {
    +			            print dol_print_date(($date2?$date2:$date1),($task_time->task_date_withhour?'dayhour':'day'));
    +			        }
    +			        print '</td>';
    +			    }
    +
    +			    // Task ref
    +			    if (! empty($arrayfields['t.task_ref']['checked']))
    +			    {
    +			        if ((empty($id) && empty($ref)) || ! empty($projectidforalltimes))   // Not a dedicated task
    +			        {
    +			            print '<td class="nowrap">';
    +			            $tasktmp->id = $task_time->fk_task;
    +			            $tasktmp->ref = $task_time->ref;
    +			            $tasktmp->label = $task_time->label;
    +			            print $tasktmp->getNomUrl(1, 'withproject', 'time');
    +			            print '</td>';
    +			        }
    +			    }
    +
    +			    // Task label
    +			    if (! empty($arrayfields['t.task_label']['checked']))
    +			    {
    +			        if ((empty($id) && empty($ref)) || ! empty($projectidforalltimes))   // Not a dedicated task
    +			        {
    +			            print '<td class="nowrap">';
    +			            print $task_time->label;
    +			            print '</td>';
    +			        }
    +			    }
    +
    +			    // User
    +			    if (! empty($arrayfields['author']['checked']))
    +			    {
    +			        print '<td>';
    +			        if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid)
    +			        {
    +			            if (empty($object->id)) $object->fetch($id);
    +			            $contactsoftask=$object->getListContactId('internal');
    +			            if (!in_array($task_time->fk_user,$contactsoftask)) {
    +			                $contactsoftask[]=$task_time->fk_user;
    +			            }
    +			            if (count($contactsoftask)>0) {
    +			                print img_object('','user','class="hideonsmartphone"');
    +			                print $form->select_dolusers($task_time->fk_user,'userid_line',0,'',0,'',$contactsoftask);
    +			            }else {
    +			                print img_error($langs->trans('FirstAddRessourceToAllocateTime')).$langs->trans('FirstAddRessourceToAllocateTime');
    +			            }
    +			        }
    +			        else
    +			        {
    +			            $userstatic->id         = $task_time->fk_user;
    +			            $userstatic->lastname	= $task_time->lastname;
    +			            $userstatic->firstname 	= $task_time->firstname;
    +			            $userstatic->photo      = $task_time->photo;
    +			            $userstatic->statut     = $task_time->user_status;
    +			            print $userstatic->getNomUrl(-1);
    +			        }
    +			        print '</td>';
    +			    }
    +
    +			    // Note
    +			    if (! empty($arrayfields['t.note']['checked']))
    +			    {
    +			        print '<td align="left">';
    +			        if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid)
    +			        {
    +			            print '<textarea name="timespent_note_line" width="95%" rows="'.ROWS_2.'">'.$task_time->note.'</textarea>';
    +			        }
    +			        else
    +			        {
    +			            print dol_nl2br($task_time->note);
    +			        }
    +			        print '</td>';
    +			    }
    +			    elseif ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid)
    +			    {
    +			        print '<input type="hidden" name="timespent_note_line" value="'.$task_time->note.'">';
    +			    }
    +
    +			    // Time spent
    +			    if (! empty($arrayfields['t.task_duration']['checked']))
    +			    {
    +			        print '<td align="right">';
    +			        if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid)
    +			        {
    +			            print '<input type="hidden" name="old_duration" value="'.$task_time->task_duration.'">';
    +			            print $form->select_duration('new_duration',$task_time->task_duration,0,'text');
    +			        }
    +			        else
    +			        {
    +			            print convertSecondToTime($task_time->task_duration,'allhourmin');
    +			        }
    +			        print '</td>';
    +			    }
    +
    +			    // Value spent
    +			    if (! empty($arrayfields['value']['checked']))
    +			    {
    +			        print '<td align="right">';
    +			        $value = price2num($task_time->thm * $task_time->task_duration / 3600);
    +			        print price($value, 1, $langs, 1, -1, -1, $conf->currency);
    +			        print '</td>';
    +			    }
    +
    +			    // Value billed
    +			    if (! empty($arrayfields['valuebilled']['checked']))
    +			    {
    +			        print '<td align="right">';
    +			        $valuebilled = price2num($task_time->total_ht);
    +			        if (isset($task_time->total_ht)) print price($valuebilled, 1, $langs, 1, -1, -1, $conf->currency);
    +			        print '</td>';
    +			    }
    +
    +			    /*
    +			     // Extra fields
    +			     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
    +			     */
    +
    +			    // Fields from hook
    +			    $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$task_time);
    +			    $reshook=$hookmanager->executeHooks('printFieldListValue',$parameters);    // Note that $action and $object may have been modified by hook
    +			    print $hookmanager->resPrint;
    +
    +			    // Action column
    +			    print '<td class="center nowraponall">';
    +			    print '</td>';
    +
    +			    print "</tr>\n";
    +
    +
    +			    // Line for second dispatching
    +
    +			    print '<tr class="oddeven">';
    +
    +			    // Date
    +			    if (! empty($arrayfields['t.task_date']['checked']))
    +			    {
    +			        print '<td class="nowrap">';
    +			        if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid)
    +			        {
    +			            if (empty($task_time->task_date_withhour))
    +			            {
    +			                print $form->selectDate(($date2?$date2:$date1), 'timeline_2', 3, 3, 2, "timespent_date", 1, 0);
    +			            }
    +			            else print $form->selectDate(($date2?$date2:$date1), 'timeline_2', 1, 1, 2, "timespent_date", 1, 0);
    +			        }
    +			        else
    +			        {
    +			            print dol_print_date(($date2?$date2:$date1),($task_time->task_date_withhour?'dayhour':'day'));
    +			        }
    +			        print '</td>';
    +			    }
    +
    +			    // Task ref
    +			    if (! empty($arrayfields['t.task_ref']['checked']))
    +			    {
    +			        if ((empty($id) && empty($ref)) || ! empty($projectidforalltimes))   // Not a dedicated task
    +			        {
    +			            print '<td class="nowrap">';
    +			            $tasktmp->id = $task_time->fk_task;
    +			            $tasktmp->ref = $task_time->ref;
    +			            $tasktmp->label = $task_time->label;
    +			            print $tasktmp->getNomUrl(1, 'withproject', 'time');
    +			            print '</td>';
    +			        }
    +			    }
    +
    +			    // Task label
    +			    if (! empty($arrayfields['t.task_label']['checked']))
    +			    {
    +			        if ((empty($id) && empty($ref)) || ! empty($projectidforalltimes))   // Not a dedicated task
    +			        {
    +			            print '<td class="nowrap">';
    +			            print $task_time->label;
    +			            print '</td>';
    +			        }
    +			    }
    +
    +			    // User
    +			    if (! empty($arrayfields['author']['checked']))
    +			    {
    +			        print '<td>';
    +			        if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid)
    +			        {
    +			            if (empty($object->id)) $object->fetch($id);
    +			            $contactsoftask=$object->getListContactId('internal');
    +			            if (!in_array($task_time->fk_user,$contactsoftask)) {
    +			                $contactsoftask[]=$task_time->fk_user;
    +			            }
    +			            if (count($contactsoftask)>0) {
    +			                print img_object('','user','class="hideonsmartphone"');
    +			                print $form->select_dolusers($task_time->fk_user,'userid_line_2',0,'',0,'',$contactsoftask);
    +			            }else {
    +			                print img_error($langs->trans('FirstAddRessourceToAllocateTime')).$langs->trans('FirstAddRessourceToAllocateTime');
    +			            }
    +			        }
    +			        else
    +			        {
    +			            $userstatic->id         = $task_time->fk_user;
    +			            $userstatic->lastname	= $task_time->lastname;
    +			            $userstatic->firstname 	= $task_time->firstname;
    +			            $userstatic->photo      = $task_time->photo;
    +			            $userstatic->statut     = $task_time->user_status;
    +			            print $userstatic->getNomUrl(-1);
    +			        }
    +			        print '</td>';
    +			    }
    +
    +			    // Note
    +			    if (! empty($arrayfields['t.note']['checked']))
    +			    {
    +			        print '<td align="left">';
    +			        if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid)
    +			        {
    +			            print '<textarea name="timespent_note_line_2" width="95%" rows="'.ROWS_2.'">'.$task_time->note.'</textarea>';
    +			        }
    +			        else
    +			        {
    +			            print dol_nl2br($task_time->note);
    +			        }
    +			        print '</td>';
    +			    }
    +			    elseif ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid)
    +			    {
    +			        print '<input type="hidden" name="timespent_note_line_2" value="'.$task_time->note.'">';
    +			    }
    +
    +			    // Time spent
    +			    if (! empty($arrayfields['t.task_duration']['checked']))
    +			    {
    +			        print '<td align="right">';
    +			        if ($action == 'splitline' && $_GET['lineid'] == $task_time->rowid)
    +			        {
    +			            print '<input type="hidden" name="old_duration_2" value="0">';
    +			            print $form->select_duration('new_duration_2',0,0,'text');
    +			        }
    +			        else
    +			        {
    +			            print convertSecondToTime($task_time->task_duration,'allhourmin');
    +			        }
    +			        print '</td>';
    +			    }
    +
    +			    // Value spent
    +			    if (! empty($arrayfields['value']['checked']))
    +			    {
    +			        print '<td align="right">';
    +			        $value = 0;
    +			        print price($value, 1, $langs, 1, -1, -1, $conf->currency);
    +			        print '</td>';
    +			    }
    +
    +			    // Value billed
    +			    if (! empty($arrayfields['valuebilled']['checked']))
    +			    {
    +			        print '<td align="right">';
    +			        $valuebilled = price2num($task_time->total_ht);
    +			        if (isset($task_time->total_ht)) print price($valuebilled, 1, $langs, 1, -1, -1, $conf->currency);
    +			        print '</td>';
    +			    }
    +
    +			    /*
    +			     // Extra fields
    +			     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
    +			     */
    +
    +			    // Fields from hook
    +			    $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$task_time);
    +			    $reshook=$hookmanager->executeHooks('printFieldListValue',$parameters);    // Note that $action and $object may have been modified by hook
    +			    print $hookmanager->resPrint;
    +
    +			    // Action column
    +			    print '<td class="center nowraponall">';
    +			    print '</td>';
    +
    +			    print "</tr>\n";
    +			}
    +
     			$i++;
     		}
     
    @@ -1151,6 +1553,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     		        }
     		        elseif ($totalarray['totaldurationfield'] == $i) print '<td align="right">'.convertSecondToTime($totalarray['totalduration'],'allhourmin').'</td>';
     		        elseif ($totalarray['totalvaluefield'] == $i) print '<td align="right">'.price($totalarray['totalvalue']).'</td>';
    +		        //elseif ($totalarray['totalvaluebilledfield'] == $i) print '<td align="center">'.price($totalarray['totalvaluebilled']).'</td>';
     		        else print '<td></td>';
     		    }
     		    print '</tr>';
    @@ -1164,6 +1567,6 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
     	}
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/public/agenda/agendaexport.php b/htdocs/public/agenda/agendaexport.php
    index 72f1a6b9242..6e08f06d630 100644
    --- a/htdocs/public/agenda/agendaexport.php
    +++ b/htdocs/public/agenda/agendaexport.php
    @@ -42,13 +42,19 @@ if (! defined('NOCSRFCHECK'))    define("NOCSRFCHECK",1);	// We accept to go on
      *
      * @return	void
      */
    -function llxHeaderVierge() { print '<html><title>Export agenda cal</title><body>'; }
    +function llxHeaderVierge()
    +{
    +    print '<html><title>Export agenda cal</title><body>';
    +}
     /**
      * Footer function
      *
      * @return	void
      */
    -function llxFooterVierge() { print '</body></html>'; }
    +function llxFooterVierge()
    +{
    +    print '</body></html>';
    +}
     
     require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php';
    diff --git a/htdocs/public/cron/cron_run_jobs.php b/htdocs/public/cron/cron_run_jobs.php
    index 4edcbbf14ee..57cde107f24 100644
    --- a/htdocs/public/cron/cron_run_jobs.php
    +++ b/htdocs/public/cron/cron_run_jobs.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2012		Nicolas Villa aka Boyquotes http://informetic.fr
      * Copyright (C) 2013		Florian Henry		<forian.henry@open-cocnept.pro>
      * Copyright (C) 2013-2015	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2017		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2017		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -36,11 +36,7 @@ if (is_numeric($entity)) define("DOLENTITY", $entity);
     
     // librarie core
     // Dolibarr environment
    -$res = @include("../../main.inc.php"); // From htdocs directory
    -if (! $res) {
    -	$res = @include("../../../main.inc.php"); // From "custom" directory
    -}
    -if (! $res) die("Include of master.inc.php fails");
    +require '../../main.inc.php';
     
     // librarie jobs
     dol_include_once("/cron/class/cronjob.class.php");
    @@ -48,12 +44,7 @@ dol_include_once("/cron/class/cronjob.class.php");
     global $langs, $conf;
     
     // Language Management
    -$langs->load("admin");
    -$langs->load("cron");
    -
    -
    -
    -
    +$langs->loadLangs(array("admin", "cron"));
     
     /*
      * View
    @@ -178,7 +169,6 @@ if (is_array($qualifiedjobs) && (count($qualifiedjobs)>0))
     				dol_syslog("cron_run_jobs.php::reprogram_jobs Error".$cronjob->error, LOG_ERR);
     				exit;
     			}
    -
     		}
     	}
     	echo "Result: ".($nbofjobs)." jobs - ".($nbofjobslaunchedok+$nbofjobslaunchedko)." launched = ".$nbofjobslaunchedok." OK + ".$nbofjobslaunchedko." KO";
    diff --git a/htdocs/public/demo/demo.css b/htdocs/public/demo/demo.css
    index c4624f2d943..d137b7be456 100644
    --- a/htdocs/public/demo/demo.css
    +++ b/htdocs/public/demo/demo.css
    @@ -16,19 +16,19 @@ a:hover {
     	border: 1px solid #bbb;
     	border-radius: 8px;
     	-moz-border-radius: 8px;
    -	box-shadow: 2px 2px 8px #BBB; 
    +	box-shadow: 2px 2px 8px #BBB;
     }
     .CTable {
     	padding: 6px;
     	font-weight: normal;
     	color: #444444 !important;
    -	
    +
     	margin: 8px 0px 8px 2px;
    -	
    +
     	/*border: 1px solid #bbb;
     	border-radius: 8px;
     	-moz-border-radius: 8px;*/
    -	
    +
     	background: -webkit-linear-gradient(bottom, rgb(255,255,255) 85%, rgb(255,255,255) 100%);
     }
     .csscolumns {
    @@ -129,4 +129,4 @@ img.demothumb {
             margin-left: 0px;
             margin-right: 0px;
         }
    -}
    \ No newline at end of file
    +}
    diff --git a/htdocs/public/demo/index.php b/htdocs/public/demo/index.php
    index 61919c54b1a..0409e849df0 100644
    --- a/htdocs/public/demo/index.php
    +++ b/htdocs/public/demo/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2006-2013  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2010       Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010       Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -30,9 +30,7 @@ define("NOCSRFCHECK",1);	// We accept to go on this page from external web site.
     require '../../main.inc.php';
     require_once '../../core/lib/functions2.lib.php';
     
    -$langs->load("main");
    -$langs->load("install");
    -$langs->load("other");
    +$langs->loadLangs(array("main", "install", "other"));
     
     $conf->dol_hide_topmenu=GETPOST('dol_hide_topmenu','int');
     $conf->dol_hide_leftmenu=GETPOST('dol_hide_leftmenu','int');
    diff --git a/htdocs/public/donations/donateurs_code.php b/htdocs/public/donations/donateurs_code.php
    index 3d8057cbe85..86db4b089aa 100644
    --- a/htdocs/public/donations/donateurs_code.php
    +++ b/htdocs/public/donations/donateurs_code.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    +/* Copyright (C) 2002       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -30,19 +31,25 @@ define("NOCSRFCHECK",1);	// We accept to go on this page from external web site.
      *
      * @return	void
      */
    -function llxHeaderVierge() { print '<html><title>Export agenda cal</title><body>'; }
    +function llxHeaderVierge()
    +{
    +    print '<html><title>Export agenda cal</title><body>';
    +}
     /**
      * Header function
      *
      * @return	void
      */
    -function llxFooterVierge() { print '</body></html>'; }
    +function llxFooterVierge()
    +{
    +    print '</body></html>';
    +}
     
     require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT .'/don/class/don.class.php';
     
     // Security check
    -if (empty($conf->don->enabled)) accessforbidden('',0,0,1);
    +if (empty($conf->don->enabled)) accessforbidden('', 0, 0, 1);
     
     
     $langs->load("donations");
    @@ -65,13 +72,13 @@ if ($resql)
     	if ($num)
     	{
     
    -		print "<TABLE border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"4\">";
    +		print "<table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"4\">";
     
    -		print '<TR>';
    +		print '<tr>';
     		print "<td>".$langs->trans("Name")." / ".$langs->trans("Company")."</td>";
     		print "<td>Date</td>";
    -		print "<td align=\"right\">".$langs->trans("Amount")."</TD>";
    -		print "</TR>\n";
    +		print "<td align=\"right\">".$langs->trans("Amount")."</td>";
    +		print "</tr>\n";
     
     		while ($i < $num)
     		{
    @@ -92,7 +99,6 @@ if ($resql)
     			$i++;
     		}
     		print "</table>";
    -
     	}
     	else
     	{
    diff --git a/htdocs/public/emailing/mailing-read.php b/htdocs/public/emailing/mailing-read.php
    index 4aa388ecf24..0b79f656450 100644
    --- a/htdocs/public/emailing/mailing-read.php
    +++ b/htdocs/public/emailing/mailing-read.php
    @@ -36,13 +36,17 @@ if (! defined('NOREQUIREMENU'))  define('NOREQUIREMENU','1');	// If there is no
      *
      * @return	void
      */
    -function llxHeader() { }
    +function llxHeader()
    +{
    +}
     /**
      * Footer empty
      *
      * @return	void
      */
    -function llxFooter() { }
    +function llxFooter()
    +{
    +}
     
     
     require '../../main.inc.php';
    @@ -82,7 +86,6 @@ if (! empty($tag))
     	dol_syslog("public/emailing/mailing-read.php : Mail read contact : ".$sql, LOG_DEBUG);
     
     	$resql=$db->query($sql);
    -
     }
     
     $db->close();
    diff --git a/htdocs/public/emailing/mailing-unsubscribe.php b/htdocs/public/emailing/mailing-unsubscribe.php
    index 61e8ccdb0d6..d04d6eb8020 100644
    --- a/htdocs/public/emailing/mailing-unsubscribe.php
    +++ b/htdocs/public/emailing/mailing-unsubscribe.php
    @@ -23,7 +23,8 @@
     /**
      *      \file       public/emailing/mailing-unsubscribe.php
      *      \ingroup    mailing
    - *      \brief      Script use to update unsubcribe contact to prospect mailing list
    + *      \brief      Script use to update unsubcribe status of an email
    + *                  https://myserver/public/emailing/mailing-unsubscribe.php?unsuscrib=1&securitykey=securitykey&tag=abcdefghijklmn
      */
     
     if (! defined('NOLOGIN'))        define("NOLOGIN",1);			// This means this output page does not require to be logged.
    @@ -35,13 +36,17 @@ if (! defined('NOREQUIREMENU'))  define('NOREQUIREMENU','1');	// If there is no
      *
      * @return	void
      */
    -function llxHeader() { }
    +function llxHeader()
    +{
    +}
     /**
      * Footer empty
      *
      * @return	void
      */
    -function llxFooter() { }
    +function llxFooter()
    +{
    +}
     
     
     require '../../main.inc.php';
    @@ -49,8 +54,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     
     global $user, $conf, $langs;
     
    -$langs->load("main");
    -$langs->load("mails");
    +$langs->loadLangs(array("main", "mails"));
     
     $tag=GETPOST('tag');
     $unsuscrib=GETPOST('unsuscrib');
    @@ -72,38 +76,51 @@ if ($securitykey != $conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY)
     
     if (! empty($tag) && ($unsuscrib=='1'))
     {
    -	// Update status of mail in recipient mailing list table
    -	$statut='3';
    -	$sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles SET statut=".$statut." WHERE tag='".$db->escape($tag)."'";
    -	dol_syslog("public/emailing/mailing-unsubscribe.php : Mail unsubcribe : ".$sql, LOG_DEBUG);
    +	dol_syslog("public/emailing/mailing-unsubscribe.php : Launch unsubscribe requests", LOG_DEBUG);
     
    -	$resql=$db->query($sql);
    -	if (! $resql) dol_print_error($db);
    -
    -	// Update status communication of thirdparty prospect
    -	$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=-1 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag='".$db->escape($tag)."' AND source_type='thirdparty' AND source_id is not null)";
    -	dol_syslog("public/emailing/mailing-unsubscribe.php : Mail unsubcribe thirdparty : ".$sql, LOG_DEBUG);
    -
    -	$resql=$db->query($sql);
    -	if (! $resql) dol_print_error($db);
    -
    -    // Update status communication of contact prospect
    -	$sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET no_email=1 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag = '".$db->escape($tag)."' AND source_type='contact' AND source_id is not null)";
    -	dol_syslog("public/emailing/mailing-unsubscribe.php : Mail unsubcribe contact : ".$sql, LOG_DEBUG);
    -
    -	$resql=$db->query($sql);
    -	if (! $resql) dol_print_error($db);
    -
    -
    -	$sql = "SELECT mc.email";
    -	$sql .= " FROM ".MAIN_DB_PREFIX."mailing_cibles as mc";
    -	$sql .= " WHERE mc.tag='".$db->escape($tag)."'";
    +	$sql = "SELECT mc.email, m.entity";
    +	$sql .= " FROM ".MAIN_DB_PREFIX."mailing_cibles as mc, ".MAIN_DB_PREFIX."mailing as m";
    +	$sql .= " WHERE mc.fk_mailing = m.rowid AND mc.tag='".$db->escape($tag)."'";
     
     	$resql=$db->query($sql);
     	if (! $resql) dol_print_error($db);
     
     	$obj = $db->fetch_object($resql);
     
    +	if (empty($obj->email))
    +	{
    +		print 'Email not found. No need to unsubscribe.';
    +		exit;
    +	}
    +
    +	// Update status of mail in recipient mailing list table
    +	$statut='3';
    +	$sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles SET statut=".$statut." WHERE tag='".$db->escape($tag)."'";
    +
    +	$resql=$db->query($sql);
    +	if (! $resql) dol_print_error($db);
    +
    +	/*
    +	// Update status communication of thirdparty prospect (old usage)
    +	$sql = "UPDATE ".MAIN_DB_PREFIX."societe SET fk_stcomm=-1 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag = '".$db->escape($tag)."' AND source_type='thirdparty' AND source_id is not null)";
    +
    +	$resql=$db->query($sql);
    +	if (! $resql) dol_print_error($db);
    +
    +    // Update status communication of contact prospect (old usage)
    +	$sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET no_email=1 WHERE rowid IN (SELECT source_id FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE tag = '".$db->escape($tag)."' AND source_type='contact' AND source_id is not null)";
    +
    +	$resql=$db->query($sql);
    +	if (! $resql) dol_print_error($db);
    +	*/
    +
    +	// Update status communication of email (new usage)
    +	$sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing_unsubscribe (date_creat, entity, email) VALUES ('".$db->idate(dol_now())."', ".$obj->entity.", '".$obj->email."')";
    +
    +	$resql=$db->query($sql);
    +	//if (! $resql) dol_print_error($db);	No test on errors, may fail if already unsubscribed
    +
    +
     	header("Content-type: text/html; charset=".$conf->file->character_set_client);
     
     	print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">';
    diff --git a/htdocs/public/members/new.php b/htdocs/public/members/new.php
    index 144ab64328f..79485ee9820 100644
    --- a/htdocs/public/members/new.php
    +++ b/htdocs/public/members/new.php
    @@ -1,9 +1,11 @@
     <?php
    -/* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2001-2002	Jean-Louis Bergamo		<jlb@j1b.org>
    - * Copyright (C) 2006-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    - * Copyright (C) 2012		J. Fernando Lagrange    <fernando@demo-tic.org>
    +/* Copyright (C) 2001-2002  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2001-2002  Jean-Louis Bergamo      <jlb@j1b.org>
    + * Copyright (C) 2006-2013  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2012       Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2012       J. Fernando Lagrange    <fernando@demo-tic.org>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
    + * Copyright (C) 2018       Alexandre Spangaro      <aspangaro@zendsi.com>
      *
      * 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
    @@ -75,6 +77,8 @@ $extrafields = new ExtraFields($db);
     
     $object = new Adherent($db);
     
    +$user->loadDefaultValues();
    +
     
     /**
      * Show header for new member
    @@ -99,11 +103,11 @@ function llxHeaderVierge($title, $head="", $disablejs=0, $disablehead=0, $arrayo
     
         if (! empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small))
         {
    -        $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('thumbs/'.$mysoc->logo_small);
    +        $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_small);
         }
         elseif (! empty($mysoc->logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$mysoc->logo))
         {
    -        $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode($mysoc->logo);
    +        $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/'.$mysoc->logo);
             $width=128;
         }
         elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/dolibarr_logo.png'))
    @@ -231,6 +235,7 @@ if ($action == 'add')
             $adh->public      = $public;
             $adh->firstname   = $_POST["firstname"];
             $adh->lastname    = $_POST["lastname"];
    +        $adh->gender      = $_POST["gender"];
             $adh->civility_id = $_POST["civility_id"];
             $adh->societe     = $_POST["societe"];
             $adh->address     = $_POST["address"];
    @@ -276,8 +281,9 @@ if ($action == 'add')
                 	// Set output language
                 	$outputlangs = new Translate('', $conf);
                 	$outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang);
    +            	// Load traductions files requiredby by page
                 	$outputlangs->loadLangs(array("main", "members"));
    -            	// Get email content fro mtemplae
    +            	// Get email content from template
                 	$arraydefaultmessage=null;
                 	$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_AUTOREGISTER;
     
    @@ -548,7 +554,7 @@ if (empty($conf->global->MEMBER_NEWFORM_FORCETYPE))
         $isempty=1;
         if (count($listoftype)==1) { $defaulttype=$tmp[0]; $isempty=0; }
         print '<tr><td class="titlefield">'.$langs->trans("Type").' <FONT COLOR="red">*</FONT></td><td>';
    -    print $form->selectarray("type",  $adht->liste_array(), GETPOST('type')?GETPOST('type'):$defaulttype, $isempty);
    +    print $form->selectarray("type", $adht->liste_array(), GETPOST('type')?GETPOST('type'):$defaulttype, $isempty);
         print '</td></tr>'."\n";
     }
     else
    @@ -563,7 +569,7 @@ $morphys["mor"] = $langs->trans("Moral");
     if (empty($conf->global->MEMBER_NEWFORM_FORCEMORPHY))
     {
         print '<tr class="morphy"><td class="titlefield">'.$langs->trans('Nature').' <FONT COLOR="red">*</FONT></td><td>'."\n";
    -    print $form->selectarray("morphy",  $morphys, GETPOST('morphy'), 1);
    +    print $form->selectarray("morphy", $morphys, GETPOST('morphy'), 1);
         print '</td></tr>'."\n";
     }
     else
    @@ -578,6 +584,12 @@ print $formcompany->select_civility(GETPOST('civility_id'),'civility_id').'</td>
     print '<tr><td>'.$langs->trans("Lastname").' <FONT COLOR="red">*</FONT></td><td><input type="text" name="lastname" class="minwidth150" value="'.dol_escape_htmltag(GETPOST('lastname')).'"></td></tr>'."\n";
     // Firstname
     print '<tr><td>'.$langs->trans("Firstname").' <FONT COLOR="red">*</FONT></td><td><input type="text" name="firstname" class="minwidth150" value="'.dol_escape_htmltag(GETPOST('firstname')).'"></td></tr>'."\n";
    +// Gender
    +print '<tr><td>'.$langs->trans("Gender").'</td>';
    +print '<td>';
    +$arraygender=array('man'=>$langs->trans("Genderman"),'woman'=>$langs->trans("Genderwoman"));
    +print $form->selectarray('gender', $arraygender, GETPOST('gender')?GETPOST('gender'):$object->gender, 1);
    +print '</td></tr>';
     // Company
     print '<tr id="trcompany" class="trcompany"><td>'.$langs->trans("Company").'</td><td><input type="text" name="societe" class="minwidth150" value="'.dol_escape_htmltag(GETPOST('societe')).'"></td></tr>'."\n";
     // Address
    @@ -626,7 +638,7 @@ if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
     }
     // Birthday
     print '<tr id="trbirth" class="trbirth"><td>'.$langs->trans("DateToBirth").'</td><td>';
    -print $form->select_date($birthday,'birth',0,0,1,"newmember",1,0,1);
    +print $form->selectDate($birthday, 'birth', 0, 0, 1, "newmember", 1, 0);
     print '</td></tr>'."\n";
     // Photo
     print '<tr><td>'.$langs->trans("URLPhoto").'</td><td><input type="text" name="photo" class="minwidth150" value="'.dol_escape_htmltag(GETPOST('photo')).'"></td></tr>'."\n";
    diff --git a/htdocs/public/members/public_card.php b/htdocs/public/members/public_card.php
    index 5dee0eb49a3..c2df82fb2f2 100644
    --- a/htdocs/public/members/public_card.php
    +++ b/htdocs/public/members/public_card.php
    @@ -1,8 +1,9 @@
     <?php
    -/* Copyright (C) 2001-2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2002-2003	Jean-Louis Bergamo		<jlb@j1b.org>
    - * Copyright (C) 2007-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2001-2003  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2002-2003  Jean-Louis Bergamo      <jlb@j1b.org>
    + * Copyright (C) 2007-2012  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2012       Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2018       Alexandre Spangaro      <aspangaro@zendsi.com>
      *
      * 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
    @@ -43,10 +44,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     if (empty($conf->adherent->enabled)) accessforbidden('',0,0,1);
     
     
    -$langs->load("main");
    -$langs->load("members");
    -$langs->load("companies");
    -$langs->load("other");
    +$langs->loadLangs(array("main", "members", "companies", "other"));
     
     $id=GETPOST('id','int');
     $object = new Adherent($db);
    @@ -94,6 +92,7 @@ if ($id > 0)
     		print '<tr><td>'.$langs->trans("Person").'</td><td class="valeur">'.$object->morphy.'</td></tr>';
     		print '<tr><td>'.$langs->trans("Firstname").'</td><td class="valeur" width="35%">'.$object->firstname.'&nbsp;</td></tr>';
     		print '<tr><td>'.$langs->trans("Lastname").'</td><td class="valeur">'.$object->lastname.'&nbsp;</td></tr>';
    +		print '<tr><td>'.$langs->trans("Gender").'</td><td class="valeur">'.$object->gender.'&nbsp;</td></tr>';
     		print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->societe.'&nbsp;</td></tr>';
     		print '<tr><td>'.$langs->trans("Address").'</td><td class="valeur">'.nl2br($object->address).'&nbsp;</td></tr>';
     		print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td class="valeur">'.$object->zip.' '.$object->town.'&nbsp;</td></tr>';
    @@ -116,7 +115,6 @@ if ($id > 0)
     
     		print '</table>';
     	}
    -
     }
     
     
    diff --git a/htdocs/public/members/public_list.php b/htdocs/public/members/public_list.php
    index 1f9a4406028..6481851900a 100644
    --- a/htdocs/public/members/public_list.php
    +++ b/htdocs/public/members/public_list.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2002-2003	Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2009	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -40,10 +40,7 @@ require '../../main.inc.php';
     if (empty($conf->adherent->enabled)) accessforbidden('',0,0,1);
     
     
    -$langs->load("main");
    -$langs->load("members");
    -$langs->load("companies");
    -$langs->load("other");
    +$langs->loadLangs(array("main", "members", "companies", "other"));
     
     
     /**
    diff --git a/htdocs/public/onlinesign/index.html b/htdocs/public/onlinesign/index.html
    new file mode 100644
    index 00000000000..8b137891791
    --- /dev/null
    +++ b/htdocs/public/onlinesign/index.html
    @@ -0,0 +1 @@
    +
    diff --git a/htdocs/public/onlinesign/newonlinesign.php b/htdocs/public/onlinesign/newonlinesign.php
    index 6c9b4b154bf..b580a508ed0 100644
    --- a/htdocs/public/onlinesign/newonlinesign.php
    +++ b/htdocs/public/onlinesign/newonlinesign.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -44,13 +44,7 @@ require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
     // Security check
     // No check on module enabled. Done later according to $validpaymentmethod
     
    -$langs->load("main");
    -$langs->load("other");
    -$langs->load("dict");
    -$langs->load("bills");
    -$langs->load("companies");
    -$langs->load("errors");
    -$langs->load("paybox");     // File with generic data
    +$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "errors", "paybox"));
     
     $action=GETPOST('action','alpha');
     
    @@ -126,7 +120,6 @@ $creditor = $mysoc->name;
     if ($action == 'dosign')
     {
         // TODO
    -
     }
     
     
    @@ -147,6 +140,7 @@ if (! empty($source) && in_array($ref, array('member_ref', 'contractline_ref', '
     {
         $langs->load("errors");
         dol_print_error_email('BADREFINONLINESIGNFORM', $langs->trans("ErrorBadLinkSourceSetButBadValueForRef", $source, $ref));
    +    // End of page
         llxFooter();
         $db->close();
         exit;
    @@ -179,11 +173,11 @@ else if (! empty($conf->global->ONLINE_SIGN_LOGO)) $logosmall=$conf->global->ONL
     $urllogo='';
     if (! empty($logosmall) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$logosmall))
     {
    -	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('thumbs/'.$logosmall);
    +	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;entity='.$conf->entity.'&amp;file='.urlencode('logos/thumbs/'.$logosmall);
     }
     elseif (! empty($logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$logo))
     {
    -	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode($logo);
    +	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;entity='.$conf->entity.'&amp;file='.urlencode('logos/'.$logo);
     	$width=96;
     }
     // Output html code for logo
    @@ -261,8 +255,6 @@ if ($source == 'proposal')
     	print '<input type="hidden" name="source" value="'.GETPOST("source",'alpha').'">';
     	print '<input type="hidden" name="ref" value="'.$proposal->ref.'">';
     	print '</td></tr>'."\n";
    -
    -
     }
     
     
    diff --git a/htdocs/public/opensurvey/studs.php b/htdocs/public/opensurvey/studs.php
    index 32cb5f2e1ba..acf986bb226 100644
    --- a/htdocs/public/opensurvey/studs.php
    +++ b/htdocs/public/opensurvey/studs.php
    @@ -24,11 +24,11 @@
     
     define("NOLOGIN",1);		// This means this output page does not require to be logged.
     define("NOCSRFCHECK",1);	// We accept to go on this page from external web site.
    -require_once('../../main.inc.php');
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php");
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/opensurvey/class/opensurveysondage.class.php";
    +require_once DOL_DOCUMENT_ROOT."/opensurvey/fonctions.php";
     
     
     // Init vars
    @@ -95,7 +95,7 @@ if (GETPOST('ajoutcomment','alpha'))
     }
     
     // Add vote
    -if (GETPOST("boutonp") || GETPOST("boutonp.x") || GETPOST("boutonp_x"))		// boutonp for chrom, boutonp_x for firefox
    +if (GETPOST("boutonp") || GETPOST("boutonp.x") || GETPOST("boutonp_x"))		// boutonp for chrome, boutonp_x for firefox
     {
     	if (!$canbemodified) accessforbidden();
     
    @@ -160,9 +160,12 @@ if (GETPOST("boutonp") || GETPOST("boutonp.x") || GETPOST("boutonp_x"))		// bout
     					if ($email) {
     						include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
     
    -						$body = $langs->trans('EmailSomeoneVoted', $nom, getUrlSondage($numsondage, true));
    +						$application = ($conf->global->MAIN_APPLICATION_TITLE ? $conf->global->MAIN_APPLICATION_TITLE : 'Dolibarr ERP/CRM');
     
    -						$cmailfile=new CMailFile("[".MAIN_APPLICATION_TITLE."] ".$langs->trans("Poll").': '.$object->titre, $email, $conf->global->MAIN_MAIL_EMAIL_FROM, $body);
    +						$body = str_replace('\n', '<br>', $langs->transnoentities('EmailSomeoneVoted', $nom, getUrlSondage($numsondage, true)));
    +						//var_dump($body);exit;
    +
    +						$cmailfile=new CMailFile("[".$application."] ".$langs->trans("Poll").': '.$object->titre, $email, $conf->global->MAIN_MAIL_EMAIL_FROM, $body, null, null, null, '', '', 0, -1);
     						$result=$cmailfile->sendfile();
     					}
     				}
    diff --git a/htdocs/public/paybox/newpayment.php b/htdocs/public/paybox/newpayment.php
    index 3dc990c30f4..7693660b4ee 100644
    --- a/htdocs/public/paybox/newpayment.php
    +++ b/htdocs/public/paybox/newpayment.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2006-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2009      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2009      Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/public/paybox/paymentko.php b/htdocs/public/paybox/paymentko.php
    index feb4070c16b..ef642a5b80b 100644
    --- a/htdocs/public/paybox/paymentko.php
    +++ b/htdocs/public/paybox/paymentko.php
    @@ -39,15 +39,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
     // Security check
     if (empty($conf->paybox->enabled)) accessforbidden('',0,0,1);
     
    -$langs->load("main");
    -$langs->load("other");
    -$langs->load("dict");
    -$langs->load("bills");
    -$langs->load("companies");
    -$langs->load("paybox");
    -$langs->load("paypal");
    -$langs->load("stripe");
    -
    +$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal", "stripe"));
     
     $object = new stdClass();   // For triggers
     
    diff --git a/htdocs/public/paybox/paymentok.php b/htdocs/public/paybox/paymentok.php
    index 9e711ade51b..41eef8784bc 100644
    --- a/htdocs/public/paybox/paymentok.php
    +++ b/htdocs/public/paybox/paymentok.php
    @@ -39,14 +39,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
     // Security check
     if (empty($conf->paybox->enabled)) accessforbidden('',0,0,1);
     
    -$langs->load("main");
    -$langs->load("other");
    -$langs->load("dict");
    -$langs->load("bills");
    -$langs->load("companies");
    -$langs->load("paybox");
    -$langs->load("paypal");
    -$langs->load("stripe");
    +$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal", "stripe"));
     
     /*$source=GETPOST('source');
     $ref=GETPOST('ref');
    diff --git a/htdocs/public/payment/newpayment.php b/htdocs/public/payment/newpayment.php
    index 58d6a4d1d2e..2b5874005f3 100644
    --- a/htdocs/public/payment/newpayment.php
    +++ b/htdocs/public/payment/newpayment.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2018	    Juanjo Menent			<jmenent@2byte.e>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -416,10 +416,10 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
       	$vatnumber = GETPOST('vatnumber','alpha');
     	$savesource=GETPOSTISSET('savesource')?GETPOST('savesource', 'int'):1;
     
    -	dol_syslog("stripeToken = ".$stripeToken, LOG_DEBUG, 0, '_stripe');
    -	dol_syslog("email = ".$email, LOG_DEBUG, 0, '_stripe');
    -	dol_syslog("thirdparty_id = ".$thirdparty_id, LOG_DEBUG, 0, '_stripe');
    -	dol_syslog("vatnumber = ".$vatnumber, LOG_DEBUG, 0, '_stripe');
    +	dol_syslog("POST stripeToken = ".$stripeToken, LOG_DEBUG, 0, '_stripe');
    +	dol_syslog("POST email = ".$email, LOG_DEBUG, 0, '_stripe');
    +	dol_syslog("POST thirdparty_id = ".$thirdparty_id, LOG_DEBUG, 0, '_stripe');
    +	dol_syslog("POST vatnumber = ".$vatnumber, LOG_DEBUG, 0, '_stripe');
     
     	$error = 0;
     
    @@ -439,12 +439,11 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
     
     			$service = 'StripeTest';
     			$servicestatus = 0;
    -			if (! empty($conf->global->STRIPE_LIVE) && ! GETPOST('forcesandbox','alpha'))
    +			if (! empty($conf->global->STRIPE_LIVE) && ! GETPOST('forcesandbox','int'))
     			{
     				$service = 'StripeLive';
     				$servicestatus = 1;
     			}
    -			$stripeacc = null;	// No Oauth/connect use for public pages
     
     			$thirdparty = new Societe($db);
     			$thirdparty->fetch($thirdparty_id);
    @@ -452,6 +451,7 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
     			// Create Stripe customer
     			include_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php';
     			$stripe = new Stripe($db);
    +            $stripeacc = $stripe->getStripeAccount($service);
     			$customer = $stripe->customerStripe($thirdparty, $stripeacc, $servicestatus, 1);
     
     			// Create Stripe card from Token
    @@ -479,12 +479,12 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
     					'amount'   => price2num($amountstripe, 'MU'),
     					'currency' => $currency,
     					'capture'  => true,							// Charge immediatly
    -					'description' => 'Stripe payment: '.$FULLTAG,
    +					'description' => 'Stripe payment: '.$FULLTAG.' ref='.$ref,
     					'metadata' => $metadata,
     					'customer' => $customer->id,
     					'source' => $card,
     					'statement_descriptor' => dol_trunc(dol_trunc(dol_string_unaccent($mysoc->name), 6, 'right', 'UTF-8', 1).' '.$FULLTAG, 22, 'right', 'UTF-8', 1)     // 22 chars that appears on bank receipt
    -				));
    +				),array("idempotency_key" => "$ref", "stripe_account" => "$stripeacc"));
     				// Return $charge = array('id'=>'ch_XXXX', 'status'=>'succeeded|pending|failed', 'failure_code'=>, 'failure_message'=>...)
     				if (empty($charge))
     				{
    @@ -497,19 +497,29 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
     		}
     		else
     		{
    +			$vatcleaned = $vatnumber ? $vatnumber : null;
    +
    +			$taxinfo = array('type'=>'vat');
    +			if ($vatcleaned)
    +			{
    +				$taxinfo["tax_id"] = $vatcleaned;
    +			}
    +			// We force data to "null" if not defined as expected by Stripe
    +			if (empty($vatcleaned)) $taxinfo=null;
    +
     			dol_syslog("Create anonymous customer card profile", LOG_DEBUG, 0, '_stripe');
     			$customer = \Stripe\Customer::create(array(
     				'email' => $email,
     				'description' => ($email?'Anonymous customer for '.$email:'Anonymous customer'),
     				'metadata' => $metadata,
    -				'business_vat_id' => ($vatnumber?$vatnumber:null),
    +				'tax_info' => $taxinfo,
     				'source'  => $stripeToken           // source can be a token OR array('object'=>'card', 'exp_month'=>xx, 'exp_year'=>xxxx, 'number'=>xxxxxxx, 'cvc'=>xxx, 'name'=>'Cardholder's full name', zip ?)
     			));
     			// Return $customer = array('id'=>'cus_XXXX', ...)
     
    -        if (! empty($FULLTAG))       $metadata["FULLTAG"] = $FULLTAG;
    -        if (! empty($dol_id))        $metadata["dol_id"] = $dol_id;
    -        if (! empty($dol_type))      $metadata["dol_type"] = $dol_type;
    +			if (! empty($FULLTAG))       $metadata["FULLTAG"] = $FULLTAG;
    +			if (! empty($dol_id))        $metadata["dol_id"] = $dol_id;
    +			if (! empty($dol_type))      $metadata["dol_type"] = $dol_type;
     
     			// The customer was just created with a source, so we can make a charge
     			// with no card defined, the source just used for customer creation will be used.
    @@ -519,10 +529,10 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
     				'amount'   => price2num($amountstripe, 'MU'),
     				'currency' => $currency,
     				'capture'  => true,							// Charge immediatly
    -				'description' => 'Stripe payment: '.$FULLTAG,
    +				'description' => 'Stripe payment: '.$FULLTAG.' ref='.$ref,
     				'metadata' => $metadata,
     				'statement_descriptor' => dol_trunc(dol_trunc(dol_string_unaccent($mysoc->name), 6, 'right', 'UTF-8', 1).' '.$FULLTAG, 22, 'right', 'UTF-8', 1)     // 22 chars that appears on bank receipt
    -			));
    +			),array("idempotency_key" => "$ref", "stripe_account" => "$stripeacc"));
     			// Return $charge = array('id'=>'ch_XXXX', 'status'=>'succeeded|pending|failed', 'failure_code'=>, 'failure_message'=>...)
     			if (empty($charge))
     			{
    @@ -611,7 +621,6 @@ if ($action == 'charge' && ! empty($conf->stripe->enabled))
     		header("Location: ".$urlok);
     		exit;
     	}
    -
     }
     
     
    @@ -632,18 +641,19 @@ if ($source && in_array($ref, array('member_ref', 'contractline_ref', 'invoice_r
     {
     	$langs->load("errors");
     	dol_print_error_email('BADREFINPAYMENTFORM', $langs->trans("ErrorBadLinkSourceSetButBadValueForRef", $source, $ref));
    -	llxFooter();
    -	$db->close();
    +	// End of page
    +    llxFooter();
    +    $db->close();
     	exit;
     }
     
     
     // Show sandbox warning
    -if ((empty($paymentmethod) || $paymentmethod == 'paypal') && ! empty($conf->paypal->enabled) && (! empty($conf->global->PAYPAL_API_SANDBOX) || GETPOST('forcesandbox','alpha')))		// We can force sand box with param 'forcesandbox'
    +if ((empty($paymentmethod) || $paymentmethod == 'paypal') && ! empty($conf->paypal->enabled) && (! empty($conf->global->PAYPAL_API_SANDBOX) || GETPOST('forcesandbox','int')))		// We can force sand box with param 'forcesandbox'
     {
     	dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode','Paypal'),'','warning');
     }
    -if ((empty($paymentmethod) || $paymentmethod == 'stripe') && ! empty($conf->stripe->enabled) && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox','alpha')))
    +if ((empty($paymentmethod) || $paymentmethod == 'stripe') && ! empty($conf->stripe->enabled) && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox','int')))
     {
     	dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode','Stripe'),'','warning');
     }
    @@ -655,10 +665,10 @@ print '<form id="dolpaymentform" class="center" name="paymentform" action="'.$_S
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'."\n";
     print '<input type="hidden" name="action" value="dopayment">'."\n";
     print '<input type="hidden" name="tag" value="'.GETPOST("tag",'alpha').'">'."\n";
    -print '<input type="hidden" name="suffix" value="'.GETPOST("suffix",'alpha').'">'."\n";
    -print '<input type="hidden" name="securekey" value="'.$SECUREKEY.'">'."\n";
    +print '<input type="hidden" name="suffix" value="'.dol_escape_htmltag($suffix).'">'."\n";
    +print '<input type="hidden" name="securekey" value="'.dol_escape_htmltag($SECUREKEY).'">'."\n";
     print '<input type="hidden" name="e" value="'.$entity.'" />';
    -print '<input type="hidden" name="forcesandbox" value="'.GETPOST('forcesandbox','alpha').'" />';
    +print '<input type="hidden" name="forcesandbox" value="'.GETPOST('forcesandbox','int').'" />';
     print "\n";
     print '<!-- Form to send a payment -->'."\n";
     print '<!-- creditor = '.$creditor.' -->'."\n";
    @@ -695,12 +705,12 @@ else if (! empty($conf->global->ONLINE_PAYMENT_LOGO)) $logosmall=$conf->global->
     $urllogo='';
     if (! empty($logosmall) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$logosmall))
     {
    -	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('thumbs/'.$logosmall);
    +	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;entity='.$conf->entity.'&amp;file='.urlencode('logos/thumbs/'.$logosmall);
     	$width=150;
     }
     elseif (! empty($logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$logo))
     {
    -	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode($logo);
    +	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;entity='.$conf->entity.'&amp;file='.urlencode('logos/'.$logo);
     	$width=150;
     }
     // Output html code for logo
    @@ -814,7 +824,7 @@ if ($source == 'order')
     		$amount=price2num($amount);
     	}
     
    -	$fulltag='ORD='.$order->ref.'.CUS='.$order->thirdparty->id;
    +	$fulltag='ORD='.$order->id.'.CUS='.$order->thirdparty->id;
     	//$fulltag.='.NAM='.strtr($order->thirdparty->name,"-"," ");
     	if (! empty($TAG)) { $tag=$TAG; $fulltag.='.TAG='.$TAG; }
     	$fulltag=dol_string_unaccent($fulltag);
    @@ -934,7 +944,7 @@ if ($source == 'invoice')
     		$amount=price2num($amount);
     	}
     
    -	$fulltag='INV='.$invoice->ref.'.CUS='.$invoice->thirdparty->id;
    +	$fulltag='INV='.$invoice->id.'.CUS='.$invoice->thirdparty->id;
     	//$fulltag.='.NAM='.strtr($invoice->thirdparty->name,"-"," ");
     	if (! empty($TAG)) { $tag=$TAG; $fulltag.='.TAG='.$TAG; }
     	$fulltag=dol_string_unaccent($fulltag);
    @@ -1116,7 +1126,7 @@ if ($source == 'contractline')
     		$amount=price2num($amount);
     	}
     
    -	$fulltag='COL='.$contractline->ref.'.CON='.$contract->ref.'.CUS='.$contract->thirdparty->id.'.DAT='.dol_print_date(dol_now(),'%Y%m%d%H%M');
    +	$fulltag='COL='.$contractline->id.'.CON='.$contract->id.'.CUS='.$contract->thirdparty->id.'.DAT='.dol_print_date(dol_now(),'%Y%m%d%H%M');
     	//$fulltag.='.NAM='.strtr($contract->thirdparty->name,"-"," ");
     	if (! empty($TAG)) { $tag=$TAG; $fulltag.='.TAG='.$TAG; }
     	$fulltag=dol_string_unaccent($fulltag);
    @@ -1414,7 +1424,150 @@ if ($source == 'membersubscription')
     	print '<input type="hidden" name="desc" value="'.dol_escape_htmltag($labeldesc).'">'."\n";
     }
     
    +// Payment on donation
    +if ($source == 'donation')
    +{
    +	$found=true;
    +	$langs->load("don");
     
    +	require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php';
    +
    +	$don=new Don($db);
    +	$result=$don->fetch($ref);
    +	if ($result <= 0)
    +	{
    +		$mesg=$don->error;
    +		$error++;
    +	}
    +	else
    +	{
    +		$don->fetch_thirdparty();
    +		$object = $don;
    +	}
    +
    +	if ($action != 'dopayment') // Do not change amount if we just click on first dopayment
    +	{
    +		$amount=$subscription->total_ttc;
    +		if (GETPOST("amount",'int')) $amount=GETPOST("amount",'int');
    +		$amount=price2num($amount);
    +	}
    +
    +	$fulltag='DON='.$don->ref.'.DAT='.dol_print_date(dol_now(),'%Y%m%d%H%M');
    +	if (! empty($TAG)) { $tag=$TAG; $fulltag.='.TAG='.$TAG; }
    +	$fulltag=dol_string_unaccent($fulltag);
    +
    +	// Creditor
    +
    +	print '<tr class="CTableRow'.($var?'1':'2').'"><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("Creditor");
    +	print '</td><td class="CTableRow'.($var?'1':'2').'"><b>'.$creditor.'</b>';
    +	print '<input type="hidden" name="creditor" value="'.$creditor.'">';
    +	print '</td></tr>'."\n";
    +
    +	// Debitor
    +
    +	print '<tr class="CTableRow'.($var?'1':'2').'"><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("ThirdParty");
    +	print '</td><td class="CTableRow'.($var?'1':'2').'"><b>';
    +	if ($don->morphy == 'mor' && ! empty($don->societe)) print $don->societe;
    +	else print $don->getFullName($langs);
    +	print '</b>';
    +
    +	// Object
    +
    +	$text='<b>'.$langs->trans("PaymentDonation").'</b>';
    +	if (GETPOST('desc','alpha')) $text='<b>'.$langs->trans(GETPOST('desc','alpha')).'</b>';
    +	print '<tr class="CTableRow'.($var?'1':'2').'"><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("Designation");
    +	print '</td><td class="CTableRow'.($var?'1':'2').'">'.$text;
    +	print '<input type="hidden" name="source" value="'.dol_escape_htmltag($source).'">';
    +	print '<input type="hidden" name="ref" value="'.dol_escape_htmltag($don->ref).'">';
    +	print '</td></tr>'."\n";
    +
    +	// Amount
    +
    +	print '<tr class="CTableRow'.($var?'1':'2').'"><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("Amount");
    +	if (empty($amount))
    +	{
    +		if (empty($conf->global->MEMBER_NEWFORM_AMOUNT)) print ' ('.$langs->trans("ToComplete");
    +		if (! empty($conf->global->MEMBER_EXT_URL_SUBSCRIPTION_INFO)) print ' - <a href="'.$conf->global->MEMBER_EXT_URL_SUBSCRIPTION_INFO.'" rel="external" target="_blank">'.$langs->trans("SeeHere").'</a>';
    +		if (empty($conf->global->MEMBER_NEWFORM_AMOUNT)) print ')';
    +	}
    +	print '</td><td class="CTableRow'.($var?'1':'2').'">';
    +	$valtoshow='';
    +	if (empty($amount) || ! is_numeric($amount))
    +	{
    +		$valtoshow=price2num(GETPOST("newamount",'alpha'),'MT');
    +		// force default subscription amount to value defined into constant...
    +		if (empty($valtoshow))
    +		{
    +			if (! empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT)) {
    +				if (! empty($conf->global->MEMBER_NEWFORM_AMOUNT)) {
    +					$valtoshow = $conf->global->MEMBER_NEWFORM_AMOUNT;
    +				}
    +			}
    +			else {
    +				if (! empty($conf->global->MEMBER_NEWFORM_AMOUNT)) {
    +					$amount = $conf->global->MEMBER_NEWFORM_AMOUNT;
    +				}
    +			}
    +		}
    +	}
    +	if (empty($amount) || ! is_numeric($amount))
    +	{
    +		//$valtoshow=price2num(GETPOST("newamount",'alpha'),'MT');
    +		if (! empty($conf->global->MEMBER_MIN_AMOUNT) && $valtoshow) $valtoshow=max($conf->global->MEMBER_MIN_AMOUNT,$valtoshow);
    +		print '<input type="hidden" name="amount" value="'.GETPOST("amount",'int').'">';
    +		print '<input class="flat maxwidth75" type="text" name="newamount" value="'.$valtoshow.'">';
    +	}
    +	else {
    +		$valtoshow=$amount;
    +		if (! empty($conf->global->MEMBER_MIN_AMOUNT) && $valtoshow) $valtoshow=max($conf->global->MEMBER_MIN_AMOUNT,$valtoshow);
    +		print '<b>'.price($valtoshow).'</b>';
    +		print '<input type="hidden" name="amount" value="'.$valtoshow.'">';
    +		print '<input type="hidden" name="newamount" value="'.$valtoshow.'">';
    +	}
    +	// Currency
    +	print ' <b>'.$langs->trans("Currency".$currency).'</b>';
    +	print '<input type="hidden" name="currency" value="'.$currency.'">';
    +	print '</td></tr>'."\n";
    +
    +	// Tag
    +
    +	print '<tr class="CTableRow'.($var?'1':'2').'"><td class="CTableRow'.($var?'1':'2').'">'.$langs->trans("PaymentCode");
    +	print '</td><td class="CTableRow'.($var?'1':'2').'"><b style="word-break: break-all;">'.$fulltag.'</b>';
    +	print '<input type="hidden" name="tag" value="'.$tag.'">';
    +	print '<input type="hidden" name="fulltag" value="'.$fulltag.'">';
    +	print '</td></tr>'."\n";
    +
    +	// Shipping address
    +	$shipToName=$don->getFullName($langs);
    +	$shipToStreet=$don->address;
    +	$shipToCity=$don->town;
    +	$shipToState=$don->state_code;
    +	$shipToCountryCode=$don->country_code;
    +	$shipToZip=$don->zip;
    +	$shipToStreet2='';
    +	$phoneNum=$don->phone;
    +	if ($shipToName && $shipToStreet && $shipToCity && $shipToCountryCode && $shipToZip)
    +	{
    +		print '<!-- Shipping address information -->';
    +		print '<input type="hidden" name="shipToName" value="'.$shipToName.'">'."\n";
    +		print '<input type="hidden" name="shipToStreet" value="'.$shipToStreet.'">'."\n";
    +		print '<input type="hidden" name="shipToCity" value="'.$shipToCity.'">'."\n";
    +		print '<input type="hidden" name="shipToState" value="'.$shipToState.'">'."\n";
    +		print '<input type="hidden" name="shipToCountryCode" value="'.$shipToCountryCode.'">'."\n";
    +		print '<input type="hidden" name="shipToZip" value="'.$shipToZip.'">'."\n";
    +		print '<input type="hidden" name="shipToStreet2" value="'.$shipToStreet2.'">'."\n";
    +		print '<input type="hidden" name="phoneNum" value="'.$phoneNum.'">'."\n";
    +	}
    +	else
    +	{
    +		print '<!-- Shipping address not complete, so we don t use it -->'."\n";
    +	}
    +	if (is_object($don->thirdparty)) print '<input type="hidden" name="thirdparty_id" value="'.$don->thirdparty->id.'">'."\n";
    +	print '<input type="hidden" name="email" value="'.$don->email.'">'."\n";
    +	$labeldesc = $langs->trans("PaymentSubscription");
    +	if (GETPOST('desc','alpha')) $labeldesc=GETPOST('desc','alpha');
    +	print '<input type="hidden" name="desc" value="'.dol_escape_htmltag($labeldesc).'">'."\n";
    +}
     
     
     if (! $found && ! $mesg) $mesg=$langs->trans("ErrorBadParameters");
    @@ -1428,10 +1581,22 @@ if ($action != 'dopayment')
     {
     	if ($found && ! $error)	// We are in a management option and no error
     	{
    -		if ($source == 'invoice' && $object->paye)
    +		if ($source == 'order' && $object->billed)
    +		{
    +			print '<br><br><span class="amountpaymentcomplete">'.$langs->trans("OrderBilled").'</span>';
    +		}
    +		elseif ($source == 'invoice' && $object->paye)
     		{
     			print '<br><br><span class="amountpaymentcomplete">'.$langs->trans("InvoicePaid").'</span>';
     		}
    +		elseif ($source == 'membersubscription' && $object->datefin > dol_now())
    +		{
    +			print '<br><br><span class="amountpaymentcomplete">'.$langs->trans("MembershipPaid").'</span>';
    +		}
    +		elseif ($source == 'donation' && $object->paid)
    +		{
    +			print '<br><br><span class="amountpaymentcomplete">'.$langs->trans("DonationPaid").'</span>';
    +		}
     		else
     		{
     			// Buttons for all payments registration methods
    @@ -1547,7 +1712,7 @@ if (preg_match('/^dopayment/',$action))
     		print '<input type="hidden" name="e" value="'.$entity.'" />';
     		print '<input type="hidden" name="amount" value="'.$amount.'">'."\n";
     		print '<input type="hidden" name="currency" value="'.$currency.'">'."\n";
    -		print '<input type="hidden" name="forcesandbox" value="'.GETPOST('forcesandbox','alpha').'" />';
    +		print '<input type="hidden" name="forcesandbox" value="'.GETPOST('forcesandbox','int').'" />';
     		print '<input type="hidden" name="email" value="'.GETPOST('email','alpha').'" />';
     		print '<input type="hidden" name="thirdparty_id" value="'.GETPOST('thirdparty_id','int').'" />';
     
    diff --git a/htdocs/public/payment/paymentko.php b/htdocs/public/payment/paymentko.php
    index bdc301a0dce..783493f375c 100644
    --- a/htdocs/public/payment/paymentko.php
    +++ b/htdocs/public/payment/paymentko.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -44,14 +44,7 @@ if (! empty($conf->paypal->enabled))
     	require_once DOL_DOCUMENT_ROOT.'/paypal/lib/paypalfunctions.lib.php';
     }
     
    -$langs->load("main");
    -$langs->load("other");
    -$langs->load("dict");
    -$langs->load("bills");
    -$langs->load("companies");
    -$langs->load("paybox");
    -$langs->load("paypal");
    -$langs->load("stripe");
    +$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal", "stripe"));
     
     if (! empty($conf->paypal->enabled))
     {
    @@ -148,8 +141,13 @@ if (! empty($_SESSION['ipaddress']))      // To avoid to make action twice
             $sendemail = $conf->global->ONLINE_PAYMENT_SENDEMAIL;
         }
     
    +    // Send warning of error to administrator
         if ($sendemail)
         {
    +    	$companylangs = new Translate('', $conf);
    +    	$companylangs->setDefaultLang($mysoc->default_lang);
    +    	$companylangs->loadLangs(array('main','members','bills','paypal','paybox'));
    +
             $from=$conf->global->MAILING_EMAIL_FROM;
             $sendto=$sendemail;
     
    @@ -167,16 +165,21 @@ if (! empty($_SESSION['ipaddress']))      // To avoid to make action twice
         	else $appli.=" ".DOL_VERSION;
     
         	$urlback=$_SERVER["REQUEST_URI"];
    -    	$topic='['.$appli.'] '.$langs->transnoentitiesnoconv("NewOnlinePaymentFailed");
    +    	$topic='['.$appli.'] '.$companylangs->transnoentitiesnoconv("NewOnlinePaymentFailed");
         	$content="";
    -    	$content.=$langs->transnoentitiesnoconv("ValidationOfOnlinePaymentFailed")."\n";
    -    	$content.="\n";
    -    	$content.=$langs->transnoentitiesnoconv("TechnicalInformation").":\n";
    -    	$content.=$langs->transnoentitiesnoconv("OnlinePaymentSystem").': '.$paymentmethod."<br>\n";
    -    	$content.=$langs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback."\n";
    +    	$content.='<font color="orange">'.$companylangs->transnoentitiesnoconv("ValidationOfOnlinePaymentFailed")."</font>\n";
    +
    +    	$content.="<br><br>\n";
    +    	$content.='<u>'.$companylangs->transnoentitiesnoconv("TechnicalInformation").":</u><br>\n";
    +    	$content.=$companylangs->transnoentitiesnoconv("OnlinePaymentSystem").': <strong>'.$paymentmethod."</strong><br>\n";
    +    	$content.=$companylangs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback."<br>\n";
    +    	$content.="<br>\n";
         	$content.="tag=".$fulltag."\ntoken=".$onlinetoken." paymentType=".$paymentType." currencycodeType=".$currencyCodeType." payerId=".$payerID." ipaddress=".$ipaddress." FinalPaymentAmt=".$FinalPaymentAmt;
    +
    +    	$ishtml=dol_textishtml($content);	// May contain urls
    +
         	require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
    -    	$mailfile = new CMailFile($topic, $sendto, $from, $content);
    +    	$mailfile = new CMailFile($topic, $sendto, $from, $content, array(), array(), array(), '', '', 0, $ishtml);
     
         	$result=$mailfile->sendfile();
         	if ($result)
    @@ -219,12 +222,12 @@ else if (! empty($conf->global->ONLINE_PAYMENT_LOGO)) $logosmall=$conf->global->
     $urllogo='';
     if (! empty($logosmall) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$logosmall))
     {
    -	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('thumbs/'.$logosmall);
    +	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$logosmall);
     	$width=150;
     }
     elseif (! empty($logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$logo))
     {
    -	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode($logo);
    +	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('logos/'.$logo);
     	$width=150;
     }
     // Output html code for logo
    diff --git a/htdocs/public/payment/paymentok.php b/htdocs/public/payment/paymentok.php
    index 7f4e6e67a2c..e48fc014749 100644
    --- a/htdocs/public/payment/paymentok.php
    +++ b/htdocs/public/payment/paymentok.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -157,12 +157,12 @@ else if (! empty($conf->global->ONLINE_PAYMENT_LOGO)) $logosmall=$conf->global->
     $urllogo='';
     if (! empty($logosmall) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$logosmall))
     {
    -	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('thumbs/'.$logosmall);
    +	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$logosmall);
     	$width=150;
     }
     elseif (! empty($logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$logo))
     {
    -	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode($logo);
    +	$urllogo=DOL_URL_ROOT.'/viewimage.php?modulepart=mycompany&amp;file='.urlencode('logos/'.$logo);
     	$width=150;
     }
     // Output html code for logo
    @@ -313,7 +313,7 @@ if ($ispaymentok)
     		$adht = new AdherentType($db);
     		$object = new Adherent($db);
     
    -		$result1 = $object->fetch(0, $tmptag['MEM']);
    +		$result1 = $object->fetch($tmptag['MEM']);
     		$result2 = $adht->fetch($object->typeid);
     
     		if ($result1 > 0 && $result2 > 0)
    @@ -516,8 +516,9 @@ if ($ispaymentok)
     						// Set output language
     						$outputlangs = new Translate('', $conf);
     						$outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang);
    +						// Load traductions files requiredby by page
     						$outputlangs->loadLangs(array("main", "members"));
    -						// Get email content from templae
    +						// Get email content from template
     						$arraydefaultmessage=null;
     						$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_SUBSCRIPTION;
     
    @@ -587,7 +588,7 @@ if ($ispaymentok)
     		// Record payment
     		include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
     		$invoice = new Facture($db);
    -		$result = $invoice->fetch(0, $tmptag['INV']);
    +		$result = $invoice->fetch($tmptag['INV']);
     		if ($result)
     		{
     			$FinalPaymentAmt    = $_SESSION["FinalPaymentAmt"];
    @@ -628,7 +629,9 @@ if ($ispaymentok)
     				}
     				$paiement->paiementid   = $paymentTypeId;
     				$paiement->num_paiement = '';
    -				$paiement->note_public  = 'Online payment '.dol_print_date($now, 'standard').' using '.$paymentmethod.' from '.$ipaddress.' - Transaction ID = '.$TRANSACTIONID;
    +				$paiement->note_public  = 'Online payment '.dol_print_date($now, 'standard').' from '.$ipaddress;
    +				$paiement->ext_payment_id = $TRANSACTIONID;
    +				$paiement->ext_payment_site = $service;
     
     				if (! $error)
     				{
    @@ -650,8 +653,8 @@ if ($ispaymentok)
     				{
     					$bankaccountid = 0;
     					if ($paymentmethod == 'paybox') $bankaccountid = $conf->global->PAYBOX_BANK_ACCOUNT_FOR_PAYMENTS;
    -					if ($paymentmethod == 'paypal') $bankaccountid = $conf->global->PAYPAL_BANK_ACCOUNT_FOR_PAYMENTS;
    -					if ($paymentmethod == 'stripe') $bankaccountid = $conf->global->STRIPE_BANK_ACCOUNT_FOR_PAYMENTS;
    +					elseif ($paymentmethod == 'paypal') $bankaccountid = $conf->global->PAYPAL_BANK_ACCOUNT_FOR_PAYMENTS;
    +					elseif ($paymentmethod == 'stripe') $bankaccountid = $conf->global->STRIPE_BANK_ACCOUNT_FOR_PAYMENTS;
     
     					if ($bankaccountid > 0)
     					{
    @@ -666,7 +669,7 @@ if ($ispaymentok)
     						}
     						else
     						{
    -							$postactionmessages[] = 'Bank entry of payment created';
    +							$postactionmessages[] = 'Bank transaction of payment created';
     							$ispostactionok=1;
     						}
     					}
    @@ -775,9 +778,9 @@ if ($ispaymentok)
     		}
     		elseif (in_array('INV', array_keys($tmptag)))
     		{
    -			$url=$urlwithroot."/compta/facture/card.php?ref=".$tmptag['INV'];
    +			$url=$urlwithroot."/compta/facture/card.php?id=".$tmptag['INV'];
     			$content.='<strong>'.$companylangs->trans("Payment")."</strong><br><br>\n";
    -			$content.=$companylangs->trans("Invoice").': <strong>'.$tmptag['INV']."</strong><br>\n";
    +			$content.=$companylangs->trans("InvoiceId").': <strong>'.$tmptag['INV']."</strong><br>\n";
     			//$content.=$companylangs->trans("ThirdPartyId").': '.$tmptag['CUS']."<br>\n";
     			$content.=$companylangs->trans("Link").': <a href="'.$url.'">'.$url.'</a>'."<br>\n";
     		}
    @@ -870,10 +873,10 @@ else
         if (! empty($conf->global->PAYMENTONLINE_SENDEMAIL)) $sendemail=$conf->global->PAYMENTONLINE_SENDEMAIL;
         // TODO Remove local option to keep only the generic one ?
         if ($paymentmethod == 'paypal' && ! empty($conf->global->PAYPAL_PAYONLINE_SENDEMAIL)) $sendemail=$conf->global->PAYPAL_PAYONLINE_SENDEMAIL;
    -    if ($paymentmethod == 'paybox' && ! empty($conf->global->PAYBOX_PAYONLINE_SENDEMAIL)) $sendemail=$conf->global->PAYBOX_PAYONLINE_SENDEMAIL;
    -    if ($paymentmethod == 'stripe' && ! empty($conf->global->STRIPE_PAYONLINE_SENDEMAIL)) $sendemail=$conf->global->STRIPE_PAYONLINE_SENDEMAIL;
    +    elseif ($paymentmethod == 'paybox' && ! empty($conf->global->PAYBOX_PAYONLINE_SENDEMAIL)) $sendemail=$conf->global->PAYBOX_PAYONLINE_SENDEMAIL;
    +    elseif ($paymentmethod == 'stripe' && ! empty($conf->global->STRIPE_PAYONLINE_SENDEMAIL)) $sendemail=$conf->global->STRIPE_PAYONLINE_SENDEMAIL;
     
    -    // Send an email
    +    // Send warning of error to administrator
         if ($sendemail)
         {
         	$companylangs = new Translate('', $conf);
    @@ -905,7 +908,7 @@ else
             $content="";
             $content.='<font color="orange">'.$companylangs->transnoentitiesnoconv("PaymentSystemConfirmPaymentPageWasCalledButFailed")."</font>\n";
     
    -        $content.="<br>\n";
    +        $content.="<br><br>\n";
             $content.='<u>'.$companylangs->transnoentitiesnoconv("TechnicalInformation").":</u><br>\n";
             $content.=$companylangs->transnoentitiesnoconv("OnlinePaymentSystem").': <strong>'.$paymentmethod."</strong><br>\n";
             $content.=$companylangs->transnoentitiesnoconv("ReturnURLAfterPayment").': '.$urlback."<br>\n";
    diff --git a/htdocs/public/paypal/newpayment.php b/htdocs/public/paypal/newpayment.php
    index 1a3ee3964ff..1ec8f058408 100644
    --- a/htdocs/public/paypal/newpayment.php
    +++ b/htdocs/public/paypal/newpayment.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2009-2012	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/public/paypal/paymentko.php b/htdocs/public/paypal/paymentko.php
    index 3e555379849..16f360dd0d9 100644
    --- a/htdocs/public/paypal/paymentko.php
    +++ b/htdocs/public/paypal/paymentko.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -43,14 +43,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
     // Security check
     if (empty($conf->paypal->enabled)) accessforbidden('',0,0,1);
     
    -$langs->load("main");
    -$langs->load("other");
    -$langs->load("dict");
    -$langs->load("bills");
    -$langs->load("companies");
    -$langs->load("paybox");
    -$langs->load("paypal");
    -$langs->load("stripe");
    +$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal", "stripe"));
     
     $PAYPALTOKEN=GETPOST('TOKEN');
     if (empty($PAYPALTOKEN)) $PAYPALTOKEN=GETPOST('token');
    diff --git a/htdocs/public/paypal/paymentok.php b/htdocs/public/paypal/paymentok.php
    index 72a43dcbc7b..da815b061a7 100644
    --- a/htdocs/public/paypal/paymentok.php
    +++ b/htdocs/public/paypal/paymentok.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/public/stripe/ipn.php b/htdocs/public/stripe/ipn.php
    index ac366da9210..23c073e5c0c 100644
    --- a/htdocs/public/stripe/ipn.php
    +++ b/htdocs/public/stripe/ipn.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2018 	Thibault FOUCART        <support@ptibogxiv.net>
    +/* Copyright (C) 2018       Thibault FOUCART        <support@ptibogxiv.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -21,11 +22,7 @@ define("NOCSRFCHECK",1);	// We accept to go on this page from external web site.
     $entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
     if (is_numeric($entity)) define("DOLENTITY", $entity);
     
    -$res=0;
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");		// to work if your module directory is into a subdir of root htdocs directory
    -if (! $res) die("Include of main fails");
    -
    -if (empty($conf->stripe->enabled)) accessforbidden('',0,0,1);
    +require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
     require_once DOL_DOCUMENT_ROOT.'/includes/stripe/init.php';
    @@ -36,20 +33,24 @@ require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
     require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
    +require_once DOL_DOCUMENT_ROOT .'/core/class/CMailFile.class.php';
    +
    +if (empty($conf->stripe->enabled)) accessforbidden('',0,0,1);
     
     // You can find your endpoint's secret in your webhook settings
    -if (isset($_GET['connect'])){
    +if (isset($_GET['connect']))
    +{
     	if (isset($_GET['test']))
     	{
     		$endpoint_secret =  $conf->global->STRIPE_TEST_WEBHOOK_CONNECT_KEY;
     		$service = 'StripeTest';
    -    $servicestatus = 0;
    +		$servicestatus = 0;
     	}
     	else
     	{
     		$endpoint_secret =  $conf->global->STRIPE_LIVE_WEBHOOK_CONNECT_KEY;
     		$service = 'StripeLive';
    -    $servicestatus = 1;    
    +    $servicestatus = 1;
     	}
     }
     else {
    @@ -57,13 +58,13 @@ else {
     	{
     		$endpoint_secret =  $conf->global->STRIPE_TEST_WEBHOOK_KEY;
     		$service = 'StripeTest';
    -    $servicestatus = 0;
    +		$servicestatus = 0;
     	}
     	else
     	{
     		$endpoint_secret =  $conf->global->STRIPE_LIVE_WEBHOOK_KEY;
     		$service = 'StripeLive';
    -    $servicestatus = 1;
    +		$servicestatus = 1;
     	}
     }
     
    @@ -89,9 +90,12 @@ catch(\UnexpectedValueException $e) {
     // Do something with $event
     
     http_response_code(200); // PHP 5.4 or greater
    +
     $langs->load("main");
    +
    +// TODO Do we really need a user in setup just to have an name to fill an email topic when it is a technical system notification email
     $user = new User($db);
    -$user->fetch(5);
    +$user->fetch($conf->global->STRIPE_USER_ACCOUNT_FOR_ACTIONS);
     $user->getrights();
     
     if (! empty($conf->multicompany->enabled) && ! empty($conf->stripeconnect->enabled) && is_object($mc)) {
    @@ -116,7 +120,7 @@ if (! empty($conf->multicompany->enabled) && ! empty($conf->stripeconnect->enabl
     		$key=1;
     	}
     	$ret=$mc->switchEntity($key);
    -	if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    +	if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php";
     	if (! $res) die("Include of main fails");
     }
     
    @@ -125,16 +129,41 @@ $stripe=new Stripe($db);
     if ($event->type == 'payout.created') {
     	$error=0;
     
    -	$result=dolibarr_set_const($db, $servicestatus."_NEXTPAYOUT", date('Y-m-d H:i:s',$event->data->object->arrival_date), 'chaine', 0, '', $conf->entity);
    +	$result=dolibarr_set_const($db, $service."_NEXTPAYOUT", date('Y-m-d H:i:s',$event->data->object->arrival_date), 'chaine', 0, '', $conf->entity);
     
     	if ($result > 0)
     	{
    -		// TODO Use CMail and translation
    -		$body = "Un virement de ".price2num($event->data->object->amount/100)." ".$event->data->object->currency." est attendu sur votre compte le ".date('d-m-Y H:i:s',$event->data->object->arrival_date);
    -		$subject = '[NOTIFICATION] Virement programmée';
    -		$headers = 'From: "'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'" <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>'; // TODO  convert in dolibarr standard
    -		mail(''.$conf->global->MAIN_INFO_SOCIETE_MAIL.'', $subject, $body, $headers);
    -		return 1;
    +        $subject = '[NOTIFICATION] Stripe payout scheduled';
    +        if (!empty($user->email)) {
    +            $sendto = dolGetFirstLastname($user->firstname, $user->lastname) . " <".$user->email.">";
    +        } else {
    +            $sendto = $conf->global->MAIN_INFO_SOCIETE_MAIL.'" <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>';
    +        }
    +        $replyto = $sendto;
    +        $sendtocc = '';
    +        if (!empty($conf->global->ONLINE_PAYMENT_SENDEMAIL)) {
    +            $sendtocc = $conf->global->ONLINE_PAYMENT_SENDEMAIL.'" <'.$conf->global->ONLINE_PAYMENT_SENDEMAIL.'>';
    +        }
    +
    +        $message = "A bank transfer of ".price2num($event->data->object->amount/100)." ".$event->data->object->currency." should arrive in your account the ".dol_print_date($event->data->object->arrival_date, 'dayhour');
    +
    +        $mailfile = new CMailFile(
    +            $subject,
    +            $sendto,
    +            $replyto,
    +            $message,
    +            array(),
    +            array(),
    +            array(),
    +            $sendtocc,
    +            '',
    +            0,
    +            -1
    +        );
    +
    +        $ret = $mailfile->sendfile();
    +
    +        return 1;
     	}
     	else
     	{
    @@ -145,7 +174,7 @@ if ($event->type == 'payout.created') {
     elseif ($event->type == 'payout.paid') {
     	global $conf;
     	$error=0;
    -	$result=dolibarr_set_const($db, $servicestatus."_NEXTPAYOUT",null,'chaine',0,'',$conf->entity);
    +	$result=dolibarr_set_const($db, $service."_NEXTPAYOUT",null,'chaine',0,'',$conf->entity);
     	if ($result)
     	{
     		$langs->load("errors");
    @@ -162,14 +191,8 @@ elseif ($event->type == 'payout.paid') {
     		$accountto=new Account($db);
     		$accountto->fetch($conf->global->STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS);
     
    -		if ($accountto->currency_code != $accountfrom->currency_code) {
    -			$error++;
    -			setEventMessages($langs->trans("ErrorTransferBetweenDifferentCurrencyNotPossible"), null, 'errors');
    -		}
    -
    -		if ($accountto->id != $accountfrom->id)
    +		if (($accountto->id != $accountfrom->id) && empty($error))
     		{
    -
     			$bank_line_id_from=0;
     			$bank_line_id_to=0;
     			$result=0;
    @@ -180,8 +203,7 @@ elseif ($event->type == 'payout.paid') {
     
     			if (! $error) $bank_line_id_from = $accountfrom->addline($dateo, $typefrom, $label, -1*price2num($amount), '', '', $user);
     			if (! ($bank_line_id_from > 0)) $error++;
    -			if ((! $error) && ($accountto->currency_code == $accountfrom->currency_code)) $bank_line_id_to = $accountto->addline($dateo, $typeto, $label, price2num($amount), '', '', $user);
    -			if ((! $error) && ($accountto->currency_code != $accountfrom->currency_code)) $bank_line_id_to = $accountto->addline($dateo, $typeto, $label, price2num($amount_to), '', '', $user);
    +			if (! $error) $bank_line_id_to = $accountto->addline($dateo, $typeto, $label, price2num($amount), '', '', $user);
     			if (! ($bank_line_id_to > 0)) $error++;
     
     			if (! $error) $result=$accountfrom->add_url_line($bank_line_id_from, $bank_line_id_to, DOL_URL_ROOT.'/compta/bank/ligne.php?rowid=', '(banktransfert)', 'banktransfert');
    @@ -190,11 +212,35 @@ elseif ($event->type == 'payout.paid') {
     			if (! ($result > 0)) $error++;
     		}
     
    -		// TODO Use CMail and translation
    -		$body = "Un virement de ".price2num($event->data->object->amount/100)." ".$event->data->object->currency." a ete effectue sur votre compte le ".date('d-m-Y H:i:s',$event->data->object->arrival_date);
    -		$subject = '[NOTIFICATION] Virement effectué';
    -		$headers = 'From: "'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'" <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>';
    -		mail(''.$conf->global->MAIN_INFO_SOCIETE_MAIL.'', $subject, $body, $headers);
    +		$subject = '[NOTIFICATION] Stripe payout done';
    +		if (!empty($user->email)) {
    +			$sendto = dolGetFirstLastname($user->firstname, $user->lastname) . " <".$user->email.">";
    +		} else {
    +			$sendto = $conf->global->MAIN_INFO_SOCIETE_MAIL.'" <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>';
    +		}
    +		$replyto = $sendto;
    +		$sendtocc = '';
    +		if (!empty($conf->global->ONLINE_PAYMENT_SENDEMAIL)) {
    +			$sendtocc = $conf->global->ONLINE_PAYMENT_SENDEMAIL.'" <'.$conf->global->ONLINE_PAYMENT_SENDEMAIL.'>';
    +		}
    +
    +		$message = "A bank transfer of ".price2num($event->data->object->amount/100)." ".$event->data->object->currency." has been done to your account the ".dol_print_date($event->data->object->arrival_date, 'dayhour');
    +
    +		$mailfile = new CMailFile(
    +			$subject,
    +			$sendto,
    +			$replyto,
    +			$message,
    +			array(),
    +			array(),
    +			array(),
    +			$sendtocc,
    +			'',
    +			0,
    +			-1
    +			);
    +
    +		$ret = $mailfile->sendfile();
     
     		return 1;
     	}
    @@ -207,61 +253,55 @@ elseif ($event->type == 'payout.paid') {
     elseif ($event->type == 'charge.succeeded') {
     
     	//TODO: create fees
    -
     }
     elseif ($event->type == 'customer.source.created') {
     
     	//TODO: save customer's source
    -
     }
     elseif ($event->type == 'customer.source.updated') {
     
     	//TODO: update customer's source
    -
     }
     elseif ($event->type == 'customer.source.delete') {
     
     	//TODO: delete customer's source
    -
     }
     elseif ($event->type == 'charge.failed') {
     
     	$subject = 'Your payment has been received: '.$event->data->object->id.'';
     	$headers = 'From: "'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'" <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>';
    -	//mail('ptibogxiv@msn.com', $subject, 'test', $headers);
    -
     }
     elseif (($event->type == 'source.chargeable') && ($event->data->object->type == 'three_d_secure') && ($event->data->object->three_d_secure->authenticated==true)) {
     
    -  $fulltag=$event->data->object->metadata->FULLTAG;
    +    $fulltag=$event->data->object->metadata->FULLTAG;
     	// Save into $tmptag all metadata
     	$tmptag=dolExplodeIntoArray($fulltag,'.','=');
    -  
    -  if (! empty($tmptag['ORD'])){
    -  $order=new Commande($db);
    -	$order->fetch('',$tmptag['ORD']);
    -  $origin='order';
    -  $item=$order->id;
    -  } elseif (! empty($tmptag['INV'])) {
    -  $invoice = new Facture($db);
    -	$invoice->fetch('',$tmptag['INV']);
    -  $origin='invoice';
    -  $item=$invoice->id;
    -  }
     
    -  $stripe=new Stripe($db); 
    -  $stripeacc = $stripe->getStripeAccount($service);								// Stripe OAuth connect account of dolibarr user (no network access here)
    -  $stripecu = $stripe->getStripeCustomerAccount($tmptag['CUS'], $servicestatus);		// Get thirdparty cu_...
    +    if (! empty($tmptag['ORD'])) {
    +        $order=new Commande($db);
    +	    $order->fetch('',$tmptag['ORD']);
    +        $origin='order';
    +        $item=$order->id;
    +    } elseif (! empty($tmptag['INV'])) {
    +        $invoice = new Facture($db);
    +	    $invoice->fetch('',$tmptag['INV']);
    +        $origin='invoice';
    +        $item=$invoice->id;
    +    }
    +
    +    $stripe=new Stripe($db);
    +    $stripeacc = $stripe->getStripeAccount($service);								// Stripe OAuth connect account of dolibarr user (no network access here)
    +    $stripecu = $stripe->getStripeCustomerAccount($tmptag['CUS'], $servicestatus);		// Get thirdparty cu_...
     	$charge=$stripe->createPaymentStripe($event->data->object->amount/100,$event->data->object->currency,$origin,$item,$event->data->object->id,$stripecu,$stripeacc,$servicestatus);
    -  
    -	if (isset($charge->id) && $charge->statut=='error'){
    +
    +	if (isset($charge->id) && $charge->statut=='error') {
     		$msg=$charge->message;
     		$code=$charge->code;
     		$error++;
    -	}              
    +	}
     	elseif (isset($charge->id) && $charge->statut=='success' && (! empty($tmptag['ORD']))) {
    -    //$order=new Commande($db);
    -	  //$order->fetch('',$tmptag['ORD']);
    +        //$order=new Commande($db);
    +	    //$order->fetch('',$tmptag['ORD']);
     		$invoice = new Facture($db);
     		$idinv=$invoice->createFromOrder($order,$user);
     
    @@ -277,17 +317,17 @@ elseif (($event->type == 'source.chargeable') && ($event->data->object->type ==
     				$ifverif=$invoice->socid;
     				$currency=$invoice->multicurrency_code;
     				$total=price2num($invoice->total_ttc - $paiement - $creditnotes - $deposits,'MT');
    -			}else{
    +			} else {
     				$msg=$invoice->error;
     				$error++;
     			}
    -		}else{
    +		} else {
     			$msg=$invoice->error;
     			$error++;
     		}
     	}
     
    -	if (!$error){
    +	if (!$error) {
     		$datepaye = dol_now();
     		$paymentType ="CB";
     		$amounts=array();
    @@ -303,10 +343,10 @@ elseif (($event->type == 'source.chargeable') && ($event->data->object->type ==
     		$paiement->note         = '';
     	}
     
    -	if (! $error){
    +	if (! $error) {
     		$paiement_id=$paiement->create($user, 0);
     
    -		if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE) && count($invoice->lines)){
    +		if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE) && count($invoice->lines)) {
     			$outputlangs = $langs;
     			$newlang = '';
     			if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09');
    @@ -320,17 +360,17 @@ elseif (($event->type == 'source.chargeable') && ($event->data->object->type ==
     
     			$invoice->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
     		}
    -		if ($paiement_id < 0){
    +		if ($paiement_id < 0) {
     			$msg=$paiement->errors;
     			$error++;
    -		}else{
    +		} else {
     			if ($event->data->object->metadata->source=='order') {
     				$order->classifyBilled($user);
     			}
     		}
     	}
     
    -	if (! $error){
    +	if (! $error) {
     		$label='(CustomerInvoicePayment)';
     		if (GETPOST('type') == 2) $label='(CustomerInvoicePaymentBack)';
     		$paiement->addPaymentToBank($user,'payment',$label,$conf->global->STRIPE_BANK_ACCOUNT_FOR_PAYMENTS,'','');
    @@ -345,7 +385,6 @@ elseif (($event->type == 'source.chargeable') && ($event->data->object->type ==
     	$body = "";
     	$subject = 'Facture '.$invoice->ref;
     	$headers = 'From: "'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'" <'.$conf->global->MAIN_INFO_SOCIETE_MAIL.'>';
    -	//mail('ptibogxiv@msn.com', $subject, $body, $headers); TODO  convert in dolibarr standard
     }
     elseif ($event->type == 'customer.deleted') {
     	$db->begin();
    diff --git a/htdocs/public/stripe/newpayment.php b/htdocs/public/stripe/newpayment.php
    index fcc7acd29ad..cb22aa72cd4 100644
    --- a/htdocs/public/stripe/newpayment.php
    +++ b/htdocs/public/stripe/newpayment.php
    @@ -36,7 +36,6 @@ $entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['ent
     if (is_numeric($entity)) define("DOLENTITY", $entity);
     
     require '../../main.inc.php';
    -
     require_once DOL_DOCUMENT_ROOT.'/stripe/config.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
    diff --git a/htdocs/public/stripe/paymentko.php b/htdocs/public/stripe/paymentko.php
    index ff1abfae9e4..be285cfc628 100644
    --- a/htdocs/public/stripe/paymentko.php
    +++ b/htdocs/public/stripe/paymentko.php
    @@ -36,14 +36,7 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
     
    -$langs->load("main");
    -$langs->load("other");
    -$langs->load("dict");
    -$langs->load("bills");
    -$langs->load("companies");
    -$langs->load("paybox");
    -$langs->load("paypal");
    -$langs->load("stripe");
    +$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal", "stripe"));
     
     $FULLTAG=GETPOST('FULLTAG');
     if (empty($FULLTAG)) $FULLTAG=GETPOST('fulltag');
    diff --git a/htdocs/public/stripe/paymentok.php b/htdocs/public/stripe/paymentok.php
    index 52b3dac8a7f..4bce7dd62ce 100644
    --- a/htdocs/public/stripe/paymentok.php
    +++ b/htdocs/public/stripe/paymentok.php
    @@ -36,13 +36,7 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
     
    -$langs->load("main");
    -$langs->load("other");
    -$langs->load("dict");
    -$langs->load("bills");
    -$langs->load("companies");
    -$langs->load("paybox");
    -$langs->load("paypal");
    +$langs->loadLangs(array("main", "other", "dict", "bills", "companies", "paybox", "paypal"));
     
     $FULLTAG=GETPOST('FULLTAG');
     if (empty($FULLTAG)) $FULLTAG=GETPOST('fulltag');
    diff --git a/htdocs/public/test/index.html b/htdocs/public/test/index.html
    new file mode 100644
    index 00000000000..8b137891791
    --- /dev/null
    +++ b/htdocs/public/test/index.html
    @@ -0,0 +1 @@
    +
    diff --git a/htdocs/public/test/test_arrays.php b/htdocs/public/test/test_arrays.php
    index 02f5786632c..e3a5f33cbeb 100644
    --- a/htdocs/public/test/test_arrays.php
    +++ b/htdocs/public/test/test_arrays.php
    @@ -174,9 +174,9 @@ if ($showbirthday)  $nav.='<input type="hidden" name="showbirthday" value="1">';
     if ($pid)    $nav.='<input type="hidden" name="projectid" value="'.$pid.'">';
     if ($type)   $nav.='<input type="hidden" name="type" value="'.$type.'">';
     if ($usergroup) $nav.='<input type="hidden" name="usergroup" value="'.$usergroup.'">';
    -$nav.=$form->select_date($dateselect, 'dateselect', 0, 0, 1, '', 1, 0, 1);
    -$nav.=' <input type="submit" name="submitdateselect" class="button" value="'.$langs->trans("Refresh").'">';
    -$nav.='</form>';
    +$nav.= $form->selectDate($dateselect, 'dateselect', 0, 0, 1, '', 1, 0);
    +$nav.= ' <input type="submit" name="submitdateselect" class="button" value="'.$langs->trans("Refresh").'">';
    +$nav.= '</form>';
     
     $limit=10;
     print_barre_liste('Title of my list', 12, $_SERVER["PHP_SELF"], '', '', '', 'Text in middle', 20, 500, '', 0, $nav, '', $limit);
    diff --git a/htdocs/public/test/test_forms.php b/htdocs/public/test/test_forms.php
    index 0250bb2c39f..343acab9a4a 100644
    --- a/htdocs/public/test/test_forms.php
    +++ b/htdocs/public/test/test_forms.php
    @@ -27,29 +27,29 @@ This page is a sample of page using Dolibarr HTML widget methods. It is designed
     <?php
     $form=new Form($db);
     
    -// Test1: form->select_date using tzuser date
    +// Test1: form->selectDate using tzuser date
     print "Test 1a: We must have here current date and hour for user (must match hour on browser). Note: Check your are logged so user TZ and DST are known.";
     $offsettz=(empty($_SESSION['dol_tz'])?0:$_SESSION['dol_tz'])*60*60;
     $offsetdst=(empty($_SESSION['dol_dst'])?0:$_SESSION['dol_dst'])*60*60;
     print " (dol_tz=".$offsettz." dol_dst=".$dol_dst.")<br>\n";
    -$form->select_date(dol_now(), 'test1a', 1, 1, 0);
    +print $form->selectDate(dol_now(), 'test1a', 1, 1, 0);
     
     print '<br><br>'."\n";
     
     print "Test 1b: We must have here current date with hours to 00:00.<br>";
    -$form->select_date('', 'test1b', 1, 1, 0);
    +print $form->selectDate('', 'test1b', 1, 1, 0);
     
     print '<br><br>'."\n";
     
    -// Test2: form->select_date using tzuser date
    +// Test2: form->selectDate using tzuser date
     print "Test 2: We must have here 1970-01-01 00:00:00 selected (fields can be empty)<br>\n";
    -$form->select_date(dol_get_first_day(1970,1,false), 'test2', 1, 1, 1);
    +print $form->selectDate(dol_get_first_day(1970,1,false), 'test2', 1, 1, 1);
     
     print '<br><br>'."\n";
     
    -// Test3: form->select_date for 1970-01-01 00:00:00
    +// Test3: form->selectDate for 1970-01-01 00:00:00
     print "Test 3: We must have here 1970-01-01 00:00:00 selected (fields are mandatory)<br>\n";
    -$form->select_date(dol_get_first_day(1970,1,false), 'test3', 1, 1, 0);
    +print $form->selectDate(dol_get_first_day(1970,1,false), 'test3', 1, 1, 0);
     
     print '<br><br>'."\n";
     
    @@ -94,6 +94,6 @@ $array=array(1=>'Value 1',2=>'Value 2',3=>'Value 3');
     $arrayselected=array(1,3);
     print $form->multiselectarray('testmulti', $array, $arrayselected, '', 0, '', 0, 250);
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/public/ticket/create_ticket.php b/htdocs/public/ticket/create_ticket.php
    index 066471fddff..d451d96d011 100644
    --- a/htdocs/public/ticket/create_ticket.php
    +++ b/htdocs/public/ticket/create_ticket.php
    @@ -177,7 +177,7 @@ if ($action == 'create_ticket' && GETPOST('add_ticket')) {
             	$action = "infos_success";
             } else {
     	    	$object->db->rollback();
    -	    	setEventMessage($object->errors, 'errors');
    +	    	setEventMessages($object->error, $object->errors, 'errors');
     	    	$action = 'create_ticket';
     	    }
     
    @@ -226,8 +226,8 @@ if ($action == 'create_ticket' && GETPOST('add_ticket')) {
                     }
                     include_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php';
                     $mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, $sendtocc, '', $deliveryreceipt, -1);
    -                if ($mailfile->error) {
    -                    setEventMessage($mailfile->error, 'errors');
    +                if ($mailfile->error || $mailfile->errors) {
    +                    setEventMessages($mailfile->error, $mailfile->errors, 'errors');
                     } else {
                         $result = $mailfile->sendfile();
                     }
    @@ -287,9 +287,9 @@ if ($action == 'create_ticket' && GETPOST('add_ticket')) {
     	                }
     	                include_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php';
     	                $mailfile = new CMailFile($subject, $sendto, $from, $message_admin, $filepath, $mimetype, $filename, $sendtocc, '', $deliveryreceipt, -1);
    -	                if ($mailfile->error) {
    -	                    setEventMessage($mailfile->error, 'errors');
    -	                } else {
    +	                if ($mailfile->error || $mailfile->errors) {
    +                        setEventMessages($mailfile->error, $mailfile->errors, 'errors');
    +                    } else {
     	                    $result = $mailfile->sendfile();
     	                }
     	                if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) {
    @@ -308,10 +308,10 @@ if ($action == 'create_ticket' && GETPOST('add_ticket')) {
                 	$formmail->remove_attached_files($i);
                 }
     
    -            setEventMessage($langs->trans('YourTicketSuccessfullySaved'));
    +            setEventMessages($langs->trans('YourTicketSuccessfullySaved'), null, 'mesgs');
             }
         } else {
    -        setEventMessage($object->errors, 'errors');
    +        setEventMessages($object->error, $object->errors, 'errors');
         }
     }
     
    diff --git a/htdocs/public/ticket/img/index.html b/htdocs/public/ticket/img/index.html
    new file mode 100644
    index 00000000000..8b137891791
    --- /dev/null
    +++ b/htdocs/public/ticket/img/index.html
    @@ -0,0 +1 @@
    +
    diff --git a/htdocs/public/ticket/index.php b/htdocs/public/ticket/index.php
    index bb0499f43e6..ca774aa7bb9 100644
    --- a/htdocs/public/ticket/index.php
    +++ b/htdocs/public/ticket/index.php
    @@ -25,11 +25,18 @@ if (!defined('NOCSRFCHECK'))   define('NOCSRFCHECK', '1');
     if (!defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1');
     if (!defined("NOLOGIN"))       define("NOLOGIN", '1');				// If this page is public (can be called outside logged session)
     
    +// For MultiCompany module.
    +// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php
    +// TODO This should be useless. Because entity must be retreive from object ref and not from url.
    +$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
    +if (is_numeric($entity)) define("DOLENTITY", $entity);
    +
     require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/ticket/class/actions_ticket.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formticket.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/ticket.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array('companies', 'other', 'ticket', 'errors'));
    @@ -54,7 +61,7 @@ if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) {
     } else {
         print '<div style="margin: 0 auto; width:60%">';
         print '<p style="text-align: center">' . ($conf->global->TICKET_PUBLIC_TEXT_HOME ? $conf->global->TICKET_PUBLIC_TEXT_HOME : $langs->trans("TicketPublicDesc")) . '</p>';
    -    print '<div class="corps">';
    +    print '<div class="ticketform">';
         print '<div class="index_create"><a href="create_ticket.php" class="button orange bigrounded"><strong>&nbsp;' . dol_escape_htmltag($langs->trans("CreateTicket")) . '</strong></a></div>';
         print '<div class="index_display"><a href="list.php" class="button blue bigrounded"><strong>&nbsp;' . dol_escape_htmltag($langs->trans("ShowListTicketWithTrackId")) . '</strong></a></div>';
         print '<div class="index_display"><a href="view.php" class="button blue bigrounded"><strong>&nbsp;' . dol_escape_htmltag($langs->trans("ShowTicketWithTrackId")) . '</strong></a></div>';
    @@ -64,5 +71,8 @@ if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) {
     }
     
     // End of page
    -llxFooter();
    +htmlPrintOnlinePaymentFooter($mysoc,$langs,1,$suffix,$object);
    +
    +llxFooter('', 'public');
    +
     $db->close();
    diff --git a/htdocs/public/ticket/list.php b/htdocs/public/ticket/list.php
    index d8290849f55..f11583ac64d 100644
    --- a/htdocs/public/ticket/list.php
    +++ b/htdocs/public/ticket/list.php
    @@ -44,7 +44,7 @@ $langs->loadLangs(array("companies","other","ticket"));
     
     // Get parameters
     $track_id = GETPOST('track_id', 'alpha');
    -$action = GETPOST('action', 'alpha', 3);
    +$action = GETPOST('action', 'aZ09');
     $email = GETPOST('email', 'alpha');
     
     if (GETPOST('btn_view_ticket_list')) {
    @@ -121,8 +121,8 @@ if ($action == "view_ticketlist") {
             }
         }
     
    -    if ($error) {
    -        setEventMessage($object->errors, 'errors');
    +    if ($error || $errors) {
    +        setEventMessages($object->error, $object->errors, 'errors');
             $action = '';
         }
     }
    @@ -182,7 +182,7 @@ if ($action == "view_ticketlist")
             // fetch optionals attributes and labels
             $extrafields = new ExtraFields($db);
             $extralabels = $extrafields->fetch_name_optionals_label('ticket');
    -        $search_array_options = $extrafields->getOptionalsFromPost($extralabels, '', 'search_');
    +        $search_array_options = $extrafields->getOptionalsFromPost('ticket', '', 'search_');
     
             $filter = array();
             $param = '';
    diff --git a/htdocs/public/ticket/view.php b/htdocs/public/ticket/view.php
    index 5383133c42e..af4585622dd 100644
    --- a/htdocs/public/ticket/view.php
    +++ b/htdocs/public/ticket/view.php
    @@ -1,5 +1,6 @@
     <?php
    -/*  Copyright (C) - 2013-2016    Jean-François FERRY    <hello@librethic.io>
    +/* Copyright (C) 2013-2016  Jean-François FERRY     <hello@librethic.io>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -44,7 +45,7 @@ $langs->loadLangs(array("companies","other","ticket"));
     
     // Get parameters
     $track_id = GETPOST('track_id', 'alpha');
    -$action = GETPOST('action', 'alpha', 3);
    +$action = GETPOST('action', 'aZ09');
     $email = GETPOST('email', 'alpha');
     
     if (GETPOST('btn_view_ticket')) {
    @@ -112,8 +113,8 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" |
             }
         }
     
    -    if ($error) {
    -        setEventMessage($object->errors, 'errors');
    +    if ($error || $errors) {
    +        setEventMessages($object->error, $object->errors, 'errors');
             $action = '';
         }
     }
    @@ -145,10 +146,7 @@ if ($action == "view_ticket" || $action == "add_message" || $action == "close" |
         if ($display_ticket) {
             // Confirmation close
             if ($action == 'close') {
    -            $ret = $form->form_confirm($_SERVER["PHP_SELF"] . "?track_id=" . $track_id, $langs->trans("CloseATicket"), $langs->trans("ConfirmCloseAticket"), "confirm_public_close", '', '', 1);
    -            if ($ret == 'html') {
    -                print '<br>';
    -            }
    +            print $form->form_confirm($_SERVER["PHP_SELF"] . "?track_id=" . $track_id, $langs->trans("CloseATicket"), $langs->trans("ConfirmCloseAticket"), "confirm_public_close", '', '', 1);
             }
     
             print '<div id="form_view_ticket">';
    diff --git a/htdocs/public/website/index.php b/htdocs/public/website/index.php
    index b61c02e9d63..19abc48094b 100644
    --- a/htdocs/public/website/index.php
    +++ b/htdocs/public/website/index.php
    @@ -18,8 +18,7 @@
     /**
      *     	\file       htdocs/public/website/index.php
      *		\ingroup    website
    - *		\brief      Page to output pages
    - *		\author	    Laurent Destailleur
    + *		\brief      Wrapper to output pages when website is powered by Dolibarr instead of a native web server
      */
     
     if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL',1); // Disables token renewal
    @@ -34,13 +33,17 @@ if (! defined('NOREQUIREAJAX'))  define('NOREQUIREAJAX','1');
      *
      * @return	void
      */
    -function llxHeader() { }
    +function llxHeader()
    +{
    +}
     /**
      * Footer empty
      *
      * @return	void
      */
    -function llxFooter() { }
    +function llxFooter()
    +{
    +}
     
     require '../../master.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    @@ -55,87 +58,91 @@ $accessallowed = 1;
     $type='';
     
     
    -/*
    - * View
    - */
    +if (empty($pageid))
    +{
    +	require_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php';
    +	require_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php';
    +
    +	$object=new Website($db);
    +	$object->fetch(0, $websitekey);
    +
    +	if (empty($object->id))
    +	{
    +		if (empty($pageid))
    +		{
    +			// Return header 404
    +			header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404);
    +
    +			include DOL_DOCUMENT_ROOT.'/public/error-404.php';
    +			exit;
    +		}
    +	}
    +
    +	$objectpage=new WebsitePage($db);
    +
    +	if ($pageref)
    +	{
    +		$result=$objectpage->fetch(0, $object->id, $pageref);
    +		if ($result > 0)
    +		{
    +			$pageid = $objectpage->id;
    +		}
    +		elseif($result == 0)
    +		{
    +			// Page not found from ref=pageurl, we try using alternative alias
    +			$result=$objectpage->fetch(0, $object->id, null, $pageref);
    +			if ($result > 0)
    +			{
    +				$pageid = $objectpage->id;
    +			}
    +		}
    +	}
    +	else
    +	{
    +		if ($object->fk_default_home > 0)
    +		{
    +			$result=$objectpage->fetch($object->fk_default_home);
    +			if ($result > 0)
    +			{
    +				$pageid = $objectpage->id;
    +			}
    +		}
    +
    +		if (empty($pageid))
    +		{
    +			$array=$objectpage->fetchAll($object->id);
    +			if (is_array($array) && count($array) > 0)
    +			{
    +				$firstrep=reset($array);
    +				$pageid=$firstrep->id;
    +			}
    +		}
    +	}
    +}
    +if (empty($pageid))
    +{
    +	// Return header 404
    +	header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404);
    +
    +	$langs->load("website");
    +
    +	if (! GETPOSTISSET('pageref')) print $langs->trans("PreviewOfSiteNotYetAvailable", $websitekey);
    +
    +	include DOL_DOCUMENT_ROOT.'/public/error-404.php';
    +	exit;
    +}
     
     $appli=constant('DOL_APPLICATION_TITLE');
     if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE;
     
    +
    +
    +/*
    + * View
    + */
    +
     //print 'Directory with '.$appli.' websites.<br>';
     
    -if (empty($pageid))
    -{
    -    require_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php';
    -    require_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php';
    -
    -    $object=new Website($db);
    -    $object->fetch(0, $websitekey);
    -
    -	if (empty($object->id))
    -    {
    -        if (empty($pageid))
    -        {
    -            // Return header 404
    -            header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404);
    -
    -            include DOL_DOCUMENT_ROOT.'/public/error-404.php';
    -            exit;
    -        }
    -    }
    -
    -    $objectpage=new WebsitePage($db);
    -
    -    if ($pageref)
    -    {
    -    	$result=$objectpage->fetch(0, $object->id, $pageref);
    -    	if ($result > 0)
    -	    {
    -	        $pageid = $objectpage->id;
    -	    }
    -	    elseif($result == 0)
    -	    {
    -	    	// Page not found from ref=pageurl, we try using alternative alias
    -	    	$result=$objectpage->fetch(0, $object->id, null, $pageref);
    -	    	if ($result > 0)
    -	    	{
    -	    		$pageid = $objectpage->id;
    -	    	}
    -	    }
    -    }
    -    else
    -    {
    -	    if ($object->fk_default_home > 0)
    -	    {
    -	        $result=$objectpage->fetch($object->fk_default_home);
    -	        if ($result > 0)
    -	        {
    -	            $pageid = $objectpage->id;
    -	        }
    -	    }
    -
    -	    if (empty($pageid))
    -	    {
    -	        $array=$objectpage->fetchAll($object->id);
    -	        if (is_array($array) && count($array) > 0)
    -	        {
    -	            $firstrep=reset($array);
    -	            $pageid=$firstrep->id;
    -	        }
    -	    }
    -    }
    -}
    -if (empty($pageid))
    -{
    -    // Return header 404
    -    header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404);
    -
    -    $langs->load("website");
    -    print $langs->trans("PreviewOfSiteNotYetAvailable");
    -
    -    include DOL_DOCUMENT_ROOT.'/public/error-404.php';
    -    exit;
    -}
     
     // Security: Delete string ../ into $original_file
     global $dolibarr_main_data_root;
    @@ -203,4 +210,3 @@ print '<!-- Page content '.$original_file.' rendered with DOLIBARR SERVER : Html
     include_once $original_file_osencoded;		// Note: The pageXXX.tpl.php showed here contains a formatage with dolWebsiteOutput() at end of page.
     
     if (is_object($db)) $db->close();
    -
    diff --git a/htdocs/public/website/styles.css.php b/htdocs/public/website/styles.css.php
    index 36e93d00faf..3e2462d889c 100644
    --- a/htdocs/public/website/styles.css.php
    +++ b/htdocs/public/website/styles.css.php
    @@ -33,13 +33,17 @@ if (! defined('NOREQUIREAJAX'))  define('NOREQUIREAJAX','1');
      *
      * @return	void
      */
    -function llxHeader() { }
    +function llxHeader()
    +{
    +}
     /**
      * Footer empty
      *
      * @return	void
      */
    -function llxFooter() { }
    +function llxFooter()
    +{
    +}
     
     require '../../master.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    @@ -81,7 +85,7 @@ if (empty($pageid))
         $objectpage=new WebsitePage($db);
         $array=$objectpage->fetchAll($object->id);
     
    -    if (count($array) > 0)
    +    if (is_array($array) && count($array) > 0)
         {
             $firstrep=reset($array);
             $pageid=$firstrep->id;
    @@ -145,4 +149,3 @@ require_once $original_file_osencoded;
     
     
     if (is_object($db)) $db->close();
    -
    diff --git a/htdocs/reception/card.php b/htdocs/reception/card.php
    new file mode 100644
    index 00000000000..2fc0ecfab97
    --- /dev/null
    +++ b/htdocs/reception/card.php
    @@ -0,0 +1,2265 @@
    +<?php
    +/* Copyright (C) 2003-2008	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    + * Copyright (C) 2005-2016	Laurent Destailleur		<eldy@users.sourceforge.net>
    + * Copyright (C) 2005		Simon TOSSER			<simon@kornog-computing.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2011-2017	Juanjo Menent			<jmenent@2byte.es>
    + * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
    + * Copyright (C) 2013       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2014		Cedric GROSS			<c.gross@kreiz-it.fr>
    + * Copyright (C) 2014-2017	Francis Appels			<francis.appels@yahoo.com>
    + * Copyright (C) 2015		Claudio Aschieri		<c.aschieri@19.coop>
    + * Copyright (C) 2016		Ferran Marcet			<fmarcet@2byte.es>
    + * Copyright (C) 2016		Yasser Carreón			<yacasia@gmail.com>
    + * Copyright (C) 2018	   Quentin Vial-Gouteyron    <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *	\file       htdocs/reception/card.php
    + *	\ingroup    reception
    + *	\brief      Card of a reception
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/modules/reception/modules_reception.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/product/stock/class/productlot.class.php';
    +if (! empty($conf->product->enabled) || ! empty($conf->service->enabled))  require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
    +if (! empty($conf->propal->enabled))   require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
    +if (! empty($conf->fournisseur->enabled)){
    +	require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
    +	require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.dispatch.class.php';
    +}
    +if (! empty($conf->productbatch->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php';
    +if (! empty($conf->projet->enabled)) {
    +    require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    +    require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
    +}
    +
    +$langs->loadLangs(array("receptions","companies","bills",'deliveries','orders','stocks','other','propal'));
    +
    +if (!empty($conf->incoterm->enabled)) $langs->load('incoterm');
    +if (! empty($conf->productbatch->enabled)) $langs->load('productbatch');
    +
    +$origin		= GETPOST('origin','alpha')?GETPOST('origin','alpha'):'reception';   // Example: commande, propal
    +$origin_id 	= GETPOST('id','int')?GETPOST('id','int'):'';
    +$id = $origin_id;
    +if (empty($origin_id)) $origin_id  = GETPOST('origin_id','int');    // Id of order or propal
    +if (empty($origin_id)) $origin_id  = GETPOST('object_id','int');    // Id of order or propal
    +if (empty($origin_id)) $origin_id  = GETPOST('originid','int');    // Id of order or propal
    +$ref=GETPOST('ref','alpha');
    +$line_id = GETPOST('lineid','int')?GETPOST('lineid','int'):'';
    +
    +// Security check
    +$socid='';
    +if ($user->societe_id) $socid=$user->societe_id;
    +
    +if ($origin == 'reception') $result=restrictedArea($user, $origin, $id);
    +else {
    +	$result=restrictedArea($user, 'reception');
    +	if($origin == 'supplierorder'){
    +		if (empty($user->rights->fournisseur->commande->lire) && empty($user->rights->fournisseur->commande->read)) accessforbidden();
    +	}else if (empty($user->rights->{$origin}->lire) && empty($user->rights->{$origin}->read)) accessforbidden();
    +}
    +
    +$action		= GETPOST('action','alpha');
    +//Select mail models is same action as presend
    +if (GETPOST('modelselected')) {
    +	$action = 'presend';
    +}
    +$confirm	= GETPOST('confirm','alpha');
    +$cancel     = GETPOST('cancel','alpha');
    +
    +//PDF
    +$hidedetails = (GETPOST('hidedetails','int') ? GETPOST('hidedetails','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS) ? 1 : 0));
    +$hidedesc 	 = (GETPOST('hidedesc','int') ? GETPOST('hidedesc','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC) ?  1 : 0));
    +$hideref 	 = (GETPOST('hideref','int') ? GETPOST('hideref','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0));
    +
    +$object = new Reception($db);
    +$extrafields = new ExtraFields($db);
    +$extrafieldsline = new ExtraFields($db);
    +
    +// fetch optionals attributes and labels
    +$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
    +
    +// fetch optionals attributes lines and labels
    +$extralabelslines=$extrafieldsline->fetch_name_optionals_label($object->table_element_line);
    +
    +
    +// Load object. Make an object->fetch
    +include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php';  // Must be include, not include_once
    +
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$hookmanager->initHooks(array('receptioncard','globalcard'));
    +
    +$permissiondellink=$user->rights->reception->creer;	// Used by the include of actions_dellink.inc.php
    +//var_dump($object->lines[0]->detail_batch);
    +
    +
    +/*
    + * Actions
    + */
    +
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +if (empty($reshook))
    +{
    +    if ($cancel)
    +	{
    +		$action = '';
    +		$object->fetch($id); // show reception also after canceling modification
    +	}
    +
    +	include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php';		// Must be include, not include_once
    +
    +	// Reopen
    +	if ($action == 'reopen' && $user->rights->reception->creer)
    +	{
    +	    $object->fetch($id);
    +	    $result = $object->reOpen();
    +	}
    +
    +	// Confirm back to draft status
    +	if ($action == 'modif' && $user->rights->reception->creer)
    +	{
    +		$result = $object->set_draft($user);
    +		if ($result >= 0)
    +		{
    +			// Define output language
    +			if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
    +			{
    +				$outputlangs = $langs;
    +				$newlang = '';
    +				if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09');
    +				if ($conf->global->MAIN_MULTILANGS && empty($newlang))	$newlang = $object->thirdparty->default_lang;
    +				if (! empty($newlang)) {
    +					$outputlangs = new Translate("", $conf);
    +					$outputlangs->setDefaultLang($newlang);
    +				}
    +				$model=$object->modelpdf;
    +				$ret = $object->fetch($id); // Reload to get new records
    +				$object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
    +			}
    +		}
    +	}
    +
    +	// Set incoterm
    +	if ($action == 'set_incoterms' && !empty($conf->incoterm->enabled))
    +	{
    +	    $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha'));
    +	}
    +
    +	if ($action == 'setref_supplier')
    +	{
    +        $result = $object->fetch($id);
    +        if ($result < 0) {
    +            setEventMessages($object->error, $object->errors, 'errors');
    +        }
    +
    +        $result = $object->setValueFrom('ref_supplier', GETPOST('ref_supplier','alpha'), '', null, 'text', '', $user, 'RECEPTION_MODIFY');
    +        if ($result < 0) {
    +            setEventMessages($object->error, $object->errors, 'errors');
    +            $action = 'editref_supplier';
    +        } else {
    +            header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
    +            exit;
    +        }
    +	}
    +
    +	if ($action == 'update_extras')
    +	{
    +	    // Fill array 'array_options' with data from update form
    +	    $extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
    +	    $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute'));
    +	    if ($ret < 0) $error++;
    +
    +	    if (! $error)
    +	    {
    +	        // Actions on extra fields (by external module or standard code)
    +	        // TODO le hook fait double emploi avec le trigger !!
    +	        $hookmanager->initHooks(array('receptiondao'));
    +	        $parameters = array('id' => $object->id);
    +	        $reshook = $hookmanager->executeHooks('insertExtraFields', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
    +	        if (empty($reshook)) {
    +	            $result = $object->insertExtraFields();
    +       			if ($result < 0)
    +				{
    +					setEventMessages($object->error, $object->errors, 'errors');
    +					$error++;
    +				}
    +	        } else if ($reshook < 0)
    +	            $error++;
    +	    }
    +
    +	    if ($error)
    +	        $action = 'edit_extras';
    +	}
    +
    +	// Create reception
    +	if ($action == 'add' && $user->rights->reception->creer)
    +	{
    +
    +		$error = 0;
    +		$predef = '';
    +
    +		$db->begin();
    +
    +		$object->note = GETPOST('note', 'alpha');
    +		$object->origin = $origin;
    +		$object->origin_id = $origin_id;
    +		$object->fk_project = GETPOST('projectid', 'int');
    +		$object->weight = GETPOST('weight', 'int') == '' ? "NULL" : GETPOST('weight', 'int');
    +		$object->sizeH = GETPOST('sizeH', 'int') == '' ? "NULL" : GETPOST('sizeH', 'int');
    +		$object->sizeW = GETPOST('sizeW', 'int') == '' ? "NULL" : GETPOST('sizeW', 'int');
    +		$object->sizeS = GETPOST('sizeS', 'int') == '' ? "NULL" : GETPOST('sizeS', 'int');
    +		$object->size_units = GETPOST('size_units', 'int');
    +		$object->weight_units = GETPOST('weight_units', 'int');
    +
    +		$date_delivery = dol_mktime(GETPOST('date_deliveryhour', 'int'), GETPOST('date_deliverymin', 'int'), 0, GETPOST('date_deliverymonth', 'int'), GETPOST('date_deliveryday', 'int'), GETPOST('date_deliveryyear', 'int'));
    +
    +		// On va boucler sur chaque ligne du document d'origine pour completer objet reception
    +		// avec info diverses + qte a livrer
    +
    +		if ($object->origin == "supplierorder")
    +			$classname = 'CommandeFournisseur';
    +		else
    +			$classname = ucfirst($object->origin);
    +		$objectsrc = new $classname($db);
    +		$objectsrc->fetch($object->origin_id);
    +
    +
    +
    +		$object->socid = $objectsrc->socid;
    +		$object->ref_supplier = GETPOST('ref_supplier', 'alpha');
    +		$object->model_pdf = GETPOST('model');
    +		$object->date_delivery = $date_delivery;	 // Date delivery planed
    +		$object->fk_delivery_address = $objectsrc->fk_delivery_address;
    +		$object->shipping_method_id = GETPOST('shipping_method_id', 'int');
    +		$object->tracking_number = GETPOST('tracking_number', 'alpha');
    +		$object->ref_int = GETPOST('ref_int', 'alpha');
    +		$object->note_private = GETPOST('note_private', 'none');
    +		$object->note_public = GETPOST('note_public', 'none');
    +		$object->fk_incoterms = GETPOST('incoterm_id', 'int');
    +		$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
    +
    +		$batch_line = array();
    +		$stockLine = array();
    +		$array_options = array();
    +
    +		$totalqty = 0;
    +
    +		$num = 0;
    +		foreach ($_POST as $key => $value)
    +		{
    +			// without batch module enabled
    +
    +			if (strpos($key, 'qtyasked') !== false)
    +			{
    +				$num++;
    +			}
    +		}
    +
    +		for ($i = 1; $i <= $num; $i++)
    +		{
    +			$idl = "idl".$i;
    +
    +			$sub_qty = array();
    +			$subtotalqty = 0;
    +
    +			$j = 0;
    +			$batch = "batchl".$i."_0";
    +			$stockLocation = "ent1".$i."_0";
    +			$qty = "qtyl".$i;
    +
    +
    +
    +				//var_dump(GETPOST($qty,'int')); var_dump($_POST); var_dump($batch);exit;
    +				//reception line for product with no batch management and no multiple stock location
    +			if (GETPOST($qty, 'int') > 0)
    +				$totalqty += GETPOST($qty, 'int');
    +
    +
    +			// Extrafields
    +			$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
    +			$array_options[$i] = $extrafieldsline->getOptionalsFromPost($extralabelsline, $i);
    +		}
    +
    +
    +		if ($totalqty > 0)  // There is at least one thing to ship
    +		{
    +			//var_dump($_POST);exit;
    +			for ($i = 1; $i <= $num; $i++)
    +			{
    +				$lineToTest = '';
    +				foreach($objectsrc->lines as $linesrc){
    +					if($linesrc->id == GETPOST($idl, 'int'))$lineToTest=$linesrc;
    +				}
    +				$qty = "qtyl".$i;
    +				$comment = "comment".$i;
    +				$eatby = "dlc".$i;
    +				$sellby = "dluo".$i;
    +				$batch = "batch".$i;
    +
    +
    +
    +				$timeFormat = '%d/%m/%Y';
    +
    +				if (GETPOST($qty, 'int') > 0 || (GETPOST($qty, 'int') == 0 && $conf->global->RECEPTION_GETS_ALL_ORDER_PRODUCTS))
    +				{
    +					$ent = "entl".$i;
    +
    +					$idl = "idl".$i;
    +
    +					$entrepot_id = is_numeric(GETPOST($ent, 'int')) ? GETPOST($ent, 'int') : GETPOST('entrepot_id', 'int');
    +
    +					if ($entrepot_id < 0)
    +						$entrepot_id = '';
    +					if (!($linesrc->fk_product > 0) && empty($conf->global->STOCK_SUPPORTS_SERVICES))
    +						$entrepot_id = 0;
    +					$eatby = GETPOST($eatby, 'alpha');
    +					$sellby = GETPOST($sellby, 'alpha');
    +					$eatbydate = str_replace('/','-',$eatby);
    +					$sellbydate = str_replace('/','-',$sellby);
    +
    +
    +					$ret = $object->addline($entrepot_id, GETPOST($idl, 'int'), GETPOST($qty, 'int'), $array_options[$i], GETPOST($comment, 'alpha'), strtotime($eatbydate),strtotime($sellbydate), GETPOST($batch, 'alpha'));
    +					if ($ret < 0)
    +					{
    +						setEventMessages($object->error, $object->errors, 'errors');
    +						$error++;
    +					}
    +				}
    +			}
    +
    +
    +	        // Fill array 'array_options' with data from add form
    +	        $ret = $extrafields->setOptionalsFromPost($extralabels, $object);
    +	        if ($ret < 0) $error++;
    +	        if (! $error)
    +	        {
    +	            $ret=$object->create($user);		// This create reception (like Odoo picking) and line of receptions. Stock movement will when validating reception.
    +
    +	            if ($ret <= 0)
    +	            {
    +	                setEventMessages($object->error, $object->errors, 'errors');
    +	                $error++;
    +	            }
    +	        }
    +	    }
    +	    else
    +	    {
    +	        setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("QtyToReceive").'/'.$langs->transnoentitiesnoconv("Warehouse")), null, 'errors');
    +	        $error++;
    +	    }
    +
    +	    if (! $error)
    +	    {
    +	        $db->commit();
    +	        header("Location: card.php?id=".$object->id);
    +	        exit;
    +	    }
    +	    else
    +	    {
    +	        $db->rollback();
    +	        $_GET["commande_id"]=GETPOST('commande_id','int');
    +	        $action='create';
    +	    }
    +	}
    +
    +	else if ($action == 'confirm_valid' && $confirm == 'yes' &&
    +        ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->reception->creer))
    +       	|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->reception->reception_advance->validate)))
    +	)
    +	{
    +	    $object->fetch_thirdparty();
    +
    +	    $result = $object->valid($user);
    +
    +	    if ($result < 0)
    +	    {
    +			$langs->load("errors");
    +	        setEventMessages($langs->trans($object->error), null, 'errors');
    +	    }
    +	    else
    +	    {
    +	    	// Define output language
    +	    	if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
    +	    	{
    +	    		$outputlangs = $langs;
    +	    		$newlang = '';
    +	    		if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09');
    +	    		if ($conf->global->MAIN_MULTILANGS && empty($newlang))	$newlang = $object->thirdparty->default_lang;
    +	    		if (! empty($newlang)) {
    +	    			$outputlangs = new Translate("", $conf);
    +	    			$outputlangs->setDefaultLang($newlang);
    +	    		}
    +	    		$model=$object->modelpdf;
    +	    		$ret = $object->fetch($id); // Reload to get new records
    +
    +	    		$result=$object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
    +	    		if ($result < 0) dol_print_error($db,$result);
    +	    	}
    +	    }
    +	}
    +
    +	else if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->reception->supprimer)
    +	{
    +	    $result = $object->delete($user);
    +	    if ($result > 0)
    +	    {
    +	        header("Location: ".DOL_URL_ROOT.'/reception/index.php');
    +	        exit;
    +	    }
    +	    else
    +		{
    +			setEventMessages($object->error, $object->errors, 'errors');
    +	    }
    +	}
    +	// TODO add alternative status
    +	/*else if ($action == 'reopen' && (! empty($user->rights->reception->creer) || ! empty($user->rights->reception->reception_advance->validate)))
    +	{
    +	    $result = $object->setStatut(0);
    +	    if ($result < 0)
    +	    {
    +	        setEventMessages($object->error, $object->errors, 'errors');
    +	    }
    +	}*/
    +
    +	else if ($action == 'setdate_livraison' && $user->rights->reception->creer)
    +	{
    +	    //print "x ".$_POST['liv_month'].", ".$_POST['liv_day'].", ".$_POST['liv_year'];
    +	    $datedelivery=dol_mktime(GETPOST('liv_hour','int'), GETPOST('liv_min','int'), 0, GETPOST('liv_month','int'), GETPOST('liv_day','int'), GETPOST('liv_year','int'));
    +
    +	    $object->fetch($id);
    +	    $result=$object->set_date_livraison($user,$datedelivery);
    +	    if ($result < 0)
    +	    {
    +	        setEventMessages($object->error, $object->errors, 'errors');
    +	    }
    +	}
    +
    +	// Action update
    +	else if ($action == 'settracking_number' || $action == 'settracking_url'
    +	|| $action == 'settrueWeight'
    +	|| $action == 'settrueWidth'
    +	|| $action == 'settrueHeight'
    +	|| $action == 'settrueDepth'
    +	|| $action == 'setshipping_method_id')
    +	{
    +	    $error=0;
    +
    +	    if ($action == 'settracking_number')		$object->tracking_number = trim(GETPOST('tracking_number','alpha'));
    +	    if ($action == 'settracking_url')		$object->tracking_url = trim(GETPOST('tracking_url','int'));
    +	    if ($action == 'settrueWeight')	{
    +	    	$object->trueWeight = trim(GETPOST('trueWeight','int'));
    +			$object->weight_units = GETPOST('weight_units','int');
    +	    }
    +	    if ($action == 'settrueWidth')			$object->trueWidth = trim(GETPOST('trueWidth','int'));
    +	    if ($action == 'settrueHeight'){
    +	    				$object->trueHeight = trim(GETPOST('trueHeight','int'));
    +						$object->size_units = GETPOST('size_units','int');
    +		}
    +	    if ($action == 'settrueDepth')			$object->trueDepth = trim(GETPOST('trueDepth','int'));
    +	    if ($action == 'setshipping_method_id')	$object->shipping_method_id = trim(GETPOST('shipping_method_id','int'));
    +
    +	    if (! $error)
    +	    {
    +	        if ($object->update($user) >= 0)
    +	        {
    +	            header("Location: card.php?id=".$object->id);
    +	            exit;
    +	        }
    +	        setEventMessages($object->error, $object->errors, 'errors');
    +	    }
    +
    +	    $action="";
    +	}
    +
    +	// Build document
    +	else if ($action == 'builddoc')	// En get ou en post
    +	{
    +		// Save last template used to generate document
    +		if (GETPOST('model')) $object->setDocModel($user, GETPOST('model','alpha'));
    +
    +	    // Define output language
    +	    $outputlangs = $langs;
    +	    $newlang='';
    +	    if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang=GETPOST('lang_id','aZ09');
    +	    if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$reception->thirdparty->default_lang;
    +	    if (! empty($newlang))
    +	    {
    +	        $outputlangs = new Translate("",$conf);
    +	        $outputlangs->setDefaultLang($newlang);
    +	    }
    +		$result = $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
    +	    if ($result <= 0)
    +	    {
    +			setEventMessages($object->error, $object->errors, 'errors');
    +	        $action='';
    +	    }
    +	}
    +
    +	// Delete file in doc form
    +	elseif ($action == 'remove_file')
    +	{
    +		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +
    +		$upload_dir =	$conf->reception->dir_output ;
    +		$file =	$upload_dir	. '/' .	GETPOST('file');
    +		$ret=dol_delete_file($file,0,0,0,$object);
    +		if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
    +		else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
    +	}
    +
    +	elseif ($action == 'classifybilled')
    +	{
    +	    $object->fetch($id);
    +	    $result = $object->set_billed();
    +	    if($result >= 0) {
    +	    	header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
    +	    	exit();
    +	    }
    +	}
    +
    +	elseif ($action == 'classifyclosed')
    +	{
    +	    $object->fetch($id);
    +	    $result = $object->setClosed();
    +	    if($result >= 0) {
    +	    	header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
    +	    	exit();
    +	    }
    +	}
    +
    +	/*
    +	 *  delete a line
    +	 */
    +	elseif ($action == 'deleteline' && ! empty($line_id))
    +	{
    +		$object->fetch($id);
    +		$lines = $object->lines;
    +		$line = new CommandeFournisseurDispatch($db);
    +
    +		$num_prod = count($lines);
    +		for ($i = 0 ; $i < $num_prod ; $i++)
    +		{
    +			if ($lines[$i]->id == $line_id)
    +			{
    +					// delete single warehouse line
    +					$line->id = $line_id;
    +					if (! $error && $line->delete($user) < 0)
    +					{
    +						$error++;
    +					}
    +			}
    +			unset($_POST["lineid"]);
    +		}
    +
    +		if(! $error) {
    +			header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id);
    +			exit();
    +		}
    +		else
    +		{
    +			setEventMessages($line->error, $line->errors, 'errors');
    +		}
    +	}
    +
    +	/*
    +	 *  Update a line
    +	 */
    +	else if ($action == 'updateline' && $user->rights->reception->creer && GETPOST('save'))
    +	{
    +		// Clean parameters
    +		$qty = 0;
    +		$entrepot_id = 0;
    +		$batch_id = 0;
    +
    +		$lines = $object->lines;
    +		$num_prod = count($lines);
    +		for ($i = 0; $i < $num_prod; $i++)
    +		{
    +			if ($lines[$i]->id == $line_id)  // we have found line to update
    +			{
    +				$line = new CommandeFournisseurDispatch($db);
    +				$line->fetch($line_id);
    +				// Extrafields Lines
    +				$extrafieldsline = new ExtraFields($db);
    +				$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
    +				$line->array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
    +
    +
    +				$line->fk_product = $lines[$i]->fk_product;
    +
    +
    +				if ($lines[$i]->fk_product > 0)
    +				{
    +					// single warehouse reception line
    +					$stockLocation = "entl".$line_id;
    +					$qty = "qtyl".$line_id;
    +					$comment = "comment".$line_id;
    +
    +
    +					$line->id = $line_id;
    +					$line->fk_entrepot = GETPOST($stockLocation, 'int');
    +					$line->qty = GETPOST($qty, 'int');
    +					$line->comment = GETPOST($comment, 'alpha');
    +
    +					if(!empty($conf->productbatch->enabled)){
    +						$batch = "batch".$line_id;
    +						$dlc = "dlc".$line_id;
    +						$dluo = "dluo".$line_id;
    +						$eatby = GETPOST($dlc, 'alpha');
    +						$eatbydate = str_replace('/','-',$eatby);
    +						$sellby = GETPOST($dluo, 'alpha');
    +						$sellbydate = str_replace('/','-',$sellby);
    +						$line->batch = GETPOST($batch, 'alpha');
    +						$line->eatby = strtotime($eatbydate);
    +						$line->sellby = strtotime($sellbydate);
    +					}
    +
    +					if ($line->update($user) < 0)
    +					{
    +						setEventMessages($line->error, $line->errors, 'errors');
    +						$error++;
    +					}
    +				}
    +				else // Product no predefined
    +				{
    +					$qty = "qtyl".$line_id;
    +					$line->id = $line_id;
    +					$line->qty = GETPOST($qty, 'int');
    +					$line->fk_entrepot = 0;
    +					if ($line->update($user) < 0)
    +					{
    +						setEventMessages($line->error, $line->errors, 'errors');
    +						$error++;
    +					}
    +					unset($_POST[$qty]);
    +				}
    +			}
    +		}
    +
    +		unset($_POST["lineid"]);
    +
    +		if (! $error) {
    +			if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) {
    +				// Define output language
    +				$outputlangs = $langs;
    +				$newlang = '';
    +				if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09'))
    +					$newlang = GETPOST('lang_id','aZ09');
    +				if ($conf->global->MAIN_MULTILANGS && empty($newlang))
    +					$newlang = $object->thirdparty->default_lang;
    +				if (! empty($newlang)) {
    +					$outputlangs = new Translate("", $conf);
    +					$outputlangs->setDefaultLang($newlang);
    +				}
    +
    +				$ret = $object->fetch($object->id); // Reload to get new records
    +				$object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
    +			}
    +		}
    +		else
    +		{
    +			header('Location: ' . $_SERVER['PHP_SELF'] . '?id=' . $object->id); // Pour reaffichage de la fiche en cours d'edition
    +			exit();
    +		}
    +	}
    +
    +	else if ($action == 'updateline' && $user->rights->reception->creer && GETPOST('cancel','alpha') == $langs->trans('Cancel')) {
    +		header('Location: ' . $_SERVER['PHP_SELF'] . '?id=' . $object->id); // Pour reaffichage de la fiche en cours d'edition
    +		exit();
    +	}
    +
    +	include DOL_DOCUMENT_ROOT.'/core/actions_printing.inc.php';
    +
    +	// Actions to send emails
    +	if (empty($id)) $id=$facid;
    +	$trigger_name='RECEPTION_SENTBYMAIL';
    +	$paramname='id';
    +	$mode='emailfromreception';
    +	$trackid='shi'.$object->id;
    +	include DOL_DOCUMENT_ROOT.'/core/actions_sendmails.inc.php';
    +}
    +
    +
    +/*
    + * View
    + */
    +
    +llxHeader('',$langs->trans('Reception'),'Reception');
    +
    +$form = new Form($db);
    +$formfile = new FormFile($db);
    +$formproduct = new FormProduct($db);
    +if (! empty($conf->projet->enabled)) { $formproject = new FormProjets($db); }
    +
    +$product_static = new Product($db);
    +$reception_static = new Reception($db);
    +$warehousestatic = new Entrepot($db);
    +
    +if ($action == 'create2')
    +{
    +    print load_fiche_titre($langs->trans("CreateReception")).'<br>';
    +    print $langs->trans("ReceptionCreationIsDoneFromOrder");
    +    $action=''; $id=''; $ref='';
    +}
    +
    +// Mode creation.
    +if ($action == 'create')
    +{
    +    $recept = new Reception($db);
    +
    +    print load_fiche_titre($langs->trans("CreateReception"));
    +    if (! $origin)
    +    {
    +        setEventMessages($langs->trans("ErrorBadParameters"), null, 'errors');
    +    }
    +
    +    if ($origin)
    +    {
    +		if($origin == 'supplierorder')$classname = 'CommandeFournisseur';
    +        else $classname = ucfirst($origin);
    +
    +        $object = new $classname($db);
    +        if ($object->fetch($origin_id))	// This include the fetch_lines
    +        {
    +            $soc = new Societe($db);
    +            $soc->fetch($object->socid);
    +
    +            $author = new User($db);
    +            $author->fetch($object->user_author_id);
    +
    +            if (! empty($conf->stock->enabled)) $entrepot = new Entrepot($db);
    +
    +            print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
    +            print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +            print '<input type="hidden" name="action" value="add">';
    +            print '<input type="hidden" name="origin" value="'.$origin.'">';
    +            print '<input type="hidden" name="origin_id" value="'.$object->id.'">';
    +            print '<input type="hidden" name="ref_int" value="'.$object->ref_int.'">';
    +            if (GETPOST('entrepot_id','int'))
    +            {
    +                print '<input type="hidden" name="entrepot_id" value="'.GETPOST('entrepot_id','int').'">';
    +            }
    +
    +            dol_fiche_head('');
    +
    +            print '<table class="border centpercent">';
    +
    +            // Ref
    +            print '<tr><td class="titlefieldcreate fieldrequired">';
    +            if ($origin == 'supplierorder' && ! empty($conf->fournisseur->enabled))
    +            {
    +                print $langs->trans("RefOrder").'</td><td colspan="3"><a href="'.DOL_URL_ROOT.'/fourn/commande/card.php?id='.$object->id.'">'.img_object($langs->trans("ShowOrder"),'order').' '.$object->ref;
    +            }
    +            if ($origin == 'propal' && ! empty($conf->propal->enabled))
    +            {
    +                print $langs->trans("RefProposal").'</td><td colspan="3"><a href="'.DOL_URL_ROOT.'/comm/card.php?id='.$object->id.'">'.img_object($langs->trans("ShowProposal"),'propal').' '.$object->ref;
    +            }
    +            print '</a></td>';
    +            print "</tr>\n";
    +            // Ref client
    +            print '<tr><td>';
    +            if ($origin == 'supplier_order') print $langs->trans('RefSupplierOrder');
    +            else print $langs->trans('RefSupplier');
    +            print '</td><td colspan="3">';
    +            print '<input type="text" name="ref_supplier" value="'.$object->ref_supplier.'" />';
    +            print '</td>';
    +            print '</tr>';
    +
    +            // Tiers
    +            print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans('Company').'</td>';
    +            print '<td colspan="3">'.$soc->getNomUrl(1).'</td>';
    +            print '</tr>';
    +
    +            // Project
    +            if (! empty($conf->projet->enabled))
    +            {
    +                $projectid = GETPOST('projectid','int')?GETPOST('projectid','int'):0;
    +                if(empty($projectid) && ! empty($object->fk_project)) $projectid = $object->fk_project;
    +                if ($origin == 'project') $projectid = ($originid ? $originid : 0);
    +
    +                $langs->load("projects");
    +                print '<tr>';
    +                print '<td>' . $langs->trans("Project") . '</td><td colspan="2">';
    +                $numprojet = $formproject->select_projects($soc->id, $projectid, 'projectid', 0);
    +                print ' &nbsp; <a href="'.DOL_URL_ROOT.'/projet/card.php?socid=' . $soc->id . '&action=create&status=1&backtopage='.urlencode($_SERVER["PHP_SELF"].'?action=create&socid='.$soc->id).'">' . $langs->trans("AddProject") . '</a>';
    +                print '</td>';
    +                print '</tr>';
    +            }
    +
    +            // Date delivery planned
    +            print '<tr><td>'.$langs->trans("DateDeliveryPlanned").'</td>';
    +            print '<td colspan="3">';
    +            //print dol_print_date($object->date_livraison,"day");	// date_livraison come from order and will be stored into date_delivery planed.
    +            $date_delivery = ($date_delivery?$date_delivery:$object->date_livraison); // $date_delivery comes from GETPOST
    +            print $form->select_date($date_delivery?$date_delivery:-1,'date_delivery',1,1,1);
    +            print "</td>\n";
    +            print '</tr>';
    +
    +            // Note Public
    +            print '<tr><td>'.$langs->trans("NotePublic").'</td>';
    +            print '<td colspan="3">';
    +            $doleditor = new DolEditor('note_public', $object->note_public, '', 60, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, '90%');
    +            print $doleditor->Create(1);
    +            print "</td></tr>";
    +
    +            // Note Private
    +            if ($object->note_private && ! $user->societe_id)
    +            {
    +                print '<tr><td>'.$langs->trans("NotePrivate").'</td>';
    +                print '<td colspan="3">';
    +                $doleditor = new DolEditor('note_private', $object->note_private, '', 60, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, '90%');
    +        		print $doleditor->Create(1);
    +                print "</td></tr>";
    +            }
    +
    +            // Weight
    +            print '<tr><td>';
    +            print $langs->trans("Weight");
    +            print '</td><td colspan="3"><input name="weight" size="4" value="'.GETPOST('weight','int').'"> ';
    +            $text=$formproduct->select_measuring_units("weight_units","weight",GETPOST('weight_units','int'));
    +            $htmltext=$langs->trans("KeepEmptyForAutoCalculation");
    +            print $form->textwithpicto($text, $htmltext);
    +            print '</td></tr>';
    +            // Dim
    +            print '<tr><td>';
    +            print $langs->trans("Width").' x '.$langs->trans("Height").' x '.$langs->trans("Depth");
    +            print ' </td><td colspan="3"><input name="sizeW" size="4" value="'.GETPOST('sizeW','int').'">';
    +            print ' x <input name="sizeH" size="4" value="'.GETPOST('sizeH','int').'">';
    +            print ' x <input name="sizeS" size="4" value="'.GETPOST('sizeS','int').'">';
    +            print ' ';
    +            $text=$formproduct->select_measuring_units("size_units","size");
    +            $htmltext=$langs->trans("KeepEmptyForAutoCalculation");
    +            print $form->textwithpicto($text, $htmltext);
    +            print '</td></tr>';
    +
    +            // Delivery method
    +            print "<tr><td>".$langs->trans("ReceptionMethod")."</td>";
    +            print '<td colspan="3">';
    +            $recept->fetch_delivery_methods();
    +            print $form->selectarray("shipping_method_id", $recept->meths, GETPOST('shipping_method_id','int'),1,0,0,"",1);
    +            if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
    +            print "</td></tr>\n";
    +
    +            // Tracking number
    +            print "<tr><td>".$langs->trans("TrackingNumber")."</td>";
    +            print '<td colspan="3">';
    +            print '<input name="tracking_number" size="20" value="'.GETPOST('tracking_number','alpha').'">';
    +            print "</td></tr>\n";
    +
    +            // Other attributes
    +            $parameters = array('objectsrc' => $objectsrc, 'colspan' => ' colspan="3"', 'socid'=>$socid);
    +            $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$recept,$action);    // Note that $action and $object may have been modified by hook
    +            print $hookmanager->resPrint;
    +
    +			if (empty($reshook) && ! empty($extrafields->attribute_label)) {
    +				// copy from order
    +				$orderExtrafields = new Extrafields($db);
    +				$orderExtrafieldLabels = $orderExtrafields->fetch_name_optionals_label($object->table_element);
    +				if ($object->fetch_optionals($object->id, $orderExtrafieldLabels) > 0) {
    +					$recept->array_options = array_merge($recept->array_options, $object->array_options);
    +				}
    +				print $object->showOptionals($extrafields, 'edit');
    +			}
    +
    +
    +            // Incoterms
    +			if (!empty($conf->incoterm->enabled))
    +			{
    +				print '<tr>';
    +				print '<td><label for="incoterm_id">'.$form->textwithpicto($langs->trans("IncotermLabel"), $object->libelle_incoterms, 1).'</label></td>';
    +		        print '<td colspan="3" class="maxwidthonsmartphone">';
    +		        print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms)?$object->location_incoterms:''));
    +				print '</td></tr>';
    +			}
    +
    +            // Document model
    +			include_once DOL_DOCUMENT_ROOT . '/core/modules/reception/modules_reception.php';
    +			$liste = ModelePdfReception::liste_modeles($db);
    +
    +			if (count($liste) > 1)
    +			{
    +    			print "<tr><td>".$langs->trans("DefaultModel")."</td>";
    +                print '<td colspan="3">';
    +    			print $form->selectarray('model', $liste, $conf->global->RECEPTION_ADDON_PDF);
    +                print "</td></tr>\n";
    +			}
    +
    +            print "</table>";
    +
    +            dol_fiche_end();
    +
    +
    +            // Reception lines
    +			$numAsked=0;
    +			$dispatchLines = array();
    +			foreach ($_POST as $key => $value)
    +			{
    +				// without batch module enabled
    +				if (preg_match('/^product_([0-9]+)_([0-9]+)$/i', $key, $reg))
    +				{
    +					$numAsked ++;
    +
    +					// $numline=$reg[2] + 1; // line of product
    +					$numline = $numAsked;
    +					$prod = "product_".$reg[1].'_'.$reg[2];
    +					$qty = "qty_".$reg[1].'_'.$reg[2];
    +					$ent = "entrepot_".$reg[1].'_'.$reg[2];
    +					$pu = "pu_".$reg[1].'_'.$reg[2]; // This is unit price including discount
    +					$fk_commandefourndet = "fk_commandefourndet_".$reg[1].'_'.$reg[2];
    +					$dispatchLines[$numAsked]=array('prod' => GETPOST($prod, 'int'), 'qty' =>GETPOST($qty), 'ent' =>GETPOST($ent, 'int'), 'pu' =>GETPOST($pu), 'comment' =>GETPOST('comment'),'fk_commandefourndet' => GETPOST($fk_commandefourndet, 'int'));
    +				}
    +
    +				// with batch module enabled
    +				if (preg_match('/^product_batch_([0-9]+)_([0-9]+)$/i', $key, $reg))
    +				{
    +					$numAsked++;
    +
    +					// eat-by date dispatch
    +					// $numline=$reg[2] + 1; // line of product
    +					$numline = $numAsked;
    +					$prod = 'product_batch_'.$reg[1].'_'.$reg[2];
    +					$qty = 'qty_'.$reg[1].'_'.$reg[2];
    +					$ent = 'entrepot_'.$reg[1].'_'.$reg[2];
    +					$pu = 'pu_'.$reg[1].'_'.$reg[2];
    +					$lot = 'lot_number_'.$reg[1].'_'.$reg[2];
    +					$dDLUO = dol_mktime(12, 0, 0, $_POST['dluo_'.$reg[1].'_'.$reg[2].'month'], $_POST['dluo_'.$reg[1].'_'.$reg[2].'day'], $_POST['dluo_'.$reg[1].'_'.$reg[2].'year']);
    +					$dDLC = dol_mktime(12, 0, 0, $_POST['dlc_'.$reg[1].'_'.$reg[2].'month'], $_POST['dlc_'.$reg[1].'_'.$reg[2].'day'], $_POST['dlc_'.$reg[1].'_'.$reg[2].'year']);
    +					$fk_commandefourndet = 'fk_commandefourndet_'.$reg[1].'_'.$reg[2];
    +					$dispatchLines[$numAsked]=array('prod' => GETPOST($prod, 'int'), 'qty' =>GETPOST($qty), 'ent' =>GETPOST($ent, 'int'), 'pu' =>GETPOST($pu), 'comment' =>GETPOST('comment'),'fk_commandefourndet' => GETPOST($fk_commandefourndet, 'int'),'DLC'=> $dDLC,'DLUO'=> $dDLUO,'lot'=> GETPOST($lot, 'alpha'));
    +				}
    +			}
    +
    +
    +            print '<script type="text/javascript" language="javascript">
    +            jQuery(document).ready(function() {
    +	            jQuery("#autofill").click(function() {';
    +    	    	$i=1;
    +    	    	while($i <= $numAsked)
    +    	    	{
    +    	    		print 'jQuery("#qtyl'.$i.'").val(jQuery("#qtyasked'.$i.'").val() - jQuery("#qtydelivered'.$i.'").val());'."\n";
    +    	    		$i++;
    +    	    	}
    +        		print '});
    +	            jQuery("#autoreset").click(function() {';
    +    	    	$i=1;
    +    	    	while($i <= $numAsked)
    +    	    	{
    +    	    		print 'jQuery("#qtyl'.$i.'").val(0);'."\n";
    +    	    		$i++;
    +    	    	}
    +        		print '});
    +        	});
    +            </script>';
    +
    +
    +            print '<br>';
    +
    +
    +            print '<table class="noborder" width="100%">';
    +
    +
    +            // Load receptions already done for same order
    +            $object->loadReceptions();
    +
    +            if ($numAsked)
    +            {
    +                print '<tr class="liste_titre">';
    +                print '<td>'.$langs->trans("Description").'</td>';
    +                print '<td align="center">'.$langs->trans("QtyOrdered").'</td>';
    +                print '<td align="center">'.$langs->trans("QtyReceived").'</td>';
    +                print '<td align="center">'.$langs->trans("QtyToReceive");
    +				if (empty($conf->productbatch->enabled))
    +				{
    +	                print ' <br>(<a href="#" id="autofill">'.$langs->trans("Fill").'</a>';
    +	                print ' / <a href="#" id="autoreset">'.$langs->trans("Reset").'</a>)';
    +				}
    +                print '</td>';
    +                if (! empty($conf->stock->enabled))
    +                {
    +					print '<td align="left">'.$langs->trans("Warehouse").' ('.$langs->trans("Stock").')</td>';
    +                }
    +				if (!empty($conf->productbatch->enabled))
    +				{
    +					print '<td align="left">'.$langs->trans("batch_number").'</td>';
    +					print '<td align="left">'.$langs->trans("EatByDate").'</td>';
    +					print '<td align="left">'.$langs->trans("SellByDate").'</td>';
    +				}
    +                print "</tr>\n";
    +            }
    +
    +            $indiceAsked =1;
    +            while ($indiceAsked <= $numAsked)
    +            {
    +                $product = new Product($db);
    +				foreach($object->lines as $supplierLine){
    +					if($dispatchLines[$indiceAsked]['fk_commandefourndet'] == $supplierLine->id){
    +						$line = $supplierLine;
    +						break;
    +					}
    +				}
    +
    +
    +                // Show product and description
    +                $type=$line->product_type?$line->product_type:$line->fk_product_type;
    +                // Try to enhance type detection using date_start and date_end for free lines where type
    +                // was not saved.
    +                if (! empty($line->date_start)) $type=1;
    +                if (! empty($line->date_end)) $type=1;
    +
    +                print '<!-- line '.$line->rowid.' for product -->'."\n";
    +                print '<tr class="oddeven">'."\n";
    +
    +
    +                // Product label
    +                if ($line->fk_product > 0)  // If predefined product
    +                {
    +                    $product->fetch($line->fk_product);
    +                    $product->load_stock('warehouseopen');	// Load all $product->stock_warehouse[idwarehouse]->detail_batch
    +                    //var_dump($product->stock_warehouse[1]);
    +
    +                    print '<td>';
    +                    print '<a name="'.$line->rowid.'"></a>'; // ancre pour retourner sur la ligne
    +
    +                    // Show product and description
    +                    $product_static->type=$line->fk_product_type;
    +                    $product_static->id=$line->fk_product;
    +                    $product_static->ref=$line->ref;
    +                    $product_static->status_batch=$line->product_tobatch;
    +
    +                    $text=$product_static->getNomUrl(1);
    +                    $text.= ' - '.(! empty($line->label)?$line->label:$line->product_label);
    +                    $description=($conf->global->PRODUIT_DESC_IN_FORM?'':dol_htmlentitiesbr($line->desc));
    +                    print $form->textwithtooltip($text,$description,3,'','',$i);
    +
    +                    // Show range
    +                    print_date_range($db->jdate($line->date_start),$db->jdate($line->date_end));
    +
    +                    // Add description in form
    +                    if (! empty($conf->global->PRODUIT_DESC_IN_FORM))
    +                    {
    +                        print ($line->desc && $line->desc!=$line->product_label)?'<br>'.dol_htmlentitiesbr($line->desc):'';
    +                    }
    +
    +                    print '</td>';
    +                }
    +                else
    +				{
    +				    print "<td>";
    +                    if ($type==1) $text = img_object($langs->trans('Service'),'service');
    +                    else $text = img_object($langs->trans('Product'),'product');
    +
    +                    if (! empty($line->label)) {
    +                    	$text.= ' <strong>'.$line->label.'</strong>';
    +                    	print $form->textwithtooltip($text,$line->desc,3,'','',$i);
    +                    } else {
    +                    	print $text.' '.nl2br($line->desc);
    +                    }
    +
    +                    // Show range
    +                    print_date_range($db->jdate($line->date_start),$db->jdate($line->date_end));
    +                    print "</td>\n";
    +                }
    +
    +                // Qty
    +                print '<td align="center">'.$line->qty;
    +				print '<input type="hidden" name="fk_commandefournisseurdet'.$indiceAsked.'" value=\''.$line->id.'\' />';
    +				print '<textarea style="display:none;"  name="comment'.$indiceAsked.'" >'.$line->desc.'</textarea>';
    +                print '<input name="qtyasked'.$indiceAsked.'" id="qtyasked'.$indiceAsked.'" type="hidden" value="'.$line->qty.'">';
    +                print '</td>';
    +                $qtyProdCom=$line->qty;
    +
    +                // Qty already received
    +                print '<td align="center">';
    +
    +
    +                $quantityDelivered = $object->receptions[$line->id];
    +                print $quantityDelivered;
    +                print '<input name="qtydelivered'.$indiceAsked.'" id="qtydelivered'.$indiceAsked.'" type="hidden" value="'.$quantityDelivered.'">';
    +                print '</td>';
    +
    +
    +				if ($line->product_type == 1 && empty($conf->global->STOCK_SUPPORTS_SERVICES))
    +				{
    +					$quantityToBeDelivered = 0;
    +				}
    +				else
    +				{
    +					$quantityToBeDelivered = $dispatchLines[$indiceAsked]['qty'];
    +				}
    +                $warehouse_id = $dispatchLines[$indiceAsked]['ent'];
    +
    +
    +				$warehouseObject = null;
    +				if ( !empty($conf->stock->enabled))     // If warehouse was already selected or if product is not a predefined, we go into this part with no multiwarehouse selection
    +				{
    +				    print '<!-- Case warehouse already known or product not a predefined product -->';
    +
    +					$stock = + $product->stock_warehouse[$dispatchLines[$indiceAsked]['ent']]->real; // Convert to number
    +					$deliverableQty=$dispatchLines[$indiceAsked]['qty'];
    +
    +
    +
    +						// Quantity to send
    +						print '<td align="center">';
    +						if ($line->product_type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
    +						{
    +                            if (GETPOST('qtyl'.$indiceAsked, 'int')) $defaultqty=GETPOST('qtyl'.$indiceAsked, 'int');
    +                            print '<input name="idl'.$indiceAsked.'" type="hidden" value="'.$line->id.'">';
    +							print '<input name="qtyl'.$indiceAsked.'" id="qtyl'.$indiceAsked.'" type="text" size="4" value="'.$deliverableQty.'">';
    +						}
    +						else print $langs->trans("NA");
    +						print '</td>';
    +
    +						// Stock
    +						if (! empty($conf->stock->enabled))
    +						{
    +							print '<td align="left">';
    +							if ($line->product_type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))   // Type of product need stock change ?
    +							{
    +								// Show warehouse combo list
    +								$ent = "entl".$indiceAsked;
    +								$idl = "idl".$indiceAsked;
    +								$tmpentrepot_id = is_numeric(GETPOST($ent,'int'))?GETPOST($ent,'int'):$warehouse_id;
    +								if ($line->fk_product > 0)
    +								{
    +									print '<!-- Show warehouse selection -->';
    +									print $formproduct->selectWarehouses($tmpentrepot_id, 'entl'.$indiceAsked, '', 0, 0, $line->fk_product, '', 1);
    +								}
    +							}
    +							else
    +							{
    +								print $langs->trans("Service");
    +							}
    +							print '</td>';
    +						}
    +
    +						if (!empty($conf->productbatch->enabled))
    +						{
    +							if (!empty($product->status_batch))
    +							{
    +								print '<td><input name="batch'.$indiceAsked.'" value="'.$dispatchLines[$indiceAsked]['lot'].'"></td>';
    +								print '<td>';
    +								print $form->select_date($dispatchLines[$indiceAsked]['DLC'],'dlc' . $indiceAsked, '', '', 1, "");
    +								print '</td>';
    +								print '<td>';
    +								print $form->select_date($dispatchLines[$indiceAsked]['DLUO'],'dluo' . $indiceAsked, '', '', 1, "");
    +								print '</td>';
    +							}
    +							else {
    +								print '<td colspan="3"></td>';
    +							}
    +						}
    +						print "</tr>\n";
    +				}
    +
    +				//Display lines extrafields
    +				if (is_array($extralabelslines) && count($extralabelslines)>0)
    +				{
    +					$colspan=5;
    +					if($conf->productbatch->enabled)$colspan+=3;
    +					$orderLineExtrafields = new Extrafields($db);
    +					$orderLineExtrafieldLabels = $orderLineExtrafields->fetch_name_optionals_label($object->table_element_line);
    +					$srcLine = new CommandeFournisseurLigne($db);
    +					$srcLine->fetch_optionals($line->id,$orderLineExtrafieldLabels); // fetch extrafields also available in orderline
    +					$line = new CommandeFournisseurDispatch($db);
    +					$line->fetch_optionals($object->id,$extralabelslines);
    +					$line->array_options = array_merge($line->array_options, $srcLine->array_options);
    +					print '<tr class="oddeven">';
    +					print $line->showOptionals($extrafieldsline, 'edit', array('style'=>'class="oddeven"', 'colspan'=>$colspan),$indiceAsked);
    +					print '</tr>';
    +				}
    +
    +                $indiceAsked++;
    +            }
    +
    +            print "</table>";
    +
    +            print '<br>';
    +
    +            print '<div class="center">';
    +            print '<input type="submit" class="button" name="add" value="'.dol_escape_htmltag($langs->trans("Create")).'">';
    +            print '&nbsp; ';
    +            print '<input type="'.($backtopage?"submit":"button").'" class="button" name="cancel" value="'.dol_escape_htmltag($langs->trans("Cancel")).'"'.($backtopage?'':' onclick="javascript:history.go(-1)"').'>';	// Cancel for create does not post form if we don't know the backtopage
    +            print '</div>';
    +
    +            print '</form>';
    +
    +            print '<br>';
    +        }
    +        else
    +		{
    +            dol_print_error($db);
    +        }
    +    }
    +}
    +else if ($id || $ref)
    +/* *************************************************************************** */
    +/*                                                                             */
    +/* Edit and view mode                                                          */
    +/*                                                                             */
    +/* *************************************************************************** */
    +{
    +	$lines = $object->lines;
    +
    +	$num_prod = count($lines);
    +
    +	if ($object->id > 0)
    +	{
    +		if (!empty($object->origin) && $object->origin_id > 0)
    +		{
    +			$object->origin = 'CommandeFournisseur';
    +			$typeobject = $object->origin;
    +			$origin = $object->origin;
    +			$origin_id = $object->origin_id;
    +			$object->fetch_origin();         // Load property $object->commande, $object->propal, ...
    +		}
    +
    +		$soc = new Societe($db);
    +		$soc->fetch($object->socid);
    +
    +		$res = $object->fetch_optionals($object->id, $extralabels);
    +
    +		$head=reception_prepare_head($object);
    +		dol_fiche_head($head, 'reception', $langs->trans("Reception"), -1, 'reception');
    +
    +		$formconfirm='';
    +
    +		// Confirm deleteion
    +		if ($action == 'delete')
    +		{
    +			$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('DeleteReception'),$langs->trans("ConfirmDeleteReception",$object->ref),'confirm_delete','',0,1);
    +		}
    +
    +		// Confirmation validation
    +		if ($action == 'valid')
    +		{
    +			$objectref = substr($object->ref, 1, 4);
    +			if ($objectref == 'PROV')
    +			{
    +				$numref = $object->getNextNumRef($soc);
    +			}
    +			else
    +			{
    +				$numref = $object->ref;
    +			}
    +
    +			$text = $langs->trans("ConfirmValidateReception",$numref);
    +
    +			if (! empty($conf->notification->enabled))
    +			{
    +				require_once DOL_DOCUMENT_ROOT .'/core/class/notify.class.php';
    +				$notify=new Notify($db);
    +				$text.='<br>';
    +				$text.=$notify->confirmMessage('RECEPTION_VALIDATE',$object->socid, $object);
    +			}
    +
    +			$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('ValidateReception'),$text,'confirm_valid','',0,1);
    +		}
    +
    +		// Confirm cancelation
    +		if ($action == 'annuler')
    +		{
    +			$formconfirm=$form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id,$langs->trans('CancelReception'),$langs->trans("ConfirmCancelReception",$object->ref),'confirm_cancel','',0,1);
    +		}
    +
    +		if (! $formconfirm) {
    +		    $parameters = array();
    +		    $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +		    if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +		    elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    +		}
    +
    +		// Print form confirm
    +		print $formconfirm;
    +
    +
    +		// Calculate totalWeight and totalVolume for all products
    +		// by adding weight and volume of each product line.
    +		$tmparray=$object->getTotalWeightVolume();
    +		$totalWeight=$tmparray['weight'];
    +		$totalVolume=$tmparray['volume'];
    +
    +
    +		if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled))
    +		{
    +		    $objectsrc=new Commande($db);
    +		    $objectsrc->fetch($object->$typeobject->id);
    +		}
    +		if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled))
    +		{
    +		    $objectsrc=new Propal($db);
    +		    $objectsrc->fetch($object->$typeobject->id);
    +		}
    +		if ($typeobject == 'CommandeFournisseur' && $object->$typeobject->id && ! empty($conf->fournisseur->enabled))
    +		{
    +		    $objectsrc=new CommandeFournisseur($db);
    +		    $objectsrc->fetch($object->$typeobject->id);
    +		}
    +		// Reception card
    +		$linkback = '<a href="'.DOL_URL_ROOT.'/reception/list.php?restore_lastsearch_values=1' . (! empty($socid) ? '&socid=' . $socid : '') . '">'.$langs->trans("BackToList").'</a>';
    +		$morehtmlref='<div class="refidno">';
    +		// Ref customer reception
    +
    +		$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', 0, 1);
    +		$morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', null, null, '', 1);
    +
    +		// Thirdparty
    +        $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
    +        // Project
    +        if (! empty($conf->projet->enabled))
    +        {
    +            $langs->load("projects");
    +            $morehtmlref .= '<br>' . $langs->trans('Project') . ' ';
    +            if (0) {    // Do not change on reception
    +                if ($action != 'classify') {
    +                    $morehtmlref .= '<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    +                }
    +                if ($action == 'classify') {
    +                    // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
    +                    $morehtmlref .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '">';
    +                    $morehtmlref .= '<input type="hidden" name="action" value="classin">';
    +                    $morehtmlref .= '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    +                    $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
    +                    $morehtmlref .= '<input type="submit" class="button" value="' . $langs->trans("Modify") . '">';
    +                    $morehtmlref .= '</form>';
    +                } else {
    +                    $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
    +                }
    +            } else {
    +                // We don't have project on reception, so we will use the project or source object instead
    +                // TODO Add project on reception
    +                $morehtmlref .= ' : ';
    +                if (! empty($objectsrc->fk_project)) {
    +                    $proj = new Project($db);
    +                    $proj->fetch($objectsrc->fk_project);
    +                    $morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $objectsrc->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
    +                    $morehtmlref .= $proj->ref;
    +                    $morehtmlref .= '</a>';
    +                } else {
    +                    $morehtmlref .= '';
    +                }
    +            }
    +        }
    +		$morehtmlref.='</div>';
    +
    +		$object->picto = 'sending';
    +    	dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
    +
    +
    +    	print '<div class="fichecenter">';
    +    	print '<div class="fichehalfleft">';
    +    	print '<div class="underbanner clearboth"></div>';
    +
    +        print '<table class="border" width="100%">';
    +
    +		// Linked documents
    +		if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled))
    +		{
    +			print '<tr><td>';
    +			print $langs->trans("RefOrder").'</td>';
    +			print '<td colspan="3">';
    +			print $objectsrc->getNomUrl(1,'commande');
    +			print "</td>\n";
    +			print '</tr>';
    +		}
    +		if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled))
    +		{
    +			print '<tr><td>';
    +			print $langs->trans("RefProposal").'</td>';
    +			print '<td colspan="3">';
    +			print $objectsrc->getNomUrl(1,'reception');
    +			print "</td>\n";
    +			print '</tr>';
    +		}
    +		if ($typeobject == 'CommandeFournisseur' && $object->$typeobject->id && ! empty($conf->propal->enabled))
    +		{
    +			print '<tr><td>';
    +			print $langs->trans("RefSupplierOrder").'</td>';
    +			print '<td colspan="3">';
    +			print $objectsrc->getNomUrl(1,'reception');
    +			print "</td>\n";
    +			print '</tr>';
    +		}
    +
    +		// Date creation
    +		print '<tr><td class="titlefield">'.$langs->trans("DateCreation").'</td>';
    +		print '<td colspan="3">'.dol_print_date($object->date_creation,"dayhour")."</td>\n";
    +		print '</tr>';
    +
    +		// Delivery date planned
    +		print '<tr><td height="10">';
    +		print '<table class="nobordernopadding" width="100%"><tr><td>';
    +		print $langs->trans('DateDeliveryPlanned');
    +		print '</td>';
    +
    +		if ($action != 'editdate_livraison') print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editdate_livraison&amp;id='.$object->id.'">'.img_edit($langs->trans('SetDeliveryDate'),1).'</a></td>';
    +		print '</tr></table>';
    +		print '</td><td colspan="2">';
    +		if ($action == 'editdate_livraison')
    +		{
    +			print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
    +			print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +			print '<input type="hidden" name="action" value="setdate_livraison">';
    +			print $form->select_date($object->date_delivery?$object->date_delivery:-1,'liv_',1,1,'',"setdate_livraison",1,0,1);
    +			print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
    +			print '</form>';
    +		}
    +		else
    +		{
    +			print $object->date_delivery ? dol_print_date($object->date_delivery,'dayhour') : '&nbsp;';
    +		}
    +		print '</td>';
    +		print '</tr>';
    +
    +		// Weight
    +		print '<tr><td>';
    +		print $form->editfieldkey("Weight",'trueWeight',$object->trueWeight,$object,$user->rights->reception->creer);
    +		print '</td><td colspan="3">';
    +
    +		if ($action=='edittrueWeight')
    +		{
    +			print '<form name="settrueweight" action="'.$_SERVER["PHP_SELF"].'" method="post">';
    +			print '<input name="action" value="settrueWeight" type="hidden">';
    +			print '<input name="id" value="'.$object->id.'" type="hidden">';
    +			print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +			print '<input id="trueWeight" name="trueWeight" value="'.$object->trueWeight.'" type="text">';
    +			print $formproduct->select_measuring_units("weight_units","weight",$object->weight_units);
    +			print ' <input class="button" name="modify" value="'.$langs->trans("Modify").'" type="submit">';
    +			print ' <input class="button" name="cancel" value="'.$langs->trans("Cancel").'" type="submit">';
    +			print '</form>';
    +		}
    +		else
    +		{
    +			print $object->trueWeight;
    +			print ($object->trueWeight && $object->weight_units!='')?' '.measuring_units_string($object->weight_units,"weight"):'';
    +		}
    +
    +        // Calculated
    +		if ($totalWeight > 0)
    +		{
    +			if (!empty($object->trueWeight)) print ' ('.$langs->trans("SumOfProductWeights").': ';
    +			//print $totalWeight.' '.measuring_units_string(0,"weight");
    +			print showDimensionInBestUnit($totalWeight, 0, "weight", $langs, isset($conf->global->MAIN_WEIGHT_DEFAULT_ROUND)?$conf->global->MAIN_WEIGHT_DEFAULT_ROUND:-1, isset($conf->global->MAIN_WEIGHT_DEFAULT_UNIT)?$conf->global->MAIN_WEIGHT_DEFAULT_UNIT:'no');
    +			//if (empty($object->trueWeight)) print ' ('.$langs->trans("Calculated").')';
    +			if (!empty($object->trueWeight)) print ')';
    +		}
    +		print '</td></tr>';
    +
    +		// Width
    +		print '<tr><td>'.$form->editfieldkey("Width",'trueWidth',$object->trueWidth,$object,$user->rights->reception->creer).'</td><td colspan="3">';
    +		print $form->editfieldval("Width",'trueWidth',$object->trueWidth,$object,$user->rights->reception->creer);
    +		print ($object->trueWidth && $object->width_units!='')?' '.measuring_units_string($object->width_units,"size"):'';
    +		print '</td></tr>';
    +
    +		// Height
    +		print '<tr><td>'.$form->editfieldkey("Height",'trueHeight',$object->trueHeight,$object,$user->rights->reception->creer).'</td><td colspan="3">';
    +		if($action=='edittrueHeight')
    +		{
    +			print '<form name="settrueHeight" action="'.$_SERVER["PHP_SELF"].'" method="post">';
    +			print '<input name="action" value="settrueHeight" type="hidden">';
    +			print '<input name="id" value="'.$object->id.'" type="hidden">';
    +			print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +			print '<input id="trueHeight" name="trueHeight" value="'.$object->trueHeight.'" type="text">';
    +			print $formproduct->select_measuring_units("size_units","size",$object->size_units);
    +			print ' <input class="button" name="modify" value="'.$langs->trans("Modify").'" type="submit">';
    +			print ' <input class="button" name="cancel" value="'.$langs->trans("Cancel").'" type="submit">';
    +			print '</form>';
    +		}
    +		else
    +		{
    +			print $object->trueHeight;
    +			print ($object->trueHeight && $object->height_units!='')?' '.measuring_units_string($object->height_units,"size"):'';
    +		}
    +
    +		print '</td></tr>';
    +
    +		// Depth
    +		print '<tr><td>'.$form->editfieldkey("Depth",'trueDepth',$object->trueDepth,$object,$user->rights->reception->creer).'</td><td colspan="3">';
    +		print $form->editfieldval("Depth",'trueDepth',$object->trueDepth,$object,$user->rights->reception->creer);
    +		print ($object->trueDepth && $object->depth_units!='')?' '.measuring_units_string($object->depth_units,"size"):'';
    +		print '</td></tr>';
    +
    +		// Volume
    +		print '<tr><td>';
    +		print $langs->trans("Volume");
    +		print '</td>';
    +		print '<td colspan="3">';
    +		$calculatedVolume=0;
    +		$volumeUnit=0;
    +		if ($object->trueWidth && $object->trueHeight && $object->trueDepth)
    +		{
    +		    $calculatedVolume=($object->trueWidth * $object->trueHeight * $object->trueDepth);
    +		    $volumeUnit=$object->size_units * 3;
    +		}
    +		// If reception volume not defined we use sum of products
    +		if ($calculatedVolume > 0)
    +		{
    +			if ($volumeUnit < 50)
    +			{
    +			    //print $calculatedVolume.' '.measuring_units_string($volumeUnit,"volume");
    +			    print showDimensionInBestUnit($calculatedVolume, $volumeUnit, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND)?$conf->global->MAIN_VOLUME_DEFAULT_ROUND:-1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT)?$conf->global->MAIN_VOLUME_DEFAULT_UNIT:'no');
    +			}
    +			else print $calculatedVolume.' '.measuring_units_string($volumeUnit,"volume");
    +		}
    +		if ($totalVolume > 0)
    +		{
    +			if ($calculatedVolume) print ' ('.$langs->trans("SumOfProductVolumes").': ';
    +			//print $totalVolume.' '.measuring_units_string(0,"volume");
    +			print showDimensionInBestUnit($totalVolume, 0, "volume", $langs, isset($conf->global->MAIN_VOLUME_DEFAULT_ROUND)?$conf->global->MAIN_VOLUME_DEFAULT_ROUND:-1, isset($conf->global->MAIN_VOLUME_DEFAULT_UNIT)?$conf->global->MAIN_VOLUME_DEFAULT_UNIT:'no');
    +			//if (empty($calculatedVolume)) print ' ('.$langs->trans("Calculated").')';
    +			if ($calculatedVolume) print ')';
    +		}
    +		print "</td>\n";
    +		print '</tr>';
    +
    +		// Other attributes
    +		$cols = 2;
    +
    +		include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
    +
    +		print '</table>';
    +
    +		print '</div>';
    +		print '<div class="fichehalfright">';
    +		print '<div class="ficheaddleft">';
    +		print '<div class="underbanner clearboth"></div>';
    +
    +		print '<table class="border centpercent">';
    +
    +		// Reception method
    +		print '<tr><td height="10">';
    +		print '<table class="nobordernopadding" width="100%"><tr><td>';
    +		print $langs->trans('ReceptionMethod');
    +		print '</td>';
    +
    +		if ($action != 'editshipping_method_id') print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editshipping_method_id&amp;id='.$object->id.'">'.img_edit($langs->trans('SetReceptionMethod'),1).'</a></td>';
    +		print '</tr></table>';
    +		print '</td><td colspan="2">';
    +		if ($action == 'editshipping_method_id')
    +		{
    +			print '<form name="setshipping_method_id" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
    +			print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +			print '<input type="hidden" name="action" value="setshipping_method_id">';
    +			$object->fetch_delivery_methods();
    +			print $form->selectarray("shipping_method_id",$object->meths,$object->shipping_method_id,1,0,0,"",1);
    +			if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
    +			print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
    +			print '</form>';
    +		}
    +		else
    +		{
    +			if ($object->shipping_method_id > 0)
    +			{
    +				// Get code using getLabelFromKey
    +				$code=$langs->getLabelFromKey($db,$object->shipping_method_id,'c_shipment_mode','rowid','code');
    +				print $langs->trans("SendingMethod".strtoupper($code));
    +			}
    +		}
    +		print '</td>';
    +		print '</tr>';
    +
    +		// Tracking Number
    +
    +		print '<tr><td class="titlefield">'.$form->editfieldkey("TrackingNumber",'tracking_number',$object->tracking_number,$object,$user->rights->reception->creer).'</td><td colspan="3">';
    +		print $form->editfieldval("TrackingNumber",'tracking_number',$object->tracking_url,$object,$user->rights->reception->creer,'string',$object->tracking_number);
    +		print '</td></tr>';
    +
    +		// Incoterms
    +		if (!empty($conf->incoterm->enabled))
    +		{
    +			print '<tr><td>';
    +	        print '<table width="100%" class="nobordernopadding"><tr><td>';
    +	        print $langs->trans('IncotermLabel');
    +	        print '<td><td align="right">';
    +	        if ($user->rights->reception->creer) print '<a href="'.DOL_URL_ROOT.'/reception/card.php?id='.$object->id.'&action=editincoterm">'.img_edit().'</a>';
    +	        else print '&nbsp;';
    +	        print '</td></tr></table>';
    +	        print '</td>';
    +	        print '<td colspan="3">';
    +			if ($action != 'editincoterm')
    +			{
    +				print $form->textwithpicto($object->display_incoterms(), $object->libelle_incoterms, 1);
    +			}
    +			else
    +			{
    +				print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms)?$object->location_incoterms:''), $_SERVER['PHP_SELF'].'?id='.$object->id);
    +			}
    +	        print '</td></tr>';
    +		}
    +
    +		print "</table>";
    +
    +		print '</div>';
    +		print '</div>';
    +		print '</div>';
    +
    +		print '<div class="clearboth"></div>';
    +
    +
    +		// Lines of products
    +		if ($action == 'editline')
    +		{
    +			print '<form name="updateline" id="updateline" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;lineid=' . $line_id . '" method="POST">
    +			<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">
    +			<input type="hidden" name="action" value="updateline">
    +			<input type="hidden" name="mode" value="">
    +			<input type="hidden" name="id" value="' . $object->id . '">';
    +		}
    +		print '<br>';
    +
    +		print '<div class="div-table-responsive-no-min">';
    +		print '<table class="noborder" width="100%">';
    +		print '<tr class="liste_titre">';
    +		// #
    +		if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER))
    +		{
    +			print '<td width="5" align="center">&nbsp;</td>';
    +		}
    +		// Product/Service
    +		print '<td>'.$langs->trans("Products").'</td>';
    +		// Comment
    +		print '<td>'.$langs->trans("Description").'</td>';
    +		// Qty
    +		print '<td align="center">'.$langs->trans("QtyOrdered").'</td>';
    +		if ($origin && $origin_id > 0)
    +		{
    +			print '<td align="center">'.$langs->trans("QtyInOtherReceptions").'</td>';
    +		}
    +		if ($action == 'editline')
    +		{
    +			$editColspan = 3;
    +			if (empty($conf->stock->enabled)) $editColspan--;
    +			if (empty($conf->productbatch->enabled)) $editColspan--;
    +			print '<td align="center" colspan="'. $editColspan . '">';
    +			if ($object->statut <= 1)
    +			{
    +				print $langs->trans("QtyToReceive").' - ';
    +			}
    +			else
    +			{
    +				print $langs->trans("QtyReceived").' - ';
    +			}
    +			if (! empty($conf->stock->enabled))
    +			{
    +				print $langs->trans("WarehouseSource").' - ';
    +			}
    +			if (! empty($conf->productbatch->enabled))
    +			{
    +				print $langs->trans("Batch");
    +			}
    +			print '</td>';
    +		}
    +		else
    +		{
    +			if ($object->statut <= 1)
    +			{
    +				print '<td align="center">'.$langs->trans("QtyToReceive").'</td>';
    +			}
    +			else
    +			{
    +				print '<td align="center">'.$langs->trans("QtyReceived").'</td>';
    +			}
    +			if (! empty($conf->stock->enabled))
    +			{
    +				print '<td align="left">'.$langs->trans("WarehouseSource").'</td>';
    +			}
    +
    +			if (! empty($conf->productbatch->enabled))
    +			{
    +				print '<td align="left">'.$langs->trans("Batch").'</td>';
    +			}
    +		}
    +		print '<td align="center">'.$langs->trans("CalculatedWeight").'</td>';
    +		print '<td align="center">'.$langs->trans("CalculatedVolume").'</td>';
    +		//print '<td align="center">'.$langs->trans("Size").'</td>';
    +		if ($object->statut == 0)
    +		{
    +			print '<td class="linecoledit"></td>';
    +			print '<td class="linecoldelete" width="10"></td>';
    +		}
    +		print "</tr>\n";
    +
    +		$var=false;
    +
    +		if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE))
    +		{
    +			$object->fetch_thirdparty();
    +			$outputlangs = $langs;
    +			$newlang='';
    +			if (empty($newlang) && GETPOST('lang_id','aZ09')) $newlang=GETPOST('lang_id','aZ09');
    +			if (empty($newlang)) $newlang=$object->thirdparty->default_lang;
    +			if (! empty($newlang))
    +			{
    +				$outputlangs = new Translate("",$conf);
    +				$outputlangs->setDefaultLang($newlang);
    +			}
    +		}
    +
    +		// Get list of products already sent for same source object into $alreadysent
    +		$alreadysent = array();
    +
    +		$origin = 'commande_fournisseur';
    +
    +		if ($origin && $origin_id > 0)
    +		{
    +    		$sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.date_start, obj.date_end";
    +    		$sql.= ", ed.rowid as receptionline_id, ed.qty, ed.fk_reception as reception_id,  ed.fk_entrepot";
    +    		$sql.= ", e.rowid as reception_id, e.ref as reception_ref, e.date_creation, e.date_valid, e.date_delivery, e.date_reception";
    +    		//if ($conf->livraison_bon->enabled) $sql .= ", l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received";
    +    		$sql.= ', p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tobatch as product_tobatch';
    +    		$sql.= ', p.description as product_desc';
    +    		$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as ed";
    +    		$sql.= ", ".MAIN_DB_PREFIX."reception as e";
    +    		$sql.= ", ".MAIN_DB_PREFIX.$origin."det as obj";
    +    		//if ($conf->livraison_bon->enabled) $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."livraison as l ON l.fk_reception = e.rowid LEFT JOIN ".MAIN_DB_PREFIX."livraisondet as ld ON ld.fk_livraison = l.rowid  AND obj.rowid = ld.fk_origin_line";
    +    		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON obj.fk_product = p.rowid";
    +    		$sql.= " WHERE e.entity IN (".getEntity('reception').")";
    +    		$sql.= " AND obj.fk_commande = ".$origin_id;
    +    		$sql.= " AND obj.rowid = ed.fk_commandefourndet";
    +    		$sql.= " AND ed.fk_reception = e.rowid";
    +    		$sql.= " AND ed.fk_reception !=".$object->id;
    +    		//if ($filter) $sql.= $filter;
    +    		$sql.= " ORDER BY obj.fk_product";
    +
    +    		dol_syslog("get list of reception lines", LOG_DEBUG);
    +    		$resql = $db->query($sql);
    +    		if ($resql)
    +    		{
    +    		    $num = $db->num_rows($resql);
    +    		    $i = 0;
    +
    +    		    while($i < $num)
    +    		    {
    +        		    $obj = $db->fetch_object($resql);
    +        		    if ($obj)
    +        		    {
    +        		        // $obj->rowid is rowid in $origin."det" table
    +        		        $alreadysent[$obj->rowid][$obj->receptionline_id]=array('reception_ref'=>$obj->reception_ref, 'reception_id'=>$obj->reception_id, 'warehouse'=>$obj->fk_entrepot, 'qty'=>$obj->qty, 'date_valid'=>$obj->date_valid, 'date_delivery'=>$obj->date_delivery);
    +        		    }
    +        		    $i++;
    +    		    }
    +    		}
    +    		//var_dump($alreadysent);
    +		}
    +
    +		// Loop on each product to send/sent
    +		for ($i = 0 ; $i < $num_prod ; $i++)
    +		{
    +		    print '<!-- origin line id = '.$lines[$i]->origin_line_id.' -->'; // id of order line
    +			print '<tr class="oddeven">';
    +
    +			// #
    +			if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER))
    +			{
    +				print '<td align="center">'.($i+1).'</td>';
    +			}
    +
    +			// Predefined product or service
    +			if ($lines[$i]->fk_product > 0)
    +			{
    +				// Define output language
    +				if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE))
    +				{
    +					$prod = new Product($db);
    +					$prod->fetch($lines[$i]->fk_product);
    +					$label = ( ! empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $lines[$i]->product->label;
    +				}
    +				else
    +					$label = (! empty($lines[$i]->product->label)?$lines[$i]->product->label:$lines[$i]->product->product_label);
    +
    +				print '<td>';
    +
    +
    +
    +				$text=$lines[$i]->product->getNomUrl(1);
    +				$text.= ' - '.$label;
    +				$description=(! empty($conf->global->PRODUIT_DESC_IN_FORM)?'':dol_htmlentitiesbr($lines[$i]->product->description));
    +				print $form->textwithtooltip($text,$description,3,'','',$i);
    +				print_date_range($lines[$i]->date_start,$lines[$i]->date_end);
    +				if (! empty($conf->global->PRODUIT_DESC_IN_FORM))
    +				{
    +					print (! empty($lines[$i]->product->description) && $lines[$i]->description!=$lines[$i]->product->description)?'<br>'.dol_htmlentitiesbr($lines[$i]->description):'';
    +				}
    +				print "</td>\n";
    +			}
    +			else
    +			{
    +				print "<td>";
    +				if ($lines[$i]->product_type == Product::TYPE_SERVICE) $text = img_object($langs->trans('Service'),'service');
    +				else $text = img_object($langs->trans('Product'),'product');
    +
    +				if (! empty($lines[$i]->label)) {
    +					$text.= ' <strong>'.$lines[$i]->label.'</strong>';
    +					print $form->textwithtooltip($text,$lines[$i]->description,3,'','',$i);
    +				} else {
    +					print $text.' '.nl2br($lines[$i]->description);
    +				}
    +
    +				print_date_range($lines[$i]->date_start,$lines[$i]->date_end);
    +				print "</td>\n";
    +			}
    +
    +			if ($action == 'editline' && $lines[$i]->id == $line_id)
    +			{
    +				print '<td ><textarea name="comment'.$line_id.'" id="comment'.$line_id.'" /> '.$lines[$i]->comment.'</textarea></td>';
    +			}
    +			else
    +			{
    +				print '<td style="white-space: pre-wrap;max-width: 200px;" >'.$lines[$i]->comment.'</td>';
    +			}
    +
    +
    +			// Qty ordered
    +			print '<td align="center">'.$lines[$i]->qty_asked.'</td>';
    +
    +			// Qty in other receptions (with reception and warehouse used)
    +    		if ($origin && $origin_id > 0)
    +    		{
    +    			print '<td align="center" class="nowrap">';
    +    			foreach ($alreadysent as $key => $val)
    +    			{
    +    			    if ($lines[$i]->fk_commandefourndet == $key)
    +    			    {
    +    			        $j = 0;
    +    			        foreach($val as $receptionline_id=> $receptionline_var)
    +    			        {
    +    			            if ($receptionline_var['reception_id'] == $lines[$i]->fk_reception) continue; // We want to show only "other receptions"
    +
    +    			            $j++;
    +    			            if ($j > 1) print '<br>';
    +    			            $reception_static->fetch($receptionline_var['reception_id']);
    +    			            print $reception_static->getNomUrl(1);
    +    			            print ' - '.$receptionline_var['qty'];
    +
    +    			            $htmltext=$langs->trans("DateValidation").' : '.(empty($receptionline_var['date_valid'])?$langs->trans("Draft"):dol_print_date($receptionline_var['date_valid'], 'dayhour'));
    +    			            if (! empty($conf->stock->enabled) && $receptionline_var['warehouse'] > 0)
    +    			            {
    +    			                $warehousestatic->fetch($receptionline_var['warehouse']);
    +    			                $htmltext .= '<br>'.$langs->trans("From").' : '.$warehousestatic->getNomUrl(1);
    +    			            }
    +    			            print ' '.$form->textwithpicto('', $htmltext, 1);
    +    			        }
    +    			    }
    +    			}
    +    		}
    +			print '</td>';
    +
    +			if ($action == 'editline' && $lines[$i]->id == $line_id)
    +			{
    +				// edit mode
    +				print '<td colspan="'.$editColspan.'" align="center"><table class="nobordernopadding">';
    +				if (! empty($conf->stock->enabled))
    +				{
    +					if ($lines[$i]->fk_product > 0)
    +					{
    +						print '<!-- case edit 1 -->';
    +						print '<tr>';
    +						// Qty to receive or received
    +						print '<td>' . '<input name="qtyl'.$line_id.'" id="qtyl'.$line_id.'" type="text" size="4" value="'.$lines[$i]->qty.'">' . '</td>';
    +						// Warehouse source
    +						print '<td>' . $formproduct->selectWarehouses($lines[$i]->fk_entrepot, 'entl'.$line_id, '', 1, 0, $lines[$i]->fk_product, '', 1). '</td>';
    +						// Batch number managment
    +						if ($conf->productbatch->enabled && !empty($lines[$i]->product->status_batch))
    +						{
    +							print '<td>  <input name="batch'.$line_id.'" id="batch'.$line_id.'" type="text" value="'.$lines[$i]->batch.'"> </br>';
    +							print $langs->trans('EatByDate').' : ';
    +							print $form->select_date($lines[$i]->eatby,'dlc' .$line_id, '', '', 1, ""). '</br>';
    +							print $langs->trans('SellByDate').' : ';
    +							print $form->select_date($lines[$i]->sellby,'dluo' .$line_id, '', '', 1, "");
    +							print '</td>';
    +						}
    +						print '</tr>';
    +					}
    +					else
    +					{
    +						print '<!-- case edit 2 -->';
    +						print '<tr>';
    +						// Qty to receive or received
    +						print '<td>' . '<input name="qtyl'.$line_id.'" id="qtyl'.$line_id.'" type="text" size="4" value="'.$lines[$i]->qty.'">' . '</td>';
    +						// Warehouse source
    +						print '<td>' . '</td>';
    +						// Batch number managment
    +						print '<td>' . '</td>';
    +						print '</tr>';
    +					}
    +				}
    +				print '</table></td>';
    +			}
    +			else
    +			{
    +				// Qty to receive or received
    +				print '<td align="center">'.$lines[$i]->qty.'</td>';
    +
    +				// Warehouse source
    +				if (! empty($conf->stock->enabled))
    +				{
    +					print '<td align="left">';
    +
    +					if ($lines[$i]->fk_entrepot > 0)
    +					{
    +						$entrepot = new Entrepot($db);
    +						$entrepot->fetch($lines[$i]->fk_entrepot);
    +						print $entrepot->getNomUrl(1);
    +					}
    +
    +					print '</td>';
    +				}
    +
    +				// Batch number managment
    +				if (! empty($conf->productbatch->enabled))
    +				{
    +					if (isset($lines[$i]->batch))
    +					{
    +						print '<!-- Detail of lot -->';
    +						print '<td>';
    +						$detail ='';
    +						if ($lines[$i]->product->status_batch)
    +						{
    +								$detail.= $langs->trans("Batch").': '.$lines[$i]->batch;
    +								$detail.= ' - '.$langs->trans("SellByDate").': '.dol_print_date($lines[$i]->sellby,"day");
    +								$detail.= ' - '.$langs->trans("EatByDate").': '.dol_print_date($lines[$i]->eatby,"day");
    +
    +								$detail.= '<br>';
    +
    +							print $form->textwithtooltip(img_picto('', 'object_barcode').' '.$langs->trans("DetailBatchNumber"),$detail);
    +						}
    +						else
    +						{
    +							print $langs->trans("NA");
    +						}
    +						print '</td>';
    +					} else {
    +						print '<td></td>';
    +					}
    +				}
    +			}
    +
    +			// Weight
    +			print '<td align="center">';
    +			if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->product->weight*$lines[$i]->qty.' '.measuring_units_string($lines[$i]->product->weight_units,"weight");
    +			else print '&nbsp;';
    +			print '</td>';
    +
    +			// Volume
    +			print '<td align="center">';
    +			if ($lines[$i]->fk_product_type == Product::TYPE_PRODUCT) print $lines[$i]->product->volume*$lines[$i]->qty.' '.measuring_units_string($lines[$i]->product->volume_units,"volume");
    +			else print '&nbsp;';
    +			print '</td>';
    +
    +
    +			if ($action == 'editline' && $lines[$i]->id == $line_id)
    +			{
    +				print '<td align="center" colspan="2" valign="middle">';
    +				print '<input type="submit" class="button" id="savelinebutton" name="save" value="' . $langs->trans("Save") . '"><br>';
    +				print '<input type="submit" class="button" id="cancellinebutton" name="cancel" value="' . $langs->trans("Cancel") . '"><br>';
    +			}
    +			else if ($object->statut == 0)
    +			{
    +				// edit-delete buttons
    +				print '<td class="linecoledit" align="center">';
    +				print '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=editline&amp;lineid=' . $lines[$i]->id . '">' . img_edit() . '</a>';
    +				print '</td>';
    +				print '<td class="linecoldelete" width="10">';
    +				print '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=deleteline&amp;lineid=' . $lines[$i]->id . '">' . img_delete() . '</a>';
    +				print '</td>';
    +
    +				// Display lines extrafields
    +				if (! empty($rowExtrafieldsStart))
    +				{
    +					print $rowExtrafieldsStart;
    +					print $rowExtrafieldsView;
    +					print $rowEnd;
    +				}
    +			}
    +			print "</tr>";
    +
    +			// Display lines extrafields
    +			if (is_array($extralabelslines) && count($extralabelslines)>0) {
    +				$colspan= empty($conf->productbatch->enabled) ? 8 : 9;
    +				$line = new CommandeFournisseurDispatch($db);
    +				$line->fetch_optionals($lines[$i]->id,$extralabelslines);
    +				print '<tr class="oddeven">';
    +				if ($action == 'editline' && $lines[$i]->id == $line_id)
    +				{
    +					print $line->showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked);
    +				}
    +				else
    +				{
    +					print $line->showOptionals($extrafieldsline, 'view', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked);
    +				}
    +				print '</tr>';
    +			}
    +		}
    +
    +		// TODO Show also lines ordered but not delivered
    +
    +		print "</table>\n";
    +		print '</div>';
    +	}
    +
    +
    +	dol_fiche_end();
    +
    +
    +	$object->fetchObjectLinked($object->id,$object->element);
    +
    +
    +	/*
    +	 *    Boutons actions
    +	 */
    +
    +	if (($user->societe_id == 0) && ($action!='presend'))
    +	{
    +		print '<div class="tabsAction">';
    +
    +		$parameters = array();
    +		$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +		if (empty($reshook))
    +		{
    +
    +			if ($object->statut == Reception::STATUS_DRAFT && $num_prod > 0)
    +			{
    +				if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->reception->creer))
    +	  		     || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->reception->reception_advance->validate)))
    +				{
    +					print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=valid">'.$langs->trans("Validate").'</a>';
    +				}
    +				else
    +				{
    +					print '<a class="butActionRefused" href="#" title="'.$langs->trans("NotAllowed").'">'.$langs->trans("Validate").'</a>';
    +				}
    +			}
    +			// Edit
    +			if ($object->statut == Reception::STATUS_VALIDATED && $user->rights->reception->creer) {
    +				print '<div class="inline-block divButAction"><a class="butAction" href="card.php?id=' . $object->id . '&amp;action=modif">' . $langs->trans('Modify') . '</a></div>';
    +			}
    +
    +			// TODO add alternative status
    +			// 0=draft, 1=validated, 2=billed, we miss a status "delivered" (only available on order)
    +			if ($object->statut == Reception::STATUS_CLOSED && $user->rights->reception->creer)
    +			{
    +				if (! empty($conf->facture->enabled) && ! empty($conf->global->WORKFLOW_BILL_ON_RECEPTION))  // Quand l'option est on, il faut avoir le bouton en plus et non en remplacement du Close ?
    +				{
    +					print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=reopen">'.$langs->trans("ClassifyUnbilled").'</a>';
    +				}
    +				else
    +				{
    +			    	print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=reopen">'.$langs->trans("ReOpen").'</a>';
    +				}
    +			}
    +
    +			// Send
    +			if ($object->statut > 0)
    +			{
    +				if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->reception->reception_advance->send)
    +				{
    +					print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=presend&mode=init#formmailbeforetitle">'.$langs->trans('SendByMail').'</a>';
    +				}
    +				else print '<a class="butActionRefused" href="#">'.$langs->trans('SendByMail').'</a>';
    +			}
    +
    +			// Create bill
    +			if (! empty($conf->fournisseur->enabled) && ($object->statut == Reception::STATUS_VALIDATED || $object->statut == Reception::STATUS_CLOSED))
    +			{
    +				if ($user->rights->fournisseur->facture->creer)
    +				{
    +					// TODO show button only   if (! empty($conf->global->WORKFLOW_BILL_ON_RECEPTION))
    +					// If we do that, we must also make this option official.
    +					print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/facture/card.php?action=create&amp;origin='.$object->element.'&amp;originid='.$object->id.'&amp;socid='.$object->socid.'">'.$langs->trans("CreateBill").'</a>';
    +				}
    +			}
    +
    +
    +			// Close
    +			if ($object->statut == Reception::STATUS_VALIDATED)
    +			{
    +				if ($user->rights->reception->creer && $object->statut > 0 && ! $object->billed)
    +				{
    +					$label="Close"; $paramaction='classifyclosed';       // = Transferred/Received
    +					// Label here should be "Close" or "ClassifyBilled" if we decided to make bill on receptions instead of orders
    +					if (! empty($conf->fournisseur->enabled) && ! empty($conf->global->WORKFLOW_BILL_ON_RECEPTION))  // Quand l'option est on, il faut avoir le bouton en plus et non en remplacement du Close ?
    +					{
    +					    $label="ClassifyBilled";
    +					    $paramaction='classifybilled';
    +					}
    +					print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action='.$paramaction.'">'.$langs->trans($label).'</a>';
    +				}
    +			}
    +
    +			if ($user->rights->reception->supprimer)
    +			{
    +				print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delete">'.$langs->trans("Delete").'</a>';
    +			}
    +		}
    +
    +		print '</div>';
    +	}
    +
    +
    +	/*
    +	 * Documents generated
    +	 */
    +
    +	if ($action != 'presend' && $action != 'editline')
    +	{
    +        print '<div class="fichecenter"><div class="fichehalfleft">';
    +
    +        $objectref = dol_sanitizeFileName($object->ref);
    +		$filedir = $conf->reception->dir_output . "/" .$objectref;
    +
    +		$urlsource = $_SERVER["PHP_SELF"]."?id=".$object->id;
    +
    +		$genallowed=$user->rights->reception->lire;
    +		$delallowed=$user->rights->reception->creer;
    +
    +		print $formfile->showdocuments('reception',$objectref,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf,1,0,0,28,0,'','','',$soc->default_lang);
    +
    +		// Show links to link elements
    +		//$linktoelem = $form->showLinkToObjectBlock($object, null, array('order'));
    +		$somethingshown = $form->showLinkedObjectBlock($object, '');
    +
    +		print '</div><div class="fichehalfright"><div class="ficheaddleft">';
    +	}
    +
    +	if ($action == 'presend')
    +	{
    +		$ref = dol_sanitizeFileName($object->ref);
    +		include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +		$fileparams = dol_most_recent_file($conf->reception->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
    +		$file=$fileparams['fullname'];
    +		// Define output language
    +		$outputlangs = $langs;
    +		$newlang = '';
    +		if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
    +			$newlang = $_REQUEST['lang_id'];
    +		if ($conf->global->MAIN_MULTILANGS && empty($newlang))
    +			$newlang = $object->thirdparty->default_lang;
    +		if (!empty($newlang))
    +		{
    +			$outputlangs = new Translate('', $conf);
    +			$outputlangs->setDefaultLang($newlang);
    +			$outputlangs->load('receptions');
    +		}
    +		// Build document if it not exists
    +		if (! $file || ! is_readable($file))
    +		{
    +			$result = $object->generateDocument(GETPOST('model')?GETPOST('model'):$object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
    +			if ($result <= 0)
    +			{
    +				dol_print_error($db,$object->error,$object->errors);
    +				exit;
    +			}
    +			$fileparams = dol_most_recent_file($conf->reception->dir_output . '/reception/' . $ref, preg_quote($ref, '/').'[^\-]+');
    +			$file=$fileparams['fullname'];
    +		}
    +		print '<div id="formmailbeforetitle" name="formmailbeforetitle"></div>';
    +		print '<div class="clearboth"></div>';
    +		print '<br>';
    +		print load_fiche_titre($langs->trans('SendReceptionByEMail'));
    +		dol_fiche_head('');
    +		// Cree l'objet formulaire mail
    +		include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
    +		$formmail = new FormMail($db);
    +		$formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
    +        $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user'));
    +        if($formmail->fromtype === 'user'){
    +            $formmail->fromid = $user->id;
    +        }
    +		$formmail->trackid='shi'.$object->id;
    +		if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2))	// If bit 2 is set
    +		{
    +			include DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +			$formmail->frommail=dolAddEmailTrackId($formmail->frommail, 'shi'.$object->id);
    +		}
    +		$formmail->withfrom=1;
    +		$liste=array();
    +		foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key=>$value)	$liste[$key]=$value;
    +		$formmail->withto=GETPOST("sendto")?GETPOST("sendto"):$liste;
    +		$formmail->withtocc=$liste;
    +		$formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
    +		$formmail->withtopic=$outputlangs->trans('SendReceptionRef','__RECEPTIONREF__');
    +		$formmail->withfile=2;
    +		$formmail->withbody=1;
    +		$formmail->withdeliveryreceipt=1;
    +		$formmail->withcancel=1;
    +		// Tableau des substitutions
    +		$formmail->setSubstitFromObject($object,$langs);
    +		$formmail->substit['__RECEPTIONREF__']=$object->ref;
    +		$formmail->substit['__RECEPTIONTRACKNUM__']=$object->tracking_number;
    +		$formmail->substit['__RECEPTIONTRACKNUMURL__']=$object->tracking_url;
    +		//Find the good contact adress
    +		if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled))	{
    +			$objectsrc=new Commande($db);
    +			$objectsrc->fetch($object->$typeobject->id);
    +		}
    +		if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled))	{
    +			$objectsrc=new Propal($db);
    +			$objectsrc->fetch($object->$typeobject->id);
    +		}
    +		$custcontact='';
    +		$contactarr=array();
    +		if (is_object($objectsrc))    // For the case the reception was created without orders
    +		{
    +    		$contactarr=$objectsrc->liste_contact(-1,'external');
    +		}
    +		if (is_array($contactarr) && count($contactarr)>0) {
    +			foreach($contactarr as $contact) {
    +				if ($contact['libelle']==$langs->trans('TypeContact_commande_external_CUSTOMER')) {
    +					require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
    +					$contactstatic=new Contact($db);
    +					$contactstatic->fetch($contact['id']);
    +					$custcontact=$contactstatic->getFullName($langs,1);
    +				}
    +			}
    +			if (!empty($custcontact)) {
    +				$formmail->substit['__CONTACTCIVNAME__']=$custcontact;
    +			}
    +		}
    +		// Tableau des parametres complementaires
    +		$formmail->param['action']='send';
    +		$formmail->param['models']='reception_send';
    +		$formmail->param['models_id']=GETPOST('modelmailselected','int');
    +		$formmail->param['receptionid']=$object->id;
    +		$formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id;
    +		// Init list of files
    +		if (GETPOST("mode")=='init')
    +		{
    +			$formmail->clear_attached_files();
    +			$formmail->add_attached_files($file,basename($file),dol_mimetype($file));
    +		}
    +		// Show form
    +		print $formmail->get_form();
    +		dol_fiche_end();
    +	}
    +}
    +
    +
    +llxFooter();
    +
    +$db->close();
    diff --git a/htdocs/reception/class/index.html b/htdocs/reception/class/index.html
    new file mode 100644
    index 00000000000..e69de29bb2d
    diff --git a/htdocs/reception/class/reception.class.php b/htdocs/reception/class/reception.class.php
    new file mode 100644
    index 00000000000..4cddbb1134e
    --- /dev/null
    +++ b/htdocs/reception/class/reception.class.php
    @@ -0,0 +1,1976 @@
    +<?php
    +/* Copyright (C) 2003-2008	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2007		Franky Van Liedekerke	<franky.van.liedekerke@telenet.be>
    + * Copyright (C) 2006-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    + * Copyright (C) 2011-2017	Juanjo Menent			<jmenent@2byte.es>
    + * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
    + * Copyright (C) 2014		Cedric GROSS			<c.gross@kreiz-it.fr>
    + * Copyright (C) 2014-2015  Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2014-2015  Francis Appels          <francis.appels@yahoo.com>
    + * Copyright (C) 2015       Claudio Aschieri        <c.aschieri@19.coop>
    + * Copyright (C) 2016		Ferran Marcet			<fmarcet@2byte.es>
    + * Copyright (C) 2018		Quentin Vial-Gouteyron  <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *  \file       htdocs/reception/class/reception.class.php
    + *  \ingroup    reception
    + *  \brief      Fichier de la classe de gestion des receptions
    + */
    +
    +require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
    +require_once DOL_DOCUMENT_ROOT."/core/class/commonobjectline.class.php";
    +if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
    +if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
    +
    +
    +/**
    + *	Class to manage receptions
    + */
    +class Reception extends CommonObject
    +{
    +	public $element="reception";
    +	public $fk_element="fk_reception";
    +	public $table_element="reception";
    +	public $table_element_line="commande_fournisseur_dispatch";
    +	protected $ismultientitymanaged = 1;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +    public $picto = 'reception';
    +
    +	var $socid;
    +	var $ref_supplier;
    +	var $ref_int;
    +	var $brouillon;
    +	var $entrepot_id;
    +	var $lines=array();
    +	var $tracking_number;
    +	var $tracking_url;
    +	var $billed;
    +	var $model_pdf;
    +
    +	var $trueWeight;
    +	var $weight_units;
    +	var $trueWidth;
    +	var $width_units;
    +	var $trueHeight;
    +	var $height_units;
    +	var $trueDepth;
    +	var $depth_units;
    +	// A denormalized value
    +	var $trueSize;
    +
    +	var $date_delivery;		// Date delivery planed
    +
    +
    +	/**
    +	 * Effective delivery date
    +	 * @var int
    +	 */
    +	public $date_reception;
    +	var $date_creation;
    +	var $date_valid;
    +
    +	var $meths;
    +	var $listmeths;			// List of carriers
    +
    +
    +	const STATUS_DRAFT = 0;
    +	const STATUS_VALIDATED = 1;
    +	const STATUS_CLOSED = 2;
    +
    +
    +
    +	/**
    +	 *	Constructor
    +	 *
    +	 *  @param		DoliDB		$db      Database handler
    +	 */
    +	function __construct($db)
    +	{
    +		$this->db = $db;
    +		$this->lines = array();
    +		$this->products = array();
    +
    +		// List of long language codes for status
    +		$this->statuts = array();
    +		$this->statuts[-1] = 'StatusReceptionCanceled';
    +		$this->statuts[0]  = 'StatusReceptionDraft';
    +		$this->statuts[1]  = 'StatusReceptionValidated';
    +		$this->statuts[2]  = 'StatusReceptionProcessed';
    +	}
    +
    +	/**
    +	 *	Return next contract ref
    +	 *
    +	 *	@param	Societe		$soc	Thirdparty object
    +	 *	@return string				Free reference for contract
    +	 */
    +	function getNextNumRef($soc)
    +	{
    +		global $langs, $conf;
    +		$langs->load("receptions");
    +
    +	    if (!empty($conf->global->RECEPTION_ADDON_NUMBER))
    +        {
    +			$mybool = false;
    +
    +			$file = $conf->global->RECEPTION_ADDON_NUMBER.".php";
    +			$classname = $conf->global->RECEPTION_ADDON_NUMBER;
    +
    +	        // Include file with class
    +	        $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
    +
    +	        foreach ($dirmodels as $reldir) {
    +
    +		        $dir = dol_buildpath($reldir."core/modules/reception/");
    +
    +		        // Load file with numbering class (if found)
    +		        $mybool|=@include_once $dir.$file;
    +	        }
    +
    +	        if (! $mybool)
    +	        {
    +		        dol_print_error('',"Failed to include file ".$file);
    +		        return '';
    +	        }
    +
    +			$obj = new $classname();
    +
    +			$numref = "";
    +			$numref = $obj->getNextValue($soc,$this);
    +
    +			if ( $numref != "")
    +			{
    +				return $numref;
    +			}
    +			else
    +			{
    +				dol_print_error($this->db,get_class($this)."::getNextNumRef ".$obj->error);
    +				return "";
    +			}
    +        }
    +	    else
    +	    {
    +		    print $langs->trans("Error")." ".$langs->trans("Error_RECEPTION_ADDON_NUMBER_NotDefined");
    +		    return "";
    +	    }
    +	}
    +
    +	/**
    +	 *  Create reception en base
    +	 *
    +	 *  @param	User	$user       Objet du user qui cree
    +	 *  @param	int		$notrigger	1=Does not execute triggers, 0= execute triggers
    +	 *  @return int 				<0 si erreur, id reception creee si ok
    +	 */
    +	function create($user, $notrigger=0)
    +	{
    +		global $conf, $hookmanager;
    +
    +		$now=dol_now();
    +
    +		require_once DOL_DOCUMENT_ROOT .'/product/stock/class/mouvementstock.class.php';
    +		$error = 0;
    +
    +		// Clean parameters
    +		$this->brouillon = 1;
    +		$this->tracking_number = dol_sanitizeFileName($this->tracking_number);
    +		if (empty($this->fk_project)) $this->fk_project = 0;
    +
    +		$this->user = $user;
    +
    +
    +		$this->db->begin();
    +
    +		$sql = "INSERT INTO ".MAIN_DB_PREFIX."reception (";
    +		$sql.= "ref";
    +		$sql.= ", entity";
    +		$sql.= ", ref_supplier";
    +		$sql.= ", ref_int";
    +		$sql.= ", date_creation";
    +		$sql.= ", fk_user_author";
    +		$sql.= ", date_reception";
    +		$sql.= ", date_delivery";
    +		$sql.= ", fk_soc";
    +		$sql.= ", fk_projet";
    +		$sql.= ", fk_shipping_method";
    +		$sql.= ", tracking_number";
    +		$sql.= ", weight";
    +		$sql.= ", size";
    +		$sql.= ", width";
    +		$sql.= ", height";
    +		$sql.= ", weight_units";
    +		$sql.= ", size_units";
    +		$sql.= ", note_private";
    +		$sql.= ", note_public";
    +		$sql.= ", model_pdf";
    +		$sql.= ", fk_incoterms, location_incoterms";
    +		$sql.= ") VALUES (";
    +		$sql.= "'(PROV)'";
    +		$sql.= ", ".$conf->entity;
    +		$sql.= ", ".($this->ref_supplier?"'".$this->db->escape($this->ref_supplier)."'":"null");
    +		$sql.= ", ".($this->ref_int?"'".$this->db->escape($this->ref_int)."'":"null");
    +		$sql.= ", '".$this->db->idate($now)."'";
    +		$sql.= ", ".$user->id;
    +		$sql.= ", ".($this->date_reception>0?"'".$this->db->idate($this->date_reception)."'":"null");
    +		$sql.= ", ".($this->date_delivery>0?"'".$this->db->idate($this->date_delivery)."'":"null");
    +		$sql.= ", ".$this->socid;
    +		$sql.= ", ".$this->fk_project;
    +		$sql.= ", ".($this->shipping_method_id>0?$this->shipping_method_id:"null");
    +		$sql.= ", '".$this->db->escape($this->tracking_number)."'";
    +		$sql.= ", ".$this->weight;
    +		$sql.= ", ".$this->sizeS;	// TODO Should use this->trueDepth
    +		$sql.= ", ".$this->sizeW;	// TODO Should use this->trueWidth
    +		$sql.= ", ".$this->sizeH;	// TODO Should use this->trueHeight
    +		$sql.= ", ".$this->weight_units;
    +		$sql.= ", ".$this->size_units;
    +		$sql.= ", ".(!empty($this->note_private)?"'".$this->db->escape($this->note_private)."'":"null");
    +		$sql.= ", ".(!empty($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null");
    +		$sql.= ", ".(!empty($this->model_pdf)?"'".$this->db->escape($this->model_pdf)."'":"null");
    +        $sql.= ", ".(int) $this->fk_incoterms;
    +        $sql.= ", '".$this->db->escape($this->location_incoterms)."'";
    +		$sql.= ")";
    +
    +		dol_syslog(get_class($this)."::create", LOG_DEBUG);
    +
    +		$resql=$this->db->query($sql);
    +
    +		if ($resql)
    +		{
    +			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."reception");
    +
    +			$sql = "UPDATE ".MAIN_DB_PREFIX."reception";
    +			$sql.= " SET ref = '(PROV".$this->id.")'";
    +			$sql.= " WHERE rowid = ".$this->id;
    +
    +			dol_syslog(get_class($this)."::create", LOG_DEBUG);
    +			if ($this->db->query($sql))
    +			{
    +				// Insertion des lignes
    +				$num=count($this->lines);
    +				for ($i = 0; $i < $num; $i++)
    +				{
    +					$this->lines[$i]->fk_reception = $this->id;
    +
    +					if (! $this->lines[$i]->create($user) > 0)
    +					{
    +						$error++;
    +					}
    +				}
    +
    +				if (! $error && $this->id && $this->origin_id)
    +				{
    +					$ret = $this->add_object_linked();
    +					if (!$ret)
    +					{
    +						$error++;
    +					}
    +				}
    +
    +				// Actions on extra fields (by external module or standard code)
    +				// TODO le hook fait double emploi avec le trigger !!
    +				$action='add';
    +				$hookmanager->initHooks(array('receptiondao'));
    +				$parameters=array('socid'=>$this->id);
    +				$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action);    // Note that $action and $object may have been modified by some hooks
    +				if (empty($reshook))
    +				{
    +					if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
    +					{
    +						$result=$this->insertExtraFields();
    +						if ($result < 0)
    +						{
    +							$error++;
    +						}
    +					}
    +				}
    +				else if ($reshook < 0) $error++;
    +
    +				if (! $error && ! $notrigger)
    +				{
    +                    // Call trigger
    +                    $result=$this->call_trigger('RECEPTION_CREATE',$user);
    +                    if ($result < 0) { $error++; }
    +                    // End call triggers
    +
    +					if (! $error)
    +					{
    +						$this->db->commit();
    +						return $this->id;
    +					}
    +					else
    +					{
    +						foreach($this->errors as $errmsg)
    +						{
    +							dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
    +							$this->error.=($this->error?', '.$errmsg:$errmsg);
    +						}
    +						$this->db->rollback();
    +						return -1*$error;
    +					}
    +				}
    +				else
    +				{
    +					$error++;
    +					$this->error=$this->db->lasterror()." - sql=$sql";
    +					$this->db->rollback();
    +					return -3;
    +				}
    +			}
    +			else
    +			{
    +				$error++;
    +				$this->error=$this->db->lasterror()." - sql=$sql";
    +				$this->db->rollback();
    +				return -2;
    +			}
    +		}
    +		else
    +		{
    +			$error++;
    +			$this->error=$this->db->error()." - sql=$sql";
    +			$this->db->rollback();
    +			return -1;
    +		}
    +	}
    +
    +
    +
    +	/**
    +	 *	Get object and lines from database
    +	 *
    +	 *	@param	int		$id       	Id of object to load
    +	 * 	@param	string	$ref		Ref of object
    +	 * 	@param	string	$ref_ext	External reference of object
    +     * 	@param	string	$ref_int	Internal reference of other object
    +	 *	@return int			        >0 if OK, 0 if not found, <0 if KO
    +	 */
    +	function fetch($id, $ref='', $ref_ext='', $ref_int='')
    +	{
    +		global $conf;
    +
    +		// Check parameters
    +		if (empty($id) && empty($ref) && empty($ref_ext) && empty($ref_int)) return -1;
    +
    +		$sql = "SELECT e.rowid, e.ref, e.fk_soc as socid, e.date_creation, e.ref_supplier, e.ref_ext, e.ref_int, e.fk_user_author, e.fk_statut";
    +		$sql.= ", e.weight, e.weight_units, e.size, e.size_units, e.width, e.height";
    +		$sql.= ", e.date_reception as date_reception, e.model_pdf,  e.date_delivery";
    +		$sql.= ", e.fk_shipping_method, e.tracking_number";
    +		$sql.= ", el.fk_source as origin_id, el.sourcetype as origin";
    +		$sql.= ", e.note_private, e.note_public";
    +        $sql.= ', e.fk_incoterms, e.location_incoterms';
    +        $sql.= ', i.libelle as libelle_incoterms';
    +		$sql.= " FROM ".MAIN_DB_PREFIX."reception as e";
    +		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON el.fk_target = e.rowid AND el.targettype = '".$this->db->escape($this->element)."'";
    +		$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON e.fk_incoterms = i.rowid';
    +		$sql.= " WHERE e.entity IN (".getEntity('reception').")";
    +		if ($id)   	  $sql.= " AND e.rowid=".$id;
    +        if ($ref)     $sql.= " AND e.ref='".$this->db->escape($ref)."'";
    +        if ($ref_ext) $sql.= " AND e.ref_ext='".$this->db->escape($ref_ext)."'";
    +        if ($ref_int) $sql.= " AND e.ref_int='".$this->db->escape($ref_int)."'";
    +
    +		dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
    +		$result = $this->db->query($sql);
    +		if ($result)
    +		{
    +			if ($this->db->num_rows($result))
    +			{
    +				$obj = $this->db->fetch_object($result);
    +
    +				$this->id                   = $obj->rowid;
    +				$this->ref                  = $obj->ref;
    +				$this->socid                = $obj->socid;
    +				$this->ref_supplier			= $obj->ref_supplier;
    +				$this->ref_ext				= $obj->ref_ext;
    +				$this->ref_int				= $obj->ref_int;
    +				$this->statut               = $obj->fk_statut;
    +				$this->user_author_id       = $obj->fk_user_author;
    +				$this->date_creation        = $this->db->jdate($obj->date_creation);
    +				$this->date                 = $this->db->jdate($obj->date_reception);	// TODO deprecated
    +				$this->date_reception      = $this->db->jdate($obj->date_reception);	// TODO deprecated
    +				$this->date_reception        = $this->db->jdate($obj->date_reception);	// Date real
    +				$this->date_delivery        = $this->db->jdate($obj->date_delivery);	// Date planed
    +				$this->fk_delivery_address  = $obj->fk_address;
    +				$this->modelpdf             = $obj->model_pdf;
    +				$this->shipping_method_id	= $obj->fk_shipping_method;
    +				$this->tracking_number      = $obj->tracking_number;
    +				$this->origin               = ($obj->origin?$obj->origin:'commande'); // For compatibility
    +				$this->origin_id            = $obj->origin_id;
    +				$this->billed				= ($obj->fk_statut==2?1:0);
    +
    +				$this->trueWeight           = $obj->weight;
    +				$this->weight_units         = $obj->weight_units;
    +
    +				$this->trueWidth            = $obj->width;
    +				$this->width_units          = $obj->size_units;
    +				$this->trueHeight           = $obj->height;
    +				$this->height_units         = $obj->size_units;
    +				$this->trueDepth            = $obj->size;
    +				$this->depth_units          = $obj->size_units;
    +
    +				$this->note_public          = $obj->note_public;
    +				$this->note_private         = $obj->note_private;
    +
    +				// A denormalized value
    +				$this->trueSize           	= $obj->size."x".$obj->width."x".$obj->height;
    +				$this->size_units           = $obj->size_units;
    +
    +				//Incoterms
    +				$this->fk_incoterms = $obj->fk_incoterms;
    +				$this->location_incoterms = $obj->location_incoterms;
    +				$this->libelle_incoterms = $obj->libelle_incoterms;
    +
    +				$this->db->free($result);
    +
    +				if ($this->statut == 0) $this->brouillon = 1;
    +
    +				$file = $conf->reception->dir_output . "/" .get_exdir($this->id, 2, 0, 0, $this, 'reception') . "/" . $this->id.".pdf";
    +				$this->pdf_filename = $file;
    +
    +				// Tracking url
    +				$this->getUrlTrackingStatus($obj->tracking_number);
    +
    +				/*
    +				 * Thirparty
    +				 */
    +				$result=$this->fetch_thirdparty();
    +
    +
    +				// Retrieve all extrafields for reception
    +				// fetch optionals attributes and labels
    +				require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
    +				$extrafields=new ExtraFields($this->db);
    +				$extralabels=$extrafields->fetch_name_optionals_label($this->table_element,true);
    +				$this->fetch_optionals($this->id,$extralabels);
    +
    +				/*
    +				 * Lines
    +				 */
    +				$result=$this->fetch_lines();
    +				if ($result < 0)
    +				{
    +					return -3;
    +				}
    +
    +				return 1;
    +			}
    +			else
    +			{
    +				dol_syslog(get_class($this).'::Fetch no reception found', LOG_ERR);
    +				$this->error='Delivery with id '.$id.' not found';
    +				return 0;
    +			}
    +		}
    +		else
    +		{
    +			$this->error=$this->db->error();
    +			return -1;
    +		}
    +	}
    +
    +	/**
    +	 *  Validate object and update stock if option enabled
    +	 *
    +	 *  @param      User		$user       Object user that validate
    +     *  @param		int			$notrigger	1=Does not execute triggers, 0= execute triggers
    +	 *  @return     int						<0 if OK, >0 if KO
    +	 */
    +	function valid($user, $notrigger=0)
    +	{
    +		global $conf, $langs;
    +
    +        require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +
    +		dol_syslog(get_class($this)."::valid");
    +
    +		// Protection
    +		if ($this->statut)
    +		{
    +			dol_syslog(get_class($this)."::valid no draft status", LOG_WARNING);
    +			return 0;
    +		}
    +
    +        if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->reception->creer))
    +       	|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->reception->reception_advance->validate))))
    +		{
    +			$this->error='Permission denied';
    +			dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
    +			return -1;
    +		}
    +
    +		$this->db->begin();
    +
    +		$error = 0;
    +
    +		// Define new ref
    +		$soc = new Societe($this->db);
    +		$soc->fetch($this->socid);
    +
    +
    +		// Define new ref
    +		if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref) || empty($this->ref))) // empty should not happened, but when it occurs, the test save life
    +		{
    +			$numref = $this->getNextNumRef($soc);
    +		}
    +		else {
    +			$numref = $this->ref;
    +		}
    +
    +        $this->newref = $numref;
    +
    +		$now=dol_now();
    +
    +		// Validate
    +		$sql = "UPDATE ".MAIN_DB_PREFIX."reception SET";
    +		$sql.= " ref='".$this->db->escape($numref)."'";
    +		$sql.= ", fk_statut = 1";
    +		$sql.= ", date_valid = '".$this->db->idate($now)."'";
    +		$sql.= ", fk_user_valid = ".$user->id;
    +		$sql.= " WHERE rowid = ".$this->id;
    +		dol_syslog(get_class($this)."::valid update reception", LOG_DEBUG);
    +		$resql=$this->db->query($sql);
    +		if (! $resql)
    +		{
    +			$this->error=$this->db->lasterror();
    +			$error++;
    +		}
    +
    +		// If stock increment is done on reception (recommanded choice)
    +		if (! $error && ! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_RECEPTION))
    +		{
    +			require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php';
    +
    +			$langs->load("agenda");
    +
    +			// Loop on each product line to add a stock movement
    +			// TODO in future, reception lines may not be linked to order line
    +			$sql = "SELECT cd.fk_product, cd.subprice,";
    +			$sql.= " ed.rowid, ed.qty, ed.fk_entrepot,";
    +			$sql.= " ed.eatby, ed.sellby, ed.batch";
    +			$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd,";
    +			$sql.= " ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as ed";
    +			$sql.= " WHERE ed.fk_reception = ".$this->id;
    +			$sql.= " AND cd.rowid = ed.fk_commandefourndet";
    +
    +			dol_syslog(get_class($this)."::valid select details", LOG_DEBUG);
    +			$resql=$this->db->query($sql);
    +			if ($resql)
    +			{
    +				$cpt = $this->db->num_rows($resql);
    +				for ($i = 0; $i < $cpt; $i++)
    +				{
    +					$obj = $this->db->fetch_object($resql);
    +
    +					$qty = $obj->qty;
    +
    +					if ($qty <= 0) continue;
    +					dol_syslog(get_class($this)."::valid movement index ".$i." ed.rowid=".$obj->rowid." edb.rowid=".$obj->edbrowid);
    +
    +					//var_dump($this->lines[$i]);
    +					$mouvS = new MouvementStock($this->db);
    +					$mouvS->origin = &$this;
    +
    +					if (empty($obj->batch))
    +					{
    +						// line without batch detail
    +
    +						// We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record.
    +						$result=$mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->subprice, $langs->trans("ReceptionValidatedInDolibarr",$numref));
    +						if ($result < 0) {
    +							$error++;
    +							$this->errors[]=$mouvS->error;
    +							$this->errors = array_merge($this->errors, $mouvS->errors);
    +							break;
    +						}
    +					}
    +					else
    +					{
    +						// line with batch detail
    +
    +						// We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record.
    +					    // Note: ->fk_origin_stock = id into table llx_product_batch (may be rename into llx_product_stock_batch in another version)
    +						$result=$mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->subprice, $langs->trans("ReceptionValidatedInDolibarr",$numref), $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch);
    +						if ($result < 0) {
    +							$error++;
    +							$this->errors[]=$mouvS->error;
    +							$this->errors = array_merge($this->errors, $mouvS->errors);
    +							break;
    +						}
    +					}
    +				}
    +			}
    +			else
    +			{
    +				$this->db->rollback();
    +				$this->error=$this->db->error();
    +				return -2;
    +			}
    +		}
    +
    +		// Change status of order to "reception in process"
    +		$ret = $this->setStatut(4, $this->origin_id, 'commande_fournisseur');
    +
    +        if (! $ret)
    +		{
    +		    $error++;
    +		}
    +
    +		if (! $error && ! $notrigger)
    +		{
    +            // Call trigger
    +            $result=$this->call_trigger('RECEPTION_VALIDATE',$user);
    +            if ($result < 0) { $error++; }
    +            // End call triggers
    +		}
    +
    +		if (! $error)
    +		{
    +            $this->oldref = $this->ref;
    +
    +			// Rename directory if dir was a temporary ref
    +			if (preg_match('/^[\(]?PROV/i', $this->ref))
    +			{
    +				// On renomme repertoire ($this->ref = ancienne ref, $numfa = nouvelle ref)
    +				// in order not to lose the attached files
    +				$oldref = dol_sanitizeFileName($this->ref);
    +				$newref = dol_sanitizeFileName($numref);
    +				$dirsource = $conf->reception->dir_output.'/'.$oldref;
    +				$dirdest = $conf->reception->dir_output.'/'.$newref;
    +				if (file_exists($dirsource))
    +				{
    +					dol_syslog(get_class($this)."::valid rename dir ".$dirsource." into ".$dirdest);
    +
    +					if (@rename($dirsource, $dirdest))
    +					{
    +					    dol_syslog("Rename ok");
    +                        // Rename docs starting with $oldref with $newref
    +                        $listoffiles=dol_dir_list($conf->reception->dir_output.'/'.$newref, 'files', 1, '^'.preg_quote($oldref,'/'));
    +                        foreach($listoffiles as $fileentry)
    +                        {
    +                        	$dirsource=$fileentry['name'];
    +                        	$dirdest=preg_replace('/^'.preg_quote($oldref,'/').'/',$newref, $dirsource);
    +                        	$dirsource=$fileentry['path'].'/'.$dirsource;
    +                        	$dirdest=$fileentry['path'].'/'.$dirdest;
    +                        	@rename($dirsource, $dirdest);
    +                        }
    +					}
    +				}
    +			}
    +		}
    +
    +		// Set new ref and current status
    +		if (! $error)
    +		{
    +			$this->ref = $numref;
    +			$this->statut = 1;
    +		}
    +
    +		if (! $error)
    +		{
    +			$this->db->commit();
    +			return 1;
    +		}
    +		else
    +		{
    +			foreach($this->errors as $errmsg)
    +			{
    +	            dol_syslog(get_class($this)."::valid ".$errmsg, LOG_ERR);
    +	            $this->error.=($this->error?', '.$errmsg:$errmsg);
    +			}
    +			$this->db->rollback();
    +			return -1*$error;
    +		}
    +	}
    +
    +
    +
    +	/**
    +	 * Add an reception line.
    +	 * If STOCK_WAREHOUSE_NOT_REQUIRED_FOR_RECEPTIONS is set, you can add a reception line, with no stock source defined
    +	 * If STOCK_MUST_BE_ENOUGH_FOR_RECEPTION is not set, you can add a reception line, even if not enough into stock
    +	 *
    +	 * @param 	int			$entrepot_id		Id of warehouse
    +	 * @param 	int			$id					Id of source line (supplier order line)
    +	 * @param 	int			$qty				Quantity
    +	 * @param	array		$array_options		extrafields array
    +	 * @param	string		$comment				Comment for stock movement
    +	 * @param	date		$eatby					eat-by date
    +	 * @param	date		$sellby					sell-by date
    +	 * @param	string		$batch					Lot number
    +	 * @return	int							<0 if KO, >0 if OK
    +	 */
    +	function addline($entrepot_id, $id, $qty, $array_options=0, $comment='', $eatby='', $sellby='', $batch='')
    +	{
    +		global $conf, $langs, $user;
    +
    +		$num = count($this->lines);
    +		$line = new CommandeFournisseurDispatch($this->db);
    +
    +		$line->fk_entrepot = $entrepot_id;
    +		$line->fk_commandefourndet = $id;
    +		$line->qty = $qty;
    +
    +		$supplierorderline = new CommandeFournisseurLigne($this->db);
    +		$supplierorderline->fetch($id);
    +
    +		if (! empty($conf->stock->enabled) && ! empty($supplierorderline->fk_product))
    +		{
    +			$fk_product = $supplierorderline->fk_product;
    +
    +			if (! ($entrepot_id > 0) && empty($conf->global->STOCK_WAREHOUSE_NOT_REQUIRED_FOR_RECEPTIONS))
    +			{
    +			    $langs->load("errors");
    +				$this->error=$langs->trans("ErrorWarehouseRequiredIntoReceptionLine");
    +				return -1;
    +			}
    +		}
    +
    +		// extrafields
    +		if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options)>0) // For avoid conflicts if trigger used
    +			$line->array_options = $array_options;
    +
    +		$line->fk_product = $fk_product;
    +		$line->fk_commande = $supplierorderline->fk_commande ;
    +		$line->fk_user = $user->id ;
    +		$line->comment = $comment;
    +		$line->batch = $batch;
    +		$line->eatby = $eatby;
    +		$line->sellby = $sellby;
    +		$line->status=1;
    +		$line->fk_reception=$this->id;
    +
    +		$this->lines[$num] = $line;
    +	}
    +
    +
    +    /**
    +     *  Update database
    +     *
    +     *  @param	User	$user        	User that modify
    +     *  @param  int		$notrigger	    0=launch triggers after, 1=disable triggers
    +     *  @return int 			       	<0 if KO, >0 if OK
    +     */
    +    function update($user=null, $notrigger=0)
    +    {
    +    	global $conf;
    +		$error=0;
    +
    +		// Clean parameters
    +
    +		if (isset($this->ref)) $this->ref=trim($this->ref);
    +		if (isset($this->entity)) $this->entity=trim($this->entity);
    +		if (isset($this->ref_supplier)) $this->ref_supplier=trim($this->ref_supplier);
    +		if (isset($this->socid)) $this->socid=trim($this->socid);
    +		if (isset($this->fk_user_author)) $this->fk_user_author=trim($this->fk_user_author);
    +		if (isset($this->fk_user_valid)) $this->fk_user_valid=trim($this->fk_user_valid);
    +		if (isset($this->fk_delivery_address)) $this->fk_delivery_address=trim($this->fk_delivery_address);
    +		if (isset($this->shipping_method_id)) $this->shipping_method_id=trim($this->shipping_method_id);
    +		if (isset($this->tracking_number)) $this->tracking_number=trim($this->tracking_number);
    +		if (isset($this->statut)) $this->statut=(int) $this->statut;
    +		if (isset($this->trueDepth)) $this->trueDepth=trim($this->trueDepth);
    +		if (isset($this->trueWidth)) $this->trueWidth=trim($this->trueWidth);
    +		if (isset($this->trueHeight)) $this->trueHeight=trim($this->trueHeight);
    +		if (isset($this->size_units)) $this->size_units=trim($this->size_units);
    +		if (isset($this->weight_units)) $this->weight_units=trim($this->weight_units);
    +		if (isset($this->trueWeight)) $this->weight=trim($this->trueWeight);
    +		if (isset($this->note_private)) $this->note=trim($this->note_private);
    +		if (isset($this->note_public)) $this->note=trim($this->note_public);
    +		if (isset($this->modelpdf)) $this->modelpdf=trim($this->modelpdf);
    +
    +
    +		// Check parameters
    +		// Put here code to add control on parameters values
    +
    +        // Update request
    +        $sql = "UPDATE ".MAIN_DB_PREFIX."reception SET";
    +
    +		$sql.= " tms=".(dol_strlen($this->tms)!=0 ? "'".$this->db->idate($this->tms)."'" : 'null').",";
    +		$sql.= " ref=".(isset($this->ref)?"'".$this->db->escape($this->ref)."'":"null").",";
    +		$sql.= " ref_supplier=".(isset($this->ref_supplier)?"'".$this->db->escape($this->ref_supplier)."'":"null").",";
    +		$sql.= " fk_soc=".(isset($this->socid)?$this->socid:"null").",";
    +		$sql.= " date_creation=".(dol_strlen($this->date_creation)!=0 ? "'".$this->db->idate($this->date_creation)."'" : 'null').",";
    +		$sql.= " fk_user_author=".(isset($this->fk_user_author)?$this->fk_user_author:"null").",";
    +		$sql.= " date_valid=".(dol_strlen($this->date_valid)!=0 ? "'".$this->db->idate($this->date_valid)."'" : 'null').",";
    +		$sql.= " fk_user_valid=".(isset($this->fk_user_valid)?$this->fk_user_valid:"null").",";
    +		$sql.= " date_reception=".(dol_strlen($this->date_reception)!=0 ? "'".$this->db->idate($this->date_reception)."'" : 'null').",";
    +		$sql.= " date_delivery=".(dol_strlen($this->date_delivery)!=0 ? "'".$this->db->idate($this->date_delivery)."'" : 'null').",";
    +		$sql.= " fk_shipping_method=".((isset($this->shipping_method_id) && $this->shipping_method_id > 0)?$this->shipping_method_id:"null").",";
    +		$sql.= " tracking_number=".(isset($this->tracking_number)?"'".$this->db->escape($this->tracking_number)."'":"null").",";
    +		$sql.= " fk_statut=".(isset($this->statut)?$this->statut:"null").",";
    +		$sql.= " height=".(($this->trueHeight != '')?$this->trueHeight:"null").",";
    +		$sql.= " width=".(($this->trueWidth != '')?$this->trueWidth:"null").",";
    +		$sql.= " size_units=".(isset($this->size_units)?$this->size_units:"null").",";
    +		$sql.= " size=".(($this->trueDepth != '')?$this->trueDepth:"null").",";
    +		$sql.= " weight_units=".(isset($this->weight_units)?$this->weight_units:"null").",";
    +		$sql.= " weight=".(($this->trueWeight != '')?$this->trueWeight:"null").",";
    +		$sql.= " note_private=".(isset($this->note_private)?"'".$this->db->escape($this->note_private)."'":"null").",";
    +		$sql.= " note_public=".(isset($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null").",";
    +		$sql.= " model_pdf=".(isset($this->modelpdf)?"'".$this->db->escape($this->modelpdf)."'":"null").",";
    +		$sql.= " entity=".$conf->entity;
    +
    +        $sql.= " WHERE rowid=".$this->id;
    +
    +		$this->db->begin();
    +
    +		dol_syslog(get_class($this)."::update", LOG_DEBUG);
    +        $resql = $this->db->query($sql);
    +    	if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
    +
    +		if (! $error)
    +		{
    +			if (! $notrigger)
    +			{
    +                // Call trigger
    +                $result=$this->call_trigger('RECEPTION_MODIFY',$user);
    +                if ($result < 0) { $error++; }
    +                // End call triggers
    +	    	}
    +		}
    +
    +        // Commit or rollback
    +		if ($error)
    +		{
    +			foreach($this->errors as $errmsg)
    +			{
    +	            dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
    +	            $this->error.=($this->error?', '.$errmsg:$errmsg);
    +			}
    +			$this->db->rollback();
    +			return -1*$error;
    +		}
    +		else
    +		{
    +			$this->db->commit();
    +			return 1;
    +		}
    +	}
    +
    +	/**
    +	 * 	Delete reception.
    +	 *
    +	 *	@param	User	$user	Object user
    +	 * 	@return	int				>0 if OK, 0 if deletion done but failed to delete files, <0 if KO
    +	 */
    +	function delete(User $user)
    +	{
    +		global $conf, $langs, $user;
    +		require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +
    +		$error=0;
    +		$this->error='';
    +
    +
    +		$this->db->begin();
    +
    +		// Stock control
    +		if ($conf->stock->enabled && $conf->global->STOCK_CALCULATE_ON_RECEPTION && $this->statut > 0)
    +		{
    +			require_once DOL_DOCUMENT_ROOT."/product/stock/class/mouvementstock.class.php";
    +
    +			$langs->load("agenda");
    +
    +			// Loop on each product line to add a stock movement
    +			$sql = "SELECT cd.fk_product, cd.subprice, ed.qty, ed.fk_entrepot, ed.eatby, ed.sellby, ed.batch, ed.rowid as commande_fournisseur_dispatch_id";
    +			$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd,";
    +			$sql.= " ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as ed";
    +			$sql.= " WHERE ed.fk_reception = ".$this->id;
    +			$sql.= " AND cd.rowid = ed.fk_commandefourndet";
    +
    +			dol_syslog(get_class($this)."::delete select details", LOG_DEBUG);
    +			$resql=$this->db->query($sql);
    +			if ($resql)
    +			{
    +				$cpt = $this->db->num_rows($resql);
    +				for ($i = 0; $i < $cpt; $i++)
    +				{
    +					dol_syslog(get_class($this)."::delete movement index ".$i);
    +					$obj = $this->db->fetch_object($resql);
    +
    +					$mouvS = new MouvementStock($this->db);
    +					// we do not log origin because it will be deleted
    +					$mouvS->origin = null;
    +
    +					$result=$mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $obj->qty, 0, $langs->trans("ReceptionDeletedInDolibarr", $this->ref),'', $obj->eatby, $obj->sellby, $obj->batch);  // Price is set to 0, because we don't want to see WAP changed
    +				}
    +			}
    +			else
    +			{
    +				$error++;$this->errors[]="Error ".$this->db->lasterror();
    +			}
    +		}
    +
    +		if (! $error)
    +		{
    +			$sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseur_dispatch";
    +			$sql.= " WHERE fk_reception = ".$this->id;
    +
    +			if ( $this->db->query($sql) )
    +			{
    +				// Delete linked object
    +				$res = $this->deleteObjectLinked();
    +				if ($res < 0) $error++;
    +
    +				if (! $error)
    +				{
    +					$sql = "DELETE FROM ".MAIN_DB_PREFIX."reception";
    +					$sql.= " WHERE rowid = ".$this->id;
    +
    +					if ($this->db->query($sql))
    +					{
    +						// Call trigger
    +						$result=$this->call_trigger('RECEPTION_DELETE',$user);
    +						if ($result < 0) { $error++; }
    +						// End call triggers
    +
    +						if (! empty($this->origin) && $this->origin_id > 0)
    +						{
    +						    $this->fetch_origin();
    +						    $origin=$this->origin;
    +						    if ($this->$origin->statut == 4)     // If order source of reception is "partially received"
    +						    {
    +                                // Check if there is no more reception. If not, we can move back status of order to "validated" instead of "reception in progress"
    +						        $this->$origin->loadReceptions();
    +						        //var_dump($this->$origin->receptions);exit;
    +						        if (count($this->$origin->receptions) <= 0)
    +						        {
    +                                    $this->$origin->setStatut(3); // ordered
    +						        }
    +						    }
    +						}
    +
    +						if (! $error)
    +						{
    +							$this->db->commit();
    +
    +							// We delete PDFs
    +							$ref = dol_sanitizeFileName($this->ref);
    +							if (! empty($conf->reception->dir_output))
    +							{
    +								$dir = $conf->reception->dir_output . '/' . $ref ;
    +								$file = $dir . '/' . $ref . '.pdf';
    +								if (file_exists($file))
    +								{
    +									if (! dol_delete_file($file))
    +									{
    +										return 0;
    +									}
    +								}
    +								if (file_exists($dir))
    +								{
    +									if (!dol_delete_dir_recursive($dir))
    +									{
    +										$this->error=$langs->trans("ErrorCanNotDeleteDir",$dir);
    +										return 0;
    +									}
    +								}
    +							}
    +
    +							return 1;
    +						}
    +						else
    +						{
    +							$this->db->rollback();
    +							return -1;
    +						}
    +					}
    +					else
    +					{
    +						$this->error=$this->db->lasterror()." - sql=$sql";
    +						$this->db->rollback();
    +						return -3;
    +					}
    +				}
    +				else
    +				{
    +					$this->error=$this->db->lasterror()." - sql=$sql";
    +					$this->db->rollback();
    +					return -2;
    +				}
    +			}
    +			else
    +			{
    +				$this->error=$this->db->lasterror()." - sql=$sql";
    +				$this->db->rollback();
    +				return -1;
    +			}
    +		}
    +		else
    +		{
    +			$this->db->rollback();
    +			return -1;
    +		}
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Load lines
    +	 *
    +	 *	@return	int		>0 if OK, Otherwise if KO
    +	 */
    +	function fetch_lines()
    +	{
    +		// phpcs:enable
    +		global $db;
    +		dol_include_once('/fourn/class/fournisseur.commande.dispatch.class.php');
    +		$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'commande_fournisseur_dispatch WHERE fk_reception='.$this->id;
    +		$resql = $db->query($sql);
    +
    +		if(!empty($resql)){
    +			$this->lines = array();
    +			while ($obj = $resql->fetch_object()){
    +				$line = new CommandeFournisseurDispatch($db);
    +				$line->fetch($obj->rowid);
    +				$line->fetch_product();
    +				$sql_commfourndet = 'SELECT qty, ref,  label, tva_tx, vat_src_code, subprice, multicurrency_subprice, remise_percent FROM llx_commande_fournisseurdet WHERE rowid='.$line->fk_commandefourndet;
    +				$resql_commfourndet = $db->query($sql_commfourndet);
    +				if(!empty($resql_commfourndet)){
    +					$obj = $db->fetch_object($resql_commfourndet);
    +					$line->qty_asked = $obj->qty;
    +					$line->description = $line->comment;
    +					$line->desc =  $line->comment;
    +					$line->tva_tx = $obj->tva_tx;
    +					$line->vat_src_code = $obj->vat_src_code;
    +					$line->subprice = $obj->subprice;
    +					$line->multicurrency_subprice = $obj->multicurrency_subprice;
    +					$line->remise_percent = $obj->remise_percent;
    +					$line->label = !empty($obj->label)?$obj->label:$line->product->label;
    +					$line->ref_supplier = $obj->ref;
    +				}else {
    +					$line->qty_asked = 0;
    +					$line->description = '';
    +					$line->label = $obj->label;
    +				}
    +
    +				$pu_ht=($line->subprice*$line->qty)*(100-$line->remise_percent)/100;
    +				$tva = $pu_ht*$line->tva_tx/100;
    +				$this->total_ht += $pu_ht;
    +				$this->total_tva += $pu_ht*$line->tva_tx/100;
    +
    +				$this->total_ttc += $pu_ht+$tva;
    +
    +
    +				$this->lines[]=$line;
    +			}
    +
    +			return 1;
    +		}
    +		else {
    +			return -1;
    +		}
    +	}
    +
    +	/**
    +     *	Return clicable link of object (with eventually picto)
    +     *
    +     *	@param      int			$withpicto      Add picto into link
    +     *	@param      int			$option         Where point the link
    +     *	@param      int			$max          	Max length to show
    +     *	@param      int			$short			Use short labels
    +     *  @param      int         $notooltip      1=No tooltip
    +     *	@return     string          			String with URL
    +     */
    +	function getNomUrl($withpicto=0,$option=0,$max=0,$short=0,$notooltip=0)
    +	{
    +		global $langs;
    +		$result='';
    +        $label = '<u>' . $langs->trans("ShowReception") . '</u>';
    +        $label .= '<br><b>' . $langs->trans('Ref') . ':</b> '.$this->ref;
    +        $label .= '<br><b>'.$langs->trans('RefSupplier').':</b> '.($this->ref_supplier ? $this->ref_supplier : $this->ref_client);
    +
    +		$url = DOL_URL_ROOT.'/reception/card.php?id='.$this->id;
    +
    +		if ($short) return $url;
    +
    +		$linkclose='';
    +		if (empty($notooltip))
    +		{
    +		    if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
    +		    {
    +		        $label=$langs->trans("ShowReception");
    +		        $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"';
    +		    }
    +		    $linkclose.= ' title="'.dol_escape_htmltag($label, 1).'"';
    +		    $linkclose.=' class="classfortooltip"';
    +		}
    +
    +        $linkstart = '<a href="'.$url.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
    +		$linkend='</a>';
    +
    +		$picto='sending';
    +
    +		if ($withpicto) $result.=($linkstart.img_object(($notooltip?'':$label), $picto, ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend);
    +		if ($withpicto && $withpicto != 2) $result.=' ';
    +		$result.=$linkstart.$this->ref.$linkend;
    +		return $result;
    +	}
    +
    +	/**
    +     *	Return status label
    +     *
    +     *	@param      int		$mode      	0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label, 5=Short label + Picto
    +     *	@return     string      		Libelle
    +     */
    +	function getLibStatut($mode=0)
    +	{
    +		return $this->LibStatut($this->statut,$mode);
    +	}
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 * Return label of a status
    +	 *
    +	 * @param      int		$statut		Id statut
    +	 * @param      int		$mode       0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label, 5=Short label + Picto
    +	 * @return     string				Label of status
    +	 */
    +	function LibStatut($statut,$mode)
    +	{
    +		// phpcs:enable
    +		global $langs;
    +
    +		if ($mode==0)
    +		{
    +			if ($statut==0) return $langs->trans($this->statuts[$statut]);
    +			if ($statut==1)  return $langs->trans($this->statuts[$statut]);
    +			if ($statut==2)  return $langs->trans($this->statuts[$statut]);
    +		}
    +		if ($mode==1)
    +		{
    +			if ($statut==0) return $langs->trans('StatusReceptionDraftShort');
    +			if ($statut==1) return $langs->trans('StatusReceptionValidatedShort');
    +			if ($statut==2) return $langs->trans('StatusReceptionProcessedShort');
    +		}
    +		if ($mode == 3)
    +		{
    +			if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut0');
    +			if ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut4');
    +			if ($statut==2) return img_picto($langs->trans('StatusReceptionProcessed'),'statut6');
    +		}
    +		if ($mode == 4)
    +		{
    +			if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]);
    +			if ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut4').' '.$langs->trans($this->statuts[$statut]);
    +			if ($statut==2) return img_picto($langs->trans('StatusReceptionProcessed'),'statut6').' '.$langs->trans('StatusReceptionProcessed');
    +		}
    +		if ($mode == 5)
    +		{
    +			if ($statut==0) return $langs->trans('StatusReceptionDraftShort').' '.img_picto($langs->trans($this->statuts[$statut]),'statut0');
    +			if ($statut==1) return $langs->trans('StatusReceptionValidatedShort').' '.img_picto($langs->trans($this->statuts[$statut]),'statut4');
    +			if ($statut==2) return $langs->trans('StatusReceptionProcessedShort').' '.img_picto($langs->trans('StatusReceptionProcessedShort'),'statut6');
    +		}
    +	}
    +
    +	/**
    +     *  Initialise an instance with random values.
    +     *  Used to build previews or test instances.
    +     *	id must be 0 if object instance is a specimen.
    +     *
    +     *  @return	void
    +	 */
    +	function initAsSpecimen()
    +	{
    +		global $langs;
    +		dol_include_once('/fourn/class/fournisseur.commande.dispatch.class.php');
    +		$now=dol_now();
    +
    +		dol_syslog(get_class($this)."::initAsSpecimen");
    +
    +        // Load array of products prodids
    +		$num_prods = 0;
    +		$prodids = array();
    +		$sql = "SELECT rowid";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."product";
    +		$sql.= " WHERE entity IN (".getEntity('product').")";
    +		$resql = $this->db->query($sql);
    +		if ($resql)
    +		{
    +			$num_prods = $this->db->num_rows($resql);
    +			$i = 0;
    +			while ($i < $num_prods)
    +			{
    +				$i++;
    +				$row = $this->db->fetch_row($resql);
    +				$prodids[$i] = $row[0];
    +			}
    +		}
    +
    +		$order=new Commande($this->db);
    +		$order->initAsSpecimen();
    +
    +		// Initialise parametres
    +		$this->id=0;
    +		$this->ref = 'SPECIMEN';
    +		$this->specimen=1;
    +		$this->statut               = 1;
    +		$this->livraison_id         = 0;
    +		$this->date                 = $now;
    +		$this->date_creation        = $now;
    +		$this->date_valid           = $now;
    +		$this->date_delivery        = $now;
    +		$this->date_reception      = $now + 24*3600;
    +
    +		$this->entrepot_id          = 0;
    +		$this->fk_delivery_address  = 0;
    +		$this->socid                = 1;
    +
    +		$this->commande_id          = 0;
    +		$this->commande             = $order;
    +
    +        $this->origin_id            = 1;
    +        $this->origin               = 'commande';
    +
    +        $this->note_private			= 'Private note';
    +        $this->note_public			= 'Public note';
    +
    +		$nbp = 5;
    +		$xnbp = 0;
    +		while ($xnbp < $nbp)
    +		{
    +			$line=new CommandeFournisseurDispatch($this->db);
    +			$line->desc=$langs->trans("Description")." ".$xnbp;
    +			$line->libelle=$langs->trans("Description")." ".$xnbp;
    +			$line->qty=10;
    +
    +			$line->fk_product=$this->commande->lines[$xnbp]->fk_product;
    +
    +			$this->lines[]=$line;
    +			$xnbp++;
    +		}
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Set the planned delivery date
    +	 *
    +	 *	@param      User			$user        		Objet utilisateur qui modifie
    +	 *	@param      timestamp		$date_livraison     Date de livraison
    +	 *	@return     int         						<0 if KO, >0 if OK
    +	 */
    +	function set_date_livraison($user, $date_livraison)
    +	{
    +		// phpcs:enable
    +		if ($user->rights->reception->creer)
    +		{
    +			$sql = "UPDATE ".MAIN_DB_PREFIX."reception";
    +			$sql.= " SET date_delivery = ".($date_livraison ? "'".$this->db->idate($date_livraison)."'" : 'null');
    +			$sql.= " WHERE rowid = ".$this->id;
    +
    +			dol_syslog(get_class($this)."::set_date_livraison", LOG_DEBUG);
    +			$resql=$this->db->query($sql);
    +			if ($resql)
    +			{
    +				$this->date_delivery = $date_livraison;
    +				return 1;
    +			}
    +			else
    +			{
    +				$this->error=$this->db->error();
    +				return -1;
    +			}
    +		}
    +		else
    +		{
    +			return -2;
    +		}
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Fetch deliveries method and return an array. Load array this->meths(rowid=>label).
    +	 *
    +	 * 	@return	void
    +	 */
    +	function fetch_delivery_methods()
    +	{
    +		// phpcs:enable
    +		global $langs;
    +		$this->meths = array();
    +
    +		$sql = "SELECT em.rowid, em.code, em.libelle";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."c_shipment_mode as em";
    +		$sql.= " WHERE em.active = 1";
    +		$sql.= " ORDER BY em.libelle ASC";
    +
    +		$resql = $this->db->query($sql);
    +		if ($resql)
    +		{
    +			while ($obj = $this->db->fetch_object($resql))
    +			{
    +				$label=$langs->trans('ReceptionMethod'.$obj->code);
    +				$this->meths[$obj->rowid] = ($label != 'ReceptionMethod'.$obj->code?$label:$obj->libelle);
    +			}
    +		}
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Fetch all deliveries method and return an array. Load array this->listmeths.
    +     *
    +     *  @param  int      $id     only this carrier, all if none
    +     *  @return void
    +     */
    +    function list_delivery_methods($id='')
    +    {
    +		// phpcs:enable
    +        global $langs;
    +
    +        $this->listmeths = array();
    +        $i=0;
    +
    +        $sql = "SELECT em.rowid, em.code, em.libelle, em.description, em.tracking, em.active";
    +        $sql.= " FROM ".MAIN_DB_PREFIX."c_shipment_mode as em";
    +        if ($id!='') $sql.= " WHERE em.rowid=".$id;
    +
    +        $resql = $this->db->query($sql);
    +        if ($resql)
    +        {
    +            while ($obj = $this->db->fetch_object($resql))
    +            {
    +                $this->listmeths[$i]['rowid'] = $obj->rowid;
    +                $this->listmeths[$i]['code'] = $obj->code;
    +                $label=$langs->trans('ReceptionMethod'.$obj->code);
    +                $this->listmeths[$i]['libelle'] = ($label != 'ReceptionMethod'.$obj->code?$label:$obj->libelle);
    +                $this->listmeths[$i]['description'] = $obj->description;
    +                $this->listmeths[$i]['tracking'] = $obj->tracking;
    +                $this->listmeths[$i]['active'] = $obj->active;
    +                $i++;
    +            }
    +        }
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Update/create delivery method.
    +     *
    +     *  @param	string      $id     id method to activate
    +     *
    +     *  @return void
    +     */
    +    function update_delivery_method($id='')
    +    {
    +		// phpcs:enable
    +        if ($id=='')
    +        {
    +            $sql = "INSERT INTO ".MAIN_DB_PREFIX."c_shipment_mode (code, libelle, description, tracking)";
    +            $sql.=" VALUES ('".$this->db->escape($this->update['code'])."','".$this->db->escape($this->update['libelle'])."','".$this->db->escape($this->update['description'])."','".$this->db->escape($this->update['tracking'])."')";
    +            $resql = $this->db->query($sql);
    +        }
    +        else
    +        {
    +            $sql = "UPDATE ".MAIN_DB_PREFIX."c_shipment_mode SET";
    +            $sql.= " code='".$this->db->escape($this->update['code'])."'";
    +            $sql.= ",libelle='".$this->db->escape($this->update['libelle'])."'";
    +            $sql.= ",description='".$this->db->escape($this->update['description'])."'";
    +            $sql.= ",tracking='".$this->db->escape($this->update['tracking'])."'";
    +            $sql.= " WHERE rowid=".$id;
    +            $resql = $this->db->query($sql);
    +        }
    +        if ($resql < 0) dol_print_error($this->db,'');
    +    }
    +
    +	// phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  Activate delivery method.
    +     *
    +     *  @param      int      $id     id method to activate
    +     *
    +     *  @return void
    +     */
    +    function activ_delivery_method($id)
    +    {
    +		// phpcs:enable
    +        $sql = 'UPDATE '.MAIN_DB_PREFIX.'c_shipment_mode SET active=1';
    +        $sql.= ' WHERE rowid='.$id;
    +
    +        $resql = $this->db->query($sql);
    +    }
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +    /**
    +     *  DesActivate delivery method.
    +     *
    +     *  @param      int      $id     id method to desactivate
    +     *
    +     *  @return void
    +     */
    +    function disable_delivery_method($id)
    +    {
    +		// phpcs:enable
    +        $sql = 'UPDATE '.MAIN_DB_PREFIX.'c_shipment_mode SET active=0';
    +        $sql.= ' WHERE rowid='.$id;
    +
    +        $resql = $this->db->query($sql);
    +    }
    +
    +
    +	/**
    +	 * Forge an set tracking url
    +	 *
    +	 * @param	string	$value		Value
    +	 * @return	void
    +	 */
    +	function getUrlTrackingStatus($value='')
    +	{
    +		if (! empty($this->shipping_method_id))
    +		{
    +			$sql = "SELECT em.code, em.tracking";
    +			$sql.= " FROM ".MAIN_DB_PREFIX."c_shipment_mode as em";
    +			$sql.= " WHERE em.rowid = ".$this->shipping_method_id;
    +
    +			$resql = $this->db->query($sql);
    +			if ($resql)
    +			{
    +				if ($obj = $this->db->fetch_object($resql))
    +				{
    +					$tracking = $obj->tracking;
    +				}
    +			}
    +		}
    +
    +		if (!empty($tracking) && !empty($value))
    +		{
    +			$url = str_replace('{TRACKID}', $value, $tracking);
    +			$this->tracking_url = sprintf('<a target="_blank" href="%s">'.($value?$value:'url').'</a>',$url,$url);
    +		}
    +		else
    +		{
    +			$this->tracking_url = $value;
    +		}
    +	}
    +
    +	/**
    +	 *	Classify the reception as closed.
    +	 *
    +	 *	@return     int     <0 if KO, >0 if OK
    +	 */
    +	function setClosed()
    +	{
    +		global $conf,$langs,$user;
    +
    +		$error=0;
    +
    +		$this->db->begin();
    +
    +		$sql = 'UPDATE '.MAIN_DB_PREFIX.'reception SET fk_statut='.self::STATUS_CLOSED;
    +		$sql .= ' WHERE rowid = '.$this->id.' AND fk_statut > 0';
    +
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			// Set order billed if 100% of order is received (qty in reception lines match qty in order lines)
    +			if ($this->origin == 'order_supplier' && $this->origin_id > 0)
    +			{
    +				$order = new CommandeFournisseur($this->db);
    +				$order->fetch($this->origin_id);
    +
    +				$order->loadReceptions(self::STATUS_CLOSED);		// Fill $order->receptions = array(orderlineid => qty)
    +
    +				$receptions_match_order = 1;
    +				foreach($order->lines as $line)
    +				{
    +					$lineid = $line->id;
    +					$qty = $line->qty;
    +					if (($line->product_type == 0 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES)) && $order->receptions[$lineid] < $qty)
    +					{
    +						$receptions_match_order = 0;
    +						$text='Qty for order line id '.$lineid.' is '.$qty.'. However in the receptions with status Reception::STATUS_CLOSED='.self::STATUS_CLOSED.' we have qty = '.$order->receptions[$lineid].', so we can t close order';
    +						dol_syslog($text);
    +						break;
    +					}
    +				}
    +				if ($receptions_match_order)
    +				{
    +					dol_syslog("Qty for the ".count($order->lines)." lines of order have same value for receptions with status Reception::STATUS_CLOSED=".self::STATUS_CLOSED.', so we close order');
    +					$order->Livraison($user, dol_now(), 'tot', 'Reception '.$this->ref);
    +				}
    +			}
    +
    +			$this->statut=self::STATUS_CLOSED;
    +
    +
    +			// If stock increment is done on closing
    +			if (! $error && ! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE))
    +			{
    +				require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php';
    +
    +				$langs->load("agenda");
    +
    +				// Loop on each product line to add a stock movement
    +				// TODO possibilite de receptionner a partir d'une propale ou autre origine ?
    +				$sql = "SELECT cd.fk_product, cd.subprice,";
    +				$sql.= " ed.rowid, ed.qty, ed.fk_entrepot,";
    +				$sql.= " ed.eatby, ed.sellby, ed.batch";
    +				$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd,";
    +				$sql.= " ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as ed";
    +				$sql.= " WHERE ed.fk_reception = ".$this->id;
    +				$sql.= " AND cd.rowid = ed.fk_commandefourndet";
    +
    +				dol_syslog(get_class($this)."::valid select details", LOG_DEBUG);
    +				$resql=$this->db->query($sql);
    +
    +				if ($resql)
    +				{
    +					$cpt = $this->db->num_rows($resql);
    +					for ($i = 0; $i < $cpt; $i++)
    +					{
    +						$obj = $this->db->fetch_object($resql);
    +
    +						$qty = $obj->qty;
    +
    +						if ($qty <= 0) continue;
    +						dol_syslog(get_class($this)."::valid movement index ".$i." ed.rowid=".$obj->rowid." edb.rowid=".$obj->edbrowid);
    +
    +						$mouvS = new MouvementStock($this->db);
    +						$mouvS->origin = &$this;
    +
    +						if (empty($obj->batch))
    +						{
    +							// line without batch detail
    +
    +							// We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record
    +							$result=$mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->subprice, $langs->trans("ReceptionClassifyClosedInDolibarr",$numref));
    +							if ($result < 0) {
    +							    $this->error = $mouvS->error;
    +							    $this->errors = $mouvS->errors;
    +								$error++; break;
    +							}
    +						}
    +						else
    +						{
    +							// line with batch detail
    +
    +							// We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record
    +							$result=$mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, $qty, $obj->subprice, $langs->trans("ReceptionClassifyClosedInDolibarr",$numref),  $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch);
    +
    +							if ($result < 0) {
    +							    $this->error = $mouvS->error;
    +							    $this->errors = $mouvS->errors;
    +							    $error++; break;
    +							}
    +						}
    +					}
    +				}
    +				else
    +				{
    +					$this->error=$this->db->lasterror();
    +					$error++;
    +				}
    +			}
    +
    +			// Call trigger
    +			if (! $error)
    +			{
    +    			$result=$this->call_trigger('RECEPTION_CLOSED',$user);
    +    			if ($result < 0) {
    +    			    $error++;
    +    			}
    +			}
    +		}
    +		else
    +		{
    +			dol_print_error($this->db);
    +            $error++;
    +		}
    +
    +		if (! $error)
    +		{
    +		    $this->db->commit();
    +		    return 1;
    +		}
    +		else
    +		{
    +		    $this->db->rollback();
    +		    return -1;
    +		}
    +	}
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	/**
    +	 *	Classify the reception as invoiced (used when WORKFLOW_BILL_ON_RECEPTION is on)
    +	 *
    +	 *	@return     int     <0 if ko, >0 if ok
    +	 */
    +	function set_billed()
    +	{
    +		// phpcs:enable
    +	    global $user;
    +		$error=0;
    +
    +		$this->db->begin();
    +
    +		$this->setClosed();
    +
    +		$sql = 'UPDATE '.MAIN_DB_PREFIX.'reception SET  billed=1';
    +		$sql .= ' WHERE rowid = '.$this->id.' AND fk_statut > 0';
    +
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$this->statut=2;
    +			$this->billed=1;
    +
    +			// Call trigger
    +			$result=$this->call_trigger('RECEPTION_BILLED',$user);
    +			if ($result < 0) {
    +				$error++;
    +			}
    +		} else {
    +			$error++;
    +			$this->errors[]=$this->db->lasterror;
    +		}
    +
    +		if (empty($error)) {
    +			$this->db->commit();
    +			return 1;
    +		}
    +		else
    +		{
    +			$this->db->rollback();
    +			return -1;
    +		}
    +	}
    +
    +	/**
    +	 *	Classify the reception as validated/opened
    +	 *
    +	 *	@return     int     <0 if ko, >0 if ok
    +	 */
    +	function reOpen()
    +	{
    +		global $conf,$langs,$user;
    +
    +		$error=0;
    +
    +		$this->db->begin();
    +
    +		$sql = 'UPDATE '.MAIN_DB_PREFIX.'reception SET fk_statut=1, billed=0';
    +		$sql .= ' WHERE rowid = '.$this->id.' AND fk_statut > 0';
    +
    +		$resql=$this->db->query($sql);
    +		if ($resql)
    +		{
    +			$this->statut=1;
    +			$this->billed=0;
    +
    +			// If stock increment is done on closing
    +			if (! $error && ! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_RECEPTION_CLOSE))
    +			{
    +				require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php';
    +				$numref = $this->ref;
    +				$langs->load("agenda");
    +
    +				// Loop on each product line to add a stock movement
    +				// TODO possibilite de receptionner a partir d'une propale ou autre origine
    +				$sql = "SELECT ed.fk_product, cd.subprice,";
    +				$sql.= " ed.rowid, ed.qty, ed.fk_entrepot,";
    +				$sql.= " ed.eatby, ed.sellby, ed.batch";
    +				$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd,";
    +				$sql.= " ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as ed";
    +				$sql.= " WHERE ed.fk_reception = ".$this->id;
    +				$sql.= " AND cd.rowid = ed.fk_commandefourndet";
    +
    +				dol_syslog(get_class($this)."::valid select details", LOG_DEBUG);
    +				$resql=$this->db->query($sql);
    +				if ($resql)
    +				{
    +					$cpt = $this->db->num_rows($resql);
    +					for ($i = 0; $i < $cpt; $i++)
    +					{
    +						$obj = $this->db->fetch_object($resql);
    +
    +						$qty = $obj->qty;
    +
    +						if ($qty <= 0) continue;
    +
    +						dol_syslog(get_class($this)."::reopen reception movement index ".$i." ed.rowid=".$obj->rowid);
    +
    +						//var_dump($this->lines[$i]);
    +						$mouvS = new MouvementStock($this->db);
    +						$mouvS->origin = &$this;
    +
    +						if (empty($obj->batch))
    +						{
    +							// line without batch detail
    +
    +							// We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record
    +							$result=$mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, -$qty, $obj->subprice, $langs->trans("ReceptionUnClassifyCloseddInDolibarr",$numref));
    +							if ($result < 0) {
    +							    $this->error = $mouvS->error;
    +							    $this->errors = $mouvS->errors;
    +								$error++; break;
    +							}
    +						}
    +						else
    +						{
    +							// line with batch detail
    +
    +							// We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record
    +							$result=$mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, -$qty, $obj->subprice, $langs->trans("ReceptionUnClassifyCloseddInDolibarr",$numref),  $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch, $obj->fk_origin_stock);
    +							if ($result < 0) {
    +							    $this->error = $mouvS->error;
    +							    $this->errors = $mouvS->errors;
    +							    $error++; break;
    +							}
    +						}
    +					}
    +				}
    +				else
    +				{
    +					$this->error=$this->db->lasterror();
    +					$error++;
    +				}
    +			}
    +
    +			if (! $error)
    +			{
    +    			// Call trigger
    +    			$result=$this->call_trigger('RECEPTION_REOPEN',$user);
    +    			if ($result < 0) {
    +    				$error++;
    +    			}
    +   			}
    +
    +			if($this->origin == 'order_supplier'){
    +				$commande = new CommandeFournisseur($this->db);
    +				$commande->fetch($this->origin_id);
    +				$commande->setStatus($user,4);
    +			}
    +		} else {
    +			$error++;
    +			$this->errors[]=$this->db->lasterror();
    +		}
    +
    +		if (! $error)
    +		{
    +			$this->db->commit();
    +			return 1;
    +		}
    +		else
    +		{
    +			$this->db->rollback();
    +			return -1;
    +		}
    +	}
    +
    +
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
    +	 /**
    +     *	Set draft status
    +     *
    +     *	@param	User	$user			Object user that modify
    +     *	@return	int						<0 if KO, >0 if OK
    +     */
    +    function set_draft($user)
    +    {
    +		// phpcs:enable
    +        global $conf,$langs;
    +
    +        $error=0;
    +
    +        // Protection
    +        if ($this->statut <= self::STATUS_DRAFT)
    +        {
    +            return 0;
    +        }
    +
    +        if (! ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->reception->creer))
    +       	|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->reception->reception_advance->validate))))
    +        {
    +            $this->error='Permission denied';
    +            return -1;
    +        }
    +
    +        $this->db->begin();
    +
    +        $sql = "UPDATE ".MAIN_DB_PREFIX."reception";
    +        $sql.= " SET fk_statut = ".self::STATUS_DRAFT;
    +        $sql.= " WHERE rowid = ".$this->id;
    +
    +        dol_syslog(get_class($this)."::set_draft", LOG_DEBUG);
    +        if ($this->db->query($sql))
    +        {
    +            // If stock increment is done on closing
    +			if (! $error && ! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_RECEPTION))
    +			{
    +				require_once DOL_DOCUMENT_ROOT.'/product/stock/class/mouvementstock.class.php';
    +
    +				$langs->load("agenda");
    +
    +				// Loop on each product line to add a stock movement
    +				// TODO possibilite de receptionner a partir d'une propale ou autre origine
    +				$sql = "SELECT cd.fk_product, cd.subprice,";
    +				$sql.= " ed.rowid, ed.qty, ed.fk_entrepot,";
    +				$sql.= " ed.eatby, ed.sellby, ed.batch";
    +				$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd,";
    +				$sql.= " ".MAIN_DB_PREFIX."commande_fournisseur_dispatch as ed";
    +				$sql.= " WHERE ed.fk_reception = ".$this->id;
    +				$sql.= " AND cd.rowid = ed.fk_commandefourndet";
    +
    +				dol_syslog(get_class($this)."::valid select details", LOG_DEBUG);
    +				$resql=$this->db->query($sql);
    +				if ($resql)
    +				{
    +					$cpt = $this->db->num_rows($resql);
    +					for ($i = 0; $i < $cpt; $i++)
    +					{
    +						$obj = $this->db->fetch_object($resql);
    +
    +						$qty = $obj->qty;
    +
    +
    +						if ($qty <= 0) continue;
    +						dol_syslog(get_class($this)."::reopen reception movement index ".$i." ed.rowid=".$obj->rowid." edb.rowid=".$obj->edbrowid);
    +
    +						//var_dump($this->lines[$i]);
    +						$mouvS = new MouvementStock($this->db);
    +						$mouvS->origin = &$this;
    +
    +						if (empty($obj->batch))
    +						{
    +							// line without batch detail
    +
    +							// We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record
    +							$result=$mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, -$qty, $obj->subprice, $langs->trans("ReceptionBackToDraftInDolibarr",$this->ref));
    +							if ($result < 0) {
    +							    $this->error = $mouvS->error;
    +							    $this->errors = $mouvS->errors;
    +								$error++;
    +								break;
    +							}
    +						}
    +						else
    +						{
    +							// line with batch detail
    +
    +							// We decrement stock of product (and sub-products) -> update table llx_product_stock (key of this table is fk_product+fk_entrepot) and add a movement record
    +							$result=$mouvS->reception($user, $obj->fk_product, $obj->fk_entrepot, -$qty, $obj->subprice, $langs->trans("ReceptionBackToDraftInDolibarr",$this->ref),  $this->db->jdate($obj->eatby), $this->db->jdate($obj->sellby), $obj->batch);
    +							if ($result < 0) {
    +							    $this->error = $mouvS->error;
    +							    $this->errors = $mouvS->errors;
    +							    $error++; break;
    +							}
    +						}
    +					}
    +				}
    +				else
    +				{
    +					$this->error=$this->db->lasterror();
    +					$error++;
    +				}
    +			}
    +
    +            if (!$error) {
    +            	// Call trigger
    +            	$result=$this->call_trigger('RECEPTION_UNVALIDATE',$user);
    +            	if ($result < 0) $error++;
    +            }
    +			if ($this->origin == 'order_supplier')
    +			{
    +				if (!empty($this->origin) && $this->origin_id > 0)
    +				{
    +					$this->fetch_origin();
    +					$origin = $this->origin;
    +					if ($this->$origin->statut == 4)  // If order source of reception is "partially received"
    +					{
    +						// Check if there is no more reception validated.
    +						$this->$origin->fetchObjectLinked();
    +						$setStatut = 1;
    +						if (!empty($this->$origin->linkedObjects['reception']))
    +						{
    +							foreach ($this->$origin->linkedObjects['reception'] as $rcption)
    +							{
    +								if ($rcption->statut > 0)
    +								{
    +									$setStatut = 0;
    +									break;
    +								}
    +							}
    +							//var_dump($this->$origin->receptions);exit;
    +							if ($setStatut)
    +							{
    +								$this->$origin->setStatut(3); // ordered
    +							}
    +						}
    +					}
    +				}
    +			}
    +
    +			if (!$error) {
    +           		$this->statut=self::STATUS_DRAFT;
    +            	$this->db->commit();
    +            	return 1;
    +            }else {
    +            	$this->db->rollback();
    +            	return -1;
    +            }
    +        }
    +        else
    +        {
    +            $this->error=$this->db->error();
    +            $this->db->rollback();
    +            return -1;
    +        }
    +    }
    +
    +	/**
    +	 *  Create a document onto disk according to template module.
    +	 *
    +	 *  @param	    string		$modele			Force the model to using ('' to not force)
    +	 *  @param		Translate	$outputlangs	object lang to use for translations
    +	 *  @param      int			$hidedetails    Hide details of lines
    +	 *  @param      int			$hidedesc       Hide description
    +	 *  @param      int			$hideref        Hide ref
    +	 *  @return     int         				0 if KO, 1 if OK
    +	 */
    +	public function generateDocument($modele, $outputlangs,$hidedetails=0, $hidedesc=0, $hideref=0)
    +	{
    +		global $conf,$langs;
    +
    +		$langs->load("receptions");
    +
    +		if (! dol_strlen($modele))
    +		{
    +			$modele = 'squille';
    +
    +			if ($this->modelpdf) {
    +				$modele = $this->modelpdf;
    +			} elseif (! empty($conf->global->RECEPTION_ADDON_PDF)) {
    +				$modele = $conf->global->RECEPTION_ADDON_PDF;
    +			}
    +		}
    +
    +		$modelpath = "core/modules/reception/doc/";
    +
    +		$this->fetch_origin();
    +
    +		return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref);
    +	}
    +
    +	/**
    +	 * Function used to replace a thirdparty id with another one.
    +	 *
    +	 * @param DoliDB $db Database handler
    +	 * @param int $origin_id Old thirdparty id
    +	 * @param int $dest_id New thirdparty id
    +	 * @return bool
    +	 */
    +	public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id)
    +	{
    +		$tables = array('reception');
    +
    +		return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
    +	}
    +}
    \ No newline at end of file
    diff --git a/htdocs/reception/class/receptionstats.class.php b/htdocs/reception/class/receptionstats.class.php
    new file mode 100644
    index 00000000000..3f60a9846fb
    --- /dev/null
    +++ b/htdocs/reception/class/receptionstats.class.php
    @@ -0,0 +1,142 @@
    +<?php
    +/* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (c) 2005-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2011      Juanjo Menent		<jmenent@2byte.es>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *  \file       htdocs/reception/class/receptionstats.class.php
    + *  \ingroup    reception
    + *  \brief      File of class fo tmanage reception statistics
    + */
    +
    +include_once DOL_DOCUMENT_ROOT . '/core/class/stats.class.php';
    +include_once DOL_DOCUMENT_ROOT . '/reception/class/reception.class.php';
    +include_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
    +
    +
    +/**
    + *		Class to manage reception statistics
    + */
    +class ReceptionStats extends Stats
    +{
    +	public $table_element;
    +
    +	var $socid;
    +    var $userid;
    +
    +    var $from;
    +	var $field;
    +    var $where;
    +
    +
    +    /**
    +     * Constructor
    +     *
    +     * @param	DoliDB	$db      	Database handler
    +	 * @param 	int		$socid	   	Id third party for filter
    +	 * @param 	string	$mode	   	Option (not used)
    +	 * @param   int		$userid    	Id user for filter (creation user)
    +     */
    +    function __construct($db, $socid, $mode, $userid=0)
    +    {
    +		global $user, $conf;
    +
    +		$this->db = $db;
    +
    +		$this->socid = ($socid > 0 ? $socid : 0);
    +        $this->userid = $userid;
    +		$this->cachefilesuffix = $mode;
    +
    +        $object=new Reception($this->db);
    +		$this->from = MAIN_DB_PREFIX.$object->table_element." as c";
    +		//$this->from.= ", ".MAIN_DB_PREFIX."societe as s";
    +		$this->field='weight';	// Warning, unit of weight is NOT USED AND MUST BE
    +		$this->where.= " c.fk_statut > 0";    // Not draft and not cancelled
    +
    +		//$this->where.= " AND c.fk_soc = s.rowid AND c.entity = ".$conf->entity;
    +		$this->where.= " AND c.entity = ".$conf->entity;
    +		if (!$user->rights->societe->client->voir && !$this->socid) $this->where .= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
    +		if ($this->socid)
    +		{
    +			$this->where.=" AND c.fk_soc = ".$this->socid;
    +		}
    +        if ($this->userid > 0) $this->where.=' AND c.fk_user_author = '.$this->userid;
    +    }
    +
    +    /**
    +     * Return reception number by month for a year
    +     *
    +	 * @param	int		$year		Year to scan
    +	 * @return	array				Array with number by month
    +     */
    +    function getNbByMonth($year)
    +    {
    +        global $user;
    +
    +        $sql = "SELECT date_format(c.date_valid,'%m') as dm, COUNT(*) as nb";
    +		$sql.= " FROM ".$this->from;
    +		if (!$user->rights->societe->client->voir && !$this->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +		$sql.= " WHERE c.date_valid BETWEEN '".$this->db->idate(dol_get_first_day($year))."' AND '".$this->db->idate(dol_get_last_day($year))."'";
    +		$sql.= " AND ".$this->where;
    +		$sql.= " GROUP BY dm";
    +        $sql.= $this->db->order('dm','DESC');
    +
    +		$res=$this->_getNbByMonth($year, $sql);
    +		return $res;
    +    }
    +
    +	/**
    +	 * Return receptions number per year
    +	 *
    +	 * @return	array	Array with number by year
    +	 *
    +	 */
    +	function getNbByYear()
    +	{
    +		global $user;
    +
    +		$sql = "SELECT date_format(c.date_valid,'%Y') as dm, COUNT(*) as nb, SUM(c.".$this->field.")";
    +		$sql.= " FROM ".$this->from;
    +		if (!$user->rights->societe->client->voir && !$this->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +		$sql.= " WHERE ".$this->where;
    +		$sql.= " GROUP BY dm";
    +        $sql.= $this->db->order('dm','DESC');
    +
    +		return $this->_getNbByYear($sql);
    +	}
    +
    +	/**
    +	 *	Return nb, total and average
    +	 *
    +	 *	@return	array	Array of values
    +	 */
    +	function getAllByYear()
    +	{
    +		global $user;
    +
    +		$sql = "SELECT date_format(c.date_valid,'%Y') as year, COUNT(*) as nb, SUM(c.".$this->field.") as total, AVG(".$this->field.") as avg";
    +		$sql.= " FROM ".$this->from;
    +		if (!$user->rights->societe->client->voir && !$this->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +		$sql.= " WHERE ".$this->where;
    +		$sql.= " GROUP BY year";
    +		$sql.= $this->db->order('year','DESC');
    +
    +		return $this->_getAllByYear($sql);
    +	}
    +}
    +
    diff --git a/htdocs/reception/contact.php b/htdocs/reception/contact.php
    new file mode 100644
    index 00000000000..7fc1ed889f5
    --- /dev/null
    +++ b/htdocs/reception/contact.php
    @@ -0,0 +1,274 @@
    +<?php
    +/* Copyright (C) 2005      Patrick Rouillon     <patrick@rouillon.net>
    + * Copyright (C) 2005-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *     \file       htdocs/reception/contact.php
    + *     \ingroup    reception
    + *     \brief      Onglet de gestion des contacts de reception
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
    +if (! empty($conf->projet->enabled)) {
    +    require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    +    require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
    +}
    +
    +$langs->load("orders");
    +$langs->load("receptions");
    +$langs->load("companies");
    +
    +$id=GETPOST('id','int');
    +$ref=GETPOST('ref','alpha');
    +$action=GETPOST('action','alpha');
    +
    +// Security check
    +if ($user->societe_id) $socid=$user->societe_id;
    +$result = restrictedArea($user, 'reception', $id,'');
    +
    +$object = new Reception($db);
    +if ($id > 0 || ! empty($ref))
    +{
    +    $object->fetch($id, $ref);
    +    $object->fetch_thirdparty();
    +
    +    if (!empty($object->origin))
    +    {
    +        $origin = $object->origin;
    +
    +        $object->fetch_origin();
    +		$typeobject = $object->origin;
    +    }
    +
    +    // Linked documents
    +    if ($origin == 'order_supplier' && $object->$typeobject->id && ! empty($conf->fournisseur->enabled))
    +    {
    +        $objectsrc=new CommandeFournisseur($db);
    +        $objectsrc->fetch($object->$typeobject->id);
    +    }
    +    if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled))
    +    {
    +        $objectsrc=new Propal($db);
    +        $objectsrc->fetch($object->$typeobject->id);
    +    }
    +}
    +
    +
    +/*
    + * Actions
    + */
    +
    +if ($action == 'addcontact' && $user->rights->reception->creer)
    +{
    +    if ($result > 0 && $id > 0)
    +    {
    +  		$result = $objectsrc->add_contact(GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid'), $_POST["type"], $_POST["source"]);
    +    }
    +
    +	if ($result >= 0)
    +	{
    +		header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
    +		exit;
    +	}
    +	else
    +	{
    +		if ($objectsrc->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
    +		{
    +			$langs->load("errors");
    +			$mesg = $langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType");
    +		} else {
    +			$mesg = $objectsrc->error;
    +			$mesgs = $objectsrc->errors;
    +		}
    +		setEventMessages($mesg, $mesgs, 'errors');
    +	}
    +}
    +
    +// bascule du statut d'un contact
    +else if ($action == 'swapstatut' && $user->rights->reception->creer)
    +{
    +    $result=$objectsrc->swapContactStatus(GETPOST('ligne'));
    +}
    +
    +// Efface un contact
    +else if ($action == 'deletecontact' && $user->rights->reception->creer)
    +{
    +	$result = $objectsrc->delete_contact(GETPOST("lineid"));
    +
    +	if ($result >= 0)
    +	{
    +		header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
    +		exit;
    +	}
    +	else {
    +		dol_print_error($db);
    +	}
    +}
    +/*
    +else if ($action == 'setaddress' && $user->rights->reception->creer)
    +{
    +	$object->fetch($id);
    +	$result=$object->setDeliveryAddress($_POST['fk_address']);
    +	if ($result < 0) dol_print_error($db,$object->error);
    +}*/
    +
    +
    +/*
    + * View
    + */
    +
    +llxHeader('',$langs->trans('Reception'),'EN:Customers_Orders|FR:receptions_Clients|ES:Pedidos de clientes');
    +
    +$form = new Form($db);
    +$formcompany = new FormCompany($db);
    +$formother = new FormOther($db);
    +$contactstatic=new Contact($db);
    +$userstatic=new User($db);
    +
    +
    +/* *************************************************************************** */
    +/*                                                                             */
    +/* Mode vue et edition                                                         */
    +/*                                                                             */
    +/* *************************************************************************** */
    +
    +if ($id > 0 || ! empty($ref))
    +{
    +	$langs->trans("OrderCard");
    +
    +	$head = reception_prepare_head($object);
    +	dol_fiche_head($head, 'contact', $langs->trans("Reception"), -1, 'sending');
    +
    +
    +	// Reception card
    +	$linkback = '<a href="'.DOL_URL_ROOT.'/reception/list.php">'.$langs->trans("BackToList").'</a>';
    +
    +	$morehtmlref='<div class="refidno">';
    +	// Ref customer reception
    +	$morehtmlref.=$form->editfieldkey("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', 0, 1);
    +	$morehtmlref.=$form->editfieldval("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', null, null, '', 1);
    +	// Thirdparty
    +    $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
    +    // Project
    +    if (! empty($conf->projet->enabled)) {
    +        $langs->load("projects");
    +        $morehtmlref .= '<br>' . $langs->trans('Project') . ' ';
    +        if (0) {    // Do not change on reception
    +            if ($action != 'classify') {
    +                $morehtmlref .= '<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    +            }
    +            if ($action == 'classify') {
    +                // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
    +                $morehtmlref .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '">';
    +                $morehtmlref .= '<input type="hidden" name="action" value="classin">';
    +                $morehtmlref .= '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    +                $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
    +                $morehtmlref .= '<input type="submit" class="button" value="' . $langs->trans("Modify") . '">';
    +                $morehtmlref .= '</form>';
    +            } else {
    +                $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
    +            }
    +        } else {
    +            // We don't have project on reception, so we will use the project or source object instead
    +            // TODO Add project on reception
    +            $morehtmlref .= ' : ';
    +            if (! empty($objectsrc->fk_project)) {
    +                $proj = new Project($db);
    +                $proj->fetch($objectsrc->fk_project);
    +                $morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $objectsrc->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
    +                $morehtmlref .= $proj->ref;
    +                $morehtmlref .= '</a>';
    +            } else {
    +                $morehtmlref .= '';
    +            }
    +        }
    +    }
    +	$morehtmlref.='</div>';
    +
    +	$object->picto = 'sending';
    +	dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
    +
    +
    +	print '<div class="fichecenter">';
    +    //print '<div class="fichehalfleft">';
    +	print '<div class="underbanner clearboth"></div>';
    +
    +    print '<table class="border centpercent">';
    +    // Linked documents
    +	if ($origin == 'order_supplier' && $object->$typeobject->id && ! empty($conf->fournisseur->enabled))
    +	{
    +	    print '<tr><td class="titlefield">';
    +	    $objectsrc=new CommandeFournisseur($db);
    +	    $objectsrc->fetch($object->$typeobject->id);
    +	    print $langs->trans("RefOrder").'</td>';
    +	    print '<td colspan="3">';
    +	    print $objectsrc->getNomUrl(1,'commande');
    +	    print "</td>\n";
    +	    print '</tr>';
    +	}
    +	if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled))
    +	{
    +	    print '<tr><td class="titlefield">';
    +	    $objectsrc=new Propal($db);
    +	    $objectsrc->fetch($object->$typeobject->id);
    +	    print $langs->trans("RefProposal").'</td>';
    +	    print '<td colspan="3">';
    +	    print $objectsrc->getNomUrl(1,'reception');
    +	    print "</td>\n";
    +	    print '</tr>';
    +	}
    +
    +	print "</table>";
    +
    +
    +	//print '</div>';
    +	//print '<div class="fichehalfright">';
    +	//print '<div class="ficheaddleft">';
    +	//print '<div class="underbanner clearboth"></div>';
    +
    +
    +	//print '</div>';
    +	//print '</div>';
    +	print '</div>';
    +
    +	print '<div class="clearboth"></div>';
    +
    +
    +	dol_fiche_end();
    +
    +	// Lignes de contacts
    +	echo '<br>';
    +
    +	// Contacts lines (modules that overwrite templates must declare this into descriptor)
    +	$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
    +	foreach($dirtpls as $reldir)
    +	{
    +		$res=@include dol_buildpath($reldir.'/contacts.tpl.php');
    +		if ($res) break;
    +	}
    +}
    +
    +llxFooter();
    +
    +$db->close();
    diff --git a/htdocs/reception/index.php b/htdocs/reception/index.php
    new file mode 100644
    index 00000000000..f74a23525e9
    --- /dev/null
    +++ b/htdocs/reception/index.php
    @@ -0,0 +1,297 @@
    +<?php
    +/* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2018	   Quentin Vial-Gouteyron    <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *       \file       htdocs/reception/index.php
    + *       \ingroup    reception
    + *       \brief      Home page of reception area.
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php';
    +
    +$langs->load("orders");
    +$langs->load("receptions");
    +
    +/*
    + *	View
    + */
    +
    +$orderstatic=new CommandeFournisseur($db);
    +$companystatic=new Societe($db);
    +$reception=new Reception($db);
    +
    +$helpurl='EN:Module_Receptions|FR:Module_Receptions|ES:M&oacute;dulo_Receptiones';
    +llxHeader('',$langs->trans("Reception"),$helpurl);
    +
    +print load_fiche_titre($langs->trans("ReceptionsArea"));
    +
    +
    +print '<div class="fichecenter"><div class="fichethirdleft">';
    +
    +
    +if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS))     // This is useless due to the global search combo
    +{
    +    print '<form method="post" action="list.php">';
    +    print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +    print '<table class="noborder nohover" width="100%">';
    +    print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Search").'</td></tr>';
    +    print '<tr class="oddeven"><td>';
    +    print $langs->trans("Reception").':</td><td><input type="text" class="flat" name="sall" size="18"></td><td><input type="submit" value="'.$langs->trans("Search").'" class="button"></td></tr>';
    +    print "</table></form><br>\n";
    +}
    +
    +/*
    + * Receptions to validate
    + */
    +$clause = " WHERE ";
    +
    +$sql = "SELECT e.rowid, e.ref, e.ref_supplier,";
    +$sql.= " s.nom as name, s.rowid as socid,";
    +$sql.= " c.ref as commande_fournisseur_ref, c.rowid as commande_fournisseur_id";
    +$sql.= " FROM ".MAIN_DB_PREFIX."reception as e";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON e.rowid = el.fk_target AND el.targettype = 'reception'";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."commande_fournisseur as c ON el.fk_source = c.rowid";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = e.fk_soc";
    +if (!$user->rights->societe->client->voir && !$socid)
    +{
    +	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON e.fk_soc = sc.fk_soc";
    +	$sql.= $clause." sc.fk_user = " .$user->id;
    +	$clause = " AND ";
    +}
    +$sql.= $clause." e.fk_statut = 0";
    +$sql.= " AND e.entity IN (".getEntity('reception').")";
    +if ($socid) $sql.= " AND c.fk_soc = ".$socid;
    +
    +$resql=$db->query($sql);
    +if ($resql)
    +{
    +	$num = $db->num_rows($resql);
    +	if ($num)
    +	{
    +		print '<table class="noborder" width="100%">';
    +		print '<tr class="liste_titre">';
    +		print '<th colspan="3">'.$langs->trans("ReceptionsToValidate").'</th></tr>';
    +		$i = 0;
    +		while ($i < $num)
    +		{
    +			$obj = $db->fetch_object($resql);
    +
    +			$reception->id=$obj->rowid;
    +			$reception->ref=$obj->ref;
    +			$reception->ref_supplier=$obj->ref_supplier;
    +
    +			print '<tr class="oddeven"><td class="nowrap">';
    +			print $reception->getNomUrl(1);
    +			print "</td>";
    +			print '<td>';
    +			print '<a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$obj->socid.'">'.$obj->name.'</a>';
    +			print '</td>';
    +			print '<td>';
    +			if ($obj->commande_fournisseur_id) print '<a href="'.DOL_URL_ROOT.'/commande_fournisseur/card.php?id='.$obj->commande_fournisseur_id.'">'.$obj->commande_fournisseur_ref.'</a>';
    +			print '</td></tr>';
    +			$i++;
    +		}
    +		print "</table><br>";
    +	}
    +}
    +
    +
    +/*
    + * CommandeFournisseurs a traiter
    + */
    +$sql = "SELECT c.rowid, c.ref, c.ref_supplier as ref_supplier, c.fk_statut, s.nom as name, s.rowid as socid";
    +$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as c,";
    +$sql.= " ".MAIN_DB_PREFIX."societe as s";
    +if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +$sql.= " WHERE c.fk_soc = s.rowid";
    +$sql.= " AND c.entity = ".$conf->entity;
    +$sql.= " AND c.fk_statut = 3";//Commandé
    +if ($socid) $sql.= " AND c.fk_soc = ".$socid;
    +if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
    +$sql.= " ORDER BY c.rowid ASC";
    +$resql=$db->query($sql);
    +if ($resql)
    +{
    +	$num = $db->num_rows($resql);
    +	if ($num)
    +	{
    +		$langs->load("orders");
    +
    +		$i = 0;
    +		print '<table class="noborder" width="100%">';
    +		print '<tr class="liste_titre">';
    +		print '<th colspan="3">'.$langs->trans("SuppliersOrdersToProcess").'</th></tr>';
    +		while ($i < $num)
    +		{
    +			$obj = $db->fetch_object($resql);
    +
    +			$orderstatic->id=$obj->rowid;
    +			$orderstatic->ref=$obj->ref;
    +			$orderstatic->ref_supplier=$obj->ref_supplier;
    +			$orderstatic->statut=$obj->fk_statut;
    +			$orderstatic->facturee=0;
    +
    +			$companystatic->name=$obj->name;
    +			$companystatic->id=$obj->socid;
    +
    +			print '<tr class="oddeven">';
    +			print '<td class="nowrap">';
    +			print $orderstatic->getNomUrl(1);
    +			print '</td>';
    +			print '<td>';
    +			print $companystatic->getNomUrl(1,'customer',32);
    +			print '</td>';
    +			print '<td align="right">';
    +			print $orderstatic->getLibStatut(3);
    +			print '</td>';
    +			print '</tr>';
    +			$i++;
    +		}
    +		print "</table><br>";
    +	}
    +}
    +
    +
    +//print '</td><td valign="top" width="70%">';
    +print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
    +
    +
    +/*
    + * CommandeFournisseurs en traitement
    + */
    +$sql = "SELECT c.rowid, c.ref, c.ref_supplier as ref_supplier, c.fk_statut as status, c.billed as billed, s.nom as name, s.rowid as socid";
    +$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as c,";
    +$sql.= " ".MAIN_DB_PREFIX."societe as s";
    +if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +$sql.= " WHERE c.fk_soc = s.rowid";
    +$sql.= " AND c.entity = ".$conf->entity;
    +$sql.= " AND c.fk_statut IN (4)";
    +if ($socid) $sql.= " AND c.fk_soc = ".$socid;
    +if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
    +
    +$resql = $db->query($sql);
    +if ( $resql )
    +{
    +	$langs->load("orders");
    +
    +	$num = $db->num_rows($resql);
    +	if ($num)
    +	{
    +		$i = 0;
    +		print '<table class="noborder" width="100%">';
    +		print '<tr class="liste_titre">';
    +		print '<th colspan="3">'.$langs->trans("SuppliersOrdersInProcess").'</th></tr>';
    +		while ($i < $num)
    +		{
    +			$obj = $db->fetch_object($resql);
    +
    +		    $orderstatic->id=$obj->rowid;
    +			$orderstatic->ref=$obj->ref;
    +			$orderstatic->ref_supplier=$obj->ref_supplier;
    +			$orderstatic->statut=$obj->status;
    +            $orderstatic->facturee=$obj->billed;
    +
    +            $companystatic->name=$obj->name;
    +			$companystatic->id=$obj->socid;
    +
    +			print '<tr class="oddeven"><td>';
    +			print $orderstatic->getNomUrl(1);
    +			print '</td>';
    +			print '<td>';
    +			print $companystatic->getNomUrl(1,'customer');
    +			print '</td>';
    +            print '<td align="right">';
    +            print $orderstatic->getLibStatut(3);
    +            print '</td>';
    +            print '</tr>';
    +			$i++;
    +		}
    +		print "</table><br>";
    +	}
    +}
    +else dol_print_error($db);
    +
    +
    +/*
    + * Last receptions
    + */
    +$sql = "SELECT e.rowid, e.ref, e.ref_supplier,";
    +$sql.= " s.nom as name, s.rowid as socid,";
    +$sql.= " c.ref as commande_fournisseur_ref, c.rowid as commande_fournisseur_id";
    +$sql.= " FROM ".MAIN_DB_PREFIX."reception as e";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON e.rowid = el.fk_target AND el.targettype = 'reception' AND el.sourcetype IN ('order_supplier')";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."commande_fournisseur as c ON el.fk_source = c.rowid AND el.sourcetype IN ('order_supplier') AND el.targettype = 'reception'";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = e.fk_soc";
    +if (! $user->rights->societe->client->voir && ! $socid) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON e.fk_soc = sc.fk_soc";
    +$sql.= " WHERE e.entity IN (".getEntity('reception').")";
    +if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND sc.fk_user = " .$user->id;
    +$sql.= " AND e.fk_statut = 1";
    +if ($socid) $sql.= " AND c.fk_soc = ".$socid;
    +$sql.= " ORDER BY e.date_delivery DESC";
    +
    +$sql.= $db->plimit(5, 0);
    +
    +$resql = $db->query($sql);
    +if ($resql)
    +{
    +	$num = $db->num_rows($resql);
    +	if ($num)
    +	{
    +		$i = 0;
    +		print '<table class="noborder" width="100%">';
    +		print '<tr class="liste_titre">';
    +		print '<th colspan="3">'.$langs->trans("LastReceptions", $num).'</th></tr>';
    +		while ($i < $num)
    +		{
    +			$obj = $db->fetch_object($resql);
    +
    +			$reception->id=$obj->rowid;
    +			$reception->ref=$obj->ref;
    +			$reception->ref_supplier=$obj->ref_supplier;
    +
    +			print '<tr class="oddeven"><td>';
    +			print $reception->getNomUrl(1);
    +			print '</td>';
    +			print '<td><a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$obj->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.$obj->name.'</a></td>';
    +			print '<td>';
    +			if ($obj->commande_fournisseur_id > 0)
    +			{
    +				$orderstatic->id=$obj->commande_fournisseur_id;
    +				$orderstatic->ref=$obj->commande_fournisseur_ref;
    +				print $orderstatic->getNomUrl(1);
    +			}
    +			else print '&nbsp;';
    +			print '</td></tr>';
    +			$i++;
    +		}
    +		print "</table><br>";
    +	}
    +	$db->free($resql);
    +}
    +else dol_print_error($db);
    +
    +
    +print '</div></div></div>';
    +
    +
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/reception/list.php b/htdocs/reception/list.php
    new file mode 100644
    index 00000000000..9ef8e0da77c
    --- /dev/null
    +++ b/htdocs/reception/list.php
    @@ -0,0 +1,994 @@
    +<?php
    +/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2010 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2016	   Ferran Marcet        <fmarcet@2byte.es>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *      \file       htdocs/reception/list.php
    + *      \ingroup    reception
    + *      \brief      Page to list all receptions
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +
    +$langs->load("receptions");
    +$langs->load("deliveries");
    +$langs->load('companies');
    +$langs->load('bills');
    +
    +$socid=GETPOST('socid','int');
    +$massaction=GETPOST('massaction','alpha');
    +$toselect = GETPOST('toselect', 'array');
    +
    +// Security check
    +$receptionid = GETPOST('id','int');
    +if ($user->societe_id) $socid=$user->societe_id;
    +$result = restrictedArea($user, 'reception',$receptionid,'');
    +
    +$diroutputmassaction=$conf->reception->dir_output . '/temp/massgeneration/'.$user->id;
    +
    +$search_ref_rcp = GETPOST("search_ref_rcp");
    +$search_ref_liv = GETPOST('search_ref_liv');
    +$search_ref_supplier = GETPOST('search_ref_supplier');
    +$search_company = GETPOST("search_company");
    +$search_town=GETPOST('search_town','alpha');
    +$search_zip=GETPOST('search_zip','alpha');
    +$search_state=trim(GETPOST("search_state"));
    +$search_country=GETPOST("search_country",'int');
    +$search_type_thirdparty=GETPOST("search_type_thirdparty",'int');
    +$search_billed=GETPOST("search_billed",'int');
    +$sall = GETPOST('sall', 'alphanohtml');
    +$optioncss = GETPOST('optioncss','alpha');
    +
    +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
    +$sortfield = GETPOST('sortfield','alpha');
    +$sortorder = GETPOST('sortorder','alpha');
    +$page = GETPOST('page','int');
    +if (! $sortfield) $sortfield="e.ref";
    +if (! $sortorder) $sortorder="DESC";
    +if (empty($page) || $page == -1) { $page = 0; }     // If $page is not defined, or '' or -1
    +$offset = $limit * $page;
    +$pageprev = $page - 1;
    +$pagenext = $page + 1;
    +
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$contextpage='receptionlist';
    +
    +$viewstatut=GETPOST('viewstatut');
    +
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$hookmanager->initHooks(array('receptionlist'));
    +$extrafields = new ExtraFields($db);
    +
    +// fetch optionals attributes and labels
    +$extralabels = $extrafields->fetch_name_optionals_label('reception');
    +$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +
    +// List of fields to search into when doing a "search in all"
    +$fieldstosearchall = array(
    +    'e.ref'=>"Ref",
    +    's.nom'=>"ThirdParty",
    +    'e.note_public'=>'NotePublic',
    +);
    +if (empty($user->socid)) $fieldstosearchall["e.note_private"]="NotePrivate";
    +
    +$checkedtypetiers=0;
    +$arrayfields=array(
    +    'e.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
    +    'e.ref_supplier'=>array('label'=>$langs->trans("RefSupplier"), 'checked'=>1),
    +    's.nom'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1),
    +    's.town'=>array('label'=>$langs->trans("Town"), 'checked'=>1),
    +    's.zip'=>array('label'=>$langs->trans("Zip"), 'checked'=>1),
    +    'state.nom'=>array('label'=>$langs->trans("StateShort"), 'checked'=>0),
    +    'country.code_iso'=>array('label'=>$langs->trans("Country"), 'checked'=>0),
    +    'typent.code'=>array('label'=>$langs->trans("ThirdPartyType"), 'checked'=>$checkedtypetiers),
    +    'e.date_delivery'=>array('label'=>$langs->trans("DateDeliveryPlanned"), 'checked'=>1),
    +    'e.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
    +    'e.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
    +    'e.fk_statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
    +    'e.billed'=>array('label'=>$langs->trans("Billed"), 'checked'=>1, 'position'=>1000, 'enabled'=>(!empty($conf->global->WORKFLOW_BILL_ON_RECEPTION)))
    +);
    +
    +// Extra fields
    +if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
    +{
    +    foreach($extrafields->attribute_label as $key => $val)
    +    {
    +        $arrayfields["ef.".$key]=array('label'=>$extrafields->attribute_label[$key], 'checked'=>$extrafields->attribute_list[$key], 'position'=>$extrafields->attribute_pos[$key], 'enabled'=>$extrafields->attribute_perms[$key]);
    +    }
    +}
    +
    +
    +/*
    + * Actions
    + */
    +
    +if (GETPOST('cancel')) { $action='list'; $massaction=''; }
    +if (! GETPOST('confirmmassaction') && $massaction != 'confirm_createbills') { $massaction=''; }
    +
    +$parameters=array('socid'=>$socid);
    +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
    +
    +// Purge search criteria
    +if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
    +{
    +	$search_ref_supplier='';
    +    $search_ref_rcp='';
    +    $search_ref_liv='';
    +    $search_company='';
    +    $search_town='';
    +	$search_zip="";
    +    $search_state="";
    +	$search_type='';
    +	$search_country='';
    +	$search_type_thirdparty='';
    +	$search_billed='';
    +    $viewstatut='';
    +    $search_array_options=array();
    +}
    +
    +if (empty($reshook))
    +{
    +	if ($massaction == 'confirm_createbills') {
    +
    +    	$receptions = GETPOST('toselect','array');
    +    	$createbills_onebythird = GETPOST('createbills_onebythird', 'int');
    +    	$validate_invoices = GETPOST('valdate_invoices', 'int');
    +
    +    	$TFact = array();
    +    	$TFactThird = array();
    +
    +    	$nb_bills_created = 0;
    +
    +    	$db->begin();
    +		$errors =array();
    +    	foreach($receptions as $id_reception)
    +    	{
    +    		$rcp = new Reception($db);
    +			 // On ne facture que les réceptions validées
    +    		if ($rcp->fetch($id_reception) <= 0 || $rcp->statut != 1){
    +				$errors[]=$langs->trans('StatusMustBeValidate',$rcp->ref);
    +				$error++;
    +				continue;
    +			}
    +
    +    		$object = new FactureFournisseur($db);
    +    		if (!empty($createbills_onebythird) && !empty($TFactThird[$rcp->socid])){
    +				$object = $TFactThird[$rcp->socid]; // If option "one bill per third" is set, we use already created reception.
    +				if(empty($object->rowid)&&$object->id != null)$object->rowid = $object->id;
    +				if(!empty($object->rowid))$object->fetchObjectLinked();
    +				$rcp->fetchObjectLinked();
    +
    +				if (count($rcp->linkedObjectsIds['order_supplier']) > 0)
    +				{
    +					foreach ($rcp->linkedObjectsIds['order_supplier'] as $key => $value)
    +					{
    +						if(empty($object->linkedObjectsIds['order_supplier']) || !in_array($value, $object->linkedObjectsIds['order_supplier']))//Dont try to link if already linked
    +							$object->add_object_linked('order_supplier', $value); // add supplier order linked object
    +					}
    +				}
    +			}
    +    		else {
    +    			$object->socid = $rcp->socid;
    +    			$object->type = FactureFournisseur::TYPE_STANDARD;
    +    			$object->cond_reglement_id	= $rcp->thirdparty->cond_reglement_supplier_id;
    +    			$object->mode_reglement_id	= $rcp->thirdparty->mode_reglement_supplier_id;
    +				$object->fk_account         = !empty($rcp->thirdparty->fk_account)?$rcp->thirdparty->fk_account:0;
    +				$object->remise_percent 	= !empty($rcp->thirdparty->remise_percent)?$rcp->thirdparty->remise_percent:0;
    +				$object->remise_absolue 	= !empty($rcp->thirdparty->remise_absolue)?$rcp->thirdparty->remise_absolue:0;
    +
    +    			$object->fk_project			= $rcp->fk_project;
    +    			$object->ref_supplier		= $rcp->ref_supplier;
    +
    +    			$datefacture = dol_mktime(12, 0, 0, GETPOST('remonth'),GETPOST('reday'), GETPOST('reyear'));
    +    			if (empty($datefacture))
    +    			{
    +    				$datefacture = dol_mktime(date("h"), date("M"), 0, date("m"), date("d"), date("Y"));
    +    			}
    +
    +    			$object->date = $datefacture;
    +    			$object->origin    = 'reception';
    +    			$object->origin_id = $id_reception;
    +
    +				$rcp->fetchObjectLinked();
    +				if (count($rcp->linkedObjectsIds['order_supplier']) > 0)
    +				{
    +					foreach ($rcp->linkedObjectsIds['order_supplier'] as $key => $value)
    +					{
    +						$object->linked_objects['order_supplier'] = $value;
    +					}
    +				}
    +
    +    			$res = $object->create($user);
    +				//var_dump($object->error);exit;
    +    			if($res > 0){
    +					$nb_bills_created++;
    +					$object->id = $res;
    +				}else {
    +					$errors[]=$rcp->ref.' : '.$langs->trans($object->error);
    +					$error++;
    +				}
    +    		}
    +
    +    		if ($object->id > 0)
    +    		{
    +				if(!empty($createbills_onebythird) && !empty($TFactThird[$rcp->socid])){ //cause function create already add object linked for facturefournisseur
    +					$res = $object->add_object_linked($object->origin,$id_reception);
    +
    +					if ($res==0)
    +					{
    +						$errors[]=$object->error;
    +						$error++;
    +					}
    +				}
    +
    +    			if (! $error)
    +    			{
    +	    			$lines = $rcp->lines;
    +	    			if (empty($lines) && method_exists($rcp, 'fetch_lines'))
    +	    			{
    +	    				$rcp->fetch_lines();
    +	    				$lines = $rcp->lines;
    +	    			}
    +
    +	    			$fk_parent_line=0;
    +	    			$num=count($lines);
    +
    +	    			for ($i=0;$i<$num;$i++)
    +	    			{
    +	    				$desc=($lines[$i]->desc?$lines[$i]->desc:$lines[$i]->libelle);
    +	    				if ($lines[$i]->subprice < 0)
    +	    				{
    +	    					// Negative line, we create a discount line
    +	    					$discount = new DiscountAbsolute($db);
    +	    					$discount->fk_soc=$object->socid;
    +	    					$discount->amount_ht=abs($lines[$i]->total_ht);
    +	    					$discount->amount_tva=abs($lines[$i]->total_tva);
    +	    					$discount->amount_ttc=abs($lines[$i]->total_ttc);
    +	    					$discount->tva_tx=$lines[$i]->tva_tx;
    +	    					$discount->fk_user=$user->id;
    +	    					$discount->description=$desc;
    +	    					$discountid=$discount->create($user);
    +	    					if ($discountid > 0)
    +	    					{
    +	    						$result=$object->insert_discount($discountid);
    +	    						//$result=$discount->link_to_invoice($lineid,$id);
    +	    					}
    +	    					else
    +	    					{
    +	    						setEventMessages($discount->error, $discount->errors, 'errors');
    +	    						$error++;
    +	    						break;
    +	    					}
    +	    				}
    +	    				else
    +	    				{
    +	    					// Positive line
    +	    					$product_type=($lines[$i]->product_type?$lines[$i]->product_type:0);
    +	    					// Date start
    +	    					$date_start=false;
    +	    					if ($lines[$i]->date_debut_prevue) $date_start=$lines[$i]->date_debut_prevue;
    +	    					if ($lines[$i]->date_debut_reel) $date_start=$lines[$i]->date_debut_reel;
    +	    					if ($lines[$i]->date_start) $date_start=$lines[$i]->date_start;
    +	    					//Date end
    +	    					$date_end=false;
    +	    					if ($lines[$i]->date_fin_prevue) $date_end=$lines[$i]->date_fin_prevue;
    +	    					if ($lines[$i]->date_fin_reel) $date_end=$lines[$i]->date_fin_reel;
    +	    					if ($lines[$i]->date_end) $date_end=$lines[$i]->date_end;
    +	    					// Reset fk_parent_line for no child products and special product
    +	    					if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9)
    +	    					{
    +	    						$fk_parent_line = 0;
    +	    					}
    +	    					$result = $object->addline(
    +	    							$desc,
    +	    							$lines[$i]->subprice,
    +	    							$lines[$i]->tva_tx,
    +	    							$lines[$i]->localtax1_tx,
    +	    							$lines[$i]->localtax2_tx,
    +									$lines[$i]->qty,
    +	    							$lines[$i]->fk_product,
    +	    							$lines[$i]->remise_percent,
    +	    							$date_start,
    +	    							$date_end,
    +	    							0,
    +	    							$lines[$i]->info_bits,
    +	    							'HT',
    +	    							$product_type,
    +	    							$i,
    +	    							false,
    +									0,
    +									null,
    +	    							$lines[$i]->rowid,
    +									0,
    +									$lines[$i]->ref_supplier
    +
    +	    					);
    +
    +							$rcp->add_object_linked('facture_fourn_det',$result);
    +
    +	    					if ($result > 0)
    +	    					{
    +	    						$lineid=$result;
    +	    					}
    +	    					else
    +	    					{
    +	    						$lineid=0;
    +	    						$error++;
    +	    						break;
    +	    					}
    +	    					// Defined the new fk_parent_line
    +	    					if ($result > 0 && $lines[$i]->product_type == 9)
    +	    					{
    +	    						$fk_parent_line = $result;
    +	    					}
    +	    				}
    +	    			}
    +    			}
    +    		}
    +
    +    		//$rcp->classifyBilled($user);        // Disabled. This behavior must be set or not using the workflow module.
    +
    +    		if(!empty($createbills_onebythird) && empty($TFactThird[$rcp->socid])) $TFactThird[$rcp->socid] = $object;
    +    		else $TFact[$object->id] = $object;
    +    	}
    +
    +    	// Build doc with all invoices
    +    	$TAllFact = empty($createbills_onebythird) ? $TFact : $TFactThird;
    +    	$toselect = array();
    +
    +    	if (! $error && $validate_invoices)
    +    	{
    +    		$massaction = $action = 'builddoc';
    +    		foreach($TAllFact as &$object)
    +    		{
    +    			$result = $object->validate($user);
    +    			if ($result <= 0)
    +    			{
    +    				$error++;
    +    				setEventMessages($object->error, $object->errors, 'errors');
    +    				break;
    +    			}
    +
    +    			$id = $object->id; // For builddoc action
    +
    +    			// Fac builddoc
    +    			$donotredirect = 1;
    +    			$upload_dir = $conf->fournisseur->facture->dir_output;
    +    		    $permissioncreate=$user->rights->fournisseur->facture->creer;
    +    		    include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
    +    		}
    +
    +    		$massaction = $action = 'confirm_createbills';
    +    	}
    +
    +    	if (! $error)
    +    	{
    +    		$db->commit();
    +    		setEventMessage($langs->trans('BillCreated', $nb_bills_created));
    +    	}
    +    	else
    +    	{
    +
    +    		$db->rollback();
    +    		$action='create';
    +    		$_GET["origin"]=$_POST["origin"];
    +    		$_GET["originid"]=$_POST["originid"];
    +    		setEventMessages($object->error, $errors, 'errors');
    +    		$error++;
    +    	}
    +    }
    +}
    +
    +
    +/*
    + * View
    + */
    +
    +$form=new Form($db);
    +$companystatic=new Societe($db);
    +$reception=new Reception($db);
    +$formcompany=new FormCompany($db);
    +$formfile = new FormFile($db);
    +
    +
    +$helpurl='EN:Module_Receptions|FR:Module_Receptions|ES:M&oacute;dulo_Receptiones';
    +llxHeader('',$langs->trans('ListOfReceptions'),$helpurl);
    +
    +$sql = "SELECT e.rowid, e.ref, e.ref_supplier, e.date_reception as date_reception, e.date_delivery as date_livraison, l.date_delivery as date_reception, e.fk_statut, e.billed,";
    +$sql.= ' s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client, ';
    +$sql.= " typent.code as typent_code,";
    +$sql.= " state.code_departement as state_code, state.nom as state_name,";
    +$sql.= ' e.date_creation as date_creation, e.tms as date_update';
    +// Add fields from extrafields
    +foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : '');
    +// Add fields from hooks
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters);    // Note that $action and $object may have been modified by hook
    +$sql.=$hookmanager->resPrint;
    +$sql.= " FROM ".MAIN_DB_PREFIX."reception as e";
    +if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."reception_extrafields as ef on (e.rowid = ef.fk_object)";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = e.fk_soc";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as ee ON e.rowid = ee.fk_source AND ee.sourcetype = 'reception' AND ee.targettype = 'delivery'";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."livraison as l ON l.rowid = ee.fk_target";
    +if (!$user->rights->societe->client->voir && !$socid)	// Internal user with no permission to see all
    +{
    +	$sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +}
    +$sql.= " WHERE e.entity IN (".getEntity('reception').")";
    +if (!$user->rights->societe->client->voir && !$socid)	// Internal user with no permission to see all
    +{
    +	$sql.= " AND e.fk_soc = sc.fk_soc";
    +	$sql.= " AND sc.fk_user = " .$user->id;
    +}
    +if ($socid)
    +{
    +	$sql.= " AND e.fk_soc = ".$socid;
    +}
    +if ($viewstatut <> '' && $viewstatut >= 0) {
    +	$sql.= " AND e.fk_statut = ".$viewstatut;
    +}
    +if ($search_billed != '' && $search_billed >= 0) $sql.=' AND e.billed = '.$search_billed;
    +if ($search_town)  $sql.= natural_search('s.town', $search_town);
    +if ($search_zip)   $sql.= natural_search("s.zip",$search_zip);
    +if ($search_state) $sql.= natural_search("state.nom",$search_state);
    +if ($search_country) $sql .= " AND s.fk_pays IN (".$search_country.')';
    +if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')';
    +if ($search_ref_rcp) $sql .= natural_search('e.ref', $search_ref_rcp);
    +if ($search_ref_liv) $sql .= natural_search('l.ref', $search_ref_liv);
    +if ($search_company) $sql .= natural_search('s.nom', $search_company);
    +if ($search_ref_supplier) $sql .= natural_search('e.ref_supplier', $search_ref_supplier);
    +if ($sall) $sql .= natural_search(array_keys($fieldstosearchall), $sall);
    +
    +// Add where from extra fields
    +foreach ($search_array_options as $key => $val)
    +{
    +    $crit=$val;
    +    $tmpkey=preg_replace('/search_options_/','',$key);
    +    $typ=$extrafields->attribute_type[$tmpkey];
    +    $mode=0;
    +    if (in_array($typ, array('int','double','real'))) $mode=1;    							// Search on a numeric
    +    if (in_array($typ, array('sellist')) && $crit != '0' && $crit != '-1') $mode=2;    		// Search on a foreign key int
    +    if ($crit != '' && (! in_array($typ, array('select','sellist')) || $crit != '0'))
    +    {
    +        $sql .= natural_search('ef.'.$tmpkey, $crit, $mode);
    +    }
    +}
    +// Add where from hooks
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters);    // Note that $action and $object may have been modified by hook
    +$sql.=$hookmanager->resPrint;
    +
    +$nbtotalofrecords = '';
    +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
    +{
    +    $result = $db->query($sql);
    +    $nbtotalofrecords = $db->num_rows($result);
    +}
    +
    +$sql.= $db->order($sortfield,$sortorder);
    +$sql.= $db->plimit($limit + 1,$offset);
    +
    +//print $sql;
    +$resql=$db->query($sql);
    +if ($resql)
    +{
    +	$num = $db->num_rows($resql);
    +
    +	$reception = new Reception($db);
    +
    +	$arrayofselected=is_array($toselect)?$toselect:array();
    +
    +	$param='';
    +    if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    +	if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    +	if ($sall) $param.= "&amp;sall=".$sall;
    +	if ($search_ref_rcp) $param.= "&amp;search_ref_rcp=".$search_ref_rcp;
    +	if ($search_ref_liv) $param.= "&amp;search_ref_liv=".$search_ref_liv;
    +	if ($search_company) $param.= "&amp;search_company=".$search_company;
    +	if ($optioncss != '') $param.='&amp;optioncss='.$optioncss;
    +	if ($search_billed != '' && $search_billed >= 0)$param.= "&amp;search_billed=".$search_billed;
    +	if ($search_town)  $param.= "&amp;search_town=".$search_town;
    +	if ($search_zip)  $param.= "&amp;search_zip=".$search_zip;
    +	if ($search_state) $param.= "&amp;search_state=".$search_state;
    +	if ($viewstatut) $param.= "&amp;viewstatut=".$viewstatut;
    +	if ($search_country) $param.= "&amp;search_country=".$search_country;
    +	if ($search_type_thirdparty) $param.= "&amp;search_type_thirdparty=".$search_type_thirdparty;
    +	if ($search_ref_supplier) $param.= "&amp;search_ref_supplier=".$search_ref_supplier;
    +	// Add $param from extra fields
    +	foreach ($search_array_options as $key => $val)
    +	{
    +	    $crit=$val;
    +	    $tmpkey=preg_replace('/search_options_/','',$key);
    +	    if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val);
    +	}
    +
    +
    +	$arrayofmassactions =  array(
    +//    'presend'=>$langs->trans("SendByMail"),
    +);
    +
    +	if($user->rights->fournisseur->facture->creer)$arrayofmassactions['createbills']=$langs->trans("CreateInvoiceForThisSupplier");
    +	if($massaction == 'createbills') $arrayofmassactions=array();
    +	$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
    +	//$massactionbutton=$form->selectMassAction('', $massaction == 'presend' ? array() : array('presend'=>$langs->trans("SendByMail"), 'builddoc'=>$langs->trans("PDFMerge")));
    +
    +	$i = 0;
    +    print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n";
    +    if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
    +    print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +    print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    +    print '<input type="hidden" name="action" value="list">';
    +    print '<input type="hidden" name="page" value="'.$page.'">';
    +    print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
    +    print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
    +
    +	print_barre_liste($langs->trans('ListOfReceptions'), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,$massactionbutton,$num, $nbtotalofrecords, '', 0, '', '', $limit);
    +
    +
    +	if ($massaction == 'createbills')
    +	{
    +		//var_dump($_REQUEST);
    +		print '<input type="hidden" name="massaction" value="confirm_createbills">';
    +
    +		print '<table class="noborder" width="100%" >';
    +		print '<tr>';
    +		print '<td class="titlefieldmiddle">';
    +		print $langs->trans('DateInvoice');
    +		print '</td>';
    +		print '<td>';
    +		print $form->select_date('', '', '', '', '', '', 1, 1);
    +		print '</td>';
    +		print '</tr>';
    +		print '<tr>';
    +		print '<td>';
    +		print $langs->trans('CreateOneBillByThird');
    +		print '</td>';
    +		print '<td>';
    +		print $form->selectyesno('createbills_onebythird', '', 1);
    +		print '</td>';
    +		print '</tr>';
    +		print '<tr>';
    +		print '<td>';
    +		print $langs->trans('ValidateInvoices');
    +		print '</td>';
    +		print '<td>';
    +		if (! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_BILL))
    +		{
    +		    print $form->selectyesno('valdate_invoices', 0, 1, 1);
    +		    print ' ('.$langs->trans("AutoValidationNotPossibleWhenStockIsDecreasedOnInvoiceValidation").')';
    +		}
    +		else
    +		{
    +            print $form->selectyesno('valdate_invoices', 0, 1);
    +		}
    +		print '</td>';
    +		print '</tr>';
    +		print '</table>';
    +
    +		print '<br>';
    +		print '<div class="center">';
    +		print '<input type="submit" class="button" id="createbills" name="createbills" value="'.$langs->trans('CreateInvoiceForThisSupplier').'">  ';
    +		print '<input type="submit" class="button" id="cancel" name="cancel" value="'.$langs->trans('Cancel').'">';
    +		print '</div>';
    +		print '<br>';
    +	}
    +
    +    if ($sall)
    +    {
    +        foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
    +        print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
    +    }
    +
    +    $moreforfilter='';
    +    if (! empty($moreforfilter))
    +    {
    +        print '<div class="liste_titre liste_titre_bydiv centpercent">';
    +        print $moreforfilter;
    +        $parameters=array('type'=>$type);
    +        $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
    +        print $hookmanager->resPrint;
    +        print '</div>';
    +    }
    +
    +    $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
    +    $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
    +	$selectedfields.=$form->showCheckAddButtons('checkforselect', 1);
    +
    +
    +    print '<div class="div-table-responsive">';
    +    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
    +
    +	// Lignes des champs de filtre
    +	print '<tr class="liste_titre_filter">';
    +	// Ref
    +	if (! empty($arrayfields['e.ref']['checked']))
    +	{
    +	    print '<td class="liste_titre">';
    +    	print '<input class="flat" size="6" type="text" name="search_ref_rcp" value="'.$search_ref_rcp.'">';
    +        print '</td>';
    +	}
    +	// Ref customer
    +	if (! empty($arrayfields['e.ref_supplier']['checked']))
    +	{
    +	    print '<td class="liste_titre">';
    +    	print '<input class="flat" size="6" type="text" name="search_ref_supplier" value="'.$search_ref_supplier.'">';
    +        print '</td>';
    +	}
    +	// Thirdparty
    +	if (! empty($arrayfields['s.nom']['checked']))
    +	{
    +    	print '<td class="liste_titre" align="left">';
    +    	print '<input class="flat" type="text" size="8" name="search_company" value="'.dol_escape_htmltag($search_company).'">';
    +    	print '</td>';
    +	}
    +	// Town
    +	if (! empty($arrayfields['s.town']['checked'])) print '<td class="liste_titre"><input class="flat" type="text" size="6" name="search_town" value="'.$search_town.'"></td>';
    +	// Zip
    +	if (! empty($arrayfields['s.zip']['checked'])) print '<td class="liste_titre"><input class="flat" type="text" size="6" name="search_zip" value="'.$search_zip.'"></td>';
    +	// State
    +    if (! empty($arrayfields['state.nom']['checked']))
    +    {
    +        print '<td class="liste_titre">';
    +    	print '<input class="flat" size="4" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).'">';
    +    	print '</td>';
    +    }
    +    // Country
    +    if (! empty($arrayfields['country.code_iso']['checked']))
    +    {
    +        print '<td class="liste_titre" align="center">';
    +    	print $form->select_country($search_country,'search_country','',0,'maxwidth100');
    +    	print '</td>';
    +    }
    +	// Company type
    +    if (! empty($arrayfields['typent.code']['checked']))
    +    {
    +        print '<td class="liste_titre maxwidthonsmartphone" align="center">';
    +    	print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT));
    +    	print '</td>';
    +    }
    +	// Date delivery planned
    +	if (! empty($arrayfields['e.date_delivery']['checked']))
    +	{
    +    	print '<td class="liste_titre">&nbsp;</td>';
    +	}
    +	if (! empty($arrayfields['l.ref']['checked']))
    +	{
    +    	// Delivery ref
    +		print '<td class="liste_titre">';
    +		print '<input class="flat" size="10" type="text" name="search_ref_liv" value="'.$search_ref_liv.'"';
    +		print '</td>';
    +	}
    +	if (! empty($arrayfields['l.date_delivery']['checked']))
    +	{
    +	    // Date received
    +		print '<td class="liste_titre">&nbsp;</td>';
    +	}
    +	// Extra fields
    +	if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
    +	{
    +	    foreach($extrafields->attribute_label as $key => $val)
    +	    {
    +	        if (! empty($arrayfields["ef.".$key]['checked']))
    +	        {
    +	            $align=$extrafields->getAlignFlag($key);
    +	            $typeofextrafield=$extrafields->attribute_type[$key];
    +	            print '<td class="liste_titre'.($align?' '.$align:'').'">';
    +	            if (in_array($typeofextrafield, array('varchar', 'int', 'double', 'select')))
    +	            {
    +	                $crit=$val;
    +	                $tmpkey=preg_replace('/search_options_/','',$key);
    +	                $searchclass='';
    +	                if (in_array($typeofextrafield, array('varchar', 'select'))) $searchclass='searchstring';
    +	                if (in_array($typeofextrafield, array('int', 'double'))) $searchclass='searchnum';
    +	                print '<input class="flat'.($searchclass?' '.$searchclass:'').'" size="4" type="text" name="search_options_'.$tmpkey.'" value="'.dol_escape_htmltag($search_array_options['search_options_'.$tmpkey]).'">';
    +	            }
    +	            print '</td>';
    +	        }
    +	    }
    +	}
    +	// Fields from hook
    +	$parameters=array('arrayfields'=>$arrayfields);
    +	$reshook=$hookmanager->executeHooks('printFieldListOption',$parameters);    // Note that $action and $object may have been modified by hook
    +	print $hookmanager->resPrint;
    +	// Date creation
    +	if (! empty($arrayfields['e.datec']['checked']))
    +	{
    +	    print '<td class="liste_titre">';
    +	    print '</td>';
    +	}
    +	// Date modification
    +	if (! empty($arrayfields['e.tms']['checked']))
    +	{
    +	    print '<td class="liste_titre">';
    +	    print '</td>';
    +	}
    +	// Status
    +	if (! empty($arrayfields['e.fk_statut']['checked']))
    +	{
    +	    print '<td class="liste_titre maxwidthonsmartphone" align="right">';
    +	    print $form->selectarray('viewstatut', array('0'=>$langs->trans('StatusReceptionDraftShort'),'1'=>$langs->trans('StatusReceptionValidatedShort'),'2'=>$langs->trans('StatusReceptionProcessedShort')),$viewstatut,1);
    +	    print '</td>';
    +	}
    +	// Status billed
    +	if (! empty($arrayfields['e.billed']['checked']))
    +	{
    +	    print '<td class="liste_titre maxwidthonsmartphone" align="center">';
    +	    print $form->selectyesno('search_billed', $search_billed, 1, 0, 1);
    +	    print '</td>';
    +	}
    +	// Action column
    +	print '<td class="liste_titre" align="middle">';
    +	$searchpicto=$form->showFilterAndCheckAddButtons(0);
    +	print $searchpicto;
    +    print '</td>';
    +	print "</tr>\n";
    +
    +	print '<tr class="liste_titre">';
    +	if (! empty($arrayfields['e.ref']['checked']))            print_liste_field_titre($arrayfields['e.ref']['label'], $_SERVER["PHP_SELF"],"e.ref","",$param,'',$sortfield,$sortorder);
    +	if (! empty($arrayfields['e.ref_supplier']['checked']))   print_liste_field_titre($arrayfields['e.ref_supplier']['label'], $_SERVER["PHP_SELF"],"e.ref_supplier","",$param,'',$sortfield,$sortorder);
    +	if (! empty($arrayfields['s.nom']['checked']))            print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"],"s.nom", "", $param,'align="left"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['s.town']['checked']))           print_liste_field_titre($arrayfields['s.town']['label'],$_SERVER["PHP_SELF"],'s.town','',$param,'',$sortfield,$sortorder);
    +	if (! empty($arrayfields['s.zip']['checked']))            print_liste_field_titre($arrayfields['s.zip']['label'],$_SERVER["PHP_SELF"],'s.zip','',$param,'',$sortfield,$sortorder);
    +	if (! empty($arrayfields['state.nom']['checked']))        print_liste_field_titre($arrayfields['state.nom']['label'],$_SERVER["PHP_SELF"],"state.nom","",$param,'',$sortfield,$sortorder);
    +	if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'],$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['typent.code']['checked']))      print_liste_field_titre($arrayfields['typent.code']['label'],$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['e.date_delivery']['checked']))  print_liste_field_titre($arrayfields['e.date_delivery']['label'], $_SERVER["PHP_SELF"],"e.date_delivery","",$param, 'align="center"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['l.ref']['checked']))            print_liste_field_titre($arrayfields['l.ref']['label'], $_SERVER["PHP_SELF"],"l.ref","",$param, '',$sortfield,$sortorder);
    +	if (! empty($arrayfields['l.date_delivery']['checked']))  print_liste_field_titre($arrayfields['l.date_delivery']['label'], $_SERVER["PHP_SELF"],"l.date_delivery","",$param, 'align="center"',$sortfield,$sortorder);
    +	// Extra fields
    +	if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
    +	{
    +	    foreach($extrafields->attribute_label as $key => $val)
    +	    {
    +	        if (! empty($arrayfields["ef.".$key]['checked']))
    +	        {
    +	            $align=$extrafields->getAlignFlag($key);
    +    			$sortonfield = "ef.".$key;
    +    			if (! empty($extrafields->attribute_computed[$key])) $sortonfield='';
    +    			print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
    +	        }
    +	    }
    +	}
    +	// Hook fields
    +	$parameters=array('arrayfields'=>$arrayfields);
    +	$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters);    // Note that $action and $object may have been modified by hook
    +	print $hookmanager->resPrint;
    +	if (! empty($arrayfields['e.datec']['checked']))  print_liste_field_titre($arrayfields['e.datec']['label'],$_SERVER["PHP_SELF"],"e.date_creation","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['e.tms']['checked']))    print_liste_field_titre($arrayfields['e.tms']['label'],$_SERVER["PHP_SELF"],"e.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['e.fk_statut']['checked'])) print_liste_field_titre($arrayfields['e.fk_statut']['label'],$_SERVER["PHP_SELF"],"e.fk_statut","",$param,'align="right"',$sortfield,$sortorder);
    +	if (! empty($arrayfields['e.billed']['checked'])) print_liste_field_titre($arrayfields['e.billed']['label'],$_SERVER["PHP_SELF"],"e.billed","",$param,'align="center"',$sortfield,$sortorder);
    +	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
    +	print "</tr>\n";
    +
    +	$i=0;
    +	$totalarray=array();
    +	while ($i < min($num,$limit))
    +	{
    +		$obj = $db->fetch_object($resql);
    +
    +    	$reception->id=$obj->rowid;
    +    	$reception->ref=$obj->ref;
    +
    +    	$companystatic->id=$obj->socid;
    +    	$companystatic->ref=$obj->name;
    +    	$companystatic->name=$obj->name;
    +
    +
    +    	print '<tr class="oddeven">';
    +
    +		// Ref
    +		if (! empty($arrayfields['e.ref']['checked']))
    +		{
    +    		print "<td>";
    +    		print $reception->getNomUrl(1);
    +    		$filename=dol_sanitizeFileName($reception->ref);
    +    		$filedir=$conf->reception->dir_output . '/' . dol_sanitizeFileName($reception->ref);
    +    		$urlsource=$_SERVER['PHP_SELF'].'?id='.$reception->rowid;
    +    		print $formfile->getDocumentsLink($reception->element, $filename, $filedir);
    +    		print "</td>\n";
    +
    +    		if (! $i) $totalarray['nbfield']++;
    +		}
    +
    +		// Ref customer
    +		if (! empty($arrayfields['e.ref_supplier']['checked']))
    +		{
    +		    print "<td>";
    +		    print $obj->ref_supplier;
    +		    print "</td>\n";
    +		    if (! $i) $totalarray['nbfield']++;
    +		}
    +
    +		// Third party
    +		if (! empty($arrayfields['s.nom']['checked']))
    +		{
    +    		print '<td>';
    +    		print $companystatic->getNomUrl(1);
    +    		print '</td>';
    +    		if (! $i) $totalarray['nbfield']++;
    +		}
    +		// Town
    +		if (! empty($arrayfields['s.town']['checked']))
    +		{
    +		    print '<td class="nocellnopadd">';
    +		    print $obj->town;
    +		    print '</td>';
    +		    if (! $i) $totalarray['nbfield']++;
    +		}
    +		// Zip
    +		if (! empty($arrayfields['s.zip']['checked']))
    +		{
    +		    print '<td class="nocellnopadd">';
    +		    print $obj->zip;
    +		    print '</td>';
    +		    if (! $i) $totalarray['nbfield']++;
    +		}
    +		// State
    +		if (! empty($arrayfields['state.nom']['checked']))
    +		{
    +		    print "<td>".$obj->state_name."</td>\n";
    +		    if (! $i) $totalarray['nbfield']++;
    +		}
    +		// Country
    +		if (! empty($arrayfields['country.code_iso']['checked']))
    +		{
    +		    print '<td align="center">';
    +		    $tmparray=getCountry($obj->fk_pays,'all');
    +		    print $tmparray['label'];
    +		    print '</td>';
    +		    if (! $i) $totalarray['nbfield']++;
    +		}
    +		// Type ent
    +		if (! empty($arrayfields['typent.code']['checked']))
    +		{
    +		    print '<td align="center">';
    +		    if (count($typenArray)==0) $typenArray = $formcompany->typent_array(1);
    +		    print $typenArray[$obj->typent_code];
    +		    print '</td>';
    +		    if (! $i) $totalarray['nbfield']++;
    +		}
    +
    +		// Date delivery planed
    +		if (! empty($arrayfields['e.date_delivery']['checked']))
    +		{
    +    		print '<td align="center">';
    +    		print dol_print_date($db->jdate($obj->date_livraison),"day");
    +    		/*$now = time();
    +    		if ( ($now - $db->jdate($obj->date_reception)) > $conf->warnings->lim && $obj->statutid == 1 )
    +    		{
    +    		}*/
    +    		print "</td>\n";
    +		}
    +
    +		if (! empty($arrayfields['l.ref']['checked']) || ! empty($arrayfields['l.date_delivery']['checked']))
    +        {
    +		    $reception->fetchObjectLinked($reception->id,$reception->element);
    +            $receiving='';
    +            if (count($reception->linkedObjects['delivery']) > 0) $receiving=reset($reception->linkedObjects['delivery']);
    +
    +    		if (! empty($arrayfields['l.ref']['checked']))
    +            {
    +                // Ref
    +                print '<td>';
    +                print !empty($receiving) ? $receiving->getNomUrl($db) : '';
    +                print '</td>';
    +            }
    +
    +    		if (! empty($arrayfields['l.date_delivery']['checked']))
    +            {
    +                // Date received
    +            	print '<td align="center">';
    +    			print dol_print_date($db->jdate($obj->date_reception),"day");
    +    			print '</td>'."\n";
    +            }
    +		}
    +
    +		// Extra fields
    +		if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
    +		{
    +		    foreach($extrafields->attribute_label as $key => $val)
    +		    {
    +		        if (! empty($arrayfields["ef.".$key]['checked']))
    +		        {
    +		            print '<td class="tdofextrafield"';
    +		            $align=$extrafields->getAlignFlag($key);
    +		            if ($align) print ' align="'.$align.'"';
    +		            print '>';
    +		            $tmpkey='options_'.$key;
    +		            print $extrafields->showOutputField($key, $obj->$tmpkey, '', 1);
    +		            print '</td>';
    +		            if (! $i) $totalarray['nbfield']++;
    +		        }
    +		    }
    +		}
    +		// Fields from hook
    +		$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
    +		$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters);    // Note that $action and $object may have been modified by hook
    +		print $hookmanager->resPrint;
    +		// Date creation
    +		if (! empty($arrayfields['e.datec']['checked']))
    +		{
    +		    print '<td align="center" class="nowrap">';
    +		    print dol_print_date($db->jdate($obj->date_creation), 'dayhour');
    +		    print '</td>';
    +		    if (! $i) $totalarray['nbfield']++;
    +		}
    +		// Date modification
    +		if (! empty($arrayfields['e.tms']['checked']))
    +		{
    +		    print '<td align="center" class="nowrap">';
    +		    print dol_print_date($db->jdate($obj->date_update), 'dayhour');
    +		    print '</td>';
    +		    if (! $i) $totalarray['nbfield']++;
    +		}
    +		// Status
    +		if (! empty($arrayfields['e.fk_statut']['checked']))
    +		{
    +		    print '<td align="right" class="nowrap">'.$reception->LibStatut($obj->fk_statut,5).'</td>';
    +		    if (! $i) $totalarray['nbfield']++;
    +		}
    +		// Billed
    +		if (! empty($arrayfields['e.billed']['checked']))
    +		{
    +			print '<td align="center">'.yn($obj->billed).'</td>';
    +			if (! $i) $totalarray['nbfield']++;
    +		}
    +
    +		// Action column
    +		print '<td align="center">';
    +		if ($massactionbutton || $massaction)   // 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($obj->rowid, $arrayofselected)) $selected=1;
    +    		print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>';
    +        }
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +
    +		print "</tr>\n";
    +
    +		$i++;
    +	}
    +
    +	print "</table>";
    +	print "</div>";
    +	print '</form>';
    +	$db->free($resql);
    +}
    +else
    +{
    +	dol_print_error($db);
    +}
    +
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/reception/note.php b/htdocs/reception/note.php
    new file mode 100644
    index 00000000000..f00a88aaec7
    --- /dev/null
    +++ b/htdocs/reception/note.php
    @@ -0,0 +1,165 @@
    +<?php
    +/* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2008 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012  Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2013 	   Florian Henry        <florian.henry@open-concept.pro>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *      \file       htdocs/reception/nosendingte.php
    + *      \ingroup    receptionsending
    + *      \brief      Note card reception
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php';
    +dol_include_once('/fourn/class/fournisseur.commande.class.php');
    +if (! empty($conf->projet->enabled)) {
    +    require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
    +    require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
    +}
    +
    +$langs->load("receptions");
    +$langs->load("companies");
    +$langs->load("bills");
    +$langs->load('deliveries');
    +$langs->load('orders');
    +$langs->load('stocks');
    +$langs->load('other');
    +$langs->load('propal');
    +
    +$id=(GETPOST('id','int')?GETPOST('id','int'):GETPOST('facid','int'));  // For backward compatibility
    +$ref=GETPOST('ref','alpha');
    +$action=GETPOST('action','alpha');
    +
    +// Security check
    +$socid='';
    +if ($user->societe_id) $socid=$user->societe_id;
    +$result=restrictedArea($user, $origin, $origin_id);
    +
    +$object = new Reception($db);
    +if ($id > 0 || ! empty($ref))
    +{
    +    $object->fetch($id, $ref);
    +    $object->fetch_thirdparty();
    +
    +    if (!empty($object->origin))
    +    {
    +        $typeobject = $object->origin;
    +        $origin = $object->origin;
    +        $object->fetch_origin();
    +    }
    +
    +    // Linked documents
    +    if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled))
    +    {
    +        $objectsrc=new Commande($db);
    +        $objectsrc->fetch($object->$typeobject->id);
    +    }
    +    if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled))
    +    {
    +        $objectsrc=new Propal($db);
    +        $objectsrc->fetch($object->$typeobject->id);
    +    }
    +}
    +
    +$permissionnote=$user->rights->reception->creer;	// Used by the include of actions_setnotes.inc.php
    +
    +
    +/*
    + * Actions
    + */
    +
    +include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php';	// Must be include, not includ_once
    +
    +
    +/*
    + * View
    + */
    +
    +llxHeader('','Reception');
    +
    +$form = new Form($db);
    +
    +if ($id > 0 || ! empty($ref))
    +{
    +
    +	$head=reception_prepare_head($object);
    +	dol_fiche_head($head, 'note', $langs->trans("Reception"), -1, 'sending');
    +
    +
    +	// Reception card
    +	$linkback = '<a href="'.DOL_URL_ROOT.'/reception/list.php">'.$langs->trans("BackToList").'</a>';
    +
    +	$morehtmlref='<div class="refidno">';
    +	// Ref customer reception
    +	$morehtmlref.=$form->editfieldkey("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', 0, 1);
    +	$morehtmlref.=$form->editfieldval("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', null, null, '', 1);
    +	// Thirdparty
    +	$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
    +    // Project
    +    if (! empty($conf->projet->enabled)) {
    +        $langs->load("projects");
    +        $morehtmlref .= '<br>' . $langs->trans('Project') . ' ';
    +        if (0) {    // Do not change on reception
    +            if ($action != 'classify') {
    +                $morehtmlref .= '<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    +            }
    +            if ($action == 'classify') {
    +                // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
    +                $morehtmlref .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '">';
    +                $morehtmlref .= '<input type="hidden" name="action" value="classin">';
    +                $morehtmlref .= '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    +                $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1);
    +                $morehtmlref .= '<input type="submit" class="button" value="' . $langs->trans("Modify") . '">';
    +                $morehtmlref .= '</form>';
    +            } else {
    +                $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
    +            }
    +        } else {
    +            // We don't have project on reception, so we will use the project or source object instead
    +            // TODO Add project on reception
    +            $morehtmlref .= ' : ';
    +            if (! empty($objectsrc->fk_project)) {
    +                $proj = new Project($db);
    +                $proj->fetch($objectsrc->fk_project);
    +                $morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $objectsrc->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
    +                $morehtmlref .= $proj->ref;
    +                $morehtmlref .= '</a>';
    +            } else {
    +                $morehtmlref .= '';
    +            }
    +        }
    +    }
    +    $morehtmlref.='</div>';
    +
    +    $object->picto = 'sending';
    +    dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
    +
    +
    +    print '<div class="underbanner clearboth"></div>';
    +
    +	$cssclass='titlefield';
    +	include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php';
    +
    +	dol_fiche_end();
    +}
    +
    +
    +llxFooter();
    +
    +$db->close();
    diff --git a/htdocs/reception/stats/index.php b/htdocs/reception/stats/index.php
    new file mode 100644
    index 00000000000..ae8a493f805
    --- /dev/null
    +++ b/htdocs/reception/stats/index.php
    @@ -0,0 +1,365 @@
    +<?php
    +/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2018	   Quentin Vial-Gouteyron    <quentin.vial-gouteyron@atm-consulting.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *     \file       htdocs/reception/stats/index.php
    + *     \ingroup    reception
    + *     \brief      Page with reception statistics
    + */
    +
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/reception/class/receptionstats.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
    +
    +$WIDTH=DolGraph::getDefaultGraphSizeForStats('width');
    +$HEIGHT=DolGraph::getDefaultGraphSizeForStats('height');
    +
    +$userid=GETPOST('userid','int');
    +$socid=GETPOST('socid','int');
    +// Security check
    +if ($user->societe_id > 0)
    +{
    +    $action = '';
    +    $socid = $user->societe_id;
    +}
    +
    +$nowyear=strftime("%Y", dol_now());
    +$year = GETPOST('year')>0?GETPOST('year'):$nowyear;
    +//$startyear=$year-2;
    +$startyear=$year-1;
    +$endyear=$year;
    +
    +$langs->load("reception");
    +$langs->load("other");
    +$langs->load("companies");
    +
    +
    +/*
    + * View
    + */
    +
    +$form=new Form($db);
    +
    +llxHeader();
    +
    +print load_fiche_titre($langs->trans("StatisticsOfReceptions"), $mesg);
    +
    +
    +dol_mkdir($dir);
    +
    +$stats = new ReceptionStats($db, $socid, $mode, ($userid>0?$userid:0));
    +
    +// Build graphic number of object
    +$data = $stats->getNbByMonthWithPrevYear($endyear,$startyear);
    +//var_dump($data);exit;
    +// $data = array(array('Lib',val1,val2,val3),...)
    +
    +
    +if (!$user->rights->societe->client->voir || $user->societe_id)
    +{
    +    $filenamenb = $dir.'/receptionsnbinyear-'.$user->id.'-'.$year.'.png';
    +    if ($mode == 'customer') $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstats&file=receptionsnbinyear-'.$user->id.'-'.$year.'.png';
    +    if ($mode == 'supplier') $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstatssupplier&file=receptionsnbinyear-'.$user->id.'-'.$year.'.png';
    +}
    +else
    +{
    +    $filenamenb = $dir.'/receptionsnbinyear-'.$year.'.png';
    +    if ($mode == 'customer') $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstats&file=receptionsnbinyear-'.$year.'.png';
    +    if ($mode == 'supplier') $fileurlnb = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstatssupplier&file=receptionsnbinyear-'.$year.'.png';
    +}
    +
    +$px1 = new DolGraph();
    +$mesg = $px1->isGraphKo();
    +if (! $mesg)
    +{
    +    $px1->SetData($data);
    +    $px1->SetPrecisionY(0);
    +    $i=$startyear;$legend=array();
    +    while ($i <= $endyear)
    +    {
    +        $legend[]=$i;
    +        $i++;
    +    }
    +    $px1->SetLegend($legend);
    +    $px1->SetMaxValue($px1->GetCeilMaxValue());
    +    $px1->SetMinValue(min(0,$px1->GetFloorMinValue()));
    +    $px1->SetWidth($WIDTH);
    +    $px1->SetHeight($HEIGHT);
    +    $px1->SetYLabel($langs->trans("NbOfReceptions"));
    +    $px1->SetShading(3);
    +    $px1->SetHorizTickIncrement(1);
    +    $px1->SetPrecisionY(0);
    +    $px1->mode='depth';
    +    $px1->SetTitle($langs->trans("NumberOfReceptionsByMonth"));
    +
    +    $px1->draw($filenamenb,$fileurlnb);
    +}
    +
    +// Build graphic amount of object
    +/*
    +$data = $stats->getAmountByMonthWithPrevYear($endyear,$startyear);
    +//var_dump($data);
    +// $data = array(array('Lib',val1,val2,val3),...)
    +
    +if (!$user->rights->societe->client->voir || $user->societe_id)
    +{
    +    $filenameamount = $dir.'/receptionsamountinyear-'.$user->id.'-'.$year.'.png';
    +    if ($mode == 'customer') $fileurlamount = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstats&file=receptionsamountinyear-'.$user->id.'-'.$year.'.png';
    +    if ($mode == 'supplier') $fileurlamount = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstatssupplier&file=receptionsamountinyear-'.$user->id.'-'.$year.'.png';
    +}
    +else
    +{
    +    $filenameamount = $dir.'/receptionsamountinyear-'.$year.'.png';
    +    if ($mode == 'customer') $fileurlamount = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstats&file=receptionsamountinyear-'.$year.'.png';
    +    if ($mode == 'supplier') $fileurlamount = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstatssupplier&file=receptionsamountinyear-'.$year.'.png';
    +}
    +
    +$px2 = new DolGraph();
    +$mesg = $px2->isGraphKo();
    +if (! $mesg)
    +{
    +    $px2->SetData($data);
    +    $i=$startyear;$legend=array();
    +    while ($i <= $endyear)
    +    {
    +        $legend[]=$i;
    +        $i++;
    +    }
    +    $px2->SetLegend($legend);
    +    $px2->SetMaxValue($px2->GetCeilMaxValue());
    +    $px2->SetMinValue(min(0,$px2->GetFloorMinValue()));
    +    $px2->SetWidth($WIDTH);
    +    $px2->SetHeight($HEIGHT);
    +    $px2->SetYLabel($langs->trans("AmountOfReceptions"));
    +    $px2->SetShading(3);
    +    $px2->SetHorizTickIncrement(1);
    +    $px2->SetPrecisionY(0);
    +    $px2->mode='depth';
    +    $px2->SetTitle($langs->trans("AmountOfReceptionsByMonthHT"));
    +
    +    $px2->draw($filenameamount,$fileurlamount);
    +}
    +*/
    +
    +/*
    +$data = $stats->getAverageByMonthWithPrevYear($endyear, $startyear);
    +
    +if (!$user->rights->societe->client->voir || $user->societe_id)
    +{
    +    $filename_avg = $dir.'/receptionsaverage-'.$user->id.'-'.$year.'.png';
    +    if ($mode == 'customer') $fileurl_avg = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstats&file=receptionsaverage-'.$user->id.'-'.$year.'.png';
    +    if ($mode == 'supplier') $fileurl_avg = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstatssupplier&file=receptionsaverage-'.$user->id.'-'.$year.'.png';
    +}
    +else
    +{
    +    $filename_avg = $dir.'/receptionsaverage-'.$year.'.png';
    +    if ($mode == 'customer') $fileurl_avg = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstats&file=receptionsaverage-'.$year.'.png';
    +    if ($mode == 'supplier') $fileurl_avg = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstatssupplier&file=receptionsaverage-'.$year.'.png';
    +}
    +
    +$px3 = new DolGraph();
    +$mesg = $px3->isGraphKo();
    +if (! $mesg)
    +{
    +    $px3->SetData($data);
    +    $i=$startyear;$legend=array();
    +    while ($i <= $endyear)
    +    {
    +        $legend[]=$i;
    +        $i++;
    +    }
    +    $px3->SetLegend($legend);
    +    $px3->SetYLabel($langs->trans("AmountAverage"));
    +    $px3->SetMaxValue($px3->GetCeilMaxValue());
    +    $px3->SetMinValue($px3->GetFloorMinValue());
    +    $px3->SetWidth($WIDTH);
    +    $px3->SetHeight($HEIGHT);
    +    $px3->SetShading(3);
    +    $px3->SetHorizTickIncrement(1);
    +    $px3->SetPrecisionY(0);
    +    $px3->mode='depth';
    +    $px3->SetTitle($langs->trans("AmountAverage"));
    +
    +    $px3->draw($filename_avg,$fileurl_avg);
    +}
    +*/
    +
    +
    +// Show array
    +$data = $stats->getAllByYear();
    +$arrayyears=array();
    +foreach($data as $val) {
    +	if (! empty($val['year'])) {
    +		$arrayyears[$val['year']]=$val['year'];
    +	}
    +}
    +if (! count($arrayyears)) $arrayyears[$nowyear]=$nowyear;
    +
    +$h=0;
    +$head = array();
    +$head[$h][0] = DOL_URL_ROOT . '/commande/stats/index.php?mode='.$mode;
    +$head[$h][1] = $langs->trans("ByMonthYear");
    +$head[$h][2] = 'byyear';
    +$h++;
    +
    +$type='reception_stats';
    +
    +complete_head_from_modules($conf,$langs,null,$head,$h,$type);
    +
    +dol_fiche_head($head, 'byyear', $langs->trans("Statistics"), -1);
    +
    +
    +print '<div class="fichecenter"><div class="fichethirdleft">';
    +
    +
    +//if (empty($socid))
    +//{
    +	// Show filter box
    +	print '<form name="stats" method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    +	print '<input type="hidden" name="mode" value="'.$mode.'">';
    +
    +	print '<table class="noborder" width="100%">';
    +	print '<tr class="liste_titre"><td class="liste_titre" colspan="2">'.$langs->trans("Filter").'</td></tr>';
    +	// Company
    +	print '<tr><td align="left">'.$langs->trans("ThirdParty").'</td><td align="left">';
    +	if ($mode == 'customer') $filter='s.client in (1,2,3)';
    +	if ($mode == 'supplier') $filter='s.fournisseur = 1';
    +	print $form->select_company($socid,'socid',$filter,1,0,0,array(),0,'','style="width: 95%"');
    +	print '</td></tr>';
    +	// User
    +	print '<tr><td align="left">'.$langs->trans("CreatedBy").'</td><td align="left">';
    +	print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
    +	print '</td></tr>';
    +	// Year
    +	print '<tr><td align="left">'.$langs->trans("Year").'</td><td align="left">';
    +	if (! in_array($year,$arrayyears)) $arrayyears[$year]=$year;
    +	if (! in_array($nowyear,$arrayyears)) $arrayyears[$nowyear]=$nowyear;
    +	arsort($arrayyears);
    +	print $form->selectarray('year',$arrayyears,$year,0);
    +	print '</td></tr>';
    +	print '<tr><td align="center" colspan="2"><input type="submit" name="submit" class="button" value="'.$langs->trans("Refresh").'"></td></tr>';
    +	print '</table>';
    +	print '</form>';
    +	print '<br><br>';
    +//}
    +
    +print '<table class="noborder" width="100%">';
    +print '<tr class="liste_titre" height="24">';
    +print '<td align="center">'.$langs->trans("Year").'</td>';
    +print '<td align="right">'.$langs->trans("NbOfReceptions").'</td>';
    +/*print '<td align="center">'.$langs->trans("AmountTotal").'</td>';
    +print '<td align="center">'.$langs->trans("AmountAverage").'</td>';*/
    +print '</tr>';
    +
    +$oldyear=0;
    +foreach ($data as $val)
    +{
    +	$year = $val['year'];
    +	while (! empty($year) && $oldyear > $year+1)
    +	{ // If we have empty year
    +		$oldyear--;
    +
    +
    +		print '<tr class="oddeven" height="24">';
    +		print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?year='.$oldyear.'&amp;mode='.$mode.'">'.$oldyear.'</a></td>';
    +
    +		print '<td align="right">0</td>';
    +		/*print '<td align="right">0</td>';
    +		print '<td align="right">0</td>';*/
    +		print '</tr>';
    +	}
    +
    +	print '<tr class="oddeven" height="24">';
    +	print '<td align="center">';
    +	if ($year) print '<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&amp;mode='.$mode.'">'.$year.'</a>';
    +	else print $langs->trans("ValidationDateNotDefinedEvenIfReceptionValidated");
    +	print '</td>';
    +	print '<td align="right">'.$val['nb'].'</td>';
    +	/*print '<td align="right">'.price(price2num($val['total'],'MT'),1).'</td>';
    +	print '<td align="right">'.price(price2num($val['avg'],'MT'),1).'</td>';*/
    +	print '</tr>';
    +	$oldyear=$year;
    +}
    +
    +print '</table>';
    +
    +
    +print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
    +
    +
    +// Show graphs
    +print '<table class="border" width="100%"><tr valign="top"><td align="center">';
    +if ($mesg) { print $mesg; }
    +else {
    +    print $px1->show();
    +    print "<br>\n";
    +    /*print $px2->show();
    +    print "<br>\n";
    +    print $px3->show();*/
    +}
    +print '</td></tr></table>';
    +
    +
    +print '</div></div></div>';
    +print '<div style="clear:both"></div>';
    +
    +dol_fiche_end();
    +
    +
    +
    +// TODO USe code similar to commande/stats/index.php instead of this one.
    +/*
    +print '<table class="border" width="100%">';
    +print '<tr><td align="center">'.$langs->trans("Year").'</td>';
    +print '<td width="40%" align="center">'.$langs->trans("NbOfReceptions").'</td></tr>';
    +
    +$sql = "SELECT count(*) as nb, date_format(date_reception,'%Y') as dm";
    +$sql.= " FROM ".MAIN_DB_PREFIX."reception";
    +$sql.= " WHERE fk_statut > 0";
    +$sql.= " AND entity = ".$conf->entity;
    +$sql.= " GROUP BY dm DESC";
    +
    +$resql=$db->query($sql);
    +if ($resql)
    +{
    +    $num = $db->num_rows($resql);
    +    $i = 0;
    +    while ($i < $num)
    +    {
    +        $row = $db->fetch_row($resql);
    +        $nbproduct = $row[0];
    +        $year = $row[1];
    +        print "<tr>";
    +        print '<td align="center"><a href="month.php?year='.$year.'">'.$year.'</a></td><td align="center">'.$nbproduct.'</td></tr>';
    +        $i++;
    +    }
    +}
    +$db->free($resql);
    +
    +print '</table>';
    +*/
    +
    +print '<br>';
    +print '<i>'.$langs->trans("StatsOnReceptionsOnlyValidated").'</i>';
    +
    +llxFooter();
    +
    +$db->close();
    diff --git a/htdocs/reception/stats/month.php b/htdocs/reception/stats/month.php
    new file mode 100644
    index 00000000000..df11f046e65
    --- /dev/null
    +++ b/htdocs/reception/stats/month.php
    @@ -0,0 +1,76 @@
    +<?php
    +/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2009 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *    \file       htdocs/reception/stats/month.php
    + *    \ingroup    commande
    + *    \brief      Page des stats receptions par mois
    + */
    +
    +require '../../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/reception/class/receptionstats.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php';
    +
    +
    +/*
    + * View
    + */
    +
    +llxHeader();
    +
    +$WIDTH=DolGraph::getDefaultGraphSizeForStats('width');
    +$HEIGHT=DolGraph::getDefaultGraphSizeForStats('height');
    +
    +$mesg = '';
    +
    +print load_fiche_titre($langs->trans("StatisticsOfReceptions").' '.$_GET["year"], $mesg);
    +
    +$stats = new ReceptionStats($db);
    +$data = $stats->getNbReceptionByMonth($_GET["year"]);
    +
    +dol_mkdir($conf->reception->dir_temp);
    +
    +$filename = $conf->reception->dir_temp."/reception".$year.".png";
    +$fileurl = DOL_URL_ROOT.'/viewimage.php?modulepart=receptionstats&file=reception'.$year.'.png';
    +
    +$px = new DolGraph();
    +$mesg = $px->isGraphKo();
    +if (! $mesg)
    +{
    +    $px->SetData($data);
    +    $px->SetMaxValue($px->GetCeilMaxValue());
    +    $px->SetWidth($WIDTH);
    +    $px->SetHeight($HEIGHT);
    +    $px->SetYLabel($langs->trans("NbOfOrders"));
    +    $px->SetShading(3);
    +	$px->SetHorizTickIncrement(1);
    +	$px->SetPrecisionY(0);
    +    $px->draw($filename,$fileurl);
    +}
    +
    +print '<table class="border" width="100%">';
    +print '<tr><td align="center">Nombre d reception par mois</td>';
    +print '<td align="center">';
    +print $px->show();
    +print '</td></tr>';
    +print '</table>';
    +
    +llxFooter();
    +
    +$db->close();
    diff --git a/htdocs/reception/tpl/index.html b/htdocs/reception/tpl/index.html
    new file mode 100644
    index 00000000000..e69de29bb2d
    diff --git a/htdocs/reception/tpl/linkedobjectblock.tpl.php b/htdocs/reception/tpl/linkedobjectblock.tpl.php
    new file mode 100644
    index 00000000000..3847b4dadd9
    --- /dev/null
    +++ b/htdocs/reception/tpl/linkedobjectblock.tpl.php
    @@ -0,0 +1,79 @@
    +<?php
    +/* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
    + * Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +?>
    +
    +<!-- BEGIN PHP TEMPLATE -->
    +
    +<?php
    +
    +global $user;
    +
    +$langs = $GLOBALS['langs'];
    +$linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
    +
    +$langs->load("receptions");
    +
    +$total=0; $ilink=0;
    +$var=true;
    +foreach($linkedObjectBlock as $key => $objectlink)
    +{
    +    $ilink++;
    +
    +    $trclass=($var?'pair':'impair');
    +    if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass.=' liste_sub_total';
    +?>
    +    <tr class="<?php echo $trclass; ?>">
    +        <td><?php echo $langs->trans("Reception"); ?></td>
    +        <td><?php echo $objectlink->getNomUrl(1); ?></td>
    +        <td></td>
    +    	<td align="center"><?php echo dol_print_date($objectlink->date_delivery,'day'); ?></td>
    +    	<td align="right"><?php
    +    		if ($user->rights->reception->lire) {
    +    			$total = $total + $objectlink->total_ht;
    +    			echo price($objectlink->total_ht);
    +    		} ?></td>
    +    	<td align="right"><?php echo $objectlink->getLibStatut(3); ?></td>
    +    	<td align="right">
    +    		<?php
    +    		// For now, receptions must stay linked to order, so link is not deletable
    +    		if($object->element != 'order_supplier') {
    +    			?>
    +    			<a href="<?php echo $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=dellink&dellinkid='.$key; ?>"><?php echo img_picto($langs->transnoentitiesnoconv("RemoveLink"), 'unlink'); ?></a></td>
    +    			<?php
    +    		}
    +    		?>
    +    </tr>
    +<?php
    +}
    +if (count($linkedObjectBlock) > 1)
    +{
    +    ?>
    +    <tr class="liste_total <?php echo (empty($noMoreLinkedObjectBlockAfter)?'liste_sub_total':''); ?>">
    +        <td><?php echo $langs->trans("Total"); ?></td>
    +        <td></td>
    +    	<td align="center"></td>
    +    	<td align="center"></td>
    +    	<td align="right"><?php echo price($total); ?></td>
    +    	<td align="right"></td>
    +    	<td align="right"></td>
    +    </tr>
    +    <?php
    +}
    +?>
    +
    +<!-- END PHP TEMPLATE -->
    diff --git a/htdocs/resource/agenda.php b/htdocs/resource/agenda.php
    new file mode 100644
    index 00000000000..f4980e698da
    --- /dev/null
    +++ b/htdocs/resource/agenda.php
    @@ -0,0 +1,175 @@
    +<?php
    +/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (C) 2005      Brice Davoleau       <brice.davoleau@gmail.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
    + * Copyright (C) 2006-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2007      Patrick Raguin  		<patrick.raguin@gmail.com>
    + * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
    + * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    + * Copyright (C) 2018      Florain Henry        <florian.henry@open-concept.pro
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *  \file       htdocs/resource/agenda.php
    + *  \ingroup    resource
    + *  \brief      Page of resource events
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/resource.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php';
    +
    +// Load translation files required by the page
    +$langs->load("companies");
    +
    +if (GETPOST('actioncode','array'))
    +{
    +    $actioncode=GETPOST('actioncode','array',3);
    +    if (! count($actioncode)) $actioncode='0';
    +}
    +else
    +{
    +    $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT));
    +}
    +$search_agenda_label=GETPOST('search_agenda_label');
    +
    +// Security check
    +$id = GETPOST('id','int');
    +$ref = GETPOST('ref', 'alpha');
    +if ($user->societe_id) $id=$user->societe_id;
    +// Protection if external user
    +if ($user->socid > 0)
    +{
    +	accessforbidden();
    +}
    +
    +if( ! $user->rights->resource->read)
    +{
    +	accessforbidden();
    +}
    +
    +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
    +$sortfield = GETPOST("sortfield",'alpha');
    +$sortorder = GETPOST("sortorder",'alpha');
    +$page = GETPOST("page",'int');
    +if (empty($page) || $page == -1) { $page = 0; }     // If $page is not defined, or '' or -1
    +$offset = $limit * $page;
    +$pageprev = $page - 1;
    +$pagenext = $page + 1;
    +if (! $sortfield) $sortfield='a.datep,a.id';
    +if (! $sortorder) $sortorder='DESC,DESC';
    +
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$hookmanager->initHooks(array('agendaresource'));
    +
    +
    +/*
    + *	Actions
    + */
    +
    +$parameters=array('id'=>$id);
    +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +if (empty($reshook))
    +{
    +    // Cancel
    +    if (GETPOST('cancel','alpha') && ! empty($backtopage))
    +    {
    +        header("Location: ".$backtopage);
    +        exit;
    +    }
    +
    +    // Purge search criteria
    +    if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
    +    {
    +        $actioncode='';
    +        $search_agenda_label='';
    +    }
    +}
    +
    +
    +
    +/*
    + *	View
    + */
    +
    +$contactstatic = new Contact($db);
    +
    +$form = new Form($db);
    +
    +if ($id > 0 || $ref)
    +{
    +	require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +	require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
    +
    +	$langs->load("companies");
    +	$picto = 'resource';
    +
    +	$object = new Dolresource($db);
    +	$result = $object->fetch($id);
    +
    +	$title=$langs->trans("Agenda");
    +	if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/productnameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->ref." - ".$title;
    +	llxHeader('',$title);
    +
    +	if (! empty($conf->notification->enabled)) $langs->load("mails");
    +	$type = $langs->trans('ResourceSingular');
    +
    +	$head = resource_prepare_head($object);
    +
    +	$titre=$langs->trans("ResourceSingular");
    +	dol_fiche_head($head, 'agenda', $titre, -1, $picto);
    +
    +    $linkback = '<a href="'.DOL_URL_ROOT.'/resource/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
    +
    +    $shownav = 1;
    +    if ($user->societe_id && ! in_array('resource', explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL))) $shownav=0;
    +
    +    dol_banner_tab($object, 'id', $linkback, $shownav, 'id');
    +
    +    print '<div class="fichecenter">';
    +
    +    print '<div class="underbanner clearboth"></div>';
    +
    +	print '</div>';
    +
    +	dol_fiche_end();
    +
    +    if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) ))
    +    {
    +    	print '<br>';
    +
    +        $param='&id='.$id;
    +        if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    +        if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    +
    +		print_barre_liste($langs->trans("ActionsOnResource"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlcenter, '', 0, 1, 1);
    +
    +        // List of all actions
    +		$filters=array();
    +        $filters['search_agenda_label']=$search_agenda_label;
    +
    +        // TODO Replace this with same code than into list.php
    +        show_actions_done($conf,$langs,$db,$object,null,0,$actioncode, '', $filters, $sortfield, $sortorder);
    +    }
    +}
    +
    +// End of page
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/resource/card.php b/htdocs/resource/card.php
    index 832f70f4ea1..8fd7f5bcd13 100644
    --- a/htdocs/resource/card.php
    +++ b/htdocs/resource/card.php
    @@ -22,12 +22,7 @@
      */
     
     
    -// Change this following line to use the correct relative path (../, ../../, etc)
    -$res=0;
    -$res=@include("../main.inc.php");				// For root directory
    -if (! $res) $res=@include("../../main.inc.php");	// For "custom" directory
    -if (! $res) die("Include of main fails");
    -
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
     require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php';
     require_once DOL_DOCUMENT_ROOT.'/resource/class/html.formresource.class.php';
    @@ -176,7 +171,6 @@ if (empty($reshook))
     					setEventMessages($object->error, $object->errors, 'errors');
     					$error++;
     				}
    -
     			}
     			else
     			{
    @@ -256,7 +250,7 @@ if ($action == 'create' || $object->fetch($id) > 0)
     
     		// Ref
     		print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("ResourceFormLabel_ref").'</td>';
    -		print '<td><input class="minwidth200" name="ref" value="'.($ref ? $ref : $object->ref).'"></td></tr>';
    +		print '<td><input class="minwidth200" name="ref" value="'.($ref ? $ref : $object->ref).'" autofocus="autofocus"></td></tr>';
     
     		// Type
     		print '<tr><td>'.$langs->trans("ResourceType").'</td>';
    @@ -406,8 +400,6 @@ else {
     	dol_print_error();
     }
     
    -
    -
     // End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/resource/class/dolresource.class.php b/htdocs/resource/class/dolresource.class.php
    index 7c3999db7c9..ad3355e3972 100644
    --- a/htdocs/resource/class/dolresource.class.php
    +++ b/htdocs/resource/class/dolresource.class.php
    @@ -19,19 +19,26 @@
      *  \file      	resource/class/resource.class.php
      *  \ingroup    resource
      *  \brief      Class file for resource object
    -
      */
     
     require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php";
     require_once DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php";
     
     /**
    - *	DAO Resource object
    + *  DAO Resource object
      */
     class Dolresource extends CommonObject
     {
    -	public $element='dolresource';			//!< Id that identify managed objects
    -	public $table_element='resource';	//!< Name of table without prefix where object is stored
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='dolresource';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='resource';
    +
         public $picto = 'resource';
     
     	public $resource_id;
    @@ -40,7 +47,12 @@ class Dolresource extends CommonObject
     	public $element_type;
     	public $busy;
     	public $mandatory;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_create;
    +
     	public $type_label;
     	public $tms='';
     
    @@ -54,20 +66,19 @@ class Dolresource extends CommonObject
         function __construct($db)
         {
             $this->db = $db;
    -        return 1;
         }
     
         /**
          *  Create object into database
          *
    -     *  @param	User	$user        User that creates
    +     *  @param	User    $user        User that creates
          *  @param  int		$notrigger   0=launch triggers after, 1=disable triggers
          *  @return int      		   	 <0 if KO, Id of created object if OK
          */
         function create($user, $notrigger=0)
         {
    -    	global $conf, $langs, $hookmanager;
    -    	$error=0;
    +        global $conf, $langs, $hookmanager;
    +        $error=0;
     
         	// Clean parameters
     
    @@ -326,6 +337,7 @@ class Dolresource extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Load object in memory from database
          *
    @@ -334,6 +346,7 @@ class Dolresource extends CommonObject
          */
         function fetch_element_resource($id)
         {
    +        // phpcs:enable
         	global $langs;
         	$sql = "SELECT";
         	$sql.= " t.rowid,";
    @@ -371,7 +384,6 @@ class Dolresource extends CommonObject
     				if($obj->element_id && $obj->element_type) {
     					$this->objelement = fetchObjectByElement($obj->element_id,$obj->element_type);
     				}
    -
         		}
         		$this->db->free($resql);
     
    @@ -470,6 +482,7 @@ class Dolresource extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Load resource objects into $this->lines
          *
    @@ -482,6 +495,7 @@ class Dolresource extends CommonObject
          */
         function fetch_all($sortorder, $sortfield, $limit, $offset, $filter='')
         {
    +        // phpcs:enable
         	global $conf;
         	$sql="SELECT ";
         	$sql.= " t.rowid,";
    @@ -491,7 +505,7 @@ class Dolresource extends CommonObject
         	$sql.= " t.fk_code_type_resource,";
         	$sql.= " t.tms,";
     
    -    	require_once(DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php');
    +    	require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
         	$extrafields=new ExtraFields($this->db);
         	$extralabels=$extrafields->fetch_name_optionals_label($this->table_element,true);
         	if (is_array($extralabels) && count($extralabels)>0) {
    @@ -563,9 +577,9 @@ class Dolresource extends CommonObject
         		$this->error = $this->db->lasterror();
         		return -1;
         	}
    -
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
          /**
          *	Load all objects into $this->lines
          *
    @@ -578,6 +592,7 @@ class Dolresource extends CommonObject
          */
         function fetch_all_resources($sortorder, $sortfield, $limit, $offset, $filter='')
         {
    +        // phpcs:enable
        		global $conf;
        		$sql="SELECT ";
        		$sql.= " t.rowid,";
    @@ -630,7 +645,6 @@ class Dolresource extends CommonObject
     					if($obj->element_id && $obj->element_type)
     						$line->objelement = fetchObjectByElement($obj->element_id,$obj->element_type);
             			$this->lines[] = $line;
    -
        				}
        				$this->db->free($resql);
        			}
    @@ -641,9 +655,9 @@ class Dolresource extends CommonObject
        			$this->error = $this->db->lasterror();
        			return -1;
        		}
    -
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Load all objects into $this->lines
          *
    @@ -656,6 +670,7 @@ class Dolresource extends CommonObject
          */
         function fetch_all_used($sortorder, $sortfield, $limit, $offset=1, $filter='')
         {
    +        // phpcs:enable
         	global $conf;
     
         	if ( ! $sortorder) $sortorder="ASC";
    @@ -719,9 +734,9 @@ class Dolresource extends CommonObject
         		$this->error = $this->db->lasterror();
         		return -1;
         	}
    -
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * Fetch all resources available, declared by modules
          * Load available resource in array $this->available_resources
    @@ -730,7 +745,9 @@ class Dolresource extends CommonObject
          * @deprecated, remplaced by hook getElementResources
          * @see getElementResources()
          */
    -    function fetch_all_available() {
    +    function fetch_all_available()
    +    {
    +        // phpcs:enable
         	global $conf;
     
         	if (! empty($conf->modules_parts['resources']))
    @@ -742,6 +759,7 @@ class Dolresource extends CommonObject
         	return 0;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Update element resource into database
          *
    @@ -751,6 +769,7 @@ class Dolresource extends CommonObject
          */
         function update_element_resource($user=null, $notrigger=0)
         {
    +        // phpcs:enable
         	global $conf, $langs;
     		$error=0;
     
    @@ -866,10 +885,10 @@ class Dolresource extends CommonObject
                 $i++;
             }
             return $i;
    -
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *      Load in cache resource type code (setup in dictionary)
          *
    @@ -877,6 +896,7 @@ class Dolresource extends CommonObject
          */
         function load_cache_code_type_resource()
         {
    +        // phpcs:enable
         	global $langs;
     
         	if (count($this->cache_code_type_resource)) return 0;    // Cache deja charge
    @@ -956,6 +976,7 @@ class Dolresource extends CommonObject
             return $this->LibStatut($this->status,$mode);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Return the status
          *
    @@ -965,6 +986,7 @@ class Dolresource extends CommonObject
          */
         static function LibStatut($status,$mode=0)
         {
    +        // phpcs:enable
             global $langs;
     
             return '';
    diff --git a/htdocs/resource/class/html.formresource.class.php b/htdocs/resource/class/html.formresource.class.php
    index 19bed957f74..c118643aa7d 100644
    --- a/htdocs/resource/class/html.formresource.class.php
    +++ b/htdocs/resource/class/html.formresource.class.php
    @@ -21,8 +21,8 @@
      *       \ingroup    core
      *       \brief      Class file to manage forms into resource module
      */
    -require_once(DOL_DOCUMENT_ROOT ."/core/class/html.form.class.php");
    -require_once(DOL_DOCUMENT_ROOT ."/resource/class/dolresource.class.php");
    +require_once DOL_DOCUMENT_ROOT ."/core/class/html.form.class.php";
    +require_once DOL_DOCUMENT_ROOT ."/resource/class/dolresource.class.php";
     
     
     /**
    @@ -33,12 +33,19 @@ require_once(DOL_DOCUMENT_ROOT ."/resource/class/dolresource.class.php");
      */
     class FormResource
     {
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -    var $substit=array();
    -    var $param=array();
    +    public $substit=array();
     
    -    var $error;
    +    public $param=array();
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
     
     	/**
    @@ -49,11 +56,10 @@ class FormResource
         function __construct($db)
         {
             $this->db = $db;
    -
    -        return 1;
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Output html form to select a resource
          *
    @@ -71,6 +77,7 @@ class FormResource
          */
         function select_resource_list($selected='',$htmlname='fk_resource',$filter='',$showempty=0, $showtype=0, $forcecombo=0, $event=array(), $filterkey='', $outputmode=0, $limit=20)
         {
    +        // phpcs:enable
         	global $conf,$user,$langs;
     
         	$out='';
    @@ -148,20 +155,22 @@ class FormResource
         	return $out;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -     *      Return html list of tickets type
    +     *  Return html list of tickets type
          *
    -     *      @param	string	$selected       Id du type pre-selectionne
    -     *      @param  string	$htmlname       Nom de la zone select
    -     *      @param  string	$filtertype     To filter on field type in llx_c_ticket_type (array('code'=>xx,'label'=>zz))
    -     *      @param  int		$format         0=id+libelle, 1=code+code, 2=code+libelle, 3=id+code
    -     *      @param  int		$empty			1=peut etre vide, 0 sinon
    -     * 		@param	int		$noadmininfo	0=Add admin info, 1=Disable admin info
    -     *      @param  int		$maxlength      Max length of label
    -     * 		@return	void
    +     *  @param	string	$selected       Id du type pre-selectionne
    +     *  @param  string	$htmlname       Nom de la zone select
    +     *  @param  string	$filtertype     To filter on field type in llx_c_ticket_type (array('code'=>xx,'label'=>zz))
    +     *  @param  int		$format         0=id+libelle, 1=code+code, 2=code+libelle, 3=id+code
    +     *  @param  int		$empty			1=peut etre vide, 0 sinon
    +     *  @param	int		$noadmininfo	0=Add admin info, 1=Disable admin info
    +     *  @param  int		$maxlength      Max length of label
    +     * 	@return	void
          */
         function select_types_resource($selected='',$htmlname='type_resource',$filtertype='',$format=0, $empty=0, $noadmininfo=0,$maxlength=0)
         {
    +        // phpcs:enable
         	global $langs,$user;
     
         	$resourcestat = new Dolresource($this->db);
    @@ -202,8 +211,4 @@ class FormResource
         	print '</select>';
         	if ($user->admin && ! $noadmininfo) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
         }
    -
    -
    -
     }
    -
    diff --git a/htdocs/resource/contact.php b/htdocs/resource/contact.php
    index 981a07d7e73..e4f588b7f0d 100644
    --- a/htdocs/resource/contact.php
    +++ b/htdocs/resource/contact.php
    @@ -1,8 +1,8 @@
     <?php
    -/* Copyright (C) 2005-2012  Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2005-2012  Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007-2009  Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2012       Juanjo Menent        <jmenent@2byte.es>
    - * Copyright (C) 2016		    Gilles Poirier		   <glgpoirier@gmail.com>
    + * Copyright (C) 2016		Gilles Poirier		 <glgpoirier@gmail.com>
     
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -47,7 +47,7 @@ $result = $object->fetch($id,$ref);
     
     
     /*
    - * Ajout d'un nouveau contact
    + * Add a new contact
      */
     
     if ($action == 'addcontact' && $user->rights->resource->write)
    @@ -72,17 +72,17 @@ if ($action == 'addcontact' && $user->rights->resource->write)
     			$mesg = $object->error;
     		}
     
    -		setEventMessage($mesg, 'errors');
    +		setEventMessages($mesg, null, 'errors');
     	}
     }
     
    -// bascule du statut d'un contact
    +// Toggle the status of a contact
     else if ($action == 'swapstatut' && $user->rights->resource->write)
     {
         $result=$object->swapContactStatus(GETPOST('ligne','int'));
     }
     
    -// Efface un contact
    +// Erase a contact
     else if ($action == 'deletecontact' && $user->rights->resource->write)
     {
     	$result = $object->delete_contact(GETPOST('lineid','int'));
    @@ -162,6 +162,6 @@ if ($id > 0 || ! empty($ref))
     	include DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php';
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/resource/document.php b/htdocs/resource/document.php
    index edaf52baba3..1d2c3efd9e7 100644
    --- a/htdocs/resource/document.php
    +++ b/htdocs/resource/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Simon TOSSER          <simon@kornog-computing.com>
      * Copyright (C) 2011-2012 Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
    @@ -91,7 +91,7 @@ if ($object->id)
     	dol_fiche_head($head, 'documents',  $langs->trans("ResourceSingular"), -1, 'resource');
     
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -135,14 +135,12 @@ if ($object->id)
         $permission = $user->rights->resource->write;
     
         include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
    -
     }
     else
     {
     	print $langs->trans("ErrorUnknown");
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/resource/element_resource.php b/htdocs/resource/element_resource.php
    index b9ff15f1461..44a993929a7 100644
    --- a/htdocs/resource/element_resource.php
    +++ b/htdocs/resource/element_resource.php
    @@ -23,11 +23,7 @@
      */
     
     
    -$res=0;
    -$res=@include("../main.inc.php");                               // For root directory
    -if (! $res) $res=@include("../../main.inc.php");        // For "custom" directory
    -if (! $res) die("Include of main fails");
    -
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php';
    @@ -466,7 +462,6 @@ else
     				if(file_exists(dol_buildpath($path.'/core/tpl/resource_'.$element_prop['element'].'_view.tpl.php')))
     				{
     					$res=@include dol_buildpath($path.'/core/tpl/resource_'.$element_prop['element'].'_view.tpl.php');
    -
     				}
     				else
     				{
    @@ -477,6 +472,6 @@ else
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/resource/list.php b/htdocs/resource/list.php
    index 68f91327f6d..07962c5b011 100644
    --- a/htdocs/resource/list.php
    +++ b/htdocs/resource/list.php
    @@ -23,7 +23,6 @@
      *      \brief      Page to manage resource objects
      */
     
    -
     require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/resource/class/dolresource.class.php';
     
    @@ -51,10 +50,8 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    -if (! is_array($search_array_options)) {
    -    $search_array_options = array();
    -}
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
    +if (! is_array($search_array_options)) $search_array_options = array();
     $search_ref=GETPOST("search_ref");
     $search_type=GETPOST("search_type");
     
    @@ -293,5 +290,6 @@ else
     print '</table>';
     print "</form>\n";
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/resource/note.php b/htdocs/resource/note.php
    index 9116cdd0387..79ba2b159a8 100644
    --- a/htdocs/resource/note.php
    +++ b/htdocs/resource/note.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2005-2012	Regis Houssin	  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2005-2012	Regis Houssin	  <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012	Juanjo Menent	  <jmenent@2byte.es>
      * Copyright (C) 2016       Laurent Destailleur <aldy@users.sourceforge.net>
      * Copyright (C) 2013       Florian Henry   <florian.henry@open-concept.pro>
    @@ -100,5 +100,6 @@ if ($id > 0 || ! empty($ref))
     	dol_fiche_end();
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/societe/admin/contact_extrafields.php b/htdocs/societe/admin/contact_extrafields.php
    index 4facdd11ea1..2cd65982c8e 100644
    --- a/htdocs/societe/admin/contact_extrafields.php
    +++ b/htdocs/societe/admin/contact_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -28,8 +28,7 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     
    -$langs->load("companies");
    -$langs->load("admin");
    +$langs->loadLangs(array("companies", "admin"));
     
     $extrafields = new ExtraFields($db);
     $form = new Form($db);
    @@ -81,7 +80,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -94,8 +93,8 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    -    print load_fiche_titre($langs->trans('NewAttribute'));
    +	print '<br><div id="newattrib"></div>';
    +	print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
     }
    @@ -113,6 +112,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/societe/admin/societe.php b/htdocs/societe/admin/societe.php
    index ecbefe2cb1d..4628f241728 100644
    --- a/htdocs/societe/admin/societe.php
    +++ b/htdocs/societe/admin/societe.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
      * Copyright (C) 2005-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012 Juanjo Menent        <jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -29,8 +29,7 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     
    -$langs->load("admin");
    -$langs->load('other');
    +$langs->loadLangs(array("admin", "companies", "other"));
     
     $action=GETPOST('action','alpha');
     $value=GETPOST('value','alpha');
    @@ -182,6 +181,21 @@ if ($action=="setaddrefinlist") {
     	}
     }
     
    +//Activate Set adress in list
    +if ($action=="setaddadressinlist") {
    +	$val = GETPOST('value','int');
    +	$res = dolibarr_set_const($db, "COMPANY_SHOW_ADDRESS_SELECTLIST", $val,'yesno',0,'',$conf->entity);
    +	if (! $res > 0) $error++;
    +	if (! $error)
    +	{
    +		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    +	}
    +	else
    +	{
    +		setEventMessages($langs->trans("Error"), null, 'errors');
    +	}
    +}
    +
     //Activate Ask For Preferred Shipping Method
     if ($action=="setaskforshippingmet") {
     	$setaskforshippingmet = GETPOST('value','int');
    @@ -197,6 +211,21 @@ if ($action=="setaskforshippingmet") {
     	}
     }
     
    +//Activate "Disable prospect/customer type"
    +if ($action=="setdisableprospectcustomer") {
    +    $setdisableprospectcustomer = GETPOST('value','int');
    +    $res = dolibarr_set_const($db, "SOCIETE_DISABLE_PROSPECTSCUSTOMERS", $setdisableprospectcustomer,'yesno',0,'',$conf->entity);
    +    if (! $res > 0) $error++;
    +    if (! $error)
    +    {
    +        setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    +    }
    +    else
    +    {
    +        setEventMessages($langs->trans("Error"), null, 'errors');
    +    }
    +}
    +
     //Activate ProfId unique
     if ($action == 'setprofid')
     {
    @@ -298,11 +327,13 @@ $head = societe_admin_prepare_head();
     dol_fiche_head($head, 'general', $langs->trans("ThirdParties"), -1, 'company');
     
     $dirsociete=array_merge(array('/core/modules/societe/'),$conf->modules_parts['societe']);
    +foreach ($conf->modules_parts['models'] as $mo)		$dirsociete[]=$mo.'core/modules/societe/';	//Add more models
     
     // Module to manage customer/supplier code
     
     print load_fiche_titre($langs->trans("CompanyCodeChecker"),'','');
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">'."\n";
     print '<tr class="liste_titre">'."\n";
     print '  <td>'.$langs->trans("Name").'</td>';
    @@ -374,7 +405,7 @@ foreach ($dirsociete as $dirroot)
         }
     }
     print '</table>';
    -
    +print '</div>';
     
     print "<br>";
     
    @@ -383,6 +414,7 @@ print "<br>";
     
     print load_fiche_titre($langs->trans("AccountCodeManager"),'','');
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
     print '<td width="140">'.$langs->trans("Name").'</td>';
    @@ -444,6 +476,7 @@ foreach ($dirsociete as $dirroot)
         }
     }
     print "</table>\n";
    +print '</div>';
     
     
     /*
    @@ -475,6 +508,7 @@ else
     	dol_print_error($db);
     }
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
     print '<td width="140">'.$langs->trans("Name").'</td>';
    @@ -590,12 +624,14 @@ foreach ($dirsociete as $dirroot)
     	}
     }
     print '</table>';
    +print '</div>';
     
     print '<br>';
     
     //IDProf
     print load_fiche_titre($langs->trans("CompanyIdProfChecker"),'','');
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
     print '<td>'.$langs->trans("Name").'</td>';
    @@ -682,8 +718,10 @@ foreach($profid as $key => $val)
     	$i++;
     }
     
    -print "</table><br>\n";
    +print "</table>\n";
    +print '</div>';
     
    +print "<br>\n";
     
     print load_fiche_titre($langs->trans("Other"),'','');
     
    @@ -694,6 +732,7 @@ print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     print '<input type="hidden" name="action" value="updateoptions">';
     
    +print '<div class="div-table-responsive-no-min">';
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre">';
     print "<td>".$langs->trans("Parameters")."</td>\n";
    @@ -718,7 +757,7 @@ else
         '2'=>$langs->trans("Yes").' ('.$langs->trans("NumberOfKeyToSearch",2).')',
         '3'=>$langs->trans("Yes").' ('.$langs->trans("NumberOfKeyToSearch",3).')',
     	);
    -	print $form->selectarray("activate_COMPANY_USE_SEARCH_TO_SELECT", $arrval, $conf->global->COMPANY_USE_SEARCH_TO_SELECT);
    +	print $form->selectarray("activate_COMPANY_USE_SEARCH_TO_SELECT", $arrval, $conf->global->COMPANY_USE_SEARCH_TO_SELECT, 0, 0, 0, '', 0, 0, 0, '', 'minwidth75imp');
     	print '</td><td align="right">';
     	print '<input type="submit" class="button" name="COMPANY_USE_SEARCH_TO_SELECT" value="'.$langs->trans("Modify").'">';
     	print "</td>";
    @@ -742,7 +781,7 @@ else
     	'2'=>$langs->trans("Yes").' ('.$langs->trans("NumberOfKeyToSearch",2).')',
     	'3'=>$langs->trans("Yes").' ('.$langs->trans("NumberOfKeyToSearch",3).')',
     	);
    -	print $form->selectarray("activate_CONTACT_USE_SEARCH_TO_SELECT", $arrval, $conf->global->CONTACT_USE_SEARCH_TO_SELECT);
    +	print $form->selectarray("activate_CONTACT_USE_SEARCH_TO_SELECT", $arrval, $conf->global->CONTACT_USE_SEARCH_TO_SELECT, 0, 0, 0, '', 0, 0, 0, '', 'minwidth75imp');
     	print '</td><td align="right">';
     	print '<input type="submit" class="button" name="CONTACT_USE_SEARCH_TO_SELECT" value="'.$langs->trans("Modify").'">';
     	print "</td>";
    @@ -759,7 +798,6 @@ if (!empty($conf->global->SOCIETE_ADD_REF_IN_LIST))
     {
     	print '<a href="'.$_SERVER['PHP_SELF'].'?action=setaddrefinlist&value=0">';
     	print img_picto($langs->trans("Activated"),'switch_on');
    -
     }
     else
     {
    @@ -769,6 +807,23 @@ else
     print '</a></td>';
     print '</tr>';
     
    +print '<tr class="oddeven">';
    +print '<td width="80%">'.$langs->trans("AddAdressInList").'</td>';
    +print '<td>&nbsp</td>';
    +print '<td align="center">';
    +if (!empty($conf->global->COMPANY_SHOW_ADDRESS_SELECTLIST))
    +{
    +	print '<a href="'.$_SERVER['PHP_SELF'].'?action=setaddadressinlist&value=0">';
    +	print img_picto($langs->trans("Activated"),'switch_on');
    +}
    +else
    +{
    +	print '<a href="'.$_SERVER['PHP_SELF'].'?action=setaddadressinlist&value=1">';
    +	print img_picto($langs->trans("Disabled"),'switch_off');
    +}
    +print '</a></td>';
    +print '</tr>';
    +
     
     
     print '<tr class="oddeven">';
    @@ -779,7 +834,6 @@ if (!empty($conf->global->SOCIETE_ASK_FOR_SHIPPING_METHOD))
     {
     	print '<a href="'.$_SERVER['PHP_SELF'].'?action=setaskforshippingmet&value=0">';
     	print img_picto($langs->trans("Activated"),'switch_on');
    -
     }
     else
     {
    @@ -789,6 +843,24 @@ else
     print '</a></td>';
     print '</tr>';
     
    +// Disable Prospect/Customer thirdparty type
    +print '<tr class="oddeven">';
    +print '<td width="80%">'.$langs->trans("DisableProspectCustomerType").'</td>';
    +print '<td>&nbsp</td>';
    +print '<td align="center">';
    +if (!empty($conf->global->SOCIETE_DISABLE_PROSPECTSCUSTOMERS))
    +{
    +    print '<a href="'.$_SERVER['PHP_SELF'].'?action=setdisableprospectcustomer&value=0">';
    +    print img_picto($langs->trans("Activated"),'switch_on');
    +}
    +else
    +{
    +    print '<a href="'.$_SERVER['PHP_SELF'].'?action=setdisableprospectcustomer&value=1">';
    +    print img_picto($langs->trans("Disabled"),'switch_off');
    +}
    +print '</a></td>';
    +print '</tr>';
    +
     /*print '<tr class="oddeven">';
     print '<td width="80%">'.$langs->trans("OnSearchAndListGoOnCustomerOrSupplierCard").'</td>';
     print '<td>&nbsp</td>';
    @@ -829,13 +901,13 @@ print '</tr>';
     */
     
     print '</table>';
    +print '</div>';
     
     print '</form>';
     
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/societe/admin/societe_extrafields.php b/htdocs/societe/admin/societe_extrafields.php
    index 06dc57677f5..1ae10d10703 100644
    --- a/htdocs/societe/admin/societe_extrafields.php
    +++ b/htdocs/societe/admin/societe_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -28,9 +28,7 @@ require '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     
    -$langs->load("companies");
    -$langs->load("admin");
    -$langs->load("members");
    +$langs->loadLangs(array("companies", "admin", "members"));
     
     $extrafields = new ExtraFields($db);
     $form = new Form($db);
    @@ -82,7 +80,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -95,7 +93,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    +    print '<br><div id="newattrib"></div>';
         print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -108,12 +106,12 @@ if ($action == 'create')
     /* ************************************************************************** */
     if ($action == 'edit' && ! empty($attrname))
     {
    -    print "<br>";
    +    print '<br><div id="editattrib"></div>';
         print load_fiche_titre($langs->trans("FieldEdition", $attrname));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/societe/agenda.php b/htdocs/societe/agenda.php
    index ebd35a6575c..90206ca4567 100644
    --- a/htdocs/societe/agenda.php
    +++ b/htdocs/societe/agenda.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005      Brice Davoleau       <brice.davoleau@gmail.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2007      Patrick Raguin  		<patrick.raguin@gmail.com>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
    @@ -96,8 +96,6 @@ if (empty($reshook))
      *	View
      */
     
    -$contactstatic = new Contact($db);
    -
     $form = new Form($db);
     
     if ($socid > 0)
    @@ -190,7 +188,6 @@ if ($socid > 0)
         }
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/societe/ajax/company.php b/htdocs/societe/ajax/company.php
    index d62c8a445d6..2cfdce9c01c 100644
    --- a/htdocs/societe/ajax/company.php
    +++ b/htdocs/societe/ajax/company.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/societe/ajaxcompanies.php b/htdocs/societe/ajaxcompanies.php
    index 9d38a97a0a0..15ef4dd19e7 100644
    --- a/htdocs/societe/ajaxcompanies.php
    +++ b/htdocs/societe/ajaxcompanies.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2007-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2010      Cyrille de Lambert   <info@auguria.net>
      *
    diff --git a/htdocs/societe/ajaxcountries.php b/htdocs/societe/ajaxcountries.php
    index b9d1bf5fc8c..f67d01facce 100644
    --- a/htdocs/societe/ajaxcountries.php
    +++ b/htdocs/societe/ajaxcountries.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Laurent Destailleur  <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/societe/canvas/actions_card_common.class.php b/htdocs/societe/canvas/actions_card_common.class.php
    index 37082f4140b..ffcd7c7a00f 100644
    --- a/htdocs/societe/canvas/actions_card_common.class.php
    +++ b/htdocs/societe/canvas/actions_card_common.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -27,7 +27,11 @@
      */
     abstract class ActionsCardCommon
     {
    -    var $db;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +
         var $dirmodule;
         var $targetmodule;
         var $canvas;
    @@ -37,10 +41,17 @@ abstract class ActionsCardCommon
     	var $tpl = array();
     	//! Object container
     	var $object;
    -	//! Error string
    -	var $error;
    -	//! Error array
    -	var $errors=array();
    +
    +	/**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
    +
    +
    +	/**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
     
     
     	/**
    @@ -59,6 +70,7 @@ abstract class ActionsCardCommon
         	$this->object = $object;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Assign custom values for canvas (for example into this->tpl to be used by templates)
     	 *
    @@ -69,6 +81,7 @@ abstract class ActionsCardCommon
          */
         function assign_values(&$action, $id=0, $ref='')
         {
    +        // phpcs:enable
             global $conf, $langs, $user, $mysoc, $canvas;
             global $form, $formadmin, $formcompany;
     
    @@ -245,7 +258,6 @@ abstract class ActionsCardCommon
                         $this->tpl['localtax'].= '</td><tr>';
                     }
                 }
    -
             }
             else
             {
    @@ -358,6 +370,7 @@ abstract class ActionsCardCommon
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
         /**
          *  Assign POST values into object
          *
    @@ -366,6 +379,7 @@ abstract class ActionsCardCommon
          */
         private function assign_post($action)
         {
    +        // phpcs:enable
             global $langs, $mysoc;
     
             $this->object->id					=	$_POST["socid"];
    @@ -380,7 +394,7 @@ abstract class ActionsCardCommon
             $this->object->town					=	$_POST["town"];
             $this->object->country_id			=	$_POST["country_id"]?$_POST["country_id"]:$mysoc->country_id;
             $this->object->state_id		        =	$_POST["state_id"];
    -        $this->object->phone					=	$_POST["tel"];
    +        $this->object->phone				=	$_POST["tel"];
             $this->object->fax					=	$_POST["fax"];
             $this->object->email				=	$_POST["email"];
             $this->object->url					=	$_POST["url"];
    @@ -411,5 +425,4 @@ abstract class ActionsCardCommon
                 $this->object->country_label=	$tmparray['label'];
             }
         }
    -
     }
    diff --git a/htdocs/societe/canvas/company/actions_card_company.class.php b/htdocs/societe/canvas/company/actions_card_company.class.php
    index 419a5ecb73e..c8b1a296e24 100644
    --- a/htdocs/societe/canvas/company/actions_card_company.class.php
    +++ b/htdocs/societe/canvas/company/actions_card_company.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011	Regis Houssin        <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011	Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2011		Laurent Destailleur  <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -67,6 +67,7 @@ class ActionsCardCompany extends ActionsCardCommon
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Assign custom values for canvas (for example into this->tpl to be used by templates)
     	 *
    @@ -77,6 +78,7 @@ class ActionsCardCompany extends ActionsCardCommon
     	 */
     	function assign_values(&$action, $id=0, $ref='')
     	{
    +        // phpcs:enable
     		global $conf, $langs, $user, $mysoc;
     		global $form, $formadmin, $formcompany;
     
    @@ -179,7 +181,6 @@ class ActionsCardCompany extends ActionsCardCommon
     				{
     					$this->tpl['tva_intra'] = $s;
     				}
    -
     			}
     			else
     			{
    @@ -218,6 +219,4 @@ class ActionsCardCompany extends ActionsCardCommon
     	{
     		return restrictedArea($user,$features,$objectid,$dbtablename,$feature2,$dbt_keyfield,$dbt_select);
     	}
    -
     }
    -
    diff --git a/htdocs/societe/canvas/company/tpl/card_create.tpl.php b/htdocs/societe/canvas/company/tpl/card_create.tpl.php
    index 795acefb43c..5007fe32af4 100644
    --- a/htdocs/societe/canvas/company/tpl/card_create.tpl.php
    +++ b/htdocs/societe/canvas/company/tpl/card_create.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010      Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010      Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2012 Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/societe/canvas/company/tpl/card_edit.tpl.php b/htdocs/societe/canvas/company/tpl/card_edit.tpl.php
    index 6edf5a16b2e..f06b6aa5446 100644
    --- a/htdocs/societe/canvas/company/tpl/card_edit.tpl.php
    +++ b/htdocs/societe/canvas/company/tpl/card_edit.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010      Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010      Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2012 Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/societe/canvas/company/tpl/card_view.tpl.php b/htdocs/societe/canvas/company/tpl/card_view.tpl.php
    index 24ddfbaaaac..26cf6bb6787 100644
    --- a/htdocs/societe/canvas/company/tpl/card_view.tpl.php
    +++ b/htdocs/societe/canvas/company/tpl/card_view.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/societe/canvas/individual/actions_card_individual.class.php b/htdocs/societe/canvas/individual/actions_card_individual.class.php
    index 78064004e37..6107d8ac8b1 100644
    --- a/htdocs/societe/canvas/individual/actions_card_individual.class.php
    +++ b/htdocs/societe/canvas/individual/actions_card_individual.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011 Regis Houssin  <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011 Regis Houssin  <regis.houssin@inodbox.com>
      *
      * 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
    @@ -84,6 +84,7 @@ class ActionsCardIndividual extends ActionsCardCommon
     		return $return;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Assign custom values for canvas (for example into this->tpl to be used by templates)
     	 *
    @@ -94,6 +95,7 @@ class ActionsCardIndividual extends ActionsCardCommon
     	 */
     	function assign_values(&$action, $id=0, $ref='')
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     		global $form, $formcompany;
     
    @@ -134,6 +136,4 @@ class ActionsCardIndividual extends ActionsCardCommon
     	{
     		return restrictedArea($user,$features,$objectid,$dbtablename,$feature2,$dbt_keyfield,$dbt_select);
     	}
    -
     }
    -
    diff --git a/htdocs/societe/canvas/individual/tpl/card_create.tpl.php b/htdocs/societe/canvas/individual/tpl/card_create.tpl.php
    index 121422c520f..b1d02006f16 100644
    --- a/htdocs/societe/canvas/individual/tpl/card_create.tpl.php
    +++ b/htdocs/societe/canvas/individual/tpl/card_create.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011 Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011 Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2012 Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php b/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php
    index 11d6a0430ca..7319b394d56 100644
    --- a/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php
    +++ b/htdocs/societe/canvas/individual/tpl/card_edit.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010      Regis Houssin       <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010      Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2010-2012 Laurent Destailleur <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    diff --git a/htdocs/societe/canvas/individual/tpl/card_view.tpl.php b/htdocs/societe/canvas/individual/tpl/card_view.tpl.php
    index fd9b3487f50..18023d93978 100644
    --- a/htdocs/societe/canvas/individual/tpl/card_view.tpl.php
    +++ b/htdocs/societe/canvas/individual/tpl/card_view.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011 Regis Houssin <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php
    index 7fd461000ef..c6dd6266035 100644
    --- a/htdocs/societe/card.php
    +++ b/htdocs/societe/card.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2003       Brian Fraval            <brian@fraval.org>
      * Copyright (C) 2004-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2005       Eric Seigne             <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2017  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2008       Patrick Raguin          <patrick.raguin@auguria.net>
      * Copyright (C) 2010-2016  Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2011-2013  Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    @@ -12,6 +12,7 @@
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2018       Nicolas ZABOURI	    <info@inovea-conseil.com>
      * Copyright (C) 2018       Ferran Marcet		    <fmarcet@2byte.es.com>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -145,7 +146,7 @@ if (empty($reshook))
     				$object->client = $object->client | $soc_origin->client;
     				$object->fournisseur = $object->fournisseur | $soc_origin->fournisseur;
     				$listofproperties=array(
    -					'address', 'zip', 'town', 'state_id', 'country_id', 'phone', 'phone_pro', 'fax', 'email', 'skype', 'url', 'barcode',
    +					'address', 'zip', 'town', 'state_id', 'country_id', 'phone', 'phone_pro', 'fax', 'email', 'skype', 'twitter', 'facebook', 'url', 'barcode',
     					'idprof1', 'idprof2', 'idprof3', 'idprof4', 'idprof5', 'idprof6',
     					'tva_intra', 'effectif_id', 'forme_juridique', 'remise_percent', 'remise_supplier_percent', 'mode_reglement_supplier_id', 'cond_reglement_supplier_id', 'name_bis',
     					'stcomm_id', 'outstanding_limit', 'price_level', 'parent', 'default_lang', 'ref', 'ref_ext', 'import_key', 'fk_incoterms', 'fk_multicurrency',
    @@ -304,13 +305,13 @@ if (empty($reshook))
         if (GETPOST('getcustomercode'))
         {
             // We defined value code_client
    -        $_POST["code_client"]="Acompleter";
    +        $_POST["customer_code"]="Acompleter";
         }
     
         if (GETPOST('getsuppliercode'))
         {
             // We defined value code_fournisseur
    -        $_POST["code_fournisseur"]="Acompleter";
    +        $_POST["supplier_code"]="Acompleter";
         }
     
         if($action=='set_localtax1')
    @@ -371,7 +372,6 @@ if (empty($reshook))
             {
                 setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Supplier")), null, 'errors');
                 $error++;
    -
             }
     
             if (! $error)
    @@ -405,6 +405,8 @@ if (empty($reshook))
     	        $object->country_id				= GETPOST('country_id', 'int');
     	        $object->state_id				= GETPOST('state_id', 'int');
     	        $object->skype					= GETPOST('skype', 'alpha');
    +	        $object->twitter				= GETPOST('twitter', 'alpha');
    +	        $object->facebook				= GETPOST('facebook', 'alpha');
     	        $object->phone					= GETPOST('phone', 'alpha');
     	        $object->fax					= GETPOST('fax','alpha');
     	        $object->email					= trim(GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL));
    @@ -416,8 +418,8 @@ if (empty($reshook))
     	        $object->idprof5				= trim(GETPOST('idprof5', 'alpha'));
     	        $object->idprof6				= trim(GETPOST('idprof6', 'alpha'));
     	        $object->prefix_comm			= GETPOST('prefix_comm', 'alpha');
    -	        $object->code_client			= GETPOST('code_client', 'alpha');
    -	        $object->code_fournisseur		= GETPOST('code_fournisseur', 'alpha');
    +	        $object->code_client			= GETPOSTISSET('customer_code')?GETPOST('customer_code', 'alpha'):GETPOST('code_client', 'alpha');
    +	        $object->code_fournisseur		= GETPOSTISSET('supplier_code')?GETPOST('supplier_code', 'alpha'):GETPOST('code_fournisseur', 'alpha');
     	        $object->capital				= GETPOST('capital', 'alpha');
     	        $object->barcode				= GETPOST('barcode', 'alpha');
     
    @@ -946,19 +948,21 @@ else
             $object->client				= GETPOST('client')?GETPOST('client'):$object->client;
     
             if(empty($duplicate_code_error)) {
    -	        $object->code_client		= GETPOST('code_client', 'alpha');
    +	        $object->code_client		= GETPOST('customer_code', 'alpha');
     	        $object->fournisseur		= GETPOST('fournisseur')?GETPOST('fournisseur'):$object->fournisseur;
             }
     		else {
     			setEventMessages($langs->trans('NewCustomerSupplierCodeProposed'),'', 'warnings');
     		}
     
    -        $object->code_fournisseur	= GETPOST('code_fournisseur', 'alpha');
    +        $object->code_fournisseur	= GETPOST('supplier_code', 'alpha');
             $object->address			= GETPOST('address', 'alpha');
             $object->zip				= GETPOST('zipcode', 'alpha');
             $object->town				= GETPOST('town', 'alpha');
             $object->state_id			= GETPOST('state_id', 'int');
             $object->skype				= GETPOST('skype', 'alpha');
    +        $object->twitter			= GETPOST('twitter', 'alpha');
    +        $object->facebook			= GETPOST('facebook', 'alpha');
             $object->phone				= GETPOST('phone', 'alpha');
             $object->fax				= GETPOST('fax', 'alpha');
             $object->email				= GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL);
    @@ -1033,7 +1037,7 @@ else
             $linkback="";
             print load_fiche_titre($langs->trans("NewThirdParty"),$linkback,'title_companies.png');
     
    -        if (! empty($conf->use_javascript_ajax))
    +        if (! empty($conf->use_javascript_ajax) && ! empty($conf->global->THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION))
             {
                 print "\n".'<script type="text/javascript">';
                 print '$(document).ready(function () {
    @@ -1059,6 +1063,39 @@ else
                             	$("#TypeName").html(document.formsoc.LastName.value);
                             	document.formsoc.private.value=1;
                             });
    +
    +						init_customer_categ();
    +			  			$("#customerprospect").change(function() {
    +								init_customer_categ();
    +						});
    +						function init_customer_categ() {
    +								console.log("is customer or prospect = "+jQuery("#customerprospect").val());
    +								if (jQuery("#customerprospect").val() == 0 && (jQuery("#fournisseur").val() == 0 || '.(empty($conf->global->THIRDPARTY_CAN_HAVE_CATEGORY_EVEN_IF_NOT_CUSTOMER_PROSPECT_SUPPLIER)?'1':'0').'))
    +								{
    +									jQuery(".visibleifcustomer").hide();
    +								}
    +								else
    +								{
    +									jQuery(".visibleifcustomer").show();
    +								}
    +						}
    +
    +						init_supplier_categ();
    +			       		$("#fournisseur").change(function() {
    +							init_supplier_categ();
    +						});
    +						function init_supplier_categ() {
    +								console.log("is supplier = "+jQuery("#fournisseur").val());
    +								if (jQuery("#fournisseur").val() == 0)
    +								{
    +									jQuery(".visibleifsupplier").hide();
    +								}
    +								else
    +								{
    +									jQuery(".visibleifsupplier").show();
    +								}
    +						}
    +
                             $("#selectcountry_id").change(function() {
                             	document.formsoc.action.value="create";
                             	document.formsoc.submit();
    @@ -1112,7 +1149,7 @@ else
             }
             else
     		{
    -			print '<span id="TypeName" class="fieldrequired">'.fieldLabel('ThirdPartyName','name').'</span>';
    +			print '<span id="TypeName" class="fieldrequired">'.$form->editfieldkey('ThirdPartyName', 'name', '', $object, 0).'</span>';
             }
     	    print '</td><td'.(empty($conf->global->SOCIETE_USEPREFIX)?' colspan="3"':'').'>';
     	    print '<input type="text" class="minwidth300" maxlength="128" name="name" id="name" value="'.$object->name.'" autofocus="autofocus"></td>';
    @@ -1125,11 +1162,11 @@ else
             // If javascript on, we show option individual
             if ($conf->use_javascript_ajax)
             {
    -            print '<tr class="individualline"><td>'.fieldLabel('FirstName','firstname').'</td>';
    +            print '<tr class="individualline"><td>'.$form->editfieldkey('FirstName', 'firstname', '', $object, 0).'</td>';
     	        print '<td colspan="3"><input type="text" class="minwidth300" maxlength="128" name="firstname" id="firstname" value="'.$object->firstname.'"></td>';
                 print '</tr>';
                 // Title
    -            print '<tr class="individualline"><td>'.fieldLabel('UserTitle','civility_id').'</td><td colspan="3" class="maxwidthonsmartphone">';
    +            print '<tr class="individualline"><td>'.$form->editfieldkey('UserTitle', 'civility_id', '', $object, 0).'</td><td colspan="3" class="maxwidthonsmartphone">';
                 print $formcompany->select_civility($object->civility_id, 'civility_id', 'maxwidth100').'</td>';
                 print '</tr>';
             }
    @@ -1139,7 +1176,7 @@ else
     	    print '<td colspan="3"><input type="text" class="minwidth300" name="name_alias" id="name_alias_input" value="'.$object->name_alias.'"></td></tr>';
     
             // Prospect/Customer
    -        print '<tr><td class="titlefieldcreate">'.fieldLabel('ProspectCustomer','customerprospect',1).'</td>';
    +        print '<tr><td class="titlefieldcreate">'.$form->editfieldkey('ProspectCustomer', 'customerprospect', '', $object, 0, 'string', '', 1).'</td>';
     	    print '<td class="maxwidthonsmartphone">';
     	    $selected=GETPOST('client','int')!=''?GETPOST('client','int'):$object->client;
             print '<select class="flat" name="client" id="customerprospect">';
    @@ -1150,11 +1187,11 @@ else
             print '<option value="0"'.((string) $selected == '0'?' selected':'').'>'.$langs->trans('NorProspectNorCustomer').'</option>';
             print '</select></td>';
     
    -        print '<td>'.fieldLabel('CustomerCode','customer_code').'</td><td>';
    +        print '<td>'.$form->editfieldkey('CustomerCode', 'customer_code', '', $object, 0).'</td><td>';
             print '<table class="nobordernopadding"><tr><td>';
     		$tmpcode=$object->code_client;
             if (empty($tmpcode) && ! empty($modCodeClient->code_auto)) $tmpcode=$modCodeClient->getNextValue($object,0);
    -        print '<input type="text" name="code_client" id="customer_code" class="maxwidthonsmartphone" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
    +        print '<input type="text" name="customer_code" id="customer_code" class="maxwidthonsmartphone" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
             print '</td><td>';
             $s=$modCodeClient->getToolTip($langs,$object,0);
             print $form->textwithpicto('',$s,1);
    @@ -1166,7 +1203,7 @@ else
             {
                 // Supplier
                 print '<tr>';
    -            print '<td>'.fieldLabel('Supplier','fournisseur',1).'</td><td>';
    +            print '<td>'.$form->editfieldkey('Supplier', 'fournisseur', '', $object, 0, 'string', '', 1).'</td><td>';
                 $default = -1;
                 if (! empty($conf->global->THIRDPARTY_SUPPLIER_BY_DEFAULT)) $default=1;
                 print $form->selectyesno("fournisseur", (GETPOST('fournisseur','int')!=''?GETPOST('fournisseur','int'):(GETPOST("type",'alpha') == '' ? $default : $object->fournisseur)), 1, 0, (GETPOST("type",'alpha') == '' ? 1 : 0));
    @@ -1174,7 +1211,7 @@ else
                 print '<td>';
                 if (! empty($conf->fournisseur->enabled) && ! empty($user->rights->fournisseur->lire))
                 {
    -            	print fieldLabel('SupplierCode','supplier_code');
    +            	print $form->editfieldkey('SupplierCode', 'supplier_code', '', $object, 0);
                 }
                 print '</td><td>';
                 if (! empty($conf->fournisseur->enabled) && ! empty($user->rights->fournisseur->lire))
    @@ -1182,7 +1219,7 @@ else
     	            print '<table class="nobordernopadding"><tr><td>';
     	            $tmpcode=$object->code_fournisseur;
     	            if (empty($tmpcode) && ! empty($modCodeFournisseur->code_auto)) $tmpcode=$modCodeFournisseur->getNextValue($object,1);
    -	            print '<input type="text" name="code_fournisseur" id="supplier_code" class="maxwidthonsmartphone" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
    +	            print '<input type="text" name="supplier_code" id="supplier_code" class="maxwidthonsmartphone" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
     	            print '</td><td>';
     	            $s=$modCodeFournisseur->getToolTip($langs,$object,1);
     	            print $form->textwithpicto('',$s,1);
    @@ -1192,33 +1229,33 @@ else
             }
     
             // Status
    -        print '<tr><td>'.fieldLabel('Status','status').'</td><td colspan="3">';
    +        print '<tr><td>'.$form->editfieldkey('Status', 'status', '', $object, 0).'</td><td colspan="3">';
             print $form->selectarray('status', array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')),1);
             print '</td></tr>';
     
             // Barcode
             if (! empty($conf->barcode->enabled))
             {
    -            print '<tr><td>'.fieldLabel('Gencod','barcode').'</td>';
    +            print '<tr><td>'.$form->editfieldkey('Gencod', 'barcode', '', $object, 0).'</td>';
     	        print '<td colspan="3"><input type="text" name="barcode" id="barcode" value="'.$object->barcode.'">';
                 print '</td></tr>';
             }
     
             // Address
    -        print '<tr><td class="tdtop">'.fieldLabel('Address','address').'</td>';
    +        print '<tr><td class="tdtop">'.$form->editfieldkey('Address', 'address', '', $object, 0).'</td>';
     	    print '<td colspan="3"><textarea name="address" id="address" class="quatrevingtpercent" rows="'.ROWS_2.'" wrap="soft">';
             print $object->address;
             print '</textarea></td></tr>';
     
             // Zip / Town
    -        print '<tr><td>'.fieldLabel('Zip','zipcode').'</td><td>';
    +        print '<tr><td>'.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).'</td><td>';
             print $formcompany->select_ziptown($object->zip,'zipcode',array('town','selectcountry_id','state_id'), 0, 0, '', 'maxwidth100 quatrevingtpercent');
    -        print '</td><td>'.fieldLabel('Town','town').'</td><td>';
    +        print '</td><td>'.$form->editfieldkey('Town', 'town', '', $object, 0).'</td><td>';
             print $formcompany->select_ziptown($object->town,'town',array('zipcode','selectcountry_id','state_id'), 0, 0, '', 'maxwidth100 quatrevingtpercent');
             print '</td></tr>';
     
             // Country
    -        print '<tr><td>'.fieldLabel('Country','selectcountry_id').'</td><td colspan="3" class="maxwidthonsmartphone">';
    +        print '<tr><td>'.$form->editfieldkey('Country', 'selectcountry_id', '', $object, 0).'</td><td colspan="3" class="maxwidthonsmartphone">';
             print $form->select_country((GETPOST('country_id')!=''?GETPOST('country_id'):$object->country_id));
             if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
             print '</td></tr>';
    @@ -1228,11 +1265,11 @@ else
             {
                 if(!empty($conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT) && ($conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT == 1 || $conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT == 2))
                 {
    -                print '<tr><td>'.fieldLabel('Region-State','state_id').'</td><td colspan="3" class="maxwidthonsmartphone">';
    +                print '<tr><td>'.$form->editfieldkey('Region-State', 'state_id', '', $object, 0).'</td><td colspan="3" class="maxwidthonsmartphone">';
                 }
                 else
                 {
    -                print '<tr><td>'.fieldLabel('State','state_id').'</td><td colspan="3" class="maxwidthonsmartphone">';
    +                print '<tr><td>'.$form->editfieldkey('State', 'state_id', '', $object, 0).'</td><td colspan="3" class="maxwidthonsmartphone">';
                 }
     
                 if ($object->country_id) print $formcompany->select_state($object->state_id,$object->country_code);
    @@ -1240,23 +1277,44 @@ else
                 print '</td></tr>';
             }
     
    -        // Email web
    -        print '<tr><td>'.fieldLabel('EMail','email',$conf->global->SOCIETE_EMAIL_MANDATORY).'</td>';
    +        // Email / Web
    +        print '<tr><td>'.$form->editfieldkey('EMail', 'email', '', $object, 0, 'string', '', $conf->global->SOCIETE_EMAIL_MANDATORY).'</td>';
     	    print '<td colspan="3"><input type="text" name="email" id="email" value="'.$object->email.'"></td></tr>';
    -        print '<tr><td>'.fieldLabel('Web','url').'</td>';
    +        print '<tr><td>'.$form->editfieldkey('Web', 'url', '', $object, 0).'</td>';
     	    print '<td colspan="3"><input type="text" name="url" id="url" value="'.$object->url.'"></td></tr>';
     
    -        // Skype
    -        if (! empty($conf->skype->enabled))
    +        if (! empty($conf->socialnetworks->enabled))
             {
    -            print '<tr><td>'.fieldLabel('Skype','skype').'</td>';
    -	        print '<td colspan="3"><input type="text" name="skype" id="skype" value="'.$object->skype.'"></td></tr>';
    +        	// Skype
    +        	if (! empty($conf->global->SOCIALNETWORKS_SKYPE))
    +        	{
    +        		print '<tr><td>'.$form->editfieldkey('Skype', 'skype', '', $object, 0).'</td>';
    +				print '<td colspan="3">';
    +				print '<input type="text" name="skype" class="minwidth100" maxlength="80" id="skype" value="'.dol_escape_htmltag(GETPOSTISSET("skype")?GETPOST("skype",'alpha'):$object->skype).'">';
    +				print '</td></tr>';
    +        	}
    +        	// Twitter
    +        	if (! empty($conf->global->SOCIALNETWORKS_TWITTER))
    +        	{
    +        		print '<tr><td>'.$form->editfieldkey('Twitter', 'twitter', '', $object, 0).'</td>';
    +				print '<td colspan="3">';
    +				print '<input type="text" name="twitter" class="minwidth100" maxlength="80" id="twitter" value="'.dol_escape_htmltag(GETPOSTISSET("twitter")?GETPOST("twitter",'alpha'):$object->twitter).'">';
    +				print '</td></tr>';
    +        	}
    +        	// Facebook
    +        	if (! empty($conf->global->SOCIALNETWORKS_FACEBOOK))
    +        	{
    +	        	print '<tr><td>'.$form->editfieldkey('Facebook', 'facebook', '', $object, 0).'</td>';
    +				print '<td colspan="3">';
    +				print '<input type="text" name="facebook" class="minwidth100" maxlength="80" id="facebook" value="'.dol_escape_htmltag(GETPOSTISSET("facebook")?GETPOST("facebook",'alpha'):$object->facebook).'">';
    +				print '</td></tr>';
    +        	}
             }
     
             // Phone / Fax
    -        print '<tr><td>'.fieldLabel('Phone','phone').'</td>';
    +        print '<tr><td>'.$form->editfieldkey('Phone', 'phone', '', $object, 0).'</td>';
     	    print '<td><input type="text" name="phone" id="phone" class="maxwidth100onsmartphone quatrevingtpercent" value="'.$object->phone.'"></td>';
    -        print '<td>'.fieldLabel('Fax','fax').'</td>';
    +        print '<td>'.$form->editfieldkey('Fax', 'fax', '', $object, 0).'</td>';
     	    print '<td><input type="text" name="fax" id="fax" class="maxwidth100onsmartphone quatrevingtpercent" value="'.$object->fax.'"></td></tr>';
     
             // Prof ids
    @@ -1271,7 +1329,7 @@ else
                     if (($j % 2) == 0) print '<tr>';
     
                     $idprof_mandatory ='SOCIETE_IDPROF'.($i).'_MANDATORY';
    -                print '<td>'.fieldLabel($idprof,$key, (empty($conf->global->$idprof_mandatory)?0:1)).'</td><td>';
    +                print '<td>'.$form->editfieldkey($idprof, $key, '', $object, 0, 'string', '', (empty($conf->global->$idprof_mandatory)?0:1)).'</td><td>';
     
                     print $formcompany->get_input_id_prof($i, $key, $object->$key, $object->country_code);
                     print '</td>';
    @@ -1283,11 +1341,11 @@ else
             if ($j % 2 == 1) print '<td colspan="2"></td></tr>';
     
             // Vat is used
    -        print '<tr><td>'.fieldLabel('VATIsUsed','assujtva_value').'</td>';
    +        print '<tr><td>'.$form->editfieldkey('VATIsUsed', 'assujtva_value', '', $object, 0).'</td>';
             print '<td>';
             print $form->selectyesno('assujtva_value', GETPOSTISSET('assujtva_value')?GETPOST('assujtva_value','int'):1, 1);     // Assujeti par defaut en creation
             print '</td>';
    -        print '<td class="nowrap">'.fieldLabel('VATIntra','intra_vat').'</td>';
    +        print '<td class="nowrap">'.$form->editfieldkey('VATIntra', 'intra_vat', '', $object, 0).'</td>';
             print '<td class="nowrap">';
             $s = '<input type="text" class="flat maxwidthonsmartphone" name="tva_intra" id="intra_vat" maxlength="20" value="'.$object->tva_intra.'">';
     
    @@ -1325,7 +1383,6 @@ else
                 print '</td><td>'.$langs->transcountry("LocalTax2IsUsed",$mysoc->country_code).'</td><td>';
                 print $form->selectyesno('localtax2assuj_value',(isset($conf->global->THIRDPARTY_DEFAULT_USELOCALTAX2)?$conf->global->THIRDPARTY_DEFAULT_USELOCALTAX2:0),1);
                 print '</td></tr>';
    -
             }
             elseif($mysoc->localtax1_assuj=="1")
             {
    @@ -1341,18 +1398,18 @@ else
             }
     
             // Type - Size
    -        print '<tr><td>'.fieldLabel('ThirdPartyType','typent_id').'</td><td class="maxwidthonsmartphone">'."\n";
    +        print '<tr><td>'.$form->editfieldkey('ThirdPartyType', 'typent_id', '', $object, 0).'</td><td class="maxwidthonsmartphone">'."\n";
             $sortparam=(empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT); // NONE means we keep sort of original array, so we sort on position. ASC, means next function will sort on label.
             print $form->selectarray("typent_id", $formcompany->typent_array(0), $object->typent_id, 0, 0, 0, '', 0, 0, 0, $sortparam);
             if ($user->admin) print ' '.info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
             print '</td>';
    -        print '<td>'.fieldLabel('Staff','effectif_id').'</td><td class="maxwidthonsmartphone">';
    +        print '<td>'.$form->editfieldkey('Staff', 'effectif_id', '', $object, 0).'</td><td class="maxwidthonsmartphone">';
             print $form->selectarray("effectif_id", $formcompany->effectif_array(0), $object->effectif_id);
             if ($user->admin) print ' '.info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
             print '</td></tr>';
     
             // Legal Form
    -        print '<tr><td>'.fieldLabel('JuridicalStatus','forme_juridique_code').'</td>';
    +        print '<tr><td>'.$form->editfieldkey('JuridicalStatus', 'forme_juridique_code', '', $object, 0).'</td>';
             print '<td colspan="3" class="maxwidthonsmartphone">';
             if ($object->country_id)
             {
    @@ -1365,32 +1422,23 @@ else
             print '</td></tr>';
     
             // Capital
    -        print '<tr><td>'.fieldLabel('Capital','capital').'</td>';
    +        print '<tr><td>'.$form->editfieldkey('Capital', 'capital', '', $object, 0).'</td>';
     	    print '<td colspan="3"><input type="text" name="capital" id="capital" size="10" value="'.$object->capital.'"> ';
             print '<span class="hideonsmartphone">'.$langs->trans("Currency".$conf->currency).'</span></td></tr>';
     
             if (! empty($conf->global->MAIN_MULTILANGS))
             {
    -            print '<tr><td>'.fieldLabel('DefaultLang','default_lang').'</td><td colspan="3" class="maxwidthonsmartphone">'."\n";
    +            print '<tr><td>'.$form->editfieldkey('DefaultLang', 'default_lang', '', $object, 0).'</td><td colspan="3" class="maxwidthonsmartphone">'."\n";
                 print $formadmin->select_language(($object->default_lang?$object->default_lang:$conf->global->MAIN_LANG_DEFAULT),'default_lang',0,0,1,0,0,'maxwidth200onsmartphone');
                 print '</td>';
                 print '</tr>';
             }
     
    -		// Assign a Name
    -		print '<tr>';
    -		print '<td>'.fieldLabel('AllocateCommercial','commercial_id').'</td>';
    -		print '<td colspan="3" class="maxwidthonsmartphone">';
    -		$userlist = $form->select_dolusers('', '', 0, null, 0, '', '', 0, 0, 0, '', 0, '', '', 0, 1);
    -		$selected = (count(GETPOST('commercial', 'array')) > 0 ? GETPOST('commercial', 'array') : (GETPOST('commercial', 'int') > 0 ? array(GETPOST('commercial', 'int')) : (empty($user->rights->societe->client->voir)?array($user->id):array())));
    -		print $form->multiselectarray('commercial', $userlist, $selected, null, null, null, null, "90%");
    -		print '</td></tr>';
    -
     		// Incoterms
     		if (!empty($conf->incoterm->enabled))
     		{
     			print '<tr>';
    -			print '<td>'.fieldLabel('IncotermLabel','incoterm_id').'</td>';
    +			print '<td>'.$form->editfieldkey('IncotermLabel', 'incoterm_id', '', $object, 0).'</td>';
     	        print '<td colspan="3" class="maxwidthonsmartphone">';
     	        print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms)?$object->location_incoterms:''));
     			print '</td></tr>';
    @@ -1402,29 +1450,27 @@ else
     			$langs->load('categories');
     
     			// Customer
    -			if ($object->prospect || $object->client || (! $object->fournisseur && ! empty($conf->global->THIRDPARTY_CAN_HAVE_CATEGORY_EVEN_IF_NOT_CUSTOMER_PROSPECT_SUPPLIER))) {
    -				print '<tr><td class="toptd">' . fieldLabel('CustomersCategoriesShort', 'custcats') . '</td><td colspan="3">';
    -				$cate_arbo = $form->select_all_categories(Categorie::TYPE_CUSTOMER, null, 'parent', null, null, 1);
    -				print $form->multiselectarray('custcats', $cate_arbo, GETPOST('custcats', 'array'), null, null, null,
    -					null, "90%");
    -				print "</td></tr>";
    -			}
    +			//if ($object->prospect || $object->client || (! $object->fournisseur && ! empty($conf->global->THIRDPARTY_CAN_HAVE_CATEGORY_EVEN_IF_NOT_CUSTOMER_PROSPECT_SUPPLIER))) {
    +			print '<tr class="visibleifcustomer"><td class="toptd">' . $form->editfieldkey('CustomersProspectsCategoriesShort', 'custcats', '', $object, 0) . '</td><td colspan="3">';
    +			$cate_arbo = $form->select_all_categories(Categorie::TYPE_CUSTOMER, null, 'parent', null, null, 1);
    +			print $form->multiselectarray('custcats', $cate_arbo, GETPOST('custcats', 'array'), null, null, null, null, "90%");
    +			print "</td></tr>";
    +			//}
     
     			// Supplier
    -			if ($object->fournisseur) {
    -				print '<tr><td class="toptd">' . fieldLabel('SuppliersCategoriesShort', 'suppcats') . '</td><td colspan="3">';
    -				$cate_arbo = $form->select_all_categories(Categorie::TYPE_SUPPLIER, null, 'parent', null, null, 1);
    -				print $form->multiselectarray('suppcats', $cate_arbo, GETPOST('suppcats', 'array'), null, null, null,
    -					null, "90%");
    -				print "</td></tr>";
    -			}
    +			//if ($object->fournisseur) {
    +			print '<tr class="visibleifsupplier"><td class="toptd">' . $form->editfieldkey('SuppliersCategoriesShort', 'suppcats', '', $object, 0) . '</td><td colspan="3">';
    +			$cate_arbo = $form->select_all_categories(Categorie::TYPE_SUPPLIER, null, 'parent', null, null, 1);
    +			print $form->multiselectarray('suppcats', $cate_arbo, GETPOST('suppcats', 'array'), null, null, null, null, "90%");
    +			print "</td></tr>";
    +			//}
     		}
     
     		// Multicurrency
     		if (! empty($conf->multicurrency->enabled))
     		{
     			print '<tr>';
    -			print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
    +			print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>';
     	        print '<td colspan="3" class="maxwidthonsmartphone">';
     	        print $form->selectMultiCurrency(($object->multicurrency_code ? $object->multicurrency_code : $conf->currency), 'multicurrency_code', 1);
     			print '</td></tr>';
    @@ -1439,9 +1485,19 @@ else
             	print $object->showOptionals($extrafields,'edit');
             }
     
    +		// Assign a sale representative
    +		print '<tr>';
    +		print '<td>'.$form->editfieldkey('AllocateCommercial', 'commercial_id', '', $object, 0).'</td>';
    +		print '<td colspan="3" class="maxwidthonsmartphone">';
    +		$userlist = $form->select_dolusers('', '', 0, null, 0, '', '', 0, 0, 0, '', 0, '', '', 0, 1);
    +		// Note: If user has no right to "see all thirdparties", we for selection of sale representative to him, so after creation he can see the record.
    +		$selected = (count(GETPOST('commercial', 'array')) > 0 ? GETPOST('commercial', 'array') : (GETPOST('commercial', 'int') > 0 ? array(GETPOST('commercial', 'int')) : (empty($user->rights->societe->client->voir)?array($user->id):array())));
    +		print $form->multiselectarray('commercial', $userlist, $selected, null, null, null, null, "90%");
    +		print '</td></tr>';
    +
             // Ajout du logo
             print '<tr class="hideonsmartphone">';
    -        print '<td>'.fieldLabel('Logo','photoinput').'</td>';
    +        print '<td>'.$form->editfieldkey('Logo', 'photoinput', '', $object, 0).'</td>';
             print '<td colspan="3">';
             print '<input class="flat" type="file" name="photo" id="photoinput" />';
             print '</td>';
    @@ -1469,11 +1525,6 @@ else
         }
         elseif ($action == 'edit')
         {
    -        /*
    -         * Edition
    -         */
    -
    -
             //print load_fiche_titre($langs->trans("EditCompany"));
     
             if ($socid)
    @@ -1527,15 +1578,17 @@ else
                     $object->name					= GETPOST('name', 'alpha');
                     $object->prefix_comm			= GETPOST('prefix_comm', 'alpha');
                     $object->client					= GETPOST('client', 'int');
    -                $object->code_client			= GETPOST('code_client', 'alpha');
    +                $object->code_client			= GETPOST('customer_code', 'alpha');
                     $object->fournisseur			= GETPOST('fournisseur', 'int');
    -                $object->code_fournisseur		= GETPOST('code_fournisseur', 'alpha');
    +                $object->code_fournisseur		= GETPOST('supplier_code', 'alpha');
                     $object->address				= GETPOST('address', 'alpha');
                     $object->zip					= GETPOST('zipcode', 'alpha');
                     $object->town					= GETPOST('town', 'alpha');
                     $object->country_id				= GETPOST('country_id')?GETPOST('country_id', 'int'):$mysoc->country_id;
                     $object->state_id				= GETPOST('state_id', 'int');
                     $object->skype					= GETPOST('skype', 'alpha');
    +                $object->twitter				= GETPOST('twitter', 'alpha');
    +                $object->facebook				= GETPOST('facebook', 'alpha');
                     $object->phone					= GETPOST('phone', 'alpha');
                     $object->fax					= GETPOST('fax', 'alpha');
                     $object->email					= GETPOST('email', 'custom', 0, FILTER_SANITIZE_EMAIL);
    @@ -1591,8 +1644,10 @@ else
                 	$sub2=0;
                 }else{$sub2=1;}
     
    -            print "\n".'<script type="text/javascript">';
    -            print '$(document).ready(function () {
    +            if ($conf->use_javascript_ajax)
    +            {
    +            	print "\n".'<script type="text/javascript">';
    +            	print '$(document).ready(function () {
         			var val='.$sub.';
         			var val2='.$sub2.';
         			if("#localtax1assuj_value".value==undefined){
    @@ -1626,19 +1681,44 @@ else
         				}
         			});
     
    -               });';
    -            print '</script>'."\n";
    +				init_customer_categ();
    +	  			$("#customerprospect").change(function() {
    +					init_customer_categ();
    +				});
    +       			function init_customer_categ() {
    +					console.log("is customer or prospect = "+jQuery("#customerprospect").val());
    +					if (jQuery("#customerprospect").val() == 0 && (jQuery("#fournisseur").val() == 0 || '.(empty($conf->global->THIRDPARTY_CAN_HAVE_CATEGORY_EVEN_IF_NOT_CUSTOMER_PROSPECT_SUPPLIER)?'1':'0').'))
    +					{
    +						jQuery(".visibleifcustomer").hide();
    +					}
    +					else
    +					{
    +						jQuery(".visibleifcustomer").show();
    +					}
    +				}
     
    +				init_supplier_categ();
    +	  			$("#fournisseur").change(function() {
    +					init_supplier_categ();
    +				});
    +       			function init_supplier_categ() {
    +					console.log("is supplier = "+jQuery("#fournisseur").val());
    +					if (jQuery("#fournisseur").val() == 0)
    +					{
    +						jQuery(".visibleifsupplier").hide();
    +					}
    +					else
    +					{
    +						jQuery(".visibleifsupplier").show();
    +					}
    +				};
     
    -            if ($conf->use_javascript_ajax)
    -            {
    -                print "\n".'<script type="text/javascript" language="javascript">';
    -                print '$(document).ready(function () {
    -                			$("#selectcountry_id").change(function() {
    -                				document.formsoc.action.value="edit";
    -                				document.formsoc.submit();
    -                			});
    -                       })';
    +       			$("#selectcountry_id").change(function() {
    +       				document.formsoc.action.value="edit";
    +      				document.formsoc.submit();
    +        			});
    +
    +                })';
                     print '</script>'."\n";
                 }
     
    @@ -1664,7 +1744,7 @@ else
     			}
     
                 // Name
    -            print '<tr><td class="titlefieldcreate">'.fieldLabel('ThirdPartyName','name',1).'</td>';
    +            print '<tr><td class="titlefieldcreate">'.$form->editfieldkey('ThirdPartyName', 'name', '', $object, 0, 'string', '', 1).'</td>';
     	        print '<td colspan="3"><input type="text" class="minwidth300" maxlength="128" name="name" id="name" value="'.dol_escape_htmltag($object->name).'" autofocus="autofocus"></td></tr>';
     
     	        // Alias names (commercial, trademark or alias names)
    @@ -1674,7 +1754,7 @@ else
                 // Prefix
                 if (! empty($conf->global->SOCIETE_USEPREFIX))  // Old not used prefix field
                 {
    -                print '<tr><td>'.fieldLabel('Prefix','prefix').'</td><td colspan="3">';
    +                print '<tr><td>'.$form->editfieldkey('Prefix', 'prefix', '', $object, 0).'</td><td colspan="3">';
                     // It does not change the prefix mode using the auto numbering prefix
                     if (($prefixCustomerIsUsed || $prefixSupplierIsUsed) && $object->prefix_comm)
                     {
    @@ -1689,14 +1769,14 @@ else
                 }
     
                 // Prospect/Customer
    -            print '<tr><td>'.fieldLabel('ProspectCustomer','customerprospect',1).'</td>';
    +            print '<tr><td>'.$form->editfieldkey('ProspectCustomer', 'customerprospect', '', $object, 0, 'string', '', 1).'</td>';
     	        print '<td class="maxwidthonsmartphone"><select class="flat" name="client" id="customerprospect">';
                 if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) print '<option value="2"'.($object->client==2?' selected':'').'>'.$langs->trans('Prospect').'</option>';
                 if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) print '<option value="3"'.($object->client==3?' selected':'').'>'.$langs->trans('ProspectCustomer').'</option>';
                 if (empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) print '<option value="1"'.($object->client==1?' selected':'').'>'.$langs->trans('Customer').'</option>';
                 print '<option value="0"'.($object->client==0?' selected':'').'>'.$langs->trans('NorProspectNorCustomer').'</option>';
                 print '</select></td>';
    -            print '<td>'.fieldLabel('CustomerCode','customer_code').'</td><td>';
    +            print '<td>'.$form->editfieldkey('CustomerCode', 'customer_code', '', $object, 0).'</td><td>';
     
                 print '<table class="nobordernopadding"><tr><td>';
                 if ((!$object->code_client || $object->code_client == -1) && $modCodeClient->code_auto)
    @@ -1704,16 +1784,16 @@ else
                     $tmpcode=$object->code_client;
                     if (empty($tmpcode) && ! empty($object->oldcopy->code_client)) $tmpcode=$object->oldcopy->code_client; // When there is an error to update a thirdparty, the number for supplier and customer code is kept to old value.
                     if (empty($tmpcode) && ! empty($modCodeClient->code_auto)) $tmpcode=$modCodeClient->getNextValue($object,0);
    -                print '<input type="text" name="code_client" id="customer_code" size="16" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
    +                print '<input type="text" name="customer_code" id="customer_code" size="16" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
                 }
                 else if ($object->codeclient_modifiable())
                 {
    -            	print '<input type="text" name="code_client" id="customer_code" size="16" value="'.dol_escape_htmltag($object->code_client).'" maxlength="15">';
    +            	print '<input type="text" name="customer_code" id="customer_code" size="16" value="'.dol_escape_htmltag($object->code_client).'" maxlength="15">';
                 }
                 else
                 {
                     print $object->code_client;
    -                print '<input type="hidden" name="code_client" value="'.dol_escape_htmltag($object->code_client).'">';
    +                print '<input type="hidden" name="customer_code" value="'.dol_escape_htmltag($object->code_client).'">';
                 }
                 print '</td><td>';
                 $s=$modCodeClient->getToolTip($langs,$object,0);
    @@ -1727,13 +1807,13 @@ else
                 	|| (! empty($conf->supplier_proposal->enabled) && ! empty($user->rights->supplier_proposal->lire)))
                 {
                     print '<tr>';
    -                print '<td>'.fieldLabel('Supplier','fournisseur',1).'</td><td class="maxwidthonsmartphone">';
    +                print '<td>'.$form->editfieldkey('Supplier', 'fournisseur', '', $object, 0, 'string', '', 1).'</td><td class="maxwidthonsmartphone">';
                     print $form->selectyesno("fournisseur",$object->fournisseur,1);
                     print '</td>';
                     print '<td>';
                     if (! empty($conf->fournisseur->enabled) && ! empty($user->rights->fournisseur->lire))
                     {
    -                	print fieldLabel('SupplierCode','supplier_code');
    +                	print $form->editfieldkey('SupplierCode', 'supplier_code', '', $object, 0);
                     }
                     print '</td><td>';
                     if (! empty($conf->fournisseur->enabled) && ! empty($user->rights->fournisseur->lire))
    @@ -1744,16 +1824,16 @@ else
     	                    $tmpcode=$object->code_fournisseur;
     	                    if (empty($tmpcode) && ! empty($object->oldcopy->code_fournisseur)) $tmpcode=$object->oldcopy->code_fournisseur; // When there is an error to update a thirdparty, the number for supplier and customer code is kept to old value.
     	                    if (empty($tmpcode) && ! empty($modCodeFournisseur->code_auto)) $tmpcode=$modCodeFournisseur->getNextValue($object,1);
    -	                    print '<input type="text" name="code_fournisseur" id="supplier_code" size="16" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
    +	                    print '<input type="text" name="supplier_code" id="supplier_code" size="16" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
     	                }
     	                else if ($object->codefournisseur_modifiable())
     	                {
    -	                    print '<input type="text" name="code_fournisseur" id="supplier_code" size="16" value="'.$object->code_fournisseur.'" maxlength="15">';
    +	                    print '<input type="text" name="supplier_code" id="supplier_code" size="16" value="'.$object->code_fournisseur.'" maxlength="15">';
     	                }
     	                else
     	              {
     	                    print $object->code_fournisseur;
    -	                    print '<input type="hidden" name="code_fournisseur" value="'.$object->code_fournisseur.'">';
    +	                    print '<input type="hidden" name="supplier_code" value="'.$object->code_fournisseur.'">';
     	                }
     	                print '</td><td>';
     	                $s=$modCodeFournisseur->getToolTip($langs,$object,1);
    @@ -1766,31 +1846,31 @@ else
                 // Barcode
                 if (! empty($conf->barcode->enabled))
                 {
    -                print '<tr><td class="tdtop">'.fieldLabel('Gencod','barcode').'</td>';
    +                print '<tr><td class="tdtop">'.$form->editfieldkey('Gencod', 'barcode', '', $object, 0).'</td>';
     	            print '<td colspan="3"><input type="text" name="barcode" id="barcode" value="'.$object->barcode.'">';
                     print '</td></tr>';
                 }
     
                 // Status
    -            print '<tr><td>'.fieldLabel('Status','status').'</td><td colspan="3">';
    +            print '<tr><td>'.$form->editfieldkey('Status', 'status', '', $object, 0).'</td><td colspan="3">';
                 print $form->selectarray('status', array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')),$object->status);
                 print '</td></tr>';
     
                 // Address
    -            print '<tr><td class="tdtop">'.fieldLabel('Address','address').'</td>';
    +            print '<tr><td class="tdtop">'.$form->editfieldkey('Address', 'address', '', $object, 0).'</td>';
     	        print '<td colspan="3"><textarea name="address" id="address" class="quatrevingtpercent" rows="3" wrap="soft">';
                 print $object->address;
                 print '</textarea></td></tr>';
     
                 // Zip / Town
    -            print '<tr><td>'.fieldLabel('Zip','zipcode').'</td><td>';
    +            print '<tr><td>'.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).'</td><td>';
                 print $formcompany->select_ziptown($object->zip, 'zipcode', array('town', 'selectcountry_id', 'state_id'), 0, 0, '', 'maxwidth50onsmartphone');
    -            print '</td><td>'.fieldLabel('Town','town').'</td><td>';
    +            print '</td><td>'.$form->editfieldkey('Town', 'town', '', $object, 0).'</td><td>';
                 print $formcompany->select_ziptown($object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id'));
                 print '</td></tr>';
     
                 // Country
    -            print '<tr><td>'.fieldLabel('Country','selectcounty_id').'</td><td colspan="3">';
    +            print '<tr><td>'.$form->editfieldkey('Country', 'selectcounty_id', '', $object, 0).'</td><td colspan="3">';
                 print $form->select_country((GETPOST('country_id')!=''?GETPOST('country_id'):$object->country_id),'country_id');
                 if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
                 print '</td></tr>';
    @@ -1800,11 +1880,11 @@ else
                 {
                     if(!empty($conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT) && ($conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT == 1 || $conf->global->MAIN_SHOW_REGION_IN_STATE_SELECT == 2))
                     {
    -                    print '<tr><td>'.fieldLabel('Region-State','state_id').'</td><td colspan="3">';
    +                    print '<tr><td>'.$form->editfieldkey('Region-State', 'state_id', '', $object, 0).'</td><td colspan="3">';
                     }
                     else
                     {
    -                    print '<tr><td>'.fieldLabel('State','state_id').'</td><td colspan="3">';
    +                    print '<tr><td>'.$form->editfieldkey('State', 'state_id', '', $object, 0).'</td><td colspan="3">';
                     }
     
                     print $formcompany->select_state($object->state_id,$object->country_code);
    @@ -1812,22 +1892,37 @@ else
                 }
     
                 // EMail / Web
    -            print '<tr><td>'.fieldLabel('EMail','email',(! empty($conf->global->SOCIETE_EMAIL_MANDATORY))).'</td>';
    +            print '<tr><td>'.$form->editfieldkey('EMail', 'email', '', $object, 0, 'string', '', (! empty($conf->global->SOCIETE_EMAIL_MANDATORY))).'</td>';
     	        print '<td colspan="3"><input type="text" name="email" id="email" size="32" value="'.$object->email.'"></td></tr>';
    -            print '<tr><td>'.fieldLabel('Web','url').'</td>';
    +            print '<tr><td>'.$form->editfieldkey('Web', 'url', '', $object, 0).'</td>';
     	        print '<td colspan="3"><input type="text" name="url" id="url" size="32" value="'.$object->url.'"></td></tr>';
     
    -            // Skype
    -            if (! empty($conf->skype->enabled))
    -            {
    -                print '<tr><td>'.fieldLabel('Skype','skype').'</td>';
    -	            print '<td colspan="3"><input type="text" name="skype" id="skype" size="32" value="'.$object->skype.'"></td></tr>';
    -            }
    +	        if (! empty($conf->socialnetworks->enabled))
    +	        {
    +	        	// Skype
    +	        	if (! empty($conf->global->SOCIALNETWORKS_SKYPE))
    +	        	{
    +	        		print '<tr><td>'.$form->editfieldkey('Skype', 'skype', '', $object, 0).'</td>';
    +	        		print '<td colspan="3"><input type="text" name="skype" id="skype" value="'.$object->skype.'"></td></tr>';
    +	        	}
    +	        	// Twitter
    +	        	if (! empty($conf->global->SOCIALNETWORKS_TWITTER))
    +	        	{
    +	        		print '<tr><td>'.$form->editfieldkey('Twitter', 'twitter', '', $object, 0).'</td>';
    +	        		print '<td colspan="3"><input type="text" name="twitter" id="twitter" value="'.$object->twitter.'"></td></tr>';
    +	        	}
    +	        	// Facebook
    +	        	if (! empty($conf->global->SOCIALNETWORKS_FACEBOOK))
    +	        	{
    +	        		print '<tr><td>'.$form->editfieldkey('Facebook', 'facebook', '', $object, 0).'</td>';
    +	        		print '<td colspan="3"><input type="text" name="facebook" id="facebook" value="'.$object->facebook.'"></td></tr>';
    +	        	}
    +	        }
     
                 // Phone / Fax
    -            print '<tr><td>'.fieldLabel('Phone','phone').'</td>';
    +            print '<tr><td>'.$form->editfieldkey('Phone', 'phone', '', $object, 0).'</td>';
     	        print '<td><input type="text" name="phone" id="phone" class="maxwidth100onsmartphone quatrevingtpercent" value="'.$object->phone.'"></td>';
    -            print '<td>'.fieldLabel('Fax','fax').'</td>';
    +            print '<td>'.$form->editfieldkey('Fax', 'fax', '', $object, 0).'</td>';
     	        print '<td><input type="text" name="fax" id="fax" class="maxwidth100onsmartphone quatrevingtpercent" value="'.$object->fax.'"></td></tr>';
     
                 // Prof ids
    @@ -1842,12 +1937,8 @@ else
     	                if (($j % 2) == 0) print '<tr>';
     
     	                $idprof_mandatory ='SOCIETE_IDPROF'.($i).'_MANDATORY';
    -	                if (empty($conf->global->$idprof_mandatory) || ! $object->isACompany())
    -	                    print '<td>'.fieldLabel($idprof,$key).'</td><td>';
    -                    else
    -	                    print '<td><span class="fieldrequired">'.fieldLabel($idprof,$key).'</td><td>';
    -
    -	                print $formcompany->get_input_id_prof($i,$key,$object->$key,$object->country_code);
    +	                print '<td>'.$form->editfieldkey($idprof, $key, '', $object, 0, 'string', '', ! (empty($conf->global->$idprof_mandatory) || ! $object->isACompany())).'</td><td>';
    +	                print $formcompany->get_input_id_prof($i, $key, $object->$key, $object->country_code);
                         print '</td>';
                         if (($j % 2) == 1) print '</tr>';
                         $j++;
    @@ -1857,7 +1948,7 @@ else
                 if ($j % 2 == 1) print '<td colspan="2"></td></tr>';
     
                 // VAT is used
    -            print '<tr><td>'.fieldLabel('VATIsUsed','assujtva_value').'</td><td colspan="3">';
    +            print '<tr><td>'.$form->editfieldkey('VATIsUsed', 'assujtva_value', '', $object, 0).'</td><td colspan="3">';
                 print $form->selectyesno('assujtva_value',$object->tva_assuj,1);
                 print '</td></tr>';
     
    @@ -1865,7 +1956,7 @@ else
                 //TODO: Place into a function to control showing by country or study better option
                 if($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj=="1")
                 {
    -                print '<tr><td>'.fieldLabel($langs->transcountry("LocalTax1IsUsed",$mysoc->country_code),'localtax1assuj_value').'</td><td>';
    +                print '<tr><td>'.$form->editfieldkey($langs->transcountry("LocalTax1IsUsed",$mysoc->country_code), 'localtax1assuj_value', '', $object, 0).'</td><td>';
                     print $form->selectyesno('localtax1assuj_value',$object->localtax1_assuj,1);
                     if(! isOnlyOneLocalTax(1))
                     {
    @@ -1875,7 +1966,7 @@ else
                     }
                     print '</td>';
     
    -                print '<td>'.fieldLabel($langs->transcountry("LocalTax2IsUsed",$mysoc->country_code),'localtax2assuj_value').'</td><td>';
    +                print '<td>'.$form->editfieldkey($langs->transcountry("LocalTax2IsUsed",$mysoc->country_code), 'localtax2assuj_value', '', $object, 0).'</td><td>';
                     print $form->selectyesno('localtax2assuj_value',$object->localtax2_assuj,1);
                     if  (! isOnlyOneLocalTax(2))
                     {
    @@ -1884,11 +1975,10 @@ else
                         print '</span>';
                     }
                     print '</td></tr>';
    -
                 }
                 elseif($mysoc->localtax1_assuj=="1" && $mysoc->localtax2_assuj!="1")
                 {
    -                print '<tr><td>'.fieldLabel($langs->transcountry("LocalTax1IsUsed",$mysoc->country_code),'localtax1assuj_value').'</td><td colspan="3">';
    +                print '<tr><td>'.$form->editfieldkey($langs->transcountry("LocalTax1IsUsed",$mysoc->country_code), 'localtax1assuj_value', '', $object, 0).'</td><td colspan="3">';
                     print $form->selectyesno('localtax1assuj_value',$object->localtax1_assuj,1);
                     if(! isOnlyOneLocalTax(1))
                     {
    @@ -1897,11 +1987,10 @@ else
                         print '</span>';
                     }
                     print '</td></tr>';
    -
                 }
                 elseif($mysoc->localtax2_assuj=="1" && $mysoc->localtax1_assuj!="1")
                 {
    -                print '<tr><td>'.fieldLabel($langs->transcountry("LocalTax2IsUsed",$mysoc->country_code),'localtax2assuj_value').'</td><td colspan="3">';
    +                print '<tr><td>'.$form->editfieldkey($langs->transcountry("LocalTax2IsUsed",$mysoc->country_code), 'localtax2assuj_value', '', $object, 0).'</td><td colspan="3">';
                     print $form->selectyesno('localtax2assuj_value',$object->localtax2_assuj,1);
                     if(! isOnlyOneLocalTax(2))
                     {
    @@ -1913,7 +2002,7 @@ else
                 }
     
                 // VAT Code
    -            print '<tr><td>'.fieldLabel('VATIntra','intra_vat').'</td>';
    +            print '<tr><td>'.$form->editfieldkey('VATIntra', 'intra_vat', '', $object, 0).'</td>';
                 print '<td colspan="3">';
                 $s ='<input type="text" class="flat maxwidthonsmartphone" name="tva_intra" id="intra_vat" maxlength="20" value="'.$object->tva_intra.'">';
     
    @@ -1943,84 +2032,80 @@ else
                 print '</tr>';
     
                 // Type - Size
    -            print '<tr><td>'.fieldLabel('ThirdPartyType','typent_id').'</td><td class="maxwidthonsmartphone">';
    +            print '<tr><td>'.$form->editfieldkey('ThirdPartyType', 'typent_id', '', $object, 0).'</td><td class="maxwidthonsmartphone">';
                 print $form->selectarray("typent_id",$formcompany->typent_array(0), $object->typent_id, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT));
                 if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
                 print '</td>';
    -            print '<td>'.fieldLabel('Staff','effectif_id').'</td><td class="maxwidthonsmartphone">';
    +            print '<td>'.$form->editfieldkey('Staff', 'effectif_id', '', $object, 0).'</td><td class="maxwidthonsmartphone">';
                 print $form->selectarray("effectif_id",$formcompany->effectif_array(0), $object->effectif_id);
                 if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
                 print '</td></tr>';
     
                 // Juridical type
    -            print '<tr><td>'.fieldLabel('JuridicalStatus','forme_juridique_code').'</td><td class="maxwidthonsmartphone" colspan="3">';
    +            print '<tr><td>'.$form->editfieldkey('JuridicalStatus', 'forme_juridique_code', '', $object, 0).'</td><td class="maxwidthonsmartphone" colspan="3">';
                 print $formcompany->select_juridicalstatus($object->forme_juridique_code, $object->country_code, '', 'forme_juridique_code');
                 print '</td></tr>';
     
                 // Capital
    -            print '<tr><td>'.fieldLabel('Capital','capital').'</td>';
    +            print '<tr><td>'.$form->editfieldkey('Capital', 'capital', '', $object, 0).'</td>';
     	        print '<td colspan="3"><input type="text" name="capital" id="capital" size="10" value="';
     	        print $object->capital != '' ? dol_escape_htmltag(price($object->capital)) : '';
     	        print '"> <font class="hideonsmartphone">'.$langs->trans("Currency".$conf->currency).'</font></td></tr>';
     
    -			// Assign a Name
    -            print '<tr>';
    -            print '<td>'.fieldLabel('AllocateCommercial','commercial_id').'</td>';
    -            print '<td colspan="3" class="maxwidthonsmartphone">';
    -			$userlist = $form->select_dolusers('', '', 0, null, 0, '', '', 0, 0, 0, '', 0, '', '', 0, 1);
    -			$arrayselected = GETPOST('commercial', 'array');
    -			if (empty($arrayselected)) $arrayselected = $object->getSalesRepresentatives($user, 1);
    -            print $form->multiselectarray('commercial', $userlist, $arrayselected, null, null, null, null, "90%");
    -            print '</td></tr>';
    -
                 // Default language
                 if (! empty($conf->global->MAIN_MULTILANGS))
                 {
    -                print '<tr><td>'.fieldLabel('DefaultLang','default_lang').'</td><td colspan="3">'."\n";
    +                print '<tr><td>'.$form->editfieldkey('DefaultLang', 'default_lang', '', $object, 0).'</td><td colspan="3">'."\n";
                     print $formadmin->select_language($object->default_lang,'default_lang',0,0,1);
                     print '</td>';
                     print '</tr>';
                 }
     
    +            // Incoterms
    +            if (!empty($conf->incoterm->enabled))
    +            {
    +            	print '<tr>';
    +      				print '<td>'.$form->editfieldkey('IncotermLabel', 'incoterm_id', '', $object, 0).'</td>';
    +            	print '<td colspan="3" class="maxwidthonsmartphone">';
    +            	print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms)?$object->location_incoterms:''));
    +            	print '</td></tr>';
    +            }
    +
     			// Categories
     			if (! empty($conf->categorie->enabled)  && ! empty($user->rights->categorie->lire))
     			{
     				// Customer
    -				if ($object->prospect || $object->client || (! $object->fournisseur && ! empty($conf->global->THIRDPARTY_CAN_HAVE_CATEGORY_EVEN_IF_NOT_CUSTOMER_PROSPECT_SUPPLIER))) {
    -					print '<tr><td>' . fieldLabel('CustomersCategoriesShort', 'custcats') . '</td>';
    -					print '<td colspan="3">';
    -					$cate_arbo = $form->select_all_categories(Categorie::TYPE_CUSTOMER, null, null, null, null, 1);
    -					$c = new Categorie($db);
    -					$cats = $c->containing($object->id, Categorie::TYPE_CUSTOMER);
    -					$arrayselected=array();
    -					foreach ($cats as $cat) {
    -						$arrayselected[] = $cat->id;
    -					}
    -					print $form->multiselectarray('custcats', $cate_arbo, $arrayselected, '', 0, '', 0, '90%');
    -					print "</td></tr>";
    +				print '<tr class="visibleifcustomer"><td>' . $form->editfieldkey('CustomersCategoriesShort', 'custcats', '', $object, 0) . '</td>';
    +				print '<td colspan="3">';
    +				$cate_arbo = $form->select_all_categories(Categorie::TYPE_CUSTOMER, null, null, null, null, 1);
    +				$c = new Categorie($db);
    +				$cats = $c->containing($object->id, Categorie::TYPE_CUSTOMER);
    +				$arrayselected=array();
    +				foreach ($cats as $cat) {
    +					$arrayselected[] = $cat->id;
     				}
    +				print $form->multiselectarray('custcats', $cate_arbo, $arrayselected, '', 0, '', 0, '90%');
    +				print "</td></tr>";
     
     				// Supplier
    -				if ($object->fournisseur) {
    -					print '<tr><td>' . fieldLabel('SuppliersCategoriesShort', 'suppcats') . '</td>';
    -					print '<td colspan="3">';
    -					$cate_arbo = $form->select_all_categories(Categorie::TYPE_SUPPLIER, null, null, null, null, 1);
    -					$c = new Categorie($db);
    -					$cats = $c->containing($object->id, Categorie::TYPE_SUPPLIER);
    -					$arrayselected=array();
    -					foreach ($cats as $cat) {
    -						$arrayselected[] = $cat->id;
    -					}
    -					print $form->multiselectarray('suppcats', $cate_arbo, $arrayselected, '', 0, '', 0, '90%');
    -					print "</td></tr>";
    +				print '<tr class="visibleifsupplier"><td>' . $form->editfieldkey('SuppliersCategoriesShort', 'suppcats', '', $object, 0) . '</td>';
    +				print '<td colspan="3">';
    +				$cate_arbo = $form->select_all_categories(Categorie::TYPE_SUPPLIER, null, null, null, null, 1);
    +				$c = new Categorie($db);
    +				$cats = $c->containing($object->id, Categorie::TYPE_SUPPLIER);
    +				$arrayselected=array();
    +				foreach ($cats as $cat) {
    +					$arrayselected[] = $cat->id;
     				}
    +				print $form->multiselectarray('suppcats', $cate_arbo, $arrayselected, '', 0, '', 0, '90%');
    +				print "</td></tr>";
     			}
     
     			// Multicurrency
     			if (! empty($conf->multicurrency->enabled))
     			{
     				print '<tr>';
    -				print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
    +				print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>';
     		        print '<td colspan="3" class="maxwidthonsmartphone">';
     		        print $form->selectMultiCurrency(($object->multicurrency_code ? $object->multicurrency_code : $conf->currency), 'multicurrency_code', 1);
     				print '</td></tr>';
    @@ -2037,25 +2122,15 @@ else
     
                 // Webservices url/key
                 if (!empty($conf->syncsupplierwebservices->enabled)) {
    -                print '<tr><td>'.fieldLabel('WebServiceURL','webservices_url').'</td>';
    +                print '<tr><td>'.$form->editfieldkey('WebServiceURL', 'webservices_url', '', $object, 0).'</td>';
                     print '<td><input type="text" name="webservices_url" id="webservices_url" size="32" value="'.$object->webservices_url.'"></td>';
    -                print '<td>'.fieldLabel('WebServiceKey','webservices_key').'</td>';
    +                print '<td>'.$form->editfieldkey('WebServiceKey', 'webservices_key', '', $object, 0).'</td>';
                     print '<td><input type="text" name="webservices_key" id="webservices_key" size="32" value="'.$object->webservices_key.'"></td></tr>';
                 }
     
    -			// Incoterms
    -			if (!empty($conf->incoterm->enabled))
    -			{
    -				print '<tr>';
    -				print '<td>'.fieldLabel('IncotermLabel','incoterm_id').'</td>';
    -	            print '<td colspan="3" class="maxwidthonsmartphone">';
    -	            print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms)?$object->location_incoterms:''));
    -				print '</td></tr>';
    -			}
    -
                 // Logo
                 print '<tr class="hideonsmartphone">';
    -            print '<td>'.fieldLabel('Logo','photoinput').'</td>';
    +            print '<td>'.$form->editfieldkey('Logo', 'photoinput', '', $object, 0).'</td>';
                 print '<td colspan="3">';
                 if ($object->logo) print $form->showphoto('societe',$object);
                 $caneditfield=1;
    @@ -2071,10 +2146,20 @@ else
                 print '</td>';
                 print '</tr>';
     
    +            // Assign sale representative
    +            print '<tr>';
    +            print '<td>'.$form->editfieldkey('AllocateCommercial', 'commercial_id', '', $object, 0).'</td>';
    +            print '<td colspan="3" class="maxwidthonsmartphone">';
    +            $userlist = $form->select_dolusers('', '', 0, null, 0, '', '', 0, 0, 0, '', 0, '', '', 0, 1);
    +            $arrayselected = GETPOST('commercial', 'array');
    +            if (empty($arrayselected)) $arrayselected = $object->getSalesRepresentatives($user, 1);
    +            print $form->multiselectarray('commercial', $userlist, $arrayselected, null, null, null, null, "90%");
    +            print '</td></tr>';
    +
                 print '</table>';
                 print '</div>';
     
    -	        dol_fiche_end();
    +	          dol_fiche_end();
     
                 print '<div align="center">';
                 print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
    @@ -2295,7 +2380,6 @@ else
     			            print '<td>'.$object->localtax1_value.'</td>';
     			        }
     			        print '</tr></form>';
    -
     			    }
     			}
     			elseif($mysoc->localtax2_assuj=="1" && $mysoc->localtax1_assuj!="1")
    @@ -2318,12 +2402,11 @@ else
     			            print '<td>'.$object->localtax2_value.'</td>';
     			        }
     			        print '</tr></form>';
    -
     			    }
     			}
             }
     
    -        // VAT Code
    +        // Sale tax code (VAT code)
             print '<tr>';
     		print '<td class="nowrap">'.$langs->trans('VATIntra').'</td><td>';
             if ($object->tva_intra)
    @@ -2332,7 +2415,7 @@ else
                 $s.=$object->tva_intra;
                 $s.='<input type="hidden" id="tva_intra" name="tva_intra" maxlength="20" value="'.$object->tva_intra.'">';
     
    -            if (empty($conf->global->MAIN_DISABLEVATCHECK))
    +            if (empty($conf->global->MAIN_DISABLEVATCHECK) && isInEEC($object))
                 {
                     $s.=' &nbsp; ';
     
    @@ -2418,34 +2501,34 @@ else
                 print '</td></tr>';
             }
     
    -		// Incoterms
    -		if (!empty($conf->incoterm->enabled))
    -		{
    -			print '<tr><td>';
    -            print '<table width="100%" class="nobordernopadding"><tr><td>';
    -            print $langs->trans('IncotermLabel');
    -            print '<td><td align="right">';
    -            if ($user->rights->societe->creer) print '<a href="'.DOL_URL_ROOT.'/societe/card.php?socid='.$object->id.'&action=editincoterm">'.img_edit('',1).'</a>';
    -            else print '&nbsp;';
    -            print '</td></tr></table>';
    -            print '</td>';
    -            print '<td colspan="3">';
    -			if ($action != 'editincoterm')
    -			{
    -				print $form->textwithpicto($object->display_incoterms(), $object->libelle_incoterms, 1);
    -			}
    -			else
    -			{
    -				print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms)?$object->location_incoterms:''), $_SERVER['PHP_SELF'].'?socid='.$object->id);
    -			}
    -            print '</td></tr>';
    -		}
    +        // Incoterms
    +        if (!empty($conf->incoterm->enabled))
    +        {
    +        	print '<tr><td>';
    +        	print '<table width="100%" class="nobordernopadding"><tr><td>';
    +        	print $langs->trans('IncotermLabel');
    +        	print '<td><td align="right">';
    +        	if ($user->rights->societe->creer) print '<a href="'.DOL_URL_ROOT.'/societe/card.php?socid='.$object->id.'&action=editincoterm">'.img_edit('',1).'</a>';
    +        	else print '&nbsp;';
    +        	print '</td></tr></table>';
    +        	print '</td>';
    +        	print '<td colspan="3">';
    +        	if ($action != 'editincoterm')
    +        	{
    +        		print $form->textwithpicto($object->display_incoterms(), $object->libelle_incoterms, 1);
    +        	}
    +        	else
    +        	{
    +        		print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms)?$object->location_incoterms:''), $_SERVER['PHP_SELF'].'?socid='.$object->id);
    +        	}
    +        	print '</td></tr>';
    +        }
     
     		// Multicurrency
     		if (! empty($conf->multicurrency->enabled))
     		{
     			print '<tr>';
    -			print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
    +			print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>';
     	        print '<td>';
     	        print !empty($object->multicurrency_code) ? currency_name($object->multicurrency_code,1) : '';
     			print '</td></tr>';
    @@ -2547,7 +2630,7 @@ else
     		        else
     				{
     		        	$langs->load("mails");
    -		       		print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans('SendMail').'</a></div>';
    +		       		print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans('SendMail').'</a></div>';
     		        }
     
     		        if ($user->rights->societe->creer)
    @@ -2644,11 +2727,9 @@ else
     		$trackid = 'thi'.$object->id;
     
     		include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
    -
         }
     }
     
    -
     // End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/societe/checkvat/checkVatPopup.php b/htdocs/societe/checkvat/checkVatPopup.php
    index f1e56d4a359..0c125ae3b4c 100644
    --- a/htdocs/societe/checkvat/checkVatPopup.php
    +++ b/htdocs/societe/checkvat/checkVatPopup.php
    @@ -21,7 +21,7 @@
      *		\brief      Popup screen to validate VAT
      */
     
    -require ("../../main.inc.php");
    +require "../../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once NUSOAP_PATH.'/nusoap.php';
     
    @@ -57,7 +57,7 @@ else
     	$vatNumber = preg_replace('/\^\w/', '', $vatNumber);
     	$countryCode=substr($vatNumber,0,2);
     	$vatNumber=substr($vatNumber,2);
    -	
    +
     	print '<b>'.$langs->trans("Country").'</b>: '.$countryCode.'<br>';
     	print '<b>'.$langs->trans("VATIntraShort").'</b>: '.$vatNumber.'<br>';
     	print '<br>';
    @@ -174,6 +174,6 @@ if ($messagetoshow)
     	print nl2br($messagetoshow);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/societe/class/address.class.php b/htdocs/societe/class/address.class.php
    index 43e46008910..b381e7cf8a2 100644
    --- a/htdocs/societe/class/address.class.php
    +++ b/htdocs/societe/class/address.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -33,12 +33,26 @@ class Address
     {
     	protected $db;
     
    +	/**
    +	 * @var int ID
    +	 */
     	public $id;
    +
     	public $type;
    -	public $label;
    +
    +	/**
    +     * @var string Address label
    +     */
    +    public $label;
    +
     	public $socid;
     	public $name;
    +
    +	/**
    +	 * @var string Address
    +	 */
     	public $address;
    +
     	public $zip;
     	public $town;
     	public $country_id;
    @@ -124,7 +138,6 @@ class Address
     				$this->db->rollback();
     				return -2;
     			}
    -
     		}
     		else
     		{
    @@ -228,9 +241,9 @@ class Address
     				return $result;
     			}
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Charge depuis la base toutes les adresses d'une societe
     	 *
    @@ -240,6 +253,7 @@ class Address
     	 */
     	function fetch_lines($socid, $user=null)
     	{
    +        // phpcs:enable
     		global $langs, $conf;
     
     		$sql = 'SELECT rowid, nom as name, client, fournisseur';
    @@ -324,6 +338,7 @@ class Address
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Charge depuis la base l'objet adresse
     	 *
    @@ -333,6 +348,7 @@ class Address
     	 */
     	function fetch_address($id, $user=null)
     	{
    +        // phpcs:enable
     		global $langs;
     		global $conf;
     
    @@ -479,14 +495,12 @@ class Address
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
     			dol_print_error($this->db);
     		}
     	}
    -
     }
     
     
    @@ -496,12 +510,27 @@ class Address
     class AddressLine
     {
     	protected $db;
    +
    +	/**
    +	 * @var int ID
    +	 */
     	public $id;
    +
     	public $date_creation;
     	public $date_modification;
    -	public $label;
    +
    +	/**
    +     * @var string stock movements label
    +     */
    +    public $label;
    +
     	public $name;
    +
    +	/**
    +	 * @var string Address
    +	 */
     	public $address;
    +
     	public $zip;
     	public $town;
     	public $country_id;
    diff --git a/htdocs/societe/class/api_contacts.class.php b/htdocs/societe/class/api_contacts.class.php
    index b99257da275..9e9a6a58a80 100644
    --- a/htdocs/societe/class/api_contacts.class.php
    +++ b/htdocs/societe/class/api_contacts.class.php
    @@ -34,7 +34,7 @@ class Contacts extends DolibarrApi
     	 * @var array   $FIELDS     Mandatory fields, checked when create and update object
     	 */
     	static $FIELDS = array(
    -		'lastname'
    +		'lastname',
     	);
     
     	/**
    @@ -101,8 +101,9 @@ class Contacts extends DolibarrApi
     	 * @return array                        Array of contact objects
          *
     	 * @throws RestException
    -	 */
    -	function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '') {
    +     */
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '')
    +    {
     		global $db, $conf;
     
     		$obj_ret = array();
    @@ -195,7 +196,8 @@ class Contacts extends DolibarrApi
     	 * @param   array   $request_data   Request datas
     	 * @return  int     ID of contact
     	 */
    -	function post($request_data = null) {
    +    function post($request_data = null)
    +    {
     		if (!DolibarrApiAccess::$user->rights->societe->contact->creer)
     		{
     			throw new RestException(401, 'No permission to create/update contacts');
    @@ -220,7 +222,8 @@ class Contacts extends DolibarrApi
     	 * @param array $request_data   Datas
     	 * @return int
     	 */
    -	function put($id, $request_data = null) {
    +    function put($id, $request_data = null)
    +    {
     		if (!DolibarrApiAccess::$user->rights->societe->contact->creer)
     		{
     			throw new RestException(401, 'No permission to create/update contacts');
    @@ -255,7 +258,8 @@ class Contacts extends DolibarrApi
     	 * @param   int     $id Contact ID
     	 * @return  integer
     	 */
    -	function delete($id) {
    +    function delete($id)
    +    {
     		if (!DolibarrApiAccess::$user->rights->societe->contact->supprimer)
     		{
     			throw new RestException(401, 'No permission to delete contacts');
    @@ -283,7 +287,8 @@ class Contacts extends DolibarrApi
     	 *
     	 * @url	POST {id}/createUser
     	 */
    -	function createUser($id, $request_data = null) {
    +    function createUser($id, $request_data = null)
    +    {
     	    //if (!DolibarrApiAccess::$user->rights->user->user->creer) {
     	    //throw new RestException(401);
     	    //}
    @@ -365,7 +370,8 @@ class Contacts extends DolibarrApi
          * @param   object  $object    Object to clean
          * @return    array    Array of cleaned object properties
          */
    -    function _cleanObjectDatas($object) {
    +    function _cleanObjectDatas($object)
    +    {
     
         	$object = parent::_cleanObjectDatas($object);
     
    @@ -389,7 +395,8 @@ class Contacts extends DolibarrApi
     	 * @return  array
     	 * @throws RestException
     	 */
    -	function _validate($data) {
    +    function _validate($data)
    +    {
     		$contact = array();
     		foreach (Contacts::$FIELDS as $field)
     		{
    diff --git a/htdocs/societe/class/api_thirdparties.class.php b/htdocs/societe/class/api_thirdparties.class.php
    index 2b355b56eb7..50d9710be40 100644
    --- a/htdocs/societe/class/api_thirdparties.class.php
    +++ b/htdocs/societe/class/api_thirdparties.class.php
    @@ -1,5 +1,6 @@
     <?php
     /* Copyright (C) 2015   Jean-François Ferry     <jfefe@aternatik.fr>
    + * Copyright (C) 2018   Pierre Chéné            <pierre.chene44@gmail.com>
      *
      * 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
    @@ -32,7 +33,7 @@ class Thirdparties extends DolibarrApi
     	 * @var array   $FIELDS     Mandatory fields, checked when create and update object
     	 */
     	static $FIELDS = array(
    -	'name'
    +		'name'
     	);
     
     	/**
    @@ -49,7 +50,9 @@ class Thirdparties extends DolibarrApi
     		$this->db = $db;
     
     		require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
    +		require_once DOL_DOCUMENT_ROOT.'/societe/class/societeaccount.class.php';
     		require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
    +		require_once DOL_DOCUMENT_ROOT.'/societe/class/companybankaccount.class.php';
     
     		$this->company = new Societe($this->db);
     
    @@ -114,7 +117,8 @@ class Thirdparties extends DolibarrApi
     	 * @param   string  $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.nom:like:'TheCompany%') and (t.date_creation:<:'20160101')"
     	 * @return  array               Array of thirdparty objects
     	 */
    -	function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $mode=0, $sqlfilters = '') {
    +	function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $mode=0, $sqlfilters = '')
    +    {
     		global $db, $conf;
     
     		$obj_ret = array();
    @@ -129,7 +133,6 @@ class Thirdparties extends DolibarrApi
     		$sql = "SELECT t.rowid";
     		if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects)
     		$sql.= " FROM ".MAIN_DB_PREFIX."societe as t";
    -		$sql.= " LEFT JOIN ".MAIN_DB_PREFIX . "societe_extrafields as te ON te.fk_object = t.rowid";
     
     		if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale
     		$sql.= ", ".MAIN_DB_PREFIX."c_stcomm as st";
    @@ -214,7 +217,7 @@ class Thirdparties extends DolibarrApi
     		if ($this->company->create(DolibarrApiAccess::$user) < 0)
     			throw new RestException(500, 'Error creating thirdparty', array_merge(array($this->company->error), $this->company->errors));
     
    -			return $this->company->id;
    +		return $this->company->id;
     	}
     
     	/**
    @@ -247,7 +250,7 @@ class Thirdparties extends DolibarrApi
     		if($this->company->update($id, DolibarrApiAccess::$user,1,'','','update'))
     			return $this->get($id);
     
    -			return false;
    +		return false;
     	}
     
     	/**
    @@ -313,12 +316,12 @@ class Thirdparties extends DolibarrApi
     		$object->client = $object->client | $soc_origin->client;
     		$object->fournisseur = $object->fournisseur | $soc_origin->fournisseur;
     		$listofproperties=array(
    -		'address', 'zip', 'town', 'state_id', 'country_id', 'phone', 'phone_pro', 'fax', 'email', 'skype', 'url', 'barcode',
    -		'idprof1', 'idprof2', 'idprof3', 'idprof4', 'idprof5', 'idprof6',
    -		'tva_intra', 'effectif_id', 'forme_juridique', 'remise_percent', 'remise_supplier_percent', 'mode_reglement_supplier_id', 'cond_reglement_supplier_id', 'name_bis',
    -		'stcomm_id', 'outstanding_limit', 'price_level', 'parent', 'default_lang', 'ref', 'ref_ext', 'import_key', 'fk_incoterms', 'fk_multicurrency',
    -		'code_client', 'code_fournisseur', 'code_compta', 'code_compta_fournisseur',
    -		'model_pdf', 'fk_projet'
    +			'address', 'zip', 'town', 'state_id', 'country_id', 'phone', 'phone_pro', 'fax', 'email', 'skype', 'url', 'barcode',
    +			'idprof1', 'idprof2', 'idprof3', 'idprof4', 'idprof5', 'idprof6',
    +			'tva_intra', 'effectif_id', 'forme_juridique', 'remise_percent', 'remise_supplier_percent', 'mode_reglement_supplier_id', 'cond_reglement_supplier_id', 'name_bis',
    +			'stcomm_id', 'outstanding_limit', 'price_level', 'parent', 'default_lang', 'ref', 'ref_ext', 'import_key', 'fk_incoterms', 'fk_multicurrency',
    +			'code_client', 'code_fournisseur', 'code_compta', 'code_compta_fournisseur',
    +			'model_pdf', 'fk_projet'
     		);
     		foreach ($listofproperties as $property)
     		{
    @@ -327,7 +330,7 @@ class Thirdparties extends DolibarrApi
     
     		// Concat some data
     		$listofproperties=array(
    -		'note_public', 'note_private'
    +			'note_public', 'note_private'
     		);
     		foreach ($listofproperties as $property)
     		{
    @@ -373,27 +376,27 @@ class Thirdparties extends DolibarrApi
     		if (! $error)
     		{
     			$objects = array(
    -			'Adherent' => '/adherents/class/adherent.class.php',
    -			'Societe' => '/societe/class/societe.class.php',
    -			'Categorie' => '/categories/class/categorie.class.php',
    -			'ActionComm' => '/comm/action/class/actioncomm.class.php',
    -			'Propal' => '/comm/propal/class/propal.class.php',
    -			'Commande' => '/commande/class/commande.class.php',
    -			'Facture' => '/compta/facture/class/facture.class.php',
    -			'FactureRec' => '/compta/facture/class/facture-rec.class.php',
    -			'LignePrelevement' => '/compta/prelevement/class/ligneprelevement.class.php',
    -			'Contact' => '/contact/class/contact.class.php',
    -			'Contrat' => '/contrat/class/contrat.class.php',
    -			'Expedition' => '/expedition/class/expedition.class.php',
    -			'Fichinter' => '/fichinter/class/fichinter.class.php',
    -			'CommandeFournisseur' => '/fourn/class/fournisseur.commande.class.php',
    -			'FactureFournisseur' => '/fourn/class/fournisseur.facture.class.php',
    -			'SupplierProposal' => '/supplier_proposal/class/supplier_proposal.class.php',
    -			'ProductFournisseur' => '/fourn/class/fournisseur.product.class.php',
    -			'Livraison' => '/livraison/class/livraison.class.php',
    -			'Product' => '/product/class/product.class.php',
    -			'Project' => '/projet/class/project.class.php',
    -			'User' => '/user/class/user.class.php',
    +				'Adherent' => '/adherents/class/adherent.class.php',
    +				'Societe' => '/societe/class/societe.class.php',
    +				'Categorie' => '/categories/class/categorie.class.php',
    +				'ActionComm' => '/comm/action/class/actioncomm.class.php',
    +				'Propal' => '/comm/propal/class/propal.class.php',
    +				'Commande' => '/commande/class/commande.class.php',
    +				'Facture' => '/compta/facture/class/facture.class.php',
    +				'FactureRec' => '/compta/facture/class/facture-rec.class.php',
    +				'LignePrelevement' => '/compta/prelevement/class/ligneprelevement.class.php',
    +				'Contact' => '/contact/class/contact.class.php',
    +				'Contrat' => '/contrat/class/contrat.class.php',
    +				'Expedition' => '/expedition/class/expedition.class.php',
    +				'Fichinter' => '/fichinter/class/fichinter.class.php',
    +				'CommandeFournisseur' => '/fourn/class/fournisseur.commande.class.php',
    +				'FactureFournisseur' => '/fourn/class/fournisseur.facture.class.php',
    +				'SupplierProposal' => '/supplier_proposal/class/supplier_proposal.class.php',
    +				'ProductFournisseur' => '/fourn/class/fournisseur.product.class.php',
    +				'Livraison' => '/livraison/class/livraison.class.php',
    +				'Product' => '/product/class/product.class.php',
    +				'Project' => '/projet/class/project.class.php',
    +				'User' => '/user/class/user.class.php',
     			);
     
     			//First, all core objects must update their tables
    @@ -413,8 +416,8 @@ class Thirdparties extends DolibarrApi
     		if (!$errors)
     		{
     			$reshook = $hookmanager->executeHooks('replaceThirdparty', array(
    -			'soc_origin' => $soc_origin->id,
    -			'soc_dest' => $object->id
    +				'soc_origin' => $soc_origin->id,
    +				'soc_dest' => $object->id
     			), $soc_dest, $action);
     
     			if ($reshook < 0)
    @@ -852,8 +855,6 @@ class Thirdparties extends DolibarrApi
     		return $result;
     	}
     
    -
    -
     	/**
     	 * Get fixed amount discount of a thirdparty (all sources: deposit, credit note, commercial offers...)
     	 *
    @@ -893,7 +894,7 @@ class Thirdparties extends DolibarrApi
     		}
     
     
    -		$sql = "SELECT f.facnumber, f.type as factype, re.fk_facture_source, re.rowid, re.amount_ht, re.amount_tva, re.amount_ttc, re.description, re.fk_facture, re.fk_facture_line";
    +		$sql = "SELECT f.ref, f.type as factype, re.fk_facture_source, re.rowid, re.amount_ht, re.amount_tva, re.amount_ttc, re.description, re.fk_facture, re.fk_facture_line";
     		$sql .= " FROM ".MAIN_DB_PREFIX."societe_remise_except as re, ".MAIN_DB_PREFIX."facture as f";
     		$sql .= " WHERE f.rowid = re.fk_facture_source AND re.fk_soc = ".$id;
     		if ($filter == "available")  $sql .= " AND re.fk_facture IS NULL AND re.fk_facture_line IS NULL";
    @@ -929,8 +930,8 @@ class Thirdparties extends DolibarrApi
     	 * @throws 404
     	 * @throws 405
     	 */
    -	function getInvoicesQualifiedForReplacement($id) {
    -
    +	function getInvoicesQualifiedForReplacement($id)
    +    {
     		if(! DolibarrApiAccess::$user->rights->facture->lire) {
     			throw new RestException(401);
     		}
    @@ -971,8 +972,8 @@ class Thirdparties extends DolibarrApi
     	 * @throws 404
     	 * @throws 405
     	 */
    -	function getInvoicesQualifiedForCreditNote($id) {
    -
    +	function getInvoicesQualifiedForCreditNote($id)
    +    {
     		if(! DolibarrApiAccess::$user->rights->facture->lire) {
     			throw new RestException(401);
     		}
    @@ -998,6 +999,632 @@ class Thirdparties extends DolibarrApi
     		return $result;
     	}
     
    +	/**
    +	 * Get CompanyBankAccount objects for thirdparty
    +	 *
    +	 * @param int $id ID of thirdparty
    +	 *
    +	 * @return array
    +	 *
    +	 * @url GET {id}/bankaccounts
    +	 */
    +	function getCompanyBankAccount($id)
    +    {
    +		global $db, $conf;
    +
    +		if(! DolibarrApiAccess::$user->rights->facture->lire) {
    +			throw new RestException(401);
    +		}
    +		if(empty($id)) {
    +			throw new RestException(400, 'Thirdparty ID is mandatory');
    +		}
    +
    +		if( ! DolibarrApi::_checkAccessToResource('societe',$id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +		}
    +
    +		/**
    +		 * We select all the records that match the socid
    +		 */
    +
    +		$sql = "SELECT rowid, fk_soc, bank, number, code_banque, code_guichet, cle_rib, bic, iban_prefix as iban, domiciliation, proprio,";
    +		$sql.= " owner_address, default_rib, label, datec, tms as datem, rum, frstrecur";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."societe_rib";
    +		if ($id) $sql.= " WHERE fk_soc  = ".$id." ";
    +
    +
    +		$result = $db->query($sql);
    +
    +		if($result->num_rows == 0 ){
    +			throw new RestException(404, 'Account not found');
    +		}
    +
    +		$i=0;
    +
    +		$accounts =[];
    +
    +		if ($result)
    +		{
    +			$num = $db->num_rows($result);
    +			while ($i < $num)
    +			{
    +				$obj = $db->fetch_object($result);
    +				$account = new CompanyBankAccount($db);
    +				if($account->fetch($obj->rowid)) {
    +					$accounts[] = $account;
    +				}
    +				$i++;
    +			}
    +		}
    +		else{
    +			throw new RestException(404, 'Account not found');
    +		}
    +
    +
    +		$fields = ['socid', 'default_rib', 'frstrecur', '1000110000001', 'datec', 'datem', 'label', 'bank', 'bic', 'iban', 'id', 'rum'];
    +
    +		$returnAccounts = [];
    +
    +		foreach($accounts as $account){
    +			$object= [];
    +			foreach($account as $key => $value)
    +				if(in_array($key, $fields)){
    +					$object[$key] = $value;
    +				}
    +			$returnAccounts[] = $object;
    +		}
    +
    +		return $returnAccounts;
    +	}
    +
    +	/**
    +	 * Create CompanyBankAccount object for thirdparty
    +	 * @param int  $id ID of thirdparty
    +	 * @param array $request_data Request data
    +	 *
    +	 * @return object  ID of thirdparty
    +	 *
    +	 * @url POST {id}/bankaccounts
    +	 */
    +	function createCompanyBankAccount($id, $request_data = null)
    +	{
    +		if(! DolibarrApiAccess::$user->rights->societe->creer) {
    +			throw new RestException(401);
    +		}
    +
    +		$account = new CompanyBankAccount($this->db);
    +
    +		$account->socid = $id;
    +
    +		foreach($request_data as $field => $value) {
    +			$account->$field = $value;
    +		}
    +
    +		if ($account->create(DolibarrApiAccess::$user) < 0)
    +			throw new RestException(500, 'Error creating Company Bank account');
    +
    +
    +		if ($account->update(DolibarrApiAccess::$user) < 0)
    +			throw new RestException(500, 'Error updating values');
    +
    +		return $account;
    +	}
    +
    +	/**
    +	 * Update CompanyBankAccount object for thirdparty
    +	 *
    +	 * @param int $id ID of thirdparty
    +	 * @param int  $bankaccount_id ID of CompanyBankAccount
    +	 * @param array $request_data Request data
    +	 *
    +	 * @return object  ID of thirdparty
    +	 *
    +	 * @url PUT {id}/bankaccounts/{bankaccount_id}
    +	 */
    +	function updateCompanyBankAccount($id, $bankaccount_id, $request_data = null)
    +	{
    +		if(! DolibarrApiAccess::$user->rights->societe->creer) {
    +			throw new RestException(401);
    +		}
    +
    +		$account = new CompanyBankAccount($this->db);
    +
    +		$account->fetch($bankaccount_id, $id, -1, '');
    +
    +		if($account->socid != $id){
    +			throw new RestException(401);
    +		}
    +
    +
    +		foreach($request_data as $field => $value) {
    +			$account->$field = $value;
    +		}
    +
    +		if ($account->update(DolibarrApiAccess::$user) < 0)
    +			throw new RestException(500, 'Error updating values');
    +
    +		return $account;
    +	}
    +
    +	/**
    +	 * Delete a bank account attached to a thirdparty
    +	 *
    +	 * @param int $id ID of thirdparty
    +	 * @param int $bankaccount_id ID of CompanyBankAccount
    +	 *
    +	 * @return int -1 if error 1 if correct deletion
    +	 *
    +	 * @url DELETE {id}/bankaccounts/{bankaccount_id}
    +	 */
    +	function deleteCompanyBankAccount($id, $bankaccount_id)
    +    {
    +		if(! DolibarrApiAccess::$user->rights->societe->creer) {
    +			throw new RestException(401);
    +		}
    +
    +		$account = new CompanyBankAccount($this->db);
    +
    +		$account->fetch($bankaccount_id);
    +
    +		if(!$account->socid == $id)
    +			throw new RestException(401);
    +
    +		return $account->delete(DolibarrApiAccess::$user);
    +	}
    +
    +	/**
    +	 * Generate a Document from a bank account record (like SEPA mandate)
    +	 *
    +	 * @param int 		$id 			Thirdparty id
    +	 * @param int 		$companybankid 	Companybank id
    +	 * @param string 	$model 			Model of document to generate
    +	 * @return void
    +	 *
    +	 * @url GET {id}/generateBankAccountDocument/{companybankid}/{model}
    +	 */
    +	public function generateBankAccountDocument($id, $companybankid = null, $model = 'sepamandate')
    +	{
    +		global $conf;
    +
    +		$this->langs->loadLangs(array("main","dict","commercial","products","companies","banks","bills","withdrawals"));
    +
    +		$this->company->fetch($id);
    +
    +		$action = 'builddoc';
    +		if(! DolibarrApiAccess::$user->rights->societe->creer)
    +			throw new RestException(401);
    +
    +		$this->company->setDocModel(DolibarrApiAccess::$user, $model);
    +
    +		$this->company->fk_bank = $this->company->fk_account;
    +
    +		$outputlangs = $this->langs;
    +		$newlang='';
    +
    +		if ($this->conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang=GETPOST('lang_id','aZ09');
    +		if ($this->conf->global->MAIN_MULTILANGS && empty($newlang) && isset($this->company->thirdparty->default_lang)) $newlang=$this->company->thirdparty->default_lang;  // for proposal, order, invoice, ...
    +		if ($this->conf->global->MAIN_MULTILANGS && empty($newlang) && isset($this->company->default_lang)) $newlang=$this->company->default_lang;                  // for thirdparty
    +		if (! empty($newlang)) {
    +			$outputlangs = new Translate("",$conf);
    +			$outputlangs->setDefaultLang($newlang);
    +		}
    +
    +		// To be sure vars is defined
    +		$hidedetails = $hidedesc = $hideref = 0;
    +		$moreparams=null;
    +		if (empty($hidedetails)) $hidedetails=0;
    +		if (empty($hidedesc)) $hidedesc=0;
    +		if (empty($hideref)) $hideref=0;
    +		if (empty($moreparams)) $moreparams=null;
    +
    +
    +		$sql = "SELECT rowid";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."societe_rib";
    +		if ($id) $sql.= " WHERE fk_soc  = ".$id." ";
    +		if ($companybankid) $sql.= " AND id = ".$companybankid."";
    +
    +		$i=0;
    +		$accounts=array();
    +
    +		$result = $this->db->query($sql);
    +		if ($result)
    +		{
    +			if ($result->num_rows == 0) {
    +				throw new RestException(404, 'Bank account not found');
    +			}
    +
    +			$num = $this->db->num_rows($result);
    +			while ($i < $num)
    +			{
    +				$obj = $this->db->fetch_object($result);
    +
    +				$account = new CompanyBankAccount($this->db);
    +				if ($account->fetch($obj->rowid)) {
    +					$accounts[] = $account;
    +				}
    +				$i++;
    +			}
    +		}
    +		else
    +		{
    +			throw new RestException(404, 'Bank account not found');
    +		}
    +
    +		$moreparams = array(
    +			'use_companybankid'=>$accounts[0]->id,
    +			'force_dir_output'=>$this->conf->societe->multidir_output[$this->company->entity].'/'.dol_sanitizeFileName($this->company->id)
    +		);
    +
    +		$result = 0;
    +
    +		$result = $this->company->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
    +
    +		if ($result > 0)
    +		{
    +			return array("success" => $result);
    +		}
    +		else
    +		{
    +			throw new RestException(500);
    +		}
    +    }
    +
    +  /**
    +	 * Get a specific gateway attached to a thirdparty (by specifying the site key)
    +	 *
    +	 * @param int $id ID of thirdparty
    +	 * @param string $site Site key
    +	 *
    +	 * @return SocieteAccount[]
    +	 * @throws 401 Unauthorized: User does not have permission to read thirdparties
    +	 * @throws 404 Not Found: Specified thirdparty ID does not belongs to an existing thirdparty
    +	 *
    +	 * @url GET {id}/gateways/
    +	 */
    +	function getSocieteAccounts($id, $site=null)
    +    {
    +		global $db, $conf;
    +
    +		if(!DolibarrApiAccess::$user->rights->societe->lire) {
    +			throw new RestException(401);
    +		}
    +
    +		if(!DolibarrApi::_checkAccessToResource('societe',$id)) {
    +			throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
    +		}
    +
    +		/**
    +		 * We select all the records that match the socid
    +		 */
    +		$sql = "SELECT rowid, fk_soc, key_account, site, date_creation, tms FROM ".MAIN_DB_PREFIX."societe_account";
    +		$sql.= " WHERE fk_soc = $id";
    +		if($site) $sql .= " AND site ='$site'";
    +
    +		$result = $db->query($sql);
    +
    +		if($result->num_rows == 0){
    +			throw new RestException(404, 'This thirdparty does not have any gateway attached or does not exist.');
    +		}
    +
    +		$i=0;
    +
    +		$accounts =[];
    +
    +		$num = $db->num_rows($result);
    +		while ($i < $num)
    +		{
    +			$obj = $db->fetch_object($result);
    +			$account = new SocieteAccount($db);
    +
    +			if($account->fetch($obj->rowid)) {
    +				$accounts[] = $account;
    +			}
    +			$i++;
    +		}
    +
    +		$fields = ['id', 'fk_soc', 'key_account', 'site', 'date_creation', 'tms'];
    +
    +		$returnAccounts = [];
    +
    +		foreach($accounts as $account){
    +			$object= [];
    +			foreach($account as $key => $value)
    +				if(in_array($key, $fields)){
    +					$object[$key] = $value;
    +				}
    +			$returnAccounts[] = $object;
    +		}
    +
    +		return $returnAccounts;
    +	}
    +
    +	/**
    +	 * Create and attach a new gateway to an existing thirdparty
    +	 *
    +	 * Possible fields for request_data (request body) are specified in <code>llx_societe_account</code> table.<br>
    +	 * See <a href="https://wiki.dolibarr.org/index.php/Table_llx_societe_account">Table llx_societe_account</a> wiki page for more information<br><br>
    +	 * <u>Example body payload :</u> <pre>{"key_account": "cus_DAVkLSs1LYyYI", "site": "stripe"}</pre>
    +	 *
    +	 * @param int $id ID of thirdparty
    +	 * @param array $request_data Request data
    +	 *
    +	 * @return SocieteAccount
    +	 * @throws 401 Unauthorized: User does not have permission to read thirdparties
    +	 * @throws 409 Conflict: A SocieteAccount entity (gateway) already exists for this company and site.
    +	 * @throws 422 Unprocessable Entity: You must pass the site attribute in your request data !
    +	 * @throws 500 Internal Server Error: Error creating SocieteAccount account
    +	 * @status 201
    +	 *
    +	 * @url POST {id}/gateways
    +	 */
    +	function createSocieteAccount($id, $request_data = null)
    +	{
    +		global $db;
    +
    +		if(! DolibarrApiAccess::$user->rights->societe->creer) {
    +			throw new RestException(401);
    +		}
    +
    +		if(!isset($request_data['site'])) {
    +			throw new RestException(422, 'Unprocessable Entity: You must pass the site attribute in your request data !');
    +		}
    +
    +		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe_account WHERE fk_soc  = ".$id." AND site = '". $request_data['site']."' ";
    +		$result = $db->query($sql);
    +
    +		if($result->num_rows == 0 ){
    +			$account = new SocieteAccount($this->db);
    +			if(!isset($request_data['login'])) {
    +				$account->login = "";
    +			}
    +			$account->fk_soc = $id;
    +
    +			foreach($request_data as $field => $value) {
    +				$account->$field = $value;
    +			}
    +
    +			if ($account->create(DolibarrApiAccess::$user) < 0)
    +				throw new RestException(500, 'Error creating SocieteAccount entity. Ensure that the ID of thirdparty provided does exist!');
    +
    +			$this->_cleanObjectDatas($account);
    +
    +			return $account;
    +		} else {
    +			throw new RestException(409, 'A SocieteAccount entity already exists for this company and site.');
    +		}
    +	}
    +
    +	/**
    +	 * Create and attach a new (or replace an existing) specific site gateway to a thirdparty
    +	 *
    +	 * You <strong>MUST</strong> pass all values to keep (otherwise, they will be deleted) !<br>
    +	 * If you just need to update specific fields prefer <code>PATCH /thirdparties/{id}/gateways/{site}</code> endpoint.<br><br>
    +	 * When a <strong>SocieteAccount</strong> entity does not exist for the <code>id</code> and <code>site</code>
    +	 * supplied, a new one will be created. In that case <code>fk_soc</code> and <code>site</code> members form
    +	 * request body payload will be ignored and <code>id</code> and <code>site</code> query strings parameters
    +	 * will be used instead.
    +	 *
    +	 * @param int $id ID of thirdparty
    +	 * @param string $site Site key
    +	 * @param array $request_data Request data
    +	 *
    +	 * @return SocieteAccount
    +	 * @throws 401 Unauthorized: User does not have permission to read thirdparties
    +	 * @throws 422 Unprocessable Entity: You must pass the site attribute in your request data !
    +	 * @throws 500 Internal Server Error: Error updating SocieteAccount entity
    +	 *
    +	 * @throws RestException
    +	 * @url PUT {id}/gateways/{site}
    +	 */
    +	function putSocieteAccount($id, $site, $request_data = null)
    +	{
    +		global $db;
    +
    +		if(! DolibarrApiAccess::$user->rights->societe->creer) {
    +			throw new RestException(401);
    +		}
    +
    +		$sql = "SELECT rowid, fk_user_creat, date_creation FROM ".MAIN_DB_PREFIX."societe_account WHERE fk_soc = $id AND site = '$site' ";
    +		$result = $db->query($sql);
    +
    +		// We do not found an existing SocieteAccount entity for this fk_soc and site ; we then create a new one.
    +		if($result->num_rows == 0 ){
    +			if(!isset($request_data['key_account'])) {
    +				throw new RestException(422, 'Unprocessable Entity: You must pass the key_account attribute in your request data !');
    +			}
    +			$account = new SocieteAccount($this->db);
    +			if(!isset($request_data['login'])) {
    +				$account->login = "";
    +			}
    +
    +			foreach($request_data as $field => $value) {
    +				$account->$field = $value;
    +			}
    +
    +			$account->fk_soc = $id;
    +			$account->site = $site;
    +
    +			if ($account->create(DolibarrApiAccess::$user) < 0)
    +				throw new RestException(500, 'Error creating SocieteAccount entity.');
    +		// We found an existing SocieteAccount entity, we are replacing it
    +		} else {
    +
    +			if(isset($request_data['site']) && $request_data['site'] !== $site) {
    +				$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe_account WHERE fk_soc  = ".$id." AND site = '". $request_data['site']."' ";
    +				$result = $db->query($sql);
    +
    +				if($result->num_rows !== 0)
    +					throw new RestException(409, "You are trying to update this thirdparty SocieteAccount (gateway record) from $site to ".$request_data['site'] . " but another SocieteAccount entity already exists with this site key.");
    +			}
    +
    +			$obj = $db->fetch_object($result);
    +
    +			$account = new SocieteAccount($this->db);
    +			$account->id = $obj->rowid;
    +			$account->fk_soc = $id;
    +			$account->site = $site;
    +			if(!isset($request_data['login'])) {
    +				$account->login = "";
    +			}
    +			$account->fk_user_creat = $obj->fk_user_creat;
    +			$account->date_creation = $obj->date_creation;
    +
    +			foreach($request_data as $field => $value) {
    +				$account->$field = $value;
    +			}
    +
    +			if ($account->update(DolibarrApiAccess::$user) < 0)
    +				throw new RestException(500, 'Error updating SocieteAccount entity.');
    +		}
    +
    +		$this->_cleanObjectDatas($account);
    +
    +		return $account;
    +	}
    +
    +	/**
    +	 * Update specified values of a specific site gateway attached to a thirdparty
    +	 *
    +	 * @param int $id Id of thirdparty
    +	 * @param string  $site Site key
    +	 * @param array $request_data Request data
    +	 *
    +	 * @return SocieteAccount
    +	 * @throws 401 Unauthorized: User does not have permission to read thirdparties
    +	 * @throws 404 Not Found: Specified thirdparty ID does not belongs to an existing thirdparty
    +	 * @throws 409 Conflict: Another SocieteAccount entity already exists for this thirdparty with this site key.
    +	 * @throws 500 Internal Server Error: Error updating SocieteAccount entity
    +	 *
    +	 * @url PATCH {id}/gateways/{site}
    +	 */
    +	function patchSocieteAccount($id, $site, $request_data = null)
    +	{
    +		global $db;
    +
    +		if(! DolibarrApiAccess::$user->rights->societe->creer) {
    +			throw new RestException(401);
    +		}
    +
    +		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe_account WHERE fk_soc  = $id AND site = '$site' ";
    +		$result = $db->query($sql);
    +
    +		if($result->num_rows == 0 ){
    +			throw new RestException(404, "This thirdparty does not have $site gateway attached or does not exist.");
    +		} else {
    +
    +			// If the user tries to edit the site member, we check first if
    +			if(isset($request_data['site']) && $request_data['site'] !== $site) {
    +				$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe_account WHERE fk_soc  = ".$id." AND site = '". $request_data['site']."' ";
    +				$result = $db->query($sql);
    +
    +				if($result->num_rows !== 0)
    +					throw new RestException(409, "You are trying to update this thirdparty SocieteAccount (gateway record) site member from $site to ".$request_data['site'] . " but another SocieteAccount entity already exists for this thirdparty with this site key.");
    +			}
    +
    +			$obj = $db->fetch_object($result);
    +			$account = new SocieteAccount($this->db);
    +			$account->fetch($obj->rowid);
    +
    +			foreach($request_data as $field => $value) {
    +				$account->$field = $value;
    +			}
    +
    +			if ($account->update(DolibarrApiAccess::$user) < 0)
    +				throw new RestException(500, 'Error updating SocieteAccount account');
    +
    +			$this->_cleanObjectDatas($account);
    +
    +			return $account;
    +		}
    +	}
    +
    +	/**
    +	 * Delete a specific site gateway attached to a thirdparty (by gateway id)
    +	 *
    +	 * @param int $id ID of thirdparty
    +	 * @param int $site Site key
    +	 *
    +	 * @return void
    +	 * @throws 401 Unauthorized: User does not have permission to delete thirdparties gateways
    +	 * @throws 404 Not Found: Specified thirdparty ID does not belongs to an existing thirdparty
    +	 * @throws 500 Internal Server Error: Error deleting SocieteAccount entity
    +	 *
    +	 * @url DELETE {id}/gateways/{site}
    +	 */
    +	function deleteSocieteAccount($id, $site)
    +    {
    +		global /** @var Database $db */
    +		$db;
    +
    +		if(! DolibarrApiAccess::$user->rights->societe->creer) {
    +			throw new RestException(401);
    +		}
    +
    +		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe_account WHERE fk_soc  = $id AND site = '$site' ";
    +		$result = $db->query($sql);
    +
    +		if($result->num_rows == 0 ){
    +			throw new RestException(404);
    +		} else {
    +			$obj = $db->fetch_object($result);
    +			$account = new SocieteAccount($this->db);
    +			$account->fetch($obj->rowid);
    +
    +			if($account->delete(DolibarrApiAccess::$user) < 0) {
    +				throw new RestException(500, "Error while deleting $site gateway attached to this third party");
    +			}
    +		}
    +	}
    +
    +	/**
    +	 * Delete all gateways attached to a thirdparty
    +	 *
    +	 * @param int $id ID of thirdparty
    +	 *
    +	 * @return void
    +	 * @throws 401 Unauthorized: User does not have permission to delete thirdparties gateways
    +	 * @throws 404 Not Found: Specified thirdparty ID does not belongs to an existing thirdparty
    +	 * @throws 500 Internal Server Error: Error deleting SocieteAccount entity
    +	 *
    +	 * @url DELETE {id}/gateways
    +	 */
    +	function deleteSocieteAccounts($id)
    +    {
    +		global /** @var Database $db */
    +		$db;
    +
    +		if(! DolibarrApiAccess::$user->rights->societe->creer) {
    +			throw new RestException(401);
    +		}
    +
    +		/**
    +		 * We select all the records that match the socid
    +		 */
    +
    +		$sql = "SELECT rowid, fk_soc, key_account, site, date_creation, tms";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."societe_account WHERE fk_soc  = $id ";
    +
    +		$result = $db->query($sql);
    +
    +		if($result->num_rows == 0 ){
    +			throw new RestException(404, 'This third party does not have any gateway attached or does not exist.');
    +		} else {
    +			$i=0;
    +
    +			$num = $db->num_rows($result);
    +			while ($i < $num)
    +			{
    +				$obj = $db->fetch_object($result);
    +				$account = new SocieteAccount($db);
    +				$account->fetch($obj->rowid);
    +
    +				if($account->delete(DolibarrApiAccess::$user) < 0) {
    +					throw new RestException(500, 'Error while deleting gateways attached to this third party');
    +				}
    +				$i++;
    +			}
    +		}
    +	}
     
     	/**
     	 * Clean sensible object datas
    @@ -1005,8 +1632,8 @@ class Thirdparties extends DolibarrApi
     	 * @param   object  $object    Object to clean
     	 * @return    array    Array of cleaned object properties
     	 */
    -	function _cleanObjectDatas($object) {
    -
    +	function _cleanObjectDatas($object)
    +    {
     		$object = parent::_cleanObjectDatas($object);
     
     		unset($object->nom);	// ->name already defined and nom deprecated
    @@ -1037,7 +1664,7 @@ class Thirdparties extends DolibarrApi
     		foreach (Thirdparties::$FIELDS as $field) {
     			if (!isset($data[$field]))
     				throw new RestException(400, "$field field missing");
    -				$thirdparty[$field] = $data[$field];
    +			$thirdparty[$field] = $data[$field];
     		}
     		return $thirdparty;
     	}
    diff --git a/htdocs/societe/class/client.class.php b/htdocs/societe/class/client.class.php
    index 59eea72c2c7..39a90c43eb9 100644
    --- a/htdocs/societe/class/client.class.php
    +++ b/htdocs/societe/class/client.class.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -47,6 +47,7 @@ class Client extends Societe
             $this->fournisseur = 0;
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *  Load indicators into this->nb for board
          *
    @@ -54,6 +55,7 @@ class Client extends Societe
          */
         function load_state_board()
         {
    +        // phpcs:enable
             global $user;
     
             $this->nb=array("customers" => 0,"prospects" => 0);
    @@ -88,7 +90,6 @@ class Client extends Societe
                 $this->error=$this->db->lasterror();
                 return -1;
             }
    -
         }
     
     	/**
    @@ -114,5 +115,4 @@ class Client extends Societe
     		}
     		return 1;
         }
    -
     }
    diff --git a/htdocs/societe/class/companybankaccount.class.php b/htdocs/societe/class/companybankaccount.class.php
    index 187f7c5ec65..2891724ac7e 100644
    --- a/htdocs/societe/class/companybankaccount.class.php
    +++ b/htdocs/societe/class/companybankaccount.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2010-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013   	Peter Fontaine          <contact@peterfontaine.fr>
      * Copyright (C) 2016       Marcos García           <marcosgdf@gmail.com>
      *
    @@ -184,7 +184,6 @@ class CompanyBankAccount extends Account
     		{
     			return 1;
     		}
    -
     		}
     		else
     		{
    @@ -197,10 +196,12 @@ class CompanyBankAccount extends Account
     	 * 	Load record from database
     	 *
     	 *	@param	int		$id			Id of record
    -	 * 	@param	int		$socid		Id of company. If this is filled, function will return the first default RIB of company
    +	 * 	@param	int		$socid		Id of company. If this is filled, function will return the first entry found (matching $default and $type)
    +	 *  @param	int		$default	If id of company filled, we say if we want first record among all (-1), default record (1) or non default record (0)
    +	 *  @param	int		$type		If id of company filled, we say if we want record of this type only
     	 * 	@return	int					<0 if KO, >0 if OK
     	 */
    -	function fetch($id, $socid=0)
    +	function fetch($id, $socid=0, $default=1, $type='ban')
     	{
     		if (empty($id) && empty($socid)) return -1;
     
    @@ -208,7 +209,12 @@ class CompanyBankAccount extends Account
     		$sql.= " owner_address, default_rib, label, datec, tms as datem, rum, frstrecur";
     		$sql.= " FROM ".MAIN_DB_PREFIX."societe_rib";
     		if ($id)    $sql.= " WHERE rowid = ".$id;
    -		if ($socid) $sql.= " WHERE fk_soc  = ".$socid." AND default_rib = 1 AND type ='ban'";
    +		if ($socid)
    +		{
    +			$sql.= " WHERE fk_soc  = ".$socid;
    +			if ($default > -1) $sql.=" AND default_rib = ".$this->db->escape($default);
    +			if ($type) $sql.= " AND type ='".$this->db->escape($type)."'";
    +		}
     
     		$resql = $this->db->query($sql);
     		if ($resql)
    @@ -408,6 +414,5 @@ class CompanyBankAccount extends Account
     
     		$this->socid = 0;
     	}
    -
     }
     
    diff --git a/htdocs/societe/class/companypaymentmode.class.php b/htdocs/societe/class/companypaymentmode.class.php
    index 4403d5b8fde..3594773e7f8 100644
    --- a/htdocs/societe/class/companypaymentmode.class.php
    +++ b/htdocs/societe/class/companypaymentmode.class.php
    @@ -18,7 +18,7 @@
     
     /**
      * \file        class/companypaymentmode.class.php
    - * \ingroup     monmodule
    + * \ingroup     company
      * \brief       This file is a CRUD class file for CompanyPaymentMode (Create/Read/Update/Delete)
      */
     
    @@ -36,18 +36,22 @@ class CompanyPaymentMode extends CommonObject
     	 * @var string ID to identify managed object
     	 */
     	public $element = 'companypaymentmode';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'societe_rib';
    +
     	/**
     	 * @var int  Does companypaymentmode support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     	 */
     	public $ismultientitymanaged = 2;
    +
     	/**
     	 * @var int  Does companypaymentmode support extrafields ? 0=No, 1=Yes
     	 */
     	public $isextrafieldmanaged = 0;
    +
     	/**
     	 * @var string String with name of icon for companypaymentmode. Must be the part after the 'object_' into object_companypaymentmode.png
     	 */
    @@ -114,9 +118,22 @@ class CompanyPaymentMode extends CommonObject
     		'import_key' =>array('type'=>'varchar(14)', 'label'=>'Import key', 'enabled'=>1, 'visible'=>-2, 'position'=>105),
     	//'aaa' =>array('type'=>'date', 'label'=>'Ending date', 'enabled'=>0, 'visible'=>-2, 'position'=>185),
     	);
    +
    +	/**
    +	 * @var int ID
    +	 */
     	public $rowid;
    -	public $fk_soc;
    -	public $label;
    +
    +	/**
    +	 * @var int Thirdparty ID
    +	 */
    +    public $fk_soc;
    +
    +	/**
    +     * @var string company payment mode label
    +     */
    +    public $label;
    +
     	public $bank;
     	public $code_banque;
     	public $code_guichet;
    @@ -144,7 +161,12 @@ class CompanyPaymentMode extends CommonObject
     	public $preapproval_key;
     	public $total_amount_of_all_payments;
     	public $stripe_card_ref;
    +
    +	/**
    +	 * @var int Status
    +	 */
     	public $status;
    +
     	public $starting_date;
     	public $ending_date;
     	public $datec;
    @@ -247,6 +269,8 @@ class CompanyPaymentMode extends CommonObject
     	        $this->errors = $object->errors;
     	    }
     
    +	    unset($object->context['createfromclone']);
    +
     	    // End
     	    if (!$error) {
     	        $this->db->commit();
    @@ -448,6 +472,7 @@ class CompanyPaymentMode extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return the status
     	 *
    @@ -457,40 +482,35 @@ class CompanyPaymentMode extends CommonObject
     	 */
     	static function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
    -		if ($mode == 0)
    -		{
    -			$prefix='';
    -			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == 0) return $langs->trans('Disabled');
    -		}
    -		if ($mode == 1)
    +		if ($mode == 0 || $mode == 1)
     		{
     			if ($status == 1) return $langs->trans('Enabled');
     			if ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
     			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
     			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
    @@ -543,7 +563,6 @@ class CompanyPaymentMode extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -561,5 +580,4 @@ class CompanyPaymentMode extends CommonObject
     	{
     		$this->initAsSpecimenCommon();
     	}
    -
     }
    diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php
    index fcdf4e9741a..1e152331aff 100644
    --- a/htdocs/societe/class/societe.class.php
    +++ b/htdocs/societe/class/societe.class.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2004       Eric Seigne             <eric.seigne@ryxeo.com>
      * Copyright (C) 2003       Brian Fraval            <brian@fraval.org>
      * Copyright (C) 2006       Andre Cianfarani        <acianfa@free.fr>
    - * Copyright (C) 2005-2017  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2008       Patrick Raguin          <patrick.raguin@auguria.net>
      * Copyright (C) 2010-2018  Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2013       Florian Henry           <florian.henry@open-concept.pro>
    @@ -13,6 +13,7 @@
      * Copyright (C) 2014-2015  Marcos García           <marcosgdf@gmail.com>
      * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2017       Rui Strecht			    <rui.strecht@aliartalentos.com>
    + * Copyright (C) 2018	    Philippe Grand	        <philippe.grand@atoo-net.com>
      *
      * 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
    @@ -41,9 +42,21 @@ require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php';
      */
     class Societe extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='societe';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element = 'societe';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element='fk_soc';
    +
     	public $fieldsforcombobox='nom,name_alias';
     	protected $childtables=array("supplier_proposal"=>'SupplierProposal',"propal"=>'Proposal',"commande"=>'Order',"facture"=>'Invoice',"facture_rec"=>'RecurringInvoiceTemplate',"contrat"=>'Contract',"fichinter"=>'Fichinter',"facture_fourn"=>'SupplierInvoice',"commande_fournisseur"=>'SupplierOrder',"projet"=>'Project',"expedition"=>'Shipment',"prelevement_lignes"=>'DirectDebitRecord');    // To test if we can delete object
     	protected $childtablesoncascade=array("societe_prices", "societe_log", "societe_address", "product_fournisseur_price", "product_customer_price_log", "product_customer_price", "socpeople", "adherent", "societe_rib", "societe_remise", "societe_remise_except", "societe_commerciaux", "categorie", "notify", "notify_def", "actioncomm");
    @@ -54,6 +67,7 @@ class Societe extends CommonObject
     	 * @var int
     	 */
     	public $ismultientitymanaged = 1;
    +
     	/**
     	 * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
     	 * @var integer
    @@ -67,9 +81,9 @@ class Societe extends CommonObject
     	 */
     	public $fields=array(
     		'rowid'         =>array('type'=>'integer',      'label'=>'TechnicalID',      'enabled'=>1, 'visible'=>-2, 'notnull'=>1,  'index'=>1, 'position'=>1, 'comment'=>'Id'),
    -		'nom'           =>array('type'=>'varchar(128)', 'label'=>'Name',            'enabled'=>1, 'visible'=>1,  'notnull'=>1,  'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'),
    -		'name_alias'    =>array('type'=>'varchar(128)', 'label'=>'Name',            'enabled'=>1, 'visible'=>1,  'notnull'=>1,  'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'),
    -		'entity'        =>array('type'=>'integer',      'label'=>'Entity',           'enabled'=>1, 'visible'=>0,  'default'=>1, 'notnull'=>1,  'index'=>1, 'position'=>20),
    +		'nom'           =>array('type'=>'varchar(128)', 'label'=>'Name',             'enabled'=>1, 'visible'=>1,  'notnull'=>1,  'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'),
    +		'name_alias'    =>array('type'=>'varchar(128)', 'label'=>'Name',             'enabled'=>1, 'visible'=>1,  'notnull'=>1,  'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'),
    +		'entity'        =>array('type'=>'integer',      'label'=>'Entity',           'enabled'=>1, 'visible'=>0,  'default'=>1,  'notnull'=>1,  'index'=>1, 'position'=>20),
     		'note_public'   =>array('type'=>'text',			'label'=>'NotePublic',		 'enabled'=>1, 'visible'=>0,  'position'=>60),
     		'note_private'  =>array('type'=>'text',			'label'=>'NotePrivate',		 'enabled'=>1, 'visible'=>0,  'position'=>61),
     		'datec'			=>array('type'=>'datetime',     'label'=>'DateCreation',     'enabled'=>1, 'visible'=>-2, 'notnull'=>1,  'position'=>500),
    @@ -82,6 +96,9 @@ class Societe extends CommonObject
     	);
     
     
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
     
     	/**
    @@ -92,6 +109,11 @@ class Societe extends CommonObject
     	 */
     	public $nom;
     
    +	/**
    +	 * @var string name
    +	 */
    +	public $name;
    +
     	/**
     	 * Alias names (commercial, trademark or alias names)
     	 * @var string
    @@ -99,7 +121,12 @@ class Societe extends CommonObject
     	public $name_alias;
     
     	public $particulier;
    +
    +	/**
    +	 * @var string Address
    +	 */
     	public $address;
    +
     	public $zip;
     	public $town;
     
    @@ -166,6 +193,16 @@ class Societe extends CommonObject
     	 * @var string
     	 */
     	public $skype;
    +	/**
    +	 * Twitter username
    +	 * @var string
    +	 */
    +	public $twitter;
    +	/**
    +	 * Facebook username
    +	 * @var string
    +	 */
    +	public $facebook;
     	/**
     	 * Webpage
     	 * @var string
    @@ -245,7 +282,12 @@ class Societe extends CommonObject
     	public $remise_supplier_percent;
     	public $mode_reglement_supplier_id;
     	public $cond_reglement_supplier_id;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_prospectlevel;
    +
     	public $name_bis;
     
     	//Log data
    @@ -308,6 +350,12 @@ class Societe extends CommonObject
     	 */
     	public $code_compta;
     
    +    /**
    +     * Accounting code for client
    +     * @var string
    +     */
    +    public $code_compta_client;
    +
     	/**
     	 * Accounting code for suppliers
     	 * @var string
    @@ -366,7 +414,11 @@ class Societe extends CommonObject
     	 */
     	public $default_lang;
     
    +	/**
    +	 * @var string Ref
    +	 */
     	public $ref;
    +
     	public $ref_int;
     	/**
     	 * External user reference.
    @@ -403,12 +455,20 @@ class Societe extends CommonObject
     	public $array_options;
     
     	// Incoterms
    +	/**
    +     * @var int ID
    +     */
     	public $fk_incoterms;
    +
     	public $location_incoterms;
     	public $libelle_incoterms;  //Used into tooltip
     
     	// Multicurrency
    +	/**
    +     * @var int ID
    +     */
     	public $fk_multicurrency;
    +
     	public $multicurrency_code;
     
     
    @@ -510,7 +570,7 @@ class Societe extends CommonObject
     					$this->add_commercial($user, $this->commercial_id);
     				}
     				// si un commercial cree un client il lui est affecte automatiquement
    -				else if (empty($user->rights->societe->client->voir))
    +				elseif (empty($user->rights->societe->client->voir))
     				{
     					$this->add_commercial($user, $user->id);
     				}
    @@ -552,7 +612,6 @@ class Societe extends CommonObject
     				$this->db->rollback();
     				return $result;
     			}
    -
     		}
     		else
     		{
    @@ -563,6 +622,7 @@ class Societe extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Create a contact/address from thirdparty
     	 *
    @@ -571,6 +631,7 @@ class Societe extends CommonObject
     	 */
     	function create_individual(User $user)
     	{
    +        // phpcs:enable
     		require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
     		$contact=new Contact($this->db);
     
    @@ -631,15 +692,15 @@ class Societe extends CommonObject
     				{
     					$this->errors[] = 'ErrorBadCustomerCodeSyntax';
     				}
    -				if ($rescode == -2)
    +				elseif ($rescode == -2)
     				{
     					$this->errors[] = 'ErrorCustomerCodeRequired';
     				}
    -				if ($rescode == -3)
    +				elseif ($rescode == -3)
     				{
     					$this->errors[] = 'ErrorCustomerCodeAlreadyUsed';
     				}
    -				if ($rescode == -4)
    +				elseif ($rescode == -4)
     				{
     					$this->errors[] = 'ErrorPrefixRequired';
     				}
    @@ -656,15 +717,15 @@ class Societe extends CommonObject
     				{
     					$this->errors[] = 'ErrorBadSupplierCodeSyntax';
     				}
    -				if ($rescode == -2)
    +				elseif ($rescode == -2)
     				{
     					$this->errors[] = 'ErrorSupplierCodeRequired';
     				}
    -				if ($rescode == -3)
    +				elseif ($rescode == -3)
     				{
     					$this->errors[] = 'ErrorSupplierCodeAlreadyUsed';
     				}
    -				if ($rescode == -5)
    +				elseif ($rescode == -5)
     				{
     					$this->errors[] = 'ErrorprefixRequired';
     				}
    @@ -785,6 +846,8 @@ class Societe extends CommonObject
     		$this->fax			= preg_replace("/\./","",$this->fax);
     		$this->email		= trim($this->email);
     		$this->skype		= trim($this->skype);
    +		$this->twitter		= trim($this->twitter);
    +		$this->facebook		= trim($this->facebook);
     		$this->url			= $this->url?clean_url($this->url,0):'';
     		$this->note_private = trim($this->note_private);
     		$this->note_public  = trim($this->note_public);
    @@ -926,6 +989,8 @@ class Societe extends CommonObject
     			$sql .= ",fax = ".(! empty($this->fax)?"'".$this->db->escape($this->fax)."'":"null");
     			$sql .= ",email = ".(! empty($this->email)?"'".$this->db->escape($this->email)."'":"null");
     			$sql .= ",skype = ".(! empty($this->skype)?"'".$this->db->escape($this->skype)."'":"null");
    +			$sql .= ",twitter = ".(! empty($this->twitter)?"'".$this->db->escape($this->twitter)."'":"null");
    +			$sql .= ",facebook = ".(! empty($this->facebook)?"'".$this->db->escape($this->facebook)."'":"null");
     			$sql .= ",url = ".(! empty($this->url)?"'".$this->db->escape($this->url)."'":"null");
     
     			$sql .= ",parent = " . ($this->parent > 0 ? $this->parent : "null");
    @@ -954,7 +1019,6 @@ class Societe extends CommonObject
     					$sql .=",localtax1_value =".$this->localtax1_value;
     				}
     				else $sql .=",localtax1_value =0.000";
    -
     			}
     			else $sql .=",localtax1_value =0.000";
     
    @@ -965,7 +1029,6 @@ class Societe extends CommonObject
     					$sql .=",localtax2_value =".$this->localtax2_value;
     				}
     				else $sql .=",localtax2_value =0.000";
    -
     			}
     			else $sql .=",localtax2_value =0.000";
     
    @@ -1024,10 +1087,26 @@ class Societe extends CommonObject
     			$resql=$this->db->query($sql);
     			if ($resql)
     			{
    -				unset($this->country_code);		// We clean this because it may have been changed after an update of country_id
    -				unset($this->country);
    -				unset($this->state_code);
    -				unset($this->state);
    +				if (is_object($this->oldcopy))	// If we have information on old values
    +				{
    +					if ($this->oldcopy->country_id != $this->country_id)
    +					{
    +						unset($this->country_code);
    +						unset($this->country);
    +					}
    +					if ($this->oldcopy->state_id != $this->state_id)
    +					{
    +						unset($this->state_code);
    +						unset($this->state);
    +					}
    +				}
    +				else
    +				{
    +					unset($this->country_code);	// We clean this, in the doubt, because it may have been changed after an update of country_id
    +					unset($this->country);
    +					unset($this->state_code);
    +					unset($this->state);
    +				}
     
     				$nbrowsaffected = $this->db->affected_rows($resql);
     
    @@ -1051,6 +1130,8 @@ class Societe extends CommonObject
     							$lmember->address=$this->address;
     							$lmember->email=$this->email;
     							$lmember->skype=$this->skype;
    +							$lmember->twitter=$this->twitter;
    +							$lmember->facebook=$this->facebook;
     							$lmember->phone=$this->phone;
     
     							$result=$lmember->update($user,0,1,1,1);	// Use nosync to 1 to avoid cyclic updates
    @@ -1061,7 +1142,7 @@ class Societe extends CommonObject
     								$error++;
     							}
     						}
    -						else if ($result < 0)
    +						elseif ($result < 0)
     						{
     							$this->error=$lmember->error;
     							$error++;
    @@ -1154,7 +1235,7 @@ class Societe extends CommonObject
     		$sql .= ', s.status';
     		$sql .= ', s.price_level';
     		$sql .= ', s.tms as date_modification, s.fk_user_creat, s.fk_user_modif';
    -		$sql .= ', s.phone, s.fax, s.email, s.skype, s.url, s.zip, s.town, s.note_private, s.note_public, s.model_pdf, s.client, s.fournisseur';
    +		$sql .= ', s.phone, s.fax, s.email, s.skype, s.twitter, s.facebook, s.url, s.zip, s.town, s.note_private, s.note_public, s.model_pdf, s.client, s.fournisseur';
     		$sql .= ', s.siren as idprof1, s.siret as idprof2, s.ape as idprof3, s.idprof4, s.idprof5, s.idprof6';
     		$sql .= ', s.capital, s.tva_intra';
     		$sql .= ', s.fk_typent as typent_id';
    @@ -1247,6 +1328,8 @@ class Societe extends CommonObject
     
     				$this->email = $obj->email;
     				$this->skype = $obj->skype;
    +				$this->twitter = $obj->twitter;
    +				$this->facebook = $obj->facebook;
     				$this->url = $obj->url;
     				$this->phone = $obj->phone;
     				$this->fax = $obj->fax;
    @@ -1358,114 +1441,6 @@ class Societe extends CommonObject
     		return $result;
     	}
     
    -	/**
    -	 * 	Search and fetch thirparties by name
    -	 *
    -	 * 	@param		string		$name		Name
    -	 * 	@param		int			$type		Type of thirdparties (0=any, 1=customer, 2=prospect, 3=supplier)
    -	 * 	@param		array		$filters	Array of couple field name/value to filter the companies with the same name
    -	 * 	@param		boolean		$exact		Exact string search (true/false)
    -	 * 	@param		boolean		$case		Case sensitive (true/false)
    -	 * 	@param		boolean		$similar	Add test if string inside name into database, or name into database inside string. Do not use this: Not compatible with other database.
    -	 * 	@param		string		$clause		Clause for filters
    -	 * 	@return		array|int				<0 if KO, array of thirdparties object if OK
    -	 */
    -	function searchByName($name, $type='0', $filters = array(), $exact = false, $case = false, $similar = false, $clause = 'AND')
    -	{
    -		$thirdparties = array();
    -
    -		dol_syslog("searchByName name=".$name." type=".$type." exact=".$exact);
    -
    -		// Check parameter
    -		if (empty($name))
    -		{
    -			$this->errors[]='ErrorBadValueForParameter';
    -			return -1;
    -		}
    -
    -		// Generation requete recherche
    -		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe";
    -		$sql.= " WHERE entity IN (".getEntity('societe').")";
    -		if (! empty($type))
    -		{
    -			if ($type == 1 || $type == 2)
    -				$sql.= " AND client = ".$type;
    -			elseif ($type == 3)
    -				$sql.= " AND fournisseur = 1";
    -		}
    -		if (! empty($name))
    -		{
    -			if (! $exact)
    -			{
    -				if (preg_match('/^([\*])?[^*]+([\*])?$/', $name, $regs) && count($regs) > 1)
    -				{
    -					$name = str_replace('*', '%', $name);
    -				}
    -				else
    -				{
    -					$name = '%'.$name.'%';
    -				}
    -			}
    -			$sql.= " AND ";
    -			if (is_array($filters) && ! empty($filters))
    -				$sql.= "(";
    -			if ($similar)
    -			{
    -				// For test similitude (string inside name into database, or name into database inside string)
    -				// Do not use this. Not compatible with other database.
    -				$sql.= "(LOCATE('".$this->db->escape($name)."', nom) > 0 OR LOCATE(nom, '".$this->db->escape($name)."') > 0)";
    -			}
    -			else
    -			{
    -				if (! $case)
    -					$sql.= "nom LIKE '".$this->db->escape($name)."'";
    -				else
    -					$sql.= "nom LIKE BINARY '".$this->db->escape($name)."'";
    -			}
    -		}
    -		if (is_array($filters) && ! empty($filters))
    -		{
    -			foreach($filters as $field => $value)
    -			{
    -				if (! $exact)
    -				{
    -					if (preg_match('/^([\*])?[^*]+([\*])?$/', $value, $regs) && count($regs) > 1)
    -					{
    -						$value = str_replace('*', '%', $value);
    -					}
    -					else
    -					{
    -						$value = '%'.$value.'%';
    -					}
    -				}
    -				if (! $case)
    -					$sql.= " ".$clause." ".$field." LIKE '".$this->db->escape($value)."'";
    -				else
    -					$sql.= " ".$clause." ".$field." LIKE BINARY '".$this->db->escape($value)."'";
    -			}
    -			if (! empty($name))
    -				$sql.= ")";
    -		}
    -
    -		$res  = $this->db->query($sql);
    -		if ($res)
    -		{
    -			while ($rec = $this->db->fetch_array($res))
    -			{
    -				$soc = new Societe($this->db);
    -				$soc->fetch($rec['rowid']);
    -				$thirdparties[] = $soc;
    -			}
    -
    -			return $thirdparties;
    -		}
    -		else
    -		{
    -			$this->error=$this->db->lasterror();
    -			return -1;
    -		}
    -	}
    -
     	/**
     	 *    Delete a third party from database and all its dependencies (contacts, rib...)
     	 *
    @@ -1605,6 +1580,7 @@ class Societe extends CommonObject
     		return 0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Define third party as a customer
     	 *
    @@ -1612,6 +1588,7 @@ class Societe extends CommonObject
     	 */
     	function set_as_client()
     	{
    +        // phpcs:enable
     		if ($this->id)
     		{
     			$newclient=1;
    @@ -1631,6 +1608,7 @@ class Societe extends CommonObject
     		return 0;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Definit la societe comme un client
     	 *
    @@ -1641,6 +1619,7 @@ class Societe extends CommonObject
     	 */
     	function set_remise_client($remise, $note, User $user)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		// Nettoyage parametres
    @@ -1692,6 +1671,7 @@ class Societe extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Definit la societe comme un client
     	 *
    @@ -1702,6 +1682,7 @@ class Societe extends CommonObject
     	 */
     	function set_remise_supplier($remise, $note, User $user)
     	{
    +        // phpcs:enable
     		global $conf, $langs;
     
     		// Nettoyage parametres
    @@ -1753,6 +1734,7 @@ class Societe extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    	Add a discount for third party
     	 *
    @@ -1765,6 +1747,7 @@ class Societe extends CommonObject
     	 */
     	function set_remise_except($remise, User $user, $desc, $tva_tx=0, $discount_type=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		// Clean parameters
    @@ -1900,6 +1883,7 @@ class Societe extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Set the price level
     	 *
    @@ -1909,6 +1893,7 @@ class Societe extends CommonObject
     	 */
     	function set_price_level($price_level, User $user)
     	{
    +        // phpcs:enable
     		if ($this->id)
     		{
     			$now=dol_now();
    @@ -1937,6 +1922,7 @@ class Societe extends CommonObject
     		return -1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Add link to sales representative
     	 *
    @@ -1946,6 +1932,10 @@ class Societe extends CommonObject
     	 */
     	function add_commercial(User $user, $commid)
     	{
    +        // phpcs:enable
    +		$error=0;
    +
    +
     		if ($this->id > 0 && $commid > 0)
     		{
     			$sql = "DELETE FROM  ".MAIN_DB_PREFIX."societe_commerciaux";
    @@ -1961,9 +1951,16 @@ class Societe extends CommonObject
     			{
     				dol_syslog(get_class($this)."::add_commercial Erreur");
     			}
    +			else {
    +				$this->context=array('commercial_modified'=>$commid);
    +
    +				$result=$this->call_trigger('COMPANY_LINK_SALE_REPRESENTATIVE',$user);
    +                if ($result < 0) $error++;
    +			}
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Add link to sales representative
     	 *
    @@ -1973,6 +1970,13 @@ class Societe extends CommonObject
     	 */
     	function del_commercial(User $user, $commid)
     	{
    +        // phpcs:enable
    +		$error=0;
    +		$this->context=array('commercial_modified'=>$commid);
    +
    +		$result=$this->call_trigger('COMPANY_UNLINK_SALE_REPRESENTATIVE',$user);
    +        if ($result < 0) $error++;
    +
     		if ($this->id > 0 && $commid > 0)
     		{
     			$sql  = "DELETE FROM  ".MAIN_DB_PREFIX."societe_commerciaux ";
    @@ -2061,37 +2065,37 @@ class Societe extends CommonObject
     		   $label.= '<u>' . $langs->trans("ShowCustomer") . '</u>';
     		   $linkstart = '<a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$this->id;
     		}
    -		else if ($option == 'prospect' && empty($conf->global->SOCIETE_DISABLE_PROSPECTS))
    +		elseif ($option == 'prospect' && empty($conf->global->SOCIETE_DISABLE_PROSPECTS))
     		{
     			$label.= '<u>' . $langs->trans("ShowProspect") . '</u>';
     			$linkstart = '<a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$this->id;
     		}
    -		else if ($option == 'supplier')
    +		elseif ($option == 'supplier')
     		{
     			$label.= '<u>' . $langs->trans("ShowSupplier") . '</u>';
     			$linkstart = '<a href="'.DOL_URL_ROOT.'/fourn/card.php?socid='.$this->id;
     		}
    -		else if ($option == 'agenda')
    +		elseif ($option == 'agenda')
     		{
     			$label.= '<u>' . $langs->trans("ShowAgenda") . '</u>';
     			$linkstart = '<a href="'.DOL_URL_ROOT.'/societe/agenda.php?socid='.$this->id;
     		}
    -		else if ($option == 'project')
    +		elseif ($option == 'project')
     		{
     			$label.= '<u>' . $langs->trans("ShowProject") . '</u>';
     			$linkstart = '<a href="'.DOL_URL_ROOT.'/societe/project.php?socid='.$this->id;
     		}
    -		else if ($option == 'margin')
    +		elseif ($option == 'margin')
     		{
     			$label.= '<u>' . $langs->trans("ShowMargin") . '</u>';
     			$linkstart = '<a href="'.DOL_URL_ROOT.'/margin/tabs/thirdpartyMargins.php?socid='.$this->id.'&type=1';
     		}
    -		else if ($option == 'contact')
    +		elseif ($option == 'contact')
     		{
     			$label.= '<u>' . $langs->trans("ShowContacts") . '</u>';
     			$linkstart = '<a href="'.DOL_URL_ROOT.'/societe/contact.php?socid='.$this->id;
     		}
    -		else if ($option == 'ban')
    +		elseif ($option == 'ban')
     		{
     			$label.= '<u>' . $langs->trans("ShowBan") . '</u>';
     			$linkstart = '<a href="'.DOL_URL_ROOT.'/societe/paymentmodes.php?socid='.$this->id;
    @@ -2112,13 +2116,22 @@ class Societe extends CommonObject
     		}
     		if (! empty($this->country_code))
     			$label.= '<br><b>' . $langs->trans('Country') . ':</b> '. $this->country_code;
    -		if (! empty($this->tva_intra))
    +		if (! empty($this->tva_intra) || (! empty($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP) && strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'vatnumber') !== false))
     			$label.= '<br><b>' . $langs->trans('VATIntra') . ':</b> '. $this->tva_intra;
    -		if (! empty($this->code_client) && $this->client)
    +		if (! empty($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP))
    +		{
    +			if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid1') !== false) $label.= '<br><b>' . $langs->trans('ProfId1'.$this->country_code) . ':</b> '. $this->idprof1;
    +			if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid2') !== false) $label.= '<br><b>' . $langs->trans('ProfId2'.$this->country_code) . ':</b> '. $this->idprof2;
    +			if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid3') !== false) $label.= '<br><b>' . $langs->trans('ProfId3'.$this->country_code) . ':</b> '. $this->idprof3;
    +			if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid4') !== false) $label.= '<br><b>' . $langs->trans('ProfId4'.$this->country_code) . ':</b> '. $this->idprof4;
    +			if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid5') !== false) $label.= '<br><b>' . $langs->trans('ProfId5'.$this->country_code) . ':</b> '. $this->idprof5;
    +			if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid6') !== false) $label.= '<br><b>' . $langs->trans('ProfId6'.$this->country_code) . ':</b> '. $this->idprof6;
    +		}
    +		if (! empty($this->code_client) && ($this->client == 1 || $this->client == 3))
     			$label.= '<br><b>' . $langs->trans('CustomerCode') . ':</b> '. $this->code_client;
     		if (! empty($this->code_fournisseur) && $this->fournisseur)
     			$label.= '<br><b>' . $langs->trans('SupplierCode') . ':</b> '. $this->code_fournisseur;
    -		if (! empty($conf->accounting->enabled) && $this->client)
    +		if (! empty($conf->accounting->enabled) && ($this->client == 1 || $this->client == 3))
     			$label.= '<br><b>' . $langs->trans('CustomerAccountancyCode') . ':</b> '. ($this->code_compta ? $this->code_compta : $this->code_compta_client);
     		if (! empty($conf->accounting->enabled) && $this->fournisseur)
     			$label.= '<br><b>' . $langs->trans('SupplierAccountancyCode') . ':</b> '. $this->code_compta_fournisseur;
    @@ -2187,6 +2200,7 @@ class Societe extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -2196,46 +2210,48 @@ class Societe extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->load('companies');
     
     		if ($mode == 0)
     		{
     			if ($statut==0) return $langs->trans("ActivityCeased");
    -			if ($statut==1) return $langs->trans("InActivity");
    +			elseif ($statut==1) return $langs->trans("InActivity");
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($statut==0) return $langs->trans("ActivityCeased");
    -			if ($statut==1) return $langs->trans("InActivity");
    +			elseif ($statut==1) return $langs->trans("InActivity");
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut==0) return img_picto($langs->trans("ActivityCeased"),'statut5', 'class="pictostatus"').' '.$langs->trans("ActivityCeased");
    -			if ($statut==1) return img_picto($langs->trans("InActivity"),'statut4', 'class="pictostatus"').' '.$langs->trans("InActivity");
    +			elseif ($statut==1) return img_picto($langs->trans("InActivity"),'statut4', 'class="pictostatus"').' '.$langs->trans("InActivity");
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut==0) return img_picto($langs->trans("ActivityCeased"),'statut5', 'class="pictostatus"');
    -			if ($statut==1) return img_picto($langs->trans("InActivity"),'statut4', 'class="pictostatus"');
    +			elseif ($statut==1) return img_picto($langs->trans("InActivity"),'statut4', 'class="pictostatus"');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut==0) return img_picto($langs->trans("ActivityCeased"),'statut5', 'class="pictostatus"').' '.$langs->trans("ActivityCeased");
    -			if ($statut==1) return img_picto($langs->trans("InActivity"),'statut4', 'class="pictostatus"').' '.$langs->trans("InActivity");
    +			elseif ($statut==1) return img_picto($langs->trans("InActivity"),'statut4', 'class="pictostatus"').' '.$langs->trans("InActivity");
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut==0) return '<span class="hideonsmartphone">'.$langs->trans("ActivityCeased").'</span> '.img_picto($langs->trans("ActivityCeased"),'statut5', 'class="pictostatus"');
    -			if ($statut==1) return '<span class="hideonsmartphone">'.$langs->trans("InActivity").'</span> '.img_picto($langs->trans("InActivity"),'statut4', 'class="pictostatus"');
    +			elseif ($statut==1) return '<span class="hideonsmartphone">'.$langs->trans("InActivity").'</span> '.img_picto($langs->trans("InActivity"),'statut4', 'class="pictostatus"');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($statut==0) return '<span class="hideonsmartphone">'.$langs->trans("ActivityCeased").'</span> '.img_picto($langs->trans("ActivityCeased"),'statut5', 'class="pictostatus"');
    -			if ($statut==1) return '<span class="hideonsmartphone">'.$langs->trans("InActivity").'</span> '.img_picto($langs->trans("InActivity"),'statut4', 'class="pictostatus"');
    +			elseif ($statut==1) return '<span class="hideonsmartphone">'.$langs->trans("InActivity").'</span> '.img_picto($langs->trans("InActivity"),'statut4', 'class="pictostatus"');
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Return list of contacts emails existing for third party
     	 *
    @@ -2244,6 +2260,7 @@ class Societe extends CommonObject
     	 */
     	function thirdparty_and_contact_email_array($addthirdparty=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$contact_emails = $this->contact_property_array('email',1);
    @@ -2256,6 +2273,7 @@ class Societe extends CommonObject
     		return $contact_emails;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Return list of contacts mobile phone existing for third party
     	 *
    @@ -2263,6 +2281,7 @@ class Societe extends CommonObject
     	 */
     	function thirdparty_and_contact_phone_array()
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$contact_phone = $this->contact_property_array('mobile');
    @@ -2276,6 +2295,7 @@ class Societe extends CommonObject
     		return $contact_phone;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return list of contacts emails or mobile existing for third party
     	 *
    @@ -2285,6 +2305,7 @@ class Societe extends CommonObject
     	 */
     	function contact_property_array($mode='email', $hidedisabled=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$contact_property = array();
    @@ -2344,6 +2365,7 @@ class Societe extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Renvoie la liste des contacts de cette societe
     	 *
    @@ -2351,6 +2373,7 @@ class Societe extends CommonObject
     	 */
     	function contact_array()
     	{
    +        // phpcs:enable
     		$contacts = array();
     
     		$sql = "SELECT rowid, lastname, firstname FROM ".MAIN_DB_PREFIX."socpeople WHERE fk_soc = ".$this->id;
    @@ -2376,6 +2399,7 @@ class Societe extends CommonObject
     		return $contacts;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Renvoie la liste des contacts de cette societe
     	 *
    @@ -2383,6 +2407,7 @@ class Societe extends CommonObject
     	 */
     	function contact_array_objects()
     	{
    +        // phpcs:enable
     		require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
     		$contacts = array();
     
    @@ -2411,6 +2436,7 @@ class Societe extends CommonObject
     		return $contacts;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return property of contact from its id
     	 *
    @@ -2420,6 +2446,7 @@ class Societe extends CommonObject
     	 */
     	function contact_get_property($rowid,$mode)
     	{
    +        // phpcs:enable
     		$contact_property='';
     
     		if (empty($rowid)) return '';
    @@ -2446,10 +2473,10 @@ class Societe extends CommonObject
     		{
     			dol_print_error($this->db);
     		}
    -
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return bank number property of thirdparty (label or rum)
     	 *
    @@ -2458,6 +2485,7 @@ class Societe extends CommonObject
     	 */
     	function display_rib($mode='label')
     	{
    +        // phpcs:enable
     		require_once DOL_DOCUMENT_ROOT . '/societe/class/companybankaccount.class.php';
     
     		$bac = new CompanyBankAccount($this->db);
    @@ -2486,6 +2514,7 @@ class Societe extends CommonObject
     		return 'BadParameterToFunctionDisplayRib';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return Array of RIB
     	 *
    @@ -2493,6 +2522,7 @@ class Societe extends CommonObject
     	 */
     	function get_all_rib()
     	{
    +        // phpcs:enable
     		require_once DOL_DOCUMENT_ROOT . '/societe/class/companybankaccount.class.php';
     		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe_rib WHERE type='ban' AND fk_soc = ".$this->id;
     		$result = $this->db->query($sql);
    @@ -2514,6 +2544,7 @@ class Societe extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Attribut un code client a partir du module de controle des codes.
     	 *  Return value is stored into this->code_client
    @@ -2524,6 +2555,7 @@ class Societe extends CommonObject
     	 */
     	function get_codeclient($objsoc=0,$type=0)
     	{
    +        // phpcs:enable
     		global $conf;
     		if (! empty($conf->global->SOCIETE_CODECLIENT_ADDON))
     		{
    @@ -2544,6 +2576,7 @@ class Societe extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Attribut un code fournisseur a partir du module de controle des codes.
     	 *  Return value is stored into this->code_fournisseur
    @@ -2554,6 +2587,7 @@ class Societe extends CommonObject
     	 */
     	function get_codefournisseur($objsoc=0,$type=1)
     	{
    +        // phpcs:enable
     		global $conf;
     		if (! empty($conf->global->SOCIETE_CODECLIENT_ADDON))
     		{
    @@ -2573,6 +2607,7 @@ class Societe extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Verifie si un code client est modifiable en fonction des parametres
     	 *    du module de controle des codes.
    @@ -2581,6 +2616,7 @@ class Societe extends CommonObject
     	 */
     	function codeclient_modifiable()
     	{
    +        // phpcs:enable
     		global $conf;
     		if (! empty($conf->global->SOCIETE_CODECLIENT_ADDON))
     		{
    @@ -2608,6 +2644,7 @@ class Societe extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Verifie si un code fournisseur est modifiable dans configuration du module de controle des codes
     	 *
    @@ -2615,6 +2652,7 @@ class Societe extends CommonObject
     	 */
     	function codefournisseur_modifiable()
     	{
    +        // phpcs:enable
     		global $conf;
     		if (! empty($conf->global->SOCIETE_CODECLIENT_ADDON))
     		{
    @@ -2642,6 +2680,7 @@ class Societe extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Check customer code
     	 *
    @@ -2653,6 +2692,7 @@ class Societe extends CommonObject
     	 */
     	function check_codeclient()
     	{
    +        // phpcs:enable
     		global $conf;
     		if (! empty($conf->global->SOCIETE_CODECLIENT_ADDON))
     		{
    @@ -2677,6 +2717,7 @@ class Societe extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Check supplier code
     	 *
    @@ -2688,6 +2729,7 @@ class Societe extends CommonObject
     	 */
     	function check_codefournisseur()
     	{
    +        // phpcs:enable
     		global $conf;
     		if (! empty($conf->global->SOCIETE_CODECLIENT_ADDON))
     		{
    @@ -2712,6 +2754,7 @@ class Societe extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    	Renvoie un code compta, suivant le module de code compta.
     	 *      Peut etre identique a celui saisit ou genere automatiquement.
    @@ -2722,6 +2765,7 @@ class Societe extends CommonObject
     	 */
     	function get_codecompta($type)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		if (! empty($conf->global->SOCIETE_CODECOMPTA_ADDON))
    @@ -2762,6 +2806,7 @@ class Societe extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Define parent commany of current company
     	 *
    @@ -2770,6 +2815,7 @@ class Societe extends CommonObject
     	 */
     	function set_parent($id)
     	{
    +        // phpcs:enable
     		if ($this->id)
     		{
     			$sql = "UPDATE ".MAIN_DB_PREFIX."societe";
    @@ -2790,6 +2836,7 @@ class Societe extends CommonObject
     		else return -1;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Returns if a profid sould be verified
     	 *
    @@ -2798,6 +2845,7 @@ class Societe extends CommonObject
     	 */
     	function id_prof_verifiable($idprof)
     	{
    +        // phpcs:enable
     		global $conf;
     
     	 	switch($idprof)
    @@ -2827,6 +2875,7 @@ class Societe extends CommonObject
     		return $ret;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Verify if a profid exists into database for others thirds
     	 *
    @@ -2837,6 +2886,7 @@ class Societe extends CommonObject
     	 */
     	function id_prof_exists($idprof, $value, $socid=0)
     	{
    +        // phpcs:enable
     		$field = $idprof;
     
     	 	switch($idprof)	// For backward compatibility
    @@ -2885,6 +2935,7 @@ class Societe extends CommonObject
     		else return false;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Verifie la validite d'un identifiant professionnel en fonction du pays de la societe (siren, siret, ...)
     	 *
    @@ -2895,6 +2946,7 @@ class Societe extends CommonObject
     	 */
     	function id_prof_check($idprof,$soc)
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$ok=1;
    @@ -3034,6 +3086,7 @@ class Societe extends CommonObject
     		return $ok;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Return an url to check online a professional id or empty string
     	 *
    @@ -3044,6 +3097,7 @@ class Societe extends CommonObject
     	 */
     	function id_prof_url($idprof,$thirdparty)
     	{
    +        // phpcs:enable
     		global $conf,$langs,$hookmanager;
     
     		$url='';
    @@ -3086,6 +3140,7 @@ class Societe extends CommonObject
     		return '';
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *   Indique si la societe a des projets
     	 *
    @@ -3093,6 +3148,7 @@ class Societe extends CommonObject
     	 */
     	function has_projects()
     	{
    +        // phpcs:enable
     		$sql = 'SELECT COUNT(*) as numproj FROM '.MAIN_DB_PREFIX.'projet WHERE fk_soc = ' . $this->id;
     		$resql = $this->db->query($sql);
     		if ($resql)
    @@ -3150,7 +3206,6 @@ class Societe extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -3191,6 +3246,7 @@ class Societe extends CommonObject
     		return isInEEC($this);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Charge la liste des categories fournisseurs
     	 *
    @@ -3198,6 +3254,7 @@ class Societe extends CommonObject
     	 */
     	function LoadSupplierCateg()
     	{
    +        // phpcs:enable
     		$this->SupplierCategories = array();
     		$sql = "SELECT rowid, label";
     		$sql.= " FROM ".MAIN_DB_PREFIX."categorie";
    @@ -3218,6 +3275,7 @@ class Societe extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Insert link supplier - category
     	 *
    @@ -3226,6 +3284,7 @@ class Societe extends CommonObject
     	 */
     	function AddFournisseurInCategory($categorie_id)
     	{
    +        // phpcs:enable
     		if ($categorie_id > 0 && $this->id > 0)
     		{
     			$sql = "INSERT INTO ".MAIN_DB_PREFIX."categorie_fournisseur (fk_categorie, fk_soc) ";
    @@ -3241,6 +3300,7 @@ class Societe extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Create a third party into database from a member object
     	 *
    @@ -3252,6 +3312,7 @@ class Societe extends CommonObject
     	 */
     	function create_from_member(Adherent $member, $socname='', $socalias='', $customercode='')
     	{
    +        // phpcs:enable
     		global $user,$langs;
     
     		dol_syslog(get_class($this)."::create_from_member", LOG_DEBUG);
    @@ -3273,6 +3334,8 @@ class Societe extends CommonObject
     		$this->phone=$member->phone;       // Prof phone
     		$this->email=$member->email;
     		$this->skype=$member->skype;
    +		$this->twitter=$member->twitter;
    +		$this->facebook=$member->facebook;
     
     		$this->client = 1;				// A member is a customer by default
     		$this->code_client = ($customercode?$customercode:-1);
    @@ -3329,6 +3392,7 @@ class Societe extends CommonObject
     		$this->town=empty($conf->global->MAIN_INFO_SOCIETE_TOWN)?'':$conf->global->MAIN_INFO_SOCIETE_TOWN;
     		$this->state_id=empty($conf->global->MAIN_INFO_SOCIETE_STATE)?'':$conf->global->MAIN_INFO_SOCIETE_STATE;
     		$this->region_code=empty($conf->global->MAIN_INFO_SOCIETE_REGION)?'':$conf->global->MAIN_INFO_SOCIETE_REGION;
    +		$this->object=empty($conf->global->MAIN_INFO_SOCIETE_OBJECT)?'':$conf->global->MAIN_INFO_SOCIETE_OBJECT;
     
     		$this->note_private=empty($conf->global->MAIN_INFO_SOCIETE_NOTE)?'':$conf->global->MAIN_INFO_SOCIETE_NOTE;
     
    @@ -3412,6 +3476,8 @@ class Societe extends CommonObject
     		$this->country_code='FR';
     		$this->email='specimen@specimen.com';
     		$this->skype='tom.hanson';
    +		$this->twitter='tomhanson';
    +		$this->facebook='tomhanson';
     		$this->url='http://www.specimen.com';
     
     		$this->phone='0909090901';
    @@ -3518,6 +3584,7 @@ class Societe extends CommonObject
     		return $this->LibProspLevel($this->fk_prospectlevel);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return label of prospect level
     	 *
    @@ -3526,6 +3593,7 @@ class Societe extends CommonObject
     	 */
     	function LibProspLevel($fk_prospectlevel)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		$lib=$langs->trans("ProspectLevel".$fk_prospectlevel);
    @@ -3538,6 +3606,7 @@ class Societe extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Set prospect level
     	 *
    @@ -3547,6 +3616,7 @@ class Societe extends CommonObject
     	 */
     	function set_prospect_level(User $user)
     	{
    +        // phpcs:enable
     		return $this->update($this->id, $user);
     	}
     
    @@ -3562,6 +3632,7 @@ class Societe extends CommonObject
     		return $this->LibProspCommStatut($this->stcomm_id, $mode, $label);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return label of a given status
     	 *
    @@ -3572,6 +3643,7 @@ class Societe extends CommonObject
     	 */
     	function LibProspCommStatut($statut, $mode=0, $label='')
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->load('customers');
     
    @@ -3615,6 +3687,7 @@ class Societe extends CommonObject
     		return "Error, mode/status not found";
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Set outstanding value
     	 *
    @@ -3624,6 +3697,7 @@ class Societe extends CommonObject
     	 */
     	function set_OutstandingBill(User $user)
     	{
    +        // phpcs:enable
     		return $this->update($this->id, $user);
     	}
     
    @@ -3731,7 +3805,7 @@ class Societe extends CommonObject
     		if ($mode == 'supplier') {
     			$sql .= " AND entity IN (".getEntity('facture_fourn').")";
     		} else {
    -			$sql .= " AND entity IN (".getEntity('facture').")";
    +			$sql .= " AND entity IN (".getEntity('invoice').")";
     		}
     
     		dol_syslog("getOutstandingBills", LOG_DEBUG);
    @@ -3780,14 +3854,17 @@ class Societe extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return amount of bill not paid
     	 *
     	 *  @return		int				Amount in debt for thirdparty
     	 *  @deprecated
    +	 *  @see getOutstandingBills()
     	 */
     	function get_OutstandingBill()
     	{
    +        // phpcs:enable
     		/* Accurate value of remain to pay is to sum remaintopay for each invoice
     	     $paiement = $invoice->getSommePaiement();
     	     $creditnotes=$invoice->getSumCreditNotesUsed();
    @@ -3797,6 +3874,7 @@ class Societe extends CommonObject
     	     */
     		$sql  = "SELECT rowid, total_ttc FROM ".MAIN_DB_PREFIX."facture as f";
     		$sql .= " WHERE fk_soc = ". $this->id;
    +		$sql .= " AND entity IN (".getEntity('invoice').")";
     		$sql .= " AND paye = 0";
     		$sql .= " AND fk_statut <> 0";	// Not a draft
     		//$sql .= " AND (fk_statut <> 3 OR close_code <> 'abandon')";		// Not abandonned for undefined reason
    @@ -3833,6 +3911,7 @@ class Societe extends CommonObject
     		return $this->LibCustProspStatut($this->client);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -3841,6 +3920,7 @@ class Societe extends CommonObject
     	 */
     	function LibCustProspStatut($statut)
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->load('companies');
     
    @@ -3848,7 +3928,6 @@ class Societe extends CommonObject
     		if ($statut==1) return $langs->trans("Customer");
     		if ($statut==2) return $langs->trans("Prospect");
     		if ($statut==3) return $langs->trans("ProspectCustomer");
    -
     	}
     
     
    diff --git a/htdocs/societe/class/societeaccount.class.php b/htdocs/societe/class/societeaccount.class.php
    index 7340a319534..153959938e5 100644
    --- a/htdocs/societe/class/societeaccount.class.php
    +++ b/htdocs/societe/class/societeaccount.class.php
    @@ -39,14 +39,17 @@ class SocieteAccount extends CommonObject
     	 * @var string ID to identify managed object
     	 */
     	public $element = 'societeaccount';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'societe_account';
    +
     	/**
     	 * @var array  Does societeaccount support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     	 */
     	public $ismultientitymanaged = 0;
    +
     	/**
     	 * @var string String with name of icon for societeaccount. Must be the part after the 'object_' into object_myobject.png
     	 */
    @@ -84,7 +87,7 @@ class SocieteAccount extends CommonObject
     		'pass_temp'    => array('type'=>'varchar(128)', 'label'=>'Temp', 'visible'=>0, 'enabled'=>0, 'position'=>32, 'notnull'=>-1,),
     		'fk_soc' => array('type'=>'integer:Societe:societe/class/societe.class.php', 'label'=>'ThirdParty', 'visible'=>1, 'enabled'=>1, 'position'=>40, 'notnull'=>-1, 'index'=>1),
     		'site' => array('type'=>'varchar(128)', 'label'=>'Site', 'visible'=>-1, 'enabled'=>1, 'position'=>41),
    -		'fk_website' => array('type'=>'integer:Website:website/class/website.class.php', 'label'=>'WebSite', 'visible'=>1, 'enabled'=>1, 'position'=>42, 'notnull'=>1, 'index'=>1),
    +		'fk_website' => array('type'=>'integer:Website:website/class/website.class.php', 'label'=>'WebSite', 'visible'=>1, 'enabled'=>1, 'position'=>42, 'notnull'=>-1, 'index'=>1),
     		'date_last_login' => array('type'=>'datetime', 'label'=>'LastConnexion', 'visible'=>2, 'enabled'=>1, 'position'=>50, 'notnull'=>0,),
     		'date_previous_login' => array('type'=>'datetime', 'label'=>'PreviousConnexion', 'visible'=>2, 'enabled'=>1, 'position'=>51, 'notnull'=>0,),
     		//'note_public' => array('type'=>'text', 'label'=>'NotePublic', 'visible'=>-1, 'enabled'=>1, 'position'=>45, 'notnull'=>-1,),
    @@ -96,23 +99,52 @@ class SocieteAccount extends CommonObject
     		'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'visible'=>-2, 'enabled'=>1, 'position'=>1000, 'notnull'=>-1, 'index'=>1,),
     		'status' => array('type'=>'integer', 'label'=>'Status', 'visible'=>1, 'enabled'=>1, 'position'=>1000, 'notnull'=>1, 'index'=>1, 'default'=>1, 'arrayofkeyval'=>array('1'=>'Active','0'=>'Disabled')),
     	);
    +
    +	/**
    +	 * @var int ID
    +	 */
     	public $rowid;
    +
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
    +
     	public $key_account;
    +	public $login;
     	public $pass_encoding;
     	public $pass_crypted;
     	public $pass_temp;
    -	public $fk_soc;
    +
    +	/**
    +	 * @var int Thirdparty ID
    +	 */
    +    public $fk_soc;
    +
     	public $site;
     	public $date_last_login;
     	public $date_previous_login;
     	public $note_private;
     	public $date_creation;
     	public $tms;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_creat;
    +
    +	/**
    +     * @var int ID
    +     */
     	public $fk_user_modif;
    +
     	public $import_key;
    +
    +	/**
    +	 * @var int Status
    +	 */
     	public $status;
    +
     	// END MODULEBUILDER PROPERTIES
     
     
    @@ -208,6 +240,8 @@ class SocieteAccount extends CommonObject
     	        $this->errors = $object->errors;
     	    }
     
    +	    unset($object->context['createfromclone']);
    +
     	    // End
     	    if (!$error) {
     	        $this->db->commit();
    @@ -256,8 +290,6 @@ class SocieteAccount extends CommonObject
     	 */
     	public function getCustomerAccount($id, $site, $status=0)
     	{
    -		global $conf;
    -
     		$sql = "SELECT sa.key_account as key_account, sa.entity";
     		$sql.= " FROM " . MAIN_DB_PREFIX . "societe_account as sa";
     		$sql.= " WHERE sa.fk_soc = " . $id;
    @@ -266,7 +298,7 @@ class SocieteAccount extends CommonObject
     		$sql.= " AND key_account IS NOT NULL AND key_account <> ''";
     		//$sql.= " ORDER BY sa.key_account DESC";
     
    -		dol_syslog(get_class($this) . "::getCustomerAccount Try to find the system customer id of thirdparty id=".$id." (exemple: cus_.... for stripe)", LOG_DEBUG);
    +		dol_syslog(get_class($this) . "::getCustomerAccount Try to find the first system customer id for ".$site." of thirdparty id=".$id." (exemple: cus_.... for stripe)", LOG_DEBUG);
     		$result = $this->db->query($sql);
     		if ($result) {
     			if ($this->db->num_rows($result)) {
    @@ -391,6 +423,7 @@ class SocieteAccount extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return the status
     	 *
    @@ -400,43 +433,44 @@ class SocieteAccount extends CommonObject
     	 */
     	static function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
     		{
     			$prefix='';
     			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == 0) return $langs->trans('Disabled');
    +			elseif ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == 0) return $langs->trans('Disabled');
    +			elseif ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
    -			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
    +			elseif ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
    +			elseif ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 6)
    +		elseif ($mode == 6)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
    -			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
    +			elseif ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
     		}
     	}
     
    @@ -486,7 +520,6 @@ class SocieteAccount extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    diff --git a/htdocs/societe/consumption.php b/htdocs/societe/consumption.php
    index 4138bf0891c..580314dbf1d 100644
    --- a/htdocs/societe/consumption.php
    +++ b/htdocs/societe/consumption.php
    @@ -25,7 +25,7 @@
      *	\brief      Add a tab on thirpdarty view to list all products/services bought or sells by thirdparty
      */
     
    -require("../main.inc.php");
    +require "../main.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    @@ -200,13 +200,13 @@ if ($type_element == 'invoice')
     { 	// Customer : show products from invoices
     	require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
     	$documentstatic=new Facture($db);
    -	$sql_select = 'SELECT f.rowid as doc_id, f.facnumber as doc_number, f.type as doc_type, f.datef as dateprint, f.fk_statut as status, f.paye as paid, ';
    +	$sql_select = 'SELECT f.rowid as doc_id, f.ref as doc_number, f.type as doc_type, f.datef as dateprint, f.fk_statut as status, f.paye as paid, ';
     	$tables_from = MAIN_DB_PREFIX."facture as f,".MAIN_DB_PREFIX."facturedet as d";
     	$where = " WHERE f.fk_soc = s.rowid AND s.rowid = ".$socid;
     	$where.= " AND d.fk_facture = f.rowid";
    -	$where.= " AND f.entity = ".$conf->entity;
    +	$where.= " AND f.entity IN (".getEntity('invoice').")";
     	$dateprint = 'f.datef';
    -	$doc_number='f.facnumber';
    +	$doc_number='f.ref';
     	$thirdTypeSelect='customer';
     }
     if ($type_element == 'propal')
    @@ -554,7 +554,6 @@ if ($sql_select)
     				{
     					print (! empty($objp->description) && $objp->description!=$objp->product_label)?'<br>'.dol_htmlentitiesbr($objp->description):'';
     				}
    -
     			} else {
     
     				if (! empty($objp->label) || ! empty($objp->description))
    @@ -653,6 +652,6 @@ else {
     
     print "</form>";
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/societe/contact.php b/htdocs/societe/contact.php
    index 37fb07eb652..4077a0b1815 100644
    --- a/htdocs/societe/contact.php
    +++ b/htdocs/societe/contact.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2003       Brian Fraval            <brian@fraval.org>
      * Copyright (C) 2004-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
      * Copyright (C) 2005       Eric Seigne             <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2008       Patrick Raguin          <patrick.raguin@auguria.net>
      * Copyright (C) 2010-2016  Juanjo Menent           <jmenent@2byte.es>
      * Copyright (C) 2011-2013  Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    @@ -171,8 +171,6 @@ if ($action != 'presend')
     	}
     }
     
    -
    -
     // End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/societe/document.php b/htdocs/societe/document.php
    index e393fa64a2c..04e5b78682e 100644
    --- a/htdocs/societe/document.php
    +++ b/htdocs/societe/document.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador      <csalvador@gpcsolutions.fr>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    @@ -32,9 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     
    -$langs->load("companies");
    -$langs->load('other');
    -
    +$langs->loadLangs(array("companies", "other"));
     
     $action=GETPOST('action','aZ09');
     $confirm=GETPOST('confirm');
    @@ -105,7 +103,7 @@ if ($object->id)
     	dol_fiche_head($head, 'document', $langs->trans("ThirdParty"), -1, 'company');
     
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -169,6 +167,6 @@ else
     	accessforbidden('',0,0);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/societe/index.php b/htdocs/societe/index.php
    index b15042dd017..6c429e35a22 100644
    --- a/htdocs/societe/index.php
    +++ b/htdocs/societe/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2014      Charles-Fr Benke	    <charles.fr@benke.fr>
      * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
      * Copyright (C) 2016      Ferran Marcet        <fmarcet@2byte.es>
    @@ -366,6 +366,6 @@ else
     //print '</td></tr></table>';
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php
    index 8ea73b73884..aede1515cdf 100644
    --- a/htdocs/societe/list.php
    +++ b/htdocs/societe/list.php
    @@ -1,15 +1,15 @@
     <?php
     /* Copyright (C) 2001-2004  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
      * Copyright (C) 2012       Marcos García           <marcosgdf@gmail.com>
      * Copyright (C) 2013-2015  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
      * Copyright (C) 2015       Florian Henry           <florian.henry@open-concept.pro>
    - * Copyright (C) 2016       Josep Lluis Amador      <joseplluis@lliuretic.cat>
    - * Copyright (C) 2016       Ferran Marcet      		<fmarcet@2byte.es>
    - * Copyright (C) 2017       Rui Strecht      		<rui.strecht@aliartalentos.com>
    - * Copyright (C) 2017       Juanjo Menent      		<jmenent@2byte.es>
    - * Copyright (C) 2018       Nicolas ZABOURI      	<info@inovea-conseil.com>
    + * Copyright (C) 2016-2018  Josep Lluis Amador      <joseplluis@lliuretic.cat>
    + * Copyright (C) 2016       Ferran Marcet      	    <fmarcet@2byte.es>
    + * Copyright (C) 2017       Rui Strecht      	    <rui.strecht@aliartalentos.com>
    + * Copyright (C) 2017       Juanjo Menent      	    <jmenent@2byte.es>
    + * Copyright (C) 2018       Nicolas ZABOURI         <info@inovea-conseil.com>
      *
      * 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
    @@ -84,10 +84,10 @@ $search_categ_cus=trim(GETPOST("search_categ_cus",'int'));
     $search_categ_sup=trim(GETPOST("search_categ_sup",'int'));
     $search_country=GETPOST("search_country",'intcomma');
     $search_type_thirdparty=GETPOST("search_type_thirdparty",'int');
    +$search_staff=GETPOST("search_staff",'int');
     $search_status=GETPOST("search_status",'int');
     $search_type=GETPOST('search_type','alpha');
    -$search_level_from = GETPOST("search_level_from","alpha");
    -$search_level_to   = GETPOST("search_level_to","alpha");
    +$search_level      = GETPOST("search_level", "array");
     $search_stcomm=GETPOST('search_stcomm','int');
     $search_import_key  = GETPOST("search_import_key","alpha");
     $search_btn=GETPOST('button_search','alpha');
    @@ -121,7 +121,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('societe');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    @@ -184,6 +184,7 @@ $arrayfields=array(
     	's.phone'=>array('label'=>"Phone", 'checked'=>1),
     	's.fax'=>array('label'=>"Fax", 'checked'=>0),
     	'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers),
    +	'staff.code'=>array('label'=>"Staff", 'checked'=>0),
     	's.siren'=>array('label'=>"ProfId1Short", 'checked'=>$checkedprofid1),
     	's.siret'=>array('label'=>"ProfId2Short", 'checked'=>$checkedprofid2),
     	's.ape'=>array('label'=>"ProfId3Short", 'checked'=>$checkedprofid3),
    @@ -258,10 +259,10 @@ if (empty($reshook))
     		$search_vat='';
     		$search_type='';
     		$search_type_thirdparty='';
    +		$search_staff='';
     		$search_status=-1;
     		$search_stcomm='';
    -	 	$search_level_from='';
    -	 	$search_level_to='';
    +	 	$search_level='';
     	 	$search_import_key='';
     	 	$toselect='';
     		$search_array_options=array();
    @@ -318,80 +319,22 @@ if ($type == 'c' && (empty($search_type) || ($search_type == '1,3'))) $title=$la
     if ($type == 'p' && (empty($search_type) || ($search_type == '2,3'))) $title=$langs->trans("ListOfProspects");
     if ($type == 'f' && (empty($search_type) || ($search_type == '4'))) $title=$langs->trans("ListOfSuppliers");
     
    -// If both parameters are set, search for everything BETWEEN them
    -if ($search_level_from != '' && $search_level_to != '')
    -{
    -	// Ensure that these parameters are numbers
    -	$search_level_from = (int) $search_level_from;
    -	$search_level_to = (int) $search_level_to;
    -
    -	// If from is greater than to, reverse orders
    -	if ($search_level_from > $search_level_to)
    -	{
    -		$tmp = $search_level_to;
    -		$search_level_to = $search_level_from;
    -		$search_level_from = $tmp;
    -	}
    -
    -	// Generate the SQL request
    -	$sortwhere = '(sortorder BETWEEN '.$search_level_from.' AND '.$search_level_to.') AS is_in_range';
    -}
    -// If only "from" parameter is set, search for everything GREATER THAN it
    -else if ($search_level_from != '')
    -{
    -	// Ensure that this parameter is a number
    -	$search_level_from = (int) $search_level_from;
    -
    -	// Generate the SQL request
    -	$sortwhere = '(sortorder >= '.$search_level_from.') AS is_in_range';
    -}
    -// If only "to" parameter is set, search for everything LOWER THAN it
    -else if ($search_level_to != '')
    -{
    -	// Ensure that this parameter is a number
    -	$search_level_to = (int) $search_level_to;
    -
    -	// Generate the SQL request
    -	$sortwhere = '(sortorder <= '.$search_level_to.') AS is_in_range';
    -}
    -// If no parameters are set, dont search for anything
    -else
    -{
    -	$sortwhere = '0 as is_in_range';
    -}
    -
     // Select every potentiels, and note each potentiels which fit in search parameters
    -dol_syslog('societe/list.php',LOG_DEBUG);
    -$sql = "SELECT code, label, sortorder, ".$sortwhere;
    +$tab_level = array();
    +$sql = "SELECT code, label, sortorder";
     $sql.= " FROM ".MAIN_DB_PREFIX."c_prospectlevel";
     $sql.= " WHERE active > 0";
     $sql.= " ORDER BY sortorder";
    -
     $resql = $db->query($sql);
     if ($resql)
     {
    -	$tab_level = array();
    -	$search_levels = array();
    -
     	while ($obj = $db->fetch_object($resql))
     	{
     		// Compute level text
     		$level=$langs->trans($obj->code);
     		if ($level == $obj->code) $level=$langs->trans($obj->label);
    -
    -		// Put it in the array sorted by sortorder
    -		$tab_level[$obj->sortorder] = $level;
    -
    -		// If this potentiel fit in parameters, add its code to the $search_levels array
    -		if ($obj->is_in_range == 1)
    -		{
    -			$search_levels[] = '"'.preg_replace('[^A-Za-z0-9_-]', '', $obj->code).'"';
    -		}
    +		$tab_level[$obj->code] = $level;
     	}
    -
    -	// Implode the $search_levels array so that it can be use in a "IN (...)" where clause.
    -	// If no paramters was set, $search_levels will be empty
    -	$search_levels = implode(',', $search_levels);
     }
     else dol_print_error($db);
     
    @@ -401,6 +344,7 @@ $sql.= " s.email, s.phone, s.fax, s.url, s.siren as idprof1, s.siret as idprof2,
     $sql.= " s.tms as date_update, s.datec as date_creation,";
     $sql.= " s.code_compta,s.code_compta_fournisseur,";
     $sql.= " typent.code as typent_code,";
    +$sql.= " staff.code as staff_code,";
     $sql.= " country.code as country_code,";
     $sql.= " state.code_departement as state_code, state.nom as state_name,";
     $sql.= " region.code_region as region_code, region.nom as region_name";
    @@ -419,6 +363,7 @@ $sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
     if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_extrafields as ef on (s.rowid = ef.fk_object)";
     $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)";
     $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_effectif as staff on (staff.id = s.fk_effectif)";
     $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)";
     $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_regions as region on (region.	code_region = state.fk_region)";
     // We'll need this table joined to the select in order to filter by categ
    @@ -452,11 +397,11 @@ if ($search_account_supplier_code) $sql.= natural_search("s.code_compta_fourniss
     if ($search_town)          $sql.= natural_search("s.town",$search_town);
     if (strlen($search_zip))   $sql.= natural_search("s.zip",$search_zip);
     if ($search_state)         $sql.= natural_search("state.nom",$search_state);
    -if ($search_region)         $sql.= natural_search("region.nom",$search_region);
    -if ($search_country)       $sql .= " AND s.fk_pays IN (".$search_country.')';
    +if ($search_region)        $sql.= natural_search("region.nom",$search_region);
    +if ($search_country && $search_country != '-1')       $sql .= " AND s.fk_pays IN (".$db->escape($search_country).')';
     if ($search_email)         $sql.= natural_search("s.email",$search_email);
     if (strlen($search_phone)) $sql.= natural_search("s.phone", $search_phone);
    -if (strlen($search_fax)) $sql.= natural_search("s.phone", $search_fax);
    +if (strlen($search_fax))   $sql.= natural_search("s.fax", $search_fax);
     if ($search_url)           $sql.= natural_search("s.url",$search_url);
     if (strlen($search_idprof1)) $sql.= natural_search("s.siren",$search_idprof1);
     if (strlen($search_idprof2)) $sql.= natural_search("s.siret",$search_idprof2);
    @@ -469,11 +414,12 @@ if (strlen($search_vat))     $sql.= natural_search("s.tva_intra",$search_vat);
     if ($search_type > 0 && in_array($search_type,array('1,3','2,3'))) $sql .= " AND s.client IN (".$db->escape($search_type).")";
     if ($search_type > 0 && in_array($search_type,array('4')))         $sql .= " AND s.fournisseur = 1";
     if ($search_type == '0') $sql .= " AND s.client = 0 AND s.fournisseur = 0";
    -if ($search_status!='' && $search_status >= 0) $sql .= " AND s.status = ".$db->escape($search_status);
    +if ($search_status!='' && $search_status >= 0) $sql .= natural_search("s.status", $search_status, 2);
     if (!empty($conf->barcode->enabled) && $search_barcode) $sql.= natural_search("s.barcode", $search_barcode);
    -if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')';
    -if ($search_levels)  $sql .= " AND s.fk_prospectlevel IN (".$search_levels.')';
    -if ($search_stcomm != '' && $search_stcomm != -2) $sql.= natural_search("s.fk_stcomm",$search_stcomm,2);
    +if ($search_type_thirdparty && $search_type_thirdparty != '-1') $sql.= natural_search("s.fk_typent", $search_type_thirdparty, 2);
    +if (! empty($search_staff) && $search_staff != '-1')            $sql.= natural_search("s.fk_effectif", $search_staff, 2);
    +if ($search_level)  $sql .= natural_search("s.fk_prospectlevel", join(',', $search_level), 3);
    +if ($search_stcomm != '' && $search_stcomm != -2) $sql.= natural_search("s.fk_stcomm", $search_stcomm, 2);
     if ($search_import_key)    $sql.= natural_search("s.import_key",$search_import_key);
     // Add where from extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
    @@ -566,13 +512,12 @@ if ($search_idprof6 != '') $param.= '&search_idprof6='.urlencode($search_idprof6
     if ($search_vat != '')     $param.= '&search_vat='.urlencode($search_vat);
     if ($search_type_thirdparty != '')    $param.='&search_type_thirdparty='.urlencode($search_type_thirdparty);
     if ($search_type != '')    $param.='&search_type='.urlencode($search_type);
    -if ($optioncss != '')      $param.='&optioncss='.urlencode($optioncss);
    +if (is_array($search_level) && count($search_level)) foreach($search_level as $slevel) $param.='&search_level[]='.urlencode($slevel);
     if ($search_status != '')  $param.='&search_status='.urlencode($search_status);
     if ($search_stcomm != '')  $param.='&search_stcomm='.urlencode($search_stcomm);
    -if ($search_level_from != '') $param.='&search_level_from='.urlencode($search_level_from);
    -if ($search_level_to != '')   $param.='&search_level_to='.urlencode($search_level_to);
     if ($search_import_key != '') $param.='&search_import_key='.urlencode($search_import_key);
     if ($type != '') $param.='&type='.urlencode($type);
    +if ($optioncss != '')      $param.='&optioncss='.urlencode($optioncss);
     // Add $param from extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
     
    @@ -589,7 +534,7 @@ $arrayofmassactions =  array(
     );
     //if($user->rights->societe->creer) $arrayofmassactions['createbills']=$langs->trans("CreateInvoiceForThisCustomer");
     if ($user->rights->societe->supprimer) $arrayofmassactions['predelete']=$langs->trans("Delete");
    -if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    +if (GETPOST('nomassaction','int') || in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
     $massactionbutton=$form->selectMassAction('', $arrayofmassactions);
     
     $newcardbutton='';
    @@ -611,7 +556,7 @@ if ($user->rights->societe->creer)
     	$newcardbutton.= '</a>';
     }
     
    -print '<form method="post" action="'.$_SERVER["PHP_SELF"].'" name="formfilter" autocomplete="off">';
    +print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'" name="formfilter" autocomplete="off">';
     if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
     print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
     print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    @@ -796,6 +741,13 @@ if (! empty($arrayfields['typent.code']['checked']))
     	print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT));
     	print '</td>';
     }
    +// Staff
    +if (! empty($arrayfields['staff.code']['checked']))
    +{
    +	print '<td class="liste_titre maxwidthonsmartphone" align="center">';
    +	print $form->selectarray("search_staff", $formcompany->effectif_array(0), $search_staff, 0, 0, 0, '', 0, 0, 0, $sort, 'maxwidth100');
    +	print '</td>';
    +}
     if (! empty($arrayfields['s.email']['checked']))
     {
     	// Email
    @@ -888,37 +840,16 @@ if (! empty($arrayfields['customerorsupplier']['checked']))
     	print '<option value="0"'.($search_type=='0'?' selected':'').'>'.$langs->trans('Others').'</option>';
     	print '</select></td>';
     }
    +// Prospect level
     if (! empty($arrayfields['s.fk_prospectlevel']['checked']))
     {
    -	// Prospect level
      	print '<td class="liste_titre" align="center">';
    - 	$options_from = '<option value="">&nbsp;</option>';	 	// Generate in $options_from the list of each option sorted
    - 	foreach ($tab_level as $tab_level_sortorder => $tab_level_label)
    - 	{
    - 		$options_from .= '<option value="'.$tab_level_sortorder.'"'.($search_level_from == $tab_level_sortorder ? ' selected':'').'>';
    - 		$options_from .= $langs->trans($tab_level_label);
    - 		$options_from .= '</option>';
    - 	}
    - 	array_reverse($tab_level, true);	// Reverse the list
    - 	$options_to = '<option value="">&nbsp;</option>';		// Generate in $options_to the list of each option sorted in the reversed order
    - 	foreach ($tab_level as $tab_level_sortorder => $tab_level_label)
    - 	{
    - 		$options_to .= '<option value="'.$tab_level_sortorder.'"'.($search_level_to == $tab_level_sortorder ? ' selected':'').'>';
    - 		$options_to .= $langs->trans($tab_level_label);
    - 		$options_to .= '</option>';
    - 	}
    -
    -	// Print these two select
    - 	print $langs->trans("From").' <select class="flat" name="search_level_from">'.$options_from.'</select>';
    - 	print ' ';
    - 	print $langs->trans("to").' <select class="flat" name="search_level_to">'.$options_to.'</select>';
    -
    + 	print $form->multiselectarray('search_level', $tab_level, $search_level, 0, 0, 'width75', 0, 0, '', '', '', 2);
     	print '</td>';
     }
    -
    +// Prospect status
     if (! empty($arrayfields['s.fk_stcomm']['checked']))
     {
    -	// Prospect status
     	print '<td class="liste_titre maxwidthonsmartphone" align="center">';
     	$arraystcomm=array();
     	foreach($prospectstatic->cacheprospectstatus as $key => $val)
    @@ -950,7 +881,7 @@ if (! empty($arrayfields['s.tms']['checked']))
     // Status
     if (! empty($arrayfields['s.status']['checked']))
     {
    -	print '<td class="liste_titre maxwidthonsmartphone center">';
    +	print '<td class="liste_titre center minwidth75imp">';
     	print $form->selectarray('search_status', array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')), $search_status, 1);
     	print '</td>';
     }
    @@ -983,6 +914,7 @@ if (! empty($arrayfields['state.nom']['checked']))        print_liste_field_titr
     if (! empty($arrayfields['region.nom']['checked']))       print_liste_field_titre($arrayfields['region.nom']['label'],$_SERVER["PHP_SELF"],"region.nom","",$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'],$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder);
     if (! empty($arrayfields['typent.code']['checked']))      print_liste_field_titre($arrayfields['typent.code']['label'],$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder);
    +if (! empty($arrayfields['staff.code']['checked']))       print_liste_field_titre($arrayfields['staff.code']['label'],$_SERVER["PHP_SELF"],"staff.code","",$param,'align="center"',$sortfield,$sortorder);
     if (! empty($arrayfields['s.email']['checked']))          print_liste_field_titre($arrayfields['s.email']['label'],$_SERVER["PHP_SELF"],"s.email","",$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['s.phone']['checked']))          print_liste_field_titre($arrayfields['s.phone']['label'],$_SERVER["PHP_SELF"],"s.phone","",$param,'',$sortfield,$sortorder);
     if (! empty($arrayfields['s.fax']['checked'])) print_liste_field_titre($arrayfields['s.fax']['label'],$_SERVER["PHP_SELF"],"s.fax","",$param,'',$sortfield,$sortorder);
    @@ -1068,13 +1000,13 @@ while ($i < min($num, $limit))
     	// Customer code
     	if (! empty($arrayfields['s.code_client']['checked']))
     	{
    -		print '<td>'.$obj->code_client.'</td>';
    +		print '<td class="nowraponall">'.$obj->code_client.'</td>';
     		if (! $i) $totalarray['nbfield']++;
     	}
     	// Supplier code
     	if (! empty($arrayfields['s.code_fournisseur']['checked']))
     	{
    -		print '<td>'.$obj->code_fournisseur.'</td>';
    +		print '<td class="nowraponall">'.$obj->code_fournisseur.'</td>';
     		if (! $i) $totalarray['nbfield']++;
     	}
     	// Account customer code
    @@ -1131,6 +1063,15 @@ while ($i < min($num, $limit))
     		print '</td>';
     		if (! $i) $totalarray['nbfield']++;
     	}
    +	// Staff
    +	if (! empty($arrayfields['staff.code']['checked']))
    +	{
    +		print '<td align="center">';
    +		if (! is_array($staffArray) || count($staffArray)==0) $staffArray = $formcompany->effectif_array(1);
    +		print $staffArray[$obj->staff_code];
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
     	if (! empty($arrayfields['s.email']['checked']))
     	{
     		print "<td>".$obj->email."</td>\n";
    @@ -1302,5 +1243,6 @@ print "</div>";
     
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/societe/note.php b/htdocs/societe/note.php
    index e31a07e8e65..9f1adb16fc7 100644
    --- a/htdocs/societe/note.php
    +++ b/htdocs/societe/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2013      Florian Henry	  	<florian.henry@open-concept.pro>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    @@ -129,6 +129,7 @@ else
     	print $langs->trans("ErrorRecordNotFound");
     }
     
    +// End of page
     llxFooter();
     $db->close();
     
    diff --git a/htdocs/societe/notify/card.php b/htdocs/societe/notify/card.php
    index cd8212ae327..b5de5c77456 100644
    --- a/htdocs/societe/notify/card.php
    +++ b/htdocs/societe/notify/card.php
    @@ -30,10 +30,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/triggers/interface_50_modNotification_Notification.class.php';
     
    -$langs->load("companies");
    -$langs->load("mails");
    -$langs->load("admin");
    -$langs->load("other");
    +$langs->loadLangs(array("companies", "mails", "admin", "other"));
     
     $socid = GETPOST("socid",'int');
     $action = GETPOST('action','aZ09');
    @@ -532,7 +529,6 @@ if ($result > 0)
     }
     else dol_print_error('','RecordNotFound');
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/societe/notify/index.php b/htdocs/societe/notify/index.php
    index 3326e431178..129131ff5c6 100644
    --- a/htdocs/societe/notify/index.php
    +++ b/htdocs/societe/notify/index.php
    @@ -23,8 +23,7 @@
      */
     
     require '../../main.inc.php';
    -$langs->load("companies");
    -$langs->load("banks");
    +$langs->loadLangs(array("companies", "banks"));
     
     // S�curit� acc�s client
     if ($user->societe_id > 0)
    @@ -105,6 +104,6 @@ else
     	dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php
    index aabc9ae7bed..0853b7ee571 100644
    --- a/htdocs/societe/paymentmodes.php
    +++ b/htdocs/societe/paymentmodes.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Jean-Louis Bergamo   <jlb@j1b.org>
      * Copyright (C) 2004-2018 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Peter Fontaine       <contact@peterfontaine.fr>
      * Copyright (C) 2015-2016 Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2017      Ferran Marcet        <fmarcet@2byte.es>
    @@ -557,7 +557,7 @@ if (empty($reshook))
     			$sql.= " SET key_account = '".$db->escape(GETPOST('key_account', 'alpha'))."'";
     			$sql.= " WHERE site = 'stripe' AND fk_soc = ".$object->id." AND status = ".$servicestatus." AND entity = ".$conf->entity;	// Keep = here for entity. Only 1 record must be modified !
                     }
    -     
    +
     			$resql = $db->query($sql);
     			$num = $db->num_rows($resql);
     			if (empty($num) && !empty($newcu))
    @@ -764,10 +764,11 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard'
     		print $form->editfieldval("StripeCustomerId", 'key_account', $stripecu, $object, $permissiontowrite, 'string', '', null, null, '', 2, '', 'socid');
     		if ($stripecu && $action != 'editkey_account')
     		{
    -			$url='https://dashboard.stripe.com/test/customers/'.$stripecu;
    +			if (! empty($conf->stripe->enabled) && !empty($stripeacc)) $connect=$stripeacc.'/';
    +			$url='https://dashboard.stripe.com/'.$connect.'test/customers/'.$stripecu;
     			if ($servicestatus)
     			{
    -				$url='https://dashboard.stripe.com/customers/'.$stripecu;
    +				$url='https://dashboard.stripe.com/'.$connect.'customers/'.$stripecu;
     			}
     			print ' <a href="'.$url.'" target="_stripe">'.img_picto($langs->trans('ShowInStripe'), 'object_globe').'</a>';
     		}
    @@ -830,7 +831,9 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard'
     		print '<td></td>';
     		print '<td align="center">'.$langs->trans('Default').'</td>';
     		print '<td>'.$langs->trans('Note').'</td>';
    -		print "<td></td></tr>\n";
    +		print '<td>'.$langs->trans('DateModification').'</td>';
    +		print "<td></td>";
    +		print "</tr>\n";
     
     		$nbremote = 0;
     		$nblocal = 0;
    @@ -911,6 +914,9 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard'
     							if (empty($companypaymentmodetemp->stripe_card_ref)) print $langs->trans("Local");
     							else print $langs->trans("LocalAndRemote");
     							print '</td>';
    +							print '<td>';
    +							print dol_print_date($companypaymentmodetemp->tms, 'dayhour');
    +							print '</td>';
     							print '<td align="right" class="nowraponall">';
     							if ($user->rights->societe->creer)
     							{
    @@ -953,9 +959,17 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard'
     					print '<td>';
     					print '</td>';
     				}
    +				// Src ID
     				print '<td>';
    -				print $src->id;
    +				if (!empty($stripeacc)) $connect=$stripeacc.'/';
    +				$url='https://dashboard.stripe.com/'.$connect.'test/sources/'.$src->id;
    +				if ($servicestatus)
    +				{
    +					$url='https://dashboard.stripe.com/'.$connect.'sources/'.$src->id;
    +				}
    +				print $src->id." <a href='".$url."' target='_stripe'>".img_picto($langs->trans('ShowInStripe'), 'object_globe')."</a>";
     				print '</td>';
    +				// Img of credit card
     				print '<td>';
     				if ($src->object=='card')
     				{
    @@ -969,8 +983,8 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard'
     				{
     					print '<span class="fa fa-university fa-2x fa-fw"></span>';
     				}
    -
    -				print'</td><td valign="middle">';
    +				print'</td>';
    +				print '<td valign="middle">';
     				if ($src->object=='card')
     				{
     					print '....'.$src->last4.' - '.$src->exp_month.'/'.$src->exp_year.'';
    @@ -1022,6 +1036,11 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard'
     				print '</td>';
     				print '<td>';
     				print $langs->trans("Remote");
    +				//if ($src->cvc_check == 'fail') print ' - CVC check fail';
    +				print '</td>';
    +				print '<td>';
    +				//var_dump($src);
    +				print '';
     				print '</td>';
     				print '<td align="right" class="nowraponall">';
     				if ($user->rights->societe->creer)
    @@ -1188,7 +1207,7 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard'
     					$formadmin=new FormAdmin($db);
     					$defaultlang=$codelang?$codelang:$langs->getDefaultLang();
     					$morecss='maxwidth150';
    -					if (! empty($conf->browser->phone)) $morecss='maxwidth100';
    +					if ($conf->browser->layout == 'phone') $morecss='maxwidth100';
     					$out.= $formadmin->select_language($defaultlang, 'lang_idrib'.$rib->id, 0, 0, 0, 0, 0, $morecss);
     				}
     				// Button
    @@ -1614,7 +1633,6 @@ if ($socid && ($action == 'create' || $action == 'createcard') && $user->rights-
     	print '</form>';
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/societe/price.php b/htdocs/societe/price.php
    index e35cf186ae3..92bad9ecf61 100644
    --- a/htdocs/societe/price.php
    +++ b/htdocs/societe/price.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2007	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2005		Eric Seigne				<eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2013	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2006		Andre Cianfarani		<acianfa@free.fr>
      * Copyright (C) 2015       Marcos García           <marcosgdf@gmail.com>
      *
    @@ -38,9 +38,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
     	$prodcustprice = new Productcustomerprice($db);
     }
     
    -$langs->load("products");
    -$langs->load("companies");
    -$langs->load("bills");
    +$langs->loadLangs(array("products", "companies", "bills"));
     
     $action = GETPOST('action', 'alpha');
     $search_prod = GETPOST('search_prod','alpha');
    @@ -611,10 +609,9 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
             print "</table>";
     
             print "</form>";
    -
     	}
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/societe/project.php b/htdocs/societe/project.php
    index 08e2f593acb..5d8936060ac 100644
    --- a/htdocs/societe/project.php
    +++ b/htdocs/societe/project.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005      Brice Davoleau       <brice.davoleau@gmail.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2007      Patrick Raguin  		<patrick.raguin@gmail.com>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
    @@ -31,8 +31,7 @@ require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
     require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
     
    -$langs->load("companies");
    -$langs->load("projects");
    +$langs->loadLangs(array("companies", "projects"));
     
     // Security check
     $socid = GETPOST('socid','int');
    @@ -134,7 +133,7 @@ if ($socid)
         /*	}
         	else
         	{
    -        	print '<a class="butActionRefused" href="#">'.$langs->trans("AddProject").'</a>';
    +        	print '<a class="butActionRefused classfortooltip" href="#">'.$langs->trans("AddProject").'</a>';
         	}
         }
     
    @@ -147,7 +146,6 @@ if ($socid)
     	$result=show_projects($conf, $langs, $db, $object, $_SERVER["PHP_SELF"].'?socid='.$object->id, 1, $addbutton);
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/societe/societecontact.php b/htdocs/societe/societecontact.php
    index dfe78041f8a..630b8fa4723 100644
    --- a/htdocs/societe/societecontact.php
    +++ b/htdocs/societe/societecontact.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005     	Patrick Rouillon    <patrick@rouillon.net>
      * Copyright (C) 2005-2011	Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin       <regis.houssin@inodbox.com>
      * Copyright (C) 2011-2015	Philippe Grand      <philippe.grand@atoo-net.com>
      * Copyright (C) 2014		Charles-Fr Benke	<charles.fr@benke.fr>
      * Copyright (C) 2015       Marcos García       <marcosgdf@gmail.com>
    @@ -32,8 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
     
    -$langs->load("orders");
    -$langs->load("companies");
    +$langs->loadLangs(array("orders", "companies"));
     
     $id=GETPOST('id','int')?GETPOST('id','int'):GETPOST('socid','int');
     $ref=GETPOST('ref','alpha');
    @@ -343,5 +342,6 @@ if ($id > 0 || ! empty($ref))
     	}
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/societe/website.php b/htdocs/societe/website.php
    index 3563283ba05..032ece6f4c4 100644
    --- a/htdocs/societe/website.php
    +++ b/htdocs/societe/website.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005      Brice Davoleau       <brice.davoleau@gmail.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2006-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2007      Patrick Raguin  		<patrick.raguin@gmail.com>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
    @@ -63,7 +63,7 @@ $diroutputmassaction=$conf->website->dir_output . '/temp/massgeneration/'.$user-
     $hookmanager->initHooks(array('websitethirdpartylist'));     // Note that conf->hooks_modules contains array
     // Fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('thirdpartyaccount');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost('thirdpartyaccount','','search_');
     
     unset($objectwebsiteaccount->fields['fk_soc']);		// Remove this field, we are already on the thirdparty
     
    @@ -535,7 +535,7 @@ if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nb
     	$hidegeneratedfilelistifempty=1;
     	if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) $hidegeneratedfilelistifempty=0;
     
    -	require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php');
    +	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     	$formfile = new FormFile($db);
     
     	// Show list of available documents
    @@ -549,8 +549,6 @@ if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nb
     	print $formfile->showdocuments('massfilesarea_mymodule','',$filedir,$urlsource,0,$delallowed,'',1,1,0,48,1,$param,$title,'','','',null,$hidegeneratedfilelistifempty);
     }
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/stripe/admin/stripe.php b/htdocs/stripe/admin/stripe.php
    index bd95baecd08..6a4dd8713f7 100644
    --- a/htdocs/stripe/admin/stripe.php
    +++ b/htdocs/stripe/admin/stripe.php
    @@ -3,6 +3,7 @@
      * Copyright (C) 2017		Olivier Geffroy			<jeff@jeffinfo.com>
      * Copyright (C) 2017		Saasprov				<saasprov@gmail.com>
      * Copyright (C) 2018		ptibogxiv				<support@ptibogxiv.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -70,10 +71,14 @@ if ($action == 'setvalue' && $user->admin)
     	$result = dolibarr_set_const($db, "STRIPE_BANK_ACCOUNT_FOR_PAYMENTS", GETPOST('STRIPE_BANK_ACCOUNT_FOR_PAYMENTS', 'int'), 'chaine', 0, '', $conf->entity);
     	if (! $result > 0)
     		$error ++;
    -	$result = dolibarr_set_const($db, "STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS", GETPOST('STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS', 'int'), 'chaine', 0, '', $conf->entity);
    +    $result = dolibarr_set_const($db, "STRIPE_USER_ACCOUNT_FOR_ACTIONS", GETPOST('STRIPE_USER_ACCOUNT_FOR_ACTIONS', 'int'), 'chaine', 0, '', $conf->entity);
    +    if (! $result > 0) {
    +        $error ++;
    +    }
    +    $result = dolibarr_set_const($db, "STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS", GETPOST('STRIPE_BANK_ACCOUNT_FOR_BANKTRANSFERS', 'int'), 'chaine', 0, '', $conf->entity);
     	if (! $result > 0)
     		$error ++;
    -  $result = dolibarr_set_const($db, "STRIPE_MINIMAL_3DSECURE", GETPOST('STRIPE_MINIMAL_3DSECURE', 'int'), 'chaine', 0, '', $conf->entity);
    +    $result = dolibarr_set_const($db, "STRIPE_MINIMAL_3DSECURE", GETPOST('STRIPE_MINIMAL_3DSECURE', 'int'), 'chaine', 0, '', $conf->entity);
     	if (! $result > 0)
     		$error ++;
     	$result = dolibarr_set_const($db, "ONLINE_PAYMENT_CSS_URL", GETPOST('ONLINE_PAYMENT_CSS_URL', 'alpha'), 'chaine', 0, '', $conf->entity);
    @@ -116,10 +121,8 @@ if ($action == 'setvalue' && $user->admin)
     if ($action=="setlive")
     {
     	$liveenable = GETPOST('value','int');
    -	$res = dolibarr_set_const($db, "STRIPE_LIVE", $liveenable,'yesno',0,'',$conf->entity);
    -	if (! $res > 0) $error++;
    -	if (! $error)
    -	{
    +	$res = dolibarr_set_const($db, "STRIPE_LIVE", $liveenable, 'yesno', 0, '', $conf->entity);
    +	if ($res > 0) {
     		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
     	}
     	else
    @@ -251,6 +254,11 @@ print '<input size="64" type="text" name="ONLINE_PAYMENT_CREDITOR" value="'.$con
     print ' &nbsp; '.$langs->trans("Example").': '.$mysoc->name;
     print '</td></tr>';
     
    +print '<tr class="oddeven"><td>';
    +print $langs->trans("StripeUserAccountForActions").'</td><td>';
    +print $form->select_dolusers($conf->global->STRIPE_USER_ACCOUNT_FOR_ACTIONS, 'STRIPE_USER_ACCOUNT_FOR_ACTIONS', 0);
    +print '</td></tr>';
    +
     print '<tr class="oddeven"><td>';
     print $langs->trans("BankAccount").'</td><td>';
     print $form->select_comptes($conf->global->STRIPE_BANK_ACCOUNT_FOR_PAYMENTS, 'STRIPE_BANK_ACCOUNT_FOR_PAYMENTS', 0, '', 1);
    @@ -354,7 +362,6 @@ if (! empty($conf->use_javascript_ajax))
     	print '</script>';
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    -
    diff --git a/htdocs/stripe/charge.php b/htdocs/stripe/charge.php
    index 1464c9c2e6b..73c1f7b86c8 100644
    --- a/htdocs/stripe/charge.php
    +++ b/htdocs/stripe/charge.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2018 	PtibogXIV        <support@ptibogxiv.net>
    +/* Copyright (C) 2018 	Thibault FOUCART        <support@ptibogxiv.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
    @@ -62,14 +62,16 @@ llxHeader('', $langs->trans("StripeChargeList"));
     if (! empty($conf->stripe->enabled) && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox','alpha')))
     {
     	$service = 'StripeTest';
    +	$servicestatus = '0';
     	dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode', 'Stripe'), '', 'warning');
     }
     else
     {
     	$service = 'StripeLive';
    +	$servicestatus = '1';
     }
     
    -$stripeaccount = $stripe->getStripeAccount($service);
    +$stripeacc = $stripe->getStripeAccount($service);
     /*if (empty($stripeaccount))
     {
     	print $langs->trans('ErrorStripeAccountNotDefined');
    @@ -77,24 +79,24 @@ $stripeaccount = $stripe->getStripeAccount($service);
     
     if (!$rowid)
     {
    -	print '<FORM method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    -    if ($optioncss != '') print '<INPUT type="hidden" name="optioncss" value="'.$optioncss.'">';
    -    print '<INPUT type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    -	print '<INPUT type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    -    print '<INPUT type="hidden" name="action" value="list">';
    -    print '<INPUT type="hidden" name="sortfield" value="'.$sortfield.'">';
    -    print '<INPUT type="hidden" name="sortorder" value="'.$sortorder.'">';
    -    print '<INPUT type="hidden" name="page" value="'.$page.'">';
    +	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    +    if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
    +    print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +	print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    +    print '<input type="hidden" name="action" value="list">';
    +    print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
    +    print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
    +    print '<input type="hidden" name="page" value="'.$page.'">';
     
         $title=$langs->trans("StripeChargeList");
    -    $title.=($stripeaccount?' (Stripe connection with Stripe OAuth Connect account '.$stripeaccount.')':' (Stripe connection with keys from Stripe module setup)');
    +    $title.=($stripeacc?' (Stripe connection with Stripe OAuth Connect account '.$stripeacc.')':' (Stripe connection with keys from Stripe module setup)');
     
     	print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, $totalnboflines, 'title_accountancy.png', 0, '', '', $limit);
     
    -    print '<DIV class="div-table-responsive">';
    -    print '<TABLE class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
    +    print '<div class="div-table-responsive">';
    +    print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
     
    -    print '<TR class="liste_titre">';
    +    print '<tr class="liste_titre">';
         print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"","","","",$sortfield,$sortorder);
         print_liste_field_titre("StripeCustomerId",$_SERVER["PHP_SELF"],"","","","",$sortfield,$sortorder);
         print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"","","","",$sortfield,$sortorder);
    @@ -103,13 +105,13 @@ if (!$rowid)
         print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"","","",'align="left"',$sortfield,$sortorder);
         print_liste_field_titre("Paid",$_SERVER["PHP_SELF"],"","","",'align="right"',$sortfield,$sortorder);
         print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"","","",'align="right"');
    -    print "</TR>\n";
    +    print "</tr>\n";
     
    -	print "</TR>\n";
    +	print "</tr>\n";
     
    -	if ($stripeaccount)
    +	if ($stripeacc)
     	{
    -		$list=\Stripe\Charge::all(array("limit" => $limit), array("stripe_account" => $stripeaccount));
    +		$list=\Stripe\Charge::all(array("limit" => $limit), array("stripe_account" => $stripeacc));
     	}
     	else
     	{
    @@ -125,15 +127,19 @@ if (!$rowid)
     		// Save into $tmparray all metadata
     		$tmparray = dolExplodeIntoArray($FULLTAG,'.','=');
     		// Load origin object according to metadata
    -		if (! empty($tmparray['CUS']))
    +		if (! empty($tmparray['CUS']) && $tmparray['CUS'] > 0)
     		{
     			$societestatic->fetch($tmparray['CUS']);
     		}
    +		elseif (! empty($charge->metadata->dol_thirdparty_id) && $charge->metadata->dol_thirdparty_id > 0)
    +		{
    +			$societestatic->fetch($charge->metadata->dol_thirdparty_id);
    +		}
     		else
     		{
     			$societestatic->id = 0;
     		}
    -		if (! empty($tmparray['MEM']))
    +		if (! empty($tmparray['MEM']) && $tmparray['MEM'] > 0)
     		{
     			$memberstatic->fetch($tmparray['MEM']);
     		}
    @@ -142,39 +148,60 @@ if (!$rowid)
     			$memberstatic->id = 0;
     		}
     
    -	    print '<TR class="oddeven">';
    -	    // Ref
    -		print "<TD><A href='".DOL_URL_ROOT."/stripe/charge.php?rowid=".$charge->id."'>".$charge->id."</A></TD>\n";
    +		print '<tr class="oddeven">';
    +    
    +    if (!empty($stripeacc)) $connect=$stripeacc.'/';
    +    
    +		// Ref
    +		$url='https://dashboard.stripe.com/'.$connect.'test/payments/'.$charge->id;
    +			if ($servicestatus)
    +			{
    +				$url='https://dashboard.stripe.com/'.$connect.'payments/'.$charge->id;
    +			}
    +		print "<td><a href='".$url."' target='_stripe'>".img_picto($langs->trans('ShowInStripe'), 'object_globe')." ".$charge->id."</a></td>\n";
     		// Stripe customer
    -		print "<TD>".$charge->customer."</TD>\n";
    +		print "<td>";
    +
    +    if (! empty($conf->stripe->enabled) && !empty($stripeacc)) $connect=$stripeacc.'/';
    +		$url='https://dashboard.stripe.com/'.$connect.'test/customers/'.$charge->customer;
    +		if ($servicestatus)
    +		{
    +    $url='https://dashboard.stripe.com/'.$connect.'customers/'.$charge->customer;
    +		}
    +		print '<a href="'.$url.'" target="_stripe">'.img_picto($langs->trans('ShowInStripe'), 'object_globe').' '.$charge->customer.'</a>';
    +  
    +    print "</td>\n";
     		// Link
    -		print "<TD>";
    +		print "<td>";
     		if ($societestatic->id > 0)
     		{
     			print $societestatic->getNomUrl(1);
     		}
    -		if ($memberstatic->id > 0)
    +		elseif ($memberstatic->id > 0)
     		{
     			print $memberstatic->getNomUrl(1);
     		}
    -		print "</TD>\n";
    +		print "</td>\n";
     		// Origine
    -		print "<TD>";
    -		print $FULLTAG;
    -		if ($charge->metadata->source=="order"){
    +		print "<td>";
    +		if ($charge->metadata->dol_type=="order"){
     			$object = new Commande($db);
    -			$object->fetch($charge->metadata->idsource);
    -			print "<A href='".DOL_URL_ROOT."/commande/card.php?id=".$charge->metadata->idsource."'>".img_picto('', 'object_order')." ".$object->ref."</A>";
    -		} elseif ($charge->metadata->source=="invoice"){
    +			$object->fetch($charge->metadata->dol_id);
    +      if ($object->id > 0) {
    +			print "<a href='".DOL_URL_ROOT."/commande/card.php?id=".$object->id."'>".img_picto('', 'object_order')." ".$object->ref."</a>";
    +      } else print $FULLTAG;
    +		} elseif ($charge->metadata->dol_type=="invoice"){
     			$object = new Facture($db);
    -			$object->fetch($charge->metadata->idsource);
    -		    print "<A href='".DOL_URL_ROOT."/compta/facture/card.php?facid=".$charge->metadata->idsource."'>".img_picto('', 'object_invoice')." ".$object->ref."</A>";
    -		}
    -	    print "</TD>\n";
    +			$object->fetch($charge->metadata->dol_id);
    +      if ($object->id > 0) {
    +		  print "<a href='".DOL_URL_ROOT."/compta/facture/card.php?facid=".$charge->metadata->dol_id."'>".img_picto('', 'object_invoice')." ".$object->ref."</a>";
    +      } else print $FULLTAG;
    +		} else print $FULLTAG;
    +	    print "</td>\n";
     		// Date payment
    -	    print '<TD align="center">'.dol_print_date($charge->created,'%d/%m/%Y %H:%M')."</TD>\n";
    +	    print '<td align="center">'.dol_print_date($charge->created,'%d/%m/%Y %H:%M')."</td>\n";
     	    // Type
    -	    print '<TD>';
    +	    print '<td>';
     		if ($charge->source->object=='card')
     		{
     		    print $langs->trans("card");
    @@ -184,28 +211,30 @@ if (!$rowid)
     		} elseif ($charge->source->type=='three_d_secure'){
     		    print $langs->trans("card3DS");
     		}
    -	    print '</TD>';
    +	    print '</td>';
     	    // Amount
    -	    print "<TD align=\"right\">".price(($charge->amount-$charge->amount_refunded)/100)."</TD>";
    +	    print "<td align=\"right\">".price(($charge->amount-$charge->amount_refunded)/100, 0, '', 1, - 1, - 1, strtoupper($charge->currency))."</td>";
     	    // Status
    -	    print '<TD align="right">';
    +	    print '<td align="right">';
     	    if ($charge->refunded=='1'){
    -	    	print $langs->trans("refunded");
    +	    	print img_picto($langs->trans("refunded"),'statut6');
     	    } elseif ($charge->paid=='1'){
    -	    	print $langs->trans("".$charge->status."");
    +
    +        print img_picto($langs->trans("".$charge->status.""),'statut4');
     	    } else {
     	    	$label="Message: ".$charge->failure_message."<br>";
     	    	$label.="Réseau: ".$charge->outcome->network_status."<br>";
     	    	$label.="Statut: ".$langs->trans("".$charge->outcome->seller_message."");
    -	    	print $form->textwithpicto($langs->trans("".$charge->status.""),$label,1);
    +	    	print $form->textwithpicto(img_picto($langs->trans("".$charge->status.""),'statut8'),$label,1);
     	    }
    -	    print "</TD>\n";
    +	    print "</td>\n";
     
    -	    print "</TR>\n";
    +	    print "</tr>\n";
     	}
     } else {
     
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/stripe/class/actions_stripe.class.php b/htdocs/stripe/class/actions_stripe.class.php
    index 0451c1d4782..a7a2e56ecff 100644
    --- a/htdocs/stripe/class/actions_stripe.class.php
    +++ b/htdocs/stripe/class/actions_stripe.class.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2009-2016 Regis Houssin  <regis@dolibarr.fr>
    +/* Copyright (C) 2009-2016 Regis Houssin  <regis.houssin@inodbox.com>
      * Copyright (C) 2011      Herve Prot     <herve.prot@symeos.com>
      * Copyright (C) 2014      Philippe Grand <philippe.grand@atoo-net.com>
      *
    @@ -25,7 +25,7 @@
      *	\ingroup    stripe
      *	\brief      File Class actionsstripeconnect
      */
    -require_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php';;
    +require_once DOL_DOCUMENT_ROOT.'/stripe/class/stripe.class.php';
     
     
     $langs->load("stripe@stripe");
    @@ -36,14 +36,16 @@ $langs->load("stripe@stripe");
      */
     class ActionsStripeconnect
     {
    -	/** @var DoliDB */
    -	var $db;
    +	/**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
     	private $config=array();
     
     	// For Hookmanager return
    -	var $resprints;
    -	var $results=array();
    +	public $resprints;
    +	public $results=array();
     
     
     	/**
    @@ -63,6 +65,7 @@ class ActionsStripeconnect
     	 * @param	array	$parameters		Parameters
     	 * @param	Object	$object			Object
     	 * @param	string	$action			Action
    +     * @return bool
     	 */
     	function formObjectOptions($parameters, &$object, &$action)
     	{
    @@ -106,7 +109,6 @@ class ActionsStripeconnect
     				$this->resprints.= $langs->trans("NoStripe");
     			}
     			$this->resprints.= '</td></tr>';
    -
     		}
     		elseif (is_object($object) && $object->element == 'member'){
     			$this->resprints.= '<tr><td>';
    @@ -213,25 +215,24 @@ class ActionsStripeconnect
     					}
     					else
     					{
    -						print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("StripeConnectPay").'</a>';
    +						print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("StripeConnectPay").'</a>';
     					}
     				}
     				elseif ($resteapayer == 0)
     				{
    -					print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("StripeConnectPay").'</a>';
    +					print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("StripeConnectPay").'</a>';
     				}
     			}
     			else {
    -				print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("StripeConnectPay").'</a>';
    +				print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("StripeConnectPay").'</a>';
     			}
     		}
     		elseif (is_object($object) && $object->element == 'invoice_supplier'){
    -			print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("StripeConnectPay")).'">'.$langs->trans("StripeConnectPay").'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("StripeConnectPay")).'">'.$langs->trans("StripeConnectPay").'</a>';
     		}
     		elseif (is_object($object) && $object->element == 'member'){
    -			print '<a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("StripeAutoSubscription")).'">'.$langs->trans("StripeAutoSubscription").'</a>';
    +			print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("StripeAutoSubscription")).'">'.$langs->trans("StripeAutoSubscription").'</a>';
     		}
     		return 0;
     	}
    -
     }
    diff --git a/htdocs/stripe/class/index.html b/htdocs/stripe/class/index.html
    new file mode 100644
    index 00000000000..8b137891791
    --- /dev/null
    +++ b/htdocs/stripe/class/index.html
    @@ -0,0 +1 @@
    +
    diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php
    index b8472d0b821..d8e7168e5c0 100644
    --- a/htdocs/stripe/class/stripe.class.php
    +++ b/htdocs/stripe/class/stripe.class.php
    @@ -28,15 +28,39 @@ require_once DOL_DOCUMENT_ROOT.'/stripe/config.php';						// This set stripe glo
      */
     class Stripe extends CommonObject
     {
    +	/**
    +	 * @var int ID
    +	 */
     	public $rowid;
    -	public $fk_soc;
    +
    +	/**
    +	 * @var int Thirdparty ID
    +	 */
    +    public $fk_soc;
    +
    +    /**
    +     * @var int ID
    +     */
     	public $fk_key;
    +
    +	/**
    +	 * @var int ID
    +	 */
     	public $id;
    +
     	public $mode;
    +
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
    +
     	public $statut;
    +
     	public $type;
    +
     	public $code;
    +
     	public $message;
     
     	/**
    @@ -47,7 +71,6 @@ class Stripe extends CommonObject
     	public function __construct($db)
     	{
     		$this->db = $db;
    -
     	}
     
     
    @@ -99,8 +122,6 @@ class Stripe extends CommonObject
     	 */
     	public function getStripeCustomerAccount($id, $status=0)
     	{
    -		global $conf;
    -
     		include_once DOL_DOCUMENT_ROOT.'/societe/class/societeaccount.class.php';
     		$societeaccount = new SocieteAccount($this->db);
     		return $societeaccount->getCustomerAccount($id, 'stripe', $status);		// Get thirdparty cus_...
    @@ -166,11 +187,22 @@ class Stripe extends CommonObject
     			{
     				$dataforcustomer = array(
     					"email" => $object->email,
    -					"business_vat_id" => $object->tva_intra,
     					"description" => $object->name,
     					"metadata" => array('dol_id'=>$object->id, 'dol_version'=>DOL_VERSION, 'dol_entity'=>$conf->entity, 'ipaddress'=>(empty($_SERVER['REMOTE_ADDR'])?'':$_SERVER['REMOTE_ADDR']))
     				);
     
    +				$vatcleaned = $object->tva_intra ? $object->tva_intra : null;
    +
    +				$taxinfo = array('type'=>'vat');
    +				if ($vatcleaned)
    +				{
    +					$taxinfo["tax_id"] = $vatcleaned;
    +				}
    +				// We force data to "null" if not defined as expected by Stripe
    +				if (empty($vatcleaned)) $taxinfo=null;
    +
    +				$dataforcustomer["tax_info"] = $taxinfo;
    +
     				//$a = \Stripe\Stripe::getApiKey();
     				//var_dump($a);var_dump($key);exit;
     				try {
    @@ -252,7 +284,6 @@ class Stripe extends CommonObject
     						$this->error = $e->getMessage();
     						dol_syslog($this->error, LOG_WARNING);
     					}
    -
     				}
     				elseif ($createifnotlinkedtostripe)
     				{
    @@ -315,18 +346,19 @@ class Stripe extends CommonObject
     	/**
     	 * Create charge with public/payment/newpayment.php, stripe/card.php, cronjobs or REST API
     	 *
    -	 * @param int 		$amount									Amount to pay
    -	 * @param string 	$currency								EUR, GPB...
    -	 * @param string 	$origin									Object type to pay (order, invoice, contract...)
    -	 * @param int 		$item									Object id to pay
    -	 * @param string 	$source									src_xxxxx or card_xxxxx
    -	 * @param string 	$customer								Stripe customer ref 'cus_xxxxxxxxxxxxx' via customerStripe()
    -	 * @param string 	$account								Stripe account ref 'acc_xxxxxxxxxxxxx' via  getStripeAccount()
    +	 * @param	int 	$amount									Amount to pay
    +	 * @param	string 	$currency								EUR, GPB...
    +	 * @param	string 	$origin									Object type to pay (order, invoice, contract...)
    +	 * @param	int 	$item									Object id to pay
    +	 * @param	string 	$source									src_xxxxx or card_xxxxx
    +	 * @param	string 	$customer								Stripe customer ref 'cus_xxxxxxxxxxxxx' via customerStripe()
    +	 * @param	string 	$account								Stripe account ref 'acc_xxxxxxxxxxxxx' via  getStripeAccount()
     	 * @param	int		$status									Status (0=test, 1=live)
     	 * @param	int		$usethirdpartyemailforreceiptemail		Use thirdparty email as receipt email
    +	 * @param	boolean	$capture								Set capture flag to true (take payment) or false (wait)
     	 * @return Stripe
     	 */
    -	public function createPaymentStripe($amount, $currency, $origin, $item, $source, $customer, $account, $status=0, $usethirdpartyemailforreceiptemail=0)
    +	public function createPaymentStripe($amount, $currency, $origin, $item, $source, $customer, $account, $status=0, $usethirdpartyemailforreceiptemail=0, $capture=true)
     	{
     		global $conf;
     
    @@ -367,18 +399,19 @@ class Stripe extends CommonObject
     			$order = new Commande($this->db);
     			$order->fetch($item);
     			$ref = $order->ref;
    -			$description = "ORD=" . $ref . ".CUS=" . $societe->id;
    +			$description = "ORD=" . $ref . ".CUS=" . $societe->id.".PM=stripe";
     		} elseif ($origin == invoice) {
     			$invoice = new Facture($this->db);
     			$invoice->fetch($item);
     			$ref = $invoice->ref;
    -			$description = "INV=" . $ref . ".CUS=" . $societe->id;
    +			$description = "INV=" . $ref . ".CUS=" . $societe->id.".PM=stripe";
     		}
     
     		$metadata = array(
     			"dol_id" => "" . $item . "",
     			"dol_type" => "" . $origin . "",
     			"dol_thirdparty_id" => "" . $societe->id . "",
    +			'dol_thirdparty_name' => $societe->name,
     			'dol_version'=>DOL_VERSION,
     			'dol_entity'=>$conf->entity,
     			'ipaddress'=>(empty($_SERVER['REMOTE_ADDR'])?'':$_SERVER['REMOTE_ADDR'])
    @@ -396,7 +429,9 @@ class Stripe extends CommonObject
     					$charge = \Stripe\Charge::create(array(
     						"amount" => "$stripeamount",
     						"currency" => "$currency",
    -						// "statement_descriptor" => " ",
    +						"statement_descriptor" => dol_trunc(dol_trunc(dol_string_unaccent($mysoc->name), 8, 'right', 'UTF-8', 1).' '.$description, 22, 'right', 'UTF-8', 1),     // 22 chars that appears on bank receipt
    +						"description" => "Stripe payment: ".$description,
    +						"capture"  => $capture,
     						"metadata" => $metadata,
     						"source" => "$source"
     					));
    @@ -404,8 +439,9 @@ class Stripe extends CommonObject
     					$paymentarray = array(
     						"amount" => "$stripeamount",
     						"currency" => "$currency",
    -						// "statement_descriptor" => " ",
    -						"description" => "$description",
    +						"statement_descriptor" => dol_trunc(dol_trunc(dol_string_unaccent($mysoc->name), 8, 'right', 'UTF-8', 1).' '.$description, 22, 'right', 'UTF-8', 1),     // 22 chars that appears on bank receipt
    +						"description" => "Stripe payment: ".$description,
    +						"capture"  => $capture,
     						"metadata" => $metadata,
     						"source" => "$source",
     						"customer" => "$customer"
    @@ -425,19 +461,26 @@ class Stripe extends CommonObject
     					$fee = round($conf->global->STRIPE_APPLICATION_FEE_MINIMAL * 100);
     				}
     
    -				$charge = \Stripe\Charge::create(array(
    -					"amount" => "$stripeamount",
    -					"currency" => "$currency",
    -					// "statement_descriptor" => " ",
    -					"description" => "$description",
    -					"metadata" => $metadata,
    -					"source" => "$source",
    -					"customer" => "$customer",
    -					"application_fee" => "$fee"
    -					), array(
    -					"idempotency_key" => "$ref",
    -					"stripe_account" => "$account"
    -				));
    +        		$paymentarray = array(
    +						"amount" => "$stripeamount",
    +						"currency" => "$currency",
    +						"statement_descriptor" => dol_trunc(dol_trunc(dol_string_unaccent($mysoc->name), 8, 'right', 'UTF-8', 1).' '.$description, 22, 'right', 'UTF-8', 1),     // 22 chars that appears on bank receipt
    +						"description" => "Stripe payment: ".$description,
    +						"capture"  => $capture,
    +						"metadata" => $metadata,
    +						"source" => "$source",
    +						"customer" => "$customer"
    +					);
    +					if ($conf->entity!=$conf->global->STRIPECONNECT_PRINCIPAL && $fee>0)
    +					{
    +						$paymentarray["application_fee"] = $fee;
    +					}
    +					if ($societe->email && $usethirdpartyemailforreceiptemail)
    +					{
    +						$paymentarray["receipt_email"] = $societe->email;
    +					}
    +
    +					$charge = \Stripe\Charge::create($paymentarray, array("idempotency_key" => "$ref","stripe_account" => "$account"));
     			}
     			if (isset($charge->id)) {}
     
    @@ -501,5 +544,4 @@ class Stripe extends CommonObject
     		}
     		return $return;
     	}
    -
     }
    diff --git a/htdocs/stripe/config.php b/htdocs/stripe/config.php
    index 7aa22678d7a..cea97efe0a3 100644
    --- a/htdocs/stripe/config.php
    +++ b/htdocs/stripe/config.php
    @@ -55,4 +55,4 @@ else
     
     \Stripe\Stripe::setApiKey($stripearrayofkeys['secret_key']);
     \Stripe\Stripe::setAppInfo("Dolibarr Stripe", DOL_VERSION, "https://www.dolibarr.org"); // add dolibarr version
    -\Stripe\Stripe::setApiVersion("2018-07-27"); // force version API
    +\Stripe\Stripe::setApiVersion("2018-11-08"); // force version API
    diff --git a/htdocs/stripe/payment.php b/htdocs/stripe/payment.php
    index 1113d1428f5..3fa019ac4df 100644
    --- a/htdocs/stripe/payment.php
    +++ b/htdocs/stripe/payment.php
    @@ -1,13 +1,15 @@
     <?php
    -/* Copyright (C) 2001-2006 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2016 Laurent Destailleur   <eldy@users.sourceforge.net>
    - * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    - * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
    - * Copyright (C) 2012      Cédric Salvador       <csalvador@gpcsolutions.fr>
    - * Copyright (C) 2014      Raphaël Doursenaud    <rdoursenaud@gpcsolutions.fr>
    - * Copyright (C) 2014      Teddy Andreotti       <125155@supinfo.com>
    - * Copyright (C) 2015      Juanjo Menent		 <jmenent@2byte.es>
    +/* Copyright (C) 2001-2006  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005       Marc Barilley / Ocebo   <marc@ocebo.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2007       Franky Van Liedekerke   <franky.van.liedekerke@telenet.be>
    + * Copyright (C) 2012       Cédric Salvador         <csalvador@gpcsolutions.fr>
    + * Copyright (C) 2014       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2014       Teddy Andreotti         <125155@supinfo.com>
    + * Copyright (C) 2015       Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2018       Thibault FOUCART         <support@ptibogxiv.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -30,8 +32,7 @@
      */
     
     // Load Dolibarr environment
    -$res=@include("../main.inc.php");                                // For root directory
    -if (! $res) $res=@include("../../main.inc.php");
    +require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
     require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
    @@ -47,9 +48,9 @@ $confirm	= GETPOST('confirm');
     
     $facid		= GETPOST('facid','int');
     $socname	= GETPOST('socname');
    -$source	= GETPOST('source_id');
    +$source = GETPOST('source_id');
     $accountid	= GETPOST('accountid');
    -$paymentnum	= GETPOST('num_paiement');
    +$paymentnum = GETPOST('num_paiement');
     
     $sortfield	= GETPOST('sortfield','alpha');
     $sortorder	= GETPOST('sortorder','alpha');
    @@ -62,21 +63,6 @@ $addwarning=0;
     $multicurrency_amounts=array();
     $multicurrency_amountsresttopay=array();
     
    -if (! empty($conf->stripe->enabled))
    -{
    -	$service = 'StripeTest';
    -	$servicestatus = 0;
    -	if (! empty($conf->global->STRIPE_LIVE) && ! GETPOST('forcesandbox','alpha'))
    -	{
    -		$service = 'StripeLive';
    -		$servicestatus = 0;
    -	}
    -
    -	$stripe = new Stripe($db);
    -	$stripeacc = $stripe->getStripeAccount($service);								// Stripe OAuth connect account of dolibarr user (no network access here)
    -	$stripecu = $stripe->getStripeCustomerAccount($object->id, $servicestatus);		// Get thirdparty cu_...
    -}
    -
     // Security check
     $socid=0;
     if ($user->societe_id > 0)
    @@ -92,6 +78,20 @@ if ($facid > 0)
     	$ret=$object->fetch($facid);
     }
     
    +if (! empty($conf->stripe->enabled))
    +{
    +	$service = 'StripeTest';
    +	$servicestatus = 0;
    +	if (! empty($conf->global->STRIPE_LIVE) && ! GETPOST('forcesandbox','alpha'))
    +	{
    +		$service = 'StripeLive';
    +		$servicestatus = 0;
    +	}
    +
    +	$stripe=new Stripe($db);
    +	$stripeacc = $stripe->getStripeAccount($service);								// Stripe OAuth connect account of dolibarr user (no network access here)
    +}
    +
     // Initialize technical object to manage hooks of paiements. Note that conf->hooks_modules contains array array
     $hookmanager->initHooks(array('paiementcard','globalcard'));
     
    @@ -218,15 +218,12 @@ if (empty($reshook))
     	/*
     	 * Action add_paiement
     	 */
    -	if ($action == 'add_paiement')
    -	{
    -	    if ($error)
    -	    {
    -      $action = 'create';
    -      if (!$source)
    -	    {
    -			setEventMessages($langs->transnoentities('NoSource'), null, 'errors');
    -	    }
    +	if ($action == 'add_paiement') {
    +	    if ($error) {
    +            $action = 'create';
    +            if (!$source) {
    +			    setEventMessages($langs->transnoentities('NoSource'), null, 'errors');
    +	        }
     	        $error++;
     	    }
     	    // Le reste propre a cette action s'affiche en bas de page.
    @@ -301,7 +298,7 @@ if (empty($reshook))
     		}
     		elseif (preg_match('/src_/i',$source))
     		{
    -	
    +
     		        $customer2 = $customerstripe=$stripe->customerStripe($facture->thirdparty, $stripeacc, $servicestatus);
     			$src = $customer2->sources->retrieve("$source");
     			if ($src->type=='card')
    @@ -310,11 +307,15 @@ if (empty($reshook))
     			}
     		}
     
    +
    +
     		$societe = new Societe($db);
     		$societe->fetch($facture->socid);
     		dol_syslog("Create charge", LOG_DEBUG, 0, '_stripe');
     
    -		$charge=$stripe->CreatePaymentStripe($stripeamount,"EUR","invoice",$facid,$source,$customer->id,$stripe->getStripeAccount($conf->entity));
    +		$stripecu = $stripe->getStripeCustomerAccount($societe->id, $servicestatus);		// Get thirdparty cu_...
    +
    +		$charge=$stripe->createPaymentStripe($stripeamount,$facture->multicurrency_code,"invoice",$facid,$source,$stripecu,$stripeacc,$servicestatus);
     
     		if (!$error)
     		{
    @@ -326,6 +327,8 @@ if (empty($reshook))
     			$paiement->paiementid   = dol_getIdFromCode($db,$paiementcode,'c_paiement');
     			$paiement->num_paiement = $charge->message;
     			$paiement->note         = GETPOST('comment');
    +			$paiement->ext_payment_id = $charge->id;
    +			$paiement->ext_payment_site = $service;
     		}
     
     		if (! $error)
    @@ -352,7 +355,6 @@ if (empty($reshook))
     
     				$facture->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
     			}
    -
     		}
     
     		if (! $error)
    @@ -392,7 +394,7 @@ if (empty($reshook))
     		}
     		else
     		{
    -			$loc = DOL_URL_ROOT.'/stripeconnect/payment.php?facid='.$facid.'&action=create&error='.$e->getMessage();
    +			$loc = DOL_URL_ROOT.'/stripe/payment.php?facid='.$facid.'&action=create&error='.$charge->message;
     			$db->rollback();
     
     			header('Location: '.$loc);
    @@ -406,16 +408,14 @@ if (empty($reshook))
      * View
      */
     
    -$form=new Form($db);
    +$form = new Form($db);
     
     llxHeader();
     
    -if (! empty($conf->global->STRIPE_LIVE) && ! GETPOST('forcesandbox','alpha'))
    -{
    +if (! empty($conf->global->STRIPE_LIVE) && ! GETPOST('forcesandbox','alpha')) {
     	$service = 'StripeLive';
     	$servicestatus = 0;
    -}
    -else {
    +} else {
     	dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode','Stripe'),'','warning');
     }
     
    @@ -568,7 +568,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
     			print '<tr><td class="titlefieldcreate"><span class="fieldrequired">'.$langs->trans('Invoice').'</span></td><td>'.$facture->getNomUrl(4)."</td></tr>\n";
     		}*/
     
    -		// Third party
    +        // Third party
             print '<tr><td class="titlefieldcreate"><span class="fieldrequired">'.$langs->trans('Company').'</span></td><td>'.$facture->thirdparty->getNomUrl(4)."</td></tr>\n";
     
             // Bank account
    @@ -583,22 +583,22 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
             }
     
             // Cheque number
    -//        print '<tr><td>'.$langs->trans('Numero');
    -//        print ' <em>('.$langs->trans("ChequeOrTransferNumber").')</em>';
    -//        print '</td>';
    -//        print '<td><input name="num_paiement" type="text" value="'.$paymentnum.'"></td></tr>';
    +        //print '<tr><td>'.$langs->trans('Numero');
    +        //print ' <em>('.$langs->trans("ChequeOrTransferNumber").')</em>';
    +        //print '</td>';
    +        //print '<td><input name="num_paiement" type="text" value="'.$paymentnum.'"></td></tr>';
     
             // Check transmitter
    -//        print '<tr><td class="'.(GETPOST('paiementcode')=='CHQ'?'fieldrequired ':'').'fieldrequireddyn">'.$langs->trans('CheckTransmitter');
    -//        print ' <em>('.$langs->trans("ChequeMaker").')</em>';
    -//        print '</td>';
    -//        print '<td><input id="fieldchqemetteur" name="chqemetteur" size="30" type="text" value="'.GETPOST('chqemetteur').'"></td></tr>';
    +        //print '<tr><td class="'.(GETPOST('paiementcode')=='CHQ'?'fieldrequired ':'').'fieldrequireddyn">'.$langs->trans('CheckTransmitter');
    +        //print ' <em>('.$langs->trans("ChequeMaker").')</em>';
    +        //print '</td>';
    +        //print '<td><input id="fieldchqemetteur" name="chqemetteur" size="30" type="text" value="'.GETPOST('chqemetteur').'"></td></tr>';
     
             // Bank name
    -//        print '<tr><td>'.$langs->trans('Bank');
    -//        print ' <em>('.$langs->trans("ChequeBank").')</em>';
    -//        print '</td>';
    -//        print '<td><input name="chqbank" size="30" type="text" value="'.GETPOST('chqbank').'"></td></tr>';
    +        //print '<tr><td>'.$langs->trans('Bank');
    +        //print ' <em>('.$langs->trans("ChequeBank").')</em>';
    +        //print '</td>';
    +        //print '<td><input name="chqbank" size="30" type="text" value="'.GETPOST('chqbank').'"></td></tr>';
     
     		// Comments
     		print '<tr><td>'.$langs->trans('Comments').'</td>';
    @@ -607,175 +607,173 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
     
             print '</table>';
     
    -		dol_fiche_end();
    +        dol_fiche_end();
     
     
    -		$customerstripe=$stripe->customerStripe($facture->thirdparty, $stripeacc, $servicestatus);
    +        $customerstripe=$stripe->customerStripe($facture->thirdparty, $stripeacc, $servicestatus);
     
    -		 print '<br>';
    -		    print_barre_liste($langs->trans('StripeSourceList').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, '', '');
    +        print '<br>';
    +        print_barre_liste($langs->trans('StripeSourceList').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, '', '');
     
    -		    print '<table class="liste" width="100%">'."\n";
    -		    // Titles with sort buttons
    -		    print '<tr class="liste_titre">';
    -		    print '<td align="left"></td>';
    -		    print '<td align="left">'.$langs->trans('Type').'</td>';
    -		    print '<td align="left">'.$langs->trans('Informations').'</td>';
    -		    print '<td align="left"></td>';
    -		    print "<td></td></tr>\n";
    -		    foreach ($customerstripe->sources->data as $src) {
    -		print '<tr>';
    +        print '<table class="liste" width="100%">'."\n";
    +        // Titles with sort buttons
    +        print '<tr class="liste_titre">';
    +        print '<td align="left"></td>';
    +        print '<td align="left">'.$langs->trans('Type').'</td>';
    +        print '<td align="left">'.$langs->trans('Informations').'</td>';
    +        print '<td align="left"></td>';
    +        print "<td></td></tr>\n";
    +        foreach ($customerstripe->sources->data as $src) {
    +            print '<tr>';
     
                 print '<td align="center" width="20" ';
    -if (($action == 'add_paiement' && $src->id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) { print'class="opacitymedium"';}
    -print'><input type="radio" id="source_id" class="flat" name="source_id"  value="'.$src->id.'"';
    -if (($action == 'add_paiement' && $src->id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) {
    +            if (($action == 'add_paiement' && $src->id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) {
    +                print'class="opacitymedium"';
    +            }
    +            print '><input type="radio" id="source_id" class="flat" name="source_id"  value="'.$src->id.'"';
    +            if (($action == 'add_paiement' && $src->id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) {
                     print ' disabled';
                 } elseif (($customerstripe->default_source==$src->id && $action != 'add_paiement') or ($source==$src->id && $action == 'add_paiement')) {
                     print ' checked';
                 }
                 print '></td>';
     
    -print '<td ';
    -if (($action == 'add_paiement' && $src->id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) { print'class="opacitymedium"';}
    +            print '<td ';
    +            if (($action == 'add_paiement' && $src->id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) {
    +                print'class="opacitymedium"';
    +            }
     
    -print' >';
    -if ($src->object=='card'){
    -if ($src->brand == 'Visa') {$brand='cc-visa';}
    -elseif ($src->brand == 'MasterCard') {$brand='cc-mastercard';}
    -elseif ($src->brand == 'American Express') {$brand='cc-amex';}
    -elseif ($src->brand == 'Discover') {$brand='cc-discover';}
    -elseif ($src->brand == 'JCB') {$brand='cc-jcb';}
    -elseif ($src->brand == 'Diners Club') {$brand='cc-diners-club';}
    -else {$brand='credit-card-alt';}
    -print '<span class="fa fa-'.$brand.' fa-3x fa-fw"></span>';
    -}
    -elseif ($src->object=='source' && $src->type=='card'){
    -if ($src->card->brand == 'Visa') {$brand='cc-visa';}
    -elseif ($src->card->brand == 'MasterCard') {$brand='cc-mastercard';}
    -elseif ($src->card->brand == 'American Express') {$brand='cc-amex';}
    -elseif ($src->card->brand == 'Discover') {$brand='cc-discover';}
    -elseif ($src->card->brand == 'JCB') {$brand='cc-jcb';}
    -elseif ($src->card->brand == 'Diners Club') {$brand='cc-diners-club';}
    -else {$brand='credit-card-alt';}
    -
    -print '<span class="fa fa-'.$brand.' fa-3x fa-fw"></span>';
    -}
    -elseif ($src->object=='source' && $src->type=='sepa_debit'){
    -print '<span class="fa fa-university fa-3x fa-fw"></span>';
    -}
    -print '</td>';
    -print '<td ';
    -if (($action == 'add_paiement' && $src->id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) { print'class="opacitymedium"';}
    -print' >';
    -if ($src->object=='card'){
    -print '**** '.$src->last4.'<br>Exp. '.$src->exp_month.'/'.$src->exp_year.'';
    -print '</td><td>';
    - if ($src->country)
    -	{
    -		$img=picto_from_langcode($src->country);
    -		print $img?$img.' ':'';
    -		print getCountry($src->country,1);
    -	}
    -	else print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).'</font>';
    -}
    -elseif ($src->object=='source' && $src->type=='card'){
    -					print $src->owner->name.'<br>**** '.$src->card->last4.' - '.$src->card->exp_month.'/'.$src->card->exp_year.'';
    -print '</td><td>';
    - if ($src->card->country)
    -	{
    -		$img=picto_from_langcode($src->card->country);
    -		print $img?$img.' ':'';
    -		print getCountry($src->card->country,1);
    -	}
    -	else print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).'</font>';
    -}
    -elseif ($src->object=='source' && $src->type=='sepa_debit'){
    -print 'info sepa';
    -print '</td><td>';
    - if ($src->sepa_debit->country)
    -	{
    -		$img=picto_from_langcode($src->sepa_debit->country);
    -		print $img?$img.' ':'';
    -		print getCountry($src->sepa_debit->country,1);
    -	}
    -	else print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).'</font>';
    -}
    -print '</td>';
    +            print' >';
    +            if ($src->object=='card') {
    +                print img_credit_card($src->brand);
    +            } elseif ($src->object=='source' && $src->type=='card') {
    +                print img_credit_card($src->card->brand);
    +            } elseif ($src->object=='source' && $src->type=='sepa_debit') {
    +                print '<span class="fa fa-university fa-2x fa-fw"></span>';
    +            }
    +            print '</td>';
    +            print '<td ';
    +            if (($action == 'add_paiement' && $src->id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) {
    +                print'class="opacitymedium"';
    +            }
    +            print' >';
    +            if ($src->object=='card') {
    +                print '....'.$src->last4.' - '.$src->exp_month.'/'.$src->exp_year.'';
    +                print '</td><td>';
    +                if ($src->country) {
    +                    $img = picto_from_langcode($src->country);
    +                    print $img?$img.' ':'';
    +                    print getCountry($src->country,1);
    +                } else {
    +                    print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).'</font>';
    +                }
    +            } elseif ($src->object=='source' && $src->type=='card') {
    +                print $src->owner->name.'<br>....'.$src->card->last4.' - '.$src->card->exp_month.'/'.$src->card->exp_year.'';
    +                print '</td><td>';
    +                if ($src->card->country) {
    +                    $img = picto_from_langcode($src->card->country);
    +                    print $img?$img.' ':'';
    +                    print getCountry($src->card->country,1);
    +                } else {
    +                    print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).'</font>';
    +                }
    +            } elseif ($src->object=='source' && $src->type=='sepa_debit') {
    +                print 'info sepa';
    +                print '</td><td>';
    +                if ($src->sepa_debit->country) {
    +                    $img = picto_from_langcode($src->sepa_debit->country);
    +                    print $img?$img.' ':'';
    +                    print getCountry($src->sepa_debit->country,1);
    +                } else {
    +                    print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).'</font>';
    +                }
    +            }
    +            print '</td>';
                 // Default
                 print '<td align="center" width="50" ';
    -if (($action == 'add_paiement' && $src->id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) { print'class="opacitymedium"';}
    -print'>';
    +            if (($action == 'add_paiement' && $src->id!=$source) or ($src->object=='source' && $src->card->three_d_secure=='required')) {
    +                print'class="opacitymedium"';
    +            }
    +            print'>';
                 if (($customerstripe->default_source==$src->id)) {
                     print "<SPAN class=' fa fa-star  fa-2x'></SPAN>";
                 }
                 print '</td>';
    -print '</tr>';
    -}
    -// TODO more dolibarize with new stripe function and stripeconnect
    -//if ($stripe->getStripeCustomerAccount($facture->socid)) {
    -//$account=\Stripe\Account::retrieve("".$stripe->getStripeCustomerAccount($facture->socid)."");
    -//}
    +            print '</tr>';
    +        }
    +        // TODO more dolibarize with new stripe function and stripeconnect
    +        //if ($stripe->getStripeCustomerAccount($facture->socid)) {
    +        //    $account=\Stripe\Account::retrieve("".$stripe->getStripeCustomerAccount($facture->socid)."");
    +        //}
     
    -	if (($account->type=='custom' or $account->type=='express') && $entity==1) {
    -	print '<tr class="oddeven">';
    +        if (($account->type=='custom' or $account->type=='express') && $entity==1) {
    +            print '<tr class="oddeven">';
     
    -	            print '<td align="center" width="20" ';
    -	if ($action == 'add_paiement' && $stripe->getStripeCustomerAccount($facture->socid)!=$source) { print'class="opacitymedium"';}
    -	print'><input type="radio" id="source_id" class="flat" name="source_id"  value="'.$conf->global->STRIPE_EXTERNAL_ACCOUNT.'"';
    -	            if ((empty($input) && $action != 'add_paiement') or ($source==$conf->global->STRIPE_EXTERNAL_ACCOUNT && $action == 'add_paiement')) {
    -	                print ' checked';
    -	            } elseif ($action == 'add_paiement' && $conf->global->STRIPE_EXTERNAL_ACCOUNT!=$source) {
    -	                print ' disabled';
    -	            }
    -	            print '></td><td ';
    -	if ($action == 'add_paiement' && $stripe->getStripeCustomerAccount($facture->socid)!=$source) { print'class="opacitymedium"';}
    -	            print '><span class="fa fa-cc-stripe fa-3x fa-fw"></span></td>';
    +            print '<td align="center" width="20" ';
    +            if ($action == 'add_paiement' && $stripe->getStripeCustomerAccount($facture->socid)!=$source) {
    +                print'class="opacitymedium"';
    +            }
    +            print'><input type="radio" id="source_id" class="flat" name="source_id"  value="'.$conf->global->STRIPE_EXTERNAL_ACCOUNT.'"';
    +            if ((empty($input) && $action != 'add_paiement') or ($source==$conf->global->STRIPE_EXTERNAL_ACCOUNT && $action == 'add_paiement')) {
    +                print ' checked';
    +            } elseif ($action == 'add_paiement' && $conf->global->STRIPE_EXTERNAL_ACCOUNT!=$source) {
    +                print ' disabled';
    +            }
    +            print '></td><td ';
    +            if ($action == 'add_paiement' && $stripe->getStripeCustomerAccount($facture->socid)!=$source) {
    +                print'class="opacitymedium"';
    +            }
    +            print '><span class="fa fa-cc-stripe fa-3x fa-fw"></span></td>';
     
    -	print '<td ';
    -	if ($action == 'add_paiement' && $stripe->getStripeCustomerAccount($facture->socid)!=$source) { print'class="opacitymedium"';}
    -	print'>'.$langs->trans('sold');
    -	print'</td><td ';
    -	if ($action == 'add_paiement' && $src->id!=$source) { print'class="opacitymedium"';}
    -	print'>';
    +            print '<td ';
    +            if ($action == 'add_paiement' && $stripe->getStripeCustomerAccount($facture->socid)!=$source) {
    +                print'class="opacitymedium"';
    +            }
    +            print'>'.$langs->trans('sold');
    +            print'</td><td ';
    +            if ($action == 'add_paiement' && $src->id!=$source) {
    +                print'class="opacitymedium"';
    +            }
    +            print'>';
     
    -	print '</td>';
    -	            // Default
    -	            print '<td align="center" width="50" ';
    -	if ($action == 'add_paiement' && $src->id!=$source) { print'class="opacitymedium"';}
    -	print'>';
    -	//            if (($customer->default_source!=$src->id)) {
    -	//                print img_picto($langs->trans("Disabled"),'off');
    -	//            } else {
    -	//                print img_picto($langs->trans("Default"),'on');
    -	//            }
    -	            print '</td>';
    -	print '</tr>';
    -	}
    -	if (empty($input)&&!$stripe->getStripeCustomerAccount($facture->socid))
    -	{
    -	print '<tr><td class="opacitymedium" colspan="5">'.$langs->trans("None").'</td></tr>';
    -	}
    +            print '</td>';
    +            // Default
    +            print '<td align="center" width="50" ';
    +            if ($action == 'add_paiement' && $src->id!=$source) {
    +                print'class="opacitymedium"';
    +            }
    +            print'>';
    +            //if (($customer->default_source!=$src->id)) {
    +            //    print img_picto($langs->trans("Disabled"),'off');
    +            //} else {
    +            //    print img_picto($langs->trans("Default"),'on');
    +            //}
    +            print '</td>';
    +            print '</tr>';
    +        }
    +        if (empty($input)&&!$stripe->getStripeCustomerAccount($facture->socid)) {
    +            print '<tr><td class="opacitymedium" colspan="5">'.$langs->trans("None").'</td></tr>';
    +        }
     
    -	print "</table>";
    +        print "</table>";
     
     
             /*
              * List of unpaid invoices
              */
     
    -        $sql = 'SELECT f.rowid as facid, f.facnumber, f.total_ttc, f.multicurrency_code, f.multicurrency_total_ttc, f.type, ';
    +        $sql = 'SELECT f.rowid as facid, f.ref, f.total_ttc, f.multicurrency_code, f.multicurrency_total_ttc, f.type, ';
             $sql.= ' f.datef as df, f.fk_soc as socid';
             $sql.= ' FROM '.MAIN_DB_PREFIX.'facture as f';
     
    -		if(!empty($conf->global->FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS)) {
    +		if (!empty($conf->global->FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS)) {
     			$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON (f.fk_soc = s.rowid)';
     		}
     
    -		$sql.= ' WHERE f.entity = '.$conf->entity;
    +		$sql.= ' WHERE f.entity IN ('.getEntity('invoice').")";
             $sql.= ' AND (f.fk_soc = '.$facture->socid;
     
    -		if(!empty($conf->global->FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS) && !empty($facture->thirdparty->parent)) {
    +		if (!empty($conf->global->FACTURE_PAYMENTS_ON_DIFFERENT_THIRDPARTIES_BILLS) && !empty($facture->thirdparty->parent)) {
     			$sql.= ' OR f.fk_soc IN (SELECT rowid FROM '.MAIN_DB_PREFIX.'societe WHERE parent = '.$facture->thirdparty->parent.')';
     		}
     
    @@ -791,7 +789,7 @@ print '</tr>';
             }
     
             // Sort invoices by date and serial number: the older one comes first
    -        $sql.=' ORDER BY f.datef ASC, f.facnumber ASC';
    +        $sql.=' ORDER BY f.datef ASC, f.ref ASC';
     
             $resql = $db->query($sql);
             if ($resql)
    @@ -814,20 +812,24 @@ print '</tr>';
                     $i = 0;
                     //print '<tr><td colspan="3">';
                     print '<br>';
    -                 print_barre_liste($langs->trans('StripeInvoiceList').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, '', '');
    +                print_barre_liste($langs->trans('StripeInvoiceList').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, '', '');
                     print '<table class="noborder" width="100%">';
                     print '<tr class="liste_titre">';
                     print '<td>'.$arraytitle.'</td>';
                     print '<td align="center">'.$langs->trans('Date').'</td>';
    -                if (!empty($conf->multicurrency->enabled)) print '<td>'.$langs->trans('Currency').'</td>';
    -                if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$langs->trans('MulticurrencyAmountTTC').'</td>';
    -                if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$multicurrencyalreadypayedlabel.'</td>';
    -                if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$multicurrencyremaindertopay.'</td>';
    +                if (!empty($conf->multicurrency->enabled)) {
    +                    print '<td>'.$langs->trans('Currency').'</td>';
    +                    print '<td align="right">'.$langs->trans('MulticurrencyAmountTTC').'</td>';
    +                    print '<td align="right">'.$multicurrencyalreadypayedlabel.'</td>';
    +                    print '<td align="right">'.$multicurrencyremaindertopay.'</td>';
    +                }
                     print '<td align="right">'.$langs->trans('AmountTTC').'</td>';
                     print '<td align="right">'.$alreadypayedlabel.'</td>';
                     print '<td align="right">'.$remaindertopay.'</td>';
                     print '<td align="right">'.$langs->trans('PaymentAmount').'</td>';
    -                if (!empty($conf->multicurrency->enabled)) print '<td align="right">'.$langs->trans('MulticurrencyPaymentAmount').'</td>';
    +                if (!empty($conf->multicurrency->enabled)) {
    +                    print '<td align="right">'.$langs->trans('MulticurrencyPaymentAmount').'</td>';
    +                }
                     print '<td align="right">&nbsp;</td>';
                     print "</tr>\n";
     
    @@ -986,17 +988,21 @@ print '</tr>';
                         // Print total
                         print '<tr class="liste_total">';
                         print '<td colspan="2" align="left">'.$langs->trans('TotalTTC').'</td>';
    -					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
    -					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
    -					if (!empty($conf->multicurrency->enabled)) print '<td></td>';
    +					if (!empty($conf->multicurrency->enabled)) {
    +                        print '<td></td>';
    +					    print '<td></td>';
    +					    print '<td></td>';
    +                    }
     					print '<td align="right"><b>'.price($sign * $total_ttc).'</b></td>';
                         print '<td align="right"><b>'.price($sign * $totalrecu);
                         if ($totalrecucreditnote) print '+'.price($totalrecucreditnote);
                         if ($totalrecudeposits) print '+'.price($totalrecudeposits);
                         print '</b></td>';
    -                   print '<td align="right"><b>'.price($sign * price2num($total_ttc - $totalrecu - $totalrecucreditnote - $totalrecudeposits,'MT')).'</b></td>';
    +                    print '<td align="right"><b>'.price($sign * price2num($total_ttc - $totalrecu - $totalrecucreditnote - $totalrecudeposits,'MT')).'</b></td>';
                         print '<td align="right" id="result" style="font-weight: bold;"></td>';
    -					if (!empty($conf->multicurrency->enabled)) {print '<td align="right" id="multicurrency_result" style="font-weight: bold;"></td>';}
    +					if (!empty($conf->multicurrency->enabled)) {
    +                        print '<td align="right" id="multicurrency_result" style="font-weight: bold;"></td>';
    +                    }
                         print "</tr>\n";
                     }
                     print "</table>";
    @@ -1035,10 +1041,11 @@ print '</tr>';
                 $preselectedchoice=$addwarning?'no':'yes';
     
                 print '<br>';
    -            if (!empty($totalpayment)) $text=$langs->trans('ConfirmCustomerPayment',$totalpayment,$langs->trans("Currency".$conf->currency));
    -			if (!empty($multicurrency_totalpayment))
    -			{
    -				$text.='<br>'.$langs->trans('ConfirmCustomerPayment',$multicurrency_totalpayment,$langs->trans("paymentInInvoiceCurrency"));
    +            if (!empty($totalpayment)) {
    +                $text = $langs->trans('ConfirmCustomerPayment', $totalpayment, $langs->trans("Currency".$conf->currency));
    +            }
    +			if (!empty($multicurrency_totalpayment)) {
    +				$text.='<br>'.$langs->trans('ConfirmCustomerPayment', $multicurrency_totalpayment, $langs->trans("paymentInInvoiceCurrency"));
     			}
                 if (GETPOST('closepaidinvoices'))
                 {
    @@ -1066,11 +1073,11 @@ if (! GETPOST('action'))
         if (! $sortorder) $sortorder='DESC';
         if (! $sortfield) $sortfield='p.datep';
     
    -    $sql = 'SELECT p.datep as dp, p.amount, f.amount as fa_amount, f.facnumber';
    +    $sql = 'SELECT p.datep as dp, p.amount, f.amount as fa_amount, f.ref';
         $sql.=', f.rowid as facid, c.libelle as paiement_type, p.num_paiement';
         $sql.= ' FROM '.MAIN_DB_PREFIX.'paiement as p, '.MAIN_DB_PREFIX.'facture as f, '.MAIN_DB_PREFIX.'c_paiement as c';
         $sql.= ' WHERE p.fk_facture = f.rowid AND p.fk_paiement = c.id';
    -    $sql.= ' AND f.entity = '.$conf->entity;
    +    $sql.= ' AND f.entity IN ('.getEntity('invoice').")";
         if ($socid)
         {
             $sql.= ' AND f.fk_soc = '.$socid;
    @@ -1088,7 +1095,7 @@ if (! GETPOST('action'))
             print_barre_liste($langs->trans('Payments'), $page, $_SERVER["PHP_SELF"],'',$sortfield,$sortorder,'',$num);
             print '<table class="noborder" width="100%">';
             print '<tr class="liste_titre">';
    -        print_liste_field_titre('Invoice',$_SERVER["PHP_SELF"],'facnumber','','','',$sortfield,$sortorder);
    +        print_liste_field_titre('Invoice',$_SERVER["PHP_SELF"],'ref','','','',$sortfield,$sortorder);
             print_liste_field_titre('Date',$_SERVER["PHP_SELF"],'dp','','','',$sortfield,$sortorder);
             print_liste_field_titre('Type',$_SERVER["PHP_SELF"],'libelle','','','',$sortfield,$sortorder);
             print_liste_field_titre('Amount',$_SERVER["PHP_SELF"],'fa_amount','','','align="right"',$sortfield,$sortorder);
    @@ -1099,7 +1106,7 @@ if (! GETPOST('action'))
             {
                 $objp = $db->fetch_object($resql);
                 print '<tr class="oddeven">';
    -            print '<td><a href="'.DOL_URL_ROOT.'compta/facture/card.php?facid='.$objp->facid.'">'.$objp->facnumber."</a></td>\n";
    +            print '<td><a href="'.DOL_URL_ROOT.'compta/facture/card.php?facid='.$objp->facid.'">'.$objp->ref."</a></td>\n";
                 print '<td>'.dol_print_date($db->jdate($objp->dp))."</td>\n";
                 print '<td>'.$objp->paiement_type.' '.$objp->num_paiement."</td>\n";
                 print '<td align="right">'.price($objp->amount).'</td><td>&nbsp;</td>';
    @@ -1114,6 +1121,6 @@ if (! GETPOST('action'))
         }
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/stripe/transaction.php b/htdocs/stripe/transaction.php
    index 1cdabffdac4..f95bde08369 100644
    --- a/htdocs/stripe/transaction.php
    +++ b/htdocs/stripe/transaction.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2018 	PtibogXIV        <support@ptibogxiv.net>
    +/* Copyright (C) 2018       Thibault FOUCART        <support@ptibogxiv.net>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -62,14 +63,16 @@ llxHeader('', $langs->trans("StripeTransactionList"));
     if (! empty($conf->stripe->enabled) && (empty($conf->global->STRIPE_LIVE) || GETPOST('forcesandbox','alpha')))
     {
     	$service = 'StripeTest';
    +	$servicestatus = '0';
     	dol_htmloutput_mesg($langs->trans('YouAreCurrentlyInSandboxMode', 'Stripe'), '', 'warning');
     }
     else
     {
     	$service = 'StripeLive';
    +	$servicestatus = '1';
     }
     
    -$stripeaccount = $stripe->getStripeAccount($service);
    +$stripeacc = $stripe->getStripeAccount($service);
     /*if (empty($stripeaccount))
     {
     	print $langs->trans('ErrorStripeAccountNotDefined');
    @@ -77,55 +80,55 @@ $stripeaccount = $stripe->getStripeAccount($service);
     
     if (! $rowid) {
     
    -	print '<FORM method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
    +	print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
     	if ($optioncss != '')
    -		print '<INPUT type="hidden" name="optioncss" value="' . $optioncss . '">';
    -	print '<INPUT type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    -	print '<INPUT type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    -	print '<INPUT type="hidden" name="action" value="list">';
    -	print '<INPUT type="hidden" name="sortfield" value="' . $sortfield . '">';
    -	print '<INPUT type="hidden" name="sortorder" value="' . $sortorder . '">';
    -	print '<INPUT type="hidden" name="page" value="' . $page . '">';
    +		print '<input type="hidden" name="optioncss" value="' . $optioncss . '">';
    +	print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
    +	print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    +	print '<input type="hidden" name="action" value="list">';
    +	print '<input type="hidden" name="sortfield" value="' . $sortfield . '">';
    +	print '<input type="hidden" name="sortorder" value="' . $sortorder . '">';
    +	print '<input type="hidden" name="page" value="' . $page . '">';
     
     	$title=$langs->trans("StripeTransactionList");
    -	$title.=($stripeaccount?' (Stripe connection with Stripe OAuth Connect account '.$stripeaccount.')':' (Stripe connection with keys from Stripe module setup)');
    +	$title.=($stripeaccount?' (Stripe connection with Stripe OAuth Connect account '.$stripeacc.')':' (Stripe connection with keys from Stripe module setup)');
     
     	print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $totalnboflines, 'title_accountancy.png', 0, '', '', $limit);
     
    -	print '<DIV class="div-table-responsive">';
    -	print '<TABLE class="tagtable liste' . ($moreforfilter ? " listwithfilterbefore" : "") . '">' . "\n";
    +	print '<div class="div-table-responsive">';
    +	print '<table class="tagtable liste' . ($moreforfilter ? " listwithfilterbefore" : "") . '">' . "\n";
     
    -	print '<TR class="liste_titre">';
    +	print '<tr class="liste_titre">';
     	print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "", "", "", "", $sortfield, $sortorder);
     	//print_liste_field_titre("StripeCustomerId",$_SERVER["PHP_SELF"],"","","","",$sortfield,$sortorder);
     	//print_liste_field_titre("CustomerId", $_SERVER["PHP_SELF"], "", "", "", "", $sortfield, $sortorder);
    -	print_liste_field_titre("Origin", $_SERVER["PHP_SELF"], "", "", "", "", $sortfield, $sortorder);
    +	//print_liste_field_titre("Origin", $_SERVER["PHP_SELF"], "", "", "", "", $sortfield, $sortorder);
     	print_liste_field_titre("DatePayment", $_SERVER["PHP_SELF"], "", "", "", 'align="center"', $sortfield, $sortorder);
     	print_liste_field_titre("Type", $_SERVER["PHP_SELF"], "", "", "", 'align="left"', $sortfield, $sortorder);
     	print_liste_field_titre("Paid", $_SERVER["PHP_SELF"], "", "", "", 'align="right"', $sortfield, $sortorder);
     	print_liste_field_titre("Fee", $_SERVER["PHP_SELF"], "", "", "", 'align="right"', $sortfield, $sortorder);
     	print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "", "", "", 'align="right"');
    -	print "</TR>\n";
    +	print "</tr>\n";
     
    -	print "</TR>\n";
    +	print "</tr>\n";
     
    -	if ($stripeaccount)
    +	if ($stripeacc)
     	{
    -		$txn = \Stripe\BalanceTransaction::all(array("limit" => $limit), array("stripe_account" => $stripeaccount));
    +		$txn = \Stripe\BalanceTransaction::all(array("limit" => $limit), array("stripe_account" => $stripeacc));
     	}
     	else
     	{
     		$txn = \Stripe\BalanceTransaction::all(array("limit" => $limit));
     	}
     
    -	foreach ($txn->data as $txn) 
    +	foreach ($txn->data as $txn)
     	{
     		//$charge = $txn;
     		//var_dump($txn);
    -		
    +
     		// The metadata FULLTAG is defined by the online payment page
     		/*$FULLTAG=$charge->metadata->FULLTAG;
    -		
    +
     		// Save into $tmparray all metadata
     		$tmparray = dolExplodeIntoArray($FULLTAG,'.','=');
     		// Load origin object according to metadata
    @@ -145,7 +148,7 @@ if (! $rowid) {
     		{
     			$memberstatic->id = 0;
     		}*/
    -		
    +
     		$societestatic->fetch($charge->metadata->idcustomer);
     		$societestatic->id = $charge->metadata->idcustomer;
     		$societestatic->lastname = $obj->lastname;
    @@ -155,14 +158,34 @@ if (! $rowid) {
     		$societestatic->email = $obj->email;
     		$societestatic->societe_id = $obj->fk_soc;
     
    -		print '<TR class="oddeven">';
    -		
    +		print '<tr class="oddeven">';
    +
     		// Ref
    -		print "<TD><A href='" . DOL_URL_ROOT . "/stripe/transaction.php?rowid=" . $txn->source . "'>" . $txn->source . "</A></TD>\n";
    +        if (!empty($stripeacc)) $connect=$stripeacc.'/';
    +    
    +		// Ref
    +        if (preg_match('/po_/i', $txn->source)){
    +            $origin="payouts";
    +        } elseif (preg_match('/fee_/i', $txn->source)) {
    +            $origin="connect/application_fees";
    +        } else {
    +            $origin="payments";
    +        }
    +
    +		$url='https://dashboard.stripe.com/'.$connect.'test/'.$origin.'/'.$txn->source;
    +		if ($servicestatus) {
    +			$url='https://dashboard.stripe.com/'.$connect.$origin.'/'.$txn->source;
    +		}
    +        if ($txn->type == 'stripe_fee' || $txn->type == 'reserve_transaction') {
    +            print "<td>".$txn->type."</td>";
    +        } else {
    +            print "<td><a href='".$url."' target='_stripe'>".img_picto($langs->trans('ShowInStripe'), 'object_globe')." " . $txn->source . "</a></td>\n";
    +        }
    +
     		// Stripe customer
    -		//print "<TD>".$charge->customer."</TD>\n";
    +		//print "<td>".$charge->customer."</td>\n";
     		// Link
    -		/*print "<TD>";
    +		/*print "<td>";
     		if ($societestatic->id > 0)
     		{
     			print $societestatic->getNomUrl(1);
    @@ -171,42 +194,42 @@ if (! $rowid) {
     		{
     			print $memberstatic->getNomUrl(1);
     		}
    -		print "</TD>\n";*/
    +		print "</td>\n";*/
     		// Origine
    -		print "<TD>";
    -		print $FULLTAG;
    -		if ($charge->metadata->source=="order"){
    -			$object = new Commande($db);
    -			$object->fetch($charge->metadata->idsource);
    -			print "<A href='".DOL_URL_ROOT."/commande/card.php?id=".$charge->metadata->idsource."'>".img_picto('', 'object_order')." ".$object->ref."</A>";
    -		} elseif ($charge->metadata->source=="invoice"){
    -			$object = new Facture($db);
    -			$object->fetch($charge->metadata->idsource);
    -			print "<A href='".DOL_URL_ROOT."/compta/facture/card.php?facid=".$charge->metadata->idsource."'>".img_picto('', 'object_invoice')." ".$object->ref."</A>";
    -		}
    -		print "</TD>\n";
    +		//print "<td>";
    +		////if ($charge->metadata->dol_type=="order"){
    +		//	$object = new Commande($db);
    +		//	$object->fetch($charge->metadata->dol_id);
    +		//	print "<a href='".DOL_URL_ROOT."/commande/card.php?id=".$charge->metadata->dol_id."'>".img_picto('', 'object_order')." ".$object->ref."</a>";
    +		//} elseif ($charge->metadata->dol_type=="invoice"){
    +		//	$object = new Facture($db);
    +		//	$object->fetch($charge->metadata->dol_id);
    +		//	print "<a href='".DOL_URL_ROOT."/compta/facture/card.php?facid=".$charge->metadata->dol_id."'>".img_picto('', 'object_invoice')." ".$object->ref."</a>";
    +		//}
    +		//print "</td>\n";
     		// Date payment
    -		print '<TD align="center">' . dol_print_date($txn->created, '%d/%m/%Y %H:%M') . "</TD>\n";
    +		print '<td align="center">' . dol_print_date($txn->created, '%d/%m/%Y %H:%M') . "</td>\n";
     		// Type
    -		print '<TD>' . $txn->type . '</TD>';
    +		print '<td>' . $txn->type . '</td>';
     		// Amount
    -		print "<TD align=\"right\">" . price(($txn->amount) / 100) . "</TD>";
    -		print "<TD align=\"right\">" . price(($txn->fee) / 100) . "</TD>";
    +		print "<td align=\"right\">" . price(($txn->amount) / 100, 0, '', 1, - 1, - 1, strtoupper($txn->currency)) . "</td>";
    +		print "<td align=\"right\">" . price(($txn->fee) / 100, 0, '', 1, - 1, - 1, strtoupper($txn->currency)) . "</td>";
     		// Status
    -		print "<TD align='right'>";
    -if ($txn->status=='available')
    - {print img_picto($langs->trans("".$txn->status.""),'statut4');} 
    -elseif ($txn->status=='pending')
    - {print img_picto($langs->trans("".$txn->status.""),'statut7');}
    -elseif ($txn->status=='failed')
    - {print img_picto($langs->trans("".$txn->status.""),'statut8');}        
    -		print '</TD>';
    -		print "</TR>\n";
    +		print "<td align='right'>";
    +		if ($txn->status=='available')
    + 		{print img_picto($langs->trans("".$txn->status.""),'statut4');}
    +		elseif ($txn->status=='pending')
    +		{print img_picto($langs->trans("".$txn->status.""),'statut7');}
    +		elseif ($txn->status=='failed')
    +		{print img_picto($langs->trans("".$txn->status.""),'statut8');}
    +		print '</td>';
    +		print "</tr>\n";
     	}
    -	print "</TABLE>";
    -	print '</DIV>';
    -	print '</FORM>';
    -} else {}
    +	print "</table>";
    +	print '</div>';
    +	print '</form>';
    +}
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php b/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php
    index 545d953e753..d5d208b945e 100644
    --- a/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php
    +++ b/htdocs/supplier_proposal/admin/supplier_proposal_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2011	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -143,6 +143,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php b/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php
    index 1acf85b45a3..531151740b6 100644
    --- a/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php
    +++ b/htdocs/supplier_proposal/admin/supplier_proposaldet_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Florian Henry			<florian.henry@open-concept.pro>
      * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2013		Florian Henry			<florian.henry@open-concept.pro>
    @@ -113,7 +113,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
         print '<div class="tabsAction">';
    -    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +    print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
         print "</div>";
     }
     
    @@ -126,8 +126,8 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -    print "<br>";
    -    print load_fiche_titre($langs->trans('NewAttribute'));
    +	print '<br><div id="newattrib"></div>';
    +	print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
     }
    @@ -145,6 +145,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php
    index d133e1fe4f7..4e82c939b96 100644
    --- a/htdocs/supplier_proposal/card.php
    +++ b/htdocs/supplier_proposal/card.php
    @@ -1,15 +1,16 @@
     <?php
    -/* Copyright (C) 2001-2007 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
    - * Copyright (C) 2004-2017 Laurent Destailleur   <eldy@users.sourceforge.net>
    - * Copyright (C) 2004      Eric Seigne           <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    - * Copyright (C) 2006      Andre Cianfarani      <acianfa@free.fr>
    - * Copyright (C) 2010-2014 Juanjo Menent         <jmenent@2byte.es>
    - * Copyright (C) 2010-2011 Philippe Grand        <philippe.grand@atoo-net.com>
    - * Copyright (C) 2012-2013 Christophe Battarel   <christophe.battarel@altairis.fr>
    - * Copyright (C) 2013-2014 Florian Henry		 <florian.henry@open-concept.pro>
    - * Copyright (C) 2014	   Ferran Marcet		 <fmarcet@2byte.es>
    +/* Copyright (C) 2001-2007  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2017  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2004       Eric Seigne             <eric.seigne@ryxeo.com>
    + * Copyright (C) 2005       Marc Barilley / Ocebo   <marc@ocebo.com>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2006       Andre Cianfarani        <acianfa@free.fr>
    + * Copyright (C) 2010-2014  Juanjo Menent           <jmenent@2byte.es>
    + * Copyright (C) 2010-2011  Philippe Grand          <philippe.grand@atoo-net.com>
    + * Copyright (C) 2012-2013  Christophe Battarel     <christophe.battarel@altairis.fr>
    + * Copyright (C) 2013-2014  Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2014       Ferran Marcet           <fmarcet@2byte.es>
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -624,8 +625,12 @@ if (empty($reshook))
     				{
     					$label = $productsupplier->label;
     
    -					$desc = $productsupplier->description;
    -					if (trim($product_desc) != trim($desc)) $desc = dol_concatdesc($desc, $product_desc);
    +					// if we use supplier description of the products
    +					if(!empty($productsupplier->desc_supplier) && !empty($conf->global->PRODUIT_FOURN_TEXTS)) {
    +					    $desc = $productsupplier->desc_supplier;
    +					} else $desc = $productsupplier->description;
    +
    +					if (trim($product_desc) != trim($desc)) $desc = dol_concatdesc($desc, $product_desc, '', !empty($conf->global->CHANGE_ORDER_CONCAT_DESCRIPTION));
     
     					$pu_ht = $productsupplier->fourn_pu;
     
    @@ -788,7 +793,7 @@ if (empty($reshook))
     	}
     
     	// Mise a jour d'une ligne dans la demande de prix
    -	else if ($action == 'updateligne' && $user->rights->supplier_proposal->creer && GETPOST('save') == $langs->trans("Save")) {
    +	else if ($action == 'updateline' && $user->rights->supplier_proposal->creer && GETPOST('save') == $langs->trans("Save")) {
     
     		// Define info_bits
     		$info_bits = 0;
    @@ -914,7 +919,7 @@ if (empty($reshook))
     		}
     	}
     
    -	else if ($action == 'updateligne' && $user->rights->supplier_proposal->creer && GETPOST('cancel','alpha') == $langs->trans('Cancel')) {
    +	else if ($action == 'updateline' && $user->rights->supplier_proposal->creer && GETPOST('cancel','alpha') == $langs->trans('Cancel')) {
     		header('Location: ' . $_SERVER['PHP_SELF'] . '?id=' . $object->id); // Pour reaffichage de la fiche en cours d'edition
     		exit();
     	}
    @@ -1129,9 +1134,9 @@ if ($action == 'create')
     		$syear = date("Y", $tmpdte);
     		$smonth = date("m", $tmpdte);
     		$sday = date("d", $tmpdte);
    -		$form->select_date($syear."-".$smonth."-".$sday, 'liv_', '', '', '', "addask");
    +		print $form->selectDate($syear."-".$smonth."-".$sday, 'liv_', '', '', '', "addask");
     	} else {
    -		$form->select_date($datedelivery ? $datedelivery : -1, 'liv_', '', '', '', "addask", 1, 1);
    +		print $form->selectDate($datedelivery ? $datedelivery : -1, 'liv_', '', '', '', "addask", 1, 1);
     	}
     	print '</td></tr>';
     
    @@ -1164,10 +1169,9 @@ if ($action == 'create')
     	}
     
     	// Multicurrency
    -	if (! empty($conf->multicurrency->enabled))
    -	{
    +	if (! empty($conf->multicurrency->enabled)) {
     		print '<tr>';
    -		print '<td>'.fieldLabel('Currency','multicurrency_code').'</td>';
    +		print '<td>'.$form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0).'</td>';
     		print '<td colspan="3" class="maxwidthonsmartphone">';
     		print $form->selectMultiCurrency($currency_code, 'multicurrency_code');
     		print '</td></tr>';
    @@ -1298,7 +1302,6 @@ if ($action == 'create')
     
     		print '</table>';
     	}
    -
     } else {
     	/*
     	 * Show object in view mode
    @@ -1368,12 +1371,11 @@ if ($action == 'create')
     			$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('ValidateAsk'), $text, 'confirm_validate', '', 0, 1);
     	}
     
    -	if (! $formconfirm) {
    -		$parameters = array('lineid' => $lineid);
    -		$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    -		if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    -		elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    -	}
    +	// Call Hook formConfirm
    +	$parameters = array('lineid' => $lineid);
    +	$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +	if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +	elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
     
     	// Print form confirm
     	print $formconfirm;
    @@ -1432,7 +1434,7 @@ if ($action == 'create')
     	print '<div class="fichehalfleft">';
     	print '<div class="underbanner clearboth"></div>';
     
    -	print '<table class="border" width="100%">';
    +	print '<table class="border tableforfield" width="100%">';
     
     	// Relative and absolute discounts
     	if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
    @@ -1488,7 +1490,7 @@ if ($action == 'create')
     		print '<form name="editdate_livraison" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
     		print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
     		print '<input type="hidden" name="action" value="setdate_livraison">';
    -		$form->select_date($object->date_livraison, 'liv_', '', '', '', "editdate_livraison");
    +		print $form->selectDate($object->date_livraison, 'liv_', '', '', '', "editdate_livraison");
     		print '<input type="submit" class="button" value="' . $langs->trans('Modify') . '">';
     		print '</form>';
     	} else {
    @@ -1508,7 +1510,7 @@ if ($action == 'create')
     	print '</tr></table>';
     	print '</td><td colspan="3">';
     	if ($action == 'editmode') {
    -		$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id');
    +		$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id', 'DBIT', 1, 1);
     	} else {
     		$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'none');
     	}
    @@ -1521,7 +1523,7 @@ if ($action == 'create')
     		print '<tr>';
     		print '<td>';
     		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print fieldLabel('Currency','multicurrency_code');
    +		print $form->editfieldkey('Currency', 'multicurrency_code', '', $object, 0);
     		print '</td>';
     		if ($action != 'editmulticurrencycode' && ! empty($object->brouillon))
     			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencycode&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
    @@ -1538,7 +1540,7 @@ if ($action == 'create')
     		print '<tr>';
     		print '<td>';
     		print '<table class="nobordernopadding" width="100%"><tr><td>';
    -		print fieldLabel('CurrencyRate','multicurrency_tx');
    +		print $form->editfieldkey('CurrencyRate', 'multicurrency_tx', '', $object, 0);
     		print '</td>';
     		if ($action != 'editmulticurrencyrate' && ! empty($object->brouillon) && $object->multicurrency_code && $object->multicurrency_code != $conf->currency)
     			print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmulticurrencyrate&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMultiCurrencyCode'), 1) . '</a></td>';
    @@ -1604,22 +1606,22 @@ if ($action == 'create')
     	print '<div class="ficheaddleft">';
     	print '<div class="underbanner clearboth"></div>';
     
    -	print '<table class="border centpercent">';
    +	print '<table class="border tableforfield centpercent">';
     
     	if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency))
     	{
     		// Multicurrency Amount HT
    -		print '<tr><td height="10" class="titlefieldmiddle">' . fieldLabel('MulticurrencyAmountHT','multicurrency_total_ht') . '</td>';
    +		print '<tr><td class="titlefieldmiddle">' . $form->editfieldkey('MulticurrencyAmountHT', 'multicurrency_total_ht', '', $object, 0) . '</td>';
     		print '<td>' . price($object->multicurrency_total_ht, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     
     		// Multicurrency Amount VAT
    -		print '<tr><td height="10">' . fieldLabel('MulticurrencyAmountVAT','multicurrency_total_tva') . '</td>';
    +		print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountVAT', 'multicurrency_total_tva', '', $object, 0) . '</td>';
     		print '<td>' . price($object->multicurrency_total_tva, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     
     		// Multicurrency Amount TTC
    -		print '<tr><td height="10">' . fieldLabel('MulticurrencyAmountTTC','multicurrency_total_ttc') . '</td>';
    +		print '<tr><td>' . $form->editfieldkey('MulticurrencyAmountTTC', 'multicurrency_total_ttc', '', $object, 0) . '</td>';
     		print '<td>' . price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '</td>';
     		print '</tr>';
     	}
    @@ -1687,7 +1689,7 @@ if ($action == 'create')
     
     	print '	<form name="addproduct" id="addproduct" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . (($action != 'editline') ? '#add' : '#line_' . GETPOST('lineid')) . '" method="POST">
     	<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">
    -	<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateligne') . '">
    +	<input type="hidden" name="action" value="' . (($action != 'editline') ? 'addline' : 'updateline') . '">
     	<input type="hidden" name="mode" value="">
     	<input type="hidden" name="id" value="' . $object->id . '">
     	';
    @@ -1775,7 +1777,7 @@ if ($action == 'create')
     				) {
     					if (count($object->lines) > 0)
     						print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=validate">' . $langs->trans('Validate') . '</a></div>';
    -					// else print '<a class="butActionRefused" href="#">'.$langs->trans('Validate').'</a>';
    +					// else print '<a class="butActionRefused classfortooltip" href="#">'.$langs->trans('Validate').'</a>';
     				}
     
     				// Edit
    @@ -1794,7 +1796,7 @@ if ($action == 'create')
     					if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->supplier_proposal->send_advance) {
     						print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=presend&mode=init#formmailbeforetitle">' . $langs->trans('SendMail') . '</a></div>';
     					} else
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendMail') . '</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">' . $langs->trans('SendMail') . '</a></div>';
     				}
     
     				// Create an order
    diff --git a/htdocs/supplier_proposal/class/api_supplier_proposals.class.php b/htdocs/supplier_proposal/class/api_supplier_proposals.class.php
    index 306c7e3e177..fd490902049 100644
    --- a/htdocs/supplier_proposal/class/api_supplier_proposals.class.php
    +++ b/htdocs/supplier_proposal/class/api_supplier_proposals.class.php
    @@ -94,7 +94,8 @@ class Supplierproposals extends DolibarrApi
     	 * @param string    $sqlfilters         Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.datec:<:'20160101')"
     	 * @return  array                       Array of order objects
     	 */
    -	function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $thirdparty_ids = '', $sqlfilters = '')
    +    {
     		global $db, $conf;
     
     		$obj_ret = array();
    @@ -184,30 +185,30 @@ class Supplierproposals extends DolibarrApi
     			if (!isset($data[$field]))
     				throw new RestException(400, "$field field missing");
     			$propal[$field] = $data[$field];
    -
     		}
     		return $propal;
     	}
     
     
    -	/**
    -	 * Clean sensible object datas
    -	 *
    -	 * @param   object  $object    Object to clean
    -	 * @return    array    Array of cleaned object properties
    -	 */
    -	function _cleanObjectDatas($object) {
    +    /**
    +     * Clean sensible object datas
    +     *
    +     * @param   object  $object    Object to clean
    +     * @return    array    Array of cleaned object properties
    +     */
    +    function _cleanObjectDatas($object)
    +    {
     
    -		$object = parent::_cleanObjectDatas($object);
    +        $object = parent::_cleanObjectDatas($object);
     
    -		unset($object->name);
    -		unset($object->lastname);
    -		unset($object->firstname);
    -		unset($object->civility_id);
    -		unset($object->address);
    -		unset($object->datec);
    -		unset($object->datev);
    +        unset($object->name);
    +        unset($object->lastname);
    +        unset($object->firstname);
    +        unset($object->civility_id);
    +        unset($object->address);
    +        unset($object->datec);
    +        unset($object->datev);
     
    -		return $object;
    -	}
    +        return $object;
    +    }
     }
    diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php
    index c3b6e4b3338..a32b973d00a 100644
    --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php
    +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php
    @@ -3,11 +3,11 @@
      * Copyright (C) 2004      Eric Seigne				<eric.seigne@ryxeo.com>
      * Copyright (C) 2004-2011 Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley			<marc@ocebo.com>
    - * Copyright (C) 2005-2013 Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013 Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani			<acianfa@free.fr>
      * Copyright (C) 2008      Raphael Bertrand			<raphael.bertrand@resultic.fr>
      * Copyright (C) 2010-2015 Juanjo Menent			<jmenent@2byte.es>
    - * Copyright (C) 2010-2011 Philippe Grand			<philippe.grand@atoo-net.com>
    + * Copyright (C) 2010-2018 Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2012-2014 Christophe Battarel  	<christophe.battarel@altairis.fr>
      * Copyright (C) 2013      Florian Henry		  	<florian.henry@open-concept.pro>
      * Copyright (C) 2014      Marcos García            <marcosgdf@gmail.com>
    @@ -45,16 +45,34 @@ require_once DOL_DOCUMENT_ROOT .'/multicurrency/class/multicurrency.class.php';
      */
     class SupplierProposal extends CommonObject
     {
    -    public $element='supplier_proposal';
    -    public $table_element='supplier_proposal';
    -    public $table_element_line='supplier_proposaldet';
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='supplier_proposal';
    +
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='supplier_proposal';
    +
    +    /**
    +	 * @var int    Name of subtable line
    +	 */
    +	public $table_element_line='supplier_proposaldet';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
         public $fk_element='fk_supplier_proposal';
    +
         public $picto='propal';
    +
         /**
          * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
          * @var int
          */
         public $ismultientitymanaged = 1;
    +
         /**
          * 0=Default, 1=View may be restricted to sales representative only if no permission to see all or to company of external user if external user
          * @var integer
    @@ -66,24 +84,25 @@ class SupplierProposal extends CommonObject
          */
         protected $table_ref_field = 'ref';
     
    -    var $socid;		// Id client
    +    public $socid;		// Id client
     
     	/**
     	 * @deprecated
     	 * @see user_author_id
     	 */
    -    var $author;
    -    var $ref_fourn;					//Reference saisie lors de l'ajout d'une ligne à la demande
    -    var $ref_supplier;				//Reference saisie lors de l'ajout d'une ligne à la demande
    -    var $statut;					// 0 (draft), 1 (validated), 2 (signed), 3 (not signed), 4 (processed/billed)
    -    var $date;						// Date of proposal
    -    var $date_livraison;
    +    public $author;
    +
    +    public $ref_fourn;					//Reference saisie lors de l'ajout d'une ligne à la demande
    +    public $ref_supplier;				//Reference saisie lors de l'ajout d'une ligne à la demande
    +    public $statut;					// 0 (draft), 1 (validated), 2 (signed), 3 (not signed), 4 (processed/billed)
    +    public $date;						// Date of proposal
    +    public $date_livraison;
     
     	/**
     	 * @deprecated
     	 * @see date_creation
     	 */
    -	var $datec;
    +	public $datec;
     
     	/**
     	 * Creation date
    @@ -95,7 +114,7 @@ class SupplierProposal extends CommonObject
     	 * @deprecated
     	 * @see date_validation
     	 */
    -	var $datev;
    +	public $datev;
     
     	/**
     	 * Validation date
    @@ -104,70 +123,80 @@ class SupplierProposal extends CommonObject
     	public $date_validation;
     
     
    -    var $user_author_id;
    -    var $user_valid_id;
    -    var $user_close_id;
    +    public $user_author_id;
    +    public $user_valid_id;
    +    public $user_close_id;
     
     	/**
     	 * @deprecated
     	 * @see price_ht
     	 */
    -    var $price;
    +    public $price;
    +
     	/**
     	 * @deprecated
     	 * @see total_tva
     	 */
    -    var $tva;
    +    public $tva;
    +
     	/**
     	 * @deprecated
     	 * @see total_ttc
     	 */
    -    var $total;
    +    public $total;
     
    -    var $cond_reglement_code;
    -    var $mode_reglement_code;
    -    var $remise = 0;
    -    var $remise_percent = 0;
    -    var $remise_absolue = 0;
    +    public $cond_reglement_code;
    +    public $mode_reglement_code;
    +    public $remise = 0;
    +    public $remise_percent = 0;
    +    public $remise_absolue = 0;
     
    -    var $products=array();
    -    var $extraparams=array();
    +    public $products=array();
    +    public $extraparams=array();
     
    -    var $lines = array();
    -    var $line;
    +    public $lines = array();
    +    public $line;
     
    -    var $labelstatut=array();
    -    var $labelstatut_short=array();
    +    public $labelstatut=array();
    +    public $labelstatut_short=array();
     
    -    var $nbtodo;
    -    var $nbtodolate;
    +    public $nbtodo;
    +    public $nbtodolate;
     
    -    var $specimen;
    +    public $specimen;
     
     	// Multicurrency
    -	var $fk_multicurrency;
    -	var $multicurrency_code;
    -	var $multicurrency_tx;
    -	var $multicurrency_total_ht;
    -	var $multicurrency_total_tva;
    -	var $multicurrency_total_ttc;
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_multicurrency;
    +
    +	public $multicurrency_code;
    +	public $multicurrency_tx;
    +	public $multicurrency_total_ht;
    +	public $multicurrency_total_tva;
    +	public $multicurrency_total_ttc;
     
     	/**
     	 * Draft status
     	 */
     	const STATUS_DRAFT = 0;
    +
     	/**
     	 * Validated status
     	 */
     	const STATUS_VALIDATED = 1;
    +
     	/**
     	 * Signed quote
     	 */
     	const STATUS_SIGNED = 2;
    +
     	/**
     	 * Not signed quote, canceled
     	 */
     	const STATUS_NOTSIGNED = 3;
    +
     	/**
     	 * Billed or closed/processed quote
     	 */
    @@ -195,9 +224,10 @@ class SupplierProposal extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * 	Add line into array products
    -     *	$this->client doit etre charge
    +     *  $this->client doit etre charge
          *
          * 	@param  int		$idproduct       	Product Id to add
          * 	@param  int		$qty             	Quantity
    @@ -209,6 +239,7 @@ class SupplierProposal extends CommonObject
          */
         function add_product($idproduct, $qty, $remise_percent=0)
         {
    +        // phpcs:enable
             global $conf, $mysoc;
     
             if (! $qty) $qty = 1;
    @@ -250,6 +281,7 @@ class SupplierProposal extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Adding line of fixed discount in the proposal in DB
          *
    @@ -258,6 +290,7 @@ class SupplierProposal extends CommonObject
          */
         function insert_discount($idremise)
         {
    +        // phpcs:enable
             global $langs;
     
             include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
    @@ -810,7 +843,7 @@ class SupplierProposal extends CommonObject
          */
         function create($user, $notrigger=0)
         {
    -        global $langs,$conf,$mysoc,$hookmanager;
    +        global $langs, $conf, $mysoc, $hookmanager;
             $error=0;
     
             $now=dol_now();
    @@ -1064,6 +1097,7 @@ class SupplierProposal extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Insert into DB a supplier_proposal object completely defined by its data members (ex, results from copy).
          *
    @@ -1073,6 +1107,7 @@ class SupplierProposal extends CommonObject
          */
         function create_from($user)
         {
    +        // phpcs:enable
             $this->products=$this->lines;
     
             return $this->create($user);
    @@ -1141,6 +1176,7 @@ class SupplierProposal extends CommonObject
             $this->ref = $modSupplierProposal->getNextValue($objsoc,$this);
     
             // Create clone
    +        $this->context['createfromclone'] = 'createfromclone';
             $result=$this->create($user);
             if ($result < 0) $error++;
     
    @@ -1156,6 +1192,8 @@ class SupplierProposal extends CommonObject
                 }
             }
     
    +        unset($this->context['createfromclone']);
    +
             // End
             if (! $error)
             {
    @@ -1493,6 +1531,7 @@ class SupplierProposal extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Set delivery date
          *
    @@ -1502,6 +1541,7 @@ class SupplierProposal extends CommonObject
          */
         function set_date_livraison($user, $date_livraison)
         {
    +        // phpcs:enable
             if (! empty($user->rights->supplier_proposal->creer))
             {
                 $sql = "UPDATE ".MAIN_DB_PREFIX."supplier_proposal ";
    @@ -1522,6 +1562,7 @@ class SupplierProposal extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Set an overall discount on the proposal
          *
    @@ -1531,6 +1572,7 @@ class SupplierProposal extends CommonObject
          */
         function set_remise_percent($user, $remise)
         {
    +        // phpcs:enable
             $remise=trim($remise)?trim($remise):0;
     
             if (! empty($user->rights->supplier_proposal->creer))
    @@ -1555,6 +1597,7 @@ class SupplierProposal extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Set an absolute overall discount on the proposal
          *
    @@ -1564,6 +1607,7 @@ class SupplierProposal extends CommonObject
          */
         function set_remise_absolue($user, $remise)
         {
    +        // phpcs:enable
             $remise=trim($remise)?trim($remise):0;
     
             if (! empty($user->rights->supplier_proposal->creer))
    @@ -1689,7 +1733,6 @@ class SupplierProposal extends CommonObject
                     {
                         $result = $this->updateOrCreatePriceFournisseur($user);
                     }
    -
                 }
                 if ($statut == 4)
                 {
    @@ -1775,7 +1818,8 @@ class SupplierProposal extends CommonObject
     	 *	@param      User	$user					Object user
          *	@return     int         					<0 if KO, >0 if OK
          */
    -     function updatePriceFournisseur($idProductFournPrice, $product, $user) {
    +    function updatePriceFournisseur($idProductFournPrice, $product, $user)
    +    {
     		$price=price2num($product->subprice*$product->qty,'MU');
     		$unitPrice = price2num($product->subprice,'MU');
     
    @@ -1787,7 +1831,7 @@ class SupplierProposal extends CommonObject
                 $this->db->rollback();
                 return -1;
     		}
    -	 }
    +	}
     
     	 /**
          *	Create ProductFournisseur
    @@ -1796,7 +1840,8 @@ class SupplierProposal extends CommonObject
     	 *	@param      User		$user		Object user
          *	@return     int         			<0 if KO, >0 if OK
          */
    -	 function createPriceFournisseur($product, $user) {
    +    function createPriceFournisseur($product, $user)
    +    {
     	 	$price=price2num($product->subprice*$product->qty,'MU');
     	    $qty=price2num($product->qty);
     		$unitPrice = price2num($product->subprice,'MU');
    @@ -1823,16 +1868,18 @@ class SupplierProposal extends CommonObject
                 $this->db->rollback();
                 return -1;
     		}
    -	 }
    +	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -     *	Set draft status
    +     *  Set draft status
          *
          *	@param		User	$user		Object user that modify
          *	@return		int					<0 if KO, >0 if OK
          */
         function set_draft($user)
         {
    +        // phpcs:enable
             global $conf,$langs;
     
             $sql = "UPDATE ".MAIN_DB_PREFIX."supplier_proposal SET fk_statut = 0";
    @@ -1851,6 +1898,7 @@ class SupplierProposal extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Return list of askprice (eventually filtered on user) into an array
          *
    @@ -1866,6 +1914,7 @@ class SupplierProposal extends CommonObject
          */
         function liste_array($shortlist=0, $draft=0, $notcurrentuser=0, $socid=0, $limit=0, $offset=0, $sortfield='p.datec', $sortorder='DESC')
         {
    +        // phpcs:enable
             global $conf,$user;
     
             $ga = array();
    @@ -2091,11 +2140,8 @@ class SupplierProposal extends CommonObject
                         $cluser->fetch($obj->fk_user_cloture);
                         $this->user_cloture     = $cluser;
                     }
    -
    -
                 }
                 $this->db->free($result);
    -
             }
             else
             {
    @@ -2115,15 +2161,17 @@ class SupplierProposal extends CommonObject
             return $this->LibStatut($this->statut,$mode);
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
    -     *    	Return label of a status (draft, validated, ...)
    +     *  Return label of a status (draft, validated, ...)
          *
    -     *    	@param      int			$statut		id statut
    -     *    	@param      int			$mode      	0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
    -     *    	@return     string		Label
    +     *  @param      int			$statut		id statut
    +     *  @param      int			$mode      	0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
    +     *  @return     string      Label
          */
     	function LibStatut($statut,$mode=1)
         {
    +        // phpcs:enable
         	// Init/load array of translation of status
         	if (empty($this->labelstatut) || empty($this->labelstatut_short))
         	{
    @@ -2143,30 +2191,32 @@ class SupplierProposal extends CommonObject
     
         	$statuttrans='';
     		if ($statut==0) $statuttrans='statut0';
    -		if ($statut==1) $statuttrans='statut1';
    -		if ($statut==2) $statuttrans='statut3';
    -		if ($statut==3) $statuttrans='statut5';
    -		if ($statut==4) $statuttrans='statut6';
    +		elseif ($statut==1) $statuttrans='statut1';
    +		elseif ($statut==2) $statuttrans='statut3';
    +		elseif ($statut==3) $statuttrans='statut5';
    +		elseif ($statut==4) $statuttrans='statut6';
     
     		if ($mode == 0)	return $this->labelstatut[$statut];
    -		if ($mode == 1)	return $this->labelstatut_short[$statut];
    -		if ($mode == 2)	return img_picto($this->labelstatut[$statut], $statuttrans).' '.$this->labelstatut_short[$statut];
    -		if ($mode == 3)	return img_picto($this->labelstatut[$statut], $statuttrans);
    -		if ($mode == 4)	return img_picto($this->labelstatut[$statut],$statuttrans).' '.$this->labelstatut[$statut];
    -		if ($mode == 5)	return '<span class="hideonsmartphone">'.$this->labelstatut_short[$statut].' </span>'.img_picto($this->labelstatut[$statut],$statuttrans);
    -		if ($mode == 6)	return '<span class="hideonsmartphone">'.$this->labelstatut[$statut].' </span>'.img_picto($this->labelstatut[$statut],$statuttrans);
    +		elseif ($mode == 1)	return $this->labelstatut_short[$statut];
    +		elseif ($mode == 2)	return img_picto($this->labelstatut[$statut], $statuttrans).' '.$this->labelstatut_short[$statut];
    +		elseif ($mode == 3)	return img_picto($this->labelstatut[$statut], $statuttrans);
    +		elseif ($mode == 4)	return img_picto($this->labelstatut[$statut],$statuttrans).' '.$this->labelstatut[$statut];
    +		elseif ($mode == 5)	return '<span class="hideonsmartphone">'.$this->labelstatut_short[$statut].' </span>'.img_picto($this->labelstatut[$statut],$statuttrans);
    +		elseif ($mode == 6)	return '<span class="hideonsmartphone">'.$this->labelstatut[$statut].' </span>'.img_picto($this->labelstatut[$statut],$statuttrans);
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *      Load indicators for dashboard (this->nbtodo and this->nbtodolate)
          *
          *      @param          User	$user   Object user
          *      @param          int		$mode   "opened" for askprice to close, "signed" for proposal to invoice
    -     *      @return         int     		<0 if KO, >0 if OK
    +     *      @return         int             <0 if KO, >0 if OK
          */
         function load_board($user,$mode)
         {
    +        // phpcs:enable
             global $conf, $user, $langs;
     
             $now=dol_now();
    @@ -2318,6 +2368,7 @@ class SupplierProposal extends CommonObject
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *      Charge indicateurs this->nb de tableau de bord
          *
    @@ -2325,6 +2376,7 @@ class SupplierProposal extends CommonObject
          */
         function load_state_board()
         {
    +        // phpcs:enable
             global $conf, $user;
     
             $this->nb=array();
    @@ -2625,7 +2677,6 @@ class SupplierProposal extends CommonObject
     
     	    return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
     	}
    -
     }
     
     
    @@ -2634,26 +2685,58 @@ class SupplierProposal extends CommonObject
      */
     class SupplierProposalLine extends CommonObjectLine
     {
    -    var $db;
    -    var $error;
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
     
    -    public $element='supplier_proposaldet';
    -    public $table_element='supplier_proposaldet';
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error='';
     
    -    var $oldline;
    +    /**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='supplier_proposaldet';
    +
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='supplier_proposaldet';
    +
    +    public $oldline;
     
         // From llx_supplier_proposaldet
    -    var $rowid; // deprecated
    -    var $id;
    -    var $fk_supplier_proposal;
    -    var $fk_parent_line;
    -    var $desc;          	// Description ligne
    -    var $fk_product;		// Id produit predefini
    +    public $rowid; // deprecated
    +
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
    +
    +	/**
    +     * @var int ID
    +     */
    +    public $fk_supplier_proposal;
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_parent_line;
    +
    +    public $desc;          	// Description ligne
    +
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_product;		// Id produit predefini
    +
     	/**
     	 * @deprecated
     	 * @see product_type
     	 */
    -	var $fk_product_type;
    +	public $fk_product_type;
     	/**
     	 * Product type
     	 * @var int
    @@ -2661,89 +2744,106 @@ class SupplierProposalLine extends CommonObjectLine
     	 */
         public $product_type = Product::TYPE_PRODUCT;
     
    -    var $qty;
    -    var $tva_tx;
    -    var $subprice;
    -    var $remise_percent;
    -    var $fk_remise_except;
    +    public $qty;
    +    public $tva_tx;
    +    public $subprice;
    +    public $remise_percent;
     
    -    var $rang = 0;
    +    /**
    +     * @var int ID
    +     */
    +    public $fk_remise_except;
     
    -	var $fk_fournprice;
    -	var $pa_ht;
    -	var $marge_tx;
    -	var $marque_tx;
    +    public $rang = 0;
     
    -    var $special_code;	// Tag for special lines (exlusive tags)
    +    /**
    +     * @var int ID
    +     */
    +	public $fk_fournprice;
    +
    +	public $pa_ht;
    +	public $marge_tx;
    +	public $marque_tx;
    +
    +    public $special_code;	// Tag for special lines (exlusive tags)
         // 1: frais de port
         // 2: ecotaxe
         // 3: option line (when qty = 0)
     
    -    var $info_bits = 0;	// Liste d'options cumulables:
    +    public $info_bits = 0;	// Liste d'options cumulables:
         // Bit 0: 	0 si TVA normal - 1 si TVA NPR
         // Bit 1:	0 ligne normale - 1 si ligne de remise fixe
     
    -    var $total_ht;			// Total HT  de la ligne toute quantite et incluant la remise ligne
    -    var $total_tva;			// Total TVA  de la ligne toute quantite et incluant la remise ligne
    -    var $total_ttc;			// Total TTC de la ligne toute quantite et incluant la remise ligne
    +    public $total_ht;			// Total HT  de la ligne toute quantite et incluant la remise ligne
    +    public $total_tva;			// Total TVA  de la ligne toute quantite et incluant la remise ligne
    +    public $total_ttc;			// Total TTC de la ligne toute quantite et incluant la remise ligne
     
     	/**
     	 * @deprecated
     	 * @see remise_percent, fk_remise_except
     	 */
    -    var $remise;
    +    public $remise;
    +
     	/**
     	 * @deprecated
     	 * @see subprice
     	 */
    -    var $price;
    +    public $price;
     
         // From llx_product
     	/**
     	 * @deprecated
     	 * @see product_ref
     	 */
    -	var $ref;
    +	public $ref;
    +
     	/**
     	 * Product reference
     	 * @var string
     	 */
     	public $product_ref;
    +
     	/**
     	 * @deprecated
     	 * @see product_label
     	 */
    -	var $libelle;
    +	public $libelle;
    +
     	/**
     	 *  Product label
     	 * @var string
     	 */
     	public $product_label;
    +
     	/**
     	 * Product description
     	 * @var string
     	 */
     	public $product_desc;
     
    -    var $localtax1_tx;		// Local tax 1
    -    var $localtax2_tx;		// Local tax 2
    -    var $localtax1_type;	// Local tax 1 type
    -	var $localtax2_type;	// Local tax 2 type
    -    var $total_localtax1;  	// Line total local tax 1
    -    var $total_localtax2;	// Line total local tax 2
    +    public $localtax1_tx;		// Local tax 1
    +    public $localtax2_tx;		// Local tax 2
    +    public $localtax1_type;	// Local tax 1 type
    +	public $localtax2_type;	// Local tax 2 type
    +    public $total_localtax1;  	// Line total local tax 1
    +    public $total_localtax2;	// Line total local tax 2
     
    -    var $skip_update_total; // Skip update price total for special lines
    +    public $skip_update_total; // Skip update price total for special lines
     
    -    var $ref_fourn;
    -    var $ref_supplier;
    +    public $ref_fourn;
    +    public $ref_supplier;
     
     	// Multicurrency
    -	var $fk_multicurrency;
    -	var $multicurrency_code;
    -	var $multicurrency_subprice;
    -	var $multicurrency_total_ht;
    -	var $multicurrency_total_tva;
    -	var $multicurrency_total_ttc;
    +	/**
    +     * @var int ID
    +     */
    +	public $fk_multicurrency;
    +
    +	public $multicurrency_code;
    +	public $multicurrency_subprice;
    +	public $multicurrency_total_ht;
    +	public $multicurrency_total_tva;
    +	public $multicurrency_total_ttc;
     
         /**
          * 	Class line Contructor
    @@ -3146,6 +3246,7 @@ class SupplierProposalLine extends CommonObjectLine
             }
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *	Update DB line fields total_xxx
          *	Used by migration
    @@ -3154,6 +3255,7 @@ class SupplierProposalLine extends CommonObjectLine
          */
         function update_total()
         {
    +        // phpcs:enable
             $this->db->begin();
     
             // Mise a jour ligne en base
    @@ -3178,6 +3280,4 @@ class SupplierProposalLine extends CommonObjectLine
                 return -2;
             }
         }
    -
     }
    -
    diff --git a/htdocs/supplier_proposal/contact.php b/htdocs/supplier_proposal/contact.php
    index fdf51406e8e..7e862e7682d 100644
    --- a/htdocs/supplier_proposal/contact.php
    +++ b/htdocs/supplier_proposal/contact.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005      Patrick Rouillon     <patrick@rouillon.net>
      * Copyright (C) 2005-2018 Destailleur Laurent  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -193,7 +193,6 @@ if ($id > 0 || ! empty($ref))
     
     		// Contacts lines
     		include DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php';
    -
     	}
     	else
     	{
    @@ -202,6 +201,6 @@ if ($id > 0 || ! empty($ref))
     	}
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/supplier_proposal/document.php b/htdocs/supplier_proposal/document.php
    index 12de448829e..63d1f96893a 100644
    --- a/htdocs/supplier_proposal/document.php
    +++ b/htdocs/supplier_proposal/document.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2009 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
    @@ -87,7 +87,7 @@ if ($object->id > 0)
     	$head = supplier_proposal_prepare_head($object);
     	dol_fiche_head($head, 'document', $langs->trans('CommRequest'), -1, 'supplier_proposal');
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -170,5 +170,6 @@ else
     	print $langs->trans("ErrorUnknown");
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/supplier_proposal/index.php b/htdocs/supplier_proposal/index.php
    index 0e1b51480c1..2eb2fb05032 100644
    --- a/htdocs/supplier_proposal/index.php
    +++ b/htdocs/supplier_proposal/index.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -375,6 +375,6 @@ if (! empty($conf->supplier_proposal->enabled) && $user->rights->supplier_propos
     
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/supplier_proposal/info.php b/htdocs/supplier_proposal/info.php
    index 3f83b4dca88..43e6a70f3c3 100644
    --- a/htdocs/supplier_proposal/info.php
    +++ b/htdocs/supplier_proposal/info.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2006	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -123,5 +123,6 @@ print '</div>';
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php
    index 2fcb296b433..1fe96bc4def 100644
    --- a/htdocs/supplier_proposal/list.php
    +++ b/htdocs/supplier_proposal/list.php
    @@ -3,13 +3,14 @@
      * Copyright (C) 2004-2017 Laurent Destailleur   <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne           <eric.seigne@ryxeo.com>
      * Copyright (C) 2005      Marc Barilley / Ocebo <marc@ocebo.com>
    - * Copyright (C) 2005-2013 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2013 Regis Houssin         <regis.houssin@inodbox.com>
      * Copyright (C) 2006      Andre Cianfarani      <acianfa@free.fr>
      * Copyright (C) 2010-2011 Juanjo Menent         <jmenent@2byte.es>
      * Copyright (C) 2010-2011 Philippe Grand        <philippe.grand@atoo-net.com>
      * Copyright (C) 2012      Christophe Battarel   <christophe.battarel@altairis.fr>
      * Copyright (C) 2013      Cédric Salvador       <csalvador@gpcsolutions.fr>
      * Copyright (C) 2016	   Ferran Marcet         <fmarcet@2byte.es>
    + * Copyright (C) 2018	   Charlene Benke        <charlie@patas-monkey.com>
      *
      * 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
    @@ -73,11 +74,14 @@ $search_btn=GETPOST('button_search','alpha');
     $search_remove_btn=GETPOST('button_removefilter','alpha');
     
     $sall=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml'));
    +
     $mesg=(GETPOST("msg") ? GETPOST("msg") : GETPOST("mesg"));
     $year=GETPOST("year");
     $month=GETPOST("month");
    +$day=GETPOST("day");
     $yearvalid=GETPOST("yearvalid");
     $monthvalid=GETPOST("monthvalid");
    +$dayvalid=GETPOST("dayvalid");
     
     $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
     $sortfield = GETPOST("sortfield",'alpha');
    @@ -117,15 +121,15 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('supplier_proposal');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     
     // List of fields to search into when doing a "search in all"
     $fieldstosearchall = array(
    -	'p.ref'=>'Ref',
    +	'sp.ref'=>'Ref',
     	's.nom'=>'Supplier',
     	'pd.description'=>'Description',
    -	'p.note_public'=>'NotePublic',
    +	'sp.note_public'=>'NotePublic',
     );
     if (empty($user->socid)) $fieldstosearchall["p.note_private"]="NotePrivate";
     
    @@ -195,8 +199,10 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
     	$search_author='';
     	$yearvalid='';
     	$monthvalid='';
    +	$dayvalid='';
     	$year='';
     	$month='';
    +	$day='';
     	$search_status='';
     	$object_statut='';
     }
    @@ -217,6 +223,7 @@ if (empty($reshook))
      * View
      */
     
    +
     $now=dol_now();
     
     $form = new Form($db);
    @@ -227,7 +234,7 @@ $companystatic=new Societe($db);
     $formcompany=new FormCompany($db);
     
     $help_url='EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur';
    -llxHeader('',$langs->trans('CommRequest'),$help_url);
    +//llxHeader('',$langs->trans('CommRequest'),$help_url);
     
     $sql = 'SELECT';
     if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
    @@ -282,32 +289,8 @@ if ($search_montant_ttc != '') $sql.= natural_search("sp.total", $search_montant
     if ($sall) $sql .= natural_search(array_keys($fieldstosearchall), $sall);
     if ($socid) $sql.= ' AND s.rowid = '.$socid;
     if ($search_status >= 0 && $search_status != '') $sql.= ' AND sp.fk_statut IN ('.$db->escape($search_status).')';
    -if ($month > 0)
    -{
    -	if ($year > 0 && empty($day))
    -	$sql.= " AND sp.date_livraison BETWEEN '".$db->idate(dol_get_first_day($year,$month,false))."' AND '".$db->idate(dol_get_last_day($year,$month,false))."'";
    -	else if ($year > 0 && ! empty($day))
    -	$sql.= " AND sp.date_livraison BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month, $day, $year))."' AND '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year))."'";
    -	else
    -	$sql.= " AND date_format(sp.date_livraison, '%m') = '".$month."'";
    -}
    -else if ($year > 0)
    -{
    -	$sql.= " AND sp.date_livraison BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
    -}
    -if ($monthvalid > 0)
    -{
    -	if ($yearvalid > 0 && empty($dayvalid))
    -	$sql.= " AND sp.date_valid BETWEEN '".$db->idate(dol_get_first_day($yearvalid,$monthvalid,false))."' AND '".$db->idate(dol_get_last_day($yearvalid,$monthvalid,false))."'";
    -	else if ($yearvalid > 0 && ! empty($dayvalid))
    -	$sql.= " AND sp.date_valid BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $monthvalid, $dayvalid, $yearvalid))."' AND '".$db->idate(dol_mktime(23, 59, 59, $monthvalid, $dayvalid, $yearvalid))."'";
    -	else
    -	$sql.= " AND date_format(sp.date_valid, '%m') = '".$monthvalid."'";
    -}
    -else if ($yearvalid > 0)
    -{
    -	$sql.= " AND sp.date_valid BETWEEN '".$db->idate(dol_get_first_day($yearvalid,1,false))."' AND '".$db->idate(dol_get_last_day($yearvalid,12,false))."'";
    -}
    +$sql.= dolSqlDateFilter("sp.date_livraison", $day, $month, $year);
    +$sql.= dolSqlDateFilter("sp.date_valid", $dayvalid, $monthvalid, $yearvalid);
     if ($search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale;
     if ($search_user > 0)
     {
    @@ -359,6 +342,19 @@ if ($resql)
     
     	$arrayofselected=is_array($toselect)?$toselect:array();
     
    +	if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall)
    +	{
    +		$obj = $db->fetch_object($resql);
    +
    +		$id = $obj->rowid;
    +
    +		header("Location: ".DOL_URL_ROOT.'/supplier_proposal/card.php?id='.$id);
    +
    +		exit;
    +	}
    +
    +	llxHeader('',$langs->trans('CommRequest'),$help_url);
    +
     	$param='';
     	if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
     	if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    @@ -381,6 +377,7 @@ if ($resql)
     
     	// List of mass actions available
     	$arrayofmassactions =  array(
    +		'generate_doc'=>$langs->trans("Generate"),
     		//'presend'=>$langs->trans("SendByMail"),
     		'builddoc'=>$langs->trans("PDFMerge"),
     	);
    diff --git a/htdocs/supplier_proposal/note.php b/htdocs/supplier_proposal/note.php
    index ba54859a207..e57c5260013 100644
    --- a/htdocs/supplier_proposal/note.php
    +++ b/htdocs/supplier_proposal/note.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Florian Henry		  	<florian.henry@open-concept.pro>
      * Copyright (C) 2017      Ferran Marcet       	 <fmarcet@2byte.es>
      *
    @@ -143,6 +143,6 @@ if ($id > 0 || ! empty($ref))
     	}
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php b/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php
    index ca604e61fcc..33ab23bd962 100644
    --- a/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2011  Regis Houssin <regis.houssin@capnetworks.com>
    +/* Copyright (C) 2010-2011  Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2013       Juanjo Menent <jmenent@2byte.es>
      * Copyright (C) 2014       Marcos García <marcosgdf@gmail.com>
      *
    @@ -36,12 +36,11 @@ $langs = $GLOBALS['langs'];
     $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
     
     $total=0; $ilink=0;
    -$var=true;
     foreach($linkedObjectBlock as $key => $objectlink)
     {
         $ilink++;
     
    -    $trclass=($var?'pair':'impair');
    +    $trclass='oddeven';
         if ($ilink == count($linkedObjectBlock) && empty($noMoreLinkedObjectBlockAfter) && count($linkedObjectBlock) <= 1) $trclass.=' liste_sub_total';
     ?>
         <tr class="<?php echo $trclass; ?>">
    diff --git a/htdocs/support/default.css b/htdocs/support/default.css
    index 17204387eb4..6737a6ede00 100644
    --- a/htdocs/support/default.css
    +++ b/htdocs/support/default.css
    @@ -1,4 +1,4 @@
    -/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> 
    +/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2009 Laurent Destailleur  <eldy@users.sourceforge.net>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -147,7 +147,7 @@ padding: 4px 4px 4px 4px;
     
     tr.title
     {
    -background: #DDDFDD;	
    +background: #DDDFDD;
     }
     
     table { font-size: 12px; }
    diff --git a/htdocs/support/index.php b/htdocs/support/index.php
    index ab5d62df39e..9b7142acd2f 100644
    --- a/htdocs/support/index.php
    +++ b/htdocs/support/index.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2008-2015	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Juanjo Menent		<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -34,9 +34,7 @@ if ($pos == '/') $pos = '';     // si $pos vaut /, on le met a ''
     if (! defined('DOL_URL_ROOT'))
     	define('DOL_URL_ROOT', $pos);	// URL racine relative
     
    -$langs->load("other");
    -$langs->load("help");
    -
    +$langs->loadLangs(array("other", $langs->load("help")));
     
     /*
      * View
    diff --git a/htdocs/support/online.php b/htdocs/support/online.php
    deleted file mode 100644
    index 0f2dca142fc..00000000000
    --- a/htdocs/support/online.php
    +++ /dev/null
    @@ -1,165 +0,0 @@
    -<?php
    -/* Copyright (C) 2008-2010 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
    - * the Free Software Foundation; either version 3 of the License, or
    - * (at your option) any later version.
    - *
    - * This program is distributed in the hope that it will be useful,
    - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - * GNU General Public License for more details.
    - *
    - * You should have received a copy of the GNU General Public License
    - * along with this program. If not, see <http://www.gnu.org/licenses/>.
    - */
    -
    -/**
    - *       \file      htdocs/support/online.php
    - *       \ingroup   install
    - *       \brief     Provide an Online Help support
    - */
    -
    -error_reporting(0);
    -
    -include_once 'inc.php';
    -$uri=preg_replace('/^http(s?):\/\//i','',$dolibarr_main_url_root);
    -$pos = strstr($uri, '/');      // $pos contient alors url sans nom domaine
    -if ($pos == '/') $pos = '';     // si $pos vaut /, on le met a ''
    -define('DOL_URL_ROOT', $pos);	// URL racine relative
    -
    -
    -$langs->load("other");
    -$langs->load("help");
    -
    -
    -/*
    - * View
    - */
    -
    -pHeader($langs->trans("DolibarrHelpCenter"),$_SERVER["PHP_SELF"]);
    -
    -$urlsparkengels='http://www.spark-angels.com';
    -$titlesparkangels='Spark-Angels';
    -
    -//print '<br>';
    -
    -print $langs->trans("ToGetHelpGoOnSparkAngels1",$titlesparkangels).'<br>';
    -
    -print '<br><br>';
    -
    -
    -// List of predefined coaches
    -// We list here the 4 most active coaches on Dolibarr projects (according to number of commits
    -// found in page http://www.nltechno.com/stats/dolibarr/cvschangelogbuilder_dolibarr.html
    -$limit=4;
    -$arrayofwidgets=array(
    -// Widget for Laurent Destailleur
    -array('name'=>'Laurent Destailleur',	// id user 4702
    -		'sort'=>1,
    -		'logo'=>'logoUrl='.urlencode('http://www.nltechno.com/images/logo_nltechno_long.jpg'), // Put your own logo
    -		'id'=>'4256,4255',	// Put of list of sparkangels widget id (for each language)
    -		'lang'=>'fr,en'),	// Put list of language code of widgets (always english at end)
    -// Widget for Auguria
    -array('name'=>'Auguria',
    -		'sort'=>2,
    -		//'logo'=>'logoUrl='.urlencode('http://www.cap-networks.com/images/logo_small.jpg'),
    -		'id'=>'7196',
    -		'lang'=>'fr'),
    -//Widget for Open-Concept
    -array('name'=>'Open-Concept.pro',
    -		'sort'=>2,
    -		'logo'=>'logoUrl='.urlencode('http://www.open-concept.pro/CMS/images/Logo/logosimplecomplet.png'),
    -		'id'=>'9340',
    -		'lang'=>'fr')
    -);
    -$arrayofwidgets=dol_sort_array($arrayofwidgets,'sort','asc',0,0);
    -
    -$found=0;
    -print '* '.$langs->trans("LinkToGoldMember",$langs->defaultlang).'<br><br>';
    -print '<table summary="listofgoldcoaches"><tr>';
    -foreach ($arrayofwidgets as $arraywidget)	// Loop on each user
    -{
    -	if ($found >= $limit) break;
    -	$listofwidgets=explode(',',$arraywidget['id']);
    -	$listoflangs=explode(',',$arraywidget['lang']);
    -	$pos=0;
    -	foreach($listoflangs as $langcode)		// Loop on each lang of user
    -	{
    -		$pos++;
    -		if (preg_match('/'.$langcode.'/i',$langs->defaultlang) || $langcode == 'en')	// If lang qualified
    -		{
    -			print '<td align="center">';
    -			print $arraywidget['name'].'<br>';
    -			print $langs->trans("PossibleLanguages").': ';
    -			// All languages of user are shown
    -			foreach ($listoflangs as $langcode2)
    -			{
    -				if (empty($widgetid)) $widgetid=$listoflangs[$pos-1];
    -				if (! preg_match('/'.$langcode.'/i',$langs->defaultlang) && $langcode2 != 'en') continue;	// Show only english
    -				print $langcode2.' ';
    -			}
    -			print '<br>';
    -
    -			// Only first language found is used for widget
    -			$widgetid=$listofwidgets[$pos-1];
    -
    -			// Widget V3
    -			print '<iframe src="http://www.spark-angels.com/static/widget/template-pro3/widgetpro3-iframe.html?widgetId='.$widgetid.'&lgCode='.$langcode.'&'.(isset($arraywidget['logo'])?$arraywidget['logo']:'').'" width="172" height="123" frameborder="0" scrolling="no" marginheight="0" > </iframe>';
    -
    -			print '</td>';
    -			$found++;
    -			break;
    -		}
    -	}
    -}
    -if (! $found) print '<td>'.$langs->trans("SorryNoHelpForYourLanguage").'</td>';
    -print '</tr></table>';
    -
    -print '<br><br>';
    -
    -// List of coaches
    -$sparkangellangcode=substr($langs->defaultlang,0,2);
    -if (! in_array($sparkangellangcode,array('fr','en','sp'))) $sparkangellangcode='en';
    -print '<table class="noborder" summary="ListOfSupport"><tr valign="middle"><td>';
    -print '* '.$langs->trans("ToGetHelpGoOnSparkAngels3",$urlsparkengels);
    -print '<div id="sparkom_bsaHelpersSearch">'."\n";
    -print '<form target="_blank" id="frJSkw" action="http://www.spark-angels.com/rss/action/resultsearch.html" name="fResult" method="get">'."\n";
    -print '   <input type="hidden" value="" title="Rechercher" maxlength="1024" name="kws" id="kws"/> <!-- mots clés pour la recherche dont la ou les compétences matchent avec ces mots -->'."\n";
    -print '   <input id="dhids" name="dhids" type="hidden" value=""><!-- identifiant SHSAPI communiqué par SparkAngels. -->'."\n";
    -print '   <input id="lgSearch" name="lgS" type="hidden" value=""><!-- code langue, les accompagnateurs proposés suite à cette recherche prétendent pouvoir fournir de l assistance dans au moins cette langue-->'."\n";
    -print '   <input id="myLv" name="myLv" type="hidden" value=""><!-- niveau de l internaute dans le domaine de sa recherche.-->'."\n";
    -print '   <input id="catSrv" name="catSrv" type="hidden" value=""><!-- type de catégorie de service demandée.-->'."\n";
    -print '   <input type="submit" value="'.$langs->trans("Search").'" onclick="getSAParams();">'."\n";
    -print '<script type="text/javascript">'."\n";
    -print '<!--'."\n";
    -print '   function getSAParams(){'."\n";
    -print '       document.getElementById(\'dhids\').value= "4702";'."\n";
    -print '       document.getElementById(\'kws\').value= "dolibarr";'."\n";
    -print '       document.getElementById(\'lgSearch\').value= "'.$sparkangellangcode.'";'."\n";
    -print '       document.getElementById(\'myLv\').value= "0";'."\n";
    -print '       document.getElementById(\'catSrv\').value= "1";'."\n";
    -print '   }'."\n";
    -print '-->'."\n";
    -print '</script>'."\n";
    -print '</form>'."\n";
    -print '</div>'."\n";
    -
    -print '</td><td>';
    -//print '<a href="'.$urlsparkengels.'" target="_blank">';
    -//print '<img border="0" src="sparkangels.png" alt="SparkAngels web site" title="SparkAngels web site">';
    -//print $titlesparkangels;
    -//print '</a>';
    -print '</td></tr></table>';
    -//print $langs->trans("ToGetHelpGoOnSparkAngels2",$titlesparkangels).'<br>';
    -
    -
    -// Otherwise, go back to help center home
    -print '<br><br>';
    -print '* '.$langs->trans("BackToHelpCenter",'index.php');
    -print '<br><br>';
    -
    -
    -
    -pFooter();
    diff --git a/htdocs/takepos/ChangeLog.md b/htdocs/takepos/ChangeLog.md
    new file mode 100644
    index 00000000000..7b623eaa252
    --- /dev/null
    +++ b/htdocs/takepos/ChangeLog.md
    @@ -0,0 +1,5 @@
    +# CHANGELOG TAKEPOS FOR <a href="https://www.dolibarr.org">DOLIBARR ERP CRM</a>
    +
    +## 1.0
    +Initial version
    +
    diff --git a/htdocs/takepos/README.md b/htdocs/takepos/README.md
    new file mode 100644
    index 00000000000..bdbe6bbd2e8
    --- /dev/null
    +++ b/htdocs/takepos/README.md
    @@ -0,0 +1,9 @@
    +# TAKEPOS
    +
    +## Features
    +Add a Touch Screen POS (Point Of Sale) to your ERP.
    +
    +<!--
    +![Screenshot takepos](img/screenshot_takepos.png?raw=true "TakePos"){imgmd}
    +-->
    +
    diff --git a/htdocs/takepos/admin/about.php b/htdocs/takepos/admin/about.php
    new file mode 100644
    index 00000000000..27b5e51b03b
    --- /dev/null
    +++ b/htdocs/takepos/admin/about.php
    @@ -0,0 +1,75 @@
    +<?php
    +/* Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2018 SuperAdmin
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    takepos/admin/about.php
    + * \ingroup takepos
    + * \brief   About page of module TakePos.
    + */
    +
    +require '../../main.inc.php';	// Load $user and permissions
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +require_once '../lib/takepos.lib.php';
    +
    +// Translations
    +$langs->loadLangs(array("errors","admin","cashdesk"));
    +
    +// Access control
    +if (! $user->admin) {
    +	accessforbidden();
    +}
    +
    +// Parameters
    +$action = GETPOST('action', 'alpha');
    +$backtopage = GETPOST('backtopage', 'alpha');
    +
    +
    +/*
    + * Actions
    + */
    +
    +// None
    +
    +
    +/*
    + * View
    + */
    +
    +$form = new Form($db);
    +
    +$page_name = "TakePosAbout";
    +llxHeader('', $langs->trans($page_name));
    +
    +// Subheader
    +$linkback = '<a href="'.($backtopage?$backtopage:DOL_URL_ROOT.'/admin/modules.php').'">'.$langs->trans("BackToModuleList").'</a>';
    +
    +print load_fiche_titre($langs->trans($page_name), $linkback, 'object_takepos@takepos');
    +
    +// Configuration header
    +$head = takeposAdminPrepareHead();
    +dol_fiche_head($head, 'about', '', 0, 'takepos@takepos');
    +
    +dol_include_once('/takepos/core/modules/modTakePos.class.php');
    +$tmpmodule = new modTakePos($db);
    +print $tmpmodule->getDescLong();
    +
    +// Page end
    +dol_fiche_end();
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/takepos/admin/orderprinters.php b/htdocs/takepos/admin/orderprinters.php
    new file mode 100644
    index 00000000000..8306bb40e82
    --- /dev/null
    +++ b/htdocs/takepos/admin/orderprinters.php
    @@ -0,0 +1,198 @@
    +<?php
    +/* Copyright (C) 2005       Matthieu Valleton   <mv@seeschloss.org>
    + * Copyright (C) 2005       Eric Seigne         <eric.seigne@ryxeo.com>
    + * Copyright (C) 2006-2016  Laurent Destailleur <eldy@users.sourceforge.net>
    + * Copyright (C) 2007       Patrick Raguin      <patrick.raguin@gmail.com>
    + * Copyright (C) 2005-2012  Regis Houssin       <regis.houssin@inodbox.com>
    + * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *      \file       htdocs/takepos/admin/orderprinters.php
    + *      \ingroup    takepos
    + *      \brief      Home page of category area
    + */
    +
    +require '../../main.inc.php';	// Load $user and permissions
    +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
    +
    +$langs->loadLangs(array("main"), "categories", "takepos", "printing");
    +
    +if (! $user->rights->categorie->lire) accessforbidden();
    +
    +$id=GETPOST('id','int');
    +$type=(GETPOST('type','aZ09') ? GETPOST('type','aZ09') : Categorie::TYPE_PRODUCT);
    +$catname=GETPOST('catname','alpha');
    +$action=GETPOST('action','alpha');
    +$printer1=GETPOST('printer1','alpha');
    +$printer2=GETPOST('printer2','alpha');
    +
    +if (is_numeric($type)) $type=Categorie::$MAP_ID_TO_CODE[$type];	// For backward compatibility
    +
    +/*
    + * Actions
    + */
    +if ($action=="SavePrinter1"){
    +	$printedcategories=";";
    +	if (is_array($printer1)) foreach ($printer1 as $cat){
    +		$printedcategories=$printedcategories.$cat.";";
    +	}
    +	dolibarr_set_const($db,"TAKEPOS_PRINTED_CATEGORIES_1", $printedcategories,'chaine',0,'',$conf->entity);
    +}
    +
    +if ($action=="SavePrinter2"){
    +	$printedcategories=";";
    +	if (is_array($printer2)) foreach ($printer2 as $cat){
    +		$printedcategories=$printedcategories.$cat.";";
    +	}
    +	dolibarr_set_const($db,"TAKEPOS_PRINTED_CATEGORIES_2", $printedcategories,'chaine',0,'',$conf->entity);
    +}
    +
    +
    +/*
    + * View
    + */
    +
    +$categstatic = new Categorie($db);
    +$form = new Form($db);
    +
    +if ($type == Categorie::TYPE_PRODUCT)       { $title=$langs->trans("ProductsCategoriesArea");  $typetext='product'; }
    +elseif ($type == Categorie::TYPE_SUPPLIER)  { $title=$langs->trans("SuppliersCategoriesArea"); $typetext='supplier'; }
    +elseif ($type == Categorie::TYPE_CUSTOMER)  { $title=$langs->trans("CustomersCategoriesArea"); $typetext='customer'; }
    +elseif ($type == Categorie::TYPE_MEMBER)    { $title=$langs->trans("MembersCategoriesArea");   $typetext='member'; }
    +elseif ($type == Categorie::TYPE_CONTACT)   { $title=$langs->trans("ContactsCategoriesArea");  $typetext='contact'; }
    +elseif ($type == Categorie::TYPE_ACCOUNT)   { $title=$langs->trans("AccountsCategoriesArea");  $typetext='bank_account'; }
    +elseif ($type == Categorie::TYPE_PROJECT)   { $title=$langs->trans("ProjectsCategoriesArea");  $typetext='project'; }
    +elseif ($type == Categorie::TYPE_USER)      { $title=$langs->trans("UsersCategoriesArea");     $typetext='user'; }
    +else                                        { $title=$langs->trans("CategoriesArea");          $typetext='unknown'; }
    +
    +$arrayofjs=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.js', '/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js');
    +$arrayofcss=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.css');
    +
    +llxHeader('',$title,'','',0,0,$arrayofjs,$arrayofcss);
    +
    +
    +print load_fiche_titre($langs->trans("OrderPrinters"));
    +
    +//print '<table border="0" width="100%" class="notopnoleftnoright">';
    +//print '<tr><td valign="top" width="30%" class="notopnoleft">';
    +print '<div class="fichecenter"><div class="fichethirdleft">';
    +
    +
    +//print '</td><td valign="top" width="70%">';
    +print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
    +
    +
    +//print '</td></tr></table>';
    +print '</div></div></div>';
    +
    +print '<div class="fichecenter"><br>';
    +
    +
    +// Charge tableau des categories
    +$cate_arbo = $categstatic->get_full_arbo($typetext);
    +
    +// Define fulltree array
    +$fulltree=$cate_arbo;
    +
    +// Define data (format for treeview)
    +$data=array();
    +$data[] = array('rowid'=>0,'fk_menu'=>-1,'title'=>"racine",'mainmenu'=>'','leftmenu'=>'','fk_mainmenu'=>'','fk_leftmenu'=>'');
    +foreach($fulltree as $key => $val)
    +{
    +	$categstatic->id=$val['id'];
    +	$categstatic->ref=$val['label'];
    +	$categstatic->color=$val['color'];
    +	$categstatic->type=$type;
    +	$li=$categstatic->getNomUrl(1,'',60);
    +	$desc=dol_htmlcleanlastbr($val['description']);
    +
    +	$data[] = array(
    +	'rowid'=>$val['rowid'],
    +	'fk_menu'=>$val['fk_menu'],
    +	'fk_menu'=>$val['fk_parent'],
    +	'label'=>$val['label']
    +	);
    +}
    +
    +//Printer1
    +print '<table class="liste nohover" width="100%">';
    +print '<tr class="liste_titre"><td>'.$langs->trans("Printer").' 1</td><td></td><td align="right">';
    +print '</td></tr>';
    +$nbofentries=(count($data) - 1);
    +print '<form action="orderprinters.php">';
    +if ($nbofentries > 0)
    +{
    +	print '<tr class="pair"><td colspan="3">';
    +	print '<input type="hidden" name="action" value="SavePrinter1">';
    +	foreach ($data as $row) {
    +		if (strpos($conf->global->TAKEPOS_PRINTED_CATEGORIES_1, ';'.$row["rowid"].';') !== false) $checked='checked'; else $checked='';
    +		if ($row["fk_menu"]==0) print '<input type="checkbox" name="printer1[]" value="'.$row["rowid"].'" '.$checked.'>'.$row["label"].'<br>';
    +	}
    +	print '</td></tr>';
    +}
    +else
    +{
    +	print '<tr class="pair">';
    +	print '<td colspan="3"><table class="nobordernopadding"><tr class="nobordernopadding"><td>'.img_picto_common('','treemenu/branchbottom.gif').'</td>';
    +	print '<td valign="middle">';
    +	print $langs->trans("NoCategoryYet");
    +	print '</td>';
    +	print '<td>&nbsp;</td>';
    +	print '</table></td>';
    +	print '</tr>';
    +}
    +print "</table>";
    +print '<input type="submit" value="'.$langs->trans("Save").'"></form><br><br>';
    +
    +//Printer2
    +print '<table class="liste nohover" width="100%">';
    +print '<tr class="liste_titre"><td>'.$langs->trans("Printer").' 2</td><td></td><td align="right">';
    +print '</td></tr>';
    +$nbofentries=(count($data) - 1);
    +print '<form action="orderprinters.php">';
    +if ($nbofentries > 0)
    +{
    +	print '<tr class="pair"><td colspan="3">';
    +	print '<input type="hidden" name="action" value="SavePrinter2">';
    +	foreach ($data as $row) {
    +		if (strpos($conf->global->TAKEPOS_PRINTED_CATEGORIES_2, ';'.$row["rowid"].';') !== false) $checked='checked'; else $checked='';
    +		if ($row["fk_menu"]==0) print '<input type="checkbox" name="printer2[]" value="'.$row["rowid"].'" '.$checked.'>'.$row["label"].'<br>';
    +	}
    +	print '</td></tr>';
    +}
    +else
    +{
    +	print '<tr class="pair">';
    +	print '<td colspan="3"><table class="nobordernopadding"><tr class="nobordernopadding"><td>'.img_picto_common('','treemenu/branchbottom.gif').'</td>';
    +	print '<td valign="middle">';
    +	print $langs->trans("NoCategoryYet");
    +	print '</td>';
    +	print '<td>&nbsp;</td>';
    +	print '</table></td>';
    +	print '</tr>';
    +}
    +print "</table>";
    +print '<input type="submit" value="'.$langs->trans("Save").'"></form>';
    +
    +print '</div>';
    +
    +llxFooter();
    +
    +$db->close();
    diff --git a/htdocs/takepos/admin/setup.php b/htdocs/takepos/admin/setup.php
    new file mode 100644
    index 00000000000..7ed220d1787
    --- /dev/null
    +++ b/htdocs/takepos/admin/setup.php
    @@ -0,0 +1,299 @@
    +<?php
    +/* Copyright (C) 2008-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2011-2017 Juanjo Menent		<jmenent@2byte.es>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *	\file       htdocs/takepos/admin/setup.php
    + *	\ingroup    takepos
    + *	\brief      Setup page for TakePos module
    + */
    +
    +require '../../main.inc.php';	// Load $user and permissions
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
    +
    +// If socid provided by ajax company selector
    +if (! empty($_REQUEST['CASHDESK_ID_THIRDPARTY_id']))
    +{
    +	$_GET['CASHDESK_ID_THIRDPARTY'] = GETPOST('CASHDESK_ID_THIRDPARTY_id','alpha');
    +	$_POST['CASHDESK_ID_THIRDPARTY'] = GETPOST('CASHDESK_ID_THIRDPARTY_id','alpha');
    +	$_REQUEST['CASHDESK_ID_THIRDPARTY'] = GETPOST('CASHDESK_ID_THIRDPARTY_id','alpha');
    +}
    +
    +// Security check
    +if (!$user->admin) accessforbidden();
    +
    +$langs->loadLangs(array("admin", "cashdesk"));
    +
    +/*
    + * Actions
    + */
    +if (GETPOST('action','alpha') == 'set')
    +{
    +	$db->begin();
    +
    +	if (GETPOST('socid','int') < 0) $_POST["socid"]='';
    +
    +	$res = dolibarr_set_const($db,"CASHDESK_ID_THIRDPARTY",(GETPOST('socid','int') > 0 ? GETPOST('socid','int') : ''),'chaine',0,'',$conf->entity);
    +	$res = dolibarr_set_const($db,"CASHDESK_ID_BANKACCOUNT_CASH",(GETPOST('CASHDESK_ID_BANKACCOUNT_CASH','alpha') > 0 ? GETPOST('CASHDESK_ID_BANKACCOUNT_CASH','alpha') : ''),'chaine',0,'',$conf->entity);
    +	$res = dolibarr_set_const($db,"CASHDESK_ID_BANKACCOUNT_CHEQUE",(GETPOST('CASHDESK_ID_BANKACCOUNT_CHEQUE','alpha') > 0 ? GETPOST('CASHDESK_ID_BANKACCOUNT_CHEQUE','alpha') : ''),'chaine',0,'',$conf->entity);
    +	$res = dolibarr_set_const($db,"CASHDESK_ID_BANKACCOUNT_CB",(GETPOST('CASHDESK_ID_BANKACCOUNT_CB','alpha') > 0 ? GETPOST('CASHDESK_ID_BANKACCOUNT_CB','alpha') : ''),'chaine',0,'',$conf->entity);
    +	$res = dolibarr_set_const($db,"CASHDESK_ID_WAREHOUSE",(GETPOST('CASHDESK_ID_WAREHOUSE','alpha') > 0 ? GETPOST('CASHDESK_ID_WAREHOUSE','alpha') : ''),'chaine',0,'',$conf->entity);
    +	$res = dolibarr_set_const($db,"CASHDESK_NO_DECREASE_STOCK",GETPOST('CASHDESK_NO_DECREASE_STOCK','alpha'),'chaine',0,'',$conf->entity);
    +	$res = dolibarr_set_const($db,"CASHDESK_SERVICES", GETPOST('CASHDESK_SERVICES','alpha'),'chaine',0,'',$conf->entity);
    +	$res = dolibarr_set_const($db,"TAKEPOSCONNECTOR", GETPOST('TAKEPOSCONNECTOR','alpha'),'chaine',0,'',$conf->entity);
    +	$res = dolibarr_set_const($db,"TAKEPOS_BAR_RESTAURANT", GETPOST('TAKEPOS_BAR_RESTAURANT','alpha'),'chaine',0,'',$conf->entity);
    +    $res = dolibarr_set_const($db,"TAKEPOS_PRINT_SERVER", GETPOST('TAKEPOS_PRINT_SERVER','alpha'),'chaine',0,'',$conf->entity);
    +	$res = dolibarr_set_const($db,"TAKEPOS_ORDER_PRINTERS", GETPOST('TAKEPOS_ORDER_PRINTERS','alpha'),'chaine',0,'',$conf->entity);
    +	$res = dolibarr_set_const($db,"TAKEPOS_HEADER", GETPOST('TAKEPOS_HEADER','alpha'),'chaine',0,'',$conf->entity);
    +	$res = dolibarr_set_const($db,"TAKEPOS_FOOTER", GETPOST('TAKEPOS_FOOTER','alpha'),'chaine',0,'',$conf->entity);
    +
    +	dol_syslog("admin/cashdesk: level ".GETPOST('level','alpha'));
    +
    +	if (! $res > 0) $error++;
    +
    + 	if (! $error)
    +    {
    +        $db->commit();
    +	    setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
    +    }
    +    else
    +    {
    +        $db->rollback();
    +	    setEventMessages($langs->trans("Error"), null, 'errors');
    +    }
    +}
    +
    +/*
    + * View
    + */
    +
    +$form=new Form($db);
    +$formproduct=new FormProduct($db);
    +
    +llxHeader('',$langs->trans("CashDeskSetup"));
    +
    +$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
    +print load_fiche_titre($langs->trans("CashDeskSetup").' (TakePOS)',$linkback,'title_setup');
    +print '<br>';
    +
    +
    +// Mode
    +print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
    +print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +print '<input type="hidden" name="action" value="set">';
    +
    +print '<table class="noborder" width="100%">';
    +
    +print '<tr class="liste_titre">';
    +print '<td>'.$langs->trans("Parameters").'</td><td>'.$langs->trans("Value").'</td>';
    +print "</tr>\n";
    +
    +if (! empty($conf->service->enabled))
    +{
    +	print '<tr class="oddeven"><td>';
    +	print $langs->trans("CashdeskShowServices");
    +	print '<td colspan="2">';
    +	print $form->selectyesno("CASHDESK_SERVICES",$conf->global->CASHDESK_SERVICES,1);
    +	print "</td></tr>\n";
    +}
    +
    +// Use Takepos printing
    +print '<tr class="oddeven"><td>';
    +print $langs->trans("DolibarrReceiptPrinter").' (<a href="http://en.takepos.com/connector">'.$langs->trans("TakeposConnectorNecesary").'</a>)';
    +print '<td colspan="2">';
    +print $form->selectyesno("TAKEPOSCONNECTOR",$conf->global->TAKEPOSCONNECTOR,1);
    +print "</td></tr>\n";
    +
    +if ($conf->global->TAKEPOSCONNECTOR){
    +	print '<tr class="oddeven value"><td>';
    +	print $langs->trans("IPAddress").' (<a href="http://en.takepos.com/connector">'.$langs->trans("TakeposConnectorNecesary").'</a>)';
    +	print '<td colspan="2">';
    +	print '<input type="text" size="20" id="TAKEPOS_PRINT_SERVER" name="TAKEPOS_PRINT_SERVER" value="'.$conf->global->TAKEPOS_PRINT_SERVER.'">';
    +	print '</td></tr>';
    +}
    +
    +// Bar Restaurant mode
    +print '<tr class="oddeven"><td>';
    +print 'Bar Restaurant';
    +print '<td colspan="2">';
    +print $form->selectyesno("TAKEPOS_BAR_RESTAURANT",$conf->global->TAKEPOS_BAR_RESTAURANT,1);
    +print "</td></tr>\n";
    +
    +if ($conf->global->TAKEPOS_BAR_RESTAURANT && $conf->global->TAKEPOSCONNECTOR){
    +	print '<tr class="oddeven value"><td>';
    +	print $langs->trans("OrderPrinters").' (<a href="orderprinters.php?leftmenu=setup">'.$langs->trans("Setup").'</a>)';
    +	print '<td colspan="2">';
    +	print $form->selectyesno("TAKEPOS_ORDER_PRINTERS",$conf->global->TAKEPOS_ORDER_PRINTERS,1);
    +	print '</td></tr>';
    +}
    +
    +$substitutionarray=pdf_getSubstitutionArray($langs, null, null, 2);
    +$substitutionarray['__(AnyTranslationKey)__']=$langs->trans("Translation");
    +$htmltext = '<i>'.$langs->trans("AvailableVariables").':<br>';
    +foreach($substitutionarray as $key => $val)	$htmltext.=$key.'<br>';
    +$htmltext.='</i>';
    +
    +print '<tr class="oddeven"><td>';
    +print $form->textwithpicto($langs->trans("FreeLegalTextOnInvoices")." - ".$langs->trans("Header"), $htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
    +print '</td><td>';
    +$variablename='TAKEPOS_HEADER';
    +if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT))
    +{
    +    print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
    +}
    +else
    +{
    +    include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    +    $doleditor=new DolEditor($variablename, $conf->global->$variablename,'',80,'dolibarr_notes');
    +    print $doleditor->Create();
    +}
    +print "</td></tr>\n";
    +
    +print '<tr class="oddeven"><td>';
    +print $form->textwithpicto($langs->trans("FreeLegalTextOnInvoices")." - ".$langs->trans("Footer"), $htmltext, 1, 'help', '', 0, 2, 'freetexttooltip').'<br>';
    +print '</td><td>';
    +$variablename='TAKEPOS_FOOTER';
    +if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT))
    +{
    +    print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
    +}
    +else
    +{
    +    include_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    +    $doleditor=new DolEditor($variablename, $conf->global->$variablename,'',80,'dolibarr_notes');
    +    print $doleditor->Create();
    +}
    +print "</td></tr>\n";
    +
    +print '</table>';
    +
    +print '<br>';
    +
    +
    +print '<table class="noborder" width="100%">';
    +print '<tr class="liste_titre">';
    +print '<td>'.$langs->trans("Terminal").' 0</td><td>'.$langs->trans("Value").'</td>';
    +print "</tr>\n";
    +
    +print '<tr class="oddeven"><td width=\"50%\">'.$langs->trans("CashDeskThirdPartyForSell").'</td>';
    +print '<td colspan="2">';
    +print $form->select_company($conf->global->CASHDESK_ID_THIRDPARTY, 'socid', 's.client in (1,3) AND s.status = 1', 1, 0, 0, array(), 0);
    +print '</td></tr>';
    +if (! empty($conf->banque->enabled))
    +{
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("CashDeskBankAccountForSell").'</td>';
    +	print '<td colspan="2">';
    +	$form->select_comptes($conf->global->CASHDESK_ID_BANKACCOUNT_CASH,'CASHDESK_ID_BANKACCOUNT_CASH',0,"courant=2",1);
    +	print '</td></tr>';
    +
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("CashDeskBankAccountForCheque").'</td>';
    +	print '<td colspan="2">';
    +	$form->select_comptes($conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE,'CASHDESK_ID_BANKACCOUNT_CHEQUE',0,"courant=1",1);
    +	print '</td></tr>';
    +
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("CashDeskBankAccountForCB").'</td>';
    +	print '<td colspan="2">';
    +	$form->select_comptes($conf->global->CASHDESK_ID_BANKACCOUNT_CB,'CASHDESK_ID_BANKACCOUNT_CB',0,"courant=1",1);
    +	print '</td></tr>';
    +}
    +
    +if (! empty($conf->stock->enabled))
    +{
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("CashDeskDoNotDecreaseStock").'</td>';	// Force warehouse (this is not a default value)
    +	print '<td colspan="2">';
    +	if (empty($conf->productbatch->enabled)) {
    +	   print $form->selectyesno('CASHDESK_NO_DECREASE_STOCK',$conf->global->CASHDESK_NO_DECREASE_STOCK,1);
    +	}
    +	else
    +	{
    +	    if (!$conf->global->CASHDESK_NO_DECREASE_STOCK) {
    +	       $res = dolibarr_set_const($db,"CASHDESK_NO_DECREASE_STOCK",1,'chaine',0,'',$conf->entity);
    +	    }
    +	    print $langs->trans("Yes").'<br>';
    +	    print '<span class="opacitymedium">'.$langs->trans('StockDecreaseForPointOfSaleDisabledbyBatch').'</span>';
    +	}
    +	print '</td></tr>';
    +
    +	$disabled=$conf->global->CASHDESK_NO_DECREASE_STOCK;
    +
    +
    +	print '<tr class="oddeven"><td>'.$langs->trans("CashDeskIdWareHouse").'</td>';	// Force warehouse (this is not a default value)
    +	print '<td colspan="2">';
    +	if (! $disabled)
    +	{
    +		print $formproduct->selectWarehouses($conf->global->CASHDESK_ID_WAREHOUSE,'CASHDESK_ID_WAREHOUSE','',1,$disabled);
    +		print ' <a href="'.DOL_URL_ROOT.'/product/stock/card.php?action=create&backtopage='.urlencode($_SERVER["PHP_SELF"]).'">('.$langs->trans("Create").')</a>';
    +	}
    +	else
    +	{
    +		print '<span class="opacitymedium">'.$langs->trans("StockDecreaseForPointOfSaleDisabled").'</span>';
    +	}
    +	print '</td></tr>';
    +}
    +
    +print '</table>';
    +print '<br>';
    +
    +print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
    +
    +print "</form>\n";
    +
    +
    +print '<br><br>';
    +
    +// Marketplace
    +print "<table summary=\"list_of_modules\" class=\"noborder\" width=\"100%\">\n";
    +print "<tr class=\"liste_titre\">\n";
    +print '<td colspan="2">TakePOS Marketplace</td>';
    +print '<td>'.$langs->trans("URL").'</td>';
    +print '</tr>';
    +
    +print "<tr class=\"oddeven\">\n";
    +$url='https://www.dolistore.com/en/modules/980-TakePOS-7-mobile.html';
    +print '<td align="left"><a href="'.$url.'" target="_blank" rel="external"><img border="0" class="imgautosize imgmaxwidth180" src="../img/marketplace/takeposmobile.jpg"></a></td>';
    +print '<td>TakePOS for mobile devices</td>';
    +print '<td><a href="'.$url.'" target="_blank" rel="external">'.$url.'</a></td>';
    +print '</tr>';
    +
    +print "</table>\n";
    +print '<br>';
    +
    +// Support
    +print "<table summary=\"list_of_modules\" class=\"noborder\" width=\"100%\">\n";
    +print "<tr class=\"liste_titre\">\n";
    +print '<td colspan="2">TakePOS Support</td>';
    +print '<td>'.$langs->trans("URL").'</td>';
    +print '</tr>';
    +
    +print "<tr class=\"oddeven\">\n";
    +$url='http://www.takepos.com';
    +print '<td align="left"><a href="'.$url.'" target="_blank" rel="external"><img border="0" class="imgautosize imgmaxwidth180" src="../img/takepos.png"></a></td>';
    +print '<td>TakePOS original developers</td>';
    +print '<td><a href="'.$url.'" target="_blank" rel="external">'.$url.'</a></td>';
    +print '</tr>';
    +
    +print "</table>\n";
    +print '<br>';
    +
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/takepos/ajax.php b/htdocs/takepos/ajax.php
    new file mode 100644
    index 00000000000..33d1503891e
    --- /dev/null
    +++ b/htdocs/takepos/ajax.php
    @@ -0,0 +1,62 @@
    +<?php
    +/* Copyright (C) 2001-2004	Andreu Bisquerra	<jove@bisquerra.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *	\file       htdocs/takepos/ajax.php
    + *	\brief      Ajax search component for TakePos. It search products of a category.
    + */
    +
    +//if (! defined('NOREQUIREUSER'))	define('NOREQUIREUSER','1');	// Not disabled cause need to load personalized language
    +//if (! defined('NOREQUIREDB'))		define('NOREQUIREDB','1');		// Not disabled cause need to load personalized language
    +if (! defined('NOREQUIRESOC'))		define('NOREQUIRESOC','1');
    +//if (! defined('NOREQUIRETRAN'))		define('NOREQUIRETRAN','1');
    +if (! defined('NOCSRFCHECK'))		define('NOCSRFCHECK','1');
    +if (! defined('NOTOKENRENEWAL'))	define('NOTOKENRENEWAL','1');
    +if (! defined('NOREQUIREMENU'))		define('NOREQUIREMENU','1');
    +if (! defined('NOREQUIREHTML'))		define('NOREQUIREHTML','1');
    +if (! defined('NOREQUIREAJAX'))		define('NOREQUIREAJAX','1');
    +
    +require '../main.inc.php';	// Load $user and permissions
    +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
    +
    +$category = GETPOST('category','alpha');
    +$action = GETPOST('action','alpha');
    +$term = GETPOST('term','alpha');
    +
    +
    +/*
    + * View
    + */
    +
    +if ($action=="getProducts"){
    +	$object = new Categorie($db);
    +	$result=$object->fetch($category);
    +	$prods = $object->getObjectsInCateg("product");
    +	echo json_encode($prods);
    +}
    +
    +if ($action=="search"){
    +	$sql = 'SELECT * FROM '.MAIN_DB_PREFIX.'product';
    +	$sql.= ' WHERE entity IN ('.getEntity('product').')';
    +	$sql .= natural_search(array('label','barcode'), $term);
    +	$resql = $db->query($sql);
    +	$rows = array();
    +	while($row = $db->fetch_array ($resql)){
    +		$rows[] = $row;
    +	}
    +	echo json_encode($rows);
    +}
    \ No newline at end of file
    diff --git a/htdocs/takepos/class/actions_takepos.class.php b/htdocs/takepos/class/actions_takepos.class.php
    new file mode 100644
    index 00000000000..2ed4a27525b
    --- /dev/null
    +++ b/htdocs/takepos/class/actions_takepos.class.php
    @@ -0,0 +1,219 @@
    +<?php
    +/* Copyright (C) 2018 SuperAdmin
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    takepos/class/actions_takepos.class.php
    + * \ingroup takepos
    + * \brief   Hooks of takepos module
    + */
    +
    +/**
    + * Class ActionsTakePos
    + */
    +class ActionsTakePos
    +{
    +    /**
    +     * @var DoliDB Database handler.
    +     */
    +    public $db;
    +    /**
    +     * @var string Error
    +     */
    +    public $error = '';
    +    /**
    +     * @var array Errors
    +     */
    +    public $errors = array();
    +
    +
    +	/**
    +	 * @var array Hook results. Propagated to $hookmanager->resArray for later reuse
    +	 */
    +	public $results = array();
    +
    +	/**
    +	 * @var string String displayed by executeHook() immediately after return
    +	 */
    +	public $resprints;
    +
    +
    +	/**
    +	 * Constructor
    +	 *
    +	 *  @param		DoliDB		$db      Database handler
    +	 */
    +	public function __construct($db)
    +	{
    +	    $this->db = $db;
    +	}
    +
    +	/**
    +	 * Overloading the doActions function : replacing the parent's function with the one below
    +	 *
    +	 * @param   array()         $parameters     Hook metadatas (context, etc...)
    +	 * @param   CommonObject    $object         The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...)
    +	 * @param   string          $action         Current action (if set). Generally create or edit or null
    +	 * @param   HookManager     $hookmanager    Hook manager propagated to allow calling another hook
    +	 * @return  int                             < 0 on error, 0 on success, 1 to replace standard code
    +	 */
    +	public function doActions($parameters, &$object, &$action, $hookmanager)
    +	{
    +		global $conf, $user, $langs;
    +
    +		$error = 0; // Error counter
    +
    +        /* print_r($parameters); print_r($object); echo "action: " . $action; */
    +	    if (in_array($parameters['currentcontext'], array('somecontext1','somecontext2')))	    // do something only for the context 'somecontext1' or 'somecontext2'
    +	    {
    +			// Do what you want here...
    +			// You can for example call global vars like $fieldstosearchall to overwrite them, or update database depending on $action and $_POST values.
    +		}
    +
    +		if (! $error) {
    +			$this->results = array('myreturn' => 999);
    +			$this->resprints = 'A text to show';
    +			return 0;                                    // or return 1 to replace standard code
    +		} else {
    +			$this->errors[] = 'Error message';
    +			return -1;
    +		}
    +	}
    +
    +
    +	/**
    +	 * Overloading the doActions function : replacing the parent's function with the one below
    +	 *
    +	 * @param   array()         $parameters     Hook metadatas (context, etc...)
    +	 * @param   CommonObject    $object         The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...)
    +	 * @param   string          $action         Current action (if set). Generally create or edit or null
    +	 * @param   HookManager     $hookmanager    Hook manager propagated to allow calling another hook
    +	 * @return  int                             < 0 on error, 0 on success, 1 to replace standard code
    +	 */
    +	public function addMoreActionsButtons($parameters, &$object, &$action, $hookmanager)
    +	{
    +	    global $conf, $user, $langs;
    +
    +	    $error = 0; // Error counter
    +
    +        /* print_r($parameters); print_r($object); echo "action: " . $action; */
    +	    if (in_array($parameters['currentcontext'], array('invoicecard')))		// do something only for the context 'somecontext1' or 'somecontext2'
    +	    {
    +
    +			$receipt_url=DOL_URL_ROOT."/takepos/receipt.php";
    +	        print '<div class="inline-block divButAction"><a target="_blank" class="butAction" href="' . $receipt_url . '?facid=' . $object->id.'">' . $langs->trans('Ticket') .'</a></div>';
    +	    }
    +
    +	    if (! $error) {
    +	        $this->results = array('myreturn' => 999);
    +	        $this->resprints = 'A text to show';
    +	        return 0;                                    // or return 1 to replace standard code
    +	    } else {
    +	        $this->errors[] = 'Error message';
    +	        return -1;
    +	    }
    +	}
    +
    +
    +	/**
    +	 * Overloading the addMoreMassActions function : replacing the parent's function with the one below
    +	 *
    +	 * @param   array()         $parameters     Hook metadatas (context, etc...)
    +	 * @param   CommonObject    $object         The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...)
    +	 * @param   string          $action         Current action (if set). Generally create or edit or null
    +	 * @param   HookManager     $hookmanager    Hook manager propagated to allow calling another hook
    +	 * @return  int                             < 0 on error, 0 on success, 1 to replace standard code
    +	 */
    +	public function addMoreMassActions($parameters, &$object, &$action, $hookmanager)
    +	{
    +	    global $conf, $user, $langs;
    +
    +	    $error = 0; // Error counter
    +
    +        /* print_r($parameters); print_r($object); echo "action: " . $action; */
    +	    if (in_array($parameters['currentcontext'], array('somecontext1','somecontext2')))		// do something only for the context 'somecontext1' or 'somecontext2'
    +	    {
    +	        $this->resprints = '<option value="0"'.($disabled?' disabled="disabled"':'').'>'.$langs->trans("TakePosMassAction").'</option>';
    +	    }
    +
    +	    if (! $error) {
    +	        return 0;                                    // or return 1 to replace standard code
    +	    } else {
    +	        $this->errors[] = 'Error message';
    +	        return -1;
    +	    }
    +	}
    +
    +
    +
    +	/**
    +	 * Execute action
    +	 *
    +	 * @param	array	$parameters		Array of parameters
    +	 * @param   Object	$object		   	Object output on PDF
    +	 * @param   string	$action     	'add', 'update', 'view'
    +	 * @return  int 		        	<0 if KO,
    +	 *                          		=0 if OK but we want to process standard actions too,
    +	 *  	                            >0 if OK and we want to replace standard actions.
    +	 */
    +	function beforePDFCreation($parameters, &$object, &$action)
    +	{
    +		global $langs,$conf;
    +		global $hookmanager;
    +
    +		$outputlangs=$langs;
    +
    +		$ret=0; $deltemp=array();
    +		dol_syslog(get_class($this).'::executeHooks action='.$action);
    +
    +		/* print_r($parameters); print_r($object); echo "action: " . $action; */
    +		if (in_array($parameters['currentcontext'], array('somecontext1','somecontext2')))		// do something only for the context 'somecontext1' or 'somecontext2'
    +		{
    +
    +		}
    +
    +		return $ret;
    +	}
    +
    +	/**
    +	 * Execute action
    +	 *
    +	 * @param	array	$parameters		Array of parameters
    +	 * @param   Object	$pdfhandler   	PDF builder handler
    +	 * @param   string	$action     	'add', 'update', 'view'
    +	 * @return  int 		        	<0 if KO,
    +	 *                          		=0 if OK but we want to process standard actions too,
    +	 *  	                            >0 if OK and we want to replace standard actions.
    +	 */
    +	function afterPDFCreation($parameters, &$pdfhandler, &$action)
    +	{
    +		global $langs,$conf;
    +		global $hookmanager;
    +
    +		$outputlangs=$langs;
    +
    +		$ret=0; $deltemp=array();
    +		dol_syslog(get_class($this).'::executeHooks action='.$action);
    +
    +		/* print_r($parameters); print_r($object); echo "action: " . $action; */
    +		if (in_array($parameters['currentcontext'], array('somecontext1','somecontext2')))		// do something only for the context 'somecontext1' or 'somecontext2'
    +		{
    +
    +		}
    +
    +		return $ret;
    +	}
    +}
    diff --git a/htdocs/takepos/css/colorbox.css b/htdocs/takepos/css/colorbox.css
    new file mode 100644
    index 00000000000..e51a84c8282
    --- /dev/null
    +++ b/htdocs/takepos/css/colorbox.css
    @@ -0,0 +1,58 @@
    +/*
    +    Colorbox Core Style:
    +    The following CSS is consistent between example themes and should not be altered.
    +*/
    +#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden; -webkit-transform: translate3d(0,0,0);}
    +#cboxWrapper {max-width:none;}
    +#cboxOverlay{position:fixed; width:100%; height:100%;}
    +#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
    +#cboxContent{position:relative;}
    +#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
    +#cboxTitle{margin:0;}
    +#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
    +#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
    +.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
    +.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}
    +#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
    +
    +/*
    +    User Style:
    +    Change the following styles to modify the appearance of Colorbox.  They are
    +    ordered & tabbed in a way that represents the nesting of the generated HTML.
    +*/
    +#cboxOverlay{background:#000; opacity: 0.9; filter: alpha(opacity = 90);}
    +#colorbox{outline:0;}
    +#cboxTopLeft{width:14px; height:14px; background:url(images/controls.png) no-repeat 0 0;}
    +#cboxTopCenter{height:14px; background:url(images/border.png) repeat-x top left;}
    +#cboxTopRight{width:14px; height:14px; background:url(images/controls.png) no-repeat -36px 0;}
    +#cboxBottomLeft{width:14px; height:43px; background:url(images/controls.png) no-repeat 0 -32px;}
    +#cboxBottomCenter{height:43px; background:url(images/border.png) repeat-x bottom left;}
    +#cboxBottomRight{width:14px; height:43px; background:url(images/controls.png) no-repeat -36px -32px;}
    +#cboxMiddleLeft{width:14px; background:url(images/controls.png) repeat-y -175px 0;}
    +#cboxMiddleRight{width:14px; background:url(images/controls.png) repeat-y -211px 0;}
    +#cboxContent{background:#fff; overflow:visible;}
    +.cboxIframe{background:#fff;}
    +#cboxError{padding:50px; border:1px solid #ccc;}
    +#cboxLoadedContent{margin-bottom:5px;}
    +#cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
    +#cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
    +#cboxTitle{position:absolute; bottom:-25px; left:0; text-align:center; width:100%; font-weight:bold; color:#7C7C7C;}
    +#cboxCurrent{position:absolute; bottom:-25px; left:58px; font-weight:bold; color:#7C7C7C;}
    +
    +/* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
    +#cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible;  position:absolute; bottom:-29px; background:url(images/controls.png) no-repeat 0px 0px; width:23px; height:23px; text-indent:-9999px;}
    +
    +/* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
    +#cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
    +
    +#cboxPrevious{left:0px; background-position: -51px -25px;}
    +#cboxPrevious:hover{background-position:-51px 0px;}
    +#cboxNext{left:27px; background-position:-75px -25px;}
    +#cboxNext:hover{background-position:-75px 0px;}
    +#cboxClose{right:0; background-position:-100px -25px;}
    +#cboxClose:hover{background-position:-100px 0px;}
    +
    +.cboxSlideshow_on #cboxSlideshow{background-position:-125px 0px; right:27px;}
    +.cboxSlideshow_on #cboxSlideshow:hover{background-position:-150px 0px;}
    +.cboxSlideshow_off #cboxSlideshow{background-position:-150px -25px; right:27px;}
    +.cboxSlideshow_off #cboxSlideshow:hover{background-position:-125px 0px;}
    diff --git a/htdocs/takepos/css/images/border.png b/htdocs/takepos/css/images/border.png
    new file mode 100644
    index 00000000000..c1cd1a2a451
    Binary files /dev/null and b/htdocs/takepos/css/images/border.png differ
    diff --git a/htdocs/takepos/css/images/controls.png b/htdocs/takepos/css/images/controls.png
    new file mode 100644
    index 00000000000..259130cd537
    Binary files /dev/null and b/htdocs/takepos/css/images/controls.png differ
    diff --git a/htdocs/takepos/css/images/loading.gif b/htdocs/takepos/css/images/loading.gif
    new file mode 100644
    index 00000000000..dba33c8167b
    Binary files /dev/null and b/htdocs/takepos/css/images/loading.gif differ
    diff --git a/htdocs/takepos/css/images/loading_background.png b/htdocs/takepos/css/images/loading_background.png
    new file mode 100644
    index 00000000000..23a336b3989
    Binary files /dev/null and b/htdocs/takepos/css/images/loading_background.png differ
    diff --git a/htdocs/takepos/css/pos.css b/htdocs/takepos/css/pos.css
    new file mode 100644
    index 00000000000..15a2993f593
    --- /dev/null
    +++ b/htdocs/takepos/css/pos.css
    @@ -0,0 +1,187 @@
    +html,body {
    +    padding:0;
    +    margin:0;
    +    height:100%;
    +}
    +
    +body {
    +    width:100%;
    +}
    +
    +.row {
    +    width:100%;
    +    height:50%;
    +}
    +
    +.row div {
    +    width:33%;
    +    height:100%;
    +    float:left;
    +}
    +
    +button.calcbutton {
    +	display: inline-block;
    +	position: relative;
    +	padding: 0;
    +	line-height: normal;
    +	cursor: pointer;
    +	vertical-align: middle;
    +	text-align: center;
    +	overflow: visible; /* removes extra width in IE */
    +	width:24%;
    +	height:24%;
    +	font-weight: bold;
    +	color: #555555;
    +}
    +
    +button.calcbutton2 {
    +	display: inline-block;
    +	position: relative;
    +	padding: 0;
    +	line-height: normal;
    +	cursor: pointer;
    +	vertical-align: middle;
    +	text-align: center;
    +	overflow: visible; /* removes extra width in IE */
    +	width:24%;
    +	height:24%;
    +	font-weight: bold;
    +	color: #555555;
    +}
    +
    +button.calcbutton3 {
    +	display: inline-block;
    +	position: relative;
    +	padding: 0;
    +	line-height: normal;
    +	cursor: pointer;
    +	vertical-align: middle;
    +	text-align: center;
    +	font-size:120%;
    +	overflow: visible; /* removes extra width in IE */
    +	width:12%;
    +	height:24%;
    +}
    +
    +button.actionbutton {
    +	display: inline-block;
    +	position: relative;
    +	padding: 0;
    +	line-height: normal;
    +	cursor: pointer;
    +	vertical-align: middle;
    +	text-align: center;
    +	overflow: visible; /* removes extra width in IE */
    +	width:32%;
    +	height:32%;
    +}
    +
    +div.wrapper{
    +	float:left; /* important */
    +	position:relative; /* important(so we can absolutely position the description div */
    +	width:21.5%;
    +	height:23%;
    +	margin:1%;
    +	border: 0.1em solid;
    +	box-shadow: 3px 3px 2px #888;
    +	text-align: center;
    +}
    +
    +div.wrapper2{
    +	float:left; /* important */
    +	position:relative; /* important(so we can absolutely position the description div */
    +	width:10.2%;
    +	height:23%;
    +	margin-top:0.5%;
    +	margin-bottom:0.5%;
    +	margin-left:0.5%;
    +	margin-right:0.5%;
    +	border: 0.1em solid;
    +	box-shadow: 3px 3px 2px #888;
    +	text-align: center;
    +}
    +
    +button:active{
    +    background:black;
    +	color: white;
    +}
    +
    +div.description{
    +	position:absolute; /* absolute position (so we can position it where we want)*/
    +	bottom:0px; /* position will be on bottom */
    +	left:0px;
    +	width:100%;
    +	/* styling bellow */
    +	background-color:black;
    +	font-family: 'tahoma';
    +	color:white;
    +	opacity:0.8; /* transparency */
    +	filter:alpha(opacity=80); /* IE transparency */
    +	text-align:center;
    +}
    +
    +@media only screen and (max-aspect-ratio: 6/4) {
    +	div.description{
    +	min-height:20%;
    +	}
    +}
    +
    +p.description_content{
    +	padding:10px;
    +	margin:0px;
    +
    +}
    +
    +@media screen and (min-width: 892px) {
    +	.calcbutton{
    +		font-size: 18px;
    +	}
    +	.calcbutton2{
    +		font-size: 14px;
    +	}
    +	.actionbutton{
    +		font-size: 13px;
    +	}
    +	div.description{
    +		font-size: 15px;
    +	}
    +	.invoice{
    +		font-size: 14px;
    +	}
    +}
    +
    +@media (max-width: 891px) and (min-width: 386px) {
    +	.calcbutton{
    +		font-size: 12px;
    +	}
    +	.calcbutton2{
    +		font-size: 9px;
    +	}
    +	.actionbutton{
    +		font-size: 12px;
    +	}
    +	div.description{
    +		font-size: 13px;
    +	}
    +	.invoice{
    +		font-size: 12px;
    +	}
    +}
    +
    +@media screen and (max-width: 385px){
    +	.calcbutton{
    +		font-size: 8px;
    +	}
    +	.calcbutton2{
    +		font-size: 7px;
    +	}
    +	.actionbutton{
    +		font-size: 10px;
    +	}
    +	div.description{
    +		font-size: 11px;
    +	}
    +	.invoice{
    +		font-size: 10px;
    +	}
    +}
    \ No newline at end of file
    diff --git a/htdocs/takepos/customers.php b/htdocs/takepos/customers.php
    new file mode 100644
    index 00000000000..41738861702
    --- /dev/null
    +++ b/htdocs/takepos/customers.php
    @@ -0,0 +1,1271 @@
    +<?php
    +/* Copyright (C) 2001-2004  Rodolphe Quiedeville    <rodolphe@quiedeville.org>
    + * Copyright (C) 2004-2016  Laurent Destailleur     <eldy@users.sourceforge.net>
    + * Copyright (C) 2005-2012  Regis Houssin           <regis.houssin@inodbox.com>
    + * Copyright (C) 2012       Marcos García           <marcosgdf@gmail.com>
    + * Copyright (C) 2013-2015  Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2015       Florian Henry           <florian.henry@open-concept.pro>
    + * Copyright (C) 2016       Josep Lluis Amador      <joseplluis@lliuretic.cat>
    + * Copyright (C) 2016       Ferran Marcet      		<fmarcet@2byte.es>
    + * Copyright (C) 2017       Rui Strecht      		<rui.strecht@aliartalentos.com>
    + * Copyright (C) 2017       Juanjo Menent      		<jmenent@2byte.es>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *	\file       htdocs/takepos/customers.php
    + *	\ingroup    societe
    + *	\brief      Page to show list of third parties. TODO Merge with societe/list.php
    + */
    +
    +require '../main.inc.php';	// Load $user and permissions
    +include_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php';
    +
    +$langs->loadLangs(array("companies", "commercial", "customers", "suppliers", "bills", "compta", "categories", "cashdesk"));
    +
    +$action=GETPOST('action','alpha');
    +$massaction=GETPOST('massaction','alpha');
    +$show_files=GETPOST('show_files','int');
    +$confirm=GETPOST('confirm','alpha');
    +$toselect = GETPOST('toselect', 'array');
    +$idcustomer = GETPOST('idcustomer','int');
    +$place = GETPOST('place','int');
    +
    +$_GET['optioncss'] = 'print';
    +
    +
    +/*
    + * Actions
    + */
    +
    +if ($action=="change") {
    +    $sql="UPDATE ".MAIN_DB_PREFIX."facture set fk_soc=".$idcustomer." where ref='(PROV-POS-".$place.")'";
    +    $resql = $db->query($sql);
    +    ?>
    +    <script>
    +    parent.$("#poslines").load("invoice.php?place="+<?php print $place;?>, function() {
    +        parent.$("#poslines").scrollTop(parent.$("#poslines")[0].scrollHeight);
    +        parent.$.colorbox.close();
    +    });
    +    </script>
    +    <?php
    +    exit;
    +}
    +
    +// Security check
    +$socid = GETPOST('socid','int');
    +if ($user->societe_id) $socid=$user->societe_id;
    +$result = restrictedArea($user,'societe',$socid,'');
    +
    +$search_all=trim(GETPOST('search_all', 'alphanohtml')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml'));
    +$search_cti=preg_replace('/^0+/', '', preg_replace('/[^0-9]/', '', GETPOST('search_cti', 'alphanohtml')));	// Phone number without any special chars
    +
    +$search_id=trim(GETPOST("search_id","int"));
    +$search_nom=trim(GETPOST("search_nom"));
    +$search_alias=trim(GETPOST("search_alias"));
    +$search_nom_only=trim(GETPOST("search_nom_only"));
    +$search_barcode=trim(GETPOST("search_barcode"));
    +$search_customer_code=trim(GETPOST('search_customer_code'));
    +$search_supplier_code=trim(GETPOST('search_supplier_code'));
    +$search_account_customer_code=trim(GETPOST('search_account_customer_code'));
    +$search_account_supplier_code=trim(GETPOST('search_account_supplier_code'));
    +$search_town=trim(GETPOST("search_town"));
    +$search_zip=trim(GETPOST("search_zip"));
    +$search_state=trim(GETPOST("search_state"));
    +$search_region=trim(GETPOST("search_region"));
    +$search_email=trim(GETPOST('search_email'));
    +$search_phone=trim(GETPOST('search_phone'));
    +$search_url=trim(GETPOST('search_url'));
    +$search_idprof1=trim(GETPOST('search_idprof1'));
    +$search_idprof2=trim(GETPOST('search_idprof2'));
    +$search_idprof3=trim(GETPOST('search_idprof3'));
    +$search_idprof4=trim(GETPOST('search_idprof4'));
    +$search_idprof5=trim(GETPOST('search_idprof5'));
    +$search_idprof6=trim(GETPOST('search_idprof6'));
    +$search_vat=trim(GETPOST('search_vat'));
    +$search_sale=trim(GETPOST("search_sale",'int'));
    +$search_categ_cus=trim(GETPOST("search_categ_cus",'int'));
    +$search_categ_sup=trim(GETPOST("search_categ_sup",'int'));
    +$search_country=GETPOST("search_country",'intcomma');
    +$search_type_thirdparty=GETPOST("search_type_thirdparty",'int');
    +$search_status=GETPOST("search_status",'int');
    +$search_type=GETPOST('search_type','alpha');
    +$search_level_from = GETPOST("search_level_from","alpha");
    +$search_level_to   = GETPOST("search_level_to","alpha");
    +$search_stcomm=GETPOST('search_stcomm','int');
    +$search_import_key  = GETPOST("search_import_key","alpha");
    +
    +$type=GETPOST('type');
    +$optioncss=GETPOST('optioncss','alpha');
    +$mode=GETPOST("mode");
    +
    +$diroutputmassaction=$conf->societe->dir_output . '/temp/massgeneration/'.$user->id;
    +
    +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
    +$sortfield=GETPOST("sortfield",'alpha');
    +$sortorder=GETPOST("sortorder",'alpha');
    +$page=GETPOST("page",'int');
    +if (! $sortorder) $sortorder="ASC";
    +if (! $sortfield) $sortfield="s.nom";
    +if (empty($page) || $page == -1) { $page = 0; }
    +$offset = $limit * $page;
    +$pageprev = $page - 1;
    +$pagenext = $page + 1;
    +
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$contextpage='thirdpartylist';
    +/*if ($search_type == '1,3') { $contextpage='customerlist'; $type='c'; }
    +if ($search_type == '2,3') { $contextpage='prospectlist'; $type='p'; }
    +if ($search_type == '4') { $contextpage='supplierlist'; $type='f'; }
    +*/
    +if ($type == 'c') { $contextpage='customerlist'; if ($search_type=='') $search_type='1,3'; }
    +if ($type == 'p') { $contextpage='prospectlist'; if ($search_type=='') $search_type='2,3'; }
    +if ($type == 'f') { $contextpage='supplierlist'; if ($search_type=='') $search_type='4'; }
    +
    +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
    +$hookmanager->initHooks(array($contextpage));
    +$extrafields = new ExtraFields($db);
    +
    +// fetch optionals attributes and labels
    +$extralabels = $extrafields->fetch_name_optionals_label('societe');
    +$search_array_options=$extrafields->getOptionalsFromPost('societe','','search_');
    +
    +// List of fields to search into when doing a "search in all"
    +$fieldstosearchall = array(
    +	's.nom'=>"ThirdPartyName",
    +	's.name_alias'=>"AliasNameShort",
    +	's.code_client'=>"CustomerCode",
    +	's.code_fournisseur'=>"SupplierCode",
    +	's.code_compta'=>"CustomerAccountancyCodeShort",
    +	's.code_compta_fournisseur'=>"SupplierAccountancyCodeShort",
    +	's.email'=>"EMail",
    +	's.url'=>"URL",
    +	's.tva_intra'=>"VATIntra",
    +	's.siren'=>"ProfId1",
    +	's.siret'=>"ProfId2",
    +	's.ape'=>"ProfId3",
    +);
    +if (($tmp = $langs->transnoentities("ProfId4".$mysoc->country_code)) && $tmp != "ProfId4".$mysoc->country_code && $tmp != '-') $fieldstosearchall['s.idprof4']='ProfId4';
    +if (($tmp = $langs->transnoentities("ProfId5".$mysoc->country_code)) && $tmp != "ProfId5".$mysoc->country_code && $tmp != '-') $fieldstosearchall['s.idprof5']='ProfId5';
    +if (($tmp = $langs->transnoentities("ProfId6".$mysoc->country_code)) && $tmp != "ProfId6".$mysoc->country_code && $tmp != '-') $fieldstosearchall['s.idprof6']='ProfId6';
    +if (!empty($conf->barcode->enabled)) $fieldstosearchall['s.barcode']='Gencod';
    +
    +// Define list of fields to show into list
    +$checkedcustomercode=(in_array($contextpage, array('thirdpartylist', 'customerlist', 'prospectlist')) ? 1 : 0);
    +$checkedsuppliercode=(in_array($contextpage, array('supplierlist')) ? 1 : 0);
    +$checkedcustomeraccountcode=(in_array($contextpage, array('customerlist')) ? 1 : 0);
    +$checkedsupplieraccountcode=(in_array($contextpage, array('supplierlist')) ? 1 : 0);
    +$checkedtypetiers=1;
    +$checkedprofid1=0;
    +$checkedprofid2=0;
    +$checkedprofid3=0;
    +$checkedprofid4=0;
    +$checkedprofid5=0;
    +$checkedprofid6=0;
    +//$checkedprofid4=((($tmp = $langs->transnoentities("ProfId4".$mysoc->country_code)) && $tmp != "ProfId4".$mysoc->country_code && $tmp != '-') ? 1 : 0);
    +//$checkedprofid5=((($tmp = $langs->transnoentities("ProfId5".$mysoc->country_code)) && $tmp != "ProfId5".$mysoc->country_code && $tmp != '-') ? 1 : 0);
    +//$checkedprofid6=((($tmp = $langs->transnoentities("ProfId6".$mysoc->country_code)) && $tmp != "ProfId6".$mysoc->country_code && $tmp != '-') ? 1 : 0);
    +$checkprospectlevel=(in_array($contextpage, array('prospectlist')) ? 1 : 0);
    +$checkstcomm=(in_array($contextpage, array('prospectlist')) ? 1 : 0);
    +$arrayfields=array(
    +	's.rowid'=>array('label'=>"TechnicalID", 'checked'=>($conf->global->MAIN_SHOW_TECHNICAL_ID?1:0), 'enabled'=>($conf->global->MAIN_SHOW_TECHNICAL_ID?1:0)),
    +	's.nom'=>array('label'=>"ThirdPartyName", 'checked'=>1),
    +	's.name_alias'=>array('label'=>"AliasNameShort", 'checked'=>1),
    +	's.barcode'=>array('label'=>"Gencod", 'checked'=>1, 'enabled'=>(! empty($conf->barcode->enabled))),
    +	's.code_client'=>array('label'=>"CustomerCodeShort", 'checked'=>$checkedcustomercode),
    +	's.code_fournisseur'=>array('label'=>"SupplierCodeShort", 'checked'=>$checkedsuppliercode, 'enabled'=>(! empty($conf->fournisseur->enabled))),
    +	's.code_compta'=>array('label'=>"CustomerAccountancyCodeShort", 'checked'=>$checkedcustomeraccountcode),
    +	's.code_compta_fournisseur'=>array('label'=>"SupplierAccountancyCodeShort", 'checked'=>$checkedsupplieraccountcode, 'enabled'=>(! empty($conf->fournisseur->enabled))),
    +	's.town'=>array('label'=>"Town", 'checked'=>1),
    +	's.zip'=>array('label'=>"Zip", 'checked'=>1),
    +	'state.nom'=>array('label'=>"State", 'checked'=>0),
    +	'region.nom'=>array('label'=>"Region", 'checked'=>0),
    +	'country.code_iso'=>array('label'=>"Country", 'checked'=>0),
    +	's.email'=>array('label'=>"Email", 'checked'=>0),
    +	's.url'=>array('label'=>"Url", 'checked'=>0),
    +	's.phone'=>array('label'=>"Phone", 'checked'=>1),
    +	'typent.code'=>array('label'=>"ThirdPartyType", 'checked'=>$checkedtypetiers),
    +	's.siren'=>array('label'=>"ProfId1Short", 'checked'=>$checkedprofid1),
    +	's.siret'=>array('label'=>"ProfId2Short", 'checked'=>$checkedprofid2),
    +	's.ape'=>array('label'=>"ProfId3Short", 'checked'=>$checkedprofid3),
    +	's.idprof4'=>array('label'=>"ProfId4Short", 'checked'=>$checkedprofid4),
    +	's.idprof5'=>array('label'=>"ProfId5Short", 'checked'=>$checkedprofid5),
    +	's.idprof6'=>array('label'=>"ProfId6Short", 'checked'=>$checkedprofid6),
    +	's.tva_intra'=>array('label'=>"VATIntra", 'checked'=>0),
    +	'customerorsupplier'=>array('label'=>'Nature', 'checked'=>1),
    +	's.fk_prospectlevel'=>array('label'=>"ProspectLevelShort", 'checked'=>$checkprospectlevel),
    +	's.fk_stcomm'=>array('label'=>"StatusProsp", 'checked'=>$checkstcomm),
    +	's.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>500),
    +	's.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>500),
    +	's.status'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000),
    +	's.import_key'=>array('label'=>"ImportId", 'checked'=>0, 'position'=>1100),
    +);
    +// Extra fields
    +if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
    +{
    +   foreach($extrafields->attribute_label as $key => $val)
    +   {
    +		if (! empty($extrafields->attribute_list[$key])) $arrayfields["ef.".$key]=array('label'=>$extrafields->attribute_label[$key], 'checked'=>(($extrafields->attribute_list[$key]<0)?0:1), 'position'=>$extrafields->attribute_pos[$key], 'enabled'=>(abs($extrafields->attribute_list[$key])!=3 && $extrafields->attribute_perms[$key]));
    +   }
    +}
    +
    +$object = new Societe($db);
    +
    +
    +/*
    + * Actions
    + */
    +
    +if (GETPOST('cancel','alpha')) { $action='list'; $massaction=''; }
    +if (! GETPOST('confirmmassaction','alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; }
    +
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('doActions',$parameters, $object, $action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +if (empty($reshook))
    +{
    +	// Selection of new fields
    +	include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
    +
    +	// Did we click on purge search criteria ?
    +	if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
    +	{
    +		$search_id='';
    +		$search_nom='';
    +		$search_alias='';
    +		$search_categ_cus=0;
    +		$search_categ_sup=0;
    +		$search_sale='';
    +		$search_barcode="";
    +		$search_customer_code='';
    +		$search_supplier_code='';
    +		$search_account_customer_code='';
    +		$search_account_supplier_code='';
    +		$search_town="";
    +		$search_zip="";
    +		$search_state="";
    +		$search_country='';
    +		$search_email='';
    +		$search_phone='';
    +		$search_url='';
    +		$search_idprof1='';
    +		$search_idprof2='';
    +		$search_idprof3='';
    +		$search_idprof4='';
    +		$search_idprof5='';
    +		$search_idprof6='';
    +		$search_vat='';
    +		$search_type='';
    +		$search_type_thirdparty='';
    +		$search_status=-1;
    +		$search_stcomm='';
    +	 	$search_level_from='';
    +	 	$search_level_to='';
    +	 	$search_import_key='';
    +	 	$toselect='';
    +		$search_array_options=array();
    +	}
    +
    +	// Mass actions
    +	$objectclass='Societe';
    +	$objectlabel='ThirdParty';
    +	$permtoread = $user->rights->societe->lire;
    +	$permtodelete = $user->rights->societe->supprimer;
    +	$uploaddir = $conf->societe->dir_output;
    +	include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
    +
    +	if ($action == 'setstcomm')
    +	{
    +		$object = new Client($db);
    +		$result=$object->fetch(GETPOST('stcommsocid'));
    +		$object->stcomm_id=dol_getIdFromCode($db, GETPOST('stcomm','alpha'), 'c_stcomm');
    +		$result=$object->update($object->id, $user);
    +		if ($result < 0) setEventMessages($object->error,$object->errors,'errors');
    +
    +		$action='';
    +	}
    +}
    +
    +if ($search_status=='') $search_status=1; // always display active thirdparty first
    +
    +
    +
    +/*
    + * View
    + */
    +
    +/*
    + REM: Rules on permissions to see thirdparties
    + Internal or External user + No permission to see customers => See nothing
    + Internal user socid=0 + Permission to see ALL customers    => See all thirdparties
    + Internal user socid=0 + No permission to see ALL customers => See only thirdparties linked to user that are sale representative
    + External user socid=x + Permission to see ALL customers    => Can see only himself
    + External user socid=x + No permission to see ALL customers => Can see only himself
    + */
    +
    +$form=new Form($db);
    +$formother=new FormOther($db);
    +$companystatic=new Societe($db);
    +$formcompany=new FormCompany($db);
    +$prospectstatic=new Client($db);
    +$prospectstatic->client=2;
    +$prospectstatic->loadCacheOfProspStatus();
    +
    +
    +$title=$langs->trans("ListOfThirdParties");
    +if ($type == 'c' && (empty($search_type) || ($search_type == '1,3'))) $title=$langs->trans("ListOfCustomers");
    +if ($type == 'p' && (empty($search_type) || ($search_type == '2,3'))) $title=$langs->trans("ListOfProspects");
    +if ($type == 'f' && (empty($search_type) || ($search_type == '4'))) $title=$langs->trans("ListOfSuppliers");
    +
    +// If both parameters are set, search for everything BETWEEN them
    +if ($search_level_from != '' && $search_level_to != '')
    +{
    +	// Ensure that these parameters are numbers
    +	$search_level_from = (int) $search_level_from;
    +	$search_level_to = (int) $search_level_to;
    +
    +	// If from is greater than to, reverse orders
    +	if ($search_level_from > $search_level_to)
    +	{
    +		$tmp = $search_level_to;
    +		$search_level_to = $search_level_from;
    +		$search_level_from = $tmp;
    +	}
    +
    +	// Generate the SQL request
    +	$sortwhere = '(sortorder BETWEEN '.$search_level_from.' AND '.$search_level_to.') AS is_in_range';
    +}
    +// If only "from" parameter is set, search for everything GREATER THAN it
    +else if ($search_level_from != '')
    +{
    +	// Ensure that this parameter is a number
    +	$search_level_from = (int) $search_level_from;
    +
    +	// Generate the SQL request
    +	$sortwhere = '(sortorder >= '.$search_level_from.') AS is_in_range';
    +}
    +// If only "to" parameter is set, search for everything LOWER THAN it
    +else if ($search_level_to != '')
    +{
    +	// Ensure that this parameter is a number
    +	$search_level_to = (int) $search_level_to;
    +
    +	// Generate the SQL request
    +	$sortwhere = '(sortorder <= '.$search_level_to.') AS is_in_range';
    +}
    +// If no parameters are set, dont search for anything
    +else
    +{
    +	$sortwhere = '0 as is_in_range';
    +}
    +
    +// Select every potentiels, and note each potentiels which fit in search parameters
    +dol_syslog('societe/list.php',LOG_DEBUG);
    +$sql = "SELECT code, label, sortorder, ".$sortwhere;
    +$sql.= " FROM ".MAIN_DB_PREFIX."c_prospectlevel";
    +$sql.= " WHERE active > 0";
    +$sql.= " ORDER BY sortorder";
    +
    +$resql = $db->query($sql);
    +if ($resql)
    +{
    +	$tab_level = array();
    +	$search_levels = array();
    +
    +	while ($obj = $db->fetch_object($resql))
    +	{
    +		// Compute level text
    +		$level=$langs->trans($obj->code);
    +		if ($level == $obj->code) $level=$langs->trans($obj->label);
    +
    +		// Put it in the array sorted by sortorder
    +		$tab_level[$obj->sortorder] = $level;
    +
    +		// If this potentiel fit in parameters, add its code to the $search_levels array
    +		if ($obj->is_in_range == 1)
    +		{
    +			$search_levels[] = '"'.preg_replace('[^A-Za-z0-9_-]', '', $obj->code).'"';
    +		}
    +	}
    +
    +	// Implode the $search_levels array so that it can be use in a "IN (...)" where clause.
    +	// If no paramters was set, $search_levels will be empty
    +	$search_levels = implode(',', $search_levels);
    +}
    +else dol_print_error($db);
    +
    +$sql = "SELECT s.rowid, s.nom as name, s.name_alias, s.barcode, s.town, s.zip, s.datec, s.code_client, s.code_fournisseur, s.logo,";
    +$sql.= " st.libelle as stcomm, s.fk_stcomm as stcomm_id, s.fk_prospectlevel, s.prefix_comm, s.client, s.fournisseur, s.canvas, s.status as status,";
    +$sql.= " s.email, s.phone, s.url, s.siren as idprof1, s.siret as idprof2, s.ape as idprof3, s.idprof4 as idprof4, s.idprof5 as idprof5, s.idprof6 as idprof6, s.tva_intra, s.fk_pays,";
    +$sql.= " s.tms as date_update, s.datec as date_creation,";
    +$sql.= " s.code_compta,s.code_compta_fournisseur,";
    +$sql.= " typent.code as typent_code,";
    +$sql.= " state.code_departement as state_code, state.nom as state_name,";
    +$sql.= " region.code_region as region_code, region.nom as region_name";
    +// We'll need these fields in order to filter by sale (including the case where the user can only see his prospects)
    +if ($search_sale) $sql .= ", sc.fk_soc, sc.fk_user";
    +// We'll need these fields in order to filter by categ
    +if ($search_categ_cus) $sql .= ", cc.fk_categorie, cc.fk_soc";
    +if ($search_categ_sup) $sql .= ", cs.fk_categorie, cs.fk_soc";
    +// Add fields from extrafields
    +foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : '');
    +// Add fields from hooks
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters);    // Note that $action and $object may have been modified by hook
    +$sql.=$hookmanager->resPrint;
    +$sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
    +if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_extrafields as ef on (s.rowid = ef.fk_object)";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays)";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent)";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as state on (state.rowid = s.fk_departement)";
    +$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_regions as region on (region.	code_region = state.fk_region)";
    +// We'll need this table joined to the select in order to filter by categ
    +if (! empty($search_categ_cus)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cc ON s.rowid = cc.fk_soc"; // We'll need this table joined to the select in order to filter by categ
    +if (! empty($search_categ_sup)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_fournisseur as cs ON s.rowid = cs.fk_soc"; // We'll need this table joined to the select in order to filter by categ
    +$sql.= " ,".MAIN_DB_PREFIX."c_stcomm as st";
    +// We'll need this table joined to the select in order to filter by sale
    +if ($search_sale || (!$user->rights->societe->client->voir && !$socid)) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
    +$sql.= " WHERE s.fk_stcomm = st.id";
    +$sql.= " AND s.entity IN (".getEntity('societe').")";
    +if (! $user->rights->societe->client->voir && ! $socid)	$sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
    +if ($socid)                $sql.= " AND s.rowid = ".$socid;
    +if ($search_sale)          $sql.= " AND s.rowid = sc.fk_soc";        // Join for the needed table to filter by sale
    +if (! $user->rights->fournisseur->lire) $sql.=" AND (s.fournisseur <> 1 OR s.client <> 0)";    // client=0, fournisseur=0 must be visible
    +if ($search_sale)          $sql.= " AND sc.fk_user = ".$db->escape($search_sale);
    +if ($search_categ_cus > 0) $sql.= " AND cc.fk_categorie = ".$db->escape($search_categ_cus);
    +if ($search_categ_sup > 0) $sql.= " AND cs.fk_categorie = ".$db->escape($search_categ_sup);
    +if ($search_categ_cus == -2)   $sql.= " AND cc.fk_categorie IS NULL";
    +if ($search_categ_sup == -2)   $sql.= " AND cs.fk_categorie IS NULL";
    +
    +if ($search_all)           $sql.= natural_search(array_keys($fieldstosearchall), $search_all);
    +if (strlen($search_cti))   $sql.= natural_search('s.phone', $search_cti);
    +
    +if ($search_id > 0)        $sql.= natural_search("s.rowid",$search_id,1);
    +if ($search_nom)           $sql.= natural_search("s.nom",$search_nom);
    +if ($search_alias)         $sql.= natural_search("s.name_alias",$search_alias);
    +if ($search_nom_only)      $sql.= natural_search("s.nom",$search_nom_only);
    +if ($search_customer_code) $sql.= natural_search("s.code_client",$search_customer_code);
    +if ($search_supplier_code) $sql.= natural_search("s.code_fournisseur",$search_supplier_code);
    +if ($search_account_customer_code) $sql.= natural_search("s.code_compta",$search_account_customer_code);
    +if ($search_account_supplier_code) $sql.= natural_search("s.code_compta_fournisseur",$search_account_supplier_code);
    +if ($search_town)          $sql.= natural_search("s.town",$search_town);
    +if (strlen($search_zip))   $sql.= natural_search("s.zip",$search_zip);
    +if ($search_state)         $sql.= natural_search("state.nom",$search_state);
    +if ($search_region)         $sql.= natural_search("region.nom",$search_region);
    +if ($search_country)       $sql .= " AND s.fk_pays IN (".$search_country.')';
    +if ($search_email)         $sql.= natural_search("s.email",$search_email);
    +if (strlen($search_phone)) $sql.= natural_search("s.phone", $search_phone);
    +if ($search_url)           $sql.= natural_search("s.url",$search_url);
    +if (strlen($search_idprof1)) $sql.= natural_search("s.siren",$search_idprof1);
    +if (strlen($search_idprof2)) $sql.= natural_search("s.siret",$search_idprof2);
    +if (strlen($search_idprof3)) $sql.= natural_search("s.ape",$search_idprof3);
    +if (strlen($search_idprof4)) $sql.= natural_search("s.idprof4",$search_idprof4);
    +if (strlen($search_idprof5)) $sql.= natural_search("s.idprof5",$search_idprof5);
    +if (strlen($search_idprof6)) $sql.= natural_search("s.idprof6",$search_idprof6);
    +if (strlen($search_vat))     $sql.= natural_search("s.tva_intra",$search_vat);
    +// Filter on type of thirdparty
    +if ($search_type > 0 && in_array($search_type,array('1,3','2,3'))) $sql .= " AND s.client IN (".$db->escape($search_type).")";
    +if ($search_type > 0 && in_array($search_type,array('4')))         $sql .= " AND s.fournisseur = 1";
    +if ($search_type == '0') $sql .= " AND s.client = 0 AND s.fournisseur = 0";
    +if ($search_status!='' && $search_status >= 0) $sql .= " AND s.status = ".$db->escape($search_status);
    +if (!empty($conf->barcode->enabled) && $search_barcode) $sql.= natural_search("s.barcode", $search_barcode);
    +if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')';
    +if ($search_levels)  $sql .= " AND s.fk_prospectlevel IN (".$search_levels.')';
    +if ($search_stcomm != '' && $search_stcomm != -2) $sql.= natural_search("s.fk_stcomm",$search_stcomm,2);
    +if ($search_import_key)    $sql.= natural_search("s.import_key",$search_import_key);
    +// Add where from extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
    +
    +// Add where from hooks
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters);    // Note that $action and $object may have been modified by hook
    +$sql.=$hookmanager->resPrint;
    +
    +$sql.= $db->order($sortfield,$sortorder);
    +
    +// Count total nb of records
    +$nbtotalofrecords = '';
    +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
    +{
    +	$result = $db->query($sql);
    +	$nbtotalofrecords = $db->num_rows($result);
    +}
    +
    +$sql.= $db->plimit($limit+1, $offset);
    +
    +$resql = $db->query($sql);
    +if (! $resql)
    +{
    +	dol_print_error($db);
    +	exit;
    +}
    +
    +$num = $db->num_rows($resql);
    +
    +$arrayofselected=is_array($toselect)?$toselect:array();
    +
    +if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && ($search_all != '' || $search_cti != '') && $action != 'list')
    +{
    +	$obj = $db->fetch_object($resql);
    +	$id = $obj->rowid;
    +	header("Location: ".DOL_URL_ROOT.'/societe/card.php?socid='.$id);
    +	exit;
    +}
    +
    +$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas';
    +llxHeader('',$langs->trans("ThirdParty"),$help_url);
    +
    +$param='';
    +if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    +if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    +if ($search_all != '')     $param = "&sall=".urlencode($search_all);
    +if ($sall != '')           $param .= "&sall=".urlencode($sall);
    +if ($search_categ_cus > 0) $param.='&search_categ_cus='.urlencode($search_categ_cus);
    +if ($search_categ_sup > 0) $param.='&search_categ_sup='.urlencode($search_categ_sup);
    +if ($search_sale > 0)	   $param.='&search_sale='.urlencode($search_sale);
    +if ($search_id > 0)        $param.= "&search_id=".urlencode($search_id);
    +if ($search_nom != '')     $param.= "&search_nom=".urlencode($search_nom);
    +if ($search_alias != '')   $param.= "&search_alias=".urlencode($search_alias);
    +if ($search_town != '')    $param.= "&search_town=".urlencode($search_town);
    +if ($search_zip != '')     $param.= "&search_zip=".urlencode($search_zip);
    +if ($search_phone != '')   $param.= "&search_phone=".urlencode($search_phone);
    +if ($search_email != '')   $param.= "&search_email=".urlencode($search_email);
    +if ($search_url != '')     $param.= "&search_url=".urlencode($search_url);
    +if ($search_state != '')   $param.= "&search_state=".urlencode($search_state);
    +if ($search_country != '') $param.= "&search_country=".urlencode($search_country);
    +if ($search_customer_code != '') $param.= "&search_customer_code=".urlencode($search_customer_code);
    +if ($search_supplier_code != '') $param.= "&search_supplier_code=".urlencode($search_supplier_code);
    +if ($search_account_customer_code != '') $param.= "&search_account_customer_code=".urlencode($search_account_customer_code);
    +if ($search_account_supplier_code != '') $param.= "&search_account_supplier_code=".urlencode($search_account_supplier_code);
    +if ($search_barcode != '') $param.= "&search_barcode=".urlencode($search_barcode);
    +if ($search_idprof1 != '') $param.= '&search_idprof1='.urlencode($search_idprof1);
    +if ($search_idprof2 != '') $param.= '&search_idprof2='.urlencode($search_idprof2);
    +if ($search_idprof3 != '') $param.= '&search_idprof3='.urlencode($search_idprof3);
    +if ($search_idprof4 != '') $param.= '&search_idprof4='.urlencode($search_idprof4);
    +if ($search_idprof5 != '') $param.= '&search_idprof5='.urlencode($search_idprof5);
    +if ($search_idprof6 != '') $param.= '&search_idprof6='.urlencode($search_idprof6);
    +if ($search_vat != '')     $param.= '&search_vat='.urlencode($search_vat);
    +if ($search_type_thirdparty != '')    $param.='&search_type_thirdparty='.urlencode($search_type_thirdparty);
    +if ($search_type != '')    $param.='&search_type='.urlencode($search_type);
    +if ($optioncss != '')      $param.='&optioncss='.urlencode($optioncss);
    +if ($search_status != '')  $param.='&search_status='.urlencode($search_status);
    +if ($search_stcomm != '')  $param.='&search_stcomm='.urlencode($search_stcomm);
    +if ($search_level_from != '') $param.='&search_level_from='.urlencode($search_level_from);
    +if ($search_level_to != '')   $param.='&search_level_to='.urlencode($search_level_to);
    +if ($search_import_key != '') $param.='&search_import_key='.urlencode($search_import_key);
    +if ($type != '') $param.='&type='.urlencode($type);
    +// Add $param from extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
    +
    +// Show delete result message
    +if (GETPOST('delsoc'))
    +{
    +	setEventMessages($langs->trans("CompanyDeleted",GETPOST('delsoc')), null, 'mesgs');
    +}
    +
    +// List of mass actions available
    +$arrayofmassactions =  array(
    +	'presend'=>$langs->trans("SendByMail"),
    +//    'builddoc'=>$langs->trans("PDFMerge"),
    +);
    +//if($user->rights->societe->creer) $arrayofmassactions['createbills']=$langs->trans("CreateInvoiceForThisCustomer");
    +if ($user->rights->societe->supprimer) $arrayofmassactions['predelete']=$langs->trans("Delete");
    +if (GETPOST('nomassaction','int') || in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    +$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
    +
    +print '<form method="post" action="'.$_SERVER["PHP_SELF"].'" name="formfilter">';
    +if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
    +print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
    +print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
    +print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
    +print '<input type="hidden" name="page" value="'.$page.'">';
    +
    +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_companies', 0, '', '', $limit);
    +
    +$langs->load("other");
    +$textprofid=array();
    +foreach(array(1,2,3,4,5,6) as $key)
    +{
    +	$label=$langs->transnoentities("ProfId".$key.$mysoc->country_code);
    +	$textprofid[$key]='';
    +	if ($label != "ProfId".$key.$mysoc->country_code)
    +	{	// Get only text between ()
    +		if (preg_match('/\((.*)\)/i',$label,$reg)) $label=$reg[1];
    +		$textprofid[$key]=$langs->trans("ProfIdShortDesc",$key,$mysoc->country_code,$label);
    +	}
    +}
    +
    +$topicmail="Information";
    +$modelmail="thirdparty";
    +$objecttmp=new Societe($db);
    +$trackid='thi'.$object->id;
    +include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
    +
    +if ($search_all)
    +{
    +	foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
    +	print $langs->trans("FilterOnInto", $search_all) . join(', ',$fieldstosearchall);
    +}
    +
    +// Filter on categories
    +$moreforfilter='';
    +if (empty($type) || $type == 'c' || $type == 'p')
    +{
    +	if (! empty($conf->categorie->enabled))
    +	{
    +		require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
    +		$moreforfilter.='<div class="divsearchfield">';
    +	 	$moreforfilter.=$langs->trans('CustomersProspectsCategoriesShort').': ';
    +		$moreforfilter.=$formother->select_categories('customer', $search_categ_cus, 'search_categ_cus', 1, $langs->trans('CustomersProspectsCategoriesShort'));
    +	 	$moreforfilter.='</div>';
    +	}
    +}
    +if (empty($type) || $type == 'f')
    +{
    +	if (! empty($conf->categorie->enabled))
    +	{
    +		require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
    +		$moreforfilter.='<div class="divsearchfield">';
    +		$moreforfilter.=$langs->trans('SuppliersCategoriesShort').': ';
    +		$moreforfilter.=$formother->select_categories('supplier',$search_categ_sup,'search_categ_sup',1);
    +		$moreforfilter.='</div>';
    +	}
    +}
    +
    +// If the user can view prospects other than his'
    +if ($user->rights->societe->client->voir || $socid)
    +{
    + 	$moreforfilter.='<div class="divsearchfield">';
    + 	$moreforfilter.=$langs->trans('SalesRepresentatives'). ': ';
    +	$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user, 0, 1, 'maxwidth300');
    +	$moreforfilter.='</div>';
    +}
    +if ($moreforfilter)
    +{
    +	print '<div class="liste_titre liste_titre_bydiv centpercent">';
    +	print $moreforfilter;
    +	$parameters=array('type'=>$type);
    +	$reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
    +	print $hookmanager->resPrint;
    +	print '</div>';
    +}
    +
    +$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
    +$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
    +if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1);
    +
    +if (empty($arrayfields['customerorsupplier']['checked'])) print '<input type="hidden" name="type" value="'.$type.'">';
    +
    +print '<div class="div-table-responsive">';
    +print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
    +
    +// Fields title search
    +print '<tr class="liste_titre_filter">';
    +if (! empty($arrayfields['s.rowid']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" type="text" name="search_id" size="1" value="'.dol_escape_htmltag($search_id).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.nom']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	if (! empty($search_nom_only) && empty($search_nom)) $search_nom=$search_nom_only;
    +	print '<input class="flat searchstring" type="text" name="search_nom" size="8" value="'.dol_escape_htmltag($search_nom).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.name_alias']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" type="text" name="search_alias" size="8" value="'.dol_escape_htmltag($search_alias).'">';
    +	print '</td>';
    +}
    +// Barcode
    +if (! empty($arrayfields['s.barcode']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" type="text" name="search_barcode" size="6" value="'.dol_escape_htmltag($search_barcode).'">';
    +	print '</td>';
    +}
    +// Customer code
    +if (! empty($arrayfields['s.code_client']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="8" type="text" name="search_customer_code" value="'.dol_escape_htmltag($search_customer_code).'">';
    +	print '</td>';
    +}
    +// Supplier code
    +if (! empty($arrayfields['s.code_fournisseur']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="8" type="text" name="search_supplier_code" value="'.dol_escape_htmltag($search_supplier_code).'">';
    +	print '</td>';
    +}
    +// Account Customer code
    +if (! empty($arrayfields['s.code_compta']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="8" type="text" name="search_account_customer_code" value="'.dol_escape_htmltag($search_account_customer_code).'">';
    +	print '</td>';
    +}
    +// Account Supplier code
    +if (! empty($arrayfields['s.code_compta_fournisseur']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat" size="8" type="text" name="search_account_supplier_code" value="'.dol_escape_htmltag($search_account_supplier_code).'">';
    +	print '</td>';
    +}
    +// Town
    +if (! empty($arrayfields['s.town']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="6" type="text" name="search_town" value="'.dol_escape_htmltag($search_town).'">';
    +	print '</td>';
    +}
    +// Zip
    +if (! empty($arrayfields['s.zip']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_zip" value="'.dol_escape_htmltag($search_zip).'">';
    +	print '</td>';
    +}
    +// State
    +if (! empty($arrayfields['state.nom']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).'">';
    +	print '</td>';
    +}
    +// Region
    +if (! empty($arrayfields['region.nom']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_region" value="'.dol_escape_htmltag($search_region).'">';
    +	print '</td>';
    +}
    +// Country
    +if (! empty($arrayfields['country.code_iso']['checked']))
    +{
    +	print '<td class="liste_titre" align="center">';
    +	print $form->select_country($search_country,'search_country','',0,'maxwidth100');
    +	print '</td>';
    +}
    +// Company type
    +if (! empty($arrayfields['typent.code']['checked']))
    +{
    +	print '<td class="liste_titre maxwidthonsmartphone" align="center">';
    +	print $form->selectarray("search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 0, 0, 0, '', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?'ASC':$conf->global->SOCIETE_SORT_ON_TYPEENT));
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.email']['checked']))
    +{
    +	// Email
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchemail" size="4" type="text" name="search_email" value="'.dol_escape_htmltag($search_email).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.phone']['checked']))
    +{
    +	// Phone
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_phone" value="'.dol_escape_htmltag($search_phone).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.url']['checked']))
    +{
    +	// Url
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_url" value="'.dol_escape_htmltag($search_url).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.siren']['checked']))
    +{
    +	// IdProf1
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_idprof1" value="'.dol_escape_htmltag($search_idprof1).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.siret']['checked']))
    +{
    +	// IdProf2
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_idprof2" value="'.dol_escape_htmltag($search_idprof2).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.ape']['checked']))
    +{
    +	// IdProf3
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_idprof3" value="'.dol_escape_htmltag($search_idprof3).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.idprof4']['checked']))
    +{
    +	// IdProf4
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_idprof4" value="'.dol_escape_htmltag($search_idprof4).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.idprof5']['checked']))
    +{
    +	// IdProf5
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_idprof5" value="'.dol_escape_htmltag($search_idprof5).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.idprof6']['checked']))
    +{
    +	// IdProf6
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_idprof6" value="'.dol_escape_htmltag($search_idprof6).'">';
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.tva_intra']['checked']))
    +{
    +	// Vat number
    +	print '<td class="liste_titre">';
    +	print '<input class="flat searchstring" size="4" type="text" name="search_vat" value="'.dol_escape_htmltag($search_vat).'">';
    +	print '</td>';
    +}
    +
    +// Type (customer/prospect/supplier)
    +if (! empty($arrayfields['customerorsupplier']['checked']))
    +{
    +	print '<td class="liste_titre maxwidthonsmartphone" align="middle">';
    +	if ($type != '') print '<input type="hidden" name="type" value="'.$type.'">';
    +	print '<select class="flat" name="search_type">';
    +	print '<option value="-1"'.($search_type==''?' selected':'').'>&nbsp;</option>';
    +	if (empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) print '<option value="1,3"'.($search_type=='1,3'?' selected':'').'>'.$langs->trans('Customer').'</option>';
    +	if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) print '<option value="2,3"'.($search_type=='2,3'?' selected':'').'>'.$langs->trans('Prospect').'</option>';
    +	//if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) print '<option value="3"'.($search_type=='3'?' selected':'').'>'.$langs->trans('ProspectCustomer').'</option>';
    +	print '<option value="4"'.($search_type=='4'?' selected':'').'>'.$langs->trans('Supplier').'</option>';
    +	print '<option value="0"'.($search_type=='0'?' selected':'').'>'.$langs->trans('Others').'</option>';
    +	print '</select></td>';
    +}
    +if (! empty($arrayfields['s.fk_prospectlevel']['checked']))
    +{
    +	// Prospect level
    + 	print '<td class="liste_titre" align="center">';
    + 	$options_from = '<option value="">&nbsp;</option>';	 	// Generate in $options_from the list of each option sorted
    + 	foreach ($tab_level as $tab_level_sortorder => $tab_level_label)
    + 	{
    + 		$options_from .= '<option value="'.$tab_level_sortorder.'"'.($search_level_from == $tab_level_sortorder ? ' selected':'').'>';
    + 		$options_from .= $langs->trans($tab_level_label);
    + 		$options_from .= '</option>';
    + 	}
    + 	array_reverse($tab_level, true);	// Reverse the list
    + 	$options_to = '<option value="">&nbsp;</option>';		// Generate in $options_to the list of each option sorted in the reversed order
    + 	foreach ($tab_level as $tab_level_sortorder => $tab_level_label)
    + 	{
    + 		$options_to .= '<option value="'.$tab_level_sortorder.'"'.($search_level_to == $tab_level_sortorder ? ' selected':'').'>';
    + 		$options_to .= $langs->trans($tab_level_label);
    + 		$options_to .= '</option>';
    + 	}
    +
    +	// Print these two select
    + 	print $langs->trans("From").' <select class="flat" name="search_level_from">'.$options_from.'</select>';
    + 	print ' ';
    + 	print $langs->trans("to").' <select class="flat" name="search_level_to">'.$options_to.'</select>';
    +
    +	print '</td>';
    +}
    +
    +if (! empty($arrayfields['s.fk_stcomm']['checked']))
    +{
    +	// Prospect status
    +	print '<td class="liste_titre maxwidthonsmartphone" align="center">';
    +	$arraystcomm=array();
    +	foreach($prospectstatic->cacheprospectstatus as $key => $val)
    +	{
    +		$arraystcomm[$val['id']]=($langs->trans("StatusProspect".$val['id']) != "StatusProspect".$val['id'] ? $langs->trans("StatusProspect".$val['id']) : $val['label']);
    +	}
    +	print $form->selectarray('search_stcomm', $arraystcomm, $search_stcomm, -2);
    +	print '</td>';
    +}
    +// Extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
    +
    +// Fields from hook
    +$parameters=array('arrayfields'=>$arrayfields);
    +$reshook=$hookmanager->executeHooks('printFieldListOption',$parameters);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +// Date creation
    +if (! empty($arrayfields['s.datec']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '</td>';
    +}
    +// Date modification
    +if (! empty($arrayfields['s.tms']['checked']))
    +{
    +	print '<td class="liste_titre">';
    +	print '</td>';
    +}
    +// Status
    +if (! empty($arrayfields['s.status']['checked']))
    +{
    +	print '<td class="liste_titre maxwidthonsmartphone center">';
    +	print $form->selectarray('search_status', array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')), $search_status, 1);
    +	print '</td>';
    +}
    +if (! empty($arrayfields['s.import_key']['checked']))
    +{
    +	print '<td class="liste_titre center">';
    +	print '<input class="flat searchstring" type="text" name="search_import_key" size="3" value="'.dol_escape_htmltag($search_import_key).'">';
    +	print '</td>';
    +}
    +// Action column
    +print '<td class="liste_titre" align="right">';
    +$searchpicto=$form->showFilterButtons();
    +print $searchpicto;
    +print '</td>';
    +
    +print "</tr>\n";
    +
    +print '<tr class="liste_titre">';
    +if (! empty($arrayfields['s.rowid']['checked']))                   print_liste_field_titre($arrayfields['s.rowid']['label'], $_SERVER["PHP_SELF"],"s.rowid","",$param,"",$sortfield,$sortorder);
    +if (! empty($arrayfields['s.nom']['checked']))                     print_liste_field_titre($arrayfields['s.nom']['label'], $_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
    +if (! empty($arrayfields['s.name_alias']['checked']))              print_liste_field_titre($arrayfields['s.name_alias']['label'], $_SERVER["PHP_SELF"],"s.name_alias","",$param,"",$sortfield,$sortorder);
    +if (! empty($arrayfields['s.barcode']['checked']))                 print_liste_field_titre($arrayfields['s.barcode']['label'], $_SERVER["PHP_SELF"], "s.barcode",$param,'','',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.code_client']['checked']))             print_liste_field_titre($arrayfields['s.code_client']['label'],$_SERVER["PHP_SELF"],"s.code_client","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.code_fournisseur']['checked']))        print_liste_field_titre($arrayfields['s.code_fournisseur']['label'],$_SERVER["PHP_SELF"],"s.code_fournisseur","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.code_compta']['checked']))             print_liste_field_titre($arrayfields['s.code_compta']['label'],$_SERVER["PHP_SELF"],"s.code_compta","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.code_compta_fournisseur']['checked'])) print_liste_field_titre($arrayfields['s.code_compta_fournisseur']['label'],$_SERVER["PHP_SELF"],"s.code_compta_fournisseur","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.town']['checked']))           print_liste_field_titre($arrayfields['s.town']['label'],$_SERVER["PHP_SELF"],"s.town","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.zip']['checked']))            print_liste_field_titre($arrayfields['s.zip']['label'],$_SERVER["PHP_SELF"],"s.zip","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['state.nom']['checked']))        print_liste_field_titre($arrayfields['state.nom']['label'],$_SERVER["PHP_SELF"],"state.nom","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['region.nom']['checked']))       print_liste_field_titre($arrayfields['region.nom']['label'],$_SERVER["PHP_SELF"],"region.nom","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'],$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder);
    +if (! empty($arrayfields['typent.code']['checked']))      print_liste_field_titre($arrayfields['typent.code']['label'],$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.email']['checked']))          print_liste_field_titre($arrayfields['s.email']['label'],$_SERVER["PHP_SELF"],"s.email","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.phone']['checked']))          print_liste_field_titre($arrayfields['s.phone']['label'],$_SERVER["PHP_SELF"],"s.phone","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.url']['checked']))            print_liste_field_titre($arrayfields['s.url']['label'],$_SERVER["PHP_SELF"],"s.url","",$param,'',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.siren']['checked']))          print_liste_field_titre($form->textwithpicto($langs->trans("ProfId1Short"),$textprofid[1],1,0),$_SERVER["PHP_SELF"],"s.siren","",$param,'class="nowrap"',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.siret']['checked']))          print_liste_field_titre($form->textwithpicto($langs->trans("ProfId2Short"),$textprofid[2],1,0),$_SERVER["PHP_SELF"],"s.siret","",$param,'class="nowrap"',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.ape']['checked']))            print_liste_field_titre($form->textwithpicto($langs->trans("ProfId3Short"),$textprofid[3],1,0),$_SERVER["PHP_SELF"],"s.ape","",$param,'class="nowrap"',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.idprof4']['checked']))        print_liste_field_titre($form->textwithpicto($langs->trans("ProfId4Short"),$textprofid[4],1,0),$_SERVER["PHP_SELF"],"s.idprof4","",$param,'class="nowrap"',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.idprof5']['checked']))        print_liste_field_titre($form->textwithpicto($langs->trans("ProfId5Short"),$textprofid[4],1,0),$_SERVER["PHP_SELF"],"s.idprof5","",$param,'class="nowrap"',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.idprof6']['checked']))        print_liste_field_titre($form->textwithpicto($langs->trans("ProfId6Short"),$textprofid[4],1,0),$_SERVER["PHP_SELF"],"s.idprof6","",$param,'class="nowrap"',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.tva_intra']['checked']))      print_liste_field_titre($arrayfields['s.tva_intra']['label'],$_SERVER["PHP_SELF"],"s.tva_intra","",$param,'class="nowrap"',$sortfield,$sortorder);
    +if (! empty($arrayfields['customerorsupplier']['checked']))        print_liste_field_titre('');   // type of customer
    +if (! empty($arrayfields['s.fk_prospectlevel']['checked']))        print_liste_field_titre($arrayfields['s.fk_prospectlevel']['label'],$_SERVER["PHP_SELF"],"s.fk_prospectlevel","",$param,'align="center"',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.fk_stcomm']['checked']))               print_liste_field_titre($arrayfields['s.fk_stcomm']['label'],$_SERVER["PHP_SELF"],"s.fk_stcomm","",$param,'align="center"',$sortfield,$sortorder);
    +// Extra fields
    +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
    +// Hook fields
    +$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;
    +if (! empty($arrayfields['s.datec']['checked']))      print_liste_field_titre($arrayfields['s.datec']['label'],$_SERVER["PHP_SELF"],"s.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.tms']['checked']))        print_liste_field_titre($arrayfields['s.tms']['label'],$_SERVER["PHP_SELF"],"s.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.status']['checked']))     print_liste_field_titre($arrayfields['s.status']['label'],$_SERVER["PHP_SELF"],"s.status","",$param,'align="center"',$sortfield,$sortorder);
    +if (! empty($arrayfields['s.import_key']['checked'])) print_liste_field_titre($arrayfields['s.import_key']['label'],$_SERVER["PHP_SELF"],"s.import_key","",$param,'align="center"',$sortfield,$sortorder);
    +print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
    +print "</tr>\n";
    +
    +
    +$i = 0;
    +$totalarray=array();
    +while ($i < min($num, $limit))
    +{
    +	$obj = $db->fetch_object($resql);
    +
    +	$companystatic->id=$obj->rowid;
    +	$companystatic->name=$obj->name;
    +	$companystatic->name_alias=$obj->name_alias;
    +	$companystatic->logo=$obj->logo;
    +	$companystatic->canvas=$obj->canvas;
    +	$companystatic->client=$obj->client;
    +	$companystatic->status=$obj->status;
    +	$companystatic->email=$obj->email;
    +	$companystatic->fournisseur=$obj->fournisseur;
    +	$companystatic->code_client=$obj->code_client;
    +	$companystatic->code_fournisseur=$obj->code_fournisseur;
    +
    +	$companystatic->code_compta_client=$obj->code_compta;
    +	$companystatic->code_compta_fournisseur=$obj->code_compta_fournisseur;
    +
    +   	$companystatic->fk_prospectlevel=$obj->fk_prospectlevel;
    +
    +	print '<tr class="oddeven" onclick="location.href=\'customers.php?action=change&idcustomer='.$obj->rowid.'&place='.$place.'\'">';
    +	if (! empty($arrayfields['s.rowid']['checked']))
    +	{
    +		print '<td class="tdoverflowmax50">';
    +		print $obj->rowid;
    +		print "</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.nom']['checked']))
    +	{
    +		$savalias = $obj->name_alias;
    +		if (! empty($arrayfields['s.name_alias']['checked'])) $companystatic->name_alias='';
    +		print '<td class="tdoverflowmax200">';
    +		print $obj->name;
    +		print "</td>\n";
    +        if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.name_alias']['checked']))
    +	{
    +		print '<td class="tdoverflowmax200">';
    +		print $companystatic->name_alias;
    +		print "</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Barcode
    +	if (! empty($arrayfields['s.barcode']['checked']))
    +	{
    +		print '<td>'.$obj->barcode.'</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Customer code
    +	if (! empty($arrayfields['s.code_client']['checked']))
    +	{
    +		print '<td>'.$obj->code_client.'</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Supplier code
    +	if (! empty($arrayfields['s.code_fournisseur']['checked']))
    +	{
    +		print '<td>'.$obj->code_fournisseur.'</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Account customer code
    +	if (! empty($arrayfields['s.code_compta']['checked']))
    +	{
    +		print '<td>'.$obj->code_compta.'</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Account supplier code
    +	if (! empty($arrayfields['s.code_compta_fournisseur']['checked']))
    +	{
    +		print '<td>'.$obj->code_compta_fournisseur.'</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Town
    +	if (! empty($arrayfields['s.town']['checked']))
    +	{
    +		print "<td>".$obj->town."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Zip
    +	if (! empty($arrayfields['s.zip']['checked']))
    +	{
    +		print "<td>".$obj->zip."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// State
    +	if (! empty($arrayfields['state.nom']['checked']))
    +	{
    +		print "<td>".$obj->state_name."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Region
    +	if (! empty($arrayfields['region.nom']['checked']))
    +	{
    +		print "<td>".$obj->region_name."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Country
    +	if (! empty($arrayfields['country.code_iso']['checked']))
    +	{
    +		print '<td align="center">';
    +		$tmparray=getCountry($obj->fk_pays,'all');
    +		print $tmparray['label'];
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Type ent
    +	if (! empty($arrayfields['typent.code']['checked']))
    +	{
    +		print '<td align="center">';
    +		if (! is_array($typenArray) || count($typenArray)==0) $typenArray = $formcompany->typent_array(1);
    +		print $typenArray[$obj->typent_code];
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.email']['checked']))
    +	{
    +		print "<td>".$obj->email."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.phone']['checked']))
    +	{
    +		print "<td>".$obj->phone."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.url']['checked']))
    +	{
    +		print "<td>".$obj->url."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.siren']['checked']))
    +	{
    +		print "<td>".$obj->idprof1."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.siret']['checked']))
    +	{
    +		print "<td>".$obj->idprof2."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.ape']['checked']))
    +	{
    +		print "<td>".$obj->idprof3."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.idprof4']['checked']))
    +	{
    +		print "<td>".$obj->idprof4."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.idprof5']['checked']))
    +	{
    +		print "<td>".$obj->idprof5."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.idprof6']['checked']))
    +	{
    +		print "<td>".$obj->idprof6."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.tva_intra']['checked']))
    +	{
    +		print "<td>".$obj->tva_intra."</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Type
    +	if (! empty($arrayfields['customerorsupplier']['checked']))
    +	{
    +		print '<td align="center">';
    +		$s='';
    +		if (($obj->client==1 || $obj->client==3) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))
    +		{
    +	  		$companystatic->name=$langs->trans("Customer");
    +	  		$companystatic->name_alias='';
    +			$s.=$companystatic->getNomUrl(0,'customer',0,1);
    +		}
    +		if (($obj->client==2 || $obj->client==3) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS))
    +		{
    +			if ($s) $s.=" / ";
    +			$companystatic->name=$langs->trans("Prospect");
    +	  		$companystatic->name_alias='';
    +			$s.=$companystatic->getNomUrl(0,'prospect',0,1);
    +		}
    +		if (! empty($conf->fournisseur->enabled) && $obj->fournisseur)
    +		{
    +			if ($s) $s.=" / ";
    +			$companystatic->name=$langs->trans("Supplier");
    +	  		$companystatic->name_alias='';
    +			$s.=$companystatic->getNomUrl(0,'supplier',0,1);
    +		}
    +		print $s;
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +
    +	if (! empty($arrayfields['s.fk_prospectlevel']['checked']))
    +	{
    +		// Prospect level
    +		print '<td align="center">';
    +		print $companystatic->getLibProspLevel();
    +		print "</td>";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +
    +	if (! empty($arrayfields['s.fk_stcomm']['checked']))
    +	{
    +		// Prospect status
    +		print '<td align="center" class="nowrap"><div class="nowrap">';
    +		print '<div class="inline-block">'.$companystatic->LibProspCommStatut($obj->stcomm_id,2,$prospectstatic->cacheprospectstatus[$obj->stcomm_id]['label']);
    +		print '</div> - <div class="inline-block">';
    +		foreach($prospectstatic->cacheprospectstatus as $key => $val)
    +		{
    +			$titlealt='default';
    +			if (! empty($val['code']) && ! in_array($val['code'], array('ST_NO', 'ST_NEVER', 'ST_TODO', 'ST_PEND', 'ST_DONE'))) $titlealt=$val['label'];
    +			if ($obj->stcomm_id != $val['id']) print '<a class="pictosubstatus" href="'.$_SERVER["PHP_SELF"].'?stcommsocid='.$obj->rowid.'&stcomm='.$val['code'].'&action=setstcomm'.$param.($page?'&page='.urlencode($page):'').'">'.img_action($titlealt,$val['code']).'</a>';
    +		}
    +		print '</div></div></td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Extra fields
    +	include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_print_fields.tpl.php';
    +	// Fields from hook
    +	$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
    +	$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters);    // Note that $action and $object may have been modified by hook
    +	print $hookmanager->resPrint;
    +	// Date creation
    +	if (! empty($arrayfields['s.datec']['checked']))
    +	{
    +		print '<td align="center" class="nowrap">';
    +		print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Date modification
    +	if (! empty($arrayfields['s.tms']['checked']))
    +	{
    +		print '<td align="center" class="nowrap">';
    +		print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
    +		print '</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	// Status
    +	if (! empty($arrayfields['s.status']['checked']))
    +	{
    +		print '<td align="center" class="nowrap">'.$companystatic->getLibStatut(3).'</td>';
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +	if (! empty($arrayfields['s.import_key']['checked']))
    +	{
    +		print '<td class="tdoverflowmax100">';
    +		print $obj->import_key;
    +		print "</td>\n";
    +		if (! $i) $totalarray['nbfield']++;
    +	}
    +
    +	// Action column
    +	print '<td class="nowrap" align="center">';
    +	if ($massactionbutton || $massaction)   // 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($obj->rowid, $arrayofselected)) $selected=1;
    +		print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>';
    +	}
    +	print '</td>';
    +	if (! $i) $totalarray['nbfield']++;
    +
    +	print '</tr>'."\n";
    +	$i++;
    +}
    +
    +$db->free($resql);
    +
    +$parameters=array('arrayfields'=>$arrayfields, 'sql'=>$sql);
    +$reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters);    // Note that $action and $object may have been modified by hook
    +print $hookmanager->resPrint;
    +
    +print "</table>";
    +print "</div>";
    +
    +print '</form>';
    +
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/takepos/dev/img/README.md b/htdocs/takepos/dev/img/README.md
    new file mode 100644
    index 00000000000..5cd4c76d010
    --- /dev/null
    +++ b/htdocs/takepos/dev/img/README.md
    @@ -0,0 +1,53 @@
    +Source images
    +=============
    +
    +Used to generate icons and publication assets.
    +
    +Icons
    +-----
    +
    +### Dolibarr
    +
    +These resides in the [/img](../../img) directory.
    +
    +#### Small
    +
    +Required.
    +Name must begin by ```object_```.
    +
    +- Sample:  ![object_takepos.png](../../img/object_takepos.png) [object_takepos.png](../../img/object_takepos.png)
    +- Size: 14×14 pixels
    +- Type: PNG
    +
    +#### Large
    +
    +Optional.
    +
    +- Sample: ![takepos.png](../../img/takepos.png) [takepos.png](../../img/takepos.png)
    +- Size: 32×32 pixels
    +- Type: PNG
    +
    +### Dolistore
    +
    +Designed to fit a 512×512 icon + publisher branding.
    +
    +- Size: 704×704
    +- Type: PNG
    +
    +Export to 512×512
    +
    +### Transifex
    +
    +- Size: 96×96
    +- Type: PNG
    +
    +### Others
    +
    +To be on the safe side, you may also want to generate all popular sizes:
    +- 16×16
    +- 32×32
    +- 48×48
    +- 64×64
    +- 128×128
    +- 256×256
    +- 512×512
    diff --git a/htdocs/takepos/dev/img/gfdl-129x44.png b/htdocs/takepos/dev/img/gfdl-129x44.png
    new file mode 100644
    index 00000000000..f2bacfd179a
    Binary files /dev/null and b/htdocs/takepos/dev/img/gfdl-129x44.png differ
    diff --git a/htdocs/takepos/dev/img/gfdl-66x23.png b/htdocs/takepos/dev/img/gfdl-66x23.png
    new file mode 100644
    index 00000000000..b43479bf3c8
    Binary files /dev/null and b/htdocs/takepos/dev/img/gfdl-66x23.png differ
    diff --git a/htdocs/takepos/dev/img/gfdl-logo.svg b/htdocs/takepos/dev/img/gfdl-logo.svg
    new file mode 100644
    index 00000000000..a0daca0ead8
    --- /dev/null
    +++ b/htdocs/takepos/dev/img/gfdl-logo.svg
    @@ -0,0 +1,110 @@
    +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
    +<!-- Created with Inkscape (http://www.inkscape.org/) -->
    +
    +<svg
    +   xmlns:dc="http://purl.org/dc/elements/1.1/"
    +   xmlns:cc="http://creativecommons.org/ns#"
    +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    +   xmlns:svg="http://www.w3.org/2000/svg"
    +   xmlns="http://www.w3.org/2000/svg"
    +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    +   width="110.72372"
    +   height="37.900333"
    +   id="svg3330"
    +   version="1.1"
    +   inkscape:version="0.48.0 r9654"
    +   sodipodi:docname="New document 4">
    +  <defs
    +     id="defs3332" />
    +  <sodipodi:namedview
    +     id="base"
    +     pagecolor="#ffffff"
    +     bordercolor="#666666"
    +     borderopacity="1.0"
    +     inkscape:pageopacity="0.0"
    +     inkscape:pageshadow="2"
    +     inkscape:zoom="3.959798"
    +     inkscape:cx="51.755214"
    +     inkscape:cy="19.316583"
    +     inkscape:document-units="px"
    +     inkscape:current-layer="layer1"
    +     showgrid="false"
    +     fit-margin-top="0"
    +     fit-margin-left="0"
    +     fit-margin-right="0"
    +     fit-margin-bottom="0"
    +     inkscape:window-width="1680"
    +     inkscape:window-height="950"
    +     inkscape:window-x="0"
    +     inkscape:window-y="27"
    +     inkscape:window-maximized="1" />
    +  <metadata
    +     id="metadata3335">
    +    <rdf:RDF>
    +      <cc:Work
    +         rdf:about="">
    +        <dc:format>image/svg+xml</dc:format>
    +        <dc:type
    +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
    +        <dc:title></dc:title>
    +      </cc:Work>
    +    </rdf:RDF>
    +  </metadata>
    +  <g
    +     inkscape:label="Layer 1"
    +     inkscape:groupmode="layer"
    +     id="layer1"
    +     transform="translate(-319.64995,-513.41138)">
    +    <g
    +       id="g5424"
    +       transform="matrix(1.1204236,0,0,1.1204236,378.23897,-788.71491)">
    +      <path
    +         sodipodi:nodetypes="cccccc"
    +         inkscape:connector-curvature="0"
    +         id="rect6744"
    +         d="m -51.39745,1163.0948 85,0 0,29.5252 -85,0 2,-14.7626 z"
    +         style="fill:#f5efbc;fill-opacity:1;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0" />
    +      <text
    +         transform="scale(0.90245956,1.1080829)"
    +         sodipodi:linespacing="125%"
    +         id="text6752-6"
    +         y="1071.2108"
    +         x="-15.68348"
    +         style="font-size:24.31293869px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Bold"
    +         xml:space="preserve"><tspan
    +           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:URW Palladio L;-inkscape-font-specification:URW Palladio L Bold"
    +           y="1071.2108"
    +           x="-15.68348"
    +           id="tspan6754-4"
    +           sodipodi:role="line">GFDL</tspan></text>
    +      <path
    +         inkscape:connector-curvature="0"
    +         id="path7064-6"
    +         d="m 19.61576,1166.8577 0,24 0.1875,0 c -0.12127,0.1989 -0.1875,0.4164 -0.1875,0.625 0,2.002 5.8203,3.625 13,3.625 7.1797,0 13,-1.623 13,-3.625 0,-0.2086 -0.0662,-0.4261 -0.1875,-0.625 l 0.1875,0 0,-24 -26,0 z"
    +         style="color:#000000;fill:#f5efbc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
    +      <path
    +         transform="translate(-321.63424,901.70446)"
    +         d="m 367.25,264.98718 c 0,2.00203 -5.8203,3.625 -13,3.625 -7.1797,0 -13,-1.62297 -13,-3.625 0,-2.00203 5.8203,-3.625 13,-3.625 7.1797,0 13,1.62297 13,3.625 z"
    +         sodipodi:ry="3.625"
    +         sodipodi:rx="13"
    +         sodipodi:cy="264.98718"
    +         sodipodi:cx="354.25"
    +         id="path7064"
    +         style="color:#000000;fill:#f5efbc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.79999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
    +         sodipodi:type="arc" />
    +      <path
    +         sodipodi:nodetypes="cccccc"
    +         inkscape:connector-curvature="0"
    +         id="path7104"
    +         d="m 45.06778,1167.3815 c -2.44864,5.5993 -9.9067,7.192 -21.52831,5.7955 l 5.7779,9.7599 -6.02275,7.2171 c 7.75095,3.1192 17.18643,1.5723 22.07112,-0.1842 z"
    +         style="fill:#2e439b;fill-opacity:1;stroke:#000000;stroke-width:1.39999986;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
    +      <path
    +         sodipodi:nodetypes="ccscc"
    +         inkscape:connector-curvature="0"
    +         id="path7106"
    +         d="m 34.45935,1165.7653 c -3.4695,-0.1017 -8.01646,0.018 -10.47747,0.7778 1.2102,0.9782 6.11198,1.5627 9.94714,1.2348 3.20297,-0.2738 6.08198,-0.1311 7.93857,-1.1503 -0.70667,-1.1077 -3.93837,-3.3774 -7.91865,-3.2613"
    +         style="fill:none;stroke:#000000;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
    +    </g>
    +  </g>
    +</svg>
    diff --git a/htdocs/takepos/dev/img/gpl-v3-logo.svg b/htdocs/takepos/dev/img/gpl-v3-logo.svg
    new file mode 100644
    index 00000000000..6754c994bda
    --- /dev/null
    +++ b/htdocs/takepos/dev/img/gpl-v3-logo.svg
    @@ -0,0 +1,389 @@
    +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
    +<!-- Created with Inkscape (http://www.inkscape.org/) -->
    +<svg
    +   xmlns:dc="http://purl.org/dc/elements/1.1/"
    +   xmlns:cc="http://creativecommons.org/ns#"
    +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    +   xmlns:svg="http://www.w3.org/2000/svg"
    +   xmlns="http://www.w3.org/2000/svg"
    +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    +   width="744.09448819"
    +   height="1052.3622047"
    +   id="svg1341"
    +   sodipodi:version="0.32"
    +   inkscape:version="0.46"
    +   sodipodi:docbase="/home/johns/graphics/logos/gplv3"
    +   sodipodi:docname="gpl-v3-logo (copy).svg"
    +   inkscape:output_extension="org.inkscape.output.svg.inkscape">
    +  <defs
    +     id="defs1343">
    +    <inkscape:perspective
    +       sodipodi:type="inkscape:persp3d"
    +       inkscape:vp_x="0 : 526.18109 : 1"
    +       inkscape:vp_y="0 : 1000 : 0"
    +       inkscape:vp_z="744.09448 : 526.18109 : 1"
    +       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
    +       id="perspective79" />
    +  </defs>
    +  <sodipodi:namedview
    +     id="base"
    +     pagecolor="#ffffff"
    +     bordercolor="#666666"
    +     borderopacity="1.0"
    +     inkscape:pageopacity="0.0"
    +     inkscape:pageshadow="2"
    +     inkscape:zoom="0.56729519"
    +     inkscape:cx="372.04724"
    +     inkscape:cy="526.18109"
    +     inkscape:document-units="px"
    +     inkscape:current-layer="layer1"
    +     inkscape:window-width="1439"
    +     inkscape:window-height="825"
    +     inkscape:window-x="1"
    +     inkscape:window-y="49"
    +     showgrid="false" />
    +  <metadata
    +     id="metadata1346">
    +    <rdf:RDF>
    +      <cc:Work
    +         rdf:about="">
    +        <dc:format>image/svg+xml</dc:format>
    +        <dc:type
    +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
    +      </cc:Work>
    +    </rdf:RDF>
    +  </metadata>
    +  <g
    +     inkscape:label="Layer 1"
    +     inkscape:groupmode="layer"
    +     id="layer1">
    +    <g
    +       id="g3413"
    +       transform="translate(1.7627461,148.07106)">
    +      <g
    +         id="g68"
    +         style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,352.86817,563.90874)">
    +        <path
    +           style="fill:#000000;fill-opacity:0.94117647"
    +           id="path70"
    +           d="M 3.86,0 C 3.86,0 3.85,0 3.85,0 C 2.91,0 2.08,0.31 1.3,0.94 C 0.72,1.4 0.32,2.02 0,2.71 C 0,2.71 0.04,2.71 0.04,2.71 C 0.36,2.02 0.76,1.4 1.33,0.94 C 2.11,0.31 2.94,0.01 3.86,0 z" />
    +      </g>
    +      <path
    +         style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         d="M 92.93948,358.4642 C 92.9395,358.46419 33.62975,617.23158 33.62975,617.23158 C 33.6468,617.23158 33.64894,617.23158 33.68304,617.23158 C 33.68304,617.23158 308.06385,617.23158 308.06385,617.23158 C 308.06386,617.23158 450.76958,617.23158 450.76958,617.23158 C 433.76851,615.74805 420.34631,609.77976 412.34882,598.90046 C 410.86529,596.88827 409.63964,594.72053 408.56535,592.45258 C 407.88328,590.78148 407.24167,589.09543 406.59368,587.39021 C 404.88844,581.9676 404.20851,575.9503 404.51544,569.53867 C 405.36806,551.66793 413.75349,530.41065 428.28198,508.15069 C 443.71423,484.49413 466.08035,459.6998 493.77314,436.69125 C 499.98013,431.53806 506.39817,426.44926 513.11675,421.50411 C 521.42116,415.39432 529.78956,409.7675 538.1622,404.50518 C 569.00965,385.08441 599.78037,371.49508 627.04687,364.59234 C 600.9911,373.09287 571.71882,387.52374 542.79826,407.1696 C 541.7581,407.87215 540.73068,408.59175 539.70754,409.30112 C 523.66141,420.41917 509.1244,432.22698 496.43756,444.15158 C 455.61453,482.53615 434.0371,522.31042 443.84212,545.61227 C 444.54128,547.21517 445.37468,548.74562 446.34667,550.19506 C 456.88492,565.69553 483.00254,568.37485 516.10089,560.05337 C 518.35178,559.49062 520.60267,558.85333 522.92177,558.18829 C 533.49415,555.13592 544.71877,551.01356 556.28017,545.93201 C 559.05966,544.70424 561.86904,543.44238 564.6997,542.09525 C 564.98958,541.95884 565.26243,541.82242 565.55231,541.66895 C 602.04404,523.53733 630.08856,502.67437 636.15915,490.13928 C 637.48923,487.41266 637.80895,485.08798 636.90518,483.26511 C 632.57394,474.48323 602.26573,480.41611 565.55231,496.32071 C 562.60228,497.59961 559.61814,498.91563 556.5999,500.31732 C 559.05542,498.03746 561.61113,495.74904 564.2201,493.49643 C 568.38085,489.91205 572.68866,486.40698 577.2757,482.94539 C 584.4547,477.50912 591.71255,472.59468 598.85743,468.23785 C 632.31386,442.99718 649.22753,419.12063 645.69773,410.26032 C 645.03268,408.59089 643.61736,407.44243 641.43467,406.74329 C 634.46029,404.52482 621.73084,407.17258 606.26448,413.51089 C 593.50944,418.74253 578.85944,426.50169 564.00696,436.15837 C 564.00696,436.15837 561.98201,437.49057 561.98201,437.49057 C 561.98203,437.49057 561.60899,437.70371 561.60899,437.70371 C 561.60901,437.70373 554.46838,442.44636 554.46838,442.44636 C 554.46836,442.44635 558.57157,434.93273 558.57157,434.93273 C 564.65922,423.78909 574.57507,412.16206 586.92087,401.36119 C 595.9756,393.4643 606.3199,386.02357 617.455,379.51303 C 621.66691,377.0473 625.8724,374.75717 630.08429,372.69215 C 634.39851,370.58449 638.71484,368.7113 642.92675,367.0436 C 655.16357,362.20425 666.84456,359.26379 677.03117,358.4642 C 676.1035,358.46419 648.41543,358.4642 648.41543,358.4642 C 648.41544,358.46419 551.96384,358.4642 551.96384,358.4642 C 551.96385,358.46419 126.67089,358.4642 126.67089,358.4642 C 126.67089,358.46419 92.93948,358.4642 92.93948,358.4642 z M 398.92019,358.83722 C 397.2491,384.34222 402.19422,421.69937 413.41458,463.17546 C 415.40967,470.55567 417.5817,478.06631 419.96902,485.66308 C 421.45258,490.35412 422.98301,494.97189 424.5518,499.518 C 423.631,500.87196 422.70376,502.21737 421.8341,503.5679 C 407.83425,525.02298 399.6513,545.29894 397.58799,562.93093 C 391.67085,543.11625 387.21598,521.41263 384.69225,498.39895 C 383.97606,491.80485 383.41546,485.28453 383.04031,478.8422 C 380.27784,432.04581 386.3868,389.625 398.92019,358.83722 z M 119.53029,392.03576 C 119.84963,392.02822 120.16443,392.03576 120.48947,392.03576 C 120.48947,392.03574 183.52938,392.03576 183.52938,392.03576 C 188.91789,392.03574 193.08502,393.04567 196.0521,395.07318 C 199.00212,397.11264 200.10841,399.75061 199.40925,402.95983 C 199.40927,402.95985 191.89562,436.90439 191.89562,436.90439 C 191.89562,436.90442 169.67446,436.90439 169.67446,436.90439 C 169.67448,436.90442 176.97494,403.86573 176.97494,403.86573 C 176.97492,403.86573 121.34209,403.86573 121.34209,403.86573 C 121.34207,403.86573 101.25244,494.66878 101.25244,494.66878 C 101.25246,494.66878 94.00525,527.54759 94.00525,527.54759 C 94.00525,527.54762 149.58482,527.54759 149.58482,527.54759 C 149.58482,527.54762 149.63811,527.33443 149.63811,527.33443 C 149.63811,527.33445 160.77533,477.03039 160.77533,477.03039 C 160.77533,477.03037 134.66413,477.03039 134.66413,477.03039 C 134.66413,477.03037 137.16867,465.68001 137.16867,465.68001 C 137.16866,465.67999 185.50105,465.68001 185.50105,465.68001 C 185.50105,465.67999 171.64612,528.45349 171.64612,528.45349 C 171.45855,529.34701 171.1303,530.15657 170.68693,530.95802 C 169.54444,533.03839 167.55146,534.82036 164.77195,536.28685 C 160.91817,538.31608 156.30552,539.32427 150.91702,539.32427 C 150.91702,539.32429 87.9304,539.32427 87.9304,539.32427 C 82.54188,539.32429 78.37476,538.31606 75.40768,536.28685 C 72.45767,534.25765 71.33433,531.66612 72.05053,528.45349 C 72.05054,528.45347 99.81366,402.95983 99.81366,402.95983 C 100.52984,399.75062 102.76371,397.11262 106.63455,395.07318 C 106.77097,394.99987 106.92444,394.98323 107.06085,394.91332 C 110.59387,393.14362 114.74022,392.14889 119.53029,392.03576 z M 218.32657,392.03576 C 218.32655,392.03574 297.67265,392.03576 297.67265,392.03576 C 302.99296,392.03574 307.175,393.04567 310.14208,395.07318 C 313.12625,397.11264 314.26874,399.75061 313.55253,402.95983 C 313.55255,402.95985 298.73842,469.88978 298.73842,469.88978 C 298.0393,473.07852 295.75215,475.68028 291.86425,477.72314 C 287.97635,479.7728 283.39995,480.81385 278.06261,480.81385 C 278.06259,480.81385 220.40481,480.81385 220.40481,480.81385 C 220.40481,480.81385 209.26758,531.0646 209.26758,531.0646 C 209.26758,531.06462 207.45578,539.32427 207.45578,539.32427 C 207.45579,539.32429 185.7142,539.32427 185.7142,539.32427 C 185.7142,539.32429 187.36613,531.86393 187.36613,531.86393 C 187.36613,531.86395 218.32657,392.03576 218.32657,392.03576 z M 327.94034,392.03576 C 327.94033,392.03574 349.68192,392.03576 349.68192,392.03576 C 349.68194,392.03574 325.06278,503.24817 325.06278,503.24817 C 325.0628,503.24819 319.68068,527.54759 319.68068,527.54759 C 319.68068,527.54762 371.68994,527.54759 371.68994,527.54759 C 372.23562,531.53613 372.87293,535.45341 373.55502,539.32427 C 373.555,539.32429 295.32797,539.32427 295.32797,539.32427 C 295.32799,539.32429 301.5094,511.40126 301.5094,511.40126 C 301.50942,511.40126 327.94034,392.03576 327.94034,392.03576 z M 237.45702,403.86573 C 237.45704,403.86573 223.01592,468.98387 223.01592,468.98387 C 223.01592,468.98385 277.21,468.98387 277.21,468.98387 C 277.20999,468.98385 291.5978,403.86573 291.5978,403.86573 C 291.59782,403.86573 237.45702,403.86573 237.45702,403.86573 z M 191.89562,549.5556 C 192.10829,549.54845 192.32086,549.5556 192.53509,549.5556 C 195.05882,549.55562 197.26281,549.99896 199.03624,550.83451 C 200.92904,551.72122 202.28256,553.03851 203.03286,554.77784 C 203.76611,556.46603 203.95794,558.38225 203.56573,560.47968 C 203.56573,560.47969 203.40588,561.27901 203.40588,561.27901 C 203.40589,561.27898 197.17116,561.27901 197.17116,561.27901 C 197.17114,561.27898 197.22445,560.53296 197.22445,560.53296 C 197.38563,559.06753 197.20396,557.91517 196.63827,557.12253 C 196.56455,557.02312 196.45774,556.8919 196.37183,556.8028 C 196.23115,556.65917 196.01985,556.495 195.83896,556.37649 C 194.96658,555.82699 193.60193,555.52387 191.84234,555.52387 C 189.50619,555.52389 187.76047,555.93099 186.56682,556.74951 C 185.40726,557.55097 184.67402,558.44621 184.43529,559.52049 C 184.19654,560.61183 184.58875,561.18521 184.8616,561.49215 C 184.8701,561.50064 184.90453,561.53592 184.91487,561.54544 C 185.26039,561.83989 186.46023,562.5302 190.1904,563.41052 C 193.56672,564.22903 195.80272,564.96441 197.06458,565.59534 C 198.97445,566.5673 200.30877,567.82704 201.00792,569.3788 C 201.70703,570.91352 201.86052,572.71037 201.43422,574.65433 C 201.00792,576.54712 200.04233,578.29285 198.60994,579.92987 C 197.19462,581.56687 195.39347,582.86284 193.22783,583.7666 C 191.07923,584.65332 188.72179,585.15209 186.30037,585.15209 C 183.23097,585.15208 180.76694,584.68742 178.84003,583.7666 C 176.82786,582.81169 175.37629,581.3047 174.52369,579.34369 C 173.70518,577.43383 173.53039,575.26607 173.9908,572.89583 C 173.9908,572.8958 174.15067,572.14978 174.15067,572.14978 C 174.15067,572.14978 180.27881,572.14978 180.27881,572.14978 C 180.27881,572.14978 180.22552,572.89583 180.22552,572.89583 C 180.07204,574.31115 180.22339,575.45365 180.59854,576.30626 C 180.95663,577.12479 181.63873,577.80259 182.73006,578.33122 C 183.8896,578.89392 185.33904,579.18382 186.99311,579.18382 C 188.47666,579.18381 189.83232,578.93443 191.04302,578.49109 C 192.23667,578.06479 193.1852,577.50205 193.86729,576.78586 C 194.53231,576.06964 194.9224,575.31298 195.09292,574.49446 C 195.26344,573.76122 195.22294,573.14096 194.93305,572.62938 C 194.60906,572.08374 193.96747,571.59985 192.9614,571.1906 C 192.9614,571.19059 187.73914,569.64524 187.73914,569.64524 C 184.82322,568.91201 182.86009,568.21286 181.71759,567.51372 C 180.16582,566.59291 179.04678,565.41203 178.467,563.9967 C 177.88723,562.59839 177.82542,561.04879 178.20057,559.36062 C 178.59277,557.55309 179.46456,555.83295 180.81168,554.29825 C 182.17588,552.74648 183.9365,551.5294 186.03393,550.72794 C 187.88836,550.03254 189.83989,549.62473 191.89562,549.5556 z M 247.84822,549.66218 C 248.18547,549.63591 248.50258,549.66218 248.86069,549.66218 C 248.8607,549.66218 252.69744,550.08848 252.69744,550.08848 C 252.69743,550.08848 253.97635,550.19506 253.97635,550.19506 C 253.97637,550.19507 252.11127,554.9377 252.11127,554.9377 C 252.11126,554.93772 251.73825,555.68374 251.73825,555.68374 C 251.73825,555.68372 248.80741,555.4173 248.80741,555.4173 C 247.942,555.4173 247.30628,555.55082 246.88903,555.8436 C 246.86132,555.86453 246.80803,555.9278 246.78245,555.95018 C 246.72655,555.99922 246.63254,556.08476 246.5693,556.16334 C 246.31271,556.49985 246.00018,557.1012 245.76998,558.18829 C 245.76996,558.18829 245.65914,558.64869 245.55683,559.0409 C 246.90396,559.04091 250.1396,559.0409 250.1396,559.0409 C 250.1396,559.04091 248.96727,564.31642 248.96727,564.31642 C 248.96727,564.31641 245.61651,564.31642 244.49107,564.31642 C 244.15001,565.85111 239.96157,584.61922 239.96157,584.61922 C 239.96155,584.6192 233.78014,584.61922 233.78014,584.61922 C 233.78012,584.6192 237.79807,566.58437 238.30964,564.31642 C 237.26943,564.31641 234.73933,564.31642 234.73933,564.31642 C 234.73933,564.31641 235.91167,559.0409 235.91167,559.0409 C 235.91168,559.04091 238.45671,559.0409 239.42868,559.0409 C 239.5992,558.30766 239.85498,557.38896 239.85498,557.38896 C 240.23014,555.68374 240.62233,554.45811 241.13389,553.6055 C 241.83306,552.42891 242.81995,551.44413 244.06476,550.72794 C 245.09003,550.13219 246.38674,549.776 247.84822,549.66218 z M 262.60904,549.92862 C 262.60902,549.92861 260.99334,557.19926 260.58409,559.0409 C 261.77773,559.04091 264.5807,559.0409 264.5807,559.0409 C 264.5807,559.04091 263.40837,564.31642 263.40837,564.31642 C 263.40835,564.31641 260.46898,564.31642 259.41175,564.31642 C 259.08774,565.78289 256.53419,577.15888 256.53419,577.15888 C 256.53421,577.15886 256.32103,578.52519 256.32103,578.91739 C 256.32131,578.93044 256.31997,578.96107 256.32103,578.97067 C 256.32187,578.9747 256.31983,579.02064 256.32103,579.02396 C 256.32267,579.02665 256.37218,579.02182 256.37431,579.02396 C 256.37431,579.02394 257.01378,579.07725 257.01378,579.07725 C 257.01378,579.07725 259.94463,578.8641 259.94463,578.8641 C 259.94463,578.8641 259.6249,583.60674 259.6249,583.60674 C 259.62492,583.60674 259.6782,584.45935 259.6782,584.45935 C 259.67818,584.45933 255.46842,584.93895 255.46842,584.93895 C 253.79732,584.93893 252.57167,584.66612 251.68496,584.08635 C 250.74711,583.47243 250.20142,582.65821 249.97974,581.63509 C 249.94563,581.4475 249.87316,581.17467 249.87316,580.78248 C 249.87316,580.01512 250.01811,578.71703 250.51262,576.46614 C 250.51264,576.46616 252.75285,566.4309 253.23032,564.31642 C 252.42889,564.31641 250.29947,564.31642 250.29947,564.31642 C 250.29949,564.31641 251.4718,559.0409 251.4718,559.0409 C 251.47178,559.04091 253.55004,559.0409 254.40266,559.0409 C 254.67547,557.81315 255.62828,553.6055 255.62828,553.6055 C 255.62828,553.60552 260.58409,550.99438 260.58409,550.99438 C 260.58408,550.9944 262.60904,549.92862 262.60904,549.92862 z M 66.24211,550.14177 C 66.24213,550.14177 90.22179,550.14177 90.22179,550.14177 C 90.22179,550.14177 88.88959,556.11005 88.88959,556.11005 C 88.88959,556.11007 72.89248,556.11005 71.35778,556.11005 C 71.08496,557.32078 69.99147,562.22327 69.59927,563.9967 C 71.81607,563.9967 84.7864,563.9967 84.7864,563.9967 C 84.7864,563.9967 83.45419,569.96496 83.45419,569.96496 C 83.45418,569.96496 69.80177,569.96496 68.26706,569.96496 C 67.94307,571.44851 65.01648,584.61922 65.01648,584.61922 C 65.0165,584.6192 58.56862,584.61922 58.56862,584.61922 C 58.56863,584.6192 66.24211,550.14177 66.24211,550.14177 z M 98.37487,558.56131 C 98.61554,558.53175 98.87845,558.56131 99.12091,558.56131 C 100.65561,558.56131 102.07308,559.02811 103.43726,560.00008 C 103.43726,560.0001 104.28986,560.58625 104.28986,560.58625 C 104.28986,560.58625 100.986,566.02165 100.986,566.02165 C 100.986,566.02163 100.08011,565.38219 100.08011,565.38219 C 99.41507,564.9559 98.69888,564.74273 97.94858,564.74273 C 97.30059,564.74275 96.69737,564.97293 96.08349,565.38219 C 95.43552,565.80849 94.89409,566.37334 94.48485,567.1407 C 93.76865,568.45374 93.24429,569.92447 92.8862,571.51033 C 92.8862,571.51034 90.00864,584.61922 90.00864,584.61922 C 90.00864,584.6192 83.82721,584.61922 83.82721,584.61922 C 83.82721,584.6192 89.52905,559.0409 89.52905,559.0409 C 89.52907,559.04091 95.28417,559.0409 95.28417,559.0409 C 95.28417,559.04091 95.08593,559.81678 95.01772,560.10666 C 95.29056,559.90205 95.57831,559.62067 95.81705,559.4672 C 96.64302,558.9743 97.51542,558.66685 98.37487,558.56131 z M 116.70601,558.56131 C 117.0782,558.53316 117.4446,558.56131 117.82507,558.56131 C 121.30373,558.56131 123.93615,559.78053 125.65842,562.1849 C 126.7327,563.73664 127.31037,565.65502 127.31037,567.94002 C 127.31037,569.20187 127.15476,570.55967 126.83078,572.04321 C 126.83078,572.04321 126.35117,573.9083 126.35117,573.9083 C 126.35117,573.90828 110.71856,573.9083 108.97923,573.9083 C 108.94512,574.26638 108.92594,574.65007 108.92594,574.97406 C 108.92594,576.30415 109.19877,577.35071 109.77855,578.11807 C 110.05405,578.4932 110.37345,578.83106 110.73774,579.07725 C 111.42452,579.52514 112.31108,579.77 113.34886,579.77 C 114.61074,579.76998 115.71911,579.42255 116.7593,578.75752 C 117.74835,578.12659 118.69474,577.11838 119.53029,575.7201 C 119.53029,575.72007 126.13802,575.7201 126.13802,575.7201 C 126.13802,575.72007 125.55186,576.99901 125.55186,576.99901 C 124.28999,579.55686 122.52935,581.55195 120.32961,582.96729 C 118.12988,584.38262 115.5017,585.15209 112.60282,585.15209 C 108.83428,585.15208 106.02919,583.93287 104.28986,581.52851 C 102.5676,579.17528 102.19671,575.92258 103.11753,571.83005 C 104.03836,567.66932 105.87573,564.34414 108.55292,562.02503 C 110.9525,559.94441 113.67537,558.79035 116.70601,558.56131 z M 144.46916,558.56131 C 144.84134,558.53316 145.20773,558.56131 145.5882,558.56131 C 149.06687,558.56131 151.6993,559.78053 153.42157,562.1849 C 154.49586,563.73664 155.0735,565.65502 155.0735,567.94002 C 155.0735,569.18482 154.9179,570.52343 154.5939,571.98992 C 154.5939,571.98994 154.11432,573.9083 154.11432,573.9083 C 154.11432,573.90828 138.48169,573.9083 136.74237,573.9083 C 136.7253,574.147 136.70613,574.36232 136.68908,574.60105 C 136.67629,574.69057 136.69468,574.82646 136.68908,574.92077 C 136.68858,574.93615 136.68908,574.95914 136.68908,574.97406 C 136.68908,575.22986 136.72532,575.48136 136.74237,575.7201 C 136.8276,576.69206 137.08129,577.50419 137.54169,578.11807 C 137.62936,578.23743 137.71177,578.38477 137.80813,578.49109 C 138.58914,579.32663 139.69453,579.77 141.112,579.77 C 142.37388,579.76998 143.49931,579.42255 144.52245,578.75752 C 145.51149,578.12659 146.45787,577.11838 147.29343,575.7201 C 147.29343,575.72007 153.95445,575.7201 153.95445,575.7201 C 153.95444,575.72007 153.31499,576.99901 153.31499,576.99901 C 152.05313,579.55686 150.29249,581.55195 148.09275,582.96729 C 145.89301,584.38262 143.26484,585.15209 140.36597,585.15209 C 136.59744,585.15208 133.79234,583.93287 132.05301,581.52851 C 130.92756,579.99379 130.40107,578.0392 130.40107,575.7201 C 130.40107,575.36198 130.42025,574.97619 130.45436,574.60105 C 130.52259,573.71434 130.65899,572.81909 130.88067,571.83005 C 131.80151,567.68637 133.58558,564.34414 136.26277,562.02503 C 138.66234,559.94441 141.43852,558.79035 144.46916,558.56131 z M 220.08507,558.56131 C 220.46591,558.53202 220.81619,558.56131 221.20412,558.56131 C 224.75099,558.56131 227.47722,559.76135 229.25064,562.13161 C 231.00704,564.50184 231.43333,567.69915 230.52955,571.72347 C 229.83042,574.8611 228.82008,577.39547 227.43885,579.23712 C 226.05759,581.07877 224.29697,582.58361 222.21659,583.60674 C 220.15331,584.62988 217.96846,585.15209 215.76873,585.15209 C 212.15366,585.15208 209.46154,583.91581 207.72221,581.52851 C 206.59675,580.01087 206.01699,578.05625 206.01699,575.7201 C 206.01701,574.45823 206.15555,573.1175 206.49659,571.61691 C 207.51974,567.0469 209.60861,563.56613 212.67802,561.33229 C 214.93103,559.70595 217.41916,558.76623 220.08507,558.56131 z M 313.7124,558.56131 C 314.162,558.53356 314.57833,558.56131 315.0446,558.56131 C 317.19319,558.56131 318.88135,558.77871 320.16027,559.30733 C 321.52445,559.85302 322.49216,560.62462 323.03783,561.54544 C 323.56647,562.41507 323.83716,563.483 323.83716,564.79601 C 323.83717,564.79603 323.19768,568.68605 323.19768,568.68605 C 323.19771,568.68605 322.02536,573.96159 322.02536,573.96159 C 321.01925,578.46335 320.7976,580.15154 320.74643,580.78248 C 320.69528,581.6351 320.77414,582.46638 321.01288,583.23373 C 321.0129,583.23371 321.43918,584.61922 321.43918,584.61922 C 321.4392,584.6192 315.15118,584.61922 315.15118,584.61922 C 315.15116,584.6192 314.88473,583.81989 314.88473,583.81989 C 314.78242,583.44477 314.81226,582.96729 314.77816,582.54098 C 313.58451,583.27423 312.38872,583.92434 311.31443,584.29949 C 309.72859,584.84518 308.08304,585.15209 306.41192,585.15209 C 303.51306,585.15208 301.3666,584.39755 300.07062,582.91399 C 299.0816,581.82266 298.63185,580.48832 298.63185,578.97067 C 298.63183,578.3909 298.70858,577.7898 298.84499,577.15888 C 299.13487,575.86291 299.66137,574.66285 300.49693,573.58856 C 301.31544,572.5313 302.28316,571.66167 303.37449,571.03074 C 304.43175,570.39982 305.61047,569.95219 306.83823,569.64524 C 306.83821,569.64524 310.62169,569.00578 310.62169,569.00578 C 313.53763,568.66472 315.7139,568.24057 317.28271,567.78016 C 317.31683,567.60964 317.38928,567.40714 317.38928,567.40714 C 317.63654,566.30996 317.6056,565.48526 317.33599,565.06246 C 317.31615,565.03519 317.25181,564.97932 317.22942,564.95588 C 317.17186,564.89453 317.08339,564.79809 317.01626,564.74273 C 316.37491,564.2352 315.2812,563.9967 313.81898,563.9967 C 312.16491,563.9967 310.94142,564.26741 310.0888,564.79601 C 309.25325,565.32464 308.47949,566.29235 307.79741,567.67357 C 307.7974,567.67356 301.34954,567.67357 301.34954,567.67357 C 301.34956,567.67356 301.93571,566.39466 301.93571,566.39466 C 302.70304,564.62121 303.61749,563.15048 304.75999,562.02503 C 305.90249,560.89956 307.44571,560.02779 309.23619,559.41392 C 310.60835,558.96095 312.10669,558.66038 313.7124,558.56131 z M 340.72951,558.56131 C 340.96997,558.53175 341.23307,558.56131 341.47554,558.56131 C 343.02727,558.56131 344.48099,559.02811 345.84517,560.00008 C 345.84519,560.0001 346.64449,560.58625 346.64449,560.58625 C 346.6445,560.58625 343.34063,566.02165 343.34063,566.02165 C 343.34064,566.02163 342.43473,565.38219 342.43473,565.38219 C 341.7697,564.9559 341.08972,564.74273 340.35649,564.74273 C 339.70848,564.74275 339.06905,564.97293 338.4381,565.38219 C 337.79013,565.80849 337.31906,566.37334 336.89276,567.1407 C 336.1936,568.45374 335.6522,569.92447 335.29411,571.51033 C 335.29409,571.51034 332.36326,584.61922 332.36326,584.61922 C 332.36328,584.6192 326.18184,584.61922 326.18184,584.61922 C 326.18184,584.6192 331.88366,559.0409 331.88366,559.0409 C 331.88365,559.04091 337.63878,559.0409 337.63878,559.0409 C 337.63878,559.04091 337.49384,559.81678 337.42564,560.10666 C 337.69846,559.90205 337.96917,559.62067 338.22496,559.4672 C 339.03759,558.9743 339.87067,558.66685 340.72951,558.56131 z M 359.00734,558.56131 C 359.37919,558.53316 359.74593,558.56131 360.1264,558.56131 C 363.60506,558.56131 366.25453,559.78053 367.95977,562.1849 C 369.05112,563.73664 369.6117,565.65502 369.6117,567.94002 C 369.61168,569.20187 369.4028,570.55967 369.07881,572.04321 C 369.07881,572.04321 368.65251,573.9083 368.65251,573.9083 C 368.6525,573.90828 353.00283,573.9083 351.28057,573.9083 C 351.24646,574.26638 351.17398,574.65007 351.17398,574.97406 C 351.17398,576.30415 351.46387,577.35071 352.0266,578.11807 C 352.11426,578.23743 352.2496,578.38477 352.34632,578.49109 C 352.40234,578.55076 352.50044,578.64882 352.55948,578.70423 C 353.32183,579.39725 354.35929,579.77 355.65018,579.77 C 356.91207,579.76998 358.02045,579.42255 359.06063,578.75752 C 360.04968,578.12659 360.97902,577.11838 361.83162,575.7201 C 361.8316,575.72007 368.49264,575.7201 368.49264,575.7201 C 368.49264,575.72007 367.85318,576.99901 367.85318,576.99901 C 366.59131,579.55686 364.81363,581.55195 362.63094,582.96729 C 360.41417,584.38262 357.82009,585.15209 354.90415,585.15209 C 351.13564,585.15208 348.38381,583.93287 346.64449,581.52851 C 344.92219,579.17528 344.51509,575.92258 345.41886,571.83005 C 346.33967,567.66932 348.12377,564.34414 350.80097,562.02503 C 353.21572,559.94441 355.97949,558.79035 359.00734,558.56131 z M 265.69974,559.0409 C 265.69976,559.04091 272.04105,559.0409 272.04105,559.0409 C 272.04107,559.04091 272.82331,574.21951 272.84036,574.44117 C 273.09614,573.89761 273.2946,573.4403 273.31997,573.37542 C 273.31998,573.37543 280.30071,559.0409 280.30071,559.0409 C 280.30073,559.04091 286.10912,559.0409 286.10912,559.0409 C 286.10911,559.04091 286.642,574.03618 286.642,574.12144 C 286.81255,573.81453 294.58194,559.0409 294.58194,559.0409 C 294.58192,559.04091 300.86995,559.0409 300.86995,559.0409 C 300.86994,559.04091 287.01502,584.61922 287.01502,584.61922 C 287.01504,584.6192 281.31319,584.61922 281.31319,584.61922 C 281.31319,584.6192 280.76113,570.74938 280.72702,569.96496 C 278.37379,574.79076 273.58639,584.61922 273.58639,584.61922 C 273.58639,584.6192 267.72471,584.61922 267.72471,584.61922 C 267.72471,584.6192 265.69974,559.0409 265.69974,559.0409 z M 116.81259,563.89012 C 115.34366,563.95214 114.00964,564.48161 112.7627,565.48876 C 111.77368,566.27317 111.10649,567.3496 110.57787,568.52619 C 110.57787,568.52621 121.07564,568.52619 121.07564,568.52619 C 121.09271,568.33863 121.12893,568.11055 121.12893,567.94002 C 121.12891,566.96807 120.95627,566.21349 120.64934,565.70192 C 119.89906,564.47415 118.78639,563.89012 117.13232,563.89012 C 117.03322,563.89012 116.91052,563.886 116.81259,563.89012 z M 144.57572,563.89012 C 143.1068,563.95214 141.77277,564.48161 140.52582,565.48876 C 139.53678,566.27317 138.88669,567.3496 138.34102,568.52619 C 138.34102,568.52621 148.83878,568.52619 148.83878,568.52619 C 148.85582,568.33863 148.89207,568.11055 148.89207,567.94002 C 148.89206,566.96807 148.73647,566.21349 148.41247,565.70192 C 148.26353,565.45253 148.06204,565.20453 147.87959,565.00918 C 147.1676,564.27346 146.18769,563.89012 144.89546,563.89012 C 144.79635,563.89012 144.67366,563.886 144.57572,563.89012 z M 359.32708,563.89012 C 357.81652,563.93665 356.40583,564.44806 355.11731,565.48876 C 354.14533,566.27317 353.47816,567.3496 352.93249,568.52619 C 352.93251,568.52621 363.37698,568.52619 363.37698,568.52619 C 363.39401,568.33863 363.43027,568.11055 363.43027,567.94002 C 363.43026,566.96807 363.27467,566.21349 362.95067,565.70192 C 362.21743,564.4912 361.08771,563.90718 359.43365,563.89012 C 359.38463,563.89065 359.37581,563.88862 359.32708,563.89012 z M 219.71206,563.9967 C 218.30243,564.16409 216.9917,564.80721 215.76873,565.91507 C 214.30225,567.24516 213.23861,569.33404 212.62474,572.0965 C 212.36895,573.25605 212.25171,574.24721 212.25171,575.13392 C 212.25173,576.34462 212.48404,577.29529 212.94446,578.01148 C 213.06703,578.19532 213.22962,578.38959 213.37077,578.54437 C 214.12881,579.34925 215.18736,579.77 216.51477,579.77 C 218.23703,579.76998 219.75469,579.12841 221.20412,577.79833 C 222.67064,576.45119 223.71719,574.34099 224.34812,571.51033 C 224.92792,568.91838 224.8469,566.98297 224.0284,565.75521 C 223.244,564.56155 222.09724,563.9967 220.51139,563.9967 C 220.24228,563.9967 219.97309,563.96569 219.71206,563.9967 z M 316.00379,573.32213 C 314.55438,573.71431 312.93012,574.04471 310.78155,574.33461 C 309.17866,574.57335 308.03614,574.82485 307.3711,575.08064 C 306.79134,575.31936 306.32452,575.64975 305.93232,576.09312 C 305.55716,576.51939 305.30566,576.96704 305.1863,577.47861 C 305.15221,577.68325 305.133,577.89425 305.133,578.06478 C 305.133,578.07862 305.13269,578.10436 305.133,578.11807 C 305.13479,578.15865 305.12855,578.23877 305.133,578.27792 C 305.14368,578.35529 305.16517,578.47232 305.1863,578.54437 C 305.19392,578.5681 305.23081,578.62776 305.23957,578.65094 C 305.25823,578.69678 305.26972,578.76705 305.29286,578.81081 C 305.31713,578.85407 305.37076,578.9293 305.39944,578.97067 C 305.44408,579.03204 305.50494,579.12627 305.55931,579.18382 C 305.98562,579.66128 306.83609,579.87657 308.06385,579.87657 C 309.411,579.87658 310.70695,579.62079 311.9006,579.02396 C 313.07722,578.44419 314.02573,577.57878 314.72487,576.5727 C 315.23646,575.8565 315.6457,574.7545 316.00379,573.32213 z"
    +         id="path74" />
    +      <g
    +         id="g80"
    +         style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,359.45027,563.90874)">
    +        <path
    +           style="fill:#000000;fill-opacity:0.94117647"
    +           id="path82"
    +           d="M 0.03,0 C 0.02,0 0.01,0 0,0 C 0.97,0.01 1.61,0.34 2.04,1.05 C 2.23,1.35 2.33,1.8 2.33,2.37 C 2.33,2.47 2.31,2.6 2.3,2.71 C 2.3,2.71 2.34,2.71 2.34,2.71 C 2.34,2.6 2.36,2.47 2.36,2.37 C 2.36,1.8 2.27,1.35 2.08,1.05 C 1.65,0.33 1,0 0.03,0 z" />
    +      </g>
    +      <g
    +         style="fill:#000000;fill-opacity:0.94117647"
    +         id="g4966"
    +         transform="matrix(1.705222,0,0,1.705222,-200.90733,-129.69426)">
    +        <g
    +           transform="translate(125.1273,453.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g84">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 0,36 C 0,36 7.46,36 7.46,36 C 7.46,36 10.81,22 10.81,22 C 10.81,22 22.93,22 22.93,22 C 22.93,22 24.49,16 24.49,16 C 24.49,16 12.32,16 12.32,16 C 12.32,16 14.34,7 14.34,7 C 14.34,7 27.29,7 27.29,7 C 27.29,7 28.85,0 28.85,0 C 28.85,0 8.4,0 8.4,0 C 8.4,0 0,36 0,36 z"
    +             id="path86" />
    +        </g>
    +        <g
    +           transform="translate(151.0773,463.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g88">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 7.51,26 C 7.51,26 9.75,16.6 9.75,16.6 C 10.93,11.51 13.42,7 18.13,7 C 18.55,7 18.96,7.21 19.27,7.26 C 19.27,7.26 21.09,0.05 21.09,0.05 C 20.67,0.05 20.21,0 19.69,0 C 16.22,0 13.31,2.44 11.37,5.94 C 11.37,5.94 11.17,5.94 11.17,5.94 C 11.46,4.23 11.71,2.61 11.9,1 C 11.9,1 5.47,1 5.47,1 C 5.1,3.08 4.53,7.15 3.66,10.82 C 3.66,10.82 0,26 0,26 C 0,26 7.51,26 7.51,26 z"
    +             id="path90" />
    +        </g>
    +        <g
    +           transform="translate(171.7073,463.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g92">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 20.06,19.25 C 17.99,20.26 15.63,20 12.88,20 C 10.71,20 9.03,19.62 8.11,18.88 C 7.63,18.07 7.43,16.81 7.47,16 C 17.6,16.27 23.99,13.93 24.31,7.53 C 24.55,2.7 21.02,0 15.89,0 C 6.73,0 0.73,8.08 0.34,15.86 C 0,22.65 3.52,26 10.78,26 C 13.57,26 17.27,25.68 20.3,24.77 C 20.3,24.77 20.06,19.25 20.06,19.25 z M 17.32,7.53 C 17.2,9.91 14.26,10.05 8.47,10 C 9.1,7.91 11.22,6 14.69,6 C 16.4,6 17.38,6.65 17.32,7.53 z"
    +             id="path94" />
    +        </g>
    +        <g
    +           transform="translate(198.2273,463.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g96">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 20.05,19.25 C 17.98,20.26 15.62,20 12.88,20 C 10.7,20 9.03,19.62 8.11,18.88 C 7.63,18.07 7.42,16.81 7.46,16 C 17.6,16.27 23.98,13.93 24.31,7.53 C 24.55,2.7 21.02,0 15.89,0 C 6.72,0 0.72,8.08 0.33,15.86 C 0,22.65 3.52,26 10.77,26 C 13.57,26 17.27,25.68 20.3,24.77 C 20.3,24.77 20.05,19.25 20.05,19.25 z M 17.32,7.53 C 17.2,9.91 14.26,10.05 8.46,10 C 9.1,7.91 11.21,6 14.68,6 C 16.39,6 17.38,6.65 17.32,7.53 z"
    +             id="path98" />
    +        </g>
    +        <g
    +           transform="translate(234.1373,463.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g100">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 22.74,26 C 22.8,22.83 23.56,17.85 24.35,14.58 C 24.35,14.58 27.56,1 27.56,1 C 25.52,0.31 22.34,0 19.28,0 C 6.86,0 0.7,9.2 0.27,17.82 C 0,23.23 2.93,26 7.49,26 C 10.44,26 13.77,24.57 16.36,20.27 C 16.36,20.27 16.47,20.27 16.47,20.27 C 16.27,22.34 16.03,24.35 15.9,26 C 15.9,26 22.74,26 22.74,26 z M 17.61,11.72 C 16.15,18.08 13.17,20 10.95,20 C 8.88,20 7.98,18.53 8.1,16.39 C 8.34,11.56 12.16,6 16.98,6 C 17.76,6 18.37,5.86 18.94,5.72 C 18.94,5.72 17.61,11.72 17.61,11.72 z"
    +             id="path102" />
    +        </g>
    +        <g
    +           transform="translate(261.7673,463.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g104">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 0,24.82 C 1.44,25.94 4.46,25.95 7.61,26 C 14.34,26.05 19.42,23.11 19.72,17.71 C 19.89,14.11 17.1,11.98 14.37,10.55 C 12.4,9.6 11.41,8.69 11.46,7.63 C 11.53,6.2 12.87,6 14.84,6 C 17.06,6 18.84,6.27 19.86,6.47 C 19.86,6.47 21.88,1.05 21.88,1.05 C 20.73,0.36 18.43,0 15.48,0 C 8.95,0 4.17,3.45 3.9,8.69 C 3.74,11.93 6.07,14.11 8.89,15.59 C 11.17,16.76 11.95,17.66 11.89,18.93 C 11.82,20.21 10.68,20 8.61,20 C 6.18,20 3.49,19.68 2.07,19.46 C 2.07,19.46 0,24.82 0,24.82 z"
    +             id="path106" />
    +        </g>
    +        <g
    +           transform="translate(294.2173,452.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g108">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 7.45,37 C 7.45,37 13.5,12 13.5,12 C 13.5,12 6.09,12 6.09,12 C 6.09,12 0,37 0,37 C 0,37 7.45,37 7.45,37 z M 10.92,9 C 13.46,9 15.72,6.9 15.86,3.3 C 15.98,0.86 14.4,0 12.07,0 C 9.64,0 7.42,1.58 7.29,3.94 C 7.17,6.32 8.75,9 10.92,9 z"
    +             id="path110" />
    +        </g>
    +        <g
    +           transform="translate(308.5073,464.0834)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g112">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 7.46,25.31 C 7.46,25.31 10.1,14.05 10.1,14.05 C 11.47,8.32 14.42,6.31 16.85,6.31 C 18.77,6.31 19.33,7.13 19.24,8.32 C 19.19,9.28 19.04,10.29 18.84,11.19 C 18.84,11.19 15.48,25.31 15.48,25.31 C 15.48,25.31 22.94,25.31 22.94,25.31 C 22.94,25.31 26.48,10.5 26.48,10.5 C 26.75,9.22 27.05,7.31 27.11,6.15 C 27.33,1.64 25.08,0 20.94,0 C 17.62,0 14.39,1.54 11.84,4.88 C 11.84,4.88 11.74,4.88 11.74,4.88 C 11.74,4.88 12.42,0.31 12.42,0.31 C 12.42,0.31 5.84,0.31 5.84,0.31 C 5.41,2.45 4.86,5.04 4.08,8.06 C 4.08,8.06 0,25.31 0,25.31 C 0,25.31 7.46,25.31 7.46,25.31 z"
    +             id="path114" />
    +        </g>
    +        <g
    +           transform="translate(348.0673,453.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g116">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 0,36 C 0,36 7.46,36 7.46,36 C 7.46,36 10.82,22 10.82,22 C 10.82,22 22.93,22 22.93,22 C 22.93,22 24.49,16 24.49,16 C 24.49,16 12.32,16 12.32,16 C 12.32,16 14.34,7 14.34,7 C 14.34,7 27.29,7 27.29,7 C 27.29,7 28.85,0 28.85,0 C 28.85,0 8.4,0 8.4,0 C 8.4,0 0,36 0,36 z"
    +             id="path118" />
    +        </g>
    +        <g
    +           transform="translate(374.0173,463.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g120">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 7.51,26 C 7.51,26 9.75,16.6 9.75,16.6 C 10.93,11.51 13.42,7 18.13,7 C 18.55,7 18.96,7.21 19.27,7.26 C 19.27,7.26 21.09,0.05 21.09,0.05 C 20.67,0.05 20.21,0 19.69,0 C 16.22,0 13.31,2.44 11.37,5.94 C 11.37,5.94 11.17,5.94 11.17,5.94 C 11.46,4.23 11.71,2.61 11.9,1 C 11.9,1 5.47,1 5.47,1 C 5.11,3.08 4.53,7.15 3.66,10.82 C 3.66,10.82 0,26 0,26 C 0,26 7.51,26 7.51,26 z"
    +             id="path122" />
    +        </g>
    +        <g
    +           transform="translate(394.6473,463.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g124">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 20.06,19.25 C 17.99,20.26 15.63,20 12.88,20 C 10.71,20 9.03,19.62 8.11,18.88 C 7.63,18.07 7.43,16.81 7.47,16 C 17.6,16.27 23.99,13.93 24.31,7.53 C 24.55,2.7 21.02,0 15.89,0 C 6.73,0 0.73,8.08 0.34,15.86 C 0,22.65 3.53,26 10.78,26 C 13.57,26 17.28,25.68 20.3,24.77 C 20.3,24.77 20.06,19.25 20.06,19.25 z M 17.32,7.53 C 17.2,9.91 14.26,10.05 8.47,10 C 9.1,7.91 11.22,6 14.69,6 C 16.4,6 17.38,6.65 17.32,7.53 z"
    +             id="path126" />
    +        </g>
    +        <g
    +           transform="translate(421.1673,463.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g128">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 20.05,19.25 C 17.98,20.26 15.62,20 12.88,20 C 10.7,20 9.03,19.62 8.11,18.88 C 7.63,18.07 7.42,16.81 7.46,16 C 17.6,16.27 23.98,13.93 24.31,7.53 C 24.55,2.7 21.02,0 15.89,0 C 6.72,0 0.72,8.08 0.33,15.86 C 0,22.65 3.52,26 10.77,26 C 13.57,26 17.27,25.68 20.3,24.77 C 20.3,24.77 20.05,19.25 20.05,19.25 z M 17.32,7.53 C 17.2,9.91 14.26,10.05 8.46,10 C 9.1,7.91 11.21,6 14.68,6 C 16.39,6 17.38,6.65 17.32,7.53 z"
    +             id="path130" />
    +        </g>
    +        <g
    +           transform="translate(447.5473,452.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g132">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 23.31,0 C 23.31,0 20.5,11.36 20.5,11.36 C 19.48,10.94 18.15,11 17.11,11 C 7.53,11 0.75,19.2 0.3,28.08 C 0,34.34 3.34,37 7.64,37 C 10.65,37 13.82,35.67 16.22,32.23 C 16.22,32.23 16.32,32.23 16.32,32.23 C 16.32,32.23 15.75,37 15.75,37 C 15.75,37 22.53,37 22.53,37 C 22.84,34 23.49,30.43 24.22,27.17 C 24.22,27.17 30.71,0 30.71,0 C 30.71,0 23.31,0 23.31,0 z M 17.47,24.42 C 16.3,29.35 13.54,31 11.36,31 C 9.19,31 7.98,29.49 8.13,26.8 C 8.38,21.82 11.8,17 16.25,17 C 17.5,17 18.57,17.19 19.16,17.47 C 19.16,17.47 17.47,24.42 17.47,24.42 z"
    +             id="path134" />
    +        </g>
    +        <g
    +           transform="translate(477.2573,463.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g136">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 10.61,26 C 19.31,26 26.02,19.41 26.49,10.44 C 26.78,4.5 23.08,0 16.25,0 C 7.23,0 0.76,7.3 0.31,16.12 C 0,22.54 4.14,26 10.61,26 z M 11.78,20 C 9.24,20 7.84,18.38 7.99,15.96 C 8.19,11.93 10.68,6 14.97,6 C 17.93,6 18.84,8.27 18.72,10.5 C 18.5,14.9 15.82,20 11.78,20 z"
    +             id="path138" />
    +        </g>
    +        <g
    +           transform="translate(505.8173,463.3934)"
    +           style="fill:#000000;fill-opacity:0.94117647;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +           id="g140">
    +          <path
    +             style="fill:#000000;fill-opacity:0.94117647"
    +             d="M 7.2,26 C 7.2,26 9.9,14.58 9.9,14.58 C 11.03,9.49 13.85,6 16.38,6 C 18.2,6 18.7,7.33 18.61,9.07 C 18.56,9.97 18.36,10.98 18.15,11.98 C 18.15,11.98 14.81,26 14.81,26 C 14.81,26 22.01,26 22.01,26 C 22.01,26 24.71,14.53 24.71,14.53 C 25.95,9.28 28.61,6 31.09,6 C 32.8,6 33.51,7.22 33.43,8.96 C 33.38,9.97 33.17,11.08 32.91,12.09 C 32.91,12.09 29.67,26 29.67,26 C 29.67,26 36.92,26 36.92,26 C 36.92,26 40.41,11.19 40.41,11.19 C 40.68,9.86 40.99,7.79 41.04,6.73 C 41.26,2.33 39.11,0 35.23,0 C 31.91,0 28.68,1.5 26.23,4.66 C 26.14,2.38 24.51,0 20.47,0 C 17.2,0 14.08,1.48 11.58,4.83 C 11.58,4.83 11.48,4.83 11.48,4.83 C 11.48,4.83 12.15,1 12.15,1 C 12.15,1 5.73,1 5.73,1 C 5.31,3.14 4.8,5.73 4.02,8.75 C 4.02,8.75 0,26 0,26 C 0,26 7.2,26 7.2,26 z"
    +             id="path142" />
    +        </g>
    +      </g>
    +      <path
    +         style="fill:none;fill-opacity:0.94117647;fill-rule:evenodd;stroke:#000000;stroke-width:8.52610779;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
    +         id="path2592"
    +         d="M 402.97747,590.4172 C 403.66968,592.19682 404.36192,593.97353 405.08297,595.7113 C 406.19343,598.07207 407.47693,600.3319 409.02001,602.44175 C 417.35558,613.77261 431.31547,619.9767 449.03932,621.52122 C 449.03932,621.52122 468.10438,621.52122 468.10438,621.52122 C 474.13249,621.05108 480.44905,620.17426 486.99636,618.89363 C 498.28829,616.68573 510.25803,613.29383 522.68924,608.76119 C 532.10639,605.32744 541.78314,601.26495 551.60409,596.54341 C 572.99097,586.29126 595.0845,573.06832 616.75984,557.11106 C 623.89841,551.86024 630.74856,546.47243 637.32471,540.99376 C 643.35284,535.978 649.13581,530.88434 654.65917,525.73449 C 670.07562,510.8776 681.71367,495.78852 688.30424,482.53959 C 695.16876,468.74269 696.53885,456.94601 690.91452,449.51466 C 687.46779,444.9532 681.69925,442.50877 674.27224,441.93336 C 707.72977,416.82865 727.22752,386.37503 720.2332,367.17442 C 718.01224,361.04678 713.12339,356.47522 706.11462,353.94714 C 702.99965,352.82662 699.49519,352.11708 695.67352,351.79404 C 695.67352,351.79404 685.37669,351.79404 685.37669,351.79404 C 670.99861,352.83092 650.09005,357.97936 632.35179,366.67256"
    +         sodipodi:nodetypes="cccccssccccscccsccc" />
    +    </g>
    +    <g
    +       id="g2486"
    +       transform="translate(-10.576504,12.339255)">
    +      <path
    +         d="M 373.55234,223.69791 C 373.55234,223.69791 373.53528,223.69791 373.53528,223.69791 C 371.93238,223.69791 370.51704,224.22653 369.18697,225.30082 C 368.19794,226.08522 367.51585,227.14246 366.97018,228.31906 C 366.97018,228.31906 367.03839,228.31906 367.03839,228.31906 C 367.58406,227.14246 368.26615,226.08522 369.23813,225.30082 C 370.5682,224.22653 371.98353,223.71496 373.55234,223.69791 z"
    +         id="path2577"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter" />
    +      <path
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         d="M 107.04146,18.25331 C 107.04148,18.25331 47.731726,277.02073 47.731726,277.02073 C 47.748776,277.02073 47.750916,277.02073 47.785016,277.02073 C 47.785016,277.02073 322.16583,277.02073 322.16583,277.02073 C 322.16584,277.02073 464.87156,277.02073 464.87156,277.02073 C 447.87049,275.5372 434.44829,269.56891 426.4508,258.68961 C 424.96727,256.67742 423.74162,254.50968 422.66733,252.24173 C 421.98526,250.57063 421.34365,248.88458 420.69566,247.17936 C 418.99042,241.75675 418.31049,235.73945 418.61742,229.32782 C 419.47004,211.45708 427.85547,190.1998 442.38396,167.93984 C 457.81621,144.28328 480.18233,119.48895 507.87512,96.4804 C 514.08211,91.32721 520.50015,86.23841 527.21873,81.29326 C 535.52314,75.18347 543.89154,69.55665 552.26418,64.29433 C 583.11163,44.87356 613.88235,31.28421 641.14885,24.38151 C 615.09308,32.88202 585.8208,47.31289 556.90024,66.95875 C 555.86008,67.6613 554.83266,68.3809 553.80952,69.09027 C 537.76339,80.20832 523.22638,92.01613 510.53954,103.94073 C 469.71651,142.3253 448.13908,182.09957 457.9441,205.40142 C 458.64326,207.00432 459.47666,208.53477 460.44865,209.98421 C 470.9869,225.48468 497.10452,228.164 530.20287,219.84252 C 532.45376,219.27977 534.70465,218.64248 537.02375,217.97744 C 547.59613,214.92507 558.82075,210.80271 570.38215,205.72116 C 573.16164,204.49339 575.97102,203.23153 578.80168,201.8844 C 579.09156,201.74799 579.36441,201.61157 579.65429,201.4581 C 616.14602,183.32648 644.19054,162.46352 650.26113,149.92843 C 651.59121,147.20181 651.91093,144.87713 651.00716,143.05426 C 646.67592,134.27238 616.36771,140.20526 579.65429,156.10986 C 576.70426,157.38876 573.72012,158.70478 570.70188,160.10647 C 573.1574,157.82661 575.71311,155.53819 578.32208,153.28558 C 582.48283,149.7012 586.79064,146.19613 591.37768,142.73454 C 598.55668,137.29827 605.81453,132.38383 612.95941,128.027 C 646.41584,102.78633 663.32951,78.90978 659.79971,70.04947 C 659.13466,68.38004 657.71934,67.23158 655.53665,66.53244 C 648.56227,64.31397 635.83282,66.96173 620.36646,73.30004 C 607.61142,78.53168 592.96142,86.29084 578.10894,95.94752 C 578.10894,95.94752 576.08399,97.27972 576.08399,97.27972 C 576.08401,97.27972 575.71097,97.49286 575.71097,97.49286 C 575.71099,97.49288 568.57036,102.23551 568.57036,102.23551 C 568.57034,102.2355 572.67355,94.72188 572.67355,94.72188 C 578.7612,83.57824 588.67705,71.95121 601.02285,61.15034 C 610.07758,53.25345 620.42188,45.81272 631.55698,39.30218 C 635.76889,36.83645 639.97438,34.54632 644.18627,32.4813 C 648.50049,30.37361 652.81682,28.50041 657.02873,26.83271 C 669.26555,21.99341 680.94654,19.05291 691.13315,18.25331 C 690.20548,18.25331 662.51741,18.25331 662.51741,18.25331 C 662.51742,18.25331 566.06582,18.25331 566.06582,18.25331 C 566.06583,18.25331 140.77287,18.25331 140.77287,18.25331 C 140.77287,18.25331 107.04146,18.25331 107.04146,18.25331 z M 413.02217,18.62641 C 411.35108,44.13137 416.2962,81.48852 427.51656,122.96461 C 429.51165,130.34482 431.68368,137.85546 434.071,145.45223 C 435.55456,150.14327 437.08499,154.76104 438.65378,159.30715 C 437.73298,160.66111 436.80574,162.00652 435.93608,163.35705 C 421.93623,184.81213 413.75328,205.08809 411.68997,222.72008 C 405.77283,202.9054 401.31796,181.20178 398.79423,158.1881 C 398.07804,151.594 397.51744,145.07368 397.14229,138.63135 C 394.37982,91.83496 400.48878,49.41415 413.02217,18.62641 z M 133.63227,51.82491 C 133.95161,51.81737 134.26641,51.82491 134.59145,51.82491 C 134.59145,51.82489 197.63136,51.82491 197.63136,51.82491 C 203.01987,51.82489 207.187,52.83482 210.15408,54.86233 C 213.1041,56.90179 214.21039,59.53976 213.51123,62.74898 C 213.51125,62.749 205.9976,96.69354 205.9976,96.69354 C 205.9976,96.69357 183.77644,96.69354 183.77644,96.69354 C 183.77646,96.69357 191.07692,63.65488 191.07692,63.65488 C 191.0769,63.65488 135.44407,63.65488 135.44407,63.65488 C 135.44405,63.65488 115.35442,154.45793 115.35442,154.45793 C 115.35444,154.45793 108.10723,187.33674 108.10723,187.33674 C 108.10723,187.33677 163.6868,187.33674 163.6868,187.33674 C 163.6868,187.33677 163.74009,187.12358 163.74009,187.12358 C 163.74009,187.1236 174.87731,136.81954 174.87731,136.81954 C 174.87731,136.81952 148.76611,136.81954 148.76611,136.81954 C 148.76611,136.81952 151.27065,125.46916 151.27065,125.46916 C 151.27064,125.46914 199.60303,125.46916 199.60303,125.46916 C 199.60303,125.46914 185.7481,188.24264 185.7481,188.24264 C 185.56053,189.13616 185.23228,189.94572 184.78891,190.74717 C 183.64642,192.82754 181.65344,194.60951 178.87393,196.076 C 175.02015,198.10523 170.4075,199.11342 165.019,199.11342 C 165.019,199.11344 102.03238,199.11342 102.03238,199.11342 C 96.643856,199.11344 92.476736,198.10521 89.509656,196.076 C 86.559646,194.0468 85.436306,191.45527 86.152506,188.24264 C 86.152516,188.24262 113.91564,62.74898 113.91564,62.74898 C 114.63182,59.53977 116.86569,56.90177 120.73653,54.86233 C 120.87295,54.78902 121.02642,54.77238 121.16283,54.70247 C 124.69585,52.93277 128.8422,51.93804 133.63227,51.82491 z M 232.42855,51.82491 C 232.42853,51.82489 311.77463,51.82491 311.77463,51.82491 C 317.09494,51.82489 321.27698,52.83482 324.24406,54.86233 C 327.22823,56.90179 328.37072,59.53976 327.65451,62.74898 C 327.65453,62.749 312.8404,129.67893 312.8404,129.67893 C 312.14128,132.86767 309.85413,135.46943 305.96623,137.51229 C 302.07833,139.56195 297.50193,140.603 292.16459,140.603 C 292.16457,140.603 234.50679,140.603 234.50679,140.603 C 234.50679,140.603 223.36956,190.85375 223.36956,190.85375 C 223.36956,190.85377 221.55776,199.11342 221.55776,199.11342 C 221.55777,199.11344 199.81618,199.11342 199.81618,199.11342 C 199.81618,199.11344 201.46811,191.65308 201.46811,191.65308 C 201.46811,191.6531 232.42855,51.82491 232.42855,51.82491 z M 342.04232,51.82491 C 342.04231,51.82489 363.7839,51.82491 363.7839,51.82491 C 363.78392,51.82489 339.16476,163.03732 339.16476,163.03732 C 339.16478,163.03734 333.78266,187.33674 333.78266,187.33674 C 333.78266,187.33677 385.79192,187.33674 385.79192,187.33674 C 386.3376,191.32528 386.97491,195.24256 387.657,199.11342 C 387.65698,199.11344 309.42995,199.11342 309.42995,199.11342 C 309.42997,199.11344 315.61138,171.19041 315.61138,171.19041 C 315.6114,171.19041 342.04232,51.82491 342.04232,51.82491 z M 251.559,63.65488 C 251.55902,63.65488 237.1179,128.77302 237.1179,128.77302 C 237.1179,128.773 291.31198,128.77302 291.31198,128.77302 C 291.31197,128.773 305.69978,63.65488 305.69978,63.65488 C 305.6998,63.65488 251.559,63.65488 251.559,63.65488 z M 205.9976,209.34475 C 206.21027,209.3376 206.42284,209.34475 206.63707,209.34475 C 209.1608,209.34477 211.36479,209.78811 213.13822,210.62366 C 215.03102,211.51037 216.38454,212.82766 217.13484,214.56699 C 217.86809,216.25518 218.05992,218.1714 217.66771,220.26883 C 217.66771,220.26884 217.50786,221.06816 217.50786,221.06816 C 217.50787,221.06813 211.27314,221.06816 211.27314,221.06816 C 211.27312,221.06813 211.32643,220.32211 211.32643,220.32211 C 211.48761,218.85668 211.30594,217.70432 210.74025,216.91168 C 210.66653,216.81227 210.55972,216.68105 210.47381,216.59195 C 210.33313,216.44832 210.12183,216.28415 209.94094,216.16564 C 209.06856,215.61614 207.70391,215.31302 205.94432,215.31302 C 203.60817,215.31304 201.86245,215.72014 200.6688,216.53866 C 199.50924,217.34012 198.776,218.23536 198.53727,219.30964 C 198.29852,220.40098 198.69073,220.97436 198.96358,221.2813 C 198.97208,221.28979 199.00651,221.32507 199.01685,221.33459 C 199.36237,221.62904 200.56221,222.31935 204.29238,223.19967 C 207.6687,224.01818 209.9047,224.75356 211.16656,225.38449 C 213.07643,226.35645 214.41075,227.61619 215.1099,229.16795 C 215.80901,230.70267 215.9625,232.49952 215.5362,234.44348 C 215.1099,236.33627 214.14431,238.082 212.71192,239.71902 C 211.2966,241.35602 209.49545,242.65199 207.32981,243.55575 C 205.18121,244.44247 202.82377,244.94124 200.40235,244.94124 C 197.33295,244.94123 194.86892,244.47657 192.94201,243.55575 C 190.92984,242.60084 189.47827,241.09385 188.62567,239.13284 C 187.80716,237.22298 187.63237,235.05522 188.09278,232.68498 C 188.09278,232.68495 188.25265,231.93893 188.25265,231.93893 C 188.25265,231.93893 194.38079,231.93893 194.38079,231.93893 C 194.38079,231.93893 194.3275,232.68498 194.3275,232.68498 C 194.17402,234.1003 194.32537,235.2428 194.70052,236.09541 C 195.05861,236.91394 195.74071,237.59174 196.83204,238.12037 C 197.99158,238.68307 199.44102,238.97297 201.09509,238.97297 C 202.57864,238.97296 203.9343,238.72358 205.145,238.28024 C 206.33865,237.85394 207.28718,237.2912 207.96927,236.57501 C 208.63429,235.85879 209.02438,235.10213 209.1949,234.28361 C 209.36542,233.55037 209.32492,232.93011 209.03503,232.41853 C 208.71104,231.87289 208.06945,231.389 207.06338,230.97975 C 207.06338,230.97974 201.84112,229.43439 201.84112,229.43439 C 198.9252,228.70116 196.96207,228.00201 195.81957,227.30287 C 194.2678,226.38206 193.14876,225.20118 192.56898,223.78585 C 191.98921,222.38754 191.9274,220.83794 192.30255,219.14977 C 192.69475,217.34224 193.56654,215.6221 194.91366,214.0874 C 196.27786,212.53563 198.03848,211.31855 200.13591,210.51709 C 201.99034,209.82169 203.94187,209.41388 205.9976,209.34475 z M 261.9502,209.45133 C 262.28745,209.42506 262.60456,209.45133 262.96267,209.45133 C 262.96268,209.45133 266.79942,209.87763 266.79942,209.87763 C 266.79941,209.87763 268.07833,209.98421 268.07833,209.98421 C 268.07835,209.98422 266.21325,214.72685 266.21325,214.72685 C 266.21324,214.72687 265.84023,215.47289 265.84023,215.47289 C 265.84023,215.47287 262.90939,215.20645 262.90939,215.20645 C 262.04398,215.20645 261.40826,215.33997 260.99101,215.63275 C 260.9633,215.65368 260.91001,215.71695 260.88443,215.73933 C 260.82853,215.78837 260.73452,215.87391 260.67128,215.95249 C 260.41469,216.289 260.10216,216.89035 259.87196,217.97744 C 259.87194,217.97744 259.76112,218.43784 259.65881,218.83005 C 261.00594,218.83006 264.24158,218.83005 264.24158,218.83005 C 264.24158,218.83006 263.06925,224.10557 263.06925,224.10557 C 263.06925,224.10556 259.71849,224.10557 258.59305,224.10557 C 258.25199,225.64026 254.06355,244.40837 254.06355,244.40837 C 254.06353,244.40835 247.88212,244.40837 247.88212,244.40837 C 247.8821,244.40835 251.90005,226.37352 252.41162,224.10557 C 251.37141,224.10556 248.84131,224.10557 248.84131,224.10557 C 248.84131,224.10556 250.01365,218.83005 250.01365,218.83005 C 250.01366,218.83006 252.55869,218.83005 253.53066,218.83005 C 253.70118,218.09681 253.95696,217.17811 253.95696,217.17811 C 254.33212,215.47289 254.72431,214.24726 255.23587,213.39465 C 255.93504,212.21806 256.92193,211.23328 258.16674,210.51709 C 259.19201,209.92134 260.48872,209.56515 261.9502,209.45133 z M 276.71102,209.71777 C 276.711,209.71776 275.09532,216.98841 274.68607,218.83005 C 275.87971,218.83006 278.68268,218.83005 278.68268,218.83005 C 278.68268,218.83006 277.51035,224.10557 277.51035,224.10557 C 277.51033,224.10556 274.57096,224.10557 273.51373,224.10557 C 273.18972,225.57204 270.63617,236.94803 270.63617,236.94803 C 270.63619,236.94801 270.42301,238.31434 270.42301,238.70654 C 270.42329,238.71959 270.42195,238.75022 270.42301,238.75982 C 270.42385,238.76385 270.42181,238.80979 270.42301,238.81311 C 270.42465,238.8158 270.47416,238.81097 270.47629,238.81311 C 270.47629,238.81309 271.11576,238.8664 271.11576,238.8664 C 271.11576,238.8664 274.04661,238.65325 274.04661,238.65325 C 274.04661,238.65325 273.72688,243.39589 273.72688,243.39589 C 273.7269,243.39589 273.78018,244.2485 273.78018,244.2485 C 273.78016,244.24848 269.5704,244.7281 269.5704,244.7281 C 267.8993,244.72808 266.67365,244.45527 265.78694,243.8755 C 264.84909,243.26158 264.3034,242.44736 264.08172,241.42424 C 264.04761,241.23665 263.97514,240.96382 263.97514,240.57163 C 263.97514,239.80427 264.12009,238.50618 264.6146,236.25529 C 264.61462,236.25531 266.85483,226.22005 267.3323,224.10557 C 266.53087,224.10556 264.40145,224.10557 264.40145,224.10557 C 264.40147,224.10556 265.57378,218.83005 265.57378,218.83005 C 265.57376,218.83006 267.65202,218.83005 268.50464,218.83005 C 268.77745,217.6023 269.73026,213.39465 269.73026,213.39465 C 269.73026,213.39467 274.68607,210.78353 274.68607,210.78353 C 274.68606,210.78355 276.71102,209.71777 276.71102,209.71777 z M 80.344086,209.93092 C 80.344106,209.93092 104.32377,209.93092 104.32377,209.93092 C 104.32377,209.93092 102.99157,215.8992 102.99157,215.8992 C 102.99157,215.89922 86.994456,215.8992 85.459756,215.8992 C 85.186936,217.10993 84.093446,222.01242 83.701246,223.78585 C 85.918046,223.78585 98.888376,223.78585 98.888376,223.78585 C 98.888376,223.78585 97.556166,229.75411 97.556166,229.75411 C 97.556156,229.75411 83.903746,229.75411 82.369036,229.75411 C 82.045046,231.23766 79.118456,244.40837 79.118456,244.40837 C 79.118476,244.40835 72.670596,244.40837 72.670596,244.40837 C 72.670606,244.40835 80.344086,209.93092 80.344086,209.93092 z M 112.47685,218.35046 C 112.71752,218.3209 112.98043,218.35046 113.22289,218.35046 C 114.75759,218.35046 116.17506,218.81726 117.53924,219.78923 C 117.53924,219.78925 118.39184,220.3754 118.39184,220.3754 C 118.39184,220.3754 115.08798,225.8108 115.08798,225.8108 C 115.08798,225.81078 114.18209,225.17134 114.18209,225.17134 C 113.51705,224.74505 112.80086,224.53188 112.05056,224.53188 C 111.40257,224.5319 110.79935,224.76208 110.18547,225.17134 C 109.5375,225.59764 108.99607,226.16249 108.58683,226.92985 C 107.87063,228.24289 107.34627,229.71362 106.98818,231.29948 C 106.98818,231.29949 104.11062,244.40837 104.11062,244.40837 C 104.11062,244.40835 97.929186,244.40837 97.929186,244.40837 C 97.929186,244.40835 103.63103,218.83005 103.63103,218.83005 C 103.63105,218.83006 109.38615,218.83005 109.38615,218.83005 C 109.38615,218.83006 109.18791,219.60593 109.1197,219.89581 C 109.39254,219.6912 109.68029,219.40982 109.91903,219.25635 C 110.745,218.76345 111.6174,218.456 112.47685,218.35046 z M 130.80799,218.35046 C 131.18018,218.32231 131.54658,218.35046 131.92705,218.35046 C 135.40571,218.35046 138.03813,219.56968 139.7604,221.97405 C 140.83468,223.52579 141.41235,225.44417 141.41235,227.72917 C 141.41235,228.99102 141.25674,230.34882 140.93276,231.83236 C 140.93276,231.83236 140.45315,233.69745 140.45315,233.69745 C 140.45315,233.69743 124.82054,233.69745 123.08121,233.69745 C 123.0471,234.05553 123.02792,234.43922 123.02792,234.76321 C 123.02792,236.0933 123.30075,237.13986 123.88053,237.90722 C 124.15603,238.28235 124.47543,238.62021 124.83972,238.8664 C 125.5265,239.31429 126.41306,239.55915 127.45084,239.55915 C 128.71272,239.55913 129.82109,239.2117 130.86128,238.54667 C 131.85033,237.91574 132.79672,236.90753 133.63227,235.50925 C 133.63227,235.50922 140.24,235.50925 140.24,235.50925 C 140.24,235.50922 139.65384,236.78816 139.65384,236.78816 C 138.39197,239.34601 136.63133,241.3411 134.43159,242.75644 C 132.23186,244.17177 129.60368,244.94124 126.7048,244.94124 C 122.93626,244.94123 120.13117,243.72202 118.39184,241.31766 C 116.66958,238.96443 116.29869,235.71173 117.21951,231.6192 C 118.14034,227.45847 119.97771,224.13329 122.6549,221.81418 C 125.05448,219.73356 127.77735,218.5795 130.80799,218.35046 z M 158.57114,218.35046 C 158.94332,218.32231 159.30971,218.35046 159.69018,218.35046 C 163.16885,218.35046 165.80128,219.56968 167.52355,221.97405 C 168.59784,223.52579 169.17548,225.44417 169.17548,227.72917 C 169.17548,228.97397 169.01988,230.31258 168.69588,231.77907 C 168.69588,231.77909 168.2163,233.69745 168.2163,233.69745 C 168.2163,233.69743 152.58367,233.69745 150.84435,233.69745 C 150.82728,233.93615 150.80811,234.15147 150.79106,234.3902 C 150.77827,234.47972 150.79666,234.61561 150.79106,234.70992 C 150.79056,234.7253 150.79106,234.74829 150.79106,234.76321 C 150.79106,235.01901 150.8273,235.27051 150.84435,235.50925 C 150.92958,236.48121 151.18327,237.29334 151.64367,237.90722 C 151.73134,238.02658 151.81375,238.17392 151.91011,238.28024 C 152.69112,239.11578 153.79651,239.55915 155.21398,239.55915 C 156.47586,239.55913 157.60129,239.2117 158.62443,238.54667 C 159.61347,237.91574 160.55985,236.90753 161.39541,235.50925 C 161.39541,235.50922 168.05643,235.50925 168.05643,235.50925 C 168.05642,235.50922 167.41697,236.78816 167.41697,236.78816 C 166.15511,239.34601 164.39447,241.3411 162.19473,242.75644 C 159.99499,244.17177 157.36682,244.94124 154.46795,244.94124 C 150.69942,244.94123 147.89432,243.72202 146.15499,241.31766 C 145.02954,239.78294 144.50305,237.82835 144.50305,235.50925 C 144.50305,235.15113 144.52223,234.76534 144.55634,234.3902 C 144.62457,233.50349 144.76097,232.60824 144.98265,231.6192 C 145.90349,227.47552 147.68756,224.13329 150.36475,221.81418 C 152.76432,219.73356 155.5405,218.5795 158.57114,218.35046 z M 234.18705,218.35046 C 234.56789,218.32117 234.91817,218.35046 235.3061,218.35046 C 238.85297,218.35046 241.5792,219.5505 243.35262,221.92076 C 245.10902,224.29099 245.53531,227.4883 244.63153,231.51262 C 243.9324,234.65025 242.92206,237.18462 241.54083,239.02627 C 240.15957,240.86792 238.39895,242.37276 236.31857,243.39589 C 234.25529,244.41903 232.07044,244.94124 229.87071,244.94124 C 226.25564,244.94123 223.56352,243.70496 221.82419,241.31766 C 220.69873,239.80002 220.11897,237.8454 220.11897,235.50925 C 220.11899,234.24738 220.25753,232.90665 220.59857,231.40606 C 221.62172,226.83605 223.71059,223.35528 226.78,221.12144 C 229.03301,219.4951 231.52114,218.55538 234.18705,218.35046 z M 327.81438,218.35046 C 328.26398,218.32271 328.68031,218.35046 329.14658,218.35046 C 331.29517,218.35046 332.98333,218.56786 334.26225,219.09648 C 335.62643,219.64217 336.59414,220.41377 337.13981,221.33459 C 337.66845,222.20422 337.93914,223.27215 337.93914,224.58516 C 337.93915,224.58518 337.29966,228.4752 337.29966,228.4752 C 337.29969,228.4752 336.12734,233.75074 336.12734,233.75074 C 335.12123,238.2525 334.89958,239.94069 334.84841,240.57163 C 334.79726,241.42425 334.87612,242.25553 335.11486,243.02288 C 335.11488,243.02286 335.54116,244.40837 335.54116,244.40837 C 335.54118,244.40835 329.25316,244.40837 329.25316,244.40837 C 329.25314,244.40835 328.98671,243.60904 328.98671,243.60904 C 328.8844,243.23392 328.91424,242.75644 328.88014,242.33013 C 327.68649,243.06338 326.4907,243.71349 325.41641,244.08864 C 323.83057,244.63433 322.18502,244.94124 320.5139,244.94124 C 317.61504,244.94123 315.46858,244.1867 314.1726,242.70314 C 313.18358,241.61181 312.73383,240.27747 312.73383,238.75982 C 312.73381,238.18005 312.81056,237.57895 312.94697,236.94803 C 313.23685,235.65206 313.76335,234.452 314.59891,233.37771 C 315.41742,232.32045 316.38514,231.45082 317.47647,230.81989 C 318.53373,230.18897 319.71245,229.74134 320.94021,229.43439 C 320.94019,229.43439 324.72367,228.79493 324.72367,228.79493 C 327.63961,228.45387 329.81588,228.02972 331.38469,227.56931 C 331.41881,227.39879 331.49126,227.19629 331.49126,227.19629 C 331.73852,226.09911 331.70758,225.27441 331.43797,224.85161 C 331.41813,224.82434 331.35379,224.76847 331.3314,224.74503 C 331.27384,224.68368 331.18537,224.58724 331.11824,224.53188 C 330.47689,224.02435 329.38318,223.78585 327.92096,223.78585 C 326.26689,223.78585 325.0434,224.05656 324.19078,224.58516 C 323.35523,225.11379 322.58147,226.0815 321.89939,227.46272 C 321.89938,227.46271 315.45152,227.46272 315.45152,227.46272 C 315.45154,227.46271 316.03769,226.18381 316.03769,226.18381 C 316.80502,224.41036 317.71947,222.93963 318.86197,221.81418 C 320.00447,220.68871 321.54769,219.81694 323.33817,219.20307 C 324.71033,218.7501 326.20867,218.44953 327.81438,218.35046 z M 354.83149,218.35046 C 355.07195,218.3209 355.33505,218.35046 355.57752,218.35046 C 357.12925,218.35046 358.58297,218.81726 359.94715,219.78923 C 359.94717,219.78925 360.74647,220.3754 360.74647,220.3754 C 360.74648,220.3754 357.44261,225.8108 357.44261,225.8108 C 357.44262,225.81078 356.53671,225.17134 356.53671,225.17134 C 355.87168,224.74505 355.1917,224.53188 354.45847,224.53188 C 353.81046,224.5319 353.17103,224.76208 352.54008,225.17134 C 351.89211,225.59764 351.42104,226.16249 350.99474,226.92985 C 350.29558,228.24289 349.75418,229.71362 349.39609,231.29948 C 349.39607,231.29949 346.46524,244.40837 346.46524,244.40837 C 346.46526,244.40835 340.28382,244.40837 340.28382,244.40837 C 340.28382,244.40835 345.98564,218.83005 345.98564,218.83005 C 345.98563,218.83006 351.74076,218.83005 351.74076,218.83005 C 351.74076,218.83006 351.59582,219.60593 351.52762,219.89581 C 351.80044,219.6912 352.07115,219.40982 352.32694,219.25635 C 353.13957,218.76345 353.97265,218.456 354.83149,218.35046 z M 373.10932,218.35046 C 373.48117,218.32231 373.84791,218.35046 374.22838,218.35046 C 377.70704,218.35046 380.35651,219.56968 382.06175,221.97405 C 383.1531,223.52579 383.71368,225.44417 383.71368,227.72917 C 383.71366,228.99102 383.50478,230.34882 383.18079,231.83236 C 383.18079,231.83236 382.75449,233.69745 382.75449,233.69745 C 382.75448,233.69743 367.10481,233.69745 365.38255,233.69745 C 365.34844,234.05553 365.27596,234.43922 365.27596,234.76321 C 365.27596,236.0933 365.56585,237.13986 366.12858,237.90722 C 366.21624,238.02658 366.35158,238.17392 366.4483,238.28024 C 366.50432,238.33991 366.60242,238.43797 366.66146,238.49338 C 367.42381,239.1864 368.46127,239.55915 369.75216,239.55915 C 371.01405,239.55913 372.12243,239.2117 373.16261,238.54667 C 374.15166,237.91574 375.081,236.90753 375.9336,235.50925 C 375.93358,235.50922 382.59462,235.50925 382.59462,235.50925 C 382.59462,235.50922 381.95516,236.78816 381.95516,236.78816 C 380.69329,239.34601 378.91561,241.3411 376.73292,242.75644 C 374.51615,244.17177 371.92207,244.94124 369.00613,244.94124 C 365.23762,244.94123 362.48579,243.72202 360.74647,241.31766 C 359.02417,238.96443 358.61707,235.71173 359.52084,231.6192 C 360.44165,227.45847 362.22575,224.13329 364.90295,221.81418 C 367.3177,219.73356 370.08147,218.5795 373.10932,218.35046 z M 279.80172,218.83005 C 279.80174,218.83006 286.14303,218.83005 286.14303,218.83005 C 286.14305,218.83006 286.92529,234.00866 286.94234,234.23032 C 287.19812,233.68676 287.39658,233.22945 287.42195,233.16457 C 287.42196,233.16458 294.40269,218.83005 294.40269,218.83005 C 294.40271,218.83006 300.2111,218.83005 300.2111,218.83005 C 300.21109,218.83006 300.74398,233.82533 300.74398,233.91059 C 300.91453,233.60368 308.68392,218.83005 308.68392,218.83005 C 308.6839,218.83006 314.97193,218.83005 314.97193,218.83005 C 314.97192,218.83006 301.117,244.40837 301.117,244.40837 C 301.11702,244.40835 295.41517,244.40837 295.41517,244.40837 C 295.41517,244.40835 294.86311,230.53853 294.829,229.75411 C 292.47577,234.57991 287.68837,244.40837 287.68837,244.40837 C 287.68837,244.40835 281.82669,244.40837 281.82669,244.40837 C 281.82669,244.40835 279.80172,218.83005 279.80172,218.83005 z M 130.91457,223.67927 C 129.44564,223.74129 128.11162,224.27076 126.86468,225.27791 C 125.87566,226.06232 125.20847,227.13875 124.67985,228.31534 C 124.67985,228.31536 135.17762,228.31534 135.17762,228.31534 C 135.19469,228.12778 135.23091,227.8997 135.23091,227.72917 C 135.23089,226.75722 135.05825,226.00264 134.75132,225.49107 C 134.00104,224.2633 132.88837,223.67927 131.2343,223.67927 C 131.1352,223.67927 131.0125,223.67515 130.91457,223.67927 z M 158.6777,223.67927 C 157.20878,223.74129 155.87475,224.27076 154.6278,225.27791 C 153.63876,226.06232 152.98867,227.13875 152.443,228.31534 C 152.443,228.31536 162.94076,228.31534 162.94076,228.31534 C 162.9578,228.12778 162.99405,227.8997 162.99405,227.72917 C 162.99404,226.75722 162.83845,226.00264 162.51445,225.49107 C 162.36551,225.24168 162.16402,224.99368 161.98157,224.79833 C 161.26958,224.06261 160.28967,223.67927 158.99744,223.67927 C 158.89833,223.67927 158.77564,223.67515 158.6777,223.67927 z M 373.42906,223.67927 C 371.9185,223.7258 370.50781,224.23721 369.21929,225.27791 C 368.24731,226.06232 367.58014,227.13875 367.03447,228.31534 C 367.03449,228.31536 377.47896,228.31534 377.47896,228.31534 C 377.49599,228.12778 377.53225,227.8997 377.53225,227.72917 C 377.53224,226.75722 377.37665,226.00264 377.05265,225.49107 C 376.31941,224.28035 375.18969,223.69633 373.53563,223.67927 C 373.48661,223.6798 373.47779,223.67777 373.42906,223.67927 z M 233.81404,223.78585 C 232.40441,223.95324 231.09368,224.59636 229.87071,225.70422 C 228.40423,227.03431 227.34059,229.12319 226.72672,231.88565 C 226.47093,233.0452 226.35369,234.03636 226.35369,234.92307 C 226.35371,236.13377 226.58602,237.08444 227.04644,237.80063 C 227.16901,237.98447 227.3316,238.17874 227.47275,238.33352 C 228.23079,239.1384 229.28934,239.55915 230.61675,239.55915 C 232.33901,239.55913 233.85667,238.91756 235.3061,237.58748 C 236.77262,236.24034 237.81917,234.13014 238.4501,231.29948 C 239.0299,228.70753 238.94888,226.77212 238.13038,225.54436 C 237.34598,224.3507 236.19922,223.78585 234.61337,223.78585 C 234.34426,223.78585 234.07507,223.75484 233.81404,223.78585 z M 330.10577,233.11128 C 328.65636,233.50346 327.0321,233.83386 324.88353,234.12376 C 323.28064,234.3625 322.13812,234.614 321.47308,234.86979 C 320.89332,235.10851 320.4265,235.4389 320.0343,235.88227 C 319.65914,236.30854 319.40764,236.75619 319.28828,237.26776 C 319.25419,237.4724 319.23498,237.6834 319.23498,237.85393 C 319.23498,237.86777 319.23467,237.89351 319.23498,237.90722 C 319.23677,237.9478 319.23053,238.02792 319.23498,238.06707 C 319.24566,238.14444 319.26715,238.26147 319.28828,238.33352 C 319.2959,238.35725 319.33279,238.41691 319.34155,238.44009 C 319.36021,238.48593 319.3717,238.5562 319.39484,238.59996 C 319.41911,238.64322 319.47274,238.71845 319.50142,238.75982 C 319.54606,238.82119 319.60692,238.91542 319.66129,238.97297 C 320.0876,239.45043 320.93807,239.66572 322.16583,239.66572 C 323.51298,239.66573 324.80893,239.40994 326.00258,238.81311 C 327.1792,238.23334 328.12771,237.36793 328.82685,236.36185 C 329.33844,235.64565 329.74768,234.54365 330.10577,233.11128 z"
    +         id="path2579" />
    +      <path
    +         d="M 373.60344,223.69791 C 373.58638,223.69791 373.56933,223.69791 373.55228,223.69791 C 375.20635,223.71496 376.29769,224.27769 377.03093,225.48839 C 377.35493,225.99996 377.52545,226.76731 377.52545,227.73929 C 377.52545,227.90981 377.49134,228.13149 377.47429,228.31906 C 377.47429,228.31906 377.5425,228.31906 377.5425,228.31906 C 377.5425,228.13149 377.5766,227.90981 377.5766,227.73929 C 377.5766,226.76731 377.42313,225.99996 377.09914,225.48839 C 376.3659,224.26063 375.2575,223.69791 373.60344,223.69791 z"
    +         id="path2583"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter" />
    +      <g
    +         id="g2587"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,26.564476,303.23111)">
    +        <path
    +           id="path2589"
    +           d="M 0,36 C 0,36 7.46,36 7.46,36 C 7.46,36 10.81,22 10.81,22 C 10.81,22 22.93,22 22.93,22 C 22.93,22 24.49,16 24.49,16 C 24.49,16 12.32,16 12.32,16 C 12.32,16 14.34,7 14.34,7 C 14.34,7 27.29,7 27.29,7 C 27.29,7 28.85,0 28.85,0 C 28.85,0 8.4,0 8.4,0 C 8.4,0 0,36 0,36 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2591"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,70.814976,320.28331)">
    +        <path
    +           id="path2593"
    +           d="M 7.51,26 C 7.51,26 9.75,16.6 9.75,16.6 C 10.93,11.51 13.42,7 18.13,7 C 18.55,7 18.96,7.21 19.27,7.26 C 19.27,7.26 21.09,0.05 21.09,0.05 C 20.67,0.05 20.21,0 19.69,0 C 16.22,0 13.31,2.44 11.37,5.94 C 11.37,5.94 11.17,5.94 11.17,5.94 C 11.46,4.23 11.71,2.61 11.9,1 C 11.9,1 5.47,1 5.47,1 C 5.1,3.08 4.53,7.15 3.66,10.82 C 3.66,10.82 0,26 0,26 C 0,26 7.51,26 7.51,26 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2595"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,105.99378,320.28331)">
    +        <path
    +           id="path2597"
    +           d="M 20.06,19.25 C 17.99,20.26 15.63,20 12.88,20 C 10.71,20 9.03,19.62 8.11,18.88 C 7.63,18.07 7.43,16.81 7.47,16 C 17.6,16.27 23.99,13.93 24.31,7.53 C 24.55,2.7 21.02,0 15.89,0 C 6.73,0 0.73,8.08 0.34,15.86 C 0,22.65 3.52,26 10.78,26 C 13.57,26 17.27,25.68 20.3,24.77 C 20.3,24.77 20.06,19.25 20.06,19.25 z M 17.32,7.53 C 17.2,9.91 14.26,10.05 8.47,10 C 9.1,7.91 11.22,6 14.69,6 C 16.4,6 17.38,6.65 17.32,7.53 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2599"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,151.21628,320.28331)">
    +        <path
    +           id="path2601"
    +           d="M 20.05,19.25 C 17.98,20.26 15.62,20 12.88,20 C 10.7,20 9.03,19.62 8.11,18.88 C 7.63,18.07 7.42,16.81 7.46,16 C 17.6,16.27 23.98,13.93 24.31,7.53 C 24.55,2.7 21.02,0 15.89,0 C 6.72,0 0.72,8.08 0.33,15.86 C 0,22.65 3.52,26 10.77,26 C 13.57,26 17.27,25.68 20.3,24.77 C 20.3,24.77 20.05,19.25 20.05,19.25 z M 17.32,7.53 C 17.2,9.91 14.26,10.05 8.46,10 C 9.1,7.91 11.21,6 14.68,6 C 16.39,6 17.38,6.65 17.32,7.53 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2603"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,212.45078,320.28331)">
    +        <path
    +           id="path2605"
    +           d="M 22.74,26 C 22.8,22.83 23.56,17.85 24.35,14.58 C 24.35,14.58 27.56,1 27.56,1 C 25.52,0.31 22.34,0 19.28,0 C 6.86,0 0.7,9.2 0.27,17.82 C 0,23.23 2.93,26 7.49,26 C 10.44,26 13.77,24.57 16.36,20.27 C 16.36,20.27 16.47,20.27 16.47,20.27 C 16.27,22.34 16.03,24.35 15.9,26 C 15.9,26 22.74,26 22.74,26 z M 17.61,11.72 C 16.15,18.08 13.17,20 10.95,20 C 8.88,20 7.98,18.53 8.1,16.39 C 8.34,11.56 12.16,6 16.98,6 C 17.76,6 18.37,5.86 18.94,5.72 C 18.94,5.72 17.61,11.72 17.61,11.72 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2607"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,259.56608,320.28331)">
    +        <path
    +           id="path2609"
    +           d="M 0,24.82 C 1.44,25.94 4.46,25.95 7.61,26 C 14.34,26.05 19.42,23.11 19.72,17.71 C 19.89,14.11 17.1,11.98 14.37,10.55 C 12.4,9.6 11.41,8.69 11.46,7.63 C 11.53,6.2 12.87,6 14.84,6 C 17.06,6 18.84,6.27 19.86,6.47 C 19.86,6.47 21.88,1.05 21.88,1.05 C 20.73,0.36 18.43,0 15.48,0 C 8.95,0 4.17,3.45 3.9,8.69 C 3.74,11.93 6.07,14.11 8.89,15.59 C 11.17,16.76 11.95,17.66 11.89,18.93 C 11.82,20.21 10.68,20 8.61,20 C 6.18,20 3.49,19.68 2.07,19.46 C 2.07,19.46 0,24.82 0,24.82 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2611"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,314.90048,301.52591)">
    +        <path
    +           id="path2613"
    +           d="M 7.45,37 C 7.45,37 13.5,12 13.5,12 C 13.5,12 6.09,12 6.09,12 C 6.09,12 0,37 0,37 C 0,37 7.45,37 7.45,37 z M 10.92,9 C 13.46,9 15.72,6.9 15.86,3.3 C 15.98,0.86 14.4,0 12.07,0 C 9.64,0 7.42,1.58 7.29,3.94 C 7.17,6.32 8.75,9 10.92,9 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2615"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,339.26808,321.45991)">
    +        <path
    +           id="path2617"
    +           d="M 7.46,25.31 C 7.46,25.31 10.1,14.05 10.1,14.05 C 11.47,8.32 14.42,6.31 16.85,6.31 C 18.77,6.31 19.33,7.13 19.24,8.32 C 19.19,9.28 19.04,10.29 18.84,11.19 C 18.84,11.19 15.48,25.31 15.48,25.31 C 15.48,25.31 22.94,25.31 22.94,25.31 C 22.94,25.31 26.48,10.5 26.48,10.5 C 26.75,9.22 27.05,7.31 27.11,6.15 C 27.33,1.64 25.08,0 20.94,0 C 17.62,0 14.39,1.54 11.84,4.88 C 11.84,4.88 11.74,4.88 11.74,4.88 C 11.74,4.88 12.42,0.31 12.42,0.31 C 12.42,0.31 5.84,0.31 5.84,0.31 C 5.41,2.45 4.86,5.04 4.08,8.06 C 4.08,8.06 0,25.31 0,25.31 C 0,25.31 7.46,25.31 7.46,25.31 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2619"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,406.72668,303.23111)">
    +        <path
    +           id="path2621"
    +           d="M 0,36 C 0,36 7.46,36 7.46,36 C 7.46,36 10.82,22 10.82,22 C 10.82,22 22.93,22 22.93,22 C 22.93,22 24.49,16 24.49,16 C 24.49,16 12.32,16 12.32,16 C 12.32,16 14.34,7 14.34,7 C 14.34,7 27.29,7 27.29,7 C 27.29,7 28.85,0 28.85,0 C 28.85,0 8.4,0 8.4,0 C 8.4,0 0,36 0,36 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2623"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,450.97718,320.28331)">
    +        <path
    +           id="path2625"
    +           d="M 7.51,26 C 7.51,26 9.75,16.6 9.75,16.6 C 10.93,11.51 13.42,7 18.13,7 C 18.55,7 18.96,7.21 19.27,7.26 C 19.27,7.26 21.09,0.05 21.09,0.05 C 20.67,0.05 20.21,0 19.69,0 C 16.22,0 13.31,2.44 11.37,5.94 C 11.37,5.94 11.17,5.94 11.17,5.94 C 11.46,4.23 11.71,2.61 11.9,1 C 11.9,1 5.47,1 5.47,1 C 5.11,3.08 4.53,7.15 3.66,10.82 C 3.66,10.82 0,26 0,26 C 0,26 7.51,26 7.51,26 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2627"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,486.15598,320.28331)">
    +        <path
    +           id="path2629"
    +           d="M 20.06,19.25 C 17.99,20.26 15.63,20 12.88,20 C 10.71,20 9.03,19.62 8.11,18.88 C 7.63,18.07 7.43,16.81 7.47,16 C 17.6,16.27 23.99,13.93 24.31,7.53 C 24.55,2.7 21.02,0 15.89,0 C 6.73,0 0.73,8.08 0.34,15.86 C 0,22.65 3.53,26 10.78,26 C 13.57,26 17.28,25.68 20.3,24.77 C 20.3,24.77 20.06,19.25 20.06,19.25 z M 17.32,7.53 C 17.2,9.91 14.26,10.05 8.47,10 C 9.1,7.91 11.22,6 14.69,6 C 16.4,6 17.38,6.65 17.32,7.53 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2631"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,531.37838,320.28331)">
    +        <path
    +           id="path2633"
    +           d="M 20.05,19.25 C 17.98,20.26 15.62,20 12.88,20 C 10.7,20 9.03,19.62 8.11,18.88 C 7.63,18.07 7.42,16.81 7.46,16 C 17.6,16.27 23.98,13.93 24.31,7.53 C 24.55,2.7 21.02,0 15.89,0 C 6.72,0 0.72,8.08 0.33,15.86 C 0,22.65 3.52,26 10.77,26 C 13.57,26 17.27,25.68 20.3,24.77 C 20.3,24.77 20.05,19.25 20.05,19.25 z M 17.32,7.53 C 17.2,9.91 14.26,10.05 8.46,10 C 9.1,7.91 11.21,6 14.68,6 C 16.39,6 17.38,6.65 17.32,7.53 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2635"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,576.36218,301.52591)">
    +        <path
    +           id="path2637"
    +           d="M 23.31,0 C 23.31,0 20.5,11.36 20.5,11.36 C 19.48,10.94 18.15,11 17.11,11 C 7.53,11 0.75,19.2 0.3,28.08 C 0,34.34 3.34,37 7.64,37 C 10.65,37 13.82,35.67 16.22,32.23 C 16.22,32.23 16.32,32.23 16.32,32.23 C 16.32,32.23 15.75,37 15.75,37 C 15.75,37 22.53,37 22.53,37 C 22.84,34 23.49,30.43 24.22,27.17 C 24.22,27.17 30.71,0 30.71,0 C 30.71,0 23.31,0 23.31,0 z M 17.47,24.42 C 16.3,29.35 13.54,31 11.36,31 C 9.19,31 7.98,29.49 8.13,26.8 C 8.38,21.82 11.8,17 16.25,17 C 17.5,17 18.57,17.19 19.16,17.47 C 19.16,17.47 17.47,24.42 17.47,24.42 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2639"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,627.02428,320.28331)">
    +        <path
    +           id="path2641"
    +           d="M 10.61,26 C 19.31,26 26.02,19.41 26.49,10.44 C 26.78,4.5 23.08,0 16.25,0 C 7.23,0 0.76,7.3 0.31,16.12 C 0,22.54 4.14,26 10.61,26 z M 11.78,20 C 9.24,20 7.84,18.38 7.99,15.96 C 8.19,11.93 10.68,6 14.97,6 C 17.93,6 18.84,8.27 18.72,10.5 C 18.5,14.9 15.82,20 11.78,20 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <g
    +         id="g2643"
    +         style="fill:#bd0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter"
    +         transform="matrix(1.705222,0,0,1.705222,675.72548,320.28331)">
    +        <path
    +           id="path2645"
    +           d="M 7.2,26 C 7.2,26 9.9,14.58 9.9,14.58 C 11.03,9.49 13.85,6 16.38,6 C 18.2,6 18.7,7.33 18.61,9.07 C 18.56,9.97 18.36,10.98 18.15,11.98 C 18.15,11.98 14.81,26 14.81,26 C 14.81,26 22.01,26 22.01,26 C 22.01,26 24.71,14.53 24.71,14.53 C 25.95,9.28 28.61,6 31.09,6 C 32.8,6 33.51,7.22 33.43,8.96 C 33.38,9.97 33.17,11.08 32.91,12.09 C 32.91,12.09 29.67,26 29.67,26 C 29.67,26 36.92,26 36.92,26 C 36.92,26 40.41,11.19 40.41,11.19 C 40.68,9.86 40.99,7.79 41.04,6.73 C 41.26,2.33 39.11,0 35.23,0 C 31.91,0 28.68,1.5 26.23,4.66 C 26.14,2.38 24.51,0 20.47,0 C 17.2,0 14.08,1.48 11.58,4.83 C 11.58,4.83 11.48,4.83 11.48,4.83 C 11.48,4.83 12.15,1 12.15,1 C 12.15,1 5.73,1 5.73,1 C 5.31,3.14 4.8,5.73 4.02,8.75 C 4.02,8.75 0,26 0,26 C 0,26 7.2,26 7.2,26 z"
    +           style="fill:#bd0000;fill-opacity:1" />
    +      </g>
    +      <path
    +         style="fill:#bd0000;fill-opacity:0;fill-rule:evenodd;stroke:#bd0000;stroke-width:8.52610779;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
    +         id="path2647"
    +         d="M 417.07944,250.20635 C 417.77165,251.98597 418.46389,253.76268 419.18494,255.50045 C 420.2954,257.86122 421.5789,260.12105 423.12198,262.2309 C 431.45755,273.56176 445.41744,279.76585 463.14129,281.31037 C 463.14129,281.31037 482.20635,281.31037 482.20635,281.31037 C 488.23446,280.84023 494.55102,279.96341 501.09833,278.68278 C 512.39026,276.47488 524.36,273.08298 536.79121,268.55034 C 546.20836,265.11659 555.88511,261.0541 565.70606,256.33256 C 587.09294,246.08041 609.18647,232.85747 630.86181,216.90021 C 638.00038,211.64939 644.85053,206.26158 651.42668,200.78291 C 657.45481,195.76715 663.23778,190.67349 668.76114,185.52364 C 684.17759,170.66675 695.81564,155.57767 702.40621,142.32874 C 709.27073,128.53184 710.64082,116.73516 705.01649,109.30381 C 701.56976,104.74235 695.80122,102.29792 688.37421,101.72251 C 721.83174,76.6178 741.32949,46.16418 734.33517,26.96361 C 732.11421,20.83591 727.22536,16.26441 720.21659,13.73631 C 717.10162,12.61581 713.59716,11.90621 709.77549,11.58321 C 709.77549,11.58321 699.47866,11.58321 699.47866,11.58321 C 685.10058,12.62011 664.19202,17.76851 646.45376,26.46171"
    +         sodipodi:nodetypes="cccccssccccscccsccc" />
    +    </g>
    +  </g>
    +</svg>
    diff --git a/htdocs/takepos/dev/img/gplv3-127x51.png b/htdocs/takepos/dev/img/gplv3-127x51.png
    new file mode 100644
    index 00000000000..3e9136e6266
    Binary files /dev/null and b/htdocs/takepos/dev/img/gplv3-127x51.png differ
    diff --git a/htdocs/takepos/dev/img/gplv3-88x31.png b/htdocs/takepos/dev/img/gplv3-88x31.png
    new file mode 100644
    index 00000000000..ba78d4c4941
    Binary files /dev/null and b/htdocs/takepos/dev/img/gplv3-88x31.png differ
    diff --git a/htdocs/takepos/dev/img/takepos.svg b/htdocs/takepos/dev/img/takepos.svg
    new file mode 100644
    index 00000000000..f51ead1a94e
    --- /dev/null
    +++ b/htdocs/takepos/dev/img/takepos.svg
    @@ -0,0 +1,70 @@
    +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
    +<!-- Created with Inkscape (http://www.inkscape.org/) -->
    +
    +<svg
    +   xmlns:dc="http://purl.org/dc/elements/1.1/"
    +   xmlns:cc="http://creativecommons.org/ns#"
    +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    +   xmlns:svg="http://www.w3.org/2000/svg"
    +   xmlns="http://www.w3.org/2000/svg"
    +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    +   width="14"
    +   height="14"
    +   id="svg2"
    +   version="1.1"
    +   inkscape:version="0.48.3.1 r9886"
    +   sodipodi:docname="object_mymodule.svg"
    +   inkscape:export-filename="/home/raph/Travail/src/zenfusion-modules/img/object_mymodule.png"
    +   inkscape:export-xdpi="90"
    +   inkscape:export-ydpi="90">
    +  <defs
    +     id="defs4" />
    +  <sodipodi:namedview
    +     id="base"
    +     pagecolor="#ffffff"
    +     bordercolor="#666666"
    +     borderopacity="1.0"
    +     inkscape:pageopacity="0.0"
    +     inkscape:pageshadow="2"
    +     inkscape:zoom="3.959798"
    +     inkscape:cx="24.310822"
    +     inkscape:cy="18.155032"
    +     inkscape:document-units="px"
    +     inkscape:current-layer="layer1"
    +     showgrid="false"
    +     inkscape:window-width="1920"
    +     inkscape:window-height="1021"
    +     inkscape:window-x="1080"
    +     inkscape:window-y="867"
    +     inkscape:window-maximized="1" />
    +  <metadata
    +     id="metadata7">
    +    <rdf:RDF>
    +      <cc:Work
    +         rdf:about="">
    +        <dc:format>image/svg+xml</dc:format>
    +        <dc:type
    +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
    +        <dc:title></dc:title>
    +      </cc:Work>
    +    </rdf:RDF>
    +  </metadata>
    +  <g
    +     inkscape:label="Calque 1"
    +     inkscape:groupmode="layer"
    +     id="layer1"
    +     transform="translate(0,-1038.3622)">
    +    <text
    +       xml:space="preserve"
    +       style="font-size:12.99629784px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Serif;-inkscape-font-specification:DejaVu Serif"
    +       x="0.35272363"
    +       y="1050.0994"
    +       id="text2985"
    +       sodipodi:linespacing="125%"><tspan
    +         sodipodi:role="line"
    +         id="tspan2987"
    +         x="0.35272363"
    +         y="1050.0994">M</tspan></text>
    +  </g>
    +</svg>
    diff --git a/htdocs/takepos/floors.php b/htdocs/takepos/floors.php
    new file mode 100644
    index 00000000000..325e806af30
    --- /dev/null
    +++ b/htdocs/takepos/floors.php
    @@ -0,0 +1,178 @@
    +<?php
    +/* Copyright (C) 2018	Andreu Bisquerra	<jove@bisquerra.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +//if (! defined('NOREQUIREUSER'))	define('NOREQUIREUSER','1');	// Not disabled cause need to load personalized language
    +//if (! defined('NOREQUIREDB'))		define('NOREQUIREDB','1');		// Not disabled cause need to load personalized language
    +//if (! defined('NOREQUIRESOC'))		define('NOREQUIRESOC','1');
    +//if (! defined('NOREQUIRETRAN'))		define('NOREQUIRETRAN','1');
    +if (! defined('NOCSRFCHECK'))		define('NOCSRFCHECK','1');
    +if (! defined('NOTOKENRENEWAL'))	define('NOTOKENRENEWAL','1');
    +if (! defined('NOREQUIREMENU'))		define('NOREQUIREMENU','1');
    +if (! defined('NOREQUIREHTML'))		define('NOREQUIREHTML','1');
    +if (! defined('NOREQUIREAJAX'))		define('NOREQUIREAJAX','1');
    +
    +$_GET['theme']="md"; // Force theme. MD theme provides better look and feel to TakePOS
    +
    +require '../main.inc.php';	// Load $user and permissions
    +
    +$langs->loadLangs(array("bills","orders","commercial","cashdesk"));
    +
    +$floor=GETPOST('floor','alpha');
    +if ($floor=="") $floor=1;
    +$id = GETPOST('id','int');
    +$action = GETPOST('action','alpha');
    +$left = GETPOST('left','alpha');
    +$top = GETPOST('top','alpha');
    +$place = GETPOST('place','int');
    +$newname = GETPOST('newname');
    +$mode = GETPOST('mode','alpha');
    +
    +if ($action=="getTables"){
    +    $sql="SELECT * from ".MAIN_DB_PREFIX."takepos_floor_tables where floor=".$floor;
    +    $resql = $db->query($sql);
    +    $rows = array();
    +    while($row = $db->fetch_array ($resql)){
    +        $rows[] = $row;
    +    }
    +    echo json_encode($rows);
    +    exit;
    +}
    +
    +if ($action=="update")
    +{
    +    if ($left>95) $left=95;
    +    if ($top>95) $top=95;
    +    if ($left>3 or $top>4) $db->query("update ".MAIN_DB_PREFIX."takepos_floor_tables set leftpos=$left, toppos=$top where label='$place'");
    +    else $db->query("delete from ".MAIN_DB_PREFIX."takepos_floor_tables where label='$place'");
    +}
    +
    +if ($action=="updatename")
    +{
    +	$newname = preg_replace("/[^a-zA-Z0-9\s]/", "", $newname); // Only English chars
    +	if (strlen($newname) > 3) $newname = substr($newname, 0, 3); // Only 3 chars
    +    $db->query("update ".MAIN_DB_PREFIX."takepos_floor_tables set label='$newname' where label='$place'");
    +}
    +
    +if ($action=="add")
    +{
    +    $asdf=$db->query("insert into ".MAIN_DB_PREFIX."takepos_floor_tables values ('', '', '', '45', '45', $floor)");
    +	$db->query("update ".MAIN_DB_PREFIX."takepos_floor_tables set label=rowid where label=''"); // No empty table names
    +}
    +
    +// Title
    +$title='TakePOS - Dolibarr '.DOL_VERSION;
    +if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $title='TakePOS - '.$conf->global->MAIN_APPLICATION_TITLE;
    +top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
    +?>
    +<link rel="stylesheet" href="css/pos.css?a=xxx">
    +<style type="text/css">
    +div.tablediv{
    +background-image:url(img/table.gif);
    +-moz-background-size:100% 100%;
    +-webkit-background-size:100% 100%;
    +background-size:100% 100%;
    +height:10%;
    +width:10%;
    +text-align: center;
    +font-size:300%;
    +color:white;
    +}
    +html, body
    +{
    +height: 100%;
    +}
    +</style>
    +
    +<script>
    +var DragDrop='<?php echo $langs->trans("DragDrop"); ?>';
    +
    +function updateplace(idplace, left, top) {
    +	$.ajax({
    +		type: "POST",
    +		url: "floors.php",
    +		data: { action: "update", left: left, top: top, place: idplace }
    +		}).done(function( msg ) {
    +		window.location.href='floors.php?mode=edit&floor=<?php echo $floor;?>';
    +	});
    +}
    +
    +function updatename(before) {
    +	var after=$("#"+before).text();
    +	$.ajax({
    +		type: "POST",
    +		url: "floors.php",
    +		data: { action: "updatename", place: before, newname: after }
    +		}).done(function( msg ) {
    +		window.location.href='floors.php?mode=edit&floor=<?php echo $floor;?>';
    +		});
    +	}
    +
    +function LoadPlace(place){
    +	parent.location.href='takepos.php?place='+place;
    +}
    +
    +
    +$( document ).ready(function() {
    +	$.getJSON('./floors.php?action=getTables&floor=<?php echo $floor; ?>', function(data) {
    +        $.each(data, function(key, val) {
    +			<?php if ($mode=="edit"){?>
    +			$('body').append('<div class="tablediv" contenteditable onblur="updatename('+val.label+');" style="position: absolute; left: '+val.leftpos+'%; top: '+val.toppos+'%;" id="'+val.label+'">'+val.label+'</div>');
    +			$( "#"+val.label ).draggable(
    +				{
    +					start: function() {
    +					$("#add").html("<?php echo $langs->trans("Delete"); ?>");
    +                    },
    +					stop: function() {
    +					var left=$(this).offset().left*100/$(window).width();
    +					var top=$(this).offset().top*100/$(window).height();
    +					updateplace($(this).attr('id'), left, top);
    +					}
    +				}
    +			);
    +			//simultaneous draggable and contenteditable
    +			$('#'+val.label).draggable().bind('click', function(){
    +				$(this).focus();
    +			})
    +			<?php }
    +			else {?>
    +			$('body').append('<div class="tablediv" onclick="LoadPlace('+val.label+');" style="position: absolute; left: '+val.leftpos+'%; top: '+val.toppos+'%;" id="'+val.label+'">'+val.label+'</div>');
    +			<?php } ?>
    +		});
    +	});
    +});
    +
    +</script>
    +</head>
    +<body style="overflow: hidden">
    +<?php if ($user->admin){?>
    +<div style="position: absolute; left: 0.1%; top: 0.8%; width:8%; height:11%;">
    +<?php if ($mode=="edit"){?>
    +<a id="add" onclick="window.location.href='floors.php?mode=edit&action=add&floor=<?php echo $floor;?>';"><?php echo $langs->trans("AddTable"); ?></a>
    +<?php } else { ?>
    +<a onclick="window.location.href='floors.php?mode=edit&floor=<?php echo $floor;?>';"><?php echo $langs->trans("Edit"); ?></a>
    +<?php } ?>
    +</div>
    +<?php }
    +?>
    +
    +<div style="position: absolute; left: 25%; bottom: 8%; width:50%; height:3%;">
    +    <center>
    +    <h1><img src="./img/arrow-prev.png" width="5%" onclick="location.href='floors.php?floor=<?php if ($floor>1) { $floor--; echo $floor; $floor++;} else echo "1"; ?>';"><?php echo $langs->trans("Floor")." ".$floor; ?><img src="./img/arrow-next.png" width="5%" onclick="location.href='floors.php?floor=<?php $floor++; echo $floor; ?>';"></h1>
    +    </center>
    +</div>
    +</body>
    +</html>
    \ No newline at end of file
    diff --git a/htdocs/takepos/freezone.php b/htdocs/takepos/freezone.php
    new file mode 100644
    index 00000000000..702c59541a3
    --- /dev/null
    +++ b/htdocs/takepos/freezone.php
    @@ -0,0 +1,59 @@
    +<?php
    +/* Copyright (C) 2018	Andreu Bisquerra	<jove@bisquerra.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +//if (! defined('NOREQUIREUSER'))	define('NOREQUIREUSER','1');	// Not disabled cause need to load personalized language
    +//if (! defined('NOREQUIREDB'))		define('NOREQUIREDB','1');		// Not disabled cause need to load personalized language
    +//if (! defined('NOREQUIRESOC'))		define('NOREQUIRESOC','1');
    +//if (! defined('NOREQUIRETRAN'))		define('NOREQUIRETRAN','1');
    +if (! defined('NOCSRFCHECK'))		define('NOCSRFCHECK','1');
    +if (! defined('NOTOKENRENEWAL'))	define('NOTOKENRENEWAL','1');
    +if (! defined('NOREQUIREMENU'))		define('NOREQUIREMENU','1');
    +if (! defined('NOREQUIREHTML'))		define('NOREQUIREHTML','1');
    +if (! defined('NOREQUIREAJAX'))		define('NOREQUIREAJAX','1');
    +
    +require '../main.inc.php';	// Load $user and permissions
    +
    +$langs->loadLangs(array("bills", "cashdesk"));
    +
    +$place = GETPOST('place','int');
    +
    +
    +/*
    + * View
    + */
    +
    +top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
    +
    +?>
    +<script>
    +function Save(){
    +	$.get( "invoice.php", { action: "freezone", place: "<?php echo $place;?>", desc:$('#desc').val(), number:$('#price').val()} );
    +	parent.$.colorbox.close();
    +}
    +</script>
    +</head>
    +<body>
    +<br>
    +<center>
    +<input type="text" id="desc" name="desc" style="width:40%;font-size: 200%;" placeholder="<?php echo $langs->trans('Description');?>">
    +<input type="text" id="price" name="price" style="width:15%;font-size: 200%;" placeholder="<?php echo $langs->trans('Price');?>">
    +<input type="hidden" name="place" value="<?php echo $place;?>">
    +<input type="button" style="width:15%;font-size: 200%;" value="OK" onclick="Save();">
    +</center>
    +
    +</body>
    +</html>
    \ No newline at end of file
    diff --git a/htdocs/takepos/genimg/add.jpg b/htdocs/takepos/genimg/add.jpg
    new file mode 100644
    index 00000000000..976fd10697d
    Binary files /dev/null and b/htdocs/takepos/genimg/add.jpg differ
    diff --git a/htdocs/takepos/genimg/empty.jpg b/htdocs/takepos/genimg/empty.jpg
    new file mode 100644
    index 00000000000..8883f7c9957
    Binary files /dev/null and b/htdocs/takepos/genimg/empty.jpg differ
    diff --git a/htdocs/takepos/genimg/index.php b/htdocs/takepos/genimg/index.php
    new file mode 100644
    index 00000000000..ff1b368b743
    --- /dev/null
    +++ b/htdocs/takepos/genimg/index.php
    @@ -0,0 +1,143 @@
    +<?php
    +/* Copyright (C) 2018	Andreu Bisquerra	<jove@bisquerra.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +//if (! defined('NOREQUIREUSER'))	define('NOREQUIREUSER','1');	// Not disabled cause need to load personalized language
    +//if (! defined('NOREQUIREDB'))		define('NOREQUIREDB','1');		// Not disabled cause need to load personalized language
    +if (! defined('NOREQUIRESOC'))		define('NOREQUIRESOC','1');
    +//if (! defined('NOREQUIRETRAN'))		define('NOREQUIRETRAN','1');
    +if (! defined('NOCSRFCHECK'))		define('NOCSRFCHECK','1');
    +if (! defined('NOTOKENRENEWAL'))	define('NOTOKENRENEWAL','1');
    +if (! defined('NOREQUIREMENU'))		define('NOREQUIREMENU','1');
    +if (! defined('NOREQUIREHTML'))		define('NOREQUIREHTML','1');
    +if (! defined('NOREQUIREAJAX'))		define('NOREQUIREAJAX','1');
    +
    +require '../../main.inc.php';	// Load $user and permissions
    +
    +$id= GETPOST('id');
    +$w= GETPOST('w');
    +$h= GETPOST('h');
    +$query= GETPOST('query');
    +
    +
    +
    +/*
    + * View
    + */
    +
    +header('Content-Type: image/jpeg');
    +header('Cache-Control: max-age=604800, public, must-revalidate');
    +header('Pragma: cache');
    +
    +if ($query=="cat")
    +{
    +	require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
    +	require_once DOL_DOCUMENT_ROOT.'/core/lib/categories.lib.php';
    +
    +	$object = new Categorie($db);
    +	$result = $object->fetch($id);
    +	$upload_dir = $conf->categorie->multidir_output[$object->entity];
    +	$pdir = get_exdir($object->id,2,0,0,$object,'category') . $object->id ."/photos/";
    +	$dir = $upload_dir.'/'.$pdir;
    +	foreach ($object->liste_photos($dir) as $key => $obj)
    +	{
    +		$filename=$obj['photo'];
    +	}
    +
    +	// The file
    +	$filename = $dir.$filename;
    +	if (!file_exists($filename)) $filename="empty.jpg";
    +
    +	// Dimensions
    +	list($width, $height) = getimagesize($filename);
    +	$new_width = $w;
    +	$new_height = $h;
    +
    +	// Resample
    +	$image_p = imagecreatetruecolor($new_width, $new_height);
    +	$image = imagecreatefromjpeg($filename);
    +	imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    +
    +	// Add icon
    +	$icon = imagecreatefromjpeg('add.jpg');
    +	list($width, $height) = getimagesize('add.jpg');
    +	$new_width = $w*0.3;
    +	$new_height = $h*0.3;
    +	$icon_p = imagecreatetruecolor($new_width, $new_height);
    +	imagecopyresampled($icon_p, $icon, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    +	imagecopymerge($image_p, $icon_p,  0, 0, 0, 0, $new_width, $new_height, 100);
    +
    +	// Output
    +	imagejpeg($image_p, null, 100);
    +}
    +else if ($query=="pro")
    +{
    +	require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php";
    +
    +	$objProd = new Product($db);
    +	$objProd->fetch($id);
    +
    +	$dir .= get_exdir(0,0,0,0,$objProd,'product').$objProd->ref.'/';
    +	$pdir .= get_exdir(0,0,0,0,$objProd,'product').$objProd->ref.'/';
    +
    +	foreach ($objProd->liste_photos($dir) as $key => $obj)
    +	{
    +		$filename=$obj['photo'];
    +	}
    +	$filename = $dir.$filename;
    +
    +	if (!file_exists($filename)){
    +		$dir = $conf->product->multidir_output[$objProd->entity].'/'.$pdir;
    +		foreach ($objProd->liste_photos($dir) as $key => $obj)
    +		{
    +		$filename=$obj['photo'];
    +		}
    +		$filename = $dir.$filename;
    +	}
    +
    +	if (!file_exists($filename)) $filename="empty.jpg";
    +
    +	// Dimensions
    +	list($width, $height) = getimagesize($filename);
    +	$new_width = $w;
    +	$new_height = $h;
    +
    +	// Resample
    +	$image_p = imagecreatetruecolor($new_width, $new_height);
    +	$image = imagecreatefromjpeg($filename);
    +	imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    +
    +	// Output
    +	imagejpeg($image_p, null, 100);
    +}
    +else
    +{
    +	// The file
    +	$filename = $query.".jpg";
    +
    +	// Dimensions
    +	list($width, $height) = getimagesize($filename);
    +	$new_width = $w;
    +	$new_height = $h;
    +
    +	// Resample
    +	$image_p = imagecreatetruecolor($new_width, $new_height);
    +	$image = imagecreatefromjpeg($filename);
    +	imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    +
    +	// Output
    +	imagejpeg($image_p, null, 100);
    +}
    diff --git a/htdocs/takepos/img/arrow-next-top.png b/htdocs/takepos/img/arrow-next-top.png
    new file mode 100644
    index 00000000000..70f720cab10
    Binary files /dev/null and b/htdocs/takepos/img/arrow-next-top.png differ
    diff --git a/htdocs/takepos/img/arrow-next.png b/htdocs/takepos/img/arrow-next.png
    new file mode 100644
    index 00000000000..1056f024390
    Binary files /dev/null and b/htdocs/takepos/img/arrow-next.png differ
    diff --git a/htdocs/takepos/img/arrow-prev-top.png b/htdocs/takepos/img/arrow-prev-top.png
    new file mode 100644
    index 00000000000..23567d35890
    Binary files /dev/null and b/htdocs/takepos/img/arrow-prev-top.png differ
    diff --git a/htdocs/takepos/img/arrow-prev.png b/htdocs/takepos/img/arrow-prev.png
    new file mode 100644
    index 00000000000..b7311f26f54
    Binary files /dev/null and b/htdocs/takepos/img/arrow-prev.png differ
    diff --git a/htdocs/takepos/img/gfdl.png b/htdocs/takepos/img/gfdl.png
    new file mode 100644
    index 00000000000..f2bacfd179a
    Binary files /dev/null and b/htdocs/takepos/img/gfdl.png differ
    diff --git a/htdocs/takepos/img/gplv3.png b/htdocs/takepos/img/gplv3.png
    new file mode 100644
    index 00000000000..ba78d4c4941
    Binary files /dev/null and b/htdocs/takepos/img/gplv3.png differ
    diff --git a/htdocs/takepos/img/marketplace/cashcontrol.jpg b/htdocs/takepos/img/marketplace/cashcontrol.jpg
    new file mode 100644
    index 00000000000..66240218dff
    Binary files /dev/null and b/htdocs/takepos/img/marketplace/cashcontrol.jpg differ
    diff --git a/htdocs/takepos/img/marketplace/takeposmobile.jpg b/htdocs/takepos/img/marketplace/takeposmobile.jpg
    new file mode 100644
    index 00000000000..918f7c49d5e
    Binary files /dev/null and b/htdocs/takepos/img/marketplace/takeposmobile.jpg differ
    diff --git a/htdocs/takepos/img/object_takepos.png b/htdocs/takepos/img/object_takepos.png
    new file mode 100644
    index 00000000000..5a307bfc62f
    Binary files /dev/null and b/htdocs/takepos/img/object_takepos.png differ
    diff --git a/htdocs/takepos/img/table.gif b/htdocs/takepos/img/table.gif
    new file mode 100644
    index 00000000000..54f7a209d89
    Binary files /dev/null and b/htdocs/takepos/img/table.gif differ
    diff --git a/htdocs/takepos/img/takepos.png b/htdocs/takepos/img/takepos.png
    new file mode 100644
    index 00000000000..be9d3dcfc3f
    Binary files /dev/null and b/htdocs/takepos/img/takepos.png differ
    diff --git a/htdocs/takepos/invoice.php b/htdocs/takepos/invoice.php
    new file mode 100644
    index 00000000000..1701b82a770
    --- /dev/null
    +++ b/htdocs/takepos/invoice.php
    @@ -0,0 +1,366 @@
    +<?php
    +/**
    + * Copyright (C) 2018    Andreu Bisquerra    <jove@bisquerra.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +// if (! defined('NOREQUIREUSER'))    define('NOREQUIREUSER','1');    // Not disabled cause need to load personalized language
    +// if (! defined('NOREQUIREDB'))        define('NOREQUIREDB','1');        // Not disabled cause need to load personalized language
    +// if (! defined('NOREQUIRESOC'))        define('NOREQUIRESOC','1');
    +// if (! defined('NOREQUIRETRAN'))        define('NOREQUIRETRAN','1');
    +if (!defined('NOCSRFCHECK'))    { define('NOCSRFCHECK', '1'); }
    +if (!defined('NOTOKENRENEWAL')) { define('NOTOKENRENEWAL', '1'); }
    +if (!defined('NOREQUIREMENU'))  { define('NOREQUIREMENU', '1'); }
    +if (!defined('NOREQUIREHTML'))  { define('NOREQUIREHTML', '1'); }
    +if (!defined('NOREQUIREAJAX'))  { define('NOREQUIREAJAX', '1'); }
    +require '../main.inc.php';
    +
    + // Load $user and permissions
    +
    +require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php';
    +
    +require_once DOL_DOCUMENT_ROOT . '/compta/paiement/class/paiement.class.php';
    +
    +$langs->loadLangs(
    +    array(
    +    "bills",
    +    "cashdesk"
    +    )
    +);
    +$id = GETPOST('id', 'int');
    +$action = GETPOST('action', 'alpha');
    +$idproduct = GETPOST('idproduct', 'int');
    +$place = GETPOST('place', 'int');
    +$number = GETPOST('number');
    +$idline = GETPOST('idline');
    +$desc = GETPOST('desc', 'alpha');
    +$pay = GETPOST('pay');
    +$sql="SELECT rowid FROM ".MAIN_DB_PREFIX."facture where ref='(PROV-POS-".$place.")'";
    +$resql = $db->query($sql);
    +$row = $db->fetch_array($resql);
    +$placeid = $row[0];
    +
    +if (!$placeid) { $placeid = 0; // not necesary
    +} else
    +{
    +    $invoice = new Facture($db);
    +    $invoice->fetch($placeid);
    +}
    +
    +/*
    +* Actions
    +*/
    +
    +if ($action == 'valid' && $user->rights->facture->creer)
    +{
    +	if ($pay=="cash") $bankaccount=$conf->global->CASHDESK_ID_BANKACCOUNT_CASH;
    +	else if ($pay=="card") $bankaccount=$conf->global->CASHDESK_ID_BANKACCOUNT_CB;
    +	else if ($pay=="cheque") $bankaccount=$conf->global->CASHDESK_ID_BANKACCOUNT_CHEQUE;
    +	$now=dol_now();
    +	$invoice = new Facture($db);
    +	$invoice->fetch($placeid);
    +	if (! empty($conf->stock->enabled) and $conf->global->CASHDESK_NO_DECREASE_STOCK!="1") $invoice->validate($user, '', $conf->global->CASHDESK_ID_WAREHOUSE);
    +	else $invoice->validate($user);
    +	// Add the payment
    +	$payment=new Paiement($db);
    +	$payment->datepaye=$now;
    +	$payment->bank_account=$bankaccount;
    +	$payment->amounts[$invoice->id]=$invoice->total_ttc;
    +	
    +  if ($pay=="cash") $payment->paiementid=4;
    +	else if ($pay=="card") $payment->paiementid=6;
    +	else if ($pay=="cheque") $payment->paiementid=7;
    +	$payment->num_paiement=$invoice->ref;
    +
    +  $payment->create($user);
    +	$payment->addPaymentToBank($user, 'payment', '(CustomerInvoicePayment)', $bankaccount, '', '');
    +	
    +  $invoice->set_paid($user);
    +}
    +
    +if (($action=="addline" || $action=="freezone") && $placeid==0)
    +{
    +	// $place is id of POS, $placeid is id of invoice
    +	if ($placeid==0)
    +  {
    +		$invoice = new Facture($db);
    +		$invoice->socid=$conf->global->CASHDESK_ID_THIRDPARTY;
    +		$invoice->date=dol_now();
    +		$invoice->ref="(PROV-POS)";
    +		$invoice->module_source = 'takepos';
    +		$invoice->pos_source = (string) (empty($place)?'0':$place);
    +
    +		$placeid=$invoice->create($user);
    +		$sql="UPDATE ".MAIN_DB_PREFIX."facture set ref='(PROV-POS-".$place.")' where rowid=".$placeid;
    +		$db->query($sql);
    +	}
    +}
    +
    +if ($action == "addline") {
    +    $prod = new Product($db);
    +    $prod->fetch($idproduct);
    +    $invoice->addline($prod->description, $prod->price, 1, $prod->tva_tx, $prod->localtax1_tx, $prod->localtax2_tx, $idproduct, $prod->remise_percent, '', 0, 0, 0, '', $prod->price_base_type, $prod->price_ttc, $prod->type, -1, 0, '', 0, 0, null, 0, '', 0, 100, '', null, 0);
    +    $invoice->fetch($placeid);
    +}
    +
    +if ($action == "freezone") {
    +    $invoice->addline($desc, $number, 1, $conf->global->MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS, 0, 0, 0, 0, '', 0, 0, 0, '', 'TTC', $number, 0, -1, 0, '', 0, 0, null, 0, '', 0, 100, '', null, 0);
    +    $invoice->fetch($placeid);
    +}
    +
    +if ($action == "deleteline") {
    +    if ($idline > 0 and $placeid > 0) { //If exist invoice and line, to avoid errors if deleted from other device or no line selected
    +        $invoice->deleteline($idline);
    +        $invoice->fetch($placeid);
    +    }
    +    else
    +    if ($placeid > 0) { //If exist invoice, but no line selected, proced to delete last line
    +        $sql = "SELECT rowid FROM " . MAIN_DB_PREFIX . "facturedet where fk_facture='$placeid' order by rowid DESC";
    +        $resql = $db->query($sql);
    +        $row = $db->fetch_array($resql);
    +        $deletelineid = $row[0];
    +        $invoice->deleteline($deletelineid);
    +        $invoice->fetch($placeid);
    +    }
    +}
    +
    +if ($action == "updateqty") {
    +    foreach($invoice->lines as $line)
    +    {
    +        if ($line->id == $idline) { $result = $invoice->updateline($line->id, $line->desc, $line->subprice, $number, $line->remise_percent, $line->date_start, $line->date_end, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits, $line->product_type, $line->fk_parent_line, 0, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->situation_percent, $line->fk_unit);
    +        }
    +    }
    +
    +    $invoice->fetch($placeid);
    +}
    +
    +if ($action == "updateprice") {
    +    foreach($invoice->lines as $line)
    +    {
    +        if ($line->id == $idline) { $result = $invoice->updateline($line->id, $line->desc, $number, $line->qty, $line->remise_percent, $line->date_start, $line->date_end, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits, $line->product_type, $line->fk_parent_line, 0, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->situation_percent, $line->fk_unit);
    +        }
    +    }
    +
    +    $invoice->fetch($placeid);
    +}
    +
    +if ($action == "updatereduction") {
    +    foreach($invoice->lines as $line)
    +    {
    +        if ($line->id == $idline) { $result = $invoice->updateline($line->id, $line->desc, $line->subprice, $line->qty, $number, $line->date_start, $line->date_end, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, 'HT', $line->info_bits, $line->product_type, $line->fk_parent_line, 0, $line->fk_fournprice, $line->pa_ht, $line->label, $line->special_code, $line->array_options, $line->situation_percent, $line->fk_unit);
    +        }
    +    }
    +
    +    $invoice->fetch($placeid);
    +}
    +
    +if ($action == "order" and $placeid != 0) {
    +    include_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
    +
    +    $headerorder = '<html><br><b>' . $langs->trans('Place') . ' ' . $place . '<br><table width="65%"><thead><tr><th align="left">' . $langs->trans("Label") . '</th><th align="right">' . $langs->trans("Qty") . '</th></tr></thead><tbody>';
    +    $footerorder = '</tbody></table>' . dol_print_date(dol_now(), 'dayhour') . '<br></html>';
    +    $order_receipt_printer1 = "";
    +    $order_receipt_printer2 = "";
    +    $catsprinter1 = explode(';', $conf->global->TAKEPOS_PRINTED_CATEGORIES_1);
    +    $catsprinter2 = explode(';', $conf->global->TAKEPOS_PRINTED_CATEGORIES_2);
    +    foreach($invoice->lines as $line)
    +    {
    +        if ($line->special_code == "3") { continue;
    +        }
    +        $c = new Categorie($db);
    +        $existing = $c->containing($line->fk_product, Categorie::TYPE_PRODUCT, 'id');
    +        $result = array_intersect($catsprinter1, $existing);
    +        $count = count($result);
    +        if ($count > 0) {
    +            $sql = "UPDATE " . MAIN_DB_PREFIX . "facturedet set special_code='3' where rowid=$line->rowid";
    +            $db->query($sql);
    +            $order_receipt_printer1.= '<tr>' . $line->product_label . '<td align="right">' . $line->qty . '</td></tr>';
    +        }
    +    }
    +
    +    foreach($invoice->lines as $line)
    +    {
    +        if ($line->special_code == "3") { continue;
    +        }
    +        $c = new Categorie($db);
    +        $existing = $c->containing($line->fk_product, Categorie::TYPE_PRODUCT, 'id');
    +        $result = array_intersect($catsprinter2, $existing);
    +        $count = count($result);
    +        if ($count > 0) {
    +            $sql = "UPDATE " . MAIN_DB_PREFIX . "facturedet set special_code='3' where rowid=$line->rowid";
    +            $db->query($sql);
    +            $order_receipt_printer2.= '<tr>' . $line->product_label . '<td align="right">' . $line->qty . '</td></tr>';
    +        }
    +    }
    +
    +    $invoice->fetch($placeid);
    +}
    +
    +?>
    +<style>
    +.selected {
    +    font-weight: bold;
    +}
    +.order {
    +    color: limegreen;
    +}
    +</style>
    +<script language="javascript">
    +var selectedline=0;
    +var selectedtext="";
    +var placeid=<?php echo $placeid;?>;
    +$(document).ready(function(){
    +    $('table tbody tr').click(function(){
    +        $('table tbody tr').removeClass("selected");
    +        $(this).addClass("selected");
    +        if (selectedline==this.id) return; // If is already selected
    +          else selectedline=this.id;
    +        selectedtext=$('#'+selectedline).find("td:first").html();
    +    });
    +<?php
    +
    +if ($action == "order" and $order_receipt_printer1 != "") {
    +    ?>
    +    $.ajax({
    +        type: "POST",
    +        url: 'http://<?php print $conf->global->TAKEPOS_PRINT_SERVER; ?>:8111/print',
    +        data: '<?php
    +        print $headerorder . $order_receipt_printer1 . $footerorder; ?>'
    +    });
    +    <?php
    +}
    +
    +if ($action == "order" and $order_receipt_printer2 != "") {
    +    ?>
    +    $.ajax({
    +        type: "POST",
    +        url: 'http://<?php print $conf->global->TAKEPOS_PRINT_SERVER; ?>:8111/print2',
    +        data: '<?php
    +        print $headerorder . $order_receipt_printer2 . $footerorder; ?>'
    +    });
    +    <?php
    +}
    +
    +if ($action == "search") {
    +    ?>
    +    $('#search').focus();
    +    <?php
    +}
    +
    +?>
    +});
    +
    +$(document).ready(function(){
    +    $('table tbody tr').click(function(){
    +        $('table tbody tr').removeClass("selected");
    +        $(this).addClass("selected");
    +        if (selectedline==this.id) return; // If is already selected
    +          else selectedline=this.id;
    +        selectedtext=$('#'+selectedline).find("td:first").html();
    +    });
    +<?php
    +
    +if ($action == "temp" and $ticket_printer1 != "") {
    +    ?>
    +    $.ajax({
    +        type: "POST",
    +        url: 'http://<?php print $conf->global->TAKEPOS_PRINT_SERVER; ?>:8111/print',
    +        data: '<?php
    +        print $header_soc . $header_ticket . $body_ticket . $ticket_printer1 . $ticket_total . $footer_ticket; ?>'
    +    });
    +    <?php
    +}
    +
    +if ($action == "search") {
    +    ?>
    +    $('#search').focus();
    +    <?php
    +}
    +
    +?>
    +});
    +
    +function Print(id){
    +    $.colorbox({href:"receipt.php?facid="+id, width:"40%", height:"90%", transition:"none", iframe:"true", title:"<?php
    +    echo $langs->trans("PrintTicket"); ?>"});
    +}
    +
    +function TakeposPrinting(id){
    +    var receipt;
    +    $.get("receipt.php?facid="+id, function(data, status){
    +        receipt=data.replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '');
    +        $.ajax({
    +            type: "POST",
    +            url: 'http://<?php print $conf->global->TAKEPOS_PRINT_SERVER; ?>:8111/print',
    +            data: receipt
    +        });
    +    });
    +}
    +</script>
    +<?php
    +print '<div class="div-table-responsive-no-min invoice">';
    +print '<table id="tablelines" class="noborder noshadow" width="100%">';
    +print '<tr class="liste_titre nodrag nodrop">';
    +print '<td class="linecoldescription">' . $langs->trans('Description') . '</td>';
    +print '<td class="linecolqty" align="right">' . $langs->trans('Qty') . '</td>';
    +print '<td class="linecolht" align="right">' . $langs->trans('TotalHTShort') . '</td>';
    +print "</tr>\n";
    +
    +if ($placeid > 0) {
    +    foreach($invoice->lines as $line)
    +    {
    +        print '<tr class="drag drop oddeven';
    +        if ($line->special_code == "3") { print ' order';
    +        }
    +        print '" id="' . $line->rowid . '">';
    +        print '<td>' . $line->product_label . $line->desc . '</td>';
    +        print '<td align="right">' . $line->qty . '</td>';
    +        print '<td align="right">' . price($line->total_ttc) . '</td>';
    +        print '</tr>';
    +    }
    +}
    +
    +print '</table>';
    +
    +print '<p style="font-size:120%;" align="right"><b>'.$langs->trans('TotalTTC');
    +                                            
    +if($conf->global->TAKEPOS_BAR_RESTAURANT) print " ".$langs->trans('Place')." ".$place;
    +
    +print ': '.price($invoice->total_ttc, 1, '', 1, - 1, - 1, $conf->currency).'&nbsp;</b></p>';
    +
    +if ($invoice->socid != $conf->global->CASHDESK_ID_THIRDPARTY)
    +{
    +    $soc = new Societe($db);
    +    if ($invoice->socid > 0) $soc->fetch($invoice->socid);
    +    else $soc->fetch($conf->global->CASHDESK_ID_THIRDPARTY);
    +    print '<p style="font-size:120%;" align="right">';
    +    print $langs->trans("Customer").': '.$soc->name;
    +    print '</p>';
    +}
    +if ($action=="valid")
    +{
    +	print '<p style="font-size:120%;" align="center"><b>'.$invoice->ref." ".$langs->trans('BillShortStatusValidated').'</b></p>';
    +	if ($conf->global->TAKEPOSCONNECTOR) print '<center><button type="button" onclick="TakeposPrinting('.$placeid.');">'.$langs->trans('PrintTicket').'</button><center>';
    +	else print '<center><button type="button" onclick="Print('.$placeid.');">'.$langs->trans('PrintTicket').'</button><center>';
    +}
    +
    +if ($action == "search")
    +{
    +    print '<center>
    +	<input type="text" id="search" name="search" onkeyup="Search2();" name="search" style="width:80%;font-size: 150%;" placeholder=' . $langs->trans('Search') . '
    +	</center>';
    +}
    +
    +print '</div>';
    diff --git a/htdocs/takepos/js/jquery.colorbox-min.js b/htdocs/takepos/js/jquery.colorbox-min.js
    new file mode 100644
    index 00000000000..b5109a262ef
    --- /dev/null
    +++ b/htdocs/takepos/js/jquery.colorbox-min.js
    @@ -0,0 +1,6 @@
    +/*!
    +	Colorbox 1.6.4
    +	license: MIT
    +	http://www.jacklmoore.com/colorbox
    +*/
    +(function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(A+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in x[0]&&!x[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),x.focus())}function c(t){c.str!==t&&(x.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){A=0,e&&e!==!1&&"nofollow"!==e?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),A=W.index(_.el),-1===A&&(W=W.add(_.el),A=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data(Y),_=new r(i,o),g(_.get("rel")),!U){U=$=!0,c(_.get("className")),x.css({visibility:"hidden",display:"block",opacity:""}),I=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(I),j=T.height()+k.height()+b.outerHeight(!0)-b.height(),D=C.width()+H.width()+b.outerWidth(!0)-b.width(),N=I.outerHeight(!0),z=I.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=Math.max((l!==!1?Math.min(h,a(l,"x")):h)-z-D,0),_.h=Math.max((f!==!1?Math.min(s,a(f,"y")):s)-N-j,0),I.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(F).hide(),x.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}var p=parseFloat(_.get("opacity"));v.css({opacity:p===p?p:"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("<div/>"),w()}}function p(){x||(V=!1,E=t(i),x=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),L=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),y=n(se,"Wrapper"),b=n(se,"Content").append(F=n(se,"Title"),R=n(se,"Current"),P=t('<button type="button"/>').attr({id:Z+"Previous"}),K=t('<button type="button"/>').attr({id:Z+"Next"}),S=t('<button type="button"/>').attr({id:Z+"Slideshow"}),L),B=t('<button type="button"/>').attr({id:Z+"Close"}),y.append(n(se).append(n(se,"TopLeft"),T=n(se,"TopCenter"),n(se,"TopRight")),n(se,!1,"clear:left").append(C=n(se,"MiddleLeft"),b,H=n(se,"MiddleRight")),n(se,!1,"clear:left").append(n(se,"BottomLeft"),k=n(se,"BottomCenter"),n(se,"BottomRight"))).find("div div").css({"float":"left"}),M=n(se,!1,"position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;"),O=K.add(P).add(R).add(S)),e.body&&!x.parent().length&&t(e.body).append(v,x.append(y,M))}function m(){function i(t){t.which>1||t.shiftKey||t.altKey||t.metaKey||t.ctrlKey||(t.preventDefault(),f(this))}return x?(V||(V=!0,K.click(function(){J.next()}),P.click(function(){J.prev()}),B.click(function(){J.close()}),v.click(function(){_.get("overlayClose")&&J.close()}),t(e).bind("keydown."+Z,function(t){var e=t.keyCode;U&&_.get("escKey")&&27===e&&(t.preventDefault(),J.close()),U&&_.get("arrowKey")&&W[1]&&!t.altKey&&(37===e?(t.preventDefault(),P.click()):39===e&&(t.preventDefault(),K.click()))}),t.isFunction(t.fn.on)?t(e).on("click."+Z,"."+te,i):t("."+te).live("click."+Z,i)),!0):!1}function w(){var e,o,r,h=J.prep,d=++le;if($=!0,q=!1,u(he),u(ie),_.get("onLoad"),_.h=_.get("height")?a(_.get("height"),"y")-N-j:_.get("innerHeight")&&a(_.get("innerHeight"),"y"),_.w=_.get("width")?a(_.get("width"),"x")-z-D:_.get("innerWidth")&&a(_.get("innerWidth"),"x"),_.mw=_.w,_.mh=_.h,_.get("maxWidth")&&(_.mw=a(_.get("maxWidth"),"x")-z-D,_.mw=_.w&&_.w<_.mw?_.w:_.mw),_.get("maxHeight")&&(_.mh=a(_.get("maxHeight"),"y")-N-j,_.mh=_.h&&_.h<_.mh?_.h:_.mh),e=_.get("href"),Q=setTimeout(function(){L.show()},100),_.get("inline")){var c=t(e).eq(0);r=t("<div>").hide().insertBefore(c),ae.one(he,function(){r.replaceWith(c)}),h(c)}else _.get("iframe")?h(" "):_.get("html")?h(_.get("html")):s(_,e)?(e=l(_,e),q=_.get("createImg"),t(q).addClass(Z+"Photo").bind("error."+Z,function(){h(n(se,"Error").html(_.get("imgError")))}).one("load",function(){d===le&&setTimeout(function(){var e;_.get("retinaImage")&&i.devicePixelRatio>1&&(q.height=q.height/i.devicePixelRatio,q.width=q.width/i.devicePixelRatio),_.get("scalePhotos")&&(o=function(){q.height-=q.height*e,q.width-=q.width*e},_.mw&&q.width>_.mw&&(e=(q.width-_.mw)/q.width,o()),_.mh&&q.height>_.mh&&(e=(q.height-_.mh)/q.height,o())),_.h&&(q.style.marginTop=Math.max(_.mh-q.height,0)/2+"px"),W[1]&&(_.get("loop")||W[A+1])&&(q.style.cursor="pointer",t(q).bind("click."+Z,function(){J.next()})),q.style.width=q.width+"px",q.style.height=q.height+"px",h(q)},1)}),q.src=e):e&&M.load(e,_.get("data"),function(e,i){d===le&&h("error"===i?n(se,"Error").html(_.get("xhrError")):t(this).contents())})}var v,x,y,b,T,C,H,k,W,E,I,M,L,F,R,S,K,P,B,O,_,j,D,N,z,A,q,U,$,G,Q,J,V,X={html:!1,photo:!1,iframe:!1,inline:!1,transition:"elastic",speed:300,fadeOut:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,opacity:.9,preloading:!0,className:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0,closeButton:!0,fastIframe:!0,open:!1,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",returnFocus:!0,trapFocus:!0,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,rel:function(){return this.rel},href:function(){return t(this).attr("href")},title:function(){return this.title},createImg:function(){var e=new Image,i=t(this).data("cbox-img-attrs");return"object"==typeof i&&t.each(i,function(t,i){e[t]=i}),e},createIframe:function(){var i=e.createElement("iframe"),n=t(this).data("cbox-iframe-attrs");return"object"==typeof n&&t.each(n,function(t,e){i[t]=e}),"frameBorder"in i&&(i.frameBorder=0),"allowTransparency"in i&&(i.allowTransparency="true"),i.name=(new Date).getTime(),i.allowFullscreen=!0,i}},Y="colorbox",Z="cbox",te=Z+"Element",ee=Z+"_open",ie=Z+"_load",ne=Z+"_complete",oe=Z+"_cleanup",re=Z+"_closed",he=Z+"_purge",ae=t("<a/>"),se="div",le=0,de={},ce=function(){function t(){clearTimeout(h)}function e(){(_.get("loop")||W[A+1])&&(t(),h=setTimeout(J.next,_.get("slideshowSpeed")))}function i(){S.html(_.get("slideshowStop")).unbind(s).one(s,n),ae.bind(ne,e).bind(ie,t),x.removeClass(a+"off").addClass(a+"on")}function n(){t(),ae.unbind(ne,e).unbind(ie,t),S.html(_.get("slideshowStart")).unbind(s).one(s,function(){J.next(),i()}),x.removeClass(a+"on").addClass(a+"off")}function o(){r=!1,S.hide(),t(),ae.unbind(ne,e).unbind(ie,t),x.removeClass(a+"off "+a+"on")}var r,h,a=Z+"Slideshow_",s="click."+Z;return function(){r?_.get("slideshow")||(ae.unbind(oe,o),o()):_.get("slideshow")&&W[1]&&(r=!0,ae.one(oe,o),_.get("slideshowAuto")?i():n(),S.show())}}();t[Y]||(t(p),J=t.fn[Y]=t[Y]=function(e,i){var n,o=this;return e=e||{},t.isFunction(o)&&(o=t("<a/>"),e.open=!0),o[0]?(p(),m()&&(i&&(e.onComplete=i),o.each(function(){var i=t.data(this,Y)||{};t.data(this,Y,t.extend(i,e))}).addClass(te),n=new r(o[0],e),n.get("open")&&f(o[0])),o):o},J.position=function(e,i){function n(){T[0].style.width=k[0].style.width=b[0].style.width=parseInt(x[0].style.width,10)-D+"px",b[0].style.height=C[0].style.height=H[0].style.height=parseInt(x[0].style.height,10)-j+"px"}var r,h,s,l=0,d=0,c=x.offset();if(E.unbind("resize."+Z),x.css({top:-9e4,left:-9e4}),h=E.scrollTop(),s=E.scrollLeft(),_.get("fixed")?(c.top-=h,c.left-=s,x.css({position:"fixed"})):(l=h,d=s,x.css({position:"absolute"})),d+=_.get("right")!==!1?Math.max(E.width()-_.w-z-D-a(_.get("right"),"x"),0):_.get("left")!==!1?a(_.get("left"),"x"):Math.round(Math.max(E.width()-_.w-z-D,0)/2),l+=_.get("bottom")!==!1?Math.max(o()-_.h-N-j-a(_.get("bottom"),"y"),0):_.get("top")!==!1?a(_.get("top"),"y"):Math.round(Math.max(o()-_.h-N-j,0)/2),x.css({top:c.top,left:c.left,visibility:"visible"}),y[0].style.width=y[0].style.height="9999px",r={width:_.w+z+D,height:_.h+N+j,top:l,left:d},e){var g=0;t.each(r,function(t){return r[t]!==de[t]?(g=e,void 0):void 0}),e=g}de=r,e||x.css(r),x.dequeue().animate(r,{duration:e||0,complete:function(){n(),$=!1,y[0].style.width=_.w+z+D+"px",y[0].style.height=_.h+N+j+"px",_.get("reposition")&&setTimeout(function(){E.bind("resize."+Z,J.position)},1),t.isFunction(i)&&i()},step:n})},J.resize=function(t){var e;U&&(t=t||{},t.width&&(_.w=a(t.width,"x")-z-D),t.innerWidth&&(_.w=a(t.innerWidth,"x")),I.css({width:_.w}),t.height&&(_.h=a(t.height,"y")-N-j),t.innerHeight&&(_.h=a(t.innerHeight,"y")),t.innerHeight||t.height||(e=I.scrollTop(),I.css({height:"auto"}),_.h=I.height()),I.css({height:_.h}),e&&I.scrollTop(e),J.position("none"===_.get("transition")?0:_.get("speed")))},J.prep=function(i){function o(){return _.w=_.w||I.width(),_.w=_.mw&&_.mw<_.w?_.mw:_.w,_.w}function a(){return _.h=_.h||I.height(),_.h=_.mh&&_.mh<_.h?_.mh:_.h,_.h}if(U){var d,g="none"===_.get("transition")?0:_.get("speed");I.remove(),I=n(se,"LoadedContent").append(i),I.hide().appendTo(M.show()).css({width:o(),overflow:_.get("scrolling")?"auto":"hidden"}).css({height:a()}).prependTo(b),M.hide(),t(q).css({"float":"none"}),c(_.get("className")),d=function(){function i(){t.support.opacity===!1&&x[0].style.removeAttribute("filter")}var n,o,a=W.length;U&&(o=function(){clearTimeout(Q),L.hide(),u(ne),_.get("onComplete")},F.html(_.get("title")).show(),I.show(),a>1?("string"==typeof _.get("current")&&R.html(_.get("current").replace("{current}",A+1).replace("{total}",a)).show(),K[_.get("loop")||a-1>A?"show":"hide"]().html(_.get("next")),P[_.get("loop")||A?"show":"hide"]().html(_.get("previous")),ce(),_.get("preloading")&&t.each([h(-1),h(1)],function(){var i,n=W[this],o=new r(n,t.data(n,Y)),h=o.get("href");h&&s(o,h)&&(h=l(o,h),i=e.createElement("img"),i.src=h)})):O.hide(),_.get("iframe")?(n=_.get("createIframe"),_.get("scrolling")||(n.scrolling="no"),t(n).attr({src:_.get("href"),"class":Z+"Iframe"}).one("load",o).appendTo(I),ae.one(he,function(){n.src="//about:blank"}),_.get("fastIframe")&&t(n).trigger("load")):o(),"fade"===_.get("transition")?x.fadeTo(g,1,i):i())},"fade"===_.get("transition")?x.fadeTo(g,0,function(){J.position(0,d)}):J.position(g,d)}},J.next=function(){!$&&W[1]&&(_.get("loop")||W[A+1])&&(A=h(1),f(W[A]))},J.prev=function(){!$&&W[1]&&(_.get("loop")||A)&&(A=h(-1),f(W[A]))},J.close=function(){U&&!G&&(G=!0,U=!1,u(oe),_.get("onCleanup"),E.unbind("."+Z),v.fadeTo(_.get("fadeOut")||0,0),x.stop().fadeTo(_.get("fadeOut")||0,0,function(){x.hide(),v.hide(),u(he),I.remove(),setTimeout(function(){G=!1,u(re),_.get("onClosed")},1)}))},J.remove=function(){x&&(x.stop(),t[Y].close(),x.stop(!1,!0).remove(),v.remove(),G=!1,x=null,t("."+te).removeData(Y).removeClass(te),t(e).unbind("click."+Z).unbind("keydown."+Z))},J.element=function(){return t(_.el)},J.settings=X)})(jQuery,document,window);
    \ No newline at end of file
    diff --git a/htdocs/takepos/js/takepos.js b/htdocs/takepos/js/takepos.js
    new file mode 100644
    index 00000000000..062a3bb4e4a
    --- /dev/null
    +++ b/htdocs/takepos/js/takepos.js
    @@ -0,0 +1,15 @@
    +/* Copyright (C) 2018	Charles-FR BENKE		<jove@bisquerra.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    diff --git a/htdocs/takepos/lib/takepos.lib.php b/htdocs/takepos/lib/takepos.lib.php
    new file mode 100644
    index 00000000000..691f118d2cb
    --- /dev/null
    +++ b/htdocs/takepos/lib/takepos.lib.php
    @@ -0,0 +1,58 @@
    +<?php
    +/* Copyright (C) 2018 SuperAdmin
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    takepos/lib/takepos.lib.php
    + * \ingroup takepos
    + * \brief   Library files with common functions for TakePos
    + */
    +
    +/**
    + * Prepare admin pages header
    + *
    + * @return array
    + */
    +function takeposAdminPrepareHead()
    +{
    +	global $langs, $conf;
    +
    +	$langs->load("cashdesk");
    +
    +	$h = 0;
    +	$head = array();
    +
    +	$head[$h][0] = dol_buildpath("/takepos/admin/setup.php", 1);
    +	$head[$h][1] = $langs->trans("Settings");
    +	$head[$h][2] = 'settings';
    +	$h++;
    +	$head[$h][0] = dol_buildpath("/takepos/admin/about.php", 1);
    +	$head[$h][1] = $langs->trans("About");
    +	$head[$h][2] = 'about';
    +	$h++;
    +
    +	// Show more tabs from modules
    +	// Entries must be declared in modules descriptor with line
    +	//$this->tabs = array(
    +	//	'entity:+tabname:Title:@takepos:/takepos/mypage.php?id=__ID__'
    +	//); // to add new tab
    +	//$this->tabs = array(
    +	//	'entity:-tabname:Title:@takepos:/takepos/mypage.php?id=__ID__'
    +	//); // to remove a tab
    +	complete_head_from_modules($conf, $langs, $object, $head, $h, 'takepos');
    +
    +	return $head;
    +}
    diff --git a/htdocs/takepos/modulebuilder.txt b/htdocs/takepos/modulebuilder.txt
    new file mode 100644
    index 00000000000..24ea0d6eac5
    --- /dev/null
    +++ b/htdocs/takepos/modulebuilder.txt
    @@ -0,0 +1,3 @@
    +# DO NOT DELETE THIS FILE MANUALLY
    +# File to flag module built using official module template.
    +# When this file is present into a module directory, you can edit it with the module builder tool. Use ModuleBuilder if you want to delete module. 
    \ No newline at end of file
    diff --git a/htdocs/takepos/pay.php b/htdocs/takepos/pay.php
    new file mode 100644
    index 00000000000..0f846922332
    --- /dev/null
    +++ b/htdocs/takepos/pay.php
    @@ -0,0 +1,121 @@
    +<?php
    +/* Copyright (C) 2018	Andreu Bisquerra	<jove@bisquerra.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +//if (! defined('NOREQUIREUSER'))	define('NOREQUIREUSER','1');	// Not disabled cause need to load personalized language
    +//if (! defined('NOREQUIREDB'))		define('NOREQUIREDB','1');		// Not disabled cause need to load personalized language
    +//if (! defined('NOREQUIRESOC'))		define('NOREQUIRESOC','1');
    +//if (! defined('NOREQUIRETRAN'))		define('NOREQUIRETRAN','1');
    +if (! defined('NOCSRFCHECK'))		define('NOCSRFCHECK','1');
    +if (! defined('NOTOKENRENEWAL'))	define('NOTOKENRENEWAL','1');
    +if (! defined('NOREQUIREMENU'))		define('NOREQUIREMENU','1');
    +if (! defined('NOREQUIREHTML'))		define('NOREQUIREHTML','1');
    +if (! defined('NOREQUIREAJAX'))		define('NOREQUIREAJAX','1');
    +
    +$_GET['theme']="md"; // Force theme. MD theme provides better look and feel to TakePOS
    +
    +require '../main.inc.php';	// Load $user and permissions
    +require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php';
    +
    +$place = GETPOST('place','int');
    +
    +
    +/*
    + * View
    + */
    +
    +$sql="SELECT rowid FROM ".MAIN_DB_PREFIX."facture where ref='(PROV-POS-".$place.")'";
    +$resql = $db->query($sql);
    +$row = $db->fetch_array ($resql);
    +$placeid=$row[0];
    +if (! $placeid) $placeid=0; // Invoice not exist
    +else{
    +	$invoice = new Facture($db);
    +	$invoice->fetch($placeid);
    +}
    +
    +top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
    +
    +$langs->loadLangs(array("main", "bills", "cashdesk"));
    +?>
    +<link rel="stylesheet" href="css/pos.css">
    +	<script>
    +	var received=0;
    +	function addreceived(price)
    +	{
    +	received+=parseFloat(price);
    +	$('#change1').html(received.toFixed(2));
    +	if (received><?php echo $invoice->total_ttc;?>)
    +		{
    +		var change=parseFloat(received-<?php echo $invoice->total_ttc;?>);
    +		$('#change2').html(change.toFixed(2));
    +		}
    +	}
    +
    +	function reset()
    +	{
    +		received=0;
    +		addreceived(0);
    +		$('#change2').html(received.toFixed(2));
    +	}
    +
    +	function Validate(payment){
    +        parent.$("#poslines").load("invoice.php?place=<?php echo $place;?>&action=valid&pay="+payment, function() {
    +            parent.$("#poslines").scrollTop(parent.$("#poslines")[0].scrollHeight);
    +            parent.$.colorbox.close();
    +        });
    +
    +	}
    +</script>
    +</head>
    +<body>
    +
    +<div style="position:absolute; top:2%; left:5%; height:36%; width:91%;">
    +<center>
    +<div style="width:40%; background-color:#222222; border-radius:8px; margin-bottom: 4px;">
    +<center><span style='font-family: digital; font-size: 280%;'><font color="white"><?php echo $langs->trans('TotalTTC');?>: </font><font color="red"><span id="totaldisplay"><?php echo price($invoice->total_ttc, 1, '', 1, - 1, - 1, $conf->currency) ?></span></span></center>
    +</div>
    +<div style="width:40%; background-color:#333333; border-radius:8px; margin-bottom: 4px;">
    +<center><span style='font-family: digital; font-size: 250%;'><font color="white"><?php echo $langs->trans("AlreadyPaid"); ?>: </font><font color="red"><span id="change1"><?php echo price(0) ?></span></center>
    +</div>
    +<div style="width:40%; background-color:#333333; border-radius:8px; margin-bottom: 4px;">
    +<center><span style='font-family: digital; font-size: 250%;'><font color="white"><?php echo $langs->trans("Change"); ?>: </font><font color="red"><span id="change2"><?php echo price(0) ?></span></span></center>
    +</div>
    +</center>
    +</div>
    +
    +<div style="position:absolute; top:40%; left:5%; height:55%; width:91%;">
    +<button type="button" class="calcbutton" onclick="addreceived(10);">10</button>
    +<button type="button" class="calcbutton" onclick="addreceived(20);">20</button>
    +<button type="button" class="calcbutton" onclick="addreceived(50);">50</button>
    +<button type="button" <?php if ($placeid==0) echo "disabled";?> class="calcbutton2" onclick="Validate('cash');"><?php echo $langs->trans("Cash"); ?></button>
    +<button type="button" class="calcbutton" onclick="addreceived(1);">1</button>
    +<button type="button" class="calcbutton" onclick="addreceived(2);">2</button>
    +<button type="button" class="calcbutton" onclick="addreceived(5);">5</button>
    +<button type="button" <?php if ($placeid==0) echo "disabled";?> class="calcbutton2" onclick="Validate('card');"><?php echo $langs->trans("PaymentTypeCB"); ?></button>
    +<button type="button" class="calcbutton" onclick="addreceived(0.10);">0.10</button>
    +<button type="button" class="calcbutton" onclick="addreceived(0.20);">0.20</button>
    +<button type="button" class="calcbutton" onclick="addreceived(0.50);">0.50</button>
    +<button type="button" <?php if ($placeid==0) echo "disabled";?> class="calcbutton2" onclick="Validate('cheque');"><?php echo $langs->trans("Cheque"); ?></button>
    +<button type="button" class="calcbutton" onclick="addreceived(0.01);">0.01</button>
    +<button type="button" class="calcbutton" onclick="addreceived(0.02);">0.02</button>
    +<button type="button" class="calcbutton" onclick="addreceived(0.05);">0.05</button>
    +<button type="button" class="calcbutton3" onclick="reset();"><span style='font-size: 150%;'>C</span></button>
    +<button type="button" class="calcbutton3" onclick="parent.$.colorbox.close();"><span id="printtext"><?php echo $langs->trans("GoBack"); ?></span></button>
    +</div>
    +
    +</body>
    +</html>
    diff --git a/htdocs/takepos/receipt.php b/htdocs/takepos/receipt.php
    new file mode 100644
    index 00000000000..5fcd0ba9922
    --- /dev/null
    +++ b/htdocs/takepos/receipt.php
    @@ -0,0 +1,127 @@
    +<?php
    +/* Copyright (C) 2007-2008 Jeremie Ollivier    <jeremie.o@laposte.net>
    + * Copyright (C) 2011      Laurent Destailleur <eldy@users.sourceforge.net>
    + * Copyright (C) 2012      Marcos García       <marcosgdf@gmail.com>
    + * Copyright (C) 2018      Andreu Bisquerra    <jove@bisquerra.com>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +require '../main.inc.php';	// Load $user and permissions
    +include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
    +
    +$langs->loadLangs(array("main", "cashdesk"));
    +
    +/*
    + * View
    + */
    +
    +top_httphead('text/html');
    +
    +$facid=GETPOST('facid','int');
    +$place=GETPOST('place','int');
    +if ($place>0){
    +    $sql="SELECT rowid FROM ".MAIN_DB_PREFIX."facture where ref='(PROV-POS-".$place.")'";
    +    $resql = $db->query($sql);
    +    $row = $db->fetch_array ($resql);
    +    $facid=$row[0];
    +}
    +$object=new Facture($db);
    +$object->fetch($facid);
    +
    +// IMPORTANT: This file is sended to 'Takepos Printing' application. Keep basic file. No external files as css, js... If you need images use absolut path.
    +?>
    +<html>
    +<body>
    +<center>
    +<font size="4">
    +<?php echo '<b>'.$mysoc->name.'</b>';?>
    +</font>
    +</center>
    +<br>
    +<p align="left">
    +<?php
    +$substitutionarray=getCommonSubstitutionArray($langs);
    +if (! empty($conf->global->TAKEPOS_HEADER))
    +{
    +	$newfreetext=make_substitutions($conf->global->TAKEPOS_HEADER,$substitutionarray);
    +	echo $newfreetext;
    +}
    +?>
    +</p>
    +<p align="right">
    +<?php
    +print $langs->trans('Date')." ".dol_print_date($object->date, 'day').'<br>';
    +if ($mysoc->country_code == 'ES') print "Factura simplificada ";
    +print $object->ref;
    +?>
    +</p>
    +<br>
    +
    +<table width="100%" style="border-top-style: double;">
    +    <thead>
    +	<tr>
    +        <th align="center"><?php print $langs->trans("Label"); ?></th>
    +        <th align="right"><?php print $langs->trans("Qty"); ?></th>
    +        <th align="right"><?php print $langs->trans("Price"); ?></th>
    +        <th align="right"><?php print $langs->trans("TotalTTC"); ?></th>
    +	</tr>
    +    </thead>
    +    <tbody>
    +    <?php
    +    foreach ($object->lines as $line)
    +    {
    +    ?>
    +    <tr>
    +        <td><?php echo $line->product_label;?></td>
    +        <td align="right"><?php echo $line->qty;?></td>
    +        <td align="right"><?php echo $line->total_ttc/$line->qty;?></td>
    +        <td align="right"><?php echo price($line->total_ttc);?></td>
    +    </tr>
    +    <?php
    +    }
    +    ?>
    +    </tbody>
    +</table>
    +<br>
    +<table align="right">
    +<tr>
    +    <th align="right"><?php echo $langs->trans("TotalHT");?></th>
    +    <td align="right"><?php echo price($object->total_ht, 1, '', 1, - 1, - 1, $conf->currency)."\n";?></td>
    +</tr>
    +<tr>
    +    <th align="right"><?php echo $langs->trans("TotalVAT").'</th><td align="right">'.price($object->total_tva, 1, '', 1, - 1, - 1, $conf->currency)."\n";?></td>
    +</tr>
    +<tr>
    +    <th align="right"><?php echo ''.$langs->trans("TotalTTC").'</th><td align="right">'.price($object->total_ttc, 1, '', 1, - 1, - 1, $conf->currency)."\n";?></td>
    +</tr>
    +</table>
    +<div style="border-top-style: double;">
    +<br>
    +<br>
    +<br>
    +<?php
    +$substitutionarray=getCommonSubstitutionArray($langs);
    +if (! empty($conf->global->TAKEPOS_FOOTER))
    +{
    +	$newfreetext=make_substitutions($conf->global->TAKEPOS_FOOTER,$substitutionarray);
    +	echo $newfreetext;
    +}
    +?>
    +
    +<script type="text/javascript">
    +    window.print();
    +</script>
    +</body>
    +</html>
    diff --git a/htdocs/takepos/takepos.php b/htdocs/takepos/takepos.php
    new file mode 100644
    index 00000000000..a8e9dfcd390
    --- /dev/null
    +++ b/htdocs/takepos/takepos.php
    @@ -0,0 +1,471 @@
    +<?php
    +/* Copyright (C) 2018	Andreu Bisquerra	<jove@bisquerra.com>
    + * Copyright (C) 2019	Josep Lluís Amador	<joseplluis@lliuretic.cat>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +//if (! defined('NOREQUIREUSER'))	define('NOREQUIREUSER','1');	// Not disabled cause need to load personalized language
    +//if (! defined('NOREQUIREDB'))		define('NOREQUIREDB','1');		// Not disabled cause need to load personalized language
    +//if (! defined('NOREQUIRESOC'))		define('NOREQUIRESOC','1');
    +//if (! defined('NOREQUIRETRAN'))		define('NOREQUIRETRAN','1');
    +if (! defined('NOCSRFCHECK'))		define('NOCSRFCHECK','1');
    +if (! defined('NOTOKENRENEWAL'))	define('NOTOKENRENEWAL','1');
    +if (! defined('NOREQUIREMENU'))		define('NOREQUIREMENU','1');
    +if (! defined('NOREQUIREHTML'))		define('NOREQUIREHTML','1');
    +if (! defined('NOREQUIREAJAX'))		define('NOREQUIREAJAX','1');
    +
    +$_GET['theme']="md"; // Force theme. MD theme provides better look and feel to TakePOS
    +
    +require '../main.inc.php';	// Load $user and permissions
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php';
    +
    +$place = GETPOST('place','int');
    +if ($place=="") $place="0";
    +$action = GETPOST('action','alpha');
    +
    +$langs->loadLangs(array("bills","orders","commercial","cashdesk","receiptprinter"));
    +
    +
    +/*
    + * View
    + */
    +
    +// Title
    +$title='TakePOS - Dolibarr '.DOL_VERSION;
    +if (! empty($conf->global->MAIN_APPLICATION_TITLE)) $title='TakePOS - '.$conf->global->MAIN_APPLICATION_TITLE;
    +$head='<meta name="apple-mobile-web-app-title" content="TakePOS"/>
    +<meta name="apple-mobile-web-app-capable" content="yes">
    +<meta name="mobile-web-app-capable" content="yes">
    +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>';
    +top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
    +
    +?>
    +<link rel="stylesheet" href="css/pos.css?a=xxx">
    +<script type="text/javascript" src="js/takepos.js" ></script>
    +<link rel="stylesheet" href="css/colorbox.css" type="text/css" media="screen" />
    +<script type="text/javascript" src="js/jquery.colorbox-min.js"></script>
    +<script language="javascript">
    +<?php
    +$categorie = new Categorie($db);
    +$categories = $categorie->get_full_arbo('product');
    +?>
    +var categories = JSON.parse( '<?php echo json_encode($categories);?>' );
    +var currentcat;
    +var pageproducts=0;
    +var pagecategories=0;
    +var pageactions=0;
    +var place="<?php echo $place;?>";
    +var editaction="qty";
    +var editnumber="";
    +function PrintCategories(first){
    +	for (i = 0; i < 14; i++) {
    +		if (typeof (categories[parseInt(i)+parseInt(first)]) == "undefined") break;
    +		$("#catdesc"+i).text(categories[parseInt(i)+parseInt(first)]['label']);
    +        $("#catimg"+i).attr("src","genimg/?query=cat&w=55&h=50&id="+categories[parseInt(i)+parseInt(first)]['rowid']);
    +        $("#catdiv"+i).data("rowid",categories[parseInt(i)+parseInt(first)]['rowid']);
    +	}
    +}
    +
    +function MoreCategories(moreorless){
    +	if (moreorless=="more"){
    +		$('#catimg15').animate({opacity: '0.5'}, 1);
    +		$('#catimg15').animate({opacity: '1'}, 100);
    +		pagecategories=pagecategories+1;
    +	}
    +	if (moreorless=="less"){
    +		$('#catimg14').animate({opacity: '0.5'}, 1);
    +		$('#catimg14').animate({opacity: '1'}, 100);
    +		if (pagecategories==0) return; //Return if no less pages
    +		pagecategories=pagecategories-1;
    +	}
    +	if (typeof (categories[14*pagecategories] && moreorless=="more") == "undefined"){ // Return if no more pages
    +		pagecategories=pagecategories-1;
    +		return;
    +	}
    +	for (i = 0; i < 14; i++) {
    +		if (typeof (categories[i+(14*pagecategories)]) == "undefined"){
    +				$("#catdesc"+i).text("");
    +				$("#catimg"+i).attr("src","");
    +				continue;
    +			}
    +		$("#catdesc"+i).text(categories[i+(14*pagecategories)]['label']);
    +        $("#catimg"+i).attr("src","genimg/?query=cat&w=55&h=50&id="+categories[i+(14*pagecategories)]['rowid']);
    +        $("#catdiv"+i).data("rowid",categories[i+(14*pagecategories)]['rowid']);
    +	}
    +}
    +
    +function LoadProducts(position){
    +    $('#catimg'+position).animate({opacity: '0.5'}, 1);
    +	$('#catimg'+position).animate({opacity: '1'}, 100);
    +	currentcat=$('#catdiv'+position).data('rowid');
    +    if (currentcat=="") return;
    +	pageproducts=0;
    +	$.getJSON('./ajax.php?action=getProducts&category='+currentcat, function(data) {
    +		idata=0; //product data counter
    +		ishow=0; //product to show counter
    +		while (idata < 30) {
    +			if (typeof (data[idata]) == "undefined") {
    +				$("#prodesc"+ishow).text(""); 
    +				$("#proimg"+ishow).attr("src",""); 
    +				$("#prodiv"+ishow).data("rowid","");
    +				ishow++; //Next product to show after print data product
    +			}
    +			else if ((data[idata]['status']) == "1") {
    +				//Only show products with status=1 (for sell)
    +				$("#prodesc"+ishow).text(data[parseInt(idata)]['label']);
    +				$("#proimg"+ishow).attr("src","genimg/?query=pro&w=55&h=50&id="+data[idata]['id']);
    +				$("#prodiv"+ishow).data("rowid",data[idata]['id']);
    +				ishow++; //Next product to show after print data product
    +			}
    +			idata++; //Next data everytime
    +		}
    +	});
    +}
    +
    +function MoreProducts(moreorless){
    +	if (moreorless=="more"){
    +		$('#proimg31').animate({opacity: '0.5'}, 1);
    +		$('#proimg31').animate({opacity: '1'}, 100);
    +		pageproducts=pageproducts+1;
    +	}
    +	if (moreorless=="less"){
    +		$('#proimg30').animate({opacity: '0.5'}, 1);
    +		$('#proimg30').animate({opacity: '1'}, 100);
    +		if (pageproducts==0) return; //Return if no less pages
    +		pageproducts=pageproducts-1;
    +	}
    +	$.getJSON('./ajax.php?action=getProducts&category='+currentcat, function(data) {
    +		if (typeof (data[(30*pageproducts)]) == "undefined" && moreorless=="more"){ // Return if no more pages
    +			pageproducts=pageproducts-1;
    +			return;
    +		}
    +		idata=30*pageproducts; //product data counter
    +		ishow=0; //product to show counter
    +		while (idata < 30) {
    +			if (typeof (data[idata]) == "undefined") {
    +				$("#prodesc"+ishow).text(""); 
    +				$("#proimg"+ishow).attr("src",""); 
    +				$("#prodiv"+ishow).data("rowid","");
    +				ishow++; //Next product to show after print data product
    +			}
    +			else if ((data[idata]['status']) == "1") {
    +				//Only show products with status=1 (for sell)
    +				$("#prodesc"+ishow).text(data[parseInt(idata)]['label']);
    +				$("#proimg"+ishow).attr("src","genimg/?query=pro&w=55&h=50&id="+data[idata]['id']);
    +				$("#prodiv"+ishow).data("rowid",data[idata]['id']);
    +				ishow++; //Next product to show after print data product
    +			}
    +			idata++; //Next data everytime
    +		}
    +	});
    +}
    +
    +function ClickProduct(position){
    +    $('#proimg'+position).animate({opacity: '0.5'}, 1);
    +	$('#proimg'+position).animate({opacity: '1'}, 100);
    +	idproduct=$('#prodiv'+position).data('rowid');
    +    if (idproduct=="") return;
    +	$("#poslines").load("invoice.php?action=addline&place="+place+"&idproduct="+idproduct, function() {
    +		$('#poslines').scrollTop($('#poslines')[0].scrollHeight);
    +	});
    +
    +}
    +
    +function deleteline(){
    +	$("#poslines").load("invoice.php?action=deleteline&place="+place+"&idline="+selectedline, function() {
    +		$('#poslines').scrollTop($('#poslines')[0].scrollHeight);
    +	});
    +}
    +
    +function Customer(){
    +	$.colorbox({href:"customers.php?nomassaction=1&place="+place, width:"90%", height:"80%", transition:"none", iframe:"true", title:"<?php echo $langs->trans("Customer");?>"});
    +}
    +
    +function CloseBill(){
    +	$.colorbox({href:"pay.php?place="+place, width:"80%", height:"90%", transition:"none", iframe:"true", title:"<?php echo $langs->trans("CloseBill");?>"});
    +}
    +
    +function Floors(){
    +	$.colorbox({href:"floors.php?place="+place, width:"90%", height:"90%", transition:"none", iframe:"true", title:"<?php echo $langs->trans("Floors");?>"});
    +}
    +
    +function FreeZone(){
    +	$.colorbox({href:"freezone.php?place="+place, onClosed: function () { Refresh(); },width:"80%", height:"30%", transition:"none", iframe:"true", title:"<?php echo $langs->trans("FreeZone");?>"});
    +}
    +
    +function Refresh(){
    +	$("#poslines").load("invoice.php?place="+place, function() {
    +		$('#poslines').scrollTop($('#poslines')[0].scrollHeight);
    +	});
    +}
    +
    +function Search(){
    +	$("#poslines").load("invoice.php?action=search&place="+place, function() {
    +		$('#poslines').scrollTop($('#poslines')[0].scrollHeight);
    +	});
    +}
    +
    +function Search2(){
    +	pageproducts=0;
    +	$.getJSON('./ajax.php?action=search&term='+$('#search').val(), function(data) {
    +		for (i = 0; i < 30; i++) {
    +			if (typeof (data[i]) == "undefined"){
    +				$("#prodesc"+i).text("");
    +				$("#proimg"+i).attr("src","");
    +                $("#prodiv"+i).data("rowid","");
    +				continue;
    +			}
    +			$("#prodesc"+i).text(data[parseInt(i)]['label']);
    +			$("#proimg"+i).attr("src","genimg/?query=pro&w=55&h=50&id="+data[i]['rowid']);
    +			$("#prodiv"+i).data("rowid",data[i]['rowid']);
    +		}
    +	});
    +}
    +
    +function Edit(number){
    +    var text=selectedtext+"<br> ";
    +    if (number=='c'){
    +        editnumber="";
    +        Refresh();
    +        return;
    +    }
    +    else if (number=='qty'){
    +        if (editaction=='qty' && editnumber!=""){
    +            $("#poslines").load("invoice.php?action=updateqty&place="+place+"&idline="+selectedline+"&number="+editnumber, function() {
    +                editnumber="";
    +                $('#poslines').scrollTop($('#poslines')[0].scrollHeight);
    +                $("#qty").html("<?php echo $langs->trans("Qty"); ?>");
    +            });
    +            return;
    +        }
    +        else {
    +            editaction="qty";
    +        }
    +    }
    +    else if (number=='p'){
    +        if (editaction=='p' && editnumber!=""){
    +            $("#poslines").load("invoice.php?action=updateprice&place="+place+"&idline="+selectedline+"&number="+editnumber, function() {
    +                editnumber="";
    +                $('#poslines').scrollTop($('#poslines')[0].scrollHeight);
    +                $("#price").html("<?php echo $langs->trans("Price"); ?>");
    +            });
    +            return;
    +        }
    +        else {
    +            editaction="p";
    +        }
    +    }
    +    else if (number=='r'){
    +        if (editaction=='r' && editnumber!=""){
    +            $("#poslines").load("invoice.php?action=updatereduction&place="+place+"&idline="+selectedline+"&number="+editnumber, function() {
    +                editnumber="";
    +                $('#poslines').scrollTop($('#poslines')[0].scrollHeight);
    +                $("#reduction").html("<?php echo $langs->trans("ReductionShort"); ?>");
    +            });
    +            return;
    +        }
    +        else {
    +            editaction="r";
    +        }
    +    }
    +    else {
    +        editnumber=editnumber+number;
    +    }
    +    if (editaction=='qty'){
    +        text=text+"<?php echo $langs->trans("Modify")." -> ".$langs->trans("Qty").": "; ?>";
    +        $("#qty").html("OK");
    +        $("#price").html("<?php echo $langs->trans("Price"); ?>");
    +        $("#reduction").html("<?php echo $langs->trans("ReductionShort"); ?>");
    +    }
    +    if (editaction=='p'){
    +        text=text+"<?php echo $langs->trans("Modify")." -> ".$langs->trans("Price").": "; ?>";
    +        $("#qty").html("<?php echo $langs->trans("Qty"); ?>");
    +        $("#price").html("OK");
    +        $("#reduction").html("<?php echo $langs->trans("ReductionShort"); ?>");
    +    }
    +    if (editaction=='r'){
    +        text=text+"<?php echo $langs->trans("Modify")." -> ".$langs->trans("ReductionShort").": "; ?>";
    +        $("#qty").html("<?php echo $langs->trans("Qty"); ?>");
    +        $("#price").html("<?php echo $langs->trans("Price"); ?>");
    +        $("#reduction").html("OK");
    +    }
    +    $('#'+selectedline).find("td:first").html(text+editnumber);
    +}
    +
    +function TakeposPrintingOrder(){
    +	$("#poslines").load("invoice.php?action=order&place="+place, function() {
    +		$('#poslines').scrollTop($('#poslines')[0].scrollHeight);
    +	});
    +}
    +
    +function TakeposPrintingTemp(){
    +	$("#poslines").load("invoice.php?action=temp&place="+place, function() {
    +		$('#poslines').scrollTop($('#poslines')[0].scrollHeight);
    +	});
    +}
    +
    +function OpenDrawer(){
    +	$.ajax({
    +			type: "POST",
    +			url: 'http://<?php print $conf->global->TAKEPOS_PRINT_SERVER;?>:8111/print',
    +			data: "opendrawer"
    +		});
    +}
    +
    +function MoreActions(totalactions){
    +	if (pageactions==0){
    +		pageactions=1;
    +		for (i = 0; i <= totalactions; i++){
    +			if (i<9) $("#action"+i).hide();
    +			else $("#action"+i).show();
    +		}
    +	}
    +	else if (pageactions==1){
    +		pageactions=0;
    +		for (i = 0; i <= totalactions; i++){ 
    +			if (i<9) $("#action"+i).show();
    +			else $("#action"+i).hide();
    +		}
    +	}		
    +}
    +
    +$( document ).ready(function() {
    +    PrintCategories(0);
    +	LoadProducts(0);
    +	Refresh();
    +});
    +</script>
    +
    +<body style="overflow: hidden; background-color:#E8E8E8;">
    +
    +<div id="poslines" style="position:absolute; top:2%; left:0.5%; height:36%; width:31%; overflow: auto;">
    +</div>
    +
    +<div style="position:absolute; top:1%; left:32.5%; height:37%; width:32.5%; font-size: 0;">
    +    <button type="button" class="calcbutton" onclick="Edit(7);">7</button>
    +    <button type="button" class="calcbutton" onclick="Edit(8);">8</button>
    +    <button type="button" class="calcbutton" onclick="Edit(9);">9</button>
    +    <button type="button" id="qty" class="calcbutton2" onclick="Edit('qty');"><?php echo $langs->trans("Qty"); ?></button>
    +    <button type="button" class="calcbutton" onclick="Edit(4);">4</button>
    +    <button type="button" class="calcbutton" onclick="Edit(5);">5</button>
    +    <button type="button" class="calcbutton" onclick="Edit(6);">6</button>
    +    <button type="button" id="price" class="calcbutton2" onclick="Edit('p');"><?php echo $langs->trans("Price"); ?></button>
    +    <button type="button" class="calcbutton" onclick="Edit(1);">1</button>
    +    <button type="button" class="calcbutton" onclick="Edit(2);">2</button>
    +    <button type="button" class="calcbutton" onclick="Edit(3);">3</button>
    +    <button type="button" id="reduction" class="calcbutton2" onclick="Edit('r');"><?php echo $langs->trans("ReductionShort"); ?></button>
    +    <button type="button" class="calcbutton" onclick="Edit(0);">0</button>
    +    <button type="button" class="calcbutton" onclick="Edit('.');">.</button>
    +    <button type="button" class="calcbutton" onclick="Edit('c');">C</button>
    +    <button type="button" class="calcbutton2" id="delete" style="color: red;" onclick="deleteline();"><b>X</b></button>
    +</div>
    +
    +<?php
    +// User menu and external TakePOS modules
    +$menus = array();
    +$r=0;
    +$menus[$r++]=array('title'=>$langs->trans("SearchProduct"),
    +					'action'=>'Search();');
    +$menus[$r++]=array('title'=>$langs->trans("FreeZone"),
    +                   'action'=>'FreeZone();');
    +$menus[$r++]=array('title'=>$langs->trans("Customer"),
    +					'action'=>'Customer();');
    +$menus[$r++]=array('title'=>$langs->trans("BackOffice"),
    +                   'action'=>'window.open(\''.DOL_URL_ROOT.'\', \'backoffice\');');
    +$menus[$r++]=array('title'=>$langs->trans("ValidateBill"),
    +					'action'=>'CloseBill();');
    +$menus[$r++]=array('title'=>$langs->trans("Logout"),
    +                   'action'=>'window.location.href=\''.DOL_URL_ROOT.'/user/logout.php\';');
    +
    +//BAR RESTAURANT specified menu
    +if($conf->global->TAKEPOS_BAR_RESTAURANT){
    +	$menus[$r++]=array('title'=>$langs->trans("Floors"),
    +					'action'=>'Floors();');
    +	if ($conf->global->TAKEPOS_ORDER_PRINTERS){
    +		$menus[$r++]=array('title'=>$langs->trans("Order"),
    +		'action'=>'TakeposPrintingOrder();');
    +	}
    +	//add temp ticket button
    +	if ($conf->global->TAKEPOS_BAR_RESTAURANT){
    +		if ($conf->global->TAKEPOSCONNECTOR) $menus[$r++]=array('title'=>$langs->trans("Receipt"),'action'=>'TakeposPrinting(placeid);');
    +		else $menus[$r++]=array('title'=>$langs->trans("Receipt"),'action'=>'Print(placeid);');
    +	}
    +}
    +
    +if ($conf->global->TAKEPOSCONNECTOR){
    +	$menus[$r++]=array('title'=>$langs->trans("DOL_OPEN_DRAWER"),
    +					'action'=>'OpenDrawer();');
    +}
    +?>
    +<div style="position:absolute; top:1%; left:65.5%; height:37%; width:32.5%;">
    +<?php
    +$i = 0;
    +foreach($menus as $menu) {
    +	$i++;
    +	if (count($menus)>9 and $i==9)
    +	{
    +		echo '<button type="button" id="actionnext" class="actionbutton" onclick="MoreActions('.count($menus).');">'.$langs->trans("Next").'</button>';
    +		echo '<button style="display: none;" type="button" id="action'.$i.'" class="actionbutton" onclick="'.$menu['action'].'">'.$menu['title'].'</button>';
    +	}
    +    else if ($i>9) echo '<button style="display: none;" type="button" id="action'.$i.'" class="actionbutton" onclick="'.$menu['action'].'">'.$menu['title'].'</button>';
    +	else echo '<button type="button" id="action'.$i.'" class="actionbutton" onclick="'.$menu['action'].'">'.$menu['title'].'</button>';
    +}
    +?>
    +</div>
    +
    +<div style="position:absolute; top:39%; left:0.3%; height:59%; width:32%;">
    +	<?php
    +	$count=0;
    +	while ($count<16)
    +	{
    +	?>
    +	<div class='wrapper' <?php if ($count==14) echo 'onclick="MoreCategories(\'less\');"'; else if ($count==15) echo 'onclick="MoreCategories(\'more\');"'; else echo 'onclick="LoadProducts('.$count.');"';?> id='catdiv<?php echo $count;?>'>
    +		<img class='imgwrapper' <?php if ($count==14) echo 'src="img/arrow-prev-top.png"'; if ($count==15) echo 'src="img/arrow-next-top.png"';?> width="98%" id='catimg<?php echo $count;?>'/>
    +		<div class='description'>
    +			<div class='description_content' id='catdesc<?php echo $count;?>'></div>
    +		</div>
    +	</div>
    +	<?php
    +    $count++;
    +	}
    +	?>
    +</div>
    +
    +<div style="position:absolute; top:39%; left:32%; height:58%; width:72%;">
    +<?php
    +$count=0;
    +while ($count<32)
    +	{
    +	?>
    +	<div class='wrapper2' id='prodiv<?php echo $count;?>' <?php if ($count==30) {?> onclick="MoreProducts('less');" <?php } if ($count==31) {?> onclick="MoreProducts('more');" <?php } else echo 'onclick="ClickProduct('.$count.');"';?>>
    +		<img class='imgwrapper' <?php if ($count==30) echo 'src="img/arrow-prev-top.png"'; if ($count==31) echo 'src="img/arrow-next-top.png"';?> width="95%" id='proimg<?php echo $count;?>'/>
    +		<div class='description'>
    +			<div class='description_content' id='prodesc<?php echo $count;?>'></div>
    +		</div>
    +	</div>
    +	<?php
    +	$count++;
    +	}
    +?>
    +</div>
    +
    +</body>
    +<?php
    +
    +llxFooter();
    +
    +$db->close();
    diff --git a/htdocs/theme/common/fontawesome-5/LICENSE.txt b/htdocs/theme/common/fontawesome-5/LICENSE.txt
    new file mode 100644
    index 00000000000..0abfaa6e2cc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/LICENSE.txt
    @@ -0,0 +1,34 @@
    +Font Awesome Free License
    +-------------------------
    +
    +Font Awesome Free is free, open source, and GPL friendly. You can use it for
    +commercial projects, open source projects, or really almost whatever you want.
    +Full Font Awesome Free license: https://fontawesome.com/license/free.
    +
    +# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
    +In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
    +packaged as SVG and JS file types.
    +
    +# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
    +In the Font Awesome Free download, the SIL OLF license applies to all icons
    +packaged as web and desktop font files.
    +
    +# Code: MIT License (https://opensource.org/licenses/MIT)
    +In the Font Awesome Free download, the MIT license applies to all non-font and
    +non-icon files.
    +
    +# Attribution
    +Attribution is required by MIT, SIL OLF, and CC BY licenses. Downloaded Font
    +Awesome Free files already contain embedded comments with sufficient
    +attribution, so you shouldn't need to do anything additional when using these
    +files normally.
    +
    +We've kept attribution comments terse, so we ask that you do not actively work
    +to remove them from files, especially code. They're a great way for folks to
    +learn about Font Awesome.
    +
    +# Brand Icons
    +All brand icons are trademarks of their respective owners. The use of these
    +trademarks does not indicate endorsement of the trademark holder by Font
    +Awesome, nor vice versa. **Please do not use brand logos for any purpose except
    +to represent the company, product, or service to which they refer.**
    diff --git a/htdocs/theme/common/fontawesome-5/css/all.css b/htdocs/theme/common/fontawesome-5/css/all.css
    new file mode 100644
    index 00000000000..7329296501e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/all.css
    @@ -0,0 +1,3950 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.fa,
    +.fas,
    +.far,
    +.fal,
    +.fab {
    +  -moz-osx-font-smoothing: grayscale;
    +  -webkit-font-smoothing: antialiased;
    +  display: inline-block;
    +  font-style: normal;
    +  font-variant: normal;
    +  text-rendering: auto;
    +  line-height: 1; }
    +
    +.fa-lg {
    +  font-size: 1.33333em;
    +  line-height: 0.75em;
    +  vertical-align: -.0667em; }
    +
    +.fa-xs {
    +  font-size: .75em; }
    +
    +.fa-sm {
    +  font-size: .875em; }
    +
    +.fa-1x {
    +  font-size: 1em; }
    +
    +.fa-2x {
    +  font-size: 2em; }
    +
    +.fa-3x {
    +  font-size: 3em; }
    +
    +.fa-4x {
    +  font-size: 4em; }
    +
    +.fa-5x {
    +  font-size: 5em; }
    +
    +.fa-6x {
    +  font-size: 6em; }
    +
    +.fa-7x {
    +  font-size: 7em; }
    +
    +.fa-8x {
    +  font-size: 8em; }
    +
    +.fa-9x {
    +  font-size: 9em; }
    +
    +.fa-10x {
    +  font-size: 10em; }
    +
    +.fa-fw {
    +  text-align: center;
    +  width: 1.25em; }
    +
    +.fa-ul {
    +  list-style-type: none;
    +  margin-left: 2.5em;
    +  padding-left: 0; }
    +  .fa-ul > li {
    +    position: relative; }
    +
    +.fa-li {
    +  left: -2em;
    +  position: absolute;
    +  text-align: center;
    +  width: 2em;
    +  line-height: inherit; }
    +
    +.fa-border {
    +  border: solid 0.08em #eee;
    +  border-radius: .1em;
    +  padding: .2em .25em .15em; }
    +
    +.fa-pull-left {
    +  float: left; }
    +
    +.fa-pull-right {
    +  float: right; }
    +
    +.fa.fa-pull-left,
    +.fas.fa-pull-left,
    +.far.fa-pull-left,
    +.fal.fa-pull-left,
    +.fab.fa-pull-left {
    +  margin-right: .3em; }
    +
    +.fa.fa-pull-right,
    +.fas.fa-pull-right,
    +.far.fa-pull-right,
    +.fal.fa-pull-right,
    +.fab.fa-pull-right {
    +  margin-left: .3em; }
    +
    +.fa-spin {
    +  -webkit-animation: fa-spin 2s infinite linear;
    +          animation: fa-spin 2s infinite linear; }
    +
    +.fa-pulse {
    +  -webkit-animation: fa-spin 1s infinite steps(8);
    +          animation: fa-spin 1s infinite steps(8); }
    +
    +@-webkit-keyframes fa-spin {
    +  0% {
    +    -webkit-transform: rotate(0deg);
    +            transform: rotate(0deg); }
    +  100% {
    +    -webkit-transform: rotate(360deg);
    +            transform: rotate(360deg); } }
    +
    +@keyframes fa-spin {
    +  0% {
    +    -webkit-transform: rotate(0deg);
    +            transform: rotate(0deg); }
    +  100% {
    +    -webkit-transform: rotate(360deg);
    +            transform: rotate(360deg); } }
    +
    +.fa-rotate-90 {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
    +  -webkit-transform: rotate(90deg);
    +          transform: rotate(90deg); }
    +
    +.fa-rotate-180 {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
    +  -webkit-transform: rotate(180deg);
    +          transform: rotate(180deg); }
    +
    +.fa-rotate-270 {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
    +  -webkit-transform: rotate(270deg);
    +          transform: rotate(270deg); }
    +
    +.fa-flip-horizontal {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
    +  -webkit-transform: scale(-1, 1);
    +          transform: scale(-1, 1); }
    +
    +.fa-flip-vertical {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
    +  -webkit-transform: scale(1, -1);
    +          transform: scale(1, -1); }
    +
    +.fa-flip-horizontal.fa-flip-vertical {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
    +  -webkit-transform: scale(-1, -1);
    +          transform: scale(-1, -1); }
    +
    +:root .fa-rotate-90,
    +:root .fa-rotate-180,
    +:root .fa-rotate-270,
    +:root .fa-flip-horizontal,
    +:root .fa-flip-vertical {
    +  -webkit-filter: none;
    +          filter: none; }
    +
    +.fa-stack {
    +  display: inline-block;
    +  height: 2em;
    +  line-height: 2em;
    +  position: relative;
    +  vertical-align: middle;
    +  width: 2em; }
    +
    +.fa-stack-1x,
    +.fa-stack-2x {
    +  left: 0;
    +  position: absolute;
    +  text-align: center;
    +  width: 100%; }
    +
    +.fa-stack-1x {
    +  line-height: inherit; }
    +
    +.fa-stack-2x {
    +  font-size: 2em; }
    +
    +.fa-inverse {
    +  color: #fff; }
    +
    +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
    +readers do not read off random characters that represent icons */
    +.fa-500px:before {
    +  content: "\f26e"; }
    +
    +.fa-accessible-icon:before {
    +  content: "\f368"; }
    +
    +.fa-accusoft:before {
    +  content: "\f369"; }
    +
    +.fa-acquisitions-incorporated:before {
    +  content: "\f6af"; }
    +
    +.fa-ad:before {
    +  content: "\f641"; }
    +
    +.fa-address-book:before {
    +  content: "\f2b9"; }
    +
    +.fa-address-card:before {
    +  content: "\f2bb"; }
    +
    +.fa-adjust:before {
    +  content: "\f042"; }
    +
    +.fa-adn:before {
    +  content: "\f170"; }
    +
    +.fa-adversal:before {
    +  content: "\f36a"; }
    +
    +.fa-affiliatetheme:before {
    +  content: "\f36b"; }
    +
    +.fa-air-freshener:before {
    +  content: "\f5d0"; }
    +
    +.fa-algolia:before {
    +  content: "\f36c"; }
    +
    +.fa-align-center:before {
    +  content: "\f037"; }
    +
    +.fa-align-justify:before {
    +  content: "\f039"; }
    +
    +.fa-align-left:before {
    +  content: "\f036"; }
    +
    +.fa-align-right:before {
    +  content: "\f038"; }
    +
    +.fa-alipay:before {
    +  content: "\f642"; }
    +
    +.fa-allergies:before {
    +  content: "\f461"; }
    +
    +.fa-amazon:before {
    +  content: "\f270"; }
    +
    +.fa-amazon-pay:before {
    +  content: "\f42c"; }
    +
    +.fa-ambulance:before {
    +  content: "\f0f9"; }
    +
    +.fa-american-sign-language-interpreting:before {
    +  content: "\f2a3"; }
    +
    +.fa-amilia:before {
    +  content: "\f36d"; }
    +
    +.fa-anchor:before {
    +  content: "\f13d"; }
    +
    +.fa-android:before {
    +  content: "\f17b"; }
    +
    +.fa-angellist:before {
    +  content: "\f209"; }
    +
    +.fa-angle-double-down:before {
    +  content: "\f103"; }
    +
    +.fa-angle-double-left:before {
    +  content: "\f100"; }
    +
    +.fa-angle-double-right:before {
    +  content: "\f101"; }
    +
    +.fa-angle-double-up:before {
    +  content: "\f102"; }
    +
    +.fa-angle-down:before {
    +  content: "\f107"; }
    +
    +.fa-angle-left:before {
    +  content: "\f104"; }
    +
    +.fa-angle-right:before {
    +  content: "\f105"; }
    +
    +.fa-angle-up:before {
    +  content: "\f106"; }
    +
    +.fa-angry:before {
    +  content: "\f556"; }
    +
    +.fa-angrycreative:before {
    +  content: "\f36e"; }
    +
    +.fa-angular:before {
    +  content: "\f420"; }
    +
    +.fa-ankh:before {
    +  content: "\f644"; }
    +
    +.fa-app-store:before {
    +  content: "\f36f"; }
    +
    +.fa-app-store-ios:before {
    +  content: "\f370"; }
    +
    +.fa-apper:before {
    +  content: "\f371"; }
    +
    +.fa-apple:before {
    +  content: "\f179"; }
    +
    +.fa-apple-alt:before {
    +  content: "\f5d1"; }
    +
    +.fa-apple-pay:before {
    +  content: "\f415"; }
    +
    +.fa-archive:before {
    +  content: "\f187"; }
    +
    +.fa-archway:before {
    +  content: "\f557"; }
    +
    +.fa-arrow-alt-circle-down:before {
    +  content: "\f358"; }
    +
    +.fa-arrow-alt-circle-left:before {
    +  content: "\f359"; }
    +
    +.fa-arrow-alt-circle-right:before {
    +  content: "\f35a"; }
    +
    +.fa-arrow-alt-circle-up:before {
    +  content: "\f35b"; }
    +
    +.fa-arrow-circle-down:before {
    +  content: "\f0ab"; }
    +
    +.fa-arrow-circle-left:before {
    +  content: "\f0a8"; }
    +
    +.fa-arrow-circle-right:before {
    +  content: "\f0a9"; }
    +
    +.fa-arrow-circle-up:before {
    +  content: "\f0aa"; }
    +
    +.fa-arrow-down:before {
    +  content: "\f063"; }
    +
    +.fa-arrow-left:before {
    +  content: "\f060"; }
    +
    +.fa-arrow-right:before {
    +  content: "\f061"; }
    +
    +.fa-arrow-up:before {
    +  content: "\f062"; }
    +
    +.fa-arrows-alt:before {
    +  content: "\f0b2"; }
    +
    +.fa-arrows-alt-h:before {
    +  content: "\f337"; }
    +
    +.fa-arrows-alt-v:before {
    +  content: "\f338"; }
    +
    +.fa-assistive-listening-systems:before {
    +  content: "\f2a2"; }
    +
    +.fa-asterisk:before {
    +  content: "\f069"; }
    +
    +.fa-asymmetrik:before {
    +  content: "\f372"; }
    +
    +.fa-at:before {
    +  content: "\f1fa"; }
    +
    +.fa-atlas:before {
    +  content: "\f558"; }
    +
    +.fa-atom:before {
    +  content: "\f5d2"; }
    +
    +.fa-audible:before {
    +  content: "\f373"; }
    +
    +.fa-audio-description:before {
    +  content: "\f29e"; }
    +
    +.fa-autoprefixer:before {
    +  content: "\f41c"; }
    +
    +.fa-avianex:before {
    +  content: "\f374"; }
    +
    +.fa-aviato:before {
    +  content: "\f421"; }
    +
    +.fa-award:before {
    +  content: "\f559"; }
    +
    +.fa-aws:before {
    +  content: "\f375"; }
    +
    +.fa-backspace:before {
    +  content: "\f55a"; }
    +
    +.fa-backward:before {
    +  content: "\f04a"; }
    +
    +.fa-balance-scale:before {
    +  content: "\f24e"; }
    +
    +.fa-ban:before {
    +  content: "\f05e"; }
    +
    +.fa-band-aid:before {
    +  content: "\f462"; }
    +
    +.fa-bandcamp:before {
    +  content: "\f2d5"; }
    +
    +.fa-barcode:before {
    +  content: "\f02a"; }
    +
    +.fa-bars:before {
    +  content: "\f0c9"; }
    +
    +.fa-baseball-ball:before {
    +  content: "\f433"; }
    +
    +.fa-basketball-ball:before {
    +  content: "\f434"; }
    +
    +.fa-bath:before {
    +  content: "\f2cd"; }
    +
    +.fa-battery-empty:before {
    +  content: "\f244"; }
    +
    +.fa-battery-full:before {
    +  content: "\f240"; }
    +
    +.fa-battery-half:before {
    +  content: "\f242"; }
    +
    +.fa-battery-quarter:before {
    +  content: "\f243"; }
    +
    +.fa-battery-three-quarters:before {
    +  content: "\f241"; }
    +
    +.fa-bed:before {
    +  content: "\f236"; }
    +
    +.fa-beer:before {
    +  content: "\f0fc"; }
    +
    +.fa-behance:before {
    +  content: "\f1b4"; }
    +
    +.fa-behance-square:before {
    +  content: "\f1b5"; }
    +
    +.fa-bell:before {
    +  content: "\f0f3"; }
    +
    +.fa-bell-slash:before {
    +  content: "\f1f6"; }
    +
    +.fa-bezier-curve:before {
    +  content: "\f55b"; }
    +
    +.fa-bible:before {
    +  content: "\f647"; }
    +
    +.fa-bicycle:before {
    +  content: "\f206"; }
    +
    +.fa-bimobject:before {
    +  content: "\f378"; }
    +
    +.fa-binoculars:before {
    +  content: "\f1e5"; }
    +
    +.fa-birthday-cake:before {
    +  content: "\f1fd"; }
    +
    +.fa-bitbucket:before {
    +  content: "\f171"; }
    +
    +.fa-bitcoin:before {
    +  content: "\f379"; }
    +
    +.fa-bity:before {
    +  content: "\f37a"; }
    +
    +.fa-black-tie:before {
    +  content: "\f27e"; }
    +
    +.fa-blackberry:before {
    +  content: "\f37b"; }
    +
    +.fa-blender:before {
    +  content: "\f517"; }
    +
    +.fa-blender-phone:before {
    +  content: "\f6b6"; }
    +
    +.fa-blind:before {
    +  content: "\f29d"; }
    +
    +.fa-blogger:before {
    +  content: "\f37c"; }
    +
    +.fa-blogger-b:before {
    +  content: "\f37d"; }
    +
    +.fa-bluetooth:before {
    +  content: "\f293"; }
    +
    +.fa-bluetooth-b:before {
    +  content: "\f294"; }
    +
    +.fa-bold:before {
    +  content: "\f032"; }
    +
    +.fa-bolt:before {
    +  content: "\f0e7"; }
    +
    +.fa-bomb:before {
    +  content: "\f1e2"; }
    +
    +.fa-bone:before {
    +  content: "\f5d7"; }
    +
    +.fa-bong:before {
    +  content: "\f55c"; }
    +
    +.fa-book:before {
    +  content: "\f02d"; }
    +
    +.fa-book-dead:before {
    +  content: "\f6b7"; }
    +
    +.fa-book-open:before {
    +  content: "\f518"; }
    +
    +.fa-book-reader:before {
    +  content: "\f5da"; }
    +
    +.fa-bookmark:before {
    +  content: "\f02e"; }
    +
    +.fa-bowling-ball:before {
    +  content: "\f436"; }
    +
    +.fa-box:before {
    +  content: "\f466"; }
    +
    +.fa-box-open:before {
    +  content: "\f49e"; }
    +
    +.fa-boxes:before {
    +  content: "\f468"; }
    +
    +.fa-braille:before {
    +  content: "\f2a1"; }
    +
    +.fa-brain:before {
    +  content: "\f5dc"; }
    +
    +.fa-briefcase:before {
    +  content: "\f0b1"; }
    +
    +.fa-briefcase-medical:before {
    +  content: "\f469"; }
    +
    +.fa-broadcast-tower:before {
    +  content: "\f519"; }
    +
    +.fa-broom:before {
    +  content: "\f51a"; }
    +
    +.fa-brush:before {
    +  content: "\f55d"; }
    +
    +.fa-btc:before {
    +  content: "\f15a"; }
    +
    +.fa-bug:before {
    +  content: "\f188"; }
    +
    +.fa-building:before {
    +  content: "\f1ad"; }
    +
    +.fa-bullhorn:before {
    +  content: "\f0a1"; }
    +
    +.fa-bullseye:before {
    +  content: "\f140"; }
    +
    +.fa-burn:before {
    +  content: "\f46a"; }
    +
    +.fa-buromobelexperte:before {
    +  content: "\f37f"; }
    +
    +.fa-bus:before {
    +  content: "\f207"; }
    +
    +.fa-bus-alt:before {
    +  content: "\f55e"; }
    +
    +.fa-business-time:before {
    +  content: "\f64a"; }
    +
    +.fa-buysellads:before {
    +  content: "\f20d"; }
    +
    +.fa-calculator:before {
    +  content: "\f1ec"; }
    +
    +.fa-calendar:before {
    +  content: "\f133"; }
    +
    +.fa-calendar-alt:before {
    +  content: "\f073"; }
    +
    +.fa-calendar-check:before {
    +  content: "\f274"; }
    +
    +.fa-calendar-minus:before {
    +  content: "\f272"; }
    +
    +.fa-calendar-plus:before {
    +  content: "\f271"; }
    +
    +.fa-calendar-times:before {
    +  content: "\f273"; }
    +
    +.fa-camera:before {
    +  content: "\f030"; }
    +
    +.fa-camera-retro:before {
    +  content: "\f083"; }
    +
    +.fa-campground:before {
    +  content: "\f6bb"; }
    +
    +.fa-cannabis:before {
    +  content: "\f55f"; }
    +
    +.fa-capsules:before {
    +  content: "\f46b"; }
    +
    +.fa-car:before {
    +  content: "\f1b9"; }
    +
    +.fa-car-alt:before {
    +  content: "\f5de"; }
    +
    +.fa-car-battery:before {
    +  content: "\f5df"; }
    +
    +.fa-car-crash:before {
    +  content: "\f5e1"; }
    +
    +.fa-car-side:before {
    +  content: "\f5e4"; }
    +
    +.fa-caret-down:before {
    +  content: "\f0d7"; }
    +
    +.fa-caret-left:before {
    +  content: "\f0d9"; }
    +
    +.fa-caret-right:before {
    +  content: "\f0da"; }
    +
    +.fa-caret-square-down:before {
    +  content: "\f150"; }
    +
    +.fa-caret-square-left:before {
    +  content: "\f191"; }
    +
    +.fa-caret-square-right:before {
    +  content: "\f152"; }
    +
    +.fa-caret-square-up:before {
    +  content: "\f151"; }
    +
    +.fa-caret-up:before {
    +  content: "\f0d8"; }
    +
    +.fa-cart-arrow-down:before {
    +  content: "\f218"; }
    +
    +.fa-cart-plus:before {
    +  content: "\f217"; }
    +
    +.fa-cat:before {
    +  content: "\f6be"; }
    +
    +.fa-cc-amazon-pay:before {
    +  content: "\f42d"; }
    +
    +.fa-cc-amex:before {
    +  content: "\f1f3"; }
    +
    +.fa-cc-apple-pay:before {
    +  content: "\f416"; }
    +
    +.fa-cc-diners-club:before {
    +  content: "\f24c"; }
    +
    +.fa-cc-discover:before {
    +  content: "\f1f2"; }
    +
    +.fa-cc-jcb:before {
    +  content: "\f24b"; }
    +
    +.fa-cc-mastercard:before {
    +  content: "\f1f1"; }
    +
    +.fa-cc-paypal:before {
    +  content: "\f1f4"; }
    +
    +.fa-cc-stripe:before {
    +  content: "\f1f5"; }
    +
    +.fa-cc-visa:before {
    +  content: "\f1f0"; }
    +
    +.fa-centercode:before {
    +  content: "\f380"; }
    +
    +.fa-certificate:before {
    +  content: "\f0a3"; }
    +
    +.fa-chair:before {
    +  content: "\f6c0"; }
    +
    +.fa-chalkboard:before {
    +  content: "\f51b"; }
    +
    +.fa-chalkboard-teacher:before {
    +  content: "\f51c"; }
    +
    +.fa-charging-station:before {
    +  content: "\f5e7"; }
    +
    +.fa-chart-area:before {
    +  content: "\f1fe"; }
    +
    +.fa-chart-bar:before {
    +  content: "\f080"; }
    +
    +.fa-chart-line:before {
    +  content: "\f201"; }
    +
    +.fa-chart-pie:before {
    +  content: "\f200"; }
    +
    +.fa-check:before {
    +  content: "\f00c"; }
    +
    +.fa-check-circle:before {
    +  content: "\f058"; }
    +
    +.fa-check-double:before {
    +  content: "\f560"; }
    +
    +.fa-check-square:before {
    +  content: "\f14a"; }
    +
    +.fa-chess:before {
    +  content: "\f439"; }
    +
    +.fa-chess-bishop:before {
    +  content: "\f43a"; }
    +
    +.fa-chess-board:before {
    +  content: "\f43c"; }
    +
    +.fa-chess-king:before {
    +  content: "\f43f"; }
    +
    +.fa-chess-knight:before {
    +  content: "\f441"; }
    +
    +.fa-chess-pawn:before {
    +  content: "\f443"; }
    +
    +.fa-chess-queen:before {
    +  content: "\f445"; }
    +
    +.fa-chess-rook:before {
    +  content: "\f447"; }
    +
    +.fa-chevron-circle-down:before {
    +  content: "\f13a"; }
    +
    +.fa-chevron-circle-left:before {
    +  content: "\f137"; }
    +
    +.fa-chevron-circle-right:before {
    +  content: "\f138"; }
    +
    +.fa-chevron-circle-up:before {
    +  content: "\f139"; }
    +
    +.fa-chevron-down:before {
    +  content: "\f078"; }
    +
    +.fa-chevron-left:before {
    +  content: "\f053"; }
    +
    +.fa-chevron-right:before {
    +  content: "\f054"; }
    +
    +.fa-chevron-up:before {
    +  content: "\f077"; }
    +
    +.fa-child:before {
    +  content: "\f1ae"; }
    +
    +.fa-chrome:before {
    +  content: "\f268"; }
    +
    +.fa-church:before {
    +  content: "\f51d"; }
    +
    +.fa-circle:before {
    +  content: "\f111"; }
    +
    +.fa-circle-notch:before {
    +  content: "\f1ce"; }
    +
    +.fa-city:before {
    +  content: "\f64f"; }
    +
    +.fa-clipboard:before {
    +  content: "\f328"; }
    +
    +.fa-clipboard-check:before {
    +  content: "\f46c"; }
    +
    +.fa-clipboard-list:before {
    +  content: "\f46d"; }
    +
    +.fa-clock:before {
    +  content: "\f017"; }
    +
    +.fa-clone:before {
    +  content: "\f24d"; }
    +
    +.fa-closed-captioning:before {
    +  content: "\f20a"; }
    +
    +.fa-cloud:before {
    +  content: "\f0c2"; }
    +
    +.fa-cloud-download-alt:before {
    +  content: "\f381"; }
    +
    +.fa-cloud-moon:before {
    +  content: "\f6c3"; }
    +
    +.fa-cloud-sun:before {
    +  content: "\f6c4"; }
    +
    +.fa-cloud-upload-alt:before {
    +  content: "\f382"; }
    +
    +.fa-cloudscale:before {
    +  content: "\f383"; }
    +
    +.fa-cloudsmith:before {
    +  content: "\f384"; }
    +
    +.fa-cloudversify:before {
    +  content: "\f385"; }
    +
    +.fa-cocktail:before {
    +  content: "\f561"; }
    +
    +.fa-code:before {
    +  content: "\f121"; }
    +
    +.fa-code-branch:before {
    +  content: "\f126"; }
    +
    +.fa-codepen:before {
    +  content: "\f1cb"; }
    +
    +.fa-codiepie:before {
    +  content: "\f284"; }
    +
    +.fa-coffee:before {
    +  content: "\f0f4"; }
    +
    +.fa-cog:before {
    +  content: "\f013"; }
    +
    +.fa-cogs:before {
    +  content: "\f085"; }
    +
    +.fa-coins:before {
    +  content: "\f51e"; }
    +
    +.fa-columns:before {
    +  content: "\f0db"; }
    +
    +.fa-comment:before {
    +  content: "\f075"; }
    +
    +.fa-comment-alt:before {
    +  content: "\f27a"; }
    +
    +.fa-comment-dollar:before {
    +  content: "\f651"; }
    +
    +.fa-comment-dots:before {
    +  content: "\f4ad"; }
    +
    +.fa-comment-slash:before {
    +  content: "\f4b3"; }
    +
    +.fa-comments:before {
    +  content: "\f086"; }
    +
    +.fa-comments-dollar:before {
    +  content: "\f653"; }
    +
    +.fa-compact-disc:before {
    +  content: "\f51f"; }
    +
    +.fa-compass:before {
    +  content: "\f14e"; }
    +
    +.fa-compress:before {
    +  content: "\f066"; }
    +
    +.fa-concierge-bell:before {
    +  content: "\f562"; }
    +
    +.fa-connectdevelop:before {
    +  content: "\f20e"; }
    +
    +.fa-contao:before {
    +  content: "\f26d"; }
    +
    +.fa-cookie:before {
    +  content: "\f563"; }
    +
    +.fa-cookie-bite:before {
    +  content: "\f564"; }
    +
    +.fa-copy:before {
    +  content: "\f0c5"; }
    +
    +.fa-copyright:before {
    +  content: "\f1f9"; }
    +
    +.fa-couch:before {
    +  content: "\f4b8"; }
    +
    +.fa-cpanel:before {
    +  content: "\f388"; }
    +
    +.fa-creative-commons:before {
    +  content: "\f25e"; }
    +
    +.fa-creative-commons-by:before {
    +  content: "\f4e7"; }
    +
    +.fa-creative-commons-nc:before {
    +  content: "\f4e8"; }
    +
    +.fa-creative-commons-nc-eu:before {
    +  content: "\f4e9"; }
    +
    +.fa-creative-commons-nc-jp:before {
    +  content: "\f4ea"; }
    +
    +.fa-creative-commons-nd:before {
    +  content: "\f4eb"; }
    +
    +.fa-creative-commons-pd:before {
    +  content: "\f4ec"; }
    +
    +.fa-creative-commons-pd-alt:before {
    +  content: "\f4ed"; }
    +
    +.fa-creative-commons-remix:before {
    +  content: "\f4ee"; }
    +
    +.fa-creative-commons-sa:before {
    +  content: "\f4ef"; }
    +
    +.fa-creative-commons-sampling:before {
    +  content: "\f4f0"; }
    +
    +.fa-creative-commons-sampling-plus:before {
    +  content: "\f4f1"; }
    +
    +.fa-creative-commons-share:before {
    +  content: "\f4f2"; }
    +
    +.fa-creative-commons-zero:before {
    +  content: "\f4f3"; }
    +
    +.fa-credit-card:before {
    +  content: "\f09d"; }
    +
    +.fa-critical-role:before {
    +  content: "\f6c9"; }
    +
    +.fa-crop:before {
    +  content: "\f125"; }
    +
    +.fa-crop-alt:before {
    +  content: "\f565"; }
    +
    +.fa-cross:before {
    +  content: "\f654"; }
    +
    +.fa-crosshairs:before {
    +  content: "\f05b"; }
    +
    +.fa-crow:before {
    +  content: "\f520"; }
    +
    +.fa-crown:before {
    +  content: "\f521"; }
    +
    +.fa-css3:before {
    +  content: "\f13c"; }
    +
    +.fa-css3-alt:before {
    +  content: "\f38b"; }
    +
    +.fa-cube:before {
    +  content: "\f1b2"; }
    +
    +.fa-cubes:before {
    +  content: "\f1b3"; }
    +
    +.fa-cut:before {
    +  content: "\f0c4"; }
    +
    +.fa-cuttlefish:before {
    +  content: "\f38c"; }
    +
    +.fa-d-and-d:before {
    +  content: "\f38d"; }
    +
    +.fa-dashcube:before {
    +  content: "\f210"; }
    +
    +.fa-database:before {
    +  content: "\f1c0"; }
    +
    +.fa-deaf:before {
    +  content: "\f2a4"; }
    +
    +.fa-delicious:before {
    +  content: "\f1a5"; }
    +
    +.fa-deploydog:before {
    +  content: "\f38e"; }
    +
    +.fa-deskpro:before {
    +  content: "\f38f"; }
    +
    +.fa-desktop:before {
    +  content: "\f108"; }
    +
    +.fa-dev:before {
    +  content: "\f6cc"; }
    +
    +.fa-deviantart:before {
    +  content: "\f1bd"; }
    +
    +.fa-dharmachakra:before {
    +  content: "\f655"; }
    +
    +.fa-diagnoses:before {
    +  content: "\f470"; }
    +
    +.fa-dice:before {
    +  content: "\f522"; }
    +
    +.fa-dice-d20:before {
    +  content: "\f6cf"; }
    +
    +.fa-dice-d6:before {
    +  content: "\f6d1"; }
    +
    +.fa-dice-five:before {
    +  content: "\f523"; }
    +
    +.fa-dice-four:before {
    +  content: "\f524"; }
    +
    +.fa-dice-one:before {
    +  content: "\f525"; }
    +
    +.fa-dice-six:before {
    +  content: "\f526"; }
    +
    +.fa-dice-three:before {
    +  content: "\f527"; }
    +
    +.fa-dice-two:before {
    +  content: "\f528"; }
    +
    +.fa-digg:before {
    +  content: "\f1a6"; }
    +
    +.fa-digital-ocean:before {
    +  content: "\f391"; }
    +
    +.fa-digital-tachograph:before {
    +  content: "\f566"; }
    +
    +.fa-directions:before {
    +  content: "\f5eb"; }
    +
    +.fa-discord:before {
    +  content: "\f392"; }
    +
    +.fa-discourse:before {
    +  content: "\f393"; }
    +
    +.fa-divide:before {
    +  content: "\f529"; }
    +
    +.fa-dizzy:before {
    +  content: "\f567"; }
    +
    +.fa-dna:before {
    +  content: "\f471"; }
    +
    +.fa-dochub:before {
    +  content: "\f394"; }
    +
    +.fa-docker:before {
    +  content: "\f395"; }
    +
    +.fa-dog:before {
    +  content: "\f6d3"; }
    +
    +.fa-dollar-sign:before {
    +  content: "\f155"; }
    +
    +.fa-dolly:before {
    +  content: "\f472"; }
    +
    +.fa-dolly-flatbed:before {
    +  content: "\f474"; }
    +
    +.fa-donate:before {
    +  content: "\f4b9"; }
    +
    +.fa-door-closed:before {
    +  content: "\f52a"; }
    +
    +.fa-door-open:before {
    +  content: "\f52b"; }
    +
    +.fa-dot-circle:before {
    +  content: "\f192"; }
    +
    +.fa-dove:before {
    +  content: "\f4ba"; }
    +
    +.fa-download:before {
    +  content: "\f019"; }
    +
    +.fa-draft2digital:before {
    +  content: "\f396"; }
    +
    +.fa-drafting-compass:before {
    +  content: "\f568"; }
    +
    +.fa-dragon:before {
    +  content: "\f6d5"; }
    +
    +.fa-draw-polygon:before {
    +  content: "\f5ee"; }
    +
    +.fa-dribbble:before {
    +  content: "\f17d"; }
    +
    +.fa-dribbble-square:before {
    +  content: "\f397"; }
    +
    +.fa-dropbox:before {
    +  content: "\f16b"; }
    +
    +.fa-drum:before {
    +  content: "\f569"; }
    +
    +.fa-drum-steelpan:before {
    +  content: "\f56a"; }
    +
    +.fa-drumstick-bite:before {
    +  content: "\f6d7"; }
    +
    +.fa-drupal:before {
    +  content: "\f1a9"; }
    +
    +.fa-dumbbell:before {
    +  content: "\f44b"; }
    +
    +.fa-dungeon:before {
    +  content: "\f6d9"; }
    +
    +.fa-dyalog:before {
    +  content: "\f399"; }
    +
    +.fa-earlybirds:before {
    +  content: "\f39a"; }
    +
    +.fa-ebay:before {
    +  content: "\f4f4"; }
    +
    +.fa-edge:before {
    +  content: "\f282"; }
    +
    +.fa-edit:before {
    +  content: "\f044"; }
    +
    +.fa-eject:before {
    +  content: "\f052"; }
    +
    +.fa-elementor:before {
    +  content: "\f430"; }
    +
    +.fa-ellipsis-h:before {
    +  content: "\f141"; }
    +
    +.fa-ellipsis-v:before {
    +  content: "\f142"; }
    +
    +.fa-ello:before {
    +  content: "\f5f1"; }
    +
    +.fa-ember:before {
    +  content: "\f423"; }
    +
    +.fa-empire:before {
    +  content: "\f1d1"; }
    +
    +.fa-envelope:before {
    +  content: "\f0e0"; }
    +
    +.fa-envelope-open:before {
    +  content: "\f2b6"; }
    +
    +.fa-envelope-open-text:before {
    +  content: "\f658"; }
    +
    +.fa-envelope-square:before {
    +  content: "\f199"; }
    +
    +.fa-envira:before {
    +  content: "\f299"; }
    +
    +.fa-equals:before {
    +  content: "\f52c"; }
    +
    +.fa-eraser:before {
    +  content: "\f12d"; }
    +
    +.fa-erlang:before {
    +  content: "\f39d"; }
    +
    +.fa-ethereum:before {
    +  content: "\f42e"; }
    +
    +.fa-etsy:before {
    +  content: "\f2d7"; }
    +
    +.fa-euro-sign:before {
    +  content: "\f153"; }
    +
    +.fa-exchange-alt:before {
    +  content: "\f362"; }
    +
    +.fa-exclamation:before {
    +  content: "\f12a"; }
    +
    +.fa-exclamation-circle:before {
    +  content: "\f06a"; }
    +
    +.fa-exclamation-triangle:before {
    +  content: "\f071"; }
    +
    +.fa-expand:before {
    +  content: "\f065"; }
    +
    +.fa-expand-arrows-alt:before {
    +  content: "\f31e"; }
    +
    +.fa-expeditedssl:before {
    +  content: "\f23e"; }
    +
    +.fa-external-link-alt:before {
    +  content: "\f35d"; }
    +
    +.fa-external-link-square-alt:before {
    +  content: "\f360"; }
    +
    +.fa-eye:before {
    +  content: "\f06e"; }
    +
    +.fa-eye-dropper:before {
    +  content: "\f1fb"; }
    +
    +.fa-eye-slash:before {
    +  content: "\f070"; }
    +
    +.fa-facebook:before {
    +  content: "\f09a"; }
    +
    +.fa-facebook-f:before {
    +  content: "\f39e"; }
    +
    +.fa-facebook-messenger:before {
    +  content: "\f39f"; }
    +
    +.fa-facebook-square:before {
    +  content: "\f082"; }
    +
    +.fa-fantasy-flight-games:before {
    +  content: "\f6dc"; }
    +
    +.fa-fast-backward:before {
    +  content: "\f049"; }
    +
    +.fa-fast-forward:before {
    +  content: "\f050"; }
    +
    +.fa-fax:before {
    +  content: "\f1ac"; }
    +
    +.fa-feather:before {
    +  content: "\f52d"; }
    +
    +.fa-feather-alt:before {
    +  content: "\f56b"; }
    +
    +.fa-female:before {
    +  content: "\f182"; }
    +
    +.fa-fighter-jet:before {
    +  content: "\f0fb"; }
    +
    +.fa-file:before {
    +  content: "\f15b"; }
    +
    +.fa-file-alt:before {
    +  content: "\f15c"; }
    +
    +.fa-file-archive:before {
    +  content: "\f1c6"; }
    +
    +.fa-file-audio:before {
    +  content: "\f1c7"; }
    +
    +.fa-file-code:before {
    +  content: "\f1c9"; }
    +
    +.fa-file-contract:before {
    +  content: "\f56c"; }
    +
    +.fa-file-csv:before {
    +  content: "\f6dd"; }
    +
    +.fa-file-download:before {
    +  content: "\f56d"; }
    +
    +.fa-file-excel:before {
    +  content: "\f1c3"; }
    +
    +.fa-file-export:before {
    +  content: "\f56e"; }
    +
    +.fa-file-image:before {
    +  content: "\f1c5"; }
    +
    +.fa-file-import:before {
    +  content: "\f56f"; }
    +
    +.fa-file-invoice:before {
    +  content: "\f570"; }
    +
    +.fa-file-invoice-dollar:before {
    +  content: "\f571"; }
    +
    +.fa-file-medical:before {
    +  content: "\f477"; }
    +
    +.fa-file-medical-alt:before {
    +  content: "\f478"; }
    +
    +.fa-file-pdf:before {
    +  content: "\f1c1"; }
    +
    +.fa-file-powerpoint:before {
    +  content: "\f1c4"; }
    +
    +.fa-file-prescription:before {
    +  content: "\f572"; }
    +
    +.fa-file-signature:before {
    +  content: "\f573"; }
    +
    +.fa-file-upload:before {
    +  content: "\f574"; }
    +
    +.fa-file-video:before {
    +  content: "\f1c8"; }
    +
    +.fa-file-word:before {
    +  content: "\f1c2"; }
    +
    +.fa-fill:before {
    +  content: "\f575"; }
    +
    +.fa-fill-drip:before {
    +  content: "\f576"; }
    +
    +.fa-film:before {
    +  content: "\f008"; }
    +
    +.fa-filter:before {
    +  content: "\f0b0"; }
    +
    +.fa-fingerprint:before {
    +  content: "\f577"; }
    +
    +.fa-fire:before {
    +  content: "\f06d"; }
    +
    +.fa-fire-extinguisher:before {
    +  content: "\f134"; }
    +
    +.fa-firefox:before {
    +  content: "\f269"; }
    +
    +.fa-first-aid:before {
    +  content: "\f479"; }
    +
    +.fa-first-order:before {
    +  content: "\f2b0"; }
    +
    +.fa-first-order-alt:before {
    +  content: "\f50a"; }
    +
    +.fa-firstdraft:before {
    +  content: "\f3a1"; }
    +
    +.fa-fish:before {
    +  content: "\f578"; }
    +
    +.fa-fist-raised:before {
    +  content: "\f6de"; }
    +
    +.fa-flag:before {
    +  content: "\f024"; }
    +
    +.fa-flag-checkered:before {
    +  content: "\f11e"; }
    +
    +.fa-flask:before {
    +  content: "\f0c3"; }
    +
    +.fa-flickr:before {
    +  content: "\f16e"; }
    +
    +.fa-flipboard:before {
    +  content: "\f44d"; }
    +
    +.fa-flushed:before {
    +  content: "\f579"; }
    +
    +.fa-fly:before {
    +  content: "\f417"; }
    +
    +.fa-folder:before {
    +  content: "\f07b"; }
    +
    +.fa-folder-minus:before {
    +  content: "\f65d"; }
    +
    +.fa-folder-open:before {
    +  content: "\f07c"; }
    +
    +.fa-folder-plus:before {
    +  content: "\f65e"; }
    +
    +.fa-font:before {
    +  content: "\f031"; }
    +
    +.fa-font-awesome:before {
    +  content: "\f2b4"; }
    +
    +.fa-font-awesome-alt:before {
    +  content: "\f35c"; }
    +
    +.fa-font-awesome-flag:before {
    +  content: "\f425"; }
    +
    +.fa-font-awesome-logo-full:before {
    +  content: "\f4e6"; }
    +
    +.fa-fonticons:before {
    +  content: "\f280"; }
    +
    +.fa-fonticons-fi:before {
    +  content: "\f3a2"; }
    +
    +.fa-football-ball:before {
    +  content: "\f44e"; }
    +
    +.fa-fort-awesome:before {
    +  content: "\f286"; }
    +
    +.fa-fort-awesome-alt:before {
    +  content: "\f3a3"; }
    +
    +.fa-forumbee:before {
    +  content: "\f211"; }
    +
    +.fa-forward:before {
    +  content: "\f04e"; }
    +
    +.fa-foursquare:before {
    +  content: "\f180"; }
    +
    +.fa-free-code-camp:before {
    +  content: "\f2c5"; }
    +
    +.fa-freebsd:before {
    +  content: "\f3a4"; }
    +
    +.fa-frog:before {
    +  content: "\f52e"; }
    +
    +.fa-frown:before {
    +  content: "\f119"; }
    +
    +.fa-frown-open:before {
    +  content: "\f57a"; }
    +
    +.fa-fulcrum:before {
    +  content: "\f50b"; }
    +
    +.fa-funnel-dollar:before {
    +  content: "\f662"; }
    +
    +.fa-futbol:before {
    +  content: "\f1e3"; }
    +
    +.fa-galactic-republic:before {
    +  content: "\f50c"; }
    +
    +.fa-galactic-senate:before {
    +  content: "\f50d"; }
    +
    +.fa-gamepad:before {
    +  content: "\f11b"; }
    +
    +.fa-gas-pump:before {
    +  content: "\f52f"; }
    +
    +.fa-gavel:before {
    +  content: "\f0e3"; }
    +
    +.fa-gem:before {
    +  content: "\f3a5"; }
    +
    +.fa-genderless:before {
    +  content: "\f22d"; }
    +
    +.fa-get-pocket:before {
    +  content: "\f265"; }
    +
    +.fa-gg:before {
    +  content: "\f260"; }
    +
    +.fa-gg-circle:before {
    +  content: "\f261"; }
    +
    +.fa-ghost:before {
    +  content: "\f6e2"; }
    +
    +.fa-gift:before {
    +  content: "\f06b"; }
    +
    +.fa-git:before {
    +  content: "\f1d3"; }
    +
    +.fa-git-square:before {
    +  content: "\f1d2"; }
    +
    +.fa-github:before {
    +  content: "\f09b"; }
    +
    +.fa-github-alt:before {
    +  content: "\f113"; }
    +
    +.fa-github-square:before {
    +  content: "\f092"; }
    +
    +.fa-gitkraken:before {
    +  content: "\f3a6"; }
    +
    +.fa-gitlab:before {
    +  content: "\f296"; }
    +
    +.fa-gitter:before {
    +  content: "\f426"; }
    +
    +.fa-glass-martini:before {
    +  content: "\f000"; }
    +
    +.fa-glass-martini-alt:before {
    +  content: "\f57b"; }
    +
    +.fa-glasses:before {
    +  content: "\f530"; }
    +
    +.fa-glide:before {
    +  content: "\f2a5"; }
    +
    +.fa-glide-g:before {
    +  content: "\f2a6"; }
    +
    +.fa-globe:before {
    +  content: "\f0ac"; }
    +
    +.fa-globe-africa:before {
    +  content: "\f57c"; }
    +
    +.fa-globe-americas:before {
    +  content: "\f57d"; }
    +
    +.fa-globe-asia:before {
    +  content: "\f57e"; }
    +
    +.fa-gofore:before {
    +  content: "\f3a7"; }
    +
    +.fa-golf-ball:before {
    +  content: "\f450"; }
    +
    +.fa-goodreads:before {
    +  content: "\f3a8"; }
    +
    +.fa-goodreads-g:before {
    +  content: "\f3a9"; }
    +
    +.fa-google:before {
    +  content: "\f1a0"; }
    +
    +.fa-google-drive:before {
    +  content: "\f3aa"; }
    +
    +.fa-google-play:before {
    +  content: "\f3ab"; }
    +
    +.fa-google-plus:before {
    +  content: "\f2b3"; }
    +
    +.fa-google-plus-g:before {
    +  content: "\f0d5"; }
    +
    +.fa-google-plus-square:before {
    +  content: "\f0d4"; }
    +
    +.fa-google-wallet:before {
    +  content: "\f1ee"; }
    +
    +.fa-gopuram:before {
    +  content: "\f664"; }
    +
    +.fa-graduation-cap:before {
    +  content: "\f19d"; }
    +
    +.fa-gratipay:before {
    +  content: "\f184"; }
    +
    +.fa-grav:before {
    +  content: "\f2d6"; }
    +
    +.fa-greater-than:before {
    +  content: "\f531"; }
    +
    +.fa-greater-than-equal:before {
    +  content: "\f532"; }
    +
    +.fa-grimace:before {
    +  content: "\f57f"; }
    +
    +.fa-grin:before {
    +  content: "\f580"; }
    +
    +.fa-grin-alt:before {
    +  content: "\f581"; }
    +
    +.fa-grin-beam:before {
    +  content: "\f582"; }
    +
    +.fa-grin-beam-sweat:before {
    +  content: "\f583"; }
    +
    +.fa-grin-hearts:before {
    +  content: "\f584"; }
    +
    +.fa-grin-squint:before {
    +  content: "\f585"; }
    +
    +.fa-grin-squint-tears:before {
    +  content: "\f586"; }
    +
    +.fa-grin-stars:before {
    +  content: "\f587"; }
    +
    +.fa-grin-tears:before {
    +  content: "\f588"; }
    +
    +.fa-grin-tongue:before {
    +  content: "\f589"; }
    +
    +.fa-grin-tongue-squint:before {
    +  content: "\f58a"; }
    +
    +.fa-grin-tongue-wink:before {
    +  content: "\f58b"; }
    +
    +.fa-grin-wink:before {
    +  content: "\f58c"; }
    +
    +.fa-grip-horizontal:before {
    +  content: "\f58d"; }
    +
    +.fa-grip-vertical:before {
    +  content: "\f58e"; }
    +
    +.fa-gripfire:before {
    +  content: "\f3ac"; }
    +
    +.fa-grunt:before {
    +  content: "\f3ad"; }
    +
    +.fa-gulp:before {
    +  content: "\f3ae"; }
    +
    +.fa-h-square:before {
    +  content: "\f0fd"; }
    +
    +.fa-hacker-news:before {
    +  content: "\f1d4"; }
    +
    +.fa-hacker-news-square:before {
    +  content: "\f3af"; }
    +
    +.fa-hackerrank:before {
    +  content: "\f5f7"; }
    +
    +.fa-hammer:before {
    +  content: "\f6e3"; }
    +
    +.fa-hamsa:before {
    +  content: "\f665"; }
    +
    +.fa-hand-holding:before {
    +  content: "\f4bd"; }
    +
    +.fa-hand-holding-heart:before {
    +  content: "\f4be"; }
    +
    +.fa-hand-holding-usd:before {
    +  content: "\f4c0"; }
    +
    +.fa-hand-lizard:before {
    +  content: "\f258"; }
    +
    +.fa-hand-paper:before {
    +  content: "\f256"; }
    +
    +.fa-hand-peace:before {
    +  content: "\f25b"; }
    +
    +.fa-hand-point-down:before {
    +  content: "\f0a7"; }
    +
    +.fa-hand-point-left:before {
    +  content: "\f0a5"; }
    +
    +.fa-hand-point-right:before {
    +  content: "\f0a4"; }
    +
    +.fa-hand-point-up:before {
    +  content: "\f0a6"; }
    +
    +.fa-hand-pointer:before {
    +  content: "\f25a"; }
    +
    +.fa-hand-rock:before {
    +  content: "\f255"; }
    +
    +.fa-hand-scissors:before {
    +  content: "\f257"; }
    +
    +.fa-hand-spock:before {
    +  content: "\f259"; }
    +
    +.fa-hands:before {
    +  content: "\f4c2"; }
    +
    +.fa-hands-helping:before {
    +  content: "\f4c4"; }
    +
    +.fa-handshake:before {
    +  content: "\f2b5"; }
    +
    +.fa-hanukiah:before {
    +  content: "\f6e6"; }
    +
    +.fa-hashtag:before {
    +  content: "\f292"; }
    +
    +.fa-hat-wizard:before {
    +  content: "\f6e8"; }
    +
    +.fa-haykal:before {
    +  content: "\f666"; }
    +
    +.fa-hdd:before {
    +  content: "\f0a0"; }
    +
    +.fa-heading:before {
    +  content: "\f1dc"; }
    +
    +.fa-headphones:before {
    +  content: "\f025"; }
    +
    +.fa-headphones-alt:before {
    +  content: "\f58f"; }
    +
    +.fa-headset:before {
    +  content: "\f590"; }
    +
    +.fa-heart:before {
    +  content: "\f004"; }
    +
    +.fa-heartbeat:before {
    +  content: "\f21e"; }
    +
    +.fa-helicopter:before {
    +  content: "\f533"; }
    +
    +.fa-highlighter:before {
    +  content: "\f591"; }
    +
    +.fa-hiking:before {
    +  content: "\f6ec"; }
    +
    +.fa-hippo:before {
    +  content: "\f6ed"; }
    +
    +.fa-hips:before {
    +  content: "\f452"; }
    +
    +.fa-hire-a-helper:before {
    +  content: "\f3b0"; }
    +
    +.fa-history:before {
    +  content: "\f1da"; }
    +
    +.fa-hockey-puck:before {
    +  content: "\f453"; }
    +
    +.fa-home:before {
    +  content: "\f015"; }
    +
    +.fa-hooli:before {
    +  content: "\f427"; }
    +
    +.fa-hornbill:before {
    +  content: "\f592"; }
    +
    +.fa-horse:before {
    +  content: "\f6f0"; }
    +
    +.fa-hospital:before {
    +  content: "\f0f8"; }
    +
    +.fa-hospital-alt:before {
    +  content: "\f47d"; }
    +
    +.fa-hospital-symbol:before {
    +  content: "\f47e"; }
    +
    +.fa-hot-tub:before {
    +  content: "\f593"; }
    +
    +.fa-hotel:before {
    +  content: "\f594"; }
    +
    +.fa-hotjar:before {
    +  content: "\f3b1"; }
    +
    +.fa-hourglass:before {
    +  content: "\f254"; }
    +
    +.fa-hourglass-end:before {
    +  content: "\f253"; }
    +
    +.fa-hourglass-half:before {
    +  content: "\f252"; }
    +
    +.fa-hourglass-start:before {
    +  content: "\f251"; }
    +
    +.fa-house-damage:before {
    +  content: "\f6f1"; }
    +
    +.fa-houzz:before {
    +  content: "\f27c"; }
    +
    +.fa-hryvnia:before {
    +  content: "\f6f2"; }
    +
    +.fa-html5:before {
    +  content: "\f13b"; }
    +
    +.fa-hubspot:before {
    +  content: "\f3b2"; }
    +
    +.fa-i-cursor:before {
    +  content: "\f246"; }
    +
    +.fa-id-badge:before {
    +  content: "\f2c1"; }
    +
    +.fa-id-card:before {
    +  content: "\f2c2"; }
    +
    +.fa-id-card-alt:before {
    +  content: "\f47f"; }
    +
    +.fa-image:before {
    +  content: "\f03e"; }
    +
    +.fa-images:before {
    +  content: "\f302"; }
    +
    +.fa-imdb:before {
    +  content: "\f2d8"; }
    +
    +.fa-inbox:before {
    +  content: "\f01c"; }
    +
    +.fa-indent:before {
    +  content: "\f03c"; }
    +
    +.fa-industry:before {
    +  content: "\f275"; }
    +
    +.fa-infinity:before {
    +  content: "\f534"; }
    +
    +.fa-info:before {
    +  content: "\f129"; }
    +
    +.fa-info-circle:before {
    +  content: "\f05a"; }
    +
    +.fa-instagram:before {
    +  content: "\f16d"; }
    +
    +.fa-internet-explorer:before {
    +  content: "\f26b"; }
    +
    +.fa-ioxhost:before {
    +  content: "\f208"; }
    +
    +.fa-italic:before {
    +  content: "\f033"; }
    +
    +.fa-itunes:before {
    +  content: "\f3b4"; }
    +
    +.fa-itunes-note:before {
    +  content: "\f3b5"; }
    +
    +.fa-java:before {
    +  content: "\f4e4"; }
    +
    +.fa-jedi:before {
    +  content: "\f669"; }
    +
    +.fa-jedi-order:before {
    +  content: "\f50e"; }
    +
    +.fa-jenkins:before {
    +  content: "\f3b6"; }
    +
    +.fa-joget:before {
    +  content: "\f3b7"; }
    +
    +.fa-joint:before {
    +  content: "\f595"; }
    +
    +.fa-joomla:before {
    +  content: "\f1aa"; }
    +
    +.fa-journal-whills:before {
    +  content: "\f66a"; }
    +
    +.fa-js:before {
    +  content: "\f3b8"; }
    +
    +.fa-js-square:before {
    +  content: "\f3b9"; }
    +
    +.fa-jsfiddle:before {
    +  content: "\f1cc"; }
    +
    +.fa-kaaba:before {
    +  content: "\f66b"; }
    +
    +.fa-kaggle:before {
    +  content: "\f5fa"; }
    +
    +.fa-key:before {
    +  content: "\f084"; }
    +
    +.fa-keybase:before {
    +  content: "\f4f5"; }
    +
    +.fa-keyboard:before {
    +  content: "\f11c"; }
    +
    +.fa-keycdn:before {
    +  content: "\f3ba"; }
    +
    +.fa-khanda:before {
    +  content: "\f66d"; }
    +
    +.fa-kickstarter:before {
    +  content: "\f3bb"; }
    +
    +.fa-kickstarter-k:before {
    +  content: "\f3bc"; }
    +
    +.fa-kiss:before {
    +  content: "\f596"; }
    +
    +.fa-kiss-beam:before {
    +  content: "\f597"; }
    +
    +.fa-kiss-wink-heart:before {
    +  content: "\f598"; }
    +
    +.fa-kiwi-bird:before {
    +  content: "\f535"; }
    +
    +.fa-korvue:before {
    +  content: "\f42f"; }
    +
    +.fa-landmark:before {
    +  content: "\f66f"; }
    +
    +.fa-language:before {
    +  content: "\f1ab"; }
    +
    +.fa-laptop:before {
    +  content: "\f109"; }
    +
    +.fa-laptop-code:before {
    +  content: "\f5fc"; }
    +
    +.fa-laravel:before {
    +  content: "\f3bd"; }
    +
    +.fa-lastfm:before {
    +  content: "\f202"; }
    +
    +.fa-lastfm-square:before {
    +  content: "\f203"; }
    +
    +.fa-laugh:before {
    +  content: "\f599"; }
    +
    +.fa-laugh-beam:before {
    +  content: "\f59a"; }
    +
    +.fa-laugh-squint:before {
    +  content: "\f59b"; }
    +
    +.fa-laugh-wink:before {
    +  content: "\f59c"; }
    +
    +.fa-layer-group:before {
    +  content: "\f5fd"; }
    +
    +.fa-leaf:before {
    +  content: "\f06c"; }
    +
    +.fa-leanpub:before {
    +  content: "\f212"; }
    +
    +.fa-lemon:before {
    +  content: "\f094"; }
    +
    +.fa-less:before {
    +  content: "\f41d"; }
    +
    +.fa-less-than:before {
    +  content: "\f536"; }
    +
    +.fa-less-than-equal:before {
    +  content: "\f537"; }
    +
    +.fa-level-down-alt:before {
    +  content: "\f3be"; }
    +
    +.fa-level-up-alt:before {
    +  content: "\f3bf"; }
    +
    +.fa-life-ring:before {
    +  content: "\f1cd"; }
    +
    +.fa-lightbulb:before {
    +  content: "\f0eb"; }
    +
    +.fa-line:before {
    +  content: "\f3c0"; }
    +
    +.fa-link:before {
    +  content: "\f0c1"; }
    +
    +.fa-linkedin:before {
    +  content: "\f08c"; }
    +
    +.fa-linkedin-in:before {
    +  content: "\f0e1"; }
    +
    +.fa-linode:before {
    +  content: "\f2b8"; }
    +
    +.fa-linux:before {
    +  content: "\f17c"; }
    +
    +.fa-lira-sign:before {
    +  content: "\f195"; }
    +
    +.fa-list:before {
    +  content: "\f03a"; }
    +
    +.fa-list-alt:before {
    +  content: "\f022"; }
    +
    +.fa-list-ol:before {
    +  content: "\f0cb"; }
    +
    +.fa-list-ul:before {
    +  content: "\f0ca"; }
    +
    +.fa-location-arrow:before {
    +  content: "\f124"; }
    +
    +.fa-lock:before {
    +  content: "\f023"; }
    +
    +.fa-lock-open:before {
    +  content: "\f3c1"; }
    +
    +.fa-long-arrow-alt-down:before {
    +  content: "\f309"; }
    +
    +.fa-long-arrow-alt-left:before {
    +  content: "\f30a"; }
    +
    +.fa-long-arrow-alt-right:before {
    +  content: "\f30b"; }
    +
    +.fa-long-arrow-alt-up:before {
    +  content: "\f30c"; }
    +
    +.fa-low-vision:before {
    +  content: "\f2a8"; }
    +
    +.fa-luggage-cart:before {
    +  content: "\f59d"; }
    +
    +.fa-lyft:before {
    +  content: "\f3c3"; }
    +
    +.fa-magento:before {
    +  content: "\f3c4"; }
    +
    +.fa-magic:before {
    +  content: "\f0d0"; }
    +
    +.fa-magnet:before {
    +  content: "\f076"; }
    +
    +.fa-mail-bulk:before {
    +  content: "\f674"; }
    +
    +.fa-mailchimp:before {
    +  content: "\f59e"; }
    +
    +.fa-male:before {
    +  content: "\f183"; }
    +
    +.fa-mandalorian:before {
    +  content: "\f50f"; }
    +
    +.fa-map:before {
    +  content: "\f279"; }
    +
    +.fa-map-marked:before {
    +  content: "\f59f"; }
    +
    +.fa-map-marked-alt:before {
    +  content: "\f5a0"; }
    +
    +.fa-map-marker:before {
    +  content: "\f041"; }
    +
    +.fa-map-marker-alt:before {
    +  content: "\f3c5"; }
    +
    +.fa-map-pin:before {
    +  content: "\f276"; }
    +
    +.fa-map-signs:before {
    +  content: "\f277"; }
    +
    +.fa-markdown:before {
    +  content: "\f60f"; }
    +
    +.fa-marker:before {
    +  content: "\f5a1"; }
    +
    +.fa-mars:before {
    +  content: "\f222"; }
    +
    +.fa-mars-double:before {
    +  content: "\f227"; }
    +
    +.fa-mars-stroke:before {
    +  content: "\f229"; }
    +
    +.fa-mars-stroke-h:before {
    +  content: "\f22b"; }
    +
    +.fa-mars-stroke-v:before {
    +  content: "\f22a"; }
    +
    +.fa-mask:before {
    +  content: "\f6fa"; }
    +
    +.fa-mastodon:before {
    +  content: "\f4f6"; }
    +
    +.fa-maxcdn:before {
    +  content: "\f136"; }
    +
    +.fa-medal:before {
    +  content: "\f5a2"; }
    +
    +.fa-medapps:before {
    +  content: "\f3c6"; }
    +
    +.fa-medium:before {
    +  content: "\f23a"; }
    +
    +.fa-medium-m:before {
    +  content: "\f3c7"; }
    +
    +.fa-medkit:before {
    +  content: "\f0fa"; }
    +
    +.fa-medrt:before {
    +  content: "\f3c8"; }
    +
    +.fa-meetup:before {
    +  content: "\f2e0"; }
    +
    +.fa-megaport:before {
    +  content: "\f5a3"; }
    +
    +.fa-meh:before {
    +  content: "\f11a"; }
    +
    +.fa-meh-blank:before {
    +  content: "\f5a4"; }
    +
    +.fa-meh-rolling-eyes:before {
    +  content: "\f5a5"; }
    +
    +.fa-memory:before {
    +  content: "\f538"; }
    +
    +.fa-menorah:before {
    +  content: "\f676"; }
    +
    +.fa-mercury:before {
    +  content: "\f223"; }
    +
    +.fa-microchip:before {
    +  content: "\f2db"; }
    +
    +.fa-microphone:before {
    +  content: "\f130"; }
    +
    +.fa-microphone-alt:before {
    +  content: "\f3c9"; }
    +
    +.fa-microphone-alt-slash:before {
    +  content: "\f539"; }
    +
    +.fa-microphone-slash:before {
    +  content: "\f131"; }
    +
    +.fa-microscope:before {
    +  content: "\f610"; }
    +
    +.fa-microsoft:before {
    +  content: "\f3ca"; }
    +
    +.fa-minus:before {
    +  content: "\f068"; }
    +
    +.fa-minus-circle:before {
    +  content: "\f056"; }
    +
    +.fa-minus-square:before {
    +  content: "\f146"; }
    +
    +.fa-mix:before {
    +  content: "\f3cb"; }
    +
    +.fa-mixcloud:before {
    +  content: "\f289"; }
    +
    +.fa-mizuni:before {
    +  content: "\f3cc"; }
    +
    +.fa-mobile:before {
    +  content: "\f10b"; }
    +
    +.fa-mobile-alt:before {
    +  content: "\f3cd"; }
    +
    +.fa-modx:before {
    +  content: "\f285"; }
    +
    +.fa-monero:before {
    +  content: "\f3d0"; }
    +
    +.fa-money-bill:before {
    +  content: "\f0d6"; }
    +
    +.fa-money-bill-alt:before {
    +  content: "\f3d1"; }
    +
    +.fa-money-bill-wave:before {
    +  content: "\f53a"; }
    +
    +.fa-money-bill-wave-alt:before {
    +  content: "\f53b"; }
    +
    +.fa-money-check:before {
    +  content: "\f53c"; }
    +
    +.fa-money-check-alt:before {
    +  content: "\f53d"; }
    +
    +.fa-monument:before {
    +  content: "\f5a6"; }
    +
    +.fa-moon:before {
    +  content: "\f186"; }
    +
    +.fa-mortar-pestle:before {
    +  content: "\f5a7"; }
    +
    +.fa-mosque:before {
    +  content: "\f678"; }
    +
    +.fa-motorcycle:before {
    +  content: "\f21c"; }
    +
    +.fa-mountain:before {
    +  content: "\f6fc"; }
    +
    +.fa-mouse-pointer:before {
    +  content: "\f245"; }
    +
    +.fa-music:before {
    +  content: "\f001"; }
    +
    +.fa-napster:before {
    +  content: "\f3d2"; }
    +
    +.fa-neos:before {
    +  content: "\f612"; }
    +
    +.fa-network-wired:before {
    +  content: "\f6ff"; }
    +
    +.fa-neuter:before {
    +  content: "\f22c"; }
    +
    +.fa-newspaper:before {
    +  content: "\f1ea"; }
    +
    +.fa-nimblr:before {
    +  content: "\f5a8"; }
    +
    +.fa-nintendo-switch:before {
    +  content: "\f418"; }
    +
    +.fa-node:before {
    +  content: "\f419"; }
    +
    +.fa-node-js:before {
    +  content: "\f3d3"; }
    +
    +.fa-not-equal:before {
    +  content: "\f53e"; }
    +
    +.fa-notes-medical:before {
    +  content: "\f481"; }
    +
    +.fa-npm:before {
    +  content: "\f3d4"; }
    +
    +.fa-ns8:before {
    +  content: "\f3d5"; }
    +
    +.fa-nutritionix:before {
    +  content: "\f3d6"; }
    +
    +.fa-object-group:before {
    +  content: "\f247"; }
    +
    +.fa-object-ungroup:before {
    +  content: "\f248"; }
    +
    +.fa-odnoklassniki:before {
    +  content: "\f263"; }
    +
    +.fa-odnoklassniki-square:before {
    +  content: "\f264"; }
    +
    +.fa-oil-can:before {
    +  content: "\f613"; }
    +
    +.fa-old-republic:before {
    +  content: "\f510"; }
    +
    +.fa-om:before {
    +  content: "\f679"; }
    +
    +.fa-opencart:before {
    +  content: "\f23d"; }
    +
    +.fa-openid:before {
    +  content: "\f19b"; }
    +
    +.fa-opera:before {
    +  content: "\f26a"; }
    +
    +.fa-optin-monster:before {
    +  content: "\f23c"; }
    +
    +.fa-osi:before {
    +  content: "\f41a"; }
    +
    +.fa-otter:before {
    +  content: "\f700"; }
    +
    +.fa-outdent:before {
    +  content: "\f03b"; }
    +
    +.fa-page4:before {
    +  content: "\f3d7"; }
    +
    +.fa-pagelines:before {
    +  content: "\f18c"; }
    +
    +.fa-paint-brush:before {
    +  content: "\f1fc"; }
    +
    +.fa-paint-roller:before {
    +  content: "\f5aa"; }
    +
    +.fa-palette:before {
    +  content: "\f53f"; }
    +
    +.fa-palfed:before {
    +  content: "\f3d8"; }
    +
    +.fa-pallet:before {
    +  content: "\f482"; }
    +
    +.fa-paper-plane:before {
    +  content: "\f1d8"; }
    +
    +.fa-paperclip:before {
    +  content: "\f0c6"; }
    +
    +.fa-parachute-box:before {
    +  content: "\f4cd"; }
    +
    +.fa-paragraph:before {
    +  content: "\f1dd"; }
    +
    +.fa-parking:before {
    +  content: "\f540"; }
    +
    +.fa-passport:before {
    +  content: "\f5ab"; }
    +
    +.fa-pastafarianism:before {
    +  content: "\f67b"; }
    +
    +.fa-paste:before {
    +  content: "\f0ea"; }
    +
    +.fa-patreon:before {
    +  content: "\f3d9"; }
    +
    +.fa-pause:before {
    +  content: "\f04c"; }
    +
    +.fa-pause-circle:before {
    +  content: "\f28b"; }
    +
    +.fa-paw:before {
    +  content: "\f1b0"; }
    +
    +.fa-paypal:before {
    +  content: "\f1ed"; }
    +
    +.fa-peace:before {
    +  content: "\f67c"; }
    +
    +.fa-pen:before {
    +  content: "\f304"; }
    +
    +.fa-pen-alt:before {
    +  content: "\f305"; }
    +
    +.fa-pen-fancy:before {
    +  content: "\f5ac"; }
    +
    +.fa-pen-nib:before {
    +  content: "\f5ad"; }
    +
    +.fa-pen-square:before {
    +  content: "\f14b"; }
    +
    +.fa-pencil-alt:before {
    +  content: "\f303"; }
    +
    +.fa-pencil-ruler:before {
    +  content: "\f5ae"; }
    +
    +.fa-penny-arcade:before {
    +  content: "\f704"; }
    +
    +.fa-people-carry:before {
    +  content: "\f4ce"; }
    +
    +.fa-percent:before {
    +  content: "\f295"; }
    +
    +.fa-percentage:before {
    +  content: "\f541"; }
    +
    +.fa-periscope:before {
    +  content: "\f3da"; }
    +
    +.fa-phabricator:before {
    +  content: "\f3db"; }
    +
    +.fa-phoenix-framework:before {
    +  content: "\f3dc"; }
    +
    +.fa-phoenix-squadron:before {
    +  content: "\f511"; }
    +
    +.fa-phone:before {
    +  content: "\f095"; }
    +
    +.fa-phone-slash:before {
    +  content: "\f3dd"; }
    +
    +.fa-phone-square:before {
    +  content: "\f098"; }
    +
    +.fa-phone-volume:before {
    +  content: "\f2a0"; }
    +
    +.fa-php:before {
    +  content: "\f457"; }
    +
    +.fa-pied-piper:before {
    +  content: "\f2ae"; }
    +
    +.fa-pied-piper-alt:before {
    +  content: "\f1a8"; }
    +
    +.fa-pied-piper-hat:before {
    +  content: "\f4e5"; }
    +
    +.fa-pied-piper-pp:before {
    +  content: "\f1a7"; }
    +
    +.fa-piggy-bank:before {
    +  content: "\f4d3"; }
    +
    +.fa-pills:before {
    +  content: "\f484"; }
    +
    +.fa-pinterest:before {
    +  content: "\f0d2"; }
    +
    +.fa-pinterest-p:before {
    +  content: "\f231"; }
    +
    +.fa-pinterest-square:before {
    +  content: "\f0d3"; }
    +
    +.fa-place-of-worship:before {
    +  content: "\f67f"; }
    +
    +.fa-plane:before {
    +  content: "\f072"; }
    +
    +.fa-plane-arrival:before {
    +  content: "\f5af"; }
    +
    +.fa-plane-departure:before {
    +  content: "\f5b0"; }
    +
    +.fa-play:before {
    +  content: "\f04b"; }
    +
    +.fa-play-circle:before {
    +  content: "\f144"; }
    +
    +.fa-playstation:before {
    +  content: "\f3df"; }
    +
    +.fa-plug:before {
    +  content: "\f1e6"; }
    +
    +.fa-plus:before {
    +  content: "\f067"; }
    +
    +.fa-plus-circle:before {
    +  content: "\f055"; }
    +
    +.fa-plus-square:before {
    +  content: "\f0fe"; }
    +
    +.fa-podcast:before {
    +  content: "\f2ce"; }
    +
    +.fa-poll:before {
    +  content: "\f681"; }
    +
    +.fa-poll-h:before {
    +  content: "\f682"; }
    +
    +.fa-poo:before {
    +  content: "\f2fe"; }
    +
    +.fa-poop:before {
    +  content: "\f619"; }
    +
    +.fa-portrait:before {
    +  content: "\f3e0"; }
    +
    +.fa-pound-sign:before {
    +  content: "\f154"; }
    +
    +.fa-power-off:before {
    +  content: "\f011"; }
    +
    +.fa-pray:before {
    +  content: "\f683"; }
    +
    +.fa-praying-hands:before {
    +  content: "\f684"; }
    +
    +.fa-prescription:before {
    +  content: "\f5b1"; }
    +
    +.fa-prescription-bottle:before {
    +  content: "\f485"; }
    +
    +.fa-prescription-bottle-alt:before {
    +  content: "\f486"; }
    +
    +.fa-print:before {
    +  content: "\f02f"; }
    +
    +.fa-procedures:before {
    +  content: "\f487"; }
    +
    +.fa-product-hunt:before {
    +  content: "\f288"; }
    +
    +.fa-project-diagram:before {
    +  content: "\f542"; }
    +
    +.fa-pushed:before {
    +  content: "\f3e1"; }
    +
    +.fa-puzzle-piece:before {
    +  content: "\f12e"; }
    +
    +.fa-python:before {
    +  content: "\f3e2"; }
    +
    +.fa-qq:before {
    +  content: "\f1d6"; }
    +
    +.fa-qrcode:before {
    +  content: "\f029"; }
    +
    +.fa-question:before {
    +  content: "\f128"; }
    +
    +.fa-question-circle:before {
    +  content: "\f059"; }
    +
    +.fa-quidditch:before {
    +  content: "\f458"; }
    +
    +.fa-quinscape:before {
    +  content: "\f459"; }
    +
    +.fa-quora:before {
    +  content: "\f2c4"; }
    +
    +.fa-quote-left:before {
    +  content: "\f10d"; }
    +
    +.fa-quote-right:before {
    +  content: "\f10e"; }
    +
    +.fa-quran:before {
    +  content: "\f687"; }
    +
    +.fa-r-project:before {
    +  content: "\f4f7"; }
    +
    +.fa-random:before {
    +  content: "\f074"; }
    +
    +.fa-ravelry:before {
    +  content: "\f2d9"; }
    +
    +.fa-react:before {
    +  content: "\f41b"; }
    +
    +.fa-readme:before {
    +  content: "\f4d5"; }
    +
    +.fa-rebel:before {
    +  content: "\f1d0"; }
    +
    +.fa-receipt:before {
    +  content: "\f543"; }
    +
    +.fa-recycle:before {
    +  content: "\f1b8"; }
    +
    +.fa-red-river:before {
    +  content: "\f3e3"; }
    +
    +.fa-reddit:before {
    +  content: "\f1a1"; }
    +
    +.fa-reddit-alien:before {
    +  content: "\f281"; }
    +
    +.fa-reddit-square:before {
    +  content: "\f1a2"; }
    +
    +.fa-redo:before {
    +  content: "\f01e"; }
    +
    +.fa-redo-alt:before {
    +  content: "\f2f9"; }
    +
    +.fa-registered:before {
    +  content: "\f25d"; }
    +
    +.fa-rendact:before {
    +  content: "\f3e4"; }
    +
    +.fa-renren:before {
    +  content: "\f18b"; }
    +
    +.fa-reply:before {
    +  content: "\f3e5"; }
    +
    +.fa-reply-all:before {
    +  content: "\f122"; }
    +
    +.fa-replyd:before {
    +  content: "\f3e6"; }
    +
    +.fa-researchgate:before {
    +  content: "\f4f8"; }
    +
    +.fa-resolving:before {
    +  content: "\f3e7"; }
    +
    +.fa-retweet:before {
    +  content: "\f079"; }
    +
    +.fa-rev:before {
    +  content: "\f5b2"; }
    +
    +.fa-ribbon:before {
    +  content: "\f4d6"; }
    +
    +.fa-ring:before {
    +  content: "\f70b"; }
    +
    +.fa-road:before {
    +  content: "\f018"; }
    +
    +.fa-robot:before {
    +  content: "\f544"; }
    +
    +.fa-rocket:before {
    +  content: "\f135"; }
    +
    +.fa-rocketchat:before {
    +  content: "\f3e8"; }
    +
    +.fa-rockrms:before {
    +  content: "\f3e9"; }
    +
    +.fa-route:before {
    +  content: "\f4d7"; }
    +
    +.fa-rss:before {
    +  content: "\f09e"; }
    +
    +.fa-rss-square:before {
    +  content: "\f143"; }
    +
    +.fa-ruble-sign:before {
    +  content: "\f158"; }
    +
    +.fa-ruler:before {
    +  content: "\f545"; }
    +
    +.fa-ruler-combined:before {
    +  content: "\f546"; }
    +
    +.fa-ruler-horizontal:before {
    +  content: "\f547"; }
    +
    +.fa-ruler-vertical:before {
    +  content: "\f548"; }
    +
    +.fa-running:before {
    +  content: "\f70c"; }
    +
    +.fa-rupee-sign:before {
    +  content: "\f156"; }
    +
    +.fa-sad-cry:before {
    +  content: "\f5b3"; }
    +
    +.fa-sad-tear:before {
    +  content: "\f5b4"; }
    +
    +.fa-safari:before {
    +  content: "\f267"; }
    +
    +.fa-sass:before {
    +  content: "\f41e"; }
    +
    +.fa-save:before {
    +  content: "\f0c7"; }
    +
    +.fa-schlix:before {
    +  content: "\f3ea"; }
    +
    +.fa-school:before {
    +  content: "\f549"; }
    +
    +.fa-screwdriver:before {
    +  content: "\f54a"; }
    +
    +.fa-scribd:before {
    +  content: "\f28a"; }
    +
    +.fa-scroll:before {
    +  content: "\f70e"; }
    +
    +.fa-search:before {
    +  content: "\f002"; }
    +
    +.fa-search-dollar:before {
    +  content: "\f688"; }
    +
    +.fa-search-location:before {
    +  content: "\f689"; }
    +
    +.fa-search-minus:before {
    +  content: "\f010"; }
    +
    +.fa-search-plus:before {
    +  content: "\f00e"; }
    +
    +.fa-searchengin:before {
    +  content: "\f3eb"; }
    +
    +.fa-seedling:before {
    +  content: "\f4d8"; }
    +
    +.fa-sellcast:before {
    +  content: "\f2da"; }
    +
    +.fa-sellsy:before {
    +  content: "\f213"; }
    +
    +.fa-server:before {
    +  content: "\f233"; }
    +
    +.fa-servicestack:before {
    +  content: "\f3ec"; }
    +
    +.fa-shapes:before {
    +  content: "\f61f"; }
    +
    +.fa-share:before {
    +  content: "\f064"; }
    +
    +.fa-share-alt:before {
    +  content: "\f1e0"; }
    +
    +.fa-share-alt-square:before {
    +  content: "\f1e1"; }
    +
    +.fa-share-square:before {
    +  content: "\f14d"; }
    +
    +.fa-shekel-sign:before {
    +  content: "\f20b"; }
    +
    +.fa-shield-alt:before {
    +  content: "\f3ed"; }
    +
    +.fa-ship:before {
    +  content: "\f21a"; }
    +
    +.fa-shipping-fast:before {
    +  content: "\f48b"; }
    +
    +.fa-shirtsinbulk:before {
    +  content: "\f214"; }
    +
    +.fa-shoe-prints:before {
    +  content: "\f54b"; }
    +
    +.fa-shopping-bag:before {
    +  content: "\f290"; }
    +
    +.fa-shopping-basket:before {
    +  content: "\f291"; }
    +
    +.fa-shopping-cart:before {
    +  content: "\f07a"; }
    +
    +.fa-shopware:before {
    +  content: "\f5b5"; }
    +
    +.fa-shower:before {
    +  content: "\f2cc"; }
    +
    +.fa-shuttle-van:before {
    +  content: "\f5b6"; }
    +
    +.fa-sign:before {
    +  content: "\f4d9"; }
    +
    +.fa-sign-in-alt:before {
    +  content: "\f2f6"; }
    +
    +.fa-sign-language:before {
    +  content: "\f2a7"; }
    +
    +.fa-sign-out-alt:before {
    +  content: "\f2f5"; }
    +
    +.fa-signal:before {
    +  content: "\f012"; }
    +
    +.fa-signature:before {
    +  content: "\f5b7"; }
    +
    +.fa-simplybuilt:before {
    +  content: "\f215"; }
    +
    +.fa-sistrix:before {
    +  content: "\f3ee"; }
    +
    +.fa-sitemap:before {
    +  content: "\f0e8"; }
    +
    +.fa-sith:before {
    +  content: "\f512"; }
    +
    +.fa-skull:before {
    +  content: "\f54c"; }
    +
    +.fa-skull-crossbones:before {
    +  content: "\f714"; }
    +
    +.fa-skyatlas:before {
    +  content: "\f216"; }
    +
    +.fa-skype:before {
    +  content: "\f17e"; }
    +
    +.fa-slack:before {
    +  content: "\f198"; }
    +
    +.fa-slack-hash:before {
    +  content: "\f3ef"; }
    +
    +.fa-slash:before {
    +  content: "\f715"; }
    +
    +.fa-sliders-h:before {
    +  content: "\f1de"; }
    +
    +.fa-slideshare:before {
    +  content: "\f1e7"; }
    +
    +.fa-smile:before {
    +  content: "\f118"; }
    +
    +.fa-smile-beam:before {
    +  content: "\f5b8"; }
    +
    +.fa-smile-wink:before {
    +  content: "\f4da"; }
    +
    +.fa-smoking:before {
    +  content: "\f48d"; }
    +
    +.fa-smoking-ban:before {
    +  content: "\f54d"; }
    +
    +.fa-snapchat:before {
    +  content: "\f2ab"; }
    +
    +.fa-snapchat-ghost:before {
    +  content: "\f2ac"; }
    +
    +.fa-snapchat-square:before {
    +  content: "\f2ad"; }
    +
    +.fa-snowflake:before {
    +  content: "\f2dc"; }
    +
    +.fa-socks:before {
    +  content: "\f696"; }
    +
    +.fa-solar-panel:before {
    +  content: "\f5ba"; }
    +
    +.fa-sort:before {
    +  content: "\f0dc"; }
    +
    +.fa-sort-alpha-down:before {
    +  content: "\f15d"; }
    +
    +.fa-sort-alpha-up:before {
    +  content: "\f15e"; }
    +
    +.fa-sort-amount-down:before {
    +  content: "\f160"; }
    +
    +.fa-sort-amount-up:before {
    +  content: "\f161"; }
    +
    +.fa-sort-down:before {
    +  content: "\f0dd"; }
    +
    +.fa-sort-numeric-down:before {
    +  content: "\f162"; }
    +
    +.fa-sort-numeric-up:before {
    +  content: "\f163"; }
    +
    +.fa-sort-up:before {
    +  content: "\f0de"; }
    +
    +.fa-soundcloud:before {
    +  content: "\f1be"; }
    +
    +.fa-spa:before {
    +  content: "\f5bb"; }
    +
    +.fa-space-shuttle:before {
    +  content: "\f197"; }
    +
    +.fa-speakap:before {
    +  content: "\f3f3"; }
    +
    +.fa-spider:before {
    +  content: "\f717"; }
    +
    +.fa-spinner:before {
    +  content: "\f110"; }
    +
    +.fa-splotch:before {
    +  content: "\f5bc"; }
    +
    +.fa-spotify:before {
    +  content: "\f1bc"; }
    +
    +.fa-spray-can:before {
    +  content: "\f5bd"; }
    +
    +.fa-square:before {
    +  content: "\f0c8"; }
    +
    +.fa-square-full:before {
    +  content: "\f45c"; }
    +
    +.fa-square-root-alt:before {
    +  content: "\f698"; }
    +
    +.fa-squarespace:before {
    +  content: "\f5be"; }
    +
    +.fa-stack-exchange:before {
    +  content: "\f18d"; }
    +
    +.fa-stack-overflow:before {
    +  content: "\f16c"; }
    +
    +.fa-stamp:before {
    +  content: "\f5bf"; }
    +
    +.fa-star:before {
    +  content: "\f005"; }
    +
    +.fa-star-and-crescent:before {
    +  content: "\f699"; }
    +
    +.fa-star-half:before {
    +  content: "\f089"; }
    +
    +.fa-star-half-alt:before {
    +  content: "\f5c0"; }
    +
    +.fa-star-of-david:before {
    +  content: "\f69a"; }
    +
    +.fa-star-of-life:before {
    +  content: "\f621"; }
    +
    +.fa-staylinked:before {
    +  content: "\f3f5"; }
    +
    +.fa-steam:before {
    +  content: "\f1b6"; }
    +
    +.fa-steam-square:before {
    +  content: "\f1b7"; }
    +
    +.fa-steam-symbol:before {
    +  content: "\f3f6"; }
    +
    +.fa-step-backward:before {
    +  content: "\f048"; }
    +
    +.fa-step-forward:before {
    +  content: "\f051"; }
    +
    +.fa-stethoscope:before {
    +  content: "\f0f1"; }
    +
    +.fa-sticker-mule:before {
    +  content: "\f3f7"; }
    +
    +.fa-sticky-note:before {
    +  content: "\f249"; }
    +
    +.fa-stop:before {
    +  content: "\f04d"; }
    +
    +.fa-stop-circle:before {
    +  content: "\f28d"; }
    +
    +.fa-stopwatch:before {
    +  content: "\f2f2"; }
    +
    +.fa-store:before {
    +  content: "\f54e"; }
    +
    +.fa-store-alt:before {
    +  content: "\f54f"; }
    +
    +.fa-strava:before {
    +  content: "\f428"; }
    +
    +.fa-stream:before {
    +  content: "\f550"; }
    +
    +.fa-street-view:before {
    +  content: "\f21d"; }
    +
    +.fa-strikethrough:before {
    +  content: "\f0cc"; }
    +
    +.fa-stripe:before {
    +  content: "\f429"; }
    +
    +.fa-stripe-s:before {
    +  content: "\f42a"; }
    +
    +.fa-stroopwafel:before {
    +  content: "\f551"; }
    +
    +.fa-studiovinari:before {
    +  content: "\f3f8"; }
    +
    +.fa-stumbleupon:before {
    +  content: "\f1a4"; }
    +
    +.fa-stumbleupon-circle:before {
    +  content: "\f1a3"; }
    +
    +.fa-subscript:before {
    +  content: "\f12c"; }
    +
    +.fa-subway:before {
    +  content: "\f239"; }
    +
    +.fa-suitcase:before {
    +  content: "\f0f2"; }
    +
    +.fa-suitcase-rolling:before {
    +  content: "\f5c1"; }
    +
    +.fa-sun:before {
    +  content: "\f185"; }
    +
    +.fa-superpowers:before {
    +  content: "\f2dd"; }
    +
    +.fa-superscript:before {
    +  content: "\f12b"; }
    +
    +.fa-supple:before {
    +  content: "\f3f9"; }
    +
    +.fa-surprise:before {
    +  content: "\f5c2"; }
    +
    +.fa-swatchbook:before {
    +  content: "\f5c3"; }
    +
    +.fa-swimmer:before {
    +  content: "\f5c4"; }
    +
    +.fa-swimming-pool:before {
    +  content: "\f5c5"; }
    +
    +.fa-synagogue:before {
    +  content: "\f69b"; }
    +
    +.fa-sync:before {
    +  content: "\f021"; }
    +
    +.fa-sync-alt:before {
    +  content: "\f2f1"; }
    +
    +.fa-syringe:before {
    +  content: "\f48e"; }
    +
    +.fa-table:before {
    +  content: "\f0ce"; }
    +
    +.fa-table-tennis:before {
    +  content: "\f45d"; }
    +
    +.fa-tablet:before {
    +  content: "\f10a"; }
    +
    +.fa-tablet-alt:before {
    +  content: "\f3fa"; }
    +
    +.fa-tablets:before {
    +  content: "\f490"; }
    +
    +.fa-tachometer-alt:before {
    +  content: "\f3fd"; }
    +
    +.fa-tag:before {
    +  content: "\f02b"; }
    +
    +.fa-tags:before {
    +  content: "\f02c"; }
    +
    +.fa-tape:before {
    +  content: "\f4db"; }
    +
    +.fa-tasks:before {
    +  content: "\f0ae"; }
    +
    +.fa-taxi:before {
    +  content: "\f1ba"; }
    +
    +.fa-teamspeak:before {
    +  content: "\f4f9"; }
    +
    +.fa-teeth:before {
    +  content: "\f62e"; }
    +
    +.fa-teeth-open:before {
    +  content: "\f62f"; }
    +
    +.fa-telegram:before {
    +  content: "\f2c6"; }
    +
    +.fa-telegram-plane:before {
    +  content: "\f3fe"; }
    +
    +.fa-tencent-weibo:before {
    +  content: "\f1d5"; }
    +
    +.fa-terminal:before {
    +  content: "\f120"; }
    +
    +.fa-text-height:before {
    +  content: "\f034"; }
    +
    +.fa-text-width:before {
    +  content: "\f035"; }
    +
    +.fa-th:before {
    +  content: "\f00a"; }
    +
    +.fa-th-large:before {
    +  content: "\f009"; }
    +
    +.fa-th-list:before {
    +  content: "\f00b"; }
    +
    +.fa-the-red-yeti:before {
    +  content: "\f69d"; }
    +
    +.fa-theater-masks:before {
    +  content: "\f630"; }
    +
    +.fa-themeco:before {
    +  content: "\f5c6"; }
    +
    +.fa-themeisle:before {
    +  content: "\f2b2"; }
    +
    +.fa-thermometer:before {
    +  content: "\f491"; }
    +
    +.fa-thermometer-empty:before {
    +  content: "\f2cb"; }
    +
    +.fa-thermometer-full:before {
    +  content: "\f2c7"; }
    +
    +.fa-thermometer-half:before {
    +  content: "\f2c9"; }
    +
    +.fa-thermometer-quarter:before {
    +  content: "\f2ca"; }
    +
    +.fa-thermometer-three-quarters:before {
    +  content: "\f2c8"; }
    +
    +.fa-thumbs-down:before {
    +  content: "\f165"; }
    +
    +.fa-thumbs-up:before {
    +  content: "\f164"; }
    +
    +.fa-thumbtack:before {
    +  content: "\f08d"; }
    +
    +.fa-ticket-alt:before {
    +  content: "\f3ff"; }
    +
    +.fa-times:before {
    +  content: "\f00d"; }
    +
    +.fa-times-circle:before {
    +  content: "\f057"; }
    +
    +.fa-tint:before {
    +  content: "\f043"; }
    +
    +.fa-tint-slash:before {
    +  content: "\f5c7"; }
    +
    +.fa-tired:before {
    +  content: "\f5c8"; }
    +
    +.fa-toggle-off:before {
    +  content: "\f204"; }
    +
    +.fa-toggle-on:before {
    +  content: "\f205"; }
    +
    +.fa-toilet-paper:before {
    +  content: "\f71e"; }
    +
    +.fa-toolbox:before {
    +  content: "\f552"; }
    +
    +.fa-tooth:before {
    +  content: "\f5c9"; }
    +
    +.fa-torah:before {
    +  content: "\f6a0"; }
    +
    +.fa-torii-gate:before {
    +  content: "\f6a1"; }
    +
    +.fa-tractor:before {
    +  content: "\f722"; }
    +
    +.fa-trade-federation:before {
    +  content: "\f513"; }
    +
    +.fa-trademark:before {
    +  content: "\f25c"; }
    +
    +.fa-traffic-light:before {
    +  content: "\f637"; }
    +
    +.fa-train:before {
    +  content: "\f238"; }
    +
    +.fa-transgender:before {
    +  content: "\f224"; }
    +
    +.fa-transgender-alt:before {
    +  content: "\f225"; }
    +
    +.fa-trash:before {
    +  content: "\f1f8"; }
    +
    +.fa-trash-alt:before {
    +  content: "\f2ed"; }
    +
    +.fa-tree:before {
    +  content: "\f1bb"; }
    +
    +.fa-trello:before {
    +  content: "\f181"; }
    +
    +.fa-tripadvisor:before {
    +  content: "\f262"; }
    +
    +.fa-trophy:before {
    +  content: "\f091"; }
    +
    +.fa-truck:before {
    +  content: "\f0d1"; }
    +
    +.fa-truck-loading:before {
    +  content: "\f4de"; }
    +
    +.fa-truck-monster:before {
    +  content: "\f63b"; }
    +
    +.fa-truck-moving:before {
    +  content: "\f4df"; }
    +
    +.fa-truck-pickup:before {
    +  content: "\f63c"; }
    +
    +.fa-tshirt:before {
    +  content: "\f553"; }
    +
    +.fa-tty:before {
    +  content: "\f1e4"; }
    +
    +.fa-tumblr:before {
    +  content: "\f173"; }
    +
    +.fa-tumblr-square:before {
    +  content: "\f174"; }
    +
    +.fa-tv:before {
    +  content: "\f26c"; }
    +
    +.fa-twitch:before {
    +  content: "\f1e8"; }
    +
    +.fa-twitter:before {
    +  content: "\f099"; }
    +
    +.fa-twitter-square:before {
    +  content: "\f081"; }
    +
    +.fa-typo3:before {
    +  content: "\f42b"; }
    +
    +.fa-uber:before {
    +  content: "\f402"; }
    +
    +.fa-uikit:before {
    +  content: "\f403"; }
    +
    +.fa-umbrella:before {
    +  content: "\f0e9"; }
    +
    +.fa-umbrella-beach:before {
    +  content: "\f5ca"; }
    +
    +.fa-underline:before {
    +  content: "\f0cd"; }
    +
    +.fa-undo:before {
    +  content: "\f0e2"; }
    +
    +.fa-undo-alt:before {
    +  content: "\f2ea"; }
    +
    +.fa-uniregistry:before {
    +  content: "\f404"; }
    +
    +.fa-universal-access:before {
    +  content: "\f29a"; }
    +
    +.fa-university:before {
    +  content: "\f19c"; }
    +
    +.fa-unlink:before {
    +  content: "\f127"; }
    +
    +.fa-unlock:before {
    +  content: "\f09c"; }
    +
    +.fa-unlock-alt:before {
    +  content: "\f13e"; }
    +
    +.fa-untappd:before {
    +  content: "\f405"; }
    +
    +.fa-upload:before {
    +  content: "\f093"; }
    +
    +.fa-usb:before {
    +  content: "\f287"; }
    +
    +.fa-user:before {
    +  content: "\f007"; }
    +
    +.fa-user-alt:before {
    +  content: "\f406"; }
    +
    +.fa-user-alt-slash:before {
    +  content: "\f4fa"; }
    +
    +.fa-user-astronaut:before {
    +  content: "\f4fb"; }
    +
    +.fa-user-check:before {
    +  content: "\f4fc"; }
    +
    +.fa-user-circle:before {
    +  content: "\f2bd"; }
    +
    +.fa-user-clock:before {
    +  content: "\f4fd"; }
    +
    +.fa-user-cog:before {
    +  content: "\f4fe"; }
    +
    +.fa-user-edit:before {
    +  content: "\f4ff"; }
    +
    +.fa-user-friends:before {
    +  content: "\f500"; }
    +
    +.fa-user-graduate:before {
    +  content: "\f501"; }
    +
    +.fa-user-injured:before {
    +  content: "\f728"; }
    +
    +.fa-user-lock:before {
    +  content: "\f502"; }
    +
    +.fa-user-md:before {
    +  content: "\f0f0"; }
    +
    +.fa-user-minus:before {
    +  content: "\f503"; }
    +
    +.fa-user-ninja:before {
    +  content: "\f504"; }
    +
    +.fa-user-plus:before {
    +  content: "\f234"; }
    +
    +.fa-user-secret:before {
    +  content: "\f21b"; }
    +
    +.fa-user-shield:before {
    +  content: "\f505"; }
    +
    +.fa-user-slash:before {
    +  content: "\f506"; }
    +
    +.fa-user-tag:before {
    +  content: "\f507"; }
    +
    +.fa-user-tie:before {
    +  content: "\f508"; }
    +
    +.fa-user-times:before {
    +  content: "\f235"; }
    +
    +.fa-users:before {
    +  content: "\f0c0"; }
    +
    +.fa-users-cog:before {
    +  content: "\f509"; }
    +
    +.fa-ussunnah:before {
    +  content: "\f407"; }
    +
    +.fa-utensil-spoon:before {
    +  content: "\f2e5"; }
    +
    +.fa-utensils:before {
    +  content: "\f2e7"; }
    +
    +.fa-vaadin:before {
    +  content: "\f408"; }
    +
    +.fa-vector-square:before {
    +  content: "\f5cb"; }
    +
    +.fa-venus:before {
    +  content: "\f221"; }
    +
    +.fa-venus-double:before {
    +  content: "\f226"; }
    +
    +.fa-venus-mars:before {
    +  content: "\f228"; }
    +
    +.fa-viacoin:before {
    +  content: "\f237"; }
    +
    +.fa-viadeo:before {
    +  content: "\f2a9"; }
    +
    +.fa-viadeo-square:before {
    +  content: "\f2aa"; }
    +
    +.fa-vial:before {
    +  content: "\f492"; }
    +
    +.fa-vials:before {
    +  content: "\f493"; }
    +
    +.fa-viber:before {
    +  content: "\f409"; }
    +
    +.fa-video:before {
    +  content: "\f03d"; }
    +
    +.fa-video-slash:before {
    +  content: "\f4e2"; }
    +
    +.fa-vihara:before {
    +  content: "\f6a7"; }
    +
    +.fa-vimeo:before {
    +  content: "\f40a"; }
    +
    +.fa-vimeo-square:before {
    +  content: "\f194"; }
    +
    +.fa-vimeo-v:before {
    +  content: "\f27d"; }
    +
    +.fa-vine:before {
    +  content: "\f1ca"; }
    +
    +.fa-vk:before {
    +  content: "\f189"; }
    +
    +.fa-vnv:before {
    +  content: "\f40b"; }
    +
    +.fa-volleyball-ball:before {
    +  content: "\f45f"; }
    +
    +.fa-volume-down:before {
    +  content: "\f027"; }
    +
    +.fa-volume-mute:before {
    +  content: "\f6a9"; }
    +
    +.fa-volume-off:before {
    +  content: "\f026"; }
    +
    +.fa-volume-up:before {
    +  content: "\f028"; }
    +
    +.fa-vuejs:before {
    +  content: "\f41f"; }
    +
    +.fa-walking:before {
    +  content: "\f554"; }
    +
    +.fa-wallet:before {
    +  content: "\f555"; }
    +
    +.fa-warehouse:before {
    +  content: "\f494"; }
    +
    +.fa-weebly:before {
    +  content: "\f5cc"; }
    +
    +.fa-weibo:before {
    +  content: "\f18a"; }
    +
    +.fa-weight:before {
    +  content: "\f496"; }
    +
    +.fa-weight-hanging:before {
    +  content: "\f5cd"; }
    +
    +.fa-weixin:before {
    +  content: "\f1d7"; }
    +
    +.fa-whatsapp:before {
    +  content: "\f232"; }
    +
    +.fa-whatsapp-square:before {
    +  content: "\f40c"; }
    +
    +.fa-wheelchair:before {
    +  content: "\f193"; }
    +
    +.fa-whmcs:before {
    +  content: "\f40d"; }
    +
    +.fa-wifi:before {
    +  content: "\f1eb"; }
    +
    +.fa-wikipedia-w:before {
    +  content: "\f266"; }
    +
    +.fa-wind:before {
    +  content: "\f72e"; }
    +
    +.fa-window-close:before {
    +  content: "\f410"; }
    +
    +.fa-window-maximize:before {
    +  content: "\f2d0"; }
    +
    +.fa-window-minimize:before {
    +  content: "\f2d1"; }
    +
    +.fa-window-restore:before {
    +  content: "\f2d2"; }
    +
    +.fa-windows:before {
    +  content: "\f17a"; }
    +
    +.fa-wine-bottle:before {
    +  content: "\f72f"; }
    +
    +.fa-wine-glass:before {
    +  content: "\f4e3"; }
    +
    +.fa-wine-glass-alt:before {
    +  content: "\f5ce"; }
    +
    +.fa-wix:before {
    +  content: "\f5cf"; }
    +
    +.fa-wizards-of-the-coast:before {
    +  content: "\f730"; }
    +
    +.fa-wolf-pack-battalion:before {
    +  content: "\f514"; }
    +
    +.fa-won-sign:before {
    +  content: "\f159"; }
    +
    +.fa-wordpress:before {
    +  content: "\f19a"; }
    +
    +.fa-wordpress-simple:before {
    +  content: "\f411"; }
    +
    +.fa-wpbeginner:before {
    +  content: "\f297"; }
    +
    +.fa-wpexplorer:before {
    +  content: "\f2de"; }
    +
    +.fa-wpforms:before {
    +  content: "\f298"; }
    +
    +.fa-wrench:before {
    +  content: "\f0ad"; }
    +
    +.fa-x-ray:before {
    +  content: "\f497"; }
    +
    +.fa-xbox:before {
    +  content: "\f412"; }
    +
    +.fa-xing:before {
    +  content: "\f168"; }
    +
    +.fa-xing-square:before {
    +  content: "\f169"; }
    +
    +.fa-y-combinator:before {
    +  content: "\f23b"; }
    +
    +.fa-yahoo:before {
    +  content: "\f19e"; }
    +
    +.fa-yandex:before {
    +  content: "\f413"; }
    +
    +.fa-yandex-international:before {
    +  content: "\f414"; }
    +
    +.fa-yelp:before {
    +  content: "\f1e9"; }
    +
    +.fa-yen-sign:before {
    +  content: "\f157"; }
    +
    +.fa-yin-yang:before {
    +  content: "\f6ad"; }
    +
    +.fa-yoast:before {
    +  content: "\f2b1"; }
    +
    +.fa-youtube:before {
    +  content: "\f167"; }
    +
    +.fa-youtube-square:before {
    +  content: "\f431"; }
    +
    +.fa-zhihu:before {
    +  content: "\f63f"; }
    +
    +.sr-only {
    +  border: 0;
    +  clip: rect(0, 0, 0, 0);
    +  height: 1px;
    +  margin: -1px;
    +  overflow: hidden;
    +  padding: 0;
    +  position: absolute;
    +  width: 1px; }
    +
    +.sr-only-focusable:active, .sr-only-focusable:focus {
    +  clip: auto;
    +  height: auto;
    +  margin: 0;
    +  overflow: visible;
    +  position: static;
    +  width: auto; }
    +@font-face {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-style: normal;
    +  font-weight: normal;
    +  src: url("../webfonts/fa-brands-400.eot");
    +  src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
    +
    +.fab {
    +  font-family: 'Font Awesome 5 Brands'; }
    +@font-face {
    +  font-family: 'Font Awesome 5 Free';
    +  font-style: normal;
    +  font-weight: 400;
    +  src: url("../webfonts/fa-regular-400.eot");
    +  src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
    +
    +.far {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +@font-face {
    +  font-family: 'Font Awesome 5 Free';
    +  font-style: normal;
    +  font-weight: 900;
    +  src: url("../webfonts/fa-solid-900.eot");
    +  src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
    +
    +.fa,
    +.fas {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 900; }
    diff --git a/htdocs/theme/common/fontawesome-5/css/all.min.css b/htdocs/theme/common/fontawesome-5/css/all.min.css
    new file mode 100644
    index 00000000000..378907c91c8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/all.min.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.fab,.fal,.far,.fas{-moz-osx-font-smoot.fhing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-concierge-bell:before{content:"\f562"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.far,.fas{font-family:"Font Awesome 5 Free"}.fas{font-weight:900}
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/css/brands.css b/htdocs/theme/common/fontawesome-5/css/brands.css
    new file mode 100644
    index 00000000000..916330329ed
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/brands.css
    @@ -0,0 +1,13 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@font-face {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-style: normal;
    +  font-weight: normal;
    +  src: url("../webfonts/fa-brands-400.eot");
    +  src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
    +
    +.fab {
    +  font-family: 'Font Awesome 5 Brands'; }
    diff --git a/htdocs/theme/common/fontawesome-5/css/brands.min.css b/htdocs/theme/common/fontawesome-5/css/brands.min.css
    new file mode 100644
    index 00000000000..8fd52700b59
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/brands.min.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/css/fontawesome.css b/htdocs/theme/common/fontawesome-5/css/fontawesome.css
    new file mode 100644
    index 00000000000..a450f478376
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/fontawesome.css
    @@ -0,0 +1,3920 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.fa,
    +.fas,
    +.far,
    +.fal,
    +.fab {
    +  -moz-osx-font-smoothing: grayscale;
    +  -webkit-font-smoothing: antialiased;
    +  display: inline-block;
    +  font-style: normal;
    +  font-variant: normal;
    +  text-rendering: auto;
    +  line-height: 1; }
    +
    +.fa-lg {
    +  font-size: 1.33333em;
    +  line-height: 0.75em;
    +  vertical-align: -.0667em; }
    +
    +.fa-xs {
    +  font-size: .75em; }
    +
    +.fa-sm {
    +  font-size: .875em; }
    +
    +.fa-1x {
    +  font-size: 1em; }
    +
    +.fa-2x {
    +  font-size: 2em; }
    +
    +.fa-3x {
    +  font-size: 3em; }
    +
    +.fa-4x {
    +  font-size: 4em; }
    +
    +.fa-5x {
    +  font-size: 5em; }
    +
    +.fa-6x {
    +  font-size: 6em; }
    +
    +.fa-7x {
    +  font-size: 7em; }
    +
    +.fa-8x {
    +  font-size: 8em; }
    +
    +.fa-9x {
    +  font-size: 9em; }
    +
    +.fa-10x {
    +  font-size: 10em; }
    +
    +.fa-fw {
    +  text-align: center;
    +  width: 1.25em; }
    +
    +.fa-ul {
    +  list-style-type: none;
    +  margin-left: 2.5em;
    +  padding-left: 0; }
    +  .fa-ul > li {
    +    position: relative; }
    +
    +.fa-li {
    +  left: -2em;
    +  position: absolute;
    +  text-align: center;
    +  width: 2em;
    +  line-height: inherit; }
    +
    +.fa-border {
    +  border: solid 0.08em #eee;
    +  border-radius: .1em;
    +  padding: .2em .25em .15em; }
    +
    +.fa-pull-left {
    +  float: left; }
    +
    +.fa-pull-right {
    +  float: right; }
    +
    +.fa.fa-pull-left,
    +.fas.fa-pull-left,
    +.far.fa-pull-left,
    +.fal.fa-pull-left,
    +.fab.fa-pull-left {
    +  margin-right: .3em; }
    +
    +.fa.fa-pull-right,
    +.fas.fa-pull-right,
    +.far.fa-pull-right,
    +.fal.fa-pull-right,
    +.fab.fa-pull-right {
    +  margin-left: .3em; }
    +
    +.fa-spin {
    +  -webkit-animation: fa-spin 2s infinite linear;
    +          animation: fa-spin 2s infinite linear; }
    +
    +.fa-pulse {
    +  -webkit-animation: fa-spin 1s infinite steps(8);
    +          animation: fa-spin 1s infinite steps(8); }
    +
    +@-webkit-keyframes fa-spin {
    +  0% {
    +    -webkit-transform: rotate(0deg);
    +            transform: rotate(0deg); }
    +  100% {
    +    -webkit-transform: rotate(360deg);
    +            transform: rotate(360deg); } }
    +
    +@keyframes fa-spin {
    +  0% {
    +    -webkit-transform: rotate(0deg);
    +            transform: rotate(0deg); }
    +  100% {
    +    -webkit-transform: rotate(360deg);
    +            transform: rotate(360deg); } }
    +
    +.fa-rotate-90 {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
    +  -webkit-transform: rotate(90deg);
    +          transform: rotate(90deg); }
    +
    +.fa-rotate-180 {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
    +  -webkit-transform: rotate(180deg);
    +          transform: rotate(180deg); }
    +
    +.fa-rotate-270 {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
    +  -webkit-transform: rotate(270deg);
    +          transform: rotate(270deg); }
    +
    +.fa-flip-horizontal {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
    +  -webkit-transform: scale(-1, 1);
    +          transform: scale(-1, 1); }
    +
    +.fa-flip-vertical {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
    +  -webkit-transform: scale(1, -1);
    +          transform: scale(1, -1); }
    +
    +.fa-flip-horizontal.fa-flip-vertical {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
    +  -webkit-transform: scale(-1, -1);
    +          transform: scale(-1, -1); }
    +
    +:root .fa-rotate-90,
    +:root .fa-rotate-180,
    +:root .fa-rotate-270,
    +:root .fa-flip-horizontal,
    +:root .fa-flip-vertical {
    +  -webkit-filter: none;
    +          filter: none; }
    +
    +.fa-stack {
    +  display: inline-block;
    +  height: 2em;
    +  line-height: 2em;
    +  position: relative;
    +  vertical-align: middle;
    +  width: 2em; }
    +
    +.fa-stack-1x,
    +.fa-stack-2x {
    +  left: 0;
    +  position: absolute;
    +  text-align: center;
    +  width: 100%; }
    +
    +.fa-stack-1x {
    +  line-height: inherit; }
    +
    +.fa-stack-2x {
    +  font-size: 2em; }
    +
    +.fa-inverse {
    +  color: #fff; }
    +
    +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
    +readers do not read off random characters that represent icons */
    +.fa-500px:before {
    +  content: "\f26e"; }
    +
    +.fa-accessible-icon:before {
    +  content: "\f368"; }
    +
    +.fa-accusoft:before {
    +  content: "\f369"; }
    +
    +.fa-acquisitions-incorporated:before {
    +  content: "\f6af"; }
    +
    +.fa-ad:before {
    +  content: "\f641"; }
    +
    +.fa-address-book:before {
    +  content: "\f2b9"; }
    +
    +.fa-address-card:before {
    +  content: "\f2bb"; }
    +
    +.fa-adjust:before {
    +  content: "\f042"; }
    +
    +.fa-adn:before {
    +  content: "\f170"; }
    +
    +.fa-adversal:before {
    +  content: "\f36a"; }
    +
    +.fa-affiliatetheme:before {
    +  content: "\f36b"; }
    +
    +.fa-air-freshener:before {
    +  content: "\f5d0"; }
    +
    +.fa-algolia:before {
    +  content: "\f36c"; }
    +
    +.fa-align-center:before {
    +  content: "\f037"; }
    +
    +.fa-align-justify:before {
    +  content: "\f039"; }
    +
    +.fa-align-left:before {
    +  content: "\f036"; }
    +
    +.fa-align-right:before {
    +  content: "\f038"; }
    +
    +.fa-alipay:before {
    +  content: "\f642"; }
    +
    +.fa-allergies:before {
    +  content: "\f461"; }
    +
    +.fa-amazon:before {
    +  content: "\f270"; }
    +
    +.fa-amazon-pay:before {
    +  content: "\f42c"; }
    +
    +.fa-ambulance:before {
    +  content: "\f0f9"; }
    +
    +.fa-american-sign-language-interpreting:before {
    +  content: "\f2a3"; }
    +
    +.fa-amilia:before {
    +  content: "\f36d"; }
    +
    +.fa-anchor:before {
    +  content: "\f13d"; }
    +
    +.fa-android:before {
    +  content: "\f17b"; }
    +
    +.fa-angellist:before {
    +  content: "\f209"; }
    +
    +.fa-angle-double-down:before {
    +  content: "\f103"; }
    +
    +.fa-angle-double-left:before {
    +  content: "\f100"; }
    +
    +.fa-angle-double-right:before {
    +  content: "\f101"; }
    +
    +.fa-angle-double-up:before {
    +  content: "\f102"; }
    +
    +.fa-angle-down:before {
    +  content: "\f107"; }
    +
    +.fa-angle-left:before {
    +  content: "\f104"; }
    +
    +.fa-angle-right:before {
    +  content: "\f105"; }
    +
    +.fa-angle-up:before {
    +  content: "\f106"; }
    +
    +.fa-angry:before {
    +  content: "\f556"; }
    +
    +.fa-angrycreative:before {
    +  content: "\f36e"; }
    +
    +.fa-angular:before {
    +  content: "\f420"; }
    +
    +.fa-ankh:before {
    +  content: "\f644"; }
    +
    +.fa-app-store:before {
    +  content: "\f36f"; }
    +
    +.fa-app-store-ios:before {
    +  content: "\f370"; }
    +
    +.fa-apper:before {
    +  content: "\f371"; }
    +
    +.fa-apple:before {
    +  content: "\f179"; }
    +
    +.fa-apple-alt:before {
    +  content: "\f5d1"; }
    +
    +.fa-apple-pay:before {
    +  content: "\f415"; }
    +
    +.fa-archive:before {
    +  content: "\f187"; }
    +
    +.fa-archway:before {
    +  content: "\f557"; }
    +
    +.fa-arrow-alt-circle-down:before {
    +  content: "\f358"; }
    +
    +.fa-arrow-alt-circle-left:before {
    +  content: "\f359"; }
    +
    +.fa-arrow-alt-circle-right:before {
    +  content: "\f35a"; }
    +
    +.fa-arrow-alt-circle-up:before {
    +  content: "\f35b"; }
    +
    +.fa-arrow-circle-down:before {
    +  content: "\f0ab"; }
    +
    +.fa-arrow-circle-left:before {
    +  content: "\f0a8"; }
    +
    +.fa-arrow-circle-right:before {
    +  content: "\f0a9"; }
    +
    +.fa-arrow-circle-up:before {
    +  content: "\f0aa"; }
    +
    +.fa-arrow-down:before {
    +  content: "\f063"; }
    +
    +.fa-arrow-left:before {
    +  content: "\f060"; }
    +
    +.fa-arrow-right:before {
    +  content: "\f061"; }
    +
    +.fa-arrow-up:before {
    +  content: "\f062"; }
    +
    +.fa-arrows-alt:before {
    +  content: "\f0b2"; }
    +
    +.fa-arrows-alt-h:before {
    +  content: "\f337"; }
    +
    +.fa-arrows-alt-v:before {
    +  content: "\f338"; }
    +
    +.fa-assistive-listening-systems:before {
    +  content: "\f2a2"; }
    +
    +.fa-asterisk:before {
    +  content: "\f069"; }
    +
    +.fa-asymmetrik:before {
    +  content: "\f372"; }
    +
    +.fa-at:before {
    +  content: "\f1fa"; }
    +
    +.fa-atlas:before {
    +  content: "\f558"; }
    +
    +.fa-atom:before {
    +  content: "\f5d2"; }
    +
    +.fa-audible:before {
    +  content: "\f373"; }
    +
    +.fa-audio-description:before {
    +  content: "\f29e"; }
    +
    +.fa-autoprefixer:before {
    +  content: "\f41c"; }
    +
    +.fa-avianex:before {
    +  content: "\f374"; }
    +
    +.fa-aviato:before {
    +  content: "\f421"; }
    +
    +.fa-award:before {
    +  content: "\f559"; }
    +
    +.fa-aws:before {
    +  content: "\f375"; }
    +
    +.fa-backspace:before {
    +  content: "\f55a"; }
    +
    +.fa-backward:before {
    +  content: "\f04a"; }
    +
    +.fa-balance-scale:before {
    +  content: "\f24e"; }
    +
    +.fa-ban:before {
    +  content: "\f05e"; }
    +
    +.fa-band-aid:before {
    +  content: "\f462"; }
    +
    +.fa-bandcamp:before {
    +  content: "\f2d5"; }
    +
    +.fa-barcode:before {
    +  content: "\f02a"; }
    +
    +.fa-bars:before {
    +  content: "\f0c9"; }
    +
    +.fa-baseball-ball:before {
    +  content: "\f433"; }
    +
    +.fa-basketball-ball:before {
    +  content: "\f434"; }
    +
    +.fa-bath:before {
    +  content: "\f2cd"; }
    +
    +.fa-battery-empty:before {
    +  content: "\f244"; }
    +
    +.fa-battery-full:before {
    +  content: "\f240"; }
    +
    +.fa-battery-half:before {
    +  content: "\f242"; }
    +
    +.fa-battery-quarter:before {
    +  content: "\f243"; }
    +
    +.fa-battery-three-quarters:before {
    +  content: "\f241"; }
    +
    +.fa-bed:before {
    +  content: "\f236"; }
    +
    +.fa-beer:before {
    +  content: "\f0fc"; }
    +
    +.fa-behance:before {
    +  content: "\f1b4"; }
    +
    +.fa-behance-square:before {
    +  content: "\f1b5"; }
    +
    +.fa-bell:before {
    +  content: "\f0f3"; }
    +
    +.fa-bell-slash:before {
    +  content: "\f1f6"; }
    +
    +.fa-bezier-curve:before {
    +  content: "\f55b"; }
    +
    +.fa-bible:before {
    +  content: "\f647"; }
    +
    +.fa-bicycle:before {
    +  content: "\f206"; }
    +
    +.fa-bimobject:before {
    +  content: "\f378"; }
    +
    +.fa-binoculars:before {
    +  content: "\f1e5"; }
    +
    +.fa-birthday-cake:before {
    +  content: "\f1fd"; }
    +
    +.fa-bitbucket:before {
    +  content: "\f171"; }
    +
    +.fa-bitcoin:before {
    +  content: "\f379"; }
    +
    +.fa-bity:before {
    +  content: "\f37a"; }
    +
    +.fa-black-tie:before {
    +  content: "\f27e"; }
    +
    +.fa-blackberry:before {
    +  content: "\f37b"; }
    +
    +.fa-blender:before {
    +  content: "\f517"; }
    +
    +.fa-blender-phone:before {
    +  content: "\f6b6"; }
    +
    +.fa-blind:before {
    +  content: "\f29d"; }
    +
    +.fa-blogger:before {
    +  content: "\f37c"; }
    +
    +.fa-blogger-b:before {
    +  content: "\f37d"; }
    +
    +.fa-bluetooth:before {
    +  content: "\f293"; }
    +
    +.fa-bluetooth-b:before {
    +  content: "\f294"; }
    +
    +.fa-bold:before {
    +  content: "\f032"; }
    +
    +.fa-bolt:before {
    +  content: "\f0e7"; }
    +
    +.fa-bomb:before {
    +  content: "\f1e2"; }
    +
    +.fa-bone:before {
    +  content: "\f5d7"; }
    +
    +.fa-bong:before {
    +  content: "\f55c"; }
    +
    +.fa-book:before {
    +  content: "\f02d"; }
    +
    +.fa-book-dead:before {
    +  content: "\f6b7"; }
    +
    +.fa-book-open:before {
    +  content: "\f518"; }
    +
    +.fa-book-reader:before {
    +  content: "\f5da"; }
    +
    +.fa-bookmark:before {
    +  content: "\f02e"; }
    +
    +.fa-bowling-ball:before {
    +  content: "\f436"; }
    +
    +.fa-box:before {
    +  content: "\f466"; }
    +
    +.fa-box-open:before {
    +  content: "\f49e"; }
    +
    +.fa-boxes:before {
    +  content: "\f468"; }
    +
    +.fa-braille:before {
    +  content: "\f2a1"; }
    +
    +.fa-brain:before {
    +  content: "\f5dc"; }
    +
    +.fa-briefcase:before {
    +  content: "\f0b1"; }
    +
    +.fa-briefcase-medical:before {
    +  content: "\f469"; }
    +
    +.fa-broadcast-tower:before {
    +  content: "\f519"; }
    +
    +.fa-broom:before {
    +  content: "\f51a"; }
    +
    +.fa-brush:before {
    +  content: "\f55d"; }
    +
    +.fa-btc:before {
    +  content: "\f15a"; }
    +
    +.fa-bug:before {
    +  content: "\f188"; }
    +
    +.fa-building:before {
    +  content: "\f1ad"; }
    +
    +.fa-bullhorn:before {
    +  content: "\f0a1"; }
    +
    +.fa-bullseye:before {
    +  content: "\f140"; }
    +
    +.fa-burn:before {
    +  content: "\f46a"; }
    +
    +.fa-buromobelexperte:before {
    +  content: "\f37f"; }
    +
    +.fa-bus:before {
    +  content: "\f207"; }
    +
    +.fa-bus-alt:before {
    +  content: "\f55e"; }
    +
    +.fa-business-time:before {
    +  content: "\f64a"; }
    +
    +.fa-buysellads:before {
    +  content: "\f20d"; }
    +
    +.fa-calculator:before {
    +  content: "\f1ec"; }
    +
    +.fa-calendar:before {
    +  content: "\f133"; }
    +
    +.fa-calendar-alt:before {
    +  content: "\f073"; }
    +
    +.fa-calendar-check:before {
    +  content: "\f274"; }
    +
    +.fa-calendar-minus:before {
    +  content: "\f272"; }
    +
    +.fa-calendar-plus:before {
    +  content: "\f271"; }
    +
    +.fa-calendar-times:before {
    +  content: "\f273"; }
    +
    +.fa-camera:before {
    +  content: "\f030"; }
    +
    +.fa-camera-retro:before {
    +  content: "\f083"; }
    +
    +.fa-campground:before {
    +  content: "\f6bb"; }
    +
    +.fa-cannabis:before {
    +  content: "\f55f"; }
    +
    +.fa-capsules:before {
    +  content: "\f46b"; }
    +
    +.fa-car:before {
    +  content: "\f1b9"; }
    +
    +.fa-car-alt:before {
    +  content: "\f5de"; }
    +
    +.fa-car-battery:before {
    +  content: "\f5df"; }
    +
    +.fa-car-crash:before {
    +  content: "\f5e1"; }
    +
    +.fa-car-side:before {
    +  content: "\f5e4"; }
    +
    +.fa-caret-down:before {
    +  content: "\f0d7"; }
    +
    +.fa-caret-left:before {
    +  content: "\f0d9"; }
    +
    +.fa-caret-right:before {
    +  content: "\f0da"; }
    +
    +.fa-caret-square-down:before {
    +  content: "\f150"; }
    +
    +.fa-caret-square-left:before {
    +  content: "\f191"; }
    +
    +.fa-caret-square-right:before {
    +  content: "\f152"; }
    +
    +.fa-caret-square-up:before {
    +  content: "\f151"; }
    +
    +.fa-caret-up:before {
    +  content: "\f0d8"; }
    +
    +.fa-cart-arrow-down:before {
    +  content: "\f218"; }
    +
    +.fa-cart-plus:before {
    +  content: "\f217"; }
    +
    +.fa-cat:before {
    +  content: "\f6be"; }
    +
    +.fa-cc-amazon-pay:before {
    +  content: "\f42d"; }
    +
    +.fa-cc-amex:before {
    +  content: "\f1f3"; }
    +
    +.fa-cc-apple-pay:before {
    +  content: "\f416"; }
    +
    +.fa-cc-diners-club:before {
    +  content: "\f24c"; }
    +
    +.fa-cc-discover:before {
    +  content: "\f1f2"; }
    +
    +.fa-cc-jcb:before {
    +  content: "\f24b"; }
    +
    +.fa-cc-mastercard:before {
    +  content: "\f1f1"; }
    +
    +.fa-cc-paypal:before {
    +  content: "\f1f4"; }
    +
    +.fa-cc-stripe:before {
    +  content: "\f1f5"; }
    +
    +.fa-cc-visa:before {
    +  content: "\f1f0"; }
    +
    +.fa-centercode:before {
    +  content: "\f380"; }
    +
    +.fa-certificate:before {
    +  content: "\f0a3"; }
    +
    +.fa-chair:before {
    +  content: "\f6c0"; }
    +
    +.fa-chalkboard:before {
    +  content: "\f51b"; }
    +
    +.fa-chalkboard-teacher:before {
    +  content: "\f51c"; }
    +
    +.fa-charging-station:before {
    +  content: "\f5e7"; }
    +
    +.fa-chart-area:before {
    +  content: "\f1fe"; }
    +
    +.fa-chart-bar:before {
    +  content: "\f080"; }
    +
    +.fa-chart-line:before {
    +  content: "\f201"; }
    +
    +.fa-chart-pie:before {
    +  content: "\f200"; }
    +
    +.fa-check:before {
    +  content: "\f00c"; }
    +
    +.fa-check-circle:before {
    +  content: "\f058"; }
    +
    +.fa-check-double:before {
    +  content: "\f560"; }
    +
    +.fa-check-square:before {
    +  content: "\f14a"; }
    +
    +.fa-chess:before {
    +  content: "\f439"; }
    +
    +.fa-chess-bishop:before {
    +  content: "\f43a"; }
    +
    +.fa-chess-board:before {
    +  content: "\f43c"; }
    +
    +.fa-chess-king:before {
    +  content: "\f43f"; }
    +
    +.fa-chess-knight:before {
    +  content: "\f441"; }
    +
    +.fa-chess-pawn:before {
    +  content: "\f443"; }
    +
    +.fa-chess-queen:before {
    +  content: "\f445"; }
    +
    +.fa-chess-rook:before {
    +  content: "\f447"; }
    +
    +.fa-chevron-circle-down:before {
    +  content: "\f13a"; }
    +
    +.fa-chevron-circle-left:before {
    +  content: "\f137"; }
    +
    +.fa-chevron-circle-right:before {
    +  content: "\f138"; }
    +
    +.fa-chevron-circle-up:before {
    +  content: "\f139"; }
    +
    +.fa-chevron-down:before {
    +  content: "\f078"; }
    +
    +.fa-chevron-left:before {
    +  content: "\f053"; }
    +
    +.fa-chevron-right:before {
    +  content: "\f054"; }
    +
    +.fa-chevron-up:before {
    +  content: "\f077"; }
    +
    +.fa-child:before {
    +  content: "\f1ae"; }
    +
    +.fa-chrome:before {
    +  content: "\f268"; }
    +
    +.fa-church:before {
    +  content: "\f51d"; }
    +
    +.fa-circle:before {
    +  content: "\f111"; }
    +
    +.fa-circle-notch:before {
    +  content: "\f1ce"; }
    +
    +.fa-city:before {
    +  content: "\f64f"; }
    +
    +.fa-clipboard:before {
    +  content: "\f328"; }
    +
    +.fa-clipboard-check:before {
    +  content: "\f46c"; }
    +
    +.fa-clipboard-list:before {
    +  content: "\f46d"; }
    +
    +.fa-clock:before {
    +  content: "\f017"; }
    +
    +.fa-clone:before {
    +  content: "\f24d"; }
    +
    +.fa-closed-captioning:before {
    +  content: "\f20a"; }
    +
    +.fa-cloud:before {
    +  content: "\f0c2"; }
    +
    +.fa-cloud-download-alt:before {
    +  content: "\f381"; }
    +
    +.fa-cloud-moon:before {
    +  content: "\f6c3"; }
    +
    +.fa-cloud-sun:before {
    +  content: "\f6c4"; }
    +
    +.fa-cloud-upload-alt:before {
    +  content: "\f382"; }
    +
    +.fa-cloudscale:before {
    +  content: "\f383"; }
    +
    +.fa-cloudsmith:before {
    +  content: "\f384"; }
    +
    +.fa-cloudversify:before {
    +  content: "\f385"; }
    +
    +.fa-cocktail:before {
    +  content: "\f561"; }
    +
    +.fa-code:before {
    +  content: "\f121"; }
    +
    +.fa-code-branch:before {
    +  content: "\f126"; }
    +
    +.fa-codepen:before {
    +  content: "\f1cb"; }
    +
    +.fa-codiepie:before {
    +  content: "\f284"; }
    +
    +.fa-coffee:before {
    +  content: "\f0f4"; }
    +
    +.fa-cog:before {
    +  content: "\f013"; }
    +
    +.fa-cogs:before {
    +  content: "\f085"; }
    +
    +.fa-coins:before {
    +  content: "\f51e"; }
    +
    +.fa-columns:before {
    +  content: "\f0db"; }
    +
    +.fa-comment:before {
    +  content: "\f075"; }
    +
    +.fa-comment-alt:before {
    +  content: "\f27a"; }
    +
    +.fa-comment-dollar:before {
    +  content: "\f651"; }
    +
    +.fa-comment-dots:before {
    +  content: "\f4ad"; }
    +
    +.fa-comment-slash:before {
    +  content: "\f4b3"; }
    +
    +.fa-comments:before {
    +  content: "\f086"; }
    +
    +.fa-comments-dollar:before {
    +  content: "\f653"; }
    +
    +.fa-compact-disc:before {
    +  content: "\f51f"; }
    +
    +.fa-compass:before {
    +  content: "\f14e"; }
    +
    +.fa-compress:before {
    +  content: "\f066"; }
    +
    +.fa-concierge-bell:before {
    +  content: "\f562"; }
    +
    +.fa-connectdevelop:before {
    +  content: "\f20e"; }
    +
    +.fa-contao:before {
    +  content: "\f26d"; }
    +
    +.fa-cookie:before {
    +  content: "\f563"; }
    +
    +.fa-cookie-bite:before {
    +  content: "\f564"; }
    +
    +.fa-copy:before {
    +  content: "\f0c5"; }
    +
    +.fa-copyright:before {
    +  content: "\f1f9"; }
    +
    +.fa-couch:before {
    +  content: "\f4b8"; }
    +
    +.fa-cpanel:before {
    +  content: "\f388"; }
    +
    +.fa-creative-commons:before {
    +  content: "\f25e"; }
    +
    +.fa-creative-commons-by:before {
    +  content: "\f4e7"; }
    +
    +.fa-creative-commons-nc:before {
    +  content: "\f4e8"; }
    +
    +.fa-creative-commons-nc-eu:before {
    +  content: "\f4e9"; }
    +
    +.fa-creative-commons-nc-jp:before {
    +  content: "\f4ea"; }
    +
    +.fa-creative-commons-nd:before {
    +  content: "\f4eb"; }
    +
    +.fa-creative-commons-pd:before {
    +  content: "\f4ec"; }
    +
    +.fa-creative-commons-pd-alt:before {
    +  content: "\f4ed"; }
    +
    +.fa-creative-commons-remix:before {
    +  content: "\f4ee"; }
    +
    +.fa-creative-commons-sa:before {
    +  content: "\f4ef"; }
    +
    +.fa-creative-commons-sampling:before {
    +  content: "\f4f0"; }
    +
    +.fa-creative-commons-sampling-plus:before {
    +  content: "\f4f1"; }
    +
    +.fa-creative-commons-share:before {
    +  content: "\f4f2"; }
    +
    +.fa-creative-commons-zero:before {
    +  content: "\f4f3"; }
    +
    +.fa-credit-card:before {
    +  content: "\f09d"; }
    +
    +.fa-critical-role:before {
    +  content: "\f6c9"; }
    +
    +.fa-crop:before {
    +  content: "\f125"; }
    +
    +.fa-crop-alt:before {
    +  content: "\f565"; }
    +
    +.fa-cross:before {
    +  content: "\f654"; }
    +
    +.fa-crosshairs:before {
    +  content: "\f05b"; }
    +
    +.fa-crow:before {
    +  content: "\f520"; }
    +
    +.fa-crown:before {
    +  content: "\f521"; }
    +
    +.fa-css3:before {
    +  content: "\f13c"; }
    +
    +.fa-css3-alt:before {
    +  content: "\f38b"; }
    +
    +.fa-cube:before {
    +  content: "\f1b2"; }
    +
    +.fa-cubes:before {
    +  content: "\f1b3"; }
    +
    +.fa-cut:before {
    +  content: "\f0c4"; }
    +
    +.fa-cuttlefish:before {
    +  content: "\f38c"; }
    +
    +.fa-d-and-d:before {
    +  content: "\f38d"; }
    +
    +.fa-dashcube:before {
    +  content: "\f210"; }
    +
    +.fa-database:before {
    +  content: "\f1c0"; }
    +
    +.fa-deaf:before {
    +  content: "\f2a4"; }
    +
    +.fa-delicious:before {
    +  content: "\f1a5"; }
    +
    +.fa-deploydog:before {
    +  content: "\f38e"; }
    +
    +.fa-deskpro:before {
    +  content: "\f38f"; }
    +
    +.fa-desktop:before {
    +  content: "\f108"; }
    +
    +.fa-dev:before {
    +  content: "\f6cc"; }
    +
    +.fa-deviantart:before {
    +  content: "\f1bd"; }
    +
    +.fa-dharmachakra:before {
    +  content: "\f655"; }
    +
    +.fa-diagnoses:before {
    +  content: "\f470"; }
    +
    +.fa-dice:before {
    +  content: "\f522"; }
    +
    +.fa-dice-d20:before {
    +  content: "\f6cf"; }
    +
    +.fa-dice-d6:before {
    +  content: "\f6d1"; }
    +
    +.fa-dice-five:before {
    +  content: "\f523"; }
    +
    +.fa-dice-four:before {
    +  content: "\f524"; }
    +
    +.fa-dice-one:before {
    +  content: "\f525"; }
    +
    +.fa-dice-six:before {
    +  content: "\f526"; }
    +
    +.fa-dice-three:before {
    +  content: "\f527"; }
    +
    +.fa-dice-two:before {
    +  content: "\f528"; }
    +
    +.fa-digg:before {
    +  content: "\f1a6"; }
    +
    +.fa-digital-ocean:before {
    +  content: "\f391"; }
    +
    +.fa-digital-tachograph:before {
    +  content: "\f566"; }
    +
    +.fa-directions:before {
    +  content: "\f5eb"; }
    +
    +.fa-discord:before {
    +  content: "\f392"; }
    +
    +.fa-discourse:before {
    +  content: "\f393"; }
    +
    +.fa-divide:before {
    +  content: "\f529"; }
    +
    +.fa-dizzy:before {
    +  content: "\f567"; }
    +
    +.fa-dna:before {
    +  content: "\f471"; }
    +
    +.fa-dochub:before {
    +  content: "\f394"; }
    +
    +.fa-docker:before {
    +  content: "\f395"; }
    +
    +.fa-dog:before {
    +  content: "\f6d3"; }
    +
    +.fa-dollar-sign:before {
    +  content: "\f155"; }
    +
    +.fa-dolly:before {
    +  content: "\f472"; }
    +
    +.fa-dolly-flatbed:before {
    +  content: "\f474"; }
    +
    +.fa-donate:before {
    +  content: "\f4b9"; }
    +
    +.fa-door-closed:before {
    +  content: "\f52a"; }
    +
    +.fa-door-open:before {
    +  content: "\f52b"; }
    +
    +.fa-dot-circle:before {
    +  content: "\f192"; }
    +
    +.fa-dove:before {
    +  content: "\f4ba"; }
    +
    +.fa-download:before {
    +  content: "\f019"; }
    +
    +.fa-draft2digital:before {
    +  content: "\f396"; }
    +
    +.fa-drafting-compass:before {
    +  content: "\f568"; }
    +
    +.fa-dragon:before {
    +  content: "\f6d5"; }
    +
    +.fa-draw-polygon:before {
    +  content: "\f5ee"; }
    +
    +.fa-dribbble:before {
    +  content: "\f17d"; }
    +
    +.fa-dribbble-square:before {
    +  content: "\f397"; }
    +
    +.fa-dropbox:before {
    +  content: "\f16b"; }
    +
    +.fa-drum:before {
    +  content: "\f569"; }
    +
    +.fa-drum-steelpan:before {
    +  content: "\f56a"; }
    +
    +.fa-drumstick-bite:before {
    +  content: "\f6d7"; }
    +
    +.fa-drupal:before {
    +  content: "\f1a9"; }
    +
    +.fa-dumbbell:before {
    +  content: "\f44b"; }
    +
    +.fa-dungeon:before {
    +  content: "\f6d9"; }
    +
    +.fa-dyalog:before {
    +  content: "\f399"; }
    +
    +.fa-earlybirds:before {
    +  content: "\f39a"; }
    +
    +.fa-ebay:before {
    +  content: "\f4f4"; }
    +
    +.fa-edge:before {
    +  content: "\f282"; }
    +
    +.fa-edit:before {
    +  content: "\f044"; }
    +
    +.fa-eject:before {
    +  content: "\f052"; }
    +
    +.fa-elementor:before {
    +  content: "\f430"; }
    +
    +.fa-ellipsis-h:before {
    +  content: "\f141"; }
    +
    +.fa-ellipsis-v:before {
    +  content: "\f142"; }
    +
    +.fa-ello:before {
    +  content: "\f5f1"; }
    +
    +.fa-ember:before {
    +  content: "\f423"; }
    +
    +.fa-empire:before {
    +  content: "\f1d1"; }
    +
    +.fa-envelope:before {
    +  content: "\f0e0"; }
    +
    +.fa-envelope-open:before {
    +  content: "\f2b6"; }
    +
    +.fa-envelope-open-text:before {
    +  content: "\f658"; }
    +
    +.fa-envelope-square:before {
    +  content: "\f199"; }
    +
    +.fa-envira:before {
    +  content: "\f299"; }
    +
    +.fa-equals:before {
    +  content: "\f52c"; }
    +
    +.fa-eraser:before {
    +  content: "\f12d"; }
    +
    +.fa-erlang:before {
    +  content: "\f39d"; }
    +
    +.fa-ethereum:before {
    +  content: "\f42e"; }
    +
    +.fa-etsy:before {
    +  content: "\f2d7"; }
    +
    +.fa-euro-sign:before {
    +  content: "\f153"; }
    +
    +.fa-exchange-alt:before {
    +  content: "\f362"; }
    +
    +.fa-exclamation:before {
    +  content: "\f12a"; }
    +
    +.fa-exclamation-circle:before {
    +  content: "\f06a"; }
    +
    +.fa-exclamation-triangle:before {
    +  content: "\f071"; }
    +
    +.fa-expand:before {
    +  content: "\f065"; }
    +
    +.fa-expand-arrows-alt:before {
    +  content: "\f31e"; }
    +
    +.fa-expeditedssl:before {
    +  content: "\f23e"; }
    +
    +.fa-external-link-alt:before {
    +  content: "\f35d"; }
    +
    +.fa-external-link-square-alt:before {
    +  content: "\f360"; }
    +
    +.fa-eye:before {
    +  content: "\f06e"; }
    +
    +.fa-eye-dropper:before {
    +  content: "\f1fb"; }
    +
    +.fa-eye-slash:before {
    +  content: "\f070"; }
    +
    +.fa-facebook:before {
    +  content: "\f09a"; }
    +
    +.fa-facebook-f:before {
    +  content: "\f39e"; }
    +
    +.fa-facebook-messenger:before {
    +  content: "\f39f"; }
    +
    +.fa-facebook-square:before {
    +  content: "\f082"; }
    +
    +.fa-fantasy-flight-games:before {
    +  content: "\f6dc"; }
    +
    +.fa-fast-backward:before {
    +  content: "\f049"; }
    +
    +.fa-fast-forward:before {
    +  content: "\f050"; }
    +
    +.fa-fax:before {
    +  content: "\f1ac"; }
    +
    +.fa-feather:before {
    +  content: "\f52d"; }
    +
    +.fa-feather-alt:before {
    +  content: "\f56b"; }
    +
    +.fa-female:before {
    +  content: "\f182"; }
    +
    +.fa-fighter-jet:before {
    +  content: "\f0fb"; }
    +
    +.fa-file:before {
    +  content: "\f15b"; }
    +
    +.fa-file-alt:before {
    +  content: "\f15c"; }
    +
    +.fa-file-archive:before {
    +  content: "\f1c6"; }
    +
    +.fa-file-audio:before {
    +  content: "\f1c7"; }
    +
    +.fa-file-code:before {
    +  content: "\f1c9"; }
    +
    +.fa-file-contract:before {
    +  content: "\f56c"; }
    +
    +.fa-file-csv:before {
    +  content: "\f6dd"; }
    +
    +.fa-file-download:before {
    +  content: "\f56d"; }
    +
    +.fa-file-excel:before {
    +  content: "\f1c3"; }
    +
    +.fa-file-export:before {
    +  content: "\f56e"; }
    +
    +.fa-file-image:before {
    +  content: "\f1c5"; }
    +
    +.fa-file-import:before {
    +  content: "\f56f"; }
    +
    +.fa-file-invoice:before {
    +  content: "\f570"; }
    +
    +.fa-file-invoice-dollar:before {
    +  content: "\f571"; }
    +
    +.fa-file-medical:before {
    +  content: "\f477"; }
    +
    +.fa-file-medical-alt:before {
    +  content: "\f478"; }
    +
    +.fa-file-pdf:before {
    +  content: "\f1c1"; }
    +
    +.fa-file-powerpoint:before {
    +  content: "\f1c4"; }
    +
    +.fa-file-prescription:before {
    +  content: "\f572"; }
    +
    +.fa-file-signature:before {
    +  content: "\f573"; }
    +
    +.fa-file-upload:before {
    +  content: "\f574"; }
    +
    +.fa-file-video:before {
    +  content: "\f1c8"; }
    +
    +.fa-file-word:before {
    +  content: "\f1c2"; }
    +
    +.fa-fill:before {
    +  content: "\f575"; }
    +
    +.fa-fill-drip:before {
    +  content: "\f576"; }
    +
    +.fa-film:before {
    +  content: "\f008"; }
    +
    +.fa-filter:before {
    +  content: "\f0b0"; }
    +
    +.fa-fingerprint:before {
    +  content: "\f577"; }
    +
    +.fa-fire:before {
    +  content: "\f06d"; }
    +
    +.fa-fire-extinguisher:before {
    +  content: "\f134"; }
    +
    +.fa-firefox:before {
    +  content: "\f269"; }
    +
    +.fa-first-aid:before {
    +  content: "\f479"; }
    +
    +.fa-first-order:before {
    +  content: "\f2b0"; }
    +
    +.fa-first-order-alt:before {
    +  content: "\f50a"; }
    +
    +.fa-firstdraft:before {
    +  content: "\f3a1"; }
    +
    +.fa-fish:before {
    +  content: "\f578"; }
    +
    +.fa-fist-raised:before {
    +  content: "\f6de"; }
    +
    +.fa-flag:before {
    +  content: "\f024"; }
    +
    +.fa-flag-checkered:before {
    +  content: "\f11e"; }
    +
    +.fa-flask:before {
    +  content: "\f0c3"; }
    +
    +.fa-flickr:before {
    +  content: "\f16e"; }
    +
    +.fa-flipboard:before {
    +  content: "\f44d"; }
    +
    +.fa-flushed:before {
    +  content: "\f579"; }
    +
    +.fa-fly:before {
    +  content: "\f417"; }
    +
    +.fa-folder:before {
    +  content: "\f07b"; }
    +
    +.fa-folder-minus:before {
    +  content: "\f65d"; }
    +
    +.fa-folder-open:before {
    +  content: "\f07c"; }
    +
    +.fa-folder-plus:before {
    +  content: "\f65e"; }
    +
    +.fa-font:before {
    +  content: "\f031"; }
    +
    +.fa-font-awesome:before {
    +  content: "\f2b4"; }
    +
    +.fa-font-awesome-alt:before {
    +  content: "\f35c"; }
    +
    +.fa-font-awesome-flag:before {
    +  content: "\f425"; }
    +
    +.fa-font-awesome-logo-full:before {
    +  content: "\f4e6"; }
    +
    +.fa-fonticons:before {
    +  content: "\f280"; }
    +
    +.fa-fonticons-fi:before {
    +  content: "\f3a2"; }
    +
    +.fa-football-ball:before {
    +  content: "\f44e"; }
    +
    +.fa-fort-awesome:before {
    +  content: "\f286"; }
    +
    +.fa-fort-awesome-alt:before {
    +  content: "\f3a3"; }
    +
    +.fa-forumbee:before {
    +  content: "\f211"; }
    +
    +.fa-forward:before {
    +  content: "\f04e"; }
    +
    +.fa-foursquare:before {
    +  content: "\f180"; }
    +
    +.fa-free-code-camp:before {
    +  content: "\f2c5"; }
    +
    +.fa-freebsd:before {
    +  content: "\f3a4"; }
    +
    +.fa-frog:before {
    +  content: "\f52e"; }
    +
    +.fa-frown:before {
    +  content: "\f119"; }
    +
    +.fa-frown-open:before {
    +  content: "\f57a"; }
    +
    +.fa-fulcrum:before {
    +  content: "\f50b"; }
    +
    +.fa-funnel-dollar:before {
    +  content: "\f662"; }
    +
    +.fa-futbol:before {
    +  content: "\f1e3"; }
    +
    +.fa-galactic-republic:before {
    +  content: "\f50c"; }
    +
    +.fa-galactic-senate:before {
    +  content: "\f50d"; }
    +
    +.fa-gamepad:before {
    +  content: "\f11b"; }
    +
    +.fa-gas-pump:before {
    +  content: "\f52f"; }
    +
    +.fa-gavel:before {
    +  content: "\f0e3"; }
    +
    +.fa-gem:before {
    +  content: "\f3a5"; }
    +
    +.fa-genderless:before {
    +  content: "\f22d"; }
    +
    +.fa-get-pocket:before {
    +  content: "\f265"; }
    +
    +.fa-gg:before {
    +  content: "\f260"; }
    +
    +.fa-gg-circle:before {
    +  content: "\f261"; }
    +
    +.fa-ghost:before {
    +  content: "\f6e2"; }
    +
    +.fa-gift:before {
    +  content: "\f06b"; }
    +
    +.fa-git:before {
    +  content: "\f1d3"; }
    +
    +.fa-git-square:before {
    +  content: "\f1d2"; }
    +
    +.fa-github:before {
    +  content: "\f09b"; }
    +
    +.fa-github-alt:before {
    +  content: "\f113"; }
    +
    +.fa-github-square:before {
    +  content: "\f092"; }
    +
    +.fa-gitkraken:before {
    +  content: "\f3a6"; }
    +
    +.fa-gitlab:before {
    +  content: "\f296"; }
    +
    +.fa-gitter:before {
    +  content: "\f426"; }
    +
    +.fa-glass-martini:before {
    +  content: "\f000"; }
    +
    +.fa-glass-martini-alt:before {
    +  content: "\f57b"; }
    +
    +.fa-glasses:before {
    +  content: "\f530"; }
    +
    +.fa-glide:before {
    +  content: "\f2a5"; }
    +
    +.fa-glide-g:before {
    +  content: "\f2a6"; }
    +
    +.fa-globe:before {
    +  content: "\f0ac"; }
    +
    +.fa-globe-africa:before {
    +  content: "\f57c"; }
    +
    +.fa-globe-americas:before {
    +  content: "\f57d"; }
    +
    +.fa-globe-asia:before {
    +  content: "\f57e"; }
    +
    +.fa-gofore:before {
    +  content: "\f3a7"; }
    +
    +.fa-golf-ball:before {
    +  content: "\f450"; }
    +
    +.fa-goodreads:before {
    +  content: "\f3a8"; }
    +
    +.fa-goodreads-g:before {
    +  content: "\f3a9"; }
    +
    +.fa-google:before {
    +  content: "\f1a0"; }
    +
    +.fa-google-drive:before {
    +  content: "\f3aa"; }
    +
    +.fa-google-play:before {
    +  content: "\f3ab"; }
    +
    +.fa-google-plus:before {
    +  content: "\f2b3"; }
    +
    +.fa-google-plus-g:before {
    +  content: "\f0d5"; }
    +
    +.fa-google-plus-square:before {
    +  content: "\f0d4"; }
    +
    +.fa-google-wallet:before {
    +  content: "\f1ee"; }
    +
    +.fa-gopuram:before {
    +  content: "\f664"; }
    +
    +.fa-graduation-cap:before {
    +  content: "\f19d"; }
    +
    +.fa-gratipay:before {
    +  content: "\f184"; }
    +
    +.fa-grav:before {
    +  content: "\f2d6"; }
    +
    +.fa-greater-than:before {
    +  content: "\f531"; }
    +
    +.fa-greater-than-equal:before {
    +  content: "\f532"; }
    +
    +.fa-grimace:before {
    +  content: "\f57f"; }
    +
    +.fa-grin:before {
    +  content: "\f580"; }
    +
    +.fa-grin-alt:before {
    +  content: "\f581"; }
    +
    +.fa-grin-beam:before {
    +  content: "\f582"; }
    +
    +.fa-grin-beam-sweat:before {
    +  content: "\f583"; }
    +
    +.fa-grin-hearts:before {
    +  content: "\f584"; }
    +
    +.fa-grin-squint:before {
    +  content: "\f585"; }
    +
    +.fa-grin-squint-tears:before {
    +  content: "\f586"; }
    +
    +.fa-grin-stars:before {
    +  content: "\f587"; }
    +
    +.fa-grin-tears:before {
    +  content: "\f588"; }
    +
    +.fa-grin-tongue:before {
    +  content: "\f589"; }
    +
    +.fa-grin-tongue-squint:before {
    +  content: "\f58a"; }
    +
    +.fa-grin-tongue-wink:before {
    +  content: "\f58b"; }
    +
    +.fa-grin-wink:before {
    +  content: "\f58c"; }
    +
    +.fa-grip-horizontal:before {
    +  content: "\f58d"; }
    +
    +.fa-grip-vertical:before {
    +  content: "\f58e"; }
    +
    +.fa-gripfire:before {
    +  content: "\f3ac"; }
    +
    +.fa-grunt:before {
    +  content: "\f3ad"; }
    +
    +.fa-gulp:before {
    +  content: "\f3ae"; }
    +
    +.fa-h-square:before {
    +  content: "\f0fd"; }
    +
    +.fa-hacker-news:before {
    +  content: "\f1d4"; }
    +
    +.fa-hacker-news-square:before {
    +  content: "\f3af"; }
    +
    +.fa-hackerrank:before {
    +  content: "\f5f7"; }
    +
    +.fa-hammer:before {
    +  content: "\f6e3"; }
    +
    +.fa-hamsa:before {
    +  content: "\f665"; }
    +
    +.fa-hand-holding:before {
    +  content: "\f4bd"; }
    +
    +.fa-hand-holding-heart:before {
    +  content: "\f4be"; }
    +
    +.fa-hand-holding-usd:before {
    +  content: "\f4c0"; }
    +
    +.fa-hand-lizard:before {
    +  content: "\f258"; }
    +
    +.fa-hand-paper:before {
    +  content: "\f256"; }
    +
    +.fa-hand-peace:before {
    +  content: "\f25b"; }
    +
    +.fa-hand-point-down:before {
    +  content: "\f0a7"; }
    +
    +.fa-hand-point-left:before {
    +  content: "\f0a5"; }
    +
    +.fa-hand-point-right:before {
    +  content: "\f0a4"; }
    +
    +.fa-hand-point-up:before {
    +  content: "\f0a6"; }
    +
    +.fa-hand-pointer:before {
    +  content: "\f25a"; }
    +
    +.fa-hand-rock:before {
    +  content: "\f255"; }
    +
    +.fa-hand-scissors:before {
    +  content: "\f257"; }
    +
    +.fa-hand-spock:before {
    +  content: "\f259"; }
    +
    +.fa-hands:before {
    +  content: "\f4c2"; }
    +
    +.fa-hands-helping:before {
    +  content: "\f4c4"; }
    +
    +.fa-handshake:before {
    +  content: "\f2b5"; }
    +
    +.fa-hanukiah:before {
    +  content: "\f6e6"; }
    +
    +.fa-hashtag:before {
    +  content: "\f292"; }
    +
    +.fa-hat-wizard:before {
    +  content: "\f6e8"; }
    +
    +.fa-haykal:before {
    +  content: "\f666"; }
    +
    +.fa-hdd:before {
    +  content: "\f0a0"; }
    +
    +.fa-heading:before {
    +  content: "\f1dc"; }
    +
    +.fa-headphones:before {
    +  content: "\f025"; }
    +
    +.fa-headphones-alt:before {
    +  content: "\f58f"; }
    +
    +.fa-headset:before {
    +  content: "\f590"; }
    +
    +.fa-heart:before {
    +  content: "\f004"; }
    +
    +.fa-heartbeat:before {
    +  content: "\f21e"; }
    +
    +.fa-helicopter:before {
    +  content: "\f533"; }
    +
    +.fa-highlighter:before {
    +  content: "\f591"; }
    +
    +.fa-hiking:before {
    +  content: "\f6ec"; }
    +
    +.fa-hippo:before {
    +  content: "\f6ed"; }
    +
    +.fa-hips:before {
    +  content: "\f452"; }
    +
    +.fa-hire-a-helper:before {
    +  content: "\f3b0"; }
    +
    +.fa-history:before {
    +  content: "\f1da"; }
    +
    +.fa-hockey-puck:before {
    +  content: "\f453"; }
    +
    +.fa-home:before {
    +  content: "\f015"; }
    +
    +.fa-hooli:before {
    +  content: "\f427"; }
    +
    +.fa-hornbill:before {
    +  content: "\f592"; }
    +
    +.fa-horse:before {
    +  content: "\f6f0"; }
    +
    +.fa-hospital:before {
    +  content: "\f0f8"; }
    +
    +.fa-hospital-alt:before {
    +  content: "\f47d"; }
    +
    +.fa-hospital-symbol:before {
    +  content: "\f47e"; }
    +
    +.fa-hot-tub:before {
    +  content: "\f593"; }
    +
    +.fa-hotel:before {
    +  content: "\f594"; }
    +
    +.fa-hotjar:before {
    +  content: "\f3b1"; }
    +
    +.fa-hourglass:before {
    +  content: "\f254"; }
    +
    +.fa-hourglass-end:before {
    +  content: "\f253"; }
    +
    +.fa-hourglass-half:before {
    +  content: "\f252"; }
    +
    +.fa-hourglass-start:before {
    +  content: "\f251"; }
    +
    +.fa-house-damage:before {
    +  content: "\f6f1"; }
    +
    +.fa-houzz:before {
    +  content: "\f27c"; }
    +
    +.fa-hryvnia:before {
    +  content: "\f6f2"; }
    +
    +.fa-html5:before {
    +  content: "\f13b"; }
    +
    +.fa-hubspot:before {
    +  content: "\f3b2"; }
    +
    +.fa-i-cursor:before {
    +  content: "\f246"; }
    +
    +.fa-id-badge:before {
    +  content: "\f2c1"; }
    +
    +.fa-id-card:before {
    +  content: "\f2c2"; }
    +
    +.fa-id-card-alt:before {
    +  content: "\f47f"; }
    +
    +.fa-image:before {
    +  content: "\f03e"; }
    +
    +.fa-images:before {
    +  content: "\f302"; }
    +
    +.fa-imdb:before {
    +  content: "\f2d8"; }
    +
    +.fa-inbox:before {
    +  content: "\f01c"; }
    +
    +.fa-indent:before {
    +  content: "\f03c"; }
    +
    +.fa-industry:before {
    +  content: "\f275"; }
    +
    +.fa-infinity:before {
    +  content: "\f534"; }
    +
    +.fa-info:before {
    +  content: "\f129"; }
    +
    +.fa-info-circle:before {
    +  content: "\f05a"; }
    +
    +.fa-instagram:before {
    +  content: "\f16d"; }
    +
    +.fa-internet-explorer:before {
    +  content: "\f26b"; }
    +
    +.fa-ioxhost:before {
    +  content: "\f208"; }
    +
    +.fa-italic:before {
    +  content: "\f033"; }
    +
    +.fa-itunes:before {
    +  content: "\f3b4"; }
    +
    +.fa-itunes-note:before {
    +  content: "\f3b5"; }
    +
    +.fa-java:before {
    +  content: "\f4e4"; }
    +
    +.fa-jedi:before {
    +  content: "\f669"; }
    +
    +.fa-jedi-order:before {
    +  content: "\f50e"; }
    +
    +.fa-jenkins:before {
    +  content: "\f3b6"; }
    +
    +.fa-joget:before {
    +  content: "\f3b7"; }
    +
    +.fa-joint:before {
    +  content: "\f595"; }
    +
    +.fa-joomla:before {
    +  content: "\f1aa"; }
    +
    +.fa-journal-whills:before {
    +  content: "\f66a"; }
    +
    +.fa-js:before {
    +  content: "\f3b8"; }
    +
    +.fa-js-square:before {
    +  content: "\f3b9"; }
    +
    +.fa-jsfiddle:before {
    +  content: "\f1cc"; }
    +
    +.fa-kaaba:before {
    +  content: "\f66b"; }
    +
    +.fa-kaggle:before {
    +  content: "\f5fa"; }
    +
    +.fa-key:before {
    +  content: "\f084"; }
    +
    +.fa-keybase:before {
    +  content: "\f4f5"; }
    +
    +.fa-keyboard:before {
    +  content: "\f11c"; }
    +
    +.fa-keycdn:before {
    +  content: "\f3ba"; }
    +
    +.fa-khanda:before {
    +  content: "\f66d"; }
    +
    +.fa-kickstarter:before {
    +  content: "\f3bb"; }
    +
    +.fa-kickstarter-k:before {
    +  content: "\f3bc"; }
    +
    +.fa-kiss:before {
    +  content: "\f596"; }
    +
    +.fa-kiss-beam:before {
    +  content: "\f597"; }
    +
    +.fa-kiss-wink-heart:before {
    +  content: "\f598"; }
    +
    +.fa-kiwi-bird:before {
    +  content: "\f535"; }
    +
    +.fa-korvue:before {
    +  content: "\f42f"; }
    +
    +.fa-landmark:before {
    +  content: "\f66f"; }
    +
    +.fa-language:before {
    +  content: "\f1ab"; }
    +
    +.fa-laptop:before {
    +  content: "\f109"; }
    +
    +.fa-laptop-code:before {
    +  content: "\f5fc"; }
    +
    +.fa-laravel:before {
    +  content: "\f3bd"; }
    +
    +.fa-lastfm:before {
    +  content: "\f202"; }
    +
    +.fa-lastfm-square:before {
    +  content: "\f203"; }
    +
    +.fa-laugh:before {
    +  content: "\f599"; }
    +
    +.fa-laugh-beam:before {
    +  content: "\f59a"; }
    +
    +.fa-laugh-squint:before {
    +  content: "\f59b"; }
    +
    +.fa-laugh-wink:before {
    +  content: "\f59c"; }
    +
    +.fa-layer-group:before {
    +  content: "\f5fd"; }
    +
    +.fa-leaf:before {
    +  content: "\f06c"; }
    +
    +.fa-leanpub:before {
    +  content: "\f212"; }
    +
    +.fa-lemon:before {
    +  content: "\f094"; }
    +
    +.fa-less:before {
    +  content: "\f41d"; }
    +
    +.fa-less-than:before {
    +  content: "\f536"; }
    +
    +.fa-less-than-equal:before {
    +  content: "\f537"; }
    +
    +.fa-level-down-alt:before {
    +  content: "\f3be"; }
    +
    +.fa-level-up-alt:before {
    +  content: "\f3bf"; }
    +
    +.fa-life-ring:before {
    +  content: "\f1cd"; }
    +
    +.fa-lightbulb:before {
    +  content: "\f0eb"; }
    +
    +.fa-line:before {
    +  content: "\f3c0"; }
    +
    +.fa-link:before {
    +  content: "\f0c1"; }
    +
    +.fa-linkedin:before {
    +  content: "\f08c"; }
    +
    +.fa-linkedin-in:before {
    +  content: "\f0e1"; }
    +
    +.fa-linode:before {
    +  content: "\f2b8"; }
    +
    +.fa-linux:before {
    +  content: "\f17c"; }
    +
    +.fa-lira-sign:before {
    +  content: "\f195"; }
    +
    +.fa-list:before {
    +  content: "\f03a"; }
    +
    +.fa-list-alt:before {
    +  content: "\f022"; }
    +
    +.fa-list-ol:before {
    +  content: "\f0cb"; }
    +
    +.fa-list-ul:before {
    +  content: "\f0ca"; }
    +
    +.fa-location-arrow:before {
    +  content: "\f124"; }
    +
    +.fa-lock:before {
    +  content: "\f023"; }
    +
    +.fa-lock-open:before {
    +  content: "\f3c1"; }
    +
    +.fa-long-arrow-alt-down:before {
    +  content: "\f309"; }
    +
    +.fa-long-arrow-alt-left:before {
    +  content: "\f30a"; }
    +
    +.fa-long-arrow-alt-right:before {
    +  content: "\f30b"; }
    +
    +.fa-long-arrow-alt-up:before {
    +  content: "\f30c"; }
    +
    +.fa-low-vision:before {
    +  content: "\f2a8"; }
    +
    +.fa-luggage-cart:before {
    +  content: "\f59d"; }
    +
    +.fa-lyft:before {
    +  content: "\f3c3"; }
    +
    +.fa-magento:before {
    +  content: "\f3c4"; }
    +
    +.fa-magic:before {
    +  content: "\f0d0"; }
    +
    +.fa-magnet:before {
    +  content: "\f076"; }
    +
    +.fa-mail-bulk:before {
    +  content: "\f674"; }
    +
    +.fa-mailchimp:before {
    +  content: "\f59e"; }
    +
    +.fa-male:before {
    +  content: "\f183"; }
    +
    +.fa-mandalorian:before {
    +  content: "\f50f"; }
    +
    +.fa-map:before {
    +  content: "\f279"; }
    +
    +.fa-map-marked:before {
    +  content: "\f59f"; }
    +
    +.fa-map-marked-alt:before {
    +  content: "\f5a0"; }
    +
    +.fa-map-marker:before {
    +  content: "\f041"; }
    +
    +.fa-map-marker-alt:before {
    +  content: "\f3c5"; }
    +
    +.fa-map-pin:before {
    +  content: "\f276"; }
    +
    +.fa-map-signs:before {
    +  content: "\f277"; }
    +
    +.fa-markdown:before {
    +  content: "\f60f"; }
    +
    +.fa-marker:before {
    +  content: "\f5a1"; }
    +
    +.fa-mars:before {
    +  content: "\f222"; }
    +
    +.fa-mars-double:before {
    +  content: "\f227"; }
    +
    +.fa-mars-stroke:before {
    +  content: "\f229"; }
    +
    +.fa-mars-stroke-h:before {
    +  content: "\f22b"; }
    +
    +.fa-mars-stroke-v:before {
    +  content: "\f22a"; }
    +
    +.fa-mask:before {
    +  content: "\f6fa"; }
    +
    +.fa-mastodon:before {
    +  content: "\f4f6"; }
    +
    +.fa-maxcdn:before {
    +  content: "\f136"; }
    +
    +.fa-medal:before {
    +  content: "\f5a2"; }
    +
    +.fa-medapps:before {
    +  content: "\f3c6"; }
    +
    +.fa-medium:before {
    +  content: "\f23a"; }
    +
    +.fa-medium-m:before {
    +  content: "\f3c7"; }
    +
    +.fa-medkit:before {
    +  content: "\f0fa"; }
    +
    +.fa-medrt:before {
    +  content: "\f3c8"; }
    +
    +.fa-meetup:before {
    +  content: "\f2e0"; }
    +
    +.fa-megaport:before {
    +  content: "\f5a3"; }
    +
    +.fa-meh:before {
    +  content: "\f11a"; }
    +
    +.fa-meh-blank:before {
    +  content: "\f5a4"; }
    +
    +.fa-meh-rolling-eyes:before {
    +  content: "\f5a5"; }
    +
    +.fa-memory:before {
    +  content: "\f538"; }
    +
    +.fa-menorah:before {
    +  content: "\f676"; }
    +
    +.fa-mercury:before {
    +  content: "\f223"; }
    +
    +.fa-microchip:before {
    +  content: "\f2db"; }
    +
    +.fa-microphone:before {
    +  content: "\f130"; }
    +
    +.fa-microphone-alt:before {
    +  content: "\f3c9"; }
    +
    +.fa-microphone-alt-slash:before {
    +  content: "\f539"; }
    +
    +.fa-microphone-slash:before {
    +  content: "\f131"; }
    +
    +.fa-microscope:before {
    +  content: "\f610"; }
    +
    +.fa-microsoft:before {
    +  content: "\f3ca"; }
    +
    +.fa-minus:before {
    +  content: "\f068"; }
    +
    +.fa-minus-circle:before {
    +  content: "\f056"; }
    +
    +.fa-minus-square:before {
    +  content: "\f146"; }
    +
    +.fa-mix:before {
    +  content: "\f3cb"; }
    +
    +.fa-mixcloud:before {
    +  content: "\f289"; }
    +
    +.fa-mizuni:before {
    +  content: "\f3cc"; }
    +
    +.fa-mobile:before {
    +  content: "\f10b"; }
    +
    +.fa-mobile-alt:before {
    +  content: "\f3cd"; }
    +
    +.fa-modx:before {
    +  content: "\f285"; }
    +
    +.fa-monero:before {
    +  content: "\f3d0"; }
    +
    +.fa-money-bill:before {
    +  content: "\f0d6"; }
    +
    +.fa-money-bill-alt:before {
    +  content: "\f3d1"; }
    +
    +.fa-money-bill-wave:before {
    +  content: "\f53a"; }
    +
    +.fa-money-bill-wave-alt:before {
    +  content: "\f53b"; }
    +
    +.fa-money-check:before {
    +  content: "\f53c"; }
    +
    +.fa-money-check-alt:before {
    +  content: "\f53d"; }
    +
    +.fa-monument:before {
    +  content: "\f5a6"; }
    +
    +.fa-moon:before {
    +  content: "\f186"; }
    +
    +.fa-mortar-pestle:before {
    +  content: "\f5a7"; }
    +
    +.fa-mosque:before {
    +  content: "\f678"; }
    +
    +.fa-motorcycle:before {
    +  content: "\f21c"; }
    +
    +.fa-mountain:before {
    +  content: "\f6fc"; }
    +
    +.fa-mouse-pointer:before {
    +  content: "\f245"; }
    +
    +.fa-music:before {
    +  content: "\f001"; }
    +
    +.fa-napster:before {
    +  content: "\f3d2"; }
    +
    +.fa-neos:before {
    +  content: "\f612"; }
    +
    +.fa-network-wired:before {
    +  content: "\f6ff"; }
    +
    +.fa-neuter:before {
    +  content: "\f22c"; }
    +
    +.fa-newspaper:before {
    +  content: "\f1ea"; }
    +
    +.fa-nimblr:before {
    +  content: "\f5a8"; }
    +
    +.fa-nintendo-switch:before {
    +  content: "\f418"; }
    +
    +.fa-node:before {
    +  content: "\f419"; }
    +
    +.fa-node-js:before {
    +  content: "\f3d3"; }
    +
    +.fa-not-equal:before {
    +  content: "\f53e"; }
    +
    +.fa-notes-medical:before {
    +  content: "\f481"; }
    +
    +.fa-npm:before {
    +  content: "\f3d4"; }
    +
    +.fa-ns8:before {
    +  content: "\f3d5"; }
    +
    +.fa-nutritionix:before {
    +  content: "\f3d6"; }
    +
    +.fa-object-group:before {
    +  content: "\f247"; }
    +
    +.fa-object-ungroup:before {
    +  content: "\f248"; }
    +
    +.fa-odnoklassniki:before {
    +  content: "\f263"; }
    +
    +.fa-odnoklassniki-square:before {
    +  content: "\f264"; }
    +
    +.fa-oil-can:before {
    +  content: "\f613"; }
    +
    +.fa-old-republic:before {
    +  content: "\f510"; }
    +
    +.fa-om:before {
    +  content: "\f679"; }
    +
    +.fa-opencart:before {
    +  content: "\f23d"; }
    +
    +.fa-openid:before {
    +  content: "\f19b"; }
    +
    +.fa-opera:before {
    +  content: "\f26a"; }
    +
    +.fa-optin-monster:before {
    +  content: "\f23c"; }
    +
    +.fa-osi:before {
    +  content: "\f41a"; }
    +
    +.fa-otter:before {
    +  content: "\f700"; }
    +
    +.fa-outdent:before {
    +  content: "\f03b"; }
    +
    +.fa-page4:before {
    +  content: "\f3d7"; }
    +
    +.fa-pagelines:before {
    +  content: "\f18c"; }
    +
    +.fa-paint-brush:before {
    +  content: "\f1fc"; }
    +
    +.fa-paint-roller:before {
    +  content: "\f5aa"; }
    +
    +.fa-palette:before {
    +  content: "\f53f"; }
    +
    +.fa-palfed:before {
    +  content: "\f3d8"; }
    +
    +.fa-pallet:before {
    +  content: "\f482"; }
    +
    +.fa-paper-plane:before {
    +  content: "\f1d8"; }
    +
    +.fa-paperclip:before {
    +  content: "\f0c6"; }
    +
    +.fa-parachute-box:before {
    +  content: "\f4cd"; }
    +
    +.fa-paragraph:before {
    +  content: "\f1dd"; }
    +
    +.fa-parking:before {
    +  content: "\f540"; }
    +
    +.fa-passport:before {
    +  content: "\f5ab"; }
    +
    +.fa-pastafarianism:before {
    +  content: "\f67b"; }
    +
    +.fa-paste:before {
    +  content: "\f0ea"; }
    +
    +.fa-patreon:before {
    +  content: "\f3d9"; }
    +
    +.fa-pause:before {
    +  content: "\f04c"; }
    +
    +.fa-pause-circle:before {
    +  content: "\f28b"; }
    +
    +.fa-paw:before {
    +  content: "\f1b0"; }
    +
    +.fa-paypal:before {
    +  content: "\f1ed"; }
    +
    +.fa-peace:before {
    +  content: "\f67c"; }
    +
    +.fa-pen:before {
    +  content: "\f304"; }
    +
    +.fa-pen-alt:before {
    +  content: "\f305"; }
    +
    +.fa-pen-fancy:before {
    +  content: "\f5ac"; }
    +
    +.fa-pen-nib:before {
    +  content: "\f5ad"; }
    +
    +.fa-pen-square:before {
    +  content: "\f14b"; }
    +
    +.fa-pencil-alt:before {
    +  content: "\f303"; }
    +
    +.fa-pencil-ruler:before {
    +  content: "\f5ae"; }
    +
    +.fa-penny-arcade:before {
    +  content: "\f704"; }
    +
    +.fa-people-carry:before {
    +  content: "\f4ce"; }
    +
    +.fa-percent:before {
    +  content: "\f295"; }
    +
    +.fa-percentage:before {
    +  content: "\f541"; }
    +
    +.fa-periscope:before {
    +  content: "\f3da"; }
    +
    +.fa-phabricator:before {
    +  content: "\f3db"; }
    +
    +.fa-phoenix-framework:before {
    +  content: "\f3dc"; }
    +
    +.fa-phoenix-squadron:before {
    +  content: "\f511"; }
    +
    +.fa-phone:before {
    +  content: "\f095"; }
    +
    +.fa-phone-slash:before {
    +  content: "\f3dd"; }
    +
    +.fa-phone-square:before {
    +  content: "\f098"; }
    +
    +.fa-phone-volume:before {
    +  content: "\f2a0"; }
    +
    +.fa-php:before {
    +  content: "\f457"; }
    +
    +.fa-pied-piper:before {
    +  content: "\f2ae"; }
    +
    +.fa-pied-piper-alt:before {
    +  content: "\f1a8"; }
    +
    +.fa-pied-piper-hat:before {
    +  content: "\f4e5"; }
    +
    +.fa-pied-piper-pp:before {
    +  content: "\f1a7"; }
    +
    +.fa-piggy-bank:before {
    +  content: "\f4d3"; }
    +
    +.fa-pills:before {
    +  content: "\f484"; }
    +
    +.fa-pinterest:before {
    +  content: "\f0d2"; }
    +
    +.fa-pinterest-p:before {
    +  content: "\f231"; }
    +
    +.fa-pinterest-square:before {
    +  content: "\f0d3"; }
    +
    +.fa-place-of-worship:before {
    +  content: "\f67f"; }
    +
    +.fa-plane:before {
    +  content: "\f072"; }
    +
    +.fa-plane-arrival:before {
    +  content: "\f5af"; }
    +
    +.fa-plane-departure:before {
    +  content: "\f5b0"; }
    +
    +.fa-play:before {
    +  content: "\f04b"; }
    +
    +.fa-play-circle:before {
    +  content: "\f144"; }
    +
    +.fa-playstation:before {
    +  content: "\f3df"; }
    +
    +.fa-plug:before {
    +  content: "\f1e6"; }
    +
    +.fa-plus:before {
    +  content: "\f067"; }
    +
    +.fa-plus-circle:before {
    +  content: "\f055"; }
    +
    +.fa-plus-square:before {
    +  content: "\f0fe"; }
    +
    +.fa-podcast:before {
    +  content: "\f2ce"; }
    +
    +.fa-poll:before {
    +  content: "\f681"; }
    +
    +.fa-poll-h:before {
    +  content: "\f682"; }
    +
    +.fa-poo:before {
    +  content: "\f2fe"; }
    +
    +.fa-poop:before {
    +  content: "\f619"; }
    +
    +.fa-portrait:before {
    +  content: "\f3e0"; }
    +
    +.fa-pound-sign:before {
    +  content: "\f154"; }
    +
    +.fa-power-off:before {
    +  content: "\f011"; }
    +
    +.fa-pray:before {
    +  content: "\f683"; }
    +
    +.fa-praying-hands:before {
    +  content: "\f684"; }
    +
    +.fa-prescription:before {
    +  content: "\f5b1"; }
    +
    +.fa-prescription-bottle:before {
    +  content: "\f485"; }
    +
    +.fa-prescription-bottle-alt:before {
    +  content: "\f486"; }
    +
    +.fa-print:before {
    +  content: "\f02f"; }
    +
    +.fa-procedures:before {
    +  content: "\f487"; }
    +
    +.fa-product-hunt:before {
    +  content: "\f288"; }
    +
    +.fa-project-diagram:before {
    +  content: "\f542"; }
    +
    +.fa-pushed:before {
    +  content: "\f3e1"; }
    +
    +.fa-puzzle-piece:before {
    +  content: "\f12e"; }
    +
    +.fa-python:before {
    +  content: "\f3e2"; }
    +
    +.fa-qq:before {
    +  content: "\f1d6"; }
    +
    +.fa-qrcode:before {
    +  content: "\f029"; }
    +
    +.fa-question:before {
    +  content: "\f128"; }
    +
    +.fa-question-circle:before {
    +  content: "\f059"; }
    +
    +.fa-quidditch:before {
    +  content: "\f458"; }
    +
    +.fa-quinscape:before {
    +  content: "\f459"; }
    +
    +.fa-quora:before {
    +  content: "\f2c4"; }
    +
    +.fa-quote-left:before {
    +  content: "\f10d"; }
    +
    +.fa-quote-right:before {
    +  content: "\f10e"; }
    +
    +.fa-quran:before {
    +  content: "\f687"; }
    +
    +.fa-r-project:before {
    +  content: "\f4f7"; }
    +
    +.fa-random:before {
    +  content: "\f074"; }
    +
    +.fa-ravelry:before {
    +  content: "\f2d9"; }
    +
    +.fa-react:before {
    +  content: "\f41b"; }
    +
    +.fa-readme:before {
    +  content: "\f4d5"; }
    +
    +.fa-rebel:before {
    +  content: "\f1d0"; }
    +
    +.fa-receipt:before {
    +  content: "\f543"; }
    +
    +.fa-recycle:before {
    +  content: "\f1b8"; }
    +
    +.fa-red-river:before {
    +  content: "\f3e3"; }
    +
    +.fa-reddit:before {
    +  content: "\f1a1"; }
    +
    +.fa-reddit-alien:before {
    +  content: "\f281"; }
    +
    +.fa-reddit-square:before {
    +  content: "\f1a2"; }
    +
    +.fa-redo:before {
    +  content: "\f01e"; }
    +
    +.fa-redo-alt:before {
    +  content: "\f2f9"; }
    +
    +.fa-registered:before {
    +  content: "\f25d"; }
    +
    +.fa-rendact:before {
    +  content: "\f3e4"; }
    +
    +.fa-renren:before {
    +  content: "\f18b"; }
    +
    +.fa-reply:before {
    +  content: "\f3e5"; }
    +
    +.fa-reply-all:before {
    +  content: "\f122"; }
    +
    +.fa-replyd:before {
    +  content: "\f3e6"; }
    +
    +.fa-researchgate:before {
    +  content: "\f4f8"; }
    +
    +.fa-resolving:before {
    +  content: "\f3e7"; }
    +
    +.fa-retweet:before {
    +  content: "\f079"; }
    +
    +.fa-rev:before {
    +  content: "\f5b2"; }
    +
    +.fa-ribbon:before {
    +  content: "\f4d6"; }
    +
    +.fa-ring:before {
    +  content: "\f70b"; }
    +
    +.fa-road:before {
    +  content: "\f018"; }
    +
    +.fa-robot:before {
    +  content: "\f544"; }
    +
    +.fa-rocket:before {
    +  content: "\f135"; }
    +
    +.fa-rocketchat:before {
    +  content: "\f3e8"; }
    +
    +.fa-rockrms:before {
    +  content: "\f3e9"; }
    +
    +.fa-route:before {
    +  content: "\f4d7"; }
    +
    +.fa-rss:before {
    +  content: "\f09e"; }
    +
    +.fa-rss-square:before {
    +  content: "\f143"; }
    +
    +.fa-ruble-sign:before {
    +  content: "\f158"; }
    +
    +.fa-ruler:before {
    +  content: "\f545"; }
    +
    +.fa-ruler-combined:before {
    +  content: "\f546"; }
    +
    +.fa-ruler-horizontal:before {
    +  content: "\f547"; }
    +
    +.fa-ruler-vertical:before {
    +  content: "\f548"; }
    +
    +.fa-running:before {
    +  content: "\f70c"; }
    +
    +.fa-rupee-sign:before {
    +  content: "\f156"; }
    +
    +.fa-sad-cry:before {
    +  content: "\f5b3"; }
    +
    +.fa-sad-tear:before {
    +  content: "\f5b4"; }
    +
    +.fa-safari:before {
    +  content: "\f267"; }
    +
    +.fa-sass:before {
    +  content: "\f41e"; }
    +
    +.fa-save:before {
    +  content: "\f0c7"; }
    +
    +.fa-schlix:before {
    +  content: "\f3ea"; }
    +
    +.fa-school:before {
    +  content: "\f549"; }
    +
    +.fa-screwdriver:before {
    +  content: "\f54a"; }
    +
    +.fa-scribd:before {
    +  content: "\f28a"; }
    +
    +.fa-scroll:before {
    +  content: "\f70e"; }
    +
    +.fa-search:before {
    +  content: "\f002"; }
    +
    +.fa-search-dollar:before {
    +  content: "\f688"; }
    +
    +.fa-search-location:before {
    +  content: "\f689"; }
    +
    +.fa-search-minus:before {
    +  content: "\f010"; }
    +
    +.fa-search-plus:before {
    +  content: "\f00e"; }
    +
    +.fa-searchengin:before {
    +  content: "\f3eb"; }
    +
    +.fa-seedling:before {
    +  content: "\f4d8"; }
    +
    +.fa-sellcast:before {
    +  content: "\f2da"; }
    +
    +.fa-sellsy:before {
    +  content: "\f213"; }
    +
    +.fa-server:before {
    +  content: "\f233"; }
    +
    +.fa-servicestack:before {
    +  content: "\f3ec"; }
    +
    +.fa-shapes:before {
    +  content: "\f61f"; }
    +
    +.fa-share:before {
    +  content: "\f064"; }
    +
    +.fa-share-alt:before {
    +  content: "\f1e0"; }
    +
    +.fa-share-alt-square:before {
    +  content: "\f1e1"; }
    +
    +.fa-share-square:before {
    +  content: "\f14d"; }
    +
    +.fa-shekel-sign:before {
    +  content: "\f20b"; }
    +
    +.fa-shield-alt:before {
    +  content: "\f3ed"; }
    +
    +.fa-ship:before {
    +  content: "\f21a"; }
    +
    +.fa-shipping-fast:before {
    +  content: "\f48b"; }
    +
    +.fa-shirtsinbulk:before {
    +  content: "\f214"; }
    +
    +.fa-shoe-prints:before {
    +  content: "\f54b"; }
    +
    +.fa-shopping-bag:before {
    +  content: "\f290"; }
    +
    +.fa-shopping-basket:before {
    +  content: "\f291"; }
    +
    +.fa-shopping-cart:before {
    +  content: "\f07a"; }
    +
    +.fa-shopware:before {
    +  content: "\f5b5"; }
    +
    +.fa-shower:before {
    +  content: "\f2cc"; }
    +
    +.fa-shuttle-van:before {
    +  content: "\f5b6"; }
    +
    +.fa-sign:before {
    +  content: "\f4d9"; }
    +
    +.fa-sign-in-alt:before {
    +  content: "\f2f6"; }
    +
    +.fa-sign-language:before {
    +  content: "\f2a7"; }
    +
    +.fa-sign-out-alt:before {
    +  content: "\f2f5"; }
    +
    +.fa-signal:before {
    +  content: "\f012"; }
    +
    +.fa-signature:before {
    +  content: "\f5b7"; }
    +
    +.fa-simplybuilt:before {
    +  content: "\f215"; }
    +
    +.fa-sistrix:before {
    +  content: "\f3ee"; }
    +
    +.fa-sitemap:before {
    +  content: "\f0e8"; }
    +
    +.fa-sith:before {
    +  content: "\f512"; }
    +
    +.fa-skull:before {
    +  content: "\f54c"; }
    +
    +.fa-skull-crossbones:before {
    +  content: "\f714"; }
    +
    +.fa-skyatlas:before {
    +  content: "\f216"; }
    +
    +.fa-skype:before {
    +  content: "\f17e"; }
    +
    +.fa-slack:before {
    +  content: "\f198"; }
    +
    +.fa-slack-hash:before {
    +  content: "\f3ef"; }
    +
    +.fa-slash:before {
    +  content: "\f715"; }
    +
    +.fa-sliders-h:before {
    +  content: "\f1de"; }
    +
    +.fa-slideshare:before {
    +  content: "\f1e7"; }
    +
    +.fa-smile:before {
    +  content: "\f118"; }
    +
    +.fa-smile-beam:before {
    +  content: "\f5b8"; }
    +
    +.fa-smile-wink:before {
    +  content: "\f4da"; }
    +
    +.fa-smoking:before {
    +  content: "\f48d"; }
    +
    +.fa-smoking-ban:before {
    +  content: "\f54d"; }
    +
    +.fa-snapchat:before {
    +  content: "\f2ab"; }
    +
    +.fa-snapchat-ghost:before {
    +  content: "\f2ac"; }
    +
    +.fa-snapchat-square:before {
    +  content: "\f2ad"; }
    +
    +.fa-snowflake:before {
    +  content: "\f2dc"; }
    +
    +.fa-socks:before {
    +  content: "\f696"; }
    +
    +.fa-solar-panel:before {
    +  content: "\f5ba"; }
    +
    +.fa-sort:before {
    +  content: "\f0dc"; }
    +
    +.fa-sort-alpha-down:before {
    +  content: "\f15d"; }
    +
    +.fa-sort-alpha-up:before {
    +  content: "\f15e"; }
    +
    +.fa-sort-amount-down:before {
    +  content: "\f160"; }
    +
    +.fa-sort-amount-up:before {
    +  content: "\f161"; }
    +
    +.fa-sort-down:before {
    +  content: "\f0dd"; }
    +
    +.fa-sort-numeric-down:before {
    +  content: "\f162"; }
    +
    +.fa-sort-numeric-up:before {
    +  content: "\f163"; }
    +
    +.fa-sort-up:before {
    +  content: "\f0de"; }
    +
    +.fa-soundcloud:before {
    +  content: "\f1be"; }
    +
    +.fa-spa:before {
    +  content: "\f5bb"; }
    +
    +.fa-space-shuttle:before {
    +  content: "\f197"; }
    +
    +.fa-speakap:before {
    +  content: "\f3f3"; }
    +
    +.fa-spider:before {
    +  content: "\f717"; }
    +
    +.fa-spinner:before {
    +  content: "\f110"; }
    +
    +.fa-splotch:before {
    +  content: "\f5bc"; }
    +
    +.fa-spotify:before {
    +  content: "\f1bc"; }
    +
    +.fa-spray-can:before {
    +  content: "\f5bd"; }
    +
    +.fa-square:before {
    +  content: "\f0c8"; }
    +
    +.fa-square-full:before {
    +  content: "\f45c"; }
    +
    +.fa-square-root-alt:before {
    +  content: "\f698"; }
    +
    +.fa-squarespace:before {
    +  content: "\f5be"; }
    +
    +.fa-stack-exchange:before {
    +  content: "\f18d"; }
    +
    +.fa-stack-overflow:before {
    +  content: "\f16c"; }
    +
    +.fa-stamp:before {
    +  content: "\f5bf"; }
    +
    +.fa-star:before {
    +  content: "\f005"; }
    +
    +.fa-star-and-crescent:before {
    +  content: "\f699"; }
    +
    +.fa-star-half:before {
    +  content: "\f089"; }
    +
    +.fa-star-half-alt:before {
    +  content: "\f5c0"; }
    +
    +.fa-star-of-david:before {
    +  content: "\f69a"; }
    +
    +.fa-star-of-life:before {
    +  content: "\f621"; }
    +
    +.fa-staylinked:before {
    +  content: "\f3f5"; }
    +
    +.fa-steam:before {
    +  content: "\f1b6"; }
    +
    +.fa-steam-square:before {
    +  content: "\f1b7"; }
    +
    +.fa-steam-symbol:before {
    +  content: "\f3f6"; }
    +
    +.fa-step-backward:before {
    +  content: "\f048"; }
    +
    +.fa-step-forward:before {
    +  content: "\f051"; }
    +
    +.fa-stethoscope:before {
    +  content: "\f0f1"; }
    +
    +.fa-sticker-mule:before {
    +  content: "\f3f7"; }
    +
    +.fa-sticky-note:before {
    +  content: "\f249"; }
    +
    +.fa-stop:before {
    +  content: "\f04d"; }
    +
    +.fa-stop-circle:before {
    +  content: "\f28d"; }
    +
    +.fa-stopwatch:before {
    +  content: "\f2f2"; }
    +
    +.fa-store:before {
    +  content: "\f54e"; }
    +
    +.fa-store-alt:before {
    +  content: "\f54f"; }
    +
    +.fa-strava:before {
    +  content: "\f428"; }
    +
    +.fa-stream:before {
    +  content: "\f550"; }
    +
    +.fa-street-view:before {
    +  content: "\f21d"; }
    +
    +.fa-strikethrough:before {
    +  content: "\f0cc"; }
    +
    +.fa-stripe:before {
    +  content: "\f429"; }
    +
    +.fa-stripe-s:before {
    +  content: "\f42a"; }
    +
    +.fa-stroopwafel:before {
    +  content: "\f551"; }
    +
    +.fa-studiovinari:before {
    +  content: "\f3f8"; }
    +
    +.fa-stumbleupon:before {
    +  content: "\f1a4"; }
    +
    +.fa-stumbleupon-circle:before {
    +  content: "\f1a3"; }
    +
    +.fa-subscript:before {
    +  content: "\f12c"; }
    +
    +.fa-subway:before {
    +  content: "\f239"; }
    +
    +.fa-suitcase:before {
    +  content: "\f0f2"; }
    +
    +.fa-suitcase-rolling:before {
    +  content: "\f5c1"; }
    +
    +.fa-sun:before {
    +  content: "\f185"; }
    +
    +.fa-superpowers:before {
    +  content: "\f2dd"; }
    +
    +.fa-superscript:before {
    +  content: "\f12b"; }
    +
    +.fa-supple:before {
    +  content: "\f3f9"; }
    +
    +.fa-surprise:before {
    +  content: "\f5c2"; }
    +
    +.fa-swatchbook:before {
    +  content: "\f5c3"; }
    +
    +.fa-swimmer:before {
    +  content: "\f5c4"; }
    +
    +.fa-swimming-pool:before {
    +  content: "\f5c5"; }
    +
    +.fa-synagogue:before {
    +  content: "\f69b"; }
    +
    +.fa-sync:before {
    +  content: "\f021"; }
    +
    +.fa-sync-alt:before {
    +  content: "\f2f1"; }
    +
    +.fa-syringe:before {
    +  content: "\f48e"; }
    +
    +.fa-table:before {
    +  content: "\f0ce"; }
    +
    +.fa-table-tennis:before {
    +  content: "\f45d"; }
    +
    +.fa-tablet:before {
    +  content: "\f10a"; }
    +
    +.fa-tablet-alt:before {
    +  content: "\f3fa"; }
    +
    +.fa-tablets:before {
    +  content: "\f490"; }
    +
    +.fa-tachometer-alt:before {
    +  content: "\f3fd"; }
    +
    +.fa-tag:before {
    +  content: "\f02b"; }
    +
    +.fa-tags:before {
    +  content: "\f02c"; }
    +
    +.fa-tape:before {
    +  content: "\f4db"; }
    +
    +.fa-tasks:before {
    +  content: "\f0ae"; }
    +
    +.fa-taxi:before {
    +  content: "\f1ba"; }
    +
    +.fa-teamspeak:before {
    +  content: "\f4f9"; }
    +
    +.fa-teeth:before {
    +  content: "\f62e"; }
    +
    +.fa-teeth-open:before {
    +  content: "\f62f"; }
    +
    +.fa-telegram:before {
    +  content: "\f2c6"; }
    +
    +.fa-telegram-plane:before {
    +  content: "\f3fe"; }
    +
    +.fa-tencent-weibo:before {
    +  content: "\f1d5"; }
    +
    +.fa-terminal:before {
    +  content: "\f120"; }
    +
    +.fa-text-height:before {
    +  content: "\f034"; }
    +
    +.fa-text-width:before {
    +  content: "\f035"; }
    +
    +.fa-th:before {
    +  content: "\f00a"; }
    +
    +.fa-th-large:before {
    +  content: "\f009"; }
    +
    +.fa-th-list:before {
    +  content: "\f00b"; }
    +
    +.fa-the-red-yeti:before {
    +  content: "\f69d"; }
    +
    +.fa-theater-masks:before {
    +  content: "\f630"; }
    +
    +.fa-themeco:before {
    +  content: "\f5c6"; }
    +
    +.fa-themeisle:before {
    +  content: "\f2b2"; }
    +
    +.fa-thermometer:before {
    +  content: "\f491"; }
    +
    +.fa-thermometer-empty:before {
    +  content: "\f2cb"; }
    +
    +.fa-thermometer-full:before {
    +  content: "\f2c7"; }
    +
    +.fa-thermometer-half:before {
    +  content: "\f2c9"; }
    +
    +.fa-thermometer-quarter:before {
    +  content: "\f2ca"; }
    +
    +.fa-thermometer-three-quarters:before {
    +  content: "\f2c8"; }
    +
    +.fa-thumbs-down:before {
    +  content: "\f165"; }
    +
    +.fa-thumbs-up:before {
    +  content: "\f164"; }
    +
    +.fa-thumbtack:before {
    +  content: "\f08d"; }
    +
    +.fa-ticket-alt:before {
    +  content: "\f3ff"; }
    +
    +.fa-times:before {
    +  content: "\f00d"; }
    +
    +.fa-times-circle:before {
    +  content: "\f057"; }
    +
    +.fa-tint:before {
    +  content: "\f043"; }
    +
    +.fa-tint-slash:before {
    +  content: "\f5c7"; }
    +
    +.fa-tired:before {
    +  content: "\f5c8"; }
    +
    +.fa-toggle-off:before {
    +  content: "\f204"; }
    +
    +.fa-toggle-on:before {
    +  content: "\f205"; }
    +
    +.fa-toilet-paper:before {
    +  content: "\f71e"; }
    +
    +.fa-toolbox:before {
    +  content: "\f552"; }
    +
    +.fa-tooth:before {
    +  content: "\f5c9"; }
    +
    +.fa-torah:before {
    +  content: "\f6a0"; }
    +
    +.fa-torii-gate:before {
    +  content: "\f6a1"; }
    +
    +.fa-tractor:before {
    +  content: "\f722"; }
    +
    +.fa-trade-federation:before {
    +  content: "\f513"; }
    +
    +.fa-trademark:before {
    +  content: "\f25c"; }
    +
    +.fa-traffic-light:before {
    +  content: "\f637"; }
    +
    +.fa-train:before {
    +  content: "\f238"; }
    +
    +.fa-transgender:before {
    +  content: "\f224"; }
    +
    +.fa-transgender-alt:before {
    +  content: "\f225"; }
    +
    +.fa-trash:before {
    +  content: "\f1f8"; }
    +
    +.fa-trash-alt:before {
    +  content: "\f2ed"; }
    +
    +.fa-tree:before {
    +  content: "\f1bb"; }
    +
    +.fa-trello:before {
    +  content: "\f181"; }
    +
    +.fa-tripadvisor:before {
    +  content: "\f262"; }
    +
    +.fa-trophy:before {
    +  content: "\f091"; }
    +
    +.fa-truck:before {
    +  content: "\f0d1"; }
    +
    +.fa-truck-loading:before {
    +  content: "\f4de"; }
    +
    +.fa-truck-monster:before {
    +  content: "\f63b"; }
    +
    +.fa-truck-moving:before {
    +  content: "\f4df"; }
    +
    +.fa-truck-pickup:before {
    +  content: "\f63c"; }
    +
    +.fa-tshirt:before {
    +  content: "\f553"; }
    +
    +.fa-tty:before {
    +  content: "\f1e4"; }
    +
    +.fa-tumblr:before {
    +  content: "\f173"; }
    +
    +.fa-tumblr-square:before {
    +  content: "\f174"; }
    +
    +.fa-tv:before {
    +  content: "\f26c"; }
    +
    +.fa-twitch:before {
    +  content: "\f1e8"; }
    +
    +.fa-twitter:before {
    +  content: "\f099"; }
    +
    +.fa-twitter-square:before {
    +  content: "\f081"; }
    +
    +.fa-typo3:before {
    +  content: "\f42b"; }
    +
    +.fa-uber:before {
    +  content: "\f402"; }
    +
    +.fa-uikit:before {
    +  content: "\f403"; }
    +
    +.fa-umbrella:before {
    +  content: "\f0e9"; }
    +
    +.fa-umbrella-beach:before {
    +  content: "\f5ca"; }
    +
    +.fa-underline:before {
    +  content: "\f0cd"; }
    +
    +.fa-undo:before {
    +  content: "\f0e2"; }
    +
    +.fa-undo-alt:before {
    +  content: "\f2ea"; }
    +
    +.fa-uniregistry:before {
    +  content: "\f404"; }
    +
    +.fa-universal-access:before {
    +  content: "\f29a"; }
    +
    +.fa-university:before {
    +  content: "\f19c"; }
    +
    +.fa-unlink:before {
    +  content: "\f127"; }
    +
    +.fa-unlock:before {
    +  content: "\f09c"; }
    +
    +.fa-unlock-alt:before {
    +  content: "\f13e"; }
    +
    +.fa-untappd:before {
    +  content: "\f405"; }
    +
    +.fa-upload:before {
    +  content: "\f093"; }
    +
    +.fa-usb:before {
    +  content: "\f287"; }
    +
    +.fa-user:before {
    +  content: "\f007"; }
    +
    +.fa-user-alt:before {
    +  content: "\f406"; }
    +
    +.fa-user-alt-slash:before {
    +  content: "\f4fa"; }
    +
    +.fa-user-astronaut:before {
    +  content: "\f4fb"; }
    +
    +.fa-user-check:before {
    +  content: "\f4fc"; }
    +
    +.fa-user-circle:before {
    +  content: "\f2bd"; }
    +
    +.fa-user-clock:before {
    +  content: "\f4fd"; }
    +
    +.fa-user-cog:before {
    +  content: "\f4fe"; }
    +
    +.fa-user-edit:before {
    +  content: "\f4ff"; }
    +
    +.fa-user-friends:before {
    +  content: "\f500"; }
    +
    +.fa-user-graduate:before {
    +  content: "\f501"; }
    +
    +.fa-user-injured:before {
    +  content: "\f728"; }
    +
    +.fa-user-lock:before {
    +  content: "\f502"; }
    +
    +.fa-user-md:before {
    +  content: "\f0f0"; }
    +
    +.fa-user-minus:before {
    +  content: "\f503"; }
    +
    +.fa-user-ninja:before {
    +  content: "\f504"; }
    +
    +.fa-user-plus:before {
    +  content: "\f234"; }
    +
    +.fa-user-secret:before {
    +  content: "\f21b"; }
    +
    +.fa-user-shield:before {
    +  content: "\f505"; }
    +
    +.fa-user-slash:before {
    +  content: "\f506"; }
    +
    +.fa-user-tag:before {
    +  content: "\f507"; }
    +
    +.fa-user-tie:before {
    +  content: "\f508"; }
    +
    +.fa-user-times:before {
    +  content: "\f235"; }
    +
    +.fa-users:before {
    +  content: "\f0c0"; }
    +
    +.fa-users-cog:before {
    +  content: "\f509"; }
    +
    +.fa-ussunnah:before {
    +  content: "\f407"; }
    +
    +.fa-utensil-spoon:before {
    +  content: "\f2e5"; }
    +
    +.fa-utensils:before {
    +  content: "\f2e7"; }
    +
    +.fa-vaadin:before {
    +  content: "\f408"; }
    +
    +.fa-vector-square:before {
    +  content: "\f5cb"; }
    +
    +.fa-venus:before {
    +  content: "\f221"; }
    +
    +.fa-venus-double:before {
    +  content: "\f226"; }
    +
    +.fa-venus-mars:before {
    +  content: "\f228"; }
    +
    +.fa-viacoin:before {
    +  content: "\f237"; }
    +
    +.fa-viadeo:before {
    +  content: "\f2a9"; }
    +
    +.fa-viadeo-square:before {
    +  content: "\f2aa"; }
    +
    +.fa-vial:before {
    +  content: "\f492"; }
    +
    +.fa-vials:before {
    +  content: "\f493"; }
    +
    +.fa-viber:before {
    +  content: "\f409"; }
    +
    +.fa-video:before {
    +  content: "\f03d"; }
    +
    +.fa-video-slash:before {
    +  content: "\f4e2"; }
    +
    +.fa-vihara:before {
    +  content: "\f6a7"; }
    +
    +.fa-vimeo:before {
    +  content: "\f40a"; }
    +
    +.fa-vimeo-square:before {
    +  content: "\f194"; }
    +
    +.fa-vimeo-v:before {
    +  content: "\f27d"; }
    +
    +.fa-vine:before {
    +  content: "\f1ca"; }
    +
    +.fa-vk:before {
    +  content: "\f189"; }
    +
    +.fa-vnv:before {
    +  content: "\f40b"; }
    +
    +.fa-volleyball-ball:before {
    +  content: "\f45f"; }
    +
    +.fa-volume-down:before {
    +  content: "\f027"; }
    +
    +.fa-volume-mute:before {
    +  content: "\f6a9"; }
    +
    +.fa-volume-off:before {
    +  content: "\f026"; }
    +
    +.fa-volume-up:before {
    +  content: "\f028"; }
    +
    +.fa-vuejs:before {
    +  content: "\f41f"; }
    +
    +.fa-walking:before {
    +  content: "\f554"; }
    +
    +.fa-wallet:before {
    +  content: "\f555"; }
    +
    +.fa-warehouse:before {
    +  content: "\f494"; }
    +
    +.fa-weebly:before {
    +  content: "\f5cc"; }
    +
    +.fa-weibo:before {
    +  content: "\f18a"; }
    +
    +.fa-weight:before {
    +  content: "\f496"; }
    +
    +.fa-weight-hanging:before {
    +  content: "\f5cd"; }
    +
    +.fa-weixin:before {
    +  content: "\f1d7"; }
    +
    +.fa-whatsapp:before {
    +  content: "\f232"; }
    +
    +.fa-whatsapp-square:before {
    +  content: "\f40c"; }
    +
    +.fa-wheelchair:before {
    +  content: "\f193"; }
    +
    +.fa-whmcs:before {
    +  content: "\f40d"; }
    +
    +.fa-wifi:before {
    +  content: "\f1eb"; }
    +
    +.fa-wikipedia-w:before {
    +  content: "\f266"; }
    +
    +.fa-wind:before {
    +  content: "\f72e"; }
    +
    +.fa-window-close:before {
    +  content: "\f410"; }
    +
    +.fa-window-maximize:before {
    +  content: "\f2d0"; }
    +
    +.fa-window-minimize:before {
    +  content: "\f2d1"; }
    +
    +.fa-window-restore:before {
    +  content: "\f2d2"; }
    +
    +.fa-windows:before {
    +  content: "\f17a"; }
    +
    +.fa-wine-bottle:before {
    +  content: "\f72f"; }
    +
    +.fa-wine-glass:before {
    +  content: "\f4e3"; }
    +
    +.fa-wine-glass-alt:before {
    +  content: "\f5ce"; }
    +
    +.fa-wix:before {
    +  content: "\f5cf"; }
    +
    +.fa-wizards-of-the-coast:before {
    +  content: "\f730"; }
    +
    +.fa-wolf-pack-battalion:before {
    +  content: "\f514"; }
    +
    +.fa-won-sign:before {
    +  content: "\f159"; }
    +
    +.fa-wordpress:before {
    +  content: "\f19a"; }
    +
    +.fa-wordpress-simple:before {
    +  content: "\f411"; }
    +
    +.fa-wpbeginner:before {
    +  content: "\f297"; }
    +
    +.fa-wpexplorer:before {
    +  content: "\f2de"; }
    +
    +.fa-wpforms:before {
    +  content: "\f298"; }
    +
    +.fa-wrench:before {
    +  content: "\f0ad"; }
    +
    +.fa-x-ray:before {
    +  content: "\f497"; }
    +
    +.fa-xbox:before {
    +  content: "\f412"; }
    +
    +.fa-xing:before {
    +  content: "\f168"; }
    +
    +.fa-xing-square:before {
    +  content: "\f169"; }
    +
    +.fa-y-combinator:before {
    +  content: "\f23b"; }
    +
    +.fa-yahoo:before {
    +  content: "\f19e"; }
    +
    +.fa-yandex:before {
    +  content: "\f413"; }
    +
    +.fa-yandex-international:before {
    +  content: "\f414"; }
    +
    +.fa-yelp:before {
    +  content: "\f1e9"; }
    +
    +.fa-yen-sign:before {
    +  content: "\f157"; }
    +
    +.fa-yin-yang:before {
    +  content: "\f6ad"; }
    +
    +.fa-yoast:before {
    +  content: "\f2b1"; }
    +
    +.fa-youtube:before {
    +  content: "\f167"; }
    +
    +.fa-youtube-square:before {
    +  content: "\f431"; }
    +
    +.fa-zhihu:before {
    +  content: "\f63f"; }
    +
    +.sr-only {
    +  border: 0;
    +  clip: rect(0, 0, 0, 0);
    +  height: 1px;
    +  margin: -1px;
    +  overflow: hidden;
    +  padding: 0;
    +  position: absolute;
    +  width: 1px; }
    +
    +.sr-only-focusable:active, .sr-only-focusable:focus {
    +  clip: auto;
    +  height: auto;
    +  margin: 0;
    +  overflow: visible;
    +  position: static;
    +  width: auto; }
    diff --git a/htdocs/theme/common/fontawesome-5/css/fontawesome.min.css b/htdocs/theme/common/fontawesome-5/css/fontawesome.min.css
    new file mode 100644
    index 00000000000..2f0cd3f7730
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/fontawesome.min.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-concierge-bell:before{content:"\f562"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/css/regular.css b/htdocs/theme/common/fontawesome-5/css/regular.css
    new file mode 100644
    index 00000000000..b339ad7ad35
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/regular.css
    @@ -0,0 +1,14 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@font-face {
    +  font-family: 'Font Awesome 5 Free';
    +  font-style: normal;
    +  font-weight: 400;
    +  src: url("../webfonts/fa-regular-400.eot");
    +  src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
    +
    +.far {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    diff --git a/htdocs/theme/common/fontawesome-5/css/regular.min.css b/htdocs/theme/common/fontawesome-5/css/regular.min.css
    new file mode 100644
    index 00000000000..07231313572
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/regular.min.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/css/solid.css b/htdocs/theme/common/fontawesome-5/css/solid.css
    new file mode 100644
    index 00000000000..afb40065d0a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/solid.css
    @@ -0,0 +1,15 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@font-face {
    +  font-family: 'Font Awesome 5 Free';
    +  font-style: normal;
    +  font-weight: 900;
    +  src: url("../webfonts/fa-solid-900.eot");
    +  src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
    +
    +.fa,
    +.fas {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 900; }
    diff --git a/htdocs/theme/common/fontawesome-5/css/solid.min.css b/htdocs/theme/common/fontawesome-5/css/solid.min.css
    new file mode 100644
    index 00000000000..8d6a13c60f8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/solid.min.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/css/svg-with-js.css b/htdocs/theme/common/fontawesome-5/css/svg-with-js.css
    new file mode 100644
    index 00000000000..d71a5f5df04
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/svg-with-js.css
    @@ -0,0 +1,345 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +svg:not(:root).svg-inline--fa {
    +  overflow: visible; }
    +
    +.svg-inline--fa {
    +  display: inline-block;
    +  font-size: inherit;
    +  height: 1em;
    +  overflow: visible;
    +  vertical-align: -.125em; }
    +  .svg-inline--fa.fa-lg {
    +    vertical-align: -.225em; }
    +  .svg-inline--fa.fa-w-1 {
    +    width: 0.0625em; }
    +  .svg-inline--fa.fa-w-2 {
    +    width: 0.125em; }
    +  .svg-inline--fa.fa-w-3 {
    +    width: 0.1875em; }
    +  .svg-inline--fa.fa-w-4 {
    +    width: 0.25em; }
    +  .svg-inline--fa.fa-w-5 {
    +    width: 0.3125em; }
    +  .svg-inline--fa.fa-w-6 {
    +    width: 0.375em; }
    +  .svg-inline--fa.fa-w-7 {
    +    width: 0.4375em; }
    +  .svg-inline--fa.fa-w-8 {
    +    width: 0.5em; }
    +  .svg-inline--fa.fa-w-9 {
    +    width: 0.5625em; }
    +  .svg-inline--fa.fa-w-10 {
    +    width: 0.625em; }
    +  .svg-inline--fa.fa-w-11 {
    +    width: 0.6875em; }
    +  .svg-inline--fa.fa-w-12 {
    +    width: 0.75em; }
    +  .svg-inline--fa.fa-w-13 {
    +    width: 0.8125em; }
    +  .svg-inline--fa.fa-w-14 {
    +    width: 0.875em; }
    +  .svg-inline--fa.fa-w-15 {
    +    width: 0.9375em; }
    +  .svg-inline--fa.fa-w-16 {
    +    width: 1em; }
    +  .svg-inline--fa.fa-w-17 {
    +    width: 1.0625em; }
    +  .svg-inline--fa.fa-w-18 {
    +    width: 1.125em; }
    +  .svg-inline--fa.fa-w-19 {
    +    width: 1.1875em; }
    +  .svg-inline--fa.fa-w-20 {
    +    width: 1.25em; }
    +  .svg-inline--fa.fa-pull-left {
    +    margin-right: .3em;
    +    width: auto; }
    +  .svg-inline--fa.fa-pull-right {
    +    margin-left: .3em;
    +    width: auto; }
    +  .svg-inline--fa.fa-border {
    +    height: 1.5em; }
    +  .svg-inline--fa.fa-li {
    +    width: 2em; }
    +  .svg-inline--fa.fa-fw {
    +    width: 1.25em; }
    +
    +.fa-layers svg.svg-inline--fa {
    +  bottom: 0;
    +  left: 0;
    +  margin: auto;
    +  position: absolute;
    +  right: 0;
    +  top: 0; }
    +
    +.fa-layers {
    +  display: inline-block;
    +  height: 1em;
    +  position: relative;
    +  text-align: center;
    +  vertical-align: -.125em;
    +  width: 1em; }
    +  .fa-layers svg.svg-inline--fa {
    +    -webkit-transform-origin: center center;
    +            transform-origin: center center; }
    +
    +.fa-layers-text, .fa-layers-counter {
    +  display: inline-block;
    +  position: absolute;
    +  text-align: center; }
    +
    +.fa-layers-text {
    +  left: 50%;
    +  top: 50%;
    +  -webkit-transform: translate(-50%, -50%);
    +          transform: translate(-50%, -50%);
    +  -webkit-transform-origin: center center;
    +          transform-origin: center center; }
    +
    +.fa-layers-counter {
    +  background-color: #ff253a;
    +  border-radius: 1em;
    +  -webkit-box-sizing: border-box;
    +          box-sizing: border-box;
    +  color: #fff;
    +  height: 1.5em;
    +  line-height: 1;
    +  max-width: 5em;
    +  min-width: 1.5em;
    +  overflow: hidden;
    +  padding: .25em;
    +  right: 0;
    +  text-overflow: ellipsis;
    +  top: 0;
    +  -webkit-transform: scale(0.25);
    +          transform: scale(0.25);
    +  -webkit-transform-origin: top right;
    +          transform-origin: top right; }
    +
    +.fa-layers-bottom-right {
    +  bottom: 0;
    +  right: 0;
    +  top: auto;
    +  -webkit-transform: scale(0.25);
    +          transform: scale(0.25);
    +  -webkit-transform-origin: bottom right;
    +          transform-origin: bottom right; }
    +
    +.fa-layers-bottom-left {
    +  bottom: 0;
    +  left: 0;
    +  right: auto;
    +  top: auto;
    +  -webkit-transform: scale(0.25);
    +          transform: scale(0.25);
    +  -webkit-transform-origin: bottom left;
    +          transform-origin: bottom left; }
    +
    +.fa-layers-top-right {
    +  right: 0;
    +  top: 0;
    +  -webkit-transform: scale(0.25);
    +          transform: scale(0.25);
    +  -webkit-transform-origin: top right;
    +          transform-origin: top right; }
    +
    +.fa-layers-top-left {
    +  left: 0;
    +  right: auto;
    +  top: 0;
    +  -webkit-transform: scale(0.25);
    +          transform: scale(0.25);
    +  -webkit-transform-origin: top left;
    +          transform-origin: top left; }
    +
    +.fa-lg {
    +  font-size: 1.33333em;
    +  line-height: 0.75em;
    +  vertical-align: -.0667em; }
    +
    +.fa-xs {
    +  font-size: .75em; }
    +
    +.fa-sm {
    +  font-size: .875em; }
    +
    +.fa-1x {
    +  font-size: 1em; }
    +
    +.fa-2x {
    +  font-size: 2em; }
    +
    +.fa-3x {
    +  font-size: 3em; }
    +
    +.fa-4x {
    +  font-size: 4em; }
    +
    +.fa-5x {
    +  font-size: 5em; }
    +
    +.fa-6x {
    +  font-size: 6em; }
    +
    +.fa-7x {
    +  font-size: 7em; }
    +
    +.fa-8x {
    +  font-size: 8em; }
    +
    +.fa-9x {
    +  font-size: 9em; }
    +
    +.fa-10x {
    +  font-size: 10em; }
    +
    +.fa-fw {
    +  text-align: center;
    +  width: 1.25em; }
    +
    +.fa-ul {
    +  list-style-type: none;
    +  margin-left: 2.5em;
    +  padding-left: 0; }
    +  .fa-ul > li {
    +    position: relative; }
    +
    +.fa-li {
    +  left: -2em;
    +  position: absolute;
    +  text-align: center;
    +  width: 2em;
    +  line-height: inherit; }
    +
    +.fa-border {
    +  border: solid 0.08em #eee;
    +  border-radius: .1em;
    +  padding: .2em .25em .15em; }
    +
    +.fa-pull-left {
    +  float: left; }
    +
    +.fa-pull-right {
    +  float: right; }
    +
    +.fa.fa-pull-left,
    +.fas.fa-pull-left,
    +.far.fa-pull-left,
    +.fal.fa-pull-left,
    +.fab.fa-pull-left {
    +  margin-right: .3em; }
    +
    +.fa.fa-pull-right,
    +.fas.fa-pull-right,
    +.far.fa-pull-right,
    +.fal.fa-pull-right,
    +.fab.fa-pull-right {
    +  margin-left: .3em; }
    +
    +.fa-spin {
    +  -webkit-animation: fa-spin 2s infinite linear;
    +          animation: fa-spin 2s infinite linear; }
    +
    +.fa-pulse {
    +  -webkit-animation: fa-spin 1s infinite steps(8);
    +          animation: fa-spin 1s infinite steps(8); }
    +
    +@-webkit-keyframes fa-spin {
    +  0% {
    +    -webkit-transform: rotate(0deg);
    +            transform: rotate(0deg); }
    +  100% {
    +    -webkit-transform: rotate(360deg);
    +            transform: rotate(360deg); } }
    +
    +@keyframes fa-spin {
    +  0% {
    +    -webkit-transform: rotate(0deg);
    +            transform: rotate(0deg); }
    +  100% {
    +    -webkit-transform: rotate(360deg);
    +            transform: rotate(360deg); } }
    +
    +.fa-rotate-90 {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
    +  -webkit-transform: rotate(90deg);
    +          transform: rotate(90deg); }
    +
    +.fa-rotate-180 {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
    +  -webkit-transform: rotate(180deg);
    +          transform: rotate(180deg); }
    +
    +.fa-rotate-270 {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
    +  -webkit-transform: rotate(270deg);
    +          transform: rotate(270deg); }
    +
    +.fa-flip-horizontal {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
    +  -webkit-transform: scale(-1, 1);
    +          transform: scale(-1, 1); }
    +
    +.fa-flip-vertical {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
    +  -webkit-transform: scale(1, -1);
    +          transform: scale(1, -1); }
    +
    +.fa-flip-horizontal.fa-flip-vertical {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
    +  -webkit-transform: scale(-1, -1);
    +          transform: scale(-1, -1); }
    +
    +:root .fa-rotate-90,
    +:root .fa-rotate-180,
    +:root .fa-rotate-270,
    +:root .fa-flip-horizontal,
    +:root .fa-flip-vertical {
    +  -webkit-filter: none;
    +          filter: none; }
    +
    +.fa-stack {
    +  display: inline-block;
    +  height: 2em;
    +  position: relative;
    +  width: 2em; }
    +
    +.fa-stack-1x,
    +.fa-stack-2x {
    +  bottom: 0;
    +  left: 0;
    +  margin: auto;
    +  position: absolute;
    +  right: 0;
    +  top: 0; }
    +
    +.svg-inline--fa.fa-stack-1x {
    +  height: 1em;
    +  width: 1em; }
    +
    +.svg-inline--fa.fa-stack-2x {
    +  height: 2em;
    +  width: 2em; }
    +
    +.fa-inverse {
    +  color: #fff; }
    +
    +.sr-only {
    +  border: 0;
    +  clip: rect(0, 0, 0, 0);
    +  height: 1px;
    +  margin: -1px;
    +  overflow: hidden;
    +  padding: 0;
    +  position: absolute;
    +  width: 1px; }
    +
    +.sr-only-focusable:active, .sr-only-focusable:focus {
    +  clip: auto;
    +  height: auto;
    +  margin: 0;
    +  overflow: visible;
    +  position: static;
    +  width: auto; }
    diff --git a/htdocs/theme/common/fontawesome-5/css/svg-with-js.min.css b/htdocs/theme/common/fontawesome-5/css/svg-with-js.min.css
    new file mode 100644
    index 00000000000..3a0b050ba2c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/svg-with-js.min.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;transform:scale(.25);transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;transform:scale(.25);transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;transform:scale(.25);transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1em}.svg-inline--fa.fa-stack-2x{height:2em;width:2em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/css/v4-shims.css b/htdocs/theme/common/fontawesome-5/css/v4-shims.css
    new file mode 100644
    index 00000000000..07b4a695246
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/v4-shims.css
    @@ -0,0 +1,2170 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.fa.fa-glass:before {
    +  content: "\f000"; }
    +
    +.fa.fa-meetup {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-star-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-star-o:before {
    +  content: "\f005"; }
    +
    +.fa.fa-remove:before {
    +  content: "\f00d"; }
    +
    +.fa.fa-close:before {
    +  content: "\f00d"; }
    +
    +.fa.fa-gear:before {
    +  content: "\f013"; }
    +
    +.fa.fa-trash-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-trash-o:before {
    +  content: "\f2ed"; }
    +
    +.fa.fa-file-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-o:before {
    +  content: "\f15b"; }
    +
    +.fa.fa-clock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-clock-o:before {
    +  content: "\f017"; }
    +
    +.fa.fa-arrow-circle-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-arrow-circle-o-down:before {
    +  content: "\f358"; }
    +
    +.fa.fa-arrow-circle-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-arrow-circle-o-up:before {
    +  content: "\f35b"; }
    +
    +.fa.fa-play-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-play-circle-o:before {
    +  content: "\f144"; }
    +
    +.fa.fa-repeat:before {
    +  content: "\f01e"; }
    +
    +.fa.fa-rotate-right:before {
    +  content: "\f01e"; }
    +
    +.fa.fa-refresh:before {
    +  content: "\f021"; }
    +
    +.fa.fa-list-alt {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-dedent:before {
    +  content: "\f03b"; }
    +
    +.fa.fa-video-camera:before {
    +  content: "\f03d"; }
    +
    +.fa.fa-picture-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-picture-o:before {
    +  content: "\f03e"; }
    +
    +.fa.fa-photo {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-photo:before {
    +  content: "\f03e"; }
    +
    +.fa.fa-image {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-image:before {
    +  content: "\f03e"; }
    +
    +.fa.fa-pencil:before {
    +  content: "\f303"; }
    +
    +.fa.fa-map-marker:before {
    +  content: "\f3c5"; }
    +
    +.fa.fa-pencil-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-pencil-square-o:before {
    +  content: "\f044"; }
    +
    +.fa.fa-share-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-share-square-o:before {
    +  content: "\f14d"; }
    +
    +.fa.fa-check-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-check-square-o:before {
    +  content: "\f14a"; }
    +
    +.fa.fa-arrows:before {
    +  content: "\f0b2"; }
    +
    +.fa.fa-times-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-times-circle-o:before {
    +  content: "\f057"; }
    +
    +.fa.fa-check-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-check-circle-o:before {
    +  content: "\f058"; }
    +
    +.fa.fa-mail-forward:before {
    +  content: "\f064"; }
    +
    +.fa.fa-eye {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-eye-slash {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-warning:before {
    +  content: "\f071"; }
    +
    +.fa.fa-calendar:before {
    +  content: "\f073"; }
    +
    +.fa.fa-arrows-v:before {
    +  content: "\f338"; }
    +
    +.fa.fa-arrows-h:before {
    +  content: "\f337"; }
    +
    +.fa.fa-bar-chart {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-bar-chart:before {
    +  content: "\f080"; }
    +
    +.fa.fa-bar-chart-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-bar-chart-o:before {
    +  content: "\f080"; }
    +
    +.fa.fa-twitter-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-facebook-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gears:before {
    +  content: "\f085"; }
    +
    +.fa.fa-thumbs-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-thumbs-o-up:before {
    +  content: "\f164"; }
    +
    +.fa.fa-thumbs-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-thumbs-o-down:before {
    +  content: "\f165"; }
    +
    +.fa.fa-heart-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-heart-o:before {
    +  content: "\f004"; }
    +
    +.fa.fa-sign-out:before {
    +  content: "\f2f5"; }
    +
    +.fa.fa-linkedin-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-linkedin-square:before {
    +  content: "\f08c"; }
    +
    +.fa.fa-thumb-tack:before {
    +  content: "\f08d"; }
    +
    +.fa.fa-external-link:before {
    +  content: "\f35d"; }
    +
    +.fa.fa-sign-in:before {
    +  content: "\f2f6"; }
    +
    +.fa.fa-github-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-lemon-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-lemon-o:before {
    +  content: "\f094"; }
    +
    +.fa.fa-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-square-o:before {
    +  content: "\f0c8"; }
    +
    +.fa.fa-bookmark-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-bookmark-o:before {
    +  content: "\f02e"; }
    +
    +.fa.fa-twitter {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-facebook {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-facebook:before {
    +  content: "\f39e"; }
    +
    +.fa.fa-facebook-f {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-facebook-f:before {
    +  content: "\f39e"; }
    +
    +.fa.fa-github {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-credit-card {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-feed:before {
    +  content: "\f09e"; }
    +
    +.fa.fa-hdd-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hdd-o:before {
    +  content: "\f0a0"; }
    +
    +.fa.fa-hand-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-o-right:before {
    +  content: "\f0a4"; }
    +
    +.fa.fa-hand-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-o-left:before {
    +  content: "\f0a5"; }
    +
    +.fa.fa-hand-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-o-up:before {
    +  content: "\f0a6"; }
    +
    +.fa.fa-hand-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-o-down:before {
    +  content: "\f0a7"; }
    +
    +.fa.fa-arrows-alt:before {
    +  content: "\f31e"; }
    +
    +.fa.fa-group:before {
    +  content: "\f0c0"; }
    +
    +.fa.fa-chain:before {
    +  content: "\f0c1"; }
    +
    +.fa.fa-scissors:before {
    +  content: "\f0c4"; }
    +
    +.fa.fa-files-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-files-o:before {
    +  content: "\f0c5"; }
    +
    +.fa.fa-floppy-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-floppy-o:before {
    +  content: "\f0c7"; }
    +
    +.fa.fa-navicon:before {
    +  content: "\f0c9"; }
    +
    +.fa.fa-reorder:before {
    +  content: "\f0c9"; }
    +
    +.fa.fa-pinterest {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pinterest-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus:before {
    +  content: "\f0d5"; }
    +
    +.fa.fa-money {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-money:before {
    +  content: "\f3d1"; }
    +
    +.fa.fa-unsorted:before {
    +  content: "\f0dc"; }
    +
    +.fa.fa-sort-desc:before {
    +  content: "\f0dd"; }
    +
    +.fa.fa-sort-asc:before {
    +  content: "\f0de"; }
    +
    +.fa.fa-linkedin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-linkedin:before {
    +  content: "\f0e1"; }
    +
    +.fa.fa-rotate-left:before {
    +  content: "\f0e2"; }
    +
    +.fa.fa-legal:before {
    +  content: "\f0e3"; }
    +
    +.fa.fa-tachometer:before {
    +  content: "\f3fd"; }
    +
    +.fa.fa-dashboard:before {
    +  content: "\f3fd"; }
    +
    +.fa.fa-comment-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-comment-o:before {
    +  content: "\f075"; }
    +
    +.fa.fa-comments-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-comments-o:before {
    +  content: "\f086"; }
    +
    +.fa.fa-flash:before {
    +  content: "\f0e7"; }
    +
    +.fa.fa-clipboard {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-paste {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-paste:before {
    +  content: "\f328"; }
    +
    +.fa.fa-lightbulb-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-lightbulb-o:before {
    +  content: "\f0eb"; }
    +
    +.fa.fa-exchange:before {
    +  content: "\f362"; }
    +
    +.fa.fa-cloud-download:before {
    +  content: "\f381"; }
    +
    +.fa.fa-cloud-upload:before {
    +  content: "\f382"; }
    +
    +.fa.fa-bell-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-bell-o:before {
    +  content: "\f0f3"; }
    +
    +.fa.fa-cutlery:before {
    +  content: "\f2e7"; }
    +
    +.fa.fa-file-text-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-text-o:before {
    +  content: "\f15c"; }
    +
    +.fa.fa-building-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-building-o:before {
    +  content: "\f1ad"; }
    +
    +.fa.fa-hospital-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hospital-o:before {
    +  content: "\f0f8"; }
    +
    +.fa.fa-tablet:before {
    +  content: "\f3fa"; }
    +
    +.fa.fa-mobile:before {
    +  content: "\f3cd"; }
    +
    +.fa.fa-mobile-phone:before {
    +  content: "\f3cd"; }
    +
    +.fa.fa-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-circle-o:before {
    +  content: "\f111"; }
    +
    +.fa.fa-mail-reply:before {
    +  content: "\f3e5"; }
    +
    +.fa.fa-github-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-folder-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-folder-o:before {
    +  content: "\f07b"; }
    +
    +.fa.fa-folder-open-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-folder-open-o:before {
    +  content: "\f07c"; }
    +
    +.fa.fa-smile-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-smile-o:before {
    +  content: "\f118"; }
    +
    +.fa.fa-frown-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-frown-o:before {
    +  content: "\f119"; }
    +
    +.fa.fa-meh-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-meh-o:before {
    +  content: "\f11a"; }
    +
    +.fa.fa-keyboard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-keyboard-o:before {
    +  content: "\f11c"; }
    +
    +.fa.fa-flag-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-flag-o:before {
    +  content: "\f024"; }
    +
    +.fa.fa-mail-reply-all:before {
    +  content: "\f122"; }
    +
    +.fa.fa-star-half-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-star-half-o:before {
    +  content: "\f089"; }
    +
    +.fa.fa-star-half-empty {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-star-half-empty:before {
    +  content: "\f089"; }
    +
    +.fa.fa-star-half-full {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-star-half-full:before {
    +  content: "\f089"; }
    +
    +.fa.fa-code-fork:before {
    +  content: "\f126"; }
    +
    +.fa.fa-chain-broken:before {
    +  content: "\f127"; }
    +
    +.fa.fa-shield:before {
    +  content: "\f3ed"; }
    +
    +.fa.fa-calendar-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-o:before {
    +  content: "\f133"; }
    +
    +.fa.fa-maxcdn {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-html5 {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-css3 {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ticket:before {
    +  content: "\f3ff"; }
    +
    +.fa.fa-minus-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-minus-square-o:before {
    +  content: "\f146"; }
    +
    +.fa.fa-level-up:before {
    +  content: "\f3bf"; }
    +
    +.fa.fa-level-down:before {
    +  content: "\f3be"; }
    +
    +.fa.fa-pencil-square:before {
    +  content: "\f14b"; }
    +
    +.fa.fa-external-link-square:before {
    +  content: "\f360"; }
    +
    +.fa.fa-compass {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-caret-square-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-caret-square-o-down:before {
    +  content: "\f150"; }
    +
    +.fa.fa-toggle-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-toggle-down:before {
    +  content: "\f150"; }
    +
    +.fa.fa-caret-square-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-caret-square-o-up:before {
    +  content: "\f151"; }
    +
    +.fa.fa-toggle-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-toggle-up:before {
    +  content: "\f151"; }
    +
    +.fa.fa-caret-square-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-caret-square-o-right:before {
    +  content: "\f152"; }
    +
    +.fa.fa-toggle-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-toggle-right:before {
    +  content: "\f152"; }
    +
    +.fa.fa-eur:before {
    +  content: "\f153"; }
    +
    +.fa.fa-euro:before {
    +  content: "\f153"; }
    +
    +.fa.fa-gbp:before {
    +  content: "\f154"; }
    +
    +.fa.fa-usd:before {
    +  content: "\f155"; }
    +
    +.fa.fa-dollar:before {
    +  content: "\f155"; }
    +
    +.fa.fa-inr:before {
    +  content: "\f156"; }
    +
    +.fa.fa-rupee:before {
    +  content: "\f156"; }
    +
    +.fa.fa-jpy:before {
    +  content: "\f157"; }
    +
    +.fa.fa-cny:before {
    +  content: "\f157"; }
    +
    +.fa.fa-rmb:before {
    +  content: "\f157"; }
    +
    +.fa.fa-yen:before {
    +  content: "\f157"; }
    +
    +.fa.fa-rub:before {
    +  content: "\f158"; }
    +
    +.fa.fa-ruble:before {
    +  content: "\f158"; }
    +
    +.fa.fa-rouble:before {
    +  content: "\f158"; }
    +
    +.fa.fa-krw:before {
    +  content: "\f159"; }
    +
    +.fa.fa-won:before {
    +  content: "\f159"; }
    +
    +.fa.fa-btc {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bitcoin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bitcoin:before {
    +  content: "\f15a"; }
    +
    +.fa.fa-file-text:before {
    +  content: "\f15c"; }
    +
    +.fa.fa-sort-alpha-asc:before {
    +  content: "\f15d"; }
    +
    +.fa.fa-sort-alpha-desc:before {
    +  content: "\f15e"; }
    +
    +.fa.fa-sort-amount-asc:before {
    +  content: "\f160"; }
    +
    +.fa.fa-sort-amount-desc:before {
    +  content: "\f161"; }
    +
    +.fa.fa-sort-numeric-asc:before {
    +  content: "\f162"; }
    +
    +.fa.fa-sort-numeric-desc:before {
    +  content: "\f163"; }
    +
    +.fa.fa-youtube-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-youtube {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-xing {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-xing-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-youtube-play {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-youtube-play:before {
    +  content: "\f167"; }
    +
    +.fa.fa-dropbox {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-stack-overflow {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-instagram {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-flickr {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-adn {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bitbucket {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bitbucket-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bitbucket-square:before {
    +  content: "\f171"; }
    +
    +.fa.fa-tumblr {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-tumblr-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-long-arrow-down:before {
    +  content: "\f309"; }
    +
    +.fa.fa-long-arrow-up:before {
    +  content: "\f30c"; }
    +
    +.fa.fa-long-arrow-left:before {
    +  content: "\f30a"; }
    +
    +.fa.fa-long-arrow-right:before {
    +  content: "\f30b"; }
    +
    +.fa.fa-apple {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-windows {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-android {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-linux {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-dribbble {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-skype {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-foursquare {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-trello {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gratipay {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gittip {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gittip:before {
    +  content: "\f184"; }
    +
    +.fa.fa-sun-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-sun-o:before {
    +  content: "\f185"; }
    +
    +.fa.fa-moon-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-moon-o:before {
    +  content: "\f186"; }
    +
    +.fa.fa-vk {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-weibo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-renren {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pagelines {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-stack-exchange {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-arrow-circle-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-arrow-circle-o-right:before {
    +  content: "\f35a"; }
    +
    +.fa.fa-arrow-circle-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-arrow-circle-o-left:before {
    +  content: "\f359"; }
    +
    +.fa.fa-caret-square-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-caret-square-o-left:before {
    +  content: "\f191"; }
    +
    +.fa.fa-toggle-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-toggle-left:before {
    +  content: "\f191"; }
    +
    +.fa.fa-dot-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-dot-circle-o:before {
    +  content: "\f192"; }
    +
    +.fa.fa-vimeo-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-try:before {
    +  content: "\f195"; }
    +
    +.fa.fa-turkish-lira:before {
    +  content: "\f195"; }
    +
    +.fa.fa-plus-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-plus-square-o:before {
    +  content: "\f0fe"; }
    +
    +.fa.fa-slack {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wordpress {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-openid {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-institution:before {
    +  content: "\f19c"; }
    +
    +.fa.fa-bank:before {
    +  content: "\f19c"; }
    +
    +.fa.fa-mortar-board:before {
    +  content: "\f19d"; }
    +
    +.fa.fa-yahoo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-reddit {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-reddit-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-stumbleupon-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-stumbleupon {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-delicious {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-digg {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pied-piper-pp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pied-piper-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-drupal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-joomla {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-spoon:before {
    +  content: "\f2e5"; }
    +
    +.fa.fa-behance {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-behance-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-steam {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-steam-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-automobile:before {
    +  content: "\f1b9"; }
    +
    +.fa.fa-cab:before {
    +  content: "\f1ba"; }
    +
    +.fa.fa-envelope-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-envelope-o:before {
    +  content: "\f0e0"; }
    +
    +.fa.fa-deviantart {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-soundcloud {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-file-pdf-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-pdf-o:before {
    +  content: "\f1c1"; }
    +
    +.fa.fa-file-word-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-word-o:before {
    +  content: "\f1c2"; }
    +
    +.fa.fa-file-excel-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-excel-o:before {
    +  content: "\f1c3"; }
    +
    +.fa.fa-file-powerpoint-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-powerpoint-o:before {
    +  content: "\f1c4"; }
    +
    +.fa.fa-file-image-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-image-o:before {
    +  content: "\f1c5"; }
    +
    +.fa.fa-file-photo-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-photo-o:before {
    +  content: "\f1c5"; }
    +
    +.fa.fa-file-picture-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-picture-o:before {
    +  content: "\f1c5"; }
    +
    +.fa.fa-file-archive-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-archive-o:before {
    +  content: "\f1c6"; }
    +
    +.fa.fa-file-zip-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-zip-o:before {
    +  content: "\f1c6"; }
    +
    +.fa.fa-file-audio-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-audio-o:before {
    +  content: "\f1c7"; }
    +
    +.fa.fa-file-sound-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-sound-o:before {
    +  content: "\f1c7"; }
    +
    +.fa.fa-file-video-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-video-o:before {
    +  content: "\f1c8"; }
    +
    +.fa.fa-file-movie-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-movie-o:before {
    +  content: "\f1c8"; }
    +
    +.fa.fa-file-code-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-file-code-o:before {
    +  content: "\f1c9"; }
    +
    +.fa.fa-vine {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-codepen {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-jsfiddle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-life-ring {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-life-bouy {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-life-bouy:before {
    +  content: "\f1cd"; }
    +
    +.fa.fa-life-buoy {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-life-buoy:before {
    +  content: "\f1cd"; }
    +
    +.fa.fa-life-saver {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-life-saver:before {
    +  content: "\f1cd"; }
    +
    +.fa.fa-support {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-support:before {
    +  content: "\f1cd"; }
    +
    +.fa.fa-circle-o-notch:before {
    +  content: "\f1ce"; }
    +
    +.fa.fa-rebel {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ra {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ra:before {
    +  content: "\f1d0"; }
    +
    +.fa.fa-resistance {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-resistance:before {
    +  content: "\f1d0"; }
    +
    +.fa.fa-empire {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ge {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ge:before {
    +  content: "\f1d1"; }
    +
    +.fa.fa-git-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-git {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-hacker-news {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-y-combinator-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-y-combinator-square:before {
    +  content: "\f1d4"; }
    +
    +.fa.fa-yc-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-yc-square:before {
    +  content: "\f1d4"; }
    +
    +.fa.fa-tencent-weibo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-qq {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-weixin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wechat {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wechat:before {
    +  content: "\f1d7"; }
    +
    +.fa.fa-send:before {
    +  content: "\f1d8"; }
    +
    +.fa.fa-paper-plane-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-paper-plane-o:before {
    +  content: "\f1d8"; }
    +
    +.fa.fa-send-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-send-o:before {
    +  content: "\f1d8"; }
    +
    +.fa.fa-circle-thin {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-circle-thin:before {
    +  content: "\f111"; }
    +
    +.fa.fa-header:before {
    +  content: "\f1dc"; }
    +
    +.fa.fa-sliders:before {
    +  content: "\f1de"; }
    +
    +.fa.fa-futbol-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-futbol-o:before {
    +  content: "\f1e3"; }
    +
    +.fa.fa-soccer-ball-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-soccer-ball-o:before {
    +  content: "\f1e3"; }
    +
    +.fa.fa-slideshare {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-twitch {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-yelp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-newspaper-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-newspaper-o:before {
    +  content: "\f1ea"; }
    +
    +.fa.fa-paypal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-wallet {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-visa {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-mastercard {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-discover {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-amex {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-paypal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-stripe {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bell-slash-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-bell-slash-o:before {
    +  content: "\f1f6"; }
    +
    +.fa.fa-trash:before {
    +  content: "\f2ed"; }
    +
    +.fa.fa-copyright {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-eyedropper:before {
    +  content: "\f1fb"; }
    +
    +.fa.fa-area-chart:before {
    +  content: "\f1fe"; }
    +
    +.fa.fa-pie-chart:before {
    +  content: "\f200"; }
    +
    +.fa.fa-line-chart:before {
    +  content: "\f201"; }
    +
    +.fa.fa-lastfm {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-lastfm-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ioxhost {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-angellist {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-cc:before {
    +  content: "\f20a"; }
    +
    +.fa.fa-ils:before {
    +  content: "\f20b"; }
    +
    +.fa.fa-shekel:before {
    +  content: "\f20b"; }
    +
    +.fa.fa-sheqel:before {
    +  content: "\f20b"; }
    +
    +.fa.fa-meanpath {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-meanpath:before {
    +  content: "\f2b4"; }
    +
    +.fa.fa-buysellads {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-connectdevelop {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-dashcube {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-forumbee {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-leanpub {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-sellsy {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-shirtsinbulk {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-simplybuilt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-skyatlas {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-diamond {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-diamond:before {
    +  content: "\f3a5"; }
    +
    +.fa.fa-intersex:before {
    +  content: "\f224"; }
    +
    +.fa.fa-facebook-official {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-facebook-official:before {
    +  content: "\f09a"; }
    +
    +.fa.fa-pinterest-p {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-whatsapp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-hotel:before {
    +  content: "\f236"; }
    +
    +.fa.fa-viacoin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-medium {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-y-combinator {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-yc {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-yc:before {
    +  content: "\f23b"; }
    +
    +.fa.fa-optin-monster {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-opencart {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-expeditedssl {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-battery-4:before {
    +  content: "\f240"; }
    +
    +.fa.fa-battery:before {
    +  content: "\f240"; }
    +
    +.fa.fa-battery-3:before {
    +  content: "\f241"; }
    +
    +.fa.fa-battery-2:before {
    +  content: "\f242"; }
    +
    +.fa.fa-battery-1:before {
    +  content: "\f243"; }
    +
    +.fa.fa-battery-0:before {
    +  content: "\f244"; }
    +
    +.fa.fa-object-group {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-object-ungroup {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-sticky-note-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-sticky-note-o:before {
    +  content: "\f249"; }
    +
    +.fa.fa-cc-jcb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-cc-diners-club {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-clone {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hourglass-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hourglass-o:before {
    +  content: "\f254"; }
    +
    +.fa.fa-hourglass-1:before {
    +  content: "\f251"; }
    +
    +.fa.fa-hourglass-2:before {
    +  content: "\f252"; }
    +
    +.fa.fa-hourglass-3:before {
    +  content: "\f253"; }
    +
    +.fa.fa-hand-rock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-rock-o:before {
    +  content: "\f255"; }
    +
    +.fa.fa-hand-grab-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-grab-o:before {
    +  content: "\f255"; }
    +
    +.fa.fa-hand-paper-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-paper-o:before {
    +  content: "\f256"; }
    +
    +.fa.fa-hand-stop-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-stop-o:before {
    +  content: "\f256"; }
    +
    +.fa.fa-hand-scissors-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-scissors-o:before {
    +  content: "\f257"; }
    +
    +.fa.fa-hand-lizard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-lizard-o:before {
    +  content: "\f258"; }
    +
    +.fa.fa-hand-spock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-spock-o:before {
    +  content: "\f259"; }
    +
    +.fa.fa-hand-pointer-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-pointer-o:before {
    +  content: "\f25a"; }
    +
    +.fa.fa-hand-peace-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-hand-peace-o:before {
    +  content: "\f25b"; }
    +
    +.fa.fa-registered {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-creative-commons {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gg {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gg-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-tripadvisor {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-odnoklassniki {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-odnoklassniki-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-get-pocket {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wikipedia-w {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-safari {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-chrome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-firefox {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-opera {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-internet-explorer {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-television:before {
    +  content: "\f26c"; }
    +
    +.fa.fa-contao {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-500px {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-amazon {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-plus-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-plus-o:before {
    +  content: "\f271"; }
    +
    +.fa.fa-calendar-minus-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-minus-o:before {
    +  content: "\f272"; }
    +
    +.fa.fa-calendar-times-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-times-o:before {
    +  content: "\f273"; }
    +
    +.fa.fa-calendar-check-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-calendar-check-o:before {
    +  content: "\f274"; }
    +
    +.fa.fa-map-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-map-o:before {
    +  content: "\f279"; }
    +
    +.fa.fa-commenting {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-commenting:before {
    +  content: "\f4ad"; }
    +
    +.fa.fa-commenting-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-commenting-o:before {
    +  content: "\f4ad"; }
    +
    +.fa.fa-houzz {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-vimeo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-vimeo:before {
    +  content: "\f27d"; }
    +
    +.fa.fa-black-tie {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-fonticons {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-reddit-alien {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-edge {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-credit-card-alt:before {
    +  content: "\f09d"; }
    +
    +.fa.fa-codiepie {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-modx {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-fort-awesome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-usb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-product-hunt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-mixcloud {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-scribd {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pause-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-pause-circle-o:before {
    +  content: "\f28b"; }
    +
    +.fa.fa-stop-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-stop-circle-o:before {
    +  content: "\f28d"; }
    +
    +.fa.fa-bluetooth {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-bluetooth-b {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-gitlab {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wpbeginner {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wpforms {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-envira {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wheelchair-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wheelchair-alt:before {
    +  content: "\f368"; }
    +
    +.fa.fa-question-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-question-circle-o:before {
    +  content: "\f059"; }
    +
    +.fa.fa-volume-control-phone:before {
    +  content: "\f2a0"; }
    +
    +.fa.fa-asl-interpreting:before {
    +  content: "\f2a3"; }
    +
    +.fa.fa-deafness:before {
    +  content: "\f2a4"; }
    +
    +.fa.fa-hard-of-hearing:before {
    +  content: "\f2a4"; }
    +
    +.fa.fa-glide {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-glide-g {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-signing:before {
    +  content: "\f2a7"; }
    +
    +.fa.fa-viadeo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-viadeo-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-snapchat {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-snapchat-ghost {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-snapchat-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-pied-piper {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-first-order {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-yoast {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-themeisle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus-official {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus-official:before {
    +  content: "\f2b3"; }
    +
    +.fa.fa-google-plus-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-google-plus-circle:before {
    +  content: "\f2b3"; }
    +
    +.fa.fa-font-awesome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-fa {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-fa:before {
    +  content: "\f2b4"; }
    +
    +.fa.fa-handshake-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-handshake-o:before {
    +  content: "\f2b5"; }
    +
    +.fa.fa-envelope-open-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-envelope-open-o:before {
    +  content: "\f2b6"; }
    +
    +.fa.fa-linode {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-address-book-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-address-book-o:before {
    +  content: "\f2b9"; }
    +
    +.fa.fa-vcard:before {
    +  content: "\f2bb"; }
    +
    +.fa.fa-address-card-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-address-card-o:before {
    +  content: "\f2bb"; }
    +
    +.fa.fa-vcard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-vcard-o:before {
    +  content: "\f2bb"; }
    +
    +.fa.fa-user-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-user-circle-o:before {
    +  content: "\f2bd"; }
    +
    +.fa.fa-user-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-user-o:before {
    +  content: "\f007"; }
    +
    +.fa.fa-id-badge {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-drivers-license:before {
    +  content: "\f2c2"; }
    +
    +.fa.fa-id-card-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-id-card-o:before {
    +  content: "\f2c2"; }
    +
    +.fa.fa-drivers-license-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-drivers-license-o:before {
    +  content: "\f2c2"; }
    +
    +.fa.fa-quora {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-free-code-camp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-telegram {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-thermometer-4:before {
    +  content: "\f2c7"; }
    +
    +.fa.fa-thermometer:before {
    +  content: "\f2c7"; }
    +
    +.fa.fa-thermometer-3:before {
    +  content: "\f2c8"; }
    +
    +.fa.fa-thermometer-2:before {
    +  content: "\f2c9"; }
    +
    +.fa.fa-thermometer-1:before {
    +  content: "\f2ca"; }
    +
    +.fa.fa-thermometer-0:before {
    +  content: "\f2cb"; }
    +
    +.fa.fa-bathtub:before {
    +  content: "\f2cd"; }
    +
    +.fa.fa-s15:before {
    +  content: "\f2cd"; }
    +
    +.fa.fa-window-maximize {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-window-restore {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-times-rectangle:before {
    +  content: "\f410"; }
    +
    +.fa.fa-window-close-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-window-close-o:before {
    +  content: "\f410"; }
    +
    +.fa.fa-times-rectangle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-times-rectangle-o:before {
    +  content: "\f410"; }
    +
    +.fa.fa-bandcamp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-grav {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-etsy {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-imdb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-ravelry {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-eercast {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-eercast:before {
    +  content: "\f2da"; }
    +
    +.fa.fa-snowflake-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400; }
    +
    +.fa.fa-snowflake-o:before {
    +  content: "\f2dc"; }
    +
    +.fa.fa-superpowers {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-wpexplorer {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    +
    +.fa.fa-spotify {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400; }
    diff --git a/htdocs/theme/common/fontawesome-5/css/v4-shims.min.css b/htdocs/theme/common/fontawesome-5/css/v4-shims.min.css
    new file mode 100644
    index 00000000000..1593a3548e4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/css/v4-shims.min.css
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f15e"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f161"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f163"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-spotify,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400}
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/js/all.js b/htdocs/theme/common/fontawesome-5/js/all.js
    new file mode 100644
    index 00000000000..1399e167d42
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/all.js
    @@ -0,0 +1,3735 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +(function () {
    +'use strict';
    +
    +var _WINDOW = {};
    +try {
    +  if (typeof window !== 'undefined') _WINDOW = window;
    +  
    +} catch (e) {}
    +
    +var _ref = _WINDOW.navigator || {};
    +var _ref$userAgent = _ref.userAgent;
    +var userAgent = _ref$userAgent === undefined ? '' : _ref$userAgent;
    +
    +var WINDOW = _WINDOW;
    +
    +
    +
    +
    +
    +var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
    +
    +var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +var PRODUCTION = function () {
    +  try {
    +    return "production" === 'production';
    +  } catch (e) {
    +    return false;
    +  }
    +}();
    +
    +var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    +var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
    +
    +
    +
    +var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter'].concat(oneToTen.map(function (n) {
    +  return n + 'x';
    +})).concat(oneToTwenty.map(function (n) {
    +  return 'w-' + n;
    +}));
    +
    +function bunker(fn) {
    +  try {
    +    fn();
    +  } catch (e) {
    +    if (!PRODUCTION) {
    +      throw e;
    +    }
    +  }
    +}
    +
    +var w = WINDOW || {};
    +
    +if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
    +if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
    +if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
    +if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
    +
    +var namespace = w[NAMESPACE_IDENTIFIER];
    +
    +var _extends = Object.assign || function (target) {
    +  for (var i = 1; i < arguments.length; i++) {
    +    var source = arguments[i];
    +
    +    for (var key in source) {
    +      if (Object.prototype.hasOwnProperty.call(source, key)) {
    +        target[key] = source[key];
    +      }
    +    }
    +  }
    +
    +  return target;
    +};
    +
    +function define(prefix, icons) {
    +  var normalized = Object.keys(icons).reduce(function (acc, iconName) {
    +    var icon = icons[iconName];
    +    var expanded = !!icon.icon;
    +
    +    if (expanded) {
    +      acc[icon.iconName] = icon.icon;
    +    } else {
    +      acc[iconName] = icon;
    +    }
    +    return acc;
    +  }, {});
    +
    +  if (typeof namespace.hooks.addPack === 'function') {
    +    namespace.hooks.addPack(prefix, normalized);
    +  } else {
    +    namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, normalized);
    +  }
    +
    +  /**
    +   * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
    +   * of new styles we needed to differentiate between them. Prefix `fa` is now an alias
    +   * for `fas` so we'll easy the upgrade process for our users by automatically defining
    +   * this as well.
    +   */
    +  if (prefix === 'fas') {
    +    define('fa', icons);
    +  }
    +}
    +
    +var icons = {
    +  "500px": [448, 512, [], "f26e", "M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"],
    +  "accessible-icon": [448, 512, [], "f368", "M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"],
    +  "accusoft": [640, 512, [], "f369", "M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2.7 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2 23.4-2.4 1.3-114.6 47.7-117.8 48.9-10.1 4-17.5 6.8-30.8-9.3m114.7-5.6s-115 50.4-117.5 51.6c-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2-2.3-.3-24.6-4.7-38-7.2m-326-181.3s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3v-1l-51.2-65.8"],
    +  "acquisitions-incorporated": [344, 512, [], "f6af", "M344 0c-.81 5.47-1.63 10.79-2.39 16.12-1.39 9.74-2.9 19.48-4.05 29.25-.35 2.96-1.21 4.32-4.3 4.33-20.61.11-41.21.14-61.82.53-18.76.35-37.58.28-56.23 2-13.42 1.24-23.28 12.67-18.88 26.64 8.55 27.11 27.65 69.1 36.37 89.45 65.72 154.14 61.43 156.99 84 158.56 6.67.46 13.4.07 20.43.07 1.39 9.4 2.66 18.04 4.05 27.51H225.17v-27c10.33 0 20.36-.12 30.38.06 3.52.06 5.05-.63 3.44-4.37-4.44-10.29-8.77-20.63-13.25-30.9-1.62-3.72-4.06-4.78-8.4-3.52-12.32 3.59-24.79 6.69-37.26 9.69-4.25 1.02-5.93 2.77-5.86 7.46.85 57.47.95 127.53 1 129.12.4 12.54 8.75 21.41 21.03 23.07.89.12 12.89 2.72 112.68 2.56 8.25-.01 8.41-.17 9.57 7.56 2.15 14.34 4.14 28.7 6.26 43.53-367.75 0-153.93.61-337.09 0-3.95-.01-6.08-.69-5.28-5.74 2.04-12.86 3.5-25.82 4.97-38.76.55-4.81 2.29-6.81 7.63-6.77 118.09.99 114.93.35 121.43-2.39 9.42-3.98 14.98-12.85 14.95-23.07-.12-42.93-.33-85.86-.25-128.79.01-3.87-1.16-5.99-4.56-6.84-15.64-3.92-31.31-7.71-47.58-11.7-5.23 12.27-10.39 24.37-15.66 36.7 1.83 3.35 28.38 2.93 35.28 2.93v27.64H4.34c1.03-8.61 1.77-16.81 3.23-24.88.25-1.41 3.53-3.14 5.47-3.22 8.46-.35 16.95-.29 25.43-.09 3.99.09 5.92-1.04 7.61-5.16 16.63-40.7 13.51-31.17 67.31-160.97 31.53-76.09 33.06-76.02 32.64-87.43-.69-18.56-25.37-22.26-37.65-22.11-30.04.38-38.45-.47-101.84-.47C-.62 6.11 2.37 18.54.16 5.32-.55 1.08 1.19.03 4.8.02m113.08 247.19c2.3 1.15 3.97 2.29 5.82 2.87 13.29 4.21 26.64 8.24 39.93 12.46 6.14 1.95 11.98 2.12 18.3.05 13.02-4.28 26.29-7.81 39.43-11.73 1.46-.44 2.74-1.44 3.93-2.09-6.71-17.37-13.12-34.15-19.67-50.88-8.88-22.67-17.63-60.32-26.98-82.81-1.53-.78-1.91 2.36-9.43 0-17.11 44.05-34.14 87.88-51.33 132.13z"],
    +  "adn": [496, 512, [], "f170", "M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"],
    +  "adversal": [512, 512, [], "f36a", "M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"],
    +  "affiliatetheme": [512, 512, [], "f36b", "M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"],
    +  "algolia": [448, 512, [], "f36c", "M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z"],
    +  "alipay": [448, 512, [], "f642", "M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"],
    +  "amazon": [448, 512, [], "f270", "M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"],
    +  "amazon-pay": [611, 512, [], "f42c", "M0 325.2c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.7 20.4 83.2 35.6 127.4 46.3 20.9 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.4-6.7 110.9-20.8 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-2.8 2.8-6.3 5.1-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.6 7.9-49.6 13.8-75.1 17.6-17.6 2.6-35.4 4.4-53.2 4.8-.8 0-1.7.2-2.5.3H294c-.8-.1-1.7-.3-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.7-33.7-2.6-50.4-5.3-27.4-4.5-54.2-11.4-80.4-20.9-54.1-19.6-102.6-48.6-145.6-87-1.8-1.6-3-3.8-4.4-5.7v-2zM158 65c-1.4.2-2.9.4-4.3.6-14 1.7-26.6 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.5-.4-1-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6H87.8c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3V215c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zm-47.4 41.9c0-1.5.4-2.4 1.7-3.3 13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-1.2-.9-1.7-1.7-1.7-3.3.1-14.1 0-28.1 0-42.2 0-14 .1-28 0-42.1zM316.3 65c-1 .1-2 .3-2.9.4-9.8.5-19.4 1.7-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9 0 .4-.1.9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.5-21.1-4.3-32-4.9-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4.4-.4.9-.7 1.6-1.1.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0 2.7-.1 4.5-1.9 4.8-4.7.1-.9.1-1.9.1-2.8v-106c0-4.3-.2-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7c0 1.3-.4 2.2-1.5 3-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8-6.3-2.5-10.4-6.9-12.4-13.3s-2-13-.1-19.4c2.5-8.3 8.4-13 16.4-15.6 8.1-2.6 16.5-3 24.8-2.2 8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3-.1 4.7-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3-6.8-2.3-13.9-3.3-21-3.9-13.1-1.1-26.2-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 1-2.8 2.1-3.7 3.5-.7 1.1-.9 2.8-.5 4 .4 1.5 2.1 1.9 3.6 1.8.7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.8.3 9.7 1.4 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.7-.4 3.6-1.3 4.8-2.5 4.4-4.3 8.9-8.6 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM479.1 198.9c-12.9-35.7-25.8-71.5-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5.5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97.1 59.1 145.5 1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5.1 1.4-10.2 1.6-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9.1 5.5 2 8 7.4 8.9 5.6 1 11.3 1.9 16.9 2 17.1.4 30.7-6.5 39.5-21.4 3.5-5.9 6.7-12.1 9.2-18.4 23.7-59.8 47.1-119.7 70.6-179.6.7-1.8 1.3-3.6 1.6-5.5.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-3.7 0-6.3 1.6-7.7 5.2-.5 1.4-1.1 2.7-1.6 4.1-11.6 33.3-23.2 66.6-34.8 100-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"],
    +  "amilia": [448, 512, [], "f36d", "M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm-87.9 327.7c0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5V380c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7"],
    +  "android": [448, 512, [], "f17b", "M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z"],
    +  "angellist": [448, 512, [], "f209", "M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"],
    +  "angrycreative": [640, 512, [], "f36e", "M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"],
    +  "angular": [415, 512, [], "f420", "M169.7 268.1h76.2l-38.1-91.6-38.1 91.6zM207.8 32L0 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7L207.8 32zM338 373.8h-48.6l-26.2-65.4H152.6l-26.2 65.4H77.7L207.8 81.5 338 373.8z"],
    +  "app-store": [512, 512, [], "f36f", "M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z"],
    +  "app-store-ios": [448, 512, [], "f370", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"],
    +  "apper": [640, 512, [], "f371", "M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z"],
    +  "apple": [376, 512, [], "f179", "M314.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C59.3 141.2 0 184.8 0 273.5c0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"],
    +  "apple-pay": [640, 512, [], "f415", "M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z"],
    +  "asymmetrik": [576, 512, [], "f372", "M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"],
    +  "audible": [640, 512, [], "f373", "M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z"],
    +  "autoprefixer": [640, 512, [], "f41c", "M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z"],
    +  "avianex": [512, 512, [], "f374", "M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"],
    +  "aviato": [640, 512, [], "f421", "M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"],
    +  "aws": [640, 512, [], "f375", "M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z"],
    +  "bandcamp": [496, 512, [], "f2d5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z"],
    +  "behance": [576, 512, [], "f1b4", "M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z"],
    +  "behance-square": [448, 512, [], "f1b5", "M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z"],
    +  "bimobject": [448, 512, [], "f378", "M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z"],
    +  "bitbucket": [512, 512, [], "f171", "M23.1 32C14.2 31.9 7 38.9 6.9 47.8c0 .9.1 1.8.2 2.8L74.9 462c1.7 10.4 10.7 18 21.2 18.1h325.1c7.9.1 14.7-5.6 16-13.4l67.8-416c1.4-8.7-4.5-16.9-13.2-18.3-.9-.1-1.8-.2-2.8-.2L23.1 32zm285.3 297.3H204.6l-28.1-146.8h157l-25.1 146.8z"],
    +  "bitcoin": [512, 512, [], "f379", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z"],
    +  "bity": [496, 512, [], "f37a", "M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z"],
    +  "black-tie": [448, 512, [], "f27e", "M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z"],
    +  "blackberry": [512, 512, [], "f37b", "M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z"],
    +  "blogger": [448, 512, [], "f37c", "M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"],
    +  "blogger-b": [448, 512, [], "f37d", "M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"],
    +  "bluetooth": [448, 512, [], "f293", "M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"],
    +  "bluetooth-b": [320, 512, [], "f294", "M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"],
    +  "btc": [384, 512, [], "f15a", "M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"],
    +  "buromobelexperte": [448, 512, [], "f37f", "M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"],
    +  "buysellads": [448, 512, [], "f20d", "M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"],
    +  "cc-amazon-pay": [576, 512, [], "f42d", "M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"],
    +  "cc-amex": [576, 512, [], "f1f3", "M576 255.4c-37.9-.2-44.2-.9-54.5 5v-5c-45.3 0-53.5-1.7-64.9 5.2v-5.2h-78.2v5.1c-11.4-6.5-21.4-5.1-75.7-5.1v5.6c-6.3-3.7-14.5-5.6-24.3-5.6h-58c-3.5 3.8-12.5 13.7-15.7 17.2-12.7-14.1-10.5-11.6-15.5-17.2h-83.1v92.3h82c3.3-3.5 12.9-13.9 16.1-17.4 12.7 14.3 10.3 11.7 15.4 17.4h48.9c0-14.7.1-8.3.1-23 11.5.2 24.3-.2 34.3-6.2 0 13.9-.1 17.1-.1 29.2h39.6c0-18.5.1-7.4.1-25.3 6.2 0 7.7 0 9.4.1.1 1.3 0 0 0 25.2 152.8 0 145.9 1.1 156.7-4.5v4.5c34.8 0 54.8 2.2 67.5-6.1V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V228.3h26.6c4.2-10.1 2.2-5.3 6.4-15.3h19.2c4.2 10 2.2 5.2 6.4 15.3h52.9v-11.4c2.2 5 1.1 2.5 5.1 11.4h29.5c2.4-5.5 2.6-5.8 5.1-11.4v11.4h135.5v-25.1c6.4 0 8-.1 9.8.2 0 0-.2 10.9.1 24.8h66.5v-8.9c7.4 5.9 17.4 8.9 29.7 8.9h26.8c4.2-10.1 2.2-5.3 6.4-15.3h19c6.5 15 .2.5 6.6 15.3h52.8v-21.9c11.8 19.7 7.8 12.9 13.2 21.9h41.6v-92h-39.9v18.4c-12.2-20.2-6.3-10.4-11.2-18.4h-43.3v20.6c-6.2-14.6-4.6-10.8-8.8-20.6h-32.4c-.4 0-2.3.2-2.3-.3h-27.6c-12.8 0-23.1 3.2-30.7 9.3v-9.3h-39.9v5.3c-10.8-6.1-20.7-5.1-64.4-5.3-.1 0-11.6-.1-11.6 0h-103c-2.5 6.1-6.8 16.4-12.6 30-2.8-6-11-23.8-13.9-30h-46V157c-7.4-17.4-4.7-11-9-21.1H22.9c-3.4 7.9-13.7 32-23.1 53.9V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48v175.4zm-186.6-80.6c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm-19.9 130.9c9.2 3.3 11 9.5 11 18.4l-.1 13.8h-16.6l.1-11.5c0-11.8-3.8-13.8-14.8-13.8h-17.6l-.1 25.3h-16.6l.1-69.3h39.4c13 0 27.1 2.3 27.1 18.7-.1 7.6-4.2 15.3-11.9 18.4zm-6.3-15.4c0-6.4-5.6-7.4-10.7-7.4h-21v15.6h20.7c5.6 0 11-1.3 11-8.2zm181.7-7.1H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-99.2-.3v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5h38.5zm42.2 40.1h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-78.1-158.7c-17.4-.3-33.2-4.1-33.2 19.7 0 11.8 2.8 19.9 16.1 19.9h7.4l23.5-54.5h24.8l27.9 65.4v-65.4h25.3l29.1 48.1v-48.1h16.9v69H524l-31.2-51.9v51.9h-33.7l-6.6-15.3h-34.3l-6.4 15.3h-19.2c-22.8 0-33-11.8-33-34 0-23.3 10.5-35.3 34-35.3h16.1v15.2zm14.3 24.5h22.8l-11.2-27.6-11.6 27.6zm-72.6-39.6h-16.9v69.3h16.9v-69.3zm-38.1 37.3c9.5 3.3 11 9.2 11 18.4v13.5h-16.6c-.3-14.8 3.6-25.1-14.8-25.1h-18v25.1h-16.4v-69.3l39.1.3c13.3 0 27.4 2 27.4 18.4.1 8-4.3 15.7-11.7 18.7zm-6.7-15.3c0-6.4-5.6-7.4-10.7-7.4h-21v15.3h20.7c5.7 0 11-1.3 11-7.9zm-59.5-7.4v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5h38.9zm-84.6 54.7v-54.2l-24 54.2H124l-24-54.2v54.2H66.2l-6.4-15.3H25.3l-6.4 15.3H1l29.7-69.3h24.5l28.1 65.7v-65.7h27.1l21.7 47 19.7-47h27.6v69.3h-16.8zM53.9 188.8l-11.5-27.6-11.2 27.6h22.7zm253 102.5c0 27.9-30.4 23.3-49.3 23.3l-.1 23.3h-32.2l-20.4-23-21.3 23h-65.4l.1-69.3h66.5l20.5 22.8 21-22.8H279c15.6 0 27.9 5.4 27.9 22.7zm-112.7 11.8l-17.9-20.2h-41.7v12.5h36.3v14.1h-36.3v13.8h40.6l19-20.2zM241 276l-25.3 27.4 25.3 28.1V276zm48.3 15.3c0-6.1-4.6-8.4-10.2-8.4h-21.5v17.6h21.2c5.9 0 10.5-2.8 10.5-9.2z"],
    +  "cc-apple-pay": [576, 512, [], "f416", "M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"],
    +  "cc-diners-club": [576, 512, [], "f24c", "M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"],
    +  "cc-discover": [576, 512, [], "f1f2", "M83 212.1c0 7.9-3.2 15.5-8.9 20.7-4.9 4.4-11.6 6.4-21.9 6.4H48V185h4.2c10.3 0 16.7 1.7 21.9 6.6 5.7 5 8.9 12.6 8.9 20.5zM504.8 184h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8 0-7.9-5.5-12.1-15.6-12.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM428 253h45.3v-13.8H444V217h28.3v-13.8H444V185h29.3v-14H428v82zm-86.2-82l35 84.2h8.6l35.5-84.2h-17.5l-22.2 55.2-21.9-55.2h-17.5zm-83 41.6c0 24.6 19.9 44.6 44.6 44.6 24.6 0 44.6-19.9 44.6-44.6 0-24.6-19.9-44.6-44.6-44.6-24.6 0-44.6 19.9-44.6 44.6zm-68-.5c0 32.5 33.6 52.5 63.3 38.2v-19c-19.3 19.3-46.8 5.8-46.8-19.2 0-23.7 26.7-39.1 46.8-19v-19c-30.2-15-63.3 6.8-63.3 38zm-33.9 28.3c-7.6 0-13.8-3.7-17.5-10.8l-10.3 9.9c17.8 26.1 56.6 18.2 56.6-11.3 0-13.1-5.4-19-23.6-25.6-9.6-3.4-12.3-5.9-12.3-10.3 0-8.7 14.5-14.1 24.9-2.5l8.4-10.8c-19.1-17.1-49.7-8.9-49.7 14.3 0 11.3 5.2 17.2 20.2 22.7 25.7 9.1 14.7 24.4 3.3 24.4zm-57.4-28.3c0-24.1-18-41.1-44.1-41.1H32v82h23.4c30.9 0 44.1-22.4 44.1-40.9zm23.4-41.1h-16v82h16v-82zM544 288c-33.3 20.8-226.4 124.4-416 160h401c8.2 0 15-6.8 15-15V288zm0-35l-25.9-34.5c12.1-2.5 18.7-10.6 18.7-23.2 0-28.5-30.3-24.4-52.9-24.4v82h16v-32.8h2.2l22.2 32.8H544z"],
    +  "cc-jcb": [576, 512, [], "f24b", "M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z"],
    +  "cc-mastercard": [576, 512, [], "f1f1", "M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z"],
    +  "cc-paypal": [576, 512, [], "f1f4", "M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"],
    +  "cc-stripe": [576, 512, [], "f1f5", "M396.9 256.5c0 19.1-8.8 33.4-21.9 33.4-8.3 0-13.3-3-16.8-6.7l-.2-52.8c3.7-4.1 8.8-7 17-7 12.9-.1 21.9 14.5 21.9 33.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM122.2 281.1c0-42.3-54.3-34.7-54.3-50.7 0-5.5 4.6-7.7 12.1-7.7 10.8 0 24.5 3.3 35.3 9.1v-33.4c-11.8-4.7-23.5-6.5-35.3-6.5-28.8 0-48 15-48 40.2 0 39.3 54 32.9 54 49.9 0 6.6-5.7 8.7-13.6 8.7-11.8 0-26.9-4.9-38.9-11.3v33.9c13.2 5.7 26.6 8.1 38.8 8.1 29.6-.2 49.9-14.7 49.9-40.3zm68.9-86.9h-27v-30.8l-34.7 7.4-.2 113.9c0 21 15.8 36.5 36.9 36.5 11.6 0 20.2-2.1 24.9-4.7v-28.9c-4.5 1.8-27 8.3-27-12.6v-50.5h27v-30.3zm73.8 0c-4.7-1.7-21.3-4.8-29.6 10.5l-2.2-10.5h-30.7v124.5h35.5v-84.4c8.4-11 22.6-8.9 27.1-7.4v-32.7zm44.2 0h-35.7v124.5h35.7V194.2zm0-47.3l-35.7 7.6v28.9l35.7-7.6v-28.9zm122.7 108.8c0-41.3-23.5-63.8-48.4-63.8-13.9 0-22.9 6.6-27.8 11.1l-1.8-8.8h-31.3V360l35.5-7.5.1-40.2c5.1 3.7 12.7 9 25.1 9 25.4-.1 48.6-20.5 48.6-65.6zm112.2 1.2c0-36.4-17.6-65.1-51.3-65.1-33.8 0-54.3 28.7-54.3 64.9 0 42.8 24.2 64.5 58.8 64.5 17 0 29.7-3.9 39.4-9.2v-28.6c-9.7 4.9-20.8 7.9-34.9 7.9-13.8 0-26-4.9-27.6-21.5h69.5c.1-2 .4-9.4.4-12.9zm-51.6-36.1c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7z"],
    +  "cc-visa": [576, 512, [], "f1f0", "M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z"],
    +  "centercode": [512, 512, [], "f380", "M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"],
    +  "chrome": [496, 512, [], "f268", "M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z"],
    +  "cloudscale": [448, 512, [], "f383", "M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z"],
    +  "cloudsmith": [332, 512, [], "f384", "M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z"],
    +  "cloudversify": [616, 512, [], "f385", "M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z"],
    +  "codepen": [512, 512, [], "f1cb", "M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"],
    +  "codiepie": [472, 512, [], "f284", "M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z"],
    +  "connectdevelop": [576, 512, [], "f20e", "M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z"],
    +  "contao": [512, 512, [], "f26d", "M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z"],
    +  "cpanel": [640, 512, [], "f388", "M52.9 213.7h40l-6.2 23.6c-1.9 6.5-7.4 10.9-14.3 10.9H53.8c-24.9 0-24.7 37.4 0 37.4h11.3c4.2 0 7.6 3.9 6.4 8.3L64.4 320H52c-33.5 0-59-31.4-50.3-65.2 7.3-27 28.3-41.1 51.2-41.1M73.1 320L108 189.9c1.8-6.4 7.2-10.9 14.3-10.9h37c24.1 0 45.4 16.4 51 41.2 6.6 29.1-14.5 65.3-51.7 65.3h-32l6.4-23.8c1.8-6.2 7.3-10.8 14.3-10.8h10.3c12.4 0 20.8-11.7 18.3-22.6-2.1-9.2-9.9-14.8-18.3-14.8h-19.8L112 309.2c-1.9 6.2-7.4 10.7-14.2 10.7l-24.7.1m220.6-69.4c.3-1 1.9-5.3-2.1-5.3h-57.5c-9.7 0-16.6-8.9-14.2-18.5l3.5-13.4h77.9c18.8 0 33.3 17.6 28.5 36.8l-14 51.8c-2.8 10.6-12.2 17.8-23.4 17.8l-57.5-.2c-42.9 0-38.5-63.8.7-63.8H284l-3.5 13.2c-1.9 6.2-7.4 10.8-14.2 10.8h-21.6c-5.3 0-5.3 7.9 0 7.9h34.9c4.6 0 5.1-3.9 5.5-5.3l8.6-31.8m103.1-36.9c34.4 0 59.3 32.3 50.3 65.4l-8.8 33.1c-1.2 4.9-5.7 7.8-10.3 7.8h-19.1c-4.5 0-7.6-4-6.4-8.3l10.6-40c3.3-11.6-5.6-23.4-18.1-23.4h-19.8l-17.2 64c-1.2 4.8-5.6 7.8-10.4 7.8h-18.9c-4.2 0-7.6-3.9-6.4-8.3l26.2-98h48.3M498 251.6l-8 30c-.9 3.3 1.5 6.7 5.1 6.7h73.3l-5.7 21c-1.9 6.2-7.4 10.7-14.2 10.7h-66.7c-20 0-33.3-19-28.3-36.7l10.8-40c4.8-17.6 20.7-29.6 38.6-29.6h47.3c19 0 33.2 17.7 28.3 36.8l-3.2 12c-2.9 11-12.7 17.6-23.2 17.6h-53.4l3.5-13c1.6-6.2 7.2-10.8 14.2-10.8H538c2 0 3.3-1 3.9-3l.7-2.6c.7-2.7-1.3-5.1-3.9-5.1h-32.9c-4.1 0-6.9 2.1-7.8 6zm70.2 68.4l35.6-133.1c1.2-4.7 5.5-7.9 10.4-7.9h18.9c4.5 0 7.7 4 6.5 8.3l-26.5 98.2c-5.1 20.7-24.2 34.5-44.9 34.5"],
    +  "creative-commons": [496, 512, [], "f25e", "M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"],
    +  "creative-commons-by": [496, 512, [], "f4e7", "M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"],
    +  "creative-commons-nc": [496, 512, [], "f4e8", "M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"],
    +  "creative-commons-nc-eu": [496, 512, [], "f4e9", "M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z"],
    +  "creative-commons-nc-jp": [496, 512, [], "f4ea", "M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z"],
    +  "creative-commons-nd": [496, 512, [], "f4eb", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z"],
    +  "creative-commons-pd": [496, 512, [], "f4ec", "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"],
    +  "creative-commons-pd-alt": [496, 512, [], "f4ed", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM135.5 323.3V186h68.2c33.7 0 50.5 15.5 50.5 46.5 0 9-3 46.5-57.1 46.5h-27v44.3h-34.6zm34.1-111.6v41.6h29.2c27.9 0 30-41.6-.9-41.6h-28.3zm93.9 111.6V186h53.2c21.4 0 70 5.2 70 68.6 0 63.5-48.6 68.6-70 68.6h-53.2zm34.1-108.5v79.7h19.9c24 0 34.5-15.3 34.5-39.9 0-42-31.2-39.9-35-39.9l-19.4.1z"],
    +  "creative-commons-remix": [496, 512, [], "f4ee", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z"],
    +  "creative-commons-sa": [496, 512, [], "f4ef", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z"],
    +  "creative-commons-sampling": [496, 512, [], "f4f0", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"],
    +  "creative-commons-sampling-plus": [496, 512, [], "f4f1", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"],
    +  "creative-commons-share": [496, 512, [], "f4f2", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"],
    +  "creative-commons-zero": [496, 512, [], "f4f3", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"],
    +  "critical-role": [445, 512, [], "f6c9", "M224.82 0c.26.15 216.57 124.51 217.12 124.72 3.04 1.18 3.7 3.46 3.7 6.56-.07 83.45-.06 166.9-.01 250.36 0 2.77-.98 4.43-3.38 5.78C420.88 399.41 234.39 505.71 223.32 512h-3C141 466.34 2.08 386.56 1.93 386.48c-1.29-.74-1.96-1.75-1.88-3.24.04-.87-.03-225.94-.05-253.1 0-2.44.89-3.79 2.93-4.93C26.19 112.11 212.2 5.98 223.07 0h1.75zM214.4 20.42l-.22-.16C149.43 57.12 84.69 94 19.95 130.87c.04.12.08.23.13.35 10.19 3.84 20.39 7.69 30.86 11.64-7.71 5.99-8.32 6.03-10.65 5.13-.1-.04-24.17-9.28-26.8-9.99v230.42c.88-1.41 64.07-110.91 64.13-111.01 1.62-2.82 3.03-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 62.99-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13 227.73 0 176.4 0 186.5.03 1.44 0 1.69-.23 1.7-1.64.01-2.96.01-5.92 0-8.88 0-1.34 2.36-.81-18.37-1.01-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1.04 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1-2.27-.66-2.55-4.08.3-4.73 3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9.04 1.1-79.42-.01-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-.97-2-4.84 1.77-4.85 33.67-.03 46.08-1.07 56.06 4.86 7.74 4.61 11.98 11.48 12.51 20.4.88 14.59-6.51 22.35-14.99 32.59-.68.82-.72 1.38-.04 2.22 2.6 3.25 5.05 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1.02-.42 1.01-1.15-.02-3.67.01-7.33-.02-11-.01-1.02.32-1.43 1.41-1.26 12.54 1.91 21.85-.07 23.58-.3 1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62 62.38-.02 125.15-.02 186.71-.02-27.12-47.03-54.11-93.85-81.18-140.81 2.26-.66-.4-.03 6.69-1.39 2.03-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 133.96 77.37 134.06V137.98c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1-.04 95.53-35.85 103.04-38.77C360.69 93.43 295.55 56 230.1 18.4c29.07 50.36 57.95 100.37 86.82 150.39-.09.11-.18.22-.28.33-9.57-.9-10.46-1.6-11.8-3.94-.96-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08 28.83-49.83 57.5-99.42 86.18-149zm51.93 129.92c1.85-.05 3.7-.52 5.54-.85 1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45-.87 1.3-1.88 1.22-2.6-.19-4.96-9.69 6.22-9.66-39.12-12.05-.7-.04-1 .23-.97.93 0 .13 3.72 121.98 3.73 122.11.02.89.52 1.2 1.21 1.51 2.92 1.31 5.96 2.42 8.7 4.05 7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4 1.49-.47 1.95-1.26 1.98-2.66.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23a1361.1 1361.1 0 0 1 3.31-18.03c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73.01 1.78-.08 1.82-1.85.68-27.49.58-22.59.97-29.55.07-1.29-.41-2.17-1.63-2.8-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15-1.66 1.06-2.31 2.33-2.22 4.34.03.59-.11-4.31.98 30.05.03.9.43 1.12 1.24 1.11.1 0 23.01-.09 34.47-.37zM67.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 3.99-.21 4.99-1.16 22.33-1.24 23.15-.1 1.04-.6 1.91-1.63 2.34-4.06 1.7-3.61-4.45-4.01-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17.01 53.63 54.08 50.88 27.24-2.01 19.05-20.19 24.84-20.47 1.98-.1 3.33 1.33 2.98 3.36-1.83 10.85-3.42 18.95-3.45 19.15-1.51 9.18-86.67 22.08-93.35-42.05-2.68-25.87 10.47-53.37 40.3-60.15zm79.99 87.67c-6.5-.03-12.99 0-19.49-.04-1.96-.01-2.78-1.61-2.66-1.79 2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-37.99.23-40.1.03-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-1.98 2.25-4.03 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13 1.22-.12 2.11-.75 2.23-2.12.3-3.42.26 4.73.45-40.58.02-5.65-.34-6.58-3.23-6.83-3.95-.35-4.03-2.26-.69-3.37.12-.04 18.98-.09 19.09-.09.32 0 4.49.53 1.05 3.38-.05.05-.16.03-.24.04-3.61.26-3.94.98-3.96 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49-.04 3.86 3.37-.02 3.4-10.37.08-20.74.03-31.11.07-10.67.04-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 3.99 17.67 4.75-.1 4.73 3.57.83 3.55zm274.97-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31-1.22-.04-2.43-.44-3.63-.73-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19-.38-.98-.94-1.44-2.04-1.44-3.12 0-7.27-.44-14.58.07-.58.04-1.4.55-1.62 1.06-1.58 3.62-3.07 7.29-4.51 10.96-1.27 3.23 7.86 1.32 12.19 2.16 2.97.57 4.53 3.72.66 3.73-8.79.03-17.58.06-26.37.05-2.92 0-3.09-3.15-.74-3.21 2.67-.07 4.74-1.13 5.92-3.47 1.5-2.97 2.8-6.04 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61 1-1.06 2.07-1.05 3.03.04 2.93 3.34 18.4 44.71 23.62 51.92 1.96 2.7 5.74 1.98 6.36 2.01 3.61.13 3.97-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26-.04-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32.01 5.32 2.75-1.21 3.45-1.81.19-2.58 1-2.66 2.83-.07 1.63-.19 38.89.29 41.21.35 1.73 1.73 2.38 3.23 2.43 13.25.43 14.92.44 16.04-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.68 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1.03 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64-.02-1.64 1.52v16.12c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76-.01.21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-1.95 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 5.99 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64-.04.36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3.04.22-3.45 1.1-.19 4.03.54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 8.98-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 21.99 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1.03.1.57 11.89-5.97 12.75-1.6.21-19.38 3.69-32.68-3.39-21.01-11.19-16.74-35.47-6.88-45.33 14.03-14.06 39.91-7.06 42.32-6.47zM288.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-4.97-.42-5 5.46-.01 1.98-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22.03 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-3.96 12.39-5.19 12.4-.1 0-38.08-.18-38.18-.19-1.93-.23-2.06-2.99-.42-3.38 1.99-.48 4.94.4 5.13-2.8.96-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-1.99-3.22.34-3.22 1.47-.02 17.99-.03 23.11-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6.01 3.58 2.61.1 2.53 3.41-.07 3.43-6.48.04-13.7-.02-21.61-.06-3.84-.02-3.38-3.35.04-3.37 4.49-.03 3.24 1.61 3.41-45.54.02-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29-.05 20.19-.41 21.17.21 1.13.72 1.87 1.65-.42 2.86-.99.52-3.86-.28-4.15 2.47-.02.21-.82 1.63-.07 43.8zm-36.91 274.27c1.14.66 2.12.66 3.26 0 16.99-9.79 181.97-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38-.02 2.58-.62 5.22-1.36 7.71-.55 1.83.38-.5-13.5 32.23-.73 1.72-1.04 2.21-1.97-.08-4.19-10.34-8.28-20.72-12.57-31.01-1.46-3.5-2.24-7-2-10.79.16-2.46.8-16.12 1.51-48.02.04-1.95.01-1.96-1.96-1.96h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3.03 11.54 1.17 21.04 3.74 25.64-7.32 6.01-14.46 2.66-34.41-12.48-38.84-2.01-.59-15.96-2.76-15.94 1.51.05 8.01.01 11.58.02 41.62zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2.02 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8 8.43 3.47 17.54.6 22.39-7.07 4.91-7.76 6.84-29.47-5.43-38.96-.12.05-.24.09-.36.12zM222.83 94.78c-9.83-.03-9.73 14.75-.07 14.87 9.59.11 10.1-14.84.07-14.87zm-80.15 103.87c.02 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-10.99 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.31 6.4c-2.03-5.28-4-10.39-6.1-15.84-2.16 5.48-4.16 10.57-6.23 15.84h12.33z"],
    +  "css3": [512, 512, [], "f13c", "M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"],
    +  "css3-alt": [384, 512, [], "f38b", "M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"],
    +  "cuttlefish": [440, 512, [], "f38c", "M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"],
    +  "d-and-d": [576, 512, [], "f38d", "M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"],
    +  "dashcube": [448, 512, [], "f210", "M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"],
    +  "delicious": [448, 512, [], "f1a5", "M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192v176z"],
    +  "deploydog": [512, 512, [], "f38e", "M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"],
    +  "deskpro": [480, 512, [], "f38f", "M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"],
    +  "dev": [448, 512, [], "f6cc", "M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"],
    +  "deviantart": [320, 512, [], "f1bd", "M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z"],
    +  "digg": [512, 512, [], "f1a6", "M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z"],
    +  "digital-ocean": [512, 512, [], "f391", "M256 504v-96.1c101.8 0 180.8-100.9 141.7-208-14.3-39.6-46.1-71.4-85.8-85.7-107.1-38.8-208.1 39.9-208.1 141.7H8C8 93.7 164.9-32.8 335 20.3c74.2 23.3 133.6 82.4 156.6 156.6C544.8 347.2 418.6 504 256 504zm.3-191.4h-95.6v95.6h95.6v-95.6zm-95.6 95.6H87v73.6h73.7v-73.6zM87 346.6H25.4v61.6H87v-61.6z"],
    +  "discord": [448, 512, [], "f392", "M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z"],
    +  "discourse": [448, 512, [], "f393", "M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"],
    +  "dochub": [416, 512, [], "f394", "M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z"],
    +  "docker": [640, 512, [], "f395", "M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"],
    +  "draft2digital": [480, 512, [], "f396", "M369.9 425.4V371l47.1 27.2-47.1 27.2zM82.4 380.6c25.5-27.3 97.7-104.7 150.9-170 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7H82.4zm51.8-219.2c0 12.4-10 22.4-22.4 22.4-12.4 0-22.4-10-22.4-22.4 0-12.4 10-22.4 22.4-22.4 12.4 0 22.4 10.1 22.4 22.4M336 315.9v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480l144-81.9-144-82.2z"],
    +  "dribbble": [512, 512, [], "f17d", "M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z"],
    +  "dribbble-square": [448, 512, [], "f397", "M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z"],
    +  "dropbox": [528, 512, [], "f16b", "M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"],
    +  "drupal": [448, 512, [], "f1a9", "M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z"],
    +  "dyalog": [416, 512, [], "f399", "M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"],
    +  "earlybirds": [480, 512, [], "f39a", "M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"],
    +  "ebay": [640, 512, [], "f4f4", "M405.2 263.8c-29.1.9-47.2 6.2-47.2 25.3 0 12.4 9.9 25.8 35 25.8 33.7 0 51.6-18.4 51.6-48.4v-3.3c-11.8 0-26.3.1-39.4.6m71.5 39.7c0 9.3.3 18.6 1 26.8h-29.8c-.8-6.9-1.1-13.6-1.1-20.2-16.1 19.8-35.3 25.5-61.9 25.5-39.5 0-60.6-20.9-60.6-45 0-35 28.8-47.3 78.6-48.4 13.7-.3 29-.4 41.7-.4v-3.4c0-23.4-15-33-41-33-19.3 0-33.6 8-35 21.8h-33.7c3.6-34.4 39.7-43.1 71.5-43.1 38.1 0 70.3 13.5 70.3 53.8v65.6zm-349-56.8c-2.3-54.7-87.5-56.6-94.4 0h94.4zm-95 21.4c3.5 58.3 79.2 57.4 91.2 21.6H157c-6.4 34.4-43 46.1-74.4 46.1-57.2 0-82.5-31.5-82.5-74 0-46.8 26.2-77.6 83-77.6 45.3 0 78.4 23.7 78.4 75.4v8.5H32.7zm211 45.7c29.8 0 50.2-21.5 50.2-53.8 0-32.4-20.4-53.8-50.2-53.8-29.6 0-50.2 21.4-50.2 53.8 0 32.3 20.6 53.8 50.2 53.8m-82.2-186h32.1v80.6c15.7-18.7 37.4-24.2 58.7-24.2 35.7 0 75.4 24.1 75.4 76.2 0 43.6-31.5 75.4-76 75.4-23.3 0-45.1-8.3-58.7-24.9 0 6.6-.4 13.2-1.1 19.5h-31.5c.5-10.2 1.1-22.8 1.1-33.1V127.8zM640 189.5l-99.2 194.8h-35.9l28.5-54.1-74.6-140.7h37.5l54.9 109.9L606 189.5h34z"],
    +  "edge": [512, 512, [], "f282", "M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z"],
    +  "elementor": [448, 512, [], "f430", "M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z"],
    +  "ello": [496, 512, [], "f5f1", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"],
    +  "ember": [640, 512, [], "f423", "M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1c-1.9-43.8-44.2-27.6-49-24-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-18.3-11-32.8 12.1-32.8 12.1s54.5-60.7 42.5-112c-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5c-17.2-.8-28.5 18.8-28.5 18.8s-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7c11.6 2.1 16.4 1 36.5-47.9 11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2c6.7-23.6 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7c8.6 15.6 30.9 5.3 30.9 5.3s15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6c12.4 5.1 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"],
    +  "empire": [496, 512, [], "f1d1", "M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z"],
    +  "envira": [448, 512, [], "f299", "M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"],
    +  "erlang": [640, 512, [], "f39d", "M21.7 246.4c-.1 86.8 29 159.5 78.7 212.1H0v-405h87.2c-41.5 50.2-65.6 116.2-65.5 192.9zM640 53.6h-83.6c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405zm-80.8 405s0-.1 0 0h-.2.2zm-3.1-405h.3l-.1-.1-.2.1zm-230.7 9.6c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2z"],
    +  "ethereum": [320, 512, [], "f42e", "M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z"],
    +  "etsy": [384, 512, [], "f2d7", "M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z"],
    +  "expeditedssl": [496, 512, [], "f23e", "M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z"],
    +  "facebook": [448, 512, [], "f09a", "M448 56.7v398.5c0 13.7-11.1 24.7-24.7 24.7H309.1V306.5h58.2l8.7-67.6h-67v-43.2c0-19.6 5.4-32.9 33.5-32.9h35.8v-60.5c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9h-58.4v67.6h58.4V480H24.7C11.1 480 0 468.9 0 455.3V56.7C0 43.1 11.1 32 24.7 32h398.5c13.7 0 24.8 11.1 24.8 24.7z"],
    +  "facebook-f": [264, 512, [], "f39e", "M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"],
    +  "facebook-messenger": [448, 512, [], "f39f", "M224 32C15.9 32-77.5 278 84.6 400.6V480l75.7-42c142.2 39.8 285.4-59.9 285.4-198.7C445.8 124.8 346.5 32 224 32zm23.4 278.1L190 250.5 79.6 311.6l121.1-128.5 57.4 59.6 110.4-61.1-121.1 128.5z"],
    +  "facebook-square": [448, 512, [], "f082", "M448 80v352c0 26.5-21.5 48-48 48h-85.3V302.8h60.6l8.7-67.6h-69.3V192c0-19.6 5.4-32.9 33.5-32.9H384V98.7c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9H184v67.6h60.9V480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"],
    +  "fantasy-flight-games": [512, 512, [], "f6dc", "M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z"],
    +  "firefox": [480, 512, [], "f269", "M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v.1c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5v-.2c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1-.1.2-.2.3-.3.4-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6z"],
    +  "first-order": [448, 512, [], "f2b0", "M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"],
    +  "first-order-alt": [496, 512, [], "f50a", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"],
    +  "firstdraft": [384, 512, [], "f3a1", "M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"],
    +  "flickr": [448, 512, [], "f16e", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"],
    +  "flipboard": [448, 512, [], "f44d", "M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z"],
    +  "fly": [384, 512, [], "f417", "M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"],
    +  "font-awesome": [448, 512, [], "f2b4", "M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z"],
    +  "font-awesome-alt": [448, 512, [], "f35c", "M397.8 67.8c7.8 0 14.3 6.6 14.3 14.3v347.6c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6m0-35.9H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-58.5 139.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1z"],
    +  "font-awesome-flag": [448, 512, [], "f425", "M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z"],
    +  "font-awesome-logo-full": [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],
    +  "fonticons": [448, 512, [], "f280", "M0 32v448h448V32H0zm167.4 196h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4zM364 414.7H261.3v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm-21.9-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6-21.9 24.2z"],
    +  "fonticons-fi": [384, 512, [], "f3a2", "M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z"],
    +  "fort-awesome": [512, 512, [], "f286", "M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z"],
    +  "fort-awesome-alt": [512, 512, [], "f3a3", "M211.7 241.1v51.7c0 2.1-1.6 3.7-3.7 3.7h-22.2c-2.1 0-3.7-1.6-3.7-3.7v-51.7c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7zm114.5-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm-29.1 263.2c-.9.1-1.7.3-2.6.4-1 .2-2.1.3-3.1.5-.9.1-1.8.3-2.8.4-1 .1-2 .3-3 .4-1 .1-2 .2-2.9.3-1 .1-1.9.2-2.9.3-1 .1-2.1.2-3.1.3-.9.1-1.8.2-2.7.2-1.1.1-2.3.1-3.4.2-.8 0-1.7.1-2.5.1-1.3.1-2.6.1-3.9.1-.7 0-1.4.1-2.1.1-2 0-4 .1-6 .1s-4 0-6-.1c-.7 0-1.4 0-2.1-.1-1.3 0-2.6-.1-3.9-.1-.8 0-1.7-.1-2.5-.1-1.1-.1-2.3-.1-3.4-.2-.9-.1-1.8-.1-2.7-.2-1-.1-2.1-.2-3.1-.3-1-.1-1.9-.2-2.9-.3-1-.1-2-.2-2.9-.3-1-.1-2-.2-3-.4-.9-.1-1.8-.3-2.8-.4-1-.1-2.1-.3-3.1-.5-.9-.1-1.7-.3-2.6-.4-65.6-10.9-122.5-47.7-160-99.4-.2-.2-.3-.5-.5-.7-.8-1.1-1.6-2.2-2.3-3.3-.3-.4-.6-.8-.8-1.2-.7-1.1-1.4-2.1-2.1-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.4-2.1-2-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.3-2.2-2-3.3-.2-.4-.5-.8-.7-1.2-2.4-4-4.6-8.1-6.8-12.2-.1-.2-.2-.3-.3-.5-.6-1.1-1.1-2.2-1.7-3.3-.3-.6-.6-1.1-.8-1.7-.5-1-1-2.1-1.5-3.1-.3-.7-.6-1.3-.9-2-.5-1-.9-2-1.4-3l-.9-2.1c-.4-1-.9-2-1.3-3-.3-.7-.6-1.5-.9-2.2l-1.2-3c-.3-.8-.6-1.5-.9-2.3-.4-1-.8-2-1.1-3-.3-.9-.6-1.8-1-2.8-.6-1.6-1.1-3.3-1.7-4.9-.3-.9-.6-1.8-.9-2.8-.3-.9-.5-1.8-.8-2.7-.3-.9-.6-1.9-.8-2.8-.3-.9-.5-1.8-.8-2.7-.3-1-.5-1.9-.8-2.9-.2-.9-.5-1.8-.7-2.7-.3-1-.5-2-.7-3-.2-.9-.4-1.7-.6-2.6-.2-1.1-.5-2.2-.7-3.2-.2-.8-.3-1.6-.5-2.4-.3-1.3-.5-2.7-.8-4-.1-.6-.2-1.1-.3-1.7l-.9-5.7c-.1-.6-.2-1.3-.3-1.9-.2-1.3-.4-2.6-.5-3.9-.1-.8-.2-1.5-.3-2.3-.1-1.2-.3-2.4-.4-3.6-.1-.8-.2-1.6-.2-2.4-.1-1.2-.2-2.4-.3-3.5-.1-.8-.1-1.6-.2-2.4-.1-1.2-.2-2.4-.2-3.7 0-.8-.1-1.5-.1-2.3-.1-1.3-.1-2.7-.2-4 0-.7 0-1.3-.1-2 0-2-.1-4-.1-6 0-53.5 16.9-103 45.8-143.6 2.3-3.2 4.7-6.4 7.1-9.5 4.9-6.2 10.1-12.3 15.6-18 2.7-2.9 5.5-5.7 8.4-8.4 2.9-2.7 5.8-5.4 8.8-8 4.5-3.9 9.1-7.6 13.9-11.2 1.6-1.2 3.2-2.4 4.8-3.5C140 34.2 171.7 20.1 206 13c16.1-3.3 32.9-5 50-5s33.8 1.7 50 5c34.3 7 66 21.1 93.6 40.7 1.6 1.2 3.2 2.3 4.8 3.5 4.8 3.6 9.4 7.3 13.9 11.2 12 10.4 23 21.9 32.8 34.4 2.5 3.1 4.8 6.3 7.1 9.5C487.1 153 504 202.5 504 256c0 2 0 4-.1 6 0 .7 0 1.3-.1 2 0 1.3-.1 2.7-.2 4 0 .8-.1 1.5-.1 2.3-.1 1.2-.1 2.4-.2.7-.1.8-.1 1.6-.2 2.4-.1 1.2-.2 2.4-.3 3.5-.1.8-.2 1.6-.2 2.4-.1 1.2-.3 2.4-.4 3.6-.1.8-.2 1.5-.3 2.3-.2 1.3-.4 2.6-.5 3.9-.1.6-.2 1.3-.3 1.9l-.9 5.7c-.1.6-.2 1.1-.3 1.7-.2 1.3-.5 2.7-.8 4-.2.8-.3 1.6-.5 2.4-.2 1.1-.5 2.2-.7 3.2-.2.9-.4 1.7-.6 2.6-.2 1-.5 2-.7 3-.2.9-.5 1.8-.7 2.7-.3 1-.5 1.9-.8 2.9-.2.9-.5 1.8-.8 2.7-.3.9-.6 1.9-.8 2.8-.3.9-.5 1.8-.8 2.7-.3.9-.6 1.8-.9 2.8-.5 1.6-1.1 3.3-1.7 4.9-.3.9-.6 1.8-1 2.8-.4 1-.7 2-1.1 3-.3.8-.6 1.5-.9 2.3l-1.2 3c-.3.7-.6 1.5-.9 2.2-.4 1-.8 2-1.3 3l-.9 2.1c-.4 1-.9 2-1.4 3-.3.7-.6 1.3-.9 2-.5 1-1 2.1-1.5 3.1-.3.6-.6 1.1-.8 1.7-.6 1.1-1.1 2.2-1.7 3.3-.1.2-.2.3-.3.5-2.2 4.1-4.4 8.2-6.8 12.2-.2.4-.5.8-.7 1.2-.7 1.1-1.3 2.2-2 3.3-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2 3.2-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2.1 3.2-.3.4-.6.8-.8 1.2-.8 1.1-1.5 2.2-2.3 3.3-.2.2-.3.5-.5.7-37.6 54.7-94.5 91.4-160.1 102.4zm117.3-86.2c13-13 24.2-27.4 33.6-42.9v-71.3c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7V326h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-4.8-6.5-3.7-9.5-3.7v-30.7c6.7-1.6 13.8-2.8 20.8-2.8 8.8 0 16.8 3.5 25.4 3.5 3.7 0 22.4-.9 22.4-6.5V93.4c0-2.1-1.6-3.7-3.7-3.7-4.2 0-12.2 3.5-19.4 3.5-7.9 0-16.9-3.5-26.3-3.5-6.5 0-12.9.9-19.2 2.3v-3.9c4.4-2.1 7.4-6.7 7.4-11.5 0-16.8-25.4-16.8-25.4 0 0 4.8 3 9.5 7.4 11.5v90.2c-3 0-9.5-1.1-9.5 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v144H93.5v-25.8c0-2.1-1.6-3.7-3.7-3.7H67.7c-2.1 0-3.7 1.6-3.7 3.7v71.3c9.4 15.5 20.6 29.9 33.6 42.9 20.6 20.6 44.5 36.7 71.2 48 13.9 5.9 28.2 10.3 42.9 13.2v-75.8c0-58.6 88.6-58.6 88.6 0v75.8c14.7-2.9 29-7.4 42.9-13.2 26.7-11.3 50.6-27.4 71.2-48"],
    +  "forumbee": [448, 512, [], "f211", "M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"],
    +  "foursquare": [368, 512, [], "f180", "M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"],
    +  "free-code-camp": [576, 512, [], "f2c5", "M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z"],
    +  "freebsd": [448, 512, [], "f3a4", "M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"],
    +  "fulcrum": [269, 512, [], "f50b", "M70.75 164.14l-35.38 43.55L0 164.14l35.38-43.55 35.37 43.55zM119.23 0L98.69 198.18 47.72 256l50.98 57.82L119.23 512V300.89L78.15 256l41.08-44.89V0zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55-35.38 43.55zm-48.48 46.97L191.5 256l-41.08 44.89V512l20.54-198.18L221.94 256l-50.98-57.82L150.42 0v211.11z"],
    +  "galactic-republic": [496, 512, [], "f50c", "M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"],
    +  "galactic-senate": [512, 512, [], "f50d", "M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z"],
    +  "get-pocket": [448, 512, [], "f265", "M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"],
    +  "gg": [512, 512, [], "f260", "M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z"],
    +  "gg-circle": [512, 512, [], "f261", "M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z"],
    +  "git": [448, 512, [], "f1d3", "M18.8 221.7c0 25.3 16.2 60 41.5 68.5v1c-18.8 8.3-24 50.6 1 65.8v1C34 367 16 384.3 16 414.2c0 51.5 48.8 65.8 91.5 65.8 52 0 90.7-18.7 90.7-76 0-70.5-101-44.5-101-82.8 0-13.5 7.2-18.7 19.7-21.3 41.5-7.7 67.5-40 67.5-82.2 0-7.3-1.5-14.2-4-21 6.7-1.5 13.2-3.3 19.7-5.5v-50.5c-17.2 6.8-35.7 11.8-54.5 11.8-53.8-31-126.8 1.3-126.8 69.2zm87.7 163.8c17 0 41.2 3 41.2 25 0 21.8-19.5 26.3-37.7 26.3-17.3 0-43.3-2.7-43.3-25.2.1-22.3 22.1-26.1 39.8-26.1zM103.3 256c-22 0-31.3-13-31.3-33.8 0-49.3 61-48.8 61-.5 0 20.3-8 34.3-29.7 34.3zM432 305.5v49c-13.3 7.3-30.5 9.8-45.5 9.8-53.5 0-59.8-42.2-59.8-85.7v-87.7h.5v-1c-7 0-7.3-1.6-24 1v-47.5h24c0-22.3.3-31-1.5-41.2h56.7c-2 13.8-1.5 27.5-1.5 41.2h51v47.5s-19.3-1-51-1V281c0 14.8 3.3 32.8 21.8 32.8 9.8 0 21.3-2.8 29.3-8.3zM286 68.7c0 18.7-14.5 36.2-33.8 36.2-19.8 0-34.5-17.2-34.5-36.2 0-19.3 14.5-36.7 34.5-36.7C272 32 286 50 286 68.7zm-6.2 74.5c-1.8 14.6-1.6 199.8 0 217.8h-55.5c1.6-18.1 1.8-203 0-217.8h55.5z"],
    +  "git-square": [448, 512, [], "f1d2", "M140.1 348.5c12.1 0 29.5 2.1 29.5 17.9 0 15.5-13.9 18.8-27 18.8-12.3 0-30.9-2-30.9-18s15.7-18.7 28.4-18.7zm-24.7-116.6c0 14.8 6.6 24.1 22.3 24.1 15.5 0 21.2-10 21.2-24.5.1-34.4-43.5-34.8-43.5.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-241 93.7c-12.3 4.8-25.5 8.4-38.9 8.4-38.5-22.1-90.7.9-90.7 49.5 0 18 11.6 42.9 29.6 48.9v.7c-13.4 5.9-17.1 36.1.7 47v.7c-19.5 6.4-32.3 18.8-32.3 40.2 0 36.8 34.8 47 65.4 47 37.1 0 64.8-13.4 64.8-54.3 0-50.4-72.1-31.8-72.1-59.1 0-9.6 5.2-13.4 14.1-15.2 29.6-5.5 48.2-28.6 48.2-58.7 0-5.2-1.1-10.2-2.9-15 4.8-1.1 9.5-2.3 14.1-3.9v-36.2zm56.8 1.8h-39.6c1.3 10.6 1.1 142.6 0 155.5h39.6c-1.1-12.8-1.2-145.1 0-155.5zm4.5-53.3c0-13.4-10-26.2-24.1-26.2-14.3 0-24.6 12.5-24.6 26.2 0 13.6 10.5 25.9 24.6 25.9 13.7 0 24.1-12.5 24.1-25.9zm104.3 53.3h-36.4c0-9.8-.4-19.6 1.1-29.5h-40.5c1.3 7.3 1.1 13.6 1.1 29.5h-17.1v33.9c11.9-1.9 12.1-.7 17.1-.7v.7h-.4v62.7c0 31.1 4.5 61.2 42.7 61.2 10.7 0 23-1.8 32.5-7v-35c-5.7 3.9-13.9 5.9-20.9 5.9-13.2 0-15.5-12.9-15.5-23.4v-65.2c22.7 0 36.4.7 36.4.7v-33.8z"],
    +  "github": [496, 512, [], "f09b", "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"],
    +  "github-alt": [480, 512, [], "f113", "M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"],
    +  "github-square": [448, 512, [], "f092", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z"],
    +  "gitkraken": [592, 512, [], "f3a6", "M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z"],
    +  "gitlab": [512, 512, [], "f296", "M29.782 199.732L256 493.714 8.074 309.699c-6.856-5.142-9.712-13.996-7.141-21.993l28.849-87.974zm75.405-174.806c-3.142-8.854-15.709-8.854-18.851 0L29.782 199.732h131.961L105.187 24.926zm56.556 174.806L256 493.714l94.257-293.982H161.743zm349.324 87.974l-28.849-87.974L256 493.714l247.926-184.015c6.855-5.142 9.711-13.996 7.141-21.993zm-85.404-262.78c-3.142-8.854-15.709-8.854-18.851 0l-56.555 174.806h131.961L425.663 24.926z"],
    +  "gitter": [384, 512, [], "f426", "M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"],
    +  "glide": [448, 512, [], "f2a5", "M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z"],
    +  "glide-g": [448, 512, [], "f2a6", "M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"],
    +  "gofore": [400, 512, [], "f3a7", "M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z"],
    +  "goodreads": [448, 512, [], "f3a8", "M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"],
    +  "goodreads-g": [384, 512, [], "f3a9", "M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"],
    +  "google": [488, 512, [], "f1a0", "M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"],
    +  "google-drive": [512, 512, [], "f3aa", "M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"],
    +  "google-play": [512, 512, [], "f3ab", "M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"],
    +  "google-plus": [496, 512, [], "f2b3", "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z"],
    +  "google-plus-g": [640, 512, [], "f0d5", "M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"],
    +  "google-plus-square": [448, 512, [], "f0d4", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z"],
    +  "google-wallet": [448, 512, [], "f1ee", "M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"],
    +  "gratipay": [496, 512, [], "f184", "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z"],
    +  "grav": [512, 512, [], "f2d6", "M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z"],
    +  "gripfire": [384, 512, [], "f3ac", "M171.8 503.8c0-5.3 4.8-12.2 4.8-22.3 0-15.2-13-39.9-78.1-86.6C64.2 365.8 32 336.4 32 286.6 32 171.9 179.1 110.1 179.1 18c0-3.3-.2-6.7-.6-10 5.1 2.4 39.1 43.3 39.1 90.4 0 80.5-105.1 129.2-105.1 203 0 26.9 16.6 47.2 32.6 69.5 22.5 30.2 44.2 56.9 44.2 86.5-.1 14.5-4.4 29.7-17.5 46.4zm146-241.4c1.5 8.4 2.2 16.6 2.2 24.6 0 51.8-29.4 97.5-67.3 136.8-1 1-2.2 2.4-3.2 2.4-3.6 0-35.5-41.6-35.5-53.2 0 0 41.8-55.7 41.8-96.9 0-10.8-2.7-21.7-9.1-33.4-1.5 32.3-55.7 87.7-58.1 87.7-2.7 0-17.9-22-17.9-42.1 0-5.3 1-10.7 3.2-15.8 2.4-5.5 56.6-72 56.6-116.7 0-6.2-1-12-3.4-17.1l-4-7.2c16.7 6.5 82.6 64.1 94.7 130.9"],
    +  "grunt": [384, 512, [], "f3ad", "M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm79.2 233.7c2.2 2.3 1.5 5.3.9 6.8-1.1 2.7-5.5 11.6-13 19.8-2.7 2.9-6.6 4.6-11 4.6-4.3 0-8.7-1.6-11.8-4.3-2.3-2.1-10.2-9.5-13.7-18.6-1.3-3.4-1-6.1.9-8.1 1.3-1.3 4-2.9 9.5-2.9H160c4.1 0 7 .9 8.8 2.7zm62.9-187.9c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm17.8-8.8c7.5-11.4 25.4-26 44.9-37 3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6-.1.1 0 0 0 0zM263 421.4c1.9 1.9 2.2 4.6.9 7.9-3.5 8.9-11.4 16.1-13.7 18.1-3.1 2.6-7.4 4.2-11.8 4.2s-8.3-1.6-11-4.5c-7.5-8-12-16.7-13-19.3-.6-1.5-1.3-4.4.9-6.7 1.7-1.8 4.7-2.7 8.9-2.7h29.4c5.4.1 8.1 1.7 9.4 3zm-98.3-251.5c9.9 6 18.8 8.1 27.3 8.3 8.5-.2 17.4-2.3 27.3-8.3 0 0-14.5 17.7-27.2 17.8h-.2c-12.7-.2-27.2-17.8-27.2-17.8zm184.5 147.4c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59z"],
    +  "gulp": [256, 512, [], "f3ae", "M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z"],
    +  "hacker-news": [448, 512, [], "f1d4", "M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"],
    +  "hacker-news-square": [448, 512, [], "f3af", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"],
    +  "hackerrank": [464, 512, [], "f5f7", "M453.5 128C439.01 103.05 261.13 0 232.16 0 203.2 0 25.25 102.79 10.84 128c-14.41 25.21-14.49 230.8 0 256.01C25.33 409.21 203.22 512 232.16 512s206.85-102.92 221.33-128c14.48-25.08 14.49-231.05.01-256zM292.13 414.22c-3.96 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32.04-2.02-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 5.96-5.74 5.94-10.13-.03-20.27-.11-30.41-.08-4.1.01-5.87-1.53-5.74-6.11.92-33.44 2.96-84.02-.15-212.67v-3.17c-9.67-.35-16.38-.96-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69 3.96 0 41.17 35.78 38.27 38.69-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2.03 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46.02 4.57 1.72 4.5 5.38-3.65 191.29-.66 177.94-.66 210.34 8.87.35 16.82.96 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z"],
    +  "hips": [640, 512, [], "f452", "M0 80.2c0-1.8.9-2.7 2.7-2.7h40.9c1.9 0 2.8.9 2.8 2.7v81.2c15.2-7.7 31.7-11.5 49.8-11.4 24 .1 44.2 6.2 60.3 18 18.7 13.5 28 31.9 28 55.3v136.1c0 1.9-.9 2.8-2.7 2.8h-27.3c-9.1 0-16.4-7.3-16.4-16.3V223.3c0-.9 2.7-27-45.8-27-48.6 0-45.8 26.2-45.8 27v136.1c0 1.9-.9 2.8-2.8 2.8h-41c-1.8 0-2.7-.9-2.7-2.8V80.2zm497.7 221.5c13.7 10.2 34.1 19.1 58.4 19.1 23.3 0 32.8-4.5 36.5-13.6 3-7.9-.6-16.1-12.2-21.2l-53.6-23.5c-21.4-9.4-33.8-24-37.2-43.6-5.7-33.7 22.2-53.3 22.7-53.7 13.2-9.6 32-15.4 58.5-15.4 19 0 37.4 3.3 55.1 9.9 1.3.5 1.9 1.3 1.9 2.6V207c0 2.1-2.3 3.4-4 2.4-39.7-20.7-76.6-12.3-84-6.8-6.6 4.9-6 12.5 2.6 16.1L600 244c16.5 7.1 28.1 18.4 34.9 34.1 5.5 12.6 6.6 25.6 3.1 39.1-9.6 36.9-44.9 45.5-45.6 45.8-10.5 3.1-23.6 4.3-36.3 4.3-16.6 0-32.6-2.7-48.2-8.2-9.7-3.4-14.6-10.3-14.6-20.7V304c0-2.1 2.3-3.7 4.4-2.3zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zm-124.6 38.7c0 1.9-.9 2.8-2.8 2.8h-40.9c-1.6 0-2.7-1.4-2.7-2.8V157.6c0-1.4 1.1-2.8 2.7-2.8h40.9c1.9 0 2.8.9 2.8 2.8v201.8M228.3 72.5c15.9 0 28.9 12.7 28.9 28.9 0 15.8-12.7 28.9-28.9 28.9s-28.9-13.3-28.9-28.9c.1-16 13-28.9 28.9-28.9"],
    +  "hire-a-helper": [512, 512, [], "f3b0", "M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"],
    +  "hooli": [640, 512, [], "f427", "M508.4 352h57.9V156.7L508.4 184v168zm73.7-110.5V352H640V241.5h-57.9zm-250.7-8.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.9 110.9v-31c-48.8-54.6-39-76.1-35.3-79.2 13.5-11.4 37.5-8 64.4 2.1L65.2 184v63.3c13.1 14.7 30.5 31.5 53.5 50.4l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zm-39.7 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm185.7-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm173.5-73c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8v16zm-21.4 0v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.5-21.7-38.5-31.5V352h57.9zm59.7.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3v5.3l-19.4.8z"],
    +  "hornbill": [509, 512, [], "f592", "M75.37 370.3c2.14 15.83-5.77 31.98-20.94 39.29-18.85 9.1-41.55 1.17-50.68-17.68-9.08-18.83-1.13-41.58 17.7-50.65 7.05-3.4 14.63-4.42 21.85-3.38-78.28-111.35 52-190.53 52-190.53-5.86 43.04-8.24 91.16-8.24 91.16-67.31 41.45.92 64.06 39.81 72.87 19.77 53.62 71.18 91.94 131.66 91.94 1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zM183.38 42.6c.89-7-.1-14.33-3.39-21.15-9.1-18.84-31.82-26.78-50.66-17.69-18.86 9.1-26.8 31.83-17.69 50.68 6.98 14.47 22.02 22.42 37.18 21.23-22.55 29.91-53.83 89.57-52.42 190.03l21.84-.15c-.02-.9-.14-1.77-.14-2.68 0-58.95 36.37-109.33 87.85-130.16 8.01-37.75 30.74-114.3 73.84-44.29 0 0 48.14 2.38 91.18 8.24 0-.01-77.84-128.03-187.59-54.06zm304.18 134.17c18.84-9.09 26.81-31.81 17.7-50.65-9.1-18.85-31.83-26.77-50.67-17.69-15.27 7.37-23.19 23.69-20.87 39.64-31.71-21.94-89.84-49.05-183.45-47.74l.14 22.5c2.7-.15 5.39-.41 8.14-.41 59.3 0 109.9 36.8 130.49 88.76 39.1 9.02 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 48.96-194.61 6.43.5 13.07-.49 19.31-3.5zM373.05 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15 0 60.27-38.05 111.55-91.39 131.45-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 50.97.31 4.72 1.45 9.45 3.64 13.97 9.06 18.89 31.8 26.78 50.64 17.71 18.86-9.1 26.79-31.83 17.7-50.65-6.56-13.62-20.26-21.43-34.45-21.35z"],
    +  "hotjar": [448, 512, [], "f3b1", "M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z"],
    +  "houzz": [414, 512, [], "f27c", "M258.9 330.7H154.3V480H0V32h109.5v104.5l305.1 85.6V480H258.9V330.7z"],
    +  "html5": [384, 512, [], "f13b", "M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"],
    +  "hubspot": [512, 512, [], "f3b2", "M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"],
    +  "imdb": [448, 512, [], "f2d8", "M350.5 288.7c0 5.4 1.6 14.4-6.2 14.4-1.6 0-3-.8-3.8-2.4-2.2-5.1-1.1-44.1-1.1-44.7 0-3.8-1.1-12.7 4.9-12.7 7.3 0 6.2 7.3 6.2 12.7v32.7zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4v-49.3zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM21.3 228.8c-.1.1-.2.3-.3.4h.3v-.4zM97 192H64v127.8h33V192zm113.3 0h-43.1l-7.6 59.9c-2.7-20-5.4-40.1-8.7-59.9h-42.8v127.8h29v-84.5l12.2 84.5h20.6l11.6-86.4v86.4h28.7V192zm86.3 45.3c0-8.1.3-16.8-1.4-24.4-4.3-22.5-31.4-20.9-49-20.9h-24.6v127.8c86.1.1 75 6 75-82.5zm85.9 17.3c0-17.3-.8-30.1-22.2-30.1-8.9 0-14.9 2.7-20.9 9.2V192h-31.7v127.8h29.8l1.9-8.1c5.7 6.8 11.9 9.8 20.9 9.8 19.8 0 22.2-15.2 22.2-30.9v-36z"],
    +  "instagram": [448, 512, [], "f16d", "M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"],
    +  "internet-explorer": [512, 512, [], "f26b", "M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"],
    +  "ioxhost": [640, 512, [], "f208", "M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"],
    +  "itunes": [448, 512, [], "f3b4", "M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z"],
    +  "itunes-note": [384, 512, [], "f3b5", "M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z"],
    +  "java": [377, 512, [], "f4e4", "M121.6 396s-19.6 11.4 13.9 15.2c40.6 4.6 61.3 4 106-4.5 0 0 11.8 7.4 28.2 13.8C169.5 463.4 42.9 418 121.6 396m-12.2-56.1s-21.9 16.2 11.6 19.7c43.3 4.5 77.6 4.8 136.8-6.6 0 0 8.2 8.3 21.1 12.8-121.3 35.5-256.3 2.9-169.5-25.9m103.2-95.1c24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3.1 0-175.2 43.8-91.5 140.2m132.6 192.6s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8M131 281.8s-93.1 22.1-33 30.1c25.4 3.4 76 2.6 123.1-1.3 38.5-3.2 77.2-10.2 77.2-10.2s-13.6 5.8-23.4 12.5c-94.5 24.9-277 13.3-224.5-12.1 44.5-21.4 80.6-19 80.6-19m167 93.3c96.1-49.9 51.6-97.9 20.6-91.4-7.6 1.6-11 3-11 3s2.8-4.4 8.2-6.3c61.3-21.6 108.5 63.6-19.8 97.3 0-.1 1.5-1.4 2-2.6M240 0s53.2 53.2-50.5 135c-83.1 65.6-19 103.1 0 145.8-48.5-43.8-84.1-82.3-60.2-118.2C164.4 110.1 261.5 84.5 240 0m-99.5 510.4c92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6"],
    +  "jedi-order": [448, 512, [], "f50e", "M231.89 335.72l31.44-45.89-20.18 55.5 62.56 9.09-62.56 9.08 24.22 47.43s-30.22-31.77-34.49-36.25c1.76 68.78 2.19 85.7 2.19 85.7s154.4-71.65 68.62-230.09c0 0 106.97-118.07 10.09-190.73 0 0 165.5 99.91 60.55 271.46 0 0 86.78-84.77 41.37-170.54 0 0 78.71 111.01-17.16 233.11 0 0 26.24-16.15 49.45-77.71 0 0-16.93 183.26-221.96 185.66v.02h-4.08v-.02C16.93 479.14 0 295.88 0 295.88c23.21 61.56 49.44 77.71 49.44 77.71-95.87-122.11-17.15-233.11-17.15-233.11-45.41 85.78 41.38 170.54 41.38 170.54-104.95-171.56 60.54-271.46 60.54-271.46-96.88 72.66 10.09 190.73 10.09 190.73-85.78 158.44 68.62 230.09 68.62 230.09s.43-16.93 2.19-85.7l-34.48 36.25 24.22-47.43-62.56-9.08 62.56-9.09-20.18-55.5 31.44 45.89c2.25-87.85 7.82-305.82 7.85-306.85l.01-2.43.02 1 .03-1 .01 2.43c.05 1.72 5.61 219.2 7.86 306.85z"],
    +  "jenkins": [512, 512, [], "f3b6", "M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"],
    +  "joget": [496, 512, [], "f3b7", "M227.5 468.7c-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1M66.1 143.9C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9-55.5-1.4-81.7-20.8-58.5-48.2 23.2-27.4 51.1-40.7 68.9-51.2 17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1m-29.2-18c-71.9 116.6-35.6 269.3 81 341.2 116.6 71.9 269.3 35.6 341.2-80.9 71.9-116.6 35.6-269.4-81-341.2-40.5-25.1-85.5-37-129.9-37C165 8 83.8 49.9 36.9 125.9m244.4 110.4c-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5c10.5-6.4 31.9-14 13.4-24.6-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6"],
    +  "joomla": [448, 512, [], "f1aa", "M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"],
    +  "js": [448, 512, [], "f3b8", "M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"],
    +  "js-square": [448, 512, [], "f3b9", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"],
    +  "jsfiddle": [576, 512, [], "f1cc", "M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"],
    +  "kaggle": [291, 512, [], "f5fa", "M291.72 508.98c-.51 2.01-2.51 3.01-6.01 3.01h-66.92c-4.02 0-7.51-1.75-10.52-5.27L97.74 366.14l-30.82 29.32v109.02c0 5.02-2.51 7.52-7.52 7.52H7.52C2.5 512 0 509.5 0 504.48V7.51C0 2.51 2.5 0 7.52 0H59.4c5.01 0 7.52 2.51 7.52 7.51v306l132.32-133.82c3.51-3.5 7.02-5.26 10.52-5.26h69.18c6.96 0 7.9 7.87 5.26 10.52L144.35 320.26l145.86 181.2"],
    +  "keybase": [412, 512, [], "f4f5", "M177.2 430.9c0 9.8-8 17.8-17.8 17.8s-17.8-8-17.8-17.8 8-17.8 17.8-17.8c9.8-.1 17.8 7.9 17.8 17.8zM270 413c-9.8 0-17.8 8-17.8 17.8s8 17.8 17.8 17.8 17.8-8 17.8-17.8-8-17.8-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3c4.8 26.7 15.7 51.3 31.2 72.3H46.1c-9.7-15.8-17.2-33-22.2-51.3L.1 454c0-74.9-5.5-147.6 61.5-215.2 20.2-20.4 43.7-36.2 69.1-46.7-6.8-13.5-9.5-29.2-7.8-46l-19.9-1.2c-17.9-1.1-31.6-16.5-30.6-34.4v-.1L74 84.2c1.1-17.1 15.4-30.6 32.5-30.6 1.3 0-.3-.1 28.2 1.7 13.9.8 21.5 9.8 22.8 11.4 7.1-10.4 14.5-20.5 24.6-34.5l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7C246 92.9 262 107 271 126c.4.9 15.5 29 1.2 62.6 19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM128 122.3c3.2-10 7.7-19.7 13.1-29.4.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6-4.6 0-8.3 3.5-8.6 8.1l-1.6 26.2c-.3 4.7 3.4 8.8 8.1 9.1l23.5 1.4zm25.8 61.8c5.6 9.4 14.1 16.1 22.3 20 0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7-10.3.4-19.7-5.4-23.7-15.3-13.7 21.2-37.2 62.5-17.6 95.1zm82.9 68.4L217 268.6c-1.9 1.6-2.2 4.4-.6 6.3l8.9 10.9c1 1.2 3.8 2.7 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zm118.4 25.7c-16.9-23.7-42.6-46.7-73.4-60.4-7.9-3.5-15-6.1-22.9-8.6-2 2.2-4.1 4.3-6.4 6.2l31.9 39.2c10.4 12.7 8.5 31.5-4.2 41.9-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9-8.6 0-16.6-3.8-22.1-10.5l-8.9-10.9c-6.3-7.8-7.9-17.9-5-26.8-8.2-9.9-8.3-21.3-4.6-30-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zM110.6 107.3l15.6 1 1-15.6-15.6-1-1 15.6z"],
    +  "keycdn": [512, 512, [], "f3ba", "M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"],
    +  "kickstarter": [448, 512, [], "f3bb", "M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z"],
    +  "kickstarter-k": [384, 512, [], "f3bc", "M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z"],
    +  "korvue": [446, 512, [], "f42f", "M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"],
    +  "laravel": [640, 512, [], "f3bd", "M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z"],
    +  "lastfm": [512, 512, [], "f202", "M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"],
    +  "lastfm-square": [448, 512, [], "f203", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z"],
    +  "leanpub": [576, 512, [], "f212", "M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"],
    +  "less": [640, 512, [], "f41d", "M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z"],
    +  "line": [448, 512, [], "f3c0", "M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z"],
    +  "linkedin": [448, 512, [], "f08c", "M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"],
    +  "linkedin-in": [448, 512, [], "f0e1", "M100.3 448H7.4V148.9h92.9V448zM53.8 108.1C24.1 108.1 0 83.5 0 53.8S24.1 0 53.8 0s53.8 24.1 53.8 53.8-24.1 54.3-53.8 54.3zM448 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448h-.1z"],
    +  "linode": [448, 512, [], "f2b8", "M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z"],
    +  "linux": [448, 512, [], "f17c", "M196.1 123.6c-.2-1.4 1.9-2.3 3.2-2.9 1.7-.7 3.9-1 5.5-.1.4.2.8.7.6 1.1-.4 1.2-2.4 1-3.5 1.6-1 .5-1.8 1.7-3 1.7-1 .1-2.7-.4-2.8-1.4zm24.7-.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm214.7 310.2c-.5 8.2-6.5 13.8-13.9 18.3-14.9 9-37.3 15.8-50.9 32.2l-2.6-2.2 2.6 2.2c-14.2 16.9-31.7 26.6-48.3 27.9-16.5 1.3-32-6.3-40.3-23v-.1c-1.1-2.1-1.9-4.4-2.5-6.7-21.5 1.2-40.2-5.3-55.1-4.1-22 1.2-35.8 6.5-48.3 6.6-4.8 10.6-14.3 17.6-25.9 20.2-16 3.7-36.1 0-55.9-10.4l1.6-3-1.6 3c-18.5-9.8-42-8.9-59.3-12.5-8.7-1.8-16.3-5-20.1-12.3-3.7-7.3-3-17.3 2.2-31.7 1.7-5.1.4-12.7-.8-20.8-.6-3.9-1.2-7.9-1.2-11.8 0-4.3.7-8.5 2.8-12.4 4.5-8.5 11.8-12.1 18.5-14.5 6.7-2.4 12.8-4 17-8.3 5.2-5.5 10.1-14.4 16.6-20.2-2.6-17.2.2-35.4 6.2-53.3 12.6-37.9 39.2-74.2 58.1-96.7 16.1-22.9 20.8-41.3 22.5-64.7C158 103.4 132.4-.2 234.8 0c80.9.1 76.3 85.4 75.8 131.3-.3 30.1 16.3 50.5 33.4 72 15.2 18 35.1 44.3 46.5 74.4 9.3 24.6 12.9 51.8 3.7 79.1 1.4.5 2.8 1.2 4.1 2 1.4.8 2.7 1.8 4 2.9 6.6 5.6 8.7 14.3 10.5 22.4 1.9 8.1 3.6 15.7 7.2 19.7 11.1 12.4 15.9 21.5 15.5 29.7zM220.8 109.1c3.6.9 8.9 2.4 13 4.4-2.1-12.2 4.5-23.5 11.8-23 8.9.3 13.9 15.5 9.1 27.3-.8 1.9-2.8 3.4-3.9 4.6 6.7 2.3 11 4.1 12.6 4.9 7.9-9.5 10.8-26.2 4.3-40.4-9.8-21.4-34.2-21.8-44 .4-3.2 7.2-3.9 14.9-2.9 21.8zm-46.2 18.8c7.8-5.7 6.9-4.7 5.9-5.5-8-6.9-6.6-27.4 1.8-28.1 6.3-.5 10.8 10.7 9.6 19.6 3.1-2.1 6.7-3.6 10.2-4.6 1.7-19.3-9-33.5-19.1-33.5-18.9 0-24 37.5-8.4 52.1zm-9.4 20.9c1.5 4.9 6.1 10.5 14.7 15.3 7.8 4.6 12 11.5 20 15 2.6 1.1 5.7 1.9 9.6 2.1 18.4 1.1 27.1-11.3 38.2-14.9 11.7-3.7 20.1-11 22.7-18.1 3.2-8.5-2.1-14.7-10.5-18.2-11.3-4.9-16.3-5.2-22.6-9.3-10.3-6.6-18.8-8.9-25.9-8.9-14.4 0-23.2 9.8-27.9 14.2-.5.5-7.9 5.9-14.1 10.5-4.2 3.3-5.6 7.4-4.2 12.3zm-33.5 252.8L112.1 366c-6.8-9.2-13.8-14.8-21.9-16-7.7-1.2-12.6 1.4-17.7 6.9-4.8 5.1-8.8 12.3-14.3 18-7.8 6.5-9.3 6.2-19.6 9.9-6.3 2.2-11.3 4.6-14.8 11.3-2.7 5-2.1 12.2-.9 20 1.2 7.9 3 16.3.6 23.9v.2c-5 13.7-5 21.7-2.6 26.4 7.9 15.4 46.6 6.1 76.5 21.9 31.4 16.4 72.6 17.1 75.3-18 2.1-20.5-31.5-49-41-68.9zm153.9 35.8c3.2-11 6.3-21.3 6.8-29 .8-15.2 1.6-28.7 4.4-39.9 3.1-12.6 9.3-23.1 21.4-27.3 2.3-21.1 18.7-21.1 38.3-12.5 18.9 8.5 26 16 22.8 26.1 1 0 2-.1 4.2 0 5.2-16.9-14.3-28-30.7-34.8 2.9-12 2.4-24.1-.4-35.7-6-25.3-22.6-47.8-35.2-59-2.3-.1-2.1 1.9 2.6 6.5 11.6 10.7 37.1 49.2 23.3 84.9-3.9-1-7.6-1.5-10.9-1.4-5.3-29.1-17.5-53.2-23.6-64.6-11.5-21.4-29.5-65.3-37.2-95.7-4.5 6.4-12.4 11.9-22.3 15-4.7 1.5-9.7 5.5-15.9 9-13.9 8-30 8.8-42.4-1.2-4.5-3.6-8-7.6-12.6-10.3-1.6-.9-5.1-3.3-6.2-4.1-2 37.8-27.3 85.3-39.3 112.7-8.3 19.7-13.2 40.8-13.8 61.5-21.8-29.1-5.9-66.3 2.6-82.4 9.5-17.6 11-22.5 8.7-20.8-8.6 14-22 36.3-27.2 59.2-2.7 11.9-3.2 24 .3 35.2 3.5 11.2 11.1 21.5 24.6 29.9 0 0 24.8 14.3 38.3 32.5 7.4 10 9.7 18.7 7.4 24.9-2.5 6.7-9.6 8.9-16.7 8.9 4.8 6 10.3 13 14.4 19.6 37.6 25.7 82.2 15.7 114.3-7.2zM415 408.5c-10-11.3-7.2-33.1-17.1-41.6-6.9-6-13.6-5.4-22.6-5.1-7.7 8.8-25.8 19.6-38.4 16.3-11.5-2.9-18-16.3-18.8-29.5-.3.2-.7.3-1 .5-7.1 3.9-11.1 10.8-13.7 21.1-2.5 10.2-3.4 23.5-4.2 38.7-.7 11.8-6.2 26.4-9.9 40.6-3.5 13.2-5.8 25.2-1.1 36.3 7.2 14.5 19.5 20.4 33.7 19.3 14.2-1.1 30.4-9.8 43.6-25.5 22-26.6 62.3-29.7 63.2-46.5.3-5.1-3.1-13-13.7-24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4 3.9-3.4 5.9-6.3 3.1-6.6-2.8-.3-2.6 2.6-6 5.1-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2-10.4 0-18.7-4.8-24.9-9.7-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"],
    +  "lyft": [512, 512, [], "f3c3", "M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z"],
    +  "magento": [448, 512, [], "f3c4", "M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z"],
    +  "mailchimp": [428, 512, [], "f59e", "M426.56 323.72c-3.09-6.59-8.97-11.13-16.35-12.88-2.47-11.27-5.88-16.8-6.19-17.63 1.3-1.48 2.56-2.97 2.84-3.32 10.42-12.93 3.62-31.86-14.19-36.33-10.02-9.64-19.09-14.17-26.54-17.9-7.14-3.57-4.29-2.17-10.99-5.19-1.78-8.71-2.37-28.97-5.2-43.19-2.54-12.79-7.66-22.06-15.56-28.15-3.16-6.84-7.59-13.74-12.93-18.81 24.84-38.08 31.38-75.69 13.19-95.39-8.1-8.77-20.13-12.93-34.52-12.93-20.26 0-45.18 8.26-70.34 23.54 0 0-16.38-13.18-16.73-13.46-70.08-55.19-268.28 188.7-198.32 242l18.06 13.8c-11.34 31.54 4.43 69.14 37.29 81.21 7.26 2.67 15.14 3.97 23.31 3.51 0 0 53.09 97.36 165.1 97.39 129.58.04 162.55-126.72 162.9-127.86 0 .01 10.5-15.51 5.17-28.41zM20.12 267.95c-14.2-23.96 10.51-73.19 28.09-101.17C91.66 97.63 163.98 43.06 196.82 50.85l9.03-3.46c.03.03 24.67 20.85 24.7 20.87 16.97-10.19 38.58-20.57 58.8-22.64-12.3 2.77-27.29 9.15-45.05 20.01-.43.25-42.02 28.32-67.43 53.52-13.85 13.73-69.45 80.41-69.4 80.35 10.16-19.23 16.86-28.67 32.94-48.9 9.1-11.44 18.81-22.57 28.74-32.84 4.61-4.77 9.28-9.36 13.95-13.71 3.21-2.99 6.44-5.87 9.65-8.62 1.48-1.27 2.96-2.5 4.43-3.71l.01-.01L164.6 64.8l1.72 12.06 23.69 20.87s-20.96 14.11-31.39 23.01c-41.79 35.66-82.8 90.4-98.06 143.69l.73-.03c-7.6 4.19-15.14 10.91-21.73 20.05-.16-.04-17.04-12.43-19.44-16.5zm69.11 100.09c-25.03 0-45.33-21.37-45.33-47.72 0-26.36 20.29-47.72 45.33-47.72 6.49 0 12.66 1.44 18.24 4.02 0 0 9.63 4.86 12.34 27.81 2.82-7.17 4.24-13.06 4.24-13.06 3.23 9.88 4.88 20.26 4.23 30.76 2.68-3.56 5.55-10.27 5.55-10.27 5 29.33-16.4 56.18-44.6 56.18zm55.8-168.53s19.49-37.06 62.33-61.57c-3.19-.51-10.99.48-12.36.64 7.78-6.69 22.24-11.16 32.23-13.19-2.92-1.86-9.89-2.33-13.34-2.42-1.02-.03-1.01-.02-2.22.03 9.4-5.25 26.82-8.34 42.65-5.55-1.99-2.64-6.5-4.57-9.67-5.51-.28-.08-1.52-.39-1.52-.39l1.19-.28c9.54-1.84 20.69.15 29.5 3.69-1-2.32-3.45-5.03-5.29-6.74-.19-.18-1.29-.97-1.29-.97 9.22 1.91 18.06 5.94 24.71 10.5-.9-1.75-3.14-4.69-4.69-6.29 8.81 2.52 18.71 8.81 22.95 17.82.1.2.37.94.4 1.03-16.7-12.84-65.44-9.2-114.24 22.42-22.33 14.48-38.71 30.32-51.34 46.78zm263.32 146.34c-.59 1.15-6.73 34.4-41.86 62.01-44.37 34.86-102.66 31.33-124.67 11.8-11.76-11-16.85-26.73-16.85-26.73s-1.33 8.87-1.56 12.35c-8.87-15.09-8.12-33.52-8.12-33.52s-4.73 8.83-6.9 13.77c-6.53-16.62-3.16-33.78-3.16-33.78l-5.16 7.7s-2.42-18.81 3.52-34.47c6.36-16.74 18.68-28.9 21.11-30.42-9.35-2.97-20.12-11.49-20.14-11.51 0 0 4.28.28 7.26-.4 0 0-18.9-13.54-22.22-34.26 2.74 3.38 8.49 7.21 8.49 7.21-1.86-5.42-2.99-17.49-1.25-29.36l.01-.01c3.58-22.68 22.27-37.45 43.44-37.27 22.54.2 37.65 4.93 56.55-12.5 4-3.69 7.19-6.87 12.81-8.11.59-.13 2.06-.75 5.07-.75 3.05 0 5.98.69 8.67 2.29 10.25 6.1 12.46 22.01 13.56 33.68 4.07 43.28 2.43 35.57 19.94 44.49 8.36 4.25 17.74 8.29 28.43 19.72.03.03.08.09.08.09h.13c9.01.22 13.65 7.31 9.5 12.47-30.23 36.1-72.46 53.39-119.51 54.84-1.94.05-6.32.15-6.34.15-19.01.58-25.19 25.16-13.27 39.95 7.54 9.35 22.03 12.42 33.97 12.46l.17-.06c51.45 1.04 103.14-35.37 112.07-55.44.06-.15.61-1.42.61-1.42-2.07 2.43-52.18 49.61-113.08 47.9 0 0-6.66-.14-12.93-1.6-8.27-1.92-14.55-5.56-16.95-13.8 5.05 1.01 11.45 1.66 18.87 1.66 43.96 0 75.63-19.98 72.33-20.25-.13 0-.26.03-.48.08-5.13 1.19-57.97 21.66-91.37 11.16.08-1.02.24-2.01.48-2.9 2.97-9.95 8.25-8.56 16.79-8.93 30.48-1.01 55.07-8.68 73.5-17.43 19.65-9.33 34.63-21.35 40.03-27.42 7 11.79 6.96 26.92 6.96 26.92s2.74-.96 6.38-.96c11.38.01 13.73 10.23 5.09 20.6zm-149.29 13.7c0-.05-.01-.1-.01-.15.01.05.01.1.01.15zm-.01-.21c-.01-.13-.01-.26-.02-.39-.02-.65-.03-1.33 0-2.02-.02.74-.02 1.42 0 2.02.01.13.01.27.02.39zm.12 1.46c0 .02 0 .04.01.06 0-.02 0-.04-.01-.06zm.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zM193.96 59.68l2.87-8.83 4.88 17.72-6.03-1.95-1.72-6.94zm22.38 17.72l-3.62-12.59 9.97 8.36c-2.24 1.44-4.36 2.86-6.35 4.23zm42.71 281.94c-.01-.13-.01-.26-.02-.39.01.13.01.27.02.39zm-.01-.39c-.02-.65-.03-1.33 0-2.02-.03.75-.03 1.42 0 2.02zm.02.6c0-.05-.01-.1-.01-.15m.13 1.46c0-.02 0-.04-.01-.06m.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zm52.1-138.61c-.07-3.36.47-8.92 3.63-9.95h.01c5.41-1.88 12.58 11.98 12.91 24.28-4.28-2.14-9.3-3.05-14.47-2.6-1.3-3.97-1.92-7.7-2.08-11.73zM205.38 85.27l-13.59-11.38 20.57 6.28c-2.65 1.88-5 3.6-6.98 5.1zm27.7 166.94c-3.41 1.3-5.83 2.31-7 2.14-1.89-.28-.06-3.75 4.08-7.11 8.33-6.64 19.76-8.7 29.53-5.07 4.28 1.57 9.08 4.72 11.6 8.39.95 1.39 1.21 2.44.82 2.88-.77.9-3.51-.31-7.55-1.89-10.35-3.86-17.98-4.45-31.48.66zm14.55 14.53c-2.31.94-3.81 1.66-4.42 1.17-.62-.48-.01-2.42 2.15-4.51 1.88-1.81 3.83-2.83 6.07-3.77.35-.15.72-.28 1.1-.38 1.04-.28 2.09-.63 3.23-.8 9.12-1.55 15.8 3.51 14.93 4.98-.39.69-2.08.53-4.6.36-5.23-.36-10.71-.27-18.46 2.95zM60.86 323.12zm24.3-25.78c-1.85.39-.81.17-2.64.68a7 7 0 0 0-.77.25c-.58.27-1.11.45-1.62.73-.43.24-4.07 1.86-7.03 5.48-3.99 4.95-5.44 11.43-5.19 17.67.24 6.06 2.02 9.41 2.35 10.23 1.38 2.96-1.85 3.57-4.79.39l-.01-.01c-2.35-2.49-3.86-6.29-4.6-9.66-2.98-13.95 3.24-27.97 17.61-33.57.8-.32 1.74-.51 2.5-.73h-.01c1.47-.44 6.72-1.5 12.07-.67 5.87.91 11.04 3.85 14.33 7.67l.01.01c2.53 2.87 4.43 6.92 4.09 10.53v.01c-.13 1.5-.79 3.65-2.14 4.21-.5.21-1.01.1-1.36-.25-.98-.96-.22-2.93-2.6-6.3-3.17-4.47-10.31-8.76-20.2-6.67zm30.28 31.17c1.88 10.82-6 20.5-15.52 20.7-6.67.15-10.31-4.02-9.66-4.93.3-.43 1.32-.24 2.88-.01 8.5 1.32 13.66-3.86 14.9-9.29.02-.09.35-1.54.34-2.54.07-.88-.03-1.76-.16-2.56-1-5.62-7.45-6.68-11.6-11.15-3.72-4.04-2.99-9.22-.65-11.71 2.81-2.77 6.83-1.76 6.78-.78 0 .52-.97.91-2.17 1.74-1.56 1.1-1.77 2.16-1.37 3.98.26 1 .71 1.65 1.68 2.42 3.48 2.76 12.85 4.7 14.55 14.13zm212.87-81.47c2.58.4 4.22 3.59 3.67 7.13-.55 3.54-3.09 6.08-5.67 5.67-2.58-.4-4.22-3.59-3.67-7.13.56-3.53 3.09-6.07 5.67-5.67zm-28.33 10.31c1.42-2.59 5.44-3.11 8.99-1.16 3.55 1.94 5.27 5.62 3.86 8.2-1.42 2.59-5.44 3.11-8.99 1.16-3.55-1.94-5.28-5.61-3.86-8.2z"],
    +  "mandalorian": [390, 512, [], "f50f", "M203.28 511.89c-.98-3.26-1.69-15.83-1.39-24.58.55-15.89.98-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-.96.4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-.99-11.43.16-4.81 0-10.53-.34-12.71-2.05-12.97-3.46-27.7-3.25-33.9.21-6.12.43-7.15 2.06-9.67 3.05-4.71 6.51-14.04 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74.89-4.42 2.43-9.72 4.36-15.05 2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71-1.03 1.49-4.76 4.8-8.29 7.36-8.37 6.08-11.7 9.39-12.66 12.58-.93 3.11-1.02 7.23-.16 7.76.34.21 1.29 2.4 2.11 4.88 1.62 4.88 1.87 10.12.72 15.36-.39 1.77-1.05 5.47-1.46 8.23-.41 2.76-.98 6.46-1.25 8.22-.28 1.76-.97 3.68-1.55 4.26-.96.96-1.14.91-2.05-.53-.55-.87-1.2-3.01-1.44-4.75-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-.96-20.96.92-1.73 1.67-3.81 1.67-4.61 0-2.39-2.2-5.32-7.41-9.89-7.05-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3.01-2.6 9.11-2.97 22.02l-.35 12.13 1.95 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56.07 11.84.95 22.75 2 24.71.36.66.51 1.35.34 1.52-.17.17.41 2.09 1.29 4.27.88 2.18 1.81 6.22 2.06 8.98.25 2.76 1.02 7.43 1.71 10.37 2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 57.98-2.04 61.21-.12 2.02-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4.02-4.79-2.83-9.95.7-3.01 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1.01-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73.38-1.29.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6.03-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57.02-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-10.96-1.9-23.85-14.55-6.15-6.04-12.34-11.97-13.75-13.19-2.81-2.42-2.79-1.99-.56-9.63l1.35-4.65-1.69-3.04c-.93-1.67-2.09-3.51-2.59-4.07-1.33-1.51-5.5-10.89-5.99-13.49-.31-1.66-.09-2.67.87-3.9 2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1.05 9.41 5.03 1.34 4.79 1.37 9.79.1 18.55-.53 3.68-.98 8.68-.99 11.11-.02 4.01.19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52 1.7.71 3.82 1.99 4.72 2.85 11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 7.98 4.54 10.04 13.39 1.31 5.65 4 11.14 5.46 11.14.59 0 2.09-.63 3.33-1.39 1.98-1.22 2.25-1.73 2.25-4.18-.01-3.71-1.17-14.08-2-17.84-.37-1.66-.78-4.06-.93-5.35-.14-1.29-.61-3.85-1.03-5.69-2.55-11.16-3.65-15.46-4.1-16.05-1.55-2.02-4.08-10.2-4.93-15.92-1.64-11.11-3.96-14.23-12.91-17.39-4.64-1.64-8.89-4.12-13.32-7.78-1.15-.95-4.01-3.22-6.35-5.06-2.35-1.83-4.41-3.53-4.6-3.76-.18-.23-1.39-1.14-2.69-2.02-6.24-4.22-8.84-6.98-11.26-11.96l-2.44-5.02-.22-12.98-.22-12.98 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2.05 8.53-.19 10.12.02 11.66 1.56 1.53 1.53 1.36 6.4-.29 8.5-.74.94-1.34 1.98-1.34 2.32 0 .58-2.61 4.91-5.42 8.99-.68.99-2.13 5.35-2.37 6.82 20.44 13.39 21.55 3.77 14.07 28.98l11.4 2.54c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-11.98-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28 3.18-.92 6.58-1.68 7.55-1.68.97 0 3.66-.58 5.98-1.29 3.65-1.11 4.5-1.17 6.35-.4 1.17.48 3.79 1.09 5.82 1.36 2.02.26 4.72 1.12 6 1.91 1.28.79 3.53 1.77 5.02 2.17 2.51.68 3 .57 7.05-1.67l4.35-2.4 10.7-.41c10.44-.4 10.81-.47 15.26-2.68l4.58-2.3 2.46 1.43c1.76 1.02 3.14 2.73 4.85 5.98 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39.5 1.96 1.45 4.62 2.1 5.91.65 1.29 1.24 3.09 1.31 4.01.31 4.33-.03 5.3-2.41 6.92-2.17 1.47-6.98 7.91-6.98 9.34 0 .32-.48 1.69-1.07 3.03-5.04 11.51-6.76 13.56-14.26 16.98-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26-.37.69-2.21 2.37-4.09 3.71-2.04 1.47-3.8 3.38-4.38 4.78-.54 1.28-1.66 2.59-2.49 2.91-.83.32-1.94 1.08-2.45 1.71-.52.62-3.66 3.04-7 5.38-3.33 2.34-6.87 5.02-7.87 5.96-1 .94-2.07 1.71-2.39 1.71s-1.28.74-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6.22 1.63.86 4.27 1.42 5.88 1.32 3.8 1.31 7.86-.05 10.57-1.43 2.86-.89 6.65 1.35 9.59 2.01 2.63 2.16 4.56.71 8.84-.61 1.8-1.05 5.45-1.06 8.91-.02 4.88.22 6.28 1.46 8.38 1.2 2.04 1.82 2.48 3.24 2.32 1.98-.23 2.3-1.05 4.71-12.12 2.18-10.03 3.71-11.92 13.76-17.08 2.94-1.51 7.46-3.96 10.03-5.44 2.58-1.48 6.79-3.69 9.37-4.91 6.67-3.16 11.05-6.52 15.22-11.67 7.11-8.79 9.98-16.22 12.85-33.3.55-3.28 1.43-5.65 2.86-7.73 1.29-1.87 2.37-4.62 2.89-7.31 1.02-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8.03-2.18 3.11-6.46 13.01-8.76 20.26l-2.29 7.22-6.97 6.49c-3.83 3.57-7.96 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 9.99 0 2.98.43 4.96 1.59 7.26.87 1.74 1.81 3.91 2.09 4.83.28.92.98 2.22 1.57 2.89 1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12.02-4.7 12.02-1.79 0-4.06 9.27-5.07 20.74-.18 2.02-.62 5.94-.98 8.7-.36 2.76-.96 9.98-1.35 16.05-.77 12.22-.19 18.77 2.05 23.15 3.41 6.69.52 12.69-11.03 22.84l-3.97 3.49.07 5.19c.04 2.86.55 6.85 1.14 8.87 4.61 15.98 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15.42 1.84.91 5 1.08 7.02.17 2.02.66 5.33 1.08 7.36.47 2.26.78 11.02.79 22.74l.02 19.06-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2.02-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3.02-17.66-3.03-21.3-.01-4.23 1.02-6 5.28-9.13 4.14-3.04 4.86-3.14 5.48-.72.28 1.1 1.45 5.62 2.6 10.03 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-.98 7.07-1.17 12.39-1.04 28.43.17 19.4-.64 35.73-2.04 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-70.99-37.58c-.24-.38-1.01-5.24-1.73-10.79-.72-5.56-1.49-10.41-1.73-10.79-.23-.38-.68-3.3-.99-6.49-.31-3.19-.91-7.46-1.33-9.48-.99-4.79-3.35-19.35-3.42-21.07-.03-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29.96-.96 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83-.18 4.6-.49 9.87-.67 11.71-.18 1.84-.61 9.36-.94 16.72-.79 17.41-1.94 31.29-2.65 32-.32.3-.76.24-1-.14zM74.63 162.61c21.07 12.79 17.84 14.15 28.49 17.66 13.01 4.29 18.87 7.13 23.15 16.87-43.66 36.14-69.01 57.9-76.71 70.82-31.02 52.01-5.99 101.59 62.75 87.21-14.18 29.23-77.97 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179.02c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-67.96 2.98-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.27 70.58-78.66 91.12-105.29 61.65z"],
    +  "markdown": [640, 512, [], "f60f", "M593.85 452.92H46.15C20.7 452.92 0 432.22 0 406.77V105.23c0-25.45 20.7-46.15 46.15-46.15h547.69c25.45 0 46.15 20.7 46.15 46.15v301.54c.01 25.45-20.69 46.15-46.14 46.15zm-440-92.3v-120l61.54 76.92 61.54-76.92v120h61.54V151.38h-61.54l-61.54 76.92-61.54-76.92H92.31v209.23h61.54zM566.15 256h-61.54V151.38h-61.54V256h-61.54l92.31 107.69L566.15 256z"],
    +  "mastodon": [417, 512, [], "f4f6", "M417.8 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.5-28.4-290.4 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.4-.9-9-.9-13.9 85.6 20.9 158.6 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H75.1c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"],
    +  "maxcdn": [512, 512, [], "f136", "M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"],
    +  "medapps": [320, 512, [], "f3c6", "M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"],
    +  "medium": [448, 512, [], "f23a", "M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"],
    +  "medium-m": [512, 512, [], "f3c7", "M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z"],
    +  "medrt": [544, 512, [], "f3c8", "M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z"],
    +  "meetup": [512, 512, [], "f2e0", "M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"],
    +  "megaport": [496, 512, [], "f5a3", "M248 8C111.04 8 0 119.04 0 256c0 136.97 111.04 248 248 248 136.96 0 248-111.03 248-248C496 119.04 384.96 8 248 8zm85.46 267.67l59.66 59.67v87.05l-26.07 19.23L341 422.39v-65.46l-33.44-33.44-33.44 33.44v65.46L248 441.62l-26.12-19.23v-65.46l-33.44-33.44L155 356.92v65.46l-26.07 19.23-26.06-19.23v-87.05l59.47-59.47V188l59.5-59.5V52.88l26.06-19.23 26.06 19.23v75.64l59.5 59.5m-85.56-11.86l33.44 33.44V276L248 309.33l-33.54-33.54v-66.2l33.44-33.43z"],
    +  "microsoft": [448, 512, [], "f3ca", "M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"],
    +  "mix": [448, 512, [], "f3cb", "M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"],
    +  "mixcloud": [640, 512, [], "f289", "M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z"],
    +  "mizuni": [496, 512, [], "f3cc", "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"],
    +  "modx": [448, 512, [], "f285", "M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"],
    +  "monero": [496, 512, [], "f3d0", "M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"],
    +  "napster": [496, 512, [], "f3d2", "M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"],
    +  "neos": [456, 512, [], "f612", "M387.44 512h-95.11L184.12 357.46v91.1L97.69 512H0V29.82L40.47 0h108.05l123.74 176.13V63.45L358.69 0h97.69v461.5L387.44 512zM10.77 35.27v460.72l72.01-52.88V193.95l215.49 307.69h84.79l52.35-38.17h-78.27L40.96 12.98 10.77 35.27zm82.54 466.61l80.04-58.78V342.06L93.55 227.7v220.94l-72.58 53.25h72.34zM52.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L142.91 10.77H52.63zm230.4 180.88l72.01 102.81V15.93l-72.01 52.96v122.76z"],
    +  "nimblr": [355, 512, [], "f5a8", "M232.6 299.29c15.57 0 27.15 11.46 27.15 26.96 0 15.55-11.62 26.96-27.15 26.96-15.7 0-27.15-11.57-27.15-26.96 0-15.51 11.58-26.96 27.15-26.96zM99.01 326.25c0-15.61 11.68-26.96 27.15-26.96 15.57 0 27.15 11.46 27.15 26.96 0 15.41-11.47 26.96-27.15 26.96-15.44 0-27.15-11.31-27.15-26.96m78.75-167.3C143 158.95 75.45 178.77 45.25 227L0 0v335.48C0 433.13 79.61 512 177.76 512c98.24 0 177.76-78.95 177.76-176.52 0-97.46-79.39-176.53-177.76-176.53zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59 0-72.68 59.24-131.59 132.51-131.59 73.27 0 132.51 58.91 132.51 131.59s-59.25 131.59-132.51 131.59z"],
    +  "nintendo-switch": [448, 512, [], "f418", "M95.9 33.5c-44.6 8-80.5 41-91.8 84.4C0 133.6-.3 142.8.2 264.4.4 376 .5 378.6 2.4 387.3c10.3 46.5 43.3 79.6 90.3 90.5 6.1 1.4 13.9 1.7 64.1 1.9 51.9.4 57.3.3 58.7-1.1 1.4-1.4 1.5-19.3 1.5-222.2 0-150.5-.3-221.3-.9-222.6-.9-1.7-2.5-1.8-56.9-1.7-44.2.1-57.5.4-63.3 1.4zm83.9 222.6V444l-37.8-.5c-34.8-.4-38.5-.6-45.5-2.3-29.9-7.7-52-30.7-58.3-60.7-2-9.4-2-240.1-.1-249.3 5.6-26.1 23.7-47.7 48-57.4 12.2-4.9 17.9-5.5 57.6-5.6l35.9-.1v188zm-75.9-131.2c-5.8 1.1-14.7 5.6-19.5 9.7-9.7 8.4-14.6 20.4-13.8 34.5.4 7.3.8 9.3 3.8 15.2 4.4 9 10.9 15.6 19.9 20 6.2 3.1 7.8 3.4 15.9 3.7 7.3.3 9.9 0 14.8-1.7 20.1-6.8 32.3-26.3 28.8-46.4-3.9-23.7-26.6-39.7-49.9-35zm158.2-92.3c-.4.3-.6 100.8-.6 223.5 0 202.3.1 222.8 1.5 223.4 2.5.9 74.5.6 83.4-.4 37.7-4.3 71-27.2 89-61.2 2.3-4.4 5.4-11.7 7-16.2 5.8-17.4 5.7-12.8 5.7-146.1 0-106.4-.2-122.3-1.5-129-9.2-48.3-46.1-84.8-94.5-93.1-6.5-1.1-16.5-1.4-48.8-1.4-22.4-.1-40.9.2-41.2.5zm99.1 202.1c14.5 3.8 26.3 14.8 31.2 28.9 3.1 8.7 3 21.5-.1 29.5-5.7 14.7-16.8 25-31.1 28.8-23.2 6-47.9-8-54.6-31-2-7-1.9-18.9.4-26.2 6.9-22.7 31-36.1 54.2-30z"],
    +  "node": [640, 512, [], "f419", "M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z"],
    +  "node-js": [448, 512, [], "f3d3", "M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"],
    +  "npm": [576, 512, [], "f3d4", "M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"],
    +  "ns8": [640, 512, [], "f3d5", "M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z"],
    +  "nutritionix": [400, 512, [], "f3d6", "M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"],
    +  "odnoklassniki": [320, 512, [], "f263", "M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z"],
    +  "odnoklassniki-square": [448, 512, [], "f264", "M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z"],
    +  "old-republic": [496, 512, [], "f510", "M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z"],
    +  "opencart": [640, 512, [], "f23d", "M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"],
    +  "openid": [448, 512, [], "f19b", "M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"],
    +  "opera": [496, 512, [], "f26a", "M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"],
    +  "optin-monster": [576, 512, [], "f23c", "M550.671 450.303c0 11.62-15.673 19.457-32.158 14.863-12.16-3.243-31.346-17.565-36.211-27.294-5.674-11.62 4.054-32.698 18.916-30.806 15.674 1.621 49.453 25.401 49.453 43.237zM372.86 75.223c-3.783-72.151-100.796-79.718-125.928-23.51 44.588-24.321 90.257-15.673 125.928 23.51zM74.795 407.066c-15.673 1.621-49.452 25.401-49.452 43.237 0 11.62 15.673 19.457 32.157 14.863 12.16-3.243 31.076-17.565 35.94-27.294 5.946-11.62-3.782-32.698-18.645-30.806zm497.765 14.322c1.081 3.513 1.892 7.026 1.892 10.809.81 31.616-44.317 64.045-73.503 65.125-17.295.81-34.59-8.377-42.696-23.51-113.497 4.053-226.994 4.864-340.22 0-8.377 15.133-25.672 24.05-42.967 23.51-28.915-1.081-74.043-33.509-73.503-65.125.27-3.783.811-7.296 1.892-10.809-5.566-9.463-4.845-15.282 5.405-11.62 3.243-5.134 7.026-9.458 11.08-13.782-2.57-10.917 1.27-14.094 11.079-9.188 4.594-3.243 9.998-6.485 15.944-9.188 0-15.757 11.839-11.131 17.295-5.675 12.467-1.78 20.129.709 26.753 5.675v-19.726c-12.987 0-40.641-11.375-45.94-36.212-4.974-20.725 2.607-38.075 25.132-47.56.81-5.945 8.107-14.052 14.862-15.944 7.567-1.892 12.431 4.594 14.052 10.269 7.425 0 17.757 1.465 21.078 8.107 5.405-.541 11.079-1.352 16.484-1.892-2.432-1.892-5.134-3.513-8.107-4.594-5.134-8.917-13.782-11.079-24.591-11.62 0-.81 0-1.621.27-2.702-19.727-.541-44.048-5.675-54.857-17.835-21.321-23.638-15.935-83.577 12.16-103.498 8.377-5.675 21.618-.811 22.699 9.728 2.425 20.598.399 26.833 26.212 25.942 8.107-7.836 16.755-14.592 26.483-19.997-14.862-1.352-28.914 1.621-43.778 3.783 12.752-12.48 23.953-25.442 56.748-42.427 23.511-11.89 49.993-20.808 76.205-23.239-18.646-7.837-39.993-11.891-59.721-16.484 76.475-16.214 174.569-22.159 244.289 37.562 18.105 15.403 32.427 36.211 42.696 59.992 39.799 4.853 36.47-5.581 38.643-25.132 1.081-10.269 14.322-15.403 22.699-9.458 14.862 10.539 22.159 30.806 24.59 48.101 2.162 17.835.27 41.345-12.43 55.127-10.809 12.16-34.32 17.565-53.776 18.105v2.703c-11.08.27-20.268 2.432-25.673 11.62-2.972 1.081-5.674 2.703-8.377 4.594 5.675.54 11.35 1.351 16.755 1.891 1.869-5.619 12.535-8.377 21.077-8.377 1.621-5.405 6.756-11.89 14.052-10.269s14.052 9.998 14.863 15.944c10.809 4.324 22.159 12.16 25.131 25.672 1.892 8.107 1.621 15.133.27 21.888-5.726 25.262-33.361 36.212-45.939 36.212 0 6.756 0 13.241-.27 19.726 8.01-6.006 16.367-7.158 26.752-5.675 5.919-5.919 17.565-9.41 17.565 5.675 5.675 2.703 11.349 5.945 15.944 9.188 10.1-5.051 13.669-.539 10.809 9.188 4.053 4.323 8.107 8.917 11.079 13.782 10.136-3.62 11.021 2.078 5.409 11.62zm-73.773-254.016c17.295 6.756 26.212 22.159 30.265 35.67 1.081-10.539-2.702-39.453-13.782-51.073-7.296-7.296-14.052-5.134-14.052.81.001 6.216-1.35 11.62-2.431 14.593zm-18.646 12.43c12.971 15.673 17.024 41.615 12.7 62.963 10.809-2.162 20.537-6.215 26.212-12.16 1.892-2.162 3.783-4.864 4.864-7.566-1.081-21.348-10.269-42.697-29.725-48.912-3.242 3.243-9.187 4.864-14.051 5.675zm-21.889.811c7.567 20.537 12.431 42.696 14.322 64.585 3.513 0 7.567-.27 11.62-.811 5.945-24.321-.27-51.614-14.052-63.504-3.783 0-8.107 0-11.89-.27zM77.768 167.372c-1.081-2.973-2.432-8.377-2.432-14.593 0-5.945-7.026-8.107-14.052-.81-11.35 11.62-14.863 40.534-13.782 51.073 4.053-13.512 12.971-28.915 30.266-35.67zm5.675 75.394c-4.324-21.348-.27-47.291 12.701-62.963-4.865-.811-10.809-2.432-14.052-5.675-19.457 6.215-28.375 27.563-29.726 48.912 1.351 2.702 2.972 5.404 4.864 7.566 5.675 6.215 15.403 9.998 26.213 12.16zm41.345-61.073c-5.134 1.081-9.998 2.973-14.862 4.865l-12.16 5.134v-.27c-7.296 14.052-9.999 34.319-5.405 52.965 4.594.541 8.647.811 12.7.811 2.432-22.159 9.188-43.778 19.727-63.505zm88.095-23.239c0 42.155 34.319 76.205 76.205 76.205s76.205-34.05 76.205-76.205c0-41.886-34.319-75.935-76.205-75.935s-76.205 34.049-76.205 75.935zm152.41 97.283c9.969 50.608 3.299 64.692 16.484 58.099 15.944-8.107 22.699-39.183 22.97-57.019-12.971-.81-26.213-.81-39.454-1.08zm-71.611-.541v-.27c-.27 5.134.27 38.103 4.324 41.075 11.079 5.405 39.453 4.594 51.073 1.081 5.405-1.621 2.432-37.022 1.621-41.886-18.916-.27-38.102-.27-57.018 0zm-14.053 0v-.27c-19.456.27-38.642.27-57.829.811-1.892 9.187-4.594 48.911 1.892 51.614 12.971 5.675 41.616 5.134 54.586 1.621 4.595-2.432 2.433-45.399 1.351-53.776zm-85.662 57.56c5.405 2.432 8.647 2.432 9.728-4.324 1.892-8.647 2.432-36.752 4.865-52.155-12.16.27-24.591.811-36.752 1.621-5.405 19.727.27 45.129 22.159 54.858zm-65.666-11.08c43.778 47.02 92.689 85.663 155.923 106.47 67.558-19.186 115.659-59.991 163.219-107.011-11.095-4.315-7.715-10.363-7.296-11.62-8.918-.81-17.835-1.892-26.483-2.702-9.458 32.968-35.94 52.965-46.75 31.616-2.702-5.134-3.513-11.62-4.594-16.754-3.783 8.377-13.242 8.107-24.591 8.918-13.241 1.081-31.617 1.351-44.048-2.972-2.972 12.971-11.079 12.971-26.752 14.322-14.052 1.352-48.642 4.054-54.857-10.809-1.081 28.644-35.13 9.998-45.129-7.026-3.243-5.675-5.405-11.35-7.026-17.565-7.837.81-15.673 1.621-23.511 2.702 2.443 3.663 1.549 9.052-8.105 12.431zM115.6 453.545c-5.674-23.239-18.646-49.722-33.508-54.046-22.429-6.756-68.909 23.51-66.207 54.586 12.701 19.457 39.994 35.67 59.181 36.481 17.835.81 35.94-11.08 39.724-28.914.539-2.432.81-5.134.81-8.107zm7.296-5.944c33.509-19.457 69.179-35.671 105.931-47.02-38.643-20.537-68.098-47.831-97.283-77.016-2.162 1.352-5.134 2.432-7.836 3.513-1.637 4.91 8.718 5.33 5.405 12.431-2.162 4.054-8.648 7.567-15.133 9.188-2.161 2.702-5.134 4.864-7.836 6.485h-.27c-.27 13.511-.27 27.024.27 40.535 8.939 15.964 15.426 33.314 16.752 51.884zm320.764 12.7c-36.752-21.348-74.044-41.345-115.659-52.965-13.782 6.215-27.833 11.349-42.155 15.403-2.162.811-2.162.811-4.324 0-11.89-3.783-23.239-8.107-34.859-13.241-40.265 11.62-77.286 29.185-112.416 50.803h-.27v.27c.27 0 .27 0 .27-.27 103.227 4.054 206.455 3.513 309.413 0zm27.023-64.045l-.27.27c.541-13.782.811-27.563.811-41.345-2.973-1.621-5.675-4.054-8.107-6.756-6.485-1.351-12.971-5.134-15.133-8.918-1.892-4.053 1.351-7.566 5.945-10.269-.27-.541-.541-1.621-.541-2.432-2.972-.811-5.405-1.892-7.567-3.243-31.616 29.455-65.396 56.749-103.498 76.746 38.914 11.62 75.935 28.104 111.875 47.561 1.05-14.692 7.231-35.749 16.485-51.614zm23.24 3.244c-14.593 4.323-27.834 30.806-33.509 54.046 0 23.826 21.278 37.897 40.534 37.022 19.186-.811 46.48-17.024 59.181-36.481 2.973-31.077-43.507-61.344-66.206-54.587zM290.709 134.133c.045 0 .089.003.134.003.046 0 .09-.003.136-.003h-.27zm0 96.743c28.645 0 51.884-21.618 51.884-48.371 0-36.092-40.507-58.079-72.151-44.318 9.458 2.972 16.484 11.62 16.484 21.618 0 23.257-33.291 31.955-46.48 11.35-7.297 34.067 19.368 59.721 50.263 59.721zM68.039 474.083c.54 6.486 12.16 12.701 21.618 9.458 6.756-2.703 14.593-10.539 17.295-16.214 2.973-7.026-1.081-19.997-9.728-18.375-8.917 1.621-29.725 16.754-29.185 25.131zm410.75-25.131c-8.377-1.621-12.431 11.349-9.458 18.375 2.432 5.675 10.269 13.511 17.295 16.214 9.187 3.243 21.078-2.972 21.348-9.458.811-8.377-20.267-23.51-29.185-25.131z"],
    +  "osi": [495, 512, [], "f41a", "M0 259.2C2.3 123.4 97.4 26.8 213.8 11.1c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.7-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 6.4-42.4-24.5-78.7-64.5-82.2-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119C1.9 318.7 1.6 280.2 0 259.2zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 31.9 18.4 49.5 53.8 45.2 90.4-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.2 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161C459.8 112 354.1 14.7 218 31.5 111.9 44.5 22.7 134 20.9 257.3z"],
    +  "page4": [496, 512, [], "f3d7", "M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"],
    +  "pagelines": [384, 512, [], "f18c", "M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"],
    +  "palfed": [576, 512, [], "f3d8", "M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z"],
    +  "patreon": [512, 512, [], "f3d9", "M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"],
    +  "paypal": [384, 512, [], "f1ed", "M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"],
    +  "penny-arcade": [640, 512, [], "f704", "M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z"],
    +  "periscope": [448, 512, [], "f3da", "M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"],
    +  "phabricator": [496, 512, [], "f3db", "M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z"],
    +  "phoenix-framework": [640, 512, [], "f3dc", "M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"],
    +  "phoenix-squadron": [513, 512, [], "f511", "M96.24 62.81C142.91 26.57 202.15 6.57 261.28 8.08c29.67-.38 59.29 5.38 87.17 15.37-24.2-4.64-49.18-6.35-73.6-2.45-43 5.35-83.26 27.23-112.16 59.35 5.69-.99 10.81-3.68 16.07-5.88 18.19-7.89 37.6-13.29 57.4-14.87 19.8-2.14 39.75-.43 59.45 1.93-14.46 2.79-29.2 4.58-43.11 9.61-34.53 11.11-65.46 33.26-86.55 62.82-13.84 19.77-23.7 42.99-24.74 67.33-.35 16.54 5.23 34.91 19.89 44.17 11.13 6.66 24.85 9.39 37.63 6.76 15.49-2.47 30.16-8.67 43.73-16.38 11.55-6.84 22.73-14.59 32.05-24.32 3.8-3.23 2.54-8.48 2.63-12.83-2.13-.34-4.4-1.11-6.32.3a203.975 203.975 0 0 1-35.93 15.42c-20.07 6.19-42.28 8.48-62.28.78 12.83 1.73 26.14.31 37.85-5.46 20.29-9.75 36.92-25.27 54.6-38.88 27.84-21.29 57.64-40.11 89.17-55.47 25.78-12.01 53.09-22.85 81.81-24.2-15.68 13.76-32.25 26.6-46.92 41.51-14.55 14.04-27.54 29.58-40.23 45.31-3.53 4.61-8.98 6.96-13.62 10.19-22.24 15.03-40.6 35.96-52.04 60.28-9.36 19.74-14.55 41.97-11.81 63.84 1.95 13.73 8.74 27.67 20.96 35.01 12.94 7.99 29.14 8.09 43.61 5.11 32.9-7.47 61.61-28.97 81.28-56 20.5-27.6 30.61-62.38 29.25-96.64-.52-7.52-1.58-15-1.67-22.55 8.02 19.54 14.87 39.83 16.7 61.01 2.01 14.32.75 28.84-1.62 43.02-1.92 11.02-5.69 21.58-7.81 32.53 20.36-22.73 34.17-51.24 39.46-81.31 5.72-35.37.58-72.36-14.25-104.95 20.84 32.12 32.43 69.79 35.81 107.8.5 12.77.5 25.58 0 38.34-2.91 34.26-12.97 67.95-29.76 98-26.2 47.48-68.2 85.89-117.54 108.32-78.52 36.34-175.2 31.41-248.72-14.72-38.84-23.78-71.06-58.32-91.68-98.96C10.72 337.43 2.04 305.5 0 273.13V241.7c3.94-69.97 40.99-136.32 96.24-178.89m222.65 80.57c5.51-.8 10.82-2.57 16.02-4.5 4.99-1.77 9.27-5.95 10.35-11.25-8.91 5-17.95 9.95-26.37 15.75z"],
    +  "php": [640, 512, [], "f457", "M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"],
    +  "pied-piper": [448, 512, [], "f2ae", "M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"],
    +  "pied-piper-alt": [576, 512, [], "f1a8", "M242 187c6.3-11.8 13.2-17 25.9-21.8 27.3-10.3 40.2-30.5 58.9-51.1 11.9 8.4 12 24.6 31.6 23v21.8l6.3.3c37.4-14.4 74.7-30.2 106.6-54.6 48.3-36.8 52.9-50 81.3-100l2-2.6c-.6 14.1-6.3 27.3-12.4 39.9-30.5 63.8-78.7 100.3-146.8 116.7-12.4 2.9-26.4 3.2-37.6 8.9 1.4 9.8 13.2 18.1 13.2 23 0 3.4-5.5 7.2-7.5 8.6-11.2-12.9-16.1-19.3-22.7-22.1-7.6-3.5-63.9-6.4-98.8 10zm137.9 256.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9L244 246zm-12.6 31.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zM555.5 0l-.6 1.1-.3.9.6-.6.3-1.4zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46v27.3l11.8-3.4-2.9-23.8h-8.9zm76.1 2.9c0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3l2 12.4c9-1.5 58.4-6.6 58.4-14.1z"],
    +  "pied-piper-hat": [640, 512, [], "f4e5", "M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"],
    +  "pied-piper-pp": [448, 512, [], "f1a7", "M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"],
    +  "pinterest": [496, 512, [], "f0d2", "M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"],
    +  "pinterest-p": [384, 512, [], "f231", "M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"],
    +  "pinterest-square": [448, 512, [], "f0d3", "M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"],
    +  "playstation": [576, 512, [], "f3df", "M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z"],
    +  "product-hunt": [512, 512, [], "f288", "M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z"],
    +  "pushed": [432, 512, [], "f3e1", "M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"],
    +  "python": [448, 512, [], "f3e2", "M167.8 36.4c-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1zm-6.7 28.4c11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4zm185.2 81.4v47.5c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6-7.7-30.9-22.3-54.2-53.4-54.2h-40.1zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3z"],
    +  "qq": [448, 512, [], "f1d6", "M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z"],
    +  "quinscape": [489, 512, [], "f459", "M301.9 474.6h-1.3c-87.3 0-158.1-70.8-158.1-158.1s70.8-158.1 158.1-158.1c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C489.1 117.5 379.6 8 244.5 8 109.5 8 0 117.5 0 252.6s109.5 244.6 244.5 244.6c24.8 0 47.8-3.2 70.4-10.1-5.2-3.5-9-8.2-13.4-12.6l.4.1zm-21.2-69.8c0-54.8 44.4-99.2 99.2-99.2 54.8 0 99.2 44.4 99.2 99.2 0 54.8-44.4 99.2-99.2 99.2-54.8 0-99.2-44.4-99.2-99.2"],
    +  "quora": [448, 512, [], "f2c4", "M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z"],
    +  "r-project": [581, 512, [], "f4f7", "M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"],
    +  "ravelry": [512, 512, [], "f2d9", "M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z"],
    +  "react": [512, 512, [], "f41b", "M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zm-130 189.1c4.6 8.8 9.3 17.5 14.3 26.1 5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5zm0-50.6c-6.3-14.9-11.6-29.5-16-43.6 14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26zm11.4 25.3c6.6-13.8 13.8-27.3 21.4-40.6 7.6-13.3 15.8-26.2 24.4-38.9 15-1.1 30.3-1.7 45.9-1.7 15.6 0 31 .6 45.9 1.7 8.5 12.6 16.6 25.5 24.3 38.7 7.7 13.2 14.9 26.7 21.7 40.4-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6-15.7 0-30.9-.5-45.6-1.4-8.7-12.7-16.9-25.7-24.6-39-7.7-13.3-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 210.2c25.3 0 45.8 20.5 45.8 45.8 0 25.3-20.5 45.8-45.8 45.8-25.3 0-45.8-20.5-45.8-45.8 0-25.3 20.5-45.8 45.8-45.8"],
    +  "readme": [576, 512, [], "f4d5", "M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z"],
    +  "rebel": [512, 512, [], "f1d0", "M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z"],
    +  "red-river": [448, 512, [], "f3e3", "M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z"],
    +  "reddit": [512, 512, [], "f1a1", "M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z"],
    +  "reddit-alien": [512, 512, [], "f281", "M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"],
    +  "reddit-square": [448, 512, [], "f1a2", "M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z"],
    +  "rendact": [496, 512, [], "f3e4", "M248 8C111 8 0 119 0 256s111 248 248 248c18.6 0 36.7-2.1 54.1-5.9-5.6-7.4-10.8-14.4-15.9-21.3-12.4 2.1-25.2 3.3-38.3 3.3C124.3 480 24 379.7 24 256S124.3 32 248 32s224 100.3 224 224c0 71-33 134.2-84.5 175.3-25.9 18.8-39.1 21.4-83.5-44.2-78.7-112.9-48-71.1-73.7-108.3 72.8 8.9 228.5-72 168.6-168.6C314-26.8 15 93.8 59.7 226.4c3.2 9.8 14.4 38.6 45.6 38.6 2 0 2.6-.6 2-1.7-4.4-8.7-20.1-9.8-20.1-37.4 0-40.5 40.5-89.6 100.3-120 66.1-32.3 131.9-30.2 158.2 5.4 27.2 38.3-20.9 119.2-120.4 136.9 7.5-9.4 57-75.2 62.8-84 22.7-34.6 23.6-49 14-59.2-15.5-16.9-29.5-10.3-50.7-11.7-10.8-.9-113.7 181.2-136.4 216.9-5.9 9-21.2 34.1-21.2 50.9 0 21.3 2.8 51.4 20.6 51.4 10.6 0 8-18.7 8-26.6 0-12.9 27.4-49.4 74.8-104.6 20.4 36.1 57.7 114.3 130.2 209.7 98-33.1 168.5-125.8 168.5-235C496 119 385 8 248 8z"],
    +  "renren": [512, 512, [], "f18b", "M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"],
    +  "replyd": [448, 512, [], "f3e6", "M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z"],
    +  "researchgate": [448, 512, [], "f4f8", "M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"],
    +  "resolving": [496, 512, [], "f3e7", "M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z"],
    +  "rev": [410, 512, [], "f5b2", "M270.67 274.89c0 36.16-29.41 65.57-65.56 65.57s-65.57-29.41-65.57-65.57 29.41-65.56 65.57-65.56 65.56 29.4 65.56 65.56zm139.55-5.05h-.13c-1.49-61.55-30.1-116.35-74.32-152.98l-45.38 26.2c43.17 28.03 71.81 76.63 71.81 131.82 0 86.62-70.47 157.09-157.09 157.09S48.02 361.5 48.02 274.88c0-81.86 62.96-149.27 142.99-156.43v39.12l108.76-62.79L191.01 32v38.32C84.31 77.57 0 166.36 0 274.89c0 111.59 89.12 202.29 200.06 204.98v.13h210.16V269.84z"],
    +  "rocketchat": [448, 512, [], "f3e8", "M448 256.2c0-87.2-99.6-153.3-219.8-153.3-18.8 0-37.3 1.6-55.3 4.8-11.1-10.5-24.2-20-38-27.4C61.2 44.2 0 79.4 0 79.4s56.9 47.1 47.6 88.3c-52.3 52.3-52.5 124.1 0 176.6C56.9 385.6 0 432.6 0 432.6s61.2 35.2 134.9-.8c13.8-7.5 26.9-16.9 38-27.4 18 3.2 36.5 4.8 55.3 4.8 120.3-.1 219.8-65.8 219.8-153zm-219.7 124c-23.7 0-46.3-2.8-67.3-7.8-21.3 25.8-68.1 61.7-113.6 50.1 14.8-16 36.7-43.1 32-87.6-27.3-21.4-43.6-48.7-43.6-78.5 0-68.4 86.2-123.9 192.5-123.9S420.8 188 420.8 256.4c0 68.3-86.2 123.8-192.5 123.8zm25.6-123.9c0 14.2-11.5 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.5-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm88.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm-177.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.2 0 25.6 11.6 25.6 25.8z"],
    +  "rockrms": [496, 512, [], "f3e9", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"],
    +  "safari": [512, 512, [], "f267", "M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z"],
    +  "sass": [640, 512, [], "f41e", "M551.1 291.9c-22.4.1-41.8 5.5-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-3.8 11.1-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-2.7 11.4-5.3 19.1-2.6 7.7-33.9 77.3-42.1 95.4-4.2 9.2-7.8 16.6-10.4 21.6s-.2.3-.4.9c-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2-.8 0-1.4 2-1.4 2s10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.4-35.4 189.9-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8C367 196.5 415.1 130.2 401 74.7 386.6 18.3 293.1-.2 204.6 31.2 151.9 49.9 94.9 79.3 53.9 117.6 5.2 163.2-2.6 202.9.6 219.5c11.4 58.9 92.6 97.3 125.1 125.7-1.6.9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5s1.4 9.7 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2s0 .1.1.2c-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 6.2-2.2 13.4-5.7 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6s1.4 9.7 6.2 25.8c2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 6.5-2.2 14.3-5.7 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8-2.1 14.6-13.8 22.6-17.7 25-3.9 2.4-5.1 3.3-4.8 5.1.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3C54.6 451 59.3 421.4 82 400c13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.3 30.4.3 57.2-19.1 78.3zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5.1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.8 1.9 7.4 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4z"],
    +  "schlix": [448, 512, [], "f3ea", "M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"],
    +  "scribd": [384, 512, [], "f28a", "M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"],
    +  "searchengin": [460, 512, [], "f3eb", "M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"],
    +  "sellcast": [448, 512, [], "f2da", "M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"],
    +  "sellsy": [640, 512, [], "f213", "M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"],
    +  "servicestack": [496, 512, [], "f3ec", "M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"],
    +  "shirtsinbulk": [448, 512, [], "f214", "M395.208 221.583H406v33.542h-10.792v-33.542zm0-9.625H406v-33.542h-10.792v33.542zm0 86.333H406V264.75h-10.792v33.541zM358.75 135.25h-33.542v10.5h33.542v-10.5zm36.458 206.208H406v-33.542h-10.792v33.542zM311.5 135.25h-33.542v10.5H311.5v-10.5zm-47.25 0H231v10.5h33.25v-10.5zm-47.25 0h-33.25v10.5H217v-10.5zm178.208 33.542H406V135.25h-33.542v10.5h22.75v23.042zm-255.792 259l30.625 13.417 4.375-9.917-30.625-13.417-4.375 9.917zM179.083 445l30.334 13.708 4.374-9.916-30.333-13.417-4.375 9.625zm216.125-60.375H406v-33.542h-10.792v33.542zm-334.833 8.167L91 406.208l4.375-9.624-30.625-13.709-4.375 9.917zm39.666 17.499l30.625 13.417 4.375-9.917-30.625-13.416-4.375 9.916zm132.417 38.501l4.375 9.916L267.459 445l-4.375-9.625-30.626 13.417zm118.417-52.208l4.375 9.624 30.624-13.416-4.374-9.917-30.625 13.709zM311.5 413.791l4.375 9.917 30.625-13.417-4.374-9.916-30.626 13.416zm-39.667 17.501l4.375 9.917 30.625-13.417-4.375-9.917-30.625 13.417zM311.5 46.583h-33.542v10.5H311.5v-10.5zm94.209 0h-33.251v10.5h33.251v-10.5zm-188.709 0h-33.25v10.5H217v-10.5zm141.75 0h-33.542v10.5h33.542v-10.5zm-94.5 0H231v10.5h33.25v-10.5zM448 3.708v406l-226.334 98.584L0 409.708v-406h448zm-29.166 116.958H29.166V390.75l192.792 85.75 196.875-85.75V120.666zm0-87.791H29.166V91.5h389.667V32.875zM75.542 46.583H42.291v10.5h33.251v-10.5zm94.5 0H136.5v10.5h33.542v-10.5zm-47.251 0H89.25v10.5h33.542v-10.5zm7.584 236.542c0-50.167 41.125-91.292 91.292-91.292 50.458 0 91.292 41.125 91.292 91.292 0 50.458-40.833 91.292-91.292 91.292-50.167-.001-91.292-40.834-91.292-91.292zm120.75 18.084c0 13.125-23.917 14.291-32.666 14.291-12.25 0-29.75-2.625-35.875-14.875h-.875L172.666 319c14.876 9.333 29.167 12.25 47.25 12.25 19.542 0 51.042-5.833 51.042-31.209 0-48.125-78.458-16.333-78.458-37.916 0-13.125 20.708-14.875 29.75-14.875 10.791 0 29.166 3.208 35.583 13.124h.875l8.751-16.916c-15.167-6.125-27.417-11.959-44.334-11.959-20.125 0-49.583 6.417-49.583 31.792 0 44.334 77.583 11.959 77.583 37.918zM122.791 135.25H89.25v10.5h33.542v-10.5zm-69.999 10.5h22.75v-10.5H42v33.542h10.792V145.75zm0 32.666H42v33.542h10.792v-33.542zm117.25-43.166H136.5v10.5h33.542v-10.5zm-117.25 86.333H42v33.542h10.792v-33.542zm0 86.334H42v33.542h10.792v-33.542zm0-43.167H42v33.542h10.792V264.75zm0 86.333H42v33.542h10.792v-33.542z"],
    +  "shopware": [495, 512, [], "f5b5", "M395.5 455.27c-42.95 31.79-93.95 48.59-147.48 48.59-137.21 0-248.02-111-248.02-248 0-137.19 111.04-248 248.02-248 61.3 0 120.14 22.55 165.68 63.5 2.62 2.36.58 6.64-2.86 6.18-17.67-2.43-36.75-3.66-56.71-3.66-129.36 0-222.4 53.47-222.4 155.35 0 109.04 92.13 145.88 176.83 178.73 33.64 13.04 65.4 25.36 86.96 41.59 1.9 1.44 1.89 4.31-.02 5.72zm99.46-222.32c-.08-.94-.55-1.83-1.27-2.44-51.76-42.96-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62.01 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93 1.88 1.05 4.26.19 5.05-1.82 18.89-48.39 17.94-90.23 15.93-113.31z"],
    +  "simplybuilt": [512, 512, [], "f215", "M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"],
    +  "sistrix": [448, 512, [], "f3ee", "M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"],
    +  "sith": [448, 512, [], "f512", "M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z"],
    +  "skyatlas": [640, 512, [], "f216", "M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"],
    +  "skype": [448, 512, [], "f17e", "M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"],
    +  "slack": [448, 512, [], "f198", "M244.2 217.5l19.3 57.7-59.8 20-19.3-57.7 59.8-20zm41.4 243.7C131.6 507.4 65 471.6 18.8 317.6S8.4 97 162.4 50.8C316.4 4.6 383 40.4 429.2 194.4c46.2 154 10.4 220.6-143.6 266.8zM366.2 265c-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-19.3-57.7 29-9.7c12.2-3.9 18.6-17.2 14.7-29.4-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-59.8 20.1-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l19.3 57.7-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 59.8-20.1 10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 29-9.7c12.2-4.2 18.6-17.5 14.7-29.6z"],
    +  "slack-hash": [448, 512, [], "f3ef", "M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z"],
    +  "slideshare": [512, 512, [], "f1e7", "M249.429 211.436c0 31.716-27.715 57.717-61.717 57.717-34.001 0-61.716-26.001-61.716-57.717 0-32.001 27.715-57.716 61.716-57.716 34.001 0 61.717 25.715 61.717 57.716zm254.294 50.002c-18.286 22.573-53.144 50.288-106.289 72.003C453.722 525.163 260 555.735 263.143 457.446c0 1.714-.286-52.859-.286-93.432-4.285-.858-8.571-2-13.714-3.143 0 40.858-.286 98.289-.286 96.575C252 555.735 58.278 525.163 114.566 333.441c-53.145-21.715-88.003-49.43-106.29-72.003-9.143-13.714.858-28.287 16.001-17.715 2 1.428 4.285 2.857 6.285 4.285V49.716C30.563 22.287 51.135 0 76.565 0h359.157c25.429 0 46.002 22.287 46.002 49.716v198.293l6-4.285c15.143-10.573 25.143 4 15.999 17.714zm-46.572-189.15c0-32.858-10.572-45.716-40.859-45.716H98.566c-31.716 0-40.573 10.858-40.573 45.716v192.293c67.717 35.43 125.72 29.144 157.435 28.001 13.429-.286 22.001 2.286 27.144 7.715 1.689 1.687 10.023 9.446 20.287 17.143 1.143-15.715 10.001-25.715 33.716-24.858 32.287 1.428 91.718 7.715 160.577-29.716V72.288zM331.146 153.72c-34.002 0-61.716 25.715-61.716 57.716 0 31.716 27.715 57.717 61.716 57.717 34.287 0 61.716-26.001 61.716-57.717 0-32.001-27.429-57.716-61.716-57.716z"],
    +  "snapchat": [496, 512, [], "f2ab", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"],
    +  "snapchat-ghost": [512, 512, [], "f2ac", "M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z"],
    +  "snapchat-square": [448, 512, [], "f2ad", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"],
    +  "soundcloud": [640, 512, [], "f1be", "M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z"],
    +  "speakap": [430, 512, [], "f3f3", "M55.01 391.78C-24.4 303.59-16.95 167.42 71.65 87.64s224.8-72.96 304.21 15.24 71.96 224.36-16.64 304.14c-18.74 16.87 64.03 43.09 42.02 52.26-82.06 34.21-253.91 35.04-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32.02-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 79.96-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 85.98 52.26-.37 21.28-26.42 25.81-38.59 25.6-2.98-.05-30.23-.46-47.61-24.62l-39.95 42.61c28.16 27.01 58.99 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-84.96-19.45-84.43-49.75.41-23.25 30.96-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z"],
    +  "spotify": [496, 512, [], "f1bc", "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"],
    +  "squarespace": [512, 512, [], "f5be", "M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z"],
    +  "stack-exchange": [448, 512, [], "f18d", "M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"],
    +  "stack-overflow": [384, 512, [], "f16c", "M293.7 300l-181.2-84.5 16.7-36.5 181.3 84.7-16.8 36.3zm48-76L188.2 95.7l-25.5 30.8 153.5 128.3 25.5-30.8zm39.6-31.7L262 32l-32 24 119.3 160.3 32-24zM290.7 311L95 269.7 86.8 309l195.7 41 8.2-39zm31.6 129H42.7V320h-40v160h359.5V320h-40v120zm-39.8-80h-200v39.7h200V360z"],
    +  "staylinked": [440, 512, [], "f3f5", "M201.6 127.4c4.1-3.2 10.3-3 13.8.5l170 167.3-2.7-2.7 44.3 41.3c3.7 3.5 3.3 9-.7 12.2l-198 163.9c-9.9 7.6-17.3.8-17.3.8L2.3 314.6c-3.5-3.5-3-9 1.2-12.2l45.8-34.9c4.2-3.2 10.4-3 13.9.5l151.9 147.5c3.7 3.5 10 3.7 14.2.4l93.2-74c4.1-3.2 4.5-8.7.9-12.2l-84-81.3c-3.6-3.5-9.9-3.7-14-.5l-.1.1c-4.1 3.2-10.4 3-14-.5l-68.1-64.3c-3.5-3.5-3.1-9 1.1-12.2l57.3-43.6m14.8 257.3c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7"],
    +  "steam": [496, 512, [], "f1b6", "M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z"],
    +  "steam-square": [448, 512, [], "f1b7", "M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"],
    +  "steam-symbol": [448, 512, [], "f3f6", "M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z"],
    +  "sticker-mule": [576, 512, [], "f3f7", "M353.1 509.8c-5.9 2.9-32.1 3.2-36.5-.5-4.1-3-2.2-11.9-1.5-15 2.2-15-2.5-7.9-9.8-11.5-3.1-1.5-4.1-5.5-4.6-10-.5-1.5-1-2.5-1.5-3.5-1.7-10.7 6.8-33.6 8.2-43.4 4.9-23.7-.7-37.2 1.5-46.9 3.7-16.2 4.1-3.5 4.1-29.9-1.4-25.9 3.3-36.9.5-38.9-14.8 0-64.3 10.7-112.2 2-46.1-8.9-59.4-29-65.4-30.9-10.3-4.5-23.2.5-27.3 7-.1.1-35 70.6-39.6 87.8-6.2 20.5-.5 47.4 4.1 66.8 0 .1 4.5 14.6 10.3 19.5 2.1 1.5 5.1 2.5 7.2 4.5 2.8 2.7 9.4 15.2 9.8 16 2.6 4.5 3.6 8-1.5 10.5-3.6 2-9.3 2.5-14.4 2.5-2.6.5-1.5 3.5-3.1 5-2.9 2.8-20.7 6.1-29.9 2.5-2.6-1-5.7-3-6.2-5-1.5-4 2.1-9-1-12.5-4.5-2.9-13.1-2-17-12-2.2-5.4-2.6-7.6-2.6-49.4 0-9.7-5.9-38.7-8.2-46.9-1.5-5.5-1.5-11.5 0-16 .3-.9 4.1-4.6 4.1-13-1-1.5-4.6-.5-5.1-1.5-10.4-80.6-5.9-79-7.7-98.3-1.5-16-10.9-43.9-6.7-64.3.5-2.4 3.4-21 24.2-38.9 31-26.7 48.4-38.3 159-11.5 1.1.4 66.3 21.1 110.7-9 15.5-11.3 28.8-11.3 35.5-16 .1-.1 61.7-52.1 87-65.3 47.2-29.4 69.9-16.7 75.1-18 4.7-1 13.4-25.8 17-25.8 5.5 0 1.6 20.2 3.6 25.9.5 2 3.6 5 6.2 5 2.3 0 1.7-.8 10.3-5 8.4-5.4 14.9-17.6 20.6-17 11.7 1.6-19 41.6-19 46.9 0 2 .2.8 4.6 9.5 2.6 5.5 4.6 13.5 6.2 20 8.3 29.7 5.7 14.6 13.4 36.9 20.2 50.1 20.6 45.2 20.6 52.9 0 7.5-4.1 11-7.2 16.5-1.5 3-4.6 7.5-7.2 8-2.7.7 7-1.5-13.4 2.5-7.2 1-13.4-4.5-14.9-9.5-1.6-4.7 2.8-10.1-11.8-22.9-10.3-10-21.1-11.3-31.9-17-9.8-5.7-11.9 1-18 8-18 22.9-34 46.9-52 69.8-11.8 15-24.2 30.4-33.5 47.4-3.9 6.8-9.5 28.1-10.3 29.9-6.2 17.7-5.5 25.8-16.5 68.3-3.1 10-5.7 21.4-8.7 32.4-2.2 6.8-7.4 49.3-.5 59.4 2.1 3.5 8.7 4.5 11.3 8 .1.1 9.6 18.2 9.3 20 0 6.1-9.4 5.6-11.3 6.5-4.8 2.9-3.8 5.9-6.4 7.4"],
    +  "strava": [369, 512, [], "f428", "M301.6 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220h-67.6zM151.4 0L0 292h89.2l62.2-116.1L213.1 292h88.5L151.4 0z"],
    +  "stripe": [640, 512, [], "f429", "M640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9m-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4h-45.9zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7m-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8M346.4 124v36.2l-44.6 9.5v-36.2l44.6-9.5m-44.5 59.2h44.6v153.2h-44.6V183.2zm-47.8 13.1c10.4-19.1 31.1-15.2 37.1-13.1V224c-5.7-1.8-23.4-4.5-33.9 9.3v103.1H213V183.2h38.4l2.7 13.1m-89-13.1h33.7V221h-33.7v63.2c0 26.2 28 18 33.7 15.7v33.8c-5.9 3.2-16.6 5.9-31.2 5.9-26.3 0-46.1-17-46.1-43.3l.2-142.4 43.3-9.2.1 38.5zM44.9 228.3c0 20 67.9 10.5 67.9 63.4 0 32-25.4 47.8-62.3 47.8-15.3 0-32-3-48.5-10.1v-40c14.9 8.1 33.9 14.2 48.6 14.2 9.9 0 17-2.7 17-10.9 0-21.2-67.5-13.2-67.5-62.4 0-31.4 24-50.2 60-50.2 14.7 0 29.4 2.3 44.1 8.1V230c-13.5-7.3-30.7-11.4-44.2-11.4-9.3.1-15.1 2.8-15.1 9.7"],
    +  "stripe-s": [362, 512, [], "f42a", "M144.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C287.3 7.2 240.1 0 192.8 0 77.1 0 0 60.4 0 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5c53 22.8 106.8 32.4 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9"],
    +  "studiovinari": [512, 512, [], "f3f8", "M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"],
    +  "stumbleupon": [512, 512, [], "f1a4", "M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z"],
    +  "stumbleupon-circle": [496, 512, [], "f1a3", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"],
    +  "superpowers": [448, 512, [], "f2dd", "M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"],
    +  "supple": [640, 512, [], "f3f9", "M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"],
    +  "teamspeak": [511, 512, [], "f4f9", "M.82 237.82c2.36-15.52 10.69-27.04 24.88-34.03 3.5-1.85 5.65-3.5 6.37-7.81 6.17-33.41 19.53-63.94 39.37-91.59 2.36-3.19 4.01-5.35 1.03-9.35-3.7-5.35-1.03-10.18 2.98-14.49 28.06-31.87 61.88-55.1 101.98-67.44 95.81-29.4 180.1-9.35 252.37 60.45 6.68 6.37 15.52 12.85 6.99 24.36-1.34 1.85 1.03 3.5 2.16 5.04 20.66 28.06 34.23 59.42 40.4 93.65.82 3.7 2.98 5.04 5.86 6.37 17.37 8.84 25.7 23.34 26.01 42.25 0 17.17 1.85 34.54-1.03 51.71-4.01 24.67-29.19 41.74-53.25 36.7-7.2-1.64-9.35-7.2-9.35-14.19 0-28.06.82-56.44 0-84.6-1.85-75.76-36.18-132.81-102.28-169.41C234.28 4.98 92.11 72.42 67.54 196.91c-6.06 30.42-1.74 48.27-3.7 125.82-.31 7.2-4.32 11.2-12.03 11.51C20.97 335.58 0 316.05 0 285.21v-20.87m221.74 106.81c11.82-4.32 20.05-11.82 22.51-24.36 2.36-12.34-12.03-30.02-32.38-48.73-20.87-19.22-48.22-39.06-63.43-46.57-21.69-12.03-41.74-1.85-46.26 22.72-5.04 26.21 0 51.4 14.49 73.91 10.18 15.52 25.39 22.72 43.38 24.05 11.62.62 52.54 2.16 61.69-1.02m129.83 5.55c36.5 2.81 59.33-28.55 58.39-60.45-2.14-45.17-66.17-16.48-87.79-8.02-73.16 28.14-45.05 54.92-22.2 60.75m149.26-1.33c-2.98-2.36-7.2-1.03-8.33 2.36-8.02 25.39-44.72 112.46-172.08 121.51-149.67 10.49 80.29 43.59 145.36-6.37 22.72-17.37 47.6-35.05 46.57-85.43-.32-10.07-4.84-26.72-11.52-32.07"],
    +  "telegram": [496, 512, [], "f2c6", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"],
    +  "telegram-plane": [448, 512, [], "f3fe", "M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"],
    +  "tencent-weibo": [384, 512, [], "f1d5", "M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z"],
    +  "the-red-yeti": [505, 512, [], "f69d", "M484.41 241.74l20.66 7.13c-9.56-23.91-23.93-36.96-31.72-44.76l7.13-18.2c.25 0 12.28-27.79-2.46-30.74-.63-11.35-6.59-27.05-18.44-27.05-7.62-10.57-17.71-12.3-30.74-5.9-8.85 4.18-17.71 10.08-25.33 16.48-5.3-6.44-2.95.38-2.95-29.76-37.08-24.28-45.4-11.73-74.76 2.95l.49.49c-21.15-7.62-44.02-12.05-68.36-13.28-5.55-8.71-18.6-19.1-25.08-25.08l24.84 7.13c-5.49-5.49-26.78-12.91-34.18-15.25 18.2-4.11 29.78-20.77 42.54-32.95-34.92-10.08-67.87-5.9-97.88 11.8L179.97.48 178.24 0c-31.6 24.16-32.99 41.9-33.69 45.49-.91-2.39-6.32-19.61-15.25-27.05-3.44 8.85-3.44 17.21-.49 25.33 2.95 8.36 5.9 14.76 8.36 18.94-16.04-3.3-28.35-4.9-49.18 0H84.3l32.95 14.26c-20.66 19.43-35.9 41.81-46.72 67.38l-1.72 8.36 1.72 1.72 7.62-4.67c-3.33 11.64-5.27 19.39-6.64 25.82-11.31 12.79-20.41 26.07-27.79 40.33-14.97 1-31.82 10.78-40.33 14.26l2.95 3.44 28.77.98c-.49.98-.74 2.21-1.23 3.2-7.29 6.38-39.78 37.65-32.95 80.66l20.17-22.38c.49 1.72.74 3.44 1.23 5.16 0 25.53.37 89.64 64.92 150.5 43.78 40.1 96.16 60.27 157.64 60.27 121.73 0 223.05-87.29 223.05-211.49 6.8-9.72-1.24 3.03 16.72-25.08l13.03 14.26 2.46-.49c-1.72-11.31-4.67-22.38-8.85-34.18-2.22-6.4-4.68-10.33-6.89-13.28zm-15.49-41.32l-14.26-11.8 18.2-1.23-3.94 13.03zm-74.76-89.27l-.49 21.89c5.52 18.13 16.88 17.21 22.38 17.21l-3.44-4.67 22.38-5.41c-10.08.49-18.94.49-27.05 0 12.81-2.13 33.32-29.03 43.04-11.31 3.44 7.62 6.39 17.21 9.34 27.79l1.72-5.9c-1.23-4.18-1.72-9.34-1.72-15.25 5.41.49 8.85 3.44 9.34 10.08.49 6.39 1.72 14.76 3.44 25.33l4.67-11.31c4.59 0 4.47-3.61-2.46 20.66-20.89-8.7-35.09-8.36-46.48-8.36l18.2-15.98c-25.28 8.15-33.03 10.8-54.84 20.9-1.08-5.41-4.98-13.5-15.98-19.92-3.18 3.82-2.76.9-.74 14.76h-2.46c-1.23-8.36-4.18-15.98-8.36-23.12l4.18-3.44c8.36-7.13 11.8-14.26 10.57-21.89-.49-6.39-5.41-13.53-13.53-20.66 5.66-3.2 15.25-.25 28.29 8.6zm-39.59-10.08c2.69 1.92 11.4 5.38 18.94 17.21 4.2 8.4 3.98 9.81 3.44 11.07-.48 2.41-.46 4.33-2.95 7.13-1.72 2.46-5.41 4.67-11.8 7.62-7.62-13.03-16.48-23.61-27.79-31.23l20.16-11.8zM87.25 143.12l1.23-1.72c1.23-2.95 4.18-7.62 9.34-15.25l2.46-3.44-13.03 12.3 5.41-4.67-10.08 9.34-4.18 1.23c12.3-24.1 23.12-41.31 32.46-50.17 9.34-9.34 15.98-15.98 20.17-19.43l-6.39 1.23c-11.31-4.18-19.43-7.13-24.84-8.36 2.46-.49 3.69-.49 3.2-.49 10.33 0 17.46.49 20.9 1.23 5.41 1.72 10.57 2.46 15.98 2.46l.49-1.72-8.36-35.9 13.53 29.02c1.72-2.46 4.18-7.13 5.9-14.26 1.72-6.39 5.41-13.03 10.08-19.43 4.67-6.39 7.62-10.57 9.34-11.31-2.95 8.85-4.67 17.21-6.39 25.33l-1.72 7.13-.49 4.67 2.46 2.46c21.89-13.53 45.49-19.43 71.32-18.94l21.15.49c-11.8 13.53-27.79 21.89-48.45 24.84-8.61 1.48-16.23 2.46-23.36 2.95l-.25-.49-2.46-1.23c-5.16-.98-9.84-.25-14.02 1.97-2.46-.25-4.92-.49-7.13-.74l-2.46 1.72.49 1.23c1.97.25 3.93.49 6.15.74l-1.97 3.44 3.44-.49-10.57 11.31c-4.18 2.95-5.41 6.39-4.18 9.34l5.41-3.44h1.23c6.39-8.36 15.25-13.53 25.33-15.25v-2.95c6.39.49 13.03.98 19.43 1.23 6.39 0 8.36.49 5.41 1.23 7.62 4.18 14.26 8.85 20.66 13.53 13.53 10.08 23.61 21.89 30 35.41 8.85 18.2 13.53 37.13 13.53 56.56 0 10.08-1.23 19.43-2.95 28.28-2.35 10.79-7.8 29.62-15.98 45.99l2.46.49c18.23-19.67 41.9-15.98 49.18-15.98l-6.39 5.9 22.38 17.71-1.72 30.74c-5.41-12.3-16.48-21.15-32.95-27.79 16.48 14.76 23.61 21.15 21.89 20.17-4.81-2.81-3.53-1.87-10.82-3.69 4.12 4.12 17.45 18.79 18.2 20.66l.25.25-.25.25c0 1.76 1.56-1.18-14.02 22.87-75.15-15.31-106.26-42.74-141.16-63.2l11.8 1.23c-11.75-18.53-15.63-17.72-38.36-26.07l10.57-8.36c-8.85-2.95-18.2-2.95-28.28.49l7.62-10.57-1.23-1.72c-14.89 4.34-19.85 9.17-22.62 11.31-1.14-5.46-2.77-12.44-12.3-28.77l-1.23 27.05-13.53-5.41c1.47-25.11 5.4-50.44 13.27-74.54zm276.41 330.03c-49.92 24.96-56.13 22.41-59.02 23.85-29.76-11.8-50.9-31.72-63.45-58.77l30 16.48c-9.77-9.31-18.34-16.54-38.36-44.27l11.8 23.12-17.71-7.62c14.2 21.08 23.47 51.74 66.64 73.53-120.77 24.15-199.03-72.11-200.91-74.27 11.31 9.34 23.12 17.71 35.41 24.84 3.44 1.72 7.13 2.46 10.08 1.23l-15.98-20.66c9.23 4.19 9.49 4.5 69.1 29.02-42.54-20.66-73.78-40.82-93.2-60.25-.49 6.39-1.23 10.08-1.23 10.08 8.85 7.62 15.98 16.48 20.66 26.56-39.05-18.85-57.59-47.61-71.32-82.63 49.89 55.1 118.85 37.49 120.5 37.13 34.79 16.43 69.87 23.61 113.86 10.57 3.32 0 20.3 16.98 25.33 39.1l4.18-2.95-2.46-23.61c8.95 8.95 24.9 22.56 34.43 13.03-15.58-5.32-23.52-9.49-29.51-31.72 4.58 4.2 7.57 9.05 27.79 15l1.23-1.23-10.57-14.26c11.65-4.85-3.54 1.01 31.97-10.82 4.34 34.23 9.05 49.15.74 89.52zM479 258.71l-2.46.49 2.95 9.34c-3.55 5.87-23.73 44.26-71.56 79.68-39.54 29.76-76.58 39.13-80.91 40.33l-7.62-7.13-1.23 2.95 14.26 15.98-7.13-4.67 3.44 4.18h-1.23l-21.89-13.53 9.34 26.56-18.94-27.79-1.23 2.46 7.62 29.02c-6.11-8.24-21.03-32.61-56.81-39.59l32.46 21.15c-31.97 4.67-63.2 2.46-93.2-6.39-4.18-1.23-8.85-2.46-13.53-4.18l1.23-2.95-44.76-22.38 26.07 22.38c-57.66 9.08-112.96-25.41-126.4-83.37l-2.46-16.48-22.35 22.38c19.47-57.51 25.61-57.89 51.4-70.09-9.09-5.33-1.55-3.26-38.36-9.34 15.78-5.79 33.05-15.44 73.04 5.16 2.95-1.48 2.14-1.1 3.69-1.72.64-3.18.41-.82.98-11.8 3.89 10.01 3.63 8.67 2.95 9.34l1.72.49c12.69-6.49 8.92-4.52 16.97-8.85l-5.41 13.53 22.38-5.9-8.36 8.36 2.46 2.46c4.5-1.8 30.35 3.42 40.82 15.98l-23.61-2.46c39.39 22.98 51.46 53.97 55.82 69.59l1.72-1.23c-2.84-22.28-12.37-33.88-15.98-40.08 4.22 4.99 39.2 34.56 110.42 45.99-11.31-.49-23.12 5.41-34.92 18.94l46.72-20.17-9.34 21.89c7.62-10.08 14.76-23.61 21.15-39.59v-.49l1.23-2.95-1.23 15.98c13.53-41.81 25.33-78.45 35.41-109.68l13.53-27.79v-1.97l-5.41-4.18h10.08l5.9 4.18 2.46-1.23-3.44-15.98 12.3 18.94 41.81-20.17-14.76 13.03.49 2.95 17.71-.49c11.31.49 21.89 1.72 32.95 4.18l-23.61 2.46-1.23 2.95 26.56 23.12c10.08 10.08 18.94 20.66 27.05 31.97-11.24-3.29-10.28-3.44-21.15-3.44l12.3 32.46-8.87-12.79zm-277.89-89.03c-34.85 14.42-34.73 13.98-36.15 14.26-20.83 4.73-18.97-24.44-18.94-24.84l5.9-1.23-.49-2.46c-20.17-2.65-31.03 4.17-32.46 4.92.49.49 2.95 3.44 5.9 9.34 4.18-6.39 8.85-10.08 15.25-10.57-1.72 11.31-1.23 22.38 1.72 33.69.07.51 2.57 17.44 27.54 24.1 11.31 2.95 27.05 1.23 48.94-5.41l-9.34.49c-4.18-14.76-6.39-24.84-5.9-29.51 11.31-8.85 21.89-11.31 30.74-7.62h2.46l-11.8-7.62-7.13.49c-5.9 1.23-12.3 4.18-19.43 8.36l3.19-6.39zm11.07-86.81l-2.46.49.49 2.95c8.36-.49 17.21 1.23 26.07 5.9-2.5-5.54-9.97-14.26-28.28-14.26l.49 2.46 3.69 2.46zm-67.14 56.07c-4.04-6.35-3.09-5.05-4.67-6.64 21.69 16.76 16.48 21.41 46.48 23.61l-2.95-4.67c8.85-7.62 13.53-17.21 14.76-28.28 1.72-15.98-1.23-29.51-8.85-41.31l13.03-7.62c0-.49 0-1.23-.49-1.72-4.67-1.72-9.34-1.23-13.53 1.72-12.68 6.67-27.99 20.94-29.02 22.38-1.72 1.72-3.44 5.9-5.41 13.53-1.72 7.13-2.95 14.76-2.95 23.61-4.68-7.96-10.52-6.4-19.92-5.9l7.13 7.62c-16.47 0-23.32 15.43-23.61 15.98 6.81-.01 4.6-7.6 30-12.31zm14.02-25.33c1.23-7.62 3.44-13.03 6.39-17.21 5.41-6.39 10.57-10.08 15.98-11.8 4.18-1.72 7.13 1.23 10.08 9.34 2.46 7.62 3.44 16.48 2.95 25.33-.49 9.34-3.44 17.21-8.36 23.12-2.95 3.44-5.41 5.9-6.39 7.62-4.67.49-8.36 0-11.31-.49l-7.13-3.44-5.41-6.39c.99-10.09 1.48-18.94 3.2-26.08zm62.71-21.39c-6.39-3.44-10.57 2.95-12.3 18.94s2.46 29.51 11.8 39.59c9.34 10.08 18.2 10.57 26.07 2.95 7.87-7.62 3.44-23.61-11.31-47.71-3.19-5.41-7.87-10.08-14.26-13.77zm-4.67 46.23c5.36 2.23 10.51 1.91 12.3-10.57v-4.67l-1.23.49c-4.28-3.05-2.55-4.49-1.72-6.15l.49-.49c-.88-1.23-5.02-8.11-12.54 4.67-.49-13.53.49-21.89 2.95-24.84 1.23-2.46 4.67-1.23 11.31 4.18 6.39 5.41 11.31 15.98 15.25 32.46 6.59 28.06-19.7 26.26-26.81 4.92zm-45.01-5.41c1.57.31 9.34-1.09 9.34-14.76h-.49c-5.44-1.09-2.24-5.47-.74-5.9-1.72-2.95-3.44-4.18-5.41-4.67-8.15 0-11.65 12.66-8.12 21.15 1.24 2.46 3.21 3.69 5.42 4.18zm45.99 61.48c1.72 10.57 4.67 17.71 8.85 21.89-9.26 6.61-27.54 13.85-46.48 15.98l.49 1.23c8.36 1.23 16.48.49 24.84-2.46l-7.13 13.03c4.18-1.72 10.08-7.13 17.71-14.76 11.93-5.51 12.72-5.07 20.17-15.98-12.73-6.58-15.76-13.83-18.45-18.93z"],
    +  "themeco": [441, 512, [], "f5c6", "M199.74 12.29c9.74-5.64 25.59-5.73 35.39-.21l188.13 105.95c9.81 5.52 17.76 19.14 17.76 30.38v213.87c0 11.26-7.93 24.89-17.71 30.46L235.09 499.88c-9.78 5.57-25.58 5.48-35.29-.21L17.58 392.95C7.87 387.26 0 373.52 0 362.27V148.41c0-11.26 7.9-24.96 17.63-30.59L199.74 12.29zM123.54 209c-15.69 0-31.39.14-47.08.14v99.87h18.83v-29.39h28.25c48.94 0 48.79-70.62 0-70.62zm137.96 98.73l-30.25-34.1c36.4-7.39 34.26-64.21-10.7-64.49-15.84 0-31.67-.14-47.51-.14v100.01h18.83v-33.38H210l29.1 33.38h22.4v-1.28zm-40.94-81.04c22.98 0 22.9 31.96 0 31.96h-28.68v-31.96h28.68zm-94.07-1.57c20.85 0 20.78 38.24 0 38.24H94.68v-38.23l31.81-.01zm189.65-17.97c-67.4 0-69.86 104.15 0 104.15 68.39-.01 68.33-104.15 0-104.15zm0 17.12c43.43 0 44.1 69.76 0 69.76-44.12 0-43.74-69.76 0-69.76z"],
    +  "themeisle": [512, 512, [], "f2b2", "M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z"],
    +  "trade-federation": [496, 512, [], "f513", "M202.45 108.42v81.61H38.94l48.22 61.91h114.73v196.75h64.61V252.96h83.27v-62.69h-83.18V171.1h145.62v-62.68H202.45zm4.86 6h197.77v50.68H259.44v30.93h83.18v50.93h-83.26v195.73h-52.73V245.94H89.86l-39.95-49.91h157.4v-81.61zM247.99 8.8C111.03 8.8 0 119.83 0 256.8s111.03 248 247.99 248S496 393.76 496 256.8 384.96 8.8 247.99 8.8zm.02 13.24c129.66 0 234.76 105.12 234.76 234.78s-105.1 234.76-234.76 234.76S13.23 386.47 13.23 256.81 118.35 22.04 248.01 22.04zm0 7.89c-125.3 0-226.89 101.57-226.89 226.87s101.59 226.89 226.89 226.89S474.88 382.1 474.88 256.8 373.31 29.93 248.01 29.93zm-.02 13.3c117.95 0 213.56 95.62 213.56 213.56s-95.62 213.56-213.56 213.56S34.43 374.75 34.43 256.8 130.04 43.23 247.99 43.23zm-73.32 104.8l15.66 18.05-22.16-9.45-12.33 20.47 2.15-23.99-23.28-5.4 23.48-5.37-2.06-23.81 12.37 20.67 22.01-9.32-15.84 18.15zm-47.14-46.54l8.01 12.4 12.69-5.86-9.32 11.45 9.5 10.25-13.77-5.32-6.82 12.2.81-14.74-13.71-2.71 14.27-3.78-1.66-13.89zm250.77 75.59l11.99 19.56 20.88-9.11-14.9 17.45 15.11 17.04-21.2-8.78-11.54 19.64 1.8-22.87-22.24-4.9 22.31-5.36-2.21-22.67zm-107.05 98.45l13.86-3.22-1.28-14.17 7.35 12.18 13.08-5.59-9.31 10.75 9.36 10.71-13.1-5.54-7.29 12.21 1.22-14.17-13.89-3.16zm-125.43 6.5l23.73-3.87-1.73-24.53 11.01 21.38 22.79-9.22-16.93 17.08 15.81 18.83-21.47-10.82-13.02 20.86 3.66-23.77-23.85-5.94zm63.44-165.66v81.61H54.16l36.72 46.01h117.7v196.75h48.82V245.01h83.27v-47.03H257.4v-34.83h145.73v-46.78H209.26zm10.86 11.2h171.8v24.36H246.88v56.23h82.93v23.94h-82.93v197.42h-26.76V232.1H96.31l-20.09-23.94h143.9v-80.59z"],
    +  "trello": [448, 512, [], "f181", "M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zM194.9 371.4c0 14.8-12 26.9-26.9 26.9H85.1c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9H168c14.8 0 26.9 12 26.9 26.9v254.3zm194.9-112c0 14.8-12 26.9-26.9 26.9H280c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v142.3z"],
    +  "tripadvisor": [576, 512, [], "f262", "M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z"],
    +  "tumblr": [320, 512, [], "f173", "M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"],
    +  "tumblr-square": [448, 512, [], "f174", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z"],
    +  "twitch": [448, 512, [], "f1e8", "M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z"],
    +  "twitter": [512, 512, [], "f099", "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"],
    +  "twitter-square": [448, 512, [], "f081", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"],
    +  "typo3": [433, 512, [], "f42b", "M330.8 341c-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9 0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C0 246 106.8 480 184.1 480c36.3 0 97.3-59.5 146.7-139M294.5 32c71.8 0 138.8 11.6 138.8 52.5 0 82.6-52.5 182.3-78.8 182.3-47.9 0-101.7-132.1-101.7-198.5 0-30.9 11.6-36.3 41.7-36.3"],
    +  "uber": [448, 512, [], "f402", "M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"],
    +  "uikit": [448, 512, [], "f403", "M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"],
    +  "uniregistry": [384, 512, [], "f404", "M281.1 220.1H384v-14.8H281.1v14.8zm0-37.1H384v-12.4H281.1V183zm0 74.2H384v-17.3H281.1v17.3zm-157.7 86.7H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8m145.7-12.4h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3m-41.5 37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8M384 32H281.1v2.5H384V32zM192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480m89.1-334.2H384V136H281.1v9.8zm0-37.1H384v-7.4H281.1v7.4zm0-37.1H384v-4.9H281.1v4.9zm-178.2 99H0V183h102.9v-12.4zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2m64.1-118.8v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4m178.2 0c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1v12.4zm-203 156h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7m24.8-376.2H0v4.9h102.9v-4.9zm0-34.7H0v2.5h102.9V32zm0 173.3H0v14.8h102.9v-14.8zm0 34.6H0v17.3h102.9v-17.3zm0-103.9H0v9.9h102.9V136zm0-34.7H0v7.4h102.9v-7.4zm2.8 207.9H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3"],
    +  "untappd": [640, 512, [], "f405", "M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"],
    +  "usb": [640, 512, [], "f287", "M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"],
    +  "ussunnah": [512, 512, [], "f407", "M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z"],
    +  "vaadin": [448, 512, [], "f408", "M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"],
    +  "viacoin": [384, 512, [], "f237", "M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z"],
    +  "viadeo": [448, 512, [], "f2a9", "M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"],
    +  "viadeo-square": [448, 512, [], "f2aa", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z"],
    +  "viber": [512, 512, [], "f409", "M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"],
    +  "vimeo": [448, 512, [], "f40a", "M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"],
    +  "vimeo-square": [448, 512, [], "f194", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z"],
    +  "vimeo-v": [448, 512, [], "f27d", "M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"],
    +  "vine": [384, 512, [], "f1ca", "M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"],
    +  "vk": [576, 512, [], "f189", "M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z"],
    +  "vnv": [640, 512, [], "f40b", "M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z"],
    +  "vuejs": [448, 512, [], "f41f", "M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z"],
    +  "weebly": [512, 512, [], "f5cc", "M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z"],
    +  "weibo": [512, 512, [], "f18a", "M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"],
    +  "weixin": [576, 512, [], "f1d7", "M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z"],
    +  "whatsapp": [448, 512, [], "f232", "M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"],
    +  "whatsapp-square": [448, 512, [], "f40c", "M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"],
    +  "whmcs": [448, 512, [], "f40d", "M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"],
    +  "wikipedia-w": [640, 512, [], "f266", "M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z"],
    +  "windows": [448, 512, [], "f17a", "M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"],
    +  "wix": [640, 512, [], "f5cf", "M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z"],
    +  "wizards-of-the-coast": [640, 512, [], "f730", "M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z"],
    +  "wolf-pack-battalion": [456, 512, [], "f514", "M239.73 471.53l10.56 15.84 5.28-12.32 5.28 7.04V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05 27.87 3.34 53.94 10.58 63.34 54.1l-30.35 8.36c11.15 23.04 17.01 46.76 13.2 72.14L384 313.18l-6.16 33.43-18.47-7.04-8.8 33.43-19.35-7.04 26.39 21.11 8.8-28.15 24.63 5.28 7.04-35.63 26.39 14.52c.25-20.02 6.97-58.06-8.8-84.45l26.39 5.28c3.99-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 1.96-19.87 17.45-42.62 43.11-49.7-43.99 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.47 22.87-89.73 65.1-93.25 147.79l-58.06 38.71-3.52 93.25 107.33-59.82 7.04 7.04-17.59 3.52-43.99 38.71-15.84-5.28-28.15 49.26-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-43.99-38.71-17.59-3.52 7.04-7.04 107.33 59.82-3.52-93.25-58.06-38.71C157.03 65.1 107.77 22.87 67.3 0c-17.54 61.12-4.4 118.76 0 130.2 14.96-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9C29.94 160.06.44 191.78 0 216.85l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7.04 35.63 24.63-5.28 8.8 28.15 26.39-21.11-19.34 7.05-8.8-33.43-18.47 7.04-6.16-33.43-27.27 7.04c-3.82-25.38 2.05-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.91l5.28-7.04 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95.01l-15.84-10.56c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.26-.27 13.88-3.51 22.88zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7.04 8.24-7.9 15.55-16.27 22.87-24.63zm24.63 5.28c-.02-13.43-2.05-24.21-5.28-33.43-5.38 9.09-11.23 18.18-18.47 27.27l23.75 6.16zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-11.99 6.65-28.14 7.04-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 43.99-14.08-10.6-18.95-27.22-25.52-45.75-28.15zM137.68 376.52l15.84-10.56c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7.04-8.24-7.9-15.55-16.27-22.87-24.63zm-24.64 5.28c.02-13.43 2.05-24.21 5.28-33.43 5.38 9.09 11.23 18.18 18.47 27.27l-23.75 6.16zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 36.95-10.56-5.05-11.99-6.65-28.14-7.04-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-43.99-14.08 10.61-18.95 27.22-25.52 45.75-28.15z"],
    +  "wordpress": [512, 512, [], "f19a", "M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"],
    +  "wordpress-simple": [512, 512, [], "f411", "M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"],
    +  "wpbeginner": [512, 512, [], "f297", "M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z"],
    +  "wpexplorer": [512, 512, [], "f2de", "M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"],
    +  "wpforms": [448, 512, [], "f298", "M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z"],
    +  "xbox": [512, 512, [], "f412", "M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"],
    +  "xing": [384, 512, [], "f168", "M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"],
    +  "xing-square": [448, 512, [], "f169", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z"],
    +  "y-combinator": [448, 512, [], "f23b", "M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z"],
    +  "yahoo": [448, 512, [], "f19e", "M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z"],
    +  "yandex": [256, 512, [], "f413", "M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z"],
    +  "yandex-international": [320, 512, [], "f414", "M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z"],
    +  "yelp": [384, 512, [], "f1e9", "M136.9 328c-1 .3-109.2 35.7-115.8 35.7-15.2-.9-18.5-16.2-19.9-31.2-1.5-14.2-1.4-29.8.3-46.8 1.9-18.8 5.5-45.1 24.2-44 4.8 0 67.1 25.9 112.7 44.4 17.1 6.8 18.6 35.8-1.5 41.9zm57.9-113.9c1.8 38.2-25.5 48.5-47.2 14.3L41.3 60.4c-1.5-6.6.3-12.4 5.3-17.4C62.2 26.5 146 3.2 168.1 8.9c7.5 1.9 12.1 6.1 13.8 12.6 1.3 8.3 11.5 167.4 12.9 192.6zm-1.4 164.8c0 4.6.2 116.4-1.7 121.5-2.3 6-7 9.7-14.3 11.2-10.1 1.7-27.1-1.9-51-10.7-22-8.1-56.7-21.5-49.3-42.5 2.8-6.9 51.4-62.8 77.3-93.6 12-15.2 39.8-5.5 39 14.1zm180.2-117.8c-5.6 3.7-110.8 28.2-118.1 30.6l.3-.6c-18.1 4.7-35.4-18.5-23.3-34.6 3.7-3.7 65.9-92.4 72.8-97 5.2-3.6 11.3-3.8 18.3-.6 18.4 8.8 55.1 63.1 57.4 84.6-.1 2.9 1.2 11.7-7.4 17.6zm10.1 130.7c-2.7 20.6-44.5 73.4-63.8 81-6.9 2.6-12.9 2-17.7-2-5-3.5-61.8-97.1-64.9-102.3-10.9-16.2 6.8-39.8 25.6-33.2 0 0 110.5 35.7 114.7 39.4 5.2 4.1 7.2 9.8 6.1 17.1z"],
    +  "yoast": [448, 512, [], "f2b1", "M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z"],
    +  "youtube": [576, 512, [], "f167", "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"],
    +  "youtube-square": [448, 512, [], "f431", "M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z"],
    +  "zhihu": [640, 512, [], "f63f", "M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z"]
    +};
    +
    +bunker(function () {
    +  define('fab', icons);
    +});
    +
    +}());
    +(function () {
    +'use strict';
    +
    +var _WINDOW = {};
    +try {
    +  if (typeof window !== 'undefined') _WINDOW = window;
    +  
    +} catch (e) {}
    +
    +var _ref = _WINDOW.navigator || {};
    +var _ref$userAgent = _ref.userAgent;
    +var userAgent = _ref$userAgent === undefined ? '' : _ref$userAgent;
    +
    +var WINDOW = _WINDOW;
    +
    +
    +
    +
    +
    +var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
    +
    +var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +var PRODUCTION = function () {
    +  try {
    +    return "production" === 'production';
    +  } catch (e) {
    +    return false;
    +  }
    +}();
    +
    +var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    +var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
    +
    +
    +
    +var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter'].concat(oneToTen.map(function (n) {
    +  return n + 'x';
    +})).concat(oneToTwenty.map(function (n) {
    +  return 'w-' + n;
    +}));
    +
    +function bunker(fn) {
    +  try {
    +    fn();
    +  } catch (e) {
    +    if (!PRODUCTION) {
    +      throw e;
    +    }
    +  }
    +}
    +
    +var w = WINDOW || {};
    +
    +if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
    +if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
    +if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
    +if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
    +
    +var namespace = w[NAMESPACE_IDENTIFIER];
    +
    +var _extends = Object.assign || function (target) {
    +  for (var i = 1; i < arguments.length; i++) {
    +    var source = arguments[i];
    +
    +    for (var key in source) {
    +      if (Object.prototype.hasOwnProperty.call(source, key)) {
    +        target[key] = source[key];
    +      }
    +    }
    +  }
    +
    +  return target;
    +};
    +
    +function define(prefix, icons) {
    +  var normalized = Object.keys(icons).reduce(function (acc, iconName) {
    +    var icon = icons[iconName];
    +    var expanded = !!icon.icon;
    +
    +    if (expanded) {
    +      acc[icon.iconName] = icon.icon;
    +    } else {
    +      acc[iconName] = icon;
    +    }
    +    return acc;
    +  }, {});
    +
    +  if (typeof namespace.hooks.addPack === 'function') {
    +    namespace.hooks.addPack(prefix, normalized);
    +  } else {
    +    namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, normalized);
    +  }
    +
    +  /**
    +   * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
    +   * of new styles we needed to differentiate between them. Prefix `fa` is now an alias
    +   * for `fas` so we'll easy the upgrade process for our users by automatically defining
    +   * this as well.
    +   */
    +  if (prefix === 'fas') {
    +    define('fa', icons);
    +  }
    +}
    +
    +var icons = {
    +  "address-book": [448, 512, [], "f2b9", "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],
    +  "address-card": [576, 512, [], "f2bb", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z"],
    +  "angry": [496, 512, [], "f556", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z"],
    +  "arrow-alt-circle-down": [512, 512, [], "f358", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z"],
    +  "arrow-alt-circle-left": [512, 512, [], "f359", "M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z"],
    +  "arrow-alt-circle-right": [512, 512, [], "f35a", "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z"],
    +  "arrow-alt-circle-up": [512, 512, [], "f35b", "M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z"],
    +  "bell": [448, 512, [], "f0f3", "M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z"],
    +  "bell-slash": [640, 512, [], "f1f6", "M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"],
    +  "bookmark": [384, 512, [], "f02e", "M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"],
    +  "building": [448, 512, [], "f1ad", "M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z"],
    +  "calendar": [448, 512, [], "f133", "M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z"],
    +  "calendar-alt": [448, 512, [], "f073", "M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "calendar-check": [448, 512, [], "f274", "M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z"],
    +  "calendar-minus": [448, 512, [], "f272", "M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "calendar-plus": [448, 512, [], "f271", "M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "calendar-times": [448, 512, [], "f273", "M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "caret-square-down": [448, 512, [], "f150", "M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "caret-square-left": [448, 512, [], "f191", "M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "caret-square-right": [448, 512, [], "f152", "M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "caret-square-up": [448, 512, [], "f151", "M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "chart-bar": [512, 512, [], "f080", "M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z"],
    +  "check-circle": [512, 512, [], "f058", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"],
    +  "check-square": [448, 512, [], "f14a", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"],
    +  "circle": [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"],
    +  "clipboard": [384, 512, [], "f328", "M336 64h-80c0-35.29-28.71-64-64-64s-64 28.71-64 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h42v36c0 6.627 5.373 12 12 12h168c6.627 0 12-5.373 12-12v-36h42a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zM192 40c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24"],
    +  "clock": [512, 512, [], "f017", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"],
    +  "clone": [512, 512, [], "f24d", "M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"],
    +  "closed-captioning": [512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z"],
    +  "comment": [512, 512, [], "f075", "M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],
    +  "comment-alt": [512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z"],
    +  "comment-dots": [512, 512, [], "f4ad", "M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],
    +  "comments": [576, 512, [], "f086", "M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z"],
    +  "compass": [496, 512, [], "f14e", "M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],
    +  "copy": [448, 512, [], "f0c5", "M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"],
    +  "copyright": [512, 512, [], "f1f9", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z"],
    +  "credit-card": [576, 512, [], "f09d", "M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z"],
    +  "dizzy": [496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z"],
    +  "dot-circle": [512, 512, [], "f192", "M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"],
    +  "edit": [576, 512, [], "f044", "M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"],
    +  "envelope": [512, 512, [], "f0e0", "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"],
    +  "envelope-open": [512, 512, [], "f2b6", "M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z"],
    +  "eye": [576, 512, [], "f06e", "M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"],
    +  "eye-slash": [576, 512, [], "f070", "M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"],
    +  "file": [384, 512, [], "f15b", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"],
    +  "file-alt": [384, 512, [], "f15c", "M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"],
    +  "file-archive": [384, 512, [], "f1c6", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 51.882L332.118 128H256V51.882zM336 464H48V48h79.714v16h32V48H208v104c0 13.255 10.745 24 24 24h104v288zM192.27 96h-32V64h32v32zm-32 0v32h-32V96h32zm0 64v32h-32v-32h32zm32 0h-32v-32h32v32zm1.909 105.678A12 12 0 0 0 182.406 256H160.27v-32h-32v32l-19.69 97.106C101.989 385.611 126.834 416 160 416c33.052 0 57.871-30.192 51.476-62.62l-17.297-87.702zM160.27 390.073c-17.918 0-32.444-12.105-32.444-27.036 0-14.932 14.525-27.036 32.444-27.036s32.444 12.105 32.444 27.036c0 14.931-14.526 27.036-32.444 27.036zm32-166.073h-32v-32h32v32z"],
    +  "file-audio": [384, 512, [], "f1c7", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z"],
    +  "file-code": [384, 512, [], "f1c9", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm101.677-115.115L116.854 320l32.822-28.885a8.793 8.793 0 0 0 .605-12.624l-17.403-18.564c-3.384-3.613-8.964-3.662-12.438-.401L62.78 313.58c-3.703 3.474-3.704 9.367.001 12.84l57.659 54.055a8.738 8.738 0 0 0 6.012 2.381 8.746 8.746 0 0 0 6.427-2.782l17.403-18.563a8.795 8.795 0 0 0-.605-12.626zm84.284-127.85l-24.401-7.084a8.796 8.796 0 0 0-10.905 5.998L144.04 408.061c-1.353 4.66 1.338 9.552 5.998 10.905l24.403 7.084c4.68 1.355 9.557-1.354 10.905-5.998l54.612-188.112c1.354-4.66-1.337-9.552-5.997-10.905zm87.258 92.545l-57.658-54.055c-3.526-3.307-9.099-3.165-12.439.401l-17.403 18.563a8.795 8.795 0 0 0 .605 12.625L267.146 320l-32.822 28.885a8.793 8.793 0 0 0-.605 12.624l17.403 18.564a8.797 8.797 0 0 0 12.439.401h-.001l57.66-54.055c3.703-3.473 3.703-9.366-.001-12.839z"],
    +  "file-excel": [384, 512, [], "f1c3", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z"],
    +  "file-image": [384, 512, [], "f1c5", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"],
    +  "file-pdf": [384, 512, [], "f1c1", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z"],
    +  "file-powerpoint": [384, 512, [], "f1c4", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z"],
    +  "file-video": [384, 512, [], "f1c8", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z"],
    +  "file-word": [384, 512, [], "f1c2", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z"],
    +  "flag": [512, 512, [], "f024", "M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z"],
    +  "flushed": [496, 512, [], "f579", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
    +  "folder": [512, 512, [], "f07b", "M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z"],
    +  "folder-open": [576, 512, [], "f07c", "M527.943 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h400a48.001 48.001 0 0 0 40.704-22.56l79.942-128c19.948-31.917-3.038-73.44-40.703-73.44zM54 112h134.118l64 64H426a6 6 0 0 1 6 6v42H152a48 48 0 0 0-41.098 23.202L48 351.449V117.993A5.993 5.993 0 0 1 54 112zm394 288H72l77.234-128H528l-80 128z"],
    +  "font-awesome-logo-full": [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],
    +  "frown": [496, 512, [], "f119", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"],
    +  "frown-open": [496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z"],
    +  "futbol": [496, 512, [], "f1e3", "M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z"],
    +  "gem": [576, 512, [], "f3a5", "M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z"],
    +  "grimace": [496, 512, [], "f57f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z"],
    +  "grin": [496, 512, [], "f580", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"],
    +  "grin-alt": [496, 512, [], "f581", "M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z"],
    +  "grin-beam": [496, 512, [], "f582", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z"],
    +  "grin-beam-sweat": [496, 512, [], "f583", "M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],
    +  "grin-hearts": [496, 512, [], "f584", "M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z"],
    +  "grin-squint": [496, 512, [], "f585", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z"],
    +  "grin-squint-tears": [512, 512, [], "f586", "M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z"],
    +  "grin-stars": [496, 512, [], "f587", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z"],
    +  "grin-tears": [640, 512, [], "f588", "M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],
    +  "grin-tongue": [496, 512, [], "f589", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
    +  "grin-tongue-squint": [496, 512, [], "f58a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z"],
    +  "grin-tongue-wink": [496, 512, [], "f58b", "M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z"],
    +  "grin-wink": [496, 512, [], "f58c", "M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],
    +  "hand-lizard": [576, 512, [], "f258", "M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z"],
    +  "hand-paper": [448, 512, [], "f256", "M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z"],
    +  "hand-peace": [448, 512, [], "f25b", "M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z"],
    +  "hand-point-down": [448, 512, [], "f0a7", "M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z"],
    +  "hand-point-left": [512, 512, [], "f0a5", "M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],
    +  "hand-point-right": [512, 512, [], "f0a4", "M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],
    +  "hand-point-up": [448, 512, [], "f0a6", "M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],
    +  "hand-pointer": [448, 512, [], "f25a", "M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"],
    +  "hand-rock": [512, 512, [], "f255", "M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"],
    +  "hand-scissors": [512, 512, [], "f257", "M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z"],
    +  "hand-spock": [512, 512, [], "f259", "M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z"],
    +  "handshake": [640, 512, [], "f2b5", "M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"],
    +  "hdd": [576, 512, [], "f0a0", "M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z"],
    +  "heart": [512, 512, [], "f004", "M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"],
    +  "hospital": [448, 512, [], "f0f8", "M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z"],
    +  "hourglass": [384, 512, [], "f254", "M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z"],
    +  "id-badge": [384, 512, [], "f2c1", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],
    +  "id-card": [576, 512, [], "f2c2", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"],
    +  "image": [512, 512, [], "f03e", "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"],
    +  "images": [576, 512, [], "f302", "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z"],
    +  "keyboard": [576, 512, [], "f11c", "M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z"],
    +  "kiss": [496, 512, [], "f596", "M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
    +  "kiss-beam": [496, 512, [], "f597", "M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z"],
    +  "kiss-wink-heart": [504, 512, [], "f598", "M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z"],
    +  "laugh": [496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
    +  "laugh-beam": [496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
    +  "laugh-squint": [496, 512, [], "f59b", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
    +  "laugh-wink": [496, 512, [], "f59c", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
    +  "lemon": [512, 512, [], "f094", "M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z"],
    +  "life-ring": [512, 512, [], "f1cd", "M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z"],
    +  "lightbulb": [352, 512, [], "f0eb", "M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"],
    +  "list-alt": [512, 512, [], "f022", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z"],
    +  "map": [576, 512, [], "f279", "M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z"],
    +  "meh": [496, 512, [], "f11a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
    +  "meh-blank": [496, 512, [], "f5a4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
    +  "meh-rolling-eyes": [496, 512, [], "f5a5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
    +  "minus-square": [448, 512, [], "f146", "M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "money-bill-alt": [640, 512, [], "f3d1", "M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z"],
    +  "moon": [512, 512, [], "f186", "M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z"],
    +  "newspaper": [576, 512, [], "f1ea", "M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z"],
    +  "object-group": [512, 512, [], "f247", "M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z"],
    +  "object-ungroup": [576, 512, [], "f248", "M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z"],
    +  "paper-plane": [512, 512, [], "f1d8", "M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"],
    +  "pause-circle": [512, 512, [], "f28b", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z"],
    +  "play-circle": [512, 512, [], "f144", "M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z"],
    +  "plus-square": [448, 512, [], "f0fe", "M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "question-circle": [512, 512, [], "f059", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"],
    +  "registered": [512, 512, [], "f25d", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z"],
    +  "sad-cry": [496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z"],
    +  "sad-tear": [496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z"],
    +  "save": [448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"],
    +  "share-square": [576, 512, [], "f14d", "M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z"],
    +  "smile": [496, 512, [], "f118", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"],
    +  "smile-beam": [496, 512, [], "f5b8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z"],
    +  "smile-wink": [496, 512, [], "f4da", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z"],
    +  "snowflake": [448, 512, [], "f2dc", "M438.237 355.927l-66.574-38.54 59.448-10.327c5.846-1.375 10.609-5.183 13.458-10.13 2.48-4.307 3.506-9.478 2.524-14.651-2.11-11.115-12.686-18.039-23.621-15.467l-85.423 31.115L255.914 256l82.136-41.926 85.423 31.115c10.936 2.572 21.512-4.352 23.621-15.467 2.111-11.115-5.046-22.209-15.981-24.781l-59.448-10.327 66.573-38.54c9.54-5.523 12.615-18.092 6.867-28.074-5.748-9.982-18.14-13.596-27.68-8.074l-66.574 38.54 20.805-56.787c3.246-10.782-2.758-22.542-13.413-26.268-10.654-3.725-21.922 1.997-25.168 12.779l-15.838 89.735-72.423 41.926V136l69.585-58.621c7.689-8.21 6.997-20.856-1.548-28.245-8.545-7.391-21.705-6.723-29.394 1.486l-38.644 46.46V20c0-11.046-9.318-20-20.813-20s-20.813 8.954-20.813 20v77.08l-38.644-46.46c-7.689-8.21-20.849-8.876-29.394-1.486-8.544 7.389-9.236 20.035-1.547 28.245L203.187 136v83.853l-72.423-41.926-15.838-89.736c-3.247-10.782-14.515-16.504-25.169-12.779-10.656 3.725-16.659 15.486-13.413 26.268l20.805 56.787-66.573-38.54c-9.54-5.523-21.933-1.908-27.68 8.074s-2.673 22.551 6.867 28.074l66.574 38.54-59.449 10.328C5.953 207.515-1.202 218.609.907 229.724c2.11 11.114 12.686 18.038 23.622 15.466l85.422-31.115L192.086 256l-82.136 41.926-85.423-31.115c-10.936-2.572-21.511 4.352-23.622 15.466-2.109 11.113 5.046 22.209 15.981 24.781l59.449 10.328-66.574 38.54C.223 361.449-2.852 374.018 2.896 384s18.14 13.597 27.68 8.074l66.574-38.54-20.805 56.786c-1.735 5.764-.828 11.805 2.02 16.751 2.48 4.307 6.433 7.784 11.392 9.517 10.655 3.725 21.923-1.997 25.169-12.779l15.838-89.736 72.423-41.926V376l-69.585 58.621c-7.69 8.21-6.997 20.855 1.547 28.245 8.544 7.388 21.705 6.723 29.394-1.487l38.644-46.46V492c0 11.046 9.318 20 20.813 20s20.813-8.954 20.813-20v-77.081l38.644 46.46c4.111 4.389 9.782 6.621 15.478 6.621 4.96 0 9.939-1.694 13.916-5.134 8.545-7.39 9.237-20.035 1.548-28.245L244.813 376v-83.853l72.423 41.926 15.838 89.736c3.246 10.782 14.514 16.504 25.168 12.779 10.653-3.726 16.659-15.487 13.412-26.268l-20.805-56.787 66.574 38.54c9.54 5.523 21.933 1.908 27.68-8.074 5.749-9.981 2.675-22.55-6.866-28.072z"],
    +  "square": [448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"],
    +  "star": [576, 512, [], "f005", "M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"],
    +  "star-half": [576, 512, [], "f089", "M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z"],
    +  "sticky-note": [448, 512, [], "f249", "M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z"],
    +  "stop-circle": [512, 512, [], "f28d", "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z"],
    +  "sun": [512, 512, [], "f185", "M220.116 487.936l-20.213-49.425a3.992 3.992 0 0 0-5.808-1.886l-45.404 28.104c-29.466 18.24-66.295-8.519-58.054-42.179l12.699-51.865a3.993 3.993 0 0 0-3.59-4.941l-53.251-3.951c-34.554-2.562-48.632-45.855-22.174-68.247L65.08 259.05a3.992 3.992 0 0 0 0-6.106l-40.76-34.497c-26.45-22.384-12.39-65.682 22.174-68.246l53.251-3.951a3.993 3.993 0 0 0 3.59-4.941L90.637 89.443c-8.239-33.656 28.581-60.42 58.054-42.179l45.403 28.104a3.993 3.993 0 0 0 5.808-1.887l20.213-49.425c13.116-32.071 58.638-32.081 71.758 0l20.212 49.424a3.994 3.994 0 0 0 5.809 1.887l45.403-28.104c29.464-18.236 66.297 8.513 58.054 42.179l-12.699 51.865a3.995 3.995 0 0 0 3.59 4.941l53.251 3.951c34.553 2.563 48.633 45.854 22.175 68.246l-40.76 34.497a3.993 3.993 0 0 0 0 6.107l40.76 34.496c26.511 22.441 12.322 65.689-22.175 68.247l-53.251 3.951a3.993 3.993 0 0 0-3.589 4.942l12.698 51.864c8.241 33.658-28.583 60.421-58.054 42.18l-45.403-28.104a3.994 3.994 0 0 0-5.809 1.887l-20.212 49.424c-13.159 32.178-58.675 31.993-71.757 0zm16.814-64.568l19.064 46.616 19.064-46.615c10.308-25.2 40.778-35.066 63.892-20.759l42.822 26.507-11.976-48.919c-6.475-26.444 12.38-52.339 39.487-54.349l50.226-3.726-38.444-32.536c-20.782-17.591-20.747-49.621.001-67.18l38.442-32.536-50.225-3.727c-27.151-2.015-45.95-27.948-39.488-54.349l11.978-48.919-42.823 26.507c-23.151 14.327-53.603 4.4-63.892-20.76l-19.064-46.615-19.064 46.617c-10.305 25.198-40.778 35.066-63.891 20.76l-42.823-26.508 11.977 48.918c6.474 26.446-12.381 52.338-39.488 54.35l-50.224 3.726 38.443 32.537c20.782 17.588 20.747 49.619 0 67.178L52.48 322.123l50.226 3.726c27.151 2.014 45.95 27.947 39.487 54.349l-11.977 48.919 42.823-26.507c23.188-14.355 53.622-4.352 63.891 20.758zM256 384c-70.58 0-128-57.421-128-128 0-70.58 57.42-128 128-128 70.579 0 128 57.42 128 128 0 70.579-57.421 128-128 128zm0-208c-44.112 0-80 35.888-80 80s35.888 80 80 80 80-35.888 80-80-35.888-80-80-80z"],
    +  "surprise": [496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
    +  "thumbs-down": [512, 512, [], "f165", "M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z"],
    +  "thumbs-up": [512, 512, [], "f164", "M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],
    +  "times-circle": [512, 512, [], "f057", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"],
    +  "tired": [496, 512, [], "f5c8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z"],
    +  "trash-alt": [448, 512, [], "f2ed", "M192 188v216c0 6.627-5.373 12-12 12h-24c-6.627 0-12-5.373-12-12V188c0-6.627 5.373-12 12-12h24c6.627 0 12 5.373 12 12zm100-12h-24c-6.627 0-12 5.373-12 12v216c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12V188c0-6.627-5.373-12-12-12zm132-96c13.255 0 24 10.745 24 24v12c0 6.627-5.373 12-12 12h-20v336c0 26.51-21.49 48-48 48H80c-26.51 0-48-21.49-48-48V128H12c-6.627 0-12-5.373-12-12v-12c0-13.255 10.745-24 24-24h74.411l34.018-56.696A48 48 0 0 1 173.589 0h100.823a48 48 0 0 1 41.16 23.304L349.589 80H424zm-269.611 0h139.223L276.16 50.913A6 6 0 0 0 271.015 48h-94.028a6 6 0 0 0-5.145 2.913L154.389 80zM368 128H80v330a6 6 0 0 0 6 6h276a6 6 0 0 0 6-6V128z"],
    +  "user": [448, 512, [], "f007", "M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z"],
    +  "user-circle": [496, 512, [], "f2bd", "M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z"],
    +  "window-close": [512, 512, [], "f410", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z"],
    +  "window-maximize": [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"],
    +  "window-minimize": [512, 512, [], "f2d1", "M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"],
    +  "window-restore": [512, 512, [], "f2d2", "M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z"]
    +};
    +
    +bunker(function () {
    +  define('far', icons);
    +});
    +
    +}());
    +(function () {
    +'use strict';
    +
    +var _WINDOW = {};
    +try {
    +  if (typeof window !== 'undefined') _WINDOW = window;
    +  
    +} catch (e) {}
    +
    +var _ref = _WINDOW.navigator || {};
    +var _ref$userAgent = _ref.userAgent;
    +var userAgent = _ref$userAgent === undefined ? '' : _ref$userAgent;
    +
    +var WINDOW = _WINDOW;
    +
    +
    +
    +
    +
    +var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
    +
    +var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +var PRODUCTION = function () {
    +  try {
    +    return "production" === 'production';
    +  } catch (e) {
    +    return false;
    +  }
    +}();
    +
    +var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    +var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
    +
    +
    +
    +var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter'].concat(oneToTen.map(function (n) {
    +  return n + 'x';
    +})).concat(oneToTwenty.map(function (n) {
    +  return 'w-' + n;
    +}));
    +
    +function bunker(fn) {
    +  try {
    +    fn();
    +  } catch (e) {
    +    if (!PRODUCTION) {
    +      throw e;
    +    }
    +  }
    +}
    +
    +var w = WINDOW || {};
    +
    +if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
    +if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
    +if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
    +if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
    +
    +var namespace = w[NAMESPACE_IDENTIFIER];
    +
    +var _extends = Object.assign || function (target) {
    +  for (var i = 1; i < arguments.length; i++) {
    +    var source = arguments[i];
    +
    +    for (var key in source) {
    +      if (Object.prototype.hasOwnProperty.call(source, key)) {
    +        target[key] = source[key];
    +      }
    +    }
    +  }
    +
    +  return target;
    +};
    +
    +function define(prefix, icons) {
    +  var normalized = Object.keys(icons).reduce(function (acc, iconName) {
    +    var icon = icons[iconName];
    +    var expanded = !!icon.icon;
    +
    +    if (expanded) {
    +      acc[icon.iconName] = icon.icon;
    +    } else {
    +      acc[iconName] = icon;
    +    }
    +    return acc;
    +  }, {});
    +
    +  if (typeof namespace.hooks.addPack === 'function') {
    +    namespace.hooks.addPack(prefix, normalized);
    +  } else {
    +    namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, normalized);
    +  }
    +
    +  /**
    +   * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
    +   * of new styles we needed to differentiate between them. Prefix `fa` is now an alias
    +   * for `fas` so we'll easy the upgrade process for our users by automatically defining
    +   * this as well.
    +   */
    +  if (prefix === 'fas') {
    +    define('fa', icons);
    +  }
    +}
    +
    +var icons = {
    +  "ad": [512, 512, [], "f641", "M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"],
    +  "address-book": [448, 512, [], "f2b9", "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],
    +  "address-card": [576, 512, [], "f2bb", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"],
    +  "adjust": [512, 512, [], "f042", "M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"],
    +  "air-freshener": [384, 512, [], "f5d0", "M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z"],
    +  "align-center": [448, 512, [], "f037", "M352 44v40c0 8.837-7.163 16-16 16H112c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h224c8.837 0 16 7.163 16 16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm320-200H112c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"],
    +  "align-justify": [448, 512, [], "f039", "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm16 144h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0-128h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],
    +  "align-left": [448, 512, [], "f036", "M288 44v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16zM0 172v40c0 8.837 7.163 16 16 16h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16zm16 312h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm256-200H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"],
    +  "align-right": [448, 512, [], "f038", "M160 84V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H176c-8.837 0-16-7.163-16-16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],
    +  "allergies": [448, 512, [], "f461", "M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],
    +  "ambulance": [640, 512, [], "f0f9", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],
    +  "american-sign-language-interpreting": [640, 512, [], "f2a3", "M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"],
    +  "anchor": [576, 512, [], "f13d", "M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"],
    +  "angle-double-down": [320, 512, [], "f103", "M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"],
    +  "angle-double-left": [448, 512, [], "f100", "M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"],
    +  "angle-double-right": [448, 512, [], "f101", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"],
    +  "angle-double-up": [320, 512, [], "f102", "M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"],
    +  "angle-down": [320, 512, [], "f107", "M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"],
    +  "angle-left": [256, 512, [], "f104", "M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"],
    +  "angle-right": [256, 512, [], "f105", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"],
    +  "angle-up": [320, 512, [], "f106", "M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"],
    +  "angry": [496, 512, [], "f556", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"],
    +  "ankh": [320, 512, [], "f644", "M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"],
    +  "apple-alt": [448, 512, [], "f5d1", "M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"],
    +  "archive": [512, 512, [], "f187", "M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"],
    +  "archway": [576, 512, [], "f557", "M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"],
    +  "arrow-alt-circle-down": [512, 512, [], "f358", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"],
    +  "arrow-alt-circle-left": [512, 512, [], "f359", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"],
    +  "arrow-alt-circle-right": [512, 512, [], "f35a", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"],
    +  "arrow-alt-circle-up": [512, 512, [], "f35b", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"],
    +  "arrow-circle-down": [512, 512, [], "f0ab", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"],
    +  "arrow-circle-left": [512, 512, [], "f0a8", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"],
    +  "arrow-circle-right": [512, 512, [], "f0a9", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"],
    +  "arrow-circle-up": [512, 512, [], "f0aa", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"],
    +  "arrow-down": [448, 512, [], "f063", "M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"],
    +  "arrow-left": [448, 512, [], "f060", "M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"],
    +  "arrow-right": [448, 512, [], "f061", "M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"],
    +  "arrow-up": [448, 512, [], "f062", "M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"],
    +  "arrows-alt": [512, 512, [], "f0b2", "M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"],
    +  "arrows-alt-h": [512, 512, [], "f337", "M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"],
    +  "arrows-alt-v": [256, 512, [], "f338", "M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"],
    +  "assistive-listening-systems": [512, 512, [], "f2a2", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"],
    +  "asterisk": [512, 512, [], "f069", "M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"],
    +  "at": [512, 512, [], "f1fa", "M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"],
    +  "atlas": [448, 512, [], "f558", "M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"],
    +  "atom": [448, 512, [], "f5d2", "M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],
    +  "audio-description": [512, 512, [], "f29e", "M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"],
    +  "award": [384, 512, [], "f559", "M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"],
    +  "backspace": [640, 512, [], "f55a", "M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"],
    +  "backward": [512, 512, [], "f04a", "M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"],
    +  "balance-scale": [640, 512, [], "f24e", "M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "ban": [512, 512, [], "f05e", "M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"],
    +  "band-aid": [640, 512, [], "f462", "M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"],
    +  "barcode": [512, 512, [], "f02a", "M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"],
    +  "bars": [448, 512, [], "f0c9", "M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],
    +  "baseball-ball": [496, 512, [], "f433", "M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"],
    +  "basketball-ball": [496, 512, [], "f434", "M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"],
    +  "bath": [512, 512, [], "f2cd", "M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"],
    +  "battery-empty": [640, 512, [], "f244", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"],
    +  "battery-full": [640, 512, [], "f240", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"],
    +  "battery-half": [640, 512, [], "f242", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"],
    +  "battery-quarter": [640, 512, [], "f243", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"],
    +  "battery-three-quarters": [640, 512, [], "f241", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"],
    +  "bed": [640, 512, [], "f236", "M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"],
    +  "beer": [448, 512, [], "f0fc", "M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"],
    +  "bell": [448, 512, [], "f0f3", "M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"],
    +  "bell-slash": [640, 512, [], "f1f6", "M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"],
    +  "bezier-curve": [640, 512, [], "f55b", "M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],
    +  "bible": [448, 512, [], "f647", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],
    +  "bicycle": [640, 512, [], "f206", "M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"],
    +  "binoculars": [512, 512, [], "f1e5", "M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"],
    +  "birthday-cake": [448, 512, [], "f1fd", "M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"],
    +  "blender": [512, 512, [], "f517", "M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"],
    +  "blender-phone": [576, 512, [], "f6b6", "M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "blind": [384, 512, [], "f29d", "M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"],
    +  "bold": [384, 512, [], "f032", "M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z"],
    +  "bolt": [320, 512, [], "f0e7", "M295.973 160H180.572L215.19 30.184C219.25 14.956 207.756 0 192 0H56C43.971 0 33.8 8.905 32.211 20.828l-31.996 240C-1.704 275.217 9.504 288 24.004 288h118.701L96.646 482.466C93.05 497.649 104.659 512 119.992 512c8.35 0 16.376-4.374 20.778-11.978l175.973-303.997c9.244-15.967-2.288-36.025-20.77-36.025z"],
    +  "bomb": [512, 512, [], "f1e2", "M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"],
    +  "bone": [640, 512, [], "f5d7", "M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"],
    +  "bong": [448, 512, [], "f55c", "M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"],
    +  "book": [448, 512, [], "f02d", "M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"],
    +  "book-dead": [448, 512, [], "f6b7", "M272 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.18 0 80 28.65 80 64 0 20.87-12.68 39.23-32 50.91V184c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-13.09c-19.32-11.68-32-30.04-32-50.91 0-35.35 35.82-64 80-64zM129.05 233.85a7.996 7.996 0 0 1-4.2-10.5l6.29-14.7a7.995 7.995 0 0 1 10.51-4.2L240 246.6l98.35-42.15c4.06-1.74 8.77.14 10.51 4.2l6.29 14.7a7.996 7.996 0 0 1-4.2 10.5L280.6 264l70.34 30.15a7.996 7.996 0 0 1 4.2 10.5l-6.29 14.7a8.008 8.008 0 0 1-10.51 4.21L240 281.4l-98.35 42.15a8.003 8.003 0 0 1-10.51-4.21l-6.29-14.7a7.996 7.996 0 0 1 4.2-10.5L199.4 264l-70.35-30.15zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64zM208 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16z"],
    +  "book-open": [576, 512, [], "f518", "M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"],
    +  "book-reader": [512, 512, [], "f5da", "M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"],
    +  "bookmark": [384, 512, [], "f02e", "M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"],
    +  "bowling-ball": [496, 512, [], "f436", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "box": [512, 512, [], "f466", "M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"],
    +  "box-open": [640, 512, [], "f49e", "M53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9zm585.1 102.8L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9z"],
    +  "boxes": [576, 512, [], "f468", "M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"],
    +  "braille": [640, 512, [], "f2a1", "M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"],
    +  "brain": [576, 512, [], "f5dc", "M208 0c-29.87 0-54.74 20.55-61.8 48.22-.75-.02-1.45-.22-2.2-.22-35.34 0-64 28.65-64 64 0 4.84.64 9.51 1.66 14.04C52.54 138 32 166.57 32 200c0 12.58 3.16 24.32 8.34 34.91C16.34 248.72 0 274.33 0 304c0 33.34 20.42 61.88 49.42 73.89-.9 4.57-1.42 9.28-1.42 14.11 0 39.76 32.23 72 72 72 4.12 0 8.1-.55 12.03-1.21C141.61 491.31 168.25 512 200 512c39.77 0 72-32.24 72-72V205.45c-10.91 8.98-23.98 15.45-38.36 18.39-4.97 1.02-9.64-2.82-9.64-7.89v-16.18c0-3.57 2.35-6.78 5.8-7.66 24.2-6.16 42.2-27.95 42.2-54.04V64c0-35.35-28.66-64-64-64zm368 304c0-29.67-16.34-55.28-40.34-69.09 5.17-10.59 8.34-22.33 8.34-34.91 0-33.43-20.54-62-49.66-73.96 1.02-4.53 1.66-9.2 1.66-14.04 0-35.35-28.66-64-64-64-.75 0-1.45.2-2.2.22C422.74 20.55 397.87 0 368 0c-35.34 0-64 28.65-64 64v74.07c0 26.09 17.99 47.88 42.2 54.04 3.46.88 5.8 4.09 5.8 7.66v16.18c0 5.07-4.68 8.91-9.64 7.89-14.38-2.94-27.44-9.41-38.36-18.39V440c0 39.76 32.23 72 72 72 31.75 0 58.39-20.69 67.97-49.21 3.93.67 7.91 1.21 12.03 1.21 39.77 0 72-32.24 72-72 0-4.83-.52-9.54-1.42-14.11 29-12.01 49.42-40.55 49.42-73.89z"],
    +  "briefcase": [512, 512, [], "f0b1", "M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"],
    +  "briefcase-medical": [512, 512, [], "f469", "M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"],
    +  "broadcast-tower": [640, 512, [], "f519", "M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"],
    +  "broom": [640, 512, [], "f51a", "M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"],
    +  "brush": [384, 512, [], "f55d", "M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"],
    +  "bug": [512, 512, [], "f188", "M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"],
    +  "building": [448, 512, [], "f1ad", "M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"],
    +  "bullhorn": [576, 512, [], "f0a1", "M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"],
    +  "bullseye": [496, 512, [], "f140", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"],
    +  "burn": [384, 512, [], "f46a", "M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"],
    +  "bus": [512, 512, [], "f207", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "bus-alt": [512, 512, [], "f55e", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "business-time": [640, 512, [], "f64a", "M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"],
    +  "calculator": [448, 512, [], "f1ec", "M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"],
    +  "calendar": [448, 512, [], "f133", "M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"],
    +  "calendar-alt": [448, 512, [], "f073", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z"],
    +  "calendar-check": [448, 512, [], "f274", "M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"],
    +  "calendar-minus": [448, 512, [], "f272", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"],
    +  "calendar-plus": [448, 512, [], "f271", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"],
    +  "calendar-times": [448, 512, [], "f273", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"],
    +  "camera": [512, 512, [], "f030", "M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"],
    +  "camera-retro": [512, 512, [], "f083", "M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"],
    +  "campground": [640, 512, [], "f6bb", "M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"],
    +  "cannabis": [512, 512, [], "f55f", "M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"],
    +  "capsules": [576, 512, [], "f46b", "M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"],
    +  "car": [512, 512, [], "f1b9", "M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"],
    +  "car-alt": [480, 512, [], "f5de", "M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"],
    +  "car-battery": [512, 512, [], "f5df", "M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"],
    +  "car-crash": [640, 512, [], "f5e1", "M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"],
    +  "car-side": [640, 512, [], "f5e4", "M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"],
    +  "caret-down": [320, 512, [], "f0d7", "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"],
    +  "caret-left": [192, 512, [], "f0d9", "M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"],
    +  "caret-right": [192, 512, [], "f0da", "M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"],
    +  "caret-square-down": [448, 512, [], "f150", "M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"],
    +  "caret-square-left": [448, 512, [], "f191", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"],
    +  "caret-square-right": [448, 512, [], "f152", "M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"],
    +  "caret-square-up": [448, 512, [], "f151", "M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"],
    +  "caret-up": [320, 512, [], "f0d8", "M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"],
    +  "cart-arrow-down": [576, 512, [], "f218", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"],
    +  "cart-plus": [576, 512, [], "f217", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"],
    +  "cat": [512, 512, [], "f6be", "M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],
    +  "certificate": [512, 512, [], "f0a3", "M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"],
    +  "chair": [448, 512, [], "f6c0", "M446.33 341.88l-10.67-32A31.996 31.996 0 0 0 405.3 288H42.69c-13.77 0-26 8.81-30.36 21.88l-10.67 32C-5.24 362.6 10.18 384 32.03 384H32v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h256v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-.03c21.85 0 37.27-21.4 30.36-42.12zM112 128c0-29.48 16.2-54.99 40-68.87V256h48V48h48v208h48V59.13c23.8 13.88 40 39.39 40 68.87v128h48V128C384 57.31 326.69 0 256 0h-64C121.31 0 64 57.31 64 128v128h48V128z"],
    +  "chalkboard": [640, 512, [], "f51b", "M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "chalkboard-teacher": [640, 512, [], "f51c", "M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"],
    +  "charging-station": [576, 512, [], "f5e7", "M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"],
    +  "chart-area": [512, 512, [], "f1fe", "M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"],
    +  "chart-bar": [512, 512, [], "f080", "M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "chart-line": [512, 512, [], "f201", "M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"],
    +  "chart-pie": [544, 512, [], "f200", "M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"],
    +  "check": [512, 512, [], "f00c", "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"],
    +  "check-circle": [512, 512, [], "f058", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"],
    +  "check-double": [512, 512, [], "f560", "M504.5 171.95l-36.2-36.41c-10-10.05-26.21-10.05-36.2 0L192 377.02 79.9 264.28c-10-10.06-26.21-10.06-36.2 0L7.5 300.69c-10 10.05-10 26.36 0 36.41l166.4 167.36c10 10.06 26.21 10.06 36.2 0l294.4-296.09c10-10.06 10-26.36 0-36.42zM166.57 282.71c6.84 7.02 18.18 7.02 25.21.18L403.85 72.62c7.02-6.84 7.02-18.18.18-25.21L362.08 5.29c-6.84-7.02-18.18-7.02-25.21-.18L179.71 161.19l-68.23-68.77c-6.84-7.02-18.18-7.02-25.2-.18l-42.13 41.77c-7.02 6.84-7.02 18.18-.18 25.2l122.6 123.5z"],
    +  "check-square": [448, 512, [], "f14a", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"],
    +  "chess": [512, 512, [], "f439", "M199.821 217.633a6 6 0 0 1 6 6l-.001 20.766a6 6 0 0 1-6 6h-25.805c0 31.715-2.153 96.201 17.398 153.229H64.597C84.54 345.452 82.02 279.245 82.02 250.399H56.183a6 6 0 0 1-6-6l.002-20.766a6 6 0 0 1 6-6h143.636zM41.554 115.088l34.58 95.071h103.734l34.572-95.072c2.846-7.826-2.95-16.101-11.278-16.101H152v-30.22h21.57a6 6 0 0 0 6-6V40.383a6 6 0 0 0-6-6h-28.367V6a6 6 0 0 0-6-6H116.82a6 6 0 0 0-6 6v28.383H82.421a6 6 0 0 0-6 6v22.383a6 6 0 0 0 6 6H104v30.219H52.831c-8.328.001-14.124 8.276-11.277 16.103zM222.678 445.17v-28.067a6 6 0 0 0-6-6H39.322a6 6 0 0 0-6 6v28.067l-22.148 14.164a6 6 0 0 0-2.767 5.055V506a6 6 0 0 0 6 6h227.187a6 6 0 0 0 6-6v-41.612a6 6 0 0 0-2.767-5.055l-22.149-14.163zm90.578-144.225l24.88 16.963c.09 18.124-.167 63.904-11.905 114.522h147.526c-11.713-50.475-11.969-96.324-11.882-114.537l24.859-16.949a3.856 3.856 0 0 0 1.684-3.187v-69.901a3.857 3.857 0 0 0-3.857-3.857h-27.655a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.858-3.857h-52.918a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.857-3.857H315.43a3.857 3.857 0 0 0-3.857 3.857v69.901a3.855 3.855 0 0 0 1.683 3.188zm71.585 51.906c0-8.372 6.787-15.158 15.159-15.158s15.158 6.787 15.158 15.158v30.318h-30.317v-30.318zM504.62 470.059l-13.664-10.639v-15.552a3.857 3.857 0 0 0-3.857-3.857H312.915a3.857 3.857 0 0 0-3.857 3.857v15.552l-13.677 10.639a3.857 3.857 0 0 0-1.488 3.044v35.039a3.857 3.857 0 0 0 3.857 3.857h204.5a3.857 3.857 0 0 0 3.857-3.857v-35.04a3.859 3.859 0 0 0-1.487-3.043z"],
    +  "chess-bishop": [320, 512, [], "f43a", "M123.158 77.881C107.369 72.53 96 57.597 96 40c0-22.091 17.909-40 40-40h47.796c22.091 0 40 17.909 40 40 0 17.541-11.295 32.434-27.005 37.829 23.993 16.657 48.577 46.839 68.703 82.05L144.929 280.443a6 6 0 0 0 0 8.485l14.142 14.142a6 6 0 0 0 8.485 0L280.9 189.726c17.758 38.297 29.371 79.443 29.371 114.273 0 53.786-22.897 75.788-58.446 86.033V448H68.174v-57.97C32.631 379.784 9.739 357.781 9.739 304c0-78.029 58.281-187.766 113.419-226.119zM320 500v-24c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12z"],
    +  "chess-board": [512, 512, [], "f43c", "M256 256v64h-64v-64h64zm0-256h-64v64h64V0zm0 256h64v-64h-64v64zM384 0h-64v64h64V0zm0 512h64v-64h-64v64zm128-64v-64h-64v64h64zm-384 64h64v-64h-64v64zm0-512H64v64h64V0zm384 192v-64h-64v64h64zm0 128v-64h-64v64h64zM0 512h64v-64H0v64zM0 64v64h64V64H0zm0 128v64h64v-64H0zm0 128v64h64v-64H0zm256 192h64v-64h-64v64zm-64-128v64h64v-64h-64zm64-192v-64h-64v64h64zM64 384v64h64v-64H64zm64-128H64v64h64v-64zm256 128h64v-64h-64v64zM512 0h-64v64h64V0zM384 256h64v-64h-64v64zm0-192v64h64V64h-64zm-64 320v64h64v-64h-64zm-192-64v64h64v-64h-64zm128 0v64h64v-64h-64zm-64-128h-64v64h64v-64zm-64-64H64v64h64v-64zm192 192h64v-64h-64v64zM192 128V64h-64v64h64zm128 0V64h-64v64h64zm0 64h64v-64h-64v64z"],
    +  "chess-king": [448, 512, [], "f43f", "M416 476v24c0 6.627-5.373 12-12 12H44c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12zm-8.033-324H248v-48h50a6 6 0 0 0 6-6V62a6 6 0 0 0-6-6h-50V6a6 6 0 0 0-6-6h-36a6 6 0 0 0-6 6v50h-50a6 6 0 0 0-6 6v36a6 6 0 0 0 6 6h50v48H40.033c-27.574 0-46.879 27.244-37.738 53.259L87.582 448h272.836l85.287-242.741C454.846 179.244 435.541 152 407.967 152z"],
    +  "chess-knight": [384, 512, [], "f441", "M352 224v224H32v-46.557c0-30.302 17.12-58.003 44.223-71.554l57.243-28.622A48 48 0 0 0 160 258.334V208l-22.127 11.063a23.996 23.996 0 0 0-12.55 15.645l-11.835 47.338a12 12 0 0 1-7.185 8.231l-29.601 11.84a11.998 11.998 0 0 1-9.33-.176L7.126 275.167A12 12 0 0 1 0 264.201v-158.26c0-6.365 2.529-12.47 7.03-16.971L16 80 1.789 51.578A16.937 16.937 0 0 1 0 44c0-6.627 5.373-12 12-12h148c106.039 0 192 85.961 192 192zm20 240H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12zM52 128c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"],
    +  "chess-pawn": [320, 512, [], "f443", "M264 448H56s60-42.743 60-176H84c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h40.209C95.721 210.56 76 181.588 76 148c0-46.392 37.608-84 84-84s84 37.608 84 84c0 33.588-19.721 62.56-48.209 76H236c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12h-32c0 133.257 60 176 60 176zm28 16H28c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h264c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12z"],
    +  "chess-queen": [512, 512, [], "f445", "M436 512H76c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12zM255.579 0c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zm204.568 154.634c-5.768-3.045-12.916-.932-16.082 4.77-8.616 15.516-22.747 37.801-44.065 37.801-28.714 0-30.625-19.804-31.686-57.542-.183-6.492-5.501-11.664-11.995-11.664h-41.006c-5.175 0-9.754 3.328-11.388 8.238-8.89 26.709-26.073 40.992-47.925 40.992s-39.034-14.283-47.925-40.992c-1.634-4.91-6.213-8.238-11.388-8.238h-41.005c-6.495 0-11.813 5.174-11.995 11.667-1.052 37.642-2.934 57.539-31.688 57.539-20.691 0-33.817-20.224-44.425-38.025-3.266-5.48-10.258-7.431-15.899-4.453l-39.179 20.679a12 12 0 0 0-5.51 15.145L112 448h288l105.014-257.448a12 12 0 0 0-5.51-15.145l-39.357-20.773z"],
    +  "chess-rook": [384, 512, [], "f447", "M81.241 215.027C80.957 258.92 77.411 348.076 48 448h287.982c-29.4-99.604-32.936-188.912-33.221-232.975l45.418-42.312a11.998 11.998 0 0 0 3.82-8.78V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v44h-48V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v44H96V44c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v119.932c0 3.33 1.384 6.51 3.82 8.78l45.421 42.315zM160 256c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v64.004h-64V256zm224 220v24c0 6.627-5.373 12-12 12H12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12z"],
    +  "chevron-circle-down": [512, 512, [], "f13a", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"],
    +  "chevron-circle-left": [512, 512, [], "f137", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"],
    +  "chevron-circle-right": [512, 512, [], "f138", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"],
    +  "chevron-circle-up": [512, 512, [], "f139", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"],
    +  "chevron-down": [448, 512, [], "f078", "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"],
    +  "chevron-left": [320, 512, [], "f053", "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"],
    +  "chevron-right": [320, 512, [], "f054", "M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"],
    +  "chevron-up": [448, 512, [], "f077", "M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"],
    +  "child": [384, 512, [], "f1ae", "M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"],
    +  "church": [640, 512, [], "f51d", "M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"],
    +  "circle": [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"],
    +  "circle-notch": [512, 512, [], "f1ce", "M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"],
    +  "city": [640, 512, [], "f64f", "M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"],
    +  "clipboard": [384, 512, [], "f328", "M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"],
    +  "clipboard-check": [384, 512, [], "f46c", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"],
    +  "clipboard-list": [384, 512, [], "f46d", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"],
    +  "clock": [512, 512, [], "f017", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z"],
    +  "clone": [512, 512, [], "f24d", "M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"],
    +  "closed-captioning": [512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"],
    +  "cloud": [640, 512, [], "f0c2", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"],
    +  "cloud-download-alt": [640, 512, [], "f381", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"],
    +  "cloud-moon": [640, 512, [], "f6c3", "M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.3 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm285.26-29.42c-104.23 19.22-199.95-58.16-199.95-160.03 0-58.68 32.45-112.64 85.18-141.7 8.13-4.48 6.08-16.41-3.15-18.06C497.14 1.17 484 0 470.84 0 352.25 0 256 93.04 256 208c0 7.26.4 14.44 1.15 21.51 9.87-3.38 20.18-5.51 30.85-5.51 52.94 0 96 43.06 96 96 0 3.59-.21 7.17-.63 10.73 33.49 15.39 57.47 46.55 63.24 83.86 7.96.87 16.03 1.41 24.23 1.41 66.26 0 126.79-29.19 166.88-77.02 5.93-7.07-.54-17.41-9.71-15.72z"],
    +  "cloud-sun": [640, 512, [], "f6c4", "M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.31 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm243.19-99.8c-7.85-6.79-7.85-18.97 0-25.76L633.41 186c12.76-11.05 5.84-32.02-11-33.3l-61.59-4.67c-10.19-.78-17.28-10.49-14.9-20.43l14.95-62.48c3.89-16.26-13.96-29.02-28.08-20.07l-52.51 33.26c-8.61 5.46-20.06 1.75-23.85-7.72l-23.47-58.74c-6.32-15.81-28.19-15.81-34.51 0l-23.38 58.49c-3.83 9.59-15.44 13.35-24.17 7.82l-52.29-33.12c-14.13-8.95-31.98 3.81-28.08 20.07l14.95 62.48c2.38 9.94-4.7 19.65-14.9 20.43l-61.15 4.64c-17 1.29-23.99 22.46-11.1 33.62l31.23 27.05c7.82 5.17 15.21 11.01 21.78 17.84 11.42-4.71 23.73-7.18 36.37-7.18 5.97 0 11.77.71 17.44 1.76 7.09-54.98 53.68-97.76 110.56-97.76 61.76 0 112 50.24 112 112s-50.24 112-112 112c-.95 0-1.83-.26-2.77-.28 13.83 13.2 24.61 29.47 30.16 48.28h27.02c6.25 0 12.37 1.83 17.6 5.27l45.08 29.68c14.19 8.99 31.89-4.17 27.92-20.76l-14.69-61.38c-2.43-10.16 4.8-20.08 15.22-20.87l61.16-4.64c16.84-1.28 23.76-22.25 11-33.3l-47.47-41.11zm-202.66 59.94C393.3 317.34 404.32 320 416 320c44.11 0 80-35.89 80-80s-35.89-80-80-80c-43.25 0-78.39 34.56-79.75 77.49 26.44 15.53 44.59 43.13 47.03 75.33z"],
    +  "cloud-upload-alt": [640, 512, [], "f382", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"],
    +  "cocktail": [576, 512, [], "f561", "M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"],
    +  "code": [640, 512, [], "f121", "M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"],
    +  "code-branch": [384, 512, [], "f126", "M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"],
    +  "coffee": [640, 512, [], "f0f4", "M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"],
    +  "cog": [512, 512, [], "f013", "M444.788 291.1l42.616 24.599c4.867 2.809 7.126 8.618 5.459 13.985-11.07 35.642-29.97 67.842-54.689 94.586a12.016 12.016 0 0 1-14.832 2.254l-42.584-24.595a191.577 191.577 0 0 1-60.759 35.13v49.182a12.01 12.01 0 0 1-9.377 11.718c-34.956 7.85-72.499 8.256-109.219.007-5.49-1.233-9.403-6.096-9.403-11.723v-49.184a191.555 191.555 0 0 1-60.759-35.13l-42.584 24.595a12.016 12.016 0 0 1-14.832-2.254c-24.718-26.744-43.619-58.944-54.689-94.586-1.667-5.366.592-11.175 5.459-13.985L67.212 291.1a193.48 193.48 0 0 1 0-70.199l-42.616-24.599c-4.867-2.809-7.126-8.618-5.459-13.985 11.07-35.642 29.97-67.842 54.689-94.586a12.016 12.016 0 0 1 14.832-2.254l42.584 24.595a191.577 191.577 0 0 1 60.759-35.13V25.759a12.01 12.01 0 0 1 9.377-11.718c34.956-7.85 72.499-8.256 109.219-.007 5.49 1.233 9.403 6.096 9.403 11.723v49.184a191.555 191.555 0 0 1 60.759 35.13l42.584-24.595a12.016 12.016 0 0 1 14.832 2.254c24.718 26.744 43.619 58.944 54.689 94.586 1.667 5.366-.592 11.175-5.459 13.985L444.788 220.9a193.485 193.485 0 0 1 0 70.2zM336 256c0-44.112-35.888-80-80-80s-80 35.888-80 80 35.888 80 80 80 80-35.888 80-80z"],
    +  "cogs": [640, 512, [], "f085", "M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"],
    +  "coins": [512, 512, [], "f51e", "M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"],
    +  "columns": [512, 512, [], "f0db", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"],
    +  "comment": [512, 512, [], "f075", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"],
    +  "comment-alt": [512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"],
    +  "comment-dollar": [512, 512, [], "f651", "M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"],
    +  "comment-dots": [512, 512, [], "f4ad", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "comment-slash": [640, 512, [], "f4b3", "M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"],
    +  "comments": [576, 512, [], "f086", "M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"],
    +  "comments-dollar": [576, 512, [], "f653", "M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"],
    +  "compact-disc": [496, 512, [], "f51f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
    +  "compass": [496, 512, [], "f14e", "M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"],
    +  "compress": [448, 512, [], "f066", "M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"],
    +  "concierge-bell": [512, 512, [], "f562", "M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "cookie": [512, 512, [], "f563", "M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "cookie-bite": [512, 512, [], "f564", "M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "copy": [448, 512, [], "f0c5", "M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"],
    +  "copyright": [512, 512, [], "f1f9", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"],
    +  "couch": [640, 512, [], "f4b8", "M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"],
    +  "credit-card": [576, 512, [], "f09d", "M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"],
    +  "crop": [512, 512, [], "f125", "M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],
    +  "crop-alt": [512, 512, [], "f565", "M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"],
    +  "cross": [384, 512, [], "f654", "M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],
    +  "crosshairs": [512, 512, [], "f05b", "M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"],
    +  "crow": [640, 512, [], "f520", "M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],
    +  "crown": [640, 512, [], "f521", "M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"],
    +  "cube": [512, 512, [], "f1b2", "M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"],
    +  "cubes": [512, 512, [], "f1b3", "M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"],
    +  "cut": [448, 512, [], "f0c4", "M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"],
    +  "database": [448, 512, [], "f1c0", "M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"],
    +  "deaf": [512, 512, [], "f2a4", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"],
    +  "desktop": [576, 512, [], "f108", "M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"],
    +  "dharmachakra": [512, 512, [], "f655", "M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"],
    +  "diagnoses": [640, 512, [], "f470", "M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"],
    +  "dice": [640, 512, [], "f522", "M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],
    +  "dice-d20": [480, 512, [], "f6cf", "M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"],
    +  "dice-d6": [448, 512, [], "f6d1", "M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"],
    +  "dice-five": [448, 512, [], "f523", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "dice-four": [448, 512, [], "f524", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "dice-one": [448, 512, [], "f525", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "dice-six": [448, 512, [], "f526", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "dice-three": [448, 512, [], "f527", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "dice-two": [448, 512, [], "f528", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "digital-tachograph": [640, 512, [], "f566", "M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"],
    +  "directions": [512, 512, [], "f5eb", "M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"],
    +  "divide": [448, 512, [], "f529", "M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],
    +  "dizzy": [496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"],
    +  "dna": [448, 512, [], "f471", "M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"],
    +  "dog": [512, 512, [], "f6d3", "M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z"],
    +  "dollar-sign": [288, 512, [], "f155", "M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"],
    +  "dolly": [576, 512, [], "f472", "M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],
    +  "dolly-flatbed": [640, 512, [], "f474", "M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"],
    +  "donate": [512, 512, [], "f4b9", "M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"],
    +  "door-closed": [640, 512, [], "f52a", "M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"],
    +  "door-open": [640, 512, [], "f52b", "M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"],
    +  "dot-circle": [512, 512, [], "f192", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"],
    +  "dove": [512, 512, [], "f4ba", "M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],
    +  "download": [512, 512, [], "f019", "M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"],
    +  "drafting-compass": [512, 512, [], "f568", "M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"],
    +  "dragon": [640, 512, [], "f6d5", "M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"],
    +  "draw-polygon": [448, 512, [], "f5ee", "M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"],
    +  "drum": [576, 512, [], "f569", "M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z"],
    +  "drum-steelpan": [576, 512, [], "f56a", "M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"],
    +  "drumstick-bite": [512, 512, [], "f6d7", "M462.79 49.57c-66.14-66.09-173.36-66.09-239.5 0C187.81 85.02 160.12 128 160.12 192v85.83l-40.62 40.59c-9.7 9.69-24.04 11.07-36.78 5.98-21.72-8.68-47.42-4.29-65.02 13.29-23.61 23.59-23.61 61.84 0 85.43 15.28 15.27 36.53 19.58 56.14 15.09-4.5 19.6-.18 40.83 15.1 56.1 23.61 23.59 61.88 23.59 85.49 0 17.6-17.58 21.99-43.26 13.31-64.97-5.09-12.73-3.72-27.05 5.99-36.75L234.35 352h85.89c23.2 0 43.57-3.72 61.89-10.03-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.93-14.81-90.25-49.13-124.53z"],
    +  "dumbbell": [640, 512, [], "f44b", "M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"],
    +  "dungeon": [512, 512, [], "f6d9", "M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"],
    +  "edit": [576, 512, [], "f044", "M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"],
    +  "eject": [448, 512, [], "f052", "M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"],
    +  "ellipsis-h": [512, 512, [], "f141", "M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"],
    +  "ellipsis-v": [192, 512, [], "f142", "M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"],
    +  "envelope": [512, 512, [], "f0e0", "M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"],
    +  "envelope-open": [512, 512, [], "f2b6", "M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"],
    +  "envelope-open-text": [512, 512, [], "f658", "M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"],
    +  "envelope-square": [448, 512, [], "f199", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"],
    +  "equals": [448, 512, [], "f52c", "M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],
    +  "eraser": [512, 512, [], "f12d", "M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"],
    +  "euro-sign": [320, 512, [], "f153", "M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"],
    +  "exchange-alt": [512, 512, [], "f362", "M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"],
    +  "exclamation": [192, 512, [], "f12a", "M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"],
    +  "exclamation-circle": [512, 512, [], "f06a", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"],
    +  "exclamation-triangle": [576, 512, [], "f071", "M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"],
    +  "expand": [448, 512, [], "f065", "M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"],
    +  "expand-arrows-alt": [448, 512, [], "f31e", "M448.1 344v112c0 13.3-10.7 24-24 24h-112c-21.4 0-32.1-25.9-17-41l36.2-36.2L224 295.6 116.8 402.9 153 439c15.1 15.1 4.4 41-17 41H24c-13.3 0-24-10.7-24-24V344c0-21.4 25.9-32.1 41-17l36.2 36.2L184.5 256 77.2 148.7 41 185c-15.1 15.1-41 4.4-41-17V56c0-13.3 10.7-24 24-24h112c21.4 0 32.1 25.9 17 41l-36.2 36.2L224 216.4l107.3-107.3L295.1 73c-15.1-15.1-4.4-41 17-41h112c13.3 0 24 10.7 24 24v112c0 21.4-25.9 32.1-41 17l-36.2-36.2L263.6 256l107.3 107.3 36.2-36.2c15.1-15.2 41-4.5 41 16.9z"],
    +  "external-link-alt": [576, 512, [], "f35d", "M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z"],
    +  "external-link-square-alt": [448, 512, [], "f360", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"],
    +  "eye": [576, 512, [], "f06e", "M569.354 231.631C512.969 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-75.162 0-136-60.827-136-136 0-75.162 60.826-136 136-136 75.162 0 136 60.826 136 136 0 75.162-60.826 136-136 136zm104-136c0 57.438-46.562 104-104 104s-104-46.562-104-104c0-17.708 4.431-34.379 12.236-48.973l-.001.032c0 23.651 19.173 42.823 42.824 42.823s42.824-19.173 42.824-42.823c0-23.651-19.173-42.824-42.824-42.824l-.032.001C253.621 156.431 270.292 152 288 152c57.438 0 104 46.562 104 104z"],
    +  "eye-dropper": [512, 512, [], "f1fb", "M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"],
    +  "eye-slash": [576, 512, [], "f070", "M286.693 391.984l32.579 46.542A333.958 333.958 0 0 1 288 440C168.19 440 63.031 376.051 6.646 280.369a47.999 47.999 0 0 1 0-48.739c24.023-40.766 56.913-75.775 96.024-102.537l57.077 81.539C154.736 224.82 152 240.087 152 256c0 74.736 60.135 135.282 134.693 135.984zm282.661-111.615c-31.667 53.737-78.747 97.46-135.175 125.475l.011.015 41.47 59.2c7.6 10.86 4.96 25.82-5.9 33.42l-13.11 9.18c-10.86 7.6-25.82 4.96-33.42-5.9L100.34 46.94c-7.6-10.86-4.96-25.82 5.9-33.42l13.11-9.18c10.86-7.6 25.82-4.96 33.42 5.9l51.038 72.617C230.68 75.776 258.905 72 288 72c119.81 0 224.969 63.949 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM424 256c0-75.174-60.838-136-136-136-17.939 0-35.056 3.473-50.729 9.772l19.299 27.058c25.869-8.171 55.044-6.163 80.4 7.41h-.03c-23.65 0-42.82 19.17-42.82 42.82 0 23.626 19.147 42.82 42.82 42.82 23.65 0 42.82-19.17 42.82-42.82v-.03c18.462 34.49 16.312 77.914-8.25 110.95v.01l19.314 27.061C411.496 321.2 424 290.074 424 256zM262.014 356.727l-77.53-110.757c-5.014 52.387 29.314 98.354 77.53 110.757z"],
    +  "fast-backward": [512, 512, [], "f049", "M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"],
    +  "fast-forward": [512, 512, [], "f050", "M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"],
    +  "fax": [512, 512, [], "f1ac", "M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z"],
    +  "feather": [512, 512, [], "f52d", "M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"],
    +  "feather-alt": [512, 512, [], "f56b", "M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"],
    +  "female": [256, 512, [], "f182", "M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"],
    +  "fighter-jet": [640, 512, [], "f0fb", "M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"],
    +  "file": [384, 512, [], "f15b", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-alt": [384, 512, [], "f15c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-archive": [384, 512, [], "f1c6", "M224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32V32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6zm32.7-53c0 14.9-14.5 27-32.4 27S96 378 96 363c0-14.9 14.5-27 32.4-27s32.5 12.1 32.5 27zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-audio": [384, 512, [], "f1c7", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-code": [384, 512, [], "f1c9", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"],
    +  "file-contract": [384, 512, [], "f56c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-csv": [384, 512, [], "f6dd", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-download": [384, 512, [], "f56d", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-excel": [384, 512, [], "f1c3", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-export": [576, 512, [], "f56e", "M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zM192 336v-32c0-8.84 7.16-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.84 0-16-7.16-16-16zm379.05-28.02l-95.7-96.43c-10.06-10.14-27.36-3.01-27.36 11.27V288H384v64h63.99v65.18c0 14.28 17.29 21.41 27.36 11.27l95.7-96.42c6.6-6.66 6.6-17.4 0-24.05z"],
    +  "file-image": [384, 512, [], "f1c5", "M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"],
    +  "file-import": [512, 512, [], "f56f", "M16 288c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h112v-64H16zm336-152V0H152c-13.3 0-24 10.7-24 24v264h127.99v-65.18c0-14.28 17.29-21.41 27.36-11.27l95.7 96.43c6.6 6.65 6.6 17.39 0 24.04l-95.7 96.42c-10.06 10.14-27.36 3.01-27.36-11.27V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24zm153-31L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-invoice": [384, 512, [], "f570", "M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"],
    +  "file-invoice-dollar": [384, 512, [], "f571", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"],
    +  "file-medical": [384, 512, [], "f477", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"],
    +  "file-medical-alt": [448, 512, [], "f478", "M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-pdf": [384, 512, [], "f1c1", "M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"],
    +  "file-powerpoint": [384, 512, [], "f1c4", "M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"],
    +  "file-prescription": [384, 512, [], "f572", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-signature": [576, 512, [], "f573", "M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"],
    +  "file-upload": [384, 512, [], "f574", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-video": [384, 512, [], "f1c8", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"],
    +  "file-word": [384, 512, [], "f1c2", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "fill": [512, 512, [], "f575", "M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"],
    +  "fill-drip": [576, 512, [], "f576", "M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"],
    +  "film": [512, 512, [], "f008", "M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"],
    +  "filter": [512, 512, [], "f0b0", "M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"],
    +  "fingerprint": [512, 512, [], "f577", "M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"],
    +  "fire": [384, 512, [], "f06d", "M216 23.858c0-23.802-30.653-32.765-44.149-13.038C48 191.851 224 200 224 288c0 35.629-29.114 64.458-64.85 63.994C123.98 351.538 96 322.22 96 287.046v-85.51c0-21.703-26.471-32.225-41.432-16.504C27.801 213.158 0 261.332 0 320c0 105.869 86.131 192 192 192s192-86.131 192-192c0-170.29-168-193.003-168-296.142z"],
    +  "fire-extinguisher": [448, 512, [], "f134", "M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"],
    +  "first-aid": [576, 512, [], "f479", "M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],
    +  "fish": [576, 512, [], "f578", "M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"],
    +  "fist-raised": [384, 512, [], "f6de", "M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"],
    +  "flag": [512, 512, [], "f024", "M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"],
    +  "flag-checkered": [512, 512, [], "f11e", "M466.515 66.928C487.731 57.074 512 72.551 512 95.944v243.1c0 10.526-5.161 20.407-13.843 26.358-35.837 24.564-74.335 40.858-122.505 40.858-67.373 0-111.63-34.783-165.217-34.783-50.853 0-86.124 10.058-114.435 22.122V488c0 13.255-10.745 24-24 24H56c-13.255 0-24-10.745-24-24V101.945C17.497 91.825 8 75.026 8 56 8 24.296 34.345-1.254 66.338.048c28.468 1.158 51.779 23.968 53.551 52.404.52 8.342-.81 16.31-3.586 23.562C137.039 68.384 159.393 64 184.348 64c67.373 0 111.63 34.783 165.217 34.783 40.496 0 82.612-15.906 116.95-31.855zM96 134.63v70.49c29-10.67 51.18-17.83 73.6-20.91v-71.57c-23.5 2.17-40.44 9.79-73.6 21.99zm220.8 9.19c-26.417-4.672-49.886-13.979-73.6-21.34v67.42c24.175 6.706 47.566 16.444 73.6 22.31v-68.39zm-147.2 40.39v70.04c32.796-2.978 53.91-.635 73.6 3.8V189.9c-25.247-7.035-46.581-9.423-73.6-5.69zm73.6 142.23c26.338 4.652 49.732 13.927 73.6 21.34v-67.41c-24.277-6.746-47.54-16.45-73.6-22.32v68.39zM96 342.1c23.62-8.39 47.79-13.84 73.6-16.56v-71.29c-26.11 2.35-47.36 8.04-73.6 17.36v70.49zm368-221.6c-21.3 8.85-46.59 17.64-73.6 22.47v71.91c27.31-4.36 50.03-14.1 73.6-23.89V120.5zm0 209.96v-70.49c-22.19 14.2-48.78 22.61-73.6 26.02v71.58c25.07-2.38 48.49-11.04 73.6-27.11zM316.8 212.21v68.16c25.664 7.134 46.616 9.342 73.6 5.62v-71.11c-25.999 4.187-49.943 2.676-73.6-2.67z"],
    +  "flask": [448, 512, [], "f0c3", "M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"],
    +  "flushed": [496, 512, [], "f579", "M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"],
    +  "folder": [512, 512, [], "f07b", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"],
    +  "folder-minus": [512, 512, [], "f65d", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"],
    +  "folder-open": [576, 512, [], "f07c", "M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"],
    +  "folder-plus": [512, 512, [], "f65e", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z"],
    +  "font": [448, 512, [], "f031", "M152 416h-24.013l26.586-80.782H292.8L319.386 416H296c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-26.739L275.495 42.746A16 16 0 0 0 260.382 32h-72.766a16 16 0 0 0-15.113 10.746L42.739 416H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm64.353-271.778c4.348-15.216 6.61-28.156 7.586-34.644.839 6.521 2.939 19.476 7.727 34.706l41.335 124.006h-98.619l41.971-124.068z"],
    +  "font-awesome-logo-full": [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],
    +  "football-ball": [496, 512, [], "f44e", "M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"],
    +  "forward": [512, 512, [], "f04e", "M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"],
    +  "frog": [576, 512, [], "f52e", "M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"],
    +  "frown": [496, 512, [], "f119", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"],
    +  "frown-open": [496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "funnel-dollar": [640, 512, [], "f662", "M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"],
    +  "futbol": [512, 512, [], "f1e3", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"],
    +  "gamepad": [640, 512, [], "f11b", "M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],
    +  "gas-pump": [512, 512, [], "f52f", "M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"],
    +  "gavel": [512, 512, [], "f0e3", "M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"],
    +  "gem": [576, 512, [], "f3a5", "M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"],
    +  "genderless": [288, 512, [], "f22d", "M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"],
    +  "ghost": [384, 512, [], "f6e2", "M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "gift": [512, 512, [], "f06b", "M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm448-288h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40zm-72 320h160c17.7 0 32-14.3 32-32V320H288v160z"],
    +  "glass-martini": [512, 512, [], "f000", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"],
    +  "glass-martini-alt": [512, 512, [], "f57b", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"],
    +  "glasses": [576, 512, [], "f530", "M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"],
    +  "globe": [496, 512, [], "f0ac", "M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"],
    +  "globe-africa": [496, 512, [], "f57c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"],
    +  "globe-americas": [496, 512, [], "f57d", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"],
    +  "globe-asia": [496, 512, [], "f57e", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"],
    +  "golf-ball": [416, 512, [], "f450", "M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"],
    +  "gopuram": [512, 512, [], "f664", "M496 352h-16V240c0-8.84-7.16-16-16-16h-16v-80c0-8.84-7.16-16-16-16h-16V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16S96 7.16 96 16v112H80c-8.84 0-16 7.16-16 16v80H48c-8.84 0-16 7.16-16 16v112H16c-8.84 0-16 7.16-16 16v128c0 8.84 7.16 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.84 0 16-7.16 16-16V368c0-8.84-7.16-16-16-16zm-272 0v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64h-64zm8-128v-48c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v48h-48z"],
    +  "graduation-cap": [640, 512, [], "f19d", "M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"],
    +  "greater-than": [384, 512, [], "f531", "M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"],
    +  "greater-than-equal": [448, 512, [], "f532", "M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],
    +  "grimace": [496, 512, [], "f57f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"],
    +  "grin": [496, 512, [], "f580", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-alt": [496, 512, [], "f581", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-beam": [496, 512, [], "f582", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-beam-sweat": [504, 512, [], "f583", "M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-hearts": [496, 512, [], "f584", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"],
    +  "grin-squint": [496, 512, [], "f585", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-squint-tears": [512, 512, [], "f586", "M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"],
    +  "grin-stars": [496, 512, [], "f587", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"],
    +  "grin-tears": [640, 512, [], "f588", "M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-tongue": [496, 512, [], "f589", "M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"],
    +  "grin-tongue-squint": [496, 512, [], "f58a", "M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"],
    +  "grin-tongue-wink": [496, 512, [], "f58b", "M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"],
    +  "grin-wink": [496, 512, [], "f58c", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"],
    +  "grip-horizontal": [448, 512, [], "f58d", "M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],
    +  "grip-vertical": [320, 512, [], "f58e", "M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],
    +  "h-square": [448, 512, [], "f0fd", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"],
    +  "hammer": [576, 512, [], "f6e3", "M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"],
    +  "hamsa": [512, 512, [], "f665", "M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],
    +  "hand-holding": [576, 512, [], "f4bd", "M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"],
    +  "hand-holding-heart": [576, 512, [], "f4be", "M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"],
    +  "hand-holding-usd": [544, 512, [], "f4c0", "M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z"],
    +  "hand-lizard": [576, 512, [], "f258", "M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"],
    +  "hand-paper": [448, 512, [], "f256", "M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"],
    +  "hand-peace": [448, 512, [], "f25b", "M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"],
    +  "hand-point-down": [384, 512, [], "f0a7", "M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"],
    +  "hand-point-left": [512, 512, [], "f0a5", "M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"],
    +  "hand-point-right": [512, 512, [], "f0a4", "M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"],
    +  "hand-point-up": [384, 512, [], "f0a6", "M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"],
    +  "hand-pointer": [448, 512, [], "f25a", "M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"],
    +  "hand-rock": [512, 512, [], "f255", "M512 128.79c0-26.322-20.861-48.344-47.18-48.783C437.935 79.558 416 101.217 416 128h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C333.935 47.558 312 69.217 312 96v32h-8V80.79c0-26.322-20.861-48.344-47.18-48.783C229.935 31.558 208 53.217 208 80v48h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C125.935 47.558 104 69.217 104 96v136l-8-7.111V176.79c0-26.322-20.861-48.344-47.18-48.783C21.935 127.558 0 149.217 0 176v66.445a95.998 95.998 0 0 0 32.221 71.751l111.668 99.261A47.999 47.999 0 0 1 160 449.333V456c0 13.255 10.745 24 24 24h240c13.255 0 24-10.745 24-24v-2.921a96.01 96.01 0 0 1 7.523-37.254l48.954-116.265A96.002 96.002 0 0 0 512 262.306V128.79z"],
    +  "hand-scissors": [512, 512, [], "f257", "M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"],
    +  "hand-spock": [512, 512, [], "f259", "M10.872 316.585c15.139-16.086 40.454-16.854 56.543-1.713L128 371.893v-79.405L88.995 120.865c-4.896-21.542 8.598-42.974 30.14-47.87 21.549-4.894 42.975 8.599 47.87 30.141L201.747 256h9.833L164.016 48.966c-4.946-21.531 8.498-42.994 30.028-47.94 21.532-4.95 42.994 8.498 47.94 30.028L293.664 256h15.105l48.425-193.702c5.357-21.432 27.075-34.462 48.507-29.104 21.432 5.358 34.463 27.075 29.104 48.507L391.231 256h11.08l30.768-129.265c5.117-21.491 26.685-34.768 48.177-29.647 21.491 5.117 34.765 26.686 29.647 48.177l-36.292 152.467A96.024 96.024 0 0 0 472 319.967v42.102a96.002 96.002 0 0 1-3.96 27.287l-26.174 88.287C435.825 498.022 417.101 512 395.846 512H179.172a48.002 48.002 0 0 1-32.898-13.046L12.585 373.128c-16.087-15.141-16.853-40.456-1.713-56.543z"],
    +  "hands": [640, 512, [], "f4c2", "M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"],
    +  "hands-helping": [640, 512, [], "f4c4", "M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"],
    +  "handshake": [640, 512, [], "f2b5", "M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"],
    +  "hanukiah": [640, 512, [], "f6e6", "M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"],
    +  "hashtag": [448, 512, [], "f292", "M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"],
    +  "hat-wizard": [512, 512, [], "f6e8", "M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"],
    +  "haykal": [512, 512, [], "f666", "M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"],
    +  "hdd": [576, 512, [], "f0a0", "M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"],
    +  "heading": [512, 512, [], "f1dc", "M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z"],
    +  "headphones": [512, 512, [], "f025", "M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"],
    +  "headphones-alt": [512, 512, [], "f58f", "M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"],
    +  "headset": [512, 512, [], "f590", "M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"],
    +  "heart": [512, 512, [], "f004", "M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"],
    +  "heartbeat": [512, 512, [], "f21e", "M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"],
    +  "helicopter": [640, 512, [], "f533", "M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"],
    +  "highlighter": [544, 512, [], "f591", "M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"],
    +  "hiking": [384, 512, [], "f6ec", "M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"],
    +  "hippo": [640, 512, [], "f6ed", "M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],
    +  "history": [512, 512, [], "f1da", "M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"],
    +  "hockey-puck": [512, 512, [], "f453", "M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"],
    +  "home": [576, 512, [], "f015", "M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z"],
    +  "horse": [576, 512, [], "f6f0", "M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],
    +  "hospital": [448, 512, [], "f0f8", "M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"],
    +  "hospital-alt": [576, 512, [], "f47d", "M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"],
    +  "hospital-symbol": [512, 512, [], "f47e", "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"],
    +  "hot-tub": [512, 512, [], "f593", "M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"],
    +  "hotel": [576, 512, [], "f594", "M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"],
    +  "hourglass": [384, 512, [], "f254", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"],
    +  "hourglass-end": [384, 512, [], "f253", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"],
    +  "hourglass-half": [384, 512, [], "f252", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"],
    +  "hourglass-start": [384, 512, [], "f251", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"],
    +  "house-damage": [576, 512, [], "f6f1", "M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"],
    +  "hryvnia": [384, 512, [], "f6f2", "M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"],
    +  "i-cursor": [256, 512, [], "f246", "M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"],
    +  "id-badge": [384, 512, [], "f2c1", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],
    +  "id-card": [576, 512, [], "f2c2", "M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"],
    +  "id-card-alt": [576, 512, [], "f47f", "M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"],
    +  "image": [512, 512, [], "f03e", "M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"],
    +  "images": [576, 512, [], "f302", "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"],
    +  "inbox": [576, 512, [], "f01c", "M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"],
    +  "indent": [448, 512, [], "f03c", "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm176 144h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm-52.687-111.313l-96-95.984C17.266 138.652 0 145.776 0 160.016v191.975c0 14.329 17.325 21.304 27.313 11.313l96-95.992c6.249-6.247 6.249-16.377 0-22.625z"],
    +  "industry": [512, 512, [], "f275", "M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"],
    +  "infinity": [640, 512, [], "f534", "M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"],
    +  "info": [192, 512, [], "f129", "M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"],
    +  "info-circle": [512, 512, [], "f05a", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"],
    +  "italic": [320, 512, [], "f033", "M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z"],
    +  "jedi": [544, 512, [], "f669", "M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z"],
    +  "joint": [640, 512, [], "f595", "M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"],
    +  "journal-whills": [448, 512, [], "f66a", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],
    +  "kaaba": [576, 512, [], "f66b", "M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"],
    +  "key": [512, 512, [], "f084", "M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"],
    +  "keyboard": [576, 512, [], "f11c", "M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"],
    +  "khanda": [512, 512, [], "f66d", "M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"],
    +  "kiss": [496, 512, [], "f596", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "kiss-beam": [496, 512, [], "f597", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"],
    +  "kiss-wink-heart": [504, 512, [], "f598", "M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"],
    +  "kiwi-bird": [576, 512, [], "f535", "M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"],
    +  "landmark": [512, 512, [], "f66f", "M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "language": [640, 512, [], "f1ab", "M304 416H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h280v320zm-120.676-72.622A12 12 0 0 0 194.839 352h22.863c8.22 0 14.007-8.078 11.362-15.861L171.61 167.085a12 12 0 0 0-11.362-8.139h-32.489a12.001 12.001 0 0 0-11.362 8.139L58.942 336.139C56.297 343.922 62.084 352 70.304 352h22.805a12 12 0 0 0 11.535-8.693l9.118-31.807h60.211l9.351 31.878zm-39.051-140.42s4.32 21.061 7.83 33.21l10.8 37.531h-38.07l11.07-37.531c3.51-12.15 7.83-33.21 7.83-33.21h.54zM616 416H336V96h280c13.255 0 24 10.745 24 24v272c0 13.255-10.745 24-24 24zm-36-228h-64v-16c0-6.627-5.373-12-12-12h-16c-6.627 0-12 5.373-12 12v16h-64c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h114.106c-6.263 14.299-16.518 28.972-30.023 43.206-6.56-6.898-12.397-13.91-17.365-20.933-3.639-5.144-10.585-6.675-15.995-3.446l-7.28 4.346-6.498 3.879c-5.956 3.556-7.693 11.421-3.735 17.117 6.065 8.729 13.098 17.336 20.984 25.726-8.122 6.226-16.841 12.244-26.103 17.964-5.521 3.41-7.381 10.556-4.162 16.19l7.941 13.896c3.362 5.883 10.935 7.826 16.706 4.276 12.732-7.831 24.571-16.175 35.443-24.891 10.917 8.761 22.766 17.102 35.396 24.881 5.774 3.556 13.353 1.618 16.717-4.27l7.944-13.903c3.213-5.623 1.37-12.76-4.135-16.171a312.737 312.737 0 0 1-26.06-18.019c21.024-22.425 35.768-46.289 42.713-69.85H580c6.627 0 12-5.373 12-12v-16c0-6.625-5.373-11.998-12-11.998z"],
    +  "laptop": [640, 512, [], "f109", "M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"],
    +  "laptop-code": [640, 512, [], "f5fc", "M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"],
    +  "laugh": [496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"],
    +  "laugh-beam": [496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],
    +  "laugh-squint": [496, 512, [], "f59b", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],
    +  "laugh-wink": [496, 512, [], "f59c", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],
    +  "layer-group": [512, 512, [], "f5fd", "M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"],
    +  "leaf": [576, 512, [], "f06c", "M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"],
    +  "lemon": [512, 512, [], "f094", "M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"],
    +  "less-than": [384, 512, [], "f536", "M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"],
    +  "less-than-equal": [448, 512, [], "f537", "M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],
    +  "level-down-alt": [320, 512, [], "f3be", "M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"],
    +  "level-up-alt": [320, 512, [], "f3bf", "M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"],
    +  "life-ring": [512, 512, [], "f1cd", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"],
    +  "lightbulb": [352, 512, [], "f0eb", "M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"],
    +  "link": [512, 512, [], "f0c1", "M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"],
    +  "lira-sign": [384, 512, [], "f195", "M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"],
    +  "list": [512, 512, [], "f03a", "M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z"],
    +  "list-alt": [512, 512, [], "f022", "M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"],
    +  "list-ol": [512, 512, [], "f0cb", "M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],
    +  "list-ul": [512, 512, [], "f0ca", "M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],
    +  "location-arrow": [512, 512, [], "f124", "M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"],
    +  "lock": [448, 512, [], "f023", "M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"],
    +  "lock-open": [576, 512, [], "f3c1", "M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"],
    +  "long-arrow-alt-down": [256, 512, [], "f309", "M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"],
    +  "long-arrow-alt-left": [448, 512, [], "f30a", "M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"],
    +  "long-arrow-alt-right": [448, 512, [], "f30b", "M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"],
    +  "long-arrow-alt-up": [256, 512, [], "f30c", "M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"],
    +  "low-vision": [576, 512, [], "f2a8", "M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"],
    +  "luggage-cart": [640, 512, [], "f59d", "M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"],
    +  "magic": [512, 512, [], "f0d0", "M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"],
    +  "magnet": [512, 512, [], "f076", "M164.1 160H12c-6.6 0-12-5.4-12-12V68c0-19.9 16.1-36 36-36h104c19.9 0 36 16.1 36 36v80c.1 6.6-5.3 12-11.9 12zm348-12V67.9c0-19.9-16.1-36-36-36h-104c-19.9 0-36 16.1-36 36v80c0 6.6 5.4 12 12 12h152c6.6.1 12-5.3 12-11.9zm-164 44c-6.6 0-12 5.4-12 12v52c0 128.1-160 127.9-160 0v-52c0-6.6-5.4-12-12-12h-152c-6.7 0-12 5.4-12 12.1.1 21.4.6 40.3 0 53.3C.1 408 136.3 504 256.9 504 377.5 504 512 408 512 257.3c-.6-12.8-.2-33 0-53.2 0-6.7-5.3-12.1-12-12.1H348.1z"],
    +  "mail-bulk": [576, 512, [], "f674", "M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"],
    +  "male": [192, 512, [], "f183", "M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"],
    +  "map": [576, 512, [], "f279", "M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"],
    +  "map-marked": [576, 512, [], "f59f", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"],
    +  "map-marked-alt": [576, 512, [], "f5a0", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"],
    +  "map-marker": [384, 512, [], "f041", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"],
    +  "map-marker-alt": [384, 512, [], "f3c5", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"],
    +  "map-pin": [288, 512, [], "f276", "M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"],
    +  "map-signs": [512, 512, [], "f277", "M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"],
    +  "marker": [512, 512, [], "f5a1", "M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"],
    +  "mars": [384, 512, [], "f222", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "mars-double": [512, 512, [], "f227", "M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"],
    +  "mars-stroke": [384, 512, [], "f229", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "mars-stroke-h": [480, 512, [], "f22b", "M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"],
    +  "mars-stroke-v": [288, 512, [], "f22a", "M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"],
    +  "mask": [640, 512, [], "f6fa", "M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"],
    +  "medal": [512, 512, [], "f5a2", "M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"],
    +  "medkit": [512, 512, [], "f0fa", "M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"],
    +  "meh": [496, 512, [], "f11a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "meh-blank": [496, 512, [], "f5a4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "meh-rolling-eyes": [496, 512, [], "f5a5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"],
    +  "memory": [640, 512, [], "f538", "M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"],
    +  "menorah": [640, 512, [], "f676", "M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"],
    +  "mercury": [288, 512, [], "f223", "M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"],
    +  "microchip": [512, 512, [], "f2db", "M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"],
    +  "microphone": [352, 512, [], "f130", "M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"],
    +  "microphone-alt": [352, 512, [], "f3c9", "M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"],
    +  "microphone-alt-slash": [640, 512, [], "f539", "M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"],
    +  "microphone-slash": [640, 512, [], "f131", "M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"],
    +  "microscope": [512, 512, [], "f610", "M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"],
    +  "minus": [448, 512, [], "f068", "M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],
    +  "minus-circle": [512, 512, [], "f056", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"],
    +  "minus-square": [448, 512, [], "f146", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"],
    +  "mobile": [320, 512, [], "f10b", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "mobile-alt": [320, 512, [], "f3cd", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"],
    +  "money-bill": [640, 512, [], "f0d6", "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"],
    +  "money-bill-alt": [640, 512, [], "f3d1", "M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"],
    +  "money-bill-wave": [640, 512, [], "f53a", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"],
    +  "money-bill-wave-alt": [640, 512, [], "f53b", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"],
    +  "money-check": [640, 512, [], "f53c", "M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"],
    +  "money-check-alt": [640, 512, [], "f53d", "M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"],
    +  "monument": [384, 512, [], "f5a6", "M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"],
    +  "moon": [512, 512, [], "f186", "M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"],
    +  "mortar-pestle": [512, 512, [], "f5a7", "M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "mosque": [640, 512, [], "f678", "M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"],
    +  "motorcycle": [640, 512, [], "f21c", "M512.949 192.003c-14.862-.108-29.14 2.322-42.434 6.874L437.589 144H520c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24h-45.311a24 24 0 0 0-17.839 7.945l-37.496 41.663-22.774-37.956A24 24 0 0 0 376 64h-80c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h66.411l19.2 32H227.904c-17.727-23.073-44.924-40-99.904-40H72.54c-13.455 0-24.791 11.011-24.536 24.464C48.252 141.505 58.9 152 72 152h56c24.504 0 38.686 10.919 47.787 24.769l-11.291 20.529c-13.006-3.865-26.871-5.736-41.251-5.21C55.857 194.549 1.565 249.605.034 317.021-1.603 389.076 56.317 448 128 448c59.642 0 109.744-40.794 123.953-96h84.236c13.673 0 24.589-11.421 23.976-25.077-2.118-47.12 17.522-93.665 56.185-125.026l12.485 20.808c-27.646 23.654-45.097 58.88-44.831 98.179.47 69.556 57.203 126.452 126.758 127.11 71.629.678 129.839-57.487 129.234-129.099-.588-69.591-57.455-126.386-127.047-126.892zM128 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c4.242 0 8.405.341 12.469.982L98.97 316.434C90.187 332.407 101.762 352 120 352h81.297c-12.37 28.225-40.56 48-73.297 48zm388.351-.116C470.272 402.337 432 365.554 432 320c0-21.363 8.434-40.781 22.125-55.144l49.412 82.352c4.546 7.577 14.375 10.034 21.952 5.488l13.72-8.232c7.577-4.546 10.034-14.375 5.488-21.952l-48.556-80.927A80.005 80.005 0 0 1 512 240c45.554 0 82.338 38.273 79.884 84.352-2.16 40.558-34.974 73.372-75.533 75.532z"],
    +  "mountain": [640, 512, [], "f6fc", "M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"],
    +  "mouse-pointer": [320, 512, [], "f245", "M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"],
    +  "music": [512, 512, [], "f001", "M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z"],
    +  "network-wired": [640, 512, [], "f6ff", "M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"],
    +  "neuter": [288, 512, [], "f22c", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "newspaper": [576, 512, [], "f1ea", "M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"],
    +  "not-equal": [448, 512, [], "f53e", "M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"],
    +  "notes-medical": [384, 512, [], "f481", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"],
    +  "object-group": [512, 512, [], "f247", "M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"],
    +  "object-ungroup": [576, 512, [], "f248", "M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"],
    +  "oil-can": [640, 512, [], "f613", "M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"],
    +  "om": [512, 512, [], "f679", "M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"],
    +  "otter": [640, 512, [], "f700", "M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"],
    +  "outdent": [448, 512, [], "f03b", "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm208 144h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm192-128h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM4.687 267.313l96 95.984C110.734 373.348 128 366.224 128 351.984V160.008c0-14.329-17.325-21.304-27.313-11.313l-96 95.992c-6.249 6.248-6.249 16.378 0 22.626z"],
    +  "paint-brush": [512, 512, [], "f1fc", "M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"],
    +  "paint-roller": [512, 512, [], "f5aa", "M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"],
    +  "palette": [512, 512, [], "f53f", "M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "pallet": [640, 512, [], "f482", "M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"],
    +  "paper-plane": [512, 512, [], "f1d8", "M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"],
    +  "paperclip": [448, 512, [], "f0c6", "M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"],
    +  "parachute-box": [512, 512, [], "f4cd", "M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"],
    +  "paragraph": [448, 512, [], "f1dd", "M408 32H177.531C88.948 32 16.045 103.335 16 191.918 15.956 280.321 87.607 352 176 352v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h32v344c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h40c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24z"],
    +  "parking": [448, 512, [], "f540", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"],
    +  "passport": [448, 512, [], "f5ab", "M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"],
    +  "pastafarianism": [640, 512, [], "f67b", "M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"],
    +  "paste": [448, 512, [], "f0ea", "M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"],
    +  "pause": [448, 512, [], "f04c", "M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"],
    +  "pause-circle": [512, 512, [], "f28b", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"],
    +  "paw": [512, 512, [], "f1b0", "M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"],
    +  "peace": [496, 512, [], "f67c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"],
    +  "pen": [512, 512, [], "f304", "M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"],
    +  "pen-alt": [512, 512, [], "f305", "M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"],
    +  "pen-fancy": [512, 512, [], "f5ac", "M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"],
    +  "pen-nib": [512, 512, [], "f5ad", "M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"],
    +  "pen-square": [448, 512, [], "f14b", "M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"],
    +  "pencil-alt": [512, 512, [], "f303", "M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"],
    +  "pencil-ruler": [512, 512, [], "f5ae", "M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"],
    +  "people-carry": [640, 512, [], "f4ce", "M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"],
    +  "percent": [448, 512, [], "f295", "M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"],
    +  "percentage": [384, 512, [], "f541", "M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"],
    +  "phone": [512, 512, [], "f095", "M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"],
    +  "phone-slash": [640, 512, [], "f3dd", "M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"],
    +  "phone-square": [448, 512, [], "f098", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"],
    +  "phone-volume": [384, 512, [], "f2a0", "M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"],
    +  "piggy-bank": [576, 512, [], "f4d3", "M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"],
    +  "pills": [576, 512, [], "f484", "M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"],
    +  "place-of-worship": [640, 512, [], "f67f", "M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"],
    +  "plane": [576, 512, [], "f072", "M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"],
    +  "plane-arrival": [640, 512, [], "f5af", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"],
    +  "plane-departure": [640, 512, [], "f5b0", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"],
    +  "play": [448, 512, [], "f04b", "M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"],
    +  "play-circle": [512, 512, [], "f144", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"],
    +  "plug": [384, 512, [], "f1e6", "M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z"],
    +  "plus": [448, 512, [], "f067", "M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],
    +  "plus-circle": [512, 512, [], "f055", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"],
    +  "plus-square": [448, 512, [], "f0fe", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"],
    +  "podcast": [448, 512, [], "f2ce", "M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"],
    +  "poll": [448, 512, [], "f681", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"],
    +  "poll-h": [448, 512, [], "f682", "M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"],
    +  "poo": [512, 512, [], "f2fe", "M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "poop": [512, 512, [], "f619", "M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"],
    +  "portrait": [384, 512, [], "f3e0", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],
    +  "pound-sign": [320, 512, [], "f154", "M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"],
    +  "power-off": [512, 512, [], "f011", "M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"],
    +  "pray": [384, 512, [], "f683", "M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"],
    +  "praying-hands": [640, 512, [], "f684", "M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"],
    +  "prescription": [384, 512, [], "f5b1", "M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"],
    +  "prescription-bottle": [384, 512, [], "f485", "M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"],
    +  "prescription-bottle-alt": [384, 512, [], "f486", "M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"],
    +  "print": [512, 512, [], "f02f", "M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],
    +  "procedures": [640, 512, [], "f487", "M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"],
    +  "project-diagram": [640, 512, [], "f542", "M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"],
    +  "puzzle-piece": [576, 512, [], "f12e", "M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"],
    +  "qrcode": [448, 512, [], "f029", "M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"],
    +  "question": [384, 512, [], "f128", "M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"],
    +  "question-circle": [512, 512, [], "f059", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"],
    +  "quidditch": [640, 512, [], "f458", "M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"],
    +  "quote-left": [512, 512, [], "f10d", "M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"],
    +  "quote-right": [512, 512, [], "f10e", "M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"],
    +  "quran": [448, 512, [], "f687", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],
    +  "random": [512, 512, [], "f074", "M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"],
    +  "receipt": [384, 512, [], "f543", "M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"],
    +  "recycle": [512, 512, [], "f1b8", "M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"],
    +  "redo": [512, 512, [], "f01e", "M500.333 0h-47.411c-6.853 0-12.314 5.729-11.986 12.574l3.966 82.759C399.416 41.899 331.672 8 256.001 8 119.34 8 7.899 119.526 8 256.187 8.101 393.068 119.096 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-33.971-33.971c-4.466-4.466-11.64-4.717-16.38-.543C341.308 415.448 300.606 432 256 432c-97.267 0-176-78.716-176-176 0-97.267 78.716-176 176-176 60.892 0 114.506 30.858 146.099 77.8l-101.525-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12z"],
    +  "redo-alt": [512, 512, [], "f2f9", "M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"],
    +  "registered": [512, 512, [], "f25d", "M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"],
    +  "reply": [512, 512, [], "f3e5", "M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"],
    +  "reply-all": [576, 512, [], "f122", "M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"],
    +  "retweet": [640, 512, [], "f079", "M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"],
    +  "ribbon": [448, 512, [], "f4d6", "M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"],
    +  "ring": [512, 512, [], "f70b", "M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"],
    +  "road": [576, 512, [], "f018", "M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"],
    +  "robot": [640, 512, [], "f544", "M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z"],
    +  "rocket": [512, 512, [], "f135", "M505.1 19.1C503.8 13 499 8.2 492.9 6.9 460.7 0 435.5 0 410.4 0 307.2 0 245.3 55.2 199.1 128H94.9c-18.2 0-34.8 10.3-42.9 26.5L2.6 253.3c-8 16 3.6 34.7 21.5 34.7h95.1c-5.9 12.8-11.9 25.5-18 37.7-3.1 6.2-1.9 13.6 3 18.5l63.6 63.6c4.9 4.9 12.3 6.1 18.5 3 12.2-6.1 24.9-12 37.7-17.9V488c0 17.8 18.8 29.4 34.7 21.5l98.7-49.4c16.3-8.1 26.5-24.8 26.5-42.9V312.8c72.6-46.3 128-108.4 128-211.1.1-25.2.1-50.4-6.8-82.6zM400 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],
    +  "route": [512, 512, [], "f4d7", "M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "rss": [448, 512, [], "f09e", "M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"],
    +  "rss-square": [448, 512, [], "f143", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"],
    +  "ruble-sign": [384, 512, [], "f158", "M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"],
    +  "ruler": [640, 512, [], "f545", "M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"],
    +  "ruler-combined": [512, 512, [], "f546", "M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],
    +  "ruler-horizontal": [576, 512, [], "f547", "M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"],
    +  "ruler-vertical": [256, 512, [], "f548", "M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"],
    +  "running": [416, 512, [], "f70c", "M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"],
    +  "rupee-sign": [320, 512, [], "f156", "M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"],
    +  "sad-cry": [496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"],
    +  "sad-tear": [496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"],
    +  "save": [448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"],
    +  "school": [640, 512, [], "f549", "M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"],
    +  "screwdriver": [512, 512, [], "f54a", "M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"],
    +  "scroll": [640, 512, [], "f70e", "M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"],
    +  "search": [512, 512, [], "f002", "M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"],
    +  "search-dollar": [512, 512, [], "f688", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"],
    +  "search-location": [512, 512, [], "f689", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],
    +  "search-minus": [512, 512, [], "f010", "M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"],
    +  "search-plus": [512, 512, [], "f00e", "M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"],
    +  "seedling": [512, 512, [], "f4d8", "M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"],
    +  "server": [512, 512, [], "f233", "M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"],
    +  "shapes": [512, 512, [], "f61f", "M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z"],
    +  "share": [512, 512, [], "f064", "M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"],
    +  "share-alt": [448, 512, [], "f1e0", "M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"],
    +  "share-alt-square": [448, 512, [], "f1e1", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"],
    +  "share-square": [576, 512, [], "f14d", "M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"],
    +  "shekel-sign": [448, 512, [], "f20b", "M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"],
    +  "shield-alt": [512, 512, [], "f3ed", "M496 128c0 221.282-135.934 344.645-221.539 380.308a48 48 0 0 1-36.923 0C130.495 463.713 16 326.487 16 128a48 48 0 0 1 29.539-44.308l192-80a48 48 0 0 1 36.923 0l192 80A48 48 0 0 1 496 128zM256 446.313l.066.034c93.735-46.689 172.497-156.308 175.817-307.729L256 65.333v380.98z"],
    +  "ship": [640, 512, [], "f21a", "M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"],
    +  "shipping-fast": [640, 512, [], "f48b", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],
    +  "shoe-prints": [640, 512, [], "f54b", "M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"],
    +  "shopping-bag": [448, 512, [], "f290", "M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"],
    +  "shopping-basket": [576, 512, [], "f291", "M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"],
    +  "shopping-cart": [576, 512, [], "f07a", "M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"],
    +  "shower": [512, 512, [], "f2cc", "M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z"],
    +  "shuttle-van": [640, 512, [], "f5b6", "M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"],
    +  "sign": [512, 512, [], "f4d9", "M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"],
    +  "sign-in-alt": [512, 512, [], "f2f6", "M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"],
    +  "sign-language": [448, 512, [], "f2a7", "M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"],
    +  "sign-out-alt": [512, 512, [], "f2f5", "M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"],
    +  "signal": [640, 512, [], "f012", "M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"],
    +  "signature": [512, 512, [], "f5b7", "M496 320h-91.86c-9.27 0-19.72-11.31-25.78-28.52-15.23-43.36-48.11-70.3-85.8-70.3-30.84 0-58.47 18.05-76.11 49.23L194.8 106.5C188.84 81.08 169.34 64 146.28 64c-23.05 0-42.55 17.08-48.5 42.5L56.16 284.2C50.7 307.45 37.75 320 28.33 320H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h12.33c41.97 0 78.19-34.23 90.14-85.2l23.84-101.78 29.25 222.11c1.98 15.05 13.82 27.45 28.94 28.75.99.09 1.96.13 2.93.13 14.08 0 26.64-9.27 30.69-22.95l33.03-112.34c5.88-16.72 15.84-27.52 25.41-27.52 9.58 0 19.55 10.8 25.78 28.52 15.23 43.36 48.11 70.3 85.8 70.3H496c8.84 0 16-7.16 16-16v-32c0-8.86-7.16-16.02-16-16.02z"],
    +  "sitemap": [640, 512, [], "f0e8", "M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],
    +  "skull": [512, 512, [], "f54c", "M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"],
    +  "skull-crossbones": [448, 512, [], "f714", "M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"],
    +  "slash": [640, 512, [], "f715", "M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"],
    +  "sliders-h": [512, 512, [], "f1de", "M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"],
    +  "smile": [496, 512, [], "f118", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"],
    +  "smile-beam": [496, 512, [], "f5b8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"],
    +  "smile-wink": [496, 512, [], "f4da", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"],
    +  "smoking": [640, 512, [], "f48d", "M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"],
    +  "smoking-ban": [512, 512, [], "f54d", "M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"],
    +  "snowflake": [448, 512, [], "f2dc", "M444.816 301.639a24.12 24.12 0 0 0 2.661-16.978c-2.725-12.966-15.339-21.245-28.174-18.492l-87.407 25.046L264 256l67.896-35.215 87.407 25.046c12.835 2.753 25.449-5.526 28.174-18.492 2.725-12.966-5.471-25.708-18.305-28.461l-47.477-7.137 53.077-30.956c11.363-6.627 15.257-21.306 8.696-32.785-6.561-11.479-21.091-15.412-32.454-8.785l-53.077 30.956 17.621-45.104c4.057-12.606-2.768-26.146-15.247-30.245-12.478-4.099-25.883 2.797-29.94 15.402l-22.232 88.99-60.38 35.215V144l65.175-63.945c8.778-9.852 7.987-25.027-1.766-33.894-9.753-8.867-24.775-8.068-33.552 1.784l-29.857 37.967V24c0-13.255-10.637-24-23.758-24s-23.758 10.745-23.758 24v61.912l-29.857-37.967c-8.779-9.852-23.799-10.652-33.552-1.784-9.753 8.867-10.543 24.042-1.766 33.894L200.242 144v70.431l-60.38-35.215-22.232-88.99c-4.057-12.605-17.462-19.501-29.94-15.402-12.478 4.099-19.304 17.64-15.247 30.245l17.62 45.104-53.077-30.956c-11.363-6.627-25.893-2.694-32.454 8.785s-2.667 26.157 8.696 32.785l53.077 30.956-47.477 7.137C5.993 201.634-2.203 214.375.523 227.341c2.725 12.965 15.339 21.245 28.174 18.492l87.407-25.046L184 256l-67.896 35.215-87.406-25.045c-12.835-2.753-25.449 5.526-28.174 18.492-2.725 12.967 5.47 25.708 18.305 28.461l47.477 7.137-53.077 30.956C1.866 357.843-2.027 372.521 4.533 384s21.091 15.412 32.454 8.785l53.077-30.956-17.62 45.104a24.157 24.157 0 0 0 2.022 19.428c2.831 4.953 7.416 8.909 13.224 10.816 12.478 4.099 25.883-2.797 29.94-15.402l22.232-88.99 60.38-35.215V368l-65.175 63.945c-8.778 9.852-7.987 25.027 1.766 33.894 9.754 8.868 24.774 8.068 33.552-1.784l29.857-37.967V488c0 13.255 10.637 24 23.758 24s23.758-10.745 23.758-24v-61.912l29.857 37.967A23.59 23.59 0 0 0 295.282 472a23.534 23.534 0 0 0 15.885-6.161c9.753-8.867 10.544-24.042 1.766-33.894L247.758 368v-70.431l60.38 35.215 22.232 88.99c4.057 12.605 17.462 19.501 29.94 15.402 12.479-4.099 19.304-17.64 15.247-30.245l-17.621-45.104 53.077 30.956c11.363 6.627 25.893 2.694 32.454-8.785s2.667-26.157-8.696-32.785l-53.077-30.956 47.477-7.137c6.86-1.469 12.394-5.793 15.645-11.481z"],
    +  "socks": [512, 512, [], "f696", "M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"],
    +  "solar-panel": [640, 512, [], "f5ba", "M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"],
    +  "sort": [320, 512, [], "f0dc", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"],
    +  "sort-alpha-down": [448, 512, [], "f15d", "M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zm119.075-180.007A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"],
    +  "sort-alpha-up": [448, 512, [], "f15e", "M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zm301.671 98.621A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"],
    +  "sort-amount-down": [512, 512, [], "f160", "M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"],
    +  "sort-amount-up": [512, 512, [], "f161", "M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"],
    +  "sort-down": [320, 512, [], "f0dd", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"],
    +  "sort-numeric-down": [448, 512, [], "f162", "M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM175.984 368H128V48c0-8.837-7.163-16-16-16H80c-8.837 0-16 7.163-16 16v320H16.019c-14.212 0-21.384 17.244-11.314 27.314l79.981 80.002c6.245 6.245 16.38 6.247 22.627 0l79.984-80.002c10.05-10.05 2.928-27.314-11.313-27.314z"],
    +  "sort-numeric-up": [448, 512, [], "f163", "M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM16.016 144H64v320c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144h47.981c14.212 0 21.384-17.244 11.314-27.314l-79.981-80.002c-6.245-6.245-16.38-6.247-22.627 0L4.702 116.686C-5.347 126.736 1.775 144 16.016 144z"],
    +  "sort-up": [320, 512, [], "f0de", "M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"],
    +  "spa": [576, 512, [], "f5bb", "M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"],
    +  "space-shuttle": [640, 512, [], "f197", "M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"],
    +  "spider": [576, 512, [], "f717", "M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"],
    +  "spinner": [512, 512, [], "f110", "M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"],
    +  "splotch": [512, 512, [], "f5bc", "M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"],
    +  "spray-can": [512, 512, [], "f5bd", "M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],
    +  "square": [448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],
    +  "square-full": [512, 512, [], "f45c", "M512 512H0V0h512v512z"],
    +  "square-root-alt": [576, 512, [], "f698", "M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"],
    +  "stamp": [512, 512, [], "f5bf", "M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"],
    +  "star": [576, 512, [], "f005", "M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"],
    +  "star-and-crescent": [512, 512, [], "f699", "M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"],
    +  "star-half": [576, 512, [], "f089", "M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"],
    +  "star-half-alt": [536, 512, [], "f5c0", "M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"],
    +  "star-of-david": [464, 512, [], "f69a", "M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"],
    +  "star-of-life": [480, 512, [], "f621", "M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"],
    +  "step-backward": [448, 512, [], "f048", "M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"],
    +  "step-forward": [448, 512, [], "f051", "M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"],
    +  "stethoscope": [512, 512, [], "f0f1", "M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],
    +  "sticky-note": [448, 512, [], "f249", "M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"],
    +  "stop": [448, 512, [], "f04d", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],
    +  "stop-circle": [512, 512, [], "f28d", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"],
    +  "stopwatch": [448, 512, [], "f2f2", "M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"],
    +  "store": [616, 512, [], "f54e", "M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"],
    +  "store-alt": [640, 512, [], "f54f", "M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"],
    +  "stream": [512, 512, [], "f550", "M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"],
    +  "street-view": [512, 512, [], "f21d", "M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"],
    +  "strikethrough": [512, 512, [], "f0cc", "M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z"],
    +  "stroopwafel": [512, 512, [], "f551", "M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"],
    +  "subscript": [512, 512, [], "f12c", "M395.198 416c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 256c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 96H16C7.163 96 0 88.837 0 80V48c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035A15.999 15.999 0 0 1 204.226 32H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 256H272z"],
    +  "subway": [448, 512, [], "f239", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"],
    +  "suitcase": [512, 512, [], "f0f2", "M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"],
    +  "suitcase-rolling": [384, 512, [], "f5c1", "M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"],
    +  "sun": [512, 512, [], "f185", "M274.835 12.646l25.516 62.393c4.213 10.301 16.671 14.349 26.134 8.492l57.316-35.479c15.49-9.588 34.808 4.447 30.475 22.142l-16.03 65.475c-2.647 10.81 5.053 21.408 16.152 22.231l67.224 4.987c18.167 1.348 25.546 24.057 11.641 35.826L441.81 242.26c-8.495 7.19-8.495 20.289 0 27.479l51.454 43.548c13.906 11.769 6.527 34.478-11.641 35.826l-67.224 4.987c-11.099.823-18.799 11.421-16.152 22.231l16.03 65.475c4.332 17.695-14.986 31.73-30.475 22.142l-57.316-35.479c-9.463-5.858-21.922-1.81-26.134 8.492l-25.516 62.393c-6.896 16.862-30.774 16.862-37.67 0l-25.516-62.393c-4.213-10.301-16.671-14.349-26.134-8.492l-57.317 35.479c-15.49 9.588-34.808-4.447-30.475-22.142l16.03-65.475c2.647-10.81-5.053-21.408-16.152-22.231l-67.224-4.987c-18.167-1.348-25.546-24.057-11.641-35.826L70.19 269.74c8.495-7.19 8.495-20.289 0-27.479l-51.454-43.548c-13.906-11.769-6.527-34.478 11.641-35.826l67.224-4.987c11.099-.823 18.799-11.421 16.152-22.231l-16.03-65.475c-4.332-17.695 14.986-31.73 30.475-22.142l57.317 35.479c9.463 5.858 21.921 1.81 26.134-8.492l25.516-62.393c6.896-16.861 30.774-16.861 37.67 0zM392 256c0-74.991-61.01-136-136-136-74.991 0-136 61.009-136 136s61.009 136 136 136c74.99 0 136-61.009 136-136zm-32 0c0 57.346-46.654 104-104 104s-104-46.654-104-104 46.654-104 104-104 104 46.654 104 104z"],
    +  "superscript": [512, 512, [], "f12b", "M395.198 256c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 256H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035a16 16 0 0 1 13.598-7.567H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 416H272z"],
    +  "surprise": [496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "swatchbook": [511, 512, [], "f5c3", "M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z"],
    +  "swimmer": [640, 512, [], "f5c4", "M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"],
    +  "swimming-pool": [640, 512, [], "f5c5", "M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"],
    +  "synagogue": [640, 512, [], "f69b", "M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"],
    +  "sync": [512, 512, [], "f021", "M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z"],
    +  "sync-alt": [512, 512, [], "f2f1", "M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"],
    +  "syringe": [512, 512, [], "f48e", "M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"],
    +  "table": [512, 512, [], "f0ce", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"],
    +  "table-tennis": [512, 512, [], "f45d", "M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"],
    +  "tablet": [448, 512, [], "f10a", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "tablet-alt": [448, 512, [], "f3fa", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"],
    +  "tablets": [640, 512, [], "f490", "M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"],
    +  "tachometer-alt": [576, 512, [], "f3fd", "M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "tag": [512, 512, [], "f02b", "M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"],
    +  "tags": [640, 512, [], "f02c", "M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"],
    +  "tape": [640, 512, [], "f4db", "M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"],
    +  "tasks": [512, 512, [], "f0ae", "M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z"],
    +  "taxi": [512, 512, [], "f1ba", "M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "teeth": [640, 512, [], "f62e", "M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"],
    +  "teeth-open": [640, 512, [], "f62f", "M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"],
    +  "terminal": [640, 512, [], "f120", "M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"],
    +  "text-height": [576, 512, [], "f034", "M16 32h288c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96h-54.761v320H232c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H88c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm475.308 4.685l79.995 80.001C581.309 126.693 574.297 144 559.99 144H512v224h48c15.639 0 20.635 17.991 11.313 27.314l-79.995 80.001c-6.247 6.247-16.381 6.245-22.626 0l-79.995-80.001C378.691 385.307 385.703 368 400.01 368H448V144h-48c-15.639 0-20.635-17.991-11.313-27.314l79.995-80.001c6.247-6.248 16.381-6.245 22.626 0z"],
    +  "text-width": [448, 512, [], "f035", "M16 32h416c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96H261.743v128H296c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H152c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm427.315 340.682l-80.001-79.995C353.991 283.365 336 288.362 336 304v48H112v-47.99c0-14.307-17.307-21.319-27.314-11.313L4.685 372.692c-6.245 6.245-6.247 16.379 0 22.626l80.001 79.995C94.009 484.635 112 479.638 112 464v-48h224v47.99c0 14.307 17.307 21.319 27.314 11.313l80.001-79.995c6.245-6.245 6.248-16.379 0-22.626z"],
    +  "th": [512, 512, [], "f00a", "M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"],
    +  "th-large": [512, 512, [], "f009", "M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"],
    +  "th-list": [512, 512, [], "f00b", "M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"],
    +  "theater-masks": [640, 512, [], "f630", "M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"],
    +  "thermometer": [512, 512, [], "f491", "M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"],
    +  "thermometer-empty": [256, 512, [], "f2cb", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],
    +  "thermometer-full": [256, 512, [], "f2c7", "M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"],
    +  "thermometer-half": [256, 512, [], "f2c9", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],
    +  "thermometer-quarter": [256, 512, [], "f2ca", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],
    +  "thermometer-three-quarters": [256, 512, [], "f2c8", "M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],
    +  "thumbs-down": [512, 512, [], "f165", "M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"],
    +  "thumbs-up": [512, 512, [], "f164", "M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"],
    +  "thumbtack": [384, 512, [], "f08d", "M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"],
    +  "ticket-alt": [576, 512, [], "f3ff", "M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"],
    +  "times": [352, 512, [], "f00d", "M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"],
    +  "times-circle": [512, 512, [], "f057", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"],
    +  "tint": [352, 512, [], "f043", "M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"],
    +  "tint-slash": [640, 512, [], "f5c7", "M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"],
    +  "tired": [496, 512, [], "f5c8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"],
    +  "toggle-off": [576, 512, [], "f204", "M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"],
    +  "toggle-on": [576, 512, [], "f205", "M576 256c0 106.039-85.961 192-192 192H192C85.961 448 0 362.039 0 256S85.961 64 192 64h192c106.039 0 192 85.961 192 192zM384 128c-70.741 0-128 57.249-128 128 0 70.741 57.249 128 128 128 70.741 0 128-57.249 128-128 0-70.741-57.249-128-128-128"],
    +  "toilet-paper": [576, 512, [], "f71e", "M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"],
    +  "toolbox": [512, 512, [], "f552", "M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"],
    +  "tooth": [448, 512, [], "f5c9", "M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"],
    +  "torah": [448, 512, [], "f6a0", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM139.11 141.21c-2.77-4.41.4-10.14 5.6-10.14h53.08c.9 0 1.73-.46 2.21-1.22l34.4-54.76c2.6-4.13 8.61-4.13 11.21 0l34.4 54.76a2.61 2.61 0 0 0 2.21 1.22h53.08c5.2 0 8.37 5.73 5.6 10.14L314.01 184l26.88 42.79c2.77 4.4-.4 10.13-5.6 10.13h-53.08c-.9 0-1.73.46-2.21 1.22l-34.4 54.76c-2.6 4.13-8.61 4.13-11.21 0L200 238.15a2.61 2.61 0 0 0-2.21-1.22h-53.08c-5.2 0-8.37-5.73-5.6-10.13l26.88-42.8-26.88-42.79zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],
    +  "torii-gate": [512, 512, [], "f6a1", "M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"],
    +  "tractor": [640, 512, [], "f722", "M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"],
    +  "trademark": [640, 512, [], "f25c", "M97.119 163.133H12c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h248.559c6.627 0 12 5.373 12 12v43.133c0 6.627-5.373 12-12 12H175.44V404c0 6.627-5.373 12-12 12h-54.322c-6.627 0-12-5.373-12-12V163.133zM329.825 96h65.425a12 12 0 0 1 11.346 8.093l43.759 127.068c7.161 20.588 16.111 52.812 16.111 52.812h.896s8.95-32.224 16.111-52.812l43.758-127.068A12 12 0 0 1 538.577 96h65.41a12 12 0 0 1 11.961 11.03l24.012 296c.567 6.987-4.951 12.97-11.961 12.97h-54.101a12 12 0 0 1-11.972-11.182l-9.082-132.93c-1.79-24.168 0-53.706 0-53.706h-.896s-10.741 33.566-17.902 53.706l-30.7 84.731a12 12 0 0 1-11.282 7.912h-50.302a12 12 0 0 1-11.282-7.912l-30.7-84.731c-7.161-20.14-17.903-53.706-17.903-53.706h-.895s1.79 29.538 0 53.706l-9.082 132.93c-.428 6.295-5.66 11.182-11.97 11.182H305.4c-7.017 0-12.536-5.994-11.959-12.987l24.425-296A11.999 11.999 0 0 1 329.825 96z"],
    +  "traffic-light": [384, 512, [], "f637", "M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"],
    +  "train": [448, 512, [], "f238", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"],
    +  "transgender": [384, 512, [], "f224", "M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "transgender-alt": [480, 512, [], "f225", "M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "trash": [448, 512, [], "f1f8", "M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm415.2 56.7L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32.8 140.7c-.4-6.9 5.1-12.7 12-12.7h358.5c6.8 0 12.3 5.8 11.9 12.7z"],
    +  "trash-alt": [448, 512, [], "f2ed", "M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"],
    +  "tree": [384, 512, [], "f1bb", "M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"],
    +  "trophy": [576, 512, [], "f091", "M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"],
    +  "truck": [640, 512, [], "f0d1", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],
    +  "truck-loading": [640, 512, [], "f4de", "M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],
    +  "truck-monster": [640, 512, [], "f63b", "M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"],
    +  "truck-moving": [640, 512, [], "f4df", "M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"],
    +  "truck-pickup": [640, 512, [], "f63c", "M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"],
    +  "tshirt": [640, 512, [], "f553", "M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"],
    +  "tty": [512, 512, [], "f1e4", "M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"],
    +  "tv": [640, 512, [], "f26c", "M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z"],
    +  "umbrella": [576, 512, [], "f0e9", "M557.011 267.631c-51.432-45.217-107.572-43.698-158.567 30.731-5.298 7.861-14.906 7.165-19.736 0-2.483-3.624-32.218-60.808-90.708-60.808-45.766 0-70.542 31.378-90.709 60.808-4.829 7.165-14.436 7.861-19.734 0-50.904-74.285-106.613-76.406-158.567-30.731-10.21 8.264-20.912-1.109-18.696-9.481C32.146 134.573 158.516 64.612 288.001 64.612c128.793 0 256.546 69.961 287.706 193.538 2.206 8.322-8.426 17.793-18.696 9.481zM256 261.001V416c0 17.645-14.355 32-32 32s-32-14.355-32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 52.935 43.065 96 96 96s96-43.065 96-96V261.288c-21.836-10.806-45.425-9.737-64-.287zm64-211.007V32c0-17.673-14.327-32-32-32s-32 14.327-32 32v17.987a372.105 372.105 0 0 1 64 .007z"],
    +  "umbrella-beach": [640, 512, [], "f5ca", "M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"],
    +  "underline": [448, 512, [], "f0cd", "M224.264 388.24c-91.669 0-156.603-51.165-156.603-151.392V64H39.37c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h137.39c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.813v172.848c0 53.699 28.314 79.444 76.317 79.444 46.966 0 75.796-25.434 75.796-79.965V64h-28.291c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h136.868c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.291v172.848c0 99.405-64.881 151.392-156.082 151.392zM16 448h416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16z"],
    +  "undo": [512, 512, [], "f0e2", "M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"],
    +  "undo-alt": [512, 512, [], "f2ea", "M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"],
    +  "universal-access": [512, 512, [], "f29a", "M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"],
    +  "university": [512, 512, [], "f19c", "M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"],
    +  "unlink": [512, 512, [], "f127", "M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"],
    +  "unlock": [448, 512, [], "f09c", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"],
    +  "unlock-alt": [448, 512, [], "f13e", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"],
    +  "upload": [512, 512, [], "f093", "M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"],
    +  "user": [448, 512, [], "f007", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],
    +  "user-alt": [512, 512, [], "f406", "M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"],
    +  "user-alt-slash": [640, 512, [], "f4fa", "M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"],
    +  "user-astronaut": [448, 512, [], "f4fb", "M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"],
    +  "user-check": [640, 512, [], "f4fc", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"],
    +  "user-circle": [496, 512, [], "f2bd", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"],
    +  "user-clock": [640, 512, [], "f4fd", "M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"],
    +  "user-cog": [640, 512, [], "f4fe", "M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"],
    +  "user-edit": [640, 512, [], "f4ff", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"],
    +  "user-friends": [640, 512, [], "f500", "M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"],
    +  "user-graduate": [448, 512, [], "f501", "M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"],
    +  "user-injured": [448, 512, [], "f728", "M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"],
    +  "user-lock": [640, 512, [], "f502", "M320 320c0-11.1 3.1-21.4 8.1-30.5-4.8-.5-9.5-1.5-14.5-1.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h280.9c-5.5-9.5-8.9-20.3-8.9-32V320zm-96-64c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm384 32h-32v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80v48h-32c-17.7 0-32 14.3-32 32v160c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zm-80 0h-64v-48c0-17.6 14.4-32 32-32s32 14.4 32 32v48z"],
    +  "user-md": [448, 512, [], "f0f0", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"],
    +  "user-minus": [640, 512, [], "f503", "M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],
    +  "user-ninja": [448, 512, [], "f504", "M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"],
    +  "user-plus": [640, 512, [], "f234", "M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],
    +  "user-secret": [448, 512, [], "f21b", "M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"],
    +  "user-shield": [640, 512, [], "f505", "M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"],
    +  "user-slash": [640, 512, [], "f506", "M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"],
    +  "user-tag": [640, 512, [], "f507", "M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"],
    +  "user-tie": [448, 512, [], "f508", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"],
    +  "user-times": [640, 512, [], "f235", "M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],
    +  "users": [640, 512, [], "f0c0", "M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"],
    +  "users-cog": [640, 512, [], "f509", "M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"],
    +  "utensil-spoon": [512, 512, [], "f2e5", "M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"],
    +  "utensils": [416, 512, [], "f2e7", "M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"],
    +  "vector-square": [512, 512, [], "f5cb", "M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"],
    +  "venus": [288, 512, [], "f221", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"],
    +  "venus-double": [512, 512, [], "f226", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"],
    +  "venus-mars": [576, 512, [], "f228", "M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "vial": [480, 512, [], "f492", "M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"],
    +  "vials": [640, 512, [], "f493", "M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"],
    +  "video": [576, 512, [], "f03d", "M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"],
    +  "video-slash": [640, 512, [], "f4e2", "M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"],
    +  "vihara": [640, 512, [], "f6a7", "M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"],
    +  "volleyball-ball": [495, 512, [], "f45f", "M223.3 243.4c-.9-37-8.6-72.8-22.7-105.7-90.8 42.4-157.5 122.4-180.3 216.8 13.4 30.8 32.9 58.3 56.9 81.1 22.7-79.2 74.2-147.8 146.1-192.2zM186.4 109c-15-26.4-34.5-50.1-57.4-70.7C38 88.1-15.8 191.2 4 300.5c33.4-83.1 98.4-152 182.4-191.5zM374 274.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5 57.3 59.3 91 138.2 93.5 222.7 32.5 17.7 67.3 29 102.9 33.2zm-124.7 9.5c-31.6 19.3-58.7 43.9-80.2 72.6 82 57.3 184.5 75.1 277.5 47.8 19.7-26.4 34.2-56.8 42.2-89.9-26.6 6.6-53.7 10.4-80.9 10.4-54.6-.1-108.9-14.1-158.6-40.9zM151 383.3c-15.2 26-25.7 54.4-32.1 84.2 37.6 23 81.7 36.5 129.1 36.5 61 0 116.7-22.1 159.9-58.6C295 461.5 204.6 420.6 151 383.3zM331.3 22.7c55.3 70.4 82.5 161.2 74.6 253.6 30.3.2 60.5-4.8 89.7-14.2 0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"],
    +  "volume-down": [384, 512, [], "f027", "M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"],
    +  "volume-mute": [512, 512, [], "f6a9", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"],
    +  "volume-off": [257, 512, [], "f026", "M216.36 71.04L127.39 160H25.33c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.47-25.96-31.98-40.97-16.98z"],
    +  "volume-up": [576, 512, [], "f028", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"],
    +  "walking": [320, 512, [], "f554", "M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"],
    +  "wallet": [512, 512, [], "f555", "M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "warehouse": [640, 512, [], "f494", "M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"],
    +  "weight": [512, 512, [], "f496", "M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"],
    +  "weight-hanging": [512, 512, [], "f5cd", "M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"],
    +  "wheelchair": [512, 512, [], "f193", "M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"],
    +  "wifi": [640, 512, [], "f1eb", "M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"],
    +  "wind": [512, 512, [], "f72e", "M156.66 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h142.19c15.95 0 30.77 10.85 33.37 26.58C194.86 366.6 179.42 384 160 384c-14.11 0-26.13-9.19-30.37-21.9-2.11-6.31-8.6-10.1-15.25-10.1H81.63c-9.8 0-17.73 8.81-15.86 18.43C74.39 414.58 113.37 448 160 448c57.09 0 102.7-50.09 95.19-108.63-6.21-48.39-49.74-83.37-98.53-83.37zM16 224h336c59.7 0 106.83-54.76 93.83-116.69-7.61-36.23-36.91-65.53-73.14-73.14-55.44-11.64-105.13 24.91-114.93 75.53-1.86 9.57 6.09 18.3 15.84 18.3h32.8c6.65 0 13.14-3.79 15.25-10.1C325.88 105.19 337.89 96 352 96c19.42 0 34.86 17.39 31.55 37.41-2.6 15.73-17.42 26.59-33.37 26.59H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm384 32H243.68c19.34 16.57 33.19 38.79 39.77 64H400c26.47 0 48 21.53 48 48s-21.53 48-48 48c-17.86 0-33.33-9.86-41.56-24.38-2.85-5.03-8.69-7.62-14.47-7.62h-33.82c-10.91 0-18.96 10.81-15.35 21.1 17.77 50.6 70.54 84.75 129.41 72.35 41.22-8.69 75.1-41.65 84.67-82.68C525.98 321.46 470.48 256 400 256z"],
    +  "window-close": [512, 512, [], "f410", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"],
    +  "window-maximize": [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"],
    +  "window-minimize": [512, 512, [], "f2d1", "M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"],
    +  "window-restore": [512, 512, [], "f2d2", "M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"],
    +  "wine-bottle": [512, 512, [], "f72f", "M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"],
    +  "wine-glass": [288, 512, [], "f4e3", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"],
    +  "wine-glass-alt": [288, 512, [], "f5ce", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"],
    +  "won-sign": [576, 512, [], "f159", "M564 192c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-48.028l18.572-80.61c1.732-7.518-3.978-14.694-11.693-14.694h-46.107a11.998 11.998 0 0 0-11.736 9.5L450.73 128H340.839l-19.725-85.987a12 12 0 0 0-11.696-9.317H265.43a12 12 0 0 0-11.687 9.277L233.696 128H124.975L107.5 42.299a12 12 0 0 0-11.758-9.602H53.628c-7.686 0-13.39 7.124-11.709 14.624L60 128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h62.342l7.171 32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h83.856l40.927 182.624A12 12 0 0 0 148.492 480h56.767c5.583 0 10.428-3.85 11.689-9.288L259.335 288h55.086l42.386 182.712A12 12 0 0 0 368.496 480h56.826a12 12 0 0 0 11.694-9.306L479.108 288H564c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-70.146l7.373-32H564zm-425.976 0h80.757l-7.457 32h-66.776l-6.524-32zm45.796 150.029c-6.194 25.831-6.758 47.25-7.321 47.25h-1.126s-1.689-22.05-6.758-47.25L157.599 288h38.812l-12.591 54.029zM274.182 224l1.996-8.602c1.856-7.962 3.457-15.968 4.803-23.398h11.794c1.347 7.43 2.947 15.436 4.803 23.398l1.996 8.602h-25.392zm130.959 118.029c-5.068 25.2-6.758 47.25-6.758 47.25h-1.126c-.563 0-1.126-21.42-7.321-47.25L377.542 288h39.107l-11.508 54.029zM430.281 224h-67.42l-7.34-32h81.577l-6.817 32z"],
    +  "wrench": [512, 512, [], "f0ad", "M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],
    +  "x-ray": [640, 512, [], "f497", "M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"],
    +  "yen-sign": [384, 512, [], "f157", "M351.208 32h-65.277a12 12 0 0 0-10.778 6.724l-55.39 113.163c-14.513 34.704-27.133 71.932-27.133 71.932h-1.262s-12.62-37.228-27.133-71.932l-55.39-113.163A11.997 11.997 0 0 0 98.068 32H32.792c-9.057 0-14.85 9.65-10.59 17.643L102.322 200H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h88.162L152 293.228V320H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h108v92c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-92h108c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H232v-26.772L251.838 256H340c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12h-58.322l80.12-150.357C366.058 41.65 360.266 32 351.208 32z"],
    +  "yin-yang": [496, 512, [], "f6ad", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]
    +};
    +
    +bunker(function () {
    +  define('fas', icons);
    +});
    +
    +}());
    +(function () {
    +'use strict';
    +
    +var noop = function noop() {};
    +
    +var _WINDOW = {};
    +var _DOCUMENT = {};
    +var _MUTATION_OBSERVER$1 = null;
    +var _PERFORMANCE = { mark: noop, measure: noop };
    +
    +try {
    +  if (typeof window !== 'undefined') _WINDOW = window;
    +  if (typeof document !== 'undefined') _DOCUMENT = document;
    +  if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER$1 = MutationObserver;
    +  if (typeof performance !== 'undefined') _PERFORMANCE = performance;
    +} catch (e) {}
    +
    +var _ref = _WINDOW.navigator || {};
    +var _ref$userAgent = _ref.userAgent;
    +var userAgent = _ref$userAgent === undefined ? '' : _ref$userAgent;
    +
    +var WINDOW = _WINDOW;
    +var DOCUMENT = _DOCUMENT;
    +var MUTATION_OBSERVER = _MUTATION_OBSERVER$1;
    +var PERFORMANCE = _PERFORMANCE;
    +var IS_BROWSER = !!WINDOW.document;
    +var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';
    +var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
    +
    +var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
    +var UNITS_IN_GRID = 16;
    +var DEFAULT_FAMILY_PREFIX = 'fa';
    +var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';
    +var DATA_FA_I2SVG = 'data-fa-i2svg';
    +var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';
    +var DATA_PREFIX = 'data-prefix';
    +var DATA_ICON = 'data-icon';
    +var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';
    +var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];
    +var PRODUCTION = function () {
    +  try {
    +    return "production" === 'production';
    +  } catch (e) {
    +    return false;
    +  }
    +}();
    +
    +var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    +var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
    +
    +var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];
    +
    +var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter'].concat(oneToTen.map(function (n) {
    +  return n + 'x';
    +})).concat(oneToTwenty.map(function (n) {
    +  return 'w-' + n;
    +}));
    +
    +var classCallCheck = function (instance, Constructor) {
    +  if (!(instance instanceof Constructor)) {
    +    throw new TypeError("Cannot call a class as a function");
    +  }
    +};
    +
    +var createClass = function () {
    +  function defineProperties(target, props) {
    +    for (var i = 0; i < props.length; i++) {
    +      var descriptor = props[i];
    +      descriptor.enumerable = descriptor.enumerable || false;
    +      descriptor.configurable = true;
    +      if ("value" in descriptor) descriptor.writable = true;
    +      Object.defineProperty(target, descriptor.key, descriptor);
    +    }
    +  }
    +
    +  return function (Constructor, protoProps, staticProps) {
    +    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    +    if (staticProps) defineProperties(Constructor, staticProps);
    +    return Constructor;
    +  };
    +}();
    +
    +
    +
    +var _extends = Object.assign || function (target) {
    +  for (var i = 1; i < arguments.length; i++) {
    +    var source = arguments[i];
    +
    +    for (var key in source) {
    +      if (Object.prototype.hasOwnProperty.call(source, key)) {
    +        target[key] = source[key];
    +      }
    +    }
    +  }
    +
    +  return target;
    +};
    +
    +
    +
    +var slicedToArray = function () {
    +  function sliceIterator(arr, i) {
    +    var _arr = [];
    +    var _n = true;
    +    var _d = false;
    +    var _e = undefined;
    +
    +    try {
    +      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
    +        _arr.push(_s.value);
    +
    +        if (i && _arr.length === i) break;
    +      }
    +    } catch (err) {
    +      _d = true;
    +      _e = err;
    +    } finally {
    +      try {
    +        if (!_n && _i["return"]) _i["return"]();
    +      } finally {
    +        if (_d) throw _e;
    +      }
    +    }
    +
    +    return _arr;
    +  }
    +
    +  return function (arr, i) {
    +    if (Array.isArray(arr)) {
    +      return arr;
    +    } else if (Symbol.iterator in Object(arr)) {
    +      return sliceIterator(arr, i);
    +    } else {
    +      throw new TypeError("Invalid attempt to destructure non-iterable instance");
    +    }
    +  };
    +}();
    +
    +var toConsumableArray = function (arr) {
    +  if (Array.isArray(arr)) {
    +    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
    +
    +    return arr2;
    +  } else {
    +    return Array.from(arr);
    +  }
    +};
    +
    +var initial = WINDOW.FontAwesomeConfig || {};
    +
    +function getAttrConfig(attr) {
    +  var element = DOCUMENT.querySelector('script[' + attr + ']');
    +
    +  if (element) {
    +    return element.getAttribute(attr);
    +  }
    +}
    +
    +function coerce(val) {
    +  // Getting an empty string will occur if the attribute is set on the HTML tag but without a value
    +  // We'll assume that this is an indication that it should be toggled to true
    +  // For example <script data-search-pseudo-elements src="..."></script>
    +  if (val === '') return true;
    +  if (val === 'false') return false;
    +  if (val === 'true') return true;
    +  return val;
    +}
    +
    +if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {
    +  var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];
    +
    +  attrs.forEach(function (_ref) {
    +    var _ref2 = slicedToArray(_ref, 2),
    +        attr = _ref2[0],
    +        key = _ref2[1];
    +
    +    var val = coerce(getAttrConfig(attr));
    +
    +    if (val !== undefined && val !== null) {
    +      initial[key] = val;
    +    }
    +  });
    +}
    +
    +var _default = _extends({
    +  familyPrefix: DEFAULT_FAMILY_PREFIX,
    +  replacementClass: DEFAULT_REPLACEMENT_CLASS,
    +  autoReplaceSvg: true,
    +  autoAddCss: true,
    +  autoA11y: true,
    +  searchPseudoElements: false,
    +  observeMutations: true,
    +  keepOriginalSource: true,
    +  measurePerformance: false,
    +  showMissingIcons: true
    +}, initial);
    +
    +if (!_default.autoReplaceSvg) _default.observeMutations = false;
    +
    +var config = _extends({}, _default);
    +
    +WINDOW.FontAwesomeConfig = config;
    +
    +var w = WINDOW || {};
    +
    +if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
    +if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
    +if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
    +if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
    +
    +var namespace = w[NAMESPACE_IDENTIFIER];
    +
    +var functions = [];
    +var listener = function listener() {
    +  DOCUMENT.removeEventListener('DOMContentLoaded', listener);
    +  loaded = 1;
    +  functions.map(function (fn) {
    +    return fn();
    +  });
    +};
    +
    +var loaded = false;
    +
    +if (IS_DOM) {
    +  loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);
    +
    +  if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);
    +}
    +
    +var domready = function (fn) {
    +  if (!IS_DOM) return;
    +  loaded ? setTimeout(fn, 0) : functions.push(fn);
    +};
    +
    +var d = UNITS_IN_GRID;
    +
    +var meaninglessTransform = {
    +  size: 16,
    +  x: 0,
    +  y: 0,
    +  rotate: 0,
    +  flipX: false,
    +  flipY: false
    +};
    +
    +function isReserved(name) {
    +  return ~RESERVED_CLASSES.indexOf(name);
    +}
    +
    +function bunker(fn) {
    +  try {
    +    fn();
    +  } catch (e) {
    +    if (!PRODUCTION) {
    +      throw e;
    +    }
    +  }
    +}
    +
    +function insertCss(css) {
    +  if (!css || !IS_DOM) {
    +    return;
    +  }
    +
    +  var style = DOCUMENT.createElement('style');
    +  style.setAttribute('type', 'text/css');
    +  style.innerHTML = css;
    +
    +  var headChildren = DOCUMENT.head.childNodes;
    +  var beforeChild = null;
    +
    +  for (var i = headChildren.length - 1; i > -1; i--) {
    +    var child = headChildren[i];
    +    var tagName = (child.tagName || '').toUpperCase();
    +    if (['STYLE', 'LINK'].indexOf(tagName) > -1) {
    +      beforeChild = child;
    +    }
    +  }
    +
    +  DOCUMENT.head.insertBefore(style, beforeChild);
    +
    +  return css;
    +}
    +
    +var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    +
    +function nextUniqueId() {
    +  var size = 12;
    +  var id = '';
    +  while (size-- > 0) {
    +    id += idPool[Math.random() * 62 | 0];
    +  }
    +  return id;
    +}
    +
    +function toArray(obj) {
    +  var array = [];
    +
    +  for (var i = (obj || []).length >>> 0; i--;) {
    +    array[i] = obj[i];
    +  }
    +
    +  return array;
    +}
    +
    +function classArray(node) {
    +  if (node.classList) {
    +    return toArray(node.classList);
    +  } else {
    +    return (node.getAttribute('class') || '').split(' ').filter(function (i) {
    +      return i;
    +    });
    +  }
    +}
    +
    +function getIconName(familyPrefix, cls) {
    +  var parts = cls.split('-');
    +  var prefix = parts[0];
    +  var iconName = parts.slice(1).join('-');
    +
    +  if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {
    +    return iconName;
    +  } else {
    +    return null;
    +  }
    +}
    +
    +function htmlEscape(str) {
    +  return ('' + str).replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
    +}
    +
    +function joinAttributes(attributes) {
    +  return Object.keys(attributes || {}).reduce(function (acc, attributeName) {
    +    return acc + (attributeName + '="' + htmlEscape(attributes[attributeName]) + '" ');
    +  }, '').trim();
    +}
    +
    +function joinStyles(styles) {
    +  return Object.keys(styles || {}).reduce(function (acc, styleName) {
    +    return acc + (styleName + ': ' + styles[styleName] + ';');
    +  }, '');
    +}
    +
    +function transformIsMeaningful(transform) {
    +  return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;
    +}
    +
    +function transformForSvg(_ref) {
    +  var transform = _ref.transform,
    +      containerWidth = _ref.containerWidth,
    +      iconWidth = _ref.iconWidth;
    +
    +  var outer = {
    +    transform: 'translate(' + containerWidth / 2 + ' 256)'
    +  };
    +  var innerTranslate = 'translate(' + transform.x * 32 + ', ' + transform.y * 32 + ') ';
    +  var innerScale = 'scale(' + transform.size / 16 * (transform.flipX ? -1 : 1) + ', ' + transform.size / 16 * (transform.flipY ? -1 : 1) + ') ';
    +  var innerRotate = 'rotate(' + transform.rotate + ' 0 0)';
    +  var inner = {
    +    transform: innerTranslate + ' ' + innerScale + ' ' + innerRotate
    +  };
    +  var path = {
    +    transform: 'translate(' + iconWidth / 2 * -1 + ' -256)'
    +  };
    +  return {
    +    outer: outer,
    +    inner: inner,
    +    path: path
    +  };
    +}
    +
    +function transformForCss(_ref2) {
    +  var transform = _ref2.transform,
    +      _ref2$width = _ref2.width,
    +      width = _ref2$width === undefined ? UNITS_IN_GRID : _ref2$width,
    +      _ref2$height = _ref2.height,
    +      height = _ref2$height === undefined ? UNITS_IN_GRID : _ref2$height,
    +      _ref2$startCentered = _ref2.startCentered,
    +      startCentered = _ref2$startCentered === undefined ? false : _ref2$startCentered;
    +
    +  var val = '';
    +
    +  if (startCentered && IS_IE) {
    +    val += 'translate(' + (transform.x / d - width / 2) + 'em, ' + (transform.y / d - height / 2) + 'em) ';
    +  } else if (startCentered) {
    +    val += 'translate(calc(-50% + ' + transform.x / d + 'em), calc(-50% + ' + transform.y / d + 'em)) ';
    +  } else {
    +    val += 'translate(' + transform.x / d + 'em, ' + transform.y / d + 'em) ';
    +  }
    +
    +  val += 'scale(' + transform.size / d * (transform.flipX ? -1 : 1) + ', ' + transform.size / d * (transform.flipY ? -1 : 1) + ') ';
    +  val += 'rotate(' + transform.rotate + 'deg) ';
    +
    +  return val;
    +}
    +
    +var ALL_SPACE = {
    +  x: 0,
    +  y: 0,
    +  width: '100%',
    +  height: '100%'
    +};
    +
    +var makeIconMasking = function (_ref) {
    +  var children = _ref.children,
    +      attributes = _ref.attributes,
    +      main = _ref.main,
    +      mask = _ref.mask,
    +      transform = _ref.transform;
    +  var mainWidth = main.width,
    +      mainPath = main.icon;
    +  var maskWidth = mask.width,
    +      maskPath = mask.icon;
    +
    +
    +  var trans = transformForSvg({ transform: transform, containerWidth: maskWidth, iconWidth: mainWidth });
    +
    +  var maskRect = {
    +    tag: 'rect',
    +    attributes: _extends({}, ALL_SPACE, {
    +      fill: 'white'
    +    })
    +  };
    +  var maskInnerGroup = {
    +    tag: 'g',
    +    attributes: _extends({}, trans.inner),
    +    children: [{ tag: 'path', attributes: _extends({}, mainPath.attributes, trans.path, { fill: 'black' }) }]
    +  };
    +  var maskOuterGroup = {
    +    tag: 'g',
    +    attributes: _extends({}, trans.outer),
    +    children: [maskInnerGroup]
    +  };
    +  var maskId = 'mask-' + nextUniqueId();
    +  var clipId = 'clip-' + nextUniqueId();
    +  var maskTag = {
    +    tag: 'mask',
    +    attributes: _extends({}, ALL_SPACE, {
    +      id: maskId,
    +      maskUnits: 'userSpaceOnUse',
    +      maskContentUnits: 'userSpaceOnUse'
    +    }),
    +    children: [maskRect, maskOuterGroup]
    +  };
    +  var defs = {
    +    tag: 'defs',
    +    children: [{ tag: 'clipPath', attributes: { id: clipId }, children: [maskPath] }, maskTag]
    +  };
    +
    +  children.push(defs, { tag: 'rect', attributes: _extends({ fill: 'currentColor', 'clip-path': 'url(#' + clipId + ')', mask: 'url(#' + maskId + ')' }, ALL_SPACE) });
    +
    +  return {
    +    children: children,
    +    attributes: attributes
    +  };
    +};
    +
    +var makeIconStandard = function (_ref) {
    +  var children = _ref.children,
    +      attributes = _ref.attributes,
    +      main = _ref.main,
    +      transform = _ref.transform,
    +      styles = _ref.styles;
    +
    +  var styleString = joinStyles(styles);
    +
    +  if (styleString.length > 0) {
    +    attributes['style'] = styleString;
    +  }
    +
    +  if (transformIsMeaningful(transform)) {
    +    var trans = transformForSvg({ transform: transform, containerWidth: main.width, iconWidth: main.width });
    +    children.push({
    +      tag: 'g',
    +      attributes: _extends({}, trans.outer),
    +      children: [{
    +        tag: 'g',
    +        attributes: _extends({}, trans.inner),
    +        children: [{
    +          tag: main.icon.tag,
    +          children: main.icon.children,
    +          attributes: _extends({}, main.icon.attributes, trans.path)
    +        }]
    +      }]
    +    });
    +  } else {
    +    children.push(main.icon);
    +  }
    +
    +  return {
    +    children: children,
    +    attributes: attributes
    +  };
    +};
    +
    +var asIcon = function (_ref) {
    +  var children = _ref.children,
    +      main = _ref.main,
    +      mask = _ref.mask,
    +      attributes = _ref.attributes,
    +      styles = _ref.styles,
    +      transform = _ref.transform;
    +
    +  if (transformIsMeaningful(transform) && main.found && !mask.found) {
    +    var width = main.width,
    +        height = main.height;
    +
    +    var offset = {
    +      x: width / height / 2,
    +      y: 0.5
    +    };
    +    attributes['style'] = joinStyles(_extends({}, styles, {
    +      'transform-origin': offset.x + transform.x / 16 + 'em ' + (offset.y + transform.y / 16) + 'em'
    +    }));
    +  }
    +
    +  return [{
    +    tag: 'svg',
    +    attributes: attributes,
    +    children: children
    +  }];
    +};
    +
    +var asSymbol = function (_ref) {
    +  var prefix = _ref.prefix,
    +      iconName = _ref.iconName,
    +      children = _ref.children,
    +      attributes = _ref.attributes,
    +      symbol = _ref.symbol;
    +
    +  var id = symbol === true ? prefix + '-' + config.familyPrefix + '-' + iconName : symbol;
    +
    +  return [{
    +    tag: 'svg',
    +    attributes: {
    +      style: 'display: none;'
    +    },
    +    children: [{
    +      tag: 'symbol',
    +      attributes: _extends({}, attributes, { id: id }),
    +      children: children
    +    }]
    +  }];
    +};
    +
    +function makeInlineSvgAbstract(params) {
    +  var _params$icons = params.icons,
    +      main = _params$icons.main,
    +      mask = _params$icons.mask,
    +      prefix = params.prefix,
    +      iconName = params.iconName,
    +      transform = params.transform,
    +      symbol = params.symbol,
    +      title = params.title,
    +      extra = params.extra,
    +      _params$watchable = params.watchable,
    +      watchable = _params$watchable === undefined ? false : _params$watchable;
    +
    +  var _ref = mask.found ? mask : main,
    +      width = _ref.width,
    +      height = _ref.height;
    +
    +  var widthClass = 'fa-w-' + Math.ceil(width / height * 16);
    +  var attrClass = [config.replacementClass, iconName ? config.familyPrefix + '-' + iconName : '', widthClass].filter(function (c) {
    +    return extra.classes.indexOf(c) === -1;
    +  }).concat(extra.classes).join(' ');
    +
    +  var content = {
    +    children: [],
    +    attributes: _extends({}, extra.attributes, {
    +      'data-prefix': prefix,
    +      'data-icon': iconName,
    +      'class': attrClass,
    +      'role': 'img',
    +      'xmlns': 'http://www.w3.org/2000/svg',
    +      'viewBox': '0 0 ' + width + ' ' + height
    +    })
    +  };
    +
    +  if (watchable) {
    +    content.attributes[DATA_FA_I2SVG] = '';
    +  }
    +
    +  if (title) content.children.push({ tag: 'title', attributes: { id: content.attributes['aria-labelledby'] || 'title-' + nextUniqueId() }, children: [title] });
    +
    +  var args = _extends({}, content, {
    +    prefix: prefix,
    +    iconName: iconName,
    +    main: main,
    +    mask: mask,
    +    transform: transform,
    +    symbol: symbol,
    +    styles: extra.styles
    +  });
    +
    +  var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),
    +      children = _ref2.children,
    +      attributes = _ref2.attributes;
    +
    +  args.children = children;
    +  args.attributes = attributes;
    +
    +  if (symbol) {
    +    return asSymbol(args);
    +  } else {
    +    return asIcon(args);
    +  }
    +}
    +
    +function makeLayersTextAbstract(params) {
    +  var content = params.content,
    +      width = params.width,
    +      height = params.height,
    +      transform = params.transform,
    +      title = params.title,
    +      extra = params.extra,
    +      _params$watchable2 = params.watchable,
    +      watchable = _params$watchable2 === undefined ? false : _params$watchable2;
    +
    +
    +  var attributes = _extends({}, extra.attributes, title ? { 'title': title } : {}, {
    +    'class': extra.classes.join(' ')
    +  });
    +
    +  if (watchable) {
    +    attributes[DATA_FA_I2SVG] = '';
    +  }
    +
    +  var styles = _extends({}, extra.styles);
    +
    +  if (transformIsMeaningful(transform)) {
    +    styles['transform'] = transformForCss({ transform: transform, startCentered: true, width: width, height: height });
    +    styles['-webkit-transform'] = styles['transform'];
    +  }
    +
    +  var styleString = joinStyles(styles);
    +
    +  if (styleString.length > 0) {
    +    attributes['style'] = styleString;
    +  }
    +
    +  var val = [];
    +
    +  val.push({
    +    tag: 'span',
    +    attributes: attributes,
    +    children: [content]
    +  });
    +
    +  if (title) {
    +    val.push({ tag: 'span', attributes: { class: 'sr-only' }, children: [title] });
    +  }
    +
    +  return val;
    +}
    +
    +function makeLayersCounterAbstract(params) {
    +  var content = params.content,
    +      title = params.title,
    +      extra = params.extra;
    +
    +
    +  var attributes = _extends({}, extra.attributes, title ? { 'title': title } : {}, {
    +    'class': extra.classes.join(' ')
    +  });
    +
    +  var styleString = joinStyles(extra.styles);
    +
    +  if (styleString.length > 0) {
    +    attributes['style'] = styleString;
    +  }
    +
    +  var val = [];
    +
    +  val.push({
    +    tag: 'span',
    +    attributes: attributes,
    +    children: [content]
    +  });
    +
    +  if (title) {
    +    val.push({ tag: 'span', attributes: { class: 'sr-only' }, children: [title] });
    +  }
    +
    +  return val;
    +}
    +
    +var noop$2 = function noop() {};
    +var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : { mark: noop$2, measure: noop$2 };
    +var preamble = 'FA "5.4.1"';
    +
    +var begin = function begin(name) {
    +  p.mark(preamble + ' ' + name + ' begins');
    +  return function () {
    +    return end(name);
    +  };
    +};
    +
    +var end = function end(name) {
    +  p.mark(preamble + ' ' + name + ' ends');
    +  p.measure(preamble + ' ' + name, preamble + ' ' + name + ' begins', preamble + ' ' + name + ' ends');
    +};
    +
    +var perf = { begin: begin, end: end };
    +
    +'use strict';
    +
    +/**
    + * Internal helper to bind a function known to have 4 arguments
    + * to a given context.
    + */
    +var bindInternal4 = function bindInternal4 (func, thisContext) {
    +  return function (a, b, c, d) {
    +    return func.call(thisContext, a, b, c, d);
    +  };
    +};
    +
    +'use strict';
    +
    +
    +
    +/**
    + * # Reduce
    + *
    + * A fast object `.reduce()` implementation.
    + *
    + * @param  {Object}   subject      The object to reduce over.
    + * @param  {Function} fn           The reducer function.
    + * @param  {mixed}    initialValue The initial value for the reducer, defaults to subject[0].
    + * @param  {Object}   thisContext  The context for the reducer.
    + * @return {mixed}                 The final result.
    + */
    +var reduce = function fastReduceObject (subject, fn, initialValue, thisContext) {
    +  var keys = Object.keys(subject),
    +      length = keys.length,
    +      iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,
    +      i, key, result;
    +
    +  if (initialValue === undefined) {
    +    i = 1;
    +    result = subject[keys[0]];
    +  }
    +  else {
    +    i = 0;
    +    result = initialValue;
    +  }
    +
    +  for (; i < length; i++) {
    +    key = keys[i];
    +    result = iterator(result, subject[key], key, subject);
    +  }
    +
    +  return result;
    +};
    +
    +var styles$2 = namespace.styles;
    +var shims = namespace.shims;
    +
    +
    +var _byUnicode = {};
    +var _byLigature = {};
    +var _byOldName = {};
    +
    +var build = function build() {
    +  var lookup = function lookup(reducer) {
    +    return reduce(styles$2, function (o, style, prefix) {
    +      o[prefix] = reduce(style, reducer, {});
    +      return o;
    +    }, {});
    +  };
    +
    +  _byUnicode = lookup(function (acc, icon, iconName) {
    +    acc[icon[3]] = iconName;
    +
    +    return acc;
    +  });
    +
    +  _byLigature = lookup(function (acc, icon, iconName) {
    +    var ligatures = icon[2];
    +
    +    acc[iconName] = iconName;
    +
    +    ligatures.forEach(function (ligature) {
    +      acc[ligature] = iconName;
    +    });
    +
    +    return acc;
    +  });
    +
    +  var hasRegular = 'far' in styles$2;
    +
    +  _byOldName = reduce(shims, function (acc, shim) {
    +    var oldName = shim[0];
    +    var prefix = shim[1];
    +    var iconName = shim[2];
    +
    +    if (prefix === 'far' && !hasRegular) {
    +      prefix = 'fas';
    +    }
    +
    +    acc[oldName] = { prefix: prefix, iconName: iconName };
    +
    +    return acc;
    +  }, {});
    +};
    +
    +build();
    +
    +function byUnicode(prefix, unicode) {
    +  return _byUnicode[prefix][unicode];
    +}
    +
    +function byLigature(prefix, ligature) {
    +  return _byLigature[prefix][ligature];
    +}
    +
    +function byOldName(name) {
    +  return _byOldName[name] || { prefix: null, iconName: null };
    +}
    +
    +var styles$1 = namespace.styles;
    +
    +
    +var emptyCanonicalIcon = function emptyCanonicalIcon() {
    +  return { prefix: null, iconName: null, rest: [] };
    +};
    +
    +function getCanonicalIcon(values) {
    +  return values.reduce(function (acc, cls) {
    +    var iconName = getIconName(config.familyPrefix, cls);
    +
    +    if (styles$1[cls]) {
    +      acc.prefix = cls;
    +    } else if (iconName) {
    +      var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};
    +
    +      acc.iconName = shim.iconName || iconName;
    +      acc.prefix = shim.prefix || acc.prefix;
    +    } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {
    +      acc.rest.push(cls);
    +    }
    +
    +    return acc;
    +  }, emptyCanonicalIcon());
    +}
    +
    +function iconFromMapping(mapping, prefix, iconName) {
    +  if (mapping && mapping[prefix] && mapping[prefix][iconName]) {
    +    return {
    +      prefix: prefix,
    +      iconName: iconName,
    +      icon: mapping[prefix][iconName]
    +    };
    +  }
    +}
    +
    +function toHtml(abstractNodes) {
    +  var tag = abstractNodes.tag,
    +      _abstractNodes$attrib = abstractNodes.attributes,
    +      attributes = _abstractNodes$attrib === undefined ? {} : _abstractNodes$attrib,
    +      _abstractNodes$childr = abstractNodes.children,
    +      children = _abstractNodes$childr === undefined ? [] : _abstractNodes$childr;
    +
    +
    +  if (typeof abstractNodes === 'string') {
    +    return htmlEscape(abstractNodes);
    +  } else {
    +    return '<' + tag + ' ' + joinAttributes(attributes) + '>' + children.map(toHtml).join('') + '</' + tag + '>';
    +  }
    +}
    +
    +var noop$1 = function noop() {};
    +
    +function isWatched(node) {
    +  var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;
    +
    +  return typeof i2svg === 'string';
    +}
    +
    +function getMutator() {
    +  if (config.autoReplaceSvg === true) {
    +    return mutators.replace;
    +  }
    +
    +  var mutator = mutators[config.autoReplaceSvg];
    +
    +  return mutator || mutators.replace;
    +}
    +
    +var mutators = {
    +  replace: function replace(mutation) {
    +    var node = mutation[0];
    +    var abstract = mutation[1];
    +    var newOuterHTML = abstract.map(function (a) {
    +      return toHtml(a);
    +    }).join('\n');
    +
    +    if (node.parentNode && node.outerHTML) {
    +      node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? '<!-- ' + node.outerHTML + ' -->' : '');
    +    } else if (node.parentNode) {
    +      var newNode = document.createElement('span');
    +      node.parentNode.replaceChild(newNode, node);
    +      newNode.outerHTML = newOuterHTML;
    +    }
    +  },
    +  nest: function nest(mutation) {
    +    var node = mutation[0];
    +    var abstract = mutation[1];
    +
    +    // If we already have a replaced node we do not want to continue nesting within it.
    +    // Short-circuit to the standard replacement
    +    if (~classArray(node).indexOf(config.replacementClass)) {
    +      return mutators.replace(mutation);
    +    }
    +
    +    var forSvg = new RegExp(config.familyPrefix + '-.*');
    +
    +    delete abstract[0].attributes.style;
    +
    +    var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {
    +      if (cls === config.replacementClass || cls.match(forSvg)) {
    +        acc.toSvg.push(cls);
    +      } else {
    +        acc.toNode.push(cls);
    +      }
    +
    +      return acc;
    +    }, { toNode: [], toSvg: [] });
    +
    +    abstract[0].attributes.class = splitClasses.toSvg.join(' ');
    +
    +    var newInnerHTML = abstract.map(function (a) {
    +      return toHtml(a);
    +    }).join('\n');
    +    node.setAttribute('class', splitClasses.toNode.join(' '));
    +    node.setAttribute(DATA_FA_I2SVG, '');
    +    node.innerHTML = newInnerHTML;
    +  }
    +};
    +
    +function perform(mutations, callback) {
    +  var callbackFunction = typeof callback === 'function' ? callback : noop$1;
    +
    +  if (mutations.length === 0) {
    +    callbackFunction();
    +  } else {
    +    var frame = WINDOW.requestAnimationFrame || function (op) {
    +      return op();
    +    };
    +
    +    frame(function () {
    +      var mutator = getMutator();
    +      var mark = perf.begin('mutate');
    +
    +      mutations.map(mutator);
    +
    +      mark();
    +
    +      callbackFunction();
    +    });
    +  }
    +}
    +
    +var disabled = false;
    +
    +function disableObservation(operation) {
    +  disabled = true;
    +  operation();
    +  disabled = false;
    +}
    +
    +var mo = null;
    +
    +function observe(options) {
    +  if (!MUTATION_OBSERVER) {
    +    return;
    +  }
    +
    +  if (!config.observeMutations) {
    +    return;
    +  }
    +
    +  var treeCallback = options.treeCallback,
    +      nodeCallback = options.nodeCallback,
    +      pseudoElementsCallback = options.pseudoElementsCallback,
    +      _options$observeMutat = options.observeMutationsRoot,
    +      observeMutationsRoot = _options$observeMutat === undefined ? DOCUMENT.body : _options$observeMutat;
    +
    +
    +  mo = new MUTATION_OBSERVER(function (objects) {
    +    if (disabled) return;
    +
    +    toArray(objects).forEach(function (mutationRecord) {
    +      if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {
    +        if (config.searchPseudoElements) {
    +          pseudoElementsCallback(mutationRecord.target);
    +        }
    +
    +        treeCallback(mutationRecord.target);
    +      }
    +
    +      if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {
    +        pseudoElementsCallback(mutationRecord.target.parentNode);
    +      }
    +
    +      if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {
    +        if (mutationRecord.attributeName === 'class') {
    +          var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),
    +              prefix = _getCanonicalIcon.prefix,
    +              iconName = _getCanonicalIcon.iconName;
    +
    +          if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);
    +          if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);
    +        } else {
    +          nodeCallback(mutationRecord.target);
    +        }
    +      }
    +    });
    +  });
    +
    +  if (!IS_DOM) return;
    +
    +  mo.observe(observeMutationsRoot, {
    +    childList: true, attributes: true, characterData: true, subtree: true
    +  });
    +}
    +
    +function disconnect() {
    +  if (!mo) return;
    +
    +  mo.disconnect();
    +}
    +
    +var styleParser = function (node) {
    +  var style = node.getAttribute('style');
    +
    +  var val = [];
    +
    +  if (style) {
    +    val = style.split(';').reduce(function (acc, style) {
    +      var styles = style.split(':');
    +      var prop = styles[0];
    +      var value = styles.slice(1);
    +
    +      if (prop && value.length > 0) {
    +        acc[prop] = value.join(':').trim();
    +      }
    +
    +      return acc;
    +    }, {});
    +  }
    +
    +  return val;
    +};
    +
    +function toHex(unicode) {
    +  var result = '';
    +
    +  for (var i = 0; i < unicode.length; i++) {
    +    var hex = unicode.charCodeAt(i).toString(16);
    +    result += ('000' + hex).slice(-4);
    +  }
    +
    +  return result;
    +}
    +
    +var classParser = function (node) {
    +  var existingPrefix = node.getAttribute('data-prefix');
    +  var existingIconName = node.getAttribute('data-icon');
    +  var innerText = node.innerText !== undefined ? node.innerText.trim() : '';
    +
    +  var val = getCanonicalIcon(classArray(node));
    +
    +  if (existingPrefix && existingIconName) {
    +    val.prefix = existingPrefix;
    +    val.iconName = existingIconName;
    +  }
    +
    +  if (val.prefix && innerText.length > 1) {
    +    val.iconName = byLigature(val.prefix, node.innerText);
    +  } else if (val.prefix && innerText.length === 1) {
    +    val.iconName = byUnicode(val.prefix, toHex(node.innerText));
    +  }
    +
    +  return val;
    +};
    +
    +var parseTransformString = function parseTransformString(transformString) {
    +  var transform = {
    +    size: 16,
    +    x: 0,
    +    y: 0,
    +    flipX: false,
    +    flipY: false,
    +    rotate: 0
    +  };
    +
    +  if (!transformString) {
    +    return transform;
    +  } else {
    +    return transformString.toLowerCase().split(' ').reduce(function (acc, n) {
    +      var parts = n.toLowerCase().split('-');
    +      var first = parts[0];
    +      var rest = parts.slice(1).join('-');
    +
    +      if (first && rest === 'h') {
    +        acc.flipX = true;
    +        return acc;
    +      }
    +
    +      if (first && rest === 'v') {
    +        acc.flipY = true;
    +        return acc;
    +      }
    +
    +      rest = parseFloat(rest);
    +
    +      if (isNaN(rest)) {
    +        return acc;
    +      }
    +
    +      switch (first) {
    +        case 'grow':
    +          acc.size = acc.size + rest;
    +          break;
    +        case 'shrink':
    +          acc.size = acc.size - rest;
    +          break;
    +        case 'left':
    +          acc.x = acc.x - rest;
    +          break;
    +        case 'right':
    +          acc.x = acc.x + rest;
    +          break;
    +        case 'up':
    +          acc.y = acc.y - rest;
    +          break;
    +        case 'down':
    +          acc.y = acc.y + rest;
    +          break;
    +        case 'rotate':
    +          acc.rotate = acc.rotate + rest;
    +          break;
    +      }
    +
    +      return acc;
    +    }, transform);
    +  }
    +};
    +
    +var transformParser = function (node) {
    +  return parseTransformString(node.getAttribute('data-fa-transform'));
    +};
    +
    +var symbolParser = function (node) {
    +  var symbol = node.getAttribute('data-fa-symbol');
    +
    +  return symbol === null ? false : symbol === '' ? true : symbol;
    +};
    +
    +var attributesParser = function (node) {
    +  var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {
    +    if (acc.name !== 'class' && acc.name !== 'style') {
    +      acc[attr.name] = attr.value;
    +    }
    +    return acc;
    +  }, {});
    +
    +  var title = node.getAttribute('title');
    +
    +  if (config.autoA11y) {
    +    if (title) {
    +      extraAttributes['aria-labelledby'] = config.replacementClass + '-title-' + nextUniqueId();
    +    } else {
    +      extraAttributes['aria-hidden'] = 'true';
    +    }
    +  }
    +
    +  return extraAttributes;
    +};
    +
    +var maskParser = function (node) {
    +  var mask = node.getAttribute('data-fa-mask');
    +
    +  if (!mask) {
    +    return emptyCanonicalIcon();
    +  } else {
    +    return getCanonicalIcon(mask.split(' ').map(function (i) {
    +      return i.trim();
    +    }));
    +  }
    +};
    +
    +var blankMeta = {
    +  iconName: null,
    +  title: null,
    +  prefix: null,
    +  transform: meaninglessTransform,
    +  symbol: false,
    +  mask: null,
    +  extra: { classes: [], styles: {}, attributes: {} }
    +};
    +
    +function parseMeta(node) {
    +  var _classParser = classParser(node),
    +      iconName = _classParser.iconName,
    +      prefix = _classParser.prefix,
    +      extraClasses = _classParser.rest;
    +
    +  var extraStyles = styleParser(node);
    +  var transform = transformParser(node);
    +  var symbol = symbolParser(node);
    +  var extraAttributes = attributesParser(node);
    +  var mask = maskParser(node);
    +
    +  return {
    +    iconName: iconName,
    +    title: node.getAttribute('title'),
    +    prefix: prefix,
    +    transform: transform,
    +    symbol: symbol,
    +    mask: mask,
    +    extra: {
    +      classes: extraClasses,
    +      styles: extraStyles,
    +      attributes: extraAttributes
    +    }
    +  };
    +}
    +
    +function MissingIcon(error) {
    +  this.name = 'MissingIcon';
    +  this.message = error || 'Icon unavailable';
    +  this.stack = new Error().stack;
    +}
    +
    +MissingIcon.prototype = Object.create(Error.prototype);
    +MissingIcon.prototype.constructor = MissingIcon;
    +
    +var FILL = { fill: 'currentColor' };
    +var ANIMATION_BASE = {
    +  attributeType: 'XML',
    +  repeatCount: 'indefinite',
    +  dur: '2s'
    +};
    +var RING = {
    +  tag: 'path',
    +  attributes: _extends({}, FILL, {
    +    d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'
    +  })
    +};
    +var OPACITY_ANIMATE = _extends({}, ANIMATION_BASE, {
    +  attributeName: 'opacity'
    +});
    +var DOT = {
    +  tag: 'circle',
    +  attributes: _extends({}, FILL, {
    +    cx: '256',
    +    cy: '364',
    +    r: '28'
    +  }),
    +  children: [{ tag: 'animate', attributes: _extends({}, ANIMATION_BASE, { attributeName: 'r', values: '28;14;28;28;14;28;' }) }, { tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '1;0;1;1;0;1;' }) }]
    +};
    +var QUESTION = {
    +  tag: 'path',
    +  attributes: _extends({}, FILL, {
    +    opacity: '1',
    +    d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'
    +  }),
    +  children: [{ tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '1;0;0;0;0;1;' }) }]
    +};
    +var EXCLAMATION = {
    +  tag: 'path',
    +  attributes: _extends({}, FILL, {
    +    opacity: '0',
    +    d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'
    +  }),
    +  children: [{ tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '0;0;1;1;0;0;' }) }]
    +};
    +
    +var missing = { tag: 'g', children: [RING, DOT, QUESTION, EXCLAMATION] };
    +
    +var styles = namespace.styles;
    +
    +var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';
    +var FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Brands|Free|Pro)/;
    +var STYLE_TO_PREFIX = {
    +  'Solid': 'fas',
    +  'Regular': 'far',
    +  'Light': 'fal',
    +  'Brands': 'fab'
    +};
    +var FONT_WEIGHT_TO_PREFIX = {
    +  '900': 'fas',
    +  '400': 'far',
    +  '300': 'fal'
    +};
    +
    +function findIcon(iconName, prefix) {
    +  var val = {
    +    found: false,
    +    width: 512,
    +    height: 512,
    +    icon: missing
    +  };
    +
    +  if (iconName && prefix && styles[prefix] && styles[prefix][iconName]) {
    +    var icon = styles[prefix][iconName];
    +    var width = icon[0];
    +    var height = icon[1];
    +    var vectorData = icon.slice(4);
    +
    +    val = {
    +      found: true,
    +      width: width,
    +      height: height,
    +      icon: { tag: 'path', attributes: { fill: 'currentColor', d: vectorData[0] } }
    +    };
    +  } else if (iconName && prefix && !config.showMissingIcons) {
    +    throw new MissingIcon('Icon is missing for prefix ' + prefix + ' with icon name ' + iconName);
    +  }
    +
    +  return val;
    +}
    +
    +function generateSvgReplacementMutation(node, nodeMeta) {
    +  var iconName = nodeMeta.iconName,
    +      title = nodeMeta.title,
    +      prefix = nodeMeta.prefix,
    +      transform = nodeMeta.transform,
    +      symbol = nodeMeta.symbol,
    +      mask = nodeMeta.mask,
    +      extra = nodeMeta.extra;
    +
    +
    +  return [node, makeInlineSvgAbstract({
    +    icons: {
    +      main: findIcon(iconName, prefix),
    +      mask: findIcon(mask.iconName, mask.prefix)
    +    },
    +    prefix: prefix,
    +    iconName: iconName,
    +    transform: transform,
    +    symbol: symbol,
    +    mask: mask,
    +    title: title,
    +    extra: extra,
    +    watchable: true
    +  })];
    +}
    +
    +function generateLayersText(node, nodeMeta) {
    +  var title = nodeMeta.title,
    +      transform = nodeMeta.transform,
    +      extra = nodeMeta.extra;
    +
    +
    +  var width = null;
    +  var height = null;
    +
    +  if (IS_IE) {
    +    var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);
    +    var boundingClientRect = node.getBoundingClientRect();
    +    width = boundingClientRect.width / computedFontSize;
    +    height = boundingClientRect.height / computedFontSize;
    +  }
    +
    +  if (config.autoA11y && !title) {
    +    extra.attributes['aria-hidden'] = 'true';
    +  }
    +
    +  return [node, makeLayersTextAbstract({
    +    content: node.innerHTML,
    +    width: width,
    +    height: height,
    +    transform: transform,
    +    title: title,
    +    extra: extra,
    +    watchable: true
    +  })];
    +}
    +
    +function generateMutation(node) {
    +  var nodeMeta = parseMeta(node);
    +
    +  if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {
    +    return generateLayersText(node, nodeMeta);
    +  } else {
    +    return generateSvgReplacementMutation(node, nodeMeta);
    +  }
    +}
    +
    +function searchPseudoElements(root) {
    +  if (!IS_DOM) return;
    +
    +  var end = perf.begin('searchPseudoElements');
    +
    +  disableObservation(function () {
    +    toArray(root.querySelectorAll('*')).filter(function (n) {
    +      return n.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(n.tagName.toUpperCase()) && !n.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!n.parentNode || n.parentNode.tagName !== 'svg');
    +    }).forEach(function (node) {
    +      [':before', ':after'].forEach(function (pos) {
    +        var children = toArray(node.children);
    +        var alreadyProcessedPseudoElement = children.filter(function (c) {
    +          return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === pos;
    +        })[0];
    +
    +        var styles = WINDOW.getComputedStyle(node, pos);
    +        var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);
    +        var fontWeight = styles.getPropertyValue('font-weight');
    +
    +        if (alreadyProcessedPseudoElement && !fontFamily) {
    +          // If we've already processed it but the current computed style does not result in a font-family,
    +          // that probably means that a class name that was previously present to make the icon has been
    +          // removed. So we now should delete the icon.
    +          node.removeChild(alreadyProcessedPseudoElement);
    +        } else if (fontFamily) {
    +          var content = styles.getPropertyValue('content');
    +          var prefix = ~['Light', 'Regular', 'Solid', 'Brands'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1]] : FONT_WEIGHT_TO_PREFIX[fontWeight];
    +          var iconName = byUnicode(prefix, toHex(content.length === 3 ? content.substr(1, 1) : content));
    +          // Only convert the pseudo element in this :before/:after position into an icon if we haven't
    +          // already done so with the same prefix and iconName
    +          if (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconName) {
    +            if (alreadyProcessedPseudoElement) {
    +              // Delete the old one, since we're replacing it with a new one
    +              node.removeChild(alreadyProcessedPseudoElement);
    +            }
    +
    +            var extra = blankMeta.extra;
    +
    +            extra.attributes[DATA_FA_PSEUDO_ELEMENT] = pos;
    +            var abstract = makeInlineSvgAbstract(_extends({}, blankMeta, {
    +              icons: {
    +                main: findIcon(iconName, prefix),
    +                mask: emptyCanonicalIcon()
    +              },
    +              prefix: prefix,
    +              iconName: iconName,
    +              extra: extra,
    +              watchable: true
    +            }));
    +
    +            var element = DOCUMENT.createElement('svg');
    +
    +            if (pos === ':before') {
    +              node.insertBefore(element, node.firstChild);
    +            } else {
    +              node.appendChild(element);
    +            }
    +
    +            element.outerHTML = abstract.map(function (a) {
    +              return toHtml(a);
    +            }).join('\n');
    +          }
    +        }
    +      });
    +    });
    +  });
    +
    +  end();
    +}
    +
    +function onTree(root) {
    +  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
    +
    +  if (!IS_DOM) return;
    +
    +  var htmlClassList = DOCUMENT.documentElement.classList;
    +  var hclAdd = function hclAdd(suffix) {
    +    return htmlClassList.add(HTML_CLASS_I2SVG_BASE_CLASS + '-' + suffix);
    +  };
    +  var hclRemove = function hclRemove(suffix) {
    +    return htmlClassList.remove(HTML_CLASS_I2SVG_BASE_CLASS + '-' + suffix);
    +  };
    +  var prefixes = Object.keys(styles);
    +  var prefixesDomQuery = ['.' + LAYERS_TEXT_CLASSNAME + ':not([' + DATA_FA_I2SVG + '])'].concat(prefixes.map(function (p) {
    +    return '.' + p + ':not([' + DATA_FA_I2SVG + '])';
    +  })).join(', ');
    +
    +  if (prefixesDomQuery.length === 0) {
    +    return;
    +  }
    +
    +  var candidates = toArray(root.querySelectorAll(prefixesDomQuery));
    +
    +  if (candidates.length > 0) {
    +    hclAdd('pending');
    +    hclRemove('complete');
    +  } else {
    +    return;
    +  }
    +
    +  var mark = perf.begin('onTree');
    +
    +  var mutations = candidates.reduce(function (acc, node) {
    +    try {
    +      var mutation = generateMutation(node);
    +
    +      if (mutation) {
    +        acc.push(mutation);
    +      }
    +    } catch (e) {
    +      if (!PRODUCTION) {
    +        if (e instanceof MissingIcon) {
    +          console.error(e);
    +        }
    +      }
    +    }
    +
    +    return acc;
    +  }, []);
    +
    +  mark();
    +
    +  perform(mutations, function () {
    +    hclAdd('active');
    +    hclAdd('complete');
    +    hclRemove('pending');
    +
    +    if (typeof callback === 'function') callback();
    +  });
    +}
    +
    +function onNode(node) {
    +  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
    +
    +  var mutation = generateMutation(node);
    +
    +  if (mutation) {
    +    perform([mutation], callback);
    +  }
    +}
    +
    +var baseStyles = "svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1em}.svg-inline--fa.fa-stack-2x{height:2em;width:2em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}";
    +
    +var css = function () {
    +  var dfp = DEFAULT_FAMILY_PREFIX;
    +  var drc = DEFAULT_REPLACEMENT_CLASS;
    +  var fp = config.familyPrefix;
    +  var rc = config.replacementClass;
    +  var s = baseStyles;
    +
    +  if (fp !== dfp || rc !== drc) {
    +    var dPatt = new RegExp('\\.' + dfp + '\\-', 'g');
    +    var rPatt = new RegExp('\\.' + drc, 'g');
    +
    +    s = s.replace(dPatt, '.' + fp + '-').replace(rPatt, '.' + rc);
    +  }
    +
    +  return s;
    +};
    +
    +function define(prefix, icons) {
    +  var normalized = Object.keys(icons).reduce(function (acc, iconName) {
    +    var icon = icons[iconName];
    +    var expanded = !!icon.icon;
    +
    +    if (expanded) {
    +      acc[icon.iconName] = icon.icon;
    +    } else {
    +      acc[iconName] = icon;
    +    }
    +    return acc;
    +  }, {});
    +
    +  if (typeof namespace.hooks.addPack === 'function') {
    +    namespace.hooks.addPack(prefix, normalized);
    +  } else {
    +    namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, normalized);
    +  }
    +
    +  /**
    +   * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
    +   * of new styles we needed to differentiate between them. Prefix `fa` is now an alias
    +   * for `fas` so we'll easy the upgrade process for our users by automatically defining
    +   * this as well.
    +   */
    +  if (prefix === 'fas') {
    +    define('fa', icons);
    +  }
    +}
    +
    +var Library = function () {
    +  function Library() {
    +    classCallCheck(this, Library);
    +
    +    this.definitions = {};
    +  }
    +
    +  createClass(Library, [{
    +    key: 'add',
    +    value: function add() {
    +      var _this = this;
    +
    +      for (var _len = arguments.length, definitions = Array(_len), _key = 0; _key < _len; _key++) {
    +        definitions[_key] = arguments[_key];
    +      }
    +
    +      var additions = definitions.reduce(this._pullDefinitions, {});
    +
    +      Object.keys(additions).forEach(function (key) {
    +        _this.definitions[key] = _extends({}, _this.definitions[key] || {}, additions[key]);
    +        define(key, additions[key]);
    +        build();
    +      });
    +    }
    +  }, {
    +    key: 'reset',
    +    value: function reset() {
    +      this.definitions = {};
    +    }
    +  }, {
    +    key: '_pullDefinitions',
    +    value: function _pullDefinitions(additions, definition) {
    +      var normalized = definition.prefix && definition.iconName && definition.icon ? { 0: definition } : definition;
    +
    +      Object.keys(normalized).map(function (key) {
    +        var _normalized$key = normalized[key],
    +            prefix = _normalized$key.prefix,
    +            iconName = _normalized$key.iconName,
    +            icon = _normalized$key.icon;
    +
    +
    +        if (!additions[prefix]) additions[prefix] = {};
    +
    +        additions[prefix][iconName] = icon;
    +      });
    +
    +      return additions;
    +    }
    +  }]);
    +  return Library;
    +}();
    +
    +function prepIcon(icon) {
    +  var width = icon[0];
    +  var height = icon[1];
    +  var vectorData = icon.slice(4);
    +
    +  return {
    +    found: true,
    +    width: width,
    +    height: height,
    +    icon: { tag: 'path', attributes: { fill: 'currentColor', d: vectorData[0] } }
    +  };
    +}
    +
    +function ensureCss() {
    +  if (config.autoAddCss && !_cssInserted) {
    +    insertCss(css());
    +    _cssInserted = true;
    +  }
    +}
    +
    +function apiObject(val, abstractCreator) {
    +  Object.defineProperty(val, 'abstract', {
    +    get: abstractCreator
    +  });
    +
    +  Object.defineProperty(val, 'html', {
    +    get: function get() {
    +      return val.abstract.map(function (a) {
    +        return toHtml(a);
    +      });
    +    }
    +  });
    +
    +  Object.defineProperty(val, 'node', {
    +    get: function get() {
    +      if (!IS_DOM) return;
    +
    +      var container = DOCUMENT.createElement('div');
    +      container.innerHTML = val.html;
    +      return container.children;
    +    }
    +  });
    +
    +  return val;
    +}
    +
    +function findIconDefinition(params) {
    +  var _params$prefix = params.prefix,
    +      prefix = _params$prefix === undefined ? 'fa' : _params$prefix,
    +      iconName = params.iconName;
    +
    +
    +  if (!iconName) return;
    +
    +  return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);
    +}
    +
    +function resolveIcons(next) {
    +  return function (maybeIconDefinition) {
    +    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    +
    +    var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});
    +
    +    var mask = params.mask;
    +
    +
    +    if (mask) {
    +      mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});
    +    }
    +
    +    return next(iconDefinition, _extends({}, params, { mask: mask }));
    +  };
    +}
    +
    +var library = new Library();
    +
    +var noAuto = function noAuto() {
    +  config.autoReplaceSvg = false;
    +  config.observeMutations = false;
    +
    +  disconnect();
    +};
    +
    +var _cssInserted = false;
    +
    +var dom = {
    +  i2svg: function i2svg() {
    +    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    +
    +    if (IS_DOM) {
    +      ensureCss();
    +
    +      var _params$node = params.node,
    +          node = _params$node === undefined ? DOCUMENT : _params$node,
    +          _params$callback = params.callback,
    +          callback = _params$callback === undefined ? function () {} : _params$callback;
    +
    +
    +      if (config.searchPseudoElements) {
    +        searchPseudoElements(node);
    +      }
    +
    +      onTree(node, callback);
    +    }
    +  },
    +
    +  css: css,
    +
    +  insertCss: function insertCss$$1() {
    +    if (!_cssInserted) {
    +      insertCss(css());
    +      _cssInserted = true;
    +    }
    +  },
    +
    +  watch: function watch() {
    +    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    +    var autoReplaceSvgRoot = params.autoReplaceSvgRoot,
    +        observeMutationsRoot = params.observeMutationsRoot;
    +
    +
    +    if (config.autoReplaceSvg === false) {
    +      config.autoReplaceSvg = true;
    +    }
    +
    +    config.observeMutations = true;
    +
    +    domready(function () {
    +      autoReplace({
    +        autoReplaceSvgRoot: autoReplaceSvgRoot
    +      });
    +
    +      observe({
    +        treeCallback: onTree,
    +        nodeCallback: onNode,
    +        pseudoElementsCallback: searchPseudoElements,
    +        observeMutationsRoot: observeMutationsRoot
    +      });
    +    });
    +  }
    +};
    +
    +var parse = {
    +  transform: function transform(transformString) {
    +    return parseTransformString(transformString);
    +  }
    +};
    +
    +var icon = resolveIcons(function (iconDefinition) {
    +  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    +  var _params$transform = params.transform,
    +      transform = _params$transform === undefined ? meaninglessTransform : _params$transform,
    +      _params$symbol = params.symbol,
    +      symbol = _params$symbol === undefined ? false : _params$symbol,
    +      _params$mask = params.mask,
    +      mask = _params$mask === undefined ? null : _params$mask,
    +      _params$title = params.title,
    +      title = _params$title === undefined ? null : _params$title,
    +      _params$classes = params.classes,
    +      classes = _params$classes === undefined ? [] : _params$classes,
    +      _params$attributes = params.attributes,
    +      attributes = _params$attributes === undefined ? {} : _params$attributes,
    +      _params$styles = params.styles,
    +      styles = _params$styles === undefined ? {} : _params$styles;
    +
    +
    +  if (!iconDefinition) return;
    +
    +  var prefix = iconDefinition.prefix,
    +      iconName = iconDefinition.iconName,
    +      icon = iconDefinition.icon;
    +
    +
    +  return apiObject(_extends({ type: 'icon' }, iconDefinition), function () {
    +    ensureCss();
    +
    +    if (config.autoA11y) {
    +      if (title) {
    +        attributes['aria-labelledby'] = config.replacementClass + '-title-' + nextUniqueId();
    +      } else {
    +        attributes['aria-hidden'] = 'true';
    +      }
    +    }
    +
    +    return makeInlineSvgAbstract({
    +      icons: {
    +        main: prepIcon(icon),
    +        mask: mask ? prepIcon(mask.icon) : { found: false, width: null, height: null, icon: {} }
    +      },
    +      prefix: prefix,
    +      iconName: iconName,
    +      transform: _extends({}, meaninglessTransform, transform),
    +      symbol: symbol,
    +      title: title,
    +      extra: {
    +        attributes: attributes,
    +        styles: styles,
    +        classes: classes
    +      }
    +    });
    +  });
    +});
    +
    +var text = function text(content) {
    +  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    +  var _params$transform2 = params.transform,
    +      transform = _params$transform2 === undefined ? meaninglessTransform : _params$transform2,
    +      _params$title2 = params.title,
    +      title = _params$title2 === undefined ? null : _params$title2,
    +      _params$classes2 = params.classes,
    +      classes = _params$classes2 === undefined ? [] : _params$classes2,
    +      _params$attributes2 = params.attributes,
    +      attributes = _params$attributes2 === undefined ? {} : _params$attributes2,
    +      _params$styles2 = params.styles,
    +      styles = _params$styles2 === undefined ? {} : _params$styles2;
    +
    +
    +  return apiObject({ type: 'text', content: content }, function () {
    +    ensureCss();
    +
    +    return makeLayersTextAbstract({
    +      content: content,
    +      transform: _extends({}, meaninglessTransform, transform),
    +      title: title,
    +      extra: {
    +        attributes: attributes,
    +        styles: styles,
    +        classes: [config.familyPrefix + '-layers-text'].concat(toConsumableArray(classes))
    +      }
    +    });
    +  });
    +};
    +
    +var counter = function counter(content) {
    +  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    +  var _params$title3 = params.title,
    +      title = _params$title3 === undefined ? null : _params$title3,
    +      _params$classes3 = params.classes,
    +      classes = _params$classes3 === undefined ? [] : _params$classes3,
    +      _params$attributes3 = params.attributes,
    +      attributes = _params$attributes3 === undefined ? {} : _params$attributes3,
    +      _params$styles3 = params.styles,
    +      styles = _params$styles3 === undefined ? {} : _params$styles3;
    +
    +
    +  return apiObject({ type: 'counter', content: content }, function () {
    +    ensureCss();
    +
    +    return makeLayersCounterAbstract({
    +      content: content.toString(),
    +      title: title,
    +      extra: {
    +        attributes: attributes,
    +        styles: styles,
    +        classes: [config.familyPrefix + '-layers-counter'].concat(toConsumableArray(classes))
    +      }
    +    });
    +  });
    +};
    +
    +var layer = function layer(assembler) {
    +  return apiObject({ type: 'layer' }, function () {
    +    ensureCss();
    +
    +    var children = [];
    +
    +    assembler(function (args) {
    +      Array.isArray(args) ? args.map(function (a) {
    +        children = children.concat(a.abstract);
    +      }) : children = children.concat(args.abstract);
    +    });
    +
    +    return [{
    +      tag: 'span',
    +      attributes: { class: config.familyPrefix + '-layers' },
    +      children: children
    +    }];
    +  });
    +};
    +
    +var api = {
    +  noAuto: noAuto,
    +  config: config,
    +  dom: dom,
    +  library: library,
    +  parse: parse,
    +  findIconDefinition: findIconDefinition,
    +  icon: icon,
    +  text: text,
    +  counter: counter,
    +  layer: layer,
    +  toHtml: toHtml
    +};
    +
    +var autoReplace = function autoReplace() {
    +  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    +  var _params$autoReplaceSv = params.autoReplaceSvgRoot,
    +      autoReplaceSvgRoot = _params$autoReplaceSv === undefined ? DOCUMENT : _params$autoReplaceSv;
    +
    +
    +  if (Object.keys(namespace.styles).length > 0 && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({ node: autoReplaceSvgRoot });
    +};
    +
    +function bootstrap() {
    +  if (IS_BROWSER) {
    +    if (!WINDOW.FontAwesome) {
    +      WINDOW.FontAwesome = api;
    +    }
    +
    +    domready(function () {
    +      autoReplace();
    +
    +      observe({
    +        treeCallback: onTree,
    +        nodeCallback: onNode,
    +        pseudoElementsCallback: searchPseudoElements
    +      });
    +    });
    +  }
    +
    +  namespace.hooks = _extends({}, namespace.hooks, {
    +
    +    addPack: function addPack(prefix, icons) {
    +      namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, icons);
    +
    +      build();
    +      autoReplace();
    +    },
    +
    +    addShims: function addShims(shims) {
    +      var _namespace$shims;
    +
    +      (_namespace$shims = namespace.shims).push.apply(_namespace$shims, toConsumableArray(shims));
    +
    +      build();
    +      autoReplace();
    +    }
    +  });
    +}
    +
    +bunker(bootstrap);
    +
    +}());
    diff --git a/htdocs/theme/common/fontawesome-5/js/all.min.js b/htdocs/theme/common/fontawesome-5/js/all.min.js
    new file mode 100644
    index 00000000000..15e69e9ba70
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/all.min.js
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +!function(){"use strict";var c={};try{"undefined"!=typeof window&&(c=window)}catch(c){}var l=(c.navigator||{}).userAgent,h=void 0===l?"":l,z=c,v=(~h.indexOf("MSIE")||h.indexOf("Trident/"),"___FONT_AWESOME___"),m=function(){try{return!0}catch(c){return!1}}(),s=[1,2,3,4,5,6,7,8,9,10],e=s.concat([11,12,13,14,15,16,17,18,19,20]);["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter"].concat(s.map(function(c){return c+"x"})).concat(e.map(function(c){return"w-"+c}));var a=z||{};a[v]||(a[v]={}),a[v].styles||(a[v].styles={}),a[v].hooks||(a[v].hooks={}),a[v].shims||(a[v].shims=[]);var t=a[v],M=Object.assign||function(c){for(var l=1;l<arguments.length;l++){var h=arguments[l];for(var z in h)Object.prototype.hasOwnProperty.call(h,z)&&(c[z]=h[z])}return c};var f={"500px":[448,512,[],"f26e","M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"],"accessible-icon":[448,512,[],"f368","M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"],accusoft:[640,512,[],"f369","M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2.7 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2 23.4-2.4 1.3-114.6 47.7-117.8 48.9-10.1 4-17.5 6.8-30.8-9.3m114.7-5.6s-115 50.4-117.5 51.6c-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2-2.3-.3-24.6-4.7-38-7.2m-326-181.3s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3v-1l-51.2-65.8"],"acquisitions-incorporated":[344,512,[],"f6af","M344 0c-.81 5.47-1.63 10.79-2.39 16.12-1.39 9.74-2.9 19.48-4.05 29.25-.35 2.96-1.21 4.32-4.3 4.33-20.61.11-41.21.14-61.82.53-18.76.35-37.58.28-56.23 2-13.42 1.24-23.28 12.67-18.88 26.64 8.55 27.11 27.65 69.1 36.37 89.45 65.72 154.14 61.43 156.99 84 158.56 6.67.46 13.4.07 20.43.07 1.39 9.4 2.66 18.04 4.05 27.51H225.17v-27c10.33 0 20.36-.12 30.38.06 3.52.06 5.05-.63 3.44-4.37-4.44-10.29-8.77-20.63-13.25-30.9-1.62-3.72-4.06-4.78-8.4-3.52-12.32 3.59-24.79 6.69-37.26 9.69-4.25 1.02-5.93 2.77-5.86 7.46.85 57.47.95 127.53 1 129.12.4 12.54 8.75 21.41 21.03 23.07.89.12 12.89 2.72 112.68 2.56 8.25-.01 8.41-.17 9.57 7.56 2.15 14.34 4.14 28.7 6.26 43.53-367.75 0-153.93.61-337.09 0-3.95-.01-6.08-.69-5.28-5.74 2.04-12.86 3.5-25.82 4.97-38.76.55-4.81 2.29-6.81 7.63-6.77 118.09.99 114.93.35 121.43-2.39 9.42-3.98 14.98-12.85 14.95-23.07-.12-42.93-.33-85.86-.25-128.79.01-3.87-1.16-5.99-4.56-6.84-15.64-3.92-31.31-7.71-47.58-11.7-5.23 12.27-10.39 24.37-15.66 36.7 1.83 3.35 28.38 2.93 35.28 2.93v27.64H4.34c1.03-8.61 1.77-16.81 3.23-24.88.25-1.41 3.53-3.14 5.47-3.22 8.46-.35 16.95-.29 25.43-.09 3.99.09 5.92-1.04 7.61-5.16 16.63-40.7 13.51-31.17 67.31-160.97 31.53-76.09 33.06-76.02 32.64-87.43-.69-18.56-25.37-22.26-37.65-22.11-30.04.38-38.45-.47-101.84-.47C-.62 6.11 2.37 18.54.16 5.32-.55 1.08 1.19.03 4.8.02m113.08 247.19c2.3 1.15 3.97 2.29 5.82 2.87 13.29 4.21 26.64 8.24 39.93 12.46 6.14 1.95 11.98 2.12 18.3.05 13.02-4.28 26.29-7.81 39.43-11.73 1.46-.44 2.74-1.44 3.93-2.09-6.71-17.37-13.12-34.15-19.67-50.88-8.88-22.67-17.63-60.32-26.98-82.81-1.53-.78-1.91 2.36-9.43 0-17.11 44.05-34.14 87.88-51.33 132.13z"],adn:[496,512,[],"f170","M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"],adversal:[512,512,[],"f36a","M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"],affiliatetheme:[512,512,[],"f36b","M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"],algolia:[448,512,[],"f36c","M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z"],alipay:[448,512,[],"f642","M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"],amazon:[448,512,[],"f270","M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"],"amazon-pay":[611,512,[],"f42c","M0 325.2c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.7 20.4 83.2 35.6 127.4 46.3 20.9 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.4-6.7 110.9-20.8 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-2.8 2.8-6.3 5.1-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.6 7.9-49.6 13.8-75.1 17.6-17.6 2.6-35.4 4.4-53.2 4.8-.8 0-1.7.2-2.5.3H294c-.8-.1-1.7-.3-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.7-33.7-2.6-50.4-5.3-27.4-4.5-54.2-11.4-80.4-20.9-54.1-19.6-102.6-48.6-145.6-87-1.8-1.6-3-3.8-4.4-5.7v-2zM158 65c-1.4.2-2.9.4-4.3.6-14 1.7-26.6 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.5-.4-1-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6H87.8c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3V215c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zm-47.4 41.9c0-1.5.4-2.4 1.7-3.3 13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-1.2-.9-1.7-1.7-1.7-3.3.1-14.1 0-28.1 0-42.2 0-14 .1-28 0-42.1zM316.3 65c-1 .1-2 .3-2.9.4-9.8.5-19.4 1.7-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9 0 .4-.1.9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.5-21.1-4.3-32-4.9-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4.4-.4.9-.7 1.6-1.1.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0 2.7-.1 4.5-1.9 4.8-4.7.1-.9.1-1.9.1-2.8v-106c0-4.3-.2-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7c0 1.3-.4 2.2-1.5 3-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8-6.3-2.5-10.4-6.9-12.4-13.3s-2-13-.1-19.4c2.5-8.3 8.4-13 16.4-15.6 8.1-2.6 16.5-3 24.8-2.2 8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3-.1 4.7-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3-6.8-2.3-13.9-3.3-21-3.9-13.1-1.1-26.2-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 1-2.8 2.1-3.7 3.5-.7 1.1-.9 2.8-.5 4 .4 1.5 2.1 1.9 3.6 1.8.7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.8.3 9.7 1.4 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.7-.4 3.6-1.3 4.8-2.5 4.4-4.3 8.9-8.6 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM479.1 198.9c-12.9-35.7-25.8-71.5-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5.5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97.1 59.1 145.5 1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5.1 1.4-10.2 1.6-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9.1 5.5 2 8 7.4 8.9 5.6 1 11.3 1.9 16.9 2 17.1.4 30.7-6.5 39.5-21.4 3.5-5.9 6.7-12.1 9.2-18.4 23.7-59.8 47.1-119.7 70.6-179.6.7-1.8 1.3-3.6 1.6-5.5.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-3.7 0-6.3 1.6-7.7 5.2-.5 1.4-1.1 2.7-1.6 4.1-11.6 33.3-23.2 66.6-34.8 100-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"],amilia:[448,512,[],"f36d","M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm-87.9 327.7c0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5V380c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7"],android:[448,512,[],"f17b","M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z"],angellist:[448,512,[],"f209","M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"],angrycreative:[640,512,[],"f36e","M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"],angular:[415,512,[],"f420","M169.7 268.1h76.2l-38.1-91.6-38.1 91.6zM207.8 32L0 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7L207.8 32zM338 373.8h-48.6l-26.2-65.4H152.6l-26.2 65.4H77.7L207.8 81.5 338 373.8z"],"app-store":[512,512,[],"f36f","M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z"],"app-store-ios":[448,512,[],"f370","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"],apper:[640,512,[],"f371","M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z"],apple:[376,512,[],"f179","M314.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C59.3 141.2 0 184.8 0 273.5c0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"],"apple-pay":[640,512,[],"f415","M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z"],asymmetrik:[576,512,[],"f372","M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"],audible:[640,512,[],"f373","M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z"],autoprefixer:[640,512,[],"f41c","M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z"],avianex:[512,512,[],"f374","M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"],aviato:[640,512,[],"f421","M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"],aws:[640,512,[],"f375","M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z"],bandcamp:[496,512,[],"f2d5","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z"],behance:[576,512,[],"f1b4","M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z"],"behance-square":[448,512,[],"f1b5","M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z"],bimobject:[448,512,[],"f378","M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z"],bitbucket:[512,512,[],"f171","M23.1 32C14.2 31.9 7 38.9 6.9 47.8c0 .9.1 1.8.2 2.8L74.9 462c1.7 10.4 10.7 18 21.2 18.1h325.1c7.9.1 14.7-5.6 16-13.4l67.8-416c1.4-8.7-4.5-16.9-13.2-18.3-.9-.1-1.8-.2-2.8-.2L23.1 32zm285.3 297.3H204.6l-28.1-146.8h157l-25.1 146.8z"],bitcoin:[512,512,[],"f379","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z"],bity:[496,512,[],"f37a","M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z"],"black-tie":[448,512,[],"f27e","M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z"],blackberry:[512,512,[],"f37b","M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z"],blogger:[448,512,[],"f37c","M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"],"blogger-b":[448,512,[],"f37d","M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"],bluetooth:[448,512,[],"f293","M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"],"bluetooth-b":[320,512,[],"f294","M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"],btc:[384,512,[],"f15a","M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"],buromobelexperte:[448,512,[],"f37f","M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"],buysellads:[448,512,[],"f20d","M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"],"cc-amazon-pay":[576,512,[],"f42d","M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"],"cc-amex":[576,512,[],"f1f3","M576 255.4c-37.9-.2-44.2-.9-54.5 5v-5c-45.3 0-53.5-1.7-64.9 5.2v-5.2h-78.2v5.1c-11.4-6.5-21.4-5.1-75.7-5.1v5.6c-6.3-3.7-14.5-5.6-24.3-5.6h-58c-3.5 3.8-12.5 13.7-15.7 17.2-12.7-14.1-10.5-11.6-15.5-17.2h-83.1v92.3h82c3.3-3.5 12.9-13.9 16.1-17.4 12.7 14.3 10.3 11.7 15.4 17.4h48.9c0-14.7.1-8.3.1-23 11.5.2 24.3-.2 34.3-6.2 0 13.9-.1 17.1-.1 29.2h39.6c0-18.5.1-7.4.1-25.3 6.2 0 7.7 0 9.4.1.1 1.3 0 0 0 25.2 152.8 0 145.9 1.1 156.7-4.5v4.5c34.8 0 54.8 2.2 67.5-6.1V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V228.3h26.6c4.2-10.1 2.2-5.3 6.4-15.3h19.2c4.2 10 2.2 5.2 6.4 15.3h52.9v-11.4c2.2 5 1.1 2.5 5.1 11.4h29.5c2.4-5.5 2.6-5.8 5.1-11.4v11.4h135.5v-25.1c6.4 0 8-.1 9.8.2 0 0-.2 10.9.1 24.8h66.5v-8.9c7.4 5.9 17.4 8.9 29.7 8.9h26.8c4.2-10.1 2.2-5.3 6.4-15.3h19c6.5 15 .2.5 6.6 15.3h52.8v-21.9c11.8 19.7 7.8 12.9 13.2 21.9h41.6v-92h-39.9v18.4c-12.2-20.2-6.3-10.4-11.2-18.4h-43.3v20.6c-6.2-14.6-4.6-10.8-8.8-20.6h-32.4c-.4 0-2.3.2-2.3-.3h-27.6c-12.8 0-23.1 3.2-30.7 9.3v-9.3h-39.9v5.3c-10.8-6.1-20.7-5.1-64.4-5.3-.1 0-11.6-.1-11.6 0h-103c-2.5 6.1-6.8 16.4-12.6 30-2.8-6-11-23.8-13.9-30h-46V157c-7.4-17.4-4.7-11-9-21.1H22.9c-3.4 7.9-13.7 32-23.1 53.9V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48v175.4zm-186.6-80.6c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm-19.9 130.9c9.2 3.3 11 9.5 11 18.4l-.1 13.8h-16.6l.1-11.5c0-11.8-3.8-13.8-14.8-13.8h-17.6l-.1 25.3h-16.6l.1-69.3h39.4c13 0 27.1 2.3 27.1 18.7-.1 7.6-4.2 15.3-11.9 18.4zm-6.3-15.4c0-6.4-5.6-7.4-10.7-7.4h-21v15.6h20.7c5.6 0 11-1.3 11-8.2zm181.7-7.1H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-99.2-.3v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5h38.5zm42.2 40.1h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-78.1-158.7c-17.4-.3-33.2-4.1-33.2 19.7 0 11.8 2.8 19.9 16.1 19.9h7.4l23.5-54.5h24.8l27.9 65.4v-65.4h25.3l29.1 48.1v-48.1h16.9v69H524l-31.2-51.9v51.9h-33.7l-6.6-15.3h-34.3l-6.4 15.3h-19.2c-22.8 0-33-11.8-33-34 0-23.3 10.5-35.3 34-35.3h16.1v15.2zm14.3 24.5h22.8l-11.2-27.6-11.6 27.6zm-72.6-39.6h-16.9v69.3h16.9v-69.3zm-38.1 37.3c9.5 3.3 11 9.2 11 18.4v13.5h-16.6c-.3-14.8 3.6-25.1-14.8-25.1h-18v25.1h-16.4v-69.3l39.1.3c13.3 0 27.4 2 27.4 18.4.1 8-4.3 15.7-11.7 18.7zm-6.7-15.3c0-6.4-5.6-7.4-10.7-7.4h-21v15.3h20.7c5.7 0 11-1.3 11-7.9zm-59.5-7.4v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5h38.9zm-84.6 54.7v-54.2l-24 54.2H124l-24-54.2v54.2H66.2l-6.4-15.3H25.3l-6.4 15.3H1l29.7-69.3h24.5l28.1 65.7v-65.7h27.1l21.7 47 19.7-47h27.6v69.3h-16.8zM53.9 188.8l-11.5-27.6-11.2 27.6h22.7zm253 102.5c0 27.9-30.4 23.3-49.3 23.3l-.1 23.3h-32.2l-20.4-23-21.3 23h-65.4l.1-69.3h66.5l20.5 22.8 21-22.8H279c15.6 0 27.9 5.4 27.9 22.7zm-112.7 11.8l-17.9-20.2h-41.7v12.5h36.3v14.1h-36.3v13.8h40.6l19-20.2zM241 276l-25.3 27.4 25.3 28.1V276zm48.3 15.3c0-6.1-4.6-8.4-10.2-8.4h-21.5v17.6h21.2c5.9 0 10.5-2.8 10.5-9.2z"],"cc-apple-pay":[576,512,[],"f416","M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"],"cc-diners-club":[576,512,[],"f24c","M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"],"cc-discover":[576,512,[],"f1f2","M83 212.1c0 7.9-3.2 15.5-8.9 20.7-4.9 4.4-11.6 6.4-21.9 6.4H48V185h4.2c10.3 0 16.7 1.7 21.9 6.6 5.7 5 8.9 12.6 8.9 20.5zM504.8 184h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8 0-7.9-5.5-12.1-15.6-12.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM428 253h45.3v-13.8H444V217h28.3v-13.8H444V185h29.3v-14H428v82zm-86.2-82l35 84.2h8.6l35.5-84.2h-17.5l-22.2 55.2-21.9-55.2h-17.5zm-83 41.6c0 24.6 19.9 44.6 44.6 44.6 24.6 0 44.6-19.9 44.6-44.6 0-24.6-19.9-44.6-44.6-44.6-24.6 0-44.6 19.9-44.6 44.6zm-68-.5c0 32.5 33.6 52.5 63.3 38.2v-19c-19.3 19.3-46.8 5.8-46.8-19.2 0-23.7 26.7-39.1 46.8-19v-19c-30.2-15-63.3 6.8-63.3 38zm-33.9 28.3c-7.6 0-13.8-3.7-17.5-10.8l-10.3 9.9c17.8 26.1 56.6 18.2 56.6-11.3 0-13.1-5.4-19-23.6-25.6-9.6-3.4-12.3-5.9-12.3-10.3 0-8.7 14.5-14.1 24.9-2.5l8.4-10.8c-19.1-17.1-49.7-8.9-49.7 14.3 0 11.3 5.2 17.2 20.2 22.7 25.7 9.1 14.7 24.4 3.3 24.4zm-57.4-28.3c0-24.1-18-41.1-44.1-41.1H32v82h23.4c30.9 0 44.1-22.4 44.1-40.9zm23.4-41.1h-16v82h16v-82zM544 288c-33.3 20.8-226.4 124.4-416 160h401c8.2 0 15-6.8 15-15V288zm0-35l-25.9-34.5c12.1-2.5 18.7-10.6 18.7-23.2 0-28.5-30.3-24.4-52.9-24.4v82h16v-32.8h2.2l22.2 32.8H544z"],"cc-jcb":[576,512,[],"f24b","M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z"],"cc-mastercard":[576,512,[],"f1f1","M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z"],"cc-paypal":[576,512,[],"f1f4","M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"],"cc-stripe":[576,512,[],"f1f5","M396.9 256.5c0 19.1-8.8 33.4-21.9 33.4-8.3 0-13.3-3-16.8-6.7l-.2-52.8c3.7-4.1 8.8-7 17-7 12.9-.1 21.9 14.5 21.9 33.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM122.2 281.1c0-42.3-54.3-34.7-54.3-50.7 0-5.5 4.6-7.7 12.1-7.7 10.8 0 24.5 3.3 35.3 9.1v-33.4c-11.8-4.7-23.5-6.5-35.3-6.5-28.8 0-48 15-48 40.2 0 39.3 54 32.9 54 49.9 0 6.6-5.7 8.7-13.6 8.7-11.8 0-26.9-4.9-38.9-11.3v33.9c13.2 5.7 26.6 8.1 38.8 8.1 29.6-.2 49.9-14.7 49.9-40.3zm68.9-86.9h-27v-30.8l-34.7 7.4-.2 113.9c0 21 15.8 36.5 36.9 36.5 11.6 0 20.2-2.1 24.9-4.7v-28.9c-4.5 1.8-27 8.3-27-12.6v-50.5h27v-30.3zm73.8 0c-4.7-1.7-21.3-4.8-29.6 10.5l-2.2-10.5h-30.7v124.5h35.5v-84.4c8.4-11 22.6-8.9 27.1-7.4v-32.7zm44.2 0h-35.7v124.5h35.7V194.2zm0-47.3l-35.7 7.6v28.9l35.7-7.6v-28.9zm122.7 108.8c0-41.3-23.5-63.8-48.4-63.8-13.9 0-22.9 6.6-27.8 11.1l-1.8-8.8h-31.3V360l35.5-7.5.1-40.2c5.1 3.7 12.7 9 25.1 9 25.4-.1 48.6-20.5 48.6-65.6zm112.2 1.2c0-36.4-17.6-65.1-51.3-65.1-33.8 0-54.3 28.7-54.3 64.9 0 42.8 24.2 64.5 58.8 64.5 17 0 29.7-3.9 39.4-9.2v-28.6c-9.7 4.9-20.8 7.9-34.9 7.9-13.8 0-26-4.9-27.6-21.5h69.5c.1-2 .4-9.4.4-12.9zm-51.6-36.1c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7z"],"cc-visa":[576,512,[],"f1f0","M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z"],centercode:[512,512,[],"f380","M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"],chrome:[496,512,[],"f268","M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z"],cloudscale:[448,512,[],"f383","M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z"],cloudsmith:[332,512,[],"f384","M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z"],cloudversify:[616,512,[],"f385","M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z"],codepen:[512,512,[],"f1cb","M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"],codiepie:[472,512,[],"f284","M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z"],connectdevelop:[576,512,[],"f20e","M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z"],contao:[512,512,[],"f26d","M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z"],cpanel:[640,512,[],"f388","M52.9 213.7h40l-6.2 23.6c-1.9 6.5-7.4 10.9-14.3 10.9H53.8c-24.9 0-24.7 37.4 0 37.4h11.3c4.2 0 7.6 3.9 6.4 8.3L64.4 320H52c-33.5 0-59-31.4-50.3-65.2 7.3-27 28.3-41.1 51.2-41.1M73.1 320L108 189.9c1.8-6.4 7.2-10.9 14.3-10.9h37c24.1 0 45.4 16.4 51 41.2 6.6 29.1-14.5 65.3-51.7 65.3h-32l6.4-23.8c1.8-6.2 7.3-10.8 14.3-10.8h10.3c12.4 0 20.8-11.7 18.3-22.6-2.1-9.2-9.9-14.8-18.3-14.8h-19.8L112 309.2c-1.9 6.2-7.4 10.7-14.2 10.7l-24.7.1m220.6-69.4c.3-1 1.9-5.3-2.1-5.3h-57.5c-9.7 0-16.6-8.9-14.2-18.5l3.5-13.4h77.9c18.8 0 33.3 17.6 28.5 36.8l-14 51.8c-2.8 10.6-12.2 17.8-23.4 17.8l-57.5-.2c-42.9 0-38.5-63.8.7-63.8H284l-3.5 13.2c-1.9 6.2-7.4 10.8-14.2 10.8h-21.6c-5.3 0-5.3 7.9 0 7.9h34.9c4.6 0 5.1-3.9 5.5-5.3l8.6-31.8m103.1-36.9c34.4 0 59.3 32.3 50.3 65.4l-8.8 33.1c-1.2 4.9-5.7 7.8-10.3 7.8h-19.1c-4.5 0-7.6-4-6.4-8.3l10.6-40c3.3-11.6-5.6-23.4-18.1-23.4h-19.8l-17.2 64c-1.2 4.8-5.6 7.8-10.4 7.8h-18.9c-4.2 0-7.6-3.9-6.4-8.3l26.2-98h48.3M498 251.6l-8 30c-.9 3.3 1.5 6.7 5.1 6.7h73.3l-5.7 21c-1.9 6.2-7.4 10.7-14.2 10.7h-66.7c-20 0-33.3-19-28.3-36.7l10.8-40c4.8-17.6 20.7-29.6 38.6-29.6h47.3c19 0 33.2 17.7 28.3 36.8l-3.2 12c-2.9 11-12.7 17.6-23.2 17.6h-53.4l3.5-13c1.6-6.2 7.2-10.8 14.2-10.8H538c2 0 3.3-1 3.9-3l.7-2.6c.7-2.7-1.3-5.1-3.9-5.1h-32.9c-4.1 0-6.9 2.1-7.8 6zm70.2 68.4l35.6-133.1c1.2-4.7 5.5-7.9 10.4-7.9h18.9c4.5 0 7.7 4 6.5 8.3l-26.5 98.2c-5.1 20.7-24.2 34.5-44.9 34.5"],"creative-commons":[496,512,[],"f25e","M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"],"creative-commons-by":[496,512,[],"f4e7","M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"],"creative-commons-nc":[496,512,[],"f4e8","M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"],"creative-commons-nc-eu":[496,512,[],"f4e9","M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z"],"creative-commons-nc-jp":[496,512,[],"f4ea","M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z"],"creative-commons-nd":[496,512,[],"f4eb","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z"],"creative-commons-pd":[496,512,[],"f4ec","M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"],"creative-commons-pd-alt":[496,512,[],"f4ed","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM135.5 323.3V186h68.2c33.7 0 50.5 15.5 50.5 46.5 0 9-3 46.5-57.1 46.5h-27v44.3h-34.6zm34.1-111.6v41.6h29.2c27.9 0 30-41.6-.9-41.6h-28.3zm93.9 111.6V186h53.2c21.4 0 70 5.2 70 68.6 0 63.5-48.6 68.6-70 68.6h-53.2zm34.1-108.5v79.7h19.9c24 0 34.5-15.3 34.5-39.9 0-42-31.2-39.9-35-39.9l-19.4.1z"],"creative-commons-remix":[496,512,[],"f4ee","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z"],"creative-commons-sa":[496,512,[],"f4ef","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z"],"creative-commons-sampling":[496,512,[],"f4f0","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"],"creative-commons-sampling-plus":[496,512,[],"f4f1","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"],"creative-commons-share":[496,512,[],"f4f2","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"],"creative-commons-zero":[496,512,[],"f4f3","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"],"critical-role":[445,512,[],"f6c9","M224.82 0c.26.15 216.57 124.51 217.12 124.72 3.04 1.18 3.7 3.46 3.7 6.56-.07 83.45-.06 166.9-.01 250.36 0 2.77-.98 4.43-3.38 5.78C420.88 399.41 234.39 505.71 223.32 512h-3C141 466.34 2.08 386.56 1.93 386.48c-1.29-.74-1.96-1.75-1.88-3.24.04-.87-.03-225.94-.05-253.1 0-2.44.89-3.79 2.93-4.93C26.19 112.11 212.2 5.98 223.07 0h1.75zM214.4 20.42l-.22-.16C149.43 57.12 84.69 94 19.95 130.87c.04.12.08.23.13.35 10.19 3.84 20.39 7.69 30.86 11.64-7.71 5.99-8.32 6.03-10.65 5.13-.1-.04-24.17-9.28-26.8-9.99v230.42c.88-1.41 64.07-110.91 64.13-111.01 1.62-2.82 3.03-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 62.99-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13 227.73 0 176.4 0 186.5.03 1.44 0 1.69-.23 1.7-1.64.01-2.96.01-5.92 0-8.88 0-1.34 2.36-.81-18.37-1.01-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1.04 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1-2.27-.66-2.55-4.08.3-4.73 3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9.04 1.1-79.42-.01-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-.97-2-4.84 1.77-4.85 33.67-.03 46.08-1.07 56.06 4.86 7.74 4.61 11.98 11.48 12.51 20.4.88 14.59-6.51 22.35-14.99 32.59-.68.82-.72 1.38-.04 2.22 2.6 3.25 5.05 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1.02-.42 1.01-1.15-.02-3.67.01-7.33-.02-11-.01-1.02.32-1.43 1.41-1.26 12.54 1.91 21.85-.07 23.58-.3 1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62 62.38-.02 125.15-.02 186.71-.02-27.12-47.03-54.11-93.85-81.18-140.81 2.26-.66-.4-.03 6.69-1.39 2.03-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 133.96 77.37 134.06V137.98c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1-.04 95.53-35.85 103.04-38.77C360.69 93.43 295.55 56 230.1 18.4c29.07 50.36 57.95 100.37 86.82 150.39-.09.11-.18.22-.28.33-9.57-.9-10.46-1.6-11.8-3.94-.96-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08 28.83-49.83 57.5-99.42 86.18-149zm51.93 129.92c1.85-.05 3.7-.52 5.54-.85 1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45-.87 1.3-1.88 1.22-2.6-.19-4.96-9.69 6.22-9.66-39.12-12.05-.7-.04-1 .23-.97.93 0 .13 3.72 121.98 3.73 122.11.02.89.52 1.2 1.21 1.51 2.92 1.31 5.96 2.42 8.7 4.05 7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4 1.49-.47 1.95-1.26 1.98-2.66.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23a1361.1 1361.1 0 0 1 3.31-18.03c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73.01 1.78-.08 1.82-1.85.68-27.49.58-22.59.97-29.55.07-1.29-.41-2.17-1.63-2.8-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15-1.66 1.06-2.31 2.33-2.22 4.34.03.59-.11-4.31.98 30.05.03.9.43 1.12 1.24 1.11.1 0 23.01-.09 34.47-.37zM67.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 3.99-.21 4.99-1.16 22.33-1.24 23.15-.1 1.04-.6 1.91-1.63 2.34-4.06 1.7-3.61-4.45-4.01-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17.01 53.63 54.08 50.88 27.24-2.01 19.05-20.19 24.84-20.47 1.98-.1 3.33 1.33 2.98 3.36-1.83 10.85-3.42 18.95-3.45 19.15-1.51 9.18-86.67 22.08-93.35-42.05-2.68-25.87 10.47-53.37 40.3-60.15zm79.99 87.67c-6.5-.03-12.99 0-19.49-.04-1.96-.01-2.78-1.61-2.66-1.79 2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-37.99.23-40.1.03-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-1.98 2.25-4.03 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13 1.22-.12 2.11-.75 2.23-2.12.3-3.42.26 4.73.45-40.58.02-5.65-.34-6.58-3.23-6.83-3.95-.35-4.03-2.26-.69-3.37.12-.04 18.98-.09 19.09-.09.32 0 4.49.53 1.05 3.38-.05.05-.16.03-.24.04-3.61.26-3.94.98-3.96 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49-.04 3.86 3.37-.02 3.4-10.37.08-20.74.03-31.11.07-10.67.04-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 3.99 17.67 4.75-.1 4.73 3.57.83 3.55zm274.97-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31-1.22-.04-2.43-.44-3.63-.73-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19-.38-.98-.94-1.44-2.04-1.44-3.12 0-7.27-.44-14.58.07-.58.04-1.4.55-1.62 1.06-1.58 3.62-3.07 7.29-4.51 10.96-1.27 3.23 7.86 1.32 12.19 2.16 2.97.57 4.53 3.72.66 3.73-8.79.03-17.58.06-26.37.05-2.92 0-3.09-3.15-.74-3.21 2.67-.07 4.74-1.13 5.92-3.47 1.5-2.97 2.8-6.04 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61 1-1.06 2.07-1.05 3.03.04 2.93 3.34 18.4 44.71 23.62 51.92 1.96 2.7 5.74 1.98 6.36 2.01 3.61.13 3.97-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26-.04-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32.01 5.32 2.75-1.21 3.45-1.81.19-2.58 1-2.66 2.83-.07 1.63-.19 38.89.29 41.21.35 1.73 1.73 2.38 3.23 2.43 13.25.43 14.92.44 16.04-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.68 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1.03 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64-.02-1.64 1.52v16.12c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76-.01.21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-1.95 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 5.99 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64-.04.36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3.04.22-3.45 1.1-.19 4.03.54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 8.98-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 21.99 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1.03.1.57 11.89-5.97 12.75-1.6.21-19.38 3.69-32.68-3.39-21.01-11.19-16.74-35.47-6.88-45.33 14.03-14.06 39.91-7.06 42.32-6.47zM288.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-4.97-.42-5 5.46-.01 1.98-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22.03 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-3.96 12.39-5.19 12.4-.1 0-38.08-.18-38.18-.19-1.93-.23-2.06-2.99-.42-3.38 1.99-.48 4.94.4 5.13-2.8.96-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-1.99-3.22.34-3.22 1.47-.02 17.99-.03 23.11-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6.01 3.58 2.61.1 2.53 3.41-.07 3.43-6.48.04-13.7-.02-21.61-.06-3.84-.02-3.38-3.35.04-3.37 4.49-.03 3.24 1.61 3.41-45.54.02-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29-.05 20.19-.41 21.17.21 1.13.72 1.87 1.65-.42 2.86-.99.52-3.86-.28-4.15 2.47-.02.21-.82 1.63-.07 43.8zm-36.91 274.27c1.14.66 2.12.66 3.26 0 16.99-9.79 181.97-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38-.02 2.58-.62 5.22-1.36 7.71-.55 1.83.38-.5-13.5 32.23-.73 1.72-1.04 2.21-1.97-.08-4.19-10.34-8.28-20.72-12.57-31.01-1.46-3.5-2.24-7-2-10.79.16-2.46.8-16.12 1.51-48.02.04-1.95.01-1.96-1.96-1.96h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3.03 11.54 1.17 21.04 3.74 25.64-7.32 6.01-14.46 2.66-34.41-12.48-38.84-2.01-.59-15.96-2.76-15.94 1.51.05 8.01.01 11.58.02 41.62zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2.02 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8 8.43 3.47 17.54.6 22.39-7.07 4.91-7.76 6.84-29.47-5.43-38.96-.12.05-.24.09-.36.12zM222.83 94.78c-9.83-.03-9.73 14.75-.07 14.87 9.59.11 10.1-14.84.07-14.87zm-80.15 103.87c.02 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-10.99 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.31 6.4c-2.03-5.28-4-10.39-6.1-15.84-2.16 5.48-4.16 10.57-6.23 15.84h12.33z"],css3:[512,512,[],"f13c","M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"],"css3-alt":[384,512,[],"f38b","M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"],cuttlefish:[440,512,[],"f38c","M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"],"d-and-d":[576,512,[],"f38d","M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"],dashcube:[448,512,[],"f210","M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"],delicious:[448,512,[],"f1a5","M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192v176z"],deploydog:[512,512,[],"f38e","M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"],deskpro:[480,512,[],"f38f","M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"],dev:[448,512,[],"f6cc","M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"],deviantart:[320,512,[],"f1bd","M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z"],digg:[512,512,[],"f1a6","M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z"],"digital-ocean":[512,512,[],"f391","M256 504v-96.1c101.8 0 180.8-100.9 141.7-208-14.3-39.6-46.1-71.4-85.8-85.7-107.1-38.8-208.1 39.9-208.1 141.7H8C8 93.7 164.9-32.8 335 20.3c74.2 23.3 133.6 82.4 156.6 156.6C544.8 347.2 418.6 504 256 504zm.3-191.4h-95.6v95.6h95.6v-95.6zm-95.6 95.6H87v73.6h73.7v-73.6zM87 346.6H25.4v61.6H87v-61.6z"],discord:[448,512,[],"f392","M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z"],discourse:[448,512,[],"f393","M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"],dochub:[416,512,[],"f394","M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z"],docker:[640,512,[],"f395","M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"],draft2digital:[480,512,[],"f396","M369.9 425.4V371l47.1 27.2-47.1 27.2zM82.4 380.6c25.5-27.3 97.7-104.7 150.9-170 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7H82.4zm51.8-219.2c0 12.4-10 22.4-22.4 22.4-12.4 0-22.4-10-22.4-22.4 0-12.4 10-22.4 22.4-22.4 12.4 0 22.4 10.1 22.4 22.4M336 315.9v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480l144-81.9-144-82.2z"],dribbble:[512,512,[],"f17d","M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z"],"dribbble-square":[448,512,[],"f397","M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z"],dropbox:[528,512,[],"f16b","M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"],drupal:[448,512,[],"f1a9","M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z"],dyalog:[416,512,[],"f399","M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"],earlybirds:[480,512,[],"f39a","M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"],ebay:[640,512,[],"f4f4","M405.2 263.8c-29.1.9-47.2 6.2-47.2 25.3 0 12.4 9.9 25.8 35 25.8 33.7 0 51.6-18.4 51.6-48.4v-3.3c-11.8 0-26.3.1-39.4.6m71.5 39.7c0 9.3.3 18.6 1 26.8h-29.8c-.8-6.9-1.1-13.6-1.1-20.2-16.1 19.8-35.3 25.5-61.9 25.5-39.5 0-60.6-20.9-60.6-45 0-35 28.8-47.3 78.6-48.4 13.7-.3 29-.4 41.7-.4v-3.4c0-23.4-15-33-41-33-19.3 0-33.6 8-35 21.8h-33.7c3.6-34.4 39.7-43.1 71.5-43.1 38.1 0 70.3 13.5 70.3 53.8v65.6zm-349-56.8c-2.3-54.7-87.5-56.6-94.4 0h94.4zm-95 21.4c3.5 58.3 79.2 57.4 91.2 21.6H157c-6.4 34.4-43 46.1-74.4 46.1-57.2 0-82.5-31.5-82.5-74 0-46.8 26.2-77.6 83-77.6 45.3 0 78.4 23.7 78.4 75.4v8.5H32.7zm211 45.7c29.8 0 50.2-21.5 50.2-53.8 0-32.4-20.4-53.8-50.2-53.8-29.6 0-50.2 21.4-50.2 53.8 0 32.3 20.6 53.8 50.2 53.8m-82.2-186h32.1v80.6c15.7-18.7 37.4-24.2 58.7-24.2 35.7 0 75.4 24.1 75.4 76.2 0 43.6-31.5 75.4-76 75.4-23.3 0-45.1-8.3-58.7-24.9 0 6.6-.4 13.2-1.1 19.5h-31.5c.5-10.2 1.1-22.8 1.1-33.1V127.8zM640 189.5l-99.2 194.8h-35.9l28.5-54.1-74.6-140.7h37.5l54.9 109.9L606 189.5h34z"],edge:[512,512,[],"f282","M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z"],elementor:[448,512,[],"f430","M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z"],ello:[496,512,[],"f5f1","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"],ember:[640,512,[],"f423","M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1c-1.9-43.8-44.2-27.6-49-24-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-18.3-11-32.8 12.1-32.8 12.1s54.5-60.7 42.5-112c-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5c-17.2-.8-28.5 18.8-28.5 18.8s-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7c11.6 2.1 16.4 1 36.5-47.9 11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2c6.7-23.6 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7c8.6 15.6 30.9 5.3 30.9 5.3s15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6c12.4 5.1 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"],empire:[496,512,[],"f1d1","M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z"],envira:[448,512,[],"f299","M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"],erlang:[640,512,[],"f39d","M21.7 246.4c-.1 86.8 29 159.5 78.7 212.1H0v-405h87.2c-41.5 50.2-65.6 116.2-65.5 192.9zM640 53.6h-83.6c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405zm-80.8 405s0-.1 0 0h-.2.2zm-3.1-405h.3l-.1-.1-.2.1zm-230.7 9.6c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2z"],ethereum:[320,512,[],"f42e","M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z"],etsy:[384,512,[],"f2d7","M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z"],expeditedssl:[496,512,[],"f23e","M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z"],facebook:[448,512,[],"f09a","M448 56.7v398.5c0 13.7-11.1 24.7-24.7 24.7H309.1V306.5h58.2l8.7-67.6h-67v-43.2c0-19.6 5.4-32.9 33.5-32.9h35.8v-60.5c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9h-58.4v67.6h58.4V480H24.7C11.1 480 0 468.9 0 455.3V56.7C0 43.1 11.1 32 24.7 32h398.5c13.7 0 24.8 11.1 24.8 24.7z"],"facebook-f":[264,512,[],"f39e","M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"],"facebook-messenger":[448,512,[],"f39f","M224 32C15.9 32-77.5 278 84.6 400.6V480l75.7-42c142.2 39.8 285.4-59.9 285.4-198.7C445.8 124.8 346.5 32 224 32zm23.4 278.1L190 250.5 79.6 311.6l121.1-128.5 57.4 59.6 110.4-61.1-121.1 128.5z"],"facebook-square":[448,512,[],"f082","M448 80v352c0 26.5-21.5 48-48 48h-85.3V302.8h60.6l8.7-67.6h-69.3V192c0-19.6 5.4-32.9 33.5-32.9H384V98.7c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9H184v67.6h60.9V480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"],"fantasy-flight-games":[512,512,[],"f6dc","M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z"],firefox:[480,512,[],"f269","M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v.1c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5v-.2c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1-.1.2-.2.3-.3.4-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6z"],"first-order":[448,512,[],"f2b0","M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"],"first-order-alt":[496,512,[],"f50a","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"],firstdraft:[384,512,[],"f3a1","M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"],flickr:[448,512,[],"f16e","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"],flipboard:[448,512,[],"f44d","M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z"],fly:[384,512,[],"f417","M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"],"font-awesome":[448,512,[],"f2b4","M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z"],"font-awesome-alt":[448,512,[],"f35c","M397.8 67.8c7.8 0 14.3 6.6 14.3 14.3v347.6c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6m0-35.9H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-58.5 139.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1z"],"font-awesome-flag":[448,512,[],"f425","M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z"],"font-awesome-logo-full":[3992,512,["Font Awesome"],"f4e6","M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],fonticons:[448,512,[],"f280","M0 32v448h448V32H0zm167.4 196h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4zM364 414.7H261.3v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm-21.9-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6-21.9 24.2z"],"fonticons-fi":[384,512,[],"f3a2","M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z"],"fort-awesome":[512,512,[],"f286","M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z"],"fort-awesome-alt":[512,512,[],"f3a3","M211.7 241.1v51.7c0 2.1-1.6 3.7-3.7 3.7h-22.2c-2.1 0-3.7-1.6-3.7-3.7v-51.7c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7zm114.5-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm-29.1 263.2c-.9.1-1.7.3-2.6.4-1 .2-2.1.3-3.1.5-.9.1-1.8.3-2.8.4-1 .1-2 .3-3 .4-1 .1-2 .2-2.9.3-1 .1-1.9.2-2.9.3-1 .1-2.1.2-3.1.3-.9.1-1.8.2-2.7.2-1.1.1-2.3.1-3.4.2-.8 0-1.7.1-2.5.1-1.3.1-2.6.1-3.9.1-.7 0-1.4.1-2.1.1-2 0-4 .1-6 .1s-4 0-6-.1c-.7 0-1.4 0-2.1-.1-1.3 0-2.6-.1-3.9-.1-.8 0-1.7-.1-2.5-.1-1.1-.1-2.3-.1-3.4-.2-.9-.1-1.8-.1-2.7-.2-1-.1-2.1-.2-3.1-.3-1-.1-1.9-.2-2.9-.3-1-.1-2-.2-2.9-.3-1-.1-2-.2-3-.4-.9-.1-1.8-.3-2.8-.4-1-.1-2.1-.3-3.1-.5-.9-.1-1.7-.3-2.6-.4-65.6-10.9-122.5-47.7-160-99.4-.2-.2-.3-.5-.5-.7-.8-1.1-1.6-2.2-2.3-3.3-.3-.4-.6-.8-.8-1.2-.7-1.1-1.4-2.1-2.1-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.4-2.1-2-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.3-2.2-2-3.3-.2-.4-.5-.8-.7-1.2-2.4-4-4.6-8.1-6.8-12.2-.1-.2-.2-.3-.3-.5-.6-1.1-1.1-2.2-1.7-3.3-.3-.6-.6-1.1-.8-1.7-.5-1-1-2.1-1.5-3.1-.3-.7-.6-1.3-.9-2-.5-1-.9-2-1.4-3l-.9-2.1c-.4-1-.9-2-1.3-3-.3-.7-.6-1.5-.9-2.2l-1.2-3c-.3-.8-.6-1.5-.9-2.3-.4-1-.8-2-1.1-3-.3-.9-.6-1.8-1-2.8-.6-1.6-1.1-3.3-1.7-4.9-.3-.9-.6-1.8-.9-2.8-.3-.9-.5-1.8-.8-2.7-.3-.9-.6-1.9-.8-2.8-.3-.9-.5-1.8-.8-2.7-.3-1-.5-1.9-.8-2.9-.2-.9-.5-1.8-.7-2.7-.3-1-.5-2-.7-3-.2-.9-.4-1.7-.6-2.6-.2-1.1-.5-2.2-.7-3.2-.2-.8-.3-1.6-.5-2.4-.3-1.3-.5-2.7-.8-4-.1-.6-.2-1.1-.3-1.7l-.9-5.7c-.1-.6-.2-1.3-.3-1.9-.2-1.3-.4-2.6-.5-3.9-.1-.8-.2-1.5-.3-2.3-.1-1.2-.3-2.4-.4-3.6-.1-.8-.2-1.6-.2-2.4-.1-1.2-.2-2.4-.3-3.5-.1-.8-.1-1.6-.2-2.4-.1-1.2-.2-2.4-.2-3.7 0-.8-.1-1.5-.1-2.3-.1-1.3-.1-2.7-.2-4 0-.7 0-1.3-.1-2 0-2-.1-4-.1-6 0-53.5 16.9-103 45.8-143.6 2.3-3.2 4.7-6.4 7.1-9.5 4.9-6.2 10.1-12.3 15.6-18 2.7-2.9 5.5-5.7 8.4-8.4 2.9-2.7 5.8-5.4 8.8-8 4.5-3.9 9.1-7.6 13.9-11.2 1.6-1.2 3.2-2.4 4.8-3.5C140 34.2 171.7 20.1 206 13c16.1-3.3 32.9-5 50-5s33.8 1.7 50 5c34.3 7 66 21.1 93.6 40.7 1.6 1.2 3.2 2.3 4.8 3.5 4.8 3.6 9.4 7.3 13.9 11.2 12 10.4 23 21.9 32.8 34.4 2.5 3.1 4.8 6.3 7.1 9.5C487.1 153 504 202.5 504 256c0 2 0 4-.1 6 0 .7 0 1.3-.1 2 0 1.3-.1 2.7-.2 4 0 .8-.1 1.5-.1 2.3-.1 1.2-.1 2.4-.2.7-.1.8-.1 1.6-.2 2.4-.1 1.2-.2 2.4-.3 3.5-.1.8-.2 1.6-.2 2.4-.1 1.2-.3 2.4-.4 3.6-.1.8-.2 1.5-.3 2.3-.2 1.3-.4 2.6-.5 3.9-.1.6-.2 1.3-.3 1.9l-.9 5.7c-.1.6-.2 1.1-.3 1.7-.2 1.3-.5 2.7-.8 4-.2.8-.3 1.6-.5 2.4-.2 1.1-.5 2.2-.7 3.2-.2.9-.4 1.7-.6 2.6-.2 1-.5 2-.7 3-.2.9-.5 1.8-.7 2.7-.3 1-.5 1.9-.8 2.9-.2.9-.5 1.8-.8 2.7-.3.9-.6 1.9-.8 2.8-.3.9-.5 1.8-.8 2.7-.3.9-.6 1.8-.9 2.8-.5 1.6-1.1 3.3-1.7 4.9-.3.9-.6 1.8-1 2.8-.4 1-.7 2-1.1 3-.3.8-.6 1.5-.9 2.3l-1.2 3c-.3.7-.6 1.5-.9 2.2-.4 1-.8 2-1.3 3l-.9 2.1c-.4 1-.9 2-1.4 3-.3.7-.6 1.3-.9 2-.5 1-1 2.1-1.5 3.1-.3.6-.6 1.1-.8 1.7-.6 1.1-1.1 2.2-1.7 3.3-.1.2-.2.3-.3.5-2.2 4.1-4.4 8.2-6.8 12.2-.2.4-.5.8-.7 1.2-.7 1.1-1.3 2.2-2 3.3-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2 3.2-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2.1 3.2-.3.4-.6.8-.8 1.2-.8 1.1-1.5 2.2-2.3 3.3-.2.2-.3.5-.5.7-37.6 54.7-94.5 91.4-160.1 102.4zm117.3-86.2c13-13 24.2-27.4 33.6-42.9v-71.3c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7V326h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-4.8-6.5-3.7-9.5-3.7v-30.7c6.7-1.6 13.8-2.8 20.8-2.8 8.8 0 16.8 3.5 25.4 3.5 3.7 0 22.4-.9 22.4-6.5V93.4c0-2.1-1.6-3.7-3.7-3.7-4.2 0-12.2 3.5-19.4 3.5-7.9 0-16.9-3.5-26.3-3.5-6.5 0-12.9.9-19.2 2.3v-3.9c4.4-2.1 7.4-6.7 7.4-11.5 0-16.8-25.4-16.8-25.4 0 0 4.8 3 9.5 7.4 11.5v90.2c-3 0-9.5-1.1-9.5 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v144H93.5v-25.8c0-2.1-1.6-3.7-3.7-3.7H67.7c-2.1 0-3.7 1.6-3.7 3.7v71.3c9.4 15.5 20.6 29.9 33.6 42.9 20.6 20.6 44.5 36.7 71.2 48 13.9 5.9 28.2 10.3 42.9 13.2v-75.8c0-58.6 88.6-58.6 88.6 0v75.8c14.7-2.9 29-7.4 42.9-13.2 26.7-11.3 50.6-27.4 71.2-48"],forumbee:[448,512,[],"f211","M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"],foursquare:[368,512,[],"f180","M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"],"free-code-camp":[576,512,[],"f2c5","M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z"],freebsd:[448,512,[],"f3a4","M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"],fulcrum:[269,512,[],"f50b","M70.75 164.14l-35.38 43.55L0 164.14l35.38-43.55 35.37 43.55zM119.23 0L98.69 198.18 47.72 256l50.98 57.82L119.23 512V300.89L78.15 256l41.08-44.89V0zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55-35.38 43.55zm-48.48 46.97L191.5 256l-41.08 44.89V512l20.54-198.18L221.94 256l-50.98-57.82L150.42 0v211.11z"],"galactic-republic":[496,512,[],"f50c","M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"],"galactic-senate":[512,512,[],"f50d","M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z"],"get-pocket":[448,512,[],"f265","M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"],gg:[512,512,[],"f260","M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z"],"gg-circle":[512,512,[],"f261","M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z"],git:[448,512,[],"f1d3","M18.8 221.7c0 25.3 16.2 60 41.5 68.5v1c-18.8 8.3-24 50.6 1 65.8v1C34 367 16 384.3 16 414.2c0 51.5 48.8 65.8 91.5 65.8 52 0 90.7-18.7 90.7-76 0-70.5-101-44.5-101-82.8 0-13.5 7.2-18.7 19.7-21.3 41.5-7.7 67.5-40 67.5-82.2 0-7.3-1.5-14.2-4-21 6.7-1.5 13.2-3.3 19.7-5.5v-50.5c-17.2 6.8-35.7 11.8-54.5 11.8-53.8-31-126.8 1.3-126.8 69.2zm87.7 163.8c17 0 41.2 3 41.2 25 0 21.8-19.5 26.3-37.7 26.3-17.3 0-43.3-2.7-43.3-25.2.1-22.3 22.1-26.1 39.8-26.1zM103.3 256c-22 0-31.3-13-31.3-33.8 0-49.3 61-48.8 61-.5 0 20.3-8 34.3-29.7 34.3zM432 305.5v49c-13.3 7.3-30.5 9.8-45.5 9.8-53.5 0-59.8-42.2-59.8-85.7v-87.7h.5v-1c-7 0-7.3-1.6-24 1v-47.5h24c0-22.3.3-31-1.5-41.2h56.7c-2 13.8-1.5 27.5-1.5 41.2h51v47.5s-19.3-1-51-1V281c0 14.8 3.3 32.8 21.8 32.8 9.8 0 21.3-2.8 29.3-8.3zM286 68.7c0 18.7-14.5 36.2-33.8 36.2-19.8 0-34.5-17.2-34.5-36.2 0-19.3 14.5-36.7 34.5-36.7C272 32 286 50 286 68.7zm-6.2 74.5c-1.8 14.6-1.6 199.8 0 217.8h-55.5c1.6-18.1 1.8-203 0-217.8h55.5z"],"git-square":[448,512,[],"f1d2","M140.1 348.5c12.1 0 29.5 2.1 29.5 17.9 0 15.5-13.9 18.8-27 18.8-12.3 0-30.9-2-30.9-18s15.7-18.7 28.4-18.7zm-24.7-116.6c0 14.8 6.6 24.1 22.3 24.1 15.5 0 21.2-10 21.2-24.5.1-34.4-43.5-34.8-43.5.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-241 93.7c-12.3 4.8-25.5 8.4-38.9 8.4-38.5-22.1-90.7.9-90.7 49.5 0 18 11.6 42.9 29.6 48.9v.7c-13.4 5.9-17.1 36.1.7 47v.7c-19.5 6.4-32.3 18.8-32.3 40.2 0 36.8 34.8 47 65.4 47 37.1 0 64.8-13.4 64.8-54.3 0-50.4-72.1-31.8-72.1-59.1 0-9.6 5.2-13.4 14.1-15.2 29.6-5.5 48.2-28.6 48.2-58.7 0-5.2-1.1-10.2-2.9-15 4.8-1.1 9.5-2.3 14.1-3.9v-36.2zm56.8 1.8h-39.6c1.3 10.6 1.1 142.6 0 155.5h39.6c-1.1-12.8-1.2-145.1 0-155.5zm4.5-53.3c0-13.4-10-26.2-24.1-26.2-14.3 0-24.6 12.5-24.6 26.2 0 13.6 10.5 25.9 24.6 25.9 13.7 0 24.1-12.5 24.1-25.9zm104.3 53.3h-36.4c0-9.8-.4-19.6 1.1-29.5h-40.5c1.3 7.3 1.1 13.6 1.1 29.5h-17.1v33.9c11.9-1.9 12.1-.7 17.1-.7v.7h-.4v62.7c0 31.1 4.5 61.2 42.7 61.2 10.7 0 23-1.8 32.5-7v-35c-5.7 3.9-13.9 5.9-20.9 5.9-13.2 0-15.5-12.9-15.5-23.4v-65.2c22.7 0 36.4.7 36.4.7v-33.8z"],github:[496,512,[],"f09b","M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"],"github-alt":[480,512,[],"f113","M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"],"github-square":[448,512,[],"f092","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z"],gitkraken:[592,512,[],"f3a6","M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z"],gitlab:[512,512,[],"f296","M29.782 199.732L256 493.714 8.074 309.699c-6.856-5.142-9.712-13.996-7.141-21.993l28.849-87.974zm75.405-174.806c-3.142-8.854-15.709-8.854-18.851 0L29.782 199.732h131.961L105.187 24.926zm56.556 174.806L256 493.714l94.257-293.982H161.743zm349.324 87.974l-28.849-87.974L256 493.714l247.926-184.015c6.855-5.142 9.711-13.996 7.141-21.993zm-85.404-262.78c-3.142-8.854-15.709-8.854-18.851 0l-56.555 174.806h131.961L425.663 24.926z"],gitter:[384,512,[],"f426","M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"],glide:[448,512,[],"f2a5","M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z"],"glide-g":[448,512,[],"f2a6","M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"],gofore:[400,512,[],"f3a7","M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z"],goodreads:[448,512,[],"f3a8","M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"],"goodreads-g":[384,512,[],"f3a9","M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"],google:[488,512,[],"f1a0","M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"],"google-drive":[512,512,[],"f3aa","M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"],"google-play":[512,512,[],"f3ab","M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"],"google-plus":[496,512,[],"f2b3","M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z"],"google-plus-g":[640,512,[],"f0d5","M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"],"google-plus-square":[448,512,[],"f0d4","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z"],"google-wallet":[448,512,[],"f1ee","M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"],gratipay:[496,512,[],"f184","M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z"],grav:[512,512,[],"f2d6","M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z"],gripfire:[384,512,[],"f3ac","M171.8 503.8c0-5.3 4.8-12.2 4.8-22.3 0-15.2-13-39.9-78.1-86.6C64.2 365.8 32 336.4 32 286.6 32 171.9 179.1 110.1 179.1 18c0-3.3-.2-6.7-.6-10 5.1 2.4 39.1 43.3 39.1 90.4 0 80.5-105.1 129.2-105.1 203 0 26.9 16.6 47.2 32.6 69.5 22.5 30.2 44.2 56.9 44.2 86.5-.1 14.5-4.4 29.7-17.5 46.4zm146-241.4c1.5 8.4 2.2 16.6 2.2 24.6 0 51.8-29.4 97.5-67.3 136.8-1 1-2.2 2.4-3.2 2.4-3.6 0-35.5-41.6-35.5-53.2 0 0 41.8-55.7 41.8-96.9 0-10.8-2.7-21.7-9.1-33.4-1.5 32.3-55.7 87.7-58.1 87.7-2.7 0-17.9-22-17.9-42.1 0-5.3 1-10.7 3.2-15.8 2.4-5.5 56.6-72 56.6-116.7 0-6.2-1-12-3.4-17.1l-4-7.2c16.7 6.5 82.6 64.1 94.7 130.9"],grunt:[384,512,[],"f3ad","M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm79.2 233.7c2.2 2.3 1.5 5.3.9 6.8-1.1 2.7-5.5 11.6-13 19.8-2.7 2.9-6.6 4.6-11 4.6-4.3 0-8.7-1.6-11.8-4.3-2.3-2.1-10.2-9.5-13.7-18.6-1.3-3.4-1-6.1.9-8.1 1.3-1.3 4-2.9 9.5-2.9H160c4.1 0 7 .9 8.8 2.7zm62.9-187.9c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm17.8-8.8c7.5-11.4 25.4-26 44.9-37 3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6-.1.1 0 0 0 0zM263 421.4c1.9 1.9 2.2 4.6.9 7.9-3.5 8.9-11.4 16.1-13.7 18.1-3.1 2.6-7.4 4.2-11.8 4.2s-8.3-1.6-11-4.5c-7.5-8-12-16.7-13-19.3-.6-1.5-1.3-4.4.9-6.7 1.7-1.8 4.7-2.7 8.9-2.7h29.4c5.4.1 8.1 1.7 9.4 3zm-98.3-251.5c9.9 6 18.8 8.1 27.3 8.3 8.5-.2 17.4-2.3 27.3-8.3 0 0-14.5 17.7-27.2 17.8h-.2c-12.7-.2-27.2-17.8-27.2-17.8zm184.5 147.4c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59z"],gulp:[256,512,[],"f3ae","M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z"],"hacker-news":[448,512,[],"f1d4","M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"],"hacker-news-square":[448,512,[],"f3af","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"],hackerrank:[464,512,[],"f5f7","M453.5 128C439.01 103.05 261.13 0 232.16 0 203.2 0 25.25 102.79 10.84 128c-14.41 25.21-14.49 230.8 0 256.01C25.33 409.21 203.22 512 232.16 512s206.85-102.92 221.33-128c14.48-25.08 14.49-231.05.01-256zM292.13 414.22c-3.96 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32.04-2.02-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 5.96-5.74 5.94-10.13-.03-20.27-.11-30.41-.08-4.1.01-5.87-1.53-5.74-6.11.92-33.44 2.96-84.02-.15-212.67v-3.17c-9.67-.35-16.38-.96-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69 3.96 0 41.17 35.78 38.27 38.69-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2.03 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46.02 4.57 1.72 4.5 5.38-3.65 191.29-.66 177.94-.66 210.34 8.87.35 16.82.96 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z"],hips:[640,512,[],"f452","M0 80.2c0-1.8.9-2.7 2.7-2.7h40.9c1.9 0 2.8.9 2.8 2.7v81.2c15.2-7.7 31.7-11.5 49.8-11.4 24 .1 44.2 6.2 60.3 18 18.7 13.5 28 31.9 28 55.3v136.1c0 1.9-.9 2.8-2.7 2.8h-27.3c-9.1 0-16.4-7.3-16.4-16.3V223.3c0-.9 2.7-27-45.8-27-48.6 0-45.8 26.2-45.8 27v136.1c0 1.9-.9 2.8-2.8 2.8h-41c-1.8 0-2.7-.9-2.7-2.8V80.2zm497.7 221.5c13.7 10.2 34.1 19.1 58.4 19.1 23.3 0 32.8-4.5 36.5-13.6 3-7.9-.6-16.1-12.2-21.2l-53.6-23.5c-21.4-9.4-33.8-24-37.2-43.6-5.7-33.7 22.2-53.3 22.7-53.7 13.2-9.6 32-15.4 58.5-15.4 19 0 37.4 3.3 55.1 9.9 1.3.5 1.9 1.3 1.9 2.6V207c0 2.1-2.3 3.4-4 2.4-39.7-20.7-76.6-12.3-84-6.8-6.6 4.9-6 12.5 2.6 16.1L600 244c16.5 7.1 28.1 18.4 34.9 34.1 5.5 12.6 6.6 25.6 3.1 39.1-9.6 36.9-44.9 45.5-45.6 45.8-10.5 3.1-23.6 4.3-36.3 4.3-16.6 0-32.6-2.7-48.2-8.2-9.7-3.4-14.6-10.3-14.6-20.7V304c0-2.1 2.3-3.7 4.4-2.3zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zm-124.6 38.7c0 1.9-.9 2.8-2.8 2.8h-40.9c-1.6 0-2.7-1.4-2.7-2.8V157.6c0-1.4 1.1-2.8 2.7-2.8h40.9c1.9 0 2.8.9 2.8 2.8v201.8M228.3 72.5c15.9 0 28.9 12.7 28.9 28.9 0 15.8-12.7 28.9-28.9 28.9s-28.9-13.3-28.9-28.9c.1-16 13-28.9 28.9-28.9"],"hire-a-helper":[512,512,[],"f3b0","M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"],hooli:[640,512,[],"f427","M508.4 352h57.9V156.7L508.4 184v168zm73.7-110.5V352H640V241.5h-57.9zm-250.7-8.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.9 110.9v-31c-48.8-54.6-39-76.1-35.3-79.2 13.5-11.4 37.5-8 64.4 2.1L65.2 184v63.3c13.1 14.7 30.5 31.5 53.5 50.4l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zm-39.7 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm185.7-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm173.5-73c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8v16zm-21.4 0v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.5-21.7-38.5-31.5V352h57.9zm59.7.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3v5.3l-19.4.8z"],hornbill:[509,512,[],"f592","M75.37 370.3c2.14 15.83-5.77 31.98-20.94 39.29-18.85 9.1-41.55 1.17-50.68-17.68-9.08-18.83-1.13-41.58 17.7-50.65 7.05-3.4 14.63-4.42 21.85-3.38-78.28-111.35 52-190.53 52-190.53-5.86 43.04-8.24 91.16-8.24 91.16-67.31 41.45.92 64.06 39.81 72.87 19.77 53.62 71.18 91.94 131.66 91.94 1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zM183.38 42.6c.89-7-.1-14.33-3.39-21.15-9.1-18.84-31.82-26.78-50.66-17.69-18.86 9.1-26.8 31.83-17.69 50.68 6.98 14.47 22.02 22.42 37.18 21.23-22.55 29.91-53.83 89.57-52.42 190.03l21.84-.15c-.02-.9-.14-1.77-.14-2.68 0-58.95 36.37-109.33 87.85-130.16 8.01-37.75 30.74-114.3 73.84-44.29 0 0 48.14 2.38 91.18 8.24 0-.01-77.84-128.03-187.59-54.06zm304.18 134.17c18.84-9.09 26.81-31.81 17.7-50.65-9.1-18.85-31.83-26.77-50.67-17.69-15.27 7.37-23.19 23.69-20.87 39.64-31.71-21.94-89.84-49.05-183.45-47.74l.14 22.5c2.7-.15 5.39-.41 8.14-.41 59.3 0 109.9 36.8 130.49 88.76 39.1 9.02 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 48.96-194.61 6.43.5 13.07-.49 19.31-3.5zM373.05 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15 0 60.27-38.05 111.55-91.39 131.45-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 50.97.31 4.72 1.45 9.45 3.64 13.97 9.06 18.89 31.8 26.78 50.64 17.71 18.86-9.1 26.79-31.83 17.7-50.65-6.56-13.62-20.26-21.43-34.45-21.35z"],hotjar:[448,512,[],"f3b1","M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z"],houzz:[414,512,[],"f27c","M258.9 330.7H154.3V480H0V32h109.5v104.5l305.1 85.6V480H258.9V330.7z"],html5:[384,512,[],"f13b","M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"],hubspot:[512,512,[],"f3b2","M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"],imdb:[448,512,[],"f2d8","M350.5 288.7c0 5.4 1.6 14.4-6.2 14.4-1.6 0-3-.8-3.8-2.4-2.2-5.1-1.1-44.1-1.1-44.7 0-3.8-1.1-12.7 4.9-12.7 7.3 0 6.2 7.3 6.2 12.7v32.7zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4v-49.3zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM21.3 228.8c-.1.1-.2.3-.3.4h.3v-.4zM97 192H64v127.8h33V192zm113.3 0h-43.1l-7.6 59.9c-2.7-20-5.4-40.1-8.7-59.9h-42.8v127.8h29v-84.5l12.2 84.5h20.6l11.6-86.4v86.4h28.7V192zm86.3 45.3c0-8.1.3-16.8-1.4-24.4-4.3-22.5-31.4-20.9-49-20.9h-24.6v127.8c86.1.1 75 6 75-82.5zm85.9 17.3c0-17.3-.8-30.1-22.2-30.1-8.9 0-14.9 2.7-20.9 9.2V192h-31.7v127.8h29.8l1.9-8.1c5.7 6.8 11.9 9.8 20.9 9.8 19.8 0 22.2-15.2 22.2-30.9v-36z"],instagram:[448,512,[],"f16d","M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"],"internet-explorer":[512,512,[],"f26b","M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"],ioxhost:[640,512,[],"f208","M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"],itunes:[448,512,[],"f3b4","M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z"],"itunes-note":[384,512,[],"f3b5","M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z"],java:[377,512,[],"f4e4","M121.6 396s-19.6 11.4 13.9 15.2c40.6 4.6 61.3 4 106-4.5 0 0 11.8 7.4 28.2 13.8C169.5 463.4 42.9 418 121.6 396m-12.2-56.1s-21.9 16.2 11.6 19.7c43.3 4.5 77.6 4.8 136.8-6.6 0 0 8.2 8.3 21.1 12.8-121.3 35.5-256.3 2.9-169.5-25.9m103.2-95.1c24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3.1 0-175.2 43.8-91.5 140.2m132.6 192.6s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8M131 281.8s-93.1 22.1-33 30.1c25.4 3.4 76 2.6 123.1-1.3 38.5-3.2 77.2-10.2 77.2-10.2s-13.6 5.8-23.4 12.5c-94.5 24.9-277 13.3-224.5-12.1 44.5-21.4 80.6-19 80.6-19m167 93.3c96.1-49.9 51.6-97.9 20.6-91.4-7.6 1.6-11 3-11 3s2.8-4.4 8.2-6.3c61.3-21.6 108.5 63.6-19.8 97.3 0-.1 1.5-1.4 2-2.6M240 0s53.2 53.2-50.5 135c-83.1 65.6-19 103.1 0 145.8-48.5-43.8-84.1-82.3-60.2-118.2C164.4 110.1 261.5 84.5 240 0m-99.5 510.4c92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6"],"jedi-order":[448,512,[],"f50e","M231.89 335.72l31.44-45.89-20.18 55.5 62.56 9.09-62.56 9.08 24.22 47.43s-30.22-31.77-34.49-36.25c1.76 68.78 2.19 85.7 2.19 85.7s154.4-71.65 68.62-230.09c0 0 106.97-118.07 10.09-190.73 0 0 165.5 99.91 60.55 271.46 0 0 86.78-84.77 41.37-170.54 0 0 78.71 111.01-17.16 233.11 0 0 26.24-16.15 49.45-77.71 0 0-16.93 183.26-221.96 185.66v.02h-4.08v-.02C16.93 479.14 0 295.88 0 295.88c23.21 61.56 49.44 77.71 49.44 77.71-95.87-122.11-17.15-233.11-17.15-233.11-45.41 85.78 41.38 170.54 41.38 170.54-104.95-171.56 60.54-271.46 60.54-271.46-96.88 72.66 10.09 190.73 10.09 190.73-85.78 158.44 68.62 230.09 68.62 230.09s.43-16.93 2.19-85.7l-34.48 36.25 24.22-47.43-62.56-9.08 62.56-9.09-20.18-55.5 31.44 45.89c2.25-87.85 7.82-305.82 7.85-306.85l.01-2.43.02 1 .03-1 .01 2.43c.05 1.72 5.61 219.2 7.86 306.85z"],jenkins:[512,512,[],"f3b6","M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"],joget:[496,512,[],"f3b7","M227.5 468.7c-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1M66.1 143.9C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9-55.5-1.4-81.7-20.8-58.5-48.2 23.2-27.4 51.1-40.7 68.9-51.2 17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1m-29.2-18c-71.9 116.6-35.6 269.3 81 341.2 116.6 71.9 269.3 35.6 341.2-80.9 71.9-116.6 35.6-269.4-81-341.2-40.5-25.1-85.5-37-129.9-37C165 8 83.8 49.9 36.9 125.9m244.4 110.4c-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5c10.5-6.4 31.9-14 13.4-24.6-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6"],joomla:[448,512,[],"f1aa","M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"],js:[448,512,[],"f3b8","M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"],"js-square":[448,512,[],"f3b9","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"],jsfiddle:[576,512,[],"f1cc","M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"],kaggle:[291,512,[],"f5fa","M291.72 508.98c-.51 2.01-2.51 3.01-6.01 3.01h-66.92c-4.02 0-7.51-1.75-10.52-5.27L97.74 366.14l-30.82 29.32v109.02c0 5.02-2.51 7.52-7.52 7.52H7.52C2.5 512 0 509.5 0 504.48V7.51C0 2.51 2.5 0 7.52 0H59.4c5.01 0 7.52 2.51 7.52 7.51v306l132.32-133.82c3.51-3.5 7.02-5.26 10.52-5.26h69.18c6.96 0 7.9 7.87 5.26 10.52L144.35 320.26l145.86 181.2"],keybase:[412,512,[],"f4f5","M177.2 430.9c0 9.8-8 17.8-17.8 17.8s-17.8-8-17.8-17.8 8-17.8 17.8-17.8c9.8-.1 17.8 7.9 17.8 17.8zM270 413c-9.8 0-17.8 8-17.8 17.8s8 17.8 17.8 17.8 17.8-8 17.8-17.8-8-17.8-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3c4.8 26.7 15.7 51.3 31.2 72.3H46.1c-9.7-15.8-17.2-33-22.2-51.3L.1 454c0-74.9-5.5-147.6 61.5-215.2 20.2-20.4 43.7-36.2 69.1-46.7-6.8-13.5-9.5-29.2-7.8-46l-19.9-1.2c-17.9-1.1-31.6-16.5-30.6-34.4v-.1L74 84.2c1.1-17.1 15.4-30.6 32.5-30.6 1.3 0-.3-.1 28.2 1.7 13.9.8 21.5 9.8 22.8 11.4 7.1-10.4 14.5-20.5 24.6-34.5l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7C246 92.9 262 107 271 126c.4.9 15.5 29 1.2 62.6 19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM128 122.3c3.2-10 7.7-19.7 13.1-29.4.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6-4.6 0-8.3 3.5-8.6 8.1l-1.6 26.2c-.3 4.7 3.4 8.8 8.1 9.1l23.5 1.4zm25.8 61.8c5.6 9.4 14.1 16.1 22.3 20 0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7-10.3.4-19.7-5.4-23.7-15.3-13.7 21.2-37.2 62.5-17.6 95.1zm82.9 68.4L217 268.6c-1.9 1.6-2.2 4.4-.6 6.3l8.9 10.9c1 1.2 3.8 2.7 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zm118.4 25.7c-16.9-23.7-42.6-46.7-73.4-60.4-7.9-3.5-15-6.1-22.9-8.6-2 2.2-4.1 4.3-6.4 6.2l31.9 39.2c10.4 12.7 8.5 31.5-4.2 41.9-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9-8.6 0-16.6-3.8-22.1-10.5l-8.9-10.9c-6.3-7.8-7.9-17.9-5-26.8-8.2-9.9-8.3-21.3-4.6-30-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zM110.6 107.3l15.6 1 1-15.6-15.6-1-1 15.6z"],keycdn:[512,512,[],"f3ba","M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"],kickstarter:[448,512,[],"f3bb","M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z"],"kickstarter-k":[384,512,[],"f3bc","M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z"],korvue:[446,512,[],"f42f","M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"],laravel:[640,512,[],"f3bd","M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z"],lastfm:[512,512,[],"f202","M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"],"lastfm-square":[448,512,[],"f203","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z"],leanpub:[576,512,[],"f212","M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"],less:[640,512,[],"f41d","M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z"],line:[448,512,[],"f3c0","M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z"],linkedin:[448,512,[],"f08c","M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"],"linkedin-in":[448,512,[],"f0e1","M100.3 448H7.4V148.9h92.9V448zM53.8 108.1C24.1 108.1 0 83.5 0 53.8S24.1 0 53.8 0s53.8 24.1 53.8 53.8-24.1 54.3-53.8 54.3zM448 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448h-.1z"],linode:[448,512,[],"f2b8","M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z"],linux:[448,512,[],"f17c","M196.1 123.6c-.2-1.4 1.9-2.3 3.2-2.9 1.7-.7 3.9-1 5.5-.1.4.2.8.7.6 1.1-.4 1.2-2.4 1-3.5 1.6-1 .5-1.8 1.7-3 1.7-1 .1-2.7-.4-2.8-1.4zm24.7-.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm214.7 310.2c-.5 8.2-6.5 13.8-13.9 18.3-14.9 9-37.3 15.8-50.9 32.2l-2.6-2.2 2.6 2.2c-14.2 16.9-31.7 26.6-48.3 27.9-16.5 1.3-32-6.3-40.3-23v-.1c-1.1-2.1-1.9-4.4-2.5-6.7-21.5 1.2-40.2-5.3-55.1-4.1-22 1.2-35.8 6.5-48.3 6.6-4.8 10.6-14.3 17.6-25.9 20.2-16 3.7-36.1 0-55.9-10.4l1.6-3-1.6 3c-18.5-9.8-42-8.9-59.3-12.5-8.7-1.8-16.3-5-20.1-12.3-3.7-7.3-3-17.3 2.2-31.7 1.7-5.1.4-12.7-.8-20.8-.6-3.9-1.2-7.9-1.2-11.8 0-4.3.7-8.5 2.8-12.4 4.5-8.5 11.8-12.1 18.5-14.5 6.7-2.4 12.8-4 17-8.3 5.2-5.5 10.1-14.4 16.6-20.2-2.6-17.2.2-35.4 6.2-53.3 12.6-37.9 39.2-74.2 58.1-96.7 16.1-22.9 20.8-41.3 22.5-64.7C158 103.4 132.4-.2 234.8 0c80.9.1 76.3 85.4 75.8 131.3-.3 30.1 16.3 50.5 33.4 72 15.2 18 35.1 44.3 46.5 74.4 9.3 24.6 12.9 51.8 3.7 79.1 1.4.5 2.8 1.2 4.1 2 1.4.8 2.7 1.8 4 2.9 6.6 5.6 8.7 14.3 10.5 22.4 1.9 8.1 3.6 15.7 7.2 19.7 11.1 12.4 15.9 21.5 15.5 29.7zM220.8 109.1c3.6.9 8.9 2.4 13 4.4-2.1-12.2 4.5-23.5 11.8-23 8.9.3 13.9 15.5 9.1 27.3-.8 1.9-2.8 3.4-3.9 4.6 6.7 2.3 11 4.1 12.6 4.9 7.9-9.5 10.8-26.2 4.3-40.4-9.8-21.4-34.2-21.8-44 .4-3.2 7.2-3.9 14.9-2.9 21.8zm-46.2 18.8c7.8-5.7 6.9-4.7 5.9-5.5-8-6.9-6.6-27.4 1.8-28.1 6.3-.5 10.8 10.7 9.6 19.6 3.1-2.1 6.7-3.6 10.2-4.6 1.7-19.3-9-33.5-19.1-33.5-18.9 0-24 37.5-8.4 52.1zm-9.4 20.9c1.5 4.9 6.1 10.5 14.7 15.3 7.8 4.6 12 11.5 20 15 2.6 1.1 5.7 1.9 9.6 2.1 18.4 1.1 27.1-11.3 38.2-14.9 11.7-3.7 20.1-11 22.7-18.1 3.2-8.5-2.1-14.7-10.5-18.2-11.3-4.9-16.3-5.2-22.6-9.3-10.3-6.6-18.8-8.9-25.9-8.9-14.4 0-23.2 9.8-27.9 14.2-.5.5-7.9 5.9-14.1 10.5-4.2 3.3-5.6 7.4-4.2 12.3zm-33.5 252.8L112.1 366c-6.8-9.2-13.8-14.8-21.9-16-7.7-1.2-12.6 1.4-17.7 6.9-4.8 5.1-8.8 12.3-14.3 18-7.8 6.5-9.3 6.2-19.6 9.9-6.3 2.2-11.3 4.6-14.8 11.3-2.7 5-2.1 12.2-.9 20 1.2 7.9 3 16.3.6 23.9v.2c-5 13.7-5 21.7-2.6 26.4 7.9 15.4 46.6 6.1 76.5 21.9 31.4 16.4 72.6 17.1 75.3-18 2.1-20.5-31.5-49-41-68.9zm153.9 35.8c3.2-11 6.3-21.3 6.8-29 .8-15.2 1.6-28.7 4.4-39.9 3.1-12.6 9.3-23.1 21.4-27.3 2.3-21.1 18.7-21.1 38.3-12.5 18.9 8.5 26 16 22.8 26.1 1 0 2-.1 4.2 0 5.2-16.9-14.3-28-30.7-34.8 2.9-12 2.4-24.1-.4-35.7-6-25.3-22.6-47.8-35.2-59-2.3-.1-2.1 1.9 2.6 6.5 11.6 10.7 37.1 49.2 23.3 84.9-3.9-1-7.6-1.5-10.9-1.4-5.3-29.1-17.5-53.2-23.6-64.6-11.5-21.4-29.5-65.3-37.2-95.7-4.5 6.4-12.4 11.9-22.3 15-4.7 1.5-9.7 5.5-15.9 9-13.9 8-30 8.8-42.4-1.2-4.5-3.6-8-7.6-12.6-10.3-1.6-.9-5.1-3.3-6.2-4.1-2 37.8-27.3 85.3-39.3 112.7-8.3 19.7-13.2 40.8-13.8 61.5-21.8-29.1-5.9-66.3 2.6-82.4 9.5-17.6 11-22.5 8.7-20.8-8.6 14-22 36.3-27.2 59.2-2.7 11.9-3.2 24 .3 35.2 3.5 11.2 11.1 21.5 24.6 29.9 0 0 24.8 14.3 38.3 32.5 7.4 10 9.7 18.7 7.4 24.9-2.5 6.7-9.6 8.9-16.7 8.9 4.8 6 10.3 13 14.4 19.6 37.6 25.7 82.2 15.7 114.3-7.2zM415 408.5c-10-11.3-7.2-33.1-17.1-41.6-6.9-6-13.6-5.4-22.6-5.1-7.7 8.8-25.8 19.6-38.4 16.3-11.5-2.9-18-16.3-18.8-29.5-.3.2-.7.3-1 .5-7.1 3.9-11.1 10.8-13.7 21.1-2.5 10.2-3.4 23.5-4.2 38.7-.7 11.8-6.2 26.4-9.9 40.6-3.5 13.2-5.8 25.2-1.1 36.3 7.2 14.5 19.5 20.4 33.7 19.3 14.2-1.1 30.4-9.8 43.6-25.5 22-26.6 62.3-29.7 63.2-46.5.3-5.1-3.1-13-13.7-24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4 3.9-3.4 5.9-6.3 3.1-6.6-2.8-.3-2.6 2.6-6 5.1-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2-10.4 0-18.7-4.8-24.9-9.7-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"],lyft:[512,512,[],"f3c3","M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z"],magento:[448,512,[],"f3c4","M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z"],mailchimp:[428,512,[],"f59e","M426.56 323.72c-3.09-6.59-8.97-11.13-16.35-12.88-2.47-11.27-5.88-16.8-6.19-17.63 1.3-1.48 2.56-2.97 2.84-3.32 10.42-12.93 3.62-31.86-14.19-36.33-10.02-9.64-19.09-14.17-26.54-17.9-7.14-3.57-4.29-2.17-10.99-5.19-1.78-8.71-2.37-28.97-5.2-43.19-2.54-12.79-7.66-22.06-15.56-28.15-3.16-6.84-7.59-13.74-12.93-18.81 24.84-38.08 31.38-75.69 13.19-95.39-8.1-8.77-20.13-12.93-34.52-12.93-20.26 0-45.18 8.26-70.34 23.54 0 0-16.38-13.18-16.73-13.46-70.08-55.19-268.28 188.7-198.32 242l18.06 13.8c-11.34 31.54 4.43 69.14 37.29 81.21 7.26 2.67 15.14 3.97 23.31 3.51 0 0 53.09 97.36 165.1 97.39 129.58.04 162.55-126.72 162.9-127.86 0 .01 10.5-15.51 5.17-28.41zM20.12 267.95c-14.2-23.96 10.51-73.19 28.09-101.17C91.66 97.63 163.98 43.06 196.82 50.85l9.03-3.46c.03.03 24.67 20.85 24.7 20.87 16.97-10.19 38.58-20.57 58.8-22.64-12.3 2.77-27.29 9.15-45.05 20.01-.43.25-42.02 28.32-67.43 53.52-13.85 13.73-69.45 80.41-69.4 80.35 10.16-19.23 16.86-28.67 32.94-48.9 9.1-11.44 18.81-22.57 28.74-32.84 4.61-4.77 9.28-9.36 13.95-13.71 3.21-2.99 6.44-5.87 9.65-8.62 1.48-1.27 2.96-2.5 4.43-3.71l.01-.01L164.6 64.8l1.72 12.06 23.69 20.87s-20.96 14.11-31.39 23.01c-41.79 35.66-82.8 90.4-98.06 143.69l.73-.03c-7.6 4.19-15.14 10.91-21.73 20.05-.16-.04-17.04-12.43-19.44-16.5zm69.11 100.09c-25.03 0-45.33-21.37-45.33-47.72 0-26.36 20.29-47.72 45.33-47.72 6.49 0 12.66 1.44 18.24 4.02 0 0 9.63 4.86 12.34 27.81 2.82-7.17 4.24-13.06 4.24-13.06 3.23 9.88 4.88 20.26 4.23 30.76 2.68-3.56 5.55-10.27 5.55-10.27 5 29.33-16.4 56.18-44.6 56.18zm55.8-168.53s19.49-37.06 62.33-61.57c-3.19-.51-10.99.48-12.36.64 7.78-6.69 22.24-11.16 32.23-13.19-2.92-1.86-9.89-2.33-13.34-2.42-1.02-.03-1.01-.02-2.22.03 9.4-5.25 26.82-8.34 42.65-5.55-1.99-2.64-6.5-4.57-9.67-5.51-.28-.08-1.52-.39-1.52-.39l1.19-.28c9.54-1.84 20.69.15 29.5 3.69-1-2.32-3.45-5.03-5.29-6.74-.19-.18-1.29-.97-1.29-.97 9.22 1.91 18.06 5.94 24.71 10.5-.9-1.75-3.14-4.69-4.69-6.29 8.81 2.52 18.71 8.81 22.95 17.82.1.2.37.94.4 1.03-16.7-12.84-65.44-9.2-114.24 22.42-22.33 14.48-38.71 30.32-51.34 46.78zm263.32 146.34c-.59 1.15-6.73 34.4-41.86 62.01-44.37 34.86-102.66 31.33-124.67 11.8-11.76-11-16.85-26.73-16.85-26.73s-1.33 8.87-1.56 12.35c-8.87-15.09-8.12-33.52-8.12-33.52s-4.73 8.83-6.9 13.77c-6.53-16.62-3.16-33.78-3.16-33.78l-5.16 7.7s-2.42-18.81 3.52-34.47c6.36-16.74 18.68-28.9 21.11-30.42-9.35-2.97-20.12-11.49-20.14-11.51 0 0 4.28.28 7.26-.4 0 0-18.9-13.54-22.22-34.26 2.74 3.38 8.49 7.21 8.49 7.21-1.86-5.42-2.99-17.49-1.25-29.36l.01-.01c3.58-22.68 22.27-37.45 43.44-37.27 22.54.2 37.65 4.93 56.55-12.5 4-3.69 7.19-6.87 12.81-8.11.59-.13 2.06-.75 5.07-.75 3.05 0 5.98.69 8.67 2.29 10.25 6.1 12.46 22.01 13.56 33.68 4.07 43.28 2.43 35.57 19.94 44.49 8.36 4.25 17.74 8.29 28.43 19.72.03.03.08.09.08.09h.13c9.01.22 13.65 7.31 9.5 12.47-30.23 36.1-72.46 53.39-119.51 54.84-1.94.05-6.32.15-6.34.15-19.01.58-25.19 25.16-13.27 39.95 7.54 9.35 22.03 12.42 33.97 12.46l.17-.06c51.45 1.04 103.14-35.37 112.07-55.44.06-.15.61-1.42.61-1.42-2.07 2.43-52.18 49.61-113.08 47.9 0 0-6.66-.14-12.93-1.6-8.27-1.92-14.55-5.56-16.95-13.8 5.05 1.01 11.45 1.66 18.87 1.66 43.96 0 75.63-19.98 72.33-20.25-.13 0-.26.03-.48.08-5.13 1.19-57.97 21.66-91.37 11.16.08-1.02.24-2.01.48-2.9 2.97-9.95 8.25-8.56 16.79-8.93 30.48-1.01 55.07-8.68 73.5-17.43 19.65-9.33 34.63-21.35 40.03-27.42 7 11.79 6.96 26.92 6.96 26.92s2.74-.96 6.38-.96c11.38.01 13.73 10.23 5.09 20.6zm-149.29 13.7c0-.05-.01-.1-.01-.15.01.05.01.1.01.15zm-.01-.21c-.01-.13-.01-.26-.02-.39-.02-.65-.03-1.33 0-2.02-.02.74-.02 1.42 0 2.02.01.13.01.27.02.39zm.12 1.46c0 .02 0 .04.01.06 0-.02 0-.04-.01-.06zm.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zM193.96 59.68l2.87-8.83 4.88 17.72-6.03-1.95-1.72-6.94zm22.38 17.72l-3.62-12.59 9.97 8.36c-2.24 1.44-4.36 2.86-6.35 4.23zm42.71 281.94c-.01-.13-.01-.26-.02-.39.01.13.01.27.02.39zm-.01-.39c-.02-.65-.03-1.33 0-2.02-.03.75-.03 1.42 0 2.02zm.02.6c0-.05-.01-.1-.01-.15m.13 1.46c0-.02 0-.04-.01-.06m.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zm52.1-138.61c-.07-3.36.47-8.92 3.63-9.95h.01c5.41-1.88 12.58 11.98 12.91 24.28-4.28-2.14-9.3-3.05-14.47-2.6-1.3-3.97-1.92-7.7-2.08-11.73zM205.38 85.27l-13.59-11.38 20.57 6.28c-2.65 1.88-5 3.6-6.98 5.1zm27.7 166.94c-3.41 1.3-5.83 2.31-7 2.14-1.89-.28-.06-3.75 4.08-7.11 8.33-6.64 19.76-8.7 29.53-5.07 4.28 1.57 9.08 4.72 11.6 8.39.95 1.39 1.21 2.44.82 2.88-.77.9-3.51-.31-7.55-1.89-10.35-3.86-17.98-4.45-31.48.66zm14.55 14.53c-2.31.94-3.81 1.66-4.42 1.17-.62-.48-.01-2.42 2.15-4.51 1.88-1.81 3.83-2.83 6.07-3.77.35-.15.72-.28 1.1-.38 1.04-.28 2.09-.63 3.23-.8 9.12-1.55 15.8 3.51 14.93 4.98-.39.69-2.08.53-4.6.36-5.23-.36-10.71-.27-18.46 2.95zM60.86 323.12zm24.3-25.78c-1.85.39-.81.17-2.64.68a7 7 0 0 0-.77.25c-.58.27-1.11.45-1.62.73-.43.24-4.07 1.86-7.03 5.48-3.99 4.95-5.44 11.43-5.19 17.67.24 6.06 2.02 9.41 2.35 10.23 1.38 2.96-1.85 3.57-4.79.39l-.01-.01c-2.35-2.49-3.86-6.29-4.6-9.66-2.98-13.95 3.24-27.97 17.61-33.57.8-.32 1.74-.51 2.5-.73h-.01c1.47-.44 6.72-1.5 12.07-.67 5.87.91 11.04 3.85 14.33 7.67l.01.01c2.53 2.87 4.43 6.92 4.09 10.53v.01c-.13 1.5-.79 3.65-2.14 4.21-.5.21-1.01.1-1.36-.25-.98-.96-.22-2.93-2.6-6.3-3.17-4.47-10.31-8.76-20.2-6.67zm30.28 31.17c1.88 10.82-6 20.5-15.52 20.7-6.67.15-10.31-4.02-9.66-4.93.3-.43 1.32-.24 2.88-.01 8.5 1.32 13.66-3.86 14.9-9.29.02-.09.35-1.54.34-2.54.07-.88-.03-1.76-.16-2.56-1-5.62-7.45-6.68-11.6-11.15-3.72-4.04-2.99-9.22-.65-11.71 2.81-2.77 6.83-1.76 6.78-.78 0 .52-.97.91-2.17 1.74-1.56 1.1-1.77 2.16-1.37 3.98.26 1 .71 1.65 1.68 2.42 3.48 2.76 12.85 4.7 14.55 14.13zm212.87-81.47c2.58.4 4.22 3.59 3.67 7.13-.55 3.54-3.09 6.08-5.67 5.67-2.58-.4-4.22-3.59-3.67-7.13.56-3.53 3.09-6.07 5.67-5.67zm-28.33 10.31c1.42-2.59 5.44-3.11 8.99-1.16 3.55 1.94 5.27 5.62 3.86 8.2-1.42 2.59-5.44 3.11-8.99 1.16-3.55-1.94-5.28-5.61-3.86-8.2z"],mandalorian:[390,512,[],"f50f","M203.28 511.89c-.98-3.26-1.69-15.83-1.39-24.58.55-15.89.98-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-.96.4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-.99-11.43.16-4.81 0-10.53-.34-12.71-2.05-12.97-3.46-27.7-3.25-33.9.21-6.12.43-7.15 2.06-9.67 3.05-4.71 6.51-14.04 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74.89-4.42 2.43-9.72 4.36-15.05 2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71-1.03 1.49-4.76 4.8-8.29 7.36-8.37 6.08-11.7 9.39-12.66 12.58-.93 3.11-1.02 7.23-.16 7.76.34.21 1.29 2.4 2.11 4.88 1.62 4.88 1.87 10.12.72 15.36-.39 1.77-1.05 5.47-1.46 8.23-.41 2.76-.98 6.46-1.25 8.22-.28 1.76-.97 3.68-1.55 4.26-.96.96-1.14.91-2.05-.53-.55-.87-1.2-3.01-1.44-4.75-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-.96-20.96.92-1.73 1.67-3.81 1.67-4.61 0-2.39-2.2-5.32-7.41-9.89-7.05-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3.01-2.6 9.11-2.97 22.02l-.35 12.13 1.95 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56.07 11.84.95 22.75 2 24.71.36.66.51 1.35.34 1.52-.17.17.41 2.09 1.29 4.27.88 2.18 1.81 6.22 2.06 8.98.25 2.76 1.02 7.43 1.71 10.37 2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 57.98-2.04 61.21-.12 2.02-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4.02-4.79-2.83-9.95.7-3.01 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1.01-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73.38-1.29.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6.03-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57.02-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-10.96-1.9-23.85-14.55-6.15-6.04-12.34-11.97-13.75-13.19-2.81-2.42-2.79-1.99-.56-9.63l1.35-4.65-1.69-3.04c-.93-1.67-2.09-3.51-2.59-4.07-1.33-1.51-5.5-10.89-5.99-13.49-.31-1.66-.09-2.67.87-3.9 2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1.05 9.41 5.03 1.34 4.79 1.37 9.79.1 18.55-.53 3.68-.98 8.68-.99 11.11-.02 4.01.19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52 1.7.71 3.82 1.99 4.72 2.85 11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 7.98 4.54 10.04 13.39 1.31 5.65 4 11.14 5.46 11.14.59 0 2.09-.63 3.33-1.39 1.98-1.22 2.25-1.73 2.25-4.18-.01-3.71-1.17-14.08-2-17.84-.37-1.66-.78-4.06-.93-5.35-.14-1.29-.61-3.85-1.03-5.69-2.55-11.16-3.65-15.46-4.1-16.05-1.55-2.02-4.08-10.2-4.93-15.92-1.64-11.11-3.96-14.23-12.91-17.39-4.64-1.64-8.89-4.12-13.32-7.78-1.15-.95-4.01-3.22-6.35-5.06-2.35-1.83-4.41-3.53-4.6-3.76-.18-.23-1.39-1.14-2.69-2.02-6.24-4.22-8.84-6.98-11.26-11.96l-2.44-5.02-.22-12.98-.22-12.98 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2.05 8.53-.19 10.12.02 11.66 1.56 1.53 1.53 1.36 6.4-.29 8.5-.74.94-1.34 1.98-1.34 2.32 0 .58-2.61 4.91-5.42 8.99-.68.99-2.13 5.35-2.37 6.82 20.44 13.39 21.55 3.77 14.07 28.98l11.4 2.54c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-11.98-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28 3.18-.92 6.58-1.68 7.55-1.68.97 0 3.66-.58 5.98-1.29 3.65-1.11 4.5-1.17 6.35-.4 1.17.48 3.79 1.09 5.82 1.36 2.02.26 4.72 1.12 6 1.91 1.28.79 3.53 1.77 5.02 2.17 2.51.68 3 .57 7.05-1.67l4.35-2.4 10.7-.41c10.44-.4 10.81-.47 15.26-2.68l4.58-2.3 2.46 1.43c1.76 1.02 3.14 2.73 4.85 5.98 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39.5 1.96 1.45 4.62 2.1 5.91.65 1.29 1.24 3.09 1.31 4.01.31 4.33-.03 5.3-2.41 6.92-2.17 1.47-6.98 7.91-6.98 9.34 0 .32-.48 1.69-1.07 3.03-5.04 11.51-6.76 13.56-14.26 16.98-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26-.37.69-2.21 2.37-4.09 3.71-2.04 1.47-3.8 3.38-4.38 4.78-.54 1.28-1.66 2.59-2.49 2.91-.83.32-1.94 1.08-2.45 1.71-.52.62-3.66 3.04-7 5.38-3.33 2.34-6.87 5.02-7.87 5.96-1 .94-2.07 1.71-2.39 1.71s-1.28.74-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6.22 1.63.86 4.27 1.42 5.88 1.32 3.8 1.31 7.86-.05 10.57-1.43 2.86-.89 6.65 1.35 9.59 2.01 2.63 2.16 4.56.71 8.84-.61 1.8-1.05 5.45-1.06 8.91-.02 4.88.22 6.28 1.46 8.38 1.2 2.04 1.82 2.48 3.24 2.32 1.98-.23 2.3-1.05 4.71-12.12 2.18-10.03 3.71-11.92 13.76-17.08 2.94-1.51 7.46-3.96 10.03-5.44 2.58-1.48 6.79-3.69 9.37-4.91 6.67-3.16 11.05-6.52 15.22-11.67 7.11-8.79 9.98-16.22 12.85-33.3.55-3.28 1.43-5.65 2.86-7.73 1.29-1.87 2.37-4.62 2.89-7.31 1.02-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8.03-2.18 3.11-6.46 13.01-8.76 20.26l-2.29 7.22-6.97 6.49c-3.83 3.57-7.96 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 9.99 0 2.98.43 4.96 1.59 7.26.87 1.74 1.81 3.91 2.09 4.83.28.92.98 2.22 1.57 2.89 1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12.02-4.7 12.02-1.79 0-4.06 9.27-5.07 20.74-.18 2.02-.62 5.94-.98 8.7-.36 2.76-.96 9.98-1.35 16.05-.77 12.22-.19 18.77 2.05 23.15 3.41 6.69.52 12.69-11.03 22.84l-3.97 3.49.07 5.19c.04 2.86.55 6.85 1.14 8.87 4.61 15.98 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15.42 1.84.91 5 1.08 7.02.17 2.02.66 5.33 1.08 7.36.47 2.26.78 11.02.79 22.74l.02 19.06-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2.02-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3.02-17.66-3.03-21.3-.01-4.23 1.02-6 5.28-9.13 4.14-3.04 4.86-3.14 5.48-.72.28 1.1 1.45 5.62 2.6 10.03 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-.98 7.07-1.17 12.39-1.04 28.43.17 19.4-.64 35.73-2.04 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-70.99-37.58c-.24-.38-1.01-5.24-1.73-10.79-.72-5.56-1.49-10.41-1.73-10.79-.23-.38-.68-3.3-.99-6.49-.31-3.19-.91-7.46-1.33-9.48-.99-4.79-3.35-19.35-3.42-21.07-.03-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29.96-.96 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83-.18 4.6-.49 9.87-.67 11.71-.18 1.84-.61 9.36-.94 16.72-.79 17.41-1.94 31.29-2.65 32-.32.3-.76.24-1-.14zM74.63 162.61c21.07 12.79 17.84 14.15 28.49 17.66 13.01 4.29 18.87 7.13 23.15 16.87-43.66 36.14-69.01 57.9-76.71 70.82-31.02 52.01-5.99 101.59 62.75 87.21-14.18 29.23-77.97 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179.02c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-67.96 2.98-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.27 70.58-78.66 91.12-105.29 61.65z"],markdown:[640,512,[],"f60f","M593.85 452.92H46.15C20.7 452.92 0 432.22 0 406.77V105.23c0-25.45 20.7-46.15 46.15-46.15h547.69c25.45 0 46.15 20.7 46.15 46.15v301.54c.01 25.45-20.69 46.15-46.14 46.15zm-440-92.3v-120l61.54 76.92 61.54-76.92v120h61.54V151.38h-61.54l-61.54 76.92-61.54-76.92H92.31v209.23h61.54zM566.15 256h-61.54V151.38h-61.54V256h-61.54l92.31 107.69L566.15 256z"],mastodon:[417,512,[],"f4f6","M417.8 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.5-28.4-290.4 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.4-.9-9-.9-13.9 85.6 20.9 158.6 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H75.1c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"],maxcdn:[512,512,[],"f136","M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"],medapps:[320,512,[],"f3c6","M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"],medium:[448,512,[],"f23a","M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"],"medium-m":[512,512,[],"f3c7","M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z"],medrt:[544,512,[],"f3c8","M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z"],meetup:[512,512,[],"f2e0","M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"],megaport:[496,512,[],"f5a3","M248 8C111.04 8 0 119.04 0 256c0 136.97 111.04 248 248 248 136.96 0 248-111.03 248-248C496 119.04 384.96 8 248 8zm85.46 267.67l59.66 59.67v87.05l-26.07 19.23L341 422.39v-65.46l-33.44-33.44-33.44 33.44v65.46L248 441.62l-26.12-19.23v-65.46l-33.44-33.44L155 356.92v65.46l-26.07 19.23-26.06-19.23v-87.05l59.47-59.47V188l59.5-59.5V52.88l26.06-19.23 26.06 19.23v75.64l59.5 59.5m-85.56-11.86l33.44 33.44V276L248 309.33l-33.54-33.54v-66.2l33.44-33.43z"],microsoft:[448,512,[],"f3ca","M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"],mix:[448,512,[],"f3cb","M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"],mixcloud:[640,512,[],"f289","M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z"],mizuni:[496,512,[],"f3cc","M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"],modx:[448,512,[],"f285","M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"],monero:[496,512,[],"f3d0","M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"],napster:[496,512,[],"f3d2","M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"],neos:[456,512,[],"f612","M387.44 512h-95.11L184.12 357.46v91.1L97.69 512H0V29.82L40.47 0h108.05l123.74 176.13V63.45L358.69 0h97.69v461.5L387.44 512zM10.77 35.27v460.72l72.01-52.88V193.95l215.49 307.69h84.79l52.35-38.17h-78.27L40.96 12.98 10.77 35.27zm82.54 466.61l80.04-58.78V342.06L93.55 227.7v220.94l-72.58 53.25h72.34zM52.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L142.91 10.77H52.63zm230.4 180.88l72.01 102.81V15.93l-72.01 52.96v122.76z"],nimblr:[355,512,[],"f5a8","M232.6 299.29c15.57 0 27.15 11.46 27.15 26.96 0 15.55-11.62 26.96-27.15 26.96-15.7 0-27.15-11.57-27.15-26.96 0-15.51 11.58-26.96 27.15-26.96zM99.01 326.25c0-15.61 11.68-26.96 27.15-26.96 15.57 0 27.15 11.46 27.15 26.96 0 15.41-11.47 26.96-27.15 26.96-15.44 0-27.15-11.31-27.15-26.96m78.75-167.3C143 158.95 75.45 178.77 45.25 227L0 0v335.48C0 433.13 79.61 512 177.76 512c98.24 0 177.76-78.95 177.76-176.52 0-97.46-79.39-176.53-177.76-176.53zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59 0-72.68 59.24-131.59 132.51-131.59 73.27 0 132.51 58.91 132.51 131.59s-59.25 131.59-132.51 131.59z"],"nintendo-switch":[448,512,[],"f418","M95.9 33.5c-44.6 8-80.5 41-91.8 84.4C0 133.6-.3 142.8.2 264.4.4 376 .5 378.6 2.4 387.3c10.3 46.5 43.3 79.6 90.3 90.5 6.1 1.4 13.9 1.7 64.1 1.9 51.9.4 57.3.3 58.7-1.1 1.4-1.4 1.5-19.3 1.5-222.2 0-150.5-.3-221.3-.9-222.6-.9-1.7-2.5-1.8-56.9-1.7-44.2.1-57.5.4-63.3 1.4zm83.9 222.6V444l-37.8-.5c-34.8-.4-38.5-.6-45.5-2.3-29.9-7.7-52-30.7-58.3-60.7-2-9.4-2-240.1-.1-249.3 5.6-26.1 23.7-47.7 48-57.4 12.2-4.9 17.9-5.5 57.6-5.6l35.9-.1v188zm-75.9-131.2c-5.8 1.1-14.7 5.6-19.5 9.7-9.7 8.4-14.6 20.4-13.8 34.5.4 7.3.8 9.3 3.8 15.2 4.4 9 10.9 15.6 19.9 20 6.2 3.1 7.8 3.4 15.9 3.7 7.3.3 9.9 0 14.8-1.7 20.1-6.8 32.3-26.3 28.8-46.4-3.9-23.7-26.6-39.7-49.9-35zm158.2-92.3c-.4.3-.6 100.8-.6 223.5 0 202.3.1 222.8 1.5 223.4 2.5.9 74.5.6 83.4-.4 37.7-4.3 71-27.2 89-61.2 2.3-4.4 5.4-11.7 7-16.2 5.8-17.4 5.7-12.8 5.7-146.1 0-106.4-.2-122.3-1.5-129-9.2-48.3-46.1-84.8-94.5-93.1-6.5-1.1-16.5-1.4-48.8-1.4-22.4-.1-40.9.2-41.2.5zm99.1 202.1c14.5 3.8 26.3 14.8 31.2 28.9 3.1 8.7 3 21.5-.1 29.5-5.7 14.7-16.8 25-31.1 28.8-23.2 6-47.9-8-54.6-31-2-7-1.9-18.9.4-26.2 6.9-22.7 31-36.1 54.2-30z"],node:[640,512,[],"f419","M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z"],"node-js":[448,512,[],"f3d3","M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"],npm:[576,512,[],"f3d4","M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"],ns8:[640,512,[],"f3d5","M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z"],nutritionix:[400,512,[],"f3d6","M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"],odnoklassniki:[320,512,[],"f263","M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z"],"odnoklassniki-square":[448,512,[],"f264","M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z"],"old-republic":[496,512,[],"f510","M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z"],opencart:[640,512,[],"f23d","M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"],openid:[448,512,[],"f19b","M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"],opera:[496,512,[],"f26a","M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"],"optin-monster":[576,512,[],"f23c","M550.671 450.303c0 11.62-15.673 19.457-32.158 14.863-12.16-3.243-31.346-17.565-36.211-27.294-5.674-11.62 4.054-32.698 18.916-30.806 15.674 1.621 49.453 25.401 49.453 43.237zM372.86 75.223c-3.783-72.151-100.796-79.718-125.928-23.51 44.588-24.321 90.257-15.673 125.928 23.51zM74.795 407.066c-15.673 1.621-49.452 25.401-49.452 43.237 0 11.62 15.673 19.457 32.157 14.863 12.16-3.243 31.076-17.565 35.94-27.294 5.946-11.62-3.782-32.698-18.645-30.806zm497.765 14.322c1.081 3.513 1.892 7.026 1.892 10.809.81 31.616-44.317 64.045-73.503 65.125-17.295.81-34.59-8.377-42.696-23.51-113.497 4.053-226.994 4.864-340.22 0-8.377 15.133-25.672 24.05-42.967 23.51-28.915-1.081-74.043-33.509-73.503-65.125.27-3.783.811-7.296 1.892-10.809-5.566-9.463-4.845-15.282 5.405-11.62 3.243-5.134 7.026-9.458 11.08-13.782-2.57-10.917 1.27-14.094 11.079-9.188 4.594-3.243 9.998-6.485 15.944-9.188 0-15.757 11.839-11.131 17.295-5.675 12.467-1.78 20.129.709 26.753 5.675v-19.726c-12.987 0-40.641-11.375-45.94-36.212-4.974-20.725 2.607-38.075 25.132-47.56.81-5.945 8.107-14.052 14.862-15.944 7.567-1.892 12.431 4.594 14.052 10.269 7.425 0 17.757 1.465 21.078 8.107 5.405-.541 11.079-1.352 16.484-1.892-2.432-1.892-5.134-3.513-8.107-4.594-5.134-8.917-13.782-11.079-24.591-11.62 0-.81 0-1.621.27-2.702-19.727-.541-44.048-5.675-54.857-17.835-21.321-23.638-15.935-83.577 12.16-103.498 8.377-5.675 21.618-.811 22.699 9.728 2.425 20.598.399 26.833 26.212 25.942 8.107-7.836 16.755-14.592 26.483-19.997-14.862-1.352-28.914 1.621-43.778 3.783 12.752-12.48 23.953-25.442 56.748-42.427 23.511-11.89 49.993-20.808 76.205-23.239-18.646-7.837-39.993-11.891-59.721-16.484 76.475-16.214 174.569-22.159 244.289 37.562 18.105 15.403 32.427 36.211 42.696 59.992 39.799 4.853 36.47-5.581 38.643-25.132 1.081-10.269 14.322-15.403 22.699-9.458 14.862 10.539 22.159 30.806 24.59 48.101 2.162 17.835.27 41.345-12.43 55.127-10.809 12.16-34.32 17.565-53.776 18.105v2.703c-11.08.27-20.268 2.432-25.673 11.62-2.972 1.081-5.674 2.703-8.377 4.594 5.675.54 11.35 1.351 16.755 1.891 1.869-5.619 12.535-8.377 21.077-8.377 1.621-5.405 6.756-11.89 14.052-10.269s14.052 9.998 14.863 15.944c10.809 4.324 22.159 12.16 25.131 25.672 1.892 8.107 1.621 15.133.27 21.888-5.726 25.262-33.361 36.212-45.939 36.212 0 6.756 0 13.241-.27 19.726 8.01-6.006 16.367-7.158 26.752-5.675 5.919-5.919 17.565-9.41 17.565 5.675 5.675 2.703 11.349 5.945 15.944 9.188 10.1-5.051 13.669-.539 10.809 9.188 4.053 4.323 8.107 8.917 11.079 13.782 10.136-3.62 11.021 2.078 5.409 11.62zm-73.773-254.016c17.295 6.756 26.212 22.159 30.265 35.67 1.081-10.539-2.702-39.453-13.782-51.073-7.296-7.296-14.052-5.134-14.052.81.001 6.216-1.35 11.62-2.431 14.593zm-18.646 12.43c12.971 15.673 17.024 41.615 12.7 62.963 10.809-2.162 20.537-6.215 26.212-12.16 1.892-2.162 3.783-4.864 4.864-7.566-1.081-21.348-10.269-42.697-29.725-48.912-3.242 3.243-9.187 4.864-14.051 5.675zm-21.889.811c7.567 20.537 12.431 42.696 14.322 64.585 3.513 0 7.567-.27 11.62-.811 5.945-24.321-.27-51.614-14.052-63.504-3.783 0-8.107 0-11.89-.27zM77.768 167.372c-1.081-2.973-2.432-8.377-2.432-14.593 0-5.945-7.026-8.107-14.052-.81-11.35 11.62-14.863 40.534-13.782 51.073 4.053-13.512 12.971-28.915 30.266-35.67zm5.675 75.394c-4.324-21.348-.27-47.291 12.701-62.963-4.865-.811-10.809-2.432-14.052-5.675-19.457 6.215-28.375 27.563-29.726 48.912 1.351 2.702 2.972 5.404 4.864 7.566 5.675 6.215 15.403 9.998 26.213 12.16zm41.345-61.073c-5.134 1.081-9.998 2.973-14.862 4.865l-12.16 5.134v-.27c-7.296 14.052-9.999 34.319-5.405 52.965 4.594.541 8.647.811 12.7.811 2.432-22.159 9.188-43.778 19.727-63.505zm88.095-23.239c0 42.155 34.319 76.205 76.205 76.205s76.205-34.05 76.205-76.205c0-41.886-34.319-75.935-76.205-75.935s-76.205 34.049-76.205 75.935zm152.41 97.283c9.969 50.608 3.299 64.692 16.484 58.099 15.944-8.107 22.699-39.183 22.97-57.019-12.971-.81-26.213-.81-39.454-1.08zm-71.611-.541v-.27c-.27 5.134.27 38.103 4.324 41.075 11.079 5.405 39.453 4.594 51.073 1.081 5.405-1.621 2.432-37.022 1.621-41.886-18.916-.27-38.102-.27-57.018 0zm-14.053 0v-.27c-19.456.27-38.642.27-57.829.811-1.892 9.187-4.594 48.911 1.892 51.614 12.971 5.675 41.616 5.134 54.586 1.621 4.595-2.432 2.433-45.399 1.351-53.776zm-85.662 57.56c5.405 2.432 8.647 2.432 9.728-4.324 1.892-8.647 2.432-36.752 4.865-52.155-12.16.27-24.591.811-36.752 1.621-5.405 19.727.27 45.129 22.159 54.858zm-65.666-11.08c43.778 47.02 92.689 85.663 155.923 106.47 67.558-19.186 115.659-59.991 163.219-107.011-11.095-4.315-7.715-10.363-7.296-11.62-8.918-.81-17.835-1.892-26.483-2.702-9.458 32.968-35.94 52.965-46.75 31.616-2.702-5.134-3.513-11.62-4.594-16.754-3.783 8.377-13.242 8.107-24.591 8.918-13.241 1.081-31.617 1.351-44.048-2.972-2.972 12.971-11.079 12.971-26.752 14.322-14.052 1.352-48.642 4.054-54.857-10.809-1.081 28.644-35.13 9.998-45.129-7.026-3.243-5.675-5.405-11.35-7.026-17.565-7.837.81-15.673 1.621-23.511 2.702 2.443 3.663 1.549 9.052-8.105 12.431zM115.6 453.545c-5.674-23.239-18.646-49.722-33.508-54.046-22.429-6.756-68.909 23.51-66.207 54.586 12.701 19.457 39.994 35.67 59.181 36.481 17.835.81 35.94-11.08 39.724-28.914.539-2.432.81-5.134.81-8.107zm7.296-5.944c33.509-19.457 69.179-35.671 105.931-47.02-38.643-20.537-68.098-47.831-97.283-77.016-2.162 1.352-5.134 2.432-7.836 3.513-1.637 4.91 8.718 5.33 5.405 12.431-2.162 4.054-8.648 7.567-15.133 9.188-2.161 2.702-5.134 4.864-7.836 6.485h-.27c-.27 13.511-.27 27.024.27 40.535 8.939 15.964 15.426 33.314 16.752 51.884zm320.764 12.7c-36.752-21.348-74.044-41.345-115.659-52.965-13.782 6.215-27.833 11.349-42.155 15.403-2.162.811-2.162.811-4.324 0-11.89-3.783-23.239-8.107-34.859-13.241-40.265 11.62-77.286 29.185-112.416 50.803h-.27v.27c.27 0 .27 0 .27-.27 103.227 4.054 206.455 3.513 309.413 0zm27.023-64.045l-.27.27c.541-13.782.811-27.563.811-41.345-2.973-1.621-5.675-4.054-8.107-6.756-6.485-1.351-12.971-5.134-15.133-8.918-1.892-4.053 1.351-7.566 5.945-10.269-.27-.541-.541-1.621-.541-2.432-2.972-.811-5.405-1.892-7.567-3.243-31.616 29.455-65.396 56.749-103.498 76.746 38.914 11.62 75.935 28.104 111.875 47.561 1.05-14.692 7.231-35.749 16.485-51.614zm23.24 3.244c-14.593 4.323-27.834 30.806-33.509 54.046 0 23.826 21.278 37.897 40.534 37.022 19.186-.811 46.48-17.024 59.181-36.481 2.973-31.077-43.507-61.344-66.206-54.587zM290.709 134.133c.045 0 .089.003.134.003.046 0 .09-.003.136-.003h-.27zm0 96.743c28.645 0 51.884-21.618 51.884-48.371 0-36.092-40.507-58.079-72.151-44.318 9.458 2.972 16.484 11.62 16.484 21.618 0 23.257-33.291 31.955-46.48 11.35-7.297 34.067 19.368 59.721 50.263 59.721zM68.039 474.083c.54 6.486 12.16 12.701 21.618 9.458 6.756-2.703 14.593-10.539 17.295-16.214 2.973-7.026-1.081-19.997-9.728-18.375-8.917 1.621-29.725 16.754-29.185 25.131zm410.75-25.131c-8.377-1.621-12.431 11.349-9.458 18.375 2.432 5.675 10.269 13.511 17.295 16.214 9.187 3.243 21.078-2.972 21.348-9.458.811-8.377-20.267-23.51-29.185-25.131z"],osi:[495,512,[],"f41a","M0 259.2C2.3 123.4 97.4 26.8 213.8 11.1c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.7-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 6.4-42.4-24.5-78.7-64.5-82.2-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119C1.9 318.7 1.6 280.2 0 259.2zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 31.9 18.4 49.5 53.8 45.2 90.4-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.2 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161C459.8 112 354.1 14.7 218 31.5 111.9 44.5 22.7 134 20.9 257.3z"],page4:[496,512,[],"f3d7","M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"],pagelines:[384,512,[],"f18c","M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"],palfed:[576,512,[],"f3d8","M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z"],patreon:[512,512,[],"f3d9","M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"],paypal:[384,512,[],"f1ed","M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"],"penny-arcade":[640,512,[],"f704","M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z"],periscope:[448,512,[],"f3da","M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"],phabricator:[496,512,[],"f3db","M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z"],"phoenix-framework":[640,512,[],"f3dc","M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"],"phoenix-squadron":[513,512,[],"f511","M96.24 62.81C142.91 26.57 202.15 6.57 261.28 8.08c29.67-.38 59.29 5.38 87.17 15.37-24.2-4.64-49.18-6.35-73.6-2.45-43 5.35-83.26 27.23-112.16 59.35 5.69-.99 10.81-3.68 16.07-5.88 18.19-7.89 37.6-13.29 57.4-14.87 19.8-2.14 39.75-.43 59.45 1.93-14.46 2.79-29.2 4.58-43.11 9.61-34.53 11.11-65.46 33.26-86.55 62.82-13.84 19.77-23.7 42.99-24.74 67.33-.35 16.54 5.23 34.91 19.89 44.17 11.13 6.66 24.85 9.39 37.63 6.76 15.49-2.47 30.16-8.67 43.73-16.38 11.55-6.84 22.73-14.59 32.05-24.32 3.8-3.23 2.54-8.48 2.63-12.83-2.13-.34-4.4-1.11-6.32.3a203.975 203.975 0 0 1-35.93 15.42c-20.07 6.19-42.28 8.48-62.28.78 12.83 1.73 26.14.31 37.85-5.46 20.29-9.75 36.92-25.27 54.6-38.88 27.84-21.29 57.64-40.11 89.17-55.47 25.78-12.01 53.09-22.85 81.81-24.2-15.68 13.76-32.25 26.6-46.92 41.51-14.55 14.04-27.54 29.58-40.23 45.31-3.53 4.61-8.98 6.96-13.62 10.19-22.24 15.03-40.6 35.96-52.04 60.28-9.36 19.74-14.55 41.97-11.81 63.84 1.95 13.73 8.74 27.67 20.96 35.01 12.94 7.99 29.14 8.09 43.61 5.11 32.9-7.47 61.61-28.97 81.28-56 20.5-27.6 30.61-62.38 29.25-96.64-.52-7.52-1.58-15-1.67-22.55 8.02 19.54 14.87 39.83 16.7 61.01 2.01 14.32.75 28.84-1.62 43.02-1.92 11.02-5.69 21.58-7.81 32.53 20.36-22.73 34.17-51.24 39.46-81.31 5.72-35.37.58-72.36-14.25-104.95 20.84 32.12 32.43 69.79 35.81 107.8.5 12.77.5 25.58 0 38.34-2.91 34.26-12.97 67.95-29.76 98-26.2 47.48-68.2 85.89-117.54 108.32-78.52 36.34-175.2 31.41-248.72-14.72-38.84-23.78-71.06-58.32-91.68-98.96C10.72 337.43 2.04 305.5 0 273.13V241.7c3.94-69.97 40.99-136.32 96.24-178.89m222.65 80.57c5.51-.8 10.82-2.57 16.02-4.5 4.99-1.77 9.27-5.95 10.35-11.25-8.91 5-17.95 9.95-26.37 15.75z"],php:[640,512,[],"f457","M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"],"pied-piper":[448,512,[],"f2ae","M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"],"pied-piper-alt":[576,512,[],"f1a8","M242 187c6.3-11.8 13.2-17 25.9-21.8 27.3-10.3 40.2-30.5 58.9-51.1 11.9 8.4 12 24.6 31.6 23v21.8l6.3.3c37.4-14.4 74.7-30.2 106.6-54.6 48.3-36.8 52.9-50 81.3-100l2-2.6c-.6 14.1-6.3 27.3-12.4 39.9-30.5 63.8-78.7 100.3-146.8 116.7-12.4 2.9-26.4 3.2-37.6 8.9 1.4 9.8 13.2 18.1 13.2 23 0 3.4-5.5 7.2-7.5 8.6-11.2-12.9-16.1-19.3-22.7-22.1-7.6-3.5-63.9-6.4-98.8 10zm137.9 256.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9L244 246zm-12.6 31.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zM555.5 0l-.6 1.1-.3.9.6-.6.3-1.4zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46v27.3l11.8-3.4-2.9-23.8h-8.9zm76.1 2.9c0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3l2 12.4c9-1.5 58.4-6.6 58.4-14.1z"],"pied-piper-hat":[640,512,[],"f4e5","M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"],"pied-piper-pp":[448,512,[],"f1a7","M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"],pinterest:[496,512,[],"f0d2","M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"],"pinterest-p":[384,512,[],"f231","M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"],"pinterest-square":[448,512,[],"f0d3","M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"],playstation:[576,512,[],"f3df","M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z"],"product-hunt":[512,512,[],"f288","M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z"],pushed:[432,512,[],"f3e1","M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"],python:[448,512,[],"f3e2","M167.8 36.4c-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1zm-6.7 28.4c11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4zm185.2 81.4v47.5c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6-7.7-30.9-22.3-54.2-53.4-54.2h-40.1zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3z"],qq:[448,512,[],"f1d6","M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z"],quinscape:[489,512,[],"f459","M301.9 474.6h-1.3c-87.3 0-158.1-70.8-158.1-158.1s70.8-158.1 158.1-158.1c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C489.1 117.5 379.6 8 244.5 8 109.5 8 0 117.5 0 252.6s109.5 244.6 244.5 244.6c24.8 0 47.8-3.2 70.4-10.1-5.2-3.5-9-8.2-13.4-12.6l.4.1zm-21.2-69.8c0-54.8 44.4-99.2 99.2-99.2 54.8 0 99.2 44.4 99.2 99.2 0 54.8-44.4 99.2-99.2 99.2-54.8 0-99.2-44.4-99.2-99.2"],quora:[448,512,[],"f2c4","M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z"],"r-project":[581,512,[],"f4f7","M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"],ravelry:[512,512,[],"f2d9","M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z"],react:[512,512,[],"f41b","M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zm-130 189.1c4.6 8.8 9.3 17.5 14.3 26.1 5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5zm0-50.6c-6.3-14.9-11.6-29.5-16-43.6 14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26zm11.4 25.3c6.6-13.8 13.8-27.3 21.4-40.6 7.6-13.3 15.8-26.2 24.4-38.9 15-1.1 30.3-1.7 45.9-1.7 15.6 0 31 .6 45.9 1.7 8.5 12.6 16.6 25.5 24.3 38.7 7.7 13.2 14.9 26.7 21.7 40.4-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6-15.7 0-30.9-.5-45.6-1.4-8.7-12.7-16.9-25.7-24.6-39-7.7-13.3-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 210.2c25.3 0 45.8 20.5 45.8 45.8 0 25.3-20.5 45.8-45.8 45.8-25.3 0-45.8-20.5-45.8-45.8 0-25.3 20.5-45.8 45.8-45.8"],readme:[576,512,[],"f4d5","M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z"],rebel:[512,512,[],"f1d0","M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z"],"red-river":[448,512,[],"f3e3","M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z"],reddit:[512,512,[],"f1a1","M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z"],"reddit-alien":[512,512,[],"f281","M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"],"reddit-square":[448,512,[],"f1a2","M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z"],rendact:[496,512,[],"f3e4","M248 8C111 8 0 119 0 256s111 248 248 248c18.6 0 36.7-2.1 54.1-5.9-5.6-7.4-10.8-14.4-15.9-21.3-12.4 2.1-25.2 3.3-38.3 3.3C124.3 480 24 379.7 24 256S124.3 32 248 32s224 100.3 224 224c0 71-33 134.2-84.5 175.3-25.9 18.8-39.1 21.4-83.5-44.2-78.7-112.9-48-71.1-73.7-108.3 72.8 8.9 228.5-72 168.6-168.6C314-26.8 15 93.8 59.7 226.4c3.2 9.8 14.4 38.6 45.6 38.6 2 0 2.6-.6 2-1.7-4.4-8.7-20.1-9.8-20.1-37.4 0-40.5 40.5-89.6 100.3-120 66.1-32.3 131.9-30.2 158.2 5.4 27.2 38.3-20.9 119.2-120.4 136.9 7.5-9.4 57-75.2 62.8-84 22.7-34.6 23.6-49 14-59.2-15.5-16.9-29.5-10.3-50.7-11.7-10.8-.9-113.7 181.2-136.4 216.9-5.9 9-21.2 34.1-21.2 50.9 0 21.3 2.8 51.4 20.6 51.4 10.6 0 8-18.7 8-26.6 0-12.9 27.4-49.4 74.8-104.6 20.4 36.1 57.7 114.3 130.2 209.7 98-33.1 168.5-125.8 168.5-235C496 119 385 8 248 8z"],renren:[512,512,[],"f18b","M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"],replyd:[448,512,[],"f3e6","M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z"],researchgate:[448,512,[],"f4f8","M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"],resolving:[496,512,[],"f3e7","M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z"],rev:[410,512,[],"f5b2","M270.67 274.89c0 36.16-29.41 65.57-65.56 65.57s-65.57-29.41-65.57-65.57 29.41-65.56 65.57-65.56 65.56 29.4 65.56 65.56zm139.55-5.05h-.13c-1.49-61.55-30.1-116.35-74.32-152.98l-45.38 26.2c43.17 28.03 71.81 76.63 71.81 131.82 0 86.62-70.47 157.09-157.09 157.09S48.02 361.5 48.02 274.88c0-81.86 62.96-149.27 142.99-156.43v39.12l108.76-62.79L191.01 32v38.32C84.31 77.57 0 166.36 0 274.89c0 111.59 89.12 202.29 200.06 204.98v.13h210.16V269.84z"],rocketchat:[448,512,[],"f3e8","M448 256.2c0-87.2-99.6-153.3-219.8-153.3-18.8 0-37.3 1.6-55.3 4.8-11.1-10.5-24.2-20-38-27.4C61.2 44.2 0 79.4 0 79.4s56.9 47.1 47.6 88.3c-52.3 52.3-52.5 124.1 0 176.6C56.9 385.6 0 432.6 0 432.6s61.2 35.2 134.9-.8c13.8-7.5 26.9-16.9 38-27.4 18 3.2 36.5 4.8 55.3 4.8 120.3-.1 219.8-65.8 219.8-153zm-219.7 124c-23.7 0-46.3-2.8-67.3-7.8-21.3 25.8-68.1 61.7-113.6 50.1 14.8-16 36.7-43.1 32-87.6-27.3-21.4-43.6-48.7-43.6-78.5 0-68.4 86.2-123.9 192.5-123.9S420.8 188 420.8 256.4c0 68.3-86.2 123.8-192.5 123.8zm25.6-123.9c0 14.2-11.5 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.5-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm88.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm-177.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.2 0 25.6 11.6 25.6 25.8z"],rockrms:[496,512,[],"f3e9","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"],safari:[512,512,[],"f267","M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z"],sass:[640,512,[],"f41e","M551.1 291.9c-22.4.1-41.8 5.5-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-3.8 11.1-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-2.7 11.4-5.3 19.1-2.6 7.7-33.9 77.3-42.1 95.4-4.2 9.2-7.8 16.6-10.4 21.6s-.2.3-.4.9c-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2-.8 0-1.4 2-1.4 2s10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.4-35.4 189.9-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8C367 196.5 415.1 130.2 401 74.7 386.6 18.3 293.1-.2 204.6 31.2 151.9 49.9 94.9 79.3 53.9 117.6 5.2 163.2-2.6 202.9.6 219.5c11.4 58.9 92.6 97.3 125.1 125.7-1.6.9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5s1.4 9.7 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2s0 .1.1.2c-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 6.2-2.2 13.4-5.7 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6s1.4 9.7 6.2 25.8c2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 6.5-2.2 14.3-5.7 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8-2.1 14.6-13.8 22.6-17.7 25-3.9 2.4-5.1 3.3-4.8 5.1.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3C54.6 451 59.3 421.4 82 400c13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.3 30.4.3 57.2-19.1 78.3zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5.1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.8 1.9 7.4 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4z"],schlix:[448,512,[],"f3ea","M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"],scribd:[384,512,[],"f28a","M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"],searchengin:[460,512,[],"f3eb","M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"],sellcast:[448,512,[],"f2da","M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"],sellsy:[640,512,[],"f213","M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"],servicestack:[496,512,[],"f3ec","M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"],shirtsinbulk:[448,512,[],"f214","M395.208 221.583H406v33.542h-10.792v-33.542zm0-9.625H406v-33.542h-10.792v33.542zm0 86.333H406V264.75h-10.792v33.541zM358.75 135.25h-33.542v10.5h33.542v-10.5zm36.458 206.208H406v-33.542h-10.792v33.542zM311.5 135.25h-33.542v10.5H311.5v-10.5zm-47.25 0H231v10.5h33.25v-10.5zm-47.25 0h-33.25v10.5H217v-10.5zm178.208 33.542H406V135.25h-33.542v10.5h22.75v23.042zm-255.792 259l30.625 13.417 4.375-9.917-30.625-13.417-4.375 9.917zM179.083 445l30.334 13.708 4.374-9.916-30.333-13.417-4.375 9.625zm216.125-60.375H406v-33.542h-10.792v33.542zm-334.833 8.167L91 406.208l4.375-9.624-30.625-13.709-4.375 9.917zm39.666 17.499l30.625 13.417 4.375-9.917-30.625-13.416-4.375 9.916zm132.417 38.501l4.375 9.916L267.459 445l-4.375-9.625-30.626 13.417zm118.417-52.208l4.375 9.624 30.624-13.416-4.374-9.917-30.625 13.709zM311.5 413.791l4.375 9.917 30.625-13.417-4.374-9.916-30.626 13.416zm-39.667 17.501l4.375 9.917 30.625-13.417-4.375-9.917-30.625 13.417zM311.5 46.583h-33.542v10.5H311.5v-10.5zm94.209 0h-33.251v10.5h33.251v-10.5zm-188.709 0h-33.25v10.5H217v-10.5zm141.75 0h-33.542v10.5h33.542v-10.5zm-94.5 0H231v10.5h33.25v-10.5zM448 3.708v406l-226.334 98.584L0 409.708v-406h448zm-29.166 116.958H29.166V390.75l192.792 85.75 196.875-85.75V120.666zm0-87.791H29.166V91.5h389.667V32.875zM75.542 46.583H42.291v10.5h33.251v-10.5zm94.5 0H136.5v10.5h33.542v-10.5zm-47.251 0H89.25v10.5h33.542v-10.5zm7.584 236.542c0-50.167 41.125-91.292 91.292-91.292 50.458 0 91.292 41.125 91.292 91.292 0 50.458-40.833 91.292-91.292 91.292-50.167-.001-91.292-40.834-91.292-91.292zm120.75 18.084c0 13.125-23.917 14.291-32.666 14.291-12.25 0-29.75-2.625-35.875-14.875h-.875L172.666 319c14.876 9.333 29.167 12.25 47.25 12.25 19.542 0 51.042-5.833 51.042-31.209 0-48.125-78.458-16.333-78.458-37.916 0-13.125 20.708-14.875 29.75-14.875 10.791 0 29.166 3.208 35.583 13.124h.875l8.751-16.916c-15.167-6.125-27.417-11.959-44.334-11.959-20.125 0-49.583 6.417-49.583 31.792 0 44.334 77.583 11.959 77.583 37.918zM122.791 135.25H89.25v10.5h33.542v-10.5zm-69.999 10.5h22.75v-10.5H42v33.542h10.792V145.75zm0 32.666H42v33.542h10.792v-33.542zm117.25-43.166H136.5v10.5h33.542v-10.5zm-117.25 86.333H42v33.542h10.792v-33.542zm0 86.334H42v33.542h10.792v-33.542zm0-43.167H42v33.542h10.792V264.75zm0 86.333H42v33.542h10.792v-33.542z"],shopware:[495,512,[],"f5b5","M395.5 455.27c-42.95 31.79-93.95 48.59-147.48 48.59-137.21 0-248.02-111-248.02-248 0-137.19 111.04-248 248.02-248 61.3 0 120.14 22.55 165.68 63.5 2.62 2.36.58 6.64-2.86 6.18-17.67-2.43-36.75-3.66-56.71-3.66-129.36 0-222.4 53.47-222.4 155.35 0 109.04 92.13 145.88 176.83 178.73 33.64 13.04 65.4 25.36 86.96 41.59 1.9 1.44 1.89 4.31-.02 5.72zm99.46-222.32c-.08-.94-.55-1.83-1.27-2.44-51.76-42.96-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62.01 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93 1.88 1.05 4.26.19 5.05-1.82 18.89-48.39 17.94-90.23 15.93-113.31z"],simplybuilt:[512,512,[],"f215","M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"],sistrix:[448,512,[],"f3ee","M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"],sith:[448,512,[],"f512","M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z"],skyatlas:[640,512,[],"f216","M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"],skype:[448,512,[],"f17e","M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"],slack:[448,512,[],"f198","M244.2 217.5l19.3 57.7-59.8 20-19.3-57.7 59.8-20zm41.4 243.7C131.6 507.4 65 471.6 18.8 317.6S8.4 97 162.4 50.8C316.4 4.6 383 40.4 429.2 194.4c46.2 154 10.4 220.6-143.6 266.8zM366.2 265c-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-19.3-57.7 29-9.7c12.2-3.9 18.6-17.2 14.7-29.4-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-59.8 20.1-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l19.3 57.7-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 59.8-20.1 10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 29-9.7c12.2-4.2 18.6-17.5 14.7-29.6z"],"slack-hash":[448,512,[],"f3ef","M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z"],slideshare:[512,512,[],"f1e7","M249.429 211.436c0 31.716-27.715 57.717-61.717 57.717-34.001 0-61.716-26.001-61.716-57.717 0-32.001 27.715-57.716 61.716-57.716 34.001 0 61.717 25.715 61.717 57.716zm254.294 50.002c-18.286 22.573-53.144 50.288-106.289 72.003C453.722 525.163 260 555.735 263.143 457.446c0 1.714-.286-52.859-.286-93.432-4.285-.858-8.571-2-13.714-3.143 0 40.858-.286 98.289-.286 96.575C252 555.735 58.278 525.163 114.566 333.441c-53.145-21.715-88.003-49.43-106.29-72.003-9.143-13.714.858-28.287 16.001-17.715 2 1.428 4.285 2.857 6.285 4.285V49.716C30.563 22.287 51.135 0 76.565 0h359.157c25.429 0 46.002 22.287 46.002 49.716v198.293l6-4.285c15.143-10.573 25.143 4 15.999 17.714zm-46.572-189.15c0-32.858-10.572-45.716-40.859-45.716H98.566c-31.716 0-40.573 10.858-40.573 45.716v192.293c67.717 35.43 125.72 29.144 157.435 28.001 13.429-.286 22.001 2.286 27.144 7.715 1.689 1.687 10.023 9.446 20.287 17.143 1.143-15.715 10.001-25.715 33.716-24.858 32.287 1.428 91.718 7.715 160.577-29.716V72.288zM331.146 153.72c-34.002 0-61.716 25.715-61.716 57.716 0 31.716 27.715 57.717 61.716 57.717 34.287 0 61.716-26.001 61.716-57.717 0-32.001-27.429-57.716-61.716-57.716z"],snapchat:[496,512,[],"f2ab","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"],"snapchat-ghost":[512,512,[],"f2ac","M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z"],"snapchat-square":[448,512,[],"f2ad","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"],soundcloud:[640,512,[],"f1be","M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z"],speakap:[430,512,[],"f3f3","M55.01 391.78C-24.4 303.59-16.95 167.42 71.65 87.64s224.8-72.96 304.21 15.24 71.96 224.36-16.64 304.14c-18.74 16.87 64.03 43.09 42.02 52.26-82.06 34.21-253.91 35.04-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32.02-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 79.96-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 85.98 52.26-.37 21.28-26.42 25.81-38.59 25.6-2.98-.05-30.23-.46-47.61-24.62l-39.95 42.61c28.16 27.01 58.99 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-84.96-19.45-84.43-49.75.41-23.25 30.96-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z"],spotify:[496,512,[],"f1bc","M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"],squarespace:[512,512,[],"f5be","M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z"],"stack-exchange":[448,512,[],"f18d","M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"],"stack-overflow":[384,512,[],"f16c","M293.7 300l-181.2-84.5 16.7-36.5 181.3 84.7-16.8 36.3zm48-76L188.2 95.7l-25.5 30.8 153.5 128.3 25.5-30.8zm39.6-31.7L262 32l-32 24 119.3 160.3 32-24zM290.7 311L95 269.7 86.8 309l195.7 41 8.2-39zm31.6 129H42.7V320h-40v160h359.5V320h-40v120zm-39.8-80h-200v39.7h200V360z"],staylinked:[440,512,[],"f3f5","M201.6 127.4c4.1-3.2 10.3-3 13.8.5l170 167.3-2.7-2.7 44.3 41.3c3.7 3.5 3.3 9-.7 12.2l-198 163.9c-9.9 7.6-17.3.8-17.3.8L2.3 314.6c-3.5-3.5-3-9 1.2-12.2l45.8-34.9c4.2-3.2 10.4-3 13.9.5l151.9 147.5c3.7 3.5 10 3.7 14.2.4l93.2-74c4.1-3.2 4.5-8.7.9-12.2l-84-81.3c-3.6-3.5-9.9-3.7-14-.5l-.1.1c-4.1 3.2-10.4 3-14-.5l-68.1-64.3c-3.5-3.5-3.1-9 1.1-12.2l57.3-43.6m14.8 257.3c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7"],steam:[496,512,[],"f1b6","M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z"],"steam-square":[448,512,[],"f1b7","M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"],"steam-symbol":[448,512,[],"f3f6","M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z"],"sticker-mule":[576,512,[],"f3f7","M353.1 509.8c-5.9 2.9-32.1 3.2-36.5-.5-4.1-3-2.2-11.9-1.5-15 2.2-15-2.5-7.9-9.8-11.5-3.1-1.5-4.1-5.5-4.6-10-.5-1.5-1-2.5-1.5-3.5-1.7-10.7 6.8-33.6 8.2-43.4 4.9-23.7-.7-37.2 1.5-46.9 3.7-16.2 4.1-3.5 4.1-29.9-1.4-25.9 3.3-36.9.5-38.9-14.8 0-64.3 10.7-112.2 2-46.1-8.9-59.4-29-65.4-30.9-10.3-4.5-23.2.5-27.3 7-.1.1-35 70.6-39.6 87.8-6.2 20.5-.5 47.4 4.1 66.8 0 .1 4.5 14.6 10.3 19.5 2.1 1.5 5.1 2.5 7.2 4.5 2.8 2.7 9.4 15.2 9.8 16 2.6 4.5 3.6 8-1.5 10.5-3.6 2-9.3 2.5-14.4 2.5-2.6.5-1.5 3.5-3.1 5-2.9 2.8-20.7 6.1-29.9 2.5-2.6-1-5.7-3-6.2-5-1.5-4 2.1-9-1-12.5-4.5-2.9-13.1-2-17-12-2.2-5.4-2.6-7.6-2.6-49.4 0-9.7-5.9-38.7-8.2-46.9-1.5-5.5-1.5-11.5 0-16 .3-.9 4.1-4.6 4.1-13-1-1.5-4.6-.5-5.1-1.5-10.4-80.6-5.9-79-7.7-98.3-1.5-16-10.9-43.9-6.7-64.3.5-2.4 3.4-21 24.2-38.9 31-26.7 48.4-38.3 159-11.5 1.1.4 66.3 21.1 110.7-9 15.5-11.3 28.8-11.3 35.5-16 .1-.1 61.7-52.1 87-65.3 47.2-29.4 69.9-16.7 75.1-18 4.7-1 13.4-25.8 17-25.8 5.5 0 1.6 20.2 3.6 25.9.5 2 3.6 5 6.2 5 2.3 0 1.7-.8 10.3-5 8.4-5.4 14.9-17.6 20.6-17 11.7 1.6-19 41.6-19 46.9 0 2 .2.8 4.6 9.5 2.6 5.5 4.6 13.5 6.2 20 8.3 29.7 5.7 14.6 13.4 36.9 20.2 50.1 20.6 45.2 20.6 52.9 0 7.5-4.1 11-7.2 16.5-1.5 3-4.6 7.5-7.2 8-2.7.7 7-1.5-13.4 2.5-7.2 1-13.4-4.5-14.9-9.5-1.6-4.7 2.8-10.1-11.8-22.9-10.3-10-21.1-11.3-31.9-17-9.8-5.7-11.9 1-18 8-18 22.9-34 46.9-52 69.8-11.8 15-24.2 30.4-33.5 47.4-3.9 6.8-9.5 28.1-10.3 29.9-6.2 17.7-5.5 25.8-16.5 68.3-3.1 10-5.7 21.4-8.7 32.4-2.2 6.8-7.4 49.3-.5 59.4 2.1 3.5 8.7 4.5 11.3 8 .1.1 9.6 18.2 9.3 20 0 6.1-9.4 5.6-11.3 6.5-4.8 2.9-3.8 5.9-6.4 7.4"],strava:[369,512,[],"f428","M301.6 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220h-67.6zM151.4 0L0 292h89.2l62.2-116.1L213.1 292h88.5L151.4 0z"],stripe:[640,512,[],"f429","M640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9m-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4h-45.9zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7m-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8M346.4 124v36.2l-44.6 9.5v-36.2l44.6-9.5m-44.5 59.2h44.6v153.2h-44.6V183.2zm-47.8 13.1c10.4-19.1 31.1-15.2 37.1-13.1V224c-5.7-1.8-23.4-4.5-33.9 9.3v103.1H213V183.2h38.4l2.7 13.1m-89-13.1h33.7V221h-33.7v63.2c0 26.2 28 18 33.7 15.7v33.8c-5.9 3.2-16.6 5.9-31.2 5.9-26.3 0-46.1-17-46.1-43.3l.2-142.4 43.3-9.2.1 38.5zM44.9 228.3c0 20 67.9 10.5 67.9 63.4 0 32-25.4 47.8-62.3 47.8-15.3 0-32-3-48.5-10.1v-40c14.9 8.1 33.9 14.2 48.6 14.2 9.9 0 17-2.7 17-10.9 0-21.2-67.5-13.2-67.5-62.4 0-31.4 24-50.2 60-50.2 14.7 0 29.4 2.3 44.1 8.1V230c-13.5-7.3-30.7-11.4-44.2-11.4-9.3.1-15.1 2.8-15.1 9.7"],"stripe-s":[362,512,[],"f42a","M144.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C287.3 7.2 240.1 0 192.8 0 77.1 0 0 60.4 0 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5c53 22.8 106.8 32.4 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9"],studiovinari:[512,512,[],"f3f8","M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"],stumbleupon:[512,512,[],"f1a4","M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z"],"stumbleupon-circle":[496,512,[],"f1a3","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"],superpowers:[448,512,[],"f2dd","M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"],supple:[640,512,[],"f3f9","M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"],teamspeak:[511,512,[],"f4f9","M.82 237.82c2.36-15.52 10.69-27.04 24.88-34.03 3.5-1.85 5.65-3.5 6.37-7.81 6.17-33.41 19.53-63.94 39.37-91.59 2.36-3.19 4.01-5.35 1.03-9.35-3.7-5.35-1.03-10.18 2.98-14.49 28.06-31.87 61.88-55.1 101.98-67.44 95.81-29.4 180.1-9.35 252.37 60.45 6.68 6.37 15.52 12.85 6.99 24.36-1.34 1.85 1.03 3.5 2.16 5.04 20.66 28.06 34.23 59.42 40.4 93.65.82 3.7 2.98 5.04 5.86 6.37 17.37 8.84 25.7 23.34 26.01 42.25 0 17.17 1.85 34.54-1.03 51.71-4.01 24.67-29.19 41.74-53.25 36.7-7.2-1.64-9.35-7.2-9.35-14.19 0-28.06.82-56.44 0-84.6-1.85-75.76-36.18-132.81-102.28-169.41C234.28 4.98 92.11 72.42 67.54 196.91c-6.06 30.42-1.74 48.27-3.7 125.82-.31 7.2-4.32 11.2-12.03 11.51C20.97 335.58 0 316.05 0 285.21v-20.87m221.74 106.81c11.82-4.32 20.05-11.82 22.51-24.36 2.36-12.34-12.03-30.02-32.38-48.73-20.87-19.22-48.22-39.06-63.43-46.57-21.69-12.03-41.74-1.85-46.26 22.72-5.04 26.21 0 51.4 14.49 73.91 10.18 15.52 25.39 22.72 43.38 24.05 11.62.62 52.54 2.16 61.69-1.02m129.83 5.55c36.5 2.81 59.33-28.55 58.39-60.45-2.14-45.17-66.17-16.48-87.79-8.02-73.16 28.14-45.05 54.92-22.2 60.75m149.26-1.33c-2.98-2.36-7.2-1.03-8.33 2.36-8.02 25.39-44.72 112.46-172.08 121.51-149.67 10.49 80.29 43.59 145.36-6.37 22.72-17.37 47.6-35.05 46.57-85.43-.32-10.07-4.84-26.72-11.52-32.07"],telegram:[496,512,[],"f2c6","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"],"telegram-plane":[448,512,[],"f3fe","M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"],"tencent-weibo":[384,512,[],"f1d5","M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z"],"the-red-yeti":[505,512,[],"f69d","M484.41 241.74l20.66 7.13c-9.56-23.91-23.93-36.96-31.72-44.76l7.13-18.2c.25 0 12.28-27.79-2.46-30.74-.63-11.35-6.59-27.05-18.44-27.05-7.62-10.57-17.71-12.3-30.74-5.9-8.85 4.18-17.71 10.08-25.33 16.48-5.3-6.44-2.95.38-2.95-29.76-37.08-24.28-45.4-11.73-74.76 2.95l.49.49c-21.15-7.62-44.02-12.05-68.36-13.28-5.55-8.71-18.6-19.1-25.08-25.08l24.84 7.13c-5.49-5.49-26.78-12.91-34.18-15.25 18.2-4.11 29.78-20.77 42.54-32.95-34.92-10.08-67.87-5.9-97.88 11.8L179.97.48 178.24 0c-31.6 24.16-32.99 41.9-33.69 45.49-.91-2.39-6.32-19.61-15.25-27.05-3.44 8.85-3.44 17.21-.49 25.33 2.95 8.36 5.9 14.76 8.36 18.94-16.04-3.3-28.35-4.9-49.18 0H84.3l32.95 14.26c-20.66 19.43-35.9 41.81-46.72 67.38l-1.72 8.36 1.72 1.72 7.62-4.67c-3.33 11.64-5.27 19.39-6.64 25.82-11.31 12.79-20.41 26.07-27.79 40.33-14.97 1-31.82 10.78-40.33 14.26l2.95 3.44 28.77.98c-.49.98-.74 2.21-1.23 3.2-7.29 6.38-39.78 37.65-32.95 80.66l20.17-22.38c.49 1.72.74 3.44 1.23 5.16 0 25.53.37 89.64 64.92 150.5 43.78 40.1 96.16 60.27 157.64 60.27 121.73 0 223.05-87.29 223.05-211.49 6.8-9.72-1.24 3.03 16.72-25.08l13.03 14.26 2.46-.49c-1.72-11.31-4.67-22.38-8.85-34.18-2.22-6.4-4.68-10.33-6.89-13.28zm-15.49-41.32l-14.26-11.8 18.2-1.23-3.94 13.03zm-74.76-89.27l-.49 21.89c5.52 18.13 16.88 17.21 22.38 17.21l-3.44-4.67 22.38-5.41c-10.08.49-18.94.49-27.05 0 12.81-2.13 33.32-29.03 43.04-11.31 3.44 7.62 6.39 17.21 9.34 27.79l1.72-5.9c-1.23-4.18-1.72-9.34-1.72-15.25 5.41.49 8.85 3.44 9.34 10.08.49 6.39 1.72 14.76 3.44 25.33l4.67-11.31c4.59 0 4.47-3.61-2.46 20.66-20.89-8.7-35.09-8.36-46.48-8.36l18.2-15.98c-25.28 8.15-33.03 10.8-54.84 20.9-1.08-5.41-4.98-13.5-15.98-19.92-3.18 3.82-2.76.9-.74 14.76h-2.46c-1.23-8.36-4.18-15.98-8.36-23.12l4.18-3.44c8.36-7.13 11.8-14.26 10.57-21.89-.49-6.39-5.41-13.53-13.53-20.66 5.66-3.2 15.25-.25 28.29 8.6zm-39.59-10.08c2.69 1.92 11.4 5.38 18.94 17.21 4.2 8.4 3.98 9.81 3.44 11.07-.48 2.41-.46 4.33-2.95 7.13-1.72 2.46-5.41 4.67-11.8 7.62-7.62-13.03-16.48-23.61-27.79-31.23l20.16-11.8zM87.25 143.12l1.23-1.72c1.23-2.95 4.18-7.62 9.34-15.25l2.46-3.44-13.03 12.3 5.41-4.67-10.08 9.34-4.18 1.23c12.3-24.1 23.12-41.31 32.46-50.17 9.34-9.34 15.98-15.98 20.17-19.43l-6.39 1.23c-11.31-4.18-19.43-7.13-24.84-8.36 2.46-.49 3.69-.49 3.2-.49 10.33 0 17.46.49 20.9 1.23 5.41 1.72 10.57 2.46 15.98 2.46l.49-1.72-8.36-35.9 13.53 29.02c1.72-2.46 4.18-7.13 5.9-14.26 1.72-6.39 5.41-13.03 10.08-19.43 4.67-6.39 7.62-10.57 9.34-11.31-2.95 8.85-4.67 17.21-6.39 25.33l-1.72 7.13-.49 4.67 2.46 2.46c21.89-13.53 45.49-19.43 71.32-18.94l21.15.49c-11.8 13.53-27.79 21.89-48.45 24.84-8.61 1.48-16.23 2.46-23.36 2.95l-.25-.49-2.46-1.23c-5.16-.98-9.84-.25-14.02 1.97-2.46-.25-4.92-.49-7.13-.74l-2.46 1.72.49 1.23c1.97.25 3.93.49 6.15.74l-1.97 3.44 3.44-.49-10.57 11.31c-4.18 2.95-5.41 6.39-4.18 9.34l5.41-3.44h1.23c6.39-8.36 15.25-13.53 25.33-15.25v-2.95c6.39.49 13.03.98 19.43 1.23 6.39 0 8.36.49 5.41 1.23 7.62 4.18 14.26 8.85 20.66 13.53 13.53 10.08 23.61 21.89 30 35.41 8.85 18.2 13.53 37.13 13.53 56.56 0 10.08-1.23 19.43-2.95 28.28-2.35 10.79-7.8 29.62-15.98 45.99l2.46.49c18.23-19.67 41.9-15.98 49.18-15.98l-6.39 5.9 22.38 17.71-1.72 30.74c-5.41-12.3-16.48-21.15-32.95-27.79 16.48 14.76 23.61 21.15 21.89 20.17-4.81-2.81-3.53-1.87-10.82-3.69 4.12 4.12 17.45 18.79 18.2 20.66l.25.25-.25.25c0 1.76 1.56-1.18-14.02 22.87-75.15-15.31-106.26-42.74-141.16-63.2l11.8 1.23c-11.75-18.53-15.63-17.72-38.36-26.07l10.57-8.36c-8.85-2.95-18.2-2.95-28.28.49l7.62-10.57-1.23-1.72c-14.89 4.34-19.85 9.17-22.62 11.31-1.14-5.46-2.77-12.44-12.3-28.77l-1.23 27.05-13.53-5.41c1.47-25.11 5.4-50.44 13.27-74.54zm276.41 330.03c-49.92 24.96-56.13 22.41-59.02 23.85-29.76-11.8-50.9-31.72-63.45-58.77l30 16.48c-9.77-9.31-18.34-16.54-38.36-44.27l11.8 23.12-17.71-7.62c14.2 21.08 23.47 51.74 66.64 73.53-120.77 24.15-199.03-72.11-200.91-74.27 11.31 9.34 23.12 17.71 35.41 24.84 3.44 1.72 7.13 2.46 10.08 1.23l-15.98-20.66c9.23 4.19 9.49 4.5 69.1 29.02-42.54-20.66-73.78-40.82-93.2-60.25-.49 6.39-1.23 10.08-1.23 10.08 8.85 7.62 15.98 16.48 20.66 26.56-39.05-18.85-57.59-47.61-71.32-82.63 49.89 55.1 118.85 37.49 120.5 37.13 34.79 16.43 69.87 23.61 113.86 10.57 3.32 0 20.3 16.98 25.33 39.1l4.18-2.95-2.46-23.61c8.95 8.95 24.9 22.56 34.43 13.03-15.58-5.32-23.52-9.49-29.51-31.72 4.58 4.2 7.57 9.05 27.79 15l1.23-1.23-10.57-14.26c11.65-4.85-3.54 1.01 31.97-10.82 4.34 34.23 9.05 49.15.74 89.52zM479 258.71l-2.46.49 2.95 9.34c-3.55 5.87-23.73 44.26-71.56 79.68-39.54 29.76-76.58 39.13-80.91 40.33l-7.62-7.13-1.23 2.95 14.26 15.98-7.13-4.67 3.44 4.18h-1.23l-21.89-13.53 9.34 26.56-18.94-27.79-1.23 2.46 7.62 29.02c-6.11-8.24-21.03-32.61-56.81-39.59l32.46 21.15c-31.97 4.67-63.2 2.46-93.2-6.39-4.18-1.23-8.85-2.46-13.53-4.18l1.23-2.95-44.76-22.38 26.07 22.38c-57.66 9.08-112.96-25.41-126.4-83.37l-2.46-16.48-22.35 22.38c19.47-57.51 25.61-57.89 51.4-70.09-9.09-5.33-1.55-3.26-38.36-9.34 15.78-5.79 33.05-15.44 73.04 5.16 2.95-1.48 2.14-1.1 3.69-1.72.64-3.18.41-.82.98-11.8 3.89 10.01 3.63 8.67 2.95 9.34l1.72.49c12.69-6.49 8.92-4.52 16.97-8.85l-5.41 13.53 22.38-5.9-8.36 8.36 2.46 2.46c4.5-1.8 30.35 3.42 40.82 15.98l-23.61-2.46c39.39 22.98 51.46 53.97 55.82 69.59l1.72-1.23c-2.84-22.28-12.37-33.88-15.98-40.08 4.22 4.99 39.2 34.56 110.42 45.99-11.31-.49-23.12 5.41-34.92 18.94l46.72-20.17-9.34 21.89c7.62-10.08 14.76-23.61 21.15-39.59v-.49l1.23-2.95-1.23 15.98c13.53-41.81 25.33-78.45 35.41-109.68l13.53-27.79v-1.97l-5.41-4.18h10.08l5.9 4.18 2.46-1.23-3.44-15.98 12.3 18.94 41.81-20.17-14.76 13.03.49 2.95 17.71-.49c11.31.49 21.89 1.72 32.95 4.18l-23.61 2.46-1.23 2.95 26.56 23.12c10.08 10.08 18.94 20.66 27.05 31.97-11.24-3.29-10.28-3.44-21.15-3.44l12.3 32.46-8.87-12.79zm-277.89-89.03c-34.85 14.42-34.73 13.98-36.15 14.26-20.83 4.73-18.97-24.44-18.94-24.84l5.9-1.23-.49-2.46c-20.17-2.65-31.03 4.17-32.46 4.92.49.49 2.95 3.44 5.9 9.34 4.18-6.39 8.85-10.08 15.25-10.57-1.72 11.31-1.23 22.38 1.72 33.69.07.51 2.57 17.44 27.54 24.1 11.31 2.95 27.05 1.23 48.94-5.41l-9.34.49c-4.18-14.76-6.39-24.84-5.9-29.51 11.31-8.85 21.89-11.31 30.74-7.62h2.46l-11.8-7.62-7.13.49c-5.9 1.23-12.3 4.18-19.43 8.36l3.19-6.39zm11.07-86.81l-2.46.49.49 2.95c8.36-.49 17.21 1.23 26.07 5.9-2.5-5.54-9.97-14.26-28.28-14.26l.49 2.46 3.69 2.46zm-67.14 56.07c-4.04-6.35-3.09-5.05-4.67-6.64 21.69 16.76 16.48 21.41 46.48 23.61l-2.95-4.67c8.85-7.62 13.53-17.21 14.76-28.28 1.72-15.98-1.23-29.51-8.85-41.31l13.03-7.62c0-.49 0-1.23-.49-1.72-4.67-1.72-9.34-1.23-13.53 1.72-12.68 6.67-27.99 20.94-29.02 22.38-1.72 1.72-3.44 5.9-5.41 13.53-1.72 7.13-2.95 14.76-2.95 23.61-4.68-7.96-10.52-6.4-19.92-5.9l7.13 7.62c-16.47 0-23.32 15.43-23.61 15.98 6.81-.01 4.6-7.6 30-12.31zm14.02-25.33c1.23-7.62 3.44-13.03 6.39-17.21 5.41-6.39 10.57-10.08 15.98-11.8 4.18-1.72 7.13 1.23 10.08 9.34 2.46 7.62 3.44 16.48 2.95 25.33-.49 9.34-3.44 17.21-8.36 23.12-2.95 3.44-5.41 5.9-6.39 7.62-4.67.49-8.36 0-11.31-.49l-7.13-3.44-5.41-6.39c.99-10.09 1.48-18.94 3.2-26.08zm62.71-21.39c-6.39-3.44-10.57 2.95-12.3 18.94s2.46 29.51 11.8 39.59c9.34 10.08 18.2 10.57 26.07 2.95 7.87-7.62 3.44-23.61-11.31-47.71-3.19-5.41-7.87-10.08-14.26-13.77zm-4.67 46.23c5.36 2.23 10.51 1.91 12.3-10.57v-4.67l-1.23.49c-4.28-3.05-2.55-4.49-1.72-6.15l.49-.49c-.88-1.23-5.02-8.11-12.54 4.67-.49-13.53.49-21.89 2.95-24.84 1.23-2.46 4.67-1.23 11.31 4.18 6.39 5.41 11.31 15.98 15.25 32.46 6.59 28.06-19.7 26.26-26.81 4.92zm-45.01-5.41c1.57.31 9.34-1.09 9.34-14.76h-.49c-5.44-1.09-2.24-5.47-.74-5.9-1.72-2.95-3.44-4.18-5.41-4.67-8.15 0-11.65 12.66-8.12 21.15 1.24 2.46 3.21 3.69 5.42 4.18zm45.99 61.48c1.72 10.57 4.67 17.71 8.85 21.89-9.26 6.61-27.54 13.85-46.48 15.98l.49 1.23c8.36 1.23 16.48.49 24.84-2.46l-7.13 13.03c4.18-1.72 10.08-7.13 17.71-14.76 11.93-5.51 12.72-5.07 20.17-15.98-12.73-6.58-15.76-13.83-18.45-18.93z"],themeco:[441,512,[],"f5c6","M199.74 12.29c9.74-5.64 25.59-5.73 35.39-.21l188.13 105.95c9.81 5.52 17.76 19.14 17.76 30.38v213.87c0 11.26-7.93 24.89-17.71 30.46L235.09 499.88c-9.78 5.57-25.58 5.48-35.29-.21L17.58 392.95C7.87 387.26 0 373.52 0 362.27V148.41c0-11.26 7.9-24.96 17.63-30.59L199.74 12.29zM123.54 209c-15.69 0-31.39.14-47.08.14v99.87h18.83v-29.39h28.25c48.94 0 48.79-70.62 0-70.62zm137.96 98.73l-30.25-34.1c36.4-7.39 34.26-64.21-10.7-64.49-15.84 0-31.67-.14-47.51-.14v100.01h18.83v-33.38H210l29.1 33.38h22.4v-1.28zm-40.94-81.04c22.98 0 22.9 31.96 0 31.96h-28.68v-31.96h28.68zm-94.07-1.57c20.85 0 20.78 38.24 0 38.24H94.68v-38.23l31.81-.01zm189.65-17.97c-67.4 0-69.86 104.15 0 104.15 68.39-.01 68.33-104.15 0-104.15zm0 17.12c43.43 0 44.1 69.76 0 69.76-44.12 0-43.74-69.76 0-69.76z"],themeisle:[512,512,[],"f2b2","M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z"],"trade-federation":[496,512,[],"f513","M202.45 108.42v81.61H38.94l48.22 61.91h114.73v196.75h64.61V252.96h83.27v-62.69h-83.18V171.1h145.62v-62.68H202.45zm4.86 6h197.77v50.68H259.44v30.93h83.18v50.93h-83.26v195.73h-52.73V245.94H89.86l-39.95-49.91h157.4v-81.61zM247.99 8.8C111.03 8.8 0 119.83 0 256.8s111.03 248 247.99 248S496 393.76 496 256.8 384.96 8.8 247.99 8.8zm.02 13.24c129.66 0 234.76 105.12 234.76 234.78s-105.1 234.76-234.76 234.76S13.23 386.47 13.23 256.81 118.35 22.04 248.01 22.04zm0 7.89c-125.3 0-226.89 101.57-226.89 226.87s101.59 226.89 226.89 226.89S474.88 382.1 474.88 256.8 373.31 29.93 248.01 29.93zm-.02 13.3c117.95 0 213.56 95.62 213.56 213.56s-95.62 213.56-213.56 213.56S34.43 374.75 34.43 256.8 130.04 43.23 247.99 43.23zm-73.32 104.8l15.66 18.05-22.16-9.45-12.33 20.47 2.15-23.99-23.28-5.4 23.48-5.37-2.06-23.81 12.37 20.67 22.01-9.32-15.84 18.15zm-47.14-46.54l8.01 12.4 12.69-5.86-9.32 11.45 9.5 10.25-13.77-5.32-6.82 12.2.81-14.74-13.71-2.71 14.27-3.78-1.66-13.89zm250.77 75.59l11.99 19.56 20.88-9.11-14.9 17.45 15.11 17.04-21.2-8.78-11.54 19.64 1.8-22.87-22.24-4.9 22.31-5.36-2.21-22.67zm-107.05 98.45l13.86-3.22-1.28-14.17 7.35 12.18 13.08-5.59-9.31 10.75 9.36 10.71-13.1-5.54-7.29 12.21 1.22-14.17-13.89-3.16zm-125.43 6.5l23.73-3.87-1.73-24.53 11.01 21.38 22.79-9.22-16.93 17.08 15.81 18.83-21.47-10.82-13.02 20.86 3.66-23.77-23.85-5.94zm63.44-165.66v81.61H54.16l36.72 46.01h117.7v196.75h48.82V245.01h83.27v-47.03H257.4v-34.83h145.73v-46.78H209.26zm10.86 11.2h171.8v24.36H246.88v56.23h82.93v23.94h-82.93v197.42h-26.76V232.1H96.31l-20.09-23.94h143.9v-80.59z"],trello:[448,512,[],"f181","M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zM194.9 371.4c0 14.8-12 26.9-26.9 26.9H85.1c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9H168c14.8 0 26.9 12 26.9 26.9v254.3zm194.9-112c0 14.8-12 26.9-26.9 26.9H280c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v142.3z"],tripadvisor:[576,512,[],"f262","M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z"],tumblr:[320,512,[],"f173","M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"],"tumblr-square":[448,512,[],"f174","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z"],twitch:[448,512,[],"f1e8","M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z"],twitter:[512,512,[],"f099","M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"],"twitter-square":[448,512,[],"f081","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"],typo3:[433,512,[],"f42b","M330.8 341c-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9 0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C0 246 106.8 480 184.1 480c36.3 0 97.3-59.5 146.7-139M294.5 32c71.8 0 138.8 11.6 138.8 52.5 0 82.6-52.5 182.3-78.8 182.3-47.9 0-101.7-132.1-101.7-198.5 0-30.9 11.6-36.3 41.7-36.3"],uber:[448,512,[],"f402","M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"],uikit:[448,512,[],"f403","M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"],uniregistry:[384,512,[],"f404","M281.1 220.1H384v-14.8H281.1v14.8zm0-37.1H384v-12.4H281.1V183zm0 74.2H384v-17.3H281.1v17.3zm-157.7 86.7H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8m145.7-12.4h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3m-41.5 37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8M384 32H281.1v2.5H384V32zM192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480m89.1-334.2H384V136H281.1v9.8zm0-37.1H384v-7.4H281.1v7.4zm0-37.1H384v-4.9H281.1v4.9zm-178.2 99H0V183h102.9v-12.4zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2m64.1-118.8v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4m178.2 0c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1v12.4zm-203 156h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7m24.8-376.2H0v4.9h102.9v-4.9zm0-34.7H0v2.5h102.9V32zm0 173.3H0v14.8h102.9v-14.8zm0 34.6H0v17.3h102.9v-17.3zm0-103.9H0v9.9h102.9V136zm0-34.7H0v7.4h102.9v-7.4zm2.8 207.9H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3"],untappd:[640,512,[],"f405","M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"],usb:[640,512,[],"f287","M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"],ussunnah:[512,512,[],"f407","M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z"],vaadin:[448,512,[],"f408","M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"],viacoin:[384,512,[],"f237","M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z"],viadeo:[448,512,[],"f2a9","M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"],"viadeo-square":[448,512,[],"f2aa","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z"],viber:[512,512,[],"f409","M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"],vimeo:[448,512,[],"f40a","M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"],"vimeo-square":[448,512,[],"f194","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z"],"vimeo-v":[448,512,[],"f27d","M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"],vine:[384,512,[],"f1ca","M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"],vk:[576,512,[],"f189","M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z"],vnv:[640,512,[],"f40b","M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z"],vuejs:[448,512,[],"f41f","M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z"],weebly:[512,512,[],"f5cc","M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z"],weibo:[512,512,[],"f18a","M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"],weixin:[576,512,[],"f1d7","M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z"],whatsapp:[448,512,[],"f232","M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"],"whatsapp-square":[448,512,[],"f40c","M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"],whmcs:[448,512,[],"f40d","M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"],"wikipedia-w":[640,512,[],"f266","M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z"],windows:[448,512,[],"f17a","M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"],wix:[640,512,[],"f5cf","M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z"],"wizards-of-the-coast":[640,512,[],"f730","M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z"],"wolf-pack-battalion":[456,512,[],"f514","M239.73 471.53l10.56 15.84 5.28-12.32 5.28 7.04V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05 27.87 3.34 53.94 10.58 63.34 54.1l-30.35 8.36c11.15 23.04 17.01 46.76 13.2 72.14L384 313.18l-6.16 33.43-18.47-7.04-8.8 33.43-19.35-7.04 26.39 21.11 8.8-28.15 24.63 5.28 7.04-35.63 26.39 14.52c.25-20.02 6.97-58.06-8.8-84.45l26.39 5.28c3.99-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 1.96-19.87 17.45-42.62 43.11-49.7-43.99 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.47 22.87-89.73 65.1-93.25 147.79l-58.06 38.71-3.52 93.25 107.33-59.82 7.04 7.04-17.59 3.52-43.99 38.71-15.84-5.28-28.15 49.26-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-43.99-38.71-17.59-3.52 7.04-7.04 107.33 59.82-3.52-93.25-58.06-38.71C157.03 65.1 107.77 22.87 67.3 0c-17.54 61.12-4.4 118.76 0 130.2 14.96-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9C29.94 160.06.44 191.78 0 216.85l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7.04 35.63 24.63-5.28 8.8 28.15 26.39-21.11-19.34 7.05-8.8-33.43-18.47 7.04-6.16-33.43-27.27 7.04c-3.82-25.38 2.05-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.91l5.28-7.04 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95.01l-15.84-10.56c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.26-.27 13.88-3.51 22.88zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7.04 8.24-7.9 15.55-16.27 22.87-24.63zm24.63 5.28c-.02-13.43-2.05-24.21-5.28-33.43-5.38 9.09-11.23 18.18-18.47 27.27l23.75 6.16zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-11.99 6.65-28.14 7.04-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 43.99-14.08-10.6-18.95-27.22-25.52-45.75-28.15zM137.68 376.52l15.84-10.56c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7.04-8.24-7.9-15.55-16.27-22.87-24.63zm-24.64 5.28c.02-13.43 2.05-24.21 5.28-33.43 5.38 9.09 11.23 18.18 18.47 27.27l-23.75 6.16zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 36.95-10.56-5.05-11.99-6.65-28.14-7.04-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-43.99-14.08 10.61-18.95 27.22-25.52 45.75-28.15z"],wordpress:[512,512,[],"f19a","M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"],"wordpress-simple":[512,512,[],"f411","M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"],wpbeginner:[512,512,[],"f297","M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z"],wpexplorer:[512,512,[],"f2de","M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"],wpforms:[448,512,[],"f298","M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z"],xbox:[512,512,[],"f412","M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"],xing:[384,512,[],"f168","M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"],"xing-square":[448,512,[],"f169","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z"],"y-combinator":[448,512,[],"f23b","M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z"],yahoo:[448,512,[],"f19e","M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z"],yandex:[256,512,[],"f413","M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z"],"yandex-international":[320,512,[],"f414","M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z"],yelp:[384,512,[],"f1e9","M136.9 328c-1 .3-109.2 35.7-115.8 35.7-15.2-.9-18.5-16.2-19.9-31.2-1.5-14.2-1.4-29.8.3-46.8 1.9-18.8 5.5-45.1 24.2-44 4.8 0 67.1 25.9 112.7 44.4 17.1 6.8 18.6 35.8-1.5 41.9zm57.9-113.9c1.8 38.2-25.5 48.5-47.2 14.3L41.3 60.4c-1.5-6.6.3-12.4 5.3-17.4C62.2 26.5 146 3.2 168.1 8.9c7.5 1.9 12.1 6.1 13.8 12.6 1.3 8.3 11.5 167.4 12.9 192.6zm-1.4 164.8c0 4.6.2 116.4-1.7 121.5-2.3 6-7 9.7-14.3 11.2-10.1 1.7-27.1-1.9-51-10.7-22-8.1-56.7-21.5-49.3-42.5 2.8-6.9 51.4-62.8 77.3-93.6 12-15.2 39.8-5.5 39 14.1zm180.2-117.8c-5.6 3.7-110.8 28.2-118.1 30.6l.3-.6c-18.1 4.7-35.4-18.5-23.3-34.6 3.7-3.7 65.9-92.4 72.8-97 5.2-3.6 11.3-3.8 18.3-.6 18.4 8.8 55.1 63.1 57.4 84.6-.1 2.9 1.2 11.7-7.4 17.6zm10.1 130.7c-2.7 20.6-44.5 73.4-63.8 81-6.9 2.6-12.9 2-17.7-2-5-3.5-61.8-97.1-64.9-102.3-10.9-16.2 6.8-39.8 25.6-33.2 0 0 110.5 35.7 114.7 39.4 5.2 4.1 7.2 9.8 6.1 17.1z"],yoast:[448,512,[],"f2b1","M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z"],youtube:[576,512,[],"f167","M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"],"youtube-square":[448,512,[],"f431","M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z"],zhihu:[640,512,[],"f63f","M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z"]};!function(c){try{c()}catch(c){if(!m)throw c}}(function(){!function c(l,z){var h=Object.keys(z).reduce(function(c,l){var h=z[l];return h.icon?c[h.iconName]=h.icon:c[l]=h,c},{});"function"==typeof t.hooks.addPack?t.hooks.addPack(l,h):t.styles[l]=M({},t.styles[l]||{},h),"fas"===l&&c("fa",z)}("fab",f)})}(),function(){"use strict";var c={};try{"undefined"!=typeof window&&(c=window)}catch(c){}var l=(c.navigator||{}).userAgent,h=void 0===l?"":l,z=c,v=(~h.indexOf("MSIE")||h.indexOf("Trident/"),"___FONT_AWESOME___"),m=function(){try{return!0}catch(c){return!1}}(),s=[1,2,3,4,5,6,7,8,9,10],e=s.concat([11,12,13,14,15,16,17,18,19,20]);["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter"].concat(s.map(function(c){return c+"x"})).concat(e.map(function(c){return"w-"+c}));var a=z||{};a[v]||(a[v]={}),a[v].styles||(a[v].styles={}),a[v].hooks||(a[v].hooks={}),a[v].shims||(a[v].shims=[]);var t=a[v],M=Object.assign||function(c){for(var l=1;l<arguments.length;l++){var h=arguments[l];for(var z in h)Object.prototype.hasOwnProperty.call(h,z)&&(c[z]=h[z])}return c};var f={"address-book":[448,512,[],"f2b9","M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],"address-card":[576,512,[],"f2bb","M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z"],angry:[496,512,[],"f556","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z"],"arrow-alt-circle-down":[512,512,[],"f358","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z"],"arrow-alt-circle-left":[512,512,[],"f359","M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z"],"arrow-alt-circle-right":[512,512,[],"f35a","M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z"],"arrow-alt-circle-up":[512,512,[],"f35b","M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z"],bell:[448,512,[],"f0f3","M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z"],"bell-slash":[640,512,[],"f1f6","M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"],bookmark:[384,512,[],"f02e","M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"],building:[448,512,[],"f1ad","M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z"],calendar:[448,512,[],"f133","M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z"],"calendar-alt":[448,512,[],"f073","M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"calendar-check":[448,512,[],"f274","M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z"],"calendar-minus":[448,512,[],"f272","M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"calendar-plus":[448,512,[],"f271","M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"calendar-times":[448,512,[],"f273","M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"caret-square-down":[448,512,[],"f150","M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"caret-square-left":[448,512,[],"f191","M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"caret-square-right":[448,512,[],"f152","M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"caret-square-up":[448,512,[],"f151","M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"chart-bar":[512,512,[],"f080","M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z"],"check-circle":[512,512,[],"f058","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"],"check-square":[448,512,[],"f14a","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"],circle:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"],clipboard:[384,512,[],"f328","M336 64h-80c0-35.29-28.71-64-64-64s-64 28.71-64 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h42v36c0 6.627 5.373 12 12 12h168c6.627 0 12-5.373 12-12v-36h42a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zM192 40c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24"],clock:[512,512,[],"f017","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"],clone:[512,512,[],"f24d","M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"],"closed-captioning":[512,512,[],"f20a","M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z"],comment:[512,512,[],"f075","M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],"comment-alt":[512,512,[],"f27a","M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z"],"comment-dots":[512,512,[],"f4ad","M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],comments:[576,512,[],"f086","M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z"],compass:[496,512,[],"f14e","M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],copy:[448,512,[],"f0c5","M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"],copyright:[512,512,[],"f1f9","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z"],"credit-card":[576,512,[],"f09d","M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z"],dizzy:[496,512,[],"f567","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z"],"dot-circle":[512,512,[],"f192","M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"],edit:[576,512,[],"f044","M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"],envelope:[512,512,[],"f0e0","M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"],"envelope-open":[512,512,[],"f2b6","M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z"],eye:[576,512,[],"f06e","M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"],"eye-slash":[576,512,[],"f070","M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"],file:[384,512,[],"f15b","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"],"file-alt":[384,512,[],"f15c","M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"],"file-archive":[384,512,[],"f1c6","M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 51.882L332.118 128H256V51.882zM336 464H48V48h79.714v16h32V48H208v104c0 13.255 10.745 24 24 24h104v288zM192.27 96h-32V64h32v32zm-32 0v32h-32V96h32zm0 64v32h-32v-32h32zm32 0h-32v-32h32v32zm1.909 105.678A12 12 0 0 0 182.406 256H160.27v-32h-32v32l-19.69 97.106C101.989 385.611 126.834 416 160 416c33.052 0 57.871-30.192 51.476-62.62l-17.297-87.702zM160.27 390.073c-17.918 0-32.444-12.105-32.444-27.036 0-14.932 14.525-27.036 32.444-27.036s32.444 12.105 32.444 27.036c0 14.931-14.526 27.036-32.444 27.036zm32-166.073h-32v-32h32v32z"],"file-audio":[384,512,[],"f1c7","M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z"],"file-code":[384,512,[],"f1c9","M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm101.677-115.115L116.854 320l32.822-28.885a8.793 8.793 0 0 0 .605-12.624l-17.403-18.564c-3.384-3.613-8.964-3.662-12.438-.401L62.78 313.58c-3.703 3.474-3.704 9.367.001 12.84l57.659 54.055a8.738 8.738 0 0 0 6.012 2.381 8.746 8.746 0 0 0 6.427-2.782l17.403-18.563a8.795 8.795 0 0 0-.605-12.626zm84.284-127.85l-24.401-7.084a8.796 8.796 0 0 0-10.905 5.998L144.04 408.061c-1.353 4.66 1.338 9.552 5.998 10.905l24.403 7.084c4.68 1.355 9.557-1.354 10.905-5.998l54.612-188.112c1.354-4.66-1.337-9.552-5.997-10.905zm87.258 92.545l-57.658-54.055c-3.526-3.307-9.099-3.165-12.439.401l-17.403 18.563a8.795 8.795 0 0 0 .605 12.625L267.146 320l-32.822 28.885a8.793 8.793 0 0 0-.605 12.624l17.403 18.564a8.797 8.797 0 0 0 12.439.401h-.001l57.66-54.055c3.703-3.473 3.703-9.366-.001-12.839z"],"file-excel":[384,512,[],"f1c3","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z"],"file-image":[384,512,[],"f1c5","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"],"file-pdf":[384,512,[],"f1c1","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z"],"file-powerpoint":[384,512,[],"f1c4","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z"],"file-video":[384,512,[],"f1c8","M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z"],"file-word":[384,512,[],"f1c2","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z"],flag:[512,512,[],"f024","M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z"],flushed:[496,512,[],"f579","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],folder:[512,512,[],"f07b","M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z"],"folder-open":[576,512,[],"f07c","M527.943 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h400a48.001 48.001 0 0 0 40.704-22.56l79.942-128c19.948-31.917-3.038-73.44-40.703-73.44zM54 112h134.118l64 64H426a6 6 0 0 1 6 6v42H152a48 48 0 0 0-41.098 23.202L48 351.449V117.993A5.993 5.993 0 0 1 54 112zm394 288H72l77.234-128H528l-80 128z"],"font-awesome-logo-full":[3992,512,["Font Awesome"],"f4e6","M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],frown:[496,512,[],"f119","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"],"frown-open":[496,512,[],"f57a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z"],futbol:[496,512,[],"f1e3","M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z"],gem:[576,512,[],"f3a5","M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z"],grimace:[496,512,[],"f57f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z"],grin:[496,512,[],"f580","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"],"grin-alt":[496,512,[],"f581","M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z"],"grin-beam":[496,512,[],"f582","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z"],"grin-beam-sweat":[496,512,[],"f583","M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],"grin-hearts":[496,512,[],"f584","M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z"],"grin-squint":[496,512,[],"f585","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z"],"grin-squint-tears":[512,512,[],"f586","M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z"],"grin-stars":[496,512,[],"f587","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z"],"grin-tears":[640,512,[],"f588","M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],"grin-tongue":[496,512,[],"f589","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],"grin-tongue-squint":[496,512,[],"f58a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z"],"grin-tongue-wink":[496,512,[],"f58b","M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z"],"grin-wink":[496,512,[],"f58c","M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],"hand-lizard":[576,512,[],"f258","M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z"],"hand-paper":[448,512,[],"f256","M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z"],"hand-peace":[448,512,[],"f25b","M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z"],"hand-point-down":[448,512,[],"f0a7","M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z"],"hand-point-left":[512,512,[],"f0a5","M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],"hand-point-right":[512,512,[],"f0a4","M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],"hand-point-up":[448,512,[],"f0a6","M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],"hand-pointer":[448,512,[],"f25a","M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"],"hand-rock":[512,512,[],"f255","M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"],"hand-scissors":[512,512,[],"f257","M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z"],"hand-spock":[512,512,[],"f259","M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z"],handshake:[640,512,[],"f2b5","M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"],hdd:[576,512,[],"f0a0","M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z"],heart:[512,512,[],"f004","M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"],hospital:[448,512,[],"f0f8","M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z"],hourglass:[384,512,[],"f254","M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z"],"id-badge":[384,512,[],"f2c1","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],"id-card":[576,512,[],"f2c2","M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"],image:[512,512,[],"f03e","M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"],images:[576,512,[],"f302","M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z"],keyboard:[576,512,[],"f11c","M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z"],kiss:[496,512,[],"f596","M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],"kiss-beam":[496,512,[],"f597","M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z"],"kiss-wink-heart":[504,512,[],"f598","M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z"],laugh:[496,512,[],"f599","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],"laugh-beam":[496,512,[],"f59a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],"laugh-squint":[496,512,[],"f59b","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],"laugh-wink":[496,512,[],"f59c","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],lemon:[512,512,[],"f094","M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z"],"life-ring":[512,512,[],"f1cd","M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z"],lightbulb:[352,512,[],"f0eb","M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"],"list-alt":[512,512,[],"f022","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z"],map:[576,512,[],"f279","M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z"],meh:[496,512,[],"f11a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],"meh-blank":[496,512,[],"f5a4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],"meh-rolling-eyes":[496,512,[],"f5a5","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],"minus-square":[448,512,[],"f146","M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"money-bill-alt":[640,512,[],"f3d1","M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z"],moon:[512,512,[],"f186","M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z"],newspaper:[576,512,[],"f1ea","M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z"],"object-group":[512,512,[],"f247","M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z"],"object-ungroup":[576,512,[],"f248","M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z"],"paper-plane":[512,512,[],"f1d8","M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"],"pause-circle":[512,512,[],"f28b","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z"],"play-circle":[512,512,[],"f144","M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z"],"plus-square":[448,512,[],"f0fe","M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"question-circle":[512,512,[],"f059","M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"],registered:[512,512,[],"f25d","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z"],"sad-cry":[496,512,[],"f5b3","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z"],"sad-tear":[496,512,[],"f5b4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z"],save:[448,512,[],"f0c7","M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"],"share-square":[576,512,[],"f14d","M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z"],smile:[496,512,[],"f118","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"],"smile-beam":[496,512,[],"f5b8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z"],"smile-wink":[496,512,[],"f4da","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z"],snowflake:[448,512,[],"f2dc","M438.237 355.927l-66.574-38.54 59.448-10.327c5.846-1.375 10.609-5.183 13.458-10.13 2.48-4.307 3.506-9.478 2.524-14.651-2.11-11.115-12.686-18.039-23.621-15.467l-85.423 31.115L255.914 256l82.136-41.926 85.423 31.115c10.936 2.572 21.512-4.352 23.621-15.467 2.111-11.115-5.046-22.209-15.981-24.781l-59.448-10.327 66.573-38.54c9.54-5.523 12.615-18.092 6.867-28.074-5.748-9.982-18.14-13.596-27.68-8.074l-66.574 38.54 20.805-56.787c3.246-10.782-2.758-22.542-13.413-26.268-10.654-3.725-21.922 1.997-25.168 12.779l-15.838 89.735-72.423 41.926V136l69.585-58.621c7.689-8.21 6.997-20.856-1.548-28.245-8.545-7.391-21.705-6.723-29.394 1.486l-38.644 46.46V20c0-11.046-9.318-20-20.813-20s-20.813 8.954-20.813 20v77.08l-38.644-46.46c-7.689-8.21-20.849-8.876-29.394-1.486-8.544 7.389-9.236 20.035-1.547 28.245L203.187 136v83.853l-72.423-41.926-15.838-89.736c-3.247-10.782-14.515-16.504-25.169-12.779-10.656 3.725-16.659 15.486-13.413 26.268l20.805 56.787-66.573-38.54c-9.54-5.523-21.933-1.908-27.68 8.074s-2.673 22.551 6.867 28.074l66.574 38.54-59.449 10.328C5.953 207.515-1.202 218.609.907 229.724c2.11 11.114 12.686 18.038 23.622 15.466l85.422-31.115L192.086 256l-82.136 41.926-85.423-31.115c-10.936-2.572-21.511 4.352-23.622 15.466-2.109 11.113 5.046 22.209 15.981 24.781l59.449 10.328-66.574 38.54C.223 361.449-2.852 374.018 2.896 384s18.14 13.597 27.68 8.074l66.574-38.54-20.805 56.786c-1.735 5.764-.828 11.805 2.02 16.751 2.48 4.307 6.433 7.784 11.392 9.517 10.655 3.725 21.923-1.997 25.169-12.779l15.838-89.736 72.423-41.926V376l-69.585 58.621c-7.69 8.21-6.997 20.855 1.547 28.245 8.544 7.388 21.705 6.723 29.394-1.487l38.644-46.46V492c0 11.046 9.318 20 20.813 20s20.813-8.954 20.813-20v-77.081l38.644 46.46c4.111 4.389 9.782 6.621 15.478 6.621 4.96 0 9.939-1.694 13.916-5.134 8.545-7.39 9.237-20.035 1.548-28.245L244.813 376v-83.853l72.423 41.926 15.838 89.736c3.246 10.782 14.514 16.504 25.168 12.779 10.653-3.726 16.659-15.487 13.412-26.268l-20.805-56.787 66.574 38.54c9.54 5.523 21.933 1.908 27.68-8.074 5.749-9.981 2.675-22.55-6.866-28.072z"],square:[448,512,[],"f0c8","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"],star:[576,512,[],"f005","M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"],"star-half":[576,512,[],"f089","M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z"],"sticky-note":[448,512,[],"f249","M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z"],"stop-circle":[512,512,[],"f28d","M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z"],sun:[512,512,[],"f185","M220.116 487.936l-20.213-49.425a3.992 3.992 0 0 0-5.808-1.886l-45.404 28.104c-29.466 18.24-66.295-8.519-58.054-42.179l12.699-51.865a3.993 3.993 0 0 0-3.59-4.941l-53.251-3.951c-34.554-2.562-48.632-45.855-22.174-68.247L65.08 259.05a3.992 3.992 0 0 0 0-6.106l-40.76-34.497c-26.45-22.384-12.39-65.682 22.174-68.246l53.251-3.951a3.993 3.993 0 0 0 3.59-4.941L90.637 89.443c-8.239-33.656 28.581-60.42 58.054-42.179l45.403 28.104a3.993 3.993 0 0 0 5.808-1.887l20.213-49.425c13.116-32.071 58.638-32.081 71.758 0l20.212 49.424a3.994 3.994 0 0 0 5.809 1.887l45.403-28.104c29.464-18.236 66.297 8.513 58.054 42.179l-12.699 51.865a3.995 3.995 0 0 0 3.59 4.941l53.251 3.951c34.553 2.563 48.633 45.854 22.175 68.246l-40.76 34.497a3.993 3.993 0 0 0 0 6.107l40.76 34.496c26.511 22.441 12.322 65.689-22.175 68.247l-53.251 3.951a3.993 3.993 0 0 0-3.589 4.942l12.698 51.864c8.241 33.658-28.583 60.421-58.054 42.18l-45.403-28.104a3.994 3.994 0 0 0-5.809 1.887l-20.212 49.424c-13.159 32.178-58.675 31.993-71.757 0zm16.814-64.568l19.064 46.616 19.064-46.615c10.308-25.2 40.778-35.066 63.892-20.759l42.822 26.507-11.976-48.919c-6.475-26.444 12.38-52.339 39.487-54.349l50.226-3.726-38.444-32.536c-20.782-17.591-20.747-49.621.001-67.18l38.442-32.536-50.225-3.727c-27.151-2.015-45.95-27.948-39.488-54.349l11.978-48.919-42.823 26.507c-23.151 14.327-53.603 4.4-63.892-20.76l-19.064-46.615-19.064 46.617c-10.305 25.198-40.778 35.066-63.891 20.76l-42.823-26.508 11.977 48.918c6.474 26.446-12.381 52.338-39.488 54.35l-50.224 3.726 38.443 32.537c20.782 17.588 20.747 49.619 0 67.178L52.48 322.123l50.226 3.726c27.151 2.014 45.95 27.947 39.487 54.349l-11.977 48.919 42.823-26.507c23.188-14.355 53.622-4.352 63.891 20.758zM256 384c-70.58 0-128-57.421-128-128 0-70.58 57.42-128 128-128 70.579 0 128 57.42 128 128 0 70.579-57.421 128-128 128zm0-208c-44.112 0-80 35.888-80 80s35.888 80 80 80 80-35.888 80-80-35.888-80-80-80z"],surprise:[496,512,[],"f5c2","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],"thumbs-down":[512,512,[],"f165","M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z"],"thumbs-up":[512,512,[],"f164","M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],"times-circle":[512,512,[],"f057","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"],tired:[496,512,[],"f5c8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z"],"trash-alt":[448,512,[],"f2ed","M192 188v216c0 6.627-5.373 12-12 12h-24c-6.627 0-12-5.373-12-12V188c0-6.627 5.373-12 12-12h24c6.627 0 12 5.373 12 12zm100-12h-24c-6.627 0-12 5.373-12 12v216c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12V188c0-6.627-5.373-12-12-12zm132-96c13.255 0 24 10.745 24 24v12c0 6.627-5.373 12-12 12h-20v336c0 26.51-21.49 48-48 48H80c-26.51 0-48-21.49-48-48V128H12c-6.627 0-12-5.373-12-12v-12c0-13.255 10.745-24 24-24h74.411l34.018-56.696A48 48 0 0 1 173.589 0h100.823a48 48 0 0 1 41.16 23.304L349.589 80H424zm-269.611 0h139.223L276.16 50.913A6 6 0 0 0 271.015 48h-94.028a6 6 0 0 0-5.145 2.913L154.389 80zM368 128H80v330a6 6 0 0 0 6 6h276a6 6 0 0 0 6-6V128z"],user:[448,512,[],"f007","M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z"],"user-circle":[496,512,[],"f2bd","M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z"],"window-close":[512,512,[],"f410","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z"],"window-maximize":[512,512,[],"f2d0","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"],"window-minimize":[512,512,[],"f2d1","M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"],"window-restore":[512,512,[],"f2d2","M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z"]};!function(c){try{c()}catch(c){if(!m)throw c}}(function(){!function c(l,z){var h=Object.keys(z).reduce(function(c,l){var h=z[l];return h.icon?c[h.iconName]=h.icon:c[l]=h,c},{});"function"==typeof t.hooks.addPack?t.hooks.addPack(l,h):t.styles[l]=M({},t.styles[l]||{},h),"fas"===l&&c("fa",z)}("far",f)})}(),function(){"use strict";var c={};try{"undefined"!=typeof window&&(c=window)}catch(c){}var l=(c.navigator||{}).userAgent,h=void 0===l?"":l,z=c,v=(~h.indexOf("MSIE")||h.indexOf("Trident/"),"___FONT_AWESOME___"),m=function(){try{return!0}catch(c){return!1}}(),s=[1,2,3,4,5,6,7,8,9,10],e=s.concat([11,12,13,14,15,16,17,18,19,20]);["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter"].concat(s.map(function(c){return c+"x"})).concat(e.map(function(c){return"w-"+c}));var a=z||{};a[v]||(a[v]={}),a[v].styles||(a[v].styles={}),a[v].hooks||(a[v].hooks={}),a[v].shims||(a[v].shims=[]);var t=a[v],M=Object.assign||function(c){for(var l=1;l<arguments.length;l++){var h=arguments[l];for(var z in h)Object.prototype.hasOwnProperty.call(h,z)&&(c[z]=h[z])}return c};var f={ad:[512,512,[],"f641","M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"],"address-book":[448,512,[],"f2b9","M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],"address-card":[576,512,[],"f2bb","M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"],adjust:[512,512,[],"f042","M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"],"air-freshener":[384,512,[],"f5d0","M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z"],"align-center":[448,512,[],"f037","M352 44v40c0 8.837-7.163 16-16 16H112c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h224c8.837 0 16 7.163 16 16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm320-200H112c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"],"align-justify":[448,512,[],"f039","M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm16 144h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0-128h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],"align-left":[448,512,[],"f036","M288 44v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16zM0 172v40c0 8.837 7.163 16 16 16h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16zm16 312h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm256-200H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"],"align-right":[448,512,[],"f038","M160 84V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H176c-8.837 0-16-7.163-16-16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],allergies:[448,512,[],"f461","M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],ambulance:[640,512,[],"f0f9","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],"american-sign-language-interpreting":[640,512,[],"f2a3","M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"],anchor:[576,512,[],"f13d","M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"],"angle-double-down":[320,512,[],"f103","M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"],"angle-double-left":[448,512,[],"f100","M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"],"angle-double-right":[448,512,[],"f101","M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"],"angle-double-up":[320,512,[],"f102","M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"],"angle-down":[320,512,[],"f107","M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"],"angle-left":[256,512,[],"f104","M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"],"angle-right":[256,512,[],"f105","M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"],"angle-up":[320,512,[],"f106","M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"],angry:[496,512,[],"f556","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"],ankh:[320,512,[],"f644","M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"],"apple-alt":[448,512,[],"f5d1","M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"],archive:[512,512,[],"f187","M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"],archway:[576,512,[],"f557","M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"],"arrow-alt-circle-down":[512,512,[],"f358","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"],"arrow-alt-circle-left":[512,512,[],"f359","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"],"arrow-alt-circle-right":[512,512,[],"f35a","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"],"arrow-alt-circle-up":[512,512,[],"f35b","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"],"arrow-circle-down":[512,512,[],"f0ab","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"],"arrow-circle-left":[512,512,[],"f0a8","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"],"arrow-circle-right":[512,512,[],"f0a9","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"],"arrow-circle-up":[512,512,[],"f0aa","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"],"arrow-down":[448,512,[],"f063","M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"],"arrow-left":[448,512,[],"f060","M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"],"arrow-right":[448,512,[],"f061","M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"],"arrow-up":[448,512,[],"f062","M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"],"arrows-alt":[512,512,[],"f0b2","M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"],"arrows-alt-h":[512,512,[],"f337","M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"],"arrows-alt-v":[256,512,[],"f338","M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"],"assistive-listening-systems":[512,512,[],"f2a2","M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"],asterisk:[512,512,[],"f069","M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"],at:[512,512,[],"f1fa","M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"],atlas:[448,512,[],"f558","M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"],atom:[448,512,[],"f5d2","M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],"audio-description":[512,512,[],"f29e","M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"],award:[384,512,[],"f559","M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"],backspace:[640,512,[],"f55a","M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"],backward:[512,512,[],"f04a","M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"],"balance-scale":[640,512,[],"f24e","M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],ban:[512,512,[],"f05e","M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"],"band-aid":[640,512,[],"f462","M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"],barcode:[512,512,[],"f02a","M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"],bars:[448,512,[],"f0c9","M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],"baseball-ball":[496,512,[],"f433","M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"],"basketball-ball":[496,512,[],"f434","M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"],bath:[512,512,[],"f2cd","M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"],"battery-empty":[640,512,[],"f244","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"],"battery-full":[640,512,[],"f240","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"],"battery-half":[640,512,[],"f242","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"],"battery-quarter":[640,512,[],"f243","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"],"battery-three-quarters":[640,512,[],"f241","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"],bed:[640,512,[],"f236","M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"],beer:[448,512,[],"f0fc","M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"],bell:[448,512,[],"f0f3","M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"],"bell-slash":[640,512,[],"f1f6","M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"],"bezier-curve":[640,512,[],"f55b","M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],bible:[448,512,[],"f647","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],bicycle:[640,512,[],"f206","M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"],binoculars:[512,512,[],"f1e5","M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"],"birthday-cake":[448,512,[],"f1fd","M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"],blender:[512,512,[],"f517","M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"],"blender-phone":[576,512,[],"f6b6","M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],blind:[384,512,[],"f29d","M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"],bold:[384,512,[],"f032","M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z"],bolt:[320,512,[],"f0e7","M295.973 160H180.572L215.19 30.184C219.25 14.956 207.756 0 192 0H56C43.971 0 33.8 8.905 32.211 20.828l-31.996 240C-1.704 275.217 9.504 288 24.004 288h118.701L96.646 482.466C93.05 497.649 104.659 512 119.992 512c8.35 0 16.376-4.374 20.778-11.978l175.973-303.997c9.244-15.967-2.288-36.025-20.77-36.025z"],bomb:[512,512,[],"f1e2","M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"],bone:[640,512,[],"f5d7","M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"],bong:[448,512,[],"f55c","M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"],book:[448,512,[],"f02d","M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"],"book-dead":[448,512,[],"f6b7","M272 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.18 0 80 28.65 80 64 0 20.87-12.68 39.23-32 50.91V184c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-13.09c-19.32-11.68-32-30.04-32-50.91 0-35.35 35.82-64 80-64zM129.05 233.85a7.996 7.996 0 0 1-4.2-10.5l6.29-14.7a7.995 7.995 0 0 1 10.51-4.2L240 246.6l98.35-42.15c4.06-1.74 8.77.14 10.51 4.2l6.29 14.7a7.996 7.996 0 0 1-4.2 10.5L280.6 264l70.34 30.15a7.996 7.996 0 0 1 4.2 10.5l-6.29 14.7a8.008 8.008 0 0 1-10.51 4.21L240 281.4l-98.35 42.15a8.003 8.003 0 0 1-10.51-4.21l-6.29-14.7a7.996 7.996 0 0 1 4.2-10.5L199.4 264l-70.35-30.15zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64zM208 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16z"],"book-open":[576,512,[],"f518","M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"],"book-reader":[512,512,[],"f5da","M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"],bookmark:[384,512,[],"f02e","M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"],"bowling-ball":[496,512,[],"f436","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],box:[512,512,[],"f466","M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"],"box-open":[640,512,[],"f49e","M53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9zm585.1 102.8L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9z"],boxes:[576,512,[],"f468","M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"],braille:[640,512,[],"f2a1","M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"],brain:[576,512,[],"f5dc","M208 0c-29.87 0-54.74 20.55-61.8 48.22-.75-.02-1.45-.22-2.2-.22-35.34 0-64 28.65-64 64 0 4.84.64 9.51 1.66 14.04C52.54 138 32 166.57 32 200c0 12.58 3.16 24.32 8.34 34.91C16.34 248.72 0 274.33 0 304c0 33.34 20.42 61.88 49.42 73.89-.9 4.57-1.42 9.28-1.42 14.11 0 39.76 32.23 72 72 72 4.12 0 8.1-.55 12.03-1.21C141.61 491.31 168.25 512 200 512c39.77 0 72-32.24 72-72V205.45c-10.91 8.98-23.98 15.45-38.36 18.39-4.97 1.02-9.64-2.82-9.64-7.89v-16.18c0-3.57 2.35-6.78 5.8-7.66 24.2-6.16 42.2-27.95 42.2-54.04V64c0-35.35-28.66-64-64-64zm368 304c0-29.67-16.34-55.28-40.34-69.09 5.17-10.59 8.34-22.33 8.34-34.91 0-33.43-20.54-62-49.66-73.96 1.02-4.53 1.66-9.2 1.66-14.04 0-35.35-28.66-64-64-64-.75 0-1.45.2-2.2.22C422.74 20.55 397.87 0 368 0c-35.34 0-64 28.65-64 64v74.07c0 26.09 17.99 47.88 42.2 54.04 3.46.88 5.8 4.09 5.8 7.66v16.18c0 5.07-4.68 8.91-9.64 7.89-14.38-2.94-27.44-9.41-38.36-18.39V440c0 39.76 32.23 72 72 72 31.75 0 58.39-20.69 67.97-49.21 3.93.67 7.91 1.21 12.03 1.21 39.77 0 72-32.24 72-72 0-4.83-.52-9.54-1.42-14.11 29-12.01 49.42-40.55 49.42-73.89z"],briefcase:[512,512,[],"f0b1","M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"],"briefcase-medical":[512,512,[],"f469","M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"],"broadcast-tower":[640,512,[],"f519","M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"],broom:[640,512,[],"f51a","M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"],brush:[384,512,[],"f55d","M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"],bug:[512,512,[],"f188","M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"],building:[448,512,[],"f1ad","M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"],bullhorn:[576,512,[],"f0a1","M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"],bullseye:[496,512,[],"f140","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"],burn:[384,512,[],"f46a","M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"],bus:[512,512,[],"f207","M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"bus-alt":[512,512,[],"f55e","M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"business-time":[640,512,[],"f64a","M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"],calculator:[448,512,[],"f1ec","M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"],calendar:[448,512,[],"f133","M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"],"calendar-alt":[448,512,[],"f073","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z"],"calendar-check":[448,512,[],"f274","M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"],"calendar-minus":[448,512,[],"f272","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"],"calendar-plus":[448,512,[],"f271","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"],"calendar-times":[448,512,[],"f273","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"],camera:[512,512,[],"f030","M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"],"camera-retro":[512,512,[],"f083","M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"],campground:[640,512,[],"f6bb","M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"],cannabis:[512,512,[],"f55f","M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"],capsules:[576,512,[],"f46b","M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"],car:[512,512,[],"f1b9","M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"],"car-alt":[480,512,[],"f5de","M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"],"car-battery":[512,512,[],"f5df","M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"],"car-crash":[640,512,[],"f5e1","M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"],"car-side":[640,512,[],"f5e4","M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"],"caret-down":[320,512,[],"f0d7","M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"],"caret-left":[192,512,[],"f0d9","M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"],"caret-right":[192,512,[],"f0da","M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"],"caret-square-down":[448,512,[],"f150","M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"],"caret-square-left":[448,512,[],"f191","M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"],"caret-square-right":[448,512,[],"f152","M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"],"caret-square-up":[448,512,[],"f151","M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"],"caret-up":[320,512,[],"f0d8","M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"],"cart-arrow-down":[576,512,[],"f218","M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"],"cart-plus":[576,512,[],"f217","M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"],cat:[512,512,[],"f6be","M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],certificate:[512,512,[],"f0a3","M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"],chair:[448,512,[],"f6c0","M446.33 341.88l-10.67-32A31.996 31.996 0 0 0 405.3 288H42.69c-13.77 0-26 8.81-30.36 21.88l-10.67 32C-5.24 362.6 10.18 384 32.03 384H32v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h256v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-.03c21.85 0 37.27-21.4 30.36-42.12zM112 128c0-29.48 16.2-54.99 40-68.87V256h48V48h48v208h48V59.13c23.8 13.88 40 39.39 40 68.87v128h48V128C384 57.31 326.69 0 256 0h-64C121.31 0 64 57.31 64 128v128h48V128z"],chalkboard:[640,512,[],"f51b","M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],"chalkboard-teacher":[640,512,[],"f51c","M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"],"charging-station":[576,512,[],"f5e7","M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"],"chart-area":[512,512,[],"f1fe","M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"],"chart-bar":[512,512,[],"f080","M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],"chart-line":[512,512,[],"f201","M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"],"chart-pie":[544,512,[],"f200","M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"],check:[512,512,[],"f00c","M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"],"check-circle":[512,512,[],"f058","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"],"check-double":[512,512,[],"f560","M504.5 171.95l-36.2-36.41c-10-10.05-26.21-10.05-36.2 0L192 377.02 79.9 264.28c-10-10.06-26.21-10.06-36.2 0L7.5 300.69c-10 10.05-10 26.36 0 36.41l166.4 167.36c10 10.06 26.21 10.06 36.2 0l294.4-296.09c10-10.06 10-26.36 0-36.42zM166.57 282.71c6.84 7.02 18.18 7.02 25.21.18L403.85 72.62c7.02-6.84 7.02-18.18.18-25.21L362.08 5.29c-6.84-7.02-18.18-7.02-25.21-.18L179.71 161.19l-68.23-68.77c-6.84-7.02-18.18-7.02-25.2-.18l-42.13 41.77c-7.02 6.84-7.02 18.18-.18 25.2l122.6 123.5z"],"check-square":[448,512,[],"f14a","M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"],chess:[512,512,[],"f439","M199.821 217.633a6 6 0 0 1 6 6l-.001 20.766a6 6 0 0 1-6 6h-25.805c0 31.715-2.153 96.201 17.398 153.229H64.597C84.54 345.452 82.02 279.245 82.02 250.399H56.183a6 6 0 0 1-6-6l.002-20.766a6 6 0 0 1 6-6h143.636zM41.554 115.088l34.58 95.071h103.734l34.572-95.072c2.846-7.826-2.95-16.101-11.278-16.101H152v-30.22h21.57a6 6 0 0 0 6-6V40.383a6 6 0 0 0-6-6h-28.367V6a6 6 0 0 0-6-6H116.82a6 6 0 0 0-6 6v28.383H82.421a6 6 0 0 0-6 6v22.383a6 6 0 0 0 6 6H104v30.219H52.831c-8.328.001-14.124 8.276-11.277 16.103zM222.678 445.17v-28.067a6 6 0 0 0-6-6H39.322a6 6 0 0 0-6 6v28.067l-22.148 14.164a6 6 0 0 0-2.767 5.055V506a6 6 0 0 0 6 6h227.187a6 6 0 0 0 6-6v-41.612a6 6 0 0 0-2.767-5.055l-22.149-14.163zm90.578-144.225l24.88 16.963c.09 18.124-.167 63.904-11.905 114.522h147.526c-11.713-50.475-11.969-96.324-11.882-114.537l24.859-16.949a3.856 3.856 0 0 0 1.684-3.187v-69.901a3.857 3.857 0 0 0-3.857-3.857h-27.655a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.858-3.857h-52.918a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.857-3.857H315.43a3.857 3.857 0 0 0-3.857 3.857v69.901a3.855 3.855 0 0 0 1.683 3.188zm71.585 51.906c0-8.372 6.787-15.158 15.159-15.158s15.158 6.787 15.158 15.158v30.318h-30.317v-30.318zM504.62 470.059l-13.664-10.639v-15.552a3.857 3.857 0 0 0-3.857-3.857H312.915a3.857 3.857 0 0 0-3.857 3.857v15.552l-13.677 10.639a3.857 3.857 0 0 0-1.488 3.044v35.039a3.857 3.857 0 0 0 3.857 3.857h204.5a3.857 3.857 0 0 0 3.857-3.857v-35.04a3.859 3.859 0 0 0-1.487-3.043z"],"chess-bishop":[320,512,[],"f43a","M123.158 77.881C107.369 72.53 96 57.597 96 40c0-22.091 17.909-40 40-40h47.796c22.091 0 40 17.909 40 40 0 17.541-11.295 32.434-27.005 37.829 23.993 16.657 48.577 46.839 68.703 82.05L144.929 280.443a6 6 0 0 0 0 8.485l14.142 14.142a6 6 0 0 0 8.485 0L280.9 189.726c17.758 38.297 29.371 79.443 29.371 114.273 0 53.786-22.897 75.788-58.446 86.033V448H68.174v-57.97C32.631 379.784 9.739 357.781 9.739 304c0-78.029 58.281-187.766 113.419-226.119zM320 500v-24c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12z"],"chess-board":[512,512,[],"f43c","M256 256v64h-64v-64h64zm0-256h-64v64h64V0zm0 256h64v-64h-64v64zM384 0h-64v64h64V0zm0 512h64v-64h-64v64zm128-64v-64h-64v64h64zm-384 64h64v-64h-64v64zm0-512H64v64h64V0zm384 192v-64h-64v64h64zm0 128v-64h-64v64h64zM0 512h64v-64H0v64zM0 64v64h64V64H0zm0 128v64h64v-64H0zm0 128v64h64v-64H0zm256 192h64v-64h-64v64zm-64-128v64h64v-64h-64zm64-192v-64h-64v64h64zM64 384v64h64v-64H64zm64-128H64v64h64v-64zm256 128h64v-64h-64v64zM512 0h-64v64h64V0zM384 256h64v-64h-64v64zm0-192v64h64V64h-64zm-64 320v64h64v-64h-64zm-192-64v64h64v-64h-64zm128 0v64h64v-64h-64zm-64-128h-64v64h64v-64zm-64-64H64v64h64v-64zm192 192h64v-64h-64v64zM192 128V64h-64v64h64zm128 0V64h-64v64h64zm0 64h64v-64h-64v64z"],"chess-king":[448,512,[],"f43f","M416 476v24c0 6.627-5.373 12-12 12H44c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12zm-8.033-324H248v-48h50a6 6 0 0 0 6-6V62a6 6 0 0 0-6-6h-50V6a6 6 0 0 0-6-6h-36a6 6 0 0 0-6 6v50h-50a6 6 0 0 0-6 6v36a6 6 0 0 0 6 6h50v48H40.033c-27.574 0-46.879 27.244-37.738 53.259L87.582 448h272.836l85.287-242.741C454.846 179.244 435.541 152 407.967 152z"],"chess-knight":[384,512,[],"f441","M352 224v224H32v-46.557c0-30.302 17.12-58.003 44.223-71.554l57.243-28.622A48 48 0 0 0 160 258.334V208l-22.127 11.063a23.996 23.996 0 0 0-12.55 15.645l-11.835 47.338a12 12 0 0 1-7.185 8.231l-29.601 11.84a11.998 11.998 0 0 1-9.33-.176L7.126 275.167A12 12 0 0 1 0 264.201v-158.26c0-6.365 2.529-12.47 7.03-16.971L16 80 1.789 51.578A16.937 16.937 0 0 1 0 44c0-6.627 5.373-12 12-12h148c106.039 0 192 85.961 192 192zm20 240H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12zM52 128c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"],"chess-pawn":[320,512,[],"f443","M264 448H56s60-42.743 60-176H84c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h40.209C95.721 210.56 76 181.588 76 148c0-46.392 37.608-84 84-84s84 37.608 84 84c0 33.588-19.721 62.56-48.209 76H236c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12h-32c0 133.257 60 176 60 176zm28 16H28c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h264c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12z"],"chess-queen":[512,512,[],"f445","M436 512H76c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12zM255.579 0c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zm204.568 154.634c-5.768-3.045-12.916-.932-16.082 4.77-8.616 15.516-22.747 37.801-44.065 37.801-28.714 0-30.625-19.804-31.686-57.542-.183-6.492-5.501-11.664-11.995-11.664h-41.006c-5.175 0-9.754 3.328-11.388 8.238-8.89 26.709-26.073 40.992-47.925 40.992s-39.034-14.283-47.925-40.992c-1.634-4.91-6.213-8.238-11.388-8.238h-41.005c-6.495 0-11.813 5.174-11.995 11.667-1.052 37.642-2.934 57.539-31.688 57.539-20.691 0-33.817-20.224-44.425-38.025-3.266-5.48-10.258-7.431-15.899-4.453l-39.179 20.679a12 12 0 0 0-5.51 15.145L112 448h288l105.014-257.448a12 12 0 0 0-5.51-15.145l-39.357-20.773z"],"chess-rook":[384,512,[],"f447","M81.241 215.027C80.957 258.92 77.411 348.076 48 448h287.982c-29.4-99.604-32.936-188.912-33.221-232.975l45.418-42.312a11.998 11.998 0 0 0 3.82-8.78V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v44h-48V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v44H96V44c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v119.932c0 3.33 1.384 6.51 3.82 8.78l45.421 42.315zM160 256c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v64.004h-64V256zm224 220v24c0 6.627-5.373 12-12 12H12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12z"],"chevron-circle-down":[512,512,[],"f13a","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"],"chevron-circle-left":[512,512,[],"f137","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"],"chevron-circle-right":[512,512,[],"f138","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"],"chevron-circle-up":[512,512,[],"f139","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"],"chevron-down":[448,512,[],"f078","M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"],"chevron-left":[320,512,[],"f053","M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"],"chevron-right":[320,512,[],"f054","M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"],"chevron-up":[448,512,[],"f077","M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"],child:[384,512,[],"f1ae","M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"],church:[640,512,[],"f51d","M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"],circle:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"],"circle-notch":[512,512,[],"f1ce","M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"],city:[640,512,[],"f64f","M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"],clipboard:[384,512,[],"f328","M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"],"clipboard-check":[384,512,[],"f46c","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"],"clipboard-list":[384,512,[],"f46d","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"],clock:[512,512,[],"f017","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z"],clone:[512,512,[],"f24d","M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"],"closed-captioning":[512,512,[],"f20a","M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"],cloud:[640,512,[],"f0c2","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"],"cloud-download-alt":[640,512,[],"f381","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"],"cloud-moon":[640,512,[],"f6c3","M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.3 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm285.26-29.42c-104.23 19.22-199.95-58.16-199.95-160.03 0-58.68 32.45-112.64 85.18-141.7 8.13-4.48 6.08-16.41-3.15-18.06C497.14 1.17 484 0 470.84 0 352.25 0 256 93.04 256 208c0 7.26.4 14.44 1.15 21.51 9.87-3.38 20.18-5.51 30.85-5.51 52.94 0 96 43.06 96 96 0 3.59-.21 7.17-.63 10.73 33.49 15.39 57.47 46.55 63.24 83.86 7.96.87 16.03 1.41 24.23 1.41 66.26 0 126.79-29.19 166.88-77.02 5.93-7.07-.54-17.41-9.71-15.72z"],"cloud-sun":[640,512,[],"f6c4","M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.31 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm243.19-99.8c-7.85-6.79-7.85-18.97 0-25.76L633.41 186c12.76-11.05 5.84-32.02-11-33.3l-61.59-4.67c-10.19-.78-17.28-10.49-14.9-20.43l14.95-62.48c3.89-16.26-13.96-29.02-28.08-20.07l-52.51 33.26c-8.61 5.46-20.06 1.75-23.85-7.72l-23.47-58.74c-6.32-15.81-28.19-15.81-34.51 0l-23.38 58.49c-3.83 9.59-15.44 13.35-24.17 7.82l-52.29-33.12c-14.13-8.95-31.98 3.81-28.08 20.07l14.95 62.48c2.38 9.94-4.7 19.65-14.9 20.43l-61.15 4.64c-17 1.29-23.99 22.46-11.1 33.62l31.23 27.05c7.82 5.17 15.21 11.01 21.78 17.84 11.42-4.71 23.73-7.18 36.37-7.18 5.97 0 11.77.71 17.44 1.76 7.09-54.98 53.68-97.76 110.56-97.76 61.76 0 112 50.24 112 112s-50.24 112-112 112c-.95 0-1.83-.26-2.77-.28 13.83 13.2 24.61 29.47 30.16 48.28h27.02c6.25 0 12.37 1.83 17.6 5.27l45.08 29.68c14.19 8.99 31.89-4.17 27.92-20.76l-14.69-61.38c-2.43-10.16 4.8-20.08 15.22-20.87l61.16-4.64c16.84-1.28 23.76-22.25 11-33.3l-47.47-41.11zm-202.66 59.94C393.3 317.34 404.32 320 416 320c44.11 0 80-35.89 80-80s-35.89-80-80-80c-43.25 0-78.39 34.56-79.75 77.49 26.44 15.53 44.59 43.13 47.03 75.33z"],"cloud-upload-alt":[640,512,[],"f382","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"],cocktail:[576,512,[],"f561","M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"],code:[640,512,[],"f121","M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"],"code-branch":[384,512,[],"f126","M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"],coffee:[640,512,[],"f0f4","M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"],cog:[512,512,[],"f013","M444.788 291.1l42.616 24.599c4.867 2.809 7.126 8.618 5.459 13.985-11.07 35.642-29.97 67.842-54.689 94.586a12.016 12.016 0 0 1-14.832 2.254l-42.584-24.595a191.577 191.577 0 0 1-60.759 35.13v49.182a12.01 12.01 0 0 1-9.377 11.718c-34.956 7.85-72.499 8.256-109.219.007-5.49-1.233-9.403-6.096-9.403-11.723v-49.184a191.555 191.555 0 0 1-60.759-35.13l-42.584 24.595a12.016 12.016 0 0 1-14.832-2.254c-24.718-26.744-43.619-58.944-54.689-94.586-1.667-5.366.592-11.175 5.459-13.985L67.212 291.1a193.48 193.48 0 0 1 0-70.199l-42.616-24.599c-4.867-2.809-7.126-8.618-5.459-13.985 11.07-35.642 29.97-67.842 54.689-94.586a12.016 12.016 0 0 1 14.832-2.254l42.584 24.595a191.577 191.577 0 0 1 60.759-35.13V25.759a12.01 12.01 0 0 1 9.377-11.718c34.956-7.85 72.499-8.256 109.219-.007 5.49 1.233 9.403 6.096 9.403 11.723v49.184a191.555 191.555 0 0 1 60.759 35.13l42.584-24.595a12.016 12.016 0 0 1 14.832 2.254c24.718 26.744 43.619 58.944 54.689 94.586 1.667 5.366-.592 11.175-5.459 13.985L444.788 220.9a193.485 193.485 0 0 1 0 70.2zM336 256c0-44.112-35.888-80-80-80s-80 35.888-80 80 35.888 80 80 80 80-35.888 80-80z"],cogs:[640,512,[],"f085","M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"],coins:[512,512,[],"f51e","M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"],columns:[512,512,[],"f0db","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"],comment:[512,512,[],"f075","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"],"comment-alt":[512,512,[],"f27a","M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"],"comment-dollar":[512,512,[],"f651","M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"],"comment-dots":[512,512,[],"f4ad","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"comment-slash":[640,512,[],"f4b3","M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"],comments:[576,512,[],"f086","M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"],"comments-dollar":[576,512,[],"f653","M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"],"compact-disc":[496,512,[],"f51f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],compass:[496,512,[],"f14e","M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"],compress:[448,512,[],"f066","M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"],"concierge-bell":[512,512,[],"f562","M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],cookie:[512,512,[],"f563","M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"cookie-bite":[512,512,[],"f564","M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],copy:[448,512,[],"f0c5","M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"],copyright:[512,512,[],"f1f9","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"],couch:[640,512,[],"f4b8","M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"],"credit-card":[576,512,[],"f09d","M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"],crop:[512,512,[],"f125","M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],"crop-alt":[512,512,[],"f565","M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"],cross:[384,512,[],"f654","M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],crosshairs:[512,512,[],"f05b","M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"],crow:[640,512,[],"f520","M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],crown:[640,512,[],"f521","M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"],cube:[512,512,[],"f1b2","M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"],cubes:[512,512,[],"f1b3","M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"],cut:[448,512,[],"f0c4","M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"],database:[448,512,[],"f1c0","M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"],deaf:[512,512,[],"f2a4","M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"],desktop:[576,512,[],"f108","M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"],dharmachakra:[512,512,[],"f655","M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"],diagnoses:[640,512,[],"f470","M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"],dice:[640,512,[],"f522","M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],"dice-d20":[480,512,[],"f6cf","M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"],"dice-d6":[448,512,[],"f6d1","M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"],"dice-five":[448,512,[],"f523","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"dice-four":[448,512,[],"f524","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"dice-one":[448,512,[],"f525","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"dice-six":[448,512,[],"f526","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"dice-three":[448,512,[],"f527","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"dice-two":[448,512,[],"f528","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"digital-tachograph":[640,512,[],"f566","M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"],directions:[512,512,[],"f5eb","M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"],divide:[448,512,[],"f529","M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],dizzy:[496,512,[],"f567","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"],dna:[448,512,[],"f471","M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"],dog:[512,512,[],"f6d3","M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z"],"dollar-sign":[288,512,[],"f155","M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"],dolly:[576,512,[],"f472","M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],"dolly-flatbed":[640,512,[],"f474","M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"],donate:[512,512,[],"f4b9","M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"],"door-closed":[640,512,[],"f52a","M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"],"door-open":[640,512,[],"f52b","M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"],"dot-circle":[512,512,[],"f192","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"],dove:[512,512,[],"f4ba","M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],download:[512,512,[],"f019","M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"],"drafting-compass":[512,512,[],"f568","M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"],dragon:[640,512,[],"f6d5","M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"],"draw-polygon":[448,512,[],"f5ee","M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"],drum:[576,512,[],"f569","M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z"],"drum-steelpan":[576,512,[],"f56a","M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"],"drumstick-bite":[512,512,[],"f6d7","M462.79 49.57c-66.14-66.09-173.36-66.09-239.5 0C187.81 85.02 160.12 128 160.12 192v85.83l-40.62 40.59c-9.7 9.69-24.04 11.07-36.78 5.98-21.72-8.68-47.42-4.29-65.02 13.29-23.61 23.59-23.61 61.84 0 85.43 15.28 15.27 36.53 19.58 56.14 15.09-4.5 19.6-.18 40.83 15.1 56.1 23.61 23.59 61.88 23.59 85.49 0 17.6-17.58 21.99-43.26 13.31-64.97-5.09-12.73-3.72-27.05 5.99-36.75L234.35 352h85.89c23.2 0 43.57-3.72 61.89-10.03-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.93-14.81-90.25-49.13-124.53z"],dumbbell:[640,512,[],"f44b","M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"],dungeon:[512,512,[],"f6d9","M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"],edit:[576,512,[],"f044","M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"],eject:[448,512,[],"f052","M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"],"ellipsis-h":[512,512,[],"f141","M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"],"ellipsis-v":[192,512,[],"f142","M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"],envelope:[512,512,[],"f0e0","M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"],"envelope-open":[512,512,[],"f2b6","M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"],"envelope-open-text":[512,512,[],"f658","M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"],"envelope-square":[448,512,[],"f199","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"],equals:[448,512,[],"f52c","M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],eraser:[512,512,[],"f12d","M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"],"euro-sign":[320,512,[],"f153","M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"],"exchange-alt":[512,512,[],"f362","M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"],exclamation:[192,512,[],"f12a","M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"],"exclamation-circle":[512,512,[],"f06a","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"],"exclamation-triangle":[576,512,[],"f071","M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"],expand:[448,512,[],"f065","M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"],"expand-arrows-alt":[448,512,[],"f31e","M448.1 344v112c0 13.3-10.7 24-24 24h-112c-21.4 0-32.1-25.9-17-41l36.2-36.2L224 295.6 116.8 402.9 153 439c15.1 15.1 4.4 41-17 41H24c-13.3 0-24-10.7-24-24V344c0-21.4 25.9-32.1 41-17l36.2 36.2L184.5 256 77.2 148.7 41 185c-15.1 15.1-41 4.4-41-17V56c0-13.3 10.7-24 24-24h112c21.4 0 32.1 25.9 17 41l-36.2 36.2L224 216.4l107.3-107.3L295.1 73c-15.1-15.1-4.4-41 17-41h112c13.3 0 24 10.7 24 24v112c0 21.4-25.9 32.1-41 17l-36.2-36.2L263.6 256l107.3 107.3 36.2-36.2c15.1-15.2 41-4.5 41 16.9z"],"external-link-alt":[576,512,[],"f35d","M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z"],"external-link-square-alt":[448,512,[],"f360","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"],eye:[576,512,[],"f06e","M569.354 231.631C512.969 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-75.162 0-136-60.827-136-136 0-75.162 60.826-136 136-136 75.162 0 136 60.826 136 136 0 75.162-60.826 136-136 136zm104-136c0 57.438-46.562 104-104 104s-104-46.562-104-104c0-17.708 4.431-34.379 12.236-48.973l-.001.032c0 23.651 19.173 42.823 42.824 42.823s42.824-19.173 42.824-42.823c0-23.651-19.173-42.824-42.824-42.824l-.032.001C253.621 156.431 270.292 152 288 152c57.438 0 104 46.562 104 104z"],"eye-dropper":[512,512,[],"f1fb","M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"],"eye-slash":[576,512,[],"f070","M286.693 391.984l32.579 46.542A333.958 333.958 0 0 1 288 440C168.19 440 63.031 376.051 6.646 280.369a47.999 47.999 0 0 1 0-48.739c24.023-40.766 56.913-75.775 96.024-102.537l57.077 81.539C154.736 224.82 152 240.087 152 256c0 74.736 60.135 135.282 134.693 135.984zm282.661-111.615c-31.667 53.737-78.747 97.46-135.175 125.475l.011.015 41.47 59.2c7.6 10.86 4.96 25.82-5.9 33.42l-13.11 9.18c-10.86 7.6-25.82 4.96-33.42-5.9L100.34 46.94c-7.6-10.86-4.96-25.82 5.9-33.42l13.11-9.18c10.86-7.6 25.82-4.96 33.42 5.9l51.038 72.617C230.68 75.776 258.905 72 288 72c119.81 0 224.969 63.949 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM424 256c0-75.174-60.838-136-136-136-17.939 0-35.056 3.473-50.729 9.772l19.299 27.058c25.869-8.171 55.044-6.163 80.4 7.41h-.03c-23.65 0-42.82 19.17-42.82 42.82 0 23.626 19.147 42.82 42.82 42.82 23.65 0 42.82-19.17 42.82-42.82v-.03c18.462 34.49 16.312 77.914-8.25 110.95v.01l19.314 27.061C411.496 321.2 424 290.074 424 256zM262.014 356.727l-77.53-110.757c-5.014 52.387 29.314 98.354 77.53 110.757z"],"fast-backward":[512,512,[],"f049","M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"],"fast-forward":[512,512,[],"f050","M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"],fax:[512,512,[],"f1ac","M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z"],feather:[512,512,[],"f52d","M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"],"feather-alt":[512,512,[],"f56b","M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"],female:[256,512,[],"f182","M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"],"fighter-jet":[640,512,[],"f0fb","M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"],file:[384,512,[],"f15b","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-alt":[384,512,[],"f15c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-archive":[384,512,[],"f1c6","M224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32V32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6zm32.7-53c0 14.9-14.5 27-32.4 27S96 378 96 363c0-14.9 14.5-27 32.4-27s32.5 12.1 32.5 27zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-audio":[384,512,[],"f1c7","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-code":[384,512,[],"f1c9","M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"],"file-contract":[384,512,[],"f56c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-csv":[384,512,[],"f6dd","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-download":[384,512,[],"f56d","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-excel":[384,512,[],"f1c3","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-export":[576,512,[],"f56e","M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zM192 336v-32c0-8.84 7.16-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.84 0-16-7.16-16-16zm379.05-28.02l-95.7-96.43c-10.06-10.14-27.36-3.01-27.36 11.27V288H384v64h63.99v65.18c0 14.28 17.29 21.41 27.36 11.27l95.7-96.42c6.6-6.66 6.6-17.4 0-24.05z"],"file-image":[384,512,[],"f1c5","M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"],"file-import":[512,512,[],"f56f","M16 288c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h112v-64H16zm336-152V0H152c-13.3 0-24 10.7-24 24v264h127.99v-65.18c0-14.28 17.29-21.41 27.36-11.27l95.7 96.43c6.6 6.65 6.6 17.39 0 24.04l-95.7 96.42c-10.06 10.14-27.36 3.01-27.36-11.27V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24zm153-31L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-invoice":[384,512,[],"f570","M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"],"file-invoice-dollar":[384,512,[],"f571","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"],"file-medical":[384,512,[],"f477","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"],"file-medical-alt":[448,512,[],"f478","M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-pdf":[384,512,[],"f1c1","M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"],"file-powerpoint":[384,512,[],"f1c4","M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"],"file-prescription":[384,512,[],"f572","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-signature":[576,512,[],"f573","M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"],"file-upload":[384,512,[],"f574","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-video":[384,512,[],"f1c8","M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"],"file-word":[384,512,[],"f1c2","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],fill:[512,512,[],"f575","M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"],"fill-drip":[576,512,[],"f576","M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"],film:[512,512,[],"f008","M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"],filter:[512,512,[],"f0b0","M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"],fingerprint:[512,512,[],"f577","M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"],fire:[384,512,[],"f06d","M216 23.858c0-23.802-30.653-32.765-44.149-13.038C48 191.851 224 200 224 288c0 35.629-29.114 64.458-64.85 63.994C123.98 351.538 96 322.22 96 287.046v-85.51c0-21.703-26.471-32.225-41.432-16.504C27.801 213.158 0 261.332 0 320c0 105.869 86.131 192 192 192s192-86.131 192-192c0-170.29-168-193.003-168-296.142z"],"fire-extinguisher":[448,512,[],"f134","M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"],"first-aid":[576,512,[],"f479","M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],fish:[576,512,[],"f578","M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"],"fist-raised":[384,512,[],"f6de","M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"],flag:[512,512,[],"f024","M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"],"flag-checkered":[512,512,[],"f11e","M466.515 66.928C487.731 57.074 512 72.551 512 95.944v243.1c0 10.526-5.161 20.407-13.843 26.358-35.837 24.564-74.335 40.858-122.505 40.858-67.373 0-111.63-34.783-165.217-34.783-50.853 0-86.124 10.058-114.435 22.122V488c0 13.255-10.745 24-24 24H56c-13.255 0-24-10.745-24-24V101.945C17.497 91.825 8 75.026 8 56 8 24.296 34.345-1.254 66.338.048c28.468 1.158 51.779 23.968 53.551 52.404.52 8.342-.81 16.31-3.586 23.562C137.039 68.384 159.393 64 184.348 64c67.373 0 111.63 34.783 165.217 34.783 40.496 0 82.612-15.906 116.95-31.855zM96 134.63v70.49c29-10.67 51.18-17.83 73.6-20.91v-71.57c-23.5 2.17-40.44 9.79-73.6 21.99zm220.8 9.19c-26.417-4.672-49.886-13.979-73.6-21.34v67.42c24.175 6.706 47.566 16.444 73.6 22.31v-68.39zm-147.2 40.39v70.04c32.796-2.978 53.91-.635 73.6 3.8V189.9c-25.247-7.035-46.581-9.423-73.6-5.69zm73.6 142.23c26.338 4.652 49.732 13.927 73.6 21.34v-67.41c-24.277-6.746-47.54-16.45-73.6-22.32v68.39zM96 342.1c23.62-8.39 47.79-13.84 73.6-16.56v-71.29c-26.11 2.35-47.36 8.04-73.6 17.36v70.49zm368-221.6c-21.3 8.85-46.59 17.64-73.6 22.47v71.91c27.31-4.36 50.03-14.1 73.6-23.89V120.5zm0 209.96v-70.49c-22.19 14.2-48.78 22.61-73.6 26.02v71.58c25.07-2.38 48.49-11.04 73.6-27.11zM316.8 212.21v68.16c25.664 7.134 46.616 9.342 73.6 5.62v-71.11c-25.999 4.187-49.943 2.676-73.6-2.67z"],flask:[448,512,[],"f0c3","M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"],flushed:[496,512,[],"f579","M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"],folder:[512,512,[],"f07b","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"],"folder-minus":[512,512,[],"f65d","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"],"folder-open":[576,512,[],"f07c","M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"],"folder-plus":[512,512,[],"f65e","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z"],font:[448,512,[],"f031","M152 416h-24.013l26.586-80.782H292.8L319.386 416H296c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-26.739L275.495 42.746A16 16 0 0 0 260.382 32h-72.766a16 16 0 0 0-15.113 10.746L42.739 416H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm64.353-271.778c4.348-15.216 6.61-28.156 7.586-34.644.839 6.521 2.939 19.476 7.727 34.706l41.335 124.006h-98.619l41.971-124.068z"],"font-awesome-logo-full":[3992,512,["Font Awesome"],"f4e6","M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],"football-ball":[496,512,[],"f44e","M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"],forward:[512,512,[],"f04e","M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"],frog:[576,512,[],"f52e","M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"],frown:[496,512,[],"f119","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"],"frown-open":[496,512,[],"f57a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"funnel-dollar":[640,512,[],"f662","M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"],futbol:[512,512,[],"f1e3","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"],gamepad:[640,512,[],"f11b","M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],"gas-pump":[512,512,[],"f52f","M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"],gavel:[512,512,[],"f0e3","M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"],gem:[576,512,[],"f3a5","M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"],genderless:[288,512,[],"f22d","M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"],ghost:[384,512,[],"f6e2","M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],gift:[512,512,[],"f06b","M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm448-288h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40zm-72 320h160c17.7 0 32-14.3 32-32V320H288v160z"],"glass-martini":[512,512,[],"f000","M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"],"glass-martini-alt":[512,512,[],"f57b","M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"],glasses:[576,512,[],"f530","M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"],globe:[496,512,[],"f0ac","M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"],"globe-africa":[496,512,[],"f57c","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"],"globe-americas":[496,512,[],"f57d","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"],"globe-asia":[496,512,[],"f57e","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"],"golf-ball":[416,512,[],"f450","M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"],gopuram:[512,512,[],"f664","M496 352h-16V240c0-8.84-7.16-16-16-16h-16v-80c0-8.84-7.16-16-16-16h-16V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16S96 7.16 96 16v112H80c-8.84 0-16 7.16-16 16v80H48c-8.84 0-16 7.16-16 16v112H16c-8.84 0-16 7.16-16 16v128c0 8.84 7.16 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.84 0 16-7.16 16-16V368c0-8.84-7.16-16-16-16zm-272 0v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64h-64zm8-128v-48c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v48h-48z"],"graduation-cap":[640,512,[],"f19d","M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"],"greater-than":[384,512,[],"f531","M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"],"greater-than-equal":[448,512,[],"f532","M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],grimace:[496,512,[],"f57f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"],grin:[496,512,[],"f580","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-alt":[496,512,[],"f581","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-beam":[496,512,[],"f582","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-beam-sweat":[504,512,[],"f583","M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-hearts":[496,512,[],"f584","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"],"grin-squint":[496,512,[],"f585","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-squint-tears":[512,512,[],"f586","M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"],"grin-stars":[496,512,[],"f587","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"],"grin-tears":[640,512,[],"f588","M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-tongue":[496,512,[],"f589","M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"],"grin-tongue-squint":[496,512,[],"f58a","M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"],"grin-tongue-wink":[496,512,[],"f58b","M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"],"grin-wink":[496,512,[],"f58c","M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"],"grip-horizontal":[448,512,[],"f58d","M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],"grip-vertical":[320,512,[],"f58e","M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],"h-square":[448,512,[],"f0fd","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"],hammer:[576,512,[],"f6e3","M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"],hamsa:[512,512,[],"f665","M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],"hand-holding":[576,512,[],"f4bd","M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"],"hand-holding-heart":[576,512,[],"f4be","M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"],"hand-holding-usd":[544,512,[],"f4c0","M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z"],"hand-lizard":[576,512,[],"f258","M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"],"hand-paper":[448,512,[],"f256","M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"],"hand-peace":[448,512,[],"f25b","M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"],"hand-point-down":[384,512,[],"f0a7","M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"],"hand-point-left":[512,512,[],"f0a5","M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"],"hand-point-right":[512,512,[],"f0a4","M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"],"hand-point-up":[384,512,[],"f0a6","M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"],"hand-pointer":[448,512,[],"f25a","M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"],"hand-rock":[512,512,[],"f255","M512 128.79c0-26.322-20.861-48.344-47.18-48.783C437.935 79.558 416 101.217 416 128h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C333.935 47.558 312 69.217 312 96v32h-8V80.79c0-26.322-20.861-48.344-47.18-48.783C229.935 31.558 208 53.217 208 80v48h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C125.935 47.558 104 69.217 104 96v136l-8-7.111V176.79c0-26.322-20.861-48.344-47.18-48.783C21.935 127.558 0 149.217 0 176v66.445a95.998 95.998 0 0 0 32.221 71.751l111.668 99.261A47.999 47.999 0 0 1 160 449.333V456c0 13.255 10.745 24 24 24h240c13.255 0 24-10.745 24-24v-2.921a96.01 96.01 0 0 1 7.523-37.254l48.954-116.265A96.002 96.002 0 0 0 512 262.306V128.79z"],"hand-scissors":[512,512,[],"f257","M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"],"hand-spock":[512,512,[],"f259","M10.872 316.585c15.139-16.086 40.454-16.854 56.543-1.713L128 371.893v-79.405L88.995 120.865c-4.896-21.542 8.598-42.974 30.14-47.87 21.549-4.894 42.975 8.599 47.87 30.141L201.747 256h9.833L164.016 48.966c-4.946-21.531 8.498-42.994 30.028-47.94 21.532-4.95 42.994 8.498 47.94 30.028L293.664 256h15.105l48.425-193.702c5.357-21.432 27.075-34.462 48.507-29.104 21.432 5.358 34.463 27.075 29.104 48.507L391.231 256h11.08l30.768-129.265c5.117-21.491 26.685-34.768 48.177-29.647 21.491 5.117 34.765 26.686 29.647 48.177l-36.292 152.467A96.024 96.024 0 0 0 472 319.967v42.102a96.002 96.002 0 0 1-3.96 27.287l-26.174 88.287C435.825 498.022 417.101 512 395.846 512H179.172a48.002 48.002 0 0 1-32.898-13.046L12.585 373.128c-16.087-15.141-16.853-40.456-1.713-56.543z"],hands:[640,512,[],"f4c2","M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"],"hands-helping":[640,512,[],"f4c4","M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"],handshake:[640,512,[],"f2b5","M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"],hanukiah:[640,512,[],"f6e6","M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"],hashtag:[448,512,[],"f292","M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"],"hat-wizard":[512,512,[],"f6e8","M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"],haykal:[512,512,[],"f666","M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"],hdd:[576,512,[],"f0a0","M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"],heading:[512,512,[],"f1dc","M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z"],headphones:[512,512,[],"f025","M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"],"headphones-alt":[512,512,[],"f58f","M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"],headset:[512,512,[],"f590","M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"],heart:[512,512,[],"f004","M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"],heartbeat:[512,512,[],"f21e","M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"],helicopter:[640,512,[],"f533","M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"],highlighter:[544,512,[],"f591","M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"],hiking:[384,512,[],"f6ec","M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"],hippo:[640,512,[],"f6ed","M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],history:[512,512,[],"f1da","M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"],"hockey-puck":[512,512,[],"f453","M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"],home:[576,512,[],"f015","M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z"],horse:[576,512,[],"f6f0","M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],hospital:[448,512,[],"f0f8","M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"],"hospital-alt":[576,512,[],"f47d","M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"],"hospital-symbol":[512,512,[],"f47e","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"],"hot-tub":[512,512,[],"f593","M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"],hotel:[576,512,[],"f594","M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"],hourglass:[384,512,[],"f254","M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"],"hourglass-end":[384,512,[],"f253","M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"],"hourglass-half":[384,512,[],"f252","M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"],"hourglass-start":[384,512,[],"f251","M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"],"house-damage":[576,512,[],"f6f1","M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"],hryvnia:[384,512,[],"f6f2","M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"],"i-cursor":[256,512,[],"f246","M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"],"id-badge":[384,512,[],"f2c1","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],"id-card":[576,512,[],"f2c2","M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"],"id-card-alt":[576,512,[],"f47f","M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"],image:[512,512,[],"f03e","M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"],images:[576,512,[],"f302","M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"],inbox:[576,512,[],"f01c","M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"],indent:[448,512,[],"f03c","M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm176 144h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm-52.687-111.313l-96-95.984C17.266 138.652 0 145.776 0 160.016v191.975c0 14.329 17.325 21.304 27.313 11.313l96-95.992c6.249-6.247 6.249-16.377 0-22.625z"],industry:[512,512,[],"f275","M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"],infinity:[640,512,[],"f534","M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"],info:[192,512,[],"f129","M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"],"info-circle":[512,512,[],"f05a","M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"],italic:[320,512,[],"f033","M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z"],jedi:[544,512,[],"f669","M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z"],joint:[640,512,[],"f595","M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"],"journal-whills":[448,512,[],"f66a","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],kaaba:[576,512,[],"f66b","M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"],key:[512,512,[],"f084","M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"],keyboard:[576,512,[],"f11c","M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"],khanda:[512,512,[],"f66d","M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"],kiss:[496,512,[],"f596","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"kiss-beam":[496,512,[],"f597","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"],"kiss-wink-heart":[504,512,[],"f598","M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"],"kiwi-bird":[576,512,[],"f535","M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"],landmark:[512,512,[],"f66f","M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],language:[640,512,[],"f1ab","M304 416H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h280v320zm-120.676-72.622A12 12 0 0 0 194.839 352h22.863c8.22 0 14.007-8.078 11.362-15.861L171.61 167.085a12 12 0 0 0-11.362-8.139h-32.489a12.001 12.001 0 0 0-11.362 8.139L58.942 336.139C56.297 343.922 62.084 352 70.304 352h22.805a12 12 0 0 0 11.535-8.693l9.118-31.807h60.211l9.351 31.878zm-39.051-140.42s4.32 21.061 7.83 33.21l10.8 37.531h-38.07l11.07-37.531c3.51-12.15 7.83-33.21 7.83-33.21h.54zM616 416H336V96h280c13.255 0 24 10.745 24 24v272c0 13.255-10.745 24-24 24zm-36-228h-64v-16c0-6.627-5.373-12-12-12h-16c-6.627 0-12 5.373-12 12v16h-64c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h114.106c-6.263 14.299-16.518 28.972-30.023 43.206-6.56-6.898-12.397-13.91-17.365-20.933-3.639-5.144-10.585-6.675-15.995-3.446l-7.28 4.346-6.498 3.879c-5.956 3.556-7.693 11.421-3.735 17.117 6.065 8.729 13.098 17.336 20.984 25.726-8.122 6.226-16.841 12.244-26.103 17.964-5.521 3.41-7.381 10.556-4.162 16.19l7.941 13.896c3.362 5.883 10.935 7.826 16.706 4.276 12.732-7.831 24.571-16.175 35.443-24.891 10.917 8.761 22.766 17.102 35.396 24.881 5.774 3.556 13.353 1.618 16.717-4.27l7.944-13.903c3.213-5.623 1.37-12.76-4.135-16.171a312.737 312.737 0 0 1-26.06-18.019c21.024-22.425 35.768-46.289 42.713-69.85H580c6.627 0 12-5.373 12-12v-16c0-6.625-5.373-11.998-12-11.998z"],laptop:[640,512,[],"f109","M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"],"laptop-code":[640,512,[],"f5fc","M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"],laugh:[496,512,[],"f599","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"],"laugh-beam":[496,512,[],"f59a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],"laugh-squint":[496,512,[],"f59b","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],"laugh-wink":[496,512,[],"f59c","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],"layer-group":[512,512,[],"f5fd","M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"],leaf:[576,512,[],"f06c","M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"],lemon:[512,512,[],"f094","M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"],"less-than":[384,512,[],"f536","M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"],"less-than-equal":[448,512,[],"f537","M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],"level-down-alt":[320,512,[],"f3be","M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"],"level-up-alt":[320,512,[],"f3bf","M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"],"life-ring":[512,512,[],"f1cd","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"],lightbulb:[352,512,[],"f0eb","M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"],link:[512,512,[],"f0c1","M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"],"lira-sign":[384,512,[],"f195","M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"],list:[512,512,[],"f03a","M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z"],"list-alt":[512,512,[],"f022","M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"],"list-ol":[512,512,[],"f0cb","M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],"list-ul":[512,512,[],"f0ca","M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],"location-arrow":[512,512,[],"f124","M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"],lock:[448,512,[],"f023","M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"],"lock-open":[576,512,[],"f3c1","M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"],"long-arrow-alt-down":[256,512,[],"f309","M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"],"long-arrow-alt-left":[448,512,[],"f30a","M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"],"long-arrow-alt-right":[448,512,[],"f30b","M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"],"long-arrow-alt-up":[256,512,[],"f30c","M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"],"low-vision":[576,512,[],"f2a8","M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"],"luggage-cart":[640,512,[],"f59d","M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"],magic:[512,512,[],"f0d0","M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"],magnet:[512,512,[],"f076","M164.1 160H12c-6.6 0-12-5.4-12-12V68c0-19.9 16.1-36 36-36h104c19.9 0 36 16.1 36 36v80c.1 6.6-5.3 12-11.9 12zm348-12V67.9c0-19.9-16.1-36-36-36h-104c-19.9 0-36 16.1-36 36v80c0 6.6 5.4 12 12 12h152c6.6.1 12-5.3 12-11.9zm-164 44c-6.6 0-12 5.4-12 12v52c0 128.1-160 127.9-160 0v-52c0-6.6-5.4-12-12-12h-152c-6.7 0-12 5.4-12 12.1.1 21.4.6 40.3 0 53.3C.1 408 136.3 504 256.9 504 377.5 504 512 408 512 257.3c-.6-12.8-.2-33 0-53.2 0-6.7-5.3-12.1-12-12.1H348.1z"],"mail-bulk":[576,512,[],"f674","M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"],male:[192,512,[],"f183","M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"],map:[576,512,[],"f279","M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"],"map-marked":[576,512,[],"f59f","M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"],"map-marked-alt":[576,512,[],"f5a0","M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"],"map-marker":[384,512,[],"f041","M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"],"map-marker-alt":[384,512,[],"f3c5","M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"],"map-pin":[288,512,[],"f276","M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"],"map-signs":[512,512,[],"f277","M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"],marker:[512,512,[],"f5a1","M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"],mars:[384,512,[],"f222","M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],"mars-double":[512,512,[],"f227","M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"],"mars-stroke":[384,512,[],"f229","M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],"mars-stroke-h":[480,512,[],"f22b","M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"],"mars-stroke-v":[288,512,[],"f22a","M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"],mask:[640,512,[],"f6fa","M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"],medal:[512,512,[],"f5a2","M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"],medkit:[512,512,[],"f0fa","M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"],meh:[496,512,[],"f11a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"meh-blank":[496,512,[],"f5a4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"meh-rolling-eyes":[496,512,[],"f5a5","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"],memory:[640,512,[],"f538","M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"],menorah:[640,512,[],"f676","M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"],mercury:[288,512,[],"f223","M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"],microchip:[512,512,[],"f2db","M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"],microphone:[352,512,[],"f130","M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"],"microphone-alt":[352,512,[],"f3c9","M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"],"microphone-alt-slash":[640,512,[],"f539","M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"],"microphone-slash":[640,512,[],"f131","M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"],microscope:[512,512,[],"f610","M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"],minus:[448,512,[],"f068","M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],"minus-circle":[512,512,[],"f056","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"],"minus-square":[448,512,[],"f146","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"],mobile:[320,512,[],"f10b","M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"mobile-alt":[320,512,[],"f3cd","M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"],"money-bill":[640,512,[],"f0d6","M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"],"money-bill-alt":[640,512,[],"f3d1","M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"],"money-bill-wave":[640,512,[],"f53a","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"],"money-bill-wave-alt":[640,512,[],"f53b","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"],"money-check":[640,512,[],"f53c","M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"],"money-check-alt":[640,512,[],"f53d","M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"],monument:[384,512,[],"f5a6","M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"],moon:[512,512,[],"f186","M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"],"mortar-pestle":[512,512,[],"f5a7","M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],mosque:[640,512,[],"f678","M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"],motorcycle:[640,512,[],"f21c","M512.949 192.003c-14.862-.108-29.14 2.322-42.434 6.874L437.589 144H520c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24h-45.311a24 24 0 0 0-17.839 7.945l-37.496 41.663-22.774-37.956A24 24 0 0 0 376 64h-80c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h66.411l19.2 32H227.904c-17.727-23.073-44.924-40-99.904-40H72.54c-13.455 0-24.791 11.011-24.536 24.464C48.252 141.505 58.9 152 72 152h56c24.504 0 38.686 10.919 47.787 24.769l-11.291 20.529c-13.006-3.865-26.871-5.736-41.251-5.21C55.857 194.549 1.565 249.605.034 317.021-1.603 389.076 56.317 448 128 448c59.642 0 109.744-40.794 123.953-96h84.236c13.673 0 24.589-11.421 23.976-25.077-2.118-47.12 17.522-93.665 56.185-125.026l12.485 20.808c-27.646 23.654-45.097 58.88-44.831 98.179.47 69.556 57.203 126.452 126.758 127.11 71.629.678 129.839-57.487 129.234-129.099-.588-69.591-57.455-126.386-127.047-126.892zM128 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c4.242 0 8.405.341 12.469.982L98.97 316.434C90.187 332.407 101.762 352 120 352h81.297c-12.37 28.225-40.56 48-73.297 48zm388.351-.116C470.272 402.337 432 365.554 432 320c0-21.363 8.434-40.781 22.125-55.144l49.412 82.352c4.546 7.577 14.375 10.034 21.952 5.488l13.72-8.232c7.577-4.546 10.034-14.375 5.488-21.952l-48.556-80.927A80.005 80.005 0 0 1 512 240c45.554 0 82.338 38.273 79.884 84.352-2.16 40.558-34.974 73.372-75.533 75.532z"],mountain:[640,512,[],"f6fc","M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"],"mouse-pointer":[320,512,[],"f245","M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"],music:[512,512,[],"f001","M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z"],"network-wired":[640,512,[],"f6ff","M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"],neuter:[288,512,[],"f22c","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],newspaper:[576,512,[],"f1ea","M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"],"not-equal":[448,512,[],"f53e","M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"],"notes-medical":[384,512,[],"f481","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"],"object-group":[512,512,[],"f247","M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"],"object-ungroup":[576,512,[],"f248","M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"],"oil-can":[640,512,[],"f613","M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"],om:[512,512,[],"f679","M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"],otter:[640,512,[],"f700","M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"],outdent:[448,512,[],"f03b","M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm208 144h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm192-128h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM4.687 267.313l96 95.984C110.734 373.348 128 366.224 128 351.984V160.008c0-14.329-17.325-21.304-27.313-11.313l-96 95.992c-6.249 6.248-6.249 16.378 0 22.626z"],"paint-brush":[512,512,[],"f1fc","M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"],"paint-roller":[512,512,[],"f5aa","M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"],palette:[512,512,[],"f53f","M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],pallet:[640,512,[],"f482","M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"],"paper-plane":[512,512,[],"f1d8","M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"],paperclip:[448,512,[],"f0c6","M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"],"parachute-box":[512,512,[],"f4cd","M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"],paragraph:[448,512,[],"f1dd","M408 32H177.531C88.948 32 16.045 103.335 16 191.918 15.956 280.321 87.607 352 176 352v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h32v344c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h40c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24z"],parking:[448,512,[],"f540","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"],passport:[448,512,[],"f5ab","M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"],pastafarianism:[640,512,[],"f67b","M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"],paste:[448,512,[],"f0ea","M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"],pause:[448,512,[],"f04c","M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"],"pause-circle":[512,512,[],"f28b","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"],paw:[512,512,[],"f1b0","M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"],peace:[496,512,[],"f67c","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"],pen:[512,512,[],"f304","M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"],"pen-alt":[512,512,[],"f305","M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"],"pen-fancy":[512,512,[],"f5ac","M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"],"pen-nib":[512,512,[],"f5ad","M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"],"pen-square":[448,512,[],"f14b","M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"],"pencil-alt":[512,512,[],"f303","M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"],"pencil-ruler":[512,512,[],"f5ae","M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"],"people-carry":[640,512,[],"f4ce","M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"],percent:[448,512,[],"f295","M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"],percentage:[384,512,[],"f541","M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"],phone:[512,512,[],"f095","M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"],"phone-slash":[640,512,[],"f3dd","M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"],"phone-square":[448,512,[],"f098","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"],"phone-volume":[384,512,[],"f2a0","M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"],"piggy-bank":[576,512,[],"f4d3","M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"],pills:[576,512,[],"f484","M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"],"place-of-worship":[640,512,[],"f67f","M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"],plane:[576,512,[],"f072","M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"],"plane-arrival":[640,512,[],"f5af","M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"],"plane-departure":[640,512,[],"f5b0","M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"],play:[448,512,[],"f04b","M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"],"play-circle":[512,512,[],"f144","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"],plug:[384,512,[],"f1e6","M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z"],plus:[448,512,[],"f067","M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],"plus-circle":[512,512,[],"f055","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"],"plus-square":[448,512,[],"f0fe","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"],podcast:[448,512,[],"f2ce","M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"],poll:[448,512,[],"f681","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"],"poll-h":[448,512,[],"f682","M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"],poo:[512,512,[],"f2fe","M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],poop:[512,512,[],"f619","M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"],portrait:[384,512,[],"f3e0","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],"pound-sign":[320,512,[],"f154","M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"],"power-off":[512,512,[],"f011","M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"],pray:[384,512,[],"f683","M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"],"praying-hands":[640,512,[],"f684","M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"],prescription:[384,512,[],"f5b1","M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"],"prescription-bottle":[384,512,[],"f485","M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"],"prescription-bottle-alt":[384,512,[],"f486","M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"],print:[512,512,[],"f02f","M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],procedures:[640,512,[],"f487","M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"],"project-diagram":[640,512,[],"f542","M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"],"puzzle-piece":[576,512,[],"f12e","M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"],qrcode:[448,512,[],"f029","M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"],question:[384,512,[],"f128","M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"],"question-circle":[512,512,[],"f059","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"],quidditch:[640,512,[],"f458","M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"],"quote-left":[512,512,[],"f10d","M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"],"quote-right":[512,512,[],"f10e","M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"],quran:[448,512,[],"f687","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],random:[512,512,[],"f074","M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"],receipt:[384,512,[],"f543","M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"],recycle:[512,512,[],"f1b8","M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"],redo:[512,512,[],"f01e","M500.333 0h-47.411c-6.853 0-12.314 5.729-11.986 12.574l3.966 82.759C399.416 41.899 331.672 8 256.001 8 119.34 8 7.899 119.526 8 256.187 8.101 393.068 119.096 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-33.971-33.971c-4.466-4.466-11.64-4.717-16.38-.543C341.308 415.448 300.606 432 256 432c-97.267 0-176-78.716-176-176 0-97.267 78.716-176 176-176 60.892 0 114.506 30.858 146.099 77.8l-101.525-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12z"],"redo-alt":[512,512,[],"f2f9","M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"],registered:[512,512,[],"f25d","M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"],reply:[512,512,[],"f3e5","M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"],"reply-all":[576,512,[],"f122","M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"],retweet:[640,512,[],"f079","M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"],ribbon:[448,512,[],"f4d6","M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"],ring:[512,512,[],"f70b","M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"],road:[576,512,[],"f018","M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"],robot:[640,512,[],"f544","M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z"],rocket:[512,512,[],"f135","M505.1 19.1C503.8 13 499 8.2 492.9 6.9 460.7 0 435.5 0 410.4 0 307.2 0 245.3 55.2 199.1 128H94.9c-18.2 0-34.8 10.3-42.9 26.5L2.6 253.3c-8 16 3.6 34.7 21.5 34.7h95.1c-5.9 12.8-11.9 25.5-18 37.7-3.1 6.2-1.9 13.6 3 18.5l63.6 63.6c4.9 4.9 12.3 6.1 18.5 3 12.2-6.1 24.9-12 37.7-17.9V488c0 17.8 18.8 29.4 34.7 21.5l98.7-49.4c16.3-8.1 26.5-24.8 26.5-42.9V312.8c72.6-46.3 128-108.4 128-211.1.1-25.2.1-50.4-6.8-82.6zM400 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],route:[512,512,[],"f4d7","M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],rss:[448,512,[],"f09e","M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"],"rss-square":[448,512,[],"f143","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"],"ruble-sign":[384,512,[],"f158","M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"],ruler:[640,512,[],"f545","M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"],"ruler-combined":[512,512,[],"f546","M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],"ruler-horizontal":[576,512,[],"f547","M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"],"ruler-vertical":[256,512,[],"f548","M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"],running:[416,512,[],"f70c","M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"],"rupee-sign":[320,512,[],"f156","M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"],"sad-cry":[496,512,[],"f5b3","M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"],"sad-tear":[496,512,[],"f5b4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"],save:[448,512,[],"f0c7","M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"],school:[640,512,[],"f549","M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"],screwdriver:[512,512,[],"f54a","M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"],scroll:[640,512,[],"f70e","M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"],search:[512,512,[],"f002","M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"],"search-dollar":[512,512,[],"f688","M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"],"search-location":[512,512,[],"f689","M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],"search-minus":[512,512,[],"f010","M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"],"search-plus":[512,512,[],"f00e","M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"],seedling:[512,512,[],"f4d8","M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"],server:[512,512,[],"f233","M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"],shapes:[512,512,[],"f61f","M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z"],share:[512,512,[],"f064","M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"],"share-alt":[448,512,[],"f1e0","M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"],"share-alt-square":[448,512,[],"f1e1","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"],"share-square":[576,512,[],"f14d","M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"],"shekel-sign":[448,512,[],"f20b","M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"],"shield-alt":[512,512,[],"f3ed","M496 128c0 221.282-135.934 344.645-221.539 380.308a48 48 0 0 1-36.923 0C130.495 463.713 16 326.487 16 128a48 48 0 0 1 29.539-44.308l192-80a48 48 0 0 1 36.923 0l192 80A48 48 0 0 1 496 128zM256 446.313l.066.034c93.735-46.689 172.497-156.308 175.817-307.729L256 65.333v380.98z"],ship:[640,512,[],"f21a","M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"],"shipping-fast":[640,512,[],"f48b","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],"shoe-prints":[640,512,[],"f54b","M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"],"shopping-bag":[448,512,[],"f290","M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"],"shopping-basket":[576,512,[],"f291","M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"],"shopping-cart":[576,512,[],"f07a","M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"],shower:[512,512,[],"f2cc","M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z"],"shuttle-van":[640,512,[],"f5b6","M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"],sign:[512,512,[],"f4d9","M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"],"sign-in-alt":[512,512,[],"f2f6","M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"],"sign-language":[448,512,[],"f2a7","M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"],"sign-out-alt":[512,512,[],"f2f5","M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"],signal:[640,512,[],"f012","M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"],signature:[512,512,[],"f5b7","M496 320h-91.86c-9.27 0-19.72-11.31-25.78-28.52-15.23-43.36-48.11-70.3-85.8-70.3-30.84 0-58.47 18.05-76.11 49.23L194.8 106.5C188.84 81.08 169.34 64 146.28 64c-23.05 0-42.55 17.08-48.5 42.5L56.16 284.2C50.7 307.45 37.75 320 28.33 320H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h12.33c41.97 0 78.19-34.23 90.14-85.2l23.84-101.78 29.25 222.11c1.98 15.05 13.82 27.45 28.94 28.75.99.09 1.96.13 2.93.13 14.08 0 26.64-9.27 30.69-22.95l33.03-112.34c5.88-16.72 15.84-27.52 25.41-27.52 9.58 0 19.55 10.8 25.78 28.52 15.23 43.36 48.11 70.3 85.8 70.3H496c8.84 0 16-7.16 16-16v-32c0-8.86-7.16-16.02-16-16.02z"],sitemap:[640,512,[],"f0e8","M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],skull:[512,512,[],"f54c","M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"],"skull-crossbones":[448,512,[],"f714","M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"],slash:[640,512,[],"f715","M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"],"sliders-h":[512,512,[],"f1de","M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"],smile:[496,512,[],"f118","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"],"smile-beam":[496,512,[],"f5b8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"],"smile-wink":[496,512,[],"f4da","M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"],smoking:[640,512,[],"f48d","M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"],"smoking-ban":[512,512,[],"f54d","M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"],snowflake:[448,512,[],"f2dc","M444.816 301.639a24.12 24.12 0 0 0 2.661-16.978c-2.725-12.966-15.339-21.245-28.174-18.492l-87.407 25.046L264 256l67.896-35.215 87.407 25.046c12.835 2.753 25.449-5.526 28.174-18.492 2.725-12.966-5.471-25.708-18.305-28.461l-47.477-7.137 53.077-30.956c11.363-6.627 15.257-21.306 8.696-32.785-6.561-11.479-21.091-15.412-32.454-8.785l-53.077 30.956 17.621-45.104c4.057-12.606-2.768-26.146-15.247-30.245-12.478-4.099-25.883 2.797-29.94 15.402l-22.232 88.99-60.38 35.215V144l65.175-63.945c8.778-9.852 7.987-25.027-1.766-33.894-9.753-8.867-24.775-8.068-33.552 1.784l-29.857 37.967V24c0-13.255-10.637-24-23.758-24s-23.758 10.745-23.758 24v61.912l-29.857-37.967c-8.779-9.852-23.799-10.652-33.552-1.784-9.753 8.867-10.543 24.042-1.766 33.894L200.242 144v70.431l-60.38-35.215-22.232-88.99c-4.057-12.605-17.462-19.501-29.94-15.402-12.478 4.099-19.304 17.64-15.247 30.245l17.62 45.104-53.077-30.956c-11.363-6.627-25.893-2.694-32.454 8.785s-2.667 26.157 8.696 32.785l53.077 30.956-47.477 7.137C5.993 201.634-2.203 214.375.523 227.341c2.725 12.965 15.339 21.245 28.174 18.492l87.407-25.046L184 256l-67.896 35.215-87.406-25.045c-12.835-2.753-25.449 5.526-28.174 18.492-2.725 12.967 5.47 25.708 18.305 28.461l47.477 7.137-53.077 30.956C1.866 357.843-2.027 372.521 4.533 384s21.091 15.412 32.454 8.785l53.077-30.956-17.62 45.104a24.157 24.157 0 0 0 2.022 19.428c2.831 4.953 7.416 8.909 13.224 10.816 12.478 4.099 25.883-2.797 29.94-15.402l22.232-88.99 60.38-35.215V368l-65.175 63.945c-8.778 9.852-7.987 25.027 1.766 33.894 9.754 8.868 24.774 8.068 33.552-1.784l29.857-37.967V488c0 13.255 10.637 24 23.758 24s23.758-10.745 23.758-24v-61.912l29.857 37.967A23.59 23.59 0 0 0 295.282 472a23.534 23.534 0 0 0 15.885-6.161c9.753-8.867 10.544-24.042 1.766-33.894L247.758 368v-70.431l60.38 35.215 22.232 88.99c4.057 12.605 17.462 19.501 29.94 15.402 12.479-4.099 19.304-17.64 15.247-30.245l-17.621-45.104 53.077 30.956c11.363 6.627 25.893 2.694 32.454-8.785s2.667-26.157-8.696-32.785l-53.077-30.956 47.477-7.137c6.86-1.469 12.394-5.793 15.645-11.481z"],socks:[512,512,[],"f696","M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"],"solar-panel":[640,512,[],"f5ba","M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"],sort:[320,512,[],"f0dc","M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"],"sort-alpha-down":[448,512,[],"f15d","M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zm119.075-180.007A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"],"sort-alpha-up":[448,512,[],"f15e","M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zm301.671 98.621A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"],"sort-amount-down":[512,512,[],"f160","M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"],"sort-amount-up":[512,512,[],"f161","M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"],"sort-down":[320,512,[],"f0dd","M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"],"sort-numeric-down":[448,512,[],"f162","M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM175.984 368H128V48c0-8.837-7.163-16-16-16H80c-8.837 0-16 7.163-16 16v320H16.019c-14.212 0-21.384 17.244-11.314 27.314l79.981 80.002c6.245 6.245 16.38 6.247 22.627 0l79.984-80.002c10.05-10.05 2.928-27.314-11.313-27.314z"],"sort-numeric-up":[448,512,[],"f163","M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM16.016 144H64v320c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144h47.981c14.212 0 21.384-17.244 11.314-27.314l-79.981-80.002c-6.245-6.245-16.38-6.247-22.627 0L4.702 116.686C-5.347 126.736 1.775 144 16.016 144z"],"sort-up":[320,512,[],"f0de","M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"],spa:[576,512,[],"f5bb","M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"],"space-shuttle":[640,512,[],"f197","M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"],spider:[576,512,[],"f717","M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"],spinner:[512,512,[],"f110","M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"],splotch:[512,512,[],"f5bc","M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"],"spray-can":[512,512,[],"f5bd","M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],square:[448,512,[],"f0c8","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],"square-full":[512,512,[],"f45c","M512 512H0V0h512v512z"],"square-root-alt":[576,512,[],"f698","M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"],stamp:[512,512,[],"f5bf","M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"],star:[576,512,[],"f005","M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"],"star-and-crescent":[512,512,[],"f699","M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"],"star-half":[576,512,[],"f089","M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"],"star-half-alt":[536,512,[],"f5c0","M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"],"star-of-david":[464,512,[],"f69a","M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"],"star-of-life":[480,512,[],"f621","M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"],"step-backward":[448,512,[],"f048","M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"],"step-forward":[448,512,[],"f051","M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"],stethoscope:[512,512,[],"f0f1","M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],"sticky-note":[448,512,[],"f249","M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"],stop:[448,512,[],"f04d","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],"stop-circle":[512,512,[],"f28d","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"],stopwatch:[448,512,[],"f2f2","M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"],store:[616,512,[],"f54e","M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"],"store-alt":[640,512,[],"f54f","M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"],stream:[512,512,[],"f550","M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"],"street-view":[512,512,[],"f21d","M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"],strikethrough:[512,512,[],"f0cc","M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z"],stroopwafel:[512,512,[],"f551","M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"],subscript:[512,512,[],"f12c","M395.198 416c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 256c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 96H16C7.163 96 0 88.837 0 80V48c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035A15.999 15.999 0 0 1 204.226 32H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 256H272z"],subway:[448,512,[],"f239","M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"],suitcase:[512,512,[],"f0f2","M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"],"suitcase-rolling":[384,512,[],"f5c1","M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"],sun:[512,512,[],"f185","M274.835 12.646l25.516 62.393c4.213 10.301 16.671 14.349 26.134 8.492l57.316-35.479c15.49-9.588 34.808 4.447 30.475 22.142l-16.03 65.475c-2.647 10.81 5.053 21.408 16.152 22.231l67.224 4.987c18.167 1.348 25.546 24.057 11.641 35.826L441.81 242.26c-8.495 7.19-8.495 20.289 0 27.479l51.454 43.548c13.906 11.769 6.527 34.478-11.641 35.826l-67.224 4.987c-11.099.823-18.799 11.421-16.152 22.231l16.03 65.475c4.332 17.695-14.986 31.73-30.475 22.142l-57.316-35.479c-9.463-5.858-21.922-1.81-26.134 8.492l-25.516 62.393c-6.896 16.862-30.774 16.862-37.67 0l-25.516-62.393c-4.213-10.301-16.671-14.349-26.134-8.492l-57.317 35.479c-15.49 9.588-34.808-4.447-30.475-22.142l16.03-65.475c2.647-10.81-5.053-21.408-16.152-22.231l-67.224-4.987c-18.167-1.348-25.546-24.057-11.641-35.826L70.19 269.74c8.495-7.19 8.495-20.289 0-27.479l-51.454-43.548c-13.906-11.769-6.527-34.478 11.641-35.826l67.224-4.987c11.099-.823 18.799-11.421 16.152-22.231l-16.03-65.475c-4.332-17.695 14.986-31.73 30.475-22.142l57.317 35.479c9.463 5.858 21.921 1.81 26.134-8.492l25.516-62.393c6.896-16.861 30.774-16.861 37.67 0zM392 256c0-74.991-61.01-136-136-136-74.991 0-136 61.009-136 136s61.009 136 136 136c74.99 0 136-61.009 136-136zm-32 0c0 57.346-46.654 104-104 104s-104-46.654-104-104 46.654-104 104-104 104 46.654 104 104z"],superscript:[512,512,[],"f12b","M395.198 256c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 256H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035a16 16 0 0 1 13.598-7.567H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 416H272z"],surprise:[496,512,[],"f5c2","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],swatchbook:[511,512,[],"f5c3","M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z"],swimmer:[640,512,[],"f5c4","M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"],"swimming-pool":[640,512,[],"f5c5","M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"],synagogue:[640,512,[],"f69b","M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"],sync:[512,512,[],"f021","M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z"],"sync-alt":[512,512,[],"f2f1","M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"],syringe:[512,512,[],"f48e","M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"],table:[512,512,[],"f0ce","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"],"table-tennis":[512,512,[],"f45d","M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"],tablet:[448,512,[],"f10a","M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"tablet-alt":[448,512,[],"f3fa","M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"],tablets:[640,512,[],"f490","M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"],"tachometer-alt":[576,512,[],"f3fd","M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],tag:[512,512,[],"f02b","M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"],tags:[640,512,[],"f02c","M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"],tape:[640,512,[],"f4db","M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"],tasks:[512,512,[],"f0ae","M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z"],taxi:[512,512,[],"f1ba","M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],teeth:[640,512,[],"f62e","M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"],"teeth-open":[640,512,[],"f62f","M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"],terminal:[640,512,[],"f120","M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"],"text-height":[576,512,[],"f034","M16 32h288c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96h-54.761v320H232c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H88c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm475.308 4.685l79.995 80.001C581.309 126.693 574.297 144 559.99 144H512v224h48c15.639 0 20.635 17.991 11.313 27.314l-79.995 80.001c-6.247 6.247-16.381 6.245-22.626 0l-79.995-80.001C378.691 385.307 385.703 368 400.01 368H448V144h-48c-15.639 0-20.635-17.991-11.313-27.314l79.995-80.001c6.247-6.248 16.381-6.245 22.626 0z"],"text-width":[448,512,[],"f035","M16 32h416c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96H261.743v128H296c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H152c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm427.315 340.682l-80.001-79.995C353.991 283.365 336 288.362 336 304v48H112v-47.99c0-14.307-17.307-21.319-27.314-11.313L4.685 372.692c-6.245 6.245-6.247 16.379 0 22.626l80.001 79.995C94.009 484.635 112 479.638 112 464v-48h224v47.99c0 14.307 17.307 21.319 27.314 11.313l80.001-79.995c6.245-6.245 6.248-16.379 0-22.626z"],th:[512,512,[],"f00a","M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"],"th-large":[512,512,[],"f009","M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"],"th-list":[512,512,[],"f00b","M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"],"theater-masks":[640,512,[],"f630","M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"],thermometer:[512,512,[],"f491","M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"],"thermometer-empty":[256,512,[],"f2cb","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],"thermometer-full":[256,512,[],"f2c7","M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"],"thermometer-half":[256,512,[],"f2c9","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],"thermometer-quarter":[256,512,[],"f2ca","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],"thermometer-three-quarters":[256,512,[],"f2c8","M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],"thumbs-down":[512,512,[],"f165","M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"],"thumbs-up":[512,512,[],"f164","M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"],thumbtack:[384,512,[],"f08d","M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"],"ticket-alt":[576,512,[],"f3ff","M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"],times:[352,512,[],"f00d","M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"],"times-circle":[512,512,[],"f057","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"],tint:[352,512,[],"f043","M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"],"tint-slash":[640,512,[],"f5c7","M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"],tired:[496,512,[],"f5c8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"],"toggle-off":[576,512,[],"f204","M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"],"toggle-on":[576,512,[],"f205","M576 256c0 106.039-85.961 192-192 192H192C85.961 448 0 362.039 0 256S85.961 64 192 64h192c106.039 0 192 85.961 192 192zM384 128c-70.741 0-128 57.249-128 128 0 70.741 57.249 128 128 128 70.741 0 128-57.249 128-128 0-70.741-57.249-128-128-128"],"toilet-paper":[576,512,[],"f71e","M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"],toolbox:[512,512,[],"f552","M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"],tooth:[448,512,[],"f5c9","M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"],torah:[448,512,[],"f6a0","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM139.11 141.21c-2.77-4.41.4-10.14 5.6-10.14h53.08c.9 0 1.73-.46 2.21-1.22l34.4-54.76c2.6-4.13 8.61-4.13 11.21 0l34.4 54.76a2.61 2.61 0 0 0 2.21 1.22h53.08c5.2 0 8.37 5.73 5.6 10.14L314.01 184l26.88 42.79c2.77 4.4-.4 10.13-5.6 10.13h-53.08c-.9 0-1.73.46-2.21 1.22l-34.4 54.76c-2.6 4.13-8.61 4.13-11.21 0L200 238.15a2.61 2.61 0 0 0-2.21-1.22h-53.08c-5.2 0-8.37-5.73-5.6-10.13l26.88-42.8-26.88-42.79zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],"torii-gate":[512,512,[],"f6a1","M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"],tractor:[640,512,[],"f722","M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"],trademark:[640,512,[],"f25c","M97.119 163.133H12c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h248.559c6.627 0 12 5.373 12 12v43.133c0 6.627-5.373 12-12 12H175.44V404c0 6.627-5.373 12-12 12h-54.322c-6.627 0-12-5.373-12-12V163.133zM329.825 96h65.425a12 12 0 0 1 11.346 8.093l43.759 127.068c7.161 20.588 16.111 52.812 16.111 52.812h.896s8.95-32.224 16.111-52.812l43.758-127.068A12 12 0 0 1 538.577 96h65.41a12 12 0 0 1 11.961 11.03l24.012 296c.567 6.987-4.951 12.97-11.961 12.97h-54.101a12 12 0 0 1-11.972-11.182l-9.082-132.93c-1.79-24.168 0-53.706 0-53.706h-.896s-10.741 33.566-17.902 53.706l-30.7 84.731a12 12 0 0 1-11.282 7.912h-50.302a12 12 0 0 1-11.282-7.912l-30.7-84.731c-7.161-20.14-17.903-53.706-17.903-53.706h-.895s1.79 29.538 0 53.706l-9.082 132.93c-.428 6.295-5.66 11.182-11.97 11.182H305.4c-7.017 0-12.536-5.994-11.959-12.987l24.425-296A11.999 11.999 0 0 1 329.825 96z"],"traffic-light":[384,512,[],"f637","M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"],train:[448,512,[],"f238","M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"],transgender:[384,512,[],"f224","M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],"transgender-alt":[480,512,[],"f225","M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],trash:[448,512,[],"f1f8","M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm415.2 56.7L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32.8 140.7c-.4-6.9 5.1-12.7 12-12.7h358.5c6.8 0 12.3 5.8 11.9 12.7z"],"trash-alt":[448,512,[],"f2ed","M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"],tree:[384,512,[],"f1bb","M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"],trophy:[576,512,[],"f091","M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"],truck:[640,512,[],"f0d1","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],"truck-loading":[640,512,[],"f4de","M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],"truck-monster":[640,512,[],"f63b","M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"],"truck-moving":[640,512,[],"f4df","M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"],"truck-pickup":[640,512,[],"f63c","M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"],tshirt:[640,512,[],"f553","M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"],tty:[512,512,[],"f1e4","M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"],tv:[640,512,[],"f26c","M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z"],umbrella:[576,512,[],"f0e9","M557.011 267.631c-51.432-45.217-107.572-43.698-158.567 30.731-5.298 7.861-14.906 7.165-19.736 0-2.483-3.624-32.218-60.808-90.708-60.808-45.766 0-70.542 31.378-90.709 60.808-4.829 7.165-14.436 7.861-19.734 0-50.904-74.285-106.613-76.406-158.567-30.731-10.21 8.264-20.912-1.109-18.696-9.481C32.146 134.573 158.516 64.612 288.001 64.612c128.793 0 256.546 69.961 287.706 193.538 2.206 8.322-8.426 17.793-18.696 9.481zM256 261.001V416c0 17.645-14.355 32-32 32s-32-14.355-32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 52.935 43.065 96 96 96s96-43.065 96-96V261.288c-21.836-10.806-45.425-9.737-64-.287zm64-211.007V32c0-17.673-14.327-32-32-32s-32 14.327-32 32v17.987a372.105 372.105 0 0 1 64 .007z"],"umbrella-beach":[640,512,[],"f5ca","M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"],underline:[448,512,[],"f0cd","M224.264 388.24c-91.669 0-156.603-51.165-156.603-151.392V64H39.37c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h137.39c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.813v172.848c0 53.699 28.314 79.444 76.317 79.444 46.966 0 75.796-25.434 75.796-79.965V64h-28.291c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h136.868c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.291v172.848c0 99.405-64.881 151.392-156.082 151.392zM16 448h416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16z"],undo:[512,512,[],"f0e2","M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"],"undo-alt":[512,512,[],"f2ea","M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"],"universal-access":[512,512,[],"f29a","M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"],university:[512,512,[],"f19c","M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"],unlink:[512,512,[],"f127","M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"],unlock:[448,512,[],"f09c","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"],"unlock-alt":[448,512,[],"f13e","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"],upload:[512,512,[],"f093","M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"],user:[448,512,[],"f007","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],"user-alt":[512,512,[],"f406","M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"],"user-alt-slash":[640,512,[],"f4fa","M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"],"user-astronaut":[448,512,[],"f4fb","M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"],"user-check":[640,512,[],"f4fc","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"],"user-circle":[496,512,[],"f2bd","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"],"user-clock":[640,512,[],"f4fd","M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"],"user-cog":[640,512,[],"f4fe","M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"],"user-edit":[640,512,[],"f4ff","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"],"user-friends":[640,512,[],"f500","M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"],"user-graduate":[448,512,[],"f501","M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"],"user-injured":[448,512,[],"f728","M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"],"user-lock":[640,512,[],"f502","M320 320c0-11.1 3.1-21.4 8.1-30.5-4.8-.5-9.5-1.5-14.5-1.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h280.9c-5.5-9.5-8.9-20.3-8.9-32V320zm-96-64c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm384 32h-32v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80v48h-32c-17.7 0-32 14.3-32 32v160c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zm-80 0h-64v-48c0-17.6 14.4-32 32-32s32 14.4 32 32v48z"],"user-md":[448,512,[],"f0f0","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"],"user-minus":[640,512,[],"f503","M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],"user-ninja":[448,512,[],"f504","M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"],"user-plus":[640,512,[],"f234","M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],"user-secret":[448,512,[],"f21b","M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"],"user-shield":[640,512,[],"f505","M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"],"user-slash":[640,512,[],"f506","M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"],"user-tag":[640,512,[],"f507","M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"],"user-tie":[448,512,[],"f508","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"],"user-times":[640,512,[],"f235","M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],users:[640,512,[],"f0c0","M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"],"users-cog":[640,512,[],"f509","M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"],"utensil-spoon":[512,512,[],"f2e5","M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"],utensils:[416,512,[],"f2e7","M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"],"vector-square":[512,512,[],"f5cb","M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"],venus:[288,512,[],"f221","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"],"venus-double":[512,512,[],"f226","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"],"venus-mars":[576,512,[],"f228","M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],vial:[480,512,[],"f492","M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"],vials:[640,512,[],"f493","M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"],video:[576,512,[],"f03d","M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"],"video-slash":[640,512,[],"f4e2","M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"],vihara:[640,512,[],"f6a7","M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"],"volleyball-ball":[495,512,[],"f45f","M223.3 243.4c-.9-37-8.6-72.8-22.7-105.7-90.8 42.4-157.5 122.4-180.3 216.8 13.4 30.8 32.9 58.3 56.9 81.1 22.7-79.2 74.2-147.8 146.1-192.2zM186.4 109c-15-26.4-34.5-50.1-57.4-70.7C38 88.1-15.8 191.2 4 300.5c33.4-83.1 98.4-152 182.4-191.5zM374 274.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5 57.3 59.3 91 138.2 93.5 222.7 32.5 17.7 67.3 29 102.9 33.2zm-124.7 9.5c-31.6 19.3-58.7 43.9-80.2 72.6 82 57.3 184.5 75.1 277.5 47.8 19.7-26.4 34.2-56.8 42.2-89.9-26.6 6.6-53.7 10.4-80.9 10.4-54.6-.1-108.9-14.1-158.6-40.9zM151 383.3c-15.2 26-25.7 54.4-32.1 84.2 37.6 23 81.7 36.5 129.1 36.5 61 0 116.7-22.1 159.9-58.6C295 461.5 204.6 420.6 151 383.3zM331.3 22.7c55.3 70.4 82.5 161.2 74.6 253.6 30.3.2 60.5-4.8 89.7-14.2 0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"],"volume-down":[384,512,[],"f027","M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"],"volume-mute":[512,512,[],"f6a9","M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"],"volume-off":[257,512,[],"f026","M216.36 71.04L127.39 160H25.33c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.47-25.96-31.98-40.97-16.98z"],"volume-up":[576,512,[],"f028","M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"],walking:[320,512,[],"f554","M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"],wallet:[512,512,[],"f555","M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],warehouse:[640,512,[],"f494","M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"],weight:[512,512,[],"f496","M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"],"weight-hanging":[512,512,[],"f5cd","M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"],wheelchair:[512,512,[],"f193","M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"],wifi:[640,512,[],"f1eb","M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"],wind:[512,512,[],"f72e","M156.66 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h142.19c15.95 0 30.77 10.85 33.37 26.58C194.86 366.6 179.42 384 160 384c-14.11 0-26.13-9.19-30.37-21.9-2.11-6.31-8.6-10.1-15.25-10.1H81.63c-9.8 0-17.73 8.81-15.86 18.43C74.39 414.58 113.37 448 160 448c57.09 0 102.7-50.09 95.19-108.63-6.21-48.39-49.74-83.37-98.53-83.37zM16 224h336c59.7 0 106.83-54.76 93.83-116.69-7.61-36.23-36.91-65.53-73.14-73.14-55.44-11.64-105.13 24.91-114.93 75.53-1.86 9.57 6.09 18.3 15.84 18.3h32.8c6.65 0 13.14-3.79 15.25-10.1C325.88 105.19 337.89 96 352 96c19.42 0 34.86 17.39 31.55 37.41-2.6 15.73-17.42 26.59-33.37 26.59H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm384 32H243.68c19.34 16.57 33.19 38.79 39.77 64H400c26.47 0 48 21.53 48 48s-21.53 48-48 48c-17.86 0-33.33-9.86-41.56-24.38-2.85-5.03-8.69-7.62-14.47-7.62h-33.82c-10.91 0-18.96 10.81-15.35 21.1 17.77 50.6 70.54 84.75 129.41 72.35 41.22-8.69 75.1-41.65 84.67-82.68C525.98 321.46 470.48 256 400 256z"],"window-close":[512,512,[],"f410","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"],"window-maximize":[512,512,[],"f2d0","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"],"window-minimize":[512,512,[],"f2d1","M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"],"window-restore":[512,512,[],"f2d2","M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"],"wine-bottle":[512,512,[],"f72f","M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"],"wine-glass":[288,512,[],"f4e3","M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"],"wine-glass-alt":[288,512,[],"f5ce","M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"],"won-sign":[576,512,[],"f159","M564 192c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-48.028l18.572-80.61c1.732-7.518-3.978-14.694-11.693-14.694h-46.107a11.998 11.998 0 0 0-11.736 9.5L450.73 128H340.839l-19.725-85.987a12 12 0 0 0-11.696-9.317H265.43a12 12 0 0 0-11.687 9.277L233.696 128H124.975L107.5 42.299a12 12 0 0 0-11.758-9.602H53.628c-7.686 0-13.39 7.124-11.709 14.624L60 128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h62.342l7.171 32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h83.856l40.927 182.624A12 12 0 0 0 148.492 480h56.767c5.583 0 10.428-3.85 11.689-9.288L259.335 288h55.086l42.386 182.712A12 12 0 0 0 368.496 480h56.826a12 12 0 0 0 11.694-9.306L479.108 288H564c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-70.146l7.373-32H564zm-425.976 0h80.757l-7.457 32h-66.776l-6.524-32zm45.796 150.029c-6.194 25.831-6.758 47.25-7.321 47.25h-1.126s-1.689-22.05-6.758-47.25L157.599 288h38.812l-12.591 54.029zM274.182 224l1.996-8.602c1.856-7.962 3.457-15.968 4.803-23.398h11.794c1.347 7.43 2.947 15.436 4.803 23.398l1.996 8.602h-25.392zm130.959 118.029c-5.068 25.2-6.758 47.25-6.758 47.25h-1.126c-.563 0-1.126-21.42-7.321-47.25L377.542 288h39.107l-11.508 54.029zM430.281 224h-67.42l-7.34-32h81.577l-6.817 32z"],wrench:[512,512,[],"f0ad","M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],"x-ray":[640,512,[],"f497","M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"],"yen-sign":[384,512,[],"f157","M351.208 32h-65.277a12 12 0 0 0-10.778 6.724l-55.39 113.163c-14.513 34.704-27.133 71.932-27.133 71.932h-1.262s-12.62-37.228-27.133-71.932l-55.39-113.163A11.997 11.997 0 0 0 98.068 32H32.792c-9.057 0-14.85 9.65-10.59 17.643L102.322 200H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h88.162L152 293.228V320H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h108v92c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-92h108c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H232v-26.772L251.838 256H340c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12h-58.322l80.12-150.357C366.058 41.65 360.266 32 351.208 32z"],"yin-yang":[496,512,[],"f6ad","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]};!function(c){try{c()}catch(c){if(!m)throw c}}(function(){!function c(l,z){var h=Object.keys(z).reduce(function(c,l){var h=z[l];return h.icon?c[h.iconName]=h.icon:c[l]=h,c},{});"function"==typeof t.hooks.addPack?t.hooks.addPack(l,h):t.styles[l]=M({},t.styles[l]||{},h),"fas"===l&&c("fa",z)}("fas",f)})}(),function(){"use strict";var c=function(){},l={},h={},z=null,v={mark:c,measure:c};try{"undefined"!=typeof window&&(l=window),"undefined"!=typeof document&&(h=document),"undefined"!=typeof MutationObserver&&(z=MutationObserver),"undefined"!=typeof performance&&(v=performance)}catch(c){}var m=(l.navigator||{}).userAgent,s=void 0===m?"":m,r=l,H=h,e=z,a=v,t=!!r.document,M=!!H.documentElement&&!!H.head&&"function"==typeof H.addEventListener&&"function"==typeof H.createElement,p=~s.indexOf("MSIE")||~s.indexOf("Trident/"),f="___FONT_AWESOME___",b=16,i="svg-inline--fa",g="data-fa-i2svg",V="data-fa-pseudo-element",n="data-prefix",o="data-icon",C="fontawesome-i2svg",L=["HTML","HEAD","STYLE","SCRIPT"],u=function(){try{return!0}catch(c){return!1}}(),d=[1,2,3,4,5,6,7,8,9,10],S=d.concat([11,12,13,14,15,16,17,18,19,20]),y=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],w=["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter"].concat(d.map(function(c){return c+"x"})).concat(S.map(function(c){return"w-"+c})),k=function(c,l){if(!(c instanceof l))throw new TypeError("Cannot call a class as a function")},x=function(){function z(c,l){for(var h=0;h<l.length;h++){var z=l[h];z.enumerable=z.enumerable||!1,z.configurable=!0,"value"in z&&(z.writable=!0),Object.defineProperty(c,z.key,z)}}return function(c,l,h){return l&&z(c.prototype,l),h&&z(c,h),c}}(),A=Object.assign||function(c){for(var l=1;l<arguments.length;l++){var h=arguments[l];for(var z in h)Object.prototype.hasOwnProperty.call(h,z)&&(c[z]=h[z])}return c},q=function(c,l){if(Array.isArray(c))return c;if(Symbol.iterator in Object(c))return function(c,l){var h=[],z=!0,v=!1,m=void 0;try{for(var s,e=c[Symbol.iterator]();!(z=(s=e.next()).done)&&(h.push(s.value),!l||h.length!==l);z=!0);}catch(c){v=!0,m=c}finally{try{!z&&e.return&&e.return()}finally{if(v)throw m}}return h}(c,l);throw new TypeError("Invalid attempt to destructure non-iterable instance")},j=function(c){if(Array.isArray(c)){for(var l=0,h=Array(c.length);l<c.length;l++)h[l]=c[l];return h}return Array.from(c)},O=r.FontAwesomeConfig||{};if(H&&"function"==typeof H.querySelector){[["data-family-prefix","familyPrefix"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach(function(c){var l,h=q(c,2),z=h[0],v=h[1],m=""===(l=function(c){var l=H.querySelector("script["+c+"]");if(l)return l.getAttribute(c)}(z))||"false"!==l&&("true"===l||l);null!=m&&(O[v]=m)})}var N=A({familyPrefix:"fa",replacementClass:i,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},O);N.autoReplaceSvg||(N.observeMutations=!1);var E=A({},N);r.FontAwesomeConfig=E;var P=r||{};P[f]||(P[f]={}),P[f].styles||(P[f].styles={}),P[f].hooks||(P[f].hooks={}),P[f].shims||(P[f].shims=[]);var T=P[f],_=[],R=!1;M&&((R=(H.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(H.readyState))||H.addEventListener("DOMContentLoaded",function c(){H.removeEventListener("DOMContentLoaded",c),R=1,_.map(function(c){return c()})}));var F=function(c){M&&(R?setTimeout(c,0):_.push(c))},I=b,W={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function Y(c){if(c&&M){var l=H.createElement("style");l.setAttribute("type","text/css"),l.innerHTML=c;for(var h=H.head.childNodes,z=null,v=h.length-1;-1<v;v--){var m=h[v],s=(m.tagName||"").toUpperCase();-1<["STYLE","LINK"].indexOf(s)&&(z=m)}return H.head.insertBefore(l,z),c}}var B="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function D(){for(var c=12,l="";0<c--;)l+=B[62*Math.random()|0];return l}function X(c){for(var l=[],h=(c||[]).length>>>0;h--;)l[h]=c[h];return l}function U(c){return c.classList?X(c.classList):(c.getAttribute("class")||"").split(" ").filter(function(c){return c})}function K(c,l){var h,z=l.split("-"),v=z[0],m=z.slice(1).join("-");return v!==c||""===m||(h=m,~w.indexOf(h))?null:m}function G(c){return(""+c).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function J(h){return Object.keys(h||{}).reduce(function(c,l){return c+(l+": ")+h[l]+";"},"")}function Q(c){return c.size!==W.size||c.x!==W.x||c.y!==W.y||c.rotate!==W.rotate||c.flipX||c.flipY}function Z(c){var l=c.transform,h=c.containerWidth,z=c.iconWidth;return{outer:{transform:"translate("+h/2+" 256)"},inner:{transform:"translate("+32*l.x+", "+32*l.y+") "+" "+("scale("+l.size/16*(l.flipX?-1:1)+", "+l.size/16*(l.flipY?-1:1)+") ")+" "+("rotate("+l.rotate+" 0 0)")},path:{transform:"translate("+z/2*-1+" -256)"}}}var $={x:0,y:0,width:"100%",height:"100%"},cc=function(c){var l=c.children,h=c.attributes,z=c.main,v=c.mask,m=c.transform,s=z.width,e=z.icon,a=v.width,t=v.icon,M=Z({transform:m,containerWidth:a,iconWidth:s}),f={tag:"rect",attributes:A({},$,{fill:"white"})},r={tag:"g",attributes:A({},M.inner),children:[{tag:"path",attributes:A({},e.attributes,M.path,{fill:"black"})}]},H={tag:"g",attributes:A({},M.outer),children:[r]},i="mask-"+D(),V="clip-"+D(),n={tag:"defs",children:[{tag:"clipPath",attributes:{id:V},children:[t]},{tag:"mask",attributes:A({},$,{id:i,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[f,H]}]};return l.push(n,{tag:"rect",attributes:A({fill:"currentColor","clip-path":"url(#"+V+")",mask:"url(#"+i+")"},$)}),{children:l,attributes:h}},lc=function(c){var l=c.children,h=c.attributes,z=c.main,v=c.transform,m=J(c.styles);if(0<m.length&&(h.style=m),Q(v)){var s=Z({transform:v,containerWidth:z.width,iconWidth:z.width});l.push({tag:"g",attributes:A({},s.outer),children:[{tag:"g",attributes:A({},s.inner),children:[{tag:z.icon.tag,children:z.icon.children,attributes:A({},z.icon.attributes,s.path)}]}]})}else l.push(z.icon);return{children:l,attributes:h}},hc=function(c){var l=c.children,h=c.main,z=c.mask,v=c.attributes,m=c.styles,s=c.transform;if(Q(s)&&h.found&&!z.found){var e=h.width/h.height/2,a=.5;v.style=J(A({},m,{"transform-origin":e+s.x/16+"em "+(a+s.y/16)+"em"}))}return[{tag:"svg",attributes:v,children:l}]},zc=function(c){var l=c.prefix,h=c.iconName,z=c.children,v=c.attributes,m=c.symbol,s=!0===m?l+"-"+E.familyPrefix+"-"+h:m;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:A({},v,{id:s}),children:z}]}]};function vc(c){var l=c.icons,h=l.main,z=l.mask,v=c.prefix,m=c.iconName,s=c.transform,e=c.symbol,a=c.title,t=c.extra,M=c.watchable,f=void 0!==M&&M,r=z.found?z:h,H=r.width,i=r.height,V="fa-w-"+Math.ceil(H/i*16),n=[E.replacementClass,m?E.familyPrefix+"-"+m:"",V].filter(function(c){return-1===t.classes.indexOf(c)}).concat(t.classes).join(" "),o={children:[],attributes:A({},t.attributes,{"data-prefix":v,"data-icon":m,class:n,role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 "+H+" "+i})};f&&(o.attributes[g]=""),a&&o.children.push({tag:"title",attributes:{id:o.attributes["aria-labelledby"]||"title-"+D()},children:[a]});var C=A({},o,{prefix:v,iconName:m,main:h,mask:z,transform:s,symbol:e,styles:t.styles}),L=z.found&&h.found?cc(C):lc(C),u=L.children,d=L.attributes;return C.children=u,C.attributes=d,e?zc(C):hc(C)}function mc(c){var l=c.content,h=c.width,z=c.height,v=c.transform,m=c.title,s=c.extra,e=c.watchable,a=void 0!==e&&e,t=A({},s.attributes,m?{title:m}:{},{class:s.classes.join(" ")});a&&(t[g]="");var M,f,r,H,i,V,n,o,C,L=A({},s.styles);Q(v)&&(L.transform=(f=(M={transform:v,startCentered:!0,width:h,height:z}).transform,r=M.width,H=void 0===r?b:r,i=M.height,V=void 0===i?b:i,n=M.startCentered,C="",C+=(o=void 0!==n&&n)&&p?"translate("+(f.x/I-H/2)+"em, "+(f.y/I-V/2)+"em) ":o?"translate(calc(-50% + "+f.x/I+"em), calc(-50% + "+f.y/I+"em)) ":"translate("+f.x/I+"em, "+f.y/I+"em) ",C+="scale("+f.size/I*(f.flipX?-1:1)+", "+f.size/I*(f.flipY?-1:1)+") ",C+="rotate("+f.rotate+"deg) "),L["-webkit-transform"]=L.transform);var u=J(L);0<u.length&&(t.style=u);var d=[];return d.push({tag:"span",attributes:t,children:[l]}),m&&d.push({tag:"span",attributes:{class:"sr-only"},children:[m]}),d}var sc=function(){},ec=E.measurePerformance&&a&&a.mark&&a.measure?a:{mark:sc,measure:sc},ac='FA "5.4.1"',tc=function(c){ec.mark(ac+" "+c+" ends"),ec.measure(ac+" "+c,ac+" "+c+" begins",ac+" "+c+" ends")},Mc={begin:function(c){return ec.mark(ac+" "+c+" begins"),function(){return tc(c)}},end:tc},fc=function(c,l,h,z){var v,m,s,e,a,t=Object.keys(c),M=t.length,f=void 0!==z?(e=l,a=z,function(c,l,h,z){return e.call(a,c,l,h,z)}):l;for(void 0===h?(v=1,s=c[t[0]]):(v=0,s=h);v<M;v++)s=f(s,c[m=t[v]],m,c);return s},rc=T.styles,Hc=T.shims,ic={},Vc={},nc={},oc=function(){var c=function(z){return fc(rc,function(c,l,h){return c[h]=fc(l,z,{}),c},{})};ic=c(function(c,l,h){return c[l[3]]=h,c}),Vc=c(function(l,c,h){var z=c[2];return l[h]=h,z.forEach(function(c){l[c]=h}),l});var m="far"in rc;nc=fc(Hc,function(c,l){var h=l[0],z=l[1],v=l[2];return"far"!==z||m||(z="fas"),c[h]={prefix:z,iconName:v},c},{})};function Cc(c,l){return ic[c][l]}oc();var Lc=T.styles,uc=function(){return{prefix:null,iconName:null,rest:[]}};function dc(c){return c.reduce(function(c,l){var h=K(E.familyPrefix,l);if(Lc[l])c.prefix=l;else if(h){var z="fa"===c.prefix?nc[h]||{prefix:null,iconName:null}:{};c.iconName=z.iconName||h,c.prefix=z.prefix||c.prefix}else l!==E.replacementClass&&0!==l.indexOf("fa-w-")&&c.rest.push(l);return c},uc())}function pc(c,l,h){if(c&&c[l]&&c[l][h])return{prefix:l,iconName:h,icon:c[l][h]}}function bc(c){var h,l=c.tag,z=c.attributes,v=void 0===z?{}:z,m=c.children,s=void 0===m?[]:m;return"string"==typeof c?G(c):"<"+l+" "+(h=v,Object.keys(h||{}).reduce(function(c,l){return c+(l+'="')+G(h[l])+'" '},"").trim())+">"+s.map(bc).join("")+"</"+l+">"}var gc=function(){};function Sc(c){return"string"==typeof(c.getAttribute?c.getAttribute(g):null)}var yc={replace:function(c){var l=c[0],h=c[1].map(function(c){return bc(c)}).join("\n");if(l.parentNode&&l.outerHTML)l.outerHTML=h+(E.keepOriginalSource&&"svg"!==l.tagName.toLowerCase()?"\x3c!-- "+l.outerHTML+" --\x3e":"");else if(l.parentNode){var z=document.createElement("span");l.parentNode.replaceChild(z,l),z.outerHTML=h}},nest:function(c){var l=c[0],h=c[1];if(~U(l).indexOf(E.replacementClass))return yc.replace(c);var z=new RegExp(E.familyPrefix+"-.*");delete h[0].attributes.style;var v=h[0].attributes.class.split(" ").reduce(function(c,l){return l===E.replacementClass||l.match(z)?c.toSvg.push(l):c.toNode.push(l),c},{toNode:[],toSvg:[]});h[0].attributes.class=v.toSvg.join(" ");var m=h.map(function(c){return bc(c)}).join("\n");l.setAttribute("class",v.toNode.join(" ")),l.setAttribute(g,""),l.innerHTML=m}};function wc(h,c){var z="function"==typeof c?c:gc;0===h.length?z():(r.requestAnimationFrame||function(c){return c()})(function(){var c=!0===E.autoReplaceSvg?yc.replace:yc[E.autoReplaceSvg]||yc.replace,l=Mc.begin("mutate");h.map(c),l(),z()})}var kc=!1;var xc=null;function Ac(c){if(e&&E.observeMutations){var v=c.treeCallback,m=c.nodeCallback,s=c.pseudoElementsCallback,l=c.observeMutationsRoot,h=void 0===l?H.body:l;xc=new e(function(c){kc||X(c).forEach(function(c){if("childList"===c.type&&0<c.addedNodes.length&&!Sc(c.addedNodes[0])&&(E.searchPseudoElements&&s(c.target),v(c.target)),"attributes"===c.type&&c.target.parentNode&&E.searchPseudoElements&&s(c.target.parentNode),"attributes"===c.type&&Sc(c.target)&&~y.indexOf(c.attributeName))if("class"===c.attributeName){var l=dc(U(c.target)),h=l.prefix,z=l.iconName;h&&c.target.setAttribute("data-prefix",h),z&&c.target.setAttribute("data-icon",z)}else m(c.target)})}),M&&xc.observe(h,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}var qc=function(c){var l=c.getAttribute("style"),h=[];return l&&(h=l.split(";").reduce(function(c,l){var h=l.split(":"),z=h[0],v=h.slice(1);return z&&0<v.length&&(c[z]=v.join(":").trim()),c},{})),h};function jc(c){for(var l="",h=0;h<c.length;h++){l+=("000"+c.charCodeAt(h).toString(16)).slice(-4)}return l}var Oc=function(c){var l,h,z=c.getAttribute("data-prefix"),v=c.getAttribute("data-icon"),m=void 0!==c.innerText?c.innerText.trim():"",s=dc(U(c));return z&&v&&(s.prefix=z,s.iconName=v),s.prefix&&1<m.length?s.iconName=(l=s.prefix,h=c.innerText,Vc[l][h]):s.prefix&&1===m.length&&(s.iconName=Cc(s.prefix,jc(c.innerText))),s},Nc=function(c){var l={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return c?c.toLowerCase().split(" ").reduce(function(c,l){var h=l.toLowerCase().split("-"),z=h[0],v=h.slice(1).join("-");if(z&&"h"===v)return c.flipX=!0,c;if(z&&"v"===v)return c.flipY=!0,c;if(v=parseFloat(v),isNaN(v))return c;switch(z){case"grow":c.size=c.size+v;break;case"shrink":c.size=c.size-v;break;case"left":c.x=c.x-v;break;case"right":c.x=c.x+v;break;case"up":c.y=c.y-v;break;case"down":c.y=c.y+v;break;case"rotate":c.rotate=c.rotate+v}return c},l):l},Ec=function(c){return Nc(c.getAttribute("data-fa-transform"))},Pc=function(c){var l=c.getAttribute("data-fa-symbol");return null!==l&&(""===l||l)},Tc=function(c){var l=X(c.attributes).reduce(function(c,l){return"class"!==c.name&&"style"!==c.name&&(c[l.name]=l.value),c},{}),h=c.getAttribute("title");return E.autoA11y&&(h?l["aria-labelledby"]=E.replacementClass+"-title-"+D():l["aria-hidden"]="true"),l},_c=function(c){var l=c.getAttribute("data-fa-mask");return l?dc(l.split(" ").map(function(c){return c.trim()})):uc()},Rc={iconName:null,title:null,prefix:null,transform:W,symbol:!1,mask:null,extra:{classes:[],styles:{},attributes:{}}};function Fc(c){this.name="MissingIcon",this.message=c||"Icon unavailable",this.stack=(new Error).stack}(Fc.prototype=Object.create(Error.prototype)).constructor=Fc;var Ic={fill:"currentColor"},Wc={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},Yc={tag:"path",attributes:A({},Ic,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})},Bc=A({},Wc,{attributeName:"opacity"}),Dc={tag:"g",children:[Yc,{tag:"circle",attributes:A({},Ic,{cx:"256",cy:"364",r:"28"}),children:[{tag:"animate",attributes:A({},Wc,{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:A({},Bc,{values:"1;0;1;1;0;1;"})}]},{tag:"path",attributes:A({},Ic,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:[{tag:"animate",attributes:A({},Bc,{values:"1;0;0;0;0;1;"})}]},{tag:"path",attributes:A({},Ic,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:A({},Bc,{values:"0;0;1;1;0;0;"})}]}]},Xc=T.styles,Uc="fa-layers-text",Kc=/Font Awesome 5 (Solid|Regular|Light|Brands|Free|Pro)/,Gc={Solid:"fas",Regular:"far",Light:"fal",Brands:"fab"},Jc={900:"fas",400:"far",300:"fal"};function Qc(c,l){var h={found:!1,width:512,height:512,icon:Dc};if(c&&l&&Xc[l]&&Xc[l][c]){var z=Xc[l][c];h={found:!0,width:z[0],height:z[1],icon:{tag:"path",attributes:{fill:"currentColor",d:z.slice(4)[0]}}}}else if(c&&l&&!E.showMissingIcons)throw new Fc("Icon is missing for prefix "+l+" with icon name "+c);return h}function Zc(c){var l,h,z,v,m,s,e,a,t,M,f,r,H,i,V,n,o,C,L,u=(h=Oc(l=c),z=h.iconName,v=h.prefix,m=h.rest,s=qc(l),e=Ec(l),a=Pc(l),t=Tc(l),M=_c(l),{iconName:z,title:l.getAttribute("title"),prefix:v,transform:e,symbol:a,mask:M,extra:{classes:m,styles:s,attributes:t}});return~u.extra.classes.indexOf(Uc)?function(c,l){var h=l.title,z=l.transform,v=l.extra,m=null,s=null;if(p){var e=parseInt(getComputedStyle(c).fontSize,10),a=c.getBoundingClientRect();m=a.width/e,s=a.height/e}return E.autoA11y&&!h&&(v.attributes["aria-hidden"]="true"),[c,mc({content:c.innerHTML,width:m,height:s,transform:z,title:h,extra:v,watchable:!0})]}(c,u):(f=c,H=(r=u).iconName,i=r.title,V=r.prefix,n=r.transform,o=r.symbol,C=r.mask,L=r.extra,[f,vc({icons:{main:Qc(H,V),mask:Qc(C.iconName,C.prefix)},prefix:V,iconName:H,transform:n,symbol:o,mask:C,title:i,extra:L,watchable:!0})])}function $c(c){if(M){var l=Mc.begin("searchPseudoElements");kc=!0,function(){X(c.querySelectorAll("*")).filter(function(c){return!(c.parentNode===document.head||~L.indexOf(c.tagName.toUpperCase())||c.getAttribute(V)||c.parentNode&&"svg"===c.parentNode.tagName)}).forEach(function(f){[":before",":after"].forEach(function(l){var c=X(f.children).filter(function(c){return c.getAttribute(V)===l})[0],h=r.getComputedStyle(f,l),z=h.getPropertyValue("font-family").match(Kc),v=h.getPropertyValue("font-weight");if(c&&!z)f.removeChild(c);else if(z){var m=h.getPropertyValue("content"),s=~["Light","Regular","Solid","Brands"].indexOf(z[1])?Gc[z[1]]:Jc[v],e=Cc(s,jc(3===m.length?m.substr(1,1):m));if(!c||c.getAttribute(n)!==s||c.getAttribute(o)!==e){c&&f.removeChild(c);var a=Rc.extra;a.attributes[V]=l;var t=vc(A({},Rc,{icons:{main:Qc(e,s),mask:uc()},prefix:s,iconName:e,extra:a,watchable:!0})),M=H.createElement("svg");":before"===l?f.insertBefore(M,f.firstChild):f.appendChild(M),M.outerHTML=t.map(function(c){return bc(c)}).join("\n")}}})})}(),kc=!1,l()}}function cl(c){var l=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;if(M){var h=H.documentElement.classList,z=function(c){return h.add(C+"-"+c)},v=function(c){return h.remove(C+"-"+c)},m=Object.keys(Xc),s=["."+Uc+":not(["+g+"])"].concat(m.map(function(c){return"."+c+":not(["+g+"])"})).join(", ");if(0!==s.length){var e=X(c.querySelectorAll(s));if(0<e.length){z("pending"),v("complete");var a=Mc.begin("onTree"),t=e.reduce(function(c,l){try{var h=Zc(l);h&&c.push(h)}catch(c){u||c instanceof Fc&&console.error(c)}return c},[]);a(),wc(t,function(){z("active"),z("complete"),v("pending"),"function"==typeof l&&l()})}}}}function ll(c){var l=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,h=Zc(c);h&&wc([h],l)}var hl=function(){var c=i,l=E.familyPrefix,h=E.replacementClass,z="svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1em}.svg-inline--fa.fa-stack-2x{height:2em;width:2em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}";if("fa"!==l||h!==c){var v=new RegExp("\\.fa\\-","g"),m=new RegExp("\\."+c,"g");z=z.replace(v,"."+l+"-").replace(m,"."+h)}return z};function zl(c){return{found:!0,width:c[0],height:c[1],icon:{tag:"path",attributes:{fill:"currentColor",d:c.slice(4)[0]}}}}function vl(){E.autoAddCss&&!tl&&(Y(hl()),tl=!0)}function ml(l,c){return Object.defineProperty(l,"abstract",{get:c}),Object.defineProperty(l,"html",{get:function(){return l.abstract.map(function(c){return bc(c)})}}),Object.defineProperty(l,"node",{get:function(){if(M){var c=H.createElement("div");return c.innerHTML=l.html,c.children}}}),l}function sl(c){var l=c.prefix,h=void 0===l?"fa":l,z=c.iconName;if(z)return pc(al.definitions,h,z)||pc(T.styles,h,z)}var el,al=new(function(){function c(){k(this,c),this.definitions={}}return x(c,[{key:"add",value:function(){for(var l=this,c=arguments.length,h=Array(c),z=0;z<c;z++)h[z]=arguments[z];var v=h.reduce(this._pullDefinitions,{});Object.keys(v).forEach(function(c){l.definitions[c]=A({},l.definitions[c]||{},v[c]),function c(l,z){var h=Object.keys(z).reduce(function(c,l){var h=z[l];return h.icon?c[h.iconName]=h.icon:c[l]=h,c},{});"function"==typeof T.hooks.addPack?T.hooks.addPack(l,h):T.styles[l]=A({},T.styles[l]||{},h),"fas"===l&&c("fa",z)}(c,v[c]),oc()})}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(m,c){var s=c.prefix&&c.iconName&&c.icon?{0:c}:c;return Object.keys(s).map(function(c){var l=s[c],h=l.prefix,z=l.iconName,v=l.icon;m[h]||(m[h]={}),m[h][z]=v}),m}}]),c}()),tl=!1,Ml={i2svg:function(){var c=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};if(M){vl();var l=c.node,h=void 0===l?H:l,z=c.callback,v=void 0===z?function(){}:z;E.searchPseudoElements&&$c(h),cl(h,v)}},css:hl,insertCss:function(){tl||(Y(hl()),tl=!0)},watch:function(){var c=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},l=c.autoReplaceSvgRoot,h=c.observeMutationsRoot;!1===E.autoReplaceSvg&&(E.autoReplaceSvg=!0),E.observeMutations=!0,F(function(){Hl({autoReplaceSvgRoot:l}),Ac({treeCallback:cl,nodeCallback:ll,pseudoElementsCallback:$c,observeMutationsRoot:h})})}},fl=(el=function(c){var l=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},h=l.transform,z=void 0===h?W:h,v=l.symbol,m=void 0!==v&&v,s=l.mask,e=void 0===s?null:s,a=l.title,t=void 0===a?null:a,M=l.classes,f=void 0===M?[]:M,r=l.attributes,H=void 0===r?{}:r,i=l.styles,V=void 0===i?{}:i;if(c){var n=c.prefix,o=c.iconName,C=c.icon;return ml(A({type:"icon"},c),function(){return vl(),E.autoA11y&&(t?H["aria-labelledby"]=E.replacementClass+"-title-"+D():H["aria-hidden"]="true"),vc({icons:{main:zl(C),mask:e?zl(e.icon):{found:!1,width:null,height:null,icon:{}}},prefix:n,iconName:o,transform:A({},W,z),symbol:m,title:t,extra:{attributes:H,styles:V,classes:f}})})}},function(c){var l=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},h=(c||{}).icon?c:sl(c||{}),z=l.mask;return z&&(z=(z||{}).icon?z:sl(z||{})),el(h,A({},l,{mask:z}))}),rl={noAuto:function(){E.autoReplaceSvg=!1,E.observeMutations=!1,xc&&xc.disconnect()},config:E,dom:Ml,library:al,parse:{transform:function(c){return Nc(c)}},findIconDefinition:sl,icon:fl,text:function(c){var l=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},h=l.transform,z=void 0===h?W:h,v=l.title,m=void 0===v?null:v,s=l.classes,e=void 0===s?[]:s,a=l.attributes,t=void 0===a?{}:a,M=l.styles,f=void 0===M?{}:M;return ml({type:"text",content:c},function(){return vl(),mc({content:c,transform:A({},W,z),title:m,extra:{attributes:t,styles:f,classes:[E.familyPrefix+"-layers-text"].concat(j(e))}})})},counter:function(c){var l=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},h=l.title,z=void 0===h?null:h,v=l.classes,m=void 0===v?[]:v,s=l.attributes,e=void 0===s?{}:s,a=l.styles,t=void 0===a?{}:a;return ml({type:"counter",content:c},function(){return vl(),function(c){var l=c.content,h=c.title,z=c.extra,v=A({},z.attributes,h?{title:h}:{},{class:z.classes.join(" ")}),m=J(z.styles);0<m.length&&(v.style=m);var s=[];return s.push({tag:"span",attributes:v,children:[l]}),h&&s.push({tag:"span",attributes:{class:"sr-only"},children:[h]}),s}({content:c.toString(),title:z,extra:{attributes:e,styles:t,classes:[E.familyPrefix+"-layers-counter"].concat(j(m))}})})},layer:function(c){return ml({type:"layer"},function(){vl();var l=[];return c(function(c){Array.isArray(c)?c.map(function(c){l=l.concat(c.abstract)}):l=l.concat(c.abstract)}),[{tag:"span",attributes:{class:E.familyPrefix+"-layers"},children:l}]})},toHtml:bc},Hl=function(){var c=(0<arguments.length&&void 0!==arguments[0]?arguments[0]:{}).autoReplaceSvgRoot,l=void 0===c?H:c;0<Object.keys(T.styles).length&&M&&E.autoReplaceSvg&&rl.dom.i2svg({node:l})};!function(c){try{c()}catch(c){if(!u)throw c}}(function(){t&&(r.FontAwesome||(r.FontAwesome=rl),F(function(){Hl(),Ac({treeCallback:cl,nodeCallback:ll,pseudoElementsCallback:$c})})),T.hooks=A({},T.hooks,{addPack:function(c,l){T.styles[c]=A({},T.styles[c]||{},l),oc(),Hl()},addShims:function(c){var l;(l=T.shims).push.apply(l,j(c)),oc(),Hl()}})})}();
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/js/brands.js b/htdocs/theme/common/fontawesome-5/js/brands.js
    new file mode 100644
    index 00000000000..93c93054964
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/brands.js
    @@ -0,0 +1,513 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +(function () {
    +'use strict';
    +
    +var _WINDOW = {};
    +try {
    +  if (typeof window !== 'undefined') _WINDOW = window;
    +  
    +} catch (e) {}
    +
    +var _ref = _WINDOW.navigator || {};
    +var _ref$userAgent = _ref.userAgent;
    +var userAgent = _ref$userAgent === undefined ? '' : _ref$userAgent;
    +
    +var WINDOW = _WINDOW;
    +
    +
    +
    +
    +
    +var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
    +
    +var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +var PRODUCTION = function () {
    +  try {
    +    return "production" === 'production';
    +  } catch (e) {
    +    return false;
    +  }
    +}();
    +
    +var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    +var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
    +
    +
    +
    +var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter'].concat(oneToTen.map(function (n) {
    +  return n + 'x';
    +})).concat(oneToTwenty.map(function (n) {
    +  return 'w-' + n;
    +}));
    +
    +function bunker(fn) {
    +  try {
    +    fn();
    +  } catch (e) {
    +    if (!PRODUCTION) {
    +      throw e;
    +    }
    +  }
    +}
    +
    +var w = WINDOW || {};
    +
    +if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
    +if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
    +if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
    +if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
    +
    +var namespace = w[NAMESPACE_IDENTIFIER];
    +
    +var _extends = Object.assign || function (target) {
    +  for (var i = 1; i < arguments.length; i++) {
    +    var source = arguments[i];
    +
    +    for (var key in source) {
    +      if (Object.prototype.hasOwnProperty.call(source, key)) {
    +        target[key] = source[key];
    +      }
    +    }
    +  }
    +
    +  return target;
    +};
    +
    +function define(prefix, icons) {
    +  var normalized = Object.keys(icons).reduce(function (acc, iconName) {
    +    var icon = icons[iconName];
    +    var expanded = !!icon.icon;
    +
    +    if (expanded) {
    +      acc[icon.iconName] = icon.icon;
    +    } else {
    +      acc[iconName] = icon;
    +    }
    +    return acc;
    +  }, {});
    +
    +  if (typeof namespace.hooks.addPack === 'function') {
    +    namespace.hooks.addPack(prefix, normalized);
    +  } else {
    +    namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, normalized);
    +  }
    +
    +  /**
    +   * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
    +   * of new styles we needed to differentiate between them. Prefix `fa` is now an alias
    +   * for `fas` so we'll easy the upgrade process for our users by automatically defining
    +   * this as well.
    +   */
    +  if (prefix === 'fas') {
    +    define('fa', icons);
    +  }
    +}
    +
    +var icons = {
    +  "500px": [448, 512, [], "f26e", "M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"],
    +  "accessible-icon": [448, 512, [], "f368", "M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"],
    +  "accusoft": [640, 512, [], "f369", "M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2.7 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2 23.4-2.4 1.3-114.6 47.7-117.8 48.9-10.1 4-17.5 6.8-30.8-9.3m114.7-5.6s-115 50.4-117.5 51.6c-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2-2.3-.3-24.6-4.7-38-7.2m-326-181.3s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3v-1l-51.2-65.8"],
    +  "acquisitions-incorporated": [344, 512, [], "f6af", "M344 0c-.81 5.47-1.63 10.79-2.39 16.12-1.39 9.74-2.9 19.48-4.05 29.25-.35 2.96-1.21 4.32-4.3 4.33-20.61.11-41.21.14-61.82.53-18.76.35-37.58.28-56.23 2-13.42 1.24-23.28 12.67-18.88 26.64 8.55 27.11 27.65 69.1 36.37 89.45 65.72 154.14 61.43 156.99 84 158.56 6.67.46 13.4.07 20.43.07 1.39 9.4 2.66 18.04 4.05 27.51H225.17v-27c10.33 0 20.36-.12 30.38.06 3.52.06 5.05-.63 3.44-4.37-4.44-10.29-8.77-20.63-13.25-30.9-1.62-3.72-4.06-4.78-8.4-3.52-12.32 3.59-24.79 6.69-37.26 9.69-4.25 1.02-5.93 2.77-5.86 7.46.85 57.47.95 127.53 1 129.12.4 12.54 8.75 21.41 21.03 23.07.89.12 12.89 2.72 112.68 2.56 8.25-.01 8.41-.17 9.57 7.56 2.15 14.34 4.14 28.7 6.26 43.53-367.75 0-153.93.61-337.09 0-3.95-.01-6.08-.69-5.28-5.74 2.04-12.86 3.5-25.82 4.97-38.76.55-4.81 2.29-6.81 7.63-6.77 118.09.99 114.93.35 121.43-2.39 9.42-3.98 14.98-12.85 14.95-23.07-.12-42.93-.33-85.86-.25-128.79.01-3.87-1.16-5.99-4.56-6.84-15.64-3.92-31.31-7.71-47.58-11.7-5.23 12.27-10.39 24.37-15.66 36.7 1.83 3.35 28.38 2.93 35.28 2.93v27.64H4.34c1.03-8.61 1.77-16.81 3.23-24.88.25-1.41 3.53-3.14 5.47-3.22 8.46-.35 16.95-.29 25.43-.09 3.99.09 5.92-1.04 7.61-5.16 16.63-40.7 13.51-31.17 67.31-160.97 31.53-76.09 33.06-76.02 32.64-87.43-.69-18.56-25.37-22.26-37.65-22.11-30.04.38-38.45-.47-101.84-.47C-.62 6.11 2.37 18.54.16 5.32-.55 1.08 1.19.03 4.8.02m113.08 247.19c2.3 1.15 3.97 2.29 5.82 2.87 13.29 4.21 26.64 8.24 39.93 12.46 6.14 1.95 11.98 2.12 18.3.05 13.02-4.28 26.29-7.81 39.43-11.73 1.46-.44 2.74-1.44 3.93-2.09-6.71-17.37-13.12-34.15-19.67-50.88-8.88-22.67-17.63-60.32-26.98-82.81-1.53-.78-1.91 2.36-9.43 0-17.11 44.05-34.14 87.88-51.33 132.13z"],
    +  "adn": [496, 512, [], "f170", "M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"],
    +  "adversal": [512, 512, [], "f36a", "M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"],
    +  "affiliatetheme": [512, 512, [], "f36b", "M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"],
    +  "algolia": [448, 512, [], "f36c", "M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z"],
    +  "alipay": [448, 512, [], "f642", "M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"],
    +  "amazon": [448, 512, [], "f270", "M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"],
    +  "amazon-pay": [611, 512, [], "f42c", "M0 325.2c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.7 20.4 83.2 35.6 127.4 46.3 20.9 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.4-6.7 110.9-20.8 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-2.8 2.8-6.3 5.1-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.6 7.9-49.6 13.8-75.1 17.6-17.6 2.6-35.4 4.4-53.2 4.8-.8 0-1.7.2-2.5.3H294c-.8-.1-1.7-.3-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.7-33.7-2.6-50.4-5.3-27.4-4.5-54.2-11.4-80.4-20.9-54.1-19.6-102.6-48.6-145.6-87-1.8-1.6-3-3.8-4.4-5.7v-2zM158 65c-1.4.2-2.9.4-4.3.6-14 1.7-26.6 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.5-.4-1-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6H87.8c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3V215c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zm-47.4 41.9c0-1.5.4-2.4 1.7-3.3 13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-1.2-.9-1.7-1.7-1.7-3.3.1-14.1 0-28.1 0-42.2 0-14 .1-28 0-42.1zM316.3 65c-1 .1-2 .3-2.9.4-9.8.5-19.4 1.7-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9 0 .4-.1.9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.5-21.1-4.3-32-4.9-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4.4-.4.9-.7 1.6-1.1.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0 2.7-.1 4.5-1.9 4.8-4.7.1-.9.1-1.9.1-2.8v-106c0-4.3-.2-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7c0 1.3-.4 2.2-1.5 3-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8-6.3-2.5-10.4-6.9-12.4-13.3s-2-13-.1-19.4c2.5-8.3 8.4-13 16.4-15.6 8.1-2.6 16.5-3 24.8-2.2 8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3-.1 4.7-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3-6.8-2.3-13.9-3.3-21-3.9-13.1-1.1-26.2-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 1-2.8 2.1-3.7 3.5-.7 1.1-.9 2.8-.5 4 .4 1.5 2.1 1.9 3.6 1.8.7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.8.3 9.7 1.4 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.7-.4 3.6-1.3 4.8-2.5 4.4-4.3 8.9-8.6 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM479.1 198.9c-12.9-35.7-25.8-71.5-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5.5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97.1 59.1 145.5 1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5.1 1.4-10.2 1.6-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9.1 5.5 2 8 7.4 8.9 5.6 1 11.3 1.9 16.9 2 17.1.4 30.7-6.5 39.5-21.4 3.5-5.9 6.7-12.1 9.2-18.4 23.7-59.8 47.1-119.7 70.6-179.6.7-1.8 1.3-3.6 1.6-5.5.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-3.7 0-6.3 1.6-7.7 5.2-.5 1.4-1.1 2.7-1.6 4.1-11.6 33.3-23.2 66.6-34.8 100-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"],
    +  "amilia": [448, 512, [], "f36d", "M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm-87.9 327.7c0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5V380c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7"],
    +  "android": [448, 512, [], "f17b", "M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z"],
    +  "angellist": [448, 512, [], "f209", "M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"],
    +  "angrycreative": [640, 512, [], "f36e", "M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"],
    +  "angular": [415, 512, [], "f420", "M169.7 268.1h76.2l-38.1-91.6-38.1 91.6zM207.8 32L0 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7L207.8 32zM338 373.8h-48.6l-26.2-65.4H152.6l-26.2 65.4H77.7L207.8 81.5 338 373.8z"],
    +  "app-store": [512, 512, [], "f36f", "M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z"],
    +  "app-store-ios": [448, 512, [], "f370", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"],
    +  "apper": [640, 512, [], "f371", "M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z"],
    +  "apple": [376, 512, [], "f179", "M314.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C59.3 141.2 0 184.8 0 273.5c0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"],
    +  "apple-pay": [640, 512, [], "f415", "M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z"],
    +  "asymmetrik": [576, 512, [], "f372", "M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"],
    +  "audible": [640, 512, [], "f373", "M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z"],
    +  "autoprefixer": [640, 512, [], "f41c", "M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z"],
    +  "avianex": [512, 512, [], "f374", "M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"],
    +  "aviato": [640, 512, [], "f421", "M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"],
    +  "aws": [640, 512, [], "f375", "M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z"],
    +  "bandcamp": [496, 512, [], "f2d5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z"],
    +  "behance": [576, 512, [], "f1b4", "M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z"],
    +  "behance-square": [448, 512, [], "f1b5", "M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z"],
    +  "bimobject": [448, 512, [], "f378", "M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z"],
    +  "bitbucket": [512, 512, [], "f171", "M23.1 32C14.2 31.9 7 38.9 6.9 47.8c0 .9.1 1.8.2 2.8L74.9 462c1.7 10.4 10.7 18 21.2 18.1h325.1c7.9.1 14.7-5.6 16-13.4l67.8-416c1.4-8.7-4.5-16.9-13.2-18.3-.9-.1-1.8-.2-2.8-.2L23.1 32zm285.3 297.3H204.6l-28.1-146.8h157l-25.1 146.8z"],
    +  "bitcoin": [512, 512, [], "f379", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z"],
    +  "bity": [496, 512, [], "f37a", "M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z"],
    +  "black-tie": [448, 512, [], "f27e", "M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z"],
    +  "blackberry": [512, 512, [], "f37b", "M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z"],
    +  "blogger": [448, 512, [], "f37c", "M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"],
    +  "blogger-b": [448, 512, [], "f37d", "M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"],
    +  "bluetooth": [448, 512, [], "f293", "M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"],
    +  "bluetooth-b": [320, 512, [], "f294", "M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"],
    +  "btc": [384, 512, [], "f15a", "M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"],
    +  "buromobelexperte": [448, 512, [], "f37f", "M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"],
    +  "buysellads": [448, 512, [], "f20d", "M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"],
    +  "cc-amazon-pay": [576, 512, [], "f42d", "M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"],
    +  "cc-amex": [576, 512, [], "f1f3", "M576 255.4c-37.9-.2-44.2-.9-54.5 5v-5c-45.3 0-53.5-1.7-64.9 5.2v-5.2h-78.2v5.1c-11.4-6.5-21.4-5.1-75.7-5.1v5.6c-6.3-3.7-14.5-5.6-24.3-5.6h-58c-3.5 3.8-12.5 13.7-15.7 17.2-12.7-14.1-10.5-11.6-15.5-17.2h-83.1v92.3h82c3.3-3.5 12.9-13.9 16.1-17.4 12.7 14.3 10.3 11.7 15.4 17.4h48.9c0-14.7.1-8.3.1-23 11.5.2 24.3-.2 34.3-6.2 0 13.9-.1 17.1-.1 29.2h39.6c0-18.5.1-7.4.1-25.3 6.2 0 7.7 0 9.4.1.1 1.3 0 0 0 25.2 152.8 0 145.9 1.1 156.7-4.5v4.5c34.8 0 54.8 2.2 67.5-6.1V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V228.3h26.6c4.2-10.1 2.2-5.3 6.4-15.3h19.2c4.2 10 2.2 5.2 6.4 15.3h52.9v-11.4c2.2 5 1.1 2.5 5.1 11.4h29.5c2.4-5.5 2.6-5.8 5.1-11.4v11.4h135.5v-25.1c6.4 0 8-.1 9.8.2 0 0-.2 10.9.1 24.8h66.5v-8.9c7.4 5.9 17.4 8.9 29.7 8.9h26.8c4.2-10.1 2.2-5.3 6.4-15.3h19c6.5 15 .2.5 6.6 15.3h52.8v-21.9c11.8 19.7 7.8 12.9 13.2 21.9h41.6v-92h-39.9v18.4c-12.2-20.2-6.3-10.4-11.2-18.4h-43.3v20.6c-6.2-14.6-4.6-10.8-8.8-20.6h-32.4c-.4 0-2.3.2-2.3-.3h-27.6c-12.8 0-23.1 3.2-30.7 9.3v-9.3h-39.9v5.3c-10.8-6.1-20.7-5.1-64.4-5.3-.1 0-11.6-.1-11.6 0h-103c-2.5 6.1-6.8 16.4-12.6 30-2.8-6-11-23.8-13.9-30h-46V157c-7.4-17.4-4.7-11-9-21.1H22.9c-3.4 7.9-13.7 32-23.1 53.9V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48v175.4zm-186.6-80.6c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm-19.9 130.9c9.2 3.3 11 9.5 11 18.4l-.1 13.8h-16.6l.1-11.5c0-11.8-3.8-13.8-14.8-13.8h-17.6l-.1 25.3h-16.6l.1-69.3h39.4c13 0 27.1 2.3 27.1 18.7-.1 7.6-4.2 15.3-11.9 18.4zm-6.3-15.4c0-6.4-5.6-7.4-10.7-7.4h-21v15.6h20.7c5.6 0 11-1.3 11-8.2zm181.7-7.1H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-99.2-.3v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5h38.5zm42.2 40.1h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-78.1-158.7c-17.4-.3-33.2-4.1-33.2 19.7 0 11.8 2.8 19.9 16.1 19.9h7.4l23.5-54.5h24.8l27.9 65.4v-65.4h25.3l29.1 48.1v-48.1h16.9v69H524l-31.2-51.9v51.9h-33.7l-6.6-15.3h-34.3l-6.4 15.3h-19.2c-22.8 0-33-11.8-33-34 0-23.3 10.5-35.3 34-35.3h16.1v15.2zm14.3 24.5h22.8l-11.2-27.6-11.6 27.6zm-72.6-39.6h-16.9v69.3h16.9v-69.3zm-38.1 37.3c9.5 3.3 11 9.2 11 18.4v13.5h-16.6c-.3-14.8 3.6-25.1-14.8-25.1h-18v25.1h-16.4v-69.3l39.1.3c13.3 0 27.4 2 27.4 18.4.1 8-4.3 15.7-11.7 18.7zm-6.7-15.3c0-6.4-5.6-7.4-10.7-7.4h-21v15.3h20.7c5.7 0 11-1.3 11-7.9zm-59.5-7.4v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5h38.9zm-84.6 54.7v-54.2l-24 54.2H124l-24-54.2v54.2H66.2l-6.4-15.3H25.3l-6.4 15.3H1l29.7-69.3h24.5l28.1 65.7v-65.7h27.1l21.7 47 19.7-47h27.6v69.3h-16.8zM53.9 188.8l-11.5-27.6-11.2 27.6h22.7zm253 102.5c0 27.9-30.4 23.3-49.3 23.3l-.1 23.3h-32.2l-20.4-23-21.3 23h-65.4l.1-69.3h66.5l20.5 22.8 21-22.8H279c15.6 0 27.9 5.4 27.9 22.7zm-112.7 11.8l-17.9-20.2h-41.7v12.5h36.3v14.1h-36.3v13.8h40.6l19-20.2zM241 276l-25.3 27.4 25.3 28.1V276zm48.3 15.3c0-6.1-4.6-8.4-10.2-8.4h-21.5v17.6h21.2c5.9 0 10.5-2.8 10.5-9.2z"],
    +  "cc-apple-pay": [576, 512, [], "f416", "M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"],
    +  "cc-diners-club": [576, 512, [], "f24c", "M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"],
    +  "cc-discover": [576, 512, [], "f1f2", "M83 212.1c0 7.9-3.2 15.5-8.9 20.7-4.9 4.4-11.6 6.4-21.9 6.4H48V185h4.2c10.3 0 16.7 1.7 21.9 6.6 5.7 5 8.9 12.6 8.9 20.5zM504.8 184h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8 0-7.9-5.5-12.1-15.6-12.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM428 253h45.3v-13.8H444V217h28.3v-13.8H444V185h29.3v-14H428v82zm-86.2-82l35 84.2h8.6l35.5-84.2h-17.5l-22.2 55.2-21.9-55.2h-17.5zm-83 41.6c0 24.6 19.9 44.6 44.6 44.6 24.6 0 44.6-19.9 44.6-44.6 0-24.6-19.9-44.6-44.6-44.6-24.6 0-44.6 19.9-44.6 44.6zm-68-.5c0 32.5 33.6 52.5 63.3 38.2v-19c-19.3 19.3-46.8 5.8-46.8-19.2 0-23.7 26.7-39.1 46.8-19v-19c-30.2-15-63.3 6.8-63.3 38zm-33.9 28.3c-7.6 0-13.8-3.7-17.5-10.8l-10.3 9.9c17.8 26.1 56.6 18.2 56.6-11.3 0-13.1-5.4-19-23.6-25.6-9.6-3.4-12.3-5.9-12.3-10.3 0-8.7 14.5-14.1 24.9-2.5l8.4-10.8c-19.1-17.1-49.7-8.9-49.7 14.3 0 11.3 5.2 17.2 20.2 22.7 25.7 9.1 14.7 24.4 3.3 24.4zm-57.4-28.3c0-24.1-18-41.1-44.1-41.1H32v82h23.4c30.9 0 44.1-22.4 44.1-40.9zm23.4-41.1h-16v82h16v-82zM544 288c-33.3 20.8-226.4 124.4-416 160h401c8.2 0 15-6.8 15-15V288zm0-35l-25.9-34.5c12.1-2.5 18.7-10.6 18.7-23.2 0-28.5-30.3-24.4-52.9-24.4v82h16v-32.8h2.2l22.2 32.8H544z"],
    +  "cc-jcb": [576, 512, [], "f24b", "M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z"],
    +  "cc-mastercard": [576, 512, [], "f1f1", "M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z"],
    +  "cc-paypal": [576, 512, [], "f1f4", "M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"],
    +  "cc-stripe": [576, 512, [], "f1f5", "M396.9 256.5c0 19.1-8.8 33.4-21.9 33.4-8.3 0-13.3-3-16.8-6.7l-.2-52.8c3.7-4.1 8.8-7 17-7 12.9-.1 21.9 14.5 21.9 33.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM122.2 281.1c0-42.3-54.3-34.7-54.3-50.7 0-5.5 4.6-7.7 12.1-7.7 10.8 0 24.5 3.3 35.3 9.1v-33.4c-11.8-4.7-23.5-6.5-35.3-6.5-28.8 0-48 15-48 40.2 0 39.3 54 32.9 54 49.9 0 6.6-5.7 8.7-13.6 8.7-11.8 0-26.9-4.9-38.9-11.3v33.9c13.2 5.7 26.6 8.1 38.8 8.1 29.6-.2 49.9-14.7 49.9-40.3zm68.9-86.9h-27v-30.8l-34.7 7.4-.2 113.9c0 21 15.8 36.5 36.9 36.5 11.6 0 20.2-2.1 24.9-4.7v-28.9c-4.5 1.8-27 8.3-27-12.6v-50.5h27v-30.3zm73.8 0c-4.7-1.7-21.3-4.8-29.6 10.5l-2.2-10.5h-30.7v124.5h35.5v-84.4c8.4-11 22.6-8.9 27.1-7.4v-32.7zm44.2 0h-35.7v124.5h35.7V194.2zm0-47.3l-35.7 7.6v28.9l35.7-7.6v-28.9zm122.7 108.8c0-41.3-23.5-63.8-48.4-63.8-13.9 0-22.9 6.6-27.8 11.1l-1.8-8.8h-31.3V360l35.5-7.5.1-40.2c5.1 3.7 12.7 9 25.1 9 25.4-.1 48.6-20.5 48.6-65.6zm112.2 1.2c0-36.4-17.6-65.1-51.3-65.1-33.8 0-54.3 28.7-54.3 64.9 0 42.8 24.2 64.5 58.8 64.5 17 0 29.7-3.9 39.4-9.2v-28.6c-9.7 4.9-20.8 7.9-34.9 7.9-13.8 0-26-4.9-27.6-21.5h69.5c.1-2 .4-9.4.4-12.9zm-51.6-36.1c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7z"],
    +  "cc-visa": [576, 512, [], "f1f0", "M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z"],
    +  "centercode": [512, 512, [], "f380", "M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"],
    +  "chrome": [496, 512, [], "f268", "M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z"],
    +  "cloudscale": [448, 512, [], "f383", "M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z"],
    +  "cloudsmith": [332, 512, [], "f384", "M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z"],
    +  "cloudversify": [616, 512, [], "f385", "M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z"],
    +  "codepen": [512, 512, [], "f1cb", "M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"],
    +  "codiepie": [472, 512, [], "f284", "M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z"],
    +  "connectdevelop": [576, 512, [], "f20e", "M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z"],
    +  "contao": [512, 512, [], "f26d", "M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z"],
    +  "cpanel": [640, 512, [], "f388", "M52.9 213.7h40l-6.2 23.6c-1.9 6.5-7.4 10.9-14.3 10.9H53.8c-24.9 0-24.7 37.4 0 37.4h11.3c4.2 0 7.6 3.9 6.4 8.3L64.4 320H52c-33.5 0-59-31.4-50.3-65.2 7.3-27 28.3-41.1 51.2-41.1M73.1 320L108 189.9c1.8-6.4 7.2-10.9 14.3-10.9h37c24.1 0 45.4 16.4 51 41.2 6.6 29.1-14.5 65.3-51.7 65.3h-32l6.4-23.8c1.8-6.2 7.3-10.8 14.3-10.8h10.3c12.4 0 20.8-11.7 18.3-22.6-2.1-9.2-9.9-14.8-18.3-14.8h-19.8L112 309.2c-1.9 6.2-7.4 10.7-14.2 10.7l-24.7.1m220.6-69.4c.3-1 1.9-5.3-2.1-5.3h-57.5c-9.7 0-16.6-8.9-14.2-18.5l3.5-13.4h77.9c18.8 0 33.3 17.6 28.5 36.8l-14 51.8c-2.8 10.6-12.2 17.8-23.4 17.8l-57.5-.2c-42.9 0-38.5-63.8.7-63.8H284l-3.5 13.2c-1.9 6.2-7.4 10.8-14.2 10.8h-21.6c-5.3 0-5.3 7.9 0 7.9h34.9c4.6 0 5.1-3.9 5.5-5.3l8.6-31.8m103.1-36.9c34.4 0 59.3 32.3 50.3 65.4l-8.8 33.1c-1.2 4.9-5.7 7.8-10.3 7.8h-19.1c-4.5 0-7.6-4-6.4-8.3l10.6-40c3.3-11.6-5.6-23.4-18.1-23.4h-19.8l-17.2 64c-1.2 4.8-5.6 7.8-10.4 7.8h-18.9c-4.2 0-7.6-3.9-6.4-8.3l26.2-98h48.3M498 251.6l-8 30c-.9 3.3 1.5 6.7 5.1 6.7h73.3l-5.7 21c-1.9 6.2-7.4 10.7-14.2 10.7h-66.7c-20 0-33.3-19-28.3-36.7l10.8-40c4.8-17.6 20.7-29.6 38.6-29.6h47.3c19 0 33.2 17.7 28.3 36.8l-3.2 12c-2.9 11-12.7 17.6-23.2 17.6h-53.4l3.5-13c1.6-6.2 7.2-10.8 14.2-10.8H538c2 0 3.3-1 3.9-3l.7-2.6c.7-2.7-1.3-5.1-3.9-5.1h-32.9c-4.1 0-6.9 2.1-7.8 6zm70.2 68.4l35.6-133.1c1.2-4.7 5.5-7.9 10.4-7.9h18.9c4.5 0 7.7 4 6.5 8.3l-26.5 98.2c-5.1 20.7-24.2 34.5-44.9 34.5"],
    +  "creative-commons": [496, 512, [], "f25e", "M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"],
    +  "creative-commons-by": [496, 512, [], "f4e7", "M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"],
    +  "creative-commons-nc": [496, 512, [], "f4e8", "M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"],
    +  "creative-commons-nc-eu": [496, 512, [], "f4e9", "M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z"],
    +  "creative-commons-nc-jp": [496, 512, [], "f4ea", "M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z"],
    +  "creative-commons-nd": [496, 512, [], "f4eb", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z"],
    +  "creative-commons-pd": [496, 512, [], "f4ec", "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"],
    +  "creative-commons-pd-alt": [496, 512, [], "f4ed", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM135.5 323.3V186h68.2c33.7 0 50.5 15.5 50.5 46.5 0 9-3 46.5-57.1 46.5h-27v44.3h-34.6zm34.1-111.6v41.6h29.2c27.9 0 30-41.6-.9-41.6h-28.3zm93.9 111.6V186h53.2c21.4 0 70 5.2 70 68.6 0 63.5-48.6 68.6-70 68.6h-53.2zm34.1-108.5v79.7h19.9c24 0 34.5-15.3 34.5-39.9 0-42-31.2-39.9-35-39.9l-19.4.1z"],
    +  "creative-commons-remix": [496, 512, [], "f4ee", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z"],
    +  "creative-commons-sa": [496, 512, [], "f4ef", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z"],
    +  "creative-commons-sampling": [496, 512, [], "f4f0", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"],
    +  "creative-commons-sampling-plus": [496, 512, [], "f4f1", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"],
    +  "creative-commons-share": [496, 512, [], "f4f2", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"],
    +  "creative-commons-zero": [496, 512, [], "f4f3", "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"],
    +  "critical-role": [445, 512, [], "f6c9", "M224.82 0c.26.15 216.57 124.51 217.12 124.72 3.04 1.18 3.7 3.46 3.7 6.56-.07 83.45-.06 166.9-.01 250.36 0 2.77-.98 4.43-3.38 5.78C420.88 399.41 234.39 505.71 223.32 512h-3C141 466.34 2.08 386.56 1.93 386.48c-1.29-.74-1.96-1.75-1.88-3.24.04-.87-.03-225.94-.05-253.1 0-2.44.89-3.79 2.93-4.93C26.19 112.11 212.2 5.98 223.07 0h1.75zM214.4 20.42l-.22-.16C149.43 57.12 84.69 94 19.95 130.87c.04.12.08.23.13.35 10.19 3.84 20.39 7.69 30.86 11.64-7.71 5.99-8.32 6.03-10.65 5.13-.1-.04-24.17-9.28-26.8-9.99v230.42c.88-1.41 64.07-110.91 64.13-111.01 1.62-2.82 3.03-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 62.99-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13 227.73 0 176.4 0 186.5.03 1.44 0 1.69-.23 1.7-1.64.01-2.96.01-5.92 0-8.88 0-1.34 2.36-.81-18.37-1.01-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1.04 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1-2.27-.66-2.55-4.08.3-4.73 3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9.04 1.1-79.42-.01-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-.97-2-4.84 1.77-4.85 33.67-.03 46.08-1.07 56.06 4.86 7.74 4.61 11.98 11.48 12.51 20.4.88 14.59-6.51 22.35-14.99 32.59-.68.82-.72 1.38-.04 2.22 2.6 3.25 5.05 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1.02-.42 1.01-1.15-.02-3.67.01-7.33-.02-11-.01-1.02.32-1.43 1.41-1.26 12.54 1.91 21.85-.07 23.58-.3 1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62 62.38-.02 125.15-.02 186.71-.02-27.12-47.03-54.11-93.85-81.18-140.81 2.26-.66-.4-.03 6.69-1.39 2.03-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 133.96 77.37 134.06V137.98c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1-.04 95.53-35.85 103.04-38.77C360.69 93.43 295.55 56 230.1 18.4c29.07 50.36 57.95 100.37 86.82 150.39-.09.11-.18.22-.28.33-9.57-.9-10.46-1.6-11.8-3.94-.96-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08 28.83-49.83 57.5-99.42 86.18-149zm51.93 129.92c1.85-.05 3.7-.52 5.54-.85 1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45-.87 1.3-1.88 1.22-2.6-.19-4.96-9.69 6.22-9.66-39.12-12.05-.7-.04-1 .23-.97.93 0 .13 3.72 121.98 3.73 122.11.02.89.52 1.2 1.21 1.51 2.92 1.31 5.96 2.42 8.7 4.05 7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4 1.49-.47 1.95-1.26 1.98-2.66.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23a1361.1 1361.1 0 0 1 3.31-18.03c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73.01 1.78-.08 1.82-1.85.68-27.49.58-22.59.97-29.55.07-1.29-.41-2.17-1.63-2.8-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15-1.66 1.06-2.31 2.33-2.22 4.34.03.59-.11-4.31.98 30.05.03.9.43 1.12 1.24 1.11.1 0 23.01-.09 34.47-.37zM67.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 3.99-.21 4.99-1.16 22.33-1.24 23.15-.1 1.04-.6 1.91-1.63 2.34-4.06 1.7-3.61-4.45-4.01-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17.01 53.63 54.08 50.88 27.24-2.01 19.05-20.19 24.84-20.47 1.98-.1 3.33 1.33 2.98 3.36-1.83 10.85-3.42 18.95-3.45 19.15-1.51 9.18-86.67 22.08-93.35-42.05-2.68-25.87 10.47-53.37 40.3-60.15zm79.99 87.67c-6.5-.03-12.99 0-19.49-.04-1.96-.01-2.78-1.61-2.66-1.79 2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-37.99.23-40.1.03-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-1.98 2.25-4.03 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13 1.22-.12 2.11-.75 2.23-2.12.3-3.42.26 4.73.45-40.58.02-5.65-.34-6.58-3.23-6.83-3.95-.35-4.03-2.26-.69-3.37.12-.04 18.98-.09 19.09-.09.32 0 4.49.53 1.05 3.38-.05.05-.16.03-.24.04-3.61.26-3.94.98-3.96 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49-.04 3.86 3.37-.02 3.4-10.37.08-20.74.03-31.11.07-10.67.04-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 3.99 17.67 4.75-.1 4.73 3.57.83 3.55zm274.97-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31-1.22-.04-2.43-.44-3.63-.73-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19-.38-.98-.94-1.44-2.04-1.44-3.12 0-7.27-.44-14.58.07-.58.04-1.4.55-1.62 1.06-1.58 3.62-3.07 7.29-4.51 10.96-1.27 3.23 7.86 1.32 12.19 2.16 2.97.57 4.53 3.72.66 3.73-8.79.03-17.58.06-26.37.05-2.92 0-3.09-3.15-.74-3.21 2.67-.07 4.74-1.13 5.92-3.47 1.5-2.97 2.8-6.04 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61 1-1.06 2.07-1.05 3.03.04 2.93 3.34 18.4 44.71 23.62 51.92 1.96 2.7 5.74 1.98 6.36 2.01 3.61.13 3.97-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26-.04-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32.01 5.32 2.75-1.21 3.45-1.81.19-2.58 1-2.66 2.83-.07 1.63-.19 38.89.29 41.21.35 1.73 1.73 2.38 3.23 2.43 13.25.43 14.92.44 16.04-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.68 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1.03 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64-.02-1.64 1.52v16.12c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76-.01.21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-1.95 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 5.99 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64-.04.36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3.04.22-3.45 1.1-.19 4.03.54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 8.98-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 21.99 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1.03.1.57 11.89-5.97 12.75-1.6.21-19.38 3.69-32.68-3.39-21.01-11.19-16.74-35.47-6.88-45.33 14.03-14.06 39.91-7.06 42.32-6.47zM288.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-4.97-.42-5 5.46-.01 1.98-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22.03 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-3.96 12.39-5.19 12.4-.1 0-38.08-.18-38.18-.19-1.93-.23-2.06-2.99-.42-3.38 1.99-.48 4.94.4 5.13-2.8.96-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-1.99-3.22.34-3.22 1.47-.02 17.99-.03 23.11-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6.01 3.58 2.61.1 2.53 3.41-.07 3.43-6.48.04-13.7-.02-21.61-.06-3.84-.02-3.38-3.35.04-3.37 4.49-.03 3.24 1.61 3.41-45.54.02-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29-.05 20.19-.41 21.17.21 1.13.72 1.87 1.65-.42 2.86-.99.52-3.86-.28-4.15 2.47-.02.21-.82 1.63-.07 43.8zm-36.91 274.27c1.14.66 2.12.66 3.26 0 16.99-9.79 181.97-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38-.02 2.58-.62 5.22-1.36 7.71-.55 1.83.38-.5-13.5 32.23-.73 1.72-1.04 2.21-1.97-.08-4.19-10.34-8.28-20.72-12.57-31.01-1.46-3.5-2.24-7-2-10.79.16-2.46.8-16.12 1.51-48.02.04-1.95.01-1.96-1.96-1.96h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3.03 11.54 1.17 21.04 3.74 25.64-7.32 6.01-14.46 2.66-34.41-12.48-38.84-2.01-.59-15.96-2.76-15.94 1.51.05 8.01.01 11.58.02 41.62zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2.02 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8 8.43 3.47 17.54.6 22.39-7.07 4.91-7.76 6.84-29.47-5.43-38.96-.12.05-.24.09-.36.12zM222.83 94.78c-9.83-.03-9.73 14.75-.07 14.87 9.59.11 10.1-14.84.07-14.87zm-80.15 103.87c.02 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-10.99 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.31 6.4c-2.03-5.28-4-10.39-6.1-15.84-2.16 5.48-4.16 10.57-6.23 15.84h12.33z"],
    +  "css3": [512, 512, [], "f13c", "M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"],
    +  "css3-alt": [384, 512, [], "f38b", "M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"],
    +  "cuttlefish": [440, 512, [], "f38c", "M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"],
    +  "d-and-d": [576, 512, [], "f38d", "M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"],
    +  "dashcube": [448, 512, [], "f210", "M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"],
    +  "delicious": [448, 512, [], "f1a5", "M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192v176z"],
    +  "deploydog": [512, 512, [], "f38e", "M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"],
    +  "deskpro": [480, 512, [], "f38f", "M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"],
    +  "dev": [448, 512, [], "f6cc", "M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"],
    +  "deviantart": [320, 512, [], "f1bd", "M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z"],
    +  "digg": [512, 512, [], "f1a6", "M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z"],
    +  "digital-ocean": [512, 512, [], "f391", "M256 504v-96.1c101.8 0 180.8-100.9 141.7-208-14.3-39.6-46.1-71.4-85.8-85.7-107.1-38.8-208.1 39.9-208.1 141.7H8C8 93.7 164.9-32.8 335 20.3c74.2 23.3 133.6 82.4 156.6 156.6C544.8 347.2 418.6 504 256 504zm.3-191.4h-95.6v95.6h95.6v-95.6zm-95.6 95.6H87v73.6h73.7v-73.6zM87 346.6H25.4v61.6H87v-61.6z"],
    +  "discord": [448, 512, [], "f392", "M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z"],
    +  "discourse": [448, 512, [], "f393", "M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"],
    +  "dochub": [416, 512, [], "f394", "M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z"],
    +  "docker": [640, 512, [], "f395", "M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"],
    +  "draft2digital": [480, 512, [], "f396", "M369.9 425.4V371l47.1 27.2-47.1 27.2zM82.4 380.6c25.5-27.3 97.7-104.7 150.9-170 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7H82.4zm51.8-219.2c0 12.4-10 22.4-22.4 22.4-12.4 0-22.4-10-22.4-22.4 0-12.4 10-22.4 22.4-22.4 12.4 0 22.4 10.1 22.4 22.4M336 315.9v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480l144-81.9-144-82.2z"],
    +  "dribbble": [512, 512, [], "f17d", "M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z"],
    +  "dribbble-square": [448, 512, [], "f397", "M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z"],
    +  "dropbox": [528, 512, [], "f16b", "M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"],
    +  "drupal": [448, 512, [], "f1a9", "M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z"],
    +  "dyalog": [416, 512, [], "f399", "M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"],
    +  "earlybirds": [480, 512, [], "f39a", "M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"],
    +  "ebay": [640, 512, [], "f4f4", "M405.2 263.8c-29.1.9-47.2 6.2-47.2 25.3 0 12.4 9.9 25.8 35 25.8 33.7 0 51.6-18.4 51.6-48.4v-3.3c-11.8 0-26.3.1-39.4.6m71.5 39.7c0 9.3.3 18.6 1 26.8h-29.8c-.8-6.9-1.1-13.6-1.1-20.2-16.1 19.8-35.3 25.5-61.9 25.5-39.5 0-60.6-20.9-60.6-45 0-35 28.8-47.3 78.6-48.4 13.7-.3 29-.4 41.7-.4v-3.4c0-23.4-15-33-41-33-19.3 0-33.6 8-35 21.8h-33.7c3.6-34.4 39.7-43.1 71.5-43.1 38.1 0 70.3 13.5 70.3 53.8v65.6zm-349-56.8c-2.3-54.7-87.5-56.6-94.4 0h94.4zm-95 21.4c3.5 58.3 79.2 57.4 91.2 21.6H157c-6.4 34.4-43 46.1-74.4 46.1-57.2 0-82.5-31.5-82.5-74 0-46.8 26.2-77.6 83-77.6 45.3 0 78.4 23.7 78.4 75.4v8.5H32.7zm211 45.7c29.8 0 50.2-21.5 50.2-53.8 0-32.4-20.4-53.8-50.2-53.8-29.6 0-50.2 21.4-50.2 53.8 0 32.3 20.6 53.8 50.2 53.8m-82.2-186h32.1v80.6c15.7-18.7 37.4-24.2 58.7-24.2 35.7 0 75.4 24.1 75.4 76.2 0 43.6-31.5 75.4-76 75.4-23.3 0-45.1-8.3-58.7-24.9 0 6.6-.4 13.2-1.1 19.5h-31.5c.5-10.2 1.1-22.8 1.1-33.1V127.8zM640 189.5l-99.2 194.8h-35.9l28.5-54.1-74.6-140.7h37.5l54.9 109.9L606 189.5h34z"],
    +  "edge": [512, 512, [], "f282", "M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z"],
    +  "elementor": [448, 512, [], "f430", "M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z"],
    +  "ello": [496, 512, [], "f5f1", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"],
    +  "ember": [640, 512, [], "f423", "M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1c-1.9-43.8-44.2-27.6-49-24-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-18.3-11-32.8 12.1-32.8 12.1s54.5-60.7 42.5-112c-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5c-17.2-.8-28.5 18.8-28.5 18.8s-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7c11.6 2.1 16.4 1 36.5-47.9 11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2c6.7-23.6 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7c8.6 15.6 30.9 5.3 30.9 5.3s15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6c12.4 5.1 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"],
    +  "empire": [496, 512, [], "f1d1", "M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z"],
    +  "envira": [448, 512, [], "f299", "M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"],
    +  "erlang": [640, 512, [], "f39d", "M21.7 246.4c-.1 86.8 29 159.5 78.7 212.1H0v-405h87.2c-41.5 50.2-65.6 116.2-65.5 192.9zM640 53.6h-83.6c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405zm-80.8 405s0-.1 0 0h-.2.2zm-3.1-405h.3l-.1-.1-.2.1zm-230.7 9.6c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2z"],
    +  "ethereum": [320, 512, [], "f42e", "M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z"],
    +  "etsy": [384, 512, [], "f2d7", "M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z"],
    +  "expeditedssl": [496, 512, [], "f23e", "M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z"],
    +  "facebook": [448, 512, [], "f09a", "M448 56.7v398.5c0 13.7-11.1 24.7-24.7 24.7H309.1V306.5h58.2l8.7-67.6h-67v-43.2c0-19.6 5.4-32.9 33.5-32.9h35.8v-60.5c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9h-58.4v67.6h58.4V480H24.7C11.1 480 0 468.9 0 455.3V56.7C0 43.1 11.1 32 24.7 32h398.5c13.7 0 24.8 11.1 24.8 24.7z"],
    +  "facebook-f": [264, 512, [], "f39e", "M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"],
    +  "facebook-messenger": [448, 512, [], "f39f", "M224 32C15.9 32-77.5 278 84.6 400.6V480l75.7-42c142.2 39.8 285.4-59.9 285.4-198.7C445.8 124.8 346.5 32 224 32zm23.4 278.1L190 250.5 79.6 311.6l121.1-128.5 57.4 59.6 110.4-61.1-121.1 128.5z"],
    +  "facebook-square": [448, 512, [], "f082", "M448 80v352c0 26.5-21.5 48-48 48h-85.3V302.8h60.6l8.7-67.6h-69.3V192c0-19.6 5.4-32.9 33.5-32.9H384V98.7c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9H184v67.6h60.9V480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"],
    +  "fantasy-flight-games": [512, 512, [], "f6dc", "M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z"],
    +  "firefox": [480, 512, [], "f269", "M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v.1c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5v-.2c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1-.1.2-.2.3-.3.4-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6z"],
    +  "first-order": [448, 512, [], "f2b0", "M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"],
    +  "first-order-alt": [496, 512, [], "f50a", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"],
    +  "firstdraft": [384, 512, [], "f3a1", "M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"],
    +  "flickr": [448, 512, [], "f16e", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"],
    +  "flipboard": [448, 512, [], "f44d", "M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z"],
    +  "fly": [384, 512, [], "f417", "M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"],
    +  "font-awesome": [448, 512, [], "f2b4", "M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z"],
    +  "font-awesome-alt": [448, 512, [], "f35c", "M397.8 67.8c7.8 0 14.3 6.6 14.3 14.3v347.6c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6m0-35.9H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-58.5 139.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1z"],
    +  "font-awesome-flag": [448, 512, [], "f425", "M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z"],
    +  "font-awesome-logo-full": [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],
    +  "fonticons": [448, 512, [], "f280", "M0 32v448h448V32H0zm167.4 196h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4zM364 414.7H261.3v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm-21.9-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6-21.9 24.2z"],
    +  "fonticons-fi": [384, 512, [], "f3a2", "M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z"],
    +  "fort-awesome": [512, 512, [], "f286", "M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z"],
    +  "fort-awesome-alt": [512, 512, [], "f3a3", "M211.7 241.1v51.7c0 2.1-1.6 3.7-3.7 3.7h-22.2c-2.1 0-3.7-1.6-3.7-3.7v-51.7c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7zm114.5-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm-29.1 263.2c-.9.1-1.7.3-2.6.4-1 .2-2.1.3-3.1.5-.9.1-1.8.3-2.8.4-1 .1-2 .3-3 .4-1 .1-2 .2-2.9.3-1 .1-1.9.2-2.9.3-1 .1-2.1.2-3.1.3-.9.1-1.8.2-2.7.2-1.1.1-2.3.1-3.4.2-.8 0-1.7.1-2.5.1-1.3.1-2.6.1-3.9.1-.7 0-1.4.1-2.1.1-2 0-4 .1-6 .1s-4 0-6-.1c-.7 0-1.4 0-2.1-.1-1.3 0-2.6-.1-3.9-.1-.8 0-1.7-.1-2.5-.1-1.1-.1-2.3-.1-3.4-.2-.9-.1-1.8-.1-2.7-.2-1-.1-2.1-.2-3.1-.3-1-.1-1.9-.2-2.9-.3-1-.1-2-.2-2.9-.3-1-.1-2-.2-3-.4-.9-.1-1.8-.3-2.8-.4-1-.1-2.1-.3-3.1-.5-.9-.1-1.7-.3-2.6-.4-65.6-10.9-122.5-47.7-160-99.4-.2-.2-.3-.5-.5-.7-.8-1.1-1.6-2.2-2.3-3.3-.3-.4-.6-.8-.8-1.2-.7-1.1-1.4-2.1-2.1-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.4-2.1-2-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.3-2.2-2-3.3-.2-.4-.5-.8-.7-1.2-2.4-4-4.6-8.1-6.8-12.2-.1-.2-.2-.3-.3-.5-.6-1.1-1.1-2.2-1.7-3.3-.3-.6-.6-1.1-.8-1.7-.5-1-1-2.1-1.5-3.1-.3-.7-.6-1.3-.9-2-.5-1-.9-2-1.4-3l-.9-2.1c-.4-1-.9-2-1.3-3-.3-.7-.6-1.5-.9-2.2l-1.2-3c-.3-.8-.6-1.5-.9-2.3-.4-1-.8-2-1.1-3-.3-.9-.6-1.8-1-2.8-.6-1.6-1.1-3.3-1.7-4.9-.3-.9-.6-1.8-.9-2.8-.3-.9-.5-1.8-.8-2.7-.3-.9-.6-1.9-.8-2.8-.3-.9-.5-1.8-.8-2.7-.3-1-.5-1.9-.8-2.9-.2-.9-.5-1.8-.7-2.7-.3-1-.5-2-.7-3-.2-.9-.4-1.7-.6-2.6-.2-1.1-.5-2.2-.7-3.2-.2-.8-.3-1.6-.5-2.4-.3-1.3-.5-2.7-.8-4-.1-.6-.2-1.1-.3-1.7l-.9-5.7c-.1-.6-.2-1.3-.3-1.9-.2-1.3-.4-2.6-.5-3.9-.1-.8-.2-1.5-.3-2.3-.1-1.2-.3-2.4-.4-3.6-.1-.8-.2-1.6-.2-2.4-.1-1.2-.2-2.4-.3-3.5-.1-.8-.1-1.6-.2-2.4-.1-1.2-.2-2.4-.2-3.7 0-.8-.1-1.5-.1-2.3-.1-1.3-.1-2.7-.2-4 0-.7 0-1.3-.1-2 0-2-.1-4-.1-6 0-53.5 16.9-103 45.8-143.6 2.3-3.2 4.7-6.4 7.1-9.5 4.9-6.2 10.1-12.3 15.6-18 2.7-2.9 5.5-5.7 8.4-8.4 2.9-2.7 5.8-5.4 8.8-8 4.5-3.9 9.1-7.6 13.9-11.2 1.6-1.2 3.2-2.4 4.8-3.5C140 34.2 171.7 20.1 206 13c16.1-3.3 32.9-5 50-5s33.8 1.7 50 5c34.3 7 66 21.1 93.6 40.7 1.6 1.2 3.2 2.3 4.8 3.5 4.8 3.6 9.4 7.3 13.9 11.2 12 10.4 23 21.9 32.8 34.4 2.5 3.1 4.8 6.3 7.1 9.5C487.1 153 504 202.5 504 256c0 2 0 4-.1 6 0 .7 0 1.3-.1 2 0 1.3-.1 2.7-.2 4 0 .8-.1 1.5-.1 2.3-.1 1.2-.1 2.4-.2.7-.1.8-.1 1.6-.2 2.4-.1 1.2-.2 2.4-.3 3.5-.1.8-.2 1.6-.2 2.4-.1 1.2-.3 2.4-.4 3.6-.1.8-.2 1.5-.3 2.3-.2 1.3-.4 2.6-.5 3.9-.1.6-.2 1.3-.3 1.9l-.9 5.7c-.1.6-.2 1.1-.3 1.7-.2 1.3-.5 2.7-.8 4-.2.8-.3 1.6-.5 2.4-.2 1.1-.5 2.2-.7 3.2-.2.9-.4 1.7-.6 2.6-.2 1-.5 2-.7 3-.2.9-.5 1.8-.7 2.7-.3 1-.5 1.9-.8 2.9-.2.9-.5 1.8-.8 2.7-.3.9-.6 1.9-.8 2.8-.3.9-.5 1.8-.8 2.7-.3.9-.6 1.8-.9 2.8-.5 1.6-1.1 3.3-1.7 4.9-.3.9-.6 1.8-1 2.8-.4 1-.7 2-1.1 3-.3.8-.6 1.5-.9 2.3l-1.2 3c-.3.7-.6 1.5-.9 2.2-.4 1-.8 2-1.3 3l-.9 2.1c-.4 1-.9 2-1.4 3-.3.7-.6 1.3-.9 2-.5 1-1 2.1-1.5 3.1-.3.6-.6 1.1-.8 1.7-.6 1.1-1.1 2.2-1.7 3.3-.1.2-.2.3-.3.5-2.2 4.1-4.4 8.2-6.8 12.2-.2.4-.5.8-.7 1.2-.7 1.1-1.3 2.2-2 3.3-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2 3.2-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2.1 3.2-.3.4-.6.8-.8 1.2-.8 1.1-1.5 2.2-2.3 3.3-.2.2-.3.5-.5.7-37.6 54.7-94.5 91.4-160.1 102.4zm117.3-86.2c13-13 24.2-27.4 33.6-42.9v-71.3c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7V326h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-4.8-6.5-3.7-9.5-3.7v-30.7c6.7-1.6 13.8-2.8 20.8-2.8 8.8 0 16.8 3.5 25.4 3.5 3.7 0 22.4-.9 22.4-6.5V93.4c0-2.1-1.6-3.7-3.7-3.7-4.2 0-12.2 3.5-19.4 3.5-7.9 0-16.9-3.5-26.3-3.5-6.5 0-12.9.9-19.2 2.3v-3.9c4.4-2.1 7.4-6.7 7.4-11.5 0-16.8-25.4-16.8-25.4 0 0 4.8 3 9.5 7.4 11.5v90.2c-3 0-9.5-1.1-9.5 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v144H93.5v-25.8c0-2.1-1.6-3.7-3.7-3.7H67.7c-2.1 0-3.7 1.6-3.7 3.7v71.3c9.4 15.5 20.6 29.9 33.6 42.9 20.6 20.6 44.5 36.7 71.2 48 13.9 5.9 28.2 10.3 42.9 13.2v-75.8c0-58.6 88.6-58.6 88.6 0v75.8c14.7-2.9 29-7.4 42.9-13.2 26.7-11.3 50.6-27.4 71.2-48"],
    +  "forumbee": [448, 512, [], "f211", "M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"],
    +  "foursquare": [368, 512, [], "f180", "M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"],
    +  "free-code-camp": [576, 512, [], "f2c5", "M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z"],
    +  "freebsd": [448, 512, [], "f3a4", "M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"],
    +  "fulcrum": [269, 512, [], "f50b", "M70.75 164.14l-35.38 43.55L0 164.14l35.38-43.55 35.37 43.55zM119.23 0L98.69 198.18 47.72 256l50.98 57.82L119.23 512V300.89L78.15 256l41.08-44.89V0zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55-35.38 43.55zm-48.48 46.97L191.5 256l-41.08 44.89V512l20.54-198.18L221.94 256l-50.98-57.82L150.42 0v211.11z"],
    +  "galactic-republic": [496, 512, [], "f50c", "M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"],
    +  "galactic-senate": [512, 512, [], "f50d", "M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z"],
    +  "get-pocket": [448, 512, [], "f265", "M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"],
    +  "gg": [512, 512, [], "f260", "M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z"],
    +  "gg-circle": [512, 512, [], "f261", "M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z"],
    +  "git": [448, 512, [], "f1d3", "M18.8 221.7c0 25.3 16.2 60 41.5 68.5v1c-18.8 8.3-24 50.6 1 65.8v1C34 367 16 384.3 16 414.2c0 51.5 48.8 65.8 91.5 65.8 52 0 90.7-18.7 90.7-76 0-70.5-101-44.5-101-82.8 0-13.5 7.2-18.7 19.7-21.3 41.5-7.7 67.5-40 67.5-82.2 0-7.3-1.5-14.2-4-21 6.7-1.5 13.2-3.3 19.7-5.5v-50.5c-17.2 6.8-35.7 11.8-54.5 11.8-53.8-31-126.8 1.3-126.8 69.2zm87.7 163.8c17 0 41.2 3 41.2 25 0 21.8-19.5 26.3-37.7 26.3-17.3 0-43.3-2.7-43.3-25.2.1-22.3 22.1-26.1 39.8-26.1zM103.3 256c-22 0-31.3-13-31.3-33.8 0-49.3 61-48.8 61-.5 0 20.3-8 34.3-29.7 34.3zM432 305.5v49c-13.3 7.3-30.5 9.8-45.5 9.8-53.5 0-59.8-42.2-59.8-85.7v-87.7h.5v-1c-7 0-7.3-1.6-24 1v-47.5h24c0-22.3.3-31-1.5-41.2h56.7c-2 13.8-1.5 27.5-1.5 41.2h51v47.5s-19.3-1-51-1V281c0 14.8 3.3 32.8 21.8 32.8 9.8 0 21.3-2.8 29.3-8.3zM286 68.7c0 18.7-14.5 36.2-33.8 36.2-19.8 0-34.5-17.2-34.5-36.2 0-19.3 14.5-36.7 34.5-36.7C272 32 286 50 286 68.7zm-6.2 74.5c-1.8 14.6-1.6 199.8 0 217.8h-55.5c1.6-18.1 1.8-203 0-217.8h55.5z"],
    +  "git-square": [448, 512, [], "f1d2", "M140.1 348.5c12.1 0 29.5 2.1 29.5 17.9 0 15.5-13.9 18.8-27 18.8-12.3 0-30.9-2-30.9-18s15.7-18.7 28.4-18.7zm-24.7-116.6c0 14.8 6.6 24.1 22.3 24.1 15.5 0 21.2-10 21.2-24.5.1-34.4-43.5-34.8-43.5.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-241 93.7c-12.3 4.8-25.5 8.4-38.9 8.4-38.5-22.1-90.7.9-90.7 49.5 0 18 11.6 42.9 29.6 48.9v.7c-13.4 5.9-17.1 36.1.7 47v.7c-19.5 6.4-32.3 18.8-32.3 40.2 0 36.8 34.8 47 65.4 47 37.1 0 64.8-13.4 64.8-54.3 0-50.4-72.1-31.8-72.1-59.1 0-9.6 5.2-13.4 14.1-15.2 29.6-5.5 48.2-28.6 48.2-58.7 0-5.2-1.1-10.2-2.9-15 4.8-1.1 9.5-2.3 14.1-3.9v-36.2zm56.8 1.8h-39.6c1.3 10.6 1.1 142.6 0 155.5h39.6c-1.1-12.8-1.2-145.1 0-155.5zm4.5-53.3c0-13.4-10-26.2-24.1-26.2-14.3 0-24.6 12.5-24.6 26.2 0 13.6 10.5 25.9 24.6 25.9 13.7 0 24.1-12.5 24.1-25.9zm104.3 53.3h-36.4c0-9.8-.4-19.6 1.1-29.5h-40.5c1.3 7.3 1.1 13.6 1.1 29.5h-17.1v33.9c11.9-1.9 12.1-.7 17.1-.7v.7h-.4v62.7c0 31.1 4.5 61.2 42.7 61.2 10.7 0 23-1.8 32.5-7v-35c-5.7 3.9-13.9 5.9-20.9 5.9-13.2 0-15.5-12.9-15.5-23.4v-65.2c22.7 0 36.4.7 36.4.7v-33.8z"],
    +  "github": [496, 512, [], "f09b", "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"],
    +  "github-alt": [480, 512, [], "f113", "M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"],
    +  "github-square": [448, 512, [], "f092", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z"],
    +  "gitkraken": [592, 512, [], "f3a6", "M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z"],
    +  "gitlab": [512, 512, [], "f296", "M29.782 199.732L256 493.714 8.074 309.699c-6.856-5.142-9.712-13.996-7.141-21.993l28.849-87.974zm75.405-174.806c-3.142-8.854-15.709-8.854-18.851 0L29.782 199.732h131.961L105.187 24.926zm56.556 174.806L256 493.714l94.257-293.982H161.743zm349.324 87.974l-28.849-87.974L256 493.714l247.926-184.015c6.855-5.142 9.711-13.996 7.141-21.993zm-85.404-262.78c-3.142-8.854-15.709-8.854-18.851 0l-56.555 174.806h131.961L425.663 24.926z"],
    +  "gitter": [384, 512, [], "f426", "M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"],
    +  "glide": [448, 512, [], "f2a5", "M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z"],
    +  "glide-g": [448, 512, [], "f2a6", "M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"],
    +  "gofore": [400, 512, [], "f3a7", "M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z"],
    +  "goodreads": [448, 512, [], "f3a8", "M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"],
    +  "goodreads-g": [384, 512, [], "f3a9", "M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"],
    +  "google": [488, 512, [], "f1a0", "M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"],
    +  "google-drive": [512, 512, [], "f3aa", "M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"],
    +  "google-play": [512, 512, [], "f3ab", "M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"],
    +  "google-plus": [496, 512, [], "f2b3", "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z"],
    +  "google-plus-g": [640, 512, [], "f0d5", "M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"],
    +  "google-plus-square": [448, 512, [], "f0d4", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z"],
    +  "google-wallet": [448, 512, [], "f1ee", "M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"],
    +  "gratipay": [496, 512, [], "f184", "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z"],
    +  "grav": [512, 512, [], "f2d6", "M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z"],
    +  "gripfire": [384, 512, [], "f3ac", "M171.8 503.8c0-5.3 4.8-12.2 4.8-22.3 0-15.2-13-39.9-78.1-86.6C64.2 365.8 32 336.4 32 286.6 32 171.9 179.1 110.1 179.1 18c0-3.3-.2-6.7-.6-10 5.1 2.4 39.1 43.3 39.1 90.4 0 80.5-105.1 129.2-105.1 203 0 26.9 16.6 47.2 32.6 69.5 22.5 30.2 44.2 56.9 44.2 86.5-.1 14.5-4.4 29.7-17.5 46.4zm146-241.4c1.5 8.4 2.2 16.6 2.2 24.6 0 51.8-29.4 97.5-67.3 136.8-1 1-2.2 2.4-3.2 2.4-3.6 0-35.5-41.6-35.5-53.2 0 0 41.8-55.7 41.8-96.9 0-10.8-2.7-21.7-9.1-33.4-1.5 32.3-55.7 87.7-58.1 87.7-2.7 0-17.9-22-17.9-42.1 0-5.3 1-10.7 3.2-15.8 2.4-5.5 56.6-72 56.6-116.7 0-6.2-1-12-3.4-17.1l-4-7.2c16.7 6.5 82.6 64.1 94.7 130.9"],
    +  "grunt": [384, 512, [], "f3ad", "M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm79.2 233.7c2.2 2.3 1.5 5.3.9 6.8-1.1 2.7-5.5 11.6-13 19.8-2.7 2.9-6.6 4.6-11 4.6-4.3 0-8.7-1.6-11.8-4.3-2.3-2.1-10.2-9.5-13.7-18.6-1.3-3.4-1-6.1.9-8.1 1.3-1.3 4-2.9 9.5-2.9H160c4.1 0 7 .9 8.8 2.7zm62.9-187.9c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm17.8-8.8c7.5-11.4 25.4-26 44.9-37 3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6-.1.1 0 0 0 0zM263 421.4c1.9 1.9 2.2 4.6.9 7.9-3.5 8.9-11.4 16.1-13.7 18.1-3.1 2.6-7.4 4.2-11.8 4.2s-8.3-1.6-11-4.5c-7.5-8-12-16.7-13-19.3-.6-1.5-1.3-4.4.9-6.7 1.7-1.8 4.7-2.7 8.9-2.7h29.4c5.4.1 8.1 1.7 9.4 3zm-98.3-251.5c9.9 6 18.8 8.1 27.3 8.3 8.5-.2 17.4-2.3 27.3-8.3 0 0-14.5 17.7-27.2 17.8h-.2c-12.7-.2-27.2-17.8-27.2-17.8zm184.5 147.4c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59z"],
    +  "gulp": [256, 512, [], "f3ae", "M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z"],
    +  "hacker-news": [448, 512, [], "f1d4", "M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"],
    +  "hacker-news-square": [448, 512, [], "f3af", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"],
    +  "hackerrank": [464, 512, [], "f5f7", "M453.5 128C439.01 103.05 261.13 0 232.16 0 203.2 0 25.25 102.79 10.84 128c-14.41 25.21-14.49 230.8 0 256.01C25.33 409.21 203.22 512 232.16 512s206.85-102.92 221.33-128c14.48-25.08 14.49-231.05.01-256zM292.13 414.22c-3.96 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32.04-2.02-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 5.96-5.74 5.94-10.13-.03-20.27-.11-30.41-.08-4.1.01-5.87-1.53-5.74-6.11.92-33.44 2.96-84.02-.15-212.67v-3.17c-9.67-.35-16.38-.96-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69 3.96 0 41.17 35.78 38.27 38.69-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2.03 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46.02 4.57 1.72 4.5 5.38-3.65 191.29-.66 177.94-.66 210.34 8.87.35 16.82.96 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z"],
    +  "hips": [640, 512, [], "f452", "M0 80.2c0-1.8.9-2.7 2.7-2.7h40.9c1.9 0 2.8.9 2.8 2.7v81.2c15.2-7.7 31.7-11.5 49.8-11.4 24 .1 44.2 6.2 60.3 18 18.7 13.5 28 31.9 28 55.3v136.1c0 1.9-.9 2.8-2.7 2.8h-27.3c-9.1 0-16.4-7.3-16.4-16.3V223.3c0-.9 2.7-27-45.8-27-48.6 0-45.8 26.2-45.8 27v136.1c0 1.9-.9 2.8-2.8 2.8h-41c-1.8 0-2.7-.9-2.7-2.8V80.2zm497.7 221.5c13.7 10.2 34.1 19.1 58.4 19.1 23.3 0 32.8-4.5 36.5-13.6 3-7.9-.6-16.1-12.2-21.2l-53.6-23.5c-21.4-9.4-33.8-24-37.2-43.6-5.7-33.7 22.2-53.3 22.7-53.7 13.2-9.6 32-15.4 58.5-15.4 19 0 37.4 3.3 55.1 9.9 1.3.5 1.9 1.3 1.9 2.6V207c0 2.1-2.3 3.4-4 2.4-39.7-20.7-76.6-12.3-84-6.8-6.6 4.9-6 12.5 2.6 16.1L600 244c16.5 7.1 28.1 18.4 34.9 34.1 5.5 12.6 6.6 25.6 3.1 39.1-9.6 36.9-44.9 45.5-45.6 45.8-10.5 3.1-23.6 4.3-36.3 4.3-16.6 0-32.6-2.7-48.2-8.2-9.7-3.4-14.6-10.3-14.6-20.7V304c0-2.1 2.3-3.7 4.4-2.3zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zm-124.6 38.7c0 1.9-.9 2.8-2.8 2.8h-40.9c-1.6 0-2.7-1.4-2.7-2.8V157.6c0-1.4 1.1-2.8 2.7-2.8h40.9c1.9 0 2.8.9 2.8 2.8v201.8M228.3 72.5c15.9 0 28.9 12.7 28.9 28.9 0 15.8-12.7 28.9-28.9 28.9s-28.9-13.3-28.9-28.9c.1-16 13-28.9 28.9-28.9"],
    +  "hire-a-helper": [512, 512, [], "f3b0", "M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"],
    +  "hooli": [640, 512, [], "f427", "M508.4 352h57.9V156.7L508.4 184v168zm73.7-110.5V352H640V241.5h-57.9zm-250.7-8.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.9 110.9v-31c-48.8-54.6-39-76.1-35.3-79.2 13.5-11.4 37.5-8 64.4 2.1L65.2 184v63.3c13.1 14.7 30.5 31.5 53.5 50.4l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zm-39.7 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm185.7-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm173.5-73c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8v16zm-21.4 0v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.5-21.7-38.5-31.5V352h57.9zm59.7.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3v5.3l-19.4.8z"],
    +  "hornbill": [509, 512, [], "f592", "M75.37 370.3c2.14 15.83-5.77 31.98-20.94 39.29-18.85 9.1-41.55 1.17-50.68-17.68-9.08-18.83-1.13-41.58 17.7-50.65 7.05-3.4 14.63-4.42 21.85-3.38-78.28-111.35 52-190.53 52-190.53-5.86 43.04-8.24 91.16-8.24 91.16-67.31 41.45.92 64.06 39.81 72.87 19.77 53.62 71.18 91.94 131.66 91.94 1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zM183.38 42.6c.89-7-.1-14.33-3.39-21.15-9.1-18.84-31.82-26.78-50.66-17.69-18.86 9.1-26.8 31.83-17.69 50.68 6.98 14.47 22.02 22.42 37.18 21.23-22.55 29.91-53.83 89.57-52.42 190.03l21.84-.15c-.02-.9-.14-1.77-.14-2.68 0-58.95 36.37-109.33 87.85-130.16 8.01-37.75 30.74-114.3 73.84-44.29 0 0 48.14 2.38 91.18 8.24 0-.01-77.84-128.03-187.59-54.06zm304.18 134.17c18.84-9.09 26.81-31.81 17.7-50.65-9.1-18.85-31.83-26.77-50.67-17.69-15.27 7.37-23.19 23.69-20.87 39.64-31.71-21.94-89.84-49.05-183.45-47.74l.14 22.5c2.7-.15 5.39-.41 8.14-.41 59.3 0 109.9 36.8 130.49 88.76 39.1 9.02 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 48.96-194.61 6.43.5 13.07-.49 19.31-3.5zM373.05 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15 0 60.27-38.05 111.55-91.39 131.45-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 50.97.31 4.72 1.45 9.45 3.64 13.97 9.06 18.89 31.8 26.78 50.64 17.71 18.86-9.1 26.79-31.83 17.7-50.65-6.56-13.62-20.26-21.43-34.45-21.35z"],
    +  "hotjar": [448, 512, [], "f3b1", "M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z"],
    +  "houzz": [414, 512, [], "f27c", "M258.9 330.7H154.3V480H0V32h109.5v104.5l305.1 85.6V480H258.9V330.7z"],
    +  "html5": [384, 512, [], "f13b", "M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"],
    +  "hubspot": [512, 512, [], "f3b2", "M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"],
    +  "imdb": [448, 512, [], "f2d8", "M350.5 288.7c0 5.4 1.6 14.4-6.2 14.4-1.6 0-3-.8-3.8-2.4-2.2-5.1-1.1-44.1-1.1-44.7 0-3.8-1.1-12.7 4.9-12.7 7.3 0 6.2 7.3 6.2 12.7v32.7zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4v-49.3zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM21.3 228.8c-.1.1-.2.3-.3.4h.3v-.4zM97 192H64v127.8h33V192zm113.3 0h-43.1l-7.6 59.9c-2.7-20-5.4-40.1-8.7-59.9h-42.8v127.8h29v-84.5l12.2 84.5h20.6l11.6-86.4v86.4h28.7V192zm86.3 45.3c0-8.1.3-16.8-1.4-24.4-4.3-22.5-31.4-20.9-49-20.9h-24.6v127.8c86.1.1 75 6 75-82.5zm85.9 17.3c0-17.3-.8-30.1-22.2-30.1-8.9 0-14.9 2.7-20.9 9.2V192h-31.7v127.8h29.8l1.9-8.1c5.7 6.8 11.9 9.8 20.9 9.8 19.8 0 22.2-15.2 22.2-30.9v-36z"],
    +  "instagram": [448, 512, [], "f16d", "M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"],
    +  "internet-explorer": [512, 512, [], "f26b", "M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"],
    +  "ioxhost": [640, 512, [], "f208", "M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"],
    +  "itunes": [448, 512, [], "f3b4", "M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z"],
    +  "itunes-note": [384, 512, [], "f3b5", "M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z"],
    +  "java": [377, 512, [], "f4e4", "M121.6 396s-19.6 11.4 13.9 15.2c40.6 4.6 61.3 4 106-4.5 0 0 11.8 7.4 28.2 13.8C169.5 463.4 42.9 418 121.6 396m-12.2-56.1s-21.9 16.2 11.6 19.7c43.3 4.5 77.6 4.8 136.8-6.6 0 0 8.2 8.3 21.1 12.8-121.3 35.5-256.3 2.9-169.5-25.9m103.2-95.1c24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3.1 0-175.2 43.8-91.5 140.2m132.6 192.6s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8M131 281.8s-93.1 22.1-33 30.1c25.4 3.4 76 2.6 123.1-1.3 38.5-3.2 77.2-10.2 77.2-10.2s-13.6 5.8-23.4 12.5c-94.5 24.9-277 13.3-224.5-12.1 44.5-21.4 80.6-19 80.6-19m167 93.3c96.1-49.9 51.6-97.9 20.6-91.4-7.6 1.6-11 3-11 3s2.8-4.4 8.2-6.3c61.3-21.6 108.5 63.6-19.8 97.3 0-.1 1.5-1.4 2-2.6M240 0s53.2 53.2-50.5 135c-83.1 65.6-19 103.1 0 145.8-48.5-43.8-84.1-82.3-60.2-118.2C164.4 110.1 261.5 84.5 240 0m-99.5 510.4c92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6"],
    +  "jedi-order": [448, 512, [], "f50e", "M231.89 335.72l31.44-45.89-20.18 55.5 62.56 9.09-62.56 9.08 24.22 47.43s-30.22-31.77-34.49-36.25c1.76 68.78 2.19 85.7 2.19 85.7s154.4-71.65 68.62-230.09c0 0 106.97-118.07 10.09-190.73 0 0 165.5 99.91 60.55 271.46 0 0 86.78-84.77 41.37-170.54 0 0 78.71 111.01-17.16 233.11 0 0 26.24-16.15 49.45-77.71 0 0-16.93 183.26-221.96 185.66v.02h-4.08v-.02C16.93 479.14 0 295.88 0 295.88c23.21 61.56 49.44 77.71 49.44 77.71-95.87-122.11-17.15-233.11-17.15-233.11-45.41 85.78 41.38 170.54 41.38 170.54-104.95-171.56 60.54-271.46 60.54-271.46-96.88 72.66 10.09 190.73 10.09 190.73-85.78 158.44 68.62 230.09 68.62 230.09s.43-16.93 2.19-85.7l-34.48 36.25 24.22-47.43-62.56-9.08 62.56-9.09-20.18-55.5 31.44 45.89c2.25-87.85 7.82-305.82 7.85-306.85l.01-2.43.02 1 .03-1 .01 2.43c.05 1.72 5.61 219.2 7.86 306.85z"],
    +  "jenkins": [512, 512, [], "f3b6", "M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"],
    +  "joget": [496, 512, [], "f3b7", "M227.5 468.7c-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1M66.1 143.9C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9-55.5-1.4-81.7-20.8-58.5-48.2 23.2-27.4 51.1-40.7 68.9-51.2 17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1m-29.2-18c-71.9 116.6-35.6 269.3 81 341.2 116.6 71.9 269.3 35.6 341.2-80.9 71.9-116.6 35.6-269.4-81-341.2-40.5-25.1-85.5-37-129.9-37C165 8 83.8 49.9 36.9 125.9m244.4 110.4c-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5c10.5-6.4 31.9-14 13.4-24.6-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6"],
    +  "joomla": [448, 512, [], "f1aa", "M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"],
    +  "js": [448, 512, [], "f3b8", "M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"],
    +  "js-square": [448, 512, [], "f3b9", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"],
    +  "jsfiddle": [576, 512, [], "f1cc", "M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"],
    +  "kaggle": [291, 512, [], "f5fa", "M291.72 508.98c-.51 2.01-2.51 3.01-6.01 3.01h-66.92c-4.02 0-7.51-1.75-10.52-5.27L97.74 366.14l-30.82 29.32v109.02c0 5.02-2.51 7.52-7.52 7.52H7.52C2.5 512 0 509.5 0 504.48V7.51C0 2.51 2.5 0 7.52 0H59.4c5.01 0 7.52 2.51 7.52 7.51v306l132.32-133.82c3.51-3.5 7.02-5.26 10.52-5.26h69.18c6.96 0 7.9 7.87 5.26 10.52L144.35 320.26l145.86 181.2"],
    +  "keybase": [412, 512, [], "f4f5", "M177.2 430.9c0 9.8-8 17.8-17.8 17.8s-17.8-8-17.8-17.8 8-17.8 17.8-17.8c9.8-.1 17.8 7.9 17.8 17.8zM270 413c-9.8 0-17.8 8-17.8 17.8s8 17.8 17.8 17.8 17.8-8 17.8-17.8-8-17.8-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3c4.8 26.7 15.7 51.3 31.2 72.3H46.1c-9.7-15.8-17.2-33-22.2-51.3L.1 454c0-74.9-5.5-147.6 61.5-215.2 20.2-20.4 43.7-36.2 69.1-46.7-6.8-13.5-9.5-29.2-7.8-46l-19.9-1.2c-17.9-1.1-31.6-16.5-30.6-34.4v-.1L74 84.2c1.1-17.1 15.4-30.6 32.5-30.6 1.3 0-.3-.1 28.2 1.7 13.9.8 21.5 9.8 22.8 11.4 7.1-10.4 14.5-20.5 24.6-34.5l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7C246 92.9 262 107 271 126c.4.9 15.5 29 1.2 62.6 19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM128 122.3c3.2-10 7.7-19.7 13.1-29.4.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6-4.6 0-8.3 3.5-8.6 8.1l-1.6 26.2c-.3 4.7 3.4 8.8 8.1 9.1l23.5 1.4zm25.8 61.8c5.6 9.4 14.1 16.1 22.3 20 0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7-10.3.4-19.7-5.4-23.7-15.3-13.7 21.2-37.2 62.5-17.6 95.1zm82.9 68.4L217 268.6c-1.9 1.6-2.2 4.4-.6 6.3l8.9 10.9c1 1.2 3.8 2.7 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zm118.4 25.7c-16.9-23.7-42.6-46.7-73.4-60.4-7.9-3.5-15-6.1-22.9-8.6-2 2.2-4.1 4.3-6.4 6.2l31.9 39.2c10.4 12.7 8.5 31.5-4.2 41.9-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9-8.6 0-16.6-3.8-22.1-10.5l-8.9-10.9c-6.3-7.8-7.9-17.9-5-26.8-8.2-9.9-8.3-21.3-4.6-30-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zM110.6 107.3l15.6 1 1-15.6-15.6-1-1 15.6z"],
    +  "keycdn": [512, 512, [], "f3ba", "M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"],
    +  "kickstarter": [448, 512, [], "f3bb", "M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z"],
    +  "kickstarter-k": [384, 512, [], "f3bc", "M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z"],
    +  "korvue": [446, 512, [], "f42f", "M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"],
    +  "laravel": [640, 512, [], "f3bd", "M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z"],
    +  "lastfm": [512, 512, [], "f202", "M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"],
    +  "lastfm-square": [448, 512, [], "f203", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z"],
    +  "leanpub": [576, 512, [], "f212", "M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"],
    +  "less": [640, 512, [], "f41d", "M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z"],
    +  "line": [448, 512, [], "f3c0", "M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z"],
    +  "linkedin": [448, 512, [], "f08c", "M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"],
    +  "linkedin-in": [448, 512, [], "f0e1", "M100.3 448H7.4V148.9h92.9V448zM53.8 108.1C24.1 108.1 0 83.5 0 53.8S24.1 0 53.8 0s53.8 24.1 53.8 53.8-24.1 54.3-53.8 54.3zM448 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448h-.1z"],
    +  "linode": [448, 512, [], "f2b8", "M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z"],
    +  "linux": [448, 512, [], "f17c", "M196.1 123.6c-.2-1.4 1.9-2.3 3.2-2.9 1.7-.7 3.9-1 5.5-.1.4.2.8.7.6 1.1-.4 1.2-2.4 1-3.5 1.6-1 .5-1.8 1.7-3 1.7-1 .1-2.7-.4-2.8-1.4zm24.7-.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm214.7 310.2c-.5 8.2-6.5 13.8-13.9 18.3-14.9 9-37.3 15.8-50.9 32.2l-2.6-2.2 2.6 2.2c-14.2 16.9-31.7 26.6-48.3 27.9-16.5 1.3-32-6.3-40.3-23v-.1c-1.1-2.1-1.9-4.4-2.5-6.7-21.5 1.2-40.2-5.3-55.1-4.1-22 1.2-35.8 6.5-48.3 6.6-4.8 10.6-14.3 17.6-25.9 20.2-16 3.7-36.1 0-55.9-10.4l1.6-3-1.6 3c-18.5-9.8-42-8.9-59.3-12.5-8.7-1.8-16.3-5-20.1-12.3-3.7-7.3-3-17.3 2.2-31.7 1.7-5.1.4-12.7-.8-20.8-.6-3.9-1.2-7.9-1.2-11.8 0-4.3.7-8.5 2.8-12.4 4.5-8.5 11.8-12.1 18.5-14.5 6.7-2.4 12.8-4 17-8.3 5.2-5.5 10.1-14.4 16.6-20.2-2.6-17.2.2-35.4 6.2-53.3 12.6-37.9 39.2-74.2 58.1-96.7 16.1-22.9 20.8-41.3 22.5-64.7C158 103.4 132.4-.2 234.8 0c80.9.1 76.3 85.4 75.8 131.3-.3 30.1 16.3 50.5 33.4 72 15.2 18 35.1 44.3 46.5 74.4 9.3 24.6 12.9 51.8 3.7 79.1 1.4.5 2.8 1.2 4.1 2 1.4.8 2.7 1.8 4 2.9 6.6 5.6 8.7 14.3 10.5 22.4 1.9 8.1 3.6 15.7 7.2 19.7 11.1 12.4 15.9 21.5 15.5 29.7zM220.8 109.1c3.6.9 8.9 2.4 13 4.4-2.1-12.2 4.5-23.5 11.8-23 8.9.3 13.9 15.5 9.1 27.3-.8 1.9-2.8 3.4-3.9 4.6 6.7 2.3 11 4.1 12.6 4.9 7.9-9.5 10.8-26.2 4.3-40.4-9.8-21.4-34.2-21.8-44 .4-3.2 7.2-3.9 14.9-2.9 21.8zm-46.2 18.8c7.8-5.7 6.9-4.7 5.9-5.5-8-6.9-6.6-27.4 1.8-28.1 6.3-.5 10.8 10.7 9.6 19.6 3.1-2.1 6.7-3.6 10.2-4.6 1.7-19.3-9-33.5-19.1-33.5-18.9 0-24 37.5-8.4 52.1zm-9.4 20.9c1.5 4.9 6.1 10.5 14.7 15.3 7.8 4.6 12 11.5 20 15 2.6 1.1 5.7 1.9 9.6 2.1 18.4 1.1 27.1-11.3 38.2-14.9 11.7-3.7 20.1-11 22.7-18.1 3.2-8.5-2.1-14.7-10.5-18.2-11.3-4.9-16.3-5.2-22.6-9.3-10.3-6.6-18.8-8.9-25.9-8.9-14.4 0-23.2 9.8-27.9 14.2-.5.5-7.9 5.9-14.1 10.5-4.2 3.3-5.6 7.4-4.2 12.3zm-33.5 252.8L112.1 366c-6.8-9.2-13.8-14.8-21.9-16-7.7-1.2-12.6 1.4-17.7 6.9-4.8 5.1-8.8 12.3-14.3 18-7.8 6.5-9.3 6.2-19.6 9.9-6.3 2.2-11.3 4.6-14.8 11.3-2.7 5-2.1 12.2-.9 20 1.2 7.9 3 16.3.6 23.9v.2c-5 13.7-5 21.7-2.6 26.4 7.9 15.4 46.6 6.1 76.5 21.9 31.4 16.4 72.6 17.1 75.3-18 2.1-20.5-31.5-49-41-68.9zm153.9 35.8c3.2-11 6.3-21.3 6.8-29 .8-15.2 1.6-28.7 4.4-39.9 3.1-12.6 9.3-23.1 21.4-27.3 2.3-21.1 18.7-21.1 38.3-12.5 18.9 8.5 26 16 22.8 26.1 1 0 2-.1 4.2 0 5.2-16.9-14.3-28-30.7-34.8 2.9-12 2.4-24.1-.4-35.7-6-25.3-22.6-47.8-35.2-59-2.3-.1-2.1 1.9 2.6 6.5 11.6 10.7 37.1 49.2 23.3 84.9-3.9-1-7.6-1.5-10.9-1.4-5.3-29.1-17.5-53.2-23.6-64.6-11.5-21.4-29.5-65.3-37.2-95.7-4.5 6.4-12.4 11.9-22.3 15-4.7 1.5-9.7 5.5-15.9 9-13.9 8-30 8.8-42.4-1.2-4.5-3.6-8-7.6-12.6-10.3-1.6-.9-5.1-3.3-6.2-4.1-2 37.8-27.3 85.3-39.3 112.7-8.3 19.7-13.2 40.8-13.8 61.5-21.8-29.1-5.9-66.3 2.6-82.4 9.5-17.6 11-22.5 8.7-20.8-8.6 14-22 36.3-27.2 59.2-2.7 11.9-3.2 24 .3 35.2 3.5 11.2 11.1 21.5 24.6 29.9 0 0 24.8 14.3 38.3 32.5 7.4 10 9.7 18.7 7.4 24.9-2.5 6.7-9.6 8.9-16.7 8.9 4.8 6 10.3 13 14.4 19.6 37.6 25.7 82.2 15.7 114.3-7.2zM415 408.5c-10-11.3-7.2-33.1-17.1-41.6-6.9-6-13.6-5.4-22.6-5.1-7.7 8.8-25.8 19.6-38.4 16.3-11.5-2.9-18-16.3-18.8-29.5-.3.2-.7.3-1 .5-7.1 3.9-11.1 10.8-13.7 21.1-2.5 10.2-3.4 23.5-4.2 38.7-.7 11.8-6.2 26.4-9.9 40.6-3.5 13.2-5.8 25.2-1.1 36.3 7.2 14.5 19.5 20.4 33.7 19.3 14.2-1.1 30.4-9.8 43.6-25.5 22-26.6 62.3-29.7 63.2-46.5.3-5.1-3.1-13-13.7-24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4 3.9-3.4 5.9-6.3 3.1-6.6-2.8-.3-2.6 2.6-6 5.1-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2-10.4 0-18.7-4.8-24.9-9.7-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"],
    +  "lyft": [512, 512, [], "f3c3", "M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z"],
    +  "magento": [448, 512, [], "f3c4", "M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z"],
    +  "mailchimp": [428, 512, [], "f59e", "M426.56 323.72c-3.09-6.59-8.97-11.13-16.35-12.88-2.47-11.27-5.88-16.8-6.19-17.63 1.3-1.48 2.56-2.97 2.84-3.32 10.42-12.93 3.62-31.86-14.19-36.33-10.02-9.64-19.09-14.17-26.54-17.9-7.14-3.57-4.29-2.17-10.99-5.19-1.78-8.71-2.37-28.97-5.2-43.19-2.54-12.79-7.66-22.06-15.56-28.15-3.16-6.84-7.59-13.74-12.93-18.81 24.84-38.08 31.38-75.69 13.19-95.39-8.1-8.77-20.13-12.93-34.52-12.93-20.26 0-45.18 8.26-70.34 23.54 0 0-16.38-13.18-16.73-13.46-70.08-55.19-268.28 188.7-198.32 242l18.06 13.8c-11.34 31.54 4.43 69.14 37.29 81.21 7.26 2.67 15.14 3.97 23.31 3.51 0 0 53.09 97.36 165.1 97.39 129.58.04 162.55-126.72 162.9-127.86 0 .01 10.5-15.51 5.17-28.41zM20.12 267.95c-14.2-23.96 10.51-73.19 28.09-101.17C91.66 97.63 163.98 43.06 196.82 50.85l9.03-3.46c.03.03 24.67 20.85 24.7 20.87 16.97-10.19 38.58-20.57 58.8-22.64-12.3 2.77-27.29 9.15-45.05 20.01-.43.25-42.02 28.32-67.43 53.52-13.85 13.73-69.45 80.41-69.4 80.35 10.16-19.23 16.86-28.67 32.94-48.9 9.1-11.44 18.81-22.57 28.74-32.84 4.61-4.77 9.28-9.36 13.95-13.71 3.21-2.99 6.44-5.87 9.65-8.62 1.48-1.27 2.96-2.5 4.43-3.71l.01-.01L164.6 64.8l1.72 12.06 23.69 20.87s-20.96 14.11-31.39 23.01c-41.79 35.66-82.8 90.4-98.06 143.69l.73-.03c-7.6 4.19-15.14 10.91-21.73 20.05-.16-.04-17.04-12.43-19.44-16.5zm69.11 100.09c-25.03 0-45.33-21.37-45.33-47.72 0-26.36 20.29-47.72 45.33-47.72 6.49 0 12.66 1.44 18.24 4.02 0 0 9.63 4.86 12.34 27.81 2.82-7.17 4.24-13.06 4.24-13.06 3.23 9.88 4.88 20.26 4.23 30.76 2.68-3.56 5.55-10.27 5.55-10.27 5 29.33-16.4 56.18-44.6 56.18zm55.8-168.53s19.49-37.06 62.33-61.57c-3.19-.51-10.99.48-12.36.64 7.78-6.69 22.24-11.16 32.23-13.19-2.92-1.86-9.89-2.33-13.34-2.42-1.02-.03-1.01-.02-2.22.03 9.4-5.25 26.82-8.34 42.65-5.55-1.99-2.64-6.5-4.57-9.67-5.51-.28-.08-1.52-.39-1.52-.39l1.19-.28c9.54-1.84 20.69.15 29.5 3.69-1-2.32-3.45-5.03-5.29-6.74-.19-.18-1.29-.97-1.29-.97 9.22 1.91 18.06 5.94 24.71 10.5-.9-1.75-3.14-4.69-4.69-6.29 8.81 2.52 18.71 8.81 22.95 17.82.1.2.37.94.4 1.03-16.7-12.84-65.44-9.2-114.24 22.42-22.33 14.48-38.71 30.32-51.34 46.78zm263.32 146.34c-.59 1.15-6.73 34.4-41.86 62.01-44.37 34.86-102.66 31.33-124.67 11.8-11.76-11-16.85-26.73-16.85-26.73s-1.33 8.87-1.56 12.35c-8.87-15.09-8.12-33.52-8.12-33.52s-4.73 8.83-6.9 13.77c-6.53-16.62-3.16-33.78-3.16-33.78l-5.16 7.7s-2.42-18.81 3.52-34.47c6.36-16.74 18.68-28.9 21.11-30.42-9.35-2.97-20.12-11.49-20.14-11.51 0 0 4.28.28 7.26-.4 0 0-18.9-13.54-22.22-34.26 2.74 3.38 8.49 7.21 8.49 7.21-1.86-5.42-2.99-17.49-1.25-29.36l.01-.01c3.58-22.68 22.27-37.45 43.44-37.27 22.54.2 37.65 4.93 56.55-12.5 4-3.69 7.19-6.87 12.81-8.11.59-.13 2.06-.75 5.07-.75 3.05 0 5.98.69 8.67 2.29 10.25 6.1 12.46 22.01 13.56 33.68 4.07 43.28 2.43 35.57 19.94 44.49 8.36 4.25 17.74 8.29 28.43 19.72.03.03.08.09.08.09h.13c9.01.22 13.65 7.31 9.5 12.47-30.23 36.1-72.46 53.39-119.51 54.84-1.94.05-6.32.15-6.34.15-19.01.58-25.19 25.16-13.27 39.95 7.54 9.35 22.03 12.42 33.97 12.46l.17-.06c51.45 1.04 103.14-35.37 112.07-55.44.06-.15.61-1.42.61-1.42-2.07 2.43-52.18 49.61-113.08 47.9 0 0-6.66-.14-12.93-1.6-8.27-1.92-14.55-5.56-16.95-13.8 5.05 1.01 11.45 1.66 18.87 1.66 43.96 0 75.63-19.98 72.33-20.25-.13 0-.26.03-.48.08-5.13 1.19-57.97 21.66-91.37 11.16.08-1.02.24-2.01.48-2.9 2.97-9.95 8.25-8.56 16.79-8.93 30.48-1.01 55.07-8.68 73.5-17.43 19.65-9.33 34.63-21.35 40.03-27.42 7 11.79 6.96 26.92 6.96 26.92s2.74-.96 6.38-.96c11.38.01 13.73 10.23 5.09 20.6zm-149.29 13.7c0-.05-.01-.1-.01-.15.01.05.01.1.01.15zm-.01-.21c-.01-.13-.01-.26-.02-.39-.02-.65-.03-1.33 0-2.02-.02.74-.02 1.42 0 2.02.01.13.01.27.02.39zm.12 1.46c0 .02 0 .04.01.06 0-.02 0-.04-.01-.06zm.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zM193.96 59.68l2.87-8.83 4.88 17.72-6.03-1.95-1.72-6.94zm22.38 17.72l-3.62-12.59 9.97 8.36c-2.24 1.44-4.36 2.86-6.35 4.23zm42.71 281.94c-.01-.13-.01-.26-.02-.39.01.13.01.27.02.39zm-.01-.39c-.02-.65-.03-1.33 0-2.02-.03.75-.03 1.42 0 2.02zm.02.6c0-.05-.01-.1-.01-.15m.13 1.46c0-.02 0-.04-.01-.06m.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zm52.1-138.61c-.07-3.36.47-8.92 3.63-9.95h.01c5.41-1.88 12.58 11.98 12.91 24.28-4.28-2.14-9.3-3.05-14.47-2.6-1.3-3.97-1.92-7.7-2.08-11.73zM205.38 85.27l-13.59-11.38 20.57 6.28c-2.65 1.88-5 3.6-6.98 5.1zm27.7 166.94c-3.41 1.3-5.83 2.31-7 2.14-1.89-.28-.06-3.75 4.08-7.11 8.33-6.64 19.76-8.7 29.53-5.07 4.28 1.57 9.08 4.72 11.6 8.39.95 1.39 1.21 2.44.82 2.88-.77.9-3.51-.31-7.55-1.89-10.35-3.86-17.98-4.45-31.48.66zm14.55 14.53c-2.31.94-3.81 1.66-4.42 1.17-.62-.48-.01-2.42 2.15-4.51 1.88-1.81 3.83-2.83 6.07-3.77.35-.15.72-.28 1.1-.38 1.04-.28 2.09-.63 3.23-.8 9.12-1.55 15.8 3.51 14.93 4.98-.39.69-2.08.53-4.6.36-5.23-.36-10.71-.27-18.46 2.95zM60.86 323.12zm24.3-25.78c-1.85.39-.81.17-2.64.68a7 7 0 0 0-.77.25c-.58.27-1.11.45-1.62.73-.43.24-4.07 1.86-7.03 5.48-3.99 4.95-5.44 11.43-5.19 17.67.24 6.06 2.02 9.41 2.35 10.23 1.38 2.96-1.85 3.57-4.79.39l-.01-.01c-2.35-2.49-3.86-6.29-4.6-9.66-2.98-13.95 3.24-27.97 17.61-33.57.8-.32 1.74-.51 2.5-.73h-.01c1.47-.44 6.72-1.5 12.07-.67 5.87.91 11.04 3.85 14.33 7.67l.01.01c2.53 2.87 4.43 6.92 4.09 10.53v.01c-.13 1.5-.79 3.65-2.14 4.21-.5.21-1.01.1-1.36-.25-.98-.96-.22-2.93-2.6-6.3-3.17-4.47-10.31-8.76-20.2-6.67zm30.28 31.17c1.88 10.82-6 20.5-15.52 20.7-6.67.15-10.31-4.02-9.66-4.93.3-.43 1.32-.24 2.88-.01 8.5 1.32 13.66-3.86 14.9-9.29.02-.09.35-1.54.34-2.54.07-.88-.03-1.76-.16-2.56-1-5.62-7.45-6.68-11.6-11.15-3.72-4.04-2.99-9.22-.65-11.71 2.81-2.77 6.83-1.76 6.78-.78 0 .52-.97.91-2.17 1.74-1.56 1.1-1.77 2.16-1.37 3.98.26 1 .71 1.65 1.68 2.42 3.48 2.76 12.85 4.7 14.55 14.13zm212.87-81.47c2.58.4 4.22 3.59 3.67 7.13-.55 3.54-3.09 6.08-5.67 5.67-2.58-.4-4.22-3.59-3.67-7.13.56-3.53 3.09-6.07 5.67-5.67zm-28.33 10.31c1.42-2.59 5.44-3.11 8.99-1.16 3.55 1.94 5.27 5.62 3.86 8.2-1.42 2.59-5.44 3.11-8.99 1.16-3.55-1.94-5.28-5.61-3.86-8.2z"],
    +  "mandalorian": [390, 512, [], "f50f", "M203.28 511.89c-.98-3.26-1.69-15.83-1.39-24.58.55-15.89.98-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-.96.4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-.99-11.43.16-4.81 0-10.53-.34-12.71-2.05-12.97-3.46-27.7-3.25-33.9.21-6.12.43-7.15 2.06-9.67 3.05-4.71 6.51-14.04 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74.89-4.42 2.43-9.72 4.36-15.05 2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71-1.03 1.49-4.76 4.8-8.29 7.36-8.37 6.08-11.7 9.39-12.66 12.58-.93 3.11-1.02 7.23-.16 7.76.34.21 1.29 2.4 2.11 4.88 1.62 4.88 1.87 10.12.72 15.36-.39 1.77-1.05 5.47-1.46 8.23-.41 2.76-.98 6.46-1.25 8.22-.28 1.76-.97 3.68-1.55 4.26-.96.96-1.14.91-2.05-.53-.55-.87-1.2-3.01-1.44-4.75-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-.96-20.96.92-1.73 1.67-3.81 1.67-4.61 0-2.39-2.2-5.32-7.41-9.89-7.05-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3.01-2.6 9.11-2.97 22.02l-.35 12.13 1.95 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56.07 11.84.95 22.75 2 24.71.36.66.51 1.35.34 1.52-.17.17.41 2.09 1.29 4.27.88 2.18 1.81 6.22 2.06 8.98.25 2.76 1.02 7.43 1.71 10.37 2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 57.98-2.04 61.21-.12 2.02-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4.02-4.79-2.83-9.95.7-3.01 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1.01-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73.38-1.29.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6.03-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57.02-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-10.96-1.9-23.85-14.55-6.15-6.04-12.34-11.97-13.75-13.19-2.81-2.42-2.79-1.99-.56-9.63l1.35-4.65-1.69-3.04c-.93-1.67-2.09-3.51-2.59-4.07-1.33-1.51-5.5-10.89-5.99-13.49-.31-1.66-.09-2.67.87-3.9 2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1.05 9.41 5.03 1.34 4.79 1.37 9.79.1 18.55-.53 3.68-.98 8.68-.99 11.11-.02 4.01.19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52 1.7.71 3.82 1.99 4.72 2.85 11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 7.98 4.54 10.04 13.39 1.31 5.65 4 11.14 5.46 11.14.59 0 2.09-.63 3.33-1.39 1.98-1.22 2.25-1.73 2.25-4.18-.01-3.71-1.17-14.08-2-17.84-.37-1.66-.78-4.06-.93-5.35-.14-1.29-.61-3.85-1.03-5.69-2.55-11.16-3.65-15.46-4.1-16.05-1.55-2.02-4.08-10.2-4.93-15.92-1.64-11.11-3.96-14.23-12.91-17.39-4.64-1.64-8.89-4.12-13.32-7.78-1.15-.95-4.01-3.22-6.35-5.06-2.35-1.83-4.41-3.53-4.6-3.76-.18-.23-1.39-1.14-2.69-2.02-6.24-4.22-8.84-6.98-11.26-11.96l-2.44-5.02-.22-12.98-.22-12.98 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2.05 8.53-.19 10.12.02 11.66 1.56 1.53 1.53 1.36 6.4-.29 8.5-.74.94-1.34 1.98-1.34 2.32 0 .58-2.61 4.91-5.42 8.99-.68.99-2.13 5.35-2.37 6.82 20.44 13.39 21.55 3.77 14.07 28.98l11.4 2.54c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-11.98-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28 3.18-.92 6.58-1.68 7.55-1.68.97 0 3.66-.58 5.98-1.29 3.65-1.11 4.5-1.17 6.35-.4 1.17.48 3.79 1.09 5.82 1.36 2.02.26 4.72 1.12 6 1.91 1.28.79 3.53 1.77 5.02 2.17 2.51.68 3 .57 7.05-1.67l4.35-2.4 10.7-.41c10.44-.4 10.81-.47 15.26-2.68l4.58-2.3 2.46 1.43c1.76 1.02 3.14 2.73 4.85 5.98 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39.5 1.96 1.45 4.62 2.1 5.91.65 1.29 1.24 3.09 1.31 4.01.31 4.33-.03 5.3-2.41 6.92-2.17 1.47-6.98 7.91-6.98 9.34 0 .32-.48 1.69-1.07 3.03-5.04 11.51-6.76 13.56-14.26 16.98-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26-.37.69-2.21 2.37-4.09 3.71-2.04 1.47-3.8 3.38-4.38 4.78-.54 1.28-1.66 2.59-2.49 2.91-.83.32-1.94 1.08-2.45 1.71-.52.62-3.66 3.04-7 5.38-3.33 2.34-6.87 5.02-7.87 5.96-1 .94-2.07 1.71-2.39 1.71s-1.28.74-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6.22 1.63.86 4.27 1.42 5.88 1.32 3.8 1.31 7.86-.05 10.57-1.43 2.86-.89 6.65 1.35 9.59 2.01 2.63 2.16 4.56.71 8.84-.61 1.8-1.05 5.45-1.06 8.91-.02 4.88.22 6.28 1.46 8.38 1.2 2.04 1.82 2.48 3.24 2.32 1.98-.23 2.3-1.05 4.71-12.12 2.18-10.03 3.71-11.92 13.76-17.08 2.94-1.51 7.46-3.96 10.03-5.44 2.58-1.48 6.79-3.69 9.37-4.91 6.67-3.16 11.05-6.52 15.22-11.67 7.11-8.79 9.98-16.22 12.85-33.3.55-3.28 1.43-5.65 2.86-7.73 1.29-1.87 2.37-4.62 2.89-7.31 1.02-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8.03-2.18 3.11-6.46 13.01-8.76 20.26l-2.29 7.22-6.97 6.49c-3.83 3.57-7.96 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 9.99 0 2.98.43 4.96 1.59 7.26.87 1.74 1.81 3.91 2.09 4.83.28.92.98 2.22 1.57 2.89 1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12.02-4.7 12.02-1.79 0-4.06 9.27-5.07 20.74-.18 2.02-.62 5.94-.98 8.7-.36 2.76-.96 9.98-1.35 16.05-.77 12.22-.19 18.77 2.05 23.15 3.41 6.69.52 12.69-11.03 22.84l-3.97 3.49.07 5.19c.04 2.86.55 6.85 1.14 8.87 4.61 15.98 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15.42 1.84.91 5 1.08 7.02.17 2.02.66 5.33 1.08 7.36.47 2.26.78 11.02.79 22.74l.02 19.06-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2.02-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3.02-17.66-3.03-21.3-.01-4.23 1.02-6 5.28-9.13 4.14-3.04 4.86-3.14 5.48-.72.28 1.1 1.45 5.62 2.6 10.03 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-.98 7.07-1.17 12.39-1.04 28.43.17 19.4-.64 35.73-2.04 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-70.99-37.58c-.24-.38-1.01-5.24-1.73-10.79-.72-5.56-1.49-10.41-1.73-10.79-.23-.38-.68-3.3-.99-6.49-.31-3.19-.91-7.46-1.33-9.48-.99-4.79-3.35-19.35-3.42-21.07-.03-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29.96-.96 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83-.18 4.6-.49 9.87-.67 11.71-.18 1.84-.61 9.36-.94 16.72-.79 17.41-1.94 31.29-2.65 32-.32.3-.76.24-1-.14zM74.63 162.61c21.07 12.79 17.84 14.15 28.49 17.66 13.01 4.29 18.87 7.13 23.15 16.87-43.66 36.14-69.01 57.9-76.71 70.82-31.02 52.01-5.99 101.59 62.75 87.21-14.18 29.23-77.97 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179.02c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-67.96 2.98-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.27 70.58-78.66 91.12-105.29 61.65z"],
    +  "markdown": [640, 512, [], "f60f", "M593.85 452.92H46.15C20.7 452.92 0 432.22 0 406.77V105.23c0-25.45 20.7-46.15 46.15-46.15h547.69c25.45 0 46.15 20.7 46.15 46.15v301.54c.01 25.45-20.69 46.15-46.14 46.15zm-440-92.3v-120l61.54 76.92 61.54-76.92v120h61.54V151.38h-61.54l-61.54 76.92-61.54-76.92H92.31v209.23h61.54zM566.15 256h-61.54V151.38h-61.54V256h-61.54l92.31 107.69L566.15 256z"],
    +  "mastodon": [417, 512, [], "f4f6", "M417.8 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.5-28.4-290.4 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.4-.9-9-.9-13.9 85.6 20.9 158.6 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H75.1c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"],
    +  "maxcdn": [512, 512, [], "f136", "M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"],
    +  "medapps": [320, 512, [], "f3c6", "M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"],
    +  "medium": [448, 512, [], "f23a", "M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"],
    +  "medium-m": [512, 512, [], "f3c7", "M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z"],
    +  "medrt": [544, 512, [], "f3c8", "M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z"],
    +  "meetup": [512, 512, [], "f2e0", "M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"],
    +  "megaport": [496, 512, [], "f5a3", "M248 8C111.04 8 0 119.04 0 256c0 136.97 111.04 248 248 248 136.96 0 248-111.03 248-248C496 119.04 384.96 8 248 8zm85.46 267.67l59.66 59.67v87.05l-26.07 19.23L341 422.39v-65.46l-33.44-33.44-33.44 33.44v65.46L248 441.62l-26.12-19.23v-65.46l-33.44-33.44L155 356.92v65.46l-26.07 19.23-26.06-19.23v-87.05l59.47-59.47V188l59.5-59.5V52.88l26.06-19.23 26.06 19.23v75.64l59.5 59.5m-85.56-11.86l33.44 33.44V276L248 309.33l-33.54-33.54v-66.2l33.44-33.43z"],
    +  "microsoft": [448, 512, [], "f3ca", "M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"],
    +  "mix": [448, 512, [], "f3cb", "M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"],
    +  "mixcloud": [640, 512, [], "f289", "M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z"],
    +  "mizuni": [496, 512, [], "f3cc", "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"],
    +  "modx": [448, 512, [], "f285", "M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"],
    +  "monero": [496, 512, [], "f3d0", "M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"],
    +  "napster": [496, 512, [], "f3d2", "M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"],
    +  "neos": [456, 512, [], "f612", "M387.44 512h-95.11L184.12 357.46v91.1L97.69 512H0V29.82L40.47 0h108.05l123.74 176.13V63.45L358.69 0h97.69v461.5L387.44 512zM10.77 35.27v460.72l72.01-52.88V193.95l215.49 307.69h84.79l52.35-38.17h-78.27L40.96 12.98 10.77 35.27zm82.54 466.61l80.04-58.78V342.06L93.55 227.7v220.94l-72.58 53.25h72.34zM52.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L142.91 10.77H52.63zm230.4 180.88l72.01 102.81V15.93l-72.01 52.96v122.76z"],
    +  "nimblr": [355, 512, [], "f5a8", "M232.6 299.29c15.57 0 27.15 11.46 27.15 26.96 0 15.55-11.62 26.96-27.15 26.96-15.7 0-27.15-11.57-27.15-26.96 0-15.51 11.58-26.96 27.15-26.96zM99.01 326.25c0-15.61 11.68-26.96 27.15-26.96 15.57 0 27.15 11.46 27.15 26.96 0 15.41-11.47 26.96-27.15 26.96-15.44 0-27.15-11.31-27.15-26.96m78.75-167.3C143 158.95 75.45 178.77 45.25 227L0 0v335.48C0 433.13 79.61 512 177.76 512c98.24 0 177.76-78.95 177.76-176.52 0-97.46-79.39-176.53-177.76-176.53zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59 0-72.68 59.24-131.59 132.51-131.59 73.27 0 132.51 58.91 132.51 131.59s-59.25 131.59-132.51 131.59z"],
    +  "nintendo-switch": [448, 512, [], "f418", "M95.9 33.5c-44.6 8-80.5 41-91.8 84.4C0 133.6-.3 142.8.2 264.4.4 376 .5 378.6 2.4 387.3c10.3 46.5 43.3 79.6 90.3 90.5 6.1 1.4 13.9 1.7 64.1 1.9 51.9.4 57.3.3 58.7-1.1 1.4-1.4 1.5-19.3 1.5-222.2 0-150.5-.3-221.3-.9-222.6-.9-1.7-2.5-1.8-56.9-1.7-44.2.1-57.5.4-63.3 1.4zm83.9 222.6V444l-37.8-.5c-34.8-.4-38.5-.6-45.5-2.3-29.9-7.7-52-30.7-58.3-60.7-2-9.4-2-240.1-.1-249.3 5.6-26.1 23.7-47.7 48-57.4 12.2-4.9 17.9-5.5 57.6-5.6l35.9-.1v188zm-75.9-131.2c-5.8 1.1-14.7 5.6-19.5 9.7-9.7 8.4-14.6 20.4-13.8 34.5.4 7.3.8 9.3 3.8 15.2 4.4 9 10.9 15.6 19.9 20 6.2 3.1 7.8 3.4 15.9 3.7 7.3.3 9.9 0 14.8-1.7 20.1-6.8 32.3-26.3 28.8-46.4-3.9-23.7-26.6-39.7-49.9-35zm158.2-92.3c-.4.3-.6 100.8-.6 223.5 0 202.3.1 222.8 1.5 223.4 2.5.9 74.5.6 83.4-.4 37.7-4.3 71-27.2 89-61.2 2.3-4.4 5.4-11.7 7-16.2 5.8-17.4 5.7-12.8 5.7-146.1 0-106.4-.2-122.3-1.5-129-9.2-48.3-46.1-84.8-94.5-93.1-6.5-1.1-16.5-1.4-48.8-1.4-22.4-.1-40.9.2-41.2.5zm99.1 202.1c14.5 3.8 26.3 14.8 31.2 28.9 3.1 8.7 3 21.5-.1 29.5-5.7 14.7-16.8 25-31.1 28.8-23.2 6-47.9-8-54.6-31-2-7-1.9-18.9.4-26.2 6.9-22.7 31-36.1 54.2-30z"],
    +  "node": [640, 512, [], "f419", "M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z"],
    +  "node-js": [448, 512, [], "f3d3", "M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"],
    +  "npm": [576, 512, [], "f3d4", "M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"],
    +  "ns8": [640, 512, [], "f3d5", "M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z"],
    +  "nutritionix": [400, 512, [], "f3d6", "M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"],
    +  "odnoklassniki": [320, 512, [], "f263", "M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z"],
    +  "odnoklassniki-square": [448, 512, [], "f264", "M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z"],
    +  "old-republic": [496, 512, [], "f510", "M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z"],
    +  "opencart": [640, 512, [], "f23d", "M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"],
    +  "openid": [448, 512, [], "f19b", "M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"],
    +  "opera": [496, 512, [], "f26a", "M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"],
    +  "optin-monster": [576, 512, [], "f23c", "M550.671 450.303c0 11.62-15.673 19.457-32.158 14.863-12.16-3.243-31.346-17.565-36.211-27.294-5.674-11.62 4.054-32.698 18.916-30.806 15.674 1.621 49.453 25.401 49.453 43.237zM372.86 75.223c-3.783-72.151-100.796-79.718-125.928-23.51 44.588-24.321 90.257-15.673 125.928 23.51zM74.795 407.066c-15.673 1.621-49.452 25.401-49.452 43.237 0 11.62 15.673 19.457 32.157 14.863 12.16-3.243 31.076-17.565 35.94-27.294 5.946-11.62-3.782-32.698-18.645-30.806zm497.765 14.322c1.081 3.513 1.892 7.026 1.892 10.809.81 31.616-44.317 64.045-73.503 65.125-17.295.81-34.59-8.377-42.696-23.51-113.497 4.053-226.994 4.864-340.22 0-8.377 15.133-25.672 24.05-42.967 23.51-28.915-1.081-74.043-33.509-73.503-65.125.27-3.783.811-7.296 1.892-10.809-5.566-9.463-4.845-15.282 5.405-11.62 3.243-5.134 7.026-9.458 11.08-13.782-2.57-10.917 1.27-14.094 11.079-9.188 4.594-3.243 9.998-6.485 15.944-9.188 0-15.757 11.839-11.131 17.295-5.675 12.467-1.78 20.129.709 26.753 5.675v-19.726c-12.987 0-40.641-11.375-45.94-36.212-4.974-20.725 2.607-38.075 25.132-47.56.81-5.945 8.107-14.052 14.862-15.944 7.567-1.892 12.431 4.594 14.052 10.269 7.425 0 17.757 1.465 21.078 8.107 5.405-.541 11.079-1.352 16.484-1.892-2.432-1.892-5.134-3.513-8.107-4.594-5.134-8.917-13.782-11.079-24.591-11.62 0-.81 0-1.621.27-2.702-19.727-.541-44.048-5.675-54.857-17.835-21.321-23.638-15.935-83.577 12.16-103.498 8.377-5.675 21.618-.811 22.699 9.728 2.425 20.598.399 26.833 26.212 25.942 8.107-7.836 16.755-14.592 26.483-19.997-14.862-1.352-28.914 1.621-43.778 3.783 12.752-12.48 23.953-25.442 56.748-42.427 23.511-11.89 49.993-20.808 76.205-23.239-18.646-7.837-39.993-11.891-59.721-16.484 76.475-16.214 174.569-22.159 244.289 37.562 18.105 15.403 32.427 36.211 42.696 59.992 39.799 4.853 36.47-5.581 38.643-25.132 1.081-10.269 14.322-15.403 22.699-9.458 14.862 10.539 22.159 30.806 24.59 48.101 2.162 17.835.27 41.345-12.43 55.127-10.809 12.16-34.32 17.565-53.776 18.105v2.703c-11.08.27-20.268 2.432-25.673 11.62-2.972 1.081-5.674 2.703-8.377 4.594 5.675.54 11.35 1.351 16.755 1.891 1.869-5.619 12.535-8.377 21.077-8.377 1.621-5.405 6.756-11.89 14.052-10.269s14.052 9.998 14.863 15.944c10.809 4.324 22.159 12.16 25.131 25.672 1.892 8.107 1.621 15.133.27 21.888-5.726 25.262-33.361 36.212-45.939 36.212 0 6.756 0 13.241-.27 19.726 8.01-6.006 16.367-7.158 26.752-5.675 5.919-5.919 17.565-9.41 17.565 5.675 5.675 2.703 11.349 5.945 15.944 9.188 10.1-5.051 13.669-.539 10.809 9.188 4.053 4.323 8.107 8.917 11.079 13.782 10.136-3.62 11.021 2.078 5.409 11.62zm-73.773-254.016c17.295 6.756 26.212 22.159 30.265 35.67 1.081-10.539-2.702-39.453-13.782-51.073-7.296-7.296-14.052-5.134-14.052.81.001 6.216-1.35 11.62-2.431 14.593zm-18.646 12.43c12.971 15.673 17.024 41.615 12.7 62.963 10.809-2.162 20.537-6.215 26.212-12.16 1.892-2.162 3.783-4.864 4.864-7.566-1.081-21.348-10.269-42.697-29.725-48.912-3.242 3.243-9.187 4.864-14.051 5.675zm-21.889.811c7.567 20.537 12.431 42.696 14.322 64.585 3.513 0 7.567-.27 11.62-.811 5.945-24.321-.27-51.614-14.052-63.504-3.783 0-8.107 0-11.89-.27zM77.768 167.372c-1.081-2.973-2.432-8.377-2.432-14.593 0-5.945-7.026-8.107-14.052-.81-11.35 11.62-14.863 40.534-13.782 51.073 4.053-13.512 12.971-28.915 30.266-35.67zm5.675 75.394c-4.324-21.348-.27-47.291 12.701-62.963-4.865-.811-10.809-2.432-14.052-5.675-19.457 6.215-28.375 27.563-29.726 48.912 1.351 2.702 2.972 5.404 4.864 7.566 5.675 6.215 15.403 9.998 26.213 12.16zm41.345-61.073c-5.134 1.081-9.998 2.973-14.862 4.865l-12.16 5.134v-.27c-7.296 14.052-9.999 34.319-5.405 52.965 4.594.541 8.647.811 12.7.811 2.432-22.159 9.188-43.778 19.727-63.505zm88.095-23.239c0 42.155 34.319 76.205 76.205 76.205s76.205-34.05 76.205-76.205c0-41.886-34.319-75.935-76.205-75.935s-76.205 34.049-76.205 75.935zm152.41 97.283c9.969 50.608 3.299 64.692 16.484 58.099 15.944-8.107 22.699-39.183 22.97-57.019-12.971-.81-26.213-.81-39.454-1.08zm-71.611-.541v-.27c-.27 5.134.27 38.103 4.324 41.075 11.079 5.405 39.453 4.594 51.073 1.081 5.405-1.621 2.432-37.022 1.621-41.886-18.916-.27-38.102-.27-57.018 0zm-14.053 0v-.27c-19.456.27-38.642.27-57.829.811-1.892 9.187-4.594 48.911 1.892 51.614 12.971 5.675 41.616 5.134 54.586 1.621 4.595-2.432 2.433-45.399 1.351-53.776zm-85.662 57.56c5.405 2.432 8.647 2.432 9.728-4.324 1.892-8.647 2.432-36.752 4.865-52.155-12.16.27-24.591.811-36.752 1.621-5.405 19.727.27 45.129 22.159 54.858zm-65.666-11.08c43.778 47.02 92.689 85.663 155.923 106.47 67.558-19.186 115.659-59.991 163.219-107.011-11.095-4.315-7.715-10.363-7.296-11.62-8.918-.81-17.835-1.892-26.483-2.702-9.458 32.968-35.94 52.965-46.75 31.616-2.702-5.134-3.513-11.62-4.594-16.754-3.783 8.377-13.242 8.107-24.591 8.918-13.241 1.081-31.617 1.351-44.048-2.972-2.972 12.971-11.079 12.971-26.752 14.322-14.052 1.352-48.642 4.054-54.857-10.809-1.081 28.644-35.13 9.998-45.129-7.026-3.243-5.675-5.405-11.35-7.026-17.565-7.837.81-15.673 1.621-23.511 2.702 2.443 3.663 1.549 9.052-8.105 12.431zM115.6 453.545c-5.674-23.239-18.646-49.722-33.508-54.046-22.429-6.756-68.909 23.51-66.207 54.586 12.701 19.457 39.994 35.67 59.181 36.481 17.835.81 35.94-11.08 39.724-28.914.539-2.432.81-5.134.81-8.107zm7.296-5.944c33.509-19.457 69.179-35.671 105.931-47.02-38.643-20.537-68.098-47.831-97.283-77.016-2.162 1.352-5.134 2.432-7.836 3.513-1.637 4.91 8.718 5.33 5.405 12.431-2.162 4.054-8.648 7.567-15.133 9.188-2.161 2.702-5.134 4.864-7.836 6.485h-.27c-.27 13.511-.27 27.024.27 40.535 8.939 15.964 15.426 33.314 16.752 51.884zm320.764 12.7c-36.752-21.348-74.044-41.345-115.659-52.965-13.782 6.215-27.833 11.349-42.155 15.403-2.162.811-2.162.811-4.324 0-11.89-3.783-23.239-8.107-34.859-13.241-40.265 11.62-77.286 29.185-112.416 50.803h-.27v.27c.27 0 .27 0 .27-.27 103.227 4.054 206.455 3.513 309.413 0zm27.023-64.045l-.27.27c.541-13.782.811-27.563.811-41.345-2.973-1.621-5.675-4.054-8.107-6.756-6.485-1.351-12.971-5.134-15.133-8.918-1.892-4.053 1.351-7.566 5.945-10.269-.27-.541-.541-1.621-.541-2.432-2.972-.811-5.405-1.892-7.567-3.243-31.616 29.455-65.396 56.749-103.498 76.746 38.914 11.62 75.935 28.104 111.875 47.561 1.05-14.692 7.231-35.749 16.485-51.614zm23.24 3.244c-14.593 4.323-27.834 30.806-33.509 54.046 0 23.826 21.278 37.897 40.534 37.022 19.186-.811 46.48-17.024 59.181-36.481 2.973-31.077-43.507-61.344-66.206-54.587zM290.709 134.133c.045 0 .089.003.134.003.046 0 .09-.003.136-.003h-.27zm0 96.743c28.645 0 51.884-21.618 51.884-48.371 0-36.092-40.507-58.079-72.151-44.318 9.458 2.972 16.484 11.62 16.484 21.618 0 23.257-33.291 31.955-46.48 11.35-7.297 34.067 19.368 59.721 50.263 59.721zM68.039 474.083c.54 6.486 12.16 12.701 21.618 9.458 6.756-2.703 14.593-10.539 17.295-16.214 2.973-7.026-1.081-19.997-9.728-18.375-8.917 1.621-29.725 16.754-29.185 25.131zm410.75-25.131c-8.377-1.621-12.431 11.349-9.458 18.375 2.432 5.675 10.269 13.511 17.295 16.214 9.187 3.243 21.078-2.972 21.348-9.458.811-8.377-20.267-23.51-29.185-25.131z"],
    +  "osi": [495, 512, [], "f41a", "M0 259.2C2.3 123.4 97.4 26.8 213.8 11.1c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.7-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 6.4-42.4-24.5-78.7-64.5-82.2-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119C1.9 318.7 1.6 280.2 0 259.2zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 31.9 18.4 49.5 53.8 45.2 90.4-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.2 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161C459.8 112 354.1 14.7 218 31.5 111.9 44.5 22.7 134 20.9 257.3z"],
    +  "page4": [496, 512, [], "f3d7", "M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"],
    +  "pagelines": [384, 512, [], "f18c", "M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"],
    +  "palfed": [576, 512, [], "f3d8", "M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z"],
    +  "patreon": [512, 512, [], "f3d9", "M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"],
    +  "paypal": [384, 512, [], "f1ed", "M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"],
    +  "penny-arcade": [640, 512, [], "f704", "M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z"],
    +  "periscope": [448, 512, [], "f3da", "M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"],
    +  "phabricator": [496, 512, [], "f3db", "M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z"],
    +  "phoenix-framework": [640, 512, [], "f3dc", "M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"],
    +  "phoenix-squadron": [513, 512, [], "f511", "M96.24 62.81C142.91 26.57 202.15 6.57 261.28 8.08c29.67-.38 59.29 5.38 87.17 15.37-24.2-4.64-49.18-6.35-73.6-2.45-43 5.35-83.26 27.23-112.16 59.35 5.69-.99 10.81-3.68 16.07-5.88 18.19-7.89 37.6-13.29 57.4-14.87 19.8-2.14 39.75-.43 59.45 1.93-14.46 2.79-29.2 4.58-43.11 9.61-34.53 11.11-65.46 33.26-86.55 62.82-13.84 19.77-23.7 42.99-24.74 67.33-.35 16.54 5.23 34.91 19.89 44.17 11.13 6.66 24.85 9.39 37.63 6.76 15.49-2.47 30.16-8.67 43.73-16.38 11.55-6.84 22.73-14.59 32.05-24.32 3.8-3.23 2.54-8.48 2.63-12.83-2.13-.34-4.4-1.11-6.32.3a203.975 203.975 0 0 1-35.93 15.42c-20.07 6.19-42.28 8.48-62.28.78 12.83 1.73 26.14.31 37.85-5.46 20.29-9.75 36.92-25.27 54.6-38.88 27.84-21.29 57.64-40.11 89.17-55.47 25.78-12.01 53.09-22.85 81.81-24.2-15.68 13.76-32.25 26.6-46.92 41.51-14.55 14.04-27.54 29.58-40.23 45.31-3.53 4.61-8.98 6.96-13.62 10.19-22.24 15.03-40.6 35.96-52.04 60.28-9.36 19.74-14.55 41.97-11.81 63.84 1.95 13.73 8.74 27.67 20.96 35.01 12.94 7.99 29.14 8.09 43.61 5.11 32.9-7.47 61.61-28.97 81.28-56 20.5-27.6 30.61-62.38 29.25-96.64-.52-7.52-1.58-15-1.67-22.55 8.02 19.54 14.87 39.83 16.7 61.01 2.01 14.32.75 28.84-1.62 43.02-1.92 11.02-5.69 21.58-7.81 32.53 20.36-22.73 34.17-51.24 39.46-81.31 5.72-35.37.58-72.36-14.25-104.95 20.84 32.12 32.43 69.79 35.81 107.8.5 12.77.5 25.58 0 38.34-2.91 34.26-12.97 67.95-29.76 98-26.2 47.48-68.2 85.89-117.54 108.32-78.52 36.34-175.2 31.41-248.72-14.72-38.84-23.78-71.06-58.32-91.68-98.96C10.72 337.43 2.04 305.5 0 273.13V241.7c3.94-69.97 40.99-136.32 96.24-178.89m222.65 80.57c5.51-.8 10.82-2.57 16.02-4.5 4.99-1.77 9.27-5.95 10.35-11.25-8.91 5-17.95 9.95-26.37 15.75z"],
    +  "php": [640, 512, [], "f457", "M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"],
    +  "pied-piper": [448, 512, [], "f2ae", "M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"],
    +  "pied-piper-alt": [576, 512, [], "f1a8", "M242 187c6.3-11.8 13.2-17 25.9-21.8 27.3-10.3 40.2-30.5 58.9-51.1 11.9 8.4 12 24.6 31.6 23v21.8l6.3.3c37.4-14.4 74.7-30.2 106.6-54.6 48.3-36.8 52.9-50 81.3-100l2-2.6c-.6 14.1-6.3 27.3-12.4 39.9-30.5 63.8-78.7 100.3-146.8 116.7-12.4 2.9-26.4 3.2-37.6 8.9 1.4 9.8 13.2 18.1 13.2 23 0 3.4-5.5 7.2-7.5 8.6-11.2-12.9-16.1-19.3-22.7-22.1-7.6-3.5-63.9-6.4-98.8 10zm137.9 256.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9L244 246zm-12.6 31.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zM555.5 0l-.6 1.1-.3.9.6-.6.3-1.4zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46v27.3l11.8-3.4-2.9-23.8h-8.9zm76.1 2.9c0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3l2 12.4c9-1.5 58.4-6.6 58.4-14.1z"],
    +  "pied-piper-hat": [640, 512, [], "f4e5", "M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"],
    +  "pied-piper-pp": [448, 512, [], "f1a7", "M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"],
    +  "pinterest": [496, 512, [], "f0d2", "M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"],
    +  "pinterest-p": [384, 512, [], "f231", "M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"],
    +  "pinterest-square": [448, 512, [], "f0d3", "M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"],
    +  "playstation": [576, 512, [], "f3df", "M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z"],
    +  "product-hunt": [512, 512, [], "f288", "M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z"],
    +  "pushed": [432, 512, [], "f3e1", "M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"],
    +  "python": [448, 512, [], "f3e2", "M167.8 36.4c-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1zm-6.7 28.4c11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4zm185.2 81.4v47.5c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6-7.7-30.9-22.3-54.2-53.4-54.2h-40.1zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3z"],
    +  "qq": [448, 512, [], "f1d6", "M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z"],
    +  "quinscape": [489, 512, [], "f459", "M301.9 474.6h-1.3c-87.3 0-158.1-70.8-158.1-158.1s70.8-158.1 158.1-158.1c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C489.1 117.5 379.6 8 244.5 8 109.5 8 0 117.5 0 252.6s109.5 244.6 244.5 244.6c24.8 0 47.8-3.2 70.4-10.1-5.2-3.5-9-8.2-13.4-12.6l.4.1zm-21.2-69.8c0-54.8 44.4-99.2 99.2-99.2 54.8 0 99.2 44.4 99.2 99.2 0 54.8-44.4 99.2-99.2 99.2-54.8 0-99.2-44.4-99.2-99.2"],
    +  "quora": [448, 512, [], "f2c4", "M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z"],
    +  "r-project": [581, 512, [], "f4f7", "M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"],
    +  "ravelry": [512, 512, [], "f2d9", "M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z"],
    +  "react": [512, 512, [], "f41b", "M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zm-130 189.1c4.6 8.8 9.3 17.5 14.3 26.1 5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5zm0-50.6c-6.3-14.9-11.6-29.5-16-43.6 14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26zm11.4 25.3c6.6-13.8 13.8-27.3 21.4-40.6 7.6-13.3 15.8-26.2 24.4-38.9 15-1.1 30.3-1.7 45.9-1.7 15.6 0 31 .6 45.9 1.7 8.5 12.6 16.6 25.5 24.3 38.7 7.7 13.2 14.9 26.7 21.7 40.4-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6-15.7 0-30.9-.5-45.6-1.4-8.7-12.7-16.9-25.7-24.6-39-7.7-13.3-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 210.2c25.3 0 45.8 20.5 45.8 45.8 0 25.3-20.5 45.8-45.8 45.8-25.3 0-45.8-20.5-45.8-45.8 0-25.3 20.5-45.8 45.8-45.8"],
    +  "readme": [576, 512, [], "f4d5", "M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z"],
    +  "rebel": [512, 512, [], "f1d0", "M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z"],
    +  "red-river": [448, 512, [], "f3e3", "M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z"],
    +  "reddit": [512, 512, [], "f1a1", "M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z"],
    +  "reddit-alien": [512, 512, [], "f281", "M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"],
    +  "reddit-square": [448, 512, [], "f1a2", "M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z"],
    +  "rendact": [496, 512, [], "f3e4", "M248 8C111 8 0 119 0 256s111 248 248 248c18.6 0 36.7-2.1 54.1-5.9-5.6-7.4-10.8-14.4-15.9-21.3-12.4 2.1-25.2 3.3-38.3 3.3C124.3 480 24 379.7 24 256S124.3 32 248 32s224 100.3 224 224c0 71-33 134.2-84.5 175.3-25.9 18.8-39.1 21.4-83.5-44.2-78.7-112.9-48-71.1-73.7-108.3 72.8 8.9 228.5-72 168.6-168.6C314-26.8 15 93.8 59.7 226.4c3.2 9.8 14.4 38.6 45.6 38.6 2 0 2.6-.6 2-1.7-4.4-8.7-20.1-9.8-20.1-37.4 0-40.5 40.5-89.6 100.3-120 66.1-32.3 131.9-30.2 158.2 5.4 27.2 38.3-20.9 119.2-120.4 136.9 7.5-9.4 57-75.2 62.8-84 22.7-34.6 23.6-49 14-59.2-15.5-16.9-29.5-10.3-50.7-11.7-10.8-.9-113.7 181.2-136.4 216.9-5.9 9-21.2 34.1-21.2 50.9 0 21.3 2.8 51.4 20.6 51.4 10.6 0 8-18.7 8-26.6 0-12.9 27.4-49.4 74.8-104.6 20.4 36.1 57.7 114.3 130.2 209.7 98-33.1 168.5-125.8 168.5-235C496 119 385 8 248 8z"],
    +  "renren": [512, 512, [], "f18b", "M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"],
    +  "replyd": [448, 512, [], "f3e6", "M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z"],
    +  "researchgate": [448, 512, [], "f4f8", "M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"],
    +  "resolving": [496, 512, [], "f3e7", "M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z"],
    +  "rev": [410, 512, [], "f5b2", "M270.67 274.89c0 36.16-29.41 65.57-65.56 65.57s-65.57-29.41-65.57-65.57 29.41-65.56 65.57-65.56 65.56 29.4 65.56 65.56zm139.55-5.05h-.13c-1.49-61.55-30.1-116.35-74.32-152.98l-45.38 26.2c43.17 28.03 71.81 76.63 71.81 131.82 0 86.62-70.47 157.09-157.09 157.09S48.02 361.5 48.02 274.88c0-81.86 62.96-149.27 142.99-156.43v39.12l108.76-62.79L191.01 32v38.32C84.31 77.57 0 166.36 0 274.89c0 111.59 89.12 202.29 200.06 204.98v.13h210.16V269.84z"],
    +  "rocketchat": [448, 512, [], "f3e8", "M448 256.2c0-87.2-99.6-153.3-219.8-153.3-18.8 0-37.3 1.6-55.3 4.8-11.1-10.5-24.2-20-38-27.4C61.2 44.2 0 79.4 0 79.4s56.9 47.1 47.6 88.3c-52.3 52.3-52.5 124.1 0 176.6C56.9 385.6 0 432.6 0 432.6s61.2 35.2 134.9-.8c13.8-7.5 26.9-16.9 38-27.4 18 3.2 36.5 4.8 55.3 4.8 120.3-.1 219.8-65.8 219.8-153zm-219.7 124c-23.7 0-46.3-2.8-67.3-7.8-21.3 25.8-68.1 61.7-113.6 50.1 14.8-16 36.7-43.1 32-87.6-27.3-21.4-43.6-48.7-43.6-78.5 0-68.4 86.2-123.9 192.5-123.9S420.8 188 420.8 256.4c0 68.3-86.2 123.8-192.5 123.8zm25.6-123.9c0 14.2-11.5 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.5-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm88.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm-177.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.2 0 25.6 11.6 25.6 25.8z"],
    +  "rockrms": [496, 512, [], "f3e9", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"],
    +  "safari": [512, 512, [], "f267", "M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z"],
    +  "sass": [640, 512, [], "f41e", "M551.1 291.9c-22.4.1-41.8 5.5-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-3.8 11.1-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-2.7 11.4-5.3 19.1-2.6 7.7-33.9 77.3-42.1 95.4-4.2 9.2-7.8 16.6-10.4 21.6s-.2.3-.4.9c-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2-.8 0-1.4 2-1.4 2s10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.4-35.4 189.9-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8C367 196.5 415.1 130.2 401 74.7 386.6 18.3 293.1-.2 204.6 31.2 151.9 49.9 94.9 79.3 53.9 117.6 5.2 163.2-2.6 202.9.6 219.5c11.4 58.9 92.6 97.3 125.1 125.7-1.6.9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5s1.4 9.7 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2s0 .1.1.2c-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 6.2-2.2 13.4-5.7 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6s1.4 9.7 6.2 25.8c2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 6.5-2.2 14.3-5.7 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8-2.1 14.6-13.8 22.6-17.7 25-3.9 2.4-5.1 3.3-4.8 5.1.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3C54.6 451 59.3 421.4 82 400c13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.3 30.4.3 57.2-19.1 78.3zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5.1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.8 1.9 7.4 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4z"],
    +  "schlix": [448, 512, [], "f3ea", "M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"],
    +  "scribd": [384, 512, [], "f28a", "M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"],
    +  "searchengin": [460, 512, [], "f3eb", "M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"],
    +  "sellcast": [448, 512, [], "f2da", "M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"],
    +  "sellsy": [640, 512, [], "f213", "M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"],
    +  "servicestack": [496, 512, [], "f3ec", "M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"],
    +  "shirtsinbulk": [448, 512, [], "f214", "M395.208 221.583H406v33.542h-10.792v-33.542zm0-9.625H406v-33.542h-10.792v33.542zm0 86.333H406V264.75h-10.792v33.541zM358.75 135.25h-33.542v10.5h33.542v-10.5zm36.458 206.208H406v-33.542h-10.792v33.542zM311.5 135.25h-33.542v10.5H311.5v-10.5zm-47.25 0H231v10.5h33.25v-10.5zm-47.25 0h-33.25v10.5H217v-10.5zm178.208 33.542H406V135.25h-33.542v10.5h22.75v23.042zm-255.792 259l30.625 13.417 4.375-9.917-30.625-13.417-4.375 9.917zM179.083 445l30.334 13.708 4.374-9.916-30.333-13.417-4.375 9.625zm216.125-60.375H406v-33.542h-10.792v33.542zm-334.833 8.167L91 406.208l4.375-9.624-30.625-13.709-4.375 9.917zm39.666 17.499l30.625 13.417 4.375-9.917-30.625-13.416-4.375 9.916zm132.417 38.501l4.375 9.916L267.459 445l-4.375-9.625-30.626 13.417zm118.417-52.208l4.375 9.624 30.624-13.416-4.374-9.917-30.625 13.709zM311.5 413.791l4.375 9.917 30.625-13.417-4.374-9.916-30.626 13.416zm-39.667 17.501l4.375 9.917 30.625-13.417-4.375-9.917-30.625 13.417zM311.5 46.583h-33.542v10.5H311.5v-10.5zm94.209 0h-33.251v10.5h33.251v-10.5zm-188.709 0h-33.25v10.5H217v-10.5zm141.75 0h-33.542v10.5h33.542v-10.5zm-94.5 0H231v10.5h33.25v-10.5zM448 3.708v406l-226.334 98.584L0 409.708v-406h448zm-29.166 116.958H29.166V390.75l192.792 85.75 196.875-85.75V120.666zm0-87.791H29.166V91.5h389.667V32.875zM75.542 46.583H42.291v10.5h33.251v-10.5zm94.5 0H136.5v10.5h33.542v-10.5zm-47.251 0H89.25v10.5h33.542v-10.5zm7.584 236.542c0-50.167 41.125-91.292 91.292-91.292 50.458 0 91.292 41.125 91.292 91.292 0 50.458-40.833 91.292-91.292 91.292-50.167-.001-91.292-40.834-91.292-91.292zm120.75 18.084c0 13.125-23.917 14.291-32.666 14.291-12.25 0-29.75-2.625-35.875-14.875h-.875L172.666 319c14.876 9.333 29.167 12.25 47.25 12.25 19.542 0 51.042-5.833 51.042-31.209 0-48.125-78.458-16.333-78.458-37.916 0-13.125 20.708-14.875 29.75-14.875 10.791 0 29.166 3.208 35.583 13.124h.875l8.751-16.916c-15.167-6.125-27.417-11.959-44.334-11.959-20.125 0-49.583 6.417-49.583 31.792 0 44.334 77.583 11.959 77.583 37.918zM122.791 135.25H89.25v10.5h33.542v-10.5zm-69.999 10.5h22.75v-10.5H42v33.542h10.792V145.75zm0 32.666H42v33.542h10.792v-33.542zm117.25-43.166H136.5v10.5h33.542v-10.5zm-117.25 86.333H42v33.542h10.792v-33.542zm0 86.334H42v33.542h10.792v-33.542zm0-43.167H42v33.542h10.792V264.75zm0 86.333H42v33.542h10.792v-33.542z"],
    +  "shopware": [495, 512, [], "f5b5", "M395.5 455.27c-42.95 31.79-93.95 48.59-147.48 48.59-137.21 0-248.02-111-248.02-248 0-137.19 111.04-248 248.02-248 61.3 0 120.14 22.55 165.68 63.5 2.62 2.36.58 6.64-2.86 6.18-17.67-2.43-36.75-3.66-56.71-3.66-129.36 0-222.4 53.47-222.4 155.35 0 109.04 92.13 145.88 176.83 178.73 33.64 13.04 65.4 25.36 86.96 41.59 1.9 1.44 1.89 4.31-.02 5.72zm99.46-222.32c-.08-.94-.55-1.83-1.27-2.44-51.76-42.96-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62.01 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93 1.88 1.05 4.26.19 5.05-1.82 18.89-48.39 17.94-90.23 15.93-113.31z"],
    +  "simplybuilt": [512, 512, [], "f215", "M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"],
    +  "sistrix": [448, 512, [], "f3ee", "M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"],
    +  "sith": [448, 512, [], "f512", "M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z"],
    +  "skyatlas": [640, 512, [], "f216", "M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"],
    +  "skype": [448, 512, [], "f17e", "M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"],
    +  "slack": [448, 512, [], "f198", "M244.2 217.5l19.3 57.7-59.8 20-19.3-57.7 59.8-20zm41.4 243.7C131.6 507.4 65 471.6 18.8 317.6S8.4 97 162.4 50.8C316.4 4.6 383 40.4 429.2 194.4c46.2 154 10.4 220.6-143.6 266.8zM366.2 265c-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-19.3-57.7 29-9.7c12.2-3.9 18.6-17.2 14.7-29.4-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-59.8 20.1-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l19.3 57.7-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 59.8-20.1 10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 29-9.7c12.2-4.2 18.6-17.5 14.7-29.6z"],
    +  "slack-hash": [448, 512, [], "f3ef", "M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z"],
    +  "slideshare": [512, 512, [], "f1e7", "M249.429 211.436c0 31.716-27.715 57.717-61.717 57.717-34.001 0-61.716-26.001-61.716-57.717 0-32.001 27.715-57.716 61.716-57.716 34.001 0 61.717 25.715 61.717 57.716zm254.294 50.002c-18.286 22.573-53.144 50.288-106.289 72.003C453.722 525.163 260 555.735 263.143 457.446c0 1.714-.286-52.859-.286-93.432-4.285-.858-8.571-2-13.714-3.143 0 40.858-.286 98.289-.286 96.575C252 555.735 58.278 525.163 114.566 333.441c-53.145-21.715-88.003-49.43-106.29-72.003-9.143-13.714.858-28.287 16.001-17.715 2 1.428 4.285 2.857 6.285 4.285V49.716C30.563 22.287 51.135 0 76.565 0h359.157c25.429 0 46.002 22.287 46.002 49.716v198.293l6-4.285c15.143-10.573 25.143 4 15.999 17.714zm-46.572-189.15c0-32.858-10.572-45.716-40.859-45.716H98.566c-31.716 0-40.573 10.858-40.573 45.716v192.293c67.717 35.43 125.72 29.144 157.435 28.001 13.429-.286 22.001 2.286 27.144 7.715 1.689 1.687 10.023 9.446 20.287 17.143 1.143-15.715 10.001-25.715 33.716-24.858 32.287 1.428 91.718 7.715 160.577-29.716V72.288zM331.146 153.72c-34.002 0-61.716 25.715-61.716 57.716 0 31.716 27.715 57.717 61.716 57.717 34.287 0 61.716-26.001 61.716-57.717 0-32.001-27.429-57.716-61.716-57.716z"],
    +  "snapchat": [496, 512, [], "f2ab", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"],
    +  "snapchat-ghost": [512, 512, [], "f2ac", "M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z"],
    +  "snapchat-square": [448, 512, [], "f2ad", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"],
    +  "soundcloud": [640, 512, [], "f1be", "M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z"],
    +  "speakap": [430, 512, [], "f3f3", "M55.01 391.78C-24.4 303.59-16.95 167.42 71.65 87.64s224.8-72.96 304.21 15.24 71.96 224.36-16.64 304.14c-18.74 16.87 64.03 43.09 42.02 52.26-82.06 34.21-253.91 35.04-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32.02-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 79.96-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 85.98 52.26-.37 21.28-26.42 25.81-38.59 25.6-2.98-.05-30.23-.46-47.61-24.62l-39.95 42.61c28.16 27.01 58.99 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-84.96-19.45-84.43-49.75.41-23.25 30.96-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z"],
    +  "spotify": [496, 512, [], "f1bc", "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"],
    +  "squarespace": [512, 512, [], "f5be", "M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z"],
    +  "stack-exchange": [448, 512, [], "f18d", "M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"],
    +  "stack-overflow": [384, 512, [], "f16c", "M293.7 300l-181.2-84.5 16.7-36.5 181.3 84.7-16.8 36.3zm48-76L188.2 95.7l-25.5 30.8 153.5 128.3 25.5-30.8zm39.6-31.7L262 32l-32 24 119.3 160.3 32-24zM290.7 311L95 269.7 86.8 309l195.7 41 8.2-39zm31.6 129H42.7V320h-40v160h359.5V320h-40v120zm-39.8-80h-200v39.7h200V360z"],
    +  "staylinked": [440, 512, [], "f3f5", "M201.6 127.4c4.1-3.2 10.3-3 13.8.5l170 167.3-2.7-2.7 44.3 41.3c3.7 3.5 3.3 9-.7 12.2l-198 163.9c-9.9 7.6-17.3.8-17.3.8L2.3 314.6c-3.5-3.5-3-9 1.2-12.2l45.8-34.9c4.2-3.2 10.4-3 13.9.5l151.9 147.5c3.7 3.5 10 3.7 14.2.4l93.2-74c4.1-3.2 4.5-8.7.9-12.2l-84-81.3c-3.6-3.5-9.9-3.7-14-.5l-.1.1c-4.1 3.2-10.4 3-14-.5l-68.1-64.3c-3.5-3.5-3.1-9 1.1-12.2l57.3-43.6m14.8 257.3c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7"],
    +  "steam": [496, 512, [], "f1b6", "M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z"],
    +  "steam-square": [448, 512, [], "f1b7", "M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"],
    +  "steam-symbol": [448, 512, [], "f3f6", "M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z"],
    +  "sticker-mule": [576, 512, [], "f3f7", "M353.1 509.8c-5.9 2.9-32.1 3.2-36.5-.5-4.1-3-2.2-11.9-1.5-15 2.2-15-2.5-7.9-9.8-11.5-3.1-1.5-4.1-5.5-4.6-10-.5-1.5-1-2.5-1.5-3.5-1.7-10.7 6.8-33.6 8.2-43.4 4.9-23.7-.7-37.2 1.5-46.9 3.7-16.2 4.1-3.5 4.1-29.9-1.4-25.9 3.3-36.9.5-38.9-14.8 0-64.3 10.7-112.2 2-46.1-8.9-59.4-29-65.4-30.9-10.3-4.5-23.2.5-27.3 7-.1.1-35 70.6-39.6 87.8-6.2 20.5-.5 47.4 4.1 66.8 0 .1 4.5 14.6 10.3 19.5 2.1 1.5 5.1 2.5 7.2 4.5 2.8 2.7 9.4 15.2 9.8 16 2.6 4.5 3.6 8-1.5 10.5-3.6 2-9.3 2.5-14.4 2.5-2.6.5-1.5 3.5-3.1 5-2.9 2.8-20.7 6.1-29.9 2.5-2.6-1-5.7-3-6.2-5-1.5-4 2.1-9-1-12.5-4.5-2.9-13.1-2-17-12-2.2-5.4-2.6-7.6-2.6-49.4 0-9.7-5.9-38.7-8.2-46.9-1.5-5.5-1.5-11.5 0-16 .3-.9 4.1-4.6 4.1-13-1-1.5-4.6-.5-5.1-1.5-10.4-80.6-5.9-79-7.7-98.3-1.5-16-10.9-43.9-6.7-64.3.5-2.4 3.4-21 24.2-38.9 31-26.7 48.4-38.3 159-11.5 1.1.4 66.3 21.1 110.7-9 15.5-11.3 28.8-11.3 35.5-16 .1-.1 61.7-52.1 87-65.3 47.2-29.4 69.9-16.7 75.1-18 4.7-1 13.4-25.8 17-25.8 5.5 0 1.6 20.2 3.6 25.9.5 2 3.6 5 6.2 5 2.3 0 1.7-.8 10.3-5 8.4-5.4 14.9-17.6 20.6-17 11.7 1.6-19 41.6-19 46.9 0 2 .2.8 4.6 9.5 2.6 5.5 4.6 13.5 6.2 20 8.3 29.7 5.7 14.6 13.4 36.9 20.2 50.1 20.6 45.2 20.6 52.9 0 7.5-4.1 11-7.2 16.5-1.5 3-4.6 7.5-7.2 8-2.7.7 7-1.5-13.4 2.5-7.2 1-13.4-4.5-14.9-9.5-1.6-4.7 2.8-10.1-11.8-22.9-10.3-10-21.1-11.3-31.9-17-9.8-5.7-11.9 1-18 8-18 22.9-34 46.9-52 69.8-11.8 15-24.2 30.4-33.5 47.4-3.9 6.8-9.5 28.1-10.3 29.9-6.2 17.7-5.5 25.8-16.5 68.3-3.1 10-5.7 21.4-8.7 32.4-2.2 6.8-7.4 49.3-.5 59.4 2.1 3.5 8.7 4.5 11.3 8 .1.1 9.6 18.2 9.3 20 0 6.1-9.4 5.6-11.3 6.5-4.8 2.9-3.8 5.9-6.4 7.4"],
    +  "strava": [369, 512, [], "f428", "M301.6 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220h-67.6zM151.4 0L0 292h89.2l62.2-116.1L213.1 292h88.5L151.4 0z"],
    +  "stripe": [640, 512, [], "f429", "M640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9m-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4h-45.9zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7m-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8M346.4 124v36.2l-44.6 9.5v-36.2l44.6-9.5m-44.5 59.2h44.6v153.2h-44.6V183.2zm-47.8 13.1c10.4-19.1 31.1-15.2 37.1-13.1V224c-5.7-1.8-23.4-4.5-33.9 9.3v103.1H213V183.2h38.4l2.7 13.1m-89-13.1h33.7V221h-33.7v63.2c0 26.2 28 18 33.7 15.7v33.8c-5.9 3.2-16.6 5.9-31.2 5.9-26.3 0-46.1-17-46.1-43.3l.2-142.4 43.3-9.2.1 38.5zM44.9 228.3c0 20 67.9 10.5 67.9 63.4 0 32-25.4 47.8-62.3 47.8-15.3 0-32-3-48.5-10.1v-40c14.9 8.1 33.9 14.2 48.6 14.2 9.9 0 17-2.7 17-10.9 0-21.2-67.5-13.2-67.5-62.4 0-31.4 24-50.2 60-50.2 14.7 0 29.4 2.3 44.1 8.1V230c-13.5-7.3-30.7-11.4-44.2-11.4-9.3.1-15.1 2.8-15.1 9.7"],
    +  "stripe-s": [362, 512, [], "f42a", "M144.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C287.3 7.2 240.1 0 192.8 0 77.1 0 0 60.4 0 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5c53 22.8 106.8 32.4 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9"],
    +  "studiovinari": [512, 512, [], "f3f8", "M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"],
    +  "stumbleupon": [512, 512, [], "f1a4", "M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z"],
    +  "stumbleupon-circle": [496, 512, [], "f1a3", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"],
    +  "superpowers": [448, 512, [], "f2dd", "M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"],
    +  "supple": [640, 512, [], "f3f9", "M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"],
    +  "teamspeak": [511, 512, [], "f4f9", "M.82 237.82c2.36-15.52 10.69-27.04 24.88-34.03 3.5-1.85 5.65-3.5 6.37-7.81 6.17-33.41 19.53-63.94 39.37-91.59 2.36-3.19 4.01-5.35 1.03-9.35-3.7-5.35-1.03-10.18 2.98-14.49 28.06-31.87 61.88-55.1 101.98-67.44 95.81-29.4 180.1-9.35 252.37 60.45 6.68 6.37 15.52 12.85 6.99 24.36-1.34 1.85 1.03 3.5 2.16 5.04 20.66 28.06 34.23 59.42 40.4 93.65.82 3.7 2.98 5.04 5.86 6.37 17.37 8.84 25.7 23.34 26.01 42.25 0 17.17 1.85 34.54-1.03 51.71-4.01 24.67-29.19 41.74-53.25 36.7-7.2-1.64-9.35-7.2-9.35-14.19 0-28.06.82-56.44 0-84.6-1.85-75.76-36.18-132.81-102.28-169.41C234.28 4.98 92.11 72.42 67.54 196.91c-6.06 30.42-1.74 48.27-3.7 125.82-.31 7.2-4.32 11.2-12.03 11.51C20.97 335.58 0 316.05 0 285.21v-20.87m221.74 106.81c11.82-4.32 20.05-11.82 22.51-24.36 2.36-12.34-12.03-30.02-32.38-48.73-20.87-19.22-48.22-39.06-63.43-46.57-21.69-12.03-41.74-1.85-46.26 22.72-5.04 26.21 0 51.4 14.49 73.91 10.18 15.52 25.39 22.72 43.38 24.05 11.62.62 52.54 2.16 61.69-1.02m129.83 5.55c36.5 2.81 59.33-28.55 58.39-60.45-2.14-45.17-66.17-16.48-87.79-8.02-73.16 28.14-45.05 54.92-22.2 60.75m149.26-1.33c-2.98-2.36-7.2-1.03-8.33 2.36-8.02 25.39-44.72 112.46-172.08 121.51-149.67 10.49 80.29 43.59 145.36-6.37 22.72-17.37 47.6-35.05 46.57-85.43-.32-10.07-4.84-26.72-11.52-32.07"],
    +  "telegram": [496, 512, [], "f2c6", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"],
    +  "telegram-plane": [448, 512, [], "f3fe", "M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"],
    +  "tencent-weibo": [384, 512, [], "f1d5", "M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z"],
    +  "the-red-yeti": [505, 512, [], "f69d", "M484.41 241.74l20.66 7.13c-9.56-23.91-23.93-36.96-31.72-44.76l7.13-18.2c.25 0 12.28-27.79-2.46-30.74-.63-11.35-6.59-27.05-18.44-27.05-7.62-10.57-17.71-12.3-30.74-5.9-8.85 4.18-17.71 10.08-25.33 16.48-5.3-6.44-2.95.38-2.95-29.76-37.08-24.28-45.4-11.73-74.76 2.95l.49.49c-21.15-7.62-44.02-12.05-68.36-13.28-5.55-8.71-18.6-19.1-25.08-25.08l24.84 7.13c-5.49-5.49-26.78-12.91-34.18-15.25 18.2-4.11 29.78-20.77 42.54-32.95-34.92-10.08-67.87-5.9-97.88 11.8L179.97.48 178.24 0c-31.6 24.16-32.99 41.9-33.69 45.49-.91-2.39-6.32-19.61-15.25-27.05-3.44 8.85-3.44 17.21-.49 25.33 2.95 8.36 5.9 14.76 8.36 18.94-16.04-3.3-28.35-4.9-49.18 0H84.3l32.95 14.26c-20.66 19.43-35.9 41.81-46.72 67.38l-1.72 8.36 1.72 1.72 7.62-4.67c-3.33 11.64-5.27 19.39-6.64 25.82-11.31 12.79-20.41 26.07-27.79 40.33-14.97 1-31.82 10.78-40.33 14.26l2.95 3.44 28.77.98c-.49.98-.74 2.21-1.23 3.2-7.29 6.38-39.78 37.65-32.95 80.66l20.17-22.38c.49 1.72.74 3.44 1.23 5.16 0 25.53.37 89.64 64.92 150.5 43.78 40.1 96.16 60.27 157.64 60.27 121.73 0 223.05-87.29 223.05-211.49 6.8-9.72-1.24 3.03 16.72-25.08l13.03 14.26 2.46-.49c-1.72-11.31-4.67-22.38-8.85-34.18-2.22-6.4-4.68-10.33-6.89-13.28zm-15.49-41.32l-14.26-11.8 18.2-1.23-3.94 13.03zm-74.76-89.27l-.49 21.89c5.52 18.13 16.88 17.21 22.38 17.21l-3.44-4.67 22.38-5.41c-10.08.49-18.94.49-27.05 0 12.81-2.13 33.32-29.03 43.04-11.31 3.44 7.62 6.39 17.21 9.34 27.79l1.72-5.9c-1.23-4.18-1.72-9.34-1.72-15.25 5.41.49 8.85 3.44 9.34 10.08.49 6.39 1.72 14.76 3.44 25.33l4.67-11.31c4.59 0 4.47-3.61-2.46 20.66-20.89-8.7-35.09-8.36-46.48-8.36l18.2-15.98c-25.28 8.15-33.03 10.8-54.84 20.9-1.08-5.41-4.98-13.5-15.98-19.92-3.18 3.82-2.76.9-.74 14.76h-2.46c-1.23-8.36-4.18-15.98-8.36-23.12l4.18-3.44c8.36-7.13 11.8-14.26 10.57-21.89-.49-6.39-5.41-13.53-13.53-20.66 5.66-3.2 15.25-.25 28.29 8.6zm-39.59-10.08c2.69 1.92 11.4 5.38 18.94 17.21 4.2 8.4 3.98 9.81 3.44 11.07-.48 2.41-.46 4.33-2.95 7.13-1.72 2.46-5.41 4.67-11.8 7.62-7.62-13.03-16.48-23.61-27.79-31.23l20.16-11.8zM87.25 143.12l1.23-1.72c1.23-2.95 4.18-7.62 9.34-15.25l2.46-3.44-13.03 12.3 5.41-4.67-10.08 9.34-4.18 1.23c12.3-24.1 23.12-41.31 32.46-50.17 9.34-9.34 15.98-15.98 20.17-19.43l-6.39 1.23c-11.31-4.18-19.43-7.13-24.84-8.36 2.46-.49 3.69-.49 3.2-.49 10.33 0 17.46.49 20.9 1.23 5.41 1.72 10.57 2.46 15.98 2.46l.49-1.72-8.36-35.9 13.53 29.02c1.72-2.46 4.18-7.13 5.9-14.26 1.72-6.39 5.41-13.03 10.08-19.43 4.67-6.39 7.62-10.57 9.34-11.31-2.95 8.85-4.67 17.21-6.39 25.33l-1.72 7.13-.49 4.67 2.46 2.46c21.89-13.53 45.49-19.43 71.32-18.94l21.15.49c-11.8 13.53-27.79 21.89-48.45 24.84-8.61 1.48-16.23 2.46-23.36 2.95l-.25-.49-2.46-1.23c-5.16-.98-9.84-.25-14.02 1.97-2.46-.25-4.92-.49-7.13-.74l-2.46 1.72.49 1.23c1.97.25 3.93.49 6.15.74l-1.97 3.44 3.44-.49-10.57 11.31c-4.18 2.95-5.41 6.39-4.18 9.34l5.41-3.44h1.23c6.39-8.36 15.25-13.53 25.33-15.25v-2.95c6.39.49 13.03.98 19.43 1.23 6.39 0 8.36.49 5.41 1.23 7.62 4.18 14.26 8.85 20.66 13.53 13.53 10.08 23.61 21.89 30 35.41 8.85 18.2 13.53 37.13 13.53 56.56 0 10.08-1.23 19.43-2.95 28.28-2.35 10.79-7.8 29.62-15.98 45.99l2.46.49c18.23-19.67 41.9-15.98 49.18-15.98l-6.39 5.9 22.38 17.71-1.72 30.74c-5.41-12.3-16.48-21.15-32.95-27.79 16.48 14.76 23.61 21.15 21.89 20.17-4.81-2.81-3.53-1.87-10.82-3.69 4.12 4.12 17.45 18.79 18.2 20.66l.25.25-.25.25c0 1.76 1.56-1.18-14.02 22.87-75.15-15.31-106.26-42.74-141.16-63.2l11.8 1.23c-11.75-18.53-15.63-17.72-38.36-26.07l10.57-8.36c-8.85-2.95-18.2-2.95-28.28.49l7.62-10.57-1.23-1.72c-14.89 4.34-19.85 9.17-22.62 11.31-1.14-5.46-2.77-12.44-12.3-28.77l-1.23 27.05-13.53-5.41c1.47-25.11 5.4-50.44 13.27-74.54zm276.41 330.03c-49.92 24.96-56.13 22.41-59.02 23.85-29.76-11.8-50.9-31.72-63.45-58.77l30 16.48c-9.77-9.31-18.34-16.54-38.36-44.27l11.8 23.12-17.71-7.62c14.2 21.08 23.47 51.74 66.64 73.53-120.77 24.15-199.03-72.11-200.91-74.27 11.31 9.34 23.12 17.71 35.41 24.84 3.44 1.72 7.13 2.46 10.08 1.23l-15.98-20.66c9.23 4.19 9.49 4.5 69.1 29.02-42.54-20.66-73.78-40.82-93.2-60.25-.49 6.39-1.23 10.08-1.23 10.08 8.85 7.62 15.98 16.48 20.66 26.56-39.05-18.85-57.59-47.61-71.32-82.63 49.89 55.1 118.85 37.49 120.5 37.13 34.79 16.43 69.87 23.61 113.86 10.57 3.32 0 20.3 16.98 25.33 39.1l4.18-2.95-2.46-23.61c8.95 8.95 24.9 22.56 34.43 13.03-15.58-5.32-23.52-9.49-29.51-31.72 4.58 4.2 7.57 9.05 27.79 15l1.23-1.23-10.57-14.26c11.65-4.85-3.54 1.01 31.97-10.82 4.34 34.23 9.05 49.15.74 89.52zM479 258.71l-2.46.49 2.95 9.34c-3.55 5.87-23.73 44.26-71.56 79.68-39.54 29.76-76.58 39.13-80.91 40.33l-7.62-7.13-1.23 2.95 14.26 15.98-7.13-4.67 3.44 4.18h-1.23l-21.89-13.53 9.34 26.56-18.94-27.79-1.23 2.46 7.62 29.02c-6.11-8.24-21.03-32.61-56.81-39.59l32.46 21.15c-31.97 4.67-63.2 2.46-93.2-6.39-4.18-1.23-8.85-2.46-13.53-4.18l1.23-2.95-44.76-22.38 26.07 22.38c-57.66 9.08-112.96-25.41-126.4-83.37l-2.46-16.48-22.35 22.38c19.47-57.51 25.61-57.89 51.4-70.09-9.09-5.33-1.55-3.26-38.36-9.34 15.78-5.79 33.05-15.44 73.04 5.16 2.95-1.48 2.14-1.1 3.69-1.72.64-3.18.41-.82.98-11.8 3.89 10.01 3.63 8.67 2.95 9.34l1.72.49c12.69-6.49 8.92-4.52 16.97-8.85l-5.41 13.53 22.38-5.9-8.36 8.36 2.46 2.46c4.5-1.8 30.35 3.42 40.82 15.98l-23.61-2.46c39.39 22.98 51.46 53.97 55.82 69.59l1.72-1.23c-2.84-22.28-12.37-33.88-15.98-40.08 4.22 4.99 39.2 34.56 110.42 45.99-11.31-.49-23.12 5.41-34.92 18.94l46.72-20.17-9.34 21.89c7.62-10.08 14.76-23.61 21.15-39.59v-.49l1.23-2.95-1.23 15.98c13.53-41.81 25.33-78.45 35.41-109.68l13.53-27.79v-1.97l-5.41-4.18h10.08l5.9 4.18 2.46-1.23-3.44-15.98 12.3 18.94 41.81-20.17-14.76 13.03.49 2.95 17.71-.49c11.31.49 21.89 1.72 32.95 4.18l-23.61 2.46-1.23 2.95 26.56 23.12c10.08 10.08 18.94 20.66 27.05 31.97-11.24-3.29-10.28-3.44-21.15-3.44l12.3 32.46-8.87-12.79zm-277.89-89.03c-34.85 14.42-34.73 13.98-36.15 14.26-20.83 4.73-18.97-24.44-18.94-24.84l5.9-1.23-.49-2.46c-20.17-2.65-31.03 4.17-32.46 4.92.49.49 2.95 3.44 5.9 9.34 4.18-6.39 8.85-10.08 15.25-10.57-1.72 11.31-1.23 22.38 1.72 33.69.07.51 2.57 17.44 27.54 24.1 11.31 2.95 27.05 1.23 48.94-5.41l-9.34.49c-4.18-14.76-6.39-24.84-5.9-29.51 11.31-8.85 21.89-11.31 30.74-7.62h2.46l-11.8-7.62-7.13.49c-5.9 1.23-12.3 4.18-19.43 8.36l3.19-6.39zm11.07-86.81l-2.46.49.49 2.95c8.36-.49 17.21 1.23 26.07 5.9-2.5-5.54-9.97-14.26-28.28-14.26l.49 2.46 3.69 2.46zm-67.14 56.07c-4.04-6.35-3.09-5.05-4.67-6.64 21.69 16.76 16.48 21.41 46.48 23.61l-2.95-4.67c8.85-7.62 13.53-17.21 14.76-28.28 1.72-15.98-1.23-29.51-8.85-41.31l13.03-7.62c0-.49 0-1.23-.49-1.72-4.67-1.72-9.34-1.23-13.53 1.72-12.68 6.67-27.99 20.94-29.02 22.38-1.72 1.72-3.44 5.9-5.41 13.53-1.72 7.13-2.95 14.76-2.95 23.61-4.68-7.96-10.52-6.4-19.92-5.9l7.13 7.62c-16.47 0-23.32 15.43-23.61 15.98 6.81-.01 4.6-7.6 30-12.31zm14.02-25.33c1.23-7.62 3.44-13.03 6.39-17.21 5.41-6.39 10.57-10.08 15.98-11.8 4.18-1.72 7.13 1.23 10.08 9.34 2.46 7.62 3.44 16.48 2.95 25.33-.49 9.34-3.44 17.21-8.36 23.12-2.95 3.44-5.41 5.9-6.39 7.62-4.67.49-8.36 0-11.31-.49l-7.13-3.44-5.41-6.39c.99-10.09 1.48-18.94 3.2-26.08zm62.71-21.39c-6.39-3.44-10.57 2.95-12.3 18.94s2.46 29.51 11.8 39.59c9.34 10.08 18.2 10.57 26.07 2.95 7.87-7.62 3.44-23.61-11.31-47.71-3.19-5.41-7.87-10.08-14.26-13.77zm-4.67 46.23c5.36 2.23 10.51 1.91 12.3-10.57v-4.67l-1.23.49c-4.28-3.05-2.55-4.49-1.72-6.15l.49-.49c-.88-1.23-5.02-8.11-12.54 4.67-.49-13.53.49-21.89 2.95-24.84 1.23-2.46 4.67-1.23 11.31 4.18 6.39 5.41 11.31 15.98 15.25 32.46 6.59 28.06-19.7 26.26-26.81 4.92zm-45.01-5.41c1.57.31 9.34-1.09 9.34-14.76h-.49c-5.44-1.09-2.24-5.47-.74-5.9-1.72-2.95-3.44-4.18-5.41-4.67-8.15 0-11.65 12.66-8.12 21.15 1.24 2.46 3.21 3.69 5.42 4.18zm45.99 61.48c1.72 10.57 4.67 17.71 8.85 21.89-9.26 6.61-27.54 13.85-46.48 15.98l.49 1.23c8.36 1.23 16.48.49 24.84-2.46l-7.13 13.03c4.18-1.72 10.08-7.13 17.71-14.76 11.93-5.51 12.72-5.07 20.17-15.98-12.73-6.58-15.76-13.83-18.45-18.93z"],
    +  "themeco": [441, 512, [], "f5c6", "M199.74 12.29c9.74-5.64 25.59-5.73 35.39-.21l188.13 105.95c9.81 5.52 17.76 19.14 17.76 30.38v213.87c0 11.26-7.93 24.89-17.71 30.46L235.09 499.88c-9.78 5.57-25.58 5.48-35.29-.21L17.58 392.95C7.87 387.26 0 373.52 0 362.27V148.41c0-11.26 7.9-24.96 17.63-30.59L199.74 12.29zM123.54 209c-15.69 0-31.39.14-47.08.14v99.87h18.83v-29.39h28.25c48.94 0 48.79-70.62 0-70.62zm137.96 98.73l-30.25-34.1c36.4-7.39 34.26-64.21-10.7-64.49-15.84 0-31.67-.14-47.51-.14v100.01h18.83v-33.38H210l29.1 33.38h22.4v-1.28zm-40.94-81.04c22.98 0 22.9 31.96 0 31.96h-28.68v-31.96h28.68zm-94.07-1.57c20.85 0 20.78 38.24 0 38.24H94.68v-38.23l31.81-.01zm189.65-17.97c-67.4 0-69.86 104.15 0 104.15 68.39-.01 68.33-104.15 0-104.15zm0 17.12c43.43 0 44.1 69.76 0 69.76-44.12 0-43.74-69.76 0-69.76z"],
    +  "themeisle": [512, 512, [], "f2b2", "M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z"],
    +  "trade-federation": [496, 512, [], "f513", "M202.45 108.42v81.61H38.94l48.22 61.91h114.73v196.75h64.61V252.96h83.27v-62.69h-83.18V171.1h145.62v-62.68H202.45zm4.86 6h197.77v50.68H259.44v30.93h83.18v50.93h-83.26v195.73h-52.73V245.94H89.86l-39.95-49.91h157.4v-81.61zM247.99 8.8C111.03 8.8 0 119.83 0 256.8s111.03 248 247.99 248S496 393.76 496 256.8 384.96 8.8 247.99 8.8zm.02 13.24c129.66 0 234.76 105.12 234.76 234.78s-105.1 234.76-234.76 234.76S13.23 386.47 13.23 256.81 118.35 22.04 248.01 22.04zm0 7.89c-125.3 0-226.89 101.57-226.89 226.87s101.59 226.89 226.89 226.89S474.88 382.1 474.88 256.8 373.31 29.93 248.01 29.93zm-.02 13.3c117.95 0 213.56 95.62 213.56 213.56s-95.62 213.56-213.56 213.56S34.43 374.75 34.43 256.8 130.04 43.23 247.99 43.23zm-73.32 104.8l15.66 18.05-22.16-9.45-12.33 20.47 2.15-23.99-23.28-5.4 23.48-5.37-2.06-23.81 12.37 20.67 22.01-9.32-15.84 18.15zm-47.14-46.54l8.01 12.4 12.69-5.86-9.32 11.45 9.5 10.25-13.77-5.32-6.82 12.2.81-14.74-13.71-2.71 14.27-3.78-1.66-13.89zm250.77 75.59l11.99 19.56 20.88-9.11-14.9 17.45 15.11 17.04-21.2-8.78-11.54 19.64 1.8-22.87-22.24-4.9 22.31-5.36-2.21-22.67zm-107.05 98.45l13.86-3.22-1.28-14.17 7.35 12.18 13.08-5.59-9.31 10.75 9.36 10.71-13.1-5.54-7.29 12.21 1.22-14.17-13.89-3.16zm-125.43 6.5l23.73-3.87-1.73-24.53 11.01 21.38 22.79-9.22-16.93 17.08 15.81 18.83-21.47-10.82-13.02 20.86 3.66-23.77-23.85-5.94zm63.44-165.66v81.61H54.16l36.72 46.01h117.7v196.75h48.82V245.01h83.27v-47.03H257.4v-34.83h145.73v-46.78H209.26zm10.86 11.2h171.8v24.36H246.88v56.23h82.93v23.94h-82.93v197.42h-26.76V232.1H96.31l-20.09-23.94h143.9v-80.59z"],
    +  "trello": [448, 512, [], "f181", "M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zM194.9 371.4c0 14.8-12 26.9-26.9 26.9H85.1c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9H168c14.8 0 26.9 12 26.9 26.9v254.3zm194.9-112c0 14.8-12 26.9-26.9 26.9H280c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v142.3z"],
    +  "tripadvisor": [576, 512, [], "f262", "M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z"],
    +  "tumblr": [320, 512, [], "f173", "M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"],
    +  "tumblr-square": [448, 512, [], "f174", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z"],
    +  "twitch": [448, 512, [], "f1e8", "M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z"],
    +  "twitter": [512, 512, [], "f099", "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"],
    +  "twitter-square": [448, 512, [], "f081", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"],
    +  "typo3": [433, 512, [], "f42b", "M330.8 341c-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9 0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C0 246 106.8 480 184.1 480c36.3 0 97.3-59.5 146.7-139M294.5 32c71.8 0 138.8 11.6 138.8 52.5 0 82.6-52.5 182.3-78.8 182.3-47.9 0-101.7-132.1-101.7-198.5 0-30.9 11.6-36.3 41.7-36.3"],
    +  "uber": [448, 512, [], "f402", "M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"],
    +  "uikit": [448, 512, [], "f403", "M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"],
    +  "uniregistry": [384, 512, [], "f404", "M281.1 220.1H384v-14.8H281.1v14.8zm0-37.1H384v-12.4H281.1V183zm0 74.2H384v-17.3H281.1v17.3zm-157.7 86.7H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8m145.7-12.4h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3m-41.5 37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8M384 32H281.1v2.5H384V32zM192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480m89.1-334.2H384V136H281.1v9.8zm0-37.1H384v-7.4H281.1v7.4zm0-37.1H384v-4.9H281.1v4.9zm-178.2 99H0V183h102.9v-12.4zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2m64.1-118.8v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4m178.2 0c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1v12.4zm-203 156h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7m24.8-376.2H0v4.9h102.9v-4.9zm0-34.7H0v2.5h102.9V32zm0 173.3H0v14.8h102.9v-14.8zm0 34.6H0v17.3h102.9v-17.3zm0-103.9H0v9.9h102.9V136zm0-34.7H0v7.4h102.9v-7.4zm2.8 207.9H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3"],
    +  "untappd": [640, 512, [], "f405", "M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"],
    +  "usb": [640, 512, [], "f287", "M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"],
    +  "ussunnah": [512, 512, [], "f407", "M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z"],
    +  "vaadin": [448, 512, [], "f408", "M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"],
    +  "viacoin": [384, 512, [], "f237", "M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z"],
    +  "viadeo": [448, 512, [], "f2a9", "M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"],
    +  "viadeo-square": [448, 512, [], "f2aa", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z"],
    +  "viber": [512, 512, [], "f409", "M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"],
    +  "vimeo": [448, 512, [], "f40a", "M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"],
    +  "vimeo-square": [448, 512, [], "f194", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z"],
    +  "vimeo-v": [448, 512, [], "f27d", "M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"],
    +  "vine": [384, 512, [], "f1ca", "M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"],
    +  "vk": [576, 512, [], "f189", "M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z"],
    +  "vnv": [640, 512, [], "f40b", "M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z"],
    +  "vuejs": [448, 512, [], "f41f", "M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z"],
    +  "weebly": [512, 512, [], "f5cc", "M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z"],
    +  "weibo": [512, 512, [], "f18a", "M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"],
    +  "weixin": [576, 512, [], "f1d7", "M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z"],
    +  "whatsapp": [448, 512, [], "f232", "M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"],
    +  "whatsapp-square": [448, 512, [], "f40c", "M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"],
    +  "whmcs": [448, 512, [], "f40d", "M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"],
    +  "wikipedia-w": [640, 512, [], "f266", "M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z"],
    +  "windows": [448, 512, [], "f17a", "M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"],
    +  "wix": [640, 512, [], "f5cf", "M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z"],
    +  "wizards-of-the-coast": [640, 512, [], "f730", "M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z"],
    +  "wolf-pack-battalion": [456, 512, [], "f514", "M239.73 471.53l10.56 15.84 5.28-12.32 5.28 7.04V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05 27.87 3.34 53.94 10.58 63.34 54.1l-30.35 8.36c11.15 23.04 17.01 46.76 13.2 72.14L384 313.18l-6.16 33.43-18.47-7.04-8.8 33.43-19.35-7.04 26.39 21.11 8.8-28.15 24.63 5.28 7.04-35.63 26.39 14.52c.25-20.02 6.97-58.06-8.8-84.45l26.39 5.28c3.99-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 1.96-19.87 17.45-42.62 43.11-49.7-43.99 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.47 22.87-89.73 65.1-93.25 147.79l-58.06 38.71-3.52 93.25 107.33-59.82 7.04 7.04-17.59 3.52-43.99 38.71-15.84-5.28-28.15 49.26-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-43.99-38.71-17.59-3.52 7.04-7.04 107.33 59.82-3.52-93.25-58.06-38.71C157.03 65.1 107.77 22.87 67.3 0c-17.54 61.12-4.4 118.76 0 130.2 14.96-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9C29.94 160.06.44 191.78 0 216.85l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7.04 35.63 24.63-5.28 8.8 28.15 26.39-21.11-19.34 7.05-8.8-33.43-18.47 7.04-6.16-33.43-27.27 7.04c-3.82-25.38 2.05-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.91l5.28-7.04 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95.01l-15.84-10.56c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.26-.27 13.88-3.51 22.88zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7.04 8.24-7.9 15.55-16.27 22.87-24.63zm24.63 5.28c-.02-13.43-2.05-24.21-5.28-33.43-5.38 9.09-11.23 18.18-18.47 27.27l23.75 6.16zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-11.99 6.65-28.14 7.04-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 43.99-14.08-10.6-18.95-27.22-25.52-45.75-28.15zM137.68 376.52l15.84-10.56c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7.04-8.24-7.9-15.55-16.27-22.87-24.63zm-24.64 5.28c.02-13.43 2.05-24.21 5.28-33.43 5.38 9.09 11.23 18.18 18.47 27.27l-23.75 6.16zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 36.95-10.56-5.05-11.99-6.65-28.14-7.04-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-43.99-14.08 10.61-18.95 27.22-25.52 45.75-28.15z"],
    +  "wordpress": [512, 512, [], "f19a", "M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"],
    +  "wordpress-simple": [512, 512, [], "f411", "M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"],
    +  "wpbeginner": [512, 512, [], "f297", "M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z"],
    +  "wpexplorer": [512, 512, [], "f2de", "M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"],
    +  "wpforms": [448, 512, [], "f298", "M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z"],
    +  "xbox": [512, 512, [], "f412", "M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"],
    +  "xing": [384, 512, [], "f168", "M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"],
    +  "xing-square": [448, 512, [], "f169", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z"],
    +  "y-combinator": [448, 512, [], "f23b", "M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z"],
    +  "yahoo": [448, 512, [], "f19e", "M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z"],
    +  "yandex": [256, 512, [], "f413", "M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z"],
    +  "yandex-international": [320, 512, [], "f414", "M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z"],
    +  "yelp": [384, 512, [], "f1e9", "M136.9 328c-1 .3-109.2 35.7-115.8 35.7-15.2-.9-18.5-16.2-19.9-31.2-1.5-14.2-1.4-29.8.3-46.8 1.9-18.8 5.5-45.1 24.2-44 4.8 0 67.1 25.9 112.7 44.4 17.1 6.8 18.6 35.8-1.5 41.9zm57.9-113.9c1.8 38.2-25.5 48.5-47.2 14.3L41.3 60.4c-1.5-6.6.3-12.4 5.3-17.4C62.2 26.5 146 3.2 168.1 8.9c7.5 1.9 12.1 6.1 13.8 12.6 1.3 8.3 11.5 167.4 12.9 192.6zm-1.4 164.8c0 4.6.2 116.4-1.7 121.5-2.3 6-7 9.7-14.3 11.2-10.1 1.7-27.1-1.9-51-10.7-22-8.1-56.7-21.5-49.3-42.5 2.8-6.9 51.4-62.8 77.3-93.6 12-15.2 39.8-5.5 39 14.1zm180.2-117.8c-5.6 3.7-110.8 28.2-118.1 30.6l.3-.6c-18.1 4.7-35.4-18.5-23.3-34.6 3.7-3.7 65.9-92.4 72.8-97 5.2-3.6 11.3-3.8 18.3-.6 18.4 8.8 55.1 63.1 57.4 84.6-.1 2.9 1.2 11.7-7.4 17.6zm10.1 130.7c-2.7 20.6-44.5 73.4-63.8 81-6.9 2.6-12.9 2-17.7-2-5-3.5-61.8-97.1-64.9-102.3-10.9-16.2 6.8-39.8 25.6-33.2 0 0 110.5 35.7 114.7 39.4 5.2 4.1 7.2 9.8 6.1 17.1z"],
    +  "yoast": [448, 512, [], "f2b1", "M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z"],
    +  "youtube": [576, 512, [], "f167", "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"],
    +  "youtube-square": [448, 512, [], "f431", "M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z"],
    +  "zhihu": [640, 512, [], "f63f", "M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z"]
    +};
    +
    +bunker(function () {
    +  define('fab', icons);
    +});
    +
    +}());
    diff --git a/htdocs/theme/common/fontawesome-5/js/brands.min.js b/htdocs/theme/common/fontawesome-5/js/brands.min.js
    new file mode 100644
    index 00000000000..fe2c88f3b7b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/brands.min.js
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +!function(){"use strict";var c={};try{"undefined"!=typeof window&&(c=window)}catch(c){}var z=(c.navigator||{}).userAgent,l=void 0===z?"":z,h=c,v=(~l.indexOf("MSIE")||l.indexOf("Trident/"),"___FONT_AWESOME___"),m=function(){try{return!0}catch(c){return!1}}(),M=[1,2,3,4,5,6,7,8,9,10],s=M.concat([11,12,13,14,15,16,17,18,19,20]);["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter"].concat(M.map(function(c){return c+"x"})).concat(s.map(function(c){return"w-"+c}));var H=h||{};H[v]||(H[v]={}),H[v].styles||(H[v].styles={}),H[v].hooks||(H[v].hooks={}),H[v].shims||(H[v].shims=[]);var f=H[v],V=Object.assign||function(c){for(var z=1;z<arguments.length;z++){var l=arguments[z];for(var h in l)Object.prototype.hasOwnProperty.call(l,h)&&(c[h]=l[h])}return c};var e={"500px":[448,512,[],"f26e","M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"],"accessible-icon":[448,512,[],"f368","M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"],accusoft:[640,512,[],"f369","M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2.7 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2 23.4-2.4 1.3-114.6 47.7-117.8 48.9-10.1 4-17.5 6.8-30.8-9.3m114.7-5.6s-115 50.4-117.5 51.6c-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2-2.3-.3-24.6-4.7-38-7.2m-326-181.3s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3v-1l-51.2-65.8"],"acquisitions-incorporated":[344,512,[],"f6af","M344 0c-.81 5.47-1.63 10.79-2.39 16.12-1.39 9.74-2.9 19.48-4.05 29.25-.35 2.96-1.21 4.32-4.3 4.33-20.61.11-41.21.14-61.82.53-18.76.35-37.58.28-56.23 2-13.42 1.24-23.28 12.67-18.88 26.64 8.55 27.11 27.65 69.1 36.37 89.45 65.72 154.14 61.43 156.99 84 158.56 6.67.46 13.4.07 20.43.07 1.39 9.4 2.66 18.04 4.05 27.51H225.17v-27c10.33 0 20.36-.12 30.38.06 3.52.06 5.05-.63 3.44-4.37-4.44-10.29-8.77-20.63-13.25-30.9-1.62-3.72-4.06-4.78-8.4-3.52-12.32 3.59-24.79 6.69-37.26 9.69-4.25 1.02-5.93 2.77-5.86 7.46.85 57.47.95 127.53 1 129.12.4 12.54 8.75 21.41 21.03 23.07.89.12 12.89 2.72 112.68 2.56 8.25-.01 8.41-.17 9.57 7.56 2.15 14.34 4.14 28.7 6.26 43.53-367.75 0-153.93.61-337.09 0-3.95-.01-6.08-.69-5.28-5.74 2.04-12.86 3.5-25.82 4.97-38.76.55-4.81 2.29-6.81 7.63-6.77 118.09.99 114.93.35 121.43-2.39 9.42-3.98 14.98-12.85 14.95-23.07-.12-42.93-.33-85.86-.25-128.79.01-3.87-1.16-5.99-4.56-6.84-15.64-3.92-31.31-7.71-47.58-11.7-5.23 12.27-10.39 24.37-15.66 36.7 1.83 3.35 28.38 2.93 35.28 2.93v27.64H4.34c1.03-8.61 1.77-16.81 3.23-24.88.25-1.41 3.53-3.14 5.47-3.22 8.46-.35 16.95-.29 25.43-.09 3.99.09 5.92-1.04 7.61-5.16 16.63-40.7 13.51-31.17 67.31-160.97 31.53-76.09 33.06-76.02 32.64-87.43-.69-18.56-25.37-22.26-37.65-22.11-30.04.38-38.45-.47-101.84-.47C-.62 6.11 2.37 18.54.16 5.32-.55 1.08 1.19.03 4.8.02m113.08 247.19c2.3 1.15 3.97 2.29 5.82 2.87 13.29 4.21 26.64 8.24 39.93 12.46 6.14 1.95 11.98 2.12 18.3.05 13.02-4.28 26.29-7.81 39.43-11.73 1.46-.44 2.74-1.44 3.93-2.09-6.71-17.37-13.12-34.15-19.67-50.88-8.88-22.67-17.63-60.32-26.98-82.81-1.53-.78-1.91 2.36-9.43 0-17.11 44.05-34.14 87.88-51.33 132.13z"],adn:[496,512,[],"f170","M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"],adversal:[512,512,[],"f36a","M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"],affiliatetheme:[512,512,[],"f36b","M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"],algolia:[448,512,[],"f36c","M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z"],alipay:[448,512,[],"f642","M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"],amazon:[448,512,[],"f270","M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"],"amazon-pay":[611,512,[],"f42c","M0 325.2c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.7 20.4 83.2 35.6 127.4 46.3 20.9 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.4-6.7 110.9-20.8 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-2.8 2.8-6.3 5.1-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.6 7.9-49.6 13.8-75.1 17.6-17.6 2.6-35.4 4.4-53.2 4.8-.8 0-1.7.2-2.5.3H294c-.8-.1-1.7-.3-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.7-33.7-2.6-50.4-5.3-27.4-4.5-54.2-11.4-80.4-20.9-54.1-19.6-102.6-48.6-145.6-87-1.8-1.6-3-3.8-4.4-5.7v-2zM158 65c-1.4.2-2.9.4-4.3.6-14 1.7-26.6 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.5-.4-1-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6H87.8c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3V215c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zm-47.4 41.9c0-1.5.4-2.4 1.7-3.3 13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-1.2-.9-1.7-1.7-1.7-3.3.1-14.1 0-28.1 0-42.2 0-14 .1-28 0-42.1zM316.3 65c-1 .1-2 .3-2.9.4-9.8.5-19.4 1.7-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9 0 .4-.1.9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.5-21.1-4.3-32-4.9-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4.4-.4.9-.7 1.6-1.1.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0 2.7-.1 4.5-1.9 4.8-4.7.1-.9.1-1.9.1-2.8v-106c0-4.3-.2-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7c0 1.3-.4 2.2-1.5 3-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8-6.3-2.5-10.4-6.9-12.4-13.3s-2-13-.1-19.4c2.5-8.3 8.4-13 16.4-15.6 8.1-2.6 16.5-3 24.8-2.2 8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3-.1 4.7-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3-6.8-2.3-13.9-3.3-21-3.9-13.1-1.1-26.2-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 1-2.8 2.1-3.7 3.5-.7 1.1-.9 2.8-.5 4 .4 1.5 2.1 1.9 3.6 1.8.7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.8.3 9.7 1.4 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.7-.4 3.6-1.3 4.8-2.5 4.4-4.3 8.9-8.6 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM479.1 198.9c-12.9-35.7-25.8-71.5-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5.5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97.1 59.1 145.5 1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5.1 1.4-10.2 1.6-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9.1 5.5 2 8 7.4 8.9 5.6 1 11.3 1.9 16.9 2 17.1.4 30.7-6.5 39.5-21.4 3.5-5.9 6.7-12.1 9.2-18.4 23.7-59.8 47.1-119.7 70.6-179.6.7-1.8 1.3-3.6 1.6-5.5.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-3.7 0-6.3 1.6-7.7 5.2-.5 1.4-1.1 2.7-1.6 4.1-11.6 33.3-23.2 66.6-34.8 100-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"],amilia:[448,512,[],"f36d","M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm-87.9 327.7c0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5V380c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7"],android:[448,512,[],"f17b","M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z"],angellist:[448,512,[],"f209","M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"],angrycreative:[640,512,[],"f36e","M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"],angular:[415,512,[],"f420","M169.7 268.1h76.2l-38.1-91.6-38.1 91.6zM207.8 32L0 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7L207.8 32zM338 373.8h-48.6l-26.2-65.4H152.6l-26.2 65.4H77.7L207.8 81.5 338 373.8z"],"app-store":[512,512,[],"f36f","M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z"],"app-store-ios":[448,512,[],"f370","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"],apper:[640,512,[],"f371","M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z"],apple:[376,512,[],"f179","M314.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C59.3 141.2 0 184.8 0 273.5c0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"],"apple-pay":[640,512,[],"f415","M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z"],asymmetrik:[576,512,[],"f372","M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"],audible:[640,512,[],"f373","M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z"],autoprefixer:[640,512,[],"f41c","M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z"],avianex:[512,512,[],"f374","M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"],aviato:[640,512,[],"f421","M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"],aws:[640,512,[],"f375","M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z"],bandcamp:[496,512,[],"f2d5","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z"],behance:[576,512,[],"f1b4","M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z"],"behance-square":[448,512,[],"f1b5","M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z"],bimobject:[448,512,[],"f378","M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z"],bitbucket:[512,512,[],"f171","M23.1 32C14.2 31.9 7 38.9 6.9 47.8c0 .9.1 1.8.2 2.8L74.9 462c1.7 10.4 10.7 18 21.2 18.1h325.1c7.9.1 14.7-5.6 16-13.4l67.8-416c1.4-8.7-4.5-16.9-13.2-18.3-.9-.1-1.8-.2-2.8-.2L23.1 32zm285.3 297.3H204.6l-28.1-146.8h157l-25.1 146.8z"],bitcoin:[512,512,[],"f379","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z"],bity:[496,512,[],"f37a","M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z"],"black-tie":[448,512,[],"f27e","M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z"],blackberry:[512,512,[],"f37b","M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z"],blogger:[448,512,[],"f37c","M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"],"blogger-b":[448,512,[],"f37d","M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"],bluetooth:[448,512,[],"f293","M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"],"bluetooth-b":[320,512,[],"f294","M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"],btc:[384,512,[],"f15a","M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"],buromobelexperte:[448,512,[],"f37f","M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"],buysellads:[448,512,[],"f20d","M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"],"cc-amazon-pay":[576,512,[],"f42d","M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"],"cc-amex":[576,512,[],"f1f3","M576 255.4c-37.9-.2-44.2-.9-54.5 5v-5c-45.3 0-53.5-1.7-64.9 5.2v-5.2h-78.2v5.1c-11.4-6.5-21.4-5.1-75.7-5.1v5.6c-6.3-3.7-14.5-5.6-24.3-5.6h-58c-3.5 3.8-12.5 13.7-15.7 17.2-12.7-14.1-10.5-11.6-15.5-17.2h-83.1v92.3h82c3.3-3.5 12.9-13.9 16.1-17.4 12.7 14.3 10.3 11.7 15.4 17.4h48.9c0-14.7.1-8.3.1-23 11.5.2 24.3-.2 34.3-6.2 0 13.9-.1 17.1-.1 29.2h39.6c0-18.5.1-7.4.1-25.3 6.2 0 7.7 0 9.4.1.1 1.3 0 0 0 25.2 152.8 0 145.9 1.1 156.7-4.5v4.5c34.8 0 54.8 2.2 67.5-6.1V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V228.3h26.6c4.2-10.1 2.2-5.3 6.4-15.3h19.2c4.2 10 2.2 5.2 6.4 15.3h52.9v-11.4c2.2 5 1.1 2.5 5.1 11.4h29.5c2.4-5.5 2.6-5.8 5.1-11.4v11.4h135.5v-25.1c6.4 0 8-.1 9.8.2 0 0-.2 10.9.1 24.8h66.5v-8.9c7.4 5.9 17.4 8.9 29.7 8.9h26.8c4.2-10.1 2.2-5.3 6.4-15.3h19c6.5 15 .2.5 6.6 15.3h52.8v-21.9c11.8 19.7 7.8 12.9 13.2 21.9h41.6v-92h-39.9v18.4c-12.2-20.2-6.3-10.4-11.2-18.4h-43.3v20.6c-6.2-14.6-4.6-10.8-8.8-20.6h-32.4c-.4 0-2.3.2-2.3-.3h-27.6c-12.8 0-23.1 3.2-30.7 9.3v-9.3h-39.9v5.3c-10.8-6.1-20.7-5.1-64.4-5.3-.1 0-11.6-.1-11.6 0h-103c-2.5 6.1-6.8 16.4-12.6 30-2.8-6-11-23.8-13.9-30h-46V157c-7.4-17.4-4.7-11-9-21.1H22.9c-3.4 7.9-13.7 32-23.1 53.9V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48v175.4zm-186.6-80.6c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm-19.9 130.9c9.2 3.3 11 9.5 11 18.4l-.1 13.8h-16.6l.1-11.5c0-11.8-3.8-13.8-14.8-13.8h-17.6l-.1 25.3h-16.6l.1-69.3h39.4c13 0 27.1 2.3 27.1 18.7-.1 7.6-4.2 15.3-11.9 18.4zm-6.3-15.4c0-6.4-5.6-7.4-10.7-7.4h-21v15.6h20.7c5.6 0 11-1.3 11-8.2zm181.7-7.1H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-99.2-.3v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5h38.5zm42.2 40.1h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-78.1-158.7c-17.4-.3-33.2-4.1-33.2 19.7 0 11.8 2.8 19.9 16.1 19.9h7.4l23.5-54.5h24.8l27.9 65.4v-65.4h25.3l29.1 48.1v-48.1h16.9v69H524l-31.2-51.9v51.9h-33.7l-6.6-15.3h-34.3l-6.4 15.3h-19.2c-22.8 0-33-11.8-33-34 0-23.3 10.5-35.3 34-35.3h16.1v15.2zm14.3 24.5h22.8l-11.2-27.6-11.6 27.6zm-72.6-39.6h-16.9v69.3h16.9v-69.3zm-38.1 37.3c9.5 3.3 11 9.2 11 18.4v13.5h-16.6c-.3-14.8 3.6-25.1-14.8-25.1h-18v25.1h-16.4v-69.3l39.1.3c13.3 0 27.4 2 27.4 18.4.1 8-4.3 15.7-11.7 18.7zm-6.7-15.3c0-6.4-5.6-7.4-10.7-7.4h-21v15.3h20.7c5.7 0 11-1.3 11-7.9zm-59.5-7.4v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5h38.9zm-84.6 54.7v-54.2l-24 54.2H124l-24-54.2v54.2H66.2l-6.4-15.3H25.3l-6.4 15.3H1l29.7-69.3h24.5l28.1 65.7v-65.7h27.1l21.7 47 19.7-47h27.6v69.3h-16.8zM53.9 188.8l-11.5-27.6-11.2 27.6h22.7zm253 102.5c0 27.9-30.4 23.3-49.3 23.3l-.1 23.3h-32.2l-20.4-23-21.3 23h-65.4l.1-69.3h66.5l20.5 22.8 21-22.8H279c15.6 0 27.9 5.4 27.9 22.7zm-112.7 11.8l-17.9-20.2h-41.7v12.5h36.3v14.1h-36.3v13.8h40.6l19-20.2zM241 276l-25.3 27.4 25.3 28.1V276zm48.3 15.3c0-6.1-4.6-8.4-10.2-8.4h-21.5v17.6h21.2c5.9 0 10.5-2.8 10.5-9.2z"],"cc-apple-pay":[576,512,[],"f416","M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"],"cc-diners-club":[576,512,[],"f24c","M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"],"cc-discover":[576,512,[],"f1f2","M83 212.1c0 7.9-3.2 15.5-8.9 20.7-4.9 4.4-11.6 6.4-21.9 6.4H48V185h4.2c10.3 0 16.7 1.7 21.9 6.6 5.7 5 8.9 12.6 8.9 20.5zM504.8 184h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8 0-7.9-5.5-12.1-15.6-12.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM428 253h45.3v-13.8H444V217h28.3v-13.8H444V185h29.3v-14H428v82zm-86.2-82l35 84.2h8.6l35.5-84.2h-17.5l-22.2 55.2-21.9-55.2h-17.5zm-83 41.6c0 24.6 19.9 44.6 44.6 44.6 24.6 0 44.6-19.9 44.6-44.6 0-24.6-19.9-44.6-44.6-44.6-24.6 0-44.6 19.9-44.6 44.6zm-68-.5c0 32.5 33.6 52.5 63.3 38.2v-19c-19.3 19.3-46.8 5.8-46.8-19.2 0-23.7 26.7-39.1 46.8-19v-19c-30.2-15-63.3 6.8-63.3 38zm-33.9 28.3c-7.6 0-13.8-3.7-17.5-10.8l-10.3 9.9c17.8 26.1 56.6 18.2 56.6-11.3 0-13.1-5.4-19-23.6-25.6-9.6-3.4-12.3-5.9-12.3-10.3 0-8.7 14.5-14.1 24.9-2.5l8.4-10.8c-19.1-17.1-49.7-8.9-49.7 14.3 0 11.3 5.2 17.2 20.2 22.7 25.7 9.1 14.7 24.4 3.3 24.4zm-57.4-28.3c0-24.1-18-41.1-44.1-41.1H32v82h23.4c30.9 0 44.1-22.4 44.1-40.9zm23.4-41.1h-16v82h16v-82zM544 288c-33.3 20.8-226.4 124.4-416 160h401c8.2 0 15-6.8 15-15V288zm0-35l-25.9-34.5c12.1-2.5 18.7-10.6 18.7-23.2 0-28.5-30.3-24.4-52.9-24.4v82h16v-32.8h2.2l22.2 32.8H544z"],"cc-jcb":[576,512,[],"f24b","M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z"],"cc-mastercard":[576,512,[],"f1f1","M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z"],"cc-paypal":[576,512,[],"f1f4","M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"],"cc-stripe":[576,512,[],"f1f5","M396.9 256.5c0 19.1-8.8 33.4-21.9 33.4-8.3 0-13.3-3-16.8-6.7l-.2-52.8c3.7-4.1 8.8-7 17-7 12.9-.1 21.9 14.5 21.9 33.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM122.2 281.1c0-42.3-54.3-34.7-54.3-50.7 0-5.5 4.6-7.7 12.1-7.7 10.8 0 24.5 3.3 35.3 9.1v-33.4c-11.8-4.7-23.5-6.5-35.3-6.5-28.8 0-48 15-48 40.2 0 39.3 54 32.9 54 49.9 0 6.6-5.7 8.7-13.6 8.7-11.8 0-26.9-4.9-38.9-11.3v33.9c13.2 5.7 26.6 8.1 38.8 8.1 29.6-.2 49.9-14.7 49.9-40.3zm68.9-86.9h-27v-30.8l-34.7 7.4-.2 113.9c0 21 15.8 36.5 36.9 36.5 11.6 0 20.2-2.1 24.9-4.7v-28.9c-4.5 1.8-27 8.3-27-12.6v-50.5h27v-30.3zm73.8 0c-4.7-1.7-21.3-4.8-29.6 10.5l-2.2-10.5h-30.7v124.5h35.5v-84.4c8.4-11 22.6-8.9 27.1-7.4v-32.7zm44.2 0h-35.7v124.5h35.7V194.2zm0-47.3l-35.7 7.6v28.9l35.7-7.6v-28.9zm122.7 108.8c0-41.3-23.5-63.8-48.4-63.8-13.9 0-22.9 6.6-27.8 11.1l-1.8-8.8h-31.3V360l35.5-7.5.1-40.2c5.1 3.7 12.7 9 25.1 9 25.4-.1 48.6-20.5 48.6-65.6zm112.2 1.2c0-36.4-17.6-65.1-51.3-65.1-33.8 0-54.3 28.7-54.3 64.9 0 42.8 24.2 64.5 58.8 64.5 17 0 29.7-3.9 39.4-9.2v-28.6c-9.7 4.9-20.8 7.9-34.9 7.9-13.8 0-26-4.9-27.6-21.5h69.5c.1-2 .4-9.4.4-12.9zm-51.6-36.1c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7z"],"cc-visa":[576,512,[],"f1f0","M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z"],centercode:[512,512,[],"f380","M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"],chrome:[496,512,[],"f268","M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z"],cloudscale:[448,512,[],"f383","M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z"],cloudsmith:[332,512,[],"f384","M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z"],cloudversify:[616,512,[],"f385","M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z"],codepen:[512,512,[],"f1cb","M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"],codiepie:[472,512,[],"f284","M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z"],connectdevelop:[576,512,[],"f20e","M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z"],contao:[512,512,[],"f26d","M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z"],cpanel:[640,512,[],"f388","M52.9 213.7h40l-6.2 23.6c-1.9 6.5-7.4 10.9-14.3 10.9H53.8c-24.9 0-24.7 37.4 0 37.4h11.3c4.2 0 7.6 3.9 6.4 8.3L64.4 320H52c-33.5 0-59-31.4-50.3-65.2 7.3-27 28.3-41.1 51.2-41.1M73.1 320L108 189.9c1.8-6.4 7.2-10.9 14.3-10.9h37c24.1 0 45.4 16.4 51 41.2 6.6 29.1-14.5 65.3-51.7 65.3h-32l6.4-23.8c1.8-6.2 7.3-10.8 14.3-10.8h10.3c12.4 0 20.8-11.7 18.3-22.6-2.1-9.2-9.9-14.8-18.3-14.8h-19.8L112 309.2c-1.9 6.2-7.4 10.7-14.2 10.7l-24.7.1m220.6-69.4c.3-1 1.9-5.3-2.1-5.3h-57.5c-9.7 0-16.6-8.9-14.2-18.5l3.5-13.4h77.9c18.8 0 33.3 17.6 28.5 36.8l-14 51.8c-2.8 10.6-12.2 17.8-23.4 17.8l-57.5-.2c-42.9 0-38.5-63.8.7-63.8H284l-3.5 13.2c-1.9 6.2-7.4 10.8-14.2 10.8h-21.6c-5.3 0-5.3 7.9 0 7.9h34.9c4.6 0 5.1-3.9 5.5-5.3l8.6-31.8m103.1-36.9c34.4 0 59.3 32.3 50.3 65.4l-8.8 33.1c-1.2 4.9-5.7 7.8-10.3 7.8h-19.1c-4.5 0-7.6-4-6.4-8.3l10.6-40c3.3-11.6-5.6-23.4-18.1-23.4h-19.8l-17.2 64c-1.2 4.8-5.6 7.8-10.4 7.8h-18.9c-4.2 0-7.6-3.9-6.4-8.3l26.2-98h48.3M498 251.6l-8 30c-.9 3.3 1.5 6.7 5.1 6.7h73.3l-5.7 21c-1.9 6.2-7.4 10.7-14.2 10.7h-66.7c-20 0-33.3-19-28.3-36.7l10.8-40c4.8-17.6 20.7-29.6 38.6-29.6h47.3c19 0 33.2 17.7 28.3 36.8l-3.2 12c-2.9 11-12.7 17.6-23.2 17.6h-53.4l3.5-13c1.6-6.2 7.2-10.8 14.2-10.8H538c2 0 3.3-1 3.9-3l.7-2.6c.7-2.7-1.3-5.1-3.9-5.1h-32.9c-4.1 0-6.9 2.1-7.8 6zm70.2 68.4l35.6-133.1c1.2-4.7 5.5-7.9 10.4-7.9h18.9c4.5 0 7.7 4 6.5 8.3l-26.5 98.2c-5.1 20.7-24.2 34.5-44.9 34.5"],"creative-commons":[496,512,[],"f25e","M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"],"creative-commons-by":[496,512,[],"f4e7","M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"],"creative-commons-nc":[496,512,[],"f4e8","M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"],"creative-commons-nc-eu":[496,512,[],"f4e9","M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z"],"creative-commons-nc-jp":[496,512,[],"f4ea","M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z"],"creative-commons-nd":[496,512,[],"f4eb","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z"],"creative-commons-pd":[496,512,[],"f4ec","M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"],"creative-commons-pd-alt":[496,512,[],"f4ed","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM135.5 323.3V186h68.2c33.7 0 50.5 15.5 50.5 46.5 0 9-3 46.5-57.1 46.5h-27v44.3h-34.6zm34.1-111.6v41.6h29.2c27.9 0 30-41.6-.9-41.6h-28.3zm93.9 111.6V186h53.2c21.4 0 70 5.2 70 68.6 0 63.5-48.6 68.6-70 68.6h-53.2zm34.1-108.5v79.7h19.9c24 0 34.5-15.3 34.5-39.9 0-42-31.2-39.9-35-39.9l-19.4.1z"],"creative-commons-remix":[496,512,[],"f4ee","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z"],"creative-commons-sa":[496,512,[],"f4ef","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z"],"creative-commons-sampling":[496,512,[],"f4f0","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"],"creative-commons-sampling-plus":[496,512,[],"f4f1","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"],"creative-commons-share":[496,512,[],"f4f2","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"],"creative-commons-zero":[496,512,[],"f4f3","M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"],"critical-role":[445,512,[],"f6c9","M224.82 0c.26.15 216.57 124.51 217.12 124.72 3.04 1.18 3.7 3.46 3.7 6.56-.07 83.45-.06 166.9-.01 250.36 0 2.77-.98 4.43-3.38 5.78C420.88 399.41 234.39 505.71 223.32 512h-3C141 466.34 2.08 386.56 1.93 386.48c-1.29-.74-1.96-1.75-1.88-3.24.04-.87-.03-225.94-.05-253.1 0-2.44.89-3.79 2.93-4.93C26.19 112.11 212.2 5.98 223.07 0h1.75zM214.4 20.42l-.22-.16C149.43 57.12 84.69 94 19.95 130.87c.04.12.08.23.13.35 10.19 3.84 20.39 7.69 30.86 11.64-7.71 5.99-8.32 6.03-10.65 5.13-.1-.04-24.17-9.28-26.8-9.99v230.42c.88-1.41 64.07-110.91 64.13-111.01 1.62-2.82 3.03-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 62.99-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13 227.73 0 176.4 0 186.5.03 1.44 0 1.69-.23 1.7-1.64.01-2.96.01-5.92 0-8.88 0-1.34 2.36-.81-18.37-1.01-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1.04 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1-2.27-.66-2.55-4.08.3-4.73 3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9.04 1.1-79.42-.01-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-.97-2-4.84 1.77-4.85 33.67-.03 46.08-1.07 56.06 4.86 7.74 4.61 11.98 11.48 12.51 20.4.88 14.59-6.51 22.35-14.99 32.59-.68.82-.72 1.38-.04 2.22 2.6 3.25 5.05 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1.02-.42 1.01-1.15-.02-3.67.01-7.33-.02-11-.01-1.02.32-1.43 1.41-1.26 12.54 1.91 21.85-.07 23.58-.3 1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62 62.38-.02 125.15-.02 186.71-.02-27.12-47.03-54.11-93.85-81.18-140.81 2.26-.66-.4-.03 6.69-1.39 2.03-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 133.96 77.37 134.06V137.98c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1-.04 95.53-35.85 103.04-38.77C360.69 93.43 295.55 56 230.1 18.4c29.07 50.36 57.95 100.37 86.82 150.39-.09.11-.18.22-.28.33-9.57-.9-10.46-1.6-11.8-3.94-.96-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08 28.83-49.83 57.5-99.42 86.18-149zm51.93 129.92c1.85-.05 3.7-.52 5.54-.85 1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45-.87 1.3-1.88 1.22-2.6-.19-4.96-9.69 6.22-9.66-39.12-12.05-.7-.04-1 .23-.97.93 0 .13 3.72 121.98 3.73 122.11.02.89.52 1.2 1.21 1.51 2.92 1.31 5.96 2.42 8.7 4.05 7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4 1.49-.47 1.95-1.26 1.98-2.66.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23a1361.1 1361.1 0 0 1 3.31-18.03c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73.01 1.78-.08 1.82-1.85.68-27.49.58-22.59.97-29.55.07-1.29-.41-2.17-1.63-2.8-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15-1.66 1.06-2.31 2.33-2.22 4.34.03.59-.11-4.31.98 30.05.03.9.43 1.12 1.24 1.11.1 0 23.01-.09 34.47-.37zM67.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 3.99-.21 4.99-1.16 22.33-1.24 23.15-.1 1.04-.6 1.91-1.63 2.34-4.06 1.7-3.61-4.45-4.01-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17.01 53.63 54.08 50.88 27.24-2.01 19.05-20.19 24.84-20.47 1.98-.1 3.33 1.33 2.98 3.36-1.83 10.85-3.42 18.95-3.45 19.15-1.51 9.18-86.67 22.08-93.35-42.05-2.68-25.87 10.47-53.37 40.3-60.15zm79.99 87.67c-6.5-.03-12.99 0-19.49-.04-1.96-.01-2.78-1.61-2.66-1.79 2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-37.99.23-40.1.03-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-1.98 2.25-4.03 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13 1.22-.12 2.11-.75 2.23-2.12.3-3.42.26 4.73.45-40.58.02-5.65-.34-6.58-3.23-6.83-3.95-.35-4.03-2.26-.69-3.37.12-.04 18.98-.09 19.09-.09.32 0 4.49.53 1.05 3.38-.05.05-.16.03-.24.04-3.61.26-3.94.98-3.96 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49-.04 3.86 3.37-.02 3.4-10.37.08-20.74.03-31.11.07-10.67.04-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 3.99 17.67 4.75-.1 4.73 3.57.83 3.55zm274.97-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31-1.22-.04-2.43-.44-3.63-.73-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19-.38-.98-.94-1.44-2.04-1.44-3.12 0-7.27-.44-14.58.07-.58.04-1.4.55-1.62 1.06-1.58 3.62-3.07 7.29-4.51 10.96-1.27 3.23 7.86 1.32 12.19 2.16 2.97.57 4.53 3.72.66 3.73-8.79.03-17.58.06-26.37.05-2.92 0-3.09-3.15-.74-3.21 2.67-.07 4.74-1.13 5.92-3.47 1.5-2.97 2.8-6.04 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61 1-1.06 2.07-1.05 3.03.04 2.93 3.34 18.4 44.71 23.62 51.92 1.96 2.7 5.74 1.98 6.36 2.01 3.61.13 3.97-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26-.04-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32.01 5.32 2.75-1.21 3.45-1.81.19-2.58 1-2.66 2.83-.07 1.63-.19 38.89.29 41.21.35 1.73 1.73 2.38 3.23 2.43 13.25.43 14.92.44 16.04-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.68 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1.03 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64-.02-1.64 1.52v16.12c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76-.01.21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-1.95 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 5.99 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64-.04.36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3.04.22-3.45 1.1-.19 4.03.54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 8.98-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 21.99 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1.03.1.57 11.89-5.97 12.75-1.6.21-19.38 3.69-32.68-3.39-21.01-11.19-16.74-35.47-6.88-45.33 14.03-14.06 39.91-7.06 42.32-6.47zM288.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-4.97-.42-5 5.46-.01 1.98-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22.03 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-3.96 12.39-5.19 12.4-.1 0-38.08-.18-38.18-.19-1.93-.23-2.06-2.99-.42-3.38 1.99-.48 4.94.4 5.13-2.8.96-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-1.99-3.22.34-3.22 1.47-.02 17.99-.03 23.11-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6.01 3.58 2.61.1 2.53 3.41-.07 3.43-6.48.04-13.7-.02-21.61-.06-3.84-.02-3.38-3.35.04-3.37 4.49-.03 3.24 1.61 3.41-45.54.02-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29-.05 20.19-.41 21.17.21 1.13.72 1.87 1.65-.42 2.86-.99.52-3.86-.28-4.15 2.47-.02.21-.82 1.63-.07 43.8zm-36.91 274.27c1.14.66 2.12.66 3.26 0 16.99-9.79 181.97-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38-.02 2.58-.62 5.22-1.36 7.71-.55 1.83.38-.5-13.5 32.23-.73 1.72-1.04 2.21-1.97-.08-4.19-10.34-8.28-20.72-12.57-31.01-1.46-3.5-2.24-7-2-10.79.16-2.46.8-16.12 1.51-48.02.04-1.95.01-1.96-1.96-1.96h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3.03 11.54 1.17 21.04 3.74 25.64-7.32 6.01-14.46 2.66-34.41-12.48-38.84-2.01-.59-15.96-2.76-15.94 1.51.05 8.01.01 11.58.02 41.62zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2.02 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8 8.43 3.47 17.54.6 22.39-7.07 4.91-7.76 6.84-29.47-5.43-38.96-.12.05-.24.09-.36.12zM222.83 94.78c-9.83-.03-9.73 14.75-.07 14.87 9.59.11 10.1-14.84.07-14.87zm-80.15 103.87c.02 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-10.99 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.31 6.4c-2.03-5.28-4-10.39-6.1-15.84-2.16 5.48-4.16 10.57-6.23 15.84h12.33z"],css3:[512,512,[],"f13c","M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"],"css3-alt":[384,512,[],"f38b","M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"],cuttlefish:[440,512,[],"f38c","M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"],"d-and-d":[576,512,[],"f38d","M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"],dashcube:[448,512,[],"f210","M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"],delicious:[448,512,[],"f1a5","M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192v176z"],deploydog:[512,512,[],"f38e","M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"],deskpro:[480,512,[],"f38f","M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"],dev:[448,512,[],"f6cc","M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"],deviantart:[320,512,[],"f1bd","M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z"],digg:[512,512,[],"f1a6","M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z"],"digital-ocean":[512,512,[],"f391","M256 504v-96.1c101.8 0 180.8-100.9 141.7-208-14.3-39.6-46.1-71.4-85.8-85.7-107.1-38.8-208.1 39.9-208.1 141.7H8C8 93.7 164.9-32.8 335 20.3c74.2 23.3 133.6 82.4 156.6 156.6C544.8 347.2 418.6 504 256 504zm.3-191.4h-95.6v95.6h95.6v-95.6zm-95.6 95.6H87v73.6h73.7v-73.6zM87 346.6H25.4v61.6H87v-61.6z"],discord:[448,512,[],"f392","M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z"],discourse:[448,512,[],"f393","M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"],dochub:[416,512,[],"f394","M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z"],docker:[640,512,[],"f395","M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"],draft2digital:[480,512,[],"f396","M369.9 425.4V371l47.1 27.2-47.1 27.2zM82.4 380.6c25.5-27.3 97.7-104.7 150.9-170 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7H82.4zm51.8-219.2c0 12.4-10 22.4-22.4 22.4-12.4 0-22.4-10-22.4-22.4 0-12.4 10-22.4 22.4-22.4 12.4 0 22.4 10.1 22.4 22.4M336 315.9v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480l144-81.9-144-82.2z"],dribbble:[512,512,[],"f17d","M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z"],"dribbble-square":[448,512,[],"f397","M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z"],dropbox:[528,512,[],"f16b","M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"],drupal:[448,512,[],"f1a9","M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z"],dyalog:[416,512,[],"f399","M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"],earlybirds:[480,512,[],"f39a","M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"],ebay:[640,512,[],"f4f4","M405.2 263.8c-29.1.9-47.2 6.2-47.2 25.3 0 12.4 9.9 25.8 35 25.8 33.7 0 51.6-18.4 51.6-48.4v-3.3c-11.8 0-26.3.1-39.4.6m71.5 39.7c0 9.3.3 18.6 1 26.8h-29.8c-.8-6.9-1.1-13.6-1.1-20.2-16.1 19.8-35.3 25.5-61.9 25.5-39.5 0-60.6-20.9-60.6-45 0-35 28.8-47.3 78.6-48.4 13.7-.3 29-.4 41.7-.4v-3.4c0-23.4-15-33-41-33-19.3 0-33.6 8-35 21.8h-33.7c3.6-34.4 39.7-43.1 71.5-43.1 38.1 0 70.3 13.5 70.3 53.8v65.6zm-349-56.8c-2.3-54.7-87.5-56.6-94.4 0h94.4zm-95 21.4c3.5 58.3 79.2 57.4 91.2 21.6H157c-6.4 34.4-43 46.1-74.4 46.1-57.2 0-82.5-31.5-82.5-74 0-46.8 26.2-77.6 83-77.6 45.3 0 78.4 23.7 78.4 75.4v8.5H32.7zm211 45.7c29.8 0 50.2-21.5 50.2-53.8 0-32.4-20.4-53.8-50.2-53.8-29.6 0-50.2 21.4-50.2 53.8 0 32.3 20.6 53.8 50.2 53.8m-82.2-186h32.1v80.6c15.7-18.7 37.4-24.2 58.7-24.2 35.7 0 75.4 24.1 75.4 76.2 0 43.6-31.5 75.4-76 75.4-23.3 0-45.1-8.3-58.7-24.9 0 6.6-.4 13.2-1.1 19.5h-31.5c.5-10.2 1.1-22.8 1.1-33.1V127.8zM640 189.5l-99.2 194.8h-35.9l28.5-54.1-74.6-140.7h37.5l54.9 109.9L606 189.5h34z"],edge:[512,512,[],"f282","M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z"],elementor:[448,512,[],"f430","M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z"],ello:[496,512,[],"f5f1","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"],ember:[640,512,[],"f423","M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1c-1.9-43.8-44.2-27.6-49-24-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-18.3-11-32.8 12.1-32.8 12.1s54.5-60.7 42.5-112c-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5c-17.2-.8-28.5 18.8-28.5 18.8s-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7c11.6 2.1 16.4 1 36.5-47.9 11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2c6.7-23.6 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7c8.6 15.6 30.9 5.3 30.9 5.3s15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6c12.4 5.1 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"],empire:[496,512,[],"f1d1","M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z"],envira:[448,512,[],"f299","M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"],erlang:[640,512,[],"f39d","M21.7 246.4c-.1 86.8 29 159.5 78.7 212.1H0v-405h87.2c-41.5 50.2-65.6 116.2-65.5 192.9zM640 53.6h-83.6c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405zm-80.8 405s0-.1 0 0h-.2.2zm-3.1-405h.3l-.1-.1-.2.1zm-230.7 9.6c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2z"],ethereum:[320,512,[],"f42e","M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z"],etsy:[384,512,[],"f2d7","M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z"],expeditedssl:[496,512,[],"f23e","M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z"],facebook:[448,512,[],"f09a","M448 56.7v398.5c0 13.7-11.1 24.7-24.7 24.7H309.1V306.5h58.2l8.7-67.6h-67v-43.2c0-19.6 5.4-32.9 33.5-32.9h35.8v-60.5c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9h-58.4v67.6h58.4V480H24.7C11.1 480 0 468.9 0 455.3V56.7C0 43.1 11.1 32 24.7 32h398.5c13.7 0 24.8 11.1 24.8 24.7z"],"facebook-f":[264,512,[],"f39e","M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"],"facebook-messenger":[448,512,[],"f39f","M224 32C15.9 32-77.5 278 84.6 400.6V480l75.7-42c142.2 39.8 285.4-59.9 285.4-198.7C445.8 124.8 346.5 32 224 32zm23.4 278.1L190 250.5 79.6 311.6l121.1-128.5 57.4 59.6 110.4-61.1-121.1 128.5z"],"facebook-square":[448,512,[],"f082","M448 80v352c0 26.5-21.5 48-48 48h-85.3V302.8h60.6l8.7-67.6h-69.3V192c0-19.6 5.4-32.9 33.5-32.9H384V98.7c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9H184v67.6h60.9V480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"],"fantasy-flight-games":[512,512,[],"f6dc","M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z"],firefox:[480,512,[],"f269","M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v.1c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5v-.2c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1-.1.2-.2.3-.3.4-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6z"],"first-order":[448,512,[],"f2b0","M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"],"first-order-alt":[496,512,[],"f50a","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"],firstdraft:[384,512,[],"f3a1","M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"],flickr:[448,512,[],"f16e","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"],flipboard:[448,512,[],"f44d","M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z"],fly:[384,512,[],"f417","M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"],"font-awesome":[448,512,[],"f2b4","M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z"],"font-awesome-alt":[448,512,[],"f35c","M397.8 67.8c7.8 0 14.3 6.6 14.3 14.3v347.6c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6m0-35.9H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-58.5 139.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1z"],"font-awesome-flag":[448,512,[],"f425","M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z"],"font-awesome-logo-full":[3992,512,["Font Awesome"],"f4e6","M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],fonticons:[448,512,[],"f280","M0 32v448h448V32H0zm167.4 196h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4zM364 414.7H261.3v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm-21.9-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6-21.9 24.2z"],"fonticons-fi":[384,512,[],"f3a2","M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z"],"fort-awesome":[512,512,[],"f286","M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z"],"fort-awesome-alt":[512,512,[],"f3a3","M211.7 241.1v51.7c0 2.1-1.6 3.7-3.7 3.7h-22.2c-2.1 0-3.7-1.6-3.7-3.7v-51.7c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7zm114.5-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm-29.1 263.2c-.9.1-1.7.3-2.6.4-1 .2-2.1.3-3.1.5-.9.1-1.8.3-2.8.4-1 .1-2 .3-3 .4-1 .1-2 .2-2.9.3-1 .1-1.9.2-2.9.3-1 .1-2.1.2-3.1.3-.9.1-1.8.2-2.7.2-1.1.1-2.3.1-3.4.2-.8 0-1.7.1-2.5.1-1.3.1-2.6.1-3.9.1-.7 0-1.4.1-2.1.1-2 0-4 .1-6 .1s-4 0-6-.1c-.7 0-1.4 0-2.1-.1-1.3 0-2.6-.1-3.9-.1-.8 0-1.7-.1-2.5-.1-1.1-.1-2.3-.1-3.4-.2-.9-.1-1.8-.1-2.7-.2-1-.1-2.1-.2-3.1-.3-1-.1-1.9-.2-2.9-.3-1-.1-2-.2-2.9-.3-1-.1-2-.2-3-.4-.9-.1-1.8-.3-2.8-.4-1-.1-2.1-.3-3.1-.5-.9-.1-1.7-.3-2.6-.4-65.6-10.9-122.5-47.7-160-99.4-.2-.2-.3-.5-.5-.7-.8-1.1-1.6-2.2-2.3-3.3-.3-.4-.6-.8-.8-1.2-.7-1.1-1.4-2.1-2.1-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.4-2.1-2-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.3-2.2-2-3.3-.2-.4-.5-.8-.7-1.2-2.4-4-4.6-8.1-6.8-12.2-.1-.2-.2-.3-.3-.5-.6-1.1-1.1-2.2-1.7-3.3-.3-.6-.6-1.1-.8-1.7-.5-1-1-2.1-1.5-3.1-.3-.7-.6-1.3-.9-2-.5-1-.9-2-1.4-3l-.9-2.1c-.4-1-.9-2-1.3-3-.3-.7-.6-1.5-.9-2.2l-1.2-3c-.3-.8-.6-1.5-.9-2.3-.4-1-.8-2-1.1-3-.3-.9-.6-1.8-1-2.8-.6-1.6-1.1-3.3-1.7-4.9-.3-.9-.6-1.8-.9-2.8-.3-.9-.5-1.8-.8-2.7-.3-.9-.6-1.9-.8-2.8-.3-.9-.5-1.8-.8-2.7-.3-1-.5-1.9-.8-2.9-.2-.9-.5-1.8-.7-2.7-.3-1-.5-2-.7-3-.2-.9-.4-1.7-.6-2.6-.2-1.1-.5-2.2-.7-3.2-.2-.8-.3-1.6-.5-2.4-.3-1.3-.5-2.7-.8-4-.1-.6-.2-1.1-.3-1.7l-.9-5.7c-.1-.6-.2-1.3-.3-1.9-.2-1.3-.4-2.6-.5-3.9-.1-.8-.2-1.5-.3-2.3-.1-1.2-.3-2.4-.4-3.6-.1-.8-.2-1.6-.2-2.4-.1-1.2-.2-2.4-.3-3.5-.1-.8-.1-1.6-.2-2.4-.1-1.2-.2-2.4-.2-3.7 0-.8-.1-1.5-.1-2.3-.1-1.3-.1-2.7-.2-4 0-.7 0-1.3-.1-2 0-2-.1-4-.1-6 0-53.5 16.9-103 45.8-143.6 2.3-3.2 4.7-6.4 7.1-9.5 4.9-6.2 10.1-12.3 15.6-18 2.7-2.9 5.5-5.7 8.4-8.4 2.9-2.7 5.8-5.4 8.8-8 4.5-3.9 9.1-7.6 13.9-11.2 1.6-1.2 3.2-2.4 4.8-3.5C140 34.2 171.7 20.1 206 13c16.1-3.3 32.9-5 50-5s33.8 1.7 50 5c34.3 7 66 21.1 93.6 40.7 1.6 1.2 3.2 2.3 4.8 3.5 4.8 3.6 9.4 7.3 13.9 11.2 12 10.4 23 21.9 32.8 34.4 2.5 3.1 4.8 6.3 7.1 9.5C487.1 153 504 202.5 504 256c0 2 0 4-.1 6 0 .7 0 1.3-.1 2 0 1.3-.1 2.7-.2 4 0 .8-.1 1.5-.1 2.3-.1 1.2-.1 2.4-.2.7-.1.8-.1 1.6-.2 2.4-.1 1.2-.2 2.4-.3 3.5-.1.8-.2 1.6-.2 2.4-.1 1.2-.3 2.4-.4 3.6-.1.8-.2 1.5-.3 2.3-.2 1.3-.4 2.6-.5 3.9-.1.6-.2 1.3-.3 1.9l-.9 5.7c-.1.6-.2 1.1-.3 1.7-.2 1.3-.5 2.7-.8 4-.2.8-.3 1.6-.5 2.4-.2 1.1-.5 2.2-.7 3.2-.2.9-.4 1.7-.6 2.6-.2 1-.5 2-.7 3-.2.9-.5 1.8-.7 2.7-.3 1-.5 1.9-.8 2.9-.2.9-.5 1.8-.8 2.7-.3.9-.6 1.9-.8 2.8-.3.9-.5 1.8-.8 2.7-.3.9-.6 1.8-.9 2.8-.5 1.6-1.1 3.3-1.7 4.9-.3.9-.6 1.8-1 2.8-.4 1-.7 2-1.1 3-.3.8-.6 1.5-.9 2.3l-1.2 3c-.3.7-.6 1.5-.9 2.2-.4 1-.8 2-1.3 3l-.9 2.1c-.4 1-.9 2-1.4 3-.3.7-.6 1.3-.9 2-.5 1-1 2.1-1.5 3.1-.3.6-.6 1.1-.8 1.7-.6 1.1-1.1 2.2-1.7 3.3-.1.2-.2.3-.3.5-2.2 4.1-4.4 8.2-6.8 12.2-.2.4-.5.8-.7 1.2-.7 1.1-1.3 2.2-2 3.3-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2 3.2-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2.1 3.2-.3.4-.6.8-.8 1.2-.8 1.1-1.5 2.2-2.3 3.3-.2.2-.3.5-.5.7-37.6 54.7-94.5 91.4-160.1 102.4zm117.3-86.2c13-13 24.2-27.4 33.6-42.9v-71.3c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7V326h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-4.8-6.5-3.7-9.5-3.7v-30.7c6.7-1.6 13.8-2.8 20.8-2.8 8.8 0 16.8 3.5 25.4 3.5 3.7 0 22.4-.9 22.4-6.5V93.4c0-2.1-1.6-3.7-3.7-3.7-4.2 0-12.2 3.5-19.4 3.5-7.9 0-16.9-3.5-26.3-3.5-6.5 0-12.9.9-19.2 2.3v-3.9c4.4-2.1 7.4-6.7 7.4-11.5 0-16.8-25.4-16.8-25.4 0 0 4.8 3 9.5 7.4 11.5v90.2c-3 0-9.5-1.1-9.5 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v144H93.5v-25.8c0-2.1-1.6-3.7-3.7-3.7H67.7c-2.1 0-3.7 1.6-3.7 3.7v71.3c9.4 15.5 20.6 29.9 33.6 42.9 20.6 20.6 44.5 36.7 71.2 48 13.9 5.9 28.2 10.3 42.9 13.2v-75.8c0-58.6 88.6-58.6 88.6 0v75.8c14.7-2.9 29-7.4 42.9-13.2 26.7-11.3 50.6-27.4 71.2-48"],forumbee:[448,512,[],"f211","M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"],foursquare:[368,512,[],"f180","M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"],"free-code-camp":[576,512,[],"f2c5","M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z"],freebsd:[448,512,[],"f3a4","M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"],fulcrum:[269,512,[],"f50b","M70.75 164.14l-35.38 43.55L0 164.14l35.38-43.55 35.37 43.55zM119.23 0L98.69 198.18 47.72 256l50.98 57.82L119.23 512V300.89L78.15 256l41.08-44.89V0zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55-35.38 43.55zm-48.48 46.97L191.5 256l-41.08 44.89V512l20.54-198.18L221.94 256l-50.98-57.82L150.42 0v211.11z"],"galactic-republic":[496,512,[],"f50c","M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"],"galactic-senate":[512,512,[],"f50d","M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z"],"get-pocket":[448,512,[],"f265","M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"],gg:[512,512,[],"f260","M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z"],"gg-circle":[512,512,[],"f261","M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z"],git:[448,512,[],"f1d3","M18.8 221.7c0 25.3 16.2 60 41.5 68.5v1c-18.8 8.3-24 50.6 1 65.8v1C34 367 16 384.3 16 414.2c0 51.5 48.8 65.8 91.5 65.8 52 0 90.7-18.7 90.7-76 0-70.5-101-44.5-101-82.8 0-13.5 7.2-18.7 19.7-21.3 41.5-7.7 67.5-40 67.5-82.2 0-7.3-1.5-14.2-4-21 6.7-1.5 13.2-3.3 19.7-5.5v-50.5c-17.2 6.8-35.7 11.8-54.5 11.8-53.8-31-126.8 1.3-126.8 69.2zm87.7 163.8c17 0 41.2 3 41.2 25 0 21.8-19.5 26.3-37.7 26.3-17.3 0-43.3-2.7-43.3-25.2.1-22.3 22.1-26.1 39.8-26.1zM103.3 256c-22 0-31.3-13-31.3-33.8 0-49.3 61-48.8 61-.5 0 20.3-8 34.3-29.7 34.3zM432 305.5v49c-13.3 7.3-30.5 9.8-45.5 9.8-53.5 0-59.8-42.2-59.8-85.7v-87.7h.5v-1c-7 0-7.3-1.6-24 1v-47.5h24c0-22.3.3-31-1.5-41.2h56.7c-2 13.8-1.5 27.5-1.5 41.2h51v47.5s-19.3-1-51-1V281c0 14.8 3.3 32.8 21.8 32.8 9.8 0 21.3-2.8 29.3-8.3zM286 68.7c0 18.7-14.5 36.2-33.8 36.2-19.8 0-34.5-17.2-34.5-36.2 0-19.3 14.5-36.7 34.5-36.7C272 32 286 50 286 68.7zm-6.2 74.5c-1.8 14.6-1.6 199.8 0 217.8h-55.5c1.6-18.1 1.8-203 0-217.8h55.5z"],"git-square":[448,512,[],"f1d2","M140.1 348.5c12.1 0 29.5 2.1 29.5 17.9 0 15.5-13.9 18.8-27 18.8-12.3 0-30.9-2-30.9-18s15.7-18.7 28.4-18.7zm-24.7-116.6c0 14.8 6.6 24.1 22.3 24.1 15.5 0 21.2-10 21.2-24.5.1-34.4-43.5-34.8-43.5.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-241 93.7c-12.3 4.8-25.5 8.4-38.9 8.4-38.5-22.1-90.7.9-90.7 49.5 0 18 11.6 42.9 29.6 48.9v.7c-13.4 5.9-17.1 36.1.7 47v.7c-19.5 6.4-32.3 18.8-32.3 40.2 0 36.8 34.8 47 65.4 47 37.1 0 64.8-13.4 64.8-54.3 0-50.4-72.1-31.8-72.1-59.1 0-9.6 5.2-13.4 14.1-15.2 29.6-5.5 48.2-28.6 48.2-58.7 0-5.2-1.1-10.2-2.9-15 4.8-1.1 9.5-2.3 14.1-3.9v-36.2zm56.8 1.8h-39.6c1.3 10.6 1.1 142.6 0 155.5h39.6c-1.1-12.8-1.2-145.1 0-155.5zm4.5-53.3c0-13.4-10-26.2-24.1-26.2-14.3 0-24.6 12.5-24.6 26.2 0 13.6 10.5 25.9 24.6 25.9 13.7 0 24.1-12.5 24.1-25.9zm104.3 53.3h-36.4c0-9.8-.4-19.6 1.1-29.5h-40.5c1.3 7.3 1.1 13.6 1.1 29.5h-17.1v33.9c11.9-1.9 12.1-.7 17.1-.7v.7h-.4v62.7c0 31.1 4.5 61.2 42.7 61.2 10.7 0 23-1.8 32.5-7v-35c-5.7 3.9-13.9 5.9-20.9 5.9-13.2 0-15.5-12.9-15.5-23.4v-65.2c22.7 0 36.4.7 36.4.7v-33.8z"],github:[496,512,[],"f09b","M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"],"github-alt":[480,512,[],"f113","M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"],"github-square":[448,512,[],"f092","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z"],gitkraken:[592,512,[],"f3a6","M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z"],gitlab:[512,512,[],"f296","M29.782 199.732L256 493.714 8.074 309.699c-6.856-5.142-9.712-13.996-7.141-21.993l28.849-87.974zm75.405-174.806c-3.142-8.854-15.709-8.854-18.851 0L29.782 199.732h131.961L105.187 24.926zm56.556 174.806L256 493.714l94.257-293.982H161.743zm349.324 87.974l-28.849-87.974L256 493.714l247.926-184.015c6.855-5.142 9.711-13.996 7.141-21.993zm-85.404-262.78c-3.142-8.854-15.709-8.854-18.851 0l-56.555 174.806h131.961L425.663 24.926z"],gitter:[384,512,[],"f426","M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"],glide:[448,512,[],"f2a5","M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z"],"glide-g":[448,512,[],"f2a6","M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"],gofore:[400,512,[],"f3a7","M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z"],goodreads:[448,512,[],"f3a8","M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"],"goodreads-g":[384,512,[],"f3a9","M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"],google:[488,512,[],"f1a0","M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"],"google-drive":[512,512,[],"f3aa","M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"],"google-play":[512,512,[],"f3ab","M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"],"google-plus":[496,512,[],"f2b3","M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z"],"google-plus-g":[640,512,[],"f0d5","M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"],"google-plus-square":[448,512,[],"f0d4","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z"],"google-wallet":[448,512,[],"f1ee","M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"],gratipay:[496,512,[],"f184","M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z"],grav:[512,512,[],"f2d6","M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z"],gripfire:[384,512,[],"f3ac","M171.8 503.8c0-5.3 4.8-12.2 4.8-22.3 0-15.2-13-39.9-78.1-86.6C64.2 365.8 32 336.4 32 286.6 32 171.9 179.1 110.1 179.1 18c0-3.3-.2-6.7-.6-10 5.1 2.4 39.1 43.3 39.1 90.4 0 80.5-105.1 129.2-105.1 203 0 26.9 16.6 47.2 32.6 69.5 22.5 30.2 44.2 56.9 44.2 86.5-.1 14.5-4.4 29.7-17.5 46.4zm146-241.4c1.5 8.4 2.2 16.6 2.2 24.6 0 51.8-29.4 97.5-67.3 136.8-1 1-2.2 2.4-3.2 2.4-3.6 0-35.5-41.6-35.5-53.2 0 0 41.8-55.7 41.8-96.9 0-10.8-2.7-21.7-9.1-33.4-1.5 32.3-55.7 87.7-58.1 87.7-2.7 0-17.9-22-17.9-42.1 0-5.3 1-10.7 3.2-15.8 2.4-5.5 56.6-72 56.6-116.7 0-6.2-1-12-3.4-17.1l-4-7.2c16.7 6.5 82.6 64.1 94.7 130.9"],grunt:[384,512,[],"f3ad","M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm79.2 233.7c2.2 2.3 1.5 5.3.9 6.8-1.1 2.7-5.5 11.6-13 19.8-2.7 2.9-6.6 4.6-11 4.6-4.3 0-8.7-1.6-11.8-4.3-2.3-2.1-10.2-9.5-13.7-18.6-1.3-3.4-1-6.1.9-8.1 1.3-1.3 4-2.9 9.5-2.9H160c4.1 0 7 .9 8.8 2.7zm62.9-187.9c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm17.8-8.8c7.5-11.4 25.4-26 44.9-37 3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6-.1.1 0 0 0 0zM263 421.4c1.9 1.9 2.2 4.6.9 7.9-3.5 8.9-11.4 16.1-13.7 18.1-3.1 2.6-7.4 4.2-11.8 4.2s-8.3-1.6-11-4.5c-7.5-8-12-16.7-13-19.3-.6-1.5-1.3-4.4.9-6.7 1.7-1.8 4.7-2.7 8.9-2.7h29.4c5.4.1 8.1 1.7 9.4 3zm-98.3-251.5c9.9 6 18.8 8.1 27.3 8.3 8.5-.2 17.4-2.3 27.3-8.3 0 0-14.5 17.7-27.2 17.8h-.2c-12.7-.2-27.2-17.8-27.2-17.8zm184.5 147.4c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59z"],gulp:[256,512,[],"f3ae","M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z"],"hacker-news":[448,512,[],"f1d4","M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"],"hacker-news-square":[448,512,[],"f3af","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"],hackerrank:[464,512,[],"f5f7","M453.5 128C439.01 103.05 261.13 0 232.16 0 203.2 0 25.25 102.79 10.84 128c-14.41 25.21-14.49 230.8 0 256.01C25.33 409.21 203.22 512 232.16 512s206.85-102.92 221.33-128c14.48-25.08 14.49-231.05.01-256zM292.13 414.22c-3.96 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32.04-2.02-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 5.96-5.74 5.94-10.13-.03-20.27-.11-30.41-.08-4.1.01-5.87-1.53-5.74-6.11.92-33.44 2.96-84.02-.15-212.67v-3.17c-9.67-.35-16.38-.96-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69 3.96 0 41.17 35.78 38.27 38.69-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2.03 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46.02 4.57 1.72 4.5 5.38-3.65 191.29-.66 177.94-.66 210.34 8.87.35 16.82.96 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z"],hips:[640,512,[],"f452","M0 80.2c0-1.8.9-2.7 2.7-2.7h40.9c1.9 0 2.8.9 2.8 2.7v81.2c15.2-7.7 31.7-11.5 49.8-11.4 24 .1 44.2 6.2 60.3 18 18.7 13.5 28 31.9 28 55.3v136.1c0 1.9-.9 2.8-2.7 2.8h-27.3c-9.1 0-16.4-7.3-16.4-16.3V223.3c0-.9 2.7-27-45.8-27-48.6 0-45.8 26.2-45.8 27v136.1c0 1.9-.9 2.8-2.8 2.8h-41c-1.8 0-2.7-.9-2.7-2.8V80.2zm497.7 221.5c13.7 10.2 34.1 19.1 58.4 19.1 23.3 0 32.8-4.5 36.5-13.6 3-7.9-.6-16.1-12.2-21.2l-53.6-23.5c-21.4-9.4-33.8-24-37.2-43.6-5.7-33.7 22.2-53.3 22.7-53.7 13.2-9.6 32-15.4 58.5-15.4 19 0 37.4 3.3 55.1 9.9 1.3.5 1.9 1.3 1.9 2.6V207c0 2.1-2.3 3.4-4 2.4-39.7-20.7-76.6-12.3-84-6.8-6.6 4.9-6 12.5 2.6 16.1L600 244c16.5 7.1 28.1 18.4 34.9 34.1 5.5 12.6 6.6 25.6 3.1 39.1-9.6 36.9-44.9 45.5-45.6 45.8-10.5 3.1-23.6 4.3-36.3 4.3-16.6 0-32.6-2.7-48.2-8.2-9.7-3.4-14.6-10.3-14.6-20.7V304c0-2.1 2.3-3.7 4.4-2.3zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zm-124.6 38.7c0 1.9-.9 2.8-2.8 2.8h-40.9c-1.6 0-2.7-1.4-2.7-2.8V157.6c0-1.4 1.1-2.8 2.7-2.8h40.9c1.9 0 2.8.9 2.8 2.8v201.8M228.3 72.5c15.9 0 28.9 12.7 28.9 28.9 0 15.8-12.7 28.9-28.9 28.9s-28.9-13.3-28.9-28.9c.1-16 13-28.9 28.9-28.9"],"hire-a-helper":[512,512,[],"f3b0","M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"],hooli:[640,512,[],"f427","M508.4 352h57.9V156.7L508.4 184v168zm73.7-110.5V352H640V241.5h-57.9zm-250.7-8.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.9 110.9v-31c-48.8-54.6-39-76.1-35.3-79.2 13.5-11.4 37.5-8 64.4 2.1L65.2 184v63.3c13.1 14.7 30.5 31.5 53.5 50.4l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zm-39.7 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm185.7-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm173.5-73c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8v16zm-21.4 0v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.5-21.7-38.5-31.5V352h57.9zm59.7.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3v5.3l-19.4.8z"],hornbill:[509,512,[],"f592","M75.37 370.3c2.14 15.83-5.77 31.98-20.94 39.29-18.85 9.1-41.55 1.17-50.68-17.68-9.08-18.83-1.13-41.58 17.7-50.65 7.05-3.4 14.63-4.42 21.85-3.38-78.28-111.35 52-190.53 52-190.53-5.86 43.04-8.24 91.16-8.24 91.16-67.31 41.45.92 64.06 39.81 72.87 19.77 53.62 71.18 91.94 131.66 91.94 1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zM183.38 42.6c.89-7-.1-14.33-3.39-21.15-9.1-18.84-31.82-26.78-50.66-17.69-18.86 9.1-26.8 31.83-17.69 50.68 6.98 14.47 22.02 22.42 37.18 21.23-22.55 29.91-53.83 89.57-52.42 190.03l21.84-.15c-.02-.9-.14-1.77-.14-2.68 0-58.95 36.37-109.33 87.85-130.16 8.01-37.75 30.74-114.3 73.84-44.29 0 0 48.14 2.38 91.18 8.24 0-.01-77.84-128.03-187.59-54.06zm304.18 134.17c18.84-9.09 26.81-31.81 17.7-50.65-9.1-18.85-31.83-26.77-50.67-17.69-15.27 7.37-23.19 23.69-20.87 39.64-31.71-21.94-89.84-49.05-183.45-47.74l.14 22.5c2.7-.15 5.39-.41 8.14-.41 59.3 0 109.9 36.8 130.49 88.76 39.1 9.02 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 48.96-194.61 6.43.5 13.07-.49 19.31-3.5zM373.05 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15 0 60.27-38.05 111.55-91.39 131.45-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 50.97.31 4.72 1.45 9.45 3.64 13.97 9.06 18.89 31.8 26.78 50.64 17.71 18.86-9.1 26.79-31.83 17.7-50.65-6.56-13.62-20.26-21.43-34.45-21.35z"],hotjar:[448,512,[],"f3b1","M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z"],houzz:[414,512,[],"f27c","M258.9 330.7H154.3V480H0V32h109.5v104.5l305.1 85.6V480H258.9V330.7z"],html5:[384,512,[],"f13b","M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"],hubspot:[512,512,[],"f3b2","M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"],imdb:[448,512,[],"f2d8","M350.5 288.7c0 5.4 1.6 14.4-6.2 14.4-1.6 0-3-.8-3.8-2.4-2.2-5.1-1.1-44.1-1.1-44.7 0-3.8-1.1-12.7 4.9-12.7 7.3 0 6.2 7.3 6.2 12.7v32.7zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4v-49.3zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM21.3 228.8c-.1.1-.2.3-.3.4h.3v-.4zM97 192H64v127.8h33V192zm113.3 0h-43.1l-7.6 59.9c-2.7-20-5.4-40.1-8.7-59.9h-42.8v127.8h29v-84.5l12.2 84.5h20.6l11.6-86.4v86.4h28.7V192zm86.3 45.3c0-8.1.3-16.8-1.4-24.4-4.3-22.5-31.4-20.9-49-20.9h-24.6v127.8c86.1.1 75 6 75-82.5zm85.9 17.3c0-17.3-.8-30.1-22.2-30.1-8.9 0-14.9 2.7-20.9 9.2V192h-31.7v127.8h29.8l1.9-8.1c5.7 6.8 11.9 9.8 20.9 9.8 19.8 0 22.2-15.2 22.2-30.9v-36z"],instagram:[448,512,[],"f16d","M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"],"internet-explorer":[512,512,[],"f26b","M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"],ioxhost:[640,512,[],"f208","M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"],itunes:[448,512,[],"f3b4","M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z"],"itunes-note":[384,512,[],"f3b5","M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z"],java:[377,512,[],"f4e4","M121.6 396s-19.6 11.4 13.9 15.2c40.6 4.6 61.3 4 106-4.5 0 0 11.8 7.4 28.2 13.8C169.5 463.4 42.9 418 121.6 396m-12.2-56.1s-21.9 16.2 11.6 19.7c43.3 4.5 77.6 4.8 136.8-6.6 0 0 8.2 8.3 21.1 12.8-121.3 35.5-256.3 2.9-169.5-25.9m103.2-95.1c24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3.1 0-175.2 43.8-91.5 140.2m132.6 192.6s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8M131 281.8s-93.1 22.1-33 30.1c25.4 3.4 76 2.6 123.1-1.3 38.5-3.2 77.2-10.2 77.2-10.2s-13.6 5.8-23.4 12.5c-94.5 24.9-277 13.3-224.5-12.1 44.5-21.4 80.6-19 80.6-19m167 93.3c96.1-49.9 51.6-97.9 20.6-91.4-7.6 1.6-11 3-11 3s2.8-4.4 8.2-6.3c61.3-21.6 108.5 63.6-19.8 97.3 0-.1 1.5-1.4 2-2.6M240 0s53.2 53.2-50.5 135c-83.1 65.6-19 103.1 0 145.8-48.5-43.8-84.1-82.3-60.2-118.2C164.4 110.1 261.5 84.5 240 0m-99.5 510.4c92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6"],"jedi-order":[448,512,[],"f50e","M231.89 335.72l31.44-45.89-20.18 55.5 62.56 9.09-62.56 9.08 24.22 47.43s-30.22-31.77-34.49-36.25c1.76 68.78 2.19 85.7 2.19 85.7s154.4-71.65 68.62-230.09c0 0 106.97-118.07 10.09-190.73 0 0 165.5 99.91 60.55 271.46 0 0 86.78-84.77 41.37-170.54 0 0 78.71 111.01-17.16 233.11 0 0 26.24-16.15 49.45-77.71 0 0-16.93 183.26-221.96 185.66v.02h-4.08v-.02C16.93 479.14 0 295.88 0 295.88c23.21 61.56 49.44 77.71 49.44 77.71-95.87-122.11-17.15-233.11-17.15-233.11-45.41 85.78 41.38 170.54 41.38 170.54-104.95-171.56 60.54-271.46 60.54-271.46-96.88 72.66 10.09 190.73 10.09 190.73-85.78 158.44 68.62 230.09 68.62 230.09s.43-16.93 2.19-85.7l-34.48 36.25 24.22-47.43-62.56-9.08 62.56-9.09-20.18-55.5 31.44 45.89c2.25-87.85 7.82-305.82 7.85-306.85l.01-2.43.02 1 .03-1 .01 2.43c.05 1.72 5.61 219.2 7.86 306.85z"],jenkins:[512,512,[],"f3b6","M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"],joget:[496,512,[],"f3b7","M227.5 468.7c-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1M66.1 143.9C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9-55.5-1.4-81.7-20.8-58.5-48.2 23.2-27.4 51.1-40.7 68.9-51.2 17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1m-29.2-18c-71.9 116.6-35.6 269.3 81 341.2 116.6 71.9 269.3 35.6 341.2-80.9 71.9-116.6 35.6-269.4-81-341.2-40.5-25.1-85.5-37-129.9-37C165 8 83.8 49.9 36.9 125.9m244.4 110.4c-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5c10.5-6.4 31.9-14 13.4-24.6-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6"],joomla:[448,512,[],"f1aa","M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"],js:[448,512,[],"f3b8","M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"],"js-square":[448,512,[],"f3b9","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"],jsfiddle:[576,512,[],"f1cc","M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"],kaggle:[291,512,[],"f5fa","M291.72 508.98c-.51 2.01-2.51 3.01-6.01 3.01h-66.92c-4.02 0-7.51-1.75-10.52-5.27L97.74 366.14l-30.82 29.32v109.02c0 5.02-2.51 7.52-7.52 7.52H7.52C2.5 512 0 509.5 0 504.48V7.51C0 2.51 2.5 0 7.52 0H59.4c5.01 0 7.52 2.51 7.52 7.51v306l132.32-133.82c3.51-3.5 7.02-5.26 10.52-5.26h69.18c6.96 0 7.9 7.87 5.26 10.52L144.35 320.26l145.86 181.2"],keybase:[412,512,[],"f4f5","M177.2 430.9c0 9.8-8 17.8-17.8 17.8s-17.8-8-17.8-17.8 8-17.8 17.8-17.8c9.8-.1 17.8 7.9 17.8 17.8zM270 413c-9.8 0-17.8 8-17.8 17.8s8 17.8 17.8 17.8 17.8-8 17.8-17.8-8-17.8-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3c4.8 26.7 15.7 51.3 31.2 72.3H46.1c-9.7-15.8-17.2-33-22.2-51.3L.1 454c0-74.9-5.5-147.6 61.5-215.2 20.2-20.4 43.7-36.2 69.1-46.7-6.8-13.5-9.5-29.2-7.8-46l-19.9-1.2c-17.9-1.1-31.6-16.5-30.6-34.4v-.1L74 84.2c1.1-17.1 15.4-30.6 32.5-30.6 1.3 0-.3-.1 28.2 1.7 13.9.8 21.5 9.8 22.8 11.4 7.1-10.4 14.5-20.5 24.6-34.5l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7C246 92.9 262 107 271 126c.4.9 15.5 29 1.2 62.6 19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM128 122.3c3.2-10 7.7-19.7 13.1-29.4.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6-4.6 0-8.3 3.5-8.6 8.1l-1.6 26.2c-.3 4.7 3.4 8.8 8.1 9.1l23.5 1.4zm25.8 61.8c5.6 9.4 14.1 16.1 22.3 20 0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7-10.3.4-19.7-5.4-23.7-15.3-13.7 21.2-37.2 62.5-17.6 95.1zm82.9 68.4L217 268.6c-1.9 1.6-2.2 4.4-.6 6.3l8.9 10.9c1 1.2 3.8 2.7 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zm118.4 25.7c-16.9-23.7-42.6-46.7-73.4-60.4-7.9-3.5-15-6.1-22.9-8.6-2 2.2-4.1 4.3-6.4 6.2l31.9 39.2c10.4 12.7 8.5 31.5-4.2 41.9-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9-8.6 0-16.6-3.8-22.1-10.5l-8.9-10.9c-6.3-7.8-7.9-17.9-5-26.8-8.2-9.9-8.3-21.3-4.6-30-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zM110.6 107.3l15.6 1 1-15.6-15.6-1-1 15.6z"],keycdn:[512,512,[],"f3ba","M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"],kickstarter:[448,512,[],"f3bb","M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z"],"kickstarter-k":[384,512,[],"f3bc","M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z"],korvue:[446,512,[],"f42f","M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"],laravel:[640,512,[],"f3bd","M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z"],lastfm:[512,512,[],"f202","M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"],"lastfm-square":[448,512,[],"f203","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z"],leanpub:[576,512,[],"f212","M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"],less:[640,512,[],"f41d","M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z"],line:[448,512,[],"f3c0","M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z"],linkedin:[448,512,[],"f08c","M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"],"linkedin-in":[448,512,[],"f0e1","M100.3 448H7.4V148.9h92.9V448zM53.8 108.1C24.1 108.1 0 83.5 0 53.8S24.1 0 53.8 0s53.8 24.1 53.8 53.8-24.1 54.3-53.8 54.3zM448 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448h-.1z"],linode:[448,512,[],"f2b8","M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z"],linux:[448,512,[],"f17c","M196.1 123.6c-.2-1.4 1.9-2.3 3.2-2.9 1.7-.7 3.9-1 5.5-.1.4.2.8.7.6 1.1-.4 1.2-2.4 1-3.5 1.6-1 .5-1.8 1.7-3 1.7-1 .1-2.7-.4-2.8-1.4zm24.7-.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm214.7 310.2c-.5 8.2-6.5 13.8-13.9 18.3-14.9 9-37.3 15.8-50.9 32.2l-2.6-2.2 2.6 2.2c-14.2 16.9-31.7 26.6-48.3 27.9-16.5 1.3-32-6.3-40.3-23v-.1c-1.1-2.1-1.9-4.4-2.5-6.7-21.5 1.2-40.2-5.3-55.1-4.1-22 1.2-35.8 6.5-48.3 6.6-4.8 10.6-14.3 17.6-25.9 20.2-16 3.7-36.1 0-55.9-10.4l1.6-3-1.6 3c-18.5-9.8-42-8.9-59.3-12.5-8.7-1.8-16.3-5-20.1-12.3-3.7-7.3-3-17.3 2.2-31.7 1.7-5.1.4-12.7-.8-20.8-.6-3.9-1.2-7.9-1.2-11.8 0-4.3.7-8.5 2.8-12.4 4.5-8.5 11.8-12.1 18.5-14.5 6.7-2.4 12.8-4 17-8.3 5.2-5.5 10.1-14.4 16.6-20.2-2.6-17.2.2-35.4 6.2-53.3 12.6-37.9 39.2-74.2 58.1-96.7 16.1-22.9 20.8-41.3 22.5-64.7C158 103.4 132.4-.2 234.8 0c80.9.1 76.3 85.4 75.8 131.3-.3 30.1 16.3 50.5 33.4 72 15.2 18 35.1 44.3 46.5 74.4 9.3 24.6 12.9 51.8 3.7 79.1 1.4.5 2.8 1.2 4.1 2 1.4.8 2.7 1.8 4 2.9 6.6 5.6 8.7 14.3 10.5 22.4 1.9 8.1 3.6 15.7 7.2 19.7 11.1 12.4 15.9 21.5 15.5 29.7zM220.8 109.1c3.6.9 8.9 2.4 13 4.4-2.1-12.2 4.5-23.5 11.8-23 8.9.3 13.9 15.5 9.1 27.3-.8 1.9-2.8 3.4-3.9 4.6 6.7 2.3 11 4.1 12.6 4.9 7.9-9.5 10.8-26.2 4.3-40.4-9.8-21.4-34.2-21.8-44 .4-3.2 7.2-3.9 14.9-2.9 21.8zm-46.2 18.8c7.8-5.7 6.9-4.7 5.9-5.5-8-6.9-6.6-27.4 1.8-28.1 6.3-.5 10.8 10.7 9.6 19.6 3.1-2.1 6.7-3.6 10.2-4.6 1.7-19.3-9-33.5-19.1-33.5-18.9 0-24 37.5-8.4 52.1zm-9.4 20.9c1.5 4.9 6.1 10.5 14.7 15.3 7.8 4.6 12 11.5 20 15 2.6 1.1 5.7 1.9 9.6 2.1 18.4 1.1 27.1-11.3 38.2-14.9 11.7-3.7 20.1-11 22.7-18.1 3.2-8.5-2.1-14.7-10.5-18.2-11.3-4.9-16.3-5.2-22.6-9.3-10.3-6.6-18.8-8.9-25.9-8.9-14.4 0-23.2 9.8-27.9 14.2-.5.5-7.9 5.9-14.1 10.5-4.2 3.3-5.6 7.4-4.2 12.3zm-33.5 252.8L112.1 366c-6.8-9.2-13.8-14.8-21.9-16-7.7-1.2-12.6 1.4-17.7 6.9-4.8 5.1-8.8 12.3-14.3 18-7.8 6.5-9.3 6.2-19.6 9.9-6.3 2.2-11.3 4.6-14.8 11.3-2.7 5-2.1 12.2-.9 20 1.2 7.9 3 16.3.6 23.9v.2c-5 13.7-5 21.7-2.6 26.4 7.9 15.4 46.6 6.1 76.5 21.9 31.4 16.4 72.6 17.1 75.3-18 2.1-20.5-31.5-49-41-68.9zm153.9 35.8c3.2-11 6.3-21.3 6.8-29 .8-15.2 1.6-28.7 4.4-39.9 3.1-12.6 9.3-23.1 21.4-27.3 2.3-21.1 18.7-21.1 38.3-12.5 18.9 8.5 26 16 22.8 26.1 1 0 2-.1 4.2 0 5.2-16.9-14.3-28-30.7-34.8 2.9-12 2.4-24.1-.4-35.7-6-25.3-22.6-47.8-35.2-59-2.3-.1-2.1 1.9 2.6 6.5 11.6 10.7 37.1 49.2 23.3 84.9-3.9-1-7.6-1.5-10.9-1.4-5.3-29.1-17.5-53.2-23.6-64.6-11.5-21.4-29.5-65.3-37.2-95.7-4.5 6.4-12.4 11.9-22.3 15-4.7 1.5-9.7 5.5-15.9 9-13.9 8-30 8.8-42.4-1.2-4.5-3.6-8-7.6-12.6-10.3-1.6-.9-5.1-3.3-6.2-4.1-2 37.8-27.3 85.3-39.3 112.7-8.3 19.7-13.2 40.8-13.8 61.5-21.8-29.1-5.9-66.3 2.6-82.4 9.5-17.6 11-22.5 8.7-20.8-8.6 14-22 36.3-27.2 59.2-2.7 11.9-3.2 24 .3 35.2 3.5 11.2 11.1 21.5 24.6 29.9 0 0 24.8 14.3 38.3 32.5 7.4 10 9.7 18.7 7.4 24.9-2.5 6.7-9.6 8.9-16.7 8.9 4.8 6 10.3 13 14.4 19.6 37.6 25.7 82.2 15.7 114.3-7.2zM415 408.5c-10-11.3-7.2-33.1-17.1-41.6-6.9-6-13.6-5.4-22.6-5.1-7.7 8.8-25.8 19.6-38.4 16.3-11.5-2.9-18-16.3-18.8-29.5-.3.2-.7.3-1 .5-7.1 3.9-11.1 10.8-13.7 21.1-2.5 10.2-3.4 23.5-4.2 38.7-.7 11.8-6.2 26.4-9.9 40.6-3.5 13.2-5.8 25.2-1.1 36.3 7.2 14.5 19.5 20.4 33.7 19.3 14.2-1.1 30.4-9.8 43.6-25.5 22-26.6 62.3-29.7 63.2-46.5.3-5.1-3.1-13-13.7-24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4 3.9-3.4 5.9-6.3 3.1-6.6-2.8-.3-2.6 2.6-6 5.1-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2-10.4 0-18.7-4.8-24.9-9.7-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"],lyft:[512,512,[],"f3c3","M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z"],magento:[448,512,[],"f3c4","M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z"],mailchimp:[428,512,[],"f59e","M426.56 323.72c-3.09-6.59-8.97-11.13-16.35-12.88-2.47-11.27-5.88-16.8-6.19-17.63 1.3-1.48 2.56-2.97 2.84-3.32 10.42-12.93 3.62-31.86-14.19-36.33-10.02-9.64-19.09-14.17-26.54-17.9-7.14-3.57-4.29-2.17-10.99-5.19-1.78-8.71-2.37-28.97-5.2-43.19-2.54-12.79-7.66-22.06-15.56-28.15-3.16-6.84-7.59-13.74-12.93-18.81 24.84-38.08 31.38-75.69 13.19-95.39-8.1-8.77-20.13-12.93-34.52-12.93-20.26 0-45.18 8.26-70.34 23.54 0 0-16.38-13.18-16.73-13.46-70.08-55.19-268.28 188.7-198.32 242l18.06 13.8c-11.34 31.54 4.43 69.14 37.29 81.21 7.26 2.67 15.14 3.97 23.31 3.51 0 0 53.09 97.36 165.1 97.39 129.58.04 162.55-126.72 162.9-127.86 0 .01 10.5-15.51 5.17-28.41zM20.12 267.95c-14.2-23.96 10.51-73.19 28.09-101.17C91.66 97.63 163.98 43.06 196.82 50.85l9.03-3.46c.03.03 24.67 20.85 24.7 20.87 16.97-10.19 38.58-20.57 58.8-22.64-12.3 2.77-27.29 9.15-45.05 20.01-.43.25-42.02 28.32-67.43 53.52-13.85 13.73-69.45 80.41-69.4 80.35 10.16-19.23 16.86-28.67 32.94-48.9 9.1-11.44 18.81-22.57 28.74-32.84 4.61-4.77 9.28-9.36 13.95-13.71 3.21-2.99 6.44-5.87 9.65-8.62 1.48-1.27 2.96-2.5 4.43-3.71l.01-.01L164.6 64.8l1.72 12.06 23.69 20.87s-20.96 14.11-31.39 23.01c-41.79 35.66-82.8 90.4-98.06 143.69l.73-.03c-7.6 4.19-15.14 10.91-21.73 20.05-.16-.04-17.04-12.43-19.44-16.5zm69.11 100.09c-25.03 0-45.33-21.37-45.33-47.72 0-26.36 20.29-47.72 45.33-47.72 6.49 0 12.66 1.44 18.24 4.02 0 0 9.63 4.86 12.34 27.81 2.82-7.17 4.24-13.06 4.24-13.06 3.23 9.88 4.88 20.26 4.23 30.76 2.68-3.56 5.55-10.27 5.55-10.27 5 29.33-16.4 56.18-44.6 56.18zm55.8-168.53s19.49-37.06 62.33-61.57c-3.19-.51-10.99.48-12.36.64 7.78-6.69 22.24-11.16 32.23-13.19-2.92-1.86-9.89-2.33-13.34-2.42-1.02-.03-1.01-.02-2.22.03 9.4-5.25 26.82-8.34 42.65-5.55-1.99-2.64-6.5-4.57-9.67-5.51-.28-.08-1.52-.39-1.52-.39l1.19-.28c9.54-1.84 20.69.15 29.5 3.69-1-2.32-3.45-5.03-5.29-6.74-.19-.18-1.29-.97-1.29-.97 9.22 1.91 18.06 5.94 24.71 10.5-.9-1.75-3.14-4.69-4.69-6.29 8.81 2.52 18.71 8.81 22.95 17.82.1.2.37.94.4 1.03-16.7-12.84-65.44-9.2-114.24 22.42-22.33 14.48-38.71 30.32-51.34 46.78zm263.32 146.34c-.59 1.15-6.73 34.4-41.86 62.01-44.37 34.86-102.66 31.33-124.67 11.8-11.76-11-16.85-26.73-16.85-26.73s-1.33 8.87-1.56 12.35c-8.87-15.09-8.12-33.52-8.12-33.52s-4.73 8.83-6.9 13.77c-6.53-16.62-3.16-33.78-3.16-33.78l-5.16 7.7s-2.42-18.81 3.52-34.47c6.36-16.74 18.68-28.9 21.11-30.42-9.35-2.97-20.12-11.49-20.14-11.51 0 0 4.28.28 7.26-.4 0 0-18.9-13.54-22.22-34.26 2.74 3.38 8.49 7.21 8.49 7.21-1.86-5.42-2.99-17.49-1.25-29.36l.01-.01c3.58-22.68 22.27-37.45 43.44-37.27 22.54.2 37.65 4.93 56.55-12.5 4-3.69 7.19-6.87 12.81-8.11.59-.13 2.06-.75 5.07-.75 3.05 0 5.98.69 8.67 2.29 10.25 6.1 12.46 22.01 13.56 33.68 4.07 43.28 2.43 35.57 19.94 44.49 8.36 4.25 17.74 8.29 28.43 19.72.03.03.08.09.08.09h.13c9.01.22 13.65 7.31 9.5 12.47-30.23 36.1-72.46 53.39-119.51 54.84-1.94.05-6.32.15-6.34.15-19.01.58-25.19 25.16-13.27 39.95 7.54 9.35 22.03 12.42 33.97 12.46l.17-.06c51.45 1.04 103.14-35.37 112.07-55.44.06-.15.61-1.42.61-1.42-2.07 2.43-52.18 49.61-113.08 47.9 0 0-6.66-.14-12.93-1.6-8.27-1.92-14.55-5.56-16.95-13.8 5.05 1.01 11.45 1.66 18.87 1.66 43.96 0 75.63-19.98 72.33-20.25-.13 0-.26.03-.48.08-5.13 1.19-57.97 21.66-91.37 11.16.08-1.02.24-2.01.48-2.9 2.97-9.95 8.25-8.56 16.79-8.93 30.48-1.01 55.07-8.68 73.5-17.43 19.65-9.33 34.63-21.35 40.03-27.42 7 11.79 6.96 26.92 6.96 26.92s2.74-.96 6.38-.96c11.38.01 13.73 10.23 5.09 20.6zm-149.29 13.7c0-.05-.01-.1-.01-.15.01.05.01.1.01.15zm-.01-.21c-.01-.13-.01-.26-.02-.39-.02-.65-.03-1.33 0-2.02-.02.74-.02 1.42 0 2.02.01.13.01.27.02.39zm.12 1.46c0 .02 0 .04.01.06 0-.02 0-.04-.01-.06zm.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zM193.96 59.68l2.87-8.83 4.88 17.72-6.03-1.95-1.72-6.94zm22.38 17.72l-3.62-12.59 9.97 8.36c-2.24 1.44-4.36 2.86-6.35 4.23zm42.71 281.94c-.01-.13-.01-.26-.02-.39.01.13.01.27.02.39zm-.01-.39c-.02-.65-.03-1.33 0-2.02-.03.75-.03 1.42 0 2.02zm.02.6c0-.05-.01-.1-.01-.15m.13 1.46c0-.02 0-.04-.01-.06m.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zm52.1-138.61c-.07-3.36.47-8.92 3.63-9.95h.01c5.41-1.88 12.58 11.98 12.91 24.28-4.28-2.14-9.3-3.05-14.47-2.6-1.3-3.97-1.92-7.7-2.08-11.73zM205.38 85.27l-13.59-11.38 20.57 6.28c-2.65 1.88-5 3.6-6.98 5.1zm27.7 166.94c-3.41 1.3-5.83 2.31-7 2.14-1.89-.28-.06-3.75 4.08-7.11 8.33-6.64 19.76-8.7 29.53-5.07 4.28 1.57 9.08 4.72 11.6 8.39.95 1.39 1.21 2.44.82 2.88-.77.9-3.51-.31-7.55-1.89-10.35-3.86-17.98-4.45-31.48.66zm14.55 14.53c-2.31.94-3.81 1.66-4.42 1.17-.62-.48-.01-2.42 2.15-4.51 1.88-1.81 3.83-2.83 6.07-3.77.35-.15.72-.28 1.1-.38 1.04-.28 2.09-.63 3.23-.8 9.12-1.55 15.8 3.51 14.93 4.98-.39.69-2.08.53-4.6.36-5.23-.36-10.71-.27-18.46 2.95zM60.86 323.12zm24.3-25.78c-1.85.39-.81.17-2.64.68a7 7 0 0 0-.77.25c-.58.27-1.11.45-1.62.73-.43.24-4.07 1.86-7.03 5.48-3.99 4.95-5.44 11.43-5.19 17.67.24 6.06 2.02 9.41 2.35 10.23 1.38 2.96-1.85 3.57-4.79.39l-.01-.01c-2.35-2.49-3.86-6.29-4.6-9.66-2.98-13.95 3.24-27.97 17.61-33.57.8-.32 1.74-.51 2.5-.73h-.01c1.47-.44 6.72-1.5 12.07-.67 5.87.91 11.04 3.85 14.33 7.67l.01.01c2.53 2.87 4.43 6.92 4.09 10.53v.01c-.13 1.5-.79 3.65-2.14 4.21-.5.21-1.01.1-1.36-.25-.98-.96-.22-2.93-2.6-6.3-3.17-4.47-10.31-8.76-20.2-6.67zm30.28 31.17c1.88 10.82-6 20.5-15.52 20.7-6.67.15-10.31-4.02-9.66-4.93.3-.43 1.32-.24 2.88-.01 8.5 1.32 13.66-3.86 14.9-9.29.02-.09.35-1.54.34-2.54.07-.88-.03-1.76-.16-2.56-1-5.62-7.45-6.68-11.6-11.15-3.72-4.04-2.99-9.22-.65-11.71 2.81-2.77 6.83-1.76 6.78-.78 0 .52-.97.91-2.17 1.74-1.56 1.1-1.77 2.16-1.37 3.98.26 1 .71 1.65 1.68 2.42 3.48 2.76 12.85 4.7 14.55 14.13zm212.87-81.47c2.58.4 4.22 3.59 3.67 7.13-.55 3.54-3.09 6.08-5.67 5.67-2.58-.4-4.22-3.59-3.67-7.13.56-3.53 3.09-6.07 5.67-5.67zm-28.33 10.31c1.42-2.59 5.44-3.11 8.99-1.16 3.55 1.94 5.27 5.62 3.86 8.2-1.42 2.59-5.44 3.11-8.99 1.16-3.55-1.94-5.28-5.61-3.86-8.2z"],mandalorian:[390,512,[],"f50f","M203.28 511.89c-.98-3.26-1.69-15.83-1.39-24.58.55-15.89.98-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-.96.4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-.99-11.43.16-4.81 0-10.53-.34-12.71-2.05-12.97-3.46-27.7-3.25-33.9.21-6.12.43-7.15 2.06-9.67 3.05-4.71 6.51-14.04 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74.89-4.42 2.43-9.72 4.36-15.05 2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71-1.03 1.49-4.76 4.8-8.29 7.36-8.37 6.08-11.7 9.39-12.66 12.58-.93 3.11-1.02 7.23-.16 7.76.34.21 1.29 2.4 2.11 4.88 1.62 4.88 1.87 10.12.72 15.36-.39 1.77-1.05 5.47-1.46 8.23-.41 2.76-.98 6.46-1.25 8.22-.28 1.76-.97 3.68-1.55 4.26-.96.96-1.14.91-2.05-.53-.55-.87-1.2-3.01-1.44-4.75-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-.96-20.96.92-1.73 1.67-3.81 1.67-4.61 0-2.39-2.2-5.32-7.41-9.89-7.05-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3.01-2.6 9.11-2.97 22.02l-.35 12.13 1.95 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56.07 11.84.95 22.75 2 24.71.36.66.51 1.35.34 1.52-.17.17.41 2.09 1.29 4.27.88 2.18 1.81 6.22 2.06 8.98.25 2.76 1.02 7.43 1.71 10.37 2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 57.98-2.04 61.21-.12 2.02-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4.02-4.79-2.83-9.95.7-3.01 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1.01-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73.38-1.29.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6.03-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57.02-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-10.96-1.9-23.85-14.55-6.15-6.04-12.34-11.97-13.75-13.19-2.81-2.42-2.79-1.99-.56-9.63l1.35-4.65-1.69-3.04c-.93-1.67-2.09-3.51-2.59-4.07-1.33-1.51-5.5-10.89-5.99-13.49-.31-1.66-.09-2.67.87-3.9 2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1.05 9.41 5.03 1.34 4.79 1.37 9.79.1 18.55-.53 3.68-.98 8.68-.99 11.11-.02 4.01.19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52 1.7.71 3.82 1.99 4.72 2.85 11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 7.98 4.54 10.04 13.39 1.31 5.65 4 11.14 5.46 11.14.59 0 2.09-.63 3.33-1.39 1.98-1.22 2.25-1.73 2.25-4.18-.01-3.71-1.17-14.08-2-17.84-.37-1.66-.78-4.06-.93-5.35-.14-1.29-.61-3.85-1.03-5.69-2.55-11.16-3.65-15.46-4.1-16.05-1.55-2.02-4.08-10.2-4.93-15.92-1.64-11.11-3.96-14.23-12.91-17.39-4.64-1.64-8.89-4.12-13.32-7.78-1.15-.95-4.01-3.22-6.35-5.06-2.35-1.83-4.41-3.53-4.6-3.76-.18-.23-1.39-1.14-2.69-2.02-6.24-4.22-8.84-6.98-11.26-11.96l-2.44-5.02-.22-12.98-.22-12.98 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2.05 8.53-.19 10.12.02 11.66 1.56 1.53 1.53 1.36 6.4-.29 8.5-.74.94-1.34 1.98-1.34 2.32 0 .58-2.61 4.91-5.42 8.99-.68.99-2.13 5.35-2.37 6.82 20.44 13.39 21.55 3.77 14.07 28.98l11.4 2.54c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-11.98-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28 3.18-.92 6.58-1.68 7.55-1.68.97 0 3.66-.58 5.98-1.29 3.65-1.11 4.5-1.17 6.35-.4 1.17.48 3.79 1.09 5.82 1.36 2.02.26 4.72 1.12 6 1.91 1.28.79 3.53 1.77 5.02 2.17 2.51.68 3 .57 7.05-1.67l4.35-2.4 10.7-.41c10.44-.4 10.81-.47 15.26-2.68l4.58-2.3 2.46 1.43c1.76 1.02 3.14 2.73 4.85 5.98 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39.5 1.96 1.45 4.62 2.1 5.91.65 1.29 1.24 3.09 1.31 4.01.31 4.33-.03 5.3-2.41 6.92-2.17 1.47-6.98 7.91-6.98 9.34 0 .32-.48 1.69-1.07 3.03-5.04 11.51-6.76 13.56-14.26 16.98-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26-.37.69-2.21 2.37-4.09 3.71-2.04 1.47-3.8 3.38-4.38 4.78-.54 1.28-1.66 2.59-2.49 2.91-.83.32-1.94 1.08-2.45 1.71-.52.62-3.66 3.04-7 5.38-3.33 2.34-6.87 5.02-7.87 5.96-1 .94-2.07 1.71-2.39 1.71s-1.28.74-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6.22 1.63.86 4.27 1.42 5.88 1.32 3.8 1.31 7.86-.05 10.57-1.43 2.86-.89 6.65 1.35 9.59 2.01 2.63 2.16 4.56.71 8.84-.61 1.8-1.05 5.45-1.06 8.91-.02 4.88.22 6.28 1.46 8.38 1.2 2.04 1.82 2.48 3.24 2.32 1.98-.23 2.3-1.05 4.71-12.12 2.18-10.03 3.71-11.92 13.76-17.08 2.94-1.51 7.46-3.96 10.03-5.44 2.58-1.48 6.79-3.69 9.37-4.91 6.67-3.16 11.05-6.52 15.22-11.67 7.11-8.79 9.98-16.22 12.85-33.3.55-3.28 1.43-5.65 2.86-7.73 1.29-1.87 2.37-4.62 2.89-7.31 1.02-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8.03-2.18 3.11-6.46 13.01-8.76 20.26l-2.29 7.22-6.97 6.49c-3.83 3.57-7.96 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 9.99 0 2.98.43 4.96 1.59 7.26.87 1.74 1.81 3.91 2.09 4.83.28.92.98 2.22 1.57 2.89 1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12.02-4.7 12.02-1.79 0-4.06 9.27-5.07 20.74-.18 2.02-.62 5.94-.98 8.7-.36 2.76-.96 9.98-1.35 16.05-.77 12.22-.19 18.77 2.05 23.15 3.41 6.69.52 12.69-11.03 22.84l-3.97 3.49.07 5.19c.04 2.86.55 6.85 1.14 8.87 4.61 15.98 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15.42 1.84.91 5 1.08 7.02.17 2.02.66 5.33 1.08 7.36.47 2.26.78 11.02.79 22.74l.02 19.06-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2.02-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3.02-17.66-3.03-21.3-.01-4.23 1.02-6 5.28-9.13 4.14-3.04 4.86-3.14 5.48-.72.28 1.1 1.45 5.62 2.6 10.03 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-.98 7.07-1.17 12.39-1.04 28.43.17 19.4-.64 35.73-2.04 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-70.99-37.58c-.24-.38-1.01-5.24-1.73-10.79-.72-5.56-1.49-10.41-1.73-10.79-.23-.38-.68-3.3-.99-6.49-.31-3.19-.91-7.46-1.33-9.48-.99-4.79-3.35-19.35-3.42-21.07-.03-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29.96-.96 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83-.18 4.6-.49 9.87-.67 11.71-.18 1.84-.61 9.36-.94 16.72-.79 17.41-1.94 31.29-2.65 32-.32.3-.76.24-1-.14zM74.63 162.61c21.07 12.79 17.84 14.15 28.49 17.66 13.01 4.29 18.87 7.13 23.15 16.87-43.66 36.14-69.01 57.9-76.71 70.82-31.02 52.01-5.99 101.59 62.75 87.21-14.18 29.23-77.97 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179.02c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-67.96 2.98-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.27 70.58-78.66 91.12-105.29 61.65z"],markdown:[640,512,[],"f60f","M593.85 452.92H46.15C20.7 452.92 0 432.22 0 406.77V105.23c0-25.45 20.7-46.15 46.15-46.15h547.69c25.45 0 46.15 20.7 46.15 46.15v301.54c.01 25.45-20.69 46.15-46.14 46.15zm-440-92.3v-120l61.54 76.92 61.54-76.92v120h61.54V151.38h-61.54l-61.54 76.92-61.54-76.92H92.31v209.23h61.54zM566.15 256h-61.54V151.38h-61.54V256h-61.54l92.31 107.69L566.15 256z"],mastodon:[417,512,[],"f4f6","M417.8 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.5-28.4-290.4 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.4-.9-9-.9-13.9 85.6 20.9 158.6 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H75.1c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"],maxcdn:[512,512,[],"f136","M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"],medapps:[320,512,[],"f3c6","M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"],medium:[448,512,[],"f23a","M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"],"medium-m":[512,512,[],"f3c7","M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z"],medrt:[544,512,[],"f3c8","M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z"],meetup:[512,512,[],"f2e0","M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"],megaport:[496,512,[],"f5a3","M248 8C111.04 8 0 119.04 0 256c0 136.97 111.04 248 248 248 136.96 0 248-111.03 248-248C496 119.04 384.96 8 248 8zm85.46 267.67l59.66 59.67v87.05l-26.07 19.23L341 422.39v-65.46l-33.44-33.44-33.44 33.44v65.46L248 441.62l-26.12-19.23v-65.46l-33.44-33.44L155 356.92v65.46l-26.07 19.23-26.06-19.23v-87.05l59.47-59.47V188l59.5-59.5V52.88l26.06-19.23 26.06 19.23v75.64l59.5 59.5m-85.56-11.86l33.44 33.44V276L248 309.33l-33.54-33.54v-66.2l33.44-33.43z"],microsoft:[448,512,[],"f3ca","M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"],mix:[448,512,[],"f3cb","M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"],mixcloud:[640,512,[],"f289","M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z"],mizuni:[496,512,[],"f3cc","M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"],modx:[448,512,[],"f285","M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"],monero:[496,512,[],"f3d0","M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"],napster:[496,512,[],"f3d2","M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"],neos:[456,512,[],"f612","M387.44 512h-95.11L184.12 357.46v91.1L97.69 512H0V29.82L40.47 0h108.05l123.74 176.13V63.45L358.69 0h97.69v461.5L387.44 512zM10.77 35.27v460.72l72.01-52.88V193.95l215.49 307.69h84.79l52.35-38.17h-78.27L40.96 12.98 10.77 35.27zm82.54 466.61l80.04-58.78V342.06L93.55 227.7v220.94l-72.58 53.25h72.34zM52.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L142.91 10.77H52.63zm230.4 180.88l72.01 102.81V15.93l-72.01 52.96v122.76z"],nimblr:[355,512,[],"f5a8","M232.6 299.29c15.57 0 27.15 11.46 27.15 26.96 0 15.55-11.62 26.96-27.15 26.96-15.7 0-27.15-11.57-27.15-26.96 0-15.51 11.58-26.96 27.15-26.96zM99.01 326.25c0-15.61 11.68-26.96 27.15-26.96 15.57 0 27.15 11.46 27.15 26.96 0 15.41-11.47 26.96-27.15 26.96-15.44 0-27.15-11.31-27.15-26.96m78.75-167.3C143 158.95 75.45 178.77 45.25 227L0 0v335.48C0 433.13 79.61 512 177.76 512c98.24 0 177.76-78.95 177.76-176.52 0-97.46-79.39-176.53-177.76-176.53zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59 0-72.68 59.24-131.59 132.51-131.59 73.27 0 132.51 58.91 132.51 131.59s-59.25 131.59-132.51 131.59z"],"nintendo-switch":[448,512,[],"f418","M95.9 33.5c-44.6 8-80.5 41-91.8 84.4C0 133.6-.3 142.8.2 264.4.4 376 .5 378.6 2.4 387.3c10.3 46.5 43.3 79.6 90.3 90.5 6.1 1.4 13.9 1.7 64.1 1.9 51.9.4 57.3.3 58.7-1.1 1.4-1.4 1.5-19.3 1.5-222.2 0-150.5-.3-221.3-.9-222.6-.9-1.7-2.5-1.8-56.9-1.7-44.2.1-57.5.4-63.3 1.4zm83.9 222.6V444l-37.8-.5c-34.8-.4-38.5-.6-45.5-2.3-29.9-7.7-52-30.7-58.3-60.7-2-9.4-2-240.1-.1-249.3 5.6-26.1 23.7-47.7 48-57.4 12.2-4.9 17.9-5.5 57.6-5.6l35.9-.1v188zm-75.9-131.2c-5.8 1.1-14.7 5.6-19.5 9.7-9.7 8.4-14.6 20.4-13.8 34.5.4 7.3.8 9.3 3.8 15.2 4.4 9 10.9 15.6 19.9 20 6.2 3.1 7.8 3.4 15.9 3.7 7.3.3 9.9 0 14.8-1.7 20.1-6.8 32.3-26.3 28.8-46.4-3.9-23.7-26.6-39.7-49.9-35zm158.2-92.3c-.4.3-.6 100.8-.6 223.5 0 202.3.1 222.8 1.5 223.4 2.5.9 74.5.6 83.4-.4 37.7-4.3 71-27.2 89-61.2 2.3-4.4 5.4-11.7 7-16.2 5.8-17.4 5.7-12.8 5.7-146.1 0-106.4-.2-122.3-1.5-129-9.2-48.3-46.1-84.8-94.5-93.1-6.5-1.1-16.5-1.4-48.8-1.4-22.4-.1-40.9.2-41.2.5zm99.1 202.1c14.5 3.8 26.3 14.8 31.2 28.9 3.1 8.7 3 21.5-.1 29.5-5.7 14.7-16.8 25-31.1 28.8-23.2 6-47.9-8-54.6-31-2-7-1.9-18.9.4-26.2 6.9-22.7 31-36.1 54.2-30z"],node:[640,512,[],"f419","M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z"],"node-js":[448,512,[],"f3d3","M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"],npm:[576,512,[],"f3d4","M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"],ns8:[640,512,[],"f3d5","M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z"],nutritionix:[400,512,[],"f3d6","M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"],odnoklassniki:[320,512,[],"f263","M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z"],"odnoklassniki-square":[448,512,[],"f264","M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z"],"old-republic":[496,512,[],"f510","M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z"],opencart:[640,512,[],"f23d","M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"],openid:[448,512,[],"f19b","M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"],opera:[496,512,[],"f26a","M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"],"optin-monster":[576,512,[],"f23c","M550.671 450.303c0 11.62-15.673 19.457-32.158 14.863-12.16-3.243-31.346-17.565-36.211-27.294-5.674-11.62 4.054-32.698 18.916-30.806 15.674 1.621 49.453 25.401 49.453 43.237zM372.86 75.223c-3.783-72.151-100.796-79.718-125.928-23.51 44.588-24.321 90.257-15.673 125.928 23.51zM74.795 407.066c-15.673 1.621-49.452 25.401-49.452 43.237 0 11.62 15.673 19.457 32.157 14.863 12.16-3.243 31.076-17.565 35.94-27.294 5.946-11.62-3.782-32.698-18.645-30.806zm497.765 14.322c1.081 3.513 1.892 7.026 1.892 10.809.81 31.616-44.317 64.045-73.503 65.125-17.295.81-34.59-8.377-42.696-23.51-113.497 4.053-226.994 4.864-340.22 0-8.377 15.133-25.672 24.05-42.967 23.51-28.915-1.081-74.043-33.509-73.503-65.125.27-3.783.811-7.296 1.892-10.809-5.566-9.463-4.845-15.282 5.405-11.62 3.243-5.134 7.026-9.458 11.08-13.782-2.57-10.917 1.27-14.094 11.079-9.188 4.594-3.243 9.998-6.485 15.944-9.188 0-15.757 11.839-11.131 17.295-5.675 12.467-1.78 20.129.709 26.753 5.675v-19.726c-12.987 0-40.641-11.375-45.94-36.212-4.974-20.725 2.607-38.075 25.132-47.56.81-5.945 8.107-14.052 14.862-15.944 7.567-1.892 12.431 4.594 14.052 10.269 7.425 0 17.757 1.465 21.078 8.107 5.405-.541 11.079-1.352 16.484-1.892-2.432-1.892-5.134-3.513-8.107-4.594-5.134-8.917-13.782-11.079-24.591-11.62 0-.81 0-1.621.27-2.702-19.727-.541-44.048-5.675-54.857-17.835-21.321-23.638-15.935-83.577 12.16-103.498 8.377-5.675 21.618-.811 22.699 9.728 2.425 20.598.399 26.833 26.212 25.942 8.107-7.836 16.755-14.592 26.483-19.997-14.862-1.352-28.914 1.621-43.778 3.783 12.752-12.48 23.953-25.442 56.748-42.427 23.511-11.89 49.993-20.808 76.205-23.239-18.646-7.837-39.993-11.891-59.721-16.484 76.475-16.214 174.569-22.159 244.289 37.562 18.105 15.403 32.427 36.211 42.696 59.992 39.799 4.853 36.47-5.581 38.643-25.132 1.081-10.269 14.322-15.403 22.699-9.458 14.862 10.539 22.159 30.806 24.59 48.101 2.162 17.835.27 41.345-12.43 55.127-10.809 12.16-34.32 17.565-53.776 18.105v2.703c-11.08.27-20.268 2.432-25.673 11.62-2.972 1.081-5.674 2.703-8.377 4.594 5.675.54 11.35 1.351 16.755 1.891 1.869-5.619 12.535-8.377 21.077-8.377 1.621-5.405 6.756-11.89 14.052-10.269s14.052 9.998 14.863 15.944c10.809 4.324 22.159 12.16 25.131 25.672 1.892 8.107 1.621 15.133.27 21.888-5.726 25.262-33.361 36.212-45.939 36.212 0 6.756 0 13.241-.27 19.726 8.01-6.006 16.367-7.158 26.752-5.675 5.919-5.919 17.565-9.41 17.565 5.675 5.675 2.703 11.349 5.945 15.944 9.188 10.1-5.051 13.669-.539 10.809 9.188 4.053 4.323 8.107 8.917 11.079 13.782 10.136-3.62 11.021 2.078 5.409 11.62zm-73.773-254.016c17.295 6.756 26.212 22.159 30.265 35.67 1.081-10.539-2.702-39.453-13.782-51.073-7.296-7.296-14.052-5.134-14.052.81.001 6.216-1.35 11.62-2.431 14.593zm-18.646 12.43c12.971 15.673 17.024 41.615 12.7 62.963 10.809-2.162 20.537-6.215 26.212-12.16 1.892-2.162 3.783-4.864 4.864-7.566-1.081-21.348-10.269-42.697-29.725-48.912-3.242 3.243-9.187 4.864-14.051 5.675zm-21.889.811c7.567 20.537 12.431 42.696 14.322 64.585 3.513 0 7.567-.27 11.62-.811 5.945-24.321-.27-51.614-14.052-63.504-3.783 0-8.107 0-11.89-.27zM77.768 167.372c-1.081-2.973-2.432-8.377-2.432-14.593 0-5.945-7.026-8.107-14.052-.81-11.35 11.62-14.863 40.534-13.782 51.073 4.053-13.512 12.971-28.915 30.266-35.67zm5.675 75.394c-4.324-21.348-.27-47.291 12.701-62.963-4.865-.811-10.809-2.432-14.052-5.675-19.457 6.215-28.375 27.563-29.726 48.912 1.351 2.702 2.972 5.404 4.864 7.566 5.675 6.215 15.403 9.998 26.213 12.16zm41.345-61.073c-5.134 1.081-9.998 2.973-14.862 4.865l-12.16 5.134v-.27c-7.296 14.052-9.999 34.319-5.405 52.965 4.594.541 8.647.811 12.7.811 2.432-22.159 9.188-43.778 19.727-63.505zm88.095-23.239c0 42.155 34.319 76.205 76.205 76.205s76.205-34.05 76.205-76.205c0-41.886-34.319-75.935-76.205-75.935s-76.205 34.049-76.205 75.935zm152.41 97.283c9.969 50.608 3.299 64.692 16.484 58.099 15.944-8.107 22.699-39.183 22.97-57.019-12.971-.81-26.213-.81-39.454-1.08zm-71.611-.541v-.27c-.27 5.134.27 38.103 4.324 41.075 11.079 5.405 39.453 4.594 51.073 1.081 5.405-1.621 2.432-37.022 1.621-41.886-18.916-.27-38.102-.27-57.018 0zm-14.053 0v-.27c-19.456.27-38.642.27-57.829.811-1.892 9.187-4.594 48.911 1.892 51.614 12.971 5.675 41.616 5.134 54.586 1.621 4.595-2.432 2.433-45.399 1.351-53.776zm-85.662 57.56c5.405 2.432 8.647 2.432 9.728-4.324 1.892-8.647 2.432-36.752 4.865-52.155-12.16.27-24.591.811-36.752 1.621-5.405 19.727.27 45.129 22.159 54.858zm-65.666-11.08c43.778 47.02 92.689 85.663 155.923 106.47 67.558-19.186 115.659-59.991 163.219-107.011-11.095-4.315-7.715-10.363-7.296-11.62-8.918-.81-17.835-1.892-26.483-2.702-9.458 32.968-35.94 52.965-46.75 31.616-2.702-5.134-3.513-11.62-4.594-16.754-3.783 8.377-13.242 8.107-24.591 8.918-13.241 1.081-31.617 1.351-44.048-2.972-2.972 12.971-11.079 12.971-26.752 14.322-14.052 1.352-48.642 4.054-54.857-10.809-1.081 28.644-35.13 9.998-45.129-7.026-3.243-5.675-5.405-11.35-7.026-17.565-7.837.81-15.673 1.621-23.511 2.702 2.443 3.663 1.549 9.052-8.105 12.431zM115.6 453.545c-5.674-23.239-18.646-49.722-33.508-54.046-22.429-6.756-68.909 23.51-66.207 54.586 12.701 19.457 39.994 35.67 59.181 36.481 17.835.81 35.94-11.08 39.724-28.914.539-2.432.81-5.134.81-8.107zm7.296-5.944c33.509-19.457 69.179-35.671 105.931-47.02-38.643-20.537-68.098-47.831-97.283-77.016-2.162 1.352-5.134 2.432-7.836 3.513-1.637 4.91 8.718 5.33 5.405 12.431-2.162 4.054-8.648 7.567-15.133 9.188-2.161 2.702-5.134 4.864-7.836 6.485h-.27c-.27 13.511-.27 27.024.27 40.535 8.939 15.964 15.426 33.314 16.752 51.884zm320.764 12.7c-36.752-21.348-74.044-41.345-115.659-52.965-13.782 6.215-27.833 11.349-42.155 15.403-2.162.811-2.162.811-4.324 0-11.89-3.783-23.239-8.107-34.859-13.241-40.265 11.62-77.286 29.185-112.416 50.803h-.27v.27c.27 0 .27 0 .27-.27 103.227 4.054 206.455 3.513 309.413 0zm27.023-64.045l-.27.27c.541-13.782.811-27.563.811-41.345-2.973-1.621-5.675-4.054-8.107-6.756-6.485-1.351-12.971-5.134-15.133-8.918-1.892-4.053 1.351-7.566 5.945-10.269-.27-.541-.541-1.621-.541-2.432-2.972-.811-5.405-1.892-7.567-3.243-31.616 29.455-65.396 56.749-103.498 76.746 38.914 11.62 75.935 28.104 111.875 47.561 1.05-14.692 7.231-35.749 16.485-51.614zm23.24 3.244c-14.593 4.323-27.834 30.806-33.509 54.046 0 23.826 21.278 37.897 40.534 37.022 19.186-.811 46.48-17.024 59.181-36.481 2.973-31.077-43.507-61.344-66.206-54.587zM290.709 134.133c.045 0 .089.003.134.003.046 0 .09-.003.136-.003h-.27zm0 96.743c28.645 0 51.884-21.618 51.884-48.371 0-36.092-40.507-58.079-72.151-44.318 9.458 2.972 16.484 11.62 16.484 21.618 0 23.257-33.291 31.955-46.48 11.35-7.297 34.067 19.368 59.721 50.263 59.721zM68.039 474.083c.54 6.486 12.16 12.701 21.618 9.458 6.756-2.703 14.593-10.539 17.295-16.214 2.973-7.026-1.081-19.997-9.728-18.375-8.917 1.621-29.725 16.754-29.185 25.131zm410.75-25.131c-8.377-1.621-12.431 11.349-9.458 18.375 2.432 5.675 10.269 13.511 17.295 16.214 9.187 3.243 21.078-2.972 21.348-9.458.811-8.377-20.267-23.51-29.185-25.131z"],osi:[495,512,[],"f41a","M0 259.2C2.3 123.4 97.4 26.8 213.8 11.1c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.7-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 6.4-42.4-24.5-78.7-64.5-82.2-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119C1.9 318.7 1.6 280.2 0 259.2zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 31.9 18.4 49.5 53.8 45.2 90.4-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.2 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161C459.8 112 354.1 14.7 218 31.5 111.9 44.5 22.7 134 20.9 257.3z"],page4:[496,512,[],"f3d7","M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"],pagelines:[384,512,[],"f18c","M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"],palfed:[576,512,[],"f3d8","M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z"],patreon:[512,512,[],"f3d9","M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"],paypal:[384,512,[],"f1ed","M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"],"penny-arcade":[640,512,[],"f704","M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z"],periscope:[448,512,[],"f3da","M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"],phabricator:[496,512,[],"f3db","M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z"],"phoenix-framework":[640,512,[],"f3dc","M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"],"phoenix-squadron":[513,512,[],"f511","M96.24 62.81C142.91 26.57 202.15 6.57 261.28 8.08c29.67-.38 59.29 5.38 87.17 15.37-24.2-4.64-49.18-6.35-73.6-2.45-43 5.35-83.26 27.23-112.16 59.35 5.69-.99 10.81-3.68 16.07-5.88 18.19-7.89 37.6-13.29 57.4-14.87 19.8-2.14 39.75-.43 59.45 1.93-14.46 2.79-29.2 4.58-43.11 9.61-34.53 11.11-65.46 33.26-86.55 62.82-13.84 19.77-23.7 42.99-24.74 67.33-.35 16.54 5.23 34.91 19.89 44.17 11.13 6.66 24.85 9.39 37.63 6.76 15.49-2.47 30.16-8.67 43.73-16.38 11.55-6.84 22.73-14.59 32.05-24.32 3.8-3.23 2.54-8.48 2.63-12.83-2.13-.34-4.4-1.11-6.32.3a203.975 203.975 0 0 1-35.93 15.42c-20.07 6.19-42.28 8.48-62.28.78 12.83 1.73 26.14.31 37.85-5.46 20.29-9.75 36.92-25.27 54.6-38.88 27.84-21.29 57.64-40.11 89.17-55.47 25.78-12.01 53.09-22.85 81.81-24.2-15.68 13.76-32.25 26.6-46.92 41.51-14.55 14.04-27.54 29.58-40.23 45.31-3.53 4.61-8.98 6.96-13.62 10.19-22.24 15.03-40.6 35.96-52.04 60.28-9.36 19.74-14.55 41.97-11.81 63.84 1.95 13.73 8.74 27.67 20.96 35.01 12.94 7.99 29.14 8.09 43.61 5.11 32.9-7.47 61.61-28.97 81.28-56 20.5-27.6 30.61-62.38 29.25-96.64-.52-7.52-1.58-15-1.67-22.55 8.02 19.54 14.87 39.83 16.7 61.01 2.01 14.32.75 28.84-1.62 43.02-1.92 11.02-5.69 21.58-7.81 32.53 20.36-22.73 34.17-51.24 39.46-81.31 5.72-35.37.58-72.36-14.25-104.95 20.84 32.12 32.43 69.79 35.81 107.8.5 12.77.5 25.58 0 38.34-2.91 34.26-12.97 67.95-29.76 98-26.2 47.48-68.2 85.89-117.54 108.32-78.52 36.34-175.2 31.41-248.72-14.72-38.84-23.78-71.06-58.32-91.68-98.96C10.72 337.43 2.04 305.5 0 273.13V241.7c3.94-69.97 40.99-136.32 96.24-178.89m222.65 80.57c5.51-.8 10.82-2.57 16.02-4.5 4.99-1.77 9.27-5.95 10.35-11.25-8.91 5-17.95 9.95-26.37 15.75z"],php:[640,512,[],"f457","M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"],"pied-piper":[448,512,[],"f2ae","M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"],"pied-piper-alt":[576,512,[],"f1a8","M242 187c6.3-11.8 13.2-17 25.9-21.8 27.3-10.3 40.2-30.5 58.9-51.1 11.9 8.4 12 24.6 31.6 23v21.8l6.3.3c37.4-14.4 74.7-30.2 106.6-54.6 48.3-36.8 52.9-50 81.3-100l2-2.6c-.6 14.1-6.3 27.3-12.4 39.9-30.5 63.8-78.7 100.3-146.8 116.7-12.4 2.9-26.4 3.2-37.6 8.9 1.4 9.8 13.2 18.1 13.2 23 0 3.4-5.5 7.2-7.5 8.6-11.2-12.9-16.1-19.3-22.7-22.1-7.6-3.5-63.9-6.4-98.8 10zm137.9 256.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9L244 246zm-12.6 31.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zM555.5 0l-.6 1.1-.3.9.6-.6.3-1.4zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46v27.3l11.8-3.4-2.9-23.8h-8.9zm76.1 2.9c0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3l2 12.4c9-1.5 58.4-6.6 58.4-14.1z"],"pied-piper-hat":[640,512,[],"f4e5","M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"],"pied-piper-pp":[448,512,[],"f1a7","M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"],pinterest:[496,512,[],"f0d2","M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"],"pinterest-p":[384,512,[],"f231","M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"],"pinterest-square":[448,512,[],"f0d3","M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"],playstation:[576,512,[],"f3df","M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z"],"product-hunt":[512,512,[],"f288","M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z"],pushed:[432,512,[],"f3e1","M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"],python:[448,512,[],"f3e2","M167.8 36.4c-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1zm-6.7 28.4c11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4zm185.2 81.4v47.5c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6-7.7-30.9-22.3-54.2-53.4-54.2h-40.1zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3z"],qq:[448,512,[],"f1d6","M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z"],quinscape:[489,512,[],"f459","M301.9 474.6h-1.3c-87.3 0-158.1-70.8-158.1-158.1s70.8-158.1 158.1-158.1c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C489.1 117.5 379.6 8 244.5 8 109.5 8 0 117.5 0 252.6s109.5 244.6 244.5 244.6c24.8 0 47.8-3.2 70.4-10.1-5.2-3.5-9-8.2-13.4-12.6l.4.1zm-21.2-69.8c0-54.8 44.4-99.2 99.2-99.2 54.8 0 99.2 44.4 99.2 99.2 0 54.8-44.4 99.2-99.2 99.2-54.8 0-99.2-44.4-99.2-99.2"],quora:[448,512,[],"f2c4","M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z"],"r-project":[581,512,[],"f4f7","M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"],ravelry:[512,512,[],"f2d9","M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z"],react:[512,512,[],"f41b","M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zm-130 189.1c4.6 8.8 9.3 17.5 14.3 26.1 5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5zm0-50.6c-6.3-14.9-11.6-29.5-16-43.6 14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26zm11.4 25.3c6.6-13.8 13.8-27.3 21.4-40.6 7.6-13.3 15.8-26.2 24.4-38.9 15-1.1 30.3-1.7 45.9-1.7 15.6 0 31 .6 45.9 1.7 8.5 12.6 16.6 25.5 24.3 38.7 7.7 13.2 14.9 26.7 21.7 40.4-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6-15.7 0-30.9-.5-45.6-1.4-8.7-12.7-16.9-25.7-24.6-39-7.7-13.3-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 210.2c25.3 0 45.8 20.5 45.8 45.8 0 25.3-20.5 45.8-45.8 45.8-25.3 0-45.8-20.5-45.8-45.8 0-25.3 20.5-45.8 45.8-45.8"],readme:[576,512,[],"f4d5","M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z"],rebel:[512,512,[],"f1d0","M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z"],"red-river":[448,512,[],"f3e3","M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z"],reddit:[512,512,[],"f1a1","M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z"],"reddit-alien":[512,512,[],"f281","M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"],"reddit-square":[448,512,[],"f1a2","M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z"],rendact:[496,512,[],"f3e4","M248 8C111 8 0 119 0 256s111 248 248 248c18.6 0 36.7-2.1 54.1-5.9-5.6-7.4-10.8-14.4-15.9-21.3-12.4 2.1-25.2 3.3-38.3 3.3C124.3 480 24 379.7 24 256S124.3 32 248 32s224 100.3 224 224c0 71-33 134.2-84.5 175.3-25.9 18.8-39.1 21.4-83.5-44.2-78.7-112.9-48-71.1-73.7-108.3 72.8 8.9 228.5-72 168.6-168.6C314-26.8 15 93.8 59.7 226.4c3.2 9.8 14.4 38.6 45.6 38.6 2 0 2.6-.6 2-1.7-4.4-8.7-20.1-9.8-20.1-37.4 0-40.5 40.5-89.6 100.3-120 66.1-32.3 131.9-30.2 158.2 5.4 27.2 38.3-20.9 119.2-120.4 136.9 7.5-9.4 57-75.2 62.8-84 22.7-34.6 23.6-49 14-59.2-15.5-16.9-29.5-10.3-50.7-11.7-10.8-.9-113.7 181.2-136.4 216.9-5.9 9-21.2 34.1-21.2 50.9 0 21.3 2.8 51.4 20.6 51.4 10.6 0 8-18.7 8-26.6 0-12.9 27.4-49.4 74.8-104.6 20.4 36.1 57.7 114.3 130.2 209.7 98-33.1 168.5-125.8 168.5-235C496 119 385 8 248 8z"],renren:[512,512,[],"f18b","M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"],replyd:[448,512,[],"f3e6","M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z"],researchgate:[448,512,[],"f4f8","M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"],resolving:[496,512,[],"f3e7","M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z"],rev:[410,512,[],"f5b2","M270.67 274.89c0 36.16-29.41 65.57-65.56 65.57s-65.57-29.41-65.57-65.57 29.41-65.56 65.57-65.56 65.56 29.4 65.56 65.56zm139.55-5.05h-.13c-1.49-61.55-30.1-116.35-74.32-152.98l-45.38 26.2c43.17 28.03 71.81 76.63 71.81 131.82 0 86.62-70.47 157.09-157.09 157.09S48.02 361.5 48.02 274.88c0-81.86 62.96-149.27 142.99-156.43v39.12l108.76-62.79L191.01 32v38.32C84.31 77.57 0 166.36 0 274.89c0 111.59 89.12 202.29 200.06 204.98v.13h210.16V269.84z"],rocketchat:[448,512,[],"f3e8","M448 256.2c0-87.2-99.6-153.3-219.8-153.3-18.8 0-37.3 1.6-55.3 4.8-11.1-10.5-24.2-20-38-27.4C61.2 44.2 0 79.4 0 79.4s56.9 47.1 47.6 88.3c-52.3 52.3-52.5 124.1 0 176.6C56.9 385.6 0 432.6 0 432.6s61.2 35.2 134.9-.8c13.8-7.5 26.9-16.9 38-27.4 18 3.2 36.5 4.8 55.3 4.8 120.3-.1 219.8-65.8 219.8-153zm-219.7 124c-23.7 0-46.3-2.8-67.3-7.8-21.3 25.8-68.1 61.7-113.6 50.1 14.8-16 36.7-43.1 32-87.6-27.3-21.4-43.6-48.7-43.6-78.5 0-68.4 86.2-123.9 192.5-123.9S420.8 188 420.8 256.4c0 68.3-86.2 123.8-192.5 123.8zm25.6-123.9c0 14.2-11.5 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.5-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm88.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm-177.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.2 0 25.6 11.6 25.6 25.8z"],rockrms:[496,512,[],"f3e9","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"],safari:[512,512,[],"f267","M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z"],sass:[640,512,[],"f41e","M551.1 291.9c-22.4.1-41.8 5.5-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-3.8 11.1-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-2.7 11.4-5.3 19.1-2.6 7.7-33.9 77.3-42.1 95.4-4.2 9.2-7.8 16.6-10.4 21.6s-.2.3-.4.9c-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2-.8 0-1.4 2-1.4 2s10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.4-35.4 189.9-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8C367 196.5 415.1 130.2 401 74.7 386.6 18.3 293.1-.2 204.6 31.2 151.9 49.9 94.9 79.3 53.9 117.6 5.2 163.2-2.6 202.9.6 219.5c11.4 58.9 92.6 97.3 125.1 125.7-1.6.9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5s1.4 9.7 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2s0 .1.1.2c-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 6.2-2.2 13.4-5.7 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6s1.4 9.7 6.2 25.8c2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 6.5-2.2 14.3-5.7 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8-2.1 14.6-13.8 22.6-17.7 25-3.9 2.4-5.1 3.3-4.8 5.1.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3C54.6 451 59.3 421.4 82 400c13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.3 30.4.3 57.2-19.1 78.3zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5.1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.8 1.9 7.4 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4z"],schlix:[448,512,[],"f3ea","M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"],scribd:[384,512,[],"f28a","M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"],searchengin:[460,512,[],"f3eb","M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"],sellcast:[448,512,[],"f2da","M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"],sellsy:[640,512,[],"f213","M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"],servicestack:[496,512,[],"f3ec","M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"],shirtsinbulk:[448,512,[],"f214","M395.208 221.583H406v33.542h-10.792v-33.542zm0-9.625H406v-33.542h-10.792v33.542zm0 86.333H406V264.75h-10.792v33.541zM358.75 135.25h-33.542v10.5h33.542v-10.5zm36.458 206.208H406v-33.542h-10.792v33.542zM311.5 135.25h-33.542v10.5H311.5v-10.5zm-47.25 0H231v10.5h33.25v-10.5zm-47.25 0h-33.25v10.5H217v-10.5zm178.208 33.542H406V135.25h-33.542v10.5h22.75v23.042zm-255.792 259l30.625 13.417 4.375-9.917-30.625-13.417-4.375 9.917zM179.083 445l30.334 13.708 4.374-9.916-30.333-13.417-4.375 9.625zm216.125-60.375H406v-33.542h-10.792v33.542zm-334.833 8.167L91 406.208l4.375-9.624-30.625-13.709-4.375 9.917zm39.666 17.499l30.625 13.417 4.375-9.917-30.625-13.416-4.375 9.916zm132.417 38.501l4.375 9.916L267.459 445l-4.375-9.625-30.626 13.417zm118.417-52.208l4.375 9.624 30.624-13.416-4.374-9.917-30.625 13.709zM311.5 413.791l4.375 9.917 30.625-13.417-4.374-9.916-30.626 13.416zm-39.667 17.501l4.375 9.917 30.625-13.417-4.375-9.917-30.625 13.417zM311.5 46.583h-33.542v10.5H311.5v-10.5zm94.209 0h-33.251v10.5h33.251v-10.5zm-188.709 0h-33.25v10.5H217v-10.5zm141.75 0h-33.542v10.5h33.542v-10.5zm-94.5 0H231v10.5h33.25v-10.5zM448 3.708v406l-226.334 98.584L0 409.708v-406h448zm-29.166 116.958H29.166V390.75l192.792 85.75 196.875-85.75V120.666zm0-87.791H29.166V91.5h389.667V32.875zM75.542 46.583H42.291v10.5h33.251v-10.5zm94.5 0H136.5v10.5h33.542v-10.5zm-47.251 0H89.25v10.5h33.542v-10.5zm7.584 236.542c0-50.167 41.125-91.292 91.292-91.292 50.458 0 91.292 41.125 91.292 91.292 0 50.458-40.833 91.292-91.292 91.292-50.167-.001-91.292-40.834-91.292-91.292zm120.75 18.084c0 13.125-23.917 14.291-32.666 14.291-12.25 0-29.75-2.625-35.875-14.875h-.875L172.666 319c14.876 9.333 29.167 12.25 47.25 12.25 19.542 0 51.042-5.833 51.042-31.209 0-48.125-78.458-16.333-78.458-37.916 0-13.125 20.708-14.875 29.75-14.875 10.791 0 29.166 3.208 35.583 13.124h.875l8.751-16.916c-15.167-6.125-27.417-11.959-44.334-11.959-20.125 0-49.583 6.417-49.583 31.792 0 44.334 77.583 11.959 77.583 37.918zM122.791 135.25H89.25v10.5h33.542v-10.5zm-69.999 10.5h22.75v-10.5H42v33.542h10.792V145.75zm0 32.666H42v33.542h10.792v-33.542zm117.25-43.166H136.5v10.5h33.542v-10.5zm-117.25 86.333H42v33.542h10.792v-33.542zm0 86.334H42v33.542h10.792v-33.542zm0-43.167H42v33.542h10.792V264.75zm0 86.333H42v33.542h10.792v-33.542z"],shopware:[495,512,[],"f5b5","M395.5 455.27c-42.95 31.79-93.95 48.59-147.48 48.59-137.21 0-248.02-111-248.02-248 0-137.19 111.04-248 248.02-248 61.3 0 120.14 22.55 165.68 63.5 2.62 2.36.58 6.64-2.86 6.18-17.67-2.43-36.75-3.66-56.71-3.66-129.36 0-222.4 53.47-222.4 155.35 0 109.04 92.13 145.88 176.83 178.73 33.64 13.04 65.4 25.36 86.96 41.59 1.9 1.44 1.89 4.31-.02 5.72zm99.46-222.32c-.08-.94-.55-1.83-1.27-2.44-51.76-42.96-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62.01 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93 1.88 1.05 4.26.19 5.05-1.82 18.89-48.39 17.94-90.23 15.93-113.31z"],simplybuilt:[512,512,[],"f215","M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"],sistrix:[448,512,[],"f3ee","M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"],sith:[448,512,[],"f512","M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z"],skyatlas:[640,512,[],"f216","M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"],skype:[448,512,[],"f17e","M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"],slack:[448,512,[],"f198","M244.2 217.5l19.3 57.7-59.8 20-19.3-57.7 59.8-20zm41.4 243.7C131.6 507.4 65 471.6 18.8 317.6S8.4 97 162.4 50.8C316.4 4.6 383 40.4 429.2 194.4c46.2 154 10.4 220.6-143.6 266.8zM366.2 265c-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-19.3-57.7 29-9.7c12.2-3.9 18.6-17.2 14.7-29.4-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-59.8 20.1-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l19.3 57.7-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 59.8-20.1 10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 29-9.7c12.2-4.2 18.6-17.5 14.7-29.6z"],"slack-hash":[448,512,[],"f3ef","M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z"],slideshare:[512,512,[],"f1e7","M249.429 211.436c0 31.716-27.715 57.717-61.717 57.717-34.001 0-61.716-26.001-61.716-57.717 0-32.001 27.715-57.716 61.716-57.716 34.001 0 61.717 25.715 61.717 57.716zm254.294 50.002c-18.286 22.573-53.144 50.288-106.289 72.003C453.722 525.163 260 555.735 263.143 457.446c0 1.714-.286-52.859-.286-93.432-4.285-.858-8.571-2-13.714-3.143 0 40.858-.286 98.289-.286 96.575C252 555.735 58.278 525.163 114.566 333.441c-53.145-21.715-88.003-49.43-106.29-72.003-9.143-13.714.858-28.287 16.001-17.715 2 1.428 4.285 2.857 6.285 4.285V49.716C30.563 22.287 51.135 0 76.565 0h359.157c25.429 0 46.002 22.287 46.002 49.716v198.293l6-4.285c15.143-10.573 25.143 4 15.999 17.714zm-46.572-189.15c0-32.858-10.572-45.716-40.859-45.716H98.566c-31.716 0-40.573 10.858-40.573 45.716v192.293c67.717 35.43 125.72 29.144 157.435 28.001 13.429-.286 22.001 2.286 27.144 7.715 1.689 1.687 10.023 9.446 20.287 17.143 1.143-15.715 10.001-25.715 33.716-24.858 32.287 1.428 91.718 7.715 160.577-29.716V72.288zM331.146 153.72c-34.002 0-61.716 25.715-61.716 57.716 0 31.716 27.715 57.717 61.716 57.717 34.287 0 61.716-26.001 61.716-57.717 0-32.001-27.429-57.716-61.716-57.716z"],snapchat:[496,512,[],"f2ab","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"],"snapchat-ghost":[512,512,[],"f2ac","M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z"],"snapchat-square":[448,512,[],"f2ad","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"],soundcloud:[640,512,[],"f1be","M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z"],speakap:[430,512,[],"f3f3","M55.01 391.78C-24.4 303.59-16.95 167.42 71.65 87.64s224.8-72.96 304.21 15.24 71.96 224.36-16.64 304.14c-18.74 16.87 64.03 43.09 42.02 52.26-82.06 34.21-253.91 35.04-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32.02-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 79.96-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 85.98 52.26-.37 21.28-26.42 25.81-38.59 25.6-2.98-.05-30.23-.46-47.61-24.62l-39.95 42.61c28.16 27.01 58.99 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-84.96-19.45-84.43-49.75.41-23.25 30.96-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z"],spotify:[496,512,[],"f1bc","M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"],squarespace:[512,512,[],"f5be","M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z"],"stack-exchange":[448,512,[],"f18d","M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"],"stack-overflow":[384,512,[],"f16c","M293.7 300l-181.2-84.5 16.7-36.5 181.3 84.7-16.8 36.3zm48-76L188.2 95.7l-25.5 30.8 153.5 128.3 25.5-30.8zm39.6-31.7L262 32l-32 24 119.3 160.3 32-24zM290.7 311L95 269.7 86.8 309l195.7 41 8.2-39zm31.6 129H42.7V320h-40v160h359.5V320h-40v120zm-39.8-80h-200v39.7h200V360z"],staylinked:[440,512,[],"f3f5","M201.6 127.4c4.1-3.2 10.3-3 13.8.5l170 167.3-2.7-2.7 44.3 41.3c3.7 3.5 3.3 9-.7 12.2l-198 163.9c-9.9 7.6-17.3.8-17.3.8L2.3 314.6c-3.5-3.5-3-9 1.2-12.2l45.8-34.9c4.2-3.2 10.4-3 13.9.5l151.9 147.5c3.7 3.5 10 3.7 14.2.4l93.2-74c4.1-3.2 4.5-8.7.9-12.2l-84-81.3c-3.6-3.5-9.9-3.7-14-.5l-.1.1c-4.1 3.2-10.4 3-14-.5l-68.1-64.3c-3.5-3.5-3.1-9 1.1-12.2l57.3-43.6m14.8 257.3c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7"],steam:[496,512,[],"f1b6","M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z"],"steam-square":[448,512,[],"f1b7","M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"],"steam-symbol":[448,512,[],"f3f6","M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z"],"sticker-mule":[576,512,[],"f3f7","M353.1 509.8c-5.9 2.9-32.1 3.2-36.5-.5-4.1-3-2.2-11.9-1.5-15 2.2-15-2.5-7.9-9.8-11.5-3.1-1.5-4.1-5.5-4.6-10-.5-1.5-1-2.5-1.5-3.5-1.7-10.7 6.8-33.6 8.2-43.4 4.9-23.7-.7-37.2 1.5-46.9 3.7-16.2 4.1-3.5 4.1-29.9-1.4-25.9 3.3-36.9.5-38.9-14.8 0-64.3 10.7-112.2 2-46.1-8.9-59.4-29-65.4-30.9-10.3-4.5-23.2.5-27.3 7-.1.1-35 70.6-39.6 87.8-6.2 20.5-.5 47.4 4.1 66.8 0 .1 4.5 14.6 10.3 19.5 2.1 1.5 5.1 2.5 7.2 4.5 2.8 2.7 9.4 15.2 9.8 16 2.6 4.5 3.6 8-1.5 10.5-3.6 2-9.3 2.5-14.4 2.5-2.6.5-1.5 3.5-3.1 5-2.9 2.8-20.7 6.1-29.9 2.5-2.6-1-5.7-3-6.2-5-1.5-4 2.1-9-1-12.5-4.5-2.9-13.1-2-17-12-2.2-5.4-2.6-7.6-2.6-49.4 0-9.7-5.9-38.7-8.2-46.9-1.5-5.5-1.5-11.5 0-16 .3-.9 4.1-4.6 4.1-13-1-1.5-4.6-.5-5.1-1.5-10.4-80.6-5.9-79-7.7-98.3-1.5-16-10.9-43.9-6.7-64.3.5-2.4 3.4-21 24.2-38.9 31-26.7 48.4-38.3 159-11.5 1.1.4 66.3 21.1 110.7-9 15.5-11.3 28.8-11.3 35.5-16 .1-.1 61.7-52.1 87-65.3 47.2-29.4 69.9-16.7 75.1-18 4.7-1 13.4-25.8 17-25.8 5.5 0 1.6 20.2 3.6 25.9.5 2 3.6 5 6.2 5 2.3 0 1.7-.8 10.3-5 8.4-5.4 14.9-17.6 20.6-17 11.7 1.6-19 41.6-19 46.9 0 2 .2.8 4.6 9.5 2.6 5.5 4.6 13.5 6.2 20 8.3 29.7 5.7 14.6 13.4 36.9 20.2 50.1 20.6 45.2 20.6 52.9 0 7.5-4.1 11-7.2 16.5-1.5 3-4.6 7.5-7.2 8-2.7.7 7-1.5-13.4 2.5-7.2 1-13.4-4.5-14.9-9.5-1.6-4.7 2.8-10.1-11.8-22.9-10.3-10-21.1-11.3-31.9-17-9.8-5.7-11.9 1-18 8-18 22.9-34 46.9-52 69.8-11.8 15-24.2 30.4-33.5 47.4-3.9 6.8-9.5 28.1-10.3 29.9-6.2 17.7-5.5 25.8-16.5 68.3-3.1 10-5.7 21.4-8.7 32.4-2.2 6.8-7.4 49.3-.5 59.4 2.1 3.5 8.7 4.5 11.3 8 .1.1 9.6 18.2 9.3 20 0 6.1-9.4 5.6-11.3 6.5-4.8 2.9-3.8 5.9-6.4 7.4"],strava:[369,512,[],"f428","M301.6 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220h-67.6zM151.4 0L0 292h89.2l62.2-116.1L213.1 292h88.5L151.4 0z"],stripe:[640,512,[],"f429","M640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9m-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4h-45.9zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7m-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8M346.4 124v36.2l-44.6 9.5v-36.2l44.6-9.5m-44.5 59.2h44.6v153.2h-44.6V183.2zm-47.8 13.1c10.4-19.1 31.1-15.2 37.1-13.1V224c-5.7-1.8-23.4-4.5-33.9 9.3v103.1H213V183.2h38.4l2.7 13.1m-89-13.1h33.7V221h-33.7v63.2c0 26.2 28 18 33.7 15.7v33.8c-5.9 3.2-16.6 5.9-31.2 5.9-26.3 0-46.1-17-46.1-43.3l.2-142.4 43.3-9.2.1 38.5zM44.9 228.3c0 20 67.9 10.5 67.9 63.4 0 32-25.4 47.8-62.3 47.8-15.3 0-32-3-48.5-10.1v-40c14.9 8.1 33.9 14.2 48.6 14.2 9.9 0 17-2.7 17-10.9 0-21.2-67.5-13.2-67.5-62.4 0-31.4 24-50.2 60-50.2 14.7 0 29.4 2.3 44.1 8.1V230c-13.5-7.3-30.7-11.4-44.2-11.4-9.3.1-15.1 2.8-15.1 9.7"],"stripe-s":[362,512,[],"f42a","M144.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C287.3 7.2 240.1 0 192.8 0 77.1 0 0 60.4 0 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5c53 22.8 106.8 32.4 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9"],studiovinari:[512,512,[],"f3f8","M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"],stumbleupon:[512,512,[],"f1a4","M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z"],"stumbleupon-circle":[496,512,[],"f1a3","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"],superpowers:[448,512,[],"f2dd","M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"],supple:[640,512,[],"f3f9","M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"],teamspeak:[511,512,[],"f4f9","M.82 237.82c2.36-15.52 10.69-27.04 24.88-34.03 3.5-1.85 5.65-3.5 6.37-7.81 6.17-33.41 19.53-63.94 39.37-91.59 2.36-3.19 4.01-5.35 1.03-9.35-3.7-5.35-1.03-10.18 2.98-14.49 28.06-31.87 61.88-55.1 101.98-67.44 95.81-29.4 180.1-9.35 252.37 60.45 6.68 6.37 15.52 12.85 6.99 24.36-1.34 1.85 1.03 3.5 2.16 5.04 20.66 28.06 34.23 59.42 40.4 93.65.82 3.7 2.98 5.04 5.86 6.37 17.37 8.84 25.7 23.34 26.01 42.25 0 17.17 1.85 34.54-1.03 51.71-4.01 24.67-29.19 41.74-53.25 36.7-7.2-1.64-9.35-7.2-9.35-14.19 0-28.06.82-56.44 0-84.6-1.85-75.76-36.18-132.81-102.28-169.41C234.28 4.98 92.11 72.42 67.54 196.91c-6.06 30.42-1.74 48.27-3.7 125.82-.31 7.2-4.32 11.2-12.03 11.51C20.97 335.58 0 316.05 0 285.21v-20.87m221.74 106.81c11.82-4.32 20.05-11.82 22.51-24.36 2.36-12.34-12.03-30.02-32.38-48.73-20.87-19.22-48.22-39.06-63.43-46.57-21.69-12.03-41.74-1.85-46.26 22.72-5.04 26.21 0 51.4 14.49 73.91 10.18 15.52 25.39 22.72 43.38 24.05 11.62.62 52.54 2.16 61.69-1.02m129.83 5.55c36.5 2.81 59.33-28.55 58.39-60.45-2.14-45.17-66.17-16.48-87.79-8.02-73.16 28.14-45.05 54.92-22.2 60.75m149.26-1.33c-2.98-2.36-7.2-1.03-8.33 2.36-8.02 25.39-44.72 112.46-172.08 121.51-149.67 10.49 80.29 43.59 145.36-6.37 22.72-17.37 47.6-35.05 46.57-85.43-.32-10.07-4.84-26.72-11.52-32.07"],telegram:[496,512,[],"f2c6","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"],"telegram-plane":[448,512,[],"f3fe","M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"],"tencent-weibo":[384,512,[],"f1d5","M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z"],"the-red-yeti":[505,512,[],"f69d","M484.41 241.74l20.66 7.13c-9.56-23.91-23.93-36.96-31.72-44.76l7.13-18.2c.25 0 12.28-27.79-2.46-30.74-.63-11.35-6.59-27.05-18.44-27.05-7.62-10.57-17.71-12.3-30.74-5.9-8.85 4.18-17.71 10.08-25.33 16.48-5.3-6.44-2.95.38-2.95-29.76-37.08-24.28-45.4-11.73-74.76 2.95l.49.49c-21.15-7.62-44.02-12.05-68.36-13.28-5.55-8.71-18.6-19.1-25.08-25.08l24.84 7.13c-5.49-5.49-26.78-12.91-34.18-15.25 18.2-4.11 29.78-20.77 42.54-32.95-34.92-10.08-67.87-5.9-97.88 11.8L179.97.48 178.24 0c-31.6 24.16-32.99 41.9-33.69 45.49-.91-2.39-6.32-19.61-15.25-27.05-3.44 8.85-3.44 17.21-.49 25.33 2.95 8.36 5.9 14.76 8.36 18.94-16.04-3.3-28.35-4.9-49.18 0H84.3l32.95 14.26c-20.66 19.43-35.9 41.81-46.72 67.38l-1.72 8.36 1.72 1.72 7.62-4.67c-3.33 11.64-5.27 19.39-6.64 25.82-11.31 12.79-20.41 26.07-27.79 40.33-14.97 1-31.82 10.78-40.33 14.26l2.95 3.44 28.77.98c-.49.98-.74 2.21-1.23 3.2-7.29 6.38-39.78 37.65-32.95 80.66l20.17-22.38c.49 1.72.74 3.44 1.23 5.16 0 25.53.37 89.64 64.92 150.5 43.78 40.1 96.16 60.27 157.64 60.27 121.73 0 223.05-87.29 223.05-211.49 6.8-9.72-1.24 3.03 16.72-25.08l13.03 14.26 2.46-.49c-1.72-11.31-4.67-22.38-8.85-34.18-2.22-6.4-4.68-10.33-6.89-13.28zm-15.49-41.32l-14.26-11.8 18.2-1.23-3.94 13.03zm-74.76-89.27l-.49 21.89c5.52 18.13 16.88 17.21 22.38 17.21l-3.44-4.67 22.38-5.41c-10.08.49-18.94.49-27.05 0 12.81-2.13 33.32-29.03 43.04-11.31 3.44 7.62 6.39 17.21 9.34 27.79l1.72-5.9c-1.23-4.18-1.72-9.34-1.72-15.25 5.41.49 8.85 3.44 9.34 10.08.49 6.39 1.72 14.76 3.44 25.33l4.67-11.31c4.59 0 4.47-3.61-2.46 20.66-20.89-8.7-35.09-8.36-46.48-8.36l18.2-15.98c-25.28 8.15-33.03 10.8-54.84 20.9-1.08-5.41-4.98-13.5-15.98-19.92-3.18 3.82-2.76.9-.74 14.76h-2.46c-1.23-8.36-4.18-15.98-8.36-23.12l4.18-3.44c8.36-7.13 11.8-14.26 10.57-21.89-.49-6.39-5.41-13.53-13.53-20.66 5.66-3.2 15.25-.25 28.29 8.6zm-39.59-10.08c2.69 1.92 11.4 5.38 18.94 17.21 4.2 8.4 3.98 9.81 3.44 11.07-.48 2.41-.46 4.33-2.95 7.13-1.72 2.46-5.41 4.67-11.8 7.62-7.62-13.03-16.48-23.61-27.79-31.23l20.16-11.8zM87.25 143.12l1.23-1.72c1.23-2.95 4.18-7.62 9.34-15.25l2.46-3.44-13.03 12.3 5.41-4.67-10.08 9.34-4.18 1.23c12.3-24.1 23.12-41.31 32.46-50.17 9.34-9.34 15.98-15.98 20.17-19.43l-6.39 1.23c-11.31-4.18-19.43-7.13-24.84-8.36 2.46-.49 3.69-.49 3.2-.49 10.33 0 17.46.49 20.9 1.23 5.41 1.72 10.57 2.46 15.98 2.46l.49-1.72-8.36-35.9 13.53 29.02c1.72-2.46 4.18-7.13 5.9-14.26 1.72-6.39 5.41-13.03 10.08-19.43 4.67-6.39 7.62-10.57 9.34-11.31-2.95 8.85-4.67 17.21-6.39 25.33l-1.72 7.13-.49 4.67 2.46 2.46c21.89-13.53 45.49-19.43 71.32-18.94l21.15.49c-11.8 13.53-27.79 21.89-48.45 24.84-8.61 1.48-16.23 2.46-23.36 2.95l-.25-.49-2.46-1.23c-5.16-.98-9.84-.25-14.02 1.97-2.46-.25-4.92-.49-7.13-.74l-2.46 1.72.49 1.23c1.97.25 3.93.49 6.15.74l-1.97 3.44 3.44-.49-10.57 11.31c-4.18 2.95-5.41 6.39-4.18 9.34l5.41-3.44h1.23c6.39-8.36 15.25-13.53 25.33-15.25v-2.95c6.39.49 13.03.98 19.43 1.23 6.39 0 8.36.49 5.41 1.23 7.62 4.18 14.26 8.85 20.66 13.53 13.53 10.08 23.61 21.89 30 35.41 8.85 18.2 13.53 37.13 13.53 56.56 0 10.08-1.23 19.43-2.95 28.28-2.35 10.79-7.8 29.62-15.98 45.99l2.46.49c18.23-19.67 41.9-15.98 49.18-15.98l-6.39 5.9 22.38 17.71-1.72 30.74c-5.41-12.3-16.48-21.15-32.95-27.79 16.48 14.76 23.61 21.15 21.89 20.17-4.81-2.81-3.53-1.87-10.82-3.69 4.12 4.12 17.45 18.79 18.2 20.66l.25.25-.25.25c0 1.76 1.56-1.18-14.02 22.87-75.15-15.31-106.26-42.74-141.16-63.2l11.8 1.23c-11.75-18.53-15.63-17.72-38.36-26.07l10.57-8.36c-8.85-2.95-18.2-2.95-28.28.49l7.62-10.57-1.23-1.72c-14.89 4.34-19.85 9.17-22.62 11.31-1.14-5.46-2.77-12.44-12.3-28.77l-1.23 27.05-13.53-5.41c1.47-25.11 5.4-50.44 13.27-74.54zm276.41 330.03c-49.92 24.96-56.13 22.41-59.02 23.85-29.76-11.8-50.9-31.72-63.45-58.77l30 16.48c-9.77-9.31-18.34-16.54-38.36-44.27l11.8 23.12-17.71-7.62c14.2 21.08 23.47 51.74 66.64 73.53-120.77 24.15-199.03-72.11-200.91-74.27 11.31 9.34 23.12 17.71 35.41 24.84 3.44 1.72 7.13 2.46 10.08 1.23l-15.98-20.66c9.23 4.19 9.49 4.5 69.1 29.02-42.54-20.66-73.78-40.82-93.2-60.25-.49 6.39-1.23 10.08-1.23 10.08 8.85 7.62 15.98 16.48 20.66 26.56-39.05-18.85-57.59-47.61-71.32-82.63 49.89 55.1 118.85 37.49 120.5 37.13 34.79 16.43 69.87 23.61 113.86 10.57 3.32 0 20.3 16.98 25.33 39.1l4.18-2.95-2.46-23.61c8.95 8.95 24.9 22.56 34.43 13.03-15.58-5.32-23.52-9.49-29.51-31.72 4.58 4.2 7.57 9.05 27.79 15l1.23-1.23-10.57-14.26c11.65-4.85-3.54 1.01 31.97-10.82 4.34 34.23 9.05 49.15.74 89.52zM479 258.71l-2.46.49 2.95 9.34c-3.55 5.87-23.73 44.26-71.56 79.68-39.54 29.76-76.58 39.13-80.91 40.33l-7.62-7.13-1.23 2.95 14.26 15.98-7.13-4.67 3.44 4.18h-1.23l-21.89-13.53 9.34 26.56-18.94-27.79-1.23 2.46 7.62 29.02c-6.11-8.24-21.03-32.61-56.81-39.59l32.46 21.15c-31.97 4.67-63.2 2.46-93.2-6.39-4.18-1.23-8.85-2.46-13.53-4.18l1.23-2.95-44.76-22.38 26.07 22.38c-57.66 9.08-112.96-25.41-126.4-83.37l-2.46-16.48-22.35 22.38c19.47-57.51 25.61-57.89 51.4-70.09-9.09-5.33-1.55-3.26-38.36-9.34 15.78-5.79 33.05-15.44 73.04 5.16 2.95-1.48 2.14-1.1 3.69-1.72.64-3.18.41-.82.98-11.8 3.89 10.01 3.63 8.67 2.95 9.34l1.72.49c12.69-6.49 8.92-4.52 16.97-8.85l-5.41 13.53 22.38-5.9-8.36 8.36 2.46 2.46c4.5-1.8 30.35 3.42 40.82 15.98l-23.61-2.46c39.39 22.98 51.46 53.97 55.82 69.59l1.72-1.23c-2.84-22.28-12.37-33.88-15.98-40.08 4.22 4.99 39.2 34.56 110.42 45.99-11.31-.49-23.12 5.41-34.92 18.94l46.72-20.17-9.34 21.89c7.62-10.08 14.76-23.61 21.15-39.59v-.49l1.23-2.95-1.23 15.98c13.53-41.81 25.33-78.45 35.41-109.68l13.53-27.79v-1.97l-5.41-4.18h10.08l5.9 4.18 2.46-1.23-3.44-15.98 12.3 18.94 41.81-20.17-14.76 13.03.49 2.95 17.71-.49c11.31.49 21.89 1.72 32.95 4.18l-23.61 2.46-1.23 2.95 26.56 23.12c10.08 10.08 18.94 20.66 27.05 31.97-11.24-3.29-10.28-3.44-21.15-3.44l12.3 32.46-8.87-12.79zm-277.89-89.03c-34.85 14.42-34.73 13.98-36.15 14.26-20.83 4.73-18.97-24.44-18.94-24.84l5.9-1.23-.49-2.46c-20.17-2.65-31.03 4.17-32.46 4.92.49.49 2.95 3.44 5.9 9.34 4.18-6.39 8.85-10.08 15.25-10.57-1.72 11.31-1.23 22.38 1.72 33.69.07.51 2.57 17.44 27.54 24.1 11.31 2.95 27.05 1.23 48.94-5.41l-9.34.49c-4.18-14.76-6.39-24.84-5.9-29.51 11.31-8.85 21.89-11.31 30.74-7.62h2.46l-11.8-7.62-7.13.49c-5.9 1.23-12.3 4.18-19.43 8.36l3.19-6.39zm11.07-86.81l-2.46.49.49 2.95c8.36-.49 17.21 1.23 26.07 5.9-2.5-5.54-9.97-14.26-28.28-14.26l.49 2.46 3.69 2.46zm-67.14 56.07c-4.04-6.35-3.09-5.05-4.67-6.64 21.69 16.76 16.48 21.41 46.48 23.61l-2.95-4.67c8.85-7.62 13.53-17.21 14.76-28.28 1.72-15.98-1.23-29.51-8.85-41.31l13.03-7.62c0-.49 0-1.23-.49-1.72-4.67-1.72-9.34-1.23-13.53 1.72-12.68 6.67-27.99 20.94-29.02 22.38-1.72 1.72-3.44 5.9-5.41 13.53-1.72 7.13-2.95 14.76-2.95 23.61-4.68-7.96-10.52-6.4-19.92-5.9l7.13 7.62c-16.47 0-23.32 15.43-23.61 15.98 6.81-.01 4.6-7.6 30-12.31zm14.02-25.33c1.23-7.62 3.44-13.03 6.39-17.21 5.41-6.39 10.57-10.08 15.98-11.8 4.18-1.72 7.13 1.23 10.08 9.34 2.46 7.62 3.44 16.48 2.95 25.33-.49 9.34-3.44 17.21-8.36 23.12-2.95 3.44-5.41 5.9-6.39 7.62-4.67.49-8.36 0-11.31-.49l-7.13-3.44-5.41-6.39c.99-10.09 1.48-18.94 3.2-26.08zm62.71-21.39c-6.39-3.44-10.57 2.95-12.3 18.94s2.46 29.51 11.8 39.59c9.34 10.08 18.2 10.57 26.07 2.95 7.87-7.62 3.44-23.61-11.31-47.71-3.19-5.41-7.87-10.08-14.26-13.77zm-4.67 46.23c5.36 2.23 10.51 1.91 12.3-10.57v-4.67l-1.23.49c-4.28-3.05-2.55-4.49-1.72-6.15l.49-.49c-.88-1.23-5.02-8.11-12.54 4.67-.49-13.53.49-21.89 2.95-24.84 1.23-2.46 4.67-1.23 11.31 4.18 6.39 5.41 11.31 15.98 15.25 32.46 6.59 28.06-19.7 26.26-26.81 4.92zm-45.01-5.41c1.57.31 9.34-1.09 9.34-14.76h-.49c-5.44-1.09-2.24-5.47-.74-5.9-1.72-2.95-3.44-4.18-5.41-4.67-8.15 0-11.65 12.66-8.12 21.15 1.24 2.46 3.21 3.69 5.42 4.18zm45.99 61.48c1.72 10.57 4.67 17.71 8.85 21.89-9.26 6.61-27.54 13.85-46.48 15.98l.49 1.23c8.36 1.23 16.48.49 24.84-2.46l-7.13 13.03c4.18-1.72 10.08-7.13 17.71-14.76 11.93-5.51 12.72-5.07 20.17-15.98-12.73-6.58-15.76-13.83-18.45-18.93z"],themeco:[441,512,[],"f5c6","M199.74 12.29c9.74-5.64 25.59-5.73 35.39-.21l188.13 105.95c9.81 5.52 17.76 19.14 17.76 30.38v213.87c0 11.26-7.93 24.89-17.71 30.46L235.09 499.88c-9.78 5.57-25.58 5.48-35.29-.21L17.58 392.95C7.87 387.26 0 373.52 0 362.27V148.41c0-11.26 7.9-24.96 17.63-30.59L199.74 12.29zM123.54 209c-15.69 0-31.39.14-47.08.14v99.87h18.83v-29.39h28.25c48.94 0 48.79-70.62 0-70.62zm137.96 98.73l-30.25-34.1c36.4-7.39 34.26-64.21-10.7-64.49-15.84 0-31.67-.14-47.51-.14v100.01h18.83v-33.38H210l29.1 33.38h22.4v-1.28zm-40.94-81.04c22.98 0 22.9 31.96 0 31.96h-28.68v-31.96h28.68zm-94.07-1.57c20.85 0 20.78 38.24 0 38.24H94.68v-38.23l31.81-.01zm189.65-17.97c-67.4 0-69.86 104.15 0 104.15 68.39-.01 68.33-104.15 0-104.15zm0 17.12c43.43 0 44.1 69.76 0 69.76-44.12 0-43.74-69.76 0-69.76z"],themeisle:[512,512,[],"f2b2","M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z"],"trade-federation":[496,512,[],"f513","M202.45 108.42v81.61H38.94l48.22 61.91h114.73v196.75h64.61V252.96h83.27v-62.69h-83.18V171.1h145.62v-62.68H202.45zm4.86 6h197.77v50.68H259.44v30.93h83.18v50.93h-83.26v195.73h-52.73V245.94H89.86l-39.95-49.91h157.4v-81.61zM247.99 8.8C111.03 8.8 0 119.83 0 256.8s111.03 248 247.99 248S496 393.76 496 256.8 384.96 8.8 247.99 8.8zm.02 13.24c129.66 0 234.76 105.12 234.76 234.78s-105.1 234.76-234.76 234.76S13.23 386.47 13.23 256.81 118.35 22.04 248.01 22.04zm0 7.89c-125.3 0-226.89 101.57-226.89 226.87s101.59 226.89 226.89 226.89S474.88 382.1 474.88 256.8 373.31 29.93 248.01 29.93zm-.02 13.3c117.95 0 213.56 95.62 213.56 213.56s-95.62 213.56-213.56 213.56S34.43 374.75 34.43 256.8 130.04 43.23 247.99 43.23zm-73.32 104.8l15.66 18.05-22.16-9.45-12.33 20.47 2.15-23.99-23.28-5.4 23.48-5.37-2.06-23.81 12.37 20.67 22.01-9.32-15.84 18.15zm-47.14-46.54l8.01 12.4 12.69-5.86-9.32 11.45 9.5 10.25-13.77-5.32-6.82 12.2.81-14.74-13.71-2.71 14.27-3.78-1.66-13.89zm250.77 75.59l11.99 19.56 20.88-9.11-14.9 17.45 15.11 17.04-21.2-8.78-11.54 19.64 1.8-22.87-22.24-4.9 22.31-5.36-2.21-22.67zm-107.05 98.45l13.86-3.22-1.28-14.17 7.35 12.18 13.08-5.59-9.31 10.75 9.36 10.71-13.1-5.54-7.29 12.21 1.22-14.17-13.89-3.16zm-125.43 6.5l23.73-3.87-1.73-24.53 11.01 21.38 22.79-9.22-16.93 17.08 15.81 18.83-21.47-10.82-13.02 20.86 3.66-23.77-23.85-5.94zm63.44-165.66v81.61H54.16l36.72 46.01h117.7v196.75h48.82V245.01h83.27v-47.03H257.4v-34.83h145.73v-46.78H209.26zm10.86 11.2h171.8v24.36H246.88v56.23h82.93v23.94h-82.93v197.42h-26.76V232.1H96.31l-20.09-23.94h143.9v-80.59z"],trello:[448,512,[],"f181","M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zM194.9 371.4c0 14.8-12 26.9-26.9 26.9H85.1c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9H168c14.8 0 26.9 12 26.9 26.9v254.3zm194.9-112c0 14.8-12 26.9-26.9 26.9H280c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v142.3z"],tripadvisor:[576,512,[],"f262","M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z"],tumblr:[320,512,[],"f173","M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"],"tumblr-square":[448,512,[],"f174","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z"],twitch:[448,512,[],"f1e8","M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z"],twitter:[512,512,[],"f099","M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"],"twitter-square":[448,512,[],"f081","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"],typo3:[433,512,[],"f42b","M330.8 341c-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9 0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C0 246 106.8 480 184.1 480c36.3 0 97.3-59.5 146.7-139M294.5 32c71.8 0 138.8 11.6 138.8 52.5 0 82.6-52.5 182.3-78.8 182.3-47.9 0-101.7-132.1-101.7-198.5 0-30.9 11.6-36.3 41.7-36.3"],uber:[448,512,[],"f402","M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"],uikit:[448,512,[],"f403","M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"],uniregistry:[384,512,[],"f404","M281.1 220.1H384v-14.8H281.1v14.8zm0-37.1H384v-12.4H281.1V183zm0 74.2H384v-17.3H281.1v17.3zm-157.7 86.7H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8m145.7-12.4h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3m-41.5 37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8M384 32H281.1v2.5H384V32zM192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480m89.1-334.2H384V136H281.1v9.8zm0-37.1H384v-7.4H281.1v7.4zm0-37.1H384v-4.9H281.1v4.9zm-178.2 99H0V183h102.9v-12.4zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2m64.1-118.8v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4m178.2 0c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1v12.4zm-203 156h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7m24.8-376.2H0v4.9h102.9v-4.9zm0-34.7H0v2.5h102.9V32zm0 173.3H0v14.8h102.9v-14.8zm0 34.6H0v17.3h102.9v-17.3zm0-103.9H0v9.9h102.9V136zm0-34.7H0v7.4h102.9v-7.4zm2.8 207.9H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3"],untappd:[640,512,[],"f405","M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"],usb:[640,512,[],"f287","M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"],ussunnah:[512,512,[],"f407","M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z"],vaadin:[448,512,[],"f408","M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"],viacoin:[384,512,[],"f237","M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z"],viadeo:[448,512,[],"f2a9","M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"],"viadeo-square":[448,512,[],"f2aa","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z"],viber:[512,512,[],"f409","M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"],vimeo:[448,512,[],"f40a","M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"],"vimeo-square":[448,512,[],"f194","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z"],"vimeo-v":[448,512,[],"f27d","M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"],vine:[384,512,[],"f1ca","M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"],vk:[576,512,[],"f189","M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z"],vnv:[640,512,[],"f40b","M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z"],vuejs:[448,512,[],"f41f","M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z"],weebly:[512,512,[],"f5cc","M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z"],weibo:[512,512,[],"f18a","M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"],weixin:[576,512,[],"f1d7","M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z"],whatsapp:[448,512,[],"f232","M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"],"whatsapp-square":[448,512,[],"f40c","M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"],whmcs:[448,512,[],"f40d","M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"],"wikipedia-w":[640,512,[],"f266","M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z"],windows:[448,512,[],"f17a","M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"],wix:[640,512,[],"f5cf","M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z"],"wizards-of-the-coast":[640,512,[],"f730","M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z"],"wolf-pack-battalion":[456,512,[],"f514","M239.73 471.53l10.56 15.84 5.28-12.32 5.28 7.04V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05 27.87 3.34 53.94 10.58 63.34 54.1l-30.35 8.36c11.15 23.04 17.01 46.76 13.2 72.14L384 313.18l-6.16 33.43-18.47-7.04-8.8 33.43-19.35-7.04 26.39 21.11 8.8-28.15 24.63 5.28 7.04-35.63 26.39 14.52c.25-20.02 6.97-58.06-8.8-84.45l26.39 5.28c3.99-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 1.96-19.87 17.45-42.62 43.11-49.7-43.99 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.47 22.87-89.73 65.1-93.25 147.79l-58.06 38.71-3.52 93.25 107.33-59.82 7.04 7.04-17.59 3.52-43.99 38.71-15.84-5.28-28.15 49.26-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-43.99-38.71-17.59-3.52 7.04-7.04 107.33 59.82-3.52-93.25-58.06-38.71C157.03 65.1 107.77 22.87 67.3 0c-17.54 61.12-4.4 118.76 0 130.2 14.96-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9C29.94 160.06.44 191.78 0 216.85l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7.04 35.63 24.63-5.28 8.8 28.15 26.39-21.11-19.34 7.05-8.8-33.43-18.47 7.04-6.16-33.43-27.27 7.04c-3.82-25.38 2.05-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.91l5.28-7.04 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95.01l-15.84-10.56c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.26-.27 13.88-3.51 22.88zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7.04 8.24-7.9 15.55-16.27 22.87-24.63zm24.63 5.28c-.02-13.43-2.05-24.21-5.28-33.43-5.38 9.09-11.23 18.18-18.47 27.27l23.75 6.16zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-11.99 6.65-28.14 7.04-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 43.99-14.08-10.6-18.95-27.22-25.52-45.75-28.15zM137.68 376.52l15.84-10.56c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7.04-8.24-7.9-15.55-16.27-22.87-24.63zm-24.64 5.28c.02-13.43 2.05-24.21 5.28-33.43 5.38 9.09 11.23 18.18 18.47 27.27l-23.75 6.16zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 36.95-10.56-5.05-11.99-6.65-28.14-7.04-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-43.99-14.08 10.61-18.95 27.22-25.52 45.75-28.15z"],wordpress:[512,512,[],"f19a","M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"],"wordpress-simple":[512,512,[],"f411","M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"],wpbeginner:[512,512,[],"f297","M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z"],wpexplorer:[512,512,[],"f2de","M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"],wpforms:[448,512,[],"f298","M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z"],xbox:[512,512,[],"f412","M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"],xing:[384,512,[],"f168","M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"],"xing-square":[448,512,[],"f169","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z"],"y-combinator":[448,512,[],"f23b","M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z"],yahoo:[448,512,[],"f19e","M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z"],yandex:[256,512,[],"f413","M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z"],"yandex-international":[320,512,[],"f414","M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z"],yelp:[384,512,[],"f1e9","M136.9 328c-1 .3-109.2 35.7-115.8 35.7-15.2-.9-18.5-16.2-19.9-31.2-1.5-14.2-1.4-29.8.3-46.8 1.9-18.8 5.5-45.1 24.2-44 4.8 0 67.1 25.9 112.7 44.4 17.1 6.8 18.6 35.8-1.5 41.9zm57.9-113.9c1.8 38.2-25.5 48.5-47.2 14.3L41.3 60.4c-1.5-6.6.3-12.4 5.3-17.4C62.2 26.5 146 3.2 168.1 8.9c7.5 1.9 12.1 6.1 13.8 12.6 1.3 8.3 11.5 167.4 12.9 192.6zm-1.4 164.8c0 4.6.2 116.4-1.7 121.5-2.3 6-7 9.7-14.3 11.2-10.1 1.7-27.1-1.9-51-10.7-22-8.1-56.7-21.5-49.3-42.5 2.8-6.9 51.4-62.8 77.3-93.6 12-15.2 39.8-5.5 39 14.1zm180.2-117.8c-5.6 3.7-110.8 28.2-118.1 30.6l.3-.6c-18.1 4.7-35.4-18.5-23.3-34.6 3.7-3.7 65.9-92.4 72.8-97 5.2-3.6 11.3-3.8 18.3-.6 18.4 8.8 55.1 63.1 57.4 84.6-.1 2.9 1.2 11.7-7.4 17.6zm10.1 130.7c-2.7 20.6-44.5 73.4-63.8 81-6.9 2.6-12.9 2-17.7-2-5-3.5-61.8-97.1-64.9-102.3-10.9-16.2 6.8-39.8 25.6-33.2 0 0 110.5 35.7 114.7 39.4 5.2 4.1 7.2 9.8 6.1 17.1z"],yoast:[448,512,[],"f2b1","M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z"],youtube:[576,512,[],"f167","M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"],"youtube-square":[448,512,[],"f431","M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z"],zhihu:[640,512,[],"f63f","M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z"]};!function(c){try{c()}catch(c){if(!m)throw c}}(function(){!function c(z,h){var l=Object.keys(h).reduce(function(c,z){var l=h[z];return l.icon?c[l.iconName]=l.icon:c[z]=l,c},{});"function"==typeof f.hooks.addPack?f.hooks.addPack(z,l):f.styles[z]=V({},f.styles[z]||{},l),"fas"===z&&c("fa",h)}("fab",e)})}();
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/js/fontawesome.js b/htdocs/theme/common/fontawesome-5/js/fontawesome.js
    new file mode 100644
    index 00000000000..989669d7505
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/fontawesome.js
    @@ -0,0 +1,1981 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +(function () {
    +'use strict';
    +
    +var noop = function noop() {};
    +
    +var _WINDOW = {};
    +var _DOCUMENT = {};
    +var _MUTATION_OBSERVER$1 = null;
    +var _PERFORMANCE = { mark: noop, measure: noop };
    +
    +try {
    +  if (typeof window !== 'undefined') _WINDOW = window;
    +  if (typeof document !== 'undefined') _DOCUMENT = document;
    +  if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER$1 = MutationObserver;
    +  if (typeof performance !== 'undefined') _PERFORMANCE = performance;
    +} catch (e) {}
    +
    +var _ref = _WINDOW.navigator || {};
    +var _ref$userAgent = _ref.userAgent;
    +var userAgent = _ref$userAgent === undefined ? '' : _ref$userAgent;
    +
    +var WINDOW = _WINDOW;
    +var DOCUMENT = _DOCUMENT;
    +var MUTATION_OBSERVER = _MUTATION_OBSERVER$1;
    +var PERFORMANCE = _PERFORMANCE;
    +var IS_BROWSER = !!WINDOW.document;
    +var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';
    +var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
    +
    +var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
    +var UNITS_IN_GRID = 16;
    +var DEFAULT_FAMILY_PREFIX = 'fa';
    +var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';
    +var DATA_FA_I2SVG = 'data-fa-i2svg';
    +var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';
    +var DATA_PREFIX = 'data-prefix';
    +var DATA_ICON = 'data-icon';
    +var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';
    +var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];
    +var PRODUCTION = function () {
    +  try {
    +    return "production" === 'production';
    +  } catch (e) {
    +    return false;
    +  }
    +}();
    +
    +var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    +var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
    +
    +var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];
    +
    +var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter'].concat(oneToTen.map(function (n) {
    +  return n + 'x';
    +})).concat(oneToTwenty.map(function (n) {
    +  return 'w-' + n;
    +}));
    +
    +var classCallCheck = function (instance, Constructor) {
    +  if (!(instance instanceof Constructor)) {
    +    throw new TypeError("Cannot call a class as a function");
    +  }
    +};
    +
    +var createClass = function () {
    +  function defineProperties(target, props) {
    +    for (var i = 0; i < props.length; i++) {
    +      var descriptor = props[i];
    +      descriptor.enumerable = descriptor.enumerable || false;
    +      descriptor.configurable = true;
    +      if ("value" in descriptor) descriptor.writable = true;
    +      Object.defineProperty(target, descriptor.key, descriptor);
    +    }
    +  }
    +
    +  return function (Constructor, protoProps, staticProps) {
    +    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    +    if (staticProps) defineProperties(Constructor, staticProps);
    +    return Constructor;
    +  };
    +}();
    +
    +
    +
    +var _extends = Object.assign || function (target) {
    +  for (var i = 1; i < arguments.length; i++) {
    +    var source = arguments[i];
    +
    +    for (var key in source) {
    +      if (Object.prototype.hasOwnProperty.call(source, key)) {
    +        target[key] = source[key];
    +      }
    +    }
    +  }
    +
    +  return target;
    +};
    +
    +
    +
    +var slicedToArray = function () {
    +  function sliceIterator(arr, i) {
    +    var _arr = [];
    +    var _n = true;
    +    var _d = false;
    +    var _e = undefined;
    +
    +    try {
    +      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
    +        _arr.push(_s.value);
    +
    +        if (i && _arr.length === i) break;
    +      }
    +    } catch (err) {
    +      _d = true;
    +      _e = err;
    +    } finally {
    +      try {
    +        if (!_n && _i["return"]) _i["return"]();
    +      } finally {
    +        if (_d) throw _e;
    +      }
    +    }
    +
    +    return _arr;
    +  }
    +
    +  return function (arr, i) {
    +    if (Array.isArray(arr)) {
    +      return arr;
    +    } else if (Symbol.iterator in Object(arr)) {
    +      return sliceIterator(arr, i);
    +    } else {
    +      throw new TypeError("Invalid attempt to destructure non-iterable instance");
    +    }
    +  };
    +}();
    +
    +var toConsumableArray = function (arr) {
    +  if (Array.isArray(arr)) {
    +    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
    +
    +    return arr2;
    +  } else {
    +    return Array.from(arr);
    +  }
    +};
    +
    +var initial = WINDOW.FontAwesomeConfig || {};
    +
    +function getAttrConfig(attr) {
    +  var element = DOCUMENT.querySelector('script[' + attr + ']');
    +
    +  if (element) {
    +    return element.getAttribute(attr);
    +  }
    +}
    +
    +function coerce(val) {
    +  // Getting an empty string will occur if the attribute is set on the HTML tag but without a value
    +  // We'll assume that this is an indication that it should be toggled to true
    +  // For example <script data-search-pseudo-elements src="..."></script>
    +  if (val === '') return true;
    +  if (val === 'false') return false;
    +  if (val === 'true') return true;
    +  return val;
    +}
    +
    +if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {
    +  var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];
    +
    +  attrs.forEach(function (_ref) {
    +    var _ref2 = slicedToArray(_ref, 2),
    +        attr = _ref2[0],
    +        key = _ref2[1];
    +
    +    var val = coerce(getAttrConfig(attr));
    +
    +    if (val !== undefined && val !== null) {
    +      initial[key] = val;
    +    }
    +  });
    +}
    +
    +var _default = _extends({
    +  familyPrefix: DEFAULT_FAMILY_PREFIX,
    +  replacementClass: DEFAULT_REPLACEMENT_CLASS,
    +  autoReplaceSvg: true,
    +  autoAddCss: true,
    +  autoA11y: true,
    +  searchPseudoElements: false,
    +  observeMutations: true,
    +  keepOriginalSource: true,
    +  measurePerformance: false,
    +  showMissingIcons: true
    +}, initial);
    +
    +if (!_default.autoReplaceSvg) _default.observeMutations = false;
    +
    +var config = _extends({}, _default);
    +
    +WINDOW.FontAwesomeConfig = config;
    +
    +var w = WINDOW || {};
    +
    +if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
    +if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
    +if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
    +if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
    +
    +var namespace = w[NAMESPACE_IDENTIFIER];
    +
    +var functions = [];
    +var listener = function listener() {
    +  DOCUMENT.removeEventListener('DOMContentLoaded', listener);
    +  loaded = 1;
    +  functions.map(function (fn) {
    +    return fn();
    +  });
    +};
    +
    +var loaded = false;
    +
    +if (IS_DOM) {
    +  loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);
    +
    +  if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);
    +}
    +
    +var domready = function (fn) {
    +  if (!IS_DOM) return;
    +  loaded ? setTimeout(fn, 0) : functions.push(fn);
    +};
    +
    +var d = UNITS_IN_GRID;
    +
    +var meaninglessTransform = {
    +  size: 16,
    +  x: 0,
    +  y: 0,
    +  rotate: 0,
    +  flipX: false,
    +  flipY: false
    +};
    +
    +function isReserved(name) {
    +  return ~RESERVED_CLASSES.indexOf(name);
    +}
    +
    +function bunker(fn) {
    +  try {
    +    fn();
    +  } catch (e) {
    +    if (!PRODUCTION) {
    +      throw e;
    +    }
    +  }
    +}
    +
    +function insertCss(css) {
    +  if (!css || !IS_DOM) {
    +    return;
    +  }
    +
    +  var style = DOCUMENT.createElement('style');
    +  style.setAttribute('type', 'text/css');
    +  style.innerHTML = css;
    +
    +  var headChildren = DOCUMENT.head.childNodes;
    +  var beforeChild = null;
    +
    +  for (var i = headChildren.length - 1; i > -1; i--) {
    +    var child = headChildren[i];
    +    var tagName = (child.tagName || '').toUpperCase();
    +    if (['STYLE', 'LINK'].indexOf(tagName) > -1) {
    +      beforeChild = child;
    +    }
    +  }
    +
    +  DOCUMENT.head.insertBefore(style, beforeChild);
    +
    +  return css;
    +}
    +
    +var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    +
    +function nextUniqueId() {
    +  var size = 12;
    +  var id = '';
    +  while (size-- > 0) {
    +    id += idPool[Math.random() * 62 | 0];
    +  }
    +  return id;
    +}
    +
    +function toArray(obj) {
    +  var array = [];
    +
    +  for (var i = (obj || []).length >>> 0; i--;) {
    +    array[i] = obj[i];
    +  }
    +
    +  return array;
    +}
    +
    +function classArray(node) {
    +  if (node.classList) {
    +    return toArray(node.classList);
    +  } else {
    +    return (node.getAttribute('class') || '').split(' ').filter(function (i) {
    +      return i;
    +    });
    +  }
    +}
    +
    +function getIconName(familyPrefix, cls) {
    +  var parts = cls.split('-');
    +  var prefix = parts[0];
    +  var iconName = parts.slice(1).join('-');
    +
    +  if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {
    +    return iconName;
    +  } else {
    +    return null;
    +  }
    +}
    +
    +function htmlEscape(str) {
    +  return ('' + str).replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
    +}
    +
    +function joinAttributes(attributes) {
    +  return Object.keys(attributes || {}).reduce(function (acc, attributeName) {
    +    return acc + (attributeName + '="' + htmlEscape(attributes[attributeName]) + '" ');
    +  }, '').trim();
    +}
    +
    +function joinStyles(styles) {
    +  return Object.keys(styles || {}).reduce(function (acc, styleName) {
    +    return acc + (styleName + ': ' + styles[styleName] + ';');
    +  }, '');
    +}
    +
    +function transformIsMeaningful(transform) {
    +  return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;
    +}
    +
    +function transformForSvg(_ref) {
    +  var transform = _ref.transform,
    +      containerWidth = _ref.containerWidth,
    +      iconWidth = _ref.iconWidth;
    +
    +  var outer = {
    +    transform: 'translate(' + containerWidth / 2 + ' 256)'
    +  };
    +  var innerTranslate = 'translate(' + transform.x * 32 + ', ' + transform.y * 32 + ') ';
    +  var innerScale = 'scale(' + transform.size / 16 * (transform.flipX ? -1 : 1) + ', ' + transform.size / 16 * (transform.flipY ? -1 : 1) + ') ';
    +  var innerRotate = 'rotate(' + transform.rotate + ' 0 0)';
    +  var inner = {
    +    transform: innerTranslate + ' ' + innerScale + ' ' + innerRotate
    +  };
    +  var path = {
    +    transform: 'translate(' + iconWidth / 2 * -1 + ' -256)'
    +  };
    +  return {
    +    outer: outer,
    +    inner: inner,
    +    path: path
    +  };
    +}
    +
    +function transformForCss(_ref2) {
    +  var transform = _ref2.transform,
    +      _ref2$width = _ref2.width,
    +      width = _ref2$width === undefined ? UNITS_IN_GRID : _ref2$width,
    +      _ref2$height = _ref2.height,
    +      height = _ref2$height === undefined ? UNITS_IN_GRID : _ref2$height,
    +      _ref2$startCentered = _ref2.startCentered,
    +      startCentered = _ref2$startCentered === undefined ? false : _ref2$startCentered;
    +
    +  var val = '';
    +
    +  if (startCentered && IS_IE) {
    +    val += 'translate(' + (transform.x / d - width / 2) + 'em, ' + (transform.y / d - height / 2) + 'em) ';
    +  } else if (startCentered) {
    +    val += 'translate(calc(-50% + ' + transform.x / d + 'em), calc(-50% + ' + transform.y / d + 'em)) ';
    +  } else {
    +    val += 'translate(' + transform.x / d + 'em, ' + transform.y / d + 'em) ';
    +  }
    +
    +  val += 'scale(' + transform.size / d * (transform.flipX ? -1 : 1) + ', ' + transform.size / d * (transform.flipY ? -1 : 1) + ') ';
    +  val += 'rotate(' + transform.rotate + 'deg) ';
    +
    +  return val;
    +}
    +
    +var ALL_SPACE = {
    +  x: 0,
    +  y: 0,
    +  width: '100%',
    +  height: '100%'
    +};
    +
    +var makeIconMasking = function (_ref) {
    +  var children = _ref.children,
    +      attributes = _ref.attributes,
    +      main = _ref.main,
    +      mask = _ref.mask,
    +      transform = _ref.transform;
    +  var mainWidth = main.width,
    +      mainPath = main.icon;
    +  var maskWidth = mask.width,
    +      maskPath = mask.icon;
    +
    +
    +  var trans = transformForSvg({ transform: transform, containerWidth: maskWidth, iconWidth: mainWidth });
    +
    +  var maskRect = {
    +    tag: 'rect',
    +    attributes: _extends({}, ALL_SPACE, {
    +      fill: 'white'
    +    })
    +  };
    +  var maskInnerGroup = {
    +    tag: 'g',
    +    attributes: _extends({}, trans.inner),
    +    children: [{ tag: 'path', attributes: _extends({}, mainPath.attributes, trans.path, { fill: 'black' }) }]
    +  };
    +  var maskOuterGroup = {
    +    tag: 'g',
    +    attributes: _extends({}, trans.outer),
    +    children: [maskInnerGroup]
    +  };
    +  var maskId = 'mask-' + nextUniqueId();
    +  var clipId = 'clip-' + nextUniqueId();
    +  var maskTag = {
    +    tag: 'mask',
    +    attributes: _extends({}, ALL_SPACE, {
    +      id: maskId,
    +      maskUnits: 'userSpaceOnUse',
    +      maskContentUnits: 'userSpaceOnUse'
    +    }),
    +    children: [maskRect, maskOuterGroup]
    +  };
    +  var defs = {
    +    tag: 'defs',
    +    children: [{ tag: 'clipPath', attributes: { id: clipId }, children: [maskPath] }, maskTag]
    +  };
    +
    +  children.push(defs, { tag: 'rect', attributes: _extends({ fill: 'currentColor', 'clip-path': 'url(#' + clipId + ')', mask: 'url(#' + maskId + ')' }, ALL_SPACE) });
    +
    +  return {
    +    children: children,
    +    attributes: attributes
    +  };
    +};
    +
    +var makeIconStandard = function (_ref) {
    +  var children = _ref.children,
    +      attributes = _ref.attributes,
    +      main = _ref.main,
    +      transform = _ref.transform,
    +      styles = _ref.styles;
    +
    +  var styleString = joinStyles(styles);
    +
    +  if (styleString.length > 0) {
    +    attributes['style'] = styleString;
    +  }
    +
    +  if (transformIsMeaningful(transform)) {
    +    var trans = transformForSvg({ transform: transform, containerWidth: main.width, iconWidth: main.width });
    +    children.push({
    +      tag: 'g',
    +      attributes: _extends({}, trans.outer),
    +      children: [{
    +        tag: 'g',
    +        attributes: _extends({}, trans.inner),
    +        children: [{
    +          tag: main.icon.tag,
    +          children: main.icon.children,
    +          attributes: _extends({}, main.icon.attributes, trans.path)
    +        }]
    +      }]
    +    });
    +  } else {
    +    children.push(main.icon);
    +  }
    +
    +  return {
    +    children: children,
    +    attributes: attributes
    +  };
    +};
    +
    +var asIcon = function (_ref) {
    +  var children = _ref.children,
    +      main = _ref.main,
    +      mask = _ref.mask,
    +      attributes = _ref.attributes,
    +      styles = _ref.styles,
    +      transform = _ref.transform;
    +
    +  if (transformIsMeaningful(transform) && main.found && !mask.found) {
    +    var width = main.width,
    +        height = main.height;
    +
    +    var offset = {
    +      x: width / height / 2,
    +      y: 0.5
    +    };
    +    attributes['style'] = joinStyles(_extends({}, styles, {
    +      'transform-origin': offset.x + transform.x / 16 + 'em ' + (offset.y + transform.y / 16) + 'em'
    +    }));
    +  }
    +
    +  return [{
    +    tag: 'svg',
    +    attributes: attributes,
    +    children: children
    +  }];
    +};
    +
    +var asSymbol = function (_ref) {
    +  var prefix = _ref.prefix,
    +      iconName = _ref.iconName,
    +      children = _ref.children,
    +      attributes = _ref.attributes,
    +      symbol = _ref.symbol;
    +
    +  var id = symbol === true ? prefix + '-' + config.familyPrefix + '-' + iconName : symbol;
    +
    +  return [{
    +    tag: 'svg',
    +    attributes: {
    +      style: 'display: none;'
    +    },
    +    children: [{
    +      tag: 'symbol',
    +      attributes: _extends({}, attributes, { id: id }),
    +      children: children
    +    }]
    +  }];
    +};
    +
    +function makeInlineSvgAbstract(params) {
    +  var _params$icons = params.icons,
    +      main = _params$icons.main,
    +      mask = _params$icons.mask,
    +      prefix = params.prefix,
    +      iconName = params.iconName,
    +      transform = params.transform,
    +      symbol = params.symbol,
    +      title = params.title,
    +      extra = params.extra,
    +      _params$watchable = params.watchable,
    +      watchable = _params$watchable === undefined ? false : _params$watchable;
    +
    +  var _ref = mask.found ? mask : main,
    +      width = _ref.width,
    +      height = _ref.height;
    +
    +  var widthClass = 'fa-w-' + Math.ceil(width / height * 16);
    +  var attrClass = [config.replacementClass, iconName ? config.familyPrefix + '-' + iconName : '', widthClass].filter(function (c) {
    +    return extra.classes.indexOf(c) === -1;
    +  }).concat(extra.classes).join(' ');
    +
    +  var content = {
    +    children: [],
    +    attributes: _extends({}, extra.attributes, {
    +      'data-prefix': prefix,
    +      'data-icon': iconName,
    +      'class': attrClass,
    +      'role': 'img',
    +      'xmlns': 'http://www.w3.org/2000/svg',
    +      'viewBox': '0 0 ' + width + ' ' + height
    +    })
    +  };
    +
    +  if (watchable) {
    +    content.attributes[DATA_FA_I2SVG] = '';
    +  }
    +
    +  if (title) content.children.push({ tag: 'title', attributes: { id: content.attributes['aria-labelledby'] || 'title-' + nextUniqueId() }, children: [title] });
    +
    +  var args = _extends({}, content, {
    +    prefix: prefix,
    +    iconName: iconName,
    +    main: main,
    +    mask: mask,
    +    transform: transform,
    +    symbol: symbol,
    +    styles: extra.styles
    +  });
    +
    +  var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),
    +      children = _ref2.children,
    +      attributes = _ref2.attributes;
    +
    +  args.children = children;
    +  args.attributes = attributes;
    +
    +  if (symbol) {
    +    return asSymbol(args);
    +  } else {
    +    return asIcon(args);
    +  }
    +}
    +
    +function makeLayersTextAbstract(params) {
    +  var content = params.content,
    +      width = params.width,
    +      height = params.height,
    +      transform = params.transform,
    +      title = params.title,
    +      extra = params.extra,
    +      _params$watchable2 = params.watchable,
    +      watchable = _params$watchable2 === undefined ? false : _params$watchable2;
    +
    +
    +  var attributes = _extends({}, extra.attributes, title ? { 'title': title } : {}, {
    +    'class': extra.classes.join(' ')
    +  });
    +
    +  if (watchable) {
    +    attributes[DATA_FA_I2SVG] = '';
    +  }
    +
    +  var styles = _extends({}, extra.styles);
    +
    +  if (transformIsMeaningful(transform)) {
    +    styles['transform'] = transformForCss({ transform: transform, startCentered: true, width: width, height: height });
    +    styles['-webkit-transform'] = styles['transform'];
    +  }
    +
    +  var styleString = joinStyles(styles);
    +
    +  if (styleString.length > 0) {
    +    attributes['style'] = styleString;
    +  }
    +
    +  var val = [];
    +
    +  val.push({
    +    tag: 'span',
    +    attributes: attributes,
    +    children: [content]
    +  });
    +
    +  if (title) {
    +    val.push({ tag: 'span', attributes: { class: 'sr-only' }, children: [title] });
    +  }
    +
    +  return val;
    +}
    +
    +function makeLayersCounterAbstract(params) {
    +  var content = params.content,
    +      title = params.title,
    +      extra = params.extra;
    +
    +
    +  var attributes = _extends({}, extra.attributes, title ? { 'title': title } : {}, {
    +    'class': extra.classes.join(' ')
    +  });
    +
    +  var styleString = joinStyles(extra.styles);
    +
    +  if (styleString.length > 0) {
    +    attributes['style'] = styleString;
    +  }
    +
    +  var val = [];
    +
    +  val.push({
    +    tag: 'span',
    +    attributes: attributes,
    +    children: [content]
    +  });
    +
    +  if (title) {
    +    val.push({ tag: 'span', attributes: { class: 'sr-only' }, children: [title] });
    +  }
    +
    +  return val;
    +}
    +
    +var noop$2 = function noop() {};
    +var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : { mark: noop$2, measure: noop$2 };
    +var preamble = 'FA "5.4.1"';
    +
    +var begin = function begin(name) {
    +  p.mark(preamble + ' ' + name + ' begins');
    +  return function () {
    +    return end(name);
    +  };
    +};
    +
    +var end = function end(name) {
    +  p.mark(preamble + ' ' + name + ' ends');
    +  p.measure(preamble + ' ' + name, preamble + ' ' + name + ' begins', preamble + ' ' + name + ' ends');
    +};
    +
    +var perf = { begin: begin, end: end };
    +
    +'use strict';
    +
    +/**
    + * Internal helper to bind a function known to have 4 arguments
    + * to a given context.
    + */
    +var bindInternal4 = function bindInternal4 (func, thisContext) {
    +  return function (a, b, c, d) {
    +    return func.call(thisContext, a, b, c, d);
    +  };
    +};
    +
    +'use strict';
    +
    +
    +
    +/**
    + * # Reduce
    + *
    + * A fast object `.reduce()` implementation.
    + *
    + * @param  {Object}   subject      The object to reduce over.
    + * @param  {Function} fn           The reducer function.
    + * @param  {mixed}    initialValue The initial value for the reducer, defaults to subject[0].
    + * @param  {Object}   thisContext  The context for the reducer.
    + * @return {mixed}                 The final result.
    + */
    +var reduce = function fastReduceObject (subject, fn, initialValue, thisContext) {
    +  var keys = Object.keys(subject),
    +      length = keys.length,
    +      iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,
    +      i, key, result;
    +
    +  if (initialValue === undefined) {
    +    i = 1;
    +    result = subject[keys[0]];
    +  }
    +  else {
    +    i = 0;
    +    result = initialValue;
    +  }
    +
    +  for (; i < length; i++) {
    +    key = keys[i];
    +    result = iterator(result, subject[key], key, subject);
    +  }
    +
    +  return result;
    +};
    +
    +var styles$2 = namespace.styles;
    +var shims = namespace.shims;
    +
    +
    +var _byUnicode = {};
    +var _byLigature = {};
    +var _byOldName = {};
    +
    +var build = function build() {
    +  var lookup = function lookup(reducer) {
    +    return reduce(styles$2, function (o, style, prefix) {
    +      o[prefix] = reduce(style, reducer, {});
    +      return o;
    +    }, {});
    +  };
    +
    +  _byUnicode = lookup(function (acc, icon, iconName) {
    +    acc[icon[3]] = iconName;
    +
    +    return acc;
    +  });
    +
    +  _byLigature = lookup(function (acc, icon, iconName) {
    +    var ligatures = icon[2];
    +
    +    acc[iconName] = iconName;
    +
    +    ligatures.forEach(function (ligature) {
    +      acc[ligature] = iconName;
    +    });
    +
    +    return acc;
    +  });
    +
    +  var hasRegular = 'far' in styles$2;
    +
    +  _byOldName = reduce(shims, function (acc, shim) {
    +    var oldName = shim[0];
    +    var prefix = shim[1];
    +    var iconName = shim[2];
    +
    +    if (prefix === 'far' && !hasRegular) {
    +      prefix = 'fas';
    +    }
    +
    +    acc[oldName] = { prefix: prefix, iconName: iconName };
    +
    +    return acc;
    +  }, {});
    +};
    +
    +build();
    +
    +function byUnicode(prefix, unicode) {
    +  return _byUnicode[prefix][unicode];
    +}
    +
    +function byLigature(prefix, ligature) {
    +  return _byLigature[prefix][ligature];
    +}
    +
    +function byOldName(name) {
    +  return _byOldName[name] || { prefix: null, iconName: null };
    +}
    +
    +var styles$1 = namespace.styles;
    +
    +
    +var emptyCanonicalIcon = function emptyCanonicalIcon() {
    +  return { prefix: null, iconName: null, rest: [] };
    +};
    +
    +function getCanonicalIcon(values) {
    +  return values.reduce(function (acc, cls) {
    +    var iconName = getIconName(config.familyPrefix, cls);
    +
    +    if (styles$1[cls]) {
    +      acc.prefix = cls;
    +    } else if (iconName) {
    +      var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};
    +
    +      acc.iconName = shim.iconName || iconName;
    +      acc.prefix = shim.prefix || acc.prefix;
    +    } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {
    +      acc.rest.push(cls);
    +    }
    +
    +    return acc;
    +  }, emptyCanonicalIcon());
    +}
    +
    +function iconFromMapping(mapping, prefix, iconName) {
    +  if (mapping && mapping[prefix] && mapping[prefix][iconName]) {
    +    return {
    +      prefix: prefix,
    +      iconName: iconName,
    +      icon: mapping[prefix][iconName]
    +    };
    +  }
    +}
    +
    +function toHtml(abstractNodes) {
    +  var tag = abstractNodes.tag,
    +      _abstractNodes$attrib = abstractNodes.attributes,
    +      attributes = _abstractNodes$attrib === undefined ? {} : _abstractNodes$attrib,
    +      _abstractNodes$childr = abstractNodes.children,
    +      children = _abstractNodes$childr === undefined ? [] : _abstractNodes$childr;
    +
    +
    +  if (typeof abstractNodes === 'string') {
    +    return htmlEscape(abstractNodes);
    +  } else {
    +    return '<' + tag + ' ' + joinAttributes(attributes) + '>' + children.map(toHtml).join('') + '</' + tag + '>';
    +  }
    +}
    +
    +var noop$1 = function noop() {};
    +
    +function isWatched(node) {
    +  var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;
    +
    +  return typeof i2svg === 'string';
    +}
    +
    +function getMutator() {
    +  if (config.autoReplaceSvg === true) {
    +    return mutators.replace;
    +  }
    +
    +  var mutator = mutators[config.autoReplaceSvg];
    +
    +  return mutator || mutators.replace;
    +}
    +
    +var mutators = {
    +  replace: function replace(mutation) {
    +    var node = mutation[0];
    +    var abstract = mutation[1];
    +    var newOuterHTML = abstract.map(function (a) {
    +      return toHtml(a);
    +    }).join('\n');
    +
    +    if (node.parentNode && node.outerHTML) {
    +      node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? '<!-- ' + node.outerHTML + ' -->' : '');
    +    } else if (node.parentNode) {
    +      var newNode = document.createElement('span');
    +      node.parentNode.replaceChild(newNode, node);
    +      newNode.outerHTML = newOuterHTML;
    +    }
    +  },
    +  nest: function nest(mutation) {
    +    var node = mutation[0];
    +    var abstract = mutation[1];
    +
    +    // If we already have a replaced node we do not want to continue nesting within it.
    +    // Short-circuit to the standard replacement
    +    if (~classArray(node).indexOf(config.replacementClass)) {
    +      return mutators.replace(mutation);
    +    }
    +
    +    var forSvg = new RegExp(config.familyPrefix + '-.*');
    +
    +    delete abstract[0].attributes.style;
    +
    +    var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {
    +      if (cls === config.replacementClass || cls.match(forSvg)) {
    +        acc.toSvg.push(cls);
    +      } else {
    +        acc.toNode.push(cls);
    +      }
    +
    +      return acc;
    +    }, { toNode: [], toSvg: [] });
    +
    +    abstract[0].attributes.class = splitClasses.toSvg.join(' ');
    +
    +    var newInnerHTML = abstract.map(function (a) {
    +      return toHtml(a);
    +    }).join('\n');
    +    node.setAttribute('class', splitClasses.toNode.join(' '));
    +    node.setAttribute(DATA_FA_I2SVG, '');
    +    node.innerHTML = newInnerHTML;
    +  }
    +};
    +
    +function perform(mutations, callback) {
    +  var callbackFunction = typeof callback === 'function' ? callback : noop$1;
    +
    +  if (mutations.length === 0) {
    +    callbackFunction();
    +  } else {
    +    var frame = WINDOW.requestAnimationFrame || function (op) {
    +      return op();
    +    };
    +
    +    frame(function () {
    +      var mutator = getMutator();
    +      var mark = perf.begin('mutate');
    +
    +      mutations.map(mutator);
    +
    +      mark();
    +
    +      callbackFunction();
    +    });
    +  }
    +}
    +
    +var disabled = false;
    +
    +function disableObservation(operation) {
    +  disabled = true;
    +  operation();
    +  disabled = false;
    +}
    +
    +var mo = null;
    +
    +function observe(options) {
    +  if (!MUTATION_OBSERVER) {
    +    return;
    +  }
    +
    +  if (!config.observeMutations) {
    +    return;
    +  }
    +
    +  var treeCallback = options.treeCallback,
    +      nodeCallback = options.nodeCallback,
    +      pseudoElementsCallback = options.pseudoElementsCallback,
    +      _options$observeMutat = options.observeMutationsRoot,
    +      observeMutationsRoot = _options$observeMutat === undefined ? DOCUMENT.body : _options$observeMutat;
    +
    +
    +  mo = new MUTATION_OBSERVER(function (objects) {
    +    if (disabled) return;
    +
    +    toArray(objects).forEach(function (mutationRecord) {
    +      if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {
    +        if (config.searchPseudoElements) {
    +          pseudoElementsCallback(mutationRecord.target);
    +        }
    +
    +        treeCallback(mutationRecord.target);
    +      }
    +
    +      if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {
    +        pseudoElementsCallback(mutationRecord.target.parentNode);
    +      }
    +
    +      if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {
    +        if (mutationRecord.attributeName === 'class') {
    +          var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),
    +              prefix = _getCanonicalIcon.prefix,
    +              iconName = _getCanonicalIcon.iconName;
    +
    +          if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);
    +          if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);
    +        } else {
    +          nodeCallback(mutationRecord.target);
    +        }
    +      }
    +    });
    +  });
    +
    +  if (!IS_DOM) return;
    +
    +  mo.observe(observeMutationsRoot, {
    +    childList: true, attributes: true, characterData: true, subtree: true
    +  });
    +}
    +
    +function disconnect() {
    +  if (!mo) return;
    +
    +  mo.disconnect();
    +}
    +
    +var styleParser = function (node) {
    +  var style = node.getAttribute('style');
    +
    +  var val = [];
    +
    +  if (style) {
    +    val = style.split(';').reduce(function (acc, style) {
    +      var styles = style.split(':');
    +      var prop = styles[0];
    +      var value = styles.slice(1);
    +
    +      if (prop && value.length > 0) {
    +        acc[prop] = value.join(':').trim();
    +      }
    +
    +      return acc;
    +    }, {});
    +  }
    +
    +  return val;
    +};
    +
    +function toHex(unicode) {
    +  var result = '';
    +
    +  for (var i = 0; i < unicode.length; i++) {
    +    var hex = unicode.charCodeAt(i).toString(16);
    +    result += ('000' + hex).slice(-4);
    +  }
    +
    +  return result;
    +}
    +
    +var classParser = function (node) {
    +  var existingPrefix = node.getAttribute('data-prefix');
    +  var existingIconName = node.getAttribute('data-icon');
    +  var innerText = node.innerText !== undefined ? node.innerText.trim() : '';
    +
    +  var val = getCanonicalIcon(classArray(node));
    +
    +  if (existingPrefix && existingIconName) {
    +    val.prefix = existingPrefix;
    +    val.iconName = existingIconName;
    +  }
    +
    +  if (val.prefix && innerText.length > 1) {
    +    val.iconName = byLigature(val.prefix, node.innerText);
    +  } else if (val.prefix && innerText.length === 1) {
    +    val.iconName = byUnicode(val.prefix, toHex(node.innerText));
    +  }
    +
    +  return val;
    +};
    +
    +var parseTransformString = function parseTransformString(transformString) {
    +  var transform = {
    +    size: 16,
    +    x: 0,
    +    y: 0,
    +    flipX: false,
    +    flipY: false,
    +    rotate: 0
    +  };
    +
    +  if (!transformString) {
    +    return transform;
    +  } else {
    +    return transformString.toLowerCase().split(' ').reduce(function (acc, n) {
    +      var parts = n.toLowerCase().split('-');
    +      var first = parts[0];
    +      var rest = parts.slice(1).join('-');
    +
    +      if (first && rest === 'h') {
    +        acc.flipX = true;
    +        return acc;
    +      }
    +
    +      if (first && rest === 'v') {
    +        acc.flipY = true;
    +        return acc;
    +      }
    +
    +      rest = parseFloat(rest);
    +
    +      if (isNaN(rest)) {
    +        return acc;
    +      }
    +
    +      switch (first) {
    +        case 'grow':
    +          acc.size = acc.size + rest;
    +          break;
    +        case 'shrink':
    +          acc.size = acc.size - rest;
    +          break;
    +        case 'left':
    +          acc.x = acc.x - rest;
    +          break;
    +        case 'right':
    +          acc.x = acc.x + rest;
    +          break;
    +        case 'up':
    +          acc.y = acc.y - rest;
    +          break;
    +        case 'down':
    +          acc.y = acc.y + rest;
    +          break;
    +        case 'rotate':
    +          acc.rotate = acc.rotate + rest;
    +          break;
    +      }
    +
    +      return acc;
    +    }, transform);
    +  }
    +};
    +
    +var transformParser = function (node) {
    +  return parseTransformString(node.getAttribute('data-fa-transform'));
    +};
    +
    +var symbolParser = function (node) {
    +  var symbol = node.getAttribute('data-fa-symbol');
    +
    +  return symbol === null ? false : symbol === '' ? true : symbol;
    +};
    +
    +var attributesParser = function (node) {
    +  var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {
    +    if (acc.name !== 'class' && acc.name !== 'style') {
    +      acc[attr.name] = attr.value;
    +    }
    +    return acc;
    +  }, {});
    +
    +  var title = node.getAttribute('title');
    +
    +  if (config.autoA11y) {
    +    if (title) {
    +      extraAttributes['aria-labelledby'] = config.replacementClass + '-title-' + nextUniqueId();
    +    } else {
    +      extraAttributes['aria-hidden'] = 'true';
    +    }
    +  }
    +
    +  return extraAttributes;
    +};
    +
    +var maskParser = function (node) {
    +  var mask = node.getAttribute('data-fa-mask');
    +
    +  if (!mask) {
    +    return emptyCanonicalIcon();
    +  } else {
    +    return getCanonicalIcon(mask.split(' ').map(function (i) {
    +      return i.trim();
    +    }));
    +  }
    +};
    +
    +var blankMeta = {
    +  iconName: null,
    +  title: null,
    +  prefix: null,
    +  transform: meaninglessTransform,
    +  symbol: false,
    +  mask: null,
    +  extra: { classes: [], styles: {}, attributes: {} }
    +};
    +
    +function parseMeta(node) {
    +  var _classParser = classParser(node),
    +      iconName = _classParser.iconName,
    +      prefix = _classParser.prefix,
    +      extraClasses = _classParser.rest;
    +
    +  var extraStyles = styleParser(node);
    +  var transform = transformParser(node);
    +  var symbol = symbolParser(node);
    +  var extraAttributes = attributesParser(node);
    +  var mask = maskParser(node);
    +
    +  return {
    +    iconName: iconName,
    +    title: node.getAttribute('title'),
    +    prefix: prefix,
    +    transform: transform,
    +    symbol: symbol,
    +    mask: mask,
    +    extra: {
    +      classes: extraClasses,
    +      styles: extraStyles,
    +      attributes: extraAttributes
    +    }
    +  };
    +}
    +
    +function MissingIcon(error) {
    +  this.name = 'MissingIcon';
    +  this.message = error || 'Icon unavailable';
    +  this.stack = new Error().stack;
    +}
    +
    +MissingIcon.prototype = Object.create(Error.prototype);
    +MissingIcon.prototype.constructor = MissingIcon;
    +
    +var FILL = { fill: 'currentColor' };
    +var ANIMATION_BASE = {
    +  attributeType: 'XML',
    +  repeatCount: 'indefinite',
    +  dur: '2s'
    +};
    +var RING = {
    +  tag: 'path',
    +  attributes: _extends({}, FILL, {
    +    d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'
    +  })
    +};
    +var OPACITY_ANIMATE = _extends({}, ANIMATION_BASE, {
    +  attributeName: 'opacity'
    +});
    +var DOT = {
    +  tag: 'circle',
    +  attributes: _extends({}, FILL, {
    +    cx: '256',
    +    cy: '364',
    +    r: '28'
    +  }),
    +  children: [{ tag: 'animate', attributes: _extends({}, ANIMATION_BASE, { attributeName: 'r', values: '28;14;28;28;14;28;' }) }, { tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '1;0;1;1;0;1;' }) }]
    +};
    +var QUESTION = {
    +  tag: 'path',
    +  attributes: _extends({}, FILL, {
    +    opacity: '1',
    +    d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'
    +  }),
    +  children: [{ tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '1;0;0;0;0;1;' }) }]
    +};
    +var EXCLAMATION = {
    +  tag: 'path',
    +  attributes: _extends({}, FILL, {
    +    opacity: '0',
    +    d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'
    +  }),
    +  children: [{ tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '0;0;1;1;0;0;' }) }]
    +};
    +
    +var missing = { tag: 'g', children: [RING, DOT, QUESTION, EXCLAMATION] };
    +
    +var styles = namespace.styles;
    +
    +var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';
    +var FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Brands|Free|Pro)/;
    +var STYLE_TO_PREFIX = {
    +  'Solid': 'fas',
    +  'Regular': 'far',
    +  'Light': 'fal',
    +  'Brands': 'fab'
    +};
    +var FONT_WEIGHT_TO_PREFIX = {
    +  '900': 'fas',
    +  '400': 'far',
    +  '300': 'fal'
    +};
    +
    +function findIcon(iconName, prefix) {
    +  var val = {
    +    found: false,
    +    width: 512,
    +    height: 512,
    +    icon: missing
    +  };
    +
    +  if (iconName && prefix && styles[prefix] && styles[prefix][iconName]) {
    +    var icon = styles[prefix][iconName];
    +    var width = icon[0];
    +    var height = icon[1];
    +    var vectorData = icon.slice(4);
    +
    +    val = {
    +      found: true,
    +      width: width,
    +      height: height,
    +      icon: { tag: 'path', attributes: { fill: 'currentColor', d: vectorData[0] } }
    +    };
    +  } else if (iconName && prefix && !config.showMissingIcons) {
    +    throw new MissingIcon('Icon is missing for prefix ' + prefix + ' with icon name ' + iconName);
    +  }
    +
    +  return val;
    +}
    +
    +function generateSvgReplacementMutation(node, nodeMeta) {
    +  var iconName = nodeMeta.iconName,
    +      title = nodeMeta.title,
    +      prefix = nodeMeta.prefix,
    +      transform = nodeMeta.transform,
    +      symbol = nodeMeta.symbol,
    +      mask = nodeMeta.mask,
    +      extra = nodeMeta.extra;
    +
    +
    +  return [node, makeInlineSvgAbstract({
    +    icons: {
    +      main: findIcon(iconName, prefix),
    +      mask: findIcon(mask.iconName, mask.prefix)
    +    },
    +    prefix: prefix,
    +    iconName: iconName,
    +    transform: transform,
    +    symbol: symbol,
    +    mask: mask,
    +    title: title,
    +    extra: extra,
    +    watchable: true
    +  })];
    +}
    +
    +function generateLayersText(node, nodeMeta) {
    +  var title = nodeMeta.title,
    +      transform = nodeMeta.transform,
    +      extra = nodeMeta.extra;
    +
    +
    +  var width = null;
    +  var height = null;
    +
    +  if (IS_IE) {
    +    var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);
    +    var boundingClientRect = node.getBoundingClientRect();
    +    width = boundingClientRect.width / computedFontSize;
    +    height = boundingClientRect.height / computedFontSize;
    +  }
    +
    +  if (config.autoA11y && !title) {
    +    extra.attributes['aria-hidden'] = 'true';
    +  }
    +
    +  return [node, makeLayersTextAbstract({
    +    content: node.innerHTML,
    +    width: width,
    +    height: height,
    +    transform: transform,
    +    title: title,
    +    extra: extra,
    +    watchable: true
    +  })];
    +}
    +
    +function generateMutation(node) {
    +  var nodeMeta = parseMeta(node);
    +
    +  if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {
    +    return generateLayersText(node, nodeMeta);
    +  } else {
    +    return generateSvgReplacementMutation(node, nodeMeta);
    +  }
    +}
    +
    +function searchPseudoElements(root) {
    +  if (!IS_DOM) return;
    +
    +  var end = perf.begin('searchPseudoElements');
    +
    +  disableObservation(function () {
    +    toArray(root.querySelectorAll('*')).filter(function (n) {
    +      return n.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(n.tagName.toUpperCase()) && !n.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!n.parentNode || n.parentNode.tagName !== 'svg');
    +    }).forEach(function (node) {
    +      [':before', ':after'].forEach(function (pos) {
    +        var children = toArray(node.children);
    +        var alreadyProcessedPseudoElement = children.filter(function (c) {
    +          return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === pos;
    +        })[0];
    +
    +        var styles = WINDOW.getComputedStyle(node, pos);
    +        var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);
    +        var fontWeight = styles.getPropertyValue('font-weight');
    +
    +        if (alreadyProcessedPseudoElement && !fontFamily) {
    +          // If we've already processed it but the current computed style does not result in a font-family,
    +          // that probably means that a class name that was previously present to make the icon has been
    +          // removed. So we now should delete the icon.
    +          node.removeChild(alreadyProcessedPseudoElement);
    +        } else if (fontFamily) {
    +          var content = styles.getPropertyValue('content');
    +          var prefix = ~['Light', 'Regular', 'Solid', 'Brands'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1]] : FONT_WEIGHT_TO_PREFIX[fontWeight];
    +          var iconName = byUnicode(prefix, toHex(content.length === 3 ? content.substr(1, 1) : content));
    +          // Only convert the pseudo element in this :before/:after position into an icon if we haven't
    +          // already done so with the same prefix and iconName
    +          if (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconName) {
    +            if (alreadyProcessedPseudoElement) {
    +              // Delete the old one, since we're replacing it with a new one
    +              node.removeChild(alreadyProcessedPseudoElement);
    +            }
    +
    +            var extra = blankMeta.extra;
    +
    +            extra.attributes[DATA_FA_PSEUDO_ELEMENT] = pos;
    +            var abstract = makeInlineSvgAbstract(_extends({}, blankMeta, {
    +              icons: {
    +                main: findIcon(iconName, prefix),
    +                mask: emptyCanonicalIcon()
    +              },
    +              prefix: prefix,
    +              iconName: iconName,
    +              extra: extra,
    +              watchable: true
    +            }));
    +
    +            var element = DOCUMENT.createElement('svg');
    +
    +            if (pos === ':before') {
    +              node.insertBefore(element, node.firstChild);
    +            } else {
    +              node.appendChild(element);
    +            }
    +
    +            element.outerHTML = abstract.map(function (a) {
    +              return toHtml(a);
    +            }).join('\n');
    +          }
    +        }
    +      });
    +    });
    +  });
    +
    +  end();
    +}
    +
    +function onTree(root) {
    +  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
    +
    +  if (!IS_DOM) return;
    +
    +  var htmlClassList = DOCUMENT.documentElement.classList;
    +  var hclAdd = function hclAdd(suffix) {
    +    return htmlClassList.add(HTML_CLASS_I2SVG_BASE_CLASS + '-' + suffix);
    +  };
    +  var hclRemove = function hclRemove(suffix) {
    +    return htmlClassList.remove(HTML_CLASS_I2SVG_BASE_CLASS + '-' + suffix);
    +  };
    +  var prefixes = Object.keys(styles);
    +  var prefixesDomQuery = ['.' + LAYERS_TEXT_CLASSNAME + ':not([' + DATA_FA_I2SVG + '])'].concat(prefixes.map(function (p) {
    +    return '.' + p + ':not([' + DATA_FA_I2SVG + '])';
    +  })).join(', ');
    +
    +  if (prefixesDomQuery.length === 0) {
    +    return;
    +  }
    +
    +  var candidates = toArray(root.querySelectorAll(prefixesDomQuery));
    +
    +  if (candidates.length > 0) {
    +    hclAdd('pending');
    +    hclRemove('complete');
    +  } else {
    +    return;
    +  }
    +
    +  var mark = perf.begin('onTree');
    +
    +  var mutations = candidates.reduce(function (acc, node) {
    +    try {
    +      var mutation = generateMutation(node);
    +
    +      if (mutation) {
    +        acc.push(mutation);
    +      }
    +    } catch (e) {
    +      if (!PRODUCTION) {
    +        if (e instanceof MissingIcon) {
    +          console.error(e);
    +        }
    +      }
    +    }
    +
    +    return acc;
    +  }, []);
    +
    +  mark();
    +
    +  perform(mutations, function () {
    +    hclAdd('active');
    +    hclAdd('complete');
    +    hclRemove('pending');
    +
    +    if (typeof callback === 'function') callback();
    +  });
    +}
    +
    +function onNode(node) {
    +  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
    +
    +  var mutation = generateMutation(node);
    +
    +  if (mutation) {
    +    perform([mutation], callback);
    +  }
    +}
    +
    +var baseStyles = "svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1em}.svg-inline--fa.fa-stack-2x{height:2em;width:2em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}";
    +
    +var css = function () {
    +  var dfp = DEFAULT_FAMILY_PREFIX;
    +  var drc = DEFAULT_REPLACEMENT_CLASS;
    +  var fp = config.familyPrefix;
    +  var rc = config.replacementClass;
    +  var s = baseStyles;
    +
    +  if (fp !== dfp || rc !== drc) {
    +    var dPatt = new RegExp('\\.' + dfp + '\\-', 'g');
    +    var rPatt = new RegExp('\\.' + drc, 'g');
    +
    +    s = s.replace(dPatt, '.' + fp + '-').replace(rPatt, '.' + rc);
    +  }
    +
    +  return s;
    +};
    +
    +function define(prefix, icons) {
    +  var normalized = Object.keys(icons).reduce(function (acc, iconName) {
    +    var icon = icons[iconName];
    +    var expanded = !!icon.icon;
    +
    +    if (expanded) {
    +      acc[icon.iconName] = icon.icon;
    +    } else {
    +      acc[iconName] = icon;
    +    }
    +    return acc;
    +  }, {});
    +
    +  if (typeof namespace.hooks.addPack === 'function') {
    +    namespace.hooks.addPack(prefix, normalized);
    +  } else {
    +    namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, normalized);
    +  }
    +
    +  /**
    +   * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
    +   * of new styles we needed to differentiate between them. Prefix `fa` is now an alias
    +   * for `fas` so we'll easy the upgrade process for our users by automatically defining
    +   * this as well.
    +   */
    +  if (prefix === 'fas') {
    +    define('fa', icons);
    +  }
    +}
    +
    +var Library = function () {
    +  function Library() {
    +    classCallCheck(this, Library);
    +
    +    this.definitions = {};
    +  }
    +
    +  createClass(Library, [{
    +    key: 'add',
    +    value: function add() {
    +      var _this = this;
    +
    +      for (var _len = arguments.length, definitions = Array(_len), _key = 0; _key < _len; _key++) {
    +        definitions[_key] = arguments[_key];
    +      }
    +
    +      var additions = definitions.reduce(this._pullDefinitions, {});
    +
    +      Object.keys(additions).forEach(function (key) {
    +        _this.definitions[key] = _extends({}, _this.definitions[key] || {}, additions[key]);
    +        define(key, additions[key]);
    +        build();
    +      });
    +    }
    +  }, {
    +    key: 'reset',
    +    value: function reset() {
    +      this.definitions = {};
    +    }
    +  }, {
    +    key: '_pullDefinitions',
    +    value: function _pullDefinitions(additions, definition) {
    +      var normalized = definition.prefix && definition.iconName && definition.icon ? { 0: definition } : definition;
    +
    +      Object.keys(normalized).map(function (key) {
    +        var _normalized$key = normalized[key],
    +            prefix = _normalized$key.prefix,
    +            iconName = _normalized$key.iconName,
    +            icon = _normalized$key.icon;
    +
    +
    +        if (!additions[prefix]) additions[prefix] = {};
    +
    +        additions[prefix][iconName] = icon;
    +      });
    +
    +      return additions;
    +    }
    +  }]);
    +  return Library;
    +}();
    +
    +function prepIcon(icon) {
    +  var width = icon[0];
    +  var height = icon[1];
    +  var vectorData = icon.slice(4);
    +
    +  return {
    +    found: true,
    +    width: width,
    +    height: height,
    +    icon: { tag: 'path', attributes: { fill: 'currentColor', d: vectorData[0] } }
    +  };
    +}
    +
    +function ensureCss() {
    +  if (config.autoAddCss && !_cssInserted) {
    +    insertCss(css());
    +    _cssInserted = true;
    +  }
    +}
    +
    +function apiObject(val, abstractCreator) {
    +  Object.defineProperty(val, 'abstract', {
    +    get: abstractCreator
    +  });
    +
    +  Object.defineProperty(val, 'html', {
    +    get: function get() {
    +      return val.abstract.map(function (a) {
    +        return toHtml(a);
    +      });
    +    }
    +  });
    +
    +  Object.defineProperty(val, 'node', {
    +    get: function get() {
    +      if (!IS_DOM) return;
    +
    +      var container = DOCUMENT.createElement('div');
    +      container.innerHTML = val.html;
    +      return container.children;
    +    }
    +  });
    +
    +  return val;
    +}
    +
    +function findIconDefinition(params) {
    +  var _params$prefix = params.prefix,
    +      prefix = _params$prefix === undefined ? 'fa' : _params$prefix,
    +      iconName = params.iconName;
    +
    +
    +  if (!iconName) return;
    +
    +  return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);
    +}
    +
    +function resolveIcons(next) {
    +  return function (maybeIconDefinition) {
    +    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    +
    +    var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});
    +
    +    var mask = params.mask;
    +
    +
    +    if (mask) {
    +      mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});
    +    }
    +
    +    return next(iconDefinition, _extends({}, params, { mask: mask }));
    +  };
    +}
    +
    +var library = new Library();
    +
    +var noAuto = function noAuto() {
    +  config.autoReplaceSvg = false;
    +  config.observeMutations = false;
    +
    +  disconnect();
    +};
    +
    +var _cssInserted = false;
    +
    +var dom = {
    +  i2svg: function i2svg() {
    +    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    +
    +    if (IS_DOM) {
    +      ensureCss();
    +
    +      var _params$node = params.node,
    +          node = _params$node === undefined ? DOCUMENT : _params$node,
    +          _params$callback = params.callback,
    +          callback = _params$callback === undefined ? function () {} : _params$callback;
    +
    +
    +      if (config.searchPseudoElements) {
    +        searchPseudoElements(node);
    +      }
    +
    +      onTree(node, callback);
    +    }
    +  },
    +
    +  css: css,
    +
    +  insertCss: function insertCss$$1() {
    +    if (!_cssInserted) {
    +      insertCss(css());
    +      _cssInserted = true;
    +    }
    +  },
    +
    +  watch: function watch() {
    +    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    +    var autoReplaceSvgRoot = params.autoReplaceSvgRoot,
    +        observeMutationsRoot = params.observeMutationsRoot;
    +
    +
    +    if (config.autoReplaceSvg === false) {
    +      config.autoReplaceSvg = true;
    +    }
    +
    +    config.observeMutations = true;
    +
    +    domready(function () {
    +      autoReplace({
    +        autoReplaceSvgRoot: autoReplaceSvgRoot
    +      });
    +
    +      observe({
    +        treeCallback: onTree,
    +        nodeCallback: onNode,
    +        pseudoElementsCallback: searchPseudoElements,
    +        observeMutationsRoot: observeMutationsRoot
    +      });
    +    });
    +  }
    +};
    +
    +var parse = {
    +  transform: function transform(transformString) {
    +    return parseTransformString(transformString);
    +  }
    +};
    +
    +var icon = resolveIcons(function (iconDefinition) {
    +  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    +  var _params$transform = params.transform,
    +      transform = _params$transform === undefined ? meaninglessTransform : _params$transform,
    +      _params$symbol = params.symbol,
    +      symbol = _params$symbol === undefined ? false : _params$symbol,
    +      _params$mask = params.mask,
    +      mask = _params$mask === undefined ? null : _params$mask,
    +      _params$title = params.title,
    +      title = _params$title === undefined ? null : _params$title,
    +      _params$classes = params.classes,
    +      classes = _params$classes === undefined ? [] : _params$classes,
    +      _params$attributes = params.attributes,
    +      attributes = _params$attributes === undefined ? {} : _params$attributes,
    +      _params$styles = params.styles,
    +      styles = _params$styles === undefined ? {} : _params$styles;
    +
    +
    +  if (!iconDefinition) return;
    +
    +  var prefix = iconDefinition.prefix,
    +      iconName = iconDefinition.iconName,
    +      icon = iconDefinition.icon;
    +
    +
    +  return apiObject(_extends({ type: 'icon' }, iconDefinition), function () {
    +    ensureCss();
    +
    +    if (config.autoA11y) {
    +      if (title) {
    +        attributes['aria-labelledby'] = config.replacementClass + '-title-' + nextUniqueId();
    +      } else {
    +        attributes['aria-hidden'] = 'true';
    +      }
    +    }
    +
    +    return makeInlineSvgAbstract({
    +      icons: {
    +        main: prepIcon(icon),
    +        mask: mask ? prepIcon(mask.icon) : { found: false, width: null, height: null, icon: {} }
    +      },
    +      prefix: prefix,
    +      iconName: iconName,
    +      transform: _extends({}, meaninglessTransform, transform),
    +      symbol: symbol,
    +      title: title,
    +      extra: {
    +        attributes: attributes,
    +        styles: styles,
    +        classes: classes
    +      }
    +    });
    +  });
    +});
    +
    +var text = function text(content) {
    +  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    +  var _params$transform2 = params.transform,
    +      transform = _params$transform2 === undefined ? meaninglessTransform : _params$transform2,
    +      _params$title2 = params.title,
    +      title = _params$title2 === undefined ? null : _params$title2,
    +      _params$classes2 = params.classes,
    +      classes = _params$classes2 === undefined ? [] : _params$classes2,
    +      _params$attributes2 = params.attributes,
    +      attributes = _params$attributes2 === undefined ? {} : _params$attributes2,
    +      _params$styles2 = params.styles,
    +      styles = _params$styles2 === undefined ? {} : _params$styles2;
    +
    +
    +  return apiObject({ type: 'text', content: content }, function () {
    +    ensureCss();
    +
    +    return makeLayersTextAbstract({
    +      content: content,
    +      transform: _extends({}, meaninglessTransform, transform),
    +      title: title,
    +      extra: {
    +        attributes: attributes,
    +        styles: styles,
    +        classes: [config.familyPrefix + '-layers-text'].concat(toConsumableArray(classes))
    +      }
    +    });
    +  });
    +};
    +
    +var counter = function counter(content) {
    +  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    +  var _params$title3 = params.title,
    +      title = _params$title3 === undefined ? null : _params$title3,
    +      _params$classes3 = params.classes,
    +      classes = _params$classes3 === undefined ? [] : _params$classes3,
    +      _params$attributes3 = params.attributes,
    +      attributes = _params$attributes3 === undefined ? {} : _params$attributes3,
    +      _params$styles3 = params.styles,
    +      styles = _params$styles3 === undefined ? {} : _params$styles3;
    +
    +
    +  return apiObject({ type: 'counter', content: content }, function () {
    +    ensureCss();
    +
    +    return makeLayersCounterAbstract({
    +      content: content.toString(),
    +      title: title,
    +      extra: {
    +        attributes: attributes,
    +        styles: styles,
    +        classes: [config.familyPrefix + '-layers-counter'].concat(toConsumableArray(classes))
    +      }
    +    });
    +  });
    +};
    +
    +var layer = function layer(assembler) {
    +  return apiObject({ type: 'layer' }, function () {
    +    ensureCss();
    +
    +    var children = [];
    +
    +    assembler(function (args) {
    +      Array.isArray(args) ? args.map(function (a) {
    +        children = children.concat(a.abstract);
    +      }) : children = children.concat(args.abstract);
    +    });
    +
    +    return [{
    +      tag: 'span',
    +      attributes: { class: config.familyPrefix + '-layers' },
    +      children: children
    +    }];
    +  });
    +};
    +
    +var api = {
    +  noAuto: noAuto,
    +  config: config,
    +  dom: dom,
    +  library: library,
    +  parse: parse,
    +  findIconDefinition: findIconDefinition,
    +  icon: icon,
    +  text: text,
    +  counter: counter,
    +  layer: layer,
    +  toHtml: toHtml
    +};
    +
    +var autoReplace = function autoReplace() {
    +  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    +  var _params$autoReplaceSv = params.autoReplaceSvgRoot,
    +      autoReplaceSvgRoot = _params$autoReplaceSv === undefined ? DOCUMENT : _params$autoReplaceSv;
    +
    +
    +  if (Object.keys(namespace.styles).length > 0 && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({ node: autoReplaceSvgRoot });
    +};
    +
    +function bootstrap() {
    +  if (IS_BROWSER) {
    +    if (!WINDOW.FontAwesome) {
    +      WINDOW.FontAwesome = api;
    +    }
    +
    +    domready(function () {
    +      autoReplace();
    +
    +      observe({
    +        treeCallback: onTree,
    +        nodeCallback: onNode,
    +        pseudoElementsCallback: searchPseudoElements
    +      });
    +    });
    +  }
    +
    +  namespace.hooks = _extends({}, namespace.hooks, {
    +
    +    addPack: function addPack(prefix, icons) {
    +      namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, icons);
    +
    +      build();
    +      autoReplace();
    +    },
    +
    +    addShims: function addShims(shims) {
    +      var _namespace$shims;
    +
    +      (_namespace$shims = namespace.shims).push.apply(_namespace$shims, toConsumableArray(shims));
    +
    +      build();
    +      autoReplace();
    +    }
    +  });
    +}
    +
    +bunker(bootstrap);
    +
    +}());
    diff --git a/htdocs/theme/common/fontawesome-5/js/fontawesome.min.js b/htdocs/theme/common/fontawesome-5/js/fontawesome.min.js
    new file mode 100644
    index 00000000000..d28d7ac64c7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/fontawesome.min.js
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +!function(){"use strict";var t=function(){},e={},r={},a=null,n={mark:t,measure:t};try{"undefined"!=typeof window&&(e=window),"undefined"!=typeof document&&(r=document),"undefined"!=typeof MutationObserver&&(a=MutationObserver),"undefined"!=typeof performance&&(n=performance)}catch(t){}var i=(e.navigator||{}).userAgent,o=void 0===i?"":i,m=e,d=r,s=a,l=n,f=!!m.document,c=!!d.documentElement&&!!d.head&&"function"==typeof d.addEventListener&&"function"==typeof d.createElement,k=~o.indexOf("MSIE")||~o.indexOf("Trident/"),u="___FONT_AWESOME___",C=16,g="svg-inline--fa",A="data-fa-i2svg",h="data-fa-pseudo-element",p="data-prefix",v="data-icon",b="fontawesome-i2svg",y=["HTML","HEAD","STYLE","SCRIPT"],w=function(){try{return!0}catch(t){return!1}}(),x=[1,2,3,4,5,6,7,8,9,10],N=x.concat([11,12,13,14,15,16,17,18,19,20]),z=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],M=["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter"].concat(x.map(function(t){return t+"x"})).concat(N.map(function(t){return"w-"+t})),S=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},L=function(){function a(t,e){for(var r=0;r<e.length;r++){var a=e[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}return function(t,e,r){return e&&a(t.prototype,e),r&&a(t,r),t}}(),E=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},O=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var r=[],a=!0,n=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(r.push(o.value),!e||r.length!==e);a=!0);}catch(t){n=!0,i=t}finally{try{!a&&s.return&&s.return()}finally{if(n)throw i}}return r}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},P=function(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e<t.length;e++)r[e]=t[e];return r}return Array.from(t)},j=m.FontAwesomeConfig||{};if(d&&"function"==typeof d.querySelector){[["data-family-prefix","familyPrefix"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach(function(t){var e,r=O(t,2),a=r[0],n=r[1],i=""===(e=function(t){var e=d.querySelector("script["+t+"]");if(e)return e.getAttribute(t)}(a))||"false"!==e&&("true"===e||e);null!=i&&(j[n]=i)})}var R=E({familyPrefix:"fa",replacementClass:g,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},j);R.autoReplaceSvg||(R.observeMutations=!1);var T=E({},R);m.FontAwesomeConfig=T;var H=m||{};H[u]||(H[u]={}),H[u].styles||(H[u].styles={}),H[u].hooks||(H[u].hooks={}),H[u].shims||(H[u].shims=[]);var I=H[u],F=[],Y=!1;c&&((Y=(d.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(d.readyState))||d.addEventListener("DOMContentLoaded",function t(){d.removeEventListener("DOMContentLoaded",t),Y=1,F.map(function(t){return t()})}));var _=function(t){c&&(Y?setTimeout(t,0):F.push(t))},B=C,D={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function W(t){if(t&&c){var e=d.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=t;for(var r=d.head.childNodes,a=null,n=r.length-1;-1<n;n--){var i=r[n],o=(i.tagName||"").toUpperCase();-1<["STYLE","LINK"].indexOf(o)&&(a=i)}return d.head.insertBefore(e,a),t}}var X="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function q(){for(var t=12,e="";0<t--;)e+=X[62*Math.random()|0];return e}function U(t){for(var e=[],r=(t||[]).length>>>0;r--;)e[r]=t[r];return e}function V(t){return t.classList?U(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(t){return t})}function K(t,e){var r,a=e.split("-"),n=a[0],i=a.slice(1).join("-");return n!==t||""===i||(r=i,~M.indexOf(r))?null:i}function G(t){return(""+t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function J(r){return Object.keys(r||{}).reduce(function(t,e){return t+(e+": ")+r[e]+";"},"")}function Q(t){return t.size!==D.size||t.x!==D.x||t.y!==D.y||t.rotate!==D.rotate||t.flipX||t.flipY}function Z(t){var e=t.transform,r=t.containerWidth,a=t.iconWidth;return{outer:{transform:"translate("+r/2+" 256)"},inner:{transform:"translate("+32*e.x+", "+32*e.y+") "+" "+("scale("+e.size/16*(e.flipX?-1:1)+", "+e.size/16*(e.flipY?-1:1)+") ")+" "+("rotate("+e.rotate+" 0 0)")},path:{transform:"translate("+a/2*-1+" -256)"}}}var $={x:0,y:0,width:"100%",height:"100%"},tt=function(t){var e=t.children,r=t.attributes,a=t.main,n=t.mask,i=t.transform,o=a.width,s=a.icon,l=n.width,f=n.icon,c=Z({transform:i,containerWidth:l,iconWidth:o}),u={tag:"rect",attributes:E({},$,{fill:"white"})},m={tag:"g",attributes:E({},c.inner),children:[{tag:"path",attributes:E({},s.attributes,c.path,{fill:"black"})}]},d={tag:"g",attributes:E({},c.outer),children:[m]},g="mask-"+q(),h="clip-"+q(),p={tag:"defs",children:[{tag:"clipPath",attributes:{id:h},children:[f]},{tag:"mask",attributes:E({},$,{id:g,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[u,d]}]};return e.push(p,{tag:"rect",attributes:E({fill:"currentColor","clip-path":"url(#"+h+")",mask:"url(#"+g+")"},$)}),{children:e,attributes:r}},et=function(t){var e=t.children,r=t.attributes,a=t.main,n=t.transform,i=J(t.styles);if(0<i.length&&(r.style=i),Q(n)){var o=Z({transform:n,containerWidth:a.width,iconWidth:a.width});e.push({tag:"g",attributes:E({},o.outer),children:[{tag:"g",attributes:E({},o.inner),children:[{tag:a.icon.tag,children:a.icon.children,attributes:E({},a.icon.attributes,o.path)}]}]})}else e.push(a.icon);return{children:e,attributes:r}},rt=function(t){var e=t.children,r=t.main,a=t.mask,n=t.attributes,i=t.styles,o=t.transform;if(Q(o)&&r.found&&!a.found){var s=r.width/r.height/2,l=.5;n.style=J(E({},i,{"transform-origin":s+o.x/16+"em "+(l+o.y/16)+"em"}))}return[{tag:"svg",attributes:n,children:e}]},at=function(t){var e=t.prefix,r=t.iconName,a=t.children,n=t.attributes,i=t.symbol,o=!0===i?e+"-"+T.familyPrefix+"-"+r:i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:E({},n,{id:o}),children:a}]}]};function nt(t){var e=t.icons,r=e.main,a=e.mask,n=t.prefix,i=t.iconName,o=t.transform,s=t.symbol,l=t.title,f=t.extra,c=t.watchable,u=void 0!==c&&c,m=a.found?a:r,d=m.width,g=m.height,h="fa-w-"+Math.ceil(d/g*16),p=[T.replacementClass,i?T.familyPrefix+"-"+i:"",h].filter(function(t){return-1===f.classes.indexOf(t)}).concat(f.classes).join(" "),v={children:[],attributes:E({},f.attributes,{"data-prefix":n,"data-icon":i,class:p,role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 "+d+" "+g})};u&&(v.attributes[A]=""),l&&v.children.push({tag:"title",attributes:{id:v.attributes["aria-labelledby"]||"title-"+q()},children:[l]});var b=E({},v,{prefix:n,iconName:i,main:r,mask:a,transform:o,symbol:s,styles:f.styles}),y=a.found&&r.found?tt(b):et(b),w=y.children,x=y.attributes;return b.children=w,b.attributes=x,s?at(b):rt(b)}function it(t){var e=t.content,r=t.width,a=t.height,n=t.transform,i=t.title,o=t.extra,s=t.watchable,l=void 0!==s&&s,f=E({},o.attributes,i?{title:i}:{},{class:o.classes.join(" ")});l&&(f[A]="");var c,u,m,d,g,h,p,v,b,y=E({},o.styles);Q(n)&&(y.transform=(u=(c={transform:n,startCentered:!0,width:r,height:a}).transform,m=c.width,d=void 0===m?C:m,g=c.height,h=void 0===g?C:g,p=c.startCentered,b="",b+=(v=void 0!==p&&p)&&k?"translate("+(u.x/B-d/2)+"em, "+(u.y/B-h/2)+"em) ":v?"translate(calc(-50% + "+u.x/B+"em), calc(-50% + "+u.y/B+"em)) ":"translate("+u.x/B+"em, "+u.y/B+"em) ",b+="scale("+u.size/B*(u.flipX?-1:1)+", "+u.size/B*(u.flipY?-1:1)+") ",b+="rotate("+u.rotate+"deg) "),y["-webkit-transform"]=y.transform);var w=J(y);0<w.length&&(f.style=w);var x=[];return x.push({tag:"span",attributes:f,children:[e]}),i&&x.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),x}var ot=function(){},st=T.measurePerformance&&l&&l.mark&&l.measure?l:{mark:ot,measure:ot},lt='FA "5.4.1"',ft=function(t){st.mark(lt+" "+t+" ends"),st.measure(lt+" "+t,lt+" "+t+" begins",lt+" "+t+" ends")},ct={begin:function(t){return st.mark(lt+" "+t+" begins"),function(){return ft(t)}},end:ft},ut=function(t,e,r,a){var n,i,o,s,l,f=Object.keys(t),c=f.length,u=void 0!==a?(s=e,l=a,function(t,e,r,a){return s.call(l,t,e,r,a)}):e;for(void 0===r?(n=1,o=t[f[0]]):(n=0,o=r);n<c;n++)o=u(o,t[i=f[n]],i,t);return o},mt=I.styles,dt=I.shims,gt={},ht={},pt={},vt=function(){var t=function(a){return ut(mt,function(t,e,r){return t[r]=ut(e,a,{}),t},{})};gt=t(function(t,e,r){return t[e[3]]=r,t}),ht=t(function(e,t,r){var a=t[2];return e[r]=r,a.forEach(function(t){e[t]=r}),e});var i="far"in mt;pt=ut(dt,function(t,e){var r=e[0],a=e[1],n=e[2];return"far"!==a||i||(a="fas"),t[r]={prefix:a,iconName:n},t},{})};function bt(t,e){return gt[t][e]}vt();var yt=I.styles,wt=function(){return{prefix:null,iconName:null,rest:[]}};function xt(t){return t.reduce(function(t,e){var r=K(T.familyPrefix,e);if(yt[e])t.prefix=e;else if(r){var a="fa"===t.prefix?pt[r]||{prefix:null,iconName:null}:{};t.iconName=a.iconName||r,t.prefix=a.prefix||t.prefix}else e!==T.replacementClass&&0!==e.indexOf("fa-w-")&&t.rest.push(e);return t},wt())}function kt(t,e,r){if(t&&t[e]&&t[e][r])return{prefix:e,iconName:r,icon:t[e][r]}}function Ct(t){var r,e=t.tag,a=t.attributes,n=void 0===a?{}:a,i=t.children,o=void 0===i?[]:i;return"string"==typeof t?G(t):"<"+e+" "+(r=n,Object.keys(r||{}).reduce(function(t,e){return t+(e+'="')+G(r[e])+'" '},"").trim())+">"+o.map(Ct).join("")+"</"+e+">"}var At=function(){};function Nt(t){return"string"==typeof(t.getAttribute?t.getAttribute(A):null)}var zt={replace:function(t){var e=t[0],r=t[1].map(function(t){return Ct(t)}).join("\n");if(e.parentNode&&e.outerHTML)e.outerHTML=r+(T.keepOriginalSource&&"svg"!==e.tagName.toLowerCase()?"\x3c!-- "+e.outerHTML+" --\x3e":"");else if(e.parentNode){var a=document.createElement("span");e.parentNode.replaceChild(a,e),a.outerHTML=r}},nest:function(t){var e=t[0],r=t[1];if(~V(e).indexOf(T.replacementClass))return zt.replace(t);var a=new RegExp(T.familyPrefix+"-.*");delete r[0].attributes.style;var n=r[0].attributes.class.split(" ").reduce(function(t,e){return e===T.replacementClass||e.match(a)?t.toSvg.push(e):t.toNode.push(e),t},{toNode:[],toSvg:[]});r[0].attributes.class=n.toSvg.join(" ");var i=r.map(function(t){return Ct(t)}).join("\n");e.setAttribute("class",n.toNode.join(" ")),e.setAttribute(A,""),e.innerHTML=i}};function Mt(r,t){var a="function"==typeof t?t:At;0===r.length?a():(m.requestAnimationFrame||function(t){return t()})(function(){var t=!0===T.autoReplaceSvg?zt.replace:zt[T.autoReplaceSvg]||zt.replace,e=ct.begin("mutate");r.map(t),e(),a()})}var St=!1;var Lt=null;function Et(t){if(s&&T.observeMutations){var n=t.treeCallback,i=t.nodeCallback,o=t.pseudoElementsCallback,e=t.observeMutationsRoot,r=void 0===e?d.body:e;Lt=new s(function(t){St||U(t).forEach(function(t){if("childList"===t.type&&0<t.addedNodes.length&&!Nt(t.addedNodes[0])&&(T.searchPseudoElements&&o(t.target),n(t.target)),"attributes"===t.type&&t.target.parentNode&&T.searchPseudoElements&&o(t.target.parentNode),"attributes"===t.type&&Nt(t.target)&&~z.indexOf(t.attributeName))if("class"===t.attributeName){var e=xt(V(t.target)),r=e.prefix,a=e.iconName;r&&t.target.setAttribute("data-prefix",r),a&&t.target.setAttribute("data-icon",a)}else i(t.target)})}),c&&Lt.observe(r,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}var Ot=function(t){var e=t.getAttribute("style"),r=[];return e&&(r=e.split(";").reduce(function(t,e){var r=e.split(":"),a=r[0],n=r.slice(1);return a&&0<n.length&&(t[a]=n.join(":").trim()),t},{})),r};function Pt(t){for(var e="",r=0;r<t.length;r++){e+=("000"+t.charCodeAt(r).toString(16)).slice(-4)}return e}var jt=function(t){var e,r,a=t.getAttribute("data-prefix"),n=t.getAttribute("data-icon"),i=void 0!==t.innerText?t.innerText.trim():"",o=xt(V(t));return a&&n&&(o.prefix=a,o.iconName=n),o.prefix&&1<i.length?o.iconName=(e=o.prefix,r=t.innerText,ht[e][r]):o.prefix&&1===i.length&&(o.iconName=bt(o.prefix,Pt(t.innerText))),o},Rt=function(t){var e={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return t?t.toLowerCase().split(" ").reduce(function(t,e){var r=e.toLowerCase().split("-"),a=r[0],n=r.slice(1).join("-");if(a&&"h"===n)return t.flipX=!0,t;if(a&&"v"===n)return t.flipY=!0,t;if(n=parseFloat(n),isNaN(n))return t;switch(a){case"grow":t.size=t.size+n;break;case"shrink":t.size=t.size-n;break;case"left":t.x=t.x-n;break;case"right":t.x=t.x+n;break;case"up":t.y=t.y-n;break;case"down":t.y=t.y+n;break;case"rotate":t.rotate=t.rotate+n}return t},e):e},Tt=function(t){return Rt(t.getAttribute("data-fa-transform"))},Ht=function(t){var e=t.getAttribute("data-fa-symbol");return null!==e&&(""===e||e)},It=function(t){var e=U(t.attributes).reduce(function(t,e){return"class"!==t.name&&"style"!==t.name&&(t[e.name]=e.value),t},{}),r=t.getAttribute("title");return T.autoA11y&&(r?e["aria-labelledby"]=T.replacementClass+"-title-"+q():e["aria-hidden"]="true"),e},Ft=function(t){var e=t.getAttribute("data-fa-mask");return e?xt(e.split(" ").map(function(t){return t.trim()})):wt()},Yt={iconName:null,title:null,prefix:null,transform:D,symbol:!1,mask:null,extra:{classes:[],styles:{},attributes:{}}};function _t(t){this.name="MissingIcon",this.message=t||"Icon unavailable",this.stack=(new Error).stack}(_t.prototype=Object.create(Error.prototype)).constructor=_t;var Bt={fill:"currentColor"},Dt={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},Wt={tag:"path",attributes:E({},Bt,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})},Xt=E({},Dt,{attributeName:"opacity"}),qt={tag:"g",children:[Wt,{tag:"circle",attributes:E({},Bt,{cx:"256",cy:"364",r:"28"}),children:[{tag:"animate",attributes:E({},Dt,{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:E({},Xt,{values:"1;0;1;1;0;1;"})}]},{tag:"path",attributes:E({},Bt,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:[{tag:"animate",attributes:E({},Xt,{values:"1;0;0;0;0;1;"})}]},{tag:"path",attributes:E({},Bt,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:E({},Xt,{values:"0;0;1;1;0;0;"})}]}]},Ut=I.styles,Vt="fa-layers-text",Kt=/Font Awesome 5 (Solid|Regular|Light|Brands|Free|Pro)/,Gt={Solid:"fas",Regular:"far",Light:"fal",Brands:"fab"},Jt={900:"fas",400:"far",300:"fal"};function Qt(t,e){var r={found:!1,width:512,height:512,icon:qt};if(t&&e&&Ut[e]&&Ut[e][t]){var a=Ut[e][t];r={found:!0,width:a[0],height:a[1],icon:{tag:"path",attributes:{fill:"currentColor",d:a.slice(4)[0]}}}}else if(t&&e&&!T.showMissingIcons)throw new _t("Icon is missing for prefix "+e+" with icon name "+t);return r}function Zt(t){var e,r,a,n,i,o,s,l,f,c,u,m,d,g,h,p,v,b,y,w=(r=jt(e=t),a=r.iconName,n=r.prefix,i=r.rest,o=Ot(e),s=Tt(e),l=Ht(e),f=It(e),c=Ft(e),{iconName:a,title:e.getAttribute("title"),prefix:n,transform:s,symbol:l,mask:c,extra:{classes:i,styles:o,attributes:f}});return~w.extra.classes.indexOf(Vt)?function(t,e){var r=e.title,a=e.transform,n=e.extra,i=null,o=null;if(k){var s=parseInt(getComputedStyle(t).fontSize,10),l=t.getBoundingClientRect();i=l.width/s,o=l.height/s}return T.autoA11y&&!r&&(n.attributes["aria-hidden"]="true"),[t,it({content:t.innerHTML,width:i,height:o,transform:a,title:r,extra:n,watchable:!0})]}(t,w):(u=t,d=(m=w).iconName,g=m.title,h=m.prefix,p=m.transform,v=m.symbol,b=m.mask,y=m.extra,[u,nt({icons:{main:Qt(d,h),mask:Qt(b.iconName,b.prefix)},prefix:h,iconName:d,transform:p,symbol:v,mask:b,title:g,extra:y,watchable:!0})])}function $t(t){if(c){var e=ct.begin("searchPseudoElements");St=!0,function(){U(t.querySelectorAll("*")).filter(function(t){return!(t.parentNode===document.head||~y.indexOf(t.tagName.toUpperCase())||t.getAttribute(h)||t.parentNode&&"svg"===t.parentNode.tagName)}).forEach(function(u){[":before",":after"].forEach(function(e){var t=U(u.children).filter(function(t){return t.getAttribute(h)===e})[0],r=m.getComputedStyle(u,e),a=r.getPropertyValue("font-family").match(Kt),n=r.getPropertyValue("font-weight");if(t&&!a)u.removeChild(t);else if(a){var i=r.getPropertyValue("content"),o=~["Light","Regular","Solid","Brands"].indexOf(a[1])?Gt[a[1]]:Jt[n],s=bt(o,Pt(3===i.length?i.substr(1,1):i));if(!t||t.getAttribute(p)!==o||t.getAttribute(v)!==s){t&&u.removeChild(t);var l=Yt.extra;l.attributes[h]=e;var f=nt(E({},Yt,{icons:{main:Qt(s,o),mask:wt()},prefix:o,iconName:s,extra:l,watchable:!0})),c=d.createElement("svg");":before"===e?u.insertBefore(c,u.firstChild):u.appendChild(c),c.outerHTML=f.map(function(t){return Ct(t)}).join("\n")}}})})}(),St=!1,e()}}function te(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;if(c){var r=d.documentElement.classList,a=function(t){return r.add(b+"-"+t)},n=function(t){return r.remove(b+"-"+t)},i=Object.keys(Ut),o=["."+Vt+":not(["+A+"])"].concat(i.map(function(t){return"."+t+":not(["+A+"])"})).join(", ");if(0!==o.length){var s=U(t.querySelectorAll(o));if(0<s.length){a("pending"),n("complete");var l=ct.begin("onTree"),f=s.reduce(function(t,e){try{var r=Zt(e);r&&t.push(r)}catch(t){w||t instanceof _t&&console.error(t)}return t},[]);l(),Mt(f,function(){a("active"),a("complete"),n("pending"),"function"==typeof e&&e()})}}}}function ee(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,r=Zt(t);r&&Mt([r],e)}var re=function(){var t=g,e=T.familyPrefix,r=T.replacementClass,a="svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1em}.svg-inline--fa.fa-stack-2x{height:2em;width:2em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}";if("fa"!==e||r!==t){var n=new RegExp("\\.fa\\-","g"),i=new RegExp("\\."+t,"g");a=a.replace(n,"."+e+"-").replace(i,"."+r)}return a};function ae(t){return{found:!0,width:t[0],height:t[1],icon:{tag:"path",attributes:{fill:"currentColor",d:t.slice(4)[0]}}}}function ne(){T.autoAddCss&&!fe&&(W(re()),fe=!0)}function ie(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map(function(t){return Ct(t)})}}),Object.defineProperty(e,"node",{get:function(){if(c){var t=d.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function oe(t){var e=t.prefix,r=void 0===e?"fa":e,a=t.iconName;if(a)return kt(le.definitions,r,a)||kt(I.styles,r,a)}var se,le=new(function(){function t(){S(this,t),this.definitions={}}return L(t,[{key:"add",value:function(){for(var e=this,t=arguments.length,r=Array(t),a=0;a<t;a++)r[a]=arguments[a];var n=r.reduce(this._pullDefinitions,{});Object.keys(n).forEach(function(t){e.definitions[t]=E({},e.definitions[t]||{},n[t]),function t(e,a){var r=Object.keys(a).reduce(function(t,e){var r=a[e];return r.icon?t[r.iconName]=r.icon:t[e]=r,t},{});"function"==typeof I.hooks.addPack?I.hooks.addPack(e,r):I.styles[e]=E({},I.styles[e]||{},r),"fas"===e&&t("fa",a)}(t,n[t]),vt()})}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(i,t){var o=t.prefix&&t.iconName&&t.icon?{0:t}:t;return Object.keys(o).map(function(t){var e=o[t],r=e.prefix,a=e.iconName,n=e.icon;i[r]||(i[r]={}),i[r][a]=n}),i}}]),t}()),fe=!1,ce={i2svg:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};if(c){ne();var e=t.node,r=void 0===e?d:e,a=t.callback,n=void 0===a?function(){}:a;T.searchPseudoElements&&$t(r),te(r,n)}},css:re,insertCss:function(){fe||(W(re()),fe=!0)},watch:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.autoReplaceSvgRoot,r=t.observeMutationsRoot;!1===T.autoReplaceSvg&&(T.autoReplaceSvg=!0),T.observeMutations=!0,_(function(){de({autoReplaceSvgRoot:e}),Et({treeCallback:te,nodeCallback:ee,pseudoElementsCallback:$t,observeMutationsRoot:r})})}},ue=(se=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=e.transform,a=void 0===r?D:r,n=e.symbol,i=void 0!==n&&n,o=e.mask,s=void 0===o?null:o,l=e.title,f=void 0===l?null:l,c=e.classes,u=void 0===c?[]:c,m=e.attributes,d=void 0===m?{}:m,g=e.styles,h=void 0===g?{}:g;if(t){var p=t.prefix,v=t.iconName,b=t.icon;return ie(E({type:"icon"},t),function(){return ne(),T.autoA11y&&(f?d["aria-labelledby"]=T.replacementClass+"-title-"+q():d["aria-hidden"]="true"),nt({icons:{main:ae(b),mask:s?ae(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:p,iconName:v,transform:E({},D,a),symbol:i,title:f,extra:{attributes:d,styles:h,classes:u}})})}},function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=(t||{}).icon?t:oe(t||{}),a=e.mask;return a&&(a=(a||{}).icon?a:oe(a||{})),se(r,E({},e,{mask:a}))}),me={noAuto:function(){T.autoReplaceSvg=!1,T.observeMutations=!1,Lt&&Lt.disconnect()},config:T,dom:ce,library:le,parse:{transform:function(t){return Rt(t)}},findIconDefinition:oe,icon:ue,text:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=e.transform,a=void 0===r?D:r,n=e.title,i=void 0===n?null:n,o=e.classes,s=void 0===o?[]:o,l=e.attributes,f=void 0===l?{}:l,c=e.styles,u=void 0===c?{}:c;return ie({type:"text",content:t},function(){return ne(),it({content:t,transform:E({},D,a),title:i,extra:{attributes:f,styles:u,classes:[T.familyPrefix+"-layers-text"].concat(P(s))}})})},counter:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=e.title,a=void 0===r?null:r,n=e.classes,i=void 0===n?[]:n,o=e.attributes,s=void 0===o?{}:o,l=e.styles,f=void 0===l?{}:l;return ie({type:"counter",content:t},function(){return ne(),function(t){var e=t.content,r=t.title,a=t.extra,n=E({},a.attributes,r?{title:r}:{},{class:a.classes.join(" ")}),i=J(a.styles);0<i.length&&(n.style=i);var o=[];return o.push({tag:"span",attributes:n,children:[e]}),r&&o.push({tag:"span",attributes:{class:"sr-only"},children:[r]}),o}({content:t.toString(),title:a,extra:{attributes:s,styles:f,classes:[T.familyPrefix+"-layers-counter"].concat(P(i))}})})},layer:function(t){return ie({type:"layer"},function(){ne();var e=[];return t(function(t){Array.isArray(t)?t.map(function(t){e=e.concat(t.abstract)}):e=e.concat(t.abstract)}),[{tag:"span",attributes:{class:T.familyPrefix+"-layers"},children:e}]})},toHtml:Ct},de=function(){var t=(0<arguments.length&&void 0!==arguments[0]?arguments[0]:{}).autoReplaceSvgRoot,e=void 0===t?d:t;0<Object.keys(I.styles).length&&c&&T.autoReplaceSvg&&me.dom.i2svg({node:e})};!function(t){try{t()}catch(t){if(!w)throw t}}(function(){f&&(m.FontAwesome||(m.FontAwesome=me),_(function(){de(),Et({treeCallback:te,nodeCallback:ee,pseudoElementsCallback:$t})})),I.hooks=E({},I.hooks,{addPack:function(t,e){I.styles[t]=E({},I.styles[t]||{},e),vt(),de()},addShims:function(t){var e;(e=I.shims).push.apply(e,P(t)),vt(),de()}})})}();
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/js/regular.js b/htdocs/theme/common/fontawesome-5/js/regular.js
    new file mode 100644
    index 00000000000..6a5bafa3c9f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/regular.js
    @@ -0,0 +1,277 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +(function () {
    +'use strict';
    +
    +var _WINDOW = {};
    +try {
    +  if (typeof window !== 'undefined') _WINDOW = window;
    +  
    +} catch (e) {}
    +
    +var _ref = _WINDOW.navigator || {};
    +var _ref$userAgent = _ref.userAgent;
    +var userAgent = _ref$userAgent === undefined ? '' : _ref$userAgent;
    +
    +var WINDOW = _WINDOW;
    +
    +
    +
    +
    +
    +var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
    +
    +var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +var PRODUCTION = function () {
    +  try {
    +    return "production" === 'production';
    +  } catch (e) {
    +    return false;
    +  }
    +}();
    +
    +var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    +var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
    +
    +
    +
    +var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter'].concat(oneToTen.map(function (n) {
    +  return n + 'x';
    +})).concat(oneToTwenty.map(function (n) {
    +  return 'w-' + n;
    +}));
    +
    +function bunker(fn) {
    +  try {
    +    fn();
    +  } catch (e) {
    +    if (!PRODUCTION) {
    +      throw e;
    +    }
    +  }
    +}
    +
    +var w = WINDOW || {};
    +
    +if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
    +if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
    +if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
    +if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
    +
    +var namespace = w[NAMESPACE_IDENTIFIER];
    +
    +var _extends = Object.assign || function (target) {
    +  for (var i = 1; i < arguments.length; i++) {
    +    var source = arguments[i];
    +
    +    for (var key in source) {
    +      if (Object.prototype.hasOwnProperty.call(source, key)) {
    +        target[key] = source[key];
    +      }
    +    }
    +  }
    +
    +  return target;
    +};
    +
    +function define(prefix, icons) {
    +  var normalized = Object.keys(icons).reduce(function (acc, iconName) {
    +    var icon = icons[iconName];
    +    var expanded = !!icon.icon;
    +
    +    if (expanded) {
    +      acc[icon.iconName] = icon.icon;
    +    } else {
    +      acc[iconName] = icon;
    +    }
    +    return acc;
    +  }, {});
    +
    +  if (typeof namespace.hooks.addPack === 'function') {
    +    namespace.hooks.addPack(prefix, normalized);
    +  } else {
    +    namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, normalized);
    +  }
    +
    +  /**
    +   * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
    +   * of new styles we needed to differentiate between them. Prefix `fa` is now an alias
    +   * for `fas` so we'll easy the upgrade process for our users by automatically defining
    +   * this as well.
    +   */
    +  if (prefix === 'fas') {
    +    define('fa', icons);
    +  }
    +}
    +
    +var icons = {
    +  "address-book": [448, 512, [], "f2b9", "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],
    +  "address-card": [576, 512, [], "f2bb", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z"],
    +  "angry": [496, 512, [], "f556", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z"],
    +  "arrow-alt-circle-down": [512, 512, [], "f358", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z"],
    +  "arrow-alt-circle-left": [512, 512, [], "f359", "M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z"],
    +  "arrow-alt-circle-right": [512, 512, [], "f35a", "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z"],
    +  "arrow-alt-circle-up": [512, 512, [], "f35b", "M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z"],
    +  "bell": [448, 512, [], "f0f3", "M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z"],
    +  "bell-slash": [640, 512, [], "f1f6", "M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"],
    +  "bookmark": [384, 512, [], "f02e", "M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"],
    +  "building": [448, 512, [], "f1ad", "M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z"],
    +  "calendar": [448, 512, [], "f133", "M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z"],
    +  "calendar-alt": [448, 512, [], "f073", "M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "calendar-check": [448, 512, [], "f274", "M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z"],
    +  "calendar-minus": [448, 512, [], "f272", "M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "calendar-plus": [448, 512, [], "f271", "M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "calendar-times": [448, 512, [], "f273", "M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "caret-square-down": [448, 512, [], "f150", "M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "caret-square-left": [448, 512, [], "f191", "M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "caret-square-right": [448, 512, [], "f152", "M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "caret-square-up": [448, 512, [], "f151", "M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "chart-bar": [512, 512, [], "f080", "M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z"],
    +  "check-circle": [512, 512, [], "f058", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"],
    +  "check-square": [448, 512, [], "f14a", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"],
    +  "circle": [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"],
    +  "clipboard": [384, 512, [], "f328", "M336 64h-80c0-35.29-28.71-64-64-64s-64 28.71-64 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h42v36c0 6.627 5.373 12 12 12h168c6.627 0 12-5.373 12-12v-36h42a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zM192 40c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24"],
    +  "clock": [512, 512, [], "f017", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"],
    +  "clone": [512, 512, [], "f24d", "M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"],
    +  "closed-captioning": [512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z"],
    +  "comment": [512, 512, [], "f075", "M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],
    +  "comment-alt": [512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z"],
    +  "comment-dots": [512, 512, [], "f4ad", "M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],
    +  "comments": [576, 512, [], "f086", "M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z"],
    +  "compass": [496, 512, [], "f14e", "M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],
    +  "copy": [448, 512, [], "f0c5", "M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"],
    +  "copyright": [512, 512, [], "f1f9", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z"],
    +  "credit-card": [576, 512, [], "f09d", "M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z"],
    +  "dizzy": [496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z"],
    +  "dot-circle": [512, 512, [], "f192", "M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"],
    +  "edit": [576, 512, [], "f044", "M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"],
    +  "envelope": [512, 512, [], "f0e0", "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"],
    +  "envelope-open": [512, 512, [], "f2b6", "M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z"],
    +  "eye": [576, 512, [], "f06e", "M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"],
    +  "eye-slash": [576, 512, [], "f070", "M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"],
    +  "file": [384, 512, [], "f15b", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"],
    +  "file-alt": [384, 512, [], "f15c", "M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"],
    +  "file-archive": [384, 512, [], "f1c6", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 51.882L332.118 128H256V51.882zM336 464H48V48h79.714v16h32V48H208v104c0 13.255 10.745 24 24 24h104v288zM192.27 96h-32V64h32v32zm-32 0v32h-32V96h32zm0 64v32h-32v-32h32zm32 0h-32v-32h32v32zm1.909 105.678A12 12 0 0 0 182.406 256H160.27v-32h-32v32l-19.69 97.106C101.989 385.611 126.834 416 160 416c33.052 0 57.871-30.192 51.476-62.62l-17.297-87.702zM160.27 390.073c-17.918 0-32.444-12.105-32.444-27.036 0-14.932 14.525-27.036 32.444-27.036s32.444 12.105 32.444 27.036c0 14.931-14.526 27.036-32.444 27.036zm32-166.073h-32v-32h32v32z"],
    +  "file-audio": [384, 512, [], "f1c7", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z"],
    +  "file-code": [384, 512, [], "f1c9", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm101.677-115.115L116.854 320l32.822-28.885a8.793 8.793 0 0 0 .605-12.624l-17.403-18.564c-3.384-3.613-8.964-3.662-12.438-.401L62.78 313.58c-3.703 3.474-3.704 9.367.001 12.84l57.659 54.055a8.738 8.738 0 0 0 6.012 2.381 8.746 8.746 0 0 0 6.427-2.782l17.403-18.563a8.795 8.795 0 0 0-.605-12.626zm84.284-127.85l-24.401-7.084a8.796 8.796 0 0 0-10.905 5.998L144.04 408.061c-1.353 4.66 1.338 9.552 5.998 10.905l24.403 7.084c4.68 1.355 9.557-1.354 10.905-5.998l54.612-188.112c1.354-4.66-1.337-9.552-5.997-10.905zm87.258 92.545l-57.658-54.055c-3.526-3.307-9.099-3.165-12.439.401l-17.403 18.563a8.795 8.795 0 0 0 .605 12.625L267.146 320l-32.822 28.885a8.793 8.793 0 0 0-.605 12.624l17.403 18.564a8.797 8.797 0 0 0 12.439.401h-.001l57.66-54.055c3.703-3.473 3.703-9.366-.001-12.839z"],
    +  "file-excel": [384, 512, [], "f1c3", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z"],
    +  "file-image": [384, 512, [], "f1c5", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"],
    +  "file-pdf": [384, 512, [], "f1c1", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z"],
    +  "file-powerpoint": [384, 512, [], "f1c4", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z"],
    +  "file-video": [384, 512, [], "f1c8", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z"],
    +  "file-word": [384, 512, [], "f1c2", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z"],
    +  "flag": [512, 512, [], "f024", "M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z"],
    +  "flushed": [496, 512, [], "f579", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
    +  "folder": [512, 512, [], "f07b", "M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z"],
    +  "folder-open": [576, 512, [], "f07c", "M527.943 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h400a48.001 48.001 0 0 0 40.704-22.56l79.942-128c19.948-31.917-3.038-73.44-40.703-73.44zM54 112h134.118l64 64H426a6 6 0 0 1 6 6v42H152a48 48 0 0 0-41.098 23.202L48 351.449V117.993A5.993 5.993 0 0 1 54 112zm394 288H72l77.234-128H528l-80 128z"],
    +  "font-awesome-logo-full": [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],
    +  "frown": [496, 512, [], "f119", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"],
    +  "frown-open": [496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z"],
    +  "futbol": [496, 512, [], "f1e3", "M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z"],
    +  "gem": [576, 512, [], "f3a5", "M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z"],
    +  "grimace": [496, 512, [], "f57f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z"],
    +  "grin": [496, 512, [], "f580", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"],
    +  "grin-alt": [496, 512, [], "f581", "M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z"],
    +  "grin-beam": [496, 512, [], "f582", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z"],
    +  "grin-beam-sweat": [496, 512, [], "f583", "M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],
    +  "grin-hearts": [496, 512, [], "f584", "M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z"],
    +  "grin-squint": [496, 512, [], "f585", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z"],
    +  "grin-squint-tears": [512, 512, [], "f586", "M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z"],
    +  "grin-stars": [496, 512, [], "f587", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z"],
    +  "grin-tears": [640, 512, [], "f588", "M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],
    +  "grin-tongue": [496, 512, [], "f589", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
    +  "grin-tongue-squint": [496, 512, [], "f58a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z"],
    +  "grin-tongue-wink": [496, 512, [], "f58b", "M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z"],
    +  "grin-wink": [496, 512, [], "f58c", "M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],
    +  "hand-lizard": [576, 512, [], "f258", "M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z"],
    +  "hand-paper": [448, 512, [], "f256", "M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z"],
    +  "hand-peace": [448, 512, [], "f25b", "M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z"],
    +  "hand-point-down": [448, 512, [], "f0a7", "M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z"],
    +  "hand-point-left": [512, 512, [], "f0a5", "M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],
    +  "hand-point-right": [512, 512, [], "f0a4", "M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],
    +  "hand-point-up": [448, 512, [], "f0a6", "M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],
    +  "hand-pointer": [448, 512, [], "f25a", "M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"],
    +  "hand-rock": [512, 512, [], "f255", "M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"],
    +  "hand-scissors": [512, 512, [], "f257", "M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z"],
    +  "hand-spock": [512, 512, [], "f259", "M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z"],
    +  "handshake": [640, 512, [], "f2b5", "M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"],
    +  "hdd": [576, 512, [], "f0a0", "M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z"],
    +  "heart": [512, 512, [], "f004", "M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"],
    +  "hospital": [448, 512, [], "f0f8", "M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z"],
    +  "hourglass": [384, 512, [], "f254", "M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z"],
    +  "id-badge": [384, 512, [], "f2c1", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],
    +  "id-card": [576, 512, [], "f2c2", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"],
    +  "image": [512, 512, [], "f03e", "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"],
    +  "images": [576, 512, [], "f302", "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z"],
    +  "keyboard": [576, 512, [], "f11c", "M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z"],
    +  "kiss": [496, 512, [], "f596", "M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
    +  "kiss-beam": [496, 512, [], "f597", "M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z"],
    +  "kiss-wink-heart": [504, 512, [], "f598", "M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z"],
    +  "laugh": [496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
    +  "laugh-beam": [496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
    +  "laugh-squint": [496, 512, [], "f59b", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
    +  "laugh-wink": [496, 512, [], "f59c", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
    +  "lemon": [512, 512, [], "f094", "M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z"],
    +  "life-ring": [512, 512, [], "f1cd", "M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z"],
    +  "lightbulb": [352, 512, [], "f0eb", "M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"],
    +  "list-alt": [512, 512, [], "f022", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z"],
    +  "map": [576, 512, [], "f279", "M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z"],
    +  "meh": [496, 512, [], "f11a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
    +  "meh-blank": [496, 512, [], "f5a4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
    +  "meh-rolling-eyes": [496, 512, [], "f5a5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
    +  "minus-square": [448, 512, [], "f146", "M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "money-bill-alt": [640, 512, [], "f3d1", "M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z"],
    +  "moon": [512, 512, [], "f186", "M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z"],
    +  "newspaper": [576, 512, [], "f1ea", "M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z"],
    +  "object-group": [512, 512, [], "f247", "M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z"],
    +  "object-ungroup": [576, 512, [], "f248", "M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z"],
    +  "paper-plane": [512, 512, [], "f1d8", "M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"],
    +  "pause-circle": [512, 512, [], "f28b", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z"],
    +  "play-circle": [512, 512, [], "f144", "M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z"],
    +  "plus-square": [448, 512, [], "f0fe", "M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
    +  "question-circle": [512, 512, [], "f059", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"],
    +  "registered": [512, 512, [], "f25d", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z"],
    +  "sad-cry": [496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z"],
    +  "sad-tear": [496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z"],
    +  "save": [448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"],
    +  "share-square": [576, 512, [], "f14d", "M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z"],
    +  "smile": [496, 512, [], "f118", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"],
    +  "smile-beam": [496, 512, [], "f5b8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z"],
    +  "smile-wink": [496, 512, [], "f4da", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z"],
    +  "snowflake": [448, 512, [], "f2dc", "M438.237 355.927l-66.574-38.54 59.448-10.327c5.846-1.375 10.609-5.183 13.458-10.13 2.48-4.307 3.506-9.478 2.524-14.651-2.11-11.115-12.686-18.039-23.621-15.467l-85.423 31.115L255.914 256l82.136-41.926 85.423 31.115c10.936 2.572 21.512-4.352 23.621-15.467 2.111-11.115-5.046-22.209-15.981-24.781l-59.448-10.327 66.573-38.54c9.54-5.523 12.615-18.092 6.867-28.074-5.748-9.982-18.14-13.596-27.68-8.074l-66.574 38.54 20.805-56.787c3.246-10.782-2.758-22.542-13.413-26.268-10.654-3.725-21.922 1.997-25.168 12.779l-15.838 89.735-72.423 41.926V136l69.585-58.621c7.689-8.21 6.997-20.856-1.548-28.245-8.545-7.391-21.705-6.723-29.394 1.486l-38.644 46.46V20c0-11.046-9.318-20-20.813-20s-20.813 8.954-20.813 20v77.08l-38.644-46.46c-7.689-8.21-20.849-8.876-29.394-1.486-8.544 7.389-9.236 20.035-1.547 28.245L203.187 136v83.853l-72.423-41.926-15.838-89.736c-3.247-10.782-14.515-16.504-25.169-12.779-10.656 3.725-16.659 15.486-13.413 26.268l20.805 56.787-66.573-38.54c-9.54-5.523-21.933-1.908-27.68 8.074s-2.673 22.551 6.867 28.074l66.574 38.54-59.449 10.328C5.953 207.515-1.202 218.609.907 229.724c2.11 11.114 12.686 18.038 23.622 15.466l85.422-31.115L192.086 256l-82.136 41.926-85.423-31.115c-10.936-2.572-21.511 4.352-23.622 15.466-2.109 11.113 5.046 22.209 15.981 24.781l59.449 10.328-66.574 38.54C.223 361.449-2.852 374.018 2.896 384s18.14 13.597 27.68 8.074l66.574-38.54-20.805 56.786c-1.735 5.764-.828 11.805 2.02 16.751 2.48 4.307 6.433 7.784 11.392 9.517 10.655 3.725 21.923-1.997 25.169-12.779l15.838-89.736 72.423-41.926V376l-69.585 58.621c-7.69 8.21-6.997 20.855 1.547 28.245 8.544 7.388 21.705 6.723 29.394-1.487l38.644-46.46V492c0 11.046 9.318 20 20.813 20s20.813-8.954 20.813-20v-77.081l38.644 46.46c4.111 4.389 9.782 6.621 15.478 6.621 4.96 0 9.939-1.694 13.916-5.134 8.545-7.39 9.237-20.035 1.548-28.245L244.813 376v-83.853l72.423 41.926 15.838 89.736c3.246 10.782 14.514 16.504 25.168 12.779 10.653-3.726 16.659-15.487 13.412-26.268l-20.805-56.787 66.574 38.54c9.54 5.523 21.933 1.908 27.68-8.074 5.749-9.981 2.675-22.55-6.866-28.072z"],
    +  "square": [448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"],
    +  "star": [576, 512, [], "f005", "M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"],
    +  "star-half": [576, 512, [], "f089", "M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z"],
    +  "sticky-note": [448, 512, [], "f249", "M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z"],
    +  "stop-circle": [512, 512, [], "f28d", "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z"],
    +  "sun": [512, 512, [], "f185", "M220.116 487.936l-20.213-49.425a3.992 3.992 0 0 0-5.808-1.886l-45.404 28.104c-29.466 18.24-66.295-8.519-58.054-42.179l12.699-51.865a3.993 3.993 0 0 0-3.59-4.941l-53.251-3.951c-34.554-2.562-48.632-45.855-22.174-68.247L65.08 259.05a3.992 3.992 0 0 0 0-6.106l-40.76-34.497c-26.45-22.384-12.39-65.682 22.174-68.246l53.251-3.951a3.993 3.993 0 0 0 3.59-4.941L90.637 89.443c-8.239-33.656 28.581-60.42 58.054-42.179l45.403 28.104a3.993 3.993 0 0 0 5.808-1.887l20.213-49.425c13.116-32.071 58.638-32.081 71.758 0l20.212 49.424a3.994 3.994 0 0 0 5.809 1.887l45.403-28.104c29.464-18.236 66.297 8.513 58.054 42.179l-12.699 51.865a3.995 3.995 0 0 0 3.59 4.941l53.251 3.951c34.553 2.563 48.633 45.854 22.175 68.246l-40.76 34.497a3.993 3.993 0 0 0 0 6.107l40.76 34.496c26.511 22.441 12.322 65.689-22.175 68.247l-53.251 3.951a3.993 3.993 0 0 0-3.589 4.942l12.698 51.864c8.241 33.658-28.583 60.421-58.054 42.18l-45.403-28.104a3.994 3.994 0 0 0-5.809 1.887l-20.212 49.424c-13.159 32.178-58.675 31.993-71.757 0zm16.814-64.568l19.064 46.616 19.064-46.615c10.308-25.2 40.778-35.066 63.892-20.759l42.822 26.507-11.976-48.919c-6.475-26.444 12.38-52.339 39.487-54.349l50.226-3.726-38.444-32.536c-20.782-17.591-20.747-49.621.001-67.18l38.442-32.536-50.225-3.727c-27.151-2.015-45.95-27.948-39.488-54.349l11.978-48.919-42.823 26.507c-23.151 14.327-53.603 4.4-63.892-20.76l-19.064-46.615-19.064 46.617c-10.305 25.198-40.778 35.066-63.891 20.76l-42.823-26.508 11.977 48.918c6.474 26.446-12.381 52.338-39.488 54.35l-50.224 3.726 38.443 32.537c20.782 17.588 20.747 49.619 0 67.178L52.48 322.123l50.226 3.726c27.151 2.014 45.95 27.947 39.487 54.349l-11.977 48.919 42.823-26.507c23.188-14.355 53.622-4.352 63.891 20.758zM256 384c-70.58 0-128-57.421-128-128 0-70.58 57.42-128 128-128 70.579 0 128 57.42 128 128 0 70.579-57.421 128-128 128zm0-208c-44.112 0-80 35.888-80 80s35.888 80 80 80 80-35.888 80-80-35.888-80-80-80z"],
    +  "surprise": [496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
    +  "thumbs-down": [512, 512, [], "f165", "M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z"],
    +  "thumbs-up": [512, 512, [], "f164", "M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],
    +  "times-circle": [512, 512, [], "f057", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"],
    +  "tired": [496, 512, [], "f5c8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z"],
    +  "trash-alt": [448, 512, [], "f2ed", "M192 188v216c0 6.627-5.373 12-12 12h-24c-6.627 0-12-5.373-12-12V188c0-6.627 5.373-12 12-12h24c6.627 0 12 5.373 12 12zm100-12h-24c-6.627 0-12 5.373-12 12v216c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12V188c0-6.627-5.373-12-12-12zm132-96c13.255 0 24 10.745 24 24v12c0 6.627-5.373 12-12 12h-20v336c0 26.51-21.49 48-48 48H80c-26.51 0-48-21.49-48-48V128H12c-6.627 0-12-5.373-12-12v-12c0-13.255 10.745-24 24-24h74.411l34.018-56.696A48 48 0 0 1 173.589 0h100.823a48 48 0 0 1 41.16 23.304L349.589 80H424zm-269.611 0h139.223L276.16 50.913A6 6 0 0 0 271.015 48h-94.028a6 6 0 0 0-5.145 2.913L154.389 80zM368 128H80v330a6 6 0 0 0 6 6h276a6 6 0 0 0 6-6V128z"],
    +  "user": [448, 512, [], "f007", "M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z"],
    +  "user-circle": [496, 512, [], "f2bd", "M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z"],
    +  "window-close": [512, 512, [], "f410", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z"],
    +  "window-maximize": [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"],
    +  "window-minimize": [512, 512, [], "f2d1", "M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"],
    +  "window-restore": [512, 512, [], "f2d2", "M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z"]
    +};
    +
    +bunker(function () {
    +  define('far', icons);
    +});
    +
    +}());
    diff --git a/htdocs/theme/common/fontawesome-5/js/regular.min.js b/htdocs/theme/common/fontawesome-5/js/regular.min.js
    new file mode 100644
    index 00000000000..95bb5c3df74
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/regular.min.js
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +!function(){"use strict";var c={};try{"undefined"!=typeof window&&(c=window)}catch(c){}var z=(c.navigator||{}).userAgent,h=void 0===z?"":z,l=c,v=(~h.indexOf("MSIE")||h.indexOf("Trident/"),"___FONT_AWESOME___"),m=function(){try{return!0}catch(c){return!1}}(),s=[1,2,3,4,5,6,7,8,9,10],a=s.concat([11,12,13,14,15,16,17,18,19,20]);["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter"].concat(s.map(function(c){return c+"x"})).concat(a.map(function(c){return"w-"+c}));var M=l||{};M[v]||(M[v]={}),M[v].styles||(M[v].styles={}),M[v].hooks||(M[v].hooks={}),M[v].shims||(M[v].shims=[]);var V=M[v],H=Object.assign||function(c){for(var z=1;z<arguments.length;z++){var h=arguments[z];for(var l in h)Object.prototype.hasOwnProperty.call(h,l)&&(c[l]=h[l])}return c};var C={"address-book":[448,512,[],"f2b9","M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],"address-card":[576,512,[],"f2bb","M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z"],angry:[496,512,[],"f556","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z"],"arrow-alt-circle-down":[512,512,[],"f358","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z"],"arrow-alt-circle-left":[512,512,[],"f359","M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z"],"arrow-alt-circle-right":[512,512,[],"f35a","M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z"],"arrow-alt-circle-up":[512,512,[],"f35b","M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z"],bell:[448,512,[],"f0f3","M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z"],"bell-slash":[640,512,[],"f1f6","M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"],bookmark:[384,512,[],"f02e","M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"],building:[448,512,[],"f1ad","M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z"],calendar:[448,512,[],"f133","M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z"],"calendar-alt":[448,512,[],"f073","M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"calendar-check":[448,512,[],"f274","M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z"],"calendar-minus":[448,512,[],"f272","M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"calendar-plus":[448,512,[],"f271","M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"calendar-times":[448,512,[],"f273","M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"caret-square-down":[448,512,[],"f150","M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"caret-square-left":[448,512,[],"f191","M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"caret-square-right":[448,512,[],"f152","M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"caret-square-up":[448,512,[],"f151","M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"chart-bar":[512,512,[],"f080","M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z"],"check-circle":[512,512,[],"f058","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"],"check-square":[448,512,[],"f14a","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"],circle:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"],clipboard:[384,512,[],"f328","M336 64h-80c0-35.29-28.71-64-64-64s-64 28.71-64 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h42v36c0 6.627 5.373 12 12 12h168c6.627 0 12-5.373 12-12v-36h42a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zM192 40c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24"],clock:[512,512,[],"f017","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"],clone:[512,512,[],"f24d","M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"],"closed-captioning":[512,512,[],"f20a","M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z"],comment:[512,512,[],"f075","M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],"comment-alt":[512,512,[],"f27a","M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z"],"comment-dots":[512,512,[],"f4ad","M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],comments:[576,512,[],"f086","M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z"],compass:[496,512,[],"f14e","M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],copy:[448,512,[],"f0c5","M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"],copyright:[512,512,[],"f1f9","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z"],"credit-card":[576,512,[],"f09d","M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z"],dizzy:[496,512,[],"f567","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z"],"dot-circle":[512,512,[],"f192","M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"],edit:[576,512,[],"f044","M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"],envelope:[512,512,[],"f0e0","M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"],"envelope-open":[512,512,[],"f2b6","M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z"],eye:[576,512,[],"f06e","M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"],"eye-slash":[576,512,[],"f070","M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"],file:[384,512,[],"f15b","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"],"file-alt":[384,512,[],"f15c","M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"],"file-archive":[384,512,[],"f1c6","M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 51.882L332.118 128H256V51.882zM336 464H48V48h79.714v16h32V48H208v104c0 13.255 10.745 24 24 24h104v288zM192.27 96h-32V64h32v32zm-32 0v32h-32V96h32zm0 64v32h-32v-32h32zm32 0h-32v-32h32v32zm1.909 105.678A12 12 0 0 0 182.406 256H160.27v-32h-32v32l-19.69 97.106C101.989 385.611 126.834 416 160 416c33.052 0 57.871-30.192 51.476-62.62l-17.297-87.702zM160.27 390.073c-17.918 0-32.444-12.105-32.444-27.036 0-14.932 14.525-27.036 32.444-27.036s32.444 12.105 32.444 27.036c0 14.931-14.526 27.036-32.444 27.036zm32-166.073h-32v-32h32v32z"],"file-audio":[384,512,[],"f1c7","M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z"],"file-code":[384,512,[],"f1c9","M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm101.677-115.115L116.854 320l32.822-28.885a8.793 8.793 0 0 0 .605-12.624l-17.403-18.564c-3.384-3.613-8.964-3.662-12.438-.401L62.78 313.58c-3.703 3.474-3.704 9.367.001 12.84l57.659 54.055a8.738 8.738 0 0 0 6.012 2.381 8.746 8.746 0 0 0 6.427-2.782l17.403-18.563a8.795 8.795 0 0 0-.605-12.626zm84.284-127.85l-24.401-7.084a8.796 8.796 0 0 0-10.905 5.998L144.04 408.061c-1.353 4.66 1.338 9.552 5.998 10.905l24.403 7.084c4.68 1.355 9.557-1.354 10.905-5.998l54.612-188.112c1.354-4.66-1.337-9.552-5.997-10.905zm87.258 92.545l-57.658-54.055c-3.526-3.307-9.099-3.165-12.439.401l-17.403 18.563a8.795 8.795 0 0 0 .605 12.625L267.146 320l-32.822 28.885a8.793 8.793 0 0 0-.605 12.624l17.403 18.564a8.797 8.797 0 0 0 12.439.401h-.001l57.66-54.055c3.703-3.473 3.703-9.366-.001-12.839z"],"file-excel":[384,512,[],"f1c3","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z"],"file-image":[384,512,[],"f1c5","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"],"file-pdf":[384,512,[],"f1c1","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z"],"file-powerpoint":[384,512,[],"f1c4","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z"],"file-video":[384,512,[],"f1c8","M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z"],"file-word":[384,512,[],"f1c2","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z"],flag:[512,512,[],"f024","M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z"],flushed:[496,512,[],"f579","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],folder:[512,512,[],"f07b","M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z"],"folder-open":[576,512,[],"f07c","M527.943 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h400a48.001 48.001 0 0 0 40.704-22.56l79.942-128c19.948-31.917-3.038-73.44-40.703-73.44zM54 112h134.118l64 64H426a6 6 0 0 1 6 6v42H152a48 48 0 0 0-41.098 23.202L48 351.449V117.993A5.993 5.993 0 0 1 54 112zm394 288H72l77.234-128H528l-80 128z"],"font-awesome-logo-full":[3992,512,["Font Awesome"],"f4e6","M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],frown:[496,512,[],"f119","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"],"frown-open":[496,512,[],"f57a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z"],futbol:[496,512,[],"f1e3","M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z"],gem:[576,512,[],"f3a5","M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z"],grimace:[496,512,[],"f57f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z"],grin:[496,512,[],"f580","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"],"grin-alt":[496,512,[],"f581","M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z"],"grin-beam":[496,512,[],"f582","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z"],"grin-beam-sweat":[496,512,[],"f583","M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],"grin-hearts":[496,512,[],"f584","M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z"],"grin-squint":[496,512,[],"f585","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z"],"grin-squint-tears":[512,512,[],"f586","M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z"],"grin-stars":[496,512,[],"f587","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z"],"grin-tears":[640,512,[],"f588","M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],"grin-tongue":[496,512,[],"f589","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],"grin-tongue-squint":[496,512,[],"f58a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z"],"grin-tongue-wink":[496,512,[],"f58b","M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z"],"grin-wink":[496,512,[],"f58c","M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],"hand-lizard":[576,512,[],"f258","M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z"],"hand-paper":[448,512,[],"f256","M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z"],"hand-peace":[448,512,[],"f25b","M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z"],"hand-point-down":[448,512,[],"f0a7","M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z"],"hand-point-left":[512,512,[],"f0a5","M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],"hand-point-right":[512,512,[],"f0a4","M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],"hand-point-up":[448,512,[],"f0a6","M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],"hand-pointer":[448,512,[],"f25a","M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"],"hand-rock":[512,512,[],"f255","M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"],"hand-scissors":[512,512,[],"f257","M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z"],"hand-spock":[512,512,[],"f259","M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z"],handshake:[640,512,[],"f2b5","M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"],hdd:[576,512,[],"f0a0","M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z"],heart:[512,512,[],"f004","M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"],hospital:[448,512,[],"f0f8","M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z"],hourglass:[384,512,[],"f254","M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z"],"id-badge":[384,512,[],"f2c1","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],"id-card":[576,512,[],"f2c2","M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"],image:[512,512,[],"f03e","M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"],images:[576,512,[],"f302","M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z"],keyboard:[576,512,[],"f11c","M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z"],kiss:[496,512,[],"f596","M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],"kiss-beam":[496,512,[],"f597","M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z"],"kiss-wink-heart":[504,512,[],"f598","M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z"],laugh:[496,512,[],"f599","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],"laugh-beam":[496,512,[],"f59a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],"laugh-squint":[496,512,[],"f59b","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],"laugh-wink":[496,512,[],"f59c","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],lemon:[512,512,[],"f094","M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z"],"life-ring":[512,512,[],"f1cd","M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z"],lightbulb:[352,512,[],"f0eb","M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"],"list-alt":[512,512,[],"f022","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z"],map:[576,512,[],"f279","M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z"],meh:[496,512,[],"f11a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],"meh-blank":[496,512,[],"f5a4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],"meh-rolling-eyes":[496,512,[],"f5a5","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],"minus-square":[448,512,[],"f146","M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"money-bill-alt":[640,512,[],"f3d1","M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z"],moon:[512,512,[],"f186","M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z"],newspaper:[576,512,[],"f1ea","M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z"],"object-group":[512,512,[],"f247","M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z"],"object-ungroup":[576,512,[],"f248","M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z"],"paper-plane":[512,512,[],"f1d8","M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"],"pause-circle":[512,512,[],"f28b","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z"],"play-circle":[512,512,[],"f144","M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z"],"plus-square":[448,512,[],"f0fe","M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],"question-circle":[512,512,[],"f059","M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"],registered:[512,512,[],"f25d","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z"],"sad-cry":[496,512,[],"f5b3","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z"],"sad-tear":[496,512,[],"f5b4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z"],save:[448,512,[],"f0c7","M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"],"share-square":[576,512,[],"f14d","M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z"],smile:[496,512,[],"f118","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"],"smile-beam":[496,512,[],"f5b8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z"],"smile-wink":[496,512,[],"f4da","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z"],snowflake:[448,512,[],"f2dc","M438.237 355.927l-66.574-38.54 59.448-10.327c5.846-1.375 10.609-5.183 13.458-10.13 2.48-4.307 3.506-9.478 2.524-14.651-2.11-11.115-12.686-18.039-23.621-15.467l-85.423 31.115L255.914 256l82.136-41.926 85.423 31.115c10.936 2.572 21.512-4.352 23.621-15.467 2.111-11.115-5.046-22.209-15.981-24.781l-59.448-10.327 66.573-38.54c9.54-5.523 12.615-18.092 6.867-28.074-5.748-9.982-18.14-13.596-27.68-8.074l-66.574 38.54 20.805-56.787c3.246-10.782-2.758-22.542-13.413-26.268-10.654-3.725-21.922 1.997-25.168 12.779l-15.838 89.735-72.423 41.926V136l69.585-58.621c7.689-8.21 6.997-20.856-1.548-28.245-8.545-7.391-21.705-6.723-29.394 1.486l-38.644 46.46V20c0-11.046-9.318-20-20.813-20s-20.813 8.954-20.813 20v77.08l-38.644-46.46c-7.689-8.21-20.849-8.876-29.394-1.486-8.544 7.389-9.236 20.035-1.547 28.245L203.187 136v83.853l-72.423-41.926-15.838-89.736c-3.247-10.782-14.515-16.504-25.169-12.779-10.656 3.725-16.659 15.486-13.413 26.268l20.805 56.787-66.573-38.54c-9.54-5.523-21.933-1.908-27.68 8.074s-2.673 22.551 6.867 28.074l66.574 38.54-59.449 10.328C5.953 207.515-1.202 218.609.907 229.724c2.11 11.114 12.686 18.038 23.622 15.466l85.422-31.115L192.086 256l-82.136 41.926-85.423-31.115c-10.936-2.572-21.511 4.352-23.622 15.466-2.109 11.113 5.046 22.209 15.981 24.781l59.449 10.328-66.574 38.54C.223 361.449-2.852 374.018 2.896 384s18.14 13.597 27.68 8.074l66.574-38.54-20.805 56.786c-1.735 5.764-.828 11.805 2.02 16.751 2.48 4.307 6.433 7.784 11.392 9.517 10.655 3.725 21.923-1.997 25.169-12.779l15.838-89.736 72.423-41.926V376l-69.585 58.621c-7.69 8.21-6.997 20.855 1.547 28.245 8.544 7.388 21.705 6.723 29.394-1.487l38.644-46.46V492c0 11.046 9.318 20 20.813 20s20.813-8.954 20.813-20v-77.081l38.644 46.46c4.111 4.389 9.782 6.621 15.478 6.621 4.96 0 9.939-1.694 13.916-5.134 8.545-7.39 9.237-20.035 1.548-28.245L244.813 376v-83.853l72.423 41.926 15.838 89.736c3.246 10.782 14.514 16.504 25.168 12.779 10.653-3.726 16.659-15.487 13.412-26.268l-20.805-56.787 66.574 38.54c9.54 5.523 21.933 1.908 27.68-8.074 5.749-9.981 2.675-22.55-6.866-28.072z"],square:[448,512,[],"f0c8","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"],star:[576,512,[],"f005","M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"],"star-half":[576,512,[],"f089","M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z"],"sticky-note":[448,512,[],"f249","M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z"],"stop-circle":[512,512,[],"f28d","M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z"],sun:[512,512,[],"f185","M220.116 487.936l-20.213-49.425a3.992 3.992 0 0 0-5.808-1.886l-45.404 28.104c-29.466 18.24-66.295-8.519-58.054-42.179l12.699-51.865a3.993 3.993 0 0 0-3.59-4.941l-53.251-3.951c-34.554-2.562-48.632-45.855-22.174-68.247L65.08 259.05a3.992 3.992 0 0 0 0-6.106l-40.76-34.497c-26.45-22.384-12.39-65.682 22.174-68.246l53.251-3.951a3.993 3.993 0 0 0 3.59-4.941L90.637 89.443c-8.239-33.656 28.581-60.42 58.054-42.179l45.403 28.104a3.993 3.993 0 0 0 5.808-1.887l20.213-49.425c13.116-32.071 58.638-32.081 71.758 0l20.212 49.424a3.994 3.994 0 0 0 5.809 1.887l45.403-28.104c29.464-18.236 66.297 8.513 58.054 42.179l-12.699 51.865a3.995 3.995 0 0 0 3.59 4.941l53.251 3.951c34.553 2.563 48.633 45.854 22.175 68.246l-40.76 34.497a3.993 3.993 0 0 0 0 6.107l40.76 34.496c26.511 22.441 12.322 65.689-22.175 68.247l-53.251 3.951a3.993 3.993 0 0 0-3.589 4.942l12.698 51.864c8.241 33.658-28.583 60.421-58.054 42.18l-45.403-28.104a3.994 3.994 0 0 0-5.809 1.887l-20.212 49.424c-13.159 32.178-58.675 31.993-71.757 0zm16.814-64.568l19.064 46.616 19.064-46.615c10.308-25.2 40.778-35.066 63.892-20.759l42.822 26.507-11.976-48.919c-6.475-26.444 12.38-52.339 39.487-54.349l50.226-3.726-38.444-32.536c-20.782-17.591-20.747-49.621.001-67.18l38.442-32.536-50.225-3.727c-27.151-2.015-45.95-27.948-39.488-54.349l11.978-48.919-42.823 26.507c-23.151 14.327-53.603 4.4-63.892-20.76l-19.064-46.615-19.064 46.617c-10.305 25.198-40.778 35.066-63.891 20.76l-42.823-26.508 11.977 48.918c6.474 26.446-12.381 52.338-39.488 54.35l-50.224 3.726 38.443 32.537c20.782 17.588 20.747 49.619 0 67.178L52.48 322.123l50.226 3.726c27.151 2.014 45.95 27.947 39.487 54.349l-11.977 48.919 42.823-26.507c23.188-14.355 53.622-4.352 63.891 20.758zM256 384c-70.58 0-128-57.421-128-128 0-70.58 57.42-128 128-128 70.579 0 128 57.42 128 128 0 70.579-57.421 128-128 128zm0-208c-44.112 0-80 35.888-80 80s35.888 80 80 80 80-35.888 80-80-35.888-80-80-80z"],surprise:[496,512,[],"f5c2","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],"thumbs-down":[512,512,[],"f165","M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z"],"thumbs-up":[512,512,[],"f164","M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],"times-circle":[512,512,[],"f057","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"],tired:[496,512,[],"f5c8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z"],"trash-alt":[448,512,[],"f2ed","M192 188v216c0 6.627-5.373 12-12 12h-24c-6.627 0-12-5.373-12-12V188c0-6.627 5.373-12 12-12h24c6.627 0 12 5.373 12 12zm100-12h-24c-6.627 0-12 5.373-12 12v216c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12V188c0-6.627-5.373-12-12-12zm132-96c13.255 0 24 10.745 24 24v12c0 6.627-5.373 12-12 12h-20v336c0 26.51-21.49 48-48 48H80c-26.51 0-48-21.49-48-48V128H12c-6.627 0-12-5.373-12-12v-12c0-13.255 10.745-24 24-24h74.411l34.018-56.696A48 48 0 0 1 173.589 0h100.823a48 48 0 0 1 41.16 23.304L349.589 80H424zm-269.611 0h139.223L276.16 50.913A6 6 0 0 0 271.015 48h-94.028a6 6 0 0 0-5.145 2.913L154.389 80zM368 128H80v330a6 6 0 0 0 6 6h276a6 6 0 0 0 6-6V128z"],user:[448,512,[],"f007","M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z"],"user-circle":[496,512,[],"f2bd","M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z"],"window-close":[512,512,[],"f410","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z"],"window-maximize":[512,512,[],"f2d0","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"],"window-minimize":[512,512,[],"f2d1","M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"],"window-restore":[512,512,[],"f2d2","M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z"]};!function(c){try{c()}catch(c){if(!m)throw c}}(function(){!function c(z,l){var h=Object.keys(l).reduce(function(c,z){var h=l[z];return h.icon?c[h.iconName]=h.icon:c[z]=h,c},{});"function"==typeof V.hooks.addPack?V.hooks.addPack(z,h):V.styles[z]=H({},V.styles[z]||{},h),"fas"===z&&c("fa",l)}("far",C)})}();
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/js/solid.js b/htdocs/theme/common/fontawesome-5/js/solid.js
    new file mode 100644
    index 00000000000..d2585a0af6e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/solid.js
    @@ -0,0 +1,976 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +(function () {
    +'use strict';
    +
    +var _WINDOW = {};
    +try {
    +  if (typeof window !== 'undefined') _WINDOW = window;
    +  
    +} catch (e) {}
    +
    +var _ref = _WINDOW.navigator || {};
    +var _ref$userAgent = _ref.userAgent;
    +var userAgent = _ref$userAgent === undefined ? '' : _ref$userAgent;
    +
    +var WINDOW = _WINDOW;
    +
    +
    +
    +
    +
    +var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
    +
    +var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +var PRODUCTION = function () {
    +  try {
    +    return "production" === 'production';
    +  } catch (e) {
    +    return false;
    +  }
    +}();
    +
    +var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    +var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
    +
    +
    +
    +var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter'].concat(oneToTen.map(function (n) {
    +  return n + 'x';
    +})).concat(oneToTwenty.map(function (n) {
    +  return 'w-' + n;
    +}));
    +
    +function bunker(fn) {
    +  try {
    +    fn();
    +  } catch (e) {
    +    if (!PRODUCTION) {
    +      throw e;
    +    }
    +  }
    +}
    +
    +var w = WINDOW || {};
    +
    +if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
    +if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
    +if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
    +if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
    +
    +var namespace = w[NAMESPACE_IDENTIFIER];
    +
    +var _extends = Object.assign || function (target) {
    +  for (var i = 1; i < arguments.length; i++) {
    +    var source = arguments[i];
    +
    +    for (var key in source) {
    +      if (Object.prototype.hasOwnProperty.call(source, key)) {
    +        target[key] = source[key];
    +      }
    +    }
    +  }
    +
    +  return target;
    +};
    +
    +function define(prefix, icons) {
    +  var normalized = Object.keys(icons).reduce(function (acc, iconName) {
    +    var icon = icons[iconName];
    +    var expanded = !!icon.icon;
    +
    +    if (expanded) {
    +      acc[icon.iconName] = icon.icon;
    +    } else {
    +      acc[iconName] = icon;
    +    }
    +    return acc;
    +  }, {});
    +
    +  if (typeof namespace.hooks.addPack === 'function') {
    +    namespace.hooks.addPack(prefix, normalized);
    +  } else {
    +    namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, normalized);
    +  }
    +
    +  /**
    +   * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
    +   * of new styles we needed to differentiate between them. Prefix `fa` is now an alias
    +   * for `fas` so we'll easy the upgrade process for our users by automatically defining
    +   * this as well.
    +   */
    +  if (prefix === 'fas') {
    +    define('fa', icons);
    +  }
    +}
    +
    +var icons = {
    +  "ad": [512, 512, [], "f641", "M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"],
    +  "address-book": [448, 512, [], "f2b9", "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],
    +  "address-card": [576, 512, [], "f2bb", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"],
    +  "adjust": [512, 512, [], "f042", "M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"],
    +  "air-freshener": [384, 512, [], "f5d0", "M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z"],
    +  "align-center": [448, 512, [], "f037", "M352 44v40c0 8.837-7.163 16-16 16H112c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h224c8.837 0 16 7.163 16 16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm320-200H112c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"],
    +  "align-justify": [448, 512, [], "f039", "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm16 144h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0-128h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],
    +  "align-left": [448, 512, [], "f036", "M288 44v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16zM0 172v40c0 8.837 7.163 16 16 16h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16zm16 312h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm256-200H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"],
    +  "align-right": [448, 512, [], "f038", "M160 84V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H176c-8.837 0-16-7.163-16-16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],
    +  "allergies": [448, 512, [], "f461", "M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],
    +  "ambulance": [640, 512, [], "f0f9", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],
    +  "american-sign-language-interpreting": [640, 512, [], "f2a3", "M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"],
    +  "anchor": [576, 512, [], "f13d", "M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"],
    +  "angle-double-down": [320, 512, [], "f103", "M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"],
    +  "angle-double-left": [448, 512, [], "f100", "M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"],
    +  "angle-double-right": [448, 512, [], "f101", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"],
    +  "angle-double-up": [320, 512, [], "f102", "M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"],
    +  "angle-down": [320, 512, [], "f107", "M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"],
    +  "angle-left": [256, 512, [], "f104", "M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"],
    +  "angle-right": [256, 512, [], "f105", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"],
    +  "angle-up": [320, 512, [], "f106", "M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"],
    +  "angry": [496, 512, [], "f556", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"],
    +  "ankh": [320, 512, [], "f644", "M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"],
    +  "apple-alt": [448, 512, [], "f5d1", "M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"],
    +  "archive": [512, 512, [], "f187", "M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"],
    +  "archway": [576, 512, [], "f557", "M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"],
    +  "arrow-alt-circle-down": [512, 512, [], "f358", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"],
    +  "arrow-alt-circle-left": [512, 512, [], "f359", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"],
    +  "arrow-alt-circle-right": [512, 512, [], "f35a", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"],
    +  "arrow-alt-circle-up": [512, 512, [], "f35b", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"],
    +  "arrow-circle-down": [512, 512, [], "f0ab", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"],
    +  "arrow-circle-left": [512, 512, [], "f0a8", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"],
    +  "arrow-circle-right": [512, 512, [], "f0a9", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"],
    +  "arrow-circle-up": [512, 512, [], "f0aa", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"],
    +  "arrow-down": [448, 512, [], "f063", "M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"],
    +  "arrow-left": [448, 512, [], "f060", "M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"],
    +  "arrow-right": [448, 512, [], "f061", "M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"],
    +  "arrow-up": [448, 512, [], "f062", "M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"],
    +  "arrows-alt": [512, 512, [], "f0b2", "M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"],
    +  "arrows-alt-h": [512, 512, [], "f337", "M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"],
    +  "arrows-alt-v": [256, 512, [], "f338", "M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"],
    +  "assistive-listening-systems": [512, 512, [], "f2a2", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"],
    +  "asterisk": [512, 512, [], "f069", "M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"],
    +  "at": [512, 512, [], "f1fa", "M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"],
    +  "atlas": [448, 512, [], "f558", "M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"],
    +  "atom": [448, 512, [], "f5d2", "M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],
    +  "audio-description": [512, 512, [], "f29e", "M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"],
    +  "award": [384, 512, [], "f559", "M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"],
    +  "backspace": [640, 512, [], "f55a", "M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"],
    +  "backward": [512, 512, [], "f04a", "M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"],
    +  "balance-scale": [640, 512, [], "f24e", "M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "ban": [512, 512, [], "f05e", "M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"],
    +  "band-aid": [640, 512, [], "f462", "M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"],
    +  "barcode": [512, 512, [], "f02a", "M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"],
    +  "bars": [448, 512, [], "f0c9", "M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],
    +  "baseball-ball": [496, 512, [], "f433", "M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"],
    +  "basketball-ball": [496, 512, [], "f434", "M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"],
    +  "bath": [512, 512, [], "f2cd", "M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"],
    +  "battery-empty": [640, 512, [], "f244", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"],
    +  "battery-full": [640, 512, [], "f240", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"],
    +  "battery-half": [640, 512, [], "f242", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"],
    +  "battery-quarter": [640, 512, [], "f243", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"],
    +  "battery-three-quarters": [640, 512, [], "f241", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"],
    +  "bed": [640, 512, [], "f236", "M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"],
    +  "beer": [448, 512, [], "f0fc", "M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"],
    +  "bell": [448, 512, [], "f0f3", "M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"],
    +  "bell-slash": [640, 512, [], "f1f6", "M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"],
    +  "bezier-curve": [640, 512, [], "f55b", "M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],
    +  "bible": [448, 512, [], "f647", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],
    +  "bicycle": [640, 512, [], "f206", "M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"],
    +  "binoculars": [512, 512, [], "f1e5", "M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"],
    +  "birthday-cake": [448, 512, [], "f1fd", "M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"],
    +  "blender": [512, 512, [], "f517", "M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"],
    +  "blender-phone": [576, 512, [], "f6b6", "M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "blind": [384, 512, [], "f29d", "M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"],
    +  "bold": [384, 512, [], "f032", "M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z"],
    +  "bolt": [320, 512, [], "f0e7", "M295.973 160H180.572L215.19 30.184C219.25 14.956 207.756 0 192 0H56C43.971 0 33.8 8.905 32.211 20.828l-31.996 240C-1.704 275.217 9.504 288 24.004 288h118.701L96.646 482.466C93.05 497.649 104.659 512 119.992 512c8.35 0 16.376-4.374 20.778-11.978l175.973-303.997c9.244-15.967-2.288-36.025-20.77-36.025z"],
    +  "bomb": [512, 512, [], "f1e2", "M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"],
    +  "bone": [640, 512, [], "f5d7", "M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"],
    +  "bong": [448, 512, [], "f55c", "M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"],
    +  "book": [448, 512, [], "f02d", "M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"],
    +  "book-dead": [448, 512, [], "f6b7", "M272 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.18 0 80 28.65 80 64 0 20.87-12.68 39.23-32 50.91V184c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-13.09c-19.32-11.68-32-30.04-32-50.91 0-35.35 35.82-64 80-64zM129.05 233.85a7.996 7.996 0 0 1-4.2-10.5l6.29-14.7a7.995 7.995 0 0 1 10.51-4.2L240 246.6l98.35-42.15c4.06-1.74 8.77.14 10.51 4.2l6.29 14.7a7.996 7.996 0 0 1-4.2 10.5L280.6 264l70.34 30.15a7.996 7.996 0 0 1 4.2 10.5l-6.29 14.7a8.008 8.008 0 0 1-10.51 4.21L240 281.4l-98.35 42.15a8.003 8.003 0 0 1-10.51-4.21l-6.29-14.7a7.996 7.996 0 0 1 4.2-10.5L199.4 264l-70.35-30.15zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64zM208 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16z"],
    +  "book-open": [576, 512, [], "f518", "M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"],
    +  "book-reader": [512, 512, [], "f5da", "M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"],
    +  "bookmark": [384, 512, [], "f02e", "M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"],
    +  "bowling-ball": [496, 512, [], "f436", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "box": [512, 512, [], "f466", "M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"],
    +  "box-open": [640, 512, [], "f49e", "M53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9zm585.1 102.8L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9z"],
    +  "boxes": [576, 512, [], "f468", "M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"],
    +  "braille": [640, 512, [], "f2a1", "M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"],
    +  "brain": [576, 512, [], "f5dc", "M208 0c-29.87 0-54.74 20.55-61.8 48.22-.75-.02-1.45-.22-2.2-.22-35.34 0-64 28.65-64 64 0 4.84.64 9.51 1.66 14.04C52.54 138 32 166.57 32 200c0 12.58 3.16 24.32 8.34 34.91C16.34 248.72 0 274.33 0 304c0 33.34 20.42 61.88 49.42 73.89-.9 4.57-1.42 9.28-1.42 14.11 0 39.76 32.23 72 72 72 4.12 0 8.1-.55 12.03-1.21C141.61 491.31 168.25 512 200 512c39.77 0 72-32.24 72-72V205.45c-10.91 8.98-23.98 15.45-38.36 18.39-4.97 1.02-9.64-2.82-9.64-7.89v-16.18c0-3.57 2.35-6.78 5.8-7.66 24.2-6.16 42.2-27.95 42.2-54.04V64c0-35.35-28.66-64-64-64zm368 304c0-29.67-16.34-55.28-40.34-69.09 5.17-10.59 8.34-22.33 8.34-34.91 0-33.43-20.54-62-49.66-73.96 1.02-4.53 1.66-9.2 1.66-14.04 0-35.35-28.66-64-64-64-.75 0-1.45.2-2.2.22C422.74 20.55 397.87 0 368 0c-35.34 0-64 28.65-64 64v74.07c0 26.09 17.99 47.88 42.2 54.04 3.46.88 5.8 4.09 5.8 7.66v16.18c0 5.07-4.68 8.91-9.64 7.89-14.38-2.94-27.44-9.41-38.36-18.39V440c0 39.76 32.23 72 72 72 31.75 0 58.39-20.69 67.97-49.21 3.93.67 7.91 1.21 12.03 1.21 39.77 0 72-32.24 72-72 0-4.83-.52-9.54-1.42-14.11 29-12.01 49.42-40.55 49.42-73.89z"],
    +  "briefcase": [512, 512, [], "f0b1", "M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"],
    +  "briefcase-medical": [512, 512, [], "f469", "M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"],
    +  "broadcast-tower": [640, 512, [], "f519", "M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"],
    +  "broom": [640, 512, [], "f51a", "M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"],
    +  "brush": [384, 512, [], "f55d", "M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"],
    +  "bug": [512, 512, [], "f188", "M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"],
    +  "building": [448, 512, [], "f1ad", "M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"],
    +  "bullhorn": [576, 512, [], "f0a1", "M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"],
    +  "bullseye": [496, 512, [], "f140", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"],
    +  "burn": [384, 512, [], "f46a", "M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"],
    +  "bus": [512, 512, [], "f207", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "bus-alt": [512, 512, [], "f55e", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "business-time": [640, 512, [], "f64a", "M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"],
    +  "calculator": [448, 512, [], "f1ec", "M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"],
    +  "calendar": [448, 512, [], "f133", "M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"],
    +  "calendar-alt": [448, 512, [], "f073", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z"],
    +  "calendar-check": [448, 512, [], "f274", "M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"],
    +  "calendar-minus": [448, 512, [], "f272", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"],
    +  "calendar-plus": [448, 512, [], "f271", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"],
    +  "calendar-times": [448, 512, [], "f273", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"],
    +  "camera": [512, 512, [], "f030", "M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"],
    +  "camera-retro": [512, 512, [], "f083", "M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"],
    +  "campground": [640, 512, [], "f6bb", "M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"],
    +  "cannabis": [512, 512, [], "f55f", "M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"],
    +  "capsules": [576, 512, [], "f46b", "M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"],
    +  "car": [512, 512, [], "f1b9", "M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"],
    +  "car-alt": [480, 512, [], "f5de", "M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"],
    +  "car-battery": [512, 512, [], "f5df", "M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"],
    +  "car-crash": [640, 512, [], "f5e1", "M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"],
    +  "car-side": [640, 512, [], "f5e4", "M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"],
    +  "caret-down": [320, 512, [], "f0d7", "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"],
    +  "caret-left": [192, 512, [], "f0d9", "M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"],
    +  "caret-right": [192, 512, [], "f0da", "M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"],
    +  "caret-square-down": [448, 512, [], "f150", "M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"],
    +  "caret-square-left": [448, 512, [], "f191", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"],
    +  "caret-square-right": [448, 512, [], "f152", "M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"],
    +  "caret-square-up": [448, 512, [], "f151", "M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"],
    +  "caret-up": [320, 512, [], "f0d8", "M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"],
    +  "cart-arrow-down": [576, 512, [], "f218", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"],
    +  "cart-plus": [576, 512, [], "f217", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"],
    +  "cat": [512, 512, [], "f6be", "M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],
    +  "certificate": [512, 512, [], "f0a3", "M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"],
    +  "chair": [448, 512, [], "f6c0", "M446.33 341.88l-10.67-32A31.996 31.996 0 0 0 405.3 288H42.69c-13.77 0-26 8.81-30.36 21.88l-10.67 32C-5.24 362.6 10.18 384 32.03 384H32v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h256v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-.03c21.85 0 37.27-21.4 30.36-42.12zM112 128c0-29.48 16.2-54.99 40-68.87V256h48V48h48v208h48V59.13c23.8 13.88 40 39.39 40 68.87v128h48V128C384 57.31 326.69 0 256 0h-64C121.31 0 64 57.31 64 128v128h48V128z"],
    +  "chalkboard": [640, 512, [], "f51b", "M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "chalkboard-teacher": [640, 512, [], "f51c", "M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"],
    +  "charging-station": [576, 512, [], "f5e7", "M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"],
    +  "chart-area": [512, 512, [], "f1fe", "M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"],
    +  "chart-bar": [512, 512, [], "f080", "M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "chart-line": [512, 512, [], "f201", "M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"],
    +  "chart-pie": [544, 512, [], "f200", "M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"],
    +  "check": [512, 512, [], "f00c", "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"],
    +  "check-circle": [512, 512, [], "f058", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"],
    +  "check-double": [512, 512, [], "f560", "M504.5 171.95l-36.2-36.41c-10-10.05-26.21-10.05-36.2 0L192 377.02 79.9 264.28c-10-10.06-26.21-10.06-36.2 0L7.5 300.69c-10 10.05-10 26.36 0 36.41l166.4 167.36c10 10.06 26.21 10.06 36.2 0l294.4-296.09c10-10.06 10-26.36 0-36.42zM166.57 282.71c6.84 7.02 18.18 7.02 25.21.18L403.85 72.62c7.02-6.84 7.02-18.18.18-25.21L362.08 5.29c-6.84-7.02-18.18-7.02-25.21-.18L179.71 161.19l-68.23-68.77c-6.84-7.02-18.18-7.02-25.2-.18l-42.13 41.77c-7.02 6.84-7.02 18.18-.18 25.2l122.6 123.5z"],
    +  "check-square": [448, 512, [], "f14a", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"],
    +  "chess": [512, 512, [], "f439", "M199.821 217.633a6 6 0 0 1 6 6l-.001 20.766a6 6 0 0 1-6 6h-25.805c0 31.715-2.153 96.201 17.398 153.229H64.597C84.54 345.452 82.02 279.245 82.02 250.399H56.183a6 6 0 0 1-6-6l.002-20.766a6 6 0 0 1 6-6h143.636zM41.554 115.088l34.58 95.071h103.734l34.572-95.072c2.846-7.826-2.95-16.101-11.278-16.101H152v-30.22h21.57a6 6 0 0 0 6-6V40.383a6 6 0 0 0-6-6h-28.367V6a6 6 0 0 0-6-6H116.82a6 6 0 0 0-6 6v28.383H82.421a6 6 0 0 0-6 6v22.383a6 6 0 0 0 6 6H104v30.219H52.831c-8.328.001-14.124 8.276-11.277 16.103zM222.678 445.17v-28.067a6 6 0 0 0-6-6H39.322a6 6 0 0 0-6 6v28.067l-22.148 14.164a6 6 0 0 0-2.767 5.055V506a6 6 0 0 0 6 6h227.187a6 6 0 0 0 6-6v-41.612a6 6 0 0 0-2.767-5.055l-22.149-14.163zm90.578-144.225l24.88 16.963c.09 18.124-.167 63.904-11.905 114.522h147.526c-11.713-50.475-11.969-96.324-11.882-114.537l24.859-16.949a3.856 3.856 0 0 0 1.684-3.187v-69.901a3.857 3.857 0 0 0-3.857-3.857h-27.655a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.858-3.857h-52.918a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.857-3.857H315.43a3.857 3.857 0 0 0-3.857 3.857v69.901a3.855 3.855 0 0 0 1.683 3.188zm71.585 51.906c0-8.372 6.787-15.158 15.159-15.158s15.158 6.787 15.158 15.158v30.318h-30.317v-30.318zM504.62 470.059l-13.664-10.639v-15.552a3.857 3.857 0 0 0-3.857-3.857H312.915a3.857 3.857 0 0 0-3.857 3.857v15.552l-13.677 10.639a3.857 3.857 0 0 0-1.488 3.044v35.039a3.857 3.857 0 0 0 3.857 3.857h204.5a3.857 3.857 0 0 0 3.857-3.857v-35.04a3.859 3.859 0 0 0-1.487-3.043z"],
    +  "chess-bishop": [320, 512, [], "f43a", "M123.158 77.881C107.369 72.53 96 57.597 96 40c0-22.091 17.909-40 40-40h47.796c22.091 0 40 17.909 40 40 0 17.541-11.295 32.434-27.005 37.829 23.993 16.657 48.577 46.839 68.703 82.05L144.929 280.443a6 6 0 0 0 0 8.485l14.142 14.142a6 6 0 0 0 8.485 0L280.9 189.726c17.758 38.297 29.371 79.443 29.371 114.273 0 53.786-22.897 75.788-58.446 86.033V448H68.174v-57.97C32.631 379.784 9.739 357.781 9.739 304c0-78.029 58.281-187.766 113.419-226.119zM320 500v-24c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12z"],
    +  "chess-board": [512, 512, [], "f43c", "M256 256v64h-64v-64h64zm0-256h-64v64h64V0zm0 256h64v-64h-64v64zM384 0h-64v64h64V0zm0 512h64v-64h-64v64zm128-64v-64h-64v64h64zm-384 64h64v-64h-64v64zm0-512H64v64h64V0zm384 192v-64h-64v64h64zm0 128v-64h-64v64h64zM0 512h64v-64H0v64zM0 64v64h64V64H0zm0 128v64h64v-64H0zm0 128v64h64v-64H0zm256 192h64v-64h-64v64zm-64-128v64h64v-64h-64zm64-192v-64h-64v64h64zM64 384v64h64v-64H64zm64-128H64v64h64v-64zm256 128h64v-64h-64v64zM512 0h-64v64h64V0zM384 256h64v-64h-64v64zm0-192v64h64V64h-64zm-64 320v64h64v-64h-64zm-192-64v64h64v-64h-64zm128 0v64h64v-64h-64zm-64-128h-64v64h64v-64zm-64-64H64v64h64v-64zm192 192h64v-64h-64v64zM192 128V64h-64v64h64zm128 0V64h-64v64h64zm0 64h64v-64h-64v64z"],
    +  "chess-king": [448, 512, [], "f43f", "M416 476v24c0 6.627-5.373 12-12 12H44c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12zm-8.033-324H248v-48h50a6 6 0 0 0 6-6V62a6 6 0 0 0-6-6h-50V6a6 6 0 0 0-6-6h-36a6 6 0 0 0-6 6v50h-50a6 6 0 0 0-6 6v36a6 6 0 0 0 6 6h50v48H40.033c-27.574 0-46.879 27.244-37.738 53.259L87.582 448h272.836l85.287-242.741C454.846 179.244 435.541 152 407.967 152z"],
    +  "chess-knight": [384, 512, [], "f441", "M352 224v224H32v-46.557c0-30.302 17.12-58.003 44.223-71.554l57.243-28.622A48 48 0 0 0 160 258.334V208l-22.127 11.063a23.996 23.996 0 0 0-12.55 15.645l-11.835 47.338a12 12 0 0 1-7.185 8.231l-29.601 11.84a11.998 11.998 0 0 1-9.33-.176L7.126 275.167A12 12 0 0 1 0 264.201v-158.26c0-6.365 2.529-12.47 7.03-16.971L16 80 1.789 51.578A16.937 16.937 0 0 1 0 44c0-6.627 5.373-12 12-12h148c106.039 0 192 85.961 192 192zm20 240H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12zM52 128c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"],
    +  "chess-pawn": [320, 512, [], "f443", "M264 448H56s60-42.743 60-176H84c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h40.209C95.721 210.56 76 181.588 76 148c0-46.392 37.608-84 84-84s84 37.608 84 84c0 33.588-19.721 62.56-48.209 76H236c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12h-32c0 133.257 60 176 60 176zm28 16H28c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h264c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12z"],
    +  "chess-queen": [512, 512, [], "f445", "M436 512H76c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12zM255.579 0c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zm204.568 154.634c-5.768-3.045-12.916-.932-16.082 4.77-8.616 15.516-22.747 37.801-44.065 37.801-28.714 0-30.625-19.804-31.686-57.542-.183-6.492-5.501-11.664-11.995-11.664h-41.006c-5.175 0-9.754 3.328-11.388 8.238-8.89 26.709-26.073 40.992-47.925 40.992s-39.034-14.283-47.925-40.992c-1.634-4.91-6.213-8.238-11.388-8.238h-41.005c-6.495 0-11.813 5.174-11.995 11.667-1.052 37.642-2.934 57.539-31.688 57.539-20.691 0-33.817-20.224-44.425-38.025-3.266-5.48-10.258-7.431-15.899-4.453l-39.179 20.679a12 12 0 0 0-5.51 15.145L112 448h288l105.014-257.448a12 12 0 0 0-5.51-15.145l-39.357-20.773z"],
    +  "chess-rook": [384, 512, [], "f447", "M81.241 215.027C80.957 258.92 77.411 348.076 48 448h287.982c-29.4-99.604-32.936-188.912-33.221-232.975l45.418-42.312a11.998 11.998 0 0 0 3.82-8.78V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v44h-48V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v44H96V44c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v119.932c0 3.33 1.384 6.51 3.82 8.78l45.421 42.315zM160 256c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v64.004h-64V256zm224 220v24c0 6.627-5.373 12-12 12H12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12z"],
    +  "chevron-circle-down": [512, 512, [], "f13a", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"],
    +  "chevron-circle-left": [512, 512, [], "f137", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"],
    +  "chevron-circle-right": [512, 512, [], "f138", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"],
    +  "chevron-circle-up": [512, 512, [], "f139", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"],
    +  "chevron-down": [448, 512, [], "f078", "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"],
    +  "chevron-left": [320, 512, [], "f053", "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"],
    +  "chevron-right": [320, 512, [], "f054", "M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"],
    +  "chevron-up": [448, 512, [], "f077", "M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"],
    +  "child": [384, 512, [], "f1ae", "M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"],
    +  "church": [640, 512, [], "f51d", "M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"],
    +  "circle": [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"],
    +  "circle-notch": [512, 512, [], "f1ce", "M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"],
    +  "city": [640, 512, [], "f64f", "M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"],
    +  "clipboard": [384, 512, [], "f328", "M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"],
    +  "clipboard-check": [384, 512, [], "f46c", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"],
    +  "clipboard-list": [384, 512, [], "f46d", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"],
    +  "clock": [512, 512, [], "f017", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z"],
    +  "clone": [512, 512, [], "f24d", "M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"],
    +  "closed-captioning": [512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"],
    +  "cloud": [640, 512, [], "f0c2", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"],
    +  "cloud-download-alt": [640, 512, [], "f381", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"],
    +  "cloud-moon": [640, 512, [], "f6c3", "M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.3 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm285.26-29.42c-104.23 19.22-199.95-58.16-199.95-160.03 0-58.68 32.45-112.64 85.18-141.7 8.13-4.48 6.08-16.41-3.15-18.06C497.14 1.17 484 0 470.84 0 352.25 0 256 93.04 256 208c0 7.26.4 14.44 1.15 21.51 9.87-3.38 20.18-5.51 30.85-5.51 52.94 0 96 43.06 96 96 0 3.59-.21 7.17-.63 10.73 33.49 15.39 57.47 46.55 63.24 83.86 7.96.87 16.03 1.41 24.23 1.41 66.26 0 126.79-29.19 166.88-77.02 5.93-7.07-.54-17.41-9.71-15.72z"],
    +  "cloud-sun": [640, 512, [], "f6c4", "M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.31 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm243.19-99.8c-7.85-6.79-7.85-18.97 0-25.76L633.41 186c12.76-11.05 5.84-32.02-11-33.3l-61.59-4.67c-10.19-.78-17.28-10.49-14.9-20.43l14.95-62.48c3.89-16.26-13.96-29.02-28.08-20.07l-52.51 33.26c-8.61 5.46-20.06 1.75-23.85-7.72l-23.47-58.74c-6.32-15.81-28.19-15.81-34.51 0l-23.38 58.49c-3.83 9.59-15.44 13.35-24.17 7.82l-52.29-33.12c-14.13-8.95-31.98 3.81-28.08 20.07l14.95 62.48c2.38 9.94-4.7 19.65-14.9 20.43l-61.15 4.64c-17 1.29-23.99 22.46-11.1 33.62l31.23 27.05c7.82 5.17 15.21 11.01 21.78 17.84 11.42-4.71 23.73-7.18 36.37-7.18 5.97 0 11.77.71 17.44 1.76 7.09-54.98 53.68-97.76 110.56-97.76 61.76 0 112 50.24 112 112s-50.24 112-112 112c-.95 0-1.83-.26-2.77-.28 13.83 13.2 24.61 29.47 30.16 48.28h27.02c6.25 0 12.37 1.83 17.6 5.27l45.08 29.68c14.19 8.99 31.89-4.17 27.92-20.76l-14.69-61.38c-2.43-10.16 4.8-20.08 15.22-20.87l61.16-4.64c16.84-1.28 23.76-22.25 11-33.3l-47.47-41.11zm-202.66 59.94C393.3 317.34 404.32 320 416 320c44.11 0 80-35.89 80-80s-35.89-80-80-80c-43.25 0-78.39 34.56-79.75 77.49 26.44 15.53 44.59 43.13 47.03 75.33z"],
    +  "cloud-upload-alt": [640, 512, [], "f382", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"],
    +  "cocktail": [576, 512, [], "f561", "M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"],
    +  "code": [640, 512, [], "f121", "M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"],
    +  "code-branch": [384, 512, [], "f126", "M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"],
    +  "coffee": [640, 512, [], "f0f4", "M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"],
    +  "cog": [512, 512, [], "f013", "M444.788 291.1l42.616 24.599c4.867 2.809 7.126 8.618 5.459 13.985-11.07 35.642-29.97 67.842-54.689 94.586a12.016 12.016 0 0 1-14.832 2.254l-42.584-24.595a191.577 191.577 0 0 1-60.759 35.13v49.182a12.01 12.01 0 0 1-9.377 11.718c-34.956 7.85-72.499 8.256-109.219.007-5.49-1.233-9.403-6.096-9.403-11.723v-49.184a191.555 191.555 0 0 1-60.759-35.13l-42.584 24.595a12.016 12.016 0 0 1-14.832-2.254c-24.718-26.744-43.619-58.944-54.689-94.586-1.667-5.366.592-11.175 5.459-13.985L67.212 291.1a193.48 193.48 0 0 1 0-70.199l-42.616-24.599c-4.867-2.809-7.126-8.618-5.459-13.985 11.07-35.642 29.97-67.842 54.689-94.586a12.016 12.016 0 0 1 14.832-2.254l42.584 24.595a191.577 191.577 0 0 1 60.759-35.13V25.759a12.01 12.01 0 0 1 9.377-11.718c34.956-7.85 72.499-8.256 109.219-.007 5.49 1.233 9.403 6.096 9.403 11.723v49.184a191.555 191.555 0 0 1 60.759 35.13l42.584-24.595a12.016 12.016 0 0 1 14.832 2.254c24.718 26.744 43.619 58.944 54.689 94.586 1.667 5.366-.592 11.175-5.459 13.985L444.788 220.9a193.485 193.485 0 0 1 0 70.2zM336 256c0-44.112-35.888-80-80-80s-80 35.888-80 80 35.888 80 80 80 80-35.888 80-80z"],
    +  "cogs": [640, 512, [], "f085", "M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"],
    +  "coins": [512, 512, [], "f51e", "M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"],
    +  "columns": [512, 512, [], "f0db", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"],
    +  "comment": [512, 512, [], "f075", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"],
    +  "comment-alt": [512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"],
    +  "comment-dollar": [512, 512, [], "f651", "M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"],
    +  "comment-dots": [512, 512, [], "f4ad", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "comment-slash": [640, 512, [], "f4b3", "M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"],
    +  "comments": [576, 512, [], "f086", "M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"],
    +  "comments-dollar": [576, 512, [], "f653", "M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"],
    +  "compact-disc": [496, 512, [], "f51f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
    +  "compass": [496, 512, [], "f14e", "M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"],
    +  "compress": [448, 512, [], "f066", "M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"],
    +  "concierge-bell": [512, 512, [], "f562", "M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "cookie": [512, 512, [], "f563", "M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "cookie-bite": [512, 512, [], "f564", "M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "copy": [448, 512, [], "f0c5", "M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"],
    +  "copyright": [512, 512, [], "f1f9", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"],
    +  "couch": [640, 512, [], "f4b8", "M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"],
    +  "credit-card": [576, 512, [], "f09d", "M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"],
    +  "crop": [512, 512, [], "f125", "M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],
    +  "crop-alt": [512, 512, [], "f565", "M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"],
    +  "cross": [384, 512, [], "f654", "M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],
    +  "crosshairs": [512, 512, [], "f05b", "M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"],
    +  "crow": [640, 512, [], "f520", "M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],
    +  "crown": [640, 512, [], "f521", "M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"],
    +  "cube": [512, 512, [], "f1b2", "M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"],
    +  "cubes": [512, 512, [], "f1b3", "M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"],
    +  "cut": [448, 512, [], "f0c4", "M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"],
    +  "database": [448, 512, [], "f1c0", "M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"],
    +  "deaf": [512, 512, [], "f2a4", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"],
    +  "desktop": [576, 512, [], "f108", "M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"],
    +  "dharmachakra": [512, 512, [], "f655", "M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"],
    +  "diagnoses": [640, 512, [], "f470", "M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"],
    +  "dice": [640, 512, [], "f522", "M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],
    +  "dice-d20": [480, 512, [], "f6cf", "M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"],
    +  "dice-d6": [448, 512, [], "f6d1", "M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"],
    +  "dice-five": [448, 512, [], "f523", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "dice-four": [448, 512, [], "f524", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "dice-one": [448, 512, [], "f525", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "dice-six": [448, 512, [], "f526", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "dice-three": [448, 512, [], "f527", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "dice-two": [448, 512, [], "f528", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "digital-tachograph": [640, 512, [], "f566", "M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"],
    +  "directions": [512, 512, [], "f5eb", "M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"],
    +  "divide": [448, 512, [], "f529", "M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],
    +  "dizzy": [496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"],
    +  "dna": [448, 512, [], "f471", "M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"],
    +  "dog": [512, 512, [], "f6d3", "M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z"],
    +  "dollar-sign": [288, 512, [], "f155", "M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"],
    +  "dolly": [576, 512, [], "f472", "M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],
    +  "dolly-flatbed": [640, 512, [], "f474", "M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"],
    +  "donate": [512, 512, [], "f4b9", "M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"],
    +  "door-closed": [640, 512, [], "f52a", "M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"],
    +  "door-open": [640, 512, [], "f52b", "M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"],
    +  "dot-circle": [512, 512, [], "f192", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"],
    +  "dove": [512, 512, [], "f4ba", "M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],
    +  "download": [512, 512, [], "f019", "M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"],
    +  "drafting-compass": [512, 512, [], "f568", "M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"],
    +  "dragon": [640, 512, [], "f6d5", "M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"],
    +  "draw-polygon": [448, 512, [], "f5ee", "M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"],
    +  "drum": [576, 512, [], "f569", "M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z"],
    +  "drum-steelpan": [576, 512, [], "f56a", "M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"],
    +  "drumstick-bite": [512, 512, [], "f6d7", "M462.79 49.57c-66.14-66.09-173.36-66.09-239.5 0C187.81 85.02 160.12 128 160.12 192v85.83l-40.62 40.59c-9.7 9.69-24.04 11.07-36.78 5.98-21.72-8.68-47.42-4.29-65.02 13.29-23.61 23.59-23.61 61.84 0 85.43 15.28 15.27 36.53 19.58 56.14 15.09-4.5 19.6-.18 40.83 15.1 56.1 23.61 23.59 61.88 23.59 85.49 0 17.6-17.58 21.99-43.26 13.31-64.97-5.09-12.73-3.72-27.05 5.99-36.75L234.35 352h85.89c23.2 0 43.57-3.72 61.89-10.03-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.93-14.81-90.25-49.13-124.53z"],
    +  "dumbbell": [640, 512, [], "f44b", "M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"],
    +  "dungeon": [512, 512, [], "f6d9", "M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"],
    +  "edit": [576, 512, [], "f044", "M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"],
    +  "eject": [448, 512, [], "f052", "M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"],
    +  "ellipsis-h": [512, 512, [], "f141", "M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"],
    +  "ellipsis-v": [192, 512, [], "f142", "M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"],
    +  "envelope": [512, 512, [], "f0e0", "M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"],
    +  "envelope-open": [512, 512, [], "f2b6", "M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"],
    +  "envelope-open-text": [512, 512, [], "f658", "M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"],
    +  "envelope-square": [448, 512, [], "f199", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"],
    +  "equals": [448, 512, [], "f52c", "M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],
    +  "eraser": [512, 512, [], "f12d", "M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"],
    +  "euro-sign": [320, 512, [], "f153", "M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"],
    +  "exchange-alt": [512, 512, [], "f362", "M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"],
    +  "exclamation": [192, 512, [], "f12a", "M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"],
    +  "exclamation-circle": [512, 512, [], "f06a", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"],
    +  "exclamation-triangle": [576, 512, [], "f071", "M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"],
    +  "expand": [448, 512, [], "f065", "M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"],
    +  "expand-arrows-alt": [448, 512, [], "f31e", "M448.1 344v112c0 13.3-10.7 24-24 24h-112c-21.4 0-32.1-25.9-17-41l36.2-36.2L224 295.6 116.8 402.9 153 439c15.1 15.1 4.4 41-17 41H24c-13.3 0-24-10.7-24-24V344c0-21.4 25.9-32.1 41-17l36.2 36.2L184.5 256 77.2 148.7 41 185c-15.1 15.1-41 4.4-41-17V56c0-13.3 10.7-24 24-24h112c21.4 0 32.1 25.9 17 41l-36.2 36.2L224 216.4l107.3-107.3L295.1 73c-15.1-15.1-4.4-41 17-41h112c13.3 0 24 10.7 24 24v112c0 21.4-25.9 32.1-41 17l-36.2-36.2L263.6 256l107.3 107.3 36.2-36.2c15.1-15.2 41-4.5 41 16.9z"],
    +  "external-link-alt": [576, 512, [], "f35d", "M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z"],
    +  "external-link-square-alt": [448, 512, [], "f360", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"],
    +  "eye": [576, 512, [], "f06e", "M569.354 231.631C512.969 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-75.162 0-136-60.827-136-136 0-75.162 60.826-136 136-136 75.162 0 136 60.826 136 136 0 75.162-60.826 136-136 136zm104-136c0 57.438-46.562 104-104 104s-104-46.562-104-104c0-17.708 4.431-34.379 12.236-48.973l-.001.032c0 23.651 19.173 42.823 42.824 42.823s42.824-19.173 42.824-42.823c0-23.651-19.173-42.824-42.824-42.824l-.032.001C253.621 156.431 270.292 152 288 152c57.438 0 104 46.562 104 104z"],
    +  "eye-dropper": [512, 512, [], "f1fb", "M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"],
    +  "eye-slash": [576, 512, [], "f070", "M286.693 391.984l32.579 46.542A333.958 333.958 0 0 1 288 440C168.19 440 63.031 376.051 6.646 280.369a47.999 47.999 0 0 1 0-48.739c24.023-40.766 56.913-75.775 96.024-102.537l57.077 81.539C154.736 224.82 152 240.087 152 256c0 74.736 60.135 135.282 134.693 135.984zm282.661-111.615c-31.667 53.737-78.747 97.46-135.175 125.475l.011.015 41.47 59.2c7.6 10.86 4.96 25.82-5.9 33.42l-13.11 9.18c-10.86 7.6-25.82 4.96-33.42-5.9L100.34 46.94c-7.6-10.86-4.96-25.82 5.9-33.42l13.11-9.18c10.86-7.6 25.82-4.96 33.42 5.9l51.038 72.617C230.68 75.776 258.905 72 288 72c119.81 0 224.969 63.949 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM424 256c0-75.174-60.838-136-136-136-17.939 0-35.056 3.473-50.729 9.772l19.299 27.058c25.869-8.171 55.044-6.163 80.4 7.41h-.03c-23.65 0-42.82 19.17-42.82 42.82 0 23.626 19.147 42.82 42.82 42.82 23.65 0 42.82-19.17 42.82-42.82v-.03c18.462 34.49 16.312 77.914-8.25 110.95v.01l19.314 27.061C411.496 321.2 424 290.074 424 256zM262.014 356.727l-77.53-110.757c-5.014 52.387 29.314 98.354 77.53 110.757z"],
    +  "fast-backward": [512, 512, [], "f049", "M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"],
    +  "fast-forward": [512, 512, [], "f050", "M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"],
    +  "fax": [512, 512, [], "f1ac", "M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z"],
    +  "feather": [512, 512, [], "f52d", "M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"],
    +  "feather-alt": [512, 512, [], "f56b", "M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"],
    +  "female": [256, 512, [], "f182", "M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"],
    +  "fighter-jet": [640, 512, [], "f0fb", "M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"],
    +  "file": [384, 512, [], "f15b", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-alt": [384, 512, [], "f15c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-archive": [384, 512, [], "f1c6", "M224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32V32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6zm32.7-53c0 14.9-14.5 27-32.4 27S96 378 96 363c0-14.9 14.5-27 32.4-27s32.5 12.1 32.5 27zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-audio": [384, 512, [], "f1c7", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-code": [384, 512, [], "f1c9", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"],
    +  "file-contract": [384, 512, [], "f56c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-csv": [384, 512, [], "f6dd", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-download": [384, 512, [], "f56d", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-excel": [384, 512, [], "f1c3", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-export": [576, 512, [], "f56e", "M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zM192 336v-32c0-8.84 7.16-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.84 0-16-7.16-16-16zm379.05-28.02l-95.7-96.43c-10.06-10.14-27.36-3.01-27.36 11.27V288H384v64h63.99v65.18c0 14.28 17.29 21.41 27.36 11.27l95.7-96.42c6.6-6.66 6.6-17.4 0-24.05z"],
    +  "file-image": [384, 512, [], "f1c5", "M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"],
    +  "file-import": [512, 512, [], "f56f", "M16 288c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h112v-64H16zm336-152V0H152c-13.3 0-24 10.7-24 24v264h127.99v-65.18c0-14.28 17.29-21.41 27.36-11.27l95.7 96.43c6.6 6.65 6.6 17.39 0 24.04l-95.7 96.42c-10.06 10.14-27.36 3.01-27.36-11.27V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24zm153-31L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-invoice": [384, 512, [], "f570", "M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"],
    +  "file-invoice-dollar": [384, 512, [], "f571", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"],
    +  "file-medical": [384, 512, [], "f477", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"],
    +  "file-medical-alt": [448, 512, [], "f478", "M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-pdf": [384, 512, [], "f1c1", "M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"],
    +  "file-powerpoint": [384, 512, [], "f1c4", "M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"],
    +  "file-prescription": [384, 512, [], "f572", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "file-signature": [576, 512, [], "f573", "M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"],
    +  "file-upload": [384, 512, [], "f574", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],
    +  "file-video": [384, 512, [], "f1c8", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"],
    +  "file-word": [384, 512, [], "f1c2", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],
    +  "fill": [512, 512, [], "f575", "M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"],
    +  "fill-drip": [576, 512, [], "f576", "M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"],
    +  "film": [512, 512, [], "f008", "M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"],
    +  "filter": [512, 512, [], "f0b0", "M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"],
    +  "fingerprint": [512, 512, [], "f577", "M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"],
    +  "fire": [384, 512, [], "f06d", "M216 23.858c0-23.802-30.653-32.765-44.149-13.038C48 191.851 224 200 224 288c0 35.629-29.114 64.458-64.85 63.994C123.98 351.538 96 322.22 96 287.046v-85.51c0-21.703-26.471-32.225-41.432-16.504C27.801 213.158 0 261.332 0 320c0 105.869 86.131 192 192 192s192-86.131 192-192c0-170.29-168-193.003-168-296.142z"],
    +  "fire-extinguisher": [448, 512, [], "f134", "M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"],
    +  "first-aid": [576, 512, [], "f479", "M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],
    +  "fish": [576, 512, [], "f578", "M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"],
    +  "fist-raised": [384, 512, [], "f6de", "M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"],
    +  "flag": [512, 512, [], "f024", "M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"],
    +  "flag-checkered": [512, 512, [], "f11e", "M466.515 66.928C487.731 57.074 512 72.551 512 95.944v243.1c0 10.526-5.161 20.407-13.843 26.358-35.837 24.564-74.335 40.858-122.505 40.858-67.373 0-111.63-34.783-165.217-34.783-50.853 0-86.124 10.058-114.435 22.122V488c0 13.255-10.745 24-24 24H56c-13.255 0-24-10.745-24-24V101.945C17.497 91.825 8 75.026 8 56 8 24.296 34.345-1.254 66.338.048c28.468 1.158 51.779 23.968 53.551 52.404.52 8.342-.81 16.31-3.586 23.562C137.039 68.384 159.393 64 184.348 64c67.373 0 111.63 34.783 165.217 34.783 40.496 0 82.612-15.906 116.95-31.855zM96 134.63v70.49c29-10.67 51.18-17.83 73.6-20.91v-71.57c-23.5 2.17-40.44 9.79-73.6 21.99zm220.8 9.19c-26.417-4.672-49.886-13.979-73.6-21.34v67.42c24.175 6.706 47.566 16.444 73.6 22.31v-68.39zm-147.2 40.39v70.04c32.796-2.978 53.91-.635 73.6 3.8V189.9c-25.247-7.035-46.581-9.423-73.6-5.69zm73.6 142.23c26.338 4.652 49.732 13.927 73.6 21.34v-67.41c-24.277-6.746-47.54-16.45-73.6-22.32v68.39zM96 342.1c23.62-8.39 47.79-13.84 73.6-16.56v-71.29c-26.11 2.35-47.36 8.04-73.6 17.36v70.49zm368-221.6c-21.3 8.85-46.59 17.64-73.6 22.47v71.91c27.31-4.36 50.03-14.1 73.6-23.89V120.5zm0 209.96v-70.49c-22.19 14.2-48.78 22.61-73.6 26.02v71.58c25.07-2.38 48.49-11.04 73.6-27.11zM316.8 212.21v68.16c25.664 7.134 46.616 9.342 73.6 5.62v-71.11c-25.999 4.187-49.943 2.676-73.6-2.67z"],
    +  "flask": [448, 512, [], "f0c3", "M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"],
    +  "flushed": [496, 512, [], "f579", "M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"],
    +  "folder": [512, 512, [], "f07b", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"],
    +  "folder-minus": [512, 512, [], "f65d", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"],
    +  "folder-open": [576, 512, [], "f07c", "M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"],
    +  "folder-plus": [512, 512, [], "f65e", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z"],
    +  "font": [448, 512, [], "f031", "M152 416h-24.013l26.586-80.782H292.8L319.386 416H296c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-26.739L275.495 42.746A16 16 0 0 0 260.382 32h-72.766a16 16 0 0 0-15.113 10.746L42.739 416H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm64.353-271.778c4.348-15.216 6.61-28.156 7.586-34.644.839 6.521 2.939 19.476 7.727 34.706l41.335 124.006h-98.619l41.971-124.068z"],
    +  "font-awesome-logo-full": [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],
    +  "football-ball": [496, 512, [], "f44e", "M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"],
    +  "forward": [512, 512, [], "f04e", "M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"],
    +  "frog": [576, 512, [], "f52e", "M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"],
    +  "frown": [496, 512, [], "f119", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"],
    +  "frown-open": [496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "funnel-dollar": [640, 512, [], "f662", "M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"],
    +  "futbol": [512, 512, [], "f1e3", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"],
    +  "gamepad": [640, 512, [], "f11b", "M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],
    +  "gas-pump": [512, 512, [], "f52f", "M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"],
    +  "gavel": [512, 512, [], "f0e3", "M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"],
    +  "gem": [576, 512, [], "f3a5", "M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"],
    +  "genderless": [288, 512, [], "f22d", "M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"],
    +  "ghost": [384, 512, [], "f6e2", "M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "gift": [512, 512, [], "f06b", "M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm448-288h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40zm-72 320h160c17.7 0 32-14.3 32-32V320H288v160z"],
    +  "glass-martini": [512, 512, [], "f000", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"],
    +  "glass-martini-alt": [512, 512, [], "f57b", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"],
    +  "glasses": [576, 512, [], "f530", "M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"],
    +  "globe": [496, 512, [], "f0ac", "M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"],
    +  "globe-africa": [496, 512, [], "f57c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"],
    +  "globe-americas": [496, 512, [], "f57d", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"],
    +  "globe-asia": [496, 512, [], "f57e", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"],
    +  "golf-ball": [416, 512, [], "f450", "M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"],
    +  "gopuram": [512, 512, [], "f664", "M496 352h-16V240c0-8.84-7.16-16-16-16h-16v-80c0-8.84-7.16-16-16-16h-16V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16S96 7.16 96 16v112H80c-8.84 0-16 7.16-16 16v80H48c-8.84 0-16 7.16-16 16v112H16c-8.84 0-16 7.16-16 16v128c0 8.84 7.16 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.84 0 16-7.16 16-16V368c0-8.84-7.16-16-16-16zm-272 0v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64h-64zm8-128v-48c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v48h-48z"],
    +  "graduation-cap": [640, 512, [], "f19d", "M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"],
    +  "greater-than": [384, 512, [], "f531", "M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"],
    +  "greater-than-equal": [448, 512, [], "f532", "M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],
    +  "grimace": [496, 512, [], "f57f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"],
    +  "grin": [496, 512, [], "f580", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-alt": [496, 512, [], "f581", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-beam": [496, 512, [], "f582", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-beam-sweat": [504, 512, [], "f583", "M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-hearts": [496, 512, [], "f584", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"],
    +  "grin-squint": [496, 512, [], "f585", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-squint-tears": [512, 512, [], "f586", "M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"],
    +  "grin-stars": [496, 512, [], "f587", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"],
    +  "grin-tears": [640, 512, [], "f588", "M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],
    +  "grin-tongue": [496, 512, [], "f589", "M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"],
    +  "grin-tongue-squint": [496, 512, [], "f58a", "M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"],
    +  "grin-tongue-wink": [496, 512, [], "f58b", "M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"],
    +  "grin-wink": [496, 512, [], "f58c", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"],
    +  "grip-horizontal": [448, 512, [], "f58d", "M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],
    +  "grip-vertical": [320, 512, [], "f58e", "M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],
    +  "h-square": [448, 512, [], "f0fd", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"],
    +  "hammer": [576, 512, [], "f6e3", "M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"],
    +  "hamsa": [512, 512, [], "f665", "M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],
    +  "hand-holding": [576, 512, [], "f4bd", "M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"],
    +  "hand-holding-heart": [576, 512, [], "f4be", "M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"],
    +  "hand-holding-usd": [544, 512, [], "f4c0", "M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z"],
    +  "hand-lizard": [576, 512, [], "f258", "M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"],
    +  "hand-paper": [448, 512, [], "f256", "M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"],
    +  "hand-peace": [448, 512, [], "f25b", "M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"],
    +  "hand-point-down": [384, 512, [], "f0a7", "M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"],
    +  "hand-point-left": [512, 512, [], "f0a5", "M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"],
    +  "hand-point-right": [512, 512, [], "f0a4", "M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"],
    +  "hand-point-up": [384, 512, [], "f0a6", "M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"],
    +  "hand-pointer": [448, 512, [], "f25a", "M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"],
    +  "hand-rock": [512, 512, [], "f255", "M512 128.79c0-26.322-20.861-48.344-47.18-48.783C437.935 79.558 416 101.217 416 128h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C333.935 47.558 312 69.217 312 96v32h-8V80.79c0-26.322-20.861-48.344-47.18-48.783C229.935 31.558 208 53.217 208 80v48h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C125.935 47.558 104 69.217 104 96v136l-8-7.111V176.79c0-26.322-20.861-48.344-47.18-48.783C21.935 127.558 0 149.217 0 176v66.445a95.998 95.998 0 0 0 32.221 71.751l111.668 99.261A47.999 47.999 0 0 1 160 449.333V456c0 13.255 10.745 24 24 24h240c13.255 0 24-10.745 24-24v-2.921a96.01 96.01 0 0 1 7.523-37.254l48.954-116.265A96.002 96.002 0 0 0 512 262.306V128.79z"],
    +  "hand-scissors": [512, 512, [], "f257", "M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"],
    +  "hand-spock": [512, 512, [], "f259", "M10.872 316.585c15.139-16.086 40.454-16.854 56.543-1.713L128 371.893v-79.405L88.995 120.865c-4.896-21.542 8.598-42.974 30.14-47.87 21.549-4.894 42.975 8.599 47.87 30.141L201.747 256h9.833L164.016 48.966c-4.946-21.531 8.498-42.994 30.028-47.94 21.532-4.95 42.994 8.498 47.94 30.028L293.664 256h15.105l48.425-193.702c5.357-21.432 27.075-34.462 48.507-29.104 21.432 5.358 34.463 27.075 29.104 48.507L391.231 256h11.08l30.768-129.265c5.117-21.491 26.685-34.768 48.177-29.647 21.491 5.117 34.765 26.686 29.647 48.177l-36.292 152.467A96.024 96.024 0 0 0 472 319.967v42.102a96.002 96.002 0 0 1-3.96 27.287l-26.174 88.287C435.825 498.022 417.101 512 395.846 512H179.172a48.002 48.002 0 0 1-32.898-13.046L12.585 373.128c-16.087-15.141-16.853-40.456-1.713-56.543z"],
    +  "hands": [640, 512, [], "f4c2", "M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"],
    +  "hands-helping": [640, 512, [], "f4c4", "M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"],
    +  "handshake": [640, 512, [], "f2b5", "M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"],
    +  "hanukiah": [640, 512, [], "f6e6", "M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"],
    +  "hashtag": [448, 512, [], "f292", "M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"],
    +  "hat-wizard": [512, 512, [], "f6e8", "M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"],
    +  "haykal": [512, 512, [], "f666", "M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"],
    +  "hdd": [576, 512, [], "f0a0", "M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"],
    +  "heading": [512, 512, [], "f1dc", "M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z"],
    +  "headphones": [512, 512, [], "f025", "M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"],
    +  "headphones-alt": [512, 512, [], "f58f", "M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"],
    +  "headset": [512, 512, [], "f590", "M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"],
    +  "heart": [512, 512, [], "f004", "M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"],
    +  "heartbeat": [512, 512, [], "f21e", "M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"],
    +  "helicopter": [640, 512, [], "f533", "M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"],
    +  "highlighter": [544, 512, [], "f591", "M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"],
    +  "hiking": [384, 512, [], "f6ec", "M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"],
    +  "hippo": [640, 512, [], "f6ed", "M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],
    +  "history": [512, 512, [], "f1da", "M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"],
    +  "hockey-puck": [512, 512, [], "f453", "M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"],
    +  "home": [576, 512, [], "f015", "M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z"],
    +  "horse": [576, 512, [], "f6f0", "M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],
    +  "hospital": [448, 512, [], "f0f8", "M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"],
    +  "hospital-alt": [576, 512, [], "f47d", "M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"],
    +  "hospital-symbol": [512, 512, [], "f47e", "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"],
    +  "hot-tub": [512, 512, [], "f593", "M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"],
    +  "hotel": [576, 512, [], "f594", "M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"],
    +  "hourglass": [384, 512, [], "f254", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"],
    +  "hourglass-end": [384, 512, [], "f253", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"],
    +  "hourglass-half": [384, 512, [], "f252", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"],
    +  "hourglass-start": [384, 512, [], "f251", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"],
    +  "house-damage": [576, 512, [], "f6f1", "M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"],
    +  "hryvnia": [384, 512, [], "f6f2", "M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"],
    +  "i-cursor": [256, 512, [], "f246", "M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"],
    +  "id-badge": [384, 512, [], "f2c1", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],
    +  "id-card": [576, 512, [], "f2c2", "M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"],
    +  "id-card-alt": [576, 512, [], "f47f", "M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"],
    +  "image": [512, 512, [], "f03e", "M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"],
    +  "images": [576, 512, [], "f302", "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"],
    +  "inbox": [576, 512, [], "f01c", "M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"],
    +  "indent": [448, 512, [], "f03c", "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm176 144h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm-52.687-111.313l-96-95.984C17.266 138.652 0 145.776 0 160.016v191.975c0 14.329 17.325 21.304 27.313 11.313l96-95.992c6.249-6.247 6.249-16.377 0-22.625z"],
    +  "industry": [512, 512, [], "f275", "M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"],
    +  "infinity": [640, 512, [], "f534", "M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"],
    +  "info": [192, 512, [], "f129", "M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"],
    +  "info-circle": [512, 512, [], "f05a", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"],
    +  "italic": [320, 512, [], "f033", "M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z"],
    +  "jedi": [544, 512, [], "f669", "M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z"],
    +  "joint": [640, 512, [], "f595", "M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"],
    +  "journal-whills": [448, 512, [], "f66a", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],
    +  "kaaba": [576, 512, [], "f66b", "M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"],
    +  "key": [512, 512, [], "f084", "M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"],
    +  "keyboard": [576, 512, [], "f11c", "M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"],
    +  "khanda": [512, 512, [], "f66d", "M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"],
    +  "kiss": [496, 512, [], "f596", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "kiss-beam": [496, 512, [], "f597", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"],
    +  "kiss-wink-heart": [504, 512, [], "f598", "M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"],
    +  "kiwi-bird": [576, 512, [], "f535", "M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"],
    +  "landmark": [512, 512, [], "f66f", "M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "language": [640, 512, [], "f1ab", "M304 416H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h280v320zm-120.676-72.622A12 12 0 0 0 194.839 352h22.863c8.22 0 14.007-8.078 11.362-15.861L171.61 167.085a12 12 0 0 0-11.362-8.139h-32.489a12.001 12.001 0 0 0-11.362 8.139L58.942 336.139C56.297 343.922 62.084 352 70.304 352h22.805a12 12 0 0 0 11.535-8.693l9.118-31.807h60.211l9.351 31.878zm-39.051-140.42s4.32 21.061 7.83 33.21l10.8 37.531h-38.07l11.07-37.531c3.51-12.15 7.83-33.21 7.83-33.21h.54zM616 416H336V96h280c13.255 0 24 10.745 24 24v272c0 13.255-10.745 24-24 24zm-36-228h-64v-16c0-6.627-5.373-12-12-12h-16c-6.627 0-12 5.373-12 12v16h-64c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h114.106c-6.263 14.299-16.518 28.972-30.023 43.206-6.56-6.898-12.397-13.91-17.365-20.933-3.639-5.144-10.585-6.675-15.995-3.446l-7.28 4.346-6.498 3.879c-5.956 3.556-7.693 11.421-3.735 17.117 6.065 8.729 13.098 17.336 20.984 25.726-8.122 6.226-16.841 12.244-26.103 17.964-5.521 3.41-7.381 10.556-4.162 16.19l7.941 13.896c3.362 5.883 10.935 7.826 16.706 4.276 12.732-7.831 24.571-16.175 35.443-24.891 10.917 8.761 22.766 17.102 35.396 24.881 5.774 3.556 13.353 1.618 16.717-4.27l7.944-13.903c3.213-5.623 1.37-12.76-4.135-16.171a312.737 312.737 0 0 1-26.06-18.019c21.024-22.425 35.768-46.289 42.713-69.85H580c6.627 0 12-5.373 12-12v-16c0-6.625-5.373-11.998-12-11.998z"],
    +  "laptop": [640, 512, [], "f109", "M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"],
    +  "laptop-code": [640, 512, [], "f5fc", "M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"],
    +  "laugh": [496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"],
    +  "laugh-beam": [496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],
    +  "laugh-squint": [496, 512, [], "f59b", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],
    +  "laugh-wink": [496, 512, [], "f59c", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],
    +  "layer-group": [512, 512, [], "f5fd", "M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"],
    +  "leaf": [576, 512, [], "f06c", "M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"],
    +  "lemon": [512, 512, [], "f094", "M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"],
    +  "less-than": [384, 512, [], "f536", "M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"],
    +  "less-than-equal": [448, 512, [], "f537", "M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],
    +  "level-down-alt": [320, 512, [], "f3be", "M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"],
    +  "level-up-alt": [320, 512, [], "f3bf", "M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"],
    +  "life-ring": [512, 512, [], "f1cd", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"],
    +  "lightbulb": [352, 512, [], "f0eb", "M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"],
    +  "link": [512, 512, [], "f0c1", "M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"],
    +  "lira-sign": [384, 512, [], "f195", "M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"],
    +  "list": [512, 512, [], "f03a", "M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z"],
    +  "list-alt": [512, 512, [], "f022", "M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"],
    +  "list-ol": [512, 512, [], "f0cb", "M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],
    +  "list-ul": [512, 512, [], "f0ca", "M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],
    +  "location-arrow": [512, 512, [], "f124", "M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"],
    +  "lock": [448, 512, [], "f023", "M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"],
    +  "lock-open": [576, 512, [], "f3c1", "M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"],
    +  "long-arrow-alt-down": [256, 512, [], "f309", "M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"],
    +  "long-arrow-alt-left": [448, 512, [], "f30a", "M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"],
    +  "long-arrow-alt-right": [448, 512, [], "f30b", "M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"],
    +  "long-arrow-alt-up": [256, 512, [], "f30c", "M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"],
    +  "low-vision": [576, 512, [], "f2a8", "M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"],
    +  "luggage-cart": [640, 512, [], "f59d", "M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"],
    +  "magic": [512, 512, [], "f0d0", "M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"],
    +  "magnet": [512, 512, [], "f076", "M164.1 160H12c-6.6 0-12-5.4-12-12V68c0-19.9 16.1-36 36-36h104c19.9 0 36 16.1 36 36v80c.1 6.6-5.3 12-11.9 12zm348-12V67.9c0-19.9-16.1-36-36-36h-104c-19.9 0-36 16.1-36 36v80c0 6.6 5.4 12 12 12h152c6.6.1 12-5.3 12-11.9zm-164 44c-6.6 0-12 5.4-12 12v52c0 128.1-160 127.9-160 0v-52c0-6.6-5.4-12-12-12h-152c-6.7 0-12 5.4-12 12.1.1 21.4.6 40.3 0 53.3C.1 408 136.3 504 256.9 504 377.5 504 512 408 512 257.3c-.6-12.8-.2-33 0-53.2 0-6.7-5.3-12.1-12-12.1H348.1z"],
    +  "mail-bulk": [576, 512, [], "f674", "M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"],
    +  "male": [192, 512, [], "f183", "M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"],
    +  "map": [576, 512, [], "f279", "M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"],
    +  "map-marked": [576, 512, [], "f59f", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"],
    +  "map-marked-alt": [576, 512, [], "f5a0", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"],
    +  "map-marker": [384, 512, [], "f041", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"],
    +  "map-marker-alt": [384, 512, [], "f3c5", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"],
    +  "map-pin": [288, 512, [], "f276", "M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"],
    +  "map-signs": [512, 512, [], "f277", "M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"],
    +  "marker": [512, 512, [], "f5a1", "M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"],
    +  "mars": [384, 512, [], "f222", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "mars-double": [512, 512, [], "f227", "M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"],
    +  "mars-stroke": [384, 512, [], "f229", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "mars-stroke-h": [480, 512, [], "f22b", "M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"],
    +  "mars-stroke-v": [288, 512, [], "f22a", "M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"],
    +  "mask": [640, 512, [], "f6fa", "M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"],
    +  "medal": [512, 512, [], "f5a2", "M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"],
    +  "medkit": [512, 512, [], "f0fa", "M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"],
    +  "meh": [496, 512, [], "f11a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "meh-blank": [496, 512, [], "f5a4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "meh-rolling-eyes": [496, 512, [], "f5a5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"],
    +  "memory": [640, 512, [], "f538", "M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"],
    +  "menorah": [640, 512, [], "f676", "M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"],
    +  "mercury": [288, 512, [], "f223", "M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"],
    +  "microchip": [512, 512, [], "f2db", "M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"],
    +  "microphone": [352, 512, [], "f130", "M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"],
    +  "microphone-alt": [352, 512, [], "f3c9", "M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"],
    +  "microphone-alt-slash": [640, 512, [], "f539", "M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"],
    +  "microphone-slash": [640, 512, [], "f131", "M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"],
    +  "microscope": [512, 512, [], "f610", "M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"],
    +  "minus": [448, 512, [], "f068", "M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],
    +  "minus-circle": [512, 512, [], "f056", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"],
    +  "minus-square": [448, 512, [], "f146", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"],
    +  "mobile": [320, 512, [], "f10b", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "mobile-alt": [320, 512, [], "f3cd", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"],
    +  "money-bill": [640, 512, [], "f0d6", "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"],
    +  "money-bill-alt": [640, 512, [], "f3d1", "M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"],
    +  "money-bill-wave": [640, 512, [], "f53a", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"],
    +  "money-bill-wave-alt": [640, 512, [], "f53b", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"],
    +  "money-check": [640, 512, [], "f53c", "M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"],
    +  "money-check-alt": [640, 512, [], "f53d", "M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"],
    +  "monument": [384, 512, [], "f5a6", "M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"],
    +  "moon": [512, 512, [], "f186", "M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"],
    +  "mortar-pestle": [512, 512, [], "f5a7", "M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],
    +  "mosque": [640, 512, [], "f678", "M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"],
    +  "motorcycle": [640, 512, [], "f21c", "M512.949 192.003c-14.862-.108-29.14 2.322-42.434 6.874L437.589 144H520c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24h-45.311a24 24 0 0 0-17.839 7.945l-37.496 41.663-22.774-37.956A24 24 0 0 0 376 64h-80c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h66.411l19.2 32H227.904c-17.727-23.073-44.924-40-99.904-40H72.54c-13.455 0-24.791 11.011-24.536 24.464C48.252 141.505 58.9 152 72 152h56c24.504 0 38.686 10.919 47.787 24.769l-11.291 20.529c-13.006-3.865-26.871-5.736-41.251-5.21C55.857 194.549 1.565 249.605.034 317.021-1.603 389.076 56.317 448 128 448c59.642 0 109.744-40.794 123.953-96h84.236c13.673 0 24.589-11.421 23.976-25.077-2.118-47.12 17.522-93.665 56.185-125.026l12.485 20.808c-27.646 23.654-45.097 58.88-44.831 98.179.47 69.556 57.203 126.452 126.758 127.11 71.629.678 129.839-57.487 129.234-129.099-.588-69.591-57.455-126.386-127.047-126.892zM128 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c4.242 0 8.405.341 12.469.982L98.97 316.434C90.187 332.407 101.762 352 120 352h81.297c-12.37 28.225-40.56 48-73.297 48zm388.351-.116C470.272 402.337 432 365.554 432 320c0-21.363 8.434-40.781 22.125-55.144l49.412 82.352c4.546 7.577 14.375 10.034 21.952 5.488l13.72-8.232c7.577-4.546 10.034-14.375 5.488-21.952l-48.556-80.927A80.005 80.005 0 0 1 512 240c45.554 0 82.338 38.273 79.884 84.352-2.16 40.558-34.974 73.372-75.533 75.532z"],
    +  "mountain": [640, 512, [], "f6fc", "M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"],
    +  "mouse-pointer": [320, 512, [], "f245", "M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"],
    +  "music": [512, 512, [], "f001", "M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z"],
    +  "network-wired": [640, 512, [], "f6ff", "M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"],
    +  "neuter": [288, 512, [], "f22c", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "newspaper": [576, 512, [], "f1ea", "M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"],
    +  "not-equal": [448, 512, [], "f53e", "M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"],
    +  "notes-medical": [384, 512, [], "f481", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"],
    +  "object-group": [512, 512, [], "f247", "M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"],
    +  "object-ungroup": [576, 512, [], "f248", "M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"],
    +  "oil-can": [640, 512, [], "f613", "M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"],
    +  "om": [512, 512, [], "f679", "M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"],
    +  "otter": [640, 512, [], "f700", "M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"],
    +  "outdent": [448, 512, [], "f03b", "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm208 144h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm192-128h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM4.687 267.313l96 95.984C110.734 373.348 128 366.224 128 351.984V160.008c0-14.329-17.325-21.304-27.313-11.313l-96 95.992c-6.249 6.248-6.249 16.378 0 22.626z"],
    +  "paint-brush": [512, 512, [], "f1fc", "M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"],
    +  "paint-roller": [512, 512, [], "f5aa", "M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"],
    +  "palette": [512, 512, [], "f53f", "M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "pallet": [640, 512, [], "f482", "M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"],
    +  "paper-plane": [512, 512, [], "f1d8", "M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"],
    +  "paperclip": [448, 512, [], "f0c6", "M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"],
    +  "parachute-box": [512, 512, [], "f4cd", "M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"],
    +  "paragraph": [448, 512, [], "f1dd", "M408 32H177.531C88.948 32 16.045 103.335 16 191.918 15.956 280.321 87.607 352 176 352v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h32v344c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h40c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24z"],
    +  "parking": [448, 512, [], "f540", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"],
    +  "passport": [448, 512, [], "f5ab", "M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"],
    +  "pastafarianism": [640, 512, [], "f67b", "M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"],
    +  "paste": [448, 512, [], "f0ea", "M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"],
    +  "pause": [448, 512, [], "f04c", "M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"],
    +  "pause-circle": [512, 512, [], "f28b", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"],
    +  "paw": [512, 512, [], "f1b0", "M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"],
    +  "peace": [496, 512, [], "f67c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"],
    +  "pen": [512, 512, [], "f304", "M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"],
    +  "pen-alt": [512, 512, [], "f305", "M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"],
    +  "pen-fancy": [512, 512, [], "f5ac", "M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"],
    +  "pen-nib": [512, 512, [], "f5ad", "M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"],
    +  "pen-square": [448, 512, [], "f14b", "M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"],
    +  "pencil-alt": [512, 512, [], "f303", "M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"],
    +  "pencil-ruler": [512, 512, [], "f5ae", "M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"],
    +  "people-carry": [640, 512, [], "f4ce", "M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"],
    +  "percent": [448, 512, [], "f295", "M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"],
    +  "percentage": [384, 512, [], "f541", "M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"],
    +  "phone": [512, 512, [], "f095", "M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"],
    +  "phone-slash": [640, 512, [], "f3dd", "M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"],
    +  "phone-square": [448, 512, [], "f098", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"],
    +  "phone-volume": [384, 512, [], "f2a0", "M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"],
    +  "piggy-bank": [576, 512, [], "f4d3", "M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"],
    +  "pills": [576, 512, [], "f484", "M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"],
    +  "place-of-worship": [640, 512, [], "f67f", "M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"],
    +  "plane": [576, 512, [], "f072", "M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"],
    +  "plane-arrival": [640, 512, [], "f5af", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"],
    +  "plane-departure": [640, 512, [], "f5b0", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"],
    +  "play": [448, 512, [], "f04b", "M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"],
    +  "play-circle": [512, 512, [], "f144", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"],
    +  "plug": [384, 512, [], "f1e6", "M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z"],
    +  "plus": [448, 512, [], "f067", "M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],
    +  "plus-circle": [512, 512, [], "f055", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"],
    +  "plus-square": [448, 512, [], "f0fe", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"],
    +  "podcast": [448, 512, [], "f2ce", "M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"],
    +  "poll": [448, 512, [], "f681", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"],
    +  "poll-h": [448, 512, [], "f682", "M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"],
    +  "poo": [512, 512, [], "f2fe", "M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "poop": [512, 512, [], "f619", "M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"],
    +  "portrait": [384, 512, [], "f3e0", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],
    +  "pound-sign": [320, 512, [], "f154", "M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"],
    +  "power-off": [512, 512, [], "f011", "M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"],
    +  "pray": [384, 512, [], "f683", "M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"],
    +  "praying-hands": [640, 512, [], "f684", "M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"],
    +  "prescription": [384, 512, [], "f5b1", "M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"],
    +  "prescription-bottle": [384, 512, [], "f485", "M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"],
    +  "prescription-bottle-alt": [384, 512, [], "f486", "M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"],
    +  "print": [512, 512, [], "f02f", "M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],
    +  "procedures": [640, 512, [], "f487", "M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"],
    +  "project-diagram": [640, 512, [], "f542", "M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"],
    +  "puzzle-piece": [576, 512, [], "f12e", "M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"],
    +  "qrcode": [448, 512, [], "f029", "M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"],
    +  "question": [384, 512, [], "f128", "M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"],
    +  "question-circle": [512, 512, [], "f059", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"],
    +  "quidditch": [640, 512, [], "f458", "M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"],
    +  "quote-left": [512, 512, [], "f10d", "M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"],
    +  "quote-right": [512, 512, [], "f10e", "M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"],
    +  "quran": [448, 512, [], "f687", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],
    +  "random": [512, 512, [], "f074", "M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"],
    +  "receipt": [384, 512, [], "f543", "M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"],
    +  "recycle": [512, 512, [], "f1b8", "M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"],
    +  "redo": [512, 512, [], "f01e", "M500.333 0h-47.411c-6.853 0-12.314 5.729-11.986 12.574l3.966 82.759C399.416 41.899 331.672 8 256.001 8 119.34 8 7.899 119.526 8 256.187 8.101 393.068 119.096 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-33.971-33.971c-4.466-4.466-11.64-4.717-16.38-.543C341.308 415.448 300.606 432 256 432c-97.267 0-176-78.716-176-176 0-97.267 78.716-176 176-176 60.892 0 114.506 30.858 146.099 77.8l-101.525-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12z"],
    +  "redo-alt": [512, 512, [], "f2f9", "M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"],
    +  "registered": [512, 512, [], "f25d", "M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"],
    +  "reply": [512, 512, [], "f3e5", "M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"],
    +  "reply-all": [576, 512, [], "f122", "M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"],
    +  "retweet": [640, 512, [], "f079", "M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"],
    +  "ribbon": [448, 512, [], "f4d6", "M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"],
    +  "ring": [512, 512, [], "f70b", "M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"],
    +  "road": [576, 512, [], "f018", "M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"],
    +  "robot": [640, 512, [], "f544", "M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z"],
    +  "rocket": [512, 512, [], "f135", "M505.1 19.1C503.8 13 499 8.2 492.9 6.9 460.7 0 435.5 0 410.4 0 307.2 0 245.3 55.2 199.1 128H94.9c-18.2 0-34.8 10.3-42.9 26.5L2.6 253.3c-8 16 3.6 34.7 21.5 34.7h95.1c-5.9 12.8-11.9 25.5-18 37.7-3.1 6.2-1.9 13.6 3 18.5l63.6 63.6c4.9 4.9 12.3 6.1 18.5 3 12.2-6.1 24.9-12 37.7-17.9V488c0 17.8 18.8 29.4 34.7 21.5l98.7-49.4c16.3-8.1 26.5-24.8 26.5-42.9V312.8c72.6-46.3 128-108.4 128-211.1.1-25.2.1-50.4-6.8-82.6zM400 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],
    +  "route": [512, 512, [], "f4d7", "M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "rss": [448, 512, [], "f09e", "M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"],
    +  "rss-square": [448, 512, [], "f143", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"],
    +  "ruble-sign": [384, 512, [], "f158", "M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"],
    +  "ruler": [640, 512, [], "f545", "M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"],
    +  "ruler-combined": [512, 512, [], "f546", "M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],
    +  "ruler-horizontal": [576, 512, [], "f547", "M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"],
    +  "ruler-vertical": [256, 512, [], "f548", "M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"],
    +  "running": [416, 512, [], "f70c", "M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"],
    +  "rupee-sign": [320, 512, [], "f156", "M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"],
    +  "sad-cry": [496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"],
    +  "sad-tear": [496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"],
    +  "save": [448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"],
    +  "school": [640, 512, [], "f549", "M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"],
    +  "screwdriver": [512, 512, [], "f54a", "M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"],
    +  "scroll": [640, 512, [], "f70e", "M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"],
    +  "search": [512, 512, [], "f002", "M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"],
    +  "search-dollar": [512, 512, [], "f688", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"],
    +  "search-location": [512, 512, [], "f689", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],
    +  "search-minus": [512, 512, [], "f010", "M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"],
    +  "search-plus": [512, 512, [], "f00e", "M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"],
    +  "seedling": [512, 512, [], "f4d8", "M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"],
    +  "server": [512, 512, [], "f233", "M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"],
    +  "shapes": [512, 512, [], "f61f", "M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z"],
    +  "share": [512, 512, [], "f064", "M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"],
    +  "share-alt": [448, 512, [], "f1e0", "M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"],
    +  "share-alt-square": [448, 512, [], "f1e1", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"],
    +  "share-square": [576, 512, [], "f14d", "M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"],
    +  "shekel-sign": [448, 512, [], "f20b", "M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"],
    +  "shield-alt": [512, 512, [], "f3ed", "M496 128c0 221.282-135.934 344.645-221.539 380.308a48 48 0 0 1-36.923 0C130.495 463.713 16 326.487 16 128a48 48 0 0 1 29.539-44.308l192-80a48 48 0 0 1 36.923 0l192 80A48 48 0 0 1 496 128zM256 446.313l.066.034c93.735-46.689 172.497-156.308 175.817-307.729L256 65.333v380.98z"],
    +  "ship": [640, 512, [], "f21a", "M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"],
    +  "shipping-fast": [640, 512, [], "f48b", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],
    +  "shoe-prints": [640, 512, [], "f54b", "M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"],
    +  "shopping-bag": [448, 512, [], "f290", "M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"],
    +  "shopping-basket": [576, 512, [], "f291", "M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"],
    +  "shopping-cart": [576, 512, [], "f07a", "M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"],
    +  "shower": [512, 512, [], "f2cc", "M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z"],
    +  "shuttle-van": [640, 512, [], "f5b6", "M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"],
    +  "sign": [512, 512, [], "f4d9", "M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"],
    +  "sign-in-alt": [512, 512, [], "f2f6", "M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"],
    +  "sign-language": [448, 512, [], "f2a7", "M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"],
    +  "sign-out-alt": [512, 512, [], "f2f5", "M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"],
    +  "signal": [640, 512, [], "f012", "M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"],
    +  "signature": [512, 512, [], "f5b7", "M496 320h-91.86c-9.27 0-19.72-11.31-25.78-28.52-15.23-43.36-48.11-70.3-85.8-70.3-30.84 0-58.47 18.05-76.11 49.23L194.8 106.5C188.84 81.08 169.34 64 146.28 64c-23.05 0-42.55 17.08-48.5 42.5L56.16 284.2C50.7 307.45 37.75 320 28.33 320H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h12.33c41.97 0 78.19-34.23 90.14-85.2l23.84-101.78 29.25 222.11c1.98 15.05 13.82 27.45 28.94 28.75.99.09 1.96.13 2.93.13 14.08 0 26.64-9.27 30.69-22.95l33.03-112.34c5.88-16.72 15.84-27.52 25.41-27.52 9.58 0 19.55 10.8 25.78 28.52 15.23 43.36 48.11 70.3 85.8 70.3H496c8.84 0 16-7.16 16-16v-32c0-8.86-7.16-16.02-16-16.02z"],
    +  "sitemap": [640, 512, [], "f0e8", "M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],
    +  "skull": [512, 512, [], "f54c", "M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"],
    +  "skull-crossbones": [448, 512, [], "f714", "M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"],
    +  "slash": [640, 512, [], "f715", "M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"],
    +  "sliders-h": [512, 512, [], "f1de", "M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"],
    +  "smile": [496, 512, [], "f118", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"],
    +  "smile-beam": [496, 512, [], "f5b8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"],
    +  "smile-wink": [496, 512, [], "f4da", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"],
    +  "smoking": [640, 512, [], "f48d", "M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"],
    +  "smoking-ban": [512, 512, [], "f54d", "M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"],
    +  "snowflake": [448, 512, [], "f2dc", "M444.816 301.639a24.12 24.12 0 0 0 2.661-16.978c-2.725-12.966-15.339-21.245-28.174-18.492l-87.407 25.046L264 256l67.896-35.215 87.407 25.046c12.835 2.753 25.449-5.526 28.174-18.492 2.725-12.966-5.471-25.708-18.305-28.461l-47.477-7.137 53.077-30.956c11.363-6.627 15.257-21.306 8.696-32.785-6.561-11.479-21.091-15.412-32.454-8.785l-53.077 30.956 17.621-45.104c4.057-12.606-2.768-26.146-15.247-30.245-12.478-4.099-25.883 2.797-29.94 15.402l-22.232 88.99-60.38 35.215V144l65.175-63.945c8.778-9.852 7.987-25.027-1.766-33.894-9.753-8.867-24.775-8.068-33.552 1.784l-29.857 37.967V24c0-13.255-10.637-24-23.758-24s-23.758 10.745-23.758 24v61.912l-29.857-37.967c-8.779-9.852-23.799-10.652-33.552-1.784-9.753 8.867-10.543 24.042-1.766 33.894L200.242 144v70.431l-60.38-35.215-22.232-88.99c-4.057-12.605-17.462-19.501-29.94-15.402-12.478 4.099-19.304 17.64-15.247 30.245l17.62 45.104-53.077-30.956c-11.363-6.627-25.893-2.694-32.454 8.785s-2.667 26.157 8.696 32.785l53.077 30.956-47.477 7.137C5.993 201.634-2.203 214.375.523 227.341c2.725 12.965 15.339 21.245 28.174 18.492l87.407-25.046L184 256l-67.896 35.215-87.406-25.045c-12.835-2.753-25.449 5.526-28.174 18.492-2.725 12.967 5.47 25.708 18.305 28.461l47.477 7.137-53.077 30.956C1.866 357.843-2.027 372.521 4.533 384s21.091 15.412 32.454 8.785l53.077-30.956-17.62 45.104a24.157 24.157 0 0 0 2.022 19.428c2.831 4.953 7.416 8.909 13.224 10.816 12.478 4.099 25.883-2.797 29.94-15.402l22.232-88.99 60.38-35.215V368l-65.175 63.945c-8.778 9.852-7.987 25.027 1.766 33.894 9.754 8.868 24.774 8.068 33.552-1.784l29.857-37.967V488c0 13.255 10.637 24 23.758 24s23.758-10.745 23.758-24v-61.912l29.857 37.967A23.59 23.59 0 0 0 295.282 472a23.534 23.534 0 0 0 15.885-6.161c9.753-8.867 10.544-24.042 1.766-33.894L247.758 368v-70.431l60.38 35.215 22.232 88.99c4.057 12.605 17.462 19.501 29.94 15.402 12.479-4.099 19.304-17.64 15.247-30.245l-17.621-45.104 53.077 30.956c11.363 6.627 25.893 2.694 32.454-8.785s2.667-26.157-8.696-32.785l-53.077-30.956 47.477-7.137c6.86-1.469 12.394-5.793 15.645-11.481z"],
    +  "socks": [512, 512, [], "f696", "M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"],
    +  "solar-panel": [640, 512, [], "f5ba", "M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"],
    +  "sort": [320, 512, [], "f0dc", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"],
    +  "sort-alpha-down": [448, 512, [], "f15d", "M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zm119.075-180.007A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"],
    +  "sort-alpha-up": [448, 512, [], "f15e", "M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zm301.671 98.621A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"],
    +  "sort-amount-down": [512, 512, [], "f160", "M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"],
    +  "sort-amount-up": [512, 512, [], "f161", "M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"],
    +  "sort-down": [320, 512, [], "f0dd", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"],
    +  "sort-numeric-down": [448, 512, [], "f162", "M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM175.984 368H128V48c0-8.837-7.163-16-16-16H80c-8.837 0-16 7.163-16 16v320H16.019c-14.212 0-21.384 17.244-11.314 27.314l79.981 80.002c6.245 6.245 16.38 6.247 22.627 0l79.984-80.002c10.05-10.05 2.928-27.314-11.313-27.314z"],
    +  "sort-numeric-up": [448, 512, [], "f163", "M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM16.016 144H64v320c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144h47.981c14.212 0 21.384-17.244 11.314-27.314l-79.981-80.002c-6.245-6.245-16.38-6.247-22.627 0L4.702 116.686C-5.347 126.736 1.775 144 16.016 144z"],
    +  "sort-up": [320, 512, [], "f0de", "M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"],
    +  "spa": [576, 512, [], "f5bb", "M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"],
    +  "space-shuttle": [640, 512, [], "f197", "M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"],
    +  "spider": [576, 512, [], "f717", "M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"],
    +  "spinner": [512, 512, [], "f110", "M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"],
    +  "splotch": [512, 512, [], "f5bc", "M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"],
    +  "spray-can": [512, 512, [], "f5bd", "M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],
    +  "square": [448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],
    +  "square-full": [512, 512, [], "f45c", "M512 512H0V0h512v512z"],
    +  "square-root-alt": [576, 512, [], "f698", "M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"],
    +  "stamp": [512, 512, [], "f5bf", "M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"],
    +  "star": [576, 512, [], "f005", "M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"],
    +  "star-and-crescent": [512, 512, [], "f699", "M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"],
    +  "star-half": [576, 512, [], "f089", "M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"],
    +  "star-half-alt": [536, 512, [], "f5c0", "M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"],
    +  "star-of-david": [464, 512, [], "f69a", "M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"],
    +  "star-of-life": [480, 512, [], "f621", "M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"],
    +  "step-backward": [448, 512, [], "f048", "M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"],
    +  "step-forward": [448, 512, [], "f051", "M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"],
    +  "stethoscope": [512, 512, [], "f0f1", "M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],
    +  "sticky-note": [448, 512, [], "f249", "M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"],
    +  "stop": [448, 512, [], "f04d", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],
    +  "stop-circle": [512, 512, [], "f28d", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"],
    +  "stopwatch": [448, 512, [], "f2f2", "M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"],
    +  "store": [616, 512, [], "f54e", "M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"],
    +  "store-alt": [640, 512, [], "f54f", "M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"],
    +  "stream": [512, 512, [], "f550", "M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"],
    +  "street-view": [512, 512, [], "f21d", "M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"],
    +  "strikethrough": [512, 512, [], "f0cc", "M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z"],
    +  "stroopwafel": [512, 512, [], "f551", "M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"],
    +  "subscript": [512, 512, [], "f12c", "M395.198 416c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 256c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 96H16C7.163 96 0 88.837 0 80V48c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035A15.999 15.999 0 0 1 204.226 32H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 256H272z"],
    +  "subway": [448, 512, [], "f239", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"],
    +  "suitcase": [512, 512, [], "f0f2", "M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"],
    +  "suitcase-rolling": [384, 512, [], "f5c1", "M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"],
    +  "sun": [512, 512, [], "f185", "M274.835 12.646l25.516 62.393c4.213 10.301 16.671 14.349 26.134 8.492l57.316-35.479c15.49-9.588 34.808 4.447 30.475 22.142l-16.03 65.475c-2.647 10.81 5.053 21.408 16.152 22.231l67.224 4.987c18.167 1.348 25.546 24.057 11.641 35.826L441.81 242.26c-8.495 7.19-8.495 20.289 0 27.479l51.454 43.548c13.906 11.769 6.527 34.478-11.641 35.826l-67.224 4.987c-11.099.823-18.799 11.421-16.152 22.231l16.03 65.475c4.332 17.695-14.986 31.73-30.475 22.142l-57.316-35.479c-9.463-5.858-21.922-1.81-26.134 8.492l-25.516 62.393c-6.896 16.862-30.774 16.862-37.67 0l-25.516-62.393c-4.213-10.301-16.671-14.349-26.134-8.492l-57.317 35.479c-15.49 9.588-34.808-4.447-30.475-22.142l16.03-65.475c2.647-10.81-5.053-21.408-16.152-22.231l-67.224-4.987c-18.167-1.348-25.546-24.057-11.641-35.826L70.19 269.74c8.495-7.19 8.495-20.289 0-27.479l-51.454-43.548c-13.906-11.769-6.527-34.478 11.641-35.826l67.224-4.987c11.099-.823 18.799-11.421 16.152-22.231l-16.03-65.475c-4.332-17.695 14.986-31.73 30.475-22.142l57.317 35.479c9.463 5.858 21.921 1.81 26.134-8.492l25.516-62.393c6.896-16.861 30.774-16.861 37.67 0zM392 256c0-74.991-61.01-136-136-136-74.991 0-136 61.009-136 136s61.009 136 136 136c74.99 0 136-61.009 136-136zm-32 0c0 57.346-46.654 104-104 104s-104-46.654-104-104 46.654-104 104-104 104 46.654 104 104z"],
    +  "superscript": [512, 512, [], "f12b", "M395.198 256c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 256H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035a16 16 0 0 1 13.598-7.567H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 416H272z"],
    +  "surprise": [496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "swatchbook": [511, 512, [], "f5c3", "M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z"],
    +  "swimmer": [640, 512, [], "f5c4", "M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"],
    +  "swimming-pool": [640, 512, [], "f5c5", "M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"],
    +  "synagogue": [640, 512, [], "f69b", "M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"],
    +  "sync": [512, 512, [], "f021", "M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z"],
    +  "sync-alt": [512, 512, [], "f2f1", "M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"],
    +  "syringe": [512, 512, [], "f48e", "M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"],
    +  "table": [512, 512, [], "f0ce", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"],
    +  "table-tennis": [512, 512, [], "f45d", "M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"],
    +  "tablet": [448, 512, [], "f10a", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],
    +  "tablet-alt": [448, 512, [], "f3fa", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"],
    +  "tablets": [640, 512, [], "f490", "M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"],
    +  "tachometer-alt": [576, 512, [], "f3fd", "M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "tag": [512, 512, [], "f02b", "M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"],
    +  "tags": [640, 512, [], "f02c", "M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"],
    +  "tape": [640, 512, [], "f4db", "M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"],
    +  "tasks": [512, 512, [], "f0ae", "M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z"],
    +  "taxi": [512, 512, [], "f1ba", "M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "teeth": [640, 512, [], "f62e", "M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"],
    +  "teeth-open": [640, 512, [], "f62f", "M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"],
    +  "terminal": [640, 512, [], "f120", "M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"],
    +  "text-height": [576, 512, [], "f034", "M16 32h288c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96h-54.761v320H232c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H88c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm475.308 4.685l79.995 80.001C581.309 126.693 574.297 144 559.99 144H512v224h48c15.639 0 20.635 17.991 11.313 27.314l-79.995 80.001c-6.247 6.247-16.381 6.245-22.626 0l-79.995-80.001C378.691 385.307 385.703 368 400.01 368H448V144h-48c-15.639 0-20.635-17.991-11.313-27.314l79.995-80.001c6.247-6.248 16.381-6.245 22.626 0z"],
    +  "text-width": [448, 512, [], "f035", "M16 32h416c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96H261.743v128H296c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H152c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm427.315 340.682l-80.001-79.995C353.991 283.365 336 288.362 336 304v48H112v-47.99c0-14.307-17.307-21.319-27.314-11.313L4.685 372.692c-6.245 6.245-6.247 16.379 0 22.626l80.001 79.995C94.009 484.635 112 479.638 112 464v-48h224v47.99c0 14.307 17.307 21.319 27.314 11.313l80.001-79.995c6.245-6.245 6.248-16.379 0-22.626z"],
    +  "th": [512, 512, [], "f00a", "M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"],
    +  "th-large": [512, 512, [], "f009", "M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"],
    +  "th-list": [512, 512, [], "f00b", "M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"],
    +  "theater-masks": [640, 512, [], "f630", "M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"],
    +  "thermometer": [512, 512, [], "f491", "M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"],
    +  "thermometer-empty": [256, 512, [], "f2cb", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],
    +  "thermometer-full": [256, 512, [], "f2c7", "M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"],
    +  "thermometer-half": [256, 512, [], "f2c9", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],
    +  "thermometer-quarter": [256, 512, [], "f2ca", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],
    +  "thermometer-three-quarters": [256, 512, [], "f2c8", "M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],
    +  "thumbs-down": [512, 512, [], "f165", "M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"],
    +  "thumbs-up": [512, 512, [], "f164", "M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"],
    +  "thumbtack": [384, 512, [], "f08d", "M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"],
    +  "ticket-alt": [576, 512, [], "f3ff", "M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"],
    +  "times": [352, 512, [], "f00d", "M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"],
    +  "times-circle": [512, 512, [], "f057", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"],
    +  "tint": [352, 512, [], "f043", "M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"],
    +  "tint-slash": [640, 512, [], "f5c7", "M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"],
    +  "tired": [496, 512, [], "f5c8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"],
    +  "toggle-off": [576, 512, [], "f204", "M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"],
    +  "toggle-on": [576, 512, [], "f205", "M576 256c0 106.039-85.961 192-192 192H192C85.961 448 0 362.039 0 256S85.961 64 192 64h192c106.039 0 192 85.961 192 192zM384 128c-70.741 0-128 57.249-128 128 0 70.741 57.249 128 128 128 70.741 0 128-57.249 128-128 0-70.741-57.249-128-128-128"],
    +  "toilet-paper": [576, 512, [], "f71e", "M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"],
    +  "toolbox": [512, 512, [], "f552", "M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"],
    +  "tooth": [448, 512, [], "f5c9", "M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"],
    +  "torah": [448, 512, [], "f6a0", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM139.11 141.21c-2.77-4.41.4-10.14 5.6-10.14h53.08c.9 0 1.73-.46 2.21-1.22l34.4-54.76c2.6-4.13 8.61-4.13 11.21 0l34.4 54.76a2.61 2.61 0 0 0 2.21 1.22h53.08c5.2 0 8.37 5.73 5.6 10.14L314.01 184l26.88 42.79c2.77 4.4-.4 10.13-5.6 10.13h-53.08c-.9 0-1.73.46-2.21 1.22l-34.4 54.76c-2.6 4.13-8.61 4.13-11.21 0L200 238.15a2.61 2.61 0 0 0-2.21-1.22h-53.08c-5.2 0-8.37-5.73-5.6-10.13l26.88-42.8-26.88-42.79zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],
    +  "torii-gate": [512, 512, [], "f6a1", "M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"],
    +  "tractor": [640, 512, [], "f722", "M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"],
    +  "trademark": [640, 512, [], "f25c", "M97.119 163.133H12c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h248.559c6.627 0 12 5.373 12 12v43.133c0 6.627-5.373 12-12 12H175.44V404c0 6.627-5.373 12-12 12h-54.322c-6.627 0-12-5.373-12-12V163.133zM329.825 96h65.425a12 12 0 0 1 11.346 8.093l43.759 127.068c7.161 20.588 16.111 52.812 16.111 52.812h.896s8.95-32.224 16.111-52.812l43.758-127.068A12 12 0 0 1 538.577 96h65.41a12 12 0 0 1 11.961 11.03l24.012 296c.567 6.987-4.951 12.97-11.961 12.97h-54.101a12 12 0 0 1-11.972-11.182l-9.082-132.93c-1.79-24.168 0-53.706 0-53.706h-.896s-10.741 33.566-17.902 53.706l-30.7 84.731a12 12 0 0 1-11.282 7.912h-50.302a12 12 0 0 1-11.282-7.912l-30.7-84.731c-7.161-20.14-17.903-53.706-17.903-53.706h-.895s1.79 29.538 0 53.706l-9.082 132.93c-.428 6.295-5.66 11.182-11.97 11.182H305.4c-7.017 0-12.536-5.994-11.959-12.987l24.425-296A11.999 11.999 0 0 1 329.825 96z"],
    +  "traffic-light": [384, 512, [], "f637", "M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"],
    +  "train": [448, 512, [], "f238", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"],
    +  "transgender": [384, 512, [], "f224", "M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "transgender-alt": [480, 512, [], "f225", "M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "trash": [448, 512, [], "f1f8", "M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm415.2 56.7L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32.8 140.7c-.4-6.9 5.1-12.7 12-12.7h358.5c6.8 0 12.3 5.8 11.9 12.7z"],
    +  "trash-alt": [448, 512, [], "f2ed", "M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"],
    +  "tree": [384, 512, [], "f1bb", "M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"],
    +  "trophy": [576, 512, [], "f091", "M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"],
    +  "truck": [640, 512, [], "f0d1", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],
    +  "truck-loading": [640, 512, [], "f4de", "M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],
    +  "truck-monster": [640, 512, [], "f63b", "M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"],
    +  "truck-moving": [640, 512, [], "f4df", "M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"],
    +  "truck-pickup": [640, 512, [], "f63c", "M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"],
    +  "tshirt": [640, 512, [], "f553", "M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"],
    +  "tty": [512, 512, [], "f1e4", "M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"],
    +  "tv": [640, 512, [], "f26c", "M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z"],
    +  "umbrella": [576, 512, [], "f0e9", "M557.011 267.631c-51.432-45.217-107.572-43.698-158.567 30.731-5.298 7.861-14.906 7.165-19.736 0-2.483-3.624-32.218-60.808-90.708-60.808-45.766 0-70.542 31.378-90.709 60.808-4.829 7.165-14.436 7.861-19.734 0-50.904-74.285-106.613-76.406-158.567-30.731-10.21 8.264-20.912-1.109-18.696-9.481C32.146 134.573 158.516 64.612 288.001 64.612c128.793 0 256.546 69.961 287.706 193.538 2.206 8.322-8.426 17.793-18.696 9.481zM256 261.001V416c0 17.645-14.355 32-32 32s-32-14.355-32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 52.935 43.065 96 96 96s96-43.065 96-96V261.288c-21.836-10.806-45.425-9.737-64-.287zm64-211.007V32c0-17.673-14.327-32-32-32s-32 14.327-32 32v17.987a372.105 372.105 0 0 1 64 .007z"],
    +  "umbrella-beach": [640, 512, [], "f5ca", "M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"],
    +  "underline": [448, 512, [], "f0cd", "M224.264 388.24c-91.669 0-156.603-51.165-156.603-151.392V64H39.37c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h137.39c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.813v172.848c0 53.699 28.314 79.444 76.317 79.444 46.966 0 75.796-25.434 75.796-79.965V64h-28.291c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h136.868c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.291v172.848c0 99.405-64.881 151.392-156.082 151.392zM16 448h416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16z"],
    +  "undo": [512, 512, [], "f0e2", "M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"],
    +  "undo-alt": [512, 512, [], "f2ea", "M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"],
    +  "universal-access": [512, 512, [], "f29a", "M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"],
    +  "university": [512, 512, [], "f19c", "M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"],
    +  "unlink": [512, 512, [], "f127", "M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"],
    +  "unlock": [448, 512, [], "f09c", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"],
    +  "unlock-alt": [448, 512, [], "f13e", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"],
    +  "upload": [512, 512, [], "f093", "M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"],
    +  "user": [448, 512, [], "f007", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],
    +  "user-alt": [512, 512, [], "f406", "M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"],
    +  "user-alt-slash": [640, 512, [], "f4fa", "M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"],
    +  "user-astronaut": [448, 512, [], "f4fb", "M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"],
    +  "user-check": [640, 512, [], "f4fc", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"],
    +  "user-circle": [496, 512, [], "f2bd", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"],
    +  "user-clock": [640, 512, [], "f4fd", "M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"],
    +  "user-cog": [640, 512, [], "f4fe", "M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"],
    +  "user-edit": [640, 512, [], "f4ff", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"],
    +  "user-friends": [640, 512, [], "f500", "M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"],
    +  "user-graduate": [448, 512, [], "f501", "M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"],
    +  "user-injured": [448, 512, [], "f728", "M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"],
    +  "user-lock": [640, 512, [], "f502", "M320 320c0-11.1 3.1-21.4 8.1-30.5-4.8-.5-9.5-1.5-14.5-1.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h280.9c-5.5-9.5-8.9-20.3-8.9-32V320zm-96-64c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm384 32h-32v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80v48h-32c-17.7 0-32 14.3-32 32v160c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zm-80 0h-64v-48c0-17.6 14.4-32 32-32s32 14.4 32 32v48z"],
    +  "user-md": [448, 512, [], "f0f0", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"],
    +  "user-minus": [640, 512, [], "f503", "M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],
    +  "user-ninja": [448, 512, [], "f504", "M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"],
    +  "user-plus": [640, 512, [], "f234", "M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],
    +  "user-secret": [448, 512, [], "f21b", "M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"],
    +  "user-shield": [640, 512, [], "f505", "M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"],
    +  "user-slash": [640, 512, [], "f506", "M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"],
    +  "user-tag": [640, 512, [], "f507", "M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"],
    +  "user-tie": [448, 512, [], "f508", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"],
    +  "user-times": [640, 512, [], "f235", "M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],
    +  "users": [640, 512, [], "f0c0", "M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"],
    +  "users-cog": [640, 512, [], "f509", "M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"],
    +  "utensil-spoon": [512, 512, [], "f2e5", "M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"],
    +  "utensils": [416, 512, [], "f2e7", "M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"],
    +  "vector-square": [512, 512, [], "f5cb", "M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"],
    +  "venus": [288, 512, [], "f221", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"],
    +  "venus-double": [512, 512, [], "f226", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"],
    +  "venus-mars": [576, 512, [], "f228", "M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],
    +  "vial": [480, 512, [], "f492", "M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"],
    +  "vials": [640, 512, [], "f493", "M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"],
    +  "video": [576, 512, [], "f03d", "M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"],
    +  "video-slash": [640, 512, [], "f4e2", "M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"],
    +  "vihara": [640, 512, [], "f6a7", "M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"],
    +  "volleyball-ball": [495, 512, [], "f45f", "M223.3 243.4c-.9-37-8.6-72.8-22.7-105.7-90.8 42.4-157.5 122.4-180.3 216.8 13.4 30.8 32.9 58.3 56.9 81.1 22.7-79.2 74.2-147.8 146.1-192.2zM186.4 109c-15-26.4-34.5-50.1-57.4-70.7C38 88.1-15.8 191.2 4 300.5c33.4-83.1 98.4-152 182.4-191.5zM374 274.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5 57.3 59.3 91 138.2 93.5 222.7 32.5 17.7 67.3 29 102.9 33.2zm-124.7 9.5c-31.6 19.3-58.7 43.9-80.2 72.6 82 57.3 184.5 75.1 277.5 47.8 19.7-26.4 34.2-56.8 42.2-89.9-26.6 6.6-53.7 10.4-80.9 10.4-54.6-.1-108.9-14.1-158.6-40.9zM151 383.3c-15.2 26-25.7 54.4-32.1 84.2 37.6 23 81.7 36.5 129.1 36.5 61 0 116.7-22.1 159.9-58.6C295 461.5 204.6 420.6 151 383.3zM331.3 22.7c55.3 70.4 82.5 161.2 74.6 253.6 30.3.2 60.5-4.8 89.7-14.2 0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"],
    +  "volume-down": [384, 512, [], "f027", "M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"],
    +  "volume-mute": [512, 512, [], "f6a9", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"],
    +  "volume-off": [257, 512, [], "f026", "M216.36 71.04L127.39 160H25.33c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.47-25.96-31.98-40.97-16.98z"],
    +  "volume-up": [576, 512, [], "f028", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"],
    +  "walking": [320, 512, [], "f554", "M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"],
    +  "wallet": [512, 512, [], "f555", "M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],
    +  "warehouse": [640, 512, [], "f494", "M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"],
    +  "weight": [512, 512, [], "f496", "M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"],
    +  "weight-hanging": [512, 512, [], "f5cd", "M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"],
    +  "wheelchair": [512, 512, [], "f193", "M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"],
    +  "wifi": [640, 512, [], "f1eb", "M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"],
    +  "wind": [512, 512, [], "f72e", "M156.66 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h142.19c15.95 0 30.77 10.85 33.37 26.58C194.86 366.6 179.42 384 160 384c-14.11 0-26.13-9.19-30.37-21.9-2.11-6.31-8.6-10.1-15.25-10.1H81.63c-9.8 0-17.73 8.81-15.86 18.43C74.39 414.58 113.37 448 160 448c57.09 0 102.7-50.09 95.19-108.63-6.21-48.39-49.74-83.37-98.53-83.37zM16 224h336c59.7 0 106.83-54.76 93.83-116.69-7.61-36.23-36.91-65.53-73.14-73.14-55.44-11.64-105.13 24.91-114.93 75.53-1.86 9.57 6.09 18.3 15.84 18.3h32.8c6.65 0 13.14-3.79 15.25-10.1C325.88 105.19 337.89 96 352 96c19.42 0 34.86 17.39 31.55 37.41-2.6 15.73-17.42 26.59-33.37 26.59H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm384 32H243.68c19.34 16.57 33.19 38.79 39.77 64H400c26.47 0 48 21.53 48 48s-21.53 48-48 48c-17.86 0-33.33-9.86-41.56-24.38-2.85-5.03-8.69-7.62-14.47-7.62h-33.82c-10.91 0-18.96 10.81-15.35 21.1 17.77 50.6 70.54 84.75 129.41 72.35 41.22-8.69 75.1-41.65 84.67-82.68C525.98 321.46 470.48 256 400 256z"],
    +  "window-close": [512, 512, [], "f410", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"],
    +  "window-maximize": [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"],
    +  "window-minimize": [512, 512, [], "f2d1", "M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"],
    +  "window-restore": [512, 512, [], "f2d2", "M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"],
    +  "wine-bottle": [512, 512, [], "f72f", "M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"],
    +  "wine-glass": [288, 512, [], "f4e3", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"],
    +  "wine-glass-alt": [288, 512, [], "f5ce", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"],
    +  "won-sign": [576, 512, [], "f159", "M564 192c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-48.028l18.572-80.61c1.732-7.518-3.978-14.694-11.693-14.694h-46.107a11.998 11.998 0 0 0-11.736 9.5L450.73 128H340.839l-19.725-85.987a12 12 0 0 0-11.696-9.317H265.43a12 12 0 0 0-11.687 9.277L233.696 128H124.975L107.5 42.299a12 12 0 0 0-11.758-9.602H53.628c-7.686 0-13.39 7.124-11.709 14.624L60 128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h62.342l7.171 32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h83.856l40.927 182.624A12 12 0 0 0 148.492 480h56.767c5.583 0 10.428-3.85 11.689-9.288L259.335 288h55.086l42.386 182.712A12 12 0 0 0 368.496 480h56.826a12 12 0 0 0 11.694-9.306L479.108 288H564c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-70.146l7.373-32H564zm-425.976 0h80.757l-7.457 32h-66.776l-6.524-32zm45.796 150.029c-6.194 25.831-6.758 47.25-7.321 47.25h-1.126s-1.689-22.05-6.758-47.25L157.599 288h38.812l-12.591 54.029zM274.182 224l1.996-8.602c1.856-7.962 3.457-15.968 4.803-23.398h11.794c1.347 7.43 2.947 15.436 4.803 23.398l1.996 8.602h-25.392zm130.959 118.029c-5.068 25.2-6.758 47.25-6.758 47.25h-1.126c-.563 0-1.126-21.42-7.321-47.25L377.542 288h39.107l-11.508 54.029zM430.281 224h-67.42l-7.34-32h81.577l-6.817 32z"],
    +  "wrench": [512, 512, [], "f0ad", "M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],
    +  "x-ray": [640, 512, [], "f497", "M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"],
    +  "yen-sign": [384, 512, [], "f157", "M351.208 32h-65.277a12 12 0 0 0-10.778 6.724l-55.39 113.163c-14.513 34.704-27.133 71.932-27.133 71.932h-1.262s-12.62-37.228-27.133-71.932l-55.39-113.163A11.997 11.997 0 0 0 98.068 32H32.792c-9.057 0-14.85 9.65-10.59 17.643L102.322 200H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h88.162L152 293.228V320H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h108v92c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-92h108c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H232v-26.772L251.838 256H340c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12h-58.322l80.12-150.357C366.058 41.65 360.266 32 351.208 32z"],
    +  "yin-yang": [496, 512, [], "f6ad", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]
    +};
    +
    +bunker(function () {
    +  define('fas', icons);
    +});
    +
    +}());
    diff --git a/htdocs/theme/common/fontawesome-5/js/solid.min.js b/htdocs/theme/common/fontawesome-5/js/solid.min.js
    new file mode 100644
    index 00000000000..854ebf456dd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/solid.min.js
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +!function(){"use strict";var c={};try{"undefined"!=typeof window&&(c=window)}catch(c){}var h=(c.navigator||{}).userAgent,v=void 0===h?"":h,l=c,z=(~v.indexOf("MSIE")||v.indexOf("Trident/"),"___FONT_AWESOME___"),s=function(){try{return!0}catch(c){return!1}}(),M=[1,2,3,4,5,6,7,8,9,10],m=M.concat([11,12,13,14,15,16,17,18,19,20]);["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter"].concat(M.map(function(c){return c+"x"})).concat(m.map(function(c){return"w-"+c}));var H=l||{};H[z]||(H[z]={}),H[z].styles||(H[z].styles={}),H[z].hooks||(H[z].hooks={}),H[z].shims||(H[z].shims=[]);var V=H[z],a=Object.assign||function(c){for(var h=1;h<arguments.length;h++){var v=arguments[h];for(var l in v)Object.prototype.hasOwnProperty.call(v,l)&&(c[l]=v[l])}return c};var C={ad:[512,512,[],"f641","M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"],"address-book":[448,512,[],"f2b9","M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],"address-card":[576,512,[],"f2bb","M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"],adjust:[512,512,[],"f042","M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"],"air-freshener":[384,512,[],"f5d0","M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z"],"align-center":[448,512,[],"f037","M352 44v40c0 8.837-7.163 16-16 16H112c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h224c8.837 0 16 7.163 16 16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm320-200H112c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"],"align-justify":[448,512,[],"f039","M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm16 144h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0-128h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],"align-left":[448,512,[],"f036","M288 44v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16zM0 172v40c0 8.837 7.163 16 16 16h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16zm16 312h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm256-200H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"],"align-right":[448,512,[],"f038","M160 84V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H176c-8.837 0-16-7.163-16-16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],allergies:[448,512,[],"f461","M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],ambulance:[640,512,[],"f0f9","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],"american-sign-language-interpreting":[640,512,[],"f2a3","M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"],anchor:[576,512,[],"f13d","M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"],"angle-double-down":[320,512,[],"f103","M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"],"angle-double-left":[448,512,[],"f100","M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"],"angle-double-right":[448,512,[],"f101","M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"],"angle-double-up":[320,512,[],"f102","M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"],"angle-down":[320,512,[],"f107","M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"],"angle-left":[256,512,[],"f104","M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"],"angle-right":[256,512,[],"f105","M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"],"angle-up":[320,512,[],"f106","M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"],angry:[496,512,[],"f556","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"],ankh:[320,512,[],"f644","M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"],"apple-alt":[448,512,[],"f5d1","M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"],archive:[512,512,[],"f187","M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"],archway:[576,512,[],"f557","M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"],"arrow-alt-circle-down":[512,512,[],"f358","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"],"arrow-alt-circle-left":[512,512,[],"f359","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"],"arrow-alt-circle-right":[512,512,[],"f35a","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"],"arrow-alt-circle-up":[512,512,[],"f35b","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"],"arrow-circle-down":[512,512,[],"f0ab","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"],"arrow-circle-left":[512,512,[],"f0a8","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"],"arrow-circle-right":[512,512,[],"f0a9","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"],"arrow-circle-up":[512,512,[],"f0aa","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"],"arrow-down":[448,512,[],"f063","M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"],"arrow-left":[448,512,[],"f060","M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"],"arrow-right":[448,512,[],"f061","M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"],"arrow-up":[448,512,[],"f062","M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"],"arrows-alt":[512,512,[],"f0b2","M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"],"arrows-alt-h":[512,512,[],"f337","M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"],"arrows-alt-v":[256,512,[],"f338","M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"],"assistive-listening-systems":[512,512,[],"f2a2","M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"],asterisk:[512,512,[],"f069","M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"],at:[512,512,[],"f1fa","M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"],atlas:[448,512,[],"f558","M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"],atom:[448,512,[],"f5d2","M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],"audio-description":[512,512,[],"f29e","M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"],award:[384,512,[],"f559","M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"],backspace:[640,512,[],"f55a","M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"],backward:[512,512,[],"f04a","M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"],"balance-scale":[640,512,[],"f24e","M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],ban:[512,512,[],"f05e","M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"],"band-aid":[640,512,[],"f462","M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"],barcode:[512,512,[],"f02a","M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"],bars:[448,512,[],"f0c9","M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],"baseball-ball":[496,512,[],"f433","M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"],"basketball-ball":[496,512,[],"f434","M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"],bath:[512,512,[],"f2cd","M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"],"battery-empty":[640,512,[],"f244","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"],"battery-full":[640,512,[],"f240","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"],"battery-half":[640,512,[],"f242","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"],"battery-quarter":[640,512,[],"f243","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"],"battery-three-quarters":[640,512,[],"f241","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"],bed:[640,512,[],"f236","M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"],beer:[448,512,[],"f0fc","M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"],bell:[448,512,[],"f0f3","M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"],"bell-slash":[640,512,[],"f1f6","M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"],"bezier-curve":[640,512,[],"f55b","M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],bible:[448,512,[],"f647","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],bicycle:[640,512,[],"f206","M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"],binoculars:[512,512,[],"f1e5","M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"],"birthday-cake":[448,512,[],"f1fd","M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"],blender:[512,512,[],"f517","M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"],"blender-phone":[576,512,[],"f6b6","M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],blind:[384,512,[],"f29d","M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"],bold:[384,512,[],"f032","M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z"],bolt:[320,512,[],"f0e7","M295.973 160H180.572L215.19 30.184C219.25 14.956 207.756 0 192 0H56C43.971 0 33.8 8.905 32.211 20.828l-31.996 240C-1.704 275.217 9.504 288 24.004 288h118.701L96.646 482.466C93.05 497.649 104.659 512 119.992 512c8.35 0 16.376-4.374 20.778-11.978l175.973-303.997c9.244-15.967-2.288-36.025-20.77-36.025z"],bomb:[512,512,[],"f1e2","M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"],bone:[640,512,[],"f5d7","M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"],bong:[448,512,[],"f55c","M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"],book:[448,512,[],"f02d","M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"],"book-dead":[448,512,[],"f6b7","M272 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.18 0 80 28.65 80 64 0 20.87-12.68 39.23-32 50.91V184c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-13.09c-19.32-11.68-32-30.04-32-50.91 0-35.35 35.82-64 80-64zM129.05 233.85a7.996 7.996 0 0 1-4.2-10.5l6.29-14.7a7.995 7.995 0 0 1 10.51-4.2L240 246.6l98.35-42.15c4.06-1.74 8.77.14 10.51 4.2l6.29 14.7a7.996 7.996 0 0 1-4.2 10.5L280.6 264l70.34 30.15a7.996 7.996 0 0 1 4.2 10.5l-6.29 14.7a8.008 8.008 0 0 1-10.51 4.21L240 281.4l-98.35 42.15a8.003 8.003 0 0 1-10.51-4.21l-6.29-14.7a7.996 7.996 0 0 1 4.2-10.5L199.4 264l-70.35-30.15zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64zM208 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16z"],"book-open":[576,512,[],"f518","M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"],"book-reader":[512,512,[],"f5da","M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"],bookmark:[384,512,[],"f02e","M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"],"bowling-ball":[496,512,[],"f436","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],box:[512,512,[],"f466","M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"],"box-open":[640,512,[],"f49e","M53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9zm585.1 102.8L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9z"],boxes:[576,512,[],"f468","M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"],braille:[640,512,[],"f2a1","M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"],brain:[576,512,[],"f5dc","M208 0c-29.87 0-54.74 20.55-61.8 48.22-.75-.02-1.45-.22-2.2-.22-35.34 0-64 28.65-64 64 0 4.84.64 9.51 1.66 14.04C52.54 138 32 166.57 32 200c0 12.58 3.16 24.32 8.34 34.91C16.34 248.72 0 274.33 0 304c0 33.34 20.42 61.88 49.42 73.89-.9 4.57-1.42 9.28-1.42 14.11 0 39.76 32.23 72 72 72 4.12 0 8.1-.55 12.03-1.21C141.61 491.31 168.25 512 200 512c39.77 0 72-32.24 72-72V205.45c-10.91 8.98-23.98 15.45-38.36 18.39-4.97 1.02-9.64-2.82-9.64-7.89v-16.18c0-3.57 2.35-6.78 5.8-7.66 24.2-6.16 42.2-27.95 42.2-54.04V64c0-35.35-28.66-64-64-64zm368 304c0-29.67-16.34-55.28-40.34-69.09 5.17-10.59 8.34-22.33 8.34-34.91 0-33.43-20.54-62-49.66-73.96 1.02-4.53 1.66-9.2 1.66-14.04 0-35.35-28.66-64-64-64-.75 0-1.45.2-2.2.22C422.74 20.55 397.87 0 368 0c-35.34 0-64 28.65-64 64v74.07c0 26.09 17.99 47.88 42.2 54.04 3.46.88 5.8 4.09 5.8 7.66v16.18c0 5.07-4.68 8.91-9.64 7.89-14.38-2.94-27.44-9.41-38.36-18.39V440c0 39.76 32.23 72 72 72 31.75 0 58.39-20.69 67.97-49.21 3.93.67 7.91 1.21 12.03 1.21 39.77 0 72-32.24 72-72 0-4.83-.52-9.54-1.42-14.11 29-12.01 49.42-40.55 49.42-73.89z"],briefcase:[512,512,[],"f0b1","M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"],"briefcase-medical":[512,512,[],"f469","M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"],"broadcast-tower":[640,512,[],"f519","M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"],broom:[640,512,[],"f51a","M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"],brush:[384,512,[],"f55d","M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"],bug:[512,512,[],"f188","M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"],building:[448,512,[],"f1ad","M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"],bullhorn:[576,512,[],"f0a1","M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"],bullseye:[496,512,[],"f140","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"],burn:[384,512,[],"f46a","M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"],bus:[512,512,[],"f207","M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"bus-alt":[512,512,[],"f55e","M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"business-time":[640,512,[],"f64a","M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"],calculator:[448,512,[],"f1ec","M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"],calendar:[448,512,[],"f133","M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"],"calendar-alt":[448,512,[],"f073","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z"],"calendar-check":[448,512,[],"f274","M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"],"calendar-minus":[448,512,[],"f272","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"],"calendar-plus":[448,512,[],"f271","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"],"calendar-times":[448,512,[],"f273","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"],camera:[512,512,[],"f030","M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"],"camera-retro":[512,512,[],"f083","M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"],campground:[640,512,[],"f6bb","M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"],cannabis:[512,512,[],"f55f","M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"],capsules:[576,512,[],"f46b","M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"],car:[512,512,[],"f1b9","M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"],"car-alt":[480,512,[],"f5de","M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"],"car-battery":[512,512,[],"f5df","M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"],"car-crash":[640,512,[],"f5e1","M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"],"car-side":[640,512,[],"f5e4","M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"],"caret-down":[320,512,[],"f0d7","M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"],"caret-left":[192,512,[],"f0d9","M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"],"caret-right":[192,512,[],"f0da","M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"],"caret-square-down":[448,512,[],"f150","M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"],"caret-square-left":[448,512,[],"f191","M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"],"caret-square-right":[448,512,[],"f152","M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"],"caret-square-up":[448,512,[],"f151","M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"],"caret-up":[320,512,[],"f0d8","M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"],"cart-arrow-down":[576,512,[],"f218","M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"],"cart-plus":[576,512,[],"f217","M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"],cat:[512,512,[],"f6be","M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],certificate:[512,512,[],"f0a3","M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"],chair:[448,512,[],"f6c0","M446.33 341.88l-10.67-32A31.996 31.996 0 0 0 405.3 288H42.69c-13.77 0-26 8.81-30.36 21.88l-10.67 32C-5.24 362.6 10.18 384 32.03 384H32v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h256v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-.03c21.85 0 37.27-21.4 30.36-42.12zM112 128c0-29.48 16.2-54.99 40-68.87V256h48V48h48v208h48V59.13c23.8 13.88 40 39.39 40 68.87v128h48V128C384 57.31 326.69 0 256 0h-64C121.31 0 64 57.31 64 128v128h48V128z"],chalkboard:[640,512,[],"f51b","M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],"chalkboard-teacher":[640,512,[],"f51c","M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"],"charging-station":[576,512,[],"f5e7","M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"],"chart-area":[512,512,[],"f1fe","M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"],"chart-bar":[512,512,[],"f080","M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],"chart-line":[512,512,[],"f201","M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"],"chart-pie":[544,512,[],"f200","M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"],check:[512,512,[],"f00c","M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"],"check-circle":[512,512,[],"f058","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"],"check-double":[512,512,[],"f560","M504.5 171.95l-36.2-36.41c-10-10.05-26.21-10.05-36.2 0L192 377.02 79.9 264.28c-10-10.06-26.21-10.06-36.2 0L7.5 300.69c-10 10.05-10 26.36 0 36.41l166.4 167.36c10 10.06 26.21 10.06 36.2 0l294.4-296.09c10-10.06 10-26.36 0-36.42zM166.57 282.71c6.84 7.02 18.18 7.02 25.21.18L403.85 72.62c7.02-6.84 7.02-18.18.18-25.21L362.08 5.29c-6.84-7.02-18.18-7.02-25.21-.18L179.71 161.19l-68.23-68.77c-6.84-7.02-18.18-7.02-25.2-.18l-42.13 41.77c-7.02 6.84-7.02 18.18-.18 25.2l122.6 123.5z"],"check-square":[448,512,[],"f14a","M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"],chess:[512,512,[],"f439","M199.821 217.633a6 6 0 0 1 6 6l-.001 20.766a6 6 0 0 1-6 6h-25.805c0 31.715-2.153 96.201 17.398 153.229H64.597C84.54 345.452 82.02 279.245 82.02 250.399H56.183a6 6 0 0 1-6-6l.002-20.766a6 6 0 0 1 6-6h143.636zM41.554 115.088l34.58 95.071h103.734l34.572-95.072c2.846-7.826-2.95-16.101-11.278-16.101H152v-30.22h21.57a6 6 0 0 0 6-6V40.383a6 6 0 0 0-6-6h-28.367V6a6 6 0 0 0-6-6H116.82a6 6 0 0 0-6 6v28.383H82.421a6 6 0 0 0-6 6v22.383a6 6 0 0 0 6 6H104v30.219H52.831c-8.328.001-14.124 8.276-11.277 16.103zM222.678 445.17v-28.067a6 6 0 0 0-6-6H39.322a6 6 0 0 0-6 6v28.067l-22.148 14.164a6 6 0 0 0-2.767 5.055V506a6 6 0 0 0 6 6h227.187a6 6 0 0 0 6-6v-41.612a6 6 0 0 0-2.767-5.055l-22.149-14.163zm90.578-144.225l24.88 16.963c.09 18.124-.167 63.904-11.905 114.522h147.526c-11.713-50.475-11.969-96.324-11.882-114.537l24.859-16.949a3.856 3.856 0 0 0 1.684-3.187v-69.901a3.857 3.857 0 0 0-3.857-3.857h-27.655a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.858-3.857h-52.918a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.857-3.857H315.43a3.857 3.857 0 0 0-3.857 3.857v69.901a3.855 3.855 0 0 0 1.683 3.188zm71.585 51.906c0-8.372 6.787-15.158 15.159-15.158s15.158 6.787 15.158 15.158v30.318h-30.317v-30.318zM504.62 470.059l-13.664-10.639v-15.552a3.857 3.857 0 0 0-3.857-3.857H312.915a3.857 3.857 0 0 0-3.857 3.857v15.552l-13.677 10.639a3.857 3.857 0 0 0-1.488 3.044v35.039a3.857 3.857 0 0 0 3.857 3.857h204.5a3.857 3.857 0 0 0 3.857-3.857v-35.04a3.859 3.859 0 0 0-1.487-3.043z"],"chess-bishop":[320,512,[],"f43a","M123.158 77.881C107.369 72.53 96 57.597 96 40c0-22.091 17.909-40 40-40h47.796c22.091 0 40 17.909 40 40 0 17.541-11.295 32.434-27.005 37.829 23.993 16.657 48.577 46.839 68.703 82.05L144.929 280.443a6 6 0 0 0 0 8.485l14.142 14.142a6 6 0 0 0 8.485 0L280.9 189.726c17.758 38.297 29.371 79.443 29.371 114.273 0 53.786-22.897 75.788-58.446 86.033V448H68.174v-57.97C32.631 379.784 9.739 357.781 9.739 304c0-78.029 58.281-187.766 113.419-226.119zM320 500v-24c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12z"],"chess-board":[512,512,[],"f43c","M256 256v64h-64v-64h64zm0-256h-64v64h64V0zm0 256h64v-64h-64v64zM384 0h-64v64h64V0zm0 512h64v-64h-64v64zm128-64v-64h-64v64h64zm-384 64h64v-64h-64v64zm0-512H64v64h64V0zm384 192v-64h-64v64h64zm0 128v-64h-64v64h64zM0 512h64v-64H0v64zM0 64v64h64V64H0zm0 128v64h64v-64H0zm0 128v64h64v-64H0zm256 192h64v-64h-64v64zm-64-128v64h64v-64h-64zm64-192v-64h-64v64h64zM64 384v64h64v-64H64zm64-128H64v64h64v-64zm256 128h64v-64h-64v64zM512 0h-64v64h64V0zM384 256h64v-64h-64v64zm0-192v64h64V64h-64zm-64 320v64h64v-64h-64zm-192-64v64h64v-64h-64zm128 0v64h64v-64h-64zm-64-128h-64v64h64v-64zm-64-64H64v64h64v-64zm192 192h64v-64h-64v64zM192 128V64h-64v64h64zm128 0V64h-64v64h64zm0 64h64v-64h-64v64z"],"chess-king":[448,512,[],"f43f","M416 476v24c0 6.627-5.373 12-12 12H44c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12zm-8.033-324H248v-48h50a6 6 0 0 0 6-6V62a6 6 0 0 0-6-6h-50V6a6 6 0 0 0-6-6h-36a6 6 0 0 0-6 6v50h-50a6 6 0 0 0-6 6v36a6 6 0 0 0 6 6h50v48H40.033c-27.574 0-46.879 27.244-37.738 53.259L87.582 448h272.836l85.287-242.741C454.846 179.244 435.541 152 407.967 152z"],"chess-knight":[384,512,[],"f441","M352 224v224H32v-46.557c0-30.302 17.12-58.003 44.223-71.554l57.243-28.622A48 48 0 0 0 160 258.334V208l-22.127 11.063a23.996 23.996 0 0 0-12.55 15.645l-11.835 47.338a12 12 0 0 1-7.185 8.231l-29.601 11.84a11.998 11.998 0 0 1-9.33-.176L7.126 275.167A12 12 0 0 1 0 264.201v-158.26c0-6.365 2.529-12.47 7.03-16.971L16 80 1.789 51.578A16.937 16.937 0 0 1 0 44c0-6.627 5.373-12 12-12h148c106.039 0 192 85.961 192 192zm20 240H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12zM52 128c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"],"chess-pawn":[320,512,[],"f443","M264 448H56s60-42.743 60-176H84c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h40.209C95.721 210.56 76 181.588 76 148c0-46.392 37.608-84 84-84s84 37.608 84 84c0 33.588-19.721 62.56-48.209 76H236c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12h-32c0 133.257 60 176 60 176zm28 16H28c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h264c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12z"],"chess-queen":[512,512,[],"f445","M436 512H76c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12zM255.579 0c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zm204.568 154.634c-5.768-3.045-12.916-.932-16.082 4.77-8.616 15.516-22.747 37.801-44.065 37.801-28.714 0-30.625-19.804-31.686-57.542-.183-6.492-5.501-11.664-11.995-11.664h-41.006c-5.175 0-9.754 3.328-11.388 8.238-8.89 26.709-26.073 40.992-47.925 40.992s-39.034-14.283-47.925-40.992c-1.634-4.91-6.213-8.238-11.388-8.238h-41.005c-6.495 0-11.813 5.174-11.995 11.667-1.052 37.642-2.934 57.539-31.688 57.539-20.691 0-33.817-20.224-44.425-38.025-3.266-5.48-10.258-7.431-15.899-4.453l-39.179 20.679a12 12 0 0 0-5.51 15.145L112 448h288l105.014-257.448a12 12 0 0 0-5.51-15.145l-39.357-20.773z"],"chess-rook":[384,512,[],"f447","M81.241 215.027C80.957 258.92 77.411 348.076 48 448h287.982c-29.4-99.604-32.936-188.912-33.221-232.975l45.418-42.312a11.998 11.998 0 0 0 3.82-8.78V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v44h-48V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v44H96V44c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v119.932c0 3.33 1.384 6.51 3.82 8.78l45.421 42.315zM160 256c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v64.004h-64V256zm224 220v24c0 6.627-5.373 12-12 12H12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12z"],"chevron-circle-down":[512,512,[],"f13a","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"],"chevron-circle-left":[512,512,[],"f137","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"],"chevron-circle-right":[512,512,[],"f138","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"],"chevron-circle-up":[512,512,[],"f139","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"],"chevron-down":[448,512,[],"f078","M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"],"chevron-left":[320,512,[],"f053","M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"],"chevron-right":[320,512,[],"f054","M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"],"chevron-up":[448,512,[],"f077","M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"],child:[384,512,[],"f1ae","M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"],church:[640,512,[],"f51d","M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"],circle:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"],"circle-notch":[512,512,[],"f1ce","M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"],city:[640,512,[],"f64f","M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"],clipboard:[384,512,[],"f328","M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"],"clipboard-check":[384,512,[],"f46c","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"],"clipboard-list":[384,512,[],"f46d","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"],clock:[512,512,[],"f017","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z"],clone:[512,512,[],"f24d","M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"],"closed-captioning":[512,512,[],"f20a","M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"],cloud:[640,512,[],"f0c2","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"],"cloud-download-alt":[640,512,[],"f381","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"],"cloud-moon":[640,512,[],"f6c3","M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.3 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm285.26-29.42c-104.23 19.22-199.95-58.16-199.95-160.03 0-58.68 32.45-112.64 85.18-141.7 8.13-4.48 6.08-16.41-3.15-18.06C497.14 1.17 484 0 470.84 0 352.25 0 256 93.04 256 208c0 7.26.4 14.44 1.15 21.51 9.87-3.38 20.18-5.51 30.85-5.51 52.94 0 96 43.06 96 96 0 3.59-.21 7.17-.63 10.73 33.49 15.39 57.47 46.55 63.24 83.86 7.96.87 16.03 1.41 24.23 1.41 66.26 0 126.79-29.19 166.88-77.02 5.93-7.07-.54-17.41-9.71-15.72z"],"cloud-sun":[640,512,[],"f6c4","M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.31 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm243.19-99.8c-7.85-6.79-7.85-18.97 0-25.76L633.41 186c12.76-11.05 5.84-32.02-11-33.3l-61.59-4.67c-10.19-.78-17.28-10.49-14.9-20.43l14.95-62.48c3.89-16.26-13.96-29.02-28.08-20.07l-52.51 33.26c-8.61 5.46-20.06 1.75-23.85-7.72l-23.47-58.74c-6.32-15.81-28.19-15.81-34.51 0l-23.38 58.49c-3.83 9.59-15.44 13.35-24.17 7.82l-52.29-33.12c-14.13-8.95-31.98 3.81-28.08 20.07l14.95 62.48c2.38 9.94-4.7 19.65-14.9 20.43l-61.15 4.64c-17 1.29-23.99 22.46-11.1 33.62l31.23 27.05c7.82 5.17 15.21 11.01 21.78 17.84 11.42-4.71 23.73-7.18 36.37-7.18 5.97 0 11.77.71 17.44 1.76 7.09-54.98 53.68-97.76 110.56-97.76 61.76 0 112 50.24 112 112s-50.24 112-112 112c-.95 0-1.83-.26-2.77-.28 13.83 13.2 24.61 29.47 30.16 48.28h27.02c6.25 0 12.37 1.83 17.6 5.27l45.08 29.68c14.19 8.99 31.89-4.17 27.92-20.76l-14.69-61.38c-2.43-10.16 4.8-20.08 15.22-20.87l61.16-4.64c16.84-1.28 23.76-22.25 11-33.3l-47.47-41.11zm-202.66 59.94C393.3 317.34 404.32 320 416 320c44.11 0 80-35.89 80-80s-35.89-80-80-80c-43.25 0-78.39 34.56-79.75 77.49 26.44 15.53 44.59 43.13 47.03 75.33z"],"cloud-upload-alt":[640,512,[],"f382","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"],cocktail:[576,512,[],"f561","M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"],code:[640,512,[],"f121","M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"],"code-branch":[384,512,[],"f126","M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"],coffee:[640,512,[],"f0f4","M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"],cog:[512,512,[],"f013","M444.788 291.1l42.616 24.599c4.867 2.809 7.126 8.618 5.459 13.985-11.07 35.642-29.97 67.842-54.689 94.586a12.016 12.016 0 0 1-14.832 2.254l-42.584-24.595a191.577 191.577 0 0 1-60.759 35.13v49.182a12.01 12.01 0 0 1-9.377 11.718c-34.956 7.85-72.499 8.256-109.219.007-5.49-1.233-9.403-6.096-9.403-11.723v-49.184a191.555 191.555 0 0 1-60.759-35.13l-42.584 24.595a12.016 12.016 0 0 1-14.832-2.254c-24.718-26.744-43.619-58.944-54.689-94.586-1.667-5.366.592-11.175 5.459-13.985L67.212 291.1a193.48 193.48 0 0 1 0-70.199l-42.616-24.599c-4.867-2.809-7.126-8.618-5.459-13.985 11.07-35.642 29.97-67.842 54.689-94.586a12.016 12.016 0 0 1 14.832-2.254l42.584 24.595a191.577 191.577 0 0 1 60.759-35.13V25.759a12.01 12.01 0 0 1 9.377-11.718c34.956-7.85 72.499-8.256 109.219-.007 5.49 1.233 9.403 6.096 9.403 11.723v49.184a191.555 191.555 0 0 1 60.759 35.13l42.584-24.595a12.016 12.016 0 0 1 14.832 2.254c24.718 26.744 43.619 58.944 54.689 94.586 1.667 5.366-.592 11.175-5.459 13.985L444.788 220.9a193.485 193.485 0 0 1 0 70.2zM336 256c0-44.112-35.888-80-80-80s-80 35.888-80 80 35.888 80 80 80 80-35.888 80-80z"],cogs:[640,512,[],"f085","M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"],coins:[512,512,[],"f51e","M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"],columns:[512,512,[],"f0db","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"],comment:[512,512,[],"f075","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"],"comment-alt":[512,512,[],"f27a","M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"],"comment-dollar":[512,512,[],"f651","M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"],"comment-dots":[512,512,[],"f4ad","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"comment-slash":[640,512,[],"f4b3","M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"],comments:[576,512,[],"f086","M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"],"comments-dollar":[576,512,[],"f653","M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"],"compact-disc":[496,512,[],"f51f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],compass:[496,512,[],"f14e","M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"],compress:[448,512,[],"f066","M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"],"concierge-bell":[512,512,[],"f562","M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],cookie:[512,512,[],"f563","M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"cookie-bite":[512,512,[],"f564","M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],copy:[448,512,[],"f0c5","M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"],copyright:[512,512,[],"f1f9","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"],couch:[640,512,[],"f4b8","M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"],"credit-card":[576,512,[],"f09d","M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"],crop:[512,512,[],"f125","M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],"crop-alt":[512,512,[],"f565","M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"],cross:[384,512,[],"f654","M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],crosshairs:[512,512,[],"f05b","M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"],crow:[640,512,[],"f520","M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],crown:[640,512,[],"f521","M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"],cube:[512,512,[],"f1b2","M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"],cubes:[512,512,[],"f1b3","M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"],cut:[448,512,[],"f0c4","M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"],database:[448,512,[],"f1c0","M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"],deaf:[512,512,[],"f2a4","M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"],desktop:[576,512,[],"f108","M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"],dharmachakra:[512,512,[],"f655","M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"],diagnoses:[640,512,[],"f470","M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"],dice:[640,512,[],"f522","M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],"dice-d20":[480,512,[],"f6cf","M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"],"dice-d6":[448,512,[],"f6d1","M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"],"dice-five":[448,512,[],"f523","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"dice-four":[448,512,[],"f524","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"dice-one":[448,512,[],"f525","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"dice-six":[448,512,[],"f526","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"dice-three":[448,512,[],"f527","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"dice-two":[448,512,[],"f528","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],"digital-tachograph":[640,512,[],"f566","M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"],directions:[512,512,[],"f5eb","M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"],divide:[448,512,[],"f529","M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],dizzy:[496,512,[],"f567","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"],dna:[448,512,[],"f471","M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"],dog:[512,512,[],"f6d3","M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z"],"dollar-sign":[288,512,[],"f155","M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"],dolly:[576,512,[],"f472","M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],"dolly-flatbed":[640,512,[],"f474","M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"],donate:[512,512,[],"f4b9","M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"],"door-closed":[640,512,[],"f52a","M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"],"door-open":[640,512,[],"f52b","M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"],"dot-circle":[512,512,[],"f192","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"],dove:[512,512,[],"f4ba","M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],download:[512,512,[],"f019","M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"],"drafting-compass":[512,512,[],"f568","M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"],dragon:[640,512,[],"f6d5","M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"],"draw-polygon":[448,512,[],"f5ee","M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"],drum:[576,512,[],"f569","M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z"],"drum-steelpan":[576,512,[],"f56a","M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"],"drumstick-bite":[512,512,[],"f6d7","M462.79 49.57c-66.14-66.09-173.36-66.09-239.5 0C187.81 85.02 160.12 128 160.12 192v85.83l-40.62 40.59c-9.7 9.69-24.04 11.07-36.78 5.98-21.72-8.68-47.42-4.29-65.02 13.29-23.61 23.59-23.61 61.84 0 85.43 15.28 15.27 36.53 19.58 56.14 15.09-4.5 19.6-.18 40.83 15.1 56.1 23.61 23.59 61.88 23.59 85.49 0 17.6-17.58 21.99-43.26 13.31-64.97-5.09-12.73-3.72-27.05 5.99-36.75L234.35 352h85.89c23.2 0 43.57-3.72 61.89-10.03-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.93-14.81-90.25-49.13-124.53z"],dumbbell:[640,512,[],"f44b","M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"],dungeon:[512,512,[],"f6d9","M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"],edit:[576,512,[],"f044","M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"],eject:[448,512,[],"f052","M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"],"ellipsis-h":[512,512,[],"f141","M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"],"ellipsis-v":[192,512,[],"f142","M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"],envelope:[512,512,[],"f0e0","M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"],"envelope-open":[512,512,[],"f2b6","M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"],"envelope-open-text":[512,512,[],"f658","M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"],"envelope-square":[448,512,[],"f199","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"],equals:[448,512,[],"f52c","M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],eraser:[512,512,[],"f12d","M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"],"euro-sign":[320,512,[],"f153","M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"],"exchange-alt":[512,512,[],"f362","M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"],exclamation:[192,512,[],"f12a","M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"],"exclamation-circle":[512,512,[],"f06a","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"],"exclamation-triangle":[576,512,[],"f071","M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"],expand:[448,512,[],"f065","M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"],"expand-arrows-alt":[448,512,[],"f31e","M448.1 344v112c0 13.3-10.7 24-24 24h-112c-21.4 0-32.1-25.9-17-41l36.2-36.2L224 295.6 116.8 402.9 153 439c15.1 15.1 4.4 41-17 41H24c-13.3 0-24-10.7-24-24V344c0-21.4 25.9-32.1 41-17l36.2 36.2L184.5 256 77.2 148.7 41 185c-15.1 15.1-41 4.4-41-17V56c0-13.3 10.7-24 24-24h112c21.4 0 32.1 25.9 17 41l-36.2 36.2L224 216.4l107.3-107.3L295.1 73c-15.1-15.1-4.4-41 17-41h112c13.3 0 24 10.7 24 24v112c0 21.4-25.9 32.1-41 17l-36.2-36.2L263.6 256l107.3 107.3 36.2-36.2c15.1-15.2 41-4.5 41 16.9z"],"external-link-alt":[576,512,[],"f35d","M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z"],"external-link-square-alt":[448,512,[],"f360","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"],eye:[576,512,[],"f06e","M569.354 231.631C512.969 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-75.162 0-136-60.827-136-136 0-75.162 60.826-136 136-136 75.162 0 136 60.826 136 136 0 75.162-60.826 136-136 136zm104-136c0 57.438-46.562 104-104 104s-104-46.562-104-104c0-17.708 4.431-34.379 12.236-48.973l-.001.032c0 23.651 19.173 42.823 42.824 42.823s42.824-19.173 42.824-42.823c0-23.651-19.173-42.824-42.824-42.824l-.032.001C253.621 156.431 270.292 152 288 152c57.438 0 104 46.562 104 104z"],"eye-dropper":[512,512,[],"f1fb","M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"],"eye-slash":[576,512,[],"f070","M286.693 391.984l32.579 46.542A333.958 333.958 0 0 1 288 440C168.19 440 63.031 376.051 6.646 280.369a47.999 47.999 0 0 1 0-48.739c24.023-40.766 56.913-75.775 96.024-102.537l57.077 81.539C154.736 224.82 152 240.087 152 256c0 74.736 60.135 135.282 134.693 135.984zm282.661-111.615c-31.667 53.737-78.747 97.46-135.175 125.475l.011.015 41.47 59.2c7.6 10.86 4.96 25.82-5.9 33.42l-13.11 9.18c-10.86 7.6-25.82 4.96-33.42-5.9L100.34 46.94c-7.6-10.86-4.96-25.82 5.9-33.42l13.11-9.18c10.86-7.6 25.82-4.96 33.42 5.9l51.038 72.617C230.68 75.776 258.905 72 288 72c119.81 0 224.969 63.949 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM424 256c0-75.174-60.838-136-136-136-17.939 0-35.056 3.473-50.729 9.772l19.299 27.058c25.869-8.171 55.044-6.163 80.4 7.41h-.03c-23.65 0-42.82 19.17-42.82 42.82 0 23.626 19.147 42.82 42.82 42.82 23.65 0 42.82-19.17 42.82-42.82v-.03c18.462 34.49 16.312 77.914-8.25 110.95v.01l19.314 27.061C411.496 321.2 424 290.074 424 256zM262.014 356.727l-77.53-110.757c-5.014 52.387 29.314 98.354 77.53 110.757z"],"fast-backward":[512,512,[],"f049","M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"],"fast-forward":[512,512,[],"f050","M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"],fax:[512,512,[],"f1ac","M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z"],feather:[512,512,[],"f52d","M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"],"feather-alt":[512,512,[],"f56b","M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"],female:[256,512,[],"f182","M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"],"fighter-jet":[640,512,[],"f0fb","M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"],file:[384,512,[],"f15b","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-alt":[384,512,[],"f15c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-archive":[384,512,[],"f1c6","M224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32V32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6zm32.7-53c0 14.9-14.5 27-32.4 27S96 378 96 363c0-14.9 14.5-27 32.4-27s32.5 12.1 32.5 27zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-audio":[384,512,[],"f1c7","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-code":[384,512,[],"f1c9","M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"],"file-contract":[384,512,[],"f56c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-csv":[384,512,[],"f6dd","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-download":[384,512,[],"f56d","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-excel":[384,512,[],"f1c3","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-export":[576,512,[],"f56e","M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zM192 336v-32c0-8.84 7.16-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.84 0-16-7.16-16-16zm379.05-28.02l-95.7-96.43c-10.06-10.14-27.36-3.01-27.36 11.27V288H384v64h63.99v65.18c0 14.28 17.29 21.41 27.36 11.27l95.7-96.42c6.6-6.66 6.6-17.4 0-24.05z"],"file-image":[384,512,[],"f1c5","M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"],"file-import":[512,512,[],"f56f","M16 288c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h112v-64H16zm336-152V0H152c-13.3 0-24 10.7-24 24v264h127.99v-65.18c0-14.28 17.29-21.41 27.36-11.27l95.7 96.43c6.6 6.65 6.6 17.39 0 24.04l-95.7 96.42c-10.06 10.14-27.36 3.01-27.36-11.27V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24zm153-31L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-invoice":[384,512,[],"f570","M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"],"file-invoice-dollar":[384,512,[],"f571","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"],"file-medical":[384,512,[],"f477","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"],"file-medical-alt":[448,512,[],"f478","M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-pdf":[384,512,[],"f1c1","M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"],"file-powerpoint":[384,512,[],"f1c4","M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"],"file-prescription":[384,512,[],"f572","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],"file-signature":[576,512,[],"f573","M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"],"file-upload":[384,512,[],"f574","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"],"file-video":[384,512,[],"f1c8","M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"],"file-word":[384,512,[],"f1c2","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"],fill:[512,512,[],"f575","M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"],"fill-drip":[576,512,[],"f576","M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"],film:[512,512,[],"f008","M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"],filter:[512,512,[],"f0b0","M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"],fingerprint:[512,512,[],"f577","M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"],fire:[384,512,[],"f06d","M216 23.858c0-23.802-30.653-32.765-44.149-13.038C48 191.851 224 200 224 288c0 35.629-29.114 64.458-64.85 63.994C123.98 351.538 96 322.22 96 287.046v-85.51c0-21.703-26.471-32.225-41.432-16.504C27.801 213.158 0 261.332 0 320c0 105.869 86.131 192 192 192s192-86.131 192-192c0-170.29-168-193.003-168-296.142z"],"fire-extinguisher":[448,512,[],"f134","M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"],"first-aid":[576,512,[],"f479","M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],fish:[576,512,[],"f578","M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"],"fist-raised":[384,512,[],"f6de","M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"],flag:[512,512,[],"f024","M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"],"flag-checkered":[512,512,[],"f11e","M466.515 66.928C487.731 57.074 512 72.551 512 95.944v243.1c0 10.526-5.161 20.407-13.843 26.358-35.837 24.564-74.335 40.858-122.505 40.858-67.373 0-111.63-34.783-165.217-34.783-50.853 0-86.124 10.058-114.435 22.122V488c0 13.255-10.745 24-24 24H56c-13.255 0-24-10.745-24-24V101.945C17.497 91.825 8 75.026 8 56 8 24.296 34.345-1.254 66.338.048c28.468 1.158 51.779 23.968 53.551 52.404.52 8.342-.81 16.31-3.586 23.562C137.039 68.384 159.393 64 184.348 64c67.373 0 111.63 34.783 165.217 34.783 40.496 0 82.612-15.906 116.95-31.855zM96 134.63v70.49c29-10.67 51.18-17.83 73.6-20.91v-71.57c-23.5 2.17-40.44 9.79-73.6 21.99zm220.8 9.19c-26.417-4.672-49.886-13.979-73.6-21.34v67.42c24.175 6.706 47.566 16.444 73.6 22.31v-68.39zm-147.2 40.39v70.04c32.796-2.978 53.91-.635 73.6 3.8V189.9c-25.247-7.035-46.581-9.423-73.6-5.69zm73.6 142.23c26.338 4.652 49.732 13.927 73.6 21.34v-67.41c-24.277-6.746-47.54-16.45-73.6-22.32v68.39zM96 342.1c23.62-8.39 47.79-13.84 73.6-16.56v-71.29c-26.11 2.35-47.36 8.04-73.6 17.36v70.49zm368-221.6c-21.3 8.85-46.59 17.64-73.6 22.47v71.91c27.31-4.36 50.03-14.1 73.6-23.89V120.5zm0 209.96v-70.49c-22.19 14.2-48.78 22.61-73.6 26.02v71.58c25.07-2.38 48.49-11.04 73.6-27.11zM316.8 212.21v68.16c25.664 7.134 46.616 9.342 73.6 5.62v-71.11c-25.999 4.187-49.943 2.676-73.6-2.67z"],flask:[448,512,[],"f0c3","M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"],flushed:[496,512,[],"f579","M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"],folder:[512,512,[],"f07b","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"],"folder-minus":[512,512,[],"f65d","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"],"folder-open":[576,512,[],"f07c","M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"],"folder-plus":[512,512,[],"f65e","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z"],font:[448,512,[],"f031","M152 416h-24.013l26.586-80.782H292.8L319.386 416H296c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-26.739L275.495 42.746A16 16 0 0 0 260.382 32h-72.766a16 16 0 0 0-15.113 10.746L42.739 416H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm64.353-271.778c4.348-15.216 6.61-28.156 7.586-34.644.839 6.521 2.939 19.476 7.727 34.706l41.335 124.006h-98.619l41.971-124.068z"],"font-awesome-logo-full":[3992,512,["Font Awesome"],"f4e6","M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],"football-ball":[496,512,[],"f44e","M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"],forward:[512,512,[],"f04e","M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"],frog:[576,512,[],"f52e","M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"],frown:[496,512,[],"f119","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"],"frown-open":[496,512,[],"f57a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"funnel-dollar":[640,512,[],"f662","M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"],futbol:[512,512,[],"f1e3","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"],gamepad:[640,512,[],"f11b","M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],"gas-pump":[512,512,[],"f52f","M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"],gavel:[512,512,[],"f0e3","M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"],gem:[576,512,[],"f3a5","M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"],genderless:[288,512,[],"f22d","M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"],ghost:[384,512,[],"f6e2","M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],gift:[512,512,[],"f06b","M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm448-288h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40zm-72 320h160c17.7 0 32-14.3 32-32V320H288v160z"],"glass-martini":[512,512,[],"f000","M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"],"glass-martini-alt":[512,512,[],"f57b","M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"],glasses:[576,512,[],"f530","M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"],globe:[496,512,[],"f0ac","M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"],"globe-africa":[496,512,[],"f57c","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"],"globe-americas":[496,512,[],"f57d","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"],"globe-asia":[496,512,[],"f57e","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"],"golf-ball":[416,512,[],"f450","M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"],gopuram:[512,512,[],"f664","M496 352h-16V240c0-8.84-7.16-16-16-16h-16v-80c0-8.84-7.16-16-16-16h-16V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16S96 7.16 96 16v112H80c-8.84 0-16 7.16-16 16v80H48c-8.84 0-16 7.16-16 16v112H16c-8.84 0-16 7.16-16 16v128c0 8.84 7.16 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.84 0 16-7.16 16-16V368c0-8.84-7.16-16-16-16zm-272 0v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64h-64zm8-128v-48c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v48h-48z"],"graduation-cap":[640,512,[],"f19d","M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"],"greater-than":[384,512,[],"f531","M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"],"greater-than-equal":[448,512,[],"f532","M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],grimace:[496,512,[],"f57f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"],grin:[496,512,[],"f580","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-alt":[496,512,[],"f581","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-beam":[496,512,[],"f582","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-beam-sweat":[504,512,[],"f583","M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-hearts":[496,512,[],"f584","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"],"grin-squint":[496,512,[],"f585","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-squint-tears":[512,512,[],"f586","M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"],"grin-stars":[496,512,[],"f587","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"],"grin-tears":[640,512,[],"f588","M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"],"grin-tongue":[496,512,[],"f589","M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"],"grin-tongue-squint":[496,512,[],"f58a","M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"],"grin-tongue-wink":[496,512,[],"f58b","M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"],"grin-wink":[496,512,[],"f58c","M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"],"grip-horizontal":[448,512,[],"f58d","M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],"grip-vertical":[320,512,[],"f58e","M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"],"h-square":[448,512,[],"f0fd","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"],hammer:[576,512,[],"f6e3","M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"],hamsa:[512,512,[],"f665","M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],"hand-holding":[576,512,[],"f4bd","M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"],"hand-holding-heart":[576,512,[],"f4be","M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"],"hand-holding-usd":[544,512,[],"f4c0","M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z"],"hand-lizard":[576,512,[],"f258","M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"],"hand-paper":[448,512,[],"f256","M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"],"hand-peace":[448,512,[],"f25b","M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"],"hand-point-down":[384,512,[],"f0a7","M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"],"hand-point-left":[512,512,[],"f0a5","M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"],"hand-point-right":[512,512,[],"f0a4","M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"],"hand-point-up":[384,512,[],"f0a6","M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"],"hand-pointer":[448,512,[],"f25a","M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"],"hand-rock":[512,512,[],"f255","M512 128.79c0-26.322-20.861-48.344-47.18-48.783C437.935 79.558 416 101.217 416 128h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C333.935 47.558 312 69.217 312 96v32h-8V80.79c0-26.322-20.861-48.344-47.18-48.783C229.935 31.558 208 53.217 208 80v48h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C125.935 47.558 104 69.217 104 96v136l-8-7.111V176.79c0-26.322-20.861-48.344-47.18-48.783C21.935 127.558 0 149.217 0 176v66.445a95.998 95.998 0 0 0 32.221 71.751l111.668 99.261A47.999 47.999 0 0 1 160 449.333V456c0 13.255 10.745 24 24 24h240c13.255 0 24-10.745 24-24v-2.921a96.01 96.01 0 0 1 7.523-37.254l48.954-116.265A96.002 96.002 0 0 0 512 262.306V128.79z"],"hand-scissors":[512,512,[],"f257","M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"],"hand-spock":[512,512,[],"f259","M10.872 316.585c15.139-16.086 40.454-16.854 56.543-1.713L128 371.893v-79.405L88.995 120.865c-4.896-21.542 8.598-42.974 30.14-47.87 21.549-4.894 42.975 8.599 47.87 30.141L201.747 256h9.833L164.016 48.966c-4.946-21.531 8.498-42.994 30.028-47.94 21.532-4.95 42.994 8.498 47.94 30.028L293.664 256h15.105l48.425-193.702c5.357-21.432 27.075-34.462 48.507-29.104 21.432 5.358 34.463 27.075 29.104 48.507L391.231 256h11.08l30.768-129.265c5.117-21.491 26.685-34.768 48.177-29.647 21.491 5.117 34.765 26.686 29.647 48.177l-36.292 152.467A96.024 96.024 0 0 0 472 319.967v42.102a96.002 96.002 0 0 1-3.96 27.287l-26.174 88.287C435.825 498.022 417.101 512 395.846 512H179.172a48.002 48.002 0 0 1-32.898-13.046L12.585 373.128c-16.087-15.141-16.853-40.456-1.713-56.543z"],hands:[640,512,[],"f4c2","M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"],"hands-helping":[640,512,[],"f4c4","M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"],handshake:[640,512,[],"f2b5","M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"],hanukiah:[640,512,[],"f6e6","M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"],hashtag:[448,512,[],"f292","M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"],"hat-wizard":[512,512,[],"f6e8","M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"],haykal:[512,512,[],"f666","M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"],hdd:[576,512,[],"f0a0","M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"],heading:[512,512,[],"f1dc","M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z"],headphones:[512,512,[],"f025","M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"],"headphones-alt":[512,512,[],"f58f","M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"],headset:[512,512,[],"f590","M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"],heart:[512,512,[],"f004","M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"],heartbeat:[512,512,[],"f21e","M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"],helicopter:[640,512,[],"f533","M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"],highlighter:[544,512,[],"f591","M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"],hiking:[384,512,[],"f6ec","M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"],hippo:[640,512,[],"f6ed","M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],history:[512,512,[],"f1da","M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"],"hockey-puck":[512,512,[],"f453","M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"],home:[576,512,[],"f015","M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z"],horse:[576,512,[],"f6f0","M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"],hospital:[448,512,[],"f0f8","M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"],"hospital-alt":[576,512,[],"f47d","M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"],"hospital-symbol":[512,512,[],"f47e","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"],"hot-tub":[512,512,[],"f593","M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"],hotel:[576,512,[],"f594","M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"],hourglass:[384,512,[],"f254","M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"],"hourglass-end":[384,512,[],"f253","M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"],"hourglass-half":[384,512,[],"f252","M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"],"hourglass-start":[384,512,[],"f251","M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"],"house-damage":[576,512,[],"f6f1","M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"],hryvnia:[384,512,[],"f6f2","M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"],"i-cursor":[256,512,[],"f246","M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"],"id-badge":[384,512,[],"f2c1","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],"id-card":[576,512,[],"f2c2","M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"],"id-card-alt":[576,512,[],"f47f","M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"],image:[512,512,[],"f03e","M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"],images:[576,512,[],"f302","M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"],inbox:[576,512,[],"f01c","M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"],indent:[448,512,[],"f03c","M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm176 144h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm-52.687-111.313l-96-95.984C17.266 138.652 0 145.776 0 160.016v191.975c0 14.329 17.325 21.304 27.313 11.313l96-95.992c6.249-6.247 6.249-16.377 0-22.625z"],industry:[512,512,[],"f275","M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"],infinity:[640,512,[],"f534","M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"],info:[192,512,[],"f129","M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"],"info-circle":[512,512,[],"f05a","M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"],italic:[320,512,[],"f033","M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z"],jedi:[544,512,[],"f669","M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z"],joint:[640,512,[],"f595","M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"],"journal-whills":[448,512,[],"f66a","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],kaaba:[576,512,[],"f66b","M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"],key:[512,512,[],"f084","M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"],keyboard:[576,512,[],"f11c","M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"],khanda:[512,512,[],"f66d","M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"],kiss:[496,512,[],"f596","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"kiss-beam":[496,512,[],"f597","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"],"kiss-wink-heart":[504,512,[],"f598","M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"],"kiwi-bird":[576,512,[],"f535","M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"],landmark:[512,512,[],"f66f","M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],language:[640,512,[],"f1ab","M304 416H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h280v320zm-120.676-72.622A12 12 0 0 0 194.839 352h22.863c8.22 0 14.007-8.078 11.362-15.861L171.61 167.085a12 12 0 0 0-11.362-8.139h-32.489a12.001 12.001 0 0 0-11.362 8.139L58.942 336.139C56.297 343.922 62.084 352 70.304 352h22.805a12 12 0 0 0 11.535-8.693l9.118-31.807h60.211l9.351 31.878zm-39.051-140.42s4.32 21.061 7.83 33.21l10.8 37.531h-38.07l11.07-37.531c3.51-12.15 7.83-33.21 7.83-33.21h.54zM616 416H336V96h280c13.255 0 24 10.745 24 24v272c0 13.255-10.745 24-24 24zm-36-228h-64v-16c0-6.627-5.373-12-12-12h-16c-6.627 0-12 5.373-12 12v16h-64c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h114.106c-6.263 14.299-16.518 28.972-30.023 43.206-6.56-6.898-12.397-13.91-17.365-20.933-3.639-5.144-10.585-6.675-15.995-3.446l-7.28 4.346-6.498 3.879c-5.956 3.556-7.693 11.421-3.735 17.117 6.065 8.729 13.098 17.336 20.984 25.726-8.122 6.226-16.841 12.244-26.103 17.964-5.521 3.41-7.381 10.556-4.162 16.19l7.941 13.896c3.362 5.883 10.935 7.826 16.706 4.276 12.732-7.831 24.571-16.175 35.443-24.891 10.917 8.761 22.766 17.102 35.396 24.881 5.774 3.556 13.353 1.618 16.717-4.27l7.944-13.903c3.213-5.623 1.37-12.76-4.135-16.171a312.737 312.737 0 0 1-26.06-18.019c21.024-22.425 35.768-46.289 42.713-69.85H580c6.627 0 12-5.373 12-12v-16c0-6.625-5.373-11.998-12-11.998z"],laptop:[640,512,[],"f109","M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"],"laptop-code":[640,512,[],"f5fc","M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"],laugh:[496,512,[],"f599","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"],"laugh-beam":[496,512,[],"f59a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],"laugh-squint":[496,512,[],"f59b","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],"laugh-wink":[496,512,[],"f59c","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"],"layer-group":[512,512,[],"f5fd","M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"],leaf:[576,512,[],"f06c","M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"],lemon:[512,512,[],"f094","M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"],"less-than":[384,512,[],"f536","M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"],"less-than-equal":[448,512,[],"f537","M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"],"level-down-alt":[320,512,[],"f3be","M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"],"level-up-alt":[320,512,[],"f3bf","M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"],"life-ring":[512,512,[],"f1cd","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"],lightbulb:[352,512,[],"f0eb","M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"],link:[512,512,[],"f0c1","M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"],"lira-sign":[384,512,[],"f195","M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"],list:[512,512,[],"f03a","M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z"],"list-alt":[512,512,[],"f022","M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"],"list-ol":[512,512,[],"f0cb","M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],"list-ul":[512,512,[],"f0ca","M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"],"location-arrow":[512,512,[],"f124","M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"],lock:[448,512,[],"f023","M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"],"lock-open":[576,512,[],"f3c1","M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"],"long-arrow-alt-down":[256,512,[],"f309","M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"],"long-arrow-alt-left":[448,512,[],"f30a","M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"],"long-arrow-alt-right":[448,512,[],"f30b","M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"],"long-arrow-alt-up":[256,512,[],"f30c","M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"],"low-vision":[576,512,[],"f2a8","M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"],"luggage-cart":[640,512,[],"f59d","M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"],magic:[512,512,[],"f0d0","M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"],magnet:[512,512,[],"f076","M164.1 160H12c-6.6 0-12-5.4-12-12V68c0-19.9 16.1-36 36-36h104c19.9 0 36 16.1 36 36v80c.1 6.6-5.3 12-11.9 12zm348-12V67.9c0-19.9-16.1-36-36-36h-104c-19.9 0-36 16.1-36 36v80c0 6.6 5.4 12 12 12h152c6.6.1 12-5.3 12-11.9zm-164 44c-6.6 0-12 5.4-12 12v52c0 128.1-160 127.9-160 0v-52c0-6.6-5.4-12-12-12h-152c-6.7 0-12 5.4-12 12.1.1 21.4.6 40.3 0 53.3C.1 408 136.3 504 256.9 504 377.5 504 512 408 512 257.3c-.6-12.8-.2-33 0-53.2 0-6.7-5.3-12.1-12-12.1H348.1z"],"mail-bulk":[576,512,[],"f674","M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"],male:[192,512,[],"f183","M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"],map:[576,512,[],"f279","M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"],"map-marked":[576,512,[],"f59f","M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"],"map-marked-alt":[576,512,[],"f5a0","M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"],"map-marker":[384,512,[],"f041","M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"],"map-marker-alt":[384,512,[],"f3c5","M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"],"map-pin":[288,512,[],"f276","M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"],"map-signs":[512,512,[],"f277","M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"],marker:[512,512,[],"f5a1","M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"],mars:[384,512,[],"f222","M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],"mars-double":[512,512,[],"f227","M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"],"mars-stroke":[384,512,[],"f229","M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],"mars-stroke-h":[480,512,[],"f22b","M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"],"mars-stroke-v":[288,512,[],"f22a","M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"],mask:[640,512,[],"f6fa","M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"],medal:[512,512,[],"f5a2","M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"],medkit:[512,512,[],"f0fa","M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"],meh:[496,512,[],"f11a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"meh-blank":[496,512,[],"f5a4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"meh-rolling-eyes":[496,512,[],"f5a5","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"],memory:[640,512,[],"f538","M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"],menorah:[640,512,[],"f676","M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"],mercury:[288,512,[],"f223","M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"],microchip:[512,512,[],"f2db","M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"],microphone:[352,512,[],"f130","M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"],"microphone-alt":[352,512,[],"f3c9","M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"],"microphone-alt-slash":[640,512,[],"f539","M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"],"microphone-slash":[640,512,[],"f131","M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"],microscope:[512,512,[],"f610","M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"],minus:[448,512,[],"f068","M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],"minus-circle":[512,512,[],"f056","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"],"minus-square":[448,512,[],"f146","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"],mobile:[320,512,[],"f10b","M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"mobile-alt":[320,512,[],"f3cd","M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"],"money-bill":[640,512,[],"f0d6","M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"],"money-bill-alt":[640,512,[],"f3d1","M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"],"money-bill-wave":[640,512,[],"f53a","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"],"money-bill-wave-alt":[640,512,[],"f53b","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"],"money-check":[640,512,[],"f53c","M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"],"money-check-alt":[640,512,[],"f53d","M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"],monument:[384,512,[],"f5a6","M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"],moon:[512,512,[],"f186","M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"],"mortar-pestle":[512,512,[],"f5a7","M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"],mosque:[640,512,[],"f678","M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"],motorcycle:[640,512,[],"f21c","M512.949 192.003c-14.862-.108-29.14 2.322-42.434 6.874L437.589 144H520c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24h-45.311a24 24 0 0 0-17.839 7.945l-37.496 41.663-22.774-37.956A24 24 0 0 0 376 64h-80c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h66.411l19.2 32H227.904c-17.727-23.073-44.924-40-99.904-40H72.54c-13.455 0-24.791 11.011-24.536 24.464C48.252 141.505 58.9 152 72 152h56c24.504 0 38.686 10.919 47.787 24.769l-11.291 20.529c-13.006-3.865-26.871-5.736-41.251-5.21C55.857 194.549 1.565 249.605.034 317.021-1.603 389.076 56.317 448 128 448c59.642 0 109.744-40.794 123.953-96h84.236c13.673 0 24.589-11.421 23.976-25.077-2.118-47.12 17.522-93.665 56.185-125.026l12.485 20.808c-27.646 23.654-45.097 58.88-44.831 98.179.47 69.556 57.203 126.452 126.758 127.11 71.629.678 129.839-57.487 129.234-129.099-.588-69.591-57.455-126.386-127.047-126.892zM128 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c4.242 0 8.405.341 12.469.982L98.97 316.434C90.187 332.407 101.762 352 120 352h81.297c-12.37 28.225-40.56 48-73.297 48zm388.351-.116C470.272 402.337 432 365.554 432 320c0-21.363 8.434-40.781 22.125-55.144l49.412 82.352c4.546 7.577 14.375 10.034 21.952 5.488l13.72-8.232c7.577-4.546 10.034-14.375 5.488-21.952l-48.556-80.927A80.005 80.005 0 0 1 512 240c45.554 0 82.338 38.273 79.884 84.352-2.16 40.558-34.974 73.372-75.533 75.532z"],mountain:[640,512,[],"f6fc","M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"],"mouse-pointer":[320,512,[],"f245","M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"],music:[512,512,[],"f001","M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z"],"network-wired":[640,512,[],"f6ff","M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"],neuter:[288,512,[],"f22c","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],newspaper:[576,512,[],"f1ea","M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"],"not-equal":[448,512,[],"f53e","M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"],"notes-medical":[384,512,[],"f481","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"],"object-group":[512,512,[],"f247","M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"],"object-ungroup":[576,512,[],"f248","M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"],"oil-can":[640,512,[],"f613","M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"],om:[512,512,[],"f679","M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"],otter:[640,512,[],"f700","M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"],outdent:[448,512,[],"f03b","M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm208 144h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm192-128h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM4.687 267.313l96 95.984C110.734 373.348 128 366.224 128 351.984V160.008c0-14.329-17.325-21.304-27.313-11.313l-96 95.992c-6.249 6.248-6.249 16.378 0 22.626z"],"paint-brush":[512,512,[],"f1fc","M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"],"paint-roller":[512,512,[],"f5aa","M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"],palette:[512,512,[],"f53f","M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],pallet:[640,512,[],"f482","M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"],"paper-plane":[512,512,[],"f1d8","M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"],paperclip:[448,512,[],"f0c6","M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"],"parachute-box":[512,512,[],"f4cd","M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"],paragraph:[448,512,[],"f1dd","M408 32H177.531C88.948 32 16.045 103.335 16 191.918 15.956 280.321 87.607 352 176 352v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h32v344c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h40c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24z"],parking:[448,512,[],"f540","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"],passport:[448,512,[],"f5ab","M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"],pastafarianism:[640,512,[],"f67b","M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"],paste:[448,512,[],"f0ea","M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"],pause:[448,512,[],"f04c","M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"],"pause-circle":[512,512,[],"f28b","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"],paw:[512,512,[],"f1b0","M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"],peace:[496,512,[],"f67c","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"],pen:[512,512,[],"f304","M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"],"pen-alt":[512,512,[],"f305","M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"],"pen-fancy":[512,512,[],"f5ac","M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"],"pen-nib":[512,512,[],"f5ad","M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"],"pen-square":[448,512,[],"f14b","M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"],"pencil-alt":[512,512,[],"f303","M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"],"pencil-ruler":[512,512,[],"f5ae","M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"],"people-carry":[640,512,[],"f4ce","M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"],percent:[448,512,[],"f295","M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"],percentage:[384,512,[],"f541","M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"],phone:[512,512,[],"f095","M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"],"phone-slash":[640,512,[],"f3dd","M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"],"phone-square":[448,512,[],"f098","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"],"phone-volume":[384,512,[],"f2a0","M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"],"piggy-bank":[576,512,[],"f4d3","M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"],pills:[576,512,[],"f484","M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"],"place-of-worship":[640,512,[],"f67f","M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"],plane:[576,512,[],"f072","M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"],"plane-arrival":[640,512,[],"f5af","M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"],"plane-departure":[640,512,[],"f5b0","M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"],play:[448,512,[],"f04b","M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"],"play-circle":[512,512,[],"f144","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"],plug:[384,512,[],"f1e6","M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z"],plus:[448,512,[],"f067","M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"],"plus-circle":[512,512,[],"f055","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"],"plus-square":[448,512,[],"f0fe","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"],podcast:[448,512,[],"f2ce","M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"],poll:[448,512,[],"f681","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"],"poll-h":[448,512,[],"f682","M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"],poo:[512,512,[],"f2fe","M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],poop:[512,512,[],"f619","M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"],portrait:[384,512,[],"f3e0","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"],"pound-sign":[320,512,[],"f154","M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"],"power-off":[512,512,[],"f011","M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"],pray:[384,512,[],"f683","M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"],"praying-hands":[640,512,[],"f684","M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"],prescription:[384,512,[],"f5b1","M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"],"prescription-bottle":[384,512,[],"f485","M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"],"prescription-bottle-alt":[384,512,[],"f486","M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"],print:[512,512,[],"f02f","M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],procedures:[640,512,[],"f487","M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"],"project-diagram":[640,512,[],"f542","M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"],"puzzle-piece":[576,512,[],"f12e","M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"],qrcode:[448,512,[],"f029","M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"],question:[384,512,[],"f128","M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"],"question-circle":[512,512,[],"f059","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"],quidditch:[640,512,[],"f458","M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"],"quote-left":[512,512,[],"f10d","M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"],"quote-right":[512,512,[],"f10e","M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"],quran:[448,512,[],"f687","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],random:[512,512,[],"f074","M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"],receipt:[384,512,[],"f543","M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"],recycle:[512,512,[],"f1b8","M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"],redo:[512,512,[],"f01e","M500.333 0h-47.411c-6.853 0-12.314 5.729-11.986 12.574l3.966 82.759C399.416 41.899 331.672 8 256.001 8 119.34 8 7.899 119.526 8 256.187 8.101 393.068 119.096 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-33.971-33.971c-4.466-4.466-11.64-4.717-16.38-.543C341.308 415.448 300.606 432 256 432c-97.267 0-176-78.716-176-176 0-97.267 78.716-176 176-176 60.892 0 114.506 30.858 146.099 77.8l-101.525-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12z"],"redo-alt":[512,512,[],"f2f9","M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"],registered:[512,512,[],"f25d","M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"],reply:[512,512,[],"f3e5","M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"],"reply-all":[576,512,[],"f122","M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"],retweet:[640,512,[],"f079","M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"],ribbon:[448,512,[],"f4d6","M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"],ring:[512,512,[],"f70b","M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"],road:[576,512,[],"f018","M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"],robot:[640,512,[],"f544","M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z"],rocket:[512,512,[],"f135","M505.1 19.1C503.8 13 499 8.2 492.9 6.9 460.7 0 435.5 0 410.4 0 307.2 0 245.3 55.2 199.1 128H94.9c-18.2 0-34.8 10.3-42.9 26.5L2.6 253.3c-8 16 3.6 34.7 21.5 34.7h95.1c-5.9 12.8-11.9 25.5-18 37.7-3.1 6.2-1.9 13.6 3 18.5l63.6 63.6c4.9 4.9 12.3 6.1 18.5 3 12.2-6.1 24.9-12 37.7-17.9V488c0 17.8 18.8 29.4 34.7 21.5l98.7-49.4c16.3-8.1 26.5-24.8 26.5-42.9V312.8c72.6-46.3 128-108.4 128-211.1.1-25.2.1-50.4-6.8-82.6zM400 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],route:[512,512,[],"f4d7","M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],rss:[448,512,[],"f09e","M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"],"rss-square":[448,512,[],"f143","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"],"ruble-sign":[384,512,[],"f158","M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"],ruler:[640,512,[],"f545","M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"],"ruler-combined":[512,512,[],"f546","M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],"ruler-horizontal":[576,512,[],"f547","M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"],"ruler-vertical":[256,512,[],"f548","M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"],running:[416,512,[],"f70c","M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"],"rupee-sign":[320,512,[],"f156","M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"],"sad-cry":[496,512,[],"f5b3","M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"],"sad-tear":[496,512,[],"f5b4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"],save:[448,512,[],"f0c7","M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"],school:[640,512,[],"f549","M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"],screwdriver:[512,512,[],"f54a","M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"],scroll:[640,512,[],"f70e","M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"],search:[512,512,[],"f002","M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"],"search-dollar":[512,512,[],"f688","M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"],"search-location":[512,512,[],"f689","M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],"search-minus":[512,512,[],"f010","M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"],"search-plus":[512,512,[],"f00e","M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"],seedling:[512,512,[],"f4d8","M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"],server:[512,512,[],"f233","M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"],shapes:[512,512,[],"f61f","M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z"],share:[512,512,[],"f064","M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"],"share-alt":[448,512,[],"f1e0","M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"],"share-alt-square":[448,512,[],"f1e1","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"],"share-square":[576,512,[],"f14d","M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"],"shekel-sign":[448,512,[],"f20b","M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"],"shield-alt":[512,512,[],"f3ed","M496 128c0 221.282-135.934 344.645-221.539 380.308a48 48 0 0 1-36.923 0C130.495 463.713 16 326.487 16 128a48 48 0 0 1 29.539-44.308l192-80a48 48 0 0 1 36.923 0l192 80A48 48 0 0 1 496 128zM256 446.313l.066.034c93.735-46.689 172.497-156.308 175.817-307.729L256 65.333v380.98z"],ship:[640,512,[],"f21a","M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"],"shipping-fast":[640,512,[],"f48b","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],"shoe-prints":[640,512,[],"f54b","M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"],"shopping-bag":[448,512,[],"f290","M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"],"shopping-basket":[576,512,[],"f291","M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"],"shopping-cart":[576,512,[],"f07a","M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"],shower:[512,512,[],"f2cc","M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z"],"shuttle-van":[640,512,[],"f5b6","M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"],sign:[512,512,[],"f4d9","M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"],"sign-in-alt":[512,512,[],"f2f6","M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"],"sign-language":[448,512,[],"f2a7","M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"],"sign-out-alt":[512,512,[],"f2f5","M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"],signal:[640,512,[],"f012","M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"],signature:[512,512,[],"f5b7","M496 320h-91.86c-9.27 0-19.72-11.31-25.78-28.52-15.23-43.36-48.11-70.3-85.8-70.3-30.84 0-58.47 18.05-76.11 49.23L194.8 106.5C188.84 81.08 169.34 64 146.28 64c-23.05 0-42.55 17.08-48.5 42.5L56.16 284.2C50.7 307.45 37.75 320 28.33 320H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h12.33c41.97 0 78.19-34.23 90.14-85.2l23.84-101.78 29.25 222.11c1.98 15.05 13.82 27.45 28.94 28.75.99.09 1.96.13 2.93.13 14.08 0 26.64-9.27 30.69-22.95l33.03-112.34c5.88-16.72 15.84-27.52 25.41-27.52 9.58 0 19.55 10.8 25.78 28.52 15.23 43.36 48.11 70.3 85.8 70.3H496c8.84 0 16-7.16 16-16v-32c0-8.86-7.16-16.02-16-16.02z"],sitemap:[640,512,[],"f0e8","M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"],skull:[512,512,[],"f54c","M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"],"skull-crossbones":[448,512,[],"f714","M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"],slash:[640,512,[],"f715","M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"],"sliders-h":[512,512,[],"f1de","M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"],smile:[496,512,[],"f118","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"],"smile-beam":[496,512,[],"f5b8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"],"smile-wink":[496,512,[],"f4da","M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"],smoking:[640,512,[],"f48d","M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"],"smoking-ban":[512,512,[],"f54d","M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"],snowflake:[448,512,[],"f2dc","M444.816 301.639a24.12 24.12 0 0 0 2.661-16.978c-2.725-12.966-15.339-21.245-28.174-18.492l-87.407 25.046L264 256l67.896-35.215 87.407 25.046c12.835 2.753 25.449-5.526 28.174-18.492 2.725-12.966-5.471-25.708-18.305-28.461l-47.477-7.137 53.077-30.956c11.363-6.627 15.257-21.306 8.696-32.785-6.561-11.479-21.091-15.412-32.454-8.785l-53.077 30.956 17.621-45.104c4.057-12.606-2.768-26.146-15.247-30.245-12.478-4.099-25.883 2.797-29.94 15.402l-22.232 88.99-60.38 35.215V144l65.175-63.945c8.778-9.852 7.987-25.027-1.766-33.894-9.753-8.867-24.775-8.068-33.552 1.784l-29.857 37.967V24c0-13.255-10.637-24-23.758-24s-23.758 10.745-23.758 24v61.912l-29.857-37.967c-8.779-9.852-23.799-10.652-33.552-1.784-9.753 8.867-10.543 24.042-1.766 33.894L200.242 144v70.431l-60.38-35.215-22.232-88.99c-4.057-12.605-17.462-19.501-29.94-15.402-12.478 4.099-19.304 17.64-15.247 30.245l17.62 45.104-53.077-30.956c-11.363-6.627-25.893-2.694-32.454 8.785s-2.667 26.157 8.696 32.785l53.077 30.956-47.477 7.137C5.993 201.634-2.203 214.375.523 227.341c2.725 12.965 15.339 21.245 28.174 18.492l87.407-25.046L184 256l-67.896 35.215-87.406-25.045c-12.835-2.753-25.449 5.526-28.174 18.492-2.725 12.967 5.47 25.708 18.305 28.461l47.477 7.137-53.077 30.956C1.866 357.843-2.027 372.521 4.533 384s21.091 15.412 32.454 8.785l53.077-30.956-17.62 45.104a24.157 24.157 0 0 0 2.022 19.428c2.831 4.953 7.416 8.909 13.224 10.816 12.478 4.099 25.883-2.797 29.94-15.402l22.232-88.99 60.38-35.215V368l-65.175 63.945c-8.778 9.852-7.987 25.027 1.766 33.894 9.754 8.868 24.774 8.068 33.552-1.784l29.857-37.967V488c0 13.255 10.637 24 23.758 24s23.758-10.745 23.758-24v-61.912l29.857 37.967A23.59 23.59 0 0 0 295.282 472a23.534 23.534 0 0 0 15.885-6.161c9.753-8.867 10.544-24.042 1.766-33.894L247.758 368v-70.431l60.38 35.215 22.232 88.99c4.057 12.605 17.462 19.501 29.94 15.402 12.479-4.099 19.304-17.64 15.247-30.245l-17.621-45.104 53.077 30.956c11.363 6.627 25.893 2.694 32.454-8.785s2.667-26.157-8.696-32.785l-53.077-30.956 47.477-7.137c6.86-1.469 12.394-5.793 15.645-11.481z"],socks:[512,512,[],"f696","M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"],"solar-panel":[640,512,[],"f5ba","M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"],sort:[320,512,[],"f0dc","M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"],"sort-alpha-down":[448,512,[],"f15d","M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zm119.075-180.007A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"],"sort-alpha-up":[448,512,[],"f15e","M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zm301.671 98.621A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"],"sort-amount-down":[512,512,[],"f160","M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"],"sort-amount-up":[512,512,[],"f161","M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"],"sort-down":[320,512,[],"f0dd","M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"],"sort-numeric-down":[448,512,[],"f162","M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM175.984 368H128V48c0-8.837-7.163-16-16-16H80c-8.837 0-16 7.163-16 16v320H16.019c-14.212 0-21.384 17.244-11.314 27.314l79.981 80.002c6.245 6.245 16.38 6.247 22.627 0l79.984-80.002c10.05-10.05 2.928-27.314-11.313-27.314z"],"sort-numeric-up":[448,512,[],"f163","M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM16.016 144H64v320c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144h47.981c14.212 0 21.384-17.244 11.314-27.314l-79.981-80.002c-6.245-6.245-16.38-6.247-22.627 0L4.702 116.686C-5.347 126.736 1.775 144 16.016 144z"],"sort-up":[320,512,[],"f0de","M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"],spa:[576,512,[],"f5bb","M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"],"space-shuttle":[640,512,[],"f197","M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"],spider:[576,512,[],"f717","M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"],spinner:[512,512,[],"f110","M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"],splotch:[512,512,[],"f5bc","M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"],"spray-can":[512,512,[],"f5bd","M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"],square:[448,512,[],"f0c8","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],"square-full":[512,512,[],"f45c","M512 512H0V0h512v512z"],"square-root-alt":[576,512,[],"f698","M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"],stamp:[512,512,[],"f5bf","M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"],star:[576,512,[],"f005","M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"],"star-and-crescent":[512,512,[],"f699","M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"],"star-half":[576,512,[],"f089","M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"],"star-half-alt":[536,512,[],"f5c0","M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"],"star-of-david":[464,512,[],"f69a","M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"],"star-of-life":[480,512,[],"f621","M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"],"step-backward":[448,512,[],"f048","M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"],"step-forward":[448,512,[],"f051","M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"],stethoscope:[512,512,[],"f0f1","M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],"sticky-note":[448,512,[],"f249","M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"],stop:[448,512,[],"f04d","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"],"stop-circle":[512,512,[],"f28d","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"],stopwatch:[448,512,[],"f2f2","M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"],store:[616,512,[],"f54e","M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"],"store-alt":[640,512,[],"f54f","M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"],stream:[512,512,[],"f550","M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"],"street-view":[512,512,[],"f21d","M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"],strikethrough:[512,512,[],"f0cc","M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z"],stroopwafel:[512,512,[],"f551","M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"],subscript:[512,512,[],"f12c","M395.198 416c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 256c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 96H16C7.163 96 0 88.837 0 80V48c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035A15.999 15.999 0 0 1 204.226 32H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 256H272z"],subway:[448,512,[],"f239","M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"],suitcase:[512,512,[],"f0f2","M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"],"suitcase-rolling":[384,512,[],"f5c1","M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"],sun:[512,512,[],"f185","M274.835 12.646l25.516 62.393c4.213 10.301 16.671 14.349 26.134 8.492l57.316-35.479c15.49-9.588 34.808 4.447 30.475 22.142l-16.03 65.475c-2.647 10.81 5.053 21.408 16.152 22.231l67.224 4.987c18.167 1.348 25.546 24.057 11.641 35.826L441.81 242.26c-8.495 7.19-8.495 20.289 0 27.479l51.454 43.548c13.906 11.769 6.527 34.478-11.641 35.826l-67.224 4.987c-11.099.823-18.799 11.421-16.152 22.231l16.03 65.475c4.332 17.695-14.986 31.73-30.475 22.142l-57.316-35.479c-9.463-5.858-21.922-1.81-26.134 8.492l-25.516 62.393c-6.896 16.862-30.774 16.862-37.67 0l-25.516-62.393c-4.213-10.301-16.671-14.349-26.134-8.492l-57.317 35.479c-15.49 9.588-34.808-4.447-30.475-22.142l16.03-65.475c2.647-10.81-5.053-21.408-16.152-22.231l-67.224-4.987c-18.167-1.348-25.546-24.057-11.641-35.826L70.19 269.74c8.495-7.19 8.495-20.289 0-27.479l-51.454-43.548c-13.906-11.769-6.527-34.478 11.641-35.826l67.224-4.987c11.099-.823 18.799-11.421 16.152-22.231l-16.03-65.475c-4.332-17.695 14.986-31.73 30.475-22.142l57.317 35.479c9.463 5.858 21.921 1.81 26.134-8.492l25.516-62.393c6.896-16.861 30.774-16.861 37.67 0zM392 256c0-74.991-61.01-136-136-136-74.991 0-136 61.009-136 136s61.009 136 136 136c74.99 0 136-61.009 136-136zm-32 0c0 57.346-46.654 104-104 104s-104-46.654-104-104 46.654-104 104-104 104 46.654 104 104z"],superscript:[512,512,[],"f12b","M395.198 256c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 256H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035a16 16 0 0 1 13.598-7.567H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 416H272z"],surprise:[496,512,[],"f5c2","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],swatchbook:[511,512,[],"f5c3","M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z"],swimmer:[640,512,[],"f5c4","M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"],"swimming-pool":[640,512,[],"f5c5","M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"],synagogue:[640,512,[],"f69b","M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"],sync:[512,512,[],"f021","M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z"],"sync-alt":[512,512,[],"f2f1","M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"],syringe:[512,512,[],"f48e","M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"],table:[512,512,[],"f0ce","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"],"table-tennis":[512,512,[],"f45d","M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"],tablet:[448,512,[],"f10a","M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"tablet-alt":[448,512,[],"f3fa","M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"],tablets:[640,512,[],"f490","M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"],"tachometer-alt":[576,512,[],"f3fd","M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],tag:[512,512,[],"f02b","M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"],tags:[640,512,[],"f02c","M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"],tape:[640,512,[],"f4db","M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"],tasks:[512,512,[],"f0ae","M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z"],taxi:[512,512,[],"f1ba","M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],teeth:[640,512,[],"f62e","M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"],"teeth-open":[640,512,[],"f62f","M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"],terminal:[640,512,[],"f120","M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"],"text-height":[576,512,[],"f034","M16 32h288c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96h-54.761v320H232c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H88c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm475.308 4.685l79.995 80.001C581.309 126.693 574.297 144 559.99 144H512v224h48c15.639 0 20.635 17.991 11.313 27.314l-79.995 80.001c-6.247 6.247-16.381 6.245-22.626 0l-79.995-80.001C378.691 385.307 385.703 368 400.01 368H448V144h-48c-15.639 0-20.635-17.991-11.313-27.314l79.995-80.001c6.247-6.248 16.381-6.245 22.626 0z"],"text-width":[448,512,[],"f035","M16 32h416c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96H261.743v128H296c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H152c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm427.315 340.682l-80.001-79.995C353.991 283.365 336 288.362 336 304v48H112v-47.99c0-14.307-17.307-21.319-27.314-11.313L4.685 372.692c-6.245 6.245-6.247 16.379 0 22.626l80.001 79.995C94.009 484.635 112 479.638 112 464v-48h224v47.99c0 14.307 17.307 21.319 27.314 11.313l80.001-79.995c6.245-6.245 6.248-16.379 0-22.626z"],th:[512,512,[],"f00a","M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"],"th-large":[512,512,[],"f009","M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"],"th-list":[512,512,[],"f00b","M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"],"theater-masks":[640,512,[],"f630","M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"],thermometer:[512,512,[],"f491","M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"],"thermometer-empty":[256,512,[],"f2cb","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],"thermometer-full":[256,512,[],"f2c7","M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"],"thermometer-half":[256,512,[],"f2c9","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],"thermometer-quarter":[256,512,[],"f2ca","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],"thermometer-three-quarters":[256,512,[],"f2c8","M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"],"thumbs-down":[512,512,[],"f165","M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"],"thumbs-up":[512,512,[],"f164","M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"],thumbtack:[384,512,[],"f08d","M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"],"ticket-alt":[576,512,[],"f3ff","M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"],times:[352,512,[],"f00d","M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"],"times-circle":[512,512,[],"f057","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"],tint:[352,512,[],"f043","M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"],"tint-slash":[640,512,[],"f5c7","M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"],tired:[496,512,[],"f5c8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"],"toggle-off":[576,512,[],"f204","M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"],"toggle-on":[576,512,[],"f205","M576 256c0 106.039-85.961 192-192 192H192C85.961 448 0 362.039 0 256S85.961 64 192 64h192c106.039 0 192 85.961 192 192zM384 128c-70.741 0-128 57.249-128 128 0 70.741 57.249 128 128 128 70.741 0 128-57.249 128-128 0-70.741-57.249-128-128-128"],"toilet-paper":[576,512,[],"f71e","M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"],toolbox:[512,512,[],"f552","M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"],tooth:[448,512,[],"f5c9","M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"],torah:[448,512,[],"f6a0","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM139.11 141.21c-2.77-4.41.4-10.14 5.6-10.14h53.08c.9 0 1.73-.46 2.21-1.22l34.4-54.76c2.6-4.13 8.61-4.13 11.21 0l34.4 54.76a2.61 2.61 0 0 0 2.21 1.22h53.08c5.2 0 8.37 5.73 5.6 10.14L314.01 184l26.88 42.79c2.77 4.4-.4 10.13-5.6 10.13h-53.08c-.9 0-1.73.46-2.21 1.22l-34.4 54.76c-2.6 4.13-8.61 4.13-11.21 0L200 238.15a2.61 2.61 0 0 0-2.21-1.22h-53.08c-5.2 0-8.37-5.73-5.6-10.13l26.88-42.8-26.88-42.79zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"],"torii-gate":[512,512,[],"f6a1","M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"],tractor:[640,512,[],"f722","M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"],trademark:[640,512,[],"f25c","M97.119 163.133H12c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h248.559c6.627 0 12 5.373 12 12v43.133c0 6.627-5.373 12-12 12H175.44V404c0 6.627-5.373 12-12 12h-54.322c-6.627 0-12-5.373-12-12V163.133zM329.825 96h65.425a12 12 0 0 1 11.346 8.093l43.759 127.068c7.161 20.588 16.111 52.812 16.111 52.812h.896s8.95-32.224 16.111-52.812l43.758-127.068A12 12 0 0 1 538.577 96h65.41a12 12 0 0 1 11.961 11.03l24.012 296c.567 6.987-4.951 12.97-11.961 12.97h-54.101a12 12 0 0 1-11.972-11.182l-9.082-132.93c-1.79-24.168 0-53.706 0-53.706h-.896s-10.741 33.566-17.902 53.706l-30.7 84.731a12 12 0 0 1-11.282 7.912h-50.302a12 12 0 0 1-11.282-7.912l-30.7-84.731c-7.161-20.14-17.903-53.706-17.903-53.706h-.895s1.79 29.538 0 53.706l-9.082 132.93c-.428 6.295-5.66 11.182-11.97 11.182H305.4c-7.017 0-12.536-5.994-11.959-12.987l24.425-296A11.999 11.999 0 0 1 329.825 96z"],"traffic-light":[384,512,[],"f637","M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"],train:[448,512,[],"f238","M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"],transgender:[384,512,[],"f224","M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],"transgender-alt":[480,512,[],"f225","M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],trash:[448,512,[],"f1f8","M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm415.2 56.7L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32.8 140.7c-.4-6.9 5.1-12.7 12-12.7h358.5c6.8 0 12.3 5.8 11.9 12.7z"],"trash-alt":[448,512,[],"f2ed","M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"],tree:[384,512,[],"f1bb","M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"],trophy:[576,512,[],"f091","M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"],truck:[640,512,[],"f0d1","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"],"truck-loading":[640,512,[],"f4de","M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"],"truck-monster":[640,512,[],"f63b","M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"],"truck-moving":[640,512,[],"f4df","M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"],"truck-pickup":[640,512,[],"f63c","M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"],tshirt:[640,512,[],"f553","M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"],tty:[512,512,[],"f1e4","M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"],tv:[640,512,[],"f26c","M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z"],umbrella:[576,512,[],"f0e9","M557.011 267.631c-51.432-45.217-107.572-43.698-158.567 30.731-5.298 7.861-14.906 7.165-19.736 0-2.483-3.624-32.218-60.808-90.708-60.808-45.766 0-70.542 31.378-90.709 60.808-4.829 7.165-14.436 7.861-19.734 0-50.904-74.285-106.613-76.406-158.567-30.731-10.21 8.264-20.912-1.109-18.696-9.481C32.146 134.573 158.516 64.612 288.001 64.612c128.793 0 256.546 69.961 287.706 193.538 2.206 8.322-8.426 17.793-18.696 9.481zM256 261.001V416c0 17.645-14.355 32-32 32s-32-14.355-32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 52.935 43.065 96 96 96s96-43.065 96-96V261.288c-21.836-10.806-45.425-9.737-64-.287zm64-211.007V32c0-17.673-14.327-32-32-32s-32 14.327-32 32v17.987a372.105 372.105 0 0 1 64 .007z"],"umbrella-beach":[640,512,[],"f5ca","M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"],underline:[448,512,[],"f0cd","M224.264 388.24c-91.669 0-156.603-51.165-156.603-151.392V64H39.37c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h137.39c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.813v172.848c0 53.699 28.314 79.444 76.317 79.444 46.966 0 75.796-25.434 75.796-79.965V64h-28.291c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h136.868c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.291v172.848c0 99.405-64.881 151.392-156.082 151.392zM16 448h416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16z"],undo:[512,512,[],"f0e2","M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"],"undo-alt":[512,512,[],"f2ea","M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"],"universal-access":[512,512,[],"f29a","M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"],university:[512,512,[],"f19c","M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"],unlink:[512,512,[],"f127","M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"],unlock:[448,512,[],"f09c","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"],"unlock-alt":[448,512,[],"f13e","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"],upload:[512,512,[],"f093","M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"],user:[448,512,[],"f007","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],"user-alt":[512,512,[],"f406","M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"],"user-alt-slash":[640,512,[],"f4fa","M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"],"user-astronaut":[448,512,[],"f4fb","M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"],"user-check":[640,512,[],"f4fc","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"],"user-circle":[496,512,[],"f2bd","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"],"user-clock":[640,512,[],"f4fd","M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"],"user-cog":[640,512,[],"f4fe","M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"],"user-edit":[640,512,[],"f4ff","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"],"user-friends":[640,512,[],"f500","M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"],"user-graduate":[448,512,[],"f501","M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"],"user-injured":[448,512,[],"f728","M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"],"user-lock":[640,512,[],"f502","M320 320c0-11.1 3.1-21.4 8.1-30.5-4.8-.5-9.5-1.5-14.5-1.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h280.9c-5.5-9.5-8.9-20.3-8.9-32V320zm-96-64c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm384 32h-32v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80v48h-32c-17.7 0-32 14.3-32 32v160c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zm-80 0h-64v-48c0-17.6 14.4-32 32-32s32 14.4 32 32v48z"],"user-md":[448,512,[],"f0f0","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"],"user-minus":[640,512,[],"f503","M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],"user-ninja":[448,512,[],"f504","M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"],"user-plus":[640,512,[],"f234","M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],"user-secret":[448,512,[],"f21b","M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"],"user-shield":[640,512,[],"f505","M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"],"user-slash":[640,512,[],"f506","M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"],"user-tag":[640,512,[],"f507","M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"],"user-tie":[448,512,[],"f508","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"],"user-times":[640,512,[],"f235","M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"],users:[640,512,[],"f0c0","M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"],"users-cog":[640,512,[],"f509","M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"],"utensil-spoon":[512,512,[],"f2e5","M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"],utensils:[416,512,[],"f2e7","M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"],"vector-square":[512,512,[],"f5cb","M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"],venus:[288,512,[],"f221","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"],"venus-double":[512,512,[],"f226","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"],"venus-mars":[576,512,[],"f228","M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"],vial:[480,512,[],"f492","M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"],vials:[640,512,[],"f493","M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"],video:[576,512,[],"f03d","M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"],"video-slash":[640,512,[],"f4e2","M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"],vihara:[640,512,[],"f6a7","M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"],"volleyball-ball":[495,512,[],"f45f","M223.3 243.4c-.9-37-8.6-72.8-22.7-105.7-90.8 42.4-157.5 122.4-180.3 216.8 13.4 30.8 32.9 58.3 56.9 81.1 22.7-79.2 74.2-147.8 146.1-192.2zM186.4 109c-15-26.4-34.5-50.1-57.4-70.7C38 88.1-15.8 191.2 4 300.5c33.4-83.1 98.4-152 182.4-191.5zM374 274.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5 57.3 59.3 91 138.2 93.5 222.7 32.5 17.7 67.3 29 102.9 33.2zm-124.7 9.5c-31.6 19.3-58.7 43.9-80.2 72.6 82 57.3 184.5 75.1 277.5 47.8 19.7-26.4 34.2-56.8 42.2-89.9-26.6 6.6-53.7 10.4-80.9 10.4-54.6-.1-108.9-14.1-158.6-40.9zM151 383.3c-15.2 26-25.7 54.4-32.1 84.2 37.6 23 81.7 36.5 129.1 36.5 61 0 116.7-22.1 159.9-58.6C295 461.5 204.6 420.6 151 383.3zM331.3 22.7c55.3 70.4 82.5 161.2 74.6 253.6 30.3.2 60.5-4.8 89.7-14.2 0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"],"volume-down":[384,512,[],"f027","M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"],"volume-mute":[512,512,[],"f6a9","M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"],"volume-off":[257,512,[],"f026","M216.36 71.04L127.39 160H25.33c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.47-25.96-31.98-40.97-16.98z"],"volume-up":[576,512,[],"f028","M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"],walking:[320,512,[],"f554","M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"],wallet:[512,512,[],"f555","M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"],warehouse:[640,512,[],"f494","M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"],weight:[512,512,[],"f496","M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"],"weight-hanging":[512,512,[],"f5cd","M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"],wheelchair:[512,512,[],"f193","M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"],wifi:[640,512,[],"f1eb","M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"],wind:[512,512,[],"f72e","M156.66 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h142.19c15.95 0 30.77 10.85 33.37 26.58C194.86 366.6 179.42 384 160 384c-14.11 0-26.13-9.19-30.37-21.9-2.11-6.31-8.6-10.1-15.25-10.1H81.63c-9.8 0-17.73 8.81-15.86 18.43C74.39 414.58 113.37 448 160 448c57.09 0 102.7-50.09 95.19-108.63-6.21-48.39-49.74-83.37-98.53-83.37zM16 224h336c59.7 0 106.83-54.76 93.83-116.69-7.61-36.23-36.91-65.53-73.14-73.14-55.44-11.64-105.13 24.91-114.93 75.53-1.86 9.57 6.09 18.3 15.84 18.3h32.8c6.65 0 13.14-3.79 15.25-10.1C325.88 105.19 337.89 96 352 96c19.42 0 34.86 17.39 31.55 37.41-2.6 15.73-17.42 26.59-33.37 26.59H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm384 32H243.68c19.34 16.57 33.19 38.79 39.77 64H400c26.47 0 48 21.53 48 48s-21.53 48-48 48c-17.86 0-33.33-9.86-41.56-24.38-2.85-5.03-8.69-7.62-14.47-7.62h-33.82c-10.91 0-18.96 10.81-15.35 21.1 17.77 50.6 70.54 84.75 129.41 72.35 41.22-8.69 75.1-41.65 84.67-82.68C525.98 321.46 470.48 256 400 256z"],"window-close":[512,512,[],"f410","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"],"window-maximize":[512,512,[],"f2d0","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"],"window-minimize":[512,512,[],"f2d1","M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"],"window-restore":[512,512,[],"f2d2","M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"],"wine-bottle":[512,512,[],"f72f","M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"],"wine-glass":[288,512,[],"f4e3","M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"],"wine-glass-alt":[288,512,[],"f5ce","M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"],"won-sign":[576,512,[],"f159","M564 192c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-48.028l18.572-80.61c1.732-7.518-3.978-14.694-11.693-14.694h-46.107a11.998 11.998 0 0 0-11.736 9.5L450.73 128H340.839l-19.725-85.987a12 12 0 0 0-11.696-9.317H265.43a12 12 0 0 0-11.687 9.277L233.696 128H124.975L107.5 42.299a12 12 0 0 0-11.758-9.602H53.628c-7.686 0-13.39 7.124-11.709 14.624L60 128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h62.342l7.171 32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h83.856l40.927 182.624A12 12 0 0 0 148.492 480h56.767c5.583 0 10.428-3.85 11.689-9.288L259.335 288h55.086l42.386 182.712A12 12 0 0 0 368.496 480h56.826a12 12 0 0 0 11.694-9.306L479.108 288H564c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-70.146l7.373-32H564zm-425.976 0h80.757l-7.457 32h-66.776l-6.524-32zm45.796 150.029c-6.194 25.831-6.758 47.25-7.321 47.25h-1.126s-1.689-22.05-6.758-47.25L157.599 288h38.812l-12.591 54.029zM274.182 224l1.996-8.602c1.856-7.962 3.457-15.968 4.803-23.398h11.794c1.347 7.43 2.947 15.436 4.803 23.398l1.996 8.602h-25.392zm130.959 118.029c-5.068 25.2-6.758 47.25-6.758 47.25h-1.126c-.563 0-1.126-21.42-7.321-47.25L377.542 288h39.107l-11.508 54.029zM430.281 224h-67.42l-7.34-32h81.577l-6.817 32z"],wrench:[512,512,[],"f0ad","M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"],"x-ray":[640,512,[],"f497","M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"],"yen-sign":[384,512,[],"f157","M351.208 32h-65.277a12 12 0 0 0-10.778 6.724l-55.39 113.163c-14.513 34.704-27.133 71.932-27.133 71.932h-1.262s-12.62-37.228-27.133-71.932l-55.39-113.163A11.997 11.997 0 0 0 98.068 32H32.792c-9.057 0-14.85 9.65-10.59 17.643L102.322 200H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h88.162L152 293.228V320H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h108v92c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-92h108c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H232v-26.772L251.838 256H340c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12h-58.322l80.12-150.357C366.058 41.65 360.266 32 351.208 32z"],"yin-yang":[496,512,[],"f6ad","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]};!function(c){try{c()}catch(c){if(!s)throw c}}(function(){!function c(h,l){var v=Object.keys(l).reduce(function(c,h){var v=l[h];return v.icon?c[v.iconName]=v.icon:c[h]=v,c},{});"function"==typeof V.hooks.addPack?V.hooks.addPack(h,v):V.styles[h]=a({},V.styles[h]||{},v),"fas"===h&&c("fa",l)}("fas",C)})}();
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/js/v4-shims.js b/htdocs/theme/common/fontawesome-5/js/v4-shims.js
    new file mode 100644
    index 00000000000..fc766a31eba
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/v4-shims.js
    @@ -0,0 +1,91 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +(function (global, factory) {
    +	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
    +	typeof define === 'function' && define.amd ? define(factory) :
    +	(global['fontawesome-free-shims'] = factory());
    +}(this, (function () { 'use strict';
    +
    +var _WINDOW = {};
    +try {
    +  if (typeof window !== 'undefined') _WINDOW = window;
    +  
    +} catch (e) {}
    +
    +var _ref = _WINDOW.navigator || {};
    +var _ref$userAgent = _ref.userAgent;
    +var userAgent = _ref$userAgent === undefined ? '' : _ref$userAgent;
    +
    +var WINDOW = _WINDOW;
    +
    +
    +
    +
    +
    +var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
    +
    +var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +var PRODUCTION = function () {
    +  try {
    +    return process.env.NODE_ENV === 'production';
    +  } catch (e) {
    +    return false;
    +  }
    +}();
    +
    +var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    +var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
    +
    +
    +
    +var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter'].concat(oneToTen.map(function (n) {
    +  return n + 'x';
    +})).concat(oneToTwenty.map(function (n) {
    +  return 'w-' + n;
    +}));
    +
    +function bunker(fn) {
    +  try {
    +    fn();
    +  } catch (e) {
    +    if (!PRODUCTION) {
    +      throw e;
    +    }
    +  }
    +}
    +
    +var w = WINDOW || {};
    +
    +if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
    +if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
    +if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
    +if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
    +
    +var namespace = w[NAMESPACE_IDENTIFIER];
    +
    +var shims = [["glass", null, "glass-martini"], ["meetup", "fab", null], ["star-o", "far", "star"], ["remove", null, "times"], ["close", null, "times"], ["gear", null, "cog"], ["trash-o", "far", "trash-alt"], ["file-o", "far", "file"], ["clock-o", "far", "clock"], ["arrow-circle-o-down", "far", "arrow-alt-circle-down"], ["arrow-circle-o-up", "far", "arrow-alt-circle-up"], ["play-circle-o", "far", "play-circle"], ["repeat", null, "redo"], ["rotate-right", null, "redo"], ["refresh", null, "sync"], ["list-alt", "far", null], ["dedent", null, "outdent"], ["video-camera", null, "video"], ["picture-o", "far", "image"], ["photo", "far", "image"], ["image", "far", "image"], ["pencil", null, "pencil-alt"], ["map-marker", null, "map-marker-alt"], ["pencil-square-o", "far", "edit"], ["share-square-o", "far", "share-square"], ["check-square-o", "far", "check-square"], ["arrows", null, "arrows-alt"], ["times-circle-o", "far", "times-circle"], ["check-circle-o", "far", "check-circle"], ["mail-forward", null, "share"], ["eye", "far", null], ["eye-slash", "far", null], ["warning", null, "exclamation-triangle"], ["calendar", null, "calendar-alt"], ["arrows-v", null, "arrows-alt-v"], ["arrows-h", null, "arrows-alt-h"], ["bar-chart", "far", "chart-bar"], ["bar-chart-o", "far", "chart-bar"], ["twitter-square", "fab", null], ["facebook-square", "fab", null], ["gears", null, "cogs"], ["thumbs-o-up", "far", "thumbs-up"], ["thumbs-o-down", "far", "thumbs-down"], ["heart-o", "far", "heart"], ["sign-out", null, "sign-out-alt"], ["linkedin-square", "fab", "linkedin"], ["thumb-tack", null, "thumbtack"], ["external-link", null, "external-link-alt"], ["sign-in", null, "sign-in-alt"], ["github-square", "fab", null], ["lemon-o", "far", "lemon"], ["square-o", "far", "square"], ["bookmark-o", "far", "bookmark"], ["twitter", "fab", null], ["facebook", "fab", "facebook-f"], ["facebook-f", "fab", "facebook-f"], ["github", "fab", null], ["credit-card", "far", null], ["feed", null, "rss"], ["hdd-o", "far", "hdd"], ["hand-o-right", "far", "hand-point-right"], ["hand-o-left", "far", "hand-point-left"], ["hand-o-up", "far", "hand-point-up"], ["hand-o-down", "far", "hand-point-down"], ["arrows-alt", null, "expand-arrows-alt"], ["group", null, "users"], ["chain", null, "link"], ["scissors", null, "cut"], ["files-o", "far", "copy"], ["floppy-o", "far", "save"], ["navicon", null, "bars"], ["reorder", null, "bars"], ["pinterest", "fab", null], ["pinterest-square", "fab", null], ["google-plus-square", "fab", null], ["google-plus", "fab", "google-plus-g"], ["money", "far", "money-bill-alt"], ["unsorted", null, "sort"], ["sort-desc", null, "sort-down"], ["sort-asc", null, "sort-up"], ["linkedin", "fab", "linkedin-in"], ["rotate-left", null, "undo"], ["legal", null, "gavel"], ["tachometer", null, "tachometer-alt"], ["dashboard", null, "tachometer-alt"], ["comment-o", "far", "comment"], ["comments-o", "far", "comments"], ["flash", null, "bolt"], ["clipboard", "far", null], ["paste", "far", "clipboard"], ["lightbulb-o", "far", "lightbulb"], ["exchange", null, "exchange-alt"], ["cloud-download", null, "cloud-download-alt"], ["cloud-upload", null, "cloud-upload-alt"], ["bell-o", "far", "bell"], ["cutlery", null, "utensils"], ["file-text-o", "far", "file-alt"], ["building-o", "far", "building"], ["hospital-o", "far", "hospital"], ["tablet", null, "tablet-alt"], ["mobile", null, "mobile-alt"], ["mobile-phone", null, "mobile-alt"], ["circle-o", "far", "circle"], ["mail-reply", null, "reply"], ["github-alt", "fab", null], ["folder-o", "far", "folder"], ["folder-open-o", "far", "folder-open"], ["smile-o", "far", "smile"], ["frown-o", "far", "frown"], ["meh-o", "far", "meh"], ["keyboard-o", "far", "keyboard"], ["flag-o", "far", "flag"], ["mail-reply-all", null, "reply-all"], ["star-half-o", "far", "star-half"], ["star-half-empty", "far", "star-half"], ["star-half-full", "far", "star-half"], ["code-fork", null, "code-branch"], ["chain-broken", null, "unlink"], ["shield", null, "shield-alt"], ["calendar-o", "far", "calendar"], ["maxcdn", "fab", null], ["html5", "fab", null], ["css3", "fab", null], ["ticket", null, "ticket-alt"], ["minus-square-o", "far", "minus-square"], ["level-up", null, "level-up-alt"], ["level-down", null, "level-down-alt"], ["pencil-square", null, "pen-square"], ["external-link-square", null, "external-link-square-alt"], ["compass", "far", null], ["caret-square-o-down", "far", "caret-square-down"], ["toggle-down", "far", "caret-square-down"], ["caret-square-o-up", "far", "caret-square-up"], ["toggle-up", "far", "caret-square-up"], ["caret-square-o-right", "far", "caret-square-right"], ["toggle-right", "far", "caret-square-right"], ["eur", null, "euro-sign"], ["euro", null, "euro-sign"], ["gbp", null, "pound-sign"], ["usd", null, "dollar-sign"], ["dollar", null, "dollar-sign"], ["inr", null, "rupee-sign"], ["rupee", null, "rupee-sign"], ["jpy", null, "yen-sign"], ["cny", null, "yen-sign"], ["rmb", null, "yen-sign"], ["yen", null, "yen-sign"], ["rub", null, "ruble-sign"], ["ruble", null, "ruble-sign"], ["rouble", null, "ruble-sign"], ["krw", null, "won-sign"], ["won", null, "won-sign"], ["btc", "fab", null], ["bitcoin", "fab", "btc"], ["file-text", null, "file-alt"], ["sort-alpha-asc", null, "sort-alpha-down"], ["sort-alpha-desc", null, "sort-alpha-up"], ["sort-amount-asc", null, "sort-amount-down"], ["sort-amount-desc", null, "sort-amount-up"], ["sort-numeric-asc", null, "sort-numeric-down"], ["sort-numeric-desc", null, "sort-numeric-up"], ["youtube-square", "fab", null], ["youtube", "fab", null], ["xing", "fab", null], ["xing-square", "fab", null], ["youtube-play", "fab", "youtube"], ["dropbox", "fab", null], ["stack-overflow", "fab", null], ["instagram", "fab", null], ["flickr", "fab", null], ["adn", "fab", null], ["bitbucket", "fab", null], ["bitbucket-square", "fab", "bitbucket"], ["tumblr", "fab", null], ["tumblr-square", "fab", null], ["long-arrow-down", null, "long-arrow-alt-down"], ["long-arrow-up", null, "long-arrow-alt-up"], ["long-arrow-left", null, "long-arrow-alt-left"], ["long-arrow-right", null, "long-arrow-alt-right"], ["apple", "fab", null], ["windows", "fab", null], ["android", "fab", null], ["linux", "fab", null], ["dribbble", "fab", null], ["skype", "fab", null], ["foursquare", "fab", null], ["trello", "fab", null], ["gratipay", "fab", null], ["gittip", "fab", "gratipay"], ["sun-o", "far", "sun"], ["moon-o", "far", "moon"], ["vk", "fab", null], ["weibo", "fab", null], ["renren", "fab", null], ["pagelines", "fab", null], ["stack-exchange", "fab", null], ["arrow-circle-o-right", "far", "arrow-alt-circle-right"], ["arrow-circle-o-left", "far", "arrow-alt-circle-left"], ["caret-square-o-left", "far", "caret-square-left"], ["toggle-left", "far", "caret-square-left"], ["dot-circle-o", "far", "dot-circle"], ["vimeo-square", "fab", null], ["try", null, "lira-sign"], ["turkish-lira", null, "lira-sign"], ["plus-square-o", "far", "plus-square"], ["slack", "fab", null], ["wordpress", "fab", null], ["openid", "fab", null], ["institution", null, "university"], ["bank", null, "university"], ["mortar-board", null, "graduation-cap"], ["yahoo", "fab", null], ["google", "fab", null], ["reddit", "fab", null], ["reddit-square", "fab", null], ["stumbleupon-circle", "fab", null], ["stumbleupon", "fab", null], ["delicious", "fab", null], ["digg", "fab", null], ["pied-piper-pp", "fab", null], ["pied-piper-alt", "fab", null], ["drupal", "fab", null], ["joomla", "fab", null], ["spoon", null, "utensil-spoon"], ["behance", "fab", null], ["behance-square", "fab", null], ["steam", "fab", null], ["steam-square", "fab", null], ["automobile", null, "car"], ["cab", null, "taxi"], ["envelope-o", "far", "envelope"], ["deviantart", "fab", null], ["soundcloud", "fab", null], ["file-pdf-o", "far", "file-pdf"], ["file-word-o", "far", "file-word"], ["file-excel-o", "far", "file-excel"], ["file-powerpoint-o", "far", "file-powerpoint"], ["file-image-o", "far", "file-image"], ["file-photo-o", "far", "file-image"], ["file-picture-o", "far", "file-image"], ["file-archive-o", "far", "file-archive"], ["file-zip-o", "far", "file-archive"], ["file-audio-o", "far", "file-audio"], ["file-sound-o", "far", "file-audio"], ["file-video-o", "far", "file-video"], ["file-movie-o", "far", "file-video"], ["file-code-o", "far", "file-code"], ["vine", "fab", null], ["codepen", "fab", null], ["jsfiddle", "fab", null], ["life-ring", "far", null], ["life-bouy", "far", "life-ring"], ["life-buoy", "far", "life-ring"], ["life-saver", "far", "life-ring"], ["support", "far", "life-ring"], ["circle-o-notch", null, "circle-notch"], ["rebel", "fab", null], ["ra", "fab", "rebel"], ["resistance", "fab", "rebel"], ["empire", "fab", null], ["ge", "fab", "empire"], ["git-square", "fab", null], ["git", "fab", null], ["hacker-news", "fab", null], ["y-combinator-square", "fab", "hacker-news"], ["yc-square", "fab", "hacker-news"], ["tencent-weibo", "fab", null], ["qq", "fab", null], ["weixin", "fab", null], ["wechat", "fab", "weixin"], ["send", null, "paper-plane"], ["paper-plane-o", "far", "paper-plane"], ["send-o", "far", "paper-plane"], ["circle-thin", "far", "circle"], ["header", null, "heading"], ["sliders", null, "sliders-h"], ["futbol-o", "far", "futbol"], ["soccer-ball-o", "far", "futbol"], ["slideshare", "fab", null], ["twitch", "fab", null], ["yelp", "fab", null], ["newspaper-o", "far", "newspaper"], ["paypal", "fab", null], ["google-wallet", "fab", null], ["cc-visa", "fab", null], ["cc-mastercard", "fab", null], ["cc-discover", "fab", null], ["cc-amex", "fab", null], ["cc-paypal", "fab", null], ["cc-stripe", "fab", null], ["bell-slash-o", "far", "bell-slash"], ["trash", null, "trash-alt"], ["copyright", "far", null], ["eyedropper", null, "eye-dropper"], ["area-chart", null, "chart-area"], ["pie-chart", null, "chart-pie"], ["line-chart", null, "chart-line"], ["lastfm", "fab", null], ["lastfm-square", "fab", null], ["ioxhost", "fab", null], ["angellist", "fab", null], ["cc", "far", "closed-captioning"], ["ils", null, "shekel-sign"], ["shekel", null, "shekel-sign"], ["sheqel", null, "shekel-sign"], ["meanpath", "fab", "font-awesome"], ["buysellads", "fab", null], ["connectdevelop", "fab", null], ["dashcube", "fab", null], ["forumbee", "fab", null], ["leanpub", "fab", null], ["sellsy", "fab", null], ["shirtsinbulk", "fab", null], ["simplybuilt", "fab", null], ["skyatlas", "fab", null], ["diamond", "far", "gem"], ["intersex", null, "transgender"], ["facebook-official", "fab", "facebook"], ["pinterest-p", "fab", null], ["whatsapp", "fab", null], ["hotel", null, "bed"], ["viacoin", "fab", null], ["medium", "fab", null], ["y-combinator", "fab", null], ["yc", "fab", "y-combinator"], ["optin-monster", "fab", null], ["opencart", "fab", null], ["expeditedssl", "fab", null], ["battery-4", null, "battery-full"], ["battery", null, "battery-full"], ["battery-3", null, "battery-three-quarters"], ["battery-2", null, "battery-half"], ["battery-1", null, "battery-quarter"], ["battery-0", null, "battery-empty"], ["object-group", "far", null], ["object-ungroup", "far", null], ["sticky-note-o", "far", "sticky-note"], ["cc-jcb", "fab", null], ["cc-diners-club", "fab", null], ["clone", "far", null], ["hourglass-o", "far", "hourglass"], ["hourglass-1", null, "hourglass-start"], ["hourglass-2", null, "hourglass-half"], ["hourglass-3", null, "hourglass-end"], ["hand-rock-o", "far", "hand-rock"], ["hand-grab-o", "far", "hand-rock"], ["hand-paper-o", "far", "hand-paper"], ["hand-stop-o", "far", "hand-paper"], ["hand-scissors-o", "far", "hand-scissors"], ["hand-lizard-o", "far", "hand-lizard"], ["hand-spock-o", "far", "hand-spock"], ["hand-pointer-o", "far", "hand-pointer"], ["hand-peace-o", "far", "hand-peace"], ["registered", "far", null], ["creative-commons", "fab", null], ["gg", "fab", null], ["gg-circle", "fab", null], ["tripadvisor", "fab", null], ["odnoklassniki", "fab", null], ["odnoklassniki-square", "fab", null], ["get-pocket", "fab", null], ["wikipedia-w", "fab", null], ["safari", "fab", null], ["chrome", "fab", null], ["firefox", "fab", null], ["opera", "fab", null], ["internet-explorer", "fab", null], ["television", null, "tv"], ["contao", "fab", null], ["500px", "fab", null], ["amazon", "fab", null], ["calendar-plus-o", "far", "calendar-plus"], ["calendar-minus-o", "far", "calendar-minus"], ["calendar-times-o", "far", "calendar-times"], ["calendar-check-o", "far", "calendar-check"], ["map-o", "far", "map"], ["commenting", "far", "comment-dots"], ["commenting-o", "far", "comment-dots"], ["houzz", "fab", null], ["vimeo", "fab", "vimeo-v"], ["black-tie", "fab", null], ["fonticons", "fab", null], ["reddit-alien", "fab", null], ["edge", "fab", null], ["credit-card-alt", null, "credit-card"], ["codiepie", "fab", null], ["modx", "fab", null], ["fort-awesome", "fab", null], ["usb", "fab", null], ["product-hunt", "fab", null], ["mixcloud", "fab", null], ["scribd", "fab", null], ["pause-circle-o", "far", "pause-circle"], ["stop-circle-o", "far", "stop-circle"], ["bluetooth", "fab", null], ["bluetooth-b", "fab", null], ["gitlab", "fab", null], ["wpbeginner", "fab", null], ["wpforms", "fab", null], ["envira", "fab", null], ["wheelchair-alt", "fab", "accessible-icon"], ["question-circle-o", "far", "question-circle"], ["volume-control-phone", null, "phone-volume"], ["asl-interpreting", null, "american-sign-language-interpreting"], ["deafness", null, "deaf"], ["hard-of-hearing", null, "deaf"], ["glide", "fab", null], ["glide-g", "fab", null], ["signing", null, "sign-language"], ["viadeo", "fab", null], ["viadeo-square", "fab", null], ["snapchat", "fab", null], ["snapchat-ghost", "fab", null], ["snapchat-square", "fab", null], ["pied-piper", "fab", null], ["first-order", "fab", null], ["yoast", "fab", null], ["themeisle", "fab", null], ["google-plus-official", "fab", "google-plus"], ["google-plus-circle", "fab", "google-plus"], ["font-awesome", "fab", null], ["fa", "fab", "font-awesome"], ["handshake-o", "far", "handshake"], ["envelope-open-o", "far", "envelope-open"], ["linode", "fab", null], ["address-book-o", "far", "address-book"], ["vcard", null, "address-card"], ["address-card-o", "far", "address-card"], ["vcard-o", "far", "address-card"], ["user-circle-o", "far", "user-circle"], ["user-o", "far", "user"], ["id-badge", "far", null], ["drivers-license", null, "id-card"], ["id-card-o", "far", "id-card"], ["drivers-license-o", "far", "id-card"], ["quora", "fab", null], ["free-code-camp", "fab", null], ["telegram", "fab", null], ["thermometer-4", null, "thermometer-full"], ["thermometer", null, "thermometer-full"], ["thermometer-3", null, "thermometer-three-quarters"], ["thermometer-2", null, "thermometer-half"], ["thermometer-1", null, "thermometer-quarter"], ["thermometer-0", null, "thermometer-empty"], ["bathtub", null, "bath"], ["s15", null, "bath"], ["window-maximize", "far", null], ["window-restore", "far", null], ["times-rectangle", null, "window-close"], ["window-close-o", "far", "window-close"], ["times-rectangle-o", "far", "window-close"], ["bandcamp", "fab", null], ["grav", "fab", null], ["etsy", "fab", null], ["imdb", "fab", null], ["ravelry", "fab", null], ["eercast", "fab", "sellcast"], ["snowflake-o", "far", "snowflake"], ["superpowers", "fab", null], ["wpexplorer", "fab", null], ["spotify", "fab", null]];
    +
    +bunker(function () {
    +  if (typeof namespace.hooks.addShims === 'function') {
    +    namespace.hooks.addShims(shims);
    +  } else {
    +    var _namespace$shims;
    +
    +    (_namespace$shims = namespace.shims).push.apply(_namespace$shims, shims);
    +  }
    +});
    +
    +return shims;
    +
    +})));
    diff --git a/htdocs/theme/common/fontawesome-5/js/v4-shims.min.js b/htdocs/theme/common/fontawesome-5/js/v4-shims.min.js
    new file mode 100644
    index 00000000000..e9b8aae495a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/js/v4-shims.min.js
    @@ -0,0 +1,5 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +var l,a;l=this,a=function(){"use strict";var l={};try{"undefined"!=typeof window&&(l=window)}catch(l){}var a=(l.navigator||{}).userAgent,e=void 0===a?"":a,r=l,n=(~e.indexOf("MSIE")||e.indexOf("Trident/"),"___FONT_AWESOME___"),o=function(){try{return"production"===process.env.NODE_ENV}catch(l){return!1}}(),u=[1,2,3,4,5,6,7,8,9,10],t=u.concat([11,12,13,14,15,16,17,18,19,20]);["xs","sm","lg","fw","ul","li","border","pull-left","pull-right","spin","pulse","rotate-90","rotate-180","rotate-270","flip-horizontal","flip-vertical","stack","stack-1x","stack-2x","inverse","layers","layers-text","layers-counter"].concat(u.map(function(l){return l+"x"})).concat(t.map(function(l){return"w-"+l}));var f=r||{};f[n]||(f[n]={}),f[n].styles||(f[n].styles={}),f[n].hooks||(f[n].hooks={}),f[n].shims||(f[n].shims=[]);var i=f[n],s=[["glass",null,"glass-martini"],["meetup","fab",null],["star-o","far","star"],["remove",null,"times"],["close",null,"times"],["gear",null,"cog"],["trash-o","far","trash-alt"],["file-o","far","file"],["clock-o","far","clock"],["arrow-circle-o-down","far","arrow-alt-circle-down"],["arrow-circle-o-up","far","arrow-alt-circle-up"],["play-circle-o","far","play-circle"],["repeat",null,"redo"],["rotate-right",null,"redo"],["refresh",null,"sync"],["list-alt","far",null],["dedent",null,"outdent"],["video-camera",null,"video"],["picture-o","far","image"],["photo","far","image"],["image","far","image"],["pencil",null,"pencil-alt"],["map-marker",null,"map-marker-alt"],["pencil-square-o","far","edit"],["share-square-o","far","share-square"],["check-square-o","far","check-square"],["arrows",null,"arrows-alt"],["times-circle-o","far","times-circle"],["check-circle-o","far","check-circle"],["mail-forward",null,"share"],["eye","far",null],["eye-slash","far",null],["warning",null,"exclamation-triangle"],["calendar",null,"calendar-alt"],["arrows-v",null,"arrows-alt-v"],["arrows-h",null,"arrows-alt-h"],["bar-chart","far","chart-bar"],["bar-chart-o","far","chart-bar"],["twitter-square","fab",null],["facebook-square","fab",null],["gears",null,"cogs"],["thumbs-o-up","far","thumbs-up"],["thumbs-o-down","far","thumbs-down"],["heart-o","far","heart"],["sign-out",null,"sign-out-alt"],["linkedin-square","fab","linkedin"],["thumb-tack",null,"thumbtack"],["external-link",null,"external-link-alt"],["sign-in",null,"sign-in-alt"],["github-square","fab",null],["lemon-o","far","lemon"],["square-o","far","square"],["bookmark-o","far","bookmark"],["twitter","fab",null],["facebook","fab","facebook-f"],["facebook-f","fab","facebook-f"],["github","fab",null],["credit-card","far",null],["feed",null,"rss"],["hdd-o","far","hdd"],["hand-o-right","far","hand-point-right"],["hand-o-left","far","hand-point-left"],["hand-o-up","far","hand-point-up"],["hand-o-down","far","hand-point-down"],["arrows-alt",null,"expand-arrows-alt"],["group",null,"users"],["chain",null,"link"],["scissors",null,"cut"],["files-o","far","copy"],["floppy-o","far","save"],["navicon",null,"bars"],["reorder",null,"bars"],["pinterest","fab",null],["pinterest-square","fab",null],["google-plus-square","fab",null],["google-plus","fab","google-plus-g"],["money","far","money-bill-alt"],["unsorted",null,"sort"],["sort-desc",null,"sort-down"],["sort-asc",null,"sort-up"],["linkedin","fab","linkedin-in"],["rotate-left",null,"undo"],["legal",null,"gavel"],["tachometer",null,"tachometer-alt"],["dashboard",null,"tachometer-alt"],["comment-o","far","comment"],["comments-o","far","comments"],["flash",null,"bolt"],["clipboard","far",null],["paste","far","clipboard"],["lightbulb-o","far","lightbulb"],["exchange",null,"exchange-alt"],["cloud-download",null,"cloud-download-alt"],["cloud-upload",null,"cloud-upload-alt"],["bell-o","far","bell"],["cutlery",null,"utensils"],["file-text-o","far","file-alt"],["building-o","far","building"],["hospital-o","far","hospital"],["tablet",null,"tablet-alt"],["mobile",null,"mobile-alt"],["mobile-phone",null,"mobile-alt"],["circle-o","far","circle"],["mail-reply",null,"reply"],["github-alt","fab",null],["folder-o","far","folder"],["folder-open-o","far","folder-open"],["smile-o","far","smile"],["frown-o","far","frown"],["meh-o","far","meh"],["keyboard-o","far","keyboard"],["flag-o","far","flag"],["mail-reply-all",null,"reply-all"],["star-half-o","far","star-half"],["star-half-empty","far","star-half"],["star-half-full","far","star-half"],["code-fork",null,"code-branch"],["chain-broken",null,"unlink"],["shield",null,"shield-alt"],["calendar-o","far","calendar"],["maxcdn","fab",null],["html5","fab",null],["css3","fab",null],["ticket",null,"ticket-alt"],["minus-square-o","far","minus-square"],["level-up",null,"level-up-alt"],["level-down",null,"level-down-alt"],["pencil-square",null,"pen-square"],["external-link-square",null,"external-link-square-alt"],["compass","far",null],["caret-square-o-down","far","caret-square-down"],["toggle-down","far","caret-square-down"],["caret-square-o-up","far","caret-square-up"],["toggle-up","far","caret-square-up"],["caret-square-o-right","far","caret-square-right"],["toggle-right","far","caret-square-right"],["eur",null,"euro-sign"],["euro",null,"euro-sign"],["gbp",null,"pound-sign"],["usd",null,"dollar-sign"],["dollar",null,"dollar-sign"],["inr",null,"rupee-sign"],["rupee",null,"rupee-sign"],["jpy",null,"yen-sign"],["cny",null,"yen-sign"],["rmb",null,"yen-sign"],["yen",null,"yen-sign"],["rub",null,"ruble-sign"],["ruble",null,"ruble-sign"],["rouble",null,"ruble-sign"],["krw",null,"won-sign"],["won",null,"won-sign"],["btc","fab",null],["bitcoin","fab","btc"],["file-text",null,"file-alt"],["sort-alpha-asc",null,"sort-alpha-down"],["sort-alpha-desc",null,"sort-alpha-up"],["sort-amount-asc",null,"sort-amount-down"],["sort-amount-desc",null,"sort-amount-up"],["sort-numeric-asc",null,"sort-numeric-down"],["sort-numeric-desc",null,"sort-numeric-up"],["youtube-square","fab",null],["youtube","fab",null],["xing","fab",null],["xing-square","fab",null],["youtube-play","fab","youtube"],["dropbox","fab",null],["stack-overflow","fab",null],["instagram","fab",null],["flickr","fab",null],["adn","fab",null],["bitbucket","fab",null],["bitbucket-square","fab","bitbucket"],["tumblr","fab",null],["tumblr-square","fab",null],["long-arrow-down",null,"long-arrow-alt-down"],["long-arrow-up",null,"long-arrow-alt-up"],["long-arrow-left",null,"long-arrow-alt-left"],["long-arrow-right",null,"long-arrow-alt-right"],["apple","fab",null],["windows","fab",null],["android","fab",null],["linux","fab",null],["dribbble","fab",null],["skype","fab",null],["foursquare","fab",null],["trello","fab",null],["gratipay","fab",null],["gittip","fab","gratipay"],["sun-o","far","sun"],["moon-o","far","moon"],["vk","fab",null],["weibo","fab",null],["renren","fab",null],["pagelines","fab",null],["stack-exchange","fab",null],["arrow-circle-o-right","far","arrow-alt-circle-right"],["arrow-circle-o-left","far","arrow-alt-circle-left"],["caret-square-o-left","far","caret-square-left"],["toggle-left","far","caret-square-left"],["dot-circle-o","far","dot-circle"],["vimeo-square","fab",null],["try",null,"lira-sign"],["turkish-lira",null,"lira-sign"],["plus-square-o","far","plus-square"],["slack","fab",null],["wordpress","fab",null],["openid","fab",null],["institution",null,"university"],["bank",null,"university"],["mortar-board",null,"graduation-cap"],["yahoo","fab",null],["google","fab",null],["reddit","fab",null],["reddit-square","fab",null],["stumbleupon-circle","fab",null],["stumbleupon","fab",null],["delicious","fab",null],["digg","fab",null],["pied-piper-pp","fab",null],["pied-piper-alt","fab",null],["drupal","fab",null],["joomla","fab",null],["spoon",null,"utensil-spoon"],["behance","fab",null],["behance-square","fab",null],["steam","fab",null],["steam-square","fab",null],["automobile",null,"car"],["cab",null,"taxi"],["envelope-o","far","envelope"],["deviantart","fab",null],["soundcloud","fab",null],["file-pdf-o","far","file-pdf"],["file-word-o","far","file-word"],["file-excel-o","far","file-excel"],["file-powerpoint-o","far","file-powerpoint"],["file-image-o","far","file-image"],["file-photo-o","far","file-image"],["file-picture-o","far","file-image"],["file-archive-o","far","file-archive"],["file-zip-o","far","file-archive"],["file-audio-o","far","file-audio"],["file-sound-o","far","file-audio"],["file-video-o","far","file-video"],["file-movie-o","far","file-video"],["file-code-o","far","file-code"],["vine","fab",null],["codepen","fab",null],["jsfiddle","fab",null],["life-ring","far",null],["life-bouy","far","life-ring"],["life-buoy","far","life-ring"],["life-saver","far","life-ring"],["support","far","life-ring"],["circle-o-notch",null,"circle-notch"],["rebel","fab",null],["ra","fab","rebel"],["resistance","fab","rebel"],["empire","fab",null],["ge","fab","empire"],["git-square","fab",null],["git","fab",null],["hacker-news","fab",null],["y-combinator-square","fab","hacker-news"],["yc-square","fab","hacker-news"],["tencent-weibo","fab",null],["qq","fab",null],["weixin","fab",null],["wechat","fab","weixin"],["send",null,"paper-plane"],["paper-plane-o","far","paper-plane"],["send-o","far","paper-plane"],["circle-thin","far","circle"],["header",null,"heading"],["sliders",null,"sliders-h"],["futbol-o","far","futbol"],["soccer-ball-o","far","futbol"],["slideshare","fab",null],["twitch","fab",null],["yelp","fab",null],["newspaper-o","far","newspaper"],["paypal","fab",null],["google-wallet","fab",null],["cc-visa","fab",null],["cc-mastercard","fab",null],["cc-discover","fab",null],["cc-amex","fab",null],["cc-paypal","fab",null],["cc-stripe","fab",null],["bell-slash-o","far","bell-slash"],["trash",null,"trash-alt"],["copyright","far",null],["eyedropper",null,"eye-dropper"],["area-chart",null,"chart-area"],["pie-chart",null,"chart-pie"],["line-chart",null,"chart-line"],["lastfm","fab",null],["lastfm-square","fab",null],["ioxhost","fab",null],["angellist","fab",null],["cc","far","closed-captioning"],["ils",null,"shekel-sign"],["shekel",null,"shekel-sign"],["sheqel",null,"shekel-sign"],["meanpath","fab","font-awesome"],["buysellads","fab",null],["connectdevelop","fab",null],["dashcube","fab",null],["forumbee","fab",null],["leanpub","fab",null],["sellsy","fab",null],["shirtsinbulk","fab",null],["simplybuilt","fab",null],["skyatlas","fab",null],["diamond","far","gem"],["intersex",null,"transgender"],["facebook-official","fab","facebook"],["pinterest-p","fab",null],["whatsapp","fab",null],["hotel",null,"bed"],["viacoin","fab",null],["medium","fab",null],["y-combinator","fab",null],["yc","fab","y-combinator"],["optin-monster","fab",null],["opencart","fab",null],["expeditedssl","fab",null],["battery-4",null,"battery-full"],["battery",null,"battery-full"],["battery-3",null,"battery-three-quarters"],["battery-2",null,"battery-half"],["battery-1",null,"battery-quarter"],["battery-0",null,"battery-empty"],["object-group","far",null],["object-ungroup","far",null],["sticky-note-o","far","sticky-note"],["cc-jcb","fab",null],["cc-diners-club","fab",null],["clone","far",null],["hourglass-o","far","hourglass"],["hourglass-1",null,"hourglass-start"],["hourglass-2",null,"hourglass-half"],["hourglass-3",null,"hourglass-end"],["hand-rock-o","far","hand-rock"],["hand-grab-o","far","hand-rock"],["hand-paper-o","far","hand-paper"],["hand-stop-o","far","hand-paper"],["hand-scissors-o","far","hand-scissors"],["hand-lizard-o","far","hand-lizard"],["hand-spock-o","far","hand-spock"],["hand-pointer-o","far","hand-pointer"],["hand-peace-o","far","hand-peace"],["registered","far",null],["creative-commons","fab",null],["gg","fab",null],["gg-circle","fab",null],["tripadvisor","fab",null],["odnoklassniki","fab",null],["odnoklassniki-square","fab",null],["get-pocket","fab",null],["wikipedia-w","fab",null],["safari","fab",null],["chrome","fab",null],["firefox","fab",null],["opera","fab",null],["internet-explorer","fab",null],["television",null,"tv"],["contao","fab",null],["500px","fab",null],["amazon","fab",null],["calendar-plus-o","far","calendar-plus"],["calendar-minus-o","far","calendar-minus"],["calendar-times-o","far","calendar-times"],["calendar-check-o","far","calendar-check"],["map-o","far","map"],["commenting","far","comment-dots"],["commenting-o","far","comment-dots"],["houzz","fab",null],["vimeo","fab","vimeo-v"],["black-tie","fab",null],["fonticons","fab",null],["reddit-alien","fab",null],["edge","fab",null],["credit-card-alt",null,"credit-card"],["codiepie","fab",null],["modx","fab",null],["fort-awesome","fab",null],["usb","fab",null],["product-hunt","fab",null],["mixcloud","fab",null],["scribd","fab",null],["pause-circle-o","far","pause-circle"],["stop-circle-o","far","stop-circle"],["bluetooth","fab",null],["bluetooth-b","fab",null],["gitlab","fab",null],["wpbeginner","fab",null],["wpforms","fab",null],["envira","fab",null],["wheelchair-alt","fab","accessible-icon"],["question-circle-o","far","question-circle"],["volume-control-phone",null,"phone-volume"],["asl-interpreting",null,"american-sign-language-interpreting"],["deafness",null,"deaf"],["hard-of-hearing",null,"deaf"],["glide","fab",null],["glide-g","fab",null],["signing",null,"sign-language"],["viadeo","fab",null],["viadeo-square","fab",null],["snapchat","fab",null],["snapchat-ghost","fab",null],["snapchat-square","fab",null],["pied-piper","fab",null],["first-order","fab",null],["yoast","fab",null],["themeisle","fab",null],["google-plus-official","fab","google-plus"],["google-plus-circle","fab","google-plus"],["font-awesome","fab",null],["fa","fab","font-awesome"],["handshake-o","far","handshake"],["envelope-open-o","far","envelope-open"],["linode","fab",null],["address-book-o","far","address-book"],["vcard",null,"address-card"],["address-card-o","far","address-card"],["vcard-o","far","address-card"],["user-circle-o","far","user-circle"],["user-o","far","user"],["id-badge","far",null],["drivers-license",null,"id-card"],["id-card-o","far","id-card"],["drivers-license-o","far","id-card"],["quora","fab",null],["free-code-camp","fab",null],["telegram","fab",null],["thermometer-4",null,"thermometer-full"],["thermometer",null,"thermometer-full"],["thermometer-3",null,"thermometer-three-quarters"],["thermometer-2",null,"thermometer-half"],["thermometer-1",null,"thermometer-quarter"],["thermometer-0",null,"thermometer-empty"],["bathtub",null,"bath"],["s15",null,"bath"],["window-maximize","far",null],["window-restore","far",null],["times-rectangle",null,"window-close"],["window-close-o","far","window-close"],["times-rectangle-o","far","window-close"],["bandcamp","fab",null],["grav","fab",null],["etsy","fab",null],["imdb","fab",null],["ravelry","fab",null],["eercast","fab","sellcast"],["snowflake-o","far","snowflake"],["superpowers","fab",null],["wpexplorer","fab",null],["spotify","fab",null]];return function(l){try{l()}catch(l){if(!o)throw l}}(function(){var l;"function"==typeof i.hooks.addShims?i.hooks.addShims(s):(l=i.shims).push.apply(l,s)}),s},"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define(a):l["fontawesome-free-shims"]=a();
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/less/_animated.less b/htdocs/theme/common/fontawesome-5/less/_animated.less
    new file mode 100644
    index 00000000000..704ec951037
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_animated.less
    @@ -0,0 +1,19 @@
    +// Animated Icons
    +// --------------------------
    +
    +.@{fa-css-prefix}-spin {
    +  animation: fa-spin 2s infinite linear;
    +}
    +
    +.@{fa-css-prefix}-pulse {
    +  animation: fa-spin 1s infinite steps(8);
    +}
    +
    +@keyframes fa-spin {
    +  0% {
    +    transform: rotate(0deg);
    +  }
    +  100% {
    +    transform: rotate(360deg);
    +  }
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/less/_bordered-pulled.less b/htdocs/theme/common/fontawesome-5/less/_bordered-pulled.less
    new file mode 100644
    index 00000000000..29a356b423d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_bordered-pulled.less
    @@ -0,0 +1,16 @@
    +// Bordered & Pulled
    +// -------------------------
    +
    +.@{fa-css-prefix}-border {
    +  border-radius: .1em;
    +  border: solid .08em @fa-border-color;
    +  padding: .2em .25em .15em;
    +}
    +
    +.@{fa-css-prefix}-pull-left { float: left; }
    +.@{fa-css-prefix}-pull-right { float: right; }
    +
    +.@{fa-css-prefix}, .fas, .far, .fal, .fab {
    +  &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
    +  &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/less/_core.less b/htdocs/theme/common/fontawesome-5/less/_core.less
    new file mode 100644
    index 00000000000..82031d65235
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_core.less
    @@ -0,0 +1,12 @@
    +// Base Class Definition
    +// -------------------------
    +
    +.@{fa-css-prefix}, .fas, .far, .fal, .fab {
    +  -moz-osx-font-smoothing: grayscale;
    +  -webkit-font-smoothing: antialiased;
    +  display: inline-block;
    +  font-style: normal;
    +  font-variant: normal;
    +  text-rendering: auto;
    +  line-height: 1;
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/less/_fixed-width.less b/htdocs/theme/common/fontawesome-5/less/_fixed-width.less
    new file mode 100644
    index 00000000000..be817c63753
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_fixed-width.less
    @@ -0,0 +1,6 @@
    +// Fixed Width Icons
    +// -------------------------
    +.@{fa-css-prefix}-fw {
    +  text-align: center;
    +  width: (20em / 16);
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/less/_icons.less b/htdocs/theme/common/fontawesome-5/less/_icons.less
    new file mode 100644
    index 00000000000..f13a28ce4bd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_icons.less
    @@ -0,0 +1,1241 @@
    +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
    +   readers do not read off random characters that represent icons */
    +
    +.@{fa-css-prefix}-500px:before { content: @fa-var-500px; }
    +.@{fa-css-prefix}-accessible-icon:before { content: @fa-var-accessible-icon; }
    +.@{fa-css-prefix}-accusoft:before { content: @fa-var-accusoft; }
    +.@{fa-css-prefix}-acquisitions-incorporated:before { content: @fa-var-acquisitions-incorporated; }
    +.@{fa-css-prefix}-ad:before { content: @fa-var-ad; }
    +.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; }
    +.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; }
    +.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }
    +.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }
    +.@{fa-css-prefix}-adversal:before { content: @fa-var-adversal; }
    +.@{fa-css-prefix}-affiliatetheme:before { content: @fa-var-affiliatetheme; }
    +.@{fa-css-prefix}-air-freshener:before { content: @fa-var-air-freshener; }
    +.@{fa-css-prefix}-algolia:before { content: @fa-var-algolia; }
    +.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }
    +.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }
    +.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }
    +.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }
    +.@{fa-css-prefix}-alipay:before { content: @fa-var-alipay; }
    +.@{fa-css-prefix}-allergies:before { content: @fa-var-allergies; }
    +.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; }
    +.@{fa-css-prefix}-amazon-pay:before { content: @fa-var-amazon-pay; }
    +.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }
    +.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; }
    +.@{fa-css-prefix}-amilia:before { content: @fa-var-amilia; }
    +.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }
    +.@{fa-css-prefix}-android:before { content: @fa-var-android; }
    +.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }
    +.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }
    +.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }
    +.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }
    +.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }
    +.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }
    +.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }
    +.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }
    +.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }
    +.@{fa-css-prefix}-angry:before { content: @fa-var-angry; }
    +.@{fa-css-prefix}-angrycreative:before { content: @fa-var-angrycreative; }
    +.@{fa-css-prefix}-angular:before { content: @fa-var-angular; }
    +.@{fa-css-prefix}-ankh:before { content: @fa-var-ankh; }
    +.@{fa-css-prefix}-app-store:before { content: @fa-var-app-store; }
    +.@{fa-css-prefix}-app-store-ios:before { content: @fa-var-app-store-ios; }
    +.@{fa-css-prefix}-apper:before { content: @fa-var-apper; }
    +.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }
    +.@{fa-css-prefix}-apple-alt:before { content: @fa-var-apple-alt; }
    +.@{fa-css-prefix}-apple-pay:before { content: @fa-var-apple-pay; }
    +.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }
    +.@{fa-css-prefix}-archway:before { content: @fa-var-archway; }
    +.@{fa-css-prefix}-arrow-alt-circle-down:before { content: @fa-var-arrow-alt-circle-down; }
    +.@{fa-css-prefix}-arrow-alt-circle-left:before { content: @fa-var-arrow-alt-circle-left; }
    +.@{fa-css-prefix}-arrow-alt-circle-right:before { content: @fa-var-arrow-alt-circle-right; }
    +.@{fa-css-prefix}-arrow-alt-circle-up:before { content: @fa-var-arrow-alt-circle-up; }
    +.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }
    +.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }
    +.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }
    +.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }
    +.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }
    +.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }
    +.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }
    +.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }
    +.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }
    +.@{fa-css-prefix}-arrows-alt-h:before { content: @fa-var-arrows-alt-h; }
    +.@{fa-css-prefix}-arrows-alt-v:before { content: @fa-var-arrows-alt-v; }
    +.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; }
    +.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }
    +.@{fa-css-prefix}-asymmetrik:before { content: @fa-var-asymmetrik; }
    +.@{fa-css-prefix}-at:before { content: @fa-var-at; }
    +.@{fa-css-prefix}-atlas:before { content: @fa-var-atlas; }
    +.@{fa-css-prefix}-atom:before { content: @fa-var-atom; }
    +.@{fa-css-prefix}-audible:before { content: @fa-var-audible; }
    +.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; }
    +.@{fa-css-prefix}-autoprefixer:before { content: @fa-var-autoprefixer; }
    +.@{fa-css-prefix}-avianex:before { content: @fa-var-avianex; }
    +.@{fa-css-prefix}-aviato:before { content: @fa-var-aviato; }
    +.@{fa-css-prefix}-award:before { content: @fa-var-award; }
    +.@{fa-css-prefix}-aws:before { content: @fa-var-aws; }
    +.@{fa-css-prefix}-backspace:before { content: @fa-var-backspace; }
    +.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }
    +.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; }
    +.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }
    +.@{fa-css-prefix}-band-aid:before { content: @fa-var-band-aid; }
    +.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; }
    +.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }
    +.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }
    +.@{fa-css-prefix}-baseball-ball:before { content: @fa-var-baseball-ball; }
    +.@{fa-css-prefix}-basketball-ball:before { content: @fa-var-basketball-ball; }
    +.@{fa-css-prefix}-bath:before { content: @fa-var-bath; }
    +.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; }
    +.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; }
    +.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; }
    +.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; }
    +.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; }
    +.@{fa-css-prefix}-bed:before { content: @fa-var-bed; }
    +.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }
    +.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }
    +.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }
    +.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }
    +.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }
    +.@{fa-css-prefix}-bezier-curve:before { content: @fa-var-bezier-curve; }
    +.@{fa-css-prefix}-bible:before { content: @fa-var-bible; }
    +.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }
    +.@{fa-css-prefix}-bimobject:before { content: @fa-var-bimobject; }
    +.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }
    +.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }
    +.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }
    +.@{fa-css-prefix}-bitcoin:before { content: @fa-var-bitcoin; }
    +.@{fa-css-prefix}-bity:before { content: @fa-var-bity; }
    +.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; }
    +.@{fa-css-prefix}-blackberry:before { content: @fa-var-blackberry; }
    +.@{fa-css-prefix}-blender:before { content: @fa-var-blender; }
    +.@{fa-css-prefix}-blender-phone:before { content: @fa-var-blender-phone; }
    +.@{fa-css-prefix}-blind:before { content: @fa-var-blind; }
    +.@{fa-css-prefix}-blogger:before { content: @fa-var-blogger; }
    +.@{fa-css-prefix}-blogger-b:before { content: @fa-var-blogger-b; }
    +.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; }
    +.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; }
    +.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }
    +.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }
    +.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }
    +.@{fa-css-prefix}-bone:before { content: @fa-var-bone; }
    +.@{fa-css-prefix}-bong:before { content: @fa-var-bong; }
    +.@{fa-css-prefix}-book:before { content: @fa-var-book; }
    +.@{fa-css-prefix}-book-dead:before { content: @fa-var-book-dead; }
    +.@{fa-css-prefix}-book-open:before { content: @fa-var-book-open; }
    +.@{fa-css-prefix}-book-reader:before { content: @fa-var-book-reader; }
    +.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }
    +.@{fa-css-prefix}-bowling-ball:before { content: @fa-var-bowling-ball; }
    +.@{fa-css-prefix}-box:before { content: @fa-var-box; }
    +.@{fa-css-prefix}-box-open:before { content: @fa-var-box-open; }
    +.@{fa-css-prefix}-boxes:before { content: @fa-var-boxes; }
    +.@{fa-css-prefix}-braille:before { content: @fa-var-braille; }
    +.@{fa-css-prefix}-brain:before { content: @fa-var-brain; }
    +.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }
    +.@{fa-css-prefix}-briefcase-medical:before { content: @fa-var-briefcase-medical; }
    +.@{fa-css-prefix}-broadcast-tower:before { content: @fa-var-broadcast-tower; }
    +.@{fa-css-prefix}-broom:before { content: @fa-var-broom; }
    +.@{fa-css-prefix}-brush:before { content: @fa-var-brush; }
    +.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }
    +.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }
    +.@{fa-css-prefix}-building:before { content: @fa-var-building; }
    +.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }
    +.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }
    +.@{fa-css-prefix}-burn:before { content: @fa-var-burn; }
    +.@{fa-css-prefix}-buromobelexperte:before { content: @fa-var-buromobelexperte; }
    +.@{fa-css-prefix}-bus:before { content: @fa-var-bus; }
    +.@{fa-css-prefix}-bus-alt:before { content: @fa-var-bus-alt; }
    +.@{fa-css-prefix}-business-time:before { content: @fa-var-business-time; }
    +.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; }
    +.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }
    +.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }
    +.@{fa-css-prefix}-calendar-alt:before { content: @fa-var-calendar-alt; }
    +.@{fa-css-prefix}-calendar-check:before { content: @fa-var-calendar-check; }
    +.@{fa-css-prefix}-calendar-minus:before { content: @fa-var-calendar-minus; }
    +.@{fa-css-prefix}-calendar-plus:before { content: @fa-var-calendar-plus; }
    +.@{fa-css-prefix}-calendar-times:before { content: @fa-var-calendar-times; }
    +.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }
    +.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }
    +.@{fa-css-prefix}-campground:before { content: @fa-var-campground; }
    +.@{fa-css-prefix}-cannabis:before { content: @fa-var-cannabis; }
    +.@{fa-css-prefix}-capsules:before { content: @fa-var-capsules; }
    +.@{fa-css-prefix}-car:before { content: @fa-var-car; }
    +.@{fa-css-prefix}-car-alt:before { content: @fa-var-car-alt; }
    +.@{fa-css-prefix}-car-battery:before { content: @fa-var-car-battery; }
    +.@{fa-css-prefix}-car-crash:before { content: @fa-var-car-crash; }
    +.@{fa-css-prefix}-car-side:before { content: @fa-var-car-side; }
    +.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }
    +.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }
    +.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }
    +.@{fa-css-prefix}-caret-square-down:before { content: @fa-var-caret-square-down; }
    +.@{fa-css-prefix}-caret-square-left:before { content: @fa-var-caret-square-left; }
    +.@{fa-css-prefix}-caret-square-right:before { content: @fa-var-caret-square-right; }
    +.@{fa-css-prefix}-caret-square-up:before { content: @fa-var-caret-square-up; }
    +.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }
    +.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; }
    +.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; }
    +.@{fa-css-prefix}-cat:before { content: @fa-var-cat; }
    +.@{fa-css-prefix}-cc-amazon-pay:before { content: @fa-var-cc-amazon-pay; }
    +.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }
    +.@{fa-css-prefix}-cc-apple-pay:before { content: @fa-var-cc-apple-pay; }
    +.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; }
    +.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }
    +.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; }
    +.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }
    +.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }
    +.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }
    +.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }
    +.@{fa-css-prefix}-centercode:before { content: @fa-var-centercode; }
    +.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }
    +.@{fa-css-prefix}-chair:before { content: @fa-var-chair; }
    +.@{fa-css-prefix}-chalkboard:before { content: @fa-var-chalkboard; }
    +.@{fa-css-prefix}-chalkboard-teacher:before { content: @fa-var-chalkboard-teacher; }
    +.@{fa-css-prefix}-charging-station:before { content: @fa-var-charging-station; }
    +.@{fa-css-prefix}-chart-area:before { content: @fa-var-chart-area; }
    +.@{fa-css-prefix}-chart-bar:before { content: @fa-var-chart-bar; }
    +.@{fa-css-prefix}-chart-line:before { content: @fa-var-chart-line; }
    +.@{fa-css-prefix}-chart-pie:before { content: @fa-var-chart-pie; }
    +.@{fa-css-prefix}-check:before { content: @fa-var-check; }
    +.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }
    +.@{fa-css-prefix}-check-double:before { content: @fa-var-check-double; }
    +.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }
    +.@{fa-css-prefix}-chess:before { content: @fa-var-chess; }
    +.@{fa-css-prefix}-chess-bishop:before { content: @fa-var-chess-bishop; }
    +.@{fa-css-prefix}-chess-board:before { content: @fa-var-chess-board; }
    +.@{fa-css-prefix}-chess-king:before { content: @fa-var-chess-king; }
    +.@{fa-css-prefix}-chess-knight:before { content: @fa-var-chess-knight; }
    +.@{fa-css-prefix}-chess-pawn:before { content: @fa-var-chess-pawn; }
    +.@{fa-css-prefix}-chess-queen:before { content: @fa-var-chess-queen; }
    +.@{fa-css-prefix}-chess-rook:before { content: @fa-var-chess-rook; }
    +.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }
    +.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }
    +.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }
    +.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }
    +.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }
    +.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }
    +.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }
    +.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }
    +.@{fa-css-prefix}-child:before { content: @fa-var-child; }
    +.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; }
    +.@{fa-css-prefix}-church:before { content: @fa-var-church; }
    +.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }
    +.@{fa-css-prefix}-circle-notch:before { content: @fa-var-circle-notch; }
    +.@{fa-css-prefix}-city:before { content: @fa-var-city; }
    +.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }
    +.@{fa-css-prefix}-clipboard-check:before { content: @fa-var-clipboard-check; }
    +.@{fa-css-prefix}-clipboard-list:before { content: @fa-var-clipboard-list; }
    +.@{fa-css-prefix}-clock:before { content: @fa-var-clock; }
    +.@{fa-css-prefix}-clone:before { content: @fa-var-clone; }
    +.@{fa-css-prefix}-closed-captioning:before { content: @fa-var-closed-captioning; }
    +.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }
    +.@{fa-css-prefix}-cloud-download-alt:before { content: @fa-var-cloud-download-alt; }
    +.@{fa-css-prefix}-cloud-moon:before { content: @fa-var-cloud-moon; }
    +.@{fa-css-prefix}-cloud-sun:before { content: @fa-var-cloud-sun; }
    +.@{fa-css-prefix}-cloud-upload-alt:before { content: @fa-var-cloud-upload-alt; }
    +.@{fa-css-prefix}-cloudscale:before { content: @fa-var-cloudscale; }
    +.@{fa-css-prefix}-cloudsmith:before { content: @fa-var-cloudsmith; }
    +.@{fa-css-prefix}-cloudversify:before { content: @fa-var-cloudversify; }
    +.@{fa-css-prefix}-cocktail:before { content: @fa-var-cocktail; }
    +.@{fa-css-prefix}-code:before { content: @fa-var-code; }
    +.@{fa-css-prefix}-code-branch:before { content: @fa-var-code-branch; }
    +.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }
    +.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; }
    +.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }
    +.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }
    +.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }
    +.@{fa-css-prefix}-coins:before { content: @fa-var-coins; }
    +.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }
    +.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }
    +.@{fa-css-prefix}-comment-alt:before { content: @fa-var-comment-alt; }
    +.@{fa-css-prefix}-comment-dollar:before { content: @fa-var-comment-dollar; }
    +.@{fa-css-prefix}-comment-dots:before { content: @fa-var-comment-dots; }
    +.@{fa-css-prefix}-comment-slash:before { content: @fa-var-comment-slash; }
    +.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }
    +.@{fa-css-prefix}-comments-dollar:before { content: @fa-var-comments-dollar; }
    +.@{fa-css-prefix}-compact-disc:before { content: @fa-var-compact-disc; }
    +.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }
    +.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }
    +.@{fa-css-prefix}-concierge-bell:before { content: @fa-var-concierge-bell; }
    +.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; }
    +.@{fa-css-prefix}-contao:before { content: @fa-var-contao; }
    +.@{fa-css-prefix}-cookie:before { content: @fa-var-cookie; }
    +.@{fa-css-prefix}-cookie-bite:before { content: @fa-var-cookie-bite; }
    +.@{fa-css-prefix}-copy:before { content: @fa-var-copy; }
    +.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }
    +.@{fa-css-prefix}-couch:before { content: @fa-var-couch; }
    +.@{fa-css-prefix}-cpanel:before { content: @fa-var-cpanel; }
    +.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; }
    +.@{fa-css-prefix}-creative-commons-by:before { content: @fa-var-creative-commons-by; }
    +.@{fa-css-prefix}-creative-commons-nc:before { content: @fa-var-creative-commons-nc; }
    +.@{fa-css-prefix}-creative-commons-nc-eu:before { content: @fa-var-creative-commons-nc-eu; }
    +.@{fa-css-prefix}-creative-commons-nc-jp:before { content: @fa-var-creative-commons-nc-jp; }
    +.@{fa-css-prefix}-creative-commons-nd:before { content: @fa-var-creative-commons-nd; }
    +.@{fa-css-prefix}-creative-commons-pd:before { content: @fa-var-creative-commons-pd; }
    +.@{fa-css-prefix}-creative-commons-pd-alt:before { content: @fa-var-creative-commons-pd-alt; }
    +.@{fa-css-prefix}-creative-commons-remix:before { content: @fa-var-creative-commons-remix; }
    +.@{fa-css-prefix}-creative-commons-sa:before { content: @fa-var-creative-commons-sa; }
    +.@{fa-css-prefix}-creative-commons-sampling:before { content: @fa-var-creative-commons-sampling; }
    +.@{fa-css-prefix}-creative-commons-sampling-plus:before { content: @fa-var-creative-commons-sampling-plus; }
    +.@{fa-css-prefix}-creative-commons-share:before { content: @fa-var-creative-commons-share; }
    +.@{fa-css-prefix}-creative-commons-zero:before { content: @fa-var-creative-commons-zero; }
    +.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }
    +.@{fa-css-prefix}-critical-role:before { content: @fa-var-critical-role; }
    +.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }
    +.@{fa-css-prefix}-crop-alt:before { content: @fa-var-crop-alt; }
    +.@{fa-css-prefix}-cross:before { content: @fa-var-cross; }
    +.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }
    +.@{fa-css-prefix}-crow:before { content: @fa-var-crow; }
    +.@{fa-css-prefix}-crown:before { content: @fa-var-crown; }
    +.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }
    +.@{fa-css-prefix}-css3-alt:before { content: @fa-var-css3-alt; }
    +.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }
    +.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }
    +.@{fa-css-prefix}-cut:before { content: @fa-var-cut; }
    +.@{fa-css-prefix}-cuttlefish:before { content: @fa-var-cuttlefish; }
    +.@{fa-css-prefix}-d-and-d:before { content: @fa-var-d-and-d; }
    +.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; }
    +.@{fa-css-prefix}-database:before { content: @fa-var-database; }
    +.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; }
    +.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }
    +.@{fa-css-prefix}-deploydog:before { content: @fa-var-deploydog; }
    +.@{fa-css-prefix}-deskpro:before { content: @fa-var-deskpro; }
    +.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }
    +.@{fa-css-prefix}-dev:before { content: @fa-var-dev; }
    +.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }
    +.@{fa-css-prefix}-dharmachakra:before { content: @fa-var-dharmachakra; }
    +.@{fa-css-prefix}-diagnoses:before { content: @fa-var-diagnoses; }
    +.@{fa-css-prefix}-dice:before { content: @fa-var-dice; }
    +.@{fa-css-prefix}-dice-d20:before { content: @fa-var-dice-d20; }
    +.@{fa-css-prefix}-dice-d6:before { content: @fa-var-dice-d6; }
    +.@{fa-css-prefix}-dice-five:before { content: @fa-var-dice-five; }
    +.@{fa-css-prefix}-dice-four:before { content: @fa-var-dice-four; }
    +.@{fa-css-prefix}-dice-one:before { content: @fa-var-dice-one; }
    +.@{fa-css-prefix}-dice-six:before { content: @fa-var-dice-six; }
    +.@{fa-css-prefix}-dice-three:before { content: @fa-var-dice-three; }
    +.@{fa-css-prefix}-dice-two:before { content: @fa-var-dice-two; }
    +.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }
    +.@{fa-css-prefix}-digital-ocean:before { content: @fa-var-digital-ocean; }
    +.@{fa-css-prefix}-digital-tachograph:before { content: @fa-var-digital-tachograph; }
    +.@{fa-css-prefix}-directions:before { content: @fa-var-directions; }
    +.@{fa-css-prefix}-discord:before { content: @fa-var-discord; }
    +.@{fa-css-prefix}-discourse:before { content: @fa-var-discourse; }
    +.@{fa-css-prefix}-divide:before { content: @fa-var-divide; }
    +.@{fa-css-prefix}-dizzy:before { content: @fa-var-dizzy; }
    +.@{fa-css-prefix}-dna:before { content: @fa-var-dna; }
    +.@{fa-css-prefix}-dochub:before { content: @fa-var-dochub; }
    +.@{fa-css-prefix}-docker:before { content: @fa-var-docker; }
    +.@{fa-css-prefix}-dog:before { content: @fa-var-dog; }
    +.@{fa-css-prefix}-dollar-sign:before { content: @fa-var-dollar-sign; }
    +.@{fa-css-prefix}-dolly:before { content: @fa-var-dolly; }
    +.@{fa-css-prefix}-dolly-flatbed:before { content: @fa-var-dolly-flatbed; }
    +.@{fa-css-prefix}-donate:before { content: @fa-var-donate; }
    +.@{fa-css-prefix}-door-closed:before { content: @fa-var-door-closed; }
    +.@{fa-css-prefix}-door-open:before { content: @fa-var-door-open; }
    +.@{fa-css-prefix}-dot-circle:before { content: @fa-var-dot-circle; }
    +.@{fa-css-prefix}-dove:before { content: @fa-var-dove; }
    +.@{fa-css-prefix}-download:before { content: @fa-var-download; }
    +.@{fa-css-prefix}-draft2digital:before { content: @fa-var-draft2digital; }
    +.@{fa-css-prefix}-drafting-compass:before { content: @fa-var-drafting-compass; }
    +.@{fa-css-prefix}-dragon:before { content: @fa-var-dragon; }
    +.@{fa-css-prefix}-draw-polygon:before { content: @fa-var-draw-polygon; }
    +.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }
    +.@{fa-css-prefix}-dribbble-square:before { content: @fa-var-dribbble-square; }
    +.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }
    +.@{fa-css-prefix}-drum:before { content: @fa-var-drum; }
    +.@{fa-css-prefix}-drum-steelpan:before { content: @fa-var-drum-steelpan; }
    +.@{fa-css-prefix}-drumstick-bite:before { content: @fa-var-drumstick-bite; }
    +.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }
    +.@{fa-css-prefix}-dumbbell:before { content: @fa-var-dumbbell; }
    +.@{fa-css-prefix}-dungeon:before { content: @fa-var-dungeon; }
    +.@{fa-css-prefix}-dyalog:before { content: @fa-var-dyalog; }
    +.@{fa-css-prefix}-earlybirds:before { content: @fa-var-earlybirds; }
    +.@{fa-css-prefix}-ebay:before { content: @fa-var-ebay; }
    +.@{fa-css-prefix}-edge:before { content: @fa-var-edge; }
    +.@{fa-css-prefix}-edit:before { content: @fa-var-edit; }
    +.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }
    +.@{fa-css-prefix}-elementor:before { content: @fa-var-elementor; }
    +.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }
    +.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }
    +.@{fa-css-prefix}-ello:before { content: @fa-var-ello; }
    +.@{fa-css-prefix}-ember:before { content: @fa-var-ember; }
    +.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }
    +.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }
    +.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; }
    +.@{fa-css-prefix}-envelope-open-text:before { content: @fa-var-envelope-open-text; }
    +.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }
    +.@{fa-css-prefix}-envira:before { content: @fa-var-envira; }
    +.@{fa-css-prefix}-equals:before { content: @fa-var-equals; }
    +.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }
    +.@{fa-css-prefix}-erlang:before { content: @fa-var-erlang; }
    +.@{fa-css-prefix}-ethereum:before { content: @fa-var-ethereum; }
    +.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; }
    +.@{fa-css-prefix}-euro-sign:before { content: @fa-var-euro-sign; }
    +.@{fa-css-prefix}-exchange-alt:before { content: @fa-var-exchange-alt; }
    +.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }
    +.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }
    +.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }
    +.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }
    +.@{fa-css-prefix}-expand-arrows-alt:before { content: @fa-var-expand-arrows-alt; }
    +.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; }
    +.@{fa-css-prefix}-external-link-alt:before { content: @fa-var-external-link-alt; }
    +.@{fa-css-prefix}-external-link-square-alt:before { content: @fa-var-external-link-square-alt; }
    +.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }
    +.@{fa-css-prefix}-eye-dropper:before { content: @fa-var-eye-dropper; }
    +.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }
    +.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }
    +.@{fa-css-prefix}-facebook-f:before { content: @fa-var-facebook-f; }
    +.@{fa-css-prefix}-facebook-messenger:before { content: @fa-var-facebook-messenger; }
    +.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }
    +.@{fa-css-prefix}-fantasy-flight-games:before { content: @fa-var-fantasy-flight-games; }
    +.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }
    +.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }
    +.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }
    +.@{fa-css-prefix}-feather:before { content: @fa-var-feather; }
    +.@{fa-css-prefix}-feather-alt:before { content: @fa-var-feather-alt; }
    +.@{fa-css-prefix}-female:before { content: @fa-var-female; }
    +.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }
    +.@{fa-css-prefix}-file:before { content: @fa-var-file; }
    +.@{fa-css-prefix}-file-alt:before { content: @fa-var-file-alt; }
    +.@{fa-css-prefix}-file-archive:before { content: @fa-var-file-archive; }
    +.@{fa-css-prefix}-file-audio:before { content: @fa-var-file-audio; }
    +.@{fa-css-prefix}-file-code:before { content: @fa-var-file-code; }
    +.@{fa-css-prefix}-file-contract:before { content: @fa-var-file-contract; }
    +.@{fa-css-prefix}-file-csv:before { content: @fa-var-file-csv; }
    +.@{fa-css-prefix}-file-download:before { content: @fa-var-file-download; }
    +.@{fa-css-prefix}-file-excel:before { content: @fa-var-file-excel; }
    +.@{fa-css-prefix}-file-export:before { content: @fa-var-file-export; }
    +.@{fa-css-prefix}-file-image:before { content: @fa-var-file-image; }
    +.@{fa-css-prefix}-file-import:before { content: @fa-var-file-import; }
    +.@{fa-css-prefix}-file-invoice:before { content: @fa-var-file-invoice; }
    +.@{fa-css-prefix}-file-invoice-dollar:before { content: @fa-var-file-invoice-dollar; }
    +.@{fa-css-prefix}-file-medical:before { content: @fa-var-file-medical; }
    +.@{fa-css-prefix}-file-medical-alt:before { content: @fa-var-file-medical-alt; }
    +.@{fa-css-prefix}-file-pdf:before { content: @fa-var-file-pdf; }
    +.@{fa-css-prefix}-file-powerpoint:before { content: @fa-var-file-powerpoint; }
    +.@{fa-css-prefix}-file-prescription:before { content: @fa-var-file-prescription; }
    +.@{fa-css-prefix}-file-signature:before { content: @fa-var-file-signature; }
    +.@{fa-css-prefix}-file-upload:before { content: @fa-var-file-upload; }
    +.@{fa-css-prefix}-file-video:before { content: @fa-var-file-video; }
    +.@{fa-css-prefix}-file-word:before { content: @fa-var-file-word; }
    +.@{fa-css-prefix}-fill:before { content: @fa-var-fill; }
    +.@{fa-css-prefix}-fill-drip:before { content: @fa-var-fill-drip; }
    +.@{fa-css-prefix}-film:before { content: @fa-var-film; }
    +.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }
    +.@{fa-css-prefix}-fingerprint:before { content: @fa-var-fingerprint; }
    +.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }
    +.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }
    +.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; }
    +.@{fa-css-prefix}-first-aid:before { content: @fa-var-first-aid; }
    +.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; }
    +.@{fa-css-prefix}-first-order-alt:before { content: @fa-var-first-order-alt; }
    +.@{fa-css-prefix}-firstdraft:before { content: @fa-var-firstdraft; }
    +.@{fa-css-prefix}-fish:before { content: @fa-var-fish; }
    +.@{fa-css-prefix}-fist-raised:before { content: @fa-var-fist-raised; }
    +.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }
    +.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }
    +.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }
    +.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }
    +.@{fa-css-prefix}-flipboard:before { content: @fa-var-flipboard; }
    +.@{fa-css-prefix}-flushed:before { content: @fa-var-flushed; }
    +.@{fa-css-prefix}-fly:before { content: @fa-var-fly; }
    +.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }
    +.@{fa-css-prefix}-folder-minus:before { content: @fa-var-folder-minus; }
    +.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }
    +.@{fa-css-prefix}-folder-plus:before { content: @fa-var-folder-plus; }
    +.@{fa-css-prefix}-font:before { content: @fa-var-font; }
    +.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; }
    +.@{fa-css-prefix}-font-awesome-alt:before { content: @fa-var-font-awesome-alt; }
    +.@{fa-css-prefix}-font-awesome-flag:before { content: @fa-var-font-awesome-flag; }
    +.@{fa-css-prefix}-font-awesome-logo-full:before { content: @fa-var-font-awesome-logo-full; }
    +.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; }
    +.@{fa-css-prefix}-fonticons-fi:before { content: @fa-var-fonticons-fi; }
    +.@{fa-css-prefix}-football-ball:before { content: @fa-var-football-ball; }
    +.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; }
    +.@{fa-css-prefix}-fort-awesome-alt:before { content: @fa-var-fort-awesome-alt; }
    +.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; }
    +.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }
    +.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }
    +.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; }
    +.@{fa-css-prefix}-freebsd:before { content: @fa-var-freebsd; }
    +.@{fa-css-prefix}-frog:before { content: @fa-var-frog; }
    +.@{fa-css-prefix}-frown:before { content: @fa-var-frown; }
    +.@{fa-css-prefix}-frown-open:before { content: @fa-var-frown-open; }
    +.@{fa-css-prefix}-fulcrum:before { content: @fa-var-fulcrum; }
    +.@{fa-css-prefix}-funnel-dollar:before { content: @fa-var-funnel-dollar; }
    +.@{fa-css-prefix}-futbol:before { content: @fa-var-futbol; }
    +.@{fa-css-prefix}-galactic-republic:before { content: @fa-var-galactic-republic; }
    +.@{fa-css-prefix}-galactic-senate:before { content: @fa-var-galactic-senate; }
    +.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }
    +.@{fa-css-prefix}-gas-pump:before { content: @fa-var-gas-pump; }
    +.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }
    +.@{fa-css-prefix}-gem:before { content: @fa-var-gem; }
    +.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; }
    +.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; }
    +.@{fa-css-prefix}-gg:before { content: @fa-var-gg; }
    +.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; }
    +.@{fa-css-prefix}-ghost:before { content: @fa-var-ghost; }
    +.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }
    +.@{fa-css-prefix}-git:before { content: @fa-var-git; }
    +.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }
    +.@{fa-css-prefix}-github:before { content: @fa-var-github; }
    +.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }
    +.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }
    +.@{fa-css-prefix}-gitkraken:before { content: @fa-var-gitkraken; }
    +.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; }
    +.@{fa-css-prefix}-gitter:before { content: @fa-var-gitter; }
    +.@{fa-css-prefix}-glass-martini:before { content: @fa-var-glass-martini; }
    +.@{fa-css-prefix}-glass-martini-alt:before { content: @fa-var-glass-martini-alt; }
    +.@{fa-css-prefix}-glasses:before { content: @fa-var-glasses; }
    +.@{fa-css-prefix}-glide:before { content: @fa-var-glide; }
    +.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; }
    +.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }
    +.@{fa-css-prefix}-globe-africa:before { content: @fa-var-globe-africa; }
    +.@{fa-css-prefix}-globe-americas:before { content: @fa-var-globe-americas; }
    +.@{fa-css-prefix}-globe-asia:before { content: @fa-var-globe-asia; }
    +.@{fa-css-prefix}-gofore:before { content: @fa-var-gofore; }
    +.@{fa-css-prefix}-golf-ball:before { content: @fa-var-golf-ball; }
    +.@{fa-css-prefix}-goodreads:before { content: @fa-var-goodreads; }
    +.@{fa-css-prefix}-goodreads-g:before { content: @fa-var-goodreads-g; }
    +.@{fa-css-prefix}-google:before { content: @fa-var-google; }
    +.@{fa-css-prefix}-google-drive:before { content: @fa-var-google-drive; }
    +.@{fa-css-prefix}-google-play:before { content: @fa-var-google-play; }
    +.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }
    +.@{fa-css-prefix}-google-plus-g:before { content: @fa-var-google-plus-g; }
    +.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }
    +.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }
    +.@{fa-css-prefix}-gopuram:before { content: @fa-var-gopuram; }
    +.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }
    +.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; }
    +.@{fa-css-prefix}-grav:before { content: @fa-var-grav; }
    +.@{fa-css-prefix}-greater-than:before { content: @fa-var-greater-than; }
    +.@{fa-css-prefix}-greater-than-equal:before { content: @fa-var-greater-than-equal; }
    +.@{fa-css-prefix}-grimace:before { content: @fa-var-grimace; }
    +.@{fa-css-prefix}-grin:before { content: @fa-var-grin; }
    +.@{fa-css-prefix}-grin-alt:before { content: @fa-var-grin-alt; }
    +.@{fa-css-prefix}-grin-beam:before { content: @fa-var-grin-beam; }
    +.@{fa-css-prefix}-grin-beam-sweat:before { content: @fa-var-grin-beam-sweat; }
    +.@{fa-css-prefix}-grin-hearts:before { content: @fa-var-grin-hearts; }
    +.@{fa-css-prefix}-grin-squint:before { content: @fa-var-grin-squint; }
    +.@{fa-css-prefix}-grin-squint-tears:before { content: @fa-var-grin-squint-tears; }
    +.@{fa-css-prefix}-grin-stars:before { content: @fa-var-grin-stars; }
    +.@{fa-css-prefix}-grin-tears:before { content: @fa-var-grin-tears; }
    +.@{fa-css-prefix}-grin-tongue:before { content: @fa-var-grin-tongue; }
    +.@{fa-css-prefix}-grin-tongue-squint:before { content: @fa-var-grin-tongue-squint; }
    +.@{fa-css-prefix}-grin-tongue-wink:before { content: @fa-var-grin-tongue-wink; }
    +.@{fa-css-prefix}-grin-wink:before { content: @fa-var-grin-wink; }
    +.@{fa-css-prefix}-grip-horizontal:before { content: @fa-var-grip-horizontal; }
    +.@{fa-css-prefix}-grip-vertical:before { content: @fa-var-grip-vertical; }
    +.@{fa-css-prefix}-gripfire:before { content: @fa-var-gripfire; }
    +.@{fa-css-prefix}-grunt:before { content: @fa-var-grunt; }
    +.@{fa-css-prefix}-gulp:before { content: @fa-var-gulp; }
    +.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }
    +.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }
    +.@{fa-css-prefix}-hacker-news-square:before { content: @fa-var-hacker-news-square; }
    +.@{fa-css-prefix}-hackerrank:before { content: @fa-var-hackerrank; }
    +.@{fa-css-prefix}-hammer:before { content: @fa-var-hammer; }
    +.@{fa-css-prefix}-hamsa:before { content: @fa-var-hamsa; }
    +.@{fa-css-prefix}-hand-holding:before { content: @fa-var-hand-holding; }
    +.@{fa-css-prefix}-hand-holding-heart:before { content: @fa-var-hand-holding-heart; }
    +.@{fa-css-prefix}-hand-holding-usd:before { content: @fa-var-hand-holding-usd; }
    +.@{fa-css-prefix}-hand-lizard:before { content: @fa-var-hand-lizard; }
    +.@{fa-css-prefix}-hand-paper:before { content: @fa-var-hand-paper; }
    +.@{fa-css-prefix}-hand-peace:before { content: @fa-var-hand-peace; }
    +.@{fa-css-prefix}-hand-point-down:before { content: @fa-var-hand-point-down; }
    +.@{fa-css-prefix}-hand-point-left:before { content: @fa-var-hand-point-left; }
    +.@{fa-css-prefix}-hand-point-right:before { content: @fa-var-hand-point-right; }
    +.@{fa-css-prefix}-hand-point-up:before { content: @fa-var-hand-point-up; }
    +.@{fa-css-prefix}-hand-pointer:before { content: @fa-var-hand-pointer; }
    +.@{fa-css-prefix}-hand-rock:before { content: @fa-var-hand-rock; }
    +.@{fa-css-prefix}-hand-scissors:before { content: @fa-var-hand-scissors; }
    +.@{fa-css-prefix}-hand-spock:before { content: @fa-var-hand-spock; }
    +.@{fa-css-prefix}-hands:before { content: @fa-var-hands; }
    +.@{fa-css-prefix}-hands-helping:before { content: @fa-var-hands-helping; }
    +.@{fa-css-prefix}-handshake:before { content: @fa-var-handshake; }
    +.@{fa-css-prefix}-hanukiah:before { content: @fa-var-hanukiah; }
    +.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; }
    +.@{fa-css-prefix}-hat-wizard:before { content: @fa-var-hat-wizard; }
    +.@{fa-css-prefix}-haykal:before { content: @fa-var-haykal; }
    +.@{fa-css-prefix}-hdd:before { content: @fa-var-hdd; }
    +.@{fa-css-prefix}-heading:before { content: @fa-var-heading; }
    +.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }
    +.@{fa-css-prefix}-headphones-alt:before { content: @fa-var-headphones-alt; }
    +.@{fa-css-prefix}-headset:before { content: @fa-var-headset; }
    +.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }
    +.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; }
    +.@{fa-css-prefix}-helicopter:before { content: @fa-var-helicopter; }
    +.@{fa-css-prefix}-highlighter:before { content: @fa-var-highlighter; }
    +.@{fa-css-prefix}-hiking:before { content: @fa-var-hiking; }
    +.@{fa-css-prefix}-hippo:before { content: @fa-var-hippo; }
    +.@{fa-css-prefix}-hips:before { content: @fa-var-hips; }
    +.@{fa-css-prefix}-hire-a-helper:before { content: @fa-var-hire-a-helper; }
    +.@{fa-css-prefix}-history:before { content: @fa-var-history; }
    +.@{fa-css-prefix}-hockey-puck:before { content: @fa-var-hockey-puck; }
    +.@{fa-css-prefix}-home:before { content: @fa-var-home; }
    +.@{fa-css-prefix}-hooli:before { content: @fa-var-hooli; }
    +.@{fa-css-prefix}-hornbill:before { content: @fa-var-hornbill; }
    +.@{fa-css-prefix}-horse:before { content: @fa-var-horse; }
    +.@{fa-css-prefix}-hospital:before { content: @fa-var-hospital; }
    +.@{fa-css-prefix}-hospital-alt:before { content: @fa-var-hospital-alt; }
    +.@{fa-css-prefix}-hospital-symbol:before { content: @fa-var-hospital-symbol; }
    +.@{fa-css-prefix}-hot-tub:before { content: @fa-var-hot-tub; }
    +.@{fa-css-prefix}-hotel:before { content: @fa-var-hotel; }
    +.@{fa-css-prefix}-hotjar:before { content: @fa-var-hotjar; }
    +.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; }
    +.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; }
    +.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; }
    +.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; }
    +.@{fa-css-prefix}-house-damage:before { content: @fa-var-house-damage; }
    +.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; }
    +.@{fa-css-prefix}-hryvnia:before { content: @fa-var-hryvnia; }
    +.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }
    +.@{fa-css-prefix}-hubspot:before { content: @fa-var-hubspot; }
    +.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; }
    +.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; }
    +.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; }
    +.@{fa-css-prefix}-id-card-alt:before { content: @fa-var-id-card-alt; }
    +.@{fa-css-prefix}-image:before { content: @fa-var-image; }
    +.@{fa-css-prefix}-images:before { content: @fa-var-images; }
    +.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; }
    +.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }
    +.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }
    +.@{fa-css-prefix}-industry:before { content: @fa-var-industry; }
    +.@{fa-css-prefix}-infinity:before { content: @fa-var-infinity; }
    +.@{fa-css-prefix}-info:before { content: @fa-var-info; }
    +.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }
    +.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }
    +.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; }
    +.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }
    +.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }
    +.@{fa-css-prefix}-itunes:before { content: @fa-var-itunes; }
    +.@{fa-css-prefix}-itunes-note:before { content: @fa-var-itunes-note; }
    +.@{fa-css-prefix}-java:before { content: @fa-var-java; }
    +.@{fa-css-prefix}-jedi:before { content: @fa-var-jedi; }
    +.@{fa-css-prefix}-jedi-order:before { content: @fa-var-jedi-order; }
    +.@{fa-css-prefix}-jenkins:before { content: @fa-var-jenkins; }
    +.@{fa-css-prefix}-joget:before { content: @fa-var-joget; }
    +.@{fa-css-prefix}-joint:before { content: @fa-var-joint; }
    +.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }
    +.@{fa-css-prefix}-journal-whills:before { content: @fa-var-journal-whills; }
    +.@{fa-css-prefix}-js:before { content: @fa-var-js; }
    +.@{fa-css-prefix}-js-square:before { content: @fa-var-js-square; }
    +.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }
    +.@{fa-css-prefix}-kaaba:before { content: @fa-var-kaaba; }
    +.@{fa-css-prefix}-kaggle:before { content: @fa-var-kaggle; }
    +.@{fa-css-prefix}-key:before { content: @fa-var-key; }
    +.@{fa-css-prefix}-keybase:before { content: @fa-var-keybase; }
    +.@{fa-css-prefix}-keyboard:before { content: @fa-var-keyboard; }
    +.@{fa-css-prefix}-keycdn:before { content: @fa-var-keycdn; }
    +.@{fa-css-prefix}-khanda:before { content: @fa-var-khanda; }
    +.@{fa-css-prefix}-kickstarter:before { content: @fa-var-kickstarter; }
    +.@{fa-css-prefix}-kickstarter-k:before { content: @fa-var-kickstarter-k; }
    +.@{fa-css-prefix}-kiss:before { content: @fa-var-kiss; }
    +.@{fa-css-prefix}-kiss-beam:before { content: @fa-var-kiss-beam; }
    +.@{fa-css-prefix}-kiss-wink-heart:before { content: @fa-var-kiss-wink-heart; }
    +.@{fa-css-prefix}-kiwi-bird:before { content: @fa-var-kiwi-bird; }
    +.@{fa-css-prefix}-korvue:before { content: @fa-var-korvue; }
    +.@{fa-css-prefix}-landmark:before { content: @fa-var-landmark; }
    +.@{fa-css-prefix}-language:before { content: @fa-var-language; }
    +.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }
    +.@{fa-css-prefix}-laptop-code:before { content: @fa-var-laptop-code; }
    +.@{fa-css-prefix}-laravel:before { content: @fa-var-laravel; }
    +.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }
    +.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }
    +.@{fa-css-prefix}-laugh:before { content: @fa-var-laugh; }
    +.@{fa-css-prefix}-laugh-beam:before { content: @fa-var-laugh-beam; }
    +.@{fa-css-prefix}-laugh-squint:before { content: @fa-var-laugh-squint; }
    +.@{fa-css-prefix}-laugh-wink:before { content: @fa-var-laugh-wink; }
    +.@{fa-css-prefix}-layer-group:before { content: @fa-var-layer-group; }
    +.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }
    +.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; }
    +.@{fa-css-prefix}-lemon:before { content: @fa-var-lemon; }
    +.@{fa-css-prefix}-less:before { content: @fa-var-less; }
    +.@{fa-css-prefix}-less-than:before { content: @fa-var-less-than; }
    +.@{fa-css-prefix}-less-than-equal:before { content: @fa-var-less-than-equal; }
    +.@{fa-css-prefix}-level-down-alt:before { content: @fa-var-level-down-alt; }
    +.@{fa-css-prefix}-level-up-alt:before { content: @fa-var-level-up-alt; }
    +.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }
    +.@{fa-css-prefix}-lightbulb:before { content: @fa-var-lightbulb; }
    +.@{fa-css-prefix}-line:before { content: @fa-var-line; }
    +.@{fa-css-prefix}-link:before { content: @fa-var-link; }
    +.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }
    +.@{fa-css-prefix}-linkedin-in:before { content: @fa-var-linkedin-in; }
    +.@{fa-css-prefix}-linode:before { content: @fa-var-linode; }
    +.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }
    +.@{fa-css-prefix}-lira-sign:before { content: @fa-var-lira-sign; }
    +.@{fa-css-prefix}-list:before { content: @fa-var-list; }
    +.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }
    +.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }
    +.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }
    +.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }
    +.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }
    +.@{fa-css-prefix}-lock-open:before { content: @fa-var-lock-open; }
    +.@{fa-css-prefix}-long-arrow-alt-down:before { content: @fa-var-long-arrow-alt-down; }
    +.@{fa-css-prefix}-long-arrow-alt-left:before { content: @fa-var-long-arrow-alt-left; }
    +.@{fa-css-prefix}-long-arrow-alt-right:before { content: @fa-var-long-arrow-alt-right; }
    +.@{fa-css-prefix}-long-arrow-alt-up:before { content: @fa-var-long-arrow-alt-up; }
    +.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; }
    +.@{fa-css-prefix}-luggage-cart:before { content: @fa-var-luggage-cart; }
    +.@{fa-css-prefix}-lyft:before { content: @fa-var-lyft; }
    +.@{fa-css-prefix}-magento:before { content: @fa-var-magento; }
    +.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }
    +.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }
    +.@{fa-css-prefix}-mail-bulk:before { content: @fa-var-mail-bulk; }
    +.@{fa-css-prefix}-mailchimp:before { content: @fa-var-mailchimp; }
    +.@{fa-css-prefix}-male:before { content: @fa-var-male; }
    +.@{fa-css-prefix}-mandalorian:before { content: @fa-var-mandalorian; }
    +.@{fa-css-prefix}-map:before { content: @fa-var-map; }
    +.@{fa-css-prefix}-map-marked:before { content: @fa-var-map-marked; }
    +.@{fa-css-prefix}-map-marked-alt:before { content: @fa-var-map-marked-alt; }
    +.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }
    +.@{fa-css-prefix}-map-marker-alt:before { content: @fa-var-map-marker-alt; }
    +.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; }
    +.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; }
    +.@{fa-css-prefix}-markdown:before { content: @fa-var-markdown; }
    +.@{fa-css-prefix}-marker:before { content: @fa-var-marker; }
    +.@{fa-css-prefix}-mars:before { content: @fa-var-mars; }
    +.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; }
    +.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; }
    +.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; }
    +.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; }
    +.@{fa-css-prefix}-mask:before { content: @fa-var-mask; }
    +.@{fa-css-prefix}-mastodon:before { content: @fa-var-mastodon; }
    +.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }
    +.@{fa-css-prefix}-medal:before { content: @fa-var-medal; }
    +.@{fa-css-prefix}-medapps:before { content: @fa-var-medapps; }
    +.@{fa-css-prefix}-medium:before { content: @fa-var-medium; }
    +.@{fa-css-prefix}-medium-m:before { content: @fa-var-medium-m; }
    +.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }
    +.@{fa-css-prefix}-medrt:before { content: @fa-var-medrt; }
    +.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; }
    +.@{fa-css-prefix}-megaport:before { content: @fa-var-megaport; }
    +.@{fa-css-prefix}-meh:before { content: @fa-var-meh; }
    +.@{fa-css-prefix}-meh-blank:before { content: @fa-var-meh-blank; }
    +.@{fa-css-prefix}-meh-rolling-eyes:before { content: @fa-var-meh-rolling-eyes; }
    +.@{fa-css-prefix}-memory:before { content: @fa-var-memory; }
    +.@{fa-css-prefix}-menorah:before { content: @fa-var-menorah; }
    +.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; }
    +.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; }
    +.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }
    +.@{fa-css-prefix}-microphone-alt:before { content: @fa-var-microphone-alt; }
    +.@{fa-css-prefix}-microphone-alt-slash:before { content: @fa-var-microphone-alt-slash; }
    +.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }
    +.@{fa-css-prefix}-microscope:before { content: @fa-var-microscope; }
    +.@{fa-css-prefix}-microsoft:before { content: @fa-var-microsoft; }
    +.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }
    +.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }
    +.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }
    +.@{fa-css-prefix}-mix:before { content: @fa-var-mix; }
    +.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; }
    +.@{fa-css-prefix}-mizuni:before { content: @fa-var-mizuni; }
    +.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }
    +.@{fa-css-prefix}-mobile-alt:before { content: @fa-var-mobile-alt; }
    +.@{fa-css-prefix}-modx:before { content: @fa-var-modx; }
    +.@{fa-css-prefix}-monero:before { content: @fa-var-monero; }
    +.@{fa-css-prefix}-money-bill:before { content: @fa-var-money-bill; }
    +.@{fa-css-prefix}-money-bill-alt:before { content: @fa-var-money-bill-alt; }
    +.@{fa-css-prefix}-money-bill-wave:before { content: @fa-var-money-bill-wave; }
    +.@{fa-css-prefix}-money-bill-wave-alt:before { content: @fa-var-money-bill-wave-alt; }
    +.@{fa-css-prefix}-money-check:before { content: @fa-var-money-check; }
    +.@{fa-css-prefix}-money-check-alt:before { content: @fa-var-money-check-alt; }
    +.@{fa-css-prefix}-monument:before { content: @fa-var-monument; }
    +.@{fa-css-prefix}-moon:before { content: @fa-var-moon; }
    +.@{fa-css-prefix}-mortar-pestle:before { content: @fa-var-mortar-pestle; }
    +.@{fa-css-prefix}-mosque:before { content: @fa-var-mosque; }
    +.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; }
    +.@{fa-css-prefix}-mountain:before { content: @fa-var-mountain; }
    +.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; }
    +.@{fa-css-prefix}-music:before { content: @fa-var-music; }
    +.@{fa-css-prefix}-napster:before { content: @fa-var-napster; }
    +.@{fa-css-prefix}-neos:before { content: @fa-var-neos; }
    +.@{fa-css-prefix}-network-wired:before { content: @fa-var-network-wired; }
    +.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; }
    +.@{fa-css-prefix}-newspaper:before { content: @fa-var-newspaper; }
    +.@{fa-css-prefix}-nimblr:before { content: @fa-var-nimblr; }
    +.@{fa-css-prefix}-nintendo-switch:before { content: @fa-var-nintendo-switch; }
    +.@{fa-css-prefix}-node:before { content: @fa-var-node; }
    +.@{fa-css-prefix}-node-js:before { content: @fa-var-node-js; }
    +.@{fa-css-prefix}-not-equal:before { content: @fa-var-not-equal; }
    +.@{fa-css-prefix}-notes-medical:before { content: @fa-var-notes-medical; }
    +.@{fa-css-prefix}-npm:before { content: @fa-var-npm; }
    +.@{fa-css-prefix}-ns8:before { content: @fa-var-ns8; }
    +.@{fa-css-prefix}-nutritionix:before { content: @fa-var-nutritionix; }
    +.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; }
    +.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; }
    +.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; }
    +.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; }
    +.@{fa-css-prefix}-oil-can:before { content: @fa-var-oil-can; }
    +.@{fa-css-prefix}-old-republic:before { content: @fa-var-old-republic; }
    +.@{fa-css-prefix}-om:before { content: @fa-var-om; }
    +.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; }
    +.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }
    +.@{fa-css-prefix}-opera:before { content: @fa-var-opera; }
    +.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; }
    +.@{fa-css-prefix}-osi:before { content: @fa-var-osi; }
    +.@{fa-css-prefix}-otter:before { content: @fa-var-otter; }
    +.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }
    +.@{fa-css-prefix}-page4:before { content: @fa-var-page4; }
    +.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }
    +.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }
    +.@{fa-css-prefix}-paint-roller:before { content: @fa-var-paint-roller; }
    +.@{fa-css-prefix}-palette:before { content: @fa-var-palette; }
    +.@{fa-css-prefix}-palfed:before { content: @fa-var-palfed; }
    +.@{fa-css-prefix}-pallet:before { content: @fa-var-pallet; }
    +.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }
    +.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }
    +.@{fa-css-prefix}-parachute-box:before { content: @fa-var-parachute-box; }
    +.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }
    +.@{fa-css-prefix}-parking:before { content: @fa-var-parking; }
    +.@{fa-css-prefix}-passport:before { content: @fa-var-passport; }
    +.@{fa-css-prefix}-pastafarianism:before { content: @fa-var-pastafarianism; }
    +.@{fa-css-prefix}-paste:before { content: @fa-var-paste; }
    +.@{fa-css-prefix}-patreon:before { content: @fa-var-patreon; }
    +.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }
    +.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; }
    +.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }
    +.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }
    +.@{fa-css-prefix}-peace:before { content: @fa-var-peace; }
    +.@{fa-css-prefix}-pen:before { content: @fa-var-pen; }
    +.@{fa-css-prefix}-pen-alt:before { content: @fa-var-pen-alt; }
    +.@{fa-css-prefix}-pen-fancy:before { content: @fa-var-pen-fancy; }
    +.@{fa-css-prefix}-pen-nib:before { content: @fa-var-pen-nib; }
    +.@{fa-css-prefix}-pen-square:before { content: @fa-var-pen-square; }
    +.@{fa-css-prefix}-pencil-alt:before { content: @fa-var-pencil-alt; }
    +.@{fa-css-prefix}-pencil-ruler:before { content: @fa-var-pencil-ruler; }
    +.@{fa-css-prefix}-penny-arcade:before { content: @fa-var-penny-arcade; }
    +.@{fa-css-prefix}-people-carry:before { content: @fa-var-people-carry; }
    +.@{fa-css-prefix}-percent:before { content: @fa-var-percent; }
    +.@{fa-css-prefix}-percentage:before { content: @fa-var-percentage; }
    +.@{fa-css-prefix}-periscope:before { content: @fa-var-periscope; }
    +.@{fa-css-prefix}-phabricator:before { content: @fa-var-phabricator; }
    +.@{fa-css-prefix}-phoenix-framework:before { content: @fa-var-phoenix-framework; }
    +.@{fa-css-prefix}-phoenix-squadron:before { content: @fa-var-phoenix-squadron; }
    +.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }
    +.@{fa-css-prefix}-phone-slash:before { content: @fa-var-phone-slash; }
    +.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }
    +.@{fa-css-prefix}-phone-volume:before { content: @fa-var-phone-volume; }
    +.@{fa-css-prefix}-php:before { content: @fa-var-php; }
    +.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }
    +.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }
    +.@{fa-css-prefix}-pied-piper-hat:before { content: @fa-var-pied-piper-hat; }
    +.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; }
    +.@{fa-css-prefix}-piggy-bank:before { content: @fa-var-piggy-bank; }
    +.@{fa-css-prefix}-pills:before { content: @fa-var-pills; }
    +.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }
    +.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; }
    +.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }
    +.@{fa-css-prefix}-place-of-worship:before { content: @fa-var-place-of-worship; }
    +.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }
    +.@{fa-css-prefix}-plane-arrival:before { content: @fa-var-plane-arrival; }
    +.@{fa-css-prefix}-plane-departure:before { content: @fa-var-plane-departure; }
    +.@{fa-css-prefix}-play:before { content: @fa-var-play; }
    +.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }
    +.@{fa-css-prefix}-playstation:before { content: @fa-var-playstation; }
    +.@{fa-css-prefix}-plug:before { content: @fa-var-plug; }
    +.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }
    +.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }
    +.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }
    +.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; }
    +.@{fa-css-prefix}-poll:before { content: @fa-var-poll; }
    +.@{fa-css-prefix}-poll-h:before { content: @fa-var-poll-h; }
    +.@{fa-css-prefix}-poo:before { content: @fa-var-poo; }
    +.@{fa-css-prefix}-poop:before { content: @fa-var-poop; }
    +.@{fa-css-prefix}-portrait:before { content: @fa-var-portrait; }
    +.@{fa-css-prefix}-pound-sign:before { content: @fa-var-pound-sign; }
    +.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }
    +.@{fa-css-prefix}-pray:before { content: @fa-var-pray; }
    +.@{fa-css-prefix}-praying-hands:before { content: @fa-var-praying-hands; }
    +.@{fa-css-prefix}-prescription:before { content: @fa-var-prescription; }
    +.@{fa-css-prefix}-prescription-bottle:before { content: @fa-var-prescription-bottle; }
    +.@{fa-css-prefix}-prescription-bottle-alt:before { content: @fa-var-prescription-bottle-alt; }
    +.@{fa-css-prefix}-print:before { content: @fa-var-print; }
    +.@{fa-css-prefix}-procedures:before { content: @fa-var-procedures; }
    +.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; }
    +.@{fa-css-prefix}-project-diagram:before { content: @fa-var-project-diagram; }
    +.@{fa-css-prefix}-pushed:before { content: @fa-var-pushed; }
    +.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }
    +.@{fa-css-prefix}-python:before { content: @fa-var-python; }
    +.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }
    +.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }
    +.@{fa-css-prefix}-question:before { content: @fa-var-question; }
    +.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }
    +.@{fa-css-prefix}-quidditch:before { content: @fa-var-quidditch; }
    +.@{fa-css-prefix}-quinscape:before { content: @fa-var-quinscape; }
    +.@{fa-css-prefix}-quora:before { content: @fa-var-quora; }
    +.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }
    +.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }
    +.@{fa-css-prefix}-quran:before { content: @fa-var-quran; }
    +.@{fa-css-prefix}-r-project:before { content: @fa-var-r-project; }
    +.@{fa-css-prefix}-random:before { content: @fa-var-random; }
    +.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; }
    +.@{fa-css-prefix}-react:before { content: @fa-var-react; }
    +.@{fa-css-prefix}-readme:before { content: @fa-var-readme; }
    +.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }
    +.@{fa-css-prefix}-receipt:before { content: @fa-var-receipt; }
    +.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }
    +.@{fa-css-prefix}-red-river:before { content: @fa-var-red-river; }
    +.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }
    +.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; }
    +.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }
    +.@{fa-css-prefix}-redo:before { content: @fa-var-redo; }
    +.@{fa-css-prefix}-redo-alt:before { content: @fa-var-redo-alt; }
    +.@{fa-css-prefix}-registered:before { content: @fa-var-registered; }
    +.@{fa-css-prefix}-rendact:before { content: @fa-var-rendact; }
    +.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }
    +.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }
    +.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }
    +.@{fa-css-prefix}-replyd:before { content: @fa-var-replyd; }
    +.@{fa-css-prefix}-researchgate:before { content: @fa-var-researchgate; }
    +.@{fa-css-prefix}-resolving:before { content: @fa-var-resolving; }
    +.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }
    +.@{fa-css-prefix}-rev:before { content: @fa-var-rev; }
    +.@{fa-css-prefix}-ribbon:before { content: @fa-var-ribbon; }
    +.@{fa-css-prefix}-ring:before { content: @fa-var-ring; }
    +.@{fa-css-prefix}-road:before { content: @fa-var-road; }
    +.@{fa-css-prefix}-robot:before { content: @fa-var-robot; }
    +.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }
    +.@{fa-css-prefix}-rocketchat:before { content: @fa-var-rocketchat; }
    +.@{fa-css-prefix}-rockrms:before { content: @fa-var-rockrms; }
    +.@{fa-css-prefix}-route:before { content: @fa-var-route; }
    +.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }
    +.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }
    +.@{fa-css-prefix}-ruble-sign:before { content: @fa-var-ruble-sign; }
    +.@{fa-css-prefix}-ruler:before { content: @fa-var-ruler; }
    +.@{fa-css-prefix}-ruler-combined:before { content: @fa-var-ruler-combined; }
    +.@{fa-css-prefix}-ruler-horizontal:before { content: @fa-var-ruler-horizontal; }
    +.@{fa-css-prefix}-ruler-vertical:before { content: @fa-var-ruler-vertical; }
    +.@{fa-css-prefix}-running:before { content: @fa-var-running; }
    +.@{fa-css-prefix}-rupee-sign:before { content: @fa-var-rupee-sign; }
    +.@{fa-css-prefix}-sad-cry:before { content: @fa-var-sad-cry; }
    +.@{fa-css-prefix}-sad-tear:before { content: @fa-var-sad-tear; }
    +.@{fa-css-prefix}-safari:before { content: @fa-var-safari; }
    +.@{fa-css-prefix}-sass:before { content: @fa-var-sass; }
    +.@{fa-css-prefix}-save:before { content: @fa-var-save; }
    +.@{fa-css-prefix}-schlix:before { content: @fa-var-schlix; }
    +.@{fa-css-prefix}-school:before { content: @fa-var-school; }
    +.@{fa-css-prefix}-screwdriver:before { content: @fa-var-screwdriver; }
    +.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; }
    +.@{fa-css-prefix}-scroll:before { content: @fa-var-scroll; }
    +.@{fa-css-prefix}-search:before { content: @fa-var-search; }
    +.@{fa-css-prefix}-search-dollar:before { content: @fa-var-search-dollar; }
    +.@{fa-css-prefix}-search-location:before { content: @fa-var-search-location; }
    +.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }
    +.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }
    +.@{fa-css-prefix}-searchengin:before { content: @fa-var-searchengin; }
    +.@{fa-css-prefix}-seedling:before { content: @fa-var-seedling; }
    +.@{fa-css-prefix}-sellcast:before { content: @fa-var-sellcast; }
    +.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; }
    +.@{fa-css-prefix}-server:before { content: @fa-var-server; }
    +.@{fa-css-prefix}-servicestack:before { content: @fa-var-servicestack; }
    +.@{fa-css-prefix}-shapes:before { content: @fa-var-shapes; }
    +.@{fa-css-prefix}-share:before { content: @fa-var-share; }
    +.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }
    +.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }
    +.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }
    +.@{fa-css-prefix}-shekel-sign:before { content: @fa-var-shekel-sign; }
    +.@{fa-css-prefix}-shield-alt:before { content: @fa-var-shield-alt; }
    +.@{fa-css-prefix}-ship:before { content: @fa-var-ship; }
    +.@{fa-css-prefix}-shipping-fast:before { content: @fa-var-shipping-fast; }
    +.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; }
    +.@{fa-css-prefix}-shoe-prints:before { content: @fa-var-shoe-prints; }
    +.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; }
    +.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; }
    +.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }
    +.@{fa-css-prefix}-shopware:before { content: @fa-var-shopware; }
    +.@{fa-css-prefix}-shower:before { content: @fa-var-shower; }
    +.@{fa-css-prefix}-shuttle-van:before { content: @fa-var-shuttle-van; }
    +.@{fa-css-prefix}-sign:before { content: @fa-var-sign; }
    +.@{fa-css-prefix}-sign-in-alt:before { content: @fa-var-sign-in-alt; }
    +.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; }
    +.@{fa-css-prefix}-sign-out-alt:before { content: @fa-var-sign-out-alt; }
    +.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }
    +.@{fa-css-prefix}-signature:before { content: @fa-var-signature; }
    +.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; }
    +.@{fa-css-prefix}-sistrix:before { content: @fa-var-sistrix; }
    +.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }
    +.@{fa-css-prefix}-sith:before { content: @fa-var-sith; }
    +.@{fa-css-prefix}-skull:before { content: @fa-var-skull; }
    +.@{fa-css-prefix}-skull-crossbones:before { content: @fa-var-skull-crossbones; }
    +.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; }
    +.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }
    +.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }
    +.@{fa-css-prefix}-slack-hash:before { content: @fa-var-slack-hash; }
    +.@{fa-css-prefix}-slash:before { content: @fa-var-slash; }
    +.@{fa-css-prefix}-sliders-h:before { content: @fa-var-sliders-h; }
    +.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }
    +.@{fa-css-prefix}-smile:before { content: @fa-var-smile; }
    +.@{fa-css-prefix}-smile-beam:before { content: @fa-var-smile-beam; }
    +.@{fa-css-prefix}-smile-wink:before { content: @fa-var-smile-wink; }
    +.@{fa-css-prefix}-smoking:before { content: @fa-var-smoking; }
    +.@{fa-css-prefix}-smoking-ban:before { content: @fa-var-smoking-ban; }
    +.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; }
    +.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; }
    +.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; }
    +.@{fa-css-prefix}-snowflake:before { content: @fa-var-snowflake; }
    +.@{fa-css-prefix}-socks:before { content: @fa-var-socks; }
    +.@{fa-css-prefix}-solar-panel:before { content: @fa-var-solar-panel; }
    +.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }
    +.@{fa-css-prefix}-sort-alpha-down:before { content: @fa-var-sort-alpha-down; }
    +.@{fa-css-prefix}-sort-alpha-up:before { content: @fa-var-sort-alpha-up; }
    +.@{fa-css-prefix}-sort-amount-down:before { content: @fa-var-sort-amount-down; }
    +.@{fa-css-prefix}-sort-amount-up:before { content: @fa-var-sort-amount-up; }
    +.@{fa-css-prefix}-sort-down:before { content: @fa-var-sort-down; }
    +.@{fa-css-prefix}-sort-numeric-down:before { content: @fa-var-sort-numeric-down; }
    +.@{fa-css-prefix}-sort-numeric-up:before { content: @fa-var-sort-numeric-up; }
    +.@{fa-css-prefix}-sort-up:before { content: @fa-var-sort-up; }
    +.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }
    +.@{fa-css-prefix}-spa:before { content: @fa-var-spa; }
    +.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }
    +.@{fa-css-prefix}-speakap:before { content: @fa-var-speakap; }
    +.@{fa-css-prefix}-spider:before { content: @fa-var-spider; }
    +.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }
    +.@{fa-css-prefix}-splotch:before { content: @fa-var-splotch; }
    +.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }
    +.@{fa-css-prefix}-spray-can:before { content: @fa-var-spray-can; }
    +.@{fa-css-prefix}-square:before { content: @fa-var-square; }
    +.@{fa-css-prefix}-square-full:before { content: @fa-var-square-full; }
    +.@{fa-css-prefix}-square-root-alt:before { content: @fa-var-square-root-alt; }
    +.@{fa-css-prefix}-squarespace:before { content: @fa-var-squarespace; }
    +.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }
    +.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }
    +.@{fa-css-prefix}-stamp:before { content: @fa-var-stamp; }
    +.@{fa-css-prefix}-star:before { content: @fa-var-star; }
    +.@{fa-css-prefix}-star-and-crescent:before { content: @fa-var-star-and-crescent; }
    +.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }
    +.@{fa-css-prefix}-star-half-alt:before { content: @fa-var-star-half-alt; }
    +.@{fa-css-prefix}-star-of-david:before { content: @fa-var-star-of-david; }
    +.@{fa-css-prefix}-star-of-life:before { content: @fa-var-star-of-life; }
    +.@{fa-css-prefix}-staylinked:before { content: @fa-var-staylinked; }
    +.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }
    +.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }
    +.@{fa-css-prefix}-steam-symbol:before { content: @fa-var-steam-symbol; }
    +.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }
    +.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }
    +.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }
    +.@{fa-css-prefix}-sticker-mule:before { content: @fa-var-sticker-mule; }
    +.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; }
    +.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }
    +.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; }
    +.@{fa-css-prefix}-stopwatch:before { content: @fa-var-stopwatch; }
    +.@{fa-css-prefix}-store:before { content: @fa-var-store; }
    +.@{fa-css-prefix}-store-alt:before { content: @fa-var-store-alt; }
    +.@{fa-css-prefix}-strava:before { content: @fa-var-strava; }
    +.@{fa-css-prefix}-stream:before { content: @fa-var-stream; }
    +.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; }
    +.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }
    +.@{fa-css-prefix}-stripe:before { content: @fa-var-stripe; }
    +.@{fa-css-prefix}-stripe-s:before { content: @fa-var-stripe-s; }
    +.@{fa-css-prefix}-stroopwafel:before { content: @fa-var-stroopwafel; }
    +.@{fa-css-prefix}-studiovinari:before { content: @fa-var-studiovinari; }
    +.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }
    +.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }
    +.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }
    +.@{fa-css-prefix}-subway:before { content: @fa-var-subway; }
    +.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }
    +.@{fa-css-prefix}-suitcase-rolling:before { content: @fa-var-suitcase-rolling; }
    +.@{fa-css-prefix}-sun:before { content: @fa-var-sun; }
    +.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; }
    +.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }
    +.@{fa-css-prefix}-supple:before { content: @fa-var-supple; }
    +.@{fa-css-prefix}-surprise:before { content: @fa-var-surprise; }
    +.@{fa-css-prefix}-swatchbook:before { content: @fa-var-swatchbook; }
    +.@{fa-css-prefix}-swimmer:before { content: @fa-var-swimmer; }
    +.@{fa-css-prefix}-swimming-pool:before { content: @fa-var-swimming-pool; }
    +.@{fa-css-prefix}-synagogue:before { content: @fa-var-synagogue; }
    +.@{fa-css-prefix}-sync:before { content: @fa-var-sync; }
    +.@{fa-css-prefix}-sync-alt:before { content: @fa-var-sync-alt; }
    +.@{fa-css-prefix}-syringe:before { content: @fa-var-syringe; }
    +.@{fa-css-prefix}-table:before { content: @fa-var-table; }
    +.@{fa-css-prefix}-table-tennis:before { content: @fa-var-table-tennis; }
    +.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }
    +.@{fa-css-prefix}-tablet-alt:before { content: @fa-var-tablet-alt; }
    +.@{fa-css-prefix}-tablets:before { content: @fa-var-tablets; }
    +.@{fa-css-prefix}-tachometer-alt:before { content: @fa-var-tachometer-alt; }
    +.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }
    +.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }
    +.@{fa-css-prefix}-tape:before { content: @fa-var-tape; }
    +.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }
    +.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }
    +.@{fa-css-prefix}-teamspeak:before { content: @fa-var-teamspeak; }
    +.@{fa-css-prefix}-teeth:before { content: @fa-var-teeth; }
    +.@{fa-css-prefix}-teeth-open:before { content: @fa-var-teeth-open; }
    +.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; }
    +.@{fa-css-prefix}-telegram-plane:before { content: @fa-var-telegram-plane; }
    +.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }
    +.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }
    +.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }
    +.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }
    +.@{fa-css-prefix}-th:before { content: @fa-var-th; }
    +.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }
    +.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }
    +.@{fa-css-prefix}-the-red-yeti:before { content: @fa-var-the-red-yeti; }
    +.@{fa-css-prefix}-theater-masks:before { content: @fa-var-theater-masks; }
    +.@{fa-css-prefix}-themeco:before { content: @fa-var-themeco; }
    +.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; }
    +.@{fa-css-prefix}-thermometer:before { content: @fa-var-thermometer; }
    +.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; }
    +.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; }
    +.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; }
    +.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; }
    +.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; }
    +.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }
    +.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }
    +.@{fa-css-prefix}-thumbtack:before { content: @fa-var-thumbtack; }
    +.@{fa-css-prefix}-ticket-alt:before { content: @fa-var-ticket-alt; }
    +.@{fa-css-prefix}-times:before { content: @fa-var-times; }
    +.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }
    +.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }
    +.@{fa-css-prefix}-tint-slash:before { content: @fa-var-tint-slash; }
    +.@{fa-css-prefix}-tired:before { content: @fa-var-tired; }
    +.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }
    +.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }
    +.@{fa-css-prefix}-toilet-paper:before { content: @fa-var-toilet-paper; }
    +.@{fa-css-prefix}-toolbox:before { content: @fa-var-toolbox; }
    +.@{fa-css-prefix}-tooth:before { content: @fa-var-tooth; }
    +.@{fa-css-prefix}-torah:before { content: @fa-var-torah; }
    +.@{fa-css-prefix}-torii-gate:before { content: @fa-var-torii-gate; }
    +.@{fa-css-prefix}-tractor:before { content: @fa-var-tractor; }
    +.@{fa-css-prefix}-trade-federation:before { content: @fa-var-trade-federation; }
    +.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; }
    +.@{fa-css-prefix}-traffic-light:before { content: @fa-var-traffic-light; }
    +.@{fa-css-prefix}-train:before { content: @fa-var-train; }
    +.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; }
    +.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; }
    +.@{fa-css-prefix}-trash:before { content: @fa-var-trash; }
    +.@{fa-css-prefix}-trash-alt:before { content: @fa-var-trash-alt; }
    +.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }
    +.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }
    +.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; }
    +.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }
    +.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }
    +.@{fa-css-prefix}-truck-loading:before { content: @fa-var-truck-loading; }
    +.@{fa-css-prefix}-truck-monster:before { content: @fa-var-truck-monster; }
    +.@{fa-css-prefix}-truck-moving:before { content: @fa-var-truck-moving; }
    +.@{fa-css-prefix}-truck-pickup:before { content: @fa-var-truck-pickup; }
    +.@{fa-css-prefix}-tshirt:before { content: @fa-var-tshirt; }
    +.@{fa-css-prefix}-tty:before { content: @fa-var-tty; }
    +.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }
    +.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }
    +.@{fa-css-prefix}-tv:before { content: @fa-var-tv; }
    +.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }
    +.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }
    +.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }
    +.@{fa-css-prefix}-typo3:before { content: @fa-var-typo3; }
    +.@{fa-css-prefix}-uber:before { content: @fa-var-uber; }
    +.@{fa-css-prefix}-uikit:before { content: @fa-var-uikit; }
    +.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }
    +.@{fa-css-prefix}-umbrella-beach:before { content: @fa-var-umbrella-beach; }
    +.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }
    +.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }
    +.@{fa-css-prefix}-undo-alt:before { content: @fa-var-undo-alt; }
    +.@{fa-css-prefix}-uniregistry:before { content: @fa-var-uniregistry; }
    +.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; }
    +.@{fa-css-prefix}-university:before { content: @fa-var-university; }
    +.@{fa-css-prefix}-unlink:before { content: @fa-var-unlink; }
    +.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }
    +.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }
    +.@{fa-css-prefix}-untappd:before { content: @fa-var-untappd; }
    +.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }
    +.@{fa-css-prefix}-usb:before { content: @fa-var-usb; }
    +.@{fa-css-prefix}-user:before { content: @fa-var-user; }
    +.@{fa-css-prefix}-user-alt:before { content: @fa-var-user-alt; }
    +.@{fa-css-prefix}-user-alt-slash:before { content: @fa-var-user-alt-slash; }
    +.@{fa-css-prefix}-user-astronaut:before { content: @fa-var-user-astronaut; }
    +.@{fa-css-prefix}-user-check:before { content: @fa-var-user-check; }
    +.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; }
    +.@{fa-css-prefix}-user-clock:before { content: @fa-var-user-clock; }
    +.@{fa-css-prefix}-user-cog:before { content: @fa-var-user-cog; }
    +.@{fa-css-prefix}-user-edit:before { content: @fa-var-user-edit; }
    +.@{fa-css-prefix}-user-friends:before { content: @fa-var-user-friends; }
    +.@{fa-css-prefix}-user-graduate:before { content: @fa-var-user-graduate; }
    +.@{fa-css-prefix}-user-injured:before { content: @fa-var-user-injured; }
    +.@{fa-css-prefix}-user-lock:before { content: @fa-var-user-lock; }
    +.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }
    +.@{fa-css-prefix}-user-minus:before { content: @fa-var-user-minus; }
    +.@{fa-css-prefix}-user-ninja:before { content: @fa-var-user-ninja; }
    +.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; }
    +.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; }
    +.@{fa-css-prefix}-user-shield:before { content: @fa-var-user-shield; }
    +.@{fa-css-prefix}-user-slash:before { content: @fa-var-user-slash; }
    +.@{fa-css-prefix}-user-tag:before { content: @fa-var-user-tag; }
    +.@{fa-css-prefix}-user-tie:before { content: @fa-var-user-tie; }
    +.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; }
    +.@{fa-css-prefix}-users:before { content: @fa-var-users; }
    +.@{fa-css-prefix}-users-cog:before { content: @fa-var-users-cog; }
    +.@{fa-css-prefix}-ussunnah:before { content: @fa-var-ussunnah; }
    +.@{fa-css-prefix}-utensil-spoon:before { content: @fa-var-utensil-spoon; }
    +.@{fa-css-prefix}-utensils:before { content: @fa-var-utensils; }
    +.@{fa-css-prefix}-vaadin:before { content: @fa-var-vaadin; }
    +.@{fa-css-prefix}-vector-square:before { content: @fa-var-vector-square; }
    +.@{fa-css-prefix}-venus:before { content: @fa-var-venus; }
    +.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; }
    +.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; }
    +.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; }
    +.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; }
    +.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; }
    +.@{fa-css-prefix}-vial:before { content: @fa-var-vial; }
    +.@{fa-css-prefix}-vials:before { content: @fa-var-vials; }
    +.@{fa-css-prefix}-viber:before { content: @fa-var-viber; }
    +.@{fa-css-prefix}-video:before { content: @fa-var-video; }
    +.@{fa-css-prefix}-video-slash:before { content: @fa-var-video-slash; }
    +.@{fa-css-prefix}-vihara:before { content: @fa-var-vihara; }
    +.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; }
    +.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }
    +.@{fa-css-prefix}-vimeo-v:before { content: @fa-var-vimeo-v; }
    +.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }
    +.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }
    +.@{fa-css-prefix}-vnv:before { content: @fa-var-vnv; }
    +.@{fa-css-prefix}-volleyball-ball:before { content: @fa-var-volleyball-ball; }
    +.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }
    +.@{fa-css-prefix}-volume-mute:before { content: @fa-var-volume-mute; }
    +.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }
    +.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }
    +.@{fa-css-prefix}-vuejs:before { content: @fa-var-vuejs; }
    +.@{fa-css-prefix}-walking:before { content: @fa-var-walking; }
    +.@{fa-css-prefix}-wallet:before { content: @fa-var-wallet; }
    +.@{fa-css-prefix}-warehouse:before { content: @fa-var-warehouse; }
    +.@{fa-css-prefix}-weebly:before { content: @fa-var-weebly; }
    +.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }
    +.@{fa-css-prefix}-weight:before { content: @fa-var-weight; }
    +.@{fa-css-prefix}-weight-hanging:before { content: @fa-var-weight-hanging; }
    +.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }
    +.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; }
    +.@{fa-css-prefix}-whatsapp-square:before { content: @fa-var-whatsapp-square; }
    +.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }
    +.@{fa-css-prefix}-whmcs:before { content: @fa-var-whmcs; }
    +.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }
    +.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; }
    +.@{fa-css-prefix}-wind:before { content: @fa-var-wind; }
    +.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; }
    +.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; }
    +.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; }
    +.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; }
    +.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }
    +.@{fa-css-prefix}-wine-bottle:before { content: @fa-var-wine-bottle; }
    +.@{fa-css-prefix}-wine-glass:before { content: @fa-var-wine-glass; }
    +.@{fa-css-prefix}-wine-glass-alt:before { content: @fa-var-wine-glass-alt; }
    +.@{fa-css-prefix}-wix:before { content: @fa-var-wix; }
    +.@{fa-css-prefix}-wizards-of-the-coast:before { content: @fa-var-wizards-of-the-coast; }
    +.@{fa-css-prefix}-wolf-pack-battalion:before { content: @fa-var-wolf-pack-battalion; }
    +.@{fa-css-prefix}-won-sign:before { content: @fa-var-won-sign; }
    +.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }
    +.@{fa-css-prefix}-wordpress-simple:before { content: @fa-var-wordpress-simple; }
    +.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; }
    +.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; }
    +.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; }
    +.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }
    +.@{fa-css-prefix}-x-ray:before { content: @fa-var-x-ray; }
    +.@{fa-css-prefix}-xbox:before { content: @fa-var-xbox; }
    +.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }
    +.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }
    +.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; }
    +.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }
    +.@{fa-css-prefix}-yandex:before { content: @fa-var-yandex; }
    +.@{fa-css-prefix}-yandex-international:before { content: @fa-var-yandex-international; }
    +.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }
    +.@{fa-css-prefix}-yen-sign:before { content: @fa-var-yen-sign; }
    +.@{fa-css-prefix}-yin-yang:before { content: @fa-var-yin-yang; }
    +.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; }
    +.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }
    +.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }
    +.@{fa-css-prefix}-zhihu:before { content: @fa-var-zhihu; }
    diff --git a/htdocs/theme/common/fontawesome-5/less/_larger.less b/htdocs/theme/common/fontawesome-5/less/_larger.less
    new file mode 100644
    index 00000000000..6cbb1ec6ec5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_larger.less
    @@ -0,0 +1,27 @@
    +// Icon Sizes
    +// -------------------------
    +
    +.larger(@factor) when (@factor > 0) {
    +  .larger((@factor - 1));
    +
    +  .@{fa-css-prefix}-@{factor}x {
    +    font-size: (@factor * 1em);
    +  }
    +}
    +
    +/* makes the font 33% larger relative to the icon container */
    +.@{fa-css-prefix}-lg {
    +  font-size: (4em / 3);
    +  line-height: (3em / 4);
    +  vertical-align: -.0667em;
    +}
    +
    +.@{fa-css-prefix}-xs {
    +  font-size: .75em;
    +}
    +
    +.@{fa-css-prefix}-sm {
    +  font-size: .875em;
    +}
    +
    +.larger(10);
    diff --git a/htdocs/theme/common/fontawesome-5/less/_list.less b/htdocs/theme/common/fontawesome-5/less/_list.less
    new file mode 100644
    index 00000000000..1ff7ca7f599
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_list.less
    @@ -0,0 +1,18 @@
    +// List Icons
    +// -------------------------
    +
    +.@{fa-css-prefix}-ul {
    +  list-style-type: none;
    +  margin-left: @fa-li-width * 5/4;
    +  padding-left: 0;
    +
    +  > li { position: relative; }
    +}
    +
    +.@{fa-css-prefix}-li {
    +  left: -@fa-li-width;
    +  position: absolute;
    +  text-align: center;
    +  width: @fa-li-width;
    +  line-height: inherit;
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/less/_mixins.less b/htdocs/theme/common/fontawesome-5/less/_mixins.less
    new file mode 100644
    index 00000000000..a4e93f90a39
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_mixins.less
    @@ -0,0 +1,57 @@
    +// Mixins
    +// --------------------------
    +
    +.fa-icon() {
    +  -moz-osx-font-smoothing: grayscale;
    +  -webkit-font-smoothing: antialiased;
    +  display: inline-block;
    +  font-style: normal;
    +  font-variant: normal;
    +  font-weight: normal;
    +  line-height: 1;
    +  vertical-align: -.125em;
    +}
    +
    +.fa-icon-rotate(@degrees, @rotation) {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
    +  transform: rotate(@degrees);
    +}
    +
    +.fa-icon-flip(@horiz, @vert, @rotation) {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
    +  transform: scale(@horiz, @vert);
    +}
    +
    +
    +// Only display content to screen readers. A la Bootstrap 4.
    +//
    +// See: http://a11yproject.com/posts/how-to-hide-content/
    +
    +.sr-only() {
    +  border: 0;
    +  clip: rect(0,0,0,0);
    +  height: 1px;
    +  margin: -1px;
    +  overflow: hidden;
    +  padding: 0;
    +  position: absolute;
    +  width: 1px;
    +}
    +
    +// Use in conjunction with .sr-only to only display content when it's focused.
    +//
    +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
    +//
    +// Credit: HTML5 Boilerplate
    +
    +.sr-only-focusable() {
    +  &:active,
    +  &:focus {
    +    clip: auto;
    +    height: auto;
    +    margin: 0;
    +    overflow: visible;
    +    position: static;
    +    width: auto;
    +  }
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/less/_rotated-flipped.less b/htdocs/theme/common/fontawesome-5/less/_rotated-flipped.less
    new file mode 100644
    index 00000000000..1ee31db19f4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_rotated-flipped.less
    @@ -0,0 +1,23 @@
    +// Rotated & Flipped Icons
    +// -------------------------
    +
    +.@{fa-css-prefix}-rotate-90  { .fa-icon-rotate(90deg, 1);  }
    +.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
    +.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
    +
    +.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
    +.@{fa-css-prefix}-flip-vertical   { .fa-icon-flip(1, -1, 2); }
    +.@{fa-css-prefix}-flip-horizontal.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(-1, -1, 2); }
    +
    +// Hook for IE8-9
    +// -------------------------
    +
    +:root {
    +  .@{fa-css-prefix}-rotate-90,
    +  .@{fa-css-prefix}-rotate-180,
    +  .@{fa-css-prefix}-rotate-270,
    +  .@{fa-css-prefix}-flip-horizontal,
    +  .@{fa-css-prefix}-flip-vertical {
    +    filter: none;
    +  }
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/less/_screen-reader.less b/htdocs/theme/common/fontawesome-5/less/_screen-reader.less
    new file mode 100644
    index 00000000000..11c188196d5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_screen-reader.less
    @@ -0,0 +1,5 @@
    +// Screen Readers
    +// -------------------------
    +
    +.sr-only { .sr-only(); }
    +.sr-only-focusable { .sr-only-focusable(); }
    diff --git a/htdocs/theme/common/fontawesome-5/less/_shims.less b/htdocs/theme/common/fontawesome-5/less/_shims.less
    new file mode 100644
    index 00000000000..248f52f3471
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_shims.less
    @@ -0,0 +1,2066 @@
    +.@{fa-css-prefix}.@{fa-css-prefix}-glass:before { content: @fa-var-glass-martini; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-meetup {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-star-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-star-o:before { content: @fa-var-star; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-remove:before { content: @fa-var-times; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-close:before { content: @fa-var-times; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-gear:before { content: @fa-var-cog; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-trash-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-o:before { content: @fa-var-file; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-clock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-alt-circle-down; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-alt-circle-up; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-play-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-repeat:before { content: @fa-var-redo; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-rotate-right:before { content: @fa-var-redo; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-refresh:before { content: @fa-var-sync; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-list-alt {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-dedent:before { content: @fa-var-outdent; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-video-camera:before { content: @fa-var-video; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-picture-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-picture-o:before { content: @fa-var-image; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-photo {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-photo:before { content: @fa-var-image; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-image {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-image:before { content: @fa-var-image; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pencil-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-edit; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-share-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-check-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-times-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-check-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-mail-forward:before { content: @fa-var-share; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-eye {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-eye-slash {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-warning:before { content: @fa-var-exclamation-triangle; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-alt-v; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-alt-h; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart:before { content: @fa-var-chart-bar; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart-o:before { content: @fa-var-chart-bar; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-twitter-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-facebook-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-gears:before { content: @fa-var-cogs; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-up; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-down; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-heart-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-linkedin-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumbtack; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-github-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-lemon-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-square-o:before { content: @fa-var-square; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bookmark-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-twitter {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-facebook {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook-f; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-facebook-f {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-facebook-f:before { content: @fa-var-facebook-f; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-github {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-credit-card {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-feed:before { content: @fa-var-rss; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hdd-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-point-right; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-point-left; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-point-up; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-point-down; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-expand-arrows-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-group:before { content: @fa-var-users; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-chain:before { content: @fa-var-link; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-scissors:before { content: @fa-var-cut; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-files-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-files-o:before { content: @fa-var-copy; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-floppy-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-floppy-o:before { content: @fa-var-save; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-navicon:before { content: @fa-var-bars; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-reorder:before { content: @fa-var-bars; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pinterest {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pinterest-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-google-plus {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus-g; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-money {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-money:before { content: @fa-var-money-bill-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-unsorted:before { content: @fa-var-sort; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-down; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-up; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-linkedin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin-in; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-rotate-left:before { content: @fa-var-undo; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-legal:before { content: @fa-var-gavel; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-dashboard:before { content: @fa-var-tachometer-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-comment-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-comments-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-flash:before { content: @fa-var-bolt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-clipboard {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-paste {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-paste:before { content: @fa-var-clipboard; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-lightbulb-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bell-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cutlery:before { content: @fa-var-utensils; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-text-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-building-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-building-o:before { content: @fa-var-building; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hospital-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-mobile-phone:before { content: @fa-var-mobile-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-mail-reply:before { content: @fa-var-reply; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-github-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-folder-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-folder-open-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-smile-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-frown-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-meh-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-keyboard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-flag-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-mail-reply-all:before { content: @fa-var-reply-all; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-star-half-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-star-half-empty {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-star-half-empty:before { content: @fa-var-star-half; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-star-half-full {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-star-half-full:before { content: @fa-var-star-half; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-branch; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-chain-broken:before { content: @fa-var-unlink; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-shield:before { content: @fa-var-shield-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-calendar-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-maxcdn {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-html5 {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-css3 {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-minus-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pen-square; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-compass {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-down; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-toggle-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-toggle-down:before { content: @fa-var-caret-square-down; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-up; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-toggle-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-toggle-up:before { content: @fa-var-caret-square-up; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-right; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-toggle-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-toggle-right:before { content: @fa-var-caret-square-right; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-eur:before { content: @fa-var-euro-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-euro:before { content: @fa-var-euro-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-gbp:before { content: @fa-var-pound-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-usd:before { content: @fa-var-dollar-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-dollar:before { content: @fa-var-dollar-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-inr:before { content: @fa-var-rupee-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-rupee:before { content: @fa-var-rupee-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-jpy:before { content: @fa-var-yen-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cny:before { content: @fa-var-yen-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-rmb:before { content: @fa-var-yen-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-yen:before { content: @fa-var-yen-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-rub:before { content: @fa-var-ruble-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-ruble:before { content: @fa-var-ruble-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-rouble:before { content: @fa-var-ruble-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-krw:before { content: @fa-var-won-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-won:before { content: @fa-var-won-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-btc {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bitcoin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-bitcoin:before { content: @fa-var-btc; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-text:before { content: @fa-var-file-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-down; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-up; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-down; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-up; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-down; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-up; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-youtube-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-youtube {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-xing {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-xing-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-youtube-play {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-dropbox {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-stack-overflow {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-instagram {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-flickr {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-adn {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bitbucket {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bitbucket-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-tumblr {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-tumblr-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-alt-down; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-alt-up; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-alt-left; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-alt-right; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-apple {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-windows {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-android {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-linux {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-dribbble {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-skype {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-foursquare {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-trello {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-gratipay {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-gittip {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-gittip:before { content: @fa-var-gratipay; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sun-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-moon-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-vk {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-weibo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-renren {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pagelines {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-stack-exchange {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-alt-circle-right; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-alt-circle-left; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-left; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-toggle-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-toggle-left:before { content: @fa-var-caret-square-left; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-dot-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-vimeo-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-try:before { content: @fa-var-lira-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-turkish-lira:before { content: @fa-var-lira-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-plus-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-slack {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-wordpress {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-openid {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-institution:before { content: @fa-var-university; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bank:before { content: @fa-var-university; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-mortar-board:before { content: @fa-var-graduation-cap; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-yahoo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-google {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-reddit {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-reddit-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-stumbleupon-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-stumbleupon {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-delicious {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-digg {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pied-piper-pp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pied-piper-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-drupal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-joomla {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-spoon:before { content: @fa-var-utensil-spoon; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-behance {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-behance-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-steam {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-steam-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-automobile:before { content: @fa-var-car; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cab:before { content: @fa-var-taxi; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-envelope-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-deviantart {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-soundcloud {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-pdf-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-word-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-excel-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-powerpoint-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-image-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-photo-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-photo-o:before { content: @fa-var-file-image; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-picture-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-picture-o:before { content: @fa-var-file-image; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-archive-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-zip-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-zip-o:before { content: @fa-var-file-archive; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-audio-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-sound-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-sound-o:before { content: @fa-var-file-audio; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-video-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-movie-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-movie-o:before { content: @fa-var-file-video; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-code-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-vine {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-codepen {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-jsfiddle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-life-ring {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-life-bouy {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-life-bouy:before { content: @fa-var-life-ring; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-life-buoy {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-life-buoy:before { content: @fa-var-life-ring; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-life-saver {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-life-saver:before { content: @fa-var-life-ring; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-support {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-support:before { content: @fa-var-life-ring; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-notch; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-rebel {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-ra {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-ra:before { content: @fa-var-rebel; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-resistance {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-resistance:before { content: @fa-var-rebel; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-empire {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-ge {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-ge:before { content: @fa-var-empire; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-git-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-git {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hacker-news {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-y-combinator-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-y-combinator-square:before { content: @fa-var-hacker-news; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-yc-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-yc-square:before { content: @fa-var-hacker-news; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-tencent-weibo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-qq {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-weixin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-wechat {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-wechat:before { content: @fa-var-weixin; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-send:before { content: @fa-var-paper-plane; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-paper-plane-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-send-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-send-o:before { content: @fa-var-paper-plane; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-circle-thin {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-header:before { content: @fa-var-heading; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders-h; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-futbol-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-soccer-ball-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-soccer-ball-o:before { content: @fa-var-futbol; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-slideshare {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-twitch {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-yelp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-newspaper-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-paypal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-google-wallet {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cc-visa {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cc-mastercard {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cc-discover {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cc-amex {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cc-paypal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cc-stripe {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bell-slash-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-trash:before { content: @fa-var-trash-alt; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-copyright {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eye-dropper; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-area-chart:before { content: @fa-var-chart-area; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pie-chart:before { content: @fa-var-chart-pie; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-line-chart:before { content: @fa-var-chart-line; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-lastfm {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-lastfm-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-ioxhost {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-angellist {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cc {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-cc:before { content: @fa-var-closed-captioning; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-ils:before { content: @fa-var-shekel-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-shekel:before { content: @fa-var-shekel-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sheqel:before { content: @fa-var-shekel-sign; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-meanpath {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-meanpath:before { content: @fa-var-font-awesome; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-buysellads {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-connectdevelop {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-dashcube {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-forumbee {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-leanpub {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sellsy {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-shirtsinbulk {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-simplybuilt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-skyatlas {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-diamond {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-diamond:before { content: @fa-var-gem; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-intersex:before { content: @fa-var-transgender; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-facebook-official {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pinterest-p {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-whatsapp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hotel:before { content: @fa-var-bed; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-viacoin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-medium {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-y-combinator {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-yc {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-yc:before { content: @fa-var-y-combinator; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-optin-monster {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-opencart {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-expeditedssl {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-battery-4:before { content: @fa-var-battery-full; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-battery:before { content: @fa-var-battery-full; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-battery-3:before { content: @fa-var-battery-three-quarters; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-battery-2:before { content: @fa-var-battery-half; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-battery-1:before { content: @fa-var-battery-quarter; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-battery-0:before { content: @fa-var-battery-empty; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-object-group {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-object-ungroup {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-sticky-note-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cc-jcb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-cc-diners-club {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-clone {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-1:before { content: @fa-var-hourglass-start; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-2:before { content: @fa-var-hourglass-half; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-3:before { content: @fa-var-hourglass-end; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-rock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-grab-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-grab-o:before { content: @fa-var-hand-rock; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-paper-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-stop-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-stop-o:before { content: @fa-var-hand-paper; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-scissors-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-lizard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-spock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-pointer-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-peace-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-registered {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-creative-commons {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-gg {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-gg-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-tripadvisor {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-odnoklassniki {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-odnoklassniki-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-get-pocket {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-wikipedia-w {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-safari {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-chrome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-firefox {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-opera {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-internet-explorer {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-television:before { content: @fa-var-tv; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-contao {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-500px {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-amazon {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-calendar-plus-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-calendar-minus-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-calendar-times-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-calendar-check-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-map-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-map-o:before { content: @fa-var-map; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-commenting {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-commenting:before { content: @fa-var-comment-dots; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-commenting-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-commenting-o:before { content: @fa-var-comment-dots; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-houzz {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-vimeo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo-v; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-black-tie {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-fonticons {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-reddit-alien {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-edge {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-codiepie {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-modx {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-fort-awesome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-usb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-product-hunt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-mixcloud {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-scribd {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pause-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-stop-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bluetooth {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bluetooth-b {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-gitlab {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-wpbeginner {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-wpforms {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-envira {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-wheelchair-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-accessible-icon; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-question-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-phone-volume; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-asl-interpreting:before { content: @fa-var-american-sign-language-interpreting; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-deafness:before { content: @fa-var-deaf; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-hard-of-hearing:before { content: @fa-var-deaf; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-glide {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-glide-g {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-signing:before { content: @fa-var-sign-language; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-viadeo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-viadeo-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-snapchat {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-snapchat-ghost {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-snapchat-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-pied-piper {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-first-order {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-yoast {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-themeisle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-official {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-circle:before { content: @fa-var-google-plus; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-font-awesome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-fa {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-fa:before { content: @fa-var-font-awesome; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-handshake-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-envelope-open-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-linode {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-address-book-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-vcard:before { content: @fa-var-address-card; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-address-card-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-vcard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-vcard-o:before { content: @fa-var-address-card; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-user-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-user-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-user-o:before { content: @fa-var-user; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-id-badge {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-drivers-license:before { content: @fa-var-id-card; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-id-card-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-drivers-license-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-drivers-license-o:before { content: @fa-var-id-card; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-quora {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-free-code-camp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-telegram {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-4:before { content: @fa-var-thermometer-full; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-thermometer:before { content: @fa-var-thermometer-full; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-3:before { content: @fa-var-thermometer-three-quarters; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-2:before { content: @fa-var-thermometer-half; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-1:before { content: @fa-var-thermometer-quarter; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-0:before { content: @fa-var-thermometer-empty; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bathtub:before { content: @fa-var-bath; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-s15:before { content: @fa-var-bath; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-window-maximize {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-window-restore {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-times-rectangle:before { content: @fa-var-window-close; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-window-close-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-times-rectangle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-times-rectangle-o:before { content: @fa-var-window-close; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-bandcamp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-grav {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-etsy {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-imdb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-ravelry {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-eercast {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-eercast:before { content: @fa-var-sellcast; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-snowflake-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.@{fa-css-prefix}.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake; }
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-superpowers {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-wpexplorer {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.@{fa-css-prefix}.@{fa-css-prefix}-spotify {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    diff --git a/htdocs/theme/common/fontawesome-5/less/_stacked.less b/htdocs/theme/common/fontawesome-5/less/_stacked.less
    new file mode 100644
    index 00000000000..263b5c44fce
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_stacked.less
    @@ -0,0 +1,22 @@
    +// Stacked Icons
    +// -------------------------
    +
    +.@{fa-css-prefix}-stack {
    +  display: inline-block;
    +  height: 2em;
    +  line-height: 2em;
    +  position: relative;
    +  vertical-align: middle;
    +  width: 2em;
    +}
    +
    +.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
    +  left: 0;
    +  position: absolute;
    +  text-align: center;
    +  width: 100%;
    +}
    +
    +.@{fa-css-prefix}-stack-1x { line-height: inherit; }
    +.@{fa-css-prefix}-stack-2x { font-size: 2em; }
    +.@{fa-css-prefix}-inverse { color: @fa-inverse; }
    diff --git a/htdocs/theme/common/fontawesome-5/less/_variables.less b/htdocs/theme/common/fontawesome-5/less/_variables.less
    new file mode 100644
    index 00000000000..01eaede45ca
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/_variables.less
    @@ -0,0 +1,1250 @@
    +// Variables
    +// --------------------------
    +
    +@fa-font-path:        "../webfonts";
    +@fa-font-size-base:   16px;
    +@fa-line-height-base: 1;
    +@fa-css-prefix:       fa;
    +@fa-version:          "5.4.1";
    +@fa-border-color:     #eee;
    +@fa-inverse:          #fff;
    +@fa-li-width:         2em;
    +
    +@fa-var-500px: "\f26e";
    +@fa-var-accessible-icon: "\f368";
    +@fa-var-accusoft: "\f369";
    +@fa-var-acquisitions-incorporated: "\f6af";
    +@fa-var-ad: "\f641";
    +@fa-var-address-book: "\f2b9";
    +@fa-var-address-card: "\f2bb";
    +@fa-var-adjust: "\f042";
    +@fa-var-adn: "\f170";
    +@fa-var-adversal: "\f36a";
    +@fa-var-affiliatetheme: "\f36b";
    +@fa-var-air-freshener: "\f5d0";
    +@fa-var-algolia: "\f36c";
    +@fa-var-align-center: "\f037";
    +@fa-var-align-justify: "\f039";
    +@fa-var-align-left: "\f036";
    +@fa-var-align-right: "\f038";
    +@fa-var-alipay: "\f642";
    +@fa-var-allergies: "\f461";
    +@fa-var-amazon: "\f270";
    +@fa-var-amazon-pay: "\f42c";
    +@fa-var-ambulance: "\f0f9";
    +@fa-var-american-sign-language-interpreting: "\f2a3";
    +@fa-var-amilia: "\f36d";
    +@fa-var-anchor: "\f13d";
    +@fa-var-android: "\f17b";
    +@fa-var-angellist: "\f209";
    +@fa-var-angle-double-down: "\f103";
    +@fa-var-angle-double-left: "\f100";
    +@fa-var-angle-double-right: "\f101";
    +@fa-var-angle-double-up: "\f102";
    +@fa-var-angle-down: "\f107";
    +@fa-var-angle-left: "\f104";
    +@fa-var-angle-right: "\f105";
    +@fa-var-angle-up: "\f106";
    +@fa-var-angry: "\f556";
    +@fa-var-angrycreative: "\f36e";
    +@fa-var-angular: "\f420";
    +@fa-var-ankh: "\f644";
    +@fa-var-app-store: "\f36f";
    +@fa-var-app-store-ios: "\f370";
    +@fa-var-apper: "\f371";
    +@fa-var-apple: "\f179";
    +@fa-var-apple-alt: "\f5d1";
    +@fa-var-apple-pay: "\f415";
    +@fa-var-archive: "\f187";
    +@fa-var-archway: "\f557";
    +@fa-var-arrow-alt-circle-down: "\f358";
    +@fa-var-arrow-alt-circle-left: "\f359";
    +@fa-var-arrow-alt-circle-right: "\f35a";
    +@fa-var-arrow-alt-circle-up: "\f35b";
    +@fa-var-arrow-circle-down: "\f0ab";
    +@fa-var-arrow-circle-left: "\f0a8";
    +@fa-var-arrow-circle-right: "\f0a9";
    +@fa-var-arrow-circle-up: "\f0aa";
    +@fa-var-arrow-down: "\f063";
    +@fa-var-arrow-left: "\f060";
    +@fa-var-arrow-right: "\f061";
    +@fa-var-arrow-up: "\f062";
    +@fa-var-arrows-alt: "\f0b2";
    +@fa-var-arrows-alt-h: "\f337";
    +@fa-var-arrows-alt-v: "\f338";
    +@fa-var-assistive-listening-systems: "\f2a2";
    +@fa-var-asterisk: "\f069";
    +@fa-var-asymmetrik: "\f372";
    +@fa-var-at: "\f1fa";
    +@fa-var-atlas: "\f558";
    +@fa-var-atom: "\f5d2";
    +@fa-var-audible: "\f373";
    +@fa-var-audio-description: "\f29e";
    +@fa-var-autoprefixer: "\f41c";
    +@fa-var-avianex: "\f374";
    +@fa-var-aviato: "\f421";
    +@fa-var-award: "\f559";
    +@fa-var-aws: "\f375";
    +@fa-var-backspace: "\f55a";
    +@fa-var-backward: "\f04a";
    +@fa-var-balance-scale: "\f24e";
    +@fa-var-ban: "\f05e";
    +@fa-var-band-aid: "\f462";
    +@fa-var-bandcamp: "\f2d5";
    +@fa-var-barcode: "\f02a";
    +@fa-var-bars: "\f0c9";
    +@fa-var-baseball-ball: "\f433";
    +@fa-var-basketball-ball: "\f434";
    +@fa-var-bath: "\f2cd";
    +@fa-var-battery-empty: "\f244";
    +@fa-var-battery-full: "\f240";
    +@fa-var-battery-half: "\f242";
    +@fa-var-battery-quarter: "\f243";
    +@fa-var-battery-three-quarters: "\f241";
    +@fa-var-bed: "\f236";
    +@fa-var-beer: "\f0fc";
    +@fa-var-behance: "\f1b4";
    +@fa-var-behance-square: "\f1b5";
    +@fa-var-bell: "\f0f3";
    +@fa-var-bell-slash: "\f1f6";
    +@fa-var-bezier-curve: "\f55b";
    +@fa-var-bible: "\f647";
    +@fa-var-bicycle: "\f206";
    +@fa-var-bimobject: "\f378";
    +@fa-var-binoculars: "\f1e5";
    +@fa-var-birthday-cake: "\f1fd";
    +@fa-var-bitbucket: "\f171";
    +@fa-var-bitcoin: "\f379";
    +@fa-var-bity: "\f37a";
    +@fa-var-black-tie: "\f27e";
    +@fa-var-blackberry: "\f37b";
    +@fa-var-blender: "\f517";
    +@fa-var-blender-phone: "\f6b6";
    +@fa-var-blind: "\f29d";
    +@fa-var-blogger: "\f37c";
    +@fa-var-blogger-b: "\f37d";
    +@fa-var-bluetooth: "\f293";
    +@fa-var-bluetooth-b: "\f294";
    +@fa-var-bold: "\f032";
    +@fa-var-bolt: "\f0e7";
    +@fa-var-bomb: "\f1e2";
    +@fa-var-bone: "\f5d7";
    +@fa-var-bong: "\f55c";
    +@fa-var-book: "\f02d";
    +@fa-var-book-dead: "\f6b7";
    +@fa-var-book-open: "\f518";
    +@fa-var-book-reader: "\f5da";
    +@fa-var-bookmark: "\f02e";
    +@fa-var-bowling-ball: "\f436";
    +@fa-var-box: "\f466";
    +@fa-var-box-open: "\f49e";
    +@fa-var-boxes: "\f468";
    +@fa-var-braille: "\f2a1";
    +@fa-var-brain: "\f5dc";
    +@fa-var-briefcase: "\f0b1";
    +@fa-var-briefcase-medical: "\f469";
    +@fa-var-broadcast-tower: "\f519";
    +@fa-var-broom: "\f51a";
    +@fa-var-brush: "\f55d";
    +@fa-var-btc: "\f15a";
    +@fa-var-bug: "\f188";
    +@fa-var-building: "\f1ad";
    +@fa-var-bullhorn: "\f0a1";
    +@fa-var-bullseye: "\f140";
    +@fa-var-burn: "\f46a";
    +@fa-var-buromobelexperte: "\f37f";
    +@fa-var-bus: "\f207";
    +@fa-var-bus-alt: "\f55e";
    +@fa-var-business-time: "\f64a";
    +@fa-var-buysellads: "\f20d";
    +@fa-var-calculator: "\f1ec";
    +@fa-var-calendar: "\f133";
    +@fa-var-calendar-alt: "\f073";
    +@fa-var-calendar-check: "\f274";
    +@fa-var-calendar-minus: "\f272";
    +@fa-var-calendar-plus: "\f271";
    +@fa-var-calendar-times: "\f273";
    +@fa-var-camera: "\f030";
    +@fa-var-camera-retro: "\f083";
    +@fa-var-campground: "\f6bb";
    +@fa-var-cannabis: "\f55f";
    +@fa-var-capsules: "\f46b";
    +@fa-var-car: "\f1b9";
    +@fa-var-car-alt: "\f5de";
    +@fa-var-car-battery: "\f5df";
    +@fa-var-car-crash: "\f5e1";
    +@fa-var-car-side: "\f5e4";
    +@fa-var-caret-down: "\f0d7";
    +@fa-var-caret-left: "\f0d9";
    +@fa-var-caret-right: "\f0da";
    +@fa-var-caret-square-down: "\f150";
    +@fa-var-caret-square-left: "\f191";
    +@fa-var-caret-square-right: "\f152";
    +@fa-var-caret-square-up: "\f151";
    +@fa-var-caret-up: "\f0d8";
    +@fa-var-cart-arrow-down: "\f218";
    +@fa-var-cart-plus: "\f217";
    +@fa-var-cat: "\f6be";
    +@fa-var-cc-amazon-pay: "\f42d";
    +@fa-var-cc-amex: "\f1f3";
    +@fa-var-cc-apple-pay: "\f416";
    +@fa-var-cc-diners-club: "\f24c";
    +@fa-var-cc-discover: "\f1f2";
    +@fa-var-cc-jcb: "\f24b";
    +@fa-var-cc-mastercard: "\f1f1";
    +@fa-var-cc-paypal: "\f1f4";
    +@fa-var-cc-stripe: "\f1f5";
    +@fa-var-cc-visa: "\f1f0";
    +@fa-var-centercode: "\f380";
    +@fa-var-certificate: "\f0a3";
    +@fa-var-chair: "\f6c0";
    +@fa-var-chalkboard: "\f51b";
    +@fa-var-chalkboard-teacher: "\f51c";
    +@fa-var-charging-station: "\f5e7";
    +@fa-var-chart-area: "\f1fe";
    +@fa-var-chart-bar: "\f080";
    +@fa-var-chart-line: "\f201";
    +@fa-var-chart-pie: "\f200";
    +@fa-var-check: "\f00c";
    +@fa-var-check-circle: "\f058";
    +@fa-var-check-double: "\f560";
    +@fa-var-check-square: "\f14a";
    +@fa-var-chess: "\f439";
    +@fa-var-chess-bishop: "\f43a";
    +@fa-var-chess-board: "\f43c";
    +@fa-var-chess-king: "\f43f";
    +@fa-var-chess-knight: "\f441";
    +@fa-var-chess-pawn: "\f443";
    +@fa-var-chess-queen: "\f445";
    +@fa-var-chess-rook: "\f447";
    +@fa-var-chevron-circle-down: "\f13a";
    +@fa-var-chevron-circle-left: "\f137";
    +@fa-var-chevron-circle-right: "\f138";
    +@fa-var-chevron-circle-up: "\f139";
    +@fa-var-chevron-down: "\f078";
    +@fa-var-chevron-left: "\f053";
    +@fa-var-chevron-right: "\f054";
    +@fa-var-chevron-up: "\f077";
    +@fa-var-child: "\f1ae";
    +@fa-var-chrome: "\f268";
    +@fa-var-church: "\f51d";
    +@fa-var-circle: "\f111";
    +@fa-var-circle-notch: "\f1ce";
    +@fa-var-city: "\f64f";
    +@fa-var-clipboard: "\f328";
    +@fa-var-clipboard-check: "\f46c";
    +@fa-var-clipboard-list: "\f46d";
    +@fa-var-clock: "\f017";
    +@fa-var-clone: "\f24d";
    +@fa-var-closed-captioning: "\f20a";
    +@fa-var-cloud: "\f0c2";
    +@fa-var-cloud-download-alt: "\f381";
    +@fa-var-cloud-moon: "\f6c3";
    +@fa-var-cloud-sun: "\f6c4";
    +@fa-var-cloud-upload-alt: "\f382";
    +@fa-var-cloudscale: "\f383";
    +@fa-var-cloudsmith: "\f384";
    +@fa-var-cloudversify: "\f385";
    +@fa-var-cocktail: "\f561";
    +@fa-var-code: "\f121";
    +@fa-var-code-branch: "\f126";
    +@fa-var-codepen: "\f1cb";
    +@fa-var-codiepie: "\f284";
    +@fa-var-coffee: "\f0f4";
    +@fa-var-cog: "\f013";
    +@fa-var-cogs: "\f085";
    +@fa-var-coins: "\f51e";
    +@fa-var-columns: "\f0db";
    +@fa-var-comment: "\f075";
    +@fa-var-comment-alt: "\f27a";
    +@fa-var-comment-dollar: "\f651";
    +@fa-var-comment-dots: "\f4ad";
    +@fa-var-comment-slash: "\f4b3";
    +@fa-var-comments: "\f086";
    +@fa-var-comments-dollar: "\f653";
    +@fa-var-compact-disc: "\f51f";
    +@fa-var-compass: "\f14e";
    +@fa-var-compress: "\f066";
    +@fa-var-concierge-bell: "\f562";
    +@fa-var-connectdevelop: "\f20e";
    +@fa-var-contao: "\f26d";
    +@fa-var-cookie: "\f563";
    +@fa-var-cookie-bite: "\f564";
    +@fa-var-copy: "\f0c5";
    +@fa-var-copyright: "\f1f9";
    +@fa-var-couch: "\f4b8";
    +@fa-var-cpanel: "\f388";
    +@fa-var-creative-commons: "\f25e";
    +@fa-var-creative-commons-by: "\f4e7";
    +@fa-var-creative-commons-nc: "\f4e8";
    +@fa-var-creative-commons-nc-eu: "\f4e9";
    +@fa-var-creative-commons-nc-jp: "\f4ea";
    +@fa-var-creative-commons-nd: "\f4eb";
    +@fa-var-creative-commons-pd: "\f4ec";
    +@fa-var-creative-commons-pd-alt: "\f4ed";
    +@fa-var-creative-commons-remix: "\f4ee";
    +@fa-var-creative-commons-sa: "\f4ef";
    +@fa-var-creative-commons-sampling: "\f4f0";
    +@fa-var-creative-commons-sampling-plus: "\f4f1";
    +@fa-var-creative-commons-share: "\f4f2";
    +@fa-var-creative-commons-zero: "\f4f3";
    +@fa-var-credit-card: "\f09d";
    +@fa-var-critical-role: "\f6c9";
    +@fa-var-crop: "\f125";
    +@fa-var-crop-alt: "\f565";
    +@fa-var-cross: "\f654";
    +@fa-var-crosshairs: "\f05b";
    +@fa-var-crow: "\f520";
    +@fa-var-crown: "\f521";
    +@fa-var-css3: "\f13c";
    +@fa-var-css3-alt: "\f38b";
    +@fa-var-cube: "\f1b2";
    +@fa-var-cubes: "\f1b3";
    +@fa-var-cut: "\f0c4";
    +@fa-var-cuttlefish: "\f38c";
    +@fa-var-d-and-d: "\f38d";
    +@fa-var-dashcube: "\f210";
    +@fa-var-database: "\f1c0";
    +@fa-var-deaf: "\f2a4";
    +@fa-var-delicious: "\f1a5";
    +@fa-var-deploydog: "\f38e";
    +@fa-var-deskpro: "\f38f";
    +@fa-var-desktop: "\f108";
    +@fa-var-dev: "\f6cc";
    +@fa-var-deviantart: "\f1bd";
    +@fa-var-dharmachakra: "\f655";
    +@fa-var-diagnoses: "\f470";
    +@fa-var-dice: "\f522";
    +@fa-var-dice-d20: "\f6cf";
    +@fa-var-dice-d6: "\f6d1";
    +@fa-var-dice-five: "\f523";
    +@fa-var-dice-four: "\f524";
    +@fa-var-dice-one: "\f525";
    +@fa-var-dice-six: "\f526";
    +@fa-var-dice-three: "\f527";
    +@fa-var-dice-two: "\f528";
    +@fa-var-digg: "\f1a6";
    +@fa-var-digital-ocean: "\f391";
    +@fa-var-digital-tachograph: "\f566";
    +@fa-var-directions: "\f5eb";
    +@fa-var-discord: "\f392";
    +@fa-var-discourse: "\f393";
    +@fa-var-divide: "\f529";
    +@fa-var-dizzy: "\f567";
    +@fa-var-dna: "\f471";
    +@fa-var-dochub: "\f394";
    +@fa-var-docker: "\f395";
    +@fa-var-dog: "\f6d3";
    +@fa-var-dollar-sign: "\f155";
    +@fa-var-dolly: "\f472";
    +@fa-var-dolly-flatbed: "\f474";
    +@fa-var-donate: "\f4b9";
    +@fa-var-door-closed: "\f52a";
    +@fa-var-door-open: "\f52b";
    +@fa-var-dot-circle: "\f192";
    +@fa-var-dove: "\f4ba";
    +@fa-var-download: "\f019";
    +@fa-var-draft2digital: "\f396";
    +@fa-var-drafting-compass: "\f568";
    +@fa-var-dragon: "\f6d5";
    +@fa-var-draw-polygon: "\f5ee";
    +@fa-var-dribbble: "\f17d";
    +@fa-var-dribbble-square: "\f397";
    +@fa-var-dropbox: "\f16b";
    +@fa-var-drum: "\f569";
    +@fa-var-drum-steelpan: "\f56a";
    +@fa-var-drumstick-bite: "\f6d7";
    +@fa-var-drupal: "\f1a9";
    +@fa-var-dumbbell: "\f44b";
    +@fa-var-dungeon: "\f6d9";
    +@fa-var-dyalog: "\f399";
    +@fa-var-earlybirds: "\f39a";
    +@fa-var-ebay: "\f4f4";
    +@fa-var-edge: "\f282";
    +@fa-var-edit: "\f044";
    +@fa-var-eject: "\f052";
    +@fa-var-elementor: "\f430";
    +@fa-var-ellipsis-h: "\f141";
    +@fa-var-ellipsis-v: "\f142";
    +@fa-var-ello: "\f5f1";
    +@fa-var-ember: "\f423";
    +@fa-var-empire: "\f1d1";
    +@fa-var-envelope: "\f0e0";
    +@fa-var-envelope-open: "\f2b6";
    +@fa-var-envelope-open-text: "\f658";
    +@fa-var-envelope-square: "\f199";
    +@fa-var-envira: "\f299";
    +@fa-var-equals: "\f52c";
    +@fa-var-eraser: "\f12d";
    +@fa-var-erlang: "\f39d";
    +@fa-var-ethereum: "\f42e";
    +@fa-var-etsy: "\f2d7";
    +@fa-var-euro-sign: "\f153";
    +@fa-var-exchange-alt: "\f362";
    +@fa-var-exclamation: "\f12a";
    +@fa-var-exclamation-circle: "\f06a";
    +@fa-var-exclamation-triangle: "\f071";
    +@fa-var-expand: "\f065";
    +@fa-var-expand-arrows-alt: "\f31e";
    +@fa-var-expeditedssl: "\f23e";
    +@fa-var-external-link-alt: "\f35d";
    +@fa-var-external-link-square-alt: "\f360";
    +@fa-var-eye: "\f06e";
    +@fa-var-eye-dropper: "\f1fb";
    +@fa-var-eye-slash: "\f070";
    +@fa-var-facebook: "\f09a";
    +@fa-var-facebook-f: "\f39e";
    +@fa-var-facebook-messenger: "\f39f";
    +@fa-var-facebook-square: "\f082";
    +@fa-var-fantasy-flight-games: "\f6dc";
    +@fa-var-fast-backward: "\f049";
    +@fa-var-fast-forward: "\f050";
    +@fa-var-fax: "\f1ac";
    +@fa-var-feather: "\f52d";
    +@fa-var-feather-alt: "\f56b";
    +@fa-var-female: "\f182";
    +@fa-var-fighter-jet: "\f0fb";
    +@fa-var-file: "\f15b";
    +@fa-var-file-alt: "\f15c";
    +@fa-var-file-archive: "\f1c6";
    +@fa-var-file-audio: "\f1c7";
    +@fa-var-file-code: "\f1c9";
    +@fa-var-file-contract: "\f56c";
    +@fa-var-file-csv: "\f6dd";
    +@fa-var-file-download: "\f56d";
    +@fa-var-file-excel: "\f1c3";
    +@fa-var-file-export: "\f56e";
    +@fa-var-file-image: "\f1c5";
    +@fa-var-file-import: "\f56f";
    +@fa-var-file-invoice: "\f570";
    +@fa-var-file-invoice-dollar: "\f571";
    +@fa-var-file-medical: "\f477";
    +@fa-var-file-medical-alt: "\f478";
    +@fa-var-file-pdf: "\f1c1";
    +@fa-var-file-powerpoint: "\f1c4";
    +@fa-var-file-prescription: "\f572";
    +@fa-var-file-signature: "\f573";
    +@fa-var-file-upload: "\f574";
    +@fa-var-file-video: "\f1c8";
    +@fa-var-file-word: "\f1c2";
    +@fa-var-fill: "\f575";
    +@fa-var-fill-drip: "\f576";
    +@fa-var-film: "\f008";
    +@fa-var-filter: "\f0b0";
    +@fa-var-fingerprint: "\f577";
    +@fa-var-fire: "\f06d";
    +@fa-var-fire-extinguisher: "\f134";
    +@fa-var-firefox: "\f269";
    +@fa-var-first-aid: "\f479";
    +@fa-var-first-order: "\f2b0";
    +@fa-var-first-order-alt: "\f50a";
    +@fa-var-firstdraft: "\f3a1";
    +@fa-var-fish: "\f578";
    +@fa-var-fist-raised: "\f6de";
    +@fa-var-flag: "\f024";
    +@fa-var-flag-checkered: "\f11e";
    +@fa-var-flask: "\f0c3";
    +@fa-var-flickr: "\f16e";
    +@fa-var-flipboard: "\f44d";
    +@fa-var-flushed: "\f579";
    +@fa-var-fly: "\f417";
    +@fa-var-folder: "\f07b";
    +@fa-var-folder-minus: "\f65d";
    +@fa-var-folder-open: "\f07c";
    +@fa-var-folder-plus: "\f65e";
    +@fa-var-font: "\f031";
    +@fa-var-font-awesome: "\f2b4";
    +@fa-var-font-awesome-alt: "\f35c";
    +@fa-var-font-awesome-flag: "\f425";
    +@fa-var-font-awesome-logo-full: "\f4e6";
    +@fa-var-fonticons: "\f280";
    +@fa-var-fonticons-fi: "\f3a2";
    +@fa-var-football-ball: "\f44e";
    +@fa-var-fort-awesome: "\f286";
    +@fa-var-fort-awesome-alt: "\f3a3";
    +@fa-var-forumbee: "\f211";
    +@fa-var-forward: "\f04e";
    +@fa-var-foursquare: "\f180";
    +@fa-var-free-code-camp: "\f2c5";
    +@fa-var-freebsd: "\f3a4";
    +@fa-var-frog: "\f52e";
    +@fa-var-frown: "\f119";
    +@fa-var-frown-open: "\f57a";
    +@fa-var-fulcrum: "\f50b";
    +@fa-var-funnel-dollar: "\f662";
    +@fa-var-futbol: "\f1e3";
    +@fa-var-galactic-republic: "\f50c";
    +@fa-var-galactic-senate: "\f50d";
    +@fa-var-gamepad: "\f11b";
    +@fa-var-gas-pump: "\f52f";
    +@fa-var-gavel: "\f0e3";
    +@fa-var-gem: "\f3a5";
    +@fa-var-genderless: "\f22d";
    +@fa-var-get-pocket: "\f265";
    +@fa-var-gg: "\f260";
    +@fa-var-gg-circle: "\f261";
    +@fa-var-ghost: "\f6e2";
    +@fa-var-gift: "\f06b";
    +@fa-var-git: "\f1d3";
    +@fa-var-git-square: "\f1d2";
    +@fa-var-github: "\f09b";
    +@fa-var-github-alt: "\f113";
    +@fa-var-github-square: "\f092";
    +@fa-var-gitkraken: "\f3a6";
    +@fa-var-gitlab: "\f296";
    +@fa-var-gitter: "\f426";
    +@fa-var-glass-martini: "\f000";
    +@fa-var-glass-martini-alt: "\f57b";
    +@fa-var-glasses: "\f530";
    +@fa-var-glide: "\f2a5";
    +@fa-var-glide-g: "\f2a6";
    +@fa-var-globe: "\f0ac";
    +@fa-var-globe-africa: "\f57c";
    +@fa-var-globe-americas: "\f57d";
    +@fa-var-globe-asia: "\f57e";
    +@fa-var-gofore: "\f3a7";
    +@fa-var-golf-ball: "\f450";
    +@fa-var-goodreads: "\f3a8";
    +@fa-var-goodreads-g: "\f3a9";
    +@fa-var-google: "\f1a0";
    +@fa-var-google-drive: "\f3aa";
    +@fa-var-google-play: "\f3ab";
    +@fa-var-google-plus: "\f2b3";
    +@fa-var-google-plus-g: "\f0d5";
    +@fa-var-google-plus-square: "\f0d4";
    +@fa-var-google-wallet: "\f1ee";
    +@fa-var-gopuram: "\f664";
    +@fa-var-graduation-cap: "\f19d";
    +@fa-var-gratipay: "\f184";
    +@fa-var-grav: "\f2d6";
    +@fa-var-greater-than: "\f531";
    +@fa-var-greater-than-equal: "\f532";
    +@fa-var-grimace: "\f57f";
    +@fa-var-grin: "\f580";
    +@fa-var-grin-alt: "\f581";
    +@fa-var-grin-beam: "\f582";
    +@fa-var-grin-beam-sweat: "\f583";
    +@fa-var-grin-hearts: "\f584";
    +@fa-var-grin-squint: "\f585";
    +@fa-var-grin-squint-tears: "\f586";
    +@fa-var-grin-stars: "\f587";
    +@fa-var-grin-tears: "\f588";
    +@fa-var-grin-tongue: "\f589";
    +@fa-var-grin-tongue-squint: "\f58a";
    +@fa-var-grin-tongue-wink: "\f58b";
    +@fa-var-grin-wink: "\f58c";
    +@fa-var-grip-horizontal: "\f58d";
    +@fa-var-grip-vertical: "\f58e";
    +@fa-var-gripfire: "\f3ac";
    +@fa-var-grunt: "\f3ad";
    +@fa-var-gulp: "\f3ae";
    +@fa-var-h-square: "\f0fd";
    +@fa-var-hacker-news: "\f1d4";
    +@fa-var-hacker-news-square: "\f3af";
    +@fa-var-hackerrank: "\f5f7";
    +@fa-var-hammer: "\f6e3";
    +@fa-var-hamsa: "\f665";
    +@fa-var-hand-holding: "\f4bd";
    +@fa-var-hand-holding-heart: "\f4be";
    +@fa-var-hand-holding-usd: "\f4c0";
    +@fa-var-hand-lizard: "\f258";
    +@fa-var-hand-paper: "\f256";
    +@fa-var-hand-peace: "\f25b";
    +@fa-var-hand-point-down: "\f0a7";
    +@fa-var-hand-point-left: "\f0a5";
    +@fa-var-hand-point-right: "\f0a4";
    +@fa-var-hand-point-up: "\f0a6";
    +@fa-var-hand-pointer: "\f25a";
    +@fa-var-hand-rock: "\f255";
    +@fa-var-hand-scissors: "\f257";
    +@fa-var-hand-spock: "\f259";
    +@fa-var-hands: "\f4c2";
    +@fa-var-hands-helping: "\f4c4";
    +@fa-var-handshake: "\f2b5";
    +@fa-var-hanukiah: "\f6e6";
    +@fa-var-hashtag: "\f292";
    +@fa-var-hat-wizard: "\f6e8";
    +@fa-var-haykal: "\f666";
    +@fa-var-hdd: "\f0a0";
    +@fa-var-heading: "\f1dc";
    +@fa-var-headphones: "\f025";
    +@fa-var-headphones-alt: "\f58f";
    +@fa-var-headset: "\f590";
    +@fa-var-heart: "\f004";
    +@fa-var-heartbeat: "\f21e";
    +@fa-var-helicopter: "\f533";
    +@fa-var-highlighter: "\f591";
    +@fa-var-hiking: "\f6ec";
    +@fa-var-hippo: "\f6ed";
    +@fa-var-hips: "\f452";
    +@fa-var-hire-a-helper: "\f3b0";
    +@fa-var-history: "\f1da";
    +@fa-var-hockey-puck: "\f453";
    +@fa-var-home: "\f015";
    +@fa-var-hooli: "\f427";
    +@fa-var-hornbill: "\f592";
    +@fa-var-horse: "\f6f0";
    +@fa-var-hospital: "\f0f8";
    +@fa-var-hospital-alt: "\f47d";
    +@fa-var-hospital-symbol: "\f47e";
    +@fa-var-hot-tub: "\f593";
    +@fa-var-hotel: "\f594";
    +@fa-var-hotjar: "\f3b1";
    +@fa-var-hourglass: "\f254";
    +@fa-var-hourglass-end: "\f253";
    +@fa-var-hourglass-half: "\f252";
    +@fa-var-hourglass-start: "\f251";
    +@fa-var-house-damage: "\f6f1";
    +@fa-var-houzz: "\f27c";
    +@fa-var-hryvnia: "\f6f2";
    +@fa-var-html5: "\f13b";
    +@fa-var-hubspot: "\f3b2";
    +@fa-var-i-cursor: "\f246";
    +@fa-var-id-badge: "\f2c1";
    +@fa-var-id-card: "\f2c2";
    +@fa-var-id-card-alt: "\f47f";
    +@fa-var-image: "\f03e";
    +@fa-var-images: "\f302";
    +@fa-var-imdb: "\f2d8";
    +@fa-var-inbox: "\f01c";
    +@fa-var-indent: "\f03c";
    +@fa-var-industry: "\f275";
    +@fa-var-infinity: "\f534";
    +@fa-var-info: "\f129";
    +@fa-var-info-circle: "\f05a";
    +@fa-var-instagram: "\f16d";
    +@fa-var-internet-explorer: "\f26b";
    +@fa-var-ioxhost: "\f208";
    +@fa-var-italic: "\f033";
    +@fa-var-itunes: "\f3b4";
    +@fa-var-itunes-note: "\f3b5";
    +@fa-var-java: "\f4e4";
    +@fa-var-jedi: "\f669";
    +@fa-var-jedi-order: "\f50e";
    +@fa-var-jenkins: "\f3b6";
    +@fa-var-joget: "\f3b7";
    +@fa-var-joint: "\f595";
    +@fa-var-joomla: "\f1aa";
    +@fa-var-journal-whills: "\f66a";
    +@fa-var-js: "\f3b8";
    +@fa-var-js-square: "\f3b9";
    +@fa-var-jsfiddle: "\f1cc";
    +@fa-var-kaaba: "\f66b";
    +@fa-var-kaggle: "\f5fa";
    +@fa-var-key: "\f084";
    +@fa-var-keybase: "\f4f5";
    +@fa-var-keyboard: "\f11c";
    +@fa-var-keycdn: "\f3ba";
    +@fa-var-khanda: "\f66d";
    +@fa-var-kickstarter: "\f3bb";
    +@fa-var-kickstarter-k: "\f3bc";
    +@fa-var-kiss: "\f596";
    +@fa-var-kiss-beam: "\f597";
    +@fa-var-kiss-wink-heart: "\f598";
    +@fa-var-kiwi-bird: "\f535";
    +@fa-var-korvue: "\f42f";
    +@fa-var-landmark: "\f66f";
    +@fa-var-language: "\f1ab";
    +@fa-var-laptop: "\f109";
    +@fa-var-laptop-code: "\f5fc";
    +@fa-var-laravel: "\f3bd";
    +@fa-var-lastfm: "\f202";
    +@fa-var-lastfm-square: "\f203";
    +@fa-var-laugh: "\f599";
    +@fa-var-laugh-beam: "\f59a";
    +@fa-var-laugh-squint: "\f59b";
    +@fa-var-laugh-wink: "\f59c";
    +@fa-var-layer-group: "\f5fd";
    +@fa-var-leaf: "\f06c";
    +@fa-var-leanpub: "\f212";
    +@fa-var-lemon: "\f094";
    +@fa-var-less: "\f41d";
    +@fa-var-less-than: "\f536";
    +@fa-var-less-than-equal: "\f537";
    +@fa-var-level-down-alt: "\f3be";
    +@fa-var-level-up-alt: "\f3bf";
    +@fa-var-life-ring: "\f1cd";
    +@fa-var-lightbulb: "\f0eb";
    +@fa-var-line: "\f3c0";
    +@fa-var-link: "\f0c1";
    +@fa-var-linkedin: "\f08c";
    +@fa-var-linkedin-in: "\f0e1";
    +@fa-var-linode: "\f2b8";
    +@fa-var-linux: "\f17c";
    +@fa-var-lira-sign: "\f195";
    +@fa-var-list: "\f03a";
    +@fa-var-list-alt: "\f022";
    +@fa-var-list-ol: "\f0cb";
    +@fa-var-list-ul: "\f0ca";
    +@fa-var-location-arrow: "\f124";
    +@fa-var-lock: "\f023";
    +@fa-var-lock-open: "\f3c1";
    +@fa-var-long-arrow-alt-down: "\f309";
    +@fa-var-long-arrow-alt-left: "\f30a";
    +@fa-var-long-arrow-alt-right: "\f30b";
    +@fa-var-long-arrow-alt-up: "\f30c";
    +@fa-var-low-vision: "\f2a8";
    +@fa-var-luggage-cart: "\f59d";
    +@fa-var-lyft: "\f3c3";
    +@fa-var-magento: "\f3c4";
    +@fa-var-magic: "\f0d0";
    +@fa-var-magnet: "\f076";
    +@fa-var-mail-bulk: "\f674";
    +@fa-var-mailchimp: "\f59e";
    +@fa-var-male: "\f183";
    +@fa-var-mandalorian: "\f50f";
    +@fa-var-map: "\f279";
    +@fa-var-map-marked: "\f59f";
    +@fa-var-map-marked-alt: "\f5a0";
    +@fa-var-map-marker: "\f041";
    +@fa-var-map-marker-alt: "\f3c5";
    +@fa-var-map-pin: "\f276";
    +@fa-var-map-signs: "\f277";
    +@fa-var-markdown: "\f60f";
    +@fa-var-marker: "\f5a1";
    +@fa-var-mars: "\f222";
    +@fa-var-mars-double: "\f227";
    +@fa-var-mars-stroke: "\f229";
    +@fa-var-mars-stroke-h: "\f22b";
    +@fa-var-mars-stroke-v: "\f22a";
    +@fa-var-mask: "\f6fa";
    +@fa-var-mastodon: "\f4f6";
    +@fa-var-maxcdn: "\f136";
    +@fa-var-medal: "\f5a2";
    +@fa-var-medapps: "\f3c6";
    +@fa-var-medium: "\f23a";
    +@fa-var-medium-m: "\f3c7";
    +@fa-var-medkit: "\f0fa";
    +@fa-var-medrt: "\f3c8";
    +@fa-var-meetup: "\f2e0";
    +@fa-var-megaport: "\f5a3";
    +@fa-var-meh: "\f11a";
    +@fa-var-meh-blank: "\f5a4";
    +@fa-var-meh-rolling-eyes: "\f5a5";
    +@fa-var-memory: "\f538";
    +@fa-var-menorah: "\f676";
    +@fa-var-mercury: "\f223";
    +@fa-var-microchip: "\f2db";
    +@fa-var-microphone: "\f130";
    +@fa-var-microphone-alt: "\f3c9";
    +@fa-var-microphone-alt-slash: "\f539";
    +@fa-var-microphone-slash: "\f131";
    +@fa-var-microscope: "\f610";
    +@fa-var-microsoft: "\f3ca";
    +@fa-var-minus: "\f068";
    +@fa-var-minus-circle: "\f056";
    +@fa-var-minus-square: "\f146";
    +@fa-var-mix: "\f3cb";
    +@fa-var-mixcloud: "\f289";
    +@fa-var-mizuni: "\f3cc";
    +@fa-var-mobile: "\f10b";
    +@fa-var-mobile-alt: "\f3cd";
    +@fa-var-modx: "\f285";
    +@fa-var-monero: "\f3d0";
    +@fa-var-money-bill: "\f0d6";
    +@fa-var-money-bill-alt: "\f3d1";
    +@fa-var-money-bill-wave: "\f53a";
    +@fa-var-money-bill-wave-alt: "\f53b";
    +@fa-var-money-check: "\f53c";
    +@fa-var-money-check-alt: "\f53d";
    +@fa-var-monument: "\f5a6";
    +@fa-var-moon: "\f186";
    +@fa-var-mortar-pestle: "\f5a7";
    +@fa-var-mosque: "\f678";
    +@fa-var-motorcycle: "\f21c";
    +@fa-var-mountain: "\f6fc";
    +@fa-var-mouse-pointer: "\f245";
    +@fa-var-music: "\f001";
    +@fa-var-napster: "\f3d2";
    +@fa-var-neos: "\f612";
    +@fa-var-network-wired: "\f6ff";
    +@fa-var-neuter: "\f22c";
    +@fa-var-newspaper: "\f1ea";
    +@fa-var-nimblr: "\f5a8";
    +@fa-var-nintendo-switch: "\f418";
    +@fa-var-node: "\f419";
    +@fa-var-node-js: "\f3d3";
    +@fa-var-not-equal: "\f53e";
    +@fa-var-notes-medical: "\f481";
    +@fa-var-npm: "\f3d4";
    +@fa-var-ns8: "\f3d5";
    +@fa-var-nutritionix: "\f3d6";
    +@fa-var-object-group: "\f247";
    +@fa-var-object-ungroup: "\f248";
    +@fa-var-odnoklassniki: "\f263";
    +@fa-var-odnoklassniki-square: "\f264";
    +@fa-var-oil-can: "\f613";
    +@fa-var-old-republic: "\f510";
    +@fa-var-om: "\f679";
    +@fa-var-opencart: "\f23d";
    +@fa-var-openid: "\f19b";
    +@fa-var-opera: "\f26a";
    +@fa-var-optin-monster: "\f23c";
    +@fa-var-osi: "\f41a";
    +@fa-var-otter: "\f700";
    +@fa-var-outdent: "\f03b";
    +@fa-var-page4: "\f3d7";
    +@fa-var-pagelines: "\f18c";
    +@fa-var-paint-brush: "\f1fc";
    +@fa-var-paint-roller: "\f5aa";
    +@fa-var-palette: "\f53f";
    +@fa-var-palfed: "\f3d8";
    +@fa-var-pallet: "\f482";
    +@fa-var-paper-plane: "\f1d8";
    +@fa-var-paperclip: "\f0c6";
    +@fa-var-parachute-box: "\f4cd";
    +@fa-var-paragraph: "\f1dd";
    +@fa-var-parking: "\f540";
    +@fa-var-passport: "\f5ab";
    +@fa-var-pastafarianism: "\f67b";
    +@fa-var-paste: "\f0ea";
    +@fa-var-patreon: "\f3d9";
    +@fa-var-pause: "\f04c";
    +@fa-var-pause-circle: "\f28b";
    +@fa-var-paw: "\f1b0";
    +@fa-var-paypal: "\f1ed";
    +@fa-var-peace: "\f67c";
    +@fa-var-pen: "\f304";
    +@fa-var-pen-alt: "\f305";
    +@fa-var-pen-fancy: "\f5ac";
    +@fa-var-pen-nib: "\f5ad";
    +@fa-var-pen-square: "\f14b";
    +@fa-var-pencil-alt: "\f303";
    +@fa-var-pencil-ruler: "\f5ae";
    +@fa-var-penny-arcade: "\f704";
    +@fa-var-people-carry: "\f4ce";
    +@fa-var-percent: "\f295";
    +@fa-var-percentage: "\f541";
    +@fa-var-periscope: "\f3da";
    +@fa-var-phabricator: "\f3db";
    +@fa-var-phoenix-framework: "\f3dc";
    +@fa-var-phoenix-squadron: "\f511";
    +@fa-var-phone: "\f095";
    +@fa-var-phone-slash: "\f3dd";
    +@fa-var-phone-square: "\f098";
    +@fa-var-phone-volume: "\f2a0";
    +@fa-var-php: "\f457";
    +@fa-var-pied-piper: "\f2ae";
    +@fa-var-pied-piper-alt: "\f1a8";
    +@fa-var-pied-piper-hat: "\f4e5";
    +@fa-var-pied-piper-pp: "\f1a7";
    +@fa-var-piggy-bank: "\f4d3";
    +@fa-var-pills: "\f484";
    +@fa-var-pinterest: "\f0d2";
    +@fa-var-pinterest-p: "\f231";
    +@fa-var-pinterest-square: "\f0d3";
    +@fa-var-place-of-worship: "\f67f";
    +@fa-var-plane: "\f072";
    +@fa-var-plane-arrival: "\f5af";
    +@fa-var-plane-departure: "\f5b0";
    +@fa-var-play: "\f04b";
    +@fa-var-play-circle: "\f144";
    +@fa-var-playstation: "\f3df";
    +@fa-var-plug: "\f1e6";
    +@fa-var-plus: "\f067";
    +@fa-var-plus-circle: "\f055";
    +@fa-var-plus-square: "\f0fe";
    +@fa-var-podcast: "\f2ce";
    +@fa-var-poll: "\f681";
    +@fa-var-poll-h: "\f682";
    +@fa-var-poo: "\f2fe";
    +@fa-var-poop: "\f619";
    +@fa-var-portrait: "\f3e0";
    +@fa-var-pound-sign: "\f154";
    +@fa-var-power-off: "\f011";
    +@fa-var-pray: "\f683";
    +@fa-var-praying-hands: "\f684";
    +@fa-var-prescription: "\f5b1";
    +@fa-var-prescription-bottle: "\f485";
    +@fa-var-prescription-bottle-alt: "\f486";
    +@fa-var-print: "\f02f";
    +@fa-var-procedures: "\f487";
    +@fa-var-product-hunt: "\f288";
    +@fa-var-project-diagram: "\f542";
    +@fa-var-pushed: "\f3e1";
    +@fa-var-puzzle-piece: "\f12e";
    +@fa-var-python: "\f3e2";
    +@fa-var-qq: "\f1d6";
    +@fa-var-qrcode: "\f029";
    +@fa-var-question: "\f128";
    +@fa-var-question-circle: "\f059";
    +@fa-var-quidditch: "\f458";
    +@fa-var-quinscape: "\f459";
    +@fa-var-quora: "\f2c4";
    +@fa-var-quote-left: "\f10d";
    +@fa-var-quote-right: "\f10e";
    +@fa-var-quran: "\f687";
    +@fa-var-r-project: "\f4f7";
    +@fa-var-random: "\f074";
    +@fa-var-ravelry: "\f2d9";
    +@fa-var-react: "\f41b";
    +@fa-var-readme: "\f4d5";
    +@fa-var-rebel: "\f1d0";
    +@fa-var-receipt: "\f543";
    +@fa-var-recycle: "\f1b8";
    +@fa-var-red-river: "\f3e3";
    +@fa-var-reddit: "\f1a1";
    +@fa-var-reddit-alien: "\f281";
    +@fa-var-reddit-square: "\f1a2";
    +@fa-var-redo: "\f01e";
    +@fa-var-redo-alt: "\f2f9";
    +@fa-var-registered: "\f25d";
    +@fa-var-rendact: "\f3e4";
    +@fa-var-renren: "\f18b";
    +@fa-var-reply: "\f3e5";
    +@fa-var-reply-all: "\f122";
    +@fa-var-replyd: "\f3e6";
    +@fa-var-researchgate: "\f4f8";
    +@fa-var-resolving: "\f3e7";
    +@fa-var-retweet: "\f079";
    +@fa-var-rev: "\f5b2";
    +@fa-var-ribbon: "\f4d6";
    +@fa-var-ring: "\f70b";
    +@fa-var-road: "\f018";
    +@fa-var-robot: "\f544";
    +@fa-var-rocket: "\f135";
    +@fa-var-rocketchat: "\f3e8";
    +@fa-var-rockrms: "\f3e9";
    +@fa-var-route: "\f4d7";
    +@fa-var-rss: "\f09e";
    +@fa-var-rss-square: "\f143";
    +@fa-var-ruble-sign: "\f158";
    +@fa-var-ruler: "\f545";
    +@fa-var-ruler-combined: "\f546";
    +@fa-var-ruler-horizontal: "\f547";
    +@fa-var-ruler-vertical: "\f548";
    +@fa-var-running: "\f70c";
    +@fa-var-rupee-sign: "\f156";
    +@fa-var-sad-cry: "\f5b3";
    +@fa-var-sad-tear: "\f5b4";
    +@fa-var-safari: "\f267";
    +@fa-var-sass: "\f41e";
    +@fa-var-save: "\f0c7";
    +@fa-var-schlix: "\f3ea";
    +@fa-var-school: "\f549";
    +@fa-var-screwdriver: "\f54a";
    +@fa-var-scribd: "\f28a";
    +@fa-var-scroll: "\f70e";
    +@fa-var-search: "\f002";
    +@fa-var-search-dollar: "\f688";
    +@fa-var-search-location: "\f689";
    +@fa-var-search-minus: "\f010";
    +@fa-var-search-plus: "\f00e";
    +@fa-var-searchengin: "\f3eb";
    +@fa-var-seedling: "\f4d8";
    +@fa-var-sellcast: "\f2da";
    +@fa-var-sellsy: "\f213";
    +@fa-var-server: "\f233";
    +@fa-var-servicestack: "\f3ec";
    +@fa-var-shapes: "\f61f";
    +@fa-var-share: "\f064";
    +@fa-var-share-alt: "\f1e0";
    +@fa-var-share-alt-square: "\f1e1";
    +@fa-var-share-square: "\f14d";
    +@fa-var-shekel-sign: "\f20b";
    +@fa-var-shield-alt: "\f3ed";
    +@fa-var-ship: "\f21a";
    +@fa-var-shipping-fast: "\f48b";
    +@fa-var-shirtsinbulk: "\f214";
    +@fa-var-shoe-prints: "\f54b";
    +@fa-var-shopping-bag: "\f290";
    +@fa-var-shopping-basket: "\f291";
    +@fa-var-shopping-cart: "\f07a";
    +@fa-var-shopware: "\f5b5";
    +@fa-var-shower: "\f2cc";
    +@fa-var-shuttle-van: "\f5b6";
    +@fa-var-sign: "\f4d9";
    +@fa-var-sign-in-alt: "\f2f6";
    +@fa-var-sign-language: "\f2a7";
    +@fa-var-sign-out-alt: "\f2f5";
    +@fa-var-signal: "\f012";
    +@fa-var-signature: "\f5b7";
    +@fa-var-simplybuilt: "\f215";
    +@fa-var-sistrix: "\f3ee";
    +@fa-var-sitemap: "\f0e8";
    +@fa-var-sith: "\f512";
    +@fa-var-skull: "\f54c";
    +@fa-var-skull-crossbones: "\f714";
    +@fa-var-skyatlas: "\f216";
    +@fa-var-skype: "\f17e";
    +@fa-var-slack: "\f198";
    +@fa-var-slack-hash: "\f3ef";
    +@fa-var-slash: "\f715";
    +@fa-var-sliders-h: "\f1de";
    +@fa-var-slideshare: "\f1e7";
    +@fa-var-smile: "\f118";
    +@fa-var-smile-beam: "\f5b8";
    +@fa-var-smile-wink: "\f4da";
    +@fa-var-smoking: "\f48d";
    +@fa-var-smoking-ban: "\f54d";
    +@fa-var-snapchat: "\f2ab";
    +@fa-var-snapchat-ghost: "\f2ac";
    +@fa-var-snapchat-square: "\f2ad";
    +@fa-var-snowflake: "\f2dc";
    +@fa-var-socks: "\f696";
    +@fa-var-solar-panel: "\f5ba";
    +@fa-var-sort: "\f0dc";
    +@fa-var-sort-alpha-down: "\f15d";
    +@fa-var-sort-alpha-up: "\f15e";
    +@fa-var-sort-amount-down: "\f160";
    +@fa-var-sort-amount-up: "\f161";
    +@fa-var-sort-down: "\f0dd";
    +@fa-var-sort-numeric-down: "\f162";
    +@fa-var-sort-numeric-up: "\f163";
    +@fa-var-sort-up: "\f0de";
    +@fa-var-soundcloud: "\f1be";
    +@fa-var-spa: "\f5bb";
    +@fa-var-space-shuttle: "\f197";
    +@fa-var-speakap: "\f3f3";
    +@fa-var-spider: "\f717";
    +@fa-var-spinner: "\f110";
    +@fa-var-splotch: "\f5bc";
    +@fa-var-spotify: "\f1bc";
    +@fa-var-spray-can: "\f5bd";
    +@fa-var-square: "\f0c8";
    +@fa-var-square-full: "\f45c";
    +@fa-var-square-root-alt: "\f698";
    +@fa-var-squarespace: "\f5be";
    +@fa-var-stack-exchange: "\f18d";
    +@fa-var-stack-overflow: "\f16c";
    +@fa-var-stamp: "\f5bf";
    +@fa-var-star: "\f005";
    +@fa-var-star-and-crescent: "\f699";
    +@fa-var-star-half: "\f089";
    +@fa-var-star-half-alt: "\f5c0";
    +@fa-var-star-of-david: "\f69a";
    +@fa-var-star-of-life: "\f621";
    +@fa-var-staylinked: "\f3f5";
    +@fa-var-steam: "\f1b6";
    +@fa-var-steam-square: "\f1b7";
    +@fa-var-steam-symbol: "\f3f6";
    +@fa-var-step-backward: "\f048";
    +@fa-var-step-forward: "\f051";
    +@fa-var-stethoscope: "\f0f1";
    +@fa-var-sticker-mule: "\f3f7";
    +@fa-var-sticky-note: "\f249";
    +@fa-var-stop: "\f04d";
    +@fa-var-stop-circle: "\f28d";
    +@fa-var-stopwatch: "\f2f2";
    +@fa-var-store: "\f54e";
    +@fa-var-store-alt: "\f54f";
    +@fa-var-strava: "\f428";
    +@fa-var-stream: "\f550";
    +@fa-var-street-view: "\f21d";
    +@fa-var-strikethrough: "\f0cc";
    +@fa-var-stripe: "\f429";
    +@fa-var-stripe-s: "\f42a";
    +@fa-var-stroopwafel: "\f551";
    +@fa-var-studiovinari: "\f3f8";
    +@fa-var-stumbleupon: "\f1a4";
    +@fa-var-stumbleupon-circle: "\f1a3";
    +@fa-var-subscript: "\f12c";
    +@fa-var-subway: "\f239";
    +@fa-var-suitcase: "\f0f2";
    +@fa-var-suitcase-rolling: "\f5c1";
    +@fa-var-sun: "\f185";
    +@fa-var-superpowers: "\f2dd";
    +@fa-var-superscript: "\f12b";
    +@fa-var-supple: "\f3f9";
    +@fa-var-surprise: "\f5c2";
    +@fa-var-swatchbook: "\f5c3";
    +@fa-var-swimmer: "\f5c4";
    +@fa-var-swimming-pool: "\f5c5";
    +@fa-var-synagogue: "\f69b";
    +@fa-var-sync: "\f021";
    +@fa-var-sync-alt: "\f2f1";
    +@fa-var-syringe: "\f48e";
    +@fa-var-table: "\f0ce";
    +@fa-var-table-tennis: "\f45d";
    +@fa-var-tablet: "\f10a";
    +@fa-var-tablet-alt: "\f3fa";
    +@fa-var-tablets: "\f490";
    +@fa-var-tachometer-alt: "\f3fd";
    +@fa-var-tag: "\f02b";
    +@fa-var-tags: "\f02c";
    +@fa-var-tape: "\f4db";
    +@fa-var-tasks: "\f0ae";
    +@fa-var-taxi: "\f1ba";
    +@fa-var-teamspeak: "\f4f9";
    +@fa-var-teeth: "\f62e";
    +@fa-var-teeth-open: "\f62f";
    +@fa-var-telegram: "\f2c6";
    +@fa-var-telegram-plane: "\f3fe";
    +@fa-var-tencent-weibo: "\f1d5";
    +@fa-var-terminal: "\f120";
    +@fa-var-text-height: "\f034";
    +@fa-var-text-width: "\f035";
    +@fa-var-th: "\f00a";
    +@fa-var-th-large: "\f009";
    +@fa-var-th-list: "\f00b";
    +@fa-var-the-red-yeti: "\f69d";
    +@fa-var-theater-masks: "\f630";
    +@fa-var-themeco: "\f5c6";
    +@fa-var-themeisle: "\f2b2";
    +@fa-var-thermometer: "\f491";
    +@fa-var-thermometer-empty: "\f2cb";
    +@fa-var-thermometer-full: "\f2c7";
    +@fa-var-thermometer-half: "\f2c9";
    +@fa-var-thermometer-quarter: "\f2ca";
    +@fa-var-thermometer-three-quarters: "\f2c8";
    +@fa-var-thumbs-down: "\f165";
    +@fa-var-thumbs-up: "\f164";
    +@fa-var-thumbtack: "\f08d";
    +@fa-var-ticket-alt: "\f3ff";
    +@fa-var-times: "\f00d";
    +@fa-var-times-circle: "\f057";
    +@fa-var-tint: "\f043";
    +@fa-var-tint-slash: "\f5c7";
    +@fa-var-tired: "\f5c8";
    +@fa-var-toggle-off: "\f204";
    +@fa-var-toggle-on: "\f205";
    +@fa-var-toilet-paper: "\f71e";
    +@fa-var-toolbox: "\f552";
    +@fa-var-tooth: "\f5c9";
    +@fa-var-torah: "\f6a0";
    +@fa-var-torii-gate: "\f6a1";
    +@fa-var-tractor: "\f722";
    +@fa-var-trade-federation: "\f513";
    +@fa-var-trademark: "\f25c";
    +@fa-var-traffic-light: "\f637";
    +@fa-var-train: "\f238";
    +@fa-var-transgender: "\f224";
    +@fa-var-transgender-alt: "\f225";
    +@fa-var-trash: "\f1f8";
    +@fa-var-trash-alt: "\f2ed";
    +@fa-var-tree: "\f1bb";
    +@fa-var-trello: "\f181";
    +@fa-var-tripadvisor: "\f262";
    +@fa-var-trophy: "\f091";
    +@fa-var-truck: "\f0d1";
    +@fa-var-truck-loading: "\f4de";
    +@fa-var-truck-monster: "\f63b";
    +@fa-var-truck-moving: "\f4df";
    +@fa-var-truck-pickup: "\f63c";
    +@fa-var-tshirt: "\f553";
    +@fa-var-tty: "\f1e4";
    +@fa-var-tumblr: "\f173";
    +@fa-var-tumblr-square: "\f174";
    +@fa-var-tv: "\f26c";
    +@fa-var-twitch: "\f1e8";
    +@fa-var-twitter: "\f099";
    +@fa-var-twitter-square: "\f081";
    +@fa-var-typo3: "\f42b";
    +@fa-var-uber: "\f402";
    +@fa-var-uikit: "\f403";
    +@fa-var-umbrella: "\f0e9";
    +@fa-var-umbrella-beach: "\f5ca";
    +@fa-var-underline: "\f0cd";
    +@fa-var-undo: "\f0e2";
    +@fa-var-undo-alt: "\f2ea";
    +@fa-var-uniregistry: "\f404";
    +@fa-var-universal-access: "\f29a";
    +@fa-var-university: "\f19c";
    +@fa-var-unlink: "\f127";
    +@fa-var-unlock: "\f09c";
    +@fa-var-unlock-alt: "\f13e";
    +@fa-var-untappd: "\f405";
    +@fa-var-upload: "\f093";
    +@fa-var-usb: "\f287";
    +@fa-var-user: "\f007";
    +@fa-var-user-alt: "\f406";
    +@fa-var-user-alt-slash: "\f4fa";
    +@fa-var-user-astronaut: "\f4fb";
    +@fa-var-user-check: "\f4fc";
    +@fa-var-user-circle: "\f2bd";
    +@fa-var-user-clock: "\f4fd";
    +@fa-var-user-cog: "\f4fe";
    +@fa-var-user-edit: "\f4ff";
    +@fa-var-user-friends: "\f500";
    +@fa-var-user-graduate: "\f501";
    +@fa-var-user-injured: "\f728";
    +@fa-var-user-lock: "\f502";
    +@fa-var-user-md: "\f0f0";
    +@fa-var-user-minus: "\f503";
    +@fa-var-user-ninja: "\f504";
    +@fa-var-user-plus: "\f234";
    +@fa-var-user-secret: "\f21b";
    +@fa-var-user-shield: "\f505";
    +@fa-var-user-slash: "\f506";
    +@fa-var-user-tag: "\f507";
    +@fa-var-user-tie: "\f508";
    +@fa-var-user-times: "\f235";
    +@fa-var-users: "\f0c0";
    +@fa-var-users-cog: "\f509";
    +@fa-var-ussunnah: "\f407";
    +@fa-var-utensil-spoon: "\f2e5";
    +@fa-var-utensils: "\f2e7";
    +@fa-var-vaadin: "\f408";
    +@fa-var-vector-square: "\f5cb";
    +@fa-var-venus: "\f221";
    +@fa-var-venus-double: "\f226";
    +@fa-var-venus-mars: "\f228";
    +@fa-var-viacoin: "\f237";
    +@fa-var-viadeo: "\f2a9";
    +@fa-var-viadeo-square: "\f2aa";
    +@fa-var-vial: "\f492";
    +@fa-var-vials: "\f493";
    +@fa-var-viber: "\f409";
    +@fa-var-video: "\f03d";
    +@fa-var-video-slash: "\f4e2";
    +@fa-var-vihara: "\f6a7";
    +@fa-var-vimeo: "\f40a";
    +@fa-var-vimeo-square: "\f194";
    +@fa-var-vimeo-v: "\f27d";
    +@fa-var-vine: "\f1ca";
    +@fa-var-vk: "\f189";
    +@fa-var-vnv: "\f40b";
    +@fa-var-volleyball-ball: "\f45f";
    +@fa-var-volume-down: "\f027";
    +@fa-var-volume-mute: "\f6a9";
    +@fa-var-volume-off: "\f026";
    +@fa-var-volume-up: "\f028";
    +@fa-var-vuejs: "\f41f";
    +@fa-var-walking: "\f554";
    +@fa-var-wallet: "\f555";
    +@fa-var-warehouse: "\f494";
    +@fa-var-weebly: "\f5cc";
    +@fa-var-weibo: "\f18a";
    +@fa-var-weight: "\f496";
    +@fa-var-weight-hanging: "\f5cd";
    +@fa-var-weixin: "\f1d7";
    +@fa-var-whatsapp: "\f232";
    +@fa-var-whatsapp-square: "\f40c";
    +@fa-var-wheelchair: "\f193";
    +@fa-var-whmcs: "\f40d";
    +@fa-var-wifi: "\f1eb";
    +@fa-var-wikipedia-w: "\f266";
    +@fa-var-wind: "\f72e";
    +@fa-var-window-close: "\f410";
    +@fa-var-window-maximize: "\f2d0";
    +@fa-var-window-minimize: "\f2d1";
    +@fa-var-window-restore: "\f2d2";
    +@fa-var-windows: "\f17a";
    +@fa-var-wine-bottle: "\f72f";
    +@fa-var-wine-glass: "\f4e3";
    +@fa-var-wine-glass-alt: "\f5ce";
    +@fa-var-wix: "\f5cf";
    +@fa-var-wizards-of-the-coast: "\f730";
    +@fa-var-wolf-pack-battalion: "\f514";
    +@fa-var-won-sign: "\f159";
    +@fa-var-wordpress: "\f19a";
    +@fa-var-wordpress-simple: "\f411";
    +@fa-var-wpbeginner: "\f297";
    +@fa-var-wpexplorer: "\f2de";
    +@fa-var-wpforms: "\f298";
    +@fa-var-wrench: "\f0ad";
    +@fa-var-x-ray: "\f497";
    +@fa-var-xbox: "\f412";
    +@fa-var-xing: "\f168";
    +@fa-var-xing-square: "\f169";
    +@fa-var-y-combinator: "\f23b";
    +@fa-var-yahoo: "\f19e";
    +@fa-var-yandex: "\f413";
    +@fa-var-yandex-international: "\f414";
    +@fa-var-yelp: "\f1e9";
    +@fa-var-yen-sign: "\f157";
    +@fa-var-yin-yang: "\f6ad";
    +@fa-var-yoast: "\f2b1";
    +@fa-var-youtube: "\f167";
    +@fa-var-youtube-square: "\f431";
    +@fa-var-zhihu: "\f63f";
    diff --git a/htdocs/theme/common/fontawesome-5/less/brands.less b/htdocs/theme/common/fontawesome-5/less/brands.less
    new file mode 100644
    index 00000000000..7f09fe8276b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/brands.less
    @@ -0,0 +1,21 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@import "_variables.less";
    +
    +@font-face {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-style: normal;
    +  font-weight: normal;
    +  src: url('@{fa-font-path}/fa-brands-400.eot');
    +  src: url('@{fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
    +    url('@{fa-font-path}/fa-brands-400.woff2') format('woff2'),
    +    url('@{fa-font-path}/fa-brands-400.woff') format('woff'),
    +    url('@{fa-font-path}/fa-brands-400.ttf') format('truetype'),
    +    url('@{fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
    +}
    +
    +.fab {
    +  font-family: 'Font Awesome 5 Brands';
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/less/fontawesome.less b/htdocs/theme/common/fontawesome-5/less/fontawesome.less
    new file mode 100644
    index 00000000000..9876dd397da
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/fontawesome.less
    @@ -0,0 +1,16 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@import "_variables.less";
    +@import "_mixins.less";
    +@import "_core.less";
    +@import "_larger.less";
    +@import "_fixed-width.less";
    +@import "_list.less";
    +@import "_bordered-pulled.less";
    +@import "_animated.less";
    +@import "_rotated-flipped.less";
    +@import "_stacked.less";
    +@import "_icons.less";
    +@import "_screen-reader.less";
    diff --git a/htdocs/theme/common/fontawesome-5/less/regular.less b/htdocs/theme/common/fontawesome-5/less/regular.less
    new file mode 100644
    index 00000000000..a38f2223b54
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/regular.less
    @@ -0,0 +1,22 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@import "_variables.less";
    +
    +@font-face {
    +  font-family: 'Font Awesome 5 Free';
    +  font-style: normal;
    +  font-weight: 400;
    +  src: url('@{fa-font-path}/fa-regular-400.eot');
    +  src: url('@{fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
    +    url('@{fa-font-path}/fa-regular-400.woff2') format('woff2'),
    +    url('@{fa-font-path}/fa-regular-400.woff') format('woff'),
    +    url('@{fa-font-path}/fa-regular-400.ttf') format('truetype'),
    +    url('@{fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
    +}
    +
    +.far {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/less/solid.less b/htdocs/theme/common/fontawesome-5/less/solid.less
    new file mode 100644
    index 00000000000..2966e743f3c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/solid.less
    @@ -0,0 +1,23 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@import "_variables.less";
    +
    +@font-face {
    +  font-family: 'Font Awesome 5 Free';
    +  font-style: normal;
    +  font-weight: 900;
    +  src: url('@{fa-font-path}/fa-solid-900.eot');
    +  src: url('@{fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
    +    url('@{fa-font-path}/fa-solid-900.woff2') format('woff2'),
    +    url('@{fa-font-path}/fa-solid-900.woff') format('woff'),
    +    url('@{fa-font-path}/fa-solid-900.ttf') format('truetype'),
    +    url('@{fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
    +}
    +
    +.fa,
    +.fas {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 900;
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/less/v4-shims.less b/htdocs/theme/common/fontawesome-5/less/v4-shims.less
    new file mode 100644
    index 00000000000..051ecd99357
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/less/v4-shims.less
    @@ -0,0 +1,6 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@import '_variables.less';
    +@import '_shims.less';
    diff --git a/htdocs/theme/common/fontawesome-5/metadata/categories.yml b/htdocs/theme/common/fontawesome-5/metadata/categories.yml
    new file mode 100644
    index 00000000000..d6fa39900ed
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/metadata/categories.yml
    @@ -0,0 +1,1745 @@
    +accessibility:
    +  icons:
    +    - accessible-icon
    +    - american-sign-language-interpreting
    +    - assistive-listening-systems
    +    - audio-description
    +    - blind
    +    - braille
    +    - closed-captioning
    +    - deaf
    +    - low-vision
    +    - phone-volume
    +    - question-circle
    +    - sign-language
    +    - tty
    +    - universal-access
    +    - wheelchair
    +  label: Accessibility
    +animals:
    +  icons:
    +    - cat
    +    - crow
    +    - dog
    +    - dove
    +    - dragon
    +    - feather
    +    - feather-alt
    +    - fish
    +    - frog
    +    - hippo
    +    - horse
    +    - kiwi-bird
    +    - otter
    +    - paw
    +    - spider
    +  label: Animals
    +arrows:
    +  icons:
    +    - angle-double-down
    +    - angle-double-left
    +    - angle-double-right
    +    - angle-double-up
    +    - angle-down
    +    - angle-left
    +    - angle-right
    +    - angle-up
    +    - arrow-alt-circle-down
    +    - arrow-alt-circle-left
    +    - arrow-alt-circle-right
    +    - arrow-alt-circle-up
    +    - arrow-circle-down
    +    - arrow-circle-left
    +    - arrow-circle-right
    +    - arrow-circle-up
    +    - arrow-down
    +    - arrow-left
    +    - arrow-right
    +    - arrow-up
    +    - arrows-alt
    +    - arrows-alt-h
    +    - arrows-alt-v
    +    - caret-down
    +    - caret-left
    +    - caret-right
    +    - caret-square-down
    +    - caret-square-left
    +    - caret-square-right
    +    - caret-square-up
    +    - caret-up
    +    - cart-arrow-down
    +    - chart-line
    +    - chevron-circle-down
    +    - chevron-circle-left
    +    - chevron-circle-right
    +    - chevron-circle-up
    +    - chevron-down
    +    - chevron-left
    +    - chevron-right
    +    - chevron-up
    +    - cloud-download-alt
    +    - cloud-upload-alt
    +    - download
    +    - exchange-alt
    +    - expand-arrows-alt
    +    - external-link-alt
    +    - external-link-square-alt
    +    - hand-point-down
    +    - hand-point-left
    +    - hand-point-right
    +    - hand-point-up
    +    - hand-pointer
    +    - history
    +    - level-down-alt
    +    - level-up-alt
    +    - location-arrow
    +    - long-arrow-alt-down
    +    - long-arrow-alt-left
    +    - long-arrow-alt-right
    +    - long-arrow-alt-up
    +    - mouse-pointer
    +    - play
    +    - random
    +    - recycle
    +    - redo
    +    - redo-alt
    +    - reply
    +    - reply-all
    +    - retweet
    +    - share
    +    - share-square
    +    - sign-in-alt
    +    - sign-out-alt
    +    - sort
    +    - sort-alpha-down
    +    - sort-alpha-up
    +    - sort-amount-down
    +    - sort-amount-up
    +    - sort-down
    +    - sort-numeric-down
    +    - sort-numeric-up
    +    - sort-up
    +    - sync
    +    - sync-alt
    +    - text-height
    +    - text-width
    +    - undo
    +    - undo-alt
    +    - upload
    +  label: Arrows
    +audio-video:
    +  icons:
    +    - audio-description
    +    - backward
    +    - broadcast-tower
    +    - circle
    +    - closed-captioning
    +    - compress
    +    - eject
    +    - expand
    +    - expand-arrows-alt
    +    - fast-backward
    +    - fast-forward
    +    - file-audio
    +    - file-video
    +    - film
    +    - forward
    +    - headphones
    +    - microphone
    +    - microphone-alt
    +    - microphone-alt-slash
    +    - microphone-slash
    +    - music
    +    - pause
    +    - pause-circle
    +    - phone-volume
    +    - play
    +    - play-circle
    +    - podcast
    +    - random
    +    - redo
    +    - redo-alt
    +    - rss
    +    - rss-square
    +    - step-backward
    +    - step-forward
    +    - stop
    +    - stop-circle
    +    - sync
    +    - sync-alt
    +    - undo
    +    - undo-alt
    +    - video
    +    - volume-down
    +    - volume-mute
    +    - volume-off
    +    - volume-up
    +    - youtube
    +  label: Audio & Video
    +automotive:
    +  icons:
    +    - air-freshener
    +    - ambulance
    +    - bus
    +    - bus-alt
    +    - car
    +    - car-alt
    +    - car-battery
    +    - car-crash
    +    - car-side
    +    - charging-station
    +    - gas-pump
    +    - motorcycle
    +    - oil-can
    +    - shuttle-van
    +    - tachometer-alt
    +    - taxi
    +    - truck
    +    - truck-monster
    +    - truck-pickup
    +  label: Automotive
    +autumn:
    +  icons:
    +    - apple-alt
    +    - campground
    +    - cloud-sun
    +    - drumstick-bite
    +    - football-ball
    +    - hiking
    +    - mountain
    +    - tractor
    +    - tree
    +    - wind
    +    - wine-bottle
    +  label: Autumn
    +buildings:
    +  icons:
    +    - building
    +    - church
    +    - gopuram
    +    - home
    +    - hospital
    +    - hospital-alt
    +    - house-damage
    +    - industry
    +    - mosque
    +    - place-of-worship
    +    - school
    +    - synagogue
    +    - torii-gate
    +    - university
    +    - vihara
    +  label: Buildings
    +business:
    +  icons:
    +    - address-book
    +    - address-card
    +    - archive
    +    - balance-scale
    +    - birthday-cake
    +    - book
    +    - briefcase
    +    - building
    +    - bullhorn
    +    - bullseye
    +    - business-time
    +    - calculator
    +    - calendar
    +    - calendar-alt
    +    - certificate
    +    - chart-area
    +    - chart-bar
    +    - chart-line
    +    - chart-pie
    +    - city
    +    - clipboard
    +    - coffee
    +    - columns
    +    - compass
    +    - copy
    +    - copyright
    +    - cut
    +    - edit
    +    - envelope
    +    - envelope-open
    +    - envelope-square
    +    - eraser
    +    - fax
    +    - file
    +    - file-alt
    +    - folder
    +    - folder-minus
    +    - folder-open
    +    - folder-plus
    +    - glasses
    +    - globe
    +    - highlighter
    +    - industry
    +    - landmark
    +    - marker
    +    - paperclip
    +    - paste
    +    - pen
    +    - pen-alt
    +    - pen-fancy
    +    - pen-nib
    +    - pen-square
    +    - pencil-alt
    +    - percent
    +    - phone
    +    - phone-slash
    +    - phone-square
    +    - phone-volume
    +    - print
    +    - project-diagram
    +    - registered
    +    - save
    +    - sitemap
    +    - socks
    +    - sticky-note
    +    - stream
    +    - table
    +    - tag
    +    - tags
    +    - tasks
    +    - thumbtack
    +    - trademark
    +    - wallet
    +  label: Business
    +charity:
    +  icons:
    +    - dollar-sign
    +    - donate
    +    - dove
    +    - gift
    +    - globe
    +    - hand-holding-heart
    +    - hand-holding-usd
    +    - hands-helping
    +    - handshake
    +    - heart
    +    - leaf
    +    - parachute-box
    +    - piggy-bank
    +    - ribbon
    +    - seedling
    +  label: Charity
    +chat:
    +  icons:
    +    - comment
    +    - comment-alt
    +    - comment-dots
    +    - comment-slash
    +    - comments
    +    - frown
    +    - meh
    +    - phone
    +    - phone-slash
    +    - poo
    +    - quote-left
    +    - quote-right
    +    - smile
    +    - video
    +    - video-slash
    +  label: Chat
    +chess:
    +  icons:
    +    - chess
    +    - chess-bishop
    +    - chess-board
    +    - chess-king
    +    - chess-knight
    +    - chess-pawn
    +    - chess-queen
    +    - chess-rook
    +    - square-full
    +  label: Chess
    +code:
    +  icons:
    +    - archive
    +    - barcode
    +    - bath
    +    - bug
    +    - code
    +    - code-branch
    +    - coffee
    +    - file
    +    - file-alt
    +    - file-code
    +    - filter
    +    - fire-extinguisher
    +    - folder
    +    - folder-open
    +    - keyboard
    +    - microchip
    +    - project-diagram
    +    - qrcode
    +    - shield-alt
    +    - sitemap
    +    - stream
    +    - terminal
    +    - user-secret
    +    - window-close
    +    - window-maximize
    +    - window-minimize
    +    - window-restore
    +  label: Code
    +communication:
    +  icons:
    +    - address-book
    +    - address-card
    +    - american-sign-language-interpreting
    +    - assistive-listening-systems
    +    - at
    +    - bell
    +    - bell-slash
    +    - bluetooth
    +    - bluetooth-b
    +    - broadcast-tower
    +    - bullhorn
    +    - chalkboard
    +    - comment
    +    - comment-alt
    +    - comments
    +    - envelope
    +    - envelope-open
    +    - envelope-square
    +    - fax
    +    - inbox
    +    - language
    +    - microphone
    +    - microphone-alt
    +    - microphone-alt-slash
    +    - microphone-slash
    +    - mobile
    +    - mobile-alt
    +    - paper-plane
    +    - phone
    +    - phone-slash
    +    - phone-square
    +    - phone-volume
    +    - rss
    +    - rss-square
    +    - tty
    +    - wifi
    +  label: Communication
    +computers:
    +  icons:
    +    - database
    +    - desktop
    +    - download
    +    - hdd
    +    - headphones
    +    - keyboard
    +    - laptop
    +    - memory
    +    - microchip
    +    - mobile
    +    - mobile-alt
    +    - plug
    +    - power-off
    +    - print
    +    - save
    +    - server
    +    - stream
    +    - tablet
    +    - tablet-alt
    +    - tv
    +    - upload
    +  label: Computers
    +currency:
    +  icons:
    +    - bitcoin
    +    - btc
    +    - dollar-sign
    +    - ethereum
    +    - euro-sign
    +    - gg
    +    - gg-circle
    +    - hryvnia
    +    - lira-sign
    +    - money-bill
    +    - money-bill-alt
    +    - money-bill-wave
    +    - money-bill-wave-alt
    +    - money-check
    +    - money-check-alt
    +    - pound-sign
    +    - ruble-sign
    +    - rupee-sign
    +    - shekel-sign
    +    - won-sign
    +    - yen-sign
    +  label: Currency
    +date-time:
    +  icons:
    +    - bell
    +    - bell-slash
    +    - calendar
    +    - calendar-alt
    +    - calendar-check
    +    - calendar-minus
    +    - calendar-plus
    +    - calendar-times
    +    - clock
    +    - hourglass
    +    - hourglass-end
    +    - hourglass-half
    +    - hourglass-start
    +    - stopwatch
    +  label: Date & Time
    +design:
    +  icons:
    +    - adjust
    +    - bezier-curve
    +    - brush
    +    - clone
    +    - copy
    +    - crop
    +    - crop-alt
    +    - crosshairs
    +    - cut
    +    - drafting-compass
    +    - draw-polygon
    +    - edit
    +    - eraser
    +    - eye
    +    - eye-dropper
    +    - eye-slash
    +    - fill
    +    - fill-drip
    +    - highlighter
    +    - layer-group
    +    - magic
    +    - marker
    +    - object-group
    +    - object-ungroup
    +    - paint-brush
    +    - paint-roller
    +    - palette
    +    - paste
    +    - pen
    +    - pen-alt
    +    - pen-fancy
    +    - pen-nib
    +    - pencil-alt
    +    - pencil-ruler
    +    - ruler-combined
    +    - ruler-horizontal
    +    - ruler-vertical
    +    - save
    +    - splotch
    +    - spray-can
    +    - stamp
    +    - swatchbook
    +    - tint
    +    - tint-slash
    +    - vector-square
    +  label: Design
    +editors:
    +  icons:
    +    - align-center
    +    - align-justify
    +    - align-left
    +    - align-right
    +    - bold
    +    - clipboard
    +    - clone
    +    - columns
    +    - copy
    +    - cut
    +    - edit
    +    - eraser
    +    - file
    +    - file-alt
    +    - font
    +    - glasses
    +    - heading
    +    - highlighter
    +    - i-cursor
    +    - indent
    +    - italic
    +    - link
    +    - list
    +    - list-alt
    +    - list-ol
    +    - list-ul
    +    - marker
    +    - outdent
    +    - paper-plane
    +    - paperclip
    +    - paragraph
    +    - paste
    +    - pen
    +    - pen-alt
    +    - pen-fancy
    +    - pen-nib
    +    - pencil-alt
    +    - print
    +    - quote-left
    +    - quote-right
    +    - redo
    +    - redo-alt
    +    - reply
    +    - reply-all
    +    - screwdriver
    +    - share
    +    - strikethrough
    +    - subscript
    +    - superscript
    +    - sync
    +    - sync-alt
    +    - table
    +    - tasks
    +    - text-height
    +    - text-width
    +    - th
    +    - th-large
    +    - th-list
    +    - trash
    +    - trash-alt
    +    - underline
    +    - undo
    +    - undo-alt
    +    - unlink
    +    - wrench
    +  label: Editors
    +education:
    +  icons:
    +    - apple-alt
    +    - atom
    +    - award
    +    - bell
    +    - bell-slash
    +    - book-open
    +    - book-reader
    +    - chalkboard
    +    - chalkboard-teacher
    +    - graduation-cap
    +    - laptop-code
    +    - microscope
    +    - music
    +    - school
    +    - shapes
    +    - theater-masks
    +    - user-graduate
    +  label: Education
    +emoji:
    +  icons:
    +    - angry
    +    - dizzy
    +    - flushed
    +    - frown
    +    - frown-open
    +    - grimace
    +    - grin
    +    - grin-alt
    +    - grin-beam
    +    - grin-beam-sweat
    +    - grin-hearts
    +    - grin-squint
    +    - grin-squint-tears
    +    - grin-stars
    +    - grin-tears
    +    - grin-tongue
    +    - grin-tongue-squint
    +    - grin-tongue-wink
    +    - grin-wink
    +    - kiss
    +    - kiss-beam
    +    - kiss-wink-heart
    +    - laugh
    +    - laugh-beam
    +    - laugh-squint
    +    - laugh-wink
    +    - meh
    +    - meh-blank
    +    - meh-rolling-eyes
    +    - sad-cry
    +    - sad-tear
    +    - smile
    +    - smile-beam
    +    - smile-wink
    +    - surprise
    +    - tired
    +  label: Emoji
    +files:
    +  icons:
    +    - archive
    +    - clone
    +    - copy
    +    - cut
    +    - file
    +    - file-alt
    +    - file-archive
    +    - file-audio
    +    - file-code
    +    - file-excel
    +    - file-image
    +    - file-pdf
    +    - file-powerpoint
    +    - file-video
    +    - file-word
    +    - folder
    +    - folder-open
    +    - paste
    +    - save
    +    - sticky-note
    +  label: Files
    +gaming-tabletop:
    +  icons:
    +    - acquisitions-incorporated
    +    - book-dead
    +    - critical-role
    +    - d-and-d
    +    - dice-d20
    +    - dice-d6
    +    - dragon
    +    - dungeon
    +    - fantasy-flight-games
    +    - fist-raised
    +    - hat-wizard
    +    - penny-arcade
    +    - ring
    +    - scroll
    +    - skull-crossbones
    +    - wizards-of-the-coast
    +  label: Tabletop Gaming
    +gender:
    +  icons:
    +    - genderless
    +    - mars
    +    - mars-double
    +    - mars-stroke
    +    - mars-stroke-h
    +    - mars-stroke-v
    +    - mercury
    +    - neuter
    +    - transgender
    +    - transgender-alt
    +    - venus
    +    - venus-double
    +    - venus-mars
    +  label: Genders
    +halloween:
    +  icons:
    +    - book-dead
    +    - broom
    +    - cat
    +    - cloud-moon
    +    - crow
    +    - ghost
    +    - hat-wizard
    +    - mask
    +    - skull-crossbones
    +    - spider
    +    - toilet-paper
    +  label: Halloween
    +hands:
    +  icons:
    +    - allergies
    +    - fist-raised
    +    - hand-holding
    +    - hand-lizard
    +    - hand-paper
    +    - hand-peace
    +    - hand-point-down
    +    - hand-point-left
    +    - hand-point-right
    +    - hand-point-up
    +    - hand-pointer
    +    - hand-rock
    +    - hand-scissors
    +    - hand-spock
    +    - hands
    +    - handshake
    +    - thumbs-down
    +    - thumbs-up
    +  label: Hands
    +health:
    +  icons:
    +    - accessible-icon
    +    - ambulance
    +    - h-square
    +    - heart
    +    - heartbeat
    +    - hospital
    +    - medkit
    +    - plus-square
    +    - prescription
    +    - stethoscope
    +    - user-md
    +    - wheelchair
    +  label: Health
    +images:
    +  icons:
    +    - adjust
    +    - bolt
    +    - camera
    +    - camera-retro
    +    - chalkboard
    +    - clone
    +    - compress
    +    - expand
    +    - eye
    +    - eye-dropper
    +    - eye-slash
    +    - file-image
    +    - film
    +    - id-badge
    +    - id-card
    +    - image
    +    - images
    +    - portrait
    +    - sliders-h
    +    - tint
    +  label: Images
    +interfaces:
    +  icons:
    +    - award
    +    - ban
    +    - barcode
    +    - bars
    +    - beer
    +    - bell
    +    - bell-slash
    +    - bug
    +    - bullhorn
    +    - bullseye
    +    - calculator
    +    - calendar
    +    - calendar-alt
    +    - calendar-check
    +    - calendar-minus
    +    - calendar-plus
    +    - calendar-times
    +    - certificate
    +    - check
    +    - check-circle
    +    - check-double
    +    - check-square
    +    - circle
    +    - clipboard
    +    - clone
    +    - cloud
    +    - cloud-download-alt
    +    - cloud-upload-alt
    +    - coffee
    +    - cog
    +    - cogs
    +    - copy
    +    - cut
    +    - database
    +    - dot-circle
    +    - download
    +    - edit
    +    - ellipsis-h
    +    - ellipsis-v
    +    - envelope
    +    - envelope-open
    +    - eraser
    +    - exclamation
    +    - exclamation-circle
    +    - exclamation-triangle
    +    - external-link-alt
    +    - external-link-square-alt
    +    - eye
    +    - eye-slash
    +    - file
    +    - file-alt
    +    - file-download
    +    - file-export
    +    - file-import
    +    - file-upload
    +    - filter
    +    - fingerprint
    +    - flag
    +    - flag-checkered
    +    - folder
    +    - folder-open
    +    - frown
    +    - glasses
    +    - grip-horizontal
    +    - grip-vertical
    +    - hashtag
    +    - heart
    +    - history
    +    - home
    +    - i-cursor
    +    - info
    +    - info-circle
    +    - language
    +    - magic
    +    - marker
    +    - medal
    +    - meh
    +    - microphone
    +    - microphone-alt
    +    - microphone-slash
    +    - minus
    +    - minus-circle
    +    - minus-square
    +    - paste
    +    - pen
    +    - pen-alt
    +    - pen-fancy
    +    - pencil-alt
    +    - plus
    +    - plus-circle
    +    - plus-square
    +    - poo
    +    - qrcode
    +    - question
    +    - question-circle
    +    - quote-left
    +    - quote-right
    +    - redo
    +    - redo-alt
    +    - reply
    +    - reply-all
    +    - rss
    +    - rss-square
    +    - save
    +    - screwdriver
    +    - search
    +    - search-minus
    +    - search-plus
    +    - share
    +    - share-alt
    +    - share-alt-square
    +    - share-square
    +    - shield-alt
    +    - sign-in-alt
    +    - sign-out-alt
    +    - signal
    +    - sitemap
    +    - sliders-h
    +    - smile
    +    - sort
    +    - sort-alpha-down
    +    - sort-alpha-up
    +    - sort-amount-down
    +    - sort-amount-up
    +    - sort-down
    +    - sort-numeric-down
    +    - sort-numeric-up
    +    - sort-up
    +    - star
    +    - star-half
    +    - sync
    +    - sync-alt
    +    - thumbs-down
    +    - thumbs-up
    +    - times
    +    - times-circle
    +    - toggle-off
    +    - toggle-on
    +    - trash
    +    - trash-alt
    +    - trophy
    +    - undo
    +    - undo-alt
    +    - upload
    +    - user
    +    - user-alt
    +    - user-circle
    +    - volume-down
    +    - volume-mute
    +    - volume-off
    +    - volume-up
    +    - wifi
    +    - wrench
    +  label: Interfaces
    +logistics:
    +  icons:
    +    - box
    +    - boxes
    +    - clipboard-check
    +    - clipboard-list
    +    - dolly
    +    - dolly-flatbed
    +    - pallet
    +    - shipping-fast
    +    - truck
    +    - warehouse
    +  label: Logistics
    +maps:
    +  icons:
    +    - ambulance
    +    - anchor
    +    - balance-scale
    +    - bath
    +    - bed
    +    - beer
    +    - bell
    +    - bell-slash
    +    - bicycle
    +    - binoculars
    +    - birthday-cake
    +    - blind
    +    - bomb
    +    - book
    +    - bookmark
    +    - briefcase
    +    - building
    +    - car
    +    - coffee
    +    - crosshairs
    +    - directions
    +    - dollar-sign
    +    - draw-polygon
    +    - eye
    +    - eye-slash
    +    - fighter-jet
    +    - fire
    +    - fire-extinguisher
    +    - flag
    +    - flag-checkered
    +    - flask
    +    - gamepad
    +    - gavel
    +    - gift
    +    - glass-martini
    +    - globe
    +    - graduation-cap
    +    - h-square
    +    - heart
    +    - heartbeat
    +    - helicopter
    +    - home
    +    - hospital
    +    - image
    +    - images
    +    - industry
    +    - info
    +    - info-circle
    +    - key
    +    - landmark
    +    - layer-group
    +    - leaf
    +    - lemon
    +    - life-ring
    +    - lightbulb
    +    - location-arrow
    +    - low-vision
    +    - magnet
    +    - male
    +    - map
    +    - map-marker
    +    - map-marker-alt
    +    - map-pin
    +    - map-signs
    +    - medkit
    +    - money-bill
    +    - money-bill-alt
    +    - motorcycle
    +    - music
    +    - newspaper
    +    - parking
    +    - paw
    +    - phone
    +    - phone-square
    +    - phone-volume
    +    - plane
    +    - plug
    +    - plus
    +    - plus-square
    +    - print
    +    - recycle
    +    - road
    +    - rocket
    +    - route
    +    - search
    +    - search-minus
    +    - search-plus
    +    - ship
    +    - shoe-prints
    +    - shopping-bag
    +    - shopping-basket
    +    - shopping-cart
    +    - shower
    +    - street-view
    +    - subway
    +    - suitcase
    +    - tag
    +    - tags
    +    - taxi
    +    - thumbtack
    +    - ticket-alt
    +    - tint
    +    - traffic-light
    +    - train
    +    - tree
    +    - trophy
    +    - truck
    +    - tty
    +    - umbrella
    +    - university
    +    - utensil-spoon
    +    - utensils
    +    - wheelchair
    +    - wifi
    +    - wine-glass
    +    - wrench
    +  label: Maps
    +marketing:
    +  icons:
    +    - ad
    +    - bullhorn
    +    - bullseye
    +    - comment-dollar
    +    - comments-dollar
    +    - envelope-open-text
    +    - funnel-dollar
    +    - lightbulb
    +    - mail-bulk
    +    - poll
    +    - poll-h
    +    - search-dollar
    +    - search-location
    +  label: Marketing
    +mathematics:
    +  icons:
    +    - calculator
    +    - divide
    +    - equals
    +    - greater-than
    +    - greater-than-equal
    +    - infinity
    +    - less-than
    +    - less-than-equal
    +    - minus
    +    - not-equal
    +    - percentage
    +    - plus
    +    - square-root-alt
    +    - subscript
    +    - superscript
    +    - times
    +  label: Mathematics
    +medical:
    +  icons:
    +    - allergies
    +    - ambulance
    +    - band-aid
    +    - bone
    +    - bong
    +    - brain
    +    - briefcase-medical
    +    - burn
    +    - cannabis
    +    - capsules
    +    - diagnoses
    +    - dna
    +    - file-medical
    +    - file-medical-alt
    +    - file-prescription
    +    - first-aid
    +    - heart
    +    - heartbeat
    +    - hospital
    +    - hospital-alt
    +    - hospital-symbol
    +    - id-card-alt
    +    - joint
    +    - microscope
    +    - mortar-pestle
    +    - notes-medical
    +    - pills
    +    - plus
    +    - poop
    +    - prescription
    +    - prescription-bottle
    +    - prescription-bottle-alt
    +    - procedures
    +    - smoking
    +    - smoking-ban
    +    - star-of-life
    +    - stethoscope
    +    - syringe
    +    - tablets
    +    - teeth
    +    - teeth-open
    +    - thermometer
    +    - tooth
    +    - user-md
    +    - vial
    +    - vials
    +    - weight
    +    - x-ray
    +  label: Medical
    +moving:
    +  icons:
    +    - archive
    +    - box-open
    +    - couch
    +    - dolly
    +    - people-carry
    +    - route
    +    - sign
    +    - suitcase
    +    - tape
    +    - truck-loading
    +    - truck-moving
    +    - wine-glass
    +  label: Moving
    +objects:
    +  icons:
    +    - ambulance
    +    - anchor
    +    - archive
    +    - award
    +    - balance-scale
    +    - bath
    +    - bed
    +    - beer
    +    - bell
    +    - bicycle
    +    - binoculars
    +    - birthday-cake
    +    - blender
    +    - bomb
    +    - book
    +    - book-dead
    +    - bookmark
    +    - briefcase
    +    - broadcast-tower
    +    - bug
    +    - building
    +    - bullhorn
    +    - bullseye
    +    - bus
    +    - calculator
    +    - calendar
    +    - calendar-alt
    +    - camera
    +    - camera-retro
    +    - car
    +    - church
    +    - clipboard
    +    - cloud
    +    - coffee
    +    - cog
    +    - cogs
    +    - compass
    +    - cookie
    +    - cookie-bite
    +    - copy
    +    - cube
    +    - cubes
    +    - cut
    +    - dice
    +    - dice-d20
    +    - dice-d6
    +    - dice-five
    +    - dice-four
    +    - dice-one
    +    - dice-six
    +    - dice-three
    +    - dice-two
    +    - digital-tachograph
    +    - door-closed
    +    - door-open
    +    - drum
    +    - drum-steelpan
    +    - envelope
    +    - envelope-open
    +    - eraser
    +    - eye
    +    - eye-dropper
    +    - fax
    +    - feather
    +    - feather-alt
    +    - fighter-jet
    +    - file
    +    - file-alt
    +    - file-prescription
    +    - film
    +    - fire
    +    - fire-extinguisher
    +    - flag
    +    - flag-checkered
    +    - flask
    +    - futbol
    +    - gamepad
    +    - gavel
    +    - gem
    +    - gift
    +    - glass-martini
    +    - glasses
    +    - globe
    +    - graduation-cap
    +    - hat-wizard
    +    - hdd
    +    - headphones
    +    - headphones-alt
    +    - headset
    +    - heart
    +    - helicopter
    +    - highlighter
    +    - home
    +    - hospital
    +    - hourglass
    +    - image
    +    - images
    +    - industry
    +    - key
    +    - keyboard
    +    - laptop
    +    - leaf
    +    - lemon
    +    - life-ring
    +    - lightbulb
    +    - lock
    +    - lock-open
    +    - magic
    +    - magnet
    +    - map
    +    - map-marker
    +    - map-marker-alt
    +    - map-pin
    +    - map-signs
    +    - marker
    +    - medal
    +    - medkit
    +    - memory
    +    - microchip
    +    - microphone
    +    - microphone-alt
    +    - mobile
    +    - mobile-alt
    +    - money-bill
    +    - money-bill-alt
    +    - money-check
    +    - money-check-alt
    +    - moon
    +    - motorcycle
    +    - newspaper
    +    - paint-brush
    +    - paper-plane
    +    - paperclip
    +    - paste
    +    - paw
    +    - pen
    +    - pen-alt
    +    - pen-fancy
    +    - pen-nib
    +    - pencil-alt
    +    - phone
    +    - plane
    +    - plug
    +    - print
    +    - puzzle-piece
    +    - ring
    +    - road
    +    - rocket
    +    - ruler-combined
    +    - ruler-horizontal
    +    - ruler-vertical
    +    - save
    +    - school
    +    - screwdriver
    +    - scroll
    +    - search
    +    - shield-alt
    +    - shopping-bag
    +    - shopping-basket
    +    - shopping-cart
    +    - shower
    +    - skull-crossbones
    +    - snowflake
    +    - space-shuttle
    +    - star
    +    - sticky-note
    +    - stopwatch
    +    - stroopwafel
    +    - subway
    +    - suitcase
    +    - sun
    +    - tablet
    +    - tablet-alt
    +    - tachometer-alt
    +    - tag
    +    - tags
    +    - taxi
    +    - thumbtack
    +    - ticket-alt
    +    - toolbox
    +    - train
    +    - trash
    +    - trash-alt
    +    - tree
    +    - trophy
    +    - truck
    +    - tv
    +    - umbrella
    +    - university
    +    - unlock
    +    - unlock-alt
    +    - utensil-spoon
    +    - utensils
    +    - wallet
    +    - weight
    +    - wheelchair
    +    - wine-glass
    +    - wrench
    +  label: Objects
    +payments-shopping:
    +  icons:
    +    - alipay
    +    - amazon-pay
    +    - apple-pay
    +    - bell
    +    - bitcoin
    +    - bookmark
    +    - btc
    +    - bullhorn
    +    - camera
    +    - camera-retro
    +    - cart-arrow-down
    +    - cart-plus
    +    - cc-amazon-pay
    +    - cc-amex
    +    - cc-apple-pay
    +    - cc-diners-club
    +    - cc-discover
    +    - cc-jcb
    +    - cc-mastercard
    +    - cc-paypal
    +    - cc-stripe
    +    - cc-visa
    +    - certificate
    +    - credit-card
    +    - ethereum
    +    - gem
    +    - gift
    +    - google-wallet
    +    - handshake
    +    - heart
    +    - key
    +    - money-check
    +    - money-check-alt
    +    - paypal
    +    - shopping-bag
    +    - shopping-basket
    +    - shopping-cart
    +    - star
    +    - stripe
    +    - stripe-s
    +    - tag
    +    - tags
    +    - thumbs-down
    +    - thumbs-up
    +    - trophy
    +  label: Payments & Shopping
    +religion:
    +  icons:
    +    - ankh
    +    - atom
    +    - bible
    +    - church
    +    - cross
    +    - dharmachakra
    +    - dove
    +    - gopuram
    +    - hamsa
    +    - hanukiah
    +    - haykal
    +    - jedi
    +    - journal-whills
    +    - kaaba
    +    - khanda
    +    - menorah
    +    - mosque
    +    - om
    +    - pastafarianism
    +    - peace
    +    - place-of-worship
    +    - pray
    +    - praying-hands
    +    - quran
    +    - star-and-crescent
    +    - star-of-david
    +    - synagogue
    +    - torah
    +    - torii-gate
    +    - vihara
    +    - yin-yang
    +  label: Religion
    +shapes:
    +  icons:
    +    - bookmark
    +    - calendar
    +    - certificate
    +    - circle
    +    - cloud
    +    - comment
    +    - file
    +    - folder
    +    - heart
    +    - map-marker
    +    - play
    +    - shapes
    +    - square
    +    - star
    +  label: Shapes
    +spinners:
    +  icons:
    +    - asterisk
    +    - certificate
    +    - circle-notch
    +    - cog
    +    - compass
    +    - crosshairs
    +    - life-ring
    +    - snowflake
    +    - spinner
    +    - sun
    +    - sync
    +  label: Spinners
    +sports:
    +  icons:
    +    - baseball-ball
    +    - basketball-ball
    +    - bowling-ball
    +    - dumbbell
    +    - football-ball
    +    - futbol
    +    - golf-ball
    +    - hockey-puck
    +    - quidditch
    +    - table-tennis
    +    - volleyball-ball
    +  label: Sports
    +status:
    +  icons:
    +    - ban
    +    - battery-empty
    +    - battery-full
    +    - battery-half
    +    - battery-quarter
    +    - battery-three-quarters
    +    - bell
    +    - bell-slash
    +    - calendar
    +    - calendar-alt
    +    - calendar-check
    +    - calendar-minus
    +    - calendar-plus
    +    - calendar-times
    +    - cart-arrow-down
    +    - cart-plus
    +    - comment
    +    - comment-alt
    +    - comment-slash
    +    - compass
    +    - door-closed
    +    - door-open
    +    - exclamation
    +    - exclamation-circle
    +    - exclamation-triangle
    +    - eye
    +    - eye-slash
    +    - file
    +    - file-alt
    +    - folder
    +    - folder-open
    +    - gas-pump
    +    - info
    +    - info-circle
    +    - lightbulb
    +    - lock
    +    - lock-open
    +    - map-marker
    +    - map-marker-alt
    +    - microphone
    +    - microphone-alt
    +    - microphone-alt-slash
    +    - microphone-slash
    +    - minus
    +    - minus-circle
    +    - minus-square
    +    - parking
    +    - phone
    +    - phone-slash
    +    - plus
    +    - plus-circle
    +    - plus-square
    +    - print
    +    - question
    +    - question-circle
    +    - shield-alt
    +    - shopping-cart
    +    - sign-in-alt
    +    - sign-out-alt
    +    - signal
    +    - smoking-ban
    +    - star
    +    - star-half
    +    - star-half-alt
    +    - stream
    +    - thermometer-empty
    +    - thermometer-full
    +    - thermometer-half
    +    - thermometer-quarter
    +    - thermometer-three-quarters
    +    - thumbs-down
    +    - thumbs-up
    +    - tint
    +    - tint-slash
    +    - toggle-off
    +    - toggle-on
    +    - unlock
    +    - unlock-alt
    +    - user
    +    - user-alt
    +    - user-alt-slash
    +    - user-slash
    +    - video
    +    - video-slash
    +    - volume-down
    +    - volume-mute
    +    - volume-off
    +    - volume-up
    +    - wifi
    +  label: Status
    +travel:
    +  icons:
    +    - archway
    +    - atlas
    +    - bed
    +    - bus
    +    - bus-alt
    +    - cocktail
    +    - concierge-bell
    +    - dumbbell
    +    - glass-martini
    +    - glass-martini-alt
    +    - globe-africa
    +    - globe-americas
    +    - globe-asia
    +    - hot-tub
    +    - hotel
    +    - luggage-cart
    +    - map
    +    - map-marked
    +    - map-marked-alt
    +    - monument
    +    - passport
    +    - plane
    +    - plane-arrival
    +    - plane-departure
    +    - shuttle-van
    +    - spa
    +    - suitcase
    +    - suitcase-rolling
    +    - swimmer
    +    - swimming-pool
    +    - taxi
    +    - umbrella-beach
    +    - wine-glass
    +    - wine-glass-alt
    +  label: Travel
    +users-people:
    +  icons:
    +    - accessible-icon
    +    - address-book
    +    - address-card
    +    - bed
    +    - blind
    +    - chalkboard-teacher
    +    - child
    +    - female
    +    - frown
    +    - id-badge
    +    - id-card
    +    - id-card-alt
    +    - male
    +    - meh
    +    - poo
    +    - portrait
    +    - power-off
    +    - smile
    +    - street-view
    +    - user
    +    - user-alt
    +    - user-alt-slash
    +    - user-astronaut
    +    - user-check
    +    - user-circle
    +    - user-clock
    +    - user-cog
    +    - user-edit
    +    - user-friends
    +    - user-graduate
    +    - user-injured
    +    - user-lock
    +    - user-md
    +    - user-minus
    +    - user-ninja
    +    - user-plus
    +    - user-secret
    +    - user-shield
    +    - user-slash
    +    - user-tag
    +    - user-tie
    +    - user-times
    +    - users
    +    - wheelchair
    +  label: Users & People
    +vehicles:
    +  icons:
    +    - accessible-icon
    +    - ambulance
    +    - bicycle
    +    - bus
    +    - bus-alt
    +    - car
    +    - car-alt
    +    - car-crash
    +    - car-side
    +    - fighter-jet
    +    - helicopter
    +    - motorcycle
    +    - paper-plane
    +    - plane
    +    - rocket
    +    - ship
    +    - shopping-cart
    +    - shuttle-van
    +    - space-shuttle
    +    - subway
    +    - taxi
    +    - train
    +    - truck
    +    - truck-monster
    +    - truck-pickup
    +    - wheelchair
    +  label: Vehicles
    +writing:
    +  icons:
    +    - archive
    +    - book
    +    - bookmark
    +    - edit
    +    - envelope
    +    - envelope-open
    +    - eraser
    +    - file
    +    - file-alt
    +    - folder
    +    - folder-open
    +    - keyboard
    +    - newspaper
    +    - paper-plane
    +    - paperclip
    +    - paragraph
    +    - pen
    +    - pen-alt
    +    - pen-square
    +    - pencil-alt
    +    - quote-left
    +    - quote-right
    +    - sticky-note
    +    - thumbtack
    +  label: Writing
    diff --git a/htdocs/theme/common/fontawesome-5/metadata/icons.json b/htdocs/theme/common/fontawesome-5/metadata/icons.json
    new file mode 100644
    index 00000000000..789326b6bbd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/metadata/icons.json
    @@ -0,0 +1,42078 @@
    +{
    +  "500px": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f26e",
    +    "label": "500px",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"
    +      }
    +    }
    +  },
    +  "accessible-icon": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "accessibility",
    +        "handicap",
    +        "person",
    +        "wheelchair",
    +        "wheelchair-alt"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f368",
    +    "label": "Accessible Icon",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"
    +      }
    +    }
    +  },
    +  "accusoft": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f369",
    +    "label": "Accusoft",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821380,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2.7 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2 23.4-2.4 1.3-114.6 47.7-117.8 48.9-10.1 4-17.5 6.8-30.8-9.3m114.7-5.6s-115 50.4-117.5 51.6c-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2-2.3-.3-24.6-4.7-38-7.2m-326-181.3s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3v-1l-51.2-65.8\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2.7 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2 23.4-2.4 1.3-114.6 47.7-117.8 48.9-10.1 4-17.5 6.8-30.8-9.3m114.7-5.6s-115 50.4-117.5 51.6c-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2-2.3-.3-24.6-4.7-38-7.2m-326-181.3s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3v-1l-51.2-65.8"
    +      }
    +    }
    +  },
    +  "acquisitions-incorporated": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "d&d",
    +        "dnd",
    +        "fantasy",
    +        "game",
    +        "gaming",
    +        "tabletop"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f6af",
    +    "label": "Acquisitions Incorporated",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1539011290175,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 344.76 512\"><path d=\"M344 0c-.81 5.47-1.63 10.79-2.39 16.12-1.39 9.74-2.9 19.48-4.05 29.25-.35 2.96-1.21 4.32-4.3 4.33-20.61.11-41.21.14-61.82.53-18.76.35-37.58.28-56.23 2-13.42 1.24-23.28 12.67-18.88 26.64 8.55 27.11 27.65 69.1 36.37 89.45 65.72 154.14 61.43 156.99 84 158.56 6.67.46 13.4.07 20.43.07 1.39 9.4 2.66 18.04 4.05 27.51H225.17v-27c10.33 0 20.36-.12 30.38.06 3.52.06 5.05-.63 3.44-4.37-4.44-10.29-8.77-20.63-13.25-30.9-1.62-3.72-4.06-4.78-8.4-3.52-12.32 3.59-24.79 6.69-37.26 9.69-4.25 1.02-5.93 2.77-5.86 7.46.85 57.47.95 127.53 1 129.12.4 12.54 8.75 21.41 21.03 23.07.89.12 12.89 2.72 112.68 2.56 8.25-.01 8.41-.17 9.57 7.56 2.15 14.34 4.14 28.7 6.26 43.53-367.75 0-153.93.61-337.09 0-3.95-.01-6.08-.69-5.28-5.74 2.04-12.86 3.5-25.82 4.97-38.76.55-4.81 2.29-6.81 7.63-6.77 118.09.99 114.93.35 121.43-2.39 9.42-3.98 14.98-12.85 14.95-23.07-.12-42.93-.33-85.86-.25-128.79.01-3.87-1.16-5.99-4.56-6.84-15.64-3.92-31.31-7.71-47.58-11.7-5.23 12.27-10.39 24.37-15.66 36.7 1.83 3.35 28.38 2.93 35.28 2.93v27.64H4.34c1.03-8.61 1.77-16.81 3.23-24.88.25-1.41 3.53-3.14 5.47-3.22 8.46-.35 16.95-.29 25.43-.09 3.99.09 5.92-1.04 7.61-5.16 16.63-40.7 13.51-31.17 67.31-160.97 31.53-76.09 33.06-76.02 32.64-87.43-.69-18.56-25.37-22.26-37.65-22.11-30.04.38-38.45-.47-101.84-.47C-.62 6.11 2.37 18.54.16 5.32-.55 1.08 1.19.03 4.8.02m113.08 247.19c2.3 1.15 3.97 2.29 5.82 2.87 13.29 4.21 26.64 8.24 39.93 12.46 6.14 1.95 11.98 2.12 18.3.05 13.02-4.28 26.29-7.81 39.43-11.73 1.46-.44 2.74-1.44 3.93-2.09-6.71-17.37-13.12-34.15-19.67-50.88-8.88-22.67-17.63-60.32-26.98-82.81-1.53-.78-1.91 2.36-9.43 0-17.11 44.05-34.14 87.88-51.33 132.13z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "344.76",
    +          "512"
    +        ],
    +        "width": 344,
    +        "height": 512,
    +        "path": "M344 0c-.81 5.47-1.63 10.79-2.39 16.12-1.39 9.74-2.9 19.48-4.05 29.25-.35 2.96-1.21 4.32-4.3 4.33-20.61.11-41.21.14-61.82.53-18.76.35-37.58.28-56.23 2-13.42 1.24-23.28 12.67-18.88 26.64 8.55 27.11 27.65 69.1 36.37 89.45 65.72 154.14 61.43 156.99 84 158.56 6.67.46 13.4.07 20.43.07 1.39 9.4 2.66 18.04 4.05 27.51H225.17v-27c10.33 0 20.36-.12 30.38.06 3.52.06 5.05-.63 3.44-4.37-4.44-10.29-8.77-20.63-13.25-30.9-1.62-3.72-4.06-4.78-8.4-3.52-12.32 3.59-24.79 6.69-37.26 9.69-4.25 1.02-5.93 2.77-5.86 7.46.85 57.47.95 127.53 1 129.12.4 12.54 8.75 21.41 21.03 23.07.89.12 12.89 2.72 112.68 2.56 8.25-.01 8.41-.17 9.57 7.56 2.15 14.34 4.14 28.7 6.26 43.53-367.75 0-153.93.61-337.09 0-3.95-.01-6.08-.69-5.28-5.74 2.04-12.86 3.5-25.82 4.97-38.76.55-4.81 2.29-6.81 7.63-6.77 118.09.99 114.93.35 121.43-2.39 9.42-3.98 14.98-12.85 14.95-23.07-.12-42.93-.33-85.86-.25-128.79.01-3.87-1.16-5.99-4.56-6.84-15.64-3.92-31.31-7.71-47.58-11.7-5.23 12.27-10.39 24.37-15.66 36.7 1.83 3.35 28.38 2.93 35.28 2.93v27.64H4.34c1.03-8.61 1.77-16.81 3.23-24.88.25-1.41 3.53-3.14 5.47-3.22 8.46-.35 16.95-.29 25.43-.09 3.99.09 5.92-1.04 7.61-5.16 16.63-40.7 13.51-31.17 67.31-160.97 31.53-76.09 33.06-76.02 32.64-87.43-.69-18.56-25.37-22.26-37.65-22.11-30.04.38-38.45-.47-101.84-.47C-.62 6.11 2.37 18.54.16 5.32-.55 1.08 1.19.03 4.8.02m113.08 247.19c2.3 1.15 3.97 2.29 5.82 2.87 13.29 4.21 26.64 8.24 39.93 12.46 6.14 1.95 11.98 2.12 18.3.05 13.02-4.28 26.29-7.81 39.43-11.73 1.46-.44 2.74-1.44 3.93-2.09-6.71-17.37-13.12-34.15-19.67-50.88-8.88-22.67-17.63-60.32-26.98-82.81-1.53-.78-1.91 2.36-9.43 0-17.11 44.05-34.14 87.88-51.33 132.13z"
    +      }
    +    }
    +  },
    +  "ad": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f641",
    +    "label": "Ad",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320869,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"
    +      }
    +    }
    +  },
    +  "address-book": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2b9",
    +    "label": "Address Book",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365064,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"
    +      },
    +      "regular": {
    +        "last_modified": 1525209365040,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"
    +      }
    +    }
    +  },
    +  "address-card": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2bb",
    +    "label": "Address Card",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365064,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"
    +      },
    +      "regular": {
    +        "last_modified": 1525209365041,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z"
    +      }
    +    }
    +  },
    +  "adjust": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "contrast"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f042",
    +    "label": "adjust",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"
    +      }
    +    }
    +  },
    +  "adn": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f170",
    +    "label": "App.net",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"
    +      }
    +    }
    +  },
    +  "adversal": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f36a",
    +    "label": "Adversal",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"
    +      }
    +    }
    +  },
    +  "affiliatetheme": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f36b",
    +    "label": "affiliatetheme",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"
    +      }
    +    }
    +  },
    +  "air-freshener": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5d0",
    +    "label": "Air Freshener",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831512,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z"
    +      }
    +    }
    +  },
    +  "algolia": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f36c",
    +    "label": "Algolia",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z"
    +      }
    +    }
    +  },
    +  "align-center": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "middle",
    +        "text"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f037",
    +    "label": "align-center",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M352 44v40c0 8.837-7.163 16-16 16H112c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h224c8.837 0 16 7.163 16 16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm320-200H112c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M352 44v40c0 8.837-7.163 16-16 16H112c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h224c8.837 0 16 7.163 16 16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm320-200H112c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"
    +      }
    +    }
    +  },
    +  "align-justify": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "text"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f039",
    +    "label": "align-justify",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm16 144h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0-128h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm16 144h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0-128h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"
    +      }
    +    }
    +  },
    +  "align-left": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "text"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f036",
    +    "label": "align-left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M288 44v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16zM0 172v40c0 8.837 7.163 16 16 16h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16zm16 312h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm256-200H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M288 44v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16zM0 172v40c0 8.837 7.163 16 16 16h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16zm16 312h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm256-200H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"
    +      }
    +    }
    +  },
    +  "align-right": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "text"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f038",
    +    "label": "align-right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M160 84V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H176c-8.837 0-16-7.163-16-16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M160 84V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H176c-8.837 0-16-7.163-16-16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"
    +      }
    +    }
    +  },
    +  "alipay": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f642",
    +    "label": "Alipay",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1535388320780,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"
    +      }
    +    }
    +  },
    +  "allergies": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "freckles",
    +        "hand",
    +        "intolerances",
    +        "pox",
    +        "spots"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f461",
    +    "label": "Allergies",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821440,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"
    +      }
    +    }
    +  },
    +  "amazon": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f270",
    +    "label": "Amazon",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"
    +      }
    +    }
    +  },
    +  "amazon-pay": {
    +    "changes": [
    +      "5.0.2"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f42c",
    +    "label": "Amazon Pay",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1513713060429,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 611.2 512\"><path d=\"M0 325.2c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.7 20.4 83.2 35.6 127.4 46.3 20.9 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.4-6.7 110.9-20.8 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-2.8 2.8-6.3 5.1-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.6 7.9-49.6 13.8-75.1 17.6-17.6 2.6-35.4 4.4-53.2 4.8-.8 0-1.7.2-2.5.3H294c-.8-.1-1.7-.3-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.7-33.7-2.6-50.4-5.3-27.4-4.5-54.2-11.4-80.4-20.9-54.1-19.6-102.6-48.6-145.6-87-1.8-1.6-3-3.8-4.4-5.7v-2zM158 65c-1.4.2-2.9.4-4.3.6-14 1.7-26.6 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.5-.4-1-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6H87.8c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3V215c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zm-47.4 41.9c0-1.5.4-2.4 1.7-3.3 13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-1.2-.9-1.7-1.7-1.7-3.3.1-14.1 0-28.1 0-42.2 0-14 .1-28 0-42.1zM316.3 65c-1 .1-2 .3-2.9.4-9.8.5-19.4 1.7-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9 0 .4-.1.9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.5-21.1-4.3-32-4.9-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4.4-.4.9-.7 1.6-1.1.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0 2.7-.1 4.5-1.9 4.8-4.7.1-.9.1-1.9.1-2.8v-106c0-4.3-.2-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7c0 1.3-.4 2.2-1.5 3-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8-6.3-2.5-10.4-6.9-12.4-13.3s-2-13-.1-19.4c2.5-8.3 8.4-13 16.4-15.6 8.1-2.6 16.5-3 24.8-2.2 8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3-.1 4.7-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3-6.8-2.3-13.9-3.3-21-3.9-13.1-1.1-26.2-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 1-2.8 2.1-3.7 3.5-.7 1.1-.9 2.8-.5 4 .4 1.5 2.1 1.9 3.6 1.8.7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.8.3 9.7 1.4 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.7-.4 3.6-1.3 4.8-2.5 4.4-4.3 8.9-8.6 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM479.1 198.9c-12.9-35.7-25.8-71.5-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5.5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97.1 59.1 145.5 1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5.1 1.4-10.2 1.6-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9.1 5.5 2 8 7.4 8.9 5.6 1 11.3 1.9 16.9 2 17.1.4 30.7-6.5 39.5-21.4 3.5-5.9 6.7-12.1 9.2-18.4 23.7-59.8 47.1-119.7 70.6-179.6.7-1.8 1.3-3.6 1.6-5.5.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-3.7 0-6.3 1.6-7.7 5.2-.5 1.4-1.1 2.7-1.6 4.1-11.6 33.3-23.2 66.6-34.8 100-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "611.2",
    +          "512"
    +        ],
    +        "width": 611,
    +        "height": 512,
    +        "path": "M0 325.2c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.7 20.4 83.2 35.6 127.4 46.3 20.9 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.4-6.7 110.9-20.8 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-2.8 2.8-6.3 5.1-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.6 7.9-49.6 13.8-75.1 17.6-17.6 2.6-35.4 4.4-53.2 4.8-.8 0-1.7.2-2.5.3H294c-.8-.1-1.7-.3-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.7-33.7-2.6-50.4-5.3-27.4-4.5-54.2-11.4-80.4-20.9-54.1-19.6-102.6-48.6-145.6-87-1.8-1.6-3-3.8-4.4-5.7v-2zM158 65c-1.4.2-2.9.4-4.3.6-14 1.7-26.6 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.5-.4-1-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6H87.8c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3V215c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zm-47.4 41.9c0-1.5.4-2.4 1.7-3.3 13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-1.2-.9-1.7-1.7-1.7-3.3.1-14.1 0-28.1 0-42.2 0-14 .1-28 0-42.1zM316.3 65c-1 .1-2 .3-2.9.4-9.8.5-19.4 1.7-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9 0 .4-.1.9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.5-21.1-4.3-32-4.9-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4.4-.4.9-.7 1.6-1.1.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0 2.7-.1 4.5-1.9 4.8-4.7.1-.9.1-1.9.1-2.8v-106c0-4.3-.2-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7c0 1.3-.4 2.2-1.5 3-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8-6.3-2.5-10.4-6.9-12.4-13.3s-2-13-.1-19.4c2.5-8.3 8.4-13 16.4-15.6 8.1-2.6 16.5-3 24.8-2.2 8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3-.1 4.7-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3-6.8-2.3-13.9-3.3-21-3.9-13.1-1.1-26.2-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 1-2.8 2.1-3.7 3.5-.7 1.1-.9 2.8-.5 4 .4 1.5 2.1 1.9 3.6 1.8.7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.8.3 9.7 1.4 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.7-.4 3.6-1.3 4.8-2.5 4.4-4.3 8.9-8.6 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM479.1 198.9c-12.9-35.7-25.8-71.5-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5.5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97.1 59.1 145.5 1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5.1 1.4-10.2 1.6-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9.1 5.5 2 8 7.4 8.9 5.6 1 11.3 1.9 16.9 2 17.1.4 30.7-6.5 39.5-21.4 3.5-5.9 6.7-12.1 9.2-18.4 23.7-59.8 47.1-119.7 70.6-179.6.7-1.8 1.3-3.6 1.6-5.5.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-3.7 0-6.3 1.6-7.7 5.2-.5 1.4-1.1 2.7-1.6 4.1-11.6 33.3-23.2 66.6-34.8 100-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"
    +      }
    +    }
    +  },
    +  "ambulance": {
    +    "changes": [
    +      "3",
    +      "5.0.0",
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "help",
    +        "machine",
    +        "support",
    +        "vehicle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0f9",
    +    "label": "ambulance",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821441,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"
    +      }
    +    }
    +  },
    +  "american-sign-language-interpreting": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2a3",
    +    "label": "American Sign Language Interpreting",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"
    +      }
    +    }
    +  },
    +  "amilia": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f36d",
    +    "label": "Amilia",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm-87.9 327.7c0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5V380c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm-87.9 327.7c0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5V380c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7"
    +      }
    +    }
    +  },
    +  "anchor": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "link"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f13d",
    +    "label": "Anchor",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"
    +      }
    +    }
    +  },
    +  "android": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "robot"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f17b",
    +    "label": "Android",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z"
    +      }
    +    }
    +  },
    +  "angellist": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f209",
    +    "label": "AngelList",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"
    +      }
    +    }
    +  },
    +  "angle-double-down": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrows"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f103",
    +    "label": "Angle Double Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"
    +      }
    +    }
    +  },
    +  "angle-double-left": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrows",
    +        "back",
    +        "laquo",
    +        "previous",
    +        "quote"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f100",
    +    "label": "Angle Double Left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"
    +      }
    +    }
    +  },
    +  "angle-double-right": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrows",
    +        "forward",
    +        "next",
    +        "quote",
    +        "raquo"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f101",
    +    "label": "Angle Double Right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"
    +      }
    +    }
    +  },
    +  "angle-double-up": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrows"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f102",
    +    "label": "Angle Double Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"
    +      }
    +    }
    +  },
    +  "angle-down": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f107",
    +    "label": "angle-down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"
    +      }
    +    }
    +  },
    +  "angle-left": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "back",
    +        "previous"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f104",
    +    "label": "angle-left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"
    +      }
    +    }
    +  },
    +  "angle-right": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "forward",
    +        "next"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f105",
    +    "label": "angle-right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"
    +      }
    +    }
    +  },
    +  "angle-up": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f106",
    +    "label": "angle-up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"
    +      }
    +    }
    +  },
    +  "angry": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "disapprove",
    +        "emoticon",
    +        "face",
    +        "mad",
    +        "upset"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f556",
    +    "label": "Angry Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111644,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111607,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z"
    +      }
    +    }
    +  },
    +  "angrycreative": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f36e",
    +    "label": "Angry Creative",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"
    +      }
    +    }
    +  },
    +  "angular": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f420",
    +    "label": "Angular",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1511194600653,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 415.6 512\"><path d=\"M169.7 268.1h76.2l-38.1-91.6-38.1 91.6zM207.8 32L0 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7L207.8 32zM338 373.8h-48.6l-26.2-65.4H152.6l-26.2 65.4H77.7L207.8 81.5 338 373.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "415.6",
    +          "512"
    +        ],
    +        "width": 415,
    +        "height": 512,
    +        "path": "M169.7 268.1h76.2l-38.1-91.6-38.1 91.6zM207.8 32L0 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7L207.8 32zM338 373.8h-48.6l-26.2-65.4H152.6l-26.2 65.4H77.7L207.8 81.5 338 373.8z"
    +      }
    +    }
    +  },
    +  "ankh": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "amulet",
    +        "copper",
    +        "coptic christianity",
    +        "copts",
    +        "crux ansata",
    +        "egyptian",
    +        "venus"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f644",
    +    "label": "Ankh",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320870,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"
    +      }
    +    }
    +  },
    +  "app-store": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f36f",
    +    "label": "App Store",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821381,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z"
    +      }
    +    }
    +  },
    +  "app-store-ios": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f370",
    +    "label": "iOS App Store",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1507838931322,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"
    +      }
    +    }
    +  },
    +  "apper": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f371",
    +    "label": "Apper Systems AB",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z"
    +      }
    +    }
    +  },
    +  "apple": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0",
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "food",
    +        "fruit",
    +        "mac",
    +        "osx"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f179",
    +    "label": "Apple",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1519917094301,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 376.5 512\"><path d=\"M314.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C59.3 141.2 0 184.8 0 273.5c0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "376.5",
    +          "512"
    +        ],
    +        "width": 376,
    +        "height": 512,
    +        "path": "M314.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C59.3 141.2 0 184.8 0 273.5c0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"
    +      }
    +    }
    +  },
    +  "apple-alt": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "fall",
    +        "food",
    +        "fruit",
    +        "fuji",
    +        "macintosh",
    +        "seasonal"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5d1",
    +    "label": "Fruit Apple",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290226,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"
    +      }
    +    }
    +  },
    +  "apple-pay": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f415",
    +    "label": "Apple Pay",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1507669930671,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z"
    +      }
    +    }
    +  },
    +  "archive": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "box",
    +        "package",
    +        "storage"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f187",
    +    "label": "Archive",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821441,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"
    +      }
    +    }
    +  },
    +  "archway": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arc",
    +        "monument",
    +        "road",
    +        "street"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f557",
    +    "label": "Archway",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111645,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "arrow-alt-circle-down": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow-circle-o-down",
    +        "download"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f358",
    +    "label": "Alternate Arrow Circle Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z"
    +      }
    +    }
    +  },
    +  "arrow-alt-circle-left": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow-circle-o-left",
    +        "back",
    +        "previous"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f359",
    +    "label": "Alternate Arrow Circle Left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z"
    +      }
    +    }
    +  },
    +  "arrow-alt-circle-right": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow-circle-o-right",
    +        "forward",
    +        "next"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f35a",
    +    "label": "Alternate Arrow Circle Right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z"
    +      }
    +    }
    +  },
    +  "arrow-alt-circle-up": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow-circle-o-up"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f35b",
    +    "label": "Alternate Arrow Circle Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z"
    +      }
    +    }
    +  },
    +  "arrow-circle-down": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "download"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0ab",
    +    "label": "Arrow Circle Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"
    +      }
    +    }
    +  },
    +  "arrow-circle-left": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "back",
    +        "previous"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0a8",
    +    "label": "Arrow Circle Left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"
    +      }
    +    }
    +  },
    +  "arrow-circle-right": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "forward",
    +        "next"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0a9",
    +    "label": "Arrow Circle Right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"
    +      }
    +    }
    +  },
    +  "arrow-circle-up": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0aa",
    +    "label": "Arrow Circle Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"
    +      }
    +    }
    +  },
    +  "arrow-down": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "download"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f063",
    +    "label": "arrow-down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"
    +      }
    +    }
    +  },
    +  "arrow-left": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "back",
    +        "previous"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f060",
    +    "label": "arrow-left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"
    +      }
    +    }
    +  },
    +  "arrow-right": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "forward",
    +        "next"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f061",
    +    "label": "arrow-right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"
    +      }
    +    }
    +  },
    +  "arrow-up": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f062",
    +    "label": "arrow-up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"
    +      }
    +    }
    +  },
    +  "arrows-alt": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "arrows",
    +        "bigger",
    +        "enlarge",
    +        "expand",
    +        "fullscreen",
    +        "move",
    +        "position",
    +        "reorder",
    +        "resize"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0b2",
    +    "label": "Alternate Arrows",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"
    +      }
    +    }
    +  },
    +  "arrows-alt-h": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrows-h",
    +        "resize"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f337",
    +    "label": "Alternate Arrows Horizontal",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"
    +      }
    +    }
    +  },
    +  "arrows-alt-v": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrows-v",
    +        "resize"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f338",
    +    "label": "Alternate Arrows Vertical",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"
    +      }
    +    }
    +  },
    +  "assistive-listening-systems": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2a2",
    +    "label": "Assistive Listening Systems",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"
    +      }
    +    }
    +  },
    +  "asterisk": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "details"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f069",
    +    "label": "asterisk",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"
    +      }
    +    }
    +  },
    +  "asymmetrik": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f372",
    +    "label": "Asymmetrik, Ltd.",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"
    +      }
    +    }
    +  },
    +  "at": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "e-mail",
    +        "email"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1fa",
    +    "label": "At",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"
    +      }
    +    }
    +  },
    +  "atlas": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "book",
    +        "directions",
    +        "geography",
    +        "map",
    +        "wayfinding"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f558",
    +    "label": "Atlas",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111646,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"
    +      }
    +    }
    +  },
    +  "atom": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "atheism",
    +        "chemistry",
    +        "science"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5d2",
    +    "label": "Atom",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831513,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "audible": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f373",
    +    "label": "Audible",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z"
    +      }
    +    }
    +  },
    +  "audio-description": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f29e",
    +    "label": "Audio Description",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"
    +      }
    +    }
    +  },
    +  "autoprefixer": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f41c",
    +    "label": "Autoprefixer",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1508787003039,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z"
    +      }
    +    }
    +  },
    +  "avianex": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f374",
    +    "label": "avianex",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"
    +      }
    +    }
    +  },
    +  "aviato": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f421",
    +    "label": "Aviato",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821381,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"
    +      }
    +    }
    +  },
    +  "award": {
    +    "changes": [
    +      "5.1.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "honor",
    +        "praise",
    +        "prize",
    +        "recognition",
    +        "ribbon"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f559",
    +    "label": "Award",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831513,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"
    +      }
    +    }
    +  },
    +  "aws": {
    +    "changes": [
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f375",
    +    "label": "Amazon Web Services (AWS)",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529514897188,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z"
    +      }
    +    }
    +  },
    +  "backspace": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "command",
    +        "delete",
    +        "keyboard",
    +        "undo"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f55a",
    +    "label": "Backspace",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111647,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"
    +      }
    +    }
    +  },
    +  "backward": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "previous",
    +        "rewind"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f04a",
    +    "label": "backward",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"
    +      }
    +    }
    +  },
    +  "balance-scale": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "balanced",
    +        "justice",
    +        "legal",
    +        "measure",
    +        "weight"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f24e",
    +    "label": "Balance Scale",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154563,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "ban": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "abort",
    +        "ban",
    +        "block",
    +        "cancel",
    +        "delete",
    +        "hide",
    +        "prohibit",
    +        "remove",
    +        "stop",
    +        "trash"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f05e",
    +    "label": "ban",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"
    +      }
    +    }
    +  },
    +  "band-aid": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bandage",
    +        "boo boo",
    +        "ouch"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f462",
    +    "label": "Band-Aid",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821441,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"
    +      }
    +    }
    +  },
    +  "bandcamp": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2d5",
    +    "label": "Bandcamp",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z"
    +      }
    +    }
    +  },
    +  "barcode": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "scan"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f02a",
    +    "label": "barcode",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"
    +      }
    +    }
    +  },
    +  "bars": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "checklist",
    +        "drag",
    +        "hamburger",
    +        "list",
    +        "menu",
    +        "nav",
    +        "navigation",
    +        "ol",
    +        "reorder",
    +        "settings",
    +        "todo",
    +        "ul"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0c9",
    +    "label": "Bars",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"
    +      }
    +    }
    +  },
    +  "baseball-ball": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f433",
    +    "label": "Baseball Ball",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527985,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"
    +      }
    +    }
    +  },
    +  "basketball-ball": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f434",
    +    "label": "Basketball Ball",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527986,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"
    +      }
    +    }
    +  },
    +  "bath": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2cd",
    +    "label": "Bath",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"
    +      }
    +    }
    +  },
    +  "battery-empty": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "power",
    +        "status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f244",
    +    "label": "Battery Empty",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"
    +      }
    +    }
    +  },
    +  "battery-full": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "power",
    +        "status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f240",
    +    "label": "Battery Full",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"
    +      }
    +    }
    +  },
    +  "battery-half": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "power",
    +        "status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f242",
    +    "label": "Battery 1/2 Full",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"
    +      }
    +    }
    +  },
    +  "battery-quarter": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "power",
    +        "status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f243",
    +    "label": "Battery 1/4 Full",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"
    +      }
    +    }
    +  },
    +  "battery-three-quarters": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "power",
    +        "status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f241",
    +    "label": "Battery 3/4 Full",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"
    +      }
    +    }
    +  },
    +  "bed": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "lodging",
    +        "sleep",
    +        "travel"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f236",
    +    "label": "Bed",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111647,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"
    +      }
    +    }
    +  },
    +  "beer": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "alcohol",
    +        "bar",
    +        "beverage",
    +        "drink",
    +        "liquor",
    +        "mug",
    +        "stein"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0fc",
    +    "label": "beer",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"
    +      }
    +    }
    +  },
    +  "behance": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1b4",
    +    "label": "Behance",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z"
    +      }
    +    }
    +  },
    +  "behance-square": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1b5",
    +    "label": "Behance Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426581996,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z"
    +      }
    +    }
    +  },
    +  "bell": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "alert",
    +        "notification",
    +        "reminder"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0f3",
    +    "label": "bell",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831515,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"
    +      },
    +      "regular": {
    +        "last_modified": 1532362831475,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z"
    +      }
    +    }
    +  },
    +  "bell-slash": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1f6",
    +    "label": "Bell Slash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831515,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"
    +      },
    +      "regular": {
    +        "last_modified": 1532362831475,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"
    +      }
    +    }
    +  },
    +  "bezier-curve": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "curves",
    +        "illustrator",
    +        "lines",
    +        "path",
    +        "vector"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f55b",
    +    "label": "Bezier Curve",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111648,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "bible": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "book",
    +        "catholicism",
    +        "christianity"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f647",
    +    "label": "Bible",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320871,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"
    +      }
    +    }
    +  },
    +  "bicycle": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bike",
    +        "gears",
    +        "transportation",
    +        "vehicle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f206",
    +    "label": "Bicycle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"
    +      }
    +    }
    +  },
    +  "bimobject": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f378",
    +    "label": "BIMobject",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z"
    +      }
    +    }
    +  },
    +  "binoculars": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1e5",
    +    "label": "Binoculars",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831516,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"
    +      }
    +    }
    +  },
    +  "birthday-cake": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1fd",
    +    "label": "Birthday Cake",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"
    +      }
    +    }
    +  },
    +  "bitbucket": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bitbucket-square",
    +        "git"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f171",
    +    "label": "Bitbucket",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1505492030000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M23.1 32C14.2 31.9 7 38.9 6.9 47.8c0 .9.1 1.8.2 2.8L74.9 462c1.7 10.4 10.7 18 21.2 18.1h325.1c7.9.1 14.7-5.6 16-13.4l67.8-416c1.4-8.7-4.5-16.9-13.2-18.3-.9-.1-1.8-.2-2.8-.2L23.1 32zm285.3 297.3H204.6l-28.1-146.8h157l-25.1 146.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M23.1 32C14.2 31.9 7 38.9 6.9 47.8c0 .9.1 1.8.2 2.8L74.9 462c1.7 10.4 10.7 18 21.2 18.1h325.1c7.9.1 14.7-5.6 16-13.4l67.8-416c1.4-8.7-4.5-16.9-13.2-18.3-.9-.1-1.8-.2-2.8-.2L23.1 32zm285.3 297.3H204.6l-28.1-146.8h157l-25.1 146.8z"
    +      }
    +    }
    +  },
    +  "bitcoin": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f379",
    +    "label": "Bitcoin",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z"
    +      }
    +    }
    +  },
    +  "bity": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f37a",
    +    "label": "Bity",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821381,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z"
    +      }
    +    }
    +  },
    +  "black-tie": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f27e",
    +    "label": "Font Awesome Black Tie",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z"
    +      }
    +    }
    +  },
    +  "blackberry": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f37b",
    +    "label": "BlackBerry",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z"
    +      }
    +    }
    +  },
    +  "blender": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f517",
    +    "label": "Blender",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154563,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"
    +      }
    +    }
    +  },
    +  "blender-phone": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "appliance",
    +        "fantasy",
    +        "silly"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6b6",
    +    "label": "Blender Phone",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011827890,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "blind": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f29d",
    +    "label": "Blind",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"
    +      }
    +    }
    +  },
    +  "blogger": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f37c",
    +    "label": "Blogger",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"
    +      }
    +    }
    +  },
    +  "blogger-b": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f37d",
    +    "label": "Blogger B",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"
    +      }
    +    }
    +  },
    +  "bluetooth": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f293",
    +    "label": "Bluetooth",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"
    +      }
    +    }
    +  },
    +  "bluetooth-b": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f294",
    +    "label": "Bluetooth",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"
    +      }
    +    }
    +  },
    +  "bold": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f032",
    +    "label": "bold",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z"
    +      }
    +    }
    +  },
    +  "bolt": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "electricity",
    +        "lightning",
    +        "weather",
    +        "zap"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0e7",
    +    "label": "Lightning Bolt",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M295.973 160H180.572L215.19 30.184C219.25 14.956 207.756 0 192 0H56C43.971 0 33.8 8.905 32.211 20.828l-31.996 240C-1.704 275.217 9.504 288 24.004 288h118.701L96.646 482.466C93.05 497.649 104.659 512 119.992 512c8.35 0 16.376-4.374 20.778-11.978l175.973-303.997c9.244-15.967-2.288-36.025-20.77-36.025z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M295.973 160H180.572L215.19 30.184C219.25 14.956 207.756 0 192 0H56C43.971 0 33.8 8.905 32.211 20.828l-31.996 240C-1.704 275.217 9.504 288 24.004 288h118.701L96.646 482.466C93.05 497.649 104.659 512 119.992 512c8.35 0 16.376-4.374 20.778-11.978l175.973-303.997c9.244-15.967-2.288-36.025-20.77-36.025z"
    +      }
    +    }
    +  },
    +  "bomb": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1e2",
    +    "label": "Bomb",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"
    +      }
    +    }
    +  },
    +  "bone": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5d7",
    +    "label": "Bone",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831517,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"
    +      }
    +    }
    +  },
    +  "bong": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "aparatus",
    +        "cannabis",
    +        "marijuana",
    +        "pipe",
    +        "smoke",
    +        "smoking"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f55c",
    +    "label": "Bong",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111648,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"
    +      }
    +    }
    +  },
    +  "book": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "documentation",
    +        "read"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f02d",
    +    "label": "book",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"
    +      }
    +    }
    +  },
    +  "book-dead": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "crossbones",
    +        "d&d",
    +        "dark arts",
    +        "death",
    +        "dnd",
    +        "documentation",
    +        "evil",
    +        "fantasy",
    +        "halloween",
    +        "holiday",
    +        "read",
    +        "skull",
    +        "spell"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6b7",
    +    "label": "Book of the Dead",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290228,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M272 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.18 0 80 28.65 80 64 0 20.87-12.68 39.23-32 50.91V184c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-13.09c-19.32-11.68-32-30.04-32-50.91 0-35.35 35.82-64 80-64zM129.05 233.85a7.996 7.996 0 0 1-4.2-10.5l6.29-14.7a7.995 7.995 0 0 1 10.51-4.2L240 246.6l98.35-42.15c4.06-1.74 8.77.14 10.51 4.2l6.29 14.7a7.996 7.996 0 0 1-4.2 10.5L280.6 264l70.34 30.15a7.996 7.996 0 0 1 4.2 10.5l-6.29 14.7a8.008 8.008 0 0 1-10.51 4.21L240 281.4l-98.35 42.15a8.003 8.003 0 0 1-10.51-4.21l-6.29-14.7a7.996 7.996 0 0 1 4.2-10.5L199.4 264l-70.35-30.15zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64zM208 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M272 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.18 0 80 28.65 80 64 0 20.87-12.68 39.23-32 50.91V184c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-13.09c-19.32-11.68-32-30.04-32-50.91 0-35.35 35.82-64 80-64zM129.05 233.85a7.996 7.996 0 0 1-4.2-10.5l6.29-14.7a7.995 7.995 0 0 1 10.51-4.2L240 246.6l98.35-42.15c4.06-1.74 8.77.14 10.51 4.2l6.29 14.7a7.996 7.996 0 0 1-4.2 10.5L280.6 264l70.34 30.15a7.996 7.996 0 0 1 4.2 10.5l-6.29 14.7a8.008 8.008 0 0 1-10.51 4.21L240 281.4l-98.35 42.15a8.003 8.003 0 0 1-10.51-4.21l-6.29-14.7a7.996 7.996 0 0 1 4.2-10.5L199.4 264l-70.35-30.15zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64zM208 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16z"
    +      }
    +    }
    +  },
    +  "book-open": {
    +    "changes": [
    +      "5.0.13",
    +      "5.1.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "flyer",
    +        "notebook",
    +        "open book",
    +        "pamphlet",
    +        "reading"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f518",
    +    "label": "Book Open",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529514897312,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"
    +      }
    +    }
    +  },
    +  "book-reader": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "library"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5da",
    +    "label": "Book Reader",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831517,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"
    +      }
    +    }
    +  },
    +  "bookmark": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "save"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f02e",
    +    "label": "bookmark",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"
    +      }
    +    }
    +  },
    +  "bowling-ball": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f436",
    +    "label": "Bowling Ball",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527987,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      }
    +    }
    +  },
    +  "box": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "package"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f466",
    +    "label": "Box",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821444,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"
    +      }
    +    }
    +  },
    +  "box-open": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f49e",
    +    "label": "Box Open",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821443,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9zm585.1 102.8L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9zm585.1 102.8L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9z"
    +      }
    +    }
    +  },
    +  "boxes": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f468",
    +    "label": "Boxes",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821444,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"
    +      }
    +    }
    +  },
    +  "braille": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2a1",
    +    "label": "Braille",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"
    +      }
    +    }
    +  },
    +  "brain": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cerebellum",
    +        "gray matter",
    +        "intellect",
    +        "medulla oblongata",
    +        "mind",
    +        "noodle",
    +        "wit"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5dc",
    +    "label": "Brain",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831518,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M208 0c-29.87 0-54.74 20.55-61.8 48.22-.75-.02-1.45-.22-2.2-.22-35.34 0-64 28.65-64 64 0 4.84.64 9.51 1.66 14.04C52.54 138 32 166.57 32 200c0 12.58 3.16 24.32 8.34 34.91C16.34 248.72 0 274.33 0 304c0 33.34 20.42 61.88 49.42 73.89-.9 4.57-1.42 9.28-1.42 14.11 0 39.76 32.23 72 72 72 4.12 0 8.1-.55 12.03-1.21C141.61 491.31 168.25 512 200 512c39.77 0 72-32.24 72-72V205.45c-10.91 8.98-23.98 15.45-38.36 18.39-4.97 1.02-9.64-2.82-9.64-7.89v-16.18c0-3.57 2.35-6.78 5.8-7.66 24.2-6.16 42.2-27.95 42.2-54.04V64c0-35.35-28.66-64-64-64zm368 304c0-29.67-16.34-55.28-40.34-69.09 5.17-10.59 8.34-22.33 8.34-34.91 0-33.43-20.54-62-49.66-73.96 1.02-4.53 1.66-9.2 1.66-14.04 0-35.35-28.66-64-64-64-.75 0-1.45.2-2.2.22C422.74 20.55 397.87 0 368 0c-35.34 0-64 28.65-64 64v74.07c0 26.09 17.99 47.88 42.2 54.04 3.46.88 5.8 4.09 5.8 7.66v16.18c0 5.07-4.68 8.91-9.64 7.89-14.38-2.94-27.44-9.41-38.36-18.39V440c0 39.76 32.23 72 72 72 31.75 0 58.39-20.69 67.97-49.21 3.93.67 7.91 1.21 12.03 1.21 39.77 0 72-32.24 72-72 0-4.83-.52-9.54-1.42-14.11 29-12.01 49.42-40.55 49.42-73.89z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M208 0c-29.87 0-54.74 20.55-61.8 48.22-.75-.02-1.45-.22-2.2-.22-35.34 0-64 28.65-64 64 0 4.84.64 9.51 1.66 14.04C52.54 138 32 166.57 32 200c0 12.58 3.16 24.32 8.34 34.91C16.34 248.72 0 274.33 0 304c0 33.34 20.42 61.88 49.42 73.89-.9 4.57-1.42 9.28-1.42 14.11 0 39.76 32.23 72 72 72 4.12 0 8.1-.55 12.03-1.21C141.61 491.31 168.25 512 200 512c39.77 0 72-32.24 72-72V205.45c-10.91 8.98-23.98 15.45-38.36 18.39-4.97 1.02-9.64-2.82-9.64-7.89v-16.18c0-3.57 2.35-6.78 5.8-7.66 24.2-6.16 42.2-27.95 42.2-54.04V64c0-35.35-28.66-64-64-64zm368 304c0-29.67-16.34-55.28-40.34-69.09 5.17-10.59 8.34-22.33 8.34-34.91 0-33.43-20.54-62-49.66-73.96 1.02-4.53 1.66-9.2 1.66-14.04 0-35.35-28.66-64-64-64-.75 0-1.45.2-2.2.22C422.74 20.55 397.87 0 368 0c-35.34 0-64 28.65-64 64v74.07c0 26.09 17.99 47.88 42.2 54.04 3.46.88 5.8 4.09 5.8 7.66v16.18c0 5.07-4.68 8.91-9.64 7.89-14.38-2.94-27.44-9.41-38.36-18.39V440c0 39.76 32.23 72 72 72 31.75 0 58.39-20.69 67.97-49.21 3.93.67 7.91 1.21 12.03 1.21 39.77 0 72-32.24 72-72 0-4.83-.52-9.54-1.42-14.11 29-12.01 49.42-40.55 49.42-73.89z"
    +      }
    +    }
    +  },
    +  "briefcase": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bag",
    +        "business",
    +        "luggage",
    +        "office",
    +        "work"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0b1",
    +    "label": "Briefcase",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320871,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"
    +      }
    +    }
    +  },
    +  "briefcase-medical": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "health briefcase"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f469",
    +    "label": "Medical Briefcase",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821445,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"
    +      }
    +    }
    +  },
    +  "broadcast-tower": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "airwaves",
    +        "radio",
    +        "waves"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f519",
    +    "label": "Broadcast Tower",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154564,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"
    +      }
    +    }
    +  },
    +  "broom": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "clean",
    +        "firebolt",
    +        "fly",
    +        "halloween",
    +        "holiday",
    +        "nimbus 2000",
    +        "quidditch",
    +        "sweep",
    +        "witch"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f51a",
    +    "label": "Broom",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290228,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"
    +      }
    +    }
    +  },
    +  "brush": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bristles",
    +        "color",
    +        "handle",
    +        "painting"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f55d",
    +    "label": "Brush",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111649,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"
    +      }
    +    }
    +  },
    +  "btc": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f15a",
    +    "label": "BTC",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"
    +      }
    +    }
    +  },
    +  "bug": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "insect",
    +        "report"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f188",
    +    "label": "Bug",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"
    +      }
    +    }
    +  },
    +  "building": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "apartment",
    +        "business",
    +        "company",
    +        "office",
    +        "work"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1ad",
    +    "label": "Building",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z"
    +      }
    +    }
    +  },
    +  "bullhorn": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "announcement",
    +        "broadcast",
    +        "louder",
    +        "megaphone",
    +        "share"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0a1",
    +    "label": "bullhorn",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320872,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"
    +      }
    +    }
    +  },
    +  "bullseye": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "target"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f140",
    +    "label": "Bullseye",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320873,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"
    +      }
    +    }
    +  },
    +  "burn": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "energy"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f46a",
    +    "label": "Burn",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821445,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"
    +      }
    +    }
    +  },
    +  "buromobelexperte": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f37f",
    +    "label": "Büromöbel-Experte GmbH & Co. KG.",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"
    +      }
    +    }
    +  },
    +  "bus": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "machine",
    +        "public transportation",
    +        "transportation",
    +        "vehicle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f207",
    +    "label": "Bus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111650,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "bus-alt": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "machine",
    +        "public transportation",
    +        "transportation",
    +        "vehicle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f55e",
    +    "label": "Bus Alt",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111650,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "business-time": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "briefcase",
    +        "business socks",
    +        "clock",
    +        "flight of the conchords",
    +        "wednesday"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f64a",
    +    "label": "Business Time",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320873,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"
    +      }
    +    }
    +  },
    +  "buysellads": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f20d",
    +    "label": "BuySellAds",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"
    +      }
    +    }
    +  },
    +  "calculator": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1ec",
    +    "label": "Calculator",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320874,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"
    +      }
    +    }
    +  },
    +  "calendar": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "calendar-o",
    +        "date",
    +        "event",
    +        "schedule",
    +        "time",
    +        "when"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f133",
    +    "label": "Calendar",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z"
    +      }
    +    }
    +  },
    +  "calendar-alt": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "calendar",
    +        "date",
    +        "event",
    +        "schedule",
    +        "time",
    +        "when"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f073",
    +    "label": "Alternate Calendar",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
    +      }
    +    }
    +  },
    +  "calendar-check": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "accept",
    +        "agree",
    +        "appointment",
    +        "confirm",
    +        "correct",
    +        "done",
    +        "ok",
    +        "select",
    +        "success",
    +        "todo"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f274",
    +    "label": "Calendar Check",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z"
    +      }
    +    }
    +  },
    +  "calendar-minus": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "delete",
    +        "negative",
    +        "remove"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f272",
    +    "label": "Calendar Minus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
    +      }
    +    }
    +  },
    +  "calendar-plus": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "add",
    +        "create",
    +        "new",
    +        "positive"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f271",
    +    "label": "Calendar Plus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
    +      }
    +    }
    +  },
    +  "calendar-times": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "archive",
    +        "delete",
    +        "remove",
    +        "x"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f273",
    +    "label": "Calendar Times",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
    +      }
    +    }
    +  },
    +  "camera": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "photo",
    +        "picture",
    +        "record"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f030",
    +    "label": "camera",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"
    +      }
    +    }
    +  },
    +  "camera-retro": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "photo",
    +        "picture",
    +        "record"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f083",
    +    "label": "Retro Camera",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"
    +      }
    +    }
    +  },
    +  "campground": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "camping",
    +        "fall",
    +        "outdoors",
    +        "seasonal",
    +        "tent"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6bb",
    +    "label": "Campground",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290228,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"
    +      }
    +    }
    +  },
    +  "cannabis": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bud",
    +        "chronic",
    +        "drugs",
    +        "endica",
    +        "endo",
    +        "ganja",
    +        "marijuana",
    +        "mary jane",
    +        "pot",
    +        "reefer",
    +        "sativa",
    +        "spliff",
    +        "weed",
    +        "whacky-tabacky"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f55f",
    +    "label": "Cannabis",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111651,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"
    +      }
    +    }
    +  },
    +  "capsules": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "drugs",
    +        "medicine"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f46b",
    +    "label": "Capsules",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821446,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"
    +      }
    +    }
    +  },
    +  "car": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "machine",
    +        "transportation",
    +        "vehicle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1b9",
    +    "label": "Car",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831521,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"
    +      }
    +    }
    +  },
    +  "car-alt": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5de",
    +    "label": "Alternate Car",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831519,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 480 512\"><path d=\"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "480",
    +          "512"
    +        ],
    +        "width": 480,
    +        "height": 512,
    +        "path": "M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"
    +      }
    +    }
    +  },
    +  "car-battery": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5df",
    +    "label": "Car Battery",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831519,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"
    +      }
    +    }
    +  },
    +  "car-crash": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5e1",
    +    "label": "Car Crash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831520,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"
    +      }
    +    }
    +  },
    +  "car-side": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5e4",
    +    "label": "Car Side",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831521,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"
    +      }
    +    }
    +  },
    +  "caret-down": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "dropdown",
    +        "menu",
    +        "more",
    +        "triangle down"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0d7",
    +    "label": "Caret Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
    +      }
    +    }
    +  },
    +  "caret-left": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "back",
    +        "previous",
    +        "triangle left"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0d9",
    +    "label": "Caret Left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 192 512\"><path d=\"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "192",
    +          "512"
    +        ],
    +        "width": 192,
    +        "height": 512,
    +        "path": "M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"
    +      }
    +    }
    +  },
    +  "caret-right": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "forward",
    +        "next",
    +        "triangle right"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0da",
    +    "label": "Caret Right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 192 512\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "192",
    +          "512"
    +        ],
    +        "width": 192,
    +        "height": 512,
    +        "path": "M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"
    +      }
    +    }
    +  },
    +  "caret-square-down": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "caret-square-o-down",
    +        "dropdown",
    +        "menu",
    +        "more"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f150",
    +    "label": "Caret Square Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
    +      }
    +    }
    +  },
    +  "caret-square-left": {
    +    "changes": [
    +      "4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "back",
    +        "caret-square-o-left",
    +        "previous"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f191",
    +    "label": "Caret Square Left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
    +      }
    +    }
    +  },
    +  "caret-square-right": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "caret-square-o-right",
    +        "forward",
    +        "next"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f152",
    +    "label": "Caret Square Right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
    +      }
    +    }
    +  },
    +  "caret-square-up": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "caret-square-o-up"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f151",
    +    "label": "Caret Square Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
    +      }
    +    }
    +  },
    +  "caret-up": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "triangle up"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0d8",
    +    "label": "Caret Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"
    +      }
    +    }
    +  },
    +  "cart-arrow-down": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "shopping"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f218",
    +    "label": "Shopping Cart Arrow Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"
    +      }
    +    }
    +  },
    +  "cart-plus": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "add",
    +        "create",
    +        "new",
    +        "positive",
    +        "shopping"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f217",
    +    "label": "Add to Shopping Cart",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"
    +      }
    +    }
    +  },
    +  "cat": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "feline",
    +        "halloween",
    +        "holiday",
    +        "kitten",
    +        "kitty",
    +        "meow",
    +        "pet"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6be",
    +    "label": "Cat",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539286135296,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"
    +      }
    +    }
    +  },
    +  "cc-amazon-pay": {
    +    "changes": [
    +      "5.0.2"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f42d",
    +    "label": "Amazon Pay Credit Card",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1513713060430,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"
    +      }
    +    }
    +  },
    +  "cc-amex": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "amex"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1f3",
    +    "label": "American Express Credit Card",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M576 255.4c-37.9-.2-44.2-.9-54.5 5v-5c-45.3 0-53.5-1.7-64.9 5.2v-5.2h-78.2v5.1c-11.4-6.5-21.4-5.1-75.7-5.1v5.6c-6.3-3.7-14.5-5.6-24.3-5.6h-58c-3.5 3.8-12.5 13.7-15.7 17.2-12.7-14.1-10.5-11.6-15.5-17.2h-83.1v92.3h82c3.3-3.5 12.9-13.9 16.1-17.4 12.7 14.3 10.3 11.7 15.4 17.4h48.9c0-14.7.1-8.3.1-23 11.5.2 24.3-.2 34.3-6.2 0 13.9-.1 17.1-.1 29.2h39.6c0-18.5.1-7.4.1-25.3 6.2 0 7.7 0 9.4.1.1 1.3 0 0 0 25.2 152.8 0 145.9 1.1 156.7-4.5v4.5c34.8 0 54.8 2.2 67.5-6.1V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V228.3h26.6c4.2-10.1 2.2-5.3 6.4-15.3h19.2c4.2 10 2.2 5.2 6.4 15.3h52.9v-11.4c2.2 5 1.1 2.5 5.1 11.4h29.5c2.4-5.5 2.6-5.8 5.1-11.4v11.4h135.5v-25.1c6.4 0 8-.1 9.8.2 0 0-.2 10.9.1 24.8h66.5v-8.9c7.4 5.9 17.4 8.9 29.7 8.9h26.8c4.2-10.1 2.2-5.3 6.4-15.3h19c6.5 15 .2.5 6.6 15.3h52.8v-21.9c11.8 19.7 7.8 12.9 13.2 21.9h41.6v-92h-39.9v18.4c-12.2-20.2-6.3-10.4-11.2-18.4h-43.3v20.6c-6.2-14.6-4.6-10.8-8.8-20.6h-32.4c-.4 0-2.3.2-2.3-.3h-27.6c-12.8 0-23.1 3.2-30.7 9.3v-9.3h-39.9v5.3c-10.8-6.1-20.7-5.1-64.4-5.3-.1 0-11.6-.1-11.6 0h-103c-2.5 6.1-6.8 16.4-12.6 30-2.8-6-11-23.8-13.9-30h-46V157c-7.4-17.4-4.7-11-9-21.1H22.9c-3.4 7.9-13.7 32-23.1 53.9V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48v175.4zm-186.6-80.6c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm-19.9 130.9c9.2 3.3 11 9.5 11 18.4l-.1 13.8h-16.6l.1-11.5c0-11.8-3.8-13.8-14.8-13.8h-17.6l-.1 25.3h-16.6l.1-69.3h39.4c13 0 27.1 2.3 27.1 18.7-.1 7.6-4.2 15.3-11.9 18.4zm-6.3-15.4c0-6.4-5.6-7.4-10.7-7.4h-21v15.6h20.7c5.6 0 11-1.3 11-8.2zm181.7-7.1H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-99.2-.3v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5h38.5zm42.2 40.1h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-78.1-158.7c-17.4-.3-33.2-4.1-33.2 19.7 0 11.8 2.8 19.9 16.1 19.9h7.4l23.5-54.5h24.8l27.9 65.4v-65.4h25.3l29.1 48.1v-48.1h16.9v69H524l-31.2-51.9v51.9h-33.7l-6.6-15.3h-34.3l-6.4 15.3h-19.2c-22.8 0-33-11.8-33-34 0-23.3 10.5-35.3 34-35.3h16.1v15.2zm14.3 24.5h22.8l-11.2-27.6-11.6 27.6zm-72.6-39.6h-16.9v69.3h16.9v-69.3zm-38.1 37.3c9.5 3.3 11 9.2 11 18.4v13.5h-16.6c-.3-14.8 3.6-25.1-14.8-25.1h-18v25.1h-16.4v-69.3l39.1.3c13.3 0 27.4 2 27.4 18.4.1 8-4.3 15.7-11.7 18.7zm-6.7-15.3c0-6.4-5.6-7.4-10.7-7.4h-21v15.3h20.7c5.7 0 11-1.3 11-7.9zm-59.5-7.4v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5h38.9zm-84.6 54.7v-54.2l-24 54.2H124l-24-54.2v54.2H66.2l-6.4-15.3H25.3l-6.4 15.3H1l29.7-69.3h24.5l28.1 65.7v-65.7h27.1l21.7 47 19.7-47h27.6v69.3h-16.8zM53.9 188.8l-11.5-27.6-11.2 27.6h22.7zm253 102.5c0 27.9-30.4 23.3-49.3 23.3l-.1 23.3h-32.2l-20.4-23-21.3 23h-65.4l.1-69.3h66.5l20.5 22.8 21-22.8H279c15.6 0 27.9 5.4 27.9 22.7zm-112.7 11.8l-17.9-20.2h-41.7v12.5h36.3v14.1h-36.3v13.8h40.6l19-20.2zM241 276l-25.3 27.4 25.3 28.1V276zm48.3 15.3c0-6.1-4.6-8.4-10.2-8.4h-21.5v17.6h21.2c5.9 0 10.5-2.8 10.5-9.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M576 255.4c-37.9-.2-44.2-.9-54.5 5v-5c-45.3 0-53.5-1.7-64.9 5.2v-5.2h-78.2v5.1c-11.4-6.5-21.4-5.1-75.7-5.1v5.6c-6.3-3.7-14.5-5.6-24.3-5.6h-58c-3.5 3.8-12.5 13.7-15.7 17.2-12.7-14.1-10.5-11.6-15.5-17.2h-83.1v92.3h82c3.3-3.5 12.9-13.9 16.1-17.4 12.7 14.3 10.3 11.7 15.4 17.4h48.9c0-14.7.1-8.3.1-23 11.5.2 24.3-.2 34.3-6.2 0 13.9-.1 17.1-.1 29.2h39.6c0-18.5.1-7.4.1-25.3 6.2 0 7.7 0 9.4.1.1 1.3 0 0 0 25.2 152.8 0 145.9 1.1 156.7-4.5v4.5c34.8 0 54.8 2.2 67.5-6.1V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V228.3h26.6c4.2-10.1 2.2-5.3 6.4-15.3h19.2c4.2 10 2.2 5.2 6.4 15.3h52.9v-11.4c2.2 5 1.1 2.5 5.1 11.4h29.5c2.4-5.5 2.6-5.8 5.1-11.4v11.4h135.5v-25.1c6.4 0 8-.1 9.8.2 0 0-.2 10.9.1 24.8h66.5v-8.9c7.4 5.9 17.4 8.9 29.7 8.9h26.8c4.2-10.1 2.2-5.3 6.4-15.3h19c6.5 15 .2.5 6.6 15.3h52.8v-21.9c11.8 19.7 7.8 12.9 13.2 21.9h41.6v-92h-39.9v18.4c-12.2-20.2-6.3-10.4-11.2-18.4h-43.3v20.6c-6.2-14.6-4.6-10.8-8.8-20.6h-32.4c-.4 0-2.3.2-2.3-.3h-27.6c-12.8 0-23.1 3.2-30.7 9.3v-9.3h-39.9v5.3c-10.8-6.1-20.7-5.1-64.4-5.3-.1 0-11.6-.1-11.6 0h-103c-2.5 6.1-6.8 16.4-12.6 30-2.8-6-11-23.8-13.9-30h-46V157c-7.4-17.4-4.7-11-9-21.1H22.9c-3.4 7.9-13.7 32-23.1 53.9V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48v175.4zm-186.6-80.6c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm-19.9 130.9c9.2 3.3 11 9.5 11 18.4l-.1 13.8h-16.6l.1-11.5c0-11.8-3.8-13.8-14.8-13.8h-17.6l-.1 25.3h-16.6l.1-69.3h39.4c13 0 27.1 2.3 27.1 18.7-.1 7.6-4.2 15.3-11.9 18.4zm-6.3-15.4c0-6.4-5.6-7.4-10.7-7.4h-21v15.6h20.7c5.6 0 11-1.3 11-8.2zm181.7-7.1H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-99.2-.3v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5h38.5zm42.2 40.1h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-78.1-158.7c-17.4-.3-33.2-4.1-33.2 19.7 0 11.8 2.8 19.9 16.1 19.9h7.4l23.5-54.5h24.8l27.9 65.4v-65.4h25.3l29.1 48.1v-48.1h16.9v69H524l-31.2-51.9v51.9h-33.7l-6.6-15.3h-34.3l-6.4 15.3h-19.2c-22.8 0-33-11.8-33-34 0-23.3 10.5-35.3 34-35.3h16.1v15.2zm14.3 24.5h22.8l-11.2-27.6-11.6 27.6zm-72.6-39.6h-16.9v69.3h16.9v-69.3zm-38.1 37.3c9.5 3.3 11 9.2 11 18.4v13.5h-16.6c-.3-14.8 3.6-25.1-14.8-25.1h-18v25.1h-16.4v-69.3l39.1.3c13.3 0 27.4 2 27.4 18.4.1 8-4.3 15.7-11.7 18.7zm-6.7-15.3c0-6.4-5.6-7.4-10.7-7.4h-21v15.3h20.7c5.7 0 11-1.3 11-7.9zm-59.5-7.4v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5h38.9zm-84.6 54.7v-54.2l-24 54.2H124l-24-54.2v54.2H66.2l-6.4-15.3H25.3l-6.4 15.3H1l29.7-69.3h24.5l28.1 65.7v-65.7h27.1l21.7 47 19.7-47h27.6v69.3h-16.8zM53.9 188.8l-11.5-27.6-11.2 27.6h22.7zm253 102.5c0 27.9-30.4 23.3-49.3 23.3l-.1 23.3h-32.2l-20.4-23-21.3 23h-65.4l.1-69.3h66.5l20.5 22.8 21-22.8H279c15.6 0 27.9 5.4 27.9 22.7zm-112.7 11.8l-17.9-20.2h-41.7v12.5h36.3v14.1h-36.3v13.8h40.6l19-20.2zM241 276l-25.3 27.4 25.3 28.1V276zm48.3 15.3c0-6.1-4.6-8.4-10.2-8.4h-21.5v17.6h21.2c5.9 0 10.5-2.8 10.5-9.2z"
    +      }
    +    }
    +  },
    +  "cc-apple-pay": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f416",
    +    "label": "Apple Pay Credit Card",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1507669930671,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"
    +      }
    +    }
    +  },
    +  "cc-diners-club": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f24c",
    +    "label": "Diner's Club Credit Card",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"
    +      }
    +    }
    +  },
    +  "cc-discover": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1f2",
    +    "label": "Discover Credit Card",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M83 212.1c0 7.9-3.2 15.5-8.9 20.7-4.9 4.4-11.6 6.4-21.9 6.4H48V185h4.2c10.3 0 16.7 1.7 21.9 6.6 5.7 5 8.9 12.6 8.9 20.5zM504.8 184h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8 0-7.9-5.5-12.1-15.6-12.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM428 253h45.3v-13.8H444V217h28.3v-13.8H444V185h29.3v-14H428v82zm-86.2-82l35 84.2h8.6l35.5-84.2h-17.5l-22.2 55.2-21.9-55.2h-17.5zm-83 41.6c0 24.6 19.9 44.6 44.6 44.6 24.6 0 44.6-19.9 44.6-44.6 0-24.6-19.9-44.6-44.6-44.6-24.6 0-44.6 19.9-44.6 44.6zm-68-.5c0 32.5 33.6 52.5 63.3 38.2v-19c-19.3 19.3-46.8 5.8-46.8-19.2 0-23.7 26.7-39.1 46.8-19v-19c-30.2-15-63.3 6.8-63.3 38zm-33.9 28.3c-7.6 0-13.8-3.7-17.5-10.8l-10.3 9.9c17.8 26.1 56.6 18.2 56.6-11.3 0-13.1-5.4-19-23.6-25.6-9.6-3.4-12.3-5.9-12.3-10.3 0-8.7 14.5-14.1 24.9-2.5l8.4-10.8c-19.1-17.1-49.7-8.9-49.7 14.3 0 11.3 5.2 17.2 20.2 22.7 25.7 9.1 14.7 24.4 3.3 24.4zm-57.4-28.3c0-24.1-18-41.1-44.1-41.1H32v82h23.4c30.9 0 44.1-22.4 44.1-40.9zm23.4-41.1h-16v82h16v-82zM544 288c-33.3 20.8-226.4 124.4-416 160h401c8.2 0 15-6.8 15-15V288zm0-35l-25.9-34.5c12.1-2.5 18.7-10.6 18.7-23.2 0-28.5-30.3-24.4-52.9-24.4v82h16v-32.8h2.2l22.2 32.8H544z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M83 212.1c0 7.9-3.2 15.5-8.9 20.7-4.9 4.4-11.6 6.4-21.9 6.4H48V185h4.2c10.3 0 16.7 1.7 21.9 6.6 5.7 5 8.9 12.6 8.9 20.5zM504.8 184h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8 0-7.9-5.5-12.1-15.6-12.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM428 253h45.3v-13.8H444V217h28.3v-13.8H444V185h29.3v-14H428v82zm-86.2-82l35 84.2h8.6l35.5-84.2h-17.5l-22.2 55.2-21.9-55.2h-17.5zm-83 41.6c0 24.6 19.9 44.6 44.6 44.6 24.6 0 44.6-19.9 44.6-44.6 0-24.6-19.9-44.6-44.6-44.6-24.6 0-44.6 19.9-44.6 44.6zm-68-.5c0 32.5 33.6 52.5 63.3 38.2v-19c-19.3 19.3-46.8 5.8-46.8-19.2 0-23.7 26.7-39.1 46.8-19v-19c-30.2-15-63.3 6.8-63.3 38zm-33.9 28.3c-7.6 0-13.8-3.7-17.5-10.8l-10.3 9.9c17.8 26.1 56.6 18.2 56.6-11.3 0-13.1-5.4-19-23.6-25.6-9.6-3.4-12.3-5.9-12.3-10.3 0-8.7 14.5-14.1 24.9-2.5l8.4-10.8c-19.1-17.1-49.7-8.9-49.7 14.3 0 11.3 5.2 17.2 20.2 22.7 25.7 9.1 14.7 24.4 3.3 24.4zm-57.4-28.3c0-24.1-18-41.1-44.1-41.1H32v82h23.4c30.9 0 44.1-22.4 44.1-40.9zm23.4-41.1h-16v82h16v-82zM544 288c-33.3 20.8-226.4 124.4-416 160h401c8.2 0 15-6.8 15-15V288zm0-35l-25.9-34.5c12.1-2.5 18.7-10.6 18.7-23.2 0-28.5-30.3-24.4-52.9-24.4v82h16v-32.8h2.2l22.2 32.8H544z"
    +      }
    +    }
    +  },
    +  "cc-jcb": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f24b",
    +    "label": "JCB Credit Card",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z"
    +      }
    +    }
    +  },
    +  "cc-mastercard": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1f1",
    +    "label": "MasterCard Credit Card",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z"
    +      }
    +    }
    +  },
    +  "cc-paypal": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1f4",
    +    "label": "Paypal Credit Card",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"
    +      }
    +    }
    +  },
    +  "cc-stripe": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1f5",
    +    "label": "Stripe Credit Card",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1510266191926,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M396.9 256.5c0 19.1-8.8 33.4-21.9 33.4-8.3 0-13.3-3-16.8-6.7l-.2-52.8c3.7-4.1 8.8-7 17-7 12.9-.1 21.9 14.5 21.9 33.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM122.2 281.1c0-42.3-54.3-34.7-54.3-50.7 0-5.5 4.6-7.7 12.1-7.7 10.8 0 24.5 3.3 35.3 9.1v-33.4c-11.8-4.7-23.5-6.5-35.3-6.5-28.8 0-48 15-48 40.2 0 39.3 54 32.9 54 49.9 0 6.6-5.7 8.7-13.6 8.7-11.8 0-26.9-4.9-38.9-11.3v33.9c13.2 5.7 26.6 8.1 38.8 8.1 29.6-.2 49.9-14.7 49.9-40.3zm68.9-86.9h-27v-30.8l-34.7 7.4-.2 113.9c0 21 15.8 36.5 36.9 36.5 11.6 0 20.2-2.1 24.9-4.7v-28.9c-4.5 1.8-27 8.3-27-12.6v-50.5h27v-30.3zm73.8 0c-4.7-1.7-21.3-4.8-29.6 10.5l-2.2-10.5h-30.7v124.5h35.5v-84.4c8.4-11 22.6-8.9 27.1-7.4v-32.7zm44.2 0h-35.7v124.5h35.7V194.2zm0-47.3l-35.7 7.6v28.9l35.7-7.6v-28.9zm122.7 108.8c0-41.3-23.5-63.8-48.4-63.8-13.9 0-22.9 6.6-27.8 11.1l-1.8-8.8h-31.3V360l35.5-7.5.1-40.2c5.1 3.7 12.7 9 25.1 9 25.4-.1 48.6-20.5 48.6-65.6zm112.2 1.2c0-36.4-17.6-65.1-51.3-65.1-33.8 0-54.3 28.7-54.3 64.9 0 42.8 24.2 64.5 58.8 64.5 17 0 29.7-3.9 39.4-9.2v-28.6c-9.7 4.9-20.8 7.9-34.9 7.9-13.8 0-26-4.9-27.6-21.5h69.5c.1-2 .4-9.4.4-12.9zm-51.6-36.1c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M396.9 256.5c0 19.1-8.8 33.4-21.9 33.4-8.3 0-13.3-3-16.8-6.7l-.2-52.8c3.7-4.1 8.8-7 17-7 12.9-.1 21.9 14.5 21.9 33.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM122.2 281.1c0-42.3-54.3-34.7-54.3-50.7 0-5.5 4.6-7.7 12.1-7.7 10.8 0 24.5 3.3 35.3 9.1v-33.4c-11.8-4.7-23.5-6.5-35.3-6.5-28.8 0-48 15-48 40.2 0 39.3 54 32.9 54 49.9 0 6.6-5.7 8.7-13.6 8.7-11.8 0-26.9-4.9-38.9-11.3v33.9c13.2 5.7 26.6 8.1 38.8 8.1 29.6-.2 49.9-14.7 49.9-40.3zm68.9-86.9h-27v-30.8l-34.7 7.4-.2 113.9c0 21 15.8 36.5 36.9 36.5 11.6 0 20.2-2.1 24.9-4.7v-28.9c-4.5 1.8-27 8.3-27-12.6v-50.5h27v-30.3zm73.8 0c-4.7-1.7-21.3-4.8-29.6 10.5l-2.2-10.5h-30.7v124.5h35.5v-84.4c8.4-11 22.6-8.9 27.1-7.4v-32.7zm44.2 0h-35.7v124.5h35.7V194.2zm0-47.3l-35.7 7.6v28.9l35.7-7.6v-28.9zm122.7 108.8c0-41.3-23.5-63.8-48.4-63.8-13.9 0-22.9 6.6-27.8 11.1l-1.8-8.8h-31.3V360l35.5-7.5.1-40.2c5.1 3.7 12.7 9 25.1 9 25.4-.1 48.6-20.5 48.6-65.6zm112.2 1.2c0-36.4-17.6-65.1-51.3-65.1-33.8 0-54.3 28.7-54.3 64.9 0 42.8 24.2 64.5 58.8 64.5 17 0 29.7-3.9 39.4-9.2v-28.6c-9.7 4.9-20.8 7.9-34.9 7.9-13.8 0-26-4.9-27.6-21.5h69.5c.1-2 .4-9.4.4-12.9zm-51.6-36.1c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7z"
    +      }
    +    }
    +  },
    +  "cc-visa": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1f0",
    +    "label": "Visa Credit Card",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1505492030000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z"
    +      }
    +    }
    +  },
    +  "centercode": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f380",
    +    "label": "Centercode",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"
    +      }
    +    }
    +  },
    +  "certificate": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "badge",
    +        "star"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0a3",
    +    "label": "certificate",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"
    +      }
    +    }
    +  },
    +  "chair": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "furniture",
    +        "seat"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6c0",
    +    "label": "Chair",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011827890,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M446.33 341.88l-10.67-32A31.996 31.996 0 0 0 405.3 288H42.69c-13.77 0-26 8.81-30.36 21.88l-10.67 32C-5.24 362.6 10.18 384 32.03 384H32v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h256v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-.03c21.85 0 37.27-21.4 30.36-42.12zM112 128c0-29.48 16.2-54.99 40-68.87V256h48V48h48v208h48V59.13c23.8 13.88 40 39.39 40 68.87v128h48V128C384 57.31 326.69 0 256 0h-64C121.31 0 64 57.31 64 128v128h48V128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M446.33 341.88l-10.67-32A31.996 31.996 0 0 0 405.3 288H42.69c-13.77 0-26 8.81-30.36 21.88l-10.67 32C-5.24 362.6 10.18 384 32.03 384H32v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h256v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-.03c21.85 0 37.27-21.4 30.36-42.12zM112 128c0-29.48 16.2-54.99 40-68.87V256h48V48h48v208h48V59.13c23.8 13.88 40 39.39 40 68.87v128h48V128C384 57.31 326.69 0 256 0h-64C121.31 0 64 57.31 64 128v128h48V128z"
    +      }
    +    }
    +  },
    +  "chalkboard": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "blackboard",
    +        "learning",
    +        "school",
    +        "teaching",
    +        "whiteboard",
    +        "writing"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f51b",
    +    "label": "Chalkboard",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154565,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "chalkboard-teacher": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "blackboard",
    +        "instructor",
    +        "learning",
    +        "professor",
    +        "school",
    +        "whiteboard",
    +        "writing"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f51c",
    +    "label": "Chalkboard Teacher",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154564,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"
    +      }
    +    }
    +  },
    +  "charging-station": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5e7",
    +    "label": "Charging Station",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831522,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"
    +      }
    +    }
    +  },
    +  "chart-area": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "analytics",
    +        "area-chart",
    +        "graph"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1fe",
    +    "label": "Area Chart",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"
    +      }
    +    }
    +  },
    +  "chart-bar": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "analytics",
    +        "bar-chart",
    +        "graph"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f080",
    +    "label": "Bar Chart",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320874,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"
    +      },
    +      "regular": {
    +        "last_modified": 1535388320834,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z"
    +      }
    +    }
    +  },
    +  "chart-line": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "activity",
    +        "analytics",
    +        "dashboard",
    +        "graph",
    +        "line-chart"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f201",
    +    "label": "Line Chart",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320874,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"
    +      }
    +    }
    +  },
    +  "chart-pie": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "analytics",
    +        "graph",
    +        "pie-chart"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f200",
    +    "label": "Pie Chart",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320875,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 544 512\"><path d=\"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "544",
    +          "512"
    +        ],
    +        "width": 544,
    +        "height": 512,
    +        "path": "M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"
    +      }
    +    }
    +  },
    +  "check": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "accept",
    +        "agree",
    +        "checkmark",
    +        "confirm",
    +        "correct",
    +        "done",
    +        "notice",
    +        "notification",
    +        "notify",
    +        "ok",
    +        "select",
    +        "success",
    +        "tick",
    +        "todo",
    +        "yes"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f00c",
    +    "label": "Check",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"
    +      }
    +    }
    +  },
    +  "check-circle": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "accept",
    +        "agree",
    +        "confirm",
    +        "correct",
    +        "done",
    +        "ok",
    +        "select",
    +        "success",
    +        "todo",
    +        "yes"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f058",
    +    "label": "Check Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821446,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"
    +      }
    +    }
    +  },
    +  "check-double": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "accept",
    +        "agree",
    +        "checkmark",
    +        "confirm",
    +        "correct",
    +        "done",
    +        "notice",
    +        "notification",
    +        "notify",
    +        "ok",
    +        "select",
    +        "success",
    +        "tick",
    +        "todo"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f560",
    +    "label": "Check Double",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111651,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504.5 171.95l-36.2-36.41c-10-10.05-26.21-10.05-36.2 0L192 377.02 79.9 264.28c-10-10.06-26.21-10.06-36.2 0L7.5 300.69c-10 10.05-10 26.36 0 36.41l166.4 167.36c10 10.06 26.21 10.06 36.2 0l294.4-296.09c10-10.06 10-26.36 0-36.42zM166.57 282.71c6.84 7.02 18.18 7.02 25.21.18L403.85 72.62c7.02-6.84 7.02-18.18.18-25.21L362.08 5.29c-6.84-7.02-18.18-7.02-25.21-.18L179.71 161.19l-68.23-68.77c-6.84-7.02-18.18-7.02-25.2-.18l-42.13 41.77c-7.02 6.84-7.02 18.18-.18 25.2l122.6 123.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504.5 171.95l-36.2-36.41c-10-10.05-26.21-10.05-36.2 0L192 377.02 79.9 264.28c-10-10.06-26.21-10.06-36.2 0L7.5 300.69c-10 10.05-10 26.36 0 36.41l166.4 167.36c10 10.06 26.21 10.06 36.2 0l294.4-296.09c10-10.06 10-26.36 0-36.42zM166.57 282.71c6.84 7.02 18.18 7.02 25.21.18L403.85 72.62c7.02-6.84 7.02-18.18.18-25.21L362.08 5.29c-6.84-7.02-18.18-7.02-25.21-.18L179.71 161.19l-68.23-68.77c-6.84-7.02-18.18-7.02-25.2-.18l-42.13 41.77c-7.02 6.84-7.02 18.18-.18 25.2l122.6 123.5z"
    +      }
    +    }
    +  },
    +  "check-square": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "accept",
    +        "agree",
    +        "checkmark",
    +        "confirm",
    +        "correct",
    +        "done",
    +        "ok",
    +        "select",
    +        "success",
    +        "todo",
    +        "yes"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f14a",
    +    "label": "Check Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"
    +      }
    +    }
    +  },
    +  "chess": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f439",
    +    "label": "Chess",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527992,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M199.821 217.633a6 6 0 0 1 6 6l-.001 20.766a6 6 0 0 1-6 6h-25.805c0 31.715-2.153 96.201 17.398 153.229H64.597C84.54 345.452 82.02 279.245 82.02 250.399H56.183a6 6 0 0 1-6-6l.002-20.766a6 6 0 0 1 6-6h143.636zM41.554 115.088l34.58 95.071h103.734l34.572-95.072c2.846-7.826-2.95-16.101-11.278-16.101H152v-30.22h21.57a6 6 0 0 0 6-6V40.383a6 6 0 0 0-6-6h-28.367V6a6 6 0 0 0-6-6H116.82a6 6 0 0 0-6 6v28.383H82.421a6 6 0 0 0-6 6v22.383a6 6 0 0 0 6 6H104v30.219H52.831c-8.328.001-14.124 8.276-11.277 16.103zM222.678 445.17v-28.067a6 6 0 0 0-6-6H39.322a6 6 0 0 0-6 6v28.067l-22.148 14.164a6 6 0 0 0-2.767 5.055V506a6 6 0 0 0 6 6h227.187a6 6 0 0 0 6-6v-41.612a6 6 0 0 0-2.767-5.055l-22.149-14.163zm90.578-144.225l24.88 16.963c.09 18.124-.167 63.904-11.905 114.522h147.526c-11.713-50.475-11.969-96.324-11.882-114.537l24.859-16.949a3.856 3.856 0 0 0 1.684-3.187v-69.901a3.857 3.857 0 0 0-3.857-3.857h-27.655a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.858-3.857h-52.918a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.857-3.857H315.43a3.857 3.857 0 0 0-3.857 3.857v69.901a3.855 3.855 0 0 0 1.683 3.188zm71.585 51.906c0-8.372 6.787-15.158 15.159-15.158s15.158 6.787 15.158 15.158v30.318h-30.317v-30.318zM504.62 470.059l-13.664-10.639v-15.552a3.857 3.857 0 0 0-3.857-3.857H312.915a3.857 3.857 0 0 0-3.857 3.857v15.552l-13.677 10.639a3.857 3.857 0 0 0-1.488 3.044v35.039a3.857 3.857 0 0 0 3.857 3.857h204.5a3.857 3.857 0 0 0 3.857-3.857v-35.04a3.859 3.859 0 0 0-1.487-3.043z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M199.821 217.633a6 6 0 0 1 6 6l-.001 20.766a6 6 0 0 1-6 6h-25.805c0 31.715-2.153 96.201 17.398 153.229H64.597C84.54 345.452 82.02 279.245 82.02 250.399H56.183a6 6 0 0 1-6-6l.002-20.766a6 6 0 0 1 6-6h143.636zM41.554 115.088l34.58 95.071h103.734l34.572-95.072c2.846-7.826-2.95-16.101-11.278-16.101H152v-30.22h21.57a6 6 0 0 0 6-6V40.383a6 6 0 0 0-6-6h-28.367V6a6 6 0 0 0-6-6H116.82a6 6 0 0 0-6 6v28.383H82.421a6 6 0 0 0-6 6v22.383a6 6 0 0 0 6 6H104v30.219H52.831c-8.328.001-14.124 8.276-11.277 16.103zM222.678 445.17v-28.067a6 6 0 0 0-6-6H39.322a6 6 0 0 0-6 6v28.067l-22.148 14.164a6 6 0 0 0-2.767 5.055V506a6 6 0 0 0 6 6h227.187a6 6 0 0 0 6-6v-41.612a6 6 0 0 0-2.767-5.055l-22.149-14.163zm90.578-144.225l24.88 16.963c.09 18.124-.167 63.904-11.905 114.522h147.526c-11.713-50.475-11.969-96.324-11.882-114.537l24.859-16.949a3.856 3.856 0 0 0 1.684-3.187v-69.901a3.857 3.857 0 0 0-3.857-3.857h-27.655a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.858-3.857h-52.918a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.857-3.857H315.43a3.857 3.857 0 0 0-3.857 3.857v69.901a3.855 3.855 0 0 0 1.683 3.188zm71.585 51.906c0-8.372 6.787-15.158 15.159-15.158s15.158 6.787 15.158 15.158v30.318h-30.317v-30.318zM504.62 470.059l-13.664-10.639v-15.552a3.857 3.857 0 0 0-3.857-3.857H312.915a3.857 3.857 0 0 0-3.857 3.857v15.552l-13.677 10.639a3.857 3.857 0 0 0-1.488 3.044v35.039a3.857 3.857 0 0 0 3.857 3.857h204.5a3.857 3.857 0 0 0 3.857-3.857v-35.04a3.859 3.859 0 0 0-1.487-3.043z"
    +      }
    +    }
    +  },
    +  "chess-bishop": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f43a",
    +    "label": "Chess Bishop",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527988,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M123.158 77.881C107.369 72.53 96 57.597 96 40c0-22.091 17.909-40 40-40h47.796c22.091 0 40 17.909 40 40 0 17.541-11.295 32.434-27.005 37.829 23.993 16.657 48.577 46.839 68.703 82.05L144.929 280.443a6 6 0 0 0 0 8.485l14.142 14.142a6 6 0 0 0 8.485 0L280.9 189.726c17.758 38.297 29.371 79.443 29.371 114.273 0 53.786-22.897 75.788-58.446 86.033V448H68.174v-57.97C32.631 379.784 9.739 357.781 9.739 304c0-78.029 58.281-187.766 113.419-226.119zM320 500v-24c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M123.158 77.881C107.369 72.53 96 57.597 96 40c0-22.091 17.909-40 40-40h47.796c22.091 0 40 17.909 40 40 0 17.541-11.295 32.434-27.005 37.829 23.993 16.657 48.577 46.839 68.703 82.05L144.929 280.443a6 6 0 0 0 0 8.485l14.142 14.142a6 6 0 0 0 8.485 0L280.9 189.726c17.758 38.297 29.371 79.443 29.371 114.273 0 53.786-22.897 75.788-58.446 86.033V448H68.174v-57.97C32.631 379.784 9.739 357.781 9.739 304c0-78.029 58.281-187.766 113.419-226.119zM320 500v-24c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12z"
    +      }
    +    }
    +  },
    +  "chess-board": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f43c",
    +    "label": "Chess Board",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527988,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 256v64h-64v-64h64zm0-256h-64v64h64V0zm0 256h64v-64h-64v64zM384 0h-64v64h64V0zm0 512h64v-64h-64v64zm128-64v-64h-64v64h64zm-384 64h64v-64h-64v64zm0-512H64v64h64V0zm384 192v-64h-64v64h64zm0 128v-64h-64v64h64zM0 512h64v-64H0v64zM0 64v64h64V64H0zm0 128v64h64v-64H0zm0 128v64h64v-64H0zm256 192h64v-64h-64v64zm-64-128v64h64v-64h-64zm64-192v-64h-64v64h64zM64 384v64h64v-64H64zm64-128H64v64h64v-64zm256 128h64v-64h-64v64zM512 0h-64v64h64V0zM384 256h64v-64h-64v64zm0-192v64h64V64h-64zm-64 320v64h64v-64h-64zm-192-64v64h64v-64h-64zm128 0v64h64v-64h-64zm-64-128h-64v64h64v-64zm-64-64H64v64h64v-64zm192 192h64v-64h-64v64zM192 128V64h-64v64h64zm128 0V64h-64v64h64zm0 64h64v-64h-64v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 256v64h-64v-64h64zm0-256h-64v64h64V0zm0 256h64v-64h-64v64zM384 0h-64v64h64V0zm0 512h64v-64h-64v64zm128-64v-64h-64v64h64zm-384 64h64v-64h-64v64zm0-512H64v64h64V0zm384 192v-64h-64v64h64zm0 128v-64h-64v64h64zM0 512h64v-64H0v64zM0 64v64h64V64H0zm0 128v64h64v-64H0zm0 128v64h64v-64H0zm256 192h64v-64h-64v64zm-64-128v64h64v-64h-64zm64-192v-64h-64v64h64zM64 384v64h64v-64H64zm64-128H64v64h64v-64zm256 128h64v-64h-64v64zM512 0h-64v64h64V0zM384 256h64v-64h-64v64zm0-192v64h64V64h-64zm-64 320v64h64v-64h-64zm-192-64v64h64v-64h-64zm128 0v64h64v-64h-64zm-64-128h-64v64h64v-64zm-64-64H64v64h64v-64zm192 192h64v-64h-64v64zM192 128V64h-64v64h64zm128 0V64h-64v64h64zm0 64h64v-64h-64v64z"
    +      }
    +    }
    +  },
    +  "chess-king": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f43f",
    +    "label": "Chess King",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527989,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M416 476v24c0 6.627-5.373 12-12 12H44c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12zm-8.033-324H248v-48h50a6 6 0 0 0 6-6V62a6 6 0 0 0-6-6h-50V6a6 6 0 0 0-6-6h-36a6 6 0 0 0-6 6v50h-50a6 6 0 0 0-6 6v36a6 6 0 0 0 6 6h50v48H40.033c-27.574 0-46.879 27.244-37.738 53.259L87.582 448h272.836l85.287-242.741C454.846 179.244 435.541 152 407.967 152z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M416 476v24c0 6.627-5.373 12-12 12H44c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12zm-8.033-324H248v-48h50a6 6 0 0 0 6-6V62a6 6 0 0 0-6-6h-50V6a6 6 0 0 0-6-6h-36a6 6 0 0 0-6 6v50h-50a6 6 0 0 0-6 6v36a6 6 0 0 0 6 6h50v48H40.033c-27.574 0-46.879 27.244-37.738 53.259L87.582 448h272.836l85.287-242.741C454.846 179.244 435.541 152 407.967 152z"
    +      }
    +    }
    +  },
    +  "chess-knight": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f441",
    +    "label": "Chess Knight",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527990,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M352 224v224H32v-46.557c0-30.302 17.12-58.003 44.223-71.554l57.243-28.622A48 48 0 0 0 160 258.334V208l-22.127 11.063a23.996 23.996 0 0 0-12.55 15.645l-11.835 47.338a12 12 0 0 1-7.185 8.231l-29.601 11.84a11.998 11.998 0 0 1-9.33-.176L7.126 275.167A12 12 0 0 1 0 264.201v-158.26c0-6.365 2.529-12.47 7.03-16.971L16 80 1.789 51.578A16.937 16.937 0 0 1 0 44c0-6.627 5.373-12 12-12h148c106.039 0 192 85.961 192 192zm20 240H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12zM52 128c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M352 224v224H32v-46.557c0-30.302 17.12-58.003 44.223-71.554l57.243-28.622A48 48 0 0 0 160 258.334V208l-22.127 11.063a23.996 23.996 0 0 0-12.55 15.645l-11.835 47.338a12 12 0 0 1-7.185 8.231l-29.601 11.84a11.998 11.998 0 0 1-9.33-.176L7.126 275.167A12 12 0 0 1 0 264.201v-158.26c0-6.365 2.529-12.47 7.03-16.971L16 80 1.789 51.578A16.937 16.937 0 0 1 0 44c0-6.627 5.373-12 12-12h148c106.039 0 192 85.961 192 192zm20 240H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12zM52 128c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"
    +      }
    +    }
    +  },
    +  "chess-pawn": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f443",
    +    "label": "Chess Pawn",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527990,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M264 448H56s60-42.743 60-176H84c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h40.209C95.721 210.56 76 181.588 76 148c0-46.392 37.608-84 84-84s84 37.608 84 84c0 33.588-19.721 62.56-48.209 76H236c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12h-32c0 133.257 60 176 60 176zm28 16H28c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h264c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M264 448H56s60-42.743 60-176H84c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h40.209C95.721 210.56 76 181.588 76 148c0-46.392 37.608-84 84-84s84 37.608 84 84c0 33.588-19.721 62.56-48.209 76H236c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12h-32c0 133.257 60 176 60 176zm28 16H28c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h264c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12z"
    +      }
    +    }
    +  },
    +  "chess-queen": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f445",
    +    "label": "Chess Queen",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527991,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M436 512H76c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12zM255.579 0c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zm204.568 154.634c-5.768-3.045-12.916-.932-16.082 4.77-8.616 15.516-22.747 37.801-44.065 37.801-28.714 0-30.625-19.804-31.686-57.542-.183-6.492-5.501-11.664-11.995-11.664h-41.006c-5.175 0-9.754 3.328-11.388 8.238-8.89 26.709-26.073 40.992-47.925 40.992s-39.034-14.283-47.925-40.992c-1.634-4.91-6.213-8.238-11.388-8.238h-41.005c-6.495 0-11.813 5.174-11.995 11.667-1.052 37.642-2.934 57.539-31.688 57.539-20.691 0-33.817-20.224-44.425-38.025-3.266-5.48-10.258-7.431-15.899-4.453l-39.179 20.679a12 12 0 0 0-5.51 15.145L112 448h288l105.014-257.448a12 12 0 0 0-5.51-15.145l-39.357-20.773z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M436 512H76c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12zM255.579 0c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zm204.568 154.634c-5.768-3.045-12.916-.932-16.082 4.77-8.616 15.516-22.747 37.801-44.065 37.801-28.714 0-30.625-19.804-31.686-57.542-.183-6.492-5.501-11.664-11.995-11.664h-41.006c-5.175 0-9.754 3.328-11.388 8.238-8.89 26.709-26.073 40.992-47.925 40.992s-39.034-14.283-47.925-40.992c-1.634-4.91-6.213-8.238-11.388-8.238h-41.005c-6.495 0-11.813 5.174-11.995 11.667-1.052 37.642-2.934 57.539-31.688 57.539-20.691 0-33.817-20.224-44.425-38.025-3.266-5.48-10.258-7.431-15.899-4.453l-39.179 20.679a12 12 0 0 0-5.51 15.145L112 448h288l105.014-257.448a12 12 0 0 0-5.51-15.145l-39.357-20.773z"
    +      }
    +    }
    +  },
    +  "chess-rook": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f447",
    +    "label": "Chess Rook",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527992,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M81.241 215.027C80.957 258.92 77.411 348.076 48 448h287.982c-29.4-99.604-32.936-188.912-33.221-232.975l45.418-42.312a11.998 11.998 0 0 0 3.82-8.78V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v44h-48V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v44H96V44c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v119.932c0 3.33 1.384 6.51 3.82 8.78l45.421 42.315zM160 256c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v64.004h-64V256zm224 220v24c0 6.627-5.373 12-12 12H12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M81.241 215.027C80.957 258.92 77.411 348.076 48 448h287.982c-29.4-99.604-32.936-188.912-33.221-232.975l45.418-42.312a11.998 11.998 0 0 0 3.82-8.78V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v44h-48V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v44H96V44c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v119.932c0 3.33 1.384 6.51 3.82 8.78l45.421 42.315zM160 256c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v64.004h-64V256zm224 220v24c0 6.627-5.373 12-12 12H12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12z"
    +      }
    +    }
    +  },
    +  "chevron-circle-down": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "dropdown",
    +        "menu",
    +        "more"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f13a",
    +    "label": "Chevron Circle Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"
    +      }
    +    }
    +  },
    +  "chevron-circle-left": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "back",
    +        "previous"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f137",
    +    "label": "Chevron Circle Left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"
    +      }
    +    }
    +  },
    +  "chevron-circle-right": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "forward",
    +        "next"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f138",
    +    "label": "Chevron Circle Right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"
    +      }
    +    }
    +  },
    +  "chevron-circle-up": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f139",
    +    "label": "Chevron Circle Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"
    +      }
    +    }
    +  },
    +  "chevron-down": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f078",
    +    "label": "chevron-down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"
    +      }
    +    }
    +  },
    +  "chevron-left": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "back",
    +        "bracket",
    +        "previous"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f053",
    +    "label": "chevron-left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"
    +      }
    +    }
    +  },
    +  "chevron-right": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bracket",
    +        "forward",
    +        "next"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f054",
    +    "label": "chevron-right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"
    +      }
    +    }
    +  },
    +  "chevron-up": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f077",
    +    "label": "chevron-up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"
    +      }
    +    }
    +  },
    +  "child": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1ae",
    +    "label": "Child",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"
    +      }
    +    }
    +  },
    +  "chrome": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "browser"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f268",
    +    "label": "Chrome",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z"
    +      }
    +    }
    +  },
    +  "church": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "building",
    +        "community",
    +        "religion"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f51d",
    +    "label": "Church",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154565,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"
    +      }
    +    }
    +  },
    +  "circle": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "circle-thin",
    +        "dot",
    +        "notification"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f111",
    +    "label": "Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"
    +      }
    +    }
    +  },
    +  "circle-notch": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "circle-o-notch"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1ce",
    +    "label": "Circle Notched",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"
    +      }
    +    }
    +  },
    +  "city": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "buildings",
    +        "busy",
    +        "skyscrapers",
    +        "urban",
    +        "windows"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f64f",
    +    "label": "City",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320875,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"
    +      }
    +    }
    +  },
    +  "clipboard": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "paste"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f328",
    +    "label": "Clipboard",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M336 64h-80c0-35.29-28.71-64-64-64s-64 28.71-64 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h42v36c0 6.627 5.373 12 12 12h168c6.627 0 12-5.373 12-12v-36h42a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zM192 40c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M336 64h-80c0-35.29-28.71-64-64-64s-64 28.71-64 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h42v36c0 6.627 5.373 12 12 12h168c6.627 0 12-5.373 12-12v-36h42a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zM192 40c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24"
    +      }
    +    }
    +  },
    +  "clipboard-check": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "accept",
    +        "agree",
    +        "confirm",
    +        "done",
    +        "ok",
    +        "select",
    +        "success",
    +        "todo",
    +        "yes"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f46c",
    +    "label": "Clipboard Check",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821446,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"
    +      }
    +    }
    +  },
    +  "clipboard-list": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "checklist",
    +        "completed",
    +        "done",
    +        "finished",
    +        "intinerary",
    +        "ol",
    +        "schedule",
    +        "todo",
    +        "ul"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f46d",
    +    "label": "Clipboard List",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821446,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"
    +      }
    +    }
    +  },
    +  "clock": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "date",
    +        "late",
    +        "schedule",
    +        "timer",
    +        "timestamp",
    +        "watch"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f017",
    +    "label": "Clock",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"
    +      }
    +    }
    +  },
    +  "clone": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "copy",
    +        "duplicate"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f24d",
    +    "label": "Clone",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"
    +      }
    +    }
    +  },
    +  "closed-captioning": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cc"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f20a",
    +    "label": "Closed Captioning",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z"
    +      }
    +    }
    +  },
    +  "cloud": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "save"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0c2",
    +    "label": "Cloud",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365067,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"
    +      }
    +    }
    +  },
    +  "cloud-download-alt": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cloud-download"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f381",
    +    "label": "Alternate Cloud Download",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365065,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"
    +      }
    +    }
    +  },
    +  "cloud-moon": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "evening",
    +        "halloween",
    +        "holiday",
    +        "night",
    +        "sky"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6c3",
    +    "label": "Cloud with Moon",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290230,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.3 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm285.26-29.42c-104.23 19.22-199.95-58.16-199.95-160.03 0-58.68 32.45-112.64 85.18-141.7 8.13-4.48 6.08-16.41-3.15-18.06C497.14 1.17 484 0 470.84 0 352.25 0 256 93.04 256 208c0 7.26.4 14.44 1.15 21.51 9.87-3.38 20.18-5.51 30.85-5.51 52.94 0 96 43.06 96 96 0 3.59-.21 7.17-.63 10.73 33.49 15.39 57.47 46.55 63.24 83.86 7.96.87 16.03 1.41 24.23 1.41 66.26 0 126.79-29.19 166.88-77.02 5.93-7.07-.54-17.41-9.71-15.72z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.3 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm285.26-29.42c-104.23 19.22-199.95-58.16-199.95-160.03 0-58.68 32.45-112.64 85.18-141.7 8.13-4.48 6.08-16.41-3.15-18.06C497.14 1.17 484 0 470.84 0 352.25 0 256 93.04 256 208c0 7.26.4 14.44 1.15 21.51 9.87-3.38 20.18-5.51 30.85-5.51 52.94 0 96 43.06 96 96 0 3.59-.21 7.17-.63 10.73 33.49 15.39 57.47 46.55 63.24 83.86 7.96.87 16.03 1.41 24.23 1.41 66.26 0 126.79-29.19 166.88-77.02 5.93-7.07-.54-17.41-9.71-15.72z"
    +      }
    +    }
    +  },
    +  "cloud-sun": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "day",
    +        "daytime",
    +        "fall",
    +        "outdoors",
    +        "seasonal"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6c4",
    +    "label": "Cloud with Sun",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290230,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.31 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm243.19-99.8c-7.85-6.79-7.85-18.97 0-25.76L633.41 186c12.76-11.05 5.84-32.02-11-33.3l-61.59-4.67c-10.19-.78-17.28-10.49-14.9-20.43l14.95-62.48c3.89-16.26-13.96-29.02-28.08-20.07l-52.51 33.26c-8.61 5.46-20.06 1.75-23.85-7.72l-23.47-58.74c-6.32-15.81-28.19-15.81-34.51 0l-23.38 58.49c-3.83 9.59-15.44 13.35-24.17 7.82l-52.29-33.12c-14.13-8.95-31.98 3.81-28.08 20.07l14.95 62.48c2.38 9.94-4.7 19.65-14.9 20.43l-61.15 4.64c-17 1.29-23.99 22.46-11.1 33.62l31.23 27.05c7.82 5.17 15.21 11.01 21.78 17.84 11.42-4.71 23.73-7.18 36.37-7.18 5.97 0 11.77.71 17.44 1.76 7.09-54.98 53.68-97.76 110.56-97.76 61.76 0 112 50.24 112 112s-50.24 112-112 112c-.95 0-1.83-.26-2.77-.28 13.83 13.2 24.61 29.47 30.16 48.28h27.02c6.25 0 12.37 1.83 17.6 5.27l45.08 29.68c14.19 8.99 31.89-4.17 27.92-20.76l-14.69-61.38c-2.43-10.16 4.8-20.08 15.22-20.87l61.16-4.64c16.84-1.28 23.76-22.25 11-33.3l-47.47-41.11zm-202.66 59.94C393.3 317.34 404.32 320 416 320c44.11 0 80-35.89 80-80s-35.89-80-80-80c-43.25 0-78.39 34.56-79.75 77.49 26.44 15.53 44.59 43.13 47.03 75.33z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.31 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm243.19-99.8c-7.85-6.79-7.85-18.97 0-25.76L633.41 186c12.76-11.05 5.84-32.02-11-33.3l-61.59-4.67c-10.19-.78-17.28-10.49-14.9-20.43l14.95-62.48c3.89-16.26-13.96-29.02-28.08-20.07l-52.51 33.26c-8.61 5.46-20.06 1.75-23.85-7.72l-23.47-58.74c-6.32-15.81-28.19-15.81-34.51 0l-23.38 58.49c-3.83 9.59-15.44 13.35-24.17 7.82l-52.29-33.12c-14.13-8.95-31.98 3.81-28.08 20.07l14.95 62.48c2.38 9.94-4.7 19.65-14.9 20.43l-61.15 4.64c-17 1.29-23.99 22.46-11.1 33.62l31.23 27.05c7.82 5.17 15.21 11.01 21.78 17.84 11.42-4.71 23.73-7.18 36.37-7.18 5.97 0 11.77.71 17.44 1.76 7.09-54.98 53.68-97.76 110.56-97.76 61.76 0 112 50.24 112 112s-50.24 112-112 112c-.95 0-1.83-.26-2.77-.28 13.83 13.2 24.61 29.47 30.16 48.28h27.02c6.25 0 12.37 1.83 17.6 5.27l45.08 29.68c14.19 8.99 31.89-4.17 27.92-20.76l-14.69-61.38c-2.43-10.16 4.8-20.08 15.22-20.87l61.16-4.64c16.84-1.28 23.76-22.25 11-33.3l-47.47-41.11zm-202.66 59.94C393.3 317.34 404.32 320 416 320c44.11 0 80-35.89 80-80s-35.89-80-80-80c-43.25 0-78.39 34.56-79.75 77.49 26.44 15.53 44.59 43.13 47.03 75.33z"
    +      }
    +    }
    +  },
    +  "cloud-upload-alt": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cloud-upload"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f382",
    +    "label": "Alternate Cloud Upload",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365066,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"
    +      }
    +    }
    +  },
    +  "cloudscale": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f383",
    +    "label": "cloudscale.ch",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z"
    +      }
    +    }
    +  },
    +  "cloudsmith": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f384",
    +    "label": "Cloudsmith",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 332 512\"><path d=\"M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "332",
    +          "512"
    +        ],
    +        "width": 332,
    +        "height": 512,
    +        "path": "M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z"
    +      }
    +    }
    +  },
    +  "cloudversify": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f385",
    +    "label": "cloudversify",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 616 512\"><path d=\"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "616",
    +          "512"
    +        ],
    +        "width": 616,
    +        "height": 512,
    +        "path": "M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z"
    +      }
    +    }
    +  },
    +  "cocktail": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "alcohol",
    +        "beverage",
    +        "drink"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f561",
    +    "label": "Cocktail",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111652,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"
    +      }
    +    }
    +  },
    +  "code": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "brackets",
    +        "html"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f121",
    +    "label": "Code",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"
    +      }
    +    }
    +  },
    +  "code-branch": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "branch",
    +        "code-fork",
    +        "fork",
    +        "git",
    +        "github",
    +        "rebase",
    +        "svn",
    +        "vcs",
    +        "version"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f126",
    +    "label": "Code Branch",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502809851000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"
    +      }
    +    }
    +  },
    +  "codepen": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1cb",
    +    "label": "Codepen",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"
    +      }
    +    }
    +  },
    +  "codiepie": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f284",
    +    "label": "Codie Pie",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 472 512\"><path d=\"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "472",
    +          "512"
    +        ],
    +        "width": 472,
    +        "height": 512,
    +        "path": "M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z"
    +      }
    +    }
    +  },
    +  "coffee": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "beverage",
    +        "breakfast",
    +        "cafe",
    +        "drink",
    +        "fall",
    +        "morning",
    +        "mug",
    +        "seasonal",
    +        "tea"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0f4",
    +    "label": "Coffee",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"
    +      }
    +    }
    +  },
    +  "cog": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "settings"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f013",
    +    "label": "cog",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M444.788 291.1l42.616 24.599c4.867 2.809 7.126 8.618 5.459 13.985-11.07 35.642-29.97 67.842-54.689 94.586a12.016 12.016 0 0 1-14.832 2.254l-42.584-24.595a191.577 191.577 0 0 1-60.759 35.13v49.182a12.01 12.01 0 0 1-9.377 11.718c-34.956 7.85-72.499 8.256-109.219.007-5.49-1.233-9.403-6.096-9.403-11.723v-49.184a191.555 191.555 0 0 1-60.759-35.13l-42.584 24.595a12.016 12.016 0 0 1-14.832-2.254c-24.718-26.744-43.619-58.944-54.689-94.586-1.667-5.366.592-11.175 5.459-13.985L67.212 291.1a193.48 193.48 0 0 1 0-70.199l-42.616-24.599c-4.867-2.809-7.126-8.618-5.459-13.985 11.07-35.642 29.97-67.842 54.689-94.586a12.016 12.016 0 0 1 14.832-2.254l42.584 24.595a191.577 191.577 0 0 1 60.759-35.13V25.759a12.01 12.01 0 0 1 9.377-11.718c34.956-7.85 72.499-8.256 109.219-.007 5.49 1.233 9.403 6.096 9.403 11.723v49.184a191.555 191.555 0 0 1 60.759 35.13l42.584-24.595a12.016 12.016 0 0 1 14.832 2.254c24.718 26.744 43.619 58.944 54.689 94.586 1.667 5.366-.592 11.175-5.459 13.985L444.788 220.9a193.485 193.485 0 0 1 0 70.2zM336 256c0-44.112-35.888-80-80-80s-80 35.888-80 80 35.888 80 80 80 80-35.888 80-80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M444.788 291.1l42.616 24.599c4.867 2.809 7.126 8.618 5.459 13.985-11.07 35.642-29.97 67.842-54.689 94.586a12.016 12.016 0 0 1-14.832 2.254l-42.584-24.595a191.577 191.577 0 0 1-60.759 35.13v49.182a12.01 12.01 0 0 1-9.377 11.718c-34.956 7.85-72.499 8.256-109.219.007-5.49-1.233-9.403-6.096-9.403-11.723v-49.184a191.555 191.555 0 0 1-60.759-35.13l-42.584 24.595a12.016 12.016 0 0 1-14.832-2.254c-24.718-26.744-43.619-58.944-54.689-94.586-1.667-5.366.592-11.175 5.459-13.985L67.212 291.1a193.48 193.48 0 0 1 0-70.199l-42.616-24.599c-4.867-2.809-7.126-8.618-5.459-13.985 11.07-35.642 29.97-67.842 54.689-94.586a12.016 12.016 0 0 1 14.832-2.254l42.584 24.595a191.577 191.577 0 0 1 60.759-35.13V25.759a12.01 12.01 0 0 1 9.377-11.718c34.956-7.85 72.499-8.256 109.219-.007 5.49 1.233 9.403 6.096 9.403 11.723v49.184a191.555 191.555 0 0 1 60.759 35.13l42.584-24.595a12.016 12.016 0 0 1 14.832 2.254c24.718 26.744 43.619 58.944 54.689 94.586 1.667 5.366-.592 11.175-5.459 13.985L444.788 220.9a193.485 193.485 0 0 1 0 70.2zM336 256c0-44.112-35.888-80-80-80s-80 35.888-80 80 35.888 80 80 80 80-35.888 80-80z"
    +      }
    +    }
    +  },
    +  "cogs": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "gears",
    +        "settings"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f085",
    +    "label": "cogs",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"
    +      }
    +    }
    +  },
    +  "coins": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f51e",
    +    "label": "Coins",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154565,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"
    +      }
    +    }
    +  },
    +  "columns": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "dashboard",
    +        "panes",
    +        "split"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0db",
    +    "label": "Columns",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"
    +      }
    +    }
    +  },
    +  "comment": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bubble",
    +        "chat",
    +        "conversation",
    +        "feedback",
    +        "message",
    +        "note",
    +        "notification",
    +        "sms",
    +        "speech",
    +        "texting"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f075",
    +    "label": "comment",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406015,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"
    +      },
    +      "regular": {
    +        "last_modified": 1522083405998,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"
    +      }
    +    }
    +  },
    +  "comment-alt": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bubble",
    +        "chat",
    +        "commenting",
    +        "conversation",
    +        "feedback",
    +        "message",
    +        "note",
    +        "notification",
    +        "sms",
    +        "speech",
    +        "texting"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f27a",
    +    "label": "Alternate Comment",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406013,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"
    +      },
    +      "regular": {
    +        "last_modified": 1522083405995,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z"
    +      }
    +    }
    +  },
    +  "comment-dollar": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f651",
    +    "label": "Comment Dollar",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320876,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"
    +      }
    +    }
    +  },
    +  "comment-dots": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f4ad",
    +    "label": "Comment Dots",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406013,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      },
    +      "regular": {
    +        "last_modified": 1522083405995,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"
    +      }
    +    }
    +  },
    +  "comment-slash": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4b3",
    +    "label": "Comment Slash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406015,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"
    +      }
    +    }
    +  },
    +  "comments": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bubble",
    +        "chat",
    +        "conversation",
    +        "feedback",
    +        "message",
    +        "note",
    +        "notification",
    +        "sms",
    +        "speech",
    +        "texting"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f086",
    +    "label": "comments",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406016,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"
    +      },
    +      "regular": {
    +        "last_modified": 1522083405999,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z"
    +      }
    +    }
    +  },
    +  "comments-dollar": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f653",
    +    "label": "Comments Dollar",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320877,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"
    +      }
    +    }
    +  },
    +  "compact-disc": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bluray",
    +        "cd",
    +        "disc",
    +        "media"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f51f",
    +    "label": "Compact Disc",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154565,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"
    +      }
    +    }
    +  },
    +  "compass": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "directory",
    +        "location",
    +        "menu",
    +        "safari"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f14e",
    +    "label": "Compass",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831523,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"
    +      },
    +      "regular": {
    +        "last_modified": 1532362831483,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"
    +      }
    +    }
    +  },
    +  "compress": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "collapse",
    +        "combine",
    +        "contract",
    +        "merge",
    +        "smaller"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f066",
    +    "label": "Compress",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"
    +      }
    +    }
    +  },
    +  "concierge-bell": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "attention",
    +        "hotel",
    +        "service",
    +        "support"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f562",
    +    "label": "Concierge Bell",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111652,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "connectdevelop": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f20e",
    +    "label": "Connect Develop",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z"
    +      }
    +    }
    +  },
    +  "contao": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f26d",
    +    "label": "Contao",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z"
    +      }
    +    }
    +  },
    +  "cookie": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "baked good",
    +        "chips",
    +        "food",
    +        "snack",
    +        "sweet",
    +        "treat"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f563",
    +    "label": "Cookie",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111653,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "cookie-bite": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "baked good",
    +        "bitten",
    +        "chips",
    +        "eating",
    +        "food",
    +        "snack",
    +        "sweet",
    +        "treat"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f564",
    +    "label": "Cookie Bite",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111653,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "copy": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "clone",
    +        "duplicate",
    +        "file",
    +        "files-o"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0c5",
    +    "label": "Copy",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"
    +      }
    +    }
    +  },
    +  "copyright": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1f9",
    +    "label": "Copyright",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"
    +      },
    +      "regular": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z"
    +      }
    +    }
    +  },
    +  "couch": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "furniture",
    +        "sofa"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4b8",
    +    "label": "Couch",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821447,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"
    +      }
    +    }
    +  },
    +  "cpanel": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f388",
    +    "label": "cPanel",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M52.9 213.7h40l-6.2 23.6c-1.9 6.5-7.4 10.9-14.3 10.9H53.8c-24.9 0-24.7 37.4 0 37.4h11.3c4.2 0 7.6 3.9 6.4 8.3L64.4 320H52c-33.5 0-59-31.4-50.3-65.2 7.3-27 28.3-41.1 51.2-41.1M73.1 320L108 189.9c1.8-6.4 7.2-10.9 14.3-10.9h37c24.1 0 45.4 16.4 51 41.2 6.6 29.1-14.5 65.3-51.7 65.3h-32l6.4-23.8c1.8-6.2 7.3-10.8 14.3-10.8h10.3c12.4 0 20.8-11.7 18.3-22.6-2.1-9.2-9.9-14.8-18.3-14.8h-19.8L112 309.2c-1.9 6.2-7.4 10.7-14.2 10.7l-24.7.1m220.6-69.4c.3-1 1.9-5.3-2.1-5.3h-57.5c-9.7 0-16.6-8.9-14.2-18.5l3.5-13.4h77.9c18.8 0 33.3 17.6 28.5 36.8l-14 51.8c-2.8 10.6-12.2 17.8-23.4 17.8l-57.5-.2c-42.9 0-38.5-63.8.7-63.8H284l-3.5 13.2c-1.9 6.2-7.4 10.8-14.2 10.8h-21.6c-5.3 0-5.3 7.9 0 7.9h34.9c4.6 0 5.1-3.9 5.5-5.3l8.6-31.8m103.1-36.9c34.4 0 59.3 32.3 50.3 65.4l-8.8 33.1c-1.2 4.9-5.7 7.8-10.3 7.8h-19.1c-4.5 0-7.6-4-6.4-8.3l10.6-40c3.3-11.6-5.6-23.4-18.1-23.4h-19.8l-17.2 64c-1.2 4.8-5.6 7.8-10.4 7.8h-18.9c-4.2 0-7.6-3.9-6.4-8.3l26.2-98h48.3M498 251.6l-8 30c-.9 3.3 1.5 6.7 5.1 6.7h73.3l-5.7 21c-1.9 6.2-7.4 10.7-14.2 10.7h-66.7c-20 0-33.3-19-28.3-36.7l10.8-40c4.8-17.6 20.7-29.6 38.6-29.6h47.3c19 0 33.2 17.7 28.3 36.8l-3.2 12c-2.9 11-12.7 17.6-23.2 17.6h-53.4l3.5-13c1.6-6.2 7.2-10.8 14.2-10.8H538c2 0 3.3-1 3.9-3l.7-2.6c.7-2.7-1.3-5.1-3.9-5.1h-32.9c-4.1 0-6.9 2.1-7.8 6zm70.2 68.4l35.6-133.1c1.2-4.7 5.5-7.9 10.4-7.9h18.9c4.5 0 7.7 4 6.5 8.3l-26.5 98.2c-5.1 20.7-24.2 34.5-44.9 34.5\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M52.9 213.7h40l-6.2 23.6c-1.9 6.5-7.4 10.9-14.3 10.9H53.8c-24.9 0-24.7 37.4 0 37.4h11.3c4.2 0 7.6 3.9 6.4 8.3L64.4 320H52c-33.5 0-59-31.4-50.3-65.2 7.3-27 28.3-41.1 51.2-41.1M73.1 320L108 189.9c1.8-6.4 7.2-10.9 14.3-10.9h37c24.1 0 45.4 16.4 51 41.2 6.6 29.1-14.5 65.3-51.7 65.3h-32l6.4-23.8c1.8-6.2 7.3-10.8 14.3-10.8h10.3c12.4 0 20.8-11.7 18.3-22.6-2.1-9.2-9.9-14.8-18.3-14.8h-19.8L112 309.2c-1.9 6.2-7.4 10.7-14.2 10.7l-24.7.1m220.6-69.4c.3-1 1.9-5.3-2.1-5.3h-57.5c-9.7 0-16.6-8.9-14.2-18.5l3.5-13.4h77.9c18.8 0 33.3 17.6 28.5 36.8l-14 51.8c-2.8 10.6-12.2 17.8-23.4 17.8l-57.5-.2c-42.9 0-38.5-63.8.7-63.8H284l-3.5 13.2c-1.9 6.2-7.4 10.8-14.2 10.8h-21.6c-5.3 0-5.3 7.9 0 7.9h34.9c4.6 0 5.1-3.9 5.5-5.3l8.6-31.8m103.1-36.9c34.4 0 59.3 32.3 50.3 65.4l-8.8 33.1c-1.2 4.9-5.7 7.8-10.3 7.8h-19.1c-4.5 0-7.6-4-6.4-8.3l10.6-40c3.3-11.6-5.6-23.4-18.1-23.4h-19.8l-17.2 64c-1.2 4.8-5.6 7.8-10.4 7.8h-18.9c-4.2 0-7.6-3.9-6.4-8.3l26.2-98h48.3M498 251.6l-8 30c-.9 3.3 1.5 6.7 5.1 6.7h73.3l-5.7 21c-1.9 6.2-7.4 10.7-14.2 10.7h-66.7c-20 0-33.3-19-28.3-36.7l10.8-40c4.8-17.6 20.7-29.6 38.6-29.6h47.3c19 0 33.2 17.7 28.3 36.8l-3.2 12c-2.9 11-12.7 17.6-23.2 17.6h-53.4l3.5-13c1.6-6.2 7.2-10.8 14.2-10.8H538c2 0 3.3-1 3.9-3l.7-2.6c.7-2.7-1.3-5.1-3.9-5.1h-32.9c-4.1 0-6.9 2.1-7.8 6zm70.2 68.4l35.6-133.1c1.2-4.7 5.5-7.9 10.4-7.9h18.9c4.5 0 7.7 4 6.5 8.3l-26.5 98.2c-5.1 20.7-24.2 34.5-44.9 34.5"
    +      }
    +    }
    +  },
    +  "creative-commons": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0",
    +      "5.0.11",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f25e",
    +    "label": "Creative Commons",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529514897189,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"
    +      }
    +    }
    +  },
    +  "creative-commons-by": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4e7",
    +    "label": "Creative Commons Attribution",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365016,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"
    +      }
    +    }
    +  },
    +  "creative-commons-nc": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4e8",
    +    "label": "Creative Commons Noncommercial",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365017,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"
    +      }
    +    }
    +  },
    +  "creative-commons-nc-eu": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4e9",
    +    "label": "Creative Commons Noncommercial (Euro Sign)",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365016,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z"
    +      }
    +    }
    +  },
    +  "creative-commons-nc-jp": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4ea",
    +    "label": "Creative Commons Noncommercial (Yen Sign)",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365016,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z"
    +      }
    +    }
    +  },
    +  "creative-commons-nd": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4eb",
    +    "label": "Creative Commons No Derivative Works",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365017,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z"
    +      }
    +    }
    +  },
    +  "creative-commons-pd": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4ec",
    +    "label": "Creative Commons Public Domain",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365017,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"
    +      }
    +    }
    +  },
    +  "creative-commons-pd-alt": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4ed",
    +    "label": "Creative Commons Public Domain Alternate",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365017,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM135.5 323.3V186h68.2c33.7 0 50.5 15.5 50.5 46.5 0 9-3 46.5-57.1 46.5h-27v44.3h-34.6zm34.1-111.6v41.6h29.2c27.9 0 30-41.6-.9-41.6h-28.3zm93.9 111.6V186h53.2c21.4 0 70 5.2 70 68.6 0 63.5-48.6 68.6-70 68.6h-53.2zm34.1-108.5v79.7h19.9c24 0 34.5-15.3 34.5-39.9 0-42-31.2-39.9-35-39.9l-19.4.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM135.5 323.3V186h68.2c33.7 0 50.5 15.5 50.5 46.5 0 9-3 46.5-57.1 46.5h-27v44.3h-34.6zm34.1-111.6v41.6h29.2c27.9 0 30-41.6-.9-41.6h-28.3zm93.9 111.6V186h53.2c21.4 0 70 5.2 70 68.6 0 63.5-48.6 68.6-70 68.6h-53.2zm34.1-108.5v79.7h19.9c24 0 34.5-15.3 34.5-39.9 0-42-31.2-39.9-35-39.9l-19.4.1z"
    +      }
    +    }
    +  },
    +  "creative-commons-remix": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4ee",
    +    "label": "Creative Commons Remix",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365017,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z"
    +      }
    +    }
    +  },
    +  "creative-commons-sa": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4ef",
    +    "label": "Creative Commons Share Alike",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365018,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z"
    +      }
    +    }
    +  },
    +  "creative-commons-sampling": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4f0",
    +    "label": "Creative Commons Sampling",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365018,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"
    +      }
    +    }
    +  },
    +  "creative-commons-sampling-plus": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4f1",
    +    "label": "Creative Commons Sampling +",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365018,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"
    +      }
    +    }
    +  },
    +  "creative-commons-share": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4f2",
    +    "label": "Creative Commons Share",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365018,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"
    +      }
    +    }
    +  },
    +  "creative-commons-zero": {
    +    "changes": [
    +      "5.0.11",
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4f3",
    +    "label": "Creative Commons CC0",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365018,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"
    +      }
    +    }
    +  },
    +  "credit-card": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "buy",
    +        "checkout",
    +        "credit-card-alt",
    +        "debit",
    +        "money",
    +        "payment",
    +        "purchase"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f09d",
    +    "label": "Credit Card",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z"
    +      }
    +    }
    +  },
    +  "critical-role": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "d&d",
    +        "dnd",
    +        "fantasy",
    +        "game",
    +        "gaming",
    +        "tabletop"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f6c9",
    +    "label": "Critical Role",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1539011290175,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 445.64 512\"><path d=\"M224.82 0c.26.15 216.57 124.51 217.12 124.72 3.04 1.18 3.7 3.46 3.7 6.56-.07 83.45-.06 166.9-.01 250.36 0 2.77-.98 4.43-3.38 5.78C420.88 399.41 234.39 505.71 223.32 512h-3C141 466.34 2.08 386.56 1.93 386.48c-1.29-.74-1.96-1.75-1.88-3.24.04-.87-.03-225.94-.05-253.1 0-2.44.89-3.79 2.93-4.93C26.19 112.11 212.2 5.98 223.07 0h1.75zM214.4 20.42l-.22-.16C149.43 57.12 84.69 94 19.95 130.87c.04.12.08.23.13.35 10.19 3.84 20.39 7.69 30.86 11.64-7.71 5.99-8.32 6.03-10.65 5.13-.1-.04-24.17-9.28-26.8-9.99v230.42c.88-1.41 64.07-110.91 64.13-111.01 1.62-2.82 3.03-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 62.99-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13 227.73 0 176.4 0 186.5.03 1.44 0 1.69-.23 1.7-1.64.01-2.96.01-5.92 0-8.88 0-1.34 2.36-.81-18.37-1.01-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1.04 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1-2.27-.66-2.55-4.08.3-4.73 3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9.04 1.1-79.42-.01-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-.97-2-4.84 1.77-4.85 33.67-.03 46.08-1.07 56.06 4.86 7.74 4.61 11.98 11.48 12.51 20.4.88 14.59-6.51 22.35-14.99 32.59-.68.82-.72 1.38-.04 2.22 2.6 3.25 5.05 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1.02-.42 1.01-1.15-.02-3.67.01-7.33-.02-11-.01-1.02.32-1.43 1.41-1.26 12.54 1.91 21.85-.07 23.58-.3 1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62 62.38-.02 125.15-.02 186.71-.02-27.12-47.03-54.11-93.85-81.18-140.81 2.26-.66-.4-.03 6.69-1.39 2.03-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 133.96 77.37 134.06V137.98c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1-.04 95.53-35.85 103.04-38.77C360.69 93.43 295.55 56 230.1 18.4c29.07 50.36 57.95 100.37 86.82 150.39-.09.11-.18.22-.28.33-9.57-.9-10.46-1.6-11.8-3.94-.96-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08 28.83-49.83 57.5-99.42 86.18-149zm51.93 129.92c1.85-.05 3.7-.52 5.54-.85 1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45-.87 1.3-1.88 1.22-2.6-.19-4.96-9.69 6.22-9.66-39.12-12.05-.7-.04-1 .23-.97.93 0 .13 3.72 121.98 3.73 122.11.02.89.52 1.2 1.21 1.51 2.92 1.31 5.96 2.42 8.7 4.05 7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4 1.49-.47 1.95-1.26 1.98-2.66.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23a1361.1 1361.1 0 0 1 3.31-18.03c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73.01 1.78-.08 1.82-1.85.68-27.49.58-22.59.97-29.55.07-1.29-.41-2.17-1.63-2.8-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15-1.66 1.06-2.31 2.33-2.22 4.34.03.59-.11-4.31.98 30.05.03.9.43 1.12 1.24 1.11.1 0 23.01-.09 34.47-.37zM67.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 3.99-.21 4.99-1.16 22.33-1.24 23.15-.1 1.04-.6 1.91-1.63 2.34-4.06 1.7-3.61-4.45-4.01-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17.01 53.63 54.08 50.88 27.24-2.01 19.05-20.19 24.84-20.47 1.98-.1 3.33 1.33 2.98 3.36-1.83 10.85-3.42 18.95-3.45 19.15-1.51 9.18-86.67 22.08-93.35-42.05-2.68-25.87 10.47-53.37 40.3-60.15zm79.99 87.67c-6.5-.03-12.99 0-19.49-.04-1.96-.01-2.78-1.61-2.66-1.79 2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-37.99.23-40.1.03-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-1.98 2.25-4.03 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13 1.22-.12 2.11-.75 2.23-2.12.3-3.42.26 4.73.45-40.58.02-5.65-.34-6.58-3.23-6.83-3.95-.35-4.03-2.26-.69-3.37.12-.04 18.98-.09 19.09-.09.32 0 4.49.53 1.05 3.38-.05.05-.16.03-.24.04-3.61.26-3.94.98-3.96 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49-.04 3.86 3.37-.02 3.4-10.37.08-20.74.03-31.11.07-10.67.04-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 3.99 17.67 4.75-.1 4.73 3.57.83 3.55zm274.97-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31-1.22-.04-2.43-.44-3.63-.73-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19-.38-.98-.94-1.44-2.04-1.44-3.12 0-7.27-.44-14.58.07-.58.04-1.4.55-1.62 1.06-1.58 3.62-3.07 7.29-4.51 10.96-1.27 3.23 7.86 1.32 12.19 2.16 2.97.57 4.53 3.72.66 3.73-8.79.03-17.58.06-26.37.05-2.92 0-3.09-3.15-.74-3.21 2.67-.07 4.74-1.13 5.92-3.47 1.5-2.97 2.8-6.04 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61 1-1.06 2.07-1.05 3.03.04 2.93 3.34 18.4 44.71 23.62 51.92 1.96 2.7 5.74 1.98 6.36 2.01 3.61.13 3.97-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26-.04-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32.01 5.32 2.75-1.21 3.45-1.81.19-2.58 1-2.66 2.83-.07 1.63-.19 38.89.29 41.21.35 1.73 1.73 2.38 3.23 2.43 13.25.43 14.92.44 16.04-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.68 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1.03 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64-.02-1.64 1.52v16.12c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76-.01.21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-1.95 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 5.99 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64-.04.36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3.04.22-3.45 1.1-.19 4.03.54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 8.98-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 21.99 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1.03.1.57 11.89-5.97 12.75-1.6.21-19.38 3.69-32.68-3.39-21.01-11.19-16.74-35.47-6.88-45.33 14.03-14.06 39.91-7.06 42.32-6.47zM288.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-4.97-.42-5 5.46-.01 1.98-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22.03 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-3.96 12.39-5.19 12.4-.1 0-38.08-.18-38.18-.19-1.93-.23-2.06-2.99-.42-3.38 1.99-.48 4.94.4 5.13-2.8.96-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-1.99-3.22.34-3.22 1.47-.02 17.99-.03 23.11-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6.01 3.58 2.61.1 2.53 3.41-.07 3.43-6.48.04-13.7-.02-21.61-.06-3.84-.02-3.38-3.35.04-3.37 4.49-.03 3.24 1.61 3.41-45.54.02-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29-.05 20.19-.41 21.17.21 1.13.72 1.87 1.65-.42 2.86-.99.52-3.86-.28-4.15 2.47-.02.21-.82 1.63-.07 43.8zm-36.91 274.27c1.14.66 2.12.66 3.26 0 16.99-9.79 181.97-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38-.02 2.58-.62 5.22-1.36 7.71-.55 1.83.38-.5-13.5 32.23-.73 1.72-1.04 2.21-1.97-.08-4.19-10.34-8.28-20.72-12.57-31.01-1.46-3.5-2.24-7-2-10.79.16-2.46.8-16.12 1.51-48.02.04-1.95.01-1.96-1.96-1.96h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3.03 11.54 1.17 21.04 3.74 25.64-7.32 6.01-14.46 2.66-34.41-12.48-38.84-2.01-.59-15.96-2.76-15.94 1.51.05 8.01.01 11.58.02 41.62zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2.02 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8 8.43 3.47 17.54.6 22.39-7.07 4.91-7.76 6.84-29.47-5.43-38.96-.12.05-.24.09-.36.12zM222.83 94.78c-9.83-.03-9.73 14.75-.07 14.87 9.59.11 10.1-14.84.07-14.87zm-80.15 103.87c.02 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-10.99 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.31 6.4c-2.03-5.28-4-10.39-6.1-15.84-2.16 5.48-4.16 10.57-6.23 15.84h12.33z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "445.64",
    +          "512"
    +        ],
    +        "width": 445,
    +        "height": 512,
    +        "path": "M224.82 0c.26.15 216.57 124.51 217.12 124.72 3.04 1.18 3.7 3.46 3.7 6.56-.07 83.45-.06 166.9-.01 250.36 0 2.77-.98 4.43-3.38 5.78C420.88 399.41 234.39 505.71 223.32 512h-3C141 466.34 2.08 386.56 1.93 386.48c-1.29-.74-1.96-1.75-1.88-3.24.04-.87-.03-225.94-.05-253.1 0-2.44.89-3.79 2.93-4.93C26.19 112.11 212.2 5.98 223.07 0h1.75zM214.4 20.42l-.22-.16C149.43 57.12 84.69 94 19.95 130.87c.04.12.08.23.13.35 10.19 3.84 20.39 7.69 30.86 11.64-7.71 5.99-8.32 6.03-10.65 5.13-.1-.04-24.17-9.28-26.8-9.99v230.42c.88-1.41 64.07-110.91 64.13-111.01 1.62-2.82 3.03-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 62.99-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13 227.73 0 176.4 0 186.5.03 1.44 0 1.69-.23 1.7-1.64.01-2.96.01-5.92 0-8.88 0-1.34 2.36-.81-18.37-1.01-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1.04 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1-2.27-.66-2.55-4.08.3-4.73 3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9.04 1.1-79.42-.01-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-.97-2-4.84 1.77-4.85 33.67-.03 46.08-1.07 56.06 4.86 7.74 4.61 11.98 11.48 12.51 20.4.88 14.59-6.51 22.35-14.99 32.59-.68.82-.72 1.38-.04 2.22 2.6 3.25 5.05 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1.02-.42 1.01-1.15-.02-3.67.01-7.33-.02-11-.01-1.02.32-1.43 1.41-1.26 12.54 1.91 21.85-.07 23.58-.3 1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62 62.38-.02 125.15-.02 186.71-.02-27.12-47.03-54.11-93.85-81.18-140.81 2.26-.66-.4-.03 6.69-1.39 2.03-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 133.96 77.37 134.06V137.98c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1-.04 95.53-35.85 103.04-38.77C360.69 93.43 295.55 56 230.1 18.4c29.07 50.36 57.95 100.37 86.82 150.39-.09.11-.18.22-.28.33-9.57-.9-10.46-1.6-11.8-3.94-.96-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08 28.83-49.83 57.5-99.42 86.18-149zm51.93 129.92c1.85-.05 3.7-.52 5.54-.85 1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45-.87 1.3-1.88 1.22-2.6-.19-4.96-9.69 6.22-9.66-39.12-12.05-.7-.04-1 .23-.97.93 0 .13 3.72 121.98 3.73 122.11.02.89.52 1.2 1.21 1.51 2.92 1.31 5.96 2.42 8.7 4.05 7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4 1.49-.47 1.95-1.26 1.98-2.66.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23a1361.1 1361.1 0 0 1 3.31-18.03c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73.01 1.78-.08 1.82-1.85.68-27.49.58-22.59.97-29.55.07-1.29-.41-2.17-1.63-2.8-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15-1.66 1.06-2.31 2.33-2.22 4.34.03.59-.11-4.31.98 30.05.03.9.43 1.12 1.24 1.11.1 0 23.01-.09 34.47-.37zM67.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 3.99-.21 4.99-1.16 22.33-1.24 23.15-.1 1.04-.6 1.91-1.63 2.34-4.06 1.7-3.61-4.45-4.01-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17.01 53.63 54.08 50.88 27.24-2.01 19.05-20.19 24.84-20.47 1.98-.1 3.33 1.33 2.98 3.36-1.83 10.85-3.42 18.95-3.45 19.15-1.51 9.18-86.67 22.08-93.35-42.05-2.68-25.87 10.47-53.37 40.3-60.15zm79.99 87.67c-6.5-.03-12.99 0-19.49-.04-1.96-.01-2.78-1.61-2.66-1.79 2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-37.99.23-40.1.03-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-1.98 2.25-4.03 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13 1.22-.12 2.11-.75 2.23-2.12.3-3.42.26 4.73.45-40.58.02-5.65-.34-6.58-3.23-6.83-3.95-.35-4.03-2.26-.69-3.37.12-.04 18.98-.09 19.09-.09.32 0 4.49.53 1.05 3.38-.05.05-.16.03-.24.04-3.61.26-3.94.98-3.96 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49-.04 3.86 3.37-.02 3.4-10.37.08-20.74.03-31.11.07-10.67.04-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 3.99 17.67 4.75-.1 4.73 3.57.83 3.55zm274.97-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31-1.22-.04-2.43-.44-3.63-.73-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19-.38-.98-.94-1.44-2.04-1.44-3.12 0-7.27-.44-14.58.07-.58.04-1.4.55-1.62 1.06-1.58 3.62-3.07 7.29-4.51 10.96-1.27 3.23 7.86 1.32 12.19 2.16 2.97.57 4.53 3.72.66 3.73-8.79.03-17.58.06-26.37.05-2.92 0-3.09-3.15-.74-3.21 2.67-.07 4.74-1.13 5.92-3.47 1.5-2.97 2.8-6.04 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61 1-1.06 2.07-1.05 3.03.04 2.93 3.34 18.4 44.71 23.62 51.92 1.96 2.7 5.74 1.98 6.36 2.01 3.61.13 3.97-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26-.04-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32.01 5.32 2.75-1.21 3.45-1.81.19-2.58 1-2.66 2.83-.07 1.63-.19 38.89.29 41.21.35 1.73 1.73 2.38 3.23 2.43 13.25.43 14.92.44 16.04-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.68 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1.03 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64-.02-1.64 1.52v16.12c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76-.01.21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-1.95 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 5.99 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64-.04.36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3.04.22-3.45 1.1-.19 4.03.54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 8.98-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 21.99 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1.03.1.57 11.89-5.97 12.75-1.6.21-19.38 3.69-32.68-3.39-21.01-11.19-16.74-35.47-6.88-45.33 14.03-14.06 39.91-7.06 42.32-6.47zM288.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-4.97-.42-5 5.46-.01 1.98-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22.03 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-3.96 12.39-5.19 12.4-.1 0-38.08-.18-38.18-.19-1.93-.23-2.06-2.99-.42-3.38 1.99-.48 4.94.4 5.13-2.8.96-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-1.99-3.22.34-3.22 1.47-.02 17.99-.03 23.11-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6.01 3.58 2.61.1 2.53 3.41-.07 3.43-6.48.04-13.7-.02-21.61-.06-3.84-.02-3.38-3.35.04-3.37 4.49-.03 3.24 1.61 3.41-45.54.02-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29-.05 20.19-.41 21.17.21 1.13.72 1.87 1.65-.42 2.86-.99.52-3.86-.28-4.15 2.47-.02.21-.82 1.63-.07 43.8zm-36.91 274.27c1.14.66 2.12.66 3.26 0 16.99-9.79 181.97-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38-.02 2.58-.62 5.22-1.36 7.71-.55 1.83.38-.5-13.5 32.23-.73 1.72-1.04 2.21-1.97-.08-4.19-10.34-8.28-20.72-12.57-31.01-1.46-3.5-2.24-7-2-10.79.16-2.46.8-16.12 1.51-48.02.04-1.95.01-1.96-1.96-1.96h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3.03 11.54 1.17 21.04 3.74 25.64-7.32 6.01-14.46 2.66-34.41-12.48-38.84-2.01-.59-15.96-2.76-15.94 1.51.05 8.01.01 11.58.02 41.62zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2.02 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8 8.43 3.47 17.54.6 22.39-7.07 4.91-7.76 6.84-29.47-5.43-38.96-.12.05-.24.09-.36.12zM222.83 94.78c-9.83-.03-9.73 14.75-.07 14.87 9.59.11 10.1-14.84.07-14.87zm-80.15 103.87c.02 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-10.99 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.31 6.4c-2.03-5.28-4-10.39-6.1-15.84-2.16 5.48-4.16 10.57-6.23 15.84h12.33z"
    +      }
    +    }
    +  },
    +  "crop": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "design"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f125",
    +    "label": "crop",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111654,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"
    +      }
    +    }
    +  },
    +  "crop-alt": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f565",
    +    "label": "Alternate Crop",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111653,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"
    +      }
    +    }
    +  },
    +  "cross": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "catholicism",
    +        "christianity"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f654",
    +    "label": "Cross",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320877,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "crosshairs": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "gpd",
    +        "picker",
    +        "position"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f05b",
    +    "label": "Crosshairs",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"
    +      }
    +    }
    +  },
    +  "crow": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bird",
    +        "bullfrog",
    +        "fauna",
    +        "halloween",
    +        "holiday",
    +        "toad"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f520",
    +    "label": "Crow",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154565,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"
    +      }
    +    }
    +  },
    +  "crown": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f521",
    +    "label": "Crown",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154566,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"
    +      }
    +    }
    +  },
    +  "css3": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "code"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f13c",
    +    "label": "CSS 3 Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1505400127000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"
    +      }
    +    }
    +  },
    +  "css3-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f38b",
    +    "label": "Alternate CSS3 Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1505400127000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"
    +      }
    +    }
    +  },
    +  "cube": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "package"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1b2",
    +    "label": "Cube",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"
    +      }
    +    }
    +  },
    +  "cubes": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "packages"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1b3",
    +    "label": "Cubes",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"
    +      }
    +    }
    +  },
    +  "cut": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "scissors"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0c4",
    +    "label": "Cut",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111654,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"
    +      }
    +    }
    +  },
    +  "cuttlefish": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f38c",
    +    "label": "Cuttlefish",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 440 512\"><path d=\"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "440",
    +          "512"
    +        ],
    +        "width": 440,
    +        "height": 512,
    +        "path": "M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"
    +      }
    +    }
    +  },
    +  "d-and-d": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f38d",
    +    "label": "Dungeons & Dragons",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"
    +      }
    +    }
    +  },
    +  "dashcube": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f210",
    +    "label": "DashCube",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426581996,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"
    +      }
    +    }
    +  },
    +  "database": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1c0",
    +    "label": "Database",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"
    +      }
    +    }
    +  },
    +  "deaf": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2a4",
    +    "label": "Deaf",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"
    +      }
    +    }
    +  },
    +  "delicious": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1a5",
    +    "label": "Delicious Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192v176z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192v176z"
    +      }
    +    }
    +  },
    +  "deploydog": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f38e",
    +    "label": "deploy.dog",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"
    +      }
    +    }
    +  },
    +  "deskpro": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f38f",
    +    "label": "Deskpro",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821382,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 480 512\"><path d=\"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "480",
    +          "512"
    +        ],
    +        "width": 480,
    +        "height": 512,
    +        "path": "M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"
    +      }
    +    }
    +  },
    +  "desktop": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "computer",
    +        "cpu",
    +        "demo",
    +        "desktop",
    +        "device",
    +        "machine",
    +        "monitor",
    +        "pc",
    +        "screen"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f108",
    +    "label": "Desktop",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502809851000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"
    +      }
    +    }
    +  },
    +  "dev": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f6cc",
    +    "label": "DEV",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1539007849017,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"
    +      }
    +    }
    +  },
    +  "deviantart": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1bd",
    +    "label": "deviantART",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z"
    +      }
    +    }
    +  },
    +  "dharmachakra": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "buddhism",
    +        "buddhist",
    +        "wheel of dharma"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f655",
    +    "label": "Dharmachakra",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320877,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"
    +      }
    +    }
    +  },
    +  "diagnoses": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f470",
    +    "label": "Diagnoses",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821447,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"
    +      }
    +    }
    +  },
    +  "dice": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "chance",
    +        "gambling",
    +        "game",
    +        "roll"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f522",
    +    "label": "Dice",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154567,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"
    +      }
    +    }
    +  },
    +  "dice-d20": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "chance",
    +        "d&d",
    +        "dnd",
    +        "fantasy",
    +        "gambling",
    +        "game",
    +        "roll"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6cf",
    +    "label": "Dice D20",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290231,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 480 512\"><path d=\"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "480",
    +          "512"
    +        ],
    +        "width": 480,
    +        "height": 512,
    +        "path": "M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"
    +      }
    +    }
    +  },
    +  "dice-d6": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "chance",
    +        "d&d",
    +        "dnd",
    +        "fantasy",
    +        "gambling",
    +        "game",
    +        "roll"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6d1",
    +    "label": "Dice D6",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290232,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"
    +      }
    +    }
    +  },
    +  "dice-five": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "chance",
    +        "gambling",
    +        "game",
    +        "roll"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f523",
    +    "label": "Dice Five",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154566,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "dice-four": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "chance",
    +        "gambling",
    +        "game",
    +        "roll"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f524",
    +    "label": "Dice Four",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154566,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "dice-one": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "chance",
    +        "gambling",
    +        "game",
    +        "roll"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f525",
    +    "label": "Dice One",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154566,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "dice-six": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "chance",
    +        "gambling",
    +        "game",
    +        "roll"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f526",
    +    "label": "Dice Six",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111654,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "dice-three": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "chance",
    +        "gambling",
    +        "game",
    +        "roll"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f527",
    +    "label": "Dice Three",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154567,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "dice-two": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "chance",
    +        "gambling",
    +        "game",
    +        "roll"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f528",
    +    "label": "Dice Two",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154567,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "digg": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1a6",
    +    "label": "Digg Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z"
    +      }
    +    }
    +  },
    +  "digital-ocean": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f391",
    +    "label": "Digital Ocean",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 504v-96.1c101.8 0 180.8-100.9 141.7-208-14.3-39.6-46.1-71.4-85.8-85.7-107.1-38.8-208.1 39.9-208.1 141.7H8C8 93.7 164.9-32.8 335 20.3c74.2 23.3 133.6 82.4 156.6 156.6C544.8 347.2 418.6 504 256 504zm.3-191.4h-95.6v95.6h95.6v-95.6zm-95.6 95.6H87v73.6h73.7v-73.6zM87 346.6H25.4v61.6H87v-61.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 504v-96.1c101.8 0 180.8-100.9 141.7-208-14.3-39.6-46.1-71.4-85.8-85.7-107.1-38.8-208.1 39.9-208.1 141.7H8C8 93.7 164.9-32.8 335 20.3c74.2 23.3 133.6 82.4 156.6 156.6C544.8 347.2 418.6 504 256 504zm.3-191.4h-95.6v95.6h95.6v-95.6zm-95.6 95.6H87v73.6h73.7v-73.6zM87 346.6H25.4v61.6H87v-61.6z"
    +      }
    +    }
    +  },
    +  "digital-tachograph": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f566",
    +    "label": "Digital Tachograph",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111655,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"
    +      }
    +    }
    +  },
    +  "directions": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5eb",
    +    "label": "Directions",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831524,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"
    +      }
    +    }
    +  },
    +  "discord": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f392",
    +    "label": "Discord",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1511282001102,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z"
    +      }
    +    }
    +  },
    +  "discourse": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f393",
    +    "label": "Discourse",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821383,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"
    +      }
    +    }
    +  },
    +  "divide": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f529",
    +    "label": "Divide",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154567,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "dizzy": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "dazed",
    +        "disapprove",
    +        "emoticon",
    +        "face"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f567",
    +    "label": "Dizzy Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111656,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111613,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z"
    +      }
    +    }
    +  },
    +  "dna": {
    +    "changes": [
    +      "5.0.7",
    +      "5.0.10"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "double helix",
    +        "helix"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f471",
    +    "label": "DNA",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1523653480526,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"
    +      }
    +    }
    +  },
    +  "dochub": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f394",
    +    "label": "DocHub",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 416 512\"><path d=\"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "416",
    +          "512"
    +        ],
    +        "width": 416,
    +        "height": 512,
    +        "path": "M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z"
    +      }
    +    }
    +  },
    +  "docker": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f395",
    +    "label": "Docker",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"
    +      }
    +    }
    +  },
    +  "dog": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "canine",
    +        "fauna",
    +        "mammmal",
    +        "pet",
    +        "pooch",
    +        "puppy",
    +        "woof"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6d3",
    +    "label": "Dog",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290232,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z"
    +      }
    +    }
    +  },
    +  "dollar-sign": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "$",
    +        "dollar-sign",
    +        "money",
    +        "price",
    +        "usd"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f155",
    +    "label": "Dollar Sign",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406016,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 288 512\"><path d=\"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "288",
    +          "512"
    +        ],
    +        "width": 288,
    +        "height": 512,
    +        "path": "M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"
    +      }
    +    }
    +  },
    +  "dolly": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f472",
    +    "label": "Dolly",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821449,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"
    +      }
    +    }
    +  },
    +  "dolly-flatbed": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f474",
    +    "label": "Dolly Flatbed",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821448,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"
    +      }
    +    }
    +  },
    +  "donate": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "generosity",
    +        "give"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4b9",
    +    "label": "Donate",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406017,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"
    +      }
    +    }
    +  },
    +  "door-closed": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f52a",
    +    "label": "Door Closed",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154567,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"
    +      }
    +    }
    +  },
    +  "door-open": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f52b",
    +    "label": "Door Open",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154568,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"
    +      }
    +    }
    +  },
    +  "dot-circle": {
    +    "changes": [
    +      "4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bullseye",
    +        "notification",
    +        "target"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f192",
    +    "label": "Dot Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"
    +      }
    +    }
    +  },
    +  "dove": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bird",
    +        "fauna",
    +        "flying",
    +        "peace"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4ba",
    +    "label": "Dove",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406017,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"
    +      }
    +    }
    +  },
    +  "download": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "import"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f019",
    +    "label": "Download",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"
    +      }
    +    }
    +  },
    +  "draft2digital": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f396",
    +    "label": "Draft2digital",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 480 512\"><path d=\"M369.9 425.4V371l47.1 27.2-47.1 27.2zM82.4 380.6c25.5-27.3 97.7-104.7 150.9-170 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7H82.4zm51.8-219.2c0 12.4-10 22.4-22.4 22.4-12.4 0-22.4-10-22.4-22.4 0-12.4 10-22.4 22.4-22.4 12.4 0 22.4 10.1 22.4 22.4M336 315.9v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480l144-81.9-144-82.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "480",
    +          "512"
    +        ],
    +        "width": 480,
    +        "height": 512,
    +        "path": "M369.9 425.4V371l47.1 27.2-47.1 27.2zM82.4 380.6c25.5-27.3 97.7-104.7 150.9-170 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7H82.4zm51.8-219.2c0 12.4-10 22.4-22.4 22.4-12.4 0-22.4-10-22.4-22.4 0-12.4 10-22.4 22.4-22.4 12.4 0 22.4 10.1 22.4 22.4M336 315.9v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480l144-81.9-144-82.2z"
    +      }
    +    }
    +  },
    +  "drafting-compass": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "mechanical drawing",
    +        "plot",
    +        "plotting"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f568",
    +    "label": "Drafting Compass",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111656,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"
    +      }
    +    }
    +  },
    +  "dragon": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "d&d",
    +        "dnd",
    +        "fantasy"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6d5",
    +    "label": "Dragon",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290232,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"
    +      }
    +    }
    +  },
    +  "draw-polygon": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5ee",
    +    "label": "Draw Polygon",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831525,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"
    +      }
    +    }
    +  },
    +  "dribbble": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f17d",
    +    "label": "Dribbble",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821383,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z"
    +      }
    +    }
    +  },
    +  "dribbble-square": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f397",
    +    "label": "Dribbble Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z"
    +      }
    +    }
    +  },
    +  "dropbox": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0",
    +      "5.0.1"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f16b",
    +    "label": "Dropbox",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1512509227136,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 528 512\"><path d=\"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "528",
    +          "512"
    +        ],
    +        "width": 528,
    +        "height": 512,
    +        "path": "M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"
    +      }
    +    }
    +  },
    +  "drum": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "instrument",
    +        "music",
    +        "percussion",
    +        "snare",
    +        "sound"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f569",
    +    "label": "Drum",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111657,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z"
    +      }
    +    }
    +  },
    +  "drum-steelpan": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "calypso",
    +        "instrument",
    +        "music",
    +        "percussion",
    +        "reggae",
    +        "snare",
    +        "sound",
    +        "steel",
    +        "tropical"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f56a",
    +    "label": "Drum Steelpan",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111656,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"
    +      }
    +    }
    +  },
    +  "drumstick-bite": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6d7",
    +    "label": "Drumstick with Bite Taken Out",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290232,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M462.79 49.57c-66.14-66.09-173.36-66.09-239.5 0C187.81 85.02 160.12 128 160.12 192v85.83l-40.62 40.59c-9.7 9.69-24.04 11.07-36.78 5.98-21.72-8.68-47.42-4.29-65.02 13.29-23.61 23.59-23.61 61.84 0 85.43 15.28 15.27 36.53 19.58 56.14 15.09-4.5 19.6-.18 40.83 15.1 56.1 23.61 23.59 61.88 23.59 85.49 0 17.6-17.58 21.99-43.26 13.31-64.97-5.09-12.73-3.72-27.05 5.99-36.75L234.35 352h85.89c23.2 0 43.57-3.72 61.89-10.03-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.93-14.81-90.25-49.13-124.53z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M462.79 49.57c-66.14-66.09-173.36-66.09-239.5 0C187.81 85.02 160.12 128 160.12 192v85.83l-40.62 40.59c-9.7 9.69-24.04 11.07-36.78 5.98-21.72-8.68-47.42-4.29-65.02 13.29-23.61 23.59-23.61 61.84 0 85.43 15.28 15.27 36.53 19.58 56.14 15.09-4.5 19.6-.18 40.83 15.1 56.1 23.61 23.59 61.88 23.59 85.49 0 17.6-17.58 21.99-43.26 13.31-64.97-5.09-12.73-3.72-27.05 5.99-36.75L234.35 352h85.89c23.2 0 43.57-3.72 61.89-10.03-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.93-14.81-90.25-49.13-124.53z"
    +      }
    +    }
    +  },
    +  "drupal": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1a9",
    +    "label": "Drupal Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z"
    +      }
    +    }
    +  },
    +  "dumbbell": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "exercise",
    +        "gym",
    +        "strength",
    +        "weight",
    +        "weight-lifting"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f44b",
    +    "label": "Dumbbell",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527995,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"
    +      }
    +    }
    +  },
    +  "dungeon": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "d&d",
    +        "dnd",
    +        "door",
    +        "entrance",
    +        "fantasy",
    +        "gate"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6d9",
    +    "label": "Dungeon",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290233,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"
    +      }
    +    }
    +  },
    +  "dyalog": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f399",
    +    "label": "Dyalog",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 416 512\"><path d=\"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "416",
    +          "512"
    +        ],
    +        "width": 416,
    +        "height": 512,
    +        "path": "M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"
    +      }
    +    }
    +  },
    +  "earlybirds": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f39a",
    +    "label": "Earlybirds",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 480 512\"><path d=\"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "480",
    +          "512"
    +        ],
    +        "width": 480,
    +        "height": 512,
    +        "path": "M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"
    +      }
    +    }
    +  },
    +  "ebay": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4f4",
    +    "label": "eBay",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365019,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M405.2 263.8c-29.1.9-47.2 6.2-47.2 25.3 0 12.4 9.9 25.8 35 25.8 33.7 0 51.6-18.4 51.6-48.4v-3.3c-11.8 0-26.3.1-39.4.6m71.5 39.7c0 9.3.3 18.6 1 26.8h-29.8c-.8-6.9-1.1-13.6-1.1-20.2-16.1 19.8-35.3 25.5-61.9 25.5-39.5 0-60.6-20.9-60.6-45 0-35 28.8-47.3 78.6-48.4 13.7-.3 29-.4 41.7-.4v-3.4c0-23.4-15-33-41-33-19.3 0-33.6 8-35 21.8h-33.7c3.6-34.4 39.7-43.1 71.5-43.1 38.1 0 70.3 13.5 70.3 53.8v65.6zm-349-56.8c-2.3-54.7-87.5-56.6-94.4 0h94.4zm-95 21.4c3.5 58.3 79.2 57.4 91.2 21.6H157c-6.4 34.4-43 46.1-74.4 46.1-57.2 0-82.5-31.5-82.5-74 0-46.8 26.2-77.6 83-77.6 45.3 0 78.4 23.7 78.4 75.4v8.5H32.7zm211 45.7c29.8 0 50.2-21.5 50.2-53.8 0-32.4-20.4-53.8-50.2-53.8-29.6 0-50.2 21.4-50.2 53.8 0 32.3 20.6 53.8 50.2 53.8m-82.2-186h32.1v80.6c15.7-18.7 37.4-24.2 58.7-24.2 35.7 0 75.4 24.1 75.4 76.2 0 43.6-31.5 75.4-76 75.4-23.3 0-45.1-8.3-58.7-24.9 0 6.6-.4 13.2-1.1 19.5h-31.5c.5-10.2 1.1-22.8 1.1-33.1V127.8zM640 189.5l-99.2 194.8h-35.9l28.5-54.1-74.6-140.7h37.5l54.9 109.9L606 189.5h34z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M405.2 263.8c-29.1.9-47.2 6.2-47.2 25.3 0 12.4 9.9 25.8 35 25.8 33.7 0 51.6-18.4 51.6-48.4v-3.3c-11.8 0-26.3.1-39.4.6m71.5 39.7c0 9.3.3 18.6 1 26.8h-29.8c-.8-6.9-1.1-13.6-1.1-20.2-16.1 19.8-35.3 25.5-61.9 25.5-39.5 0-60.6-20.9-60.6-45 0-35 28.8-47.3 78.6-48.4 13.7-.3 29-.4 41.7-.4v-3.4c0-23.4-15-33-41-33-19.3 0-33.6 8-35 21.8h-33.7c3.6-34.4 39.7-43.1 71.5-43.1 38.1 0 70.3 13.5 70.3 53.8v65.6zm-349-56.8c-2.3-54.7-87.5-56.6-94.4 0h94.4zm-95 21.4c3.5 58.3 79.2 57.4 91.2 21.6H157c-6.4 34.4-43 46.1-74.4 46.1-57.2 0-82.5-31.5-82.5-74 0-46.8 26.2-77.6 83-77.6 45.3 0 78.4 23.7 78.4 75.4v8.5H32.7zm211 45.7c29.8 0 50.2-21.5 50.2-53.8 0-32.4-20.4-53.8-50.2-53.8-29.6 0-50.2 21.4-50.2 53.8 0 32.3 20.6 53.8 50.2 53.8m-82.2-186h32.1v80.6c15.7-18.7 37.4-24.2 58.7-24.2 35.7 0 75.4 24.1 75.4 76.2 0 43.6-31.5 75.4-76 75.4-23.3 0-45.1-8.3-58.7-24.9 0 6.6-.4 13.2-1.1 19.5h-31.5c.5-10.2 1.1-22.8 1.1-33.1V127.8zM640 189.5l-99.2 194.8h-35.9l28.5-54.1-74.6-140.7h37.5l54.9 109.9L606 189.5h34z"
    +      }
    +    }
    +  },
    +  "edge": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "browser",
    +        "ie"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f282",
    +    "label": "Edge Browser",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z"
    +      }
    +    }
    +  },
    +  "edit": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "edit",
    +        "pen",
    +        "pencil",
    +        "update",
    +        "write"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f044",
    +    "label": "Edit",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"
    +      }
    +    }
    +  },
    +  "eject": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f052",
    +    "label": "eject",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"
    +      }
    +    }
    +  },
    +  "elementor": {
    +    "changes": [
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f430",
    +    "label": "Elementor",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821383,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z"
    +      }
    +    }
    +  },
    +  "ellipsis-h": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "dots",
    +        "drag",
    +        "kebab",
    +        "list",
    +        "menu",
    +        "nav",
    +        "navigation",
    +        "ol",
    +        "reorder",
    +        "settings",
    +        "ul"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f141",
    +    "label": "Horizontal Ellipsis",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"
    +      }
    +    }
    +  },
    +  "ellipsis-v": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "dots",
    +        "drag",
    +        "kebab",
    +        "list",
    +        "menu",
    +        "nav",
    +        "navigation",
    +        "ol",
    +        "reorder",
    +        "settings",
    +        "ul"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f142",
    +    "label": "Vertical Ellipsis",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 192 512\"><path d=\"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "192",
    +          "512"
    +        ],
    +        "width": 192,
    +        "height": 512,
    +        "path": "M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"
    +      }
    +    }
    +  },
    +  "ello": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f5f1",
    +    "label": "Ello",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1532362831424,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"
    +      }
    +    }
    +  },
    +  "ember": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f423",
    +    "label": "Ember",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426581997,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1c-1.9-43.8-44.2-27.6-49-24-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-18.3-11-32.8 12.1-32.8 12.1s54.5-60.7 42.5-112c-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5c-17.2-.8-28.5 18.8-28.5 18.8s-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7c11.6 2.1 16.4 1 36.5-47.9 11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2c6.7-23.6 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7c8.6 15.6 30.9 5.3 30.9 5.3s15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6c12.4 5.1 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1c-1.9-43.8-44.2-27.6-49-24-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-18.3-11-32.8 12.1-32.8 12.1s54.5-60.7 42.5-112c-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5c-17.2-.8-28.5 18.8-28.5 18.8s-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7c11.6 2.1 16.4 1 36.5-47.9 11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2c6.7-23.6 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7c8.6 15.6 30.9 5.3 30.9 5.3s15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6c12.4 5.1 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"
    +      }
    +    }
    +  },
    +  "empire": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1d1",
    +    "label": "Galactic Empire",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z"
    +      }
    +    }
    +  },
    +  "envelope": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "e-mail",
    +        "email",
    +        "letter",
    +        "mail",
    +        "message",
    +        "notification",
    +        "support"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0e0",
    +    "label": "Envelope",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"
    +      }
    +    }
    +  },
    +  "envelope-open": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "e-mail",
    +        "email",
    +        "letter",
    +        "mail",
    +        "message",
    +        "notification",
    +        "support"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2b6",
    +    "label": "Envelope Open",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"
    +      },
    +      "regular": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z"
    +      }
    +    }
    +  },
    +  "envelope-open-text": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f658",
    +    "label": "Envelope Open-text",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320878,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"
    +      }
    +    }
    +  },
    +  "envelope-square": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "e-mail",
    +        "email",
    +        "letter",
    +        "mail",
    +        "message",
    +        "notification",
    +        "support"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f199",
    +    "label": "Envelope Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"
    +      }
    +    }
    +  },
    +  "envira": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "leaf"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f299",
    +    "label": "Envira Gallery",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"
    +      }
    +    }
    +  },
    +  "equals": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f52c",
    +    "label": "Equals",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154568,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "eraser": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "delete",
    +        "remove"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f12d",
    +    "label": "eraser",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"
    +      }
    +    }
    +  },
    +  "erlang": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f39d",
    +    "label": "Erlang",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426581997,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M21.7 246.4c-.1 86.8 29 159.5 78.7 212.1H0v-405h87.2c-41.5 50.2-65.6 116.2-65.5 192.9zM640 53.6h-83.6c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405zm-80.8 405s0-.1 0 0h-.2.2zm-3.1-405h.3l-.1-.1-.2.1zm-230.7 9.6c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M21.7 246.4c-.1 86.8 29 159.5 78.7 212.1H0v-405h87.2c-41.5 50.2-65.6 116.2-65.5 192.9zM640 53.6h-83.6c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405zm-80.8 405s0-.1 0 0h-.2.2zm-3.1-405h.3l-.1-.1-.2.1zm-230.7 9.6c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2z"
    +      }
    +    }
    +  },
    +  "ethereum": {
    +    "changes": [
    +      "5.0.2"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f42e",
    +    "label": "Ethereum",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821384,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z"
    +      }
    +    }
    +  },
    +  "etsy": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2d7",
    +    "label": "Etsy",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z"
    +      }
    +    }
    +  },
    +  "euro-sign": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "eur"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f153",
    +    "label": "Euro Sign",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"
    +      }
    +    }
    +  },
    +  "exchange-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "arrows",
    +        "exchange",
    +        "reciprocate",
    +        "return",
    +        "swap",
    +        "transfer"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f362",
    +    "label": "Alternate Exchange",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"
    +      }
    +    }
    +  },
    +  "exclamation": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "alert",
    +        "danger",
    +        "error",
    +        "important",
    +        "notice",
    +        "notification",
    +        "notify",
    +        "problem",
    +        "warning"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f12a",
    +    "label": "exclamation",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 192 512\"><path d=\"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "192",
    +          "512"
    +        ],
    +        "width": 192,
    +        "height": 512,
    +        "path": "M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"
    +      }
    +    }
    +  },
    +  "exclamation-circle": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "alert",
    +        "danger",
    +        "error",
    +        "important",
    +        "notice",
    +        "notification",
    +        "notify",
    +        "problem",
    +        "warning"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f06a",
    +    "label": "Exclamation Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"
    +      }
    +    }
    +  },
    +  "exclamation-triangle": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "alert",
    +        "danger",
    +        "error",
    +        "important",
    +        "notice",
    +        "notification",
    +        "notify",
    +        "problem",
    +        "warning"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f071",
    +    "label": "Exclamation Triangle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"
    +      }
    +    }
    +  },
    +  "expand": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bigger",
    +        "enlarge",
    +        "resize"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f065",
    +    "label": "Expand",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"
    +      }
    +    }
    +  },
    +  "expand-arrows-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrows-alt",
    +        "bigger",
    +        "enlarge",
    +        "move",
    +        "resize"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f31e",
    +    "label": "Alternate Expand Arrows",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448.1 512\"><path d=\"M448.1 344v112c0 13.3-10.7 24-24 24h-112c-21.4 0-32.1-25.9-17-41l36.2-36.2L224 295.6 116.8 402.9 153 439c15.1 15.1 4.4 41-17 41H24c-13.3 0-24-10.7-24-24V344c0-21.4 25.9-32.1 41-17l36.2 36.2L184.5 256 77.2 148.7 41 185c-15.1 15.1-41 4.4-41-17V56c0-13.3 10.7-24 24-24h112c21.4 0 32.1 25.9 17 41l-36.2 36.2L224 216.4l107.3-107.3L295.1 73c-15.1-15.1-4.4-41 17-41h112c13.3 0 24 10.7 24 24v112c0 21.4-25.9 32.1-41 17l-36.2-36.2L263.6 256l107.3 107.3 36.2-36.2c15.1-15.2 41-4.5 41 16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448.1",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448.1 344v112c0 13.3-10.7 24-24 24h-112c-21.4 0-32.1-25.9-17-41l36.2-36.2L224 295.6 116.8 402.9 153 439c15.1 15.1 4.4 41-17 41H24c-13.3 0-24-10.7-24-24V344c0-21.4 25.9-32.1 41-17l36.2 36.2L184.5 256 77.2 148.7 41 185c-15.1 15.1-41 4.4-41-17V56c0-13.3 10.7-24 24-24h112c21.4 0 32.1 25.9 17 41l-36.2 36.2L224 216.4l107.3-107.3L295.1 73c-15.1-15.1-4.4-41 17-41h112c13.3 0 24 10.7 24 24v112c0 21.4-25.9 32.1-41 17l-36.2-36.2L263.6 256l107.3 107.3 36.2-36.2c15.1-15.2 41-4.5 41 16.9z"
    +      }
    +    }
    +  },
    +  "expeditedssl": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f23e",
    +    "label": "ExpeditedSSL",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z"
    +      }
    +    }
    +  },
    +  "external-link-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "external-link",
    +        "new",
    +        "open"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f35d",
    +    "label": "Alternate External Link",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z"
    +      }
    +    }
    +  },
    +  "external-link-square-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "external-link-square",
    +        "new",
    +        "open"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f360",
    +    "label": "Alternate External Link Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"
    +      }
    +    }
    +  },
    +  "eye": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "optic",
    +        "see",
    +        "seen",
    +        "show",
    +        "sight",
    +        "views",
    +        "visible"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f06e",
    +    "label": "Eye",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M569.354 231.631C512.969 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-75.162 0-136-60.827-136-136 0-75.162 60.826-136 136-136 75.162 0 136 60.826 136 136 0 75.162-60.826 136-136 136zm104-136c0 57.438-46.562 104-104 104s-104-46.562-104-104c0-17.708 4.431-34.379 12.236-48.973l-.001.032c0 23.651 19.173 42.823 42.824 42.823s42.824-19.173 42.824-42.823c0-23.651-19.173-42.824-42.824-42.824l-.032.001C253.621 156.431 270.292 152 288 152c57.438 0 104 46.562 104 104z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M569.354 231.631C512.969 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-75.162 0-136-60.827-136-136 0-75.162 60.826-136 136-136 75.162 0 136 60.826 136 136 0 75.162-60.826 136-136 136zm104-136c0 57.438-46.562 104-104 104s-104-46.562-104-104c0-17.708 4.431-34.379 12.236-48.973l-.001.032c0 23.651 19.173 42.823 42.824 42.823s42.824-19.173 42.824-42.823c0-23.651-19.173-42.824-42.824-42.824l-.032.001C253.621 156.431 270.292 152 288 152c57.438 0 104 46.562 104 104z"
    +      },
    +      "regular": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"
    +      }
    +    }
    +  },
    +  "eye-dropper": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "eyedropper"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1fb",
    +    "label": "Eye Dropper",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111657,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"
    +      }
    +    }
    +  },
    +  "eye-slash": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "blind",
    +        "hide",
    +        "show",
    +        "toggle",
    +        "unseen",
    +        "views",
    +        "visible",
    +        "visiblity"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f070",
    +    "label": "Eye Slash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M286.693 391.984l32.579 46.542A333.958 333.958 0 0 1 288 440C168.19 440 63.031 376.051 6.646 280.369a47.999 47.999 0 0 1 0-48.739c24.023-40.766 56.913-75.775 96.024-102.537l57.077 81.539C154.736 224.82 152 240.087 152 256c0 74.736 60.135 135.282 134.693 135.984zm282.661-111.615c-31.667 53.737-78.747 97.46-135.175 125.475l.011.015 41.47 59.2c7.6 10.86 4.96 25.82-5.9 33.42l-13.11 9.18c-10.86 7.6-25.82 4.96-33.42-5.9L100.34 46.94c-7.6-10.86-4.96-25.82 5.9-33.42l13.11-9.18c10.86-7.6 25.82-4.96 33.42 5.9l51.038 72.617C230.68 75.776 258.905 72 288 72c119.81 0 224.969 63.949 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM424 256c0-75.174-60.838-136-136-136-17.939 0-35.056 3.473-50.729 9.772l19.299 27.058c25.869-8.171 55.044-6.163 80.4 7.41h-.03c-23.65 0-42.82 19.17-42.82 42.82 0 23.626 19.147 42.82 42.82 42.82 23.65 0 42.82-19.17 42.82-42.82v-.03c18.462 34.49 16.312 77.914-8.25 110.95v.01l19.314 27.061C411.496 321.2 424 290.074 424 256zM262.014 356.727l-77.53-110.757c-5.014 52.387 29.314 98.354 77.53 110.757z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M286.693 391.984l32.579 46.542A333.958 333.958 0 0 1 288 440C168.19 440 63.031 376.051 6.646 280.369a47.999 47.999 0 0 1 0-48.739c24.023-40.766 56.913-75.775 96.024-102.537l57.077 81.539C154.736 224.82 152 240.087 152 256c0 74.736 60.135 135.282 134.693 135.984zm282.661-111.615c-31.667 53.737-78.747 97.46-135.175 125.475l.011.015 41.47 59.2c7.6 10.86 4.96 25.82-5.9 33.42l-13.11 9.18c-10.86 7.6-25.82 4.96-33.42-5.9L100.34 46.94c-7.6-10.86-4.96-25.82 5.9-33.42l13.11-9.18c10.86-7.6 25.82-4.96 33.42 5.9l51.038 72.617C230.68 75.776 258.905 72 288 72c119.81 0 224.969 63.949 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM424 256c0-75.174-60.838-136-136-136-17.939 0-35.056 3.473-50.729 9.772l19.299 27.058c25.869-8.171 55.044-6.163 80.4 7.41h-.03c-23.65 0-42.82 19.17-42.82 42.82 0 23.626 19.147 42.82 42.82 42.82 23.65 0 42.82-19.17 42.82-42.82v-.03c18.462 34.49 16.312 77.914-8.25 110.95v.01l19.314 27.061C411.496 321.2 424 290.074 424 256zM262.014 356.727l-77.53-110.757c-5.014 52.387 29.314 98.354 77.53 110.757z"
    +      },
    +      "regular": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"
    +      }
    +    }
    +  },
    +  "facebook": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "facebook-official",
    +        "social network"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f09a",
    +    "label": "Facebook",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 56.7v398.5c0 13.7-11.1 24.7-24.7 24.7H309.1V306.5h58.2l8.7-67.6h-67v-43.2c0-19.6 5.4-32.9 33.5-32.9h35.8v-60.5c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9h-58.4v67.6h58.4V480H24.7C11.1 480 0 468.9 0 455.3V56.7C0 43.1 11.1 32 24.7 32h398.5c13.7 0 24.8 11.1 24.8 24.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 56.7v398.5c0 13.7-11.1 24.7-24.7 24.7H309.1V306.5h58.2l8.7-67.6h-67v-43.2c0-19.6 5.4-32.9 33.5-32.9h35.8v-60.5c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9h-58.4v67.6h58.4V480H24.7C11.1 480 0 468.9 0 455.3V56.7C0 43.1 11.1 32 24.7 32h398.5c13.7 0 24.8 11.1 24.8 24.7z"
    +      }
    +    }
    +  },
    +  "facebook-f": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "facebook"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f39e",
    +    "label": "Facebook F",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 264 512\"><path d=\"M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "264",
    +          "512"
    +        ],
    +        "width": 264,
    +        "height": 512,
    +        "path": "M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"
    +      }
    +    }
    +  },
    +  "facebook-messenger": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f39f",
    +    "label": "Facebook Messenger",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224 32C15.9 32-77.5 278 84.6 400.6V480l75.7-42c142.2 39.8 285.4-59.9 285.4-198.7C445.8 124.8 346.5 32 224 32zm23.4 278.1L190 250.5 79.6 311.6l121.1-128.5 57.4 59.6 110.4-61.1-121.1 128.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224 32C15.9 32-77.5 278 84.6 400.6V480l75.7-42c142.2 39.8 285.4-59.9 285.4-198.7C445.8 124.8 346.5 32 224 32zm23.4 278.1L190 250.5 79.6 311.6l121.1-128.5 57.4 59.6 110.4-61.1-121.1 128.5z"
    +      }
    +    }
    +  },
    +  "facebook-square": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "social network"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f082",
    +    "label": "Facebook Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 80v352c0 26.5-21.5 48-48 48h-85.3V302.8h60.6l8.7-67.6h-69.3V192c0-19.6 5.4-32.9 33.5-32.9H384V98.7c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9H184v67.6h60.9V480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 80v352c0 26.5-21.5 48-48 48h-85.3V302.8h60.6l8.7-67.6h-69.3V192c0-19.6 5.4-32.9 33.5-32.9H384V98.7c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9H184v67.6h60.9V480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"
    +      }
    +    }
    +  },
    +  "fantasy-flight-games": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "d&d",
    +        "dnd",
    +        "fantasy",
    +        "game",
    +        "gaming",
    +        "tabletop"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f6dc",
    +    "label": "Fantasy Flight-games",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1539011290176,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z"
    +      }
    +    }
    +  },
    +  "fast-backward": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "beginning",
    +        "first",
    +        "previous",
    +        "rewind",
    +        "start"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f049",
    +    "label": "fast-backward",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"
    +      }
    +    }
    +  },
    +  "fast-forward": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "end",
    +        "last",
    +        "next"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f050",
    +    "label": "fast-forward",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"
    +      }
    +    }
    +  },
    +  "fax": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1ac",
    +    "label": "Fax",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320878,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z"
    +      }
    +    }
    +  },
    +  "feather": {
    +    "changes": [
    +      "5.0.13",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bird",
    +        "light",
    +        "plucked",
    +        "quill"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f52d",
    +    "label": "Feather",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111659,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"
    +      }
    +    }
    +  },
    +  "feather-alt": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bird",
    +        "light",
    +        "plucked",
    +        "quill"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f56b",
    +    "label": "Alternate Feather",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111658,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"
    +      }
    +    }
    +  },
    +  "female": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "human",
    +        "person",
    +        "profile",
    +        "user",
    +        "woman"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f182",
    +    "label": "Female",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"
    +      }
    +    }
    +  },
    +  "fighter-jet": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "airplane",
    +        "fast",
    +        "fly",
    +        "goose",
    +        "maverick",
    +        "plane",
    +        "quick",
    +        "top gun",
    +        "transportation",
    +        "travel"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0fb",
    +    "label": "fighter-jet",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"
    +      }
    +    }
    +  },
    +  "file": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "document",
    +        "new",
    +        "page",
    +        "pdf",
    +        "resume"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f15b",
    +    "label": "File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"
    +      }
    +    }
    +  },
    +  "file-alt": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "document",
    +        "file-text",
    +        "invoice",
    +        "new",
    +        "page",
    +        "pdf"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f15c",
    +    "label": "Alternate File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"
    +      }
    +    }
    +  },
    +  "file-archive": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        ".zip",
    +        "bundle",
    +        "compress",
    +        "compression",
    +        "download",
    +        "zip"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1c6",
    +    "label": "Archive File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32V32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6zm32.7-53c0 14.9-14.5 27-32.4 27S96 378 96 363c0-14.9 14.5-27 32.4-27s32.5 12.1 32.5 27zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32V32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6zm32.7-53c0 14.9-14.5 27-32.4 27S96 378 96 363c0-14.9 14.5-27 32.4-27s32.5 12.1 32.5 27zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 51.882L332.118 128H256V51.882zM336 464H48V48h79.714v16h32V48H208v104c0 13.255 10.745 24 24 24h104v288zM192.27 96h-32V64h32v32zm-32 0v32h-32V96h32zm0 64v32h-32v-32h32zm32 0h-32v-32h32v32zm1.909 105.678A12 12 0 0 0 182.406 256H160.27v-32h-32v32l-19.69 97.106C101.989 385.611 126.834 416 160 416c33.052 0 57.871-30.192 51.476-62.62l-17.297-87.702zM160.27 390.073c-17.918 0-32.444-12.105-32.444-27.036 0-14.932 14.525-27.036 32.444-27.036s32.444 12.105 32.444 27.036c0 14.931-14.526 27.036-32.444 27.036zm32-166.073h-32v-32h32v32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 51.882L332.118 128H256V51.882zM336 464H48V48h79.714v16h32V48H208v104c0 13.255 10.745 24 24 24h104v288zM192.27 96h-32V64h32v32zm-32 0v32h-32V96h32zm0 64v32h-32v-32h32zm32 0h-32v-32h32v32zm1.909 105.678A12 12 0 0 0 182.406 256H160.27v-32h-32v32l-19.69 97.106C101.989 385.611 126.834 416 160 416c33.052 0 57.871-30.192 51.476-62.62l-17.297-87.702zM160.27 390.073c-17.918 0-32.444-12.105-32.444-27.036 0-14.932 14.525-27.036 32.444-27.036s32.444 12.105 32.444 27.036c0 14.931-14.526 27.036-32.444 27.036zm32-166.073h-32v-32h32v32z"
    +      }
    +    }
    +  },
    +  "file-audio": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1c7",
    +    "label": "Audio File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z"
    +      }
    +    }
    +  },
    +  "file-code": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1c9",
    +    "label": "Code File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm101.677-115.115L116.854 320l32.822-28.885a8.793 8.793 0 0 0 .605-12.624l-17.403-18.564c-3.384-3.613-8.964-3.662-12.438-.401L62.78 313.58c-3.703 3.474-3.704 9.367.001 12.84l57.659 54.055a8.738 8.738 0 0 0 6.012 2.381 8.746 8.746 0 0 0 6.427-2.782l17.403-18.563a8.795 8.795 0 0 0-.605-12.626zm84.284-127.85l-24.401-7.084a8.796 8.796 0 0 0-10.905 5.998L144.04 408.061c-1.353 4.66 1.338 9.552 5.998 10.905l24.403 7.084c4.68 1.355 9.557-1.354 10.905-5.998l54.612-188.112c1.354-4.66-1.337-9.552-5.997-10.905zm87.258 92.545l-57.658-54.055c-3.526-3.307-9.099-3.165-12.439.401l-17.403 18.563a8.795 8.795 0 0 0 .605 12.625L267.146 320l-32.822 28.885a8.793 8.793 0 0 0-.605 12.624l17.403 18.564a8.797 8.797 0 0 0 12.439.401h-.001l57.66-54.055c3.703-3.473 3.703-9.366-.001-12.839z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm101.677-115.115L116.854 320l32.822-28.885a8.793 8.793 0 0 0 .605-12.624l-17.403-18.564c-3.384-3.613-8.964-3.662-12.438-.401L62.78 313.58c-3.703 3.474-3.704 9.367.001 12.84l57.659 54.055a8.738 8.738 0 0 0 6.012 2.381 8.746 8.746 0 0 0 6.427-2.782l17.403-18.563a8.795 8.795 0 0 0-.605-12.626zm84.284-127.85l-24.401-7.084a8.796 8.796 0 0 0-10.905 5.998L144.04 408.061c-1.353 4.66 1.338 9.552 5.998 10.905l24.403 7.084c4.68 1.355 9.557-1.354 10.905-5.998l54.612-188.112c1.354-4.66-1.337-9.552-5.997-10.905zm87.258 92.545l-57.658-54.055c-3.526-3.307-9.099-3.165-12.439.401l-17.403 18.563a8.795 8.795 0 0 0 .605 12.625L267.146 320l-32.822 28.885a8.793 8.793 0 0 0-.605 12.624l17.403 18.564a8.797 8.797 0 0 0 12.439.401h-.001l57.66-54.055c3.703-3.473 3.703-9.366-.001-12.839z"
    +      }
    +    }
    +  },
    +  "file-contract": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "agreement",
    +        "binding",
    +        "document",
    +        "legal",
    +        "signature"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f56c",
    +    "label": "File Contract",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111659,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"
    +      }
    +    }
    +  },
    +  "file-csv": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "spreadsheets"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6dd",
    +    "label": "File CSV",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011827890,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"
    +      }
    +    }
    +  },
    +  "file-download": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f56d",
    +    "label": "File Download",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111660,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"
    +      }
    +    }
    +  },
    +  "file-excel": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1c3",
    +    "label": "Excel File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z"
    +      }
    +    }
    +  },
    +  "file-export": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f56e",
    +    "label": "File Export",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111660,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zM192 336v-32c0-8.84 7.16-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.84 0-16-7.16-16-16zm379.05-28.02l-95.7-96.43c-10.06-10.14-27.36-3.01-27.36 11.27V288H384v64h63.99v65.18c0 14.28 17.29 21.41 27.36 11.27l95.7-96.42c6.6-6.66 6.6-17.4 0-24.05z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zM192 336v-32c0-8.84 7.16-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.84 0-16-7.16-16-16zm379.05-28.02l-95.7-96.43c-10.06-10.14-27.36-3.01-27.36 11.27V288H384v64h63.99v65.18c0 14.28 17.29 21.41 27.36 11.27l95.7-96.42c6.6-6.66 6.6-17.4 0-24.05z"
    +      }
    +    }
    +  },
    +  "file-image": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1c5",
    +    "label": "Image File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"
    +      }
    +    }
    +  },
    +  "file-import": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f56f",
    +    "label": "File Import",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111661,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M16 288c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h112v-64H16zm336-152V0H152c-13.3 0-24 10.7-24 24v264h127.99v-65.18c0-14.28 17.29-21.41 27.36-11.27l95.7 96.43c6.6 6.65 6.6 17.39 0 24.04l-95.7 96.42c-10.06 10.14-27.36 3.01-27.36-11.27V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24zm153-31L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M16 288c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h112v-64H16zm336-152V0H152c-13.3 0-24 10.7-24 24v264h127.99v-65.18c0-14.28 17.29-21.41 27.36-11.27l95.7 96.43c6.6 6.65 6.6 17.39 0 24.04l-95.7 96.42c-10.06 10.14-27.36 3.01-27.36-11.27V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24zm153-31L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"
    +      }
    +    }
    +  },
    +  "file-invoice": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bill",
    +        "document",
    +        "receipt"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f570",
    +    "label": "File Invoice",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111662,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"
    +      }
    +    }
    +  },
    +  "file-invoice-dollar": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "$",
    +        "bill",
    +        "document",
    +        "dollar-sign",
    +        "money",
    +        "receipt",
    +        "usd"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f571",
    +    "label": "File Invoice with US Dollar",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111661,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"
    +      }
    +    }
    +  },
    +  "file-medical": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f477",
    +    "label": "Medical File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821449,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"
    +      }
    +    }
    +  },
    +  "file-medical-alt": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f478",
    +    "label": "Alternate Medical File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821449,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"
    +      }
    +    }
    +  },
    +  "file-pdf": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1c1",
    +    "label": "PDF File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z"
    +      }
    +    }
    +  },
    +  "file-powerpoint": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1c4",
    +    "label": "Powerpoint File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z"
    +      }
    +    }
    +  },
    +  "file-prescription": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "drugs",
    +        "medical",
    +        "medicine",
    +        "rx"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f572",
    +    "label": "File Prescription",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111662,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"
    +      }
    +    }
    +  },
    +  "file-signature": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "John Hancock",
    +        "contract",
    +        "document",
    +        "name"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f573",
    +    "label": "File Signature",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111663,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"
    +      }
    +    }
    +  },
    +  "file-upload": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f574",
    +    "label": "File Upload",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111664,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"
    +      }
    +    }
    +  },
    +  "file-video": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1c8",
    +    "label": "Video File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z"
    +      }
    +    }
    +  },
    +  "file-word": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1c2",
    +    "label": "Word File",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z"
    +      }
    +    }
    +  },
    +  "fill": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bucket",
    +        "color",
    +        "paint",
    +        "paint bucket"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f575",
    +    "label": "Fill",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111665,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"
    +      }
    +    }
    +  },
    +  "fill-drip": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bucket",
    +        "color",
    +        "drop",
    +        "paint",
    +        "paint bucket",
    +        "spill"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f576",
    +    "label": "Fill Drip",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111664,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"
    +      }
    +    }
    +  },
    +  "film": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "movie"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f008",
    +    "label": "Film",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1504646588000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"
    +      }
    +    }
    +  },
    +  "filter": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "funnel",
    +        "options"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0b0",
    +    "label": "Filter",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"
    +      }
    +    }
    +  },
    +  "fingerprint": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "human",
    +        "id",
    +        "identification",
    +        "lock",
    +        "smudge",
    +        "touch",
    +        "unique",
    +        "unlock"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f577",
    +    "label": "Fingerprint",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111665,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"
    +      }
    +    }
    +  },
    +  "fire": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "caliente",
    +        "flame",
    +        "heat",
    +        "hot",
    +        "popular"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f06d",
    +    "label": "fire",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M216 23.858c0-23.802-30.653-32.765-44.149-13.038C48 191.851 224 200 224 288c0 35.629-29.114 64.458-64.85 63.994C123.98 351.538 96 322.22 96 287.046v-85.51c0-21.703-26.471-32.225-41.432-16.504C27.801 213.158 0 261.332 0 320c0 105.869 86.131 192 192 192s192-86.131 192-192c0-170.29-168-193.003-168-296.142z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M216 23.858c0-23.802-30.653-32.765-44.149-13.038C48 191.851 224 200 224 288c0 35.629-29.114 64.458-64.85 63.994C123.98 351.538 96 322.22 96 287.046v-85.51c0-21.703-26.471-32.225-41.432-16.504C27.801 213.158 0 261.332 0 320c0 105.869 86.131 192 192 192s192-86.131 192-192c0-170.29-168-193.003-168-296.142z"
    +      }
    +    }
    +  },
    +  "fire-extinguisher": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f134",
    +    "label": "fire-extinguisher",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502810244000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"
    +      }
    +    }
    +  },
    +  "firefox": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0",
    +      "5.0.1"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "browser"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f269",
    +    "label": "Firefox",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1512765674646,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 480 512\"><path d=\"M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v.1c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5v-.2c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1-.1.2-.2.3-.3.4-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "480",
    +          "512"
    +        ],
    +        "width": 480,
    +        "height": 512,
    +        "path": "M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v.1c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5v-.2c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1-.1.2-.2.3-.3.4-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6z"
    +      }
    +    }
    +  },
    +  "first-aid": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f479",
    +    "label": "First Aid",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821449,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"
    +      }
    +    }
    +  },
    +  "first-order": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2b0",
    +    "label": "First Order",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"
    +      }
    +    }
    +  },
    +  "first-order-alt": {
    +    "changes": [
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f50a",
    +    "label": "Alternate First Order",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442520,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"
    +      }
    +    }
    +  },
    +  "firstdraft": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3a1",
    +    "label": "firstdraft",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"
    +      }
    +    }
    +  },
    +  "fish": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "fauna",
    +        "gold",
    +        "swimming"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f578",
    +    "label": "Fish",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111666,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"
    +      }
    +    }
    +  },
    +  "fist-raised": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "d&d",
    +        "dnd",
    +        "fantasy",
    +        "hand",
    +        "ki",
    +        "monk",
    +        "resist",
    +        "strength",
    +        "unarmed combat"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6de",
    +    "label": "Raised Fist",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290233,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"
    +      }
    +    }
    +  },
    +  "flag": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "notice",
    +        "notification",
    +        "notify",
    +        "report"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f024",
    +    "label": "flag",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"
    +      },
    +      "regular": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z"
    +      }
    +    }
    +  },
    +  "flag-checkered": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "notice",
    +        "notification",
    +        "notify",
    +        "report"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f11e",
    +    "label": "flag-checkered",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M466.515 66.928C487.731 57.074 512 72.551 512 95.944v243.1c0 10.526-5.161 20.407-13.843 26.358-35.837 24.564-74.335 40.858-122.505 40.858-67.373 0-111.63-34.783-165.217-34.783-50.853 0-86.124 10.058-114.435 22.122V488c0 13.255-10.745 24-24 24H56c-13.255 0-24-10.745-24-24V101.945C17.497 91.825 8 75.026 8 56 8 24.296 34.345-1.254 66.338.048c28.468 1.158 51.779 23.968 53.551 52.404.52 8.342-.81 16.31-3.586 23.562C137.039 68.384 159.393 64 184.348 64c67.373 0 111.63 34.783 165.217 34.783 40.496 0 82.612-15.906 116.95-31.855zM96 134.63v70.49c29-10.67 51.18-17.83 73.6-20.91v-71.57c-23.5 2.17-40.44 9.79-73.6 21.99zm220.8 9.19c-26.417-4.672-49.886-13.979-73.6-21.34v67.42c24.175 6.706 47.566 16.444 73.6 22.31v-68.39zm-147.2 40.39v70.04c32.796-2.978 53.91-.635 73.6 3.8V189.9c-25.247-7.035-46.581-9.423-73.6-5.69zm73.6 142.23c26.338 4.652 49.732 13.927 73.6 21.34v-67.41c-24.277-6.746-47.54-16.45-73.6-22.32v68.39zM96 342.1c23.62-8.39 47.79-13.84 73.6-16.56v-71.29c-26.11 2.35-47.36 8.04-73.6 17.36v70.49zm368-221.6c-21.3 8.85-46.59 17.64-73.6 22.47v71.91c27.31-4.36 50.03-14.1 73.6-23.89V120.5zm0 209.96v-70.49c-22.19 14.2-48.78 22.61-73.6 26.02v71.58c25.07-2.38 48.49-11.04 73.6-27.11zM316.8 212.21v68.16c25.664 7.134 46.616 9.342 73.6 5.62v-71.11c-25.999 4.187-49.943 2.676-73.6-2.67z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M466.515 66.928C487.731 57.074 512 72.551 512 95.944v243.1c0 10.526-5.161 20.407-13.843 26.358-35.837 24.564-74.335 40.858-122.505 40.858-67.373 0-111.63-34.783-165.217-34.783-50.853 0-86.124 10.058-114.435 22.122V488c0 13.255-10.745 24-24 24H56c-13.255 0-24-10.745-24-24V101.945C17.497 91.825 8 75.026 8 56 8 24.296 34.345-1.254 66.338.048c28.468 1.158 51.779 23.968 53.551 52.404.52 8.342-.81 16.31-3.586 23.562C137.039 68.384 159.393 64 184.348 64c67.373 0 111.63 34.783 165.217 34.783 40.496 0 82.612-15.906 116.95-31.855zM96 134.63v70.49c29-10.67 51.18-17.83 73.6-20.91v-71.57c-23.5 2.17-40.44 9.79-73.6 21.99zm220.8 9.19c-26.417-4.672-49.886-13.979-73.6-21.34v67.42c24.175 6.706 47.566 16.444 73.6 22.31v-68.39zm-147.2 40.39v70.04c32.796-2.978 53.91-.635 73.6 3.8V189.9c-25.247-7.035-46.581-9.423-73.6-5.69zm73.6 142.23c26.338 4.652 49.732 13.927 73.6 21.34v-67.41c-24.277-6.746-47.54-16.45-73.6-22.32v68.39zM96 342.1c23.62-8.39 47.79-13.84 73.6-16.56v-71.29c-26.11 2.35-47.36 8.04-73.6 17.36v70.49zm368-221.6c-21.3 8.85-46.59 17.64-73.6 22.47v71.91c27.31-4.36 50.03-14.1 73.6-23.89V120.5zm0 209.96v-70.49c-22.19 14.2-48.78 22.61-73.6 26.02v71.58c25.07-2.38 48.49-11.04 73.6-27.11zM316.8 212.21v68.16c25.664 7.134 46.616 9.342 73.6 5.62v-71.11c-25.999 4.187-49.943 2.676-73.6-2.67z"
    +      }
    +    }
    +  },
    +  "flask": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "beaker",
    +        "experimental",
    +        "labs",
    +        "science"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0c3",
    +    "label": "Flask",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"
    +      }
    +    }
    +  },
    +  "flickr": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f16e",
    +    "label": "Flickr",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"
    +      }
    +    }
    +  },
    +  "flipboard": {
    +    "changes": [
    +      "5.0.5",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f44d",
    +    "label": "Flipboard",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821384,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z"
    +      }
    +    }
    +  },
    +  "flushed": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "embarrassed",
    +        "emoticon",
    +        "face"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f579",
    +    "label": "Flushed Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111666,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111618,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"
    +      }
    +    }
    +  },
    +  "fly": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f417",
    +    "label": "Fly",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1507669930672,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"
    +      }
    +    }
    +  },
    +  "folder": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f07b",
    +    "label": "Folder",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"
    +      },
    +      "regular": {
    +        "last_modified": 1535388320842,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z"
    +      }
    +    }
    +  },
    +  "folder-minus": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "archive",
    +        "delete",
    +        "negative",
    +        "remove"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f65d",
    +    "label": "Folder Minus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320880,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"
    +      }
    +    }
    +  },
    +  "folder-open": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f07c",
    +    "label": "Folder Open",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"
    +      },
    +      "regular": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M527.943 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h400a48.001 48.001 0 0 0 40.704-22.56l79.942-128c19.948-31.917-3.038-73.44-40.703-73.44zM54 112h134.118l64 64H426a6 6 0 0 1 6 6v42H152a48 48 0 0 0-41.098 23.202L48 351.449V117.993A5.993 5.993 0 0 1 54 112zm394 288H72l77.234-128H528l-80 128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M527.943 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h400a48.001 48.001 0 0 0 40.704-22.56l79.942-128c19.948-31.917-3.038-73.44-40.703-73.44zM54 112h134.118l64 64H426a6 6 0 0 1 6 6v42H152a48 48 0 0 0-41.098 23.202L48 351.449V117.993A5.993 5.993 0 0 1 54 112zm394 288H72l77.234-128H528l-80 128z"
    +      }
    +    }
    +  },
    +  "folder-plus": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "add",
    +        "create",
    +        "new",
    +        "positive"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f65e",
    +    "label": "Folder Plus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320880,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z"
    +      }
    +    }
    +  },
    +  "font": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "text"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f031",
    +    "label": "font",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M152 416h-24.013l26.586-80.782H292.8L319.386 416H296c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-26.739L275.495 42.746A16 16 0 0 0 260.382 32h-72.766a16 16 0 0 0-15.113 10.746L42.739 416H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm64.353-271.778c4.348-15.216 6.61-28.156 7.586-34.644.839 6.521 2.939 19.476 7.727 34.706l41.335 124.006h-98.619l41.971-124.068z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M152 416h-24.013l26.586-80.782H292.8L319.386 416H296c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-26.739L275.495 42.746A16 16 0 0 0 260.382 32h-72.766a16 16 0 0 0-15.113 10.746L42.739 416H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm64.353-271.778c4.348-15.216 6.61-28.156 7.586-34.644.839 6.521 2.939 19.476 7.727 34.706l41.335 124.006h-98.619l41.971-124.068z"
    +      }
    +    }
    +  },
    +  "font-awesome": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "meanpath"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2b4",
    +    "label": "Font Awesome",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z"
    +      }
    +    }
    +  },
    +  "font-awesome-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f35c",
    +    "label": "Alternate Font Awesome",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M397.8 67.8c7.8 0 14.3 6.6 14.3 14.3v347.6c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6m0-35.9H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-58.5 139.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M397.8 67.8c7.8 0 14.3 6.6 14.3 14.3v347.6c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6m0-35.9H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-58.5 139.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1z"
    +      }
    +    }
    +  },
    +  "font-awesome-flag": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.1"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f425",
    +    "label": "Font Awesome Flag",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1511282001102,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z"
    +      }
    +    }
    +  },
    +  "font-awesome-logo-full": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [
    +      "Font Awesome"
    +    ],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "regular",
    +      "solid",
    +      "brands"
    +    ],
    +    "unicode": "f4e6",
    +    "label": "Font Awesome Full Logo",
    +    "private": true,
    +    "svg": {
    +      "regular": {
    +        "last_modified": 1525209365049,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 3992 512\"><path d=\"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "3992",
    +          "512"
    +        ],
    +        "width": 3992,
    +        "height": 512,
    +        "path": "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"
    +      },
    +      "solid": {
    +        "last_modified": 1525209365067,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 3992 512\"><path d=\"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "3992",
    +          "512"
    +        ],
    +        "width": 3992,
    +        "height": 512,
    +        "path": "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"
    +      },
    +      "brands": {
    +        "last_modified": 1525209365019,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 3992 512\"><path d=\"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "3992",
    +          "512"
    +        ],
    +        "width": 3992,
    +        "height": 512,
    +        "path": "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"
    +      }
    +    }
    +  },
    +  "fonticons": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f280",
    +    "label": "Fonticons",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 32v448h448V32H0zm167.4 196h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4zM364 414.7H261.3v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm-21.9-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6-21.9 24.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 32v448h448V32H0zm167.4 196h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4zM364 414.7H261.3v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm-21.9-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6-21.9 24.2z"
    +      }
    +    }
    +  },
    +  "fonticons-fi": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3a2",
    +    "label": "Fonticons Fi",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z"
    +      }
    +    }
    +  },
    +  "football-ball": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "fall",
    +        "pigskin",
    +        "seasonal"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f44e",
    +    "label": "Football Ball",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527995,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"
    +      }
    +    }
    +  },
    +  "fort-awesome": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "castle"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f286",
    +    "label": "Fort Awesome",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426581998,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z"
    +      }
    +    }
    +  },
    +  "fort-awesome-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "castle"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3a3",
    +    "label": "Alternate Fort Awesome",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M211.7 241.1v51.7c0 2.1-1.6 3.7-3.7 3.7h-22.2c-2.1 0-3.7-1.6-3.7-3.7v-51.7c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7zm114.5-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm-29.1 263.2c-.9.1-1.7.3-2.6.4-1 .2-2.1.3-3.1.5-.9.1-1.8.3-2.8.4-1 .1-2 .3-3 .4-1 .1-2 .2-2.9.3-1 .1-1.9.2-2.9.3-1 .1-2.1.2-3.1.3-.9.1-1.8.2-2.7.2-1.1.1-2.3.1-3.4.2-.8 0-1.7.1-2.5.1-1.3.1-2.6.1-3.9.1-.7 0-1.4.1-2.1.1-2 0-4 .1-6 .1s-4 0-6-.1c-.7 0-1.4 0-2.1-.1-1.3 0-2.6-.1-3.9-.1-.8 0-1.7-.1-2.5-.1-1.1-.1-2.3-.1-3.4-.2-.9-.1-1.8-.1-2.7-.2-1-.1-2.1-.2-3.1-.3-1-.1-1.9-.2-2.9-.3-1-.1-2-.2-2.9-.3-1-.1-2-.2-3-.4-.9-.1-1.8-.3-2.8-.4-1-.1-2.1-.3-3.1-.5-.9-.1-1.7-.3-2.6-.4-65.6-10.9-122.5-47.7-160-99.4-.2-.2-.3-.5-.5-.7-.8-1.1-1.6-2.2-2.3-3.3-.3-.4-.6-.8-.8-1.2-.7-1.1-1.4-2.1-2.1-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.4-2.1-2-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.3-2.2-2-3.3-.2-.4-.5-.8-.7-1.2-2.4-4-4.6-8.1-6.8-12.2-.1-.2-.2-.3-.3-.5-.6-1.1-1.1-2.2-1.7-3.3-.3-.6-.6-1.1-.8-1.7-.5-1-1-2.1-1.5-3.1-.3-.7-.6-1.3-.9-2-.5-1-.9-2-1.4-3l-.9-2.1c-.4-1-.9-2-1.3-3-.3-.7-.6-1.5-.9-2.2l-1.2-3c-.3-.8-.6-1.5-.9-2.3-.4-1-.8-2-1.1-3-.3-.9-.6-1.8-1-2.8-.6-1.6-1.1-3.3-1.7-4.9-.3-.9-.6-1.8-.9-2.8-.3-.9-.5-1.8-.8-2.7-.3-.9-.6-1.9-.8-2.8-.3-.9-.5-1.8-.8-2.7-.3-1-.5-1.9-.8-2.9-.2-.9-.5-1.8-.7-2.7-.3-1-.5-2-.7-3-.2-.9-.4-1.7-.6-2.6-.2-1.1-.5-2.2-.7-3.2-.2-.8-.3-1.6-.5-2.4-.3-1.3-.5-2.7-.8-4-.1-.6-.2-1.1-.3-1.7l-.9-5.7c-.1-.6-.2-1.3-.3-1.9-.2-1.3-.4-2.6-.5-3.9-.1-.8-.2-1.5-.3-2.3-.1-1.2-.3-2.4-.4-3.6-.1-.8-.2-1.6-.2-2.4-.1-1.2-.2-2.4-.3-3.5-.1-.8-.1-1.6-.2-2.4-.1-1.2-.2-2.4-.2-3.7 0-.8-.1-1.5-.1-2.3-.1-1.3-.1-2.7-.2-4 0-.7 0-1.3-.1-2 0-2-.1-4-.1-6 0-53.5 16.9-103 45.8-143.6 2.3-3.2 4.7-6.4 7.1-9.5 4.9-6.2 10.1-12.3 15.6-18 2.7-2.9 5.5-5.7 8.4-8.4 2.9-2.7 5.8-5.4 8.8-8 4.5-3.9 9.1-7.6 13.9-11.2 1.6-1.2 3.2-2.4 4.8-3.5C140 34.2 171.7 20.1 206 13c16.1-3.3 32.9-5 50-5s33.8 1.7 50 5c34.3 7 66 21.1 93.6 40.7 1.6 1.2 3.2 2.3 4.8 3.5 4.8 3.6 9.4 7.3 13.9 11.2 12 10.4 23 21.9 32.8 34.4 2.5 3.1 4.8 6.3 7.1 9.5C487.1 153 504 202.5 504 256c0 2 0 4-.1 6 0 .7 0 1.3-.1 2 0 1.3-.1 2.7-.2 4 0 .8-.1 1.5-.1 2.3-.1 1.2-.1 2.4-.2.7-.1.8-.1 1.6-.2 2.4-.1 1.2-.2 2.4-.3 3.5-.1.8-.2 1.6-.2 2.4-.1 1.2-.3 2.4-.4 3.6-.1.8-.2 1.5-.3 2.3-.2 1.3-.4 2.6-.5 3.9-.1.6-.2 1.3-.3 1.9l-.9 5.7c-.1.6-.2 1.1-.3 1.7-.2 1.3-.5 2.7-.8 4-.2.8-.3 1.6-.5 2.4-.2 1.1-.5 2.2-.7 3.2-.2.9-.4 1.7-.6 2.6-.2 1-.5 2-.7 3-.2.9-.5 1.8-.7 2.7-.3 1-.5 1.9-.8 2.9-.2.9-.5 1.8-.8 2.7-.3.9-.6 1.9-.8 2.8-.3.9-.5 1.8-.8 2.7-.3.9-.6 1.8-.9 2.8-.5 1.6-1.1 3.3-1.7 4.9-.3.9-.6 1.8-1 2.8-.4 1-.7 2-1.1 3-.3.8-.6 1.5-.9 2.3l-1.2 3c-.3.7-.6 1.5-.9 2.2-.4 1-.8 2-1.3 3l-.9 2.1c-.4 1-.9 2-1.4 3-.3.7-.6 1.3-.9 2-.5 1-1 2.1-1.5 3.1-.3.6-.6 1.1-.8 1.7-.6 1.1-1.1 2.2-1.7 3.3-.1.2-.2.3-.3.5-2.2 4.1-4.4 8.2-6.8 12.2-.2.4-.5.8-.7 1.2-.7 1.1-1.3 2.2-2 3.3-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2 3.2-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2.1 3.2-.3.4-.6.8-.8 1.2-.8 1.1-1.5 2.2-2.3 3.3-.2.2-.3.5-.5.7-37.6 54.7-94.5 91.4-160.1 102.4zm117.3-86.2c13-13 24.2-27.4 33.6-42.9v-71.3c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7V326h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-4.8-6.5-3.7-9.5-3.7v-30.7c6.7-1.6 13.8-2.8 20.8-2.8 8.8 0 16.8 3.5 25.4 3.5 3.7 0 22.4-.9 22.4-6.5V93.4c0-2.1-1.6-3.7-3.7-3.7-4.2 0-12.2 3.5-19.4 3.5-7.9 0-16.9-3.5-26.3-3.5-6.5 0-12.9.9-19.2 2.3v-3.9c4.4-2.1 7.4-6.7 7.4-11.5 0-16.8-25.4-16.8-25.4 0 0 4.8 3 9.5 7.4 11.5v90.2c-3 0-9.5-1.1-9.5 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v144H93.5v-25.8c0-2.1-1.6-3.7-3.7-3.7H67.7c-2.1 0-3.7 1.6-3.7 3.7v71.3c9.4 15.5 20.6 29.9 33.6 42.9 20.6 20.6 44.5 36.7 71.2 48 13.9 5.9 28.2 10.3 42.9 13.2v-75.8c0-58.6 88.6-58.6 88.6 0v75.8c14.7-2.9 29-7.4 42.9-13.2 26.7-11.3 50.6-27.4 71.2-48\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M211.7 241.1v51.7c0 2.1-1.6 3.7-3.7 3.7h-22.2c-2.1 0-3.7-1.6-3.7-3.7v-51.7c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7zm114.5-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm-29.1 263.2c-.9.1-1.7.3-2.6.4-1 .2-2.1.3-3.1.5-.9.1-1.8.3-2.8.4-1 .1-2 .3-3 .4-1 .1-2 .2-2.9.3-1 .1-1.9.2-2.9.3-1 .1-2.1.2-3.1.3-.9.1-1.8.2-2.7.2-1.1.1-2.3.1-3.4.2-.8 0-1.7.1-2.5.1-1.3.1-2.6.1-3.9.1-.7 0-1.4.1-2.1.1-2 0-4 .1-6 .1s-4 0-6-.1c-.7 0-1.4 0-2.1-.1-1.3 0-2.6-.1-3.9-.1-.8 0-1.7-.1-2.5-.1-1.1-.1-2.3-.1-3.4-.2-.9-.1-1.8-.1-2.7-.2-1-.1-2.1-.2-3.1-.3-1-.1-1.9-.2-2.9-.3-1-.1-2-.2-2.9-.3-1-.1-2-.2-3-.4-.9-.1-1.8-.3-2.8-.4-1-.1-2.1-.3-3.1-.5-.9-.1-1.7-.3-2.6-.4-65.6-10.9-122.5-47.7-160-99.4-.2-.2-.3-.5-.5-.7-.8-1.1-1.6-2.2-2.3-3.3-.3-.4-.6-.8-.8-1.2-.7-1.1-1.4-2.1-2.1-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.4-2.1-2-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.3-2.2-2-3.3-.2-.4-.5-.8-.7-1.2-2.4-4-4.6-8.1-6.8-12.2-.1-.2-.2-.3-.3-.5-.6-1.1-1.1-2.2-1.7-3.3-.3-.6-.6-1.1-.8-1.7-.5-1-1-2.1-1.5-3.1-.3-.7-.6-1.3-.9-2-.5-1-.9-2-1.4-3l-.9-2.1c-.4-1-.9-2-1.3-3-.3-.7-.6-1.5-.9-2.2l-1.2-3c-.3-.8-.6-1.5-.9-2.3-.4-1-.8-2-1.1-3-.3-.9-.6-1.8-1-2.8-.6-1.6-1.1-3.3-1.7-4.9-.3-.9-.6-1.8-.9-2.8-.3-.9-.5-1.8-.8-2.7-.3-.9-.6-1.9-.8-2.8-.3-.9-.5-1.8-.8-2.7-.3-1-.5-1.9-.8-2.9-.2-.9-.5-1.8-.7-2.7-.3-1-.5-2-.7-3-.2-.9-.4-1.7-.6-2.6-.2-1.1-.5-2.2-.7-3.2-.2-.8-.3-1.6-.5-2.4-.3-1.3-.5-2.7-.8-4-.1-.6-.2-1.1-.3-1.7l-.9-5.7c-.1-.6-.2-1.3-.3-1.9-.2-1.3-.4-2.6-.5-3.9-.1-.8-.2-1.5-.3-2.3-.1-1.2-.3-2.4-.4-3.6-.1-.8-.2-1.6-.2-2.4-.1-1.2-.2-2.4-.3-3.5-.1-.8-.1-1.6-.2-2.4-.1-1.2-.2-2.4-.2-3.7 0-.8-.1-1.5-.1-2.3-.1-1.3-.1-2.7-.2-4 0-.7 0-1.3-.1-2 0-2-.1-4-.1-6 0-53.5 16.9-103 45.8-143.6 2.3-3.2 4.7-6.4 7.1-9.5 4.9-6.2 10.1-12.3 15.6-18 2.7-2.9 5.5-5.7 8.4-8.4 2.9-2.7 5.8-5.4 8.8-8 4.5-3.9 9.1-7.6 13.9-11.2 1.6-1.2 3.2-2.4 4.8-3.5C140 34.2 171.7 20.1 206 13c16.1-3.3 32.9-5 50-5s33.8 1.7 50 5c34.3 7 66 21.1 93.6 40.7 1.6 1.2 3.2 2.3 4.8 3.5 4.8 3.6 9.4 7.3 13.9 11.2 12 10.4 23 21.9 32.8 34.4 2.5 3.1 4.8 6.3 7.1 9.5C487.1 153 504 202.5 504 256c0 2 0 4-.1 6 0 .7 0 1.3-.1 2 0 1.3-.1 2.7-.2 4 0 .8-.1 1.5-.1 2.3-.1 1.2-.1 2.4-.2.7-.1.8-.1 1.6-.2 2.4-.1 1.2-.2 2.4-.3 3.5-.1.8-.2 1.6-.2 2.4-.1 1.2-.3 2.4-.4 3.6-.1.8-.2 1.5-.3 2.3-.2 1.3-.4 2.6-.5 3.9-.1.6-.2 1.3-.3 1.9l-.9 5.7c-.1.6-.2 1.1-.3 1.7-.2 1.3-.5 2.7-.8 4-.2.8-.3 1.6-.5 2.4-.2 1.1-.5 2.2-.7 3.2-.2.9-.4 1.7-.6 2.6-.2 1-.5 2-.7 3-.2.9-.5 1.8-.7 2.7-.3 1-.5 1.9-.8 2.9-.2.9-.5 1.8-.8 2.7-.3.9-.6 1.9-.8 2.8-.3.9-.5 1.8-.8 2.7-.3.9-.6 1.8-.9 2.8-.5 1.6-1.1 3.3-1.7 4.9-.3.9-.6 1.8-1 2.8-.4 1-.7 2-1.1 3-.3.8-.6 1.5-.9 2.3l-1.2 3c-.3.7-.6 1.5-.9 2.2-.4 1-.8 2-1.3 3l-.9 2.1c-.4 1-.9 2-1.4 3-.3.7-.6 1.3-.9 2-.5 1-1 2.1-1.5 3.1-.3.6-.6 1.1-.8 1.7-.6 1.1-1.1 2.2-1.7 3.3-.1.2-.2.3-.3.5-2.2 4.1-4.4 8.2-6.8 12.2-.2.4-.5.8-.7 1.2-.7 1.1-1.3 2.2-2 3.3-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2 3.2-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2.1 3.2-.3.4-.6.8-.8 1.2-.8 1.1-1.5 2.2-2.3 3.3-.2.2-.3.5-.5.7-37.6 54.7-94.5 91.4-160.1 102.4zm117.3-86.2c13-13 24.2-27.4 33.6-42.9v-71.3c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7V326h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-4.8-6.5-3.7-9.5-3.7v-30.7c6.7-1.6 13.8-2.8 20.8-2.8 8.8 0 16.8 3.5 25.4 3.5 3.7 0 22.4-.9 22.4-6.5V93.4c0-2.1-1.6-3.7-3.7-3.7-4.2 0-12.2 3.5-19.4 3.5-7.9 0-16.9-3.5-26.3-3.5-6.5 0-12.9.9-19.2 2.3v-3.9c4.4-2.1 7.4-6.7 7.4-11.5 0-16.8-25.4-16.8-25.4 0 0 4.8 3 9.5 7.4 11.5v90.2c-3 0-9.5-1.1-9.5 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v144H93.5v-25.8c0-2.1-1.6-3.7-3.7-3.7H67.7c-2.1 0-3.7 1.6-3.7 3.7v71.3c9.4 15.5 20.6 29.9 33.6 42.9 20.6 20.6 44.5 36.7 71.2 48 13.9 5.9 28.2 10.3 42.9 13.2v-75.8c0-58.6 88.6-58.6 88.6 0v75.8c14.7-2.9 29-7.4 42.9-13.2 26.7-11.3 50.6-27.4 71.2-48"
    +      }
    +    }
    +  },
    +  "forumbee": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f211",
    +    "label": "Forumbee",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"
    +      }
    +    }
    +  },
    +  "forward": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "forward",
    +        "next"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f04e",
    +    "label": "forward",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"
    +      }
    +    }
    +  },
    +  "foursquare": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f180",
    +    "label": "Foursquare",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 368 512\"><path d=\"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "368",
    +          "512"
    +        ],
    +        "width": 368,
    +        "height": 512,
    +        "path": "M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"
    +      }
    +    }
    +  },
    +  "free-code-camp": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2c5",
    +    "label": "Free Code Camp",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z"
    +      }
    +    }
    +  },
    +  "freebsd": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3a4",
    +    "label": "FreeBSD",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"
    +      }
    +    }
    +  },
    +  "frog": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "amphibian",
    +        "bullfrog",
    +        "fauna",
    +        "hop",
    +        "kermit",
    +        "kiss",
    +        "prince",
    +        "ribbit",
    +        "toad",
    +        "wart"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f52e",
    +    "label": "Frog",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154568,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"
    +      }
    +    }
    +  },
    +  "frown": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0",
    +      "5.0.9",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "disapprove",
    +        "emoticon",
    +        "face",
    +        "rating",
    +        "sad"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f119",
    +    "label": "Frowning Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111667,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111618,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"
    +      }
    +    }
    +  },
    +  "frown-open": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "disapprove",
    +        "emoticon",
    +        "face",
    +        "rating",
    +        "sad"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f57a",
    +    "label": "Frowning Face With Open Mouth",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111667,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111618,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z"
    +      }
    +    }
    +  },
    +  "fulcrum": {
    +    "changes": [
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f50b",
    +    "label": "Fulcrum",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442520,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 269.66 512\"><path d=\"M70.75 164.14l-35.38 43.55L0 164.14l35.38-43.55 35.37 43.55zM119.23 0L98.69 198.18 47.72 256l50.98 57.82L119.23 512V300.89L78.15 256l41.08-44.89V0zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55-35.38 43.55zm-48.48 46.97L191.5 256l-41.08 44.89V512l20.54-198.18L221.94 256l-50.98-57.82L150.42 0v211.11z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "269.66",
    +          "512"
    +        ],
    +        "width": 269,
    +        "height": 512,
    +        "path": "M70.75 164.14l-35.38 43.55L0 164.14l35.38-43.55 35.37 43.55zM119.23 0L98.69 198.18 47.72 256l50.98 57.82L119.23 512V300.89L78.15 256l41.08-44.89V0zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55-35.38 43.55zm-48.48 46.97L191.5 256l-41.08 44.89V512l20.54-198.18L221.94 256l-50.98-57.82L150.42 0v211.11z"
    +      }
    +    }
    +  },
    +  "funnel-dollar": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f662",
    +    "label": "Funnel Dollar",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320881,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"
    +      }
    +    }
    +  },
    +  "futbol": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0",
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "ball",
    +        "football",
    +        "soccer"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1e3",
    +    "label": "Futbol",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"
    +      },
    +      "regular": {
    +        "last_modified": 1518899527981,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z"
    +      }
    +    }
    +  },
    +  "galactic-republic": {
    +    "changes": [
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f50c",
    +    "label": "Galactic Republic",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442520,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"
    +      }
    +    }
    +  },
    +  "galactic-senate": {
    +    "changes": [
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f50d",
    +    "label": "Galactic Senate",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442521,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z"
    +      }
    +    }
    +  },
    +  "gamepad": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "controller"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f11b",
    +    "label": "Gamepad",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"
    +      }
    +    }
    +  },
    +  "gas-pump": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f52f",
    +    "label": "Gas Pump",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154568,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"
    +      }
    +    }
    +  },
    +  "gavel": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "hammer",
    +        "judge",
    +        "lawyer",
    +        "opinion"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0e3",
    +    "label": "Gavel",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502810244000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"
    +      }
    +    }
    +  },
    +  "gem": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "diamond"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f3a5",
    +    "label": "Gem",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"
    +      },
    +      "regular": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z"
    +      }
    +    }
    +  },
    +  "genderless": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f22d",
    +    "label": "Genderless",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 288 512\"><path d=\"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "288",
    +          "512"
    +        ],
    +        "width": 288,
    +        "height": 512,
    +        "path": "M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"
    +      }
    +    }
    +  },
    +  "get-pocket": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f265",
    +    "label": "Get Pocket",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"
    +      }
    +    }
    +  },
    +  "gg": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f260",
    +    "label": "GG Currency",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z"
    +      }
    +    }
    +  },
    +  "gg-circle": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f261",
    +    "label": "GG Currency Circle",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z"
    +      }
    +    }
    +  },
    +  "ghost": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "apparition",
    +        "blinky",
    +        "clyde",
    +        "floating",
    +        "halloween",
    +        "holiday",
    +        "inky",
    +        "pinky",
    +        "spirit"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6e2",
    +    "label": "Ghost",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290234,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "gift": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "generosity",
    +        "giving",
    +        "party",
    +        "present",
    +        "wrapped"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f06b",
    +    "label": "gift",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406018,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm448-288h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40zm-72 320h160c17.7 0 32-14.3 32-32V320H288v160z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm448-288h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40zm-72 320h160c17.7 0 32-14.3 32-32V320H288v160z"
    +      }
    +    }
    +  },
    +  "git": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1d3",
    +    "label": "Git",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M18.8 221.7c0 25.3 16.2 60 41.5 68.5v1c-18.8 8.3-24 50.6 1 65.8v1C34 367 16 384.3 16 414.2c0 51.5 48.8 65.8 91.5 65.8 52 0 90.7-18.7 90.7-76 0-70.5-101-44.5-101-82.8 0-13.5 7.2-18.7 19.7-21.3 41.5-7.7 67.5-40 67.5-82.2 0-7.3-1.5-14.2-4-21 6.7-1.5 13.2-3.3 19.7-5.5v-50.5c-17.2 6.8-35.7 11.8-54.5 11.8-53.8-31-126.8 1.3-126.8 69.2zm87.7 163.8c17 0 41.2 3 41.2 25 0 21.8-19.5 26.3-37.7 26.3-17.3 0-43.3-2.7-43.3-25.2.1-22.3 22.1-26.1 39.8-26.1zM103.3 256c-22 0-31.3-13-31.3-33.8 0-49.3 61-48.8 61-.5 0 20.3-8 34.3-29.7 34.3zM432 305.5v49c-13.3 7.3-30.5 9.8-45.5 9.8-53.5 0-59.8-42.2-59.8-85.7v-87.7h.5v-1c-7 0-7.3-1.6-24 1v-47.5h24c0-22.3.3-31-1.5-41.2h56.7c-2 13.8-1.5 27.5-1.5 41.2h51v47.5s-19.3-1-51-1V281c0 14.8 3.3 32.8 21.8 32.8 9.8 0 21.3-2.8 29.3-8.3zM286 68.7c0 18.7-14.5 36.2-33.8 36.2-19.8 0-34.5-17.2-34.5-36.2 0-19.3 14.5-36.7 34.5-36.7C272 32 286 50 286 68.7zm-6.2 74.5c-1.8 14.6-1.6 199.8 0 217.8h-55.5c1.6-18.1 1.8-203 0-217.8h55.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M18.8 221.7c0 25.3 16.2 60 41.5 68.5v1c-18.8 8.3-24 50.6 1 65.8v1C34 367 16 384.3 16 414.2c0 51.5 48.8 65.8 91.5 65.8 52 0 90.7-18.7 90.7-76 0-70.5-101-44.5-101-82.8 0-13.5 7.2-18.7 19.7-21.3 41.5-7.7 67.5-40 67.5-82.2 0-7.3-1.5-14.2-4-21 6.7-1.5 13.2-3.3 19.7-5.5v-50.5c-17.2 6.8-35.7 11.8-54.5 11.8-53.8-31-126.8 1.3-126.8 69.2zm87.7 163.8c17 0 41.2 3 41.2 25 0 21.8-19.5 26.3-37.7 26.3-17.3 0-43.3-2.7-43.3-25.2.1-22.3 22.1-26.1 39.8-26.1zM103.3 256c-22 0-31.3-13-31.3-33.8 0-49.3 61-48.8 61-.5 0 20.3-8 34.3-29.7 34.3zM432 305.5v49c-13.3 7.3-30.5 9.8-45.5 9.8-53.5 0-59.8-42.2-59.8-85.7v-87.7h.5v-1c-7 0-7.3-1.6-24 1v-47.5h24c0-22.3.3-31-1.5-41.2h56.7c-2 13.8-1.5 27.5-1.5 41.2h51v47.5s-19.3-1-51-1V281c0 14.8 3.3 32.8 21.8 32.8 9.8 0 21.3-2.8 29.3-8.3zM286 68.7c0 18.7-14.5 36.2-33.8 36.2-19.8 0-34.5-17.2-34.5-36.2 0-19.3 14.5-36.7 34.5-36.7C272 32 286 50 286 68.7zm-6.2 74.5c-1.8 14.6-1.6 199.8 0 217.8h-55.5c1.6-18.1 1.8-203 0-217.8h55.5z"
    +      }
    +    }
    +  },
    +  "git-square": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1d2",
    +    "label": "Git Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M140.1 348.5c12.1 0 29.5 2.1 29.5 17.9 0 15.5-13.9 18.8-27 18.8-12.3 0-30.9-2-30.9-18s15.7-18.7 28.4-18.7zm-24.7-116.6c0 14.8 6.6 24.1 22.3 24.1 15.5 0 21.2-10 21.2-24.5.1-34.4-43.5-34.8-43.5.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-241 93.7c-12.3 4.8-25.5 8.4-38.9 8.4-38.5-22.1-90.7.9-90.7 49.5 0 18 11.6 42.9 29.6 48.9v.7c-13.4 5.9-17.1 36.1.7 47v.7c-19.5 6.4-32.3 18.8-32.3 40.2 0 36.8 34.8 47 65.4 47 37.1 0 64.8-13.4 64.8-54.3 0-50.4-72.1-31.8-72.1-59.1 0-9.6 5.2-13.4 14.1-15.2 29.6-5.5 48.2-28.6 48.2-58.7 0-5.2-1.1-10.2-2.9-15 4.8-1.1 9.5-2.3 14.1-3.9v-36.2zm56.8 1.8h-39.6c1.3 10.6 1.1 142.6 0 155.5h39.6c-1.1-12.8-1.2-145.1 0-155.5zm4.5-53.3c0-13.4-10-26.2-24.1-26.2-14.3 0-24.6 12.5-24.6 26.2 0 13.6 10.5 25.9 24.6 25.9 13.7 0 24.1-12.5 24.1-25.9zm104.3 53.3h-36.4c0-9.8-.4-19.6 1.1-29.5h-40.5c1.3 7.3 1.1 13.6 1.1 29.5h-17.1v33.9c11.9-1.9 12.1-.7 17.1-.7v.7h-.4v62.7c0 31.1 4.5 61.2 42.7 61.2 10.7 0 23-1.8 32.5-7v-35c-5.7 3.9-13.9 5.9-20.9 5.9-13.2 0-15.5-12.9-15.5-23.4v-65.2c22.7 0 36.4.7 36.4.7v-33.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M140.1 348.5c12.1 0 29.5 2.1 29.5 17.9 0 15.5-13.9 18.8-27 18.8-12.3 0-30.9-2-30.9-18s15.7-18.7 28.4-18.7zm-24.7-116.6c0 14.8 6.6 24.1 22.3 24.1 15.5 0 21.2-10 21.2-24.5.1-34.4-43.5-34.8-43.5.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-241 93.7c-12.3 4.8-25.5 8.4-38.9 8.4-38.5-22.1-90.7.9-90.7 49.5 0 18 11.6 42.9 29.6 48.9v.7c-13.4 5.9-17.1 36.1.7 47v.7c-19.5 6.4-32.3 18.8-32.3 40.2 0 36.8 34.8 47 65.4 47 37.1 0 64.8-13.4 64.8-54.3 0-50.4-72.1-31.8-72.1-59.1 0-9.6 5.2-13.4 14.1-15.2 29.6-5.5 48.2-28.6 48.2-58.7 0-5.2-1.1-10.2-2.9-15 4.8-1.1 9.5-2.3 14.1-3.9v-36.2zm56.8 1.8h-39.6c1.3 10.6 1.1 142.6 0 155.5h39.6c-1.1-12.8-1.2-145.1 0-155.5zm4.5-53.3c0-13.4-10-26.2-24.1-26.2-14.3 0-24.6 12.5-24.6 26.2 0 13.6 10.5 25.9 24.6 25.9 13.7 0 24.1-12.5 24.1-25.9zm104.3 53.3h-36.4c0-9.8-.4-19.6 1.1-29.5h-40.5c1.3 7.3 1.1 13.6 1.1 29.5h-17.1v33.9c11.9-1.9 12.1-.7 17.1-.7v.7h-.4v62.7c0 31.1 4.5 61.2 42.7 61.2 10.7 0 23-1.8 32.5-7v-35c-5.7 3.9-13.9 5.9-20.9 5.9-13.2 0-15.5-12.9-15.5-23.4v-65.2c22.7 0 36.4.7 36.4.7v-33.8z"
    +      }
    +    }
    +  },
    +  "github": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "octocat"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f09b",
    +    "label": "GitHub",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"
    +      }
    +    }
    +  },
    +  "github-alt": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "octocat"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f113",
    +    "label": "Alternate GitHub",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 480 512\"><path d=\"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "480",
    +          "512"
    +        ],
    +        "width": 480,
    +        "height": 512,
    +        "path": "M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"
    +      }
    +    }
    +  },
    +  "github-square": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "octocat"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f092",
    +    "label": "GitHub Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z"
    +      }
    +    }
    +  },
    +  "gitkraken": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3a6",
    +    "label": "GitKraken",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1502479343000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 592 512\"><path d=\"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "592",
    +          "512"
    +        ],
    +        "width": 592,
    +        "height": 512,
    +        "path": "M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z"
    +      }
    +    }
    +  },
    +  "gitlab": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Axosoft"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f296",
    +    "label": "GitLab",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M29.782 199.732L256 493.714 8.074 309.699c-6.856-5.142-9.712-13.996-7.141-21.993l28.849-87.974zm75.405-174.806c-3.142-8.854-15.709-8.854-18.851 0L29.782 199.732h131.961L105.187 24.926zm56.556 174.806L256 493.714l94.257-293.982H161.743zm349.324 87.974l-28.849-87.974L256 493.714l247.926-184.015c6.855-5.142 9.711-13.996 7.141-21.993zm-85.404-262.78c-3.142-8.854-15.709-8.854-18.851 0l-56.555 174.806h131.961L425.663 24.926z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M29.782 199.732L256 493.714 8.074 309.699c-6.856-5.142-9.712-13.996-7.141-21.993l28.849-87.974zm75.405-174.806c-3.142-8.854-15.709-8.854-18.851 0L29.782 199.732h131.961L105.187 24.926zm56.556 174.806L256 493.714l94.257-293.982H161.743zm349.324 87.974l-28.849-87.974L256 493.714l247.926-184.015c6.855-5.142 9.711-13.996 7.141-21.993zm-85.404-262.78c-3.142-8.854-15.709-8.854-18.851 0l-56.555 174.806h131.961L425.663 24.926z"
    +      }
    +    }
    +  },
    +  "gitter": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f426",
    +    "label": "Gitter",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1510266191926,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"
    +      }
    +    }
    +  },
    +  "glass-martini": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "alcohol",
    +        "bar",
    +        "beverage",
    +        "drink",
    +        "glass",
    +        "liquor",
    +        "martini"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f000",
    +    "label": "Martini Glass",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111668,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"
    +      }
    +    }
    +  },
    +  "glass-martini-alt": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f57b",
    +    "label": "Alternate Glass Martini",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111668,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"
    +      }
    +    }
    +  },
    +  "glasses": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "foureyes",
    +        "hipster",
    +        "nerd",
    +        "reading",
    +        "sight",
    +        "spectacles"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f530",
    +    "label": "Glasses",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154569,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"
    +      }
    +    }
    +  },
    +  "glide": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2a5",
    +    "label": "Glide",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z"
    +      }
    +    }
    +  },
    +  "glide-g": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2a6",
    +    "label": "Glide G",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"
    +      }
    +    }
    +  },
    +  "globe": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "all",
    +        "coordinates",
    +        "country",
    +        "earth",
    +        "global",
    +        "gps",
    +        "language",
    +        "localize",
    +        "location",
    +        "map",
    +        "online",
    +        "place",
    +        "planet",
    +        "translate",
    +        "travel",
    +        "world"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0ac",
    +    "label": "Globe",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406018,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"
    +      }
    +    }
    +  },
    +  "globe-africa": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "all",
    +        "country",
    +        "earth",
    +        "global",
    +        "gps",
    +        "language",
    +        "localize",
    +        "location",
    +        "map",
    +        "online",
    +        "place",
    +        "planet",
    +        "translate",
    +        "travel",
    +        "world"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f57c",
    +    "label": "Globe with Africa shown",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111668,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"
    +      }
    +    }
    +  },
    +  "globe-americas": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "all",
    +        "country",
    +        "earth",
    +        "global",
    +        "gps",
    +        "language",
    +        "localize",
    +        "location",
    +        "map",
    +        "online",
    +        "place",
    +        "planet",
    +        "translate",
    +        "travel",
    +        "world"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f57d",
    +    "label": "Globe with Americas shown",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111669,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"
    +      }
    +    }
    +  },
    +  "globe-asia": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "all",
    +        "country",
    +        "earth",
    +        "global",
    +        "gps",
    +        "language",
    +        "localize",
    +        "location",
    +        "map",
    +        "online",
    +        "place",
    +        "planet",
    +        "translate",
    +        "travel",
    +        "world"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f57e",
    +    "label": "Globe with Asia shown",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111669,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"
    +      }
    +    }
    +  },
    +  "gofore": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3a7",
    +    "label": "Gofore",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 512\"><path d=\"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "400",
    +          "512"
    +        ],
    +        "width": 400,
    +        "height": 512,
    +        "path": "M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z"
    +      }
    +    }
    +  },
    +  "golf-ball": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f450",
    +    "label": "Golf Ball",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527996,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 416 512\"><path d=\"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "416",
    +          "512"
    +        ],
    +        "width": 416,
    +        "height": 512,
    +        "path": "M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"
    +      }
    +    }
    +  },
    +  "goodreads": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3a8",
    +    "label": "Goodreads",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"
    +      }
    +    }
    +  },
    +  "goodreads-g": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3a9",
    +    "label": "Goodreads G",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"
    +      }
    +    }
    +  },
    +  "google": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1a0",
    +    "label": "Google Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 488 512\"><path d=\"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "488",
    +          "512"
    +        ],
    +        "width": 488,
    +        "height": 512,
    +        "path": "M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"
    +      }
    +    }
    +  },
    +  "google-drive": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3aa",
    +    "label": "Google Drive",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"
    +      }
    +    }
    +  },
    +  "google-play": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3ab",
    +    "label": "Google Play",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"
    +      }
    +    }
    +  },
    +  "google-plus": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "google-plus-circle",
    +        "google-plus-official"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2b3",
    +    "label": "Google Plus",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z"
    +      }
    +    }
    +  },
    +  "google-plus-g": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "google-plus",
    +        "social network"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f0d5",
    +    "label": "Google Plus G",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"
    +      }
    +    }
    +  },
    +  "google-plus-square": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "social network"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f0d4",
    +    "label": "Google Plus Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1507838931323,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z"
    +      }
    +    }
    +  },
    +  "google-wallet": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1ee",
    +    "label": "Google Wallet",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"
    +      }
    +    }
    +  },
    +  "gopuram": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "building",
    +        "entrance",
    +        "hinduism",
    +        "temple",
    +        "tower"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f664",
    +    "label": "Gopuram",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320882,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496 352h-16V240c0-8.84-7.16-16-16-16h-16v-80c0-8.84-7.16-16-16-16h-16V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16S96 7.16 96 16v112H80c-8.84 0-16 7.16-16 16v80H48c-8.84 0-16 7.16-16 16v112H16c-8.84 0-16 7.16-16 16v128c0 8.84 7.16 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.84 0 16-7.16 16-16V368c0-8.84-7.16-16-16-16zm-272 0v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64h-64zm8-128v-48c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v48h-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496 352h-16V240c0-8.84-7.16-16-16-16h-16v-80c0-8.84-7.16-16-16-16h-16V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16S96 7.16 96 16v112H80c-8.84 0-16 7.16-16 16v80H48c-8.84 0-16 7.16-16 16v112H16c-8.84 0-16 7.16-16 16v128c0 8.84 7.16 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.84 0 16-7.16 16-16V368c0-8.84-7.16-16-16-16zm-272 0v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64h-64zm8-128v-48c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v48h-48z"
    +      }
    +    }
    +  },
    +  "graduation-cap": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "learning",
    +        "school",
    +        "student"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f19d",
    +    "label": "Graduation Cap",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831527,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"
    +      }
    +    }
    +  },
    +  "gratipay": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "favorite",
    +        "heart",
    +        "like",
    +        "love"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f184",
    +    "label": "Gratipay (Gittip)",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z"
    +      }
    +    }
    +  },
    +  "grav": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2d6",
    +    "label": "Grav",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z"
    +      }
    +    }
    +  },
    +  "greater-than": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f531",
    +    "label": "Greater Than",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154569,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"
    +      }
    +    }
    +  },
    +  "greater-than-equal": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f532",
    +    "label": "Greater Than Equal To",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154569,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"
    +      }
    +    }
    +  },
    +  "grimace": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cringe",
    +        "emoticon",
    +        "face"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f57f",
    +    "label": "Grimacing Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111669,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111620,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z"
    +      }
    +    }
    +  },
    +  "grin": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "laugh",
    +        "smile"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f580",
    +    "label": "Grinning Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111677,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111622,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"
    +      }
    +    }
    +  },
    +  "grin-alt": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "laugh",
    +        "smile"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f581",
    +    "label": "Alternate Grinning Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111670,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111620,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z"
    +      }
    +    }
    +  },
    +  "grin-beam": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "laugh",
    +        "smile"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f582",
    +    "label": "Grinning Face With Smiling Eyes",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111671,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111620,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z"
    +      }
    +    }
    +  },
    +  "grin-beam-sweat": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "smile"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f583",
    +    "label": "Grinning Face With Sweat",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111671,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 504 512\"><path d=\"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "504",
    +          "512"
    +        ],
    +        "width": 504,
    +        "height": 512,
    +        "path": "M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111620,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"
    +      }
    +    }
    +  },
    +  "grin-hearts": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "love",
    +        "smile"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f584",
    +    "label": "Smiling Face With Heart-Eyes",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111672,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111620,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z"
    +      }
    +    }
    +  },
    +  "grin-squint": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "laugh",
    +        "smile"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f585",
    +    "label": "Grinning Squinting Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111673,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111621,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z"
    +      }
    +    }
    +  },
    +  "grin-squint-tears": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "happy",
    +        "smile"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f586",
    +    "label": "Rolling on the Floor Laughing",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111672,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111621,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z"
    +      }
    +    }
    +  },
    +  "grin-stars": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "star-struck"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f587",
    +    "label": "Star-Struck",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111673,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111621,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z"
    +      }
    +    }
    +  },
    +  "grin-tears": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "LOL",
    +        "emoticon",
    +        "face"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f588",
    +    "label": "Face With Tears of Joy",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111674,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111621,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"
    +      }
    +    }
    +  },
    +  "grin-tongue": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "LOL",
    +        "emoticon",
    +        "face"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f589",
    +    "label": "Face With Tongue",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111676,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111622,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"
    +      }
    +    }
    +  },
    +  "grin-tongue-squint": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "LOL",
    +        "emoticon",
    +        "face"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f58a",
    +    "label": "Squinting Face With Tongue",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111675,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111621,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z"
    +      }
    +    }
    +  },
    +  "grin-tongue-wink": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "LOL",
    +        "emoticon",
    +        "face"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f58b",
    +    "label": "Winking Face With Tongue",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111675,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111621,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z"
    +      }
    +    }
    +  },
    +  "grin-wink": {
    +    "changes": [
    +      "5.1.0",
    +      "5.1.1"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "flirt",
    +        "laugh",
    +        "smile"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f58c",
    +    "label": "Grinning Winking Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111676,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"
    +      },
    +      "regular": {
    +        "last_modified": 1530132076296,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"
    +      }
    +    }
    +  },
    +  "grip-horizontal": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "affordance",
    +        "drag",
    +        "drop",
    +        "grab",
    +        "handle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f58d",
    +    "label": "Grip Horizontal",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111677,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "grip-vertical": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "affordance",
    +        "drag",
    +        "drop",
    +        "grab",
    +        "handle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f58e",
    +    "label": "Grip Vertical",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111678,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "gripfire": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3ac",
    +    "label": "Gripfire, Inc.",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M171.8 503.8c0-5.3 4.8-12.2 4.8-22.3 0-15.2-13-39.9-78.1-86.6C64.2 365.8 32 336.4 32 286.6 32 171.9 179.1 110.1 179.1 18c0-3.3-.2-6.7-.6-10 5.1 2.4 39.1 43.3 39.1 90.4 0 80.5-105.1 129.2-105.1 203 0 26.9 16.6 47.2 32.6 69.5 22.5 30.2 44.2 56.9 44.2 86.5-.1 14.5-4.4 29.7-17.5 46.4zm146-241.4c1.5 8.4 2.2 16.6 2.2 24.6 0 51.8-29.4 97.5-67.3 136.8-1 1-2.2 2.4-3.2 2.4-3.6 0-35.5-41.6-35.5-53.2 0 0 41.8-55.7 41.8-96.9 0-10.8-2.7-21.7-9.1-33.4-1.5 32.3-55.7 87.7-58.1 87.7-2.7 0-17.9-22-17.9-42.1 0-5.3 1-10.7 3.2-15.8 2.4-5.5 56.6-72 56.6-116.7 0-6.2-1-12-3.4-17.1l-4-7.2c16.7 6.5 82.6 64.1 94.7 130.9\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M171.8 503.8c0-5.3 4.8-12.2 4.8-22.3 0-15.2-13-39.9-78.1-86.6C64.2 365.8 32 336.4 32 286.6 32 171.9 179.1 110.1 179.1 18c0-3.3-.2-6.7-.6-10 5.1 2.4 39.1 43.3 39.1 90.4 0 80.5-105.1 129.2-105.1 203 0 26.9 16.6 47.2 32.6 69.5 22.5 30.2 44.2 56.9 44.2 86.5-.1 14.5-4.4 29.7-17.5 46.4zm146-241.4c1.5 8.4 2.2 16.6 2.2 24.6 0 51.8-29.4 97.5-67.3 136.8-1 1-2.2 2.4-3.2 2.4-3.6 0-35.5-41.6-35.5-53.2 0 0 41.8-55.7 41.8-96.9 0-10.8-2.7-21.7-9.1-33.4-1.5 32.3-55.7 87.7-58.1 87.7-2.7 0-17.9-22-17.9-42.1 0-5.3 1-10.7 3.2-15.8 2.4-5.5 56.6-72 56.6-116.7 0-6.2-1-12-3.4-17.1l-4-7.2c16.7 6.5 82.6 64.1 94.7 130.9"
    +      }
    +    }
    +  },
    +  "grunt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3ad",
    +    "label": "Grunt",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm79.2 233.7c2.2 2.3 1.5 5.3.9 6.8-1.1 2.7-5.5 11.6-13 19.8-2.7 2.9-6.6 4.6-11 4.6-4.3 0-8.7-1.6-11.8-4.3-2.3-2.1-10.2-9.5-13.7-18.6-1.3-3.4-1-6.1.9-8.1 1.3-1.3 4-2.9 9.5-2.9H160c4.1 0 7 .9 8.8 2.7zm62.9-187.9c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm17.8-8.8c7.5-11.4 25.4-26 44.9-37 3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6-.1.1 0 0 0 0zM263 421.4c1.9 1.9 2.2 4.6.9 7.9-3.5 8.9-11.4 16.1-13.7 18.1-3.1 2.6-7.4 4.2-11.8 4.2s-8.3-1.6-11-4.5c-7.5-8-12-16.7-13-19.3-.6-1.5-1.3-4.4.9-6.7 1.7-1.8 4.7-2.7 8.9-2.7h29.4c5.4.1 8.1 1.7 9.4 3zm-98.3-251.5c9.9 6 18.8 8.1 27.3 8.3 8.5-.2 17.4-2.3 27.3-8.3 0 0-14.5 17.7-27.2 17.8h-.2c-12.7-.2-27.2-17.8-27.2-17.8zm184.5 147.4c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm79.2 233.7c2.2 2.3 1.5 5.3.9 6.8-1.1 2.7-5.5 11.6-13 19.8-2.7 2.9-6.6 4.6-11 4.6-4.3 0-8.7-1.6-11.8-4.3-2.3-2.1-10.2-9.5-13.7-18.6-1.3-3.4-1-6.1.9-8.1 1.3-1.3 4-2.9 9.5-2.9H160c4.1 0 7 .9 8.8 2.7zm62.9-187.9c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm17.8-8.8c7.5-11.4 25.4-26 44.9-37 3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6-.1.1 0 0 0 0zM263 421.4c1.9 1.9 2.2 4.6.9 7.9-3.5 8.9-11.4 16.1-13.7 18.1-3.1 2.6-7.4 4.2-11.8 4.2s-8.3-1.6-11-4.5c-7.5-8-12-16.7-13-19.3-.6-1.5-1.3-4.4.9-6.7 1.7-1.8 4.7-2.7 8.9-2.7h29.4c5.4.1 8.1 1.7 9.4 3zm-98.3-251.5c9.9 6 18.8 8.1 27.3 8.3 8.5-.2 17.4-2.3 27.3-8.3 0 0-14.5 17.7-27.2 17.8h-.2c-12.7-.2-27.2-17.8-27.2-17.8zm184.5 147.4c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59z"
    +      }
    +    }
    +  },
    +  "gulp": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3ae",
    +    "label": "Gulp",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z"
    +      }
    +    }
    +  },
    +  "h-square": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "hospital",
    +        "hotel"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0fd",
    +    "label": "H Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"
    +      }
    +    }
    +  },
    +  "hacker-news": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1d4",
    +    "label": "Hacker News",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"
    +      }
    +    }
    +  },
    +  "hacker-news-square": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3af",
    +    "label": "Hacker News Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"
    +      }
    +    }
    +  },
    +  "hackerrank": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f5f7",
    +    "label": "Hackerrank",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1532362831424,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 464.36 512\"><path d=\"M453.5 128C439.01 103.05 261.13 0 232.16 0 203.2 0 25.25 102.79 10.84 128c-14.41 25.21-14.49 230.8 0 256.01C25.33 409.21 203.22 512 232.16 512s206.85-102.92 221.33-128c14.48-25.08 14.49-231.05.01-256zM292.13 414.22c-3.96 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32.04-2.02-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 5.96-5.74 5.94-10.13-.03-20.27-.11-30.41-.08-4.1.01-5.87-1.53-5.74-6.11.92-33.44 2.96-84.02-.15-212.67v-3.17c-9.67-.35-16.38-.96-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69 3.96 0 41.17 35.78 38.27 38.69-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2.03 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46.02 4.57 1.72 4.5 5.38-3.65 191.29-.66 177.94-.66 210.34 8.87.35 16.82.96 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "464.36",
    +          "512"
    +        ],
    +        "width": 464,
    +        "height": 512,
    +        "path": "M453.5 128C439.01 103.05 261.13 0 232.16 0 203.2 0 25.25 102.79 10.84 128c-14.41 25.21-14.49 230.8 0 256.01C25.33 409.21 203.22 512 232.16 512s206.85-102.92 221.33-128c14.48-25.08 14.49-231.05.01-256zM292.13 414.22c-3.96 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32.04-2.02-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 5.96-5.74 5.94-10.13-.03-20.27-.11-30.41-.08-4.1.01-5.87-1.53-5.74-6.11.92-33.44 2.96-84.02-.15-212.67v-3.17c-9.67-.35-16.38-.96-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69 3.96 0 41.17 35.78 38.27 38.69-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2.03 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46.02 4.57 1.72 4.5 5.38-3.65 191.29-.66 177.94-.66 210.34 8.87.35 16.82.96 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z"
    +      }
    +    }
    +  },
    +  "hammer": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "admin",
    +        "fix",
    +        "repair",
    +        "settings",
    +        "tool"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6e3",
    +    "label": "Hammer",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011827890,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"
    +      }
    +    }
    +  },
    +  "hamsa": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "amulet",
    +        "christianity",
    +        "islam",
    +        "jewish",
    +        "judaism",
    +        "muslim",
    +        "protection"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f665",
    +    "label": "Hamsa",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320882,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "hand-holding": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4bd",
    +    "label": "Hand Holding",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821450,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"
    +      }
    +    }
    +  },
    +  "hand-holding-heart": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4be",
    +    "label": "Hand Holding Heart",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406019,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"
    +      }
    +    }
    +  },
    +  "hand-holding-usd": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "$",
    +        "dollar sign",
    +        "donation",
    +        "giving",
    +        "money",
    +        "price"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4c0",
    +    "label": "Hand Holding US Dollar",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406019,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 544 512\"><path d=\"M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "544",
    +          "512"
    +        ],
    +        "width": 544,
    +        "height": 512,
    +        "path": "M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z"
    +      }
    +    }
    +  },
    +  "hand-lizard": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f258",
    +    "label": "Lizard (Hand)",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"
    +      },
    +      "regular": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z"
    +      }
    +    }
    +  },
    +  "hand-paper": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "stop"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f256",
    +    "label": "Paper (Hand)",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"
    +      },
    +      "regular": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z"
    +      }
    +    }
    +  },
    +  "hand-peace": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f25b",
    +    "label": "Peace (Hand)",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"
    +      },
    +      "regular": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z"
    +      }
    +    }
    +  },
    +  "hand-point-down": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "finger",
    +        "hand-o-down",
    +        "point"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0a7",
    +    "label": "Hand Pointing Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821450,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"
    +      },
    +      "regular": {
    +        "last_modified": 1503066239000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z"
    +      }
    +    }
    +  },
    +  "hand-point-left": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "back",
    +        "finger",
    +        "hand-o-left",
    +        "left",
    +        "point",
    +        "previous"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0a5",
    +    "label": "Hand Pointing Left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821451,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"
    +      },
    +      "regular": {
    +        "last_modified": 1503066239000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"
    +      }
    +    }
    +  },
    +  "hand-point-right": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "finger",
    +        "forward",
    +        "hand-o-right",
    +        "next",
    +        "point",
    +        "right"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0a4",
    +    "label": "Hand Pointing Right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821451,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"
    +      },
    +      "regular": {
    +        "last_modified": 1503066239000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"
    +      }
    +    }
    +  },
    +  "hand-point-up": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "finger",
    +        "hand-o-up",
    +        "point"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0a6",
    +    "label": "Hand Pointing Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821452,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"
    +      },
    +      "regular": {
    +        "last_modified": 1503066239000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"
    +      }
    +    }
    +  },
    +  "hand-pointer": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "select"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f25a",
    +    "label": "Pointer (Hand)",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"
    +      },
    +      "regular": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"
    +      }
    +    }
    +  },
    +  "hand-rock": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f255",
    +    "label": "Rock (Hand)",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 128.79c0-26.322-20.861-48.344-47.18-48.783C437.935 79.558 416 101.217 416 128h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C333.935 47.558 312 69.217 312 96v32h-8V80.79c0-26.322-20.861-48.344-47.18-48.783C229.935 31.558 208 53.217 208 80v48h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C125.935 47.558 104 69.217 104 96v136l-8-7.111V176.79c0-26.322-20.861-48.344-47.18-48.783C21.935 127.558 0 149.217 0 176v66.445a95.998 95.998 0 0 0 32.221 71.751l111.668 99.261A47.999 47.999 0 0 1 160 449.333V456c0 13.255 10.745 24 24 24h240c13.255 0 24-10.745 24-24v-2.921a96.01 96.01 0 0 1 7.523-37.254l48.954-116.265A96.002 96.002 0 0 0 512 262.306V128.79z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 128.79c0-26.322-20.861-48.344-47.18-48.783C437.935 79.558 416 101.217 416 128h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C333.935 47.558 312 69.217 312 96v32h-8V80.79c0-26.322-20.861-48.344-47.18-48.783C229.935 31.558 208 53.217 208 80v48h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C125.935 47.558 104 69.217 104 96v136l-8-7.111V176.79c0-26.322-20.861-48.344-47.18-48.783C21.935 127.558 0 149.217 0 176v66.445a95.998 95.998 0 0 0 32.221 71.751l111.668 99.261A47.999 47.999 0 0 1 160 449.333V456c0 13.255 10.745 24 24 24h240c13.255 0 24-10.745 24-24v-2.921a96.01 96.01 0 0 1 7.523-37.254l48.954-116.265A96.002 96.002 0 0 0 512 262.306V128.79z"
    +      },
    +      "regular": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"
    +      }
    +    }
    +  },
    +  "hand-scissors": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f257",
    +    "label": "Scissors (Hand)",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"
    +      },
    +      "regular": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z"
    +      }
    +    }
    +  },
    +  "hand-spock": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f259",
    +    "label": "Spock (Hand)",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M10.872 316.585c15.139-16.086 40.454-16.854 56.543-1.713L128 371.893v-79.405L88.995 120.865c-4.896-21.542 8.598-42.974 30.14-47.87 21.549-4.894 42.975 8.599 47.87 30.141L201.747 256h9.833L164.016 48.966c-4.946-21.531 8.498-42.994 30.028-47.94 21.532-4.95 42.994 8.498 47.94 30.028L293.664 256h15.105l48.425-193.702c5.357-21.432 27.075-34.462 48.507-29.104 21.432 5.358 34.463 27.075 29.104 48.507L391.231 256h11.08l30.768-129.265c5.117-21.491 26.685-34.768 48.177-29.647 21.491 5.117 34.765 26.686 29.647 48.177l-36.292 152.467A96.024 96.024 0 0 0 472 319.967v42.102a96.002 96.002 0 0 1-3.96 27.287l-26.174 88.287C435.825 498.022 417.101 512 395.846 512H179.172a48.002 48.002 0 0 1-32.898-13.046L12.585 373.128c-16.087-15.141-16.853-40.456-1.713-56.543z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M10.872 316.585c15.139-16.086 40.454-16.854 56.543-1.713L128 371.893v-79.405L88.995 120.865c-4.896-21.542 8.598-42.974 30.14-47.87 21.549-4.894 42.975 8.599 47.87 30.141L201.747 256h9.833L164.016 48.966c-4.946-21.531 8.498-42.994 30.028-47.94 21.532-4.95 42.994 8.498 47.94 30.028L293.664 256h15.105l48.425-193.702c5.357-21.432 27.075-34.462 48.507-29.104 21.432 5.358 34.463 27.075 29.104 48.507L391.231 256h11.08l30.768-129.265c5.117-21.491 26.685-34.768 48.177-29.647 21.491 5.117 34.765 26.686 29.647 48.177l-36.292 152.467A96.024 96.024 0 0 0 472 319.967v42.102a96.002 96.002 0 0 1-3.96 27.287l-26.174 88.287C435.825 498.022 417.101 512 395.846 512H179.172a48.002 48.002 0 0 1-32.898-13.046L12.585 373.128c-16.087-15.141-16.853-40.456-1.713-56.543z"
    +      },
    +      "regular": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z"
    +      }
    +    }
    +  },
    +  "hands": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4c2",
    +    "label": "Hands",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821452,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"
    +      }
    +    }
    +  },
    +  "hands-helping": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "aid",
    +        "assistance",
    +        "partnership",
    +        "volunteering"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4c4",
    +    "label": "Helping Hands",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406020,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"
    +      }
    +    }
    +  },
    +  "handshake": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "greeting",
    +        "partnership"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2b5",
    +    "label": "Handshake",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406021,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"
    +      },
    +      "regular": {
    +        "last_modified": 1522083406004,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"
    +      }
    +    }
    +  },
    +  "hanukiah": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "candle",
    +        "hanukkah",
    +        "jewish",
    +        "judaism",
    +        "light"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6e6",
    +    "label": "Hanukiah",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1536424727817,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"
    +      }
    +    }
    +  },
    +  "hashtag": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f292",
    +    "label": "Hashtag",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"
    +      }
    +    }
    +  },
    +  "hat-wizard": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "buckle",
    +        "cloth",
    +        "clothing",
    +        "d&d",
    +        "dnd",
    +        "fantasy",
    +        "halloween",
    +        "holiday",
    +        "mage",
    +        "magic",
    +        "pointy",
    +        "witch"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6e8",
    +    "label": "Wizard's Hat",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290234,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"
    +      }
    +    }
    +  },
    +  "haykal": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bahai",
    +        "bahá'í",
    +        "star"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f666",
    +    "label": "Haykal",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320883,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"
    +      }
    +    }
    +  },
    +  "hdd": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cpu",
    +        "hard drive",
    +        "harddrive",
    +        "machine",
    +        "save",
    +        "storage"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0a0",
    +    "label": "HDD",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"
    +      },
    +      "regular": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z"
    +      }
    +    }
    +  },
    +  "heading": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "header"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1dc",
    +    "label": "heading",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z"
    +      }
    +    }
    +  },
    +  "headphones": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "audio",
    +        "listen",
    +        "music",
    +        "sound",
    +        "speaker"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f025",
    +    "label": "headphones",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"
    +      }
    +    }
    +  },
    +  "headphones-alt": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "audio",
    +        "listen",
    +        "music",
    +        "sound",
    +        "speaker"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f58f",
    +    "label": "Alternate Headphones",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111678,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"
    +      }
    +    }
    +  },
    +  "headset": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "audio",
    +        "gamer",
    +        "gaming",
    +        "listen",
    +        "live chat",
    +        "microphone",
    +        "shot caller",
    +        "sound",
    +        "support",
    +        "telemarketer"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f590",
    +    "label": "Headset",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111679,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"
    +      }
    +    }
    +  },
    +  "heart": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "favorite",
    +        "like",
    +        "love"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f004",
    +    "label": "Heart",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406022,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"
    +      },
    +      "regular": {
    +        "last_modified": 1522083406005,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"
    +      }
    +    }
    +  },
    +  "heartbeat": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0",
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "ekg",
    +        "lifeline",
    +        "vital signs"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f21e",
    +    "label": "Heartbeat",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821453,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"
    +      }
    +    }
    +  },
    +  "helicopter": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "airwolf",
    +        "apache",
    +        "chopper",
    +        "flight",
    +        "fly"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f533",
    +    "label": "Helicopter",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154569,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"
    +      }
    +    }
    +  },
    +  "highlighter": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "edit",
    +        "marker",
    +        "sharpie",
    +        "update",
    +        "write"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f591",
    +    "label": "Highlighter",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111679,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 544 512\"><path d=\"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "544",
    +          "512"
    +        ],
    +        "width": 544,
    +        "height": 512,
    +        "path": "M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"
    +      }
    +    }
    +  },
    +  "hiking": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "activity",
    +        "backpack",
    +        "fall",
    +        "fitness",
    +        "outdoors",
    +        "seasonal",
    +        "walking"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6ec",
    +    "label": "Hiking",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290235,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"
    +      }
    +    }
    +  },
    +  "hippo": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "fauna",
    +        "hungry",
    +        "mammmal"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6ed",
    +    "label": "Hippo",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290235,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"
    +      }
    +    }
    +  },
    +  "hips": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f452",
    +    "label": "Hips",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1518899527948,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M0 80.2c0-1.8.9-2.7 2.7-2.7h40.9c1.9 0 2.8.9 2.8 2.7v81.2c15.2-7.7 31.7-11.5 49.8-11.4 24 .1 44.2 6.2 60.3 18 18.7 13.5 28 31.9 28 55.3v136.1c0 1.9-.9 2.8-2.7 2.8h-27.3c-9.1 0-16.4-7.3-16.4-16.3V223.3c0-.9 2.7-27-45.8-27-48.6 0-45.8 26.2-45.8 27v136.1c0 1.9-.9 2.8-2.8 2.8h-41c-1.8 0-2.7-.9-2.7-2.8V80.2zm497.7 221.5c13.7 10.2 34.1 19.1 58.4 19.1 23.3 0 32.8-4.5 36.5-13.6 3-7.9-.6-16.1-12.2-21.2l-53.6-23.5c-21.4-9.4-33.8-24-37.2-43.6-5.7-33.7 22.2-53.3 22.7-53.7 13.2-9.6 32-15.4 58.5-15.4 19 0 37.4 3.3 55.1 9.9 1.3.5 1.9 1.3 1.9 2.6V207c0 2.1-2.3 3.4-4 2.4-39.7-20.7-76.6-12.3-84-6.8-6.6 4.9-6 12.5 2.6 16.1L600 244c16.5 7.1 28.1 18.4 34.9 34.1 5.5 12.6 6.6 25.6 3.1 39.1-9.6 36.9-44.9 45.5-45.6 45.8-10.5 3.1-23.6 4.3-36.3 4.3-16.6 0-32.6-2.7-48.2-8.2-9.7-3.4-14.6-10.3-14.6-20.7V304c0-2.1 2.3-3.7 4.4-2.3zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zm-124.6 38.7c0 1.9-.9 2.8-2.8 2.8h-40.9c-1.6 0-2.7-1.4-2.7-2.8V157.6c0-1.4 1.1-2.8 2.7-2.8h40.9c1.9 0 2.8.9 2.8 2.8v201.8M228.3 72.5c15.9 0 28.9 12.7 28.9 28.9 0 15.8-12.7 28.9-28.9 28.9s-28.9-13.3-28.9-28.9c.1-16 13-28.9 28.9-28.9\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M0 80.2c0-1.8.9-2.7 2.7-2.7h40.9c1.9 0 2.8.9 2.8 2.7v81.2c15.2-7.7 31.7-11.5 49.8-11.4 24 .1 44.2 6.2 60.3 18 18.7 13.5 28 31.9 28 55.3v136.1c0 1.9-.9 2.8-2.7 2.8h-27.3c-9.1 0-16.4-7.3-16.4-16.3V223.3c0-.9 2.7-27-45.8-27-48.6 0-45.8 26.2-45.8 27v136.1c0 1.9-.9 2.8-2.8 2.8h-41c-1.8 0-2.7-.9-2.7-2.8V80.2zm497.7 221.5c13.7 10.2 34.1 19.1 58.4 19.1 23.3 0 32.8-4.5 36.5-13.6 3-7.9-.6-16.1-12.2-21.2l-53.6-23.5c-21.4-9.4-33.8-24-37.2-43.6-5.7-33.7 22.2-53.3 22.7-53.7 13.2-9.6 32-15.4 58.5-15.4 19 0 37.4 3.3 55.1 9.9 1.3.5 1.9 1.3 1.9 2.6V207c0 2.1-2.3 3.4-4 2.4-39.7-20.7-76.6-12.3-84-6.8-6.6 4.9-6 12.5 2.6 16.1L600 244c16.5 7.1 28.1 18.4 34.9 34.1 5.5 12.6 6.6 25.6 3.1 39.1-9.6 36.9-44.9 45.5-45.6 45.8-10.5 3.1-23.6 4.3-36.3 4.3-16.6 0-32.6-2.7-48.2-8.2-9.7-3.4-14.6-10.3-14.6-20.7V304c0-2.1 2.3-3.7 4.4-2.3zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zm-124.6 38.7c0 1.9-.9 2.8-2.8 2.8h-40.9c-1.6 0-2.7-1.4-2.7-2.8V157.6c0-1.4 1.1-2.8 2.7-2.8h40.9c1.9 0 2.8.9 2.8 2.8v201.8M228.3 72.5c15.9 0 28.9 12.7 28.9 28.9 0 15.8-12.7 28.9-28.9 28.9s-28.9-13.3-28.9-28.9c.1-16 13-28.9 28.9-28.9"
    +      }
    +    }
    +  },
    +  "hire-a-helper": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3b0",
    +    "label": "HireAHelper",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"
    +      }
    +    }
    +  },
    +  "history": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1da",
    +    "label": "History",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"
    +      }
    +    }
    +  },
    +  "hockey-puck": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f453",
    +    "label": "Hockey Puck",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527996,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"
    +      }
    +    }
    +  },
    +  "home": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "house",
    +        "main"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f015",
    +    "label": "home",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z"
    +      }
    +    }
    +  },
    +  "hooli": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f427",
    +    "label": "Hooli",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1510266191926,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M508.4 352h57.9V156.7L508.4 184v168zm73.7-110.5V352H640V241.5h-57.9zm-250.7-8.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.9 110.9v-31c-48.8-54.6-39-76.1-35.3-79.2 13.5-11.4 37.5-8 64.4 2.1L65.2 184v63.3c13.1 14.7 30.5 31.5 53.5 50.4l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zm-39.7 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm185.7-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm173.5-73c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8v16zm-21.4 0v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.5-21.7-38.5-31.5V352h57.9zm59.7.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3v5.3l-19.4.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M508.4 352h57.9V156.7L508.4 184v168zm73.7-110.5V352H640V241.5h-57.9zm-250.7-8.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.9 110.9v-31c-48.8-54.6-39-76.1-35.3-79.2 13.5-11.4 37.5-8 64.4 2.1L65.2 184v63.3c13.1 14.7 30.5 31.5 53.5 50.4l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zm-39.7 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm185.7-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm173.5-73c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8v16zm-21.4 0v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.5-21.7-38.5-31.5V352h57.9zm59.7.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3v5.3l-19.4.8z"
    +      }
    +    }
    +  },
    +  "hornbill": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f592",
    +    "label": "Hornbill",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529514897189,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 509.02 512\"><path d=\"M75.37 370.3c2.14 15.83-5.77 31.98-20.94 39.29-18.85 9.1-41.55 1.17-50.68-17.68-9.08-18.83-1.13-41.58 17.7-50.65 7.05-3.4 14.63-4.42 21.85-3.38-78.28-111.35 52-190.53 52-190.53-5.86 43.04-8.24 91.16-8.24 91.16-67.31 41.45.92 64.06 39.81 72.87 19.77 53.62 71.18 91.94 131.66 91.94 1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zM183.38 42.6c.89-7-.1-14.33-3.39-21.15-9.1-18.84-31.82-26.78-50.66-17.69-18.86 9.1-26.8 31.83-17.69 50.68 6.98 14.47 22.02 22.42 37.18 21.23-22.55 29.91-53.83 89.57-52.42 190.03l21.84-.15c-.02-.9-.14-1.77-.14-2.68 0-58.95 36.37-109.33 87.85-130.16 8.01-37.75 30.74-114.3 73.84-44.29 0 0 48.14 2.38 91.18 8.24 0-.01-77.84-128.03-187.59-54.06zm304.18 134.17c18.84-9.09 26.81-31.81 17.7-50.65-9.1-18.85-31.83-26.77-50.67-17.69-15.27 7.37-23.19 23.69-20.87 39.64-31.71-21.94-89.84-49.05-183.45-47.74l.14 22.5c2.7-.15 5.39-.41 8.14-.41 59.3 0 109.9 36.8 130.49 88.76 39.1 9.02 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 48.96-194.61 6.43.5 13.07-.49 19.31-3.5zM373.05 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15 0 60.27-38.05 111.55-91.39 131.45-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 50.97.31 4.72 1.45 9.45 3.64 13.97 9.06 18.89 31.8 26.78 50.64 17.71 18.86-9.1 26.79-31.83 17.7-50.65-6.56-13.62-20.26-21.43-34.45-21.35z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "509.02",
    +          "512"
    +        ],
    +        "width": 509,
    +        "height": 512,
    +        "path": "M75.37 370.3c2.14 15.83-5.77 31.98-20.94 39.29-18.85 9.1-41.55 1.17-50.68-17.68-9.08-18.83-1.13-41.58 17.7-50.65 7.05-3.4 14.63-4.42 21.85-3.38-78.28-111.35 52-190.53 52-190.53-5.86 43.04-8.24 91.16-8.24 91.16-67.31 41.45.92 64.06 39.81 72.87 19.77 53.62 71.18 91.94 131.66 91.94 1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zM183.38 42.6c.89-7-.1-14.33-3.39-21.15-9.1-18.84-31.82-26.78-50.66-17.69-18.86 9.1-26.8 31.83-17.69 50.68 6.98 14.47 22.02 22.42 37.18 21.23-22.55 29.91-53.83 89.57-52.42 190.03l21.84-.15c-.02-.9-.14-1.77-.14-2.68 0-58.95 36.37-109.33 87.85-130.16 8.01-37.75 30.74-114.3 73.84-44.29 0 0 48.14 2.38 91.18 8.24 0-.01-77.84-128.03-187.59-54.06zm304.18 134.17c18.84-9.09 26.81-31.81 17.7-50.65-9.1-18.85-31.83-26.77-50.67-17.69-15.27 7.37-23.19 23.69-20.87 39.64-31.71-21.94-89.84-49.05-183.45-47.74l.14 22.5c2.7-.15 5.39-.41 8.14-.41 59.3 0 109.9 36.8 130.49 88.76 39.1 9.02 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 48.96-194.61 6.43.5 13.07-.49 19.31-3.5zM373.05 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15 0 60.27-38.05 111.55-91.39 131.45-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 50.97.31 4.72 1.45 9.45 3.64 13.97 9.06 18.89 31.8 26.78 50.64 17.71 18.86-9.1 26.79-31.83 17.7-50.65-6.56-13.62-20.26-21.43-34.45-21.35z"
    +      }
    +    }
    +  },
    +  "horse": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "equus",
    +        "fauna",
    +        "mammmal",
    +        "neigh"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6f0",
    +    "label": "Horse",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290235,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"
    +      }
    +    }
    +  },
    +  "hospital": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "building",
    +        "emergency room",
    +        "medical center"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0f8",
    +    "label": "hospital",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z"
    +      }
    +    }
    +  },
    +  "hospital-alt": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "building",
    +        "emergency room",
    +        "medical center"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f47d",
    +    "label": "Alternate Hospital",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821453,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"
    +      }
    +    }
    +  },
    +  "hospital-symbol": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f47e",
    +    "label": "Hospital Symbol",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821453,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"
    +      }
    +    }
    +  },
    +  "hot-tub": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f593",
    +    "label": "Hot Tub",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111679,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"
    +      }
    +    }
    +  },
    +  "hotel": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "building",
    +        "lodging"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f594",
    +    "label": "Hotel",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111680,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"
    +      }
    +    }
    +  },
    +  "hotjar": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3b1",
    +    "label": "Hotjar",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821385,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z"
    +      }
    +    }
    +  },
    +  "hourglass": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f254",
    +    "label": "Hourglass",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"
    +      },
    +      "regular": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z"
    +      }
    +    }
    +  },
    +  "hourglass-end": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f253",
    +    "label": "Hourglass End",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"
    +      }
    +    }
    +  },
    +  "hourglass-half": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f252",
    +    "label": "Hourglass Half",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"
    +      }
    +    }
    +  },
    +  "hourglass-start": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f251",
    +    "label": "Hourglass Start",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"
    +      }
    +    }
    +  },
    +  "house-damage": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "devastation",
    +        "home"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6f1",
    +    "label": "House Damage",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011827891,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"
    +      }
    +    }
    +  },
    +  "houzz": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f27c",
    +    "label": "Houzz",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521730699234,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 414.6 512\"><path d=\"M258.9 330.7H154.3V480H0V32h109.5v104.5l305.1 85.6V480H258.9V330.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "414.6",
    +          "512"
    +        ],
    +        "width": 414,
    +        "height": 512,
    +        "path": "M258.9 330.7H154.3V480H0V32h109.5v104.5l305.1 85.6V480H258.9V330.7z"
    +      }
    +    }
    +  },
    +  "hryvnia": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "money"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6f2",
    +    "label": "Hryvnia",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011827891,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"
    +      }
    +    }
    +  },
    +  "html5": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f13b",
    +    "label": "HTML 5 Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"
    +      }
    +    }
    +  },
    +  "hubspot": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3b2",
    +    "label": "HubSpot",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"
    +      }
    +    }
    +  },
    +  "i-cursor": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f246",
    +    "label": "I Beam Cursor",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"
    +      }
    +    }
    +  },
    +  "id-badge": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2c1",
    +    "label": "Identification Badge",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365068,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"
    +      },
    +      "regular": {
    +        "last_modified": 1525209365050,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"
    +      }
    +    }
    +  },
    +  "id-card": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "document",
    +        "identification",
    +        "issued"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2c2",
    +    "label": "Identification Card",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365069,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"
    +      },
    +      "regular": {
    +        "last_modified": 1525209365051,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"
    +      }
    +    }
    +  },
    +  "id-card-alt": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "demographics"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f47f",
    +    "label": "Alternate Identification Card",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365068,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"
    +      }
    +    }
    +  },
    +  "image": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "album",
    +        "photo",
    +        "picture"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f03e",
    +    "label": "Image",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"
    +      }
    +    }
    +  },
    +  "images": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "album",
    +        "photo",
    +        "picture"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f302",
    +    "label": "Images",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z"
    +      }
    +    }
    +  },
    +  "imdb": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2d8",
    +    "label": "IMDB",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M350.5 288.7c0 5.4 1.6 14.4-6.2 14.4-1.6 0-3-.8-3.8-2.4-2.2-5.1-1.1-44.1-1.1-44.7 0-3.8-1.1-12.7 4.9-12.7 7.3 0 6.2 7.3 6.2 12.7v32.7zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4v-49.3zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM21.3 228.8c-.1.1-.2.3-.3.4h.3v-.4zM97 192H64v127.8h33V192zm113.3 0h-43.1l-7.6 59.9c-2.7-20-5.4-40.1-8.7-59.9h-42.8v127.8h29v-84.5l12.2 84.5h20.6l11.6-86.4v86.4h28.7V192zm86.3 45.3c0-8.1.3-16.8-1.4-24.4-4.3-22.5-31.4-20.9-49-20.9h-24.6v127.8c86.1.1 75 6 75-82.5zm85.9 17.3c0-17.3-.8-30.1-22.2-30.1-8.9 0-14.9 2.7-20.9 9.2V192h-31.7v127.8h29.8l1.9-8.1c5.7 6.8 11.9 9.8 20.9 9.8 19.8 0 22.2-15.2 22.2-30.9v-36z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M350.5 288.7c0 5.4 1.6 14.4-6.2 14.4-1.6 0-3-.8-3.8-2.4-2.2-5.1-1.1-44.1-1.1-44.7 0-3.8-1.1-12.7 4.9-12.7 7.3 0 6.2 7.3 6.2 12.7v32.7zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4v-49.3zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM21.3 228.8c-.1.1-.2.3-.3.4h.3v-.4zM97 192H64v127.8h33V192zm113.3 0h-43.1l-7.6 59.9c-2.7-20-5.4-40.1-8.7-59.9h-42.8v127.8h29v-84.5l12.2 84.5h20.6l11.6-86.4v86.4h28.7V192zm86.3 45.3c0-8.1.3-16.8-1.4-24.4-4.3-22.5-31.4-20.9-49-20.9h-24.6v127.8c86.1.1 75 6 75-82.5zm85.9 17.3c0-17.3-.8-30.1-22.2-30.1-8.9 0-14.9 2.7-20.9 9.2V192h-31.7v127.8h29.8l1.9-8.1c5.7 6.8 11.9 9.8 20.9 9.8 19.8 0 22.2-15.2 22.2-30.9v-36z"
    +      }
    +    }
    +  },
    +  "inbox": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f01c",
    +    "label": "inbox",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"
    +      }
    +    }
    +  },
    +  "indent": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f03c",
    +    "label": "Indent",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm176 144h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm-52.687-111.313l-96-95.984C17.266 138.652 0 145.776 0 160.016v191.975c0 14.329 17.325 21.304 27.313 11.313l96-95.992c6.249-6.247 6.249-16.377 0-22.625z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm176 144h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm-52.687-111.313l-96-95.984C17.266 138.652 0 145.776 0 160.016v191.975c0 14.329 17.325 21.304 27.313 11.313l96-95.992c6.249-6.247 6.249-16.377 0-22.625z"
    +      }
    +    }
    +  },
    +  "industry": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "factory",
    +        "manufacturing"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f275",
    +    "label": "Industry",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"
    +      }
    +    }
    +  },
    +  "infinity": {
    +    "changes": [
    +      "5.0.13",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f534",
    +    "label": "Infinity",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154569,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"
    +      }
    +    }
    +  },
    +  "info": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "details",
    +        "help",
    +        "information",
    +        "more"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f129",
    +    "label": "Info",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 192 512\"><path d=\"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "192",
    +          "512"
    +        ],
    +        "width": 192,
    +        "height": 512,
    +        "path": "M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"
    +      }
    +    }
    +  },
    +  "info-circle": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "details",
    +        "help",
    +        "information",
    +        "more"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f05a",
    +    "label": "Info Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"
    +      }
    +    }
    +  },
    +  "instagram": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f16d",
    +    "label": "Instagram",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"
    +      }
    +    }
    +  },
    +  "internet-explorer": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "browser",
    +        "ie"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f26b",
    +    "label": "Internet-explorer",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"
    +      }
    +    }
    +  },
    +  "ioxhost": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f208",
    +    "label": "ioxhost",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"
    +      }
    +    }
    +  },
    +  "italic": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "italics"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f033",
    +    "label": "italic",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z"
    +      }
    +    }
    +  },
    +  "itunes": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3b4",
    +    "label": "iTunes",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z"
    +      }
    +    }
    +  },
    +  "itunes-note": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3b5",
    +    "label": "Itunes Note",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z"
    +      }
    +    }
    +  },
    +  "java": {
    +    "changes": [
    +      "5.0.10"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4e4",
    +    "label": "Java",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1523653480521,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 377.6 512\"><path d=\"M121.6 396s-19.6 11.4 13.9 15.2c40.6 4.6 61.3 4 106-4.5 0 0 11.8 7.4 28.2 13.8C169.5 463.4 42.9 418 121.6 396m-12.2-56.1s-21.9 16.2 11.6 19.7c43.3 4.5 77.6 4.8 136.8-6.6 0 0 8.2 8.3 21.1 12.8-121.3 35.5-256.3 2.9-169.5-25.9m103.2-95.1c24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3.1 0-175.2 43.8-91.5 140.2m132.6 192.6s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8M131 281.8s-93.1 22.1-33 30.1c25.4 3.4 76 2.6 123.1-1.3 38.5-3.2 77.2-10.2 77.2-10.2s-13.6 5.8-23.4 12.5c-94.5 24.9-277 13.3-224.5-12.1 44.5-21.4 80.6-19 80.6-19m167 93.3c96.1-49.9 51.6-97.9 20.6-91.4-7.6 1.6-11 3-11 3s2.8-4.4 8.2-6.3c61.3-21.6 108.5 63.6-19.8 97.3 0-.1 1.5-1.4 2-2.6M240 0s53.2 53.2-50.5 135c-83.1 65.6-19 103.1 0 145.8-48.5-43.8-84.1-82.3-60.2-118.2C164.4 110.1 261.5 84.5 240 0m-99.5 510.4c92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "377.6",
    +          "512"
    +        ],
    +        "width": 377,
    +        "height": 512,
    +        "path": "M121.6 396s-19.6 11.4 13.9 15.2c40.6 4.6 61.3 4 106-4.5 0 0 11.8 7.4 28.2 13.8C169.5 463.4 42.9 418 121.6 396m-12.2-56.1s-21.9 16.2 11.6 19.7c43.3 4.5 77.6 4.8 136.8-6.6 0 0 8.2 8.3 21.1 12.8-121.3 35.5-256.3 2.9-169.5-25.9m103.2-95.1c24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3.1 0-175.2 43.8-91.5 140.2m132.6 192.6s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8M131 281.8s-93.1 22.1-33 30.1c25.4 3.4 76 2.6 123.1-1.3 38.5-3.2 77.2-10.2 77.2-10.2s-13.6 5.8-23.4 12.5c-94.5 24.9-277 13.3-224.5-12.1 44.5-21.4 80.6-19 80.6-19m167 93.3c96.1-49.9 51.6-97.9 20.6-91.4-7.6 1.6-11 3-11 3s2.8-4.4 8.2-6.3c61.3-21.6 108.5 63.6-19.8 97.3 0-.1 1.5-1.4 2-2.6M240 0s53.2 53.2-50.5 135c-83.1 65.6-19 103.1 0 145.8-48.5-43.8-84.1-82.3-60.2-118.2C164.4 110.1 261.5 84.5 240 0m-99.5 510.4c92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6"
    +      }
    +    }
    +  },
    +  "jedi": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "star wars"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f669",
    +    "label": "Jedi",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320884,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 544 512\"><path d=\"M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "544",
    +          "512"
    +        ],
    +        "width": 544,
    +        "height": 512,
    +        "path": "M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z"
    +      }
    +    }
    +  },
    +  "jedi-order": {
    +    "changes": [
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "star wars"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f50e",
    +    "label": "Jedi Order",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442521,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M231.89 335.72l31.44-45.89-20.18 55.5 62.56 9.09-62.56 9.08 24.22 47.43s-30.22-31.77-34.49-36.25c1.76 68.78 2.19 85.7 2.19 85.7s154.4-71.65 68.62-230.09c0 0 106.97-118.07 10.09-190.73 0 0 165.5 99.91 60.55 271.46 0 0 86.78-84.77 41.37-170.54 0 0 78.71 111.01-17.16 233.11 0 0 26.24-16.15 49.45-77.71 0 0-16.93 183.26-221.96 185.66v.02h-4.08v-.02C16.93 479.14 0 295.88 0 295.88c23.21 61.56 49.44 77.71 49.44 77.71-95.87-122.11-17.15-233.11-17.15-233.11-45.41 85.78 41.38 170.54 41.38 170.54-104.95-171.56 60.54-271.46 60.54-271.46-96.88 72.66 10.09 190.73 10.09 190.73-85.78 158.44 68.62 230.09 68.62 230.09s.43-16.93 2.19-85.7l-34.48 36.25 24.22-47.43-62.56-9.08 62.56-9.09-20.18-55.5 31.44 45.89c2.25-87.85 7.82-305.82 7.85-306.85l.01-2.43.02 1 .03-1 .01 2.43c.05 1.72 5.61 219.2 7.86 306.85z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M231.89 335.72l31.44-45.89-20.18 55.5 62.56 9.09-62.56 9.08 24.22 47.43s-30.22-31.77-34.49-36.25c1.76 68.78 2.19 85.7 2.19 85.7s154.4-71.65 68.62-230.09c0 0 106.97-118.07 10.09-190.73 0 0 165.5 99.91 60.55 271.46 0 0 86.78-84.77 41.37-170.54 0 0 78.71 111.01-17.16 233.11 0 0 26.24-16.15 49.45-77.71 0 0-16.93 183.26-221.96 185.66v.02h-4.08v-.02C16.93 479.14 0 295.88 0 295.88c23.21 61.56 49.44 77.71 49.44 77.71-95.87-122.11-17.15-233.11-17.15-233.11-45.41 85.78 41.38 170.54 41.38 170.54-104.95-171.56 60.54-271.46 60.54-271.46-96.88 72.66 10.09 190.73 10.09 190.73-85.78 158.44 68.62 230.09 68.62 230.09s.43-16.93 2.19-85.7l-34.48 36.25 24.22-47.43-62.56-9.08 62.56-9.09-20.18-55.5 31.44 45.89c2.25-87.85 7.82-305.82 7.85-306.85l.01-2.43.02 1 .03-1 .01 2.43c.05 1.72 5.61 219.2 7.86 306.85z"
    +      }
    +    }
    +  },
    +  "jenkins": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3b6",
    +    "label": "Jenkis",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"
    +      }
    +    }
    +  },
    +  "joget": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3b7",
    +    "label": "Joget",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M227.5 468.7c-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1M66.1 143.9C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9-55.5-1.4-81.7-20.8-58.5-48.2 23.2-27.4 51.1-40.7 68.9-51.2 17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1m-29.2-18c-71.9 116.6-35.6 269.3 81 341.2 116.6 71.9 269.3 35.6 341.2-80.9 71.9-116.6 35.6-269.4-81-341.2-40.5-25.1-85.5-37-129.9-37C165 8 83.8 49.9 36.9 125.9m244.4 110.4c-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5c10.5-6.4 31.9-14 13.4-24.6-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M227.5 468.7c-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1M66.1 143.9C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9-55.5-1.4-81.7-20.8-58.5-48.2 23.2-27.4 51.1-40.7 68.9-51.2 17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1m-29.2-18c-71.9 116.6-35.6 269.3 81 341.2 116.6 71.9 269.3 35.6 341.2-80.9 71.9-116.6 35.6-269.4-81-341.2-40.5-25.1-85.5-37-129.9-37C165 8 83.8 49.9 36.9 125.9m244.4 110.4c-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5c10.5-6.4 31.9-14 13.4-24.6-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6"
    +      }
    +    }
    +  },
    +  "joint": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "blunt",
    +        "cannabis",
    +        "doobie",
    +        "drugs",
    +        "marijuana",
    +        "roach",
    +        "smoke",
    +        "smoking",
    +        "spliff"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f595",
    +    "label": "Joint",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111681,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"
    +      }
    +    }
    +  },
    +  "joomla": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1aa",
    +    "label": "Joomla Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"
    +      }
    +    }
    +  },
    +  "journal-whills": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "book",
    +        "jedi",
    +        "star wars",
    +        "the force"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f66a",
    +    "label": "Journal of the Whills",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320884,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"
    +      }
    +    }
    +  },
    +  "js": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3b8",
    +    "label": "JavaScript (JS)",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"
    +      }
    +    }
    +  },
    +  "js-square": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3b9",
    +    "label": "JavaScript (JS) Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426581999,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"
    +      }
    +    }
    +  },
    +  "jsfiddle": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1cc",
    +    "label": "jsFiddle",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"
    +      }
    +    }
    +  },
    +  "kaaba": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "building",
    +        "cube",
    +        "islam",
    +        "muslim"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f66b",
    +    "label": "Kaaba",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320884,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"
    +      }
    +    }
    +  },
    +  "kaggle": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f5fa",
    +    "label": "Kaggle",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1532362831424,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 291.72 512\"><path d=\"M291.72 508.98c-.51 2.01-2.51 3.01-6.01 3.01h-66.92c-4.02 0-7.51-1.75-10.52-5.27L97.74 366.14l-30.82 29.32v109.02c0 5.02-2.51 7.52-7.52 7.52H7.52C2.5 512 0 509.5 0 504.48V7.51C0 2.51 2.5 0 7.52 0H59.4c5.01 0 7.52 2.51 7.52 7.51v306l132.32-133.82c3.51-3.5 7.02-5.26 10.52-5.26h69.18c6.96 0 7.9 7.87 5.26 10.52L144.35 320.26l145.86 181.2\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "291.72",
    +          "512"
    +        ],
    +        "width": 291,
    +        "height": 512,
    +        "path": "M291.72 508.98c-.51 2.01-2.51 3.01-6.01 3.01h-66.92c-4.02 0-7.51-1.75-10.52-5.27L97.74 366.14l-30.82 29.32v109.02c0 5.02-2.51 7.52-7.52 7.52H7.52C2.5 512 0 509.5 0 504.48V7.51C0 2.51 2.5 0 7.52 0H59.4c5.01 0 7.52 2.51 7.52 7.51v306l132.32-133.82c3.51-3.5 7.02-5.26 10.52-5.26h69.18c6.96 0 7.9 7.87 5.26 10.52L144.35 320.26l145.86 181.2"
    +      }
    +    }
    +  },
    +  "key": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "password",
    +        "unlock"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f084",
    +    "label": "key",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"
    +      }
    +    }
    +  },
    +  "keybase": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4f5",
    +    "label": "Keybase",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365019,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 412.3 512\"><path d=\"M177.2 430.9c0 9.8-8 17.8-17.8 17.8s-17.8-8-17.8-17.8 8-17.8 17.8-17.8c9.8-.1 17.8 7.9 17.8 17.8zM270 413c-9.8 0-17.8 8-17.8 17.8s8 17.8 17.8 17.8 17.8-8 17.8-17.8-8-17.8-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3c4.8 26.7 15.7 51.3 31.2 72.3H46.1c-9.7-15.8-17.2-33-22.2-51.3L.1 454c0-74.9-5.5-147.6 61.5-215.2 20.2-20.4 43.7-36.2 69.1-46.7-6.8-13.5-9.5-29.2-7.8-46l-19.9-1.2c-17.9-1.1-31.6-16.5-30.6-34.4v-.1L74 84.2c1.1-17.1 15.4-30.6 32.5-30.6 1.3 0-.3-.1 28.2 1.7 13.9.8 21.5 9.8 22.8 11.4 7.1-10.4 14.5-20.5 24.6-34.5l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7C246 92.9 262 107 271 126c.4.9 15.5 29 1.2 62.6 19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM128 122.3c3.2-10 7.7-19.7 13.1-29.4.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6-4.6 0-8.3 3.5-8.6 8.1l-1.6 26.2c-.3 4.7 3.4 8.8 8.1 9.1l23.5 1.4zm25.8 61.8c5.6 9.4 14.1 16.1 22.3 20 0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7-10.3.4-19.7-5.4-23.7-15.3-13.7 21.2-37.2 62.5-17.6 95.1zm82.9 68.4L217 268.6c-1.9 1.6-2.2 4.4-.6 6.3l8.9 10.9c1 1.2 3.8 2.7 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zm118.4 25.7c-16.9-23.7-42.6-46.7-73.4-60.4-7.9-3.5-15-6.1-22.9-8.6-2 2.2-4.1 4.3-6.4 6.2l31.9 39.2c10.4 12.7 8.5 31.5-4.2 41.9-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9-8.6 0-16.6-3.8-22.1-10.5l-8.9-10.9c-6.3-7.8-7.9-17.9-5-26.8-8.2-9.9-8.3-21.3-4.6-30-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zM110.6 107.3l15.6 1 1-15.6-15.6-1-1 15.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "412.3",
    +          "512"
    +        ],
    +        "width": 412,
    +        "height": 512,
    +        "path": "M177.2 430.9c0 9.8-8 17.8-17.8 17.8s-17.8-8-17.8-17.8 8-17.8 17.8-17.8c9.8-.1 17.8 7.9 17.8 17.8zM270 413c-9.8 0-17.8 8-17.8 17.8s8 17.8 17.8 17.8 17.8-8 17.8-17.8-8-17.8-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3c4.8 26.7 15.7 51.3 31.2 72.3H46.1c-9.7-15.8-17.2-33-22.2-51.3L.1 454c0-74.9-5.5-147.6 61.5-215.2 20.2-20.4 43.7-36.2 69.1-46.7-6.8-13.5-9.5-29.2-7.8-46l-19.9-1.2c-17.9-1.1-31.6-16.5-30.6-34.4v-.1L74 84.2c1.1-17.1 15.4-30.6 32.5-30.6 1.3 0-.3-.1 28.2 1.7 13.9.8 21.5 9.8 22.8 11.4 7.1-10.4 14.5-20.5 24.6-34.5l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7C246 92.9 262 107 271 126c.4.9 15.5 29 1.2 62.6 19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM128 122.3c3.2-10 7.7-19.7 13.1-29.4.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6-4.6 0-8.3 3.5-8.6 8.1l-1.6 26.2c-.3 4.7 3.4 8.8 8.1 9.1l23.5 1.4zm25.8 61.8c5.6 9.4 14.1 16.1 22.3 20 0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7-10.3.4-19.7-5.4-23.7-15.3-13.7 21.2-37.2 62.5-17.6 95.1zm82.9 68.4L217 268.6c-1.9 1.6-2.2 4.4-.6 6.3l8.9 10.9c1 1.2 3.8 2.7 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zm118.4 25.7c-16.9-23.7-42.6-46.7-73.4-60.4-7.9-3.5-15-6.1-22.9-8.6-2 2.2-4.1 4.3-6.4 6.2l31.9 39.2c10.4 12.7 8.5 31.5-4.2 41.9-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9-8.6 0-16.6-3.8-22.1-10.5l-8.9-10.9c-6.3-7.8-7.9-17.9-5-26.8-8.2-9.9-8.3-21.3-4.6-30-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zM110.6 107.3l15.6 1 1-15.6-15.6-1-1 15.6z"
    +      }
    +    }
    +  },
    +  "keyboard": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "input",
    +        "type"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f11c",
    +    "label": "Keyboard",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"
    +      },
    +      "regular": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z"
    +      }
    +    }
    +  },
    +  "keycdn": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3ba",
    +    "label": "KeyCDN",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"
    +      }
    +    }
    +  },
    +  "khanda": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "chakkar",
    +        "sikh",
    +        "sikhism",
    +        "sword"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f66d",
    +    "label": "Khanda",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320885,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"
    +      }
    +    }
    +  },
    +  "kickstarter": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3bb",
    +    "label": "Kickstarter",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z"
    +      }
    +    }
    +  },
    +  "kickstarter-k": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3bc",
    +    "label": "Kickstarter K",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z"
    +      }
    +    }
    +  },
    +  "kiss": {
    +    "changes": [
    +      "5.1.0",
    +      "5.1.1"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "beso",
    +        "emoticon",
    +        "face",
    +        "love",
    +        "smooch"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f596",
    +    "label": "Kissing Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111683,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      },
    +      "regular": {
    +        "last_modified": 1530132076296,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"
    +      }
    +    }
    +  },
    +  "kiss-beam": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "beso",
    +        "emoticon",
    +        "face",
    +        "love",
    +        "smooch"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f597",
    +    "label": "Kissing Face With Smiling Eyes",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111681,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111624,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z"
    +      }
    +    }
    +  },
    +  "kiss-wink-heart": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "beso",
    +        "emoticon",
    +        "face",
    +        "love",
    +        "smooch"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f598",
    +    "label": "Face Blowing a Kiss",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111682,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 504 512\"><path d=\"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "504",
    +          "512"
    +        ],
    +        "width": 504,
    +        "height": 512,
    +        "path": "M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111624,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 504 512\"><path d=\"M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "504",
    +          "512"
    +        ],
    +        "width": 504,
    +        "height": 512,
    +        "path": "M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z"
    +      }
    +    }
    +  },
    +  "kiwi-bird": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bird",
    +        "fauna"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f535",
    +    "label": "Kiwi Bird",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154570,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"
    +      }
    +    }
    +  },
    +  "korvue": {
    +    "changes": [
    +      "5.0.2"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f42f",
    +    "label": "KORVUE",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1513713060431,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 446 512\"><path d=\"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "446",
    +          "512"
    +        ],
    +        "width": 446,
    +        "height": 512,
    +        "path": "M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"
    +      }
    +    }
    +  },
    +  "landmark": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "building",
    +        "historic",
    +        "memoroable"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f66f",
    +    "label": "Landmark",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320885,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "language": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "dialect",
    +        "idiom",
    +        "localize",
    +        "speech",
    +        "translate",
    +        "vernacular"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1ab",
    +    "label": "Language",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M304 416H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h280v320zm-120.676-72.622A12 12 0 0 0 194.839 352h22.863c8.22 0 14.007-8.078 11.362-15.861L171.61 167.085a12 12 0 0 0-11.362-8.139h-32.489a12.001 12.001 0 0 0-11.362 8.139L58.942 336.139C56.297 343.922 62.084 352 70.304 352h22.805a12 12 0 0 0 11.535-8.693l9.118-31.807h60.211l9.351 31.878zm-39.051-140.42s4.32 21.061 7.83 33.21l10.8 37.531h-38.07l11.07-37.531c3.51-12.15 7.83-33.21 7.83-33.21h.54zM616 416H336V96h280c13.255 0 24 10.745 24 24v272c0 13.255-10.745 24-24 24zm-36-228h-64v-16c0-6.627-5.373-12-12-12h-16c-6.627 0-12 5.373-12 12v16h-64c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h114.106c-6.263 14.299-16.518 28.972-30.023 43.206-6.56-6.898-12.397-13.91-17.365-20.933-3.639-5.144-10.585-6.675-15.995-3.446l-7.28 4.346-6.498 3.879c-5.956 3.556-7.693 11.421-3.735 17.117 6.065 8.729 13.098 17.336 20.984 25.726-8.122 6.226-16.841 12.244-26.103 17.964-5.521 3.41-7.381 10.556-4.162 16.19l7.941 13.896c3.362 5.883 10.935 7.826 16.706 4.276 12.732-7.831 24.571-16.175 35.443-24.891 10.917 8.761 22.766 17.102 35.396 24.881 5.774 3.556 13.353 1.618 16.717-4.27l7.944-13.903c3.213-5.623 1.37-12.76-4.135-16.171a312.737 312.737 0 0 1-26.06-18.019c21.024-22.425 35.768-46.289 42.713-69.85H580c6.627 0 12-5.373 12-12v-16c0-6.625-5.373-11.998-12-11.998z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M304 416H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h280v320zm-120.676-72.622A12 12 0 0 0 194.839 352h22.863c8.22 0 14.007-8.078 11.362-15.861L171.61 167.085a12 12 0 0 0-11.362-8.139h-32.489a12.001 12.001 0 0 0-11.362 8.139L58.942 336.139C56.297 343.922 62.084 352 70.304 352h22.805a12 12 0 0 0 11.535-8.693l9.118-31.807h60.211l9.351 31.878zm-39.051-140.42s4.32 21.061 7.83 33.21l10.8 37.531h-38.07l11.07-37.531c3.51-12.15 7.83-33.21 7.83-33.21h.54zM616 416H336V96h280c13.255 0 24 10.745 24 24v272c0 13.255-10.745 24-24 24zm-36-228h-64v-16c0-6.627-5.373-12-12-12h-16c-6.627 0-12 5.373-12 12v16h-64c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h114.106c-6.263 14.299-16.518 28.972-30.023 43.206-6.56-6.898-12.397-13.91-17.365-20.933-3.639-5.144-10.585-6.675-15.995-3.446l-7.28 4.346-6.498 3.879c-5.956 3.556-7.693 11.421-3.735 17.117 6.065 8.729 13.098 17.336 20.984 25.726-8.122 6.226-16.841 12.244-26.103 17.964-5.521 3.41-7.381 10.556-4.162 16.19l7.941 13.896c3.362 5.883 10.935 7.826 16.706 4.276 12.732-7.831 24.571-16.175 35.443-24.891 10.917 8.761 22.766 17.102 35.396 24.881 5.774 3.556 13.353 1.618 16.717-4.27l7.944-13.903c3.213-5.623 1.37-12.76-4.135-16.171a312.737 312.737 0 0 1-26.06-18.019c21.024-22.425 35.768-46.289 42.713-69.85H580c6.627 0 12-5.373 12-12v-16c0-6.625-5.373-11.998-12-11.998z"
    +      }
    +    }
    +  },
    +  "laptop": {
    +    "changes": [
    +      "3",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "computer",
    +        "cpu",
    +        "dell",
    +        "demo",
    +        "device",
    +        "dude you're getting",
    +        "mac",
    +        "macbook",
    +        "machine",
    +        "pc"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f109",
    +    "label": "Laptop",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831530,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"
    +      }
    +    }
    +  },
    +  "laptop-code": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5fc",
    +    "label": "Laptop Code",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831529,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"
    +      }
    +    }
    +  },
    +  "laravel": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3bd",
    +    "label": "Laravel",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426581999,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z"
    +      }
    +    }
    +  },
    +  "lastfm": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f202",
    +    "label": "last.fm",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"
    +      }
    +    }
    +  },
    +  "lastfm-square": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f203",
    +    "label": "last.fm Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365020,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z"
    +      }
    +    }
    +  },
    +  "laugh": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "LOL",
    +        "emoticon",
    +        "face",
    +        "laugh"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f599",
    +    "label": "Grinning Face With Big Eyes",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111684,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111625,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"
    +      }
    +    }
    +  },
    +  "laugh-beam": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "LOL",
    +        "emoticon",
    +        "face"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f59a",
    +    "label": "Laugh Face with Beaming Eyes",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111683,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111625,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"
    +      }
    +    }
    +  },
    +  "laugh-squint": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "LOL",
    +        "emoticon",
    +        "face"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f59b",
    +    "label": "Laughing Squinting Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111683,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111625,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"
    +      }
    +    }
    +  },
    +  "laugh-wink": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "LOL",
    +        "emoticon",
    +        "face"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f59c",
    +    "label": "Laughing Winking Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111684,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111625,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"
    +      }
    +    }
    +  },
    +  "layer-group": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "layers"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5fd",
    +    "label": "Layer Group",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831530,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"
    +      }
    +    }
    +  },
    +  "leaf": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "eco",
    +        "flora",
    +        "nature",
    +        "plant"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f06c",
    +    "label": "leaf",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406023,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"
    +      }
    +    }
    +  },
    +  "leanpub": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f212",
    +    "label": "Leanpub",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"
    +      }
    +    }
    +  },
    +  "lemon": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "food"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f094",
    +    "label": "Lemon",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"
    +      },
    +      "regular": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z"
    +      }
    +    }
    +  },
    +  "less": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f41d",
    +    "label": "Less",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1508787003039,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z"
    +      }
    +    }
    +  },
    +  "less-than": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f536",
    +    "label": "Less Than",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154570,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"
    +      }
    +    }
    +  },
    +  "less-than-equal": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f537",
    +    "label": "Less Than Equal To",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154570,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"
    +      }
    +    }
    +  },
    +  "level-down-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "level-down"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3be",
    +    "label": "Alternate Level Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"
    +      }
    +    }
    +  },
    +  "level-up-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "level-up"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3bf",
    +    "label": "Alternate Level Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"
    +      }
    +    }
    +  },
    +  "life-ring": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "support"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1cd",
    +    "label": "Life Ring",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"
    +      },
    +      "regular": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z"
    +      }
    +    }
    +  },
    +  "lightbulb": {
    +    "changes": [
    +      "3",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "idea",
    +        "inspiration"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0eb",
    +    "label": "Lightbulb",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320887,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"><path d=\"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "352",
    +          "512"
    +        ],
    +        "width": 352,
    +        "height": 512,
    +        "path": "M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"
    +      },
    +      "regular": {
    +        "last_modified": 1535388320849,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"><path d=\"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "352",
    +          "512"
    +        ],
    +        "width": 352,
    +        "height": 512,
    +        "path": "M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"
    +      }
    +    }
    +  },
    +  "line": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3c0",
    +    "label": "Line",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z"
    +      }
    +    }
    +  },
    +  "link": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "chain"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0c1",
    +    "label": "Link",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"
    +      }
    +    }
    +  },
    +  "linkedin": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "linkedin-square"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f08c",
    +    "label": "LinkedIn",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"
    +      }
    +    }
    +  },
    +  "linkedin-in": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.4.1"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "linkedin"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f0e1",
    +    "label": "LinkedIn In",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1539286135290,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448.1 512\"><path d=\"M100.3 448H7.4V148.9h92.9V448zM53.8 108.1C24.1 108.1 0 83.5 0 53.8S24.1 0 53.8 0s53.8 24.1 53.8 53.8-24.1 54.3-53.8 54.3zM448 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448h-.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448.1",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M100.3 448H7.4V148.9h92.9V448zM53.8 108.1C24.1 108.1 0 83.5 0 53.8S24.1 0 53.8 0s53.8 24.1 53.8 53.8-24.1 54.3-53.8 54.3zM448 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448h-.1z"
    +      }
    +    }
    +  },
    +  "linode": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2b8",
    +    "label": "Linode",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z"
    +      }
    +    }
    +  },
    +  "linux": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "tux"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f17c",
    +    "label": "Linux",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821386,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M196.1 123.6c-.2-1.4 1.9-2.3 3.2-2.9 1.7-.7 3.9-1 5.5-.1.4.2.8.7.6 1.1-.4 1.2-2.4 1-3.5 1.6-1 .5-1.8 1.7-3 1.7-1 .1-2.7-.4-2.8-1.4zm24.7-.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm214.7 310.2c-.5 8.2-6.5 13.8-13.9 18.3-14.9 9-37.3 15.8-50.9 32.2l-2.6-2.2 2.6 2.2c-14.2 16.9-31.7 26.6-48.3 27.9-16.5 1.3-32-6.3-40.3-23v-.1c-1.1-2.1-1.9-4.4-2.5-6.7-21.5 1.2-40.2-5.3-55.1-4.1-22 1.2-35.8 6.5-48.3 6.6-4.8 10.6-14.3 17.6-25.9 20.2-16 3.7-36.1 0-55.9-10.4l1.6-3-1.6 3c-18.5-9.8-42-8.9-59.3-12.5-8.7-1.8-16.3-5-20.1-12.3-3.7-7.3-3-17.3 2.2-31.7 1.7-5.1.4-12.7-.8-20.8-.6-3.9-1.2-7.9-1.2-11.8 0-4.3.7-8.5 2.8-12.4 4.5-8.5 11.8-12.1 18.5-14.5 6.7-2.4 12.8-4 17-8.3 5.2-5.5 10.1-14.4 16.6-20.2-2.6-17.2.2-35.4 6.2-53.3 12.6-37.9 39.2-74.2 58.1-96.7 16.1-22.9 20.8-41.3 22.5-64.7C158 103.4 132.4-.2 234.8 0c80.9.1 76.3 85.4 75.8 131.3-.3 30.1 16.3 50.5 33.4 72 15.2 18 35.1 44.3 46.5 74.4 9.3 24.6 12.9 51.8 3.7 79.1 1.4.5 2.8 1.2 4.1 2 1.4.8 2.7 1.8 4 2.9 6.6 5.6 8.7 14.3 10.5 22.4 1.9 8.1 3.6 15.7 7.2 19.7 11.1 12.4 15.9 21.5 15.5 29.7zM220.8 109.1c3.6.9 8.9 2.4 13 4.4-2.1-12.2 4.5-23.5 11.8-23 8.9.3 13.9 15.5 9.1 27.3-.8 1.9-2.8 3.4-3.9 4.6 6.7 2.3 11 4.1 12.6 4.9 7.9-9.5 10.8-26.2 4.3-40.4-9.8-21.4-34.2-21.8-44 .4-3.2 7.2-3.9 14.9-2.9 21.8zm-46.2 18.8c7.8-5.7 6.9-4.7 5.9-5.5-8-6.9-6.6-27.4 1.8-28.1 6.3-.5 10.8 10.7 9.6 19.6 3.1-2.1 6.7-3.6 10.2-4.6 1.7-19.3-9-33.5-19.1-33.5-18.9 0-24 37.5-8.4 52.1zm-9.4 20.9c1.5 4.9 6.1 10.5 14.7 15.3 7.8 4.6 12 11.5 20 15 2.6 1.1 5.7 1.9 9.6 2.1 18.4 1.1 27.1-11.3 38.2-14.9 11.7-3.7 20.1-11 22.7-18.1 3.2-8.5-2.1-14.7-10.5-18.2-11.3-4.9-16.3-5.2-22.6-9.3-10.3-6.6-18.8-8.9-25.9-8.9-14.4 0-23.2 9.8-27.9 14.2-.5.5-7.9 5.9-14.1 10.5-4.2 3.3-5.6 7.4-4.2 12.3zm-33.5 252.8L112.1 366c-6.8-9.2-13.8-14.8-21.9-16-7.7-1.2-12.6 1.4-17.7 6.9-4.8 5.1-8.8 12.3-14.3 18-7.8 6.5-9.3 6.2-19.6 9.9-6.3 2.2-11.3 4.6-14.8 11.3-2.7 5-2.1 12.2-.9 20 1.2 7.9 3 16.3.6 23.9v.2c-5 13.7-5 21.7-2.6 26.4 7.9 15.4 46.6 6.1 76.5 21.9 31.4 16.4 72.6 17.1 75.3-18 2.1-20.5-31.5-49-41-68.9zm153.9 35.8c3.2-11 6.3-21.3 6.8-29 .8-15.2 1.6-28.7 4.4-39.9 3.1-12.6 9.3-23.1 21.4-27.3 2.3-21.1 18.7-21.1 38.3-12.5 18.9 8.5 26 16 22.8 26.1 1 0 2-.1 4.2 0 5.2-16.9-14.3-28-30.7-34.8 2.9-12 2.4-24.1-.4-35.7-6-25.3-22.6-47.8-35.2-59-2.3-.1-2.1 1.9 2.6 6.5 11.6 10.7 37.1 49.2 23.3 84.9-3.9-1-7.6-1.5-10.9-1.4-5.3-29.1-17.5-53.2-23.6-64.6-11.5-21.4-29.5-65.3-37.2-95.7-4.5 6.4-12.4 11.9-22.3 15-4.7 1.5-9.7 5.5-15.9 9-13.9 8-30 8.8-42.4-1.2-4.5-3.6-8-7.6-12.6-10.3-1.6-.9-5.1-3.3-6.2-4.1-2 37.8-27.3 85.3-39.3 112.7-8.3 19.7-13.2 40.8-13.8 61.5-21.8-29.1-5.9-66.3 2.6-82.4 9.5-17.6 11-22.5 8.7-20.8-8.6 14-22 36.3-27.2 59.2-2.7 11.9-3.2 24 .3 35.2 3.5 11.2 11.1 21.5 24.6 29.9 0 0 24.8 14.3 38.3 32.5 7.4 10 9.7 18.7 7.4 24.9-2.5 6.7-9.6 8.9-16.7 8.9 4.8 6 10.3 13 14.4 19.6 37.6 25.7 82.2 15.7 114.3-7.2zM415 408.5c-10-11.3-7.2-33.1-17.1-41.6-6.9-6-13.6-5.4-22.6-5.1-7.7 8.8-25.8 19.6-38.4 16.3-11.5-2.9-18-16.3-18.8-29.5-.3.2-.7.3-1 .5-7.1 3.9-11.1 10.8-13.7 21.1-2.5 10.2-3.4 23.5-4.2 38.7-.7 11.8-6.2 26.4-9.9 40.6-3.5 13.2-5.8 25.2-1.1 36.3 7.2 14.5 19.5 20.4 33.7 19.3 14.2-1.1 30.4-9.8 43.6-25.5 22-26.6 62.3-29.7 63.2-46.5.3-5.1-3.1-13-13.7-24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4 3.9-3.4 5.9-6.3 3.1-6.6-2.8-.3-2.6 2.6-6 5.1-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2-10.4 0-18.7-4.8-24.9-9.7-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M196.1 123.6c-.2-1.4 1.9-2.3 3.2-2.9 1.7-.7 3.9-1 5.5-.1.4.2.8.7.6 1.1-.4 1.2-2.4 1-3.5 1.6-1 .5-1.8 1.7-3 1.7-1 .1-2.7-.4-2.8-1.4zm24.7-.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm214.7 310.2c-.5 8.2-6.5 13.8-13.9 18.3-14.9 9-37.3 15.8-50.9 32.2l-2.6-2.2 2.6 2.2c-14.2 16.9-31.7 26.6-48.3 27.9-16.5 1.3-32-6.3-40.3-23v-.1c-1.1-2.1-1.9-4.4-2.5-6.7-21.5 1.2-40.2-5.3-55.1-4.1-22 1.2-35.8 6.5-48.3 6.6-4.8 10.6-14.3 17.6-25.9 20.2-16 3.7-36.1 0-55.9-10.4l1.6-3-1.6 3c-18.5-9.8-42-8.9-59.3-12.5-8.7-1.8-16.3-5-20.1-12.3-3.7-7.3-3-17.3 2.2-31.7 1.7-5.1.4-12.7-.8-20.8-.6-3.9-1.2-7.9-1.2-11.8 0-4.3.7-8.5 2.8-12.4 4.5-8.5 11.8-12.1 18.5-14.5 6.7-2.4 12.8-4 17-8.3 5.2-5.5 10.1-14.4 16.6-20.2-2.6-17.2.2-35.4 6.2-53.3 12.6-37.9 39.2-74.2 58.1-96.7 16.1-22.9 20.8-41.3 22.5-64.7C158 103.4 132.4-.2 234.8 0c80.9.1 76.3 85.4 75.8 131.3-.3 30.1 16.3 50.5 33.4 72 15.2 18 35.1 44.3 46.5 74.4 9.3 24.6 12.9 51.8 3.7 79.1 1.4.5 2.8 1.2 4.1 2 1.4.8 2.7 1.8 4 2.9 6.6 5.6 8.7 14.3 10.5 22.4 1.9 8.1 3.6 15.7 7.2 19.7 11.1 12.4 15.9 21.5 15.5 29.7zM220.8 109.1c3.6.9 8.9 2.4 13 4.4-2.1-12.2 4.5-23.5 11.8-23 8.9.3 13.9 15.5 9.1 27.3-.8 1.9-2.8 3.4-3.9 4.6 6.7 2.3 11 4.1 12.6 4.9 7.9-9.5 10.8-26.2 4.3-40.4-9.8-21.4-34.2-21.8-44 .4-3.2 7.2-3.9 14.9-2.9 21.8zm-46.2 18.8c7.8-5.7 6.9-4.7 5.9-5.5-8-6.9-6.6-27.4 1.8-28.1 6.3-.5 10.8 10.7 9.6 19.6 3.1-2.1 6.7-3.6 10.2-4.6 1.7-19.3-9-33.5-19.1-33.5-18.9 0-24 37.5-8.4 52.1zm-9.4 20.9c1.5 4.9 6.1 10.5 14.7 15.3 7.8 4.6 12 11.5 20 15 2.6 1.1 5.7 1.9 9.6 2.1 18.4 1.1 27.1-11.3 38.2-14.9 11.7-3.7 20.1-11 22.7-18.1 3.2-8.5-2.1-14.7-10.5-18.2-11.3-4.9-16.3-5.2-22.6-9.3-10.3-6.6-18.8-8.9-25.9-8.9-14.4 0-23.2 9.8-27.9 14.2-.5.5-7.9 5.9-14.1 10.5-4.2 3.3-5.6 7.4-4.2 12.3zm-33.5 252.8L112.1 366c-6.8-9.2-13.8-14.8-21.9-16-7.7-1.2-12.6 1.4-17.7 6.9-4.8 5.1-8.8 12.3-14.3 18-7.8 6.5-9.3 6.2-19.6 9.9-6.3 2.2-11.3 4.6-14.8 11.3-2.7 5-2.1 12.2-.9 20 1.2 7.9 3 16.3.6 23.9v.2c-5 13.7-5 21.7-2.6 26.4 7.9 15.4 46.6 6.1 76.5 21.9 31.4 16.4 72.6 17.1 75.3-18 2.1-20.5-31.5-49-41-68.9zm153.9 35.8c3.2-11 6.3-21.3 6.8-29 .8-15.2 1.6-28.7 4.4-39.9 3.1-12.6 9.3-23.1 21.4-27.3 2.3-21.1 18.7-21.1 38.3-12.5 18.9 8.5 26 16 22.8 26.1 1 0 2-.1 4.2 0 5.2-16.9-14.3-28-30.7-34.8 2.9-12 2.4-24.1-.4-35.7-6-25.3-22.6-47.8-35.2-59-2.3-.1-2.1 1.9 2.6 6.5 11.6 10.7 37.1 49.2 23.3 84.9-3.9-1-7.6-1.5-10.9-1.4-5.3-29.1-17.5-53.2-23.6-64.6-11.5-21.4-29.5-65.3-37.2-95.7-4.5 6.4-12.4 11.9-22.3 15-4.7 1.5-9.7 5.5-15.9 9-13.9 8-30 8.8-42.4-1.2-4.5-3.6-8-7.6-12.6-10.3-1.6-.9-5.1-3.3-6.2-4.1-2 37.8-27.3 85.3-39.3 112.7-8.3 19.7-13.2 40.8-13.8 61.5-21.8-29.1-5.9-66.3 2.6-82.4 9.5-17.6 11-22.5 8.7-20.8-8.6 14-22 36.3-27.2 59.2-2.7 11.9-3.2 24 .3 35.2 3.5 11.2 11.1 21.5 24.6 29.9 0 0 24.8 14.3 38.3 32.5 7.4 10 9.7 18.7 7.4 24.9-2.5 6.7-9.6 8.9-16.7 8.9 4.8 6 10.3 13 14.4 19.6 37.6 25.7 82.2 15.7 114.3-7.2zM415 408.5c-10-11.3-7.2-33.1-17.1-41.6-6.9-6-13.6-5.4-22.6-5.1-7.7 8.8-25.8 19.6-38.4 16.3-11.5-2.9-18-16.3-18.8-29.5-.3.2-.7.3-1 .5-7.1 3.9-11.1 10.8-13.7 21.1-2.5 10.2-3.4 23.5-4.2 38.7-.7 11.8-6.2 26.4-9.9 40.6-3.5 13.2-5.8 25.2-1.1 36.3 7.2 14.5 19.5 20.4 33.7 19.3 14.2-1.1 30.4-9.8 43.6-25.5 22-26.6 62.3-29.7 63.2-46.5.3-5.1-3.1-13-13.7-24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4 3.9-3.4 5.9-6.3 3.1-6.6-2.8-.3-2.6 2.6-6 5.1-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2-10.4 0-18.7-4.8-24.9-9.7-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"
    +      }
    +    }
    +  },
    +  "lira-sign": {
    +    "changes": [
    +      "4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "try",
    +        "turkish"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f195",
    +    "label": "Turkish Lira Sign",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"
    +      }
    +    }
    +  },
    +  "list": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "checklist",
    +        "completed",
    +        "done",
    +        "finished",
    +        "ol",
    +        "todo",
    +        "ul"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f03a",
    +    "label": "List",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z"
    +      }
    +    }
    +  },
    +  "list-alt": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "checklist",
    +        "completed",
    +        "done",
    +        "finished",
    +        "ol",
    +        "todo",
    +        "ul"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f022",
    +    "label": "Alternate List",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z"
    +      }
    +    }
    +  },
    +  "list-ol": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "checklist",
    +        "list",
    +        "numbers",
    +        "ol",
    +        "todo",
    +        "ul"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0cb",
    +    "label": "list-ol",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"
    +      }
    +    }
    +  },
    +  "list-ul": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "checklist",
    +        "list",
    +        "ol",
    +        "todo",
    +        "ul"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0ca",
    +    "label": "list-ul",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"
    +      }
    +    }
    +  },
    +  "location-arrow": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "address",
    +        "coordinates",
    +        "gps",
    +        "location",
    +        "map",
    +        "place",
    +        "where"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f124",
    +    "label": "location-arrow",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831532,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"
    +      }
    +    }
    +  },
    +  "lock": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "admin",
    +        "protect",
    +        "security"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f023",
    +    "label": "lock",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"
    +      }
    +    }
    +  },
    +  "lock-open": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0",
    +      "5.0.1"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "admin",
    +        "lock",
    +        "open",
    +        "password",
    +        "protect"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3c1",
    +    "label": "Lock Open",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"
    +      }
    +    }
    +  },
    +  "long-arrow-alt-down": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "long-arrow-down"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f309",
    +    "label": "Alternate Long Arrow Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"
    +      }
    +    }
    +  },
    +  "long-arrow-alt-left": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "back",
    +        "long-arrow-left",
    +        "previous"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f30a",
    +    "label": "Alternate Long Arrow Left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"
    +      }
    +    }
    +  },
    +  "long-arrow-alt-right": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "long-arrow-right"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f30b",
    +    "label": "Alternate Long Arrow Right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"
    +      }
    +    }
    +  },
    +  "long-arrow-alt-up": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "long-arrow-up"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f30c",
    +    "label": "Alternate Long Arrow Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"
    +      }
    +    }
    +  },
    +  "low-vision": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2a8",
    +    "label": "Low Vision",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"
    +      }
    +    }
    +  },
    +  "luggage-cart": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f59d",
    +    "label": "Luggage Cart",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111685,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"
    +      }
    +    }
    +  },
    +  "lyft": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3c3",
    +    "label": "lyft",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z"
    +      }
    +    }
    +  },
    +  "magento": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3c4",
    +    "label": "Magento",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z"
    +      }
    +    }
    +  },
    +  "magic": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "autocomplete",
    +        "automatic",
    +        "mage",
    +        "magic",
    +        "spell",
    +        "witch",
    +        "wizard"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0d0",
    +    "label": "magic",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111685,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"
    +      }
    +    }
    +  },
    +  "magnet": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f076",
    +    "label": "magnet",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512.1 512\"><path d=\"M164.1 160H12c-6.6 0-12-5.4-12-12V68c0-19.9 16.1-36 36-36h104c19.9 0 36 16.1 36 36v80c.1 6.6-5.3 12-11.9 12zm348-12V67.9c0-19.9-16.1-36-36-36h-104c-19.9 0-36 16.1-36 36v80c0 6.6 5.4 12 12 12h152c6.6.1 12-5.3 12-11.9zm-164 44c-6.6 0-12 5.4-12 12v52c0 128.1-160 127.9-160 0v-52c0-6.6-5.4-12-12-12h-152c-6.7 0-12 5.4-12 12.1.1 21.4.6 40.3 0 53.3C.1 408 136.3 504 256.9 504 377.5 504 512 408 512 257.3c-.6-12.8-.2-33 0-53.2 0-6.7-5.3-12.1-12-12.1H348.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512.1",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M164.1 160H12c-6.6 0-12-5.4-12-12V68c0-19.9 16.1-36 36-36h104c19.9 0 36 16.1 36 36v80c.1 6.6-5.3 12-11.9 12zm348-12V67.9c0-19.9-16.1-36-36-36h-104c-19.9 0-36 16.1-36 36v80c0 6.6 5.4 12 12 12h152c6.6.1 12-5.3 12-11.9zm-164 44c-6.6 0-12 5.4-12 12v52c0 128.1-160 127.9-160 0v-52c0-6.6-5.4-12-12-12h-152c-6.7 0-12 5.4-12 12.1.1 21.4.6 40.3 0 53.3C.1 408 136.3 504 256.9 504 377.5 504 512 408 512 257.3c-.6-12.8-.2-33 0-53.2 0-6.7-5.3-12.1-12-12.1H348.1z"
    +      }
    +    }
    +  },
    +  "mail-bulk": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f674",
    +    "label": "Mail Bulk",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320887,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"
    +      }
    +    }
    +  },
    +  "mailchimp": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f59e",
    +    "label": "Mailchimp",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529520111564,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 428.07 512\"><path d=\"M426.56 323.72c-3.09-6.59-8.97-11.13-16.35-12.88-2.47-11.27-5.88-16.8-6.19-17.63 1.3-1.48 2.56-2.97 2.84-3.32 10.42-12.93 3.62-31.86-14.19-36.33-10.02-9.64-19.09-14.17-26.54-17.9-7.14-3.57-4.29-2.17-10.99-5.19-1.78-8.71-2.37-28.97-5.2-43.19-2.54-12.79-7.66-22.06-15.56-28.15-3.16-6.84-7.59-13.74-12.93-18.81 24.84-38.08 31.38-75.69 13.19-95.39-8.1-8.77-20.13-12.93-34.52-12.93-20.26 0-45.18 8.26-70.34 23.54 0 0-16.38-13.18-16.73-13.46-70.08-55.19-268.28 188.7-198.32 242l18.06 13.8c-11.34 31.54 4.43 69.14 37.29 81.21 7.26 2.67 15.14 3.97 23.31 3.51 0 0 53.09 97.36 165.1 97.39 129.58.04 162.55-126.72 162.9-127.86 0 .01 10.5-15.51 5.17-28.41zM20.12 267.95c-14.2-23.96 10.51-73.19 28.09-101.17C91.66 97.63 163.98 43.06 196.82 50.85l9.03-3.46c.03.03 24.67 20.85 24.7 20.87 16.97-10.19 38.58-20.57 58.8-22.64-12.3 2.77-27.29 9.15-45.05 20.01-.43.25-42.02 28.32-67.43 53.52-13.85 13.73-69.45 80.41-69.4 80.35 10.16-19.23 16.86-28.67 32.94-48.9 9.1-11.44 18.81-22.57 28.74-32.84 4.61-4.77 9.28-9.36 13.95-13.71 3.21-2.99 6.44-5.87 9.65-8.62 1.48-1.27 2.96-2.5 4.43-3.71l.01-.01L164.6 64.8l1.72 12.06 23.69 20.87s-20.96 14.11-31.39 23.01c-41.79 35.66-82.8 90.4-98.06 143.69l.73-.03c-7.6 4.19-15.14 10.91-21.73 20.05-.16-.04-17.04-12.43-19.44-16.5zm69.11 100.09c-25.03 0-45.33-21.37-45.33-47.72 0-26.36 20.29-47.72 45.33-47.72 6.49 0 12.66 1.44 18.24 4.02 0 0 9.63 4.86 12.34 27.81 2.82-7.17 4.24-13.06 4.24-13.06 3.23 9.88 4.88 20.26 4.23 30.76 2.68-3.56 5.55-10.27 5.55-10.27 5 29.33-16.4 56.18-44.6 56.18zm55.8-168.53s19.49-37.06 62.33-61.57c-3.19-.51-10.99.48-12.36.64 7.78-6.69 22.24-11.16 32.23-13.19-2.92-1.86-9.89-2.33-13.34-2.42-1.02-.03-1.01-.02-2.22.03 9.4-5.25 26.82-8.34 42.65-5.55-1.99-2.64-6.5-4.57-9.67-5.51-.28-.08-1.52-.39-1.52-.39l1.19-.28c9.54-1.84 20.69.15 29.5 3.69-1-2.32-3.45-5.03-5.29-6.74-.19-.18-1.29-.97-1.29-.97 9.22 1.91 18.06 5.94 24.71 10.5-.9-1.75-3.14-4.69-4.69-6.29 8.81 2.52 18.71 8.81 22.95 17.82.1.2.37.94.4 1.03-16.7-12.84-65.44-9.2-114.24 22.42-22.33 14.48-38.71 30.32-51.34 46.78zm263.32 146.34c-.59 1.15-6.73 34.4-41.86 62.01-44.37 34.86-102.66 31.33-124.67 11.8-11.76-11-16.85-26.73-16.85-26.73s-1.33 8.87-1.56 12.35c-8.87-15.09-8.12-33.52-8.12-33.52s-4.73 8.83-6.9 13.77c-6.53-16.62-3.16-33.78-3.16-33.78l-5.16 7.7s-2.42-18.81 3.52-34.47c6.36-16.74 18.68-28.9 21.11-30.42-9.35-2.97-20.12-11.49-20.14-11.51 0 0 4.28.28 7.26-.4 0 0-18.9-13.54-22.22-34.26 2.74 3.38 8.49 7.21 8.49 7.21-1.86-5.42-2.99-17.49-1.25-29.36l.01-.01c3.58-22.68 22.27-37.45 43.44-37.27 22.54.2 37.65 4.93 56.55-12.5 4-3.69 7.19-6.87 12.81-8.11.59-.13 2.06-.75 5.07-.75 3.05 0 5.98.69 8.67 2.29 10.25 6.1 12.46 22.01 13.56 33.68 4.07 43.28 2.43 35.57 19.94 44.49 8.36 4.25 17.74 8.29 28.43 19.72.03.03.08.09.08.09h.13c9.01.22 13.65 7.31 9.5 12.47-30.23 36.1-72.46 53.39-119.51 54.84-1.94.05-6.32.15-6.34.15-19.01.58-25.19 25.16-13.27 39.95 7.54 9.35 22.03 12.42 33.97 12.46l.17-.06c51.45 1.04 103.14-35.37 112.07-55.44.06-.15.61-1.42.61-1.42-2.07 2.43-52.18 49.61-113.08 47.9 0 0-6.66-.14-12.93-1.6-8.27-1.92-14.55-5.56-16.95-13.8 5.05 1.01 11.45 1.66 18.87 1.66 43.96 0 75.63-19.98 72.33-20.25-.13 0-.26.03-.48.08-5.13 1.19-57.97 21.66-91.37 11.16.08-1.02.24-2.01.48-2.9 2.97-9.95 8.25-8.56 16.79-8.93 30.48-1.01 55.07-8.68 73.5-17.43 19.65-9.33 34.63-21.35 40.03-27.42 7 11.79 6.96 26.92 6.96 26.92s2.74-.96 6.38-.96c11.38.01 13.73 10.23 5.09 20.6zm-149.29 13.7c0-.05-.01-.1-.01-.15.01.05.01.1.01.15zm-.01-.21c-.01-.13-.01-.26-.02-.39-.02-.65-.03-1.33 0-2.02-.02.74-.02 1.42 0 2.02.01.13.01.27.02.39zm.12 1.46c0 .02 0 .04.01.06 0-.02 0-.04-.01-.06zm.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zM193.96 59.68l2.87-8.83 4.88 17.72-6.03-1.95-1.72-6.94zm22.38 17.72l-3.62-12.59 9.97 8.36c-2.24 1.44-4.36 2.86-6.35 4.23zm42.71 281.94c-.01-.13-.01-.26-.02-.39.01.13.01.27.02.39zm-.01-.39c-.02-.65-.03-1.33 0-2.02-.03.75-.03 1.42 0 2.02zm.02.6c0-.05-.01-.1-.01-.15m.13 1.46c0-.02 0-.04-.01-.06m.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zm52.1-138.61c-.07-3.36.47-8.92 3.63-9.95h.01c5.41-1.88 12.58 11.98 12.91 24.28-4.28-2.14-9.3-3.05-14.47-2.6-1.3-3.97-1.92-7.7-2.08-11.73zM205.38 85.27l-13.59-11.38 20.57 6.28c-2.65 1.88-5 3.6-6.98 5.1zm27.7 166.94c-3.41 1.3-5.83 2.31-7 2.14-1.89-.28-.06-3.75 4.08-7.11 8.33-6.64 19.76-8.7 29.53-5.07 4.28 1.57 9.08 4.72 11.6 8.39.95 1.39 1.21 2.44.82 2.88-.77.9-3.51-.31-7.55-1.89-10.35-3.86-17.98-4.45-31.48.66zm14.55 14.53c-2.31.94-3.81 1.66-4.42 1.17-.62-.48-.01-2.42 2.15-4.51 1.88-1.81 3.83-2.83 6.07-3.77.35-.15.72-.28 1.1-.38 1.04-.28 2.09-.63 3.23-.8 9.12-1.55 15.8 3.51 14.93 4.98-.39.69-2.08.53-4.6.36-5.23-.36-10.71-.27-18.46 2.95zM60.86 323.12zm24.3-25.78c-1.85.39-.81.17-2.64.68a7 7 0 0 0-.77.25c-.58.27-1.11.45-1.62.73-.43.24-4.07 1.86-7.03 5.48-3.99 4.95-5.44 11.43-5.19 17.67.24 6.06 2.02 9.41 2.35 10.23 1.38 2.96-1.85 3.57-4.79.39l-.01-.01c-2.35-2.49-3.86-6.29-4.6-9.66-2.98-13.95 3.24-27.97 17.61-33.57.8-.32 1.74-.51 2.5-.73h-.01c1.47-.44 6.72-1.5 12.07-.67 5.87.91 11.04 3.85 14.33 7.67l.01.01c2.53 2.87 4.43 6.92 4.09 10.53v.01c-.13 1.5-.79 3.65-2.14 4.21-.5.21-1.01.1-1.36-.25-.98-.96-.22-2.93-2.6-6.3-3.17-4.47-10.31-8.76-20.2-6.67zm30.28 31.17c1.88 10.82-6 20.5-15.52 20.7-6.67.15-10.31-4.02-9.66-4.93.3-.43 1.32-.24 2.88-.01 8.5 1.32 13.66-3.86 14.9-9.29.02-.09.35-1.54.34-2.54.07-.88-.03-1.76-.16-2.56-1-5.62-7.45-6.68-11.6-11.15-3.72-4.04-2.99-9.22-.65-11.71 2.81-2.77 6.83-1.76 6.78-.78 0 .52-.97.91-2.17 1.74-1.56 1.1-1.77 2.16-1.37 3.98.26 1 .71 1.65 1.68 2.42 3.48 2.76 12.85 4.7 14.55 14.13zm212.87-81.47c2.58.4 4.22 3.59 3.67 7.13-.55 3.54-3.09 6.08-5.67 5.67-2.58-.4-4.22-3.59-3.67-7.13.56-3.53 3.09-6.07 5.67-5.67zm-28.33 10.31c1.42-2.59 5.44-3.11 8.99-1.16 3.55 1.94 5.27 5.62 3.86 8.2-1.42 2.59-5.44 3.11-8.99 1.16-3.55-1.94-5.28-5.61-3.86-8.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "428.07",
    +          "512"
    +        ],
    +        "width": 428,
    +        "height": 512,
    +        "path": "M426.56 323.72c-3.09-6.59-8.97-11.13-16.35-12.88-2.47-11.27-5.88-16.8-6.19-17.63 1.3-1.48 2.56-2.97 2.84-3.32 10.42-12.93 3.62-31.86-14.19-36.33-10.02-9.64-19.09-14.17-26.54-17.9-7.14-3.57-4.29-2.17-10.99-5.19-1.78-8.71-2.37-28.97-5.2-43.19-2.54-12.79-7.66-22.06-15.56-28.15-3.16-6.84-7.59-13.74-12.93-18.81 24.84-38.08 31.38-75.69 13.19-95.39-8.1-8.77-20.13-12.93-34.52-12.93-20.26 0-45.18 8.26-70.34 23.54 0 0-16.38-13.18-16.73-13.46-70.08-55.19-268.28 188.7-198.32 242l18.06 13.8c-11.34 31.54 4.43 69.14 37.29 81.21 7.26 2.67 15.14 3.97 23.31 3.51 0 0 53.09 97.36 165.1 97.39 129.58.04 162.55-126.72 162.9-127.86 0 .01 10.5-15.51 5.17-28.41zM20.12 267.95c-14.2-23.96 10.51-73.19 28.09-101.17C91.66 97.63 163.98 43.06 196.82 50.85l9.03-3.46c.03.03 24.67 20.85 24.7 20.87 16.97-10.19 38.58-20.57 58.8-22.64-12.3 2.77-27.29 9.15-45.05 20.01-.43.25-42.02 28.32-67.43 53.52-13.85 13.73-69.45 80.41-69.4 80.35 10.16-19.23 16.86-28.67 32.94-48.9 9.1-11.44 18.81-22.57 28.74-32.84 4.61-4.77 9.28-9.36 13.95-13.71 3.21-2.99 6.44-5.87 9.65-8.62 1.48-1.27 2.96-2.5 4.43-3.71l.01-.01L164.6 64.8l1.72 12.06 23.69 20.87s-20.96 14.11-31.39 23.01c-41.79 35.66-82.8 90.4-98.06 143.69l.73-.03c-7.6 4.19-15.14 10.91-21.73 20.05-.16-.04-17.04-12.43-19.44-16.5zm69.11 100.09c-25.03 0-45.33-21.37-45.33-47.72 0-26.36 20.29-47.72 45.33-47.72 6.49 0 12.66 1.44 18.24 4.02 0 0 9.63 4.86 12.34 27.81 2.82-7.17 4.24-13.06 4.24-13.06 3.23 9.88 4.88 20.26 4.23 30.76 2.68-3.56 5.55-10.27 5.55-10.27 5 29.33-16.4 56.18-44.6 56.18zm55.8-168.53s19.49-37.06 62.33-61.57c-3.19-.51-10.99.48-12.36.64 7.78-6.69 22.24-11.16 32.23-13.19-2.92-1.86-9.89-2.33-13.34-2.42-1.02-.03-1.01-.02-2.22.03 9.4-5.25 26.82-8.34 42.65-5.55-1.99-2.64-6.5-4.57-9.67-5.51-.28-.08-1.52-.39-1.52-.39l1.19-.28c9.54-1.84 20.69.15 29.5 3.69-1-2.32-3.45-5.03-5.29-6.74-.19-.18-1.29-.97-1.29-.97 9.22 1.91 18.06 5.94 24.71 10.5-.9-1.75-3.14-4.69-4.69-6.29 8.81 2.52 18.71 8.81 22.95 17.82.1.2.37.94.4 1.03-16.7-12.84-65.44-9.2-114.24 22.42-22.33 14.48-38.71 30.32-51.34 46.78zm263.32 146.34c-.59 1.15-6.73 34.4-41.86 62.01-44.37 34.86-102.66 31.33-124.67 11.8-11.76-11-16.85-26.73-16.85-26.73s-1.33 8.87-1.56 12.35c-8.87-15.09-8.12-33.52-8.12-33.52s-4.73 8.83-6.9 13.77c-6.53-16.62-3.16-33.78-3.16-33.78l-5.16 7.7s-2.42-18.81 3.52-34.47c6.36-16.74 18.68-28.9 21.11-30.42-9.35-2.97-20.12-11.49-20.14-11.51 0 0 4.28.28 7.26-.4 0 0-18.9-13.54-22.22-34.26 2.74 3.38 8.49 7.21 8.49 7.21-1.86-5.42-2.99-17.49-1.25-29.36l.01-.01c3.58-22.68 22.27-37.45 43.44-37.27 22.54.2 37.65 4.93 56.55-12.5 4-3.69 7.19-6.87 12.81-8.11.59-.13 2.06-.75 5.07-.75 3.05 0 5.98.69 8.67 2.29 10.25 6.1 12.46 22.01 13.56 33.68 4.07 43.28 2.43 35.57 19.94 44.49 8.36 4.25 17.74 8.29 28.43 19.72.03.03.08.09.08.09h.13c9.01.22 13.65 7.31 9.5 12.47-30.23 36.1-72.46 53.39-119.51 54.84-1.94.05-6.32.15-6.34.15-19.01.58-25.19 25.16-13.27 39.95 7.54 9.35 22.03 12.42 33.97 12.46l.17-.06c51.45 1.04 103.14-35.37 112.07-55.44.06-.15.61-1.42.61-1.42-2.07 2.43-52.18 49.61-113.08 47.9 0 0-6.66-.14-12.93-1.6-8.27-1.92-14.55-5.56-16.95-13.8 5.05 1.01 11.45 1.66 18.87 1.66 43.96 0 75.63-19.98 72.33-20.25-.13 0-.26.03-.48.08-5.13 1.19-57.97 21.66-91.37 11.16.08-1.02.24-2.01.48-2.9 2.97-9.95 8.25-8.56 16.79-8.93 30.48-1.01 55.07-8.68 73.5-17.43 19.65-9.33 34.63-21.35 40.03-27.42 7 11.79 6.96 26.92 6.96 26.92s2.74-.96 6.38-.96c11.38.01 13.73 10.23 5.09 20.6zm-149.29 13.7c0-.05-.01-.1-.01-.15.01.05.01.1.01.15zm-.01-.21c-.01-.13-.01-.26-.02-.39-.02-.65-.03-1.33 0-2.02-.02.74-.02 1.42 0 2.02.01.13.01.27.02.39zm.12 1.46c0 .02 0 .04.01.06 0-.02 0-.04-.01-.06zm.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zM193.96 59.68l2.87-8.83 4.88 17.72-6.03-1.95-1.72-6.94zm22.38 17.72l-3.62-12.59 9.97 8.36c-2.24 1.44-4.36 2.86-6.35 4.23zm42.71 281.94c-.01-.13-.01-.26-.02-.39.01.13.01.27.02.39zm-.01-.39c-.02-.65-.03-1.33 0-2.02-.03.75-.03 1.42 0 2.02zm.02.6c0-.05-.01-.1-.01-.15m.13 1.46c0-.02 0-.04-.01-.06m.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zm52.1-138.61c-.07-3.36.47-8.92 3.63-9.95h.01c5.41-1.88 12.58 11.98 12.91 24.28-4.28-2.14-9.3-3.05-14.47-2.6-1.3-3.97-1.92-7.7-2.08-11.73zM205.38 85.27l-13.59-11.38 20.57 6.28c-2.65 1.88-5 3.6-6.98 5.1zm27.7 166.94c-3.41 1.3-5.83 2.31-7 2.14-1.89-.28-.06-3.75 4.08-7.11 8.33-6.64 19.76-8.7 29.53-5.07 4.28 1.57 9.08 4.72 11.6 8.39.95 1.39 1.21 2.44.82 2.88-.77.9-3.51-.31-7.55-1.89-10.35-3.86-17.98-4.45-31.48.66zm14.55 14.53c-2.31.94-3.81 1.66-4.42 1.17-.62-.48-.01-2.42 2.15-4.51 1.88-1.81 3.83-2.83 6.07-3.77.35-.15.72-.28 1.1-.38 1.04-.28 2.09-.63 3.23-.8 9.12-1.55 15.8 3.51 14.93 4.98-.39.69-2.08.53-4.6.36-5.23-.36-10.71-.27-18.46 2.95zM60.86 323.12zm24.3-25.78c-1.85.39-.81.17-2.64.68a7 7 0 0 0-.77.25c-.58.27-1.11.45-1.62.73-.43.24-4.07 1.86-7.03 5.48-3.99 4.95-5.44 11.43-5.19 17.67.24 6.06 2.02 9.41 2.35 10.23 1.38 2.96-1.85 3.57-4.79.39l-.01-.01c-2.35-2.49-3.86-6.29-4.6-9.66-2.98-13.95 3.24-27.97 17.61-33.57.8-.32 1.74-.51 2.5-.73h-.01c1.47-.44 6.72-1.5 12.07-.67 5.87.91 11.04 3.85 14.33 7.67l.01.01c2.53 2.87 4.43 6.92 4.09 10.53v.01c-.13 1.5-.79 3.65-2.14 4.21-.5.21-1.01.1-1.36-.25-.98-.96-.22-2.93-2.6-6.3-3.17-4.47-10.31-8.76-20.2-6.67zm30.28 31.17c1.88 10.82-6 20.5-15.52 20.7-6.67.15-10.31-4.02-9.66-4.93.3-.43 1.32-.24 2.88-.01 8.5 1.32 13.66-3.86 14.9-9.29.02-.09.35-1.54.34-2.54.07-.88-.03-1.76-.16-2.56-1-5.62-7.45-6.68-11.6-11.15-3.72-4.04-2.99-9.22-.65-11.71 2.81-2.77 6.83-1.76 6.78-.78 0 .52-.97.91-2.17 1.74-1.56 1.1-1.77 2.16-1.37 3.98.26 1 .71 1.65 1.68 2.42 3.48 2.76 12.85 4.7 14.55 14.13zm212.87-81.47c2.58.4 4.22 3.59 3.67 7.13-.55 3.54-3.09 6.08-5.67 5.67-2.58-.4-4.22-3.59-3.67-7.13.56-3.53 3.09-6.07 5.67-5.67zm-28.33 10.31c1.42-2.59 5.44-3.11 8.99-1.16 3.55 1.94 5.27 5.62 3.86 8.2-1.42 2.59-5.44 3.11-8.99 1.16-3.55-1.94-5.28-5.61-3.86-8.2z"
    +      }
    +    }
    +  },
    +  "male": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "human",
    +        "man",
    +        "person",
    +        "profile",
    +        "user"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f183",
    +    "label": "Male",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 192 512\"><path d=\"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "192",
    +          "512"
    +        ],
    +        "width": 192,
    +        "height": 512,
    +        "path": "M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"
    +      }
    +    }
    +  },
    +  "mandalorian": {
    +    "changes": [
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f50f",
    +    "label": "Mandalorian",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442521,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 390.88 512\"><path d=\"M203.28 511.89c-.98-3.26-1.69-15.83-1.39-24.58.55-15.89.98-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-.96.4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-.99-11.43.16-4.81 0-10.53-.34-12.71-2.05-12.97-3.46-27.7-3.25-33.9.21-6.12.43-7.15 2.06-9.67 3.05-4.71 6.51-14.04 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74.89-4.42 2.43-9.72 4.36-15.05 2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71-1.03 1.49-4.76 4.8-8.29 7.36-8.37 6.08-11.7 9.39-12.66 12.58-.93 3.11-1.02 7.23-.16 7.76.34.21 1.29 2.4 2.11 4.88 1.62 4.88 1.87 10.12.72 15.36-.39 1.77-1.05 5.47-1.46 8.23-.41 2.76-.98 6.46-1.25 8.22-.28 1.76-.97 3.68-1.55 4.26-.96.96-1.14.91-2.05-.53-.55-.87-1.2-3.01-1.44-4.75-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-.96-20.96.92-1.73 1.67-3.81 1.67-4.61 0-2.39-2.2-5.32-7.41-9.89-7.05-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3.01-2.6 9.11-2.97 22.02l-.35 12.13 1.95 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56.07 11.84.95 22.75 2 24.71.36.66.51 1.35.34 1.52-.17.17.41 2.09 1.29 4.27.88 2.18 1.81 6.22 2.06 8.98.25 2.76 1.02 7.43 1.71 10.37 2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 57.98-2.04 61.21-.12 2.02-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4.02-4.79-2.83-9.95.7-3.01 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1.01-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73.38-1.29.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6.03-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57.02-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-10.96-1.9-23.85-14.55-6.15-6.04-12.34-11.97-13.75-13.19-2.81-2.42-2.79-1.99-.56-9.63l1.35-4.65-1.69-3.04c-.93-1.67-2.09-3.51-2.59-4.07-1.33-1.51-5.5-10.89-5.99-13.49-.31-1.66-.09-2.67.87-3.9 2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1.05 9.41 5.03 1.34 4.79 1.37 9.79.1 18.55-.53 3.68-.98 8.68-.99 11.11-.02 4.01.19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52 1.7.71 3.82 1.99 4.72 2.85 11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 7.98 4.54 10.04 13.39 1.31 5.65 4 11.14 5.46 11.14.59 0 2.09-.63 3.33-1.39 1.98-1.22 2.25-1.73 2.25-4.18-.01-3.71-1.17-14.08-2-17.84-.37-1.66-.78-4.06-.93-5.35-.14-1.29-.61-3.85-1.03-5.69-2.55-11.16-3.65-15.46-4.1-16.05-1.55-2.02-4.08-10.2-4.93-15.92-1.64-11.11-3.96-14.23-12.91-17.39-4.64-1.64-8.89-4.12-13.32-7.78-1.15-.95-4.01-3.22-6.35-5.06-2.35-1.83-4.41-3.53-4.6-3.76-.18-.23-1.39-1.14-2.69-2.02-6.24-4.22-8.84-6.98-11.26-11.96l-2.44-5.02-.22-12.98-.22-12.98 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2.05 8.53-.19 10.12.02 11.66 1.56 1.53 1.53 1.36 6.4-.29 8.5-.74.94-1.34 1.98-1.34 2.32 0 .58-2.61 4.91-5.42 8.99-.68.99-2.13 5.35-2.37 6.82 20.44 13.39 21.55 3.77 14.07 28.98l11.4 2.54c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-11.98-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28 3.18-.92 6.58-1.68 7.55-1.68.97 0 3.66-.58 5.98-1.29 3.65-1.11 4.5-1.17 6.35-.4 1.17.48 3.79 1.09 5.82 1.36 2.02.26 4.72 1.12 6 1.91 1.28.79 3.53 1.77 5.02 2.17 2.51.68 3 .57 7.05-1.67l4.35-2.4 10.7-.41c10.44-.4 10.81-.47 15.26-2.68l4.58-2.3 2.46 1.43c1.76 1.02 3.14 2.73 4.85 5.98 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39.5 1.96 1.45 4.62 2.1 5.91.65 1.29 1.24 3.09 1.31 4.01.31 4.33-.03 5.3-2.41 6.92-2.17 1.47-6.98 7.91-6.98 9.34 0 .32-.48 1.69-1.07 3.03-5.04 11.51-6.76 13.56-14.26 16.98-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26-.37.69-2.21 2.37-4.09 3.71-2.04 1.47-3.8 3.38-4.38 4.78-.54 1.28-1.66 2.59-2.49 2.91-.83.32-1.94 1.08-2.45 1.71-.52.62-3.66 3.04-7 5.38-3.33 2.34-6.87 5.02-7.87 5.96-1 .94-2.07 1.71-2.39 1.71s-1.28.74-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6.22 1.63.86 4.27 1.42 5.88 1.32 3.8 1.31 7.86-.05 10.57-1.43 2.86-.89 6.65 1.35 9.59 2.01 2.63 2.16 4.56.71 8.84-.61 1.8-1.05 5.45-1.06 8.91-.02 4.88.22 6.28 1.46 8.38 1.2 2.04 1.82 2.48 3.24 2.32 1.98-.23 2.3-1.05 4.71-12.12 2.18-10.03 3.71-11.92 13.76-17.08 2.94-1.51 7.46-3.96 10.03-5.44 2.58-1.48 6.79-3.69 9.37-4.91 6.67-3.16 11.05-6.52 15.22-11.67 7.11-8.79 9.98-16.22 12.85-33.3.55-3.28 1.43-5.65 2.86-7.73 1.29-1.87 2.37-4.62 2.89-7.31 1.02-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8.03-2.18 3.11-6.46 13.01-8.76 20.26l-2.29 7.22-6.97 6.49c-3.83 3.57-7.96 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 9.99 0 2.98.43 4.96 1.59 7.26.87 1.74 1.81 3.91 2.09 4.83.28.92.98 2.22 1.57 2.89 1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12.02-4.7 12.02-1.79 0-4.06 9.27-5.07 20.74-.18 2.02-.62 5.94-.98 8.7-.36 2.76-.96 9.98-1.35 16.05-.77 12.22-.19 18.77 2.05 23.15 3.41 6.69.52 12.69-11.03 22.84l-3.97 3.49.07 5.19c.04 2.86.55 6.85 1.14 8.87 4.61 15.98 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15.42 1.84.91 5 1.08 7.02.17 2.02.66 5.33 1.08 7.36.47 2.26.78 11.02.79 22.74l.02 19.06-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2.02-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3.02-17.66-3.03-21.3-.01-4.23 1.02-6 5.28-9.13 4.14-3.04 4.86-3.14 5.48-.72.28 1.1 1.45 5.62 2.6 10.03 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-.98 7.07-1.17 12.39-1.04 28.43.17 19.4-.64 35.73-2.04 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-70.99-37.58c-.24-.38-1.01-5.24-1.73-10.79-.72-5.56-1.49-10.41-1.73-10.79-.23-.38-.68-3.3-.99-6.49-.31-3.19-.91-7.46-1.33-9.48-.99-4.79-3.35-19.35-3.42-21.07-.03-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29.96-.96 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83-.18 4.6-.49 9.87-.67 11.71-.18 1.84-.61 9.36-.94 16.72-.79 17.41-1.94 31.29-2.65 32-.32.3-.76.24-1-.14zM74.63 162.61c21.07 12.79 17.84 14.15 28.49 17.66 13.01 4.29 18.87 7.13 23.15 16.87-43.66 36.14-69.01 57.9-76.71 70.82-31.02 52.01-5.99 101.59 62.75 87.21-14.18 29.23-77.97 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179.02c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-67.96 2.98-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.27 70.58-78.66 91.12-105.29 61.65z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "390.88",
    +          "512"
    +        ],
    +        "width": 390,
    +        "height": 512,
    +        "path": "M203.28 511.89c-.98-3.26-1.69-15.83-1.39-24.58.55-15.89.98-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-.96.4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-.99-11.43.16-4.81 0-10.53-.34-12.71-2.05-12.97-3.46-27.7-3.25-33.9.21-6.12.43-7.15 2.06-9.67 3.05-4.71 6.51-14.04 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74.89-4.42 2.43-9.72 4.36-15.05 2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71-1.03 1.49-4.76 4.8-8.29 7.36-8.37 6.08-11.7 9.39-12.66 12.58-.93 3.11-1.02 7.23-.16 7.76.34.21 1.29 2.4 2.11 4.88 1.62 4.88 1.87 10.12.72 15.36-.39 1.77-1.05 5.47-1.46 8.23-.41 2.76-.98 6.46-1.25 8.22-.28 1.76-.97 3.68-1.55 4.26-.96.96-1.14.91-2.05-.53-.55-.87-1.2-3.01-1.44-4.75-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-.96-20.96.92-1.73 1.67-3.81 1.67-4.61 0-2.39-2.2-5.32-7.41-9.89-7.05-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3.01-2.6 9.11-2.97 22.02l-.35 12.13 1.95 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56.07 11.84.95 22.75 2 24.71.36.66.51 1.35.34 1.52-.17.17.41 2.09 1.29 4.27.88 2.18 1.81 6.22 2.06 8.98.25 2.76 1.02 7.43 1.71 10.37 2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 57.98-2.04 61.21-.12 2.02-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4.02-4.79-2.83-9.95.7-3.01 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1.01-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73.38-1.29.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6.03-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57.02-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-10.96-1.9-23.85-14.55-6.15-6.04-12.34-11.97-13.75-13.19-2.81-2.42-2.79-1.99-.56-9.63l1.35-4.65-1.69-3.04c-.93-1.67-2.09-3.51-2.59-4.07-1.33-1.51-5.5-10.89-5.99-13.49-.31-1.66-.09-2.67.87-3.9 2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1.05 9.41 5.03 1.34 4.79 1.37 9.79.1 18.55-.53 3.68-.98 8.68-.99 11.11-.02 4.01.19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52 1.7.71 3.82 1.99 4.72 2.85 11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 7.98 4.54 10.04 13.39 1.31 5.65 4 11.14 5.46 11.14.59 0 2.09-.63 3.33-1.39 1.98-1.22 2.25-1.73 2.25-4.18-.01-3.71-1.17-14.08-2-17.84-.37-1.66-.78-4.06-.93-5.35-.14-1.29-.61-3.85-1.03-5.69-2.55-11.16-3.65-15.46-4.1-16.05-1.55-2.02-4.08-10.2-4.93-15.92-1.64-11.11-3.96-14.23-12.91-17.39-4.64-1.64-8.89-4.12-13.32-7.78-1.15-.95-4.01-3.22-6.35-5.06-2.35-1.83-4.41-3.53-4.6-3.76-.18-.23-1.39-1.14-2.69-2.02-6.24-4.22-8.84-6.98-11.26-11.96l-2.44-5.02-.22-12.98-.22-12.98 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2.05 8.53-.19 10.12.02 11.66 1.56 1.53 1.53 1.36 6.4-.29 8.5-.74.94-1.34 1.98-1.34 2.32 0 .58-2.61 4.91-5.42 8.99-.68.99-2.13 5.35-2.37 6.82 20.44 13.39 21.55 3.77 14.07 28.98l11.4 2.54c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-11.98-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28 3.18-.92 6.58-1.68 7.55-1.68.97 0 3.66-.58 5.98-1.29 3.65-1.11 4.5-1.17 6.35-.4 1.17.48 3.79 1.09 5.82 1.36 2.02.26 4.72 1.12 6 1.91 1.28.79 3.53 1.77 5.02 2.17 2.51.68 3 .57 7.05-1.67l4.35-2.4 10.7-.41c10.44-.4 10.81-.47 15.26-2.68l4.58-2.3 2.46 1.43c1.76 1.02 3.14 2.73 4.85 5.98 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39.5 1.96 1.45 4.62 2.1 5.91.65 1.29 1.24 3.09 1.31 4.01.31 4.33-.03 5.3-2.41 6.92-2.17 1.47-6.98 7.91-6.98 9.34 0 .32-.48 1.69-1.07 3.03-5.04 11.51-6.76 13.56-14.26 16.98-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26-.37.69-2.21 2.37-4.09 3.71-2.04 1.47-3.8 3.38-4.38 4.78-.54 1.28-1.66 2.59-2.49 2.91-.83.32-1.94 1.08-2.45 1.71-.52.62-3.66 3.04-7 5.38-3.33 2.34-6.87 5.02-7.87 5.96-1 .94-2.07 1.71-2.39 1.71s-1.28.74-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6.22 1.63.86 4.27 1.42 5.88 1.32 3.8 1.31 7.86-.05 10.57-1.43 2.86-.89 6.65 1.35 9.59 2.01 2.63 2.16 4.56.71 8.84-.61 1.8-1.05 5.45-1.06 8.91-.02 4.88.22 6.28 1.46 8.38 1.2 2.04 1.82 2.48 3.24 2.32 1.98-.23 2.3-1.05 4.71-12.12 2.18-10.03 3.71-11.92 13.76-17.08 2.94-1.51 7.46-3.96 10.03-5.44 2.58-1.48 6.79-3.69 9.37-4.91 6.67-3.16 11.05-6.52 15.22-11.67 7.11-8.79 9.98-16.22 12.85-33.3.55-3.28 1.43-5.65 2.86-7.73 1.29-1.87 2.37-4.62 2.89-7.31 1.02-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8.03-2.18 3.11-6.46 13.01-8.76 20.26l-2.29 7.22-6.97 6.49c-3.83 3.57-7.96 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 9.99 0 2.98.43 4.96 1.59 7.26.87 1.74 1.81 3.91 2.09 4.83.28.92.98 2.22 1.57 2.89 1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12.02-4.7 12.02-1.79 0-4.06 9.27-5.07 20.74-.18 2.02-.62 5.94-.98 8.7-.36 2.76-.96 9.98-1.35 16.05-.77 12.22-.19 18.77 2.05 23.15 3.41 6.69.52 12.69-11.03 22.84l-3.97 3.49.07 5.19c.04 2.86.55 6.85 1.14 8.87 4.61 15.98 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15.42 1.84.91 5 1.08 7.02.17 2.02.66 5.33 1.08 7.36.47 2.26.78 11.02.79 22.74l.02 19.06-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2.02-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3.02-17.66-3.03-21.3-.01-4.23 1.02-6 5.28-9.13 4.14-3.04 4.86-3.14 5.48-.72.28 1.1 1.45 5.62 2.6 10.03 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-.98 7.07-1.17 12.39-1.04 28.43.17 19.4-.64 35.73-2.04 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-70.99-37.58c-.24-.38-1.01-5.24-1.73-10.79-.72-5.56-1.49-10.41-1.73-10.79-.23-.38-.68-3.3-.99-6.49-.31-3.19-.91-7.46-1.33-9.48-.99-4.79-3.35-19.35-3.42-21.07-.03-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29.96-.96 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83-.18 4.6-.49 9.87-.67 11.71-.18 1.84-.61 9.36-.94 16.72-.79 17.41-1.94 31.29-2.65 32-.32.3-.76.24-1-.14zM74.63 162.61c21.07 12.79 17.84 14.15 28.49 17.66 13.01 4.29 18.87 7.13 23.15 16.87-43.66 36.14-69.01 57.9-76.71 70.82-31.02 52.01-5.99 101.59 62.75 87.21-14.18 29.23-77.97 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179.02c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-67.96 2.98-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.27 70.58-78.66 91.12-105.29 61.65z"
    +      }
    +    }
    +  },
    +  "map": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "coordinates",
    +        "location",
    +        "paper",
    +        "place",
    +        "travel"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f279",
    +    "label": "Map",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111686,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111627,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z"
    +      }
    +    }
    +  },
    +  "map-marked": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "address",
    +        "coordinates",
    +        "destination",
    +        "gps",
    +        "localize",
    +        "location",
    +        "map",
    +        "paper",
    +        "pin",
    +        "place",
    +        "point of interest",
    +        "position",
    +        "route",
    +        "travel",
    +        "where"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f59f",
    +    "label": "Map Marked",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111686,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"
    +      }
    +    }
    +  },
    +  "map-marked-alt": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "address",
    +        "coordinates",
    +        "destination",
    +        "gps",
    +        "localize",
    +        "location",
    +        "map",
    +        "paper",
    +        "pin",
    +        "place",
    +        "point of interest",
    +        "position",
    +        "route",
    +        "travel",
    +        "where"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5a0",
    +    "label": "Alternate Map Marked",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111685,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"
    +      }
    +    }
    +  },
    +  "map-marker": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "address",
    +        "coordinates",
    +        "gps",
    +        "localize",
    +        "location",
    +        "map",
    +        "pin",
    +        "place",
    +        "position",
    +        "travel",
    +        "where"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f041",
    +    "label": "map-marker",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"
    +      }
    +    }
    +  },
    +  "map-marker-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "address",
    +        "coordinates",
    +        "gps",
    +        "localize",
    +        "location",
    +        "map",
    +        "pin",
    +        "place",
    +        "position",
    +        "travel",
    +        "where"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3c5",
    +    "label": "Alternate Map Marker",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"
    +      }
    +    }
    +  },
    +  "map-pin": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "address",
    +        "coordinates",
    +        "gps",
    +        "localize",
    +        "location",
    +        "map",
    +        "marker",
    +        "place",
    +        "position",
    +        "travel",
    +        "where"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f276",
    +    "label": "Map Pin",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831536,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 288 512\"><path d=\"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "288",
    +          "512"
    +        ],
    +        "width": 288,
    +        "height": 512,
    +        "path": "M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"
    +      }
    +    }
    +  },
    +  "map-signs": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f277",
    +    "label": "Map Signs",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831537,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"
    +      }
    +    }
    +  },
    +  "markdown": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f60f",
    +    "label": "Markdown",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1532362831425,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M593.85 452.92H46.15C20.7 452.92 0 432.22 0 406.77V105.23c0-25.45 20.7-46.15 46.15-46.15h547.69c25.45 0 46.15 20.7 46.15 46.15v301.54c.01 25.45-20.69 46.15-46.14 46.15zm-440-92.3v-120l61.54 76.92 61.54-76.92v120h61.54V151.38h-61.54l-61.54 76.92-61.54-76.92H92.31v209.23h61.54zM566.15 256h-61.54V151.38h-61.54V256h-61.54l92.31 107.69L566.15 256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M593.85 452.92H46.15C20.7 452.92 0 432.22 0 406.77V105.23c0-25.45 20.7-46.15 46.15-46.15h547.69c25.45 0 46.15 20.7 46.15 46.15v301.54c.01 25.45-20.69 46.15-46.14 46.15zm-440-92.3v-120l61.54 76.92 61.54-76.92v120h61.54V151.38h-61.54l-61.54 76.92-61.54-76.92H92.31v209.23h61.54zM566.15 256h-61.54V151.38h-61.54V256h-61.54l92.31 107.69L566.15 256z"
    +      }
    +    }
    +  },
    +  "marker": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "edit",
    +        "sharpie",
    +        "update",
    +        "write"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5a1",
    +    "label": "Marker",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111687,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"
    +      }
    +    }
    +  },
    +  "mars": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "male"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f222",
    +    "label": "Mars",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"
    +      }
    +    }
    +  },
    +  "mars-double": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f227",
    +    "label": "Mars Double",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"
    +      }
    +    }
    +  },
    +  "mars-stroke": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f229",
    +    "label": "Mars Stroke",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"
    +      }
    +    }
    +  },
    +  "mars-stroke-h": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f22b",
    +    "label": "Mars Stroke Horizontal",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 480 512\"><path d=\"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "480",
    +          "512"
    +        ],
    +        "width": 480,
    +        "height": 512,
    +        "path": "M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"
    +      }
    +    }
    +  },
    +  "mars-stroke-v": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f22a",
    +    "label": "Mars Stroke Vertical",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 288 512\"><path d=\"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "288",
    +          "512"
    +        ],
    +        "width": 288,
    +        "height": 512,
    +        "path": "M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"
    +      }
    +    }
    +  },
    +  "mask": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "costume",
    +        "disguise",
    +        "halloween",
    +        "holiday",
    +        "secret",
    +        "super hero"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6fa",
    +    "label": "Mask",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290237,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"
    +      }
    +    }
    +  },
    +  "mastodon": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4f6",
    +    "label": "Mastodon",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365020,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 417.8 512\"><path d=\"M417.8 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.5-28.4-290.4 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.4-.9-9-.9-13.9 85.6 20.9 158.6 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H75.1c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "417.8",
    +          "512"
    +        ],
    +        "width": 417,
    +        "height": 512,
    +        "path": "M417.8 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.5-28.4-290.4 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.4-.9-9-.9-13.9 85.6 20.9 158.6 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H75.1c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"
    +      }
    +    }
    +  },
    +  "maxcdn": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f136",
    +    "label": "MaxCDN",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"
    +      }
    +    }
    +  },
    +  "medal": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5a2",
    +    "label": "Medal",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111687,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"
    +      }
    +    }
    +  },
    +  "medapps": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3c6",
    +    "label": "MedApps",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821386,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"
    +      }
    +    }
    +  },
    +  "medium": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f23a",
    +    "label": "Medium",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821387,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"
    +      }
    +    }
    +  },
    +  "medium-m": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3c7",
    +    "label": "Medium M",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821386,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z"
    +      }
    +    }
    +  },
    +  "medkit": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "first aid",
    +        "firstaid",
    +        "health",
    +        "help",
    +        "support"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0fa",
    +    "label": "medkit",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"
    +      }
    +    }
    +  },
    +  "medrt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3c8",
    +    "label": "MRT",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 544 512\"><path d=\"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "544",
    +          "512"
    +        ],
    +        "width": 544,
    +        "height": 512,
    +        "path": "M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z"
    +      }
    +    }
    +  },
    +  "meetup": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2e0",
    +    "label": "Meetup",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"
    +      }
    +    }
    +  },
    +  "megaport": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f5a3",
    +    "label": "Megaport",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529520111564,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.04 8 0 119.04 0 256c0 136.97 111.04 248 248 248 136.96 0 248-111.03 248-248C496 119.04 384.96 8 248 8zm85.46 267.67l59.66 59.67v87.05l-26.07 19.23L341 422.39v-65.46l-33.44-33.44-33.44 33.44v65.46L248 441.62l-26.12-19.23v-65.46l-33.44-33.44L155 356.92v65.46l-26.07 19.23-26.06-19.23v-87.05l59.47-59.47V188l59.5-59.5V52.88l26.06-19.23 26.06 19.23v75.64l59.5 59.5m-85.56-11.86l33.44 33.44V276L248 309.33l-33.54-33.54v-66.2l33.44-33.43z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.04 8 0 119.04 0 256c0 136.97 111.04 248 248 248 136.96 0 248-111.03 248-248C496 119.04 384.96 8 248 8zm85.46 267.67l59.66 59.67v87.05l-26.07 19.23L341 422.39v-65.46l-33.44-33.44-33.44 33.44v65.46L248 441.62l-26.12-19.23v-65.46l-33.44-33.44L155 356.92v65.46l-26.07 19.23-26.06-19.23v-87.05l59.47-59.47V188l59.5-59.5V52.88l26.06-19.23 26.06 19.23v75.64l59.5 59.5m-85.56-11.86l33.44 33.44V276L248 309.33l-33.54-33.54v-66.2l33.44-33.43z"
    +      }
    +    }
    +  },
    +  "meh": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0",
    +      "5.0.9",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "neutral",
    +        "rating"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f11a",
    +    "label": "Neutral Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111688,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      },
    +      "regular": {
    +        "last_modified": 1522083406006,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"
    +      }
    +    }
    +  },
    +  "meh-blank": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "neutral",
    +        "rating"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f5a4",
    +    "label": "Face Without Mouth",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111688,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111627,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"
    +      }
    +    }
    +  },
    +  "meh-rolling-eyes": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "neutral",
    +        "rating"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f5a5",
    +    "label": "Face With Rolling Eyes",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111688,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111627,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"
    +      }
    +    }
    +  },
    +  "memory": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "DIMM",
    +        "RAM"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f538",
    +    "label": "Memory",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154570,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"
    +      }
    +    }
    +  },
    +  "menorah": {
    +    "changes": [
    +      "5.3.0",
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "candle",
    +        "hanukkah",
    +        "jewish",
    +        "judaism",
    +        "light"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f676",
    +    "label": "Menorah",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1536424727818,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"
    +      }
    +    }
    +  },
    +  "mercury": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "transgender"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f223",
    +    "label": "Mercury",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 288 512\"><path d=\"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "288",
    +          "512"
    +        ],
    +        "width": 288,
    +        "height": 512,
    +        "path": "M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"
    +      }
    +    }
    +  },
    +  "microchip": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cpu",
    +        "processor"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2db",
    +    "label": "Microchip",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"
    +      }
    +    }
    +  },
    +  "microphone": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "record",
    +        "sound",
    +        "voice"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f130",
    +    "label": "microphone",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154572,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"><path d=\"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "352",
    +          "512"
    +        ],
    +        "width": 352,
    +        "height": 512,
    +        "path": "M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "microphone-alt": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "record",
    +        "sound",
    +        "voice"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3c9",
    +    "label": "Alternate Microphone",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154571,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"><path d=\"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "352",
    +          "512"
    +        ],
    +        "width": 352,
    +        "height": 512,
    +        "path": "M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"
    +      }
    +    }
    +  },
    +  "microphone-alt-slash": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "disable",
    +        "mute",
    +        "record",
    +        "sound",
    +        "voice"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f539",
    +    "label": "Alternate Microphone Slash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154571,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "microphone-slash": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "disable",
    +        "mute",
    +        "record",
    +        "sound",
    +        "voice"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f131",
    +    "label": "Microphone Slash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154571,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "microscope": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f610",
    +    "label": "Microscope",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831537,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"
    +      }
    +    }
    +  },
    +  "microsoft": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3ca",
    +    "label": "Microsoft",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1504646588000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"
    +      }
    +    }
    +  },
    +  "minus": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "collapse",
    +        "delete",
    +        "hide",
    +        "minify",
    +        "negative",
    +        "remove",
    +        "trash"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f068",
    +    "label": "minus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154572,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "minus-circle": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "delete",
    +        "hide",
    +        "negative",
    +        "remove",
    +        "trash"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f056",
    +    "label": "Minus Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"
    +      }
    +    }
    +  },
    +  "minus-square": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "collapse",
    +        "delete",
    +        "hide",
    +        "minify",
    +        "negative",
    +        "remove",
    +        "trash"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f146",
    +    "label": "Minus Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
    +      }
    +    }
    +  },
    +  "mix": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3cb",
    +    "label": "Mix",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426581999,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"
    +      }
    +    }
    +  },
    +  "mixcloud": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f289",
    +    "label": "Mixcloud",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z"
    +      }
    +    }
    +  },
    +  "mizuni": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3cc",
    +    "label": "Mizuni",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"
    +      }
    +    }
    +  },
    +  "mobile": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "apple",
    +        "call",
    +        "cell phone",
    +        "cellphone",
    +        "device",
    +        "iphone",
    +        "number",
    +        "screen",
    +        "telephone",
    +        "text"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f10b",
    +    "label": "Mobile Phone",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      }
    +    }
    +  },
    +  "mobile-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "apple",
    +        "call",
    +        "cell phone",
    +        "cellphone",
    +        "device",
    +        "iphone",
    +        "number",
    +        "screen",
    +        "telephone",
    +        "text"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3cd",
    +    "label": "Alternate Mobile",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"
    +      }
    +    }
    +  },
    +  "modx": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f285",
    +    "label": "MODX",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"
    +      }
    +    }
    +  },
    +  "monero": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3d0",
    +    "label": "Monero",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"
    +      }
    +    }
    +  },
    +  "money-bill": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "buy",
    +        "cash",
    +        "checkout",
    +        "money",
    +        "payment",
    +        "price",
    +        "purchase"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0d6",
    +    "label": "Money Bill",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154573,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"
    +      }
    +    }
    +  },
    +  "money-bill-alt": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "buy",
    +        "cash",
    +        "checkout",
    +        "money",
    +        "payment",
    +        "price",
    +        "purchase"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f3d1",
    +    "label": "Alternate Money Bill",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154572,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"
    +      },
    +      "regular": {
    +        "last_modified": 1525967154554,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z"
    +      }
    +    }
    +  },
    +  "money-bill-wave": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f53a",
    +    "label": "Wavy Money Bill",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154573,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"
    +      }
    +    }
    +  },
    +  "money-bill-wave-alt": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f53b",
    +    "label": "Alternate Wavy Money Bill",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154573,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"
    +      }
    +    }
    +  },
    +  "money-check": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bank check",
    +        "cheque"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f53c",
    +    "label": "Money Check",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154574,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "money-check-alt": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bank check",
    +        "cheque"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f53d",
    +    "label": "Alternate Money Check",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154574,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"
    +      }
    +    }
    +  },
    +  "monument": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "building",
    +        "historic",
    +        "memoroable"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5a6",
    +    "label": "Monument",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111689,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"
    +      }
    +    }
    +  },
    +  "moon": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "contrast",
    +        "darker",
    +        "night"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f186",
    +    "label": "Moon",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502810244000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"
    +      },
    +      "regular": {
    +        "last_modified": 1502810244000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z"
    +      }
    +    }
    +  },
    +  "mortar-pestle": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "crush",
    +        "culinary",
    +        "grind",
    +        "medical",
    +        "mix",
    +        "spices"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5a7",
    +    "label": "Mortar Pestle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111689,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "mosque": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "building",
    +        "islam",
    +        "muslim"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f678",
    +    "label": "Mosque",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320888,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"
    +      }
    +    }
    +  },
    +  "motorcycle": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bike",
    +        "machine",
    +        "transportation",
    +        "vehicle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f21c",
    +    "label": "Motorcycle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M512.949 192.003c-14.862-.108-29.14 2.322-42.434 6.874L437.589 144H520c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24h-45.311a24 24 0 0 0-17.839 7.945l-37.496 41.663-22.774-37.956A24 24 0 0 0 376 64h-80c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h66.411l19.2 32H227.904c-17.727-23.073-44.924-40-99.904-40H72.54c-13.455 0-24.791 11.011-24.536 24.464C48.252 141.505 58.9 152 72 152h56c24.504 0 38.686 10.919 47.787 24.769l-11.291 20.529c-13.006-3.865-26.871-5.736-41.251-5.21C55.857 194.549 1.565 249.605.034 317.021-1.603 389.076 56.317 448 128 448c59.642 0 109.744-40.794 123.953-96h84.236c13.673 0 24.589-11.421 23.976-25.077-2.118-47.12 17.522-93.665 56.185-125.026l12.485 20.808c-27.646 23.654-45.097 58.88-44.831 98.179.47 69.556 57.203 126.452 126.758 127.11 71.629.678 129.839-57.487 129.234-129.099-.588-69.591-57.455-126.386-127.047-126.892zM128 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c4.242 0 8.405.341 12.469.982L98.97 316.434C90.187 332.407 101.762 352 120 352h81.297c-12.37 28.225-40.56 48-73.297 48zm388.351-.116C470.272 402.337 432 365.554 432 320c0-21.363 8.434-40.781 22.125-55.144l49.412 82.352c4.546 7.577 14.375 10.034 21.952 5.488l13.72-8.232c7.577-4.546 10.034-14.375 5.488-21.952l-48.556-80.927A80.005 80.005 0 0 1 512 240c45.554 0 82.338 38.273 79.884 84.352-2.16 40.558-34.974 73.372-75.533 75.532z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M512.949 192.003c-14.862-.108-29.14 2.322-42.434 6.874L437.589 144H520c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24h-45.311a24 24 0 0 0-17.839 7.945l-37.496 41.663-22.774-37.956A24 24 0 0 0 376 64h-80c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h66.411l19.2 32H227.904c-17.727-23.073-44.924-40-99.904-40H72.54c-13.455 0-24.791 11.011-24.536 24.464C48.252 141.505 58.9 152 72 152h56c24.504 0 38.686 10.919 47.787 24.769l-11.291 20.529c-13.006-3.865-26.871-5.736-41.251-5.21C55.857 194.549 1.565 249.605.034 317.021-1.603 389.076 56.317 448 128 448c59.642 0 109.744-40.794 123.953-96h84.236c13.673 0 24.589-11.421 23.976-25.077-2.118-47.12 17.522-93.665 56.185-125.026l12.485 20.808c-27.646 23.654-45.097 58.88-44.831 98.179.47 69.556 57.203 126.452 126.758 127.11 71.629.678 129.839-57.487 129.234-129.099-.588-69.591-57.455-126.386-127.047-126.892zM128 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c4.242 0 8.405.341 12.469.982L98.97 316.434C90.187 332.407 101.762 352 120 352h81.297c-12.37 28.225-40.56 48-73.297 48zm388.351-.116C470.272 402.337 432 365.554 432 320c0-21.363 8.434-40.781 22.125-55.144l49.412 82.352c4.546 7.577 14.375 10.034 21.952 5.488l13.72-8.232c7.577-4.546 10.034-14.375 5.488-21.952l-48.556-80.927A80.005 80.005 0 0 1 512 240c45.554 0 82.338 38.273 79.884 84.352-2.16 40.558-34.974 73.372-75.533 75.532z"
    +      }
    +    }
    +  },
    +  "mountain": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6fc",
    +    "label": "Mountain",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290237,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"
    +      }
    +    }
    +  },
    +  "mouse-pointer": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "select"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f245",
    +    "label": "Mouse Pointer",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"
    +      }
    +    }
    +  },
    +  "music": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "note",
    +        "sound"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f001",
    +    "label": "Music",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831538,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z"
    +      }
    +    }
    +  },
    +  "napster": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3d2",
    +    "label": "Napster",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"
    +      }
    +    }
    +  },
    +  "neos": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f612",
    +    "label": "Neos",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1532362831425,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 456.38 512\"><path d=\"M387.44 512h-95.11L184.12 357.46v91.1L97.69 512H0V29.82L40.47 0h108.05l123.74 176.13V63.45L358.69 0h97.69v461.5L387.44 512zM10.77 35.27v460.72l72.01-52.88V193.95l215.49 307.69h84.79l52.35-38.17h-78.27L40.96 12.98 10.77 35.27zm82.54 466.61l80.04-58.78V342.06L93.55 227.7v220.94l-72.58 53.25h72.34zM52.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L142.91 10.77H52.63zm230.4 180.88l72.01 102.81V15.93l-72.01 52.96v122.76z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "456.38",
    +          "512"
    +        ],
    +        "width": 456,
    +        "height": 512,
    +        "path": "M387.44 512h-95.11L184.12 357.46v91.1L97.69 512H0V29.82L40.47 0h108.05l123.74 176.13V63.45L358.69 0h97.69v461.5L387.44 512zM10.77 35.27v460.72l72.01-52.88V193.95l215.49 307.69h84.79l52.35-38.17h-78.27L40.96 12.98 10.77 35.27zm82.54 466.61l80.04-58.78V342.06L93.55 227.7v220.94l-72.58 53.25h72.34zM52.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L142.91 10.77H52.63zm230.4 180.88l72.01 102.81V15.93l-72.01 52.96v122.76z"
    +      }
    +    }
    +  },
    +  "network-wired": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6ff",
    +    "label": "Wired Network",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011827891,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"
    +      }
    +    }
    +  },
    +  "neuter": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f22c",
    +    "label": "Neuter",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 288 512\"><path d=\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "288",
    +          "512"
    +        ],
    +        "width": 288,
    +        "height": 512,
    +        "path": "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"
    +      }
    +    }
    +  },
    +  "newspaper": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "article",
    +        "press"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1ea",
    +    "label": "Newspaper",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"
    +      },
    +      "regular": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z"
    +      }
    +    }
    +  },
    +  "nimblr": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f5a8",
    +    "label": "Nimblr",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529514897192,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 355.52 512\"><path d=\"M232.6 299.29c15.57 0 27.15 11.46 27.15 26.96 0 15.55-11.62 26.96-27.15 26.96-15.7 0-27.15-11.57-27.15-26.96 0-15.51 11.58-26.96 27.15-26.96zM99.01 326.25c0-15.61 11.68-26.96 27.15-26.96 15.57 0 27.15 11.46 27.15 26.96 0 15.41-11.47 26.96-27.15 26.96-15.44 0-27.15-11.31-27.15-26.96m78.75-167.3C143 158.95 75.45 178.77 45.25 227L0 0v335.48C0 433.13 79.61 512 177.76 512c98.24 0 177.76-78.95 177.76-176.52 0-97.46-79.39-176.53-177.76-176.53zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59 0-72.68 59.24-131.59 132.51-131.59 73.27 0 132.51 58.91 132.51 131.59s-59.25 131.59-132.51 131.59z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "355.52",
    +          "512"
    +        ],
    +        "width": 355,
    +        "height": 512,
    +        "path": "M232.6 299.29c15.57 0 27.15 11.46 27.15 26.96 0 15.55-11.62 26.96-27.15 26.96-15.7 0-27.15-11.57-27.15-26.96 0-15.51 11.58-26.96 27.15-26.96zM99.01 326.25c0-15.61 11.68-26.96 27.15-26.96 15.57 0 27.15 11.46 27.15 26.96 0 15.41-11.47 26.96-27.15 26.96-15.44 0-27.15-11.31-27.15-26.96m78.75-167.3C143 158.95 75.45 178.77 45.25 227L0 0v335.48C0 433.13 79.61 512 177.76 512c98.24 0 177.76-78.95 177.76-176.52 0-97.46-79.39-176.53-177.76-176.53zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59 0-72.68 59.24-131.59 132.51-131.59 73.27 0 132.51 58.91 132.51 131.59s-59.25 131.59-132.51 131.59z"
    +      }
    +    }
    +  },
    +  "nintendo-switch": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f418",
    +    "label": "Nintendo Switch",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M95.9 33.5c-44.6 8-80.5 41-91.8 84.4C0 133.6-.3 142.8.2 264.4.4 376 .5 378.6 2.4 387.3c10.3 46.5 43.3 79.6 90.3 90.5 6.1 1.4 13.9 1.7 64.1 1.9 51.9.4 57.3.3 58.7-1.1 1.4-1.4 1.5-19.3 1.5-222.2 0-150.5-.3-221.3-.9-222.6-.9-1.7-2.5-1.8-56.9-1.7-44.2.1-57.5.4-63.3 1.4zm83.9 222.6V444l-37.8-.5c-34.8-.4-38.5-.6-45.5-2.3-29.9-7.7-52-30.7-58.3-60.7-2-9.4-2-240.1-.1-249.3 5.6-26.1 23.7-47.7 48-57.4 12.2-4.9 17.9-5.5 57.6-5.6l35.9-.1v188zm-75.9-131.2c-5.8 1.1-14.7 5.6-19.5 9.7-9.7 8.4-14.6 20.4-13.8 34.5.4 7.3.8 9.3 3.8 15.2 4.4 9 10.9 15.6 19.9 20 6.2 3.1 7.8 3.4 15.9 3.7 7.3.3 9.9 0 14.8-1.7 20.1-6.8 32.3-26.3 28.8-46.4-3.9-23.7-26.6-39.7-49.9-35zm158.2-92.3c-.4.3-.6 100.8-.6 223.5 0 202.3.1 222.8 1.5 223.4 2.5.9 74.5.6 83.4-.4 37.7-4.3 71-27.2 89-61.2 2.3-4.4 5.4-11.7 7-16.2 5.8-17.4 5.7-12.8 5.7-146.1 0-106.4-.2-122.3-1.5-129-9.2-48.3-46.1-84.8-94.5-93.1-6.5-1.1-16.5-1.4-48.8-1.4-22.4-.1-40.9.2-41.2.5zm99.1 202.1c14.5 3.8 26.3 14.8 31.2 28.9 3.1 8.7 3 21.5-.1 29.5-5.7 14.7-16.8 25-31.1 28.8-23.2 6-47.9-8-54.6-31-2-7-1.9-18.9.4-26.2 6.9-22.7 31-36.1 54.2-30z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M95.9 33.5c-44.6 8-80.5 41-91.8 84.4C0 133.6-.3 142.8.2 264.4.4 376 .5 378.6 2.4 387.3c10.3 46.5 43.3 79.6 90.3 90.5 6.1 1.4 13.9 1.7 64.1 1.9 51.9.4 57.3.3 58.7-1.1 1.4-1.4 1.5-19.3 1.5-222.2 0-150.5-.3-221.3-.9-222.6-.9-1.7-2.5-1.8-56.9-1.7-44.2.1-57.5.4-63.3 1.4zm83.9 222.6V444l-37.8-.5c-34.8-.4-38.5-.6-45.5-2.3-29.9-7.7-52-30.7-58.3-60.7-2-9.4-2-240.1-.1-249.3 5.6-26.1 23.7-47.7 48-57.4 12.2-4.9 17.9-5.5 57.6-5.6l35.9-.1v188zm-75.9-131.2c-5.8 1.1-14.7 5.6-19.5 9.7-9.7 8.4-14.6 20.4-13.8 34.5.4 7.3.8 9.3 3.8 15.2 4.4 9 10.9 15.6 19.9 20 6.2 3.1 7.8 3.4 15.9 3.7 7.3.3 9.9 0 14.8-1.7 20.1-6.8 32.3-26.3 28.8-46.4-3.9-23.7-26.6-39.7-49.9-35zm158.2-92.3c-.4.3-.6 100.8-.6 223.5 0 202.3.1 222.8 1.5 223.4 2.5.9 74.5.6 83.4-.4 37.7-4.3 71-27.2 89-61.2 2.3-4.4 5.4-11.7 7-16.2 5.8-17.4 5.7-12.8 5.7-146.1 0-106.4-.2-122.3-1.5-129-9.2-48.3-46.1-84.8-94.5-93.1-6.5-1.1-16.5-1.4-48.8-1.4-22.4-.1-40.9.2-41.2.5zm99.1 202.1c14.5 3.8 26.3 14.8 31.2 28.9 3.1 8.7 3 21.5-.1 29.5-5.7 14.7-16.8 25-31.1 28.8-23.2 6-47.9-8-54.6-31-2-7-1.9-18.9.4-26.2 6.9-22.7 31-36.1 54.2-30z"
    +      }
    +    }
    +  },
    +  "node": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f419",
    +    "label": "Node.js",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1507669930674,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z"
    +      }
    +    }
    +  },
    +  "node-js": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3d3",
    +    "label": "Node.js JS",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426582000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"
    +      }
    +    }
    +  },
    +  "not-equal": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f53e",
    +    "label": "Not Equal",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154574,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"
    +      }
    +    }
    +  },
    +  "notes-medical": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f481",
    +    "label": "Medical Notes",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821454,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"
    +      }
    +    }
    +  },
    +  "npm": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3d4",
    +    "label": "npm",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"
    +      }
    +    }
    +  },
    +  "ns8": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3d5",
    +    "label": "NS8",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1506111999000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z"
    +      }
    +    }
    +  },
    +  "nutritionix": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3d6",
    +    "label": "Nutritionix",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 512\"><path d=\"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "400",
    +          "512"
    +        ],
    +        "width": 400,
    +        "height": 512,
    +        "path": "M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"
    +      }
    +    }
    +  },
    +  "object-group": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "design"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f247",
    +    "label": "Object Group",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"
    +      },
    +      "regular": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z"
    +      }
    +    }
    +  },
    +  "object-ungroup": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "design"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f248",
    +    "label": "Object Ungroup",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"
    +      },
    +      "regular": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z"
    +      }
    +    }
    +  },
    +  "odnoklassniki": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f263",
    +    "label": "Odnoklassniki",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z"
    +      }
    +    }
    +  },
    +  "odnoklassniki-square": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f264",
    +    "label": "Odnoklassniki Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z"
    +      }
    +    }
    +  },
    +  "oil-can": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f613",
    +    "label": "Oil Can",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831538,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"
    +      }
    +    }
    +  },
    +  "old-republic": {
    +    "changes": [
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f510",
    +    "label": "Old Republic",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442522,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z"
    +      }
    +    }
    +  },
    +  "om": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "buddhism",
    +        "hinduism",
    +        "jainism",
    +        "mantra"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f679",
    +    "label": "Om",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320889,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"
    +      }
    +    }
    +  },
    +  "opencart": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f23d",
    +    "label": "OpenCart",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"
    +      }
    +    }
    +  },
    +  "openid": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f19b",
    +    "label": "OpenID",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"
    +      }
    +    }
    +  },
    +  "opera": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f26a",
    +    "label": "Opera",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"
    +      }
    +    }
    +  },
    +  "optin-monster": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f23c",
    +    "label": "Optin Monster",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M550.671 450.303c0 11.62-15.673 19.457-32.158 14.863-12.16-3.243-31.346-17.565-36.211-27.294-5.674-11.62 4.054-32.698 18.916-30.806 15.674 1.621 49.453 25.401 49.453 43.237zM372.86 75.223c-3.783-72.151-100.796-79.718-125.928-23.51 44.588-24.321 90.257-15.673 125.928 23.51zM74.795 407.066c-15.673 1.621-49.452 25.401-49.452 43.237 0 11.62 15.673 19.457 32.157 14.863 12.16-3.243 31.076-17.565 35.94-27.294 5.946-11.62-3.782-32.698-18.645-30.806zm497.765 14.322c1.081 3.513 1.892 7.026 1.892 10.809.81 31.616-44.317 64.045-73.503 65.125-17.295.81-34.59-8.377-42.696-23.51-113.497 4.053-226.994 4.864-340.22 0-8.377 15.133-25.672 24.05-42.967 23.51-28.915-1.081-74.043-33.509-73.503-65.125.27-3.783.811-7.296 1.892-10.809-5.566-9.463-4.845-15.282 5.405-11.62 3.243-5.134 7.026-9.458 11.08-13.782-2.57-10.917 1.27-14.094 11.079-9.188 4.594-3.243 9.998-6.485 15.944-9.188 0-15.757 11.839-11.131 17.295-5.675 12.467-1.78 20.129.709 26.753 5.675v-19.726c-12.987 0-40.641-11.375-45.94-36.212-4.974-20.725 2.607-38.075 25.132-47.56.81-5.945 8.107-14.052 14.862-15.944 7.567-1.892 12.431 4.594 14.052 10.269 7.425 0 17.757 1.465 21.078 8.107 5.405-.541 11.079-1.352 16.484-1.892-2.432-1.892-5.134-3.513-8.107-4.594-5.134-8.917-13.782-11.079-24.591-11.62 0-.81 0-1.621.27-2.702-19.727-.541-44.048-5.675-54.857-17.835-21.321-23.638-15.935-83.577 12.16-103.498 8.377-5.675 21.618-.811 22.699 9.728 2.425 20.598.399 26.833 26.212 25.942 8.107-7.836 16.755-14.592 26.483-19.997-14.862-1.352-28.914 1.621-43.778 3.783 12.752-12.48 23.953-25.442 56.748-42.427 23.511-11.89 49.993-20.808 76.205-23.239-18.646-7.837-39.993-11.891-59.721-16.484 76.475-16.214 174.569-22.159 244.289 37.562 18.105 15.403 32.427 36.211 42.696 59.992 39.799 4.853 36.47-5.581 38.643-25.132 1.081-10.269 14.322-15.403 22.699-9.458 14.862 10.539 22.159 30.806 24.59 48.101 2.162 17.835.27 41.345-12.43 55.127-10.809 12.16-34.32 17.565-53.776 18.105v2.703c-11.08.27-20.268 2.432-25.673 11.62-2.972 1.081-5.674 2.703-8.377 4.594 5.675.54 11.35 1.351 16.755 1.891 1.869-5.619 12.535-8.377 21.077-8.377 1.621-5.405 6.756-11.89 14.052-10.269s14.052 9.998 14.863 15.944c10.809 4.324 22.159 12.16 25.131 25.672 1.892 8.107 1.621 15.133.27 21.888-5.726 25.262-33.361 36.212-45.939 36.212 0 6.756 0 13.241-.27 19.726 8.01-6.006 16.367-7.158 26.752-5.675 5.919-5.919 17.565-9.41 17.565 5.675 5.675 2.703 11.349 5.945 15.944 9.188 10.1-5.051 13.669-.539 10.809 9.188 4.053 4.323 8.107 8.917 11.079 13.782 10.136-3.62 11.021 2.078 5.409 11.62zm-73.773-254.016c17.295 6.756 26.212 22.159 30.265 35.67 1.081-10.539-2.702-39.453-13.782-51.073-7.296-7.296-14.052-5.134-14.052.81.001 6.216-1.35 11.62-2.431 14.593zm-18.646 12.43c12.971 15.673 17.024 41.615 12.7 62.963 10.809-2.162 20.537-6.215 26.212-12.16 1.892-2.162 3.783-4.864 4.864-7.566-1.081-21.348-10.269-42.697-29.725-48.912-3.242 3.243-9.187 4.864-14.051 5.675zm-21.889.811c7.567 20.537 12.431 42.696 14.322 64.585 3.513 0 7.567-.27 11.62-.811 5.945-24.321-.27-51.614-14.052-63.504-3.783 0-8.107 0-11.89-.27zM77.768 167.372c-1.081-2.973-2.432-8.377-2.432-14.593 0-5.945-7.026-8.107-14.052-.81-11.35 11.62-14.863 40.534-13.782 51.073 4.053-13.512 12.971-28.915 30.266-35.67zm5.675 75.394c-4.324-21.348-.27-47.291 12.701-62.963-4.865-.811-10.809-2.432-14.052-5.675-19.457 6.215-28.375 27.563-29.726 48.912 1.351 2.702 2.972 5.404 4.864 7.566 5.675 6.215 15.403 9.998 26.213 12.16zm41.345-61.073c-5.134 1.081-9.998 2.973-14.862 4.865l-12.16 5.134v-.27c-7.296 14.052-9.999 34.319-5.405 52.965 4.594.541 8.647.811 12.7.811 2.432-22.159 9.188-43.778 19.727-63.505zm88.095-23.239c0 42.155 34.319 76.205 76.205 76.205s76.205-34.05 76.205-76.205c0-41.886-34.319-75.935-76.205-75.935s-76.205 34.049-76.205 75.935zm152.41 97.283c9.969 50.608 3.299 64.692 16.484 58.099 15.944-8.107 22.699-39.183 22.97-57.019-12.971-.81-26.213-.81-39.454-1.08zm-71.611-.541v-.27c-.27 5.134.27 38.103 4.324 41.075 11.079 5.405 39.453 4.594 51.073 1.081 5.405-1.621 2.432-37.022 1.621-41.886-18.916-.27-38.102-.27-57.018 0zm-14.053 0v-.27c-19.456.27-38.642.27-57.829.811-1.892 9.187-4.594 48.911 1.892 51.614 12.971 5.675 41.616 5.134 54.586 1.621 4.595-2.432 2.433-45.399 1.351-53.776zm-85.662 57.56c5.405 2.432 8.647 2.432 9.728-4.324 1.892-8.647 2.432-36.752 4.865-52.155-12.16.27-24.591.811-36.752 1.621-5.405 19.727.27 45.129 22.159 54.858zm-65.666-11.08c43.778 47.02 92.689 85.663 155.923 106.47 67.558-19.186 115.659-59.991 163.219-107.011-11.095-4.315-7.715-10.363-7.296-11.62-8.918-.81-17.835-1.892-26.483-2.702-9.458 32.968-35.94 52.965-46.75 31.616-2.702-5.134-3.513-11.62-4.594-16.754-3.783 8.377-13.242 8.107-24.591 8.918-13.241 1.081-31.617 1.351-44.048-2.972-2.972 12.971-11.079 12.971-26.752 14.322-14.052 1.352-48.642 4.054-54.857-10.809-1.081 28.644-35.13 9.998-45.129-7.026-3.243-5.675-5.405-11.35-7.026-17.565-7.837.81-15.673 1.621-23.511 2.702 2.443 3.663 1.549 9.052-8.105 12.431zM115.6 453.545c-5.674-23.239-18.646-49.722-33.508-54.046-22.429-6.756-68.909 23.51-66.207 54.586 12.701 19.457 39.994 35.67 59.181 36.481 17.835.81 35.94-11.08 39.724-28.914.539-2.432.81-5.134.81-8.107zm7.296-5.944c33.509-19.457 69.179-35.671 105.931-47.02-38.643-20.537-68.098-47.831-97.283-77.016-2.162 1.352-5.134 2.432-7.836 3.513-1.637 4.91 8.718 5.33 5.405 12.431-2.162 4.054-8.648 7.567-15.133 9.188-2.161 2.702-5.134 4.864-7.836 6.485h-.27c-.27 13.511-.27 27.024.27 40.535 8.939 15.964 15.426 33.314 16.752 51.884zm320.764 12.7c-36.752-21.348-74.044-41.345-115.659-52.965-13.782 6.215-27.833 11.349-42.155 15.403-2.162.811-2.162.811-4.324 0-11.89-3.783-23.239-8.107-34.859-13.241-40.265 11.62-77.286 29.185-112.416 50.803h-.27v.27c.27 0 .27 0 .27-.27 103.227 4.054 206.455 3.513 309.413 0zm27.023-64.045l-.27.27c.541-13.782.811-27.563.811-41.345-2.973-1.621-5.675-4.054-8.107-6.756-6.485-1.351-12.971-5.134-15.133-8.918-1.892-4.053 1.351-7.566 5.945-10.269-.27-.541-.541-1.621-.541-2.432-2.972-.811-5.405-1.892-7.567-3.243-31.616 29.455-65.396 56.749-103.498 76.746 38.914 11.62 75.935 28.104 111.875 47.561 1.05-14.692 7.231-35.749 16.485-51.614zm23.24 3.244c-14.593 4.323-27.834 30.806-33.509 54.046 0 23.826 21.278 37.897 40.534 37.022 19.186-.811 46.48-17.024 59.181-36.481 2.973-31.077-43.507-61.344-66.206-54.587zM290.709 134.133c.045 0 .089.003.134.003.046 0 .09-.003.136-.003h-.27zm0 96.743c28.645 0 51.884-21.618 51.884-48.371 0-36.092-40.507-58.079-72.151-44.318 9.458 2.972 16.484 11.62 16.484 21.618 0 23.257-33.291 31.955-46.48 11.35-7.297 34.067 19.368 59.721 50.263 59.721zM68.039 474.083c.54 6.486 12.16 12.701 21.618 9.458 6.756-2.703 14.593-10.539 17.295-16.214 2.973-7.026-1.081-19.997-9.728-18.375-8.917 1.621-29.725 16.754-29.185 25.131zm410.75-25.131c-8.377-1.621-12.431 11.349-9.458 18.375 2.432 5.675 10.269 13.511 17.295 16.214 9.187 3.243 21.078-2.972 21.348-9.458.811-8.377-20.267-23.51-29.185-25.131z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M550.671 450.303c0 11.62-15.673 19.457-32.158 14.863-12.16-3.243-31.346-17.565-36.211-27.294-5.674-11.62 4.054-32.698 18.916-30.806 15.674 1.621 49.453 25.401 49.453 43.237zM372.86 75.223c-3.783-72.151-100.796-79.718-125.928-23.51 44.588-24.321 90.257-15.673 125.928 23.51zM74.795 407.066c-15.673 1.621-49.452 25.401-49.452 43.237 0 11.62 15.673 19.457 32.157 14.863 12.16-3.243 31.076-17.565 35.94-27.294 5.946-11.62-3.782-32.698-18.645-30.806zm497.765 14.322c1.081 3.513 1.892 7.026 1.892 10.809.81 31.616-44.317 64.045-73.503 65.125-17.295.81-34.59-8.377-42.696-23.51-113.497 4.053-226.994 4.864-340.22 0-8.377 15.133-25.672 24.05-42.967 23.51-28.915-1.081-74.043-33.509-73.503-65.125.27-3.783.811-7.296 1.892-10.809-5.566-9.463-4.845-15.282 5.405-11.62 3.243-5.134 7.026-9.458 11.08-13.782-2.57-10.917 1.27-14.094 11.079-9.188 4.594-3.243 9.998-6.485 15.944-9.188 0-15.757 11.839-11.131 17.295-5.675 12.467-1.78 20.129.709 26.753 5.675v-19.726c-12.987 0-40.641-11.375-45.94-36.212-4.974-20.725 2.607-38.075 25.132-47.56.81-5.945 8.107-14.052 14.862-15.944 7.567-1.892 12.431 4.594 14.052 10.269 7.425 0 17.757 1.465 21.078 8.107 5.405-.541 11.079-1.352 16.484-1.892-2.432-1.892-5.134-3.513-8.107-4.594-5.134-8.917-13.782-11.079-24.591-11.62 0-.81 0-1.621.27-2.702-19.727-.541-44.048-5.675-54.857-17.835-21.321-23.638-15.935-83.577 12.16-103.498 8.377-5.675 21.618-.811 22.699 9.728 2.425 20.598.399 26.833 26.212 25.942 8.107-7.836 16.755-14.592 26.483-19.997-14.862-1.352-28.914 1.621-43.778 3.783 12.752-12.48 23.953-25.442 56.748-42.427 23.511-11.89 49.993-20.808 76.205-23.239-18.646-7.837-39.993-11.891-59.721-16.484 76.475-16.214 174.569-22.159 244.289 37.562 18.105 15.403 32.427 36.211 42.696 59.992 39.799 4.853 36.47-5.581 38.643-25.132 1.081-10.269 14.322-15.403 22.699-9.458 14.862 10.539 22.159 30.806 24.59 48.101 2.162 17.835.27 41.345-12.43 55.127-10.809 12.16-34.32 17.565-53.776 18.105v2.703c-11.08.27-20.268 2.432-25.673 11.62-2.972 1.081-5.674 2.703-8.377 4.594 5.675.54 11.35 1.351 16.755 1.891 1.869-5.619 12.535-8.377 21.077-8.377 1.621-5.405 6.756-11.89 14.052-10.269s14.052 9.998 14.863 15.944c10.809 4.324 22.159 12.16 25.131 25.672 1.892 8.107 1.621 15.133.27 21.888-5.726 25.262-33.361 36.212-45.939 36.212 0 6.756 0 13.241-.27 19.726 8.01-6.006 16.367-7.158 26.752-5.675 5.919-5.919 17.565-9.41 17.565 5.675 5.675 2.703 11.349 5.945 15.944 9.188 10.1-5.051 13.669-.539 10.809 9.188 4.053 4.323 8.107 8.917 11.079 13.782 10.136-3.62 11.021 2.078 5.409 11.62zm-73.773-254.016c17.295 6.756 26.212 22.159 30.265 35.67 1.081-10.539-2.702-39.453-13.782-51.073-7.296-7.296-14.052-5.134-14.052.81.001 6.216-1.35 11.62-2.431 14.593zm-18.646 12.43c12.971 15.673 17.024 41.615 12.7 62.963 10.809-2.162 20.537-6.215 26.212-12.16 1.892-2.162 3.783-4.864 4.864-7.566-1.081-21.348-10.269-42.697-29.725-48.912-3.242 3.243-9.187 4.864-14.051 5.675zm-21.889.811c7.567 20.537 12.431 42.696 14.322 64.585 3.513 0 7.567-.27 11.62-.811 5.945-24.321-.27-51.614-14.052-63.504-3.783 0-8.107 0-11.89-.27zM77.768 167.372c-1.081-2.973-2.432-8.377-2.432-14.593 0-5.945-7.026-8.107-14.052-.81-11.35 11.62-14.863 40.534-13.782 51.073 4.053-13.512 12.971-28.915 30.266-35.67zm5.675 75.394c-4.324-21.348-.27-47.291 12.701-62.963-4.865-.811-10.809-2.432-14.052-5.675-19.457 6.215-28.375 27.563-29.726 48.912 1.351 2.702 2.972 5.404 4.864 7.566 5.675 6.215 15.403 9.998 26.213 12.16zm41.345-61.073c-5.134 1.081-9.998 2.973-14.862 4.865l-12.16 5.134v-.27c-7.296 14.052-9.999 34.319-5.405 52.965 4.594.541 8.647.811 12.7.811 2.432-22.159 9.188-43.778 19.727-63.505zm88.095-23.239c0 42.155 34.319 76.205 76.205 76.205s76.205-34.05 76.205-76.205c0-41.886-34.319-75.935-76.205-75.935s-76.205 34.049-76.205 75.935zm152.41 97.283c9.969 50.608 3.299 64.692 16.484 58.099 15.944-8.107 22.699-39.183 22.97-57.019-12.971-.81-26.213-.81-39.454-1.08zm-71.611-.541v-.27c-.27 5.134.27 38.103 4.324 41.075 11.079 5.405 39.453 4.594 51.073 1.081 5.405-1.621 2.432-37.022 1.621-41.886-18.916-.27-38.102-.27-57.018 0zm-14.053 0v-.27c-19.456.27-38.642.27-57.829.811-1.892 9.187-4.594 48.911 1.892 51.614 12.971 5.675 41.616 5.134 54.586 1.621 4.595-2.432 2.433-45.399 1.351-53.776zm-85.662 57.56c5.405 2.432 8.647 2.432 9.728-4.324 1.892-8.647 2.432-36.752 4.865-52.155-12.16.27-24.591.811-36.752 1.621-5.405 19.727.27 45.129 22.159 54.858zm-65.666-11.08c43.778 47.02 92.689 85.663 155.923 106.47 67.558-19.186 115.659-59.991 163.219-107.011-11.095-4.315-7.715-10.363-7.296-11.62-8.918-.81-17.835-1.892-26.483-2.702-9.458 32.968-35.94 52.965-46.75 31.616-2.702-5.134-3.513-11.62-4.594-16.754-3.783 8.377-13.242 8.107-24.591 8.918-13.241 1.081-31.617 1.351-44.048-2.972-2.972 12.971-11.079 12.971-26.752 14.322-14.052 1.352-48.642 4.054-54.857-10.809-1.081 28.644-35.13 9.998-45.129-7.026-3.243-5.675-5.405-11.35-7.026-17.565-7.837.81-15.673 1.621-23.511 2.702 2.443 3.663 1.549 9.052-8.105 12.431zM115.6 453.545c-5.674-23.239-18.646-49.722-33.508-54.046-22.429-6.756-68.909 23.51-66.207 54.586 12.701 19.457 39.994 35.67 59.181 36.481 17.835.81 35.94-11.08 39.724-28.914.539-2.432.81-5.134.81-8.107zm7.296-5.944c33.509-19.457 69.179-35.671 105.931-47.02-38.643-20.537-68.098-47.831-97.283-77.016-2.162 1.352-5.134 2.432-7.836 3.513-1.637 4.91 8.718 5.33 5.405 12.431-2.162 4.054-8.648 7.567-15.133 9.188-2.161 2.702-5.134 4.864-7.836 6.485h-.27c-.27 13.511-.27 27.024.27 40.535 8.939 15.964 15.426 33.314 16.752 51.884zm320.764 12.7c-36.752-21.348-74.044-41.345-115.659-52.965-13.782 6.215-27.833 11.349-42.155 15.403-2.162.811-2.162.811-4.324 0-11.89-3.783-23.239-8.107-34.859-13.241-40.265 11.62-77.286 29.185-112.416 50.803h-.27v.27c.27 0 .27 0 .27-.27 103.227 4.054 206.455 3.513 309.413 0zm27.023-64.045l-.27.27c.541-13.782.811-27.563.811-41.345-2.973-1.621-5.675-4.054-8.107-6.756-6.485-1.351-12.971-5.134-15.133-8.918-1.892-4.053 1.351-7.566 5.945-10.269-.27-.541-.541-1.621-.541-2.432-2.972-.811-5.405-1.892-7.567-3.243-31.616 29.455-65.396 56.749-103.498 76.746 38.914 11.62 75.935 28.104 111.875 47.561 1.05-14.692 7.231-35.749 16.485-51.614zm23.24 3.244c-14.593 4.323-27.834 30.806-33.509 54.046 0 23.826 21.278 37.897 40.534 37.022 19.186-.811 46.48-17.024 59.181-36.481 2.973-31.077-43.507-61.344-66.206-54.587zM290.709 134.133c.045 0 .089.003.134.003.046 0 .09-.003.136-.003h-.27zm0 96.743c28.645 0 51.884-21.618 51.884-48.371 0-36.092-40.507-58.079-72.151-44.318 9.458 2.972 16.484 11.62 16.484 21.618 0 23.257-33.291 31.955-46.48 11.35-7.297 34.067 19.368 59.721 50.263 59.721zM68.039 474.083c.54 6.486 12.16 12.701 21.618 9.458 6.756-2.703 14.593-10.539 17.295-16.214 2.973-7.026-1.081-19.997-9.728-18.375-8.917 1.621-29.725 16.754-29.185 25.131zm410.75-25.131c-8.377-1.621-12.431 11.349-9.458 18.375 2.432 5.675 10.269 13.511 17.295 16.214 9.187 3.243 21.078-2.972 21.348-9.458.811-8.377-20.267-23.51-29.185-25.131z"
    +      }
    +    }
    +  },
    +  "osi": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f41a",
    +    "label": "Open Source Initiative",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1507669930674,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 495.8 512\"><path d=\"M0 259.2C2.3 123.4 97.4 26.8 213.8 11.1c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.7-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 6.4-42.4-24.5-78.7-64.5-82.2-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119C1.9 318.7 1.6 280.2 0 259.2zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 31.9 18.4 49.5 53.8 45.2 90.4-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.2 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161C459.8 112 354.1 14.7 218 31.5 111.9 44.5 22.7 134 20.9 257.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "495.8",
    +          "512"
    +        ],
    +        "width": 495,
    +        "height": 512,
    +        "path": "M0 259.2C2.3 123.4 97.4 26.8 213.8 11.1c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.7-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 6.4-42.4-24.5-78.7-64.5-82.2-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119C1.9 318.7 1.6 280.2 0 259.2zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 31.9 18.4 49.5 53.8 45.2 90.4-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.2 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161C459.8 112 354.1 14.7 218 31.5 111.9 44.5 22.7 134 20.9 257.3z"
    +      }
    +    }
    +  },
    +  "otter": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "fauna",
    +        "mammmal"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f700",
    +    "label": "Otter",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290238,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"
    +      }
    +    }
    +  },
    +  "outdent": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f03b",
    +    "label": "Outdent",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm208 144h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm192-128h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM4.687 267.313l96 95.984C110.734 373.348 128 366.224 128 351.984V160.008c0-14.329-17.325-21.304-27.313-11.313l-96 95.992c-6.249 6.248-6.249 16.378 0 22.626z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm208 144h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm192-128h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM4.687 267.313l96 95.984C110.734 373.348 128 366.224 128 351.984V160.008c0-14.329-17.325-21.304-27.313-11.313l-96 95.992c-6.249 6.248-6.249 16.378 0 22.626z"
    +      }
    +    }
    +  },
    +  "page4": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3d7",
    +    "label": "page4 Corporation",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"
    +      }
    +    }
    +  },
    +  "pagelines": {
    +    "changes": [
    +      "4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "eco",
    +        "flora",
    +        "leaf",
    +        "leaves",
    +        "nature",
    +        "plant",
    +        "tree"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f18c",
    +    "label": "Pagelines",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"
    +      }
    +    }
    +  },
    +  "paint-brush": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1fc",
    +    "label": "Paint Brush",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111690,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"
    +      }
    +    }
    +  },
    +  "paint-roller": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "brush",
    +        "painting",
    +        "tool"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5aa",
    +    "label": "Paint Roller",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111691,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"
    +      }
    +    }
    +  },
    +  "palette": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "colors",
    +        "painting"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f53f",
    +    "label": "Palette",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154575,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      }
    +    }
    +  },
    +  "palfed": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3d8",
    +    "label": "Palfed",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426582000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z"
    +      }
    +    }
    +  },
    +  "pallet": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f482",
    +    "label": "Pallet",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821454,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"
    +      }
    +    }
    +  },
    +  "paper-plane": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f1d8",
    +    "label": "Paper Plane",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"
    +      }
    +    }
    +  },
    +  "paperclip": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "attachment"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0c6",
    +    "label": "Paperclip",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821455,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"
    +      }
    +    }
    +  },
    +  "parachute-box": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "aid",
    +        "assistance",
    +        "rescue",
    +        "supplies"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4cd",
    +    "label": "Parachute Box",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406023,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"
    +      }
    +    }
    +  },
    +  "paragraph": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1dd",
    +    "label": "paragraph",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M408 32H177.531C88.948 32 16.045 103.335 16 191.918 15.956 280.321 87.607 352 176 352v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h32v344c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h40c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M408 32H177.531C88.948 32 16.045 103.335 16 191.918 15.956 280.321 87.607 352 176 352v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h32v344c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h40c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24z"
    +      }
    +    }
    +  },
    +  "parking": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f540",
    +    "label": "Parking",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154575,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"
    +      }
    +    }
    +  },
    +  "passport": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "document",
    +        "identification",
    +        "issued"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5ab",
    +    "label": "Passport",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111691,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"
    +      }
    +    }
    +  },
    +  "pastafarianism": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "agnosticism",
    +        "atheism",
    +        "flying spaghetti monster",
    +        "fsm"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f67b",
    +    "label": "Pastafarianism",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320889,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"
    +      }
    +    }
    +  },
    +  "paste": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "clipboard",
    +        "copy"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0ea",
    +    "label": "Paste",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"
    +      }
    +    }
    +  },
    +  "patreon": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3d9",
    +    "label": "Patreon",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821387,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"
    +      }
    +    }
    +  },
    +  "pause": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "wait"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f04c",
    +    "label": "pause",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"
    +      }
    +    }
    +  },
    +  "pause-circle": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f28b",
    +    "label": "Pause Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z"
    +      }
    +    }
    +  },
    +  "paw": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "animal",
    +        "pet"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1b0",
    +    "label": "Paw",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290238,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"
    +      }
    +    }
    +  },
    +  "paypal": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1ed",
    +    "label": "Paypal",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"
    +      }
    +    }
    +  },
    +  "peace": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f67c",
    +    "label": "Peace",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320889,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"
    +      }
    +    }
    +  },
    +  "pen": {
    +    "changes": [
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "design",
    +        "edit",
    +        "update",
    +        "write"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f304",
    +    "label": "Pen",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111694,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"
    +      }
    +    }
    +  },
    +  "pen-alt": {
    +    "changes": [
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "design",
    +        "edit",
    +        "update",
    +        "write"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f305",
    +    "label": "Alternate Pen",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111692,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"
    +      }
    +    }
    +  },
    +  "pen-fancy": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "design",
    +        "edit",
    +        "fountain pen",
    +        "update",
    +        "write"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5ac",
    +    "label": "Pen Fancy",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111693,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"
    +      }
    +    }
    +  },
    +  "pen-nib": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "design",
    +        "edit",
    +        "fountain pen",
    +        "update",
    +        "write"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5ad",
    +    "label": "Pen Nib",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111693,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"
    +      }
    +    }
    +  },
    +  "pen-square": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "edit",
    +        "pencil-square",
    +        "update",
    +        "write"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f14b",
    +    "label": "Pen Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"
    +      }
    +    }
    +  },
    +  "pencil-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "design",
    +        "edit",
    +        "pencil",
    +        "update",
    +        "write"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f303",
    +    "label": "Alternate Pencil",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"
    +      }
    +    }
    +  },
    +  "pencil-ruler": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5ae",
    +    "label": "Pencil Ruler",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111694,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"
    +      }
    +    }
    +  },
    +  "penny-arcade": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "d&d",
    +        "dnd",
    +        "fantasy",
    +        "game",
    +        "gaming",
    +        "pax",
    +        "tabletop"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f704",
    +    "label": "Penny Arcade",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1539011290176,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z"
    +      }
    +    }
    +  },
    +  "people-carry": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "movers"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4ce",
    +    "label": "People Carry",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821455,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"
    +      }
    +    }
    +  },
    +  "percent": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f295",
    +    "label": "Percent",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"
    +      }
    +    }
    +  },
    +  "percentage": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f541",
    +    "label": "Percentage",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154575,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"
    +      }
    +    }
    +  },
    +  "periscope": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3da",
    +    "label": "Periscope",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"
    +      }
    +    }
    +  },
    +  "phabricator": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3db",
    +    "label": "Phabricator",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z"
    +      }
    +    }
    +  },
    +  "phoenix-framework": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3dc",
    +    "label": "Phoenix Framework",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426582001,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"
    +      }
    +    }
    +  },
    +  "phoenix-squadron": {
    +    "changes": [
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f511",
    +    "label": "Phoenix Squadron",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442522,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 513.52 512\"><path d=\"M96.24 62.81C142.91 26.57 202.15 6.57 261.28 8.08c29.67-.38 59.29 5.38 87.17 15.37-24.2-4.64-49.18-6.35-73.6-2.45-43 5.35-83.26 27.23-112.16 59.35 5.69-.99 10.81-3.68 16.07-5.88 18.19-7.89 37.6-13.29 57.4-14.87 19.8-2.14 39.75-.43 59.45 1.93-14.46 2.79-29.2 4.58-43.11 9.61-34.53 11.11-65.46 33.26-86.55 62.82-13.84 19.77-23.7 42.99-24.74 67.33-.35 16.54 5.23 34.91 19.89 44.17 11.13 6.66 24.85 9.39 37.63 6.76 15.49-2.47 30.16-8.67 43.73-16.38 11.55-6.84 22.73-14.59 32.05-24.32 3.8-3.23 2.54-8.48 2.63-12.83-2.13-.34-4.4-1.11-6.32.3a203.975 203.975 0 0 1-35.93 15.42c-20.07 6.19-42.28 8.48-62.28.78 12.83 1.73 26.14.31 37.85-5.46 20.29-9.75 36.92-25.27 54.6-38.88 27.84-21.29 57.64-40.11 89.17-55.47 25.78-12.01 53.09-22.85 81.81-24.2-15.68 13.76-32.25 26.6-46.92 41.51-14.55 14.04-27.54 29.58-40.23 45.31-3.53 4.61-8.98 6.96-13.62 10.19-22.24 15.03-40.6 35.96-52.04 60.28-9.36 19.74-14.55 41.97-11.81 63.84 1.95 13.73 8.74 27.67 20.96 35.01 12.94 7.99 29.14 8.09 43.61 5.11 32.9-7.47 61.61-28.97 81.28-56 20.5-27.6 30.61-62.38 29.25-96.64-.52-7.52-1.58-15-1.67-22.55 8.02 19.54 14.87 39.83 16.7 61.01 2.01 14.32.75 28.84-1.62 43.02-1.92 11.02-5.69 21.58-7.81 32.53 20.36-22.73 34.17-51.24 39.46-81.31 5.72-35.37.58-72.36-14.25-104.95 20.84 32.12 32.43 69.79 35.81 107.8.5 12.77.5 25.58 0 38.34-2.91 34.26-12.97 67.95-29.76 98-26.2 47.48-68.2 85.89-117.54 108.32-78.52 36.34-175.2 31.41-248.72-14.72-38.84-23.78-71.06-58.32-91.68-98.96C10.72 337.43 2.04 305.5 0 273.13V241.7c3.94-69.97 40.99-136.32 96.24-178.89m222.65 80.57c5.51-.8 10.82-2.57 16.02-4.5 4.99-1.77 9.27-5.95 10.35-11.25-8.91 5-17.95 9.95-26.37 15.75z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "513.52",
    +          "512"
    +        ],
    +        "width": 513,
    +        "height": 512,
    +        "path": "M96.24 62.81C142.91 26.57 202.15 6.57 261.28 8.08c29.67-.38 59.29 5.38 87.17 15.37-24.2-4.64-49.18-6.35-73.6-2.45-43 5.35-83.26 27.23-112.16 59.35 5.69-.99 10.81-3.68 16.07-5.88 18.19-7.89 37.6-13.29 57.4-14.87 19.8-2.14 39.75-.43 59.45 1.93-14.46 2.79-29.2 4.58-43.11 9.61-34.53 11.11-65.46 33.26-86.55 62.82-13.84 19.77-23.7 42.99-24.74 67.33-.35 16.54 5.23 34.91 19.89 44.17 11.13 6.66 24.85 9.39 37.63 6.76 15.49-2.47 30.16-8.67 43.73-16.38 11.55-6.84 22.73-14.59 32.05-24.32 3.8-3.23 2.54-8.48 2.63-12.83-2.13-.34-4.4-1.11-6.32.3a203.975 203.975 0 0 1-35.93 15.42c-20.07 6.19-42.28 8.48-62.28.78 12.83 1.73 26.14.31 37.85-5.46 20.29-9.75 36.92-25.27 54.6-38.88 27.84-21.29 57.64-40.11 89.17-55.47 25.78-12.01 53.09-22.85 81.81-24.2-15.68 13.76-32.25 26.6-46.92 41.51-14.55 14.04-27.54 29.58-40.23 45.31-3.53 4.61-8.98 6.96-13.62 10.19-22.24 15.03-40.6 35.96-52.04 60.28-9.36 19.74-14.55 41.97-11.81 63.84 1.95 13.73 8.74 27.67 20.96 35.01 12.94 7.99 29.14 8.09 43.61 5.11 32.9-7.47 61.61-28.97 81.28-56 20.5-27.6 30.61-62.38 29.25-96.64-.52-7.52-1.58-15-1.67-22.55 8.02 19.54 14.87 39.83 16.7 61.01 2.01 14.32.75 28.84-1.62 43.02-1.92 11.02-5.69 21.58-7.81 32.53 20.36-22.73 34.17-51.24 39.46-81.31 5.72-35.37.58-72.36-14.25-104.95 20.84 32.12 32.43 69.79 35.81 107.8.5 12.77.5 25.58 0 38.34-2.91 34.26-12.97 67.95-29.76 98-26.2 47.48-68.2 85.89-117.54 108.32-78.52 36.34-175.2 31.41-248.72-14.72-38.84-23.78-71.06-58.32-91.68-98.96C10.72 337.43 2.04 305.5 0 273.13V241.7c3.94-69.97 40.99-136.32 96.24-178.89m222.65 80.57c5.51-.8 10.82-2.57 16.02-4.5 4.99-1.77 9.27-5.95 10.35-11.25-8.91 5-17.95 9.95-26.37 15.75z"
    +      }
    +    }
    +  },
    +  "phone": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "call",
    +        "earphone",
    +        "number",
    +        "support",
    +        "telephone",
    +        "voice"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f095",
    +    "label": "Phone",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406025,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"
    +      }
    +    }
    +  },
    +  "phone-slash": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3dd",
    +    "label": "Phone Slash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406024,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"
    +      }
    +    }
    +  },
    +  "phone-square": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "call",
    +        "number",
    +        "support",
    +        "telephone",
    +        "voice"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f098",
    +    "label": "Phone Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"
    +      }
    +    }
    +  },
    +  "phone-volume": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "telephone",
    +        "volume-control-phone"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2a0",
    +    "label": "Phone Volume",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"
    +      }
    +    }
    +  },
    +  "php": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f457",
    +    "label": "PHP",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1518899527949,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"
    +      }
    +    }
    +  },
    +  "pied-piper": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0",
    +      "5.0.10"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2ae",
    +    "label": "Pied Piper Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1523653480522,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"
    +      }
    +    }
    +  },
    +  "pied-piper-alt": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1a8",
    +    "label": "Alternate Pied Piper Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M242 187c6.3-11.8 13.2-17 25.9-21.8 27.3-10.3 40.2-30.5 58.9-51.1 11.9 8.4 12 24.6 31.6 23v21.8l6.3.3c37.4-14.4 74.7-30.2 106.6-54.6 48.3-36.8 52.9-50 81.3-100l2-2.6c-.6 14.1-6.3 27.3-12.4 39.9-30.5 63.8-78.7 100.3-146.8 116.7-12.4 2.9-26.4 3.2-37.6 8.9 1.4 9.8 13.2 18.1 13.2 23 0 3.4-5.5 7.2-7.5 8.6-11.2-12.9-16.1-19.3-22.7-22.1-7.6-3.5-63.9-6.4-98.8 10zm137.9 256.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9L244 246zm-12.6 31.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zM555.5 0l-.6 1.1-.3.9.6-.6.3-1.4zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46v27.3l11.8-3.4-2.9-23.8h-8.9zm76.1 2.9c0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3l2 12.4c9-1.5 58.4-6.6 58.4-14.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M242 187c6.3-11.8 13.2-17 25.9-21.8 27.3-10.3 40.2-30.5 58.9-51.1 11.9 8.4 12 24.6 31.6 23v21.8l6.3.3c37.4-14.4 74.7-30.2 106.6-54.6 48.3-36.8 52.9-50 81.3-100l2-2.6c-.6 14.1-6.3 27.3-12.4 39.9-30.5 63.8-78.7 100.3-146.8 116.7-12.4 2.9-26.4 3.2-37.6 8.9 1.4 9.8 13.2 18.1 13.2 23 0 3.4-5.5 7.2-7.5 8.6-11.2-12.9-16.1-19.3-22.7-22.1-7.6-3.5-63.9-6.4-98.8 10zm137.9 256.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9L244 246zm-12.6 31.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zM555.5 0l-.6 1.1-.3.9.6-.6.3-1.4zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46v27.3l11.8-3.4-2.9-23.8h-8.9zm76.1 2.9c0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3l2 12.4c9-1.5 58.4-6.6 58.4-14.1z"
    +      }
    +    }
    +  },
    +  "pied-piper-hat": {
    +    "changes": [
    +      "5.0.10"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "clothing"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4e5",
    +    "label": "Pied Piper-hat",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1523653480521,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"
    +      }
    +    }
    +  },
    +  "pied-piper-pp": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1a7",
    +    "label": "Pied Piper PP Logo (Old)",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"
    +      }
    +    }
    +  },
    +  "piggy-bank": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "save",
    +        "savings"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4d3",
    +    "label": "Piggy Bank",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406025,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"
    +      }
    +    }
    +  },
    +  "pills": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "drugs",
    +        "medicine"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f484",
    +    "label": "Pills",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821456,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"
    +      }
    +    }
    +  },
    +  "pinterest": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f0d2",
    +    "label": "Pinterest",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"
    +      }
    +    }
    +  },
    +  "pinterest-p": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f231",
    +    "label": "Pinterest P",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"
    +      }
    +    }
    +  },
    +  "pinterest-square": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f0d3",
    +    "label": "Pinterest Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"
    +      }
    +    }
    +  },
    +  "place-of-worship": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f67f",
    +    "label": "Place Of Worship",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320890,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"
    +      }
    +    }
    +  },
    +  "plane": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "airplane",
    +        "destination",
    +        "fly",
    +        "location",
    +        "mode",
    +        "travel",
    +        "trip"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f072",
    +    "label": "plane",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154575,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"
    +      }
    +    }
    +  },
    +  "plane-arrival": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "airplane",
    +        "arriving",
    +        "destination",
    +        "fly",
    +        "land",
    +        "landing",
    +        "location",
    +        "mode",
    +        "travel",
    +        "trip"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5af",
    +    "label": "Plane Arrival",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111695,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"
    +      }
    +    }
    +  },
    +  "plane-departure": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "airplane",
    +        "departing",
    +        "destination",
    +        "fly",
    +        "location",
    +        "mode",
    +        "take off",
    +        "taking off",
    +        "travel",
    +        "trip"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5b0",
    +    "label": "Plane Departure",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111695,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"
    +      }
    +    }
    +  },
    +  "play": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "music",
    +        "playing",
    +        "sound",
    +        "start"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f04b",
    +    "label": "play",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"
    +      }
    +    }
    +  },
    +  "play-circle": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "playing",
    +        "start"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f144",
    +    "label": "Play Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z"
    +      }
    +    }
    +  },
    +  "playstation": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3df",
    +    "label": "PlayStation",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821388,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z"
    +      }
    +    }
    +  },
    +  "plug": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "connect",
    +        "online",
    +        "power"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1e6",
    +    "label": "Plug",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502810244000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z"
    +      }
    +    }
    +  },
    +  "plus": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "add",
    +        "create",
    +        "expand",
    +        "new",
    +        "positive"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f067",
    +    "label": "plus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154576,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "plus-circle": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "add",
    +        "create",
    +        "expand",
    +        "new",
    +        "positive"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f055",
    +    "label": "Plus Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"
    +      }
    +    }
    +  },
    +  "plus-square": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "add",
    +        "create",
    +        "expand",
    +        "new",
    +        "positive"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0fe",
    +    "label": "Plus Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"
    +      }
    +    }
    +  },
    +  "podcast": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2ce",
    +    "label": "Podcast",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"
    +      }
    +    }
    +  },
    +  "poll": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f681",
    +    "label": "Poll",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320891,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"
    +      }
    +    }
    +  },
    +  "poll-h": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f682",
    +    "label": "Poll H",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320891,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"
    +      }
    +    }
    +  },
    +  "poo": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2fe",
    +    "label": "Poo",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406025,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      }
    +    }
    +  },
    +  "poop": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f619",
    +    "label": "Poop",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831540,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"
    +      }
    +    }
    +  },
    +  "portrait": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3e0",
    +    "label": "Portrait",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365069,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"
    +      }
    +    }
    +  },
    +  "pound-sign": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "gbp"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f154",
    +    "label": "Pound Sign",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"
    +      }
    +    }
    +  },
    +  "power-off": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "on",
    +        "reboot",
    +        "restart"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f011",
    +    "label": "Power Off",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"
    +      }
    +    }
    +  },
    +  "pray": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f683",
    +    "label": "Pray",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320891,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"
    +      }
    +    }
    +  },
    +  "praying-hands": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f684",
    +    "label": "Praying Hands",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320892,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"
    +      }
    +    }
    +  },
    +  "prescription": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "drugs",
    +        "medical",
    +        "medicine",
    +        "rx"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5b1",
    +    "label": "Prescription",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111696,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"
    +      }
    +    }
    +  },
    +  "prescription-bottle": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "drugs",
    +        "medical",
    +        "medicine",
    +        "rx"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f485",
    +    "label": "Prescription Bottle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821456,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"
    +      }
    +    }
    +  },
    +  "prescription-bottle-alt": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "drugs",
    +        "medical",
    +        "medicine",
    +        "rx"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f486",
    +    "label": "Alternate Prescription Bottle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821456,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"
    +      }
    +    }
    +  },
    +  "print": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f02f",
    +    "label": "print",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320893,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"
    +      }
    +    }
    +  },
    +  "procedures": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f487",
    +    "label": "Procedures",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821456,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"
    +      }
    +    }
    +  },
    +  "product-hunt": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f288",
    +    "label": "Product Hunt",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z"
    +      }
    +    }
    +  },
    +  "project-diagram": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f542",
    +    "label": "Project Diagram",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154576,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "pushed": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3e1",
    +    "label": "Pushed",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 432 512\"><path d=\"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "432",
    +          "512"
    +        ],
    +        "width": 432,
    +        "height": 512,
    +        "path": "M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"
    +      }
    +    }
    +  },
    +  "puzzle-piece": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "add-on",
    +        "addon",
    +        "section"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f12e",
    +    "label": "Puzzle Piece",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"
    +      }
    +    }
    +  },
    +  "python": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3e2",
    +    "label": "Python",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M167.8 36.4c-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1zm-6.7 28.4c11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4zm185.2 81.4v47.5c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6-7.7-30.9-22.3-54.2-53.4-54.2h-40.1zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M167.8 36.4c-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1zm-6.7 28.4c11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4zm185.2 81.4v47.5c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6-7.7-30.9-22.3-54.2-53.4-54.2h-40.1zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3z"
    +      }
    +    }
    +  },
    +  "qq": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1d6",
    +    "label": "QQ",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z"
    +      }
    +    }
    +  },
    +  "qrcode": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "scan"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f029",
    +    "label": "qrcode",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"
    +      }
    +    }
    +  },
    +  "question": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "help",
    +        "information",
    +        "support",
    +        "unknown"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f128",
    +    "label": "Question",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"
    +      }
    +    }
    +  },
    +  "question-circle": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "help",
    +        "information",
    +        "support",
    +        "unknown"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f059",
    +    "label": "Question Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"
    +      }
    +    }
    +  },
    +  "quidditch": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f458",
    +    "label": "Quidditch",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821457,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"
    +      }
    +    }
    +  },
    +  "quinscape": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f459",
    +    "label": "QuinScape",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1518899527949,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 489.1 512\"><path d=\"M301.9 474.6h-1.3c-87.3 0-158.1-70.8-158.1-158.1s70.8-158.1 158.1-158.1c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C489.1 117.5 379.6 8 244.5 8 109.5 8 0 117.5 0 252.6s109.5 244.6 244.5 244.6c24.8 0 47.8-3.2 70.4-10.1-5.2-3.5-9-8.2-13.4-12.6l.4.1zm-21.2-69.8c0-54.8 44.4-99.2 99.2-99.2 54.8 0 99.2 44.4 99.2 99.2 0 54.8-44.4 99.2-99.2 99.2-54.8 0-99.2-44.4-99.2-99.2\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "489.1",
    +          "512"
    +        ],
    +        "width": 489,
    +        "height": 512,
    +        "path": "M301.9 474.6h-1.3c-87.3 0-158.1-70.8-158.1-158.1s70.8-158.1 158.1-158.1c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C489.1 117.5 379.6 8 244.5 8 109.5 8 0 117.5 0 252.6s109.5 244.6 244.5 244.6c24.8 0 47.8-3.2 70.4-10.1-5.2-3.5-9-8.2-13.4-12.6l.4.1zm-21.2-69.8c0-54.8 44.4-99.2 99.2-99.2 54.8 0 99.2 44.4 99.2 99.2 0 54.8-44.4 99.2-99.2 99.2-54.8 0-99.2-44.4-99.2-99.2"
    +      }
    +    }
    +  },
    +  "quora": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2c4",
    +    "label": "Quora",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z"
    +      }
    +    }
    +  },
    +  "quote-left": {
    +    "changes": [
    +      "3",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f10d",
    +    "label": "quote-left",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406025,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"
    +      }
    +    }
    +  },
    +  "quote-right": {
    +    "changes": [
    +      "3",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f10e",
    +    "label": "quote-right",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406026,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"
    +      }
    +    }
    +  },
    +  "quran": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "book",
    +        "islam",
    +        "muslim"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f687",
    +    "label": "Quran",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320893,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"
    +      }
    +    }
    +  },
    +  "r-project": {
    +    "changes": [
    +      "5.0.11",
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4f7",
    +    "label": "R Project",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442522,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 581 512\"><path d=\"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "581",
    +          "512"
    +        ],
    +        "width": 581,
    +        "height": 512,
    +        "path": "M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"
    +      }
    +    }
    +  },
    +  "random": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "shuffle",
    +        "sort"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f074",
    +    "label": "random",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"
    +      }
    +    }
    +  },
    +  "ravelry": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2d9",
    +    "label": "Ravelry",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z"
    +      }
    +    }
    +  },
    +  "react": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f41b",
    +    "label": "React",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1507838931324,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zm-130 189.1c4.6 8.8 9.3 17.5 14.3 26.1 5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5zm0-50.6c-6.3-14.9-11.6-29.5-16-43.6 14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26zm11.4 25.3c6.6-13.8 13.8-27.3 21.4-40.6 7.6-13.3 15.8-26.2 24.4-38.9 15-1.1 30.3-1.7 45.9-1.7 15.6 0 31 .6 45.9 1.7 8.5 12.6 16.6 25.5 24.3 38.7 7.7 13.2 14.9 26.7 21.7 40.4-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6-15.7 0-30.9-.5-45.6-1.4-8.7-12.7-16.9-25.7-24.6-39-7.7-13.3-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 210.2c25.3 0 45.8 20.5 45.8 45.8 0 25.3-20.5 45.8-45.8 45.8-25.3 0-45.8-20.5-45.8-45.8 0-25.3 20.5-45.8 45.8-45.8\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zm-130 189.1c4.6 8.8 9.3 17.5 14.3 26.1 5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5zm0-50.6c-6.3-14.9-11.6-29.5-16-43.6 14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26zm11.4 25.3c6.6-13.8 13.8-27.3 21.4-40.6 7.6-13.3 15.8-26.2 24.4-38.9 15-1.1 30.3-1.7 45.9-1.7 15.6 0 31 .6 45.9 1.7 8.5 12.6 16.6 25.5 24.3 38.7 7.7 13.2 14.9 26.7 21.7 40.4-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6-15.7 0-30.9-.5-45.6-1.4-8.7-12.7-16.9-25.7-24.6-39-7.7-13.3-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 210.2c25.3 0 45.8 20.5 45.8 45.8 0 25.3-20.5 45.8-45.8 45.8-25.3 0-45.8-20.5-45.8-45.8 0-25.3 20.5-45.8 45.8-45.8"
    +      }
    +    }
    +  },
    +  "readme": {
    +    "changes": [
    +      "5.0.9",
    +      "5.0.10"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4d5",
    +    "label": "ReadMe",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1523653480522,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z"
    +      }
    +    }
    +  },
    +  "rebel": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1d0",
    +    "label": "Rebel Alliance",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z"
    +      }
    +    }
    +  },
    +  "receipt": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "check",
    +        "invoice",
    +        "table"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f543",
    +    "label": "Receipt",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154576,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"
    +      }
    +    }
    +  },
    +  "recycle": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1b8",
    +    "label": "Recycle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"
    +      }
    +    }
    +  },
    +  "red-river": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3e3",
    +    "label": "red river",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821388,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z"
    +      }
    +    }
    +  },
    +  "reddit": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1a1",
    +    "label": "reddit Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z"
    +      }
    +    }
    +  },
    +  "reddit-alien": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f281",
    +    "label": "reddit Alien",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"
    +      }
    +    }
    +  },
    +  "reddit-square": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1a2",
    +    "label": "reddit Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z"
    +      }
    +    }
    +  },
    +  "redo": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "forward",
    +        "refresh",
    +        "reload",
    +        "repeat"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f01e",
    +    "label": "Redo",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512.333 512\"><path d=\"M500.333 0h-47.411c-6.853 0-12.314 5.729-11.986 12.574l3.966 82.759C399.416 41.899 331.672 8 256.001 8 119.34 8 7.899 119.526 8 256.187 8.101 393.068 119.096 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-33.971-33.971c-4.466-4.466-11.64-4.717-16.38-.543C341.308 415.448 300.606 432 256 432c-97.267 0-176-78.716-176-176 0-97.267 78.716-176 176-176 60.892 0 114.506 30.858 146.099 77.8l-101.525-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512.333",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M500.333 0h-47.411c-6.853 0-12.314 5.729-11.986 12.574l3.966 82.759C399.416 41.899 331.672 8 256.001 8 119.34 8 7.899 119.526 8 256.187 8.101 393.068 119.096 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-33.971-33.971c-4.466-4.466-11.64-4.717-16.38-.543C341.308 415.448 300.606 432 256 432c-97.267 0-176-78.716-176-176 0-97.267 78.716-176 176-176 60.892 0 114.506 30.858 146.099 77.8l-101.525-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12z"
    +      }
    +    }
    +  },
    +  "redo-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "forward",
    +        "refresh",
    +        "reload",
    +        "repeat"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2f9",
    +    "label": "Alternate Redo",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"
    +      }
    +    }
    +  },
    +  "registered": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f25d",
    +    "label": "Registered Trademark",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"
    +      },
    +      "regular": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z"
    +      }
    +    }
    +  },
    +  "rendact": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3e4",
    +    "label": "Rendact",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248c18.6 0 36.7-2.1 54.1-5.9-5.6-7.4-10.8-14.4-15.9-21.3-12.4 2.1-25.2 3.3-38.3 3.3C124.3 480 24 379.7 24 256S124.3 32 248 32s224 100.3 224 224c0 71-33 134.2-84.5 175.3-25.9 18.8-39.1 21.4-83.5-44.2-78.7-112.9-48-71.1-73.7-108.3 72.8 8.9 228.5-72 168.6-168.6C314-26.8 15 93.8 59.7 226.4c3.2 9.8 14.4 38.6 45.6 38.6 2 0 2.6-.6 2-1.7-4.4-8.7-20.1-9.8-20.1-37.4 0-40.5 40.5-89.6 100.3-120 66.1-32.3 131.9-30.2 158.2 5.4 27.2 38.3-20.9 119.2-120.4 136.9 7.5-9.4 57-75.2 62.8-84 22.7-34.6 23.6-49 14-59.2-15.5-16.9-29.5-10.3-50.7-11.7-10.8-.9-113.7 181.2-136.4 216.9-5.9 9-21.2 34.1-21.2 50.9 0 21.3 2.8 51.4 20.6 51.4 10.6 0 8-18.7 8-26.6 0-12.9 27.4-49.4 74.8-104.6 20.4 36.1 57.7 114.3 130.2 209.7 98-33.1 168.5-125.8 168.5-235C496 119 385 8 248 8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248c18.6 0 36.7-2.1 54.1-5.9-5.6-7.4-10.8-14.4-15.9-21.3-12.4 2.1-25.2 3.3-38.3 3.3C124.3 480 24 379.7 24 256S124.3 32 248 32s224 100.3 224 224c0 71-33 134.2-84.5 175.3-25.9 18.8-39.1 21.4-83.5-44.2-78.7-112.9-48-71.1-73.7-108.3 72.8 8.9 228.5-72 168.6-168.6C314-26.8 15 93.8 59.7 226.4c3.2 9.8 14.4 38.6 45.6 38.6 2 0 2.6-.6 2-1.7-4.4-8.7-20.1-9.8-20.1-37.4 0-40.5 40.5-89.6 100.3-120 66.1-32.3 131.9-30.2 158.2 5.4 27.2 38.3-20.9 119.2-120.4 136.9 7.5-9.4 57-75.2 62.8-84 22.7-34.6 23.6-49 14-59.2-15.5-16.9-29.5-10.3-50.7-11.7-10.8-.9-113.7 181.2-136.4 216.9-5.9 9-21.2 34.1-21.2 50.9 0 21.3 2.8 51.4 20.6 51.4 10.6 0 8-18.7 8-26.6 0-12.9 27.4-49.4 74.8-104.6 20.4 36.1 57.7 114.3 130.2 209.7 98-33.1 168.5-125.8 168.5-235C496 119 385 8 248 8z"
    +      }
    +    }
    +  },
    +  "renren": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f18b",
    +    "label": "Renren",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"
    +      }
    +    }
    +  },
    +  "reply": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3e5",
    +    "label": "Reply",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"
    +      }
    +    }
    +  },
    +  "reply-all": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f122",
    +    "label": "reply-all",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"
    +      }
    +    }
    +  },
    +  "replyd": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3e6",
    +    "label": "replyd",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z"
    +      }
    +    }
    +  },
    +  "researchgate": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4f8",
    +    "label": "Researchgate",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525209365021,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"
    +      }
    +    }
    +  },
    +  "resolving": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3e7",
    +    "label": "Resolving",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z"
    +      }
    +    }
    +  },
    +  "retweet": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "refresh",
    +        "reload",
    +        "share",
    +        "swap"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f079",
    +    "label": "Retweet",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"
    +      }
    +    }
    +  },
    +  "rev": {
    +    "changes": [
    +      "5.1.0",
    +      "5.1.1"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f5b2",
    +    "label": "Rev.io",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529520111565,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 410.22 512\"><path d=\"M270.67 274.89c0 36.16-29.41 65.57-65.56 65.57s-65.57-29.41-65.57-65.57 29.41-65.56 65.57-65.56 65.56 29.4 65.56 65.56zm139.55-5.05h-.13c-1.49-61.55-30.1-116.35-74.32-152.98l-45.38 26.2c43.17 28.03 71.81 76.63 71.81 131.82 0 86.62-70.47 157.09-157.09 157.09S48.02 361.5 48.02 274.88c0-81.86 62.96-149.27 142.99-156.43v39.12l108.76-62.79L191.01 32v38.32C84.31 77.57 0 166.36 0 274.89c0 111.59 89.12 202.29 200.06 204.98v.13h210.16V269.84z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "410.22",
    +          "512"
    +        ],
    +        "width": 410,
    +        "height": 512,
    +        "path": "M270.67 274.89c0 36.16-29.41 65.57-65.56 65.57s-65.57-29.41-65.57-65.57 29.41-65.56 65.57-65.56 65.56 29.4 65.56 65.56zm139.55-5.05h-.13c-1.49-61.55-30.1-116.35-74.32-152.98l-45.38 26.2c43.17 28.03 71.81 76.63 71.81 131.82 0 86.62-70.47 157.09-157.09 157.09S48.02 361.5 48.02 274.88c0-81.86 62.96-149.27 142.99-156.43v39.12l108.76-62.79L191.01 32v38.32C84.31 77.57 0 166.36 0 274.89c0 111.59 89.12 202.29 200.06 204.98v.13h210.16V269.84z"
    +      }
    +    }
    +  },
    +  "ribbon": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "badge",
    +        "cause",
    +        "lapel",
    +        "pin"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4d6",
    +    "label": "Ribbon",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406026,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"
    +      }
    +    }
    +  },
    +  "ring": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "Gollum",
    +        "band",
    +        "binding",
    +        "d&d",
    +        "dnd",
    +        "fantasy",
    +        "jewelry",
    +        "precious"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f70b",
    +    "label": "Ring",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290240,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"
    +      }
    +    }
    +  },
    +  "road": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "street"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f018",
    +    "label": "road",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831540,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"
    +      }
    +    }
    +  },
    +  "robot": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f544",
    +    "label": "Robot",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154576,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z"
    +      }
    +    }
    +  },
    +  "rocket": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "app"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f135",
    +    "label": "rocket",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M505.1 19.1C503.8 13 499 8.2 492.9 6.9 460.7 0 435.5 0 410.4 0 307.2 0 245.3 55.2 199.1 128H94.9c-18.2 0-34.8 10.3-42.9 26.5L2.6 253.3c-8 16 3.6 34.7 21.5 34.7h95.1c-5.9 12.8-11.9 25.5-18 37.7-3.1 6.2-1.9 13.6 3 18.5l63.6 63.6c4.9 4.9 12.3 6.1 18.5 3 12.2-6.1 24.9-12 37.7-17.9V488c0 17.8 18.8 29.4 34.7 21.5l98.7-49.4c16.3-8.1 26.5-24.8 26.5-42.9V312.8c72.6-46.3 128-108.4 128-211.1.1-25.2.1-50.4-6.8-82.6zM400 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M505.1 19.1C503.8 13 499 8.2 492.9 6.9 460.7 0 435.5 0 410.4 0 307.2 0 245.3 55.2 199.1 128H94.9c-18.2 0-34.8 10.3-42.9 26.5L2.6 253.3c-8 16 3.6 34.7 21.5 34.7h95.1c-5.9 12.8-11.9 25.5-18 37.7-3.1 6.2-1.9 13.6 3 18.5l63.6 63.6c4.9 4.9 12.3 6.1 18.5 3 12.2-6.1 24.9-12 37.7-17.9V488c0 17.8 18.8 29.4 34.7 21.5l98.7-49.4c16.3-8.1 26.5-24.8 26.5-42.9V312.8c72.6-46.3 128-108.4 128-211.1.1-25.2.1-50.4-6.8-82.6zM400 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"
    +      }
    +    }
    +  },
    +  "rocketchat": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3e8",
    +    "label": "Rocket.Chat",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 256.2c0-87.2-99.6-153.3-219.8-153.3-18.8 0-37.3 1.6-55.3 4.8-11.1-10.5-24.2-20-38-27.4C61.2 44.2 0 79.4 0 79.4s56.9 47.1 47.6 88.3c-52.3 52.3-52.5 124.1 0 176.6C56.9 385.6 0 432.6 0 432.6s61.2 35.2 134.9-.8c13.8-7.5 26.9-16.9 38-27.4 18 3.2 36.5 4.8 55.3 4.8 120.3-.1 219.8-65.8 219.8-153zm-219.7 124c-23.7 0-46.3-2.8-67.3-7.8-21.3 25.8-68.1 61.7-113.6 50.1 14.8-16 36.7-43.1 32-87.6-27.3-21.4-43.6-48.7-43.6-78.5 0-68.4 86.2-123.9 192.5-123.9S420.8 188 420.8 256.4c0 68.3-86.2 123.8-192.5 123.8zm25.6-123.9c0 14.2-11.5 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.5-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm88.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm-177.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.2 0 25.6 11.6 25.6 25.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 256.2c0-87.2-99.6-153.3-219.8-153.3-18.8 0-37.3 1.6-55.3 4.8-11.1-10.5-24.2-20-38-27.4C61.2 44.2 0 79.4 0 79.4s56.9 47.1 47.6 88.3c-52.3 52.3-52.5 124.1 0 176.6C56.9 385.6 0 432.6 0 432.6s61.2 35.2 134.9-.8c13.8-7.5 26.9-16.9 38-27.4 18 3.2 36.5 4.8 55.3 4.8 120.3-.1 219.8-65.8 219.8-153zm-219.7 124c-23.7 0-46.3-2.8-67.3-7.8-21.3 25.8-68.1 61.7-113.6 50.1 14.8-16 36.7-43.1 32-87.6-27.3-21.4-43.6-48.7-43.6-78.5 0-68.4 86.2-123.9 192.5-123.9S420.8 188 420.8 256.4c0 68.3-86.2 123.8-192.5 123.8zm25.6-123.9c0 14.2-11.5 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.5-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm88.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm-177.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.2 0 25.6 11.6 25.6 25.8z"
    +      }
    +    }
    +  },
    +  "rockrms": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3e9",
    +    "label": "Rockrms",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"
    +      }
    +    }
    +  },
    +  "route": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4d7",
    +    "label": "Route",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821457,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      }
    +    }
    +  },
    +  "rss": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "blog"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f09e",
    +    "label": "rss",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"
    +      }
    +    }
    +  },
    +  "rss-square": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "blog",
    +        "feed"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f143",
    +    "label": "RSS Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"
    +      }
    +    }
    +  },
    +  "ruble-sign": {
    +    "changes": [
    +      "4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "rub"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f158",
    +    "label": "Ruble Sign",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"
    +      }
    +    }
    +  },
    +  "ruler": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f545",
    +    "label": "Ruler",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154577,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"
    +      }
    +    }
    +  },
    +  "ruler-combined": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f546",
    +    "label": "Ruler Combined",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154577,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "ruler-horizontal": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f547",
    +    "label": "Ruler Horizontal",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154577,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "ruler-vertical": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f548",
    +    "label": "Ruler Vertical",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154577,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"
    +      }
    +    }
    +  },
    +  "running": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "jog",
    +        "sprint"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f70c",
    +    "label": "Running",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011827891,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 416 512\"><path d=\"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "416",
    +          "512"
    +        ],
    +        "width": 416,
    +        "height": 512,
    +        "path": "M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"
    +      }
    +    }
    +  },
    +  "rupee-sign": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "indian",
    +        "inr"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f156",
    +    "label": "Indian Rupee Sign",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"
    +      }
    +    }
    +  },
    +  "sad-cry": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "tear",
    +        "tears"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f5b3",
    +    "label": "Crying Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111696,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111633,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z"
    +      }
    +    }
    +  },
    +  "sad-tear": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "tear",
    +        "tears"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f5b4",
    +    "label": "Loudly Crying Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111697,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111634,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z"
    +      }
    +    }
    +  },
    +  "safari": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "browser"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f267",
    +    "label": "Safari",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z"
    +      }
    +    }
    +  },
    +  "sass": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f41e",
    +    "label": "Sass",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1508787003040,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640.4 512\"><path d=\"M551.1 291.9c-22.4.1-41.8 5.5-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-3.8 11.1-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-2.7 11.4-5.3 19.1-2.6 7.7-33.9 77.3-42.1 95.4-4.2 9.2-7.8 16.6-10.4 21.6s-.2.3-.4.9c-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2-.8 0-1.4 2-1.4 2s10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.4-35.4 189.9-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8C367 196.5 415.1 130.2 401 74.7 386.6 18.3 293.1-.2 204.6 31.2 151.9 49.9 94.9 79.3 53.9 117.6 5.2 163.2-2.6 202.9.6 219.5c11.4 58.9 92.6 97.3 125.1 125.7-1.6.9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5s1.4 9.7 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2s0 .1.1.2c-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 6.2-2.2 13.4-5.7 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6s1.4 9.7 6.2 25.8c2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 6.5-2.2 14.3-5.7 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8-2.1 14.6-13.8 22.6-17.7 25-3.9 2.4-5.1 3.3-4.8 5.1.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3C54.6 451 59.3 421.4 82 400c13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.3 30.4.3 57.2-19.1 78.3zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5.1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.8 1.9 7.4 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640.4",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M551.1 291.9c-22.4.1-41.8 5.5-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-3.8 11.1-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-2.7 11.4-5.3 19.1-2.6 7.7-33.9 77.3-42.1 95.4-4.2 9.2-7.8 16.6-10.4 21.6s-.2.3-.4.9c-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2-.8 0-1.4 2-1.4 2s10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.4-35.4 189.9-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8C367 196.5 415.1 130.2 401 74.7 386.6 18.3 293.1-.2 204.6 31.2 151.9 49.9 94.9 79.3 53.9 117.6 5.2 163.2-2.6 202.9.6 219.5c11.4 58.9 92.6 97.3 125.1 125.7-1.6.9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5s1.4 9.7 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2s0 .1.1.2c-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 6.2-2.2 13.4-5.7 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6s1.4 9.7 6.2 25.8c2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 6.5-2.2 14.3-5.7 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8-2.1 14.6-13.8 22.6-17.7 25-3.9 2.4-5.1 3.3-4.8 5.1.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3C54.6 451 59.3 421.4 82 400c13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.3 30.4.3 57.2-19.1 78.3zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5.1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.8 1.9 7.4 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4z"
    +      }
    +    }
    +  },
    +  "save": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "floppy",
    +        "floppy-o"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0c7",
    +    "label": "Save",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"
    +      }
    +    }
    +  },
    +  "schlix": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3ea",
    +    "label": "SCHLIX",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"
    +      }
    +    }
    +  },
    +  "school": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f549",
    +    "label": "School",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154577,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "screwdriver": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "admin",
    +        "fix",
    +        "repair",
    +        "settings",
    +        "tool"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f54a",
    +    "label": "Screwdriver",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154577,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"
    +      }
    +    }
    +  },
    +  "scribd": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f28a",
    +    "label": "Scribd",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"
    +      }
    +    }
    +  },
    +  "scroll": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "announcement",
    +        "d&d",
    +        "dnd",
    +        "fantasy",
    +        "paper"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f70e",
    +    "label": "Scroll",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290240,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"
    +      }
    +    }
    +  },
    +  "search": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bigger",
    +        "enlarge",
    +        "magnify",
    +        "preview",
    +        "zoom"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f002",
    +    "label": "Search",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"
    +      }
    +    }
    +  },
    +  "search-dollar": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f688",
    +    "label": "Search Dollar",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320893,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"
    +      }
    +    }
    +  },
    +  "search-location": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f689",
    +    "label": "Search Location",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320894,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"
    +      }
    +    }
    +  },
    +  "search-minus": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "minify",
    +        "negative",
    +        "smaller",
    +        "zoom",
    +        "zoom out"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f010",
    +    "label": "Search Minus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"
    +      }
    +    }
    +  },
    +  "search-plus": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bigger",
    +        "enlarge",
    +        "magnify",
    +        "positive",
    +        "zoom",
    +        "zoom in"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f00e",
    +    "label": "Search Plus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"
    +      }
    +    }
    +  },
    +  "searchengin": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3eb",
    +    "label": "Searchengin",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 460 512\"><path d=\"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "460",
    +          "512"
    +        ],
    +        "width": 460,
    +        "height": 512,
    +        "path": "M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"
    +      }
    +    }
    +  },
    +  "seedling": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4d8",
    +    "label": "Seedling",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406026,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"
    +      }
    +    }
    +  },
    +  "sellcast": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "eercast"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2da",
    +    "label": "Sellcast",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1502479343000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"
    +      }
    +    }
    +  },
    +  "sellsy": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f213",
    +    "label": "Sellsy",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"
    +      }
    +    }
    +  },
    +  "server": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cpu"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f233",
    +    "label": "Server",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"
    +      }
    +    }
    +  },
    +  "servicestack": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3ec",
    +    "label": "Servicestack",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"
    +      }
    +    }
    +  },
    +  "shapes": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "circle",
    +        "square",
    +        "triangle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f61f",
    +    "label": "Shapes",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831542,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z"
    +      }
    +    }
    +  },
    +  "share": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f064",
    +    "label": "Share",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"
    +      }
    +    }
    +  },
    +  "share-alt": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1e0",
    +    "label": "Alternate Share",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"
    +      }
    +    }
    +  },
    +  "share-alt-square": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1e1",
    +    "label": "Alternate Share Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"
    +      }
    +    }
    +  },
    +  "share-square": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "send",
    +        "social"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f14d",
    +    "label": "Share Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z"
    +      }
    +    }
    +  },
    +  "shekel-sign": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "ils"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f20b",
    +    "label": "Shekel Sign",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154578,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "shield-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "achievement",
    +        "award",
    +        "block",
    +        "defend",
    +        "security",
    +        "winner"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3ed",
    +    "label": "Alternate Shield",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496 128c0 221.282-135.934 344.645-221.539 380.308a48 48 0 0 1-36.923 0C130.495 463.713 16 326.487 16 128a48 48 0 0 1 29.539-44.308l192-80a48 48 0 0 1 36.923 0l192 80A48 48 0 0 1 496 128zM256 446.313l.066.034c93.735-46.689 172.497-156.308 175.817-307.729L256 65.333v380.98z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496 128c0 221.282-135.934 344.645-221.539 380.308a48 48 0 0 1-36.923 0C130.495 463.713 16 326.487 16 128a48 48 0 0 1 29.539-44.308l192-80a48 48 0 0 1 36.923 0l192 80A48 48 0 0 1 496 128zM256 446.313l.066.034c93.735-46.689 172.497-156.308 175.817-307.729L256 65.333v380.98z"
    +      }
    +    }
    +  },
    +  "ship": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "boat",
    +        "sea"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f21a",
    +    "label": "Ship",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"
    +      }
    +    }
    +  },
    +  "shipping-fast": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f48b",
    +    "label": "Shipping Fast",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821458,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"
    +      }
    +    }
    +  },
    +  "shirtsinbulk": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f214",
    +    "label": "Shirts in Bulk",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M395.208 221.583H406v33.542h-10.792v-33.542zm0-9.625H406v-33.542h-10.792v33.542zm0 86.333H406V264.75h-10.792v33.541zM358.75 135.25h-33.542v10.5h33.542v-10.5zm36.458 206.208H406v-33.542h-10.792v33.542zM311.5 135.25h-33.542v10.5H311.5v-10.5zm-47.25 0H231v10.5h33.25v-10.5zm-47.25 0h-33.25v10.5H217v-10.5zm178.208 33.542H406V135.25h-33.542v10.5h22.75v23.042zm-255.792 259l30.625 13.417 4.375-9.917-30.625-13.417-4.375 9.917zM179.083 445l30.334 13.708 4.374-9.916-30.333-13.417-4.375 9.625zm216.125-60.375H406v-33.542h-10.792v33.542zm-334.833 8.167L91 406.208l4.375-9.624-30.625-13.709-4.375 9.917zm39.666 17.499l30.625 13.417 4.375-9.917-30.625-13.416-4.375 9.916zm132.417 38.501l4.375 9.916L267.459 445l-4.375-9.625-30.626 13.417zm118.417-52.208l4.375 9.624 30.624-13.416-4.374-9.917-30.625 13.709zM311.5 413.791l4.375 9.917 30.625-13.417-4.374-9.916-30.626 13.416zm-39.667 17.501l4.375 9.917 30.625-13.417-4.375-9.917-30.625 13.417zM311.5 46.583h-33.542v10.5H311.5v-10.5zm94.209 0h-33.251v10.5h33.251v-10.5zm-188.709 0h-33.25v10.5H217v-10.5zm141.75 0h-33.542v10.5h33.542v-10.5zm-94.5 0H231v10.5h33.25v-10.5zM448 3.708v406l-226.334 98.584L0 409.708v-406h448zm-29.166 116.958H29.166V390.75l192.792 85.75 196.875-85.75V120.666zm0-87.791H29.166V91.5h389.667V32.875zM75.542 46.583H42.291v10.5h33.251v-10.5zm94.5 0H136.5v10.5h33.542v-10.5zm-47.251 0H89.25v10.5h33.542v-10.5zm7.584 236.542c0-50.167 41.125-91.292 91.292-91.292 50.458 0 91.292 41.125 91.292 91.292 0 50.458-40.833 91.292-91.292 91.292-50.167-.001-91.292-40.834-91.292-91.292zm120.75 18.084c0 13.125-23.917 14.291-32.666 14.291-12.25 0-29.75-2.625-35.875-14.875h-.875L172.666 319c14.876 9.333 29.167 12.25 47.25 12.25 19.542 0 51.042-5.833 51.042-31.209 0-48.125-78.458-16.333-78.458-37.916 0-13.125 20.708-14.875 29.75-14.875 10.791 0 29.166 3.208 35.583 13.124h.875l8.751-16.916c-15.167-6.125-27.417-11.959-44.334-11.959-20.125 0-49.583 6.417-49.583 31.792 0 44.334 77.583 11.959 77.583 37.918zM122.791 135.25H89.25v10.5h33.542v-10.5zm-69.999 10.5h22.75v-10.5H42v33.542h10.792V145.75zm0 32.666H42v33.542h10.792v-33.542zm117.25-43.166H136.5v10.5h33.542v-10.5zm-117.25 86.333H42v33.542h10.792v-33.542zm0 86.334H42v33.542h10.792v-33.542zm0-43.167H42v33.542h10.792V264.75zm0 86.333H42v33.542h10.792v-33.542z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M395.208 221.583H406v33.542h-10.792v-33.542zm0-9.625H406v-33.542h-10.792v33.542zm0 86.333H406V264.75h-10.792v33.541zM358.75 135.25h-33.542v10.5h33.542v-10.5zm36.458 206.208H406v-33.542h-10.792v33.542zM311.5 135.25h-33.542v10.5H311.5v-10.5zm-47.25 0H231v10.5h33.25v-10.5zm-47.25 0h-33.25v10.5H217v-10.5zm178.208 33.542H406V135.25h-33.542v10.5h22.75v23.042zm-255.792 259l30.625 13.417 4.375-9.917-30.625-13.417-4.375 9.917zM179.083 445l30.334 13.708 4.374-9.916-30.333-13.417-4.375 9.625zm216.125-60.375H406v-33.542h-10.792v33.542zm-334.833 8.167L91 406.208l4.375-9.624-30.625-13.709-4.375 9.917zm39.666 17.499l30.625 13.417 4.375-9.917-30.625-13.416-4.375 9.916zm132.417 38.501l4.375 9.916L267.459 445l-4.375-9.625-30.626 13.417zm118.417-52.208l4.375 9.624 30.624-13.416-4.374-9.917-30.625 13.709zM311.5 413.791l4.375 9.917 30.625-13.417-4.374-9.916-30.626 13.416zm-39.667 17.501l4.375 9.917 30.625-13.417-4.375-9.917-30.625 13.417zM311.5 46.583h-33.542v10.5H311.5v-10.5zm94.209 0h-33.251v10.5h33.251v-10.5zm-188.709 0h-33.25v10.5H217v-10.5zm141.75 0h-33.542v10.5h33.542v-10.5zm-94.5 0H231v10.5h33.25v-10.5zM448 3.708v406l-226.334 98.584L0 409.708v-406h448zm-29.166 116.958H29.166V390.75l192.792 85.75 196.875-85.75V120.666zm0-87.791H29.166V91.5h389.667V32.875zM75.542 46.583H42.291v10.5h33.251v-10.5zm94.5 0H136.5v10.5h33.542v-10.5zm-47.251 0H89.25v10.5h33.542v-10.5zm7.584 236.542c0-50.167 41.125-91.292 91.292-91.292 50.458 0 91.292 41.125 91.292 91.292 0 50.458-40.833 91.292-91.292 91.292-50.167-.001-91.292-40.834-91.292-91.292zm120.75 18.084c0 13.125-23.917 14.291-32.666 14.291-12.25 0-29.75-2.625-35.875-14.875h-.875L172.666 319c14.876 9.333 29.167 12.25 47.25 12.25 19.542 0 51.042-5.833 51.042-31.209 0-48.125-78.458-16.333-78.458-37.916 0-13.125 20.708-14.875 29.75-14.875 10.791 0 29.166 3.208 35.583 13.124h.875l8.751-16.916c-15.167-6.125-27.417-11.959-44.334-11.959-20.125 0-49.583 6.417-49.583 31.792 0 44.334 77.583 11.959 77.583 37.918zM122.791 135.25H89.25v10.5h33.542v-10.5zm-69.999 10.5h22.75v-10.5H42v33.542h10.792V145.75zm0 32.666H42v33.542h10.792v-33.542zm117.25-43.166H136.5v10.5h33.542v-10.5zm-117.25 86.333H42v33.542h10.792v-33.542zm0 86.334H42v33.542h10.792v-33.542zm0-43.167H42v33.542h10.792V264.75zm0 86.333H42v33.542h10.792v-33.542z"
    +      }
    +    }
    +  },
    +  "shoe-prints": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "feet",
    +        "footprints",
    +        "steps"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f54b",
    +    "label": "Shoe Prints",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154578,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"
    +      }
    +    }
    +  },
    +  "shopping-bag": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f290",
    +    "label": "Shopping Bag",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502810244000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"
    +      }
    +    }
    +  },
    +  "shopping-basket": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f291",
    +    "label": "Shopping Basket",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502810244000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"
    +      }
    +    }
    +  },
    +  "shopping-cart": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "buy",
    +        "checkout",
    +        "payment",
    +        "purchase"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f07a",
    +    "label": "shopping-cart",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"
    +      }
    +    }
    +  },
    +  "shopware": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f5b5",
    +    "label": "Shopware",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529514897193,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 495.99 512\"><path d=\"M395.5 455.27c-42.95 31.79-93.95 48.59-147.48 48.59-137.21 0-248.02-111-248.02-248 0-137.19 111.04-248 248.02-248 61.3 0 120.14 22.55 165.68 63.5 2.62 2.36.58 6.64-2.86 6.18-17.67-2.43-36.75-3.66-56.71-3.66-129.36 0-222.4 53.47-222.4 155.35 0 109.04 92.13 145.88 176.83 178.73 33.64 13.04 65.4 25.36 86.96 41.59 1.9 1.44 1.89 4.31-.02 5.72zm99.46-222.32c-.08-.94-.55-1.83-1.27-2.44-51.76-42.96-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62.01 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93 1.88 1.05 4.26.19 5.05-1.82 18.89-48.39 17.94-90.23 15.93-113.31z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "495.99",
    +          "512"
    +        ],
    +        "width": 495,
    +        "height": 512,
    +        "path": "M395.5 455.27c-42.95 31.79-93.95 48.59-147.48 48.59-137.21 0-248.02-111-248.02-248 0-137.19 111.04-248 248.02-248 61.3 0 120.14 22.55 165.68 63.5 2.62 2.36.58 6.64-2.86 6.18-17.67-2.43-36.75-3.66-56.71-3.66-129.36 0-222.4 53.47-222.4 155.35 0 109.04 92.13 145.88 176.83 178.73 33.64 13.04 65.4 25.36 86.96 41.59 1.9 1.44 1.89 4.31-.02 5.72zm99.46-222.32c-.08-.94-.55-1.83-1.27-2.44-51.76-42.96-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62.01 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93 1.88 1.05 4.26.19 5.05-1.82 18.89-48.39 17.94-90.23 15.93-113.31z"
    +      }
    +    }
    +  },
    +  "shower": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2cc",
    +    "label": "Shower",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z"
    +      }
    +    }
    +  },
    +  "shuttle-van": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "machine",
    +        "public-transportation",
    +        "transportation",
    +        "vehicle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5b6",
    +    "label": "Shuttle Van",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111697,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"
    +      }
    +    }
    +  },
    +  "sign": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4d9",
    +    "label": "Sign",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821458,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"
    +      }
    +    }
    +  },
    +  "sign-in-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "enter",
    +        "join",
    +        "log in",
    +        "login",
    +        "sign in",
    +        "sign up",
    +        "sign-in",
    +        "signin",
    +        "signup"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2f6",
    +    "label": "Alternate Sign In",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"
    +      }
    +    }
    +  },
    +  "sign-language": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2a7",
    +    "label": "Sign Language",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"
    +      }
    +    }
    +  },
    +  "sign-out-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "exit",
    +        "leave",
    +        "log out",
    +        "logout",
    +        "sign-out"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2f5",
    +    "label": "Alternate Sign Out",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"
    +      }
    +    }
    +  },
    +  "signal": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bars",
    +        "graph",
    +        "online",
    +        "status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f012",
    +    "label": "signal",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320897,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "signature": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "John Hancock",
    +        "cursive",
    +        "name",
    +        "writing"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5b7",
    +    "label": "Signature",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111698,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496 320h-91.86c-9.27 0-19.72-11.31-25.78-28.52-15.23-43.36-48.11-70.3-85.8-70.3-30.84 0-58.47 18.05-76.11 49.23L194.8 106.5C188.84 81.08 169.34 64 146.28 64c-23.05 0-42.55 17.08-48.5 42.5L56.16 284.2C50.7 307.45 37.75 320 28.33 320H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h12.33c41.97 0 78.19-34.23 90.14-85.2l23.84-101.78 29.25 222.11c1.98 15.05 13.82 27.45 28.94 28.75.99.09 1.96.13 2.93.13 14.08 0 26.64-9.27 30.69-22.95l33.03-112.34c5.88-16.72 15.84-27.52 25.41-27.52 9.58 0 19.55 10.8 25.78 28.52 15.23 43.36 48.11 70.3 85.8 70.3H496c8.84 0 16-7.16 16-16v-32c0-8.86-7.16-16.02-16-16.02z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496 320h-91.86c-9.27 0-19.72-11.31-25.78-28.52-15.23-43.36-48.11-70.3-85.8-70.3-30.84 0-58.47 18.05-76.11 49.23L194.8 106.5C188.84 81.08 169.34 64 146.28 64c-23.05 0-42.55 17.08-48.5 42.5L56.16 284.2C50.7 307.45 37.75 320 28.33 320H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h12.33c41.97 0 78.19-34.23 90.14-85.2l23.84-101.78 29.25 222.11c1.98 15.05 13.82 27.45 28.94 28.75.99.09 1.96.13 2.93.13 14.08 0 26.64-9.27 30.69-22.95l33.03-112.34c5.88-16.72 15.84-27.52 25.41-27.52 9.58 0 19.55 10.8 25.78 28.52 15.23 43.36 48.11 70.3 85.8 70.3H496c8.84 0 16-7.16 16-16v-32c0-8.86-7.16-16.02-16-16.02z"
    +      }
    +    }
    +  },
    +  "simplybuilt": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f215",
    +    "label": "SimplyBuilt",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"
    +      }
    +    }
    +  },
    +  "sistrix": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3ee",
    +    "label": "SISTRIX",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"
    +      }
    +    }
    +  },
    +  "sitemap": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "directory",
    +        "hierarchy",
    +        "ia",
    +        "information architecture",
    +        "organization"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0e8",
    +    "label": "Sitemap",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154578,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "sith": {
    +    "changes": [
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f512",
    +    "label": "Sith",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442522,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z"
    +      }
    +    }
    +  },
    +  "skull": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bones",
    +        "skeleton",
    +        "yorick"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f54c",
    +    "label": "Skull",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154579,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"
    +      }
    +    }
    +  },
    +  "skull-crossbones": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "alert",
    +        "bones",
    +        "d&d",
    +        "danger",
    +        "dead",
    +        "deadly",
    +        "death",
    +        "dnd",
    +        "fantasy",
    +        "halloween",
    +        "holiday",
    +        "jolly-roger",
    +        "pirate",
    +        "poison",
    +        "skeleton",
    +        "warning"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f714",
    +    "label": "Skull & Crossbones",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539286135296,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"
    +      }
    +    }
    +  },
    +  "skyatlas": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f216",
    +    "label": "skyatlas",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426582001,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"
    +      }
    +    }
    +  },
    +  "skype": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f17e",
    +    "label": "Skype",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"
    +      }
    +    }
    +  },
    +  "slack": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "anchor",
    +        "hash",
    +        "hashtag"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f198",
    +    "label": "Slack Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M244.2 217.5l19.3 57.7-59.8 20-19.3-57.7 59.8-20zm41.4 243.7C131.6 507.4 65 471.6 18.8 317.6S8.4 97 162.4 50.8C316.4 4.6 383 40.4 429.2 194.4c46.2 154 10.4 220.6-143.6 266.8zM366.2 265c-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-19.3-57.7 29-9.7c12.2-3.9 18.6-17.2 14.7-29.4-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-59.8 20.1-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l19.3 57.7-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 59.8-20.1 10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 29-9.7c12.2-4.2 18.6-17.5 14.7-29.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M244.2 217.5l19.3 57.7-59.8 20-19.3-57.7 59.8-20zm41.4 243.7C131.6 507.4 65 471.6 18.8 317.6S8.4 97 162.4 50.8C316.4 4.6 383 40.4 429.2 194.4c46.2 154 10.4 220.6-143.6 266.8zM366.2 265c-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-19.3-57.7 29-9.7c12.2-3.9 18.6-17.2 14.7-29.4-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-59.8 20.1-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l19.3 57.7-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 59.8-20.1 10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 29-9.7c12.2-4.2 18.6-17.5 14.7-29.6z"
    +      }
    +    }
    +  },
    +  "slack-hash": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "anchor",
    +        "hash",
    +        "hashtag"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3ef",
    +    "label": "Slack Hashtag",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z"
    +      }
    +    }
    +  },
    +  "slash": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f715",
    +    "label": "Slash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011827891,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"
    +      }
    +    }
    +  },
    +  "sliders-h": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "settings",
    +        "sliders"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1de",
    +    "label": "Horizontal Sliders",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365070,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"
    +      }
    +    }
    +  },
    +  "slideshare": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1e7",
    +    "label": "Slideshare",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M249.429 211.436c0 31.716-27.715 57.717-61.717 57.717-34.001 0-61.716-26.001-61.716-57.717 0-32.001 27.715-57.716 61.716-57.716 34.001 0 61.717 25.715 61.717 57.716zm254.294 50.002c-18.286 22.573-53.144 50.288-106.289 72.003C453.722 525.163 260 555.735 263.143 457.446c0 1.714-.286-52.859-.286-93.432-4.285-.858-8.571-2-13.714-3.143 0 40.858-.286 98.289-.286 96.575C252 555.735 58.278 525.163 114.566 333.441c-53.145-21.715-88.003-49.43-106.29-72.003-9.143-13.714.858-28.287 16.001-17.715 2 1.428 4.285 2.857 6.285 4.285V49.716C30.563 22.287 51.135 0 76.565 0h359.157c25.429 0 46.002 22.287 46.002 49.716v198.293l6-4.285c15.143-10.573 25.143 4 15.999 17.714zm-46.572-189.15c0-32.858-10.572-45.716-40.859-45.716H98.566c-31.716 0-40.573 10.858-40.573 45.716v192.293c67.717 35.43 125.72 29.144 157.435 28.001 13.429-.286 22.001 2.286 27.144 7.715 1.689 1.687 10.023 9.446 20.287 17.143 1.143-15.715 10.001-25.715 33.716-24.858 32.287 1.428 91.718 7.715 160.577-29.716V72.288zM331.146 153.72c-34.002 0-61.716 25.715-61.716 57.716 0 31.716 27.715 57.717 61.716 57.717 34.287 0 61.716-26.001 61.716-57.717 0-32.001-27.429-57.716-61.716-57.716z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M249.429 211.436c0 31.716-27.715 57.717-61.717 57.717-34.001 0-61.716-26.001-61.716-57.717 0-32.001 27.715-57.716 61.716-57.716 34.001 0 61.717 25.715 61.717 57.716zm254.294 50.002c-18.286 22.573-53.144 50.288-106.289 72.003C453.722 525.163 260 555.735 263.143 457.446c0 1.714-.286-52.859-.286-93.432-4.285-.858-8.571-2-13.714-3.143 0 40.858-.286 98.289-.286 96.575C252 555.735 58.278 525.163 114.566 333.441c-53.145-21.715-88.003-49.43-106.29-72.003-9.143-13.714.858-28.287 16.001-17.715 2 1.428 4.285 2.857 6.285 4.285V49.716C30.563 22.287 51.135 0 76.565 0h359.157c25.429 0 46.002 22.287 46.002 49.716v198.293l6-4.285c15.143-10.573 25.143 4 15.999 17.714zm-46.572-189.15c0-32.858-10.572-45.716-40.859-45.716H98.566c-31.716 0-40.573 10.858-40.573 45.716v192.293c67.717 35.43 125.72 29.144 157.435 28.001 13.429-.286 22.001 2.286 27.144 7.715 1.689 1.687 10.023 9.446 20.287 17.143 1.143-15.715 10.001-25.715 33.716-24.858 32.287 1.428 91.718 7.715 160.577-29.716V72.288zM331.146 153.72c-34.002 0-61.716 25.715-61.716 57.716 0 31.716 27.715 57.717 61.716 57.717 34.287 0 61.716-26.001 61.716-57.717 0-32.001-27.429-57.716-61.716-57.716z"
    +      }
    +    }
    +  },
    +  "smile": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0",
    +      "5.0.9",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "approve",
    +        "emoticon",
    +        "face",
    +        "happy",
    +        "rating",
    +        "satisfied"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f118",
    +    "label": "Smiling Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111699,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111635,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"
    +      }
    +    }
    +  },
    +  "smile-beam": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "happy",
    +        "positive"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f5b8",
    +    "label": "Beaming Face With Smiling Eyes",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111698,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111634,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z"
    +      }
    +    }
    +  },
    +  "smile-wink": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "happy"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f4da",
    +    "label": "Winking Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111699,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111635,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z"
    +      }
    +    }
    +  },
    +  "smoking": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cigarette",
    +        "nicotine",
    +        "smoking status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f48d",
    +    "label": "Smoking",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821458,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"
    +      }
    +    }
    +  },
    +  "smoking-ban": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "no smoking",
    +        "non-smoking"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f54d",
    +    "label": "Smoking Ban",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154579,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"
    +      }
    +    }
    +  },
    +  "snapchat": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2ab",
    +    "label": "Snapchat",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"
    +      }
    +    }
    +  },
    +  "snapchat-ghost": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2ac",
    +    "label": "Snapchat Ghost",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821388,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z"
    +      }
    +    }
    +  },
    +  "snapchat-square": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2ad",
    +    "label": "Snapchat Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"
    +      }
    +    }
    +  },
    +  "snowflake": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2dc",
    +    "label": "Snowflake",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503066239000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M444.816 301.639a24.12 24.12 0 0 0 2.661-16.978c-2.725-12.966-15.339-21.245-28.174-18.492l-87.407 25.046L264 256l67.896-35.215 87.407 25.046c12.835 2.753 25.449-5.526 28.174-18.492 2.725-12.966-5.471-25.708-18.305-28.461l-47.477-7.137 53.077-30.956c11.363-6.627 15.257-21.306 8.696-32.785-6.561-11.479-21.091-15.412-32.454-8.785l-53.077 30.956 17.621-45.104c4.057-12.606-2.768-26.146-15.247-30.245-12.478-4.099-25.883 2.797-29.94 15.402l-22.232 88.99-60.38 35.215V144l65.175-63.945c8.778-9.852 7.987-25.027-1.766-33.894-9.753-8.867-24.775-8.068-33.552 1.784l-29.857 37.967V24c0-13.255-10.637-24-23.758-24s-23.758 10.745-23.758 24v61.912l-29.857-37.967c-8.779-9.852-23.799-10.652-33.552-1.784-9.753 8.867-10.543 24.042-1.766 33.894L200.242 144v70.431l-60.38-35.215-22.232-88.99c-4.057-12.605-17.462-19.501-29.94-15.402-12.478 4.099-19.304 17.64-15.247 30.245l17.62 45.104-53.077-30.956c-11.363-6.627-25.893-2.694-32.454 8.785s-2.667 26.157 8.696 32.785l53.077 30.956-47.477 7.137C5.993 201.634-2.203 214.375.523 227.341c2.725 12.965 15.339 21.245 28.174 18.492l87.407-25.046L184 256l-67.896 35.215-87.406-25.045c-12.835-2.753-25.449 5.526-28.174 18.492-2.725 12.967 5.47 25.708 18.305 28.461l47.477 7.137-53.077 30.956C1.866 357.843-2.027 372.521 4.533 384s21.091 15.412 32.454 8.785l53.077-30.956-17.62 45.104a24.157 24.157 0 0 0 2.022 19.428c2.831 4.953 7.416 8.909 13.224 10.816 12.478 4.099 25.883-2.797 29.94-15.402l22.232-88.99 60.38-35.215V368l-65.175 63.945c-8.778 9.852-7.987 25.027 1.766 33.894 9.754 8.868 24.774 8.068 33.552-1.784l29.857-37.967V488c0 13.255 10.637 24 23.758 24s23.758-10.745 23.758-24v-61.912l29.857 37.967A23.59 23.59 0 0 0 295.282 472a23.534 23.534 0 0 0 15.885-6.161c9.753-8.867 10.544-24.042 1.766-33.894L247.758 368v-70.431l60.38 35.215 22.232 88.99c4.057 12.605 17.462 19.501 29.94 15.402 12.479-4.099 19.304-17.64 15.247-30.245l-17.621-45.104 53.077 30.956c11.363 6.627 25.893 2.694 32.454-8.785s2.667-26.157-8.696-32.785l-53.077-30.956 47.477-7.137c6.86-1.469 12.394-5.793 15.645-11.481z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M444.816 301.639a24.12 24.12 0 0 0 2.661-16.978c-2.725-12.966-15.339-21.245-28.174-18.492l-87.407 25.046L264 256l67.896-35.215 87.407 25.046c12.835 2.753 25.449-5.526 28.174-18.492 2.725-12.966-5.471-25.708-18.305-28.461l-47.477-7.137 53.077-30.956c11.363-6.627 15.257-21.306 8.696-32.785-6.561-11.479-21.091-15.412-32.454-8.785l-53.077 30.956 17.621-45.104c4.057-12.606-2.768-26.146-15.247-30.245-12.478-4.099-25.883 2.797-29.94 15.402l-22.232 88.99-60.38 35.215V144l65.175-63.945c8.778-9.852 7.987-25.027-1.766-33.894-9.753-8.867-24.775-8.068-33.552 1.784l-29.857 37.967V24c0-13.255-10.637-24-23.758-24s-23.758 10.745-23.758 24v61.912l-29.857-37.967c-8.779-9.852-23.799-10.652-33.552-1.784-9.753 8.867-10.543 24.042-1.766 33.894L200.242 144v70.431l-60.38-35.215-22.232-88.99c-4.057-12.605-17.462-19.501-29.94-15.402-12.478 4.099-19.304 17.64-15.247 30.245l17.62 45.104-53.077-30.956c-11.363-6.627-25.893-2.694-32.454 8.785s-2.667 26.157 8.696 32.785l53.077 30.956-47.477 7.137C5.993 201.634-2.203 214.375.523 227.341c2.725 12.965 15.339 21.245 28.174 18.492l87.407-25.046L184 256l-67.896 35.215-87.406-25.045c-12.835-2.753-25.449 5.526-28.174 18.492-2.725 12.967 5.47 25.708 18.305 28.461l47.477 7.137-53.077 30.956C1.866 357.843-2.027 372.521 4.533 384s21.091 15.412 32.454 8.785l53.077-30.956-17.62 45.104a24.157 24.157 0 0 0 2.022 19.428c2.831 4.953 7.416 8.909 13.224 10.816 12.478 4.099 25.883-2.797 29.94-15.402l22.232-88.99 60.38-35.215V368l-65.175 63.945c-8.778 9.852-7.987 25.027 1.766 33.894 9.754 8.868 24.774 8.068 33.552-1.784l29.857-37.967V488c0 13.255 10.637 24 23.758 24s23.758-10.745 23.758-24v-61.912l29.857 37.967A23.59 23.59 0 0 0 295.282 472a23.534 23.534 0 0 0 15.885-6.161c9.753-8.867 10.544-24.042 1.766-33.894L247.758 368v-70.431l60.38 35.215 22.232 88.99c4.057 12.605 17.462 19.501 29.94 15.402 12.479-4.099 19.304-17.64 15.247-30.245l-17.621-45.104 53.077 30.956c11.363 6.627 25.893 2.694 32.454-8.785s2.667-26.157-8.696-32.785l-53.077-30.956 47.477-7.137c6.86-1.469 12.394-5.793 15.645-11.481z"
    +      },
    +      "regular": {
    +        "last_modified": 1503066239000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M438.237 355.927l-66.574-38.54 59.448-10.327c5.846-1.375 10.609-5.183 13.458-10.13 2.48-4.307 3.506-9.478 2.524-14.651-2.11-11.115-12.686-18.039-23.621-15.467l-85.423 31.115L255.914 256l82.136-41.926 85.423 31.115c10.936 2.572 21.512-4.352 23.621-15.467 2.111-11.115-5.046-22.209-15.981-24.781l-59.448-10.327 66.573-38.54c9.54-5.523 12.615-18.092 6.867-28.074-5.748-9.982-18.14-13.596-27.68-8.074l-66.574 38.54 20.805-56.787c3.246-10.782-2.758-22.542-13.413-26.268-10.654-3.725-21.922 1.997-25.168 12.779l-15.838 89.735-72.423 41.926V136l69.585-58.621c7.689-8.21 6.997-20.856-1.548-28.245-8.545-7.391-21.705-6.723-29.394 1.486l-38.644 46.46V20c0-11.046-9.318-20-20.813-20s-20.813 8.954-20.813 20v77.08l-38.644-46.46c-7.689-8.21-20.849-8.876-29.394-1.486-8.544 7.389-9.236 20.035-1.547 28.245L203.187 136v83.853l-72.423-41.926-15.838-89.736c-3.247-10.782-14.515-16.504-25.169-12.779-10.656 3.725-16.659 15.486-13.413 26.268l20.805 56.787-66.573-38.54c-9.54-5.523-21.933-1.908-27.68 8.074s-2.673 22.551 6.867 28.074l66.574 38.54-59.449 10.328C5.953 207.515-1.202 218.609.907 229.724c2.11 11.114 12.686 18.038 23.622 15.466l85.422-31.115L192.086 256l-82.136 41.926-85.423-31.115c-10.936-2.572-21.511 4.352-23.622 15.466-2.109 11.113 5.046 22.209 15.981 24.781l59.449 10.328-66.574 38.54C.223 361.449-2.852 374.018 2.896 384s18.14 13.597 27.68 8.074l66.574-38.54-20.805 56.786c-1.735 5.764-.828 11.805 2.02 16.751 2.48 4.307 6.433 7.784 11.392 9.517 10.655 3.725 21.923-1.997 25.169-12.779l15.838-89.736 72.423-41.926V376l-69.585 58.621c-7.69 8.21-6.997 20.855 1.547 28.245 8.544 7.388 21.705 6.723 29.394-1.487l38.644-46.46V492c0 11.046 9.318 20 20.813 20s20.813-8.954 20.813-20v-77.081l38.644 46.46c4.111 4.389 9.782 6.621 15.478 6.621 4.96 0 9.939-1.694 13.916-5.134 8.545-7.39 9.237-20.035 1.548-28.245L244.813 376v-83.853l72.423 41.926 15.838 89.736c3.246 10.782 14.514 16.504 25.168 12.779 10.653-3.726 16.659-15.487 13.412-26.268l-20.805-56.787 66.574 38.54c9.54 5.523 21.933 1.908 27.68-8.074 5.749-9.981 2.675-22.55-6.866-28.072z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M438.237 355.927l-66.574-38.54 59.448-10.327c5.846-1.375 10.609-5.183 13.458-10.13 2.48-4.307 3.506-9.478 2.524-14.651-2.11-11.115-12.686-18.039-23.621-15.467l-85.423 31.115L255.914 256l82.136-41.926 85.423 31.115c10.936 2.572 21.512-4.352 23.621-15.467 2.111-11.115-5.046-22.209-15.981-24.781l-59.448-10.327 66.573-38.54c9.54-5.523 12.615-18.092 6.867-28.074-5.748-9.982-18.14-13.596-27.68-8.074l-66.574 38.54 20.805-56.787c3.246-10.782-2.758-22.542-13.413-26.268-10.654-3.725-21.922 1.997-25.168 12.779l-15.838 89.735-72.423 41.926V136l69.585-58.621c7.689-8.21 6.997-20.856-1.548-28.245-8.545-7.391-21.705-6.723-29.394 1.486l-38.644 46.46V20c0-11.046-9.318-20-20.813-20s-20.813 8.954-20.813 20v77.08l-38.644-46.46c-7.689-8.21-20.849-8.876-29.394-1.486-8.544 7.389-9.236 20.035-1.547 28.245L203.187 136v83.853l-72.423-41.926-15.838-89.736c-3.247-10.782-14.515-16.504-25.169-12.779-10.656 3.725-16.659 15.486-13.413 26.268l20.805 56.787-66.573-38.54c-9.54-5.523-21.933-1.908-27.68 8.074s-2.673 22.551 6.867 28.074l66.574 38.54-59.449 10.328C5.953 207.515-1.202 218.609.907 229.724c2.11 11.114 12.686 18.038 23.622 15.466l85.422-31.115L192.086 256l-82.136 41.926-85.423-31.115c-10.936-2.572-21.511 4.352-23.622 15.466-2.109 11.113 5.046 22.209 15.981 24.781l59.449 10.328-66.574 38.54C.223 361.449-2.852 374.018 2.896 384s18.14 13.597 27.68 8.074l66.574-38.54-20.805 56.786c-1.735 5.764-.828 11.805 2.02 16.751 2.48 4.307 6.433 7.784 11.392 9.517 10.655 3.725 21.923-1.997 25.169-12.779l15.838-89.736 72.423-41.926V376l-69.585 58.621c-7.69 8.21-6.997 20.855 1.547 28.245 8.544 7.388 21.705 6.723 29.394-1.487l38.644-46.46V492c0 11.046 9.318 20 20.813 20s20.813-8.954 20.813-20v-77.081l38.644 46.46c4.111 4.389 9.782 6.621 15.478 6.621 4.96 0 9.939-1.694 13.916-5.134 8.545-7.39 9.237-20.035 1.548-28.245L244.813 376v-83.853l72.423 41.926 15.838 89.736c3.246 10.782 14.514 16.504 25.168 12.779 10.653-3.726 16.659-15.487 13.412-26.268l-20.805-56.787 66.574 38.54c9.54 5.523 21.933 1.908 27.68-8.074 5.749-9.981 2.675-22.55-6.866-28.072z"
    +      }
    +    }
    +  },
    +  "socks": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "business socks",
    +        "business time",
    +        "flight of the conchords",
    +        "wednesday"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f696",
    +    "label": "Socks",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320898,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"
    +      }
    +    }
    +  },
    +  "solar-panel": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "clean",
    +        "eco-friendly",
    +        "energy",
    +        "green",
    +        "sun"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5ba",
    +    "label": "Solar Panel",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111699,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"
    +      }
    +    }
    +  },
    +  "sort": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "order"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0dc",
    +    "label": "Sort",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"
    +      }
    +    }
    +  },
    +  "sort-alpha-down": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "sort-alpha-asc"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f15d",
    +    "label": "Sort Alpha Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zm119.075-180.007A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zm119.075-180.007A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"
    +      }
    +    }
    +  },
    +  "sort-alpha-up": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "sort-alpha-desc"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f15e",
    +    "label": "Sort Alpha Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zm301.671 98.621A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zm301.671 98.621A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"
    +      }
    +    }
    +  },
    +  "sort-amount-down": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "sort-amount-asc"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f160",
    +    "label": "Sort Amount Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"
    +      }
    +    }
    +  },
    +  "sort-amount-up": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "sort-amount-desc"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f161",
    +    "label": "Sort Amount Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"
    +      }
    +    }
    +  },
    +  "sort-down": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "descending",
    +        "sort-desc"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0dd",
    +    "label": "Sort Down (Descending)",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"
    +      }
    +    }
    +  },
    +  "sort-numeric-down": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "numbers",
    +        "sort-numeric-asc"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f162",
    +    "label": "Sort Numeric Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM175.984 368H128V48c0-8.837-7.163-16-16-16H80c-8.837 0-16 7.163-16 16v320H16.019c-14.212 0-21.384 17.244-11.314 27.314l79.981 80.002c6.245 6.245 16.38 6.247 22.627 0l79.984-80.002c10.05-10.05 2.928-27.314-11.313-27.314z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM175.984 368H128V48c0-8.837-7.163-16-16-16H80c-8.837 0-16 7.163-16 16v320H16.019c-14.212 0-21.384 17.244-11.314 27.314l79.981 80.002c6.245 6.245 16.38 6.247 22.627 0l79.984-80.002c10.05-10.05 2.928-27.314-11.313-27.314z"
    +      }
    +    }
    +  },
    +  "sort-numeric-up": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "numbers",
    +        "sort-numeric-desc"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f163",
    +    "label": "Sort Numeric Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM16.016 144H64v320c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144h47.981c14.212 0 21.384-17.244 11.314-27.314l-79.981-80.002c-6.245-6.245-16.38-6.247-22.627 0L4.702 116.686C-5.347 126.736 1.775 144 16.016 144z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM16.016 144H64v320c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144h47.981c14.212 0 21.384-17.244 11.314-27.314l-79.981-80.002c-6.245-6.245-16.38-6.247-22.627 0L4.702 116.686C-5.347 126.736 1.775 144 16.016 144z"
    +      }
    +    }
    +  },
    +  "sort-up": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arrow",
    +        "ascending",
    +        "sort-asc"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0de",
    +    "label": "Sort Up (Ascending)",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"
    +      }
    +    }
    +  },
    +  "soundcloud": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1be",
    +    "label": "SoundCloud",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z"
    +      }
    +    }
    +  },
    +  "spa": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "flora",
    +        "mindfullness",
    +        "plant",
    +        "wellness"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5bb",
    +    "label": "Spa",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111700,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"
    +      }
    +    }
    +  },
    +  "space-shuttle": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "astronaut",
    +        "machine",
    +        "nasa",
    +        "rocket",
    +        "transportation"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f197",
    +    "label": "Space Shuttle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"
    +      }
    +    }
    +  },
    +  "speakap": {
    +    "changes": [
    +      "5.0.0",
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3f3",
    +    "label": "Speakap",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1536173112000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 430.87 512\"><path d=\"M55.01 391.78C-24.4 303.59-16.95 167.42 71.65 87.64s224.8-72.96 304.21 15.24 71.96 224.36-16.64 304.14c-18.74 16.87 64.03 43.09 42.02 52.26-82.06 34.21-253.91 35.04-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32.02-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 79.96-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 85.98 52.26-.37 21.28-26.42 25.81-38.59 25.6-2.98-.05-30.23-.46-47.61-24.62l-39.95 42.61c28.16 27.01 58.99 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-84.96-19.45-84.43-49.75.41-23.25 30.96-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "430.87",
    +          "512"
    +        ],
    +        "width": 430,
    +        "height": 512,
    +        "path": "M55.01 391.78C-24.4 303.59-16.95 167.42 71.65 87.64s224.8-72.96 304.21 15.24 71.96 224.36-16.64 304.14c-18.74 16.87 64.03 43.09 42.02 52.26-82.06 34.21-253.91 35.04-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32.02-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 79.96-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 85.98 52.26-.37 21.28-26.42 25.81-38.59 25.6-2.98-.05-30.23-.46-47.61-24.62l-39.95 42.61c28.16 27.01 58.99 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-84.96-19.45-84.43-49.75.41-23.25 30.96-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z"
    +      }
    +    }
    +  },
    +  "spider": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "arachnid",
    +        "bug",
    +        "charlotte",
    +        "crawl",
    +        "eight",
    +        "halloween",
    +        "holiday"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f717",
    +    "label": "Spider",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290242,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"
    +      }
    +    }
    +  },
    +  "spinner": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "loading",
    +        "progress"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f110",
    +    "label": "Spinner",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"
    +      }
    +    }
    +  },
    +  "splotch": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5bc",
    +    "label": "Splotch",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111700,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"
    +      }
    +    }
    +  },
    +  "spotify": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1bc",
    +    "label": "Spotify",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"
    +      }
    +    }
    +  },
    +  "spray-can": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5bd",
    +    "label": "Spray Can",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111701,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "square": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "block",
    +        "box"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f0c8",
    +    "label": "Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"
    +      }
    +    }
    +  },
    +  "square-full": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f45c",
    +    "label": "Square Full",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527998,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 512H0V0h512v512z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 512H0V0h512v512z"
    +      }
    +    }
    +  },
    +  "square-root-alt": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f698",
    +    "label": "Square Root Alternate",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320898,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"
    +      }
    +    }
    +  },
    +  "squarespace": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f5be",
    +    "label": "Squarespace",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529514897194,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z"
    +      }
    +    }
    +  },
    +  "stack-exchange": {
    +    "changes": [
    +      "4",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f18d",
    +    "label": "Stack Exchange",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426582001,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"
    +      }
    +    }
    +  },
    +  "stack-overflow": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f16c",
    +    "label": "Stack Overflow",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M293.7 300l-181.2-84.5 16.7-36.5 181.3 84.7-16.8 36.3zm48-76L188.2 95.7l-25.5 30.8 153.5 128.3 25.5-30.8zm39.6-31.7L262 32l-32 24 119.3 160.3 32-24zM290.7 311L95 269.7 86.8 309l195.7 41 8.2-39zm31.6 129H42.7V320h-40v160h359.5V320h-40v120zm-39.8-80h-200v39.7h200V360z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M293.7 300l-181.2-84.5 16.7-36.5 181.3 84.7-16.8 36.3zm48-76L188.2 95.7l-25.5 30.8 153.5 128.3 25.5-30.8zm39.6-31.7L262 32l-32 24 119.3 160.3 32-24zM290.7 311L95 269.7 86.8 309l195.7 41 8.2-39zm31.6 129H42.7V320h-40v160h359.5V320h-40v120zm-39.8-80h-200v39.7h200V360z"
    +      }
    +    }
    +  },
    +  "stamp": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5bf",
    +    "label": "Stamp",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111701,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"
    +      }
    +    }
    +  },
    +  "star": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "achievement",
    +        "award",
    +        "favorite",
    +        "important",
    +        "night",
    +        "rating",
    +        "score"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f005",
    +    "label": "Star",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"
    +      }
    +    }
    +  },
    +  "star-and-crescent": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "islam",
    +        "muslim"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f699",
    +    "label": "Star and Crescent",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320899,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"
    +      }
    +    }
    +  },
    +  "star-half": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "achievement",
    +        "award",
    +        "rating",
    +        "score",
    +        "star-half-empty",
    +        "star-half-full"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f089",
    +    "label": "star-half",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1505492030000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"
    +      },
    +      "regular": {
    +        "last_modified": 1505492030000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z"
    +      }
    +    }
    +  },
    +  "star-half-alt": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "achievement",
    +        "award",
    +        "rating",
    +        "score",
    +        "star-half-empty",
    +        "star-half-full"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5c0",
    +    "label": "Alternate Star Half",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111702,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 536 512\"><path d=\"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "536",
    +          "512"
    +        ],
    +        "width": 536,
    +        "height": 512,
    +        "path": "M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"
    +      }
    +    }
    +  },
    +  "star-of-david": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "jewish",
    +        "judaism"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f69a",
    +    "label": "Star of David",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320899,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 464 512\"><path d=\"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "464",
    +          "512"
    +        ],
    +        "width": 464,
    +        "height": 512,
    +        "path": "M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"
    +      }
    +    }
    +  },
    +  "star-of-life": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f621",
    +    "label": "Star of Life",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831543,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 480 512\"><path d=\"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "480",
    +          "512"
    +        ],
    +        "width": 480,
    +        "height": 512,
    +        "path": "M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"
    +      }
    +    }
    +  },
    +  "staylinked": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3f5",
    +    "label": "StayLinked",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 440 512\"><path d=\"M201.6 127.4c4.1-3.2 10.3-3 13.8.5l170 167.3-2.7-2.7 44.3 41.3c3.7 3.5 3.3 9-.7 12.2l-198 163.9c-9.9 7.6-17.3.8-17.3.8L2.3 314.6c-3.5-3.5-3-9 1.2-12.2l45.8-34.9c4.2-3.2 10.4-3 13.9.5l151.9 147.5c3.7 3.5 10 3.7 14.2.4l93.2-74c4.1-3.2 4.5-8.7.9-12.2l-84-81.3c-3.6-3.5-9.9-3.7-14-.5l-.1.1c-4.1 3.2-10.4 3-14-.5l-68.1-64.3c-3.5-3.5-3.1-9 1.1-12.2l57.3-43.6m14.8 257.3c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "440",
    +          "512"
    +        ],
    +        "width": 440,
    +        "height": 512,
    +        "path": "M201.6 127.4c4.1-3.2 10.3-3 13.8.5l170 167.3-2.7-2.7 44.3 41.3c3.7 3.5 3.3 9-.7 12.2l-198 163.9c-9.9 7.6-17.3.8-17.3.8L2.3 314.6c-3.5-3.5-3-9 1.2-12.2l45.8-34.9c4.2-3.2 10.4-3 13.9.5l151.9 147.5c3.7 3.5 10 3.7 14.2.4l93.2-74c4.1-3.2 4.5-8.7.9-12.2l-84-81.3c-3.6-3.5-9.9-3.7-14-.5l-.1.1c-4.1 3.2-10.4 3-14-.5l-68.1-64.3c-3.5-3.5-3.1-9 1.1-12.2l57.3-43.6m14.8 257.3c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7"
    +      }
    +    }
    +  },
    +  "steam": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1b6",
    +    "label": "Steam",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821389,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z"
    +      }
    +    }
    +  },
    +  "steam-square": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1b7",
    +    "label": "Steam Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"
    +      }
    +    }
    +  },
    +  "steam-symbol": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3f6",
    +    "label": "Steam Symbol",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z"
    +      }
    +    }
    +  },
    +  "step-backward": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "beginning",
    +        "first",
    +        "previous",
    +        "rewind",
    +        "start"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f048",
    +    "label": "step-backward",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"
    +      }
    +    }
    +  },
    +  "step-forward": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "end",
    +        "last",
    +        "next"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f051",
    +    "label": "step-forward",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"
    +      }
    +    }
    +  },
    +  "stethoscope": {
    +    "changes": [
    +      "3",
    +      "5.0.0",
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0f1",
    +    "label": "Stethoscope",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821459,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"
    +      }
    +    }
    +  },
    +  "sticker-mule": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3f7",
    +    "label": "Sticker Mule",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1502893836000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M353.1 509.8c-5.9 2.9-32.1 3.2-36.5-.5-4.1-3-2.2-11.9-1.5-15 2.2-15-2.5-7.9-9.8-11.5-3.1-1.5-4.1-5.5-4.6-10-.5-1.5-1-2.5-1.5-3.5-1.7-10.7 6.8-33.6 8.2-43.4 4.9-23.7-.7-37.2 1.5-46.9 3.7-16.2 4.1-3.5 4.1-29.9-1.4-25.9 3.3-36.9.5-38.9-14.8 0-64.3 10.7-112.2 2-46.1-8.9-59.4-29-65.4-30.9-10.3-4.5-23.2.5-27.3 7-.1.1-35 70.6-39.6 87.8-6.2 20.5-.5 47.4 4.1 66.8 0 .1 4.5 14.6 10.3 19.5 2.1 1.5 5.1 2.5 7.2 4.5 2.8 2.7 9.4 15.2 9.8 16 2.6 4.5 3.6 8-1.5 10.5-3.6 2-9.3 2.5-14.4 2.5-2.6.5-1.5 3.5-3.1 5-2.9 2.8-20.7 6.1-29.9 2.5-2.6-1-5.7-3-6.2-5-1.5-4 2.1-9-1-12.5-4.5-2.9-13.1-2-17-12-2.2-5.4-2.6-7.6-2.6-49.4 0-9.7-5.9-38.7-8.2-46.9-1.5-5.5-1.5-11.5 0-16 .3-.9 4.1-4.6 4.1-13-1-1.5-4.6-.5-5.1-1.5-10.4-80.6-5.9-79-7.7-98.3-1.5-16-10.9-43.9-6.7-64.3.5-2.4 3.4-21 24.2-38.9 31-26.7 48.4-38.3 159-11.5 1.1.4 66.3 21.1 110.7-9 15.5-11.3 28.8-11.3 35.5-16 .1-.1 61.7-52.1 87-65.3 47.2-29.4 69.9-16.7 75.1-18 4.7-1 13.4-25.8 17-25.8 5.5 0 1.6 20.2 3.6 25.9.5 2 3.6 5 6.2 5 2.3 0 1.7-.8 10.3-5 8.4-5.4 14.9-17.6 20.6-17 11.7 1.6-19 41.6-19 46.9 0 2 .2.8 4.6 9.5 2.6 5.5 4.6 13.5 6.2 20 8.3 29.7 5.7 14.6 13.4 36.9 20.2 50.1 20.6 45.2 20.6 52.9 0 7.5-4.1 11-7.2 16.5-1.5 3-4.6 7.5-7.2 8-2.7.7 7-1.5-13.4 2.5-7.2 1-13.4-4.5-14.9-9.5-1.6-4.7 2.8-10.1-11.8-22.9-10.3-10-21.1-11.3-31.9-17-9.8-5.7-11.9 1-18 8-18 22.9-34 46.9-52 69.8-11.8 15-24.2 30.4-33.5 47.4-3.9 6.8-9.5 28.1-10.3 29.9-6.2 17.7-5.5 25.8-16.5 68.3-3.1 10-5.7 21.4-8.7 32.4-2.2 6.8-7.4 49.3-.5 59.4 2.1 3.5 8.7 4.5 11.3 8 .1.1 9.6 18.2 9.3 20 0 6.1-9.4 5.6-11.3 6.5-4.8 2.9-3.8 5.9-6.4 7.4\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M353.1 509.8c-5.9 2.9-32.1 3.2-36.5-.5-4.1-3-2.2-11.9-1.5-15 2.2-15-2.5-7.9-9.8-11.5-3.1-1.5-4.1-5.5-4.6-10-.5-1.5-1-2.5-1.5-3.5-1.7-10.7 6.8-33.6 8.2-43.4 4.9-23.7-.7-37.2 1.5-46.9 3.7-16.2 4.1-3.5 4.1-29.9-1.4-25.9 3.3-36.9.5-38.9-14.8 0-64.3 10.7-112.2 2-46.1-8.9-59.4-29-65.4-30.9-10.3-4.5-23.2.5-27.3 7-.1.1-35 70.6-39.6 87.8-6.2 20.5-.5 47.4 4.1 66.8 0 .1 4.5 14.6 10.3 19.5 2.1 1.5 5.1 2.5 7.2 4.5 2.8 2.7 9.4 15.2 9.8 16 2.6 4.5 3.6 8-1.5 10.5-3.6 2-9.3 2.5-14.4 2.5-2.6.5-1.5 3.5-3.1 5-2.9 2.8-20.7 6.1-29.9 2.5-2.6-1-5.7-3-6.2-5-1.5-4 2.1-9-1-12.5-4.5-2.9-13.1-2-17-12-2.2-5.4-2.6-7.6-2.6-49.4 0-9.7-5.9-38.7-8.2-46.9-1.5-5.5-1.5-11.5 0-16 .3-.9 4.1-4.6 4.1-13-1-1.5-4.6-.5-5.1-1.5-10.4-80.6-5.9-79-7.7-98.3-1.5-16-10.9-43.9-6.7-64.3.5-2.4 3.4-21 24.2-38.9 31-26.7 48.4-38.3 159-11.5 1.1.4 66.3 21.1 110.7-9 15.5-11.3 28.8-11.3 35.5-16 .1-.1 61.7-52.1 87-65.3 47.2-29.4 69.9-16.7 75.1-18 4.7-1 13.4-25.8 17-25.8 5.5 0 1.6 20.2 3.6 25.9.5 2 3.6 5 6.2 5 2.3 0 1.7-.8 10.3-5 8.4-5.4 14.9-17.6 20.6-17 11.7 1.6-19 41.6-19 46.9 0 2 .2.8 4.6 9.5 2.6 5.5 4.6 13.5 6.2 20 8.3 29.7 5.7 14.6 13.4 36.9 20.2 50.1 20.6 45.2 20.6 52.9 0 7.5-4.1 11-7.2 16.5-1.5 3-4.6 7.5-7.2 8-2.7.7 7-1.5-13.4 2.5-7.2 1-13.4-4.5-14.9-9.5-1.6-4.7 2.8-10.1-11.8-22.9-10.3-10-21.1-11.3-31.9-17-9.8-5.7-11.9 1-18 8-18 22.9-34 46.9-52 69.8-11.8 15-24.2 30.4-33.5 47.4-3.9 6.8-9.5 28.1-10.3 29.9-6.2 17.7-5.5 25.8-16.5 68.3-3.1 10-5.7 21.4-8.7 32.4-2.2 6.8-7.4 49.3-.5 59.4 2.1 3.5 8.7 4.5 11.3 8 .1.1 9.6 18.2 9.3 20 0 6.1-9.4 5.6-11.3 6.5-4.8 2.9-3.8 5.9-6.4 7.4"
    +      }
    +    }
    +  },
    +  "sticky-note": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f249",
    +    "label": "Sticky Note",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z"
    +      }
    +    }
    +  },
    +  "stop": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "block",
    +        "box",
    +        "square"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f04d",
    +    "label": "stop",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"
    +      }
    +    }
    +  },
    +  "stop-circle": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f28d",
    +    "label": "Stop Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z"
    +      }
    +    }
    +  },
    +  "stopwatch": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "time"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2f2",
    +    "label": "Stopwatch",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"
    +      }
    +    }
    +  },
    +  "store": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f54e",
    +    "label": "Store",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154579,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 616 512\"><path d=\"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "616",
    +          "512"
    +        ],
    +        "width": 616,
    +        "height": 512,
    +        "path": "M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"
    +      }
    +    }
    +  },
    +  "store-alt": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f54f",
    +    "label": "Alternate Store",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154579,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"
    +      }
    +    }
    +  },
    +  "strava": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.1"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f428",
    +    "label": "Strava",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821389,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 369.2 512\"><path d=\"M301.6 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220h-67.6zM151.4 0L0 292h89.2l62.2-116.1L213.1 292h88.5L151.4 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "369.2",
    +          "512"
    +        ],
    +        "width": 369,
    +        "height": 512,
    +        "path": "M301.6 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220h-67.6zM151.4 0L0 292h89.2l62.2-116.1L213.1 292h88.5L151.4 0z"
    +      }
    +    }
    +  },
    +  "stream": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f550",
    +    "label": "Stream",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154579,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "street-view": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "map"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f21d",
    +    "label": "Street View",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831544,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"
    +      }
    +    }
    +  },
    +  "strikethrough": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0cc",
    +    "label": "Strikethrough",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z"
    +      }
    +    }
    +  },
    +  "stripe": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f429",
    +    "label": "Stripe",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821390,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9m-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4h-45.9zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7m-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8M346.4 124v36.2l-44.6 9.5v-36.2l44.6-9.5m-44.5 59.2h44.6v153.2h-44.6V183.2zm-47.8 13.1c10.4-19.1 31.1-15.2 37.1-13.1V224c-5.7-1.8-23.4-4.5-33.9 9.3v103.1H213V183.2h38.4l2.7 13.1m-89-13.1h33.7V221h-33.7v63.2c0 26.2 28 18 33.7 15.7v33.8c-5.9 3.2-16.6 5.9-31.2 5.9-26.3 0-46.1-17-46.1-43.3l.2-142.4 43.3-9.2.1 38.5zM44.9 228.3c0 20 67.9 10.5 67.9 63.4 0 32-25.4 47.8-62.3 47.8-15.3 0-32-3-48.5-10.1v-40c14.9 8.1 33.9 14.2 48.6 14.2 9.9 0 17-2.7 17-10.9 0-21.2-67.5-13.2-67.5-62.4 0-31.4 24-50.2 60-50.2 14.7 0 29.4 2.3 44.1 8.1V230c-13.5-7.3-30.7-11.4-44.2-11.4-9.3.1-15.1 2.8-15.1 9.7\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9m-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4h-45.9zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7m-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8M346.4 124v36.2l-44.6 9.5v-36.2l44.6-9.5m-44.5 59.2h44.6v153.2h-44.6V183.2zm-47.8 13.1c10.4-19.1 31.1-15.2 37.1-13.1V224c-5.7-1.8-23.4-4.5-33.9 9.3v103.1H213V183.2h38.4l2.7 13.1m-89-13.1h33.7V221h-33.7v63.2c0 26.2 28 18 33.7 15.7v33.8c-5.9 3.2-16.6 5.9-31.2 5.9-26.3 0-46.1-17-46.1-43.3l.2-142.4 43.3-9.2.1 38.5zM44.9 228.3c0 20 67.9 10.5 67.9 63.4 0 32-25.4 47.8-62.3 47.8-15.3 0-32-3-48.5-10.1v-40c14.9 8.1 33.9 14.2 48.6 14.2 9.9 0 17-2.7 17-10.9 0-21.2-67.5-13.2-67.5-62.4 0-31.4 24-50.2 60-50.2 14.7 0 29.4 2.3 44.1 8.1V230c-13.5-7.3-30.7-11.4-44.2-11.4-9.3.1-15.1 2.8-15.1 9.7"
    +      }
    +    }
    +  },
    +  "stripe-s": {
    +    "changes": [
    +      "5.0.1"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f42a",
    +    "label": "Stripe S",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821389,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 362.3 512\"><path d=\"M144.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C287.3 7.2 240.1 0 192.8 0 77.1 0 0 60.4 0 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5c53 22.8 106.8 32.4 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "362.3",
    +          "512"
    +        ],
    +        "width": 362,
    +        "height": 512,
    +        "path": "M144.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C287.3 7.2 240.1 0 192.8 0 77.1 0 0 60.4 0 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5c53 22.8 106.8 32.4 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9"
    +      }
    +    }
    +  },
    +  "stroopwafel": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "dessert",
    +        "food",
    +        "sweets",
    +        "waffle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f551",
    +    "label": "Stroopwafel",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154580,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"
    +      }
    +    }
    +  },
    +  "studiovinari": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3f8",
    +    "label": "Studio Vinari",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"
    +      }
    +    }
    +  },
    +  "stumbleupon": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1a4",
    +    "label": "StumbleUpon Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z"
    +      }
    +    }
    +  },
    +  "stumbleupon-circle": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1a3",
    +    "label": "StumbleUpon Circle",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"
    +      }
    +    }
    +  },
    +  "subscript": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f12c",
    +    "label": "subscript",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M395.198 416c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 256c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 96H16C7.163 96 0 88.837 0 80V48c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035A15.999 15.999 0 0 1 204.226 32H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 256H272z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M395.198 416c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 256c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 96H16C7.163 96 0 88.837 0 80V48c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035A15.999 15.999 0 0 1 204.226 32H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 256H272z"
    +      }
    +    }
    +  },
    +  "subway": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "machine",
    +        "railway",
    +        "train",
    +        "transportation",
    +        "vehicle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f239",
    +    "label": "Subway",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"
    +      }
    +    }
    +  },
    +  "suitcase": {
    +    "changes": [
    +      "3",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "baggage",
    +        "luggage",
    +        "move",
    +        "suitcase",
    +        "travel",
    +        "trip"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0f2",
    +    "label": "Suitcase",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821459,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"
    +      }
    +    }
    +  },
    +  "suitcase-rolling": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5c1",
    +    "label": "Suitcase Rolling",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111702,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"
    +      }
    +    }
    +  },
    +  "sun": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "brighten",
    +        "contrast",
    +        "day",
    +        "lighter",
    +        "weather"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f185",
    +    "label": "Sun",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502810244000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M274.835 12.646l25.516 62.393c4.213 10.301 16.671 14.349 26.134 8.492l57.316-35.479c15.49-9.588 34.808 4.447 30.475 22.142l-16.03 65.475c-2.647 10.81 5.053 21.408 16.152 22.231l67.224 4.987c18.167 1.348 25.546 24.057 11.641 35.826L441.81 242.26c-8.495 7.19-8.495 20.289 0 27.479l51.454 43.548c13.906 11.769 6.527 34.478-11.641 35.826l-67.224 4.987c-11.099.823-18.799 11.421-16.152 22.231l16.03 65.475c4.332 17.695-14.986 31.73-30.475 22.142l-57.316-35.479c-9.463-5.858-21.922-1.81-26.134 8.492l-25.516 62.393c-6.896 16.862-30.774 16.862-37.67 0l-25.516-62.393c-4.213-10.301-16.671-14.349-26.134-8.492l-57.317 35.479c-15.49 9.588-34.808-4.447-30.475-22.142l16.03-65.475c2.647-10.81-5.053-21.408-16.152-22.231l-67.224-4.987c-18.167-1.348-25.546-24.057-11.641-35.826L70.19 269.74c8.495-7.19 8.495-20.289 0-27.479l-51.454-43.548c-13.906-11.769-6.527-34.478 11.641-35.826l67.224-4.987c11.099-.823 18.799-11.421 16.152-22.231l-16.03-65.475c-4.332-17.695 14.986-31.73 30.475-22.142l57.317 35.479c9.463 5.858 21.921 1.81 26.134-8.492l25.516-62.393c6.896-16.861 30.774-16.861 37.67 0zM392 256c0-74.991-61.01-136-136-136-74.991 0-136 61.009-136 136s61.009 136 136 136c74.99 0 136-61.009 136-136zm-32 0c0 57.346-46.654 104-104 104s-104-46.654-104-104 46.654-104 104-104 104 46.654 104 104z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M274.835 12.646l25.516 62.393c4.213 10.301 16.671 14.349 26.134 8.492l57.316-35.479c15.49-9.588 34.808 4.447 30.475 22.142l-16.03 65.475c-2.647 10.81 5.053 21.408 16.152 22.231l67.224 4.987c18.167 1.348 25.546 24.057 11.641 35.826L441.81 242.26c-8.495 7.19-8.495 20.289 0 27.479l51.454 43.548c13.906 11.769 6.527 34.478-11.641 35.826l-67.224 4.987c-11.099.823-18.799 11.421-16.152 22.231l16.03 65.475c4.332 17.695-14.986 31.73-30.475 22.142l-57.316-35.479c-9.463-5.858-21.922-1.81-26.134 8.492l-25.516 62.393c-6.896 16.862-30.774 16.862-37.67 0l-25.516-62.393c-4.213-10.301-16.671-14.349-26.134-8.492l-57.317 35.479c-15.49 9.588-34.808-4.447-30.475-22.142l16.03-65.475c2.647-10.81-5.053-21.408-16.152-22.231l-67.224-4.987c-18.167-1.348-25.546-24.057-11.641-35.826L70.19 269.74c8.495-7.19 8.495-20.289 0-27.479l-51.454-43.548c-13.906-11.769-6.527-34.478 11.641-35.826l67.224-4.987c11.099-.823 18.799-11.421 16.152-22.231l-16.03-65.475c-4.332-17.695 14.986-31.73 30.475-22.142l57.317 35.479c9.463 5.858 21.921 1.81 26.134-8.492l25.516-62.393c6.896-16.861 30.774-16.861 37.67 0zM392 256c0-74.991-61.01-136-136-136-74.991 0-136 61.009-136 136s61.009 136 136 136c74.99 0 136-61.009 136-136zm-32 0c0 57.346-46.654 104-104 104s-104-46.654-104-104 46.654-104 104-104 104 46.654 104 104z"
    +      },
    +      "regular": {
    +        "last_modified": 1502810244000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M220.116 487.936l-20.213-49.425a3.992 3.992 0 0 0-5.808-1.886l-45.404 28.104c-29.466 18.24-66.295-8.519-58.054-42.179l12.699-51.865a3.993 3.993 0 0 0-3.59-4.941l-53.251-3.951c-34.554-2.562-48.632-45.855-22.174-68.247L65.08 259.05a3.992 3.992 0 0 0 0-6.106l-40.76-34.497c-26.45-22.384-12.39-65.682 22.174-68.246l53.251-3.951a3.993 3.993 0 0 0 3.59-4.941L90.637 89.443c-8.239-33.656 28.581-60.42 58.054-42.179l45.403 28.104a3.993 3.993 0 0 0 5.808-1.887l20.213-49.425c13.116-32.071 58.638-32.081 71.758 0l20.212 49.424a3.994 3.994 0 0 0 5.809 1.887l45.403-28.104c29.464-18.236 66.297 8.513 58.054 42.179l-12.699 51.865a3.995 3.995 0 0 0 3.59 4.941l53.251 3.951c34.553 2.563 48.633 45.854 22.175 68.246l-40.76 34.497a3.993 3.993 0 0 0 0 6.107l40.76 34.496c26.511 22.441 12.322 65.689-22.175 68.247l-53.251 3.951a3.993 3.993 0 0 0-3.589 4.942l12.698 51.864c8.241 33.658-28.583 60.421-58.054 42.18l-45.403-28.104a3.994 3.994 0 0 0-5.809 1.887l-20.212 49.424c-13.159 32.178-58.675 31.993-71.757 0zm16.814-64.568l19.064 46.616 19.064-46.615c10.308-25.2 40.778-35.066 63.892-20.759l42.822 26.507-11.976-48.919c-6.475-26.444 12.38-52.339 39.487-54.349l50.226-3.726-38.444-32.536c-20.782-17.591-20.747-49.621.001-67.18l38.442-32.536-50.225-3.727c-27.151-2.015-45.95-27.948-39.488-54.349l11.978-48.919-42.823 26.507c-23.151 14.327-53.603 4.4-63.892-20.76l-19.064-46.615-19.064 46.617c-10.305 25.198-40.778 35.066-63.891 20.76l-42.823-26.508 11.977 48.918c6.474 26.446-12.381 52.338-39.488 54.35l-50.224 3.726 38.443 32.537c20.782 17.588 20.747 49.619 0 67.178L52.48 322.123l50.226 3.726c27.151 2.014 45.95 27.947 39.487 54.349l-11.977 48.919 42.823-26.507c23.188-14.355 53.622-4.352 63.891 20.758zM256 384c-70.58 0-128-57.421-128-128 0-70.58 57.42-128 128-128 70.579 0 128 57.42 128 128 0 70.579-57.421 128-128 128zm0-208c-44.112 0-80 35.888-80 80s35.888 80 80 80 80-35.888 80-80-35.888-80-80-80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M220.116 487.936l-20.213-49.425a3.992 3.992 0 0 0-5.808-1.886l-45.404 28.104c-29.466 18.24-66.295-8.519-58.054-42.179l12.699-51.865a3.993 3.993 0 0 0-3.59-4.941l-53.251-3.951c-34.554-2.562-48.632-45.855-22.174-68.247L65.08 259.05a3.992 3.992 0 0 0 0-6.106l-40.76-34.497c-26.45-22.384-12.39-65.682 22.174-68.246l53.251-3.951a3.993 3.993 0 0 0 3.59-4.941L90.637 89.443c-8.239-33.656 28.581-60.42 58.054-42.179l45.403 28.104a3.993 3.993 0 0 0 5.808-1.887l20.213-49.425c13.116-32.071 58.638-32.081 71.758 0l20.212 49.424a3.994 3.994 0 0 0 5.809 1.887l45.403-28.104c29.464-18.236 66.297 8.513 58.054 42.179l-12.699 51.865a3.995 3.995 0 0 0 3.59 4.941l53.251 3.951c34.553 2.563 48.633 45.854 22.175 68.246l-40.76 34.497a3.993 3.993 0 0 0 0 6.107l40.76 34.496c26.511 22.441 12.322 65.689-22.175 68.247l-53.251 3.951a3.993 3.993 0 0 0-3.589 4.942l12.698 51.864c8.241 33.658-28.583 60.421-58.054 42.18l-45.403-28.104a3.994 3.994 0 0 0-5.809 1.887l-20.212 49.424c-13.159 32.178-58.675 31.993-71.757 0zm16.814-64.568l19.064 46.616 19.064-46.615c10.308-25.2 40.778-35.066 63.892-20.759l42.822 26.507-11.976-48.919c-6.475-26.444 12.38-52.339 39.487-54.349l50.226-3.726-38.444-32.536c-20.782-17.591-20.747-49.621.001-67.18l38.442-32.536-50.225-3.727c-27.151-2.015-45.95-27.948-39.488-54.349l11.978-48.919-42.823 26.507c-23.151 14.327-53.603 4.4-63.892-20.76l-19.064-46.615-19.064 46.617c-10.305 25.198-40.778 35.066-63.891 20.76l-42.823-26.508 11.977 48.918c6.474 26.446-12.381 52.338-39.488 54.35l-50.224 3.726 38.443 32.537c20.782 17.588 20.747 49.619 0 67.178L52.48 322.123l50.226 3.726c27.151 2.014 45.95 27.947 39.487 54.349l-11.977 48.919 42.823-26.507c23.188-14.355 53.622-4.352 63.891 20.758zM256 384c-70.58 0-128-57.421-128-128 0-70.58 57.42-128 128-128 70.579 0 128 57.42 128 128 0 70.579-57.421 128-128 128zm0-208c-44.112 0-80 35.888-80 80s35.888 80 80 80 80-35.888 80-80-35.888-80-80-80z"
    +      }
    +    }
    +  },
    +  "superpowers": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2dd",
    +    "label": "Superpowers",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"
    +      }
    +    }
    +  },
    +  "superscript": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "exponential"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f12b",
    +    "label": "superscript",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M395.198 256c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 256H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035a16 16 0 0 1 13.598-7.567H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 416H272z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M395.198 256c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 256H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035a16 16 0 0 1 13.598-7.567H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 416H272z"
    +      }
    +    }
    +  },
    +  "supple": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3f9",
    +    "label": "Supple",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1502479343000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"
    +      }
    +    }
    +  },
    +  "surprise": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "shocked"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f5c2",
    +    "label": "Hushed Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111703,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111638,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"
    +      }
    +    }
    +  },
    +  "swatchbook": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5c3",
    +    "label": "Swatchbook",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111703,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 511 512\"><path d=\"M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "511",
    +          "512"
    +        ],
    +        "width": 511,
    +        "height": 512,
    +        "path": "M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z"
    +      }
    +    }
    +  },
    +  "swimmer": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "athlete",
    +        "head",
    +        "man",
    +        "person",
    +        "water"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5c4",
    +    "label": "Swimmer",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111704,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"
    +      }
    +    }
    +  },
    +  "swimming-pool": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "ladder",
    +        "recreation",
    +        "water"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5c5",
    +    "label": "Swimming Pool",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111705,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"
    +      }
    +    }
    +  },
    +  "synagogue": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "building",
    +        "jewish",
    +        "judaism",
    +        "star of david",
    +        "temple"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f69b",
    +    "label": "Synagogue",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320899,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"
    +      }
    +    }
    +  },
    +  "sync": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "exchange",
    +        "refresh",
    +        "reload",
    +        "rotate",
    +        "swap"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f021",
    +    "label": "Sync",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512.333 512\"><path d=\"M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512.333",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z"
    +      }
    +    }
    +  },
    +  "sync-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "refresh",
    +        "reload",
    +        "rotate"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2f1",
    +    "label": "Alternate Sync",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"
    +      }
    +    }
    +  },
    +  "syringe": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "immunizations",
    +        "needle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f48e",
    +    "label": "Syringe",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821459,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"
    +      }
    +    }
    +  },
    +  "table": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "data",
    +        "excel",
    +        "spreadsheet"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0ce",
    +    "label": "table",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"
    +      }
    +    }
    +  },
    +  "table-tennis": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f45d",
    +    "label": "Table Tennis",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527998,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"
    +      }
    +    }
    +  },
    +  "tablet": {
    +    "changes": [
    +      "3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "apple",
    +        "device",
    +        "ipad",
    +        "kindle",
    +        "screen"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f10a",
    +    "label": "tablet",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"
    +      }
    +    }
    +  },
    +  "tablet-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "apple",
    +        "device",
    +        "ipad",
    +        "kindle",
    +        "screen"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3fa",
    +    "label": "Alternate Tablet",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"
    +      }
    +    }
    +  },
    +  "tablets": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "drugs",
    +        "medicine"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f490",
    +    "label": "Tablets",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821460,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"
    +      }
    +    }
    +  },
    +  "tachometer-alt": {
    +    "changes": [
    +      "5.0.0",
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "dashboard",
    +        "tachometer"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3fd",
    +    "label": "Alternate Tachometer",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831546,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "tag": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "label"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f02b",
    +    "label": "tag",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"
    +      }
    +    }
    +  },
    +  "tags": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "labels"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f02c",
    +    "label": "tags",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"
    +      }
    +    }
    +  },
    +  "tape": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4db",
    +    "label": "Tape",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821460,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"
    +      }
    +    }
    +  },
    +  "tasks": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "downloading",
    +        "downloads",
    +        "loading",
    +        "progress",
    +        "settings"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0ae",
    +    "label": "Tasks",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z"
    +      }
    +    }
    +  },
    +  "taxi": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cab",
    +        "cabbie",
    +        "car",
    +        "car service",
    +        "lyft",
    +        "machine",
    +        "transportation",
    +        "uber",
    +        "vehicle"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1ba",
    +    "label": "Taxi",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111705,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "teamspeak": {
    +    "changes": [
    +      "5.0.11",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f4f9",
    +    "label": "TeamSpeak",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529520111565,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 511.8 512\"><path d=\"M.82 237.82c2.36-15.52 10.69-27.04 24.88-34.03 3.5-1.85 5.65-3.5 6.37-7.81 6.17-33.41 19.53-63.94 39.37-91.59 2.36-3.19 4.01-5.35 1.03-9.35-3.7-5.35-1.03-10.18 2.98-14.49 28.06-31.87 61.88-55.1 101.98-67.44 95.81-29.4 180.1-9.35 252.37 60.45 6.68 6.37 15.52 12.85 6.99 24.36-1.34 1.85 1.03 3.5 2.16 5.04 20.66 28.06 34.23 59.42 40.4 93.65.82 3.7 2.98 5.04 5.86 6.37 17.37 8.84 25.7 23.34 26.01 42.25 0 17.17 1.85 34.54-1.03 51.71-4.01 24.67-29.19 41.74-53.25 36.7-7.2-1.64-9.35-7.2-9.35-14.19 0-28.06.82-56.44 0-84.6-1.85-75.76-36.18-132.81-102.28-169.41C234.28 4.98 92.11 72.42 67.54 196.91c-6.06 30.42-1.74 48.27-3.7 125.82-.31 7.2-4.32 11.2-12.03 11.51C20.97 335.58 0 316.05 0 285.21v-20.87m221.74 106.81c11.82-4.32 20.05-11.82 22.51-24.36 2.36-12.34-12.03-30.02-32.38-48.73-20.87-19.22-48.22-39.06-63.43-46.57-21.69-12.03-41.74-1.85-46.26 22.72-5.04 26.21 0 51.4 14.49 73.91 10.18 15.52 25.39 22.72 43.38 24.05 11.62.62 52.54 2.16 61.69-1.02m129.83 5.55c36.5 2.81 59.33-28.55 58.39-60.45-2.14-45.17-66.17-16.48-87.79-8.02-73.16 28.14-45.05 54.92-22.2 60.75m149.26-1.33c-2.98-2.36-7.2-1.03-8.33 2.36-8.02 25.39-44.72 112.46-172.08 121.51-149.67 10.49 80.29 43.59 145.36-6.37 22.72-17.37 47.6-35.05 46.57-85.43-.32-10.07-4.84-26.72-11.52-32.07\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "511.8",
    +          "512"
    +        ],
    +        "width": 511,
    +        "height": 512,
    +        "path": "M.82 237.82c2.36-15.52 10.69-27.04 24.88-34.03 3.5-1.85 5.65-3.5 6.37-7.81 6.17-33.41 19.53-63.94 39.37-91.59 2.36-3.19 4.01-5.35 1.03-9.35-3.7-5.35-1.03-10.18 2.98-14.49 28.06-31.87 61.88-55.1 101.98-67.44 95.81-29.4 180.1-9.35 252.37 60.45 6.68 6.37 15.52 12.85 6.99 24.36-1.34 1.85 1.03 3.5 2.16 5.04 20.66 28.06 34.23 59.42 40.4 93.65.82 3.7 2.98 5.04 5.86 6.37 17.37 8.84 25.7 23.34 26.01 42.25 0 17.17 1.85 34.54-1.03 51.71-4.01 24.67-29.19 41.74-53.25 36.7-7.2-1.64-9.35-7.2-9.35-14.19 0-28.06.82-56.44 0-84.6-1.85-75.76-36.18-132.81-102.28-169.41C234.28 4.98 92.11 72.42 67.54 196.91c-6.06 30.42-1.74 48.27-3.7 125.82-.31 7.2-4.32 11.2-12.03 11.51C20.97 335.58 0 316.05 0 285.21v-20.87m221.74 106.81c11.82-4.32 20.05-11.82 22.51-24.36 2.36-12.34-12.03-30.02-32.38-48.73-20.87-19.22-48.22-39.06-63.43-46.57-21.69-12.03-41.74-1.85-46.26 22.72-5.04 26.21 0 51.4 14.49 73.91 10.18 15.52 25.39 22.72 43.38 24.05 11.62.62 52.54 2.16 61.69-1.02m129.83 5.55c36.5 2.81 59.33-28.55 58.39-60.45-2.14-45.17-66.17-16.48-87.79-8.02-73.16 28.14-45.05 54.92-22.2 60.75m149.26-1.33c-2.98-2.36-7.2-1.03-8.33 2.36-8.02 25.39-44.72 112.46-172.08 121.51-149.67 10.49 80.29 43.59 145.36-6.37 22.72-17.37 47.6-35.05 46.57-85.43-.32-10.07-4.84-26.72-11.52-32.07"
    +      }
    +    }
    +  },
    +  "teeth": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f62e",
    +    "label": "Teeth",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831549,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"
    +      }
    +    }
    +  },
    +  "teeth-open": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f62f",
    +    "label": "Teeth Open",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831549,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"
    +      }
    +    }
    +  },
    +  "telegram": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2c6",
    +    "label": "Telegram",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"
    +      }
    +    }
    +  },
    +  "telegram-plane": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f3fe",
    +    "label": "Telegram Plane",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"
    +      }
    +    }
    +  },
    +  "tencent-weibo": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1d5",
    +    "label": "Tencent Weibo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z"
    +      }
    +    }
    +  },
    +  "terminal": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "code",
    +        "command",
    +        "console",
    +        "prompt"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f120",
    +    "label": "Terminal",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"
    +      }
    +    }
    +  },
    +  "text-height": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f034",
    +    "label": "text-height",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M16 32h288c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96h-54.761v320H232c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H88c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm475.308 4.685l79.995 80.001C581.309 126.693 574.297 144 559.99 144H512v224h48c15.639 0 20.635 17.991 11.313 27.314l-79.995 80.001c-6.247 6.247-16.381 6.245-22.626 0l-79.995-80.001C378.691 385.307 385.703 368 400.01 368H448V144h-48c-15.639 0-20.635-17.991-11.313-27.314l79.995-80.001c6.247-6.248 16.381-6.245 22.626 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M16 32h288c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96h-54.761v320H232c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H88c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm475.308 4.685l79.995 80.001C581.309 126.693 574.297 144 559.99 144H512v224h48c15.639 0 20.635 17.991 11.313 27.314l-79.995 80.001c-6.247 6.247-16.381 6.245-22.626 0l-79.995-80.001C378.691 385.307 385.703 368 400.01 368H448V144h-48c-15.639 0-20.635-17.991-11.313-27.314l79.995-80.001c6.247-6.248 16.381-6.245 22.626 0z"
    +      }
    +    }
    +  },
    +  "text-width": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f035",
    +    "label": "text-width",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M16 32h416c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96H261.743v128H296c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H152c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm427.315 340.682l-80.001-79.995C353.991 283.365 336 288.362 336 304v48H112v-47.99c0-14.307-17.307-21.319-27.314-11.313L4.685 372.692c-6.245 6.245-6.247 16.379 0 22.626l80.001 79.995C94.009 484.635 112 479.638 112 464v-48h224v47.99c0 14.307 17.307 21.319 27.314 11.313l80.001-79.995c6.245-6.245 6.248-16.379 0-22.626z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M16 32h416c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96H261.743v128H296c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H152c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm427.315 340.682l-80.001-79.995C353.991 283.365 336 288.362 336 304v48H112v-47.99c0-14.307-17.307-21.319-27.314-11.313L4.685 372.692c-6.245 6.245-6.247 16.379 0 22.626l80.001 79.995C94.009 484.635 112 479.638 112 464v-48h224v47.99c0 14.307 17.307 21.319 27.314 11.313l80.001-79.995c6.245-6.245 6.248-16.379 0-22.626z"
    +      }
    +    }
    +  },
    +  "th": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "blocks",
    +        "boxes",
    +        "grid",
    +        "squares"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f00a",
    +    "label": "th",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"
    +      }
    +    }
    +  },
    +  "th-large": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "blocks",
    +        "boxes",
    +        "grid",
    +        "squares"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f009",
    +    "label": "th-large",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"
    +      }
    +    }
    +  },
    +  "th-list": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "checklist",
    +        "completed",
    +        "done",
    +        "finished",
    +        "ol",
    +        "todo",
    +        "ul"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f00b",
    +    "label": "th-list",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"
    +      }
    +    }
    +  },
    +  "the-red-yeti": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f69d",
    +    "label": "The Red Yeti",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1535388320781,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 505.07 512\"><path d=\"M484.41 241.74l20.66 7.13c-9.56-23.91-23.93-36.96-31.72-44.76l7.13-18.2c.25 0 12.28-27.79-2.46-30.74-.63-11.35-6.59-27.05-18.44-27.05-7.62-10.57-17.71-12.3-30.74-5.9-8.85 4.18-17.71 10.08-25.33 16.48-5.3-6.44-2.95.38-2.95-29.76-37.08-24.28-45.4-11.73-74.76 2.95l.49.49c-21.15-7.62-44.02-12.05-68.36-13.28-5.55-8.71-18.6-19.1-25.08-25.08l24.84 7.13c-5.49-5.49-26.78-12.91-34.18-15.25 18.2-4.11 29.78-20.77 42.54-32.95-34.92-10.08-67.87-5.9-97.88 11.8L179.97.48 178.24 0c-31.6 24.16-32.99 41.9-33.69 45.49-.91-2.39-6.32-19.61-15.25-27.05-3.44 8.85-3.44 17.21-.49 25.33 2.95 8.36 5.9 14.76 8.36 18.94-16.04-3.3-28.35-4.9-49.18 0H84.3l32.95 14.26c-20.66 19.43-35.9 41.81-46.72 67.38l-1.72 8.36 1.72 1.72 7.62-4.67c-3.33 11.64-5.27 19.39-6.64 25.82-11.31 12.79-20.41 26.07-27.79 40.33-14.97 1-31.82 10.78-40.33 14.26l2.95 3.44 28.77.98c-.49.98-.74 2.21-1.23 3.2-7.29 6.38-39.78 37.65-32.95 80.66l20.17-22.38c.49 1.72.74 3.44 1.23 5.16 0 25.53.37 89.64 64.92 150.5 43.78 40.1 96.16 60.27 157.64 60.27 121.73 0 223.05-87.29 223.05-211.49 6.8-9.72-1.24 3.03 16.72-25.08l13.03 14.26 2.46-.49c-1.72-11.31-4.67-22.38-8.85-34.18-2.22-6.4-4.68-10.33-6.89-13.28zm-15.49-41.32l-14.26-11.8 18.2-1.23-3.94 13.03zm-74.76-89.27l-.49 21.89c5.52 18.13 16.88 17.21 22.38 17.21l-3.44-4.67 22.38-5.41c-10.08.49-18.94.49-27.05 0 12.81-2.13 33.32-29.03 43.04-11.31 3.44 7.62 6.39 17.21 9.34 27.79l1.72-5.9c-1.23-4.18-1.72-9.34-1.72-15.25 5.41.49 8.85 3.44 9.34 10.08.49 6.39 1.72 14.76 3.44 25.33l4.67-11.31c4.59 0 4.47-3.61-2.46 20.66-20.89-8.7-35.09-8.36-46.48-8.36l18.2-15.98c-25.28 8.15-33.03 10.8-54.84 20.9-1.08-5.41-4.98-13.5-15.98-19.92-3.18 3.82-2.76.9-.74 14.76h-2.46c-1.23-8.36-4.18-15.98-8.36-23.12l4.18-3.44c8.36-7.13 11.8-14.26 10.57-21.89-.49-6.39-5.41-13.53-13.53-20.66 5.66-3.2 15.25-.25 28.29 8.6zm-39.59-10.08c2.69 1.92 11.4 5.38 18.94 17.21 4.2 8.4 3.98 9.81 3.44 11.07-.48 2.41-.46 4.33-2.95 7.13-1.72 2.46-5.41 4.67-11.8 7.62-7.62-13.03-16.48-23.61-27.79-31.23l20.16-11.8zM87.25 143.12l1.23-1.72c1.23-2.95 4.18-7.62 9.34-15.25l2.46-3.44-13.03 12.3 5.41-4.67-10.08 9.34-4.18 1.23c12.3-24.1 23.12-41.31 32.46-50.17 9.34-9.34 15.98-15.98 20.17-19.43l-6.39 1.23c-11.31-4.18-19.43-7.13-24.84-8.36 2.46-.49 3.69-.49 3.2-.49 10.33 0 17.46.49 20.9 1.23 5.41 1.72 10.57 2.46 15.98 2.46l.49-1.72-8.36-35.9 13.53 29.02c1.72-2.46 4.18-7.13 5.9-14.26 1.72-6.39 5.41-13.03 10.08-19.43 4.67-6.39 7.62-10.57 9.34-11.31-2.95 8.85-4.67 17.21-6.39 25.33l-1.72 7.13-.49 4.67 2.46 2.46c21.89-13.53 45.49-19.43 71.32-18.94l21.15.49c-11.8 13.53-27.79 21.89-48.45 24.84-8.61 1.48-16.23 2.46-23.36 2.95l-.25-.49-2.46-1.23c-5.16-.98-9.84-.25-14.02 1.97-2.46-.25-4.92-.49-7.13-.74l-2.46 1.72.49 1.23c1.97.25 3.93.49 6.15.74l-1.97 3.44 3.44-.49-10.57 11.31c-4.18 2.95-5.41 6.39-4.18 9.34l5.41-3.44h1.23c6.39-8.36 15.25-13.53 25.33-15.25v-2.95c6.39.49 13.03.98 19.43 1.23 6.39 0 8.36.49 5.41 1.23 7.62 4.18 14.26 8.85 20.66 13.53 13.53 10.08 23.61 21.89 30 35.41 8.85 18.2 13.53 37.13 13.53 56.56 0 10.08-1.23 19.43-2.95 28.28-2.35 10.79-7.8 29.62-15.98 45.99l2.46.49c18.23-19.67 41.9-15.98 49.18-15.98l-6.39 5.9 22.38 17.71-1.72 30.74c-5.41-12.3-16.48-21.15-32.95-27.79 16.48 14.76 23.61 21.15 21.89 20.17-4.81-2.81-3.53-1.87-10.82-3.69 4.12 4.12 17.45 18.79 18.2 20.66l.25.25-.25.25c0 1.76 1.56-1.18-14.02 22.87-75.15-15.31-106.26-42.74-141.16-63.2l11.8 1.23c-11.75-18.53-15.63-17.72-38.36-26.07l10.57-8.36c-8.85-2.95-18.2-2.95-28.28.49l7.62-10.57-1.23-1.72c-14.89 4.34-19.85 9.17-22.62 11.31-1.14-5.46-2.77-12.44-12.3-28.77l-1.23 27.05-13.53-5.41c1.47-25.11 5.4-50.44 13.27-74.54zm276.41 330.03c-49.92 24.96-56.13 22.41-59.02 23.85-29.76-11.8-50.9-31.72-63.45-58.77l30 16.48c-9.77-9.31-18.34-16.54-38.36-44.27l11.8 23.12-17.71-7.62c14.2 21.08 23.47 51.74 66.64 73.53-120.77 24.15-199.03-72.11-200.91-74.27 11.31 9.34 23.12 17.71 35.41 24.84 3.44 1.72 7.13 2.46 10.08 1.23l-15.98-20.66c9.23 4.19 9.49 4.5 69.1 29.02-42.54-20.66-73.78-40.82-93.2-60.25-.49 6.39-1.23 10.08-1.23 10.08 8.85 7.62 15.98 16.48 20.66 26.56-39.05-18.85-57.59-47.61-71.32-82.63 49.89 55.1 118.85 37.49 120.5 37.13 34.79 16.43 69.87 23.61 113.86 10.57 3.32 0 20.3 16.98 25.33 39.1l4.18-2.95-2.46-23.61c8.95 8.95 24.9 22.56 34.43 13.03-15.58-5.32-23.52-9.49-29.51-31.72 4.58 4.2 7.57 9.05 27.79 15l1.23-1.23-10.57-14.26c11.65-4.85-3.54 1.01 31.97-10.82 4.34 34.23 9.05 49.15.74 89.52zM479 258.71l-2.46.49 2.95 9.34c-3.55 5.87-23.73 44.26-71.56 79.68-39.54 29.76-76.58 39.13-80.91 40.33l-7.62-7.13-1.23 2.95 14.26 15.98-7.13-4.67 3.44 4.18h-1.23l-21.89-13.53 9.34 26.56-18.94-27.79-1.23 2.46 7.62 29.02c-6.11-8.24-21.03-32.61-56.81-39.59l32.46 21.15c-31.97 4.67-63.2 2.46-93.2-6.39-4.18-1.23-8.85-2.46-13.53-4.18l1.23-2.95-44.76-22.38 26.07 22.38c-57.66 9.08-112.96-25.41-126.4-83.37l-2.46-16.48-22.35 22.38c19.47-57.51 25.61-57.89 51.4-70.09-9.09-5.33-1.55-3.26-38.36-9.34 15.78-5.79 33.05-15.44 73.04 5.16 2.95-1.48 2.14-1.1 3.69-1.72.64-3.18.41-.82.98-11.8 3.89 10.01 3.63 8.67 2.95 9.34l1.72.49c12.69-6.49 8.92-4.52 16.97-8.85l-5.41 13.53 22.38-5.9-8.36 8.36 2.46 2.46c4.5-1.8 30.35 3.42 40.82 15.98l-23.61-2.46c39.39 22.98 51.46 53.97 55.82 69.59l1.72-1.23c-2.84-22.28-12.37-33.88-15.98-40.08 4.22 4.99 39.2 34.56 110.42 45.99-11.31-.49-23.12 5.41-34.92 18.94l46.72-20.17-9.34 21.89c7.62-10.08 14.76-23.61 21.15-39.59v-.49l1.23-2.95-1.23 15.98c13.53-41.81 25.33-78.45 35.41-109.68l13.53-27.79v-1.97l-5.41-4.18h10.08l5.9 4.18 2.46-1.23-3.44-15.98 12.3 18.94 41.81-20.17-14.76 13.03.49 2.95 17.71-.49c11.31.49 21.89 1.72 32.95 4.18l-23.61 2.46-1.23 2.95 26.56 23.12c10.08 10.08 18.94 20.66 27.05 31.97-11.24-3.29-10.28-3.44-21.15-3.44l12.3 32.46-8.87-12.79zm-277.89-89.03c-34.85 14.42-34.73 13.98-36.15 14.26-20.83 4.73-18.97-24.44-18.94-24.84l5.9-1.23-.49-2.46c-20.17-2.65-31.03 4.17-32.46 4.92.49.49 2.95 3.44 5.9 9.34 4.18-6.39 8.85-10.08 15.25-10.57-1.72 11.31-1.23 22.38 1.72 33.69.07.51 2.57 17.44 27.54 24.1 11.31 2.95 27.05 1.23 48.94-5.41l-9.34.49c-4.18-14.76-6.39-24.84-5.9-29.51 11.31-8.85 21.89-11.31 30.74-7.62h2.46l-11.8-7.62-7.13.49c-5.9 1.23-12.3 4.18-19.43 8.36l3.19-6.39zm11.07-86.81l-2.46.49.49 2.95c8.36-.49 17.21 1.23 26.07 5.9-2.5-5.54-9.97-14.26-28.28-14.26l.49 2.46 3.69 2.46zm-67.14 56.07c-4.04-6.35-3.09-5.05-4.67-6.64 21.69 16.76 16.48 21.41 46.48 23.61l-2.95-4.67c8.85-7.62 13.53-17.21 14.76-28.28 1.72-15.98-1.23-29.51-8.85-41.31l13.03-7.62c0-.49 0-1.23-.49-1.72-4.67-1.72-9.34-1.23-13.53 1.72-12.68 6.67-27.99 20.94-29.02 22.38-1.72 1.72-3.44 5.9-5.41 13.53-1.72 7.13-2.95 14.76-2.95 23.61-4.68-7.96-10.52-6.4-19.92-5.9l7.13 7.62c-16.47 0-23.32 15.43-23.61 15.98 6.81-.01 4.6-7.6 30-12.31zm14.02-25.33c1.23-7.62 3.44-13.03 6.39-17.21 5.41-6.39 10.57-10.08 15.98-11.8 4.18-1.72 7.13 1.23 10.08 9.34 2.46 7.62 3.44 16.48 2.95 25.33-.49 9.34-3.44 17.21-8.36 23.12-2.95 3.44-5.41 5.9-6.39 7.62-4.67.49-8.36 0-11.31-.49l-7.13-3.44-5.41-6.39c.99-10.09 1.48-18.94 3.2-26.08zm62.71-21.39c-6.39-3.44-10.57 2.95-12.3 18.94s2.46 29.51 11.8 39.59c9.34 10.08 18.2 10.57 26.07 2.95 7.87-7.62 3.44-23.61-11.31-47.71-3.19-5.41-7.87-10.08-14.26-13.77zm-4.67 46.23c5.36 2.23 10.51 1.91 12.3-10.57v-4.67l-1.23.49c-4.28-3.05-2.55-4.49-1.72-6.15l.49-.49c-.88-1.23-5.02-8.11-12.54 4.67-.49-13.53.49-21.89 2.95-24.84 1.23-2.46 4.67-1.23 11.31 4.18 6.39 5.41 11.31 15.98 15.25 32.46 6.59 28.06-19.7 26.26-26.81 4.92zm-45.01-5.41c1.57.31 9.34-1.09 9.34-14.76h-.49c-5.44-1.09-2.24-5.47-.74-5.9-1.72-2.95-3.44-4.18-5.41-4.67-8.15 0-11.65 12.66-8.12 21.15 1.24 2.46 3.21 3.69 5.42 4.18zm45.99 61.48c1.72 10.57 4.67 17.71 8.85 21.89-9.26 6.61-27.54 13.85-46.48 15.98l.49 1.23c8.36 1.23 16.48.49 24.84-2.46l-7.13 13.03c4.18-1.72 10.08-7.13 17.71-14.76 11.93-5.51 12.72-5.07 20.17-15.98-12.73-6.58-15.76-13.83-18.45-18.93z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "505.07",
    +          "512"
    +        ],
    +        "width": 505,
    +        "height": 512,
    +        "path": "M484.41 241.74l20.66 7.13c-9.56-23.91-23.93-36.96-31.72-44.76l7.13-18.2c.25 0 12.28-27.79-2.46-30.74-.63-11.35-6.59-27.05-18.44-27.05-7.62-10.57-17.71-12.3-30.74-5.9-8.85 4.18-17.71 10.08-25.33 16.48-5.3-6.44-2.95.38-2.95-29.76-37.08-24.28-45.4-11.73-74.76 2.95l.49.49c-21.15-7.62-44.02-12.05-68.36-13.28-5.55-8.71-18.6-19.1-25.08-25.08l24.84 7.13c-5.49-5.49-26.78-12.91-34.18-15.25 18.2-4.11 29.78-20.77 42.54-32.95-34.92-10.08-67.87-5.9-97.88 11.8L179.97.48 178.24 0c-31.6 24.16-32.99 41.9-33.69 45.49-.91-2.39-6.32-19.61-15.25-27.05-3.44 8.85-3.44 17.21-.49 25.33 2.95 8.36 5.9 14.76 8.36 18.94-16.04-3.3-28.35-4.9-49.18 0H84.3l32.95 14.26c-20.66 19.43-35.9 41.81-46.72 67.38l-1.72 8.36 1.72 1.72 7.62-4.67c-3.33 11.64-5.27 19.39-6.64 25.82-11.31 12.79-20.41 26.07-27.79 40.33-14.97 1-31.82 10.78-40.33 14.26l2.95 3.44 28.77.98c-.49.98-.74 2.21-1.23 3.2-7.29 6.38-39.78 37.65-32.95 80.66l20.17-22.38c.49 1.72.74 3.44 1.23 5.16 0 25.53.37 89.64 64.92 150.5 43.78 40.1 96.16 60.27 157.64 60.27 121.73 0 223.05-87.29 223.05-211.49 6.8-9.72-1.24 3.03 16.72-25.08l13.03 14.26 2.46-.49c-1.72-11.31-4.67-22.38-8.85-34.18-2.22-6.4-4.68-10.33-6.89-13.28zm-15.49-41.32l-14.26-11.8 18.2-1.23-3.94 13.03zm-74.76-89.27l-.49 21.89c5.52 18.13 16.88 17.21 22.38 17.21l-3.44-4.67 22.38-5.41c-10.08.49-18.94.49-27.05 0 12.81-2.13 33.32-29.03 43.04-11.31 3.44 7.62 6.39 17.21 9.34 27.79l1.72-5.9c-1.23-4.18-1.72-9.34-1.72-15.25 5.41.49 8.85 3.44 9.34 10.08.49 6.39 1.72 14.76 3.44 25.33l4.67-11.31c4.59 0 4.47-3.61-2.46 20.66-20.89-8.7-35.09-8.36-46.48-8.36l18.2-15.98c-25.28 8.15-33.03 10.8-54.84 20.9-1.08-5.41-4.98-13.5-15.98-19.92-3.18 3.82-2.76.9-.74 14.76h-2.46c-1.23-8.36-4.18-15.98-8.36-23.12l4.18-3.44c8.36-7.13 11.8-14.26 10.57-21.89-.49-6.39-5.41-13.53-13.53-20.66 5.66-3.2 15.25-.25 28.29 8.6zm-39.59-10.08c2.69 1.92 11.4 5.38 18.94 17.21 4.2 8.4 3.98 9.81 3.44 11.07-.48 2.41-.46 4.33-2.95 7.13-1.72 2.46-5.41 4.67-11.8 7.62-7.62-13.03-16.48-23.61-27.79-31.23l20.16-11.8zM87.25 143.12l1.23-1.72c1.23-2.95 4.18-7.62 9.34-15.25l2.46-3.44-13.03 12.3 5.41-4.67-10.08 9.34-4.18 1.23c12.3-24.1 23.12-41.31 32.46-50.17 9.34-9.34 15.98-15.98 20.17-19.43l-6.39 1.23c-11.31-4.18-19.43-7.13-24.84-8.36 2.46-.49 3.69-.49 3.2-.49 10.33 0 17.46.49 20.9 1.23 5.41 1.72 10.57 2.46 15.98 2.46l.49-1.72-8.36-35.9 13.53 29.02c1.72-2.46 4.18-7.13 5.9-14.26 1.72-6.39 5.41-13.03 10.08-19.43 4.67-6.39 7.62-10.57 9.34-11.31-2.95 8.85-4.67 17.21-6.39 25.33l-1.72 7.13-.49 4.67 2.46 2.46c21.89-13.53 45.49-19.43 71.32-18.94l21.15.49c-11.8 13.53-27.79 21.89-48.45 24.84-8.61 1.48-16.23 2.46-23.36 2.95l-.25-.49-2.46-1.23c-5.16-.98-9.84-.25-14.02 1.97-2.46-.25-4.92-.49-7.13-.74l-2.46 1.72.49 1.23c1.97.25 3.93.49 6.15.74l-1.97 3.44 3.44-.49-10.57 11.31c-4.18 2.95-5.41 6.39-4.18 9.34l5.41-3.44h1.23c6.39-8.36 15.25-13.53 25.33-15.25v-2.95c6.39.49 13.03.98 19.43 1.23 6.39 0 8.36.49 5.41 1.23 7.62 4.18 14.26 8.85 20.66 13.53 13.53 10.08 23.61 21.89 30 35.41 8.85 18.2 13.53 37.13 13.53 56.56 0 10.08-1.23 19.43-2.95 28.28-2.35 10.79-7.8 29.62-15.98 45.99l2.46.49c18.23-19.67 41.9-15.98 49.18-15.98l-6.39 5.9 22.38 17.71-1.72 30.74c-5.41-12.3-16.48-21.15-32.95-27.79 16.48 14.76 23.61 21.15 21.89 20.17-4.81-2.81-3.53-1.87-10.82-3.69 4.12 4.12 17.45 18.79 18.2 20.66l.25.25-.25.25c0 1.76 1.56-1.18-14.02 22.87-75.15-15.31-106.26-42.74-141.16-63.2l11.8 1.23c-11.75-18.53-15.63-17.72-38.36-26.07l10.57-8.36c-8.85-2.95-18.2-2.95-28.28.49l7.62-10.57-1.23-1.72c-14.89 4.34-19.85 9.17-22.62 11.31-1.14-5.46-2.77-12.44-12.3-28.77l-1.23 27.05-13.53-5.41c1.47-25.11 5.4-50.44 13.27-74.54zm276.41 330.03c-49.92 24.96-56.13 22.41-59.02 23.85-29.76-11.8-50.9-31.72-63.45-58.77l30 16.48c-9.77-9.31-18.34-16.54-38.36-44.27l11.8 23.12-17.71-7.62c14.2 21.08 23.47 51.74 66.64 73.53-120.77 24.15-199.03-72.11-200.91-74.27 11.31 9.34 23.12 17.71 35.41 24.84 3.44 1.72 7.13 2.46 10.08 1.23l-15.98-20.66c9.23 4.19 9.49 4.5 69.1 29.02-42.54-20.66-73.78-40.82-93.2-60.25-.49 6.39-1.23 10.08-1.23 10.08 8.85 7.62 15.98 16.48 20.66 26.56-39.05-18.85-57.59-47.61-71.32-82.63 49.89 55.1 118.85 37.49 120.5 37.13 34.79 16.43 69.87 23.61 113.86 10.57 3.32 0 20.3 16.98 25.33 39.1l4.18-2.95-2.46-23.61c8.95 8.95 24.9 22.56 34.43 13.03-15.58-5.32-23.52-9.49-29.51-31.72 4.58 4.2 7.57 9.05 27.79 15l1.23-1.23-10.57-14.26c11.65-4.85-3.54 1.01 31.97-10.82 4.34 34.23 9.05 49.15.74 89.52zM479 258.71l-2.46.49 2.95 9.34c-3.55 5.87-23.73 44.26-71.56 79.68-39.54 29.76-76.58 39.13-80.91 40.33l-7.62-7.13-1.23 2.95 14.26 15.98-7.13-4.67 3.44 4.18h-1.23l-21.89-13.53 9.34 26.56-18.94-27.79-1.23 2.46 7.62 29.02c-6.11-8.24-21.03-32.61-56.81-39.59l32.46 21.15c-31.97 4.67-63.2 2.46-93.2-6.39-4.18-1.23-8.85-2.46-13.53-4.18l1.23-2.95-44.76-22.38 26.07 22.38c-57.66 9.08-112.96-25.41-126.4-83.37l-2.46-16.48-22.35 22.38c19.47-57.51 25.61-57.89 51.4-70.09-9.09-5.33-1.55-3.26-38.36-9.34 15.78-5.79 33.05-15.44 73.04 5.16 2.95-1.48 2.14-1.1 3.69-1.72.64-3.18.41-.82.98-11.8 3.89 10.01 3.63 8.67 2.95 9.34l1.72.49c12.69-6.49 8.92-4.52 16.97-8.85l-5.41 13.53 22.38-5.9-8.36 8.36 2.46 2.46c4.5-1.8 30.35 3.42 40.82 15.98l-23.61-2.46c39.39 22.98 51.46 53.97 55.82 69.59l1.72-1.23c-2.84-22.28-12.37-33.88-15.98-40.08 4.22 4.99 39.2 34.56 110.42 45.99-11.31-.49-23.12 5.41-34.92 18.94l46.72-20.17-9.34 21.89c7.62-10.08 14.76-23.61 21.15-39.59v-.49l1.23-2.95-1.23 15.98c13.53-41.81 25.33-78.45 35.41-109.68l13.53-27.79v-1.97l-5.41-4.18h10.08l5.9 4.18 2.46-1.23-3.44-15.98 12.3 18.94 41.81-20.17-14.76 13.03.49 2.95 17.71-.49c11.31.49 21.89 1.72 32.95 4.18l-23.61 2.46-1.23 2.95 26.56 23.12c10.08 10.08 18.94 20.66 27.05 31.97-11.24-3.29-10.28-3.44-21.15-3.44l12.3 32.46-8.87-12.79zm-277.89-89.03c-34.85 14.42-34.73 13.98-36.15 14.26-20.83 4.73-18.97-24.44-18.94-24.84l5.9-1.23-.49-2.46c-20.17-2.65-31.03 4.17-32.46 4.92.49.49 2.95 3.44 5.9 9.34 4.18-6.39 8.85-10.08 15.25-10.57-1.72 11.31-1.23 22.38 1.72 33.69.07.51 2.57 17.44 27.54 24.1 11.31 2.95 27.05 1.23 48.94-5.41l-9.34.49c-4.18-14.76-6.39-24.84-5.9-29.51 11.31-8.85 21.89-11.31 30.74-7.62h2.46l-11.8-7.62-7.13.49c-5.9 1.23-12.3 4.18-19.43 8.36l3.19-6.39zm11.07-86.81l-2.46.49.49 2.95c8.36-.49 17.21 1.23 26.07 5.9-2.5-5.54-9.97-14.26-28.28-14.26l.49 2.46 3.69 2.46zm-67.14 56.07c-4.04-6.35-3.09-5.05-4.67-6.64 21.69 16.76 16.48 21.41 46.48 23.61l-2.95-4.67c8.85-7.62 13.53-17.21 14.76-28.28 1.72-15.98-1.23-29.51-8.85-41.31l13.03-7.62c0-.49 0-1.23-.49-1.72-4.67-1.72-9.34-1.23-13.53 1.72-12.68 6.67-27.99 20.94-29.02 22.38-1.72 1.72-3.44 5.9-5.41 13.53-1.72 7.13-2.95 14.76-2.95 23.61-4.68-7.96-10.52-6.4-19.92-5.9l7.13 7.62c-16.47 0-23.32 15.43-23.61 15.98 6.81-.01 4.6-7.6 30-12.31zm14.02-25.33c1.23-7.62 3.44-13.03 6.39-17.21 5.41-6.39 10.57-10.08 15.98-11.8 4.18-1.72 7.13 1.23 10.08 9.34 2.46 7.62 3.44 16.48 2.95 25.33-.49 9.34-3.44 17.21-8.36 23.12-2.95 3.44-5.41 5.9-6.39 7.62-4.67.49-8.36 0-11.31-.49l-7.13-3.44-5.41-6.39c.99-10.09 1.48-18.94 3.2-26.08zm62.71-21.39c-6.39-3.44-10.57 2.95-12.3 18.94s2.46 29.51 11.8 39.59c9.34 10.08 18.2 10.57 26.07 2.95 7.87-7.62 3.44-23.61-11.31-47.71-3.19-5.41-7.87-10.08-14.26-13.77zm-4.67 46.23c5.36 2.23 10.51 1.91 12.3-10.57v-4.67l-1.23.49c-4.28-3.05-2.55-4.49-1.72-6.15l.49-.49c-.88-1.23-5.02-8.11-12.54 4.67-.49-13.53.49-21.89 2.95-24.84 1.23-2.46 4.67-1.23 11.31 4.18 6.39 5.41 11.31 15.98 15.25 32.46 6.59 28.06-19.7 26.26-26.81 4.92zm-45.01-5.41c1.57.31 9.34-1.09 9.34-14.76h-.49c-5.44-1.09-2.24-5.47-.74-5.9-1.72-2.95-3.44-4.18-5.41-4.67-8.15 0-11.65 12.66-8.12 21.15 1.24 2.46 3.21 3.69 5.42 4.18zm45.99 61.48c1.72 10.57 4.67 17.71 8.85 21.89-9.26 6.61-27.54 13.85-46.48 15.98l.49 1.23c8.36 1.23 16.48.49 24.84-2.46l-7.13 13.03c4.18-1.72 10.08-7.13 17.71-14.76 11.93-5.51 12.72-5.07 20.17-15.98-12.73-6.58-15.76-13.83-18.45-18.93z"
    +      }
    +    }
    +  },
    +  "theater-masks": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f630",
    +    "label": "Theater Masks",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831549,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"
    +      }
    +    }
    +  },
    +  "themeco": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f5c6",
    +    "label": "Themeco",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529514897199,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 441.03 512\"><path d=\"M199.74 12.29c9.74-5.64 25.59-5.73 35.39-.21l188.13 105.95c9.81 5.52 17.76 19.14 17.76 30.38v213.87c0 11.26-7.93 24.89-17.71 30.46L235.09 499.88c-9.78 5.57-25.58 5.48-35.29-.21L17.58 392.95C7.87 387.26 0 373.52 0 362.27V148.41c0-11.26 7.9-24.96 17.63-30.59L199.74 12.29zM123.54 209c-15.69 0-31.39.14-47.08.14v99.87h18.83v-29.39h28.25c48.94 0 48.79-70.62 0-70.62zm137.96 98.73l-30.25-34.1c36.4-7.39 34.26-64.21-10.7-64.49-15.84 0-31.67-.14-47.51-.14v100.01h18.83v-33.38H210l29.1 33.38h22.4v-1.28zm-40.94-81.04c22.98 0 22.9 31.96 0 31.96h-28.68v-31.96h28.68zm-94.07-1.57c20.85 0 20.78 38.24 0 38.24H94.68v-38.23l31.81-.01zm189.65-17.97c-67.4 0-69.86 104.15 0 104.15 68.39-.01 68.33-104.15 0-104.15zm0 17.12c43.43 0 44.1 69.76 0 69.76-44.12 0-43.74-69.76 0-69.76z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "441.03",
    +          "512"
    +        ],
    +        "width": 441,
    +        "height": 512,
    +        "path": "M199.74 12.29c9.74-5.64 25.59-5.73 35.39-.21l188.13 105.95c9.81 5.52 17.76 19.14 17.76 30.38v213.87c0 11.26-7.93 24.89-17.71 30.46L235.09 499.88c-9.78 5.57-25.58 5.48-35.29-.21L17.58 392.95C7.87 387.26 0 373.52 0 362.27V148.41c0-11.26 7.9-24.96 17.63-30.59L199.74 12.29zM123.54 209c-15.69 0-31.39.14-47.08.14v99.87h18.83v-29.39h28.25c48.94 0 48.79-70.62 0-70.62zm137.96 98.73l-30.25-34.1c36.4-7.39 34.26-64.21-10.7-64.49-15.84 0-31.67-.14-47.51-.14v100.01h18.83v-33.38H210l29.1 33.38h22.4v-1.28zm-40.94-81.04c22.98 0 22.9 31.96 0 31.96h-28.68v-31.96h28.68zm-94.07-1.57c20.85 0 20.78 38.24 0 38.24H94.68v-38.23l31.81-.01zm189.65-17.97c-67.4 0-69.86 104.15 0 104.15 68.39-.01 68.33-104.15 0-104.15zm0 17.12c43.43 0 44.1 69.76 0 69.76-44.12 0-43.74-69.76 0-69.76z"
    +      }
    +    }
    +  },
    +  "themeisle": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2b2",
    +    "label": "ThemeIsle",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z"
    +      }
    +    }
    +  },
    +  "thermometer": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "fever",
    +        "temperature"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f491",
    +    "label": "Thermometer",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821460,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"
    +      }
    +    }
    +  },
    +  "thermometer-empty": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2cb",
    +    "label": "Thermometer Empty",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"
    +      }
    +    }
    +  },
    +  "thermometer-full": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2c7",
    +    "label": "Thermometer Full",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"
    +      }
    +    }
    +  },
    +  "thermometer-half": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2c9",
    +    "label": "Thermometer 1/2 Full",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"
    +      }
    +    }
    +  },
    +  "thermometer-quarter": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2ca",
    +    "label": "Thermometer 1/4 Full",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"
    +      }
    +    }
    +  },
    +  "thermometer-three-quarters": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "status"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2c8",
    +    "label": "Thermometer 3/4 Full",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"
    +      }
    +    }
    +  },
    +  "thumbs-down": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "disagree",
    +        "disapprove",
    +        "dislike",
    +        "hand",
    +        "thumbs-o-down"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f165",
    +    "label": "thumbs-down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821460,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"
    +      },
    +      "regular": {
    +        "last_modified": 1503066239000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z"
    +      }
    +    }
    +  },
    +  "thumbs-up": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "agree",
    +        "approve",
    +        "favorite",
    +        "hand",
    +        "like",
    +        "ok",
    +        "okay",
    +        "success",
    +        "thumbs-o-up",
    +        "yes",
    +        "you got it dude"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f164",
    +    "label": "thumbs-up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821461,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"
    +      },
    +      "regular": {
    +        "last_modified": 1503066239000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"
    +      }
    +    }
    +  },
    +  "thumbtack": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "coordinates",
    +        "location",
    +        "marker",
    +        "pin",
    +        "thumb-tack"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f08d",
    +    "label": "Thumbtack",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1503937790000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"
    +      }
    +    }
    +  },
    +  "ticket-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "ticket"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f3ff",
    +    "label": "Alternate Ticket",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"
    +      }
    +    }
    +  },
    +  "times": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "close",
    +        "cross",
    +        "error",
    +        "exit",
    +        "incorrect",
    +        "notice",
    +        "notification",
    +        "notify",
    +        "problem",
    +        "wrong",
    +        "x"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f00d",
    +    "label": "Times",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154580,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"><path d=\"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "352",
    +          "512"
    +        ],
    +        "width": 352,
    +        "height": 512,
    +        "path": "M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"
    +      }
    +    }
    +  },
    +  "times-circle": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "close",
    +        "cross",
    +        "exit",
    +        "incorrect",
    +        "notice",
    +        "notification",
    +        "notify",
    +        "problem",
    +        "wrong",
    +        "x"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f057",
    +    "label": "Times Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"
    +      }
    +    }
    +  },
    +  "tint": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "drop",
    +        "droplet",
    +        "raindrop",
    +        "waterdrop"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f043",
    +    "label": "tint",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111706,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 512\"><path d=\"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "352",
    +          "512"
    +        ],
    +        "width": 352,
    +        "height": 512,
    +        "path": "M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"
    +      }
    +    }
    +  },
    +  "tint-slash": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5c7",
    +    "label": "Tint Slash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111706,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"
    +      }
    +    }
    +  },
    +  "tired": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "emoticon",
    +        "face",
    +        "grumpy"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f5c8",
    +    "label": "Tired Face",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111707,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"
    +      },
    +      "regular": {
    +        "last_modified": 1529520111641,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z"
    +      }
    +    }
    +  },
    +  "toggle-off": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "switch"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f204",
    +    "label": "Toggle Off",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"
    +      }
    +    }
    +  },
    +  "toggle-on": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "switch"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f205",
    +    "label": "Toggle On",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M576 256c0 106.039-85.961 192-192 192H192C85.961 448 0 362.039 0 256S85.961 64 192 64h192c106.039 0 192 85.961 192 192zM384 128c-70.741 0-128 57.249-128 128 0 70.741 57.249 128 128 128 70.741 0 128-57.249 128-128 0-70.741-57.249-128-128-128\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M576 256c0 106.039-85.961 192-192 192H192C85.961 448 0 362.039 0 256S85.961 64 192 64h192c106.039 0 192 85.961 192 192zM384 128c-70.741 0-128 57.249-128 128 0 70.741 57.249 128 128 128 70.741 0 128-57.249 128-128 0-70.741-57.249-128-128-128"
    +      }
    +    }
    +  },
    +  "toilet-paper": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bathroom",
    +        "halloween",
    +        "holiday",
    +        "lavatory",
    +        "prank",
    +        "restroom",
    +        "roll"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f71e",
    +    "label": "Toilet Paper",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290243,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"
    +      }
    +    }
    +  },
    +  "toolbox": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "admin",
    +        "container",
    +        "fix",
    +        "repair",
    +        "settings",
    +        "tools"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f552",
    +    "label": "Toolbox",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154580,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"
    +      }
    +    }
    +  },
    +  "tooth": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bicuspid",
    +        "dental",
    +        "molar",
    +        "mouth",
    +        "teeth"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5c9",
    +    "label": "Tooth",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111707,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"
    +      }
    +    }
    +  },
    +  "torah": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "book",
    +        "jewish",
    +        "judaism"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6a0",
    +    "label": "Torah",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320900,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM139.11 141.21c-2.77-4.41.4-10.14 5.6-10.14h53.08c.9 0 1.73-.46 2.21-1.22l34.4-54.76c2.6-4.13 8.61-4.13 11.21 0l34.4 54.76a2.61 2.61 0 0 0 2.21 1.22h53.08c5.2 0 8.37 5.73 5.6 10.14L314.01 184l26.88 42.79c2.77 4.4-.4 10.13-5.6 10.13h-53.08c-.9 0-1.73.46-2.21 1.22l-34.4 54.76c-2.6 4.13-8.61 4.13-11.21 0L200 238.15a2.61 2.61 0 0 0-2.21-1.22h-53.08c-5.2 0-8.37-5.73-5.6-10.13l26.88-42.8-26.88-42.79zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM139.11 141.21c-2.77-4.41.4-10.14 5.6-10.14h53.08c.9 0 1.73-.46 2.21-1.22l34.4-54.76c2.6-4.13 8.61-4.13 11.21 0l34.4 54.76a2.61 2.61 0 0 0 2.21 1.22h53.08c5.2 0 8.37 5.73 5.6 10.14L314.01 184l26.88 42.79c2.77 4.4-.4 10.13-5.6 10.13h-53.08c-.9 0-1.73.46-2.21 1.22l-34.4 54.76c-2.6 4.13-8.61 4.13-11.21 0L200 238.15a2.61 2.61 0 0 0-2.21-1.22h-53.08c-5.2 0-8.37-5.73-5.6-10.13l26.88-42.8-26.88-42.79zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"
    +      }
    +    }
    +  },
    +  "torii-gate": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "building",
    +        "shintoism"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6a1",
    +    "label": "Torii Gate",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320900,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"
    +      }
    +    }
    +  },
    +  "tractor": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f722",
    +    "label": "Tractor",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290243,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"
    +      }
    +    }
    +  },
    +  "trade-federation": {
    +    "changes": [
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f513",
    +    "label": "Trade Federation",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442522,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M202.45 108.42v81.61H38.94l48.22 61.91h114.73v196.75h64.61V252.96h83.27v-62.69h-83.18V171.1h145.62v-62.68H202.45zm4.86 6h197.77v50.68H259.44v30.93h83.18v50.93h-83.26v195.73h-52.73V245.94H89.86l-39.95-49.91h157.4v-81.61zM247.99 8.8C111.03 8.8 0 119.83 0 256.8s111.03 248 247.99 248S496 393.76 496 256.8 384.96 8.8 247.99 8.8zm.02 13.24c129.66 0 234.76 105.12 234.76 234.78s-105.1 234.76-234.76 234.76S13.23 386.47 13.23 256.81 118.35 22.04 248.01 22.04zm0 7.89c-125.3 0-226.89 101.57-226.89 226.87s101.59 226.89 226.89 226.89S474.88 382.1 474.88 256.8 373.31 29.93 248.01 29.93zm-.02 13.3c117.95 0 213.56 95.62 213.56 213.56s-95.62 213.56-213.56 213.56S34.43 374.75 34.43 256.8 130.04 43.23 247.99 43.23zm-73.32 104.8l15.66 18.05-22.16-9.45-12.33 20.47 2.15-23.99-23.28-5.4 23.48-5.37-2.06-23.81 12.37 20.67 22.01-9.32-15.84 18.15zm-47.14-46.54l8.01 12.4 12.69-5.86-9.32 11.45 9.5 10.25-13.77-5.32-6.82 12.2.81-14.74-13.71-2.71 14.27-3.78-1.66-13.89zm250.77 75.59l11.99 19.56 20.88-9.11-14.9 17.45 15.11 17.04-21.2-8.78-11.54 19.64 1.8-22.87-22.24-4.9 22.31-5.36-2.21-22.67zm-107.05 98.45l13.86-3.22-1.28-14.17 7.35 12.18 13.08-5.59-9.31 10.75 9.36 10.71-13.1-5.54-7.29 12.21 1.22-14.17-13.89-3.16zm-125.43 6.5l23.73-3.87-1.73-24.53 11.01 21.38 22.79-9.22-16.93 17.08 15.81 18.83-21.47-10.82-13.02 20.86 3.66-23.77-23.85-5.94zm63.44-165.66v81.61H54.16l36.72 46.01h117.7v196.75h48.82V245.01h83.27v-47.03H257.4v-34.83h145.73v-46.78H209.26zm10.86 11.2h171.8v24.36H246.88v56.23h82.93v23.94h-82.93v197.42h-26.76V232.1H96.31l-20.09-23.94h143.9v-80.59z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M202.45 108.42v81.61H38.94l48.22 61.91h114.73v196.75h64.61V252.96h83.27v-62.69h-83.18V171.1h145.62v-62.68H202.45zm4.86 6h197.77v50.68H259.44v30.93h83.18v50.93h-83.26v195.73h-52.73V245.94H89.86l-39.95-49.91h157.4v-81.61zM247.99 8.8C111.03 8.8 0 119.83 0 256.8s111.03 248 247.99 248S496 393.76 496 256.8 384.96 8.8 247.99 8.8zm.02 13.24c129.66 0 234.76 105.12 234.76 234.78s-105.1 234.76-234.76 234.76S13.23 386.47 13.23 256.81 118.35 22.04 248.01 22.04zm0 7.89c-125.3 0-226.89 101.57-226.89 226.87s101.59 226.89 226.89 226.89S474.88 382.1 474.88 256.8 373.31 29.93 248.01 29.93zm-.02 13.3c117.95 0 213.56 95.62 213.56 213.56s-95.62 213.56-213.56 213.56S34.43 374.75 34.43 256.8 130.04 43.23 247.99 43.23zm-73.32 104.8l15.66 18.05-22.16-9.45-12.33 20.47 2.15-23.99-23.28-5.4 23.48-5.37-2.06-23.81 12.37 20.67 22.01-9.32-15.84 18.15zm-47.14-46.54l8.01 12.4 12.69-5.86-9.32 11.45 9.5 10.25-13.77-5.32-6.82 12.2.81-14.74-13.71-2.71 14.27-3.78-1.66-13.89zm250.77 75.59l11.99 19.56 20.88-9.11-14.9 17.45 15.11 17.04-21.2-8.78-11.54 19.64 1.8-22.87-22.24-4.9 22.31-5.36-2.21-22.67zm-107.05 98.45l13.86-3.22-1.28-14.17 7.35 12.18 13.08-5.59-9.31 10.75 9.36 10.71-13.1-5.54-7.29 12.21 1.22-14.17-13.89-3.16zm-125.43 6.5l23.73-3.87-1.73-24.53 11.01 21.38 22.79-9.22-16.93 17.08 15.81 18.83-21.47-10.82-13.02 20.86 3.66-23.77-23.85-5.94zm63.44-165.66v81.61H54.16l36.72 46.01h117.7v196.75h48.82V245.01h83.27v-47.03H257.4v-34.83h145.73v-46.78H209.26zm10.86 11.2h171.8v24.36H246.88v56.23h82.93v23.94h-82.93v197.42h-26.76V232.1H96.31l-20.09-23.94h143.9v-80.59z"
    +      }
    +    }
    +  },
    +  "trademark": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f25c",
    +    "label": "Trademark",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M97.119 163.133H12c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h248.559c6.627 0 12 5.373 12 12v43.133c0 6.627-5.373 12-12 12H175.44V404c0 6.627-5.373 12-12 12h-54.322c-6.627 0-12-5.373-12-12V163.133zM329.825 96h65.425a12 12 0 0 1 11.346 8.093l43.759 127.068c7.161 20.588 16.111 52.812 16.111 52.812h.896s8.95-32.224 16.111-52.812l43.758-127.068A12 12 0 0 1 538.577 96h65.41a12 12 0 0 1 11.961 11.03l24.012 296c.567 6.987-4.951 12.97-11.961 12.97h-54.101a12 12 0 0 1-11.972-11.182l-9.082-132.93c-1.79-24.168 0-53.706 0-53.706h-.896s-10.741 33.566-17.902 53.706l-30.7 84.731a12 12 0 0 1-11.282 7.912h-50.302a12 12 0 0 1-11.282-7.912l-30.7-84.731c-7.161-20.14-17.903-53.706-17.903-53.706h-.895s1.79 29.538 0 53.706l-9.082 132.93c-.428 6.295-5.66 11.182-11.97 11.182H305.4c-7.017 0-12.536-5.994-11.959-12.987l24.425-296A11.999 11.999 0 0 1 329.825 96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M97.119 163.133H12c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h248.559c6.627 0 12 5.373 12 12v43.133c0 6.627-5.373 12-12 12H175.44V404c0 6.627-5.373 12-12 12h-54.322c-6.627 0-12-5.373-12-12V163.133zM329.825 96h65.425a12 12 0 0 1 11.346 8.093l43.759 127.068c7.161 20.588 16.111 52.812 16.111 52.812h.896s8.95-32.224 16.111-52.812l43.758-127.068A12 12 0 0 1 538.577 96h65.41a12 12 0 0 1 11.961 11.03l24.012 296c.567 6.987-4.951 12.97-11.961 12.97h-54.101a12 12 0 0 1-11.972-11.182l-9.082-132.93c-1.79-24.168 0-53.706 0-53.706h-.896s-10.741 33.566-17.902 53.706l-30.7 84.731a12 12 0 0 1-11.282 7.912h-50.302a12 12 0 0 1-11.282-7.912l-30.7-84.731c-7.161-20.14-17.903-53.706-17.903-53.706h-.895s1.79 29.538 0 53.706l-9.082 132.93c-.428 6.295-5.66 11.182-11.97 11.182H305.4c-7.017 0-12.536-5.994-11.959-12.987l24.425-296A11.999 11.999 0 0 1 329.825 96z"
    +      }
    +    }
    +  },
    +  "traffic-light": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f637",
    +    "label": "Traffic Light",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831553,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"
    +      }
    +    }
    +  },
    +  "train": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bullet",
    +        "locomotive",
    +        "railway"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f238",
    +    "label": "Train",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"
    +      }
    +    }
    +  },
    +  "transgender": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "intersex"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f224",
    +    "label": "Transgender",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"
    +      }
    +    }
    +  },
    +  "transgender-alt": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f225",
    +    "label": "Alternate Transgender",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 480 512\"><path d=\"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "480",
    +          "512"
    +        ],
    +        "width": 480,
    +        "height": 512,
    +        "path": "M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"
    +      }
    +    }
    +  },
    +  "trash": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "delete",
    +        "garbage",
    +        "hide",
    +        "remove"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1f8",
    +    "label": "Trash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm415.2 56.7L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32.8 140.7c-.4-6.9 5.1-12.7 12-12.7h358.5c6.8 0 12.3 5.8 11.9 12.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm415.2 56.7L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32.8 140.7c-.4-6.9 5.1-12.7 12-12.7h358.5c6.8 0 12.3 5.8 11.9 12.7z"
    +      }
    +    }
    +  },
    +  "trash-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "delete",
    +        "garbage",
    +        "hide",
    +        "remove",
    +        "trash",
    +        "trash-o"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2ed",
    +    "label": "Alternate Trash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"
    +      },
    +      "regular": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M192 188v216c0 6.627-5.373 12-12 12h-24c-6.627 0-12-5.373-12-12V188c0-6.627 5.373-12 12-12h24c6.627 0 12 5.373 12 12zm100-12h-24c-6.627 0-12 5.373-12 12v216c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12V188c0-6.627-5.373-12-12-12zm132-96c13.255 0 24 10.745 24 24v12c0 6.627-5.373 12-12 12h-20v336c0 26.51-21.49 48-48 48H80c-26.51 0-48-21.49-48-48V128H12c-6.627 0-12-5.373-12-12v-12c0-13.255 10.745-24 24-24h74.411l34.018-56.696A48 48 0 0 1 173.589 0h100.823a48 48 0 0 1 41.16 23.304L349.589 80H424zm-269.611 0h139.223L276.16 50.913A6 6 0 0 0 271.015 48h-94.028a6 6 0 0 0-5.145 2.913L154.389 80zM368 128H80v330a6 6 0 0 0 6 6h276a6 6 0 0 0 6-6V128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M192 188v216c0 6.627-5.373 12-12 12h-24c-6.627 0-12-5.373-12-12V188c0-6.627 5.373-12 12-12h24c6.627 0 12 5.373 12 12zm100-12h-24c-6.627 0-12 5.373-12 12v216c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12V188c0-6.627-5.373-12-12-12zm132-96c13.255 0 24 10.745 24 24v12c0 6.627-5.373 12-12 12h-20v336c0 26.51-21.49 48-48 48H80c-26.51 0-48-21.49-48-48V128H12c-6.627 0-12-5.373-12-12v-12c0-13.255 10.745-24 24-24h74.411l34.018-56.696A48 48 0 0 1 173.589 0h100.823a48 48 0 0 1 41.16 23.304L349.589 80H424zm-269.611 0h139.223L276.16 50.913A6 6 0 0 0 271.015 48h-94.028a6 6 0 0 0-5.145 2.913L154.389 80zM368 128H80v330a6 6 0 0 0 6 6h276a6 6 0 0 0 6-6V128z"
    +      }
    +    }
    +  },
    +  "tree": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bark",
    +        "fall",
    +        "flora",
    +        "forest",
    +        "nature",
    +        "plant",
    +        "seasonal"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1bb",
    +    "label": "Tree",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290244,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"
    +      }
    +    }
    +  },
    +  "trello": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f181",
    +    "label": "Trello",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zM194.9 371.4c0 14.8-12 26.9-26.9 26.9H85.1c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9H168c14.8 0 26.9 12 26.9 26.9v254.3zm194.9-112c0 14.8-12 26.9-26.9 26.9H280c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v142.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zM194.9 371.4c0 14.8-12 26.9-26.9 26.9H85.1c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9H168c14.8 0 26.9 12 26.9 26.9v254.3zm194.9-112c0 14.8-12 26.9-26.9 26.9H280c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v142.3z"
    +      }
    +    }
    +  },
    +  "tripadvisor": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f262",
    +    "label": "TripAdvisor",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z"
    +      }
    +    }
    +  },
    +  "trophy": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "achievement",
    +        "award",
    +        "cup",
    +        "game",
    +        "winner"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f091",
    +    "label": "trophy",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"
    +      }
    +    }
    +  },
    +  "truck": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "delivery",
    +        "shipping"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0d1",
    +    "label": "truck",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821462,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"
    +      }
    +    }
    +  },
    +  "truck-loading": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4de",
    +    "label": "Truck Loading",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821461,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"
    +      }
    +    }
    +  },
    +  "truck-monster": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f63b",
    +    "label": "Truck Monster",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831553,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"
    +      }
    +    }
    +  },
    +  "truck-moving": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4df",
    +    "label": "Truck Moving",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821461,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"
    +      }
    +    }
    +  },
    +  "truck-pickup": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f63c",
    +    "label": "Truck Side",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1532362831553,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"
    +      }
    +    }
    +  },
    +  "tshirt": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cloth",
    +        "clothing"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f553",
    +    "label": "T-Shirt",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154580,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"
    +      }
    +    }
    +  },
    +  "tty": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1e4",
    +    "label": "TTY",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"
    +      }
    +    }
    +  },
    +  "tumblr": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f173",
    +    "label": "Tumblr",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"
    +      }
    +    }
    +  },
    +  "tumblr-square": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f174",
    +    "label": "Tumblr Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z"
    +      }
    +    }
    +  },
    +  "tv": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "computer",
    +        "display",
    +        "monitor",
    +        "television"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f26c",
    +    "label": "Television",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z"
    +      }
    +    }
    +  },
    +  "twitch": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1e8",
    +    "label": "Twitch",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z"
    +      }
    +    }
    +  },
    +  "twitter": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "social network",
    +        "tweet"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f099",
    +    "label": "Twitter",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1511282001104,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"
    +      }
    +    }
    +  },
    +  "twitter-square": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "social network",
    +        "tweet"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f081",
    +    "label": "Twitter Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"
    +      }
    +    }
    +  },
    +  "typo3": {
    +    "changes": [
    +      "5.0.1"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f42b",
    +    "label": "Typo3",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1512765674649,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 433.3 512\"><path d=\"M330.8 341c-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9 0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C0 246 106.8 480 184.1 480c36.3 0 97.3-59.5 146.7-139M294.5 32c71.8 0 138.8 11.6 138.8 52.5 0 82.6-52.5 182.3-78.8 182.3-47.9 0-101.7-132.1-101.7-198.5 0-30.9 11.6-36.3 41.7-36.3\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "433.3",
    +          "512"
    +        ],
    +        "width": 433,
    +        "height": 512,
    +        "path": "M330.8 341c-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9 0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C0 246 106.8 480 184.1 480c36.3 0 97.3-59.5 146.7-139M294.5 32c71.8 0 138.8 11.6 138.8 52.5 0 82.6-52.5 182.3-78.8 182.3-47.9 0-101.7-132.1-101.7-198.5 0-30.9 11.6-36.3 41.7-36.3"
    +      }
    +    }
    +  },
    +  "uber": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f402",
    +    "label": "Uber",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"
    +      }
    +    }
    +  },
    +  "uikit": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f403",
    +    "label": "UIkit",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"
    +      }
    +    }
    +  },
    +  "umbrella": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "protection",
    +        "rain"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0e9",
    +    "label": "Umbrella",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502810244000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M557.011 267.631c-51.432-45.217-107.572-43.698-158.567 30.731-5.298 7.861-14.906 7.165-19.736 0-2.483-3.624-32.218-60.808-90.708-60.808-45.766 0-70.542 31.378-90.709 60.808-4.829 7.165-14.436 7.861-19.734 0-50.904-74.285-106.613-76.406-158.567-30.731-10.21 8.264-20.912-1.109-18.696-9.481C32.146 134.573 158.516 64.612 288.001 64.612c128.793 0 256.546 69.961 287.706 193.538 2.206 8.322-8.426 17.793-18.696 9.481zM256 261.001V416c0 17.645-14.355 32-32 32s-32-14.355-32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 52.935 43.065 96 96 96s96-43.065 96-96V261.288c-21.836-10.806-45.425-9.737-64-.287zm64-211.007V32c0-17.673-14.327-32-32-32s-32 14.327-32 32v17.987a372.105 372.105 0 0 1 64 .007z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M557.011 267.631c-51.432-45.217-107.572-43.698-158.567 30.731-5.298 7.861-14.906 7.165-19.736 0-2.483-3.624-32.218-60.808-90.708-60.808-45.766 0-70.542 31.378-90.709 60.808-4.829 7.165-14.436 7.861-19.734 0-50.904-74.285-106.613-76.406-158.567-30.731-10.21 8.264-20.912-1.109-18.696-9.481C32.146 134.573 158.516 64.612 288.001 64.612c128.793 0 256.546 69.961 287.706 193.538 2.206 8.322-8.426 17.793-18.696 9.481zM256 261.001V416c0 17.645-14.355 32-32 32s-32-14.355-32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 52.935 43.065 96 96 96s96-43.065 96-96V261.288c-21.836-10.806-45.425-9.737-64-.287zm64-211.007V32c0-17.673-14.327-32-32-32s-32 14.327-32 32v17.987a372.105 372.105 0 0 1 64 .007z"
    +      }
    +    }
    +  },
    +  "umbrella-beach": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "protection",
    +        "recreation",
    +        "sun"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5ca",
    +    "label": "Umbrella Beach",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111708,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"
    +      }
    +    }
    +  },
    +  "underline": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0cd",
    +    "label": "Underline",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224.264 388.24c-91.669 0-156.603-51.165-156.603-151.392V64H39.37c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h137.39c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.813v172.848c0 53.699 28.314 79.444 76.317 79.444 46.966 0 75.796-25.434 75.796-79.965V64h-28.291c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h136.868c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.291v172.848c0 99.405-64.881 151.392-156.082 151.392zM16 448h416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224.264 388.24c-91.669 0-156.603-51.165-156.603-151.392V64H39.37c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h137.39c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.813v172.848c0 53.699 28.314 79.444 76.317 79.444 46.966 0 75.796-25.434 75.796-79.965V64h-28.291c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h136.868c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.291v172.848c0 99.405-64.881 151.392-156.082 151.392zM16 448h416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16z"
    +      }
    +    }
    +  },
    +  "undo": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "back",
    +        "control z",
    +        "exchange",
    +        "oops",
    +        "return",
    +        "rotate",
    +        "swap"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0e2",
    +    "label": "Undo",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1504208135000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"
    +      }
    +    }
    +  },
    +  "undo-alt": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "back",
    +        "control z",
    +        "exchange",
    +        "oops",
    +        "return",
    +        "swap"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2ea",
    +    "label": "Alternate Undo",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"
    +      }
    +    }
    +  },
    +  "uniregistry": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f404",
    +    "label": "Uniregistry",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1506111999000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M281.1 220.1H384v-14.8H281.1v14.8zm0-37.1H384v-12.4H281.1V183zm0 74.2H384v-17.3H281.1v17.3zm-157.7 86.7H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8m145.7-12.4h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3m-41.5 37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8M384 32H281.1v2.5H384V32zM192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480m89.1-334.2H384V136H281.1v9.8zm0-37.1H384v-7.4H281.1v7.4zm0-37.1H384v-4.9H281.1v4.9zm-178.2 99H0V183h102.9v-12.4zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2m64.1-118.8v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4m178.2 0c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1v12.4zm-203 156h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7m24.8-376.2H0v4.9h102.9v-4.9zm0-34.7H0v2.5h102.9V32zm0 173.3H0v14.8h102.9v-14.8zm0 34.6H0v17.3h102.9v-17.3zm0-103.9H0v9.9h102.9V136zm0-34.7H0v7.4h102.9v-7.4zm2.8 207.9H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M281.1 220.1H384v-14.8H281.1v14.8zm0-37.1H384v-12.4H281.1V183zm0 74.2H384v-17.3H281.1v17.3zm-157.7 86.7H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8m145.7-12.4h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3m-41.5 37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8M384 32H281.1v2.5H384V32zM192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480m89.1-334.2H384V136H281.1v9.8zm0-37.1H384v-7.4H281.1v7.4zm0-37.1H384v-4.9H281.1v4.9zm-178.2 99H0V183h102.9v-12.4zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2m64.1-118.8v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4m178.2 0c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1v12.4zm-203 156h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7m24.8-376.2H0v4.9h102.9v-4.9zm0-34.7H0v2.5h102.9V32zm0 173.3H0v14.8h102.9v-14.8zm0 34.6H0v17.3h102.9v-17.3zm0-103.9H0v9.9h102.9V136zm0-34.7H0v7.4h102.9v-7.4zm2.8 207.9H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3"
    +      }
    +    }
    +  },
    +  "universal-access": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f29a",
    +    "label": "Universal Access",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502483808000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"
    +      }
    +    }
    +  },
    +  "university": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "bank",
    +        "institution"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f19c",
    +    "label": "University",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1515426582026,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"
    +      }
    +    }
    +  },
    +  "unlink": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "chain",
    +        "chain-broken",
    +        "remove"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f127",
    +    "label": "unlink",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"
    +      }
    +    }
    +  },
    +  "unlock": {
    +    "changes": [
    +      "2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "admin",
    +        "lock",
    +        "password",
    +        "protect"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f09c",
    +    "label": "unlock",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"
    +      }
    +    }
    +  },
    +  "unlock-alt": {
    +    "changes": [
    +      "3.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "admin",
    +        "lock",
    +        "password",
    +        "protect"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f13e",
    +    "label": "Alternate Unlock",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"
    +      }
    +    }
    +  },
    +  "untappd": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f405",
    +    "label": "Untappd",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"
    +      }
    +    }
    +  },
    +  "upload": {
    +    "changes": [
    +      "1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "export",
    +        "publish"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f093",
    +    "label": "Upload",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"
    +      }
    +    }
    +  },
    +  "usb": {
    +    "changes": [
    +      "4.5",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f287",
    +    "label": "USB",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"
    +      }
    +    }
    +  },
    +  "user": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.0.3",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "account",
    +        "avatar",
    +        "head",
    +        "man",
    +        "person",
    +        "profile"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f007",
    +    "label": "User",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365081,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"
    +      },
    +      "regular": {
    +        "last_modified": 1525209365062,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z"
    +      }
    +    }
    +  },
    +  "user-alt": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "account",
    +        "avatar",
    +        "head",
    +        "man",
    +        "person",
    +        "profile"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f406",
    +    "label": "Alternate User",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365071,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"
    +      }
    +    }
    +  },
    +  "user-alt-slash": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4fa",
    +    "label": "Alternate User Slash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365070,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"
    +      }
    +    }
    +  },
    +  "user-astronaut": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "avatar",
    +        "clothing",
    +        "cosmonaut",
    +        "space",
    +        "suit"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4fb",
    +    "label": "User Astronaut",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365071,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"
    +      }
    +    }
    +  },
    +  "user-check": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4fc",
    +    "label": "User Check",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365072,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"
    +      }
    +    }
    +  },
    +  "user-circle": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0",
    +      "5.0.3",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "account",
    +        "avatar",
    +        "head",
    +        "man",
    +        "person",
    +        "profile"
    +      ]
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2bd",
    +    "label": "User Circle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365072,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"
    +      },
    +      "regular": {
    +        "last_modified": 1525209365055,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z"
    +      }
    +    }
    +  },
    +  "user-clock": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4fd",
    +    "label": "User Clock",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365072,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"
    +      }
    +    }
    +  },
    +  "user-cog": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4fe",
    +    "label": "User Cog",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365073,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"
    +      }
    +    }
    +  },
    +  "user-edit": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4ff",
    +    "label": "User Edit",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365073,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"
    +      }
    +    }
    +  },
    +  "user-friends": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f500",
    +    "label": "User Friends",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365074,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"
    +      }
    +    }
    +  },
    +  "user-graduate": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cap",
    +        "clothing",
    +        "commencement",
    +        "gown",
    +        "graduation",
    +        "student"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f501",
    +    "label": "User Graduate",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365074,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"
    +      }
    +    }
    +  },
    +  "user-injured": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cast",
    +        "ouch",
    +        "sling"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f728",
    +    "label": "User Injured",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011827892,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"
    +      }
    +    }
    +  },
    +  "user-lock": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f502",
    +    "label": "User Lock",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365075,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M320 320c0-11.1 3.1-21.4 8.1-30.5-4.8-.5-9.5-1.5-14.5-1.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h280.9c-5.5-9.5-8.9-20.3-8.9-32V320zm-96-64c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm384 32h-32v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80v48h-32c-17.7 0-32 14.3-32 32v160c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zm-80 0h-64v-48c0-17.6 14.4-32 32-32s32 14.4 32 32v48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M320 320c0-11.1 3.1-21.4 8.1-30.5-4.8-.5-9.5-1.5-14.5-1.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h280.9c-5.5-9.5-8.9-20.3-8.9-32V320zm-96-64c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm384 32h-32v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80v48h-32c-17.7 0-32 14.3-32 32v160c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zm-80 0h-64v-48c0-17.6 14.4-32 32-32s32 14.4 32 32v48z"
    +      }
    +    }
    +  },
    +  "user-md": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.0.3",
    +      "5.0.7",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "doctor",
    +        "job",
    +        "medical",
    +        "nurse",
    +        "occupation",
    +        "profile"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0f0",
    +    "label": "user-md",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365076,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"
    +      }
    +    }
    +  },
    +  "user-minus": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "delete",
    +        "negative",
    +        "remove"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f503",
    +    "label": "User Minus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365076,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"
    +      }
    +    }
    +  },
    +  "user-ninja": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "assassin",
    +        "avatar",
    +        "dangerous",
    +        "deadly",
    +        "sneaky"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f504",
    +    "label": "User Ninja",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365077,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"
    +      }
    +    }
    +  },
    +  "user-plus": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0",
    +      "5.0.3",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "positive",
    +        "sign up",
    +        "signup"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f234",
    +    "label": "User Plus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365077,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"
    +      }
    +    }
    +  },
    +  "user-secret": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0",
    +      "5.0.3",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "clothing",
    +        "coat",
    +        "hat",
    +        "incognito",
    +        "privacy",
    +        "spy",
    +        "whisper"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f21b",
    +    "label": "User Secret",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365078,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"
    +      }
    +    }
    +  },
    +  "user-shield": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f505",
    +    "label": "User Shield",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365078,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"
    +      }
    +    }
    +  },
    +  "user-slash": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "ban",
    +        "remove"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f506",
    +    "label": "User Slash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365079,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"
    +      }
    +    }
    +  },
    +  "user-tag": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f507",
    +    "label": "User Tag",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365079,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"
    +      }
    +    }
    +  },
    +  "user-tie": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "avatar",
    +        "business",
    +        "clothing",
    +        "formal"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f508",
    +    "label": "User Tie",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365079,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"
    +      }
    +    }
    +  },
    +  "user-times": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0",
    +      "5.0.3",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "archive",
    +        "delete",
    +        "remove",
    +        "x"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f235",
    +    "label": "Remove User",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365080,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"
    +      }
    +    }
    +  },
    +  "users": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.0.3",
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "people",
    +        "persons",
    +        "profiles"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0c0",
    +    "label": "Users",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365081,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"
    +      }
    +    }
    +  },
    +  "users-cog": {
    +    "changes": [
    +      "5.0.11"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f509",
    +    "label": "Users Cog",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525209365081,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"
    +      }
    +    }
    +  },
    +  "ussunnah": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f407",
    +    "label": "us-Sunnah Foundation",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z"
    +      }
    +    }
    +  },
    +  "utensil-spoon": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "spoon"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2e5",
    +    "label": "Utensil Spoon",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"
    +      }
    +    }
    +  },
    +  "utensils": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "cutlery",
    +        "dinner",
    +        "eat",
    +        "food",
    +        "knife",
    +        "restaurant",
    +        "spoon"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f2e7",
    +    "label": "Utensils",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 416 512\"><path d=\"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "416",
    +          "512"
    +        ],
    +        "width": 416,
    +        "height": 512,
    +        "path": "M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"
    +      }
    +    }
    +  },
    +  "vaadin": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f408",
    +    "label": "Vaadin",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"
    +      }
    +    }
    +  },
    +  "vector-square": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "anchors",
    +        "lines",
    +        "object"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5cb",
    +    "label": "Vector Square",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111708,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"
    +      }
    +    }
    +  },
    +  "venus": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "female"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f221",
    +    "label": "Venus",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 288 512\"><path d=\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "288",
    +          "512"
    +        ],
    +        "width": 288,
    +        "height": 512,
    +        "path": "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"
    +      }
    +    }
    +  },
    +  "venus-double": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f226",
    +    "label": "Venus Double",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"
    +      }
    +    }
    +  },
    +  "venus-mars": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f228",
    +    "label": "Venus Mars",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"
    +      }
    +    }
    +  },
    +  "viacoin": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f237",
    +    "label": "Viacoin",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z"
    +      }
    +    }
    +  },
    +  "viadeo": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2a9",
    +    "label": "Video",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"
    +      }
    +    }
    +  },
    +  "viadeo-square": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2aa",
    +    "label": "Video Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z"
    +      }
    +    }
    +  },
    +  "vial": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "test tube"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f492",
    +    "label": "Vial",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821462,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 480 512\"><path d=\"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "480",
    +          "512"
    +        ],
    +        "width": 480,
    +        "height": 512,
    +        "path": "M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"
    +      }
    +    }
    +  },
    +  "vials": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "lab results",
    +        "test tubes"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f493",
    +    "label": "Vials",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821462,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"
    +      }
    +    }
    +  },
    +  "viber": {
    +    "changes": [
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f409",
    +    "label": "Viber",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426582002,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"
    +      }
    +    }
    +  },
    +  "video": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "camera",
    +        "film",
    +        "movie",
    +        "record",
    +        "video-camera"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f03d",
    +    "label": "Video",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406029,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"
    +      }
    +    }
    +  },
    +  "video-slash": {
    +    "changes": [
    +      "5.0.9"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4e2",
    +    "label": "Video Slash",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1522083406028,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"
    +      }
    +    }
    +  },
    +  "vihara": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "buddhism",
    +        "buddhist",
    +        "building",
    +        "monastery"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6a7",
    +    "label": "Vihara",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320902,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"
    +      }
    +    }
    +  },
    +  "vimeo": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f40a",
    +    "label": "Vimeo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"
    +      }
    +    }
    +  },
    +  "vimeo-square": {
    +    "changes": [
    +      "4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f194",
    +    "label": "Vimeo Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z"
    +      }
    +    }
    +  },
    +  "vimeo-v": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "vimeo"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f27d",
    +    "label": "Vimeo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"
    +      }
    +    }
    +  },
    +  "vine": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1ca",
    +    "label": "Vine",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"
    +      }
    +    }
    +  },
    +  "vk": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f189",
    +    "label": "VK",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z"
    +      }
    +    }
    +  },
    +  "vnv": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f40b",
    +    "label": "VNV",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z"
    +      }
    +    }
    +  },
    +  "volleyball-ball": {
    +    "changes": [
    +      "5.0.5"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f45f",
    +    "label": "Volleyball Ball",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1518899527998,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 495.9 512\"><path d=\"M223.3 243.4c-.9-37-8.6-72.8-22.7-105.7-90.8 42.4-157.5 122.4-180.3 216.8 13.4 30.8 32.9 58.3 56.9 81.1 22.7-79.2 74.2-147.8 146.1-192.2zM186.4 109c-15-26.4-34.5-50.1-57.4-70.7C38 88.1-15.8 191.2 4 300.5c33.4-83.1 98.4-152 182.4-191.5zM374 274.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5 57.3 59.3 91 138.2 93.5 222.7 32.5 17.7 67.3 29 102.9 33.2zm-124.7 9.5c-31.6 19.3-58.7 43.9-80.2 72.6 82 57.3 184.5 75.1 277.5 47.8 19.7-26.4 34.2-56.8 42.2-89.9-26.6 6.6-53.7 10.4-80.9 10.4-54.6-.1-108.9-14.1-158.6-40.9zM151 383.3c-15.2 26-25.7 54.4-32.1 84.2 37.6 23 81.7 36.5 129.1 36.5 61 0 116.7-22.1 159.9-58.6C295 461.5 204.6 420.6 151 383.3zM331.3 22.7c55.3 70.4 82.5 161.2 74.6 253.6 30.3.2 60.5-4.8 89.7-14.2 0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "495.9",
    +          "512"
    +        ],
    +        "width": 495,
    +        "height": 512,
    +        "path": "M223.3 243.4c-.9-37-8.6-72.8-22.7-105.7-90.8 42.4-157.5 122.4-180.3 216.8 13.4 30.8 32.9 58.3 56.9 81.1 22.7-79.2 74.2-147.8 146.1-192.2zM186.4 109c-15-26.4-34.5-50.1-57.4-70.7C38 88.1-15.8 191.2 4 300.5c33.4-83.1 98.4-152 182.4-191.5zM374 274.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5 57.3 59.3 91 138.2 93.5 222.7 32.5 17.7 67.3 29 102.9 33.2zm-124.7 9.5c-31.6 19.3-58.7 43.9-80.2 72.6 82 57.3 184.5 75.1 277.5 47.8 19.7-26.4 34.2-56.8 42.2-89.9-26.6 6.6-53.7 10.4-80.9 10.4-54.6-.1-108.9-14.1-158.6-40.9zM151 383.3c-15.2 26-25.7 54.4-32.1 84.2 37.6 23 81.7 36.5 129.1 36.5 61 0 116.7-22.1 159.9-58.6C295 461.5 204.6 420.6 151 383.3zM331.3 22.7c55.3 70.4 82.5 161.2 74.6 253.6 30.3.2 60.5-4.8 89.7-14.2 0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"
    +      }
    +    }
    +  },
    +  "volume-down": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "audio",
    +        "lower",
    +        "music",
    +        "quieter",
    +        "sound",
    +        "speaker"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f027",
    +    "label": "Volume Down",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320903,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"
    +      }
    +    }
    +  },
    +  "volume-mute": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6a9",
    +    "label": "Volume Mute",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320903,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"
    +      }
    +    }
    +  },
    +  "volume-off": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "audio",
    +        "music",
    +        "mute",
    +        "sound"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f026",
    +    "label": "Volume Off",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320903,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 257.33 512\"><path d=\"M216.36 71.04L127.39 160H25.33c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.47-25.96-31.98-40.97-16.98z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "257.33",
    +          "512"
    +        ],
    +        "width": 257,
    +        "height": 512,
    +        "path": "M216.36 71.04L127.39 160H25.33c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.47-25.96-31.98-40.97-16.98z"
    +      }
    +    }
    +  },
    +  "volume-up": {
    +    "changes": [
    +      "1",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "audio",
    +        "higher",
    +        "louder",
    +        "music",
    +        "sound",
    +        "speaker"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f028",
    +    "label": "Volume Up",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320904,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"
    +      }
    +    }
    +  },
    +  "vuejs": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f41f",
    +    "label": "Vue.js",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1508787003040,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z"
    +      }
    +    }
    +  },
    +  "walking": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f554",
    +    "label": "Walking",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154580,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"
    +      }
    +    }
    +  },
    +  "wallet": {
    +    "changes": [
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f555",
    +    "label": "Wallet",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154581,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"
    +      }
    +    }
    +  },
    +  "warehouse": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f494",
    +    "label": "Warehouse",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821463,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"
    +      }
    +    }
    +  },
    +  "weebly": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f5cc",
    +    "label": "Weebly",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529514897200,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z"
    +      }
    +    }
    +  },
    +  "weibo": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f18a",
    +    "label": "Weibo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"
    +      }
    +    }
    +  },
    +  "weight": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "measurement",
    +        "scale",
    +        "weight"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f496",
    +    "label": "Weight",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111709,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"
    +      }
    +    }
    +  },
    +  "weight-hanging": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "anvil",
    +        "heavy",
    +        "measurement"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5cd",
    +    "label": "Hanging Weight",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111709,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"
    +      }
    +    }
    +  },
    +  "weixin": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1d7",
    +    "label": "Weixin (WeChat)",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426582002,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z"
    +      }
    +    }
    +  },
    +  "whatsapp": {
    +    "changes": [
    +      "4.3",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f232",
    +    "label": "What's App",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1521653821390,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"
    +      }
    +    }
    +  },
    +  "whatsapp-square": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f40c",
    +    "label": "What's App Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"
    +      }
    +    }
    +  },
    +  "wheelchair": {
    +    "changes": [
    +      "4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "handicap",
    +        "person"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f193",
    +    "label": "Wheelchair",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"
    +      }
    +    }
    +  },
    +  "whmcs": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f40d",
    +    "label": "WHMCS",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"
    +      }
    +    }
    +  },
    +  "wifi": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0",
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f1eb",
    +    "label": "WiFi",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320905,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"
    +      }
    +    }
    +  },
    +  "wikipedia-w": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f266",
    +    "label": "Wikipedia W",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z"
    +      }
    +    }
    +  },
    +  "wind": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "air",
    +        "blow",
    +        "breeze",
    +        "fall",
    +        "seasonal"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f72e",
    +    "label": "Wind",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290245,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M156.66 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h142.19c15.95 0 30.77 10.85 33.37 26.58C194.86 366.6 179.42 384 160 384c-14.11 0-26.13-9.19-30.37-21.9-2.11-6.31-8.6-10.1-15.25-10.1H81.63c-9.8 0-17.73 8.81-15.86 18.43C74.39 414.58 113.37 448 160 448c57.09 0 102.7-50.09 95.19-108.63-6.21-48.39-49.74-83.37-98.53-83.37zM16 224h336c59.7 0 106.83-54.76 93.83-116.69-7.61-36.23-36.91-65.53-73.14-73.14-55.44-11.64-105.13 24.91-114.93 75.53-1.86 9.57 6.09 18.3 15.84 18.3h32.8c6.65 0 13.14-3.79 15.25-10.1C325.88 105.19 337.89 96 352 96c19.42 0 34.86 17.39 31.55 37.41-2.6 15.73-17.42 26.59-33.37 26.59H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm384 32H243.68c19.34 16.57 33.19 38.79 39.77 64H400c26.47 0 48 21.53 48 48s-21.53 48-48 48c-17.86 0-33.33-9.86-41.56-24.38-2.85-5.03-8.69-7.62-14.47-7.62h-33.82c-10.91 0-18.96 10.81-15.35 21.1 17.77 50.6 70.54 84.75 129.41 72.35 41.22-8.69 75.1-41.65 84.67-82.68C525.98 321.46 470.48 256 400 256z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M156.66 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h142.19c15.95 0 30.77 10.85 33.37 26.58C194.86 366.6 179.42 384 160 384c-14.11 0-26.13-9.19-30.37-21.9-2.11-6.31-8.6-10.1-15.25-10.1H81.63c-9.8 0-17.73 8.81-15.86 18.43C74.39 414.58 113.37 448 160 448c57.09 0 102.7-50.09 95.19-108.63-6.21-48.39-49.74-83.37-98.53-83.37zM16 224h336c59.7 0 106.83-54.76 93.83-116.69-7.61-36.23-36.91-65.53-73.14-73.14-55.44-11.64-105.13 24.91-114.93 75.53-1.86 9.57 6.09 18.3 15.84 18.3h32.8c6.65 0 13.14-3.79 15.25-10.1C325.88 105.19 337.89 96 352 96c19.42 0 34.86 17.39 31.55 37.41-2.6 15.73-17.42 26.59-33.37 26.59H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm384 32H243.68c19.34 16.57 33.19 38.79 39.77 64H400c26.47 0 48 21.53 48 48s-21.53 48-48 48c-17.86 0-33.33-9.86-41.56-24.38-2.85-5.03-8.69-7.62-14.47-7.62h-33.82c-10.91 0-18.96 10.81-15.35 21.1 17.77 50.6 70.54 84.75 129.41 72.35 41.22-8.69 75.1-41.65 84.67-82.68C525.98 321.46 470.48 256 400 256z"
    +      }
    +    }
    +  },
    +  "window-close": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f410",
    +    "label": "Window Close",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"
    +      },
    +      "regular": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z"
    +      }
    +    }
    +  },
    +  "window-maximize": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2d0",
    +    "label": "Window Maximize",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"
    +      },
    +      "regular": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"
    +      }
    +    }
    +  },
    +  "window-minimize": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2d1",
    +    "label": "Window Minimize",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"
    +      },
    +      "regular": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"
    +      }
    +    }
    +  },
    +  "window-restore": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "solid",
    +      "regular"
    +    ],
    +    "unicode": "f2d2",
    +    "label": "Window Restore",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"
    +      },
    +      "regular": {
    +        "last_modified": 1502397066000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z"
    +      }
    +    }
    +  },
    +  "windows": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "microsoft"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f17a",
    +    "label": "Windows",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"
    +      }
    +    }
    +  },
    +  "wine-bottle": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "alcohol",
    +        "beverage",
    +        "drink",
    +        "glass",
    +        "grapes"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f72f",
    +    "label": "Wine Bottle",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1539011290245,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"
    +      }
    +    }
    +  },
    +  "wine-glass": {
    +    "changes": [
    +      "5.0.9",
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "alcohol",
    +        "beverage",
    +        "drink",
    +        "grapes"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f4e3",
    +    "label": "Wine Glass",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111710,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 288 512\"><path d=\"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "288",
    +          "512"
    +        ],
    +        "width": 288,
    +        "height": 512,
    +        "path": "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"
    +      }
    +    }
    +  },
    +  "wine-glass-alt": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "alcohol",
    +        "beverage",
    +        "drink",
    +        "grapes"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f5ce",
    +    "label": "Alternate Wine Glas",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1529520111710,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 288 512\"><path d=\"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "288",
    +          "512"
    +        ],
    +        "width": 288,
    +        "height": 512,
    +        "path": "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"
    +      }
    +    }
    +  },
    +  "wix": {
    +    "changes": [
    +      "5.1.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f5cf",
    +    "label": "Wix",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1529514897200,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z"
    +      }
    +    }
    +  },
    +  "wizards-of-the-coast": {
    +    "changes": [
    +      "5.4.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "Dungeons & Dragons",
    +        "d&d",
    +        "dnd",
    +        "fantasy",
    +        "game",
    +        "gaming",
    +        "tabletop"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f730",
    +    "label": "Wizards of the Coast",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1539011290176,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z"
    +      }
    +    }
    +  },
    +  "wolf-pack-battalion": {
    +    "changes": [
    +      "5.0.12"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f514",
    +    "label": "Wolf Pack Battalion",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1525376442523,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 456.58 512\"><path d=\"M239.73 471.53l10.56 15.84 5.28-12.32 5.28 7.04V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05 27.87 3.34 53.94 10.58 63.34 54.1l-30.35 8.36c11.15 23.04 17.01 46.76 13.2 72.14L384 313.18l-6.16 33.43-18.47-7.04-8.8 33.43-19.35-7.04 26.39 21.11 8.8-28.15 24.63 5.28 7.04-35.63 26.39 14.52c.25-20.02 6.97-58.06-8.8-84.45l26.39 5.28c3.99-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 1.96-19.87 17.45-42.62 43.11-49.7-43.99 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.47 22.87-89.73 65.1-93.25 147.79l-58.06 38.71-3.52 93.25 107.33-59.82 7.04 7.04-17.59 3.52-43.99 38.71-15.84-5.28-28.15 49.26-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-43.99-38.71-17.59-3.52 7.04-7.04 107.33 59.82-3.52-93.25-58.06-38.71C157.03 65.1 107.77 22.87 67.3 0c-17.54 61.12-4.4 118.76 0 130.2 14.96-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9C29.94 160.06.44 191.78 0 216.85l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7.04 35.63 24.63-5.28 8.8 28.15 26.39-21.11-19.34 7.05-8.8-33.43-18.47 7.04-6.16-33.43-27.27 7.04c-3.82-25.38 2.05-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.91l5.28-7.04 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95.01l-15.84-10.56c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.26-.27 13.88-3.51 22.88zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7.04 8.24-7.9 15.55-16.27 22.87-24.63zm24.63 5.28c-.02-13.43-2.05-24.21-5.28-33.43-5.38 9.09-11.23 18.18-18.47 27.27l23.75 6.16zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-11.99 6.65-28.14 7.04-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 43.99-14.08-10.6-18.95-27.22-25.52-45.75-28.15zM137.68 376.52l15.84-10.56c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7.04-8.24-7.9-15.55-16.27-22.87-24.63zm-24.64 5.28c.02-13.43 2.05-24.21 5.28-33.43 5.38 9.09 11.23 18.18 18.47 27.27l-23.75 6.16zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 36.95-10.56-5.05-11.99-6.65-28.14-7.04-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-43.99-14.08 10.61-18.95 27.22-25.52 45.75-28.15z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "456.58",
    +          "512"
    +        ],
    +        "width": 456,
    +        "height": 512,
    +        "path": "M239.73 471.53l10.56 15.84 5.28-12.32 5.28 7.04V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05 27.87 3.34 53.94 10.58 63.34 54.1l-30.35 8.36c11.15 23.04 17.01 46.76 13.2 72.14L384 313.18l-6.16 33.43-18.47-7.04-8.8 33.43-19.35-7.04 26.39 21.11 8.8-28.15 24.63 5.28 7.04-35.63 26.39 14.52c.25-20.02 6.97-58.06-8.8-84.45l26.39 5.28c3.99-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 1.96-19.87 17.45-42.62 43.11-49.7-43.99 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.47 22.87-89.73 65.1-93.25 147.79l-58.06 38.71-3.52 93.25 107.33-59.82 7.04 7.04-17.59 3.52-43.99 38.71-15.84-5.28-28.15 49.26-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-43.99-38.71-17.59-3.52 7.04-7.04 107.33 59.82-3.52-93.25-58.06-38.71C157.03 65.1 107.77 22.87 67.3 0c-17.54 61.12-4.4 118.76 0 130.2 14.96-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9C29.94 160.06.44 191.78 0 216.85l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7.04 35.63 24.63-5.28 8.8 28.15 26.39-21.11-19.34 7.05-8.8-33.43-18.47 7.04-6.16-33.43-27.27 7.04c-3.82-25.38 2.05-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.91l5.28-7.04 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95.01l-15.84-10.56c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.26-.27 13.88-3.51 22.88zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7.04 8.24-7.9 15.55-16.27 22.87-24.63zm24.63 5.28c-.02-13.43-2.05-24.21-5.28-33.43-5.38 9.09-11.23 18.18-18.47 27.27l23.75 6.16zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-11.99 6.65-28.14 7.04-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 43.99-14.08-10.6-18.95-27.22-25.52-45.75-28.15zM137.68 376.52l15.84-10.56c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7.04-8.24-7.9-15.55-16.27-22.87-24.63zm-24.64 5.28c.02-13.43 2.05-24.21 5.28-33.43 5.38 9.09 11.23 18.18 18.47 27.27l-23.75 6.16zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 36.95-10.56-5.05-11.99-6.65-28.14-7.04-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-43.99-14.08 10.61-18.95 27.22-25.52 45.75-28.15z"
    +      }
    +    }
    +  },
    +  "won-sign": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "krw"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f159",
    +    "label": "Won Sign",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M564 192c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-48.028l18.572-80.61c1.732-7.518-3.978-14.694-11.693-14.694h-46.107a11.998 11.998 0 0 0-11.736 9.5L450.73 128H340.839l-19.725-85.987a12 12 0 0 0-11.696-9.317H265.43a12 12 0 0 0-11.687 9.277L233.696 128H124.975L107.5 42.299a12 12 0 0 0-11.758-9.602H53.628c-7.686 0-13.39 7.124-11.709 14.624L60 128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h62.342l7.171 32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h83.856l40.927 182.624A12 12 0 0 0 148.492 480h56.767c5.583 0 10.428-3.85 11.689-9.288L259.335 288h55.086l42.386 182.712A12 12 0 0 0 368.496 480h56.826a12 12 0 0 0 11.694-9.306L479.108 288H564c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-70.146l7.373-32H564zm-425.976 0h80.757l-7.457 32h-66.776l-6.524-32zm45.796 150.029c-6.194 25.831-6.758 47.25-7.321 47.25h-1.126s-1.689-22.05-6.758-47.25L157.599 288h38.812l-12.591 54.029zM274.182 224l1.996-8.602c1.856-7.962 3.457-15.968 4.803-23.398h11.794c1.347 7.43 2.947 15.436 4.803 23.398l1.996 8.602h-25.392zm130.959 118.029c-5.068 25.2-6.758 47.25-6.758 47.25h-1.126c-.563 0-1.126-21.42-7.321-47.25L377.542 288h39.107l-11.508 54.029zM430.281 224h-67.42l-7.34-32h81.577l-6.817 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M564 192c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-48.028l18.572-80.61c1.732-7.518-3.978-14.694-11.693-14.694h-46.107a11.998 11.998 0 0 0-11.736 9.5L450.73 128H340.839l-19.725-85.987a12 12 0 0 0-11.696-9.317H265.43a12 12 0 0 0-11.687 9.277L233.696 128H124.975L107.5 42.299a12 12 0 0 0-11.758-9.602H53.628c-7.686 0-13.39 7.124-11.709 14.624L60 128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h62.342l7.171 32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h83.856l40.927 182.624A12 12 0 0 0 148.492 480h56.767c5.583 0 10.428-3.85 11.689-9.288L259.335 288h55.086l42.386 182.712A12 12 0 0 0 368.496 480h56.826a12 12 0 0 0 11.694-9.306L479.108 288H564c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-70.146l7.373-32H564zm-425.976 0h80.757l-7.457 32h-66.776l-6.524-32zm45.796 150.029c-6.194 25.831-6.758 47.25-7.321 47.25h-1.126s-1.689-22.05-6.758-47.25L157.599 288h38.812l-12.591 54.029zM274.182 224l1.996-8.602c1.856-7.962 3.457-15.968 4.803-23.398h11.794c1.347 7.43 2.947 15.436 4.803 23.398l1.996 8.602h-25.392zm130.959 118.029c-5.068 25.2-6.758 47.25-6.758 47.25h-1.126c-.563 0-1.126-21.42-7.321-47.25L377.542 288h39.107l-11.508 54.029zM430.281 224h-67.42l-7.34-32h81.577l-6.817 32z"
    +      }
    +    }
    +  },
    +  "wordpress": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f19a",
    +    "label": "WordPress Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"
    +      }
    +    }
    +  },
    +  "wordpress-simple": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f411",
    +    "label": "Wordpress Simple",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"
    +      }
    +    }
    +  },
    +  "wpbeginner": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f297",
    +    "label": "WPBeginner",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501102193000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z"
    +      }
    +    }
    +  },
    +  "wpexplorer": {
    +    "changes": [
    +      "4.7",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2de",
    +    "label": "WPExplorer",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"
    +      }
    +    }
    +  },
    +  "wpforms": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f298",
    +    "label": "WPForms",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z"
    +      }
    +    }
    +  },
    +  "wrench": {
    +    "changes": [
    +      "2",
    +      "5.0.0",
    +      "5.0.13"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "fix",
    +        "settings",
    +        "spanner",
    +        "tool",
    +        "update"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f0ad",
    +    "label": "Wrench",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1525967154581,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"
    +      }
    +    }
    +  },
    +  "x-ray": {
    +    "changes": [
    +      "5.0.7"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "radiological images",
    +        "radiology"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f497",
    +    "label": "X-Ray",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1521653821463,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"
    +      }
    +    }
    +  },
    +  "xbox": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f412",
    +    "label": "Xbox",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "512",
    +          "512"
    +        ],
    +        "width": 512,
    +        "height": 512,
    +        "path": "M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"
    +      }
    +    }
    +  },
    +  "xing": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f168",
    +    "label": "Xing",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"
    +      }
    +    }
    +  },
    +  "xing-square": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f169",
    +    "label": "Xing Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z"
    +      }
    +    }
    +  },
    +  "y-combinator": {
    +    "changes": [
    +      "4.4",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f23b",
    +    "label": "Y Combinator",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z"
    +      }
    +    }
    +  },
    +  "yahoo": {
    +    "changes": [
    +      "4.1",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f19e",
    +    "label": "Yahoo Logo",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426582003,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z"
    +      }
    +    }
    +  },
    +  "yandex": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f413",
    +    "label": "Yandex",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "256",
    +          "512"
    +        ],
    +        "width": 256,
    +        "height": 512,
    +        "path": "M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z"
    +      }
    +    }
    +  },
    +  "yandex-international": {
    +    "changes": [
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f414",
    +    "label": "Yandex International",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\"><path d=\"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "320",
    +          "512"
    +        ],
    +        "width": 320,
    +        "height": 512,
    +        "path": "M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z"
    +      }
    +    }
    +  },
    +  "yelp": {
    +    "changes": [
    +      "4.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f1e9",
    +    "label": "Yelp",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1500927880000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M136.9 328c-1 .3-109.2 35.7-115.8 35.7-15.2-.9-18.5-16.2-19.9-31.2-1.5-14.2-1.4-29.8.3-46.8 1.9-18.8 5.5-45.1 24.2-44 4.8 0 67.1 25.9 112.7 44.4 17.1 6.8 18.6 35.8-1.5 41.9zm57.9-113.9c1.8 38.2-25.5 48.5-47.2 14.3L41.3 60.4c-1.5-6.6.3-12.4 5.3-17.4C62.2 26.5 146 3.2 168.1 8.9c7.5 1.9 12.1 6.1 13.8 12.6 1.3 8.3 11.5 167.4 12.9 192.6zm-1.4 164.8c0 4.6.2 116.4-1.7 121.5-2.3 6-7 9.7-14.3 11.2-10.1 1.7-27.1-1.9-51-10.7-22-8.1-56.7-21.5-49.3-42.5 2.8-6.9 51.4-62.8 77.3-93.6 12-15.2 39.8-5.5 39 14.1zm180.2-117.8c-5.6 3.7-110.8 28.2-118.1 30.6l.3-.6c-18.1 4.7-35.4-18.5-23.3-34.6 3.7-3.7 65.9-92.4 72.8-97 5.2-3.6 11.3-3.8 18.3-.6 18.4 8.8 55.1 63.1 57.4 84.6-.1 2.9 1.2 11.7-7.4 17.6zm10.1 130.7c-2.7 20.6-44.5 73.4-63.8 81-6.9 2.6-12.9 2-17.7-2-5-3.5-61.8-97.1-64.9-102.3-10.9-16.2 6.8-39.8 25.6-33.2 0 0 110.5 35.7 114.7 39.4 5.2 4.1 7.2 9.8 6.1 17.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M136.9 328c-1 .3-109.2 35.7-115.8 35.7-15.2-.9-18.5-16.2-19.9-31.2-1.5-14.2-1.4-29.8.3-46.8 1.9-18.8 5.5-45.1 24.2-44 4.8 0 67.1 25.9 112.7 44.4 17.1 6.8 18.6 35.8-1.5 41.9zm57.9-113.9c1.8 38.2-25.5 48.5-47.2 14.3L41.3 60.4c-1.5-6.6.3-12.4 5.3-17.4C62.2 26.5 146 3.2 168.1 8.9c7.5 1.9 12.1 6.1 13.8 12.6 1.3 8.3 11.5 167.4 12.9 192.6zm-1.4 164.8c0 4.6.2 116.4-1.7 121.5-2.3 6-7 9.7-14.3 11.2-10.1 1.7-27.1-1.9-51-10.7-22-8.1-56.7-21.5-49.3-42.5 2.8-6.9 51.4-62.8 77.3-93.6 12-15.2 39.8-5.5 39 14.1zm180.2-117.8c-5.6 3.7-110.8 28.2-118.1 30.6l.3-.6c-18.1 4.7-35.4-18.5-23.3-34.6 3.7-3.7 65.9-92.4 72.8-97 5.2-3.6 11.3-3.8 18.3-.6 18.4 8.8 55.1 63.1 57.4 84.6-.1 2.9 1.2 11.7-7.4 17.6zm10.1 130.7c-2.7 20.6-44.5 73.4-63.8 81-6.9 2.6-12.9 2-17.7-2-5-3.5-61.8-97.1-64.9-102.3-10.9-16.2 6.8-39.8 25.6-33.2 0 0 110.5 35.7 114.7 39.4 5.2 4.1 7.2 9.8 6.1 17.1z"
    +      }
    +    }
    +  },
    +  "yen-sign": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "jpy",
    +        "money"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f157",
    +    "label": "Yen Sign",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1501873838000,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path d=\"M351.208 32h-65.277a12 12 0 0 0-10.778 6.724l-55.39 113.163c-14.513 34.704-27.133 71.932-27.133 71.932h-1.262s-12.62-37.228-27.133-71.932l-55.39-113.163A11.997 11.997 0 0 0 98.068 32H32.792c-9.057 0-14.85 9.65-10.59 17.643L102.322 200H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h88.162L152 293.228V320H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h108v92c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-92h108c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H232v-26.772L251.838 256H340c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12h-58.322l80.12-150.357C366.058 41.65 360.266 32 351.208 32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "384",
    +          "512"
    +        ],
    +        "width": 384,
    +        "height": 512,
    +        "path": "M351.208 32h-65.277a12 12 0 0 0-10.778 6.724l-55.39 113.163c-14.513 34.704-27.133 71.932-27.133 71.932h-1.262s-12.62-37.228-27.133-71.932l-55.39-113.163A11.997 11.997 0 0 0 98.068 32H32.792c-9.057 0-14.85 9.65-10.59 17.643L102.322 200H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h88.162L152 293.228V320H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h108v92c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-92h108c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H232v-26.772L251.838 256H340c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12h-58.322l80.12-150.357C366.058 41.65 360.266 32 351.208 32z"
    +      }
    +    }
    +  },
    +  "yin-yang": {
    +    "changes": [
    +      "5.3.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "daoism",
    +        "opposites",
    +        "taoism"
    +      ]
    +    },
    +    "styles": [
    +      "solid"
    +    ],
    +    "unicode": "f6ad",
    +    "label": "Yin Yang",
    +    "svg": {
    +      "solid": {
    +        "last_modified": 1535388320905,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path d=\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "496",
    +          "512"
    +        ],
    +        "width": 496,
    +        "height": 512,
    +        "path": "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"
    +      }
    +    }
    +  },
    +  "yoast": {
    +    "changes": [
    +      "4.6",
    +      "5.0.0",
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f2b1",
    +    "label": "Yoast",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426582003,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z"
    +      }
    +    }
    +  },
    +  "youtube": {
    +    "changes": [
    +      "3.2",
    +      "5.0.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": [
    +        "film",
    +        "video",
    +        "youtube-play",
    +        "youtube-square"
    +      ]
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f167",
    +    "label": "YouTube",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1511282001106,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "576",
    +          "512"
    +        ],
    +        "width": 576,
    +        "height": 512,
    +        "path": "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"
    +      }
    +    }
    +  },
    +  "youtube-square": {
    +    "changes": [
    +      "5.0.3"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f431",
    +    "label": "YouTube Square",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1515426582003,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path d=\"M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "448",
    +          "512"
    +        ],
    +        "width": 448,
    +        "height": 512,
    +        "path": "M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z"
    +      }
    +    }
    +  },
    +  "zhihu": {
    +    "changes": [
    +      "5.2.0"
    +    ],
    +    "ligatures": [],
    +    "search": {
    +      "terms": []
    +    },
    +    "styles": [
    +      "brands"
    +    ],
    +    "unicode": "f63f",
    +    "label": "Zhihu",
    +    "svg": {
    +      "brands": {
    +        "last_modified": 1532362831425,
    +        "raw": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path d=\"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"/></svg>",
    +        "viewBox": [
    +          "0",
    +          "0",
    +          "640",
    +          "512"
    +        ],
    +        "width": 640,
    +        "height": 512,
    +        "path": "M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z"
    +      }
    +    }
    +  }
    +}
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/metadata/icons.yml b/htdocs/theme/common/fontawesome-5/metadata/icons.yml
    new file mode 100644
    index 00000000000..be12bd4785a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/metadata/icons.yml
    @@ -0,0 +1,14676 @@
    +500px:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: 500px
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f26e
    +accessible-icon:
    +  changes:
    +    - 5.0.0
    +  label: Accessible Icon
    +  search:
    +    terms:
    +      - accessibility
    +      - handicap
    +      - person
    +      - wheelchair
    +      - wheelchair-alt
    +  styles:
    +    - brands
    +  unicode: f368
    +accusoft:
    +  changes:
    +    - 5.0.0
    +  label: Accusoft
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f369
    +acquisitions-incorporated:
    +  changes:
    +    - 5.4.0
    +  label: Acquisitions Incorporated
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - d&d
    +      - dnd
    +      - fantasy
    +      - game
    +      - gaming
    +      - tabletop
    +  styles:
    +    - brands
    +  unicode: f6af
    +ad:
    +  changes:
    +    - 5.3.0
    +  label: Ad
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f641
    +address-book:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Address Book
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2b9
    +address-card:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Address Card
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2bb
    +adjust:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: adjust
    +  search:
    +    terms:
    +      - contrast
    +  styles:
    +    - solid
    +  unicode: f042
    +adn:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: App.net
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f170
    +adversal:
    +  changes:
    +    - 5.0.0
    +  label: Adversal
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f36a
    +affiliatetheme:
    +  changes:
    +    - 5.0.0
    +  label: affiliatetheme
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f36b
    +air-freshener:
    +  changes:
    +    - 5.2.0
    +  label: Air Freshener
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5d0
    +algolia:
    +  changes:
    +    - 5.0.0
    +  label: Algolia
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f36c
    +align-center:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: align-center
    +  search:
    +    terms:
    +      - middle
    +      - text
    +  styles:
    +    - solid
    +  unicode: f037
    +align-justify:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: align-justify
    +  search:
    +    terms:
    +      - text
    +  styles:
    +    - solid
    +  unicode: f039
    +align-left:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: align-left
    +  search:
    +    terms:
    +      - text
    +  styles:
    +    - solid
    +  unicode: f036
    +align-right:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: align-right
    +  search:
    +    terms:
    +      - text
    +  styles:
    +    - solid
    +  unicode: f038
    +alipay:
    +  changes:
    +    - 5.3.0
    +  label: Alipay
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f642
    +allergies:
    +  changes:
    +    - 5.0.7
    +  label: Allergies
    +  search:
    +    terms:
    +      - freckles
    +      - hand
    +      - intolerances
    +      - pox
    +      - spots
    +  styles:
    +    - solid
    +  unicode: f461
    +amazon:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Amazon
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f270
    +amazon-pay:
    +  changes:
    +    - 5.0.2
    +  label: Amazon Pay
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f42c
    +ambulance:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +    - 5.0.7
    +  label: ambulance
    +  search:
    +    terms:
    +      - help
    +      - machine
    +      - support
    +      - vehicle
    +  styles:
    +    - solid
    +  unicode: f0f9
    +american-sign-language-interpreting:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: American Sign Language Interpreting
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f2a3
    +amilia:
    +  changes:
    +    - 5.0.0
    +  label: Amilia
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f36d
    +anchor:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Anchor
    +  search:
    +    terms:
    +      - link
    +  styles:
    +    - solid
    +  unicode: f13d
    +android:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Android
    +  search:
    +    terms:
    +      - robot
    +  styles:
    +    - brands
    +  unicode: f17b
    +angellist:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: AngelList
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f209
    +angle-double-down:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Angle Double Down
    +  search:
    +    terms:
    +      - arrows
    +  styles:
    +    - solid
    +  unicode: f103
    +angle-double-left:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Angle Double Left
    +  search:
    +    terms:
    +      - arrows
    +      - back
    +      - laquo
    +      - previous
    +      - quote
    +  styles:
    +    - solid
    +  unicode: f100
    +angle-double-right:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Angle Double Right
    +  search:
    +    terms:
    +      - arrows
    +      - forward
    +      - next
    +      - quote
    +      - raquo
    +  styles:
    +    - solid
    +  unicode: f101
    +angle-double-up:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Angle Double Up
    +  search:
    +    terms:
    +      - arrows
    +  styles:
    +    - solid
    +  unicode: f102
    +angle-down:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: angle-down
    +  search:
    +    terms:
    +      - arrow
    +  styles:
    +    - solid
    +  unicode: f107
    +angle-left:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: angle-left
    +  search:
    +    terms:
    +      - arrow
    +      - back
    +      - previous
    +  styles:
    +    - solid
    +  unicode: f104
    +angle-right:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: angle-right
    +  search:
    +    terms:
    +      - arrow
    +      - forward
    +      - next
    +  styles:
    +    - solid
    +  unicode: f105
    +angle-up:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: angle-up
    +  search:
    +    terms:
    +      - arrow
    +  styles:
    +    - solid
    +  unicode: f106
    +angry:
    +  changes:
    +    - 5.1.0
    +  label: Angry Face
    +  search:
    +    terms:
    +      - disapprove
    +      - emoticon
    +      - face
    +      - mad
    +      - upset
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f556
    +angrycreative:
    +  changes:
    +    - 5.0.0
    +  label: Angry Creative
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f36e
    +angular:
    +  changes:
    +    - 5.0.0
    +  label: Angular
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f420
    +ankh:
    +  changes:
    +    - 5.3.0
    +  label: Ankh
    +  search:
    +    terms:
    +      - amulet
    +      - copper
    +      - coptic christianity
    +      - copts
    +      - crux ansata
    +      - egyptian
    +      - venus
    +  styles:
    +    - solid
    +  unicode: f644
    +app-store:
    +  changes:
    +    - 5.0.0
    +  label: App Store
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f36f
    +app-store-ios:
    +  changes:
    +    - 5.0.0
    +  label: iOS App Store
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f370
    +apper:
    +  changes:
    +    - 5.0.0
    +  label: Apper Systems AB
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f371
    +apple:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +    - 5.0.7
    +  label: Apple
    +  search:
    +    terms:
    +      - food
    +      - fruit
    +      - mac
    +      - osx
    +  styles:
    +    - brands
    +  unicode: f179
    +apple-alt:
    +  changes:
    +    - 5.2.0
    +  label: Fruit Apple
    +  search:
    +    terms:
    +      - fall
    +      - food
    +      - fruit
    +      - fuji
    +      - macintosh
    +      - seasonal
    +  styles:
    +    - solid
    +  unicode: f5d1
    +apple-pay:
    +  changes:
    +    - 5.0.0
    +  label: Apple Pay
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f415
    +archive:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +    - 5.0.9
    +  label: Archive
    +  search:
    +    terms:
    +      - box
    +      - package
    +      - storage
    +  styles:
    +    - solid
    +  unicode: f187
    +archway:
    +  changes:
    +    - 5.1.0
    +  label: Archway
    +  search:
    +    terms:
    +      - arc
    +      - monument
    +      - road
    +      - street
    +  styles:
    +    - solid
    +  unicode: f557
    +arrow-alt-circle-down:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Arrow Circle Down
    +  search:
    +    terms:
    +      - arrow-circle-o-down
    +      - download
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f358
    +arrow-alt-circle-left:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Arrow Circle Left
    +  search:
    +    terms:
    +      - arrow-circle-o-left
    +      - back
    +      - previous
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f359
    +arrow-alt-circle-right:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Arrow Circle Right
    +  search:
    +    terms:
    +      - arrow-circle-o-right
    +      - forward
    +      - next
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f35a
    +arrow-alt-circle-up:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Arrow Circle Up
    +  search:
    +    terms:
    +      - arrow-circle-o-up
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f35b
    +arrow-circle-down:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Arrow Circle Down
    +  search:
    +    terms:
    +      - download
    +  styles:
    +    - solid
    +  unicode: f0ab
    +arrow-circle-left:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Arrow Circle Left
    +  search:
    +    terms:
    +      - back
    +      - previous
    +  styles:
    +    - solid
    +  unicode: f0a8
    +arrow-circle-right:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Arrow Circle Right
    +  search:
    +    terms:
    +      - forward
    +      - next
    +  styles:
    +    - solid
    +  unicode: f0a9
    +arrow-circle-up:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Arrow Circle Up
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f0aa
    +arrow-down:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: arrow-down
    +  search:
    +    terms:
    +      - download
    +  styles:
    +    - solid
    +  unicode: f063
    +arrow-left:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: arrow-left
    +  search:
    +    terms:
    +      - back
    +      - previous
    +  styles:
    +    - solid
    +  unicode: f060
    +arrow-right:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: arrow-right
    +  search:
    +    terms:
    +      - forward
    +      - next
    +  styles:
    +    - solid
    +  unicode: f061
    +arrow-up:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: arrow-up
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f062
    +arrows-alt:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Alternate Arrows
    +  search:
    +    terms:
    +      - arrow
    +      - arrows
    +      - bigger
    +      - enlarge
    +      - expand
    +      - fullscreen
    +      - move
    +      - position
    +      - reorder
    +      - resize
    +  styles:
    +    - solid
    +  unicode: f0b2
    +arrows-alt-h:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Arrows Horizontal
    +  search:
    +    terms:
    +      - arrows-h
    +      - resize
    +  styles:
    +    - solid
    +  unicode: f337
    +arrows-alt-v:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Arrows Vertical
    +  search:
    +    terms:
    +      - arrows-v
    +      - resize
    +  styles:
    +    - solid
    +  unicode: f338
    +assistive-listening-systems:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Assistive Listening Systems
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f2a2
    +asterisk:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: asterisk
    +  search:
    +    terms:
    +      - details
    +  styles:
    +    - solid
    +  unicode: f069
    +asymmetrik:
    +  changes:
    +    - 5.0.0
    +  label: 'Asymmetrik, Ltd.'
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f372
    +at:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: At
    +  search:
    +    terms:
    +      - e-mail
    +      - email
    +  styles:
    +    - solid
    +  unicode: f1fa
    +atlas:
    +  changes:
    +    - 5.1.0
    +  label: Atlas
    +  search:
    +    terms:
    +      - book
    +      - directions
    +      - geography
    +      - map
    +      - wayfinding
    +  styles:
    +    - solid
    +  unicode: f558
    +atom:
    +  changes:
    +    - 5.2.0
    +  label: Atom
    +  search:
    +    terms:
    +      - atheism
    +      - chemistry
    +      - science
    +  styles:
    +    - solid
    +  unicode: f5d2
    +audible:
    +  changes:
    +    - 5.0.0
    +  label: Audible
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f373
    +audio-description:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Audio Description
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f29e
    +autoprefixer:
    +  changes:
    +    - 5.0.0
    +  label: Autoprefixer
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f41c
    +avianex:
    +  changes:
    +    - 5.0.0
    +  label: avianex
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f374
    +aviato:
    +  changes:
    +    - 5.0.0
    +  label: Aviato
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f421
    +award:
    +  changes:
    +    - 5.1.0
    +    - 5.2.0
    +  label: Award
    +  search:
    +    terms:
    +      - honor
    +      - praise
    +      - prize
    +      - recognition
    +      - ribbon
    +  styles:
    +    - solid
    +  unicode: f559
    +aws:
    +  changes:
    +    - 5.0.0
    +    - 5.1.0
    +  label: Amazon Web Services (AWS)
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f375
    +backspace:
    +  changes:
    +    - 5.1.0
    +  label: Backspace
    +  search:
    +    terms:
    +      - command
    +      - delete
    +      - keyboard
    +      - undo
    +  styles:
    +    - solid
    +  unicode: f55a
    +backward:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: backward
    +  search:
    +    terms:
    +      - previous
    +      - rewind
    +  styles:
    +    - solid
    +  unicode: f04a
    +balance-scale:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +    - 5.0.13
    +  label: Balance Scale
    +  search:
    +    terms:
    +      - balanced
    +      - justice
    +      - legal
    +      - measure
    +      - weight
    +  styles:
    +    - solid
    +  unicode: f24e
    +ban:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: ban
    +  search:
    +    terms:
    +      - abort
    +      - ban
    +      - block
    +      - cancel
    +      - delete
    +      - hide
    +      - prohibit
    +      - remove
    +      - stop
    +      - trash
    +  styles:
    +    - solid
    +  unicode: f05e
    +band-aid:
    +  changes:
    +    - 5.0.7
    +  label: Band-Aid
    +  search:
    +    terms:
    +      - bandage
    +      - boo boo
    +      - ouch
    +  styles:
    +    - solid
    +  unicode: f462
    +bandcamp:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Bandcamp
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2d5
    +barcode:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: barcode
    +  search:
    +    terms:
    +      - scan
    +  styles:
    +    - solid
    +  unicode: f02a
    +bars:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Bars
    +  search:
    +    terms:
    +      - checklist
    +      - drag
    +      - hamburger
    +      - list
    +      - menu
    +      - nav
    +      - navigation
    +      - ol
    +      - reorder
    +      - settings
    +      - todo
    +      - ul
    +  styles:
    +    - solid
    +  unicode: f0c9
    +baseball-ball:
    +  changes:
    +    - 5.0.5
    +  label: Baseball Ball
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f433
    +basketball-ball:
    +  changes:
    +    - 5.0.5
    +  label: Basketball Ball
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f434
    +bath:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Bath
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f2cd
    +battery-empty:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Battery Empty
    +  search:
    +    terms:
    +      - power
    +      - status
    +  styles:
    +    - solid
    +  unicode: f244
    +battery-full:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Battery Full
    +  search:
    +    terms:
    +      - power
    +      - status
    +  styles:
    +    - solid
    +  unicode: f240
    +battery-half:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Battery 1/2 Full
    +  search:
    +    terms:
    +      - power
    +      - status
    +  styles:
    +    - solid
    +  unicode: f242
    +battery-quarter:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Battery 1/4 Full
    +  search:
    +    terms:
    +      - power
    +      - status
    +  styles:
    +    - solid
    +  unicode: f243
    +battery-three-quarters:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Battery 3/4 Full
    +  search:
    +    terms:
    +      - power
    +      - status
    +  styles:
    +    - solid
    +  unicode: f241
    +bed:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +    - 5.1.0
    +  label: Bed
    +  search:
    +    terms:
    +      - lodging
    +      - sleep
    +      - travel
    +  styles:
    +    - solid
    +  unicode: f236
    +beer:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: beer
    +  search:
    +    terms:
    +      - alcohol
    +      - bar
    +      - beverage
    +      - drink
    +      - liquor
    +      - mug
    +      - stein
    +  styles:
    +    - solid
    +  unicode: f0fc
    +behance:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Behance
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1b4
    +behance-square:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Behance Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1b5
    +bell:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.2.0
    +  label: bell
    +  search:
    +    terms:
    +      - alert
    +      - notification
    +      - reminder
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0f3
    +bell-slash:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +    - 5.2.0
    +  label: Bell Slash
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1f6
    +bezier-curve:
    +  changes:
    +    - 5.1.0
    +  label: Bezier Curve
    +  search:
    +    terms:
    +      - curves
    +      - illustrator
    +      - lines
    +      - path
    +      - vector
    +  styles:
    +    - solid
    +  unicode: f55b
    +bible:
    +  changes:
    +    - 5.3.0
    +  label: Bible
    +  search:
    +    terms:
    +      - book
    +      - catholicism
    +      - christianity
    +  styles:
    +    - solid
    +  unicode: f647
    +bicycle:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Bicycle
    +  search:
    +    terms:
    +      - bike
    +      - gears
    +      - transportation
    +      - vehicle
    +  styles:
    +    - solid
    +  unicode: f206
    +bimobject:
    +  changes:
    +    - 5.0.0
    +  label: BIMobject
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f378
    +binoculars:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +    - 5.2.0
    +  label: Binoculars
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1e5
    +birthday-cake:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Birthday Cake
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1fd
    +bitbucket:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Bitbucket
    +  search:
    +    terms:
    +      - bitbucket-square
    +      - git
    +  styles:
    +    - brands
    +  unicode: f171
    +bitcoin:
    +  changes:
    +    - 5.0.0
    +  label: Bitcoin
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f379
    +bity:
    +  changes:
    +    - 5.0.0
    +  label: Bity
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f37a
    +black-tie:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Font Awesome Black Tie
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f27e
    +blackberry:
    +  changes:
    +    - 5.0.0
    +  label: BlackBerry
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f37b
    +blender:
    +  changes:
    +    - 5.0.13
    +  label: Blender
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f517
    +blender-phone:
    +  changes:
    +    - 5.4.0
    +  label: Blender Phone
    +  search:
    +    terms:
    +      - appliance
    +      - fantasy
    +      - silly
    +  styles:
    +    - solid
    +  unicode: f6b6
    +blind:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Blind
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f29d
    +blogger:
    +  changes:
    +    - 5.0.0
    +  label: Blogger
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f37c
    +blogger-b:
    +  changes:
    +    - 5.0.0
    +  label: Blogger B
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f37d
    +bluetooth:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Bluetooth
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f293
    +bluetooth-b:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Bluetooth
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f294
    +bold:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: bold
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f032
    +bolt:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Lightning Bolt
    +  search:
    +    terms:
    +      - electricity
    +      - lightning
    +      - weather
    +      - zap
    +  styles:
    +    - solid
    +  unicode: f0e7
    +bomb:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Bomb
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1e2
    +bone:
    +  changes:
    +    - 5.2.0
    +  label: Bone
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5d7
    +bong:
    +  changes:
    +    - 5.1.0
    +  label: Bong
    +  search:
    +    terms:
    +      - aparatus
    +      - cannabis
    +      - marijuana
    +      - pipe
    +      - smoke
    +      - smoking
    +  styles:
    +    - solid
    +  unicode: f55c
    +book:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: book
    +  search:
    +    terms:
    +      - documentation
    +      - read
    +  styles:
    +    - solid
    +  unicode: f02d
    +book-dead:
    +  changes:
    +    - 5.4.0
    +  label: Book of the Dead
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - crossbones
    +      - d&d
    +      - dark arts
    +      - death
    +      - dnd
    +      - documentation
    +      - evil
    +      - fantasy
    +      - halloween
    +      - holiday
    +      - read
    +      - skull
    +      - spell
    +  styles:
    +    - solid
    +  unicode: f6b7
    +book-open:
    +  changes:
    +    - 5.0.13
    +    - 5.1.0
    +    - 5.2.0
    +  label: Book Open
    +  search:
    +    terms:
    +      - flyer
    +      - notebook
    +      - open book
    +      - pamphlet
    +      - reading
    +  styles:
    +    - solid
    +  unicode: f518
    +book-reader:
    +  changes:
    +    - 5.2.0
    +  label: Book Reader
    +  search:
    +    terms:
    +      - library
    +  styles:
    +    - solid
    +  unicode: f5da
    +bookmark:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: bookmark
    +  search:
    +    terms:
    +      - save
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f02e
    +bowling-ball:
    +  changes:
    +    - 5.0.5
    +  label: Bowling Ball
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f436
    +box:
    +  changes:
    +    - 5.0.7
    +  label: Box
    +  search:
    +    terms:
    +      - package
    +  styles:
    +    - solid
    +  unicode: f466
    +box-open:
    +  changes:
    +    - 5.0.9
    +  label: Box Open
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f49e
    +boxes:
    +  changes:
    +    - 5.0.7
    +  label: Boxes
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f468
    +braille:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Braille
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f2a1
    +brain:
    +  changes:
    +    - 5.2.0
    +  label: Brain
    +  search:
    +    terms:
    +      - cerebellum
    +      - gray matter
    +      - intellect
    +      - medulla oblongata
    +      - mind
    +      - noodle
    +      - wit
    +  styles:
    +    - solid
    +  unicode: f5dc
    +briefcase:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Briefcase
    +  search:
    +    terms:
    +      - bag
    +      - business
    +      - luggage
    +      - office
    +      - work
    +  styles:
    +    - solid
    +  unicode: f0b1
    +briefcase-medical:
    +  changes:
    +    - 5.0.7
    +  label: Medical Briefcase
    +  search:
    +    terms:
    +      - health briefcase
    +  styles:
    +    - solid
    +  unicode: f469
    +broadcast-tower:
    +  changes:
    +    - 5.0.13
    +  label: Broadcast Tower
    +  search:
    +    terms:
    +      - airwaves
    +      - radio
    +      - waves
    +  styles:
    +    - solid
    +  unicode: f519
    +broom:
    +  changes:
    +    - 5.0.13
    +  label: Broom
    +  search:
    +    terms:
    +      - clean
    +      - firebolt
    +      - fly
    +      - halloween
    +      - holiday
    +      - nimbus 2000
    +      - quidditch
    +      - sweep
    +      - witch
    +  styles:
    +    - solid
    +  unicode: f51a
    +brush:
    +  changes:
    +    - 5.1.0
    +  label: Brush
    +  search:
    +    terms:
    +      - bristles
    +      - color
    +      - handle
    +      - painting
    +  styles:
    +    - solid
    +  unicode: f55d
    +btc:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: BTC
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f15a
    +bug:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Bug
    +  search:
    +    terms:
    +      - insect
    +      - report
    +  styles:
    +    - solid
    +  unicode: f188
    +building:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Building
    +  search:
    +    terms:
    +      - apartment
    +      - business
    +      - company
    +      - office
    +      - work
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1ad
    +bullhorn:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.3.0
    +  label: bullhorn
    +  search:
    +    terms:
    +      - announcement
    +      - broadcast
    +      - louder
    +      - megaphone
    +      - share
    +  styles:
    +    - solid
    +  unicode: f0a1
    +bullseye:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Bullseye
    +  search:
    +    terms:
    +      - target
    +  styles:
    +    - solid
    +  unicode: f140
    +burn:
    +  changes:
    +    - 5.0.7
    +  label: Burn
    +  search:
    +    terms:
    +      - energy
    +  styles:
    +    - solid
    +  unicode: f46a
    +buromobelexperte:
    +  changes:
    +    - 5.0.0
    +  label: Büromöbel-Experte GmbH & Co. KG.
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f37f
    +bus:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +    - 5.1.0
    +  label: Bus
    +  search:
    +    terms:
    +      - machine
    +      - public transportation
    +      - transportation
    +      - vehicle
    +  styles:
    +    - solid
    +  unicode: f207
    +bus-alt:
    +  changes:
    +    - 5.1.0
    +  label: Bus Alt
    +  search:
    +    terms:
    +      - machine
    +      - public transportation
    +      - transportation
    +      - vehicle
    +  styles:
    +    - solid
    +  unicode: f55e
    +business-time:
    +  changes:
    +    - 5.3.0
    +  label: Business Time
    +  search:
    +    terms:
    +      - briefcase
    +      - business socks
    +      - clock
    +      - flight of the conchords
    +      - wednesday
    +  styles:
    +    - solid
    +  unicode: f64a
    +buysellads:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: BuySellAds
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f20d
    +calculator:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Calculator
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1ec
    +calendar:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Calendar
    +  search:
    +    terms:
    +      - calendar-o
    +      - date
    +      - event
    +      - schedule
    +      - time
    +      - when
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f133
    +calendar-alt:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Alternate Calendar
    +  search:
    +    terms:
    +      - calendar
    +      - date
    +      - event
    +      - schedule
    +      - time
    +      - when
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f073
    +calendar-check:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Calendar Check
    +  search:
    +    terms:
    +      - accept
    +      - agree
    +      - appointment
    +      - confirm
    +      - correct
    +      - done
    +      - ok
    +      - select
    +      - success
    +      - todo
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f274
    +calendar-minus:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Calendar Minus
    +  search:
    +    terms:
    +      - delete
    +      - negative
    +      - remove
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f272
    +calendar-plus:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Calendar Plus
    +  search:
    +    terms:
    +      - add
    +      - create
    +      - new
    +      - positive
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f271
    +calendar-times:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Calendar Times
    +  search:
    +    terms:
    +      - archive
    +      - delete
    +      - remove
    +      - x
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f273
    +camera:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: camera
    +  search:
    +    terms:
    +      - photo
    +      - picture
    +      - record
    +  styles:
    +    - solid
    +  unicode: f030
    +camera-retro:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Retro Camera
    +  search:
    +    terms:
    +      - photo
    +      - picture
    +      - record
    +  styles:
    +    - solid
    +  unicode: f083
    +campground:
    +  changes:
    +    - 5.4.0
    +  label: Campground
    +  search:
    +    terms:
    +      - camping
    +      - fall
    +      - outdoors
    +      - seasonal
    +      - tent
    +  styles:
    +    - solid
    +  unicode: f6bb
    +cannabis:
    +  changes:
    +    - 5.1.0
    +  label: Cannabis
    +  search:
    +    terms:
    +      - bud
    +      - chronic
    +      - drugs
    +      - endica
    +      - endo
    +      - ganja
    +      - marijuana
    +      - mary jane
    +      - pot
    +      - reefer
    +      - sativa
    +      - spliff
    +      - weed
    +      - whacky-tabacky
    +  styles:
    +    - solid
    +  unicode: f55f
    +capsules:
    +  changes:
    +    - 5.0.7
    +  label: Capsules
    +  search:
    +    terms:
    +      - drugs
    +      - medicine
    +  styles:
    +    - solid
    +  unicode: f46b
    +car:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +    - 5.2.0
    +  label: Car
    +  search:
    +    terms:
    +      - machine
    +      - transportation
    +      - vehicle
    +  styles:
    +    - solid
    +  unicode: f1b9
    +car-alt:
    +  changes:
    +    - 5.2.0
    +  label: Alternate Car
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5de
    +car-battery:
    +  changes:
    +    - 5.2.0
    +  label: Car Battery
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5df
    +car-crash:
    +  changes:
    +    - 5.2.0
    +  label: Car Crash
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5e1
    +car-side:
    +  changes:
    +    - 5.2.0
    +  label: Car Side
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5e4
    +caret-down:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Caret Down
    +  search:
    +    terms:
    +      - arrow
    +      - dropdown
    +      - menu
    +      - more
    +      - triangle down
    +  styles:
    +    - solid
    +  unicode: f0d7
    +caret-left:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Caret Left
    +  search:
    +    terms:
    +      - arrow
    +      - back
    +      - previous
    +      - triangle left
    +  styles:
    +    - solid
    +  unicode: f0d9
    +caret-right:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Caret Right
    +  search:
    +    terms:
    +      - arrow
    +      - forward
    +      - next
    +      - triangle right
    +  styles:
    +    - solid
    +  unicode: f0da
    +caret-square-down:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Caret Square Down
    +  search:
    +    terms:
    +      - caret-square-o-down
    +      - dropdown
    +      - menu
    +      - more
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f150
    +caret-square-left:
    +  changes:
    +    - '4'
    +    - 5.0.0
    +  label: Caret Square Left
    +  search:
    +    terms:
    +      - back
    +      - caret-square-o-left
    +      - previous
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f191
    +caret-square-right:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Caret Square Right
    +  search:
    +    terms:
    +      - caret-square-o-right
    +      - forward
    +      - next
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f152
    +caret-square-up:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Caret Square Up
    +  search:
    +    terms:
    +      - caret-square-o-up
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f151
    +caret-up:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Caret Up
    +  search:
    +    terms:
    +      - arrow
    +      - triangle up
    +  styles:
    +    - solid
    +  unicode: f0d8
    +cart-arrow-down:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Shopping Cart Arrow Down
    +  search:
    +    terms:
    +      - shopping
    +  styles:
    +    - solid
    +  unicode: f218
    +cart-plus:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Add to Shopping Cart
    +  search:
    +    terms:
    +      - add
    +      - create
    +      - new
    +      - positive
    +      - shopping
    +  styles:
    +    - solid
    +  unicode: f217
    +cat:
    +  changes:
    +    - 5.4.0
    +  label: Cat
    +  search:
    +    terms:
    +      - feline
    +      - halloween
    +      - holiday
    +      - kitten
    +      - kitty
    +      - meow
    +      - pet
    +  styles:
    +    - solid
    +  unicode: f6be
    +cc-amazon-pay:
    +  changes:
    +    - 5.0.2
    +  label: Amazon Pay Credit Card
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f42d
    +cc-amex:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: American Express Credit Card
    +  search:
    +    terms:
    +      - amex
    +  styles:
    +    - brands
    +  unicode: f1f3
    +cc-apple-pay:
    +  changes:
    +    - 5.0.0
    +  label: Apple Pay Credit Card
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f416
    +cc-diners-club:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Diner's Club Credit Card
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f24c
    +cc-discover:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Discover Credit Card
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1f2
    +cc-jcb:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: JCB Credit Card
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f24b
    +cc-mastercard:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: MasterCard Credit Card
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1f1
    +cc-paypal:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Paypal Credit Card
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1f4
    +cc-stripe:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Stripe Credit Card
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1f5
    +cc-visa:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Visa Credit Card
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1f0
    +centercode:
    +  changes:
    +    - 5.0.0
    +  label: Centercode
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f380
    +certificate:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: certificate
    +  search:
    +    terms:
    +      - badge
    +      - star
    +  styles:
    +    - solid
    +  unicode: f0a3
    +chair:
    +  changes:
    +    - 5.4.0
    +  label: Chair
    +  search:
    +    terms:
    +      - furniture
    +      - seat
    +  styles:
    +    - solid
    +  unicode: f6c0
    +chalkboard:
    +  changes:
    +    - 5.0.13
    +  label: Chalkboard
    +  search:
    +    terms:
    +      - blackboard
    +      - learning
    +      - school
    +      - teaching
    +      - whiteboard
    +      - writing
    +  styles:
    +    - solid
    +  unicode: f51b
    +chalkboard-teacher:
    +  changes:
    +    - 5.0.13
    +  label: Chalkboard Teacher
    +  search:
    +    terms:
    +      - blackboard
    +      - instructor
    +      - learning
    +      - professor
    +      - school
    +      - whiteboard
    +      - writing
    +  styles:
    +    - solid
    +  unicode: f51c
    +charging-station:
    +  changes:
    +    - 5.2.0
    +  label: Charging Station
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5e7
    +chart-area:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Area Chart
    +  search:
    +    terms:
    +      - analytics
    +      - area-chart
    +      - graph
    +  styles:
    +    - solid
    +  unicode: f1fe
    +chart-bar:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Bar Chart
    +  search:
    +    terms:
    +      - analytics
    +      - bar-chart
    +      - graph
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f080
    +chart-line:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Line Chart
    +  search:
    +    terms:
    +      - activity
    +      - analytics
    +      - dashboard
    +      - graph
    +      - line-chart
    +  styles:
    +    - solid
    +  unicode: f201
    +chart-pie:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Pie Chart
    +  search:
    +    terms:
    +      - analytics
    +      - graph
    +      - pie-chart
    +  styles:
    +    - solid
    +  unicode: f200
    +check:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Check
    +  search:
    +    terms:
    +      - accept
    +      - agree
    +      - checkmark
    +      - confirm
    +      - correct
    +      - done
    +      - notice
    +      - notification
    +      - notify
    +      - ok
    +      - select
    +      - success
    +      - tick
    +      - todo
    +      - 'yes'
    +  styles:
    +    - solid
    +  unicode: f00c
    +check-circle:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Check Circle
    +  search:
    +    terms:
    +      - accept
    +      - agree
    +      - confirm
    +      - correct
    +      - done
    +      - ok
    +      - select
    +      - success
    +      - todo
    +      - 'yes'
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f058
    +check-double:
    +  changes:
    +    - 5.1.0
    +  label: Check Double
    +  search:
    +    terms:
    +      - accept
    +      - agree
    +      - checkmark
    +      - confirm
    +      - correct
    +      - done
    +      - notice
    +      - notification
    +      - notify
    +      - ok
    +      - select
    +      - success
    +      - tick
    +      - todo
    +  styles:
    +    - solid
    +  unicode: f560
    +check-square:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Check Square
    +  search:
    +    terms:
    +      - accept
    +      - agree
    +      - checkmark
    +      - confirm
    +      - correct
    +      - done
    +      - ok
    +      - select
    +      - success
    +      - todo
    +      - 'yes'
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f14a
    +chess:
    +  changes:
    +    - 5.0.5
    +  label: Chess
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f439
    +chess-bishop:
    +  changes:
    +    - 5.0.5
    +  label: Chess Bishop
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f43a
    +chess-board:
    +  changes:
    +    - 5.0.5
    +  label: Chess Board
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f43c
    +chess-king:
    +  changes:
    +    - 5.0.5
    +  label: Chess King
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f43f
    +chess-knight:
    +  changes:
    +    - 5.0.5
    +  label: Chess Knight
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f441
    +chess-pawn:
    +  changes:
    +    - 5.0.5
    +  label: Chess Pawn
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f443
    +chess-queen:
    +  changes:
    +    - 5.0.5
    +  label: Chess Queen
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f445
    +chess-rook:
    +  changes:
    +    - 5.0.5
    +  label: Chess Rook
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f447
    +chevron-circle-down:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Chevron Circle Down
    +  search:
    +    terms:
    +      - arrow
    +      - dropdown
    +      - menu
    +      - more
    +  styles:
    +    - solid
    +  unicode: f13a
    +chevron-circle-left:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Chevron Circle Left
    +  search:
    +    terms:
    +      - arrow
    +      - back
    +      - previous
    +  styles:
    +    - solid
    +  unicode: f137
    +chevron-circle-right:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Chevron Circle Right
    +  search:
    +    terms:
    +      - arrow
    +      - forward
    +      - next
    +  styles:
    +    - solid
    +  unicode: f138
    +chevron-circle-up:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Chevron Circle Up
    +  search:
    +    terms:
    +      - arrow
    +  styles:
    +    - solid
    +  unicode: f139
    +chevron-down:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: chevron-down
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f078
    +chevron-left:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: chevron-left
    +  search:
    +    terms:
    +      - back
    +      - bracket
    +      - previous
    +  styles:
    +    - solid
    +  unicode: f053
    +chevron-right:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: chevron-right
    +  search:
    +    terms:
    +      - bracket
    +      - forward
    +      - next
    +  styles:
    +    - solid
    +  unicode: f054
    +chevron-up:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: chevron-up
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f077
    +child:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Child
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1ae
    +chrome:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Chrome
    +  search:
    +    terms:
    +      - browser
    +  styles:
    +    - brands
    +  unicode: f268
    +church:
    +  changes:
    +    - 5.0.13
    +  label: Church
    +  search:
    +    terms:
    +      - building
    +      - community
    +      - religion
    +  styles:
    +    - solid
    +  unicode: f51d
    +circle:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Circle
    +  search:
    +    terms:
    +      - circle-thin
    +      - dot
    +      - notification
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f111
    +circle-notch:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Circle Notched
    +  search:
    +    terms:
    +      - circle-o-notch
    +  styles:
    +    - solid
    +  unicode: f1ce
    +city:
    +  changes:
    +    - 5.3.0
    +  label: City
    +  search:
    +    terms:
    +      - buildings
    +      - busy
    +      - skyscrapers
    +      - urban
    +      - windows
    +  styles:
    +    - solid
    +  unicode: f64f
    +clipboard:
    +  changes:
    +    - 5.0.0
    +  label: Clipboard
    +  search:
    +    terms:
    +      - paste
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f328
    +clipboard-check:
    +  changes:
    +    - 5.0.7
    +  label: Clipboard Check
    +  search:
    +    terms:
    +      - accept
    +      - agree
    +      - confirm
    +      - done
    +      - ok
    +      - select
    +      - success
    +      - todo
    +      - 'yes'
    +  styles:
    +    - solid
    +  unicode: f46c
    +clipboard-list:
    +  changes:
    +    - 5.0.7
    +  label: Clipboard List
    +  search:
    +    terms:
    +      - checklist
    +      - completed
    +      - done
    +      - finished
    +      - intinerary
    +      - ol
    +      - schedule
    +      - todo
    +      - ul
    +  styles:
    +    - solid
    +  unicode: f46d
    +clock:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Clock
    +  search:
    +    terms:
    +      - date
    +      - late
    +      - schedule
    +      - timer
    +      - timestamp
    +      - watch
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f017
    +clone:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Clone
    +  search:
    +    terms:
    +      - copy
    +      - duplicate
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f24d
    +closed-captioning:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Closed Captioning
    +  search:
    +    terms:
    +      - cc
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f20a
    +cloud:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.0.11
    +  label: Cloud
    +  search:
    +    terms:
    +      - save
    +  styles:
    +    - solid
    +  unicode: f0c2
    +cloud-download-alt:
    +  changes:
    +    - 5.0.0
    +    - 5.0.11
    +  label: Alternate Cloud Download
    +  search:
    +    terms:
    +      - cloud-download
    +  styles:
    +    - solid
    +  unicode: f381
    +cloud-moon:
    +  changes:
    +    - 5.4.0
    +  label: Cloud with Moon
    +  search:
    +    terms:
    +      - evening
    +      - halloween
    +      - holiday
    +      - night
    +      - sky
    +  styles:
    +    - solid
    +  unicode: f6c3
    +cloud-sun:
    +  changes:
    +    - 5.4.0
    +  label: Cloud with Sun
    +  search:
    +    terms:
    +      - day
    +      - daytime
    +      - fall
    +      - outdoors
    +      - seasonal
    +  styles:
    +    - solid
    +  unicode: f6c4
    +cloud-upload-alt:
    +  changes:
    +    - 5.0.0
    +    - 5.0.11
    +  label: Alternate Cloud Upload
    +  search:
    +    terms:
    +      - cloud-upload
    +  styles:
    +    - solid
    +  unicode: f382
    +cloudscale:
    +  changes:
    +    - 5.0.0
    +  label: cloudscale.ch
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f383
    +cloudsmith:
    +  changes:
    +    - 5.0.0
    +  label: Cloudsmith
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f384
    +cloudversify:
    +  changes:
    +    - 5.0.0
    +  label: cloudversify
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f385
    +cocktail:
    +  changes:
    +    - 5.1.0
    +  label: Cocktail
    +  search:
    +    terms:
    +      - alcohol
    +      - beverage
    +      - drink
    +  styles:
    +    - solid
    +  unicode: f561
    +code:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Code
    +  search:
    +    terms:
    +      - brackets
    +      - html
    +  styles:
    +    - solid
    +  unicode: f121
    +code-branch:
    +  changes:
    +    - 5.0.0
    +  label: Code Branch
    +  search:
    +    terms:
    +      - branch
    +      - code-fork
    +      - fork
    +      - git
    +      - github
    +      - rebase
    +      - svn
    +      - vcs
    +      - version
    +  styles:
    +    - solid
    +  unicode: f126
    +codepen:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Codepen
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1cb
    +codiepie:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Codie Pie
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f284
    +coffee:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Coffee
    +  search:
    +    terms:
    +      - beverage
    +      - breakfast
    +      - cafe
    +      - drink
    +      - fall
    +      - morning
    +      - mug
    +      - seasonal
    +      - tea
    +  styles:
    +    - solid
    +  unicode: f0f4
    +cog:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: cog
    +  search:
    +    terms:
    +      - settings
    +  styles:
    +    - solid
    +  unicode: f013
    +cogs:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: cogs
    +  search:
    +    terms:
    +      - gears
    +      - settings
    +  styles:
    +    - solid
    +  unicode: f085
    +coins:
    +  changes:
    +    - 5.0.13
    +  label: Coins
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f51e
    +columns:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Columns
    +  search:
    +    terms:
    +      - dashboard
    +      - panes
    +      - split
    +  styles:
    +    - solid
    +  unicode: f0db
    +comment:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.0.9
    +  label: comment
    +  search:
    +    terms:
    +      - bubble
    +      - chat
    +      - conversation
    +      - feedback
    +      - message
    +      - note
    +      - notification
    +      - sms
    +      - speech
    +      - texting
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f075
    +comment-alt:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Alternate Comment
    +  search:
    +    terms:
    +      - bubble
    +      - chat
    +      - commenting
    +      - conversation
    +      - feedback
    +      - message
    +      - note
    +      - notification
    +      - sms
    +      - speech
    +      - texting
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f27a
    +comment-dollar:
    +  changes:
    +    - 5.3.0
    +  label: Comment Dollar
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f651
    +comment-dots:
    +  changes:
    +    - 5.0.9
    +  label: Comment Dots
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f4ad
    +comment-slash:
    +  changes:
    +    - 5.0.9
    +  label: Comment Slash
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4b3
    +comments:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.0.9
    +  label: comments
    +  search:
    +    terms:
    +      - bubble
    +      - chat
    +      - conversation
    +      - feedback
    +      - message
    +      - note
    +      - notification
    +      - sms
    +      - speech
    +      - texting
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f086
    +comments-dollar:
    +  changes:
    +    - 5.3.0
    +  label: Comments Dollar
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f653
    +compact-disc:
    +  changes:
    +    - 5.0.13
    +  label: Compact Disc
    +  search:
    +    terms:
    +      - bluray
    +      - cd
    +      - disc
    +      - media
    +  styles:
    +    - solid
    +  unicode: f51f
    +compass:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +    - 5.2.0
    +  label: Compass
    +  search:
    +    terms:
    +      - directory
    +      - location
    +      - menu
    +      - safari
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f14e
    +compress:
    +  changes:
    +    - 5.0.0
    +  label: Compress
    +  search:
    +    terms:
    +      - collapse
    +      - combine
    +      - contract
    +      - merge
    +      - smaller
    +  styles:
    +    - solid
    +  unicode: f066
    +concierge-bell:
    +  changes:
    +    - 5.1.0
    +  label: Concierge Bell
    +  search:
    +    terms:
    +      - attention
    +      - hotel
    +      - service
    +      - support
    +  styles:
    +    - solid
    +  unicode: f562
    +connectdevelop:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Connect Develop
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f20e
    +contao:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Contao
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f26d
    +cookie:
    +  changes:
    +    - 5.1.0
    +  label: Cookie
    +  search:
    +    terms:
    +      - baked good
    +      - chips
    +      - food
    +      - snack
    +      - sweet
    +      - treat
    +  styles:
    +    - solid
    +  unicode: f563
    +cookie-bite:
    +  changes:
    +    - 5.1.0
    +  label: Cookie Bite
    +  search:
    +    terms:
    +      - baked good
    +      - bitten
    +      - chips
    +      - eating
    +      - food
    +      - snack
    +      - sweet
    +      - treat
    +  styles:
    +    - solid
    +  unicode: f564
    +copy:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Copy
    +  search:
    +    terms:
    +      - clone
    +      - duplicate
    +      - file
    +      - files-o
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0c5
    +copyright:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Copyright
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1f9
    +couch:
    +  changes:
    +    - 5.0.9
    +  label: Couch
    +  search:
    +    terms:
    +      - furniture
    +      - sofa
    +  styles:
    +    - solid
    +  unicode: f4b8
    +cpanel:
    +  changes:
    +    - 5.0.0
    +  label: cPanel
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f388
    +creative-commons:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +    - 5.0.11
    +    - 5.1.0
    +  label: Creative Commons
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f25e
    +creative-commons-by:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons Attribution
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4e7
    +creative-commons-nc:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons Noncommercial
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4e8
    +creative-commons-nc-eu:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons Noncommercial (Euro Sign)
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4e9
    +creative-commons-nc-jp:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons Noncommercial (Yen Sign)
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4ea
    +creative-commons-nd:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons No Derivative Works
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4eb
    +creative-commons-pd:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons Public Domain
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4ec
    +creative-commons-pd-alt:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons Public Domain Alternate
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4ed
    +creative-commons-remix:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons Remix
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4ee
    +creative-commons-sa:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons Share Alike
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4ef
    +creative-commons-sampling:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons Sampling
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4f0
    +creative-commons-sampling-plus:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons Sampling +
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4f1
    +creative-commons-share:
    +  changes:
    +    - 5.0.11
    +  label: Creative Commons Share
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4f2
    +creative-commons-zero:
    +  changes:
    +    - 5.0.11
    +    - 5.4.0
    +  label: Creative Commons CC0
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4f3
    +credit-card:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Credit Card
    +  search:
    +    terms:
    +      - buy
    +      - checkout
    +      - credit-card-alt
    +      - debit
    +      - money
    +      - payment
    +      - purchase
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f09d
    +critical-role:
    +  changes:
    +    - 5.4.0
    +  label: Critical Role
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - d&d
    +      - dnd
    +      - fantasy
    +      - game
    +      - gaming
    +      - tabletop
    +  styles:
    +    - brands
    +  unicode: f6c9
    +crop:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +    - 5.1.0
    +  label: crop
    +  search:
    +    terms:
    +      - design
    +  styles:
    +    - solid
    +  unicode: f125
    +crop-alt:
    +  changes:
    +    - 5.1.0
    +  label: Alternate Crop
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f565
    +cross:
    +  changes:
    +    - 5.3.0
    +  label: Cross
    +  search:
    +    terms:
    +      - catholicism
    +      - christianity
    +  styles:
    +    - solid
    +  unicode: f654
    +crosshairs:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Crosshairs
    +  search:
    +    terms:
    +      - gpd
    +      - picker
    +      - position
    +  styles:
    +    - solid
    +  unicode: f05b
    +crow:
    +  changes:
    +    - 5.0.13
    +  label: Crow
    +  search:
    +    terms:
    +      - bird
    +      - bullfrog
    +      - fauna
    +      - halloween
    +      - holiday
    +      - toad
    +  styles:
    +    - solid
    +  unicode: f520
    +crown:
    +  changes:
    +    - 5.0.13
    +  label: Crown
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f521
    +css3:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: CSS 3 Logo
    +  search:
    +    terms:
    +      - code
    +  styles:
    +    - brands
    +  unicode: f13c
    +css3-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate CSS3 Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f38b
    +cube:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Cube
    +  search:
    +    terms:
    +      - package
    +  styles:
    +    - solid
    +  unicode: f1b2
    +cubes:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Cubes
    +  search:
    +    terms:
    +      - packages
    +  styles:
    +    - solid
    +  unicode: f1b3
    +cut:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.1.0
    +  label: Cut
    +  search:
    +    terms:
    +      - scissors
    +  styles:
    +    - solid
    +  unicode: f0c4
    +cuttlefish:
    +  changes:
    +    - 5.0.0
    +  label: Cuttlefish
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f38c
    +d-and-d:
    +  changes:
    +    - 5.0.0
    +  label: Dungeons & Dragons
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f38d
    +dashcube:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +    - 5.0.3
    +  label: DashCube
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f210
    +database:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Database
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1c0
    +deaf:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Deaf
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f2a4
    +delicious:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Delicious Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1a5
    +deploydog:
    +  changes:
    +    - 5.0.0
    +  label: deploy.dog
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f38e
    +deskpro:
    +  changes:
    +    - 5.0.0
    +  label: Deskpro
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f38f
    +desktop:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Desktop
    +  search:
    +    terms:
    +      - computer
    +      - cpu
    +      - demo
    +      - desktop
    +      - device
    +      - machine
    +      - monitor
    +      - pc
    +      - screen
    +  styles:
    +    - solid
    +  unicode: f108
    +dev:
    +  changes:
    +    - 5.4.0
    +  label: DEV
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f6cc
    +deviantart:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: deviantART
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1bd
    +dharmachakra:
    +  changes:
    +    - 5.3.0
    +  label: Dharmachakra
    +  search:
    +    terms:
    +      - buddhism
    +      - buddhist
    +      - wheel of dharma
    +  styles:
    +    - solid
    +  unicode: f655
    +diagnoses:
    +  changes:
    +    - 5.0.7
    +  label: Diagnoses
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f470
    +dice:
    +  changes:
    +    - 5.0.13
    +  label: Dice
    +  search:
    +    terms:
    +      - chance
    +      - gambling
    +      - game
    +      - roll
    +  styles:
    +    - solid
    +  unicode: f522
    +dice-d20:
    +  changes:
    +    - 5.4.0
    +  label: Dice D20
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - chance
    +      - d&d
    +      - dnd
    +      - fantasy
    +      - gambling
    +      - game
    +      - roll
    +  styles:
    +    - solid
    +  unicode: f6cf
    +dice-d6:
    +  changes:
    +    - 5.4.0
    +  label: Dice D6
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - chance
    +      - d&d
    +      - dnd
    +      - fantasy
    +      - gambling
    +      - game
    +      - roll
    +  styles:
    +    - solid
    +  unicode: f6d1
    +dice-five:
    +  changes:
    +    - 5.0.13
    +  label: Dice Five
    +  search:
    +    terms:
    +      - chance
    +      - gambling
    +      - game
    +      - roll
    +  styles:
    +    - solid
    +  unicode: f523
    +dice-four:
    +  changes:
    +    - 5.0.13
    +  label: Dice Four
    +  search:
    +    terms:
    +      - chance
    +      - gambling
    +      - game
    +      - roll
    +  styles:
    +    - solid
    +  unicode: f524
    +dice-one:
    +  changes:
    +    - 5.0.13
    +  label: Dice One
    +  search:
    +    terms:
    +      - chance
    +      - gambling
    +      - game
    +      - roll
    +  styles:
    +    - solid
    +  unicode: f525
    +dice-six:
    +  changes:
    +    - 5.0.13
    +  label: Dice Six
    +  search:
    +    terms:
    +      - chance
    +      - gambling
    +      - game
    +      - roll
    +  styles:
    +    - solid
    +  unicode: f526
    +dice-three:
    +  changes:
    +    - 5.0.13
    +  label: Dice Three
    +  search:
    +    terms:
    +      - chance
    +      - gambling
    +      - game
    +      - roll
    +  styles:
    +    - solid
    +  unicode: f527
    +dice-two:
    +  changes:
    +    - 5.0.13
    +  label: Dice Two
    +  search:
    +    terms:
    +      - chance
    +      - gambling
    +      - game
    +      - roll
    +  styles:
    +    - solid
    +  unicode: f528
    +digg:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Digg Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1a6
    +digital-ocean:
    +  changes:
    +    - 5.0.0
    +  label: Digital Ocean
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f391
    +digital-tachograph:
    +  changes:
    +    - 5.1.0
    +  label: Digital Tachograph
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f566
    +directions:
    +  changes:
    +    - 5.2.0
    +  label: Directions
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5eb
    +discord:
    +  changes:
    +    - 5.0.0
    +  label: Discord
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f392
    +discourse:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Discourse
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f393
    +divide:
    +  changes:
    +    - 5.0.13
    +  label: Divide
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f529
    +dizzy:
    +  changes:
    +    - 5.1.0
    +  label: Dizzy Face
    +  search:
    +    terms:
    +      - dazed
    +      - disapprove
    +      - emoticon
    +      - face
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f567
    +dna:
    +  changes:
    +    - 5.0.7
    +    - 5.0.10
    +  label: DNA
    +  search:
    +    terms:
    +      - double helix
    +      - helix
    +  styles:
    +    - solid
    +  unicode: f471
    +dochub:
    +  changes:
    +    - 5.0.0
    +  label: DocHub
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f394
    +docker:
    +  changes:
    +    - 5.0.0
    +  label: Docker
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f395
    +dog:
    +  changes:
    +    - 5.4.0
    +  label: Dog
    +  search:
    +    terms:
    +      - canine
    +      - fauna
    +      - mammmal
    +      - pet
    +      - pooch
    +      - puppy
    +      - woof
    +  styles:
    +    - solid
    +  unicode: f6d3
    +dollar-sign:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +    - 5.0.9
    +  label: Dollar Sign
    +  search:
    +    terms:
    +      - $
    +      - dollar-sign
    +      - money
    +      - price
    +      - usd
    +  styles:
    +    - solid
    +  unicode: f155
    +dolly:
    +  changes:
    +    - 5.0.7
    +  label: Dolly
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f472
    +dolly-flatbed:
    +  changes:
    +    - 5.0.7
    +  label: Dolly Flatbed
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f474
    +donate:
    +  changes:
    +    - 5.0.9
    +  label: Donate
    +  search:
    +    terms:
    +      - generosity
    +      - give
    +  styles:
    +    - solid
    +  unicode: f4b9
    +door-closed:
    +  changes:
    +    - 5.0.13
    +  label: Door Closed
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f52a
    +door-open:
    +  changes:
    +    - 5.0.13
    +  label: Door Open
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f52b
    +dot-circle:
    +  changes:
    +    - '4'
    +    - 5.0.0
    +  label: Dot Circle
    +  search:
    +    terms:
    +      - bullseye
    +      - notification
    +      - target
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f192
    +dove:
    +  changes:
    +    - 5.0.9
    +  label: Dove
    +  search:
    +    terms:
    +      - bird
    +      - fauna
    +      - flying
    +      - peace
    +  styles:
    +    - solid
    +  unicode: f4ba
    +download:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Download
    +  search:
    +    terms:
    +      - import
    +  styles:
    +    - solid
    +  unicode: f019
    +draft2digital:
    +  changes:
    +    - 5.0.0
    +  label: Draft2digital
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f396
    +drafting-compass:
    +  changes:
    +    - 5.1.0
    +  label: Drafting Compass
    +  search:
    +    terms:
    +      - mechanical drawing
    +      - plot
    +      - plotting
    +  styles:
    +    - solid
    +  unicode: f568
    +dragon:
    +  changes:
    +    - 5.4.0
    +  label: Dragon
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - d&d
    +      - dnd
    +      - fantasy
    +  styles:
    +    - solid
    +  unicode: f6d5
    +draw-polygon:
    +  changes:
    +    - 5.2.0
    +  label: Draw Polygon
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5ee
    +dribbble:
    +  changes:
    +    - 5.0.0
    +  label: Dribbble
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f17d
    +dribbble-square:
    +  changes:
    +    - 5.0.0
    +  label: Dribbble Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f397
    +dropbox:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +    - 5.0.1
    +  label: Dropbox
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f16b
    +drum:
    +  changes:
    +    - 5.1.0
    +  label: Drum
    +  search:
    +    terms:
    +      - instrument
    +      - music
    +      - percussion
    +      - snare
    +      - sound
    +  styles:
    +    - solid
    +  unicode: f569
    +drum-steelpan:
    +  changes:
    +    - 5.1.0
    +  label: Drum Steelpan
    +  search:
    +    terms:
    +      - calypso
    +      - instrument
    +      - music
    +      - percussion
    +      - reggae
    +      - snare
    +      - sound
    +      - steel
    +      - tropical
    +  styles:
    +    - solid
    +  unicode: f56a
    +drumstick-bite:
    +  changes:
    +    - 5.4.0
    +  label: Drumstick with Bite Taken Out
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f6d7
    +drupal:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Drupal Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1a9
    +dumbbell:
    +  changes:
    +    - 5.0.5
    +  label: Dumbbell
    +  search:
    +    terms:
    +      - exercise
    +      - gym
    +      - strength
    +      - weight
    +      - weight-lifting
    +  styles:
    +    - solid
    +  unicode: f44b
    +dungeon:
    +  changes:
    +    - 5.4.0
    +  label: Dungeon
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - d&d
    +      - dnd
    +      - door
    +      - entrance
    +      - fantasy
    +      - gate
    +  styles:
    +    - solid
    +  unicode: f6d9
    +dyalog:
    +  changes:
    +    - 5.0.0
    +  label: Dyalog
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f399
    +earlybirds:
    +  changes:
    +    - 5.0.0
    +  label: Earlybirds
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f39a
    +ebay:
    +  changes:
    +    - 5.0.11
    +  label: eBay
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4f4
    +edge:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Edge Browser
    +  search:
    +    terms:
    +      - browser
    +      - ie
    +  styles:
    +    - brands
    +  unicode: f282
    +edit:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Edit
    +  search:
    +    terms:
    +      - edit
    +      - pen
    +      - pencil
    +      - update
    +      - write
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f044
    +eject:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: eject
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f052
    +elementor:
    +  changes:
    +    - 5.0.3
    +  label: Elementor
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f430
    +ellipsis-h:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Horizontal Ellipsis
    +  search:
    +    terms:
    +      - dots
    +      - drag
    +      - kebab
    +      - list
    +      - menu
    +      - nav
    +      - navigation
    +      - ol
    +      - reorder
    +      - settings
    +      - ul
    +  styles:
    +    - solid
    +  unicode: f141
    +ellipsis-v:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Vertical Ellipsis
    +  search:
    +    terms:
    +      - dots
    +      - drag
    +      - kebab
    +      - list
    +      - menu
    +      - nav
    +      - navigation
    +      - ol
    +      - reorder
    +      - settings
    +      - ul
    +  styles:
    +    - solid
    +  unicode: f142
    +ello:
    +  changes:
    +    - 5.2.0
    +  label: Ello
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f5f1
    +ember:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Ember
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f423
    +empire:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Galactic Empire
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1d1
    +envelope:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Envelope
    +  search:
    +    terms:
    +      - e-mail
    +      - email
    +      - letter
    +      - mail
    +      - message
    +      - notification
    +      - support
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0e0
    +envelope-open:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Envelope Open
    +  search:
    +    terms:
    +      - e-mail
    +      - email
    +      - letter
    +      - mail
    +      - message
    +      - notification
    +      - support
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2b6
    +envelope-open-text:
    +  changes:
    +    - 5.3.0
    +  label: Envelope Open-text
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f658
    +envelope-square:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Envelope Square
    +  search:
    +    terms:
    +      - e-mail
    +      - email
    +      - letter
    +      - mail
    +      - message
    +      - notification
    +      - support
    +  styles:
    +    - solid
    +  unicode: f199
    +envira:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Envira Gallery
    +  search:
    +    terms:
    +      - leaf
    +  styles:
    +    - brands
    +  unicode: f299
    +equals:
    +  changes:
    +    - 5.0.13
    +  label: Equals
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f52c
    +eraser:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: eraser
    +  search:
    +    terms:
    +      - delete
    +      - remove
    +  styles:
    +    - solid
    +  unicode: f12d
    +erlang:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Erlang
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f39d
    +ethereum:
    +  changes:
    +    - 5.0.2
    +  label: Ethereum
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f42e
    +etsy:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Etsy
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2d7
    +euro-sign:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Euro Sign
    +  search:
    +    terms:
    +      - eur
    +  styles:
    +    - solid
    +  unicode: f153
    +exchange-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Exchange
    +  search:
    +    terms:
    +      - arrow
    +      - arrows
    +      - exchange
    +      - reciprocate
    +      - return
    +      - swap
    +      - transfer
    +  styles:
    +    - solid
    +  unicode: f362
    +exclamation:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: exclamation
    +  search:
    +    terms:
    +      - alert
    +      - danger
    +      - error
    +      - important
    +      - notice
    +      - notification
    +      - notify
    +      - problem
    +      - warning
    +  styles:
    +    - solid
    +  unicode: f12a
    +exclamation-circle:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Exclamation Circle
    +  search:
    +    terms:
    +      - alert
    +      - danger
    +      - error
    +      - important
    +      - notice
    +      - notification
    +      - notify
    +      - problem
    +      - warning
    +  styles:
    +    - solid
    +  unicode: f06a
    +exclamation-triangle:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Exclamation Triangle
    +  search:
    +    terms:
    +      - alert
    +      - danger
    +      - error
    +      - important
    +      - notice
    +      - notification
    +      - notify
    +      - problem
    +      - warning
    +  styles:
    +    - solid
    +  unicode: f071
    +expand:
    +  changes:
    +    - 5.0.0
    +  label: Expand
    +  search:
    +    terms:
    +      - bigger
    +      - enlarge
    +      - resize
    +  styles:
    +    - solid
    +  unicode: f065
    +expand-arrows-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Expand Arrows
    +  search:
    +    terms:
    +      - arrows-alt
    +      - bigger
    +      - enlarge
    +      - move
    +      - resize
    +  styles:
    +    - solid
    +  unicode: f31e
    +expeditedssl:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: ExpeditedSSL
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f23e
    +external-link-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate External Link
    +  search:
    +    terms:
    +      - external-link
    +      - new
    +      - open
    +  styles:
    +    - solid
    +  unicode: f35d
    +external-link-square-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate External Link Square
    +  search:
    +    terms:
    +      - external-link-square
    +      - new
    +      - open
    +  styles:
    +    - solid
    +  unicode: f360
    +eye:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Eye
    +  search:
    +    terms:
    +      - optic
    +      - see
    +      - seen
    +      - show
    +      - sight
    +      - views
    +      - visible
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f06e
    +eye-dropper:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +    - 5.1.0
    +  label: Eye Dropper
    +  search:
    +    terms:
    +      - eyedropper
    +  styles:
    +    - solid
    +  unicode: f1fb
    +eye-slash:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Eye Slash
    +  search:
    +    terms:
    +      - blind
    +      - hide
    +      - show
    +      - toggle
    +      - unseen
    +      - views
    +      - visible
    +      - visiblity
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f070
    +facebook:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Facebook
    +  search:
    +    terms:
    +      - facebook-official
    +      - social network
    +  styles:
    +    - brands
    +  unicode: f09a
    +facebook-f:
    +  changes:
    +    - 5.0.0
    +  label: Facebook F
    +  search:
    +    terms:
    +      - facebook
    +  styles:
    +    - brands
    +  unicode: f39e
    +facebook-messenger:
    +  changes:
    +    - 5.0.0
    +  label: Facebook Messenger
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f39f
    +facebook-square:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Facebook Square
    +  search:
    +    terms:
    +      - social network
    +  styles:
    +    - brands
    +  unicode: f082
    +fantasy-flight-games:
    +  changes:
    +    - 5.4.0
    +  label: Fantasy Flight-games
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - d&d
    +      - dnd
    +      - fantasy
    +      - game
    +      - gaming
    +      - tabletop
    +  styles:
    +    - brands
    +  unicode: f6dc
    +fast-backward:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: fast-backward
    +  search:
    +    terms:
    +      - beginning
    +      - first
    +      - previous
    +      - rewind
    +      - start
    +  styles:
    +    - solid
    +  unicode: f049
    +fast-forward:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: fast-forward
    +  search:
    +    terms:
    +      - end
    +      - last
    +      - next
    +  styles:
    +    - solid
    +  unicode: f050
    +fax:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Fax
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1ac
    +feather:
    +  changes:
    +    - 5.0.13
    +    - 5.1.0
    +  label: Feather
    +  search:
    +    terms:
    +      - bird
    +      - light
    +      - plucked
    +      - quill
    +  styles:
    +    - solid
    +  unicode: f52d
    +feather-alt:
    +  changes:
    +    - 5.1.0
    +  label: Alternate Feather
    +  search:
    +    terms:
    +      - bird
    +      - light
    +      - plucked
    +      - quill
    +  styles:
    +    - solid
    +  unicode: f56b
    +female:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Female
    +  search:
    +    terms:
    +      - human
    +      - person
    +      - profile
    +      - user
    +      - woman
    +  styles:
    +    - solid
    +  unicode: f182
    +fighter-jet:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: fighter-jet
    +  search:
    +    terms:
    +      - airplane
    +      - fast
    +      - fly
    +      - goose
    +      - maverick
    +      - plane
    +      - quick
    +      - top gun
    +      - transportation
    +      - travel
    +  styles:
    +    - solid
    +  unicode: f0fb
    +file:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: File
    +  search:
    +    terms:
    +      - document
    +      - new
    +      - page
    +      - pdf
    +      - resume
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f15b
    +file-alt:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Alternate File
    +  search:
    +    terms:
    +      - document
    +      - file-text
    +      - invoice
    +      - new
    +      - page
    +      - pdf
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f15c
    +file-archive:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Archive File
    +  search:
    +    terms:
    +      - .zip
    +      - bundle
    +      - compress
    +      - compression
    +      - download
    +      - zip
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1c6
    +file-audio:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Audio File
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1c7
    +file-code:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Code File
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1c9
    +file-contract:
    +  changes:
    +    - 5.1.0
    +  label: File Contract
    +  search:
    +    terms:
    +      - agreement
    +      - binding
    +      - document
    +      - legal
    +      - signature
    +  styles:
    +    - solid
    +  unicode: f56c
    +file-csv:
    +  changes:
    +    - 5.4.0
    +  label: File CSV
    +  search:
    +    terms:
    +      - spreadsheets
    +  styles:
    +    - solid
    +  unicode: f6dd
    +file-download:
    +  changes:
    +    - 5.1.0
    +  label: File Download
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f56d
    +file-excel:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Excel File
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1c3
    +file-export:
    +  changes:
    +    - 5.1.0
    +  label: File Export
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f56e
    +file-image:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Image File
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1c5
    +file-import:
    +  changes:
    +    - 5.1.0
    +  label: File Import
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f56f
    +file-invoice:
    +  changes:
    +    - 5.1.0
    +  label: File Invoice
    +  search:
    +    terms:
    +      - bill
    +      - document
    +      - receipt
    +  styles:
    +    - solid
    +  unicode: f570
    +file-invoice-dollar:
    +  changes:
    +    - 5.1.0
    +  label: File Invoice with US Dollar
    +  search:
    +    terms:
    +      - $
    +      - bill
    +      - document
    +      - dollar-sign
    +      - money
    +      - receipt
    +      - usd
    +  styles:
    +    - solid
    +  unicode: f571
    +file-medical:
    +  changes:
    +    - 5.0.7
    +  label: Medical File
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f477
    +file-medical-alt:
    +  changes:
    +    - 5.0.7
    +  label: Alternate Medical File
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f478
    +file-pdf:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: PDF File
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1c1
    +file-powerpoint:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Powerpoint File
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1c4
    +file-prescription:
    +  changes:
    +    - 5.1.0
    +  label: File Prescription
    +  search:
    +    terms:
    +      - drugs
    +      - medical
    +      - medicine
    +      - rx
    +  styles:
    +    - solid
    +  unicode: f572
    +file-signature:
    +  changes:
    +    - 5.1.0
    +  label: File Signature
    +  search:
    +    terms:
    +      - John Hancock
    +      - contract
    +      - document
    +      - name
    +  styles:
    +    - solid
    +  unicode: f573
    +file-upload:
    +  changes:
    +    - 5.1.0
    +  label: File Upload
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f574
    +file-video:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Video File
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1c8
    +file-word:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Word File
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1c2
    +fill:
    +  changes:
    +    - 5.1.0
    +  label: Fill
    +  search:
    +    terms:
    +      - bucket
    +      - color
    +      - paint
    +      - paint bucket
    +  styles:
    +    - solid
    +  unicode: f575
    +fill-drip:
    +  changes:
    +    - 5.1.0
    +  label: Fill Drip
    +  search:
    +    terms:
    +      - bucket
    +      - color
    +      - drop
    +      - paint
    +      - paint bucket
    +      - spill
    +  styles:
    +    - solid
    +  unicode: f576
    +film:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Film
    +  search:
    +    terms:
    +      - movie
    +  styles:
    +    - solid
    +  unicode: f008
    +filter:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Filter
    +  search:
    +    terms:
    +      - funnel
    +      - options
    +  styles:
    +    - solid
    +  unicode: f0b0
    +fingerprint:
    +  changes:
    +    - 5.1.0
    +  label: Fingerprint
    +  search:
    +    terms:
    +      - human
    +      - id
    +      - identification
    +      - lock
    +      - smudge
    +      - touch
    +      - unique
    +      - unlock
    +  styles:
    +    - solid
    +  unicode: f577
    +fire:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: fire
    +  search:
    +    terms:
    +      - caliente
    +      - flame
    +      - heat
    +      - hot
    +      - popular
    +  styles:
    +    - solid
    +  unicode: f06d
    +fire-extinguisher:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: fire-extinguisher
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f134
    +firefox:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +    - 5.0.1
    +  label: Firefox
    +  search:
    +    terms:
    +      - browser
    +  styles:
    +    - brands
    +  unicode: f269
    +first-aid:
    +  changes:
    +    - 5.0.7
    +  label: First Aid
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f479
    +first-order:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: First Order
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2b0
    +first-order-alt:
    +  changes:
    +    - 5.0.12
    +  label: Alternate First Order
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f50a
    +firstdraft:
    +  changes:
    +    - 5.0.0
    +  label: firstdraft
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3a1
    +fish:
    +  changes:
    +    - 5.1.0
    +  label: Fish
    +  search:
    +    terms:
    +      - fauna
    +      - gold
    +      - swimming
    +  styles:
    +    - solid
    +  unicode: f578
    +fist-raised:
    +  changes:
    +    - 5.4.0
    +  label: Raised Fist
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - d&d
    +      - dnd
    +      - fantasy
    +      - hand
    +      - ki
    +      - monk
    +      - resist
    +      - strength
    +      - unarmed combat
    +  styles:
    +    - solid
    +  unicode: f6de
    +flag:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: flag
    +  search:
    +    terms:
    +      - notice
    +      - notification
    +      - notify
    +      - report
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f024
    +flag-checkered:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: flag-checkered
    +  search:
    +    terms:
    +      - notice
    +      - notification
    +      - notify
    +      - report
    +  styles:
    +    - solid
    +  unicode: f11e
    +flask:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Flask
    +  search:
    +    terms:
    +      - beaker
    +      - experimental
    +      - labs
    +      - science
    +  styles:
    +    - solid
    +  unicode: f0c3
    +flickr:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Flickr
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f16e
    +flipboard:
    +  changes:
    +    - 5.0.5
    +    - 5.0.9
    +  label: Flipboard
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f44d
    +flushed:
    +  changes:
    +    - 5.1.0
    +  label: Flushed Face
    +  search:
    +    terms:
    +      - embarrassed
    +      - emoticon
    +      - face
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f579
    +fly:
    +  changes:
    +    - 5.0.0
    +  label: Fly
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f417
    +folder:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Folder
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f07b
    +folder-minus:
    +  changes:
    +    - 5.3.0
    +  label: Folder Minus
    +  search:
    +    terms:
    +      - archive
    +      - delete
    +      - negative
    +      - remove
    +  styles:
    +    - solid
    +  unicode: f65d
    +folder-open:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Folder Open
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f07c
    +folder-plus:
    +  changes:
    +    - 5.3.0
    +  label: Folder Plus
    +  search:
    +    terms:
    +      - add
    +      - create
    +      - new
    +      - positive
    +  styles:
    +    - solid
    +  unicode: f65e
    +font:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: font
    +  search:
    +    terms:
    +      - text
    +  styles:
    +    - solid
    +  unicode: f031
    +font-awesome:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Font Awesome
    +  search:
    +    terms:
    +      - meanpath
    +  styles:
    +    - brands
    +  unicode: f2b4
    +font-awesome-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Font Awesome
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f35c
    +font-awesome-flag:
    +  changes:
    +    - 5.0.0
    +    - 5.0.1
    +  label: Font Awesome Flag
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f425
    +font-awesome-logo-full:
    +  changes:
    +    - 5.0.11
    +  label: Font Awesome Full Logo
    +  ligatures:
    +    - Font Awesome
    +  private: true
    +  search:
    +    terms: []
    +  styles:
    +    - regular
    +    - solid
    +    - brands
    +  unicode: f4e6
    +fonticons:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Fonticons
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f280
    +fonticons-fi:
    +  changes:
    +    - 5.0.0
    +  label: Fonticons Fi
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3a2
    +football-ball:
    +  changes:
    +    - 5.0.5
    +  label: Football Ball
    +  search:
    +    terms:
    +      - fall
    +      - pigskin
    +      - seasonal
    +  styles:
    +    - solid
    +  unicode: f44e
    +fort-awesome:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Fort Awesome
    +  search:
    +    terms:
    +      - castle
    +  styles:
    +    - brands
    +  unicode: f286
    +fort-awesome-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Fort Awesome
    +  search:
    +    terms:
    +      - castle
    +  styles:
    +    - brands
    +  unicode: f3a3
    +forumbee:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Forumbee
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f211
    +forward:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: forward
    +  search:
    +    terms:
    +      - forward
    +      - next
    +  styles:
    +    - solid
    +  unicode: f04e
    +foursquare:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Foursquare
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f180
    +free-code-camp:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Free Code Camp
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2c5
    +freebsd:
    +  changes:
    +    - 5.0.0
    +  label: FreeBSD
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3a4
    +frog:
    +  changes:
    +    - 5.0.13
    +  label: Frog
    +  search:
    +    terms:
    +      - amphibian
    +      - bullfrog
    +      - fauna
    +      - hop
    +      - kermit
    +      - kiss
    +      - prince
    +      - ribbit
    +      - toad
    +      - wart
    +  styles:
    +    - solid
    +  unicode: f52e
    +frown:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +    - 5.0.9
    +    - 5.1.0
    +  label: Frowning Face
    +  search:
    +    terms:
    +      - disapprove
    +      - emoticon
    +      - face
    +      - rating
    +      - sad
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f119
    +frown-open:
    +  changes:
    +    - 5.1.0
    +  label: Frowning Face With Open Mouth
    +  search:
    +    terms:
    +      - disapprove
    +      - emoticon
    +      - face
    +      - rating
    +      - sad
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f57a
    +fulcrum:
    +  changes:
    +    - 5.0.12
    +  label: Fulcrum
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f50b
    +funnel-dollar:
    +  changes:
    +    - 5.3.0
    +  label: Funnel Dollar
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f662
    +futbol:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +    - 5.0.5
    +  label: Futbol
    +  search:
    +    terms:
    +      - ball
    +      - football
    +      - soccer
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1e3
    +galactic-republic:
    +  changes:
    +    - 5.0.12
    +  label: Galactic Republic
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f50c
    +galactic-senate:
    +  changes:
    +    - 5.0.12
    +  label: Galactic Senate
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f50d
    +gamepad:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Gamepad
    +  search:
    +    terms:
    +      - controller
    +  styles:
    +    - solid
    +  unicode: f11b
    +gas-pump:
    +  changes:
    +    - 5.0.13
    +  label: Gas Pump
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f52f
    +gavel:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Gavel
    +  search:
    +    terms:
    +      - hammer
    +      - judge
    +      - lawyer
    +      - opinion
    +  styles:
    +    - solid
    +  unicode: f0e3
    +gem:
    +  changes:
    +    - 5.0.0
    +  label: Gem
    +  search:
    +    terms:
    +      - diamond
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f3a5
    +genderless:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Genderless
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f22d
    +get-pocket:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Get Pocket
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f265
    +gg:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: GG Currency
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f260
    +gg-circle:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: GG Currency Circle
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f261
    +ghost:
    +  changes:
    +    - 5.4.0
    +  label: Ghost
    +  search:
    +    terms:
    +      - apparition
    +      - blinky
    +      - clyde
    +      - floating
    +      - halloween
    +      - holiday
    +      - inky
    +      - pinky
    +      - spirit
    +  styles:
    +    - solid
    +  unicode: f6e2
    +gift:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.0.9
    +  label: gift
    +  search:
    +    terms:
    +      - generosity
    +      - giving
    +      - party
    +      - present
    +      - wrapped
    +  styles:
    +    - solid
    +  unicode: f06b
    +git:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Git
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1d3
    +git-square:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Git Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1d2
    +github:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: GitHub
    +  search:
    +    terms:
    +      - octocat
    +  styles:
    +    - brands
    +  unicode: f09b
    +github-alt:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Alternate GitHub
    +  search:
    +    terms:
    +      - octocat
    +  styles:
    +    - brands
    +  unicode: f113
    +github-square:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: GitHub Square
    +  search:
    +    terms:
    +      - octocat
    +  styles:
    +    - brands
    +  unicode: f092
    +gitkraken:
    +  changes:
    +    - 5.0.0
    +  label: GitKraken
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3a6
    +gitlab:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: GitLab
    +  search:
    +    terms:
    +      - Axosoft
    +  styles:
    +    - brands
    +  unicode: f296
    +gitter:
    +  changes:
    +    - 5.0.0
    +  label: Gitter
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f426
    +glass-martini:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.1.0
    +  label: Martini Glass
    +  search:
    +    terms:
    +      - alcohol
    +      - bar
    +      - beverage
    +      - drink
    +      - glass
    +      - liquor
    +      - martini
    +  styles:
    +    - solid
    +  unicode: f000
    +glass-martini-alt:
    +  changes:
    +    - 5.1.0
    +  label: Alternate Glass Martini
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f57b
    +glasses:
    +  changes:
    +    - 5.0.13
    +  label: Glasses
    +  search:
    +    terms:
    +      - foureyes
    +      - hipster
    +      - nerd
    +      - reading
    +      - sight
    +      - spectacles
    +  styles:
    +    - solid
    +  unicode: f530
    +glide:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Glide
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2a5
    +glide-g:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Glide G
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2a6
    +globe:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.0.9
    +  label: Globe
    +  search:
    +    terms:
    +      - all
    +      - coordinates
    +      - country
    +      - earth
    +      - global
    +      - gps
    +      - language
    +      - localize
    +      - location
    +      - map
    +      - online
    +      - place
    +      - planet
    +      - translate
    +      - travel
    +      - world
    +  styles:
    +    - solid
    +  unicode: f0ac
    +globe-africa:
    +  changes:
    +    - 5.1.0
    +  label: Globe with Africa shown
    +  search:
    +    terms:
    +      - all
    +      - country
    +      - earth
    +      - global
    +      - gps
    +      - language
    +      - localize
    +      - location
    +      - map
    +      - online
    +      - place
    +      - planet
    +      - translate
    +      - travel
    +      - world
    +  styles:
    +    - solid
    +  unicode: f57c
    +globe-americas:
    +  changes:
    +    - 5.1.0
    +  label: Globe with Americas shown
    +  search:
    +    terms:
    +      - all
    +      - country
    +      - earth
    +      - global
    +      - gps
    +      - language
    +      - localize
    +      - location
    +      - map
    +      - online
    +      - place
    +      - planet
    +      - translate
    +      - travel
    +      - world
    +  styles:
    +    - solid
    +  unicode: f57d
    +globe-asia:
    +  changes:
    +    - 5.1.0
    +  label: Globe with Asia shown
    +  search:
    +    terms:
    +      - all
    +      - country
    +      - earth
    +      - global
    +      - gps
    +      - language
    +      - localize
    +      - location
    +      - map
    +      - online
    +      - place
    +      - planet
    +      - translate
    +      - travel
    +      - world
    +  styles:
    +    - solid
    +  unicode: f57e
    +gofore:
    +  changes:
    +    - 5.0.0
    +  label: Gofore
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3a7
    +golf-ball:
    +  changes:
    +    - 5.0.5
    +  label: Golf Ball
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f450
    +goodreads:
    +  changes:
    +    - 5.0.0
    +  label: Goodreads
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3a8
    +goodreads-g:
    +  changes:
    +    - 5.0.0
    +  label: Goodreads G
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3a9
    +google:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Google Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1a0
    +google-drive:
    +  changes:
    +    - 5.0.0
    +  label: Google Drive
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3aa
    +google-play:
    +  changes:
    +    - 5.0.0
    +  label: Google Play
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3ab
    +google-plus:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Google Plus
    +  search:
    +    terms:
    +      - google-plus-circle
    +      - google-plus-official
    +  styles:
    +    - brands
    +  unicode: f2b3
    +google-plus-g:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Google Plus G
    +  search:
    +    terms:
    +      - google-plus
    +      - social network
    +  styles:
    +    - brands
    +  unicode: f0d5
    +google-plus-square:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Google Plus Square
    +  search:
    +    terms:
    +      - social network
    +  styles:
    +    - brands
    +  unicode: f0d4
    +google-wallet:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Google Wallet
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1ee
    +gopuram:
    +  changes:
    +    - 5.3.0
    +  label: Gopuram
    +  search:
    +    terms:
    +      - building
    +      - entrance
    +      - hinduism
    +      - temple
    +      - tower
    +  styles:
    +    - solid
    +  unicode: f664
    +graduation-cap:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +    - 5.2.0
    +  label: Graduation Cap
    +  search:
    +    terms:
    +      - learning
    +      - school
    +      - student
    +  styles:
    +    - solid
    +  unicode: f19d
    +gratipay:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Gratipay (Gittip)
    +  search:
    +    terms:
    +      - favorite
    +      - heart
    +      - like
    +      - love
    +  styles:
    +    - brands
    +  unicode: f184
    +grav:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Grav
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2d6
    +greater-than:
    +  changes:
    +    - 5.0.13
    +  label: Greater Than
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f531
    +greater-than-equal:
    +  changes:
    +    - 5.0.13
    +  label: Greater Than Equal To
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f532
    +grimace:
    +  changes:
    +    - 5.1.0
    +  label: Grimacing Face
    +  search:
    +    terms:
    +      - cringe
    +      - emoticon
    +      - face
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f57f
    +grin:
    +  changes:
    +    - 5.1.0
    +  label: Grinning Face
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - laugh
    +      - smile
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f580
    +grin-alt:
    +  changes:
    +    - 5.1.0
    +  label: Alternate Grinning Face
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - laugh
    +      - smile
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f581
    +grin-beam:
    +  changes:
    +    - 5.1.0
    +  label: Grinning Face With Smiling Eyes
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - laugh
    +      - smile
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f582
    +grin-beam-sweat:
    +  changes:
    +    - 5.1.0
    +  label: Grinning Face With Sweat
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - smile
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f583
    +grin-hearts:
    +  changes:
    +    - 5.1.0
    +  label: Smiling Face With Heart-Eyes
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - love
    +      - smile
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f584
    +grin-squint:
    +  changes:
    +    - 5.1.0
    +  label: Grinning Squinting Face
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - laugh
    +      - smile
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f585
    +grin-squint-tears:
    +  changes:
    +    - 5.1.0
    +  label: Rolling on the Floor Laughing
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - happy
    +      - smile
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f586
    +grin-stars:
    +  changes:
    +    - 5.1.0
    +  label: Star-Struck
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - star-struck
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f587
    +grin-tears:
    +  changes:
    +    - 5.1.0
    +  label: Face With Tears of Joy
    +  search:
    +    terms:
    +      - LOL
    +      - emoticon
    +      - face
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f588
    +grin-tongue:
    +  changes:
    +    - 5.1.0
    +  label: Face With Tongue
    +  search:
    +    terms:
    +      - LOL
    +      - emoticon
    +      - face
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f589
    +grin-tongue-squint:
    +  changes:
    +    - 5.1.0
    +  label: Squinting Face With Tongue
    +  search:
    +    terms:
    +      - LOL
    +      - emoticon
    +      - face
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f58a
    +grin-tongue-wink:
    +  changes:
    +    - 5.1.0
    +  label: Winking Face With Tongue
    +  search:
    +    terms:
    +      - LOL
    +      - emoticon
    +      - face
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f58b
    +grin-wink:
    +  changes:
    +    - 5.1.0
    +    - 5.1.1
    +  label: Grinning Winking Face
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - flirt
    +      - laugh
    +      - smile
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f58c
    +grip-horizontal:
    +  changes:
    +    - 5.1.0
    +  label: Grip Horizontal
    +  search:
    +    terms:
    +      - affordance
    +      - drag
    +      - drop
    +      - grab
    +      - handle
    +  styles:
    +    - solid
    +  unicode: f58d
    +grip-vertical:
    +  changes:
    +    - 5.1.0
    +  label: Grip Vertical
    +  search:
    +    terms:
    +      - affordance
    +      - drag
    +      - drop
    +      - grab
    +      - handle
    +  styles:
    +    - solid
    +  unicode: f58e
    +gripfire:
    +  changes:
    +    - 5.0.0
    +  label: 'Gripfire, Inc.'
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3ac
    +grunt:
    +  changes:
    +    - 5.0.0
    +  label: Grunt
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3ad
    +gulp:
    +  changes:
    +    - 5.0.0
    +  label: Gulp
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3ae
    +h-square:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: H Square
    +  search:
    +    terms:
    +      - hospital
    +      - hotel
    +  styles:
    +    - solid
    +  unicode: f0fd
    +hacker-news:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Hacker News
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1d4
    +hacker-news-square:
    +  changes:
    +    - 5.0.0
    +  label: Hacker News Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3af
    +hackerrank:
    +  changes:
    +    - 5.2.0
    +  label: Hackerrank
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f5f7
    +hammer:
    +  changes:
    +    - 5.4.0
    +  label: Hammer
    +  search:
    +    terms:
    +      - admin
    +      - fix
    +      - repair
    +      - settings
    +      - tool
    +  styles:
    +    - solid
    +  unicode: f6e3
    +hamsa:
    +  changes:
    +    - 5.3.0
    +  label: Hamsa
    +  search:
    +    terms:
    +      - amulet
    +      - christianity
    +      - islam
    +      - jewish
    +      - judaism
    +      - muslim
    +      - protection
    +  styles:
    +    - solid
    +  unicode: f665
    +hand-holding:
    +  changes:
    +    - 5.0.9
    +  label: Hand Holding
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4bd
    +hand-holding-heart:
    +  changes:
    +    - 5.0.9
    +  label: Hand Holding Heart
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4be
    +hand-holding-usd:
    +  changes:
    +    - 5.0.9
    +  label: Hand Holding US Dollar
    +  search:
    +    terms:
    +      - $
    +      - dollar sign
    +      - donation
    +      - giving
    +      - money
    +      - price
    +  styles:
    +    - solid
    +  unicode: f4c0
    +hand-lizard:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Lizard (Hand)
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f258
    +hand-paper:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Paper (Hand)
    +  search:
    +    terms:
    +      - stop
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f256
    +hand-peace:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Peace (Hand)
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f25b
    +hand-point-down:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Hand Pointing Down
    +  search:
    +    terms:
    +      - finger
    +      - hand-o-down
    +      - point
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0a7
    +hand-point-left:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Hand Pointing Left
    +  search:
    +    terms:
    +      - back
    +      - finger
    +      - hand-o-left
    +      - left
    +      - point
    +      - previous
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0a5
    +hand-point-right:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Hand Pointing Right
    +  search:
    +    terms:
    +      - finger
    +      - forward
    +      - hand-o-right
    +      - next
    +      - point
    +      - right
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0a4
    +hand-point-up:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Hand Pointing Up
    +  search:
    +    terms:
    +      - finger
    +      - hand-o-up
    +      - point
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0a6
    +hand-pointer:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Pointer (Hand)
    +  search:
    +    terms:
    +      - select
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f25a
    +hand-rock:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Rock (Hand)
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f255
    +hand-scissors:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Scissors (Hand)
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f257
    +hand-spock:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Spock (Hand)
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f259
    +hands:
    +  changes:
    +    - 5.0.9
    +  label: Hands
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4c2
    +hands-helping:
    +  changes:
    +    - 5.0.9
    +  label: Helping Hands
    +  search:
    +    terms:
    +      - aid
    +      - assistance
    +      - partnership
    +      - volunteering
    +  styles:
    +    - solid
    +  unicode: f4c4
    +handshake:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +    - 5.0.9
    +  label: Handshake
    +  search:
    +    terms:
    +      - greeting
    +      - partnership
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2b5
    +hanukiah:
    +  changes:
    +    - 5.4.0
    +  label: Hanukiah
    +  search:
    +    terms:
    +      - candle
    +      - hanukkah
    +      - jewish
    +      - judaism
    +      - light
    +  styles:
    +    - solid
    +  unicode: f6e6
    +hashtag:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Hashtag
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f292
    +hat-wizard:
    +  changes:
    +    - 5.4.0
    +  label: Wizard's Hat
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - buckle
    +      - cloth
    +      - clothing
    +      - d&d
    +      - dnd
    +      - fantasy
    +      - halloween
    +      - holiday
    +      - mage
    +      - magic
    +      - pointy
    +      - witch
    +  styles:
    +    - solid
    +  unicode: f6e8
    +haykal:
    +  changes:
    +    - 5.3.0
    +  label: Haykal
    +  search:
    +    terms:
    +      - bahai
    +      - bahá'í
    +      - star
    +  styles:
    +    - solid
    +  unicode: f666
    +hdd:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: HDD
    +  search:
    +    terms:
    +      - cpu
    +      - hard drive
    +      - harddrive
    +      - machine
    +      - save
    +      - storage
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0a0
    +heading:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: heading
    +  search:
    +    terms:
    +      - header
    +  styles:
    +    - solid
    +  unicode: f1dc
    +headphones:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: headphones
    +  search:
    +    terms:
    +      - audio
    +      - listen
    +      - music
    +      - sound
    +      - speaker
    +  styles:
    +    - solid
    +  unicode: f025
    +headphones-alt:
    +  changes:
    +    - 5.1.0
    +  label: Alternate Headphones
    +  search:
    +    terms:
    +      - audio
    +      - listen
    +      - music
    +      - sound
    +      - speaker
    +  styles:
    +    - solid
    +  unicode: f58f
    +headset:
    +  changes:
    +    - 5.1.0
    +  label: Headset
    +  search:
    +    terms:
    +      - audio
    +      - gamer
    +      - gaming
    +      - listen
    +      - live chat
    +      - microphone
    +      - shot caller
    +      - sound
    +      - support
    +      - telemarketer
    +  styles:
    +    - solid
    +  unicode: f590
    +heart:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.0.9
    +  label: Heart
    +  search:
    +    terms:
    +      - favorite
    +      - like
    +      - love
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f004
    +heartbeat:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +    - 5.0.7
    +  label: Heartbeat
    +  search:
    +    terms:
    +      - ekg
    +      - lifeline
    +      - vital signs
    +  styles:
    +    - solid
    +  unicode: f21e
    +helicopter:
    +  changes:
    +    - 5.0.13
    +  label: Helicopter
    +  search:
    +    terms:
    +      - airwolf
    +      - apache
    +      - chopper
    +      - flight
    +      - fly
    +  styles:
    +    - solid
    +  unicode: f533
    +highlighter:
    +  changes:
    +    - 5.1.0
    +  label: Highlighter
    +  search:
    +    terms:
    +      - edit
    +      - marker
    +      - sharpie
    +      - update
    +      - write
    +  styles:
    +    - solid
    +  unicode: f591
    +hiking:
    +  changes:
    +    - 5.4.0
    +  label: Hiking
    +  search:
    +    terms:
    +      - activity
    +      - backpack
    +      - fall
    +      - fitness
    +      - outdoors
    +      - seasonal
    +      - walking
    +  styles:
    +    - solid
    +  unicode: f6ec
    +hippo:
    +  changes:
    +    - 5.4.0
    +  label: Hippo
    +  search:
    +    terms:
    +      - fauna
    +      - hungry
    +      - mammmal
    +  styles:
    +    - solid
    +  unicode: f6ed
    +hips:
    +  changes:
    +    - 5.0.5
    +  label: Hips
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f452
    +hire-a-helper:
    +  changes:
    +    - 5.0.0
    +  label: HireAHelper
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3b0
    +history:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: History
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1da
    +hockey-puck:
    +  changes:
    +    - 5.0.5
    +  label: Hockey Puck
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f453
    +home:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: home
    +  search:
    +    terms:
    +      - house
    +      - main
    +  styles:
    +    - solid
    +  unicode: f015
    +hooli:
    +  changes:
    +    - 5.0.0
    +  label: Hooli
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f427
    +hornbill:
    +  changes:
    +    - 5.1.0
    +  label: Hornbill
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f592
    +horse:
    +  changes:
    +    - 5.4.0
    +  label: Horse
    +  search:
    +    terms:
    +      - equus
    +      - fauna
    +      - mammmal
    +      - neigh
    +  styles:
    +    - solid
    +  unicode: f6f0
    +hospital:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: hospital
    +  search:
    +    terms:
    +      - building
    +      - emergency room
    +      - medical center
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0f8
    +hospital-alt:
    +  changes:
    +    - 5.0.7
    +  label: Alternate Hospital
    +  search:
    +    terms:
    +      - building
    +      - emergency room
    +      - medical center
    +  styles:
    +    - solid
    +  unicode: f47d
    +hospital-symbol:
    +  changes:
    +    - 5.0.7
    +  label: Hospital Symbol
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f47e
    +hot-tub:
    +  changes:
    +    - 5.1.0
    +  label: Hot Tub
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f593
    +hotel:
    +  changes:
    +    - 5.1.0
    +  label: Hotel
    +  search:
    +    terms:
    +      - building
    +      - lodging
    +  styles:
    +    - solid
    +  unicode: f594
    +hotjar:
    +  changes:
    +    - 5.0.0
    +  label: Hotjar
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3b1
    +hourglass:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Hourglass
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f254
    +hourglass-end:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Hourglass End
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f253
    +hourglass-half:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Hourglass Half
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f252
    +hourglass-start:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Hourglass Start
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f251
    +house-damage:
    +  changes:
    +    - 5.4.0
    +  label: House Damage
    +  search:
    +    terms:
    +      - devastation
    +      - home
    +  styles:
    +    - solid
    +  unicode: f6f1
    +houzz:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +    - 5.0.9
    +  label: Houzz
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f27c
    +hryvnia:
    +  changes:
    +    - 5.4.0
    +  label: Hryvnia
    +  search:
    +    terms:
    +      - money
    +  styles:
    +    - solid
    +  unicode: f6f2
    +html5:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: HTML 5 Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f13b
    +hubspot:
    +  changes:
    +    - 5.0.0
    +  label: HubSpot
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3b2
    +i-cursor:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: I Beam Cursor
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f246
    +id-badge:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Identification Badge
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2c1
    +id-card:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Identification Card
    +  search:
    +    terms:
    +      - document
    +      - identification
    +      - issued
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2c2
    +id-card-alt:
    +  changes:
    +    - 5.0.7
    +  label: Alternate Identification Card
    +  search:
    +    terms:
    +      - demographics
    +  styles:
    +    - solid
    +  unicode: f47f
    +image:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Image
    +  search:
    +    terms:
    +      - album
    +      - photo
    +      - picture
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f03e
    +images:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Images
    +  search:
    +    terms:
    +      - album
    +      - photo
    +      - picture
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f302
    +imdb:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: IMDB
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2d8
    +inbox:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: inbox
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f01c
    +indent:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Indent
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f03c
    +industry:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Industry
    +  search:
    +    terms:
    +      - factory
    +      - manufacturing
    +  styles:
    +    - solid
    +  unicode: f275
    +infinity:
    +  changes:
    +    - 5.0.13
    +    - 5.3.0
    +  label: Infinity
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f534
    +info:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Info
    +  search:
    +    terms:
    +      - details
    +      - help
    +      - information
    +      - more
    +  styles:
    +    - solid
    +  unicode: f129
    +info-circle:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Info Circle
    +  search:
    +    terms:
    +      - details
    +      - help
    +      - information
    +      - more
    +  styles:
    +    - solid
    +  unicode: f05a
    +instagram:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Instagram
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f16d
    +internet-explorer:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Internet-explorer
    +  search:
    +    terms:
    +      - browser
    +      - ie
    +  styles:
    +    - brands
    +  unicode: f26b
    +ioxhost:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: ioxhost
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f208
    +italic:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: italic
    +  search:
    +    terms:
    +      - italics
    +  styles:
    +    - solid
    +  unicode: f033
    +itunes:
    +  changes:
    +    - 5.0.0
    +  label: iTunes
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3b4
    +itunes-note:
    +  changes:
    +    - 5.0.0
    +  label: Itunes Note
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3b5
    +java:
    +  changes:
    +    - 5.0.10
    +  label: Java
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4e4
    +jedi:
    +  changes:
    +    - 5.3.0
    +  label: Jedi
    +  search:
    +    terms:
    +      - star wars
    +  styles:
    +    - solid
    +  unicode: f669
    +jedi-order:
    +  changes:
    +    - 5.0.12
    +  label: Jedi Order
    +  search:
    +    terms:
    +      - star wars
    +  styles:
    +    - brands
    +  unicode: f50e
    +jenkins:
    +  changes:
    +    - 5.0.0
    +  label: Jenkis
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3b6
    +joget:
    +  changes:
    +    - 5.0.0
    +  label: Joget
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3b7
    +joint:
    +  changes:
    +    - 5.1.0
    +  label: Joint
    +  search:
    +    terms:
    +      - blunt
    +      - cannabis
    +      - doobie
    +      - drugs
    +      - marijuana
    +      - roach
    +      - smoke
    +      - smoking
    +      - spliff
    +  styles:
    +    - solid
    +  unicode: f595
    +joomla:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Joomla Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1aa
    +journal-whills:
    +  changes:
    +    - 5.3.0
    +  label: Journal of the Whills
    +  search:
    +    terms:
    +      - book
    +      - jedi
    +      - star wars
    +      - the force
    +  styles:
    +    - solid
    +  unicode: f66a
    +js:
    +  changes:
    +    - 5.0.0
    +  label: JavaScript (JS)
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3b8
    +js-square:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: JavaScript (JS) Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3b9
    +jsfiddle:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: jsFiddle
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1cc
    +kaaba:
    +  changes:
    +    - 5.3.0
    +  label: Kaaba
    +  search:
    +    terms:
    +      - building
    +      - cube
    +      - islam
    +      - muslim
    +  styles:
    +    - solid
    +  unicode: f66b
    +kaggle:
    +  changes:
    +    - 5.2.0
    +  label: Kaggle
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f5fa
    +key:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: key
    +  search:
    +    terms:
    +      - password
    +      - unlock
    +  styles:
    +    - solid
    +  unicode: f084
    +keybase:
    +  changes:
    +    - 5.0.11
    +  label: Keybase
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4f5
    +keyboard:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Keyboard
    +  search:
    +    terms:
    +      - input
    +      - type
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f11c
    +keycdn:
    +  changes:
    +    - 5.0.0
    +  label: KeyCDN
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3ba
    +khanda:
    +  changes:
    +    - 5.3.0
    +  label: Khanda
    +  search:
    +    terms:
    +      - chakkar
    +      - sikh
    +      - sikhism
    +      - sword
    +  styles:
    +    - solid
    +  unicode: f66d
    +kickstarter:
    +  changes:
    +    - 5.0.0
    +  label: Kickstarter
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3bb
    +kickstarter-k:
    +  changes:
    +    - 5.0.0
    +  label: Kickstarter K
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3bc
    +kiss:
    +  changes:
    +    - 5.1.0
    +    - 5.1.1
    +  label: Kissing Face
    +  search:
    +    terms:
    +      - beso
    +      - emoticon
    +      - face
    +      - love
    +      - smooch
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f596
    +kiss-beam:
    +  changes:
    +    - 5.1.0
    +  label: Kissing Face With Smiling Eyes
    +  search:
    +    terms:
    +      - beso
    +      - emoticon
    +      - face
    +      - love
    +      - smooch
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f597
    +kiss-wink-heart:
    +  changes:
    +    - 5.1.0
    +  label: Face Blowing a Kiss
    +  search:
    +    terms:
    +      - beso
    +      - emoticon
    +      - face
    +      - love
    +      - smooch
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f598
    +kiwi-bird:
    +  changes:
    +    - 5.0.13
    +  label: Kiwi Bird
    +  search:
    +    terms:
    +      - bird
    +      - fauna
    +  styles:
    +    - solid
    +  unicode: f535
    +korvue:
    +  changes:
    +    - 5.0.2
    +  label: KORVUE
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f42f
    +landmark:
    +  changes:
    +    - 5.3.0
    +  label: Landmark
    +  search:
    +    terms:
    +      - building
    +      - historic
    +      - memoroable
    +  styles:
    +    - solid
    +  unicode: f66f
    +language:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Language
    +  search:
    +    terms:
    +      - dialect
    +      - idiom
    +      - localize
    +      - speech
    +      - translate
    +      - vernacular
    +  styles:
    +    - solid
    +  unicode: f1ab
    +laptop:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +    - 5.2.0
    +  label: Laptop
    +  search:
    +    terms:
    +      - computer
    +      - cpu
    +      - dell
    +      - demo
    +      - device
    +      - dude you're getting
    +      - mac
    +      - macbook
    +      - machine
    +      - pc
    +  styles:
    +    - solid
    +  unicode: f109
    +laptop-code:
    +  changes:
    +    - 5.2.0
    +  label: Laptop Code
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5fc
    +laravel:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Laravel
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3bd
    +lastfm:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: last.fm
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f202
    +lastfm-square:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +    - 5.0.11
    +  label: last.fm Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f203
    +laugh:
    +  changes:
    +    - 5.1.0
    +  label: Grinning Face With Big Eyes
    +  search:
    +    terms:
    +      - LOL
    +      - emoticon
    +      - face
    +      - laugh
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f599
    +laugh-beam:
    +  changes:
    +    - 5.1.0
    +  label: Laugh Face with Beaming Eyes
    +  search:
    +    terms:
    +      - LOL
    +      - emoticon
    +      - face
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f59a
    +laugh-squint:
    +  changes:
    +    - 5.1.0
    +  label: Laughing Squinting Face
    +  search:
    +    terms:
    +      - LOL
    +      - emoticon
    +      - face
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f59b
    +laugh-wink:
    +  changes:
    +    - 5.1.0
    +  label: Laughing Winking Face
    +  search:
    +    terms:
    +      - LOL
    +      - emoticon
    +      - face
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f59c
    +layer-group:
    +  changes:
    +    - 5.2.0
    +  label: Layer Group
    +  search:
    +    terms:
    +      - layers
    +  styles:
    +    - solid
    +  unicode: f5fd
    +leaf:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.0.9
    +  label: leaf
    +  search:
    +    terms:
    +      - eco
    +      - flora
    +      - nature
    +      - plant
    +  styles:
    +    - solid
    +  unicode: f06c
    +leanpub:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Leanpub
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f212
    +lemon:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Lemon
    +  search:
    +    terms:
    +      - food
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f094
    +less:
    +  changes:
    +    - 5.0.0
    +  label: Less
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f41d
    +less-than:
    +  changes:
    +    - 5.0.13
    +  label: Less Than
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f536
    +less-than-equal:
    +  changes:
    +    - 5.0.13
    +  label: Less Than Equal To
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f537
    +level-down-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Level Down
    +  search:
    +    terms:
    +      - level-down
    +  styles:
    +    - solid
    +  unicode: f3be
    +level-up-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Level Up
    +  search:
    +    terms:
    +      - level-up
    +  styles:
    +    - solid
    +  unicode: f3bf
    +life-ring:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Life Ring
    +  search:
    +    terms:
    +      - support
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1cd
    +lightbulb:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Lightbulb
    +  search:
    +    terms:
    +      - idea
    +      - inspiration
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0eb
    +line:
    +  changes:
    +    - 5.0.0
    +  label: Line
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3c0
    +link:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Link
    +  search:
    +    terms:
    +      - chain
    +  styles:
    +    - solid
    +  unicode: f0c1
    +linkedin:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: LinkedIn
    +  search:
    +    terms:
    +      - linkedin-square
    +  styles:
    +    - brands
    +  unicode: f08c
    +linkedin-in:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.4.1
    +  label: LinkedIn In
    +  search:
    +    terms:
    +      - linkedin
    +  styles:
    +    - brands
    +  unicode: f0e1
    +linode:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Linode
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2b8
    +linux:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Linux
    +  search:
    +    terms:
    +      - tux
    +  styles:
    +    - brands
    +  unicode: f17c
    +lira-sign:
    +  changes:
    +    - '4'
    +    - 5.0.0
    +  label: Turkish Lira Sign
    +  search:
    +    terms:
    +      - try
    +      - turkish
    +  styles:
    +    - solid
    +  unicode: f195
    +list:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: List
    +  search:
    +    terms:
    +      - checklist
    +      - completed
    +      - done
    +      - finished
    +      - ol
    +      - todo
    +      - ul
    +  styles:
    +    - solid
    +  unicode: f03a
    +list-alt:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Alternate List
    +  search:
    +    terms:
    +      - checklist
    +      - completed
    +      - done
    +      - finished
    +      - ol
    +      - todo
    +      - ul
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f022
    +list-ol:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: list-ol
    +  search:
    +    terms:
    +      - checklist
    +      - list
    +      - numbers
    +      - ol
    +      - todo
    +      - ul
    +  styles:
    +    - solid
    +  unicode: f0cb
    +list-ul:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: list-ul
    +  search:
    +    terms:
    +      - checklist
    +      - list
    +      - ol
    +      - todo
    +      - ul
    +  styles:
    +    - solid
    +  unicode: f0ca
    +location-arrow:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: location-arrow
    +  search:
    +    terms:
    +      - address
    +      - coordinates
    +      - gps
    +      - location
    +      - map
    +      - place
    +      - where
    +  styles:
    +    - solid
    +  unicode: f124
    +lock:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: lock
    +  search:
    +    terms:
    +      - admin
    +      - protect
    +      - security
    +  styles:
    +    - solid
    +  unicode: f023
    +lock-open:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +    - 5.0.1
    +  label: Lock Open
    +  search:
    +    terms:
    +      - admin
    +      - lock
    +      - open
    +      - password
    +      - protect
    +  styles:
    +    - solid
    +  unicode: f3c1
    +long-arrow-alt-down:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Long Arrow Down
    +  search:
    +    terms:
    +      - long-arrow-down
    +  styles:
    +    - solid
    +  unicode: f309
    +long-arrow-alt-left:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Long Arrow Left
    +  search:
    +    terms:
    +      - back
    +      - long-arrow-left
    +      - previous
    +  styles:
    +    - solid
    +  unicode: f30a
    +long-arrow-alt-right:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Long Arrow Right
    +  search:
    +    terms:
    +      - long-arrow-right
    +  styles:
    +    - solid
    +  unicode: f30b
    +long-arrow-alt-up:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Long Arrow Up
    +  search:
    +    terms:
    +      - long-arrow-up
    +  styles:
    +    - solid
    +  unicode: f30c
    +low-vision:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Low Vision
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f2a8
    +luggage-cart:
    +  changes:
    +    - 5.1.0
    +  label: Luggage Cart
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f59d
    +lyft:
    +  changes:
    +    - 5.0.0
    +  label: lyft
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3c3
    +magento:
    +  changes:
    +    - 5.0.0
    +  label: Magento
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3c4
    +magic:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.1.0
    +  label: magic
    +  search:
    +    terms:
    +      - autocomplete
    +      - automatic
    +      - mage
    +      - magic
    +      - spell
    +      - witch
    +      - wizard
    +  styles:
    +    - solid
    +  unicode: f0d0
    +magnet:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: magnet
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f076
    +mail-bulk:
    +  changes:
    +    - 5.3.0
    +  label: Mail Bulk
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f674
    +mailchimp:
    +  changes:
    +    - 5.1.0
    +  label: Mailchimp
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f59e
    +male:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Male
    +  search:
    +    terms:
    +      - human
    +      - man
    +      - person
    +      - profile
    +      - user
    +  styles:
    +    - solid
    +  unicode: f183
    +mandalorian:
    +  changes:
    +    - 5.0.12
    +  label: Mandalorian
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f50f
    +map:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +    - 5.1.0
    +  label: Map
    +  search:
    +    terms:
    +      - coordinates
    +      - location
    +      - paper
    +      - place
    +      - travel
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f279
    +map-marked:
    +  changes:
    +    - 5.1.0
    +  label: Map Marked
    +  search:
    +    terms:
    +      - address
    +      - coordinates
    +      - destination
    +      - gps
    +      - localize
    +      - location
    +      - map
    +      - paper
    +      - pin
    +      - place
    +      - point of interest
    +      - position
    +      - route
    +      - travel
    +      - where
    +  styles:
    +    - solid
    +  unicode: f59f
    +map-marked-alt:
    +  changes:
    +    - 5.1.0
    +  label: Alternate Map Marked
    +  search:
    +    terms:
    +      - address
    +      - coordinates
    +      - destination
    +      - gps
    +      - localize
    +      - location
    +      - map
    +      - paper
    +      - pin
    +      - place
    +      - point of interest
    +      - position
    +      - route
    +      - travel
    +      - where
    +  styles:
    +    - solid
    +  unicode: f5a0
    +map-marker:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: map-marker
    +  search:
    +    terms:
    +      - address
    +      - coordinates
    +      - gps
    +      - localize
    +      - location
    +      - map
    +      - pin
    +      - place
    +      - position
    +      - travel
    +      - where
    +  styles:
    +    - solid
    +  unicode: f041
    +map-marker-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Map Marker
    +  search:
    +    terms:
    +      - address
    +      - coordinates
    +      - gps
    +      - localize
    +      - location
    +      - map
    +      - pin
    +      - place
    +      - position
    +      - travel
    +      - where
    +  styles:
    +    - solid
    +  unicode: f3c5
    +map-pin:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +    - 5.2.0
    +  label: Map Pin
    +  search:
    +    terms:
    +      - address
    +      - coordinates
    +      - gps
    +      - localize
    +      - location
    +      - map
    +      - marker
    +      - place
    +      - position
    +      - travel
    +      - where
    +  styles:
    +    - solid
    +  unicode: f276
    +map-signs:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +    - 5.2.0
    +  label: Map Signs
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f277
    +markdown:
    +  changes:
    +    - 5.2.0
    +  label: Markdown
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f60f
    +marker:
    +  changes:
    +    - 5.1.0
    +  label: Marker
    +  search:
    +    terms:
    +      - edit
    +      - sharpie
    +      - update
    +      - write
    +  styles:
    +    - solid
    +  unicode: f5a1
    +mars:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Mars
    +  search:
    +    terms:
    +      - male
    +  styles:
    +    - solid
    +  unicode: f222
    +mars-double:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Mars Double
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f227
    +mars-stroke:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Mars Stroke
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f229
    +mars-stroke-h:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Mars Stroke Horizontal
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f22b
    +mars-stroke-v:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Mars Stroke Vertical
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f22a
    +mask:
    +  changes:
    +    - 5.4.0
    +  label: Mask
    +  search:
    +    terms:
    +      - costume
    +      - disguise
    +      - halloween
    +      - holiday
    +      - secret
    +      - super hero
    +  styles:
    +    - solid
    +  unicode: f6fa
    +mastodon:
    +  changes:
    +    - 5.0.11
    +  label: Mastodon
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4f6
    +maxcdn:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: MaxCDN
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f136
    +medal:
    +  changes:
    +    - 5.1.0
    +  label: Medal
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5a2
    +medapps:
    +  changes:
    +    - 5.0.0
    +  label: MedApps
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3c6
    +medium:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Medium
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f23a
    +medium-m:
    +  changes:
    +    - 5.0.0
    +  label: Medium M
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3c7
    +medkit:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: medkit
    +  search:
    +    terms:
    +      - first aid
    +      - firstaid
    +      - health
    +      - help
    +      - support
    +  styles:
    +    - solid
    +  unicode: f0fa
    +medrt:
    +  changes:
    +    - 5.0.0
    +  label: MRT
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3c8
    +meetup:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Meetup
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2e0
    +megaport:
    +  changes:
    +    - 5.1.0
    +  label: Megaport
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f5a3
    +meh:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +    - 5.0.9
    +    - 5.1.0
    +  label: Neutral Face
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - neutral
    +      - rating
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f11a
    +meh-blank:
    +  changes:
    +    - 5.1.0
    +  label: Face Without Mouth
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - neutral
    +      - rating
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f5a4
    +meh-rolling-eyes:
    +  changes:
    +    - 5.1.0
    +  label: Face With Rolling Eyes
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - neutral
    +      - rating
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f5a5
    +memory:
    +  changes:
    +    - 5.0.13
    +  label: Memory
    +  search:
    +    terms:
    +      - DIMM
    +      - RAM
    +  styles:
    +    - solid
    +  unicode: f538
    +menorah:
    +  changes:
    +    - 5.3.0
    +    - 5.4.0
    +  label: Menorah
    +  search:
    +    terms:
    +      - candle
    +      - hanukkah
    +      - jewish
    +      - judaism
    +      - light
    +  styles:
    +    - solid
    +  unicode: f676
    +mercury:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Mercury
    +  search:
    +    terms:
    +      - transgender
    +  styles:
    +    - solid
    +  unicode: f223
    +microchip:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Microchip
    +  search:
    +    terms:
    +      - cpu
    +      - processor
    +  styles:
    +    - solid
    +  unicode: f2db
    +microphone:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +    - 5.0.13
    +  label: microphone
    +  search:
    +    terms:
    +      - record
    +      - sound
    +      - voice
    +  styles:
    +    - solid
    +  unicode: f130
    +microphone-alt:
    +  changes:
    +    - 5.0.0
    +    - 5.0.13
    +  label: Alternate Microphone
    +  search:
    +    terms:
    +      - record
    +      - sound
    +      - voice
    +  styles:
    +    - solid
    +  unicode: f3c9
    +microphone-alt-slash:
    +  changes:
    +    - 5.0.13
    +  label: Alternate Microphone Slash
    +  search:
    +    terms:
    +      - disable
    +      - mute
    +      - record
    +      - sound
    +      - voice
    +  styles:
    +    - solid
    +  unicode: f539
    +microphone-slash:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +    - 5.0.13
    +  label: Microphone Slash
    +  search:
    +    terms:
    +      - disable
    +      - mute
    +      - record
    +      - sound
    +      - voice
    +  styles:
    +    - solid
    +  unicode: f131
    +microscope:
    +  changes:
    +    - 5.2.0
    +  label: Microscope
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f610
    +microsoft:
    +  changes:
    +    - 5.0.0
    +  label: Microsoft
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3ca
    +minus:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: minus
    +  search:
    +    terms:
    +      - collapse
    +      - delete
    +      - hide
    +      - minify
    +      - negative
    +      - remove
    +      - trash
    +  styles:
    +    - solid
    +  unicode: f068
    +minus-circle:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Minus Circle
    +  search:
    +    terms:
    +      - delete
    +      - hide
    +      - negative
    +      - remove
    +      - trash
    +  styles:
    +    - solid
    +  unicode: f056
    +minus-square:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Minus Square
    +  search:
    +    terms:
    +      - collapse
    +      - delete
    +      - hide
    +      - minify
    +      - negative
    +      - remove
    +      - trash
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f146
    +mix:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Mix
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3cb
    +mixcloud:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Mixcloud
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f289
    +mizuni:
    +  changes:
    +    - 5.0.0
    +  label: Mizuni
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3cc
    +mobile:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Mobile Phone
    +  search:
    +    terms:
    +      - apple
    +      - call
    +      - cell phone
    +      - cellphone
    +      - device
    +      - iphone
    +      - number
    +      - screen
    +      - telephone
    +      - text
    +  styles:
    +    - solid
    +  unicode: f10b
    +mobile-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Mobile
    +  search:
    +    terms:
    +      - apple
    +      - call
    +      - cell phone
    +      - cellphone
    +      - device
    +      - iphone
    +      - number
    +      - screen
    +      - telephone
    +      - text
    +  styles:
    +    - solid
    +  unicode: f3cd
    +modx:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: MODX
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f285
    +monero:
    +  changes:
    +    - 5.0.0
    +  label: Monero
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3d0
    +money-bill:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.0.13
    +  label: Money Bill
    +  search:
    +    terms:
    +      - buy
    +      - cash
    +      - checkout
    +      - money
    +      - payment
    +      - price
    +      - purchase
    +  styles:
    +    - solid
    +  unicode: f0d6
    +money-bill-alt:
    +  changes:
    +    - 5.0.0
    +    - 5.0.13
    +  label: Alternate Money Bill
    +  search:
    +    terms:
    +      - buy
    +      - cash
    +      - checkout
    +      - money
    +      - payment
    +      - price
    +      - purchase
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f3d1
    +money-bill-wave:
    +  changes:
    +    - 5.0.13
    +  label: Wavy Money Bill
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f53a
    +money-bill-wave-alt:
    +  changes:
    +    - 5.0.13
    +  label: Alternate Wavy Money Bill
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f53b
    +money-check:
    +  changes:
    +    - 5.0.13
    +  label: Money Check
    +  search:
    +    terms:
    +      - bank check
    +      - cheque
    +  styles:
    +    - solid
    +  unicode: f53c
    +money-check-alt:
    +  changes:
    +    - 5.0.13
    +  label: Alternate Money Check
    +  search:
    +    terms:
    +      - bank check
    +      - cheque
    +  styles:
    +    - solid
    +  unicode: f53d
    +monument:
    +  changes:
    +    - 5.1.0
    +  label: Monument
    +  search:
    +    terms:
    +      - building
    +      - historic
    +      - memoroable
    +  styles:
    +    - solid
    +  unicode: f5a6
    +moon:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Moon
    +  search:
    +    terms:
    +      - contrast
    +      - darker
    +      - night
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f186
    +mortar-pestle:
    +  changes:
    +    - 5.1.0
    +  label: Mortar Pestle
    +  search:
    +    terms:
    +      - crush
    +      - culinary
    +      - grind
    +      - medical
    +      - mix
    +      - spices
    +  styles:
    +    - solid
    +  unicode: f5a7
    +mosque:
    +  changes:
    +    - 5.3.0
    +  label: Mosque
    +  search:
    +    terms:
    +      - building
    +      - islam
    +      - muslim
    +  styles:
    +    - solid
    +  unicode: f678
    +motorcycle:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Motorcycle
    +  search:
    +    terms:
    +      - bike
    +      - machine
    +      - transportation
    +      - vehicle
    +  styles:
    +    - solid
    +  unicode: f21c
    +mountain:
    +  changes:
    +    - 5.4.0
    +  label: Mountain
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f6fc
    +mouse-pointer:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Mouse Pointer
    +  search:
    +    terms:
    +      - select
    +  styles:
    +    - solid
    +  unicode: f245
    +music:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.2.0
    +  label: Music
    +  search:
    +    terms:
    +      - note
    +      - sound
    +  styles:
    +    - solid
    +  unicode: f001
    +napster:
    +  changes:
    +    - 5.0.0
    +  label: Napster
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3d2
    +neos:
    +  changes:
    +    - 5.2.0
    +  label: Neos
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f612
    +network-wired:
    +  changes:
    +    - 5.4.0
    +  label: Wired Network
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f6ff
    +neuter:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Neuter
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f22c
    +newspaper:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Newspaper
    +  search:
    +    terms:
    +      - article
    +      - press
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1ea
    +nimblr:
    +  changes:
    +    - 5.1.0
    +  label: Nimblr
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f5a8
    +nintendo-switch:
    +  changes:
    +    - 5.0.0
    +  label: Nintendo Switch
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f418
    +node:
    +  changes:
    +    - 5.0.0
    +  label: Node.js
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f419
    +node-js:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Node.js JS
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3d3
    +not-equal:
    +  changes:
    +    - 5.0.13
    +  label: Not Equal
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f53e
    +notes-medical:
    +  changes:
    +    - 5.0.7
    +  label: Medical Notes
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f481
    +npm:
    +  changes:
    +    - 5.0.0
    +  label: npm
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3d4
    +ns8:
    +  changes:
    +    - 5.0.0
    +  label: NS8
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3d5
    +nutritionix:
    +  changes:
    +    - 5.0.0
    +  label: Nutritionix
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3d6
    +object-group:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Object Group
    +  search:
    +    terms:
    +      - design
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f247
    +object-ungroup:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Object Ungroup
    +  search:
    +    terms:
    +      - design
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f248
    +odnoklassniki:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Odnoklassniki
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f263
    +odnoklassniki-square:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Odnoklassniki Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f264
    +oil-can:
    +  changes:
    +    - 5.2.0
    +  label: Oil Can
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f613
    +old-republic:
    +  changes:
    +    - 5.0.12
    +  label: Old Republic
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f510
    +om:
    +  changes:
    +    - 5.3.0
    +  label: Om
    +  search:
    +    terms:
    +      - buddhism
    +      - hinduism
    +      - jainism
    +      - mantra
    +  styles:
    +    - solid
    +  unicode: f679
    +opencart:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: OpenCart
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f23d
    +openid:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: OpenID
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f19b
    +opera:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Opera
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f26a
    +optin-monster:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Optin Monster
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f23c
    +osi:
    +  changes:
    +    - 5.0.0
    +  label: Open Source Initiative
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f41a
    +otter:
    +  changes:
    +    - 5.4.0
    +  label: Otter
    +  search:
    +    terms:
    +      - fauna
    +      - mammmal
    +  styles:
    +    - solid
    +  unicode: f700
    +outdent:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Outdent
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f03b
    +page4:
    +  changes:
    +    - 5.0.0
    +  label: page4 Corporation
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3d7
    +pagelines:
    +  changes:
    +    - '4'
    +    - 5.0.0
    +  label: Pagelines
    +  search:
    +    terms:
    +      - eco
    +      - flora
    +      - leaf
    +      - leaves
    +      - nature
    +      - plant
    +      - tree
    +  styles:
    +    - brands
    +  unicode: f18c
    +paint-brush:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +    - 5.1.0
    +  label: Paint Brush
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1fc
    +paint-roller:
    +  changes:
    +    - 5.1.0
    +  label: Paint Roller
    +  search:
    +    terms:
    +      - brush
    +      - painting
    +      - tool
    +  styles:
    +    - solid
    +  unicode: f5aa
    +palette:
    +  changes:
    +    - 5.0.13
    +  label: Palette
    +  search:
    +    terms:
    +      - colors
    +      - painting
    +  styles:
    +    - solid
    +  unicode: f53f
    +palfed:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Palfed
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3d8
    +pallet:
    +  changes:
    +    - 5.0.7
    +  label: Pallet
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f482
    +paper-plane:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Paper Plane
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f1d8
    +paperclip:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Paperclip
    +  search:
    +    terms:
    +      - attachment
    +  styles:
    +    - solid
    +  unicode: f0c6
    +parachute-box:
    +  changes:
    +    - 5.0.9
    +  label: Parachute Box
    +  search:
    +    terms:
    +      - aid
    +      - assistance
    +      - rescue
    +      - supplies
    +  styles:
    +    - solid
    +  unicode: f4cd
    +paragraph:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: paragraph
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1dd
    +parking:
    +  changes:
    +    - 5.0.13
    +  label: Parking
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f540
    +passport:
    +  changes:
    +    - 5.1.0
    +  label: Passport
    +  search:
    +    terms:
    +      - document
    +      - identification
    +      - issued
    +  styles:
    +    - solid
    +  unicode: f5ab
    +pastafarianism:
    +  changes:
    +    - 5.3.0
    +  label: Pastafarianism
    +  search:
    +    terms:
    +      - agnosticism
    +      - atheism
    +      - flying spaghetti monster
    +      - fsm
    +  styles:
    +    - solid
    +  unicode: f67b
    +paste:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Paste
    +  search:
    +    terms:
    +      - clipboard
    +      - copy
    +  styles:
    +    - solid
    +  unicode: f0ea
    +patreon:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Patreon
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3d9
    +pause:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: pause
    +  search:
    +    terms:
    +      - wait
    +  styles:
    +    - solid
    +  unicode: f04c
    +pause-circle:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Pause Circle
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f28b
    +paw:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Paw
    +  search:
    +    terms:
    +      - animal
    +      - pet
    +  styles:
    +    - solid
    +  unicode: f1b0
    +paypal:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Paypal
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1ed
    +peace:
    +  changes:
    +    - 5.3.0
    +  label: Peace
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f67c
    +pen:
    +  changes:
    +    - 5.0.0
    +    - 5.1.0
    +  label: Pen
    +  search:
    +    terms:
    +      - design
    +      - edit
    +      - update
    +      - write
    +  styles:
    +    - solid
    +  unicode: f304
    +pen-alt:
    +  changes:
    +    - 5.0.0
    +    - 5.1.0
    +  label: Alternate Pen
    +  search:
    +    terms:
    +      - design
    +      - edit
    +      - update
    +      - write
    +  styles:
    +    - solid
    +  unicode: f305
    +pen-fancy:
    +  changes:
    +    - 5.1.0
    +  label: Pen Fancy
    +  search:
    +    terms:
    +      - design
    +      - edit
    +      - fountain pen
    +      - update
    +      - write
    +  styles:
    +    - solid
    +  unicode: f5ac
    +pen-nib:
    +  changes:
    +    - 5.1.0
    +  label: Pen Nib
    +  search:
    +    terms:
    +      - design
    +      - edit
    +      - fountain pen
    +      - update
    +      - write
    +  styles:
    +    - solid
    +  unicode: f5ad
    +pen-square:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Pen Square
    +  search:
    +    terms:
    +      - edit
    +      - pencil-square
    +      - update
    +      - write
    +  styles:
    +    - solid
    +  unicode: f14b
    +pencil-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Pencil
    +  search:
    +    terms:
    +      - design
    +      - edit
    +      - pencil
    +      - update
    +      - write
    +  styles:
    +    - solid
    +  unicode: f303
    +pencil-ruler:
    +  changes:
    +    - 5.1.0
    +  label: Pencil Ruler
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5ae
    +penny-arcade:
    +  changes:
    +    - 5.4.0
    +  label: Penny Arcade
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - d&d
    +      - dnd
    +      - fantasy
    +      - game
    +      - gaming
    +      - pax
    +      - tabletop
    +  styles:
    +    - brands
    +  unicode: f704
    +people-carry:
    +  changes:
    +    - 5.0.9
    +  label: People Carry
    +  search:
    +    terms:
    +      - movers
    +  styles:
    +    - solid
    +  unicode: f4ce
    +percent:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Percent
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f295
    +percentage:
    +  changes:
    +    - 5.0.13
    +  label: Percentage
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f541
    +periscope:
    +  changes:
    +    - 5.0.0
    +  label: Periscope
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3da
    +phabricator:
    +  changes:
    +    - 5.0.0
    +  label: Phabricator
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3db
    +phoenix-framework:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Phoenix Framework
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3dc
    +phoenix-squadron:
    +  changes:
    +    - 5.0.12
    +  label: Phoenix Squadron
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f511
    +phone:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Phone
    +  search:
    +    terms:
    +      - call
    +      - earphone
    +      - number
    +      - support
    +      - telephone
    +      - voice
    +  styles:
    +    - solid
    +  unicode: f095
    +phone-slash:
    +  changes:
    +    - 5.0.0
    +    - 5.0.9
    +  label: Phone Slash
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f3dd
    +phone-square:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Phone Square
    +  search:
    +    terms:
    +      - call
    +      - number
    +      - support
    +      - telephone
    +      - voice
    +  styles:
    +    - solid
    +  unicode: f098
    +phone-volume:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Phone Volume
    +  search:
    +    terms:
    +      - telephone
    +      - volume-control-phone
    +  styles:
    +    - solid
    +  unicode: f2a0
    +php:
    +  changes:
    +    - 5.0.5
    +  label: PHP
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f457
    +pied-piper:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +    - 5.0.10
    +  label: Pied Piper Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2ae
    +pied-piper-alt:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Alternate Pied Piper Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1a8
    +pied-piper-hat:
    +  changes:
    +    - 5.0.10
    +  label: Pied Piper-hat
    +  search:
    +    terms:
    +      - clothing
    +  styles:
    +    - brands
    +  unicode: f4e5
    +pied-piper-pp:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Pied Piper PP Logo (Old)
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1a7
    +piggy-bank:
    +  changes:
    +    - 5.0.9
    +  label: Piggy Bank
    +  search:
    +    terms:
    +      - save
    +      - savings
    +  styles:
    +    - solid
    +  unicode: f4d3
    +pills:
    +  changes:
    +    - 5.0.7
    +  label: Pills
    +  search:
    +    terms:
    +      - drugs
    +      - medicine
    +  styles:
    +    - solid
    +  unicode: f484
    +pinterest:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Pinterest
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f0d2
    +pinterest-p:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Pinterest P
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f231
    +pinterest-square:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Pinterest Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f0d3
    +place-of-worship:
    +  changes:
    +    - 5.3.0
    +  label: Place Of Worship
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f67f
    +plane:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.0.13
    +  label: plane
    +  search:
    +    terms:
    +      - airplane
    +      - destination
    +      - fly
    +      - location
    +      - mode
    +      - travel
    +      - trip
    +  styles:
    +    - solid
    +  unicode: f072
    +plane-arrival:
    +  changes:
    +    - 5.1.0
    +  label: Plane Arrival
    +  search:
    +    terms:
    +      - airplane
    +      - arriving
    +      - destination
    +      - fly
    +      - land
    +      - landing
    +      - location
    +      - mode
    +      - travel
    +      - trip
    +  styles:
    +    - solid
    +  unicode: f5af
    +plane-departure:
    +  changes:
    +    - 5.1.0
    +  label: Plane Departure
    +  search:
    +    terms:
    +      - airplane
    +      - departing
    +      - destination
    +      - fly
    +      - location
    +      - mode
    +      - take off
    +      - taking off
    +      - travel
    +      - trip
    +  styles:
    +    - solid
    +  unicode: f5b0
    +play:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: play
    +  search:
    +    terms:
    +      - music
    +      - playing
    +      - sound
    +      - start
    +  styles:
    +    - solid
    +  unicode: f04b
    +play-circle:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Play Circle
    +  search:
    +    terms:
    +      - playing
    +      - start
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f144
    +playstation:
    +  changes:
    +    - 5.0.0
    +  label: PlayStation
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3df
    +plug:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Plug
    +  search:
    +    terms:
    +      - connect
    +      - online
    +      - power
    +  styles:
    +    - solid
    +  unicode: f1e6
    +plus:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.0.13
    +  label: plus
    +  search:
    +    terms:
    +      - add
    +      - create
    +      - expand
    +      - new
    +      - positive
    +  styles:
    +    - solid
    +  unicode: f067
    +plus-circle:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Plus Circle
    +  search:
    +    terms:
    +      - add
    +      - create
    +      - expand
    +      - new
    +      - positive
    +  styles:
    +    - solid
    +  unicode: f055
    +plus-square:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Plus Square
    +  search:
    +    terms:
    +      - add
    +      - create
    +      - expand
    +      - new
    +      - positive
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0fe
    +podcast:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Podcast
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f2ce
    +poll:
    +  changes:
    +    - 5.3.0
    +  label: Poll
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f681
    +poll-h:
    +  changes:
    +    - 5.3.0
    +  label: Poll H
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f682
    +poo:
    +  changes:
    +    - 5.0.0
    +    - 5.0.9
    +  label: Poo
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f2fe
    +poop:
    +  changes:
    +    - 5.2.0
    +  label: Poop
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f619
    +portrait:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Portrait
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f3e0
    +pound-sign:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Pound Sign
    +  search:
    +    terms:
    +      - gbp
    +  styles:
    +    - solid
    +  unicode: f154
    +power-off:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Power Off
    +  search:
    +    terms:
    +      - 'on'
    +      - reboot
    +      - restart
    +  styles:
    +    - solid
    +  unicode: f011
    +pray:
    +  changes:
    +    - 5.3.0
    +  label: Pray
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f683
    +praying-hands:
    +  changes:
    +    - 5.3.0
    +  label: Praying Hands
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f684
    +prescription:
    +  changes:
    +    - 5.1.0
    +  label: Prescription
    +  search:
    +    terms:
    +      - drugs
    +      - medical
    +      - medicine
    +      - rx
    +  styles:
    +    - solid
    +  unicode: f5b1
    +prescription-bottle:
    +  changes:
    +    - 5.0.7
    +  label: Prescription Bottle
    +  search:
    +    terms:
    +      - drugs
    +      - medical
    +      - medicine
    +      - rx
    +  styles:
    +    - solid
    +  unicode: f485
    +prescription-bottle-alt:
    +  changes:
    +    - 5.0.7
    +  label: Alternate Prescription Bottle
    +  search:
    +    terms:
    +      - drugs
    +      - medical
    +      - medicine
    +      - rx
    +  styles:
    +    - solid
    +  unicode: f486
    +print:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.3.0
    +  label: print
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f02f
    +procedures:
    +  changes:
    +    - 5.0.7
    +  label: Procedures
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f487
    +product-hunt:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Product Hunt
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f288
    +project-diagram:
    +  changes:
    +    - 5.0.13
    +  label: Project Diagram
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f542
    +pushed:
    +  changes:
    +    - 5.0.0
    +  label: Pushed
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3e1
    +puzzle-piece:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Puzzle Piece
    +  search:
    +    terms:
    +      - add-on
    +      - addon
    +      - section
    +  styles:
    +    - solid
    +  unicode: f12e
    +python:
    +  changes:
    +    - 5.0.0
    +  label: Python
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3e2
    +qq:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: QQ
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1d6
    +qrcode:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: qrcode
    +  search:
    +    terms:
    +      - scan
    +  styles:
    +    - solid
    +  unicode: f029
    +question:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Question
    +  search:
    +    terms:
    +      - help
    +      - information
    +      - support
    +      - unknown
    +  styles:
    +    - solid
    +  unicode: f128
    +question-circle:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Question Circle
    +  search:
    +    terms:
    +      - help
    +      - information
    +      - support
    +      - unknown
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f059
    +quidditch:
    +  changes:
    +    - 5.0.5
    +  label: Quidditch
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f458
    +quinscape:
    +  changes:
    +    - 5.0.5
    +  label: QuinScape
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f459
    +quora:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Quora
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2c4
    +quote-left:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +    - 5.0.9
    +  label: quote-left
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f10d
    +quote-right:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +    - 5.0.9
    +  label: quote-right
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f10e
    +quran:
    +  changes:
    +    - 5.3.0
    +  label: Quran
    +  search:
    +    terms:
    +      - book
    +      - islam
    +      - muslim
    +  styles:
    +    - solid
    +  unicode: f687
    +r-project:
    +  changes:
    +    - 5.0.11
    +    - 5.0.12
    +  label: R Project
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4f7
    +random:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: random
    +  search:
    +    terms:
    +      - shuffle
    +      - sort
    +  styles:
    +    - solid
    +  unicode: f074
    +ravelry:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Ravelry
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2d9
    +react:
    +  changes:
    +    - 5.0.0
    +  label: React
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f41b
    +readme:
    +  changes:
    +    - 5.0.9
    +    - 5.0.10
    +  label: ReadMe
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4d5
    +rebel:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Rebel Alliance
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1d0
    +receipt:
    +  changes:
    +    - 5.0.13
    +  label: Receipt
    +  search:
    +    terms:
    +      - check
    +      - invoice
    +      - table
    +  styles:
    +    - solid
    +  unicode: f543
    +recycle:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Recycle
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1b8
    +red-river:
    +  changes:
    +    - 5.0.0
    +  label: red river
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3e3
    +reddit:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: reddit Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1a1
    +reddit-alien:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: reddit Alien
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f281
    +reddit-square:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: reddit Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1a2
    +redo:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Redo
    +  search:
    +    terms:
    +      - forward
    +      - refresh
    +      - reload
    +      - repeat
    +  styles:
    +    - solid
    +  unicode: f01e
    +redo-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Redo
    +  search:
    +    terms:
    +      - forward
    +      - refresh
    +      - reload
    +      - repeat
    +  styles:
    +    - solid
    +  unicode: f2f9
    +registered:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Registered Trademark
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f25d
    +rendact:
    +  changes:
    +    - 5.0.0
    +  label: Rendact
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3e4
    +renren:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Renren
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f18b
    +reply:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Reply
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f3e5
    +reply-all:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: reply-all
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f122
    +replyd:
    +  changes:
    +    - 5.0.0
    +  label: replyd
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3e6
    +researchgate:
    +  changes:
    +    - 5.0.11
    +  label: Researchgate
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4f8
    +resolving:
    +  changes:
    +    - 5.0.0
    +  label: Resolving
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3e7
    +retweet:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Retweet
    +  search:
    +    terms:
    +      - refresh
    +      - reload
    +      - share
    +      - swap
    +  styles:
    +    - solid
    +  unicode: f079
    +rev:
    +  changes:
    +    - 5.1.0
    +    - 5.1.1
    +  label: Rev.io
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f5b2
    +ribbon:
    +  changes:
    +    - 5.0.9
    +  label: Ribbon
    +  search:
    +    terms:
    +      - badge
    +      - cause
    +      - lapel
    +      - pin
    +  styles:
    +    - solid
    +  unicode: f4d6
    +ring:
    +  changes:
    +    - 5.4.0
    +  label: Ring
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - Gollum
    +      - band
    +      - binding
    +      - d&d
    +      - dnd
    +      - fantasy
    +      - jewelry
    +      - precious
    +  styles:
    +    - solid
    +  unicode: f70b
    +road:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.2.0
    +  label: road
    +  search:
    +    terms:
    +      - street
    +  styles:
    +    - solid
    +  unicode: f018
    +robot:
    +  changes:
    +    - 5.0.13
    +  label: Robot
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f544
    +rocket:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: rocket
    +  search:
    +    terms:
    +      - app
    +  styles:
    +    - solid
    +  unicode: f135
    +rocketchat:
    +  changes:
    +    - 5.0.0
    +  label: Rocket.Chat
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3e8
    +rockrms:
    +  changes:
    +    - 5.0.0
    +  label: Rockrms
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3e9
    +route:
    +  changes:
    +    - 5.0.9
    +  label: Route
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4d7
    +rss:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: rss
    +  search:
    +    terms:
    +      - blog
    +  styles:
    +    - solid
    +  unicode: f09e
    +rss-square:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: RSS Square
    +  search:
    +    terms:
    +      - blog
    +      - feed
    +  styles:
    +    - solid
    +  unicode: f143
    +ruble-sign:
    +  changes:
    +    - '4'
    +    - 5.0.0
    +  label: Ruble Sign
    +  search:
    +    terms:
    +      - rub
    +  styles:
    +    - solid
    +  unicode: f158
    +ruler:
    +  changes:
    +    - 5.0.13
    +  label: Ruler
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f545
    +ruler-combined:
    +  changes:
    +    - 5.0.13
    +  label: Ruler Combined
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f546
    +ruler-horizontal:
    +  changes:
    +    - 5.0.13
    +  label: Ruler Horizontal
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f547
    +ruler-vertical:
    +  changes:
    +    - 5.0.13
    +  label: Ruler Vertical
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f548
    +running:
    +  changes:
    +    - 5.4.0
    +  label: Running
    +  search:
    +    terms:
    +      - jog
    +      - sprint
    +  styles:
    +    - solid
    +  unicode: f70c
    +rupee-sign:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Indian Rupee Sign
    +  search:
    +    terms:
    +      - indian
    +      - inr
    +  styles:
    +    - solid
    +  unicode: f156
    +sad-cry:
    +  changes:
    +    - 5.1.0
    +  label: Crying Face
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - tear
    +      - tears
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f5b3
    +sad-tear:
    +  changes:
    +    - 5.1.0
    +  label: Loudly Crying Face
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - tear
    +      - tears
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f5b4
    +safari:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Safari
    +  search:
    +    terms:
    +      - browser
    +  styles:
    +    - brands
    +  unicode: f267
    +sass:
    +  changes:
    +    - 5.0.0
    +  label: Sass
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f41e
    +save:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Save
    +  search:
    +    terms:
    +      - floppy
    +      - floppy-o
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0c7
    +schlix:
    +  changes:
    +    - 5.0.0
    +  label: SCHLIX
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3ea
    +school:
    +  changes:
    +    - 5.0.13
    +  label: School
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f549
    +screwdriver:
    +  changes:
    +    - 5.0.13
    +  label: Screwdriver
    +  search:
    +    terms:
    +      - admin
    +      - fix
    +      - repair
    +      - settings
    +      - tool
    +  styles:
    +    - solid
    +  unicode: f54a
    +scribd:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Scribd
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f28a
    +scroll:
    +  changes:
    +    - 5.4.0
    +  label: Scroll
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - announcement
    +      - d&d
    +      - dnd
    +      - fantasy
    +      - paper
    +  styles:
    +    - solid
    +  unicode: f70e
    +search:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Search
    +  search:
    +    terms:
    +      - bigger
    +      - enlarge
    +      - magnify
    +      - preview
    +      - zoom
    +  styles:
    +    - solid
    +  unicode: f002
    +search-dollar:
    +  changes:
    +    - 5.3.0
    +  label: Search Dollar
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f688
    +search-location:
    +  changes:
    +    - 5.3.0
    +  label: Search Location
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f689
    +search-minus:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.0.13
    +  label: Search Minus
    +  search:
    +    terms:
    +      - minify
    +      - negative
    +      - smaller
    +      - zoom
    +      - zoom out
    +  styles:
    +    - solid
    +  unicode: f010
    +search-plus:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Search Plus
    +  search:
    +    terms:
    +      - bigger
    +      - enlarge
    +      - magnify
    +      - positive
    +      - zoom
    +      - zoom in
    +  styles:
    +    - solid
    +  unicode: f00e
    +searchengin:
    +  changes:
    +    - 5.0.0
    +  label: Searchengin
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3eb
    +seedling:
    +  changes:
    +    - 5.0.9
    +  label: Seedling
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4d8
    +sellcast:
    +  changes:
    +    - 5.0.0
    +  label: Sellcast
    +  search:
    +    terms:
    +      - eercast
    +  styles:
    +    - brands
    +  unicode: f2da
    +sellsy:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Sellsy
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f213
    +server:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Server
    +  search:
    +    terms:
    +      - cpu
    +  styles:
    +    - solid
    +  unicode: f233
    +servicestack:
    +  changes:
    +    - 5.0.0
    +  label: Servicestack
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3ec
    +shapes:
    +  changes:
    +    - 5.2.0
    +  label: Shapes
    +  search:
    +    terms:
    +      - circle
    +      - square
    +      - triangle
    +  styles:
    +    - solid
    +  unicode: f61f
    +share:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Share
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f064
    +share-alt:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Alternate Share
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1e0
    +share-alt-square:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Alternate Share Square
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1e1
    +share-square:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Share Square
    +  search:
    +    terms:
    +      - send
    +      - social
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f14d
    +shekel-sign:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Shekel Sign
    +  search:
    +    terms:
    +      - ils
    +  styles:
    +    - solid
    +  unicode: f20b
    +shield-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Shield
    +  search:
    +    terms:
    +      - achievement
    +      - award
    +      - block
    +      - defend
    +      - security
    +      - winner
    +  styles:
    +    - solid
    +  unicode: f3ed
    +ship:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Ship
    +  search:
    +    terms:
    +      - boat
    +      - sea
    +  styles:
    +    - solid
    +  unicode: f21a
    +shipping-fast:
    +  changes:
    +    - 5.0.7
    +  label: Shipping Fast
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f48b
    +shirtsinbulk:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Shirts in Bulk
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f214
    +shoe-prints:
    +  changes:
    +    - 5.0.13
    +  label: Shoe Prints
    +  search:
    +    terms:
    +      - feet
    +      - footprints
    +      - steps
    +  styles:
    +    - solid
    +  unicode: f54b
    +shopping-bag:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Shopping Bag
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f290
    +shopping-basket:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Shopping Basket
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f291
    +shopping-cart:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: shopping-cart
    +  search:
    +    terms:
    +      - buy
    +      - checkout
    +      - payment
    +      - purchase
    +  styles:
    +    - solid
    +  unicode: f07a
    +shopware:
    +  changes:
    +    - 5.1.0
    +  label: Shopware
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f5b5
    +shower:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Shower
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f2cc
    +shuttle-van:
    +  changes:
    +    - 5.1.0
    +  label: Shuttle Van
    +  search:
    +    terms:
    +      - machine
    +      - public-transportation
    +      - transportation
    +      - vehicle
    +  styles:
    +    - solid
    +  unicode: f5b6
    +sign:
    +  changes:
    +    - 5.0.9
    +  label: Sign
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4d9
    +sign-in-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Sign In
    +  search:
    +    terms:
    +      - arrow
    +      - enter
    +      - join
    +      - log in
    +      - login
    +      - sign in
    +      - sign up
    +      - sign-in
    +      - signin
    +      - signup
    +  styles:
    +    - solid
    +  unicode: f2f6
    +sign-language:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Sign Language
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f2a7
    +sign-out-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Sign Out
    +  search:
    +    terms:
    +      - arrow
    +      - exit
    +      - leave
    +      - log out
    +      - logout
    +      - sign-out
    +  styles:
    +    - solid
    +  unicode: f2f5
    +signal:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.3.0
    +  label: signal
    +  search:
    +    terms:
    +      - bars
    +      - graph
    +      - online
    +      - status
    +  styles:
    +    - solid
    +  unicode: f012
    +signature:
    +  changes:
    +    - 5.1.0
    +  label: Signature
    +  search:
    +    terms:
    +      - John Hancock
    +      - cursive
    +      - name
    +      - writing
    +  styles:
    +    - solid
    +  unicode: f5b7
    +simplybuilt:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: SimplyBuilt
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f215
    +sistrix:
    +  changes:
    +    - 5.0.0
    +  label: SISTRIX
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3ee
    +sitemap:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.0.13
    +  label: Sitemap
    +  search:
    +    terms:
    +      - directory
    +      - hierarchy
    +      - ia
    +      - information architecture
    +      - organization
    +  styles:
    +    - solid
    +  unicode: f0e8
    +sith:
    +  changes:
    +    - 5.0.12
    +  label: Sith
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f512
    +skull:
    +  changes:
    +    - 5.0.13
    +  label: Skull
    +  search:
    +    terms:
    +      - bones
    +      - skeleton
    +      - yorick
    +  styles:
    +    - solid
    +  unicode: f54c
    +skull-crossbones:
    +  changes:
    +    - 5.4.0
    +  label: Skull & Crossbones
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - alert
    +      - bones
    +      - d&d
    +      - danger
    +      - dead
    +      - deadly
    +      - death
    +      - dnd
    +      - fantasy
    +      - halloween
    +      - holiday
    +      - jolly-roger
    +      - pirate
    +      - poison
    +      - skeleton
    +      - warning
    +  styles:
    +    - solid
    +  unicode: f714
    +skyatlas:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +    - 5.0.3
    +  label: skyatlas
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f216
    +skype:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Skype
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f17e
    +slack:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Slack Logo
    +  search:
    +    terms:
    +      - anchor
    +      - hash
    +      - hashtag
    +  styles:
    +    - brands
    +  unicode: f198
    +slack-hash:
    +  changes:
    +    - 5.0.0
    +  label: Slack Hashtag
    +  search:
    +    terms:
    +      - anchor
    +      - hash
    +      - hashtag
    +  styles:
    +    - brands
    +  unicode: f3ef
    +slash:
    +  changes:
    +    - 5.4.0
    +  label: Slash
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f715
    +sliders-h:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +    - 5.0.11
    +  label: Horizontal Sliders
    +  search:
    +    terms:
    +      - settings
    +      - sliders
    +  styles:
    +    - solid
    +  unicode: f1de
    +slideshare:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Slideshare
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1e7
    +smile:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +    - 5.0.9
    +    - 5.1.0
    +  label: Smiling Face
    +  search:
    +    terms:
    +      - approve
    +      - emoticon
    +      - face
    +      - happy
    +      - rating
    +      - satisfied
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f118
    +smile-beam:
    +  changes:
    +    - 5.1.0
    +  label: Beaming Face With Smiling Eyes
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - happy
    +      - positive
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f5b8
    +smile-wink:
    +  changes:
    +    - 5.1.0
    +  label: Winking Face
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - happy
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f4da
    +smoking:
    +  changes:
    +    - 5.0.7
    +  label: Smoking
    +  search:
    +    terms:
    +      - cigarette
    +      - nicotine
    +      - smoking status
    +  styles:
    +    - solid
    +  unicode: f48d
    +smoking-ban:
    +  changes:
    +    - 5.0.13
    +  label: Smoking Ban
    +  search:
    +    terms:
    +      - no smoking
    +      - non-smoking
    +  styles:
    +    - solid
    +  unicode: f54d
    +snapchat:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Snapchat
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2ab
    +snapchat-ghost:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Snapchat Ghost
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2ac
    +snapchat-square:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Snapchat Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2ad
    +snowflake:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Snowflake
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2dc
    +socks:
    +  changes:
    +    - 5.3.0
    +  label: Socks
    +  search:
    +    terms:
    +      - business socks
    +      - business time
    +      - flight of the conchords
    +      - wednesday
    +  styles:
    +    - solid
    +  unicode: f696
    +solar-panel:
    +  changes:
    +    - 5.1.0
    +  label: Solar Panel
    +  search:
    +    terms:
    +      - clean
    +      - eco-friendly
    +      - energy
    +      - green
    +      - sun
    +  styles:
    +    - solid
    +  unicode: f5ba
    +sort:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Sort
    +  search:
    +    terms:
    +      - order
    +  styles:
    +    - solid
    +  unicode: f0dc
    +sort-alpha-down:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Sort Alpha Down
    +  search:
    +    terms:
    +      - sort-alpha-asc
    +  styles:
    +    - solid
    +  unicode: f15d
    +sort-alpha-up:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Sort Alpha Up
    +  search:
    +    terms:
    +      - sort-alpha-desc
    +  styles:
    +    - solid
    +  unicode: f15e
    +sort-amount-down:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Sort Amount Down
    +  search:
    +    terms:
    +      - sort-amount-asc
    +  styles:
    +    - solid
    +  unicode: f160
    +sort-amount-up:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Sort Amount Up
    +  search:
    +    terms:
    +      - sort-amount-desc
    +  styles:
    +    - solid
    +  unicode: f161
    +sort-down:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Sort Down (Descending)
    +  search:
    +    terms:
    +      - arrow
    +      - descending
    +      - sort-desc
    +  styles:
    +    - solid
    +  unicode: f0dd
    +sort-numeric-down:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Sort Numeric Down
    +  search:
    +    terms:
    +      - numbers
    +      - sort-numeric-asc
    +  styles:
    +    - solid
    +  unicode: f162
    +sort-numeric-up:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Sort Numeric Up
    +  search:
    +    terms:
    +      - numbers
    +      - sort-numeric-desc
    +  styles:
    +    - solid
    +  unicode: f163
    +sort-up:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Sort Up (Ascending)
    +  search:
    +    terms:
    +      - arrow
    +      - ascending
    +      - sort-asc
    +  styles:
    +    - solid
    +  unicode: f0de
    +soundcloud:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: SoundCloud
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1be
    +spa:
    +  changes:
    +    - 5.1.0
    +  label: Spa
    +  search:
    +    terms:
    +      - flora
    +      - mindfullness
    +      - plant
    +      - wellness
    +  styles:
    +    - solid
    +  unicode: f5bb
    +space-shuttle:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Space Shuttle
    +  search:
    +    terms:
    +      - astronaut
    +      - machine
    +      - nasa
    +      - rocket
    +      - transportation
    +  styles:
    +    - solid
    +  unicode: f197
    +speakap:
    +  changes:
    +    - 5.0.0
    +    - 5.4.0
    +  label: Speakap
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3f3
    +spider:
    +  changes:
    +    - 5.4.0
    +  label: Spider
    +  search:
    +    terms:
    +      - arachnid
    +      - bug
    +      - charlotte
    +      - crawl
    +      - eight
    +      - halloween
    +      - holiday
    +  styles:
    +    - solid
    +  unicode: f717
    +spinner:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: Spinner
    +  search:
    +    terms:
    +      - loading
    +      - progress
    +  styles:
    +    - solid
    +  unicode: f110
    +splotch:
    +  changes:
    +    - 5.1.0
    +  label: Splotch
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5bc
    +spotify:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Spotify
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1bc
    +spray-can:
    +  changes:
    +    - 5.1.0
    +  label: Spray Can
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5bd
    +square:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Square
    +  search:
    +    terms:
    +      - block
    +      - box
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f0c8
    +square-full:
    +  changes:
    +    - 5.0.5
    +  label: Square Full
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f45c
    +square-root-alt:
    +  changes:
    +    - 5.3.0
    +  label: Square Root Alternate
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f698
    +squarespace:
    +  changes:
    +    - 5.1.0
    +  label: Squarespace
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f5be
    +stack-exchange:
    +  changes:
    +    - '4'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Stack Exchange
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f18d
    +stack-overflow:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Stack Overflow
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f16c
    +stamp:
    +  changes:
    +    - 5.1.0
    +  label: Stamp
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5bf
    +star:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Star
    +  search:
    +    terms:
    +      - achievement
    +      - award
    +      - favorite
    +      - important
    +      - night
    +      - rating
    +      - score
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f005
    +star-and-crescent:
    +  changes:
    +    - 5.3.0
    +  label: Star and Crescent
    +  search:
    +    terms:
    +      - islam
    +      - muslim
    +  styles:
    +    - solid
    +  unicode: f699
    +star-half:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: star-half
    +  search:
    +    terms:
    +      - achievement
    +      - award
    +      - rating
    +      - score
    +      - star-half-empty
    +      - star-half-full
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f089
    +star-half-alt:
    +  changes:
    +    - 5.1.0
    +  label: Alternate Star Half
    +  search:
    +    terms:
    +      - achievement
    +      - award
    +      - rating
    +      - score
    +      - star-half-empty
    +      - star-half-full
    +  styles:
    +    - solid
    +  unicode: f5c0
    +star-of-david:
    +  changes:
    +    - 5.3.0
    +  label: Star of David
    +  search:
    +    terms:
    +      - jewish
    +      - judaism
    +  styles:
    +    - solid
    +  unicode: f69a
    +star-of-life:
    +  changes:
    +    - 5.2.0
    +  label: Star of Life
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f621
    +staylinked:
    +  changes:
    +    - 5.0.0
    +  label: StayLinked
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3f5
    +steam:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Steam
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1b6
    +steam-square:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Steam Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1b7
    +steam-symbol:
    +  changes:
    +    - 5.0.0
    +  label: Steam Symbol
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3f6
    +step-backward:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: step-backward
    +  search:
    +    terms:
    +      - beginning
    +      - first
    +      - previous
    +      - rewind
    +      - start
    +  styles:
    +    - solid
    +  unicode: f048
    +step-forward:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: step-forward
    +  search:
    +    terms:
    +      - end
    +      - last
    +      - next
    +  styles:
    +    - solid
    +  unicode: f051
    +stethoscope:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +    - 5.0.7
    +  label: Stethoscope
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f0f1
    +sticker-mule:
    +  changes:
    +    - 5.0.0
    +  label: Sticker Mule
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3f7
    +sticky-note:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Sticky Note
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f249
    +stop:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: stop
    +  search:
    +    terms:
    +      - block
    +      - box
    +      - square
    +  styles:
    +    - solid
    +  unicode: f04d
    +stop-circle:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: Stop Circle
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f28d
    +stopwatch:
    +  changes:
    +    - 5.0.0
    +  label: Stopwatch
    +  search:
    +    terms:
    +      - time
    +  styles:
    +    - solid
    +  unicode: f2f2
    +store:
    +  changes:
    +    - 5.0.13
    +  label: Store
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f54e
    +store-alt:
    +  changes:
    +    - 5.0.13
    +  label: Alternate Store
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f54f
    +strava:
    +  changes:
    +    - 5.0.0
    +    - 5.0.1
    +  label: Strava
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f428
    +stream:
    +  changes:
    +    - 5.0.13
    +  label: Stream
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f550
    +street-view:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +    - 5.2.0
    +  label: Street View
    +  search:
    +    terms:
    +      - map
    +  styles:
    +    - solid
    +  unicode: f21d
    +strikethrough:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Strikethrough
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f0cc
    +stripe:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Stripe
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f429
    +stripe-s:
    +  changes:
    +    - 5.0.1
    +  label: Stripe S
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f42a
    +stroopwafel:
    +  changes:
    +    - 5.0.13
    +  label: Stroopwafel
    +  search:
    +    terms:
    +      - dessert
    +      - food
    +      - sweets
    +      - waffle
    +  styles:
    +    - solid
    +  unicode: f551
    +studiovinari:
    +  changes:
    +    - 5.0.0
    +  label: Studio Vinari
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3f8
    +stumbleupon:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: StumbleUpon Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1a4
    +stumbleupon-circle:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: StumbleUpon Circle
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1a3
    +subscript:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: subscript
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f12c
    +subway:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Subway
    +  search:
    +    terms:
    +      - machine
    +      - railway
    +      - train
    +      - transportation
    +      - vehicle
    +  styles:
    +    - solid
    +  unicode: f239
    +suitcase:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +    - 5.0.9
    +  label: Suitcase
    +  search:
    +    terms:
    +      - baggage
    +      - luggage
    +      - move
    +      - suitcase
    +      - travel
    +      - trip
    +  styles:
    +    - solid
    +  unicode: f0f2
    +suitcase-rolling:
    +  changes:
    +    - 5.1.0
    +  label: Suitcase Rolling
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5c1
    +sun:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Sun
    +  search:
    +    terms:
    +      - brighten
    +      - contrast
    +      - day
    +      - lighter
    +      - weather
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f185
    +superpowers:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Superpowers
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2dd
    +superscript:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: superscript
    +  search:
    +    terms:
    +      - exponential
    +  styles:
    +    - solid
    +  unicode: f12b
    +supple:
    +  changes:
    +    - 5.0.0
    +  label: Supple
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3f9
    +surprise:
    +  changes:
    +    - 5.1.0
    +  label: Hushed Face
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - shocked
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f5c2
    +swatchbook:
    +  changes:
    +    - 5.1.0
    +  label: Swatchbook
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5c3
    +swimmer:
    +  changes:
    +    - 5.1.0
    +  label: Swimmer
    +  search:
    +    terms:
    +      - athlete
    +      - head
    +      - man
    +      - person
    +      - water
    +  styles:
    +    - solid
    +  unicode: f5c4
    +swimming-pool:
    +  changes:
    +    - 5.1.0
    +  label: Swimming Pool
    +  search:
    +    terms:
    +      - ladder
    +      - recreation
    +      - water
    +  styles:
    +    - solid
    +  unicode: f5c5
    +synagogue:
    +  changes:
    +    - 5.3.0
    +  label: Synagogue
    +  search:
    +    terms:
    +      - building
    +      - jewish
    +      - judaism
    +      - star of david
    +      - temple
    +  styles:
    +    - solid
    +  unicode: f69b
    +sync:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Sync
    +  search:
    +    terms:
    +      - exchange
    +      - refresh
    +      - reload
    +      - rotate
    +      - swap
    +  styles:
    +    - solid
    +  unicode: f021
    +sync-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Sync
    +  search:
    +    terms:
    +      - refresh
    +      - reload
    +      - rotate
    +  styles:
    +    - solid
    +  unicode: f2f1
    +syringe:
    +  changes:
    +    - 5.0.7
    +  label: Syringe
    +  search:
    +    terms:
    +      - immunizations
    +      - needle
    +  styles:
    +    - solid
    +  unicode: f48e
    +table:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: table
    +  search:
    +    terms:
    +      - data
    +      - excel
    +      - spreadsheet
    +  styles:
    +    - solid
    +  unicode: f0ce
    +table-tennis:
    +  changes:
    +    - 5.0.5
    +  label: Table Tennis
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f45d
    +tablet:
    +  changes:
    +    - '3'
    +    - 5.0.0
    +  label: tablet
    +  search:
    +    terms:
    +      - apple
    +      - device
    +      - ipad
    +      - kindle
    +      - screen
    +  styles:
    +    - solid
    +  unicode: f10a
    +tablet-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Tablet
    +  search:
    +    terms:
    +      - apple
    +      - device
    +      - ipad
    +      - kindle
    +      - screen
    +  styles:
    +    - solid
    +  unicode: f3fa
    +tablets:
    +  changes:
    +    - 5.0.7
    +  label: Tablets
    +  search:
    +    terms:
    +      - drugs
    +      - medicine
    +  styles:
    +    - solid
    +  unicode: f490
    +tachometer-alt:
    +  changes:
    +    - 5.0.0
    +    - 5.2.0
    +  label: Alternate Tachometer
    +  search:
    +    terms:
    +      - dashboard
    +      - tachometer
    +  styles:
    +    - solid
    +  unicode: f3fd
    +tag:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: tag
    +  search:
    +    terms:
    +      - label
    +  styles:
    +    - solid
    +  unicode: f02b
    +tags:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: tags
    +  search:
    +    terms:
    +      - labels
    +  styles:
    +    - solid
    +  unicode: f02c
    +tape:
    +  changes:
    +    - 5.0.9
    +  label: Tape
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4db
    +tasks:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Tasks
    +  search:
    +    terms:
    +      - downloading
    +      - downloads
    +      - loading
    +      - progress
    +      - settings
    +  styles:
    +    - solid
    +  unicode: f0ae
    +taxi:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +    - 5.1.0
    +  label: Taxi
    +  search:
    +    terms:
    +      - cab
    +      - cabbie
    +      - car
    +      - car service
    +      - lyft
    +      - machine
    +      - transportation
    +      - uber
    +      - vehicle
    +  styles:
    +    - solid
    +  unicode: f1ba
    +teamspeak:
    +  changes:
    +    - 5.0.11
    +    - 5.1.0
    +  label: TeamSpeak
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f4f9
    +teeth:
    +  changes:
    +    - 5.2.0
    +  label: Teeth
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f62e
    +teeth-open:
    +  changes:
    +    - 5.2.0
    +  label: Teeth Open
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f62f
    +telegram:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Telegram
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2c6
    +telegram-plane:
    +  changes:
    +    - 5.0.0
    +  label: Telegram Plane
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f3fe
    +tencent-weibo:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Tencent Weibo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1d5
    +terminal:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Terminal
    +  search:
    +    terms:
    +      - code
    +      - command
    +      - console
    +      - prompt
    +  styles:
    +    - solid
    +  unicode: f120
    +text-height:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: text-height
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f034
    +text-width:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: text-width
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f035
    +th:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: th
    +  search:
    +    terms:
    +      - blocks
    +      - boxes
    +      - grid
    +      - squares
    +  styles:
    +    - solid
    +  unicode: f00a
    +th-large:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: th-large
    +  search:
    +    terms:
    +      - blocks
    +      - boxes
    +      - grid
    +      - squares
    +  styles:
    +    - solid
    +  unicode: f009
    +th-list:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: th-list
    +  search:
    +    terms:
    +      - checklist
    +      - completed
    +      - done
    +      - finished
    +      - ol
    +      - todo
    +      - ul
    +  styles:
    +    - solid
    +  unicode: f00b
    +the-red-yeti:
    +  changes:
    +    - 5.3.0
    +  label: The Red Yeti
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f69d
    +theater-masks:
    +  changes:
    +    - 5.2.0
    +  label: Theater Masks
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f630
    +themeco:
    +  changes:
    +    - 5.1.0
    +  label: Themeco
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f5c6
    +themeisle:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: ThemeIsle
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2b2
    +thermometer:
    +  changes:
    +    - 5.0.7
    +  label: Thermometer
    +  search:
    +    terms:
    +      - fever
    +      - temperature
    +  styles:
    +    - solid
    +  unicode: f491
    +thermometer-empty:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Thermometer Empty
    +  search:
    +    terms:
    +      - status
    +  styles:
    +    - solid
    +  unicode: f2cb
    +thermometer-full:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Thermometer Full
    +  search:
    +    terms:
    +      - status
    +  styles:
    +    - solid
    +  unicode: f2c7
    +thermometer-half:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Thermometer 1/2 Full
    +  search:
    +    terms:
    +      - status
    +  styles:
    +    - solid
    +  unicode: f2c9
    +thermometer-quarter:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Thermometer 1/4 Full
    +  search:
    +    terms:
    +      - status
    +  styles:
    +    - solid
    +  unicode: f2ca
    +thermometer-three-quarters:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Thermometer 3/4 Full
    +  search:
    +    terms:
    +      - status
    +  styles:
    +    - solid
    +  unicode: f2c8
    +thumbs-down:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: thumbs-down
    +  search:
    +    terms:
    +      - disagree
    +      - disapprove
    +      - dislike
    +      - hand
    +      - thumbs-o-down
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f165
    +thumbs-up:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: thumbs-up
    +  search:
    +    terms:
    +      - agree
    +      - approve
    +      - favorite
    +      - hand
    +      - like
    +      - ok
    +      - okay
    +      - success
    +      - thumbs-o-up
    +      - 'yes'
    +      - you got it dude
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f164
    +thumbtack:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Thumbtack
    +  search:
    +    terms:
    +      - coordinates
    +      - location
    +      - marker
    +      - pin
    +      - thumb-tack
    +  styles:
    +    - solid
    +  unicode: f08d
    +ticket-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Ticket
    +  search:
    +    terms:
    +      - ticket
    +  styles:
    +    - solid
    +  unicode: f3ff
    +times:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.0.13
    +  label: Times
    +  search:
    +    terms:
    +      - close
    +      - cross
    +      - error
    +      - exit
    +      - incorrect
    +      - notice
    +      - notification
    +      - notify
    +      - problem
    +      - wrong
    +      - x
    +  styles:
    +    - solid
    +  unicode: f00d
    +times-circle:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Times Circle
    +  search:
    +    terms:
    +      - close
    +      - cross
    +      - exit
    +      - incorrect
    +      - notice
    +      - notification
    +      - notify
    +      - problem
    +      - wrong
    +      - x
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f057
    +tint:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.1.0
    +  label: tint
    +  search:
    +    terms:
    +      - drop
    +      - droplet
    +      - raindrop
    +      - waterdrop
    +  styles:
    +    - solid
    +  unicode: f043
    +tint-slash:
    +  changes:
    +    - 5.1.0
    +  label: Tint Slash
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f5c7
    +tired:
    +  changes:
    +    - 5.1.0
    +  label: Tired Face
    +  search:
    +    terms:
    +      - emoticon
    +      - face
    +      - grumpy
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f5c8
    +toggle-off:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Toggle Off
    +  search:
    +    terms:
    +      - switch
    +  styles:
    +    - solid
    +  unicode: f204
    +toggle-on:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Toggle On
    +  search:
    +    terms:
    +      - switch
    +  styles:
    +    - solid
    +  unicode: f205
    +toilet-paper:
    +  changes:
    +    - 5.4.0
    +  label: Toilet Paper
    +  search:
    +    terms:
    +      - bathroom
    +      - halloween
    +      - holiday
    +      - lavatory
    +      - prank
    +      - restroom
    +      - roll
    +  styles:
    +    - solid
    +  unicode: f71e
    +toolbox:
    +  changes:
    +    - 5.0.13
    +  label: Toolbox
    +  search:
    +    terms:
    +      - admin
    +      - container
    +      - fix
    +      - repair
    +      - settings
    +      - tools
    +  styles:
    +    - solid
    +  unicode: f552
    +tooth:
    +  changes:
    +    - 5.1.0
    +  label: Tooth
    +  search:
    +    terms:
    +      - bicuspid
    +      - dental
    +      - molar
    +      - mouth
    +      - teeth
    +  styles:
    +    - solid
    +  unicode: f5c9
    +torah:
    +  changes:
    +    - 5.3.0
    +  label: Torah
    +  search:
    +    terms:
    +      - book
    +      - jewish
    +      - judaism
    +  styles:
    +    - solid
    +  unicode: f6a0
    +torii-gate:
    +  changes:
    +    - 5.3.0
    +  label: Torii Gate
    +  search:
    +    terms:
    +      - building
    +      - shintoism
    +  styles:
    +    - solid
    +  unicode: f6a1
    +tractor:
    +  changes:
    +    - 5.4.0
    +  label: Tractor
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f722
    +trade-federation:
    +  changes:
    +    - 5.0.12
    +  label: Trade Federation
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f513
    +trademark:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Trademark
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f25c
    +traffic-light:
    +  changes:
    +    - 5.2.0
    +  label: Traffic Light
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f637
    +train:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Train
    +  search:
    +    terms:
    +      - bullet
    +      - locomotive
    +      - railway
    +  styles:
    +    - solid
    +  unicode: f238
    +transgender:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Transgender
    +  search:
    +    terms:
    +      - intersex
    +  styles:
    +    - solid
    +  unicode: f224
    +transgender-alt:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Alternate Transgender
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f225
    +trash:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Trash
    +  search:
    +    terms:
    +      - delete
    +      - garbage
    +      - hide
    +      - remove
    +  styles:
    +    - solid
    +  unicode: f1f8
    +trash-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Trash
    +  search:
    +    terms:
    +      - delete
    +      - garbage
    +      - hide
    +      - remove
    +      - trash
    +      - trash-o
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2ed
    +tree:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Tree
    +  search:
    +    terms:
    +      - bark
    +      - fall
    +      - flora
    +      - forest
    +      - nature
    +      - plant
    +      - seasonal
    +  styles:
    +    - solid
    +  unicode: f1bb
    +trello:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Trello
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f181
    +tripadvisor:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: TripAdvisor
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f262
    +trophy:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: trophy
    +  search:
    +    terms:
    +      - achievement
    +      - award
    +      - cup
    +      - game
    +      - winner
    +  styles:
    +    - solid
    +  unicode: f091
    +truck:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.0.7
    +  label: truck
    +  search:
    +    terms:
    +      - delivery
    +      - shipping
    +  styles:
    +    - solid
    +  unicode: f0d1
    +truck-loading:
    +  changes:
    +    - 5.0.9
    +  label: Truck Loading
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4de
    +truck-monster:
    +  changes:
    +    - 5.2.0
    +  label: Truck Monster
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f63b
    +truck-moving:
    +  changes:
    +    - 5.0.9
    +  label: Truck Moving
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4df
    +truck-pickup:
    +  changes:
    +    - 5.2.0
    +  label: Truck Side
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f63c
    +tshirt:
    +  changes:
    +    - 5.0.13
    +  label: T-Shirt
    +  search:
    +    terms:
    +      - cloth
    +      - clothing
    +  styles:
    +    - solid
    +  unicode: f553
    +tty:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: TTY
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1e4
    +tumblr:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Tumblr
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f173
    +tumblr-square:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Tumblr Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f174
    +tv:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Television
    +  search:
    +    terms:
    +      - computer
    +      - display
    +      - monitor
    +      - television
    +  styles:
    +    - solid
    +  unicode: f26c
    +twitch:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Twitch
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1e8
    +twitter:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Twitter
    +  search:
    +    terms:
    +      - social network
    +      - tweet
    +  styles:
    +    - brands
    +  unicode: f099
    +twitter-square:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Twitter Square
    +  search:
    +    terms:
    +      - social network
    +      - tweet
    +  styles:
    +    - brands
    +  unicode: f081
    +typo3:
    +  changes:
    +    - 5.0.1
    +  label: Typo3
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f42b
    +uber:
    +  changes:
    +    - 5.0.0
    +  label: Uber
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f402
    +uikit:
    +  changes:
    +    - 5.0.0
    +  label: UIkit
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f403
    +umbrella:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Umbrella
    +  search:
    +    terms:
    +      - protection
    +      - rain
    +  styles:
    +    - solid
    +  unicode: f0e9
    +umbrella-beach:
    +  changes:
    +    - 5.1.0
    +  label: Umbrella Beach
    +  search:
    +    terms:
    +      - protection
    +      - recreation
    +      - sun
    +  styles:
    +    - solid
    +  unicode: f5ca
    +underline:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Underline
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f0cd
    +undo:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: Undo
    +  search:
    +    terms:
    +      - back
    +      - control z
    +      - exchange
    +      - oops
    +      - return
    +      - rotate
    +      - swap
    +  styles:
    +    - solid
    +  unicode: f0e2
    +undo-alt:
    +  changes:
    +    - 5.0.0
    +  label: Alternate Undo
    +  search:
    +    terms:
    +      - back
    +      - control z
    +      - exchange
    +      - oops
    +      - return
    +      - swap
    +  styles:
    +    - solid
    +  unicode: f2ea
    +uniregistry:
    +  changes:
    +    - 5.0.0
    +  label: Uniregistry
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f404
    +universal-access:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Universal Access
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f29a
    +university:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +    - 5.0.3
    +  label: University
    +  search:
    +    terms:
    +      - bank
    +      - institution
    +  styles:
    +    - solid
    +  unicode: f19c
    +unlink:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: unlink
    +  search:
    +    terms:
    +      - chain
    +      - chain-broken
    +      - remove
    +  styles:
    +    - solid
    +  unicode: f127
    +unlock:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +  label: unlock
    +  search:
    +    terms:
    +      - admin
    +      - lock
    +      - password
    +      - protect
    +  styles:
    +    - solid
    +  unicode: f09c
    +unlock-alt:
    +  changes:
    +    - '3.1'
    +    - 5.0.0
    +  label: Alternate Unlock
    +  search:
    +    terms:
    +      - admin
    +      - lock
    +      - password
    +      - protect
    +  styles:
    +    - solid
    +  unicode: f13e
    +untappd:
    +  changes:
    +    - 5.0.0
    +  label: Untappd
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f405
    +upload:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +  label: Upload
    +  search:
    +    terms:
    +      - export
    +      - publish
    +  styles:
    +    - solid
    +  unicode: f093
    +usb:
    +  changes:
    +    - '4.5'
    +    - 5.0.0
    +  label: USB
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f287
    +user:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.0.3
    +    - 5.0.11
    +  label: User
    +  search:
    +    terms:
    +      - account
    +      - avatar
    +      - head
    +      - man
    +      - person
    +      - profile
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f007
    +user-alt:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +    - 5.0.11
    +  label: Alternate User
    +  search:
    +    terms:
    +      - account
    +      - avatar
    +      - head
    +      - man
    +      - person
    +      - profile
    +  styles:
    +    - solid
    +  unicode: f406
    +user-alt-slash:
    +  changes:
    +    - 5.0.11
    +  label: Alternate User Slash
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4fa
    +user-astronaut:
    +  changes:
    +    - 5.0.11
    +  label: User Astronaut
    +  search:
    +    terms:
    +      - avatar
    +      - clothing
    +      - cosmonaut
    +      - space
    +      - suit
    +  styles:
    +    - solid
    +  unicode: f4fb
    +user-check:
    +  changes:
    +    - 5.0.11
    +  label: User Check
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4fc
    +user-circle:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +    - 5.0.3
    +    - 5.0.11
    +  label: User Circle
    +  search:
    +    terms:
    +      - account
    +      - avatar
    +      - head
    +      - man
    +      - person
    +      - profile
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2bd
    +user-clock:
    +  changes:
    +    - 5.0.11
    +  label: User Clock
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4fd
    +user-cog:
    +  changes:
    +    - 5.0.11
    +  label: User Cog
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4fe
    +user-edit:
    +  changes:
    +    - 5.0.11
    +  label: User Edit
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4ff
    +user-friends:
    +  changes:
    +    - 5.0.11
    +  label: User Friends
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f500
    +user-graduate:
    +  changes:
    +    - 5.0.11
    +  label: User Graduate
    +  search:
    +    terms:
    +      - cap
    +      - clothing
    +      - commencement
    +      - gown
    +      - graduation
    +      - student
    +  styles:
    +    - solid
    +  unicode: f501
    +user-injured:
    +  changes:
    +    - 5.4.0
    +  label: User Injured
    +  search:
    +    terms:
    +      - cast
    +      - ouch
    +      - sling
    +  styles:
    +    - solid
    +  unicode: f728
    +user-lock:
    +  changes:
    +    - 5.0.11
    +  label: User Lock
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f502
    +user-md:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.0.3
    +    - 5.0.7
    +    - 5.0.11
    +  label: user-md
    +  search:
    +    terms:
    +      - doctor
    +      - job
    +      - medical
    +      - nurse
    +      - occupation
    +      - profile
    +  styles:
    +    - solid
    +  unicode: f0f0
    +user-minus:
    +  changes:
    +    - 5.0.11
    +  label: User Minus
    +  search:
    +    terms:
    +      - delete
    +      - negative
    +      - remove
    +  styles:
    +    - solid
    +  unicode: f503
    +user-ninja:
    +  changes:
    +    - 5.0.11
    +  label: User Ninja
    +  search:
    +    terms:
    +      - assassin
    +      - avatar
    +      - dangerous
    +      - deadly
    +      - sneaky
    +  styles:
    +    - solid
    +  unicode: f504
    +user-plus:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +    - 5.0.3
    +    - 5.0.11
    +  label: User Plus
    +  search:
    +    terms:
    +      - positive
    +      - sign up
    +      - signup
    +  styles:
    +    - solid
    +  unicode: f234
    +user-secret:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +    - 5.0.3
    +    - 5.0.11
    +  label: User Secret
    +  search:
    +    terms:
    +      - clothing
    +      - coat
    +      - hat
    +      - incognito
    +      - privacy
    +      - spy
    +      - whisper
    +  styles:
    +    - solid
    +  unicode: f21b
    +user-shield:
    +  changes:
    +    - 5.0.11
    +  label: User Shield
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f505
    +user-slash:
    +  changes:
    +    - 5.0.11
    +  label: User Slash
    +  search:
    +    terms:
    +      - ban
    +      - remove
    +  styles:
    +    - solid
    +  unicode: f506
    +user-tag:
    +  changes:
    +    - 5.0.11
    +  label: User Tag
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f507
    +user-tie:
    +  changes:
    +    - 5.0.11
    +  label: User Tie
    +  search:
    +    terms:
    +      - avatar
    +      - business
    +      - clothing
    +      - formal
    +  styles:
    +    - solid
    +  unicode: f508
    +user-times:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +    - 5.0.3
    +    - 5.0.11
    +  label: Remove User
    +  search:
    +    terms:
    +      - archive
    +      - delete
    +      - remove
    +      - x
    +  styles:
    +    - solid
    +  unicode: f235
    +users:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.0.3
    +    - 5.0.11
    +  label: Users
    +  search:
    +    terms:
    +      - people
    +      - persons
    +      - profiles
    +  styles:
    +    - solid
    +  unicode: f0c0
    +users-cog:
    +  changes:
    +    - 5.0.11
    +  label: Users Cog
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f509
    +ussunnah:
    +  changes:
    +    - 5.0.0
    +  label: us-Sunnah Foundation
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f407
    +utensil-spoon:
    +  changes:
    +    - 5.0.0
    +  label: Utensil Spoon
    +  search:
    +    terms:
    +      - spoon
    +  styles:
    +    - solid
    +  unicode: f2e5
    +utensils:
    +  changes:
    +    - 5.0.0
    +  label: Utensils
    +  search:
    +    terms:
    +      - cutlery
    +      - dinner
    +      - eat
    +      - food
    +      - knife
    +      - restaurant
    +      - spoon
    +  styles:
    +    - solid
    +  unicode: f2e7
    +vaadin:
    +  changes:
    +    - 5.0.0
    +  label: Vaadin
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f408
    +vector-square:
    +  changes:
    +    - 5.1.0
    +  label: Vector Square
    +  search:
    +    terms:
    +      - anchors
    +      - lines
    +      - object
    +  styles:
    +    - solid
    +  unicode: f5cb
    +venus:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Venus
    +  search:
    +    terms:
    +      - female
    +  styles:
    +    - solid
    +  unicode: f221
    +venus-double:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Venus Double
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f226
    +venus-mars:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Venus Mars
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f228
    +viacoin:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: Viacoin
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f237
    +viadeo:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Video
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2a9
    +viadeo-square:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: Video Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2aa
    +vial:
    +  changes:
    +    - 5.0.7
    +  label: Vial
    +  search:
    +    terms:
    +      - test tube
    +  styles:
    +    - solid
    +  unicode: f492
    +vials:
    +  changes:
    +    - 5.0.7
    +  label: Vials
    +  search:
    +    terms:
    +      - lab results
    +      - test tubes
    +  styles:
    +    - solid
    +  unicode: f493
    +viber:
    +  changes:
    +    - 5.0.0
    +    - 5.0.3
    +  label: Viber
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f409
    +video:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.0.9
    +  label: Video
    +  search:
    +    terms:
    +      - camera
    +      - film
    +      - movie
    +      - record
    +      - video-camera
    +  styles:
    +    - solid
    +  unicode: f03d
    +video-slash:
    +  changes:
    +    - 5.0.9
    +  label: Video Slash
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f4e2
    +vihara:
    +  changes:
    +    - 5.3.0
    +  label: Vihara
    +  search:
    +    terms:
    +      - buddhism
    +      - buddhist
    +      - building
    +      - monastery
    +  styles:
    +    - solid
    +  unicode: f6a7
    +vimeo:
    +  changes:
    +    - 5.0.0
    +  label: Vimeo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f40a
    +vimeo-square:
    +  changes:
    +    - '4'
    +    - 5.0.0
    +  label: Vimeo Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f194
    +vimeo-v:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Vimeo
    +  search:
    +    terms:
    +      - vimeo
    +  styles:
    +    - brands
    +  unicode: f27d
    +vine:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: Vine
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1ca
    +vk:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: VK
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f189
    +vnv:
    +  changes:
    +    - 5.0.0
    +  label: VNV
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f40b
    +volleyball-ball:
    +  changes:
    +    - 5.0.5
    +  label: Volleyball Ball
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f45f
    +volume-down:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Volume Down
    +  search:
    +    terms:
    +      - audio
    +      - lower
    +      - music
    +      - quieter
    +      - sound
    +      - speaker
    +  styles:
    +    - solid
    +  unicode: f027
    +volume-mute:
    +  changes:
    +    - 5.3.0
    +  label: Volume Mute
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f6a9
    +volume-off:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Volume Off
    +  search:
    +    terms:
    +      - audio
    +      - music
    +      - mute
    +      - sound
    +  styles:
    +    - solid
    +  unicode: f026
    +volume-up:
    +  changes:
    +    - '1'
    +    - 5.0.0
    +    - 5.3.0
    +  label: Volume Up
    +  search:
    +    terms:
    +      - audio
    +      - higher
    +      - louder
    +      - music
    +      - sound
    +      - speaker
    +  styles:
    +    - solid
    +  unicode: f028
    +vuejs:
    +  changes:
    +    - 5.0.0
    +  label: Vue.js
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f41f
    +walking:
    +  changes:
    +    - 5.0.13
    +  label: Walking
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f554
    +wallet:
    +  changes:
    +    - 5.0.13
    +  label: Wallet
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f555
    +warehouse:
    +  changes:
    +    - 5.0.7
    +  label: Warehouse
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f494
    +weebly:
    +  changes:
    +    - 5.1.0
    +  label: Weebly
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f5cc
    +weibo:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Weibo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f18a
    +weight:
    +  changes:
    +    - 5.0.7
    +  label: Weight
    +  search:
    +    terms:
    +      - measurement
    +      - scale
    +      - weight
    +  styles:
    +    - solid
    +  unicode: f496
    +weight-hanging:
    +  changes:
    +    - 5.1.0
    +  label: Hanging Weight
    +  search:
    +    terms:
    +      - anvil
    +      - heavy
    +      - measurement
    +  styles:
    +    - solid
    +  unicode: f5cd
    +weixin:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Weixin (WeChat)
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1d7
    +whatsapp:
    +  changes:
    +    - '4.3'
    +    - 5.0.0
    +  label: What's App
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f232
    +whatsapp-square:
    +  changes:
    +    - 5.0.0
    +  label: What's App Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f40c
    +wheelchair:
    +  changes:
    +    - '4'
    +    - 5.0.0
    +  label: Wheelchair
    +  search:
    +    terms:
    +      - handicap
    +      - person
    +  styles:
    +    - solid
    +  unicode: f193
    +whmcs:
    +  changes:
    +    - 5.0.0
    +  label: WHMCS
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f40d
    +wifi:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +    - 5.3.0
    +  label: WiFi
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +  unicode: f1eb
    +wikipedia-w:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Wikipedia W
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f266
    +wind:
    +  changes:
    +    - 5.4.0
    +  label: Wind
    +  search:
    +    terms:
    +      - air
    +      - blow
    +      - breeze
    +      - fall
    +      - seasonal
    +  styles:
    +    - solid
    +  unicode: f72e
    +window-close:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Window Close
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f410
    +window-maximize:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Window Maximize
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2d0
    +window-minimize:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Window Minimize
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2d1
    +window-restore:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: Window Restore
    +  search:
    +    terms: []
    +  styles:
    +    - solid
    +    - regular
    +  unicode: f2d2
    +windows:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Windows
    +  search:
    +    terms:
    +      - microsoft
    +  styles:
    +    - brands
    +  unicode: f17a
    +wine-bottle:
    +  changes:
    +    - 5.4.0
    +  label: Wine Bottle
    +  search:
    +    terms:
    +      - alcohol
    +      - beverage
    +      - drink
    +      - glass
    +      - grapes
    +  styles:
    +    - solid
    +  unicode: f72f
    +wine-glass:
    +  changes:
    +    - 5.0.9
    +    - 5.1.0
    +  label: Wine Glass
    +  search:
    +    terms:
    +      - alcohol
    +      - beverage
    +      - drink
    +      - grapes
    +  styles:
    +    - solid
    +  unicode: f4e3
    +wine-glass-alt:
    +  changes:
    +    - 5.1.0
    +  label: Alternate Wine Glas
    +  search:
    +    terms:
    +      - alcohol
    +      - beverage
    +      - drink
    +      - grapes
    +  styles:
    +    - solid
    +  unicode: f5ce
    +wix:
    +  changes:
    +    - 5.1.0
    +  label: Wix
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f5cf
    +wizards-of-the-coast:
    +  changes:
    +    - 5.4.0
    +  label: Wizards of the Coast
    +  search:
    +    terms:
    +      - Dungeons & Dragons
    +      - d&d
    +      - dnd
    +      - fantasy
    +      - game
    +      - gaming
    +      - tabletop
    +  styles:
    +    - brands
    +  unicode: f730
    +wolf-pack-battalion:
    +  changes:
    +    - 5.0.12
    +  label: Wolf Pack Battalion
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f514
    +won-sign:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Won Sign
    +  search:
    +    terms:
    +      - krw
    +  styles:
    +    - solid
    +  unicode: f159
    +wordpress:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +  label: WordPress Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f19a
    +wordpress-simple:
    +  changes:
    +    - 5.0.0
    +  label: Wordpress Simple
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f411
    +wpbeginner:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: WPBeginner
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f297
    +wpexplorer:
    +  changes:
    +    - '4.7'
    +    - 5.0.0
    +  label: WPExplorer
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2de
    +wpforms:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +  label: WPForms
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f298
    +wrench:
    +  changes:
    +    - '2'
    +    - 5.0.0
    +    - 5.0.13
    +  label: Wrench
    +  search:
    +    terms:
    +      - fix
    +      - settings
    +      - spanner
    +      - tool
    +      - update
    +  styles:
    +    - solid
    +  unicode: f0ad
    +x-ray:
    +  changes:
    +    - 5.0.7
    +  label: X-Ray
    +  search:
    +    terms:
    +      - radiological images
    +      - radiology
    +  styles:
    +    - solid
    +  unicode: f497
    +xbox:
    +  changes:
    +    - 5.0.0
    +  label: Xbox
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f412
    +xing:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Xing
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f168
    +xing-square:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Xing Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f169
    +y-combinator:
    +  changes:
    +    - '4.4'
    +    - 5.0.0
    +  label: Y Combinator
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f23b
    +yahoo:
    +  changes:
    +    - '4.1'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Yahoo Logo
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f19e
    +yandex:
    +  changes:
    +    - 5.0.0
    +  label: Yandex
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f413
    +yandex-international:
    +  changes:
    +    - 5.0.0
    +  label: Yandex International
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f414
    +yelp:
    +  changes:
    +    - '4.2'
    +    - 5.0.0
    +  label: Yelp
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f1e9
    +yen-sign:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: Yen Sign
    +  search:
    +    terms:
    +      - jpy
    +      - money
    +  styles:
    +    - solid
    +  unicode: f157
    +yin-yang:
    +  changes:
    +    - 5.3.0
    +  label: Yin Yang
    +  search:
    +    terms:
    +      - daoism
    +      - opposites
    +      - taoism
    +  styles:
    +    - solid
    +  unicode: f6ad
    +yoast:
    +  changes:
    +    - '4.6'
    +    - 5.0.0
    +    - 5.0.3
    +  label: Yoast
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f2b1
    +youtube:
    +  changes:
    +    - '3.2'
    +    - 5.0.0
    +  label: YouTube
    +  search:
    +    terms:
    +      - film
    +      - video
    +      - youtube-play
    +      - youtube-square
    +  styles:
    +    - brands
    +  unicode: f167
    +youtube-square:
    +  changes:
    +    - 5.0.3
    +  label: YouTube Square
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f431
    +zhihu:
    +  changes:
    +    - 5.2.0
    +  label: Zhihu
    +  search:
    +    terms: []
    +  styles:
    +    - brands
    +  unicode: f63f
    diff --git a/htdocs/theme/common/fontawesome-5/metadata/shims.json b/htdocs/theme/common/fontawesome-5/metadata/shims.json
    new file mode 100644
    index 00000000000..d58abca0936
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/metadata/shims.json
    @@ -0,0 +1,2307 @@
    +[
    +  [
    +    "glass",
    +    null,
    +    "glass-martini"
    +  ],
    +  [
    +    "meetup",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "star-o",
    +    "far",
    +    "star"
    +  ],
    +  [
    +    "remove",
    +    null,
    +    "times"
    +  ],
    +  [
    +    "close",
    +    null,
    +    "times"
    +  ],
    +  [
    +    "gear",
    +    null,
    +    "cog"
    +  ],
    +  [
    +    "trash-o",
    +    "far",
    +    "trash-alt"
    +  ],
    +  [
    +    "file-o",
    +    "far",
    +    "file"
    +  ],
    +  [
    +    "clock-o",
    +    "far",
    +    "clock"
    +  ],
    +  [
    +    "arrow-circle-o-down",
    +    "far",
    +    "arrow-alt-circle-down"
    +  ],
    +  [
    +    "arrow-circle-o-up",
    +    "far",
    +    "arrow-alt-circle-up"
    +  ],
    +  [
    +    "play-circle-o",
    +    "far",
    +    "play-circle"
    +  ],
    +  [
    +    "repeat",
    +    null,
    +    "redo"
    +  ],
    +  [
    +    "rotate-right",
    +    null,
    +    "redo"
    +  ],
    +  [
    +    "refresh",
    +    null,
    +    "sync"
    +  ],
    +  [
    +    "list-alt",
    +    "far",
    +    null
    +  ],
    +  [
    +    "dedent",
    +    null,
    +    "outdent"
    +  ],
    +  [
    +    "video-camera",
    +    null,
    +    "video"
    +  ],
    +  [
    +    "picture-o",
    +    "far",
    +    "image"
    +  ],
    +  [
    +    "photo",
    +    "far",
    +    "image"
    +  ],
    +  [
    +    "image",
    +    "far",
    +    "image"
    +  ],
    +  [
    +    "pencil",
    +    null,
    +    "pencil-alt"
    +  ],
    +  [
    +    "map-marker",
    +    null,
    +    "map-marker-alt"
    +  ],
    +  [
    +    "pencil-square-o",
    +    "far",
    +    "edit"
    +  ],
    +  [
    +    "share-square-o",
    +    "far",
    +    "share-square"
    +  ],
    +  [
    +    "check-square-o",
    +    "far",
    +    "check-square"
    +  ],
    +  [
    +    "arrows",
    +    null,
    +    "arrows-alt"
    +  ],
    +  [
    +    "times-circle-o",
    +    "far",
    +    "times-circle"
    +  ],
    +  [
    +    "check-circle-o",
    +    "far",
    +    "check-circle"
    +  ],
    +  [
    +    "mail-forward",
    +    null,
    +    "share"
    +  ],
    +  [
    +    "eye",
    +    "far",
    +    null
    +  ],
    +  [
    +    "eye-slash",
    +    "far",
    +    null
    +  ],
    +  [
    +    "warning",
    +    null,
    +    "exclamation-triangle"
    +  ],
    +  [
    +    "calendar",
    +    null,
    +    "calendar-alt"
    +  ],
    +  [
    +    "arrows-v",
    +    null,
    +    "arrows-alt-v"
    +  ],
    +  [
    +    "arrows-h",
    +    null,
    +    "arrows-alt-h"
    +  ],
    +  [
    +    "bar-chart",
    +    "far",
    +    "chart-bar"
    +  ],
    +  [
    +    "bar-chart-o",
    +    "far",
    +    "chart-bar"
    +  ],
    +  [
    +    "twitter-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "facebook-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "gears",
    +    null,
    +    "cogs"
    +  ],
    +  [
    +    "thumbs-o-up",
    +    "far",
    +    "thumbs-up"
    +  ],
    +  [
    +    "thumbs-o-down",
    +    "far",
    +    "thumbs-down"
    +  ],
    +  [
    +    "heart-o",
    +    "far",
    +    "heart"
    +  ],
    +  [
    +    "sign-out",
    +    null,
    +    "sign-out-alt"
    +  ],
    +  [
    +    "linkedin-square",
    +    "fab",
    +    "linkedin"
    +  ],
    +  [
    +    "thumb-tack",
    +    null,
    +    "thumbtack"
    +  ],
    +  [
    +    "external-link",
    +    null,
    +    "external-link-alt"
    +  ],
    +  [
    +    "sign-in",
    +    null,
    +    "sign-in-alt"
    +  ],
    +  [
    +    "github-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "lemon-o",
    +    "far",
    +    "lemon"
    +  ],
    +  [
    +    "square-o",
    +    "far",
    +    "square"
    +  ],
    +  [
    +    "bookmark-o",
    +    "far",
    +    "bookmark"
    +  ],
    +  [
    +    "twitter",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "facebook",
    +    "fab",
    +    "facebook-f"
    +  ],
    +  [
    +    "facebook-f",
    +    "fab",
    +    "facebook-f"
    +  ],
    +  [
    +    "github",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "credit-card",
    +    "far",
    +    null
    +  ],
    +  [
    +    "feed",
    +    null,
    +    "rss"
    +  ],
    +  [
    +    "hdd-o",
    +    "far",
    +    "hdd"
    +  ],
    +  [
    +    "hand-o-right",
    +    "far",
    +    "hand-point-right"
    +  ],
    +  [
    +    "hand-o-left",
    +    "far",
    +    "hand-point-left"
    +  ],
    +  [
    +    "hand-o-up",
    +    "far",
    +    "hand-point-up"
    +  ],
    +  [
    +    "hand-o-down",
    +    "far",
    +    "hand-point-down"
    +  ],
    +  [
    +    "arrows-alt",
    +    null,
    +    "expand-arrows-alt"
    +  ],
    +  [
    +    "group",
    +    null,
    +    "users"
    +  ],
    +  [
    +    "chain",
    +    null,
    +    "link"
    +  ],
    +  [
    +    "scissors",
    +    null,
    +    "cut"
    +  ],
    +  [
    +    "files-o",
    +    "far",
    +    "copy"
    +  ],
    +  [
    +    "floppy-o",
    +    "far",
    +    "save"
    +  ],
    +  [
    +    "navicon",
    +    null,
    +    "bars"
    +  ],
    +  [
    +    "reorder",
    +    null,
    +    "bars"
    +  ],
    +  [
    +    "pinterest",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "pinterest-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "google-plus-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "google-plus",
    +    "fab",
    +    "google-plus-g"
    +  ],
    +  [
    +    "money",
    +    "far",
    +    "money-bill-alt"
    +  ],
    +  [
    +    "unsorted",
    +    null,
    +    "sort"
    +  ],
    +  [
    +    "sort-desc",
    +    null,
    +    "sort-down"
    +  ],
    +  [
    +    "sort-asc",
    +    null,
    +    "sort-up"
    +  ],
    +  [
    +    "linkedin",
    +    "fab",
    +    "linkedin-in"
    +  ],
    +  [
    +    "rotate-left",
    +    null,
    +    "undo"
    +  ],
    +  [
    +    "legal",
    +    null,
    +    "gavel"
    +  ],
    +  [
    +    "tachometer",
    +    null,
    +    "tachometer-alt"
    +  ],
    +  [
    +    "dashboard",
    +    null,
    +    "tachometer-alt"
    +  ],
    +  [
    +    "comment-o",
    +    "far",
    +    "comment"
    +  ],
    +  [
    +    "comments-o",
    +    "far",
    +    "comments"
    +  ],
    +  [
    +    "flash",
    +    null,
    +    "bolt"
    +  ],
    +  [
    +    "clipboard",
    +    "far",
    +    null
    +  ],
    +  [
    +    "paste",
    +    "far",
    +    "clipboard"
    +  ],
    +  [
    +    "lightbulb-o",
    +    "far",
    +    "lightbulb"
    +  ],
    +  [
    +    "exchange",
    +    null,
    +    "exchange-alt"
    +  ],
    +  [
    +    "cloud-download",
    +    null,
    +    "cloud-download-alt"
    +  ],
    +  [
    +    "cloud-upload",
    +    null,
    +    "cloud-upload-alt"
    +  ],
    +  [
    +    "bell-o",
    +    "far",
    +    "bell"
    +  ],
    +  [
    +    "cutlery",
    +    null,
    +    "utensils"
    +  ],
    +  [
    +    "file-text-o",
    +    "far",
    +    "file-alt"
    +  ],
    +  [
    +    "building-o",
    +    "far",
    +    "building"
    +  ],
    +  [
    +    "hospital-o",
    +    "far",
    +    "hospital"
    +  ],
    +  [
    +    "tablet",
    +    null,
    +    "tablet-alt"
    +  ],
    +  [
    +    "mobile",
    +    null,
    +    "mobile-alt"
    +  ],
    +  [
    +    "mobile-phone",
    +    null,
    +    "mobile-alt"
    +  ],
    +  [
    +    "circle-o",
    +    "far",
    +    "circle"
    +  ],
    +  [
    +    "mail-reply",
    +    null,
    +    "reply"
    +  ],
    +  [
    +    "github-alt",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "folder-o",
    +    "far",
    +    "folder"
    +  ],
    +  [
    +    "folder-open-o",
    +    "far",
    +    "folder-open"
    +  ],
    +  [
    +    "smile-o",
    +    "far",
    +    "smile"
    +  ],
    +  [
    +    "frown-o",
    +    "far",
    +    "frown"
    +  ],
    +  [
    +    "meh-o",
    +    "far",
    +    "meh"
    +  ],
    +  [
    +    "keyboard-o",
    +    "far",
    +    "keyboard"
    +  ],
    +  [
    +    "flag-o",
    +    "far",
    +    "flag"
    +  ],
    +  [
    +    "mail-reply-all",
    +    null,
    +    "reply-all"
    +  ],
    +  [
    +    "star-half-o",
    +    "far",
    +    "star-half"
    +  ],
    +  [
    +    "star-half-empty",
    +    "far",
    +    "star-half"
    +  ],
    +  [
    +    "star-half-full",
    +    "far",
    +    "star-half"
    +  ],
    +  [
    +    "code-fork",
    +    null,
    +    "code-branch"
    +  ],
    +  [
    +    "chain-broken",
    +    null,
    +    "unlink"
    +  ],
    +  [
    +    "shield",
    +    null,
    +    "shield-alt"
    +  ],
    +  [
    +    "calendar-o",
    +    "far",
    +    "calendar"
    +  ],
    +  [
    +    "maxcdn",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "html5",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "css3",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "ticket",
    +    null,
    +    "ticket-alt"
    +  ],
    +  [
    +    "minus-square-o",
    +    "far",
    +    "minus-square"
    +  ],
    +  [
    +    "level-up",
    +    null,
    +    "level-up-alt"
    +  ],
    +  [
    +    "level-down",
    +    null,
    +    "level-down-alt"
    +  ],
    +  [
    +    "pencil-square",
    +    null,
    +    "pen-square"
    +  ],
    +  [
    +    "external-link-square",
    +    null,
    +    "external-link-square-alt"
    +  ],
    +  [
    +    "compass",
    +    "far",
    +    null
    +  ],
    +  [
    +    "caret-square-o-down",
    +    "far",
    +    "caret-square-down"
    +  ],
    +  [
    +    "toggle-down",
    +    "far",
    +    "caret-square-down"
    +  ],
    +  [
    +    "caret-square-o-up",
    +    "far",
    +    "caret-square-up"
    +  ],
    +  [
    +    "toggle-up",
    +    "far",
    +    "caret-square-up"
    +  ],
    +  [
    +    "caret-square-o-right",
    +    "far",
    +    "caret-square-right"
    +  ],
    +  [
    +    "toggle-right",
    +    "far",
    +    "caret-square-right"
    +  ],
    +  [
    +    "eur",
    +    null,
    +    "euro-sign"
    +  ],
    +  [
    +    "euro",
    +    null,
    +    "euro-sign"
    +  ],
    +  [
    +    "gbp",
    +    null,
    +    "pound-sign"
    +  ],
    +  [
    +    "usd",
    +    null,
    +    "dollar-sign"
    +  ],
    +  [
    +    "dollar",
    +    null,
    +    "dollar-sign"
    +  ],
    +  [
    +    "inr",
    +    null,
    +    "rupee-sign"
    +  ],
    +  [
    +    "rupee",
    +    null,
    +    "rupee-sign"
    +  ],
    +  [
    +    "jpy",
    +    null,
    +    "yen-sign"
    +  ],
    +  [
    +    "cny",
    +    null,
    +    "yen-sign"
    +  ],
    +  [
    +    "rmb",
    +    null,
    +    "yen-sign"
    +  ],
    +  [
    +    "yen",
    +    null,
    +    "yen-sign"
    +  ],
    +  [
    +    "rub",
    +    null,
    +    "ruble-sign"
    +  ],
    +  [
    +    "ruble",
    +    null,
    +    "ruble-sign"
    +  ],
    +  [
    +    "rouble",
    +    null,
    +    "ruble-sign"
    +  ],
    +  [
    +    "krw",
    +    null,
    +    "won-sign"
    +  ],
    +  [
    +    "won",
    +    null,
    +    "won-sign"
    +  ],
    +  [
    +    "btc",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "bitcoin",
    +    "fab",
    +    "btc"
    +  ],
    +  [
    +    "file-text",
    +    null,
    +    "file-alt"
    +  ],
    +  [
    +    "sort-alpha-asc",
    +    null,
    +    "sort-alpha-down"
    +  ],
    +  [
    +    "sort-alpha-desc",
    +    null,
    +    "sort-alpha-up"
    +  ],
    +  [
    +    "sort-amount-asc",
    +    null,
    +    "sort-amount-down"
    +  ],
    +  [
    +    "sort-amount-desc",
    +    null,
    +    "sort-amount-up"
    +  ],
    +  [
    +    "sort-numeric-asc",
    +    null,
    +    "sort-numeric-down"
    +  ],
    +  [
    +    "sort-numeric-desc",
    +    null,
    +    "sort-numeric-up"
    +  ],
    +  [
    +    "youtube-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "youtube",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "xing",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "xing-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "youtube-play",
    +    "fab",
    +    "youtube"
    +  ],
    +  [
    +    "dropbox",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "stack-overflow",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "instagram",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "flickr",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "adn",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "bitbucket",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "bitbucket-square",
    +    "fab",
    +    "bitbucket"
    +  ],
    +  [
    +    "tumblr",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "tumblr-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "long-arrow-down",
    +    null,
    +    "long-arrow-alt-down"
    +  ],
    +  [
    +    "long-arrow-up",
    +    null,
    +    "long-arrow-alt-up"
    +  ],
    +  [
    +    "long-arrow-left",
    +    null,
    +    "long-arrow-alt-left"
    +  ],
    +  [
    +    "long-arrow-right",
    +    null,
    +    "long-arrow-alt-right"
    +  ],
    +  [
    +    "apple",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "windows",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "android",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "linux",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "dribbble",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "skype",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "foursquare",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "trello",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "gratipay",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "gittip",
    +    "fab",
    +    "gratipay"
    +  ],
    +  [
    +    "sun-o",
    +    "far",
    +    "sun"
    +  ],
    +  [
    +    "moon-o",
    +    "far",
    +    "moon"
    +  ],
    +  [
    +    "vk",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "weibo",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "renren",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "pagelines",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "stack-exchange",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "arrow-circle-o-right",
    +    "far",
    +    "arrow-alt-circle-right"
    +  ],
    +  [
    +    "arrow-circle-o-left",
    +    "far",
    +    "arrow-alt-circle-left"
    +  ],
    +  [
    +    "caret-square-o-left",
    +    "far",
    +    "caret-square-left"
    +  ],
    +  [
    +    "toggle-left",
    +    "far",
    +    "caret-square-left"
    +  ],
    +  [
    +    "dot-circle-o",
    +    "far",
    +    "dot-circle"
    +  ],
    +  [
    +    "vimeo-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "try",
    +    null,
    +    "lira-sign"
    +  ],
    +  [
    +    "turkish-lira",
    +    null,
    +    "lira-sign"
    +  ],
    +  [
    +    "plus-square-o",
    +    "far",
    +    "plus-square"
    +  ],
    +  [
    +    "slack",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "wordpress",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "openid",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "institution",
    +    null,
    +    "university"
    +  ],
    +  [
    +    "bank",
    +    null,
    +    "university"
    +  ],
    +  [
    +    "mortar-board",
    +    null,
    +    "graduation-cap"
    +  ],
    +  [
    +    "yahoo",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "google",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "reddit",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "reddit-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "stumbleupon-circle",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "stumbleupon",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "delicious",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "digg",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "pied-piper-pp",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "pied-piper-alt",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "drupal",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "joomla",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "spoon",
    +    null,
    +    "utensil-spoon"
    +  ],
    +  [
    +    "behance",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "behance-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "steam",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "steam-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "automobile",
    +    null,
    +    "car"
    +  ],
    +  [
    +    "cab",
    +    null,
    +    "taxi"
    +  ],
    +  [
    +    "envelope-o",
    +    "far",
    +    "envelope"
    +  ],
    +  [
    +    "deviantart",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "soundcloud",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "file-pdf-o",
    +    "far",
    +    "file-pdf"
    +  ],
    +  [
    +    "file-word-o",
    +    "far",
    +    "file-word"
    +  ],
    +  [
    +    "file-excel-o",
    +    "far",
    +    "file-excel"
    +  ],
    +  [
    +    "file-powerpoint-o",
    +    "far",
    +    "file-powerpoint"
    +  ],
    +  [
    +    "file-image-o",
    +    "far",
    +    "file-image"
    +  ],
    +  [
    +    "file-photo-o",
    +    "far",
    +    "file-image"
    +  ],
    +  [
    +    "file-picture-o",
    +    "far",
    +    "file-image"
    +  ],
    +  [
    +    "file-archive-o",
    +    "far",
    +    "file-archive"
    +  ],
    +  [
    +    "file-zip-o",
    +    "far",
    +    "file-archive"
    +  ],
    +  [
    +    "file-audio-o",
    +    "far",
    +    "file-audio"
    +  ],
    +  [
    +    "file-sound-o",
    +    "far",
    +    "file-audio"
    +  ],
    +  [
    +    "file-video-o",
    +    "far",
    +    "file-video"
    +  ],
    +  [
    +    "file-movie-o",
    +    "far",
    +    "file-video"
    +  ],
    +  [
    +    "file-code-o",
    +    "far",
    +    "file-code"
    +  ],
    +  [
    +    "vine",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "codepen",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "jsfiddle",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "life-ring",
    +    "far",
    +    null
    +  ],
    +  [
    +    "life-bouy",
    +    "far",
    +    "life-ring"
    +  ],
    +  [
    +    "life-buoy",
    +    "far",
    +    "life-ring"
    +  ],
    +  [
    +    "life-saver",
    +    "far",
    +    "life-ring"
    +  ],
    +  [
    +    "support",
    +    "far",
    +    "life-ring"
    +  ],
    +  [
    +    "circle-o-notch",
    +    null,
    +    "circle-notch"
    +  ],
    +  [
    +    "rebel",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "ra",
    +    "fab",
    +    "rebel"
    +  ],
    +  [
    +    "resistance",
    +    "fab",
    +    "rebel"
    +  ],
    +  [
    +    "empire",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "ge",
    +    "fab",
    +    "empire"
    +  ],
    +  [
    +    "git-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "git",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "hacker-news",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "y-combinator-square",
    +    "fab",
    +    "hacker-news"
    +  ],
    +  [
    +    "yc-square",
    +    "fab",
    +    "hacker-news"
    +  ],
    +  [
    +    "tencent-weibo",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "qq",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "weixin",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "wechat",
    +    "fab",
    +    "weixin"
    +  ],
    +  [
    +    "send",
    +    null,
    +    "paper-plane"
    +  ],
    +  [
    +    "paper-plane-o",
    +    "far",
    +    "paper-plane"
    +  ],
    +  [
    +    "send-o",
    +    "far",
    +    "paper-plane"
    +  ],
    +  [
    +    "circle-thin",
    +    "far",
    +    "circle"
    +  ],
    +  [
    +    "header",
    +    null,
    +    "heading"
    +  ],
    +  [
    +    "sliders",
    +    null,
    +    "sliders-h"
    +  ],
    +  [
    +    "futbol-o",
    +    "far",
    +    "futbol"
    +  ],
    +  [
    +    "soccer-ball-o",
    +    "far",
    +    "futbol"
    +  ],
    +  [
    +    "slideshare",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "twitch",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "yelp",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "newspaper-o",
    +    "far",
    +    "newspaper"
    +  ],
    +  [
    +    "paypal",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "google-wallet",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "cc-visa",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "cc-mastercard",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "cc-discover",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "cc-amex",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "cc-paypal",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "cc-stripe",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "bell-slash-o",
    +    "far",
    +    "bell-slash"
    +  ],
    +  [
    +    "trash",
    +    null,
    +    "trash-alt"
    +  ],
    +  [
    +    "copyright",
    +    "far",
    +    null
    +  ],
    +  [
    +    "eyedropper",
    +    null,
    +    "eye-dropper"
    +  ],
    +  [
    +    "area-chart",
    +    null,
    +    "chart-area"
    +  ],
    +  [
    +    "pie-chart",
    +    null,
    +    "chart-pie"
    +  ],
    +  [
    +    "line-chart",
    +    null,
    +    "chart-line"
    +  ],
    +  [
    +    "lastfm",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "lastfm-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "ioxhost",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "angellist",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "cc",
    +    "far",
    +    "closed-captioning"
    +  ],
    +  [
    +    "ils",
    +    null,
    +    "shekel-sign"
    +  ],
    +  [
    +    "shekel",
    +    null,
    +    "shekel-sign"
    +  ],
    +  [
    +    "sheqel",
    +    null,
    +    "shekel-sign"
    +  ],
    +  [
    +    "meanpath",
    +    "fab",
    +    "font-awesome"
    +  ],
    +  [
    +    "buysellads",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "connectdevelop",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "dashcube",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "forumbee",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "leanpub",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "sellsy",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "shirtsinbulk",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "simplybuilt",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "skyatlas",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "diamond",
    +    "far",
    +    "gem"
    +  ],
    +  [
    +    "intersex",
    +    null,
    +    "transgender"
    +  ],
    +  [
    +    "facebook-official",
    +    "fab",
    +    "facebook"
    +  ],
    +  [
    +    "pinterest-p",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "whatsapp",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "hotel",
    +    null,
    +    "bed"
    +  ],
    +  [
    +    "viacoin",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "medium",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "y-combinator",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "yc",
    +    "fab",
    +    "y-combinator"
    +  ],
    +  [
    +    "optin-monster",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "opencart",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "expeditedssl",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "battery-4",
    +    null,
    +    "battery-full"
    +  ],
    +  [
    +    "battery",
    +    null,
    +    "battery-full"
    +  ],
    +  [
    +    "battery-3",
    +    null,
    +    "battery-three-quarters"
    +  ],
    +  [
    +    "battery-2",
    +    null,
    +    "battery-half"
    +  ],
    +  [
    +    "battery-1",
    +    null,
    +    "battery-quarter"
    +  ],
    +  [
    +    "battery-0",
    +    null,
    +    "battery-empty"
    +  ],
    +  [
    +    "object-group",
    +    "far",
    +    null
    +  ],
    +  [
    +    "object-ungroup",
    +    "far",
    +    null
    +  ],
    +  [
    +    "sticky-note-o",
    +    "far",
    +    "sticky-note"
    +  ],
    +  [
    +    "cc-jcb",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "cc-diners-club",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "clone",
    +    "far",
    +    null
    +  ],
    +  [
    +    "hourglass-o",
    +    "far",
    +    "hourglass"
    +  ],
    +  [
    +    "hourglass-1",
    +    null,
    +    "hourglass-start"
    +  ],
    +  [
    +    "hourglass-2",
    +    null,
    +    "hourglass-half"
    +  ],
    +  [
    +    "hourglass-3",
    +    null,
    +    "hourglass-end"
    +  ],
    +  [
    +    "hand-rock-o",
    +    "far",
    +    "hand-rock"
    +  ],
    +  [
    +    "hand-grab-o",
    +    "far",
    +    "hand-rock"
    +  ],
    +  [
    +    "hand-paper-o",
    +    "far",
    +    "hand-paper"
    +  ],
    +  [
    +    "hand-stop-o",
    +    "far",
    +    "hand-paper"
    +  ],
    +  [
    +    "hand-scissors-o",
    +    "far",
    +    "hand-scissors"
    +  ],
    +  [
    +    "hand-lizard-o",
    +    "far",
    +    "hand-lizard"
    +  ],
    +  [
    +    "hand-spock-o",
    +    "far",
    +    "hand-spock"
    +  ],
    +  [
    +    "hand-pointer-o",
    +    "far",
    +    "hand-pointer"
    +  ],
    +  [
    +    "hand-peace-o",
    +    "far",
    +    "hand-peace"
    +  ],
    +  [
    +    "registered",
    +    "far",
    +    null
    +  ],
    +  [
    +    "creative-commons",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "gg",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "gg-circle",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "tripadvisor",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "odnoklassniki",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "odnoklassniki-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "get-pocket",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "wikipedia-w",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "safari",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "chrome",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "firefox",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "opera",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "internet-explorer",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "television",
    +    null,
    +    "tv"
    +  ],
    +  [
    +    "contao",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "500px",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "amazon",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "calendar-plus-o",
    +    "far",
    +    "calendar-plus"
    +  ],
    +  [
    +    "calendar-minus-o",
    +    "far",
    +    "calendar-minus"
    +  ],
    +  [
    +    "calendar-times-o",
    +    "far",
    +    "calendar-times"
    +  ],
    +  [
    +    "calendar-check-o",
    +    "far",
    +    "calendar-check"
    +  ],
    +  [
    +    "map-o",
    +    "far",
    +    "map"
    +  ],
    +  [
    +    "commenting",
    +    "far",
    +    "comment-dots"
    +  ],
    +  [
    +    "commenting-o",
    +    "far",
    +    "comment-dots"
    +  ],
    +  [
    +    "houzz",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "vimeo",
    +    "fab",
    +    "vimeo-v"
    +  ],
    +  [
    +    "black-tie",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "fonticons",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "reddit-alien",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "edge",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "credit-card-alt",
    +    null,
    +    "credit-card"
    +  ],
    +  [
    +    "codiepie",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "modx",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "fort-awesome",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "usb",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "product-hunt",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "mixcloud",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "scribd",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "pause-circle-o",
    +    "far",
    +    "pause-circle"
    +  ],
    +  [
    +    "stop-circle-o",
    +    "far",
    +    "stop-circle"
    +  ],
    +  [
    +    "bluetooth",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "bluetooth-b",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "gitlab",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "wpbeginner",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "wpforms",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "envira",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "wheelchair-alt",
    +    "fab",
    +    "accessible-icon"
    +  ],
    +  [
    +    "question-circle-o",
    +    "far",
    +    "question-circle"
    +  ],
    +  [
    +    "volume-control-phone",
    +    null,
    +    "phone-volume"
    +  ],
    +  [
    +    "asl-interpreting",
    +    null,
    +    "american-sign-language-interpreting"
    +  ],
    +  [
    +    "deafness",
    +    null,
    +    "deaf"
    +  ],
    +  [
    +    "hard-of-hearing",
    +    null,
    +    "deaf"
    +  ],
    +  [
    +    "glide",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "glide-g",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "signing",
    +    null,
    +    "sign-language"
    +  ],
    +  [
    +    "viadeo",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "viadeo-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "snapchat",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "snapchat-ghost",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "snapchat-square",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "pied-piper",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "first-order",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "yoast",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "themeisle",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "google-plus-official",
    +    "fab",
    +    "google-plus"
    +  ],
    +  [
    +    "google-plus-circle",
    +    "fab",
    +    "google-plus"
    +  ],
    +  [
    +    "font-awesome",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "fa",
    +    "fab",
    +    "font-awesome"
    +  ],
    +  [
    +    "handshake-o",
    +    "far",
    +    "handshake"
    +  ],
    +  [
    +    "envelope-open-o",
    +    "far",
    +    "envelope-open"
    +  ],
    +  [
    +    "linode",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "address-book-o",
    +    "far",
    +    "address-book"
    +  ],
    +  [
    +    "vcard",
    +    null,
    +    "address-card"
    +  ],
    +  [
    +    "address-card-o",
    +    "far",
    +    "address-card"
    +  ],
    +  [
    +    "vcard-o",
    +    "far",
    +    "address-card"
    +  ],
    +  [
    +    "user-circle-o",
    +    "far",
    +    "user-circle"
    +  ],
    +  [
    +    "user-o",
    +    "far",
    +    "user"
    +  ],
    +  [
    +    "id-badge",
    +    "far",
    +    null
    +  ],
    +  [
    +    "drivers-license",
    +    null,
    +    "id-card"
    +  ],
    +  [
    +    "id-card-o",
    +    "far",
    +    "id-card"
    +  ],
    +  [
    +    "drivers-license-o",
    +    "far",
    +    "id-card"
    +  ],
    +  [
    +    "quora",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "free-code-camp",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "telegram",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "thermometer-4",
    +    null,
    +    "thermometer-full"
    +  ],
    +  [
    +    "thermometer",
    +    null,
    +    "thermometer-full"
    +  ],
    +  [
    +    "thermometer-3",
    +    null,
    +    "thermometer-three-quarters"
    +  ],
    +  [
    +    "thermometer-2",
    +    null,
    +    "thermometer-half"
    +  ],
    +  [
    +    "thermometer-1",
    +    null,
    +    "thermometer-quarter"
    +  ],
    +  [
    +    "thermometer-0",
    +    null,
    +    "thermometer-empty"
    +  ],
    +  [
    +    "bathtub",
    +    null,
    +    "bath"
    +  ],
    +  [
    +    "s15",
    +    null,
    +    "bath"
    +  ],
    +  [
    +    "window-maximize",
    +    "far",
    +    null
    +  ],
    +  [
    +    "window-restore",
    +    "far",
    +    null
    +  ],
    +  [
    +    "times-rectangle",
    +    null,
    +    "window-close"
    +  ],
    +  [
    +    "window-close-o",
    +    "far",
    +    "window-close"
    +  ],
    +  [
    +    "times-rectangle-o",
    +    "far",
    +    "window-close"
    +  ],
    +  [
    +    "bandcamp",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "grav",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "etsy",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "imdb",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "ravelry",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "eercast",
    +    "fab",
    +    "sellcast"
    +  ],
    +  [
    +    "snowflake-o",
    +    "far",
    +    "snowflake"
    +  ],
    +  [
    +    "superpowers",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "wpexplorer",
    +    "fab",
    +    null
    +  ],
    +  [
    +    "spotify",
    +    "fab",
    +    null
    +  ]
    +]
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/metadata/shims.yml b/htdocs/theme/common/fontawesome-5/metadata/shims.yml
    new file mode 100644
    index 00000000000..4fe6711bafe
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/metadata/shims.yml
    @@ -0,0 +1,295 @@
    +area-chart:
    +  name: chart-area
    +arrow-circle-o-down:
    +  name: arrow-alt-circle-down
    +  prefix: far
    +arrow-circle-o-left:
    +  name: arrow-alt-circle-left
    +  prefix: far
    +arrow-circle-o-right:
    +  name: arrow-alt-circle-right
    +  prefix: far
    +arrow-circle-o-up:
    +  name: arrow-alt-circle-up
    +  prefix: far
    +arrows:
    +  name: arrows-alt
    +arrows-alt:
    +  name: expand-arrows-alt
    +arrows-h:
    +  name: arrows-alt-h
    +arrows-v:
    +  name: arrows-alt-v
    +bar-chart:
    +  name: chart-bar
    +  prefix: far
    +bitbucket-square:
    +  name: bitbucket
    +  prefix: fab
    +calendar:
    +  name: calendar-alt
    +calendar-o:
    +  name: calendar
    +  prefix: far
    +caret-square-o-down:
    +  name: caret-square-down
    +  prefix: far
    +caret-square-o-left:
    +  name: caret-square-left
    +  prefix: far
    +caret-square-o-right:
    +  name: caret-square-right
    +  prefix: far
    +caret-square-o-up:
    +  name: caret-square-up
    +  prefix: far
    +cc:
    +  name: closed-captioning
    +  prefix: far
    +chain-broken:
    +  name: unlink
    +circle-o-notch:
    +  name: circle-notch
    +circle-thin:
    +  name: circle
    +  prefix: far
    +clipboard:
    +  prefix: far
    +clone:
    +  prefix: far
    +cloud-download:
    +  name: cloud-download-alt
    +cloud-upload:
    +  name: cloud-upload-alt
    +code-fork:
    +  name: code-branch
    +comment-alt:
    +  name: comment-dots
    +  prefix: far
    +commenting:
    +  name: comment-dots
    +  prefix: far
    +compass:
    +  prefix: far
    +copyright:
    +  prefix: far
    +creative-commons:
    +  prefix: fab
    +credit-card:
    +  prefix: far
    +credit-card-alt:
    +  name: credit-card
    +cutlery:
    +  name: utensils
    +diamond:
    +  name: gem
    +  prefix: far
    +eercast:
    +  name: sellcast
    +  prefix: fab
    +eur:
    +  name: euro-sign
    +exchange:
    +  name: exchange-alt
    +external-link:
    +  name: external-link-alt
    +external-link-square:
    +  name: external-link-square-alt
    +eye:
    +  prefix: far
    +eye-dropper:
    +  name: eye-dropper
    +  prefix: far
    +eye-slash:
    +  prefix: far
    +eyedropper:
    +  name: eye-dropper
    +facebook:
    +  name: facebook-f
    +  prefix: fab
    +facebook-official:
    +  name: facebook
    +  prefix: fab
    +file-text:
    +  name: file-alt
    +files-o:
    +  name: copy
    +  prefix: far
    +floppy-o:
    +  name: save
    +  prefix: far
    +gbp:
    +  name: pound-sign
    +glass:
    +  name: glass-martini
    +google-plus:
    +  name: google-plus-g
    +  prefix: fab
    +google-plus-circle:
    +  name: google-plus
    +  prefix: fab
    +google-plus-official:
    +  name: google-plus
    +  prefix: fab
    +hand-o-down:
    +  name: hand-point-down
    +  prefix: far
    +hand-o-left:
    +  name: hand-point-left
    +  prefix: far
    +hand-o-right:
    +  name: hand-point-right
    +  prefix: far
    +hand-o-up:
    +  name: hand-point-up
    +  prefix: far
    +header:
    +  name: heading
    +id-badge:
    +  prefix: far
    +ils:
    +  name: shekel-sign
    +inr:
    +  name: rupee-sign
    +intersex:
    +  name: transgender
    +jpy:
    +  name: yen-sign
    +krw:
    +  name: won-sign
    +level-down:
    +  name: level-down-alt
    +level-up:
    +  name: level-up-alt
    +life-ring:
    +  prefix: far
    +line-chart:
    +  name: chart-line
    +linkedin:
    +  name: linkedin-in
    +  prefix: fab
    +linkedin-square:
    +  name: linkedin
    +  prefix: fab
    +list-alt:
    +  prefix: far
    +long-arrow-down:
    +  name: long-arrow-alt-down
    +long-arrow-left:
    +  name: long-arrow-alt-left
    +long-arrow-right:
    +  name: long-arrow-alt-right
    +long-arrow-up:
    +  name: long-arrow-alt-up
    +map-marker:
    +  name: map-marker-alt
    +meanpath:
    +  name: font-awesome
    +  prefix: fab
    +mobile:
    +  name: mobile-alt
    +money:
    +  name: money-bill-alt
    +  prefix: far
    +object-group:
    +  prefix: far
    +object-ungroup:
    +  prefix: far
    +paste:
    +  prefix: far
    +pencil:
    +  name: pencil-alt
    +pencil-square:
    +  name: pen-square
    +pencil-square-o:
    +  name: edit
    +  prefix: far
    +picture:
    +  name: image
    +pie-chart:
    +  name: chart-pie
    +refresh:
    +  name: sync
    +registered:
    +  prefix: far
    +repeat:
    +  name: redo
    +rub:
    +  name: ruble-sign
    +scissors:
    +  name: cut
    +shield:
    +  name: shield-alt
    +sign-in:
    +  name: sign-in-alt
    +sign-out:
    +  name: sign-out-alt
    +sliders:
    +  name: sliders-h
    +sort-alpha-asc:
    +  name: sort-alpha-down
    +sort-alpha-desc:
    +  name: sort-alpha-up
    +sort-amount-asc:
    +  name: sort-amount-down
    +sort-amount-desc:
    +  name: sort-amount-up
    +sort-asc:
    +  name: sort-up
    +sort-desc:
    +  name: sort-down
    +sort-numeric-asc:
    +  name: sort-numeric-down
    +sort-numeric-desc:
    +  name: sort-numeric-up
    +spoon:
    +  name: utensil-spoon
    +star-half-empty:
    +  name: star-half
    +star-half-full:
    +  name: star-half
    +support:
    +  name: life-ring
    +  prefix: far
    +tablet:
    +  name: tablet-alt
    +tachometer:
    +  name: tachometer-alt
    +television:
    +  name: tv
    +thumb-tack:
    +  name: thumbtack
    +thumbs-o-down:
    +  name: thumbs-down
    +  prefix: far
    +thumbs-o-up:
    +  name: thumbs-up
    +  prefix: far
    +ticket:
    +  name: ticket-alt
    +trash:
    +  name: trash-alt
    +trash-o:
    +  name: trash-alt
    +  prefix: far
    +try:
    +  name: lira-sign
    +usd:
    +  name: dollar-sign
    +video-camera:
    +  name: video
    +vimeo:
    +  name: vimeo-v
    +  prefix: fab
    +volume-control-phone:
    +  name: phone-volume
    +wheelchair-alt:
    +  name: accessible-icon
    +  prefix: fab
    +window-maximize:
    +  prefix: far
    +window-restore:
    +  prefix: far
    +youtube-play:
    +  name: youtube
    +  prefix: fab
    diff --git a/htdocs/theme/common/fontawesome-5/metadata/sponsors.yml b/htdocs/theme/common/fontawesome-5/metadata/sponsors.yml
    new file mode 100644
    index 00000000000..1c97eab16df
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/metadata/sponsors.yml
    @@ -0,0 +1,639 @@
    +accusoft:
    +  icons:
    +    - accusoft
    +  label: Accusoft
    +  url: 'https://www.accusoft.com'
    +administrator-technology:
    +  icons:
    +    - stream
    +  label: Administrator Technology
    +  url: 'https://administrator.de'
    +adversal:
    +  icons:
    +    - adversal
    +  label: Adversal
    +  url: 'https://www.adversal.com'
    +affiliatetheme:
    +  icons:
    +    - affiliatetheme
    +  label: affiliatetheme
    +  url: 'https://affiliatetheme.io/en'
    +algolia:
    +  icons:
    +    - algolia
    +  label: Algolia
    +  url: 'http://www.algolia.com'
    +amazon-web-services:
    +  icons:
    +    - aws
    +  label: Amazon Web Services
    +  url: 'https://aws.amazon.com'
    +amilia:
    +  icons:
    +    - amilia
    +  label: Amilia
    +  url: 'http://www.amilia.com'
    +angry-creative:
    +  icons:
    +    - angrycreative
    +  label: Angry Creative
    +  url: 'https://angrycreative.se'
    +app-signal:
    +  icons:
    +    - stroopwafel
    +  label: AppSignal
    +  url: 'https://appsignal.com'
    +apper-systems-ab:
    +  icons:
    +    - apper
    +  label: Apper Systems AB
    +  url: 'http://www.apper.com'
    +'asymmetrik,ltd':
    +  icons:
    +    - asymmetrik
    +  label: 'Asymmetrik, Ltd.'
    +  url: 'http://asymmetrik.com'
    +avianex:
    +  icons:
    +    - avianex
    +  label: avianex
    +  url: 'https://www.avianex.de'
    +bi-mobject:
    +  icons:
    +    - bimobject
    +  label: BIMobject
    +  url: 'http://bimobject.com'
    +bity:
    +  icons:
    +    - bity
    +  label: Bity
    +  url: 'http://bity.com'
    +blackpulp-designs:
    +  icons:
    +    - pray
    +  label: Blackpulp Designs
    +  url: 'https://www.blackpulp.com'
    +blissbook:
    +  icons:
    +    - pen-fancy
    +  label: Blissbook
    +  url: 'https://blissbook.com'
    +büromöbel-experte-gmb-h &co-kg:
    +  icons:
    +    - buromobelexperte
    +  label: Büromöbel-Experte GmbH & Co. KG.
    +  url: 'https://www.bueromoebel-experte.de'
    +c-panel:
    +  icons:
    +    - cpanel
    +  label: cPanel
    +  url: 'http://cpanel.com'
    +centercode:
    +  icons:
    +    - centercode
    +  label: Centercode
    +  url: 'https://www.centercode.com'
    +cibltd:
    +  icons:
    +    - drum-steelpan
    +  label: Comprehensive Insurance Brokers Limited
    +  url: 'http://www.cibltd.com'
    +clear-blue-technologies:
    +  icons:
    +    - solar-panel
    +  label: Clear Blue Technologies
    +  url: 'http://www.clearbluetechnologies.com'
    +cloudscale-ch:
    +  icons:
    +    - cloudscale
    +  label: cloudscale.ch
    +  url: 'https://www.cloudscale.ch'
    +cloudsmith:
    +  icons:
    +    - cloudsmith
    +  label: Cloudsmith
    +  url: 'https://cloudsmith.io'
    +cloudversify:
    +  icons:
    +    - cloudversify
    +  label: cloudversify
    +  url: 'https://www.cloudversify.com'
    +cuttlefish:
    +  icons:
    +    - cuttlefish
    +  label: Cuttlefish
    +  url: 'http://wearecuttlefish.com'
    +darren-wiebe:
    +  icons:
    +    - church
    +  label: Darren Wiebe
    +deploy-dog:
    +  icons:
    +    - deploydog
    +  label: deploy.dog
    +  url: 'http://deploy.dog'
    +deskpro:
    +  icons:
    +    - deskpro
    +  label: Deskpro
    +  url: 'http://www.deskpro.com'
    +discourse:
    +  icons:
    +    - discourse
    +  label: Discourse
    +  url: 'https://discourse.org'
    +doc-hub:
    +  icons:
    +    - dochub
    +  label: DocHub
    +  url: 'https://dochub.com'
    +draft2-digital:
    +  icons:
    +    - draft2digital
    +  label: Draft2Digital
    +  url: 'http://draft2digital.com'
    +dyalog-apl:
    +  icons:
    +    - dyalog
    +  label: Dyalog APL
    +  url: 'http://www.dyalog.com'
    +firstdraft:
    +  icons:
    +    - firstdraft
    +  label: firstdraft
    +  url: 'http://www.firstdraft.com'
    +fleetplan:
    +  icons:
    +    - helicopter
    +  label: FLEETPLAN
    +  url: 'https://www.fleetplan.net'
    +getaroom:
    +  icons:
    +    - archway
    +    - dumbbell
    +    - hotel
    +    - map-marked
    +    - map-marked-alt
    +    - monument
    +    - spa
    +    - swimmer
    +    - swimming-pool
    +  label: getaroom
    +  url: 'https://www.getaroom.com'
    +git-kraken:
    +  icons:
    +    - gitkraken
    +  label: GitKraken
    +  url: 'https://www.gitkraken.com'
    +gofore:
    +  icons:
    +    - gofore
    +  label: Gofore
    +  url: 'http://gofore.com'
    +'gripfire,inc':
    +  icons:
    +    - gripfire
    +  label: 'Gripfire, Inc.'
    +  url: 'http://gripfire.io'
    +harvard-medical-school:
    +  icons:
    +    - allergies
    +    - ambulance
    +    - band-aid
    +    - briefcase-medical
    +    - burn
    +    - capsules
    +    - diagnoses
    +    - dna
    +    - file-medical
    +    - file-medical-alt
    +    - first-aid
    +    - heart
    +    - heartbeat
    +    - hospital
    +    - hospital-alt
    +    - hospital-symbol
    +    - id-card-alt
    +    - notes-medical
    +    - pills
    +    - plus
    +    - prescription-bottle
    +    - prescription-bottle-alt
    +    - procedures
    +    - smoking
    +    - stethoscope
    +    - syringe
    +    - tablets
    +    - thermometer
    +    - user-md
    +    - vial
    +    - vials
    +    - weight
    +    - x-ray
    +  label: Harvard Medical School
    +  url: 'https://hms.harvard.edu'
    +hips:
    +  icons:
    +    - hips
    +  label: Hips
    +  url: 'https://hips.com'
    +hire-a-helper:
    +  icons:
    +    - archive
    +    - box-open
    +    - couch
    +    - dolly
    +    - people-carry
    +    - route
    +    - sign
    +    - suitcase
    +    - tape
    +    - truck-loading
    +    - truck-moving
    +    - wine-glass
    +  label: HireAHelper
    +  url: 'https://www.hireahelper.com'
    +hornbill:
    +  icons:
    +    - hornbill
    +  label: Hornbill
    +  url: 'https://www.hornbill.com'
    +hotjar:
    +  icons:
    +    - hotjar
    +  label: Hotjar
    +  url: 'https://www.hotjar.com'
    +hub-spot:
    +  icons:
    +    - hubspot
    +  label: HubSpot
    +  url: 'http://www.HubSpot.com'
    +in-site-systems:
    +  icons:
    +    - toolbox
    +  label: InSite Systems
    +  url: 'https://www.insitesystems.com'
    +inspira-bvba:
    +  icons:
    +    - chess-knight
    +  label: Inspira bvba
    +  url: 'https://www.inspira.be'
    +joe-emison:
    +  icons:
    +    - blender-phone
    +  label: Joe Emison
    +joget:
    +  icons:
    +    - joget
    +  label: Joget
    +  url: 'http://www.joget.org'
    +jon-galloway:
    +  icons:
    +    - crow
    +  label: Jon Galloway
    +kevin-barone:
    +  icons:
    +    - file-contract
    +  label: Kevin Barone
    +key-cdn:
    +  icons:
    +    - keycdn
    +  label: KeyCDN
    +  url: 'https://www.keycdn.com'
    +korvue:
    +  icons:
    +    - korvue
    +  label: Korvue
    +  url: 'https://korvue.com'
    +max-elman:
    +  icons:
    +    - frog
    +  label: Max Elman
    +med-apps:
    +  icons:
    +    - medapps
    +  label: MedApps
    +  url: 'http://medapps.com.au'
    +megaport:
    +  icons:
    +    - megaport
    +  label: Megaport
    +  url: 'https://www.megaport.com'
    +mix:
    +  icons:
    +    - mix
    +  label: Mix
    +  url: 'http://mix.com'
    +mizuni:
    +  icons:
    +    - mizuni
    +  label: Mizuni
    +  url: 'http://www.mizuni.com'
    +mrt:
    +  icons:
    +    - medrt
    +  label: MRT
    +  url: 'https://medrt.co.jp'
    +mylogin-info:
    +  icons:
    +    - user-shield
    +  label: mylogin.info
    +  url: 'https://www.mylogin.info'
    +napster:
    +  icons:
    +    - napster
    +  label: Napster
    +  url: 'http://www.napster.com'
    +nimblr:
    +  icons:
    +    - nimblr
    +  label: Nimblr
    +  url: 'https://nimblr.ai'
    +nompse:
    +  icons:
    +    - chalkboard
    +    - chalkboard-teacher
    +  label: Nomp.se
    +  url: 'https://nomp.se'
    +ns8:
    +  icons:
    +    - ns8
    +  label: NS8
    +  url: 'https://www.ns8.com'
    +nutritionix:
    +  icons:
    +    - nutritionix
    +  label: Nutritionix
    +  url: 'http://www.nutritionix.com'
    +page4-corporation:
    +  icons:
    +    - page4
    +  label: page4 Corporation
    +  url: 'https://en.page4.com'
    +pal-fed:
    +  icons:
    +    - palfed
    +  label: PalFed
    +  url: 'https://www.palfed.com'
    +phabricator:
    +  icons:
    +    - phabricator
    +  label: Phabricator
    +  url: 'http://phacility.com'
    +promo-wizard:
    +  icons:
    +    - hat-wizard
    +  label: Promo Wizard
    +  url: 'https://promowizard.co.uk'
    +pulse-eight:
    +  icons:
    +    - volume-mute
    +  label: Pulse-Eight
    +  url: 'https://pulse-eight.com'
    +purely-interactive:
    +  icons:
    +    - kiwi-bird
    +  label: Purely Interactive
    +  url: 'https://www.purelyinteractive.ca'
    +pushed:
    +  icons:
    +    - pushed
    +  label: Pushed
    +  url: 'https://pushed.co'
    +quin-scape:
    +  icons:
    +    - quinscape
    +  label: QuinScape
    +  url: 'https://www.quinscape.de'
    +readme-io:
    +  icons:
    +    - readme
    +  label: Readme.io
    +  url: 'http://readme.io'
    +red-river:
    +  icons:
    +    - red-river
    +  label: red river
    +  url: 'https://river.red'
    +rendact:
    +  icons:
    +    - rendact
    +  label: Rendact
    +  url: 'https://rendact.com'
    +replyd:
    +  icons:
    +    - replyd
    +  label: replyd
    +resolving:
    +  icons:
    +    - resolving
    +  label: Resolving
    +  url: 'https://resolving.com'
    +rev-io:
    +  icons:
    +    - rev
    +  label: Rev.io
    +  url: 'https://rev.io'
    +rock-rms:
    +  icons:
    +    - rockrms
    +  label: Rock RMS
    +  url: 'http://rockrms.com'
    +rocket-chat:
    +  icons:
    +    - comment
    +    - comment-alt
    +    - comment-dots
    +    - comment-slash
    +    - comments
    +    - frown
    +    - meh
    +    - phone
    +    - phone-slash
    +    - poo
    +    - quote-left
    +    - quote-right
    +    - smile
    +    - video
    +    - video-slash
    +  label: Rocket.Chat
    +  url: 'https://rocket.chat'
    +rodney-oliver:
    +  icons:
    +    - folder-minus
    +    - folder-plus
    +  label: Rodney Oliver
    +schlix:
    +  icons:
    +    - schlix
    +  label: SCHLIX
    +  url: 'http://schlix.com'
    +search-eng-in:
    +  icons:
    +    - searchengin
    +  label: SearchEng.in
    +  url: 'http://searcheng.in'
    +service-stack:
    +  icons:
    +    - servicestack
    +  label: ServiceStack
    +  url: 'https://servicestack.net'
    +shawn-storie:
    +  icons:
    +    - teeth
    +    - teeth-open
    +  label: Shawn Storie
    +shopware:
    +  icons:
    +    - shopware
    +  label: Shopware
    +  url: 'https://shopware.de'
    +shp:
    +  icons:
    +    - school
    +  label: SHP
    +  url: 'http://shp.com'
    +silicon-barn-inc:
    +  icons:
    +    - project-diagram
    +  label: Silicon Barn Inc
    +  url: 'https://siliconbarn.com'
    +sistrix:
    +  icons:
    +    - sistrix
    +  label: SISTRIX
    +  url: 'https://www.sistrix.de'
    +smup:
    +  icons:
    +    - shoe-prints
    +  label: Smup
    +  url: 'https://www.atomsoftware.com.au'
    +speakap:
    +  icons:
    +    - speakap
    +  label: Speakap
    +  url: 'https://speakap.com'
    +stay-linked:
    +  icons:
    +    - box
    +    - boxes
    +    - clipboard-check
    +    - clipboard-list
    +    - dolly
    +    - dolly-flatbed
    +    - pallet
    +    - shipping-fast
    +    - truck
    +    - warehouse
    +  label: StayLinked
    +  url: 'https://www.staylinked.com'
    +sticker-mule:
    +  icons:
    +    - sticker-mule
    +  label: Sticker Mule
    +  url: 'https://stickermule.com'
    +studio-vinari:
    +  icons:
    +    - studiovinari
    +  label: Studio Vinari
    +  url: 'https://studiovinari.com'
    +supple:
    +  icons:
    +    - ad
    +    - bullhorn
    +    - bullseye
    +    - comment-dollar
    +    - comments-dollar
    +    - envelope-open-text
    +    - funnel-dollar
    +    - mail-bulk
    +    - poll
    +    - poll-h
    +    - search-dollar
    +    - search-location
    +    - supple
    +  label: Supple
    +  url: 'https://supple.com.au'
    +the-red-yeti:
    +  icons:
    +    - the-red-yeti
    +  label: The Red Yeti
    +  url: 'http://theredyeti.com'
    +the-us-sunnah-foundation:
    +  icons:
    +    - dollar-sign
    +    - donate
    +    - dove
    +    - gift
    +    - globe
    +    - hand-holding-heart
    +    - hand-holding-usd
    +    - hands-helping
    +    - handshake
    +    - heart
    +    - leaf
    +    - parachute-box
    +    - piggy-bank
    +    - ribbon
    +    - seedling
    +  label: The us-Sunnah Foundation
    +  url: 'https://www.ussunnah.org'
    +themeco:
    +  icons:
    +    - themeco
    +  label: Themeco
    +  url: 'https://theme.co'
    +typo3:
    +  icons:
    +    - typo3
    +  label: Typo3
    +  url: 'https://typo3.org'
    +uniregistry:
    +  icons:
    +    - uniregistry
    +  label: Uniregistry
    +  url: 'https://uniregistry.com'
    +us-sunnah-foundation:
    +  icons:
    +    - ussunnah
    +  label: us-Sunnah Foundation
    +  url: 'https://www.ussunnah.org'
    +vaadin:
    +  icons:
    +    - vaadin
    +  label: Vaadin
    +  url: 'http://vaadin.com'
    +via:
    +  icons:
    +    - car-crash
    +    - draw-polygon
    +    - house-damage
    +    - layer-group
    +    - skull-crossbones
    +    - user-injured
    +  label: VIA Traffic Software Solutions
    +  url: 'https://www.via.software'
    +victor-costan:
    +  icons:
    +    - otter
    +  label: Staphany Park and Victor Costan
    +vnv:
    +  icons:
    +    - vnv
    +  label: VNV
    +  url: 'https://www.vnv.ch'
    +weedable:
    +  icons:
    +    - bong
    +    - cannabis
    +    - hippo
    +    - joint
    +    - mortar-pestle
    +    - prescription
    +  label: Weedable
    +  url: 'https://www.weedable.com'
    +whmcs:
    +  icons:
    +    - whmcs
    +  label: WHMCS
    +  url: 'https://www.whmcs.com'
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_animated.scss b/htdocs/theme/common/fontawesome-5/scss/_animated.scss
    new file mode 100644
    index 00000000000..7c7c0e173c5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_animated.scss
    @@ -0,0 +1,20 @@
    +// Animated Icons
    +// --------------------------
    +
    +.#{$fa-css-prefix}-spin {
    +  animation: fa-spin 2s infinite linear;
    +}
    +
    +.#{$fa-css-prefix}-pulse {
    +  animation: fa-spin 1s infinite steps(8);
    +}
    +
    +@keyframes fa-spin {
    +  0% {
    +    transform: rotate(0deg);
    +  }
    +
    +  100% {
    +    transform: rotate(360deg);
    +  }
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_bordered-pulled.scss b/htdocs/theme/common/fontawesome-5/scss/_bordered-pulled.scss
    new file mode 100644
    index 00000000000..c8c4274c409
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_bordered-pulled.scss
    @@ -0,0 +1,20 @@
    +// Bordered & Pulled
    +// -------------------------
    +
    +.#{$fa-css-prefix}-border {
    +  border: solid .08em $fa-border-color;
    +  border-radius: .1em;
    +  padding: .2em .25em .15em;
    +}
    +
    +.#{$fa-css-prefix}-pull-left { float: left; }
    +.#{$fa-css-prefix}-pull-right { float: right; }
    +
    +.#{$fa-css-prefix},
    +.fas,
    +.far,
    +.fal,
    +.fab {
    +  &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
    +  &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_core.scss b/htdocs/theme/common/fontawesome-5/scss/_core.scss
    new file mode 100644
    index 00000000000..a4ee7e8450b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_core.scss
    @@ -0,0 +1,20 @@
    +// Base Class Definition
    +// -------------------------
    +
    +.#{$fa-css-prefix},
    +.fas,
    +.far,
    +.fal,
    +.fab {
    +  -moz-osx-font-smoothing: grayscale;
    +  -webkit-font-smoothing: antialiased;
    +  display: inline-block;
    +  font-style: normal;
    +  font-variant: normal;
    +  text-rendering: auto;
    +  line-height: 1;
    +}
    +
    +%fa-icon {
    +  @include fa-icon;
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_fixed-width.scss b/htdocs/theme/common/fontawesome-5/scss/_fixed-width.scss
    new file mode 100644
    index 00000000000..5b33eb49aa9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_fixed-width.scss
    @@ -0,0 +1,6 @@
    +// Fixed Width Icons
    +// -------------------------
    +.#{$fa-css-prefix}-fw {
    +  text-align: center;
    +  width: (20em / 16);
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_icons.scss b/htdocs/theme/common/fontawesome-5/scss/_icons.scss
    new file mode 100644
    index 00000000000..4c7bf8e361a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_icons.scss
    @@ -0,0 +1,1241 @@
    +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
    +readers do not read off random characters that represent icons */
    +
    +.#{$fa-css-prefix}-500px:before { content: fa-content($fa-var-500px); }
    +.#{$fa-css-prefix}-accessible-icon:before { content: fa-content($fa-var-accessible-icon); }
    +.#{$fa-css-prefix}-accusoft:before { content: fa-content($fa-var-accusoft); }
    +.#{$fa-css-prefix}-acquisitions-incorporated:before { content: fa-content($fa-var-acquisitions-incorporated); }
    +.#{$fa-css-prefix}-ad:before { content: fa-content($fa-var-ad); }
    +.#{$fa-css-prefix}-address-book:before { content: fa-content($fa-var-address-book); }
    +.#{$fa-css-prefix}-address-card:before { content: fa-content($fa-var-address-card); }
    +.#{$fa-css-prefix}-adjust:before { content: fa-content($fa-var-adjust); }
    +.#{$fa-css-prefix}-adn:before { content: fa-content($fa-var-adn); }
    +.#{$fa-css-prefix}-adversal:before { content: fa-content($fa-var-adversal); }
    +.#{$fa-css-prefix}-affiliatetheme:before { content: fa-content($fa-var-affiliatetheme); }
    +.#{$fa-css-prefix}-air-freshener:before { content: fa-content($fa-var-air-freshener); }
    +.#{$fa-css-prefix}-algolia:before { content: fa-content($fa-var-algolia); }
    +.#{$fa-css-prefix}-align-center:before { content: fa-content($fa-var-align-center); }
    +.#{$fa-css-prefix}-align-justify:before { content: fa-content($fa-var-align-justify); }
    +.#{$fa-css-prefix}-align-left:before { content: fa-content($fa-var-align-left); }
    +.#{$fa-css-prefix}-align-right:before { content: fa-content($fa-var-align-right); }
    +.#{$fa-css-prefix}-alipay:before { content: fa-content($fa-var-alipay); }
    +.#{$fa-css-prefix}-allergies:before { content: fa-content($fa-var-allergies); }
    +.#{$fa-css-prefix}-amazon:before { content: fa-content($fa-var-amazon); }
    +.#{$fa-css-prefix}-amazon-pay:before { content: fa-content($fa-var-amazon-pay); }
    +.#{$fa-css-prefix}-ambulance:before { content: fa-content($fa-var-ambulance); }
    +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); }
    +.#{$fa-css-prefix}-amilia:before { content: fa-content($fa-var-amilia); }
    +.#{$fa-css-prefix}-anchor:before { content: fa-content($fa-var-anchor); }
    +.#{$fa-css-prefix}-android:before { content: fa-content($fa-var-android); }
    +.#{$fa-css-prefix}-angellist:before { content: fa-content($fa-var-angellist); }
    +.#{$fa-css-prefix}-angle-double-down:before { content: fa-content($fa-var-angle-double-down); }
    +.#{$fa-css-prefix}-angle-double-left:before { content: fa-content($fa-var-angle-double-left); }
    +.#{$fa-css-prefix}-angle-double-right:before { content: fa-content($fa-var-angle-double-right); }
    +.#{$fa-css-prefix}-angle-double-up:before { content: fa-content($fa-var-angle-double-up); }
    +.#{$fa-css-prefix}-angle-down:before { content: fa-content($fa-var-angle-down); }
    +.#{$fa-css-prefix}-angle-left:before { content: fa-content($fa-var-angle-left); }
    +.#{$fa-css-prefix}-angle-right:before { content: fa-content($fa-var-angle-right); }
    +.#{$fa-css-prefix}-angle-up:before { content: fa-content($fa-var-angle-up); }
    +.#{$fa-css-prefix}-angry:before { content: fa-content($fa-var-angry); }
    +.#{$fa-css-prefix}-angrycreative:before { content: fa-content($fa-var-angrycreative); }
    +.#{$fa-css-prefix}-angular:before { content: fa-content($fa-var-angular); }
    +.#{$fa-css-prefix}-ankh:before { content: fa-content($fa-var-ankh); }
    +.#{$fa-css-prefix}-app-store:before { content: fa-content($fa-var-app-store); }
    +.#{$fa-css-prefix}-app-store-ios:before { content: fa-content($fa-var-app-store-ios); }
    +.#{$fa-css-prefix}-apper:before { content: fa-content($fa-var-apper); }
    +.#{$fa-css-prefix}-apple:before { content: fa-content($fa-var-apple); }
    +.#{$fa-css-prefix}-apple-alt:before { content: fa-content($fa-var-apple-alt); }
    +.#{$fa-css-prefix}-apple-pay:before { content: fa-content($fa-var-apple-pay); }
    +.#{$fa-css-prefix}-archive:before { content: fa-content($fa-var-archive); }
    +.#{$fa-css-prefix}-archway:before { content: fa-content($fa-var-archway); }
    +.#{$fa-css-prefix}-arrow-alt-circle-down:before { content: fa-content($fa-var-arrow-alt-circle-down); }
    +.#{$fa-css-prefix}-arrow-alt-circle-left:before { content: fa-content($fa-var-arrow-alt-circle-left); }
    +.#{$fa-css-prefix}-arrow-alt-circle-right:before { content: fa-content($fa-var-arrow-alt-circle-right); }
    +.#{$fa-css-prefix}-arrow-alt-circle-up:before { content: fa-content($fa-var-arrow-alt-circle-up); }
    +.#{$fa-css-prefix}-arrow-circle-down:before { content: fa-content($fa-var-arrow-circle-down); }
    +.#{$fa-css-prefix}-arrow-circle-left:before { content: fa-content($fa-var-arrow-circle-left); }
    +.#{$fa-css-prefix}-arrow-circle-right:before { content: fa-content($fa-var-arrow-circle-right); }
    +.#{$fa-css-prefix}-arrow-circle-up:before { content: fa-content($fa-var-arrow-circle-up); }
    +.#{$fa-css-prefix}-arrow-down:before { content: fa-content($fa-var-arrow-down); }
    +.#{$fa-css-prefix}-arrow-left:before { content: fa-content($fa-var-arrow-left); }
    +.#{$fa-css-prefix}-arrow-right:before { content: fa-content($fa-var-arrow-right); }
    +.#{$fa-css-prefix}-arrow-up:before { content: fa-content($fa-var-arrow-up); }
    +.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-arrows-alt); }
    +.#{$fa-css-prefix}-arrows-alt-h:before { content: fa-content($fa-var-arrows-alt-h); }
    +.#{$fa-css-prefix}-arrows-alt-v:before { content: fa-content($fa-var-arrows-alt-v); }
    +.#{$fa-css-prefix}-assistive-listening-systems:before { content: fa-content($fa-var-assistive-listening-systems); }
    +.#{$fa-css-prefix}-asterisk:before { content: fa-content($fa-var-asterisk); }
    +.#{$fa-css-prefix}-asymmetrik:before { content: fa-content($fa-var-asymmetrik); }
    +.#{$fa-css-prefix}-at:before { content: fa-content($fa-var-at); }
    +.#{$fa-css-prefix}-atlas:before { content: fa-content($fa-var-atlas); }
    +.#{$fa-css-prefix}-atom:before { content: fa-content($fa-var-atom); }
    +.#{$fa-css-prefix}-audible:before { content: fa-content($fa-var-audible); }
    +.#{$fa-css-prefix}-audio-description:before { content: fa-content($fa-var-audio-description); }
    +.#{$fa-css-prefix}-autoprefixer:before { content: fa-content($fa-var-autoprefixer); }
    +.#{$fa-css-prefix}-avianex:before { content: fa-content($fa-var-avianex); }
    +.#{$fa-css-prefix}-aviato:before { content: fa-content($fa-var-aviato); }
    +.#{$fa-css-prefix}-award:before { content: fa-content($fa-var-award); }
    +.#{$fa-css-prefix}-aws:before { content: fa-content($fa-var-aws); }
    +.#{$fa-css-prefix}-backspace:before { content: fa-content($fa-var-backspace); }
    +.#{$fa-css-prefix}-backward:before { content: fa-content($fa-var-backward); }
    +.#{$fa-css-prefix}-balance-scale:before { content: fa-content($fa-var-balance-scale); }
    +.#{$fa-css-prefix}-ban:before { content: fa-content($fa-var-ban); }
    +.#{$fa-css-prefix}-band-aid:before { content: fa-content($fa-var-band-aid); }
    +.#{$fa-css-prefix}-bandcamp:before { content: fa-content($fa-var-bandcamp); }
    +.#{$fa-css-prefix}-barcode:before { content: fa-content($fa-var-barcode); }
    +.#{$fa-css-prefix}-bars:before { content: fa-content($fa-var-bars); }
    +.#{$fa-css-prefix}-baseball-ball:before { content: fa-content($fa-var-baseball-ball); }
    +.#{$fa-css-prefix}-basketball-ball:before { content: fa-content($fa-var-basketball-ball); }
    +.#{$fa-css-prefix}-bath:before { content: fa-content($fa-var-bath); }
    +.#{$fa-css-prefix}-battery-empty:before { content: fa-content($fa-var-battery-empty); }
    +.#{$fa-css-prefix}-battery-full:before { content: fa-content($fa-var-battery-full); }
    +.#{$fa-css-prefix}-battery-half:before { content: fa-content($fa-var-battery-half); }
    +.#{$fa-css-prefix}-battery-quarter:before { content: fa-content($fa-var-battery-quarter); }
    +.#{$fa-css-prefix}-battery-three-quarters:before { content: fa-content($fa-var-battery-three-quarters); }
    +.#{$fa-css-prefix}-bed:before { content: fa-content($fa-var-bed); }
    +.#{$fa-css-prefix}-beer:before { content: fa-content($fa-var-beer); }
    +.#{$fa-css-prefix}-behance:before { content: fa-content($fa-var-behance); }
    +.#{$fa-css-prefix}-behance-square:before { content: fa-content($fa-var-behance-square); }
    +.#{$fa-css-prefix}-bell:before { content: fa-content($fa-var-bell); }
    +.#{$fa-css-prefix}-bell-slash:before { content: fa-content($fa-var-bell-slash); }
    +.#{$fa-css-prefix}-bezier-curve:before { content: fa-content($fa-var-bezier-curve); }
    +.#{$fa-css-prefix}-bible:before { content: fa-content($fa-var-bible); }
    +.#{$fa-css-prefix}-bicycle:before { content: fa-content($fa-var-bicycle); }
    +.#{$fa-css-prefix}-bimobject:before { content: fa-content($fa-var-bimobject); }
    +.#{$fa-css-prefix}-binoculars:before { content: fa-content($fa-var-binoculars); }
    +.#{$fa-css-prefix}-birthday-cake:before { content: fa-content($fa-var-birthday-cake); }
    +.#{$fa-css-prefix}-bitbucket:before { content: fa-content($fa-var-bitbucket); }
    +.#{$fa-css-prefix}-bitcoin:before { content: fa-content($fa-var-bitcoin); }
    +.#{$fa-css-prefix}-bity:before { content: fa-content($fa-var-bity); }
    +.#{$fa-css-prefix}-black-tie:before { content: fa-content($fa-var-black-tie); }
    +.#{$fa-css-prefix}-blackberry:before { content: fa-content($fa-var-blackberry); }
    +.#{$fa-css-prefix}-blender:before { content: fa-content($fa-var-blender); }
    +.#{$fa-css-prefix}-blender-phone:before { content: fa-content($fa-var-blender-phone); }
    +.#{$fa-css-prefix}-blind:before { content: fa-content($fa-var-blind); }
    +.#{$fa-css-prefix}-blogger:before { content: fa-content($fa-var-blogger); }
    +.#{$fa-css-prefix}-blogger-b:before { content: fa-content($fa-var-blogger-b); }
    +.#{$fa-css-prefix}-bluetooth:before { content: fa-content($fa-var-bluetooth); }
    +.#{$fa-css-prefix}-bluetooth-b:before { content: fa-content($fa-var-bluetooth-b); }
    +.#{$fa-css-prefix}-bold:before { content: fa-content($fa-var-bold); }
    +.#{$fa-css-prefix}-bolt:before { content: fa-content($fa-var-bolt); }
    +.#{$fa-css-prefix}-bomb:before { content: fa-content($fa-var-bomb); }
    +.#{$fa-css-prefix}-bone:before { content: fa-content($fa-var-bone); }
    +.#{$fa-css-prefix}-bong:before { content: fa-content($fa-var-bong); }
    +.#{$fa-css-prefix}-book:before { content: fa-content($fa-var-book); }
    +.#{$fa-css-prefix}-book-dead:before { content: fa-content($fa-var-book-dead); }
    +.#{$fa-css-prefix}-book-open:before { content: fa-content($fa-var-book-open); }
    +.#{$fa-css-prefix}-book-reader:before { content: fa-content($fa-var-book-reader); }
    +.#{$fa-css-prefix}-bookmark:before { content: fa-content($fa-var-bookmark); }
    +.#{$fa-css-prefix}-bowling-ball:before { content: fa-content($fa-var-bowling-ball); }
    +.#{$fa-css-prefix}-box:before { content: fa-content($fa-var-box); }
    +.#{$fa-css-prefix}-box-open:before { content: fa-content($fa-var-box-open); }
    +.#{$fa-css-prefix}-boxes:before { content: fa-content($fa-var-boxes); }
    +.#{$fa-css-prefix}-braille:before { content: fa-content($fa-var-braille); }
    +.#{$fa-css-prefix}-brain:before { content: fa-content($fa-var-brain); }
    +.#{$fa-css-prefix}-briefcase:before { content: fa-content($fa-var-briefcase); }
    +.#{$fa-css-prefix}-briefcase-medical:before { content: fa-content($fa-var-briefcase-medical); }
    +.#{$fa-css-prefix}-broadcast-tower:before { content: fa-content($fa-var-broadcast-tower); }
    +.#{$fa-css-prefix}-broom:before { content: fa-content($fa-var-broom); }
    +.#{$fa-css-prefix}-brush:before { content: fa-content($fa-var-brush); }
    +.#{$fa-css-prefix}-btc:before { content: fa-content($fa-var-btc); }
    +.#{$fa-css-prefix}-bug:before { content: fa-content($fa-var-bug); }
    +.#{$fa-css-prefix}-building:before { content: fa-content($fa-var-building); }
    +.#{$fa-css-prefix}-bullhorn:before { content: fa-content($fa-var-bullhorn); }
    +.#{$fa-css-prefix}-bullseye:before { content: fa-content($fa-var-bullseye); }
    +.#{$fa-css-prefix}-burn:before { content: fa-content($fa-var-burn); }
    +.#{$fa-css-prefix}-buromobelexperte:before { content: fa-content($fa-var-buromobelexperte); }
    +.#{$fa-css-prefix}-bus:before { content: fa-content($fa-var-bus); }
    +.#{$fa-css-prefix}-bus-alt:before { content: fa-content($fa-var-bus-alt); }
    +.#{$fa-css-prefix}-business-time:before { content: fa-content($fa-var-business-time); }
    +.#{$fa-css-prefix}-buysellads:before { content: fa-content($fa-var-buysellads); }
    +.#{$fa-css-prefix}-calculator:before { content: fa-content($fa-var-calculator); }
    +.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar); }
    +.#{$fa-css-prefix}-calendar-alt:before { content: fa-content($fa-var-calendar-alt); }
    +.#{$fa-css-prefix}-calendar-check:before { content: fa-content($fa-var-calendar-check); }
    +.#{$fa-css-prefix}-calendar-minus:before { content: fa-content($fa-var-calendar-minus); }
    +.#{$fa-css-prefix}-calendar-plus:before { content: fa-content($fa-var-calendar-plus); }
    +.#{$fa-css-prefix}-calendar-times:before { content: fa-content($fa-var-calendar-times); }
    +.#{$fa-css-prefix}-camera:before { content: fa-content($fa-var-camera); }
    +.#{$fa-css-prefix}-camera-retro:before { content: fa-content($fa-var-camera-retro); }
    +.#{$fa-css-prefix}-campground:before { content: fa-content($fa-var-campground); }
    +.#{$fa-css-prefix}-cannabis:before { content: fa-content($fa-var-cannabis); }
    +.#{$fa-css-prefix}-capsules:before { content: fa-content($fa-var-capsules); }
    +.#{$fa-css-prefix}-car:before { content: fa-content($fa-var-car); }
    +.#{$fa-css-prefix}-car-alt:before { content: fa-content($fa-var-car-alt); }
    +.#{$fa-css-prefix}-car-battery:before { content: fa-content($fa-var-car-battery); }
    +.#{$fa-css-prefix}-car-crash:before { content: fa-content($fa-var-car-crash); }
    +.#{$fa-css-prefix}-car-side:before { content: fa-content($fa-var-car-side); }
    +.#{$fa-css-prefix}-caret-down:before { content: fa-content($fa-var-caret-down); }
    +.#{$fa-css-prefix}-caret-left:before { content: fa-content($fa-var-caret-left); }
    +.#{$fa-css-prefix}-caret-right:before { content: fa-content($fa-var-caret-right); }
    +.#{$fa-css-prefix}-caret-square-down:before { content: fa-content($fa-var-caret-square-down); }
    +.#{$fa-css-prefix}-caret-square-left:before { content: fa-content($fa-var-caret-square-left); }
    +.#{$fa-css-prefix}-caret-square-right:before { content: fa-content($fa-var-caret-square-right); }
    +.#{$fa-css-prefix}-caret-square-up:before { content: fa-content($fa-var-caret-square-up); }
    +.#{$fa-css-prefix}-caret-up:before { content: fa-content($fa-var-caret-up); }
    +.#{$fa-css-prefix}-cart-arrow-down:before { content: fa-content($fa-var-cart-arrow-down); }
    +.#{$fa-css-prefix}-cart-plus:before { content: fa-content($fa-var-cart-plus); }
    +.#{$fa-css-prefix}-cat:before { content: fa-content($fa-var-cat); }
    +.#{$fa-css-prefix}-cc-amazon-pay:before { content: fa-content($fa-var-cc-amazon-pay); }
    +.#{$fa-css-prefix}-cc-amex:before { content: fa-content($fa-var-cc-amex); }
    +.#{$fa-css-prefix}-cc-apple-pay:before { content: fa-content($fa-var-cc-apple-pay); }
    +.#{$fa-css-prefix}-cc-diners-club:before { content: fa-content($fa-var-cc-diners-club); }
    +.#{$fa-css-prefix}-cc-discover:before { content: fa-content($fa-var-cc-discover); }
    +.#{$fa-css-prefix}-cc-jcb:before { content: fa-content($fa-var-cc-jcb); }
    +.#{$fa-css-prefix}-cc-mastercard:before { content: fa-content($fa-var-cc-mastercard); }
    +.#{$fa-css-prefix}-cc-paypal:before { content: fa-content($fa-var-cc-paypal); }
    +.#{$fa-css-prefix}-cc-stripe:before { content: fa-content($fa-var-cc-stripe); }
    +.#{$fa-css-prefix}-cc-visa:before { content: fa-content($fa-var-cc-visa); }
    +.#{$fa-css-prefix}-centercode:before { content: fa-content($fa-var-centercode); }
    +.#{$fa-css-prefix}-certificate:before { content: fa-content($fa-var-certificate); }
    +.#{$fa-css-prefix}-chair:before { content: fa-content($fa-var-chair); }
    +.#{$fa-css-prefix}-chalkboard:before { content: fa-content($fa-var-chalkboard); }
    +.#{$fa-css-prefix}-chalkboard-teacher:before { content: fa-content($fa-var-chalkboard-teacher); }
    +.#{$fa-css-prefix}-charging-station:before { content: fa-content($fa-var-charging-station); }
    +.#{$fa-css-prefix}-chart-area:before { content: fa-content($fa-var-chart-area); }
    +.#{$fa-css-prefix}-chart-bar:before { content: fa-content($fa-var-chart-bar); }
    +.#{$fa-css-prefix}-chart-line:before { content: fa-content($fa-var-chart-line); }
    +.#{$fa-css-prefix}-chart-pie:before { content: fa-content($fa-var-chart-pie); }
    +.#{$fa-css-prefix}-check:before { content: fa-content($fa-var-check); }
    +.#{$fa-css-prefix}-check-circle:before { content: fa-content($fa-var-check-circle); }
    +.#{$fa-css-prefix}-check-double:before { content: fa-content($fa-var-check-double); }
    +.#{$fa-css-prefix}-check-square:before { content: fa-content($fa-var-check-square); }
    +.#{$fa-css-prefix}-chess:before { content: fa-content($fa-var-chess); }
    +.#{$fa-css-prefix}-chess-bishop:before { content: fa-content($fa-var-chess-bishop); }
    +.#{$fa-css-prefix}-chess-board:before { content: fa-content($fa-var-chess-board); }
    +.#{$fa-css-prefix}-chess-king:before { content: fa-content($fa-var-chess-king); }
    +.#{$fa-css-prefix}-chess-knight:before { content: fa-content($fa-var-chess-knight); }
    +.#{$fa-css-prefix}-chess-pawn:before { content: fa-content($fa-var-chess-pawn); }
    +.#{$fa-css-prefix}-chess-queen:before { content: fa-content($fa-var-chess-queen); }
    +.#{$fa-css-prefix}-chess-rook:before { content: fa-content($fa-var-chess-rook); }
    +.#{$fa-css-prefix}-chevron-circle-down:before { content: fa-content($fa-var-chevron-circle-down); }
    +.#{$fa-css-prefix}-chevron-circle-left:before { content: fa-content($fa-var-chevron-circle-left); }
    +.#{$fa-css-prefix}-chevron-circle-right:before { content: fa-content($fa-var-chevron-circle-right); }
    +.#{$fa-css-prefix}-chevron-circle-up:before { content: fa-content($fa-var-chevron-circle-up); }
    +.#{$fa-css-prefix}-chevron-down:before { content: fa-content($fa-var-chevron-down); }
    +.#{$fa-css-prefix}-chevron-left:before { content: fa-content($fa-var-chevron-left); }
    +.#{$fa-css-prefix}-chevron-right:before { content: fa-content($fa-var-chevron-right); }
    +.#{$fa-css-prefix}-chevron-up:before { content: fa-content($fa-var-chevron-up); }
    +.#{$fa-css-prefix}-child:before { content: fa-content($fa-var-child); }
    +.#{$fa-css-prefix}-chrome:before { content: fa-content($fa-var-chrome); }
    +.#{$fa-css-prefix}-church:before { content: fa-content($fa-var-church); }
    +.#{$fa-css-prefix}-circle:before { content: fa-content($fa-var-circle); }
    +.#{$fa-css-prefix}-circle-notch:before { content: fa-content($fa-var-circle-notch); }
    +.#{$fa-css-prefix}-city:before { content: fa-content($fa-var-city); }
    +.#{$fa-css-prefix}-clipboard:before { content: fa-content($fa-var-clipboard); }
    +.#{$fa-css-prefix}-clipboard-check:before { content: fa-content($fa-var-clipboard-check); }
    +.#{$fa-css-prefix}-clipboard-list:before { content: fa-content($fa-var-clipboard-list); }
    +.#{$fa-css-prefix}-clock:before { content: fa-content($fa-var-clock); }
    +.#{$fa-css-prefix}-clone:before { content: fa-content($fa-var-clone); }
    +.#{$fa-css-prefix}-closed-captioning:before { content: fa-content($fa-var-closed-captioning); }
    +.#{$fa-css-prefix}-cloud:before { content: fa-content($fa-var-cloud); }
    +.#{$fa-css-prefix}-cloud-download-alt:before { content: fa-content($fa-var-cloud-download-alt); }
    +.#{$fa-css-prefix}-cloud-moon:before { content: fa-content($fa-var-cloud-moon); }
    +.#{$fa-css-prefix}-cloud-sun:before { content: fa-content($fa-var-cloud-sun); }
    +.#{$fa-css-prefix}-cloud-upload-alt:before { content: fa-content($fa-var-cloud-upload-alt); }
    +.#{$fa-css-prefix}-cloudscale:before { content: fa-content($fa-var-cloudscale); }
    +.#{$fa-css-prefix}-cloudsmith:before { content: fa-content($fa-var-cloudsmith); }
    +.#{$fa-css-prefix}-cloudversify:before { content: fa-content($fa-var-cloudversify); }
    +.#{$fa-css-prefix}-cocktail:before { content: fa-content($fa-var-cocktail); }
    +.#{$fa-css-prefix}-code:before { content: fa-content($fa-var-code); }
    +.#{$fa-css-prefix}-code-branch:before { content: fa-content($fa-var-code-branch); }
    +.#{$fa-css-prefix}-codepen:before { content: fa-content($fa-var-codepen); }
    +.#{$fa-css-prefix}-codiepie:before { content: fa-content($fa-var-codiepie); }
    +.#{$fa-css-prefix}-coffee:before { content: fa-content($fa-var-coffee); }
    +.#{$fa-css-prefix}-cog:before { content: fa-content($fa-var-cog); }
    +.#{$fa-css-prefix}-cogs:before { content: fa-content($fa-var-cogs); }
    +.#{$fa-css-prefix}-coins:before { content: fa-content($fa-var-coins); }
    +.#{$fa-css-prefix}-columns:before { content: fa-content($fa-var-columns); }
    +.#{$fa-css-prefix}-comment:before { content: fa-content($fa-var-comment); }
    +.#{$fa-css-prefix}-comment-alt:before { content: fa-content($fa-var-comment-alt); }
    +.#{$fa-css-prefix}-comment-dollar:before { content: fa-content($fa-var-comment-dollar); }
    +.#{$fa-css-prefix}-comment-dots:before { content: fa-content($fa-var-comment-dots); }
    +.#{$fa-css-prefix}-comment-slash:before { content: fa-content($fa-var-comment-slash); }
    +.#{$fa-css-prefix}-comments:before { content: fa-content($fa-var-comments); }
    +.#{$fa-css-prefix}-comments-dollar:before { content: fa-content($fa-var-comments-dollar); }
    +.#{$fa-css-prefix}-compact-disc:before { content: fa-content($fa-var-compact-disc); }
    +.#{$fa-css-prefix}-compass:before { content: fa-content($fa-var-compass); }
    +.#{$fa-css-prefix}-compress:before { content: fa-content($fa-var-compress); }
    +.#{$fa-css-prefix}-concierge-bell:before { content: fa-content($fa-var-concierge-bell); }
    +.#{$fa-css-prefix}-connectdevelop:before { content: fa-content($fa-var-connectdevelop); }
    +.#{$fa-css-prefix}-contao:before { content: fa-content($fa-var-contao); }
    +.#{$fa-css-prefix}-cookie:before { content: fa-content($fa-var-cookie); }
    +.#{$fa-css-prefix}-cookie-bite:before { content: fa-content($fa-var-cookie-bite); }
    +.#{$fa-css-prefix}-copy:before { content: fa-content($fa-var-copy); }
    +.#{$fa-css-prefix}-copyright:before { content: fa-content($fa-var-copyright); }
    +.#{$fa-css-prefix}-couch:before { content: fa-content($fa-var-couch); }
    +.#{$fa-css-prefix}-cpanel:before { content: fa-content($fa-var-cpanel); }
    +.#{$fa-css-prefix}-creative-commons:before { content: fa-content($fa-var-creative-commons); }
    +.#{$fa-css-prefix}-creative-commons-by:before { content: fa-content($fa-var-creative-commons-by); }
    +.#{$fa-css-prefix}-creative-commons-nc:before { content: fa-content($fa-var-creative-commons-nc); }
    +.#{$fa-css-prefix}-creative-commons-nc-eu:before { content: fa-content($fa-var-creative-commons-nc-eu); }
    +.#{$fa-css-prefix}-creative-commons-nc-jp:before { content: fa-content($fa-var-creative-commons-nc-jp); }
    +.#{$fa-css-prefix}-creative-commons-nd:before { content: fa-content($fa-var-creative-commons-nd); }
    +.#{$fa-css-prefix}-creative-commons-pd:before { content: fa-content($fa-var-creative-commons-pd); }
    +.#{$fa-css-prefix}-creative-commons-pd-alt:before { content: fa-content($fa-var-creative-commons-pd-alt); }
    +.#{$fa-css-prefix}-creative-commons-remix:before { content: fa-content($fa-var-creative-commons-remix); }
    +.#{$fa-css-prefix}-creative-commons-sa:before { content: fa-content($fa-var-creative-commons-sa); }
    +.#{$fa-css-prefix}-creative-commons-sampling:before { content: fa-content($fa-var-creative-commons-sampling); }
    +.#{$fa-css-prefix}-creative-commons-sampling-plus:before { content: fa-content($fa-var-creative-commons-sampling-plus); }
    +.#{$fa-css-prefix}-creative-commons-share:before { content: fa-content($fa-var-creative-commons-share); }
    +.#{$fa-css-prefix}-creative-commons-zero:before { content: fa-content($fa-var-creative-commons-zero); }
    +.#{$fa-css-prefix}-credit-card:before { content: fa-content($fa-var-credit-card); }
    +.#{$fa-css-prefix}-critical-role:before { content: fa-content($fa-var-critical-role); }
    +.#{$fa-css-prefix}-crop:before { content: fa-content($fa-var-crop); }
    +.#{$fa-css-prefix}-crop-alt:before { content: fa-content($fa-var-crop-alt); }
    +.#{$fa-css-prefix}-cross:before { content: fa-content($fa-var-cross); }
    +.#{$fa-css-prefix}-crosshairs:before { content: fa-content($fa-var-crosshairs); }
    +.#{$fa-css-prefix}-crow:before { content: fa-content($fa-var-crow); }
    +.#{$fa-css-prefix}-crown:before { content: fa-content($fa-var-crown); }
    +.#{$fa-css-prefix}-css3:before { content: fa-content($fa-var-css3); }
    +.#{$fa-css-prefix}-css3-alt:before { content: fa-content($fa-var-css3-alt); }
    +.#{$fa-css-prefix}-cube:before { content: fa-content($fa-var-cube); }
    +.#{$fa-css-prefix}-cubes:before { content: fa-content($fa-var-cubes); }
    +.#{$fa-css-prefix}-cut:before { content: fa-content($fa-var-cut); }
    +.#{$fa-css-prefix}-cuttlefish:before { content: fa-content($fa-var-cuttlefish); }
    +.#{$fa-css-prefix}-d-and-d:before { content: fa-content($fa-var-d-and-d); }
    +.#{$fa-css-prefix}-dashcube:before { content: fa-content($fa-var-dashcube); }
    +.#{$fa-css-prefix}-database:before { content: fa-content($fa-var-database); }
    +.#{$fa-css-prefix}-deaf:before { content: fa-content($fa-var-deaf); }
    +.#{$fa-css-prefix}-delicious:before { content: fa-content($fa-var-delicious); }
    +.#{$fa-css-prefix}-deploydog:before { content: fa-content($fa-var-deploydog); }
    +.#{$fa-css-prefix}-deskpro:before { content: fa-content($fa-var-deskpro); }
    +.#{$fa-css-prefix}-desktop:before { content: fa-content($fa-var-desktop); }
    +.#{$fa-css-prefix}-dev:before { content: fa-content($fa-var-dev); }
    +.#{$fa-css-prefix}-deviantart:before { content: fa-content($fa-var-deviantart); }
    +.#{$fa-css-prefix}-dharmachakra:before { content: fa-content($fa-var-dharmachakra); }
    +.#{$fa-css-prefix}-diagnoses:before { content: fa-content($fa-var-diagnoses); }
    +.#{$fa-css-prefix}-dice:before { content: fa-content($fa-var-dice); }
    +.#{$fa-css-prefix}-dice-d20:before { content: fa-content($fa-var-dice-d20); }
    +.#{$fa-css-prefix}-dice-d6:before { content: fa-content($fa-var-dice-d6); }
    +.#{$fa-css-prefix}-dice-five:before { content: fa-content($fa-var-dice-five); }
    +.#{$fa-css-prefix}-dice-four:before { content: fa-content($fa-var-dice-four); }
    +.#{$fa-css-prefix}-dice-one:before { content: fa-content($fa-var-dice-one); }
    +.#{$fa-css-prefix}-dice-six:before { content: fa-content($fa-var-dice-six); }
    +.#{$fa-css-prefix}-dice-three:before { content: fa-content($fa-var-dice-three); }
    +.#{$fa-css-prefix}-dice-two:before { content: fa-content($fa-var-dice-two); }
    +.#{$fa-css-prefix}-digg:before { content: fa-content($fa-var-digg); }
    +.#{$fa-css-prefix}-digital-ocean:before { content: fa-content($fa-var-digital-ocean); }
    +.#{$fa-css-prefix}-digital-tachograph:before { content: fa-content($fa-var-digital-tachograph); }
    +.#{$fa-css-prefix}-directions:before { content: fa-content($fa-var-directions); }
    +.#{$fa-css-prefix}-discord:before { content: fa-content($fa-var-discord); }
    +.#{$fa-css-prefix}-discourse:before { content: fa-content($fa-var-discourse); }
    +.#{$fa-css-prefix}-divide:before { content: fa-content($fa-var-divide); }
    +.#{$fa-css-prefix}-dizzy:before { content: fa-content($fa-var-dizzy); }
    +.#{$fa-css-prefix}-dna:before { content: fa-content($fa-var-dna); }
    +.#{$fa-css-prefix}-dochub:before { content: fa-content($fa-var-dochub); }
    +.#{$fa-css-prefix}-docker:before { content: fa-content($fa-var-docker); }
    +.#{$fa-css-prefix}-dog:before { content: fa-content($fa-var-dog); }
    +.#{$fa-css-prefix}-dollar-sign:before { content: fa-content($fa-var-dollar-sign); }
    +.#{$fa-css-prefix}-dolly:before { content: fa-content($fa-var-dolly); }
    +.#{$fa-css-prefix}-dolly-flatbed:before { content: fa-content($fa-var-dolly-flatbed); }
    +.#{$fa-css-prefix}-donate:before { content: fa-content($fa-var-donate); }
    +.#{$fa-css-prefix}-door-closed:before { content: fa-content($fa-var-door-closed); }
    +.#{$fa-css-prefix}-door-open:before { content: fa-content($fa-var-door-open); }
    +.#{$fa-css-prefix}-dot-circle:before { content: fa-content($fa-var-dot-circle); }
    +.#{$fa-css-prefix}-dove:before { content: fa-content($fa-var-dove); }
    +.#{$fa-css-prefix}-download:before { content: fa-content($fa-var-download); }
    +.#{$fa-css-prefix}-draft2digital:before { content: fa-content($fa-var-draft2digital); }
    +.#{$fa-css-prefix}-drafting-compass:before { content: fa-content($fa-var-drafting-compass); }
    +.#{$fa-css-prefix}-dragon:before { content: fa-content($fa-var-dragon); }
    +.#{$fa-css-prefix}-draw-polygon:before { content: fa-content($fa-var-draw-polygon); }
    +.#{$fa-css-prefix}-dribbble:before { content: fa-content($fa-var-dribbble); }
    +.#{$fa-css-prefix}-dribbble-square:before { content: fa-content($fa-var-dribbble-square); }
    +.#{$fa-css-prefix}-dropbox:before { content: fa-content($fa-var-dropbox); }
    +.#{$fa-css-prefix}-drum:before { content: fa-content($fa-var-drum); }
    +.#{$fa-css-prefix}-drum-steelpan:before { content: fa-content($fa-var-drum-steelpan); }
    +.#{$fa-css-prefix}-drumstick-bite:before { content: fa-content($fa-var-drumstick-bite); }
    +.#{$fa-css-prefix}-drupal:before { content: fa-content($fa-var-drupal); }
    +.#{$fa-css-prefix}-dumbbell:before { content: fa-content($fa-var-dumbbell); }
    +.#{$fa-css-prefix}-dungeon:before { content: fa-content($fa-var-dungeon); }
    +.#{$fa-css-prefix}-dyalog:before { content: fa-content($fa-var-dyalog); }
    +.#{$fa-css-prefix}-earlybirds:before { content: fa-content($fa-var-earlybirds); }
    +.#{$fa-css-prefix}-ebay:before { content: fa-content($fa-var-ebay); }
    +.#{$fa-css-prefix}-edge:before { content: fa-content($fa-var-edge); }
    +.#{$fa-css-prefix}-edit:before { content: fa-content($fa-var-edit); }
    +.#{$fa-css-prefix}-eject:before { content: fa-content($fa-var-eject); }
    +.#{$fa-css-prefix}-elementor:before { content: fa-content($fa-var-elementor); }
    +.#{$fa-css-prefix}-ellipsis-h:before { content: fa-content($fa-var-ellipsis-h); }
    +.#{$fa-css-prefix}-ellipsis-v:before { content: fa-content($fa-var-ellipsis-v); }
    +.#{$fa-css-prefix}-ello:before { content: fa-content($fa-var-ello); }
    +.#{$fa-css-prefix}-ember:before { content: fa-content($fa-var-ember); }
    +.#{$fa-css-prefix}-empire:before { content: fa-content($fa-var-empire); }
    +.#{$fa-css-prefix}-envelope:before { content: fa-content($fa-var-envelope); }
    +.#{$fa-css-prefix}-envelope-open:before { content: fa-content($fa-var-envelope-open); }
    +.#{$fa-css-prefix}-envelope-open-text:before { content: fa-content($fa-var-envelope-open-text); }
    +.#{$fa-css-prefix}-envelope-square:before { content: fa-content($fa-var-envelope-square); }
    +.#{$fa-css-prefix}-envira:before { content: fa-content($fa-var-envira); }
    +.#{$fa-css-prefix}-equals:before { content: fa-content($fa-var-equals); }
    +.#{$fa-css-prefix}-eraser:before { content: fa-content($fa-var-eraser); }
    +.#{$fa-css-prefix}-erlang:before { content: fa-content($fa-var-erlang); }
    +.#{$fa-css-prefix}-ethereum:before { content: fa-content($fa-var-ethereum); }
    +.#{$fa-css-prefix}-etsy:before { content: fa-content($fa-var-etsy); }
    +.#{$fa-css-prefix}-euro-sign:before { content: fa-content($fa-var-euro-sign); }
    +.#{$fa-css-prefix}-exchange-alt:before { content: fa-content($fa-var-exchange-alt); }
    +.#{$fa-css-prefix}-exclamation:before { content: fa-content($fa-var-exclamation); }
    +.#{$fa-css-prefix}-exclamation-circle:before { content: fa-content($fa-var-exclamation-circle); }
    +.#{$fa-css-prefix}-exclamation-triangle:before { content: fa-content($fa-var-exclamation-triangle); }
    +.#{$fa-css-prefix}-expand:before { content: fa-content($fa-var-expand); }
    +.#{$fa-css-prefix}-expand-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); }
    +.#{$fa-css-prefix}-expeditedssl:before { content: fa-content($fa-var-expeditedssl); }
    +.#{$fa-css-prefix}-external-link-alt:before { content: fa-content($fa-var-external-link-alt); }
    +.#{$fa-css-prefix}-external-link-square-alt:before { content: fa-content($fa-var-external-link-square-alt); }
    +.#{$fa-css-prefix}-eye:before { content: fa-content($fa-var-eye); }
    +.#{$fa-css-prefix}-eye-dropper:before { content: fa-content($fa-var-eye-dropper); }
    +.#{$fa-css-prefix}-eye-slash:before { content: fa-content($fa-var-eye-slash); }
    +.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook); }
    +.#{$fa-css-prefix}-facebook-f:before { content: fa-content($fa-var-facebook-f); }
    +.#{$fa-css-prefix}-facebook-messenger:before { content: fa-content($fa-var-facebook-messenger); }
    +.#{$fa-css-prefix}-facebook-square:before { content: fa-content($fa-var-facebook-square); }
    +.#{$fa-css-prefix}-fantasy-flight-games:before { content: fa-content($fa-var-fantasy-flight-games); }
    +.#{$fa-css-prefix}-fast-backward:before { content: fa-content($fa-var-fast-backward); }
    +.#{$fa-css-prefix}-fast-forward:before { content: fa-content($fa-var-fast-forward); }
    +.#{$fa-css-prefix}-fax:before { content: fa-content($fa-var-fax); }
    +.#{$fa-css-prefix}-feather:before { content: fa-content($fa-var-feather); }
    +.#{$fa-css-prefix}-feather-alt:before { content: fa-content($fa-var-feather-alt); }
    +.#{$fa-css-prefix}-female:before { content: fa-content($fa-var-female); }
    +.#{$fa-css-prefix}-fighter-jet:before { content: fa-content($fa-var-fighter-jet); }
    +.#{$fa-css-prefix}-file:before { content: fa-content($fa-var-file); }
    +.#{$fa-css-prefix}-file-alt:before { content: fa-content($fa-var-file-alt); }
    +.#{$fa-css-prefix}-file-archive:before { content: fa-content($fa-var-file-archive); }
    +.#{$fa-css-prefix}-file-audio:before { content: fa-content($fa-var-file-audio); }
    +.#{$fa-css-prefix}-file-code:before { content: fa-content($fa-var-file-code); }
    +.#{$fa-css-prefix}-file-contract:before { content: fa-content($fa-var-file-contract); }
    +.#{$fa-css-prefix}-file-csv:before { content: fa-content($fa-var-file-csv); }
    +.#{$fa-css-prefix}-file-download:before { content: fa-content($fa-var-file-download); }
    +.#{$fa-css-prefix}-file-excel:before { content: fa-content($fa-var-file-excel); }
    +.#{$fa-css-prefix}-file-export:before { content: fa-content($fa-var-file-export); }
    +.#{$fa-css-prefix}-file-image:before { content: fa-content($fa-var-file-image); }
    +.#{$fa-css-prefix}-file-import:before { content: fa-content($fa-var-file-import); }
    +.#{$fa-css-prefix}-file-invoice:before { content: fa-content($fa-var-file-invoice); }
    +.#{$fa-css-prefix}-file-invoice-dollar:before { content: fa-content($fa-var-file-invoice-dollar); }
    +.#{$fa-css-prefix}-file-medical:before { content: fa-content($fa-var-file-medical); }
    +.#{$fa-css-prefix}-file-medical-alt:before { content: fa-content($fa-var-file-medical-alt); }
    +.#{$fa-css-prefix}-file-pdf:before { content: fa-content($fa-var-file-pdf); }
    +.#{$fa-css-prefix}-file-powerpoint:before { content: fa-content($fa-var-file-powerpoint); }
    +.#{$fa-css-prefix}-file-prescription:before { content: fa-content($fa-var-file-prescription); }
    +.#{$fa-css-prefix}-file-signature:before { content: fa-content($fa-var-file-signature); }
    +.#{$fa-css-prefix}-file-upload:before { content: fa-content($fa-var-file-upload); }
    +.#{$fa-css-prefix}-file-video:before { content: fa-content($fa-var-file-video); }
    +.#{$fa-css-prefix}-file-word:before { content: fa-content($fa-var-file-word); }
    +.#{$fa-css-prefix}-fill:before { content: fa-content($fa-var-fill); }
    +.#{$fa-css-prefix}-fill-drip:before { content: fa-content($fa-var-fill-drip); }
    +.#{$fa-css-prefix}-film:before { content: fa-content($fa-var-film); }
    +.#{$fa-css-prefix}-filter:before { content: fa-content($fa-var-filter); }
    +.#{$fa-css-prefix}-fingerprint:before { content: fa-content($fa-var-fingerprint); }
    +.#{$fa-css-prefix}-fire:before { content: fa-content($fa-var-fire); }
    +.#{$fa-css-prefix}-fire-extinguisher:before { content: fa-content($fa-var-fire-extinguisher); }
    +.#{$fa-css-prefix}-firefox:before { content: fa-content($fa-var-firefox); }
    +.#{$fa-css-prefix}-first-aid:before { content: fa-content($fa-var-first-aid); }
    +.#{$fa-css-prefix}-first-order:before { content: fa-content($fa-var-first-order); }
    +.#{$fa-css-prefix}-first-order-alt:before { content: fa-content($fa-var-first-order-alt); }
    +.#{$fa-css-prefix}-firstdraft:before { content: fa-content($fa-var-firstdraft); }
    +.#{$fa-css-prefix}-fish:before { content: fa-content($fa-var-fish); }
    +.#{$fa-css-prefix}-fist-raised:before { content: fa-content($fa-var-fist-raised); }
    +.#{$fa-css-prefix}-flag:before { content: fa-content($fa-var-flag); }
    +.#{$fa-css-prefix}-flag-checkered:before { content: fa-content($fa-var-flag-checkered); }
    +.#{$fa-css-prefix}-flask:before { content: fa-content($fa-var-flask); }
    +.#{$fa-css-prefix}-flickr:before { content: fa-content($fa-var-flickr); }
    +.#{$fa-css-prefix}-flipboard:before { content: fa-content($fa-var-flipboard); }
    +.#{$fa-css-prefix}-flushed:before { content: fa-content($fa-var-flushed); }
    +.#{$fa-css-prefix}-fly:before { content: fa-content($fa-var-fly); }
    +.#{$fa-css-prefix}-folder:before { content: fa-content($fa-var-folder); }
    +.#{$fa-css-prefix}-folder-minus:before { content: fa-content($fa-var-folder-minus); }
    +.#{$fa-css-prefix}-folder-open:before { content: fa-content($fa-var-folder-open); }
    +.#{$fa-css-prefix}-folder-plus:before { content: fa-content($fa-var-folder-plus); }
    +.#{$fa-css-prefix}-font:before { content: fa-content($fa-var-font); }
    +.#{$fa-css-prefix}-font-awesome:before { content: fa-content($fa-var-font-awesome); }
    +.#{$fa-css-prefix}-font-awesome-alt:before { content: fa-content($fa-var-font-awesome-alt); }
    +.#{$fa-css-prefix}-font-awesome-flag:before { content: fa-content($fa-var-font-awesome-flag); }
    +.#{$fa-css-prefix}-font-awesome-logo-full:before { content: fa-content($fa-var-font-awesome-logo-full); }
    +.#{$fa-css-prefix}-fonticons:before { content: fa-content($fa-var-fonticons); }
    +.#{$fa-css-prefix}-fonticons-fi:before { content: fa-content($fa-var-fonticons-fi); }
    +.#{$fa-css-prefix}-football-ball:before { content: fa-content($fa-var-football-ball); }
    +.#{$fa-css-prefix}-fort-awesome:before { content: fa-content($fa-var-fort-awesome); }
    +.#{$fa-css-prefix}-fort-awesome-alt:before { content: fa-content($fa-var-fort-awesome-alt); }
    +.#{$fa-css-prefix}-forumbee:before { content: fa-content($fa-var-forumbee); }
    +.#{$fa-css-prefix}-forward:before { content: fa-content($fa-var-forward); }
    +.#{$fa-css-prefix}-foursquare:before { content: fa-content($fa-var-foursquare); }
    +.#{$fa-css-prefix}-free-code-camp:before { content: fa-content($fa-var-free-code-camp); }
    +.#{$fa-css-prefix}-freebsd:before { content: fa-content($fa-var-freebsd); }
    +.#{$fa-css-prefix}-frog:before { content: fa-content($fa-var-frog); }
    +.#{$fa-css-prefix}-frown:before { content: fa-content($fa-var-frown); }
    +.#{$fa-css-prefix}-frown-open:before { content: fa-content($fa-var-frown-open); }
    +.#{$fa-css-prefix}-fulcrum:before { content: fa-content($fa-var-fulcrum); }
    +.#{$fa-css-prefix}-funnel-dollar:before { content: fa-content($fa-var-funnel-dollar); }
    +.#{$fa-css-prefix}-futbol:before { content: fa-content($fa-var-futbol); }
    +.#{$fa-css-prefix}-galactic-republic:before { content: fa-content($fa-var-galactic-republic); }
    +.#{$fa-css-prefix}-galactic-senate:before { content: fa-content($fa-var-galactic-senate); }
    +.#{$fa-css-prefix}-gamepad:before { content: fa-content($fa-var-gamepad); }
    +.#{$fa-css-prefix}-gas-pump:before { content: fa-content($fa-var-gas-pump); }
    +.#{$fa-css-prefix}-gavel:before { content: fa-content($fa-var-gavel); }
    +.#{$fa-css-prefix}-gem:before { content: fa-content($fa-var-gem); }
    +.#{$fa-css-prefix}-genderless:before { content: fa-content($fa-var-genderless); }
    +.#{$fa-css-prefix}-get-pocket:before { content: fa-content($fa-var-get-pocket); }
    +.#{$fa-css-prefix}-gg:before { content: fa-content($fa-var-gg); }
    +.#{$fa-css-prefix}-gg-circle:before { content: fa-content($fa-var-gg-circle); }
    +.#{$fa-css-prefix}-ghost:before { content: fa-content($fa-var-ghost); }
    +.#{$fa-css-prefix}-gift:before { content: fa-content($fa-var-gift); }
    +.#{$fa-css-prefix}-git:before { content: fa-content($fa-var-git); }
    +.#{$fa-css-prefix}-git-square:before { content: fa-content($fa-var-git-square); }
    +.#{$fa-css-prefix}-github:before { content: fa-content($fa-var-github); }
    +.#{$fa-css-prefix}-github-alt:before { content: fa-content($fa-var-github-alt); }
    +.#{$fa-css-prefix}-github-square:before { content: fa-content($fa-var-github-square); }
    +.#{$fa-css-prefix}-gitkraken:before { content: fa-content($fa-var-gitkraken); }
    +.#{$fa-css-prefix}-gitlab:before { content: fa-content($fa-var-gitlab); }
    +.#{$fa-css-prefix}-gitter:before { content: fa-content($fa-var-gitter); }
    +.#{$fa-css-prefix}-glass-martini:before { content: fa-content($fa-var-glass-martini); }
    +.#{$fa-css-prefix}-glass-martini-alt:before { content: fa-content($fa-var-glass-martini-alt); }
    +.#{$fa-css-prefix}-glasses:before { content: fa-content($fa-var-glasses); }
    +.#{$fa-css-prefix}-glide:before { content: fa-content($fa-var-glide); }
    +.#{$fa-css-prefix}-glide-g:before { content: fa-content($fa-var-glide-g); }
    +.#{$fa-css-prefix}-globe:before { content: fa-content($fa-var-globe); }
    +.#{$fa-css-prefix}-globe-africa:before { content: fa-content($fa-var-globe-africa); }
    +.#{$fa-css-prefix}-globe-americas:before { content: fa-content($fa-var-globe-americas); }
    +.#{$fa-css-prefix}-globe-asia:before { content: fa-content($fa-var-globe-asia); }
    +.#{$fa-css-prefix}-gofore:before { content: fa-content($fa-var-gofore); }
    +.#{$fa-css-prefix}-golf-ball:before { content: fa-content($fa-var-golf-ball); }
    +.#{$fa-css-prefix}-goodreads:before { content: fa-content($fa-var-goodreads); }
    +.#{$fa-css-prefix}-goodreads-g:before { content: fa-content($fa-var-goodreads-g); }
    +.#{$fa-css-prefix}-google:before { content: fa-content($fa-var-google); }
    +.#{$fa-css-prefix}-google-drive:before { content: fa-content($fa-var-google-drive); }
    +.#{$fa-css-prefix}-google-play:before { content: fa-content($fa-var-google-play); }
    +.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus); }
    +.#{$fa-css-prefix}-google-plus-g:before { content: fa-content($fa-var-google-plus-g); }
    +.#{$fa-css-prefix}-google-plus-square:before { content: fa-content($fa-var-google-plus-square); }
    +.#{$fa-css-prefix}-google-wallet:before { content: fa-content($fa-var-google-wallet); }
    +.#{$fa-css-prefix}-gopuram:before { content: fa-content($fa-var-gopuram); }
    +.#{$fa-css-prefix}-graduation-cap:before { content: fa-content($fa-var-graduation-cap); }
    +.#{$fa-css-prefix}-gratipay:before { content: fa-content($fa-var-gratipay); }
    +.#{$fa-css-prefix}-grav:before { content: fa-content($fa-var-grav); }
    +.#{$fa-css-prefix}-greater-than:before { content: fa-content($fa-var-greater-than); }
    +.#{$fa-css-prefix}-greater-than-equal:before { content: fa-content($fa-var-greater-than-equal); }
    +.#{$fa-css-prefix}-grimace:before { content: fa-content($fa-var-grimace); }
    +.#{$fa-css-prefix}-grin:before { content: fa-content($fa-var-grin); }
    +.#{$fa-css-prefix}-grin-alt:before { content: fa-content($fa-var-grin-alt); }
    +.#{$fa-css-prefix}-grin-beam:before { content: fa-content($fa-var-grin-beam); }
    +.#{$fa-css-prefix}-grin-beam-sweat:before { content: fa-content($fa-var-grin-beam-sweat); }
    +.#{$fa-css-prefix}-grin-hearts:before { content: fa-content($fa-var-grin-hearts); }
    +.#{$fa-css-prefix}-grin-squint:before { content: fa-content($fa-var-grin-squint); }
    +.#{$fa-css-prefix}-grin-squint-tears:before { content: fa-content($fa-var-grin-squint-tears); }
    +.#{$fa-css-prefix}-grin-stars:before { content: fa-content($fa-var-grin-stars); }
    +.#{$fa-css-prefix}-grin-tears:before { content: fa-content($fa-var-grin-tears); }
    +.#{$fa-css-prefix}-grin-tongue:before { content: fa-content($fa-var-grin-tongue); }
    +.#{$fa-css-prefix}-grin-tongue-squint:before { content: fa-content($fa-var-grin-tongue-squint); }
    +.#{$fa-css-prefix}-grin-tongue-wink:before { content: fa-content($fa-var-grin-tongue-wink); }
    +.#{$fa-css-prefix}-grin-wink:before { content: fa-content($fa-var-grin-wink); }
    +.#{$fa-css-prefix}-grip-horizontal:before { content: fa-content($fa-var-grip-horizontal); }
    +.#{$fa-css-prefix}-grip-vertical:before { content: fa-content($fa-var-grip-vertical); }
    +.#{$fa-css-prefix}-gripfire:before { content: fa-content($fa-var-gripfire); }
    +.#{$fa-css-prefix}-grunt:before { content: fa-content($fa-var-grunt); }
    +.#{$fa-css-prefix}-gulp:before { content: fa-content($fa-var-gulp); }
    +.#{$fa-css-prefix}-h-square:before { content: fa-content($fa-var-h-square); }
    +.#{$fa-css-prefix}-hacker-news:before { content: fa-content($fa-var-hacker-news); }
    +.#{$fa-css-prefix}-hacker-news-square:before { content: fa-content($fa-var-hacker-news-square); }
    +.#{$fa-css-prefix}-hackerrank:before { content: fa-content($fa-var-hackerrank); }
    +.#{$fa-css-prefix}-hammer:before { content: fa-content($fa-var-hammer); }
    +.#{$fa-css-prefix}-hamsa:before { content: fa-content($fa-var-hamsa); }
    +.#{$fa-css-prefix}-hand-holding:before { content: fa-content($fa-var-hand-holding); }
    +.#{$fa-css-prefix}-hand-holding-heart:before { content: fa-content($fa-var-hand-holding-heart); }
    +.#{$fa-css-prefix}-hand-holding-usd:before { content: fa-content($fa-var-hand-holding-usd); }
    +.#{$fa-css-prefix}-hand-lizard:before { content: fa-content($fa-var-hand-lizard); }
    +.#{$fa-css-prefix}-hand-paper:before { content: fa-content($fa-var-hand-paper); }
    +.#{$fa-css-prefix}-hand-peace:before { content: fa-content($fa-var-hand-peace); }
    +.#{$fa-css-prefix}-hand-point-down:before { content: fa-content($fa-var-hand-point-down); }
    +.#{$fa-css-prefix}-hand-point-left:before { content: fa-content($fa-var-hand-point-left); }
    +.#{$fa-css-prefix}-hand-point-right:before { content: fa-content($fa-var-hand-point-right); }
    +.#{$fa-css-prefix}-hand-point-up:before { content: fa-content($fa-var-hand-point-up); }
    +.#{$fa-css-prefix}-hand-pointer:before { content: fa-content($fa-var-hand-pointer); }
    +.#{$fa-css-prefix}-hand-rock:before { content: fa-content($fa-var-hand-rock); }
    +.#{$fa-css-prefix}-hand-scissors:before { content: fa-content($fa-var-hand-scissors); }
    +.#{$fa-css-prefix}-hand-spock:before { content: fa-content($fa-var-hand-spock); }
    +.#{$fa-css-prefix}-hands:before { content: fa-content($fa-var-hands); }
    +.#{$fa-css-prefix}-hands-helping:before { content: fa-content($fa-var-hands-helping); }
    +.#{$fa-css-prefix}-handshake:before { content: fa-content($fa-var-handshake); }
    +.#{$fa-css-prefix}-hanukiah:before { content: fa-content($fa-var-hanukiah); }
    +.#{$fa-css-prefix}-hashtag:before { content: fa-content($fa-var-hashtag); }
    +.#{$fa-css-prefix}-hat-wizard:before { content: fa-content($fa-var-hat-wizard); }
    +.#{$fa-css-prefix}-haykal:before { content: fa-content($fa-var-haykal); }
    +.#{$fa-css-prefix}-hdd:before { content: fa-content($fa-var-hdd); }
    +.#{$fa-css-prefix}-heading:before { content: fa-content($fa-var-heading); }
    +.#{$fa-css-prefix}-headphones:before { content: fa-content($fa-var-headphones); }
    +.#{$fa-css-prefix}-headphones-alt:before { content: fa-content($fa-var-headphones-alt); }
    +.#{$fa-css-prefix}-headset:before { content: fa-content($fa-var-headset); }
    +.#{$fa-css-prefix}-heart:before { content: fa-content($fa-var-heart); }
    +.#{$fa-css-prefix}-heartbeat:before { content: fa-content($fa-var-heartbeat); }
    +.#{$fa-css-prefix}-helicopter:before { content: fa-content($fa-var-helicopter); }
    +.#{$fa-css-prefix}-highlighter:before { content: fa-content($fa-var-highlighter); }
    +.#{$fa-css-prefix}-hiking:before { content: fa-content($fa-var-hiking); }
    +.#{$fa-css-prefix}-hippo:before { content: fa-content($fa-var-hippo); }
    +.#{$fa-css-prefix}-hips:before { content: fa-content($fa-var-hips); }
    +.#{$fa-css-prefix}-hire-a-helper:before { content: fa-content($fa-var-hire-a-helper); }
    +.#{$fa-css-prefix}-history:before { content: fa-content($fa-var-history); }
    +.#{$fa-css-prefix}-hockey-puck:before { content: fa-content($fa-var-hockey-puck); }
    +.#{$fa-css-prefix}-home:before { content: fa-content($fa-var-home); }
    +.#{$fa-css-prefix}-hooli:before { content: fa-content($fa-var-hooli); }
    +.#{$fa-css-prefix}-hornbill:before { content: fa-content($fa-var-hornbill); }
    +.#{$fa-css-prefix}-horse:before { content: fa-content($fa-var-horse); }
    +.#{$fa-css-prefix}-hospital:before { content: fa-content($fa-var-hospital); }
    +.#{$fa-css-prefix}-hospital-alt:before { content: fa-content($fa-var-hospital-alt); }
    +.#{$fa-css-prefix}-hospital-symbol:before { content: fa-content($fa-var-hospital-symbol); }
    +.#{$fa-css-prefix}-hot-tub:before { content: fa-content($fa-var-hot-tub); }
    +.#{$fa-css-prefix}-hotel:before { content: fa-content($fa-var-hotel); }
    +.#{$fa-css-prefix}-hotjar:before { content: fa-content($fa-var-hotjar); }
    +.#{$fa-css-prefix}-hourglass:before { content: fa-content($fa-var-hourglass); }
    +.#{$fa-css-prefix}-hourglass-end:before { content: fa-content($fa-var-hourglass-end); }
    +.#{$fa-css-prefix}-hourglass-half:before { content: fa-content($fa-var-hourglass-half); }
    +.#{$fa-css-prefix}-hourglass-start:before { content: fa-content($fa-var-hourglass-start); }
    +.#{$fa-css-prefix}-house-damage:before { content: fa-content($fa-var-house-damage); }
    +.#{$fa-css-prefix}-houzz:before { content: fa-content($fa-var-houzz); }
    +.#{$fa-css-prefix}-hryvnia:before { content: fa-content($fa-var-hryvnia); }
    +.#{$fa-css-prefix}-html5:before { content: fa-content($fa-var-html5); }
    +.#{$fa-css-prefix}-hubspot:before { content: fa-content($fa-var-hubspot); }
    +.#{$fa-css-prefix}-i-cursor:before { content: fa-content($fa-var-i-cursor); }
    +.#{$fa-css-prefix}-id-badge:before { content: fa-content($fa-var-id-badge); }
    +.#{$fa-css-prefix}-id-card:before { content: fa-content($fa-var-id-card); }
    +.#{$fa-css-prefix}-id-card-alt:before { content: fa-content($fa-var-id-card-alt); }
    +.#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); }
    +.#{$fa-css-prefix}-images:before { content: fa-content($fa-var-images); }
    +.#{$fa-css-prefix}-imdb:before { content: fa-content($fa-var-imdb); }
    +.#{$fa-css-prefix}-inbox:before { content: fa-content($fa-var-inbox); }
    +.#{$fa-css-prefix}-indent:before { content: fa-content($fa-var-indent); }
    +.#{$fa-css-prefix}-industry:before { content: fa-content($fa-var-industry); }
    +.#{$fa-css-prefix}-infinity:before { content: fa-content($fa-var-infinity); }
    +.#{$fa-css-prefix}-info:before { content: fa-content($fa-var-info); }
    +.#{$fa-css-prefix}-info-circle:before { content: fa-content($fa-var-info-circle); }
    +.#{$fa-css-prefix}-instagram:before { content: fa-content($fa-var-instagram); }
    +.#{$fa-css-prefix}-internet-explorer:before { content: fa-content($fa-var-internet-explorer); }
    +.#{$fa-css-prefix}-ioxhost:before { content: fa-content($fa-var-ioxhost); }
    +.#{$fa-css-prefix}-italic:before { content: fa-content($fa-var-italic); }
    +.#{$fa-css-prefix}-itunes:before { content: fa-content($fa-var-itunes); }
    +.#{$fa-css-prefix}-itunes-note:before { content: fa-content($fa-var-itunes-note); }
    +.#{$fa-css-prefix}-java:before { content: fa-content($fa-var-java); }
    +.#{$fa-css-prefix}-jedi:before { content: fa-content($fa-var-jedi); }
    +.#{$fa-css-prefix}-jedi-order:before { content: fa-content($fa-var-jedi-order); }
    +.#{$fa-css-prefix}-jenkins:before { content: fa-content($fa-var-jenkins); }
    +.#{$fa-css-prefix}-joget:before { content: fa-content($fa-var-joget); }
    +.#{$fa-css-prefix}-joint:before { content: fa-content($fa-var-joint); }
    +.#{$fa-css-prefix}-joomla:before { content: fa-content($fa-var-joomla); }
    +.#{$fa-css-prefix}-journal-whills:before { content: fa-content($fa-var-journal-whills); }
    +.#{$fa-css-prefix}-js:before { content: fa-content($fa-var-js); }
    +.#{$fa-css-prefix}-js-square:before { content: fa-content($fa-var-js-square); }
    +.#{$fa-css-prefix}-jsfiddle:before { content: fa-content($fa-var-jsfiddle); }
    +.#{$fa-css-prefix}-kaaba:before { content: fa-content($fa-var-kaaba); }
    +.#{$fa-css-prefix}-kaggle:before { content: fa-content($fa-var-kaggle); }
    +.#{$fa-css-prefix}-key:before { content: fa-content($fa-var-key); }
    +.#{$fa-css-prefix}-keybase:before { content: fa-content($fa-var-keybase); }
    +.#{$fa-css-prefix}-keyboard:before { content: fa-content($fa-var-keyboard); }
    +.#{$fa-css-prefix}-keycdn:before { content: fa-content($fa-var-keycdn); }
    +.#{$fa-css-prefix}-khanda:before { content: fa-content($fa-var-khanda); }
    +.#{$fa-css-prefix}-kickstarter:before { content: fa-content($fa-var-kickstarter); }
    +.#{$fa-css-prefix}-kickstarter-k:before { content: fa-content($fa-var-kickstarter-k); }
    +.#{$fa-css-prefix}-kiss:before { content: fa-content($fa-var-kiss); }
    +.#{$fa-css-prefix}-kiss-beam:before { content: fa-content($fa-var-kiss-beam); }
    +.#{$fa-css-prefix}-kiss-wink-heart:before { content: fa-content($fa-var-kiss-wink-heart); }
    +.#{$fa-css-prefix}-kiwi-bird:before { content: fa-content($fa-var-kiwi-bird); }
    +.#{$fa-css-prefix}-korvue:before { content: fa-content($fa-var-korvue); }
    +.#{$fa-css-prefix}-landmark:before { content: fa-content($fa-var-landmark); }
    +.#{$fa-css-prefix}-language:before { content: fa-content($fa-var-language); }
    +.#{$fa-css-prefix}-laptop:before { content: fa-content($fa-var-laptop); }
    +.#{$fa-css-prefix}-laptop-code:before { content: fa-content($fa-var-laptop-code); }
    +.#{$fa-css-prefix}-laravel:before { content: fa-content($fa-var-laravel); }
    +.#{$fa-css-prefix}-lastfm:before { content: fa-content($fa-var-lastfm); }
    +.#{$fa-css-prefix}-lastfm-square:before { content: fa-content($fa-var-lastfm-square); }
    +.#{$fa-css-prefix}-laugh:before { content: fa-content($fa-var-laugh); }
    +.#{$fa-css-prefix}-laugh-beam:before { content: fa-content($fa-var-laugh-beam); }
    +.#{$fa-css-prefix}-laugh-squint:before { content: fa-content($fa-var-laugh-squint); }
    +.#{$fa-css-prefix}-laugh-wink:before { content: fa-content($fa-var-laugh-wink); }
    +.#{$fa-css-prefix}-layer-group:before { content: fa-content($fa-var-layer-group); }
    +.#{$fa-css-prefix}-leaf:before { content: fa-content($fa-var-leaf); }
    +.#{$fa-css-prefix}-leanpub:before { content: fa-content($fa-var-leanpub); }
    +.#{$fa-css-prefix}-lemon:before { content: fa-content($fa-var-lemon); }
    +.#{$fa-css-prefix}-less:before { content: fa-content($fa-var-less); }
    +.#{$fa-css-prefix}-less-than:before { content: fa-content($fa-var-less-than); }
    +.#{$fa-css-prefix}-less-than-equal:before { content: fa-content($fa-var-less-than-equal); }
    +.#{$fa-css-prefix}-level-down-alt:before { content: fa-content($fa-var-level-down-alt); }
    +.#{$fa-css-prefix}-level-up-alt:before { content: fa-content($fa-var-level-up-alt); }
    +.#{$fa-css-prefix}-life-ring:before { content: fa-content($fa-var-life-ring); }
    +.#{$fa-css-prefix}-lightbulb:before { content: fa-content($fa-var-lightbulb); }
    +.#{$fa-css-prefix}-line:before { content: fa-content($fa-var-line); }
    +.#{$fa-css-prefix}-link:before { content: fa-content($fa-var-link); }
    +.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin); }
    +.#{$fa-css-prefix}-linkedin-in:before { content: fa-content($fa-var-linkedin-in); }
    +.#{$fa-css-prefix}-linode:before { content: fa-content($fa-var-linode); }
    +.#{$fa-css-prefix}-linux:before { content: fa-content($fa-var-linux); }
    +.#{$fa-css-prefix}-lira-sign:before { content: fa-content($fa-var-lira-sign); }
    +.#{$fa-css-prefix}-list:before { content: fa-content($fa-var-list); }
    +.#{$fa-css-prefix}-list-alt:before { content: fa-content($fa-var-list-alt); }
    +.#{$fa-css-prefix}-list-ol:before { content: fa-content($fa-var-list-ol); }
    +.#{$fa-css-prefix}-list-ul:before { content: fa-content($fa-var-list-ul); }
    +.#{$fa-css-prefix}-location-arrow:before { content: fa-content($fa-var-location-arrow); }
    +.#{$fa-css-prefix}-lock:before { content: fa-content($fa-var-lock); }
    +.#{$fa-css-prefix}-lock-open:before { content: fa-content($fa-var-lock-open); }
    +.#{$fa-css-prefix}-long-arrow-alt-down:before { content: fa-content($fa-var-long-arrow-alt-down); }
    +.#{$fa-css-prefix}-long-arrow-alt-left:before { content: fa-content($fa-var-long-arrow-alt-left); }
    +.#{$fa-css-prefix}-long-arrow-alt-right:before { content: fa-content($fa-var-long-arrow-alt-right); }
    +.#{$fa-css-prefix}-long-arrow-alt-up:before { content: fa-content($fa-var-long-arrow-alt-up); }
    +.#{$fa-css-prefix}-low-vision:before { content: fa-content($fa-var-low-vision); }
    +.#{$fa-css-prefix}-luggage-cart:before { content: fa-content($fa-var-luggage-cart); }
    +.#{$fa-css-prefix}-lyft:before { content: fa-content($fa-var-lyft); }
    +.#{$fa-css-prefix}-magento:before { content: fa-content($fa-var-magento); }
    +.#{$fa-css-prefix}-magic:before { content: fa-content($fa-var-magic); }
    +.#{$fa-css-prefix}-magnet:before { content: fa-content($fa-var-magnet); }
    +.#{$fa-css-prefix}-mail-bulk:before { content: fa-content($fa-var-mail-bulk); }
    +.#{$fa-css-prefix}-mailchimp:before { content: fa-content($fa-var-mailchimp); }
    +.#{$fa-css-prefix}-male:before { content: fa-content($fa-var-male); }
    +.#{$fa-css-prefix}-mandalorian:before { content: fa-content($fa-var-mandalorian); }
    +.#{$fa-css-prefix}-map:before { content: fa-content($fa-var-map); }
    +.#{$fa-css-prefix}-map-marked:before { content: fa-content($fa-var-map-marked); }
    +.#{$fa-css-prefix}-map-marked-alt:before { content: fa-content($fa-var-map-marked-alt); }
    +.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker); }
    +.#{$fa-css-prefix}-map-marker-alt:before { content: fa-content($fa-var-map-marker-alt); }
    +.#{$fa-css-prefix}-map-pin:before { content: fa-content($fa-var-map-pin); }
    +.#{$fa-css-prefix}-map-signs:before { content: fa-content($fa-var-map-signs); }
    +.#{$fa-css-prefix}-markdown:before { content: fa-content($fa-var-markdown); }
    +.#{$fa-css-prefix}-marker:before { content: fa-content($fa-var-marker); }
    +.#{$fa-css-prefix}-mars:before { content: fa-content($fa-var-mars); }
    +.#{$fa-css-prefix}-mars-double:before { content: fa-content($fa-var-mars-double); }
    +.#{$fa-css-prefix}-mars-stroke:before { content: fa-content($fa-var-mars-stroke); }
    +.#{$fa-css-prefix}-mars-stroke-h:before { content: fa-content($fa-var-mars-stroke-h); }
    +.#{$fa-css-prefix}-mars-stroke-v:before { content: fa-content($fa-var-mars-stroke-v); }
    +.#{$fa-css-prefix}-mask:before { content: fa-content($fa-var-mask); }
    +.#{$fa-css-prefix}-mastodon:before { content: fa-content($fa-var-mastodon); }
    +.#{$fa-css-prefix}-maxcdn:before { content: fa-content($fa-var-maxcdn); }
    +.#{$fa-css-prefix}-medal:before { content: fa-content($fa-var-medal); }
    +.#{$fa-css-prefix}-medapps:before { content: fa-content($fa-var-medapps); }
    +.#{$fa-css-prefix}-medium:before { content: fa-content($fa-var-medium); }
    +.#{$fa-css-prefix}-medium-m:before { content: fa-content($fa-var-medium-m); }
    +.#{$fa-css-prefix}-medkit:before { content: fa-content($fa-var-medkit); }
    +.#{$fa-css-prefix}-medrt:before { content: fa-content($fa-var-medrt); }
    +.#{$fa-css-prefix}-meetup:before { content: fa-content($fa-var-meetup); }
    +.#{$fa-css-prefix}-megaport:before { content: fa-content($fa-var-megaport); }
    +.#{$fa-css-prefix}-meh:before { content: fa-content($fa-var-meh); }
    +.#{$fa-css-prefix}-meh-blank:before { content: fa-content($fa-var-meh-blank); }
    +.#{$fa-css-prefix}-meh-rolling-eyes:before { content: fa-content($fa-var-meh-rolling-eyes); }
    +.#{$fa-css-prefix}-memory:before { content: fa-content($fa-var-memory); }
    +.#{$fa-css-prefix}-menorah:before { content: fa-content($fa-var-menorah); }
    +.#{$fa-css-prefix}-mercury:before { content: fa-content($fa-var-mercury); }
    +.#{$fa-css-prefix}-microchip:before { content: fa-content($fa-var-microchip); }
    +.#{$fa-css-prefix}-microphone:before { content: fa-content($fa-var-microphone); }
    +.#{$fa-css-prefix}-microphone-alt:before { content: fa-content($fa-var-microphone-alt); }
    +.#{$fa-css-prefix}-microphone-alt-slash:before { content: fa-content($fa-var-microphone-alt-slash); }
    +.#{$fa-css-prefix}-microphone-slash:before { content: fa-content($fa-var-microphone-slash); }
    +.#{$fa-css-prefix}-microscope:before { content: fa-content($fa-var-microscope); }
    +.#{$fa-css-prefix}-microsoft:before { content: fa-content($fa-var-microsoft); }
    +.#{$fa-css-prefix}-minus:before { content: fa-content($fa-var-minus); }
    +.#{$fa-css-prefix}-minus-circle:before { content: fa-content($fa-var-minus-circle); }
    +.#{$fa-css-prefix}-minus-square:before { content: fa-content($fa-var-minus-square); }
    +.#{$fa-css-prefix}-mix:before { content: fa-content($fa-var-mix); }
    +.#{$fa-css-prefix}-mixcloud:before { content: fa-content($fa-var-mixcloud); }
    +.#{$fa-css-prefix}-mizuni:before { content: fa-content($fa-var-mizuni); }
    +.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile); }
    +.#{$fa-css-prefix}-mobile-alt:before { content: fa-content($fa-var-mobile-alt); }
    +.#{$fa-css-prefix}-modx:before { content: fa-content($fa-var-modx); }
    +.#{$fa-css-prefix}-monero:before { content: fa-content($fa-var-monero); }
    +.#{$fa-css-prefix}-money-bill:before { content: fa-content($fa-var-money-bill); }
    +.#{$fa-css-prefix}-money-bill-alt:before { content: fa-content($fa-var-money-bill-alt); }
    +.#{$fa-css-prefix}-money-bill-wave:before { content: fa-content($fa-var-money-bill-wave); }
    +.#{$fa-css-prefix}-money-bill-wave-alt:before { content: fa-content($fa-var-money-bill-wave-alt); }
    +.#{$fa-css-prefix}-money-check:before { content: fa-content($fa-var-money-check); }
    +.#{$fa-css-prefix}-money-check-alt:before { content: fa-content($fa-var-money-check-alt); }
    +.#{$fa-css-prefix}-monument:before { content: fa-content($fa-var-monument); }
    +.#{$fa-css-prefix}-moon:before { content: fa-content($fa-var-moon); }
    +.#{$fa-css-prefix}-mortar-pestle:before { content: fa-content($fa-var-mortar-pestle); }
    +.#{$fa-css-prefix}-mosque:before { content: fa-content($fa-var-mosque); }
    +.#{$fa-css-prefix}-motorcycle:before { content: fa-content($fa-var-motorcycle); }
    +.#{$fa-css-prefix}-mountain:before { content: fa-content($fa-var-mountain); }
    +.#{$fa-css-prefix}-mouse-pointer:before { content: fa-content($fa-var-mouse-pointer); }
    +.#{$fa-css-prefix}-music:before { content: fa-content($fa-var-music); }
    +.#{$fa-css-prefix}-napster:before { content: fa-content($fa-var-napster); }
    +.#{$fa-css-prefix}-neos:before { content: fa-content($fa-var-neos); }
    +.#{$fa-css-prefix}-network-wired:before { content: fa-content($fa-var-network-wired); }
    +.#{$fa-css-prefix}-neuter:before { content: fa-content($fa-var-neuter); }
    +.#{$fa-css-prefix}-newspaper:before { content: fa-content($fa-var-newspaper); }
    +.#{$fa-css-prefix}-nimblr:before { content: fa-content($fa-var-nimblr); }
    +.#{$fa-css-prefix}-nintendo-switch:before { content: fa-content($fa-var-nintendo-switch); }
    +.#{$fa-css-prefix}-node:before { content: fa-content($fa-var-node); }
    +.#{$fa-css-prefix}-node-js:before { content: fa-content($fa-var-node-js); }
    +.#{$fa-css-prefix}-not-equal:before { content: fa-content($fa-var-not-equal); }
    +.#{$fa-css-prefix}-notes-medical:before { content: fa-content($fa-var-notes-medical); }
    +.#{$fa-css-prefix}-npm:before { content: fa-content($fa-var-npm); }
    +.#{$fa-css-prefix}-ns8:before { content: fa-content($fa-var-ns8); }
    +.#{$fa-css-prefix}-nutritionix:before { content: fa-content($fa-var-nutritionix); }
    +.#{$fa-css-prefix}-object-group:before { content: fa-content($fa-var-object-group); }
    +.#{$fa-css-prefix}-object-ungroup:before { content: fa-content($fa-var-object-ungroup); }
    +.#{$fa-css-prefix}-odnoklassniki:before { content: fa-content($fa-var-odnoklassniki); }
    +.#{$fa-css-prefix}-odnoklassniki-square:before { content: fa-content($fa-var-odnoklassniki-square); }
    +.#{$fa-css-prefix}-oil-can:before { content: fa-content($fa-var-oil-can); }
    +.#{$fa-css-prefix}-old-republic:before { content: fa-content($fa-var-old-republic); }
    +.#{$fa-css-prefix}-om:before { content: fa-content($fa-var-om); }
    +.#{$fa-css-prefix}-opencart:before { content: fa-content($fa-var-opencart); }
    +.#{$fa-css-prefix}-openid:before { content: fa-content($fa-var-openid); }
    +.#{$fa-css-prefix}-opera:before { content: fa-content($fa-var-opera); }
    +.#{$fa-css-prefix}-optin-monster:before { content: fa-content($fa-var-optin-monster); }
    +.#{$fa-css-prefix}-osi:before { content: fa-content($fa-var-osi); }
    +.#{$fa-css-prefix}-otter:before { content: fa-content($fa-var-otter); }
    +.#{$fa-css-prefix}-outdent:before { content: fa-content($fa-var-outdent); }
    +.#{$fa-css-prefix}-page4:before { content: fa-content($fa-var-page4); }
    +.#{$fa-css-prefix}-pagelines:before { content: fa-content($fa-var-pagelines); }
    +.#{$fa-css-prefix}-paint-brush:before { content: fa-content($fa-var-paint-brush); }
    +.#{$fa-css-prefix}-paint-roller:before { content: fa-content($fa-var-paint-roller); }
    +.#{$fa-css-prefix}-palette:before { content: fa-content($fa-var-palette); }
    +.#{$fa-css-prefix}-palfed:before { content: fa-content($fa-var-palfed); }
    +.#{$fa-css-prefix}-pallet:before { content: fa-content($fa-var-pallet); }
    +.#{$fa-css-prefix}-paper-plane:before { content: fa-content($fa-var-paper-plane); }
    +.#{$fa-css-prefix}-paperclip:before { content: fa-content($fa-var-paperclip); }
    +.#{$fa-css-prefix}-parachute-box:before { content: fa-content($fa-var-parachute-box); }
    +.#{$fa-css-prefix}-paragraph:before { content: fa-content($fa-var-paragraph); }
    +.#{$fa-css-prefix}-parking:before { content: fa-content($fa-var-parking); }
    +.#{$fa-css-prefix}-passport:before { content: fa-content($fa-var-passport); }
    +.#{$fa-css-prefix}-pastafarianism:before { content: fa-content($fa-var-pastafarianism); }
    +.#{$fa-css-prefix}-paste:before { content: fa-content($fa-var-paste); }
    +.#{$fa-css-prefix}-patreon:before { content: fa-content($fa-var-patreon); }
    +.#{$fa-css-prefix}-pause:before { content: fa-content($fa-var-pause); }
    +.#{$fa-css-prefix}-pause-circle:before { content: fa-content($fa-var-pause-circle); }
    +.#{$fa-css-prefix}-paw:before { content: fa-content($fa-var-paw); }
    +.#{$fa-css-prefix}-paypal:before { content: fa-content($fa-var-paypal); }
    +.#{$fa-css-prefix}-peace:before { content: fa-content($fa-var-peace); }
    +.#{$fa-css-prefix}-pen:before { content: fa-content($fa-var-pen); }
    +.#{$fa-css-prefix}-pen-alt:before { content: fa-content($fa-var-pen-alt); }
    +.#{$fa-css-prefix}-pen-fancy:before { content: fa-content($fa-var-pen-fancy); }
    +.#{$fa-css-prefix}-pen-nib:before { content: fa-content($fa-var-pen-nib); }
    +.#{$fa-css-prefix}-pen-square:before { content: fa-content($fa-var-pen-square); }
    +.#{$fa-css-prefix}-pencil-alt:before { content: fa-content($fa-var-pencil-alt); }
    +.#{$fa-css-prefix}-pencil-ruler:before { content: fa-content($fa-var-pencil-ruler); }
    +.#{$fa-css-prefix}-penny-arcade:before { content: fa-content($fa-var-penny-arcade); }
    +.#{$fa-css-prefix}-people-carry:before { content: fa-content($fa-var-people-carry); }
    +.#{$fa-css-prefix}-percent:before { content: fa-content($fa-var-percent); }
    +.#{$fa-css-prefix}-percentage:before { content: fa-content($fa-var-percentage); }
    +.#{$fa-css-prefix}-periscope:before { content: fa-content($fa-var-periscope); }
    +.#{$fa-css-prefix}-phabricator:before { content: fa-content($fa-var-phabricator); }
    +.#{$fa-css-prefix}-phoenix-framework:before { content: fa-content($fa-var-phoenix-framework); }
    +.#{$fa-css-prefix}-phoenix-squadron:before { content: fa-content($fa-var-phoenix-squadron); }
    +.#{$fa-css-prefix}-phone:before { content: fa-content($fa-var-phone); }
    +.#{$fa-css-prefix}-phone-slash:before { content: fa-content($fa-var-phone-slash); }
    +.#{$fa-css-prefix}-phone-square:before { content: fa-content($fa-var-phone-square); }
    +.#{$fa-css-prefix}-phone-volume:before { content: fa-content($fa-var-phone-volume); }
    +.#{$fa-css-prefix}-php:before { content: fa-content($fa-var-php); }
    +.#{$fa-css-prefix}-pied-piper:before { content: fa-content($fa-var-pied-piper); }
    +.#{$fa-css-prefix}-pied-piper-alt:before { content: fa-content($fa-var-pied-piper-alt); }
    +.#{$fa-css-prefix}-pied-piper-hat:before { content: fa-content($fa-var-pied-piper-hat); }
    +.#{$fa-css-prefix}-pied-piper-pp:before { content: fa-content($fa-var-pied-piper-pp); }
    +.#{$fa-css-prefix}-piggy-bank:before { content: fa-content($fa-var-piggy-bank); }
    +.#{$fa-css-prefix}-pills:before { content: fa-content($fa-var-pills); }
    +.#{$fa-css-prefix}-pinterest:before { content: fa-content($fa-var-pinterest); }
    +.#{$fa-css-prefix}-pinterest-p:before { content: fa-content($fa-var-pinterest-p); }
    +.#{$fa-css-prefix}-pinterest-square:before { content: fa-content($fa-var-pinterest-square); }
    +.#{$fa-css-prefix}-place-of-worship:before { content: fa-content($fa-var-place-of-worship); }
    +.#{$fa-css-prefix}-plane:before { content: fa-content($fa-var-plane); }
    +.#{$fa-css-prefix}-plane-arrival:before { content: fa-content($fa-var-plane-arrival); }
    +.#{$fa-css-prefix}-plane-departure:before { content: fa-content($fa-var-plane-departure); }
    +.#{$fa-css-prefix}-play:before { content: fa-content($fa-var-play); }
    +.#{$fa-css-prefix}-play-circle:before { content: fa-content($fa-var-play-circle); }
    +.#{$fa-css-prefix}-playstation:before { content: fa-content($fa-var-playstation); }
    +.#{$fa-css-prefix}-plug:before { content: fa-content($fa-var-plug); }
    +.#{$fa-css-prefix}-plus:before { content: fa-content($fa-var-plus); }
    +.#{$fa-css-prefix}-plus-circle:before { content: fa-content($fa-var-plus-circle); }
    +.#{$fa-css-prefix}-plus-square:before { content: fa-content($fa-var-plus-square); }
    +.#{$fa-css-prefix}-podcast:before { content: fa-content($fa-var-podcast); }
    +.#{$fa-css-prefix}-poll:before { content: fa-content($fa-var-poll); }
    +.#{$fa-css-prefix}-poll-h:before { content: fa-content($fa-var-poll-h); }
    +.#{$fa-css-prefix}-poo:before { content: fa-content($fa-var-poo); }
    +.#{$fa-css-prefix}-poop:before { content: fa-content($fa-var-poop); }
    +.#{$fa-css-prefix}-portrait:before { content: fa-content($fa-var-portrait); }
    +.#{$fa-css-prefix}-pound-sign:before { content: fa-content($fa-var-pound-sign); }
    +.#{$fa-css-prefix}-power-off:before { content: fa-content($fa-var-power-off); }
    +.#{$fa-css-prefix}-pray:before { content: fa-content($fa-var-pray); }
    +.#{$fa-css-prefix}-praying-hands:before { content: fa-content($fa-var-praying-hands); }
    +.#{$fa-css-prefix}-prescription:before { content: fa-content($fa-var-prescription); }
    +.#{$fa-css-prefix}-prescription-bottle:before { content: fa-content($fa-var-prescription-bottle); }
    +.#{$fa-css-prefix}-prescription-bottle-alt:before { content: fa-content($fa-var-prescription-bottle-alt); }
    +.#{$fa-css-prefix}-print:before { content: fa-content($fa-var-print); }
    +.#{$fa-css-prefix}-procedures:before { content: fa-content($fa-var-procedures); }
    +.#{$fa-css-prefix}-product-hunt:before { content: fa-content($fa-var-product-hunt); }
    +.#{$fa-css-prefix}-project-diagram:before { content: fa-content($fa-var-project-diagram); }
    +.#{$fa-css-prefix}-pushed:before { content: fa-content($fa-var-pushed); }
    +.#{$fa-css-prefix}-puzzle-piece:before { content: fa-content($fa-var-puzzle-piece); }
    +.#{$fa-css-prefix}-python:before { content: fa-content($fa-var-python); }
    +.#{$fa-css-prefix}-qq:before { content: fa-content($fa-var-qq); }
    +.#{$fa-css-prefix}-qrcode:before { content: fa-content($fa-var-qrcode); }
    +.#{$fa-css-prefix}-question:before { content: fa-content($fa-var-question); }
    +.#{$fa-css-prefix}-question-circle:before { content: fa-content($fa-var-question-circle); }
    +.#{$fa-css-prefix}-quidditch:before { content: fa-content($fa-var-quidditch); }
    +.#{$fa-css-prefix}-quinscape:before { content: fa-content($fa-var-quinscape); }
    +.#{$fa-css-prefix}-quora:before { content: fa-content($fa-var-quora); }
    +.#{$fa-css-prefix}-quote-left:before { content: fa-content($fa-var-quote-left); }
    +.#{$fa-css-prefix}-quote-right:before { content: fa-content($fa-var-quote-right); }
    +.#{$fa-css-prefix}-quran:before { content: fa-content($fa-var-quran); }
    +.#{$fa-css-prefix}-r-project:before { content: fa-content($fa-var-r-project); }
    +.#{$fa-css-prefix}-random:before { content: fa-content($fa-var-random); }
    +.#{$fa-css-prefix}-ravelry:before { content: fa-content($fa-var-ravelry); }
    +.#{$fa-css-prefix}-react:before { content: fa-content($fa-var-react); }
    +.#{$fa-css-prefix}-readme:before { content: fa-content($fa-var-readme); }
    +.#{$fa-css-prefix}-rebel:before { content: fa-content($fa-var-rebel); }
    +.#{$fa-css-prefix}-receipt:before { content: fa-content($fa-var-receipt); }
    +.#{$fa-css-prefix}-recycle:before { content: fa-content($fa-var-recycle); }
    +.#{$fa-css-prefix}-red-river:before { content: fa-content($fa-var-red-river); }
    +.#{$fa-css-prefix}-reddit:before { content: fa-content($fa-var-reddit); }
    +.#{$fa-css-prefix}-reddit-alien:before { content: fa-content($fa-var-reddit-alien); }
    +.#{$fa-css-prefix}-reddit-square:before { content: fa-content($fa-var-reddit-square); }
    +.#{$fa-css-prefix}-redo:before { content: fa-content($fa-var-redo); }
    +.#{$fa-css-prefix}-redo-alt:before { content: fa-content($fa-var-redo-alt); }
    +.#{$fa-css-prefix}-registered:before { content: fa-content($fa-var-registered); }
    +.#{$fa-css-prefix}-rendact:before { content: fa-content($fa-var-rendact); }
    +.#{$fa-css-prefix}-renren:before { content: fa-content($fa-var-renren); }
    +.#{$fa-css-prefix}-reply:before { content: fa-content($fa-var-reply); }
    +.#{$fa-css-prefix}-reply-all:before { content: fa-content($fa-var-reply-all); }
    +.#{$fa-css-prefix}-replyd:before { content: fa-content($fa-var-replyd); }
    +.#{$fa-css-prefix}-researchgate:before { content: fa-content($fa-var-researchgate); }
    +.#{$fa-css-prefix}-resolving:before { content: fa-content($fa-var-resolving); }
    +.#{$fa-css-prefix}-retweet:before { content: fa-content($fa-var-retweet); }
    +.#{$fa-css-prefix}-rev:before { content: fa-content($fa-var-rev); }
    +.#{$fa-css-prefix}-ribbon:before { content: fa-content($fa-var-ribbon); }
    +.#{$fa-css-prefix}-ring:before { content: fa-content($fa-var-ring); }
    +.#{$fa-css-prefix}-road:before { content: fa-content($fa-var-road); }
    +.#{$fa-css-prefix}-robot:before { content: fa-content($fa-var-robot); }
    +.#{$fa-css-prefix}-rocket:before { content: fa-content($fa-var-rocket); }
    +.#{$fa-css-prefix}-rocketchat:before { content: fa-content($fa-var-rocketchat); }
    +.#{$fa-css-prefix}-rockrms:before { content: fa-content($fa-var-rockrms); }
    +.#{$fa-css-prefix}-route:before { content: fa-content($fa-var-route); }
    +.#{$fa-css-prefix}-rss:before { content: fa-content($fa-var-rss); }
    +.#{$fa-css-prefix}-rss-square:before { content: fa-content($fa-var-rss-square); }
    +.#{$fa-css-prefix}-ruble-sign:before { content: fa-content($fa-var-ruble-sign); }
    +.#{$fa-css-prefix}-ruler:before { content: fa-content($fa-var-ruler); }
    +.#{$fa-css-prefix}-ruler-combined:before { content: fa-content($fa-var-ruler-combined); }
    +.#{$fa-css-prefix}-ruler-horizontal:before { content: fa-content($fa-var-ruler-horizontal); }
    +.#{$fa-css-prefix}-ruler-vertical:before { content: fa-content($fa-var-ruler-vertical); }
    +.#{$fa-css-prefix}-running:before { content: fa-content($fa-var-running); }
    +.#{$fa-css-prefix}-rupee-sign:before { content: fa-content($fa-var-rupee-sign); }
    +.#{$fa-css-prefix}-sad-cry:before { content: fa-content($fa-var-sad-cry); }
    +.#{$fa-css-prefix}-sad-tear:before { content: fa-content($fa-var-sad-tear); }
    +.#{$fa-css-prefix}-safari:before { content: fa-content($fa-var-safari); }
    +.#{$fa-css-prefix}-sass:before { content: fa-content($fa-var-sass); }
    +.#{$fa-css-prefix}-save:before { content: fa-content($fa-var-save); }
    +.#{$fa-css-prefix}-schlix:before { content: fa-content($fa-var-schlix); }
    +.#{$fa-css-prefix}-school:before { content: fa-content($fa-var-school); }
    +.#{$fa-css-prefix}-screwdriver:before { content: fa-content($fa-var-screwdriver); }
    +.#{$fa-css-prefix}-scribd:before { content: fa-content($fa-var-scribd); }
    +.#{$fa-css-prefix}-scroll:before { content: fa-content($fa-var-scroll); }
    +.#{$fa-css-prefix}-search:before { content: fa-content($fa-var-search); }
    +.#{$fa-css-prefix}-search-dollar:before { content: fa-content($fa-var-search-dollar); }
    +.#{$fa-css-prefix}-search-location:before { content: fa-content($fa-var-search-location); }
    +.#{$fa-css-prefix}-search-minus:before { content: fa-content($fa-var-search-minus); }
    +.#{$fa-css-prefix}-search-plus:before { content: fa-content($fa-var-search-plus); }
    +.#{$fa-css-prefix}-searchengin:before { content: fa-content($fa-var-searchengin); }
    +.#{$fa-css-prefix}-seedling:before { content: fa-content($fa-var-seedling); }
    +.#{$fa-css-prefix}-sellcast:before { content: fa-content($fa-var-sellcast); }
    +.#{$fa-css-prefix}-sellsy:before { content: fa-content($fa-var-sellsy); }
    +.#{$fa-css-prefix}-server:before { content: fa-content($fa-var-server); }
    +.#{$fa-css-prefix}-servicestack:before { content: fa-content($fa-var-servicestack); }
    +.#{$fa-css-prefix}-shapes:before { content: fa-content($fa-var-shapes); }
    +.#{$fa-css-prefix}-share:before { content: fa-content($fa-var-share); }
    +.#{$fa-css-prefix}-share-alt:before { content: fa-content($fa-var-share-alt); }
    +.#{$fa-css-prefix}-share-alt-square:before { content: fa-content($fa-var-share-alt-square); }
    +.#{$fa-css-prefix}-share-square:before { content: fa-content($fa-var-share-square); }
    +.#{$fa-css-prefix}-shekel-sign:before { content: fa-content($fa-var-shekel-sign); }
    +.#{$fa-css-prefix}-shield-alt:before { content: fa-content($fa-var-shield-alt); }
    +.#{$fa-css-prefix}-ship:before { content: fa-content($fa-var-ship); }
    +.#{$fa-css-prefix}-shipping-fast:before { content: fa-content($fa-var-shipping-fast); }
    +.#{$fa-css-prefix}-shirtsinbulk:before { content: fa-content($fa-var-shirtsinbulk); }
    +.#{$fa-css-prefix}-shoe-prints:before { content: fa-content($fa-var-shoe-prints); }
    +.#{$fa-css-prefix}-shopping-bag:before { content: fa-content($fa-var-shopping-bag); }
    +.#{$fa-css-prefix}-shopping-basket:before { content: fa-content($fa-var-shopping-basket); }
    +.#{$fa-css-prefix}-shopping-cart:before { content: fa-content($fa-var-shopping-cart); }
    +.#{$fa-css-prefix}-shopware:before { content: fa-content($fa-var-shopware); }
    +.#{$fa-css-prefix}-shower:before { content: fa-content($fa-var-shower); }
    +.#{$fa-css-prefix}-shuttle-van:before { content: fa-content($fa-var-shuttle-van); }
    +.#{$fa-css-prefix}-sign:before { content: fa-content($fa-var-sign); }
    +.#{$fa-css-prefix}-sign-in-alt:before { content: fa-content($fa-var-sign-in-alt); }
    +.#{$fa-css-prefix}-sign-language:before { content: fa-content($fa-var-sign-language); }
    +.#{$fa-css-prefix}-sign-out-alt:before { content: fa-content($fa-var-sign-out-alt); }
    +.#{$fa-css-prefix}-signal:before { content: fa-content($fa-var-signal); }
    +.#{$fa-css-prefix}-signature:before { content: fa-content($fa-var-signature); }
    +.#{$fa-css-prefix}-simplybuilt:before { content: fa-content($fa-var-simplybuilt); }
    +.#{$fa-css-prefix}-sistrix:before { content: fa-content($fa-var-sistrix); }
    +.#{$fa-css-prefix}-sitemap:before { content: fa-content($fa-var-sitemap); }
    +.#{$fa-css-prefix}-sith:before { content: fa-content($fa-var-sith); }
    +.#{$fa-css-prefix}-skull:before { content: fa-content($fa-var-skull); }
    +.#{$fa-css-prefix}-skull-crossbones:before { content: fa-content($fa-var-skull-crossbones); }
    +.#{$fa-css-prefix}-skyatlas:before { content: fa-content($fa-var-skyatlas); }
    +.#{$fa-css-prefix}-skype:before { content: fa-content($fa-var-skype); }
    +.#{$fa-css-prefix}-slack:before { content: fa-content($fa-var-slack); }
    +.#{$fa-css-prefix}-slack-hash:before { content: fa-content($fa-var-slack-hash); }
    +.#{$fa-css-prefix}-slash:before { content: fa-content($fa-var-slash); }
    +.#{$fa-css-prefix}-sliders-h:before { content: fa-content($fa-var-sliders-h); }
    +.#{$fa-css-prefix}-slideshare:before { content: fa-content($fa-var-slideshare); }
    +.#{$fa-css-prefix}-smile:before { content: fa-content($fa-var-smile); }
    +.#{$fa-css-prefix}-smile-beam:before { content: fa-content($fa-var-smile-beam); }
    +.#{$fa-css-prefix}-smile-wink:before { content: fa-content($fa-var-smile-wink); }
    +.#{$fa-css-prefix}-smoking:before { content: fa-content($fa-var-smoking); }
    +.#{$fa-css-prefix}-smoking-ban:before { content: fa-content($fa-var-smoking-ban); }
    +.#{$fa-css-prefix}-snapchat:before { content: fa-content($fa-var-snapchat); }
    +.#{$fa-css-prefix}-snapchat-ghost:before { content: fa-content($fa-var-snapchat-ghost); }
    +.#{$fa-css-prefix}-snapchat-square:before { content: fa-content($fa-var-snapchat-square); }
    +.#{$fa-css-prefix}-snowflake:before { content: fa-content($fa-var-snowflake); }
    +.#{$fa-css-prefix}-socks:before { content: fa-content($fa-var-socks); }
    +.#{$fa-css-prefix}-solar-panel:before { content: fa-content($fa-var-solar-panel); }
    +.#{$fa-css-prefix}-sort:before { content: fa-content($fa-var-sort); }
    +.#{$fa-css-prefix}-sort-alpha-down:before { content: fa-content($fa-var-sort-alpha-down); }
    +.#{$fa-css-prefix}-sort-alpha-up:before { content: fa-content($fa-var-sort-alpha-up); }
    +.#{$fa-css-prefix}-sort-amount-down:before { content: fa-content($fa-var-sort-amount-down); }
    +.#{$fa-css-prefix}-sort-amount-up:before { content: fa-content($fa-var-sort-amount-up); }
    +.#{$fa-css-prefix}-sort-down:before { content: fa-content($fa-var-sort-down); }
    +.#{$fa-css-prefix}-sort-numeric-down:before { content: fa-content($fa-var-sort-numeric-down); }
    +.#{$fa-css-prefix}-sort-numeric-up:before { content: fa-content($fa-var-sort-numeric-up); }
    +.#{$fa-css-prefix}-sort-up:before { content: fa-content($fa-var-sort-up); }
    +.#{$fa-css-prefix}-soundcloud:before { content: fa-content($fa-var-soundcloud); }
    +.#{$fa-css-prefix}-spa:before { content: fa-content($fa-var-spa); }
    +.#{$fa-css-prefix}-space-shuttle:before { content: fa-content($fa-var-space-shuttle); }
    +.#{$fa-css-prefix}-speakap:before { content: fa-content($fa-var-speakap); }
    +.#{$fa-css-prefix}-spider:before { content: fa-content($fa-var-spider); }
    +.#{$fa-css-prefix}-spinner:before { content: fa-content($fa-var-spinner); }
    +.#{$fa-css-prefix}-splotch:before { content: fa-content($fa-var-splotch); }
    +.#{$fa-css-prefix}-spotify:before { content: fa-content($fa-var-spotify); }
    +.#{$fa-css-prefix}-spray-can:before { content: fa-content($fa-var-spray-can); }
    +.#{$fa-css-prefix}-square:before { content: fa-content($fa-var-square); }
    +.#{$fa-css-prefix}-square-full:before { content: fa-content($fa-var-square-full); }
    +.#{$fa-css-prefix}-square-root-alt:before { content: fa-content($fa-var-square-root-alt); }
    +.#{$fa-css-prefix}-squarespace:before { content: fa-content($fa-var-squarespace); }
    +.#{$fa-css-prefix}-stack-exchange:before { content: fa-content($fa-var-stack-exchange); }
    +.#{$fa-css-prefix}-stack-overflow:before { content: fa-content($fa-var-stack-overflow); }
    +.#{$fa-css-prefix}-stamp:before { content: fa-content($fa-var-stamp); }
    +.#{$fa-css-prefix}-star:before { content: fa-content($fa-var-star); }
    +.#{$fa-css-prefix}-star-and-crescent:before { content: fa-content($fa-var-star-and-crescent); }
    +.#{$fa-css-prefix}-star-half:before { content: fa-content($fa-var-star-half); }
    +.#{$fa-css-prefix}-star-half-alt:before { content: fa-content($fa-var-star-half-alt); }
    +.#{$fa-css-prefix}-star-of-david:before { content: fa-content($fa-var-star-of-david); }
    +.#{$fa-css-prefix}-star-of-life:before { content: fa-content($fa-var-star-of-life); }
    +.#{$fa-css-prefix}-staylinked:before { content: fa-content($fa-var-staylinked); }
    +.#{$fa-css-prefix}-steam:before { content: fa-content($fa-var-steam); }
    +.#{$fa-css-prefix}-steam-square:before { content: fa-content($fa-var-steam-square); }
    +.#{$fa-css-prefix}-steam-symbol:before { content: fa-content($fa-var-steam-symbol); }
    +.#{$fa-css-prefix}-step-backward:before { content: fa-content($fa-var-step-backward); }
    +.#{$fa-css-prefix}-step-forward:before { content: fa-content($fa-var-step-forward); }
    +.#{$fa-css-prefix}-stethoscope:before { content: fa-content($fa-var-stethoscope); }
    +.#{$fa-css-prefix}-sticker-mule:before { content: fa-content($fa-var-sticker-mule); }
    +.#{$fa-css-prefix}-sticky-note:before { content: fa-content($fa-var-sticky-note); }
    +.#{$fa-css-prefix}-stop:before { content: fa-content($fa-var-stop); }
    +.#{$fa-css-prefix}-stop-circle:before { content: fa-content($fa-var-stop-circle); }
    +.#{$fa-css-prefix}-stopwatch:before { content: fa-content($fa-var-stopwatch); }
    +.#{$fa-css-prefix}-store:before { content: fa-content($fa-var-store); }
    +.#{$fa-css-prefix}-store-alt:before { content: fa-content($fa-var-store-alt); }
    +.#{$fa-css-prefix}-strava:before { content: fa-content($fa-var-strava); }
    +.#{$fa-css-prefix}-stream:before { content: fa-content($fa-var-stream); }
    +.#{$fa-css-prefix}-street-view:before { content: fa-content($fa-var-street-view); }
    +.#{$fa-css-prefix}-strikethrough:before { content: fa-content($fa-var-strikethrough); }
    +.#{$fa-css-prefix}-stripe:before { content: fa-content($fa-var-stripe); }
    +.#{$fa-css-prefix}-stripe-s:before { content: fa-content($fa-var-stripe-s); }
    +.#{$fa-css-prefix}-stroopwafel:before { content: fa-content($fa-var-stroopwafel); }
    +.#{$fa-css-prefix}-studiovinari:before { content: fa-content($fa-var-studiovinari); }
    +.#{$fa-css-prefix}-stumbleupon:before { content: fa-content($fa-var-stumbleupon); }
    +.#{$fa-css-prefix}-stumbleupon-circle:before { content: fa-content($fa-var-stumbleupon-circle); }
    +.#{$fa-css-prefix}-subscript:before { content: fa-content($fa-var-subscript); }
    +.#{$fa-css-prefix}-subway:before { content: fa-content($fa-var-subway); }
    +.#{$fa-css-prefix}-suitcase:before { content: fa-content($fa-var-suitcase); }
    +.#{$fa-css-prefix}-suitcase-rolling:before { content: fa-content($fa-var-suitcase-rolling); }
    +.#{$fa-css-prefix}-sun:before { content: fa-content($fa-var-sun); }
    +.#{$fa-css-prefix}-superpowers:before { content: fa-content($fa-var-superpowers); }
    +.#{$fa-css-prefix}-superscript:before { content: fa-content($fa-var-superscript); }
    +.#{$fa-css-prefix}-supple:before { content: fa-content($fa-var-supple); }
    +.#{$fa-css-prefix}-surprise:before { content: fa-content($fa-var-surprise); }
    +.#{$fa-css-prefix}-swatchbook:before { content: fa-content($fa-var-swatchbook); }
    +.#{$fa-css-prefix}-swimmer:before { content: fa-content($fa-var-swimmer); }
    +.#{$fa-css-prefix}-swimming-pool:before { content: fa-content($fa-var-swimming-pool); }
    +.#{$fa-css-prefix}-synagogue:before { content: fa-content($fa-var-synagogue); }
    +.#{$fa-css-prefix}-sync:before { content: fa-content($fa-var-sync); }
    +.#{$fa-css-prefix}-sync-alt:before { content: fa-content($fa-var-sync-alt); }
    +.#{$fa-css-prefix}-syringe:before { content: fa-content($fa-var-syringe); }
    +.#{$fa-css-prefix}-table:before { content: fa-content($fa-var-table); }
    +.#{$fa-css-prefix}-table-tennis:before { content: fa-content($fa-var-table-tennis); }
    +.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet); }
    +.#{$fa-css-prefix}-tablet-alt:before { content: fa-content($fa-var-tablet-alt); }
    +.#{$fa-css-prefix}-tablets:before { content: fa-content($fa-var-tablets); }
    +.#{$fa-css-prefix}-tachometer-alt:before { content: fa-content($fa-var-tachometer-alt); }
    +.#{$fa-css-prefix}-tag:before { content: fa-content($fa-var-tag); }
    +.#{$fa-css-prefix}-tags:before { content: fa-content($fa-var-tags); }
    +.#{$fa-css-prefix}-tape:before { content: fa-content($fa-var-tape); }
    +.#{$fa-css-prefix}-tasks:before { content: fa-content($fa-var-tasks); }
    +.#{$fa-css-prefix}-taxi:before { content: fa-content($fa-var-taxi); }
    +.#{$fa-css-prefix}-teamspeak:before { content: fa-content($fa-var-teamspeak); }
    +.#{$fa-css-prefix}-teeth:before { content: fa-content($fa-var-teeth); }
    +.#{$fa-css-prefix}-teeth-open:before { content: fa-content($fa-var-teeth-open); }
    +.#{$fa-css-prefix}-telegram:before { content: fa-content($fa-var-telegram); }
    +.#{$fa-css-prefix}-telegram-plane:before { content: fa-content($fa-var-telegram-plane); }
    +.#{$fa-css-prefix}-tencent-weibo:before { content: fa-content($fa-var-tencent-weibo); }
    +.#{$fa-css-prefix}-terminal:before { content: fa-content($fa-var-terminal); }
    +.#{$fa-css-prefix}-text-height:before { content: fa-content($fa-var-text-height); }
    +.#{$fa-css-prefix}-text-width:before { content: fa-content($fa-var-text-width); }
    +.#{$fa-css-prefix}-th:before { content: fa-content($fa-var-th); }
    +.#{$fa-css-prefix}-th-large:before { content: fa-content($fa-var-th-large); }
    +.#{$fa-css-prefix}-th-list:before { content: fa-content($fa-var-th-list); }
    +.#{$fa-css-prefix}-the-red-yeti:before { content: fa-content($fa-var-the-red-yeti); }
    +.#{$fa-css-prefix}-theater-masks:before { content: fa-content($fa-var-theater-masks); }
    +.#{$fa-css-prefix}-themeco:before { content: fa-content($fa-var-themeco); }
    +.#{$fa-css-prefix}-themeisle:before { content: fa-content($fa-var-themeisle); }
    +.#{$fa-css-prefix}-thermometer:before { content: fa-content($fa-var-thermometer); }
    +.#{$fa-css-prefix}-thermometer-empty:before { content: fa-content($fa-var-thermometer-empty); }
    +.#{$fa-css-prefix}-thermometer-full:before { content: fa-content($fa-var-thermometer-full); }
    +.#{$fa-css-prefix}-thermometer-half:before { content: fa-content($fa-var-thermometer-half); }
    +.#{$fa-css-prefix}-thermometer-quarter:before { content: fa-content($fa-var-thermometer-quarter); }
    +.#{$fa-css-prefix}-thermometer-three-quarters:before { content: fa-content($fa-var-thermometer-three-quarters); }
    +.#{$fa-css-prefix}-thumbs-down:before { content: fa-content($fa-var-thumbs-down); }
    +.#{$fa-css-prefix}-thumbs-up:before { content: fa-content($fa-var-thumbs-up); }
    +.#{$fa-css-prefix}-thumbtack:before { content: fa-content($fa-var-thumbtack); }
    +.#{$fa-css-prefix}-ticket-alt:before { content: fa-content($fa-var-ticket-alt); }
    +.#{$fa-css-prefix}-times:before { content: fa-content($fa-var-times); }
    +.#{$fa-css-prefix}-times-circle:before { content: fa-content($fa-var-times-circle); }
    +.#{$fa-css-prefix}-tint:before { content: fa-content($fa-var-tint); }
    +.#{$fa-css-prefix}-tint-slash:before { content: fa-content($fa-var-tint-slash); }
    +.#{$fa-css-prefix}-tired:before { content: fa-content($fa-var-tired); }
    +.#{$fa-css-prefix}-toggle-off:before { content: fa-content($fa-var-toggle-off); }
    +.#{$fa-css-prefix}-toggle-on:before { content: fa-content($fa-var-toggle-on); }
    +.#{$fa-css-prefix}-toilet-paper:before { content: fa-content($fa-var-toilet-paper); }
    +.#{$fa-css-prefix}-toolbox:before { content: fa-content($fa-var-toolbox); }
    +.#{$fa-css-prefix}-tooth:before { content: fa-content($fa-var-tooth); }
    +.#{$fa-css-prefix}-torah:before { content: fa-content($fa-var-torah); }
    +.#{$fa-css-prefix}-torii-gate:before { content: fa-content($fa-var-torii-gate); }
    +.#{$fa-css-prefix}-tractor:before { content: fa-content($fa-var-tractor); }
    +.#{$fa-css-prefix}-trade-federation:before { content: fa-content($fa-var-trade-federation); }
    +.#{$fa-css-prefix}-trademark:before { content: fa-content($fa-var-trademark); }
    +.#{$fa-css-prefix}-traffic-light:before { content: fa-content($fa-var-traffic-light); }
    +.#{$fa-css-prefix}-train:before { content: fa-content($fa-var-train); }
    +.#{$fa-css-prefix}-transgender:before { content: fa-content($fa-var-transgender); }
    +.#{$fa-css-prefix}-transgender-alt:before { content: fa-content($fa-var-transgender-alt); }
    +.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash); }
    +.#{$fa-css-prefix}-trash-alt:before { content: fa-content($fa-var-trash-alt); }
    +.#{$fa-css-prefix}-tree:before { content: fa-content($fa-var-tree); }
    +.#{$fa-css-prefix}-trello:before { content: fa-content($fa-var-trello); }
    +.#{$fa-css-prefix}-tripadvisor:before { content: fa-content($fa-var-tripadvisor); }
    +.#{$fa-css-prefix}-trophy:before { content: fa-content($fa-var-trophy); }
    +.#{$fa-css-prefix}-truck:before { content: fa-content($fa-var-truck); }
    +.#{$fa-css-prefix}-truck-loading:before { content: fa-content($fa-var-truck-loading); }
    +.#{$fa-css-prefix}-truck-monster:before { content: fa-content($fa-var-truck-monster); }
    +.#{$fa-css-prefix}-truck-moving:before { content: fa-content($fa-var-truck-moving); }
    +.#{$fa-css-prefix}-truck-pickup:before { content: fa-content($fa-var-truck-pickup); }
    +.#{$fa-css-prefix}-tshirt:before { content: fa-content($fa-var-tshirt); }
    +.#{$fa-css-prefix}-tty:before { content: fa-content($fa-var-tty); }
    +.#{$fa-css-prefix}-tumblr:before { content: fa-content($fa-var-tumblr); }
    +.#{$fa-css-prefix}-tumblr-square:before { content: fa-content($fa-var-tumblr-square); }
    +.#{$fa-css-prefix}-tv:before { content: fa-content($fa-var-tv); }
    +.#{$fa-css-prefix}-twitch:before { content: fa-content($fa-var-twitch); }
    +.#{$fa-css-prefix}-twitter:before { content: fa-content($fa-var-twitter); }
    +.#{$fa-css-prefix}-twitter-square:before { content: fa-content($fa-var-twitter-square); }
    +.#{$fa-css-prefix}-typo3:before { content: fa-content($fa-var-typo3); }
    +.#{$fa-css-prefix}-uber:before { content: fa-content($fa-var-uber); }
    +.#{$fa-css-prefix}-uikit:before { content: fa-content($fa-var-uikit); }
    +.#{$fa-css-prefix}-umbrella:before { content: fa-content($fa-var-umbrella); }
    +.#{$fa-css-prefix}-umbrella-beach:before { content: fa-content($fa-var-umbrella-beach); }
    +.#{$fa-css-prefix}-underline:before { content: fa-content($fa-var-underline); }
    +.#{$fa-css-prefix}-undo:before { content: fa-content($fa-var-undo); }
    +.#{$fa-css-prefix}-undo-alt:before { content: fa-content($fa-var-undo-alt); }
    +.#{$fa-css-prefix}-uniregistry:before { content: fa-content($fa-var-uniregistry); }
    +.#{$fa-css-prefix}-universal-access:before { content: fa-content($fa-var-universal-access); }
    +.#{$fa-css-prefix}-university:before { content: fa-content($fa-var-university); }
    +.#{$fa-css-prefix}-unlink:before { content: fa-content($fa-var-unlink); }
    +.#{$fa-css-prefix}-unlock:before { content: fa-content($fa-var-unlock); }
    +.#{$fa-css-prefix}-unlock-alt:before { content: fa-content($fa-var-unlock-alt); }
    +.#{$fa-css-prefix}-untappd:before { content: fa-content($fa-var-untappd); }
    +.#{$fa-css-prefix}-upload:before { content: fa-content($fa-var-upload); }
    +.#{$fa-css-prefix}-usb:before { content: fa-content($fa-var-usb); }
    +.#{$fa-css-prefix}-user:before { content: fa-content($fa-var-user); }
    +.#{$fa-css-prefix}-user-alt:before { content: fa-content($fa-var-user-alt); }
    +.#{$fa-css-prefix}-user-alt-slash:before { content: fa-content($fa-var-user-alt-slash); }
    +.#{$fa-css-prefix}-user-astronaut:before { content: fa-content($fa-var-user-astronaut); }
    +.#{$fa-css-prefix}-user-check:before { content: fa-content($fa-var-user-check); }
    +.#{$fa-css-prefix}-user-circle:before { content: fa-content($fa-var-user-circle); }
    +.#{$fa-css-prefix}-user-clock:before { content: fa-content($fa-var-user-clock); }
    +.#{$fa-css-prefix}-user-cog:before { content: fa-content($fa-var-user-cog); }
    +.#{$fa-css-prefix}-user-edit:before { content: fa-content($fa-var-user-edit); }
    +.#{$fa-css-prefix}-user-friends:before { content: fa-content($fa-var-user-friends); }
    +.#{$fa-css-prefix}-user-graduate:before { content: fa-content($fa-var-user-graduate); }
    +.#{$fa-css-prefix}-user-injured:before { content: fa-content($fa-var-user-injured); }
    +.#{$fa-css-prefix}-user-lock:before { content: fa-content($fa-var-user-lock); }
    +.#{$fa-css-prefix}-user-md:before { content: fa-content($fa-var-user-md); }
    +.#{$fa-css-prefix}-user-minus:before { content: fa-content($fa-var-user-minus); }
    +.#{$fa-css-prefix}-user-ninja:before { content: fa-content($fa-var-user-ninja); }
    +.#{$fa-css-prefix}-user-plus:before { content: fa-content($fa-var-user-plus); }
    +.#{$fa-css-prefix}-user-secret:before { content: fa-content($fa-var-user-secret); }
    +.#{$fa-css-prefix}-user-shield:before { content: fa-content($fa-var-user-shield); }
    +.#{$fa-css-prefix}-user-slash:before { content: fa-content($fa-var-user-slash); }
    +.#{$fa-css-prefix}-user-tag:before { content: fa-content($fa-var-user-tag); }
    +.#{$fa-css-prefix}-user-tie:before { content: fa-content($fa-var-user-tie); }
    +.#{$fa-css-prefix}-user-times:before { content: fa-content($fa-var-user-times); }
    +.#{$fa-css-prefix}-users:before { content: fa-content($fa-var-users); }
    +.#{$fa-css-prefix}-users-cog:before { content: fa-content($fa-var-users-cog); }
    +.#{$fa-css-prefix}-ussunnah:before { content: fa-content($fa-var-ussunnah); }
    +.#{$fa-css-prefix}-utensil-spoon:before { content: fa-content($fa-var-utensil-spoon); }
    +.#{$fa-css-prefix}-utensils:before { content: fa-content($fa-var-utensils); }
    +.#{$fa-css-prefix}-vaadin:before { content: fa-content($fa-var-vaadin); }
    +.#{$fa-css-prefix}-vector-square:before { content: fa-content($fa-var-vector-square); }
    +.#{$fa-css-prefix}-venus:before { content: fa-content($fa-var-venus); }
    +.#{$fa-css-prefix}-venus-double:before { content: fa-content($fa-var-venus-double); }
    +.#{$fa-css-prefix}-venus-mars:before { content: fa-content($fa-var-venus-mars); }
    +.#{$fa-css-prefix}-viacoin:before { content: fa-content($fa-var-viacoin); }
    +.#{$fa-css-prefix}-viadeo:before { content: fa-content($fa-var-viadeo); }
    +.#{$fa-css-prefix}-viadeo-square:before { content: fa-content($fa-var-viadeo-square); }
    +.#{$fa-css-prefix}-vial:before { content: fa-content($fa-var-vial); }
    +.#{$fa-css-prefix}-vials:before { content: fa-content($fa-var-vials); }
    +.#{$fa-css-prefix}-viber:before { content: fa-content($fa-var-viber); }
    +.#{$fa-css-prefix}-video:before { content: fa-content($fa-var-video); }
    +.#{$fa-css-prefix}-video-slash:before { content: fa-content($fa-var-video-slash); }
    +.#{$fa-css-prefix}-vihara:before { content: fa-content($fa-var-vihara); }
    +.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo); }
    +.#{$fa-css-prefix}-vimeo-square:before { content: fa-content($fa-var-vimeo-square); }
    +.#{$fa-css-prefix}-vimeo-v:before { content: fa-content($fa-var-vimeo-v); }
    +.#{$fa-css-prefix}-vine:before { content: fa-content($fa-var-vine); }
    +.#{$fa-css-prefix}-vk:before { content: fa-content($fa-var-vk); }
    +.#{$fa-css-prefix}-vnv:before { content: fa-content($fa-var-vnv); }
    +.#{$fa-css-prefix}-volleyball-ball:before { content: fa-content($fa-var-volleyball-ball); }
    +.#{$fa-css-prefix}-volume-down:before { content: fa-content($fa-var-volume-down); }
    +.#{$fa-css-prefix}-volume-mute:before { content: fa-content($fa-var-volume-mute); }
    +.#{$fa-css-prefix}-volume-off:before { content: fa-content($fa-var-volume-off); }
    +.#{$fa-css-prefix}-volume-up:before { content: fa-content($fa-var-volume-up); }
    +.#{$fa-css-prefix}-vuejs:before { content: fa-content($fa-var-vuejs); }
    +.#{$fa-css-prefix}-walking:before { content: fa-content($fa-var-walking); }
    +.#{$fa-css-prefix}-wallet:before { content: fa-content($fa-var-wallet); }
    +.#{$fa-css-prefix}-warehouse:before { content: fa-content($fa-var-warehouse); }
    +.#{$fa-css-prefix}-weebly:before { content: fa-content($fa-var-weebly); }
    +.#{$fa-css-prefix}-weibo:before { content: fa-content($fa-var-weibo); }
    +.#{$fa-css-prefix}-weight:before { content: fa-content($fa-var-weight); }
    +.#{$fa-css-prefix}-weight-hanging:before { content: fa-content($fa-var-weight-hanging); }
    +.#{$fa-css-prefix}-weixin:before { content: fa-content($fa-var-weixin); }
    +.#{$fa-css-prefix}-whatsapp:before { content: fa-content($fa-var-whatsapp); }
    +.#{$fa-css-prefix}-whatsapp-square:before { content: fa-content($fa-var-whatsapp-square); }
    +.#{$fa-css-prefix}-wheelchair:before { content: fa-content($fa-var-wheelchair); }
    +.#{$fa-css-prefix}-whmcs:before { content: fa-content($fa-var-whmcs); }
    +.#{$fa-css-prefix}-wifi:before { content: fa-content($fa-var-wifi); }
    +.#{$fa-css-prefix}-wikipedia-w:before { content: fa-content($fa-var-wikipedia-w); }
    +.#{$fa-css-prefix}-wind:before { content: fa-content($fa-var-wind); }
    +.#{$fa-css-prefix}-window-close:before { content: fa-content($fa-var-window-close); }
    +.#{$fa-css-prefix}-window-maximize:before { content: fa-content($fa-var-window-maximize); }
    +.#{$fa-css-prefix}-window-minimize:before { content: fa-content($fa-var-window-minimize); }
    +.#{$fa-css-prefix}-window-restore:before { content: fa-content($fa-var-window-restore); }
    +.#{$fa-css-prefix}-windows:before { content: fa-content($fa-var-windows); }
    +.#{$fa-css-prefix}-wine-bottle:before { content: fa-content($fa-var-wine-bottle); }
    +.#{$fa-css-prefix}-wine-glass:before { content: fa-content($fa-var-wine-glass); }
    +.#{$fa-css-prefix}-wine-glass-alt:before { content: fa-content($fa-var-wine-glass-alt); }
    +.#{$fa-css-prefix}-wix:before { content: fa-content($fa-var-wix); }
    +.#{$fa-css-prefix}-wizards-of-the-coast:before { content: fa-content($fa-var-wizards-of-the-coast); }
    +.#{$fa-css-prefix}-wolf-pack-battalion:before { content: fa-content($fa-var-wolf-pack-battalion); }
    +.#{$fa-css-prefix}-won-sign:before { content: fa-content($fa-var-won-sign); }
    +.#{$fa-css-prefix}-wordpress:before { content: fa-content($fa-var-wordpress); }
    +.#{$fa-css-prefix}-wordpress-simple:before { content: fa-content($fa-var-wordpress-simple); }
    +.#{$fa-css-prefix}-wpbeginner:before { content: fa-content($fa-var-wpbeginner); }
    +.#{$fa-css-prefix}-wpexplorer:before { content: fa-content($fa-var-wpexplorer); }
    +.#{$fa-css-prefix}-wpforms:before { content: fa-content($fa-var-wpforms); }
    +.#{$fa-css-prefix}-wrench:before { content: fa-content($fa-var-wrench); }
    +.#{$fa-css-prefix}-x-ray:before { content: fa-content($fa-var-x-ray); }
    +.#{$fa-css-prefix}-xbox:before { content: fa-content($fa-var-xbox); }
    +.#{$fa-css-prefix}-xing:before { content: fa-content($fa-var-xing); }
    +.#{$fa-css-prefix}-xing-square:before { content: fa-content($fa-var-xing-square); }
    +.#{$fa-css-prefix}-y-combinator:before { content: fa-content($fa-var-y-combinator); }
    +.#{$fa-css-prefix}-yahoo:before { content: fa-content($fa-var-yahoo); }
    +.#{$fa-css-prefix}-yandex:before { content: fa-content($fa-var-yandex); }
    +.#{$fa-css-prefix}-yandex-international:before { content: fa-content($fa-var-yandex-international); }
    +.#{$fa-css-prefix}-yelp:before { content: fa-content($fa-var-yelp); }
    +.#{$fa-css-prefix}-yen-sign:before { content: fa-content($fa-var-yen-sign); }
    +.#{$fa-css-prefix}-yin-yang:before { content: fa-content($fa-var-yin-yang); }
    +.#{$fa-css-prefix}-yoast:before { content: fa-content($fa-var-yoast); }
    +.#{$fa-css-prefix}-youtube:before { content: fa-content($fa-var-youtube); }
    +.#{$fa-css-prefix}-youtube-square:before { content: fa-content($fa-var-youtube-square); }
    +.#{$fa-css-prefix}-zhihu:before { content: fa-content($fa-var-zhihu); }
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_larger.scss b/htdocs/theme/common/fontawesome-5/scss/_larger.scss
    new file mode 100644
    index 00000000000..27c2ad5fc45
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_larger.scss
    @@ -0,0 +1,23 @@
    +// Icon Sizes
    +// -------------------------
    +
    +// makes the font 33% larger relative to the icon container
    +.#{$fa-css-prefix}-lg {
    +  font-size: (4em / 3);
    +  line-height: (3em / 4);
    +  vertical-align: -.0667em;
    +}
    +
    +.#{$fa-css-prefix}-xs {
    +  font-size: .75em;
    +}
    +
    +.#{$fa-css-prefix}-sm {
    +  font-size: .875em;
    +}
    +
    +@for $i from 1 through 10 {
    +  .#{$fa-css-prefix}-#{$i}x {
    +    font-size: $i * 1em;
    +  }
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_list.scss b/htdocs/theme/common/fontawesome-5/scss/_list.scss
    new file mode 100644
    index 00000000000..8ebf33333cf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_list.scss
    @@ -0,0 +1,18 @@
    +// List Icons
    +// -------------------------
    +
    +.#{$fa-css-prefix}-ul {
    +  list-style-type: none;
    +  margin-left: $fa-li-width * 5/4;
    +  padding-left: 0;
    +
    +  > li { position: relative; }
    +}
    +
    +.#{$fa-css-prefix}-li {
    +  left: -$fa-li-width;
    +  position: absolute;
    +  text-align: center;
    +  width: $fa-li-width;
    +  line-height: inherit;
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_mixins.scss b/htdocs/theme/common/fontawesome-5/scss/_mixins.scss
    new file mode 100644
    index 00000000000..50a2e9f18c9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_mixins.scss
    @@ -0,0 +1,57 @@
    +// Mixins
    +// --------------------------
    +
    +@mixin fa-icon {
    +  -webkit-font-smoothing: antialiased;
    +  -moz-osx-font-smoothing: grayscale;
    +  display: inline-block;
    +  font-style: normal;
    +  font-variant: normal;
    +  font-weight: normal;
    +  line-height: 1;
    +  vertical-align: -.125em;
    +}
    +
    +@mixin fa-icon-rotate($degrees, $rotation) {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
    +  transform: rotate($degrees);
    +}
    +
    +@mixin fa-icon-flip($horiz, $vert, $rotation) {
    +  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
    +  transform: scale($horiz, $vert);
    +}
    +
    +
    +// Only display content to screen readers. A la Bootstrap 4.
    +//
    +// See: http://a11yproject.com/posts/how-to-hide-content/
    +
    +@mixin sr-only {
    +  border: 0;
    +  clip: rect(0, 0, 0, 0);
    +  height: 1px;
    +  margin: -1px;
    +  overflow: hidden;
    +  padding: 0;
    +  position: absolute;
    +  width: 1px;
    +}
    +
    +// Use in conjunction with .sr-only to only display content when it's focused.
    +//
    +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
    +//
    +// Credit: HTML5 Boilerplate
    +
    +@mixin sr-only-focusable {
    +  &:active,
    +  &:focus {
    +    clip: auto;
    +    height: auto;
    +    margin: 0;
    +    overflow: visible;
    +    position: static;
    +    width: auto;
    +  }
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_rotated-flipped.scss b/htdocs/theme/common/fontawesome-5/scss/_rotated-flipped.scss
    new file mode 100644
    index 00000000000..995bc4cc70d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_rotated-flipped.scss
    @@ -0,0 +1,23 @@
    +// Rotated & Flipped Icons
    +// -------------------------
    +
    +.#{$fa-css-prefix}-rotate-90  { @include fa-icon-rotate(90deg, 1);  }
    +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
    +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
    +
    +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
    +.#{$fa-css-prefix}-flip-vertical   { @include fa-icon-flip(1, -1, 2); }
    +.#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); }
    +
    +// Hook for IE8-9
    +// -------------------------
    +
    +:root {
    +  .#{$fa-css-prefix}-rotate-90,
    +  .#{$fa-css-prefix}-rotate-180,
    +  .#{$fa-css-prefix}-rotate-270,
    +  .#{$fa-css-prefix}-flip-horizontal,
    +  .#{$fa-css-prefix}-flip-vertical {
    +    filter: none;
    +  }
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_screen-reader.scss b/htdocs/theme/common/fontawesome-5/scss/_screen-reader.scss
    new file mode 100644
    index 00000000000..5d0ab262f15
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_screen-reader.scss
    @@ -0,0 +1,5 @@
    +// Screen Readers
    +// -------------------------
    +
    +.sr-only { @include sr-only; }
    +.sr-only-focusable { @include sr-only-focusable; }
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_shims.scss b/htdocs/theme/common/fontawesome-5/scss/_shims.scss
    new file mode 100644
    index 00000000000..08261c93df5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_shims.scss
    @@ -0,0 +1,2066 @@
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-glass:before { content: fa-content($fa-var-glass-martini); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-meetup {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-o:before { content: fa-content($fa-var-star); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-remove:before { content: fa-content($fa-var-times); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-close:before { content: fa-content($fa-var-times); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-gear:before { content: fa-content($fa-var-cog); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-trash-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-trash-o:before { content: fa-content($fa-var-trash-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-o:before { content: fa-content($fa-var-file); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-clock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-clock-o:before { content: fa-content($fa-var-clock); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-down:before { content: fa-content($fa-var-arrow-alt-circle-down); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-up:before { content: fa-content($fa-var-arrow-alt-circle-up); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-play-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-play-circle-o:before { content: fa-content($fa-var-play-circle); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-repeat:before { content: fa-content($fa-var-redo); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-rotate-right:before { content: fa-content($fa-var-redo); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-refresh:before { content: fa-content($fa-var-sync); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-list-alt {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-dedent:before { content: fa-content($fa-var-outdent); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-video-camera:before { content: fa-content($fa-var-video); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-picture-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-picture-o:before { content: fa-content($fa-var-image); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-photo {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-photo:before { content: fa-content($fa-var-image); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-image {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil:before { content: fa-content($fa-var-pencil-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square-o:before { content: fa-content($fa-var-edit); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-share-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-share-square-o:before { content: fa-content($fa-var-share-square); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-square-o:before { content: fa-content($fa-var-check-square); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows:before { content: fa-content($fa-var-arrows-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-circle-o:before { content: fa-content($fa-var-times-circle); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-circle-o:before { content: fa-content($fa-var-check-circle); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-forward:before { content: fa-content($fa-var-share); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-eye {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-eye-slash {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-warning:before { content: fa-content($fa-var-exclamation-triangle); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-v:before { content: fa-content($fa-var-arrows-alt-v); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-h:before { content: fa-content($fa-var-arrows-alt-h); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart:before { content: fa-content($fa-var-chart-bar); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart-o:before { content: fa-content($fa-var-chart-bar); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-twitter-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-gears:before { content: fa-content($fa-var-cogs); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-up:before { content: fa-content($fa-var-thumbs-up); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-down:before { content: fa-content($fa-var-thumbs-down); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-heart-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-heart-o:before { content: fa-content($fa-var-heart); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sign-out:before { content: fa-content($fa-var-sign-out-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin-square:before { content: fa-content($fa-var-linkedin); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumb-tack:before { content: fa-content($fa-var-thumbtack); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-external-link:before { content: fa-content($fa-var-external-link-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sign-in:before { content: fa-content($fa-var-sign-in-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-github-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-lemon-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-lemon-o:before { content: fa-content($fa-var-lemon); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-square-o:before { content: fa-content($fa-var-square); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bookmark-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bookmark-o:before { content: fa-content($fa-var-bookmark); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-twitter {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook-f); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-f {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-f:before { content: fa-content($fa-var-facebook-f); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-github {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-credit-card {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-feed:before { content: fa-content($fa-var-rss); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hdd-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hdd-o:before { content: fa-content($fa-var-hdd); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-right:before { content: fa-content($fa-var-hand-point-right); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-left:before { content: fa-content($fa-var-hand-point-left); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-up:before { content: fa-content($fa-var-hand-point-up); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-down:before { content: fa-content($fa-var-hand-point-down); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-group:before { content: fa-content($fa-var-users); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-chain:before { content: fa-content($fa-var-link); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-scissors:before { content: fa-content($fa-var-cut); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-files-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-files-o:before { content: fa-content($fa-var-copy); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-floppy-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-floppy-o:before { content: fa-content($fa-var-save); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-navicon:before { content: fa-content($fa-var-bars); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-reorder:before { content: fa-content($fa-var-bars); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus-g); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-money {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-money:before { content: fa-content($fa-var-money-bill-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-unsorted:before { content: fa-content($fa-var-sort); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-desc:before { content: fa-content($fa-var-sort-down); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-asc:before { content: fa-content($fa-var-sort-up); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin-in); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-rotate-left:before { content: fa-content($fa-var-undo); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-legal:before { content: fa-content($fa-var-gavel); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-tachometer:before { content: fa-content($fa-var-tachometer-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-dashboard:before { content: fa-content($fa-var-tachometer-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-comment-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-comment-o:before { content: fa-content($fa-var-comment); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-comments-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-comments-o:before { content: fa-content($fa-var-comments); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-flash:before { content: fa-content($fa-var-bolt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-clipboard {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-paste {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-paste:before { content: fa-content($fa-var-clipboard); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-lightbulb-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-lightbulb-o:before { content: fa-content($fa-var-lightbulb); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-exchange:before { content: fa-content($fa-var-exchange-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cloud-download:before { content: fa-content($fa-var-cloud-download-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cloud-upload:before { content: fa-content($fa-var-cloud-upload-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-o:before { content: fa-content($fa-var-bell); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cutlery:before { content: fa-content($fa-var-utensils); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text-o:before { content: fa-content($fa-var-file-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-building-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-building-o:before { content: fa-content($fa-var-building); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hospital-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hospital-o:before { content: fa-content($fa-var-hospital); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-mobile-phone:before { content: fa-content($fa-var-mobile-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o:before { content: fa-content($fa-var-circle); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-reply:before { content: fa-content($fa-var-reply); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-github-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-o:before { content: fa-content($fa-var-folder); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-open-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-open-o:before { content: fa-content($fa-var-folder-open); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-smile-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-smile-o:before { content: fa-content($fa-var-smile); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-frown-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-frown-o:before { content: fa-content($fa-var-frown); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-meh-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-meh-o:before { content: fa-content($fa-var-meh); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-keyboard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-keyboard-o:before { content: fa-content($fa-var-keyboard); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-flag-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-flag-o:before { content: fa-content($fa-var-flag); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-reply-all:before { content: fa-content($fa-var-reply-all); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-o:before { content: fa-content($fa-var-star-half); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-empty {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-empty:before { content: fa-content($fa-var-star-half); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-full {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-full:before { content: fa-content($fa-var-star-half); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-code-fork:before { content: fa-content($fa-var-code-branch); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-chain-broken:before { content: fa-content($fa-var-unlink); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-shield:before { content: fa-content($fa-var-shield-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-o:before { content: fa-content($fa-var-calendar); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-maxcdn {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-html5 {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-css3 {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-ticket:before { content: fa-content($fa-var-ticket-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-minus-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-minus-square-o:before { content: fa-content($fa-var-minus-square); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-level-up:before { content: fa-content($fa-var-level-up-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-level-down:before { content: fa-content($fa-var-level-down-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square:before { content: fa-content($fa-var-pen-square); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-external-link-square:before { content: fa-content($fa-var-external-link-square-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-compass {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-down:before { content: fa-content($fa-var-caret-square-down); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-down {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-down:before { content: fa-content($fa-var-caret-square-down); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-up:before { content: fa-content($fa-var-caret-square-up); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-up {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-up:before { content: fa-content($fa-var-caret-square-up); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-right:before { content: fa-content($fa-var-caret-square-right); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-right:before { content: fa-content($fa-var-caret-square-right); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-eur:before { content: fa-content($fa-var-euro-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-euro:before { content: fa-content($fa-var-euro-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-gbp:before { content: fa-content($fa-var-pound-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-usd:before { content: fa-content($fa-var-dollar-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-dollar:before { content: fa-content($fa-var-dollar-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-inr:before { content: fa-content($fa-var-rupee-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-rupee:before { content: fa-content($fa-var-rupee-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-jpy:before { content: fa-content($fa-var-yen-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cny:before { content: fa-content($fa-var-yen-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-rmb:before { content: fa-content($fa-var-yen-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-yen:before { content: fa-content($fa-var-yen-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-rub:before { content: fa-content($fa-var-ruble-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-ruble:before { content: fa-content($fa-var-ruble-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-rouble:before { content: fa-content($fa-var-ruble-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-krw:before { content: fa-content($fa-var-won-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-won:before { content: fa-content($fa-var-won-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-btc {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitcoin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitcoin:before { content: fa-content($fa-var-btc); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text:before { content: fa-content($fa-var-file-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-alpha-asc:before { content: fa-content($fa-var-sort-alpha-down); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-alpha-desc:before { content: fa-content($fa-var-sort-alpha-up); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-amount-asc:before { content: fa-content($fa-var-sort-amount-down); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-amount-desc:before { content: fa-content($fa-var-sort-amount-up); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-numeric-asc:before { content: fa-content($fa-var-sort-numeric-down); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-numeric-desc:before { content: fa-content($fa-var-sort-numeric-up); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-xing {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-xing-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-play {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-play:before { content: fa-content($fa-var-youtube); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-dropbox {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-stack-overflow {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-instagram {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-flickr {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-adn {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket-square:before { content: fa-content($fa-var-bitbucket); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-tumblr {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-tumblr-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-down:before { content: fa-content($fa-var-long-arrow-alt-down); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-up:before { content: fa-content($fa-var-long-arrow-alt-up); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-left:before { content: fa-content($fa-var-long-arrow-alt-left); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-right:before { content: fa-content($fa-var-long-arrow-alt-right); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-apple {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-windows {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-android {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-linux {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-dribbble {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-skype {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-foursquare {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-trello {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-gratipay {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-gittip {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-gittip:before { content: fa-content($fa-var-gratipay); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sun-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sun-o:before { content: fa-content($fa-var-sun); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-moon-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-moon-o:before { content: fa-content($fa-var-moon); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-vk {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-weibo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-renren {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pagelines {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-stack-exchange {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-right {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-right:before { content: fa-content($fa-var-arrow-alt-circle-right); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-left:before { content: fa-content($fa-var-arrow-alt-circle-left); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-left:before { content: fa-content($fa-var-caret-square-left); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-left {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-left:before { content: fa-content($fa-var-caret-square-left); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-dot-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-dot-circle-o:before { content: fa-content($fa-var-dot-circle); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-try:before { content: fa-content($fa-var-lira-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-turkish-lira:before { content: fa-content($fa-var-lira-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-plus-square-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-plus-square-o:before { content: fa-content($fa-var-plus-square); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-slack {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-wordpress {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-openid {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-institution:before { content: fa-content($fa-var-university); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bank:before { content: fa-content($fa-var-university); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-mortar-board:before { content: fa-content($fa-var-graduation-cap); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-yahoo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-google {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-stumbleupon-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-stumbleupon {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-delicious {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-digg {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper-pp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-drupal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-joomla {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-spoon:before { content: fa-content($fa-var-utensil-spoon); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-behance {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-behance-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-steam {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-steam-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-automobile:before { content: fa-content($fa-var-car); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cab:before { content: fa-content($fa-var-taxi); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o:before { content: fa-content($fa-var-envelope); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-deviantart {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-soundcloud {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-pdf-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-pdf-o:before { content: fa-content($fa-var-file-pdf); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-word-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-word-o:before { content: fa-content($fa-var-file-word); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-excel-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-excel-o:before { content: fa-content($fa-var-file-excel); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-powerpoint-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-powerpoint-o:before { content: fa-content($fa-var-file-powerpoint); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-image-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-image-o:before { content: fa-content($fa-var-file-image); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-photo-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-photo-o:before { content: fa-content($fa-var-file-image); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-picture-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-picture-o:before { content: fa-content($fa-var-file-image); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-archive-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-archive-o:before { content: fa-content($fa-var-file-archive); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-zip-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-zip-o:before { content: fa-content($fa-var-file-archive); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-audio-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-audio-o:before { content: fa-content($fa-var-file-audio); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-sound-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-sound-o:before { content: fa-content($fa-var-file-audio); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-video-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-video-o:before { content: fa-content($fa-var-file-video); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-movie-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-movie-o:before { content: fa-content($fa-var-file-video); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-code-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-code-o:before { content: fa-content($fa-var-file-code); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-vine {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-codepen {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-jsfiddle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-ring {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-bouy {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-bouy:before { content: fa-content($fa-var-life-ring); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-buoy {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-buoy:before { content: fa-content($fa-var-life-ring); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-saver {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-saver:before { content: fa-content($fa-var-life-ring); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-support {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-support:before { content: fa-content($fa-var-life-ring); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o-notch:before { content: fa-content($fa-var-circle-notch); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-rebel {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-ra {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-ra:before { content: fa-content($fa-var-rebel); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-resistance {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-resistance:before { content: fa-content($fa-var-rebel); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-empire {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-ge {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-ge:before { content: fa-content($fa-var-empire); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-git-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-git {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hacker-news {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator-square:before { content: fa-content($fa-var-hacker-news); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc-square:before { content: fa-content($fa-var-hacker-news); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-tencent-weibo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-qq {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-weixin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-wechat {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-wechat:before { content: fa-content($fa-var-weixin); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-send:before { content: fa-content($fa-var-paper-plane); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-paper-plane-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-paper-plane-o:before { content: fa-content($fa-var-paper-plane); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-send-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-send-o:before { content: fa-content($fa-var-paper-plane); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-thin {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-thin:before { content: fa-content($fa-var-circle); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-header:before { content: fa-content($fa-var-heading); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sliders:before { content: fa-content($fa-var-sliders-h); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-futbol-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-futbol-o:before { content: fa-content($fa-var-futbol); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-soccer-ball-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-soccer-ball-o:before { content: fa-content($fa-var-futbol); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-slideshare {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-twitch {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-yelp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-newspaper-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-newspaper-o:before { content: fa-content($fa-var-newspaper); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-paypal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-wallet {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-visa {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-mastercard {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-discover {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-amex {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-paypal {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-stripe {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-slash-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-slash-o:before { content: fa-content($fa-var-bell-slash); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash-alt); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-copyright {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-eyedropper:before { content: fa-content($fa-var-eye-dropper); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-area-chart:before { content: fa-content($fa-var-chart-area); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pie-chart:before { content: fa-content($fa-var-chart-pie); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-line-chart:before { content: fa-content($fa-var-chart-line); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-lastfm {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-lastfm-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-ioxhost {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-angellist {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc:before { content: fa-content($fa-var-closed-captioning); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-ils:before { content: fa-content($fa-var-shekel-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-shekel:before { content: fa-content($fa-var-shekel-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sheqel:before { content: fa-content($fa-var-shekel-sign); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-meanpath {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-meanpath:before { content: fa-content($fa-var-font-awesome); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-buysellads {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-connectdevelop {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-dashcube {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-forumbee {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-leanpub {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sellsy {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-shirtsinbulk {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-simplybuilt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-skyatlas {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-diamond {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-diamond:before { content: fa-content($fa-var-gem); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-intersex:before { content: fa-content($fa-var-transgender); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-official {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-official:before { content: fa-content($fa-var-facebook); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest-p {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-whatsapp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hotel:before { content: fa-content($fa-var-bed); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-viacoin {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-medium {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc:before { content: fa-content($fa-var-y-combinator); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-optin-monster {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-opencart {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-expeditedssl {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-4:before { content: fa-content($fa-var-battery-full); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery:before { content: fa-content($fa-var-battery-full); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-3:before { content: fa-content($fa-var-battery-three-quarters); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-2:before { content: fa-content($fa-var-battery-half); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-1:before { content: fa-content($fa-var-battery-quarter); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-0:before { content: fa-content($fa-var-battery-empty); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-object-group {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-object-ungroup {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sticky-note-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-sticky-note-o:before { content: fa-content($fa-var-sticky-note); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-jcb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-diners-club {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-clone {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-o:before { content: fa-content($fa-var-hourglass); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-1:before { content: fa-content($fa-var-hourglass-start); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-2:before { content: fa-content($fa-var-hourglass-half); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-3:before { content: fa-content($fa-var-hourglass-end); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-rock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-rock-o:before { content: fa-content($fa-var-hand-rock); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-grab-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-grab-o:before { content: fa-content($fa-var-hand-rock); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-paper-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-paper-o:before { content: fa-content($fa-var-hand-paper); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-stop-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-stop-o:before { content: fa-content($fa-var-hand-paper); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-scissors-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-scissors-o:before { content: fa-content($fa-var-hand-scissors); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-lizard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-lizard-o:before { content: fa-content($fa-var-hand-lizard); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-spock-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-spock-o:before { content: fa-content($fa-var-hand-spock); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-pointer-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-pointer-o:before { content: fa-content($fa-var-hand-pointer); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-peace-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-peace-o:before { content: fa-content($fa-var-hand-peace); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-registered {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-creative-commons {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-gg {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-gg-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-tripadvisor {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-odnoklassniki {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-odnoklassniki-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-get-pocket {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-wikipedia-w {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-safari {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-chrome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-firefox {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-opera {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-internet-explorer {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-television:before { content: fa-content($fa-var-tv); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-contao {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-500px {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-amazon {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-plus-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-plus-o:before { content: fa-content($fa-var-calendar-plus); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-minus-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-minus-o:before { content: fa-content($fa-var-calendar-minus); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-times-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-times-o:before { content: fa-content($fa-var-calendar-times); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-check-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-check-o:before { content: fa-content($fa-var-calendar-check); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-map-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-map-o:before { content: fa-content($fa-var-map); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting:before { content: fa-content($fa-var-comment-dots); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting-o:before { content: fa-content($fa-var-comment-dots); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-houzz {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo-v); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-black-tie {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-fonticons {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit-alien {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-edge {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-credit-card-alt:before { content: fa-content($fa-var-credit-card); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-codiepie {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-modx {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-fort-awesome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-usb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-product-hunt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-mixcloud {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-scribd {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pause-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pause-circle-o:before { content: fa-content($fa-var-pause-circle); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-stop-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-stop-circle-o:before { content: fa-content($fa-var-stop-circle); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bluetooth {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bluetooth-b {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-gitlab {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-wpbeginner {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-wpforms {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-envira {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-wheelchair-alt {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-wheelchair-alt:before { content: fa-content($fa-var-accessible-icon); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-question-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-question-circle-o:before { content: fa-content($fa-var-question-circle); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-volume-control-phone:before { content: fa-content($fa-var-phone-volume); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-asl-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-deafness:before { content: fa-content($fa-var-deaf); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-hard-of-hearing:before { content: fa-content($fa-var-deaf); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-glide {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-glide-g {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-signing:before { content: fa-content($fa-var-sign-language); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-viadeo {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-viadeo-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-ghost {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-square {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-first-order {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-yoast {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-themeisle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-official {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-official:before { content: fa-content($fa-var-google-plus); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-circle {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-circle:before { content: fa-content($fa-var-google-plus); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-font-awesome {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-fa {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-fa:before { content: fa-content($fa-var-font-awesome); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-handshake-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-handshake-o:before { content: fa-content($fa-var-handshake); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-open-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-open-o:before { content: fa-content($fa-var-envelope-open); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-linode {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-book-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-book-o:before { content: fa-content($fa-var-address-book); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard:before { content: fa-content($fa-var-address-card); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-card-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-card-o:before { content: fa-content($fa-var-address-card); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard-o:before { content: fa-content($fa-var-address-card); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-circle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-circle-o:before { content: fa-content($fa-var-user-circle); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-o:before { content: fa-content($fa-var-user); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-id-badge {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license:before { content: fa-content($fa-var-id-card); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-id-card-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-id-card-o:before { content: fa-content($fa-var-id-card); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license-o:before { content: fa-content($fa-var-id-card); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-quora {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-free-code-camp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-telegram {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-4:before { content: fa-content($fa-var-thermometer-full); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer:before { content: fa-content($fa-var-thermometer-full); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-3:before { content: fa-content($fa-var-thermometer-three-quarters); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-2:before { content: fa-content($fa-var-thermometer-half); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-1:before { content: fa-content($fa-var-thermometer-quarter); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-0:before { content: fa-content($fa-var-thermometer-empty); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bathtub:before { content: fa-content($fa-var-bath); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-s15:before { content: fa-content($fa-var-bath); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-maximize {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-restore {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle:before { content: fa-content($fa-var-window-close); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-close-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-close-o:before { content: fa-content($fa-var-window-close); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle-o:before { content: fa-content($fa-var-window-close); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-bandcamp {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-grav {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-etsy {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-imdb {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-ravelry {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-eercast {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-eercast:before { content: fa-content($fa-var-sellcast); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-snowflake-o {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-snowflake-o:before { content: fa-content($fa-var-snowflake); }
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-superpowers {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-wpexplorer {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    +.#{$fa-css-prefix}.#{$fa-css-prefix}-spotify {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-weight: 400;
    +}
    +
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_stacked.scss b/htdocs/theme/common/fontawesome-5/scss/_stacked.scss
    new file mode 100644
    index 00000000000..6c09d84cd11
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_stacked.scss
    @@ -0,0 +1,31 @@
    +// Stacked Icons
    +// -------------------------
    +
    +.#{$fa-css-prefix}-stack {
    +  display: inline-block;
    +  height: 2em;
    +  line-height: 2em;
    +  position: relative;
    +  vertical-align: middle;
    +  width: 2em;
    +}
    +
    +.#{$fa-css-prefix}-stack-1x,
    +.#{$fa-css-prefix}-stack-2x {
    +  left: 0;
    +  position: absolute;
    +  text-align: center;
    +  width: 100%;
    +}
    +
    +.#{$fa-css-prefix}-stack-1x {
    +  line-height: inherit;
    +}
    +
    +.#{$fa-css-prefix}-stack-2x {
    +  font-size: 2em;
    +}
    +
    +.#{$fa-css-prefix}-inverse {
    +  color: $fa-inverse;
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/_variables.scss b/htdocs/theme/common/fontawesome-5/scss/_variables.scss
    new file mode 100644
    index 00000000000..b8be62316af
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/_variables.scss
    @@ -0,0 +1,1254 @@
    +// Variables
    +// --------------------------
    +
    +$fa-font-path:                "../webfonts" !default;
    +$fa-font-size-base:           16px !default;
    +$fa-css-prefix:               fa !default;
    +$fa-version:                  "5.4.1" !default;
    +$fa-border-color:             #eee !default;
    +$fa-inverse:                  #fff !default;
    +$fa-li-width:                 2em !default;
    +
    +// Convenience function used to set content property
    +@function fa-content($fa-var) {
    +  @return unquote("\"#{ $fa-var }\"");
    +}
    +
    +$fa-var-500px: \f26e;
    +$fa-var-accessible-icon: \f368;
    +$fa-var-accusoft: \f369;
    +$fa-var-acquisitions-incorporated: \f6af;
    +$fa-var-ad: \f641;
    +$fa-var-address-book: \f2b9;
    +$fa-var-address-card: \f2bb;
    +$fa-var-adjust: \f042;
    +$fa-var-adn: \f170;
    +$fa-var-adversal: \f36a;
    +$fa-var-affiliatetheme: \f36b;
    +$fa-var-air-freshener: \f5d0;
    +$fa-var-algolia: \f36c;
    +$fa-var-align-center: \f037;
    +$fa-var-align-justify: \f039;
    +$fa-var-align-left: \f036;
    +$fa-var-align-right: \f038;
    +$fa-var-alipay: \f642;
    +$fa-var-allergies: \f461;
    +$fa-var-amazon: \f270;
    +$fa-var-amazon-pay: \f42c;
    +$fa-var-ambulance: \f0f9;
    +$fa-var-american-sign-language-interpreting: \f2a3;
    +$fa-var-amilia: \f36d;
    +$fa-var-anchor: \f13d;
    +$fa-var-android: \f17b;
    +$fa-var-angellist: \f209;
    +$fa-var-angle-double-down: \f103;
    +$fa-var-angle-double-left: \f100;
    +$fa-var-angle-double-right: \f101;
    +$fa-var-angle-double-up: \f102;
    +$fa-var-angle-down: \f107;
    +$fa-var-angle-left: \f104;
    +$fa-var-angle-right: \f105;
    +$fa-var-angle-up: \f106;
    +$fa-var-angry: \f556;
    +$fa-var-angrycreative: \f36e;
    +$fa-var-angular: \f420;
    +$fa-var-ankh: \f644;
    +$fa-var-app-store: \f36f;
    +$fa-var-app-store-ios: \f370;
    +$fa-var-apper: \f371;
    +$fa-var-apple: \f179;
    +$fa-var-apple-alt: \f5d1;
    +$fa-var-apple-pay: \f415;
    +$fa-var-archive: \f187;
    +$fa-var-archway: \f557;
    +$fa-var-arrow-alt-circle-down: \f358;
    +$fa-var-arrow-alt-circle-left: \f359;
    +$fa-var-arrow-alt-circle-right: \f35a;
    +$fa-var-arrow-alt-circle-up: \f35b;
    +$fa-var-arrow-circle-down: \f0ab;
    +$fa-var-arrow-circle-left: \f0a8;
    +$fa-var-arrow-circle-right: \f0a9;
    +$fa-var-arrow-circle-up: \f0aa;
    +$fa-var-arrow-down: \f063;
    +$fa-var-arrow-left: \f060;
    +$fa-var-arrow-right: \f061;
    +$fa-var-arrow-up: \f062;
    +$fa-var-arrows-alt: \f0b2;
    +$fa-var-arrows-alt-h: \f337;
    +$fa-var-arrows-alt-v: \f338;
    +$fa-var-assistive-listening-systems: \f2a2;
    +$fa-var-asterisk: \f069;
    +$fa-var-asymmetrik: \f372;
    +$fa-var-at: \f1fa;
    +$fa-var-atlas: \f558;
    +$fa-var-atom: \f5d2;
    +$fa-var-audible: \f373;
    +$fa-var-audio-description: \f29e;
    +$fa-var-autoprefixer: \f41c;
    +$fa-var-avianex: \f374;
    +$fa-var-aviato: \f421;
    +$fa-var-award: \f559;
    +$fa-var-aws: \f375;
    +$fa-var-backspace: \f55a;
    +$fa-var-backward: \f04a;
    +$fa-var-balance-scale: \f24e;
    +$fa-var-ban: \f05e;
    +$fa-var-band-aid: \f462;
    +$fa-var-bandcamp: \f2d5;
    +$fa-var-barcode: \f02a;
    +$fa-var-bars: \f0c9;
    +$fa-var-baseball-ball: \f433;
    +$fa-var-basketball-ball: \f434;
    +$fa-var-bath: \f2cd;
    +$fa-var-battery-empty: \f244;
    +$fa-var-battery-full: \f240;
    +$fa-var-battery-half: \f242;
    +$fa-var-battery-quarter: \f243;
    +$fa-var-battery-three-quarters: \f241;
    +$fa-var-bed: \f236;
    +$fa-var-beer: \f0fc;
    +$fa-var-behance: \f1b4;
    +$fa-var-behance-square: \f1b5;
    +$fa-var-bell: \f0f3;
    +$fa-var-bell-slash: \f1f6;
    +$fa-var-bezier-curve: \f55b;
    +$fa-var-bible: \f647;
    +$fa-var-bicycle: \f206;
    +$fa-var-bimobject: \f378;
    +$fa-var-binoculars: \f1e5;
    +$fa-var-birthday-cake: \f1fd;
    +$fa-var-bitbucket: \f171;
    +$fa-var-bitcoin: \f379;
    +$fa-var-bity: \f37a;
    +$fa-var-black-tie: \f27e;
    +$fa-var-blackberry: \f37b;
    +$fa-var-blender: \f517;
    +$fa-var-blender-phone: \f6b6;
    +$fa-var-blind: \f29d;
    +$fa-var-blogger: \f37c;
    +$fa-var-blogger-b: \f37d;
    +$fa-var-bluetooth: \f293;
    +$fa-var-bluetooth-b: \f294;
    +$fa-var-bold: \f032;
    +$fa-var-bolt: \f0e7;
    +$fa-var-bomb: \f1e2;
    +$fa-var-bone: \f5d7;
    +$fa-var-bong: \f55c;
    +$fa-var-book: \f02d;
    +$fa-var-book-dead: \f6b7;
    +$fa-var-book-open: \f518;
    +$fa-var-book-reader: \f5da;
    +$fa-var-bookmark: \f02e;
    +$fa-var-bowling-ball: \f436;
    +$fa-var-box: \f466;
    +$fa-var-box-open: \f49e;
    +$fa-var-boxes: \f468;
    +$fa-var-braille: \f2a1;
    +$fa-var-brain: \f5dc;
    +$fa-var-briefcase: \f0b1;
    +$fa-var-briefcase-medical: \f469;
    +$fa-var-broadcast-tower: \f519;
    +$fa-var-broom: \f51a;
    +$fa-var-brush: \f55d;
    +$fa-var-btc: \f15a;
    +$fa-var-bug: \f188;
    +$fa-var-building: \f1ad;
    +$fa-var-bullhorn: \f0a1;
    +$fa-var-bullseye: \f140;
    +$fa-var-burn: \f46a;
    +$fa-var-buromobelexperte: \f37f;
    +$fa-var-bus: \f207;
    +$fa-var-bus-alt: \f55e;
    +$fa-var-business-time: \f64a;
    +$fa-var-buysellads: \f20d;
    +$fa-var-calculator: \f1ec;
    +$fa-var-calendar: \f133;
    +$fa-var-calendar-alt: \f073;
    +$fa-var-calendar-check: \f274;
    +$fa-var-calendar-minus: \f272;
    +$fa-var-calendar-plus: \f271;
    +$fa-var-calendar-times: \f273;
    +$fa-var-camera: \f030;
    +$fa-var-camera-retro: \f083;
    +$fa-var-campground: \f6bb;
    +$fa-var-cannabis: \f55f;
    +$fa-var-capsules: \f46b;
    +$fa-var-car: \f1b9;
    +$fa-var-car-alt: \f5de;
    +$fa-var-car-battery: \f5df;
    +$fa-var-car-crash: \f5e1;
    +$fa-var-car-side: \f5e4;
    +$fa-var-caret-down: \f0d7;
    +$fa-var-caret-left: \f0d9;
    +$fa-var-caret-right: \f0da;
    +$fa-var-caret-square-down: \f150;
    +$fa-var-caret-square-left: \f191;
    +$fa-var-caret-square-right: \f152;
    +$fa-var-caret-square-up: \f151;
    +$fa-var-caret-up: \f0d8;
    +$fa-var-cart-arrow-down: \f218;
    +$fa-var-cart-plus: \f217;
    +$fa-var-cat: \f6be;
    +$fa-var-cc-amazon-pay: \f42d;
    +$fa-var-cc-amex: \f1f3;
    +$fa-var-cc-apple-pay: \f416;
    +$fa-var-cc-diners-club: \f24c;
    +$fa-var-cc-discover: \f1f2;
    +$fa-var-cc-jcb: \f24b;
    +$fa-var-cc-mastercard: \f1f1;
    +$fa-var-cc-paypal: \f1f4;
    +$fa-var-cc-stripe: \f1f5;
    +$fa-var-cc-visa: \f1f0;
    +$fa-var-centercode: \f380;
    +$fa-var-certificate: \f0a3;
    +$fa-var-chair: \f6c0;
    +$fa-var-chalkboard: \f51b;
    +$fa-var-chalkboard-teacher: \f51c;
    +$fa-var-charging-station: \f5e7;
    +$fa-var-chart-area: \f1fe;
    +$fa-var-chart-bar: \f080;
    +$fa-var-chart-line: \f201;
    +$fa-var-chart-pie: \f200;
    +$fa-var-check: \f00c;
    +$fa-var-check-circle: \f058;
    +$fa-var-check-double: \f560;
    +$fa-var-check-square: \f14a;
    +$fa-var-chess: \f439;
    +$fa-var-chess-bishop: \f43a;
    +$fa-var-chess-board: \f43c;
    +$fa-var-chess-king: \f43f;
    +$fa-var-chess-knight: \f441;
    +$fa-var-chess-pawn: \f443;
    +$fa-var-chess-queen: \f445;
    +$fa-var-chess-rook: \f447;
    +$fa-var-chevron-circle-down: \f13a;
    +$fa-var-chevron-circle-left: \f137;
    +$fa-var-chevron-circle-right: \f138;
    +$fa-var-chevron-circle-up: \f139;
    +$fa-var-chevron-down: \f078;
    +$fa-var-chevron-left: \f053;
    +$fa-var-chevron-right: \f054;
    +$fa-var-chevron-up: \f077;
    +$fa-var-child: \f1ae;
    +$fa-var-chrome: \f268;
    +$fa-var-church: \f51d;
    +$fa-var-circle: \f111;
    +$fa-var-circle-notch: \f1ce;
    +$fa-var-city: \f64f;
    +$fa-var-clipboard: \f328;
    +$fa-var-clipboard-check: \f46c;
    +$fa-var-clipboard-list: \f46d;
    +$fa-var-clock: \f017;
    +$fa-var-clone: \f24d;
    +$fa-var-closed-captioning: \f20a;
    +$fa-var-cloud: \f0c2;
    +$fa-var-cloud-download-alt: \f381;
    +$fa-var-cloud-moon: \f6c3;
    +$fa-var-cloud-sun: \f6c4;
    +$fa-var-cloud-upload-alt: \f382;
    +$fa-var-cloudscale: \f383;
    +$fa-var-cloudsmith: \f384;
    +$fa-var-cloudversify: \f385;
    +$fa-var-cocktail: \f561;
    +$fa-var-code: \f121;
    +$fa-var-code-branch: \f126;
    +$fa-var-codepen: \f1cb;
    +$fa-var-codiepie: \f284;
    +$fa-var-coffee: \f0f4;
    +$fa-var-cog: \f013;
    +$fa-var-cogs: \f085;
    +$fa-var-coins: \f51e;
    +$fa-var-columns: \f0db;
    +$fa-var-comment: \f075;
    +$fa-var-comment-alt: \f27a;
    +$fa-var-comment-dollar: \f651;
    +$fa-var-comment-dots: \f4ad;
    +$fa-var-comment-slash: \f4b3;
    +$fa-var-comments: \f086;
    +$fa-var-comments-dollar: \f653;
    +$fa-var-compact-disc: \f51f;
    +$fa-var-compass: \f14e;
    +$fa-var-compress: \f066;
    +$fa-var-concierge-bell: \f562;
    +$fa-var-connectdevelop: \f20e;
    +$fa-var-contao: \f26d;
    +$fa-var-cookie: \f563;
    +$fa-var-cookie-bite: \f564;
    +$fa-var-copy: \f0c5;
    +$fa-var-copyright: \f1f9;
    +$fa-var-couch: \f4b8;
    +$fa-var-cpanel: \f388;
    +$fa-var-creative-commons: \f25e;
    +$fa-var-creative-commons-by: \f4e7;
    +$fa-var-creative-commons-nc: \f4e8;
    +$fa-var-creative-commons-nc-eu: \f4e9;
    +$fa-var-creative-commons-nc-jp: \f4ea;
    +$fa-var-creative-commons-nd: \f4eb;
    +$fa-var-creative-commons-pd: \f4ec;
    +$fa-var-creative-commons-pd-alt: \f4ed;
    +$fa-var-creative-commons-remix: \f4ee;
    +$fa-var-creative-commons-sa: \f4ef;
    +$fa-var-creative-commons-sampling: \f4f0;
    +$fa-var-creative-commons-sampling-plus: \f4f1;
    +$fa-var-creative-commons-share: \f4f2;
    +$fa-var-creative-commons-zero: \f4f3;
    +$fa-var-credit-card: \f09d;
    +$fa-var-critical-role: \f6c9;
    +$fa-var-crop: \f125;
    +$fa-var-crop-alt: \f565;
    +$fa-var-cross: \f654;
    +$fa-var-crosshairs: \f05b;
    +$fa-var-crow: \f520;
    +$fa-var-crown: \f521;
    +$fa-var-css3: \f13c;
    +$fa-var-css3-alt: \f38b;
    +$fa-var-cube: \f1b2;
    +$fa-var-cubes: \f1b3;
    +$fa-var-cut: \f0c4;
    +$fa-var-cuttlefish: \f38c;
    +$fa-var-d-and-d: \f38d;
    +$fa-var-dashcube: \f210;
    +$fa-var-database: \f1c0;
    +$fa-var-deaf: \f2a4;
    +$fa-var-delicious: \f1a5;
    +$fa-var-deploydog: \f38e;
    +$fa-var-deskpro: \f38f;
    +$fa-var-desktop: \f108;
    +$fa-var-dev: \f6cc;
    +$fa-var-deviantart: \f1bd;
    +$fa-var-dharmachakra: \f655;
    +$fa-var-diagnoses: \f470;
    +$fa-var-dice: \f522;
    +$fa-var-dice-d20: \f6cf;
    +$fa-var-dice-d6: \f6d1;
    +$fa-var-dice-five: \f523;
    +$fa-var-dice-four: \f524;
    +$fa-var-dice-one: \f525;
    +$fa-var-dice-six: \f526;
    +$fa-var-dice-three: \f527;
    +$fa-var-dice-two: \f528;
    +$fa-var-digg: \f1a6;
    +$fa-var-digital-ocean: \f391;
    +$fa-var-digital-tachograph: \f566;
    +$fa-var-directions: \f5eb;
    +$fa-var-discord: \f392;
    +$fa-var-discourse: \f393;
    +$fa-var-divide: \f529;
    +$fa-var-dizzy: \f567;
    +$fa-var-dna: \f471;
    +$fa-var-dochub: \f394;
    +$fa-var-docker: \f395;
    +$fa-var-dog: \f6d3;
    +$fa-var-dollar-sign: \f155;
    +$fa-var-dolly: \f472;
    +$fa-var-dolly-flatbed: \f474;
    +$fa-var-donate: \f4b9;
    +$fa-var-door-closed: \f52a;
    +$fa-var-door-open: \f52b;
    +$fa-var-dot-circle: \f192;
    +$fa-var-dove: \f4ba;
    +$fa-var-download: \f019;
    +$fa-var-draft2digital: \f396;
    +$fa-var-drafting-compass: \f568;
    +$fa-var-dragon: \f6d5;
    +$fa-var-draw-polygon: \f5ee;
    +$fa-var-dribbble: \f17d;
    +$fa-var-dribbble-square: \f397;
    +$fa-var-dropbox: \f16b;
    +$fa-var-drum: \f569;
    +$fa-var-drum-steelpan: \f56a;
    +$fa-var-drumstick-bite: \f6d7;
    +$fa-var-drupal: \f1a9;
    +$fa-var-dumbbell: \f44b;
    +$fa-var-dungeon: \f6d9;
    +$fa-var-dyalog: \f399;
    +$fa-var-earlybirds: \f39a;
    +$fa-var-ebay: \f4f4;
    +$fa-var-edge: \f282;
    +$fa-var-edit: \f044;
    +$fa-var-eject: \f052;
    +$fa-var-elementor: \f430;
    +$fa-var-ellipsis-h: \f141;
    +$fa-var-ellipsis-v: \f142;
    +$fa-var-ello: \f5f1;
    +$fa-var-ember: \f423;
    +$fa-var-empire: \f1d1;
    +$fa-var-envelope: \f0e0;
    +$fa-var-envelope-open: \f2b6;
    +$fa-var-envelope-open-text: \f658;
    +$fa-var-envelope-square: \f199;
    +$fa-var-envira: \f299;
    +$fa-var-equals: \f52c;
    +$fa-var-eraser: \f12d;
    +$fa-var-erlang: \f39d;
    +$fa-var-ethereum: \f42e;
    +$fa-var-etsy: \f2d7;
    +$fa-var-euro-sign: \f153;
    +$fa-var-exchange-alt: \f362;
    +$fa-var-exclamation: \f12a;
    +$fa-var-exclamation-circle: \f06a;
    +$fa-var-exclamation-triangle: \f071;
    +$fa-var-expand: \f065;
    +$fa-var-expand-arrows-alt: \f31e;
    +$fa-var-expeditedssl: \f23e;
    +$fa-var-external-link-alt: \f35d;
    +$fa-var-external-link-square-alt: \f360;
    +$fa-var-eye: \f06e;
    +$fa-var-eye-dropper: \f1fb;
    +$fa-var-eye-slash: \f070;
    +$fa-var-facebook: \f09a;
    +$fa-var-facebook-f: \f39e;
    +$fa-var-facebook-messenger: \f39f;
    +$fa-var-facebook-square: \f082;
    +$fa-var-fantasy-flight-games: \f6dc;
    +$fa-var-fast-backward: \f049;
    +$fa-var-fast-forward: \f050;
    +$fa-var-fax: \f1ac;
    +$fa-var-feather: \f52d;
    +$fa-var-feather-alt: \f56b;
    +$fa-var-female: \f182;
    +$fa-var-fighter-jet: \f0fb;
    +$fa-var-file: \f15b;
    +$fa-var-file-alt: \f15c;
    +$fa-var-file-archive: \f1c6;
    +$fa-var-file-audio: \f1c7;
    +$fa-var-file-code: \f1c9;
    +$fa-var-file-contract: \f56c;
    +$fa-var-file-csv: \f6dd;
    +$fa-var-file-download: \f56d;
    +$fa-var-file-excel: \f1c3;
    +$fa-var-file-export: \f56e;
    +$fa-var-file-image: \f1c5;
    +$fa-var-file-import: \f56f;
    +$fa-var-file-invoice: \f570;
    +$fa-var-file-invoice-dollar: \f571;
    +$fa-var-file-medical: \f477;
    +$fa-var-file-medical-alt: \f478;
    +$fa-var-file-pdf: \f1c1;
    +$fa-var-file-powerpoint: \f1c4;
    +$fa-var-file-prescription: \f572;
    +$fa-var-file-signature: \f573;
    +$fa-var-file-upload: \f574;
    +$fa-var-file-video: \f1c8;
    +$fa-var-file-word: \f1c2;
    +$fa-var-fill: \f575;
    +$fa-var-fill-drip: \f576;
    +$fa-var-film: \f008;
    +$fa-var-filter: \f0b0;
    +$fa-var-fingerprint: \f577;
    +$fa-var-fire: \f06d;
    +$fa-var-fire-extinguisher: \f134;
    +$fa-var-firefox: \f269;
    +$fa-var-first-aid: \f479;
    +$fa-var-first-order: \f2b0;
    +$fa-var-first-order-alt: \f50a;
    +$fa-var-firstdraft: \f3a1;
    +$fa-var-fish: \f578;
    +$fa-var-fist-raised: \f6de;
    +$fa-var-flag: \f024;
    +$fa-var-flag-checkered: \f11e;
    +$fa-var-flask: \f0c3;
    +$fa-var-flickr: \f16e;
    +$fa-var-flipboard: \f44d;
    +$fa-var-flushed: \f579;
    +$fa-var-fly: \f417;
    +$fa-var-folder: \f07b;
    +$fa-var-folder-minus: \f65d;
    +$fa-var-folder-open: \f07c;
    +$fa-var-folder-plus: \f65e;
    +$fa-var-font: \f031;
    +$fa-var-font-awesome: \f2b4;
    +$fa-var-font-awesome-alt: \f35c;
    +$fa-var-font-awesome-flag: \f425;
    +$fa-var-font-awesome-logo-full: \f4e6;
    +$fa-var-fonticons: \f280;
    +$fa-var-fonticons-fi: \f3a2;
    +$fa-var-football-ball: \f44e;
    +$fa-var-fort-awesome: \f286;
    +$fa-var-fort-awesome-alt: \f3a3;
    +$fa-var-forumbee: \f211;
    +$fa-var-forward: \f04e;
    +$fa-var-foursquare: \f180;
    +$fa-var-free-code-camp: \f2c5;
    +$fa-var-freebsd: \f3a4;
    +$fa-var-frog: \f52e;
    +$fa-var-frown: \f119;
    +$fa-var-frown-open: \f57a;
    +$fa-var-fulcrum: \f50b;
    +$fa-var-funnel-dollar: \f662;
    +$fa-var-futbol: \f1e3;
    +$fa-var-galactic-republic: \f50c;
    +$fa-var-galactic-senate: \f50d;
    +$fa-var-gamepad: \f11b;
    +$fa-var-gas-pump: \f52f;
    +$fa-var-gavel: \f0e3;
    +$fa-var-gem: \f3a5;
    +$fa-var-genderless: \f22d;
    +$fa-var-get-pocket: \f265;
    +$fa-var-gg: \f260;
    +$fa-var-gg-circle: \f261;
    +$fa-var-ghost: \f6e2;
    +$fa-var-gift: \f06b;
    +$fa-var-git: \f1d3;
    +$fa-var-git-square: \f1d2;
    +$fa-var-github: \f09b;
    +$fa-var-github-alt: \f113;
    +$fa-var-github-square: \f092;
    +$fa-var-gitkraken: \f3a6;
    +$fa-var-gitlab: \f296;
    +$fa-var-gitter: \f426;
    +$fa-var-glass-martini: \f000;
    +$fa-var-glass-martini-alt: \f57b;
    +$fa-var-glasses: \f530;
    +$fa-var-glide: \f2a5;
    +$fa-var-glide-g: \f2a6;
    +$fa-var-globe: \f0ac;
    +$fa-var-globe-africa: \f57c;
    +$fa-var-globe-americas: \f57d;
    +$fa-var-globe-asia: \f57e;
    +$fa-var-gofore: \f3a7;
    +$fa-var-golf-ball: \f450;
    +$fa-var-goodreads: \f3a8;
    +$fa-var-goodreads-g: \f3a9;
    +$fa-var-google: \f1a0;
    +$fa-var-google-drive: \f3aa;
    +$fa-var-google-play: \f3ab;
    +$fa-var-google-plus: \f2b3;
    +$fa-var-google-plus-g: \f0d5;
    +$fa-var-google-plus-square: \f0d4;
    +$fa-var-google-wallet: \f1ee;
    +$fa-var-gopuram: \f664;
    +$fa-var-graduation-cap: \f19d;
    +$fa-var-gratipay: \f184;
    +$fa-var-grav: \f2d6;
    +$fa-var-greater-than: \f531;
    +$fa-var-greater-than-equal: \f532;
    +$fa-var-grimace: \f57f;
    +$fa-var-grin: \f580;
    +$fa-var-grin-alt: \f581;
    +$fa-var-grin-beam: \f582;
    +$fa-var-grin-beam-sweat: \f583;
    +$fa-var-grin-hearts: \f584;
    +$fa-var-grin-squint: \f585;
    +$fa-var-grin-squint-tears: \f586;
    +$fa-var-grin-stars: \f587;
    +$fa-var-grin-tears: \f588;
    +$fa-var-grin-tongue: \f589;
    +$fa-var-grin-tongue-squint: \f58a;
    +$fa-var-grin-tongue-wink: \f58b;
    +$fa-var-grin-wink: \f58c;
    +$fa-var-grip-horizontal: \f58d;
    +$fa-var-grip-vertical: \f58e;
    +$fa-var-gripfire: \f3ac;
    +$fa-var-grunt: \f3ad;
    +$fa-var-gulp: \f3ae;
    +$fa-var-h-square: \f0fd;
    +$fa-var-hacker-news: \f1d4;
    +$fa-var-hacker-news-square: \f3af;
    +$fa-var-hackerrank: \f5f7;
    +$fa-var-hammer: \f6e3;
    +$fa-var-hamsa: \f665;
    +$fa-var-hand-holding: \f4bd;
    +$fa-var-hand-holding-heart: \f4be;
    +$fa-var-hand-holding-usd: \f4c0;
    +$fa-var-hand-lizard: \f258;
    +$fa-var-hand-paper: \f256;
    +$fa-var-hand-peace: \f25b;
    +$fa-var-hand-point-down: \f0a7;
    +$fa-var-hand-point-left: \f0a5;
    +$fa-var-hand-point-right: \f0a4;
    +$fa-var-hand-point-up: \f0a6;
    +$fa-var-hand-pointer: \f25a;
    +$fa-var-hand-rock: \f255;
    +$fa-var-hand-scissors: \f257;
    +$fa-var-hand-spock: \f259;
    +$fa-var-hands: \f4c2;
    +$fa-var-hands-helping: \f4c4;
    +$fa-var-handshake: \f2b5;
    +$fa-var-hanukiah: \f6e6;
    +$fa-var-hashtag: \f292;
    +$fa-var-hat-wizard: \f6e8;
    +$fa-var-haykal: \f666;
    +$fa-var-hdd: \f0a0;
    +$fa-var-heading: \f1dc;
    +$fa-var-headphones: \f025;
    +$fa-var-headphones-alt: \f58f;
    +$fa-var-headset: \f590;
    +$fa-var-heart: \f004;
    +$fa-var-heartbeat: \f21e;
    +$fa-var-helicopter: \f533;
    +$fa-var-highlighter: \f591;
    +$fa-var-hiking: \f6ec;
    +$fa-var-hippo: \f6ed;
    +$fa-var-hips: \f452;
    +$fa-var-hire-a-helper: \f3b0;
    +$fa-var-history: \f1da;
    +$fa-var-hockey-puck: \f453;
    +$fa-var-home: \f015;
    +$fa-var-hooli: \f427;
    +$fa-var-hornbill: \f592;
    +$fa-var-horse: \f6f0;
    +$fa-var-hospital: \f0f8;
    +$fa-var-hospital-alt: \f47d;
    +$fa-var-hospital-symbol: \f47e;
    +$fa-var-hot-tub: \f593;
    +$fa-var-hotel: \f594;
    +$fa-var-hotjar: \f3b1;
    +$fa-var-hourglass: \f254;
    +$fa-var-hourglass-end: \f253;
    +$fa-var-hourglass-half: \f252;
    +$fa-var-hourglass-start: \f251;
    +$fa-var-house-damage: \f6f1;
    +$fa-var-houzz: \f27c;
    +$fa-var-hryvnia: \f6f2;
    +$fa-var-html5: \f13b;
    +$fa-var-hubspot: \f3b2;
    +$fa-var-i-cursor: \f246;
    +$fa-var-id-badge: \f2c1;
    +$fa-var-id-card: \f2c2;
    +$fa-var-id-card-alt: \f47f;
    +$fa-var-image: \f03e;
    +$fa-var-images: \f302;
    +$fa-var-imdb: \f2d8;
    +$fa-var-inbox: \f01c;
    +$fa-var-indent: \f03c;
    +$fa-var-industry: \f275;
    +$fa-var-infinity: \f534;
    +$fa-var-info: \f129;
    +$fa-var-info-circle: \f05a;
    +$fa-var-instagram: \f16d;
    +$fa-var-internet-explorer: \f26b;
    +$fa-var-ioxhost: \f208;
    +$fa-var-italic: \f033;
    +$fa-var-itunes: \f3b4;
    +$fa-var-itunes-note: \f3b5;
    +$fa-var-java: \f4e4;
    +$fa-var-jedi: \f669;
    +$fa-var-jedi-order: \f50e;
    +$fa-var-jenkins: \f3b6;
    +$fa-var-joget: \f3b7;
    +$fa-var-joint: \f595;
    +$fa-var-joomla: \f1aa;
    +$fa-var-journal-whills: \f66a;
    +$fa-var-js: \f3b8;
    +$fa-var-js-square: \f3b9;
    +$fa-var-jsfiddle: \f1cc;
    +$fa-var-kaaba: \f66b;
    +$fa-var-kaggle: \f5fa;
    +$fa-var-key: \f084;
    +$fa-var-keybase: \f4f5;
    +$fa-var-keyboard: \f11c;
    +$fa-var-keycdn: \f3ba;
    +$fa-var-khanda: \f66d;
    +$fa-var-kickstarter: \f3bb;
    +$fa-var-kickstarter-k: \f3bc;
    +$fa-var-kiss: \f596;
    +$fa-var-kiss-beam: \f597;
    +$fa-var-kiss-wink-heart: \f598;
    +$fa-var-kiwi-bird: \f535;
    +$fa-var-korvue: \f42f;
    +$fa-var-landmark: \f66f;
    +$fa-var-language: \f1ab;
    +$fa-var-laptop: \f109;
    +$fa-var-laptop-code: \f5fc;
    +$fa-var-laravel: \f3bd;
    +$fa-var-lastfm: \f202;
    +$fa-var-lastfm-square: \f203;
    +$fa-var-laugh: \f599;
    +$fa-var-laugh-beam: \f59a;
    +$fa-var-laugh-squint: \f59b;
    +$fa-var-laugh-wink: \f59c;
    +$fa-var-layer-group: \f5fd;
    +$fa-var-leaf: \f06c;
    +$fa-var-leanpub: \f212;
    +$fa-var-lemon: \f094;
    +$fa-var-less: \f41d;
    +$fa-var-less-than: \f536;
    +$fa-var-less-than-equal: \f537;
    +$fa-var-level-down-alt: \f3be;
    +$fa-var-level-up-alt: \f3bf;
    +$fa-var-life-ring: \f1cd;
    +$fa-var-lightbulb: \f0eb;
    +$fa-var-line: \f3c0;
    +$fa-var-link: \f0c1;
    +$fa-var-linkedin: \f08c;
    +$fa-var-linkedin-in: \f0e1;
    +$fa-var-linode: \f2b8;
    +$fa-var-linux: \f17c;
    +$fa-var-lira-sign: \f195;
    +$fa-var-list: \f03a;
    +$fa-var-list-alt: \f022;
    +$fa-var-list-ol: \f0cb;
    +$fa-var-list-ul: \f0ca;
    +$fa-var-location-arrow: \f124;
    +$fa-var-lock: \f023;
    +$fa-var-lock-open: \f3c1;
    +$fa-var-long-arrow-alt-down: \f309;
    +$fa-var-long-arrow-alt-left: \f30a;
    +$fa-var-long-arrow-alt-right: \f30b;
    +$fa-var-long-arrow-alt-up: \f30c;
    +$fa-var-low-vision: \f2a8;
    +$fa-var-luggage-cart: \f59d;
    +$fa-var-lyft: \f3c3;
    +$fa-var-magento: \f3c4;
    +$fa-var-magic: \f0d0;
    +$fa-var-magnet: \f076;
    +$fa-var-mail-bulk: \f674;
    +$fa-var-mailchimp: \f59e;
    +$fa-var-male: \f183;
    +$fa-var-mandalorian: \f50f;
    +$fa-var-map: \f279;
    +$fa-var-map-marked: \f59f;
    +$fa-var-map-marked-alt: \f5a0;
    +$fa-var-map-marker: \f041;
    +$fa-var-map-marker-alt: \f3c5;
    +$fa-var-map-pin: \f276;
    +$fa-var-map-signs: \f277;
    +$fa-var-markdown: \f60f;
    +$fa-var-marker: \f5a1;
    +$fa-var-mars: \f222;
    +$fa-var-mars-double: \f227;
    +$fa-var-mars-stroke: \f229;
    +$fa-var-mars-stroke-h: \f22b;
    +$fa-var-mars-stroke-v: \f22a;
    +$fa-var-mask: \f6fa;
    +$fa-var-mastodon: \f4f6;
    +$fa-var-maxcdn: \f136;
    +$fa-var-medal: \f5a2;
    +$fa-var-medapps: \f3c6;
    +$fa-var-medium: \f23a;
    +$fa-var-medium-m: \f3c7;
    +$fa-var-medkit: \f0fa;
    +$fa-var-medrt: \f3c8;
    +$fa-var-meetup: \f2e0;
    +$fa-var-megaport: \f5a3;
    +$fa-var-meh: \f11a;
    +$fa-var-meh-blank: \f5a4;
    +$fa-var-meh-rolling-eyes: \f5a5;
    +$fa-var-memory: \f538;
    +$fa-var-menorah: \f676;
    +$fa-var-mercury: \f223;
    +$fa-var-microchip: \f2db;
    +$fa-var-microphone: \f130;
    +$fa-var-microphone-alt: \f3c9;
    +$fa-var-microphone-alt-slash: \f539;
    +$fa-var-microphone-slash: \f131;
    +$fa-var-microscope: \f610;
    +$fa-var-microsoft: \f3ca;
    +$fa-var-minus: \f068;
    +$fa-var-minus-circle: \f056;
    +$fa-var-minus-square: \f146;
    +$fa-var-mix: \f3cb;
    +$fa-var-mixcloud: \f289;
    +$fa-var-mizuni: \f3cc;
    +$fa-var-mobile: \f10b;
    +$fa-var-mobile-alt: \f3cd;
    +$fa-var-modx: \f285;
    +$fa-var-monero: \f3d0;
    +$fa-var-money-bill: \f0d6;
    +$fa-var-money-bill-alt: \f3d1;
    +$fa-var-money-bill-wave: \f53a;
    +$fa-var-money-bill-wave-alt: \f53b;
    +$fa-var-money-check: \f53c;
    +$fa-var-money-check-alt: \f53d;
    +$fa-var-monument: \f5a6;
    +$fa-var-moon: \f186;
    +$fa-var-mortar-pestle: \f5a7;
    +$fa-var-mosque: \f678;
    +$fa-var-motorcycle: \f21c;
    +$fa-var-mountain: \f6fc;
    +$fa-var-mouse-pointer: \f245;
    +$fa-var-music: \f001;
    +$fa-var-napster: \f3d2;
    +$fa-var-neos: \f612;
    +$fa-var-network-wired: \f6ff;
    +$fa-var-neuter: \f22c;
    +$fa-var-newspaper: \f1ea;
    +$fa-var-nimblr: \f5a8;
    +$fa-var-nintendo-switch: \f418;
    +$fa-var-node: \f419;
    +$fa-var-node-js: \f3d3;
    +$fa-var-not-equal: \f53e;
    +$fa-var-notes-medical: \f481;
    +$fa-var-npm: \f3d4;
    +$fa-var-ns8: \f3d5;
    +$fa-var-nutritionix: \f3d6;
    +$fa-var-object-group: \f247;
    +$fa-var-object-ungroup: \f248;
    +$fa-var-odnoklassniki: \f263;
    +$fa-var-odnoklassniki-square: \f264;
    +$fa-var-oil-can: \f613;
    +$fa-var-old-republic: \f510;
    +$fa-var-om: \f679;
    +$fa-var-opencart: \f23d;
    +$fa-var-openid: \f19b;
    +$fa-var-opera: \f26a;
    +$fa-var-optin-monster: \f23c;
    +$fa-var-osi: \f41a;
    +$fa-var-otter: \f700;
    +$fa-var-outdent: \f03b;
    +$fa-var-page4: \f3d7;
    +$fa-var-pagelines: \f18c;
    +$fa-var-paint-brush: \f1fc;
    +$fa-var-paint-roller: \f5aa;
    +$fa-var-palette: \f53f;
    +$fa-var-palfed: \f3d8;
    +$fa-var-pallet: \f482;
    +$fa-var-paper-plane: \f1d8;
    +$fa-var-paperclip: \f0c6;
    +$fa-var-parachute-box: \f4cd;
    +$fa-var-paragraph: \f1dd;
    +$fa-var-parking: \f540;
    +$fa-var-passport: \f5ab;
    +$fa-var-pastafarianism: \f67b;
    +$fa-var-paste: \f0ea;
    +$fa-var-patreon: \f3d9;
    +$fa-var-pause: \f04c;
    +$fa-var-pause-circle: \f28b;
    +$fa-var-paw: \f1b0;
    +$fa-var-paypal: \f1ed;
    +$fa-var-peace: \f67c;
    +$fa-var-pen: \f304;
    +$fa-var-pen-alt: \f305;
    +$fa-var-pen-fancy: \f5ac;
    +$fa-var-pen-nib: \f5ad;
    +$fa-var-pen-square: \f14b;
    +$fa-var-pencil-alt: \f303;
    +$fa-var-pencil-ruler: \f5ae;
    +$fa-var-penny-arcade: \f704;
    +$fa-var-people-carry: \f4ce;
    +$fa-var-percent: \f295;
    +$fa-var-percentage: \f541;
    +$fa-var-periscope: \f3da;
    +$fa-var-phabricator: \f3db;
    +$fa-var-phoenix-framework: \f3dc;
    +$fa-var-phoenix-squadron: \f511;
    +$fa-var-phone: \f095;
    +$fa-var-phone-slash: \f3dd;
    +$fa-var-phone-square: \f098;
    +$fa-var-phone-volume: \f2a0;
    +$fa-var-php: \f457;
    +$fa-var-pied-piper: \f2ae;
    +$fa-var-pied-piper-alt: \f1a8;
    +$fa-var-pied-piper-hat: \f4e5;
    +$fa-var-pied-piper-pp: \f1a7;
    +$fa-var-piggy-bank: \f4d3;
    +$fa-var-pills: \f484;
    +$fa-var-pinterest: \f0d2;
    +$fa-var-pinterest-p: \f231;
    +$fa-var-pinterest-square: \f0d3;
    +$fa-var-place-of-worship: \f67f;
    +$fa-var-plane: \f072;
    +$fa-var-plane-arrival: \f5af;
    +$fa-var-plane-departure: \f5b0;
    +$fa-var-play: \f04b;
    +$fa-var-play-circle: \f144;
    +$fa-var-playstation: \f3df;
    +$fa-var-plug: \f1e6;
    +$fa-var-plus: \f067;
    +$fa-var-plus-circle: \f055;
    +$fa-var-plus-square: \f0fe;
    +$fa-var-podcast: \f2ce;
    +$fa-var-poll: \f681;
    +$fa-var-poll-h: \f682;
    +$fa-var-poo: \f2fe;
    +$fa-var-poop: \f619;
    +$fa-var-portrait: \f3e0;
    +$fa-var-pound-sign: \f154;
    +$fa-var-power-off: \f011;
    +$fa-var-pray: \f683;
    +$fa-var-praying-hands: \f684;
    +$fa-var-prescription: \f5b1;
    +$fa-var-prescription-bottle: \f485;
    +$fa-var-prescription-bottle-alt: \f486;
    +$fa-var-print: \f02f;
    +$fa-var-procedures: \f487;
    +$fa-var-product-hunt: \f288;
    +$fa-var-project-diagram: \f542;
    +$fa-var-pushed: \f3e1;
    +$fa-var-puzzle-piece: \f12e;
    +$fa-var-python: \f3e2;
    +$fa-var-qq: \f1d6;
    +$fa-var-qrcode: \f029;
    +$fa-var-question: \f128;
    +$fa-var-question-circle: \f059;
    +$fa-var-quidditch: \f458;
    +$fa-var-quinscape: \f459;
    +$fa-var-quora: \f2c4;
    +$fa-var-quote-left: \f10d;
    +$fa-var-quote-right: \f10e;
    +$fa-var-quran: \f687;
    +$fa-var-r-project: \f4f7;
    +$fa-var-random: \f074;
    +$fa-var-ravelry: \f2d9;
    +$fa-var-react: \f41b;
    +$fa-var-readme: \f4d5;
    +$fa-var-rebel: \f1d0;
    +$fa-var-receipt: \f543;
    +$fa-var-recycle: \f1b8;
    +$fa-var-red-river: \f3e3;
    +$fa-var-reddit: \f1a1;
    +$fa-var-reddit-alien: \f281;
    +$fa-var-reddit-square: \f1a2;
    +$fa-var-redo: \f01e;
    +$fa-var-redo-alt: \f2f9;
    +$fa-var-registered: \f25d;
    +$fa-var-rendact: \f3e4;
    +$fa-var-renren: \f18b;
    +$fa-var-reply: \f3e5;
    +$fa-var-reply-all: \f122;
    +$fa-var-replyd: \f3e6;
    +$fa-var-researchgate: \f4f8;
    +$fa-var-resolving: \f3e7;
    +$fa-var-retweet: \f079;
    +$fa-var-rev: \f5b2;
    +$fa-var-ribbon: \f4d6;
    +$fa-var-ring: \f70b;
    +$fa-var-road: \f018;
    +$fa-var-robot: \f544;
    +$fa-var-rocket: \f135;
    +$fa-var-rocketchat: \f3e8;
    +$fa-var-rockrms: \f3e9;
    +$fa-var-route: \f4d7;
    +$fa-var-rss: \f09e;
    +$fa-var-rss-square: \f143;
    +$fa-var-ruble-sign: \f158;
    +$fa-var-ruler: \f545;
    +$fa-var-ruler-combined: \f546;
    +$fa-var-ruler-horizontal: \f547;
    +$fa-var-ruler-vertical: \f548;
    +$fa-var-running: \f70c;
    +$fa-var-rupee-sign: \f156;
    +$fa-var-sad-cry: \f5b3;
    +$fa-var-sad-tear: \f5b4;
    +$fa-var-safari: \f267;
    +$fa-var-sass: \f41e;
    +$fa-var-save: \f0c7;
    +$fa-var-schlix: \f3ea;
    +$fa-var-school: \f549;
    +$fa-var-screwdriver: \f54a;
    +$fa-var-scribd: \f28a;
    +$fa-var-scroll: \f70e;
    +$fa-var-search: \f002;
    +$fa-var-search-dollar: \f688;
    +$fa-var-search-location: \f689;
    +$fa-var-search-minus: \f010;
    +$fa-var-search-plus: \f00e;
    +$fa-var-searchengin: \f3eb;
    +$fa-var-seedling: \f4d8;
    +$fa-var-sellcast: \f2da;
    +$fa-var-sellsy: \f213;
    +$fa-var-server: \f233;
    +$fa-var-servicestack: \f3ec;
    +$fa-var-shapes: \f61f;
    +$fa-var-share: \f064;
    +$fa-var-share-alt: \f1e0;
    +$fa-var-share-alt-square: \f1e1;
    +$fa-var-share-square: \f14d;
    +$fa-var-shekel-sign: \f20b;
    +$fa-var-shield-alt: \f3ed;
    +$fa-var-ship: \f21a;
    +$fa-var-shipping-fast: \f48b;
    +$fa-var-shirtsinbulk: \f214;
    +$fa-var-shoe-prints: \f54b;
    +$fa-var-shopping-bag: \f290;
    +$fa-var-shopping-basket: \f291;
    +$fa-var-shopping-cart: \f07a;
    +$fa-var-shopware: \f5b5;
    +$fa-var-shower: \f2cc;
    +$fa-var-shuttle-van: \f5b6;
    +$fa-var-sign: \f4d9;
    +$fa-var-sign-in-alt: \f2f6;
    +$fa-var-sign-language: \f2a7;
    +$fa-var-sign-out-alt: \f2f5;
    +$fa-var-signal: \f012;
    +$fa-var-signature: \f5b7;
    +$fa-var-simplybuilt: \f215;
    +$fa-var-sistrix: \f3ee;
    +$fa-var-sitemap: \f0e8;
    +$fa-var-sith: \f512;
    +$fa-var-skull: \f54c;
    +$fa-var-skull-crossbones: \f714;
    +$fa-var-skyatlas: \f216;
    +$fa-var-skype: \f17e;
    +$fa-var-slack: \f198;
    +$fa-var-slack-hash: \f3ef;
    +$fa-var-slash: \f715;
    +$fa-var-sliders-h: \f1de;
    +$fa-var-slideshare: \f1e7;
    +$fa-var-smile: \f118;
    +$fa-var-smile-beam: \f5b8;
    +$fa-var-smile-wink: \f4da;
    +$fa-var-smoking: \f48d;
    +$fa-var-smoking-ban: \f54d;
    +$fa-var-snapchat: \f2ab;
    +$fa-var-snapchat-ghost: \f2ac;
    +$fa-var-snapchat-square: \f2ad;
    +$fa-var-snowflake: \f2dc;
    +$fa-var-socks: \f696;
    +$fa-var-solar-panel: \f5ba;
    +$fa-var-sort: \f0dc;
    +$fa-var-sort-alpha-down: \f15d;
    +$fa-var-sort-alpha-up: \f15e;
    +$fa-var-sort-amount-down: \f160;
    +$fa-var-sort-amount-up: \f161;
    +$fa-var-sort-down: \f0dd;
    +$fa-var-sort-numeric-down: \f162;
    +$fa-var-sort-numeric-up: \f163;
    +$fa-var-sort-up: \f0de;
    +$fa-var-soundcloud: \f1be;
    +$fa-var-spa: \f5bb;
    +$fa-var-space-shuttle: \f197;
    +$fa-var-speakap: \f3f3;
    +$fa-var-spider: \f717;
    +$fa-var-spinner: \f110;
    +$fa-var-splotch: \f5bc;
    +$fa-var-spotify: \f1bc;
    +$fa-var-spray-can: \f5bd;
    +$fa-var-square: \f0c8;
    +$fa-var-square-full: \f45c;
    +$fa-var-square-root-alt: \f698;
    +$fa-var-squarespace: \f5be;
    +$fa-var-stack-exchange: \f18d;
    +$fa-var-stack-overflow: \f16c;
    +$fa-var-stamp: \f5bf;
    +$fa-var-star: \f005;
    +$fa-var-star-and-crescent: \f699;
    +$fa-var-star-half: \f089;
    +$fa-var-star-half-alt: \f5c0;
    +$fa-var-star-of-david: \f69a;
    +$fa-var-star-of-life: \f621;
    +$fa-var-staylinked: \f3f5;
    +$fa-var-steam: \f1b6;
    +$fa-var-steam-square: \f1b7;
    +$fa-var-steam-symbol: \f3f6;
    +$fa-var-step-backward: \f048;
    +$fa-var-step-forward: \f051;
    +$fa-var-stethoscope: \f0f1;
    +$fa-var-sticker-mule: \f3f7;
    +$fa-var-sticky-note: \f249;
    +$fa-var-stop: \f04d;
    +$fa-var-stop-circle: \f28d;
    +$fa-var-stopwatch: \f2f2;
    +$fa-var-store: \f54e;
    +$fa-var-store-alt: \f54f;
    +$fa-var-strava: \f428;
    +$fa-var-stream: \f550;
    +$fa-var-street-view: \f21d;
    +$fa-var-strikethrough: \f0cc;
    +$fa-var-stripe: \f429;
    +$fa-var-stripe-s: \f42a;
    +$fa-var-stroopwafel: \f551;
    +$fa-var-studiovinari: \f3f8;
    +$fa-var-stumbleupon: \f1a4;
    +$fa-var-stumbleupon-circle: \f1a3;
    +$fa-var-subscript: \f12c;
    +$fa-var-subway: \f239;
    +$fa-var-suitcase: \f0f2;
    +$fa-var-suitcase-rolling: \f5c1;
    +$fa-var-sun: \f185;
    +$fa-var-superpowers: \f2dd;
    +$fa-var-superscript: \f12b;
    +$fa-var-supple: \f3f9;
    +$fa-var-surprise: \f5c2;
    +$fa-var-swatchbook: \f5c3;
    +$fa-var-swimmer: \f5c4;
    +$fa-var-swimming-pool: \f5c5;
    +$fa-var-synagogue: \f69b;
    +$fa-var-sync: \f021;
    +$fa-var-sync-alt: \f2f1;
    +$fa-var-syringe: \f48e;
    +$fa-var-table: \f0ce;
    +$fa-var-table-tennis: \f45d;
    +$fa-var-tablet: \f10a;
    +$fa-var-tablet-alt: \f3fa;
    +$fa-var-tablets: \f490;
    +$fa-var-tachometer-alt: \f3fd;
    +$fa-var-tag: \f02b;
    +$fa-var-tags: \f02c;
    +$fa-var-tape: \f4db;
    +$fa-var-tasks: \f0ae;
    +$fa-var-taxi: \f1ba;
    +$fa-var-teamspeak: \f4f9;
    +$fa-var-teeth: \f62e;
    +$fa-var-teeth-open: \f62f;
    +$fa-var-telegram: \f2c6;
    +$fa-var-telegram-plane: \f3fe;
    +$fa-var-tencent-weibo: \f1d5;
    +$fa-var-terminal: \f120;
    +$fa-var-text-height: \f034;
    +$fa-var-text-width: \f035;
    +$fa-var-th: \f00a;
    +$fa-var-th-large: \f009;
    +$fa-var-th-list: \f00b;
    +$fa-var-the-red-yeti: \f69d;
    +$fa-var-theater-masks: \f630;
    +$fa-var-themeco: \f5c6;
    +$fa-var-themeisle: \f2b2;
    +$fa-var-thermometer: \f491;
    +$fa-var-thermometer-empty: \f2cb;
    +$fa-var-thermometer-full: \f2c7;
    +$fa-var-thermometer-half: \f2c9;
    +$fa-var-thermometer-quarter: \f2ca;
    +$fa-var-thermometer-three-quarters: \f2c8;
    +$fa-var-thumbs-down: \f165;
    +$fa-var-thumbs-up: \f164;
    +$fa-var-thumbtack: \f08d;
    +$fa-var-ticket-alt: \f3ff;
    +$fa-var-times: \f00d;
    +$fa-var-times-circle: \f057;
    +$fa-var-tint: \f043;
    +$fa-var-tint-slash: \f5c7;
    +$fa-var-tired: \f5c8;
    +$fa-var-toggle-off: \f204;
    +$fa-var-toggle-on: \f205;
    +$fa-var-toilet-paper: \f71e;
    +$fa-var-toolbox: \f552;
    +$fa-var-tooth: \f5c9;
    +$fa-var-torah: \f6a0;
    +$fa-var-torii-gate: \f6a1;
    +$fa-var-tractor: \f722;
    +$fa-var-trade-federation: \f513;
    +$fa-var-trademark: \f25c;
    +$fa-var-traffic-light: \f637;
    +$fa-var-train: \f238;
    +$fa-var-transgender: \f224;
    +$fa-var-transgender-alt: \f225;
    +$fa-var-trash: \f1f8;
    +$fa-var-trash-alt: \f2ed;
    +$fa-var-tree: \f1bb;
    +$fa-var-trello: \f181;
    +$fa-var-tripadvisor: \f262;
    +$fa-var-trophy: \f091;
    +$fa-var-truck: \f0d1;
    +$fa-var-truck-loading: \f4de;
    +$fa-var-truck-monster: \f63b;
    +$fa-var-truck-moving: \f4df;
    +$fa-var-truck-pickup: \f63c;
    +$fa-var-tshirt: \f553;
    +$fa-var-tty: \f1e4;
    +$fa-var-tumblr: \f173;
    +$fa-var-tumblr-square: \f174;
    +$fa-var-tv: \f26c;
    +$fa-var-twitch: \f1e8;
    +$fa-var-twitter: \f099;
    +$fa-var-twitter-square: \f081;
    +$fa-var-typo3: \f42b;
    +$fa-var-uber: \f402;
    +$fa-var-uikit: \f403;
    +$fa-var-umbrella: \f0e9;
    +$fa-var-umbrella-beach: \f5ca;
    +$fa-var-underline: \f0cd;
    +$fa-var-undo: \f0e2;
    +$fa-var-undo-alt: \f2ea;
    +$fa-var-uniregistry: \f404;
    +$fa-var-universal-access: \f29a;
    +$fa-var-university: \f19c;
    +$fa-var-unlink: \f127;
    +$fa-var-unlock: \f09c;
    +$fa-var-unlock-alt: \f13e;
    +$fa-var-untappd: \f405;
    +$fa-var-upload: \f093;
    +$fa-var-usb: \f287;
    +$fa-var-user: \f007;
    +$fa-var-user-alt: \f406;
    +$fa-var-user-alt-slash: \f4fa;
    +$fa-var-user-astronaut: \f4fb;
    +$fa-var-user-check: \f4fc;
    +$fa-var-user-circle: \f2bd;
    +$fa-var-user-clock: \f4fd;
    +$fa-var-user-cog: \f4fe;
    +$fa-var-user-edit: \f4ff;
    +$fa-var-user-friends: \f500;
    +$fa-var-user-graduate: \f501;
    +$fa-var-user-injured: \f728;
    +$fa-var-user-lock: \f502;
    +$fa-var-user-md: \f0f0;
    +$fa-var-user-minus: \f503;
    +$fa-var-user-ninja: \f504;
    +$fa-var-user-plus: \f234;
    +$fa-var-user-secret: \f21b;
    +$fa-var-user-shield: \f505;
    +$fa-var-user-slash: \f506;
    +$fa-var-user-tag: \f507;
    +$fa-var-user-tie: \f508;
    +$fa-var-user-times: \f235;
    +$fa-var-users: \f0c0;
    +$fa-var-users-cog: \f509;
    +$fa-var-ussunnah: \f407;
    +$fa-var-utensil-spoon: \f2e5;
    +$fa-var-utensils: \f2e7;
    +$fa-var-vaadin: \f408;
    +$fa-var-vector-square: \f5cb;
    +$fa-var-venus: \f221;
    +$fa-var-venus-double: \f226;
    +$fa-var-venus-mars: \f228;
    +$fa-var-viacoin: \f237;
    +$fa-var-viadeo: \f2a9;
    +$fa-var-viadeo-square: \f2aa;
    +$fa-var-vial: \f492;
    +$fa-var-vials: \f493;
    +$fa-var-viber: \f409;
    +$fa-var-video: \f03d;
    +$fa-var-video-slash: \f4e2;
    +$fa-var-vihara: \f6a7;
    +$fa-var-vimeo: \f40a;
    +$fa-var-vimeo-square: \f194;
    +$fa-var-vimeo-v: \f27d;
    +$fa-var-vine: \f1ca;
    +$fa-var-vk: \f189;
    +$fa-var-vnv: \f40b;
    +$fa-var-volleyball-ball: \f45f;
    +$fa-var-volume-down: \f027;
    +$fa-var-volume-mute: \f6a9;
    +$fa-var-volume-off: \f026;
    +$fa-var-volume-up: \f028;
    +$fa-var-vuejs: \f41f;
    +$fa-var-walking: \f554;
    +$fa-var-wallet: \f555;
    +$fa-var-warehouse: \f494;
    +$fa-var-weebly: \f5cc;
    +$fa-var-weibo: \f18a;
    +$fa-var-weight: \f496;
    +$fa-var-weight-hanging: \f5cd;
    +$fa-var-weixin: \f1d7;
    +$fa-var-whatsapp: \f232;
    +$fa-var-whatsapp-square: \f40c;
    +$fa-var-wheelchair: \f193;
    +$fa-var-whmcs: \f40d;
    +$fa-var-wifi: \f1eb;
    +$fa-var-wikipedia-w: \f266;
    +$fa-var-wind: \f72e;
    +$fa-var-window-close: \f410;
    +$fa-var-window-maximize: \f2d0;
    +$fa-var-window-minimize: \f2d1;
    +$fa-var-window-restore: \f2d2;
    +$fa-var-windows: \f17a;
    +$fa-var-wine-bottle: \f72f;
    +$fa-var-wine-glass: \f4e3;
    +$fa-var-wine-glass-alt: \f5ce;
    +$fa-var-wix: \f5cf;
    +$fa-var-wizards-of-the-coast: \f730;
    +$fa-var-wolf-pack-battalion: \f514;
    +$fa-var-won-sign: \f159;
    +$fa-var-wordpress: \f19a;
    +$fa-var-wordpress-simple: \f411;
    +$fa-var-wpbeginner: \f297;
    +$fa-var-wpexplorer: \f2de;
    +$fa-var-wpforms: \f298;
    +$fa-var-wrench: \f0ad;
    +$fa-var-x-ray: \f497;
    +$fa-var-xbox: \f412;
    +$fa-var-xing: \f168;
    +$fa-var-xing-square: \f169;
    +$fa-var-y-combinator: \f23b;
    +$fa-var-yahoo: \f19e;
    +$fa-var-yandex: \f413;
    +$fa-var-yandex-international: \f414;
    +$fa-var-yelp: \f1e9;
    +$fa-var-yen-sign: \f157;
    +$fa-var-yin-yang: \f6ad;
    +$fa-var-yoast: \f2b1;
    +$fa-var-youtube: \f167;
    +$fa-var-youtube-square: \f431;
    +$fa-var-zhihu: \f63f;
    diff --git a/htdocs/theme/common/fontawesome-5/scss/brands.scss b/htdocs/theme/common/fontawesome-5/scss/brands.scss
    new file mode 100644
    index 00000000000..940350ff9fb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/brands.scss
    @@ -0,0 +1,21 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@import 'variables';
    +
    +@font-face {
    +  font-family: 'Font Awesome 5 Brands';
    +  font-style: normal;
    +  font-weight: normal;
    +  src: url('#{$fa-font-path}/fa-brands-400.eot');
    +  src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),
    +  url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),
    +  url('#{$fa-font-path}/fa-brands-400.woff') format('woff'),
    +  url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'),
    +  url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');
    +}
    +
    +.fab {
    +  font-family: 'Font Awesome 5 Brands';
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/fontawesome.scss b/htdocs/theme/common/fontawesome-5/scss/fontawesome.scss
    new file mode 100644
    index 00000000000..40047c4c399
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/fontawesome.scss
    @@ -0,0 +1,16 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@import 'variables';
    +@import 'mixins';
    +@import 'core';
    +@import 'larger';
    +@import 'fixed-width';
    +@import 'list';
    +@import 'bordered-pulled';
    +@import 'animated';
    +@import 'rotated-flipped';
    +@import 'stacked';
    +@import 'icons';
    +@import 'screen-reader';
    diff --git a/htdocs/theme/common/fontawesome-5/scss/regular.scss b/htdocs/theme/common/fontawesome-5/scss/regular.scss
    new file mode 100644
    index 00000000000..69db13d3e92
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/regular.scss
    @@ -0,0 +1,22 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@import 'variables';
    +
    +@font-face {
    +  font-family: 'Font Awesome 5 Free';
    +  font-style: normal;
    +  font-weight: 400;
    +  src: url('#{$fa-font-path}/fa-regular-400.eot');
    +  src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
    +  url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
    +  url('#{$fa-font-path}/fa-regular-400.woff') format('woff'),
    +  url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'),
    +  url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
    +}
    +
    +.far {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 400;
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/solid.scss b/htdocs/theme/common/fontawesome-5/scss/solid.scss
    new file mode 100644
    index 00000000000..e2833d94262
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/solid.scss
    @@ -0,0 +1,23 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@import 'variables';
    +
    +@font-face {
    +  font-family: 'Font Awesome 5 Free';
    +  font-style: normal;
    +  font-weight: 900;
    +  src: url('#{$fa-font-path}/fa-solid-900.eot');
    +  src: url('#{$fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),
    +  url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'),
    +  url('#{$fa-font-path}/fa-solid-900.woff') format('woff'),
    +  url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype'),
    +  url('#{$fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');
    +}
    +
    +.fa,
    +.fas {
    +  font-family: 'Font Awesome 5 Free';
    +  font-weight: 900;
    +}
    diff --git a/htdocs/theme/common/fontawesome-5/scss/v4-shims.scss b/htdocs/theme/common/fontawesome-5/scss/v4-shims.scss
    new file mode 100644
    index 00000000000..af6537a07ed
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/scss/v4-shims.scss
    @@ -0,0 +1,6 @@
    +/*!
    + * Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    + */
    +@import 'variables';
    +@import 'shims';
    diff --git a/htdocs/theme/common/fontawesome-5/sprites/brands.svg b/htdocs/theme/common/fontawesome-5/sprites/brands.svg
    new file mode 100644
    index 00000000000..075c7be3ec6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/sprites/brands.svg
    @@ -0,0 +1,1559 @@
    +<?xml version="1.0" encoding="UTF-8"?>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    +<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
    +  <symbol id="500px" viewBox="0 0 448 512">
    +    <title id="500px-title">500px</title>
    +    <path d="M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"></path>
    +  </symbol>
    +  <symbol id="accessible-icon" viewBox="0 0 448 512">
    +    <title id="accessible-icon-title">Accessible Icon</title>
    +    <path d="M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"></path>
    +  </symbol>
    +  <symbol id="accusoft" viewBox="0 0 640 512">
    +    <title id="accusoft-title">Accusoft</title>
    +    <path d="M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2.7 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2 23.4-2.4 1.3-114.6 47.7-117.8 48.9-10.1 4-17.5 6.8-30.8-9.3m114.7-5.6s-115 50.4-117.5 51.6c-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2-2.3-.3-24.6-4.7-38-7.2m-326-181.3s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3v-1l-51.2-65.8"></path>
    +  </symbol>
    +  <symbol id="acquisitions-incorporated" viewBox="0 0 344.76 512">
    +    <title id="acquisitions-incorporated-title">Acquisitions Incorporated</title>
    +    <path d="M344 0c-.81 5.47-1.63 10.79-2.39 16.12-1.39 9.74-2.9 19.48-4.05 29.25-.35 2.96-1.21 4.32-4.3 4.33-20.61.11-41.21.14-61.82.53-18.76.35-37.58.28-56.23 2-13.42 1.24-23.28 12.67-18.88 26.64 8.55 27.11 27.65 69.1 36.37 89.45 65.72 154.14 61.43 156.99 84 158.56 6.67.46 13.4.07 20.43.07 1.39 9.4 2.66 18.04 4.05 27.51H225.17v-27c10.33 0 20.36-.12 30.38.06 3.52.06 5.05-.63 3.44-4.37-4.44-10.29-8.77-20.63-13.25-30.9-1.62-3.72-4.06-4.78-8.4-3.52-12.32 3.59-24.79 6.69-37.26 9.69-4.25 1.02-5.93 2.77-5.86 7.46.85 57.47.95 127.53 1 129.12.4 12.54 8.75 21.41 21.03 23.07.89.12 12.89 2.72 112.68 2.56 8.25-.01 8.41-.17 9.57 7.56 2.15 14.34 4.14 28.7 6.26 43.53-367.75 0-153.93.61-337.09 0-3.95-.01-6.08-.69-5.28-5.74 2.04-12.86 3.5-25.82 4.97-38.76.55-4.81 2.29-6.81 7.63-6.77 118.09.99 114.93.35 121.43-2.39 9.42-3.98 14.98-12.85 14.95-23.07-.12-42.93-.33-85.86-.25-128.79.01-3.87-1.16-5.99-4.56-6.84-15.64-3.92-31.31-7.71-47.58-11.7-5.23 12.27-10.39 24.37-15.66 36.7 1.83 3.35 28.38 2.93 35.28 2.93v27.64H4.34c1.03-8.61 1.77-16.81 3.23-24.88.25-1.41 3.53-3.14 5.47-3.22 8.46-.35 16.95-.29 25.43-.09 3.99.09 5.92-1.04 7.61-5.16 16.63-40.7 13.51-31.17 67.31-160.97 31.53-76.09 33.06-76.02 32.64-87.43-.69-18.56-25.37-22.26-37.65-22.11-30.04.38-38.45-.47-101.84-.47C-.62 6.11 2.37 18.54.16 5.32-.55 1.08 1.19.03 4.8.02m113.08 247.19c2.3 1.15 3.97 2.29 5.82 2.87 13.29 4.21 26.64 8.24 39.93 12.46 6.14 1.95 11.98 2.12 18.3.05 13.02-4.28 26.29-7.81 39.43-11.73 1.46-.44 2.74-1.44 3.93-2.09-6.71-17.37-13.12-34.15-19.67-50.88-8.88-22.67-17.63-60.32-26.98-82.81-1.53-.78-1.91 2.36-9.43 0-17.11 44.05-34.14 87.88-51.33 132.13z"></path>
    +  </symbol>
    +  <symbol id="adn" viewBox="0 0 496 512">
    +    <title id="adn-title">App.net</title>
    +    <path d="M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"></path>
    +  </symbol>
    +  <symbol id="adversal" viewBox="0 0 512 512">
    +    <title id="adversal-title">Adversal</title>
    +    <path d="M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"></path>
    +  </symbol>
    +  <symbol id="affiliatetheme" viewBox="0 0 512 512">
    +    <title id="affiliatetheme-title">affiliatetheme</title>
    +    <path d="M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"></path>
    +  </symbol>
    +  <symbol id="algolia" viewBox="0 0 448 512">
    +    <title id="algolia-title">Algolia</title>
    +    <path d="M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z"></path>
    +  </symbol>
    +  <symbol id="alipay" viewBox="0 0 448 512">
    +    <title id="alipay-title">Alipay</title>
    +    <path d="M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"></path>
    +  </symbol>
    +  <symbol id="amazon" viewBox="0 0 448 512">
    +    <title id="amazon-title">Amazon</title>
    +    <path d="M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"></path>
    +  </symbol>
    +  <symbol id="amazon-pay" viewBox="0 0 611.2 512">
    +    <title id="amazon-pay-title">Amazon Pay</title>
    +    <path d="M0 325.2c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.7 20.4 83.2 35.6 127.4 46.3 20.9 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.4-6.7 110.9-20.8 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-2.8 2.8-6.3 5.1-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.6 7.9-49.6 13.8-75.1 17.6-17.6 2.6-35.4 4.4-53.2 4.8-.8 0-1.7.2-2.5.3H294c-.8-.1-1.7-.3-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.7-33.7-2.6-50.4-5.3-27.4-4.5-54.2-11.4-80.4-20.9-54.1-19.6-102.6-48.6-145.6-87-1.8-1.6-3-3.8-4.4-5.7v-2zM158 65c-1.4.2-2.9.4-4.3.6-14 1.7-26.6 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.5-.4-1-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6H87.8c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3V215c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zm-47.4 41.9c0-1.5.4-2.4 1.7-3.3 13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-1.2-.9-1.7-1.7-1.7-3.3.1-14.1 0-28.1 0-42.2 0-14 .1-28 0-42.1zM316.3 65c-1 .1-2 .3-2.9.4-9.8.5-19.4 1.7-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9 0 .4-.1.9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.5-21.1-4.3-32-4.9-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4.4-.4.9-.7 1.6-1.1.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0 2.7-.1 4.5-1.9 4.8-4.7.1-.9.1-1.9.1-2.8v-106c0-4.3-.2-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7c0 1.3-.4 2.2-1.5 3-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8-6.3-2.5-10.4-6.9-12.4-13.3s-2-13-.1-19.4c2.5-8.3 8.4-13 16.4-15.6 8.1-2.6 16.5-3 24.8-2.2 8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3-.1 4.7-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3-6.8-2.3-13.9-3.3-21-3.9-13.1-1.1-26.2-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 1-2.8 2.1-3.7 3.5-.7 1.1-.9 2.8-.5 4 .4 1.5 2.1 1.9 3.6 1.8.7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.8.3 9.7 1.4 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.7-.4 3.6-1.3 4.8-2.5 4.4-4.3 8.9-8.6 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM479.1 198.9c-12.9-35.7-25.8-71.5-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5.5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97.1 59.1 145.5 1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5.1 1.4-10.2 1.6-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9.1 5.5 2 8 7.4 8.9 5.6 1 11.3 1.9 16.9 2 17.1.4 30.7-6.5 39.5-21.4 3.5-5.9 6.7-12.1 9.2-18.4 23.7-59.8 47.1-119.7 70.6-179.6.7-1.8 1.3-3.6 1.6-5.5.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-3.7 0-6.3 1.6-7.7 5.2-.5 1.4-1.1 2.7-1.6 4.1-11.6 33.3-23.2 66.6-34.8 100-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"></path>
    +  </symbol>
    +  <symbol id="amilia" viewBox="0 0 448 512">
    +    <title id="amilia-title">Amilia</title>
    +    <path d="M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm-87.9 327.7c0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5V380c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7"></path>
    +  </symbol>
    +  <symbol id="android" viewBox="0 0 448 512">
    +    <title id="android-title">Android</title>
    +    <path d="M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z"></path>
    +  </symbol>
    +  <symbol id="angellist" viewBox="0 0 448 512">
    +    <title id="angellist-title">AngelList</title>
    +    <path d="M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"></path>
    +  </symbol>
    +  <symbol id="angrycreative" viewBox="0 0 640 512">
    +    <title id="angrycreative-title">Angry Creative</title>
    +    <path d="M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"></path>
    +  </symbol>
    +  <symbol id="angular" viewBox="0 0 415.6 512">
    +    <title id="angular-title">Angular</title>
    +    <path d="M169.7 268.1h76.2l-38.1-91.6-38.1 91.6zM207.8 32L0 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7L207.8 32zM338 373.8h-48.6l-26.2-65.4H152.6l-26.2 65.4H77.7L207.8 81.5 338 373.8z"></path>
    +  </symbol>
    +  <symbol id="app-store" viewBox="0 0 512 512">
    +    <title id="app-store-title">App Store</title>
    +    <path d="M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z"></path>
    +  </symbol>
    +  <symbol id="app-store-ios" viewBox="0 0 448 512">
    +    <title id="app-store-ios-title">iOS App Store</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"></path>
    +  </symbol>
    +  <symbol id="apper" viewBox="0 0 640 512">
    +    <title id="apper-title">Apper Systems AB</title>
    +    <path d="M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z"></path>
    +  </symbol>
    +  <symbol id="apple" viewBox="0 0 376.5 512">
    +    <title id="apple-title">Apple</title>
    +    <path d="M314.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C59.3 141.2 0 184.8 0 273.5c0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"></path>
    +  </symbol>
    +  <symbol id="apple-pay" viewBox="0 0 640 512">
    +    <title id="apple-pay-title">Apple Pay</title>
    +    <path d="M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z"></path>
    +  </symbol>
    +  <symbol id="asymmetrik" viewBox="0 0 576 512">
    +    <title id="asymmetrik-title">Asymmetrik, Ltd.</title>
    +    <path d="M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"></path>
    +  </symbol>
    +  <symbol id="audible" viewBox="0 0 640 512">
    +    <title id="audible-title">Audible</title>
    +    <path d="M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z"></path>
    +  </symbol>
    +  <symbol id="autoprefixer" viewBox="0 0 640 512">
    +    <title id="autoprefixer-title">Autoprefixer</title>
    +    <path d="M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z"></path>
    +  </symbol>
    +  <symbol id="avianex" viewBox="0 0 512 512">
    +    <title id="avianex-title">avianex</title>
    +    <path d="M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"></path>
    +  </symbol>
    +  <symbol id="aviato" viewBox="0 0 640 512">
    +    <title id="aviato-title">Aviato</title>
    +    <path d="M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"></path>
    +  </symbol>
    +  <symbol id="aws" viewBox="0 0 640 512">
    +    <title id="aws-title">Amazon Web Services (AWS)</title>
    +    <path d="M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z"></path>
    +  </symbol>
    +  <symbol id="bandcamp" viewBox="0 0 496 512">
    +    <title id="bandcamp-title">Bandcamp</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z"></path>
    +  </symbol>
    +  <symbol id="behance" viewBox="0 0 576 512">
    +    <title id="behance-title">Behance</title>
    +    <path d="M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z"></path>
    +  </symbol>
    +  <symbol id="behance-square" viewBox="0 0 448 512">
    +    <title id="behance-square-title">Behance Square</title>
    +    <path d="M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z"></path>
    +  </symbol>
    +  <symbol id="bimobject" viewBox="0 0 448 512">
    +    <title id="bimobject-title">BIMobject</title>
    +    <path d="M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z"></path>
    +  </symbol>
    +  <symbol id="bitbucket" viewBox="0 0 512 512">
    +    <title id="bitbucket-title">Bitbucket</title>
    +    <path d="M23.1 32C14.2 31.9 7 38.9 6.9 47.8c0 .9.1 1.8.2 2.8L74.9 462c1.7 10.4 10.7 18 21.2 18.1h325.1c7.9.1 14.7-5.6 16-13.4l67.8-416c1.4-8.7-4.5-16.9-13.2-18.3-.9-.1-1.8-.2-2.8-.2L23.1 32zm285.3 297.3H204.6l-28.1-146.8h157l-25.1 146.8z"></path>
    +  </symbol>
    +  <symbol id="bitcoin" viewBox="0 0 512 512">
    +    <title id="bitcoin-title">Bitcoin</title>
    +    <path d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z"></path>
    +  </symbol>
    +  <symbol id="bity" viewBox="0 0 496 512">
    +    <title id="bity-title">Bity</title>
    +    <path d="M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z"></path>
    +  </symbol>
    +  <symbol id="black-tie" viewBox="0 0 448 512">
    +    <title id="black-tie-title">Font Awesome Black Tie</title>
    +    <path d="M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z"></path>
    +  </symbol>
    +  <symbol id="blackberry" viewBox="0 0 512 512">
    +    <title id="blackberry-title">BlackBerry</title>
    +    <path d="M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z"></path>
    +  </symbol>
    +  <symbol id="blogger" viewBox="0 0 448 512">
    +    <title id="blogger-title">Blogger</title>
    +    <path d="M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"></path>
    +  </symbol>
    +  <symbol id="blogger-b" viewBox="0 0 448 512">
    +    <title id="blogger-b-title">Blogger B</title>
    +    <path d="M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"></path>
    +  </symbol>
    +  <symbol id="bluetooth" viewBox="0 0 448 512">
    +    <title id="bluetooth-title">Bluetooth</title>
    +    <path d="M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"></path>
    +  </symbol>
    +  <symbol id="bluetooth-b" viewBox="0 0 320 512">
    +    <title id="bluetooth-b-title">Bluetooth</title>
    +    <path d="M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"></path>
    +  </symbol>
    +  <symbol id="btc" viewBox="0 0 384 512">
    +    <title id="btc-title">BTC</title>
    +    <path d="M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"></path>
    +  </symbol>
    +  <symbol id="buromobelexperte" viewBox="0 0 448 512">
    +    <title id="buromobelexperte-title">Büromöbel-Experte GmbH &amp; Co. KG.</title>
    +    <path d="M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"></path>
    +  </symbol>
    +  <symbol id="buysellads" viewBox="0 0 448 512">
    +    <title id="buysellads-title">BuySellAds</title>
    +    <path d="M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"></path>
    +  </symbol>
    +  <symbol id="cc-amazon-pay" viewBox="0 0 576 512">
    +    <title id="cc-amazon-pay-title">Amazon Pay Credit Card</title>
    +    <path d="M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"></path>
    +  </symbol>
    +  <symbol id="cc-amex" viewBox="0 0 576 512">
    +    <title id="cc-amex-title">American Express Credit Card</title>
    +    <path d="M576 255.4c-37.9-.2-44.2-.9-54.5 5v-5c-45.3 0-53.5-1.7-64.9 5.2v-5.2h-78.2v5.1c-11.4-6.5-21.4-5.1-75.7-5.1v5.6c-6.3-3.7-14.5-5.6-24.3-5.6h-58c-3.5 3.8-12.5 13.7-15.7 17.2-12.7-14.1-10.5-11.6-15.5-17.2h-83.1v92.3h82c3.3-3.5 12.9-13.9 16.1-17.4 12.7 14.3 10.3 11.7 15.4 17.4h48.9c0-14.7.1-8.3.1-23 11.5.2 24.3-.2 34.3-6.2 0 13.9-.1 17.1-.1 29.2h39.6c0-18.5.1-7.4.1-25.3 6.2 0 7.7 0 9.4.1.1 1.3 0 0 0 25.2 152.8 0 145.9 1.1 156.7-4.5v4.5c34.8 0 54.8 2.2 67.5-6.1V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V228.3h26.6c4.2-10.1 2.2-5.3 6.4-15.3h19.2c4.2 10 2.2 5.2 6.4 15.3h52.9v-11.4c2.2 5 1.1 2.5 5.1 11.4h29.5c2.4-5.5 2.6-5.8 5.1-11.4v11.4h135.5v-25.1c6.4 0 8-.1 9.8.2 0 0-.2 10.9.1 24.8h66.5v-8.9c7.4 5.9 17.4 8.9 29.7 8.9h26.8c4.2-10.1 2.2-5.3 6.4-15.3h19c6.5 15 .2.5 6.6 15.3h52.8v-21.9c11.8 19.7 7.8 12.9 13.2 21.9h41.6v-92h-39.9v18.4c-12.2-20.2-6.3-10.4-11.2-18.4h-43.3v20.6c-6.2-14.6-4.6-10.8-8.8-20.6h-32.4c-.4 0-2.3.2-2.3-.3h-27.6c-12.8 0-23.1 3.2-30.7 9.3v-9.3h-39.9v5.3c-10.8-6.1-20.7-5.1-64.4-5.3-.1 0-11.6-.1-11.6 0h-103c-2.5 6.1-6.8 16.4-12.6 30-2.8-6-11-23.8-13.9-30h-46V157c-7.4-17.4-4.7-11-9-21.1H22.9c-3.4 7.9-13.7 32-23.1 53.9V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48v175.4zm-186.6-80.6c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm-19.9 130.9c9.2 3.3 11 9.5 11 18.4l-.1 13.8h-16.6l.1-11.5c0-11.8-3.8-13.8-14.8-13.8h-17.6l-.1 25.3h-16.6l.1-69.3h39.4c13 0 27.1 2.3 27.1 18.7-.1 7.6-4.2 15.3-11.9 18.4zm-6.3-15.4c0-6.4-5.6-7.4-10.7-7.4h-21v15.6h20.7c5.6 0 11-1.3 11-8.2zm181.7-7.1H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-99.2-.3v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5h38.5zm42.2 40.1h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-78.1-158.7c-17.4-.3-33.2-4.1-33.2 19.7 0 11.8 2.8 19.9 16.1 19.9h7.4l23.5-54.5h24.8l27.9 65.4v-65.4h25.3l29.1 48.1v-48.1h16.9v69H524l-31.2-51.9v51.9h-33.7l-6.6-15.3h-34.3l-6.4 15.3h-19.2c-22.8 0-33-11.8-33-34 0-23.3 10.5-35.3 34-35.3h16.1v15.2zm14.3 24.5h22.8l-11.2-27.6-11.6 27.6zm-72.6-39.6h-16.9v69.3h16.9v-69.3zm-38.1 37.3c9.5 3.3 11 9.2 11 18.4v13.5h-16.6c-.3-14.8 3.6-25.1-14.8-25.1h-18v25.1h-16.4v-69.3l39.1.3c13.3 0 27.4 2 27.4 18.4.1 8-4.3 15.7-11.7 18.7zm-6.7-15.3c0-6.4-5.6-7.4-10.7-7.4h-21v15.3h20.7c5.7 0 11-1.3 11-7.9zm-59.5-7.4v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5h38.9zm-84.6 54.7v-54.2l-24 54.2H124l-24-54.2v54.2H66.2l-6.4-15.3H25.3l-6.4 15.3H1l29.7-69.3h24.5l28.1 65.7v-65.7h27.1l21.7 47 19.7-47h27.6v69.3h-16.8zM53.9 188.8l-11.5-27.6-11.2 27.6h22.7zm253 102.5c0 27.9-30.4 23.3-49.3 23.3l-.1 23.3h-32.2l-20.4-23-21.3 23h-65.4l.1-69.3h66.5l20.5 22.8 21-22.8H279c15.6 0 27.9 5.4 27.9 22.7zm-112.7 11.8l-17.9-20.2h-41.7v12.5h36.3v14.1h-36.3v13.8h40.6l19-20.2zM241 276l-25.3 27.4 25.3 28.1V276zm48.3 15.3c0-6.1-4.6-8.4-10.2-8.4h-21.5v17.6h21.2c5.9 0 10.5-2.8 10.5-9.2z"></path>
    +  </symbol>
    +  <symbol id="cc-apple-pay" viewBox="0 0 576 512">
    +    <title id="cc-apple-pay-title">Apple Pay Credit Card</title>
    +    <path d="M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"></path>
    +  </symbol>
    +  <symbol id="cc-diners-club" viewBox="0 0 576 512">
    +    <title id="cc-diners-club-title">Diner&#x27;s Club Credit Card</title>
    +    <path d="M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"></path>
    +  </symbol>
    +  <symbol id="cc-discover" viewBox="0 0 576 512">
    +    <title id="cc-discover-title">Discover Credit Card</title>
    +    <path d="M83 212.1c0 7.9-3.2 15.5-8.9 20.7-4.9 4.4-11.6 6.4-21.9 6.4H48V185h4.2c10.3 0 16.7 1.7 21.9 6.6 5.7 5 8.9 12.6 8.9 20.5zM504.8 184h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8 0-7.9-5.5-12.1-15.6-12.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM428 253h45.3v-13.8H444V217h28.3v-13.8H444V185h29.3v-14H428v82zm-86.2-82l35 84.2h8.6l35.5-84.2h-17.5l-22.2 55.2-21.9-55.2h-17.5zm-83 41.6c0 24.6 19.9 44.6 44.6 44.6 24.6 0 44.6-19.9 44.6-44.6 0-24.6-19.9-44.6-44.6-44.6-24.6 0-44.6 19.9-44.6 44.6zm-68-.5c0 32.5 33.6 52.5 63.3 38.2v-19c-19.3 19.3-46.8 5.8-46.8-19.2 0-23.7 26.7-39.1 46.8-19v-19c-30.2-15-63.3 6.8-63.3 38zm-33.9 28.3c-7.6 0-13.8-3.7-17.5-10.8l-10.3 9.9c17.8 26.1 56.6 18.2 56.6-11.3 0-13.1-5.4-19-23.6-25.6-9.6-3.4-12.3-5.9-12.3-10.3 0-8.7 14.5-14.1 24.9-2.5l8.4-10.8c-19.1-17.1-49.7-8.9-49.7 14.3 0 11.3 5.2 17.2 20.2 22.7 25.7 9.1 14.7 24.4 3.3 24.4zm-57.4-28.3c0-24.1-18-41.1-44.1-41.1H32v82h23.4c30.9 0 44.1-22.4 44.1-40.9zm23.4-41.1h-16v82h16v-82zM544 288c-33.3 20.8-226.4 124.4-416 160h401c8.2 0 15-6.8 15-15V288zm0-35l-25.9-34.5c12.1-2.5 18.7-10.6 18.7-23.2 0-28.5-30.3-24.4-52.9-24.4v82h16v-32.8h2.2l22.2 32.8H544z"></path>
    +  </symbol>
    +  <symbol id="cc-jcb" viewBox="0 0 576 512">
    +    <title id="cc-jcb-title">JCB Credit Card</title>
    +    <path d="M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z"></path>
    +  </symbol>
    +  <symbol id="cc-mastercard" viewBox="0 0 576 512">
    +    <title id="cc-mastercard-title">MasterCard Credit Card</title>
    +    <path d="M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z"></path>
    +  </symbol>
    +  <symbol id="cc-paypal" viewBox="0 0 576 512">
    +    <title id="cc-paypal-title">Paypal Credit Card</title>
    +    <path d="M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"></path>
    +  </symbol>
    +  <symbol id="cc-stripe" viewBox="0 0 576 512">
    +    <title id="cc-stripe-title">Stripe Credit Card</title>
    +    <path d="M396.9 256.5c0 19.1-8.8 33.4-21.9 33.4-8.3 0-13.3-3-16.8-6.7l-.2-52.8c3.7-4.1 8.8-7 17-7 12.9-.1 21.9 14.5 21.9 33.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM122.2 281.1c0-42.3-54.3-34.7-54.3-50.7 0-5.5 4.6-7.7 12.1-7.7 10.8 0 24.5 3.3 35.3 9.1v-33.4c-11.8-4.7-23.5-6.5-35.3-6.5-28.8 0-48 15-48 40.2 0 39.3 54 32.9 54 49.9 0 6.6-5.7 8.7-13.6 8.7-11.8 0-26.9-4.9-38.9-11.3v33.9c13.2 5.7 26.6 8.1 38.8 8.1 29.6-.2 49.9-14.7 49.9-40.3zm68.9-86.9h-27v-30.8l-34.7 7.4-.2 113.9c0 21 15.8 36.5 36.9 36.5 11.6 0 20.2-2.1 24.9-4.7v-28.9c-4.5 1.8-27 8.3-27-12.6v-50.5h27v-30.3zm73.8 0c-4.7-1.7-21.3-4.8-29.6 10.5l-2.2-10.5h-30.7v124.5h35.5v-84.4c8.4-11 22.6-8.9 27.1-7.4v-32.7zm44.2 0h-35.7v124.5h35.7V194.2zm0-47.3l-35.7 7.6v28.9l35.7-7.6v-28.9zm122.7 108.8c0-41.3-23.5-63.8-48.4-63.8-13.9 0-22.9 6.6-27.8 11.1l-1.8-8.8h-31.3V360l35.5-7.5.1-40.2c5.1 3.7 12.7 9 25.1 9 25.4-.1 48.6-20.5 48.6-65.6zm112.2 1.2c0-36.4-17.6-65.1-51.3-65.1-33.8 0-54.3 28.7-54.3 64.9 0 42.8 24.2 64.5 58.8 64.5 17 0 29.7-3.9 39.4-9.2v-28.6c-9.7 4.9-20.8 7.9-34.9 7.9-13.8 0-26-4.9-27.6-21.5h69.5c.1-2 .4-9.4.4-12.9zm-51.6-36.1c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7z"></path>
    +  </symbol>
    +  <symbol id="cc-visa" viewBox="0 0 576 512">
    +    <title id="cc-visa-title">Visa Credit Card</title>
    +    <path d="M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z"></path>
    +  </symbol>
    +  <symbol id="centercode" viewBox="0 0 512 512">
    +    <title id="centercode-title">Centercode</title>
    +    <path d="M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"></path>
    +  </symbol>
    +  <symbol id="chrome" viewBox="0 0 496 512">
    +    <title id="chrome-title">Chrome</title>
    +    <path d="M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z"></path>
    +  </symbol>
    +  <symbol id="cloudscale" viewBox="0 0 448 512">
    +    <title id="cloudscale-title">cloudscale.ch</title>
    +    <path d="M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z"></path>
    +  </symbol>
    +  <symbol id="cloudsmith" viewBox="0 0 332 512">
    +    <title id="cloudsmith-title">Cloudsmith</title>
    +    <path d="M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z"></path>
    +  </symbol>
    +  <symbol id="cloudversify" viewBox="0 0 616 512">
    +    <title id="cloudversify-title">cloudversify</title>
    +    <path d="M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z"></path>
    +  </symbol>
    +  <symbol id="codepen" viewBox="0 0 512 512">
    +    <title id="codepen-title">Codepen</title>
    +    <path d="M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"></path>
    +  </symbol>
    +  <symbol id="codiepie" viewBox="0 0 472 512">
    +    <title id="codiepie-title">Codie Pie</title>
    +    <path d="M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z"></path>
    +  </symbol>
    +  <symbol id="connectdevelop" viewBox="0 0 576 512">
    +    <title id="connectdevelop-title">Connect Develop</title>
    +    <path d="M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z"></path>
    +  </symbol>
    +  <symbol id="contao" viewBox="0 0 512 512">
    +    <title id="contao-title">Contao</title>
    +    <path d="M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z"></path>
    +  </symbol>
    +  <symbol id="cpanel" viewBox="0 0 640 512">
    +    <title id="cpanel-title">cPanel</title>
    +    <path d="M52.9 213.7h40l-6.2 23.6c-1.9 6.5-7.4 10.9-14.3 10.9H53.8c-24.9 0-24.7 37.4 0 37.4h11.3c4.2 0 7.6 3.9 6.4 8.3L64.4 320H52c-33.5 0-59-31.4-50.3-65.2 7.3-27 28.3-41.1 51.2-41.1M73.1 320L108 189.9c1.8-6.4 7.2-10.9 14.3-10.9h37c24.1 0 45.4 16.4 51 41.2 6.6 29.1-14.5 65.3-51.7 65.3h-32l6.4-23.8c1.8-6.2 7.3-10.8 14.3-10.8h10.3c12.4 0 20.8-11.7 18.3-22.6-2.1-9.2-9.9-14.8-18.3-14.8h-19.8L112 309.2c-1.9 6.2-7.4 10.7-14.2 10.7l-24.7.1m220.6-69.4c.3-1 1.9-5.3-2.1-5.3h-57.5c-9.7 0-16.6-8.9-14.2-18.5l3.5-13.4h77.9c18.8 0 33.3 17.6 28.5 36.8l-14 51.8c-2.8 10.6-12.2 17.8-23.4 17.8l-57.5-.2c-42.9 0-38.5-63.8.7-63.8H284l-3.5 13.2c-1.9 6.2-7.4 10.8-14.2 10.8h-21.6c-5.3 0-5.3 7.9 0 7.9h34.9c4.6 0 5.1-3.9 5.5-5.3l8.6-31.8m103.1-36.9c34.4 0 59.3 32.3 50.3 65.4l-8.8 33.1c-1.2 4.9-5.7 7.8-10.3 7.8h-19.1c-4.5 0-7.6-4-6.4-8.3l10.6-40c3.3-11.6-5.6-23.4-18.1-23.4h-19.8l-17.2 64c-1.2 4.8-5.6 7.8-10.4 7.8h-18.9c-4.2 0-7.6-3.9-6.4-8.3l26.2-98h48.3M498 251.6l-8 30c-.9 3.3 1.5 6.7 5.1 6.7h73.3l-5.7 21c-1.9 6.2-7.4 10.7-14.2 10.7h-66.7c-20 0-33.3-19-28.3-36.7l10.8-40c4.8-17.6 20.7-29.6 38.6-29.6h47.3c19 0 33.2 17.7 28.3 36.8l-3.2 12c-2.9 11-12.7 17.6-23.2 17.6h-53.4l3.5-13c1.6-6.2 7.2-10.8 14.2-10.8H538c2 0 3.3-1 3.9-3l.7-2.6c.7-2.7-1.3-5.1-3.9-5.1h-32.9c-4.1 0-6.9 2.1-7.8 6zm70.2 68.4l35.6-133.1c1.2-4.7 5.5-7.9 10.4-7.9h18.9c4.5 0 7.7 4 6.5 8.3l-26.5 98.2c-5.1 20.7-24.2 34.5-44.9 34.5"></path>
    +  </symbol>
    +  <symbol id="creative-commons" viewBox="0 0 496 512">
    +    <title id="creative-commons-title">Creative Commons</title>
    +    <path d="M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-by" viewBox="0 0 496 512">
    +    <title id="creative-commons-by-title">Creative Commons Attribution</title>
    +    <path d="M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-nc" viewBox="0 0 496 512">
    +    <title id="creative-commons-nc-title">Creative Commons Noncommercial</title>
    +    <path d="M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-nc-eu" viewBox="0 0 496 512">
    +    <title id="creative-commons-nc-eu-title">Creative Commons Noncommercial (Euro Sign)</title>
    +    <path d="M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-nc-jp" viewBox="0 0 496 512">
    +    <title id="creative-commons-nc-jp-title">Creative Commons Noncommercial (Yen Sign)</title>
    +    <path d="M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-nd" viewBox="0 0 496 512">
    +    <title id="creative-commons-nd-title">Creative Commons No Derivative Works</title>
    +    <path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-pd" viewBox="0 0 496 512">
    +    <title id="creative-commons-pd-title">Creative Commons Public Domain</title>
    +    <path d="M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-pd-alt" viewBox="0 0 496 512">
    +    <title id="creative-commons-pd-alt-title">Creative Commons Public Domain Alternate</title>
    +    <path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM135.5 323.3V186h68.2c33.7 0 50.5 15.5 50.5 46.5 0 9-3 46.5-57.1 46.5h-27v44.3h-34.6zm34.1-111.6v41.6h29.2c27.9 0 30-41.6-.9-41.6h-28.3zm93.9 111.6V186h53.2c21.4 0 70 5.2 70 68.6 0 63.5-48.6 68.6-70 68.6h-53.2zm34.1-108.5v79.7h19.9c24 0 34.5-15.3 34.5-39.9 0-42-31.2-39.9-35-39.9l-19.4.1z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-remix" viewBox="0 0 496 512">
    +    <title id="creative-commons-remix-title">Creative Commons Remix</title>
    +    <path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-sa" viewBox="0 0 496 512">
    +    <title id="creative-commons-sa-title">Creative Commons Share Alike</title>
    +    <path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-sampling" viewBox="0 0 496 512">
    +    <title id="creative-commons-sampling-title">Creative Commons Sampling</title>
    +    <path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-sampling-plus" viewBox="0 0 496 512">
    +    <title id="creative-commons-sampling-plus-title">Creative Commons Sampling +</title>
    +    <path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-share" viewBox="0 0 496 512">
    +    <title id="creative-commons-share-title">Creative Commons Share</title>
    +    <path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"></path>
    +  </symbol>
    +  <symbol id="creative-commons-zero" viewBox="0 0 496 512">
    +    <title id="creative-commons-zero-title">Creative Commons CC0</title>
    +    <path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"></path>
    +  </symbol>
    +  <symbol id="critical-role" viewBox="0 0 445.64 512">
    +    <title id="critical-role-title">Critical Role</title>
    +    <path d="M224.82 0c.26.15 216.57 124.51 217.12 124.72 3.04 1.18 3.7 3.46 3.7 6.56-.07 83.45-.06 166.9-.01 250.36 0 2.77-.98 4.43-3.38 5.78C420.88 399.41 234.39 505.71 223.32 512h-3C141 466.34 2.08 386.56 1.93 386.48c-1.29-.74-1.96-1.75-1.88-3.24.04-.87-.03-225.94-.05-253.1 0-2.44.89-3.79 2.93-4.93C26.19 112.11 212.2 5.98 223.07 0h1.75zM214.4 20.42l-.22-.16C149.43 57.12 84.69 94 19.95 130.87c.04.12.08.23.13.35 10.19 3.84 20.39 7.69 30.86 11.64-7.71 5.99-8.32 6.03-10.65 5.13-.1-.04-24.17-9.28-26.8-9.99v230.42c.88-1.41 64.07-110.91 64.13-111.01 1.62-2.82 3.03-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 62.99-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13 227.73 0 176.4 0 186.5.03 1.44 0 1.69-.23 1.7-1.64.01-2.96.01-5.92 0-8.88 0-1.34 2.36-.81-18.37-1.01-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1.04 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1-2.27-.66-2.55-4.08.3-4.73 3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9.04 1.1-79.42-.01-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-.97-2-4.84 1.77-4.85 33.67-.03 46.08-1.07 56.06 4.86 7.74 4.61 11.98 11.48 12.51 20.4.88 14.59-6.51 22.35-14.99 32.59-.68.82-.72 1.38-.04 2.22 2.6 3.25 5.05 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1.02-.42 1.01-1.15-.02-3.67.01-7.33-.02-11-.01-1.02.32-1.43 1.41-1.26 12.54 1.91 21.85-.07 23.58-.3 1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62 62.38-.02 125.15-.02 186.71-.02-27.12-47.03-54.11-93.85-81.18-140.81 2.26-.66-.4-.03 6.69-1.39 2.03-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 133.96 77.37 134.06V137.98c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1-.04 95.53-35.85 103.04-38.77C360.69 93.43 295.55 56 230.1 18.4c29.07 50.36 57.95 100.37 86.82 150.39-.09.11-.18.22-.28.33-9.57-.9-10.46-1.6-11.8-3.94-.96-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08 28.83-49.83 57.5-99.42 86.18-149zm51.93 129.92c1.85-.05 3.7-.52 5.54-.85 1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45-.87 1.3-1.88 1.22-2.6-.19-4.96-9.69 6.22-9.66-39.12-12.05-.7-.04-1 .23-.97.93 0 .13 3.72 121.98 3.73 122.11.02.89.52 1.2 1.21 1.51 2.92 1.31 5.96 2.42 8.7 4.05 7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4 1.49-.47 1.95-1.26 1.98-2.66.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23a1361.1 1361.1 0 0 1 3.31-18.03c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73.01 1.78-.08 1.82-1.85.68-27.49.58-22.59.97-29.55.07-1.29-.41-2.17-1.63-2.8-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15-1.66 1.06-2.31 2.33-2.22 4.34.03.59-.11-4.31.98 30.05.03.9.43 1.12 1.24 1.11.1 0 23.01-.09 34.47-.37zM67.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 3.99-.21 4.99-1.16 22.33-1.24 23.15-.1 1.04-.6 1.91-1.63 2.34-4.06 1.7-3.61-4.45-4.01-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17.01 53.63 54.08 50.88 27.24-2.01 19.05-20.19 24.84-20.47 1.98-.1 3.33 1.33 2.98 3.36-1.83 10.85-3.42 18.95-3.45 19.15-1.51 9.18-86.67 22.08-93.35-42.05-2.68-25.87 10.47-53.37 40.3-60.15zm79.99 87.67c-6.5-.03-12.99 0-19.49-.04-1.96-.01-2.78-1.61-2.66-1.79 2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-37.99.23-40.1.03-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-1.98 2.25-4.03 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13 1.22-.12 2.11-.75 2.23-2.12.3-3.42.26 4.73.45-40.58.02-5.65-.34-6.58-3.23-6.83-3.95-.35-4.03-2.26-.69-3.37.12-.04 18.98-.09 19.09-.09.32 0 4.49.53 1.05 3.38-.05.05-.16.03-.24.04-3.61.26-3.94.98-3.96 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49-.04 3.86 3.37-.02 3.4-10.37.08-20.74.03-31.11.07-10.67.04-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 3.99 17.67 4.75-.1 4.73 3.57.83 3.55zm274.97-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31-1.22-.04-2.43-.44-3.63-.73-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19-.38-.98-.94-1.44-2.04-1.44-3.12 0-7.27-.44-14.58.07-.58.04-1.4.55-1.62 1.06-1.58 3.62-3.07 7.29-4.51 10.96-1.27 3.23 7.86 1.32 12.19 2.16 2.97.57 4.53 3.72.66 3.73-8.79.03-17.58.06-26.37.05-2.92 0-3.09-3.15-.74-3.21 2.67-.07 4.74-1.13 5.92-3.47 1.5-2.97 2.8-6.04 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61 1-1.06 2.07-1.05 3.03.04 2.93 3.34 18.4 44.71 23.62 51.92 1.96 2.7 5.74 1.98 6.36 2.01 3.61.13 3.97-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26-.04-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32.01 5.32 2.75-1.21 3.45-1.81.19-2.58 1-2.66 2.83-.07 1.63-.19 38.89.29 41.21.35 1.73 1.73 2.38 3.23 2.43 13.25.43 14.92.44 16.04-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.68 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1.03 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64-.02-1.64 1.52v16.12c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76-.01.21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-1.95 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 5.99 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64-.04.36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3.04.22-3.45 1.1-.19 4.03.54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 8.98-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 21.99 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1.03.1.57 11.89-5.97 12.75-1.6.21-19.38 3.69-32.68-3.39-21.01-11.19-16.74-35.47-6.88-45.33 14.03-14.06 39.91-7.06 42.32-6.47zM288.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-4.97-.42-5 5.46-.01 1.98-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22.03 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-3.96 12.39-5.19 12.4-.1 0-38.08-.18-38.18-.19-1.93-.23-2.06-2.99-.42-3.38 1.99-.48 4.94.4 5.13-2.8.96-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-1.99-3.22.34-3.22 1.47-.02 17.99-.03 23.11-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6.01 3.58 2.61.1 2.53 3.41-.07 3.43-6.48.04-13.7-.02-21.61-.06-3.84-.02-3.38-3.35.04-3.37 4.49-.03 3.24 1.61 3.41-45.54.02-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29-.05 20.19-.41 21.17.21 1.13.72 1.87 1.65-.42 2.86-.99.52-3.86-.28-4.15 2.47-.02.21-.82 1.63-.07 43.8zm-36.91 274.27c1.14.66 2.12.66 3.26 0 16.99-9.79 181.97-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38-.02 2.58-.62 5.22-1.36 7.71-.55 1.83.38-.5-13.5 32.23-.73 1.72-1.04 2.21-1.97-.08-4.19-10.34-8.28-20.72-12.57-31.01-1.46-3.5-2.24-7-2-10.79.16-2.46.8-16.12 1.51-48.02.04-1.95.01-1.96-1.96-1.96h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3.03 11.54 1.17 21.04 3.74 25.64-7.32 6.01-14.46 2.66-34.41-12.48-38.84-2.01-.59-15.96-2.76-15.94 1.51.05 8.01.01 11.58.02 41.62zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2.02 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8 8.43 3.47 17.54.6 22.39-7.07 4.91-7.76 6.84-29.47-5.43-38.96-.12.05-.24.09-.36.12zM222.83 94.78c-9.83-.03-9.73 14.75-.07 14.87 9.59.11 10.1-14.84.07-14.87zm-80.15 103.87c.02 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-10.99 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.31 6.4c-2.03-5.28-4-10.39-6.1-15.84-2.16 5.48-4.16 10.57-6.23 15.84h12.33z"></path>
    +  </symbol>
    +  <symbol id="css3" viewBox="0 0 512 512">
    +    <title id="css3-title">CSS 3 Logo</title>
    +    <path d="M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"></path>
    +  </symbol>
    +  <symbol id="css3-alt" viewBox="0 0 384 512">
    +    <title id="css3-alt-title">Alternate CSS3 Logo</title>
    +    <path d="M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"></path>
    +  </symbol>
    +  <symbol id="cuttlefish" viewBox="0 0 440 512">
    +    <title id="cuttlefish-title">Cuttlefish</title>
    +    <path d="M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"></path>
    +  </symbol>
    +  <symbol id="d-and-d" viewBox="0 0 576 512">
    +    <title id="d-and-d-title">Dungeons &amp; Dragons</title>
    +    <path d="M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"></path>
    +  </symbol>
    +  <symbol id="dashcube" viewBox="0 0 448 512">
    +    <title id="dashcube-title">DashCube</title>
    +    <path d="M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"></path>
    +  </symbol>
    +  <symbol id="delicious" viewBox="0 0 448 512">
    +    <title id="delicious-title">Delicious Logo</title>
    +    <path d="M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192v176z"></path>
    +  </symbol>
    +  <symbol id="deploydog" viewBox="0 0 512 512">
    +    <title id="deploydog-title">deploy.dog</title>
    +    <path d="M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"></path>
    +  </symbol>
    +  <symbol id="deskpro" viewBox="0 0 480 512">
    +    <title id="deskpro-title">Deskpro</title>
    +    <path d="M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"></path>
    +  </symbol>
    +  <symbol id="dev" viewBox="0 0 448 512">
    +    <title id="dev-title">DEV</title>
    +    <path d="M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"></path>
    +  </symbol>
    +  <symbol id="deviantart" viewBox="0 0 320 512">
    +    <title id="deviantart-title">deviantART</title>
    +    <path d="M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z"></path>
    +  </symbol>
    +  <symbol id="digg" viewBox="0 0 512 512">
    +    <title id="digg-title">Digg Logo</title>
    +    <path d="M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z"></path>
    +  </symbol>
    +  <symbol id="digital-ocean" viewBox="0 0 512 512">
    +    <title id="digital-ocean-title">Digital Ocean</title>
    +    <path d="M256 504v-96.1c101.8 0 180.8-100.9 141.7-208-14.3-39.6-46.1-71.4-85.8-85.7-107.1-38.8-208.1 39.9-208.1 141.7H8C8 93.7 164.9-32.8 335 20.3c74.2 23.3 133.6 82.4 156.6 156.6C544.8 347.2 418.6 504 256 504zm.3-191.4h-95.6v95.6h95.6v-95.6zm-95.6 95.6H87v73.6h73.7v-73.6zM87 346.6H25.4v61.6H87v-61.6z"></path>
    +  </symbol>
    +  <symbol id="discord" viewBox="0 0 448 512">
    +    <title id="discord-title">Discord</title>
    +    <path d="M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z"></path>
    +  </symbol>
    +  <symbol id="discourse" viewBox="0 0 448 512">
    +    <title id="discourse-title">Discourse</title>
    +    <path d="M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"></path>
    +  </symbol>
    +  <symbol id="dochub" viewBox="0 0 416 512">
    +    <title id="dochub-title">DocHub</title>
    +    <path d="M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z"></path>
    +  </symbol>
    +  <symbol id="docker" viewBox="0 0 640 512">
    +    <title id="docker-title">Docker</title>
    +    <path d="M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"></path>
    +  </symbol>
    +  <symbol id="draft2digital" viewBox="0 0 480 512">
    +    <title id="draft2digital-title">Draft2digital</title>
    +    <path d="M369.9 425.4V371l47.1 27.2-47.1 27.2zM82.4 380.6c25.5-27.3 97.7-104.7 150.9-170 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7H82.4zm51.8-219.2c0 12.4-10 22.4-22.4 22.4-12.4 0-22.4-10-22.4-22.4 0-12.4 10-22.4 22.4-22.4 12.4 0 22.4 10.1 22.4 22.4M336 315.9v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480l144-81.9-144-82.2z"></path>
    +  </symbol>
    +  <symbol id="dribbble" viewBox="0 0 512 512">
    +    <title id="dribbble-title">Dribbble</title>
    +    <path d="M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z"></path>
    +  </symbol>
    +  <symbol id="dribbble-square" viewBox="0 0 448 512">
    +    <title id="dribbble-square-title">Dribbble Square</title>
    +    <path d="M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z"></path>
    +  </symbol>
    +  <symbol id="dropbox" viewBox="0 0 528 512">
    +    <title id="dropbox-title">Dropbox</title>
    +    <path d="M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"></path>
    +  </symbol>
    +  <symbol id="drupal" viewBox="0 0 448 512">
    +    <title id="drupal-title">Drupal Logo</title>
    +    <path d="M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z"></path>
    +  </symbol>
    +  <symbol id="dyalog" viewBox="0 0 416 512">
    +    <title id="dyalog-title">Dyalog</title>
    +    <path d="M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"></path>
    +  </symbol>
    +  <symbol id="earlybirds" viewBox="0 0 480 512">
    +    <title id="earlybirds-title">Earlybirds</title>
    +    <path d="M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"></path>
    +  </symbol>
    +  <symbol id="ebay" viewBox="0 0 640 512">
    +    <title id="ebay-title">eBay</title>
    +    <path d="M405.2 263.8c-29.1.9-47.2 6.2-47.2 25.3 0 12.4 9.9 25.8 35 25.8 33.7 0 51.6-18.4 51.6-48.4v-3.3c-11.8 0-26.3.1-39.4.6m71.5 39.7c0 9.3.3 18.6 1 26.8h-29.8c-.8-6.9-1.1-13.6-1.1-20.2-16.1 19.8-35.3 25.5-61.9 25.5-39.5 0-60.6-20.9-60.6-45 0-35 28.8-47.3 78.6-48.4 13.7-.3 29-.4 41.7-.4v-3.4c0-23.4-15-33-41-33-19.3 0-33.6 8-35 21.8h-33.7c3.6-34.4 39.7-43.1 71.5-43.1 38.1 0 70.3 13.5 70.3 53.8v65.6zm-349-56.8c-2.3-54.7-87.5-56.6-94.4 0h94.4zm-95 21.4c3.5 58.3 79.2 57.4 91.2 21.6H157c-6.4 34.4-43 46.1-74.4 46.1-57.2 0-82.5-31.5-82.5-74 0-46.8 26.2-77.6 83-77.6 45.3 0 78.4 23.7 78.4 75.4v8.5H32.7zm211 45.7c29.8 0 50.2-21.5 50.2-53.8 0-32.4-20.4-53.8-50.2-53.8-29.6 0-50.2 21.4-50.2 53.8 0 32.3 20.6 53.8 50.2 53.8m-82.2-186h32.1v80.6c15.7-18.7 37.4-24.2 58.7-24.2 35.7 0 75.4 24.1 75.4 76.2 0 43.6-31.5 75.4-76 75.4-23.3 0-45.1-8.3-58.7-24.9 0 6.6-.4 13.2-1.1 19.5h-31.5c.5-10.2 1.1-22.8 1.1-33.1V127.8zM640 189.5l-99.2 194.8h-35.9l28.5-54.1-74.6-140.7h37.5l54.9 109.9L606 189.5h34z"></path>
    +  </symbol>
    +  <symbol id="edge" viewBox="0 0 512 512">
    +    <title id="edge-title">Edge Browser</title>
    +    <path d="M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z"></path>
    +  </symbol>
    +  <symbol id="elementor" viewBox="0 0 448 512">
    +    <title id="elementor-title">Elementor</title>
    +    <path d="M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z"></path>
    +  </symbol>
    +  <symbol id="ello" viewBox="0 0 496 512">
    +    <title id="ello-title">Ello</title>
    +    <path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"></path>
    +  </symbol>
    +  <symbol id="ember" viewBox="0 0 640 512">
    +    <title id="ember-title">Ember</title>
    +    <path d="M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1c-1.9-43.8-44.2-27.6-49-24-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-18.3-11-32.8 12.1-32.8 12.1s54.5-60.7 42.5-112c-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5c-17.2-.8-28.5 18.8-28.5 18.8s-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7c11.6 2.1 16.4 1 36.5-47.9 11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2c6.7-23.6 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7c8.6 15.6 30.9 5.3 30.9 5.3s15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6c12.4 5.1 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"></path>
    +  </symbol>
    +  <symbol id="empire" viewBox="0 0 496 512">
    +    <title id="empire-title">Galactic Empire</title>
    +    <path d="M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z"></path>
    +  </symbol>
    +  <symbol id="envira" viewBox="0 0 448 512">
    +    <title id="envira-title">Envira Gallery</title>
    +    <path d="M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"></path>
    +  </symbol>
    +  <symbol id="erlang" viewBox="0 0 640 512">
    +    <title id="erlang-title">Erlang</title>
    +    <path d="M21.7 246.4c-.1 86.8 29 159.5 78.7 212.1H0v-405h87.2c-41.5 50.2-65.6 116.2-65.5 192.9zM640 53.6h-83.6c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405zm-80.8 405s0-.1 0 0h-.2.2zm-3.1-405h.3l-.1-.1-.2.1zm-230.7 9.6c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2z"></path>
    +  </symbol>
    +  <symbol id="ethereum" viewBox="0 0 320 512">
    +    <title id="ethereum-title">Ethereum</title>
    +    <path d="M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z"></path>
    +  </symbol>
    +  <symbol id="etsy" viewBox="0 0 384 512">
    +    <title id="etsy-title">Etsy</title>
    +    <path d="M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z"></path>
    +  </symbol>
    +  <symbol id="expeditedssl" viewBox="0 0 496 512">
    +    <title id="expeditedssl-title">ExpeditedSSL</title>
    +    <path d="M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z"></path>
    +  </symbol>
    +  <symbol id="facebook" viewBox="0 0 448 512">
    +    <title id="facebook-title">Facebook</title>
    +    <path d="M448 56.7v398.5c0 13.7-11.1 24.7-24.7 24.7H309.1V306.5h58.2l8.7-67.6h-67v-43.2c0-19.6 5.4-32.9 33.5-32.9h35.8v-60.5c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9h-58.4v67.6h58.4V480H24.7C11.1 480 0 468.9 0 455.3V56.7C0 43.1 11.1 32 24.7 32h398.5c13.7 0 24.8 11.1 24.8 24.7z"></path>
    +  </symbol>
    +  <symbol id="facebook-f" viewBox="0 0 264 512">
    +    <title id="facebook-f-title">Facebook F</title>
    +    <path d="M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"></path>
    +  </symbol>
    +  <symbol id="facebook-messenger" viewBox="0 0 448 512">
    +    <title id="facebook-messenger-title">Facebook Messenger</title>
    +    <path d="M224 32C15.9 32-77.5 278 84.6 400.6V480l75.7-42c142.2 39.8 285.4-59.9 285.4-198.7C445.8 124.8 346.5 32 224 32zm23.4 278.1L190 250.5 79.6 311.6l121.1-128.5 57.4 59.6 110.4-61.1-121.1 128.5z"></path>
    +  </symbol>
    +  <symbol id="facebook-square" viewBox="0 0 448 512">
    +    <title id="facebook-square-title">Facebook Square</title>
    +    <path d="M448 80v352c0 26.5-21.5 48-48 48h-85.3V302.8h60.6l8.7-67.6h-69.3V192c0-19.6 5.4-32.9 33.5-32.9H384V98.7c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9H184v67.6h60.9V480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"></path>
    +  </symbol>
    +  <symbol id="fantasy-flight-games" viewBox="0 0 512 512">
    +    <title id="fantasy-flight-games-title">Fantasy Flight-games</title>
    +    <path d="M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z"></path>
    +  </symbol>
    +  <symbol id="firefox" viewBox="0 0 480 512">
    +    <title id="firefox-title">Firefox</title>
    +    <path d="M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v.1c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5v-.2c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1-.1.2-.2.3-.3.4-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6z"></path>
    +  </symbol>
    +  <symbol id="first-order" viewBox="0 0 448 512">
    +    <title id="first-order-title">First Order</title>
    +    <path d="M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"></path>
    +  </symbol>
    +  <symbol id="first-order-alt" viewBox="0 0 496 512">
    +    <title id="first-order-alt-title">Alternate First Order</title>
    +    <path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"></path>
    +  </symbol>
    +  <symbol id="firstdraft" viewBox="0 0 384 512">
    +    <title id="firstdraft-title">firstdraft</title>
    +    <path d="M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"></path>
    +  </symbol>
    +  <symbol id="flickr" viewBox="0 0 448 512">
    +    <title id="flickr-title">Flickr</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"></path>
    +  </symbol>
    +  <symbol id="flipboard" viewBox="0 0 448 512">
    +    <title id="flipboard-title">Flipboard</title>
    +    <path d="M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z"></path>
    +  </symbol>
    +  <symbol id="fly" viewBox="0 0 384 512">
    +    <title id="fly-title">Fly</title>
    +    <path d="M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"></path>
    +  </symbol>
    +  <symbol id="font-awesome" viewBox="0 0 448 512">
    +    <title id="font-awesome-title">Font Awesome</title>
    +    <path d="M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z"></path>
    +  </symbol>
    +  <symbol id="font-awesome-alt" viewBox="0 0 448 512">
    +    <title id="font-awesome-alt-title">Alternate Font Awesome</title>
    +    <path d="M397.8 67.8c7.8 0 14.3 6.6 14.3 14.3v347.6c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6m0-35.9H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-58.5 139.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1z"></path>
    +  </symbol>
    +  <symbol id="font-awesome-flag" viewBox="0 0 448 512">
    +    <title id="font-awesome-flag-title">Font Awesome Flag</title>
    +    <path d="M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z"></path>
    +  </symbol>
    +  <symbol id="font-awesome-logo-full" viewBox="0 0 3992 512">
    +    <title id="font-awesome-logo-full-title">Font Awesome Full Logo</title>
    +    <path d="M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"></path>
    +  </symbol>
    +  <symbol id="fonticons" viewBox="0 0 448 512">
    +    <title id="fonticons-title">Fonticons</title>
    +    <path d="M0 32v448h448V32H0zm167.4 196h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4zM364 414.7H261.3v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm-21.9-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6-21.9 24.2z"></path>
    +  </symbol>
    +  <symbol id="fonticons-fi" viewBox="0 0 384 512">
    +    <title id="fonticons-fi-title">Fonticons Fi</title>
    +    <path d="M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z"></path>
    +  </symbol>
    +  <symbol id="fort-awesome" viewBox="0 0 512 512">
    +    <title id="fort-awesome-title">Fort Awesome</title>
    +    <path d="M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z"></path>
    +  </symbol>
    +  <symbol id="fort-awesome-alt" viewBox="0 0 512 512">
    +    <title id="fort-awesome-alt-title">Alternate Fort Awesome</title>
    +    <path d="M211.7 241.1v51.7c0 2.1-1.6 3.7-3.7 3.7h-22.2c-2.1 0-3.7-1.6-3.7-3.7v-51.7c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7zm114.5-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm-29.1 263.2c-.9.1-1.7.3-2.6.4-1 .2-2.1.3-3.1.5-.9.1-1.8.3-2.8.4-1 .1-2 .3-3 .4-1 .1-2 .2-2.9.3-1 .1-1.9.2-2.9.3-1 .1-2.1.2-3.1.3-.9.1-1.8.2-2.7.2-1.1.1-2.3.1-3.4.2-.8 0-1.7.1-2.5.1-1.3.1-2.6.1-3.9.1-.7 0-1.4.1-2.1.1-2 0-4 .1-6 .1s-4 0-6-.1c-.7 0-1.4 0-2.1-.1-1.3 0-2.6-.1-3.9-.1-.8 0-1.7-.1-2.5-.1-1.1-.1-2.3-.1-3.4-.2-.9-.1-1.8-.1-2.7-.2-1-.1-2.1-.2-3.1-.3-1-.1-1.9-.2-2.9-.3-1-.1-2-.2-2.9-.3-1-.1-2-.2-3-.4-.9-.1-1.8-.3-2.8-.4-1-.1-2.1-.3-3.1-.5-.9-.1-1.7-.3-2.6-.4-65.6-10.9-122.5-47.7-160-99.4-.2-.2-.3-.5-.5-.7-.8-1.1-1.6-2.2-2.3-3.3-.3-.4-.6-.8-.8-1.2-.7-1.1-1.4-2.1-2.1-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.4-2.1-2-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.3-2.2-2-3.3-.2-.4-.5-.8-.7-1.2-2.4-4-4.6-8.1-6.8-12.2-.1-.2-.2-.3-.3-.5-.6-1.1-1.1-2.2-1.7-3.3-.3-.6-.6-1.1-.8-1.7-.5-1-1-2.1-1.5-3.1-.3-.7-.6-1.3-.9-2-.5-1-.9-2-1.4-3l-.9-2.1c-.4-1-.9-2-1.3-3-.3-.7-.6-1.5-.9-2.2l-1.2-3c-.3-.8-.6-1.5-.9-2.3-.4-1-.8-2-1.1-3-.3-.9-.6-1.8-1-2.8-.6-1.6-1.1-3.3-1.7-4.9-.3-.9-.6-1.8-.9-2.8-.3-.9-.5-1.8-.8-2.7-.3-.9-.6-1.9-.8-2.8-.3-.9-.5-1.8-.8-2.7-.3-1-.5-1.9-.8-2.9-.2-.9-.5-1.8-.7-2.7-.3-1-.5-2-.7-3-.2-.9-.4-1.7-.6-2.6-.2-1.1-.5-2.2-.7-3.2-.2-.8-.3-1.6-.5-2.4-.3-1.3-.5-2.7-.8-4-.1-.6-.2-1.1-.3-1.7l-.9-5.7c-.1-.6-.2-1.3-.3-1.9-.2-1.3-.4-2.6-.5-3.9-.1-.8-.2-1.5-.3-2.3-.1-1.2-.3-2.4-.4-3.6-.1-.8-.2-1.6-.2-2.4-.1-1.2-.2-2.4-.3-3.5-.1-.8-.1-1.6-.2-2.4-.1-1.2-.2-2.4-.2-3.7 0-.8-.1-1.5-.1-2.3-.1-1.3-.1-2.7-.2-4 0-.7 0-1.3-.1-2 0-2-.1-4-.1-6 0-53.5 16.9-103 45.8-143.6 2.3-3.2 4.7-6.4 7.1-9.5 4.9-6.2 10.1-12.3 15.6-18 2.7-2.9 5.5-5.7 8.4-8.4 2.9-2.7 5.8-5.4 8.8-8 4.5-3.9 9.1-7.6 13.9-11.2 1.6-1.2 3.2-2.4 4.8-3.5C140 34.2 171.7 20.1 206 13c16.1-3.3 32.9-5 50-5s33.8 1.7 50 5c34.3 7 66 21.1 93.6 40.7 1.6 1.2 3.2 2.3 4.8 3.5 4.8 3.6 9.4 7.3 13.9 11.2 12 10.4 23 21.9 32.8 34.4 2.5 3.1 4.8 6.3 7.1 9.5C487.1 153 504 202.5 504 256c0 2 0 4-.1 6 0 .7 0 1.3-.1 2 0 1.3-.1 2.7-.2 4 0 .8-.1 1.5-.1 2.3-.1 1.2-.1 2.4-.2.7-.1.8-.1 1.6-.2 2.4-.1 1.2-.2 2.4-.3 3.5-.1.8-.2 1.6-.2 2.4-.1 1.2-.3 2.4-.4 3.6-.1.8-.2 1.5-.3 2.3-.2 1.3-.4 2.6-.5 3.9-.1.6-.2 1.3-.3 1.9l-.9 5.7c-.1.6-.2 1.1-.3 1.7-.2 1.3-.5 2.7-.8 4-.2.8-.3 1.6-.5 2.4-.2 1.1-.5 2.2-.7 3.2-.2.9-.4 1.7-.6 2.6-.2 1-.5 2-.7 3-.2.9-.5 1.8-.7 2.7-.3 1-.5 1.9-.8 2.9-.2.9-.5 1.8-.8 2.7-.3.9-.6 1.9-.8 2.8-.3.9-.5 1.8-.8 2.7-.3.9-.6 1.8-.9 2.8-.5 1.6-1.1 3.3-1.7 4.9-.3.9-.6 1.8-1 2.8-.4 1-.7 2-1.1 3-.3.8-.6 1.5-.9 2.3l-1.2 3c-.3.7-.6 1.5-.9 2.2-.4 1-.8 2-1.3 3l-.9 2.1c-.4 1-.9 2-1.4 3-.3.7-.6 1.3-.9 2-.5 1-1 2.1-1.5 3.1-.3.6-.6 1.1-.8 1.7-.6 1.1-1.1 2.2-1.7 3.3-.1.2-.2.3-.3.5-2.2 4.1-4.4 8.2-6.8 12.2-.2.4-.5.8-.7 1.2-.7 1.1-1.3 2.2-2 3.3-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2 3.2-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2.1 3.2-.3.4-.6.8-.8 1.2-.8 1.1-1.5 2.2-2.3 3.3-.2.2-.3.5-.5.7-37.6 54.7-94.5 91.4-160.1 102.4zm117.3-86.2c13-13 24.2-27.4 33.6-42.9v-71.3c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7V326h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-4.8-6.5-3.7-9.5-3.7v-30.7c6.7-1.6 13.8-2.8 20.8-2.8 8.8 0 16.8 3.5 25.4 3.5 3.7 0 22.4-.9 22.4-6.5V93.4c0-2.1-1.6-3.7-3.7-3.7-4.2 0-12.2 3.5-19.4 3.5-7.9 0-16.9-3.5-26.3-3.5-6.5 0-12.9.9-19.2 2.3v-3.9c4.4-2.1 7.4-6.7 7.4-11.5 0-16.8-25.4-16.8-25.4 0 0 4.8 3 9.5 7.4 11.5v90.2c-3 0-9.5-1.1-9.5 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v144H93.5v-25.8c0-2.1-1.6-3.7-3.7-3.7H67.7c-2.1 0-3.7 1.6-3.7 3.7v71.3c9.4 15.5 20.6 29.9 33.6 42.9 20.6 20.6 44.5 36.7 71.2 48 13.9 5.9 28.2 10.3 42.9 13.2v-75.8c0-58.6 88.6-58.6 88.6 0v75.8c14.7-2.9 29-7.4 42.9-13.2 26.7-11.3 50.6-27.4 71.2-48"></path>
    +  </symbol>
    +  <symbol id="forumbee" viewBox="0 0 448 512">
    +    <title id="forumbee-title">Forumbee</title>
    +    <path d="M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"></path>
    +  </symbol>
    +  <symbol id="foursquare" viewBox="0 0 368 512">
    +    <title id="foursquare-title">Foursquare</title>
    +    <path d="M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"></path>
    +  </symbol>
    +  <symbol id="free-code-camp" viewBox="0 0 576 512">
    +    <title id="free-code-camp-title">Free Code Camp</title>
    +    <path d="M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z"></path>
    +  </symbol>
    +  <symbol id="freebsd" viewBox="0 0 448 512">
    +    <title id="freebsd-title">FreeBSD</title>
    +    <path d="M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"></path>
    +  </symbol>
    +  <symbol id="fulcrum" viewBox="0 0 269.66 512">
    +    <title id="fulcrum-title">Fulcrum</title>
    +    <path d="M70.75 164.14l-35.38 43.55L0 164.14l35.38-43.55 35.37 43.55zM119.23 0L98.69 198.18 47.72 256l50.98 57.82L119.23 512V300.89L78.15 256l41.08-44.89V0zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55-35.38 43.55zm-48.48 46.97L191.5 256l-41.08 44.89V512l20.54-198.18L221.94 256l-50.98-57.82L150.42 0v211.11z"></path>
    +  </symbol>
    +  <symbol id="galactic-republic" viewBox="0 0 496 512">
    +    <title id="galactic-republic-title">Galactic Republic</title>
    +    <path d="M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"></path>
    +  </symbol>
    +  <symbol id="galactic-senate" viewBox="0 0 512 512">
    +    <title id="galactic-senate-title">Galactic Senate</title>
    +    <path d="M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z"></path>
    +  </symbol>
    +  <symbol id="get-pocket" viewBox="0 0 448 512">
    +    <title id="get-pocket-title">Get Pocket</title>
    +    <path d="M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"></path>
    +  </symbol>
    +  <symbol id="gg" viewBox="0 0 512 512">
    +    <title id="gg-title">GG Currency</title>
    +    <path d="M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z"></path>
    +  </symbol>
    +  <symbol id="gg-circle" viewBox="0 0 512 512">
    +    <title id="gg-circle-title">GG Currency Circle</title>
    +    <path d="M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z"></path>
    +  </symbol>
    +  <symbol id="git" viewBox="0 0 448 512">
    +    <title id="git-title">Git</title>
    +    <path d="M18.8 221.7c0 25.3 16.2 60 41.5 68.5v1c-18.8 8.3-24 50.6 1 65.8v1C34 367 16 384.3 16 414.2c0 51.5 48.8 65.8 91.5 65.8 52 0 90.7-18.7 90.7-76 0-70.5-101-44.5-101-82.8 0-13.5 7.2-18.7 19.7-21.3 41.5-7.7 67.5-40 67.5-82.2 0-7.3-1.5-14.2-4-21 6.7-1.5 13.2-3.3 19.7-5.5v-50.5c-17.2 6.8-35.7 11.8-54.5 11.8-53.8-31-126.8 1.3-126.8 69.2zm87.7 163.8c17 0 41.2 3 41.2 25 0 21.8-19.5 26.3-37.7 26.3-17.3 0-43.3-2.7-43.3-25.2.1-22.3 22.1-26.1 39.8-26.1zM103.3 256c-22 0-31.3-13-31.3-33.8 0-49.3 61-48.8 61-.5 0 20.3-8 34.3-29.7 34.3zM432 305.5v49c-13.3 7.3-30.5 9.8-45.5 9.8-53.5 0-59.8-42.2-59.8-85.7v-87.7h.5v-1c-7 0-7.3-1.6-24 1v-47.5h24c0-22.3.3-31-1.5-41.2h56.7c-2 13.8-1.5 27.5-1.5 41.2h51v47.5s-19.3-1-51-1V281c0 14.8 3.3 32.8 21.8 32.8 9.8 0 21.3-2.8 29.3-8.3zM286 68.7c0 18.7-14.5 36.2-33.8 36.2-19.8 0-34.5-17.2-34.5-36.2 0-19.3 14.5-36.7 34.5-36.7C272 32 286 50 286 68.7zm-6.2 74.5c-1.8 14.6-1.6 199.8 0 217.8h-55.5c1.6-18.1 1.8-203 0-217.8h55.5z"></path>
    +  </symbol>
    +  <symbol id="git-square" viewBox="0 0 448 512">
    +    <title id="git-square-title">Git Square</title>
    +    <path d="M140.1 348.5c12.1 0 29.5 2.1 29.5 17.9 0 15.5-13.9 18.8-27 18.8-12.3 0-30.9-2-30.9-18s15.7-18.7 28.4-18.7zm-24.7-116.6c0 14.8 6.6 24.1 22.3 24.1 15.5 0 21.2-10 21.2-24.5.1-34.4-43.5-34.8-43.5.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-241 93.7c-12.3 4.8-25.5 8.4-38.9 8.4-38.5-22.1-90.7.9-90.7 49.5 0 18 11.6 42.9 29.6 48.9v.7c-13.4 5.9-17.1 36.1.7 47v.7c-19.5 6.4-32.3 18.8-32.3 40.2 0 36.8 34.8 47 65.4 47 37.1 0 64.8-13.4 64.8-54.3 0-50.4-72.1-31.8-72.1-59.1 0-9.6 5.2-13.4 14.1-15.2 29.6-5.5 48.2-28.6 48.2-58.7 0-5.2-1.1-10.2-2.9-15 4.8-1.1 9.5-2.3 14.1-3.9v-36.2zm56.8 1.8h-39.6c1.3 10.6 1.1 142.6 0 155.5h39.6c-1.1-12.8-1.2-145.1 0-155.5zm4.5-53.3c0-13.4-10-26.2-24.1-26.2-14.3 0-24.6 12.5-24.6 26.2 0 13.6 10.5 25.9 24.6 25.9 13.7 0 24.1-12.5 24.1-25.9zm104.3 53.3h-36.4c0-9.8-.4-19.6 1.1-29.5h-40.5c1.3 7.3 1.1 13.6 1.1 29.5h-17.1v33.9c11.9-1.9 12.1-.7 17.1-.7v.7h-.4v62.7c0 31.1 4.5 61.2 42.7 61.2 10.7 0 23-1.8 32.5-7v-35c-5.7 3.9-13.9 5.9-20.9 5.9-13.2 0-15.5-12.9-15.5-23.4v-65.2c22.7 0 36.4.7 36.4.7v-33.8z"></path>
    +  </symbol>
    +  <symbol id="github" viewBox="0 0 496 512">
    +    <title id="github-title">GitHub</title>
    +    <path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path>
    +  </symbol>
    +  <symbol id="github-alt" viewBox="0 0 480 512">
    +    <title id="github-alt-title">Alternate GitHub</title>
    +    <path d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"></path>
    +  </symbol>
    +  <symbol id="github-square" viewBox="0 0 448 512">
    +    <title id="github-square-title">GitHub Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z"></path>
    +  </symbol>
    +  <symbol id="gitkraken" viewBox="0 0 592 512">
    +    <title id="gitkraken-title">GitKraken</title>
    +    <path d="M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z"></path>
    +  </symbol>
    +  <symbol id="gitlab" viewBox="0 0 512 512">
    +    <title id="gitlab-title">GitLab</title>
    +    <path d="M29.782 199.732L256 493.714 8.074 309.699c-6.856-5.142-9.712-13.996-7.141-21.993l28.849-87.974zm75.405-174.806c-3.142-8.854-15.709-8.854-18.851 0L29.782 199.732h131.961L105.187 24.926zm56.556 174.806L256 493.714l94.257-293.982H161.743zm349.324 87.974l-28.849-87.974L256 493.714l247.926-184.015c6.855-5.142 9.711-13.996 7.141-21.993zm-85.404-262.78c-3.142-8.854-15.709-8.854-18.851 0l-56.555 174.806h131.961L425.663 24.926z"></path>
    +  </symbol>
    +  <symbol id="gitter" viewBox="0 0 384 512">
    +    <title id="gitter-title">Gitter</title>
    +    <path d="M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"></path>
    +  </symbol>
    +  <symbol id="glide" viewBox="0 0 448 512">
    +    <title id="glide-title">Glide</title>
    +    <path d="M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z"></path>
    +  </symbol>
    +  <symbol id="glide-g" viewBox="0 0 448 512">
    +    <title id="glide-g-title">Glide G</title>
    +    <path d="M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"></path>
    +  </symbol>
    +  <symbol id="gofore" viewBox="0 0 400 512">
    +    <title id="gofore-title">Gofore</title>
    +    <path d="M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z"></path>
    +  </symbol>
    +  <symbol id="goodreads" viewBox="0 0 448 512">
    +    <title id="goodreads-title">Goodreads</title>
    +    <path d="M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"></path>
    +  </symbol>
    +  <symbol id="goodreads-g" viewBox="0 0 384 512">
    +    <title id="goodreads-g-title">Goodreads G</title>
    +    <path d="M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"></path>
    +  </symbol>
    +  <symbol id="google" viewBox="0 0 488 512">
    +    <title id="google-title">Google Logo</title>
    +    <path d="M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"></path>
    +  </symbol>
    +  <symbol id="google-drive" viewBox="0 0 512 512">
    +    <title id="google-drive-title">Google Drive</title>
    +    <path d="M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"></path>
    +  </symbol>
    +  <symbol id="google-play" viewBox="0 0 512 512">
    +    <title id="google-play-title">Google Play</title>
    +    <path d="M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"></path>
    +  </symbol>
    +  <symbol id="google-plus" viewBox="0 0 496 512">
    +    <title id="google-plus-title">Google Plus</title>
    +    <path d="M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z"></path>
    +  </symbol>
    +  <symbol id="google-plus-g" viewBox="0 0 640 512">
    +    <title id="google-plus-g-title">Google Plus G</title>
    +    <path d="M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"></path>
    +  </symbol>
    +  <symbol id="google-plus-square" viewBox="0 0 448 512">
    +    <title id="google-plus-square-title">Google Plus Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z"></path>
    +  </symbol>
    +  <symbol id="google-wallet" viewBox="0 0 448 512">
    +    <title id="google-wallet-title">Google Wallet</title>
    +    <path d="M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"></path>
    +  </symbol>
    +  <symbol id="gratipay" viewBox="0 0 496 512">
    +    <title id="gratipay-title">Gratipay (Gittip)</title>
    +    <path d="M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z"></path>
    +  </symbol>
    +  <symbol id="grav" viewBox="0 0 512 512">
    +    <title id="grav-title">Grav</title>
    +    <path d="M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z"></path>
    +  </symbol>
    +  <symbol id="gripfire" viewBox="0 0 384 512">
    +    <title id="gripfire-title">Gripfire, Inc.</title>
    +    <path d="M171.8 503.8c0-5.3 4.8-12.2 4.8-22.3 0-15.2-13-39.9-78.1-86.6C64.2 365.8 32 336.4 32 286.6 32 171.9 179.1 110.1 179.1 18c0-3.3-.2-6.7-.6-10 5.1 2.4 39.1 43.3 39.1 90.4 0 80.5-105.1 129.2-105.1 203 0 26.9 16.6 47.2 32.6 69.5 22.5 30.2 44.2 56.9 44.2 86.5-.1 14.5-4.4 29.7-17.5 46.4zm146-241.4c1.5 8.4 2.2 16.6 2.2 24.6 0 51.8-29.4 97.5-67.3 136.8-1 1-2.2 2.4-3.2 2.4-3.6 0-35.5-41.6-35.5-53.2 0 0 41.8-55.7 41.8-96.9 0-10.8-2.7-21.7-9.1-33.4-1.5 32.3-55.7 87.7-58.1 87.7-2.7 0-17.9-22-17.9-42.1 0-5.3 1-10.7 3.2-15.8 2.4-5.5 56.6-72 56.6-116.7 0-6.2-1-12-3.4-17.1l-4-7.2c16.7 6.5 82.6 64.1 94.7 130.9"></path>
    +  </symbol>
    +  <symbol id="grunt" viewBox="0 0 384 512">
    +    <title id="grunt-title">Grunt</title>
    +    <path d="M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm79.2 233.7c2.2 2.3 1.5 5.3.9 6.8-1.1 2.7-5.5 11.6-13 19.8-2.7 2.9-6.6 4.6-11 4.6-4.3 0-8.7-1.6-11.8-4.3-2.3-2.1-10.2-9.5-13.7-18.6-1.3-3.4-1-6.1.9-8.1 1.3-1.3 4-2.9 9.5-2.9H160c4.1 0 7 .9 8.8 2.7zm62.9-187.9c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm17.8-8.8c7.5-11.4 25.4-26 44.9-37 3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6-.1.1 0 0 0 0zM263 421.4c1.9 1.9 2.2 4.6.9 7.9-3.5 8.9-11.4 16.1-13.7 18.1-3.1 2.6-7.4 4.2-11.8 4.2s-8.3-1.6-11-4.5c-7.5-8-12-16.7-13-19.3-.6-1.5-1.3-4.4.9-6.7 1.7-1.8 4.7-2.7 8.9-2.7h29.4c5.4.1 8.1 1.7 9.4 3zm-98.3-251.5c9.9 6 18.8 8.1 27.3 8.3 8.5-.2 17.4-2.3 27.3-8.3 0 0-14.5 17.7-27.2 17.8h-.2c-12.7-.2-27.2-17.8-27.2-17.8zm184.5 147.4c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59z"></path>
    +  </symbol>
    +  <symbol id="gulp" viewBox="0 0 256 512">
    +    <title id="gulp-title">Gulp</title>
    +    <path d="M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z"></path>
    +  </symbol>
    +  <symbol id="hacker-news" viewBox="0 0 448 512">
    +    <title id="hacker-news-title">Hacker News</title>
    +    <path d="M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"></path>
    +  </symbol>
    +  <symbol id="hacker-news-square" viewBox="0 0 448 512">
    +    <title id="hacker-news-square-title">Hacker News Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"></path>
    +  </symbol>
    +  <symbol id="hackerrank" viewBox="0 0 464.36 512">
    +    <title id="hackerrank-title">Hackerrank</title>
    +    <path d="M453.5 128C439.01 103.05 261.13 0 232.16 0 203.2 0 25.25 102.79 10.84 128c-14.41 25.21-14.49 230.8 0 256.01C25.33 409.21 203.22 512 232.16 512s206.85-102.92 221.33-128c14.48-25.08 14.49-231.05.01-256zM292.13 414.22c-3.96 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32.04-2.02-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 5.96-5.74 5.94-10.13-.03-20.27-.11-30.41-.08-4.1.01-5.87-1.53-5.74-6.11.92-33.44 2.96-84.02-.15-212.67v-3.17c-9.67-.35-16.38-.96-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69 3.96 0 41.17 35.78 38.27 38.69-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2.03 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46.02 4.57 1.72 4.5 5.38-3.65 191.29-.66 177.94-.66 210.34 8.87.35 16.82.96 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z"></path>
    +  </symbol>
    +  <symbol id="hips" viewBox="0 0 640 512">
    +    <title id="hips-title">Hips</title>
    +    <path d="M0 80.2c0-1.8.9-2.7 2.7-2.7h40.9c1.9 0 2.8.9 2.8 2.7v81.2c15.2-7.7 31.7-11.5 49.8-11.4 24 .1 44.2 6.2 60.3 18 18.7 13.5 28 31.9 28 55.3v136.1c0 1.9-.9 2.8-2.7 2.8h-27.3c-9.1 0-16.4-7.3-16.4-16.3V223.3c0-.9 2.7-27-45.8-27-48.6 0-45.8 26.2-45.8 27v136.1c0 1.9-.9 2.8-2.8 2.8h-41c-1.8 0-2.7-.9-2.7-2.8V80.2zm497.7 221.5c13.7 10.2 34.1 19.1 58.4 19.1 23.3 0 32.8-4.5 36.5-13.6 3-7.9-.6-16.1-12.2-21.2l-53.6-23.5c-21.4-9.4-33.8-24-37.2-43.6-5.7-33.7 22.2-53.3 22.7-53.7 13.2-9.6 32-15.4 58.5-15.4 19 0 37.4 3.3 55.1 9.9 1.3.5 1.9 1.3 1.9 2.6V207c0 2.1-2.3 3.4-4 2.4-39.7-20.7-76.6-12.3-84-6.8-6.6 4.9-6 12.5 2.6 16.1L600 244c16.5 7.1 28.1 18.4 34.9 34.1 5.5 12.6 6.6 25.6 3.1 39.1-9.6 36.9-44.9 45.5-45.6 45.8-10.5 3.1-23.6 4.3-36.3 4.3-16.6 0-32.6-2.7-48.2-8.2-9.7-3.4-14.6-10.3-14.6-20.7V304c0-2.1 2.3-3.7 4.4-2.3zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zm-124.6 38.7c0 1.9-.9 2.8-2.8 2.8h-40.9c-1.6 0-2.7-1.4-2.7-2.8V157.6c0-1.4 1.1-2.8 2.7-2.8h40.9c1.9 0 2.8.9 2.8 2.8v201.8M228.3 72.5c15.9 0 28.9 12.7 28.9 28.9 0 15.8-12.7 28.9-28.9 28.9s-28.9-13.3-28.9-28.9c.1-16 13-28.9 28.9-28.9"></path>
    +  </symbol>
    +  <symbol id="hire-a-helper" viewBox="0 0 512 512">
    +    <title id="hire-a-helper-title">HireAHelper</title>
    +    <path d="M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"></path>
    +  </symbol>
    +  <symbol id="hooli" viewBox="0 0 640 512">
    +    <title id="hooli-title">Hooli</title>
    +    <path d="M508.4 352h57.9V156.7L508.4 184v168zm73.7-110.5V352H640V241.5h-57.9zm-250.7-8.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.9 110.9v-31c-48.8-54.6-39-76.1-35.3-79.2 13.5-11.4 37.5-8 64.4 2.1L65.2 184v63.3c13.1 14.7 30.5 31.5 53.5 50.4l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zm-39.7 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm185.7-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm173.5-73c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8v16zm-21.4 0v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.5-21.7-38.5-31.5V352h57.9zm59.7.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3v5.3l-19.4.8z"></path>
    +  </symbol>
    +  <symbol id="hornbill" viewBox="0 0 509.02 512">
    +    <title id="hornbill-title">Hornbill</title>
    +    <path d="M75.37 370.3c2.14 15.83-5.77 31.98-20.94 39.29-18.85 9.1-41.55 1.17-50.68-17.68-9.08-18.83-1.13-41.58 17.7-50.65 7.05-3.4 14.63-4.42 21.85-3.38-78.28-111.35 52-190.53 52-190.53-5.86 43.04-8.24 91.16-8.24 91.16-67.31 41.45.92 64.06 39.81 72.87 19.77 53.62 71.18 91.94 131.66 91.94 1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zM183.38 42.6c.89-7-.1-14.33-3.39-21.15-9.1-18.84-31.82-26.78-50.66-17.69-18.86 9.1-26.8 31.83-17.69 50.68 6.98 14.47 22.02 22.42 37.18 21.23-22.55 29.91-53.83 89.57-52.42 190.03l21.84-.15c-.02-.9-.14-1.77-.14-2.68 0-58.95 36.37-109.33 87.85-130.16 8.01-37.75 30.74-114.3 73.84-44.29 0 0 48.14 2.38 91.18 8.24 0-.01-77.84-128.03-187.59-54.06zm304.18 134.17c18.84-9.09 26.81-31.81 17.7-50.65-9.1-18.85-31.83-26.77-50.67-17.69-15.27 7.37-23.19 23.69-20.87 39.64-31.71-21.94-89.84-49.05-183.45-47.74l.14 22.5c2.7-.15 5.39-.41 8.14-.41 59.3 0 109.9 36.8 130.49 88.76 39.1 9.02 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 48.96-194.61 6.43.5 13.07-.49 19.31-3.5zM373.05 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15 0 60.27-38.05 111.55-91.39 131.45-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 50.97.31 4.72 1.45 9.45 3.64 13.97 9.06 18.89 31.8 26.78 50.64 17.71 18.86-9.1 26.79-31.83 17.7-50.65-6.56-13.62-20.26-21.43-34.45-21.35z"></path>
    +  </symbol>
    +  <symbol id="hotjar" viewBox="0 0 448 512">
    +    <title id="hotjar-title">Hotjar</title>
    +    <path d="M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z"></path>
    +  </symbol>
    +  <symbol id="houzz" viewBox="0 0 414.6 512">
    +    <title id="houzz-title">Houzz</title>
    +    <path d="M258.9 330.7H154.3V480H0V32h109.5v104.5l305.1 85.6V480H258.9V330.7z"></path>
    +  </symbol>
    +  <symbol id="html5" viewBox="0 0 384 512">
    +    <title id="html5-title">HTML 5 Logo</title>
    +    <path d="M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"></path>
    +  </symbol>
    +  <symbol id="hubspot" viewBox="0 0 512 512">
    +    <title id="hubspot-title">HubSpot</title>
    +    <path d="M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"></path>
    +  </symbol>
    +  <symbol id="imdb" viewBox="0 0 448 512">
    +    <title id="imdb-title">IMDB</title>
    +    <path d="M350.5 288.7c0 5.4 1.6 14.4-6.2 14.4-1.6 0-3-.8-3.8-2.4-2.2-5.1-1.1-44.1-1.1-44.7 0-3.8-1.1-12.7 4.9-12.7 7.3 0 6.2 7.3 6.2 12.7v32.7zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4v-49.3zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM21.3 228.8c-.1.1-.2.3-.3.4h.3v-.4zM97 192H64v127.8h33V192zm113.3 0h-43.1l-7.6 59.9c-2.7-20-5.4-40.1-8.7-59.9h-42.8v127.8h29v-84.5l12.2 84.5h20.6l11.6-86.4v86.4h28.7V192zm86.3 45.3c0-8.1.3-16.8-1.4-24.4-4.3-22.5-31.4-20.9-49-20.9h-24.6v127.8c86.1.1 75 6 75-82.5zm85.9 17.3c0-17.3-.8-30.1-22.2-30.1-8.9 0-14.9 2.7-20.9 9.2V192h-31.7v127.8h29.8l1.9-8.1c5.7 6.8 11.9 9.8 20.9 9.8 19.8 0 22.2-15.2 22.2-30.9v-36z"></path>
    +  </symbol>
    +  <symbol id="instagram" viewBox="0 0 448 512">
    +    <title id="instagram-title">Instagram</title>
    +    <path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path>
    +  </symbol>
    +  <symbol id="internet-explorer" viewBox="0 0 512 512">
    +    <title id="internet-explorer-title">Internet-explorer</title>
    +    <path d="M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"></path>
    +  </symbol>
    +  <symbol id="ioxhost" viewBox="0 0 640 512">
    +    <title id="ioxhost-title">ioxhost</title>
    +    <path d="M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"></path>
    +  </symbol>
    +  <symbol id="itunes" viewBox="0 0 448 512">
    +    <title id="itunes-title">iTunes</title>
    +    <path d="M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z"></path>
    +  </symbol>
    +  <symbol id="itunes-note" viewBox="0 0 384 512">
    +    <title id="itunes-note-title">Itunes Note</title>
    +    <path d="M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z"></path>
    +  </symbol>
    +  <symbol id="java" viewBox="0 0 377.6 512">
    +    <title id="java-title">Java</title>
    +    <path d="M121.6 396s-19.6 11.4 13.9 15.2c40.6 4.6 61.3 4 106-4.5 0 0 11.8 7.4 28.2 13.8C169.5 463.4 42.9 418 121.6 396m-12.2-56.1s-21.9 16.2 11.6 19.7c43.3 4.5 77.6 4.8 136.8-6.6 0 0 8.2 8.3 21.1 12.8-121.3 35.5-256.3 2.9-169.5-25.9m103.2-95.1c24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3.1 0-175.2 43.8-91.5 140.2m132.6 192.6s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8M131 281.8s-93.1 22.1-33 30.1c25.4 3.4 76 2.6 123.1-1.3 38.5-3.2 77.2-10.2 77.2-10.2s-13.6 5.8-23.4 12.5c-94.5 24.9-277 13.3-224.5-12.1 44.5-21.4 80.6-19 80.6-19m167 93.3c96.1-49.9 51.6-97.9 20.6-91.4-7.6 1.6-11 3-11 3s2.8-4.4 8.2-6.3c61.3-21.6 108.5 63.6-19.8 97.3 0-.1 1.5-1.4 2-2.6M240 0s53.2 53.2-50.5 135c-83.1 65.6-19 103.1 0 145.8-48.5-43.8-84.1-82.3-60.2-118.2C164.4 110.1 261.5 84.5 240 0m-99.5 510.4c92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6"></path>
    +  </symbol>
    +  <symbol id="jedi-order" viewBox="0 0 448 512">
    +    <title id="jedi-order-title">Jedi Order</title>
    +    <path d="M231.89 335.72l31.44-45.89-20.18 55.5 62.56 9.09-62.56 9.08 24.22 47.43s-30.22-31.77-34.49-36.25c1.76 68.78 2.19 85.7 2.19 85.7s154.4-71.65 68.62-230.09c0 0 106.97-118.07 10.09-190.73 0 0 165.5 99.91 60.55 271.46 0 0 86.78-84.77 41.37-170.54 0 0 78.71 111.01-17.16 233.11 0 0 26.24-16.15 49.45-77.71 0 0-16.93 183.26-221.96 185.66v.02h-4.08v-.02C16.93 479.14 0 295.88 0 295.88c23.21 61.56 49.44 77.71 49.44 77.71-95.87-122.11-17.15-233.11-17.15-233.11-45.41 85.78 41.38 170.54 41.38 170.54-104.95-171.56 60.54-271.46 60.54-271.46-96.88 72.66 10.09 190.73 10.09 190.73-85.78 158.44 68.62 230.09 68.62 230.09s.43-16.93 2.19-85.7l-34.48 36.25 24.22-47.43-62.56-9.08 62.56-9.09-20.18-55.5 31.44 45.89c2.25-87.85 7.82-305.82 7.85-306.85l.01-2.43.02 1 .03-1 .01 2.43c.05 1.72 5.61 219.2 7.86 306.85z"></path>
    +  </symbol>
    +  <symbol id="jenkins" viewBox="0 0 512 512">
    +    <title id="jenkins-title">Jenkis</title>
    +    <path d="M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"></path>
    +  </symbol>
    +  <symbol id="joget" viewBox="0 0 496 512">
    +    <title id="joget-title">Joget</title>
    +    <path d="M227.5 468.7c-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1M66.1 143.9C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9-55.5-1.4-81.7-20.8-58.5-48.2 23.2-27.4 51.1-40.7 68.9-51.2 17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1m-29.2-18c-71.9 116.6-35.6 269.3 81 341.2 116.6 71.9 269.3 35.6 341.2-80.9 71.9-116.6 35.6-269.4-81-341.2-40.5-25.1-85.5-37-129.9-37C165 8 83.8 49.9 36.9 125.9m244.4 110.4c-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5c10.5-6.4 31.9-14 13.4-24.6-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6"></path>
    +  </symbol>
    +  <symbol id="joomla" viewBox="0 0 448 512">
    +    <title id="joomla-title">Joomla Logo</title>
    +    <path d="M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"></path>
    +  </symbol>
    +  <symbol id="js" viewBox="0 0 448 512">
    +    <title id="js-title">JavaScript (JS)</title>
    +    <path d="M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"></path>
    +  </symbol>
    +  <symbol id="js-square" viewBox="0 0 448 512">
    +    <title id="js-square-title">JavaScript (JS) Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"></path>
    +  </symbol>
    +  <symbol id="jsfiddle" viewBox="0 0 576 512">
    +    <title id="jsfiddle-title">jsFiddle</title>
    +    <path d="M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"></path>
    +  </symbol>
    +  <symbol id="kaggle" viewBox="0 0 291.72 512">
    +    <title id="kaggle-title">Kaggle</title>
    +    <path d="M291.72 508.98c-.51 2.01-2.51 3.01-6.01 3.01h-66.92c-4.02 0-7.51-1.75-10.52-5.27L97.74 366.14l-30.82 29.32v109.02c0 5.02-2.51 7.52-7.52 7.52H7.52C2.5 512 0 509.5 0 504.48V7.51C0 2.51 2.5 0 7.52 0H59.4c5.01 0 7.52 2.51 7.52 7.51v306l132.32-133.82c3.51-3.5 7.02-5.26 10.52-5.26h69.18c6.96 0 7.9 7.87 5.26 10.52L144.35 320.26l145.86 181.2"></path>
    +  </symbol>
    +  <symbol id="keybase" viewBox="0 0 412.3 512">
    +    <title id="keybase-title">Keybase</title>
    +    <path d="M177.2 430.9c0 9.8-8 17.8-17.8 17.8s-17.8-8-17.8-17.8 8-17.8 17.8-17.8c9.8-.1 17.8 7.9 17.8 17.8zM270 413c-9.8 0-17.8 8-17.8 17.8s8 17.8 17.8 17.8 17.8-8 17.8-17.8-8-17.8-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3c4.8 26.7 15.7 51.3 31.2 72.3H46.1c-9.7-15.8-17.2-33-22.2-51.3L.1 454c0-74.9-5.5-147.6 61.5-215.2 20.2-20.4 43.7-36.2 69.1-46.7-6.8-13.5-9.5-29.2-7.8-46l-19.9-1.2c-17.9-1.1-31.6-16.5-30.6-34.4v-.1L74 84.2c1.1-17.1 15.4-30.6 32.5-30.6 1.3 0-.3-.1 28.2 1.7 13.9.8 21.5 9.8 22.8 11.4 7.1-10.4 14.5-20.5 24.6-34.5l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7C246 92.9 262 107 271 126c.4.9 15.5 29 1.2 62.6 19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM128 122.3c3.2-10 7.7-19.7 13.1-29.4.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6-4.6 0-8.3 3.5-8.6 8.1l-1.6 26.2c-.3 4.7 3.4 8.8 8.1 9.1l23.5 1.4zm25.8 61.8c5.6 9.4 14.1 16.1 22.3 20 0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7-10.3.4-19.7-5.4-23.7-15.3-13.7 21.2-37.2 62.5-17.6 95.1zm82.9 68.4L217 268.6c-1.9 1.6-2.2 4.4-.6 6.3l8.9 10.9c1 1.2 3.8 2.7 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zm118.4 25.7c-16.9-23.7-42.6-46.7-73.4-60.4-7.9-3.5-15-6.1-22.9-8.6-2 2.2-4.1 4.3-6.4 6.2l31.9 39.2c10.4 12.7 8.5 31.5-4.2 41.9-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9-8.6 0-16.6-3.8-22.1-10.5l-8.9-10.9c-6.3-7.8-7.9-17.9-5-26.8-8.2-9.9-8.3-21.3-4.6-30-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zM110.6 107.3l15.6 1 1-15.6-15.6-1-1 15.6z"></path>
    +  </symbol>
    +  <symbol id="keycdn" viewBox="0 0 512 512">
    +    <title id="keycdn-title">KeyCDN</title>
    +    <path d="M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"></path>
    +  </symbol>
    +  <symbol id="kickstarter" viewBox="0 0 448 512">
    +    <title id="kickstarter-title">Kickstarter</title>
    +    <path d="M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z"></path>
    +  </symbol>
    +  <symbol id="kickstarter-k" viewBox="0 0 384 512">
    +    <title id="kickstarter-k-title">Kickstarter K</title>
    +    <path d="M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z"></path>
    +  </symbol>
    +  <symbol id="korvue" viewBox="0 0 446 512">
    +    <title id="korvue-title">KORVUE</title>
    +    <path d="M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"></path>
    +  </symbol>
    +  <symbol id="laravel" viewBox="0 0 640 512">
    +    <title id="laravel-title">Laravel</title>
    +    <path d="M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z"></path>
    +  </symbol>
    +  <symbol id="lastfm" viewBox="0 0 512 512">
    +    <title id="lastfm-title">last.fm</title>
    +    <path d="M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"></path>
    +  </symbol>
    +  <symbol id="lastfm-square" viewBox="0 0 448 512">
    +    <title id="lastfm-square-title">last.fm Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z"></path>
    +  </symbol>
    +  <symbol id="leanpub" viewBox="0 0 576 512">
    +    <title id="leanpub-title">Leanpub</title>
    +    <path d="M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"></path>
    +  </symbol>
    +  <symbol id="less" viewBox="0 0 640 512">
    +    <title id="less-title">Less</title>
    +    <path d="M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z"></path>
    +  </symbol>
    +  <symbol id="line" viewBox="0 0 448 512">
    +    <title id="line-title">Line</title>
    +    <path d="M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z"></path>
    +  </symbol>
    +  <symbol id="linkedin" viewBox="0 0 448 512">
    +    <title id="linkedin-title">LinkedIn</title>
    +    <path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path>
    +  </symbol>
    +  <symbol id="linkedin-in" viewBox="0 0 448.1 512">
    +    <title id="linkedin-in-title">LinkedIn In</title>
    +    <path d="M100.3 448H7.4V148.9h92.9V448zM53.8 108.1C24.1 108.1 0 83.5 0 53.8S24.1 0 53.8 0s53.8 24.1 53.8 53.8-24.1 54.3-53.8 54.3zM448 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448h-.1z"></path>
    +  </symbol>
    +  <symbol id="linode" viewBox="0 0 448 512">
    +    <title id="linode-title">Linode</title>
    +    <path d="M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z"></path>
    +  </symbol>
    +  <symbol id="linux" viewBox="0 0 448 512">
    +    <title id="linux-title">Linux</title>
    +    <path d="M196.1 123.6c-.2-1.4 1.9-2.3 3.2-2.9 1.7-.7 3.9-1 5.5-.1.4.2.8.7.6 1.1-.4 1.2-2.4 1-3.5 1.6-1 .5-1.8 1.7-3 1.7-1 .1-2.7-.4-2.8-1.4zm24.7-.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm214.7 310.2c-.5 8.2-6.5 13.8-13.9 18.3-14.9 9-37.3 15.8-50.9 32.2l-2.6-2.2 2.6 2.2c-14.2 16.9-31.7 26.6-48.3 27.9-16.5 1.3-32-6.3-40.3-23v-.1c-1.1-2.1-1.9-4.4-2.5-6.7-21.5 1.2-40.2-5.3-55.1-4.1-22 1.2-35.8 6.5-48.3 6.6-4.8 10.6-14.3 17.6-25.9 20.2-16 3.7-36.1 0-55.9-10.4l1.6-3-1.6 3c-18.5-9.8-42-8.9-59.3-12.5-8.7-1.8-16.3-5-20.1-12.3-3.7-7.3-3-17.3 2.2-31.7 1.7-5.1.4-12.7-.8-20.8-.6-3.9-1.2-7.9-1.2-11.8 0-4.3.7-8.5 2.8-12.4 4.5-8.5 11.8-12.1 18.5-14.5 6.7-2.4 12.8-4 17-8.3 5.2-5.5 10.1-14.4 16.6-20.2-2.6-17.2.2-35.4 6.2-53.3 12.6-37.9 39.2-74.2 58.1-96.7 16.1-22.9 20.8-41.3 22.5-64.7C158 103.4 132.4-.2 234.8 0c80.9.1 76.3 85.4 75.8 131.3-.3 30.1 16.3 50.5 33.4 72 15.2 18 35.1 44.3 46.5 74.4 9.3 24.6 12.9 51.8 3.7 79.1 1.4.5 2.8 1.2 4.1 2 1.4.8 2.7 1.8 4 2.9 6.6 5.6 8.7 14.3 10.5 22.4 1.9 8.1 3.6 15.7 7.2 19.7 11.1 12.4 15.9 21.5 15.5 29.7zM220.8 109.1c3.6.9 8.9 2.4 13 4.4-2.1-12.2 4.5-23.5 11.8-23 8.9.3 13.9 15.5 9.1 27.3-.8 1.9-2.8 3.4-3.9 4.6 6.7 2.3 11 4.1 12.6 4.9 7.9-9.5 10.8-26.2 4.3-40.4-9.8-21.4-34.2-21.8-44 .4-3.2 7.2-3.9 14.9-2.9 21.8zm-46.2 18.8c7.8-5.7 6.9-4.7 5.9-5.5-8-6.9-6.6-27.4 1.8-28.1 6.3-.5 10.8 10.7 9.6 19.6 3.1-2.1 6.7-3.6 10.2-4.6 1.7-19.3-9-33.5-19.1-33.5-18.9 0-24 37.5-8.4 52.1zm-9.4 20.9c1.5 4.9 6.1 10.5 14.7 15.3 7.8 4.6 12 11.5 20 15 2.6 1.1 5.7 1.9 9.6 2.1 18.4 1.1 27.1-11.3 38.2-14.9 11.7-3.7 20.1-11 22.7-18.1 3.2-8.5-2.1-14.7-10.5-18.2-11.3-4.9-16.3-5.2-22.6-9.3-10.3-6.6-18.8-8.9-25.9-8.9-14.4 0-23.2 9.8-27.9 14.2-.5.5-7.9 5.9-14.1 10.5-4.2 3.3-5.6 7.4-4.2 12.3zm-33.5 252.8L112.1 366c-6.8-9.2-13.8-14.8-21.9-16-7.7-1.2-12.6 1.4-17.7 6.9-4.8 5.1-8.8 12.3-14.3 18-7.8 6.5-9.3 6.2-19.6 9.9-6.3 2.2-11.3 4.6-14.8 11.3-2.7 5-2.1 12.2-.9 20 1.2 7.9 3 16.3.6 23.9v.2c-5 13.7-5 21.7-2.6 26.4 7.9 15.4 46.6 6.1 76.5 21.9 31.4 16.4 72.6 17.1 75.3-18 2.1-20.5-31.5-49-41-68.9zm153.9 35.8c3.2-11 6.3-21.3 6.8-29 .8-15.2 1.6-28.7 4.4-39.9 3.1-12.6 9.3-23.1 21.4-27.3 2.3-21.1 18.7-21.1 38.3-12.5 18.9 8.5 26 16 22.8 26.1 1 0 2-.1 4.2 0 5.2-16.9-14.3-28-30.7-34.8 2.9-12 2.4-24.1-.4-35.7-6-25.3-22.6-47.8-35.2-59-2.3-.1-2.1 1.9 2.6 6.5 11.6 10.7 37.1 49.2 23.3 84.9-3.9-1-7.6-1.5-10.9-1.4-5.3-29.1-17.5-53.2-23.6-64.6-11.5-21.4-29.5-65.3-37.2-95.7-4.5 6.4-12.4 11.9-22.3 15-4.7 1.5-9.7 5.5-15.9 9-13.9 8-30 8.8-42.4-1.2-4.5-3.6-8-7.6-12.6-10.3-1.6-.9-5.1-3.3-6.2-4.1-2 37.8-27.3 85.3-39.3 112.7-8.3 19.7-13.2 40.8-13.8 61.5-21.8-29.1-5.9-66.3 2.6-82.4 9.5-17.6 11-22.5 8.7-20.8-8.6 14-22 36.3-27.2 59.2-2.7 11.9-3.2 24 .3 35.2 3.5 11.2 11.1 21.5 24.6 29.9 0 0 24.8 14.3 38.3 32.5 7.4 10 9.7 18.7 7.4 24.9-2.5 6.7-9.6 8.9-16.7 8.9 4.8 6 10.3 13 14.4 19.6 37.6 25.7 82.2 15.7 114.3-7.2zM415 408.5c-10-11.3-7.2-33.1-17.1-41.6-6.9-6-13.6-5.4-22.6-5.1-7.7 8.8-25.8 19.6-38.4 16.3-11.5-2.9-18-16.3-18.8-29.5-.3.2-.7.3-1 .5-7.1 3.9-11.1 10.8-13.7 21.1-2.5 10.2-3.4 23.5-4.2 38.7-.7 11.8-6.2 26.4-9.9 40.6-3.5 13.2-5.8 25.2-1.1 36.3 7.2 14.5 19.5 20.4 33.7 19.3 14.2-1.1 30.4-9.8 43.6-25.5 22-26.6 62.3-29.7 63.2-46.5.3-5.1-3.1-13-13.7-24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4 3.9-3.4 5.9-6.3 3.1-6.6-2.8-.3-2.6 2.6-6 5.1-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2-10.4 0-18.7-4.8-24.9-9.7-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"></path>
    +  </symbol>
    +  <symbol id="lyft" viewBox="0 0 512 512">
    +    <title id="lyft-title">lyft</title>
    +    <path d="M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z"></path>
    +  </symbol>
    +  <symbol id="magento" viewBox="0 0 448 512">
    +    <title id="magento-title">Magento</title>
    +    <path d="M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z"></path>
    +  </symbol>
    +  <symbol id="mailchimp" viewBox="0 0 428.07 512">
    +    <title id="mailchimp-title">Mailchimp</title>
    +    <path d="M426.56 323.72c-3.09-6.59-8.97-11.13-16.35-12.88-2.47-11.27-5.88-16.8-6.19-17.63 1.3-1.48 2.56-2.97 2.84-3.32 10.42-12.93 3.62-31.86-14.19-36.33-10.02-9.64-19.09-14.17-26.54-17.9-7.14-3.57-4.29-2.17-10.99-5.19-1.78-8.71-2.37-28.97-5.2-43.19-2.54-12.79-7.66-22.06-15.56-28.15-3.16-6.84-7.59-13.74-12.93-18.81 24.84-38.08 31.38-75.69 13.19-95.39-8.1-8.77-20.13-12.93-34.52-12.93-20.26 0-45.18 8.26-70.34 23.54 0 0-16.38-13.18-16.73-13.46-70.08-55.19-268.28 188.7-198.32 242l18.06 13.8c-11.34 31.54 4.43 69.14 37.29 81.21 7.26 2.67 15.14 3.97 23.31 3.51 0 0 53.09 97.36 165.1 97.39 129.58.04 162.55-126.72 162.9-127.86 0 .01 10.5-15.51 5.17-28.41zM20.12 267.95c-14.2-23.96 10.51-73.19 28.09-101.17C91.66 97.63 163.98 43.06 196.82 50.85l9.03-3.46c.03.03 24.67 20.85 24.7 20.87 16.97-10.19 38.58-20.57 58.8-22.64-12.3 2.77-27.29 9.15-45.05 20.01-.43.25-42.02 28.32-67.43 53.52-13.85 13.73-69.45 80.41-69.4 80.35 10.16-19.23 16.86-28.67 32.94-48.9 9.1-11.44 18.81-22.57 28.74-32.84 4.61-4.77 9.28-9.36 13.95-13.71 3.21-2.99 6.44-5.87 9.65-8.62 1.48-1.27 2.96-2.5 4.43-3.71l.01-.01L164.6 64.8l1.72 12.06 23.69 20.87s-20.96 14.11-31.39 23.01c-41.79 35.66-82.8 90.4-98.06 143.69l.73-.03c-7.6 4.19-15.14 10.91-21.73 20.05-.16-.04-17.04-12.43-19.44-16.5zm69.11 100.09c-25.03 0-45.33-21.37-45.33-47.72 0-26.36 20.29-47.72 45.33-47.72 6.49 0 12.66 1.44 18.24 4.02 0 0 9.63 4.86 12.34 27.81 2.82-7.17 4.24-13.06 4.24-13.06 3.23 9.88 4.88 20.26 4.23 30.76 2.68-3.56 5.55-10.27 5.55-10.27 5 29.33-16.4 56.18-44.6 56.18zm55.8-168.53s19.49-37.06 62.33-61.57c-3.19-.51-10.99.48-12.36.64 7.78-6.69 22.24-11.16 32.23-13.19-2.92-1.86-9.89-2.33-13.34-2.42-1.02-.03-1.01-.02-2.22.03 9.4-5.25 26.82-8.34 42.65-5.55-1.99-2.64-6.5-4.57-9.67-5.51-.28-.08-1.52-.39-1.52-.39l1.19-.28c9.54-1.84 20.69.15 29.5 3.69-1-2.32-3.45-5.03-5.29-6.74-.19-.18-1.29-.97-1.29-.97 9.22 1.91 18.06 5.94 24.71 10.5-.9-1.75-3.14-4.69-4.69-6.29 8.81 2.52 18.71 8.81 22.95 17.82.1.2.37.94.4 1.03-16.7-12.84-65.44-9.2-114.24 22.42-22.33 14.48-38.71 30.32-51.34 46.78zm263.32 146.34c-.59 1.15-6.73 34.4-41.86 62.01-44.37 34.86-102.66 31.33-124.67 11.8-11.76-11-16.85-26.73-16.85-26.73s-1.33 8.87-1.56 12.35c-8.87-15.09-8.12-33.52-8.12-33.52s-4.73 8.83-6.9 13.77c-6.53-16.62-3.16-33.78-3.16-33.78l-5.16 7.7s-2.42-18.81 3.52-34.47c6.36-16.74 18.68-28.9 21.11-30.42-9.35-2.97-20.12-11.49-20.14-11.51 0 0 4.28.28 7.26-.4 0 0-18.9-13.54-22.22-34.26 2.74 3.38 8.49 7.21 8.49 7.21-1.86-5.42-2.99-17.49-1.25-29.36l.01-.01c3.58-22.68 22.27-37.45 43.44-37.27 22.54.2 37.65 4.93 56.55-12.5 4-3.69 7.19-6.87 12.81-8.11.59-.13 2.06-.75 5.07-.75 3.05 0 5.98.69 8.67 2.29 10.25 6.1 12.46 22.01 13.56 33.68 4.07 43.28 2.43 35.57 19.94 44.49 8.36 4.25 17.74 8.29 28.43 19.72.03.03.08.09.08.09h.13c9.01.22 13.65 7.31 9.5 12.47-30.23 36.1-72.46 53.39-119.51 54.84-1.94.05-6.32.15-6.34.15-19.01.58-25.19 25.16-13.27 39.95 7.54 9.35 22.03 12.42 33.97 12.46l.17-.06c51.45 1.04 103.14-35.37 112.07-55.44.06-.15.61-1.42.61-1.42-2.07 2.43-52.18 49.61-113.08 47.9 0 0-6.66-.14-12.93-1.6-8.27-1.92-14.55-5.56-16.95-13.8 5.05 1.01 11.45 1.66 18.87 1.66 43.96 0 75.63-19.98 72.33-20.25-.13 0-.26.03-.48.08-5.13 1.19-57.97 21.66-91.37 11.16.08-1.02.24-2.01.48-2.9 2.97-9.95 8.25-8.56 16.79-8.93 30.48-1.01 55.07-8.68 73.5-17.43 19.65-9.33 34.63-21.35 40.03-27.42 7 11.79 6.96 26.92 6.96 26.92s2.74-.96 6.38-.96c11.38.01 13.73 10.23 5.09 20.6zm-149.29 13.7c0-.05-.01-.1-.01-.15.01.05.01.1.01.15zm-.01-.21c-.01-.13-.01-.26-.02-.39-.02-.65-.03-1.33 0-2.02-.02.74-.02 1.42 0 2.02.01.13.01.27.02.39zm.12 1.46c0 .02 0 .04.01.06 0-.02 0-.04-.01-.06zm.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zM193.96 59.68l2.87-8.83 4.88 17.72-6.03-1.95-1.72-6.94zm22.38 17.72l-3.62-12.59 9.97 8.36c-2.24 1.44-4.36 2.86-6.35 4.23zm42.71 281.94c-.01-.13-.01-.26-.02-.39.01.13.01.27.02.39zm-.01-.39c-.02-.65-.03-1.33 0-2.02-.03.75-.03 1.42 0 2.02zm.02.6c0-.05-.01-.1-.01-.15m.13 1.46c0-.02 0-.04-.01-.06m.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zm52.1-138.61c-.07-3.36.47-8.92 3.63-9.95h.01c5.41-1.88 12.58 11.98 12.91 24.28-4.28-2.14-9.3-3.05-14.47-2.6-1.3-3.97-1.92-7.7-2.08-11.73zM205.38 85.27l-13.59-11.38 20.57 6.28c-2.65 1.88-5 3.6-6.98 5.1zm27.7 166.94c-3.41 1.3-5.83 2.31-7 2.14-1.89-.28-.06-3.75 4.08-7.11 8.33-6.64 19.76-8.7 29.53-5.07 4.28 1.57 9.08 4.72 11.6 8.39.95 1.39 1.21 2.44.82 2.88-.77.9-3.51-.31-7.55-1.89-10.35-3.86-17.98-4.45-31.48.66zm14.55 14.53c-2.31.94-3.81 1.66-4.42 1.17-.62-.48-.01-2.42 2.15-4.51 1.88-1.81 3.83-2.83 6.07-3.77.35-.15.72-.28 1.1-.38 1.04-.28 2.09-.63 3.23-.8 9.12-1.55 15.8 3.51 14.93 4.98-.39.69-2.08.53-4.6.36-5.23-.36-10.71-.27-18.46 2.95zM60.86 323.12zm24.3-25.78c-1.85.39-.81.17-2.64.68a7 7 0 0 0-.77.25c-.58.27-1.11.45-1.62.73-.43.24-4.07 1.86-7.03 5.48-3.99 4.95-5.44 11.43-5.19 17.67.24 6.06 2.02 9.41 2.35 10.23 1.38 2.96-1.85 3.57-4.79.39l-.01-.01c-2.35-2.49-3.86-6.29-4.6-9.66-2.98-13.95 3.24-27.97 17.61-33.57.8-.32 1.74-.51 2.5-.73h-.01c1.47-.44 6.72-1.5 12.07-.67 5.87.91 11.04 3.85 14.33 7.67l.01.01c2.53 2.87 4.43 6.92 4.09 10.53v.01c-.13 1.5-.79 3.65-2.14 4.21-.5.21-1.01.1-1.36-.25-.98-.96-.22-2.93-2.6-6.3-3.17-4.47-10.31-8.76-20.2-6.67zm30.28 31.17c1.88 10.82-6 20.5-15.52 20.7-6.67.15-10.31-4.02-9.66-4.93.3-.43 1.32-.24 2.88-.01 8.5 1.32 13.66-3.86 14.9-9.29.02-.09.35-1.54.34-2.54.07-.88-.03-1.76-.16-2.56-1-5.62-7.45-6.68-11.6-11.15-3.72-4.04-2.99-9.22-.65-11.71 2.81-2.77 6.83-1.76 6.78-.78 0 .52-.97.91-2.17 1.74-1.56 1.1-1.77 2.16-1.37 3.98.26 1 .71 1.65 1.68 2.42 3.48 2.76 12.85 4.7 14.55 14.13zm212.87-81.47c2.58.4 4.22 3.59 3.67 7.13-.55 3.54-3.09 6.08-5.67 5.67-2.58-.4-4.22-3.59-3.67-7.13.56-3.53 3.09-6.07 5.67-5.67zm-28.33 10.31c1.42-2.59 5.44-3.11 8.99-1.16 3.55 1.94 5.27 5.62 3.86 8.2-1.42 2.59-5.44 3.11-8.99 1.16-3.55-1.94-5.28-5.61-3.86-8.2z"></path>
    +  </symbol>
    +  <symbol id="mandalorian" viewBox="0 0 390.88 512">
    +    <title id="mandalorian-title">Mandalorian</title>
    +    <path d="M203.28 511.89c-.98-3.26-1.69-15.83-1.39-24.58.55-15.89.98-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-.96.4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-.99-11.43.16-4.81 0-10.53-.34-12.71-2.05-12.97-3.46-27.7-3.25-33.9.21-6.12.43-7.15 2.06-9.67 3.05-4.71 6.51-14.04 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74.89-4.42 2.43-9.72 4.36-15.05 2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71-1.03 1.49-4.76 4.8-8.29 7.36-8.37 6.08-11.7 9.39-12.66 12.58-.93 3.11-1.02 7.23-.16 7.76.34.21 1.29 2.4 2.11 4.88 1.62 4.88 1.87 10.12.72 15.36-.39 1.77-1.05 5.47-1.46 8.23-.41 2.76-.98 6.46-1.25 8.22-.28 1.76-.97 3.68-1.55 4.26-.96.96-1.14.91-2.05-.53-.55-.87-1.2-3.01-1.44-4.75-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-.96-20.96.92-1.73 1.67-3.81 1.67-4.61 0-2.39-2.2-5.32-7.41-9.89-7.05-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3.01-2.6 9.11-2.97 22.02l-.35 12.13 1.95 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56.07 11.84.95 22.75 2 24.71.36.66.51 1.35.34 1.52-.17.17.41 2.09 1.29 4.27.88 2.18 1.81 6.22 2.06 8.98.25 2.76 1.02 7.43 1.71 10.37 2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 57.98-2.04 61.21-.12 2.02-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4.02-4.79-2.83-9.95.7-3.01 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1.01-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73.38-1.29.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6.03-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57.02-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-10.96-1.9-23.85-14.55-6.15-6.04-12.34-11.97-13.75-13.19-2.81-2.42-2.79-1.99-.56-9.63l1.35-4.65-1.69-3.04c-.93-1.67-2.09-3.51-2.59-4.07-1.33-1.51-5.5-10.89-5.99-13.49-.31-1.66-.09-2.67.87-3.9 2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1.05 9.41 5.03 1.34 4.79 1.37 9.79.1 18.55-.53 3.68-.98 8.68-.99 11.11-.02 4.01.19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52 1.7.71 3.82 1.99 4.72 2.85 11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 7.98 4.54 10.04 13.39 1.31 5.65 4 11.14 5.46 11.14.59 0 2.09-.63 3.33-1.39 1.98-1.22 2.25-1.73 2.25-4.18-.01-3.71-1.17-14.08-2-17.84-.37-1.66-.78-4.06-.93-5.35-.14-1.29-.61-3.85-1.03-5.69-2.55-11.16-3.65-15.46-4.1-16.05-1.55-2.02-4.08-10.2-4.93-15.92-1.64-11.11-3.96-14.23-12.91-17.39-4.64-1.64-8.89-4.12-13.32-7.78-1.15-.95-4.01-3.22-6.35-5.06-2.35-1.83-4.41-3.53-4.6-3.76-.18-.23-1.39-1.14-2.69-2.02-6.24-4.22-8.84-6.98-11.26-11.96l-2.44-5.02-.22-12.98-.22-12.98 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2.05 8.53-.19 10.12.02 11.66 1.56 1.53 1.53 1.36 6.4-.29 8.5-.74.94-1.34 1.98-1.34 2.32 0 .58-2.61 4.91-5.42 8.99-.68.99-2.13 5.35-2.37 6.82 20.44 13.39 21.55 3.77 14.07 28.98l11.4 2.54c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-11.98-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28 3.18-.92 6.58-1.68 7.55-1.68.97 0 3.66-.58 5.98-1.29 3.65-1.11 4.5-1.17 6.35-.4 1.17.48 3.79 1.09 5.82 1.36 2.02.26 4.72 1.12 6 1.91 1.28.79 3.53 1.77 5.02 2.17 2.51.68 3 .57 7.05-1.67l4.35-2.4 10.7-.41c10.44-.4 10.81-.47 15.26-2.68l4.58-2.3 2.46 1.43c1.76 1.02 3.14 2.73 4.85 5.98 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39.5 1.96 1.45 4.62 2.1 5.91.65 1.29 1.24 3.09 1.31 4.01.31 4.33-.03 5.3-2.41 6.92-2.17 1.47-6.98 7.91-6.98 9.34 0 .32-.48 1.69-1.07 3.03-5.04 11.51-6.76 13.56-14.26 16.98-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26-.37.69-2.21 2.37-4.09 3.71-2.04 1.47-3.8 3.38-4.38 4.78-.54 1.28-1.66 2.59-2.49 2.91-.83.32-1.94 1.08-2.45 1.71-.52.62-3.66 3.04-7 5.38-3.33 2.34-6.87 5.02-7.87 5.96-1 .94-2.07 1.71-2.39 1.71s-1.28.74-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6.22 1.63.86 4.27 1.42 5.88 1.32 3.8 1.31 7.86-.05 10.57-1.43 2.86-.89 6.65 1.35 9.59 2.01 2.63 2.16 4.56.71 8.84-.61 1.8-1.05 5.45-1.06 8.91-.02 4.88.22 6.28 1.46 8.38 1.2 2.04 1.82 2.48 3.24 2.32 1.98-.23 2.3-1.05 4.71-12.12 2.18-10.03 3.71-11.92 13.76-17.08 2.94-1.51 7.46-3.96 10.03-5.44 2.58-1.48 6.79-3.69 9.37-4.91 6.67-3.16 11.05-6.52 15.22-11.67 7.11-8.79 9.98-16.22 12.85-33.3.55-3.28 1.43-5.65 2.86-7.73 1.29-1.87 2.37-4.62 2.89-7.31 1.02-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8.03-2.18 3.11-6.46 13.01-8.76 20.26l-2.29 7.22-6.97 6.49c-3.83 3.57-7.96 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 9.99 0 2.98.43 4.96 1.59 7.26.87 1.74 1.81 3.91 2.09 4.83.28.92.98 2.22 1.57 2.89 1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12.02-4.7 12.02-1.79 0-4.06 9.27-5.07 20.74-.18 2.02-.62 5.94-.98 8.7-.36 2.76-.96 9.98-1.35 16.05-.77 12.22-.19 18.77 2.05 23.15 3.41 6.69.52 12.69-11.03 22.84l-3.97 3.49.07 5.19c.04 2.86.55 6.85 1.14 8.87 4.61 15.98 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15.42 1.84.91 5 1.08 7.02.17 2.02.66 5.33 1.08 7.36.47 2.26.78 11.02.79 22.74l.02 19.06-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2.02-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3.02-17.66-3.03-21.3-.01-4.23 1.02-6 5.28-9.13 4.14-3.04 4.86-3.14 5.48-.72.28 1.1 1.45 5.62 2.6 10.03 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-.98 7.07-1.17 12.39-1.04 28.43.17 19.4-.64 35.73-2.04 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-70.99-37.58c-.24-.38-1.01-5.24-1.73-10.79-.72-5.56-1.49-10.41-1.73-10.79-.23-.38-.68-3.3-.99-6.49-.31-3.19-.91-7.46-1.33-9.48-.99-4.79-3.35-19.35-3.42-21.07-.03-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29.96-.96 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83-.18 4.6-.49 9.87-.67 11.71-.18 1.84-.61 9.36-.94 16.72-.79 17.41-1.94 31.29-2.65 32-.32.3-.76.24-1-.14zM74.63 162.61c21.07 12.79 17.84 14.15 28.49 17.66 13.01 4.29 18.87 7.13 23.15 16.87-43.66 36.14-69.01 57.9-76.71 70.82-31.02 52.01-5.99 101.59 62.75 87.21-14.18 29.23-77.97 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179.02c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-67.96 2.98-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.27 70.58-78.66 91.12-105.29 61.65z"></path>
    +  </symbol>
    +  <symbol id="markdown" viewBox="0 0 640 512">
    +    <title id="markdown-title">Markdown</title>
    +    <path d="M593.85 452.92H46.15C20.7 452.92 0 432.22 0 406.77V105.23c0-25.45 20.7-46.15 46.15-46.15h547.69c25.45 0 46.15 20.7 46.15 46.15v301.54c.01 25.45-20.69 46.15-46.14 46.15zm-440-92.3v-120l61.54 76.92 61.54-76.92v120h61.54V151.38h-61.54l-61.54 76.92-61.54-76.92H92.31v209.23h61.54zM566.15 256h-61.54V151.38h-61.54V256h-61.54l92.31 107.69L566.15 256z"></path>
    +  </symbol>
    +  <symbol id="mastodon" viewBox="0 0 417.8 512">
    +    <title id="mastodon-title">Mastodon</title>
    +    <path d="M417.8 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.5-28.4-290.4 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.4-.9-9-.9-13.9 85.6 20.9 158.6 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H75.1c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"></path>
    +  </symbol>
    +  <symbol id="maxcdn" viewBox="0 0 512 512">
    +    <title id="maxcdn-title">MaxCDN</title>
    +    <path d="M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"></path>
    +  </symbol>
    +  <symbol id="medapps" viewBox="0 0 320 512">
    +    <title id="medapps-title">MedApps</title>
    +    <path d="M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"></path>
    +  </symbol>
    +  <symbol id="medium" viewBox="0 0 448 512">
    +    <title id="medium-title">Medium</title>
    +    <path d="M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"></path>
    +  </symbol>
    +  <symbol id="medium-m" viewBox="0 0 512 512">
    +    <title id="medium-m-title">Medium M</title>
    +    <path d="M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z"></path>
    +  </symbol>
    +  <symbol id="medrt" viewBox="0 0 544 512">
    +    <title id="medrt-title">MRT</title>
    +    <path d="M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z"></path>
    +  </symbol>
    +  <symbol id="meetup" viewBox="0 0 512 512">
    +    <title id="meetup-title">Meetup</title>
    +    <path d="M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"></path>
    +  </symbol>
    +  <symbol id="megaport" viewBox="0 0 496 512">
    +    <title id="megaport-title">Megaport</title>
    +    <path d="M248 8C111.04 8 0 119.04 0 256c0 136.97 111.04 248 248 248 136.96 0 248-111.03 248-248C496 119.04 384.96 8 248 8zm85.46 267.67l59.66 59.67v87.05l-26.07 19.23L341 422.39v-65.46l-33.44-33.44-33.44 33.44v65.46L248 441.62l-26.12-19.23v-65.46l-33.44-33.44L155 356.92v65.46l-26.07 19.23-26.06-19.23v-87.05l59.47-59.47V188l59.5-59.5V52.88l26.06-19.23 26.06 19.23v75.64l59.5 59.5m-85.56-11.86l33.44 33.44V276L248 309.33l-33.54-33.54v-66.2l33.44-33.43z"></path>
    +  </symbol>
    +  <symbol id="microsoft" viewBox="0 0 448 512">
    +    <title id="microsoft-title">Microsoft</title>
    +    <path d="M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"></path>
    +  </symbol>
    +  <symbol id="mix" viewBox="0 0 448 512">
    +    <title id="mix-title">Mix</title>
    +    <path d="M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"></path>
    +  </symbol>
    +  <symbol id="mixcloud" viewBox="0 0 640 512">
    +    <title id="mixcloud-title">Mixcloud</title>
    +    <path d="M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z"></path>
    +  </symbol>
    +  <symbol id="mizuni" viewBox="0 0 496 512">
    +    <title id="mizuni-title">Mizuni</title>
    +    <path d="M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"></path>
    +  </symbol>
    +  <symbol id="modx" viewBox="0 0 448 512">
    +    <title id="modx-title">MODX</title>
    +    <path d="M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"></path>
    +  </symbol>
    +  <symbol id="monero" viewBox="0 0 496 512">
    +    <title id="monero-title">Monero</title>
    +    <path d="M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"></path>
    +  </symbol>
    +  <symbol id="napster" viewBox="0 0 496 512">
    +    <title id="napster-title">Napster</title>
    +    <path d="M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"></path>
    +  </symbol>
    +  <symbol id="neos" viewBox="0 0 456.38 512">
    +    <title id="neos-title">Neos</title>
    +    <path d="M387.44 512h-95.11L184.12 357.46v91.1L97.69 512H0V29.82L40.47 0h108.05l123.74 176.13V63.45L358.69 0h97.69v461.5L387.44 512zM10.77 35.27v460.72l72.01-52.88V193.95l215.49 307.69h84.79l52.35-38.17h-78.27L40.96 12.98 10.77 35.27zm82.54 466.61l80.04-58.78V342.06L93.55 227.7v220.94l-72.58 53.25h72.34zM52.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L142.91 10.77H52.63zm230.4 180.88l72.01 102.81V15.93l-72.01 52.96v122.76z"></path>
    +  </symbol>
    +  <symbol id="nimblr" viewBox="0 0 355.52 512">
    +    <title id="nimblr-title">Nimblr</title>
    +    <path d="M232.6 299.29c15.57 0 27.15 11.46 27.15 26.96 0 15.55-11.62 26.96-27.15 26.96-15.7 0-27.15-11.57-27.15-26.96 0-15.51 11.58-26.96 27.15-26.96zM99.01 326.25c0-15.61 11.68-26.96 27.15-26.96 15.57 0 27.15 11.46 27.15 26.96 0 15.41-11.47 26.96-27.15 26.96-15.44 0-27.15-11.31-27.15-26.96m78.75-167.3C143 158.95 75.45 178.77 45.25 227L0 0v335.48C0 433.13 79.61 512 177.76 512c98.24 0 177.76-78.95 177.76-176.52 0-97.46-79.39-176.53-177.76-176.53zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59 0-72.68 59.24-131.59 132.51-131.59 73.27 0 132.51 58.91 132.51 131.59s-59.25 131.59-132.51 131.59z"></path>
    +  </symbol>
    +  <symbol id="nintendo-switch" viewBox="0 0 448 512">
    +    <title id="nintendo-switch-title">Nintendo Switch</title>
    +    <path d="M95.9 33.5c-44.6 8-80.5 41-91.8 84.4C0 133.6-.3 142.8.2 264.4.4 376 .5 378.6 2.4 387.3c10.3 46.5 43.3 79.6 90.3 90.5 6.1 1.4 13.9 1.7 64.1 1.9 51.9.4 57.3.3 58.7-1.1 1.4-1.4 1.5-19.3 1.5-222.2 0-150.5-.3-221.3-.9-222.6-.9-1.7-2.5-1.8-56.9-1.7-44.2.1-57.5.4-63.3 1.4zm83.9 222.6V444l-37.8-.5c-34.8-.4-38.5-.6-45.5-2.3-29.9-7.7-52-30.7-58.3-60.7-2-9.4-2-240.1-.1-249.3 5.6-26.1 23.7-47.7 48-57.4 12.2-4.9 17.9-5.5 57.6-5.6l35.9-.1v188zm-75.9-131.2c-5.8 1.1-14.7 5.6-19.5 9.7-9.7 8.4-14.6 20.4-13.8 34.5.4 7.3.8 9.3 3.8 15.2 4.4 9 10.9 15.6 19.9 20 6.2 3.1 7.8 3.4 15.9 3.7 7.3.3 9.9 0 14.8-1.7 20.1-6.8 32.3-26.3 28.8-46.4-3.9-23.7-26.6-39.7-49.9-35zm158.2-92.3c-.4.3-.6 100.8-.6 223.5 0 202.3.1 222.8 1.5 223.4 2.5.9 74.5.6 83.4-.4 37.7-4.3 71-27.2 89-61.2 2.3-4.4 5.4-11.7 7-16.2 5.8-17.4 5.7-12.8 5.7-146.1 0-106.4-.2-122.3-1.5-129-9.2-48.3-46.1-84.8-94.5-93.1-6.5-1.1-16.5-1.4-48.8-1.4-22.4-.1-40.9.2-41.2.5zm99.1 202.1c14.5 3.8 26.3 14.8 31.2 28.9 3.1 8.7 3 21.5-.1 29.5-5.7 14.7-16.8 25-31.1 28.8-23.2 6-47.9-8-54.6-31-2-7-1.9-18.9.4-26.2 6.9-22.7 31-36.1 54.2-30z"></path>
    +  </symbol>
    +  <symbol id="node" viewBox="0 0 640 512">
    +    <title id="node-title">Node.js</title>
    +    <path d="M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z"></path>
    +  </symbol>
    +  <symbol id="node-js" viewBox="0 0 448 512">
    +    <title id="node-js-title">Node.js JS</title>
    +    <path d="M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"></path>
    +  </symbol>
    +  <symbol id="npm" viewBox="0 0 576 512">
    +    <title id="npm-title">npm</title>
    +    <path d="M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"></path>
    +  </symbol>
    +  <symbol id="ns8" viewBox="0 0 640 512">
    +    <title id="ns8-title">NS8</title>
    +    <path d="M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z"></path>
    +  </symbol>
    +  <symbol id="nutritionix" viewBox="0 0 400 512">
    +    <title id="nutritionix-title">Nutritionix</title>
    +    <path d="M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"></path>
    +  </symbol>
    +  <symbol id="odnoklassniki" viewBox="0 0 320 512">
    +    <title id="odnoklassniki-title">Odnoklassniki</title>
    +    <path d="M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z"></path>
    +  </symbol>
    +  <symbol id="odnoklassniki-square" viewBox="0 0 448 512">
    +    <title id="odnoklassniki-square-title">Odnoklassniki Square</title>
    +    <path d="M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z"></path>
    +  </symbol>
    +  <symbol id="old-republic" viewBox="0 0 496 512">
    +    <title id="old-republic-title">Old Republic</title>
    +    <path d="M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z"></path>
    +  </symbol>
    +  <symbol id="opencart" viewBox="0 0 640 512">
    +    <title id="opencart-title">OpenCart</title>
    +    <path d="M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"></path>
    +  </symbol>
    +  <symbol id="openid" viewBox="0 0 448 512">
    +    <title id="openid-title">OpenID</title>
    +    <path d="M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"></path>
    +  </symbol>
    +  <symbol id="opera" viewBox="0 0 496 512">
    +    <title id="opera-title">Opera</title>
    +    <path d="M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"></path>
    +  </symbol>
    +  <symbol id="optin-monster" viewBox="0 0 576 512">
    +    <title id="optin-monster-title">Optin Monster</title>
    +    <path d="M550.671 450.303c0 11.62-15.673 19.457-32.158 14.863-12.16-3.243-31.346-17.565-36.211-27.294-5.674-11.62 4.054-32.698 18.916-30.806 15.674 1.621 49.453 25.401 49.453 43.237zM372.86 75.223c-3.783-72.151-100.796-79.718-125.928-23.51 44.588-24.321 90.257-15.673 125.928 23.51zM74.795 407.066c-15.673 1.621-49.452 25.401-49.452 43.237 0 11.62 15.673 19.457 32.157 14.863 12.16-3.243 31.076-17.565 35.94-27.294 5.946-11.62-3.782-32.698-18.645-30.806zm497.765 14.322c1.081 3.513 1.892 7.026 1.892 10.809.81 31.616-44.317 64.045-73.503 65.125-17.295.81-34.59-8.377-42.696-23.51-113.497 4.053-226.994 4.864-340.22 0-8.377 15.133-25.672 24.05-42.967 23.51-28.915-1.081-74.043-33.509-73.503-65.125.27-3.783.811-7.296 1.892-10.809-5.566-9.463-4.845-15.282 5.405-11.62 3.243-5.134 7.026-9.458 11.08-13.782-2.57-10.917 1.27-14.094 11.079-9.188 4.594-3.243 9.998-6.485 15.944-9.188 0-15.757 11.839-11.131 17.295-5.675 12.467-1.78 20.129.709 26.753 5.675v-19.726c-12.987 0-40.641-11.375-45.94-36.212-4.974-20.725 2.607-38.075 25.132-47.56.81-5.945 8.107-14.052 14.862-15.944 7.567-1.892 12.431 4.594 14.052 10.269 7.425 0 17.757 1.465 21.078 8.107 5.405-.541 11.079-1.352 16.484-1.892-2.432-1.892-5.134-3.513-8.107-4.594-5.134-8.917-13.782-11.079-24.591-11.62 0-.81 0-1.621.27-2.702-19.727-.541-44.048-5.675-54.857-17.835-21.321-23.638-15.935-83.577 12.16-103.498 8.377-5.675 21.618-.811 22.699 9.728 2.425 20.598.399 26.833 26.212 25.942 8.107-7.836 16.755-14.592 26.483-19.997-14.862-1.352-28.914 1.621-43.778 3.783 12.752-12.48 23.953-25.442 56.748-42.427 23.511-11.89 49.993-20.808 76.205-23.239-18.646-7.837-39.993-11.891-59.721-16.484 76.475-16.214 174.569-22.159 244.289 37.562 18.105 15.403 32.427 36.211 42.696 59.992 39.799 4.853 36.47-5.581 38.643-25.132 1.081-10.269 14.322-15.403 22.699-9.458 14.862 10.539 22.159 30.806 24.59 48.101 2.162 17.835.27 41.345-12.43 55.127-10.809 12.16-34.32 17.565-53.776 18.105v2.703c-11.08.27-20.268 2.432-25.673 11.62-2.972 1.081-5.674 2.703-8.377 4.594 5.675.54 11.35 1.351 16.755 1.891 1.869-5.619 12.535-8.377 21.077-8.377 1.621-5.405 6.756-11.89 14.052-10.269s14.052 9.998 14.863 15.944c10.809 4.324 22.159 12.16 25.131 25.672 1.892 8.107 1.621 15.133.27 21.888-5.726 25.262-33.361 36.212-45.939 36.212 0 6.756 0 13.241-.27 19.726 8.01-6.006 16.367-7.158 26.752-5.675 5.919-5.919 17.565-9.41 17.565 5.675 5.675 2.703 11.349 5.945 15.944 9.188 10.1-5.051 13.669-.539 10.809 9.188 4.053 4.323 8.107 8.917 11.079 13.782 10.136-3.62 11.021 2.078 5.409 11.62zm-73.773-254.016c17.295 6.756 26.212 22.159 30.265 35.67 1.081-10.539-2.702-39.453-13.782-51.073-7.296-7.296-14.052-5.134-14.052.81.001 6.216-1.35 11.62-2.431 14.593zm-18.646 12.43c12.971 15.673 17.024 41.615 12.7 62.963 10.809-2.162 20.537-6.215 26.212-12.16 1.892-2.162 3.783-4.864 4.864-7.566-1.081-21.348-10.269-42.697-29.725-48.912-3.242 3.243-9.187 4.864-14.051 5.675zm-21.889.811c7.567 20.537 12.431 42.696 14.322 64.585 3.513 0 7.567-.27 11.62-.811 5.945-24.321-.27-51.614-14.052-63.504-3.783 0-8.107 0-11.89-.27zM77.768 167.372c-1.081-2.973-2.432-8.377-2.432-14.593 0-5.945-7.026-8.107-14.052-.81-11.35 11.62-14.863 40.534-13.782 51.073 4.053-13.512 12.971-28.915 30.266-35.67zm5.675 75.394c-4.324-21.348-.27-47.291 12.701-62.963-4.865-.811-10.809-2.432-14.052-5.675-19.457 6.215-28.375 27.563-29.726 48.912 1.351 2.702 2.972 5.404 4.864 7.566 5.675 6.215 15.403 9.998 26.213 12.16zm41.345-61.073c-5.134 1.081-9.998 2.973-14.862 4.865l-12.16 5.134v-.27c-7.296 14.052-9.999 34.319-5.405 52.965 4.594.541 8.647.811 12.7.811 2.432-22.159 9.188-43.778 19.727-63.505zm88.095-23.239c0 42.155 34.319 76.205 76.205 76.205s76.205-34.05 76.205-76.205c0-41.886-34.319-75.935-76.205-75.935s-76.205 34.049-76.205 75.935zm152.41 97.283c9.969 50.608 3.299 64.692 16.484 58.099 15.944-8.107 22.699-39.183 22.97-57.019-12.971-.81-26.213-.81-39.454-1.08zm-71.611-.541v-.27c-.27 5.134.27 38.103 4.324 41.075 11.079 5.405 39.453 4.594 51.073 1.081 5.405-1.621 2.432-37.022 1.621-41.886-18.916-.27-38.102-.27-57.018 0zm-14.053 0v-.27c-19.456.27-38.642.27-57.829.811-1.892 9.187-4.594 48.911 1.892 51.614 12.971 5.675 41.616 5.134 54.586 1.621 4.595-2.432 2.433-45.399 1.351-53.776zm-85.662 57.56c5.405 2.432 8.647 2.432 9.728-4.324 1.892-8.647 2.432-36.752 4.865-52.155-12.16.27-24.591.811-36.752 1.621-5.405 19.727.27 45.129 22.159 54.858zm-65.666-11.08c43.778 47.02 92.689 85.663 155.923 106.47 67.558-19.186 115.659-59.991 163.219-107.011-11.095-4.315-7.715-10.363-7.296-11.62-8.918-.81-17.835-1.892-26.483-2.702-9.458 32.968-35.94 52.965-46.75 31.616-2.702-5.134-3.513-11.62-4.594-16.754-3.783 8.377-13.242 8.107-24.591 8.918-13.241 1.081-31.617 1.351-44.048-2.972-2.972 12.971-11.079 12.971-26.752 14.322-14.052 1.352-48.642 4.054-54.857-10.809-1.081 28.644-35.13 9.998-45.129-7.026-3.243-5.675-5.405-11.35-7.026-17.565-7.837.81-15.673 1.621-23.511 2.702 2.443 3.663 1.549 9.052-8.105 12.431zM115.6 453.545c-5.674-23.239-18.646-49.722-33.508-54.046-22.429-6.756-68.909 23.51-66.207 54.586 12.701 19.457 39.994 35.67 59.181 36.481 17.835.81 35.94-11.08 39.724-28.914.539-2.432.81-5.134.81-8.107zm7.296-5.944c33.509-19.457 69.179-35.671 105.931-47.02-38.643-20.537-68.098-47.831-97.283-77.016-2.162 1.352-5.134 2.432-7.836 3.513-1.637 4.91 8.718 5.33 5.405 12.431-2.162 4.054-8.648 7.567-15.133 9.188-2.161 2.702-5.134 4.864-7.836 6.485h-.27c-.27 13.511-.27 27.024.27 40.535 8.939 15.964 15.426 33.314 16.752 51.884zm320.764 12.7c-36.752-21.348-74.044-41.345-115.659-52.965-13.782 6.215-27.833 11.349-42.155 15.403-2.162.811-2.162.811-4.324 0-11.89-3.783-23.239-8.107-34.859-13.241-40.265 11.62-77.286 29.185-112.416 50.803h-.27v.27c.27 0 .27 0 .27-.27 103.227 4.054 206.455 3.513 309.413 0zm27.023-64.045l-.27.27c.541-13.782.811-27.563.811-41.345-2.973-1.621-5.675-4.054-8.107-6.756-6.485-1.351-12.971-5.134-15.133-8.918-1.892-4.053 1.351-7.566 5.945-10.269-.27-.541-.541-1.621-.541-2.432-2.972-.811-5.405-1.892-7.567-3.243-31.616 29.455-65.396 56.749-103.498 76.746 38.914 11.62 75.935 28.104 111.875 47.561 1.05-14.692 7.231-35.749 16.485-51.614zm23.24 3.244c-14.593 4.323-27.834 30.806-33.509 54.046 0 23.826 21.278 37.897 40.534 37.022 19.186-.811 46.48-17.024 59.181-36.481 2.973-31.077-43.507-61.344-66.206-54.587zM290.709 134.133c.045 0 .089.003.134.003.046 0 .09-.003.136-.003h-.27zm0 96.743c28.645 0 51.884-21.618 51.884-48.371 0-36.092-40.507-58.079-72.151-44.318 9.458 2.972 16.484 11.62 16.484 21.618 0 23.257-33.291 31.955-46.48 11.35-7.297 34.067 19.368 59.721 50.263 59.721zM68.039 474.083c.54 6.486 12.16 12.701 21.618 9.458 6.756-2.703 14.593-10.539 17.295-16.214 2.973-7.026-1.081-19.997-9.728-18.375-8.917 1.621-29.725 16.754-29.185 25.131zm410.75-25.131c-8.377-1.621-12.431 11.349-9.458 18.375 2.432 5.675 10.269 13.511 17.295 16.214 9.187 3.243 21.078-2.972 21.348-9.458.811-8.377-20.267-23.51-29.185-25.131z"></path>
    +  </symbol>
    +  <symbol id="osi" viewBox="0 0 495.8 512">
    +    <title id="osi-title">Open Source Initiative</title>
    +    <path d="M0 259.2C2.3 123.4 97.4 26.8 213.8 11.1c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.7-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 6.4-42.4-24.5-78.7-64.5-82.2-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119C1.9 318.7 1.6 280.2 0 259.2zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 31.9 18.4 49.5 53.8 45.2 90.4-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.2 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161C459.8 112 354.1 14.7 218 31.5 111.9 44.5 22.7 134 20.9 257.3z"></path>
    +  </symbol>
    +  <symbol id="page4" viewBox="0 0 496 512">
    +    <title id="page4-title">page4 Corporation</title>
    +    <path d="M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"></path>
    +  </symbol>
    +  <symbol id="pagelines" viewBox="0 0 384 512">
    +    <title id="pagelines-title">Pagelines</title>
    +    <path d="M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"></path>
    +  </symbol>
    +  <symbol id="palfed" viewBox="0 0 576 512">
    +    <title id="palfed-title">Palfed</title>
    +    <path d="M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z"></path>
    +  </symbol>
    +  <symbol id="patreon" viewBox="0 0 512 512">
    +    <title id="patreon-title">Patreon</title>
    +    <path d="M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"></path>
    +  </symbol>
    +  <symbol id="paypal" viewBox="0 0 384 512">
    +    <title id="paypal-title">Paypal</title>
    +    <path d="M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"></path>
    +  </symbol>
    +  <symbol id="penny-arcade" viewBox="0 0 640 512">
    +    <title id="penny-arcade-title">Penny Arcade</title>
    +    <path d="M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z"></path>
    +  </symbol>
    +  <symbol id="periscope" viewBox="0 0 448 512">
    +    <title id="periscope-title">Periscope</title>
    +    <path d="M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"></path>
    +  </symbol>
    +  <symbol id="phabricator" viewBox="0 0 496 512">
    +    <title id="phabricator-title">Phabricator</title>
    +    <path d="M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z"></path>
    +  </symbol>
    +  <symbol id="phoenix-framework" viewBox="0 0 640 512">
    +    <title id="phoenix-framework-title">Phoenix Framework</title>
    +    <path d="M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"></path>
    +  </symbol>
    +  <symbol id="phoenix-squadron" viewBox="0 0 513.52 512">
    +    <title id="phoenix-squadron-title">Phoenix Squadron</title>
    +    <path d="M96.24 62.81C142.91 26.57 202.15 6.57 261.28 8.08c29.67-.38 59.29 5.38 87.17 15.37-24.2-4.64-49.18-6.35-73.6-2.45-43 5.35-83.26 27.23-112.16 59.35 5.69-.99 10.81-3.68 16.07-5.88 18.19-7.89 37.6-13.29 57.4-14.87 19.8-2.14 39.75-.43 59.45 1.93-14.46 2.79-29.2 4.58-43.11 9.61-34.53 11.11-65.46 33.26-86.55 62.82-13.84 19.77-23.7 42.99-24.74 67.33-.35 16.54 5.23 34.91 19.89 44.17 11.13 6.66 24.85 9.39 37.63 6.76 15.49-2.47 30.16-8.67 43.73-16.38 11.55-6.84 22.73-14.59 32.05-24.32 3.8-3.23 2.54-8.48 2.63-12.83-2.13-.34-4.4-1.11-6.32.3a203.975 203.975 0 0 1-35.93 15.42c-20.07 6.19-42.28 8.48-62.28.78 12.83 1.73 26.14.31 37.85-5.46 20.29-9.75 36.92-25.27 54.6-38.88 27.84-21.29 57.64-40.11 89.17-55.47 25.78-12.01 53.09-22.85 81.81-24.2-15.68 13.76-32.25 26.6-46.92 41.51-14.55 14.04-27.54 29.58-40.23 45.31-3.53 4.61-8.98 6.96-13.62 10.19-22.24 15.03-40.6 35.96-52.04 60.28-9.36 19.74-14.55 41.97-11.81 63.84 1.95 13.73 8.74 27.67 20.96 35.01 12.94 7.99 29.14 8.09 43.61 5.11 32.9-7.47 61.61-28.97 81.28-56 20.5-27.6 30.61-62.38 29.25-96.64-.52-7.52-1.58-15-1.67-22.55 8.02 19.54 14.87 39.83 16.7 61.01 2.01 14.32.75 28.84-1.62 43.02-1.92 11.02-5.69 21.58-7.81 32.53 20.36-22.73 34.17-51.24 39.46-81.31 5.72-35.37.58-72.36-14.25-104.95 20.84 32.12 32.43 69.79 35.81 107.8.5 12.77.5 25.58 0 38.34-2.91 34.26-12.97 67.95-29.76 98-26.2 47.48-68.2 85.89-117.54 108.32-78.52 36.34-175.2 31.41-248.72-14.72-38.84-23.78-71.06-58.32-91.68-98.96C10.72 337.43 2.04 305.5 0 273.13V241.7c3.94-69.97 40.99-136.32 96.24-178.89m222.65 80.57c5.51-.8 10.82-2.57 16.02-4.5 4.99-1.77 9.27-5.95 10.35-11.25-8.91 5-17.95 9.95-26.37 15.75z"></path>
    +  </symbol>
    +  <symbol id="php" viewBox="0 0 640 512">
    +    <title id="php-title">PHP</title>
    +    <path d="M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"></path>
    +  </symbol>
    +  <symbol id="pied-piper" viewBox="0 0 448 512">
    +    <title id="pied-piper-title">Pied Piper Logo</title>
    +    <path d="M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"></path>
    +  </symbol>
    +  <symbol id="pied-piper-alt" viewBox="0 0 576 512">
    +    <title id="pied-piper-alt-title">Alternate Pied Piper Logo</title>
    +    <path d="M242 187c6.3-11.8 13.2-17 25.9-21.8 27.3-10.3 40.2-30.5 58.9-51.1 11.9 8.4 12 24.6 31.6 23v21.8l6.3.3c37.4-14.4 74.7-30.2 106.6-54.6 48.3-36.8 52.9-50 81.3-100l2-2.6c-.6 14.1-6.3 27.3-12.4 39.9-30.5 63.8-78.7 100.3-146.8 116.7-12.4 2.9-26.4 3.2-37.6 8.9 1.4 9.8 13.2 18.1 13.2 23 0 3.4-5.5 7.2-7.5 8.6-11.2-12.9-16.1-19.3-22.7-22.1-7.6-3.5-63.9-6.4-98.8 10zm137.9 256.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9L244 246zm-12.6 31.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zM555.5 0l-.6 1.1-.3.9.6-.6.3-1.4zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46v27.3l11.8-3.4-2.9-23.8h-8.9zm76.1 2.9c0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3l2 12.4c9-1.5 58.4-6.6 58.4-14.1z"></path>
    +  </symbol>
    +  <symbol id="pied-piper-hat" viewBox="0 0 640 512">
    +    <title id="pied-piper-hat-title">Pied Piper-hat</title>
    +    <path d="M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"></path>
    +  </symbol>
    +  <symbol id="pied-piper-pp" viewBox="0 0 448 512">
    +    <title id="pied-piper-pp-title">Pied Piper PP Logo (Old)</title>
    +    <path d="M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"></path>
    +  </symbol>
    +  <symbol id="pinterest" viewBox="0 0 496 512">
    +    <title id="pinterest-title">Pinterest</title>
    +    <path d="M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"></path>
    +  </symbol>
    +  <symbol id="pinterest-p" viewBox="0 0 384 512">
    +    <title id="pinterest-p-title">Pinterest P</title>
    +    <path d="M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"></path>
    +  </symbol>
    +  <symbol id="pinterest-square" viewBox="0 0 448 512">
    +    <title id="pinterest-square-title">Pinterest Square</title>
    +    <path d="M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"></path>
    +  </symbol>
    +  <symbol id="playstation" viewBox="0 0 576 512">
    +    <title id="playstation-title">PlayStation</title>
    +    <path d="M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z"></path>
    +  </symbol>
    +  <symbol id="product-hunt" viewBox="0 0 512 512">
    +    <title id="product-hunt-title">Product Hunt</title>
    +    <path d="M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z"></path>
    +  </symbol>
    +  <symbol id="pushed" viewBox="0 0 432 512">
    +    <title id="pushed-title">Pushed</title>
    +    <path d="M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"></path>
    +  </symbol>
    +  <symbol id="python" viewBox="0 0 448 512">
    +    <title id="python-title">Python</title>
    +    <path d="M167.8 36.4c-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1zm-6.7 28.4c11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4zm185.2 81.4v47.5c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6-7.7-30.9-22.3-54.2-53.4-54.2h-40.1zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3z"></path>
    +  </symbol>
    +  <symbol id="qq" viewBox="0 0 448 512">
    +    <title id="qq-title">QQ</title>
    +    <path d="M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z"></path>
    +  </symbol>
    +  <symbol id="quinscape" viewBox="0 0 489.1 512">
    +    <title id="quinscape-title">QuinScape</title>
    +    <path d="M301.9 474.6h-1.3c-87.3 0-158.1-70.8-158.1-158.1s70.8-158.1 158.1-158.1c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C489.1 117.5 379.6 8 244.5 8 109.5 8 0 117.5 0 252.6s109.5 244.6 244.5 244.6c24.8 0 47.8-3.2 70.4-10.1-5.2-3.5-9-8.2-13.4-12.6l.4.1zm-21.2-69.8c0-54.8 44.4-99.2 99.2-99.2 54.8 0 99.2 44.4 99.2 99.2 0 54.8-44.4 99.2-99.2 99.2-54.8 0-99.2-44.4-99.2-99.2"></path>
    +  </symbol>
    +  <symbol id="quora" viewBox="0 0 448 512">
    +    <title id="quora-title">Quora</title>
    +    <path d="M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z"></path>
    +  </symbol>
    +  <symbol id="r-project" viewBox="0 0 581 512">
    +    <title id="r-project-title">R Project</title>
    +    <path d="M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"></path>
    +  </symbol>
    +  <symbol id="ravelry" viewBox="0 0 512 512">
    +    <title id="ravelry-title">Ravelry</title>
    +    <path d="M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z"></path>
    +  </symbol>
    +  <symbol id="react" viewBox="0 0 512 512">
    +    <title id="react-title">React</title>
    +    <path d="M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zm-130 189.1c4.6 8.8 9.3 17.5 14.3 26.1 5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5zm0-50.6c-6.3-14.9-11.6-29.5-16-43.6 14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26zm11.4 25.3c6.6-13.8 13.8-27.3 21.4-40.6 7.6-13.3 15.8-26.2 24.4-38.9 15-1.1 30.3-1.7 45.9-1.7 15.6 0 31 .6 45.9 1.7 8.5 12.6 16.6 25.5 24.3 38.7 7.7 13.2 14.9 26.7 21.7 40.4-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6-15.7 0-30.9-.5-45.6-1.4-8.7-12.7-16.9-25.7-24.6-39-7.7-13.3-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 210.2c25.3 0 45.8 20.5 45.8 45.8 0 25.3-20.5 45.8-45.8 45.8-25.3 0-45.8-20.5-45.8-45.8 0-25.3 20.5-45.8 45.8-45.8"></path>
    +  </symbol>
    +  <symbol id="readme" viewBox="0 0 576 512">
    +    <title id="readme-title">ReadMe</title>
    +    <path d="M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z"></path>
    +  </symbol>
    +  <symbol id="rebel" viewBox="0 0 512 512">
    +    <title id="rebel-title">Rebel Alliance</title>
    +    <path d="M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z"></path>
    +  </symbol>
    +  <symbol id="red-river" viewBox="0 0 448 512">
    +    <title id="red-river-title">red river</title>
    +    <path d="M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z"></path>
    +  </symbol>
    +  <symbol id="reddit" viewBox="0 0 512 512">
    +    <title id="reddit-title">reddit Logo</title>
    +    <path d="M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z"></path>
    +  </symbol>
    +  <symbol id="reddit-alien" viewBox="0 0 512 512">
    +    <title id="reddit-alien-title">reddit Alien</title>
    +    <path d="M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"></path>
    +  </symbol>
    +  <symbol id="reddit-square" viewBox="0 0 448 512">
    +    <title id="reddit-square-title">reddit Square</title>
    +    <path d="M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z"></path>
    +  </symbol>
    +  <symbol id="rendact" viewBox="0 0 496 512">
    +    <title id="rendact-title">Rendact</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248c18.6 0 36.7-2.1 54.1-5.9-5.6-7.4-10.8-14.4-15.9-21.3-12.4 2.1-25.2 3.3-38.3 3.3C124.3 480 24 379.7 24 256S124.3 32 248 32s224 100.3 224 224c0 71-33 134.2-84.5 175.3-25.9 18.8-39.1 21.4-83.5-44.2-78.7-112.9-48-71.1-73.7-108.3 72.8 8.9 228.5-72 168.6-168.6C314-26.8 15 93.8 59.7 226.4c3.2 9.8 14.4 38.6 45.6 38.6 2 0 2.6-.6 2-1.7-4.4-8.7-20.1-9.8-20.1-37.4 0-40.5 40.5-89.6 100.3-120 66.1-32.3 131.9-30.2 158.2 5.4 27.2 38.3-20.9 119.2-120.4 136.9 7.5-9.4 57-75.2 62.8-84 22.7-34.6 23.6-49 14-59.2-15.5-16.9-29.5-10.3-50.7-11.7-10.8-.9-113.7 181.2-136.4 216.9-5.9 9-21.2 34.1-21.2 50.9 0 21.3 2.8 51.4 20.6 51.4 10.6 0 8-18.7 8-26.6 0-12.9 27.4-49.4 74.8-104.6 20.4 36.1 57.7 114.3 130.2 209.7 98-33.1 168.5-125.8 168.5-235C496 119 385 8 248 8z"></path>
    +  </symbol>
    +  <symbol id="renren" viewBox="0 0 512 512">
    +    <title id="renren-title">Renren</title>
    +    <path d="M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"></path>
    +  </symbol>
    +  <symbol id="replyd" viewBox="0 0 448 512">
    +    <title id="replyd-title">replyd</title>
    +    <path d="M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z"></path>
    +  </symbol>
    +  <symbol id="researchgate" viewBox="0 0 448 512">
    +    <title id="researchgate-title">Researchgate</title>
    +    <path d="M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"></path>
    +  </symbol>
    +  <symbol id="resolving" viewBox="0 0 496 512">
    +    <title id="resolving-title">Resolving</title>
    +    <path d="M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z"></path>
    +  </symbol>
    +  <symbol id="rev" viewBox="0 0 410.22 512">
    +    <title id="rev-title">Rev.io</title>
    +    <path d="M270.67 274.89c0 36.16-29.41 65.57-65.56 65.57s-65.57-29.41-65.57-65.57 29.41-65.56 65.57-65.56 65.56 29.4 65.56 65.56zm139.55-5.05h-.13c-1.49-61.55-30.1-116.35-74.32-152.98l-45.38 26.2c43.17 28.03 71.81 76.63 71.81 131.82 0 86.62-70.47 157.09-157.09 157.09S48.02 361.5 48.02 274.88c0-81.86 62.96-149.27 142.99-156.43v39.12l108.76-62.79L191.01 32v38.32C84.31 77.57 0 166.36 0 274.89c0 111.59 89.12 202.29 200.06 204.98v.13h210.16V269.84z"></path>
    +  </symbol>
    +  <symbol id="rocketchat" viewBox="0 0 448 512">
    +    <title id="rocketchat-title">Rocket.Chat</title>
    +    <path d="M448 256.2c0-87.2-99.6-153.3-219.8-153.3-18.8 0-37.3 1.6-55.3 4.8-11.1-10.5-24.2-20-38-27.4C61.2 44.2 0 79.4 0 79.4s56.9 47.1 47.6 88.3c-52.3 52.3-52.5 124.1 0 176.6C56.9 385.6 0 432.6 0 432.6s61.2 35.2 134.9-.8c13.8-7.5 26.9-16.9 38-27.4 18 3.2 36.5 4.8 55.3 4.8 120.3-.1 219.8-65.8 219.8-153zm-219.7 124c-23.7 0-46.3-2.8-67.3-7.8-21.3 25.8-68.1 61.7-113.6 50.1 14.8-16 36.7-43.1 32-87.6-27.3-21.4-43.6-48.7-43.6-78.5 0-68.4 86.2-123.9 192.5-123.9S420.8 188 420.8 256.4c0 68.3-86.2 123.8-192.5 123.8zm25.6-123.9c0 14.2-11.5 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.5-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm88.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm-177.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.2 0 25.6 11.6 25.6 25.8z"></path>
    +  </symbol>
    +  <symbol id="rockrms" viewBox="0 0 496 512">
    +    <title id="rockrms-title">Rockrms</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"></path>
    +  </symbol>
    +  <symbol id="safari" viewBox="0 0 512 512">
    +    <title id="safari-title">Safari</title>
    +    <path d="M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z"></path>
    +  </symbol>
    +  <symbol id="sass" viewBox="0 0 640.4 512">
    +    <title id="sass-title">Sass</title>
    +    <path d="M551.1 291.9c-22.4.1-41.8 5.5-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-3.8 11.1-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-2.7 11.4-5.3 19.1-2.6 7.7-33.9 77.3-42.1 95.4-4.2 9.2-7.8 16.6-10.4 21.6s-.2.3-.4.9c-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2-.8 0-1.4 2-1.4 2s10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.4-35.4 189.9-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8C367 196.5 415.1 130.2 401 74.7 386.6 18.3 293.1-.2 204.6 31.2 151.9 49.9 94.9 79.3 53.9 117.6 5.2 163.2-2.6 202.9.6 219.5c11.4 58.9 92.6 97.3 125.1 125.7-1.6.9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5s1.4 9.7 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2s0 .1.1.2c-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 6.2-2.2 13.4-5.7 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6s1.4 9.7 6.2 25.8c2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 6.5-2.2 14.3-5.7 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8-2.1 14.6-13.8 22.6-17.7 25-3.9 2.4-5.1 3.3-4.8 5.1.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3C54.6 451 59.3 421.4 82 400c13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.3 30.4.3 57.2-19.1 78.3zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5.1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.8 1.9 7.4 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4z"></path>
    +  </symbol>
    +  <symbol id="schlix" viewBox="0 0 448 512">
    +    <title id="schlix-title">SCHLIX</title>
    +    <path d="M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"></path>
    +  </symbol>
    +  <symbol id="scribd" viewBox="0 0 384 512">
    +    <title id="scribd-title">Scribd</title>
    +    <path d="M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"></path>
    +  </symbol>
    +  <symbol id="searchengin" viewBox="0 0 460 512">
    +    <title id="searchengin-title">Searchengin</title>
    +    <path d="M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"></path>
    +  </symbol>
    +  <symbol id="sellcast" viewBox="0 0 448 512">
    +    <title id="sellcast-title">Sellcast</title>
    +    <path d="M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"></path>
    +  </symbol>
    +  <symbol id="sellsy" viewBox="0 0 640 512">
    +    <title id="sellsy-title">Sellsy</title>
    +    <path d="M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"></path>
    +  </symbol>
    +  <symbol id="servicestack" viewBox="0 0 496 512">
    +    <title id="servicestack-title">Servicestack</title>
    +    <path d="M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"></path>
    +  </symbol>
    +  <symbol id="shirtsinbulk" viewBox="0 0 448 512">
    +    <title id="shirtsinbulk-title">Shirts in Bulk</title>
    +    <path d="M395.208 221.583H406v33.542h-10.792v-33.542zm0-9.625H406v-33.542h-10.792v33.542zm0 86.333H406V264.75h-10.792v33.541zM358.75 135.25h-33.542v10.5h33.542v-10.5zm36.458 206.208H406v-33.542h-10.792v33.542zM311.5 135.25h-33.542v10.5H311.5v-10.5zm-47.25 0H231v10.5h33.25v-10.5zm-47.25 0h-33.25v10.5H217v-10.5zm178.208 33.542H406V135.25h-33.542v10.5h22.75v23.042zm-255.792 259l30.625 13.417 4.375-9.917-30.625-13.417-4.375 9.917zM179.083 445l30.334 13.708 4.374-9.916-30.333-13.417-4.375 9.625zm216.125-60.375H406v-33.542h-10.792v33.542zm-334.833 8.167L91 406.208l4.375-9.624-30.625-13.709-4.375 9.917zm39.666 17.499l30.625 13.417 4.375-9.917-30.625-13.416-4.375 9.916zm132.417 38.501l4.375 9.916L267.459 445l-4.375-9.625-30.626 13.417zm118.417-52.208l4.375 9.624 30.624-13.416-4.374-9.917-30.625 13.709zM311.5 413.791l4.375 9.917 30.625-13.417-4.374-9.916-30.626 13.416zm-39.667 17.501l4.375 9.917 30.625-13.417-4.375-9.917-30.625 13.417zM311.5 46.583h-33.542v10.5H311.5v-10.5zm94.209 0h-33.251v10.5h33.251v-10.5zm-188.709 0h-33.25v10.5H217v-10.5zm141.75 0h-33.542v10.5h33.542v-10.5zm-94.5 0H231v10.5h33.25v-10.5zM448 3.708v406l-226.334 98.584L0 409.708v-406h448zm-29.166 116.958H29.166V390.75l192.792 85.75 196.875-85.75V120.666zm0-87.791H29.166V91.5h389.667V32.875zM75.542 46.583H42.291v10.5h33.251v-10.5zm94.5 0H136.5v10.5h33.542v-10.5zm-47.251 0H89.25v10.5h33.542v-10.5zm7.584 236.542c0-50.167 41.125-91.292 91.292-91.292 50.458 0 91.292 41.125 91.292 91.292 0 50.458-40.833 91.292-91.292 91.292-50.167-.001-91.292-40.834-91.292-91.292zm120.75 18.084c0 13.125-23.917 14.291-32.666 14.291-12.25 0-29.75-2.625-35.875-14.875h-.875L172.666 319c14.876 9.333 29.167 12.25 47.25 12.25 19.542 0 51.042-5.833 51.042-31.209 0-48.125-78.458-16.333-78.458-37.916 0-13.125 20.708-14.875 29.75-14.875 10.791 0 29.166 3.208 35.583 13.124h.875l8.751-16.916c-15.167-6.125-27.417-11.959-44.334-11.959-20.125 0-49.583 6.417-49.583 31.792 0 44.334 77.583 11.959 77.583 37.918zM122.791 135.25H89.25v10.5h33.542v-10.5zm-69.999 10.5h22.75v-10.5H42v33.542h10.792V145.75zm0 32.666H42v33.542h10.792v-33.542zm117.25-43.166H136.5v10.5h33.542v-10.5zm-117.25 86.333H42v33.542h10.792v-33.542zm0 86.334H42v33.542h10.792v-33.542zm0-43.167H42v33.542h10.792V264.75zm0 86.333H42v33.542h10.792v-33.542z"></path>
    +  </symbol>
    +  <symbol id="shopware" viewBox="0 0 495.99 512">
    +    <title id="shopware-title">Shopware</title>
    +    <path d="M395.5 455.27c-42.95 31.79-93.95 48.59-147.48 48.59-137.21 0-248.02-111-248.02-248 0-137.19 111.04-248 248.02-248 61.3 0 120.14 22.55 165.68 63.5 2.62 2.36.58 6.64-2.86 6.18-17.67-2.43-36.75-3.66-56.71-3.66-129.36 0-222.4 53.47-222.4 155.35 0 109.04 92.13 145.88 176.83 178.73 33.64 13.04 65.4 25.36 86.96 41.59 1.9 1.44 1.89 4.31-.02 5.72zm99.46-222.32c-.08-.94-.55-1.83-1.27-2.44-51.76-42.96-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62.01 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93 1.88 1.05 4.26.19 5.05-1.82 18.89-48.39 17.94-90.23 15.93-113.31z"></path>
    +  </symbol>
    +  <symbol id="simplybuilt" viewBox="0 0 512 512">
    +    <title id="simplybuilt-title">SimplyBuilt</title>
    +    <path d="M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"></path>
    +  </symbol>
    +  <symbol id="sistrix" viewBox="0 0 448 512">
    +    <title id="sistrix-title">SISTRIX</title>
    +    <path d="M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"></path>
    +  </symbol>
    +  <symbol id="sith" viewBox="0 0 448 512">
    +    <title id="sith-title">Sith</title>
    +    <path d="M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z"></path>
    +  </symbol>
    +  <symbol id="skyatlas" viewBox="0 0 640 512">
    +    <title id="skyatlas-title">skyatlas</title>
    +    <path d="M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"></path>
    +  </symbol>
    +  <symbol id="skype" viewBox="0 0 448 512">
    +    <title id="skype-title">Skype</title>
    +    <path d="M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"></path>
    +  </symbol>
    +  <symbol id="slack" viewBox="0 0 448 512">
    +    <title id="slack-title">Slack Logo</title>
    +    <path d="M244.2 217.5l19.3 57.7-59.8 20-19.3-57.7 59.8-20zm41.4 243.7C131.6 507.4 65 471.6 18.8 317.6S8.4 97 162.4 50.8C316.4 4.6 383 40.4 429.2 194.4c46.2 154 10.4 220.6-143.6 266.8zM366.2 265c-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-19.3-57.7 29-9.7c12.2-3.9 18.6-17.2 14.7-29.4-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-59.8 20.1-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l19.3 57.7-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 59.8-20.1 10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 29-9.7c12.2-4.2 18.6-17.5 14.7-29.6z"></path>
    +  </symbol>
    +  <symbol id="slack-hash" viewBox="0 0 448 512">
    +    <title id="slack-hash-title">Slack Hashtag</title>
    +    <path d="M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z"></path>
    +  </symbol>
    +  <symbol id="slideshare" viewBox="0 0 512 512">
    +    <title id="slideshare-title">Slideshare</title>
    +    <path d="M249.429 211.436c0 31.716-27.715 57.717-61.717 57.717-34.001 0-61.716-26.001-61.716-57.717 0-32.001 27.715-57.716 61.716-57.716 34.001 0 61.717 25.715 61.717 57.716zm254.294 50.002c-18.286 22.573-53.144 50.288-106.289 72.003C453.722 525.163 260 555.735 263.143 457.446c0 1.714-.286-52.859-.286-93.432-4.285-.858-8.571-2-13.714-3.143 0 40.858-.286 98.289-.286 96.575C252 555.735 58.278 525.163 114.566 333.441c-53.145-21.715-88.003-49.43-106.29-72.003-9.143-13.714.858-28.287 16.001-17.715 2 1.428 4.285 2.857 6.285 4.285V49.716C30.563 22.287 51.135 0 76.565 0h359.157c25.429 0 46.002 22.287 46.002 49.716v198.293l6-4.285c15.143-10.573 25.143 4 15.999 17.714zm-46.572-189.15c0-32.858-10.572-45.716-40.859-45.716H98.566c-31.716 0-40.573 10.858-40.573 45.716v192.293c67.717 35.43 125.72 29.144 157.435 28.001 13.429-.286 22.001 2.286 27.144 7.715 1.689 1.687 10.023 9.446 20.287 17.143 1.143-15.715 10.001-25.715 33.716-24.858 32.287 1.428 91.718 7.715 160.577-29.716V72.288zM331.146 153.72c-34.002 0-61.716 25.715-61.716 57.716 0 31.716 27.715 57.717 61.716 57.717 34.287 0 61.716-26.001 61.716-57.717 0-32.001-27.429-57.716-61.716-57.716z"></path>
    +  </symbol>
    +  <symbol id="snapchat" viewBox="0 0 496 512">
    +    <title id="snapchat-title">Snapchat</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"></path>
    +  </symbol>
    +  <symbol id="snapchat-ghost" viewBox="0 0 512 512">
    +    <title id="snapchat-ghost-title">Snapchat Ghost</title>
    +    <path d="M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z"></path>
    +  </symbol>
    +  <symbol id="snapchat-square" viewBox="0 0 448 512">
    +    <title id="snapchat-square-title">Snapchat Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"></path>
    +  </symbol>
    +  <symbol id="soundcloud" viewBox="0 0 640 512">
    +    <title id="soundcloud-title">SoundCloud</title>
    +    <path d="M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z"></path>
    +  </symbol>
    +  <symbol id="speakap" viewBox="0 0 430.87 512">
    +    <title id="speakap-title">Speakap</title>
    +    <path d="M55.01 391.78C-24.4 303.59-16.95 167.42 71.65 87.64s224.8-72.96 304.21 15.24 71.96 224.36-16.64 304.14c-18.74 16.87 64.03 43.09 42.02 52.26-82.06 34.21-253.91 35.04-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32.02-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 79.96-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 85.98 52.26-.37 21.28-26.42 25.81-38.59 25.6-2.98-.05-30.23-.46-47.61-24.62l-39.95 42.61c28.16 27.01 58.99 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-84.96-19.45-84.43-49.75.41-23.25 30.96-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z"></path>
    +  </symbol>
    +  <symbol id="spotify" viewBox="0 0 496 512">
    +    <title id="spotify-title">Spotify</title>
    +    <path d="M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"></path>
    +  </symbol>
    +  <symbol id="squarespace" viewBox="0 0 512 512">
    +    <title id="squarespace-title">Squarespace</title>
    +    <path d="M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z"></path>
    +  </symbol>
    +  <symbol id="stack-exchange" viewBox="0 0 448 512">
    +    <title id="stack-exchange-title">Stack Exchange</title>
    +    <path d="M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"></path>
    +  </symbol>
    +  <symbol id="stack-overflow" viewBox="0 0 384 512">
    +    <title id="stack-overflow-title">Stack Overflow</title>
    +    <path d="M293.7 300l-181.2-84.5 16.7-36.5 181.3 84.7-16.8 36.3zm48-76L188.2 95.7l-25.5 30.8 153.5 128.3 25.5-30.8zm39.6-31.7L262 32l-32 24 119.3 160.3 32-24zM290.7 311L95 269.7 86.8 309l195.7 41 8.2-39zm31.6 129H42.7V320h-40v160h359.5V320h-40v120zm-39.8-80h-200v39.7h200V360z"></path>
    +  </symbol>
    +  <symbol id="staylinked" viewBox="0 0 440 512">
    +    <title id="staylinked-title">StayLinked</title>
    +    <path d="M201.6 127.4c4.1-3.2 10.3-3 13.8.5l170 167.3-2.7-2.7 44.3 41.3c3.7 3.5 3.3 9-.7 12.2l-198 163.9c-9.9 7.6-17.3.8-17.3.8L2.3 314.6c-3.5-3.5-3-9 1.2-12.2l45.8-34.9c4.2-3.2 10.4-3 13.9.5l151.9 147.5c3.7 3.5 10 3.7 14.2.4l93.2-74c4.1-3.2 4.5-8.7.9-12.2l-84-81.3c-3.6-3.5-9.9-3.7-14-.5l-.1.1c-4.1 3.2-10.4 3-14-.5l-68.1-64.3c-3.5-3.5-3.1-9 1.1-12.2l57.3-43.6m14.8 257.3c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7"></path>
    +  </symbol>
    +  <symbol id="steam" viewBox="0 0 496 512">
    +    <title id="steam-title">Steam</title>
    +    <path d="M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z"></path>
    +  </symbol>
    +  <symbol id="steam-square" viewBox="0 0 448 512">
    +    <title id="steam-square-title">Steam Square</title>
    +    <path d="M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"></path>
    +  </symbol>
    +  <symbol id="steam-symbol" viewBox="0 0 448 512">
    +    <title id="steam-symbol-title">Steam Symbol</title>
    +    <path d="M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z"></path>
    +  </symbol>
    +  <symbol id="sticker-mule" viewBox="0 0 576 512">
    +    <title id="sticker-mule-title">Sticker Mule</title>
    +    <path d="M353.1 509.8c-5.9 2.9-32.1 3.2-36.5-.5-4.1-3-2.2-11.9-1.5-15 2.2-15-2.5-7.9-9.8-11.5-3.1-1.5-4.1-5.5-4.6-10-.5-1.5-1-2.5-1.5-3.5-1.7-10.7 6.8-33.6 8.2-43.4 4.9-23.7-.7-37.2 1.5-46.9 3.7-16.2 4.1-3.5 4.1-29.9-1.4-25.9 3.3-36.9.5-38.9-14.8 0-64.3 10.7-112.2 2-46.1-8.9-59.4-29-65.4-30.9-10.3-4.5-23.2.5-27.3 7-.1.1-35 70.6-39.6 87.8-6.2 20.5-.5 47.4 4.1 66.8 0 .1 4.5 14.6 10.3 19.5 2.1 1.5 5.1 2.5 7.2 4.5 2.8 2.7 9.4 15.2 9.8 16 2.6 4.5 3.6 8-1.5 10.5-3.6 2-9.3 2.5-14.4 2.5-2.6.5-1.5 3.5-3.1 5-2.9 2.8-20.7 6.1-29.9 2.5-2.6-1-5.7-3-6.2-5-1.5-4 2.1-9-1-12.5-4.5-2.9-13.1-2-17-12-2.2-5.4-2.6-7.6-2.6-49.4 0-9.7-5.9-38.7-8.2-46.9-1.5-5.5-1.5-11.5 0-16 .3-.9 4.1-4.6 4.1-13-1-1.5-4.6-.5-5.1-1.5-10.4-80.6-5.9-79-7.7-98.3-1.5-16-10.9-43.9-6.7-64.3.5-2.4 3.4-21 24.2-38.9 31-26.7 48.4-38.3 159-11.5 1.1.4 66.3 21.1 110.7-9 15.5-11.3 28.8-11.3 35.5-16 .1-.1 61.7-52.1 87-65.3 47.2-29.4 69.9-16.7 75.1-18 4.7-1 13.4-25.8 17-25.8 5.5 0 1.6 20.2 3.6 25.9.5 2 3.6 5 6.2 5 2.3 0 1.7-.8 10.3-5 8.4-5.4 14.9-17.6 20.6-17 11.7 1.6-19 41.6-19 46.9 0 2 .2.8 4.6 9.5 2.6 5.5 4.6 13.5 6.2 20 8.3 29.7 5.7 14.6 13.4 36.9 20.2 50.1 20.6 45.2 20.6 52.9 0 7.5-4.1 11-7.2 16.5-1.5 3-4.6 7.5-7.2 8-2.7.7 7-1.5-13.4 2.5-7.2 1-13.4-4.5-14.9-9.5-1.6-4.7 2.8-10.1-11.8-22.9-10.3-10-21.1-11.3-31.9-17-9.8-5.7-11.9 1-18 8-18 22.9-34 46.9-52 69.8-11.8 15-24.2 30.4-33.5 47.4-3.9 6.8-9.5 28.1-10.3 29.9-6.2 17.7-5.5 25.8-16.5 68.3-3.1 10-5.7 21.4-8.7 32.4-2.2 6.8-7.4 49.3-.5 59.4 2.1 3.5 8.7 4.5 11.3 8 .1.1 9.6 18.2 9.3 20 0 6.1-9.4 5.6-11.3 6.5-4.8 2.9-3.8 5.9-6.4 7.4"></path>
    +  </symbol>
    +  <symbol id="strava" viewBox="0 0 369.2 512">
    +    <title id="strava-title">Strava</title>
    +    <path d="M301.6 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220h-67.6zM151.4 0L0 292h89.2l62.2-116.1L213.1 292h88.5L151.4 0z"></path>
    +  </symbol>
    +  <symbol id="stripe" viewBox="0 0 640 512">
    +    <title id="stripe-title">Stripe</title>
    +    <path d="M640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9m-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4h-45.9zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7m-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8M346.4 124v36.2l-44.6 9.5v-36.2l44.6-9.5m-44.5 59.2h44.6v153.2h-44.6V183.2zm-47.8 13.1c10.4-19.1 31.1-15.2 37.1-13.1V224c-5.7-1.8-23.4-4.5-33.9 9.3v103.1H213V183.2h38.4l2.7 13.1m-89-13.1h33.7V221h-33.7v63.2c0 26.2 28 18 33.7 15.7v33.8c-5.9 3.2-16.6 5.9-31.2 5.9-26.3 0-46.1-17-46.1-43.3l.2-142.4 43.3-9.2.1 38.5zM44.9 228.3c0 20 67.9 10.5 67.9 63.4 0 32-25.4 47.8-62.3 47.8-15.3 0-32-3-48.5-10.1v-40c14.9 8.1 33.9 14.2 48.6 14.2 9.9 0 17-2.7 17-10.9 0-21.2-67.5-13.2-67.5-62.4 0-31.4 24-50.2 60-50.2 14.7 0 29.4 2.3 44.1 8.1V230c-13.5-7.3-30.7-11.4-44.2-11.4-9.3.1-15.1 2.8-15.1 9.7"></path>
    +  </symbol>
    +  <symbol id="stripe-s" viewBox="0 0 362.3 512">
    +    <title id="stripe-s-title">Stripe S</title>
    +    <path d="M144.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C287.3 7.2 240.1 0 192.8 0 77.1 0 0 60.4 0 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5c53 22.8 106.8 32.4 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9"></path>
    +  </symbol>
    +  <symbol id="studiovinari" viewBox="0 0 512 512">
    +    <title id="studiovinari-title">Studio Vinari</title>
    +    <path d="M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"></path>
    +  </symbol>
    +  <symbol id="stumbleupon" viewBox="0 0 512 512">
    +    <title id="stumbleupon-title">StumbleUpon Logo</title>
    +    <path d="M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z"></path>
    +  </symbol>
    +  <symbol id="stumbleupon-circle" viewBox="0 0 496 512">
    +    <title id="stumbleupon-circle-title">StumbleUpon Circle</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"></path>
    +  </symbol>
    +  <symbol id="superpowers" viewBox="0 0 448 512">
    +    <title id="superpowers-title">Superpowers</title>
    +    <path d="M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"></path>
    +  </symbol>
    +  <symbol id="supple" viewBox="0 0 640 512">
    +    <title id="supple-title">Supple</title>
    +    <path d="M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"></path>
    +  </symbol>
    +  <symbol id="teamspeak" viewBox="0 0 511.8 512">
    +    <title id="teamspeak-title">TeamSpeak</title>
    +    <path d="M.82 237.82c2.36-15.52 10.69-27.04 24.88-34.03 3.5-1.85 5.65-3.5 6.37-7.81 6.17-33.41 19.53-63.94 39.37-91.59 2.36-3.19 4.01-5.35 1.03-9.35-3.7-5.35-1.03-10.18 2.98-14.49 28.06-31.87 61.88-55.1 101.98-67.44 95.81-29.4 180.1-9.35 252.37 60.45 6.68 6.37 15.52 12.85 6.99 24.36-1.34 1.85 1.03 3.5 2.16 5.04 20.66 28.06 34.23 59.42 40.4 93.65.82 3.7 2.98 5.04 5.86 6.37 17.37 8.84 25.7 23.34 26.01 42.25 0 17.17 1.85 34.54-1.03 51.71-4.01 24.67-29.19 41.74-53.25 36.7-7.2-1.64-9.35-7.2-9.35-14.19 0-28.06.82-56.44 0-84.6-1.85-75.76-36.18-132.81-102.28-169.41C234.28 4.98 92.11 72.42 67.54 196.91c-6.06 30.42-1.74 48.27-3.7 125.82-.31 7.2-4.32 11.2-12.03 11.51C20.97 335.58 0 316.05 0 285.21v-20.87m221.74 106.81c11.82-4.32 20.05-11.82 22.51-24.36 2.36-12.34-12.03-30.02-32.38-48.73-20.87-19.22-48.22-39.06-63.43-46.57-21.69-12.03-41.74-1.85-46.26 22.72-5.04 26.21 0 51.4 14.49 73.91 10.18 15.52 25.39 22.72 43.38 24.05 11.62.62 52.54 2.16 61.69-1.02m129.83 5.55c36.5 2.81 59.33-28.55 58.39-60.45-2.14-45.17-66.17-16.48-87.79-8.02-73.16 28.14-45.05 54.92-22.2 60.75m149.26-1.33c-2.98-2.36-7.2-1.03-8.33 2.36-8.02 25.39-44.72 112.46-172.08 121.51-149.67 10.49 80.29 43.59 145.36-6.37 22.72-17.37 47.6-35.05 46.57-85.43-.32-10.07-4.84-26.72-11.52-32.07"></path>
    +  </symbol>
    +  <symbol id="telegram" viewBox="0 0 496 512">
    +    <title id="telegram-title">Telegram</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"></path>
    +  </symbol>
    +  <symbol id="telegram-plane" viewBox="0 0 448 512">
    +    <title id="telegram-plane-title">Telegram Plane</title>
    +    <path d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path>
    +  </symbol>
    +  <symbol id="tencent-weibo" viewBox="0 0 384 512">
    +    <title id="tencent-weibo-title">Tencent Weibo</title>
    +    <path d="M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z"></path>
    +  </symbol>
    +  <symbol id="the-red-yeti" viewBox="0 0 505.07 512">
    +    <title id="the-red-yeti-title">The Red Yeti</title>
    +    <path d="M484.41 241.74l20.66 7.13c-9.56-23.91-23.93-36.96-31.72-44.76l7.13-18.2c.25 0 12.28-27.79-2.46-30.74-.63-11.35-6.59-27.05-18.44-27.05-7.62-10.57-17.71-12.3-30.74-5.9-8.85 4.18-17.71 10.08-25.33 16.48-5.3-6.44-2.95.38-2.95-29.76-37.08-24.28-45.4-11.73-74.76 2.95l.49.49c-21.15-7.62-44.02-12.05-68.36-13.28-5.55-8.71-18.6-19.1-25.08-25.08l24.84 7.13c-5.49-5.49-26.78-12.91-34.18-15.25 18.2-4.11 29.78-20.77 42.54-32.95-34.92-10.08-67.87-5.9-97.88 11.8L179.97.48 178.24 0c-31.6 24.16-32.99 41.9-33.69 45.49-.91-2.39-6.32-19.61-15.25-27.05-3.44 8.85-3.44 17.21-.49 25.33 2.95 8.36 5.9 14.76 8.36 18.94-16.04-3.3-28.35-4.9-49.18 0H84.3l32.95 14.26c-20.66 19.43-35.9 41.81-46.72 67.38l-1.72 8.36 1.72 1.72 7.62-4.67c-3.33 11.64-5.27 19.39-6.64 25.82-11.31 12.79-20.41 26.07-27.79 40.33-14.97 1-31.82 10.78-40.33 14.26l2.95 3.44 28.77.98c-.49.98-.74 2.21-1.23 3.2-7.29 6.38-39.78 37.65-32.95 80.66l20.17-22.38c.49 1.72.74 3.44 1.23 5.16 0 25.53.37 89.64 64.92 150.5 43.78 40.1 96.16 60.27 157.64 60.27 121.73 0 223.05-87.29 223.05-211.49 6.8-9.72-1.24 3.03 16.72-25.08l13.03 14.26 2.46-.49c-1.72-11.31-4.67-22.38-8.85-34.18-2.22-6.4-4.68-10.33-6.89-13.28zm-15.49-41.32l-14.26-11.8 18.2-1.23-3.94 13.03zm-74.76-89.27l-.49 21.89c5.52 18.13 16.88 17.21 22.38 17.21l-3.44-4.67 22.38-5.41c-10.08.49-18.94.49-27.05 0 12.81-2.13 33.32-29.03 43.04-11.31 3.44 7.62 6.39 17.21 9.34 27.79l1.72-5.9c-1.23-4.18-1.72-9.34-1.72-15.25 5.41.49 8.85 3.44 9.34 10.08.49 6.39 1.72 14.76 3.44 25.33l4.67-11.31c4.59 0 4.47-3.61-2.46 20.66-20.89-8.7-35.09-8.36-46.48-8.36l18.2-15.98c-25.28 8.15-33.03 10.8-54.84 20.9-1.08-5.41-4.98-13.5-15.98-19.92-3.18 3.82-2.76.9-.74 14.76h-2.46c-1.23-8.36-4.18-15.98-8.36-23.12l4.18-3.44c8.36-7.13 11.8-14.26 10.57-21.89-.49-6.39-5.41-13.53-13.53-20.66 5.66-3.2 15.25-.25 28.29 8.6zm-39.59-10.08c2.69 1.92 11.4 5.38 18.94 17.21 4.2 8.4 3.98 9.81 3.44 11.07-.48 2.41-.46 4.33-2.95 7.13-1.72 2.46-5.41 4.67-11.8 7.62-7.62-13.03-16.48-23.61-27.79-31.23l20.16-11.8zM87.25 143.12l1.23-1.72c1.23-2.95 4.18-7.62 9.34-15.25l2.46-3.44-13.03 12.3 5.41-4.67-10.08 9.34-4.18 1.23c12.3-24.1 23.12-41.31 32.46-50.17 9.34-9.34 15.98-15.98 20.17-19.43l-6.39 1.23c-11.31-4.18-19.43-7.13-24.84-8.36 2.46-.49 3.69-.49 3.2-.49 10.33 0 17.46.49 20.9 1.23 5.41 1.72 10.57 2.46 15.98 2.46l.49-1.72-8.36-35.9 13.53 29.02c1.72-2.46 4.18-7.13 5.9-14.26 1.72-6.39 5.41-13.03 10.08-19.43 4.67-6.39 7.62-10.57 9.34-11.31-2.95 8.85-4.67 17.21-6.39 25.33l-1.72 7.13-.49 4.67 2.46 2.46c21.89-13.53 45.49-19.43 71.32-18.94l21.15.49c-11.8 13.53-27.79 21.89-48.45 24.84-8.61 1.48-16.23 2.46-23.36 2.95l-.25-.49-2.46-1.23c-5.16-.98-9.84-.25-14.02 1.97-2.46-.25-4.92-.49-7.13-.74l-2.46 1.72.49 1.23c1.97.25 3.93.49 6.15.74l-1.97 3.44 3.44-.49-10.57 11.31c-4.18 2.95-5.41 6.39-4.18 9.34l5.41-3.44h1.23c6.39-8.36 15.25-13.53 25.33-15.25v-2.95c6.39.49 13.03.98 19.43 1.23 6.39 0 8.36.49 5.41 1.23 7.62 4.18 14.26 8.85 20.66 13.53 13.53 10.08 23.61 21.89 30 35.41 8.85 18.2 13.53 37.13 13.53 56.56 0 10.08-1.23 19.43-2.95 28.28-2.35 10.79-7.8 29.62-15.98 45.99l2.46.49c18.23-19.67 41.9-15.98 49.18-15.98l-6.39 5.9 22.38 17.71-1.72 30.74c-5.41-12.3-16.48-21.15-32.95-27.79 16.48 14.76 23.61 21.15 21.89 20.17-4.81-2.81-3.53-1.87-10.82-3.69 4.12 4.12 17.45 18.79 18.2 20.66l.25.25-.25.25c0 1.76 1.56-1.18-14.02 22.87-75.15-15.31-106.26-42.74-141.16-63.2l11.8 1.23c-11.75-18.53-15.63-17.72-38.36-26.07l10.57-8.36c-8.85-2.95-18.2-2.95-28.28.49l7.62-10.57-1.23-1.72c-14.89 4.34-19.85 9.17-22.62 11.31-1.14-5.46-2.77-12.44-12.3-28.77l-1.23 27.05-13.53-5.41c1.47-25.11 5.4-50.44 13.27-74.54zm276.41 330.03c-49.92 24.96-56.13 22.41-59.02 23.85-29.76-11.8-50.9-31.72-63.45-58.77l30 16.48c-9.77-9.31-18.34-16.54-38.36-44.27l11.8 23.12-17.71-7.62c14.2 21.08 23.47 51.74 66.64 73.53-120.77 24.15-199.03-72.11-200.91-74.27 11.31 9.34 23.12 17.71 35.41 24.84 3.44 1.72 7.13 2.46 10.08 1.23l-15.98-20.66c9.23 4.19 9.49 4.5 69.1 29.02-42.54-20.66-73.78-40.82-93.2-60.25-.49 6.39-1.23 10.08-1.23 10.08 8.85 7.62 15.98 16.48 20.66 26.56-39.05-18.85-57.59-47.61-71.32-82.63 49.89 55.1 118.85 37.49 120.5 37.13 34.79 16.43 69.87 23.61 113.86 10.57 3.32 0 20.3 16.98 25.33 39.1l4.18-2.95-2.46-23.61c8.95 8.95 24.9 22.56 34.43 13.03-15.58-5.32-23.52-9.49-29.51-31.72 4.58 4.2 7.57 9.05 27.79 15l1.23-1.23-10.57-14.26c11.65-4.85-3.54 1.01 31.97-10.82 4.34 34.23 9.05 49.15.74 89.52zM479 258.71l-2.46.49 2.95 9.34c-3.55 5.87-23.73 44.26-71.56 79.68-39.54 29.76-76.58 39.13-80.91 40.33l-7.62-7.13-1.23 2.95 14.26 15.98-7.13-4.67 3.44 4.18h-1.23l-21.89-13.53 9.34 26.56-18.94-27.79-1.23 2.46 7.62 29.02c-6.11-8.24-21.03-32.61-56.81-39.59l32.46 21.15c-31.97 4.67-63.2 2.46-93.2-6.39-4.18-1.23-8.85-2.46-13.53-4.18l1.23-2.95-44.76-22.38 26.07 22.38c-57.66 9.08-112.96-25.41-126.4-83.37l-2.46-16.48-22.35 22.38c19.47-57.51 25.61-57.89 51.4-70.09-9.09-5.33-1.55-3.26-38.36-9.34 15.78-5.79 33.05-15.44 73.04 5.16 2.95-1.48 2.14-1.1 3.69-1.72.64-3.18.41-.82.98-11.8 3.89 10.01 3.63 8.67 2.95 9.34l1.72.49c12.69-6.49 8.92-4.52 16.97-8.85l-5.41 13.53 22.38-5.9-8.36 8.36 2.46 2.46c4.5-1.8 30.35 3.42 40.82 15.98l-23.61-2.46c39.39 22.98 51.46 53.97 55.82 69.59l1.72-1.23c-2.84-22.28-12.37-33.88-15.98-40.08 4.22 4.99 39.2 34.56 110.42 45.99-11.31-.49-23.12 5.41-34.92 18.94l46.72-20.17-9.34 21.89c7.62-10.08 14.76-23.61 21.15-39.59v-.49l1.23-2.95-1.23 15.98c13.53-41.81 25.33-78.45 35.41-109.68l13.53-27.79v-1.97l-5.41-4.18h10.08l5.9 4.18 2.46-1.23-3.44-15.98 12.3 18.94 41.81-20.17-14.76 13.03.49 2.95 17.71-.49c11.31.49 21.89 1.72 32.95 4.18l-23.61 2.46-1.23 2.95 26.56 23.12c10.08 10.08 18.94 20.66 27.05 31.97-11.24-3.29-10.28-3.44-21.15-3.44l12.3 32.46-8.87-12.79zm-277.89-89.03c-34.85 14.42-34.73 13.98-36.15 14.26-20.83 4.73-18.97-24.44-18.94-24.84l5.9-1.23-.49-2.46c-20.17-2.65-31.03 4.17-32.46 4.92.49.49 2.95 3.44 5.9 9.34 4.18-6.39 8.85-10.08 15.25-10.57-1.72 11.31-1.23 22.38 1.72 33.69.07.51 2.57 17.44 27.54 24.1 11.31 2.95 27.05 1.23 48.94-5.41l-9.34.49c-4.18-14.76-6.39-24.84-5.9-29.51 11.31-8.85 21.89-11.31 30.74-7.62h2.46l-11.8-7.62-7.13.49c-5.9 1.23-12.3 4.18-19.43 8.36l3.19-6.39zm11.07-86.81l-2.46.49.49 2.95c8.36-.49 17.21 1.23 26.07 5.9-2.5-5.54-9.97-14.26-28.28-14.26l.49 2.46 3.69 2.46zm-67.14 56.07c-4.04-6.35-3.09-5.05-4.67-6.64 21.69 16.76 16.48 21.41 46.48 23.61l-2.95-4.67c8.85-7.62 13.53-17.21 14.76-28.28 1.72-15.98-1.23-29.51-8.85-41.31l13.03-7.62c0-.49 0-1.23-.49-1.72-4.67-1.72-9.34-1.23-13.53 1.72-12.68 6.67-27.99 20.94-29.02 22.38-1.72 1.72-3.44 5.9-5.41 13.53-1.72 7.13-2.95 14.76-2.95 23.61-4.68-7.96-10.52-6.4-19.92-5.9l7.13 7.62c-16.47 0-23.32 15.43-23.61 15.98 6.81-.01 4.6-7.6 30-12.31zm14.02-25.33c1.23-7.62 3.44-13.03 6.39-17.21 5.41-6.39 10.57-10.08 15.98-11.8 4.18-1.72 7.13 1.23 10.08 9.34 2.46 7.62 3.44 16.48 2.95 25.33-.49 9.34-3.44 17.21-8.36 23.12-2.95 3.44-5.41 5.9-6.39 7.62-4.67.49-8.36 0-11.31-.49l-7.13-3.44-5.41-6.39c.99-10.09 1.48-18.94 3.2-26.08zm62.71-21.39c-6.39-3.44-10.57 2.95-12.3 18.94s2.46 29.51 11.8 39.59c9.34 10.08 18.2 10.57 26.07 2.95 7.87-7.62 3.44-23.61-11.31-47.71-3.19-5.41-7.87-10.08-14.26-13.77zm-4.67 46.23c5.36 2.23 10.51 1.91 12.3-10.57v-4.67l-1.23.49c-4.28-3.05-2.55-4.49-1.72-6.15l.49-.49c-.88-1.23-5.02-8.11-12.54 4.67-.49-13.53.49-21.89 2.95-24.84 1.23-2.46 4.67-1.23 11.31 4.18 6.39 5.41 11.31 15.98 15.25 32.46 6.59 28.06-19.7 26.26-26.81 4.92zm-45.01-5.41c1.57.31 9.34-1.09 9.34-14.76h-.49c-5.44-1.09-2.24-5.47-.74-5.9-1.72-2.95-3.44-4.18-5.41-4.67-8.15 0-11.65 12.66-8.12 21.15 1.24 2.46 3.21 3.69 5.42 4.18zm45.99 61.48c1.72 10.57 4.67 17.71 8.85 21.89-9.26 6.61-27.54 13.85-46.48 15.98l.49 1.23c8.36 1.23 16.48.49 24.84-2.46l-7.13 13.03c4.18-1.72 10.08-7.13 17.71-14.76 11.93-5.51 12.72-5.07 20.17-15.98-12.73-6.58-15.76-13.83-18.45-18.93z"></path>
    +  </symbol>
    +  <symbol id="themeco" viewBox="0 0 441.03 512">
    +    <title id="themeco-title">Themeco</title>
    +    <path d="M199.74 12.29c9.74-5.64 25.59-5.73 35.39-.21l188.13 105.95c9.81 5.52 17.76 19.14 17.76 30.38v213.87c0 11.26-7.93 24.89-17.71 30.46L235.09 499.88c-9.78 5.57-25.58 5.48-35.29-.21L17.58 392.95C7.87 387.26 0 373.52 0 362.27V148.41c0-11.26 7.9-24.96 17.63-30.59L199.74 12.29zM123.54 209c-15.69 0-31.39.14-47.08.14v99.87h18.83v-29.39h28.25c48.94 0 48.79-70.62 0-70.62zm137.96 98.73l-30.25-34.1c36.4-7.39 34.26-64.21-10.7-64.49-15.84 0-31.67-.14-47.51-.14v100.01h18.83v-33.38H210l29.1 33.38h22.4v-1.28zm-40.94-81.04c22.98 0 22.9 31.96 0 31.96h-28.68v-31.96h28.68zm-94.07-1.57c20.85 0 20.78 38.24 0 38.24H94.68v-38.23l31.81-.01zm189.65-17.97c-67.4 0-69.86 104.15 0 104.15 68.39-.01 68.33-104.15 0-104.15zm0 17.12c43.43 0 44.1 69.76 0 69.76-44.12 0-43.74-69.76 0-69.76z"></path>
    +  </symbol>
    +  <symbol id="themeisle" viewBox="0 0 512 512">
    +    <title id="themeisle-title">ThemeIsle</title>
    +    <path d="M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z"></path>
    +  </symbol>
    +  <symbol id="trade-federation" viewBox="0 0 496 512">
    +    <title id="trade-federation-title">Trade Federation</title>
    +    <path d="M202.45 108.42v81.61H38.94l48.22 61.91h114.73v196.75h64.61V252.96h83.27v-62.69h-83.18V171.1h145.62v-62.68H202.45zm4.86 6h197.77v50.68H259.44v30.93h83.18v50.93h-83.26v195.73h-52.73V245.94H89.86l-39.95-49.91h157.4v-81.61zM247.99 8.8C111.03 8.8 0 119.83 0 256.8s111.03 248 247.99 248S496 393.76 496 256.8 384.96 8.8 247.99 8.8zm.02 13.24c129.66 0 234.76 105.12 234.76 234.78s-105.1 234.76-234.76 234.76S13.23 386.47 13.23 256.81 118.35 22.04 248.01 22.04zm0 7.89c-125.3 0-226.89 101.57-226.89 226.87s101.59 226.89 226.89 226.89S474.88 382.1 474.88 256.8 373.31 29.93 248.01 29.93zm-.02 13.3c117.95 0 213.56 95.62 213.56 213.56s-95.62 213.56-213.56 213.56S34.43 374.75 34.43 256.8 130.04 43.23 247.99 43.23zm-73.32 104.8l15.66 18.05-22.16-9.45-12.33 20.47 2.15-23.99-23.28-5.4 23.48-5.37-2.06-23.81 12.37 20.67 22.01-9.32-15.84 18.15zm-47.14-46.54l8.01 12.4 12.69-5.86-9.32 11.45 9.5 10.25-13.77-5.32-6.82 12.2.81-14.74-13.71-2.71 14.27-3.78-1.66-13.89zm250.77 75.59l11.99 19.56 20.88-9.11-14.9 17.45 15.11 17.04-21.2-8.78-11.54 19.64 1.8-22.87-22.24-4.9 22.31-5.36-2.21-22.67zm-107.05 98.45l13.86-3.22-1.28-14.17 7.35 12.18 13.08-5.59-9.31 10.75 9.36 10.71-13.1-5.54-7.29 12.21 1.22-14.17-13.89-3.16zm-125.43 6.5l23.73-3.87-1.73-24.53 11.01 21.38 22.79-9.22-16.93 17.08 15.81 18.83-21.47-10.82-13.02 20.86 3.66-23.77-23.85-5.94zm63.44-165.66v81.61H54.16l36.72 46.01h117.7v196.75h48.82V245.01h83.27v-47.03H257.4v-34.83h145.73v-46.78H209.26zm10.86 11.2h171.8v24.36H246.88v56.23h82.93v23.94h-82.93v197.42h-26.76V232.1H96.31l-20.09-23.94h143.9v-80.59z"></path>
    +  </symbol>
    +  <symbol id="trello" viewBox="0 0 448 512">
    +    <title id="trello-title">Trello</title>
    +    <path d="M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zM194.9 371.4c0 14.8-12 26.9-26.9 26.9H85.1c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9H168c14.8 0 26.9 12 26.9 26.9v254.3zm194.9-112c0 14.8-12 26.9-26.9 26.9H280c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v142.3z"></path>
    +  </symbol>
    +  <symbol id="tripadvisor" viewBox="0 0 576 512">
    +    <title id="tripadvisor-title">TripAdvisor</title>
    +    <path d="M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z"></path>
    +  </symbol>
    +  <symbol id="tumblr" viewBox="0 0 320 512">
    +    <title id="tumblr-title">Tumblr</title>
    +    <path d="M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"></path>
    +  </symbol>
    +  <symbol id="tumblr-square" viewBox="0 0 448 512">
    +    <title id="tumblr-square-title">Tumblr Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z"></path>
    +  </symbol>
    +  <symbol id="twitch" viewBox="0 0 448 512">
    +    <title id="twitch-title">Twitch</title>
    +    <path d="M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z"></path>
    +  </symbol>
    +  <symbol id="twitter" viewBox="0 0 512 512">
    +    <title id="twitter-title">Twitter</title>
    +    <path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path>
    +  </symbol>
    +  <symbol id="twitter-square" viewBox="0 0 448 512">
    +    <title id="twitter-square-title">Twitter Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"></path>
    +  </symbol>
    +  <symbol id="typo3" viewBox="0 0 433.3 512">
    +    <title id="typo3-title">Typo3</title>
    +    <path d="M330.8 341c-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9 0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C0 246 106.8 480 184.1 480c36.3 0 97.3-59.5 146.7-139M294.5 32c71.8 0 138.8 11.6 138.8 52.5 0 82.6-52.5 182.3-78.8 182.3-47.9 0-101.7-132.1-101.7-198.5 0-30.9 11.6-36.3 41.7-36.3"></path>
    +  </symbol>
    +  <symbol id="uber" viewBox="0 0 448 512">
    +    <title id="uber-title">Uber</title>
    +    <path d="M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"></path>
    +  </symbol>
    +  <symbol id="uikit" viewBox="0 0 448 512">
    +    <title id="uikit-title">UIkit</title>
    +    <path d="M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"></path>
    +  </symbol>
    +  <symbol id="uniregistry" viewBox="0 0 384 512">
    +    <title id="uniregistry-title">Uniregistry</title>
    +    <path d="M281.1 220.1H384v-14.8H281.1v14.8zm0-37.1H384v-12.4H281.1V183zm0 74.2H384v-17.3H281.1v17.3zm-157.7 86.7H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8m145.7-12.4h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3m-41.5 37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8M384 32H281.1v2.5H384V32zM192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480m89.1-334.2H384V136H281.1v9.8zm0-37.1H384v-7.4H281.1v7.4zm0-37.1H384v-4.9H281.1v4.9zm-178.2 99H0V183h102.9v-12.4zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2m64.1-118.8v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4m178.2 0c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1v12.4zm-203 156h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7m24.8-376.2H0v4.9h102.9v-4.9zm0-34.7H0v2.5h102.9V32zm0 173.3H0v14.8h102.9v-14.8zm0 34.6H0v17.3h102.9v-17.3zm0-103.9H0v9.9h102.9V136zm0-34.7H0v7.4h102.9v-7.4zm2.8 207.9H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3"></path>
    +  </symbol>
    +  <symbol id="untappd" viewBox="0 0 640 512">
    +    <title id="untappd-title">Untappd</title>
    +    <path d="M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"></path>
    +  </symbol>
    +  <symbol id="usb" viewBox="0 0 640 512">
    +    <title id="usb-title">USB</title>
    +    <path d="M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"></path>
    +  </symbol>
    +  <symbol id="ussunnah" viewBox="0 0 512 512">
    +    <title id="ussunnah-title">us-Sunnah Foundation</title>
    +    <path d="M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z"></path>
    +  </symbol>
    +  <symbol id="vaadin" viewBox="0 0 448 512">
    +    <title id="vaadin-title">Vaadin</title>
    +    <path d="M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"></path>
    +  </symbol>
    +  <symbol id="viacoin" viewBox="0 0 384 512">
    +    <title id="viacoin-title">Viacoin</title>
    +    <path d="M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z"></path>
    +  </symbol>
    +  <symbol id="viadeo" viewBox="0 0 448 512">
    +    <title id="viadeo-title">Video</title>
    +    <path d="M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"></path>
    +  </symbol>
    +  <symbol id="viadeo-square" viewBox="0 0 448 512">
    +    <title id="viadeo-square-title">Video Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z"></path>
    +  </symbol>
    +  <symbol id="viber" viewBox="0 0 512 512">
    +    <title id="viber-title">Viber</title>
    +    <path d="M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"></path>
    +  </symbol>
    +  <symbol id="vimeo" viewBox="0 0 448 512">
    +    <title id="vimeo-title">Vimeo</title>
    +    <path d="M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"></path>
    +  </symbol>
    +  <symbol id="vimeo-square" viewBox="0 0 448 512">
    +    <title id="vimeo-square-title">Vimeo Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z"></path>
    +  </symbol>
    +  <symbol id="vimeo-v" viewBox="0 0 448 512">
    +    <title id="vimeo-v-title">Vimeo</title>
    +    <path d="M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"></path>
    +  </symbol>
    +  <symbol id="vine" viewBox="0 0 384 512">
    +    <title id="vine-title">Vine</title>
    +    <path d="M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"></path>
    +  </symbol>
    +  <symbol id="vk" viewBox="0 0 576 512">
    +    <title id="vk-title">VK</title>
    +    <path d="M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z"></path>
    +  </symbol>
    +  <symbol id="vnv" viewBox="0 0 640 512">
    +    <title id="vnv-title">VNV</title>
    +    <path d="M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z"></path>
    +  </symbol>
    +  <symbol id="vuejs" viewBox="0 0 448 512">
    +    <title id="vuejs-title">Vue.js</title>
    +    <path d="M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z"></path>
    +  </symbol>
    +  <symbol id="weebly" viewBox="0 0 512 512">
    +    <title id="weebly-title">Weebly</title>
    +    <path d="M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z"></path>
    +  </symbol>
    +  <symbol id="weibo" viewBox="0 0 512 512">
    +    <title id="weibo-title">Weibo</title>
    +    <path d="M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"></path>
    +  </symbol>
    +  <symbol id="weixin" viewBox="0 0 576 512">
    +    <title id="weixin-title">Weixin (WeChat)</title>
    +    <path d="M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z"></path>
    +  </symbol>
    +  <symbol id="whatsapp" viewBox="0 0 448 512">
    +    <title id="whatsapp-title">What&#x27;s App</title>
    +    <path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"></path>
    +  </symbol>
    +  <symbol id="whatsapp-square" viewBox="0 0 448 512">
    +    <title id="whatsapp-square-title">What&#x27;s App Square</title>
    +    <path d="M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"></path>
    +  </symbol>
    +  <symbol id="whmcs" viewBox="0 0 448 512">
    +    <title id="whmcs-title">WHMCS</title>
    +    <path d="M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"></path>
    +  </symbol>
    +  <symbol id="wikipedia-w" viewBox="0 0 640 512">
    +    <title id="wikipedia-w-title">Wikipedia W</title>
    +    <path d="M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z"></path>
    +  </symbol>
    +  <symbol id="windows" viewBox="0 0 448 512">
    +    <title id="windows-title">Windows</title>
    +    <path d="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"></path>
    +  </symbol>
    +  <symbol id="wix" viewBox="0 0 640 512">
    +    <title id="wix-title">Wix</title>
    +    <path d="M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z"></path>
    +  </symbol>
    +  <symbol id="wizards-of-the-coast" viewBox="0 0 640 512">
    +    <title id="wizards-of-the-coast-title">Wizards of the Coast</title>
    +    <path d="M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z"></path>
    +  </symbol>
    +  <symbol id="wolf-pack-battalion" viewBox="0 0 456.58 512">
    +    <title id="wolf-pack-battalion-title">Wolf Pack Battalion</title>
    +    <path d="M239.73 471.53l10.56 15.84 5.28-12.32 5.28 7.04V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05 27.87 3.34 53.94 10.58 63.34 54.1l-30.35 8.36c11.15 23.04 17.01 46.76 13.2 72.14L384 313.18l-6.16 33.43-18.47-7.04-8.8 33.43-19.35-7.04 26.39 21.11 8.8-28.15 24.63 5.28 7.04-35.63 26.39 14.52c.25-20.02 6.97-58.06-8.8-84.45l26.39 5.28c3.99-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 1.96-19.87 17.45-42.62 43.11-49.7-43.99 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.47 22.87-89.73 65.1-93.25 147.79l-58.06 38.71-3.52 93.25 107.33-59.82 7.04 7.04-17.59 3.52-43.99 38.71-15.84-5.28-28.15 49.26-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-43.99-38.71-17.59-3.52 7.04-7.04 107.33 59.82-3.52-93.25-58.06-38.71C157.03 65.1 107.77 22.87 67.3 0c-17.54 61.12-4.4 118.76 0 130.2 14.96-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9C29.94 160.06.44 191.78 0 216.85l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7.04 35.63 24.63-5.28 8.8 28.15 26.39-21.11-19.34 7.05-8.8-33.43-18.47 7.04-6.16-33.43-27.27 7.04c-3.82-25.38 2.05-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.91l5.28-7.04 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95.01l-15.84-10.56c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.26-.27 13.88-3.51 22.88zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7.04 8.24-7.9 15.55-16.27 22.87-24.63zm24.63 5.28c-.02-13.43-2.05-24.21-5.28-33.43-5.38 9.09-11.23 18.18-18.47 27.27l23.75 6.16zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-11.99 6.65-28.14 7.04-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 43.99-14.08-10.6-18.95-27.22-25.52-45.75-28.15zM137.68 376.52l15.84-10.56c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7.04-8.24-7.9-15.55-16.27-22.87-24.63zm-24.64 5.28c.02-13.43 2.05-24.21 5.28-33.43 5.38 9.09 11.23 18.18 18.47 27.27l-23.75 6.16zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 36.95-10.56-5.05-11.99-6.65-28.14-7.04-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-43.99-14.08 10.61-18.95 27.22-25.52 45.75-28.15z"></path>
    +  </symbol>
    +  <symbol id="wordpress" viewBox="0 0 512 512">
    +    <title id="wordpress-title">WordPress Logo</title>
    +    <path d="M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"></path>
    +  </symbol>
    +  <symbol id="wordpress-simple" viewBox="0 0 512 512">
    +    <title id="wordpress-simple-title">Wordpress Simple</title>
    +    <path d="M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"></path>
    +  </symbol>
    +  <symbol id="wpbeginner" viewBox="0 0 512 512">
    +    <title id="wpbeginner-title">WPBeginner</title>
    +    <path d="M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z"></path>
    +  </symbol>
    +  <symbol id="wpexplorer" viewBox="0 0 512 512">
    +    <title id="wpexplorer-title">WPExplorer</title>
    +    <path d="M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"></path>
    +  </symbol>
    +  <symbol id="wpforms" viewBox="0 0 448 512">
    +    <title id="wpforms-title">WPForms</title>
    +    <path d="M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z"></path>
    +  </symbol>
    +  <symbol id="xbox" viewBox="0 0 512 512">
    +    <title id="xbox-title">Xbox</title>
    +    <path d="M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"></path>
    +  </symbol>
    +  <symbol id="xing" viewBox="0 0 384 512">
    +    <title id="xing-title">Xing</title>
    +    <path d="M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"></path>
    +  </symbol>
    +  <symbol id="xing-square" viewBox="0 0 448 512">
    +    <title id="xing-square-title">Xing Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z"></path>
    +  </symbol>
    +  <symbol id="y-combinator" viewBox="0 0 448 512">
    +    <title id="y-combinator-title">Y Combinator</title>
    +    <path d="M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z"></path>
    +  </symbol>
    +  <symbol id="yahoo" viewBox="0 0 448 512">
    +    <title id="yahoo-title">Yahoo Logo</title>
    +    <path d="M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z"></path>
    +  </symbol>
    +  <symbol id="yandex" viewBox="0 0 256 512">
    +    <title id="yandex-title">Yandex</title>
    +    <path d="M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z"></path>
    +  </symbol>
    +  <symbol id="yandex-international" viewBox="0 0 320 512">
    +    <title id="yandex-international-title">Yandex International</title>
    +    <path d="M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z"></path>
    +  </symbol>
    +  <symbol id="yelp" viewBox="0 0 384 512">
    +    <title id="yelp-title">Yelp</title>
    +    <path d="M136.9 328c-1 .3-109.2 35.7-115.8 35.7-15.2-.9-18.5-16.2-19.9-31.2-1.5-14.2-1.4-29.8.3-46.8 1.9-18.8 5.5-45.1 24.2-44 4.8 0 67.1 25.9 112.7 44.4 17.1 6.8 18.6 35.8-1.5 41.9zm57.9-113.9c1.8 38.2-25.5 48.5-47.2 14.3L41.3 60.4c-1.5-6.6.3-12.4 5.3-17.4C62.2 26.5 146 3.2 168.1 8.9c7.5 1.9 12.1 6.1 13.8 12.6 1.3 8.3 11.5 167.4 12.9 192.6zm-1.4 164.8c0 4.6.2 116.4-1.7 121.5-2.3 6-7 9.7-14.3 11.2-10.1 1.7-27.1-1.9-51-10.7-22-8.1-56.7-21.5-49.3-42.5 2.8-6.9 51.4-62.8 77.3-93.6 12-15.2 39.8-5.5 39 14.1zm180.2-117.8c-5.6 3.7-110.8 28.2-118.1 30.6l.3-.6c-18.1 4.7-35.4-18.5-23.3-34.6 3.7-3.7 65.9-92.4 72.8-97 5.2-3.6 11.3-3.8 18.3-.6 18.4 8.8 55.1 63.1 57.4 84.6-.1 2.9 1.2 11.7-7.4 17.6zm10.1 130.7c-2.7 20.6-44.5 73.4-63.8 81-6.9 2.6-12.9 2-17.7-2-5-3.5-61.8-97.1-64.9-102.3-10.9-16.2 6.8-39.8 25.6-33.2 0 0 110.5 35.7 114.7 39.4 5.2 4.1 7.2 9.8 6.1 17.1z"></path>
    +  </symbol>
    +  <symbol id="yoast" viewBox="0 0 448 512">
    +    <title id="yoast-title">Yoast</title>
    +    <path d="M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z"></path>
    +  </symbol>
    +  <symbol id="youtube" viewBox="0 0 576 512">
    +    <title id="youtube-title">YouTube</title>
    +    <path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path>
    +  </symbol>
    +  <symbol id="youtube-square" viewBox="0 0 448 512">
    +    <title id="youtube-square-title">YouTube Square</title>
    +    <path d="M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z"></path>
    +  </symbol>
    +  <symbol id="zhihu" viewBox="0 0 640 512">
    +    <title id="zhihu-title">Zhihu</title>
    +    <path d="M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z"></path>
    +  </symbol>
    +</svg>
    diff --git a/htdocs/theme/common/fontawesome-5/sprites/regular.svg b/htdocs/theme/common/fontawesome-5/sprites/regular.svg
    new file mode 100644
    index 00000000000..ea1ab9faeb3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/sprites/regular.svg
    @@ -0,0 +1,615 @@
    +<?xml version="1.0" encoding="UTF-8"?>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    +<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
    +  <symbol id="address-book" viewBox="0 0 448 512">
    +    <title id="address-book-title">Address Book</title>
    +    <path d="M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"></path>
    +  </symbol>
    +  <symbol id="address-card" viewBox="0 0 576 512">
    +    <title id="address-card-title">Address Card</title>
    +    <path d="M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z"></path>
    +  </symbol>
    +  <symbol id="angry" viewBox="0 0 496 512">
    +    <title id="angry-title">Angry Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z"></path>
    +  </symbol>
    +  <symbol id="arrow-alt-circle-down" viewBox="0 0 512 512">
    +    <title id="arrow-alt-circle-down-title">Alternate Arrow Circle Down</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z"></path>
    +  </symbol>
    +  <symbol id="arrow-alt-circle-left" viewBox="0 0 512 512">
    +    <title id="arrow-alt-circle-left-title">Alternate Arrow Circle Left</title>
    +    <path d="M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z"></path>
    +  </symbol>
    +  <symbol id="arrow-alt-circle-right" viewBox="0 0 512 512">
    +    <title id="arrow-alt-circle-right-title">Alternate Arrow Circle Right</title>
    +    <path d="M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z"></path>
    +  </symbol>
    +  <symbol id="arrow-alt-circle-up" viewBox="0 0 512 512">
    +    <title id="arrow-alt-circle-up-title">Alternate Arrow Circle Up</title>
    +    <path d="M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z"></path>
    +  </symbol>
    +  <symbol id="bell" viewBox="0 0 448 512">
    +    <title id="bell-title">bell</title>
    +    <path d="M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z"></path>
    +  </symbol>
    +  <symbol id="bell-slash" viewBox="0 0 640 512">
    +    <title id="bell-slash-title">Bell Slash</title>
    +    <path d="M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"></path>
    +  </symbol>
    +  <symbol id="bookmark" viewBox="0 0 384 512">
    +    <title id="bookmark-title">bookmark</title>
    +    <path d="M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"></path>
    +  </symbol>
    +  <symbol id="building" viewBox="0 0 448 512">
    +    <title id="building-title">Building</title>
    +    <path d="M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z"></path>
    +  </symbol>
    +  <symbol id="calendar" viewBox="0 0 448 512">
    +    <title id="calendar-title">Calendar</title>
    +    <path d="M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z"></path>
    +  </symbol>
    +  <symbol id="calendar-alt" viewBox="0 0 448 512">
    +    <title id="calendar-alt-title">Alternate Calendar</title>
    +    <path d="M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path>
    +  </symbol>
    +  <symbol id="calendar-check" viewBox="0 0 448 512">
    +    <title id="calendar-check-title">Calendar Check</title>
    +    <path d="M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z"></path>
    +  </symbol>
    +  <symbol id="calendar-minus" viewBox="0 0 448 512">
    +    <title id="calendar-minus-title">Calendar Minus</title>
    +    <path d="M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path>
    +  </symbol>
    +  <symbol id="calendar-plus" viewBox="0 0 448 512">
    +    <title id="calendar-plus-title">Calendar Plus</title>
    +    <path d="M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path>
    +  </symbol>
    +  <symbol id="calendar-times" viewBox="0 0 448 512">
    +    <title id="calendar-times-title">Calendar Times</title>
    +    <path d="M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path>
    +  </symbol>
    +  <symbol id="caret-square-down" viewBox="0 0 448 512">
    +    <title id="caret-square-down-title">Caret Square Down</title>
    +    <path d="M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path>
    +  </symbol>
    +  <symbol id="caret-square-left" viewBox="0 0 448 512">
    +    <title id="caret-square-left-title">Caret Square Left</title>
    +    <path d="M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path>
    +  </symbol>
    +  <symbol id="caret-square-right" viewBox="0 0 448 512">
    +    <title id="caret-square-right-title">Caret Square Right</title>
    +    <path d="M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path>
    +  </symbol>
    +  <symbol id="caret-square-up" viewBox="0 0 448 512">
    +    <title id="caret-square-up-title">Caret Square Up</title>
    +    <path d="M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path>
    +  </symbol>
    +  <symbol id="chart-bar" viewBox="0 0 512 512">
    +    <title id="chart-bar-title">Bar Chart</title>
    +    <path d="M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z"></path>
    +  </symbol>
    +  <symbol id="check-circle" viewBox="0 0 512 512">
    +    <title id="check-circle-title">Check Circle</title>
    +    <path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"></path>
    +  </symbol>
    +  <symbol id="check-square" viewBox="0 0 448 512">
    +    <title id="check-square-title">Check Square</title>
    +    <path d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"></path>
    +  </symbol>
    +  <symbol id="circle" viewBox="0 0 512 512">
    +    <title id="circle-title">Circle</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"></path>
    +  </symbol>
    +  <symbol id="clipboard" viewBox="0 0 384 512">
    +    <title id="clipboard-title">Clipboard</title>
    +    <path d="M336 64h-80c0-35.29-28.71-64-64-64s-64 28.71-64 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h42v36c0 6.627 5.373 12 12 12h168c6.627 0 12-5.373 12-12v-36h42a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zM192 40c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24"></path>
    +  </symbol>
    +  <symbol id="clock" viewBox="0 0 512 512">
    +    <title id="clock-title">Clock</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"></path>
    +  </symbol>
    +  <symbol id="clone" viewBox="0 0 512 512">
    +    <title id="clone-title">Clone</title>
    +    <path d="M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"></path>
    +  </symbol>
    +  <symbol id="closed-captioning" viewBox="0 0 512 512">
    +    <title id="closed-captioning-title">Closed Captioning</title>
    +    <path d="M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z"></path>
    +  </symbol>
    +  <symbol id="comment" viewBox="0 0 512 512">
    +    <title id="comment-title">comment</title>
    +    <path d="M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"></path>
    +  </symbol>
    +  <symbol id="comment-alt" viewBox="0 0 512 512">
    +    <title id="comment-alt-title">Alternate Comment</title>
    +    <path d="M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z"></path>
    +  </symbol>
    +  <symbol id="comment-dots" viewBox="0 0 512 512">
    +    <title id="comment-dots-title">Comment Dots</title>
    +    <path d="M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"></path>
    +  </symbol>
    +  <symbol id="comments" viewBox="0 0 576 512">
    +    <title id="comments-title">comments</title>
    +    <path d="M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z"></path>
    +  </symbol>
    +  <symbol id="compass" viewBox="0 0 496 512">
    +    <title id="compass-title">Compass</title>
    +    <path d="M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"></path>
    +  </symbol>
    +  <symbol id="copy" viewBox="0 0 448 512">
    +    <title id="copy-title">Copy</title>
    +    <path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"></path>
    +  </symbol>
    +  <symbol id="copyright" viewBox="0 0 512 512">
    +    <title id="copyright-title">Copyright</title>
    +    <path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z"></path>
    +  </symbol>
    +  <symbol id="credit-card" viewBox="0 0 576 512">
    +    <title id="credit-card-title">Credit Card</title>
    +    <path d="M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z"></path>
    +  </symbol>
    +  <symbol id="dizzy" viewBox="0 0 496 512">
    +    <title id="dizzy-title">Dizzy Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z"></path>
    +  </symbol>
    +  <symbol id="dot-circle" viewBox="0 0 512 512">
    +    <title id="dot-circle-title">Dot Circle</title>
    +    <path d="M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"></path>
    +  </symbol>
    +  <symbol id="edit" viewBox="0 0 576 512">
    +    <title id="edit-title">Edit</title>
    +    <path d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"></path>
    +  </symbol>
    +  <symbol id="envelope" viewBox="0 0 512 512">
    +    <title id="envelope-title">Envelope</title>
    +    <path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"></path>
    +  </symbol>
    +  <symbol id="envelope-open" viewBox="0 0 512 512">
    +    <title id="envelope-open-title">Envelope Open</title>
    +    <path d="M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z"></path>
    +  </symbol>
    +  <symbol id="eye" viewBox="0 0 576 512">
    +    <title id="eye-title">Eye</title>
    +    <path d="M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"></path>
    +  </symbol>
    +  <symbol id="eye-slash" viewBox="0 0 576 512">
    +    <title id="eye-slash-title">Eye Slash</title>
    +    <path d="M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"></path>
    +  </symbol>
    +  <symbol id="file" viewBox="0 0 384 512">
    +    <title id="file-title">File</title>
    +    <path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"></path>
    +  </symbol>
    +  <symbol id="file-alt" viewBox="0 0 384 512">
    +    <title id="file-alt-title">Alternate File</title>
    +    <path d="M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"></path>
    +  </symbol>
    +  <symbol id="file-archive" viewBox="0 0 384 512">
    +    <title id="file-archive-title">Archive File</title>
    +    <path d="M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 51.882L332.118 128H256V51.882zM336 464H48V48h79.714v16h32V48H208v104c0 13.255 10.745 24 24 24h104v288zM192.27 96h-32V64h32v32zm-32 0v32h-32V96h32zm0 64v32h-32v-32h32zm32 0h-32v-32h32v32zm1.909 105.678A12 12 0 0 0 182.406 256H160.27v-32h-32v32l-19.69 97.106C101.989 385.611 126.834 416 160 416c33.052 0 57.871-30.192 51.476-62.62l-17.297-87.702zM160.27 390.073c-17.918 0-32.444-12.105-32.444-27.036 0-14.932 14.525-27.036 32.444-27.036s32.444 12.105 32.444 27.036c0 14.931-14.526 27.036-32.444 27.036zm32-166.073h-32v-32h32v32z"></path>
    +  </symbol>
    +  <symbol id="file-audio" viewBox="0 0 384 512">
    +    <title id="file-audio-title">Audio File</title>
    +    <path d="M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z"></path>
    +  </symbol>
    +  <symbol id="file-code" viewBox="0 0 384 512">
    +    <title id="file-code-title">Code File</title>
    +    <path d="M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm101.677-115.115L116.854 320l32.822-28.885a8.793 8.793 0 0 0 .605-12.624l-17.403-18.564c-3.384-3.613-8.964-3.662-12.438-.401L62.78 313.58c-3.703 3.474-3.704 9.367.001 12.84l57.659 54.055a8.738 8.738 0 0 0 6.012 2.381 8.746 8.746 0 0 0 6.427-2.782l17.403-18.563a8.795 8.795 0 0 0-.605-12.626zm84.284-127.85l-24.401-7.084a8.796 8.796 0 0 0-10.905 5.998L144.04 408.061c-1.353 4.66 1.338 9.552 5.998 10.905l24.403 7.084c4.68 1.355 9.557-1.354 10.905-5.998l54.612-188.112c1.354-4.66-1.337-9.552-5.997-10.905zm87.258 92.545l-57.658-54.055c-3.526-3.307-9.099-3.165-12.439.401l-17.403 18.563a8.795 8.795 0 0 0 .605 12.625L267.146 320l-32.822 28.885a8.793 8.793 0 0 0-.605 12.624l17.403 18.564a8.797 8.797 0 0 0 12.439.401h-.001l57.66-54.055c3.703-3.473 3.703-9.366-.001-12.839z"></path>
    +  </symbol>
    +  <symbol id="file-excel" viewBox="0 0 384 512">
    +    <title id="file-excel-title">Excel File</title>
    +    <path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z"></path>
    +  </symbol>
    +  <symbol id="file-image" viewBox="0 0 384 512">
    +    <title id="file-image-title">Image File</title>
    +    <path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="file-pdf" viewBox="0 0 384 512">
    +    <title id="file-pdf-title">PDF File</title>
    +    <path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z"></path>
    +  </symbol>
    +  <symbol id="file-powerpoint" viewBox="0 0 384 512">
    +    <title id="file-powerpoint-title">Powerpoint File</title>
    +    <path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z"></path>
    +  </symbol>
    +  <symbol id="file-video" viewBox="0 0 384 512">
    +    <title id="file-video-title">Video File</title>
    +    <path d="M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z"></path>
    +  </symbol>
    +  <symbol id="file-word" viewBox="0 0 384 512">
    +    <title id="file-word-title">Word File</title>
    +    <path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z"></path>
    +  </symbol>
    +  <symbol id="flag" viewBox="0 0 512 512">
    +    <title id="flag-title">flag</title>
    +    <path d="M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z"></path>
    +  </symbol>
    +  <symbol id="flushed" viewBox="0 0 496 512">
    +    <title id="flushed-title">Flushed Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="folder" viewBox="0 0 512 512">
    +    <title id="folder-title">Folder</title>
    +    <path d="M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z"></path>
    +  </symbol>
    +  <symbol id="folder-open" viewBox="0 0 576 512">
    +    <title id="folder-open-title">Folder Open</title>
    +    <path d="M527.943 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h400a48.001 48.001 0 0 0 40.704-22.56l79.942-128c19.948-31.917-3.038-73.44-40.703-73.44zM54 112h134.118l64 64H426a6 6 0 0 1 6 6v42H152a48 48 0 0 0-41.098 23.202L48 351.449V117.993A5.993 5.993 0 0 1 54 112zm394 288H72l77.234-128H528l-80 128z"></path>
    +  </symbol>
    +  <symbol id="font-awesome-logo-full" viewBox="0 0 3992 512">
    +    <title id="font-awesome-logo-full-title">Font Awesome Full Logo</title>
    +    <path d="M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"></path>
    +  </symbol>
    +  <symbol id="frown" viewBox="0 0 496 512">
    +    <title id="frown-title">Frowning Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"></path>
    +  </symbol>
    +  <symbol id="frown-open" viewBox="0 0 496 512">
    +    <title id="frown-open-title">Frowning Face With Open Mouth</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z"></path>
    +  </symbol>
    +  <symbol id="futbol" viewBox="0 0 496 512">
    +    <title id="futbol-title">Futbol</title>
    +    <path d="M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z"></path>
    +  </symbol>
    +  <symbol id="gem" viewBox="0 0 576 512">
    +    <title id="gem-title">Gem</title>
    +    <path d="M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z"></path>
    +  </symbol>
    +  <symbol id="grimace" viewBox="0 0 496 512">
    +    <title id="grimace-title">Grimacing Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z"></path>
    +  </symbol>
    +  <symbol id="grin" viewBox="0 0 496 512">
    +    <title id="grin-title">Grinning Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"></path>
    +  </symbol>
    +  <symbol id="grin-alt" viewBox="0 0 496 512">
    +    <title id="grin-alt-title">Alternate Grinning Face</title>
    +    <path d="M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z"></path>
    +  </symbol>
    +  <symbol id="grin-beam" viewBox="0 0 496 512">
    +    <title id="grin-beam-title">Grinning Face With Smiling Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z"></path>
    +  </symbol>
    +  <symbol id="grin-beam-sweat" viewBox="0 0 496 512">
    +    <title id="grin-beam-sweat-title">Grinning Face With Sweat</title>
    +    <path d="M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"></path>
    +  </symbol>
    +  <symbol id="grin-hearts" viewBox="0 0 496 512">
    +    <title id="grin-hearts-title">Smiling Face With Heart-Eyes</title>
    +    <path d="M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z"></path>
    +  </symbol>
    +  <symbol id="grin-squint" viewBox="0 0 496 512">
    +    <title id="grin-squint-title">Grinning Squinting Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z"></path>
    +  </symbol>
    +  <symbol id="grin-squint-tears" viewBox="0 0 512 512">
    +    <title id="grin-squint-tears-title">Rolling on the Floor Laughing</title>
    +    <path d="M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z"></path>
    +  </symbol>
    +  <symbol id="grin-stars" viewBox="0 0 496 512">
    +    <title id="grin-stars-title">Star-Struck</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z"></path>
    +  </symbol>
    +  <symbol id="grin-tears" viewBox="0 0 640 512">
    +    <title id="grin-tears-title">Face With Tears of Joy</title>
    +    <path d="M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"></path>
    +  </symbol>
    +  <symbol id="grin-tongue" viewBox="0 0 496 512">
    +    <title id="grin-tongue-title">Face With Tongue</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="grin-tongue-squint" viewBox="0 0 496 512">
    +    <title id="grin-tongue-squint-title">Squinting Face With Tongue</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z"></path>
    +  </symbol>
    +  <symbol id="grin-tongue-wink" viewBox="0 0 496 512">
    +    <title id="grin-tongue-wink-title">Winking Face With Tongue</title>
    +    <path d="M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z"></path>
    +  </symbol>
    +  <symbol id="grin-wink" viewBox="0 0 496 512">
    +    <title id="grin-wink-title">Grinning Winking Face</title>
    +    <path d="M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"></path>
    +  </symbol>
    +  <symbol id="hand-lizard" viewBox="0 0 576 512">
    +    <title id="hand-lizard-title">Lizard (Hand)</title>
    +    <path d="M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z"></path>
    +  </symbol>
    +  <symbol id="hand-paper" viewBox="0 0 448 512">
    +    <title id="hand-paper-title">Paper (Hand)</title>
    +    <path d="M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z"></path>
    +  </symbol>
    +  <symbol id="hand-peace" viewBox="0 0 448 512">
    +    <title id="hand-peace-title">Peace (Hand)</title>
    +    <path d="M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z"></path>
    +  </symbol>
    +  <symbol id="hand-point-down" viewBox="0 0 448 512">
    +    <title id="hand-point-down-title">Hand Pointing Down</title>
    +    <path d="M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z"></path>
    +  </symbol>
    +  <symbol id="hand-point-left" viewBox="0 0 512 512">
    +    <title id="hand-point-left-title">Hand Pointing Left</title>
    +    <path d="M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"></path>
    +  </symbol>
    +  <symbol id="hand-point-right" viewBox="0 0 512 512">
    +    <title id="hand-point-right-title">Hand Pointing Right</title>
    +    <path d="M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"></path>
    +  </symbol>
    +  <symbol id="hand-point-up" viewBox="0 0 448 512">
    +    <title id="hand-point-up-title">Hand Pointing Up</title>
    +    <path d="M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"></path>
    +  </symbol>
    +  <symbol id="hand-pointer" viewBox="0 0 448 512">
    +    <title id="hand-pointer-title">Pointer (Hand)</title>
    +    <path d="M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"></path>
    +  </symbol>
    +  <symbol id="hand-rock" viewBox="0 0 512 512">
    +    <title id="hand-rock-title">Rock (Hand)</title>
    +    <path d="M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"></path>
    +  </symbol>
    +  <symbol id="hand-scissors" viewBox="0 0 512 512">
    +    <title id="hand-scissors-title">Scissors (Hand)</title>
    +    <path d="M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z"></path>
    +  </symbol>
    +  <symbol id="hand-spock" viewBox="0 0 512 512">
    +    <title id="hand-spock-title">Spock (Hand)</title>
    +    <path d="M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z"></path>
    +  </symbol>
    +  <symbol id="handshake" viewBox="0 0 640 512">
    +    <title id="handshake-title">Handshake</title>
    +    <path d="M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="hdd" viewBox="0 0 576 512">
    +    <title id="hdd-title">HDD</title>
    +    <path d="M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z"></path>
    +  </symbol>
    +  <symbol id="heart" viewBox="0 0 512 512">
    +    <title id="heart-title">Heart</title>
    +    <path d="M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"></path>
    +  </symbol>
    +  <symbol id="hospital" viewBox="0 0 448 512">
    +    <title id="hospital-title">hospital</title>
    +    <path d="M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z"></path>
    +  </symbol>
    +  <symbol id="hourglass" viewBox="0 0 384 512">
    +    <title id="hourglass-title">Hourglass</title>
    +    <path d="M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z"></path>
    +  </symbol>
    +  <symbol id="id-badge" viewBox="0 0 384 512">
    +    <title id="id-badge-title">Identification Badge</title>
    +    <path d="M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"></path>
    +  </symbol>
    +  <symbol id="id-card" viewBox="0 0 576 512">
    +    <title id="id-card-title">Identification Card</title>
    +    <path d="M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"></path>
    +  </symbol>
    +  <symbol id="image" viewBox="0 0 512 512">
    +    <title id="image-title">Image</title>
    +    <path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"></path>
    +  </symbol>
    +  <symbol id="images" viewBox="0 0 576 512">
    +    <title id="images-title">Images</title>
    +    <path d="M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z"></path>
    +  </symbol>
    +  <symbol id="keyboard" viewBox="0 0 576 512">
    +    <title id="keyboard-title">Keyboard</title>
    +    <path d="M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z"></path>
    +  </symbol>
    +  <symbol id="kiss" viewBox="0 0 496 512">
    +    <title id="kiss-title">Kissing Face</title>
    +    <path d="M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="kiss-beam" viewBox="0 0 496 512">
    +    <title id="kiss-beam-title">Kissing Face With Smiling Eyes</title>
    +    <path d="M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z"></path>
    +  </symbol>
    +  <symbol id="kiss-wink-heart" viewBox="0 0 504 512">
    +    <title id="kiss-wink-heart-title">Face Blowing a Kiss</title>
    +    <path d="M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z"></path>
    +  </symbol>
    +  <symbol id="laugh" viewBox="0 0 496 512">
    +    <title id="laugh-title">Grinning Face With Big Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"></path>
    +  </symbol>
    +  <symbol id="laugh-beam" viewBox="0 0 496 512">
    +    <title id="laugh-beam-title">Laugh Face with Beaming Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"></path>
    +  </symbol>
    +  <symbol id="laugh-squint" viewBox="0 0 496 512">
    +    <title id="laugh-squint-title">Laughing Squinting Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"></path>
    +  </symbol>
    +  <symbol id="laugh-wink" viewBox="0 0 496 512">
    +    <title id="laugh-wink-title">Laughing Winking Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"></path>
    +  </symbol>
    +  <symbol id="lemon" viewBox="0 0 512 512">
    +    <title id="lemon-title">Lemon</title>
    +    <path d="M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z"></path>
    +  </symbol>
    +  <symbol id="life-ring" viewBox="0 0 512 512">
    +    <title id="life-ring-title">Life Ring</title>
    +    <path d="M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z"></path>
    +  </symbol>
    +  <symbol id="lightbulb" viewBox="0 0 352 512">
    +    <title id="lightbulb-title">Lightbulb</title>
    +    <path d="M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"></path>
    +  </symbol>
    +  <symbol id="list-alt" viewBox="0 0 512 512">
    +    <title id="list-alt-title">Alternate List</title>
    +    <path d="M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z"></path>
    +  </symbol>
    +  <symbol id="map" viewBox="0 0 576 512">
    +    <title id="map-title">Map</title>
    +    <path d="M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z"></path>
    +  </symbol>
    +  <symbol id="meh" viewBox="0 0 496 512">
    +    <title id="meh-title">Neutral Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="meh-blank" viewBox="0 0 496 512">
    +    <title id="meh-blank-title">Face Without Mouth</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="meh-rolling-eyes" viewBox="0 0 496 512">
    +    <title id="meh-rolling-eyes-title">Face With Rolling Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="minus-square" viewBox="0 0 448 512">
    +    <title id="minus-square-title">Minus Square</title>
    +    <path d="M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path>
    +  </symbol>
    +  <symbol id="money-bill-alt" viewBox="0 0 640 512">
    +    <title id="money-bill-alt-title">Alternate Money Bill</title>
    +    <path d="M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z"></path>
    +  </symbol>
    +  <symbol id="moon" viewBox="0 0 512 512">
    +    <title id="moon-title">Moon</title>
    +    <path d="M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z"></path>
    +  </symbol>
    +  <symbol id="newspaper" viewBox="0 0 576 512">
    +    <title id="newspaper-title">Newspaper</title>
    +    <path d="M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z"></path>
    +  </symbol>
    +  <symbol id="object-group" viewBox="0 0 512 512">
    +    <title id="object-group-title">Object Group</title>
    +    <path d="M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z"></path>
    +  </symbol>
    +  <symbol id="object-ungroup" viewBox="0 0 576 512">
    +    <title id="object-ungroup-title">Object Ungroup</title>
    +    <path d="M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z"></path>
    +  </symbol>
    +  <symbol id="paper-plane" viewBox="0 0 512 512">
    +    <title id="paper-plane-title">Paper Plane</title>
    +    <path d="M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"></path>
    +  </symbol>
    +  <symbol id="pause-circle" viewBox="0 0 512 512">
    +    <title id="pause-circle-title">Pause Circle</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z"></path>
    +  </symbol>
    +  <symbol id="play-circle" viewBox="0 0 512 512">
    +    <title id="play-circle-title">Play Circle</title>
    +    <path d="M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z"></path>
    +  </symbol>
    +  <symbol id="plus-square" viewBox="0 0 448 512">
    +    <title id="plus-square-title">Plus Square</title>
    +    <path d="M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path>
    +  </symbol>
    +  <symbol id="question-circle" viewBox="0 0 512 512">
    +    <title id="question-circle-title">Question Circle</title>
    +    <path d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"></path>
    +  </symbol>
    +  <symbol id="registered" viewBox="0 0 512 512">
    +    <title id="registered-title">Registered Trademark</title>
    +    <path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z"></path>
    +  </symbol>
    +  <symbol id="sad-cry" viewBox="0 0 496 512">
    +    <title id="sad-cry-title">Crying Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z"></path>
    +  </symbol>
    +  <symbol id="sad-tear" viewBox="0 0 496 512">
    +    <title id="sad-tear-title">Loudly Crying Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z"></path>
    +  </symbol>
    +  <symbol id="save" viewBox="0 0 448 512">
    +    <title id="save-title">Save</title>
    +    <path d="M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"></path>
    +  </symbol>
    +  <symbol id="share-square" viewBox="0 0 576 512">
    +    <title id="share-square-title">Share Square</title>
    +    <path d="M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z"></path>
    +  </symbol>
    +  <symbol id="smile" viewBox="0 0 496 512">
    +    <title id="smile-title">Smiling Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"></path>
    +  </symbol>
    +  <symbol id="smile-beam" viewBox="0 0 496 512">
    +    <title id="smile-beam-title">Beaming Face With Smiling Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z"></path>
    +  </symbol>
    +  <symbol id="smile-wink" viewBox="0 0 496 512">
    +    <title id="smile-wink-title">Winking Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z"></path>
    +  </symbol>
    +  <symbol id="snowflake" viewBox="0 0 448 512">
    +    <title id="snowflake-title">Snowflake</title>
    +    <path d="M438.237 355.927l-66.574-38.54 59.448-10.327c5.846-1.375 10.609-5.183 13.458-10.13 2.48-4.307 3.506-9.478 2.524-14.651-2.11-11.115-12.686-18.039-23.621-15.467l-85.423 31.115L255.914 256l82.136-41.926 85.423 31.115c10.936 2.572 21.512-4.352 23.621-15.467 2.111-11.115-5.046-22.209-15.981-24.781l-59.448-10.327 66.573-38.54c9.54-5.523 12.615-18.092 6.867-28.074-5.748-9.982-18.14-13.596-27.68-8.074l-66.574 38.54 20.805-56.787c3.246-10.782-2.758-22.542-13.413-26.268-10.654-3.725-21.922 1.997-25.168 12.779l-15.838 89.735-72.423 41.926V136l69.585-58.621c7.689-8.21 6.997-20.856-1.548-28.245-8.545-7.391-21.705-6.723-29.394 1.486l-38.644 46.46V20c0-11.046-9.318-20-20.813-20s-20.813 8.954-20.813 20v77.08l-38.644-46.46c-7.689-8.21-20.849-8.876-29.394-1.486-8.544 7.389-9.236 20.035-1.547 28.245L203.187 136v83.853l-72.423-41.926-15.838-89.736c-3.247-10.782-14.515-16.504-25.169-12.779-10.656 3.725-16.659 15.486-13.413 26.268l20.805 56.787-66.573-38.54c-9.54-5.523-21.933-1.908-27.68 8.074s-2.673 22.551 6.867 28.074l66.574 38.54-59.449 10.328C5.953 207.515-1.202 218.609.907 229.724c2.11 11.114 12.686 18.038 23.622 15.466l85.422-31.115L192.086 256l-82.136 41.926-85.423-31.115c-10.936-2.572-21.511 4.352-23.622 15.466-2.109 11.113 5.046 22.209 15.981 24.781l59.449 10.328-66.574 38.54C.223 361.449-2.852 374.018 2.896 384s18.14 13.597 27.68 8.074l66.574-38.54-20.805 56.786c-1.735 5.764-.828 11.805 2.02 16.751 2.48 4.307 6.433 7.784 11.392 9.517 10.655 3.725 21.923-1.997 25.169-12.779l15.838-89.736 72.423-41.926V376l-69.585 58.621c-7.69 8.21-6.997 20.855 1.547 28.245 8.544 7.388 21.705 6.723 29.394-1.487l38.644-46.46V492c0 11.046 9.318 20 20.813 20s20.813-8.954 20.813-20v-77.081l38.644 46.46c4.111 4.389 9.782 6.621 15.478 6.621 4.96 0 9.939-1.694 13.916-5.134 8.545-7.39 9.237-20.035 1.548-28.245L244.813 376v-83.853l72.423 41.926 15.838 89.736c3.246 10.782 14.514 16.504 25.168 12.779 10.653-3.726 16.659-15.487 13.412-26.268l-20.805-56.787 66.574 38.54c9.54 5.523 21.933 1.908 27.68-8.074 5.749-9.981 2.675-22.55-6.866-28.072z"></path>
    +  </symbol>
    +  <symbol id="square" viewBox="0 0 448 512">
    +    <title id="square-title">Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"></path>
    +  </symbol>
    +  <symbol id="star" viewBox="0 0 576 512">
    +    <title id="star-title">Star</title>
    +    <path d="M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"></path>
    +  </symbol>
    +  <symbol id="star-half" viewBox="0 0 576 512">
    +    <title id="star-half-title">star-half</title>
    +    <path d="M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z"></path>
    +  </symbol>
    +  <symbol id="sticky-note" viewBox="0 0 448 512">
    +    <title id="sticky-note-title">Sticky Note</title>
    +    <path d="M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z"></path>
    +  </symbol>
    +  <symbol id="stop-circle" viewBox="0 0 512 512">
    +    <title id="stop-circle-title">Stop Circle</title>
    +    <path d="M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z"></path>
    +  </symbol>
    +  <symbol id="sun" viewBox="0 0 512 512">
    +    <title id="sun-title">Sun</title>
    +    <path d="M220.116 487.936l-20.213-49.425a3.992 3.992 0 0 0-5.808-1.886l-45.404 28.104c-29.466 18.24-66.295-8.519-58.054-42.179l12.699-51.865a3.993 3.993 0 0 0-3.59-4.941l-53.251-3.951c-34.554-2.562-48.632-45.855-22.174-68.247L65.08 259.05a3.992 3.992 0 0 0 0-6.106l-40.76-34.497c-26.45-22.384-12.39-65.682 22.174-68.246l53.251-3.951a3.993 3.993 0 0 0 3.59-4.941L90.637 89.443c-8.239-33.656 28.581-60.42 58.054-42.179l45.403 28.104a3.993 3.993 0 0 0 5.808-1.887l20.213-49.425c13.116-32.071 58.638-32.081 71.758 0l20.212 49.424a3.994 3.994 0 0 0 5.809 1.887l45.403-28.104c29.464-18.236 66.297 8.513 58.054 42.179l-12.699 51.865a3.995 3.995 0 0 0 3.59 4.941l53.251 3.951c34.553 2.563 48.633 45.854 22.175 68.246l-40.76 34.497a3.993 3.993 0 0 0 0 6.107l40.76 34.496c26.511 22.441 12.322 65.689-22.175 68.247l-53.251 3.951a3.993 3.993 0 0 0-3.589 4.942l12.698 51.864c8.241 33.658-28.583 60.421-58.054 42.18l-45.403-28.104a3.994 3.994 0 0 0-5.809 1.887l-20.212 49.424c-13.159 32.178-58.675 31.993-71.757 0zm16.814-64.568l19.064 46.616 19.064-46.615c10.308-25.2 40.778-35.066 63.892-20.759l42.822 26.507-11.976-48.919c-6.475-26.444 12.38-52.339 39.487-54.349l50.226-3.726-38.444-32.536c-20.782-17.591-20.747-49.621.001-67.18l38.442-32.536-50.225-3.727c-27.151-2.015-45.95-27.948-39.488-54.349l11.978-48.919-42.823 26.507c-23.151 14.327-53.603 4.4-63.892-20.76l-19.064-46.615-19.064 46.617c-10.305 25.198-40.778 35.066-63.891 20.76l-42.823-26.508 11.977 48.918c6.474 26.446-12.381 52.338-39.488 54.35l-50.224 3.726 38.443 32.537c20.782 17.588 20.747 49.619 0 67.178L52.48 322.123l50.226 3.726c27.151 2.014 45.95 27.947 39.487 54.349l-11.977 48.919 42.823-26.507c23.188-14.355 53.622-4.352 63.891 20.758zM256 384c-70.58 0-128-57.421-128-128 0-70.58 57.42-128 128-128 70.579 0 128 57.42 128 128 0 70.579-57.421 128-128 128zm0-208c-44.112 0-80 35.888-80 80s35.888 80 80 80 80-35.888 80-80-35.888-80-80-80z"></path>
    +  </symbol>
    +  <symbol id="surprise" viewBox="0 0 496 512">
    +    <title id="surprise-title">Hushed Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="thumbs-down" viewBox="0 0 512 512">
    +    <title id="thumbs-down-title">thumbs-down</title>
    +    <path d="M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z"></path>
    +  </symbol>
    +  <symbol id="thumbs-up" viewBox="0 0 512 512">
    +    <title id="thumbs-up-title">thumbs-up</title>
    +    <path d="M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"></path>
    +  </symbol>
    +  <symbol id="times-circle" viewBox="0 0 512 512">
    +    <title id="times-circle-title">Times Circle</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"></path>
    +  </symbol>
    +  <symbol id="tired" viewBox="0 0 496 512">
    +    <title id="tired-title">Tired Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z"></path>
    +  </symbol>
    +  <symbol id="trash-alt" viewBox="0 0 448 512">
    +    <title id="trash-alt-title">Alternate Trash</title>
    +    <path d="M192 188v216c0 6.627-5.373 12-12 12h-24c-6.627 0-12-5.373-12-12V188c0-6.627 5.373-12 12-12h24c6.627 0 12 5.373 12 12zm100-12h-24c-6.627 0-12 5.373-12 12v216c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12V188c0-6.627-5.373-12-12-12zm132-96c13.255 0 24 10.745 24 24v12c0 6.627-5.373 12-12 12h-20v336c0 26.51-21.49 48-48 48H80c-26.51 0-48-21.49-48-48V128H12c-6.627 0-12-5.373-12-12v-12c0-13.255 10.745-24 24-24h74.411l34.018-56.696A48 48 0 0 1 173.589 0h100.823a48 48 0 0 1 41.16 23.304L349.589 80H424zm-269.611 0h139.223L276.16 50.913A6 6 0 0 0 271.015 48h-94.028a6 6 0 0 0-5.145 2.913L154.389 80zM368 128H80v330a6 6 0 0 0 6 6h276a6 6 0 0 0 6-6V128z"></path>
    +  </symbol>
    +  <symbol id="user" viewBox="0 0 448 512">
    +    <title id="user-title">User</title>
    +    <path d="M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z"></path>
    +  </symbol>
    +  <symbol id="user-circle" viewBox="0 0 496 512">
    +    <title id="user-circle-title">User Circle</title>
    +    <path d="M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z"></path>
    +  </symbol>
    +  <symbol id="window-close" viewBox="0 0 512 512">
    +    <title id="window-close-title">Window Close</title>
    +    <path d="M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z"></path>
    +  </symbol>
    +  <symbol id="window-maximize" viewBox="0 0 512 512">
    +    <title id="window-maximize-title">Window Maximize</title>
    +    <path d="M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"></path>
    +  </symbol>
    +  <symbol id="window-minimize" viewBox="0 0 512 512">
    +    <title id="window-minimize-title">Window Minimize</title>
    +    <path d="M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="window-restore" viewBox="0 0 512 512">
    +    <title id="window-restore-title">Window Restore</title>
    +    <path d="M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z"></path>
    +  </symbol>
    +</svg>
    diff --git a/htdocs/theme/common/fontawesome-5/sprites/solid.svg b/htdocs/theme/common/fontawesome-5/sprites/solid.svg
    new file mode 100644
    index 00000000000..39c24644e7d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/sprites/solid.svg
    @@ -0,0 +1,3411 @@
    +<?xml version="1.0" encoding="UTF-8"?>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    +<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
    +  <symbol id="ad" viewBox="0 0 512 512">
    +    <title id="ad-title">Ad</title>
    +    <path d="M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"></path>
    +  </symbol>
    +  <symbol id="address-book" viewBox="0 0 448 512">
    +    <title id="address-book-title">Address Book</title>
    +    <path d="M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"></path>
    +  </symbol>
    +  <symbol id="address-card" viewBox="0 0 576 512">
    +    <title id="address-card-title">Address Card</title>
    +    <path d="M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"></path>
    +  </symbol>
    +  <symbol id="adjust" viewBox="0 0 512 512">
    +    <title id="adjust-title">adjust</title>
    +    <path d="M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"></path>
    +  </symbol>
    +  <symbol id="air-freshener" viewBox="0 0 384 512">
    +    <title id="air-freshener-title">Air Freshener</title>
    +    <path d="M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z"></path>
    +  </symbol>
    +  <symbol id="align-center" viewBox="0 0 448 512">
    +    <title id="align-center-title">align-center</title>
    +    <path d="M352 44v40c0 8.837-7.163 16-16 16H112c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h224c8.837 0 16 7.163 16 16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm320-200H112c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="align-justify" viewBox="0 0 448 512">
    +    <title id="align-justify-title">align-justify</title>
    +    <path d="M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm16 144h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0-128h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path>
    +  </symbol>
    +  <symbol id="align-left" viewBox="0 0 448 512">
    +    <title id="align-left-title">align-left</title>
    +    <path d="M288 44v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16zM0 172v40c0 8.837 7.163 16 16 16h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16zm16 312h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm256-200H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="align-right" viewBox="0 0 448 512">
    +    <title id="align-right-title">align-right</title>
    +    <path d="M160 84V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H176c-8.837 0-16-7.163-16-16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path>
    +  </symbol>
    +  <symbol id="allergies" viewBox="0 0 448 512">
    +    <title id="allergies-title">Allergies</title>
    +    <path d="M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="ambulance" viewBox="0 0 640 512">
    +    <title id="ambulance-title">ambulance</title>
    +    <path d="M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"></path>
    +  </symbol>
    +  <symbol id="american-sign-language-interpreting" viewBox="0 0 640 512">
    +    <title id="american-sign-language-interpreting-title">American Sign Language Interpreting</title>
    +    <path d="M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"></path>
    +  </symbol>
    +  <symbol id="anchor" viewBox="0 0 576 512">
    +    <title id="anchor-title">Anchor</title>
    +    <path d="M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"></path>
    +  </symbol>
    +  <symbol id="angle-double-down" viewBox="0 0 320 512">
    +    <title id="angle-double-down-title">Angle Double Down</title>
    +    <path d="M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"></path>
    +  </symbol>
    +  <symbol id="angle-double-left" viewBox="0 0 448 512">
    +    <title id="angle-double-left-title">Angle Double Left</title>
    +    <path d="M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"></path>
    +  </symbol>
    +  <symbol id="angle-double-right" viewBox="0 0 448 512">
    +    <title id="angle-double-right-title">Angle Double Right</title>
    +    <path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"></path>
    +  </symbol>
    +  <symbol id="angle-double-up" viewBox="0 0 320 512">
    +    <title id="angle-double-up-title">Angle Double Up</title>
    +    <path d="M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"></path>
    +  </symbol>
    +  <symbol id="angle-down" viewBox="0 0 320 512">
    +    <title id="angle-down-title">angle-down</title>
    +    <path d="M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"></path>
    +  </symbol>
    +  <symbol id="angle-left" viewBox="0 0 256 512">
    +    <title id="angle-left-title">angle-left</title>
    +    <path d="M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"></path>
    +  </symbol>
    +  <symbol id="angle-right" viewBox="0 0 256 512">
    +    <title id="angle-right-title">angle-right</title>
    +    <path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path>
    +  </symbol>
    +  <symbol id="angle-up" viewBox="0 0 320 512">
    +    <title id="angle-up-title">angle-up</title>
    +    <path d="M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"></path>
    +  </symbol>
    +  <symbol id="angry" viewBox="0 0 496 512">
    +    <title id="angry-title">Angry Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"></path>
    +  </symbol>
    +  <symbol id="ankh" viewBox="0 0 320 512">
    +    <title id="ankh-title">Ankh</title>
    +    <path d="M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"></path>
    +  </symbol>
    +  <symbol id="apple-alt" viewBox="0 0 448 512">
    +    <title id="apple-alt-title">Fruit Apple</title>
    +    <path d="M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"></path>
    +  </symbol>
    +  <symbol id="archive" viewBox="0 0 512 512">
    +    <title id="archive-title">Archive</title>
    +    <path d="M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="archway" viewBox="0 0 576 512">
    +    <title id="archway-title">Archway</title>
    +    <path d="M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="arrow-alt-circle-down" viewBox="0 0 512 512">
    +    <title id="arrow-alt-circle-down-title">Alternate Arrow Circle Down</title>
    +    <path d="M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"></path>
    +  </symbol>
    +  <symbol id="arrow-alt-circle-left" viewBox="0 0 512 512">
    +    <title id="arrow-alt-circle-left-title">Alternate Arrow Circle Left</title>
    +    <path d="M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"></path>
    +  </symbol>
    +  <symbol id="arrow-alt-circle-right" viewBox="0 0 512 512">
    +    <title id="arrow-alt-circle-right-title">Alternate Arrow Circle Right</title>
    +    <path d="M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"></path>
    +  </symbol>
    +  <symbol id="arrow-alt-circle-up" viewBox="0 0 512 512">
    +    <title id="arrow-alt-circle-up-title">Alternate Arrow Circle Up</title>
    +    <path d="M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"></path>
    +  </symbol>
    +  <symbol id="arrow-circle-down" viewBox="0 0 512 512">
    +    <title id="arrow-circle-down-title">Arrow Circle Down</title>
    +    <path d="M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"></path>
    +  </symbol>
    +  <symbol id="arrow-circle-left" viewBox="0 0 512 512">
    +    <title id="arrow-circle-left-title">Arrow Circle Left</title>
    +    <path d="M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"></path>
    +  </symbol>
    +  <symbol id="arrow-circle-right" viewBox="0 0 512 512">
    +    <title id="arrow-circle-right-title">Arrow Circle Right</title>
    +    <path d="M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"></path>
    +  </symbol>
    +  <symbol id="arrow-circle-up" viewBox="0 0 512 512">
    +    <title id="arrow-circle-up-title">Arrow Circle Up</title>
    +    <path d="M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"></path>
    +  </symbol>
    +  <symbol id="arrow-down" viewBox="0 0 448 512">
    +    <title id="arrow-down-title">arrow-down</title>
    +    <path d="M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"></path>
    +  </symbol>
    +  <symbol id="arrow-left" viewBox="0 0 448 512">
    +    <title id="arrow-left-title">arrow-left</title>
    +    <path d="M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"></path>
    +  </symbol>
    +  <symbol id="arrow-right" viewBox="0 0 448 512">
    +    <title id="arrow-right-title">arrow-right</title>
    +    <path d="M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"></path>
    +  </symbol>
    +  <symbol id="arrow-up" viewBox="0 0 448 512">
    +    <title id="arrow-up-title">arrow-up</title>
    +    <path d="M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"></path>
    +  </symbol>
    +  <symbol id="arrows-alt" viewBox="0 0 512 512">
    +    <title id="arrows-alt-title">Alternate Arrows</title>
    +    <path d="M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"></path>
    +  </symbol>
    +  <symbol id="arrows-alt-h" viewBox="0 0 512 512">
    +    <title id="arrows-alt-h-title">Alternate Arrows Horizontal</title>
    +    <path d="M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"></path>
    +  </symbol>
    +  <symbol id="arrows-alt-v" viewBox="0 0 256 512">
    +    <title id="arrows-alt-v-title">Alternate Arrows Vertical</title>
    +    <path d="M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"></path>
    +  </symbol>
    +  <symbol id="assistive-listening-systems" viewBox="0 0 512 512">
    +    <title id="assistive-listening-systems-title">Assistive Listening Systems</title>
    +    <path d="M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"></path>
    +  </symbol>
    +  <symbol id="asterisk" viewBox="0 0 512 512">
    +    <title id="asterisk-title">asterisk</title>
    +    <path d="M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"></path>
    +  </symbol>
    +  <symbol id="at" viewBox="0 0 512 512">
    +    <title id="at-title">At</title>
    +    <path d="M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"></path>
    +  </symbol>
    +  <symbol id="atlas" viewBox="0 0 448 512">
    +    <title id="atlas-title">Atlas</title>
    +    <path d="M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"></path>
    +  </symbol>
    +  <symbol id="atom" viewBox="0 0 448 512">
    +    <title id="atom-title">Atom</title>
    +    <path d="M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="audio-description" viewBox="0 0 512 512">
    +    <title id="audio-description-title">Audio Description</title>
    +    <path d="M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"></path>
    +  </symbol>
    +  <symbol id="award" viewBox="0 0 384 512">
    +    <title id="award-title">Award</title>
    +    <path d="M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"></path>
    +  </symbol>
    +  <symbol id="backspace" viewBox="0 0 640 512">
    +    <title id="backspace-title">Backspace</title>
    +    <path d="M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"></path>
    +  </symbol>
    +  <symbol id="backward" viewBox="0 0 512 512">
    +    <title id="backward-title">backward</title>
    +    <path d="M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"></path>
    +  </symbol>
    +  <symbol id="balance-scale" viewBox="0 0 640 512">
    +    <title id="balance-scale-title">Balance Scale</title>
    +    <path d="M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="ban" viewBox="0 0 512 512">
    +    <title id="ban-title">ban</title>
    +    <path d="M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"></path>
    +  </symbol>
    +  <symbol id="band-aid" viewBox="0 0 640 512">
    +    <title id="band-aid-title">Band-Aid</title>
    +    <path d="M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"></path>
    +  </symbol>
    +  <symbol id="barcode" viewBox="0 0 512 512">
    +    <title id="barcode-title">barcode</title>
    +    <path d="M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"></path>
    +  </symbol>
    +  <symbol id="bars" viewBox="0 0 448 512">
    +    <title id="bars-title">Bars</title>
    +    <path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path>
    +  </symbol>
    +  <symbol id="baseball-ball" viewBox="0 0 496 512">
    +    <title id="baseball-ball-title">Baseball Ball</title>
    +    <path d="M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"></path>
    +  </symbol>
    +  <symbol id="basketball-ball" viewBox="0 0 496 512">
    +    <title id="basketball-ball-title">Basketball Ball</title>
    +    <path d="M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"></path>
    +  </symbol>
    +  <symbol id="bath" viewBox="0 0 512 512">
    +    <title id="bath-title">Bath</title>
    +    <path d="M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="battery-empty" viewBox="0 0 640 512">
    +    <title id="battery-empty-title">Battery Empty</title>
    +    <path d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="battery-full" viewBox="0 0 640 512">
    +    <title id="battery-full-title">Battery Full</title>
    +    <path d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"></path>
    +  </symbol>
    +  <symbol id="battery-half" viewBox="0 0 640 512">
    +    <title id="battery-half-title">Battery 1/2 Full</title>
    +    <path d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"></path>
    +  </symbol>
    +  <symbol id="battery-quarter" viewBox="0 0 640 512">
    +    <title id="battery-quarter-title">Battery 1/4 Full</title>
    +    <path d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"></path>
    +  </symbol>
    +  <symbol id="battery-three-quarters" viewBox="0 0 640 512">
    +    <title id="battery-three-quarters-title">Battery 3/4 Full</title>
    +    <path d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"></path>
    +  </symbol>
    +  <symbol id="bed" viewBox="0 0 640 512">
    +    <title id="bed-title">Bed</title>
    +    <path d="M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"></path>
    +  </symbol>
    +  <symbol id="beer" viewBox="0 0 448 512">
    +    <title id="beer-title">beer</title>
    +    <path d="M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="bell" viewBox="0 0 448 512">
    +    <title id="bell-title">bell</title>
    +    <path d="M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"></path>
    +  </symbol>
    +  <symbol id="bell-slash" viewBox="0 0 640 512">
    +    <title id="bell-slash-title">Bell Slash</title>
    +    <path d="M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"></path>
    +  </symbol>
    +  <symbol id="bezier-curve" viewBox="0 0 640 512">
    +    <title id="bezier-curve-title">Bezier Curve</title>
    +    <path d="M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="bible" viewBox="0 0 448 512">
    +    <title id="bible-title">Bible</title>
    +    <path d="M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"></path>
    +  </symbol>
    +  <symbol id="bicycle" viewBox="0 0 640 512">
    +    <title id="bicycle-title">Bicycle</title>
    +    <path d="M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"></path>
    +  </symbol>
    +  <symbol id="binoculars" viewBox="0 0 512 512">
    +    <title id="binoculars-title">Binoculars</title>
    +    <path d="M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"></path>
    +  </symbol>
    +  <symbol id="birthday-cake" viewBox="0 0 448 512">
    +    <title id="birthday-cake-title">Birthday Cake</title>
    +    <path d="M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"></path>
    +  </symbol>
    +  <symbol id="blender" viewBox="0 0 512 512">
    +    <title id="blender-title">Blender</title>
    +    <path d="M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"></path>
    +  </symbol>
    +  <symbol id="blender-phone" viewBox="0 0 576 512">
    +    <title id="blender-phone-title">Blender Phone</title>
    +    <path d="M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="blind" viewBox="0 0 384 512">
    +    <title id="blind-title">Blind</title>
    +    <path d="M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"></path>
    +  </symbol>
    +  <symbol id="bold" viewBox="0 0 384 512">
    +    <title id="bold-title">bold</title>
    +    <path d="M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z"></path>
    +  </symbol>
    +  <symbol id="bolt" viewBox="0 0 320 512">
    +    <title id="bolt-title">Lightning Bolt</title>
    +    <path d="M295.973 160H180.572L215.19 30.184C219.25 14.956 207.756 0 192 0H56C43.971 0 33.8 8.905 32.211 20.828l-31.996 240C-1.704 275.217 9.504 288 24.004 288h118.701L96.646 482.466C93.05 497.649 104.659 512 119.992 512c8.35 0 16.376-4.374 20.778-11.978l175.973-303.997c9.244-15.967-2.288-36.025-20.77-36.025z"></path>
    +  </symbol>
    +  <symbol id="bomb" viewBox="0 0 512 512">
    +    <title id="bomb-title">Bomb</title>
    +    <path d="M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"></path>
    +  </symbol>
    +  <symbol id="bone" viewBox="0 0 640 512">
    +    <title id="bone-title">Bone</title>
    +    <path d="M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"></path>
    +  </symbol>
    +  <symbol id="bong" viewBox="0 0 448 512">
    +    <title id="bong-title">Bong</title>
    +    <path d="M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"></path>
    +  </symbol>
    +  <symbol id="book" viewBox="0 0 448 512">
    +    <title id="book-title">book</title>
    +    <path d="M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"></path>
    +  </symbol>
    +  <symbol id="book-dead" viewBox="0 0 448 512">
    +    <title id="book-dead-title">Book of the Dead</title>
    +    <path d="M272 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.18 0 80 28.65 80 64 0 20.87-12.68 39.23-32 50.91V184c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-13.09c-19.32-11.68-32-30.04-32-50.91 0-35.35 35.82-64 80-64zM129.05 233.85a7.996 7.996 0 0 1-4.2-10.5l6.29-14.7a7.995 7.995 0 0 1 10.51-4.2L240 246.6l98.35-42.15c4.06-1.74 8.77.14 10.51 4.2l6.29 14.7a7.996 7.996 0 0 1-4.2 10.5L280.6 264l70.34 30.15a7.996 7.996 0 0 1 4.2 10.5l-6.29 14.7a8.008 8.008 0 0 1-10.51 4.21L240 281.4l-98.35 42.15a8.003 8.003 0 0 1-10.51-4.21l-6.29-14.7a7.996 7.996 0 0 1 4.2-10.5L199.4 264l-70.35-30.15zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64zM208 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16z"></path>
    +  </symbol>
    +  <symbol id="book-open" viewBox="0 0 576 512">
    +    <title id="book-open-title">Book Open</title>
    +    <path d="M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"></path>
    +  </symbol>
    +  <symbol id="book-reader" viewBox="0 0 512 512">
    +    <title id="book-reader-title">Book Reader</title>
    +    <path d="M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"></path>
    +  </symbol>
    +  <symbol id="bookmark" viewBox="0 0 384 512">
    +    <title id="bookmark-title">bookmark</title>
    +    <path d="M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"></path>
    +  </symbol>
    +  <symbol id="bowling-ball" viewBox="0 0 496 512">
    +    <title id="bowling-ball-title">Bowling Ball</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="box" viewBox="0 0 512 512">
    +    <title id="box-title">Box</title>
    +    <path d="M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"></path>
    +  </symbol>
    +  <symbol id="box-open" viewBox="0 0 640 512">
    +    <title id="box-open-title">Box Open</title>
    +    <path d="M53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9zm585.1 102.8L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9z"></path>
    +  </symbol>
    +  <symbol id="boxes" viewBox="0 0 576 512">
    +    <title id="boxes-title">Boxes</title>
    +    <path d="M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="braille" viewBox="0 0 640 512">
    +    <title id="braille-title">Braille</title>
    +    <path d="M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="brain" viewBox="0 0 576 512">
    +    <title id="brain-title">Brain</title>
    +    <path d="M208 0c-29.87 0-54.74 20.55-61.8 48.22-.75-.02-1.45-.22-2.2-.22-35.34 0-64 28.65-64 64 0 4.84.64 9.51 1.66 14.04C52.54 138 32 166.57 32 200c0 12.58 3.16 24.32 8.34 34.91C16.34 248.72 0 274.33 0 304c0 33.34 20.42 61.88 49.42 73.89-.9 4.57-1.42 9.28-1.42 14.11 0 39.76 32.23 72 72 72 4.12 0 8.1-.55 12.03-1.21C141.61 491.31 168.25 512 200 512c39.77 0 72-32.24 72-72V205.45c-10.91 8.98-23.98 15.45-38.36 18.39-4.97 1.02-9.64-2.82-9.64-7.89v-16.18c0-3.57 2.35-6.78 5.8-7.66 24.2-6.16 42.2-27.95 42.2-54.04V64c0-35.35-28.66-64-64-64zm368 304c0-29.67-16.34-55.28-40.34-69.09 5.17-10.59 8.34-22.33 8.34-34.91 0-33.43-20.54-62-49.66-73.96 1.02-4.53 1.66-9.2 1.66-14.04 0-35.35-28.66-64-64-64-.75 0-1.45.2-2.2.22C422.74 20.55 397.87 0 368 0c-35.34 0-64 28.65-64 64v74.07c0 26.09 17.99 47.88 42.2 54.04 3.46.88 5.8 4.09 5.8 7.66v16.18c0 5.07-4.68 8.91-9.64 7.89-14.38-2.94-27.44-9.41-38.36-18.39V440c0 39.76 32.23 72 72 72 31.75 0 58.39-20.69 67.97-49.21 3.93.67 7.91 1.21 12.03 1.21 39.77 0 72-32.24 72-72 0-4.83-.52-9.54-1.42-14.11 29-12.01 49.42-40.55 49.42-73.89z"></path>
    +  </symbol>
    +  <symbol id="briefcase" viewBox="0 0 512 512">
    +    <title id="briefcase-title">Briefcase</title>
    +    <path d="M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"></path>
    +  </symbol>
    +  <symbol id="briefcase-medical" viewBox="0 0 512 512">
    +    <title id="briefcase-medical-title">Medical Briefcase</title>
    +    <path d="M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"></path>
    +  </symbol>
    +  <symbol id="broadcast-tower" viewBox="0 0 640 512">
    +    <title id="broadcast-tower-title">Broadcast Tower</title>
    +    <path d="M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"></path>
    +  </symbol>
    +  <symbol id="broom" viewBox="0 0 640 512">
    +    <title id="broom-title">Broom</title>
    +    <path d="M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"></path>
    +  </symbol>
    +  <symbol id="brush" viewBox="0 0 384 512">
    +    <title id="brush-title">Brush</title>
    +    <path d="M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"></path>
    +  </symbol>
    +  <symbol id="bug" viewBox="0 0 512 512">
    +    <title id="bug-title">Bug</title>
    +    <path d="M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"></path>
    +  </symbol>
    +  <symbol id="building" viewBox="0 0 448 512">
    +    <title id="building-title">Building</title>
    +    <path d="M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"></path>
    +  </symbol>
    +  <symbol id="bullhorn" viewBox="0 0 576 512">
    +    <title id="bullhorn-title">bullhorn</title>
    +    <path d="M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"></path>
    +  </symbol>
    +  <symbol id="bullseye" viewBox="0 0 496 512">
    +    <title id="bullseye-title">Bullseye</title>
    +    <path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"></path>
    +  </symbol>
    +  <symbol id="burn" viewBox="0 0 384 512">
    +    <title id="burn-title">Burn</title>
    +    <path d="M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"></path>
    +  </symbol>
    +  <symbol id="bus" viewBox="0 0 512 512">
    +    <title id="bus-title">Bus</title>
    +    <path d="M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="bus-alt" viewBox="0 0 512 512">
    +    <title id="bus-alt-title">Bus Alt</title>
    +    <path d="M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="business-time" viewBox="0 0 640 512">
    +    <title id="business-time-title">Business Time</title>
    +    <path d="M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"></path>
    +  </symbol>
    +  <symbol id="calculator" viewBox="0 0 448 512">
    +    <title id="calculator-title">Calculator</title>
    +    <path d="M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"></path>
    +  </symbol>
    +  <symbol id="calendar" viewBox="0 0 448 512">
    +    <title id="calendar-title">Calendar</title>
    +    <path d="M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"></path>
    +  </symbol>
    +  <symbol id="calendar-alt" viewBox="0 0 448 512">
    +    <title id="calendar-alt-title">Alternate Calendar</title>
    +    <path d="M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z"></path>
    +  </symbol>
    +  <symbol id="calendar-check" viewBox="0 0 448 512">
    +    <title id="calendar-check-title">Calendar Check</title>
    +    <path d="M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"></path>
    +  </symbol>
    +  <symbol id="calendar-minus" viewBox="0 0 448 512">
    +    <title id="calendar-minus-title">Calendar Minus</title>
    +    <path d="M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"></path>
    +  </symbol>
    +  <symbol id="calendar-plus" viewBox="0 0 448 512">
    +    <title id="calendar-plus-title">Calendar Plus</title>
    +    <path d="M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"></path>
    +  </symbol>
    +  <symbol id="calendar-times" viewBox="0 0 448 512">
    +    <title id="calendar-times-title">Calendar Times</title>
    +    <path d="M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"></path>
    +  </symbol>
    +  <symbol id="camera" viewBox="0 0 512 512">
    +    <title id="camera-title">camera</title>
    +    <path d="M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"></path>
    +  </symbol>
    +  <symbol id="camera-retro" viewBox="0 0 512 512">
    +    <title id="camera-retro-title">Retro Camera</title>
    +    <path d="M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="campground" viewBox="0 0 640 512">
    +    <title id="campground-title">Campground</title>
    +    <path d="M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"></path>
    +  </symbol>
    +  <symbol id="cannabis" viewBox="0 0 512 512">
    +    <title id="cannabis-title">Cannabis</title>
    +    <path d="M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"></path>
    +  </symbol>
    +  <symbol id="capsules" viewBox="0 0 576 512">
    +    <title id="capsules-title">Capsules</title>
    +    <path d="M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"></path>
    +  </symbol>
    +  <symbol id="car" viewBox="0 0 512 512">
    +    <title id="car-title">Car</title>
    +    <path d="M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"></path>
    +  </symbol>
    +  <symbol id="car-alt" viewBox="0 0 480 512">
    +    <title id="car-alt-title">Alternate Car</title>
    +    <path d="M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"></path>
    +  </symbol>
    +  <symbol id="car-battery" viewBox="0 0 512 512">
    +    <title id="car-battery-title">Car Battery</title>
    +    <path d="M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"></path>
    +  </symbol>
    +  <symbol id="car-crash" viewBox="0 0 640 512">
    +    <title id="car-crash-title">Car Crash</title>
    +    <path d="M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"></path>
    +  </symbol>
    +  <symbol id="car-side" viewBox="0 0 640 512">
    +    <title id="car-side-title">Car Side</title>
    +    <path d="M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"></path>
    +  </symbol>
    +  <symbol id="caret-down" viewBox="0 0 320 512">
    +    <title id="caret-down-title">Caret Down</title>
    +    <path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"></path>
    +  </symbol>
    +  <symbol id="caret-left" viewBox="0 0 192 512">
    +    <title id="caret-left-title">Caret Left</title>
    +    <path d="M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"></path>
    +  </symbol>
    +  <symbol id="caret-right" viewBox="0 0 192 512">
    +    <title id="caret-right-title">Caret Right</title>
    +    <path d="M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"></path>
    +  </symbol>
    +  <symbol id="caret-square-down" viewBox="0 0 448 512">
    +    <title id="caret-square-down-title">Caret Square Down</title>
    +    <path d="M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"></path>
    +  </symbol>
    +  <symbol id="caret-square-left" viewBox="0 0 448 512">
    +    <title id="caret-square-left-title">Caret Square Left</title>
    +    <path d="M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"></path>
    +  </symbol>
    +  <symbol id="caret-square-right" viewBox="0 0 448 512">
    +    <title id="caret-square-right-title">Caret Square Right</title>
    +    <path d="M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"></path>
    +  </symbol>
    +  <symbol id="caret-square-up" viewBox="0 0 448 512">
    +    <title id="caret-square-up-title">Caret Square Up</title>
    +    <path d="M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"></path>
    +  </symbol>
    +  <symbol id="caret-up" viewBox="0 0 320 512">
    +    <title id="caret-up-title">Caret Up</title>
    +    <path d="M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"></path>
    +  </symbol>
    +  <symbol id="cart-arrow-down" viewBox="0 0 576 512">
    +    <title id="cart-arrow-down-title">Shopping Cart Arrow Down</title>
    +    <path d="M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"></path>
    +  </symbol>
    +  <symbol id="cart-plus" viewBox="0 0 576 512">
    +    <title id="cart-plus-title">Add to Shopping Cart</title>
    +    <path d="M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="cat" viewBox="0 0 512 512">
    +    <title id="cat-title">Cat</title>
    +    <path d="M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="certificate" viewBox="0 0 512 512">
    +    <title id="certificate-title">certificate</title>
    +    <path d="M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"></path>
    +  </symbol>
    +  <symbol id="chair" viewBox="0 0 448 512">
    +    <title id="chair-title">Chair</title>
    +    <path d="M446.33 341.88l-10.67-32A31.996 31.996 0 0 0 405.3 288H42.69c-13.77 0-26 8.81-30.36 21.88l-10.67 32C-5.24 362.6 10.18 384 32.03 384H32v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h256v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-.03c21.85 0 37.27-21.4 30.36-42.12zM112 128c0-29.48 16.2-54.99 40-68.87V256h48V48h48v208h48V59.13c23.8 13.88 40 39.39 40 68.87v128h48V128C384 57.31 326.69 0 256 0h-64C121.31 0 64 57.31 64 128v128h48V128z"></path>
    +  </symbol>
    +  <symbol id="chalkboard" viewBox="0 0 640 512">
    +    <title id="chalkboard-title">Chalkboard</title>
    +    <path d="M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="chalkboard-teacher" viewBox="0 0 640 512">
    +    <title id="chalkboard-teacher-title">Chalkboard Teacher</title>
    +    <path d="M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"></path>
    +  </symbol>
    +  <symbol id="charging-station" viewBox="0 0 576 512">
    +    <title id="charging-station-title">Charging Station</title>
    +    <path d="M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"></path>
    +  </symbol>
    +  <symbol id="chart-area" viewBox="0 0 512 512">
    +    <title id="chart-area-title">Area Chart</title>
    +    <path d="M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"></path>
    +  </symbol>
    +  <symbol id="chart-bar" viewBox="0 0 512 512">
    +    <title id="chart-bar-title">Bar Chart</title>
    +    <path d="M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="chart-line" viewBox="0 0 512 512">
    +    <title id="chart-line-title">Line Chart</title>
    +    <path d="M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"></path>
    +  </symbol>
    +  <symbol id="chart-pie" viewBox="0 0 544 512">
    +    <title id="chart-pie-title">Pie Chart</title>
    +    <path d="M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"></path>
    +  </symbol>
    +  <symbol id="check" viewBox="0 0 512 512">
    +    <title id="check-title">Check</title>
    +    <path d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"></path>
    +  </symbol>
    +  <symbol id="check-circle" viewBox="0 0 512 512">
    +    <title id="check-circle-title">Check Circle</title>
    +    <path d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"></path>
    +  </symbol>
    +  <symbol id="check-double" viewBox="0 0 512 512">
    +    <title id="check-double-title">Check Double</title>
    +    <path d="M504.5 171.95l-36.2-36.41c-10-10.05-26.21-10.05-36.2 0L192 377.02 79.9 264.28c-10-10.06-26.21-10.06-36.2 0L7.5 300.69c-10 10.05-10 26.36 0 36.41l166.4 167.36c10 10.06 26.21 10.06 36.2 0l294.4-296.09c10-10.06 10-26.36 0-36.42zM166.57 282.71c6.84 7.02 18.18 7.02 25.21.18L403.85 72.62c7.02-6.84 7.02-18.18.18-25.21L362.08 5.29c-6.84-7.02-18.18-7.02-25.21-.18L179.71 161.19l-68.23-68.77c-6.84-7.02-18.18-7.02-25.2-.18l-42.13 41.77c-7.02 6.84-7.02 18.18-.18 25.2l122.6 123.5z"></path>
    +  </symbol>
    +  <symbol id="check-square" viewBox="0 0 448 512">
    +    <title id="check-square-title">Check Square</title>
    +    <path d="M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"></path>
    +  </symbol>
    +  <symbol id="chess" viewBox="0 0 512 512">
    +    <title id="chess-title">Chess</title>
    +    <path d="M199.821 217.633a6 6 0 0 1 6 6l-.001 20.766a6 6 0 0 1-6 6h-25.805c0 31.715-2.153 96.201 17.398 153.229H64.597C84.54 345.452 82.02 279.245 82.02 250.399H56.183a6 6 0 0 1-6-6l.002-20.766a6 6 0 0 1 6-6h143.636zM41.554 115.088l34.58 95.071h103.734l34.572-95.072c2.846-7.826-2.95-16.101-11.278-16.101H152v-30.22h21.57a6 6 0 0 0 6-6V40.383a6 6 0 0 0-6-6h-28.367V6a6 6 0 0 0-6-6H116.82a6 6 0 0 0-6 6v28.383H82.421a6 6 0 0 0-6 6v22.383a6 6 0 0 0 6 6H104v30.219H52.831c-8.328.001-14.124 8.276-11.277 16.103zM222.678 445.17v-28.067a6 6 0 0 0-6-6H39.322a6 6 0 0 0-6 6v28.067l-22.148 14.164a6 6 0 0 0-2.767 5.055V506a6 6 0 0 0 6 6h227.187a6 6 0 0 0 6-6v-41.612a6 6 0 0 0-2.767-5.055l-22.149-14.163zm90.578-144.225l24.88 16.963c.09 18.124-.167 63.904-11.905 114.522h147.526c-11.713-50.475-11.969-96.324-11.882-114.537l24.859-16.949a3.856 3.856 0 0 0 1.684-3.187v-69.901a3.857 3.857 0 0 0-3.857-3.857h-27.655a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.858-3.857h-52.918a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.857-3.857H315.43a3.857 3.857 0 0 0-3.857 3.857v69.901a3.855 3.855 0 0 0 1.683 3.188zm71.585 51.906c0-8.372 6.787-15.158 15.159-15.158s15.158 6.787 15.158 15.158v30.318h-30.317v-30.318zM504.62 470.059l-13.664-10.639v-15.552a3.857 3.857 0 0 0-3.857-3.857H312.915a3.857 3.857 0 0 0-3.857 3.857v15.552l-13.677 10.639a3.857 3.857 0 0 0-1.488 3.044v35.039a3.857 3.857 0 0 0 3.857 3.857h204.5a3.857 3.857 0 0 0 3.857-3.857v-35.04a3.859 3.859 0 0 0-1.487-3.043z"></path>
    +  </symbol>
    +  <symbol id="chess-bishop" viewBox="0 0 320 512">
    +    <title id="chess-bishop-title">Chess Bishop</title>
    +    <path d="M123.158 77.881C107.369 72.53 96 57.597 96 40c0-22.091 17.909-40 40-40h47.796c22.091 0 40 17.909 40 40 0 17.541-11.295 32.434-27.005 37.829 23.993 16.657 48.577 46.839 68.703 82.05L144.929 280.443a6 6 0 0 0 0 8.485l14.142 14.142a6 6 0 0 0 8.485 0L280.9 189.726c17.758 38.297 29.371 79.443 29.371 114.273 0 53.786-22.897 75.788-58.446 86.033V448H68.174v-57.97C32.631 379.784 9.739 357.781 9.739 304c0-78.029 58.281-187.766 113.419-226.119zM320 500v-24c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12z"></path>
    +  </symbol>
    +  <symbol id="chess-board" viewBox="0 0 512 512">
    +    <title id="chess-board-title">Chess Board</title>
    +    <path d="M256 256v64h-64v-64h64zm0-256h-64v64h64V0zm0 256h64v-64h-64v64zM384 0h-64v64h64V0zm0 512h64v-64h-64v64zm128-64v-64h-64v64h64zm-384 64h64v-64h-64v64zm0-512H64v64h64V0zm384 192v-64h-64v64h64zm0 128v-64h-64v64h64zM0 512h64v-64H0v64zM0 64v64h64V64H0zm0 128v64h64v-64H0zm0 128v64h64v-64H0zm256 192h64v-64h-64v64zm-64-128v64h64v-64h-64zm64-192v-64h-64v64h64zM64 384v64h64v-64H64zm64-128H64v64h64v-64zm256 128h64v-64h-64v64zM512 0h-64v64h64V0zM384 256h64v-64h-64v64zm0-192v64h64V64h-64zm-64 320v64h64v-64h-64zm-192-64v64h64v-64h-64zm128 0v64h64v-64h-64zm-64-128h-64v64h64v-64zm-64-64H64v64h64v-64zm192 192h64v-64h-64v64zM192 128V64h-64v64h64zm128 0V64h-64v64h64zm0 64h64v-64h-64v64z"></path>
    +  </symbol>
    +  <symbol id="chess-king" viewBox="0 0 448 512">
    +    <title id="chess-king-title">Chess King</title>
    +    <path d="M416 476v24c0 6.627-5.373 12-12 12H44c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12zm-8.033-324H248v-48h50a6 6 0 0 0 6-6V62a6 6 0 0 0-6-6h-50V6a6 6 0 0 0-6-6h-36a6 6 0 0 0-6 6v50h-50a6 6 0 0 0-6 6v36a6 6 0 0 0 6 6h50v48H40.033c-27.574 0-46.879 27.244-37.738 53.259L87.582 448h272.836l85.287-242.741C454.846 179.244 435.541 152 407.967 152z"></path>
    +  </symbol>
    +  <symbol id="chess-knight" viewBox="0 0 384 512">
    +    <title id="chess-knight-title">Chess Knight</title>
    +    <path d="M352 224v224H32v-46.557c0-30.302 17.12-58.003 44.223-71.554l57.243-28.622A48 48 0 0 0 160 258.334V208l-22.127 11.063a23.996 23.996 0 0 0-12.55 15.645l-11.835 47.338a12 12 0 0 1-7.185 8.231l-29.601 11.84a11.998 11.998 0 0 1-9.33-.176L7.126 275.167A12 12 0 0 1 0 264.201v-158.26c0-6.365 2.529-12.47 7.03-16.971L16 80 1.789 51.578A16.937 16.937 0 0 1 0 44c0-6.627 5.373-12 12-12h148c106.039 0 192 85.961 192 192zm20 240H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12zM52 128c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"></path>
    +  </symbol>
    +  <symbol id="chess-pawn" viewBox="0 0 320 512">
    +    <title id="chess-pawn-title">Chess Pawn</title>
    +    <path d="M264 448H56s60-42.743 60-176H84c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h40.209C95.721 210.56 76 181.588 76 148c0-46.392 37.608-84 84-84s84 37.608 84 84c0 33.588-19.721 62.56-48.209 76H236c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12h-32c0 133.257 60 176 60 176zm28 16H28c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h264c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12z"></path>
    +  </symbol>
    +  <symbol id="chess-queen" viewBox="0 0 512 512">
    +    <title id="chess-queen-title">Chess Queen</title>
    +    <path d="M436 512H76c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12zM255.579 0c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zm204.568 154.634c-5.768-3.045-12.916-.932-16.082 4.77-8.616 15.516-22.747 37.801-44.065 37.801-28.714 0-30.625-19.804-31.686-57.542-.183-6.492-5.501-11.664-11.995-11.664h-41.006c-5.175 0-9.754 3.328-11.388 8.238-8.89 26.709-26.073 40.992-47.925 40.992s-39.034-14.283-47.925-40.992c-1.634-4.91-6.213-8.238-11.388-8.238h-41.005c-6.495 0-11.813 5.174-11.995 11.667-1.052 37.642-2.934 57.539-31.688 57.539-20.691 0-33.817-20.224-44.425-38.025-3.266-5.48-10.258-7.431-15.899-4.453l-39.179 20.679a12 12 0 0 0-5.51 15.145L112 448h288l105.014-257.448a12 12 0 0 0-5.51-15.145l-39.357-20.773z"></path>
    +  </symbol>
    +  <symbol id="chess-rook" viewBox="0 0 384 512">
    +    <title id="chess-rook-title">Chess Rook</title>
    +    <path d="M81.241 215.027C80.957 258.92 77.411 348.076 48 448h287.982c-29.4-99.604-32.936-188.912-33.221-232.975l45.418-42.312a11.998 11.998 0 0 0 3.82-8.78V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v44h-48V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v44H96V44c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v119.932c0 3.33 1.384 6.51 3.82 8.78l45.421 42.315zM160 256c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v64.004h-64V256zm224 220v24c0 6.627-5.373 12-12 12H12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12z"></path>
    +  </symbol>
    +  <symbol id="chevron-circle-down" viewBox="0 0 512 512">
    +    <title id="chevron-circle-down-title">Chevron Circle Down</title>
    +    <path d="M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"></path>
    +  </symbol>
    +  <symbol id="chevron-circle-left" viewBox="0 0 512 512">
    +    <title id="chevron-circle-left-title">Chevron Circle Left</title>
    +    <path d="M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"></path>
    +  </symbol>
    +  <symbol id="chevron-circle-right" viewBox="0 0 512 512">
    +    <title id="chevron-circle-right-title">Chevron Circle Right</title>
    +    <path d="M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"></path>
    +  </symbol>
    +  <symbol id="chevron-circle-up" viewBox="0 0 512 512">
    +    <title id="chevron-circle-up-title">Chevron Circle Up</title>
    +    <path d="M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"></path>
    +  </symbol>
    +  <symbol id="chevron-down" viewBox="0 0 448 512">
    +    <title id="chevron-down-title">chevron-down</title>
    +    <path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"></path>
    +  </symbol>
    +  <symbol id="chevron-left" viewBox="0 0 320 512">
    +    <title id="chevron-left-title">chevron-left</title>
    +    <path d="M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"></path>
    +  </symbol>
    +  <symbol id="chevron-right" viewBox="0 0 320 512">
    +    <title id="chevron-right-title">chevron-right</title>
    +    <path d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"></path>
    +  </symbol>
    +  <symbol id="chevron-up" viewBox="0 0 448 512">
    +    <title id="chevron-up-title">chevron-up</title>
    +    <path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"></path>
    +  </symbol>
    +  <symbol id="child" viewBox="0 0 384 512">
    +    <title id="child-title">Child</title>
    +    <path d="M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"></path>
    +  </symbol>
    +  <symbol id="church" viewBox="0 0 640 512">
    +    <title id="church-title">Church</title>
    +    <path d="M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"></path>
    +  </symbol>
    +  <symbol id="circle" viewBox="0 0 512 512">
    +    <title id="circle-title">Circle</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"></path>
    +  </symbol>
    +  <symbol id="circle-notch" viewBox="0 0 512 512">
    +    <title id="circle-notch-title">Circle Notched</title>
    +    <path d="M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"></path>
    +  </symbol>
    +  <symbol id="city" viewBox="0 0 640 512">
    +    <title id="city-title">City</title>
    +    <path d="M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"></path>
    +  </symbol>
    +  <symbol id="clipboard" viewBox="0 0 384 512">
    +    <title id="clipboard-title">Clipboard</title>
    +    <path d="M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"></path>
    +  </symbol>
    +  <symbol id="clipboard-check" viewBox="0 0 384 512">
    +    <title id="clipboard-check-title">Clipboard Check</title>
    +    <path d="M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"></path>
    +  </symbol>
    +  <symbol id="clipboard-list" viewBox="0 0 384 512">
    +    <title id="clipboard-list-title">Clipboard List</title>
    +    <path d="M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"></path>
    +  </symbol>
    +  <symbol id="clock" viewBox="0 0 512 512">
    +    <title id="clock-title">Clock</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z"></path>
    +  </symbol>
    +  <symbol id="clone" viewBox="0 0 512 512">
    +    <title id="clone-title">Clone</title>
    +    <path d="M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"></path>
    +  </symbol>
    +  <symbol id="closed-captioning" viewBox="0 0 512 512">
    +    <title id="closed-captioning-title">Closed Captioning</title>
    +    <path d="M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"></path>
    +  </symbol>
    +  <symbol id="cloud" viewBox="0 0 640 512">
    +    <title id="cloud-title">Cloud</title>
    +    <path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"></path>
    +  </symbol>
    +  <symbol id="cloud-download-alt" viewBox="0 0 640 512">
    +    <title id="cloud-download-alt-title">Alternate Cloud Download</title>
    +    <path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"></path>
    +  </symbol>
    +  <symbol id="cloud-moon" viewBox="0 0 640 512">
    +    <title id="cloud-moon-title">Cloud with Moon</title>
    +    <path d="M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.3 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm285.26-29.42c-104.23 19.22-199.95-58.16-199.95-160.03 0-58.68 32.45-112.64 85.18-141.7 8.13-4.48 6.08-16.41-3.15-18.06C497.14 1.17 484 0 470.84 0 352.25 0 256 93.04 256 208c0 7.26.4 14.44 1.15 21.51 9.87-3.38 20.18-5.51 30.85-5.51 52.94 0 96 43.06 96 96 0 3.59-.21 7.17-.63 10.73 33.49 15.39 57.47 46.55 63.24 83.86 7.96.87 16.03 1.41 24.23 1.41 66.26 0 126.79-29.19 166.88-77.02 5.93-7.07-.54-17.41-9.71-15.72z"></path>
    +  </symbol>
    +  <symbol id="cloud-sun" viewBox="0 0 640 512">
    +    <title id="cloud-sun-title">Cloud with Sun</title>
    +    <path d="M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.31 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm243.19-99.8c-7.85-6.79-7.85-18.97 0-25.76L633.41 186c12.76-11.05 5.84-32.02-11-33.3l-61.59-4.67c-10.19-.78-17.28-10.49-14.9-20.43l14.95-62.48c3.89-16.26-13.96-29.02-28.08-20.07l-52.51 33.26c-8.61 5.46-20.06 1.75-23.85-7.72l-23.47-58.74c-6.32-15.81-28.19-15.81-34.51 0l-23.38 58.49c-3.83 9.59-15.44 13.35-24.17 7.82l-52.29-33.12c-14.13-8.95-31.98 3.81-28.08 20.07l14.95 62.48c2.38 9.94-4.7 19.65-14.9 20.43l-61.15 4.64c-17 1.29-23.99 22.46-11.1 33.62l31.23 27.05c7.82 5.17 15.21 11.01 21.78 17.84 11.42-4.71 23.73-7.18 36.37-7.18 5.97 0 11.77.71 17.44 1.76 7.09-54.98 53.68-97.76 110.56-97.76 61.76 0 112 50.24 112 112s-50.24 112-112 112c-.95 0-1.83-.26-2.77-.28 13.83 13.2 24.61 29.47 30.16 48.28h27.02c6.25 0 12.37 1.83 17.6 5.27l45.08 29.68c14.19 8.99 31.89-4.17 27.92-20.76l-14.69-61.38c-2.43-10.16 4.8-20.08 15.22-20.87l61.16-4.64c16.84-1.28 23.76-22.25 11-33.3l-47.47-41.11zm-202.66 59.94C393.3 317.34 404.32 320 416 320c44.11 0 80-35.89 80-80s-35.89-80-80-80c-43.25 0-78.39 34.56-79.75 77.49 26.44 15.53 44.59 43.13 47.03 75.33z"></path>
    +  </symbol>
    +  <symbol id="cloud-upload-alt" viewBox="0 0 640 512">
    +    <title id="cloud-upload-alt-title">Alternate Cloud Upload</title>
    +    <path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"></path>
    +  </symbol>
    +  <symbol id="cocktail" viewBox="0 0 576 512">
    +    <title id="cocktail-title">Cocktail</title>
    +    <path d="M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"></path>
    +  </symbol>
    +  <symbol id="code" viewBox="0 0 640 512">
    +    <title id="code-title">Code</title>
    +    <path d="M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"></path>
    +  </symbol>
    +  <symbol id="code-branch" viewBox="0 0 384 512">
    +    <title id="code-branch-title">Code Branch</title>
    +    <path d="M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"></path>
    +  </symbol>
    +  <symbol id="coffee" viewBox="0 0 640 512">
    +    <title id="coffee-title">Coffee</title>
    +    <path d="M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"></path>
    +  </symbol>
    +  <symbol id="cog" viewBox="0 0 512 512">
    +    <title id="cog-title">cog</title>
    +    <path d="M444.788 291.1l42.616 24.599c4.867 2.809 7.126 8.618 5.459 13.985-11.07 35.642-29.97 67.842-54.689 94.586a12.016 12.016 0 0 1-14.832 2.254l-42.584-24.595a191.577 191.577 0 0 1-60.759 35.13v49.182a12.01 12.01 0 0 1-9.377 11.718c-34.956 7.85-72.499 8.256-109.219.007-5.49-1.233-9.403-6.096-9.403-11.723v-49.184a191.555 191.555 0 0 1-60.759-35.13l-42.584 24.595a12.016 12.016 0 0 1-14.832-2.254c-24.718-26.744-43.619-58.944-54.689-94.586-1.667-5.366.592-11.175 5.459-13.985L67.212 291.1a193.48 193.48 0 0 1 0-70.199l-42.616-24.599c-4.867-2.809-7.126-8.618-5.459-13.985 11.07-35.642 29.97-67.842 54.689-94.586a12.016 12.016 0 0 1 14.832-2.254l42.584 24.595a191.577 191.577 0 0 1 60.759-35.13V25.759a12.01 12.01 0 0 1 9.377-11.718c34.956-7.85 72.499-8.256 109.219-.007 5.49 1.233 9.403 6.096 9.403 11.723v49.184a191.555 191.555 0 0 1 60.759 35.13l42.584-24.595a12.016 12.016 0 0 1 14.832 2.254c24.718 26.744 43.619 58.944 54.689 94.586 1.667 5.366-.592 11.175-5.459 13.985L444.788 220.9a193.485 193.485 0 0 1 0 70.2zM336 256c0-44.112-35.888-80-80-80s-80 35.888-80 80 35.888 80 80 80 80-35.888 80-80z"></path>
    +  </symbol>
    +  <symbol id="cogs" viewBox="0 0 640 512">
    +    <title id="cogs-title">cogs</title>
    +    <path d="M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"></path>
    +  </symbol>
    +  <symbol id="coins" viewBox="0 0 512 512">
    +    <title id="coins-title">Coins</title>
    +    <path d="M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"></path>
    +  </symbol>
    +  <symbol id="columns" viewBox="0 0 512 512">
    +    <title id="columns-title">Columns</title>
    +    <path d="M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"></path>
    +  </symbol>
    +  <symbol id="comment" viewBox="0 0 512 512">
    +    <title id="comment-title">comment</title>
    +    <path d="M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"></path>
    +  </symbol>
    +  <symbol id="comment-alt" viewBox="0 0 512 512">
    +    <title id="comment-alt-title">Alternate Comment</title>
    +    <path d="M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"></path>
    +  </symbol>
    +  <symbol id="comment-dollar" viewBox="0 0 512 512">
    +    <title id="comment-dollar-title">Comment Dollar</title>
    +    <path d="M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"></path>
    +  </symbol>
    +  <symbol id="comment-dots" viewBox="0 0 512 512">
    +    <title id="comment-dots-title">Comment Dots</title>
    +    <path d="M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="comment-slash" viewBox="0 0 640 512">
    +    <title id="comment-slash-title">Comment Slash</title>
    +    <path d="M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"></path>
    +  </symbol>
    +  <symbol id="comments" viewBox="0 0 576 512">
    +    <title id="comments-title">comments</title>
    +    <path d="M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"></path>
    +  </symbol>
    +  <symbol id="comments-dollar" viewBox="0 0 576 512">
    +    <title id="comments-dollar-title">Comments Dollar</title>
    +    <path d="M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"></path>
    +  </symbol>
    +  <symbol id="compact-disc" viewBox="0 0 496 512">
    +    <title id="compact-disc-title">Compact Disc</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="compass" viewBox="0 0 496 512">
    +    <title id="compass-title">Compass</title>
    +    <path d="M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"></path>
    +  </symbol>
    +  <symbol id="compress" viewBox="0 0 448 512">
    +    <title id="compress-title">Compress</title>
    +    <path d="M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"></path>
    +  </symbol>
    +  <symbol id="concierge-bell" viewBox="0 0 512 512">
    +    <title id="concierge-bell-title">Concierge Bell</title>
    +    <path d="M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="cookie" viewBox="0 0 512 512">
    +    <title id="cookie-title">Cookie</title>
    +    <path d="M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="cookie-bite" viewBox="0 0 512 512">
    +    <title id="cookie-bite-title">Cookie Bite</title>
    +    <path d="M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="copy" viewBox="0 0 448 512">
    +    <title id="copy-title">Copy</title>
    +    <path d="M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"></path>
    +  </symbol>
    +  <symbol id="copyright" viewBox="0 0 512 512">
    +    <title id="copyright-title">Copyright</title>
    +    <path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"></path>
    +  </symbol>
    +  <symbol id="couch" viewBox="0 0 640 512">
    +    <title id="couch-title">Couch</title>
    +    <path d="M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"></path>
    +  </symbol>
    +  <symbol id="credit-card" viewBox="0 0 576 512">
    +    <title id="credit-card-title">Credit Card</title>
    +    <path d="M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"></path>
    +  </symbol>
    +  <symbol id="crop" viewBox="0 0 512 512">
    +    <title id="crop-title">crop</title>
    +    <path d="M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="crop-alt" viewBox="0 0 512 512">
    +    <title id="crop-alt-title">Alternate Crop</title>
    +    <path d="M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"></path>
    +  </symbol>
    +  <symbol id="cross" viewBox="0 0 384 512">
    +    <title id="cross-title">Cross</title>
    +    <path d="M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="crosshairs" viewBox="0 0 512 512">
    +    <title id="crosshairs-title">Crosshairs</title>
    +    <path d="M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"></path>
    +  </symbol>
    +  <symbol id="crow" viewBox="0 0 640 512">
    +    <title id="crow-title">Crow</title>
    +    <path d="M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"></path>
    +  </symbol>
    +  <symbol id="crown" viewBox="0 0 640 512">
    +    <title id="crown-title">Crown</title>
    +    <path d="M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="cube" viewBox="0 0 512 512">
    +    <title id="cube-title">Cube</title>
    +    <path d="M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"></path>
    +  </symbol>
    +  <symbol id="cubes" viewBox="0 0 512 512">
    +    <title id="cubes-title">Cubes</title>
    +    <path d="M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"></path>
    +  </symbol>
    +  <symbol id="cut" viewBox="0 0 448 512">
    +    <title id="cut-title">Cut</title>
    +    <path d="M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="database" viewBox="0 0 448 512">
    +    <title id="database-title">Database</title>
    +    <path d="M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"></path>
    +  </symbol>
    +  <symbol id="deaf" viewBox="0 0 512 512">
    +    <title id="deaf-title">Deaf</title>
    +    <path d="M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"></path>
    +  </symbol>
    +  <symbol id="desktop" viewBox="0 0 576 512">
    +    <title id="desktop-title">Desktop</title>
    +    <path d="M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"></path>
    +  </symbol>
    +  <symbol id="dharmachakra" viewBox="0 0 512 512">
    +    <title id="dharmachakra-title">Dharmachakra</title>
    +    <path d="M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"></path>
    +  </symbol>
    +  <symbol id="diagnoses" viewBox="0 0 640 512">
    +    <title id="diagnoses-title">Diagnoses</title>
    +    <path d="M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="dice" viewBox="0 0 640 512">
    +    <title id="dice-title">Dice</title>
    +    <path d="M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"></path>
    +  </symbol>
    +  <symbol id="dice-d20" viewBox="0 0 480 512">
    +    <title id="dice-d20-title">Dice D20</title>
    +    <path d="M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"></path>
    +  </symbol>
    +  <symbol id="dice-d6" viewBox="0 0 448 512">
    +    <title id="dice-d6-title">Dice D6</title>
    +    <path d="M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"></path>
    +  </symbol>
    +  <symbol id="dice-five" viewBox="0 0 448 512">
    +    <title id="dice-five-title">Dice Five</title>
    +    <path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="dice-four" viewBox="0 0 448 512">
    +    <title id="dice-four-title">Dice Four</title>
    +    <path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="dice-one" viewBox="0 0 448 512">
    +    <title id="dice-one-title">Dice One</title>
    +    <path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="dice-six" viewBox="0 0 448 512">
    +    <title id="dice-six-title">Dice Six</title>
    +    <path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="dice-three" viewBox="0 0 448 512">
    +    <title id="dice-three-title">Dice Three</title>
    +    <path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="dice-two" viewBox="0 0 448 512">
    +    <title id="dice-two-title">Dice Two</title>
    +    <path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="digital-tachograph" viewBox="0 0 640 512">
    +    <title id="digital-tachograph-title">Digital Tachograph</title>
    +    <path d="M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"></path>
    +  </symbol>
    +  <symbol id="directions" viewBox="0 0 512 512">
    +    <title id="directions-title">Directions</title>
    +    <path d="M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"></path>
    +  </symbol>
    +  <symbol id="divide" viewBox="0 0 448 512">
    +    <title id="divide-title">Divide</title>
    +    <path d="M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="dizzy" viewBox="0 0 496 512">
    +    <title id="dizzy-title">Dizzy Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"></path>
    +  </symbol>
    +  <symbol id="dna" viewBox="0 0 448 512">
    +    <title id="dna-title">DNA</title>
    +    <path d="M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"></path>
    +  </symbol>
    +  <symbol id="dog" viewBox="0 0 512 512">
    +    <title id="dog-title">Dog</title>
    +    <path d="M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z"></path>
    +  </symbol>
    +  <symbol id="dollar-sign" viewBox="0 0 288 512">
    +    <title id="dollar-sign-title">Dollar Sign</title>
    +    <path d="M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"></path>
    +  </symbol>
    +  <symbol id="dolly" viewBox="0 0 576 512">
    +    <title id="dolly-title">Dolly</title>
    +    <path d="M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"></path>
    +  </symbol>
    +  <symbol id="dolly-flatbed" viewBox="0 0 640 512">
    +    <title id="dolly-flatbed-title">Dolly Flatbed</title>
    +    <path d="M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="donate" viewBox="0 0 512 512">
    +    <title id="donate-title">Donate</title>
    +    <path d="M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="door-closed" viewBox="0 0 640 512">
    +    <title id="door-closed-title">Door Closed</title>
    +    <path d="M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="door-open" viewBox="0 0 640 512">
    +    <title id="door-open-title">Door Open</title>
    +    <path d="M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"></path>
    +  </symbol>
    +  <symbol id="dot-circle" viewBox="0 0 512 512">
    +    <title id="dot-circle-title">Dot Circle</title>
    +    <path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"></path>
    +  </symbol>
    +  <symbol id="dove" viewBox="0 0 512 512">
    +    <title id="dove-title">Dove</title>
    +    <path d="M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="download" viewBox="0 0 512 512">
    +    <title id="download-title">Download</title>
    +    <path d="M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"></path>
    +  </symbol>
    +  <symbol id="drafting-compass" viewBox="0 0 512 512">
    +    <title id="drafting-compass-title">Drafting Compass</title>
    +    <path d="M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"></path>
    +  </symbol>
    +  <symbol id="dragon" viewBox="0 0 640 512">
    +    <title id="dragon-title">Dragon</title>
    +    <path d="M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"></path>
    +  </symbol>
    +  <symbol id="draw-polygon" viewBox="0 0 448 512">
    +    <title id="draw-polygon-title">Draw Polygon</title>
    +    <path d="M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="drum" viewBox="0 0 576 512">
    +    <title id="drum-title">Drum</title>
    +    <path d="M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z"></path>
    +  </symbol>
    +  <symbol id="drum-steelpan" viewBox="0 0 576 512">
    +    <title id="drum-steelpan-title">Drum Steelpan</title>
    +    <path d="M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"></path>
    +  </symbol>
    +  <symbol id="drumstick-bite" viewBox="0 0 512 512">
    +    <title id="drumstick-bite-title">Drumstick with Bite Taken Out</title>
    +    <path d="M462.79 49.57c-66.14-66.09-173.36-66.09-239.5 0C187.81 85.02 160.12 128 160.12 192v85.83l-40.62 40.59c-9.7 9.69-24.04 11.07-36.78 5.98-21.72-8.68-47.42-4.29-65.02 13.29-23.61 23.59-23.61 61.84 0 85.43 15.28 15.27 36.53 19.58 56.14 15.09-4.5 19.6-.18 40.83 15.1 56.1 23.61 23.59 61.88 23.59 85.49 0 17.6-17.58 21.99-43.26 13.31-64.97-5.09-12.73-3.72-27.05 5.99-36.75L234.35 352h85.89c23.2 0 43.57-3.72 61.89-10.03-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.93-14.81-90.25-49.13-124.53z"></path>
    +  </symbol>
    +  <symbol id="dumbbell" viewBox="0 0 640 512">
    +    <title id="dumbbell-title">Dumbbell</title>
    +    <path d="M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="dungeon" viewBox="0 0 512 512">
    +    <title id="dungeon-title">Dungeon</title>
    +    <path d="M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"></path>
    +  </symbol>
    +  <symbol id="edit" viewBox="0 0 576 512">
    +    <title id="edit-title">Edit</title>
    +    <path d="M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"></path>
    +  </symbol>
    +  <symbol id="eject" viewBox="0 0 448 512">
    +    <title id="eject-title">eject</title>
    +    <path d="M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"></path>
    +  </symbol>
    +  <symbol id="ellipsis-h" viewBox="0 0 512 512">
    +    <title id="ellipsis-h-title">Horizontal Ellipsis</title>
    +    <path d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"></path>
    +  </symbol>
    +  <symbol id="ellipsis-v" viewBox="0 0 192 512">
    +    <title id="ellipsis-v-title">Vertical Ellipsis</title>
    +    <path d="M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"></path>
    +  </symbol>
    +  <symbol id="envelope" viewBox="0 0 512 512">
    +    <title id="envelope-title">Envelope</title>
    +    <path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path>
    +  </symbol>
    +  <symbol id="envelope-open" viewBox="0 0 512 512">
    +    <title id="envelope-open-title">Envelope Open</title>
    +    <path d="M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"></path>
    +  </symbol>
    +  <symbol id="envelope-open-text" viewBox="0 0 512 512">
    +    <title id="envelope-open-text-title">Envelope Open-text</title>
    +    <path d="M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"></path>
    +  </symbol>
    +  <symbol id="envelope-square" viewBox="0 0 448 512">
    +    <title id="envelope-square-title">Envelope Square</title>
    +    <path d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"></path>
    +  </symbol>
    +  <symbol id="equals" viewBox="0 0 448 512">
    +    <title id="equals-title">Equals</title>
    +    <path d="M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="eraser" viewBox="0 0 512 512">
    +    <title id="eraser-title">eraser</title>
    +    <path d="M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"></path>
    +  </symbol>
    +  <symbol id="euro-sign" viewBox="0 0 320 512">
    +    <title id="euro-sign-title">Euro Sign</title>
    +    <path d="M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"></path>
    +  </symbol>
    +  <symbol id="exchange-alt" viewBox="0 0 512 512">
    +    <title id="exchange-alt-title">Alternate Exchange</title>
    +    <path d="M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="exclamation" viewBox="0 0 192 512">
    +    <title id="exclamation-title">exclamation</title>
    +    <path d="M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"></path>
    +  </symbol>
    +  <symbol id="exclamation-circle" viewBox="0 0 512 512">
    +    <title id="exclamation-circle-title">Exclamation Circle</title>
    +    <path d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"></path>
    +  </symbol>
    +  <symbol id="exclamation-triangle" viewBox="0 0 576 512">
    +    <title id="exclamation-triangle-title">Exclamation Triangle</title>
    +    <path d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"></path>
    +  </symbol>
    +  <symbol id="expand" viewBox="0 0 448 512">
    +    <title id="expand-title">Expand</title>
    +    <path d="M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"></path>
    +  </symbol>
    +  <symbol id="expand-arrows-alt" viewBox="0 0 448.1 512">
    +    <title id="expand-arrows-alt-title">Alternate Expand Arrows</title>
    +    <path d="M448.1 344v112c0 13.3-10.7 24-24 24h-112c-21.4 0-32.1-25.9-17-41l36.2-36.2L224 295.6 116.8 402.9 153 439c15.1 15.1 4.4 41-17 41H24c-13.3 0-24-10.7-24-24V344c0-21.4 25.9-32.1 41-17l36.2 36.2L184.5 256 77.2 148.7 41 185c-15.1 15.1-41 4.4-41-17V56c0-13.3 10.7-24 24-24h112c21.4 0 32.1 25.9 17 41l-36.2 36.2L224 216.4l107.3-107.3L295.1 73c-15.1-15.1-4.4-41 17-41h112c13.3 0 24 10.7 24 24v112c0 21.4-25.9 32.1-41 17l-36.2-36.2L263.6 256l107.3 107.3 36.2-36.2c15.1-15.2 41-4.5 41 16.9z"></path>
    +  </symbol>
    +  <symbol id="external-link-alt" viewBox="0 0 576 512">
    +    <title id="external-link-alt-title">Alternate External Link</title>
    +    <path d="M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z"></path>
    +  </symbol>
    +  <symbol id="external-link-square-alt" viewBox="0 0 448 512">
    +    <title id="external-link-square-alt-title">Alternate External Link Square</title>
    +    <path d="M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="eye" viewBox="0 0 576 512">
    +    <title id="eye-title">Eye</title>
    +    <path d="M569.354 231.631C512.969 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-75.162 0-136-60.827-136-136 0-75.162 60.826-136 136-136 75.162 0 136 60.826 136 136 0 75.162-60.826 136-136 136zm104-136c0 57.438-46.562 104-104 104s-104-46.562-104-104c0-17.708 4.431-34.379 12.236-48.973l-.001.032c0 23.651 19.173 42.823 42.824 42.823s42.824-19.173 42.824-42.823c0-23.651-19.173-42.824-42.824-42.824l-.032.001C253.621 156.431 270.292 152 288 152c57.438 0 104 46.562 104 104z"></path>
    +  </symbol>
    +  <symbol id="eye-dropper" viewBox="0 0 512 512">
    +    <title id="eye-dropper-title">Eye Dropper</title>
    +    <path d="M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"></path>
    +  </symbol>
    +  <symbol id="eye-slash" viewBox="0 0 576 512">
    +    <title id="eye-slash-title">Eye Slash</title>
    +    <path d="M286.693 391.984l32.579 46.542A333.958 333.958 0 0 1 288 440C168.19 440 63.031 376.051 6.646 280.369a47.999 47.999 0 0 1 0-48.739c24.023-40.766 56.913-75.775 96.024-102.537l57.077 81.539C154.736 224.82 152 240.087 152 256c0 74.736 60.135 135.282 134.693 135.984zm282.661-111.615c-31.667 53.737-78.747 97.46-135.175 125.475l.011.015 41.47 59.2c7.6 10.86 4.96 25.82-5.9 33.42l-13.11 9.18c-10.86 7.6-25.82 4.96-33.42-5.9L100.34 46.94c-7.6-10.86-4.96-25.82 5.9-33.42l13.11-9.18c10.86-7.6 25.82-4.96 33.42 5.9l51.038 72.617C230.68 75.776 258.905 72 288 72c119.81 0 224.969 63.949 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM424 256c0-75.174-60.838-136-136-136-17.939 0-35.056 3.473-50.729 9.772l19.299 27.058c25.869-8.171 55.044-6.163 80.4 7.41h-.03c-23.65 0-42.82 19.17-42.82 42.82 0 23.626 19.147 42.82 42.82 42.82 23.65 0 42.82-19.17 42.82-42.82v-.03c18.462 34.49 16.312 77.914-8.25 110.95v.01l19.314 27.061C411.496 321.2 424 290.074 424 256zM262.014 356.727l-77.53-110.757c-5.014 52.387 29.314 98.354 77.53 110.757z"></path>
    +  </symbol>
    +  <symbol id="fast-backward" viewBox="0 0 512 512">
    +    <title id="fast-backward-title">fast-backward</title>
    +    <path d="M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"></path>
    +  </symbol>
    +  <symbol id="fast-forward" viewBox="0 0 512 512">
    +    <title id="fast-forward-title">fast-forward</title>
    +    <path d="M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"></path>
    +  </symbol>
    +  <symbol id="fax" viewBox="0 0 512 512">
    +    <title id="fax-title">Fax</title>
    +    <path d="M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z"></path>
    +  </symbol>
    +  <symbol id="feather" viewBox="0 0 512 512">
    +    <title id="feather-title">Feather</title>
    +    <path d="M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"></path>
    +  </symbol>
    +  <symbol id="feather-alt" viewBox="0 0 512 512">
    +    <title id="feather-alt-title">Alternate Feather</title>
    +    <path d="M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"></path>
    +  </symbol>
    +  <symbol id="female" viewBox="0 0 256 512">
    +    <title id="female-title">Female</title>
    +    <path d="M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"></path>
    +  </symbol>
    +  <symbol id="fighter-jet" viewBox="0 0 640 512">
    +    <title id="fighter-jet-title">fighter-jet</title>
    +    <path d="M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"></path>
    +  </symbol>
    +  <symbol id="file" viewBox="0 0 384 512">
    +    <title id="file-title">File</title>
    +    <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"></path>
    +  </symbol>
    +  <symbol id="file-alt" viewBox="0 0 384 512">
    +    <title id="file-alt-title">Alternate File</title>
    +    <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"></path>
    +  </symbol>
    +  <symbol id="file-archive" viewBox="0 0 384 512">
    +    <title id="file-archive-title">Archive File</title>
    +    <path d="M224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32V32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6zm32.7-53c0 14.9-14.5 27-32.4 27S96 378 96 363c0-14.9 14.5-27 32.4-27s32.5 12.1 32.5 27zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"></path>
    +  </symbol>
    +  <symbol id="file-audio" viewBox="0 0 384 512">
    +    <title id="file-audio-title">Audio File</title>
    +    <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"></path>
    +  </symbol>
    +  <symbol id="file-code" viewBox="0 0 384 512">
    +    <title id="file-code-title">Code File</title>
    +    <path d="M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"></path>
    +  </symbol>
    +  <symbol id="file-contract" viewBox="0 0 384 512">
    +    <title id="file-contract-title">File Contract</title>
    +    <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"></path>
    +  </symbol>
    +  <symbol id="file-csv" viewBox="0 0 384 512">
    +    <title id="file-csv-title">File CSV</title>
    +    <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"></path>
    +  </symbol>
    +  <symbol id="file-download" viewBox="0 0 384 512">
    +    <title id="file-download-title">File Download</title>
    +    <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"></path>
    +  </symbol>
    +  <symbol id="file-excel" viewBox="0 0 384 512">
    +    <title id="file-excel-title">Excel File</title>
    +    <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"></path>
    +  </symbol>
    +  <symbol id="file-export" viewBox="0 0 576 512">
    +    <title id="file-export-title">File Export</title>
    +    <path d="M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zM192 336v-32c0-8.84 7.16-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.84 0-16-7.16-16-16zm379.05-28.02l-95.7-96.43c-10.06-10.14-27.36-3.01-27.36 11.27V288H384v64h63.99v65.18c0 14.28 17.29 21.41 27.36 11.27l95.7-96.42c6.6-6.66 6.6-17.4 0-24.05z"></path>
    +  </symbol>
    +  <symbol id="file-image" viewBox="0 0 384 512">
    +    <title id="file-image-title">Image File</title>
    +    <path d="M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"></path>
    +  </symbol>
    +  <symbol id="file-import" viewBox="0 0 512 512">
    +    <title id="file-import-title">File Import</title>
    +    <path d="M16 288c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h112v-64H16zm336-152V0H152c-13.3 0-24 10.7-24 24v264h127.99v-65.18c0-14.28 17.29-21.41 27.36-11.27l95.7 96.43c6.6 6.65 6.6 17.39 0 24.04l-95.7 96.42c-10.06 10.14-27.36 3.01-27.36-11.27V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24zm153-31L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"></path>
    +  </symbol>
    +  <symbol id="file-invoice" viewBox="0 0 384 512">
    +    <title id="file-invoice-title">File Invoice</title>
    +    <path d="M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"></path>
    +  </symbol>
    +  <symbol id="file-invoice-dollar" viewBox="0 0 384 512">
    +    <title id="file-invoice-dollar-title">File Invoice with US Dollar</title>
    +    <path d="M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"></path>
    +  </symbol>
    +  <symbol id="file-medical" viewBox="0 0 384 512">
    +    <title id="file-medical-title">Medical File</title>
    +    <path d="M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"></path>
    +  </symbol>
    +  <symbol id="file-medical-alt" viewBox="0 0 448 512">
    +    <title id="file-medical-alt-title">Alternate Medical File</title>
    +    <path d="M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"></path>
    +  </symbol>
    +  <symbol id="file-pdf" viewBox="0 0 384 512">
    +    <title id="file-pdf-title">PDF File</title>
    +    <path d="M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"></path>
    +  </symbol>
    +  <symbol id="file-powerpoint" viewBox="0 0 384 512">
    +    <title id="file-powerpoint-title">Powerpoint File</title>
    +    <path d="M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"></path>
    +  </symbol>
    +  <symbol id="file-prescription" viewBox="0 0 384 512">
    +    <title id="file-prescription-title">File Prescription</title>
    +    <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"></path>
    +  </symbol>
    +  <symbol id="file-signature" viewBox="0 0 576 512">
    +    <title id="file-signature-title">File Signature</title>
    +    <path d="M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"></path>
    +  </symbol>
    +  <symbol id="file-upload" viewBox="0 0 384 512">
    +    <title id="file-upload-title">File Upload</title>
    +    <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"></path>
    +  </symbol>
    +  <symbol id="file-video" viewBox="0 0 384 512">
    +    <title id="file-video-title">Video File</title>
    +    <path d="M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"></path>
    +  </symbol>
    +  <symbol id="file-word" viewBox="0 0 384 512">
    +    <title id="file-word-title">Word File</title>
    +    <path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"></path>
    +  </symbol>
    +  <symbol id="fill" viewBox="0 0 512 512">
    +    <title id="fill-title">Fill</title>
    +    <path d="M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"></path>
    +  </symbol>
    +  <symbol id="fill-drip" viewBox="0 0 576 512">
    +    <title id="fill-drip-title">Fill Drip</title>
    +    <path d="M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"></path>
    +  </symbol>
    +  <symbol id="film" viewBox="0 0 512 512">
    +    <title id="film-title">Film</title>
    +    <path d="M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"></path>
    +  </symbol>
    +  <symbol id="filter" viewBox="0 0 512 512">
    +    <title id="filter-title">Filter</title>
    +    <path d="M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"></path>
    +  </symbol>
    +  <symbol id="fingerprint" viewBox="0 0 512 512">
    +    <title id="fingerprint-title">Fingerprint</title>
    +    <path d="M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"></path>
    +  </symbol>
    +  <symbol id="fire" viewBox="0 0 384 512">
    +    <title id="fire-title">fire</title>
    +    <path d="M216 23.858c0-23.802-30.653-32.765-44.149-13.038C48 191.851 224 200 224 288c0 35.629-29.114 64.458-64.85 63.994C123.98 351.538 96 322.22 96 287.046v-85.51c0-21.703-26.471-32.225-41.432-16.504C27.801 213.158 0 261.332 0 320c0 105.869 86.131 192 192 192s192-86.131 192-192c0-170.29-168-193.003-168-296.142z"></path>
    +  </symbol>
    +  <symbol id="fire-extinguisher" viewBox="0 0 448 512">
    +    <title id="fire-extinguisher-title">fire-extinguisher</title>
    +    <path d="M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="first-aid" viewBox="0 0 576 512">
    +    <title id="first-aid-title">First Aid</title>
    +    <path d="M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="fish" viewBox="0 0 576 512">
    +    <title id="fish-title">Fish</title>
    +    <path d="M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"></path>
    +  </symbol>
    +  <symbol id="fist-raised" viewBox="0 0 384 512">
    +    <title id="fist-raised-title">Raised Fist</title>
    +    <path d="M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"></path>
    +  </symbol>
    +  <symbol id="flag" viewBox="0 0 512 512">
    +    <title id="flag-title">flag</title>
    +    <path d="M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"></path>
    +  </symbol>
    +  <symbol id="flag-checkered" viewBox="0 0 512 512">
    +    <title id="flag-checkered-title">flag-checkered</title>
    +    <path d="M466.515 66.928C487.731 57.074 512 72.551 512 95.944v243.1c0 10.526-5.161 20.407-13.843 26.358-35.837 24.564-74.335 40.858-122.505 40.858-67.373 0-111.63-34.783-165.217-34.783-50.853 0-86.124 10.058-114.435 22.122V488c0 13.255-10.745 24-24 24H56c-13.255 0-24-10.745-24-24V101.945C17.497 91.825 8 75.026 8 56 8 24.296 34.345-1.254 66.338.048c28.468 1.158 51.779 23.968 53.551 52.404.52 8.342-.81 16.31-3.586 23.562C137.039 68.384 159.393 64 184.348 64c67.373 0 111.63 34.783 165.217 34.783 40.496 0 82.612-15.906 116.95-31.855zM96 134.63v70.49c29-10.67 51.18-17.83 73.6-20.91v-71.57c-23.5 2.17-40.44 9.79-73.6 21.99zm220.8 9.19c-26.417-4.672-49.886-13.979-73.6-21.34v67.42c24.175 6.706 47.566 16.444 73.6 22.31v-68.39zm-147.2 40.39v70.04c32.796-2.978 53.91-.635 73.6 3.8V189.9c-25.247-7.035-46.581-9.423-73.6-5.69zm73.6 142.23c26.338 4.652 49.732 13.927 73.6 21.34v-67.41c-24.277-6.746-47.54-16.45-73.6-22.32v68.39zM96 342.1c23.62-8.39 47.79-13.84 73.6-16.56v-71.29c-26.11 2.35-47.36 8.04-73.6 17.36v70.49zm368-221.6c-21.3 8.85-46.59 17.64-73.6 22.47v71.91c27.31-4.36 50.03-14.1 73.6-23.89V120.5zm0 209.96v-70.49c-22.19 14.2-48.78 22.61-73.6 26.02v71.58c25.07-2.38 48.49-11.04 73.6-27.11zM316.8 212.21v68.16c25.664 7.134 46.616 9.342 73.6 5.62v-71.11c-25.999 4.187-49.943 2.676-73.6-2.67z"></path>
    +  </symbol>
    +  <symbol id="flask" viewBox="0 0 448 512">
    +    <title id="flask-title">Flask</title>
    +    <path d="M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"></path>
    +  </symbol>
    +  <symbol id="flushed" viewBox="0 0 496 512">
    +    <title id="flushed-title">Flushed Face</title>
    +    <path d="M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"></path>
    +  </symbol>
    +  <symbol id="folder" viewBox="0 0 512 512">
    +    <title id="folder-title">Folder</title>
    +    <path d="M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="folder-minus" viewBox="0 0 512 512">
    +    <title id="folder-minus-title">Folder Minus</title>
    +    <path d="M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"></path>
    +  </symbol>
    +  <symbol id="folder-open" viewBox="0 0 576 512">
    +    <title id="folder-open-title">Folder Open</title>
    +    <path d="M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"></path>
    +  </symbol>
    +  <symbol id="folder-plus" viewBox="0 0 512 512">
    +    <title id="folder-plus-title">Folder Plus</title>
    +    <path d="M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z"></path>
    +  </symbol>
    +  <symbol id="font" viewBox="0 0 448 512">
    +    <title id="font-title">font</title>
    +    <path d="M152 416h-24.013l26.586-80.782H292.8L319.386 416H296c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-26.739L275.495 42.746A16 16 0 0 0 260.382 32h-72.766a16 16 0 0 0-15.113 10.746L42.739 416H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm64.353-271.778c4.348-15.216 6.61-28.156 7.586-34.644.839 6.521 2.939 19.476 7.727 34.706l41.335 124.006h-98.619l41.971-124.068z"></path>
    +  </symbol>
    +  <symbol id="font-awesome-logo-full" viewBox="0 0 3992 512">
    +    <title id="font-awesome-logo-full-title">Font Awesome Full Logo</title>
    +    <path d="M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"></path>
    +  </symbol>
    +  <symbol id="football-ball" viewBox="0 0 496 512">
    +    <title id="football-ball-title">Football Ball</title>
    +    <path d="M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"></path>
    +  </symbol>
    +  <symbol id="forward" viewBox="0 0 512 512">
    +    <title id="forward-title">forward</title>
    +    <path d="M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"></path>
    +  </symbol>
    +  <symbol id="frog" viewBox="0 0 576 512">
    +    <title id="frog-title">Frog</title>
    +    <path d="M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"></path>
    +  </symbol>
    +  <symbol id="frown" viewBox="0 0 496 512">
    +    <title id="frown-title">Frowning Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"></path>
    +  </symbol>
    +  <symbol id="frown-open" viewBox="0 0 496 512">
    +    <title id="frown-open-title">Frowning Face With Open Mouth</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="funnel-dollar" viewBox="0 0 640 512">
    +    <title id="funnel-dollar-title">Funnel Dollar</title>
    +    <path d="M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"></path>
    +  </symbol>
    +  <symbol id="futbol" viewBox="0 0 512 512">
    +    <title id="futbol-title">Futbol</title>
    +    <path d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"></path>
    +  </symbol>
    +  <symbol id="gamepad" viewBox="0 0 640 512">
    +    <title id="gamepad-title">Gamepad</title>
    +    <path d="M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"></path>
    +  </symbol>
    +  <symbol id="gas-pump" viewBox="0 0 512 512">
    +    <title id="gas-pump-title">Gas Pump</title>
    +    <path d="M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"></path>
    +  </symbol>
    +  <symbol id="gavel" viewBox="0 0 512 512">
    +    <title id="gavel-title">Gavel</title>
    +    <path d="M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"></path>
    +  </symbol>
    +  <symbol id="gem" viewBox="0 0 576 512">
    +    <title id="gem-title">Gem</title>
    +    <path d="M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"></path>
    +  </symbol>
    +  <symbol id="genderless" viewBox="0 0 288 512">
    +    <title id="genderless-title">Genderless</title>
    +    <path d="M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"></path>
    +  </symbol>
    +  <symbol id="ghost" viewBox="0 0 384 512">
    +    <title id="ghost-title">Ghost</title>
    +    <path d="M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="gift" viewBox="0 0 512 512">
    +    <title id="gift-title">gift</title>
    +    <path d="M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm448-288h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40zm-72 320h160c17.7 0 32-14.3 32-32V320H288v160z"></path>
    +  </symbol>
    +  <symbol id="glass-martini" viewBox="0 0 512 512">
    +    <title id="glass-martini-title">Martini Glass</title>
    +    <path d="M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"></path>
    +  </symbol>
    +  <symbol id="glass-martini-alt" viewBox="0 0 512 512">
    +    <title id="glass-martini-alt-title">Alternate Glass Martini</title>
    +    <path d="M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"></path>
    +  </symbol>
    +  <symbol id="glasses" viewBox="0 0 576 512">
    +    <title id="glasses-title">Glasses</title>
    +    <path d="M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"></path>
    +  </symbol>
    +  <symbol id="globe" viewBox="0 0 496 512">
    +    <title id="globe-title">Globe</title>
    +    <path d="M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"></path>
    +  </symbol>
    +  <symbol id="globe-africa" viewBox="0 0 496 512">
    +    <title id="globe-africa-title">Globe with Africa shown</title>
    +    <path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"></path>
    +  </symbol>
    +  <symbol id="globe-americas" viewBox="0 0 496 512">
    +    <title id="globe-americas-title">Globe with Americas shown</title>
    +    <path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"></path>
    +  </symbol>
    +  <symbol id="globe-asia" viewBox="0 0 496 512">
    +    <title id="globe-asia-title">Globe with Asia shown</title>
    +    <path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"></path>
    +  </symbol>
    +  <symbol id="golf-ball" viewBox="0 0 416 512">
    +    <title id="golf-ball-title">Golf Ball</title>
    +    <path d="M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"></path>
    +  </symbol>
    +  <symbol id="gopuram" viewBox="0 0 512 512">
    +    <title id="gopuram-title">Gopuram</title>
    +    <path d="M496 352h-16V240c0-8.84-7.16-16-16-16h-16v-80c0-8.84-7.16-16-16-16h-16V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16S96 7.16 96 16v112H80c-8.84 0-16 7.16-16 16v80H48c-8.84 0-16 7.16-16 16v112H16c-8.84 0-16 7.16-16 16v128c0 8.84 7.16 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.84 0 16-7.16 16-16V368c0-8.84-7.16-16-16-16zm-272 0v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64h-64zm8-128v-48c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v48h-48z"></path>
    +  </symbol>
    +  <symbol id="graduation-cap" viewBox="0 0 640 512">
    +    <title id="graduation-cap-title">Graduation Cap</title>
    +    <path d="M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"></path>
    +  </symbol>
    +  <symbol id="greater-than" viewBox="0 0 384 512">
    +    <title id="greater-than-title">Greater Than</title>
    +    <path d="M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"></path>
    +  </symbol>
    +  <symbol id="greater-than-equal" viewBox="0 0 448 512">
    +    <title id="greater-than-equal-title">Greater Than Equal To</title>
    +    <path d="M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="grimace" viewBox="0 0 496 512">
    +    <title id="grimace-title">Grimacing Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"></path>
    +  </symbol>
    +  <symbol id="grin" viewBox="0 0 496 512">
    +    <title id="grin-title">Grinning Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"></path>
    +  </symbol>
    +  <symbol id="grin-alt" viewBox="0 0 496 512">
    +    <title id="grin-alt-title">Alternate Grinning Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"></path>
    +  </symbol>
    +  <symbol id="grin-beam" viewBox="0 0 496 512">
    +    <title id="grin-beam-title">Grinning Face With Smiling Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"></path>
    +  </symbol>
    +  <symbol id="grin-beam-sweat" viewBox="0 0 504 512">
    +    <title id="grin-beam-sweat-title">Grinning Face With Sweat</title>
    +    <path d="M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"></path>
    +  </symbol>
    +  <symbol id="grin-hearts" viewBox="0 0 496 512">
    +    <title id="grin-hearts-title">Smiling Face With Heart-Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"></path>
    +  </symbol>
    +  <symbol id="grin-squint" viewBox="0 0 496 512">
    +    <title id="grin-squint-title">Grinning Squinting Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"></path>
    +  </symbol>
    +  <symbol id="grin-squint-tears" viewBox="0 0 512 512">
    +    <title id="grin-squint-tears-title">Rolling on the Floor Laughing</title>
    +    <path d="M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"></path>
    +  </symbol>
    +  <symbol id="grin-stars" viewBox="0 0 496 512">
    +    <title id="grin-stars-title">Star-Struck</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"></path>
    +  </symbol>
    +  <symbol id="grin-tears" viewBox="0 0 640 512">
    +    <title id="grin-tears-title">Face With Tears of Joy</title>
    +    <path d="M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"></path>
    +  </symbol>
    +  <symbol id="grin-tongue" viewBox="0 0 496 512">
    +    <title id="grin-tongue-title">Face With Tongue</title>
    +    <path d="M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"></path>
    +  </symbol>
    +  <symbol id="grin-tongue-squint" viewBox="0 0 496 512">
    +    <title id="grin-tongue-squint-title">Squinting Face With Tongue</title>
    +    <path d="M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"></path>
    +  </symbol>
    +  <symbol id="grin-tongue-wink" viewBox="0 0 496 512">
    +    <title id="grin-tongue-wink-title">Winking Face With Tongue</title>
    +    <path d="M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"></path>
    +  </symbol>
    +  <symbol id="grin-wink" viewBox="0 0 496 512">
    +    <title id="grin-wink-title">Grinning Winking Face</title>
    +    <path d="M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"></path>
    +  </symbol>
    +  <symbol id="grip-horizontal" viewBox="0 0 448 512">
    +    <title id="grip-horizontal-title">Grip Horizontal</title>
    +    <path d="M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="grip-vertical" viewBox="0 0 320 512">
    +    <title id="grip-vertical-title">Grip Vertical</title>
    +    <path d="M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="h-square" viewBox="0 0 448 512">
    +    <title id="h-square-title">H Square</title>
    +    <path d="M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="hammer" viewBox="0 0 576 512">
    +    <title id="hammer-title">Hammer</title>
    +    <path d="M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"></path>
    +  </symbol>
    +  <symbol id="hamsa" viewBox="0 0 512 512">
    +    <title id="hamsa-title">Hamsa</title>
    +    <path d="M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="hand-holding" viewBox="0 0 576 512">
    +    <title id="hand-holding-title">Hand Holding</title>
    +    <path d="M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"></path>
    +  </symbol>
    +  <symbol id="hand-holding-heart" viewBox="0 0 576 512">
    +    <title id="hand-holding-heart-title">Hand Holding Heart</title>
    +    <path d="M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"></path>
    +  </symbol>
    +  <symbol id="hand-holding-usd" viewBox="0 0 544 512">
    +    <title id="hand-holding-usd-title">Hand Holding US Dollar</title>
    +    <path d="M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z"></path>
    +  </symbol>
    +  <symbol id="hand-lizard" viewBox="0 0 576 512">
    +    <title id="hand-lizard-title">Lizard (Hand)</title>
    +    <path d="M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"></path>
    +  </symbol>
    +  <symbol id="hand-paper" viewBox="0 0 448 512">
    +    <title id="hand-paper-title">Paper (Hand)</title>
    +    <path d="M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"></path>
    +  </symbol>
    +  <symbol id="hand-peace" viewBox="0 0 448 512">
    +    <title id="hand-peace-title">Peace (Hand)</title>
    +    <path d="M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"></path>
    +  </symbol>
    +  <symbol id="hand-point-down" viewBox="0 0 384 512">
    +    <title id="hand-point-down-title">Hand Pointing Down</title>
    +    <path d="M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"></path>
    +  </symbol>
    +  <symbol id="hand-point-left" viewBox="0 0 512 512">
    +    <title id="hand-point-left-title">Hand Pointing Left</title>
    +    <path d="M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"></path>
    +  </symbol>
    +  <symbol id="hand-point-right" viewBox="0 0 512 512">
    +    <title id="hand-point-right-title">Hand Pointing Right</title>
    +    <path d="M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"></path>
    +  </symbol>
    +  <symbol id="hand-point-up" viewBox="0 0 384 512">
    +    <title id="hand-point-up-title">Hand Pointing Up</title>
    +    <path d="M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"></path>
    +  </symbol>
    +  <symbol id="hand-pointer" viewBox="0 0 448 512">
    +    <title id="hand-pointer-title">Pointer (Hand)</title>
    +    <path d="M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"></path>
    +  </symbol>
    +  <symbol id="hand-rock" viewBox="0 0 512 512">
    +    <title id="hand-rock-title">Rock (Hand)</title>
    +    <path d="M512 128.79c0-26.322-20.861-48.344-47.18-48.783C437.935 79.558 416 101.217 416 128h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C333.935 47.558 312 69.217 312 96v32h-8V80.79c0-26.322-20.861-48.344-47.18-48.783C229.935 31.558 208 53.217 208 80v48h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C125.935 47.558 104 69.217 104 96v136l-8-7.111V176.79c0-26.322-20.861-48.344-47.18-48.783C21.935 127.558 0 149.217 0 176v66.445a95.998 95.998 0 0 0 32.221 71.751l111.668 99.261A47.999 47.999 0 0 1 160 449.333V456c0 13.255 10.745 24 24 24h240c13.255 0 24-10.745 24-24v-2.921a96.01 96.01 0 0 1 7.523-37.254l48.954-116.265A96.002 96.002 0 0 0 512 262.306V128.79z"></path>
    +  </symbol>
    +  <symbol id="hand-scissors" viewBox="0 0 512 512">
    +    <title id="hand-scissors-title">Scissors (Hand)</title>
    +    <path d="M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"></path>
    +  </symbol>
    +  <symbol id="hand-spock" viewBox="0 0 512 512">
    +    <title id="hand-spock-title">Spock (Hand)</title>
    +    <path d="M10.872 316.585c15.139-16.086 40.454-16.854 56.543-1.713L128 371.893v-79.405L88.995 120.865c-4.896-21.542 8.598-42.974 30.14-47.87 21.549-4.894 42.975 8.599 47.87 30.141L201.747 256h9.833L164.016 48.966c-4.946-21.531 8.498-42.994 30.028-47.94 21.532-4.95 42.994 8.498 47.94 30.028L293.664 256h15.105l48.425-193.702c5.357-21.432 27.075-34.462 48.507-29.104 21.432 5.358 34.463 27.075 29.104 48.507L391.231 256h11.08l30.768-129.265c5.117-21.491 26.685-34.768 48.177-29.647 21.491 5.117 34.765 26.686 29.647 48.177l-36.292 152.467A96.024 96.024 0 0 0 472 319.967v42.102a96.002 96.002 0 0 1-3.96 27.287l-26.174 88.287C435.825 498.022 417.101 512 395.846 512H179.172a48.002 48.002 0 0 1-32.898-13.046L12.585 373.128c-16.087-15.141-16.853-40.456-1.713-56.543z"></path>
    +  </symbol>
    +  <symbol id="hands" viewBox="0 0 640 512">
    +    <title id="hands-title">Hands</title>
    +    <path d="M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="hands-helping" viewBox="0 0 640 512">
    +    <title id="hands-helping-title">Helping Hands</title>
    +    <path d="M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"></path>
    +  </symbol>
    +  <symbol id="handshake" viewBox="0 0 640 512">
    +    <title id="handshake-title">Handshake</title>
    +    <path d="M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"></path>
    +  </symbol>
    +  <symbol id="hanukiah" viewBox="0 0 640 512">
    +    <title id="hanukiah-title">Hanukiah</title>
    +    <path d="M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"></path>
    +  </symbol>
    +  <symbol id="hashtag" viewBox="0 0 448 512">
    +    <title id="hashtag-title">Hashtag</title>
    +    <path d="M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"></path>
    +  </symbol>
    +  <symbol id="hat-wizard" viewBox="0 0 512 512">
    +    <title id="hat-wizard-title">Wizard&#x27;s Hat</title>
    +    <path d="M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"></path>
    +  </symbol>
    +  <symbol id="haykal" viewBox="0 0 512 512">
    +    <title id="haykal-title">Haykal</title>
    +    <path d="M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"></path>
    +  </symbol>
    +  <symbol id="hdd" viewBox="0 0 576 512">
    +    <title id="hdd-title">HDD</title>
    +    <path d="M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="heading" viewBox="0 0 512 512">
    +    <title id="heading-title">heading</title>
    +    <path d="M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z"></path>
    +  </symbol>
    +  <symbol id="headphones" viewBox="0 0 512 512">
    +    <title id="headphones-title">headphones</title>
    +    <path d="M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"></path>
    +  </symbol>
    +  <symbol id="headphones-alt" viewBox="0 0 512 512">
    +    <title id="headphones-alt-title">Alternate Headphones</title>
    +    <path d="M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"></path>
    +  </symbol>
    +  <symbol id="headset" viewBox="0 0 512 512">
    +    <title id="headset-title">Headset</title>
    +    <path d="M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"></path>
    +  </symbol>
    +  <symbol id="heart" viewBox="0 0 512 512">
    +    <title id="heart-title">Heart</title>
    +    <path d="M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"></path>
    +  </symbol>
    +  <symbol id="heartbeat" viewBox="0 0 512 512">
    +    <title id="heartbeat-title">Heartbeat</title>
    +    <path d="M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"></path>
    +  </symbol>
    +  <symbol id="helicopter" viewBox="0 0 640 512">
    +    <title id="helicopter-title">Helicopter</title>
    +    <path d="M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"></path>
    +  </symbol>
    +  <symbol id="highlighter" viewBox="0 0 544 512">
    +    <title id="highlighter-title">Highlighter</title>
    +    <path d="M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"></path>
    +  </symbol>
    +  <symbol id="hiking" viewBox="0 0 384 512">
    +    <title id="hiking-title">Hiking</title>
    +    <path d="M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"></path>
    +  </symbol>
    +  <symbol id="hippo" viewBox="0 0 640 512">
    +    <title id="hippo-title">Hippo</title>
    +    <path d="M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="history" viewBox="0 0 512 512">
    +    <title id="history-title">History</title>
    +    <path d="M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"></path>
    +  </symbol>
    +  <symbol id="hockey-puck" viewBox="0 0 512 512">
    +    <title id="hockey-puck-title">Hockey Puck</title>
    +    <path d="M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"></path>
    +  </symbol>
    +  <symbol id="home" viewBox="0 0 576 512">
    +    <title id="home-title">home</title>
    +    <path d="M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z"></path>
    +  </symbol>
    +  <symbol id="horse" viewBox="0 0 576 512">
    +    <title id="horse-title">Horse</title>
    +    <path d="M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="hospital" viewBox="0 0 448 512">
    +    <title id="hospital-title">hospital</title>
    +    <path d="M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"></path>
    +  </symbol>
    +  <symbol id="hospital-alt" viewBox="0 0 576 512">
    +    <title id="hospital-alt-title">Alternate Hospital</title>
    +    <path d="M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"></path>
    +  </symbol>
    +  <symbol id="hospital-symbol" viewBox="0 0 512 512">
    +    <title id="hospital-symbol-title">Hospital Symbol</title>
    +    <path d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"></path>
    +  </symbol>
    +  <symbol id="hot-tub" viewBox="0 0 512 512">
    +    <title id="hot-tub-title">Hot Tub</title>
    +    <path d="M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"></path>
    +  </symbol>
    +  <symbol id="hotel" viewBox="0 0 576 512">
    +    <title id="hotel-title">Hotel</title>
    +    <path d="M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"></path>
    +  </symbol>
    +  <symbol id="hourglass" viewBox="0 0 384 512">
    +    <title id="hourglass-title">Hourglass</title>
    +    <path d="M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"></path>
    +  </symbol>
    +  <symbol id="hourglass-end" viewBox="0 0 384 512">
    +    <title id="hourglass-end-title">Hourglass End</title>
    +    <path d="M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"></path>
    +  </symbol>
    +  <symbol id="hourglass-half" viewBox="0 0 384 512">
    +    <title id="hourglass-half-title">Hourglass Half</title>
    +    <path d="M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"></path>
    +  </symbol>
    +  <symbol id="hourglass-start" viewBox="0 0 384 512">
    +    <title id="hourglass-start-title">Hourglass Start</title>
    +    <path d="M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"></path>
    +  </symbol>
    +  <symbol id="house-damage" viewBox="0 0 576 512">
    +    <title id="house-damage-title">House Damage</title>
    +    <path d="M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"></path>
    +  </symbol>
    +  <symbol id="hryvnia" viewBox="0 0 384 512">
    +    <title id="hryvnia-title">Hryvnia</title>
    +    <path d="M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"></path>
    +  </symbol>
    +  <symbol id="i-cursor" viewBox="0 0 256 512">
    +    <title id="i-cursor-title">I Beam Cursor</title>
    +    <path d="M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"></path>
    +  </symbol>
    +  <symbol id="id-badge" viewBox="0 0 384 512">
    +    <title id="id-badge-title">Identification Badge</title>
    +    <path d="M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"></path>
    +  </symbol>
    +  <symbol id="id-card" viewBox="0 0 576 512">
    +    <title id="id-card-title">Identification Card</title>
    +    <path d="M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"></path>
    +  </symbol>
    +  <symbol id="id-card-alt" viewBox="0 0 576 512">
    +    <title id="id-card-alt-title">Alternate Identification Card</title>
    +    <path d="M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"></path>
    +  </symbol>
    +  <symbol id="image" viewBox="0 0 512 512">
    +    <title id="image-title">Image</title>
    +    <path d="M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"></path>
    +  </symbol>
    +  <symbol id="images" viewBox="0 0 576 512">
    +    <title id="images-title">Images</title>
    +    <path d="M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"></path>
    +  </symbol>
    +  <symbol id="inbox" viewBox="0 0 576 512">
    +    <title id="inbox-title">inbox</title>
    +    <path d="M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"></path>
    +  </symbol>
    +  <symbol id="indent" viewBox="0 0 448 512">
    +    <title id="indent-title">Indent</title>
    +    <path d="M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm176 144h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm-52.687-111.313l-96-95.984C17.266 138.652 0 145.776 0 160.016v191.975c0 14.329 17.325 21.304 27.313 11.313l96-95.992c6.249-6.247 6.249-16.377 0-22.625z"></path>
    +  </symbol>
    +  <symbol id="industry" viewBox="0 0 512 512">
    +    <title id="industry-title">Industry</title>
    +    <path d="M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"></path>
    +  </symbol>
    +  <symbol id="infinity" viewBox="0 0 640 512">
    +    <title id="infinity-title">Infinity</title>
    +    <path d="M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"></path>
    +  </symbol>
    +  <symbol id="info" viewBox="0 0 192 512">
    +    <title id="info-title">Info</title>
    +    <path d="M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"></path>
    +  </symbol>
    +  <symbol id="info-circle" viewBox="0 0 512 512">
    +    <title id="info-circle-title">Info Circle</title>
    +    <path d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"></path>
    +  </symbol>
    +  <symbol id="italic" viewBox="0 0 320 512">
    +    <title id="italic-title">italic</title>
    +    <path d="M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z"></path>
    +  </symbol>
    +  <symbol id="jedi" viewBox="0 0 544 512">
    +    <title id="jedi-title">Jedi</title>
    +    <path d="M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z"></path>
    +  </symbol>
    +  <symbol id="joint" viewBox="0 0 640 512">
    +    <title id="joint-title">Joint</title>
    +    <path d="M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="journal-whills" viewBox="0 0 448 512">
    +    <title id="journal-whills-title">Journal of the Whills</title>
    +    <path d="M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"></path>
    +  </symbol>
    +  <symbol id="kaaba" viewBox="0 0 576 512">
    +    <title id="kaaba-title">Kaaba</title>
    +    <path d="M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"></path>
    +  </symbol>
    +  <symbol id="key" viewBox="0 0 512 512">
    +    <title id="key-title">key</title>
    +    <path d="M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"></path>
    +  </symbol>
    +  <symbol id="keyboard" viewBox="0 0 576 512">
    +    <title id="keyboard-title">Keyboard</title>
    +    <path d="M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"></path>
    +  </symbol>
    +  <symbol id="khanda" viewBox="0 0 512 512">
    +    <title id="khanda-title">Khanda</title>
    +    <path d="M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"></path>
    +  </symbol>
    +  <symbol id="kiss" viewBox="0 0 496 512">
    +    <title id="kiss-title">Kissing Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="kiss-beam" viewBox="0 0 496 512">
    +    <title id="kiss-beam-title">Kissing Face With Smiling Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"></path>
    +  </symbol>
    +  <symbol id="kiss-wink-heart" viewBox="0 0 504 512">
    +    <title id="kiss-wink-heart-title">Face Blowing a Kiss</title>
    +    <path d="M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"></path>
    +  </symbol>
    +  <symbol id="kiwi-bird" viewBox="0 0 576 512">
    +    <title id="kiwi-bird-title">Kiwi Bird</title>
    +    <path d="M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"></path>
    +  </symbol>
    +  <symbol id="landmark" viewBox="0 0 512 512">
    +    <title id="landmark-title">Landmark</title>
    +    <path d="M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="language" viewBox="0 0 640 512">
    +    <title id="language-title">Language</title>
    +    <path d="M304 416H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h280v320zm-120.676-72.622A12 12 0 0 0 194.839 352h22.863c8.22 0 14.007-8.078 11.362-15.861L171.61 167.085a12 12 0 0 0-11.362-8.139h-32.489a12.001 12.001 0 0 0-11.362 8.139L58.942 336.139C56.297 343.922 62.084 352 70.304 352h22.805a12 12 0 0 0 11.535-8.693l9.118-31.807h60.211l9.351 31.878zm-39.051-140.42s4.32 21.061 7.83 33.21l10.8 37.531h-38.07l11.07-37.531c3.51-12.15 7.83-33.21 7.83-33.21h.54zM616 416H336V96h280c13.255 0 24 10.745 24 24v272c0 13.255-10.745 24-24 24zm-36-228h-64v-16c0-6.627-5.373-12-12-12h-16c-6.627 0-12 5.373-12 12v16h-64c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h114.106c-6.263 14.299-16.518 28.972-30.023 43.206-6.56-6.898-12.397-13.91-17.365-20.933-3.639-5.144-10.585-6.675-15.995-3.446l-7.28 4.346-6.498 3.879c-5.956 3.556-7.693 11.421-3.735 17.117 6.065 8.729 13.098 17.336 20.984 25.726-8.122 6.226-16.841 12.244-26.103 17.964-5.521 3.41-7.381 10.556-4.162 16.19l7.941 13.896c3.362 5.883 10.935 7.826 16.706 4.276 12.732-7.831 24.571-16.175 35.443-24.891 10.917 8.761 22.766 17.102 35.396 24.881 5.774 3.556 13.353 1.618 16.717-4.27l7.944-13.903c3.213-5.623 1.37-12.76-4.135-16.171a312.737 312.737 0 0 1-26.06-18.019c21.024-22.425 35.768-46.289 42.713-69.85H580c6.627 0 12-5.373 12-12v-16c0-6.625-5.373-11.998-12-11.998z"></path>
    +  </symbol>
    +  <symbol id="laptop" viewBox="0 0 640 512">
    +    <title id="laptop-title">Laptop</title>
    +    <path d="M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"></path>
    +  </symbol>
    +  <symbol id="laptop-code" viewBox="0 0 640 512">
    +    <title id="laptop-code-title">Laptop Code</title>
    +    <path d="M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"></path>
    +  </symbol>
    +  <symbol id="laugh" viewBox="0 0 496 512">
    +    <title id="laugh-title">Grinning Face With Big Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"></path>
    +  </symbol>
    +  <symbol id="laugh-beam" viewBox="0 0 496 512">
    +    <title id="laugh-beam-title">Laugh Face with Beaming Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"></path>
    +  </symbol>
    +  <symbol id="laugh-squint" viewBox="0 0 496 512">
    +    <title id="laugh-squint-title">Laughing Squinting Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"></path>
    +  </symbol>
    +  <symbol id="laugh-wink" viewBox="0 0 496 512">
    +    <title id="laugh-wink-title">Laughing Winking Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"></path>
    +  </symbol>
    +  <symbol id="layer-group" viewBox="0 0 512 512">
    +    <title id="layer-group-title">Layer Group</title>
    +    <path d="M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"></path>
    +  </symbol>
    +  <symbol id="leaf" viewBox="0 0 576 512">
    +    <title id="leaf-title">leaf</title>
    +    <path d="M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"></path>
    +  </symbol>
    +  <symbol id="lemon" viewBox="0 0 512 512">
    +    <title id="lemon-title">Lemon</title>
    +    <path d="M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"></path>
    +  </symbol>
    +  <symbol id="less-than" viewBox="0 0 384 512">
    +    <title id="less-than-title">Less Than</title>
    +    <path d="M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"></path>
    +  </symbol>
    +  <symbol id="less-than-equal" viewBox="0 0 448 512">
    +    <title id="less-than-equal-title">Less Than Equal To</title>
    +    <path d="M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="level-down-alt" viewBox="0 0 320 512">
    +    <title id="level-down-alt-title">Alternate Level Down</title>
    +    <path d="M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"></path>
    +  </symbol>
    +  <symbol id="level-up-alt" viewBox="0 0 320 512">
    +    <title id="level-up-alt-title">Alternate Level Up</title>
    +    <path d="M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"></path>
    +  </symbol>
    +  <symbol id="life-ring" viewBox="0 0 512 512">
    +    <title id="life-ring-title">Life Ring</title>
    +    <path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"></path>
    +  </symbol>
    +  <symbol id="lightbulb" viewBox="0 0 352 512">
    +    <title id="lightbulb-title">Lightbulb</title>
    +    <path d="M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="link" viewBox="0 0 512 512">
    +    <title id="link-title">Link</title>
    +    <path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path>
    +  </symbol>
    +  <symbol id="lira-sign" viewBox="0 0 384 512">
    +    <title id="lira-sign-title">Turkish Lira Sign</title>
    +    <path d="M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"></path>
    +  </symbol>
    +  <symbol id="list" viewBox="0 0 512 512">
    +    <title id="list-title">List</title>
    +    <path d="M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z"></path>
    +  </symbol>
    +  <symbol id="list-alt" viewBox="0 0 512 512">
    +    <title id="list-alt-title">Alternate List</title>
    +    <path d="M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"></path>
    +  </symbol>
    +  <symbol id="list-ol" viewBox="0 0 512 512">
    +    <title id="list-ol-title">list-ol</title>
    +    <path d="M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path>
    +  </symbol>
    +  <symbol id="list-ul" viewBox="0 0 512 512">
    +    <title id="list-ul-title">list-ul</title>
    +    <path d="M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path>
    +  </symbol>
    +  <symbol id="location-arrow" viewBox="0 0 512 512">
    +    <title id="location-arrow-title">location-arrow</title>
    +    <path d="M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"></path>
    +  </symbol>
    +  <symbol id="lock" viewBox="0 0 448 512">
    +    <title id="lock-title">lock</title>
    +    <path d="M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"></path>
    +  </symbol>
    +  <symbol id="lock-open" viewBox="0 0 576 512">
    +    <title id="lock-open-title">Lock Open</title>
    +    <path d="M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"></path>
    +  </symbol>
    +  <symbol id="long-arrow-alt-down" viewBox="0 0 256 512">
    +    <title id="long-arrow-alt-down-title">Alternate Long Arrow Down</title>
    +    <path d="M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"></path>
    +  </symbol>
    +  <symbol id="long-arrow-alt-left" viewBox="0 0 448 512">
    +    <title id="long-arrow-alt-left-title">Alternate Long Arrow Left</title>
    +    <path d="M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"></path>
    +  </symbol>
    +  <symbol id="long-arrow-alt-right" viewBox="0 0 448 512">
    +    <title id="long-arrow-alt-right-title">Alternate Long Arrow Right</title>
    +    <path d="M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"></path>
    +  </symbol>
    +  <symbol id="long-arrow-alt-up" viewBox="0 0 256 512">
    +    <title id="long-arrow-alt-up-title">Alternate Long Arrow Up</title>
    +    <path d="M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"></path>
    +  </symbol>
    +  <symbol id="low-vision" viewBox="0 0 576 512">
    +    <title id="low-vision-title">Low Vision</title>
    +    <path d="M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"></path>
    +  </symbol>
    +  <symbol id="luggage-cart" viewBox="0 0 640 512">
    +    <title id="luggage-cart-title">Luggage Cart</title>
    +    <path d="M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"></path>
    +  </symbol>
    +  <symbol id="magic" viewBox="0 0 512 512">
    +    <title id="magic-title">magic</title>
    +    <path d="M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"></path>
    +  </symbol>
    +  <symbol id="magnet" viewBox="0 0 512.1 512">
    +    <title id="magnet-title">magnet</title>
    +    <path d="M164.1 160H12c-6.6 0-12-5.4-12-12V68c0-19.9 16.1-36 36-36h104c19.9 0 36 16.1 36 36v80c.1 6.6-5.3 12-11.9 12zm348-12V67.9c0-19.9-16.1-36-36-36h-104c-19.9 0-36 16.1-36 36v80c0 6.6 5.4 12 12 12h152c6.6.1 12-5.3 12-11.9zm-164 44c-6.6 0-12 5.4-12 12v52c0 128.1-160 127.9-160 0v-52c0-6.6-5.4-12-12-12h-152c-6.7 0-12 5.4-12 12.1.1 21.4.6 40.3 0 53.3C.1 408 136.3 504 256.9 504 377.5 504 512 408 512 257.3c-.6-12.8-.2-33 0-53.2 0-6.7-5.3-12.1-12-12.1H348.1z"></path>
    +  </symbol>
    +  <symbol id="mail-bulk" viewBox="0 0 576 512">
    +    <title id="mail-bulk-title">Mail Bulk</title>
    +    <path d="M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"></path>
    +  </symbol>
    +  <symbol id="male" viewBox="0 0 192 512">
    +    <title id="male-title">Male</title>
    +    <path d="M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="map" viewBox="0 0 576 512">
    +    <title id="map-title">Map</title>
    +    <path d="M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"></path>
    +  </symbol>
    +  <symbol id="map-marked" viewBox="0 0 576 512">
    +    <title id="map-marked-title">Map Marked</title>
    +    <path d="M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"></path>
    +  </symbol>
    +  <symbol id="map-marked-alt" viewBox="0 0 576 512">
    +    <title id="map-marked-alt-title">Alternate Map Marked</title>
    +    <path d="M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"></path>
    +  </symbol>
    +  <symbol id="map-marker" viewBox="0 0 384 512">
    +    <title id="map-marker-title">map-marker</title>
    +    <path d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"></path>
    +  </symbol>
    +  <symbol id="map-marker-alt" viewBox="0 0 384 512">
    +    <title id="map-marker-alt-title">Alternate Map Marker</title>
    +    <path d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"></path>
    +  </symbol>
    +  <symbol id="map-pin" viewBox="0 0 288 512">
    +    <title id="map-pin-title">Map Pin</title>
    +    <path d="M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"></path>
    +  </symbol>
    +  <symbol id="map-signs" viewBox="0 0 512 512">
    +    <title id="map-signs-title">Map Signs</title>
    +    <path d="M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="marker" viewBox="0 0 512 512">
    +    <title id="marker-title">Marker</title>
    +    <path d="M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"></path>
    +  </symbol>
    +  <symbol id="mars" viewBox="0 0 384 512">
    +    <title id="mars-title">Mars</title>
    +    <path d="M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"></path>
    +  </symbol>
    +  <symbol id="mars-double" viewBox="0 0 512 512">
    +    <title id="mars-double-title">Mars Double</title>
    +    <path d="M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"></path>
    +  </symbol>
    +  <symbol id="mars-stroke" viewBox="0 0 384 512">
    +    <title id="mars-stroke-title">Mars Stroke</title>
    +    <path d="M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"></path>
    +  </symbol>
    +  <symbol id="mars-stroke-h" viewBox="0 0 480 512">
    +    <title id="mars-stroke-h-title">Mars Stroke Horizontal</title>
    +    <path d="M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"></path>
    +  </symbol>
    +  <symbol id="mars-stroke-v" viewBox="0 0 288 512">
    +    <title id="mars-stroke-v-title">Mars Stroke Vertical</title>
    +    <path d="M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"></path>
    +  </symbol>
    +  <symbol id="mask" viewBox="0 0 640 512">
    +    <title id="mask-title">Mask</title>
    +    <path d="M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"></path>
    +  </symbol>
    +  <symbol id="medal" viewBox="0 0 512 512">
    +    <title id="medal-title">Medal</title>
    +    <path d="M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"></path>
    +  </symbol>
    +  <symbol id="medkit" viewBox="0 0 512 512">
    +    <title id="medkit-title">medkit</title>
    +    <path d="M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"></path>
    +  </symbol>
    +  <symbol id="meh" viewBox="0 0 496 512">
    +    <title id="meh-title">Neutral Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="meh-blank" viewBox="0 0 496 512">
    +    <title id="meh-blank-title">Face Without Mouth</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="meh-rolling-eyes" viewBox="0 0 496 512">
    +    <title id="meh-rolling-eyes-title">Face With Rolling Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"></path>
    +  </symbol>
    +  <symbol id="memory" viewBox="0 0 640 512">
    +    <title id="memory-title">Memory</title>
    +    <path d="M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"></path>
    +  </symbol>
    +  <symbol id="menorah" viewBox="0 0 640 512">
    +    <title id="menorah-title">Menorah</title>
    +    <path d="M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"></path>
    +  </symbol>
    +  <symbol id="mercury" viewBox="0 0 288 512">
    +    <title id="mercury-title">Mercury</title>
    +    <path d="M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"></path>
    +  </symbol>
    +  <symbol id="microchip" viewBox="0 0 512 512">
    +    <title id="microchip-title">Microchip</title>
    +    <path d="M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"></path>
    +  </symbol>
    +  <symbol id="microphone" viewBox="0 0 352 512">
    +    <title id="microphone-title">microphone</title>
    +    <path d="M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="microphone-alt" viewBox="0 0 352 512">
    +    <title id="microphone-alt-title">Alternate Microphone</title>
    +    <path d="M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"></path>
    +  </symbol>
    +  <symbol id="microphone-alt-slash" viewBox="0 0 640 512">
    +    <title id="microphone-alt-slash-title">Alternate Microphone Slash</title>
    +    <path d="M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="microphone-slash" viewBox="0 0 640 512">
    +    <title id="microphone-slash-title">Microphone Slash</title>
    +    <path d="M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="microscope" viewBox="0 0 512 512">
    +    <title id="microscope-title">Microscope</title>
    +    <path d="M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"></path>
    +  </symbol>
    +  <symbol id="minus" viewBox="0 0 448 512">
    +    <title id="minus-title">minus</title>
    +    <path d="M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="minus-circle" viewBox="0 0 512 512">
    +    <title id="minus-circle-title">Minus Circle</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"></path>
    +  </symbol>
    +  <symbol id="minus-square" viewBox="0 0 448 512">
    +    <title id="minus-square-title">Minus Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"></path>
    +  </symbol>
    +  <symbol id="mobile" viewBox="0 0 320 512">
    +    <title id="mobile-title">Mobile Phone</title>
    +    <path d="M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="mobile-alt" viewBox="0 0 320 512">
    +    <title id="mobile-alt-title">Alternate Mobile</title>
    +    <path d="M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"></path>
    +  </symbol>
    +  <symbol id="money-bill" viewBox="0 0 640 512">
    +    <title id="money-bill-title">Money Bill</title>
    +    <path d="M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"></path>
    +  </symbol>
    +  <symbol id="money-bill-alt" viewBox="0 0 640 512">
    +    <title id="money-bill-alt-title">Alternate Money Bill</title>
    +    <path d="M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"></path>
    +  </symbol>
    +  <symbol id="money-bill-wave" viewBox="0 0 640 512">
    +    <title id="money-bill-wave-title">Wavy Money Bill</title>
    +    <path d="M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"></path>
    +  </symbol>
    +  <symbol id="money-bill-wave-alt" viewBox="0 0 640 512">
    +    <title id="money-bill-wave-alt-title">Alternate Wavy Money Bill</title>
    +    <path d="M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"></path>
    +  </symbol>
    +  <symbol id="money-check" viewBox="0 0 640 512">
    +    <title id="money-check-title">Money Check</title>
    +    <path d="M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="money-check-alt" viewBox="0 0 640 512">
    +    <title id="money-check-alt-title">Alternate Money Check</title>
    +    <path d="M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"></path>
    +  </symbol>
    +  <symbol id="monument" viewBox="0 0 384 512">
    +    <title id="monument-title">Monument</title>
    +    <path d="M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"></path>
    +  </symbol>
    +  <symbol id="moon" viewBox="0 0 512 512">
    +    <title id="moon-title">Moon</title>
    +    <path d="M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"></path>
    +  </symbol>
    +  <symbol id="mortar-pestle" viewBox="0 0 512 512">
    +    <title id="mortar-pestle-title">Mortar Pestle</title>
    +    <path d="M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="mosque" viewBox="0 0 640 512">
    +    <title id="mosque-title">Mosque</title>
    +    <path d="M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"></path>
    +  </symbol>
    +  <symbol id="motorcycle" viewBox="0 0 640 512">
    +    <title id="motorcycle-title">Motorcycle</title>
    +    <path d="M512.949 192.003c-14.862-.108-29.14 2.322-42.434 6.874L437.589 144H520c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24h-45.311a24 24 0 0 0-17.839 7.945l-37.496 41.663-22.774-37.956A24 24 0 0 0 376 64h-80c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h66.411l19.2 32H227.904c-17.727-23.073-44.924-40-99.904-40H72.54c-13.455 0-24.791 11.011-24.536 24.464C48.252 141.505 58.9 152 72 152h56c24.504 0 38.686 10.919 47.787 24.769l-11.291 20.529c-13.006-3.865-26.871-5.736-41.251-5.21C55.857 194.549 1.565 249.605.034 317.021-1.603 389.076 56.317 448 128 448c59.642 0 109.744-40.794 123.953-96h84.236c13.673 0 24.589-11.421 23.976-25.077-2.118-47.12 17.522-93.665 56.185-125.026l12.485 20.808c-27.646 23.654-45.097 58.88-44.831 98.179.47 69.556 57.203 126.452 126.758 127.11 71.629.678 129.839-57.487 129.234-129.099-.588-69.591-57.455-126.386-127.047-126.892zM128 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c4.242 0 8.405.341 12.469.982L98.97 316.434C90.187 332.407 101.762 352 120 352h81.297c-12.37 28.225-40.56 48-73.297 48zm388.351-.116C470.272 402.337 432 365.554 432 320c0-21.363 8.434-40.781 22.125-55.144l49.412 82.352c4.546 7.577 14.375 10.034 21.952 5.488l13.72-8.232c7.577-4.546 10.034-14.375 5.488-21.952l-48.556-80.927A80.005 80.005 0 0 1 512 240c45.554 0 82.338 38.273 79.884 84.352-2.16 40.558-34.974 73.372-75.533 75.532z"></path>
    +  </symbol>
    +  <symbol id="mountain" viewBox="0 0 640 512">
    +    <title id="mountain-title">Mountain</title>
    +    <path d="M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"></path>
    +  </symbol>
    +  <symbol id="mouse-pointer" viewBox="0 0 320 512">
    +    <title id="mouse-pointer-title">Mouse Pointer</title>
    +    <path d="M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"></path>
    +  </symbol>
    +  <symbol id="music" viewBox="0 0 512 512">
    +    <title id="music-title">Music</title>
    +    <path d="M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z"></path>
    +  </symbol>
    +  <symbol id="network-wired" viewBox="0 0 640 512">
    +    <title id="network-wired-title">Wired Network</title>
    +    <path d="M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"></path>
    +  </symbol>
    +  <symbol id="neuter" viewBox="0 0 288 512">
    +    <title id="neuter-title">Neuter</title>
    +    <path d="M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"></path>
    +  </symbol>
    +  <symbol id="newspaper" viewBox="0 0 576 512">
    +    <title id="newspaper-title">Newspaper</title>
    +    <path d="M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"></path>
    +  </symbol>
    +  <symbol id="not-equal" viewBox="0 0 448 512">
    +    <title id="not-equal-title">Not Equal</title>
    +    <path d="M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"></path>
    +  </symbol>
    +  <symbol id="notes-medical" viewBox="0 0 384 512">
    +    <title id="notes-medical-title">Medical Notes</title>
    +    <path d="M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"></path>
    +  </symbol>
    +  <symbol id="object-group" viewBox="0 0 512 512">
    +    <title id="object-group-title">Object Group</title>
    +    <path d="M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"></path>
    +  </symbol>
    +  <symbol id="object-ungroup" viewBox="0 0 576 512">
    +    <title id="object-ungroup-title">Object Ungroup</title>
    +    <path d="M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"></path>
    +  </symbol>
    +  <symbol id="oil-can" viewBox="0 0 640 512">
    +    <title id="oil-can-title">Oil Can</title>
    +    <path d="M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"></path>
    +  </symbol>
    +  <symbol id="om" viewBox="0 0 512 512">
    +    <title id="om-title">Om</title>
    +    <path d="M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"></path>
    +  </symbol>
    +  <symbol id="otter" viewBox="0 0 640 512">
    +    <title id="otter-title">Otter</title>
    +    <path d="M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"></path>
    +  </symbol>
    +  <symbol id="outdent" viewBox="0 0 448 512">
    +    <title id="outdent-title">Outdent</title>
    +    <path d="M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm208 144h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm192-128h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM4.687 267.313l96 95.984C110.734 373.348 128 366.224 128 351.984V160.008c0-14.329-17.325-21.304-27.313-11.313l-96 95.992c-6.249 6.248-6.249 16.378 0 22.626z"></path>
    +  </symbol>
    +  <symbol id="paint-brush" viewBox="0 0 512 512">
    +    <title id="paint-brush-title">Paint Brush</title>
    +    <path d="M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"></path>
    +  </symbol>
    +  <symbol id="paint-roller" viewBox="0 0 512 512">
    +    <title id="paint-roller-title">Paint Roller</title>
    +    <path d="M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"></path>
    +  </symbol>
    +  <symbol id="palette" viewBox="0 0 512 512">
    +    <title id="palette-title">Palette</title>
    +    <path d="M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="pallet" viewBox="0 0 640 512">
    +    <title id="pallet-title">Pallet</title>
    +    <path d="M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"></path>
    +  </symbol>
    +  <symbol id="paper-plane" viewBox="0 0 512 512">
    +    <title id="paper-plane-title">Paper Plane</title>
    +    <path d="M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"></path>
    +  </symbol>
    +  <symbol id="paperclip" viewBox="0 0 448 512">
    +    <title id="paperclip-title">Paperclip</title>
    +    <path d="M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"></path>
    +  </symbol>
    +  <symbol id="parachute-box" viewBox="0 0 512 512">
    +    <title id="parachute-box-title">Parachute Box</title>
    +    <path d="M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"></path>
    +  </symbol>
    +  <symbol id="paragraph" viewBox="0 0 448 512">
    +    <title id="paragraph-title">paragraph</title>
    +    <path d="M408 32H177.531C88.948 32 16.045 103.335 16 191.918 15.956 280.321 87.607 352 176 352v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h32v344c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h40c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="parking" viewBox="0 0 448 512">
    +    <title id="parking-title">Parking</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="passport" viewBox="0 0 448 512">
    +    <title id="passport-title">Passport</title>
    +    <path d="M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"></path>
    +  </symbol>
    +  <symbol id="pastafarianism" viewBox="0 0 640 512">
    +    <title id="pastafarianism-title">Pastafarianism</title>
    +    <path d="M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"></path>
    +  </symbol>
    +  <symbol id="paste" viewBox="0 0 448 512">
    +    <title id="paste-title">Paste</title>
    +    <path d="M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"></path>
    +  </symbol>
    +  <symbol id="pause" viewBox="0 0 448 512">
    +    <title id="pause-title">pause</title>
    +    <path d="M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"></path>
    +  </symbol>
    +  <symbol id="pause-circle" viewBox="0 0 512 512">
    +    <title id="pause-circle-title">Pause Circle</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"></path>
    +  </symbol>
    +  <symbol id="paw" viewBox="0 0 512 512">
    +    <title id="paw-title">Paw</title>
    +    <path d="M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"></path>
    +  </symbol>
    +  <symbol id="peace" viewBox="0 0 496 512">
    +    <title id="peace-title">Peace</title>
    +    <path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"></path>
    +  </symbol>
    +  <symbol id="pen" viewBox="0 0 512 512">
    +    <title id="pen-title">Pen</title>
    +    <path d="M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"></path>
    +  </symbol>
    +  <symbol id="pen-alt" viewBox="0 0 512 512">
    +    <title id="pen-alt-title">Alternate Pen</title>
    +    <path d="M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"></path>
    +  </symbol>
    +  <symbol id="pen-fancy" viewBox="0 0 512 512">
    +    <title id="pen-fancy-title">Pen Fancy</title>
    +    <path d="M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"></path>
    +  </symbol>
    +  <symbol id="pen-nib" viewBox="0 0 512 512">
    +    <title id="pen-nib-title">Pen Nib</title>
    +    <path d="M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"></path>
    +  </symbol>
    +  <symbol id="pen-square" viewBox="0 0 448 512">
    +    <title id="pen-square-title">Pen Square</title>
    +    <path d="M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"></path>
    +  </symbol>
    +  <symbol id="pencil-alt" viewBox="0 0 512 512">
    +    <title id="pencil-alt-title">Alternate Pencil</title>
    +    <path d="M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"></path>
    +  </symbol>
    +  <symbol id="pencil-ruler" viewBox="0 0 512 512">
    +    <title id="pencil-ruler-title">Pencil Ruler</title>
    +    <path d="M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"></path>
    +  </symbol>
    +  <symbol id="people-carry" viewBox="0 0 640 512">
    +    <title id="people-carry-title">People Carry</title>
    +    <path d="M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"></path>
    +  </symbol>
    +  <symbol id="percent" viewBox="0 0 448 512">
    +    <title id="percent-title">Percent</title>
    +    <path d="M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"></path>
    +  </symbol>
    +  <symbol id="percentage" viewBox="0 0 384 512">
    +    <title id="percentage-title">Percentage</title>
    +    <path d="M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"></path>
    +  </symbol>
    +  <symbol id="phone" viewBox="0 0 512 512">
    +    <title id="phone-title">Phone</title>
    +    <path d="M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"></path>
    +  </symbol>
    +  <symbol id="phone-slash" viewBox="0 0 640 512">
    +    <title id="phone-slash-title">Phone Slash</title>
    +    <path d="M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"></path>
    +  </symbol>
    +  <symbol id="phone-square" viewBox="0 0 448 512">
    +    <title id="phone-square-title">Phone Square</title>
    +    <path d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"></path>
    +  </symbol>
    +  <symbol id="phone-volume" viewBox="0 0 384 512">
    +    <title id="phone-volume-title">Phone Volume</title>
    +    <path d="M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"></path>
    +  </symbol>
    +  <symbol id="piggy-bank" viewBox="0 0 576 512">
    +    <title id="piggy-bank-title">Piggy Bank</title>
    +    <path d="M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"></path>
    +  </symbol>
    +  <symbol id="pills" viewBox="0 0 576 512">
    +    <title id="pills-title">Pills</title>
    +    <path d="M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"></path>
    +  </symbol>
    +  <symbol id="place-of-worship" viewBox="0 0 640 512">
    +    <title id="place-of-worship-title">Place Of Worship</title>
    +    <path d="M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"></path>
    +  </symbol>
    +  <symbol id="plane" viewBox="0 0 576 512">
    +    <title id="plane-title">plane</title>
    +    <path d="M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"></path>
    +  </symbol>
    +  <symbol id="plane-arrival" viewBox="0 0 640 512">
    +    <title id="plane-arrival-title">Plane Arrival</title>
    +    <path d="M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"></path>
    +  </symbol>
    +  <symbol id="plane-departure" viewBox="0 0 640 512">
    +    <title id="plane-departure-title">Plane Departure</title>
    +    <path d="M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"></path>
    +  </symbol>
    +  <symbol id="play" viewBox="0 0 448 512">
    +    <title id="play-title">play</title>
    +    <path d="M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"></path>
    +  </symbol>
    +  <symbol id="play-circle" viewBox="0 0 512 512">
    +    <title id="play-circle-title">Play Circle</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"></path>
    +  </symbol>
    +  <symbol id="plug" viewBox="0 0 384 512">
    +    <title id="plug-title">Plug</title>
    +    <path d="M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z"></path>
    +  </symbol>
    +  <symbol id="plus" viewBox="0 0 448 512">
    +    <title id="plus-title">plus</title>
    +    <path d="M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="plus-circle" viewBox="0 0 512 512">
    +    <title id="plus-circle-title">Plus Circle</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"></path>
    +  </symbol>
    +  <symbol id="plus-square" viewBox="0 0 448 512">
    +    <title id="plus-square-title">Plus Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"></path>
    +  </symbol>
    +  <symbol id="podcast" viewBox="0 0 448 512">
    +    <title id="podcast-title">Podcast</title>
    +    <path d="M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"></path>
    +  </symbol>
    +  <symbol id="poll" viewBox="0 0 448 512">
    +    <title id="poll-title">Poll</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"></path>
    +  </symbol>
    +  <symbol id="poll-h" viewBox="0 0 448 512">
    +    <title id="poll-h-title">Poll H</title>
    +    <path d="M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"></path>
    +  </symbol>
    +  <symbol id="poo" viewBox="0 0 512 512">
    +    <title id="poo-title">Poo</title>
    +    <path d="M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="poop" viewBox="0 0 512 512">
    +    <title id="poop-title">Poop</title>
    +    <path d="M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"></path>
    +  </symbol>
    +  <symbol id="portrait" viewBox="0 0 384 512">
    +    <title id="portrait-title">Portrait</title>
    +    <path d="M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"></path>
    +  </symbol>
    +  <symbol id="pound-sign" viewBox="0 0 320 512">
    +    <title id="pound-sign-title">Pound Sign</title>
    +    <path d="M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"></path>
    +  </symbol>
    +  <symbol id="power-off" viewBox="0 0 512 512">
    +    <title id="power-off-title">Power Off</title>
    +    <path d="M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"></path>
    +  </symbol>
    +  <symbol id="pray" viewBox="0 0 384 512">
    +    <title id="pray-title">Pray</title>
    +    <path d="M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"></path>
    +  </symbol>
    +  <symbol id="praying-hands" viewBox="0 0 640 512">
    +    <title id="praying-hands-title">Praying Hands</title>
    +    <path d="M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"></path>
    +  </symbol>
    +  <symbol id="prescription" viewBox="0 0 384 512">
    +    <title id="prescription-title">Prescription</title>
    +    <path d="M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"></path>
    +  </symbol>
    +  <symbol id="prescription-bottle" viewBox="0 0 384 512">
    +    <title id="prescription-bottle-title">Prescription Bottle</title>
    +    <path d="M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="prescription-bottle-alt" viewBox="0 0 384 512">
    +    <title id="prescription-bottle-alt-title">Alternate Prescription Bottle</title>
    +    <path d="M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"></path>
    +  </symbol>
    +  <symbol id="print" viewBox="0 0 512 512">
    +    <title id="print-title">print</title>
    +    <path d="M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"></path>
    +  </symbol>
    +  <symbol id="procedures" viewBox="0 0 640 512">
    +    <title id="procedures-title">Procedures</title>
    +    <path d="M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"></path>
    +  </symbol>
    +  <symbol id="project-diagram" viewBox="0 0 640 512">
    +    <title id="project-diagram-title">Project Diagram</title>
    +    <path d="M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="puzzle-piece" viewBox="0 0 576 512">
    +    <title id="puzzle-piece-title">Puzzle Piece</title>
    +    <path d="M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"></path>
    +  </symbol>
    +  <symbol id="qrcode" viewBox="0 0 448 512">
    +    <title id="qrcode-title">qrcode</title>
    +    <path d="M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"></path>
    +  </symbol>
    +  <symbol id="question" viewBox="0 0 384 512">
    +    <title id="question-title">Question</title>
    +    <path d="M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"></path>
    +  </symbol>
    +  <symbol id="question-circle" viewBox="0 0 512 512">
    +    <title id="question-circle-title">Question Circle</title>
    +    <path d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"></path>
    +  </symbol>
    +  <symbol id="quidditch" viewBox="0 0 640 512">
    +    <title id="quidditch-title">Quidditch</title>
    +    <path d="M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"></path>
    +  </symbol>
    +  <symbol id="quote-left" viewBox="0 0 512 512">
    +    <title id="quote-left-title">quote-left</title>
    +    <path d="M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="quote-right" viewBox="0 0 512 512">
    +    <title id="quote-right-title">quote-right</title>
    +    <path d="M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="quran" viewBox="0 0 448 512">
    +    <title id="quran-title">Quran</title>
    +    <path d="M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"></path>
    +  </symbol>
    +  <symbol id="random" viewBox="0 0 512 512">
    +    <title id="random-title">random</title>
    +    <path d="M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"></path>
    +  </symbol>
    +  <symbol id="receipt" viewBox="0 0 384 512">
    +    <title id="receipt-title">Receipt</title>
    +    <path d="M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"></path>
    +  </symbol>
    +  <symbol id="recycle" viewBox="0 0 512 512">
    +    <title id="recycle-title">Recycle</title>
    +    <path d="M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"></path>
    +  </symbol>
    +  <symbol id="redo" viewBox="0 0 512.333 512">
    +    <title id="redo-title">Redo</title>
    +    <path d="M500.333 0h-47.411c-6.853 0-12.314 5.729-11.986 12.574l3.966 82.759C399.416 41.899 331.672 8 256.001 8 119.34 8 7.899 119.526 8 256.187 8.101 393.068 119.096 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-33.971-33.971c-4.466-4.466-11.64-4.717-16.38-.543C341.308 415.448 300.606 432 256 432c-97.267 0-176-78.716-176-176 0-97.267 78.716-176 176-176 60.892 0 114.506 30.858 146.099 77.8l-101.525-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12z"></path>
    +  </symbol>
    +  <symbol id="redo-alt" viewBox="0 0 512 512">
    +    <title id="redo-alt-title">Alternate Redo</title>
    +    <path d="M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"></path>
    +  </symbol>
    +  <symbol id="registered" viewBox="0 0 512 512">
    +    <title id="registered-title">Registered Trademark</title>
    +    <path d="M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"></path>
    +  </symbol>
    +  <symbol id="reply" viewBox="0 0 512 512">
    +    <title id="reply-title">Reply</title>
    +    <path d="M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"></path>
    +  </symbol>
    +  <symbol id="reply-all" viewBox="0 0 576 512">
    +    <title id="reply-all-title">reply-all</title>
    +    <path d="M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"></path>
    +  </symbol>
    +  <symbol id="retweet" viewBox="0 0 640 512">
    +    <title id="retweet-title">Retweet</title>
    +    <path d="M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"></path>
    +  </symbol>
    +  <symbol id="ribbon" viewBox="0 0 448 512">
    +    <title id="ribbon-title">Ribbon</title>
    +    <path d="M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"></path>
    +  </symbol>
    +  <symbol id="ring" viewBox="0 0 512 512">
    +    <title id="ring-title">Ring</title>
    +    <path d="M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"></path>
    +  </symbol>
    +  <symbol id="road" viewBox="0 0 576 512">
    +    <title id="road-title">road</title>
    +    <path d="M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"></path>
    +  </symbol>
    +  <symbol id="robot" viewBox="0 0 640 512">
    +    <title id="robot-title">Robot</title>
    +    <path d="M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="rocket" viewBox="0 0 512 512">
    +    <title id="rocket-title">rocket</title>
    +    <path d="M505.1 19.1C503.8 13 499 8.2 492.9 6.9 460.7 0 435.5 0 410.4 0 307.2 0 245.3 55.2 199.1 128H94.9c-18.2 0-34.8 10.3-42.9 26.5L2.6 253.3c-8 16 3.6 34.7 21.5 34.7h95.1c-5.9 12.8-11.9 25.5-18 37.7-3.1 6.2-1.9 13.6 3 18.5l63.6 63.6c4.9 4.9 12.3 6.1 18.5 3 12.2-6.1 24.9-12 37.7-17.9V488c0 17.8 18.8 29.4 34.7 21.5l98.7-49.4c16.3-8.1 26.5-24.8 26.5-42.9V312.8c72.6-46.3 128-108.4 128-211.1.1-25.2.1-50.4-6.8-82.6zM400 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"></path>
    +  </symbol>
    +  <symbol id="route" viewBox="0 0 512 512">
    +    <title id="route-title">Route</title>
    +    <path d="M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="rss" viewBox="0 0 448 512">
    +    <title id="rss-title">rss</title>
    +    <path d="M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"></path>
    +  </symbol>
    +  <symbol id="rss-square" viewBox="0 0 448 512">
    +    <title id="rss-square-title">RSS Square</title>
    +    <path d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"></path>
    +  </symbol>
    +  <symbol id="ruble-sign" viewBox="0 0 384 512">
    +    <title id="ruble-sign-title">Ruble Sign</title>
    +    <path d="M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"></path>
    +  </symbol>
    +  <symbol id="ruler" viewBox="0 0 640 512">
    +    <title id="ruler-title">Ruler</title>
    +    <path d="M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"></path>
    +  </symbol>
    +  <symbol id="ruler-combined" viewBox="0 0 512 512">
    +    <title id="ruler-combined-title">Ruler Combined</title>
    +    <path d="M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="ruler-horizontal" viewBox="0 0 576 512">
    +    <title id="ruler-horizontal-title">Ruler Horizontal</title>
    +    <path d="M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="ruler-vertical" viewBox="0 0 256 512">
    +    <title id="ruler-vertical-title">Ruler Vertical</title>
    +    <path d="M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"></path>
    +  </symbol>
    +  <symbol id="running" viewBox="0 0 416 512">
    +    <title id="running-title">Running</title>
    +    <path d="M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"></path>
    +  </symbol>
    +  <symbol id="rupee-sign" viewBox="0 0 320 512">
    +    <title id="rupee-sign-title">Indian Rupee Sign</title>
    +    <path d="M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"></path>
    +  </symbol>
    +  <symbol id="sad-cry" viewBox="0 0 496 512">
    +    <title id="sad-cry-title">Crying Face</title>
    +    <path d="M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"></path>
    +  </symbol>
    +  <symbol id="sad-tear" viewBox="0 0 496 512">
    +    <title id="sad-tear-title">Loudly Crying Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"></path>
    +  </symbol>
    +  <symbol id="save" viewBox="0 0 448 512">
    +    <title id="save-title">Save</title>
    +    <path d="M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"></path>
    +  </symbol>
    +  <symbol id="school" viewBox="0 0 640 512">
    +    <title id="school-title">School</title>
    +    <path d="M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="screwdriver" viewBox="0 0 512 512">
    +    <title id="screwdriver-title">Screwdriver</title>
    +    <path d="M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"></path>
    +  </symbol>
    +  <symbol id="scroll" viewBox="0 0 640 512">
    +    <title id="scroll-title">Scroll</title>
    +    <path d="M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"></path>
    +  </symbol>
    +  <symbol id="search" viewBox="0 0 512 512">
    +    <title id="search-title">Search</title>
    +    <path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path>
    +  </symbol>
    +  <symbol id="search-dollar" viewBox="0 0 512 512">
    +    <title id="search-dollar-title">Search Dollar</title>
    +    <path d="M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"></path>
    +  </symbol>
    +  <symbol id="search-location" viewBox="0 0 512 512">
    +    <title id="search-location-title">Search Location</title>
    +    <path d="M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"></path>
    +  </symbol>
    +  <symbol id="search-minus" viewBox="0 0 512 512">
    +    <title id="search-minus-title">Search Minus</title>
    +    <path d="M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"></path>
    +  </symbol>
    +  <symbol id="search-plus" viewBox="0 0 512 512">
    +    <title id="search-plus-title">Search Plus</title>
    +    <path d="M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"></path>
    +  </symbol>
    +  <symbol id="seedling" viewBox="0 0 512 512">
    +    <title id="seedling-title">Seedling</title>
    +    <path d="M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"></path>
    +  </symbol>
    +  <symbol id="server" viewBox="0 0 512 512">
    +    <title id="server-title">Server</title>
    +    <path d="M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="shapes" viewBox="0 0 512 512">
    +    <title id="shapes-title">Shapes</title>
    +    <path d="M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z"></path>
    +  </symbol>
    +  <symbol id="share" viewBox="0 0 512 512">
    +    <title id="share-title">Share</title>
    +    <path d="M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"></path>
    +  </symbol>
    +  <symbol id="share-alt" viewBox="0 0 448 512">
    +    <title id="share-alt-title">Alternate Share</title>
    +    <path d="M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"></path>
    +  </symbol>
    +  <symbol id="share-alt-square" viewBox="0 0 448 512">
    +    <title id="share-alt-square-title">Alternate Share Square</title>
    +    <path d="M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"></path>
    +  </symbol>
    +  <symbol id="share-square" viewBox="0 0 576 512">
    +    <title id="share-square-title">Share Square</title>
    +    <path d="M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"></path>
    +  </symbol>
    +  <symbol id="shekel-sign" viewBox="0 0 448 512">
    +    <title id="shekel-sign-title">Shekel Sign</title>
    +    <path d="M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="shield-alt" viewBox="0 0 512 512">
    +    <title id="shield-alt-title">Alternate Shield</title>
    +    <path d="M496 128c0 221.282-135.934 344.645-221.539 380.308a48 48 0 0 1-36.923 0C130.495 463.713 16 326.487 16 128a48 48 0 0 1 29.539-44.308l192-80a48 48 0 0 1 36.923 0l192 80A48 48 0 0 1 496 128zM256 446.313l.066.034c93.735-46.689 172.497-156.308 175.817-307.729L256 65.333v380.98z"></path>
    +  </symbol>
    +  <symbol id="ship" viewBox="0 0 640 512">
    +    <title id="ship-title">Ship</title>
    +    <path d="M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"></path>
    +  </symbol>
    +  <symbol id="shipping-fast" viewBox="0 0 640 512">
    +    <title id="shipping-fast-title">Shipping Fast</title>
    +    <path d="M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"></path>
    +  </symbol>
    +  <symbol id="shoe-prints" viewBox="0 0 640 512">
    +    <title id="shoe-prints-title">Shoe Prints</title>
    +    <path d="M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"></path>
    +  </symbol>
    +  <symbol id="shopping-bag" viewBox="0 0 448 512">
    +    <title id="shopping-bag-title">Shopping Bag</title>
    +    <path d="M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"></path>
    +  </symbol>
    +  <symbol id="shopping-basket" viewBox="0 0 576 512">
    +    <title id="shopping-basket-title">Shopping Basket</title>
    +    <path d="M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"></path>
    +  </symbol>
    +  <symbol id="shopping-cart" viewBox="0 0 576 512">
    +    <title id="shopping-cart-title">shopping-cart</title>
    +    <path d="M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"></path>
    +  </symbol>
    +  <symbol id="shower" viewBox="0 0 512 512">
    +    <title id="shower-title">Shower</title>
    +    <path d="M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z"></path>
    +  </symbol>
    +  <symbol id="shuttle-van" viewBox="0 0 640 512">
    +    <title id="shuttle-van-title">Shuttle Van</title>
    +    <path d="M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"></path>
    +  </symbol>
    +  <symbol id="sign" viewBox="0 0 512 512">
    +    <title id="sign-title">Sign</title>
    +    <path d="M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"></path>
    +  </symbol>
    +  <symbol id="sign-in-alt" viewBox="0 0 512 512">
    +    <title id="sign-in-alt-title">Alternate Sign In</title>
    +    <path d="M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"></path>
    +  </symbol>
    +  <symbol id="sign-language" viewBox="0 0 448 512">
    +    <title id="sign-language-title">Sign Language</title>
    +    <path d="M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"></path>
    +  </symbol>
    +  <symbol id="sign-out-alt" viewBox="0 0 512 512">
    +    <title id="sign-out-alt-title">Alternate Sign Out</title>
    +    <path d="M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"></path>
    +  </symbol>
    +  <symbol id="signal" viewBox="0 0 640 512">
    +    <title id="signal-title">signal</title>
    +    <path d="M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="signature" viewBox="0 0 512 512">
    +    <title id="signature-title">Signature</title>
    +    <path d="M496 320h-91.86c-9.27 0-19.72-11.31-25.78-28.52-15.23-43.36-48.11-70.3-85.8-70.3-30.84 0-58.47 18.05-76.11 49.23L194.8 106.5C188.84 81.08 169.34 64 146.28 64c-23.05 0-42.55 17.08-48.5 42.5L56.16 284.2C50.7 307.45 37.75 320 28.33 320H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h12.33c41.97 0 78.19-34.23 90.14-85.2l23.84-101.78 29.25 222.11c1.98 15.05 13.82 27.45 28.94 28.75.99.09 1.96.13 2.93.13 14.08 0 26.64-9.27 30.69-22.95l33.03-112.34c5.88-16.72 15.84-27.52 25.41-27.52 9.58 0 19.55 10.8 25.78 28.52 15.23 43.36 48.11 70.3 85.8 70.3H496c8.84 0 16-7.16 16-16v-32c0-8.86-7.16-16.02-16-16.02z"></path>
    +  </symbol>
    +  <symbol id="sitemap" viewBox="0 0 640 512">
    +    <title id="sitemap-title">Sitemap</title>
    +    <path d="M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="skull" viewBox="0 0 512 512">
    +    <title id="skull-title">Skull</title>
    +    <path d="M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"></path>
    +  </symbol>
    +  <symbol id="skull-crossbones" viewBox="0 0 448 512">
    +    <title id="skull-crossbones-title">Skull &amp; Crossbones</title>
    +    <path d="M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"></path>
    +  </symbol>
    +  <symbol id="slash" viewBox="0 0 640 512">
    +    <title id="slash-title">Slash</title>
    +    <path d="M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"></path>
    +  </symbol>
    +  <symbol id="sliders-h" viewBox="0 0 512 512">
    +    <title id="sliders-h-title">Horizontal Sliders</title>
    +    <path d="M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="smile" viewBox="0 0 496 512">
    +    <title id="smile-title">Smiling Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"></path>
    +  </symbol>
    +  <symbol id="smile-beam" viewBox="0 0 496 512">
    +    <title id="smile-beam-title">Beaming Face With Smiling Eyes</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"></path>
    +  </symbol>
    +  <symbol id="smile-wink" viewBox="0 0 496 512">
    +    <title id="smile-wink-title">Winking Face</title>
    +    <path d="M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"></path>
    +  </symbol>
    +  <symbol id="smoking" viewBox="0 0 640 512">
    +    <title id="smoking-title">Smoking</title>
    +    <path d="M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"></path>
    +  </symbol>
    +  <symbol id="smoking-ban" viewBox="0 0 512 512">
    +    <title id="smoking-ban-title">Smoking Ban</title>
    +    <path d="M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"></path>
    +  </symbol>
    +  <symbol id="snowflake" viewBox="0 0 448 512">
    +    <title id="snowflake-title">Snowflake</title>
    +    <path d="M444.816 301.639a24.12 24.12 0 0 0 2.661-16.978c-2.725-12.966-15.339-21.245-28.174-18.492l-87.407 25.046L264 256l67.896-35.215 87.407 25.046c12.835 2.753 25.449-5.526 28.174-18.492 2.725-12.966-5.471-25.708-18.305-28.461l-47.477-7.137 53.077-30.956c11.363-6.627 15.257-21.306 8.696-32.785-6.561-11.479-21.091-15.412-32.454-8.785l-53.077 30.956 17.621-45.104c4.057-12.606-2.768-26.146-15.247-30.245-12.478-4.099-25.883 2.797-29.94 15.402l-22.232 88.99-60.38 35.215V144l65.175-63.945c8.778-9.852 7.987-25.027-1.766-33.894-9.753-8.867-24.775-8.068-33.552 1.784l-29.857 37.967V24c0-13.255-10.637-24-23.758-24s-23.758 10.745-23.758 24v61.912l-29.857-37.967c-8.779-9.852-23.799-10.652-33.552-1.784-9.753 8.867-10.543 24.042-1.766 33.894L200.242 144v70.431l-60.38-35.215-22.232-88.99c-4.057-12.605-17.462-19.501-29.94-15.402-12.478 4.099-19.304 17.64-15.247 30.245l17.62 45.104-53.077-30.956c-11.363-6.627-25.893-2.694-32.454 8.785s-2.667 26.157 8.696 32.785l53.077 30.956-47.477 7.137C5.993 201.634-2.203 214.375.523 227.341c2.725 12.965 15.339 21.245 28.174 18.492l87.407-25.046L184 256l-67.896 35.215-87.406-25.045c-12.835-2.753-25.449 5.526-28.174 18.492-2.725 12.967 5.47 25.708 18.305 28.461l47.477 7.137-53.077 30.956C1.866 357.843-2.027 372.521 4.533 384s21.091 15.412 32.454 8.785l53.077-30.956-17.62 45.104a24.157 24.157 0 0 0 2.022 19.428c2.831 4.953 7.416 8.909 13.224 10.816 12.478 4.099 25.883-2.797 29.94-15.402l22.232-88.99 60.38-35.215V368l-65.175 63.945c-8.778 9.852-7.987 25.027 1.766 33.894 9.754 8.868 24.774 8.068 33.552-1.784l29.857-37.967V488c0 13.255 10.637 24 23.758 24s23.758-10.745 23.758-24v-61.912l29.857 37.967A23.59 23.59 0 0 0 295.282 472a23.534 23.534 0 0 0 15.885-6.161c9.753-8.867 10.544-24.042 1.766-33.894L247.758 368v-70.431l60.38 35.215 22.232 88.99c4.057 12.605 17.462 19.501 29.94 15.402 12.479-4.099 19.304-17.64 15.247-30.245l-17.621-45.104 53.077 30.956c11.363 6.627 25.893 2.694 32.454-8.785s2.667-26.157-8.696-32.785l-53.077-30.956 47.477-7.137c6.86-1.469 12.394-5.793 15.645-11.481z"></path>
    +  </symbol>
    +  <symbol id="socks" viewBox="0 0 512 512">
    +    <title id="socks-title">Socks</title>
    +    <path d="M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"></path>
    +  </symbol>
    +  <symbol id="solar-panel" viewBox="0 0 640 512">
    +    <title id="solar-panel-title">Solar Panel</title>
    +    <path d="M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"></path>
    +  </symbol>
    +  <symbol id="sort" viewBox="0 0 320 512">
    +    <title id="sort-title">Sort</title>
    +    <path d="M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"></path>
    +  </symbol>
    +  <symbol id="sort-alpha-down" viewBox="0 0 448 512">
    +    <title id="sort-alpha-down-title">Sort Alpha Down</title>
    +    <path d="M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zm119.075-180.007A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"></path>
    +  </symbol>
    +  <symbol id="sort-alpha-up" viewBox="0 0 448 512">
    +    <title id="sort-alpha-up-title">Sort Alpha Up</title>
    +    <path d="M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zm301.671 98.621A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"></path>
    +  </symbol>
    +  <symbol id="sort-amount-down" viewBox="0 0 512 512">
    +    <title id="sort-amount-down-title">Sort Amount Down</title>
    +    <path d="M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"></path>
    +  </symbol>
    +  <symbol id="sort-amount-up" viewBox="0 0 512 512">
    +    <title id="sort-amount-up-title">Sort Amount Up</title>
    +    <path d="M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"></path>
    +  </symbol>
    +  <symbol id="sort-down" viewBox="0 0 320 512">
    +    <title id="sort-down-title">Sort Down (Descending)</title>
    +    <path d="M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"></path>
    +  </symbol>
    +  <symbol id="sort-numeric-down" viewBox="0 0 448 512">
    +    <title id="sort-numeric-down-title">Sort Numeric Down</title>
    +    <path d="M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM175.984 368H128V48c0-8.837-7.163-16-16-16H80c-8.837 0-16 7.163-16 16v320H16.019c-14.212 0-21.384 17.244-11.314 27.314l79.981 80.002c6.245 6.245 16.38 6.247 22.627 0l79.984-80.002c10.05-10.05 2.928-27.314-11.313-27.314z"></path>
    +  </symbol>
    +  <symbol id="sort-numeric-up" viewBox="0 0 448 512">
    +    <title id="sort-numeric-up-title">Sort Numeric Up</title>
    +    <path d="M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM16.016 144H64v320c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144h47.981c14.212 0 21.384-17.244 11.314-27.314l-79.981-80.002c-6.245-6.245-16.38-6.247-22.627 0L4.702 116.686C-5.347 126.736 1.775 144 16.016 144z"></path>
    +  </symbol>
    +  <symbol id="sort-up" viewBox="0 0 320 512">
    +    <title id="sort-up-title">Sort Up (Ascending)</title>
    +    <path d="M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"></path>
    +  </symbol>
    +  <symbol id="spa" viewBox="0 0 576 512">
    +    <title id="spa-title">Spa</title>
    +    <path d="M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"></path>
    +  </symbol>
    +  <symbol id="space-shuttle" viewBox="0 0 640 512">
    +    <title id="space-shuttle-title">Space Shuttle</title>
    +    <path d="M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"></path>
    +  </symbol>
    +  <symbol id="spider" viewBox="0 0 576 512">
    +    <title id="spider-title">Spider</title>
    +    <path d="M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"></path>
    +  </symbol>
    +  <symbol id="spinner" viewBox="0 0 512 512">
    +    <title id="spinner-title">Spinner</title>
    +    <path d="M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="splotch" viewBox="0 0 512 512">
    +    <title id="splotch-title">Splotch</title>
    +    <path d="M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"></path>
    +  </symbol>
    +  <symbol id="spray-can" viewBox="0 0 512 512">
    +    <title id="spray-can-title">Spray Can</title>
    +    <path d="M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"></path>
    +  </symbol>
    +  <symbol id="square" viewBox="0 0 448 512">
    +    <title id="square-title">Square</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="square-full" viewBox="0 0 512 512">
    +    <title id="square-full-title">Square Full</title>
    +    <path d="M512 512H0V0h512v512z"></path>
    +  </symbol>
    +  <symbol id="square-root-alt" viewBox="0 0 576 512">
    +    <title id="square-root-alt-title">Square Root Alternate</title>
    +    <path d="M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"></path>
    +  </symbol>
    +  <symbol id="stamp" viewBox="0 0 512 512">
    +    <title id="stamp-title">Stamp</title>
    +    <path d="M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"></path>
    +  </symbol>
    +  <symbol id="star" viewBox="0 0 576 512">
    +    <title id="star-title">Star</title>
    +    <path d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"></path>
    +  </symbol>
    +  <symbol id="star-and-crescent" viewBox="0 0 512 512">
    +    <title id="star-and-crescent-title">Star and Crescent</title>
    +    <path d="M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"></path>
    +  </symbol>
    +  <symbol id="star-half" viewBox="0 0 576 512">
    +    <title id="star-half-title">star-half</title>
    +    <path d="M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"></path>
    +  </symbol>
    +  <symbol id="star-half-alt" viewBox="0 0 536 512">
    +    <title id="star-half-alt-title">Alternate Star Half</title>
    +    <path d="M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"></path>
    +  </symbol>
    +  <symbol id="star-of-david" viewBox="0 0 464 512">
    +    <title id="star-of-david-title">Star of David</title>
    +    <path d="M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"></path>
    +  </symbol>
    +  <symbol id="star-of-life" viewBox="0 0 480 512">
    +    <title id="star-of-life-title">Star of Life</title>
    +    <path d="M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"></path>
    +  </symbol>
    +  <symbol id="step-backward" viewBox="0 0 448 512">
    +    <title id="step-backward-title">step-backward</title>
    +    <path d="M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"></path>
    +  </symbol>
    +  <symbol id="step-forward" viewBox="0 0 448 512">
    +    <title id="step-forward-title">step-forward</title>
    +    <path d="M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"></path>
    +  </symbol>
    +  <symbol id="stethoscope" viewBox="0 0 512 512">
    +    <title id="stethoscope-title">Stethoscope</title>
    +    <path d="M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="sticky-note" viewBox="0 0 448 512">
    +    <title id="sticky-note-title">Sticky Note</title>
    +    <path d="M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"></path>
    +  </symbol>
    +  <symbol id="stop" viewBox="0 0 448 512">
    +    <title id="stop-title">stop</title>
    +    <path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="stop-circle" viewBox="0 0 512 512">
    +    <title id="stop-circle-title">Stop Circle</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"></path>
    +  </symbol>
    +  <symbol id="stopwatch" viewBox="0 0 448 512">
    +    <title id="stopwatch-title">Stopwatch</title>
    +    <path d="M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"></path>
    +  </symbol>
    +  <symbol id="store" viewBox="0 0 616 512">
    +    <title id="store-title">Store</title>
    +    <path d="M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"></path>
    +  </symbol>
    +  <symbol id="store-alt" viewBox="0 0 640 512">
    +    <title id="store-alt-title">Alternate Store</title>
    +    <path d="M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"></path>
    +  </symbol>
    +  <symbol id="stream" viewBox="0 0 512 512">
    +    <title id="stream-title">Stream</title>
    +    <path d="M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="street-view" viewBox="0 0 512 512">
    +    <title id="street-view-title">Street View</title>
    +    <path d="M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"></path>
    +  </symbol>
    +  <symbol id="strikethrough" viewBox="0 0 512 512">
    +    <title id="strikethrough-title">Strikethrough</title>
    +    <path d="M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z"></path>
    +  </symbol>
    +  <symbol id="stroopwafel" viewBox="0 0 512 512">
    +    <title id="stroopwafel-title">Stroopwafel</title>
    +    <path d="M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"></path>
    +  </symbol>
    +  <symbol id="subscript" viewBox="0 0 512 512">
    +    <title id="subscript-title">subscript</title>
    +    <path d="M395.198 416c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 256c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 96H16C7.163 96 0 88.837 0 80V48c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035A15.999 15.999 0 0 1 204.226 32H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 256H272z"></path>
    +  </symbol>
    +  <symbol id="subway" viewBox="0 0 448 512">
    +    <title id="subway-title">Subway</title>
    +    <path d="M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="suitcase" viewBox="0 0 512 512">
    +    <title id="suitcase-title">Suitcase</title>
    +    <path d="M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"></path>
    +  </symbol>
    +  <symbol id="suitcase-rolling" viewBox="0 0 384 512">
    +    <title id="suitcase-rolling-title">Suitcase Rolling</title>
    +    <path d="M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"></path>
    +  </symbol>
    +  <symbol id="sun" viewBox="0 0 512 512">
    +    <title id="sun-title">Sun</title>
    +    <path d="M274.835 12.646l25.516 62.393c4.213 10.301 16.671 14.349 26.134 8.492l57.316-35.479c15.49-9.588 34.808 4.447 30.475 22.142l-16.03 65.475c-2.647 10.81 5.053 21.408 16.152 22.231l67.224 4.987c18.167 1.348 25.546 24.057 11.641 35.826L441.81 242.26c-8.495 7.19-8.495 20.289 0 27.479l51.454 43.548c13.906 11.769 6.527 34.478-11.641 35.826l-67.224 4.987c-11.099.823-18.799 11.421-16.152 22.231l16.03 65.475c4.332 17.695-14.986 31.73-30.475 22.142l-57.316-35.479c-9.463-5.858-21.922-1.81-26.134 8.492l-25.516 62.393c-6.896 16.862-30.774 16.862-37.67 0l-25.516-62.393c-4.213-10.301-16.671-14.349-26.134-8.492l-57.317 35.479c-15.49 9.588-34.808-4.447-30.475-22.142l16.03-65.475c2.647-10.81-5.053-21.408-16.152-22.231l-67.224-4.987c-18.167-1.348-25.546-24.057-11.641-35.826L70.19 269.74c8.495-7.19 8.495-20.289 0-27.479l-51.454-43.548c-13.906-11.769-6.527-34.478 11.641-35.826l67.224-4.987c11.099-.823 18.799-11.421 16.152-22.231l-16.03-65.475c-4.332-17.695 14.986-31.73 30.475-22.142l57.317 35.479c9.463 5.858 21.921 1.81 26.134-8.492l25.516-62.393c6.896-16.861 30.774-16.861 37.67 0zM392 256c0-74.991-61.01-136-136-136-74.991 0-136 61.009-136 136s61.009 136 136 136c74.99 0 136-61.009 136-136zm-32 0c0 57.346-46.654 104-104 104s-104-46.654-104-104 46.654-104 104-104 104 46.654 104 104z"></path>
    +  </symbol>
    +  <symbol id="superscript" viewBox="0 0 512 512">
    +    <title id="superscript-title">superscript</title>
    +    <path d="M395.198 256c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 256H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035a16 16 0 0 1 13.598-7.567H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 416H272z"></path>
    +  </symbol>
    +  <symbol id="surprise" viewBox="0 0 496 512">
    +    <title id="surprise-title">Hushed Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="swatchbook" viewBox="0 0 511 512">
    +    <title id="swatchbook-title">Swatchbook</title>
    +    <path d="M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z"></path>
    +  </symbol>
    +  <symbol id="swimmer" viewBox="0 0 640 512">
    +    <title id="swimmer-title">Swimmer</title>
    +    <path d="M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"></path>
    +  </symbol>
    +  <symbol id="swimming-pool" viewBox="0 0 640 512">
    +    <title id="swimming-pool-title">Swimming Pool</title>
    +    <path d="M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"></path>
    +  </symbol>
    +  <symbol id="synagogue" viewBox="0 0 640 512">
    +    <title id="synagogue-title">Synagogue</title>
    +    <path d="M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"></path>
    +  </symbol>
    +  <symbol id="sync" viewBox="0 0 512.333 512">
    +    <title id="sync-title">Sync</title>
    +    <path d="M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z"></path>
    +  </symbol>
    +  <symbol id="sync-alt" viewBox="0 0 512 512">
    +    <title id="sync-alt-title">Alternate Sync</title>
    +    <path d="M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"></path>
    +  </symbol>
    +  <symbol id="syringe" viewBox="0 0 512 512">
    +    <title id="syringe-title">Syringe</title>
    +    <path d="M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"></path>
    +  </symbol>
    +  <symbol id="table" viewBox="0 0 512 512">
    +    <title id="table-title">table</title>
    +    <path d="M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"></path>
    +  </symbol>
    +  <symbol id="table-tennis" viewBox="0 0 512 512">
    +    <title id="table-tennis-title">Table Tennis</title>
    +    <path d="M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"></path>
    +  </symbol>
    +  <symbol id="tablet" viewBox="0 0 448 512">
    +    <title id="tablet-title">tablet</title>
    +    <path d="M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="tablet-alt" viewBox="0 0 448 512">
    +    <title id="tablet-alt-title">Alternate Tablet</title>
    +    <path d="M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"></path>
    +  </symbol>
    +  <symbol id="tablets" viewBox="0 0 640 512">
    +    <title id="tablets-title">Tablets</title>
    +    <path d="M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"></path>
    +  </symbol>
    +  <symbol id="tachometer-alt" viewBox="0 0 576 512">
    +    <title id="tachometer-alt-title">Alternate Tachometer</title>
    +    <path d="M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="tag" viewBox="0 0 512 512">
    +    <title id="tag-title">tag</title>
    +    <path d="M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="tags" viewBox="0 0 640 512">
    +    <title id="tags-title">tags</title>
    +    <path d="M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"></path>
    +  </symbol>
    +  <symbol id="tape" viewBox="0 0 640 512">
    +    <title id="tape-title">Tape</title>
    +    <path d="M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"></path>
    +  </symbol>
    +  <symbol id="tasks" viewBox="0 0 512 512">
    +    <title id="tasks-title">Tasks</title>
    +    <path d="M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z"></path>
    +  </symbol>
    +  <symbol id="taxi" viewBox="0 0 512 512">
    +    <title id="taxi-title">Taxi</title>
    +    <path d="M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="teeth" viewBox="0 0 640 512">
    +    <title id="teeth-title">Teeth</title>
    +    <path d="M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"></path>
    +  </symbol>
    +  <symbol id="teeth-open" viewBox="0 0 640 512">
    +    <title id="teeth-open-title">Teeth Open</title>
    +    <path d="M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"></path>
    +  </symbol>
    +  <symbol id="terminal" viewBox="0 0 640 512">
    +    <title id="terminal-title">Terminal</title>
    +    <path d="M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"></path>
    +  </symbol>
    +  <symbol id="text-height" viewBox="0 0 576 512">
    +    <title id="text-height-title">text-height</title>
    +    <path d="M16 32h288c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96h-54.761v320H232c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H88c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm475.308 4.685l79.995 80.001C581.309 126.693 574.297 144 559.99 144H512v224h48c15.639 0 20.635 17.991 11.313 27.314l-79.995 80.001c-6.247 6.247-16.381 6.245-22.626 0l-79.995-80.001C378.691 385.307 385.703 368 400.01 368H448V144h-48c-15.639 0-20.635-17.991-11.313-27.314l79.995-80.001c6.247-6.248 16.381-6.245 22.626 0z"></path>
    +  </symbol>
    +  <symbol id="text-width" viewBox="0 0 448 512">
    +    <title id="text-width-title">text-width</title>
    +    <path d="M16 32h416c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96H261.743v128H296c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H152c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm427.315 340.682l-80.001-79.995C353.991 283.365 336 288.362 336 304v48H112v-47.99c0-14.307-17.307-21.319-27.314-11.313L4.685 372.692c-6.245 6.245-6.247 16.379 0 22.626l80.001 79.995C94.009 484.635 112 479.638 112 464v-48h224v47.99c0 14.307 17.307 21.319 27.314 11.313l80.001-79.995c6.245-6.245 6.248-16.379 0-22.626z"></path>
    +  </symbol>
    +  <symbol id="th" viewBox="0 0 512 512">
    +    <title id="th-title">th</title>
    +    <path d="M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"></path>
    +  </symbol>
    +  <symbol id="th-large" viewBox="0 0 512 512">
    +    <title id="th-large-title">th-large</title>
    +    <path d="M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"></path>
    +  </symbol>
    +  <symbol id="th-list" viewBox="0 0 512 512">
    +    <title id="th-list-title">th-list</title>
    +    <path d="M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"></path>
    +  </symbol>
    +  <symbol id="theater-masks" viewBox="0 0 640 512">
    +    <title id="theater-masks-title">Theater Masks</title>
    +    <path d="M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"></path>
    +  </symbol>
    +  <symbol id="thermometer" viewBox="0 0 512 512">
    +    <title id="thermometer-title">Thermometer</title>
    +    <path d="M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"></path>
    +  </symbol>
    +  <symbol id="thermometer-empty" viewBox="0 0 256 512">
    +    <title id="thermometer-empty-title">Thermometer Empty</title>
    +    <path d="M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"></path>
    +  </symbol>
    +  <symbol id="thermometer-full" viewBox="0 0 256 512">
    +    <title id="thermometer-full-title">Thermometer Full</title>
    +    <path d="M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"></path>
    +  </symbol>
    +  <symbol id="thermometer-half" viewBox="0 0 256 512">
    +    <title id="thermometer-half-title">Thermometer 1/2 Full</title>
    +    <path d="M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"></path>
    +  </symbol>
    +  <symbol id="thermometer-quarter" viewBox="0 0 256 512">
    +    <title id="thermometer-quarter-title">Thermometer 1/4 Full</title>
    +    <path d="M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"></path>
    +  </symbol>
    +  <symbol id="thermometer-three-quarters" viewBox="0 0 256 512">
    +    <title id="thermometer-three-quarters-title">Thermometer 3/4 Full</title>
    +    <path d="M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"></path>
    +  </symbol>
    +  <symbol id="thumbs-down" viewBox="0 0 512 512">
    +    <title id="thumbs-down-title">thumbs-down</title>
    +    <path d="M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"></path>
    +  </symbol>
    +  <symbol id="thumbs-up" viewBox="0 0 512 512">
    +    <title id="thumbs-up-title">thumbs-up</title>
    +    <path d="M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"></path>
    +  </symbol>
    +  <symbol id="thumbtack" viewBox="0 0 384 512">
    +    <title id="thumbtack-title">Thumbtack</title>
    +    <path d="M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"></path>
    +  </symbol>
    +  <symbol id="ticket-alt" viewBox="0 0 576 512">
    +    <title id="ticket-alt-title">Alternate Ticket</title>
    +    <path d="M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"></path>
    +  </symbol>
    +  <symbol id="times" viewBox="0 0 352 512">
    +    <title id="times-title">Times</title>
    +    <path d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"></path>
    +  </symbol>
    +  <symbol id="times-circle" viewBox="0 0 512 512">
    +    <title id="times-circle-title">Times Circle</title>
    +    <path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"></path>
    +  </symbol>
    +  <symbol id="tint" viewBox="0 0 352 512">
    +    <title id="tint-title">tint</title>
    +    <path d="M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"></path>
    +  </symbol>
    +  <symbol id="tint-slash" viewBox="0 0 640 512">
    +    <title id="tint-slash-title">Tint Slash</title>
    +    <path d="M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"></path>
    +  </symbol>
    +  <symbol id="tired" viewBox="0 0 496 512">
    +    <title id="tired-title">Tired Face</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"></path>
    +  </symbol>
    +  <symbol id="toggle-off" viewBox="0 0 576 512">
    +    <title id="toggle-off-title">Toggle Off</title>
    +    <path d="M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"></path>
    +  </symbol>
    +  <symbol id="toggle-on" viewBox="0 0 576 512">
    +    <title id="toggle-on-title">Toggle On</title>
    +    <path d="M576 256c0 106.039-85.961 192-192 192H192C85.961 448 0 362.039 0 256S85.961 64 192 64h192c106.039 0 192 85.961 192 192zM384 128c-70.741 0-128 57.249-128 128 0 70.741 57.249 128 128 128 70.741 0 128-57.249 128-128 0-70.741-57.249-128-128-128"></path>
    +  </symbol>
    +  <symbol id="toilet-paper" viewBox="0 0 576 512">
    +    <title id="toilet-paper-title">Toilet Paper</title>
    +    <path d="M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"></path>
    +  </symbol>
    +  <symbol id="toolbox" viewBox="0 0 512 512">
    +    <title id="toolbox-title">Toolbox</title>
    +    <path d="M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"></path>
    +  </symbol>
    +  <symbol id="tooth" viewBox="0 0 448 512">
    +    <title id="tooth-title">Tooth</title>
    +    <path d="M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"></path>
    +  </symbol>
    +  <symbol id="torah" viewBox="0 0 448 512">
    +    <title id="torah-title">Torah</title>
    +    <path d="M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM139.11 141.21c-2.77-4.41.4-10.14 5.6-10.14h53.08c.9 0 1.73-.46 2.21-1.22l34.4-54.76c2.6-4.13 8.61-4.13 11.21 0l34.4 54.76a2.61 2.61 0 0 0 2.21 1.22h53.08c5.2 0 8.37 5.73 5.6 10.14L314.01 184l26.88 42.79c2.77 4.4-.4 10.13-5.6 10.13h-53.08c-.9 0-1.73.46-2.21 1.22l-34.4 54.76c-2.6 4.13-8.61 4.13-11.21 0L200 238.15a2.61 2.61 0 0 0-2.21-1.22h-53.08c-5.2 0-8.37-5.73-5.6-10.13l26.88-42.8-26.88-42.79zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"></path>
    +  </symbol>
    +  <symbol id="torii-gate" viewBox="0 0 512 512">
    +    <title id="torii-gate-title">Torii Gate</title>
    +    <path d="M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"></path>
    +  </symbol>
    +  <symbol id="tractor" viewBox="0 0 640 512">
    +    <title id="tractor-title">Tractor</title>
    +    <path d="M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"></path>
    +  </symbol>
    +  <symbol id="trademark" viewBox="0 0 640 512">
    +    <title id="trademark-title">Trademark</title>
    +    <path d="M97.119 163.133H12c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h248.559c6.627 0 12 5.373 12 12v43.133c0 6.627-5.373 12-12 12H175.44V404c0 6.627-5.373 12-12 12h-54.322c-6.627 0-12-5.373-12-12V163.133zM329.825 96h65.425a12 12 0 0 1 11.346 8.093l43.759 127.068c7.161 20.588 16.111 52.812 16.111 52.812h.896s8.95-32.224 16.111-52.812l43.758-127.068A12 12 0 0 1 538.577 96h65.41a12 12 0 0 1 11.961 11.03l24.012 296c.567 6.987-4.951 12.97-11.961 12.97h-54.101a12 12 0 0 1-11.972-11.182l-9.082-132.93c-1.79-24.168 0-53.706 0-53.706h-.896s-10.741 33.566-17.902 53.706l-30.7 84.731a12 12 0 0 1-11.282 7.912h-50.302a12 12 0 0 1-11.282-7.912l-30.7-84.731c-7.161-20.14-17.903-53.706-17.903-53.706h-.895s1.79 29.538 0 53.706l-9.082 132.93c-.428 6.295-5.66 11.182-11.97 11.182H305.4c-7.017 0-12.536-5.994-11.959-12.987l24.425-296A11.999 11.999 0 0 1 329.825 96z"></path>
    +  </symbol>
    +  <symbol id="traffic-light" viewBox="0 0 384 512">
    +    <title id="traffic-light-title">Traffic Light</title>
    +    <path d="M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"></path>
    +  </symbol>
    +  <symbol id="train" viewBox="0 0 448 512">
    +    <title id="train-title">Train</title>
    +    <path d="M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"></path>
    +  </symbol>
    +  <symbol id="transgender" viewBox="0 0 384 512">
    +    <title id="transgender-title">Transgender</title>
    +    <path d="M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"></path>
    +  </symbol>
    +  <symbol id="transgender-alt" viewBox="0 0 480 512">
    +    <title id="transgender-alt-title">Alternate Transgender</title>
    +    <path d="M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"></path>
    +  </symbol>
    +  <symbol id="trash" viewBox="0 0 448 512">
    +    <title id="trash-title">Trash</title>
    +    <path d="M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm415.2 56.7L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32.8 140.7c-.4-6.9 5.1-12.7 12-12.7h358.5c6.8 0 12.3 5.8 11.9 12.7z"></path>
    +  </symbol>
    +  <symbol id="trash-alt" viewBox="0 0 448 512">
    +    <title id="trash-alt-title">Alternate Trash</title>
    +    <path d="M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"></path>
    +  </symbol>
    +  <symbol id="tree" viewBox="0 0 384 512">
    +    <title id="tree-title">Tree</title>
    +    <path d="M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"></path>
    +  </symbol>
    +  <symbol id="trophy" viewBox="0 0 576 512">
    +    <title id="trophy-title">trophy</title>
    +    <path d="M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"></path>
    +  </symbol>
    +  <symbol id="truck" viewBox="0 0 640 512">
    +    <title id="truck-title">truck</title>
    +    <path d="M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"></path>
    +  </symbol>
    +  <symbol id="truck-loading" viewBox="0 0 640 512">
    +    <title id="truck-loading-title">Truck Loading</title>
    +    <path d="M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"></path>
    +  </symbol>
    +  <symbol id="truck-monster" viewBox="0 0 640 512">
    +    <title id="truck-monster-title">Truck Monster</title>
    +    <path d="M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"></path>
    +  </symbol>
    +  <symbol id="truck-moving" viewBox="0 0 640 512">
    +    <title id="truck-moving-title">Truck Moving</title>
    +    <path d="M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="truck-pickup" viewBox="0 0 640 512">
    +    <title id="truck-pickup-title">Truck Side</title>
    +    <path d="M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"></path>
    +  </symbol>
    +  <symbol id="tshirt" viewBox="0 0 640 512">
    +    <title id="tshirt-title">T-Shirt</title>
    +    <path d="M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"></path>
    +  </symbol>
    +  <symbol id="tty" viewBox="0 0 512 512">
    +    <title id="tty-title">TTY</title>
    +    <path d="M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"></path>
    +  </symbol>
    +  <symbol id="tv" viewBox="0 0 640 512">
    +    <title id="tv-title">Television</title>
    +    <path d="M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z"></path>
    +  </symbol>
    +  <symbol id="umbrella" viewBox="0 0 576 512">
    +    <title id="umbrella-title">Umbrella</title>
    +    <path d="M557.011 267.631c-51.432-45.217-107.572-43.698-158.567 30.731-5.298 7.861-14.906 7.165-19.736 0-2.483-3.624-32.218-60.808-90.708-60.808-45.766 0-70.542 31.378-90.709 60.808-4.829 7.165-14.436 7.861-19.734 0-50.904-74.285-106.613-76.406-158.567-30.731-10.21 8.264-20.912-1.109-18.696-9.481C32.146 134.573 158.516 64.612 288.001 64.612c128.793 0 256.546 69.961 287.706 193.538 2.206 8.322-8.426 17.793-18.696 9.481zM256 261.001V416c0 17.645-14.355 32-32 32s-32-14.355-32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 52.935 43.065 96 96 96s96-43.065 96-96V261.288c-21.836-10.806-45.425-9.737-64-.287zm64-211.007V32c0-17.673-14.327-32-32-32s-32 14.327-32 32v17.987a372.105 372.105 0 0 1 64 .007z"></path>
    +  </symbol>
    +  <symbol id="umbrella-beach" viewBox="0 0 640 512">
    +    <title id="umbrella-beach-title">Umbrella Beach</title>
    +    <path d="M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="underline" viewBox="0 0 448 512">
    +    <title id="underline-title">Underline</title>
    +    <path d="M224.264 388.24c-91.669 0-156.603-51.165-156.603-151.392V64H39.37c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h137.39c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.813v172.848c0 53.699 28.314 79.444 76.317 79.444 46.966 0 75.796-25.434 75.796-79.965V64h-28.291c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h136.868c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.291v172.848c0 99.405-64.881 151.392-156.082 151.392zM16 448h416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16z"></path>
    +  </symbol>
    +  <symbol id="undo" viewBox="0 0 512 512">
    +    <title id="undo-title">Undo</title>
    +    <path d="M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"></path>
    +  </symbol>
    +  <symbol id="undo-alt" viewBox="0 0 512 512">
    +    <title id="undo-alt-title">Alternate Undo</title>
    +    <path d="M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"></path>
    +  </symbol>
    +  <symbol id="universal-access" viewBox="0 0 512 512">
    +    <title id="universal-access-title">Universal Access</title>
    +    <path d="M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"></path>
    +  </symbol>
    +  <symbol id="university" viewBox="0 0 512 512">
    +    <title id="university-title">University</title>
    +    <path d="M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"></path>
    +  </symbol>
    +  <symbol id="unlink" viewBox="0 0 512 512">
    +    <title id="unlink-title">unlink</title>
    +    <path d="M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"></path>
    +  </symbol>
    +  <symbol id="unlock" viewBox="0 0 448 512">
    +    <title id="unlock-title">unlock</title>
    +    <path d="M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="unlock-alt" viewBox="0 0 448 512">
    +    <title id="unlock-alt-title">Alternate Unlock</title>
    +    <path d="M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"></path>
    +  </symbol>
    +  <symbol id="upload" viewBox="0 0 512 512">
    +    <title id="upload-title">Upload</title>
    +    <path d="M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"></path>
    +  </symbol>
    +  <symbol id="user" viewBox="0 0 448 512">
    +    <title id="user-title">User</title>
    +    <path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"></path>
    +  </symbol>
    +  <symbol id="user-alt" viewBox="0 0 512 512">
    +    <title id="user-alt-title">Alternate User</title>
    +    <path d="M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"></path>
    +  </symbol>
    +  <symbol id="user-alt-slash" viewBox="0 0 640 512">
    +    <title id="user-alt-slash-title">Alternate User Slash</title>
    +    <path d="M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"></path>
    +  </symbol>
    +  <symbol id="user-astronaut" viewBox="0 0 448 512">
    +    <title id="user-astronaut-title">User Astronaut</title>
    +    <path d="M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"></path>
    +  </symbol>
    +  <symbol id="user-check" viewBox="0 0 640 512">
    +    <title id="user-check-title">User Check</title>
    +    <path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"></path>
    +  </symbol>
    +  <symbol id="user-circle" viewBox="0 0 496 512">
    +    <title id="user-circle-title">User Circle</title>
    +    <path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"></path>
    +  </symbol>
    +  <symbol id="user-clock" viewBox="0 0 640 512">
    +    <title id="user-clock-title">User Clock</title>
    +    <path d="M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"></path>
    +  </symbol>
    +  <symbol id="user-cog" viewBox="0 0 640 512">
    +    <title id="user-cog-title">User Cog</title>
    +    <path d="M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"></path>
    +  </symbol>
    +  <symbol id="user-edit" viewBox="0 0 640 512">
    +    <title id="user-edit-title">User Edit</title>
    +    <path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"></path>
    +  </symbol>
    +  <symbol id="user-friends" viewBox="0 0 640 512">
    +    <title id="user-friends-title">User Friends</title>
    +    <path d="M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"></path>
    +  </symbol>
    +  <symbol id="user-graduate" viewBox="0 0 448 512">
    +    <title id="user-graduate-title">User Graduate</title>
    +    <path d="M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"></path>
    +  </symbol>
    +  <symbol id="user-injured" viewBox="0 0 448 512">
    +    <title id="user-injured-title">User Injured</title>
    +    <path d="M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"></path>
    +  </symbol>
    +  <symbol id="user-lock" viewBox="0 0 640 512">
    +    <title id="user-lock-title">User Lock</title>
    +    <path d="M320 320c0-11.1 3.1-21.4 8.1-30.5-4.8-.5-9.5-1.5-14.5-1.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h280.9c-5.5-9.5-8.9-20.3-8.9-32V320zm-96-64c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm384 32h-32v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80v48h-32c-17.7 0-32 14.3-32 32v160c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zm-80 0h-64v-48c0-17.6 14.4-32 32-32s32 14.4 32 32v48z"></path>
    +  </symbol>
    +  <symbol id="user-md" viewBox="0 0 448 512">
    +    <title id="user-md-title">user-md</title>
    +    <path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"></path>
    +  </symbol>
    +  <symbol id="user-minus" viewBox="0 0 640 512">
    +    <title id="user-minus-title">User Minus</title>
    +    <path d="M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"></path>
    +  </symbol>
    +  <symbol id="user-ninja" viewBox="0 0 448 512">
    +    <title id="user-ninja-title">User Ninja</title>
    +    <path d="M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"></path>
    +  </symbol>
    +  <symbol id="user-plus" viewBox="0 0 640 512">
    +    <title id="user-plus-title">User Plus</title>
    +    <path d="M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"></path>
    +  </symbol>
    +  <symbol id="user-secret" viewBox="0 0 448 512">
    +    <title id="user-secret-title">User Secret</title>
    +    <path d="M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"></path>
    +  </symbol>
    +  <symbol id="user-shield" viewBox="0 0 640 512">
    +    <title id="user-shield-title">User Shield</title>
    +    <path d="M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"></path>
    +  </symbol>
    +  <symbol id="user-slash" viewBox="0 0 640 512">
    +    <title id="user-slash-title">User Slash</title>
    +    <path d="M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"></path>
    +  </symbol>
    +  <symbol id="user-tag" viewBox="0 0 640 512">
    +    <title id="user-tag-title">User Tag</title>
    +    <path d="M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"></path>
    +  </symbol>
    +  <symbol id="user-tie" viewBox="0 0 448 512">
    +    <title id="user-tie-title">User Tie</title>
    +    <path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"></path>
    +  </symbol>
    +  <symbol id="user-times" viewBox="0 0 640 512">
    +    <title id="user-times-title">Remove User</title>
    +    <path d="M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"></path>
    +  </symbol>
    +  <symbol id="users" viewBox="0 0 640 512">
    +    <title id="users-title">Users</title>
    +    <path d="M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"></path>
    +  </symbol>
    +  <symbol id="users-cog" viewBox="0 0 640 512">
    +    <title id="users-cog-title">Users Cog</title>
    +    <path d="M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"></path>
    +  </symbol>
    +  <symbol id="utensil-spoon" viewBox="0 0 512 512">
    +    <title id="utensil-spoon-title">Utensil Spoon</title>
    +    <path d="M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"></path>
    +  </symbol>
    +  <symbol id="utensils" viewBox="0 0 416 512">
    +    <title id="utensils-title">Utensils</title>
    +    <path d="M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"></path>
    +  </symbol>
    +  <symbol id="vector-square" viewBox="0 0 512 512">
    +    <title id="vector-square-title">Vector Square</title>
    +    <path d="M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"></path>
    +  </symbol>
    +  <symbol id="venus" viewBox="0 0 288 512">
    +    <title id="venus-title">Venus</title>
    +    <path d="M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"></path>
    +  </symbol>
    +  <symbol id="venus-double" viewBox="0 0 512 512">
    +    <title id="venus-double-title">Venus Double</title>
    +    <path d="M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"></path>
    +  </symbol>
    +  <symbol id="venus-mars" viewBox="0 0 576 512">
    +    <title id="venus-mars-title">Venus Mars</title>
    +    <path d="M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"></path>
    +  </symbol>
    +  <symbol id="vial" viewBox="0 0 480 512">
    +    <title id="vial-title">Vial</title>
    +    <path d="M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"></path>
    +  </symbol>
    +  <symbol id="vials" viewBox="0 0 640 512">
    +    <title id="vials-title">Vials</title>
    +    <path d="M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"></path>
    +  </symbol>
    +  <symbol id="video" viewBox="0 0 576 512">
    +    <title id="video-title">Video</title>
    +    <path d="M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"></path>
    +  </symbol>
    +  <symbol id="video-slash" viewBox="0 0 640 512">
    +    <title id="video-slash-title">Video Slash</title>
    +    <path d="M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"></path>
    +  </symbol>
    +  <symbol id="vihara" viewBox="0 0 640 512">
    +    <title id="vihara-title">Vihara</title>
    +    <path d="M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"></path>
    +  </symbol>
    +  <symbol id="volleyball-ball" viewBox="0 0 495.9 512">
    +    <title id="volleyball-ball-title">Volleyball Ball</title>
    +    <path d="M223.3 243.4c-.9-37-8.6-72.8-22.7-105.7-90.8 42.4-157.5 122.4-180.3 216.8 13.4 30.8 32.9 58.3 56.9 81.1 22.7-79.2 74.2-147.8 146.1-192.2zM186.4 109c-15-26.4-34.5-50.1-57.4-70.7C38 88.1-15.8 191.2 4 300.5c33.4-83.1 98.4-152 182.4-191.5zM374 274.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5 57.3 59.3 91 138.2 93.5 222.7 32.5 17.7 67.3 29 102.9 33.2zm-124.7 9.5c-31.6 19.3-58.7 43.9-80.2 72.6 82 57.3 184.5 75.1 277.5 47.8 19.7-26.4 34.2-56.8 42.2-89.9-26.6 6.6-53.7 10.4-80.9 10.4-54.6-.1-108.9-14.1-158.6-40.9zM151 383.3c-15.2 26-25.7 54.4-32.1 84.2 37.6 23 81.7 36.5 129.1 36.5 61 0 116.7-22.1 159.9-58.6C295 461.5 204.6 420.6 151 383.3zM331.3 22.7c55.3 70.4 82.5 161.2 74.6 253.6 30.3.2 60.5-4.8 89.7-14.2 0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"></path>
    +  </symbol>
    +  <symbol id="volume-down" viewBox="0 0 384 512">
    +    <title id="volume-down-title">Volume Down</title>
    +    <path d="M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"></path>
    +  </symbol>
    +  <symbol id="volume-mute" viewBox="0 0 512 512">
    +    <title id="volume-mute-title">Volume Mute</title>
    +    <path d="M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"></path>
    +  </symbol>
    +  <symbol id="volume-off" viewBox="0 0 257.33 512">
    +    <title id="volume-off-title">Volume Off</title>
    +    <path d="M216.36 71.04L127.39 160H25.33c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.47-25.96-31.98-40.97-16.98z"></path>
    +  </symbol>
    +  <symbol id="volume-up" viewBox="0 0 576 512">
    +    <title id="volume-up-title">Volume Up</title>
    +    <path d="M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"></path>
    +  </symbol>
    +  <symbol id="walking" viewBox="0 0 320 512">
    +    <title id="walking-title">Walking</title>
    +    <path d="M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"></path>
    +  </symbol>
    +  <symbol id="wallet" viewBox="0 0 512 512">
    +    <title id="wallet-title">Wallet</title>
    +    <path d="M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="warehouse" viewBox="0 0 640 512">
    +    <title id="warehouse-title">Warehouse</title>
    +    <path d="M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"></path>
    +  </symbol>
    +  <symbol id="weight" viewBox="0 0 512 512">
    +    <title id="weight-title">Weight</title>
    +    <path d="M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"></path>
    +  </symbol>
    +  <symbol id="weight-hanging" viewBox="0 0 512 512">
    +    <title id="weight-hanging-title">Hanging Weight</title>
    +    <path d="M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"></path>
    +  </symbol>
    +  <symbol id="wheelchair" viewBox="0 0 512 512">
    +    <title id="wheelchair-title">Wheelchair</title>
    +    <path d="M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"></path>
    +  </symbol>
    +  <symbol id="wifi" viewBox="0 0 640 512">
    +    <title id="wifi-title">WiFi</title>
    +    <path d="M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"></path>
    +  </symbol>
    +  <symbol id="wind" viewBox="0 0 512 512">
    +    <title id="wind-title">Wind</title>
    +    <path d="M156.66 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h142.19c15.95 0 30.77 10.85 33.37 26.58C194.86 366.6 179.42 384 160 384c-14.11 0-26.13-9.19-30.37-21.9-2.11-6.31-8.6-10.1-15.25-10.1H81.63c-9.8 0-17.73 8.81-15.86 18.43C74.39 414.58 113.37 448 160 448c57.09 0 102.7-50.09 95.19-108.63-6.21-48.39-49.74-83.37-98.53-83.37zM16 224h336c59.7 0 106.83-54.76 93.83-116.69-7.61-36.23-36.91-65.53-73.14-73.14-55.44-11.64-105.13 24.91-114.93 75.53-1.86 9.57 6.09 18.3 15.84 18.3h32.8c6.65 0 13.14-3.79 15.25-10.1C325.88 105.19 337.89 96 352 96c19.42 0 34.86 17.39 31.55 37.41-2.6 15.73-17.42 26.59-33.37 26.59H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm384 32H243.68c19.34 16.57 33.19 38.79 39.77 64H400c26.47 0 48 21.53 48 48s-21.53 48-48 48c-17.86 0-33.33-9.86-41.56-24.38-2.85-5.03-8.69-7.62-14.47-7.62h-33.82c-10.91 0-18.96 10.81-15.35 21.1 17.77 50.6 70.54 84.75 129.41 72.35 41.22-8.69 75.1-41.65 84.67-82.68C525.98 321.46 470.48 256 400 256z"></path>
    +  </symbol>
    +  <symbol id="window-close" viewBox="0 0 512 512">
    +    <title id="window-close-title">Window Close</title>
    +    <path d="M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"></path>
    +  </symbol>
    +  <symbol id="window-maximize" viewBox="0 0 512 512">
    +    <title id="window-maximize-title">Window Maximize</title>
    +    <path d="M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"></path>
    +  </symbol>
    +  <symbol id="window-minimize" viewBox="0 0 512 512">
    +    <title id="window-minimize-title">Window Minimize</title>
    +    <path d="M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"></path>
    +  </symbol>
    +  <symbol id="window-restore" viewBox="0 0 512 512">
    +    <title id="window-restore-title">Window Restore</title>
    +    <path d="M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"></path>
    +  </symbol>
    +  <symbol id="wine-bottle" viewBox="0 0 512 512">
    +    <title id="wine-bottle-title">Wine Bottle</title>
    +    <path d="M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"></path>
    +  </symbol>
    +  <symbol id="wine-glass" viewBox="0 0 288 512">
    +    <title id="wine-glass-title">Wine Glass</title>
    +    <path d="M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"></path>
    +  </symbol>
    +  <symbol id="wine-glass-alt" viewBox="0 0 288 512">
    +    <title id="wine-glass-alt-title">Alternate Wine Glas</title>
    +    <path d="M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"></path>
    +  </symbol>
    +  <symbol id="won-sign" viewBox="0 0 576 512">
    +    <title id="won-sign-title">Won Sign</title>
    +    <path d="M564 192c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-48.028l18.572-80.61c1.732-7.518-3.978-14.694-11.693-14.694h-46.107a11.998 11.998 0 0 0-11.736 9.5L450.73 128H340.839l-19.725-85.987a12 12 0 0 0-11.696-9.317H265.43a12 12 0 0 0-11.687 9.277L233.696 128H124.975L107.5 42.299a12 12 0 0 0-11.758-9.602H53.628c-7.686 0-13.39 7.124-11.709 14.624L60 128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h62.342l7.171 32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h83.856l40.927 182.624A12 12 0 0 0 148.492 480h56.767c5.583 0 10.428-3.85 11.689-9.288L259.335 288h55.086l42.386 182.712A12 12 0 0 0 368.496 480h56.826a12 12 0 0 0 11.694-9.306L479.108 288H564c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-70.146l7.373-32H564zm-425.976 0h80.757l-7.457 32h-66.776l-6.524-32zm45.796 150.029c-6.194 25.831-6.758 47.25-7.321 47.25h-1.126s-1.689-22.05-6.758-47.25L157.599 288h38.812l-12.591 54.029zM274.182 224l1.996-8.602c1.856-7.962 3.457-15.968 4.803-23.398h11.794c1.347 7.43 2.947 15.436 4.803 23.398l1.996 8.602h-25.392zm130.959 118.029c-5.068 25.2-6.758 47.25-6.758 47.25h-1.126c-.563 0-1.126-21.42-7.321-47.25L377.542 288h39.107l-11.508 54.029zM430.281 224h-67.42l-7.34-32h81.577l-6.817 32z"></path>
    +  </symbol>
    +  <symbol id="wrench" viewBox="0 0 512 512">
    +    <title id="wrench-title">Wrench</title>
    +    <path d="M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"></path>
    +  </symbol>
    +  <symbol id="x-ray" viewBox="0 0 640 512">
    +    <title id="x-ray-title">X-Ray</title>
    +    <path d="M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"></path>
    +  </symbol>
    +  <symbol id="yen-sign" viewBox="0 0 384 512">
    +    <title id="yen-sign-title">Yen Sign</title>
    +    <path d="M351.208 32h-65.277a12 12 0 0 0-10.778 6.724l-55.39 113.163c-14.513 34.704-27.133 71.932-27.133 71.932h-1.262s-12.62-37.228-27.133-71.932l-55.39-113.163A11.997 11.997 0 0 0 98.068 32H32.792c-9.057 0-14.85 9.65-10.59 17.643L102.322 200H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h88.162L152 293.228V320H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h108v92c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-92h108c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H232v-26.772L251.838 256H340c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12h-58.322l80.12-150.357C366.058 41.65 360.266 32 351.208 32z"></path>
    +  </symbol>
    +  <symbol id="yin-yang" viewBox="0 0 496 512">
    +    <title id="yin-yang-title">Yin Yang</title>
    +    <path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"></path>
    +  </symbol>
    +</svg>
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/500px.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/500px.svg
    new file mode 100644
    index 00000000000..1f3bf422da3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/500px.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/accessible-icon.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/accessible-icon.svg
    new file mode 100644
    index 00000000000..6fa1c652a66
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/accessible-icon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/accusoft.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/accusoft.svg
    new file mode 100644
    index 00000000000..9b3f66881b9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/accusoft.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M482.2 372.1C476.5 365.2 250 75 242.3 65.5c-13.7-17.2 0-16.8 19.2-16.9 9.7-.1 106.3-.6 116.5-.6 24.1-.1 28.7.6 38.4 12.8 2.1 2.7 205.1 245.8 207.2 248.3 5.5 6.7 15.2 19.1 7.2 23.4-2.4 1.3-114.6 47.7-117.8 48.9-10.1 4-17.5 6.8-30.8-9.3m114.7-5.6s-115 50.4-117.5 51.6c-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2-2.3-.3-24.6-4.7-38-7.2m-326-181.3s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3v-1l-51.2-65.8"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/acquisitions-incorporated.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/acquisitions-incorporated.svg
    new file mode 100644
    index 00000000000..afcd96a9f96
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/acquisitions-incorporated.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 344.76 512"><path d="M344 0c-.81 5.47-1.63 10.79-2.39 16.12-1.39 9.74-2.9 19.48-4.05 29.25-.35 2.96-1.21 4.32-4.3 4.33-20.61.11-41.21.14-61.82.53-18.76.35-37.58.28-56.23 2-13.42 1.24-23.28 12.67-18.88 26.64 8.55 27.11 27.65 69.1 36.37 89.45 65.72 154.14 61.43 156.99 84 158.56 6.67.46 13.4.07 20.43.07 1.39 9.4 2.66 18.04 4.05 27.51H225.17v-27c10.33 0 20.36-.12 30.38.06 3.52.06 5.05-.63 3.44-4.37-4.44-10.29-8.77-20.63-13.25-30.9-1.62-3.72-4.06-4.78-8.4-3.52-12.32 3.59-24.79 6.69-37.26 9.69-4.25 1.02-5.93 2.77-5.86 7.46.85 57.47.95 127.53 1 129.12.4 12.54 8.75 21.41 21.03 23.07.89.12 12.89 2.72 112.68 2.56 8.25-.01 8.41-.17 9.57 7.56 2.15 14.34 4.14 28.7 6.26 43.53-367.75 0-153.93.61-337.09 0-3.95-.01-6.08-.69-5.28-5.74 2.04-12.86 3.5-25.82 4.97-38.76.55-4.81 2.29-6.81 7.63-6.77 118.09.99 114.93.35 121.43-2.39 9.42-3.98 14.98-12.85 14.95-23.07-.12-42.93-.33-85.86-.25-128.79.01-3.87-1.16-5.99-4.56-6.84-15.64-3.92-31.31-7.71-47.58-11.7-5.23 12.27-10.39 24.37-15.66 36.7 1.83 3.35 28.38 2.93 35.28 2.93v27.64H4.34c1.03-8.61 1.77-16.81 3.23-24.88.25-1.41 3.53-3.14 5.47-3.22 8.46-.35 16.95-.29 25.43-.09 3.99.09 5.92-1.04 7.61-5.16 16.63-40.7 13.51-31.17 67.31-160.97 31.53-76.09 33.06-76.02 32.64-87.43-.69-18.56-25.37-22.26-37.65-22.11-30.04.38-38.45-.47-101.84-.47C-.62 6.11 2.37 18.54.16 5.32-.55 1.08 1.19.03 4.8.02m113.08 247.19c2.3 1.15 3.97 2.29 5.82 2.87 13.29 4.21 26.64 8.24 39.93 12.46 6.14 1.95 11.98 2.12 18.3.05 13.02-4.28 26.29-7.81 39.43-11.73 1.46-.44 2.74-1.44 3.93-2.09-6.71-17.37-13.12-34.15-19.67-50.88-8.88-22.67-17.63-60.32-26.98-82.81-1.53-.78-1.91 2.36-9.43 0-17.11 44.05-34.14 87.88-51.33 132.13z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/adn.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/adn.svg
    new file mode 100644
    index 00000000000..aef2dd756e0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/adn.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/adversal.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/adversal.svg
    new file mode 100644
    index 00000000000..77d05a80197
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/adversal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/affiliatetheme.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/affiliatetheme.svg
    new file mode 100644
    index 00000000000..fe538d22198
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/affiliatetheme.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/algolia.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/algolia.svg
    new file mode 100644
    index 00000000000..ece4744b9cd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/algolia.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/alipay.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/alipay.svg
    new file mode 100644
    index 00000000000..e7c5139af28
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/alipay.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/amazon-pay.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/amazon-pay.svg
    new file mode 100644
    index 00000000000..bd835e99a99
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/amazon-pay.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 611.2 512"><path d="M0 325.2c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.7 20.4 83.2 35.6 127.4 46.3 20.9 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.4-6.7 110.9-20.8 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-2.8 2.8-6.3 5.1-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.6 7.9-49.6 13.8-75.1 17.6-17.6 2.6-35.4 4.4-53.2 4.8-.8 0-1.7.2-2.5.3H294c-.8-.1-1.7-.3-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.7-33.7-2.6-50.4-5.3-27.4-4.5-54.2-11.4-80.4-20.9-54.1-19.6-102.6-48.6-145.6-87-1.8-1.6-3-3.8-4.4-5.7v-2zM158 65c-1.4.2-2.9.4-4.3.6-14 1.7-26.6 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.5-.4-1-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6H87.8c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3V215c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zm-47.4 41.9c0-1.5.4-2.4 1.7-3.3 13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-1.2-.9-1.7-1.7-1.7-3.3.1-14.1 0-28.1 0-42.2 0-14 .1-28 0-42.1zM316.3 65c-1 .1-2 .3-2.9.4-9.8.5-19.4 1.7-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9 0 .4-.1.9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.5-21.1-4.3-32-4.9-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4.4-.4.9-.7 1.6-1.1.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0 2.7-.1 4.5-1.9 4.8-4.7.1-.9.1-1.9.1-2.8v-106c0-4.3-.2-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7c0 1.3-.4 2.2-1.5 3-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8-6.3-2.5-10.4-6.9-12.4-13.3s-2-13-.1-19.4c2.5-8.3 8.4-13 16.4-15.6 8.1-2.6 16.5-3 24.8-2.2 8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3-.1 4.7-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3-6.8-2.3-13.9-3.3-21-3.9-13.1-1.1-26.2-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 1-2.8 2.1-3.7 3.5-.7 1.1-.9 2.8-.5 4 .4 1.5 2.1 1.9 3.6 1.8.7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.8.3 9.7 1.4 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.7-.4 3.6-1.3 4.8-2.5 4.4-4.3 8.9-8.6 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM479.1 198.9c-12.9-35.7-25.8-71.5-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5.5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97.1 59.1 145.5 1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5.1 1.4-10.2 1.6-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9.1 5.5 2 8 7.4 8.9 5.6 1 11.3 1.9 16.9 2 17.1.4 30.7-6.5 39.5-21.4 3.5-5.9 6.7-12.1 9.2-18.4 23.7-59.8 47.1-119.7 70.6-179.6.7-1.8 1.3-3.6 1.6-5.5.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-3.7 0-6.3 1.6-7.7 5.2-.5 1.4-1.1 2.7-1.6 4.1-11.6 33.3-23.2 66.6-34.8 100-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/amazon.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/amazon.svg
    new file mode 100644
    index 00000000000..f9110c079dc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/amazon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/amilia.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/amilia.svg
    new file mode 100644
    index 00000000000..07f64dc0794
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/amilia.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm-87.9 327.7c0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5V380c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/android.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/android.svg
    new file mode 100644
    index 00000000000..a3d17856b02
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/android.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/angellist.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/angellist.svg
    new file mode 100644
    index 00000000000..fb709ae4236
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/angellist.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/angrycreative.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/angrycreative.svg
    new file mode 100644
    index 00000000000..3e997879d89
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/angrycreative.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/angular.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/angular.svg
    new file mode 100644
    index 00000000000..2757eb3a336
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/angular.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 415.6 512"><path d="M169.7 268.1h76.2l-38.1-91.6-38.1 91.6zM207.8 32L0 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7L207.8 32zM338 373.8h-48.6l-26.2-65.4H152.6l-26.2 65.4H77.7L207.8 81.5 338 373.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/app-store-ios.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/app-store-ios.svg
    new file mode 100644
    index 00000000000..4efbe09c2d7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/app-store-ios.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/app-store.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/app-store.svg
    new file mode 100644
    index 00000000000..d51e5796634
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/app-store.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/apper.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/apper.svg
    new file mode 100644
    index 00000000000..5286d976597
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/apper.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/apple-pay.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/apple-pay.svg
    new file mode 100644
    index 00000000000..7507f136ea3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/apple-pay.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/apple.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/apple.svg
    new file mode 100644
    index 00000000000..70916fafe7f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/apple.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 376.5 512"><path d="M314.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C59.3 141.2 0 184.8 0 273.5c0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/asymmetrik.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/asymmetrik.svg
    new file mode 100644
    index 00000000000..3de4c94ffe4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/asymmetrik.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/audible.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/audible.svg
    new file mode 100644
    index 00000000000..fdc6aed3c51
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/audible.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/autoprefixer.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/autoprefixer.svg
    new file mode 100644
    index 00000000000..8142686766a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/autoprefixer.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/avianex.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/avianex.svg
    new file mode 100644
    index 00000000000..ef30c39521d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/avianex.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/aviato.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/aviato.svg
    new file mode 100644
    index 00000000000..fd5be855fd3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/aviato.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/aws.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/aws.svg
    new file mode 100644
    index 00000000000..3b90b838974
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/aws.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/bandcamp.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/bandcamp.svg
    new file mode 100644
    index 00000000000..d8521ee68f5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/bandcamp.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/behance-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/behance-square.svg
    new file mode 100644
    index 00000000000..82b0ec05048
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/behance-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/behance.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/behance.svg
    new file mode 100644
    index 00000000000..eb073819b0f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/behance.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/bimobject.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/bimobject.svg
    new file mode 100644
    index 00000000000..5e946accaf1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/bimobject.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/bitbucket.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/bitbucket.svg
    new file mode 100644
    index 00000000000..0116bdb2537
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/bitbucket.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M23.1 32C14.2 31.9 7 38.9 6.9 47.8c0 .9.1 1.8.2 2.8L74.9 462c1.7 10.4 10.7 18 21.2 18.1h325.1c7.9.1 14.7-5.6 16-13.4l67.8-416c1.4-8.7-4.5-16.9-13.2-18.3-.9-.1-1.8-.2-2.8-.2L23.1 32zm285.3 297.3H204.6l-28.1-146.8h157l-25.1 146.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/bitcoin.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/bitcoin.svg
    new file mode 100644
    index 00000000000..d7b8f27dbbd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/bitcoin.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/bity.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/bity.svg
    new file mode 100644
    index 00000000000..79ef39d317f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/bity.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/black-tie.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/black-tie.svg
    new file mode 100644
    index 00000000000..50d61ef1b0a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/black-tie.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/blackberry.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/blackberry.svg
    new file mode 100644
    index 00000000000..80f0bebe7fb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/blackberry.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/blogger-b.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/blogger-b.svg
    new file mode 100644
    index 00000000000..226de81784e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/blogger-b.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/blogger.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/blogger.svg
    new file mode 100644
    index 00000000000..da27ac600c9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/blogger.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/bluetooth-b.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/bluetooth-b.svg
    new file mode 100644
    index 00000000000..e61c20ca9fc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/bluetooth-b.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/bluetooth.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/bluetooth.svg
    new file mode 100644
    index 00000000000..526332d05d7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/bluetooth.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/btc.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/btc.svg
    new file mode 100644
    index 00000000000..d9ab6392e39
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/btc.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/buromobelexperte.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/buromobelexperte.svg
    new file mode 100644
    index 00000000000..d450b35595f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/buromobelexperte.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/buysellads.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/buysellads.svg
    new file mode 100644
    index 00000000000..c5707c3dd19
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/buysellads.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cc-amazon-pay.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-amazon-pay.svg
    new file mode 100644
    index 00000000000..41e908bd9c0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-amazon-pay.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cc-amex.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-amex.svg
    new file mode 100644
    index 00000000000..9050a46a9ea
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-amex.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M576 255.4c-37.9-.2-44.2-.9-54.5 5v-5c-45.3 0-53.5-1.7-64.9 5.2v-5.2h-78.2v5.1c-11.4-6.5-21.4-5.1-75.7-5.1v5.6c-6.3-3.7-14.5-5.6-24.3-5.6h-58c-3.5 3.8-12.5 13.7-15.7 17.2-12.7-14.1-10.5-11.6-15.5-17.2h-83.1v92.3h82c3.3-3.5 12.9-13.9 16.1-17.4 12.7 14.3 10.3 11.7 15.4 17.4h48.9c0-14.7.1-8.3.1-23 11.5.2 24.3-.2 34.3-6.2 0 13.9-.1 17.1-.1 29.2h39.6c0-18.5.1-7.4.1-25.3 6.2 0 7.7 0 9.4.1.1 1.3 0 0 0 25.2 152.8 0 145.9 1.1 156.7-4.5v4.5c34.8 0 54.8 2.2 67.5-6.1V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V228.3h26.6c4.2-10.1 2.2-5.3 6.4-15.3h19.2c4.2 10 2.2 5.2 6.4 15.3h52.9v-11.4c2.2 5 1.1 2.5 5.1 11.4h29.5c2.4-5.5 2.6-5.8 5.1-11.4v11.4h135.5v-25.1c6.4 0 8-.1 9.8.2 0 0-.2 10.9.1 24.8h66.5v-8.9c7.4 5.9 17.4 8.9 29.7 8.9h26.8c4.2-10.1 2.2-5.3 6.4-15.3h19c6.5 15 .2.5 6.6 15.3h52.8v-21.9c11.8 19.7 7.8 12.9 13.2 21.9h41.6v-92h-39.9v18.4c-12.2-20.2-6.3-10.4-11.2-18.4h-43.3v20.6c-6.2-14.6-4.6-10.8-8.8-20.6h-32.4c-.4 0-2.3.2-2.3-.3h-27.6c-12.8 0-23.1 3.2-30.7 9.3v-9.3h-39.9v5.3c-10.8-6.1-20.7-5.1-64.4-5.3-.1 0-11.6-.1-11.6 0h-103c-2.5 6.1-6.8 16.4-12.6 30-2.8-6-11-23.8-13.9-30h-46V157c-7.4-17.4-4.7-11-9-21.1H22.9c-3.4 7.9-13.7 32-23.1 53.9V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48v175.4zm-186.6-80.6c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm-19.9 130.9c9.2 3.3 11 9.5 11 18.4l-.1 13.8h-16.6l.1-11.5c0-11.8-3.8-13.8-14.8-13.8h-17.6l-.1 25.3h-16.6l.1-69.3h39.4c13 0 27.1 2.3 27.1 18.7-.1 7.6-4.2 15.3-11.9 18.4zm-6.3-15.4c0-6.4-5.6-7.4-10.7-7.4h-21v15.6h20.7c5.6 0 11-1.3 11-8.2zm181.7-7.1H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-99.2-.3v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5h38.5zm42.2 40.1h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-78.1-158.7c-17.4-.3-33.2-4.1-33.2 19.7 0 11.8 2.8 19.9 16.1 19.9h7.4l23.5-54.5h24.8l27.9 65.4v-65.4h25.3l29.1 48.1v-48.1h16.9v69H524l-31.2-51.9v51.9h-33.7l-6.6-15.3h-34.3l-6.4 15.3h-19.2c-22.8 0-33-11.8-33-34 0-23.3 10.5-35.3 34-35.3h16.1v15.2zm14.3 24.5h22.8l-11.2-27.6-11.6 27.6zm-72.6-39.6h-16.9v69.3h16.9v-69.3zm-38.1 37.3c9.5 3.3 11 9.2 11 18.4v13.5h-16.6c-.3-14.8 3.6-25.1-14.8-25.1h-18v25.1h-16.4v-69.3l39.1.3c13.3 0 27.4 2 27.4 18.4.1 8-4.3 15.7-11.7 18.7zm-6.7-15.3c0-6.4-5.6-7.4-10.7-7.4h-21v15.3h20.7c5.7 0 11-1.3 11-7.9zm-59.5-7.4v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5h38.9zm-84.6 54.7v-54.2l-24 54.2H124l-24-54.2v54.2H66.2l-6.4-15.3H25.3l-6.4 15.3H1l29.7-69.3h24.5l28.1 65.7v-65.7h27.1l21.7 47 19.7-47h27.6v69.3h-16.8zM53.9 188.8l-11.5-27.6-11.2 27.6h22.7zm253 102.5c0 27.9-30.4 23.3-49.3 23.3l-.1 23.3h-32.2l-20.4-23-21.3 23h-65.4l.1-69.3h66.5l20.5 22.8 21-22.8H279c15.6 0 27.9 5.4 27.9 22.7zm-112.7 11.8l-17.9-20.2h-41.7v12.5h36.3v14.1h-36.3v13.8h40.6l19-20.2zM241 276l-25.3 27.4 25.3 28.1V276zm48.3 15.3c0-6.1-4.6-8.4-10.2-8.4h-21.5v17.6h21.2c5.9 0 10.5-2.8 10.5-9.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cc-apple-pay.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-apple-pay.svg
    new file mode 100644
    index 00000000000..ff20037287e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-apple-pay.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cc-diners-club.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-diners-club.svg
    new file mode 100644
    index 00000000000..aabfee4b213
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-diners-club.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cc-discover.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-discover.svg
    new file mode 100644
    index 00000000000..fcc8c9a7e2d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-discover.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M83 212.1c0 7.9-3.2 15.5-8.9 20.7-4.9 4.4-11.6 6.4-21.9 6.4H48V185h4.2c10.3 0 16.7 1.7 21.9 6.6 5.7 5 8.9 12.6 8.9 20.5zM504.8 184h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8 0-7.9-5.5-12.1-15.6-12.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM428 253h45.3v-13.8H444V217h28.3v-13.8H444V185h29.3v-14H428v82zm-86.2-82l35 84.2h8.6l35.5-84.2h-17.5l-22.2 55.2-21.9-55.2h-17.5zm-83 41.6c0 24.6 19.9 44.6 44.6 44.6 24.6 0 44.6-19.9 44.6-44.6 0-24.6-19.9-44.6-44.6-44.6-24.6 0-44.6 19.9-44.6 44.6zm-68-.5c0 32.5 33.6 52.5 63.3 38.2v-19c-19.3 19.3-46.8 5.8-46.8-19.2 0-23.7 26.7-39.1 46.8-19v-19c-30.2-15-63.3 6.8-63.3 38zm-33.9 28.3c-7.6 0-13.8-3.7-17.5-10.8l-10.3 9.9c17.8 26.1 56.6 18.2 56.6-11.3 0-13.1-5.4-19-23.6-25.6-9.6-3.4-12.3-5.9-12.3-10.3 0-8.7 14.5-14.1 24.9-2.5l8.4-10.8c-19.1-17.1-49.7-8.9-49.7 14.3 0 11.3 5.2 17.2 20.2 22.7 25.7 9.1 14.7 24.4 3.3 24.4zm-57.4-28.3c0-24.1-18-41.1-44.1-41.1H32v82h23.4c30.9 0 44.1-22.4 44.1-40.9zm23.4-41.1h-16v82h16v-82zM544 288c-33.3 20.8-226.4 124.4-416 160h401c8.2 0 15-6.8 15-15V288zm0-35l-25.9-34.5c12.1-2.5 18.7-10.6 18.7-23.2 0-28.5-30.3-24.4-52.9-24.4v82h16v-32.8h2.2l22.2 32.8H544z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cc-jcb.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-jcb.svg
    new file mode 100644
    index 00000000000..ea3f38964e0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-jcb.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cc-mastercard.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-mastercard.svg
    new file mode 100644
    index 00000000000..38e72153c18
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-mastercard.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cc-paypal.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-paypal.svg
    new file mode 100644
    index 00000000000..1ee3ca21303
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-paypal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cc-stripe.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-stripe.svg
    new file mode 100644
    index 00000000000..5ea566013c2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-stripe.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M396.9 256.5c0 19.1-8.8 33.4-21.9 33.4-8.3 0-13.3-3-16.8-6.7l-.2-52.8c3.7-4.1 8.8-7 17-7 12.9-.1 21.9 14.5 21.9 33.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM122.2 281.1c0-42.3-54.3-34.7-54.3-50.7 0-5.5 4.6-7.7 12.1-7.7 10.8 0 24.5 3.3 35.3 9.1v-33.4c-11.8-4.7-23.5-6.5-35.3-6.5-28.8 0-48 15-48 40.2 0 39.3 54 32.9 54 49.9 0 6.6-5.7 8.7-13.6 8.7-11.8 0-26.9-4.9-38.9-11.3v33.9c13.2 5.7 26.6 8.1 38.8 8.1 29.6-.2 49.9-14.7 49.9-40.3zm68.9-86.9h-27v-30.8l-34.7 7.4-.2 113.9c0 21 15.8 36.5 36.9 36.5 11.6 0 20.2-2.1 24.9-4.7v-28.9c-4.5 1.8-27 8.3-27-12.6v-50.5h27v-30.3zm73.8 0c-4.7-1.7-21.3-4.8-29.6 10.5l-2.2-10.5h-30.7v124.5h35.5v-84.4c8.4-11 22.6-8.9 27.1-7.4v-32.7zm44.2 0h-35.7v124.5h35.7V194.2zm0-47.3l-35.7 7.6v28.9l35.7-7.6v-28.9zm122.7 108.8c0-41.3-23.5-63.8-48.4-63.8-13.9 0-22.9 6.6-27.8 11.1l-1.8-8.8h-31.3V360l35.5-7.5.1-40.2c5.1 3.7 12.7 9 25.1 9 25.4-.1 48.6-20.5 48.6-65.6zm112.2 1.2c0-36.4-17.6-65.1-51.3-65.1-33.8 0-54.3 28.7-54.3 64.9 0 42.8 24.2 64.5 58.8 64.5 17 0 29.7-3.9 39.4-9.2v-28.6c-9.7 4.9-20.8 7.9-34.9 7.9-13.8 0-26-4.9-27.6-21.5h69.5c.1-2 .4-9.4.4-12.9zm-51.6-36.1c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cc-visa.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-visa.svg
    new file mode 100644
    index 00000000000..5805d71a4a1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cc-visa.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/centercode.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/centercode.svg
    new file mode 100644
    index 00000000000..5401d79e41e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/centercode.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/chrome.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/chrome.svg
    new file mode 100644
    index 00000000000..4bed38775b8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/chrome.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cloudscale.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cloudscale.svg
    new file mode 100644
    index 00000000000..80775a0c26f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cloudscale.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cloudsmith.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cloudsmith.svg
    new file mode 100644
    index 00000000000..406bcba2085
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cloudsmith.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 332 512"><path d="M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cloudversify.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cloudversify.svg
    new file mode 100644
    index 00000000000..56f39758f1a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cloudversify.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 616 512"><path d="M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/codepen.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/codepen.svg
    new file mode 100644
    index 00000000000..0c3046f97bd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/codepen.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/codiepie.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/codiepie.svg
    new file mode 100644
    index 00000000000..bc740f56317
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/codiepie.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 472 512"><path d="M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/connectdevelop.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/connectdevelop.svg
    new file mode 100644
    index 00000000000..d441bb793c9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/connectdevelop.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/contao.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/contao.svg
    new file mode 100644
    index 00000000000..e708d1ba476
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/contao.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cpanel.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cpanel.svg
    new file mode 100644
    index 00000000000..a34301ac1a0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cpanel.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M52.9 213.7h40l-6.2 23.6c-1.9 6.5-7.4 10.9-14.3 10.9H53.8c-24.9 0-24.7 37.4 0 37.4h11.3c4.2 0 7.6 3.9 6.4 8.3L64.4 320H52c-33.5 0-59-31.4-50.3-65.2 7.3-27 28.3-41.1 51.2-41.1M73.1 320L108 189.9c1.8-6.4 7.2-10.9 14.3-10.9h37c24.1 0 45.4 16.4 51 41.2 6.6 29.1-14.5 65.3-51.7 65.3h-32l6.4-23.8c1.8-6.2 7.3-10.8 14.3-10.8h10.3c12.4 0 20.8-11.7 18.3-22.6-2.1-9.2-9.9-14.8-18.3-14.8h-19.8L112 309.2c-1.9 6.2-7.4 10.7-14.2 10.7l-24.7.1m220.6-69.4c.3-1 1.9-5.3-2.1-5.3h-57.5c-9.7 0-16.6-8.9-14.2-18.5l3.5-13.4h77.9c18.8 0 33.3 17.6 28.5 36.8l-14 51.8c-2.8 10.6-12.2 17.8-23.4 17.8l-57.5-.2c-42.9 0-38.5-63.8.7-63.8H284l-3.5 13.2c-1.9 6.2-7.4 10.8-14.2 10.8h-21.6c-5.3 0-5.3 7.9 0 7.9h34.9c4.6 0 5.1-3.9 5.5-5.3l8.6-31.8m103.1-36.9c34.4 0 59.3 32.3 50.3 65.4l-8.8 33.1c-1.2 4.9-5.7 7.8-10.3 7.8h-19.1c-4.5 0-7.6-4-6.4-8.3l10.6-40c3.3-11.6-5.6-23.4-18.1-23.4h-19.8l-17.2 64c-1.2 4.8-5.6 7.8-10.4 7.8h-18.9c-4.2 0-7.6-3.9-6.4-8.3l26.2-98h48.3M498 251.6l-8 30c-.9 3.3 1.5 6.7 5.1 6.7h73.3l-5.7 21c-1.9 6.2-7.4 10.7-14.2 10.7h-66.7c-20 0-33.3-19-28.3-36.7l10.8-40c4.8-17.6 20.7-29.6 38.6-29.6h47.3c19 0 33.2 17.7 28.3 36.8l-3.2 12c-2.9 11-12.7 17.6-23.2 17.6h-53.4l3.5-13c1.6-6.2 7.2-10.8 14.2-10.8H538c2 0 3.3-1 3.9-3l.7-2.6c.7-2.7-1.3-5.1-3.9-5.1h-32.9c-4.1 0-6.9 2.1-7.8 6zm70.2 68.4l35.6-133.1c1.2-4.7 5.5-7.9 10.4-7.9h18.9c4.5 0 7.7 4 6.5 8.3l-26.5 98.2c-5.1 20.7-24.2 34.5-44.9 34.5"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-by.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-by.svg
    new file mode 100644
    index 00000000000..6ed3241c627
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-by.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nc-eu.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nc-eu.svg
    new file mode 100644
    index 00000000000..02d8d90b0dc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nc-eu.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nc-jp.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nc-jp.svg
    new file mode 100644
    index 00000000000..9a9ab3936e2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nc-jp.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nc.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nc.svg
    new file mode 100644
    index 00000000000..d68f67310de
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nc.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nd.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nd.svg
    new file mode 100644
    index 00000000000..21341d43716
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-nd.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-pd-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-pd-alt.svg
    new file mode 100644
    index 00000000000..10e241865e7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-pd-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM135.5 323.3V186h68.2c33.7 0 50.5 15.5 50.5 46.5 0 9-3 46.5-57.1 46.5h-27v44.3h-34.6zm34.1-111.6v41.6h29.2c27.9 0 30-41.6-.9-41.6h-28.3zm93.9 111.6V186h53.2c21.4 0 70 5.2 70 68.6 0 63.5-48.6 68.6-70 68.6h-53.2zm34.1-108.5v79.7h19.9c24 0 34.5-15.3 34.5-39.9 0-42-31.2-39.9-35-39.9l-19.4.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-pd.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-pd.svg
    new file mode 100644
    index 00000000000..543071c6c76
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-pd.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-remix.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-remix.svg
    new file mode 100644
    index 00000000000..68feba36456
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-remix.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-sa.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-sa.svg
    new file mode 100644
    index 00000000000..0574ec4ab95
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-sa.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-sampling-plus.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-sampling-plus.svg
    new file mode 100644
    index 00000000000..3a8c93e7778
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-sampling-plus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-sampling.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-sampling.svg
    new file mode 100644
    index 00000000000..057c51fe36b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-sampling.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-share.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-share.svg
    new file mode 100644
    index 00000000000..c252f4311d1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-share.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-zero.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-zero.svg
    new file mode 100644
    index 00000000000..19b4afc37a8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons-zero.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons.svg
    new file mode 100644
    index 00000000000..7cf606532cb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/creative-commons.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/critical-role.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/critical-role.svg
    new file mode 100644
    index 00000000000..20cc242b0db
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/critical-role.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 445.64 512"><path d="M224.82 0c.26.15 216.57 124.51 217.12 124.72 3.04 1.18 3.7 3.46 3.7 6.56-.07 83.45-.06 166.9-.01 250.36 0 2.77-.98 4.43-3.38 5.78C420.88 399.41 234.39 505.71 223.32 512h-3C141 466.34 2.08 386.56 1.93 386.48c-1.29-.74-1.96-1.75-1.88-3.24.04-.87-.03-225.94-.05-253.1 0-2.44.89-3.79 2.93-4.93C26.19 112.11 212.2 5.98 223.07 0h1.75zM214.4 20.42l-.22-.16C149.43 57.12 84.69 94 19.95 130.87c.04.12.08.23.13.35 10.19 3.84 20.39 7.69 30.86 11.64-7.71 5.99-8.32 6.03-10.65 5.13-.1-.04-24.17-9.28-26.8-9.99v230.42c.88-1.41 64.07-110.91 64.13-111.01 1.62-2.82 3.03-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 62.99-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13 227.73 0 176.4 0 186.5.03 1.44 0 1.69-.23 1.7-1.64.01-2.96.01-5.92 0-8.88 0-1.34 2.36-.81-18.37-1.01-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1.04 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1-2.27-.66-2.55-4.08.3-4.73 3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9.04 1.1-79.42-.01-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-.97-2-4.84 1.77-4.85 33.67-.03 46.08-1.07 56.06 4.86 7.74 4.61 11.98 11.48 12.51 20.4.88 14.59-6.51 22.35-14.99 32.59-.68.82-.72 1.38-.04 2.22 2.6 3.25 5.05 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1.02-.42 1.01-1.15-.02-3.67.01-7.33-.02-11-.01-1.02.32-1.43 1.41-1.26 12.54 1.91 21.85-.07 23.58-.3 1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62 62.38-.02 125.15-.02 186.71-.02-27.12-47.03-54.11-93.85-81.18-140.81 2.26-.66-.4-.03 6.69-1.39 2.03-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 133.96 77.37 134.06V137.98c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1-.04 95.53-35.85 103.04-38.77C360.69 93.43 295.55 56 230.1 18.4c29.07 50.36 57.95 100.37 86.82 150.39-.09.11-.18.22-.28.33-9.57-.9-10.46-1.6-11.8-3.94-.96-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08 28.83-49.83 57.5-99.42 86.18-149zm51.93 129.92c1.85-.05 3.7-.52 5.54-.85 1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45-.87 1.3-1.88 1.22-2.6-.19-4.96-9.69 6.22-9.66-39.12-12.05-.7-.04-1 .23-.97.93 0 .13 3.72 121.98 3.73 122.11.02.89.52 1.2 1.21 1.51 2.92 1.31 5.96 2.42 8.7 4.05 7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4 1.49-.47 1.95-1.26 1.98-2.66.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23a1361.1 1361.1 0 0 1 3.31-18.03c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73.01 1.78-.08 1.82-1.85.68-27.49.58-22.59.97-29.55.07-1.29-.41-2.17-1.63-2.8-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15-1.66 1.06-2.31 2.33-2.22 4.34.03.59-.11-4.31.98 30.05.03.9.43 1.12 1.24 1.11.1 0 23.01-.09 34.47-.37zM67.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 3.99-.21 4.99-1.16 22.33-1.24 23.15-.1 1.04-.6 1.91-1.63 2.34-4.06 1.7-3.61-4.45-4.01-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17.01 53.63 54.08 50.88 27.24-2.01 19.05-20.19 24.84-20.47 1.98-.1 3.33 1.33 2.98 3.36-1.83 10.85-3.42 18.95-3.45 19.15-1.51 9.18-86.67 22.08-93.35-42.05-2.68-25.87 10.47-53.37 40.3-60.15zm79.99 87.67c-6.5-.03-12.99 0-19.49-.04-1.96-.01-2.78-1.61-2.66-1.79 2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-37.99.23-40.1.03-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-1.98 2.25-4.03 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13 1.22-.12 2.11-.75 2.23-2.12.3-3.42.26 4.73.45-40.58.02-5.65-.34-6.58-3.23-6.83-3.95-.35-4.03-2.26-.69-3.37.12-.04 18.98-.09 19.09-.09.32 0 4.49.53 1.05 3.38-.05.05-.16.03-.24.04-3.61.26-3.94.98-3.96 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49-.04 3.86 3.37-.02 3.4-10.37.08-20.74.03-31.11.07-10.67.04-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 3.99 17.67 4.75-.1 4.73 3.57.83 3.55zm274.97-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31-1.22-.04-2.43-.44-3.63-.73-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19-.38-.98-.94-1.44-2.04-1.44-3.12 0-7.27-.44-14.58.07-.58.04-1.4.55-1.62 1.06-1.58 3.62-3.07 7.29-4.51 10.96-1.27 3.23 7.86 1.32 12.19 2.16 2.97.57 4.53 3.72.66 3.73-8.79.03-17.58.06-26.37.05-2.92 0-3.09-3.15-.74-3.21 2.67-.07 4.74-1.13 5.92-3.47 1.5-2.97 2.8-6.04 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61 1-1.06 2.07-1.05 3.03.04 2.93 3.34 18.4 44.71 23.62 51.92 1.96 2.7 5.74 1.98 6.36 2.01 3.61.13 3.97-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26-.04-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32.01 5.32 2.75-1.21 3.45-1.81.19-2.58 1-2.66 2.83-.07 1.63-.19 38.89.29 41.21.35 1.73 1.73 2.38 3.23 2.43 13.25.43 14.92.44 16.04-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.68 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1.03 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64-.02-1.64 1.52v16.12c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76-.01.21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-1.95 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 5.99 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64-.04.36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3.04.22-3.45 1.1-.19 4.03.54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 8.98-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 21.99 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1.03.1.57 11.89-5.97 12.75-1.6.21-19.38 3.69-32.68-3.39-21.01-11.19-16.74-35.47-6.88-45.33 14.03-14.06 39.91-7.06 42.32-6.47zM288.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-4.97-.42-5 5.46-.01 1.98-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22.03 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-3.96 12.39-5.19 12.4-.1 0-38.08-.18-38.18-.19-1.93-.23-2.06-2.99-.42-3.38 1.99-.48 4.94.4 5.13-2.8.96-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-1.99-3.22.34-3.22 1.47-.02 17.99-.03 23.11-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6.01 3.58 2.61.1 2.53 3.41-.07 3.43-6.48.04-13.7-.02-21.61-.06-3.84-.02-3.38-3.35.04-3.37 4.49-.03 3.24 1.61 3.41-45.54.02-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29-.05 20.19-.41 21.17.21 1.13.72 1.87 1.65-.42 2.86-.99.52-3.86-.28-4.15 2.47-.02.21-.82 1.63-.07 43.8zm-36.91 274.27c1.14.66 2.12.66 3.26 0 16.99-9.79 181.97-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38-.02 2.58-.62 5.22-1.36 7.71-.55 1.83.38-.5-13.5 32.23-.73 1.72-1.04 2.21-1.97-.08-4.19-10.34-8.28-20.72-12.57-31.01-1.46-3.5-2.24-7-2-10.79.16-2.46.8-16.12 1.51-48.02.04-1.95.01-1.96-1.96-1.96h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3.03 11.54 1.17 21.04 3.74 25.64-7.32 6.01-14.46 2.66-34.41-12.48-38.84-2.01-.59-15.96-2.76-15.94 1.51.05 8.01.01 11.58.02 41.62zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2.02 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8 8.43 3.47 17.54.6 22.39-7.07 4.91-7.76 6.84-29.47-5.43-38.96-.12.05-.24.09-.36.12zM222.83 94.78c-9.83-.03-9.73 14.75-.07 14.87 9.59.11 10.1-14.84.07-14.87zm-80.15 103.87c.02 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-10.99 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.31 6.4c-2.03-5.28-4-10.39-6.1-15.84-2.16 5.48-4.16 10.57-6.23 15.84h12.33z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/css3-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/css3-alt.svg
    new file mode 100644
    index 00000000000..8ba4af6359e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/css3-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/css3.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/css3.svg
    new file mode 100644
    index 00000000000..8143a728089
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/css3.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/cuttlefish.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/cuttlefish.svg
    new file mode 100644
    index 00000000000..35088781434
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/cuttlefish.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 440 512"><path d="M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/d-and-d.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/d-and-d.svg
    new file mode 100644
    index 00000000000..4761abf35dd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/d-and-d.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/dashcube.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/dashcube.svg
    new file mode 100644
    index 00000000000..8c8dc336c37
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/dashcube.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/delicious.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/delicious.svg
    new file mode 100644
    index 00000000000..ba82ec4158f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/delicious.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192v176z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/deploydog.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/deploydog.svg
    new file mode 100644
    index 00000000000..dbcd57f20c3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/deploydog.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/deskpro.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/deskpro.svg
    new file mode 100644
    index 00000000000..dd6be9ec4dd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/deskpro.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><path d="M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/dev.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/dev.svg
    new file mode 100644
    index 00000000000..11327227b12
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/dev.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/deviantart.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/deviantart.svg
    new file mode 100644
    index 00000000000..77a20bf85c5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/deviantart.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/digg.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/digg.svg
    new file mode 100644
    index 00000000000..486f60956c6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/digg.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/digital-ocean.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/digital-ocean.svg
    new file mode 100644
    index 00000000000..b9a0e3d95f4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/digital-ocean.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 504v-96.1c101.8 0 180.8-100.9 141.7-208-14.3-39.6-46.1-71.4-85.8-85.7-107.1-38.8-208.1 39.9-208.1 141.7H8C8 93.7 164.9-32.8 335 20.3c74.2 23.3 133.6 82.4 156.6 156.6C544.8 347.2 418.6 504 256 504zm.3-191.4h-95.6v95.6h95.6v-95.6zm-95.6 95.6H87v73.6h73.7v-73.6zM87 346.6H25.4v61.6H87v-61.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/discord.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/discord.svg
    new file mode 100644
    index 00000000000..03eb9d9f140
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/discord.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/discourse.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/discourse.svg
    new file mode 100644
    index 00000000000..d0b3850b75e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/discourse.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/dochub.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/dochub.svg
    new file mode 100644
    index 00000000000..67de7d185ce
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/dochub.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 416 512"><path d="M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/docker.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/docker.svg
    new file mode 100644
    index 00000000000..1a20356ad05
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/docker.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/draft2digital.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/draft2digital.svg
    new file mode 100644
    index 00000000000..12ecd981b66
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/draft2digital.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><path d="M369.9 425.4V371l47.1 27.2-47.1 27.2zM82.4 380.6c25.5-27.3 97.7-104.7 150.9-170 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7H82.4zm51.8-219.2c0 12.4-10 22.4-22.4 22.4-12.4 0-22.4-10-22.4-22.4 0-12.4 10-22.4 22.4-22.4 12.4 0 22.4 10.1 22.4 22.4M336 315.9v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480l144-81.9-144-82.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/dribbble-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/dribbble-square.svg
    new file mode 100644
    index 00000000000..a13cb215964
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/dribbble-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/dribbble.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/dribbble.svg
    new file mode 100644
    index 00000000000..dac14f44459
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/dribbble.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/dropbox.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/dropbox.svg
    new file mode 100644
    index 00000000000..9a41bfe793f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/dropbox.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 528 512"><path d="M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/drupal.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/drupal.svg
    new file mode 100644
    index 00000000000..f61908a03c8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/drupal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/dyalog.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/dyalog.svg
    new file mode 100644
    index 00000000000..ca482ec580e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/dyalog.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 416 512"><path d="M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/earlybirds.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/earlybirds.svg
    new file mode 100644
    index 00000000000..a11206b0973
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/earlybirds.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><path d="M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/ebay.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/ebay.svg
    new file mode 100644
    index 00000000000..92a77fea3be
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/ebay.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M405.2 263.8c-29.1.9-47.2 6.2-47.2 25.3 0 12.4 9.9 25.8 35 25.8 33.7 0 51.6-18.4 51.6-48.4v-3.3c-11.8 0-26.3.1-39.4.6m71.5 39.7c0 9.3.3 18.6 1 26.8h-29.8c-.8-6.9-1.1-13.6-1.1-20.2-16.1 19.8-35.3 25.5-61.9 25.5-39.5 0-60.6-20.9-60.6-45 0-35 28.8-47.3 78.6-48.4 13.7-.3 29-.4 41.7-.4v-3.4c0-23.4-15-33-41-33-19.3 0-33.6 8-35 21.8h-33.7c3.6-34.4 39.7-43.1 71.5-43.1 38.1 0 70.3 13.5 70.3 53.8v65.6zm-349-56.8c-2.3-54.7-87.5-56.6-94.4 0h94.4zm-95 21.4c3.5 58.3 79.2 57.4 91.2 21.6H157c-6.4 34.4-43 46.1-74.4 46.1-57.2 0-82.5-31.5-82.5-74 0-46.8 26.2-77.6 83-77.6 45.3 0 78.4 23.7 78.4 75.4v8.5H32.7zm211 45.7c29.8 0 50.2-21.5 50.2-53.8 0-32.4-20.4-53.8-50.2-53.8-29.6 0-50.2 21.4-50.2 53.8 0 32.3 20.6 53.8 50.2 53.8m-82.2-186h32.1v80.6c15.7-18.7 37.4-24.2 58.7-24.2 35.7 0 75.4 24.1 75.4 76.2 0 43.6-31.5 75.4-76 75.4-23.3 0-45.1-8.3-58.7-24.9 0 6.6-.4 13.2-1.1 19.5h-31.5c.5-10.2 1.1-22.8 1.1-33.1V127.8zM640 189.5l-99.2 194.8h-35.9l28.5-54.1-74.6-140.7h37.5l54.9 109.9L606 189.5h34z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/edge.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/edge.svg
    new file mode 100644
    index 00000000000..6b127add4f6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/edge.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/elementor.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/elementor.svg
    new file mode 100644
    index 00000000000..82e451ad881
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/elementor.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/ello.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/ello.svg
    new file mode 100644
    index 00000000000..8479c6cfe10
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/ello.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/ember.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/ember.svg
    new file mode 100644
    index 00000000000..aa6418a7597
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/ember.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1c-1.9-43.8-44.2-27.6-49-24-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-18.3-11-32.8 12.1-32.8 12.1s54.5-60.7 42.5-112c-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5c-17.2-.8-28.5 18.8-28.5 18.8s-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7c11.6 2.1 16.4 1 36.5-47.9 11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2c6.7-23.6 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7c8.6 15.6 30.9 5.3 30.9 5.3s15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6c12.4 5.1 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/empire.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/empire.svg
    new file mode 100644
    index 00000000000..8524ed704f9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/empire.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/envira.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/envira.svg
    new file mode 100644
    index 00000000000..6d6eb9d9771
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/envira.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/erlang.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/erlang.svg
    new file mode 100644
    index 00000000000..4bab200de0a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/erlang.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M21.7 246.4c-.1 86.8 29 159.5 78.7 212.1H0v-405h87.2c-41.5 50.2-65.6 116.2-65.5 192.9zM640 53.6h-83.6c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405zm-80.8 405s0-.1 0 0h-.2.2zm-3.1-405h.3l-.1-.1-.2.1zm-230.7 9.6c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/ethereum.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/ethereum.svg
    new file mode 100644
    index 00000000000..a689a01c11a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/ethereum.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/etsy.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/etsy.svg
    new file mode 100644
    index 00000000000..76d2bf18fde
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/etsy.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/expeditedssl.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/expeditedssl.svg
    new file mode 100644
    index 00000000000..2209589a1c9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/expeditedssl.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/facebook-f.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/facebook-f.svg
    new file mode 100644
    index 00000000000..56bfbc43666
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/facebook-f.svg
    @@ -0,0 +1 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 264 512"><path d="M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/facebook-messenger.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/facebook-messenger.svg
    new file mode 100644
    index 00000000000..1ab970792e2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/facebook-messenger.svg
    @@ -0,0 +1 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 32C15.9 32-77.5 278 84.6 400.6V480l75.7-42c142.2 39.8 285.4-59.9 285.4-198.7C445.8 124.8 346.5 32 224 32zm23.4 278.1L190 250.5 79.6 311.6l121.1-128.5 57.4 59.6 110.4-61.1-121.1 128.5z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/facebook-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/facebook-square.svg
    new file mode 100644
    index 00000000000..c78d21d8718
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/facebook-square.svg
    @@ -0,0 +1 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 80v352c0 26.5-21.5 48-48 48h-85.3V302.8h60.6l8.7-67.6h-69.3V192c0-19.6 5.4-32.9 33.5-32.9H384V98.7c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9H184v67.6h60.9V480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/facebook.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/facebook.svg
    new file mode 100644
    index 00000000000..f6931b6b543
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/facebook.svg
    @@ -0,0 +1 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 56.7v398.5c0 13.7-11.1 24.7-24.7 24.7H309.1V306.5h58.2l8.7-67.6h-67v-43.2c0-19.6 5.4-32.9 33.5-32.9h35.8v-60.5c-6.2-.8-27.4-2.7-52.2-2.7-51.6 0-87 31.5-87 89.4v49.9h-58.4v67.6h58.4V480H24.7C11.1 480 0 468.9 0 455.3V56.7C0 43.1 11.1 32 24.7 32h398.5c13.7 0 24.8 11.1 24.8 24.7z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/fantasy-flight-games.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/fantasy-flight-games.svg
    new file mode 100644
    index 00000000000..f4c42759137
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/fantasy-flight-games.svg
    @@ -0,0 +1 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/firefox.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/firefox.svg
    new file mode 100644
    index 00000000000..f67ef34fc74
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/firefox.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><path d="M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v.1c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5v-.2c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1-.1.2-.2.3-.3.4-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/first-order-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/first-order-alt.svg
    new file mode 100644
    index 00000000000..b187f96d515
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/first-order-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/first-order.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/first-order.svg
    new file mode 100644
    index 00000000000..2cf1ebf393b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/first-order.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/firstdraft.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/firstdraft.svg
    new file mode 100644
    index 00000000000..9da13df3ab5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/firstdraft.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/flickr.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/flickr.svg
    new file mode 100644
    index 00000000000..aba0e0dd1b1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/flickr.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/flipboard.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/flipboard.svg
    new file mode 100644
    index 00000000000..61f6a691730
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/flipboard.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/fly.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/fly.svg
    new file mode 100644
    index 00000000000..9be033ad753
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/fly.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome-alt.svg
    new file mode 100644
    index 00000000000..9d894694d70
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M397.8 67.8c7.8 0 14.3 6.6 14.3 14.3v347.6c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6m0-35.9H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-58.5 139.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome-flag.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome-flag.svg
    new file mode 100644
    index 00000000000..42013296e08
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome-flag.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome-logo-full.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome-logo-full.svg
    new file mode 100644
    index 00000000000..6e0e9e6d226
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome-logo-full.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3992 512"><path d="M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome.svg
    new file mode 100644
    index 00000000000..64f21e73226
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/font-awesome.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/fonticons-fi.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/fonticons-fi.svg
    new file mode 100644
    index 00000000000..e7b7155d1e5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/fonticons-fi.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/fonticons.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/fonticons.svg
    new file mode 100644
    index 00000000000..12a8242f2bf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/fonticons.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32v448h448V32H0zm167.4 196h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4zM364 414.7H261.3v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm-21.9-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6-21.9 24.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/fort-awesome-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/fort-awesome-alt.svg
    new file mode 100644
    index 00000000000..869be0af48f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/fort-awesome-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M211.7 241.1v51.7c0 2.1-1.6 3.7-3.7 3.7h-22.2c-2.1 0-3.7-1.6-3.7-3.7v-51.7c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7zm114.5-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm-29.1 263.2c-.9.1-1.7.3-2.6.4-1 .2-2.1.3-3.1.5-.9.1-1.8.3-2.8.4-1 .1-2 .3-3 .4-1 .1-2 .2-2.9.3-1 .1-1.9.2-2.9.3-1 .1-2.1.2-3.1.3-.9.1-1.8.2-2.7.2-1.1.1-2.3.1-3.4.2-.8 0-1.7.1-2.5.1-1.3.1-2.6.1-3.9.1-.7 0-1.4.1-2.1.1-2 0-4 .1-6 .1s-4 0-6-.1c-.7 0-1.4 0-2.1-.1-1.3 0-2.6-.1-3.9-.1-.8 0-1.7-.1-2.5-.1-1.1-.1-2.3-.1-3.4-.2-.9-.1-1.8-.1-2.7-.2-1-.1-2.1-.2-3.1-.3-1-.1-1.9-.2-2.9-.3-1-.1-2-.2-2.9-.3-1-.1-2-.2-3-.4-.9-.1-1.8-.3-2.8-.4-1-.1-2.1-.3-3.1-.5-.9-.1-1.7-.3-2.6-.4-65.6-10.9-122.5-47.7-160-99.4-.2-.2-.3-.5-.5-.7-.8-1.1-1.6-2.2-2.3-3.3-.3-.4-.6-.8-.8-1.2-.7-1.1-1.4-2.1-2.1-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.4-2.1-2-3.2-.3-.5-.6-.9-.9-1.4-.7-1.1-1.3-2.2-2-3.3-.2-.4-.5-.8-.7-1.2-2.4-4-4.6-8.1-6.8-12.2-.1-.2-.2-.3-.3-.5-.6-1.1-1.1-2.2-1.7-3.3-.3-.6-.6-1.1-.8-1.7-.5-1-1-2.1-1.5-3.1-.3-.7-.6-1.3-.9-2-.5-1-.9-2-1.4-3l-.9-2.1c-.4-1-.9-2-1.3-3-.3-.7-.6-1.5-.9-2.2l-1.2-3c-.3-.8-.6-1.5-.9-2.3-.4-1-.8-2-1.1-3-.3-.9-.6-1.8-1-2.8-.6-1.6-1.1-3.3-1.7-4.9-.3-.9-.6-1.8-.9-2.8-.3-.9-.5-1.8-.8-2.7-.3-.9-.6-1.9-.8-2.8-.3-.9-.5-1.8-.8-2.7-.3-1-.5-1.9-.8-2.9-.2-.9-.5-1.8-.7-2.7-.3-1-.5-2-.7-3-.2-.9-.4-1.7-.6-2.6-.2-1.1-.5-2.2-.7-3.2-.2-.8-.3-1.6-.5-2.4-.3-1.3-.5-2.7-.8-4-.1-.6-.2-1.1-.3-1.7l-.9-5.7c-.1-.6-.2-1.3-.3-1.9-.2-1.3-.4-2.6-.5-3.9-.1-.8-.2-1.5-.3-2.3-.1-1.2-.3-2.4-.4-3.6-.1-.8-.2-1.6-.2-2.4-.1-1.2-.2-2.4-.3-3.5-.1-.8-.1-1.6-.2-2.4-.1-1.2-.2-2.4-.2-3.7 0-.8-.1-1.5-.1-2.3-.1-1.3-.1-2.7-.2-4 0-.7 0-1.3-.1-2 0-2-.1-4-.1-6 0-53.5 16.9-103 45.8-143.6 2.3-3.2 4.7-6.4 7.1-9.5 4.9-6.2 10.1-12.3 15.6-18 2.7-2.9 5.5-5.7 8.4-8.4 2.9-2.7 5.8-5.4 8.8-8 4.5-3.9 9.1-7.6 13.9-11.2 1.6-1.2 3.2-2.4 4.8-3.5C140 34.2 171.7 20.1 206 13c16.1-3.3 32.9-5 50-5s33.8 1.7 50 5c34.3 7 66 21.1 93.6 40.7 1.6 1.2 3.2 2.3 4.8 3.5 4.8 3.6 9.4 7.3 13.9 11.2 12 10.4 23 21.9 32.8 34.4 2.5 3.1 4.8 6.3 7.1 9.5C487.1 153 504 202.5 504 256c0 2 0 4-.1 6 0 .7 0 1.3-.1 2 0 1.3-.1 2.7-.2 4 0 .8-.1 1.5-.1 2.3-.1 1.2-.1 2.4-.2.7-.1.8-.1 1.6-.2 2.4-.1 1.2-.2 2.4-.3 3.5-.1.8-.2 1.6-.2 2.4-.1 1.2-.3 2.4-.4 3.6-.1.8-.2 1.5-.3 2.3-.2 1.3-.4 2.6-.5 3.9-.1.6-.2 1.3-.3 1.9l-.9 5.7c-.1.6-.2 1.1-.3 1.7-.2 1.3-.5 2.7-.8 4-.2.8-.3 1.6-.5 2.4-.2 1.1-.5 2.2-.7 3.2-.2.9-.4 1.7-.6 2.6-.2 1-.5 2-.7 3-.2.9-.5 1.8-.7 2.7-.3 1-.5 1.9-.8 2.9-.2.9-.5 1.8-.8 2.7-.3.9-.6 1.9-.8 2.8-.3.9-.5 1.8-.8 2.7-.3.9-.6 1.8-.9 2.8-.5 1.6-1.1 3.3-1.7 4.9-.3.9-.6 1.8-1 2.8-.4 1-.7 2-1.1 3-.3.8-.6 1.5-.9 2.3l-1.2 3c-.3.7-.6 1.5-.9 2.2-.4 1-.8 2-1.3 3l-.9 2.1c-.4 1-.9 2-1.4 3-.3.7-.6 1.3-.9 2-.5 1-1 2.1-1.5 3.1-.3.6-.6 1.1-.8 1.7-.6 1.1-1.1 2.2-1.7 3.3-.1.2-.2.3-.3.5-2.2 4.1-4.4 8.2-6.8 12.2-.2.4-.5.8-.7 1.2-.7 1.1-1.3 2.2-2 3.3-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2 3.2-.3.5-.6.9-.9 1.4-.7 1.1-1.4 2.1-2.1 3.2-.3.4-.6.8-.8 1.2-.8 1.1-1.5 2.2-2.3 3.3-.2.2-.3.5-.5.7-37.6 54.7-94.5 91.4-160.1 102.4zm117.3-86.2c13-13 24.2-27.4 33.6-42.9v-71.3c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7V326h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7H304c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-4.8-6.5-3.7-9.5-3.7v-30.7c6.7-1.6 13.8-2.8 20.8-2.8 8.8 0 16.8 3.5 25.4 3.5 3.7 0 22.4-.9 22.4-6.5V93.4c0-2.1-1.6-3.7-3.7-3.7-4.2 0-12.2 3.5-19.4 3.5-7.9 0-16.9-3.5-26.3-3.5-6.5 0-12.9.9-19.2 2.3v-3.9c4.4-2.1 7.4-6.7 7.4-11.5 0-16.8-25.4-16.8-25.4 0 0 4.8 3 9.5 7.4 11.5v90.2c-3 0-9.5-1.1-9.5 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.2c-2.1 0-3.7 1.6-3.7 3.7v25.9h-29.5V182c0-2.1-1.6-3.7-3.7-3.7h-22.1c-2.1 0-3.7 1.6-3.7 3.7v144H93.5v-25.8c0-2.1-1.6-3.7-3.7-3.7H67.7c-2.1 0-3.7 1.6-3.7 3.7v71.3c9.4 15.5 20.6 29.9 33.6 42.9 20.6 20.6 44.5 36.7 71.2 48 13.9 5.9 28.2 10.3 42.9 13.2v-75.8c0-58.6 88.6-58.6 88.6 0v75.8c14.7-2.9 29-7.4 42.9-13.2 26.7-11.3 50.6-27.4 71.2-48"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/fort-awesome.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/fort-awesome.svg
    new file mode 100644
    index 00000000000..8d0f7888240
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/fort-awesome.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/forumbee.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/forumbee.svg
    new file mode 100644
    index 00000000000..18f52ecc5f4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/forumbee.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/foursquare.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/foursquare.svg
    new file mode 100644
    index 00000000000..8509aff133e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/foursquare.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 368 512"><path d="M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/free-code-camp.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/free-code-camp.svg
    new file mode 100644
    index 00000000000..bb3006d31c9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/free-code-camp.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/freebsd.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/freebsd.svg
    new file mode 100644
    index 00000000000..36221519ba5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/freebsd.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/fulcrum.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/fulcrum.svg
    new file mode 100644
    index 00000000000..497622c543f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/fulcrum.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 269.66 512"><path d="M70.75 164.14l-35.38 43.55L0 164.14l35.38-43.55 35.37 43.55zM119.23 0L98.69 198.18 47.72 256l50.98 57.82L119.23 512V300.89L78.15 256l41.08-44.89V0zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55-35.38 43.55zm-48.48 46.97L191.5 256l-41.08 44.89V512l20.54-198.18L221.94 256l-50.98-57.82L150.42 0v211.11z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/galactic-republic.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/galactic-republic.svg
    new file mode 100644
    index 00000000000..e634e62ad2a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/galactic-republic.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/galactic-senate.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/galactic-senate.svg
    new file mode 100644
    index 00000000000..c7e565bedf0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/galactic-senate.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/get-pocket.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/get-pocket.svg
    new file mode 100644
    index 00000000000..a16b82e1c84
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/get-pocket.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/gg-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/gg-circle.svg
    new file mode 100644
    index 00000000000..a508a7b0072
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/gg-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/gg.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/gg.svg
    new file mode 100644
    index 00000000000..7352a18d523
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/gg.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/git-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/git-square.svg
    new file mode 100644
    index 00000000000..b0c13872ac1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/git-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M140.1 348.5c12.1 0 29.5 2.1 29.5 17.9 0 15.5-13.9 18.8-27 18.8-12.3 0-30.9-2-30.9-18s15.7-18.7 28.4-18.7zm-24.7-116.6c0 14.8 6.6 24.1 22.3 24.1 15.5 0 21.2-10 21.2-24.5.1-34.4-43.5-34.8-43.5.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-241 93.7c-12.3 4.8-25.5 8.4-38.9 8.4-38.5-22.1-90.7.9-90.7 49.5 0 18 11.6 42.9 29.6 48.9v.7c-13.4 5.9-17.1 36.1.7 47v.7c-19.5 6.4-32.3 18.8-32.3 40.2 0 36.8 34.8 47 65.4 47 37.1 0 64.8-13.4 64.8-54.3 0-50.4-72.1-31.8-72.1-59.1 0-9.6 5.2-13.4 14.1-15.2 29.6-5.5 48.2-28.6 48.2-58.7 0-5.2-1.1-10.2-2.9-15 4.8-1.1 9.5-2.3 14.1-3.9v-36.2zm56.8 1.8h-39.6c1.3 10.6 1.1 142.6 0 155.5h39.6c-1.1-12.8-1.2-145.1 0-155.5zm4.5-53.3c0-13.4-10-26.2-24.1-26.2-14.3 0-24.6 12.5-24.6 26.2 0 13.6 10.5 25.9 24.6 25.9 13.7 0 24.1-12.5 24.1-25.9zm104.3 53.3h-36.4c0-9.8-.4-19.6 1.1-29.5h-40.5c1.3 7.3 1.1 13.6 1.1 29.5h-17.1v33.9c11.9-1.9 12.1-.7 17.1-.7v.7h-.4v62.7c0 31.1 4.5 61.2 42.7 61.2 10.7 0 23-1.8 32.5-7v-35c-5.7 3.9-13.9 5.9-20.9 5.9-13.2 0-15.5-12.9-15.5-23.4v-65.2c22.7 0 36.4.7 36.4.7v-33.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/git.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/git.svg
    new file mode 100644
    index 00000000000..c271e674b77
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/git.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M18.8 221.7c0 25.3 16.2 60 41.5 68.5v1c-18.8 8.3-24 50.6 1 65.8v1C34 367 16 384.3 16 414.2c0 51.5 48.8 65.8 91.5 65.8 52 0 90.7-18.7 90.7-76 0-70.5-101-44.5-101-82.8 0-13.5 7.2-18.7 19.7-21.3 41.5-7.7 67.5-40 67.5-82.2 0-7.3-1.5-14.2-4-21 6.7-1.5 13.2-3.3 19.7-5.5v-50.5c-17.2 6.8-35.7 11.8-54.5 11.8-53.8-31-126.8 1.3-126.8 69.2zm87.7 163.8c17 0 41.2 3 41.2 25 0 21.8-19.5 26.3-37.7 26.3-17.3 0-43.3-2.7-43.3-25.2.1-22.3 22.1-26.1 39.8-26.1zM103.3 256c-22 0-31.3-13-31.3-33.8 0-49.3 61-48.8 61-.5 0 20.3-8 34.3-29.7 34.3zM432 305.5v49c-13.3 7.3-30.5 9.8-45.5 9.8-53.5 0-59.8-42.2-59.8-85.7v-87.7h.5v-1c-7 0-7.3-1.6-24 1v-47.5h24c0-22.3.3-31-1.5-41.2h56.7c-2 13.8-1.5 27.5-1.5 41.2h51v47.5s-19.3-1-51-1V281c0 14.8 3.3 32.8 21.8 32.8 9.8 0 21.3-2.8 29.3-8.3zM286 68.7c0 18.7-14.5 36.2-33.8 36.2-19.8 0-34.5-17.2-34.5-36.2 0-19.3 14.5-36.7 34.5-36.7C272 32 286 50 286 68.7zm-6.2 74.5c-1.8 14.6-1.6 199.8 0 217.8h-55.5c1.6-18.1 1.8-203 0-217.8h55.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/github-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/github-alt.svg
    new file mode 100644
    index 00000000000..55a1d4c3650
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/github-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><path d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/github-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/github-square.svg
    new file mode 100644
    index 00000000000..9f4c8b1e5e5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/github-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/github.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/github.svg
    new file mode 100644
    index 00000000000..12b008f9a16
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/github.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/gitkraken.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/gitkraken.svg
    new file mode 100644
    index 00000000000..0cc090a1367
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/gitkraken.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 592 512"><path d="M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/gitlab.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/gitlab.svg
    new file mode 100644
    index 00000000000..f20d598988c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/gitlab.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M29.782 199.732L256 493.714 8.074 309.699c-6.856-5.142-9.712-13.996-7.141-21.993l28.849-87.974zm75.405-174.806c-3.142-8.854-15.709-8.854-18.851 0L29.782 199.732h131.961L105.187 24.926zm56.556 174.806L256 493.714l94.257-293.982H161.743zm349.324 87.974l-28.849-87.974L256 493.714l247.926-184.015c6.855-5.142 9.711-13.996 7.141-21.993zm-85.404-262.78c-3.142-8.854-15.709-8.854-18.851 0l-56.555 174.806h131.961L425.663 24.926z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/gitter.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/gitter.svg
    new file mode 100644
    index 00000000000..e8ef389b230
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/gitter.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/glide-g.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/glide-g.svg
    new file mode 100644
    index 00000000000..79bb270b511
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/glide-g.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/glide.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/glide.svg
    new file mode 100644
    index 00000000000..60bda1914a5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/glide.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/gofore.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/gofore.svg
    new file mode 100644
    index 00000000000..a9c68011aa4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/gofore.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 512"><path d="M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/goodreads-g.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/goodreads-g.svg
    new file mode 100644
    index 00000000000..cd050f653f5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/goodreads-g.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/goodreads.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/goodreads.svg
    new file mode 100644
    index 00000000000..8e091dcc9e9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/goodreads.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/google-drive.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/google-drive.svg
    new file mode 100644
    index 00000000000..6d22ea7cd87
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/google-drive.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/google-play.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/google-play.svg
    new file mode 100644
    index 00000000000..4d43283fe65
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/google-play.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/google-plus-g.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/google-plus-g.svg
    new file mode 100644
    index 00000000000..39d5011654c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/google-plus-g.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/google-plus-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/google-plus-square.svg
    new file mode 100644
    index 00000000000..e634dfbc394
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/google-plus-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/google-plus.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/google-plus.svg
    new file mode 100644
    index 00000000000..ff822b8cc86
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/google-plus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/google-wallet.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/google-wallet.svg
    new file mode 100644
    index 00000000000..858240bee55
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/google-wallet.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/google.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/google.svg
    new file mode 100644
    index 00000000000..027d20f99c6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/google.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 488 512"><path d="M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/gratipay.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/gratipay.svg
    new file mode 100644
    index 00000000000..70670574a30
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/gratipay.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/grav.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/grav.svg
    new file mode 100644
    index 00000000000..b25cdaef0b1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/grav.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/gripfire.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/gripfire.svg
    new file mode 100644
    index 00000000000..e40f555c915
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/gripfire.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M171.8 503.8c0-5.3 4.8-12.2 4.8-22.3 0-15.2-13-39.9-78.1-86.6C64.2 365.8 32 336.4 32 286.6 32 171.9 179.1 110.1 179.1 18c0-3.3-.2-6.7-.6-10 5.1 2.4 39.1 43.3 39.1 90.4 0 80.5-105.1 129.2-105.1 203 0 26.9 16.6 47.2 32.6 69.5 22.5 30.2 44.2 56.9 44.2 86.5-.1 14.5-4.4 29.7-17.5 46.4zm146-241.4c1.5 8.4 2.2 16.6 2.2 24.6 0 51.8-29.4 97.5-67.3 136.8-1 1-2.2 2.4-3.2 2.4-3.6 0-35.5-41.6-35.5-53.2 0 0 41.8-55.7 41.8-96.9 0-10.8-2.7-21.7-9.1-33.4-1.5 32.3-55.7 87.7-58.1 87.7-2.7 0-17.9-22-17.9-42.1 0-5.3 1-10.7 3.2-15.8 2.4-5.5 56.6-72 56.6-116.7 0-6.2-1-12-3.4-17.1l-4-7.2c16.7 6.5 82.6 64.1 94.7 130.9"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/grunt.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/grunt.svg
    new file mode 100644
    index 00000000000..090a333f34c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/grunt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm79.2 233.7c2.2 2.3 1.5 5.3.9 6.8-1.1 2.7-5.5 11.6-13 19.8-2.7 2.9-6.6 4.6-11 4.6-4.3 0-8.7-1.6-11.8-4.3-2.3-2.1-10.2-9.5-13.7-18.6-1.3-3.4-1-6.1.9-8.1 1.3-1.3 4-2.9 9.5-2.9H160c4.1 0 7 .9 8.8 2.7zm62.9-187.9c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm17.8-8.8c7.5-11.4 25.4-26 44.9-37 3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6-.1.1 0 0 0 0zM263 421.4c1.9 1.9 2.2 4.6.9 7.9-3.5 8.9-11.4 16.1-13.7 18.1-3.1 2.6-7.4 4.2-11.8 4.2s-8.3-1.6-11-4.5c-7.5-8-12-16.7-13-19.3-.6-1.5-1.3-4.4.9-6.7 1.7-1.8 4.7-2.7 8.9-2.7h29.4c5.4.1 8.1 1.7 9.4 3zm-98.3-251.5c9.9 6 18.8 8.1 27.3 8.3 8.5-.2 17.4-2.3 27.3-8.3 0 0-14.5 17.7-27.2 17.8h-.2c-12.7-.2-27.2-17.8-27.2-17.8zm184.5 147.4c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/gulp.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/gulp.svg
    new file mode 100644
    index 00000000000..f5a6d80a841
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/gulp.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/hacker-news-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/hacker-news-square.svg
    new file mode 100644
    index 00000000000..7b5a1044a6e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/hacker-news-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/hacker-news.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/hacker-news.svg
    new file mode 100644
    index 00000000000..99fe0656e54
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/hacker-news.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/hackerrank.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/hackerrank.svg
    new file mode 100644
    index 00000000000..ceb503ba4ce
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/hackerrank.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 464.36 512"><path d="M453.5 128C439.01 103.05 261.13 0 232.16 0 203.2 0 25.25 102.79 10.84 128c-14.41 25.21-14.49 230.8 0 256.01C25.33 409.21 203.22 512 232.16 512s206.85-102.92 221.33-128c14.48-25.08 14.49-231.05.01-256zM292.13 414.22c-3.96 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32.04-2.02-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 5.96-5.74 5.94-10.13-.03-20.27-.11-30.41-.08-4.1.01-5.87-1.53-5.74-6.11.92-33.44 2.96-84.02-.15-212.67v-3.17c-9.67-.35-16.38-.96-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69 3.96 0 41.17 35.78 38.27 38.69-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2.03 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46.02 4.57 1.72 4.5 5.38-3.65 191.29-.66 177.94-.66 210.34 8.87.35 16.82.96 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/hips.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/hips.svg
    new file mode 100644
    index 00000000000..27a284bb27f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/hips.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M0 80.2c0-1.8.9-2.7 2.7-2.7h40.9c1.9 0 2.8.9 2.8 2.7v81.2c15.2-7.7 31.7-11.5 49.8-11.4 24 .1 44.2 6.2 60.3 18 18.7 13.5 28 31.9 28 55.3v136.1c0 1.9-.9 2.8-2.7 2.8h-27.3c-9.1 0-16.4-7.3-16.4-16.3V223.3c0-.9 2.7-27-45.8-27-48.6 0-45.8 26.2-45.8 27v136.1c0 1.9-.9 2.8-2.8 2.8h-41c-1.8 0-2.7-.9-2.7-2.8V80.2zm497.7 221.5c13.7 10.2 34.1 19.1 58.4 19.1 23.3 0 32.8-4.5 36.5-13.6 3-7.9-.6-16.1-12.2-21.2l-53.6-23.5c-21.4-9.4-33.8-24-37.2-43.6-5.7-33.7 22.2-53.3 22.7-53.7 13.2-9.6 32-15.4 58.5-15.4 19 0 37.4 3.3 55.1 9.9 1.3.5 1.9 1.3 1.9 2.6V207c0 2.1-2.3 3.4-4 2.4-39.7-20.7-76.6-12.3-84-6.8-6.6 4.9-6 12.5 2.6 16.1L600 244c16.5 7.1 28.1 18.4 34.9 34.1 5.5 12.6 6.6 25.6 3.1 39.1-9.6 36.9-44.9 45.5-45.6 45.8-10.5 3.1-23.6 4.3-36.3 4.3-16.6 0-32.6-2.7-48.2-8.2-9.7-3.4-14.6-10.3-14.6-20.7V304c0-2.1 2.3-3.7 4.4-2.3zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zm-124.6 38.7c0 1.9-.9 2.8-2.8 2.8h-40.9c-1.6 0-2.7-1.4-2.7-2.8V157.6c0-1.4 1.1-2.8 2.7-2.8h40.9c1.9 0 2.8.9 2.8 2.8v201.8M228.3 72.5c15.9 0 28.9 12.7 28.9 28.9 0 15.8-12.7 28.9-28.9 28.9s-28.9-13.3-28.9-28.9c.1-16 13-28.9 28.9-28.9"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/hire-a-helper.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/hire-a-helper.svg
    new file mode 100644
    index 00000000000..82d85484f74
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/hire-a-helper.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/hooli.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/hooli.svg
    new file mode 100644
    index 00000000000..84c7cdfff76
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/hooli.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M508.4 352h57.9V156.7L508.4 184v168zm73.7-110.5V352H640V241.5h-57.9zm-250.7-8.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.9 110.9v-31c-48.8-54.6-39-76.1-35.3-79.2 13.5-11.4 37.5-8 64.4 2.1L65.2 184v63.3c13.1 14.7 30.5 31.5 53.5 50.4l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zm-39.7 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm185.7-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6 0 18.7-1.4 34.3 16.8 52.5 18.2 18.2 50.4 17.1 50.4 17.1s32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5-8.9 0-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9 3.4 0 10.7 2.1 10.7 10.9v40.4zm173.5-73c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8v16zm-21.4 0v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.5-21.7-38.5-31.5V352h57.9zm59.7.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3v5.3l-19.4.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/hornbill.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/hornbill.svg
    new file mode 100644
    index 00000000000..f5c0d439bf2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/hornbill.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 509.02 512"><path d="M75.37 370.3c2.14 15.83-5.77 31.98-20.94 39.29-18.85 9.1-41.55 1.17-50.68-17.68-9.08-18.83-1.13-41.58 17.7-50.65 7.05-3.4 14.63-4.42 21.85-3.38-78.28-111.35 52-190.53 52-190.53-5.86 43.04-8.24 91.16-8.24 91.16-67.31 41.45.92 64.06 39.81 72.87 19.77 53.62 71.18 91.94 131.66 91.94 1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zM183.38 42.6c.89-7-.1-14.33-3.39-21.15-9.1-18.84-31.82-26.78-50.66-17.69-18.86 9.1-26.8 31.83-17.69 50.68 6.98 14.47 22.02 22.42 37.18 21.23-22.55 29.91-53.83 89.57-52.42 190.03l21.84-.15c-.02-.9-.14-1.77-.14-2.68 0-58.95 36.37-109.33 87.85-130.16 8.01-37.75 30.74-114.3 73.84-44.29 0 0 48.14 2.38 91.18 8.24 0-.01-77.84-128.03-187.59-54.06zm304.18 134.17c18.84-9.09 26.81-31.81 17.7-50.65-9.1-18.85-31.83-26.77-50.67-17.69-15.27 7.37-23.19 23.69-20.87 39.64-31.71-21.94-89.84-49.05-183.45-47.74l.14 22.5c2.7-.15 5.39-.41 8.14-.41 59.3 0 109.9 36.8 130.49 88.76 39.1 9.02 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 48.96-194.61 6.43.5 13.07-.49 19.31-3.5zM373.05 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15 0 60.27-38.05 111.55-91.39 131.45-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 50.97.31 4.72 1.45 9.45 3.64 13.97 9.06 18.89 31.8 26.78 50.64 17.71 18.86-9.1 26.79-31.83 17.7-50.65-6.56-13.62-20.26-21.43-34.45-21.35z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/hotjar.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/hotjar.svg
    new file mode 100644
    index 00000000000..e1ecc05ef07
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/hotjar.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/houzz.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/houzz.svg
    new file mode 100644
    index 00000000000..c880d520b5b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/houzz.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 414.6 512"><path d="M258.9 330.7H154.3V480H0V32h109.5v104.5l305.1 85.6V480H258.9V330.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/html5.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/html5.svg
    new file mode 100644
    index 00000000000..0ae02a42f6e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/html5.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/hubspot.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/hubspot.svg
    new file mode 100644
    index 00000000000..493ee234b3b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/hubspot.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/imdb.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/imdb.svg
    new file mode 100644
    index 00000000000..e4799c046d2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/imdb.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M350.5 288.7c0 5.4 1.6 14.4-6.2 14.4-1.6 0-3-.8-3.8-2.4-2.2-5.1-1.1-44.1-1.1-44.7 0-3.8-1.1-12.7 4.9-12.7 7.3 0 6.2 7.3 6.2 12.7v32.7zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4v-49.3zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM21.3 228.8c-.1.1-.2.3-.3.4h.3v-.4zM97 192H64v127.8h33V192zm113.3 0h-43.1l-7.6 59.9c-2.7-20-5.4-40.1-8.7-59.9h-42.8v127.8h29v-84.5l12.2 84.5h20.6l11.6-86.4v86.4h28.7V192zm86.3 45.3c0-8.1.3-16.8-1.4-24.4-4.3-22.5-31.4-20.9-49-20.9h-24.6v127.8c86.1.1 75 6 75-82.5zm85.9 17.3c0-17.3-.8-30.1-22.2-30.1-8.9 0-14.9 2.7-20.9 9.2V192h-31.7v127.8h29.8l1.9-8.1c5.7 6.8 11.9 9.8 20.9 9.8 19.8 0 22.2-15.2 22.2-30.9v-36z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/instagram.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/instagram.svg
    new file mode 100644
    index 00000000000..d4f080b7db7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/instagram.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/internet-explorer.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/internet-explorer.svg
    new file mode 100644
    index 00000000000..092c57ad056
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/internet-explorer.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/ioxhost.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/ioxhost.svg
    new file mode 100644
    index 00000000000..6a1770146f2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/ioxhost.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/itunes-note.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/itunes-note.svg
    new file mode 100644
    index 00000000000..1e2fdd424a9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/itunes-note.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/itunes.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/itunes.svg
    new file mode 100644
    index 00000000000..b04c3156a8d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/itunes.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/java.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/java.svg
    new file mode 100644
    index 00000000000..dff5412d4ad
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/java.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 377.6 512"><path d="M121.6 396s-19.6 11.4 13.9 15.2c40.6 4.6 61.3 4 106-4.5 0 0 11.8 7.4 28.2 13.8C169.5 463.4 42.9 418 121.6 396m-12.2-56.1s-21.9 16.2 11.6 19.7c43.3 4.5 77.6 4.8 136.8-6.6 0 0 8.2 8.3 21.1 12.8-121.3 35.5-256.3 2.9-169.5-25.9m103.2-95.1c24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3.1 0-175.2 43.8-91.5 140.2m132.6 192.6s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8M131 281.8s-93.1 22.1-33 30.1c25.4 3.4 76 2.6 123.1-1.3 38.5-3.2 77.2-10.2 77.2-10.2s-13.6 5.8-23.4 12.5c-94.5 24.9-277 13.3-224.5-12.1 44.5-21.4 80.6-19 80.6-19m167 93.3c96.1-49.9 51.6-97.9 20.6-91.4-7.6 1.6-11 3-11 3s2.8-4.4 8.2-6.3c61.3-21.6 108.5 63.6-19.8 97.3 0-.1 1.5-1.4 2-2.6M240 0s53.2 53.2-50.5 135c-83.1 65.6-19 103.1 0 145.8-48.5-43.8-84.1-82.3-60.2-118.2C164.4 110.1 261.5 84.5 240 0m-99.5 510.4c92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/jedi-order.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/jedi-order.svg
    new file mode 100644
    index 00000000000..3dc96886a99
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/jedi-order.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M231.89 335.72l31.44-45.89-20.18 55.5 62.56 9.09-62.56 9.08 24.22 47.43s-30.22-31.77-34.49-36.25c1.76 68.78 2.19 85.7 2.19 85.7s154.4-71.65 68.62-230.09c0 0 106.97-118.07 10.09-190.73 0 0 165.5 99.91 60.55 271.46 0 0 86.78-84.77 41.37-170.54 0 0 78.71 111.01-17.16 233.11 0 0 26.24-16.15 49.45-77.71 0 0-16.93 183.26-221.96 185.66v.02h-4.08v-.02C16.93 479.14 0 295.88 0 295.88c23.21 61.56 49.44 77.71 49.44 77.71-95.87-122.11-17.15-233.11-17.15-233.11-45.41 85.78 41.38 170.54 41.38 170.54-104.95-171.56 60.54-271.46 60.54-271.46-96.88 72.66 10.09 190.73 10.09 190.73-85.78 158.44 68.62 230.09 68.62 230.09s.43-16.93 2.19-85.7l-34.48 36.25 24.22-47.43-62.56-9.08 62.56-9.09-20.18-55.5 31.44 45.89c2.25-87.85 7.82-305.82 7.85-306.85l.01-2.43.02 1 .03-1 .01 2.43c.05 1.72 5.61 219.2 7.86 306.85z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/jenkins.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/jenkins.svg
    new file mode 100644
    index 00000000000..a467b1ef504
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/jenkins.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/joget.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/joget.svg
    new file mode 100644
    index 00000000000..e588fcf3f19
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/joget.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M227.5 468.7c-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1M66.1 143.9C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9-55.5-1.4-81.7-20.8-58.5-48.2 23.2-27.4 51.1-40.7 68.9-51.2 17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1m-29.2-18c-71.9 116.6-35.6 269.3 81 341.2 116.6 71.9 269.3 35.6 341.2-80.9 71.9-116.6 35.6-269.4-81-341.2-40.5-25.1-85.5-37-129.9-37C165 8 83.8 49.9 36.9 125.9m244.4 110.4c-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5c10.5-6.4 31.9-14 13.4-24.6-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/joomla.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/joomla.svg
    new file mode 100644
    index 00000000000..83bd439064b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/joomla.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/js-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/js-square.svg
    new file mode 100644
    index 00000000000..544854a654b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/js-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/js.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/js.svg
    new file mode 100644
    index 00000000000..09aa09d014d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/js.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/jsfiddle.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/jsfiddle.svg
    new file mode 100644
    index 00000000000..d572e34edf2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/jsfiddle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/kaggle.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/kaggle.svg
    new file mode 100644
    index 00000000000..60983ab7aba
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/kaggle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 291.72 512"><path d="M291.72 508.98c-.51 2.01-2.51 3.01-6.01 3.01h-66.92c-4.02 0-7.51-1.75-10.52-5.27L97.74 366.14l-30.82 29.32v109.02c0 5.02-2.51 7.52-7.52 7.52H7.52C2.5 512 0 509.5 0 504.48V7.51C0 2.51 2.5 0 7.52 0H59.4c5.01 0 7.52 2.51 7.52 7.51v306l132.32-133.82c3.51-3.5 7.02-5.26 10.52-5.26h69.18c6.96 0 7.9 7.87 5.26 10.52L144.35 320.26l145.86 181.2"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/keybase.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/keybase.svg
    new file mode 100644
    index 00000000000..54b06dc8f33
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/keybase.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 412.3 512"><path d="M177.2 430.9c0 9.8-8 17.8-17.8 17.8s-17.8-8-17.8-17.8 8-17.8 17.8-17.8c9.8-.1 17.8 7.9 17.8 17.8zM270 413c-9.8 0-17.8 8-17.8 17.8s8 17.8 17.8 17.8 17.8-8 17.8-17.8-8-17.8-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3c4.8 26.7 15.7 51.3 31.2 72.3H46.1c-9.7-15.8-17.2-33-22.2-51.3L.1 454c0-74.9-5.5-147.6 61.5-215.2 20.2-20.4 43.7-36.2 69.1-46.7-6.8-13.5-9.5-29.2-7.8-46l-19.9-1.2c-17.9-1.1-31.6-16.5-30.6-34.4v-.1L74 84.2c1.1-17.1 15.4-30.6 32.5-30.6 1.3 0-.3-.1 28.2 1.7 13.9.8 21.5 9.8 22.8 11.4 7.1-10.4 14.5-20.5 24.6-34.5l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7C246 92.9 262 107 271 126c.4.9 15.5 29 1.2 62.6 19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM128 122.3c3.2-10 7.7-19.7 13.1-29.4.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6-4.6 0-8.3 3.5-8.6 8.1l-1.6 26.2c-.3 4.7 3.4 8.8 8.1 9.1l23.5 1.4zm25.8 61.8c5.6 9.4 14.1 16.1 22.3 20 0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7-10.3.4-19.7-5.4-23.7-15.3-13.7 21.2-37.2 62.5-17.6 95.1zm82.9 68.4L217 268.6c-1.9 1.6-2.2 4.4-.6 6.3l8.9 10.9c1 1.2 3.8 2.7 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zm118.4 25.7c-16.9-23.7-42.6-46.7-73.4-60.4-7.9-3.5-15-6.1-22.9-8.6-2 2.2-4.1 4.3-6.4 6.2l31.9 39.2c10.4 12.7 8.5 31.5-4.2 41.9-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9-8.6 0-16.6-3.8-22.1-10.5l-8.9-10.9c-6.3-7.8-7.9-17.9-5-26.8-8.2-9.9-8.3-21.3-4.6-30-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zM110.6 107.3l15.6 1 1-15.6-15.6-1-1 15.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/keycdn.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/keycdn.svg
    new file mode 100644
    index 00000000000..c8f47aaff83
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/keycdn.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/kickstarter-k.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/kickstarter-k.svg
    new file mode 100644
    index 00000000000..c82463daad4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/kickstarter-k.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/kickstarter.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/kickstarter.svg
    new file mode 100644
    index 00000000000..41635cf776e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/kickstarter.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/korvue.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/korvue.svg
    new file mode 100644
    index 00000000000..a3217d870f1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/korvue.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 446 512"><path d="M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/laravel.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/laravel.svg
    new file mode 100644
    index 00000000000..114178426fa
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/laravel.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/lastfm-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/lastfm-square.svg
    new file mode 100644
    index 00000000000..45d7b521ad3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/lastfm-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/lastfm.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/lastfm.svg
    new file mode 100644
    index 00000000000..413b7638b5c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/lastfm.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/leanpub.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/leanpub.svg
    new file mode 100644
    index 00000000000..22b8a5ca050
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/leanpub.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/less.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/less.svg
    new file mode 100644
    index 00000000000..c688bf0223d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/less.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/line.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/line.svg
    new file mode 100644
    index 00000000000..bc538a42d9e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/line.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/linkedin-in.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/linkedin-in.svg
    new file mode 100644
    index 00000000000..5638a716091
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/linkedin-in.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448.1 512"><path d="M100.3 448H7.4V148.9h92.9V448zM53.8 108.1C24.1 108.1 0 83.5 0 53.8S24.1 0 53.8 0s53.8 24.1 53.8 53.8-24.1 54.3-53.8 54.3zM448 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448h-.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/linkedin.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/linkedin.svg
    new file mode 100644
    index 00000000000..cd6ace7cd41
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/linkedin.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/linode.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/linode.svg
    new file mode 100644
    index 00000000000..02eb82994e2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/linode.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/linux.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/linux.svg
    new file mode 100644
    index 00000000000..e87162c81fc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/linux.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M196.1 123.6c-.2-1.4 1.9-2.3 3.2-2.9 1.7-.7 3.9-1 5.5-.1.4.2.8.7.6 1.1-.4 1.2-2.4 1-3.5 1.6-1 .5-1.8 1.7-3 1.7-1 .1-2.7-.4-2.8-1.4zm24.7-.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm214.7 310.2c-.5 8.2-6.5 13.8-13.9 18.3-14.9 9-37.3 15.8-50.9 32.2l-2.6-2.2 2.6 2.2c-14.2 16.9-31.7 26.6-48.3 27.9-16.5 1.3-32-6.3-40.3-23v-.1c-1.1-2.1-1.9-4.4-2.5-6.7-21.5 1.2-40.2-5.3-55.1-4.1-22 1.2-35.8 6.5-48.3 6.6-4.8 10.6-14.3 17.6-25.9 20.2-16 3.7-36.1 0-55.9-10.4l1.6-3-1.6 3c-18.5-9.8-42-8.9-59.3-12.5-8.7-1.8-16.3-5-20.1-12.3-3.7-7.3-3-17.3 2.2-31.7 1.7-5.1.4-12.7-.8-20.8-.6-3.9-1.2-7.9-1.2-11.8 0-4.3.7-8.5 2.8-12.4 4.5-8.5 11.8-12.1 18.5-14.5 6.7-2.4 12.8-4 17-8.3 5.2-5.5 10.1-14.4 16.6-20.2-2.6-17.2.2-35.4 6.2-53.3 12.6-37.9 39.2-74.2 58.1-96.7 16.1-22.9 20.8-41.3 22.5-64.7C158 103.4 132.4-.2 234.8 0c80.9.1 76.3 85.4 75.8 131.3-.3 30.1 16.3 50.5 33.4 72 15.2 18 35.1 44.3 46.5 74.4 9.3 24.6 12.9 51.8 3.7 79.1 1.4.5 2.8 1.2 4.1 2 1.4.8 2.7 1.8 4 2.9 6.6 5.6 8.7 14.3 10.5 22.4 1.9 8.1 3.6 15.7 7.2 19.7 11.1 12.4 15.9 21.5 15.5 29.7zM220.8 109.1c3.6.9 8.9 2.4 13 4.4-2.1-12.2 4.5-23.5 11.8-23 8.9.3 13.9 15.5 9.1 27.3-.8 1.9-2.8 3.4-3.9 4.6 6.7 2.3 11 4.1 12.6 4.9 7.9-9.5 10.8-26.2 4.3-40.4-9.8-21.4-34.2-21.8-44 .4-3.2 7.2-3.9 14.9-2.9 21.8zm-46.2 18.8c7.8-5.7 6.9-4.7 5.9-5.5-8-6.9-6.6-27.4 1.8-28.1 6.3-.5 10.8 10.7 9.6 19.6 3.1-2.1 6.7-3.6 10.2-4.6 1.7-19.3-9-33.5-19.1-33.5-18.9 0-24 37.5-8.4 52.1zm-9.4 20.9c1.5 4.9 6.1 10.5 14.7 15.3 7.8 4.6 12 11.5 20 15 2.6 1.1 5.7 1.9 9.6 2.1 18.4 1.1 27.1-11.3 38.2-14.9 11.7-3.7 20.1-11 22.7-18.1 3.2-8.5-2.1-14.7-10.5-18.2-11.3-4.9-16.3-5.2-22.6-9.3-10.3-6.6-18.8-8.9-25.9-8.9-14.4 0-23.2 9.8-27.9 14.2-.5.5-7.9 5.9-14.1 10.5-4.2 3.3-5.6 7.4-4.2 12.3zm-33.5 252.8L112.1 366c-6.8-9.2-13.8-14.8-21.9-16-7.7-1.2-12.6 1.4-17.7 6.9-4.8 5.1-8.8 12.3-14.3 18-7.8 6.5-9.3 6.2-19.6 9.9-6.3 2.2-11.3 4.6-14.8 11.3-2.7 5-2.1 12.2-.9 20 1.2 7.9 3 16.3.6 23.9v.2c-5 13.7-5 21.7-2.6 26.4 7.9 15.4 46.6 6.1 76.5 21.9 31.4 16.4 72.6 17.1 75.3-18 2.1-20.5-31.5-49-41-68.9zm153.9 35.8c3.2-11 6.3-21.3 6.8-29 .8-15.2 1.6-28.7 4.4-39.9 3.1-12.6 9.3-23.1 21.4-27.3 2.3-21.1 18.7-21.1 38.3-12.5 18.9 8.5 26 16 22.8 26.1 1 0 2-.1 4.2 0 5.2-16.9-14.3-28-30.7-34.8 2.9-12 2.4-24.1-.4-35.7-6-25.3-22.6-47.8-35.2-59-2.3-.1-2.1 1.9 2.6 6.5 11.6 10.7 37.1 49.2 23.3 84.9-3.9-1-7.6-1.5-10.9-1.4-5.3-29.1-17.5-53.2-23.6-64.6-11.5-21.4-29.5-65.3-37.2-95.7-4.5 6.4-12.4 11.9-22.3 15-4.7 1.5-9.7 5.5-15.9 9-13.9 8-30 8.8-42.4-1.2-4.5-3.6-8-7.6-12.6-10.3-1.6-.9-5.1-3.3-6.2-4.1-2 37.8-27.3 85.3-39.3 112.7-8.3 19.7-13.2 40.8-13.8 61.5-21.8-29.1-5.9-66.3 2.6-82.4 9.5-17.6 11-22.5 8.7-20.8-8.6 14-22 36.3-27.2 59.2-2.7 11.9-3.2 24 .3 35.2 3.5 11.2 11.1 21.5 24.6 29.9 0 0 24.8 14.3 38.3 32.5 7.4 10 9.7 18.7 7.4 24.9-2.5 6.7-9.6 8.9-16.7 8.9 4.8 6 10.3 13 14.4 19.6 37.6 25.7 82.2 15.7 114.3-7.2zM415 408.5c-10-11.3-7.2-33.1-17.1-41.6-6.9-6-13.6-5.4-22.6-5.1-7.7 8.8-25.8 19.6-38.4 16.3-11.5-2.9-18-16.3-18.8-29.5-.3.2-.7.3-1 .5-7.1 3.9-11.1 10.8-13.7 21.1-2.5 10.2-3.4 23.5-4.2 38.7-.7 11.8-6.2 26.4-9.9 40.6-3.5 13.2-5.8 25.2-1.1 36.3 7.2 14.5 19.5 20.4 33.7 19.3 14.2-1.1 30.4-9.8 43.6-25.5 22-26.6 62.3-29.7 63.2-46.5.3-5.1-3.1-13-13.7-24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4 3.9-3.4 5.9-6.3 3.1-6.6-2.8-.3-2.6 2.6-6 5.1-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2-10.4 0-18.7-4.8-24.9-9.7-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/lyft.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/lyft.svg
    new file mode 100644
    index 00000000000..ccf904b9bc8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/lyft.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/magento.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/magento.svg
    new file mode 100644
    index 00000000000..beddbed9bc4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/magento.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/mailchimp.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/mailchimp.svg
    new file mode 100644
    index 00000000000..864f056e438
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/mailchimp.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 428.07 512"><path d="M426.56 323.72c-3.09-6.59-8.97-11.13-16.35-12.88-2.47-11.27-5.88-16.8-6.19-17.63 1.3-1.48 2.56-2.97 2.84-3.32 10.42-12.93 3.62-31.86-14.19-36.33-10.02-9.64-19.09-14.17-26.54-17.9-7.14-3.57-4.29-2.17-10.99-5.19-1.78-8.71-2.37-28.97-5.2-43.19-2.54-12.79-7.66-22.06-15.56-28.15-3.16-6.84-7.59-13.74-12.93-18.81 24.84-38.08 31.38-75.69 13.19-95.39-8.1-8.77-20.13-12.93-34.52-12.93-20.26 0-45.18 8.26-70.34 23.54 0 0-16.38-13.18-16.73-13.46-70.08-55.19-268.28 188.7-198.32 242l18.06 13.8c-11.34 31.54 4.43 69.14 37.29 81.21 7.26 2.67 15.14 3.97 23.31 3.51 0 0 53.09 97.36 165.1 97.39 129.58.04 162.55-126.72 162.9-127.86 0 .01 10.5-15.51 5.17-28.41zM20.12 267.95c-14.2-23.96 10.51-73.19 28.09-101.17C91.66 97.63 163.98 43.06 196.82 50.85l9.03-3.46c.03.03 24.67 20.85 24.7 20.87 16.97-10.19 38.58-20.57 58.8-22.64-12.3 2.77-27.29 9.15-45.05 20.01-.43.25-42.02 28.32-67.43 53.52-13.85 13.73-69.45 80.41-69.4 80.35 10.16-19.23 16.86-28.67 32.94-48.9 9.1-11.44 18.81-22.57 28.74-32.84 4.61-4.77 9.28-9.36 13.95-13.71 3.21-2.99 6.44-5.87 9.65-8.62 1.48-1.27 2.96-2.5 4.43-3.71l.01-.01L164.6 64.8l1.72 12.06 23.69 20.87s-20.96 14.11-31.39 23.01c-41.79 35.66-82.8 90.4-98.06 143.69l.73-.03c-7.6 4.19-15.14 10.91-21.73 20.05-.16-.04-17.04-12.43-19.44-16.5zm69.11 100.09c-25.03 0-45.33-21.37-45.33-47.72 0-26.36 20.29-47.72 45.33-47.72 6.49 0 12.66 1.44 18.24 4.02 0 0 9.63 4.86 12.34 27.81 2.82-7.17 4.24-13.06 4.24-13.06 3.23 9.88 4.88 20.26 4.23 30.76 2.68-3.56 5.55-10.27 5.55-10.27 5 29.33-16.4 56.18-44.6 56.18zm55.8-168.53s19.49-37.06 62.33-61.57c-3.19-.51-10.99.48-12.36.64 7.78-6.69 22.24-11.16 32.23-13.19-2.92-1.86-9.89-2.33-13.34-2.42-1.02-.03-1.01-.02-2.22.03 9.4-5.25 26.82-8.34 42.65-5.55-1.99-2.64-6.5-4.57-9.67-5.51-.28-.08-1.52-.39-1.52-.39l1.19-.28c9.54-1.84 20.69.15 29.5 3.69-1-2.32-3.45-5.03-5.29-6.74-.19-.18-1.29-.97-1.29-.97 9.22 1.91 18.06 5.94 24.71 10.5-.9-1.75-3.14-4.69-4.69-6.29 8.81 2.52 18.71 8.81 22.95 17.82.1.2.37.94.4 1.03-16.7-12.84-65.44-9.2-114.24 22.42-22.33 14.48-38.71 30.32-51.34 46.78zm263.32 146.34c-.59 1.15-6.73 34.4-41.86 62.01-44.37 34.86-102.66 31.33-124.67 11.8-11.76-11-16.85-26.73-16.85-26.73s-1.33 8.87-1.56 12.35c-8.87-15.09-8.12-33.52-8.12-33.52s-4.73 8.83-6.9 13.77c-6.53-16.62-3.16-33.78-3.16-33.78l-5.16 7.7s-2.42-18.81 3.52-34.47c6.36-16.74 18.68-28.9 21.11-30.42-9.35-2.97-20.12-11.49-20.14-11.51 0 0 4.28.28 7.26-.4 0 0-18.9-13.54-22.22-34.26 2.74 3.38 8.49 7.21 8.49 7.21-1.86-5.42-2.99-17.49-1.25-29.36l.01-.01c3.58-22.68 22.27-37.45 43.44-37.27 22.54.2 37.65 4.93 56.55-12.5 4-3.69 7.19-6.87 12.81-8.11.59-.13 2.06-.75 5.07-.75 3.05 0 5.98.69 8.67 2.29 10.25 6.1 12.46 22.01 13.56 33.68 4.07 43.28 2.43 35.57 19.94 44.49 8.36 4.25 17.74 8.29 28.43 19.72.03.03.08.09.08.09h.13c9.01.22 13.65 7.31 9.5 12.47-30.23 36.1-72.46 53.39-119.51 54.84-1.94.05-6.32.15-6.34.15-19.01.58-25.19 25.16-13.27 39.95 7.54 9.35 22.03 12.42 33.97 12.46l.17-.06c51.45 1.04 103.14-35.37 112.07-55.44.06-.15.61-1.42.61-1.42-2.07 2.43-52.18 49.61-113.08 47.9 0 0-6.66-.14-12.93-1.6-8.27-1.92-14.55-5.56-16.95-13.8 5.05 1.01 11.45 1.66 18.87 1.66 43.96 0 75.63-19.98 72.33-20.25-.13 0-.26.03-.48.08-5.13 1.19-57.97 21.66-91.37 11.16.08-1.02.24-2.01.48-2.9 2.97-9.95 8.25-8.56 16.79-8.93 30.48-1.01 55.07-8.68 73.5-17.43 19.65-9.33 34.63-21.35 40.03-27.42 7 11.79 6.96 26.92 6.96 26.92s2.74-.96 6.38-.96c11.38.01 13.73 10.23 5.09 20.6zm-149.29 13.7c0-.05-.01-.1-.01-.15.01.05.01.1.01.15zm-.01-.21c-.01-.13-.01-.26-.02-.39-.02-.65-.03-1.33 0-2.02-.02.74-.02 1.42 0 2.02.01.13.01.27.02.39zm.12 1.46c0 .02 0 .04.01.06 0-.02 0-.04-.01-.06zm.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zM193.96 59.68l2.87-8.83 4.88 17.72-6.03-1.95-1.72-6.94zm22.38 17.72l-3.62-12.59 9.97 8.36c-2.24 1.44-4.36 2.86-6.35 4.23zm42.71 281.94c-.01-.13-.01-.26-.02-.39.01.13.01.27.02.39zm-.01-.39c-.02-.65-.03-1.33 0-2.02-.03.75-.03 1.42 0 2.02zm.02.6c0-.05-.01-.1-.01-.15m.13 1.46c0-.02 0-.04-.01-.06m.02.12c.2 1.58.51 2.31.55 2.4-.23-.49-.42-1.34-.55-2.4zm52.1-138.61c-.07-3.36.47-8.92 3.63-9.95h.01c5.41-1.88 12.58 11.98 12.91 24.28-4.28-2.14-9.3-3.05-14.47-2.6-1.3-3.97-1.92-7.7-2.08-11.73zM205.38 85.27l-13.59-11.38 20.57 6.28c-2.65 1.88-5 3.6-6.98 5.1zm27.7 166.94c-3.41 1.3-5.83 2.31-7 2.14-1.89-.28-.06-3.75 4.08-7.11 8.33-6.64 19.76-8.7 29.53-5.07 4.28 1.57 9.08 4.72 11.6 8.39.95 1.39 1.21 2.44.82 2.88-.77.9-3.51-.31-7.55-1.89-10.35-3.86-17.98-4.45-31.48.66zm14.55 14.53c-2.31.94-3.81 1.66-4.42 1.17-.62-.48-.01-2.42 2.15-4.51 1.88-1.81 3.83-2.83 6.07-3.77.35-.15.72-.28 1.1-.38 1.04-.28 2.09-.63 3.23-.8 9.12-1.55 15.8 3.51 14.93 4.98-.39.69-2.08.53-4.6.36-5.23-.36-10.71-.27-18.46 2.95zM60.86 323.12zm24.3-25.78c-1.85.39-.81.17-2.64.68a7 7 0 0 0-.77.25c-.58.27-1.11.45-1.62.73-.43.24-4.07 1.86-7.03 5.48-3.99 4.95-5.44 11.43-5.19 17.67.24 6.06 2.02 9.41 2.35 10.23 1.38 2.96-1.85 3.57-4.79.39l-.01-.01c-2.35-2.49-3.86-6.29-4.6-9.66-2.98-13.95 3.24-27.97 17.61-33.57.8-.32 1.74-.51 2.5-.73h-.01c1.47-.44 6.72-1.5 12.07-.67 5.87.91 11.04 3.85 14.33 7.67l.01.01c2.53 2.87 4.43 6.92 4.09 10.53v.01c-.13 1.5-.79 3.65-2.14 4.21-.5.21-1.01.1-1.36-.25-.98-.96-.22-2.93-2.6-6.3-3.17-4.47-10.31-8.76-20.2-6.67zm30.28 31.17c1.88 10.82-6 20.5-15.52 20.7-6.67.15-10.31-4.02-9.66-4.93.3-.43 1.32-.24 2.88-.01 8.5 1.32 13.66-3.86 14.9-9.29.02-.09.35-1.54.34-2.54.07-.88-.03-1.76-.16-2.56-1-5.62-7.45-6.68-11.6-11.15-3.72-4.04-2.99-9.22-.65-11.71 2.81-2.77 6.83-1.76 6.78-.78 0 .52-.97.91-2.17 1.74-1.56 1.1-1.77 2.16-1.37 3.98.26 1 .71 1.65 1.68 2.42 3.48 2.76 12.85 4.7 14.55 14.13zm212.87-81.47c2.58.4 4.22 3.59 3.67 7.13-.55 3.54-3.09 6.08-5.67 5.67-2.58-.4-4.22-3.59-3.67-7.13.56-3.53 3.09-6.07 5.67-5.67zm-28.33 10.31c1.42-2.59 5.44-3.11 8.99-1.16 3.55 1.94 5.27 5.62 3.86 8.2-1.42 2.59-5.44 3.11-8.99 1.16-3.55-1.94-5.28-5.61-3.86-8.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/mandalorian.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/mandalorian.svg
    new file mode 100644
    index 00000000000..1ee7f10a3d8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/mandalorian.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 390.88 512"><path d="M203.28 511.89c-.98-3.26-1.69-15.83-1.39-24.58.55-15.89.98-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-.96.4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-.99-11.43.16-4.81 0-10.53-.34-12.71-2.05-12.97-3.46-27.7-3.25-33.9.21-6.12.43-7.15 2.06-9.67 3.05-4.71 6.51-14.04 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74.89-4.42 2.43-9.72 4.36-15.05 2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71-1.03 1.49-4.76 4.8-8.29 7.36-8.37 6.08-11.7 9.39-12.66 12.58-.93 3.11-1.02 7.23-.16 7.76.34.21 1.29 2.4 2.11 4.88 1.62 4.88 1.87 10.12.72 15.36-.39 1.77-1.05 5.47-1.46 8.23-.41 2.76-.98 6.46-1.25 8.22-.28 1.76-.97 3.68-1.55 4.26-.96.96-1.14.91-2.05-.53-.55-.87-1.2-3.01-1.44-4.75-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-.96-20.96.92-1.73 1.67-3.81 1.67-4.61 0-2.39-2.2-5.32-7.41-9.89-7.05-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3.01-2.6 9.11-2.97 22.02l-.35 12.13 1.95 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56.07 11.84.95 22.75 2 24.71.36.66.51 1.35.34 1.52-.17.17.41 2.09 1.29 4.27.88 2.18 1.81 6.22 2.06 8.98.25 2.76 1.02 7.43 1.71 10.37 2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 57.98-2.04 61.21-.12 2.02-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4.02-4.79-2.83-9.95.7-3.01 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1.01-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73.38-1.29.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6.03-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57.02-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-10.96-1.9-23.85-14.55-6.15-6.04-12.34-11.97-13.75-13.19-2.81-2.42-2.79-1.99-.56-9.63l1.35-4.65-1.69-3.04c-.93-1.67-2.09-3.51-2.59-4.07-1.33-1.51-5.5-10.89-5.99-13.49-.31-1.66-.09-2.67.87-3.9 2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1.05 9.41 5.03 1.34 4.79 1.37 9.79.1 18.55-.53 3.68-.98 8.68-.99 11.11-.02 4.01.19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52 1.7.71 3.82 1.99 4.72 2.85 11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 7.98 4.54 10.04 13.39 1.31 5.65 4 11.14 5.46 11.14.59 0 2.09-.63 3.33-1.39 1.98-1.22 2.25-1.73 2.25-4.18-.01-3.71-1.17-14.08-2-17.84-.37-1.66-.78-4.06-.93-5.35-.14-1.29-.61-3.85-1.03-5.69-2.55-11.16-3.65-15.46-4.1-16.05-1.55-2.02-4.08-10.2-4.93-15.92-1.64-11.11-3.96-14.23-12.91-17.39-4.64-1.64-8.89-4.12-13.32-7.78-1.15-.95-4.01-3.22-6.35-5.06-2.35-1.83-4.41-3.53-4.6-3.76-.18-.23-1.39-1.14-2.69-2.02-6.24-4.22-8.84-6.98-11.26-11.96l-2.44-5.02-.22-12.98-.22-12.98 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2.05 8.53-.19 10.12.02 11.66 1.56 1.53 1.53 1.36 6.4-.29 8.5-.74.94-1.34 1.98-1.34 2.32 0 .58-2.61 4.91-5.42 8.99-.68.99-2.13 5.35-2.37 6.82 20.44 13.39 21.55 3.77 14.07 28.98l11.4 2.54c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-11.98-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28 3.18-.92 6.58-1.68 7.55-1.68.97 0 3.66-.58 5.98-1.29 3.65-1.11 4.5-1.17 6.35-.4 1.17.48 3.79 1.09 5.82 1.36 2.02.26 4.72 1.12 6 1.91 1.28.79 3.53 1.77 5.02 2.17 2.51.68 3 .57 7.05-1.67l4.35-2.4 10.7-.41c10.44-.4 10.81-.47 15.26-2.68l4.58-2.3 2.46 1.43c1.76 1.02 3.14 2.73 4.85 5.98 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39.5 1.96 1.45 4.62 2.1 5.91.65 1.29 1.24 3.09 1.31 4.01.31 4.33-.03 5.3-2.41 6.92-2.17 1.47-6.98 7.91-6.98 9.34 0 .32-.48 1.69-1.07 3.03-5.04 11.51-6.76 13.56-14.26 16.98-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26-.37.69-2.21 2.37-4.09 3.71-2.04 1.47-3.8 3.38-4.38 4.78-.54 1.28-1.66 2.59-2.49 2.91-.83.32-1.94 1.08-2.45 1.71-.52.62-3.66 3.04-7 5.38-3.33 2.34-6.87 5.02-7.87 5.96-1 .94-2.07 1.71-2.39 1.71s-1.28.74-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6.22 1.63.86 4.27 1.42 5.88 1.32 3.8 1.31 7.86-.05 10.57-1.43 2.86-.89 6.65 1.35 9.59 2.01 2.63 2.16 4.56.71 8.84-.61 1.8-1.05 5.45-1.06 8.91-.02 4.88.22 6.28 1.46 8.38 1.2 2.04 1.82 2.48 3.24 2.32 1.98-.23 2.3-1.05 4.71-12.12 2.18-10.03 3.71-11.92 13.76-17.08 2.94-1.51 7.46-3.96 10.03-5.44 2.58-1.48 6.79-3.69 9.37-4.91 6.67-3.16 11.05-6.52 15.22-11.67 7.11-8.79 9.98-16.22 12.85-33.3.55-3.28 1.43-5.65 2.86-7.73 1.29-1.87 2.37-4.62 2.89-7.31 1.02-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8.03-2.18 3.11-6.46 13.01-8.76 20.26l-2.29 7.22-6.97 6.49c-3.83 3.57-7.96 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 9.99 0 2.98.43 4.96 1.59 7.26.87 1.74 1.81 3.91 2.09 4.83.28.92.98 2.22 1.57 2.89 1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12.02-4.7 12.02-1.79 0-4.06 9.27-5.07 20.74-.18 2.02-.62 5.94-.98 8.7-.36 2.76-.96 9.98-1.35 16.05-.77 12.22-.19 18.77 2.05 23.15 3.41 6.69.52 12.69-11.03 22.84l-3.97 3.49.07 5.19c.04 2.86.55 6.85 1.14 8.87 4.61 15.98 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15.42 1.84.91 5 1.08 7.02.17 2.02.66 5.33 1.08 7.36.47 2.26.78 11.02.79 22.74l.02 19.06-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2.02-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3.02-17.66-3.03-21.3-.01-4.23 1.02-6 5.28-9.13 4.14-3.04 4.86-3.14 5.48-.72.28 1.1 1.45 5.62 2.6 10.03 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-.98 7.07-1.17 12.39-1.04 28.43.17 19.4-.64 35.73-2.04 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-70.99-37.58c-.24-.38-1.01-5.24-1.73-10.79-.72-5.56-1.49-10.41-1.73-10.79-.23-.38-.68-3.3-.99-6.49-.31-3.19-.91-7.46-1.33-9.48-.99-4.79-3.35-19.35-3.42-21.07-.03-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29.96-.96 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83-.18 4.6-.49 9.87-.67 11.71-.18 1.84-.61 9.36-.94 16.72-.79 17.41-1.94 31.29-2.65 32-.32.3-.76.24-1-.14zM74.63 162.61c21.07 12.79 17.84 14.15 28.49 17.66 13.01 4.29 18.87 7.13 23.15 16.87-43.66 36.14-69.01 57.9-76.71 70.82-31.02 52.01-5.99 101.59 62.75 87.21-14.18 29.23-77.97 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179.02c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-67.96 2.98-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.27 70.58-78.66 91.12-105.29 61.65z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/markdown.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/markdown.svg
    new file mode 100644
    index 00000000000..f1d80afe072
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/markdown.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M593.85 452.92H46.15C20.7 452.92 0 432.22 0 406.77V105.23c0-25.45 20.7-46.15 46.15-46.15h547.69c25.45 0 46.15 20.7 46.15 46.15v301.54c.01 25.45-20.69 46.15-46.14 46.15zm-440-92.3v-120l61.54 76.92 61.54-76.92v120h61.54V151.38h-61.54l-61.54 76.92-61.54-76.92H92.31v209.23h61.54zM566.15 256h-61.54V151.38h-61.54V256h-61.54l92.31 107.69L566.15 256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/mastodon.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/mastodon.svg
    new file mode 100644
    index 00000000000..67ce0ed146e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/mastodon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 417.8 512"><path d="M417.8 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.5-28.4-290.4 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.4-.9-9-.9-13.9 85.6 20.9 158.6 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H75.1c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/maxcdn.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/maxcdn.svg
    new file mode 100644
    index 00000000000..f12b4496311
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/maxcdn.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/medapps.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/medapps.svg
    new file mode 100644
    index 00000000000..c0be58e135d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/medapps.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/medium-m.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/medium-m.svg
    new file mode 100644
    index 00000000000..4345e9afd69
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/medium-m.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/medium.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/medium.svg
    new file mode 100644
    index 00000000000..6e2e2eead93
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/medium.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/medrt.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/medrt.svg
    new file mode 100644
    index 00000000000..5509b7a3bff
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/medrt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 544 512"><path d="M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/meetup.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/meetup.svg
    new file mode 100644
    index 00000000000..e9fa76e7ba6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/meetup.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/megaport.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/megaport.svg
    new file mode 100644
    index 00000000000..8269ed18361
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/megaport.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.04 8 0 119.04 0 256c0 136.97 111.04 248 248 248 136.96 0 248-111.03 248-248C496 119.04 384.96 8 248 8zm85.46 267.67l59.66 59.67v87.05l-26.07 19.23L341 422.39v-65.46l-33.44-33.44-33.44 33.44v65.46L248 441.62l-26.12-19.23v-65.46l-33.44-33.44L155 356.92v65.46l-26.07 19.23-26.06-19.23v-87.05l59.47-59.47V188l59.5-59.5V52.88l26.06-19.23 26.06 19.23v75.64l59.5 59.5m-85.56-11.86l33.44 33.44V276L248 309.33l-33.54-33.54v-66.2l33.44-33.43z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/microsoft.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/microsoft.svg
    new file mode 100644
    index 00000000000..fcdb871e264
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/microsoft.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/mix.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/mix.svg
    new file mode 100644
    index 00000000000..886ae8c9389
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/mix.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/mixcloud.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/mixcloud.svg
    new file mode 100644
    index 00000000000..73ea64f4e59
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/mixcloud.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/mizuni.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/mizuni.svg
    new file mode 100644
    index 00000000000..94e63ebd526
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/mizuni.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/modx.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/modx.svg
    new file mode 100644
    index 00000000000..70ced1925d4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/modx.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/monero.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/monero.svg
    new file mode 100644
    index 00000000000..c86c5de647d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/monero.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/napster.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/napster.svg
    new file mode 100644
    index 00000000000..9efc224f1ca
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/napster.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/neos.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/neos.svg
    new file mode 100644
    index 00000000000..5083b695590
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/neos.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 456.38 512"><path d="M387.44 512h-95.11L184.12 357.46v91.1L97.69 512H0V29.82L40.47 0h108.05l123.74 176.13V63.45L358.69 0h97.69v461.5L387.44 512zM10.77 35.27v460.72l72.01-52.88V193.95l215.49 307.69h84.79l52.35-38.17h-78.27L40.96 12.98 10.77 35.27zm82.54 466.61l80.04-58.78V342.06L93.55 227.7v220.94l-72.58 53.25h72.34zM52.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L142.91 10.77H52.63zm230.4 180.88l72.01 102.81V15.93l-72.01 52.96v122.76z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/nimblr.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/nimblr.svg
    new file mode 100644
    index 00000000000..a63f4865e18
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/nimblr.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 355.52 512"><path d="M232.6 299.29c15.57 0 27.15 11.46 27.15 26.96 0 15.55-11.62 26.96-27.15 26.96-15.7 0-27.15-11.57-27.15-26.96 0-15.51 11.58-26.96 27.15-26.96zM99.01 326.25c0-15.61 11.68-26.96 27.15-26.96 15.57 0 27.15 11.46 27.15 26.96 0 15.41-11.47 26.96-27.15 26.96-15.44 0-27.15-11.31-27.15-26.96m78.75-167.3C143 158.95 75.45 178.77 45.25 227L0 0v335.48C0 433.13 79.61 512 177.76 512c98.24 0 177.76-78.95 177.76-176.52 0-97.46-79.39-176.53-177.76-176.53zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59 0-72.68 59.24-131.59 132.51-131.59 73.27 0 132.51 58.91 132.51 131.59s-59.25 131.59-132.51 131.59z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/nintendo-switch.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/nintendo-switch.svg
    new file mode 100644
    index 00000000000..06f1e5a766e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/nintendo-switch.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M95.9 33.5c-44.6 8-80.5 41-91.8 84.4C0 133.6-.3 142.8.2 264.4.4 376 .5 378.6 2.4 387.3c10.3 46.5 43.3 79.6 90.3 90.5 6.1 1.4 13.9 1.7 64.1 1.9 51.9.4 57.3.3 58.7-1.1 1.4-1.4 1.5-19.3 1.5-222.2 0-150.5-.3-221.3-.9-222.6-.9-1.7-2.5-1.8-56.9-1.7-44.2.1-57.5.4-63.3 1.4zm83.9 222.6V444l-37.8-.5c-34.8-.4-38.5-.6-45.5-2.3-29.9-7.7-52-30.7-58.3-60.7-2-9.4-2-240.1-.1-249.3 5.6-26.1 23.7-47.7 48-57.4 12.2-4.9 17.9-5.5 57.6-5.6l35.9-.1v188zm-75.9-131.2c-5.8 1.1-14.7 5.6-19.5 9.7-9.7 8.4-14.6 20.4-13.8 34.5.4 7.3.8 9.3 3.8 15.2 4.4 9 10.9 15.6 19.9 20 6.2 3.1 7.8 3.4 15.9 3.7 7.3.3 9.9 0 14.8-1.7 20.1-6.8 32.3-26.3 28.8-46.4-3.9-23.7-26.6-39.7-49.9-35zm158.2-92.3c-.4.3-.6 100.8-.6 223.5 0 202.3.1 222.8 1.5 223.4 2.5.9 74.5.6 83.4-.4 37.7-4.3 71-27.2 89-61.2 2.3-4.4 5.4-11.7 7-16.2 5.8-17.4 5.7-12.8 5.7-146.1 0-106.4-.2-122.3-1.5-129-9.2-48.3-46.1-84.8-94.5-93.1-6.5-1.1-16.5-1.4-48.8-1.4-22.4-.1-40.9.2-41.2.5zm99.1 202.1c14.5 3.8 26.3 14.8 31.2 28.9 3.1 8.7 3 21.5-.1 29.5-5.7 14.7-16.8 25-31.1 28.8-23.2 6-47.9-8-54.6-31-2-7-1.9-18.9.4-26.2 6.9-22.7 31-36.1 54.2-30z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/node-js.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/node-js.svg
    new file mode 100644
    index 00000000000..f0f1673e71f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/node-js.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/node.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/node.svg
    new file mode 100644
    index 00000000000..e754fa34ec1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/node.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/npm.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/npm.svg
    new file mode 100644
    index 00000000000..45ecb8ea434
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/npm.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/ns8.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/ns8.svg
    new file mode 100644
    index 00000000000..9ac4788a71f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/ns8.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/nutritionix.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/nutritionix.svg
    new file mode 100644
    index 00000000000..69d13e10ddd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/nutritionix.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 512"><path d="M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/odnoklassniki-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/odnoklassniki-square.svg
    new file mode 100644
    index 00000000000..2ce2e4903ec
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/odnoklassniki-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/odnoklassniki.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/odnoklassniki.svg
    new file mode 100644
    index 00000000000..d58284f6dca
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/odnoklassniki.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/old-republic.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/old-republic.svg
    new file mode 100644
    index 00000000000..d9504da3d73
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/old-republic.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/opencart.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/opencart.svg
    new file mode 100644
    index 00000000000..57888d9bcec
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/opencart.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/openid.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/openid.svg
    new file mode 100644
    index 00000000000..504af7d757e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/openid.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/opera.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/opera.svg
    new file mode 100644
    index 00000000000..d936df5286e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/opera.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/optin-monster.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/optin-monster.svg
    new file mode 100644
    index 00000000000..47990292d2e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/optin-monster.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M550.671 450.303c0 11.62-15.673 19.457-32.158 14.863-12.16-3.243-31.346-17.565-36.211-27.294-5.674-11.62 4.054-32.698 18.916-30.806 15.674 1.621 49.453 25.401 49.453 43.237zM372.86 75.223c-3.783-72.151-100.796-79.718-125.928-23.51 44.588-24.321 90.257-15.673 125.928 23.51zM74.795 407.066c-15.673 1.621-49.452 25.401-49.452 43.237 0 11.62 15.673 19.457 32.157 14.863 12.16-3.243 31.076-17.565 35.94-27.294 5.946-11.62-3.782-32.698-18.645-30.806zm497.765 14.322c1.081 3.513 1.892 7.026 1.892 10.809.81 31.616-44.317 64.045-73.503 65.125-17.295.81-34.59-8.377-42.696-23.51-113.497 4.053-226.994 4.864-340.22 0-8.377 15.133-25.672 24.05-42.967 23.51-28.915-1.081-74.043-33.509-73.503-65.125.27-3.783.811-7.296 1.892-10.809-5.566-9.463-4.845-15.282 5.405-11.62 3.243-5.134 7.026-9.458 11.08-13.782-2.57-10.917 1.27-14.094 11.079-9.188 4.594-3.243 9.998-6.485 15.944-9.188 0-15.757 11.839-11.131 17.295-5.675 12.467-1.78 20.129.709 26.753 5.675v-19.726c-12.987 0-40.641-11.375-45.94-36.212-4.974-20.725 2.607-38.075 25.132-47.56.81-5.945 8.107-14.052 14.862-15.944 7.567-1.892 12.431 4.594 14.052 10.269 7.425 0 17.757 1.465 21.078 8.107 5.405-.541 11.079-1.352 16.484-1.892-2.432-1.892-5.134-3.513-8.107-4.594-5.134-8.917-13.782-11.079-24.591-11.62 0-.81 0-1.621.27-2.702-19.727-.541-44.048-5.675-54.857-17.835-21.321-23.638-15.935-83.577 12.16-103.498 8.377-5.675 21.618-.811 22.699 9.728 2.425 20.598.399 26.833 26.212 25.942 8.107-7.836 16.755-14.592 26.483-19.997-14.862-1.352-28.914 1.621-43.778 3.783 12.752-12.48 23.953-25.442 56.748-42.427 23.511-11.89 49.993-20.808 76.205-23.239-18.646-7.837-39.993-11.891-59.721-16.484 76.475-16.214 174.569-22.159 244.289 37.562 18.105 15.403 32.427 36.211 42.696 59.992 39.799 4.853 36.47-5.581 38.643-25.132 1.081-10.269 14.322-15.403 22.699-9.458 14.862 10.539 22.159 30.806 24.59 48.101 2.162 17.835.27 41.345-12.43 55.127-10.809 12.16-34.32 17.565-53.776 18.105v2.703c-11.08.27-20.268 2.432-25.673 11.62-2.972 1.081-5.674 2.703-8.377 4.594 5.675.54 11.35 1.351 16.755 1.891 1.869-5.619 12.535-8.377 21.077-8.377 1.621-5.405 6.756-11.89 14.052-10.269s14.052 9.998 14.863 15.944c10.809 4.324 22.159 12.16 25.131 25.672 1.892 8.107 1.621 15.133.27 21.888-5.726 25.262-33.361 36.212-45.939 36.212 0 6.756 0 13.241-.27 19.726 8.01-6.006 16.367-7.158 26.752-5.675 5.919-5.919 17.565-9.41 17.565 5.675 5.675 2.703 11.349 5.945 15.944 9.188 10.1-5.051 13.669-.539 10.809 9.188 4.053 4.323 8.107 8.917 11.079 13.782 10.136-3.62 11.021 2.078 5.409 11.62zm-73.773-254.016c17.295 6.756 26.212 22.159 30.265 35.67 1.081-10.539-2.702-39.453-13.782-51.073-7.296-7.296-14.052-5.134-14.052.81.001 6.216-1.35 11.62-2.431 14.593zm-18.646 12.43c12.971 15.673 17.024 41.615 12.7 62.963 10.809-2.162 20.537-6.215 26.212-12.16 1.892-2.162 3.783-4.864 4.864-7.566-1.081-21.348-10.269-42.697-29.725-48.912-3.242 3.243-9.187 4.864-14.051 5.675zm-21.889.811c7.567 20.537 12.431 42.696 14.322 64.585 3.513 0 7.567-.27 11.62-.811 5.945-24.321-.27-51.614-14.052-63.504-3.783 0-8.107 0-11.89-.27zM77.768 167.372c-1.081-2.973-2.432-8.377-2.432-14.593 0-5.945-7.026-8.107-14.052-.81-11.35 11.62-14.863 40.534-13.782 51.073 4.053-13.512 12.971-28.915 30.266-35.67zm5.675 75.394c-4.324-21.348-.27-47.291 12.701-62.963-4.865-.811-10.809-2.432-14.052-5.675-19.457 6.215-28.375 27.563-29.726 48.912 1.351 2.702 2.972 5.404 4.864 7.566 5.675 6.215 15.403 9.998 26.213 12.16zm41.345-61.073c-5.134 1.081-9.998 2.973-14.862 4.865l-12.16 5.134v-.27c-7.296 14.052-9.999 34.319-5.405 52.965 4.594.541 8.647.811 12.7.811 2.432-22.159 9.188-43.778 19.727-63.505zm88.095-23.239c0 42.155 34.319 76.205 76.205 76.205s76.205-34.05 76.205-76.205c0-41.886-34.319-75.935-76.205-75.935s-76.205 34.049-76.205 75.935zm152.41 97.283c9.969 50.608 3.299 64.692 16.484 58.099 15.944-8.107 22.699-39.183 22.97-57.019-12.971-.81-26.213-.81-39.454-1.08zm-71.611-.541v-.27c-.27 5.134.27 38.103 4.324 41.075 11.079 5.405 39.453 4.594 51.073 1.081 5.405-1.621 2.432-37.022 1.621-41.886-18.916-.27-38.102-.27-57.018 0zm-14.053 0v-.27c-19.456.27-38.642.27-57.829.811-1.892 9.187-4.594 48.911 1.892 51.614 12.971 5.675 41.616 5.134 54.586 1.621 4.595-2.432 2.433-45.399 1.351-53.776zm-85.662 57.56c5.405 2.432 8.647 2.432 9.728-4.324 1.892-8.647 2.432-36.752 4.865-52.155-12.16.27-24.591.811-36.752 1.621-5.405 19.727.27 45.129 22.159 54.858zm-65.666-11.08c43.778 47.02 92.689 85.663 155.923 106.47 67.558-19.186 115.659-59.991 163.219-107.011-11.095-4.315-7.715-10.363-7.296-11.62-8.918-.81-17.835-1.892-26.483-2.702-9.458 32.968-35.94 52.965-46.75 31.616-2.702-5.134-3.513-11.62-4.594-16.754-3.783 8.377-13.242 8.107-24.591 8.918-13.241 1.081-31.617 1.351-44.048-2.972-2.972 12.971-11.079 12.971-26.752 14.322-14.052 1.352-48.642 4.054-54.857-10.809-1.081 28.644-35.13 9.998-45.129-7.026-3.243-5.675-5.405-11.35-7.026-17.565-7.837.81-15.673 1.621-23.511 2.702 2.443 3.663 1.549 9.052-8.105 12.431zM115.6 453.545c-5.674-23.239-18.646-49.722-33.508-54.046-22.429-6.756-68.909 23.51-66.207 54.586 12.701 19.457 39.994 35.67 59.181 36.481 17.835.81 35.94-11.08 39.724-28.914.539-2.432.81-5.134.81-8.107zm7.296-5.944c33.509-19.457 69.179-35.671 105.931-47.02-38.643-20.537-68.098-47.831-97.283-77.016-2.162 1.352-5.134 2.432-7.836 3.513-1.637 4.91 8.718 5.33 5.405 12.431-2.162 4.054-8.648 7.567-15.133 9.188-2.161 2.702-5.134 4.864-7.836 6.485h-.27c-.27 13.511-.27 27.024.27 40.535 8.939 15.964 15.426 33.314 16.752 51.884zm320.764 12.7c-36.752-21.348-74.044-41.345-115.659-52.965-13.782 6.215-27.833 11.349-42.155 15.403-2.162.811-2.162.811-4.324 0-11.89-3.783-23.239-8.107-34.859-13.241-40.265 11.62-77.286 29.185-112.416 50.803h-.27v.27c.27 0 .27 0 .27-.27 103.227 4.054 206.455 3.513 309.413 0zm27.023-64.045l-.27.27c.541-13.782.811-27.563.811-41.345-2.973-1.621-5.675-4.054-8.107-6.756-6.485-1.351-12.971-5.134-15.133-8.918-1.892-4.053 1.351-7.566 5.945-10.269-.27-.541-.541-1.621-.541-2.432-2.972-.811-5.405-1.892-7.567-3.243-31.616 29.455-65.396 56.749-103.498 76.746 38.914 11.62 75.935 28.104 111.875 47.561 1.05-14.692 7.231-35.749 16.485-51.614zm23.24 3.244c-14.593 4.323-27.834 30.806-33.509 54.046 0 23.826 21.278 37.897 40.534 37.022 19.186-.811 46.48-17.024 59.181-36.481 2.973-31.077-43.507-61.344-66.206-54.587zM290.709 134.133c.045 0 .089.003.134.003.046 0 .09-.003.136-.003h-.27zm0 96.743c28.645 0 51.884-21.618 51.884-48.371 0-36.092-40.507-58.079-72.151-44.318 9.458 2.972 16.484 11.62 16.484 21.618 0 23.257-33.291 31.955-46.48 11.35-7.297 34.067 19.368 59.721 50.263 59.721zM68.039 474.083c.54 6.486 12.16 12.701 21.618 9.458 6.756-2.703 14.593-10.539 17.295-16.214 2.973-7.026-1.081-19.997-9.728-18.375-8.917 1.621-29.725 16.754-29.185 25.131zm410.75-25.131c-8.377-1.621-12.431 11.349-9.458 18.375 2.432 5.675 10.269 13.511 17.295 16.214 9.187 3.243 21.078-2.972 21.348-9.458.811-8.377-20.267-23.51-29.185-25.131z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/osi.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/osi.svg
    new file mode 100644
    index 00000000000..5b141ff41fb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/osi.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 495.8 512"><path d="M0 259.2C2.3 123.4 97.4 26.8 213.8 11.1c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.7-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 6.4-42.4-24.5-78.7-64.5-82.2-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119C1.9 318.7 1.6 280.2 0 259.2zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 31.9 18.4 49.5 53.8 45.2 90.4-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.2 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161C459.8 112 354.1 14.7 218 31.5 111.9 44.5 22.7 134 20.9 257.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/page4.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/page4.svg
    new file mode 100644
    index 00000000000..87946a37304
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/page4.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/pagelines.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/pagelines.svg
    new file mode 100644
    index 00000000000..d77c82a628f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/pagelines.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/palfed.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/palfed.svg
    new file mode 100644
    index 00000000000..041a01433a7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/palfed.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/patreon.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/patreon.svg
    new file mode 100644
    index 00000000000..7920c723499
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/patreon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/paypal.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/paypal.svg
    new file mode 100644
    index 00000000000..0810be418e3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/paypal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/penny-arcade.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/penny-arcade.svg
    new file mode 100644
    index 00000000000..3d16dff2af8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/penny-arcade.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/periscope.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/periscope.svg
    new file mode 100644
    index 00000000000..9a531009555
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/periscope.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/phabricator.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/phabricator.svg
    new file mode 100644
    index 00000000000..f01b428212e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/phabricator.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/phoenix-framework.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/phoenix-framework.svg
    new file mode 100644
    index 00000000000..d24b6955ffc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/phoenix-framework.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/phoenix-squadron.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/phoenix-squadron.svg
    new file mode 100644
    index 00000000000..fdefc7d2ce2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/phoenix-squadron.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513.52 512"><path d="M96.24 62.81C142.91 26.57 202.15 6.57 261.28 8.08c29.67-.38 59.29 5.38 87.17 15.37-24.2-4.64-49.18-6.35-73.6-2.45-43 5.35-83.26 27.23-112.16 59.35 5.69-.99 10.81-3.68 16.07-5.88 18.19-7.89 37.6-13.29 57.4-14.87 19.8-2.14 39.75-.43 59.45 1.93-14.46 2.79-29.2 4.58-43.11 9.61-34.53 11.11-65.46 33.26-86.55 62.82-13.84 19.77-23.7 42.99-24.74 67.33-.35 16.54 5.23 34.91 19.89 44.17 11.13 6.66 24.85 9.39 37.63 6.76 15.49-2.47 30.16-8.67 43.73-16.38 11.55-6.84 22.73-14.59 32.05-24.32 3.8-3.23 2.54-8.48 2.63-12.83-2.13-.34-4.4-1.11-6.32.3a203.975 203.975 0 0 1-35.93 15.42c-20.07 6.19-42.28 8.48-62.28.78 12.83 1.73 26.14.31 37.85-5.46 20.29-9.75 36.92-25.27 54.6-38.88 27.84-21.29 57.64-40.11 89.17-55.47 25.78-12.01 53.09-22.85 81.81-24.2-15.68 13.76-32.25 26.6-46.92 41.51-14.55 14.04-27.54 29.58-40.23 45.31-3.53 4.61-8.98 6.96-13.62 10.19-22.24 15.03-40.6 35.96-52.04 60.28-9.36 19.74-14.55 41.97-11.81 63.84 1.95 13.73 8.74 27.67 20.96 35.01 12.94 7.99 29.14 8.09 43.61 5.11 32.9-7.47 61.61-28.97 81.28-56 20.5-27.6 30.61-62.38 29.25-96.64-.52-7.52-1.58-15-1.67-22.55 8.02 19.54 14.87 39.83 16.7 61.01 2.01 14.32.75 28.84-1.62 43.02-1.92 11.02-5.69 21.58-7.81 32.53 20.36-22.73 34.17-51.24 39.46-81.31 5.72-35.37.58-72.36-14.25-104.95 20.84 32.12 32.43 69.79 35.81 107.8.5 12.77.5 25.58 0 38.34-2.91 34.26-12.97 67.95-29.76 98-26.2 47.48-68.2 85.89-117.54 108.32-78.52 36.34-175.2 31.41-248.72-14.72-38.84-23.78-71.06-58.32-91.68-98.96C10.72 337.43 2.04 305.5 0 273.13V241.7c3.94-69.97 40.99-136.32 96.24-178.89m222.65 80.57c5.51-.8 10.82-2.57 16.02-4.5 4.99-1.77 9.27-5.95 10.35-11.25-8.91 5-17.95 9.95-26.37 15.75z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/php.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/php.svg
    new file mode 100644
    index 00000000000..0dda346a75f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/php.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-alt.svg
    new file mode 100644
    index 00000000000..72ff8f3e565
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M242 187c6.3-11.8 13.2-17 25.9-21.8 27.3-10.3 40.2-30.5 58.9-51.1 11.9 8.4 12 24.6 31.6 23v21.8l6.3.3c37.4-14.4 74.7-30.2 106.6-54.6 48.3-36.8 52.9-50 81.3-100l2-2.6c-.6 14.1-6.3 27.3-12.4 39.9-30.5 63.8-78.7 100.3-146.8 116.7-12.4 2.9-26.4 3.2-37.6 8.9 1.4 9.8 13.2 18.1 13.2 23 0 3.4-5.5 7.2-7.5 8.6-11.2-12.9-16.1-19.3-22.7-22.1-7.6-3.5-63.9-6.4-98.8 10zm137.9 256.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9L244 246zm-12.6 31.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zM555.5 0l-.6 1.1-.3.9.6-.6.3-1.4zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46v27.3l11.8-3.4-2.9-23.8h-8.9zm76.1 2.9c0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3l2 12.4c9-1.5 58.4-6.6 58.4-14.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-hat.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-hat.svg
    new file mode 100644
    index 00000000000..55a975a53e5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-hat.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-pp.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-pp.svg
    new file mode 100644
    index 00000000000..6355731a06e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper-pp.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper.svg
    new file mode 100644
    index 00000000000..b5814fe3f2a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/pied-piper.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/pinterest-p.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/pinterest-p.svg
    new file mode 100644
    index 00000000000..14a47881126
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/pinterest-p.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/pinterest-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/pinterest-square.svg
    new file mode 100644
    index 00000000000..88dc1dea857
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/pinterest-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/pinterest.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/pinterest.svg
    new file mode 100644
    index 00000000000..cb86dfb3381
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/pinterest.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/playstation.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/playstation.svg
    new file mode 100644
    index 00000000000..cc18e13d728
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/playstation.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/product-hunt.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/product-hunt.svg
    new file mode 100644
    index 00000000000..83cc1d5fa98
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/product-hunt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/pushed.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/pushed.svg
    new file mode 100644
    index 00000000000..c987382af11
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/pushed.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 432 512"><path d="M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/python.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/python.svg
    new file mode 100644
    index 00000000000..8638cd55032
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/python.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M167.8 36.4c-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1zm-6.7 28.4c11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4zm185.2 81.4v47.5c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6-7.7-30.9-22.3-54.2-53.4-54.2h-40.1zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/qq.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/qq.svg
    new file mode 100644
    index 00000000000..d98ff4a53ba
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/qq.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/quinscape.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/quinscape.svg
    new file mode 100644
    index 00000000000..e4c6e3c3116
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/quinscape.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 489.1 512"><path d="M301.9 474.6h-1.3c-87.3 0-158.1-70.8-158.1-158.1s70.8-158.1 158.1-158.1c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C489.1 117.5 379.6 8 244.5 8 109.5 8 0 117.5 0 252.6s109.5 244.6 244.5 244.6c24.8 0 47.8-3.2 70.4-10.1-5.2-3.5-9-8.2-13.4-12.6l.4.1zm-21.2-69.8c0-54.8 44.4-99.2 99.2-99.2 54.8 0 99.2 44.4 99.2 99.2 0 54.8-44.4 99.2-99.2 99.2-54.8 0-99.2-44.4-99.2-99.2"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/quora.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/quora.svg
    new file mode 100644
    index 00000000000..acb97525aa4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/quora.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/r-project.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/r-project.svg
    new file mode 100644
    index 00000000000..737ed7fd4e3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/r-project.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 581 512"><path d="M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/ravelry.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/ravelry.svg
    new file mode 100644
    index 00000000000..5b38f19c7ae
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/ravelry.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/react.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/react.svg
    new file mode 100644
    index 00000000000..84018a89380
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/react.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zm-130 189.1c4.6 8.8 9.3 17.5 14.3 26.1 5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5zm0-50.6c-6.3-14.9-11.6-29.5-16-43.6 14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26zm11.4 25.3c6.6-13.8 13.8-27.3 21.4-40.6 7.6-13.3 15.8-26.2 24.4-38.9 15-1.1 30.3-1.7 45.9-1.7 15.6 0 31 .6 45.9 1.7 8.5 12.6 16.6 25.5 24.3 38.7 7.7 13.2 14.9 26.7 21.7 40.4-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6-15.7 0-30.9-.5-45.6-1.4-8.7-12.7-16.9-25.7-24.6-39-7.7-13.3-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 210.2c25.3 0 45.8 20.5 45.8 45.8 0 25.3-20.5 45.8-45.8 45.8-25.3 0-45.8-20.5-45.8-45.8 0-25.3 20.5-45.8 45.8-45.8"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/readme.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/readme.svg
    new file mode 100644
    index 00000000000..516f062aafb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/readme.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/rebel.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/rebel.svg
    new file mode 100644
    index 00000000000..906acbc9a97
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/rebel.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/red-river.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/red-river.svg
    new file mode 100644
    index 00000000000..66cbe6277e1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/red-river.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/reddit-alien.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/reddit-alien.svg
    new file mode 100644
    index 00000000000..092250e9d81
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/reddit-alien.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/reddit-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/reddit-square.svg
    new file mode 100644
    index 00000000000..04df39384ec
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/reddit-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/reddit.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/reddit.svg
    new file mode 100644
    index 00000000000..dc4e2956b04
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/reddit.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/rendact.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/rendact.svg
    new file mode 100644
    index 00000000000..0782057a41c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/rendact.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248c18.6 0 36.7-2.1 54.1-5.9-5.6-7.4-10.8-14.4-15.9-21.3-12.4 2.1-25.2 3.3-38.3 3.3C124.3 480 24 379.7 24 256S124.3 32 248 32s224 100.3 224 224c0 71-33 134.2-84.5 175.3-25.9 18.8-39.1 21.4-83.5-44.2-78.7-112.9-48-71.1-73.7-108.3 72.8 8.9 228.5-72 168.6-168.6C314-26.8 15 93.8 59.7 226.4c3.2 9.8 14.4 38.6 45.6 38.6 2 0 2.6-.6 2-1.7-4.4-8.7-20.1-9.8-20.1-37.4 0-40.5 40.5-89.6 100.3-120 66.1-32.3 131.9-30.2 158.2 5.4 27.2 38.3-20.9 119.2-120.4 136.9 7.5-9.4 57-75.2 62.8-84 22.7-34.6 23.6-49 14-59.2-15.5-16.9-29.5-10.3-50.7-11.7-10.8-.9-113.7 181.2-136.4 216.9-5.9 9-21.2 34.1-21.2 50.9 0 21.3 2.8 51.4 20.6 51.4 10.6 0 8-18.7 8-26.6 0-12.9 27.4-49.4 74.8-104.6 20.4 36.1 57.7 114.3 130.2 209.7 98-33.1 168.5-125.8 168.5-235C496 119 385 8 248 8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/renren.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/renren.svg
    new file mode 100644
    index 00000000000..e0fe2f2a481
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/renren.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/replyd.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/replyd.svg
    new file mode 100644
    index 00000000000..60445411c60
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/replyd.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/researchgate.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/researchgate.svg
    new file mode 100644
    index 00000000000..f1b865fe8ca
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/researchgate.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/resolving.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/resolving.svg
    new file mode 100644
    index 00000000000..8665c89c020
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/resolving.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/rev.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/rev.svg
    new file mode 100644
    index 00000000000..7509a952cd1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/rev.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 410.22 512"><path d="M270.67 274.89c0 36.16-29.41 65.57-65.56 65.57s-65.57-29.41-65.57-65.57 29.41-65.56 65.57-65.56 65.56 29.4 65.56 65.56zm139.55-5.05h-.13c-1.49-61.55-30.1-116.35-74.32-152.98l-45.38 26.2c43.17 28.03 71.81 76.63 71.81 131.82 0 86.62-70.47 157.09-157.09 157.09S48.02 361.5 48.02 274.88c0-81.86 62.96-149.27 142.99-156.43v39.12l108.76-62.79L191.01 32v38.32C84.31 77.57 0 166.36 0 274.89c0 111.59 89.12 202.29 200.06 204.98v.13h210.16V269.84z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/rocketchat.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/rocketchat.svg
    new file mode 100644
    index 00000000000..5d70a372099
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/rocketchat.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 256.2c0-87.2-99.6-153.3-219.8-153.3-18.8 0-37.3 1.6-55.3 4.8-11.1-10.5-24.2-20-38-27.4C61.2 44.2 0 79.4 0 79.4s56.9 47.1 47.6 88.3c-52.3 52.3-52.5 124.1 0 176.6C56.9 385.6 0 432.6 0 432.6s61.2 35.2 134.9-.8c13.8-7.5 26.9-16.9 38-27.4 18 3.2 36.5 4.8 55.3 4.8 120.3-.1 219.8-65.8 219.8-153zm-219.7 124c-23.7 0-46.3-2.8-67.3-7.8-21.3 25.8-68.1 61.7-113.6 50.1 14.8-16 36.7-43.1 32-87.6-27.3-21.4-43.6-48.7-43.6-78.5 0-68.4 86.2-123.9 192.5-123.9S420.8 188 420.8 256.4c0 68.3-86.2 123.8-192.5 123.8zm25.6-123.9c0 14.2-11.5 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.5-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm88.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.1 0 25.6 11.6 25.6 25.8zm-177.9 0c0 14.2-11.4 25.8-25.6 25.8-14.1 0-25.6-11.5-25.6-25.8 0-14.2 11.4-25.8 25.6-25.8 14.2 0 25.6 11.6 25.6 25.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/rockrms.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/rockrms.svg
    new file mode 100644
    index 00000000000..3d32d27b7c3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/rockrms.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/safari.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/safari.svg
    new file mode 100644
    index 00000000000..c0f04c486dd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/safari.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/sass.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/sass.svg
    new file mode 100644
    index 00000000000..4ead9a4a68f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/sass.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640.4 512"><path d="M551.1 291.9c-22.4.1-41.8 5.5-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-3.8 11.1-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2c-.1-1.1-1.4-6.6-14.3-6.7-12.9-.1-24 2.5-25.3 5.9-1.3 3.4-2.7 11.4-5.3 19.1-2.6 7.7-33.9 77.3-42.1 95.4-4.2 9.2-7.8 16.6-10.4 21.6s-.2.3-.4.9c-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2-.8 0-1.4 2-1.4 2s10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.4-35.4 189.9-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8C367 196.5 415.1 130.2 401 74.7 386.6 18.3 293.1-.2 204.6 31.2 151.9 49.9 94.9 79.3 53.9 117.6 5.2 163.2-2.6 202.9.6 219.5c11.4 58.9 92.6 97.3 125.1 125.7-1.6.9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5s1.4 9.7 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2s0 .1.1.2c-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 6.2-2.2 13.4-5.7 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6s1.4 9.7 6.2 25.8c2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 6.5-2.2 14.3-5.7 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8-2.1 14.6-13.8 22.6-17.7 25-3.9 2.4-5.1 3.3-4.8 5.1.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3C54.6 451 59.3 421.4 82 400c13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.3 30.4.3 57.2-19.1 78.3zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5.1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.8 1.9 7.4 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/schlix.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/schlix.svg
    new file mode 100644
    index 00000000000..5bc1d8e7c93
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/schlix.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/scribd.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/scribd.svg
    new file mode 100644
    index 00000000000..252d12eec71
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/scribd.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/searchengin.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/searchengin.svg
    new file mode 100644
    index 00000000000..5c91349d06b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/searchengin.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 460 512"><path d="M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/sellcast.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/sellcast.svg
    new file mode 100644
    index 00000000000..aa555757e09
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/sellcast.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/sellsy.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/sellsy.svg
    new file mode 100644
    index 00000000000..60bd1bb2dca
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/sellsy.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/servicestack.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/servicestack.svg
    new file mode 100644
    index 00000000000..f9eb214ae64
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/servicestack.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/shirtsinbulk.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/shirtsinbulk.svg
    new file mode 100644
    index 00000000000..7c1f52466d9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/shirtsinbulk.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M395.208 221.583H406v33.542h-10.792v-33.542zm0-9.625H406v-33.542h-10.792v33.542zm0 86.333H406V264.75h-10.792v33.541zM358.75 135.25h-33.542v10.5h33.542v-10.5zm36.458 206.208H406v-33.542h-10.792v33.542zM311.5 135.25h-33.542v10.5H311.5v-10.5zm-47.25 0H231v10.5h33.25v-10.5zm-47.25 0h-33.25v10.5H217v-10.5zm178.208 33.542H406V135.25h-33.542v10.5h22.75v23.042zm-255.792 259l30.625 13.417 4.375-9.917-30.625-13.417-4.375 9.917zM179.083 445l30.334 13.708 4.374-9.916-30.333-13.417-4.375 9.625zm216.125-60.375H406v-33.542h-10.792v33.542zm-334.833 8.167L91 406.208l4.375-9.624-30.625-13.709-4.375 9.917zm39.666 17.499l30.625 13.417 4.375-9.917-30.625-13.416-4.375 9.916zm132.417 38.501l4.375 9.916L267.459 445l-4.375-9.625-30.626 13.417zm118.417-52.208l4.375 9.624 30.624-13.416-4.374-9.917-30.625 13.709zM311.5 413.791l4.375 9.917 30.625-13.417-4.374-9.916-30.626 13.416zm-39.667 17.501l4.375 9.917 30.625-13.417-4.375-9.917-30.625 13.417zM311.5 46.583h-33.542v10.5H311.5v-10.5zm94.209 0h-33.251v10.5h33.251v-10.5zm-188.709 0h-33.25v10.5H217v-10.5zm141.75 0h-33.542v10.5h33.542v-10.5zm-94.5 0H231v10.5h33.25v-10.5zM448 3.708v406l-226.334 98.584L0 409.708v-406h448zm-29.166 116.958H29.166V390.75l192.792 85.75 196.875-85.75V120.666zm0-87.791H29.166V91.5h389.667V32.875zM75.542 46.583H42.291v10.5h33.251v-10.5zm94.5 0H136.5v10.5h33.542v-10.5zm-47.251 0H89.25v10.5h33.542v-10.5zm7.584 236.542c0-50.167 41.125-91.292 91.292-91.292 50.458 0 91.292 41.125 91.292 91.292 0 50.458-40.833 91.292-91.292 91.292-50.167-.001-91.292-40.834-91.292-91.292zm120.75 18.084c0 13.125-23.917 14.291-32.666 14.291-12.25 0-29.75-2.625-35.875-14.875h-.875L172.666 319c14.876 9.333 29.167 12.25 47.25 12.25 19.542 0 51.042-5.833 51.042-31.209 0-48.125-78.458-16.333-78.458-37.916 0-13.125 20.708-14.875 29.75-14.875 10.791 0 29.166 3.208 35.583 13.124h.875l8.751-16.916c-15.167-6.125-27.417-11.959-44.334-11.959-20.125 0-49.583 6.417-49.583 31.792 0 44.334 77.583 11.959 77.583 37.918zM122.791 135.25H89.25v10.5h33.542v-10.5zm-69.999 10.5h22.75v-10.5H42v33.542h10.792V145.75zm0 32.666H42v33.542h10.792v-33.542zm117.25-43.166H136.5v10.5h33.542v-10.5zm-117.25 86.333H42v33.542h10.792v-33.542zm0 86.334H42v33.542h10.792v-33.542zm0-43.167H42v33.542h10.792V264.75zm0 86.333H42v33.542h10.792v-33.542z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/shopware.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/shopware.svg
    new file mode 100644
    index 00000000000..f1fe6756eb4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/shopware.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 495.99 512"><path d="M395.5 455.27c-42.95 31.79-93.95 48.59-147.48 48.59-137.21 0-248.02-111-248.02-248 0-137.19 111.04-248 248.02-248 61.3 0 120.14 22.55 165.68 63.5 2.62 2.36.58 6.64-2.86 6.18-17.67-2.43-36.75-3.66-56.71-3.66-129.36 0-222.4 53.47-222.4 155.35 0 109.04 92.13 145.88 176.83 178.73 33.64 13.04 65.4 25.36 86.96 41.59 1.9 1.44 1.89 4.31-.02 5.72zm99.46-222.32c-.08-.94-.55-1.83-1.27-2.44-51.76-42.96-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62.01 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93 1.88 1.05 4.26.19 5.05-1.82 18.89-48.39 17.94-90.23 15.93-113.31z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/simplybuilt.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/simplybuilt.svg
    new file mode 100644
    index 00000000000..903f26bbbef
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/simplybuilt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/sistrix.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/sistrix.svg
    new file mode 100644
    index 00000000000..983db4da80d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/sistrix.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/sith.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/sith.svg
    new file mode 100644
    index 00000000000..6d4bbc2dcab
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/sith.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/skyatlas.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/skyatlas.svg
    new file mode 100644
    index 00000000000..891fc01ea07
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/skyatlas.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/skype.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/skype.svg
    new file mode 100644
    index 00000000000..bff29896ccb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/skype.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/slack-hash.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/slack-hash.svg
    new file mode 100644
    index 00000000000..c3cad039dc3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/slack-hash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/slack.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/slack.svg
    new file mode 100644
    index 00000000000..25ddcb98ce3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/slack.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M244.2 217.5l19.3 57.7-59.8 20-19.3-57.7 59.8-20zm41.4 243.7C131.6 507.4 65 471.6 18.8 317.6S8.4 97 162.4 50.8C316.4 4.6 383 40.4 429.2 194.4c46.2 154 10.4 220.6-143.6 266.8zM366.2 265c-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-19.3-57.7 29-9.7c12.2-3.9 18.6-17.2 14.7-29.4-3.9-12.2-17.2-18.6-29.4-14.7l-29 9.7-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-59.8 20.1-10-30.1c-3.9-12.2-17.2-18.6-29.4-14.7-12.2 3.9-18.6 17.2-14.7 29.4l10 30.1-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l19.3 57.7-29 9.7c-12.2 3.9-18.6 17.2-14.7 29.4 3.2 9.3 12.2 15.4 21.5 15.8 4.3.6 7.7-1 36.9-10.7l10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 59.8-20.1 10 30.1c3.7 10.8 15.8 18.6 29.4 14.7 12.2-3.9 18.6-17.2 14.7-29.4l-10-30.1 29-9.7c12.2-4.2 18.6-17.5 14.7-29.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/slideshare.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/slideshare.svg
    new file mode 100644
    index 00000000000..e41418e7c5e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/slideshare.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M249.429 211.436c0 31.716-27.715 57.717-61.717 57.717-34.001 0-61.716-26.001-61.716-57.717 0-32.001 27.715-57.716 61.716-57.716 34.001 0 61.717 25.715 61.717 57.716zm254.294 50.002c-18.286 22.573-53.144 50.288-106.289 72.003C453.722 525.163 260 555.735 263.143 457.446c0 1.714-.286-52.859-.286-93.432-4.285-.858-8.571-2-13.714-3.143 0 40.858-.286 98.289-.286 96.575C252 555.735 58.278 525.163 114.566 333.441c-53.145-21.715-88.003-49.43-106.29-72.003-9.143-13.714.858-28.287 16.001-17.715 2 1.428 4.285 2.857 6.285 4.285V49.716C30.563 22.287 51.135 0 76.565 0h359.157c25.429 0 46.002 22.287 46.002 49.716v198.293l6-4.285c15.143-10.573 25.143 4 15.999 17.714zm-46.572-189.15c0-32.858-10.572-45.716-40.859-45.716H98.566c-31.716 0-40.573 10.858-40.573 45.716v192.293c67.717 35.43 125.72 29.144 157.435 28.001 13.429-.286 22.001 2.286 27.144 7.715 1.689 1.687 10.023 9.446 20.287 17.143 1.143-15.715 10.001-25.715 33.716-24.858 32.287 1.428 91.718 7.715 160.577-29.716V72.288zM331.146 153.72c-34.002 0-61.716 25.715-61.716 57.716 0 31.716 27.715 57.717 61.716 57.717 34.287 0 61.716-26.001 61.716-57.717 0-32.001-27.429-57.716-61.716-57.716z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/snapchat-ghost.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/snapchat-ghost.svg
    new file mode 100644
    index 00000000000..65b31f843fb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/snapchat-ghost.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/snapchat-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/snapchat-square.svg
    new file mode 100644
    index 00000000000..cd1f838cc71
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/snapchat-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/snapchat.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/snapchat.svg
    new file mode 100644
    index 00000000000..ce314b1a286
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/snapchat.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/soundcloud.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/soundcloud.svg
    new file mode 100644
    index 00000000000..10d62cfa16b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/soundcloud.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/speakap.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/speakap.svg
    new file mode 100644
    index 00000000000..01880fed518
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/speakap.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 430.87 512"><path d="M55.01 391.78C-24.4 303.59-16.95 167.42 71.65 87.64s224.8-72.96 304.21 15.24 71.96 224.36-16.64 304.14c-18.74 16.87 64.03 43.09 42.02 52.26-82.06 34.21-253.91 35.04-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32.02-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 79.96-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 85.98 52.26-.37 21.28-26.42 25.81-38.59 25.6-2.98-.05-30.23-.46-47.61-24.62l-39.95 42.61c28.16 27.01 58.99 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-84.96-19.45-84.43-49.75.41-23.25 30.96-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/spotify.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/spotify.svg
    new file mode 100644
    index 00000000000..db5f5bad9aa
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/spotify.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/squarespace.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/squarespace.svg
    new file mode 100644
    index 00000000000..e268c98ae3c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/squarespace.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/stack-exchange.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/stack-exchange.svg
    new file mode 100644
    index 00000000000..263b0434519
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/stack-exchange.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/stack-overflow.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/stack-overflow.svg
    new file mode 100644
    index 00000000000..6961ed2b354
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/stack-overflow.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M293.7 300l-181.2-84.5 16.7-36.5 181.3 84.7-16.8 36.3zm48-76L188.2 95.7l-25.5 30.8 153.5 128.3 25.5-30.8zm39.6-31.7L262 32l-32 24 119.3 160.3 32-24zM290.7 311L95 269.7 86.8 309l195.7 41 8.2-39zm31.6 129H42.7V320h-40v160h359.5V320h-40v120zm-39.8-80h-200v39.7h200V360z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/staylinked.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/staylinked.svg
    new file mode 100644
    index 00000000000..b3a9cce3da2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/staylinked.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 440 512"><path d="M201.6 127.4c4.1-3.2 10.3-3 13.8.5l170 167.3-2.7-2.7 44.3 41.3c3.7 3.5 3.3 9-.7 12.2l-198 163.9c-9.9 7.6-17.3.8-17.3.8L2.3 314.6c-3.5-3.5-3-9 1.2-12.2l45.8-34.9c4.2-3.2 10.4-3 13.9.5l151.9 147.5c3.7 3.5 10 3.7 14.2.4l93.2-74c4.1-3.2 4.5-8.7.9-12.2l-84-81.3c-3.6-3.5-9.9-3.7-14-.5l-.1.1c-4.1 3.2-10.4 3-14-.5l-68.1-64.3c-3.5-3.5-3.1-9 1.1-12.2l57.3-43.6m14.8 257.3c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/steam-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/steam-square.svg
    new file mode 100644
    index 00000000000..1c9154d8fcf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/steam-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/steam-symbol.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/steam-symbol.svg
    new file mode 100644
    index 00000000000..5427cf14a6a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/steam-symbol.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/steam.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/steam.svg
    new file mode 100644
    index 00000000000..a0ac3dcb905
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/steam.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/sticker-mule.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/sticker-mule.svg
    new file mode 100644
    index 00000000000..8fb551f3690
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/sticker-mule.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M353.1 509.8c-5.9 2.9-32.1 3.2-36.5-.5-4.1-3-2.2-11.9-1.5-15 2.2-15-2.5-7.9-9.8-11.5-3.1-1.5-4.1-5.5-4.6-10-.5-1.5-1-2.5-1.5-3.5-1.7-10.7 6.8-33.6 8.2-43.4 4.9-23.7-.7-37.2 1.5-46.9 3.7-16.2 4.1-3.5 4.1-29.9-1.4-25.9 3.3-36.9.5-38.9-14.8 0-64.3 10.7-112.2 2-46.1-8.9-59.4-29-65.4-30.9-10.3-4.5-23.2.5-27.3 7-.1.1-35 70.6-39.6 87.8-6.2 20.5-.5 47.4 4.1 66.8 0 .1 4.5 14.6 10.3 19.5 2.1 1.5 5.1 2.5 7.2 4.5 2.8 2.7 9.4 15.2 9.8 16 2.6 4.5 3.6 8-1.5 10.5-3.6 2-9.3 2.5-14.4 2.5-2.6.5-1.5 3.5-3.1 5-2.9 2.8-20.7 6.1-29.9 2.5-2.6-1-5.7-3-6.2-5-1.5-4 2.1-9-1-12.5-4.5-2.9-13.1-2-17-12-2.2-5.4-2.6-7.6-2.6-49.4 0-9.7-5.9-38.7-8.2-46.9-1.5-5.5-1.5-11.5 0-16 .3-.9 4.1-4.6 4.1-13-1-1.5-4.6-.5-5.1-1.5-10.4-80.6-5.9-79-7.7-98.3-1.5-16-10.9-43.9-6.7-64.3.5-2.4 3.4-21 24.2-38.9 31-26.7 48.4-38.3 159-11.5 1.1.4 66.3 21.1 110.7-9 15.5-11.3 28.8-11.3 35.5-16 .1-.1 61.7-52.1 87-65.3 47.2-29.4 69.9-16.7 75.1-18 4.7-1 13.4-25.8 17-25.8 5.5 0 1.6 20.2 3.6 25.9.5 2 3.6 5 6.2 5 2.3 0 1.7-.8 10.3-5 8.4-5.4 14.9-17.6 20.6-17 11.7 1.6-19 41.6-19 46.9 0 2 .2.8 4.6 9.5 2.6 5.5 4.6 13.5 6.2 20 8.3 29.7 5.7 14.6 13.4 36.9 20.2 50.1 20.6 45.2 20.6 52.9 0 7.5-4.1 11-7.2 16.5-1.5 3-4.6 7.5-7.2 8-2.7.7 7-1.5-13.4 2.5-7.2 1-13.4-4.5-14.9-9.5-1.6-4.7 2.8-10.1-11.8-22.9-10.3-10-21.1-11.3-31.9-17-9.8-5.7-11.9 1-18 8-18 22.9-34 46.9-52 69.8-11.8 15-24.2 30.4-33.5 47.4-3.9 6.8-9.5 28.1-10.3 29.9-6.2 17.7-5.5 25.8-16.5 68.3-3.1 10-5.7 21.4-8.7 32.4-2.2 6.8-7.4 49.3-.5 59.4 2.1 3.5 8.7 4.5 11.3 8 .1.1 9.6 18.2 9.3 20 0 6.1-9.4 5.6-11.3 6.5-4.8 2.9-3.8 5.9-6.4 7.4"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/strava.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/strava.svg
    new file mode 100644
    index 00000000000..be2794fa566
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/strava.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 369.2 512"><path d="M301.6 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220h-67.6zM151.4 0L0 292h89.2l62.2-116.1L213.1 292h88.5L151.4 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/stripe-s.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/stripe-s.svg
    new file mode 100644
    index 00000000000..0bf878cd58d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/stripe-s.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 362.3 512"><path d="M144.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C287.3 7.2 240.1 0 192.8 0 77.1 0 0 60.4 0 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5c53 22.8 106.8 32.4 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/stripe.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/stripe.svg
    new file mode 100644
    index 00000000000..7d77ffcd7f7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/stripe.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9m-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4h-45.9zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7m-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8M346.4 124v36.2l-44.6 9.5v-36.2l44.6-9.5m-44.5 59.2h44.6v153.2h-44.6V183.2zm-47.8 13.1c10.4-19.1 31.1-15.2 37.1-13.1V224c-5.7-1.8-23.4-4.5-33.9 9.3v103.1H213V183.2h38.4l2.7 13.1m-89-13.1h33.7V221h-33.7v63.2c0 26.2 28 18 33.7 15.7v33.8c-5.9 3.2-16.6 5.9-31.2 5.9-26.3 0-46.1-17-46.1-43.3l.2-142.4 43.3-9.2.1 38.5zM44.9 228.3c0 20 67.9 10.5 67.9 63.4 0 32-25.4 47.8-62.3 47.8-15.3 0-32-3-48.5-10.1v-40c14.9 8.1 33.9 14.2 48.6 14.2 9.9 0 17-2.7 17-10.9 0-21.2-67.5-13.2-67.5-62.4 0-31.4 24-50.2 60-50.2 14.7 0 29.4 2.3 44.1 8.1V230c-13.5-7.3-30.7-11.4-44.2-11.4-9.3.1-15.1 2.8-15.1 9.7"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/studiovinari.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/studiovinari.svg
    new file mode 100644
    index 00000000000..84876341f12
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/studiovinari.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/stumbleupon-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/stumbleupon-circle.svg
    new file mode 100644
    index 00000000000..77ac45f9b2f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/stumbleupon-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/stumbleupon.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/stumbleupon.svg
    new file mode 100644
    index 00000000000..f6bf736c92e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/stumbleupon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/superpowers.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/superpowers.svg
    new file mode 100644
    index 00000000000..e763454028a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/superpowers.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/supple.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/supple.svg
    new file mode 100644
    index 00000000000..f3672e77c9a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/supple.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/teamspeak.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/teamspeak.svg
    new file mode 100644
    index 00000000000..23867157d06
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/teamspeak.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.8 512"><path d="M.82 237.82c2.36-15.52 10.69-27.04 24.88-34.03 3.5-1.85 5.65-3.5 6.37-7.81 6.17-33.41 19.53-63.94 39.37-91.59 2.36-3.19 4.01-5.35 1.03-9.35-3.7-5.35-1.03-10.18 2.98-14.49 28.06-31.87 61.88-55.1 101.98-67.44 95.81-29.4 180.1-9.35 252.37 60.45 6.68 6.37 15.52 12.85 6.99 24.36-1.34 1.85 1.03 3.5 2.16 5.04 20.66 28.06 34.23 59.42 40.4 93.65.82 3.7 2.98 5.04 5.86 6.37 17.37 8.84 25.7 23.34 26.01 42.25 0 17.17 1.85 34.54-1.03 51.71-4.01 24.67-29.19 41.74-53.25 36.7-7.2-1.64-9.35-7.2-9.35-14.19 0-28.06.82-56.44 0-84.6-1.85-75.76-36.18-132.81-102.28-169.41C234.28 4.98 92.11 72.42 67.54 196.91c-6.06 30.42-1.74 48.27-3.7 125.82-.31 7.2-4.32 11.2-12.03 11.51C20.97 335.58 0 316.05 0 285.21v-20.87m221.74 106.81c11.82-4.32 20.05-11.82 22.51-24.36 2.36-12.34-12.03-30.02-32.38-48.73-20.87-19.22-48.22-39.06-63.43-46.57-21.69-12.03-41.74-1.85-46.26 22.72-5.04 26.21 0 51.4 14.49 73.91 10.18 15.52 25.39 22.72 43.38 24.05 11.62.62 52.54 2.16 61.69-1.02m129.83 5.55c36.5 2.81 59.33-28.55 58.39-60.45-2.14-45.17-66.17-16.48-87.79-8.02-73.16 28.14-45.05 54.92-22.2 60.75m149.26-1.33c-2.98-2.36-7.2-1.03-8.33 2.36-8.02 25.39-44.72 112.46-172.08 121.51-149.67 10.49 80.29 43.59 145.36-6.37 22.72-17.37 47.6-35.05 46.57-85.43-.32-10.07-4.84-26.72-11.52-32.07"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/telegram-plane.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/telegram-plane.svg
    new file mode 100644
    index 00000000000..0310dba4488
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/telegram-plane.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/telegram.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/telegram.svg
    new file mode 100644
    index 00000000000..671bb35bc02
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/telegram.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/tencent-weibo.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/tencent-weibo.svg
    new file mode 100644
    index 00000000000..a124c339362
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/tencent-weibo.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/the-red-yeti.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/the-red-yeti.svg
    new file mode 100644
    index 00000000000..ae71cfef111
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/the-red-yeti.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 505.07 512"><path d="M484.41 241.74l20.66 7.13c-9.56-23.91-23.93-36.96-31.72-44.76l7.13-18.2c.25 0 12.28-27.79-2.46-30.74-.63-11.35-6.59-27.05-18.44-27.05-7.62-10.57-17.71-12.3-30.74-5.9-8.85 4.18-17.71 10.08-25.33 16.48-5.3-6.44-2.95.38-2.95-29.76-37.08-24.28-45.4-11.73-74.76 2.95l.49.49c-21.15-7.62-44.02-12.05-68.36-13.28-5.55-8.71-18.6-19.1-25.08-25.08l24.84 7.13c-5.49-5.49-26.78-12.91-34.18-15.25 18.2-4.11 29.78-20.77 42.54-32.95-34.92-10.08-67.87-5.9-97.88 11.8L179.97.48 178.24 0c-31.6 24.16-32.99 41.9-33.69 45.49-.91-2.39-6.32-19.61-15.25-27.05-3.44 8.85-3.44 17.21-.49 25.33 2.95 8.36 5.9 14.76 8.36 18.94-16.04-3.3-28.35-4.9-49.18 0H84.3l32.95 14.26c-20.66 19.43-35.9 41.81-46.72 67.38l-1.72 8.36 1.72 1.72 7.62-4.67c-3.33 11.64-5.27 19.39-6.64 25.82-11.31 12.79-20.41 26.07-27.79 40.33-14.97 1-31.82 10.78-40.33 14.26l2.95 3.44 28.77.98c-.49.98-.74 2.21-1.23 3.2-7.29 6.38-39.78 37.65-32.95 80.66l20.17-22.38c.49 1.72.74 3.44 1.23 5.16 0 25.53.37 89.64 64.92 150.5 43.78 40.1 96.16 60.27 157.64 60.27 121.73 0 223.05-87.29 223.05-211.49 6.8-9.72-1.24 3.03 16.72-25.08l13.03 14.26 2.46-.49c-1.72-11.31-4.67-22.38-8.85-34.18-2.22-6.4-4.68-10.33-6.89-13.28zm-15.49-41.32l-14.26-11.8 18.2-1.23-3.94 13.03zm-74.76-89.27l-.49 21.89c5.52 18.13 16.88 17.21 22.38 17.21l-3.44-4.67 22.38-5.41c-10.08.49-18.94.49-27.05 0 12.81-2.13 33.32-29.03 43.04-11.31 3.44 7.62 6.39 17.21 9.34 27.79l1.72-5.9c-1.23-4.18-1.72-9.34-1.72-15.25 5.41.49 8.85 3.44 9.34 10.08.49 6.39 1.72 14.76 3.44 25.33l4.67-11.31c4.59 0 4.47-3.61-2.46 20.66-20.89-8.7-35.09-8.36-46.48-8.36l18.2-15.98c-25.28 8.15-33.03 10.8-54.84 20.9-1.08-5.41-4.98-13.5-15.98-19.92-3.18 3.82-2.76.9-.74 14.76h-2.46c-1.23-8.36-4.18-15.98-8.36-23.12l4.18-3.44c8.36-7.13 11.8-14.26 10.57-21.89-.49-6.39-5.41-13.53-13.53-20.66 5.66-3.2 15.25-.25 28.29 8.6zm-39.59-10.08c2.69 1.92 11.4 5.38 18.94 17.21 4.2 8.4 3.98 9.81 3.44 11.07-.48 2.41-.46 4.33-2.95 7.13-1.72 2.46-5.41 4.67-11.8 7.62-7.62-13.03-16.48-23.61-27.79-31.23l20.16-11.8zM87.25 143.12l1.23-1.72c1.23-2.95 4.18-7.62 9.34-15.25l2.46-3.44-13.03 12.3 5.41-4.67-10.08 9.34-4.18 1.23c12.3-24.1 23.12-41.31 32.46-50.17 9.34-9.34 15.98-15.98 20.17-19.43l-6.39 1.23c-11.31-4.18-19.43-7.13-24.84-8.36 2.46-.49 3.69-.49 3.2-.49 10.33 0 17.46.49 20.9 1.23 5.41 1.72 10.57 2.46 15.98 2.46l.49-1.72-8.36-35.9 13.53 29.02c1.72-2.46 4.18-7.13 5.9-14.26 1.72-6.39 5.41-13.03 10.08-19.43 4.67-6.39 7.62-10.57 9.34-11.31-2.95 8.85-4.67 17.21-6.39 25.33l-1.72 7.13-.49 4.67 2.46 2.46c21.89-13.53 45.49-19.43 71.32-18.94l21.15.49c-11.8 13.53-27.79 21.89-48.45 24.84-8.61 1.48-16.23 2.46-23.36 2.95l-.25-.49-2.46-1.23c-5.16-.98-9.84-.25-14.02 1.97-2.46-.25-4.92-.49-7.13-.74l-2.46 1.72.49 1.23c1.97.25 3.93.49 6.15.74l-1.97 3.44 3.44-.49-10.57 11.31c-4.18 2.95-5.41 6.39-4.18 9.34l5.41-3.44h1.23c6.39-8.36 15.25-13.53 25.33-15.25v-2.95c6.39.49 13.03.98 19.43 1.23 6.39 0 8.36.49 5.41 1.23 7.62 4.18 14.26 8.85 20.66 13.53 13.53 10.08 23.61 21.89 30 35.41 8.85 18.2 13.53 37.13 13.53 56.56 0 10.08-1.23 19.43-2.95 28.28-2.35 10.79-7.8 29.62-15.98 45.99l2.46.49c18.23-19.67 41.9-15.98 49.18-15.98l-6.39 5.9 22.38 17.71-1.72 30.74c-5.41-12.3-16.48-21.15-32.95-27.79 16.48 14.76 23.61 21.15 21.89 20.17-4.81-2.81-3.53-1.87-10.82-3.69 4.12 4.12 17.45 18.79 18.2 20.66l.25.25-.25.25c0 1.76 1.56-1.18-14.02 22.87-75.15-15.31-106.26-42.74-141.16-63.2l11.8 1.23c-11.75-18.53-15.63-17.72-38.36-26.07l10.57-8.36c-8.85-2.95-18.2-2.95-28.28.49l7.62-10.57-1.23-1.72c-14.89 4.34-19.85 9.17-22.62 11.31-1.14-5.46-2.77-12.44-12.3-28.77l-1.23 27.05-13.53-5.41c1.47-25.11 5.4-50.44 13.27-74.54zm276.41 330.03c-49.92 24.96-56.13 22.41-59.02 23.85-29.76-11.8-50.9-31.72-63.45-58.77l30 16.48c-9.77-9.31-18.34-16.54-38.36-44.27l11.8 23.12-17.71-7.62c14.2 21.08 23.47 51.74 66.64 73.53-120.77 24.15-199.03-72.11-200.91-74.27 11.31 9.34 23.12 17.71 35.41 24.84 3.44 1.72 7.13 2.46 10.08 1.23l-15.98-20.66c9.23 4.19 9.49 4.5 69.1 29.02-42.54-20.66-73.78-40.82-93.2-60.25-.49 6.39-1.23 10.08-1.23 10.08 8.85 7.62 15.98 16.48 20.66 26.56-39.05-18.85-57.59-47.61-71.32-82.63 49.89 55.1 118.85 37.49 120.5 37.13 34.79 16.43 69.87 23.61 113.86 10.57 3.32 0 20.3 16.98 25.33 39.1l4.18-2.95-2.46-23.61c8.95 8.95 24.9 22.56 34.43 13.03-15.58-5.32-23.52-9.49-29.51-31.72 4.58 4.2 7.57 9.05 27.79 15l1.23-1.23-10.57-14.26c11.65-4.85-3.54 1.01 31.97-10.82 4.34 34.23 9.05 49.15.74 89.52zM479 258.71l-2.46.49 2.95 9.34c-3.55 5.87-23.73 44.26-71.56 79.68-39.54 29.76-76.58 39.13-80.91 40.33l-7.62-7.13-1.23 2.95 14.26 15.98-7.13-4.67 3.44 4.18h-1.23l-21.89-13.53 9.34 26.56-18.94-27.79-1.23 2.46 7.62 29.02c-6.11-8.24-21.03-32.61-56.81-39.59l32.46 21.15c-31.97 4.67-63.2 2.46-93.2-6.39-4.18-1.23-8.85-2.46-13.53-4.18l1.23-2.95-44.76-22.38 26.07 22.38c-57.66 9.08-112.96-25.41-126.4-83.37l-2.46-16.48-22.35 22.38c19.47-57.51 25.61-57.89 51.4-70.09-9.09-5.33-1.55-3.26-38.36-9.34 15.78-5.79 33.05-15.44 73.04 5.16 2.95-1.48 2.14-1.1 3.69-1.72.64-3.18.41-.82.98-11.8 3.89 10.01 3.63 8.67 2.95 9.34l1.72.49c12.69-6.49 8.92-4.52 16.97-8.85l-5.41 13.53 22.38-5.9-8.36 8.36 2.46 2.46c4.5-1.8 30.35 3.42 40.82 15.98l-23.61-2.46c39.39 22.98 51.46 53.97 55.82 69.59l1.72-1.23c-2.84-22.28-12.37-33.88-15.98-40.08 4.22 4.99 39.2 34.56 110.42 45.99-11.31-.49-23.12 5.41-34.92 18.94l46.72-20.17-9.34 21.89c7.62-10.08 14.76-23.61 21.15-39.59v-.49l1.23-2.95-1.23 15.98c13.53-41.81 25.33-78.45 35.41-109.68l13.53-27.79v-1.97l-5.41-4.18h10.08l5.9 4.18 2.46-1.23-3.44-15.98 12.3 18.94 41.81-20.17-14.76 13.03.49 2.95 17.71-.49c11.31.49 21.89 1.72 32.95 4.18l-23.61 2.46-1.23 2.95 26.56 23.12c10.08 10.08 18.94 20.66 27.05 31.97-11.24-3.29-10.28-3.44-21.15-3.44l12.3 32.46-8.87-12.79zm-277.89-89.03c-34.85 14.42-34.73 13.98-36.15 14.26-20.83 4.73-18.97-24.44-18.94-24.84l5.9-1.23-.49-2.46c-20.17-2.65-31.03 4.17-32.46 4.92.49.49 2.95 3.44 5.9 9.34 4.18-6.39 8.85-10.08 15.25-10.57-1.72 11.31-1.23 22.38 1.72 33.69.07.51 2.57 17.44 27.54 24.1 11.31 2.95 27.05 1.23 48.94-5.41l-9.34.49c-4.18-14.76-6.39-24.84-5.9-29.51 11.31-8.85 21.89-11.31 30.74-7.62h2.46l-11.8-7.62-7.13.49c-5.9 1.23-12.3 4.18-19.43 8.36l3.19-6.39zm11.07-86.81l-2.46.49.49 2.95c8.36-.49 17.21 1.23 26.07 5.9-2.5-5.54-9.97-14.26-28.28-14.26l.49 2.46 3.69 2.46zm-67.14 56.07c-4.04-6.35-3.09-5.05-4.67-6.64 21.69 16.76 16.48 21.41 46.48 23.61l-2.95-4.67c8.85-7.62 13.53-17.21 14.76-28.28 1.72-15.98-1.23-29.51-8.85-41.31l13.03-7.62c0-.49 0-1.23-.49-1.72-4.67-1.72-9.34-1.23-13.53 1.72-12.68 6.67-27.99 20.94-29.02 22.38-1.72 1.72-3.44 5.9-5.41 13.53-1.72 7.13-2.95 14.76-2.95 23.61-4.68-7.96-10.52-6.4-19.92-5.9l7.13 7.62c-16.47 0-23.32 15.43-23.61 15.98 6.81-.01 4.6-7.6 30-12.31zm14.02-25.33c1.23-7.62 3.44-13.03 6.39-17.21 5.41-6.39 10.57-10.08 15.98-11.8 4.18-1.72 7.13 1.23 10.08 9.34 2.46 7.62 3.44 16.48 2.95 25.33-.49 9.34-3.44 17.21-8.36 23.12-2.95 3.44-5.41 5.9-6.39 7.62-4.67.49-8.36 0-11.31-.49l-7.13-3.44-5.41-6.39c.99-10.09 1.48-18.94 3.2-26.08zm62.71-21.39c-6.39-3.44-10.57 2.95-12.3 18.94s2.46 29.51 11.8 39.59c9.34 10.08 18.2 10.57 26.07 2.95 7.87-7.62 3.44-23.61-11.31-47.71-3.19-5.41-7.87-10.08-14.26-13.77zm-4.67 46.23c5.36 2.23 10.51 1.91 12.3-10.57v-4.67l-1.23.49c-4.28-3.05-2.55-4.49-1.72-6.15l.49-.49c-.88-1.23-5.02-8.11-12.54 4.67-.49-13.53.49-21.89 2.95-24.84 1.23-2.46 4.67-1.23 11.31 4.18 6.39 5.41 11.31 15.98 15.25 32.46 6.59 28.06-19.7 26.26-26.81 4.92zm-45.01-5.41c1.57.31 9.34-1.09 9.34-14.76h-.49c-5.44-1.09-2.24-5.47-.74-5.9-1.72-2.95-3.44-4.18-5.41-4.67-8.15 0-11.65 12.66-8.12 21.15 1.24 2.46 3.21 3.69 5.42 4.18zm45.99 61.48c1.72 10.57 4.67 17.71 8.85 21.89-9.26 6.61-27.54 13.85-46.48 15.98l.49 1.23c8.36 1.23 16.48.49 24.84-2.46l-7.13 13.03c4.18-1.72 10.08-7.13 17.71-14.76 11.93-5.51 12.72-5.07 20.17-15.98-12.73-6.58-15.76-13.83-18.45-18.93z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/themeco.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/themeco.svg
    new file mode 100644
    index 00000000000..404a4f0a7ff
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/themeco.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 441.03 512"><path d="M199.74 12.29c9.74-5.64 25.59-5.73 35.39-.21l188.13 105.95c9.81 5.52 17.76 19.14 17.76 30.38v213.87c0 11.26-7.93 24.89-17.71 30.46L235.09 499.88c-9.78 5.57-25.58 5.48-35.29-.21L17.58 392.95C7.87 387.26 0 373.52 0 362.27V148.41c0-11.26 7.9-24.96 17.63-30.59L199.74 12.29zM123.54 209c-15.69 0-31.39.14-47.08.14v99.87h18.83v-29.39h28.25c48.94 0 48.79-70.62 0-70.62zm137.96 98.73l-30.25-34.1c36.4-7.39 34.26-64.21-10.7-64.49-15.84 0-31.67-.14-47.51-.14v100.01h18.83v-33.38H210l29.1 33.38h22.4v-1.28zm-40.94-81.04c22.98 0 22.9 31.96 0 31.96h-28.68v-31.96h28.68zm-94.07-1.57c20.85 0 20.78 38.24 0 38.24H94.68v-38.23l31.81-.01zm189.65-17.97c-67.4 0-69.86 104.15 0 104.15 68.39-.01 68.33-104.15 0-104.15zm0 17.12c43.43 0 44.1 69.76 0 69.76-44.12 0-43.74-69.76 0-69.76z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/themeisle.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/themeisle.svg
    new file mode 100644
    index 00000000000..2e2d44fc1d8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/themeisle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/trade-federation.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/trade-federation.svg
    new file mode 100644
    index 00000000000..60fa55c9f3a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/trade-federation.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M202.45 108.42v81.61H38.94l48.22 61.91h114.73v196.75h64.61V252.96h83.27v-62.69h-83.18V171.1h145.62v-62.68H202.45zm4.86 6h197.77v50.68H259.44v30.93h83.18v50.93h-83.26v195.73h-52.73V245.94H89.86l-39.95-49.91h157.4v-81.61zM247.99 8.8C111.03 8.8 0 119.83 0 256.8s111.03 248 247.99 248S496 393.76 496 256.8 384.96 8.8 247.99 8.8zm.02 13.24c129.66 0 234.76 105.12 234.76 234.78s-105.1 234.76-234.76 234.76S13.23 386.47 13.23 256.81 118.35 22.04 248.01 22.04zm0 7.89c-125.3 0-226.89 101.57-226.89 226.87s101.59 226.89 226.89 226.89S474.88 382.1 474.88 256.8 373.31 29.93 248.01 29.93zm-.02 13.3c117.95 0 213.56 95.62 213.56 213.56s-95.62 213.56-213.56 213.56S34.43 374.75 34.43 256.8 130.04 43.23 247.99 43.23zm-73.32 104.8l15.66 18.05-22.16-9.45-12.33 20.47 2.15-23.99-23.28-5.4 23.48-5.37-2.06-23.81 12.37 20.67 22.01-9.32-15.84 18.15zm-47.14-46.54l8.01 12.4 12.69-5.86-9.32 11.45 9.5 10.25-13.77-5.32-6.82 12.2.81-14.74-13.71-2.71 14.27-3.78-1.66-13.89zm250.77 75.59l11.99 19.56 20.88-9.11-14.9 17.45 15.11 17.04-21.2-8.78-11.54 19.64 1.8-22.87-22.24-4.9 22.31-5.36-2.21-22.67zm-107.05 98.45l13.86-3.22-1.28-14.17 7.35 12.18 13.08-5.59-9.31 10.75 9.36 10.71-13.1-5.54-7.29 12.21 1.22-14.17-13.89-3.16zm-125.43 6.5l23.73-3.87-1.73-24.53 11.01 21.38 22.79-9.22-16.93 17.08 15.81 18.83-21.47-10.82-13.02 20.86 3.66-23.77-23.85-5.94zm63.44-165.66v81.61H54.16l36.72 46.01h117.7v196.75h48.82V245.01h83.27v-47.03H257.4v-34.83h145.73v-46.78H209.26zm10.86 11.2h171.8v24.36H246.88v56.23h82.93v23.94h-82.93v197.42h-26.76V232.1H96.31l-20.09-23.94h143.9v-80.59z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/trello.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/trello.svg
    new file mode 100644
    index 00000000000..d4e583d862d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/trello.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zM194.9 371.4c0 14.8-12 26.9-26.9 26.9H85.1c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9H168c14.8 0 26.9 12 26.9 26.9v254.3zm194.9-112c0 14.8-12 26.9-26.9 26.9H280c-14.8 0-26.9-12-26.9-26.9V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v142.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/tripadvisor.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/tripadvisor.svg
    new file mode 100644
    index 00000000000..9081d1b84c3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/tripadvisor.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/tumblr-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/tumblr-square.svg
    new file mode 100644
    index 00000000000..099af5adbb3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/tumblr-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/tumblr.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/tumblr.svg
    new file mode 100644
    index 00000000000..f83c1dc5b69
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/tumblr.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/twitch.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/twitch.svg
    new file mode 100644
    index 00000000000..38ab69e1c34
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/twitch.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/twitter-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/twitter-square.svg
    new file mode 100644
    index 00000000000..6e43a582c2d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/twitter-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/twitter.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/twitter.svg
    new file mode 100644
    index 00000000000..14efb4062ff
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/twitter.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/typo3.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/typo3.svg
    new file mode 100644
    index 00000000000..6e7447ab652
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/typo3.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 433.3 512"><path d="M330.8 341c-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9 0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C0 246 106.8 480 184.1 480c36.3 0 97.3-59.5 146.7-139M294.5 32c71.8 0 138.8 11.6 138.8 52.5 0 82.6-52.5 182.3-78.8 182.3-47.9 0-101.7-132.1-101.7-198.5 0-30.9 11.6-36.3 41.7-36.3"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/uber.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/uber.svg
    new file mode 100644
    index 00000000000..40ea30a6c70
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/uber.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/uikit.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/uikit.svg
    new file mode 100644
    index 00000000000..57580b2ffae
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/uikit.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/uniregistry.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/uniregistry.svg
    new file mode 100644
    index 00000000000..b2488ee6aa0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/uniregistry.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M281.1 220.1H384v-14.8H281.1v14.8zm0-37.1H384v-12.4H281.1V183zm0 74.2H384v-17.3H281.1v17.3zm-157.7 86.7H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8m145.7-12.4h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3m-41.5 37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8M384 32H281.1v2.5H384V32zM192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480m89.1-334.2H384V136H281.1v9.8zm0-37.1H384v-7.4H281.1v7.4zm0-37.1H384v-4.9H281.1v4.9zm-178.2 99H0V183h102.9v-12.4zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2m64.1-118.8v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4m178.2 0c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1v12.4zm-203 156h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7m24.8-376.2H0v4.9h102.9v-4.9zm0-34.7H0v2.5h102.9V32zm0 173.3H0v14.8h102.9v-14.8zm0 34.6H0v17.3h102.9v-17.3zm0-103.9H0v9.9h102.9V136zm0-34.7H0v7.4h102.9v-7.4zm2.8 207.9H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/untappd.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/untappd.svg
    new file mode 100644
    index 00000000000..1bfd32b2bba
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/untappd.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/usb.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/usb.svg
    new file mode 100644
    index 00000000000..0fe1bfcf6c7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/usb.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/ussunnah.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/ussunnah.svg
    new file mode 100644
    index 00000000000..1941ee70ca6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/ussunnah.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/vaadin.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/vaadin.svg
    new file mode 100644
    index 00000000000..a8d2ba02cb0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/vaadin.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/viacoin.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/viacoin.svg
    new file mode 100644
    index 00000000000..b20cf81f02d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/viacoin.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/viadeo-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/viadeo-square.svg
    new file mode 100644
    index 00000000000..ade09d6ed4f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/viadeo-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/viadeo.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/viadeo.svg
    new file mode 100644
    index 00000000000..ea37048a31c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/viadeo.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/viber.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/viber.svg
    new file mode 100644
    index 00000000000..fe800a41c72
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/viber.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/vimeo-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/vimeo-square.svg
    new file mode 100644
    index 00000000000..9e92d6ed868
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/vimeo-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/vimeo-v.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/vimeo-v.svg
    new file mode 100644
    index 00000000000..b9b9e5ae5c2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/vimeo-v.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/vimeo.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/vimeo.svg
    new file mode 100644
    index 00000000000..023ffc7d707
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/vimeo.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/vine.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/vine.svg
    new file mode 100644
    index 00000000000..ea000f05d69
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/vine.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/vk.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/vk.svg
    new file mode 100644
    index 00000000000..405e14f41b7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/vk.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/vnv.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/vnv.svg
    new file mode 100644
    index 00000000000..faeddc9b919
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/vnv.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/vuejs.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/vuejs.svg
    new file mode 100644
    index 00000000000..3e1765fdd88
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/vuejs.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/weebly.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/weebly.svg
    new file mode 100644
    index 00000000000..cdc5d882d36
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/weebly.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/weibo.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/weibo.svg
    new file mode 100644
    index 00000000000..500a2e1977b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/weibo.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/weixin.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/weixin.svg
    new file mode 100644
    index 00000000000..79f37599bf4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/weixin.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/whatsapp-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/whatsapp-square.svg
    new file mode 100644
    index 00000000000..c6f16ea3be0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/whatsapp-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/whatsapp.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/whatsapp.svg
    new file mode 100644
    index 00000000000..f8211267029
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/whatsapp.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/whmcs.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/whmcs.svg
    new file mode 100644
    index 00000000000..b81db451f6d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/whmcs.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/wikipedia-w.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/wikipedia-w.svg
    new file mode 100644
    index 00000000000..acf79164195
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/wikipedia-w.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/windows.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/windows.svg
    new file mode 100644
    index 00000000000..116ef95e38d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/windows.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/wix.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/wix.svg
    new file mode 100644
    index 00000000000..9efd3549876
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/wix.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/wizards-of-the-coast.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/wizards-of-the-coast.svg
    new file mode 100644
    index 00000000000..d1b7b6ae993
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/wizards-of-the-coast.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/wolf-pack-battalion.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/wolf-pack-battalion.svg
    new file mode 100644
    index 00000000000..bac06609ffd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/wolf-pack-battalion.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 456.58 512"><path d="M239.73 471.53l10.56 15.84 5.28-12.32 5.28 7.04V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05 27.87 3.34 53.94 10.58 63.34 54.1l-30.35 8.36c11.15 23.04 17.01 46.76 13.2 72.14L384 313.18l-6.16 33.43-18.47-7.04-8.8 33.43-19.35-7.04 26.39 21.11 8.8-28.15 24.63 5.28 7.04-35.63 26.39 14.52c.25-20.02 6.97-58.06-8.8-84.45l26.39 5.28c3.99-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 1.96-19.87 17.45-42.62 43.11-49.7-43.99 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.47 22.87-89.73 65.1-93.25 147.79l-58.06 38.71-3.52 93.25 107.33-59.82 7.04 7.04-17.59 3.52-43.99 38.71-15.84-5.28-28.15 49.26-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-43.99-38.71-17.59-3.52 7.04-7.04 107.33 59.82-3.52-93.25-58.06-38.71C157.03 65.1 107.77 22.87 67.3 0c-17.54 61.12-4.4 118.76 0 130.2 14.96-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9C29.94 160.06.44 191.78 0 216.85l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7.04 35.63 24.63-5.28 8.8 28.15 26.39-21.11-19.34 7.05-8.8-33.43-18.47 7.04-6.16-33.43-27.27 7.04c-3.82-25.38 2.05-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.91l5.28-7.04 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95.01l-15.84-10.56c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.26-.27 13.88-3.51 22.88zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7.04 8.24-7.9 15.55-16.27 22.87-24.63zm24.63 5.28c-.02-13.43-2.05-24.21-5.28-33.43-5.38 9.09-11.23 18.18-18.47 27.27l23.75 6.16zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-11.99 6.65-28.14 7.04-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 43.99-14.08-10.6-18.95-27.22-25.52-45.75-28.15zM137.68 376.52l15.84-10.56c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7.04-8.24-7.9-15.55-16.27-22.87-24.63zm-24.64 5.28c.02-13.43 2.05-24.21 5.28-33.43 5.38 9.09 11.23 18.18 18.47 27.27l-23.75 6.16zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 36.95-10.56-5.05-11.99-6.65-28.14-7.04-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-43.99-14.08 10.61-18.95 27.22-25.52 45.75-28.15z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/wordpress-simple.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/wordpress-simple.svg
    new file mode 100644
    index 00000000000..3479bf24316
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/wordpress-simple.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/wordpress.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/wordpress.svg
    new file mode 100644
    index 00000000000..3d4a785c198
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/wordpress.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/wpbeginner.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/wpbeginner.svg
    new file mode 100644
    index 00000000000..11b97b94453
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/wpbeginner.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/wpexplorer.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/wpexplorer.svg
    new file mode 100644
    index 00000000000..f70a9457f8d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/wpexplorer.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/wpforms.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/wpforms.svg
    new file mode 100644
    index 00000000000..8ce8ba33d4d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/wpforms.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/xbox.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/xbox.svg
    new file mode 100644
    index 00000000000..c694a3a4fa8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/xbox.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/xing-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/xing-square.svg
    new file mode 100644
    index 00000000000..beb5384d947
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/xing-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/xing.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/xing.svg
    new file mode 100644
    index 00000000000..5905e8b00e2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/xing.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/y-combinator.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/y-combinator.svg
    new file mode 100644
    index 00000000000..d0bcdec2edf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/y-combinator.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/yahoo.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/yahoo.svg
    new file mode 100644
    index 00000000000..e50e0065653
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/yahoo.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/yandex-international.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/yandex-international.svg
    new file mode 100644
    index 00000000000..b0f0b7afbfc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/yandex-international.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/yandex.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/yandex.svg
    new file mode 100644
    index 00000000000..3f4cb93f6e8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/yandex.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/yelp.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/yelp.svg
    new file mode 100644
    index 00000000000..4a0e7293b99
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/yelp.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M136.9 328c-1 .3-109.2 35.7-115.8 35.7-15.2-.9-18.5-16.2-19.9-31.2-1.5-14.2-1.4-29.8.3-46.8 1.9-18.8 5.5-45.1 24.2-44 4.8 0 67.1 25.9 112.7 44.4 17.1 6.8 18.6 35.8-1.5 41.9zm57.9-113.9c1.8 38.2-25.5 48.5-47.2 14.3L41.3 60.4c-1.5-6.6.3-12.4 5.3-17.4C62.2 26.5 146 3.2 168.1 8.9c7.5 1.9 12.1 6.1 13.8 12.6 1.3 8.3 11.5 167.4 12.9 192.6zm-1.4 164.8c0 4.6.2 116.4-1.7 121.5-2.3 6-7 9.7-14.3 11.2-10.1 1.7-27.1-1.9-51-10.7-22-8.1-56.7-21.5-49.3-42.5 2.8-6.9 51.4-62.8 77.3-93.6 12-15.2 39.8-5.5 39 14.1zm180.2-117.8c-5.6 3.7-110.8 28.2-118.1 30.6l.3-.6c-18.1 4.7-35.4-18.5-23.3-34.6 3.7-3.7 65.9-92.4 72.8-97 5.2-3.6 11.3-3.8 18.3-.6 18.4 8.8 55.1 63.1 57.4 84.6-.1 2.9 1.2 11.7-7.4 17.6zm10.1 130.7c-2.7 20.6-44.5 73.4-63.8 81-6.9 2.6-12.9 2-17.7-2-5-3.5-61.8-97.1-64.9-102.3-10.9-16.2 6.8-39.8 25.6-33.2 0 0 110.5 35.7 114.7 39.4 5.2 4.1 7.2 9.8 6.1 17.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/yoast.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/yoast.svg
    new file mode 100644
    index 00000000000..52dad5e45d9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/yoast.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/youtube-square.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/youtube-square.svg
    new file mode 100644
    index 00000000000..801561dc2d1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/youtube-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/youtube.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/youtube.svg
    new file mode 100644
    index 00000000000..5f1cab97158
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/youtube.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/brands/zhihu.svg b/htdocs/theme/common/fontawesome-5/svgs/brands/zhihu.svg
    new file mode 100644
    index 00000000000..08b047342c2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/brands/zhihu.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/address-book.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/address-book.svg
    new file mode 100644
    index 00000000000..eebc44902a0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/address-book.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/address-card.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/address-card.svg
    new file mode 100644
    index 00000000000..bddb408bef5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/address-card.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/angry.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/angry.svg
    new file mode 100644
    index 00000000000..5f5af41636a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/angry.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-down.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-down.svg
    new file mode 100644
    index 00000000000..d2013873c0b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-left.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-left.svg
    new file mode 100644
    index 00000000000..3c368b0cd5b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-right.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-right.svg
    new file mode 100644
    index 00000000000..1fc71c4f100
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-up.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-up.svg
    new file mode 100644
    index 00000000000..43b64c3603c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/arrow-alt-circle-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/bell-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/bell-slash.svg
    new file mode 100644
    index 00000000000..3b0e5146597
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/bell-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/bell.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/bell.svg
    new file mode 100644
    index 00000000000..4b0dbe77645
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/bell.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/bookmark.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/bookmark.svg
    new file mode 100644
    index 00000000000..8bd01563f4a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/bookmark.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/building.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/building.svg
    new file mode 100644
    index 00000000000..2cbcb3854c3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/building.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-alt.svg
    new file mode 100644
    index 00000000000..b38aa5e6998
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-check.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-check.svg
    new file mode 100644
    index 00000000000..be85e517074
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-check.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-minus.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-minus.svg
    new file mode 100644
    index 00000000000..3ee933d0b3c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-minus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-plus.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-plus.svg
    new file mode 100644
    index 00000000000..e0963c4a400
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-plus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-times.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-times.svg
    new file mode 100644
    index 00000000000..314d0f87c46
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar-times.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/calendar.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar.svg
    new file mode 100644
    index 00000000000..eef267e3ea8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/calendar.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-down.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-down.svg
    new file mode 100644
    index 00000000000..988617d44d0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-left.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-left.svg
    new file mode 100644
    index 00000000000..5104670f708
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-right.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-right.svg
    new file mode 100644
    index 00000000000..99b1917d64e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-up.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-up.svg
    new file mode 100644
    index 00000000000..6883b6b6146
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/caret-square-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/chart-bar.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/chart-bar.svg
    new file mode 100644
    index 00000000000..afd3e2f6bf4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/chart-bar.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/check-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/check-circle.svg
    new file mode 100644
    index 00000000000..61ba9eb567c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/check-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/check-square.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/check-square.svg
    new file mode 100644
    index 00000000000..b299afe1b7d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/check-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/circle.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/circle.svg
    new file mode 100644
    index 00000000000..cdd8b753f73
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/clipboard.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/clipboard.svg
    new file mode 100644
    index 00000000000..5d7424d3f67
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/clipboard.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M336 64h-80c0-35.29-28.71-64-64-64s-64 28.71-64 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h42v36c0 6.627 5.373 12 12 12h168c6.627 0 12-5.373 12-12v-36h42a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zM192 40c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/clock.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/clock.svg
    new file mode 100644
    index 00000000000..c6013b93728
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/clock.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/clone.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/clone.svg
    new file mode 100644
    index 00000000000..b1fb1221d22
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/clone.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/closed-captioning.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/closed-captioning.svg
    new file mode 100644
    index 00000000000..092245a1189
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/closed-captioning.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/comment-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/comment-alt.svg
    new file mode 100644
    index 00000000000..6707f469abe
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/comment-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/comment-dots.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/comment-dots.svg
    new file mode 100644
    index 00000000000..69e5b6c5a3c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/comment-dots.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/comment.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/comment.svg
    new file mode 100644
    index 00000000000..c6079d64415
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/comment.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/comments.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/comments.svg
    new file mode 100644
    index 00000000000..c402e344382
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/comments.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/compass.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/compass.svg
    new file mode 100644
    index 00000000000..f0f32379856
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/compass.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/copy.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/copy.svg
    new file mode 100644
    index 00000000000..9e32952e94a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/copy.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/copyright.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/copyright.svg
    new file mode 100644
    index 00000000000..2cef55b02b0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/copyright.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/credit-card.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/credit-card.svg
    new file mode 100644
    index 00000000000..eede661831a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/credit-card.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/dizzy.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/dizzy.svg
    new file mode 100644
    index 00000000000..c223dcea5cc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/dizzy.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/dot-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/dot-circle.svg
    new file mode 100644
    index 00000000000..53c60979cb2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/dot-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/edit.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/edit.svg
    new file mode 100644
    index 00000000000..9347017a796
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/edit.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/envelope-open.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/envelope-open.svg
    new file mode 100644
    index 00000000000..7a9af8f001a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/envelope-open.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/envelope.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/envelope.svg
    new file mode 100644
    index 00000000000..78decb72811
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/envelope.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/eye-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/eye-slash.svg
    new file mode 100644
    index 00000000000..ac8906fde49
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/eye-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/eye.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/eye.svg
    new file mode 100644
    index 00000000000..e2fae38e857
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/eye.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/file-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/file-alt.svg
    new file mode 100644
    index 00000000000..f21fb3db8cd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/file-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/file-archive.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/file-archive.svg
    new file mode 100644
    index 00000000000..7e742886361
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/file-archive.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM256 51.882L332.118 128H256V51.882zM336 464H48V48h79.714v16h32V48H208v104c0 13.255 10.745 24 24 24h104v288zM192.27 96h-32V64h32v32zm-32 0v32h-32V96h32zm0 64v32h-32v-32h32zm32 0h-32v-32h32v32zm1.909 105.678A12 12 0 0 0 182.406 256H160.27v-32h-32v32l-19.69 97.106C101.989 385.611 126.834 416 160 416c33.052 0 57.871-30.192 51.476-62.62l-17.297-87.702zM160.27 390.073c-17.918 0-32.444-12.105-32.444-27.036 0-14.932 14.525-27.036 32.444-27.036s32.444 12.105 32.444 27.036c0 14.931-14.526 27.036-32.444 27.036zm32-166.073h-32v-32h32v32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/file-audio.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/file-audio.svg
    new file mode 100644
    index 00000000000..1d80c1a251a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/file-audio.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/file-code.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/file-code.svg
    new file mode 100644
    index 00000000000..dd96752fadc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/file-code.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm101.677-115.115L116.854 320l32.822-28.885a8.793 8.793 0 0 0 .605-12.624l-17.403-18.564c-3.384-3.613-8.964-3.662-12.438-.401L62.78 313.58c-3.703 3.474-3.704 9.367.001 12.84l57.659 54.055a8.738 8.738 0 0 0 6.012 2.381 8.746 8.746 0 0 0 6.427-2.782l17.403-18.563a8.795 8.795 0 0 0-.605-12.626zm84.284-127.85l-24.401-7.084a8.796 8.796 0 0 0-10.905 5.998L144.04 408.061c-1.353 4.66 1.338 9.552 5.998 10.905l24.403 7.084c4.68 1.355 9.557-1.354 10.905-5.998l54.612-188.112c1.354-4.66-1.337-9.552-5.997-10.905zm87.258 92.545l-57.658-54.055c-3.526-3.307-9.099-3.165-12.439.401l-17.403 18.563a8.795 8.795 0 0 0 .605 12.625L267.146 320l-32.822 28.885a8.793 8.793 0 0 0-.605 12.624l17.403 18.564a8.797 8.797 0 0 0 12.439.401h-.001l57.66-54.055c3.703-3.473 3.703-9.366-.001-12.839z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/file-excel.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/file-excel.svg
    new file mode 100644
    index 00000000000..33f88d4cb94
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/file-excel.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/file-image.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/file-image.svg
    new file mode 100644
    index 00000000000..7de88e497b7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/file-image.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/file-pdf.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/file-pdf.svg
    new file mode 100644
    index 00000000000..eba0ccace13
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/file-pdf.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/file-powerpoint.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/file-powerpoint.svg
    new file mode 100644
    index 00000000000..db9d1c16bb6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/file-powerpoint.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/file-video.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/file-video.svg
    new file mode 100644
    index 00000000000..8aea573c81b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/file-video.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/file-word.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/file-word.svg
    new file mode 100644
    index 00000000000..15f3fb661b2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/file-word.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/file.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/file.svg
    new file mode 100644
    index 00000000000..2966890137e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/file.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/flag.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/flag.svg
    new file mode 100644
    index 00000000000..67ef463fb35
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/flag.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/flushed.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/flushed.svg
    new file mode 100644
    index 00000000000..d8acd703424
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/flushed.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/folder-open.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/folder-open.svg
    new file mode 100644
    index 00000000000..23018dc31f4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/folder-open.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M527.943 224H480v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h400a48.001 48.001 0 0 0 40.704-22.56l79.942-128c19.948-31.917-3.038-73.44-40.703-73.44zM54 112h134.118l64 64H426a6 6 0 0 1 6 6v42H152a48 48 0 0 0-41.098 23.202L48 351.449V117.993A5.993 5.993 0 0 1 54 112zm394 288H72l77.234-128H528l-80 128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/folder.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/folder.svg
    new file mode 100644
    index 00000000000..e4e73914c01
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/folder.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/font-awesome-logo-full.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/font-awesome-logo-full.svg
    new file mode 100644
    index 00000000000..6e0e9e6d226
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/font-awesome-logo-full.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3992 512"><path d="M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/frown-open.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/frown-open.svg
    new file mode 100644
    index 00000000000..444e59b8672
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/frown-open.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/frown.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/frown.svg
    new file mode 100644
    index 00000000000..b2b900a1869
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/frown.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/futbol.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/futbol.svg
    new file mode 100644
    index 00000000000..71a8ba6d9c9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/futbol.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/gem.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/gem.svg
    new file mode 100644
    index 00000000000..78178f34db0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/gem.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grimace.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grimace.svg
    new file mode 100644
    index 00000000000..1df9b36e385
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grimace.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-alt.svg
    new file mode 100644
    index 00000000000..e83ff41ae02
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-beam-sweat.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-beam-sweat.svg
    new file mode 100644
    index 00000000000..574d67cb770
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-beam-sweat.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-beam.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-beam.svg
    new file mode 100644
    index 00000000000..8baec9e08d8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-beam.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-hearts.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-hearts.svg
    new file mode 100644
    index 00000000000..01a5de64085
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-hearts.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-squint-tears.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-squint-tears.svg
    new file mode 100644
    index 00000000000..60435198883
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-squint-tears.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-squint.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-squint.svg
    new file mode 100644
    index 00000000000..1b68be14048
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-squint.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-stars.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-stars.svg
    new file mode 100644
    index 00000000000..68c1db1a5b2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-stars.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tears.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tears.svg
    new file mode 100644
    index 00000000000..1b15f093717
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tears.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tongue-squint.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tongue-squint.svg
    new file mode 100644
    index 00000000000..7dae8666458
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tongue-squint.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tongue-wink.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tongue-wink.svg
    new file mode 100644
    index 00000000000..566565d06b7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tongue-wink.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tongue.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tongue.svg
    new file mode 100644
    index 00000000000..22e12e6bfa7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-tongue.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin-wink.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-wink.svg
    new file mode 100644
    index 00000000000..6bb1a5d1e7f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin-wink.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/grin.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/grin.svg
    new file mode 100644
    index 00000000000..99557d19ae9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/grin.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-lizard.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-lizard.svg
    new file mode 100644
    index 00000000000..e20d31664fe
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-lizard.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-paper.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-paper.svg
    new file mode 100644
    index 00000000000..52dc9690f6f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-paper.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-peace.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-peace.svg
    new file mode 100644
    index 00000000000..f12948730de
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-peace.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-down.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-down.svg
    new file mode 100644
    index 00000000000..6e27545f0ba
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-left.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-left.svg
    new file mode 100644
    index 00000000000..9bce24a829b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-right.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-right.svg
    new file mode 100644
    index 00000000000..586c6ec1e9b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-up.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-up.svg
    new file mode 100644
    index 00000000000..eed66b217f3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-point-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-pointer.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-pointer.svg
    new file mode 100644
    index 00000000000..9dceb7ce80a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-pointer.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-rock.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-rock.svg
    new file mode 100644
    index 00000000000..f385978886d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-rock.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-scissors.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-scissors.svg
    new file mode 100644
    index 00000000000..fc92b17c819
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-scissors.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hand-spock.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-spock.svg
    new file mode 100644
    index 00000000000..0df2f3af250
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hand-spock.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/handshake.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/handshake.svg
    new file mode 100644
    index 00000000000..01e119e5cd7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/handshake.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hdd.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hdd.svg
    new file mode 100644
    index 00000000000..83129f5f4ab
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hdd.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/heart.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/heart.svg
    new file mode 100644
    index 00000000000..c6e517c61f5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/heart.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hospital.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hospital.svg
    new file mode 100644
    index 00000000000..cdafeda5189
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hospital.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/hourglass.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/hourglass.svg
    new file mode 100644
    index 00000000000..1098e7e720f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/hourglass.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/id-badge.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/id-badge.svg
    new file mode 100644
    index 00000000000..3b46d61adf5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/id-badge.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/id-card.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/id-card.svg
    new file mode 100644
    index 00000000000..0be7fcd77b7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/id-card.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/image.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/image.svg
    new file mode 100644
    index 00000000000..97f070ec630
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/image.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/images.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/images.svg
    new file mode 100644
    index 00000000000..a0f8e2cf020
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/images.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/keyboard.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/keyboard.svg
    new file mode 100644
    index 00000000000..93e48e2b0a6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/keyboard.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/kiss-beam.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/kiss-beam.svg
    new file mode 100644
    index 00000000000..ab5c9b9dd8c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/kiss-beam.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/kiss-wink-heart.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/kiss-wink-heart.svg
    new file mode 100644
    index 00000000000..1d6816a801e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/kiss-wink-heart.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 504 512"><path d="M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/kiss.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/kiss.svg
    new file mode 100644
    index 00000000000..9b6e203f9d6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/kiss.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/laugh-beam.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/laugh-beam.svg
    new file mode 100644
    index 00000000000..db528ea6a36
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/laugh-beam.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/laugh-squint.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/laugh-squint.svg
    new file mode 100644
    index 00000000000..14813728dbd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/laugh-squint.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/laugh-wink.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/laugh-wink.svg
    new file mode 100644
    index 00000000000..6ae950f6792
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/laugh-wink.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/laugh.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/laugh.svg
    new file mode 100644
    index 00000000000..c633b241831
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/laugh.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/lemon.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/lemon.svg
    new file mode 100644
    index 00000000000..f3a7444aabf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/lemon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/life-ring.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/life-ring.svg
    new file mode 100644
    index 00000000000..01eb1a810ce
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/life-ring.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/lightbulb.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/lightbulb.svg
    new file mode 100644
    index 00000000000..8b30bf7c0c0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/lightbulb.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352 512"><path d="M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/list-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/list-alt.svg
    new file mode 100644
    index 00000000000..e0ebfb6dff6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/list-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/map.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/map.svg
    new file mode 100644
    index 00000000000..644e7910923
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/map.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/meh-blank.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/meh-blank.svg
    new file mode 100644
    index 00000000000..d402471096b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/meh-blank.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/meh-rolling-eyes.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/meh-rolling-eyes.svg
    new file mode 100644
    index 00000000000..b4106c5cfdc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/meh-rolling-eyes.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/meh.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/meh.svg
    new file mode 100644
    index 00000000000..afe8a838299
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/meh.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/minus-square.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/minus-square.svg
    new file mode 100644
    index 00000000000..23c4bd8d744
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/minus-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/money-bill-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/money-bill-alt.svg
    new file mode 100644
    index 00000000000..c9f3caabac0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/money-bill-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/moon.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/moon.svg
    new file mode 100644
    index 00000000000..364d14c5b30
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/moon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/newspaper.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/newspaper.svg
    new file mode 100644
    index 00000000000..f3c307174da
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/newspaper.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/object-group.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/object-group.svg
    new file mode 100644
    index 00000000000..d8a79bd0af3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/object-group.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/object-ungroup.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/object-ungroup.svg
    new file mode 100644
    index 00000000000..160a1e6bfa0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/object-ungroup.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/paper-plane.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/paper-plane.svg
    new file mode 100644
    index 00000000000..4d6eac1c825
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/paper-plane.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/pause-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/pause-circle.svg
    new file mode 100644
    index 00000000000..f6a9c3b8241
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/pause-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/play-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/play-circle.svg
    new file mode 100644
    index 00000000000..b35ec09a54e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/play-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/plus-square.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/plus-square.svg
    new file mode 100644
    index 00000000000..a553c3e8858
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/plus-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/question-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/question-circle.svg
    new file mode 100644
    index 00000000000..945e21368e1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/question-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/registered.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/registered.svg
    new file mode 100644
    index 00000000000..37351f4a3fa
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/registered.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/sad-cry.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/sad-cry.svg
    new file mode 100644
    index 00000000000..ab2b3b4bb83
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/sad-cry.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/sad-tear.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/sad-tear.svg
    new file mode 100644
    index 00000000000..665cd73423a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/sad-tear.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/save.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/save.svg
    new file mode 100644
    index 00000000000..492a3bfa99f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/save.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/share-square.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/share-square.svg
    new file mode 100644
    index 00000000000..e8feb1ff395
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/share-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/smile-beam.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/smile-beam.svg
    new file mode 100644
    index 00000000000..7c5e2b88333
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/smile-beam.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/smile-wink.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/smile-wink.svg
    new file mode 100644
    index 00000000000..a3d41df40d9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/smile-wink.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/smile.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/smile.svg
    new file mode 100644
    index 00000000000..3334e6f284f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/smile.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/snowflake.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/snowflake.svg
    new file mode 100644
    index 00000000000..c13057a55b2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/snowflake.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M438.237 355.927l-66.574-38.54 59.448-10.327c5.846-1.375 10.609-5.183 13.458-10.13 2.48-4.307 3.506-9.478 2.524-14.651-2.11-11.115-12.686-18.039-23.621-15.467l-85.423 31.115L255.914 256l82.136-41.926 85.423 31.115c10.936 2.572 21.512-4.352 23.621-15.467 2.111-11.115-5.046-22.209-15.981-24.781l-59.448-10.327 66.573-38.54c9.54-5.523 12.615-18.092 6.867-28.074-5.748-9.982-18.14-13.596-27.68-8.074l-66.574 38.54 20.805-56.787c3.246-10.782-2.758-22.542-13.413-26.268-10.654-3.725-21.922 1.997-25.168 12.779l-15.838 89.735-72.423 41.926V136l69.585-58.621c7.689-8.21 6.997-20.856-1.548-28.245-8.545-7.391-21.705-6.723-29.394 1.486l-38.644 46.46V20c0-11.046-9.318-20-20.813-20s-20.813 8.954-20.813 20v77.08l-38.644-46.46c-7.689-8.21-20.849-8.876-29.394-1.486-8.544 7.389-9.236 20.035-1.547 28.245L203.187 136v83.853l-72.423-41.926-15.838-89.736c-3.247-10.782-14.515-16.504-25.169-12.779-10.656 3.725-16.659 15.486-13.413 26.268l20.805 56.787-66.573-38.54c-9.54-5.523-21.933-1.908-27.68 8.074s-2.673 22.551 6.867 28.074l66.574 38.54-59.449 10.328C5.953 207.515-1.202 218.609.907 229.724c2.11 11.114 12.686 18.038 23.622 15.466l85.422-31.115L192.086 256l-82.136 41.926-85.423-31.115c-10.936-2.572-21.511 4.352-23.622 15.466-2.109 11.113 5.046 22.209 15.981 24.781l59.449 10.328-66.574 38.54C.223 361.449-2.852 374.018 2.896 384s18.14 13.597 27.68 8.074l66.574-38.54-20.805 56.786c-1.735 5.764-.828 11.805 2.02 16.751 2.48 4.307 6.433 7.784 11.392 9.517 10.655 3.725 21.923-1.997 25.169-12.779l15.838-89.736 72.423-41.926V376l-69.585 58.621c-7.69 8.21-6.997 20.855 1.547 28.245 8.544 7.388 21.705 6.723 29.394-1.487l38.644-46.46V492c0 11.046 9.318 20 20.813 20s20.813-8.954 20.813-20v-77.081l38.644 46.46c4.111 4.389 9.782 6.621 15.478 6.621 4.96 0 9.939-1.694 13.916-5.134 8.545-7.39 9.237-20.035 1.548-28.245L244.813 376v-83.853l72.423 41.926 15.838 89.736c3.246 10.782 14.514 16.504 25.168 12.779 10.653-3.726 16.659-15.487 13.412-26.268l-20.805-56.787 66.574 38.54c9.54 5.523 21.933 1.908 27.68-8.074 5.749-9.981 2.675-22.55-6.866-28.072z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/square.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/square.svg
    new file mode 100644
    index 00000000000..9ad37b10ef7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/star-half.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/star-half.svg
    new file mode 100644
    index 00000000000..fe81dc95e6e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/star-half.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/star.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/star.svg
    new file mode 100644
    index 00000000000..e607043a396
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/star.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/sticky-note.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/sticky-note.svg
    new file mode 100644
    index 00000000000..f58b8d56926
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/sticky-note.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/stop-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/stop-circle.svg
    new file mode 100644
    index 00000000000..db520dc2498
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/stop-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/sun.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/sun.svg
    new file mode 100644
    index 00000000000..c363ce2e4cf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/sun.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M220.116 487.936l-20.213-49.425a3.992 3.992 0 0 0-5.808-1.886l-45.404 28.104c-29.466 18.24-66.295-8.519-58.054-42.179l12.699-51.865a3.993 3.993 0 0 0-3.59-4.941l-53.251-3.951c-34.554-2.562-48.632-45.855-22.174-68.247L65.08 259.05a3.992 3.992 0 0 0 0-6.106l-40.76-34.497c-26.45-22.384-12.39-65.682 22.174-68.246l53.251-3.951a3.993 3.993 0 0 0 3.59-4.941L90.637 89.443c-8.239-33.656 28.581-60.42 58.054-42.179l45.403 28.104a3.993 3.993 0 0 0 5.808-1.887l20.213-49.425c13.116-32.071 58.638-32.081 71.758 0l20.212 49.424a3.994 3.994 0 0 0 5.809 1.887l45.403-28.104c29.464-18.236 66.297 8.513 58.054 42.179l-12.699 51.865a3.995 3.995 0 0 0 3.59 4.941l53.251 3.951c34.553 2.563 48.633 45.854 22.175 68.246l-40.76 34.497a3.993 3.993 0 0 0 0 6.107l40.76 34.496c26.511 22.441 12.322 65.689-22.175 68.247l-53.251 3.951a3.993 3.993 0 0 0-3.589 4.942l12.698 51.864c8.241 33.658-28.583 60.421-58.054 42.18l-45.403-28.104a3.994 3.994 0 0 0-5.809 1.887l-20.212 49.424c-13.159 32.178-58.675 31.993-71.757 0zm16.814-64.568l19.064 46.616 19.064-46.615c10.308-25.2 40.778-35.066 63.892-20.759l42.822 26.507-11.976-48.919c-6.475-26.444 12.38-52.339 39.487-54.349l50.226-3.726-38.444-32.536c-20.782-17.591-20.747-49.621.001-67.18l38.442-32.536-50.225-3.727c-27.151-2.015-45.95-27.948-39.488-54.349l11.978-48.919-42.823 26.507c-23.151 14.327-53.603 4.4-63.892-20.76l-19.064-46.615-19.064 46.617c-10.305 25.198-40.778 35.066-63.891 20.76l-42.823-26.508 11.977 48.918c6.474 26.446-12.381 52.338-39.488 54.35l-50.224 3.726 38.443 32.537c20.782 17.588 20.747 49.619 0 67.178L52.48 322.123l50.226 3.726c27.151 2.014 45.95 27.947 39.487 54.349l-11.977 48.919 42.823-26.507c23.188-14.355 53.622-4.352 63.891 20.758zM256 384c-70.58 0-128-57.421-128-128 0-70.58 57.42-128 128-128 70.579 0 128 57.42 128 128 0 70.579-57.421 128-128 128zm0-208c-44.112 0-80 35.888-80 80s35.888 80 80 80 80-35.888 80-80-35.888-80-80-80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/surprise.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/surprise.svg
    new file mode 100644
    index 00000000000..c83d20638e1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/surprise.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/thumbs-down.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/thumbs-down.svg
    new file mode 100644
    index 00000000000..8c95bba5b95
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/thumbs-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/thumbs-up.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/thumbs-up.svg
    new file mode 100644
    index 00000000000..f8e6811d260
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/thumbs-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/times-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/times-circle.svg
    new file mode 100644
    index 00000000000..ae0593d9363
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/times-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/tired.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/tired.svg
    new file mode 100644
    index 00000000000..2d0671c4972
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/tired.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/trash-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/trash-alt.svg
    new file mode 100644
    index 00000000000..e589563cdb3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/trash-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M192 188v216c0 6.627-5.373 12-12 12h-24c-6.627 0-12-5.373-12-12V188c0-6.627 5.373-12 12-12h24c6.627 0 12 5.373 12 12zm100-12h-24c-6.627 0-12 5.373-12 12v216c0 6.627 5.373 12 12 12h24c6.627 0 12-5.373 12-12V188c0-6.627-5.373-12-12-12zm132-96c13.255 0 24 10.745 24 24v12c0 6.627-5.373 12-12 12h-20v336c0 26.51-21.49 48-48 48H80c-26.51 0-48-21.49-48-48V128H12c-6.627 0-12-5.373-12-12v-12c0-13.255 10.745-24 24-24h74.411l34.018-56.696A48 48 0 0 1 173.589 0h100.823a48 48 0 0 1 41.16 23.304L349.589 80H424zm-269.611 0h139.223L276.16 50.913A6 6 0 0 0 271.015 48h-94.028a6 6 0 0 0-5.145 2.913L154.389 80zM368 128H80v330a6 6 0 0 0 6 6h276a6 6 0 0 0 6-6V128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/user-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/user-circle.svg
    new file mode 100644
    index 00000000000..0c5cc6f8516
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/user-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/user.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/user.svg
    new file mode 100644
    index 00000000000..cef333a4a70
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/user.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/window-close.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/window-close.svg
    new file mode 100644
    index 00000000000..a0255c81e00
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/window-close.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/window-maximize.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/window-maximize.svg
    new file mode 100644
    index 00000000000..a17c8afd79a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/window-maximize.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/window-minimize.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/window-minimize.svg
    new file mode 100644
    index 00000000000..7989e5739a1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/window-minimize.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/regular/window-restore.svg b/htdocs/theme/common/fontawesome-5/svgs/regular/window-restore.svg
    new file mode 100644
    index 00000000000..ca9319896b5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/regular/window-restore.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ad.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ad.svg
    new file mode 100644
    index 00000000000..3094d0ea95c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ad.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/address-book.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/address-book.svg
    new file mode 100644
    index 00000000000..739e09bfb90
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/address-book.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/address-card.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/address-card.svg
    new file mode 100644
    index 00000000000..1108582ee53
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/address-card.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/adjust.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/adjust.svg
    new file mode 100644
    index 00000000000..7507ea00a8f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/adjust.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/air-freshener.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/air-freshener.svg
    new file mode 100644
    index 00000000000..7a6f0dbd2ab
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/air-freshener.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/align-center.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/align-center.svg
    new file mode 100644
    index 00000000000..cbb14077cba
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/align-center.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 44v40c0 8.837-7.163 16-16 16H112c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h224c8.837 0 16 7.163 16 16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm320-200H112c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/align-justify.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/align-justify.svg
    new file mode 100644
    index 00000000000..a56ff6124d6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/align-justify.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm16 144h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0-128h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/align-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/align-left.svg
    new file mode 100644
    index 00000000000..be31bc3e8a9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/align-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M288 44v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16zM0 172v40c0 8.837 7.163 16 16 16h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16zm16 312h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm256-200H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/align-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/align-right.svg
    new file mode 100644
    index 00000000000..d9f93386e51
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/align-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M160 84V44c0-8.837 7.163-16 16-16h256c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H176c-8.837 0-16-7.163-16-16zM16 228h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 256h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/allergies.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/allergies.svg
    new file mode 100644
    index 00000000000..d41f071b67f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/allergies.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ambulance.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ambulance.svg
    new file mode 100644
    index 00000000000..2038f60a6ea
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ambulance.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/american-sign-language-interpreting.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/american-sign-language-interpreting.svg
    new file mode 100644
    index 00000000000..9fceb1664c6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/american-sign-language-interpreting.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/anchor.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/anchor.svg
    new file mode 100644
    index 00000000000..832cb1a2e12
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/anchor.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-down.svg
    new file mode 100644
    index 00000000000..586393ea328
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-left.svg
    new file mode 100644
    index 00000000000..9ebbe390539
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-right.svg
    new file mode 100644
    index 00000000000..aeaba31a64b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-up.svg
    new file mode 100644
    index 00000000000..d8630826326
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-double-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/angle-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-down.svg
    new file mode 100644
    index 00000000000..9f746048884
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/angle-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-left.svg
    new file mode 100644
    index 00000000000..bf6636201cf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/angle-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-right.svg
    new file mode 100644
    index 00000000000..230292d2ff1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/angle-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-up.svg
    new file mode 100644
    index 00000000000..56fa063fcf6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/angle-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/angry.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/angry.svg
    new file mode 100644
    index 00000000000..b38544e3274
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/angry.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ankh.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ankh.svg
    new file mode 100644
    index 00000000000..e38f81909e0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ankh.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/apple-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/apple-alt.svg
    new file mode 100644
    index 00000000000..9c55f96acc6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/apple-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/archive.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/archive.svg
    new file mode 100644
    index 00000000000..1ec380bcb24
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/archive.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/archway.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/archway.svg
    new file mode 100644
    index 00000000000..b5a71e8661b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/archway.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-down.svg
    new file mode 100644
    index 00000000000..a53b1772193
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-left.svg
    new file mode 100644
    index 00000000000..a33b90999a0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-right.svg
    new file mode 100644
    index 00000000000..4745eec5a70
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-up.svg
    new file mode 100644
    index 00000000000..4d0a70861cd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-alt-circle-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-down.svg
    new file mode 100644
    index 00000000000..18f1d388e18
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-left.svg
    new file mode 100644
    index 00000000000..7ddac96c6b8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-right.svg
    new file mode 100644
    index 00000000000..e8fbd6cac04
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-up.svg
    new file mode 100644
    index 00000000000..010da0bcd0c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-circle-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-down.svg
    new file mode 100644
    index 00000000000..6e8052fd258
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-left.svg
    new file mode 100644
    index 00000000000..d468f0c3795
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-right.svg
    new file mode 100644
    index 00000000000..b094cad2054
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-up.svg
    new file mode 100644
    index 00000000000..3c19d819987
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrow-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrows-alt-h.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrows-alt-h.svg
    new file mode 100644
    index 00000000000..34d536ce643
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrows-alt-h.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrows-alt-v.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrows-alt-v.svg
    new file mode 100644
    index 00000000000..b85872e3880
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrows-alt-v.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/arrows-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/arrows-alt.svg
    new file mode 100644
    index 00000000000..05dc77a32e9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/arrows-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/assistive-listening-systems.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/assistive-listening-systems.svg
    new file mode 100644
    index 00000000000..a2e807888b0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/assistive-listening-systems.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/asterisk.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/asterisk.svg
    new file mode 100644
    index 00000000000..1ad9cc7f5b9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/asterisk.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/at.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/at.svg
    new file mode 100644
    index 00000000000..be1e4e55b96
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/at.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/atlas.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/atlas.svg
    new file mode 100644
    index 00000000000..5d348a907f2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/atlas.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/atom.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/atom.svg
    new file mode 100644
    index 00000000000..732cf8ee934
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/atom.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/audio-description.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/audio-description.svg
    new file mode 100644
    index 00000000000..f66654198ed
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/audio-description.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/award.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/award.svg
    new file mode 100644
    index 00000000000..3c41ffb100f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/award.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/backspace.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/backspace.svg
    new file mode 100644
    index 00000000000..cc64a087784
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/backspace.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/backward.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/backward.svg
    new file mode 100644
    index 00000000000..23be4c1fc1a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/backward.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/balance-scale.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/balance-scale.svg
    new file mode 100644
    index 00000000000..faf5f6d454c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/balance-scale.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ban.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ban.svg
    new file mode 100644
    index 00000000000..d31b0e146e7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ban.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/band-aid.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/band-aid.svg
    new file mode 100644
    index 00000000000..449f89c3c25
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/band-aid.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/barcode.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/barcode.svg
    new file mode 100644
    index 00000000000..e720fa96041
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/barcode.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bars.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bars.svg
    new file mode 100644
    index 00000000000..4d422d5c0b0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bars.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/baseball-ball.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/baseball-ball.svg
    new file mode 100644
    index 00000000000..e62b3d795cc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/baseball-ball.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/basketball-ball.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/basketball-ball.svg
    new file mode 100644
    index 00000000000..4cbe9a61544
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/basketball-ball.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bath.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bath.svg
    new file mode 100644
    index 00000000000..09f7e30119b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bath.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/battery-empty.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/battery-empty.svg
    new file mode 100644
    index 00000000000..2ba9ee6df44
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/battery-empty.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/battery-full.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/battery-full.svg
    new file mode 100644
    index 00000000000..f7e71955011
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/battery-full.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/battery-half.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/battery-half.svg
    new file mode 100644
    index 00000000000..8a696940d62
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/battery-half.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/battery-quarter.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/battery-quarter.svg
    new file mode 100644
    index 00000000000..bbaa9858f8c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/battery-quarter.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/battery-three-quarters.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/battery-three-quarters.svg
    new file mode 100644
    index 00000000000..dcd1492530e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/battery-three-quarters.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bed.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bed.svg
    new file mode 100644
    index 00000000000..9c10d753418
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bed.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/beer.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/beer.svg
    new file mode 100644
    index 00000000000..67aa38c8ebf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/beer.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bell-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bell-slash.svg
    new file mode 100644
    index 00000000000..781c8a0714e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bell-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bell.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bell.svg
    new file mode 100644
    index 00000000000..b588fd6510e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bell.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bezier-curve.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bezier-curve.svg
    new file mode 100644
    index 00000000000..e41ce749c12
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bezier-curve.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bible.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bible.svg
    new file mode 100644
    index 00000000000..d5ac8ca3ac5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bible.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bicycle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bicycle.svg
    new file mode 100644
    index 00000000000..29520c9ec43
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bicycle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/binoculars.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/binoculars.svg
    new file mode 100644
    index 00000000000..627e7e0dffa
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/binoculars.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/birthday-cake.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/birthday-cake.svg
    new file mode 100644
    index 00000000000..3f8c6270937
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/birthday-cake.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/blender-phone.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/blender-phone.svg
    new file mode 100644
    index 00000000000..412beeabf6e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/blender-phone.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/blender.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/blender.svg
    new file mode 100644
    index 00000000000..a823d39909f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/blender.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/blind.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/blind.svg
    new file mode 100644
    index 00000000000..6d13c89041d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/blind.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bold.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bold.svg
    new file mode 100644
    index 00000000000..fb2235f3317
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bold.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M304.793 243.891c33.639-18.537 53.657-54.16 53.657-95.693 0-48.236-26.25-87.626-68.626-104.179C265.138 34.01 240.849 32 209.661 32H24c-8.837 0-16 7.163-16 16v33.049c0 8.837 7.163 16 16 16h33.113v318.53H24c-8.837 0-16 7.163-16 16V464c0 8.837 7.163 16 16 16h195.69c24.203 0 44.834-1.289 66.866-7.584C337.52 457.193 376 410.647 376 350.014c0-52.168-26.573-91.684-71.207-106.123zM142.217 100.809h67.444c16.294 0 27.536 2.019 37.525 6.717 15.828 8.479 24.906 26.502 24.906 49.446 0 35.029-20.32 56.79-53.029 56.79h-76.846V100.809zm112.642 305.475c-10.14 4.056-22.677 4.907-31.409 4.907h-81.233V281.943h84.367c39.645 0 63.057 25.38 63.057 63.057.001 28.425-13.66 52.483-34.782 61.284z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bolt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bolt.svg
    new file mode 100644
    index 00000000000..4f27ff37ec4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bolt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M295.973 160H180.572L215.19 30.184C219.25 14.956 207.756 0 192 0H56C43.971 0 33.8 8.905 32.211 20.828l-31.996 240C-1.704 275.217 9.504 288 24.004 288h118.701L96.646 482.466C93.05 497.649 104.659 512 119.992 512c8.35 0 16.376-4.374 20.778-11.978l175.973-303.997c9.244-15.967-2.288-36.025-20.77-36.025z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bomb.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bomb.svg
    new file mode 100644
    index 00000000000..4b816f921eb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bomb.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bone.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bone.svg
    new file mode 100644
    index 00000000000..c3b5d96cdad
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bone.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bong.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bong.svg
    new file mode 100644
    index 00000000000..67f739d9df5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bong.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/book-dead.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/book-dead.svg
    new file mode 100644
    index 00000000000..197e08a40f4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/book-dead.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M272 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.18 0 80 28.65 80 64 0 20.87-12.68 39.23-32 50.91V184c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-13.09c-19.32-11.68-32-30.04-32-50.91 0-35.35 35.82-64 80-64zM129.05 233.85a7.996 7.996 0 0 1-4.2-10.5l6.29-14.7a7.995 7.995 0 0 1 10.51-4.2L240 246.6l98.35-42.15c4.06-1.74 8.77.14 10.51 4.2l6.29 14.7a7.996 7.996 0 0 1-4.2 10.5L280.6 264l70.34 30.15a7.996 7.996 0 0 1 4.2 10.5l-6.29 14.7a8.008 8.008 0 0 1-10.51 4.21L240 281.4l-98.35 42.15a8.003 8.003 0 0 1-10.51-4.21l-6.29-14.7a7.996 7.996 0 0 1 4.2-10.5L199.4 264l-70.35-30.15zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64zM208 136c8.84 0 16-7.16 16-16s-7.16-16-16-16-16 7.16-16 16 7.16 16 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/book-open.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/book-open.svg
    new file mode 100644
    index 00000000000..f68dd1c6530
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/book-open.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/book-reader.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/book-reader.svg
    new file mode 100644
    index 00000000000..4b1e2abc197
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/book-reader.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/book.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/book.svg
    new file mode 100644
    index 00000000000..608aea15e93
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/book.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bookmark.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bookmark.svg
    new file mode 100644
    index 00000000000..8c3ac4f6d94
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bookmark.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bowling-ball.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bowling-ball.svg
    new file mode 100644
    index 00000000000..01f2b63a762
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bowling-ball.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/box-open.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/box-open.svg
    new file mode 100644
    index 00000000000..b211cb43934
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/box-open.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9zm585.1 102.8L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/box.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/box.svg
    new file mode 100644
    index 00000000000..4a1dc2c16e6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/box.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/boxes.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/boxes.svg
    new file mode 100644
    index 00000000000..8a029998d6c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/boxes.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/braille.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/braille.svg
    new file mode 100644
    index 00000000000..80078618dc0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/braille.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/brain.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/brain.svg
    new file mode 100644
    index 00000000000..f1f24d07ff7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/brain.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M208 0c-29.87 0-54.74 20.55-61.8 48.22-.75-.02-1.45-.22-2.2-.22-35.34 0-64 28.65-64 64 0 4.84.64 9.51 1.66 14.04C52.54 138 32 166.57 32 200c0 12.58 3.16 24.32 8.34 34.91C16.34 248.72 0 274.33 0 304c0 33.34 20.42 61.88 49.42 73.89-.9 4.57-1.42 9.28-1.42 14.11 0 39.76 32.23 72 72 72 4.12 0 8.1-.55 12.03-1.21C141.61 491.31 168.25 512 200 512c39.77 0 72-32.24 72-72V205.45c-10.91 8.98-23.98 15.45-38.36 18.39-4.97 1.02-9.64-2.82-9.64-7.89v-16.18c0-3.57 2.35-6.78 5.8-7.66 24.2-6.16 42.2-27.95 42.2-54.04V64c0-35.35-28.66-64-64-64zm368 304c0-29.67-16.34-55.28-40.34-69.09 5.17-10.59 8.34-22.33 8.34-34.91 0-33.43-20.54-62-49.66-73.96 1.02-4.53 1.66-9.2 1.66-14.04 0-35.35-28.66-64-64-64-.75 0-1.45.2-2.2.22C422.74 20.55 397.87 0 368 0c-35.34 0-64 28.65-64 64v74.07c0 26.09 17.99 47.88 42.2 54.04 3.46.88 5.8 4.09 5.8 7.66v16.18c0 5.07-4.68 8.91-9.64 7.89-14.38-2.94-27.44-9.41-38.36-18.39V440c0 39.76 32.23 72 72 72 31.75 0 58.39-20.69 67.97-49.21 3.93.67 7.91 1.21 12.03 1.21 39.77 0 72-32.24 72-72 0-4.83-.52-9.54-1.42-14.11 29-12.01 49.42-40.55 49.42-73.89z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/briefcase-medical.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/briefcase-medical.svg
    new file mode 100644
    index 00000000000..9c7c9c21203
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/briefcase-medical.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/briefcase.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/briefcase.svg
    new file mode 100644
    index 00000000000..e8f667d32bf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/briefcase.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/broadcast-tower.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/broadcast-tower.svg
    new file mode 100644
    index 00000000000..7960bded284
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/broadcast-tower.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/broom.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/broom.svg
    new file mode 100644
    index 00000000000..d82fc5dec8d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/broom.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/brush.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/brush.svg
    new file mode 100644
    index 00000000000..f3193c96d5d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/brush.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bug.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bug.svg
    new file mode 100644
    index 00000000000..119228fdf04
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bug.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/building.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/building.svg
    new file mode 100644
    index 00000000000..0ec4f0d9459
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/building.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bullhorn.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bullhorn.svg
    new file mode 100644
    index 00000000000..9345ecfbc85
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bullhorn.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bullseye.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bullseye.svg
    new file mode 100644
    index 00000000000..59317aa818b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bullseye.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/burn.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/burn.svg
    new file mode 100644
    index 00000000000..c2f903bb35e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/burn.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bus-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bus-alt.svg
    new file mode 100644
    index 00000000000..8df4b1de36b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bus-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/bus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/bus.svg
    new file mode 100644
    index 00000000000..39ca8425efd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/bus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/business-time.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/business-time.svg
    new file mode 100644
    index 00000000000..0cc7f37e68b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/business-time.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/calculator.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/calculator.svg
    new file mode 100644
    index 00000000000..7ad3d4713aa
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/calculator.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-alt.svg
    new file mode 100644
    index 00000000000..a2195878a2b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm116 204c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm128 128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40zm0-128c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-check.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-check.svg
    new file mode 100644
    index 00000000000..37867b7243a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-check.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-minus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-minus.svg
    new file mode 100644
    index 00000000000..039d803fa76
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-minus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-plus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-plus.svg
    new file mode 100644
    index 00000000000..155f379198b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-plus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-times.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-times.svg
    new file mode 100644
    index 00000000000..fe3689fc6ee
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar-times.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/calendar.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar.svg
    new file mode 100644
    index 00000000000..43b53ad39e3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/calendar.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/camera-retro.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/camera-retro.svg
    new file mode 100644
    index 00000000000..ec04b2517c6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/camera-retro.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/camera.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/camera.svg
    new file mode 100644
    index 00000000000..2ee9639e558
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/camera.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/campground.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/campground.svg
    new file mode 100644
    index 00000000000..b19348a882b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/campground.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cannabis.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cannabis.svg
    new file mode 100644
    index 00000000000..2f0be6f03ed
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cannabis.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/capsules.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/capsules.svg
    new file mode 100644
    index 00000000000..14d05c5a851
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/capsules.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/car-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/car-alt.svg
    new file mode 100644
    index 00000000000..b47a9c4663b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/car-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><path d="M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/car-battery.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/car-battery.svg
    new file mode 100644
    index 00000000000..8b09b4ef8f7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/car-battery.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/car-crash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/car-crash.svg
    new file mode 100644
    index 00000000000..5f92dc21334
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/car-crash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/car-side.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/car-side.svg
    new file mode 100644
    index 00000000000..b1d5ac95363
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/car-side.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/car.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/car.svg
    new file mode 100644
    index 00000000000..eb2a2b5be88
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/car.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/caret-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-down.svg
    new file mode 100644
    index 00000000000..00a5bbe1f8f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/caret-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-left.svg
    new file mode 100644
    index 00000000000..7070fed4007
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><path d="M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/caret-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-right.svg
    new file mode 100644
    index 00000000000..4e6d6bacd0f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><path d="M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-down.svg
    new file mode 100644
    index 00000000000..c8c7e8612a3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-left.svg
    new file mode 100644
    index 00000000000..8b83e8503c4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-right.svg
    new file mode 100644
    index 00000000000..87c426dba56
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-up.svg
    new file mode 100644
    index 00000000000..0205281c1ec
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-square-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/caret-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-up.svg
    new file mode 100644
    index 00000000000..3ab34248f40
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/caret-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cart-arrow-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cart-arrow-down.svg
    new file mode 100644
    index 00000000000..da396fde1b6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cart-arrow-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cart-plus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cart-plus.svg
    new file mode 100644
    index 00000000000..109a0a6b36d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cart-plus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cat.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cat.svg
    new file mode 100644
    index 00000000000..784fe8c4f05
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cat.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/certificate.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/certificate.svg
    new file mode 100644
    index 00000000000..a064c54e6d2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/certificate.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chair.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chair.svg
    new file mode 100644
    index 00000000000..9e4bd3ab594
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chair.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M446.33 341.88l-10.67-32A31.996 31.996 0 0 0 405.3 288H42.69c-13.77 0-26 8.81-30.36 21.88l-10.67 32C-5.24 362.6 10.18 384 32.03 384H32v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h256v112c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-.03c21.85 0 37.27-21.4 30.36-42.12zM112 128c0-29.48 16.2-54.99 40-68.87V256h48V48h48v208h48V59.13c23.8 13.88 40 39.39 40 68.87v128h48V128C384 57.31 326.69 0 256 0h-64C121.31 0 64 57.31 64 128v128h48V128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chalkboard-teacher.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chalkboard-teacher.svg
    new file mode 100644
    index 00000000000..379c5f49ded
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chalkboard-teacher.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chalkboard.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chalkboard.svg
    new file mode 100644
    index 00000000000..f406b12301a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chalkboard.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/charging-station.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/charging-station.svg
    new file mode 100644
    index 00000000000..888a4bbd5ba
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/charging-station.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chart-area.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chart-area.svg
    new file mode 100644
    index 00000000000..4bdc860e985
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chart-area.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chart-bar.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chart-bar.svg
    new file mode 100644
    index 00000000000..ac1ad654a54
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chart-bar.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chart-line.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chart-line.svg
    new file mode 100644
    index 00000000000..5068306bd1b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chart-line.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chart-pie.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chart-pie.svg
    new file mode 100644
    index 00000000000..046fc2bfe5c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chart-pie.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 544 512"><path d="M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/check-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/check-circle.svg
    new file mode 100644
    index 00000000000..58f821fe293
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/check-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/check-double.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/check-double.svg
    new file mode 100644
    index 00000000000..deecc329c7a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/check-double.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504.5 171.95l-36.2-36.41c-10-10.05-26.21-10.05-36.2 0L192 377.02 79.9 264.28c-10-10.06-26.21-10.06-36.2 0L7.5 300.69c-10 10.05-10 26.36 0 36.41l166.4 167.36c10 10.06 26.21 10.06 36.2 0l294.4-296.09c10-10.06 10-26.36 0-36.42zM166.57 282.71c6.84 7.02 18.18 7.02 25.21.18L403.85 72.62c7.02-6.84 7.02-18.18.18-25.21L362.08 5.29c-6.84-7.02-18.18-7.02-25.21-.18L179.71 161.19l-68.23-68.77c-6.84-7.02-18.18-7.02-25.2-.18l-42.13 41.77c-7.02 6.84-7.02 18.18-.18 25.2l122.6 123.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/check-square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/check-square.svg
    new file mode 100644
    index 00000000000..16172ae0f8d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/check-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/check.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/check.svg
    new file mode 100644
    index 00000000000..db29f873921
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/check.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chess-bishop.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-bishop.svg
    new file mode 100644
    index 00000000000..50e553f7a52
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-bishop.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M123.158 77.881C107.369 72.53 96 57.597 96 40c0-22.091 17.909-40 40-40h47.796c22.091 0 40 17.909 40 40 0 17.541-11.295 32.434-27.005 37.829 23.993 16.657 48.577 46.839 68.703 82.05L144.929 280.443a6 6 0 0 0 0 8.485l14.142 14.142a6 6 0 0 0 8.485 0L280.9 189.726c17.758 38.297 29.371 79.443 29.371 114.273 0 53.786-22.897 75.788-58.446 86.033V448H68.174v-57.97C32.631 379.784 9.739 357.781 9.739 304c0-78.029 58.281-187.766 113.419-226.119zM320 500v-24c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chess-board.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-board.svg
    new file mode 100644
    index 00000000000..eeddf90deed
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-board.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 256v64h-64v-64h64zm0-256h-64v64h64V0zm0 256h64v-64h-64v64zM384 0h-64v64h64V0zm0 512h64v-64h-64v64zm128-64v-64h-64v64h64zm-384 64h64v-64h-64v64zm0-512H64v64h64V0zm384 192v-64h-64v64h64zm0 128v-64h-64v64h64zM0 512h64v-64H0v64zM0 64v64h64V64H0zm0 128v64h64v-64H0zm0 128v64h64v-64H0zm256 192h64v-64h-64v64zm-64-128v64h64v-64h-64zm64-192v-64h-64v64h64zM64 384v64h64v-64H64zm64-128H64v64h64v-64zm256 128h64v-64h-64v64zM512 0h-64v64h64V0zM384 256h64v-64h-64v64zm0-192v64h64V64h-64zm-64 320v64h64v-64h-64zm-192-64v64h64v-64h-64zm128 0v64h64v-64h-64zm-64-128h-64v64h64v-64zm-64-64H64v64h64v-64zm192 192h64v-64h-64v64zM192 128V64h-64v64h64zm128 0V64h-64v64h64zm0 64h64v-64h-64v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chess-king.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-king.svg
    new file mode 100644
    index 00000000000..d1f48d38d92
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-king.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M416 476v24c0 6.627-5.373 12-12 12H44c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12zm-8.033-324H248v-48h50a6 6 0 0 0 6-6V62a6 6 0 0 0-6-6h-50V6a6 6 0 0 0-6-6h-36a6 6 0 0 0-6 6v50h-50a6 6 0 0 0-6 6v36a6 6 0 0 0 6 6h50v48H40.033c-27.574 0-46.879 27.244-37.738 53.259L87.582 448h272.836l85.287-242.741C454.846 179.244 435.541 152 407.967 152z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chess-knight.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-knight.svg
    new file mode 100644
    index 00000000000..60f5a58560b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-knight.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M352 224v224H32v-46.557c0-30.302 17.12-58.003 44.223-71.554l57.243-28.622A48 48 0 0 0 160 258.334V208l-22.127 11.063a23.996 23.996 0 0 0-12.55 15.645l-11.835 47.338a12 12 0 0 1-7.185 8.231l-29.601 11.84a11.998 11.998 0 0 1-9.33-.176L7.126 275.167A12 12 0 0 1 0 264.201v-158.26c0-6.365 2.529-12.47 7.03-16.971L16 80 1.789 51.578A16.937 16.937 0 0 1 0 44c0-6.627 5.373-12 12-12h148c106.039 0 192 85.961 192 192zm20 240H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12zM52 128c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chess-pawn.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-pawn.svg
    new file mode 100644
    index 00000000000..1063e48e1c8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-pawn.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M264 448H56s60-42.743 60-176H84c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h40.209C95.721 210.56 76 181.588 76 148c0-46.392 37.608-84 84-84s84 37.608 84 84c0 33.588-19.721 62.56-48.209 76H236c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12h-32c0 133.257 60 176 60 176zm28 16H28c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h264c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chess-queen.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-queen.svg
    new file mode 100644
    index 00000000000..cd6ea9fe432
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-queen.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M436 512H76c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12zM255.579 0c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zm204.568 154.634c-5.768-3.045-12.916-.932-16.082 4.77-8.616 15.516-22.747 37.801-44.065 37.801-28.714 0-30.625-19.804-31.686-57.542-.183-6.492-5.501-11.664-11.995-11.664h-41.006c-5.175 0-9.754 3.328-11.388 8.238-8.89 26.709-26.073 40.992-47.925 40.992s-39.034-14.283-47.925-40.992c-1.634-4.91-6.213-8.238-11.388-8.238h-41.005c-6.495 0-11.813 5.174-11.995 11.667-1.052 37.642-2.934 57.539-31.688 57.539-20.691 0-33.817-20.224-44.425-38.025-3.266-5.48-10.258-7.431-15.899-4.453l-39.179 20.679a12 12 0 0 0-5.51 15.145L112 448h288l105.014-257.448a12 12 0 0 0-5.51-15.145l-39.357-20.773z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chess-rook.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-rook.svg
    new file mode 100644
    index 00000000000..008cda16438
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chess-rook.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M81.241 215.027C80.957 258.92 77.411 348.076 48 448h287.982c-29.4-99.604-32.936-188.912-33.221-232.975l45.418-42.312a11.998 11.998 0 0 0 3.82-8.78V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v44h-48V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v44H96V44c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v119.932c0 3.33 1.384 6.51 3.82 8.78l45.421 42.315zM160 256c0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32v64.004h-64V256zm224 220v24c0 6.627-5.373 12-12 12H12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chess.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chess.svg
    new file mode 100644
    index 00000000000..84a221fe63c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chess.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M199.821 217.633a6 6 0 0 1 6 6l-.001 20.766a6 6 0 0 1-6 6h-25.805c0 31.715-2.153 96.201 17.398 153.229H64.597C84.54 345.452 82.02 279.245 82.02 250.399H56.183a6 6 0 0 1-6-6l.002-20.766a6 6 0 0 1 6-6h143.636zM41.554 115.088l34.58 95.071h103.734l34.572-95.072c2.846-7.826-2.95-16.101-11.278-16.101H152v-30.22h21.57a6 6 0 0 0 6-6V40.383a6 6 0 0 0-6-6h-28.367V6a6 6 0 0 0-6-6H116.82a6 6 0 0 0-6 6v28.383H82.421a6 6 0 0 0-6 6v22.383a6 6 0 0 0 6 6H104v30.219H52.831c-8.328.001-14.124 8.276-11.277 16.103zM222.678 445.17v-28.067a6 6 0 0 0-6-6H39.322a6 6 0 0 0-6 6v28.067l-22.148 14.164a6 6 0 0 0-2.767 5.055V506a6 6 0 0 0 6 6h227.187a6 6 0 0 0 6-6v-41.612a6 6 0 0 0-2.767-5.055l-22.149-14.163zm90.578-144.225l24.88 16.963c.09 18.124-.167 63.904-11.905 114.522h147.526c-11.713-50.475-11.969-96.324-11.882-114.537l24.859-16.949a3.856 3.856 0 0 0 1.684-3.187v-69.901a3.857 3.857 0 0 0-3.857-3.857h-27.655a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.858-3.857h-52.918a3.857 3.857 0 0 0-3.857 3.857v31.514h-22.737v-31.514a3.857 3.857 0 0 0-3.857-3.857H315.43a3.857 3.857 0 0 0-3.857 3.857v69.901a3.855 3.855 0 0 0 1.683 3.188zm71.585 51.906c0-8.372 6.787-15.158 15.159-15.158s15.158 6.787 15.158 15.158v30.318h-30.317v-30.318zM504.62 470.059l-13.664-10.639v-15.552a3.857 3.857 0 0 0-3.857-3.857H312.915a3.857 3.857 0 0 0-3.857 3.857v15.552l-13.677 10.639a3.857 3.857 0 0 0-1.488 3.044v35.039a3.857 3.857 0 0 0 3.857 3.857h204.5a3.857 3.857 0 0 0 3.857-3.857v-35.04a3.859 3.859 0 0 0-1.487-3.043z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-down.svg
    new file mode 100644
    index 00000000000..c4e79bb8ef8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-left.svg
    new file mode 100644
    index 00000000000..eb79c8fbad8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-right.svg
    new file mode 100644
    index 00000000000..9c180e38278
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-up.svg
    new file mode 100644
    index 00000000000..273a03492b1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-circle-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-down.svg
    new file mode 100644
    index 00000000000..97f1207f1d8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-left.svg
    new file mode 100644
    index 00000000000..24acfe5d14c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-right.svg
    new file mode 100644
    index 00000000000..e596eaed68a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-up.svg
    new file mode 100644
    index 00000000000..fdabfab7198
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/chevron-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/child.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/child.svg
    new file mode 100644
    index 00000000000..b97d73c9231
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/child.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/church.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/church.svg
    new file mode 100644
    index 00000000000..7a2fe93f896
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/church.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/circle-notch.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/circle-notch.svg
    new file mode 100644
    index 00000000000..25a2941fe99
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/circle-notch.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/circle.svg
    new file mode 100644
    index 00000000000..3681b51fce4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/city.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/city.svg
    new file mode 100644
    index 00000000000..e66a8f86d7e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/city.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/clipboard-check.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/clipboard-check.svg
    new file mode 100644
    index 00000000000..5d9c40712e6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/clipboard-check.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/clipboard-list.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/clipboard-list.svg
    new file mode 100644
    index 00000000000..b7c746283ca
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/clipboard-list.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/clipboard.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/clipboard.svg
    new file mode 100644
    index 00000000000..c4913205e01
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/clipboard.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/clock.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/clock.svg
    new file mode 100644
    index 00000000000..f5dc2bdc8bf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/clock.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/clone.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/clone.svg
    new file mode 100644
    index 00000000000..030d8e2957b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/clone.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/closed-captioning.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/closed-captioning.svg
    new file mode 100644
    index 00000000000..d6dd2753807
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/closed-captioning.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-download-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-download-alt.svg
    new file mode 100644
    index 00000000000..621c364e257
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-download-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-moon.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-moon.svg
    new file mode 100644
    index 00000000000..300b87b3f70
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-moon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.3 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm285.26-29.42c-104.23 19.22-199.95-58.16-199.95-160.03 0-58.68 32.45-112.64 85.18-141.7 8.13-4.48 6.08-16.41-3.15-18.06C497.14 1.17 484 0 470.84 0 352.25 0 256 93.04 256 208c0 7.26.4 14.44 1.15 21.51 9.87-3.38 20.18-5.51 30.85-5.51 52.94 0 96 43.06 96 96 0 3.59-.21 7.17-.63 10.73 33.49 15.39 57.47 46.55 63.24 83.86 7.96.87 16.03 1.41 24.23 1.41 66.26 0 126.79-29.19 166.88-77.02 5.93-7.07-.54-17.41-9.71-15.72z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-sun.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-sun.svg
    new file mode 100644
    index 00000000000..ef6b0c2e580
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-sun.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M342.75 352.68c5.74-9.59 9.25-20.69 9.25-32.68 0-35.35-28.65-64-64-64-17.21 0-32.77 6.88-44.27 17.93C227.39 244.31 196.23 224 160 224c-53.02 0-96 42.98-96 96 0 1.95.46 3.78.57 5.7C27.08 338.77 0 374.05 0 416c0 53.02 42.98 96 96 96h240c44.18 0 80-35.82 80-80 0-41.87-32.28-75.84-73.25-79.32zm243.19-99.8c-7.85-6.79-7.85-18.97 0-25.76L633.41 186c12.76-11.05 5.84-32.02-11-33.3l-61.59-4.67c-10.19-.78-17.28-10.49-14.9-20.43l14.95-62.48c3.89-16.26-13.96-29.02-28.08-20.07l-52.51 33.26c-8.61 5.46-20.06 1.75-23.85-7.72l-23.47-58.74c-6.32-15.81-28.19-15.81-34.51 0l-23.38 58.49c-3.83 9.59-15.44 13.35-24.17 7.82l-52.29-33.12c-14.13-8.95-31.98 3.81-28.08 20.07l14.95 62.48c2.38 9.94-4.7 19.65-14.9 20.43l-61.15 4.64c-17 1.29-23.99 22.46-11.1 33.62l31.23 27.05c7.82 5.17 15.21 11.01 21.78 17.84 11.42-4.71 23.73-7.18 36.37-7.18 5.97 0 11.77.71 17.44 1.76 7.09-54.98 53.68-97.76 110.56-97.76 61.76 0 112 50.24 112 112s-50.24 112-112 112c-.95 0-1.83-.26-2.77-.28 13.83 13.2 24.61 29.47 30.16 48.28h27.02c6.25 0 12.37 1.83 17.6 5.27l45.08 29.68c14.19 8.99 31.89-4.17 27.92-20.76l-14.69-61.38c-2.43-10.16 4.8-20.08 15.22-20.87l61.16-4.64c16.84-1.28 23.76-22.25 11-33.3l-47.47-41.11zm-202.66 59.94C393.3 317.34 404.32 320 416 320c44.11 0 80-35.89 80-80s-35.89-80-80-80c-43.25 0-78.39 34.56-79.75 77.49 26.44 15.53 44.59 43.13 47.03 75.33z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-upload-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-upload-alt.svg
    new file mode 100644
    index 00000000000..35b488254f3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cloud-upload-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cloud.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cloud.svg
    new file mode 100644
    index 00000000000..05b675fa0d9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cloud.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cocktail.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cocktail.svg
    new file mode 100644
    index 00000000000..31ee4ef55ed
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cocktail.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/code-branch.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/code-branch.svg
    new file mode 100644
    index 00000000000..8afca0019ee
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/code-branch.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/code.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/code.svg
    new file mode 100644
    index 00000000000..5368b8b305c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/code.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/coffee.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/coffee.svg
    new file mode 100644
    index 00000000000..255b4ff3029
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/coffee.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cog.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cog.svg
    new file mode 100644
    index 00000000000..0ad6d005054
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cog.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M444.788 291.1l42.616 24.599c4.867 2.809 7.126 8.618 5.459 13.985-11.07 35.642-29.97 67.842-54.689 94.586a12.016 12.016 0 0 1-14.832 2.254l-42.584-24.595a191.577 191.577 0 0 1-60.759 35.13v49.182a12.01 12.01 0 0 1-9.377 11.718c-34.956 7.85-72.499 8.256-109.219.007-5.49-1.233-9.403-6.096-9.403-11.723v-49.184a191.555 191.555 0 0 1-60.759-35.13l-42.584 24.595a12.016 12.016 0 0 1-14.832-2.254c-24.718-26.744-43.619-58.944-54.689-94.586-1.667-5.366.592-11.175 5.459-13.985L67.212 291.1a193.48 193.48 0 0 1 0-70.199l-42.616-24.599c-4.867-2.809-7.126-8.618-5.459-13.985 11.07-35.642 29.97-67.842 54.689-94.586a12.016 12.016 0 0 1 14.832-2.254l42.584 24.595a191.577 191.577 0 0 1 60.759-35.13V25.759a12.01 12.01 0 0 1 9.377-11.718c34.956-7.85 72.499-8.256 109.219-.007 5.49 1.233 9.403 6.096 9.403 11.723v49.184a191.555 191.555 0 0 1 60.759 35.13l42.584-24.595a12.016 12.016 0 0 1 14.832 2.254c24.718 26.744 43.619 58.944 54.689 94.586 1.667 5.366-.592 11.175-5.459 13.985L444.788 220.9a193.485 193.485 0 0 1 0 70.2zM336 256c0-44.112-35.888-80-80-80s-80 35.888-80 80 35.888 80 80 80 80-35.888 80-80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cogs.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cogs.svg
    new file mode 100644
    index 00000000000..6ee7dcd477b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cogs.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/coins.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/coins.svg
    new file mode 100644
    index 00000000000..53eb09fe35b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/coins.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/columns.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/columns.svg
    new file mode 100644
    index 00000000000..388bb7e47fd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/columns.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/comment-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/comment-alt.svg
    new file mode 100644
    index 00000000000..d51d2f0dad7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/comment-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/comment-dollar.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/comment-dollar.svg
    new file mode 100644
    index 00000000000..409c9a9aa55
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/comment-dollar.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/comment-dots.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/comment-dots.svg
    new file mode 100644
    index 00000000000..823933e7d7c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/comment-dots.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/comment-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/comment-slash.svg
    new file mode 100644
    index 00000000000..98fe631f955
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/comment-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/comment.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/comment.svg
    new file mode 100644
    index 00000000000..5278a99614b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/comment.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/comments-dollar.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/comments-dollar.svg
    new file mode 100644
    index 00000000000..f442140c469
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/comments-dollar.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/comments.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/comments.svg
    new file mode 100644
    index 00000000000..c463c5f195f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/comments.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/compact-disc.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/compact-disc.svg
    new file mode 100644
    index 00000000000..73be9951d51
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/compact-disc.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/compass.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/compass.svg
    new file mode 100644
    index 00000000000..90a3b3ce09c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/compass.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/compress.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/compress.svg
    new file mode 100644
    index 00000000000..066344223a9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/compress.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/concierge-bell.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/concierge-bell.svg
    new file mode 100644
    index 00000000000..1af245e7f6c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/concierge-bell.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cookie-bite.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cookie-bite.svg
    new file mode 100644
    index 00000000000..3d5d2404da0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cookie-bite.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cookie.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cookie.svg
    new file mode 100644
    index 00000000000..a2f4131d23c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cookie.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/copy.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/copy.svg
    new file mode 100644
    index 00000000000..30636b84855
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/copy.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/copyright.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/copyright.svg
    new file mode 100644
    index 00000000000..80508ad5b4e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/copyright.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/couch.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/couch.svg
    new file mode 100644
    index 00000000000..8ed280d3410
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/couch.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/credit-card.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/credit-card.svg
    new file mode 100644
    index 00000000000..7bdb1880f2f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/credit-card.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/crop-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/crop-alt.svg
    new file mode 100644
    index 00000000000..a5db177f52f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/crop-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/crop.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/crop.svg
    new file mode 100644
    index 00000000000..6d9e60c4bf5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/crop.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cross.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cross.svg
    new file mode 100644
    index 00000000000..b68f93c798f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cross.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/crosshairs.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/crosshairs.svg
    new file mode 100644
    index 00000000000..5bb5c357f56
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/crosshairs.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/crow.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/crow.svg
    new file mode 100644
    index 00000000000..51dae432a35
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/crow.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/crown.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/crown.svg
    new file mode 100644
    index 00000000000..0bbfc879a82
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/crown.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cube.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cube.svg
    new file mode 100644
    index 00000000000..fdbc688db48
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cube.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cubes.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cubes.svg
    new file mode 100644
    index 00000000000..fb4f504f7af
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cubes.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/cut.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/cut.svg
    new file mode 100644
    index 00000000000..315c3e80bbf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/cut.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/database.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/database.svg
    new file mode 100644
    index 00000000000..51f3e9b07f8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/database.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/deaf.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/deaf.svg
    new file mode 100644
    index 00000000000..0311c89b2a1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/deaf.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/desktop.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/desktop.svg
    new file mode 100644
    index 00000000000..0926f79a314
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/desktop.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dharmachakra.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dharmachakra.svg
    new file mode 100644
    index 00000000000..277b776919e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dharmachakra.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/diagnoses.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/diagnoses.svg
    new file mode 100644
    index 00000000000..afe9f3d95ce
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/diagnoses.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dice-d20.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-d20.svg
    new file mode 100644
    index 00000000000..f432529d892
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-d20.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><path d="M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dice-d6.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-d6.svg
    new file mode 100644
    index 00000000000..c593dcc9971
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-d6.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dice-five.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-five.svg
    new file mode 100644
    index 00000000000..4740a5d2a93
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-five.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dice-four.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-four.svg
    new file mode 100644
    index 00000000000..bfa9f78e016
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-four.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dice-one.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-one.svg
    new file mode 100644
    index 00000000000..dfa5ff5eb0a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-one.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dice-six.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-six.svg
    new file mode 100644
    index 00000000000..8f248ae5fac
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-six.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dice-three.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-three.svg
    new file mode 100644
    index 00000000000..448a9674fb2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-three.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dice-two.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-two.svg
    new file mode 100644
    index 00000000000..7bab97427c3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dice-two.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dice.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dice.svg
    new file mode 100644
    index 00000000000..1866069a717
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dice.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/digital-tachograph.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/digital-tachograph.svg
    new file mode 100644
    index 00000000000..496c2ce261f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/digital-tachograph.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/directions.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/directions.svg
    new file mode 100644
    index 00000000000..ba436d09572
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/directions.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/divide.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/divide.svg
    new file mode 100644
    index 00000000000..1c2ca298f11
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/divide.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dizzy.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dizzy.svg
    new file mode 100644
    index 00000000000..9faac943259
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dizzy.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dna.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dna.svg
    new file mode 100644
    index 00000000000..f1519757fd2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dna.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dog.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dog.svg
    new file mode 100644
    index 00000000000..dae3777f13d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dog.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dollar-sign.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dollar-sign.svg
    new file mode 100644
    index 00000000000..23d9934f2c9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dollar-sign.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 288 512"><path d="M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dolly-flatbed.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dolly-flatbed.svg
    new file mode 100644
    index 00000000000..7cfdb1c22d9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dolly-flatbed.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dolly.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dolly.svg
    new file mode 100644
    index 00000000000..1f2b226a507
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dolly.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/donate.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/donate.svg
    new file mode 100644
    index 00000000000..770bd3a7719
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/donate.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/door-closed.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/door-closed.svg
    new file mode 100644
    index 00000000000..e9f794d2508
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/door-closed.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/door-open.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/door-open.svg
    new file mode 100644
    index 00000000000..165a967f715
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/door-open.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dot-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dot-circle.svg
    new file mode 100644
    index 00000000000..c6fce530a00
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dot-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dove.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dove.svg
    new file mode 100644
    index 00000000000..ba716763fe1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dove.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/download.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/download.svg
    new file mode 100644
    index 00000000000..55b6f73db73
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/download.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/drafting-compass.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/drafting-compass.svg
    new file mode 100644
    index 00000000000..d0ff6a53f53
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/drafting-compass.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dragon.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dragon.svg
    new file mode 100644
    index 00000000000..bfe055dde1e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dragon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/draw-polygon.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/draw-polygon.svg
    new file mode 100644
    index 00000000000..13bb2876ee9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/draw-polygon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/drum-steelpan.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/drum-steelpan.svg
    new file mode 100644
    index 00000000000..85032b1637b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/drum-steelpan.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/drum.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/drum.svg
    new file mode 100644
    index 00000000000..54614bf4860
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/drum.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/drumstick-bite.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/drumstick-bite.svg
    new file mode 100644
    index 00000000000..619926020c4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/drumstick-bite.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M462.79 49.57c-66.14-66.09-173.36-66.09-239.5 0C187.81 85.02 160.12 128 160.12 192v85.83l-40.62 40.59c-9.7 9.69-24.04 11.07-36.78 5.98-21.72-8.68-47.42-4.29-65.02 13.29-23.61 23.59-23.61 61.84 0 85.43 15.28 15.27 36.53 19.58 56.14 15.09-4.5 19.6-.18 40.83 15.1 56.1 23.61 23.59 61.88 23.59 85.49 0 17.6-17.58 21.99-43.26 13.31-64.97-5.09-12.73-3.72-27.05 5.99-36.75L234.35 352h85.89c23.2 0 43.57-3.72 61.89-10.03-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.93-14.81-90.25-49.13-124.53z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dumbbell.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dumbbell.svg
    new file mode 100644
    index 00000000000..5523f683a59
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dumbbell.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/dungeon.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/dungeon.svg
    new file mode 100644
    index 00000000000..a6cb0662f96
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/dungeon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/edit.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/edit.svg
    new file mode 100644
    index 00000000000..c5de0dbcd74
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/edit.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/eject.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/eject.svg
    new file mode 100644
    index 00000000000..272abcae892
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/eject.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ellipsis-h.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ellipsis-h.svg
    new file mode 100644
    index 00000000000..4611c987784
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ellipsis-h.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ellipsis-v.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ellipsis-v.svg
    new file mode 100644
    index 00000000000..c6a3b4d450e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ellipsis-v.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><path d="M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/envelope-open-text.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/envelope-open-text.svg
    new file mode 100644
    index 00000000000..7fd68193ec8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/envelope-open-text.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/envelope-open.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/envelope-open.svg
    new file mode 100644
    index 00000000000..0084d958ea6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/envelope-open.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/envelope-square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/envelope-square.svg
    new file mode 100644
    index 00000000000..e1dfd137560
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/envelope-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/envelope.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/envelope.svg
    new file mode 100644
    index 00000000000..ec36e45edab
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/envelope.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/equals.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/equals.svg
    new file mode 100644
    index 00000000000..59460279b0f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/equals.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/eraser.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/eraser.svg
    new file mode 100644
    index 00000000000..8c1d6856509
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/eraser.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/euro-sign.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/euro-sign.svg
    new file mode 100644
    index 00000000000..9c846bdf35e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/euro-sign.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/exchange-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/exchange-alt.svg
    new file mode 100644
    index 00000000000..379ce2fb6cf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/exchange-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/exclamation-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/exclamation-circle.svg
    new file mode 100644
    index 00000000000..859725daf00
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/exclamation-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/exclamation-triangle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/exclamation-triangle.svg
    new file mode 100644
    index 00000000000..50a681fd885
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/exclamation-triangle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/exclamation.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/exclamation.svg
    new file mode 100644
    index 00000000000..174d2974c85
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/exclamation.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><path d="M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/expand-arrows-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/expand-arrows-alt.svg
    new file mode 100644
    index 00000000000..7ac762d34d6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/expand-arrows-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448.1 512"><path d="M448.1 344v112c0 13.3-10.7 24-24 24h-112c-21.4 0-32.1-25.9-17-41l36.2-36.2L224 295.6 116.8 402.9 153 439c15.1 15.1 4.4 41-17 41H24c-13.3 0-24-10.7-24-24V344c0-21.4 25.9-32.1 41-17l36.2 36.2L184.5 256 77.2 148.7 41 185c-15.1 15.1-41 4.4-41-17V56c0-13.3 10.7-24 24-24h112c21.4 0 32.1 25.9 17 41l-36.2 36.2L224 216.4l107.3-107.3L295.1 73c-15.1-15.1-4.4-41 17-41h112c13.3 0 24 10.7 24 24v112c0 21.4-25.9 32.1-41 17l-36.2-36.2L263.6 256l107.3 107.3 36.2-36.2c15.1-15.2 41-4.5 41 16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/expand.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/expand.svg
    new file mode 100644
    index 00000000000..bfc86772157
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/expand.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/external-link-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/external-link-alt.svg
    new file mode 100644
    index 00000000000..cea417ac292
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/external-link-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/external-link-square-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/external-link-square-alt.svg
    new file mode 100644
    index 00000000000..87765626a72
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/external-link-square-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/eye-dropper.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/eye-dropper.svg
    new file mode 100644
    index 00000000000..9890322ced9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/eye-dropper.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/eye-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/eye-slash.svg
    new file mode 100644
    index 00000000000..15586910447
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/eye-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M286.693 391.984l32.579 46.542A333.958 333.958 0 0 1 288 440C168.19 440 63.031 376.051 6.646 280.369a47.999 47.999 0 0 1 0-48.739c24.023-40.766 56.913-75.775 96.024-102.537l57.077 81.539C154.736 224.82 152 240.087 152 256c0 74.736 60.135 135.282 134.693 135.984zm282.661-111.615c-31.667 53.737-78.747 97.46-135.175 125.475l.011.015 41.47 59.2c7.6 10.86 4.96 25.82-5.9 33.42l-13.11 9.18c-10.86 7.6-25.82 4.96-33.42-5.9L100.34 46.94c-7.6-10.86-4.96-25.82 5.9-33.42l13.11-9.18c10.86-7.6 25.82-4.96 33.42 5.9l51.038 72.617C230.68 75.776 258.905 72 288 72c119.81 0 224.969 63.949 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM424 256c0-75.174-60.838-136-136-136-17.939 0-35.056 3.473-50.729 9.772l19.299 27.058c25.869-8.171 55.044-6.163 80.4 7.41h-.03c-23.65 0-42.82 19.17-42.82 42.82 0 23.626 19.147 42.82 42.82 42.82 23.65 0 42.82-19.17 42.82-42.82v-.03c18.462 34.49 16.312 77.914-8.25 110.95v.01l19.314 27.061C411.496 321.2 424 290.074 424 256zM262.014 356.727l-77.53-110.757c-5.014 52.387 29.314 98.354 77.53 110.757z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/eye.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/eye.svg
    new file mode 100644
    index 00000000000..f9e5341d42b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/eye.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M569.354 231.631C512.969 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-75.162 0-136-60.827-136-136 0-75.162 60.826-136 136-136 75.162 0 136 60.826 136 136 0 75.162-60.826 136-136 136zm104-136c0 57.438-46.562 104-104 104s-104-46.562-104-104c0-17.708 4.431-34.379 12.236-48.973l-.001.032c0 23.651 19.173 42.823 42.824 42.823s42.824-19.173 42.824-42.823c0-23.651-19.173-42.824-42.824-42.824l-.032.001C253.621 156.431 270.292 152 288 152c57.438 0 104 46.562 104 104z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fast-backward.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fast-backward.svg
    new file mode 100644
    index 00000000000..dfe10e5c53e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fast-backward.svg
    @@ -0,0 +1 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fast-forward.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fast-forward.svg
    new file mode 100644
    index 00000000000..57c072ae12b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fast-forward.svg
    @@ -0,0 +1 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fax.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fax.svg
    new file mode 100644
    index 00000000000..12386de93da
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fax.svg
    @@ -0,0 +1 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/feather-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/feather-alt.svg
    new file mode 100644
    index 00000000000..f9221c3ba24
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/feather-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/feather.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/feather.svg
    new file mode 100644
    index 00000000000..b30cbd3b759
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/feather.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/female.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/female.svg
    new file mode 100644
    index 00000000000..dc1b86a8b81
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/female.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fighter-jet.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fighter-jet.svg
    new file mode 100644
    index 00000000000..d84860e4b88
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fighter-jet.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-alt.svg
    new file mode 100644
    index 00000000000..177d8033658
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-archive.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-archive.svg
    new file mode 100644
    index 00000000000..b04a71d2a52
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-archive.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32V32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6zm32.7-53c0 14.9-14.5 27-32.4 27S96 378 96 363c0-14.9 14.5-27 32.4-27s32.5 12.1 32.5 27zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-audio.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-audio.svg
    new file mode 100644
    index 00000000000..3d9b89d1812
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-audio.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-code.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-code.svg
    new file mode 100644
    index 00000000000..50bff3dd240
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-code.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-contract.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-contract.svg
    new file mode 100644
    index 00000000000..5c5401fbb11
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-contract.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-csv.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-csv.svg
    new file mode 100644
    index 00000000000..d60cca1d17b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-csv.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-download.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-download.svg
    new file mode 100644
    index 00000000000..b0e2b278ea1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-download.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-excel.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-excel.svg
    new file mode 100644
    index 00000000000..0f0c83c7b44
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-excel.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-export.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-export.svg
    new file mode 100644
    index 00000000000..2830495bc0e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-export.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zM192 336v-32c0-8.84 7.16-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.84 0-16-7.16-16-16zm379.05-28.02l-95.7-96.43c-10.06-10.14-27.36-3.01-27.36 11.27V288H384v64h63.99v65.18c0 14.28 17.29 21.41 27.36 11.27l95.7-96.42c6.6-6.66 6.6-17.4 0-24.05z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-image.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-image.svg
    new file mode 100644
    index 00000000000..3b4c6a4bfde
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-image.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-import.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-import.svg
    new file mode 100644
    index 00000000000..3ba83569edd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-import.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M16 288c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h112v-64H16zm336-152V0H152c-13.3 0-24 10.7-24 24v264h127.99v-65.18c0-14.28 17.29-21.41 27.36-11.27l95.7 96.43c6.6 6.65 6.6 17.39 0 24.04l-95.7 96.42c-10.06 10.14-27.36 3.01-27.36-11.27V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24zm153-31L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-invoice-dollar.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-invoice-dollar.svg
    new file mode 100644
    index 00000000000..9699b488289
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-invoice-dollar.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-invoice.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-invoice.svg
    new file mode 100644
    index 00000000000..6a4c19bad83
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-invoice.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-medical-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-medical-alt.svg
    new file mode 100644
    index 00000000000..9a85918fa6a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-medical-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-medical.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-medical.svg
    new file mode 100644
    index 00000000000..3845bf09859
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-medical.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-pdf.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-pdf.svg
    new file mode 100644
    index 00000000000..20a35a266b4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-pdf.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-powerpoint.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-powerpoint.svg
    new file mode 100644
    index 00000000000..7bcd456c49c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-powerpoint.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-prescription.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-prescription.svg
    new file mode 100644
    index 00000000000..934fa7ca573
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-prescription.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-signature.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-signature.svg
    new file mode 100644
    index 00000000000..2922b7c5548
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-signature.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-upload.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-upload.svg
    new file mode 100644
    index 00000000000..cbc10fa8c37
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-upload.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-video.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-video.svg
    new file mode 100644
    index 00000000000..4ccb283c722
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-video.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file-word.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file-word.svg
    new file mode 100644
    index 00000000000..f0baffaa88b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file-word.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/file.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/file.svg
    new file mode 100644
    index 00000000000..a176aa0cf50
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/file.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fill-drip.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fill-drip.svg
    new file mode 100644
    index 00000000000..12201ee4bf9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fill-drip.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fill.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fill.svg
    new file mode 100644
    index 00000000000..41661a380f5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fill.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/film.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/film.svg
    new file mode 100644
    index 00000000000..0734c2ba7a4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/film.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/filter.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/filter.svg
    new file mode 100644
    index 00000000000..5e8cb01494f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/filter.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fingerprint.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fingerprint.svg
    new file mode 100644
    index 00000000000..86552e9f1a5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fingerprint.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fire-extinguisher.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fire-extinguisher.svg
    new file mode 100644
    index 00000000000..0b83576f58b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fire-extinguisher.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fire.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fire.svg
    new file mode 100644
    index 00000000000..bb55c8bf3a4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fire.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M216 23.858c0-23.802-30.653-32.765-44.149-13.038C48 191.851 224 200 224 288c0 35.629-29.114 64.458-64.85 63.994C123.98 351.538 96 322.22 96 287.046v-85.51c0-21.703-26.471-32.225-41.432-16.504C27.801 213.158 0 261.332 0 320c0 105.869 86.131 192 192 192s192-86.131 192-192c0-170.29-168-193.003-168-296.142z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/first-aid.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/first-aid.svg
    new file mode 100644
    index 00000000000..9c6cf24c2c6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/first-aid.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fish.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fish.svg
    new file mode 100644
    index 00000000000..409b15f5fb2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fish.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/fist-raised.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/fist-raised.svg
    new file mode 100644
    index 00000000000..b9d50fa34b3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/fist-raised.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/flag-checkered.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/flag-checkered.svg
    new file mode 100644
    index 00000000000..032d129ec14
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/flag-checkered.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M466.515 66.928C487.731 57.074 512 72.551 512 95.944v243.1c0 10.526-5.161 20.407-13.843 26.358-35.837 24.564-74.335 40.858-122.505 40.858-67.373 0-111.63-34.783-165.217-34.783-50.853 0-86.124 10.058-114.435 22.122V488c0 13.255-10.745 24-24 24H56c-13.255 0-24-10.745-24-24V101.945C17.497 91.825 8 75.026 8 56 8 24.296 34.345-1.254 66.338.048c28.468 1.158 51.779 23.968 53.551 52.404.52 8.342-.81 16.31-3.586 23.562C137.039 68.384 159.393 64 184.348 64c67.373 0 111.63 34.783 165.217 34.783 40.496 0 82.612-15.906 116.95-31.855zM96 134.63v70.49c29-10.67 51.18-17.83 73.6-20.91v-71.57c-23.5 2.17-40.44 9.79-73.6 21.99zm220.8 9.19c-26.417-4.672-49.886-13.979-73.6-21.34v67.42c24.175 6.706 47.566 16.444 73.6 22.31v-68.39zm-147.2 40.39v70.04c32.796-2.978 53.91-.635 73.6 3.8V189.9c-25.247-7.035-46.581-9.423-73.6-5.69zm73.6 142.23c26.338 4.652 49.732 13.927 73.6 21.34v-67.41c-24.277-6.746-47.54-16.45-73.6-22.32v68.39zM96 342.1c23.62-8.39 47.79-13.84 73.6-16.56v-71.29c-26.11 2.35-47.36 8.04-73.6 17.36v70.49zm368-221.6c-21.3 8.85-46.59 17.64-73.6 22.47v71.91c27.31-4.36 50.03-14.1 73.6-23.89V120.5zm0 209.96v-70.49c-22.19 14.2-48.78 22.61-73.6 26.02v71.58c25.07-2.38 48.49-11.04 73.6-27.11zM316.8 212.21v68.16c25.664 7.134 46.616 9.342 73.6 5.62v-71.11c-25.999 4.187-49.943 2.676-73.6-2.67z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/flag.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/flag.svg
    new file mode 100644
    index 00000000000..c5b879d08b3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/flag.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/flask.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/flask.svg
    new file mode 100644
    index 00000000000..ba001c4b7bd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/flask.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/flushed.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/flushed.svg
    new file mode 100644
    index 00000000000..221d9eb50f5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/flushed.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/folder-minus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/folder-minus.svg
    new file mode 100644
    index 00000000000..12a17f02074
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/folder-minus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/folder-open.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/folder-open.svg
    new file mode 100644
    index 00000000000..f70674948ec
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/folder-open.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/folder-plus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/folder-plus.svg
    new file mode 100644
    index 00000000000..71fcc85af58
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/folder-plus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/folder.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/folder.svg
    new file mode 100644
    index 00000000000..4385d192d1d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/folder.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/font-awesome-logo-full.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/font-awesome-logo-full.svg
    new file mode 100644
    index 00000000000..6e0e9e6d226
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/font-awesome-logo-full.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3992 512"><path d="M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/font.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/font.svg
    new file mode 100644
    index 00000000000..0bc8a599435
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/font.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M152 416h-24.013l26.586-80.782H292.8L319.386 416H296c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-26.739L275.495 42.746A16 16 0 0 0 260.382 32h-72.766a16 16 0 0 0-15.113 10.746L42.739 416H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h136c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm64.353-271.778c4.348-15.216 6.61-28.156 7.586-34.644.839 6.521 2.939 19.476 7.727 34.706l41.335 124.006h-98.619l41.971-124.068z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/football-ball.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/football-ball.svg
    new file mode 100644
    index 00000000000..4bbaf799cda
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/football-ball.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/forward.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/forward.svg
    new file mode 100644
    index 00000000000..0481061ec4b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/forward.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/frog.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/frog.svg
    new file mode 100644
    index 00000000000..512833408a5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/frog.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/frown-open.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/frown-open.svg
    new file mode 100644
    index 00000000000..27a1e789009
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/frown-open.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/frown.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/frown.svg
    new file mode 100644
    index 00000000000..b4a0068059e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/frown.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/funnel-dollar.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/funnel-dollar.svg
    new file mode 100644
    index 00000000000..df0b2f154f4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/funnel-dollar.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/futbol.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/futbol.svg
    new file mode 100644
    index 00000000000..e0813a28f3f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/futbol.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/gamepad.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/gamepad.svg
    new file mode 100644
    index 00000000000..52838a4fbeb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/gamepad.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/gas-pump.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/gas-pump.svg
    new file mode 100644
    index 00000000000..ee4c7f9a3fb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/gas-pump.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/gavel.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/gavel.svg
    new file mode 100644
    index 00000000000..67c18c1f700
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/gavel.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/gem.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/gem.svg
    new file mode 100644
    index 00000000000..e15674119b1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/gem.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/genderless.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/genderless.svg
    new file mode 100644
    index 00000000000..8ee3a0742e3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/genderless.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 288 512"><path d="M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ghost.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ghost.svg
    new file mode 100644
    index 00000000000..d04d989a754
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ghost.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/gift.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/gift.svg
    new file mode 100644
    index 00000000000..3fea06f7daf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/gift.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm448-288h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40zm-72 320h160c17.7 0 32-14.3 32-32V320H288v160z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/glass-martini-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/glass-martini-alt.svg
    new file mode 100644
    index 00000000000..04669f16777
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/glass-martini-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/glass-martini.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/glass-martini.svg
    new file mode 100644
    index 00000000000..49201fa5ac7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/glass-martini.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/glasses.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/glasses.svg
    new file mode 100644
    index 00000000000..545e22327d3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/glasses.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/globe-africa.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/globe-africa.svg
    new file mode 100644
    index 00000000000..d659a049dc3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/globe-africa.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/globe-americas.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/globe-americas.svg
    new file mode 100644
    index 00000000000..7fcb1fc79bf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/globe-americas.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/globe-asia.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/globe-asia.svg
    new file mode 100644
    index 00000000000..1a8da455d81
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/globe-asia.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/globe.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/globe.svg
    new file mode 100644
    index 00000000000..ee8d03c7492
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/globe.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/golf-ball.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/golf-ball.svg
    new file mode 100644
    index 00000000000..3622cf51791
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/golf-ball.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 416 512"><path d="M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/gopuram.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/gopuram.svg
    new file mode 100644
    index 00000000000..94331fd3b3f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/gopuram.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 352h-16V240c0-8.84-7.16-16-16-16h-16v-80c0-8.84-7.16-16-16-16h-16V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16s-16 7.16-16 16v16h-64V16c0-8.84-7.16-16-16-16S96 7.16 96 16v112H80c-8.84 0-16 7.16-16 16v80H48c-8.84 0-16 7.16-16 16v112H16c-8.84 0-16 7.16-16 16v128c0 8.84 7.16 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.84 0 16-7.16 16-16V368c0-8.84-7.16-16-16-16zm-272 0v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64h-64zm8-128v-48c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v48h-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/graduation-cap.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/graduation-cap.svg
    new file mode 100644
    index 00000000000..6d0794bbcf1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/graduation-cap.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/greater-than-equal.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/greater-than-equal.svg
    new file mode 100644
    index 00000000000..a05141c1108
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/greater-than-equal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/greater-than.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/greater-than.svg
    new file mode 100644
    index 00000000000..f7a89985b26
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/greater-than.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grimace.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grimace.svg
    new file mode 100644
    index 00000000000..8f5f7afe0d0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grimace.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-alt.svg
    new file mode 100644
    index 00000000000..597b6f93d61
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-beam-sweat.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-beam-sweat.svg
    new file mode 100644
    index 00000000000..17fa72ea5f2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-beam-sweat.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 504 512"><path d="M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-beam.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-beam.svg
    new file mode 100644
    index 00000000000..cad57931cff
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-beam.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-hearts.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-hearts.svg
    new file mode 100644
    index 00000000000..22b512f1c2c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-hearts.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-squint-tears.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-squint-tears.svg
    new file mode 100644
    index 00000000000..af201023f82
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-squint-tears.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-squint.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-squint.svg
    new file mode 100644
    index 00000000000..2376161ed03
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-squint.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-stars.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-stars.svg
    new file mode 100644
    index 00000000000..485c5709deb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-stars.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tears.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tears.svg
    new file mode 100644
    index 00000000000..524ff0fe3d9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tears.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tongue-squint.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tongue-squint.svg
    new file mode 100644
    index 00000000000..9da74e9e543
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tongue-squint.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tongue-wink.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tongue-wink.svg
    new file mode 100644
    index 00000000000..6f591eedfda
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tongue-wink.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tongue.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tongue.svg
    new file mode 100644
    index 00000000000..8df556ce0e2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-tongue.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin-wink.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-wink.svg
    new file mode 100644
    index 00000000000..0de6e14b7fb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin-wink.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grin.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grin.svg
    new file mode 100644
    index 00000000000..e5515c5e6e9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grin.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grip-horizontal.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grip-horizontal.svg
    new file mode 100644
    index 00000000000..0f46bc1b671
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grip-horizontal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/grip-vertical.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/grip-vertical.svg
    new file mode 100644
    index 00000000000..a786e34807a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/grip-vertical.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/h-square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/h-square.svg
    new file mode 100644
    index 00000000000..9f7967bd41a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/h-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hammer.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hammer.svg
    new file mode 100644
    index 00000000000..1b29d00d912
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hammer.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hamsa.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hamsa.svg
    new file mode 100644
    index 00000000000..8de5bd5ffd4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hamsa.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-heart.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-heart.svg
    new file mode 100644
    index 00000000000..041c9de9398
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-heart.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-usd.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-usd.svg
    new file mode 100644
    index 00000000000..e4b1629badc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding-usd.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 544 512"><path d="M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding.svg
    new file mode 100644
    index 00000000000..0589f572ed2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-holding.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-lizard.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-lizard.svg
    new file mode 100644
    index 00000000000..deda501700b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-lizard.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-paper.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-paper.svg
    new file mode 100644
    index 00000000000..c3de72e3a2d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-paper.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-peace.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-peace.svg
    new file mode 100644
    index 00000000000..c0d332a7d68
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-peace.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-down.svg
    new file mode 100644
    index 00000000000..393f6c9503a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-left.svg
    new file mode 100644
    index 00000000000..76681b2ae31
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-right.svg
    new file mode 100644
    index 00000000000..522704a69d6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-up.svg
    new file mode 100644
    index 00000000000..d8d69d689d7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-point-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-pointer.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-pointer.svg
    new file mode 100644
    index 00000000000..5234ba94659
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-pointer.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-rock.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-rock.svg
    new file mode 100644
    index 00000000000..55d004a3922
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-rock.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 128.79c0-26.322-20.861-48.344-47.18-48.783C437.935 79.558 416 101.217 416 128h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C333.935 47.558 312 69.217 312 96v32h-8V80.79c0-26.322-20.861-48.344-47.18-48.783C229.935 31.558 208 53.217 208 80v48h-8V96.79c0-26.322-20.861-48.344-47.18-48.783C125.935 47.558 104 69.217 104 96v136l-8-7.111V176.79c0-26.322-20.861-48.344-47.18-48.783C21.935 127.558 0 149.217 0 176v66.445a95.998 95.998 0 0 0 32.221 71.751l111.668 99.261A47.999 47.999 0 0 1 160 449.333V456c0 13.255 10.745 24 24 24h240c13.255 0 24-10.745 24-24v-2.921a96.01 96.01 0 0 1 7.523-37.254l48.954-116.265A96.002 96.002 0 0 0 512 262.306V128.79z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-scissors.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-scissors.svg
    new file mode 100644
    index 00000000000..792543d7474
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-scissors.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hand-spock.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-spock.svg
    new file mode 100644
    index 00000000000..d35ed0186f6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hand-spock.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M10.872 316.585c15.139-16.086 40.454-16.854 56.543-1.713L128 371.893v-79.405L88.995 120.865c-4.896-21.542 8.598-42.974 30.14-47.87 21.549-4.894 42.975 8.599 47.87 30.141L201.747 256h9.833L164.016 48.966c-4.946-21.531 8.498-42.994 30.028-47.94 21.532-4.95 42.994 8.498 47.94 30.028L293.664 256h15.105l48.425-193.702c5.357-21.432 27.075-34.462 48.507-29.104 21.432 5.358 34.463 27.075 29.104 48.507L391.231 256h11.08l30.768-129.265c5.117-21.491 26.685-34.768 48.177-29.647 21.491 5.117 34.765 26.686 29.647 48.177l-36.292 152.467A96.024 96.024 0 0 0 472 319.967v42.102a96.002 96.002 0 0 1-3.96 27.287l-26.174 88.287C435.825 498.022 417.101 512 395.846 512H179.172a48.002 48.002 0 0 1-32.898-13.046L12.585 373.128c-16.087-15.141-16.853-40.456-1.713-56.543z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hands-helping.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hands-helping.svg
    new file mode 100644
    index 00000000000..876d31c6c2c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hands-helping.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hands.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hands.svg
    new file mode 100644
    index 00000000000..76dc0da9cc7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hands.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/handshake.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/handshake.svg
    new file mode 100644
    index 00000000000..516170af1f6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/handshake.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hanukiah.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hanukiah.svg
    new file mode 100644
    index 00000000000..167449da7aa
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hanukiah.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hashtag.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hashtag.svg
    new file mode 100644
    index 00000000000..d55e361f32e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hashtag.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hat-wizard.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hat-wizard.svg
    new file mode 100644
    index 00000000000..63c5ee660c3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hat-wizard.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/haykal.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/haykal.svg
    new file mode 100644
    index 00000000000..848199ff5ec
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/haykal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hdd.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hdd.svg
    new file mode 100644
    index 00000000000..0c4d06a6c5d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hdd.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/heading.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/heading.svg
    new file mode 100644
    index 00000000000..a30153a835c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/heading.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 80V48c0-8.837-7.163-16-16-16H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.621v128H154.379V96H192c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h37.275v320H32c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.621V288H357.62v128H320c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h160c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16h-37.275V96H480c8.837 0 16-7.163 16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/headphones-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/headphones-alt.svg
    new file mode 100644
    index 00000000000..9ef25aa391b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/headphones-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/headphones.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/headphones.svg
    new file mode 100644
    index 00000000000..2fe7b23a039
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/headphones.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/headset.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/headset.svg
    new file mode 100644
    index 00000000000..903290c9abc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/headset.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/heart.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/heart.svg
    new file mode 100644
    index 00000000000..278037cc888
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/heart.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/heartbeat.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/heartbeat.svg
    new file mode 100644
    index 00000000000..5583d1b5d82
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/heartbeat.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/helicopter.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/helicopter.svg
    new file mode 100644
    index 00000000000..999f973554b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/helicopter.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/highlighter.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/highlighter.svg
    new file mode 100644
    index 00000000000..b5bd3b2fe1d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/highlighter.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 544 512"><path d="M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hiking.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hiking.svg
    new file mode 100644
    index 00000000000..f2ca518e36b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hiking.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hippo.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hippo.svg
    new file mode 100644
    index 00000000000..cda88b673a9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hippo.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/history.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/history.svg
    new file mode 100644
    index 00000000000..0127bf470a7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/history.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hockey-puck.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hockey-puck.svg
    new file mode 100644
    index 00000000000..fd1183af96f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hockey-puck.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/home.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/home.svg
    new file mode 100644
    index 00000000000..397f8f3a981
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/home.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M488 312.7V456c0 13.3-10.7 24-24 24H348c-6.6 0-12-5.4-12-12V356c0-6.6-5.4-12-12-12h-72c-6.6 0-12 5.4-12 12v112c0 6.6-5.4 12-12 12H112c-13.3 0-24-10.7-24-24V312.7c0-3.6 1.6-7 4.4-9.3l188-154.8c4.4-3.6 10.8-3.6 15.3 0l188 154.8c2.7 2.3 4.3 5.7 4.3 9.3zm83.6-60.9L488 182.9V44.4c0-6.6-5.4-12-12-12h-56c-6.6 0-12 5.4-12 12V117l-89.5-73.7c-17.7-14.6-43.3-14.6-61 0L4.4 251.8c-5.1 4.2-5.8 11.8-1.6 16.9l25.5 31c4.2 5.1 11.8 5.8 16.9 1.6l235.2-193.7c4.4-3.6 10.8-3.6 15.3 0l235.2 193.7c5.1 4.2 12.7 3.5 16.9-1.6l25.5-31c4.2-5.2 3.4-12.7-1.7-16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/horse.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/horse.svg
    new file mode 100644
    index 00000000000..c82619b0319
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/horse.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hospital-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hospital-alt.svg
    new file mode 100644
    index 00000000000..07c1b506b25
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hospital-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hospital-symbol.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hospital-symbol.svg
    new file mode 100644
    index 00000000000..98219152af3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hospital-symbol.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hospital.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hospital.svg
    new file mode 100644
    index 00000000000..eff3110ec15
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hospital.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hot-tub.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hot-tub.svg
    new file mode 100644
    index 00000000000..a5b9112dbc9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hot-tub.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hotel.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hotel.svg
    new file mode 100644
    index 00000000000..b3a3ae21c3d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hotel.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass-end.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass-end.svg
    new file mode 100644
    index 00000000000..ee13b31868f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass-end.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass-half.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass-half.svg
    new file mode 100644
    index 00000000000..5a1a0c924e9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass-half.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass-start.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass-start.svg
    new file mode 100644
    index 00000000000..06d0d2fe29d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass-start.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass.svg
    new file mode 100644
    index 00000000000..6309f2b4c59
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hourglass.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/house-damage.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/house-damage.svg
    new file mode 100644
    index 00000000000..6c5e9d70bc6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/house-damage.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/hryvnia.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/hryvnia.svg
    new file mode 100644
    index 00000000000..fa867141c1f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/hryvnia.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/i-cursor.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/i-cursor.svg
    new file mode 100644
    index 00000000000..c845136a850
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/i-cursor.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/id-badge.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/id-badge.svg
    new file mode 100644
    index 00000000000..c8f0367ce17
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/id-badge.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/id-card-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/id-card-alt.svg
    new file mode 100644
    index 00000000000..3069174633b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/id-card-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/id-card.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/id-card.svg
    new file mode 100644
    index 00000000000..1c199a2d3a7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/id-card.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/image.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/image.svg
    new file mode 100644
    index 00000000000..7a062f55e0f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/image.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/images.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/images.svg
    new file mode 100644
    index 00000000000..e05b2999923
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/images.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/inbox.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/inbox.svg
    new file mode 100644
    index 00000000000..09e77682b23
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/inbox.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/indent.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/indent.svg
    new file mode 100644
    index 00000000000..4b43c3df613
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/indent.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm176 144h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm160-128h256c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H176c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm-52.687-111.313l-96-95.984C17.266 138.652 0 145.776 0 160.016v191.975c0 14.329 17.325 21.304 27.313 11.313l96-95.992c6.249-6.247 6.249-16.377 0-22.625z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/industry.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/industry.svg
    new file mode 100644
    index 00000000000..7c04dc8fd79
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/industry.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/infinity.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/infinity.svg
    new file mode 100644
    index 00000000000..dfc763440c5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/infinity.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/info-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/info-circle.svg
    new file mode 100644
    index 00000000000..e3d404d00dd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/info-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/info.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/info.svg
    new file mode 100644
    index 00000000000..c77f147b8aa
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/info.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><path d="M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/italic.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/italic.svg
    new file mode 100644
    index 00000000000..01844b511b1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/italic.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M204.758 416h-33.849l62.092-320h40.725a16 16 0 0 0 15.704-12.937l6.242-32C297.599 41.184 290.034 32 279.968 32H120.235a16 16 0 0 0-15.704 12.937l-6.242 32C96.362 86.816 103.927 96 113.993 96h33.846l-62.09 320H46.278a16 16 0 0 0-15.704 12.935l-6.245 32C22.402 470.815 29.967 480 40.034 480h158.479a16 16 0 0 0 15.704-12.935l6.245-32c1.927-9.88-5.638-19.065-15.704-19.065z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/jedi.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/jedi.svg
    new file mode 100644
    index 00000000000..d0d0bd1ce73
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/jedi.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 544 512"><path d="M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/joint.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/joint.svg
    new file mode 100644
    index 00000000000..b05c361bc7e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/joint.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/journal-whills.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/journal-whills.svg
    new file mode 100644
    index 00000000000..629d7aa0781
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/journal-whills.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/kaaba.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/kaaba.svg
    new file mode 100644
    index 00000000000..36000f74e13
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/kaaba.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/key.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/key.svg
    new file mode 100644
    index 00000000000..c8bd0fe1d1e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/key.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/keyboard.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/keyboard.svg
    new file mode 100644
    index 00000000000..4b6eb890920
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/keyboard.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/khanda.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/khanda.svg
    new file mode 100644
    index 00000000000..b05fd8e6275
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/khanda.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/kiss-beam.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/kiss-beam.svg
    new file mode 100644
    index 00000000000..cd9edb9a092
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/kiss-beam.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/kiss-wink-heart.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/kiss-wink-heart.svg
    new file mode 100644
    index 00000000000..f4528af044e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/kiss-wink-heart.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 504 512"><path d="M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/kiss.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/kiss.svg
    new file mode 100644
    index 00000000000..61ff85f99f1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/kiss.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/kiwi-bird.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/kiwi-bird.svg
    new file mode 100644
    index 00000000000..c84dcfe9fb4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/kiwi-bird.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/landmark.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/landmark.svg
    new file mode 100644
    index 00000000000..8a5b1d0dfce
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/landmark.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/language.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/language.svg
    new file mode 100644
    index 00000000000..08c174184f9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/language.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M304 416H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h280v320zm-120.676-72.622A12 12 0 0 0 194.839 352h22.863c8.22 0 14.007-8.078 11.362-15.861L171.61 167.085a12 12 0 0 0-11.362-8.139h-32.489a12.001 12.001 0 0 0-11.362 8.139L58.942 336.139C56.297 343.922 62.084 352 70.304 352h22.805a12 12 0 0 0 11.535-8.693l9.118-31.807h60.211l9.351 31.878zm-39.051-140.42s4.32 21.061 7.83 33.21l10.8 37.531h-38.07l11.07-37.531c3.51-12.15 7.83-33.21 7.83-33.21h.54zM616 416H336V96h280c13.255 0 24 10.745 24 24v272c0 13.255-10.745 24-24 24zm-36-228h-64v-16c0-6.627-5.373-12-12-12h-16c-6.627 0-12 5.373-12 12v16h-64c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h114.106c-6.263 14.299-16.518 28.972-30.023 43.206-6.56-6.898-12.397-13.91-17.365-20.933-3.639-5.144-10.585-6.675-15.995-3.446l-7.28 4.346-6.498 3.879c-5.956 3.556-7.693 11.421-3.735 17.117 6.065 8.729 13.098 17.336 20.984 25.726-8.122 6.226-16.841 12.244-26.103 17.964-5.521 3.41-7.381 10.556-4.162 16.19l7.941 13.896c3.362 5.883 10.935 7.826 16.706 4.276 12.732-7.831 24.571-16.175 35.443-24.891 10.917 8.761 22.766 17.102 35.396 24.881 5.774 3.556 13.353 1.618 16.717-4.27l7.944-13.903c3.213-5.623 1.37-12.76-4.135-16.171a312.737 312.737 0 0 1-26.06-18.019c21.024-22.425 35.768-46.289 42.713-69.85H580c6.627 0 12-5.373 12-12v-16c0-6.625-5.373-11.998-12-11.998z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/laptop-code.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/laptop-code.svg
    new file mode 100644
    index 00000000000..d45c4e5d5dc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/laptop-code.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/laptop.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/laptop.svg
    new file mode 100644
    index 00000000000..bfd2f0eefd9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/laptop.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/laugh-beam.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/laugh-beam.svg
    new file mode 100644
    index 00000000000..41a578c3d82
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/laugh-beam.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/laugh-squint.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/laugh-squint.svg
    new file mode 100644
    index 00000000000..38676b488d3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/laugh-squint.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/laugh-wink.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/laugh-wink.svg
    new file mode 100644
    index 00000000000..768cd8d12ce
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/laugh-wink.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/laugh.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/laugh.svg
    new file mode 100644
    index 00000000000..3a6ad72e1d4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/laugh.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/layer-group.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/layer-group.svg
    new file mode 100644
    index 00000000000..cfccddcf912
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/layer-group.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/leaf.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/leaf.svg
    new file mode 100644
    index 00000000000..698f437d2e6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/leaf.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/lemon.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/lemon.svg
    new file mode 100644
    index 00000000000..a4426c3b4fa
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/lemon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/less-than-equal.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/less-than-equal.svg
    new file mode 100644
    index 00000000000..6281e1577b4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/less-than-equal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/less-than.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/less-than.svg
    new file mode 100644
    index 00000000000..530d35c4476
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/less-than.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/level-down-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/level-down-alt.svg
    new file mode 100644
    index 00000000000..6a41db56665
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/level-down-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/level-up-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/level-up-alt.svg
    new file mode 100644
    index 00000000000..a0c8142a806
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/level-up-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/life-ring.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/life-ring.svg
    new file mode 100644
    index 00000000000..61d0ffc69ed
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/life-ring.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/lightbulb.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/lightbulb.svg
    new file mode 100644
    index 00000000000..42d4cef2d92
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/lightbulb.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352 512"><path d="M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/link.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/link.svg
    new file mode 100644
    index 00000000000..5e65cbb4f7e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/link.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/lira-sign.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/lira-sign.svg
    new file mode 100644
    index 00000000000..6c3719a5de6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/lira-sign.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/list-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/list-alt.svg
    new file mode 100644
    index 00000000000..0dfe47a7d7d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/list-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/list-ol.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/list-ol.svg
    new file mode 100644
    index 00000000000..b6ce6cb55db
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/list-ol.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M3.263 139.527c0-7.477 3.917-11.572 11.573-11.572h15.131V88.078c0-5.163.534-10.503.534-10.503h-.356s-1.779 2.67-2.848 3.738c-4.451 4.273-10.504 4.451-15.666-1.068l-5.518-6.231c-5.342-5.341-4.984-11.216.534-16.379l21.72-19.938C32.815 33.602 36.732 32 42.785 32H54.89c7.656 0 11.749 3.916 11.749 11.572v84.384h15.488c7.655 0 11.572 4.094 11.572 11.572v8.901c0 7.477-3.917 11.572-11.572 11.572H14.836c-7.656 0-11.573-4.095-11.573-11.572v-8.902zM2.211 304.591c0-47.278 50.955-56.383 50.955-69.165 0-7.18-5.954-8.755-9.28-8.755-3.153 0-6.479 1.051-9.455 3.852-5.079 4.903-10.507 7.004-16.111 2.451l-8.579-6.829c-5.779-4.553-7.18-9.805-2.803-15.409C13.592 201.981 26.025 192 47.387 192c19.437 0 44.476 10.506 44.476 39.573 0 38.347-46.753 46.402-48.679 56.909h39.049c7.529 0 11.557 4.027 11.557 11.382v8.755c0 7.354-4.028 11.382-11.557 11.382h-67.94c-7.005 0-12.083-4.028-12.083-11.382v-4.028zM5.654 454.61l5.603-9.28c3.853-6.654 9.105-7.004 15.584-3.152 4.903 2.101 9.63 3.152 14.359 3.152 10.155 0 14.358-3.502 14.358-8.23 0-6.654-5.604-9.106-15.934-9.106h-4.728c-5.954 0-9.28-2.101-12.258-7.88l-1.05-1.926c-2.451-4.728-1.226-9.806 2.801-14.884l5.604-7.004c6.829-8.405 12.257-13.483 12.257-13.483v-.35s-4.203 1.051-12.608 1.051H16.685c-7.53 0-11.383-4.028-11.383-11.382v-8.755c0-7.53 3.853-11.382 11.383-11.382h58.484c7.529 0 11.382 4.027 11.382 11.382v3.327c0 5.778-1.401 9.806-5.079 14.183l-17.509 20.137c19.611 5.078 28.716 20.487 28.716 34.845 0 21.363-14.358 44.126-48.503 44.126-16.636 0-28.192-4.728-35.896-9.455-5.779-4.202-6.304-9.805-2.626-15.934zM144 132h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/list-ul.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/list-ul.svg
    new file mode 100644
    index 00000000000..58fadf696a3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/list-ul.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 96c0 26.51-21.49 48-48 48S0 122.51 0 96s21.49-48 48-48 48 21.49 48 48zM48 208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm0 160c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm96-236h352c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/list.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/list.svg
    new file mode 100644
    index 00000000000..fe5c9cdfa27
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/list.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 116V76c0-8.837 7.163-16 16-16h352c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H144c-8.837 0-16-7.163-16-16zm16 176h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h352c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H144c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 144h64c8.837 0 16-7.163 16-16V64c0-8.837-7.163-16-16-16H16C7.163 48 0 55.163 0 64v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16zm0 160h64c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/location-arrow.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/location-arrow.svg
    new file mode 100644
    index 00000000000..9fb1bdc6ec4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/location-arrow.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/lock-open.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/lock-open.svg
    new file mode 100644
    index 00000000000..c8405c0dadf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/lock-open.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/lock.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/lock.svg
    new file mode 100644
    index 00000000000..bfdb623231d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/lock.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-down.svg
    new file mode 100644
    index 00000000000..fbfd105be2a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-left.svg
    new file mode 100644
    index 00000000000..20700bb4c34
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-right.svg
    new file mode 100644
    index 00000000000..dc97eab5d79
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-up.svg
    new file mode 100644
    index 00000000000..177b36f80a2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/long-arrow-alt-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/low-vision.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/low-vision.svg
    new file mode 100644
    index 00000000000..064795f8edf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/low-vision.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/luggage-cart.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/luggage-cart.svg
    new file mode 100644
    index 00000000000..9d894bbb136
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/luggage-cart.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/magic.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/magic.svg
    new file mode 100644
    index 00000000000..64918516979
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/magic.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/magnet.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/magnet.svg
    new file mode 100644
    index 00000000000..b5ca258fed1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/magnet.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512.1 512"><path d="M164.1 160H12c-6.6 0-12-5.4-12-12V68c0-19.9 16.1-36 36-36h104c19.9 0 36 16.1 36 36v80c.1 6.6-5.3 12-11.9 12zm348-12V67.9c0-19.9-16.1-36-36-36h-104c-19.9 0-36 16.1-36 36v80c0 6.6 5.4 12 12 12h152c6.6.1 12-5.3 12-11.9zm-164 44c-6.6 0-12 5.4-12 12v52c0 128.1-160 127.9-160 0v-52c0-6.6-5.4-12-12-12h-152c-6.7 0-12 5.4-12 12.1.1 21.4.6 40.3 0 53.3C.1 408 136.3 504 256.9 504 377.5 504 512 408 512 257.3c-.6-12.8-.2-33 0-53.2 0-6.7-5.3-12.1-12-12.1H348.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mail-bulk.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mail-bulk.svg
    new file mode 100644
    index 00000000000..49330e0d2a6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mail-bulk.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/male.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/male.svg
    new file mode 100644
    index 00000000000..4d331966950
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/male.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><path d="M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/map-marked-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/map-marked-alt.svg
    new file mode 100644
    index 00000000000..b03cc8a73de
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/map-marked-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/map-marked.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/map-marked.svg
    new file mode 100644
    index 00000000000..bd0a1f05e17
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/map-marked.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/map-marker-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/map-marker-alt.svg
    new file mode 100644
    index 00000000000..f46216d4e3b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/map-marker-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/map-marker.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/map-marker.svg
    new file mode 100644
    index 00000000000..7e5de86156c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/map-marker.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/map-pin.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/map-pin.svg
    new file mode 100644
    index 00000000000..8573119f33d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/map-pin.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 288 512"><path d="M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/map-signs.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/map-signs.svg
    new file mode 100644
    index 00000000000..0a36d6ba816
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/map-signs.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/map.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/map.svg
    new file mode 100644
    index 00000000000..22857290dff
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/map.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/marker.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/marker.svg
    new file mode 100644
    index 00000000000..33e83417fd2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/marker.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mars-double.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mars-double.svg
    new file mode 100644
    index 00000000000..3780cbe87cf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mars-double.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mars-stroke-h.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mars-stroke-h.svg
    new file mode 100644
    index 00000000000..7cd8b6706b4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mars-stroke-h.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><path d="M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mars-stroke-v.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mars-stroke-v.svg
    new file mode 100644
    index 00000000000..b7646ae6237
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mars-stroke-v.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 288 512"><path d="M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mars-stroke.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mars-stroke.svg
    new file mode 100644
    index 00000000000..e24750ebccb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mars-stroke.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mars.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mars.svg
    new file mode 100644
    index 00000000000..63c6d74bcf8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mars.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mask.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mask.svg
    new file mode 100644
    index 00000000000..0d697a49628
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mask.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/medal.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/medal.svg
    new file mode 100644
    index 00000000000..816ce6cc334
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/medal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/medkit.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/medkit.svg
    new file mode 100644
    index 00000000000..a52f193d736
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/medkit.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/meh-blank.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/meh-blank.svg
    new file mode 100644
    index 00000000000..3094830f747
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/meh-blank.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/meh-rolling-eyes.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/meh-rolling-eyes.svg
    new file mode 100644
    index 00000000000..463a40d6a9e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/meh-rolling-eyes.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/meh.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/meh.svg
    new file mode 100644
    index 00000000000..4c28dd068f3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/meh.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/memory.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/memory.svg
    new file mode 100644
    index 00000000000..0f5d923b5d4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/memory.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/menorah.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/menorah.svg
    new file mode 100644
    index 00000000000..bb3b9bfa859
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/menorah.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mercury.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mercury.svg
    new file mode 100644
    index 00000000000..642bc99f480
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mercury.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 288 512"><path d="M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/microchip.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/microchip.svg
    new file mode 100644
    index 00000000000..a8402b45dd2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/microchip.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/microphone-alt-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/microphone-alt-slash.svg
    new file mode 100644
    index 00000000000..b6b34603877
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/microphone-alt-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/microphone-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/microphone-alt.svg
    new file mode 100644
    index 00000000000..f6b7094ec36
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/microphone-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352 512"><path d="M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/microphone-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/microphone-slash.svg
    new file mode 100644
    index 00000000000..2cdc26358ad
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/microphone-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/microphone.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/microphone.svg
    new file mode 100644
    index 00000000000..917f7ad2845
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/microphone.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352 512"><path d="M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/microscope.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/microscope.svg
    new file mode 100644
    index 00000000000..b539cfb368a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/microscope.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/minus-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/minus-circle.svg
    new file mode 100644
    index 00000000000..9ee75048e51
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/minus-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/minus-square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/minus-square.svg
    new file mode 100644
    index 00000000000..a6a643cf627
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/minus-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/minus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/minus.svg
    new file mode 100644
    index 00000000000..a226da28174
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/minus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mobile-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mobile-alt.svg
    new file mode 100644
    index 00000000000..8ca1b76eada
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mobile-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mobile.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mobile.svg
    new file mode 100644
    index 00000000000..0699b202e01
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mobile.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill-alt.svg
    new file mode 100644
    index 00000000000..a4b5ed1f6c4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill-wave-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill-wave-alt.svg
    new file mode 100644
    index 00000000000..462527fa9bc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill-wave-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill-wave.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill-wave.svg
    new file mode 100644
    index 00000000000..060bfa12269
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill-wave.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill.svg
    new file mode 100644
    index 00000000000..a63ebd0c6bf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/money-bill.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/money-check-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/money-check-alt.svg
    new file mode 100644
    index 00000000000..5f65bc28638
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/money-check-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/money-check.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/money-check.svg
    new file mode 100644
    index 00000000000..433f451fe76
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/money-check.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/monument.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/monument.svg
    new file mode 100644
    index 00000000000..8ed390cc3c7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/monument.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/moon.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/moon.svg
    new file mode 100644
    index 00000000000..14b3770d6fa
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/moon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mortar-pestle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mortar-pestle.svg
    new file mode 100644
    index 00000000000..4bb4e30118a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mortar-pestle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mosque.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mosque.svg
    new file mode 100644
    index 00000000000..df212d57b74
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mosque.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/motorcycle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/motorcycle.svg
    new file mode 100644
    index 00000000000..32fcf97e9b7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/motorcycle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M512.949 192.003c-14.862-.108-29.14 2.322-42.434 6.874L437.589 144H520c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24h-45.311a24 24 0 0 0-17.839 7.945l-37.496 41.663-22.774-37.956A24 24 0 0 0 376 64h-80c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h66.411l19.2 32H227.904c-17.727-23.073-44.924-40-99.904-40H72.54c-13.455 0-24.791 11.011-24.536 24.464C48.252 141.505 58.9 152 72 152h56c24.504 0 38.686 10.919 47.787 24.769l-11.291 20.529c-13.006-3.865-26.871-5.736-41.251-5.21C55.857 194.549 1.565 249.605.034 317.021-1.603 389.076 56.317 448 128 448c59.642 0 109.744-40.794 123.953-96h84.236c13.673 0 24.589-11.421 23.976-25.077-2.118-47.12 17.522-93.665 56.185-125.026l12.485 20.808c-27.646 23.654-45.097 58.88-44.831 98.179.47 69.556 57.203 126.452 126.758 127.11 71.629.678 129.839-57.487 129.234-129.099-.588-69.591-57.455-126.386-127.047-126.892zM128 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c4.242 0 8.405.341 12.469.982L98.97 316.434C90.187 332.407 101.762 352 120 352h81.297c-12.37 28.225-40.56 48-73.297 48zm388.351-.116C470.272 402.337 432 365.554 432 320c0-21.363 8.434-40.781 22.125-55.144l49.412 82.352c4.546 7.577 14.375 10.034 21.952 5.488l13.72-8.232c7.577-4.546 10.034-14.375 5.488-21.952l-48.556-80.927A80.005 80.005 0 0 1 512 240c45.554 0 82.338 38.273 79.884 84.352-2.16 40.558-34.974 73.372-75.533 75.532z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mountain.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mountain.svg
    new file mode 100644
    index 00000000000..16292d0cf59
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mountain.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/mouse-pointer.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/mouse-pointer.svg
    new file mode 100644
    index 00000000000..d08d542442f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/mouse-pointer.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/music.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/music.svg
    new file mode 100644
    index 00000000000..5a4fb9488ea
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/music.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/network-wired.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/network-wired.svg
    new file mode 100644
    index 00000000000..af2e4eee874
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/network-wired.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/neuter.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/neuter.svg
    new file mode 100644
    index 00000000000..3fa4d950969
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/neuter.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 288 512"><path d="M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/newspaper.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/newspaper.svg
    new file mode 100644
    index 00000000000..bd61e5574be
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/newspaper.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/not-equal.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/not-equal.svg
    new file mode 100644
    index 00000000000..18d0c14e637
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/not-equal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/notes-medical.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/notes-medical.svg
    new file mode 100644
    index 00000000000..fec807ee2e7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/notes-medical.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/object-group.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/object-group.svg
    new file mode 100644
    index 00000000000..7f7f3474aab
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/object-group.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/object-ungroup.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/object-ungroup.svg
    new file mode 100644
    index 00000000000..bc7b20296fe
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/object-ungroup.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/oil-can.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/oil-can.svg
    new file mode 100644
    index 00000000000..1d954e69a1e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/oil-can.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/om.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/om.svg
    new file mode 100644
    index 00000000000..e7d9a6f1335
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/om.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/otter.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/otter.svg
    new file mode 100644
    index 00000000000..79c2370be01
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/otter.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/outdent.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/outdent.svg
    new file mode 100644
    index 00000000000..dd76b800ee7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/outdent.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 84V44c0-8.837 7.163-16 16-16h416c8.837 0 16 7.163 16 16v40c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16zm208 144h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM16 484h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm192-128h224c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H208c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zM4.687 267.313l96 95.984C110.734 373.348 128 366.224 128 351.984V160.008c0-14.329-17.325-21.304-27.313-11.313l-96 95.992c-6.249 6.248-6.249 16.378 0 22.626z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/paint-brush.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/paint-brush.svg
    new file mode 100644
    index 00000000000..bc1e017d449
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/paint-brush.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/paint-roller.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/paint-roller.svg
    new file mode 100644
    index 00000000000..7f8026c1aa2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/paint-roller.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/palette.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/palette.svg
    new file mode 100644
    index 00000000000..8352f38a4f8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/palette.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pallet.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pallet.svg
    new file mode 100644
    index 00000000000..80f388aed0e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pallet.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/paper-plane.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/paper-plane.svg
    new file mode 100644
    index 00000000000..16df73e8a82
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/paper-plane.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/paperclip.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/paperclip.svg
    new file mode 100644
    index 00000000000..79c6e56823d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/paperclip.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/parachute-box.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/parachute-box.svg
    new file mode 100644
    index 00000000000..27c0bfbf436
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/parachute-box.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/paragraph.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/paragraph.svg
    new file mode 100644
    index 00000000000..e5512a6d53a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/paragraph.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M408 32H177.531C88.948 32 16.045 103.335 16 191.918 15.956 280.321 87.607 352 176 352v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h32v344c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V112h40c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/parking.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/parking.svg
    new file mode 100644
    index 00000000000..a7c9d90945a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/parking.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/passport.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/passport.svg
    new file mode 100644
    index 00000000000..933c3fb8101
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/passport.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pastafarianism.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pastafarianism.svg
    new file mode 100644
    index 00000000000..308159429ab
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pastafarianism.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/paste.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/paste.svg
    new file mode 100644
    index 00000000000..bc2ee46e5d7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/paste.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pause-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pause-circle.svg
    new file mode 100644
    index 00000000000..aeeb40d67ba
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pause-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pause.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pause.svg
    new file mode 100644
    index 00000000000..1b64aec0d79
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pause.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/paw.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/paw.svg
    new file mode 100644
    index 00000000000..31dcedae79c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/paw.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/peace.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/peace.svg
    new file mode 100644
    index 00000000000..7a301b3b78e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/peace.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pen-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pen-alt.svg
    new file mode 100644
    index 00000000000..b78811b8d3b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pen-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pen-fancy.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pen-fancy.svg
    new file mode 100644
    index 00000000000..7e0eb762e07
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pen-fancy.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pen-nib.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pen-nib.svg
    new file mode 100644
    index 00000000000..e522f7d605b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pen-nib.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pen-square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pen-square.svg
    new file mode 100644
    index 00000000000..a8072651a25
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pen-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pen.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pen.svg
    new file mode 100644
    index 00000000000..7479cbfb5b6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pen.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pencil-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pencil-alt.svg
    new file mode 100644
    index 00000000000..5d5777f79a4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pencil-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pencil-ruler.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pencil-ruler.svg
    new file mode 100644
    index 00000000000..ca4c24fc523
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pencil-ruler.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/people-carry.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/people-carry.svg
    new file mode 100644
    index 00000000000..b5566673636
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/people-carry.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/percent.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/percent.svg
    new file mode 100644
    index 00000000000..9cab4b9c7d5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/percent.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/percentage.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/percentage.svg
    new file mode 100644
    index 00000000000..949b7f5189e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/percentage.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/phone-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/phone-slash.svg
    new file mode 100644
    index 00000000000..6be857c7c87
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/phone-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/phone-square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/phone-square.svg
    new file mode 100644
    index 00000000000..c5488473a2f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/phone-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/phone-volume.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/phone-volume.svg
    new file mode 100644
    index 00000000000..8838a1c39bd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/phone-volume.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/phone.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/phone.svg
    new file mode 100644
    index 00000000000..e2fb4c6c42d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/phone.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/piggy-bank.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/piggy-bank.svg
    new file mode 100644
    index 00000000000..912acb7a367
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/piggy-bank.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pills.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pills.svg
    new file mode 100644
    index 00000000000..8e9ec504862
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pills.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/place-of-worship.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/place-of-worship.svg
    new file mode 100644
    index 00000000000..8ddae90745a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/place-of-worship.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/plane-arrival.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/plane-arrival.svg
    new file mode 100644
    index 00000000000..d12aa6934f6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/plane-arrival.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/plane-departure.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/plane-departure.svg
    new file mode 100644
    index 00000000000..4335ffe4d57
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/plane-departure.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/plane.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/plane.svg
    new file mode 100644
    index 00000000000..e4c29318fd1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/plane.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/play-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/play-circle.svg
    new file mode 100644
    index 00000000000..a78d2e0aee8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/play-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/play.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/play.svg
    new file mode 100644
    index 00000000000..ac5e12ca5c9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/play.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/plug.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/plug.svg
    new file mode 100644
    index 00000000000..77eaca079a5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/plug.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/plus-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/plus-circle.svg
    new file mode 100644
    index 00000000000..222bc368e35
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/plus-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/plus-square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/plus-square.svg
    new file mode 100644
    index 00000000000..15e34a7228d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/plus-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/plus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/plus.svg
    new file mode 100644
    index 00000000000..4bb519d9b12
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/plus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/podcast.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/podcast.svg
    new file mode 100644
    index 00000000000..c07c71dd87d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/podcast.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/poll-h.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/poll-h.svg
    new file mode 100644
    index 00000000000..83e50fd1dc4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/poll-h.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/poll.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/poll.svg
    new file mode 100644
    index 00000000000..3445663a95c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/poll.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/poo.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/poo.svg
    new file mode 100644
    index 00000000000..81cda0b5066
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/poo.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/poop.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/poop.svg
    new file mode 100644
    index 00000000000..e9ba30c561e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/poop.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/portrait.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/portrait.svg
    new file mode 100644
    index 00000000000..7aeed5e9b36
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/portrait.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pound-sign.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pound-sign.svg
    new file mode 100644
    index 00000000000..eb604e88d73
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pound-sign.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/power-off.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/power-off.svg
    new file mode 100644
    index 00000000000..88f94552580
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/power-off.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/pray.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/pray.svg
    new file mode 100644
    index 00000000000..eab2280dac9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/pray.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/praying-hands.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/praying-hands.svg
    new file mode 100644
    index 00000000000..5eaf15ca5a0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/praying-hands.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/prescription-bottle-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/prescription-bottle-alt.svg
    new file mode 100644
    index 00000000000..eb89c1c9e7c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/prescription-bottle-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/prescription-bottle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/prescription-bottle.svg
    new file mode 100644
    index 00000000000..c926f4a0d9a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/prescription-bottle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/prescription.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/prescription.svg
    new file mode 100644
    index 00000000000..da55b16feb6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/prescription.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/print.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/print.svg
    new file mode 100644
    index 00000000000..37e28fe71ee
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/print.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/procedures.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/procedures.svg
    new file mode 100644
    index 00000000000..ce9809a6646
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/procedures.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/project-diagram.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/project-diagram.svg
    new file mode 100644
    index 00000000000..6ea3ae33d36
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/project-diagram.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/puzzle-piece.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/puzzle-piece.svg
    new file mode 100644
    index 00000000000..cc528459879
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/puzzle-piece.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/qrcode.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/qrcode.svg
    new file mode 100644
    index 00000000000..149dc10086d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/qrcode.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/question-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/question-circle.svg
    new file mode 100644
    index 00000000000..92b65d17052
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/question-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/question.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/question.svg
    new file mode 100644
    index 00000000000..5a131bdfcd5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/question.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/quidditch.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/quidditch.svg
    new file mode 100644
    index 00000000000..5b97119a0a4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/quidditch.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/quote-left.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/quote-left.svg
    new file mode 100644
    index 00000000000..3e4e7fb8284
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/quote-left.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/quote-right.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/quote-right.svg
    new file mode 100644
    index 00000000000..f0c2099da40
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/quote-right.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/quran.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/quran.svg
    new file mode 100644
    index 00000000000..16fe8d6591b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/quran.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/random.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/random.svg
    new file mode 100644
    index 00000000000..2d04f897d1b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/random.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/receipt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/receipt.svg
    new file mode 100644
    index 00000000000..d84fa0c3dba
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/receipt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/recycle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/recycle.svg
    new file mode 100644
    index 00000000000..f351ffd7493
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/recycle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/redo-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/redo-alt.svg
    new file mode 100644
    index 00000000000..ecd25c9f575
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/redo-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/redo.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/redo.svg
    new file mode 100644
    index 00000000000..8c34faac4c9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/redo.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512.333 512"><path d="M500.333 0h-47.411c-6.853 0-12.314 5.729-11.986 12.574l3.966 82.759C399.416 41.899 331.672 8 256.001 8 119.34 8 7.899 119.526 8 256.187 8.101 393.068 119.096 504 256 504c63.926 0 122.202-24.187 166.178-63.908 5.113-4.618 5.354-12.561.482-17.433l-33.971-33.971c-4.466-4.466-11.64-4.717-16.38-.543C341.308 415.448 300.606 432 256 432c-97.267 0-176-78.716-176-176 0-97.267 78.716-176 176-176 60.892 0 114.506 30.858 146.099 77.8l-101.525-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/registered.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/registered.svg
    new file mode 100644
    index 00000000000..c41d32ebf27
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/registered.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/reply-all.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/reply-all.svg
    new file mode 100644
    index 00000000000..321e7eddeb2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/reply-all.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/reply.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/reply.svg
    new file mode 100644
    index 00000000000..aa7a76276fe
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/reply.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/retweet.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/retweet.svg
    new file mode 100644
    index 00000000000..861b0886d4d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/retweet.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ribbon.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ribbon.svg
    new file mode 100644
    index 00000000000..752e069a4c7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ribbon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ring.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ring.svg
    new file mode 100644
    index 00000000000..c888e09e5e6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ring.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/road.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/road.svg
    new file mode 100644
    index 00000000000..0c37cb4f75c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/road.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/robot.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/robot.svg
    new file mode 100644
    index 00000000000..2d2edaaa636
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/robot.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/rocket.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/rocket.svg
    new file mode 100644
    index 00000000000..a3a2cf2d879
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/rocket.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M505.1 19.1C503.8 13 499 8.2 492.9 6.9 460.7 0 435.5 0 410.4 0 307.2 0 245.3 55.2 199.1 128H94.9c-18.2 0-34.8 10.3-42.9 26.5L2.6 253.3c-8 16 3.6 34.7 21.5 34.7h95.1c-5.9 12.8-11.9 25.5-18 37.7-3.1 6.2-1.9 13.6 3 18.5l63.6 63.6c4.9 4.9 12.3 6.1 18.5 3 12.2-6.1 24.9-12 37.7-17.9V488c0 17.8 18.8 29.4 34.7 21.5l98.7-49.4c16.3-8.1 26.5-24.8 26.5-42.9V312.8c72.6-46.3 128-108.4 128-211.1.1-25.2.1-50.4-6.8-82.6zM400 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/route.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/route.svg
    new file mode 100644
    index 00000000000..2171a1d1976
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/route.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/rss-square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/rss-square.svg
    new file mode 100644
    index 00000000000..861c6651488
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/rss-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/rss.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/rss.svg
    new file mode 100644
    index 00000000000..34e07d683a9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/rss.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ruble-sign.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ruble-sign.svg
    new file mode 100644
    index 00000000000..f3b7cf74d13
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ruble-sign.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ruler-combined.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ruler-combined.svg
    new file mode 100644
    index 00000000000..72b7d3c7dfd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ruler-combined.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ruler-horizontal.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ruler-horizontal.svg
    new file mode 100644
    index 00000000000..94951356db0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ruler-horizontal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ruler-vertical.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ruler-vertical.svg
    new file mode 100644
    index 00000000000..51cefcddd1d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ruler-vertical.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ruler.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ruler.svg
    new file mode 100644
    index 00000000000..5c3ef9d7936
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ruler.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/running.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/running.svg
    new file mode 100644
    index 00000000000..15cdb29e6a9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/running.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 416 512"><path d="M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/rupee-sign.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/rupee-sign.svg
    new file mode 100644
    index 00000000000..8e1c80446d1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/rupee-sign.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sad-cry.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sad-cry.svg
    new file mode 100644
    index 00000000000..6ce56e7a467
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sad-cry.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sad-tear.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sad-tear.svg
    new file mode 100644
    index 00000000000..b3a5af47276
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sad-tear.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/save.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/save.svg
    new file mode 100644
    index 00000000000..5441d5c3179
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/save.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/school.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/school.svg
    new file mode 100644
    index 00000000000..195be280d32
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/school.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/screwdriver.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/screwdriver.svg
    new file mode 100644
    index 00000000000..3339f74dc3a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/screwdriver.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/scroll.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/scroll.svg
    new file mode 100644
    index 00000000000..aa2301b8082
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/scroll.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/search-dollar.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/search-dollar.svg
    new file mode 100644
    index 00000000000..5eca7045cf2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/search-dollar.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/search-location.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/search-location.svg
    new file mode 100644
    index 00000000000..582756ec8ea
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/search-location.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/search-minus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/search-minus.svg
    new file mode 100644
    index 00000000000..b6214571884
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/search-minus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/search-plus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/search-plus.svg
    new file mode 100644
    index 00000000000..d2cae3bc30c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/search-plus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/search.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/search.svg
    new file mode 100644
    index 00000000000..56b44e81eb2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/search.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/seedling.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/seedling.svg
    new file mode 100644
    index 00000000000..2a9dc439890
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/seedling.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/server.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/server.svg
    new file mode 100644
    index 00000000000..2639ede892f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/server.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shapes.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shapes.svg
    new file mode 100644
    index 00000000000..294fbaae71c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shapes.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/share-alt-square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/share-alt-square.svg
    new file mode 100644
    index 00000000000..3b318be02a1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/share-alt-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/share-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/share-alt.svg
    new file mode 100644
    index 00000000000..9093b8c8340
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/share-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/share-square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/share-square.svg
    new file mode 100644
    index 00000000000..4355619c5ac
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/share-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/share.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/share.svg
    new file mode 100644
    index 00000000000..82a30bec560
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/share.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shekel-sign.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shekel-sign.svg
    new file mode 100644
    index 00000000000..53773816432
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shekel-sign.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shield-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shield-alt.svg
    new file mode 100644
    index 00000000000..a048e87631f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shield-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 128c0 221.282-135.934 344.645-221.539 380.308a48 48 0 0 1-36.923 0C130.495 463.713 16 326.487 16 128a48 48 0 0 1 29.539-44.308l192-80a48 48 0 0 1 36.923 0l192 80A48 48 0 0 1 496 128zM256 446.313l.066.034c93.735-46.689 172.497-156.308 175.817-307.729L256 65.333v380.98z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ship.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ship.svg
    new file mode 100644
    index 00000000000..acc710f0ee9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ship.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shipping-fast.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shipping-fast.svg
    new file mode 100644
    index 00000000000..5e627a8e06f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shipping-fast.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shoe-prints.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shoe-prints.svg
    new file mode 100644
    index 00000000000..a22e6a260c2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shoe-prints.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shopping-bag.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shopping-bag.svg
    new file mode 100644
    index 00000000000..b83ffe31183
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shopping-bag.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shopping-basket.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shopping-basket.svg
    new file mode 100644
    index 00000000000..9b9644d387c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shopping-basket.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shopping-cart.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shopping-cart.svg
    new file mode 100644
    index 00000000000..550475be4d4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shopping-cart.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shower.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shower.svg
    new file mode 100644
    index 00000000000..b3b9badbc51
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shower.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/shuttle-van.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/shuttle-van.svg
    new file mode 100644
    index 00000000000..49d8c9986b3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/shuttle-van.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sign-in-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sign-in-alt.svg
    new file mode 100644
    index 00000000000..bd9e205d806
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sign-in-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sign-language.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sign-language.svg
    new file mode 100644
    index 00000000000..892ec348187
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sign-language.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sign-out-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sign-out-alt.svg
    new file mode 100644
    index 00000000000..ea9456ebdbe
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sign-out-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sign.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sign.svg
    new file mode 100644
    index 00000000000..f6d365f4413
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sign.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/signal.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/signal.svg
    new file mode 100644
    index 00000000000..09616c015a5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/signal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/signature.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/signature.svg
    new file mode 100644
    index 00000000000..ed7d0aaa2ae
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/signature.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 320h-91.86c-9.27 0-19.72-11.31-25.78-28.52-15.23-43.36-48.11-70.3-85.8-70.3-30.84 0-58.47 18.05-76.11 49.23L194.8 106.5C188.84 81.08 169.34 64 146.28 64c-23.05 0-42.55 17.08-48.5 42.5L56.16 284.2C50.7 307.45 37.75 320 28.33 320H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h12.33c41.97 0 78.19-34.23 90.14-85.2l23.84-101.78 29.25 222.11c1.98 15.05 13.82 27.45 28.94 28.75.99.09 1.96.13 2.93.13 14.08 0 26.64-9.27 30.69-22.95l33.03-112.34c5.88-16.72 15.84-27.52 25.41-27.52 9.58 0 19.55 10.8 25.78 28.52 15.23 43.36 48.11 70.3 85.8 70.3H496c8.84 0 16-7.16 16-16v-32c0-8.86-7.16-16.02-16-16.02z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sitemap.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sitemap.svg
    new file mode 100644
    index 00000000000..6c90706d94a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sitemap.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/skull-crossbones.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/skull-crossbones.svg
    new file mode 100644
    index 00000000000..5fc6c6868c9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/skull-crossbones.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/skull.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/skull.svg
    new file mode 100644
    index 00000000000..9c47bf5a373
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/skull.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/slash.svg
    new file mode 100644
    index 00000000000..758f7e7fa50
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sliders-h.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sliders-h.svg
    new file mode 100644
    index 00000000000..0ef8ddb76fe
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sliders-h.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/smile-beam.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/smile-beam.svg
    new file mode 100644
    index 00000000000..c0141251676
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/smile-beam.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/smile-wink.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/smile-wink.svg
    new file mode 100644
    index 00000000000..efafcc6f133
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/smile-wink.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/smile.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/smile.svg
    new file mode 100644
    index 00000000000..32650c54ea3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/smile.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/smoking-ban.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/smoking-ban.svg
    new file mode 100644
    index 00000000000..65f0f8e61ee
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/smoking-ban.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/smoking.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/smoking.svg
    new file mode 100644
    index 00000000000..f3d0f37fd51
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/smoking.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/snowflake.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/snowflake.svg
    new file mode 100644
    index 00000000000..397b33b0ce5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/snowflake.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M444.816 301.639a24.12 24.12 0 0 0 2.661-16.978c-2.725-12.966-15.339-21.245-28.174-18.492l-87.407 25.046L264 256l67.896-35.215 87.407 25.046c12.835 2.753 25.449-5.526 28.174-18.492 2.725-12.966-5.471-25.708-18.305-28.461l-47.477-7.137 53.077-30.956c11.363-6.627 15.257-21.306 8.696-32.785-6.561-11.479-21.091-15.412-32.454-8.785l-53.077 30.956 17.621-45.104c4.057-12.606-2.768-26.146-15.247-30.245-12.478-4.099-25.883 2.797-29.94 15.402l-22.232 88.99-60.38 35.215V144l65.175-63.945c8.778-9.852 7.987-25.027-1.766-33.894-9.753-8.867-24.775-8.068-33.552 1.784l-29.857 37.967V24c0-13.255-10.637-24-23.758-24s-23.758 10.745-23.758 24v61.912l-29.857-37.967c-8.779-9.852-23.799-10.652-33.552-1.784-9.753 8.867-10.543 24.042-1.766 33.894L200.242 144v70.431l-60.38-35.215-22.232-88.99c-4.057-12.605-17.462-19.501-29.94-15.402-12.478 4.099-19.304 17.64-15.247 30.245l17.62 45.104-53.077-30.956c-11.363-6.627-25.893-2.694-32.454 8.785s-2.667 26.157 8.696 32.785l53.077 30.956-47.477 7.137C5.993 201.634-2.203 214.375.523 227.341c2.725 12.965 15.339 21.245 28.174 18.492l87.407-25.046L184 256l-67.896 35.215-87.406-25.045c-12.835-2.753-25.449 5.526-28.174 18.492-2.725 12.967 5.47 25.708 18.305 28.461l47.477 7.137-53.077 30.956C1.866 357.843-2.027 372.521 4.533 384s21.091 15.412 32.454 8.785l53.077-30.956-17.62 45.104a24.157 24.157 0 0 0 2.022 19.428c2.831 4.953 7.416 8.909 13.224 10.816 12.478 4.099 25.883-2.797 29.94-15.402l22.232-88.99 60.38-35.215V368l-65.175 63.945c-8.778 9.852-7.987 25.027 1.766 33.894 9.754 8.868 24.774 8.068 33.552-1.784l29.857-37.967V488c0 13.255 10.637 24 23.758 24s23.758-10.745 23.758-24v-61.912l29.857 37.967A23.59 23.59 0 0 0 295.282 472a23.534 23.534 0 0 0 15.885-6.161c9.753-8.867 10.544-24.042 1.766-33.894L247.758 368v-70.431l60.38 35.215 22.232 88.99c4.057 12.605 17.462 19.501 29.94 15.402 12.479-4.099 19.304-17.64 15.247-30.245l-17.621-45.104 53.077 30.956c11.363 6.627 25.893 2.694 32.454-8.785s2.667-26.157-8.696-32.785l-53.077-30.956 47.477-7.137c6.86-1.469 12.394-5.793 15.645-11.481z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/socks.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/socks.svg
    new file mode 100644
    index 00000000000..784b25cf335
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/socks.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/solar-panel.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/solar-panel.svg
    new file mode 100644
    index 00000000000..c5399a0035f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/solar-panel.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sort-alpha-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-alpha-down.svg
    new file mode 100644
    index 00000000000..22056cd1e7d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-alpha-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zm119.075-180.007A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sort-alpha-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-alpha-up.svg
    new file mode 100644
    index 00000000000..975dc5766dc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-alpha-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zm301.671 98.621A12 12 0 0 1 294.838 224h-35.717c-8.22 0-14.007-8.078-11.362-15.861l57.096-168A12 12 0 0 1 316.217 32h39.566c5.139 0 9.708 3.273 11.362 8.139l57.096 168C426.886 215.922 421.1 224 412.879 224h-35.735a12 12 0 0 1-11.515-8.622l-8.301-28.299h-42.863l-8.092 28.228zm22.857-78.697h13.367l-6.6-22.937-6.767 22.937zm12.575 287.323l67.451-95.698a12 12 0 0 0 2.192-6.913V300c0-6.627-5.373-12-12-12H274.522c-6.627 0-12 5.373-12 12v28.93c0 6.627 5.373 12 12 12h56.469c-.739.991-1.497 2.036-2.27 3.133l-67.203 95.205a12.001 12.001 0 0 0-2.196 6.92V468c0 6.627 5.373 12 12 12h129.355c6.627 0 12-5.373 12-12v-28.93c0-6.627-5.373-12-12-12h-61.146c.74-.993 1.5-2.039 2.274-3.137z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sort-amount-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-amount-down.svg
    new file mode 100644
    index 00000000000..7aa5af57520
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-amount-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M187.298 395.314l-79.984 80.002c-6.248 6.247-16.383 6.245-22.627 0L4.705 395.314C-5.365 385.244 1.807 368 16.019 368H64V48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v320h47.984c14.241 0 21.363 17.264 11.314 27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sort-amount-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-amount-up.svg
    new file mode 100644
    index 00000000000..8a2fec03ba5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-amount-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M4.702 116.686l79.984-80.002c6.248-6.247 16.383-6.245 22.627 0l79.981 80.002c10.07 10.07 2.899 27.314-11.314 27.314H128v320c0 8.837-7.163 16-16 16H80c-8.837 0-16-7.163-16-16V144H16.016c-14.241 0-21.363-17.264-11.314-27.314zM240 96h256c8.837 0 16-7.163 16-16V48c0-8.837-7.163-16-16-16H240c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16zm-16 112v-32c0-8.837 7.163-16 16-16h192c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16zm0 256v-32c0-8.837 7.163-16 16-16h64c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-64c-8.837 0-16-7.163-16-16zm0-128v-32c0-8.837 7.163-16 16-16h128c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H240c-8.837 0-16-7.163-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sort-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-down.svg
    new file mode 100644
    index 00000000000..118bddf7955
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sort-numeric-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-numeric-down.svg
    new file mode 100644
    index 00000000000..dc494791a1e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-numeric-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM175.984 368H128V48c0-8.837-7.163-16-16-16H80c-8.837 0-16 7.163-16 16v320H16.019c-14.212 0-21.384 17.244-11.314 27.314l79.981 80.002c6.245 6.245 16.38 6.247 22.627 0l79.984-80.002c10.05-10.05 2.928-27.314-11.313-27.314z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sort-numeric-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-numeric-up.svg
    new file mode 100644
    index 00000000000..b2d596a192d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-numeric-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M308.811 113.787l-19.448-20.795c-4.522-4.836-4.274-12.421.556-16.95l43.443-40.741a11.999 11.999 0 0 1 8.209-3.247h31.591c6.627 0 12 5.373 12 12v127.07h25.66c6.627 0 12 5.373 12 12v28.93c0 6.627-5.373 12-12 12H301.649c-6.627 0-12-5.373-12-12v-28.93c0-6.627 5.373-12 12-12h25.414v-57.938c-7.254 6.58-14.211 4.921-18.252.601zm-30.57 238.569c0-32.653 23.865-67.356 68.094-67.356 38.253 0 79.424 28.861 79.424 92.228 0 51.276-32.237 105.772-91.983 105.772-17.836 0-30.546-3.557-38.548-6.781-5.79-2.333-8.789-8.746-6.922-14.703l9.237-29.48c2.035-6.496 9.049-9.983 15.467-7.716 13.029 4.602 27.878 5.275 38.103-4.138-38.742 5.072-72.872-25.36-72.872-67.826zm92.273 19.338c0-22.285-15.302-36.505-25.835-36.505-8.642 0-13.164 7.965-13.164 15.832 0 5.669 1.815 24.168 25.168 24.168 9.973 0 13.377-2.154 13.744-2.731.021-.046.087-.291.087-.764zM16.016 144H64v320c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144h47.981c14.212 0 21.384-17.244 11.314-27.314l-79.981-80.002c-6.245-6.245-16.38-6.247-22.627 0L4.702 116.686C-5.347 126.736 1.775 144 16.016 144z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sort-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-up.svg
    new file mode 100644
    index 00000000000..e0f5a0fb99d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sort-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sort.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sort.svg
    new file mode 100644
    index 00000000000..9b00c720be4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sort.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/spa.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/spa.svg
    new file mode 100644
    index 00000000000..c844a9a1093
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/spa.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/space-shuttle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/space-shuttle.svg
    new file mode 100644
    index 00000000000..1c93125128b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/space-shuttle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/spider.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/spider.svg
    new file mode 100644
    index 00000000000..168b45ff575
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/spider.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/spinner.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/spinner.svg
    new file mode 100644
    index 00000000000..3579fbc2357
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/spinner.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/splotch.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/splotch.svg
    new file mode 100644
    index 00000000000..8224d294b10
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/splotch.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/spray-can.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/spray-can.svg
    new file mode 100644
    index 00000000000..38bc3f1795c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/spray-can.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/square-full.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/square-full.svg
    new file mode 100644
    index 00000000000..3d371884940
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/square-full.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 512H0V0h512v512z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/square-root-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/square-root-alt.svg
    new file mode 100644
    index 00000000000..698c7bbbb55
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/square-root-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/square.svg
    new file mode 100644
    index 00000000000..398cc6b35d1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/stamp.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/stamp.svg
    new file mode 100644
    index 00000000000..02d209535ca
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/stamp.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/star-and-crescent.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/star-and-crescent.svg
    new file mode 100644
    index 00000000000..a5b8fd632fa
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/star-and-crescent.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/star-half-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/star-half-alt.svg
    new file mode 100644
    index 00000000000..ad794090eb4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/star-half-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 536 512"><path d="M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/star-half.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/star-half.svg
    new file mode 100644
    index 00000000000..1c9682974d7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/star-half.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/star-of-david.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/star-of-david.svg
    new file mode 100644
    index 00000000000..38bad4b7779
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/star-of-david.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 464 512"><path d="M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/star-of-life.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/star-of-life.svg
    new file mode 100644
    index 00000000000..28aaeaa7422
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/star-of-life.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><path d="M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/star.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/star.svg
    new file mode 100644
    index 00000000000..fde1b8d8edb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/star.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/step-backward.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/step-backward.svg
    new file mode 100644
    index 00000000000..c73ca5c3ac9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/step-backward.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/step-forward.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/step-forward.svg
    new file mode 100644
    index 00000000000..4279b874ef1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/step-forward.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/stethoscope.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/stethoscope.svg
    new file mode 100644
    index 00000000000..e0633a37279
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/stethoscope.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sticky-note.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sticky-note.svg
    new file mode 100644
    index 00000000000..05aad94e69c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sticky-note.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/stop-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/stop-circle.svg
    new file mode 100644
    index 00000000000..39f96b04347
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/stop-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/stop.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/stop.svg
    new file mode 100644
    index 00000000000..398cc6b35d1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/stop.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/stopwatch.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/stopwatch.svg
    new file mode 100644
    index 00000000000..cfeb28089ee
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/stopwatch.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/store-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/store-alt.svg
    new file mode 100644
    index 00000000000..d4bd7b6e941
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/store-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/store.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/store.svg
    new file mode 100644
    index 00000000000..5c13e876747
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/store.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 616 512"><path d="M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/stream.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/stream.svg
    new file mode 100644
    index 00000000000..afea342c6e6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/stream.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/street-view.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/street-view.svg
    new file mode 100644
    index 00000000000..910dc257258
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/street-view.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/strikethrough.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/strikethrough.svg
    new file mode 100644
    index 00000000000..c178fbfb3d4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/strikethrough.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 288H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h480c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16zm-214.666 16c27.258 12.937 46.524 28.683 46.524 56.243 0 33.108-28.977 53.676-75.621 53.676-32.325 0-76.874-12.08-76.874-44.271V368c0-8.837-7.164-16-16-16H113.75c-8.836 0-16 7.163-16 16v19.204c0 66.845 77.717 101.82 154.487 101.82 88.578 0 162.013-45.438 162.013-134.424 0-19.815-3.618-36.417-10.143-50.6H281.334zm-30.952-96c-32.422-13.505-56.836-28.946-56.836-59.683 0-33.92 30.901-47.406 64.962-47.406 42.647 0 64.962 16.593 64.962 32.985V136c0 8.837 7.164 16 16 16h45.613c8.836 0 16-7.163 16-16v-30.318c0-52.438-71.725-79.875-142.575-79.875-85.203 0-150.726 40.972-150.726 125.646 0 22.71 4.665 41.176 12.777 56.547h129.823z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/stroopwafel.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/stroopwafel.svg
    new file mode 100644
    index 00000000000..e5cdf445e0f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/stroopwafel.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/subscript.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/subscript.svg
    new file mode 100644
    index 00000000000..acb4fc9b102
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/subscript.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M395.198 416c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 256c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 96H16C7.163 96 0 88.837 0 80V48c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035A15.999 15.999 0 0 1 204.226 32H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 256H272z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/subway.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/subway.svg
    new file mode 100644
    index 00000000000..e34631ec58f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/subway.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/suitcase-rolling.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/suitcase-rolling.svg
    new file mode 100644
    index 00000000000..106ee881de5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/suitcase-rolling.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/suitcase.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/suitcase.svg
    new file mode 100644
    index 00000000000..78a5f8590d2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/suitcase.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sun.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sun.svg
    new file mode 100644
    index 00000000000..0d48f32d2fd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sun.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M274.835 12.646l25.516 62.393c4.213 10.301 16.671 14.349 26.134 8.492l57.316-35.479c15.49-9.588 34.808 4.447 30.475 22.142l-16.03 65.475c-2.647 10.81 5.053 21.408 16.152 22.231l67.224 4.987c18.167 1.348 25.546 24.057 11.641 35.826L441.81 242.26c-8.495 7.19-8.495 20.289 0 27.479l51.454 43.548c13.906 11.769 6.527 34.478-11.641 35.826l-67.224 4.987c-11.099.823-18.799 11.421-16.152 22.231l16.03 65.475c4.332 17.695-14.986 31.73-30.475 22.142l-57.316-35.479c-9.463-5.858-21.922-1.81-26.134 8.492l-25.516 62.393c-6.896 16.862-30.774 16.862-37.67 0l-25.516-62.393c-4.213-10.301-16.671-14.349-26.134-8.492l-57.317 35.479c-15.49 9.588-34.808-4.447-30.475-22.142l16.03-65.475c2.647-10.81-5.053-21.408-16.152-22.231l-67.224-4.987c-18.167-1.348-25.546-24.057-11.641-35.826L70.19 269.74c8.495-7.19 8.495-20.289 0-27.479l-51.454-43.548c-13.906-11.769-6.527-34.478 11.641-35.826l67.224-4.987c11.099-.823 18.799-11.421 16.152-22.231l-16.03-65.475c-4.332-17.695 14.986-31.73 30.475-22.142l57.317 35.479c9.463 5.858 21.921 1.81 26.134-8.492l25.516-62.393c6.896-16.861 30.774-16.861 37.67 0zM392 256c0-74.991-61.01-136-136-136-74.991 0-136 61.009-136 136s61.009 136 136 136c74.99 0 136-61.009 136-136zm-32 0c0 57.346-46.654 104-104 104s-104-46.654-104-104 46.654-104 104-104 104 46.654 104 104z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/superscript.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/superscript.svg
    new file mode 100644
    index 00000000000..ba14f3c67de
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/superscript.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M395.198 256c3.461-10.526 18.796-21.28 36.265-32.425 16.625-10.605 35.467-22.626 50.341-38.862 17.458-19.054 25.944-40.175 25.944-64.567 0-60.562-50.702-88.146-97.81-88.146-42.491 0-76.378 22.016-94.432 50.447-4.654 7.329-2.592 17.036 4.623 21.865l30.328 20.296c7.032 4.706 16.46 3.084 21.63-3.614 8.022-10.394 18.818-18.225 31.667-18.225 19.387 0 26.266 12.901 26.266 23.948 0 36.159-119.437 57.023-119.437 160.024 0 6.654.561 13.014 1.415 19.331 1.076 7.964 7.834 13.928 15.87 13.928H496c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16H395.198zM272 416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-62.399a16 16 0 0 1-13.541-7.478l-45.701-72.615c-2.297-3.352-4.422-6.969-6.195-10.209-1.65 3.244-3.647 6.937-5.874 10.582l-44.712 72.147a15.999 15.999 0 0 1-13.6 7.572H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h26.325l56.552-82.709L46.111 256H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h68.806a16 16 0 0 1 13.645 7.644l39.882 65.126c2.072 3.523 4.053 7.171 5.727 10.37 1.777-3.244 3.92-6.954 6.237-10.537l40.332-65.035a16 16 0 0 1 13.598-7.567H272c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-27.979l-52.69 75.671L249.974 416H272z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/surprise.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/surprise.svg
    new file mode 100644
    index 00000000000..4df2bb1c822
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/surprise.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/swatchbook.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/swatchbook.svg
    new file mode 100644
    index 00000000000..133c4140e7a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/swatchbook.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511 512"><path d="M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/swimmer.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/swimmer.svg
    new file mode 100644
    index 00000000000..6a8cf7678a2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/swimmer.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/swimming-pool.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/swimming-pool.svg
    new file mode 100644
    index 00000000000..560ead90257
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/swimming-pool.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/synagogue.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/synagogue.svg
    new file mode 100644
    index 00000000000..ac4eaeb13eb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/synagogue.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sync-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sync-alt.svg
    new file mode 100644
    index 00000000000..74ae9cd222b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sync-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/sync.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/sync.svg
    new file mode 100644
    index 00000000000..64fcf55412d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/sync.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512.333 512"><path d="M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/syringe.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/syringe.svg
    new file mode 100644
    index 00000000000..e2fde2b11cf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/syringe.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/table-tennis.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/table-tennis.svg
    new file mode 100644
    index 00000000000..ea0b8ea7299
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/table-tennis.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/table.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/table.svg
    new file mode 100644
    index 00000000000..80d8ded82f8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/table.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tablet-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tablet-alt.svg
    new file mode 100644
    index 00000000000..be234ac52ab
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tablet-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tablet.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tablet.svg
    new file mode 100644
    index 00000000000..6eedcdc04c7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tablet.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tablets.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tablets.svg
    new file mode 100644
    index 00000000000..1b05d2b5180
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tablets.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tachometer-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tachometer-alt.svg
    new file mode 100644
    index 00000000000..776b90dd093
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tachometer-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tag.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tag.svg
    new file mode 100644
    index 00000000000..f0e5a9f6fc1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tag.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tags.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tags.svg
    new file mode 100644
    index 00000000000..f621fe59d98
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tags.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tape.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tape.svg
    new file mode 100644
    index 00000000000..b257d85ed07
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tape.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tasks.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tasks.svg
    new file mode 100644
    index 00000000000..f28e6202660
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tasks.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M208 132h288c8.8 0 16-7.2 16-16V76c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zm0 160h288c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16zM64 368c-26.5 0-48.6 21.5-48.6 48s22.1 48 48.6 48 48-21.5 48-48-21.5-48-48-48zm92.5-299l-72.2 72.2-15.6 15.6c-4.7 4.7-12.9 4.7-17.6 0L3.5 109.4c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.3c4.7-4.7 12.3-4.7 17 0l17 16.5c4.6 4.7 4.6 12.3-.1 17zm0 159.6l-72.2 72.2-15.7 15.7c-4.7 4.7-12.9 4.7-17.6 0L3.5 269c-4.7-4.7-4.7-12.3 0-17l15.7-15.7c4.7-4.7 12.3-4.7 17 0l22.7 22.1 63.7-63.7c4.7-4.7 12.3-4.7 17 0l17 17c4.6 4.6 4.6 12.2-.1 16.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/taxi.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/taxi.svg
    new file mode 100644
    index 00000000000..e1bb39e16ee
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/taxi.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/teeth-open.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/teeth-open.svg
    new file mode 100644
    index 00000000000..35879f3c741
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/teeth-open.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/teeth.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/teeth.svg
    new file mode 100644
    index 00000000000..210addeb269
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/teeth.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/terminal.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/terminal.svg
    new file mode 100644
    index 00000000000..1b06d043cbf
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/terminal.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/text-height.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/text-height.svg
    new file mode 100644
    index 00000000000..6bc853a4ea0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/text-height.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M16 32h288c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96h-54.761v320H232c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H88c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm475.308 4.685l79.995 80.001C581.309 126.693 574.297 144 559.99 144H512v224h48c15.639 0 20.635 17.991 11.313 27.314l-79.995 80.001c-6.247 6.247-16.381 6.245-22.626 0l-79.995-80.001C378.691 385.307 385.703 368 400.01 368H448V144h-48c-15.639 0-20.635-17.991-11.313-27.314l79.995-80.001c6.247-6.248 16.381-6.245 22.626 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/text-width.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/text-width.svg
    new file mode 100644
    index 00000000000..41bff31f3ec
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/text-width.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M16 32h416c8.837 0 16 7.163 16 16v96c0 8.837-7.163 16-16 16h-35.496c-8.837 0-16-7.163-16-16V96H261.743v128H296c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H152c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h34.257V96H67.496v48c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16V48c0-8.837 7.163-16 16-16zm427.315 340.682l-80.001-79.995C353.991 283.365 336 288.362 336 304v48H112v-47.99c0-14.307-17.307-21.319-27.314-11.313L4.685 372.692c-6.245 6.245-6.247 16.379 0 22.626l80.001 79.995C94.009 484.635 112 479.638 112 464v-48h224v47.99c0 14.307 17.307 21.319 27.314 11.313l80.001-79.995c6.245-6.245 6.248-16.379 0-22.626z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/th-large.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/th-large.svg
    new file mode 100644
    index 00000000000..9d42bde7d90
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/th-large.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/th-list.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/th-list.svg
    new file mode 100644
    index 00000000000..60e09e420d0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/th-list.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/th.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/th.svg
    new file mode 100644
    index 00000000000..0849355d61c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/th.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/theater-masks.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/theater-masks.svg
    new file mode 100644
    index 00000000000..f494f5d50d1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/theater-masks.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-empty.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-empty.svg
    new file mode 100644
    index 00000000000..44aaa42a005
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-empty.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-full.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-full.svg
    new file mode 100644
    index 00000000000..126215539ad
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-full.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-half.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-half.svg
    new file mode 100644
    index 00000000000..d3e09378a3b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-half.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-quarter.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-quarter.svg
    new file mode 100644
    index 00000000000..ee830421fbc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-quarter.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-three-quarters.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-three-quarters.svg
    new file mode 100644
    index 00000000000..dd37f8929ff
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer-three-quarters.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path d="M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer.svg
    new file mode 100644
    index 00000000000..53bef6c4a0d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/thermometer.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/thumbs-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/thumbs-down.svg
    new file mode 100644
    index 00000000000..fc151bead40
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/thumbs-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/thumbs-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/thumbs-up.svg
    new file mode 100644
    index 00000000000..ce615095f94
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/thumbs-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/thumbtack.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/thumbtack.svg
    new file mode 100644
    index 00000000000..953369b6ea1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/thumbtack.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/ticket-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/ticket-alt.svg
    new file mode 100644
    index 00000000000..819ea5887b8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/ticket-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/times-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/times-circle.svg
    new file mode 100644
    index 00000000000..b629d5f4c28
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/times-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/times.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/times.svg
    new file mode 100644
    index 00000000000..0bf6dadcea3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/times.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352 512"><path d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tint-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tint-slash.svg
    new file mode 100644
    index 00000000000..40494b9fd36
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tint-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tint.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tint.svg
    new file mode 100644
    index 00000000000..c392ea5b649
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tint.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352 512"><path d="M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tired.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tired.svg
    new file mode 100644
    index 00000000000..0b6389926f0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tired.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/toggle-off.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/toggle-off.svg
    new file mode 100644
    index 00000000000..51ca68f4950
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/toggle-off.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/toggle-on.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/toggle-on.svg
    new file mode 100644
    index 00000000000..661266f2f1c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/toggle-on.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M576 256c0 106.039-85.961 192-192 192H192C85.961 448 0 362.039 0 256S85.961 64 192 64h192c106.039 0 192 85.961 192 192zM384 128c-70.741 0-128 57.249-128 128 0 70.741 57.249 128 128 128 70.741 0 128-57.249 128-128 0-70.741-57.249-128-128-128"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/toilet-paper.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/toilet-paper.svg
    new file mode 100644
    index 00000000000..2d2f4c74b9b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/toilet-paper.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/toolbox.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/toolbox.svg
    new file mode 100644
    index 00000000000..2b32f4d98ee
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/toolbox.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tooth.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tooth.svg
    new file mode 100644
    index 00000000000..6431e9d92fd
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tooth.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/torah.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/torah.svg
    new file mode 100644
    index 00000000000..5e483529ffc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/torah.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM139.11 141.21c-2.77-4.41.4-10.14 5.6-10.14h53.08c.9 0 1.73-.46 2.21-1.22l34.4-54.76c2.6-4.13 8.61-4.13 11.21 0l34.4 54.76a2.61 2.61 0 0 0 2.21 1.22h53.08c5.2 0 8.37 5.73 5.6 10.14L314.01 184l26.88 42.79c2.77 4.4-.4 10.13-5.6 10.13h-53.08c-.9 0-1.73.46-2.21 1.22l-34.4 54.76c-2.6 4.13-8.61 4.13-11.21 0L200 238.15a2.61 2.61 0 0 0-2.21-1.22h-53.08c-5.2 0-8.37-5.73-5.6-10.13l26.88-42.8-26.88-42.79zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/torii-gate.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/torii-gate.svg
    new file mode 100644
    index 00000000000..2db2168cc52
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/torii-gate.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tractor.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tractor.svg
    new file mode 100644
    index 00000000000..7e20a9156f3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tractor.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/trademark.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/trademark.svg
    new file mode 100644
    index 00000000000..a5f54f6eb8d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/trademark.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M97.119 163.133H12c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h248.559c6.627 0 12 5.373 12 12v43.133c0 6.627-5.373 12-12 12H175.44V404c0 6.627-5.373 12-12 12h-54.322c-6.627 0-12-5.373-12-12V163.133zM329.825 96h65.425a12 12 0 0 1 11.346 8.093l43.759 127.068c7.161 20.588 16.111 52.812 16.111 52.812h.896s8.95-32.224 16.111-52.812l43.758-127.068A12 12 0 0 1 538.577 96h65.41a12 12 0 0 1 11.961 11.03l24.012 296c.567 6.987-4.951 12.97-11.961 12.97h-54.101a12 12 0 0 1-11.972-11.182l-9.082-132.93c-1.79-24.168 0-53.706 0-53.706h-.896s-10.741 33.566-17.902 53.706l-30.7 84.731a12 12 0 0 1-11.282 7.912h-50.302a12 12 0 0 1-11.282-7.912l-30.7-84.731c-7.161-20.14-17.903-53.706-17.903-53.706h-.895s1.79 29.538 0 53.706l-9.082 132.93c-.428 6.295-5.66 11.182-11.97 11.182H305.4c-7.017 0-12.536-5.994-11.959-12.987l24.425-296A11.999 11.999 0 0 1 329.825 96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/traffic-light.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/traffic-light.svg
    new file mode 100644
    index 00000000000..b3b43ac29e9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/traffic-light.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/train.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/train.svg
    new file mode 100644
    index 00000000000..632d11afb39
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/train.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/transgender-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/transgender-alt.svg
    new file mode 100644
    index 00000000000..a14d0249fbc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/transgender-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><path d="M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/transgender.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/transgender.svg
    new file mode 100644
    index 00000000000..6ca14e2320c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/transgender.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/trash-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/trash-alt.svg
    new file mode 100644
    index 00000000000..b955b55378c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/trash-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm416 56v324c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V140c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12zm-272 68c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208zm96 0c0-8.8-7.2-16-16-16s-16 7.2-16 16v224c0 8.8 7.2 16 16 16s16-7.2 16-16V208z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/trash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/trash.svg
    new file mode 100644
    index 00000000000..9ffe7422141
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/trash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 84V56c0-13.3 10.7-24 24-24h112l9.4-18.7c4-8.2 12.3-13.3 21.4-13.3h114.3c9.1 0 17.4 5.1 21.5 13.3L312 32h112c13.3 0 24 10.7 24 24v28c0 6.6-5.4 12-12 12H12C5.4 96 0 90.6 0 84zm415.2 56.7L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32.8 140.7c-.4-6.9 5.1-12.7 12-12.7h358.5c6.8 0 12.3 5.8 11.9 12.7z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tree.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tree.svg
    new file mode 100644
    index 00000000000..89c36a8b5c0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tree.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/trophy.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/trophy.svg
    new file mode 100644
    index 00000000000..c6f0deb906b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/trophy.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/truck-loading.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/truck-loading.svg
    new file mode 100644
    index 00000000000..1d295f35a66
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/truck-loading.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/truck-monster.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/truck-monster.svg
    new file mode 100644
    index 00000000000..2b16edd5321
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/truck-monster.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/truck-moving.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/truck-moving.svg
    new file mode 100644
    index 00000000000..95565b82d28
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/truck-moving.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/truck-pickup.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/truck-pickup.svg
    new file mode 100644
    index 00000000000..9aa51df70f5
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/truck-pickup.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/truck.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/truck.svg
    new file mode 100644
    index 00000000000..4fb9d9097cb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/truck.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tshirt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tshirt.svg
    new file mode 100644
    index 00000000000..a41f927437e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tshirt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tty.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tty.svg
    new file mode 100644
    index 00000000000..e7c8c669ea2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tty.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/tv.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/tv.svg
    new file mode 100644
    index 00000000000..309c9bb0080
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/tv.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/umbrella-beach.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/umbrella-beach.svg
    new file mode 100644
    index 00000000000..8132aa09a62
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/umbrella-beach.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/umbrella.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/umbrella.svg
    new file mode 100644
    index 00000000000..e9820b2a14a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/umbrella.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M557.011 267.631c-51.432-45.217-107.572-43.698-158.567 30.731-5.298 7.861-14.906 7.165-19.736 0-2.483-3.624-32.218-60.808-90.708-60.808-45.766 0-70.542 31.378-90.709 60.808-4.829 7.165-14.436 7.861-19.734 0-50.904-74.285-106.613-76.406-158.567-30.731-10.21 8.264-20.912-1.109-18.696-9.481C32.146 134.573 158.516 64.612 288.001 64.612c128.793 0 256.546 69.961 287.706 193.538 2.206 8.322-8.426 17.793-18.696 9.481zM256 261.001V416c0 17.645-14.355 32-32 32s-32-14.355-32-32c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 52.935 43.065 96 96 96s96-43.065 96-96V261.288c-21.836-10.806-45.425-9.737-64-.287zm64-211.007V32c0-17.673-14.327-32-32-32s-32 14.327-32 32v17.987a372.105 372.105 0 0 1 64 .007z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/underline.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/underline.svg
    new file mode 100644
    index 00000000000..b9278074fa0
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/underline.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224.264 388.24c-91.669 0-156.603-51.165-156.603-151.392V64H39.37c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h137.39c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.813v172.848c0 53.699 28.314 79.444 76.317 79.444 46.966 0 75.796-25.434 75.796-79.965V64h-28.291c-8.837 0-16-7.163-16-16V16c0-8.837 7.163-16 16-16h136.868c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16h-28.291v172.848c0 99.405-64.881 151.392-156.082 151.392zM16 448h416c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H16c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/undo-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/undo-alt.svg
    new file mode 100644
    index 00000000000..cc22d750e12
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/undo-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/undo.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/undo.svg
    new file mode 100644
    index 00000000000..9ae2271218d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/undo.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/universal-access.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/universal-access.svg
    new file mode 100644
    index 00000000000..2ad56358327
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/universal-access.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/university.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/university.svg
    new file mode 100644
    index 00000000000..7115a7d8475
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/university.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/unlink.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/unlink.svg
    new file mode 100644
    index 00000000000..28f7bd2b967
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/unlink.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/unlock-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/unlock-alt.svg
    new file mode 100644
    index 00000000000..9beedf2e8f9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/unlock-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/unlock.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/unlock.svg
    new file mode 100644
    index 00000000000..5fef208382f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/unlock.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/upload.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/upload.svg
    new file mode 100644
    index 00000000000..7a3d5397d0d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/upload.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-alt-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-alt-slash.svg
    new file mode 100644
    index 00000000000..bf0024cdf68
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-alt-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-alt.svg
    new file mode 100644
    index 00000000000..bef84b93991
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-astronaut.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-astronaut.svg
    new file mode 100644
    index 00000000000..d7739faf72a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-astronaut.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-check.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-check.svg
    new file mode 100644
    index 00000000000..b28f7abe5b6
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-check.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-circle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-circle.svg
    new file mode 100644
    index 00000000000..ac251f71777
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-circle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-clock.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-clock.svg
    new file mode 100644
    index 00000000000..65ce2e55de3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-clock.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-cog.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-cog.svg
    new file mode 100644
    index 00000000000..b6fd9e850f1
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-cog.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-edit.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-edit.svg
    new file mode 100644
    index 00000000000..1083c9d593f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-edit.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-friends.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-friends.svg
    new file mode 100644
    index 00000000000..6c19a88bf38
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-friends.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-graduate.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-graduate.svg
    new file mode 100644
    index 00000000000..4a124190533
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-graduate.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-injured.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-injured.svg
    new file mode 100644
    index 00000000000..1a55b99582e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-injured.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-lock.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-lock.svg
    new file mode 100644
    index 00000000000..1c820dfafa8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-lock.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M320 320c0-11.1 3.1-21.4 8.1-30.5-4.8-.5-9.5-1.5-14.5-1.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h280.9c-5.5-9.5-8.9-20.3-8.9-32V320zm-96-64c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm384 32h-32v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80v48h-32c-17.7 0-32 14.3-32 32v160c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32zm-80 0h-64v-48c0-17.6 14.4-32 32-32s32 14.4 32 32v48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-md.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-md.svg
    new file mode 100644
    index 00000000000..0ba8069fd7f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-md.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-minus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-minus.svg
    new file mode 100644
    index 00000000000..903ccba1462
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-minus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-ninja.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-ninja.svg
    new file mode 100644
    index 00000000000..a6c77f98553
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-ninja.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-plus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-plus.svg
    new file mode 100644
    index 00000000000..b74eddffbd7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-plus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-secret.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-secret.svg
    new file mode 100644
    index 00000000000..4246588fa68
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-secret.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-shield.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-shield.svg
    new file mode 100644
    index 00000000000..2dcc3d94841
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-shield.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-slash.svg
    new file mode 100644
    index 00000000000..d7ddec0a367
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-tag.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-tag.svg
    new file mode 100644
    index 00000000000..b3b6f92e49e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-tag.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-tie.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-tie.svg
    new file mode 100644
    index 00000000000..faa697289da
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-tie.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user-times.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user-times.svg
    new file mode 100644
    index 00000000000..1f09d4ece80
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user-times.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/user.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/user.svg
    new file mode 100644
    index 00000000000..02e7f2f32e4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/user.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/users-cog.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/users-cog.svg
    new file mode 100644
    index 00000000000..7ca83edce74
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/users-cog.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/users.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/users.svg
    new file mode 100644
    index 00000000000..839b31d140a
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/users.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/utensil-spoon.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/utensil-spoon.svg
    new file mode 100644
    index 00000000000..b9d98f4b42b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/utensil-spoon.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/utensils.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/utensils.svg
    new file mode 100644
    index 00000000000..40d26426abb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/utensils.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 416 512"><path d="M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/vector-square.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/vector-square.svg
    new file mode 100644
    index 00000000000..6697c0ee98b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/vector-square.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/venus-double.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/venus-double.svg
    new file mode 100644
    index 00000000000..5d49223b182
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/venus-double.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/venus-mars.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/venus-mars.svg
    new file mode 100644
    index 00000000000..63bfdfaea13
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/venus-mars.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/venus.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/venus.svg
    new file mode 100644
    index 00000000000..c70ba04d5b7
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/venus.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 288 512"><path d="M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/vial.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/vial.svg
    new file mode 100644
    index 00000000000..6d1b84177f9
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/vial.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><path d="M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/vials.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/vials.svg
    new file mode 100644
    index 00000000000..0ad1118529e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/vials.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/video-slash.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/video-slash.svg
    new file mode 100644
    index 00000000000..5e6b9f69d55
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/video-slash.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/video.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/video.svg
    new file mode 100644
    index 00000000000..4e2335111f8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/video.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/vihara.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/vihara.svg
    new file mode 100644
    index 00000000000..56c12f823de
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/vihara.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/volleyball-ball.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/volleyball-ball.svg
    new file mode 100644
    index 00000000000..4e775f5883e
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/volleyball-ball.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 495.9 512"><path d="M223.3 243.4c-.9-37-8.6-72.8-22.7-105.7-90.8 42.4-157.5 122.4-180.3 216.8 13.4 30.8 32.9 58.3 56.9 81.1 22.7-79.2 74.2-147.8 146.1-192.2zM186.4 109c-15-26.4-34.5-50.1-57.4-70.7C38 88.1-15.8 191.2 4 300.5c33.4-83.1 98.4-152 182.4-191.5zM374 274.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5 57.3 59.3 91 138.2 93.5 222.7 32.5 17.7 67.3 29 102.9 33.2zm-124.7 9.5c-31.6 19.3-58.7 43.9-80.2 72.6 82 57.3 184.5 75.1 277.5 47.8 19.7-26.4 34.2-56.8 42.2-89.9-26.6 6.6-53.7 10.4-80.9 10.4-54.6-.1-108.9-14.1-158.6-40.9zM151 383.3c-15.2 26-25.7 54.4-32.1 84.2 37.6 23 81.7 36.5 129.1 36.5 61 0 116.7-22.1 159.9-58.6C295 461.5 204.6 420.6 151 383.3zM331.3 22.7c55.3 70.4 82.5 161.2 74.6 253.6 30.3.2 60.5-4.8 89.7-14.2 0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/volume-down.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/volume-down.svg
    new file mode 100644
    index 00000000000..97f73f2bdff
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/volume-down.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/volume-mute.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/volume-mute.svg
    new file mode 100644
    index 00000000000..b5d87853e53
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/volume-mute.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/volume-off.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/volume-off.svg
    new file mode 100644
    index 00000000000..a98e13de841
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/volume-off.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 257.33 512"><path d="M216.36 71.04L127.39 160H25.33c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.47-25.96-31.98-40.97-16.98z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/volume-up.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/volume-up.svg
    new file mode 100644
    index 00000000000..58ddc834f99
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/volume-up.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/walking.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/walking.svg
    new file mode 100644
    index 00000000000..24187395303
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/walking.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/wallet.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/wallet.svg
    new file mode 100644
    index 00000000000..6bdcce741fc
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/wallet.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/warehouse.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/warehouse.svg
    new file mode 100644
    index 00000000000..6b0dfb8e268
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/warehouse.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/weight-hanging.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/weight-hanging.svg
    new file mode 100644
    index 00000000000..5795418c343
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/weight-hanging.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/weight.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/weight.svg
    new file mode 100644
    index 00000000000..bcacec2b1be
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/weight.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/wheelchair.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/wheelchair.svg
    new file mode 100644
    index 00000000000..35f7ddb5217
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/wheelchair.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/wifi.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/wifi.svg
    new file mode 100644
    index 00000000000..2b2ac20ad37
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/wifi.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/wind.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/wind.svg
    new file mode 100644
    index 00000000000..64dd2c904c4
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/wind.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M156.66 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h142.19c15.95 0 30.77 10.85 33.37 26.58C194.86 366.6 179.42 384 160 384c-14.11 0-26.13-9.19-30.37-21.9-2.11-6.31-8.6-10.1-15.25-10.1H81.63c-9.8 0-17.73 8.81-15.86 18.43C74.39 414.58 113.37 448 160 448c57.09 0 102.7-50.09 95.19-108.63-6.21-48.39-49.74-83.37-98.53-83.37zM16 224h336c59.7 0 106.83-54.76 93.83-116.69-7.61-36.23-36.91-65.53-73.14-73.14-55.44-11.64-105.13 24.91-114.93 75.53-1.86 9.57 6.09 18.3 15.84 18.3h32.8c6.65 0 13.14-3.79 15.25-10.1C325.88 105.19 337.89 96 352 96c19.42 0 34.86 17.39 31.55 37.41-2.6 15.73-17.42 26.59-33.37 26.59H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16zm384 32H243.68c19.34 16.57 33.19 38.79 39.77 64H400c26.47 0 48 21.53 48 48s-21.53 48-48 48c-17.86 0-33.33-9.86-41.56-24.38-2.85-5.03-8.69-7.62-14.47-7.62h-33.82c-10.91 0-18.96 10.81-15.35 21.1 17.77 50.6 70.54 84.75 129.41 72.35 41.22-8.69 75.1-41.65 84.67-82.68C525.98 321.46 470.48 256 400 256z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/window-close.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/window-close.svg
    new file mode 100644
    index 00000000000..3d870bbfa69
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/window-close.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/window-maximize.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/window-maximize.svg
    new file mode 100644
    index 00000000000..a668ac51f9c
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/window-maximize.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/window-minimize.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/window-minimize.svg
    new file mode 100644
    index 00000000000..b6228428e75
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/window-minimize.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/window-restore.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/window-restore.svg
    new file mode 100644
    index 00000000000..494f4a90410
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/window-restore.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/wine-bottle.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/wine-bottle.svg
    new file mode 100644
    index 00000000000..0ed5f9413e3
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/wine-bottle.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/wine-glass-alt.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/wine-glass-alt.svg
    new file mode 100644
    index 00000000000..c5fe6d92362
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/wine-glass-alt.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 288 512"><path d="M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/wine-glass.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/wine-glass.svg
    new file mode 100644
    index 00000000000..e890845a360
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/wine-glass.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 288 512"><path d="M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/won-sign.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/won-sign.svg
    new file mode 100644
    index 00000000000..d58147ff1e8
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/won-sign.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M564 192c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-48.028l18.572-80.61c1.732-7.518-3.978-14.694-11.693-14.694h-46.107a11.998 11.998 0 0 0-11.736 9.5L450.73 128H340.839l-19.725-85.987a12 12 0 0 0-11.696-9.317H265.43a12 12 0 0 0-11.687 9.277L233.696 128H124.975L107.5 42.299a12 12 0 0 0-11.758-9.602H53.628c-7.686 0-13.39 7.124-11.709 14.624L60 128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h62.342l7.171 32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h83.856l40.927 182.624A12 12 0 0 0 148.492 480h56.767c5.583 0 10.428-3.85 11.689-9.288L259.335 288h55.086l42.386 182.712A12 12 0 0 0 368.496 480h56.826a12 12 0 0 0 11.694-9.306L479.108 288H564c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-70.146l7.373-32H564zm-425.976 0h80.757l-7.457 32h-66.776l-6.524-32zm45.796 150.029c-6.194 25.831-6.758 47.25-7.321 47.25h-1.126s-1.689-22.05-6.758-47.25L157.599 288h38.812l-12.591 54.029zM274.182 224l1.996-8.602c1.856-7.962 3.457-15.968 4.803-23.398h11.794c1.347 7.43 2.947 15.436 4.803 23.398l1.996 8.602h-25.392zm130.959 118.029c-5.068 25.2-6.758 47.25-6.758 47.25h-1.126c-.563 0-1.126-21.42-7.321-47.25L377.542 288h39.107l-11.508 54.029zM430.281 224h-67.42l-7.34-32h81.577l-6.817 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/wrench.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/wrench.svg
    new file mode 100644
    index 00000000000..16e2197c50b
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/wrench.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/x-ray.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/x-ray.svg
    new file mode 100644
    index 00000000000..a13efa82155
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/x-ray.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/yen-sign.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/yen-sign.svg
    new file mode 100644
    index 00000000000..72fa59a5092
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/yen-sign.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M351.208 32h-65.277a12 12 0 0 0-10.778 6.724l-55.39 113.163c-14.513 34.704-27.133 71.932-27.133 71.932h-1.262s-12.62-37.228-27.133-71.932l-55.39-113.163A11.997 11.997 0 0 0 98.068 32H32.792c-9.057 0-14.85 9.65-10.59 17.643L102.322 200H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h88.162L152 293.228V320H44c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h108v92c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-92h108c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12H232v-26.772L251.838 256H340c6.627 0 12-5.373 12-12v-32c0-6.627-5.373-12-12-12h-58.322l80.12-150.357C366.058 41.65 360.266 32 351.208 32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/svgs/solid/yin-yang.svg b/htdocs/theme/common/fontawesome-5/svgs/solid/yin-yang.svg
    new file mode 100644
    index 00000000000..f34f69a8fbb
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/svgs/solid/yin-yang.svg
    @@ -0,0 +1,5 @@
    +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"/></svg>
    +<!--
    +Font Awesome Free 5.4.1 by @fontawesome - https://fontawesome.com
    +License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
    +-->
    \ No newline at end of file
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.eot b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.eot
    new file mode 100644
    index 00000000000..c3bbd1cee36
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.eot differ
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.svg b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.svg
    new file mode 100644
    index 00000000000..ae0b39eefe2
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.svg
    @@ -0,0 +1,1175 @@
    +<?xml version="1.0" standalone="no"?> 
    +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
    +<svg xmlns="http://www.w3.org/2000/svg">
    +<defs>
    +  <font id="fontawesome-free" horiz-adv-x="640.4">
    +    <font-face font-family="Font Awesome 5 Brands"
    +      units-per-em="512" ascent="448"
    +      descent="64"
    +      font-weight="400"
    +      font-style="Regular" />
    +    <missing-glyph horiz-adv-x="0" />
    +    <glyph glyph-name="500px"
    +      unicode="&#xF26E;"
    +      horiz-adv-x="448" d=" M103.3 103.7C96.8 117.9 96.4 122 110.7 126.8C136.3 134.8 118.7 117.6 153.9 77.6H154.2V171.5C155.4 221.7 198.2 263.7 251.9000000000001 263.7C305.8 263.7 349.6 220.2 349.6 166.9C349.6 103.5 288.8 53.7 221.1 73.6C210.6 77.8 219 105.3 229.6 102.2C282.6 102.2 319 112.3 319 166.6C319 227.6 241.9 256.2000000000001 202.1 211.2C178.6 184.8 184.5 169.1 184.5 53.6C235.2 22.6 302.8 31.6 344.9 73.7000000000001C369.7 98.5000000000001 383.4 131.7000000000001 383.4 166.7000000000001C383.4 201.9 369.6 234.9000000000001 344.6 260.0000000000001C319.8 284.8000000000001 286.8 298.5000000000001 251.3 298.5000000000001S182.5 284.7000000000001 157.8 260.0000000000001C157.5 259.7000000000001 141.8 243.5000000000001 136.6 236.1000000000001L136.1 235.5000000000001C132.8 230.8000000000001 129.8 226.4000000000001 116 229.4000000000001C109.1 231.1000000000001 101.7 235.2000000000001 101.7 241.2000000000001V428C101.7 433 105.6 438.5 112.2 438.5H353.5C361.8 438.5 361.8 426.9 361.8 423.4C361.8 419.5 361.8 408.3 353.5 408.3H130.3V275.4H130.6C234.8 385.2 413.4000000000001 311.4 413.4000000000001 166.5C413.4000000000001 -11.6 168.6 -53.8 103.3 103.7zM166.6 364.5C166.1 360.3 171.2 340 181.2 343.9C306 391.4 384 303.5 390.6 303.5C395.4000000000001 303.5 413.4000000000001 318.8 404.9000000000001 326.3C311.7000000000001 415.3 170.4 383.3 166.6 364.5zM393 33.3C283 -76.6 94 -27.5 61 137.5C61 149.7 30.6 144.9 32.1 134.2C56.1 -39.2 278.1 -122.7 413.7000000000001 12.9C420.6 20.7 401.1 41.3 393.0000000000001 33.3zM213.6 141.4C213.6 137.4 217.9 134.1 219.1 132.9C222.1 129.9 225.2 128.5 227.6 128.5C231.4 128.5 230.2 128.3 249.9 148C269.5 128.7 269 128.5 272.2 128.5C277.6 128.5 290.7 138.9 282.9 146.7L265.6 164L283.8 182.2C290.1 189 273.7 204 267.6 197.9L249.7 180C231.1 198.8 231.3 199.5 228.2 199.5C223.2 199.5 210.2 187.8 215.8 182.2L234 164C215.9 146.1 213.6 144.8 213.6 141.4z" />
    +    <glyph glyph-name="accessible-icon"
    +      unicode="&#xF368;"
    +      horiz-adv-x="448" d=" M423.9 192.2L411 34.9C407.7 -5.8 347.1 -0.2 350.4 39.8L360.4 162.3L319.3 160C329.4 139.3 335.1 116.1 335.1 91.4999999999999C335.1 50.3 319 12.8 292.8 -15.0000000000001L253.5 24.3C311.3999999999999 87.9999999999999 266.6 191.5 179.5 191.5C153.5999999999999 191.5 130 181.6 112.2999999999999 165.5L73 204.8C95 225.5 123.1 239.9 154.4 245L229.7 330.7L187.1 355.5L135.5 309.5C105.5 282.7 64.9 328 95 354.9L163 415.6C172.8 424.4000000000001 187.1 425.8 198.5 419.2C198.5 419.2 337.8 338.3 338 338.1C354.2 328 358.7 302.1 344.1 285.5L285.7 219L391.8 224.9C410.3 226 425.4 210.5 423.9 192.2zM359 346.2C387.1 346.2 409.9 369 409.9 397.1C409.9 425.2 387.1 448 359 448C330.9 448 308.1 425.2 308.1 397.1C308.1 369 330.9000000000001 346.2 359 346.2zM179.6 -8.5C99 -8.5 52.2 82.1 96.9 147.6L57.2 187.3C36.4 161 24 127.7 24 91.6C24 -39.1 174.7 -109.7999999999999 275.4 -30.9L235.7 8.8C219.7 -2.1 200.4 -8.5 179.6 -8.5z" />
    +    <glyph glyph-name="accusoft"
    +      unicode="&#xF369;"
    +      horiz-adv-x="640" d=" M482.2 75.9C476.5 82.8 250 373 242.3 382.5C228.6 399.7 242.3 399.3 261.5 399.4C271.2 399.5 367.8 400 378 400C402.1 400.1 406.7 399.4 416.4 387.2C418.5 384.5 621.5 141.4 623.5999999999999 138.9C629.0999999999999 132.2 638.8 119.8 630.8 115.5C628.4 114.2 516.1999999999999 67.8 513 66.6C502.9 62.6 495.5 59.8 482.2 75.9M596.9 81.5000000000001S481.9 31.1000000000001 479.4 29.9C463.4 22.6 452.5 33.1 442.7 44.5000000000001L385.6 118.5000000000001C380.2 119.4 325.2 128.1000000000001 320.3 127.8000000000001C317.2 127.6000000000001 310.7 127.0000000000001 305.9 124.9000000000001C301 122.8000000000001 160.7 72.1000000000001 155.7 70.2000000000001C150.6 68.2000000000001 144.3 66.6000000000001 144.6 62.6000000000001C144.8 60.1000000000001 146.6 60.0000000000001 149.2 59.1000000000001C151.9 58.3000000000001 450.1 -8.4999999999999 457.2 -9.9999999999999C472.8 -13.2999999999999 495.7 -20.4999999999999 510.8 -11.6999999999999C512.9 -10.4999999999999 634.6 64.7000000000002 636.6 66.1000000000001C642 70.1000000000001 640.9 72.9000000000002 634.9 74.3000000000001C632.6 74.6000000000001 610.3 79.0000000000001 596.9 81.5000000000001M270.9 262.8000000000002S258.9 261.2000000000002 245.9 247.7000000000002C236.9 238.4000000000001 3.8 8.6000000000001 2.5 6.8000000000001C-4.5 -3.1999999999999 4.1 1e-13 18.2 5.1000000000001C19 5.1000000000001 132.7 41.7000000000002 132.7 41.7000000000002C133.2 42.3000000000002 132.6 41.8000000000002 133.3 42.3000000000002C132.9 47.4000000000002 132.5 68.5000000000002 132.3 70.0000000000002C131.7 75.2000000000002 134.5 76.9000000000002 139.3 78.9000000000002L231.9 112.7000000000002C232.5 113.5000000000002 320.4 194.4000000000002 322.1 196.0000000000002V197.0000000000002L270.9 262.8000000000002" />
    +    <glyph glyph-name="acquisitions-incorporated"
    +      unicode="&#xF6AF;"
    +      horiz-adv-x="344.76" d=" M344 448C343.19 442.53 342.37 437.21 341.61 431.88C340.2200000000001 422.14 338.7100000000001 412.4 337.56 402.63C337.21 399.67 336.35 398.31 333.26 398.3C312.65 398.19 292.05 398.16 271.44 397.77C252.68 397.42 233.86 397.49 215.21 395.77C201.79 394.53 191.93 383.1 196.33 369.13C204.88 342.02 223.98 300.03 232.7 279.68C298.42 125.54 294.13 122.69 316.7000000000001 121.12C323.3700000000001 120.66 330.1 121.05 337.1300000000001 121.05C338.5200000000001 111.65 339.7900000000001 103.01 341.1800000000001 93.54H225.17V120.54C235.5 120.54 245.53 120.66 255.55 120.48C259.07 120.42 260.6 121.11 258.99 124.85C254.55 135.1400000000001 250.22 145.48 245.74 155.75C244.12 159.47 241.68 160.53 237.34 159.27C225.02 155.68 212.55 152.58 200.08 149.58C195.83 148.56 194.15 146.81 194.22 142.12C195.07 84.65 195.17 14.59 195.22 13C195.62 0.46 203.97 -8.41 216.25 -10.07C217.14 -10.19 229.14 -12.79 328.93 -12.63C337.18 -12.62 337.3400000000001 -12.46 338.5 -20.19C340.65 -34.53 342.64 -48.89 344.76 -63.72C-22.99 -63.72 190.83 -64.33 7.67 -63.72C3.72 -63.71 1.59 -63.03 2.39 -57.98C4.43 -45.12 5.89 -32.16 7.36 -19.22C7.91 -14.41 9.65 -12.41 14.99 -12.45C133.08 -13.4400000000001 129.92 -12.8000000000001 136.42 -10.0600000000001C145.84 -6.08 151.4 2.79 151.37 13.0099999999999C151.25 55.9399999999999 151.04 98.87 151.12 141.8C151.13 145.67 149.96 147.79 146.56 148.6399999999999C130.92 152.56 115.25 156.3499999999999 98.98 160.3399999999999C93.75 148.0699999999999 88.59 135.9699999999999 83.32 123.6399999999999C85.15 120.2899999999999 111.7 120.7099999999999 118.6 120.7099999999999V93.0699999999999H4.34C5.37 101.68 6.11 109.8799999999999 7.57 117.9499999999999C7.82 119.36 11.1 121.0899999999999 13.04 121.17C21.5 121.52 29.99 121.46 38.47 121.2599999999999C42.46 121.17 44.39 122.3 46.08 126.42C62.71 167.12 59.59 157.59 113.39 287.39C144.92 363.48 146.45 363.41 146.03 374.82C145.34 393.38 120.66 397.08 108.38 396.93C78.34 396.55 69.93 397.4 6.54 397.4C-0.62 441.89 2.37 429.46 0.16 442.68C-0.55 446.92 1.19 447.9700000000001 4.8 447.98M117.88 200.79C120.18 199.64 121.85 198.5 123.7 197.92C136.99 193.71 150.34 189.68 163.63 185.46C169.77 183.51 175.61 183.34 181.93 185.41C194.95 189.69 208.22 193.22 221.36 197.14C222.82 197.58 224.1 198.58 225.29 199.23C218.58 216.6 212.17 233.38 205.62 250.11C196.74 272.78 187.99 310.43 178.64 332.92C177.11 333.7 176.73 330.56 169.21 332.92C152.1 288.87 135.07 245.04 117.88 200.79z" />
    +    <glyph glyph-name="adn"
    +      unicode="&#xF170;"
    +      horiz-adv-x="496" d=" M248 280.5L312.9 181.7H183.1L248 280.5zM496 192C496 55.1 384.9 -56 248 -56S0 55.1 0 192S111.1 440 248 440S496 328.9 496 192zM396.2 109.3L248 332.5L99.8 109.3H130.2L163.8 161H332.4L366 109.3H396.2z" />
    +    <glyph glyph-name="adversal"
    +      unicode="&#xF36A;"
    +      horiz-adv-x="512" d=" M482.1 416H28.7C5.8 416 0 410.1 0 387.1V-3.1C0 -26.4 5.8 -32 28.7 -32H482.1C506.4999999999999 -32 511.9999999999999 -26.8 511.9999999999999 -2.3V385.8C511.9999999999999 410.4 506.6 416 482.1 416zM178.4 227.7C150.9 247.9 106.3 236.4 94.2 204.3C89.9 193.2 84.9 194.8 76.7 196C67 197.5 59.5 199.2 54.2 201.5C25.4 212.9 62.8 256.8 79.1 265.8C120.2 287.2 162.5 288 204.4 270.6C245.3 253.8 238.9 211.4 238.9 142.1C241.6 116.3 234.6 83.8 248.2 53.3C250.1 48.9 248.6 45.4 245.5 42.6C237.1 35.9 206.2 40.4 198.9 49.9999999999999C197 52.1999999999999 197.1 53.6 195 56.1999999999999C191.4 60.0999999999999 187.7 58.3999999999999 183.1 55.1999999999999C125.7 18.8 42.8 33.8 36.1 98.4999999999999C33 127.8 48.5 155.6 75.7 169.5C113.9 189 187.9 181.3 189.7 200.4C190.8 210.5999999999999 187.8 220.5 178.4 227.7zM465.1 5.7C465.1 -9.4 454 -4.2 447.3 -4.2H52.4C45 -4.2 34.2 -9 34.6 6.5C35 20.4 45.1 15.6 51.7 15.6C184 16 316.2 16 448.5 15.6C455.3 15.6 465.1 20 465.1 5.7zM468.9 346.2V55.2C468.9 49.5 468.2 41.3 460.8 41.3C448.4000000000001 41.7 433.3 34.2 424.7 46.9C418.9 55.6 416.9 50.9 412.3 48.1C358.9000000000001 18.4 284.2000000000001 41 267.9 133.3C261.8 166.7 267.2 200.4 283.6 233.3C295.4 257.2000000000001 340.5 309.4 419.7 263.8V334.8C419.7 361 419.5999999999999 361 445.7 361C448.8 361 452.3 360.6 455.3999999999999 361C465.4999999999999 361.8 468.9999999999999 356.6 468.9999999999999 346.7000000000001C468.8999999999999 346.5 468.8999999999999 346.4000000000001 468.8999999999999 346.2000000000001zM417.4000000000001 113.9C397.9000000000001 66.3 344.5 70.6 327.4000000000001 108.7C312.3 142 311.9000000000001 176.9 327.8 210.2C344.1 244.3 387.5 245.9 409.3 215C429.9000000000001 186.2 424.2 130.4 417.4000000000001 113.9zM122.6 78.6C115.1 79.9 89.6 81.9 88.9 106.4C88.5 120.3 96.7 129.4 108.7 132.2C133.1 138.1 158 142.1 182.4 146.9C191.3000000000001 148.9 189.8000000000001 142.5 190.2000000000001 137.4C191.6000000000001 104.4 164.1000000000001 78.2 122.6000000000001 78.6z" />
    +    <glyph glyph-name="affiliatetheme"
    +      unicode="&#xF36B;"
    +      horiz-adv-x="512" d=" M159.7 210.6C108.4 139.7 43.1 99.8 14 121.4C-15.2 143.1 2.8 218 54.2 288.9C105.5 359.8 170.8 399.7 199.9 378.1C229 356.5 211 281.5 159.7 210.6zM510.9 267.9C437.1 144.5 319 80.2 246.4 124.3C221.4 139.5 205.1 165.5 197.4 198.1C163.8 133.3 104.6 84.3 33.3 64.9C83.1 5.6 157.4 -32 240.3 -32C390.3 -32 511.9 91.1 511.9 242.9C512 251.4 511.6 259.7 510.9 267.9z" />
    +    <glyph glyph-name="algolia"
    +      unicode="&#xF36C;"
    +      horiz-adv-x="448" d=" M229.3 265.4C180 265.4 140.1 225.5 140.1 176.2C140.1 126.9 180 87 229.3 87S318.5 126.9 318.5 176.2C318.5 225.5 278.5 265.4 229.3 265.4zM292 208.8L233.1 178.2C231.3 177.3 229.3 178.6 229.3 180.5V247C229.3 248.5 230.6 249.7 232 249.6C258.2 248.6 280.9 233.9 293.1 212.5C293.8 211.2 293.3 209.5 292 208.8zM389.1 416H58.9C26.4 416 0 389.6 0 357.1V27C0 -5.6 26.4 -32 58.9 -32H389C421.6 -32 447.9 -5.6 447.9 26.9V357.1C448 389.6 421.6 416 389.1 416zM186.5 331.3C186.5 342.1 195.2 350.8 206 350.8H251.3C262.1 350.8 270.8 342.1 270.8 331.3V315.9C270.8 314.1 269.1 312.9 267.5 313.4C255.2 316.8 242.4 318.5 229.4 318.5C215.9 318.5 202.7 316.7 190 313C188.3 312.5 186.6 313.8 186.6 315.5V331.3zM102.1 294.3L111.3 303.5C118.9 311.1 131.2 311.1 138.8 303.5L146.5 295.8C147.6 294.7000000000001 147.5 292.8 146.2 291.8C140 287.3 134.1 282.4 128.6 276.9C123.2 271.5 118.2 265.6 113.8 259.5C112.8 258.2 110.9 258 109.8 259.2L102.1 266.9C94.5 274.4 94.5 286.7 102.1 294.3zM229.3 49.5C159.3 49.5 102.7 106.2 102.7 176.1S159.4 302.7000000000001 229.3 302.7000000000001C299.3 302.7000000000001 355.9 246.1 355.9 176.1C355.9 106.3 299.2 49.5 229.3 49.5z" />
    +    <glyph glyph-name="alipay"
    +      unicode="&#xF642;"
    +      horiz-adv-x="448" d=" M377.74 416H70.26C31.41 416 0 384.5900000000001 0 345.74V38.26C0 -0.59 31.41 -32 70.26 -32H377.74C416.26 -32 447.5 -0.92 448 37.6C402.04 63.22 337.41 97.9400000000001 276.4 126.04C244.33 82.0700000000001 192.26 45.04 127.78 45.04C57.19 45.04 34.05 90.34 30.74 121.41C26.77 160.42 45.62 202.91 130.26 202.91C165.64 202.91 209.61 192.66 257.39 177.9500000000001C273.92 208.0400000000001 283.84 238.2900000000001 283.84 238.2900000000001H105.64V254.9900000000001H197.72V286.23H88.28V305.24H197.72V355.66H248.64V305.24H358.08V286.23H248.63V254.99H337.4S322.19 208.37 299.05 164.07C347.98 147.37 399.06 128.03 447.67 111.33V345.74C447.83 384.43 416.43 416 377.74 416zM47.28 125.05C48.27 104.88 57.53 71.32 117.21 71.32C169.28 71.32 209.79 111 235.08 144.22C190.45 162.9 150.6 175.6300000000001 125.64 175.6300000000001C58.19 175.6300000000001 46.29 142.5700000000001 47.28 125.0500000000001z" />
    +    <glyph glyph-name="amazon-pay"
    +      unicode="&#xF42C;"
    +      horiz-adv-x="611.2" d=" M0 122.8C2.3 127 5.2 127.7 9.7 125.3C20.1 119.7 30.3 113.9 40.9 108.6C81.6 88.2000000000001 124.1 73 168.3 62.3C189.2 57.3 210.2 53.3 231.5 50.5C263 46.3 294.7 44.5 326.5 45.3C343.9 45.7 361.3 47.1 378.6 49.1C435 55.8 489.5 69.9 541.9000000000001 91.9C544.8000000000001 93.1 547.8000000000001 93.9 551.0000000000001 93.1C557.7000000000002 91.3 560.0000000000001 84.1 555.1000000000001 79.2000000000001C552.3000000000002 76.4 548.8000000000002 74.1 545.5000000000001 71.8000000000001C514.8000000000001 50.7 481.3000000000001 35.4000000000001 445.9000000000001 23.9000000000001C421.3000000000001 16.0000000000001 396.3000000000001 10.1000000000001 370.8000000000001 6.3000000000001C353.2000000000001 3.7 335.4000000000001 1.9000000000001 317.6000000000001 1.5000000000001C316.8000000000001 1.5000000000001 315.9000000000001 1.3000000000001 315.1000000000001 1.2H294C293.2 1.3000000000001 292.3 1.5000000000001 291.5 1.5000000000001C287.9 1.7 284.3 1.8000000000001 280.8 1.9C263.9000000000001 2.6 247.1 4.5000000000001 230.4 7.2C203 11.7 176.2 18.6 150 28.1C95.9 47.7 47.4 76.7000000000001 4.4 115.1C2.6 116.7000000000001 1.4 118.9 0 120.8V122.8zM158 383C156.6 382.8 155.1 382.6 153.7 382.4C139.7 380.7 127.1 375.5 115.7 367.3C113.3 365.6 111.1 363.8 108.6 361.9C108.4 362.4 108.2 362.9 108.2 363.3C107.8 366 107.4 368.8 106.9 371.5C106.2 376.1 103.9 378.1 99.3 378.1H87.8C80.9 378.1 79.6 376.8 79.6 369.9V160.6C79.6 159.6 79.6 158.6 79.7 157.6C79.9 154.6 81.7 152.7000000000001 84.6 152.6C91.6 152.5 98.7 152.5 105.7 152.6C108.6 152.6 110.4 154.6 110.7 157.6C110.8 158.6 110.8 159.6 110.8 160.6V233C111.9 232.1 112.5 231.6 113 231.1C130.9 216.2 151.5 211.3 174 215.7C194.4 219.7 208.6 232.2 217.8 250.6C224.8 264.5 227.7 279.3 228.1 294.7C228.6 311.8 226.9000000000001 328.6 220 344.5C211.5 364.1 197.4 377 176.1 381.4C172.9 382.1 169.6 382.4 166.3 382.9C163.5 383 160.8 383 158 383zM110.6 341.1C110.6 342.6 111 343.5 112.3 344.4C126 353.9 141.1 358.9 157.9 357.6C172.8 356.5 185 349.2 191.4 331.7C195.3 321 196.3 309.9 196.3 298.7C196.3 288.3 195.5 278.1 192.3 268.1C185.5 246.8 169.9 238.7 149.7 239.6C135.7 240.2 123.5 245.6 112.3 253.5C111.1 254.4 110.6 255.2 110.6 256.8C110.7 270.9 110.6 284.9 110.6 299C110.6 313 110.7 327 110.6 341.1zM316.3 383C315.3 382.9 314.3 382.7 313.4000000000001 382.6C303.6 382.1 294.0000000000001 380.9 284.5000000000001 378.5C278.4000000000001 376.9 272.5000000000001 374.7 266.6000000000001 372.7C263.0000000000001 371.5 261.2000000000001 368.9 261.3000000000001 365C261.4000000000001 361.7 261.2000000000001 358.4 261.3000000000001 355.1C261.4000000000001 350.3 263.4000000000001 349 268.1000000000001 350.2C275.9000000000001 352.2 283.7000000000001 354.4 291.6000000000001 355.9C303.9000000000001 358.2 316.3000000000001 359.2 328.8000000000001 357.3C335.3000000000001 356.3 341.4000000000001 354.4 345.6000000000001 348.9C349.3000000000001 344.1 350.7000000000001 338.4 350.9000000000001 332.5C351.2000000000001 324.2 351.1000000000001 315.9 351.2000000000001 307.6C351.2000000000001 307.2 351.1000000000001 306.7 351.0000000000001 306.2C350.5000000000001 306.3 350.1000000000002 306.2 349.7000000000001 306.3C339.2000000000001 308.8 328.6000000000001 310.6 317.7000000000001 311.2C306.4000000000001 311.8 295.2000000000001 311.1 284.4000000000001 307.3C271.5000000000001 302.8 261.1000000000001 295 255.0000000000001 282.4C250.3000000000001 272.6 249.6000000000001 262.2 251.1000000000001 251.7C253.1000000000001 237.7 260.1000000000001 226.9 272.5000000000001 220C284.4000000000001 213.4 297.3000000000001 212.6 310.4000000000001 214.6C325.5000000000001 216.9 338.9000000000001 223.3 350.7000000000001 233C351.1 233.4 351.6 233.7 352.3000000000001 234.1C352.9000000000001 230.3 353.4000000000001 226.7 354.1000000000001 223.1C354.7000000000001 220 356.6000000000001 218 359.5000000000001 217.9C364.9000000000001 217.8 370.4000000000001 217.8 375.8000000000001 217.9C378.5000000000001 218 380.3000000000001 219.8 380.6000000000001 222.6C380.7000000000001 223.5 380.7000000000001 224.5 380.7000000000001 225.4V331.4C380.7000000000001 335.7 380.5000000000001 340 379.8000000000002 344.3C377.9000000000002 357.2000000000001 372.4000000000002 367.8 360.8000000000002 374.7000000000001C354.1000000000002 378.7000000000001 346.7000000000001 380.7000000000001 339.0000000000001 381.8C335.4000000000001 382.3 331.8000000000002 382.6 328.2000000000001 383.1C324.3000000000002 383 320.3000000000002 383 316.3000000000002 383zM351.3 255.3C351.3 254 350.9000000000001 253.1 349.8 252.3C338.6 244.2 326.3 238.8 312.4000000000001 237.4C306.7000000000001 236.8 301.0000000000001 237 295.6 239.2C289.3 241.7 285.2000000000001 246.1 283.2000000000001 252.5000000000001S281.2000000000001 265.5 283.1 271.9000000000001C285.6 280.2000000000001 291.5 284.9000000000001 299.5 287.5C307.6 290.1 316 290.5 324.3 289.7000000000001C332.7 289 340.9000000000001 287.4 349.3 286.3C350.9000000000001 286.1 351.4000000000001 285.3 351.4000000000001 283.7000000000001C351.3 278.9 351.4000000000001 274.2000000000001 351.4000000000001 269.4C351.3 264.7000000000001 351.2000000000001 260 351.3 255.3zM611.2 125.9C610.2 130.9 606.4000000000001 132.8 602.1 134.2C595.3000000000001 136.5 588.2 137.5 581.1 138.1C568 139.2 554.9 138.6 541.9 136.2C527.6 133.5 514 128.9 501.9 120.6C500.5 119.6 499.1 118.5 498.2 117.1C497.5 116 497.3 114.3 497.7 113.1C498.1 111.6 499.8 111.2 501.3 111.3C502 111.3 502.8 111.3 503.5 111.4C511.3 112.2 519 113.1 526.8 113.9C538.1999999999999 115 549.6999999999999 115.7 561.0999999999999 114.8C565.8999999999999 114.5 570.8 113.4 575.4999999999999 112.1C580.5999999999999 110.7 582.8999999999999 106.9 583.0999999999999 101.7C583.4999999999999 93.7 581.6999999999999 86 579.5999999999999 78.4C575.4999999999999 63 569.5999999999999 48.1 563.8 33.3C563.4 32.3 563 31.3 562.8 30.3C562.3 27.4 564 25.4999999999999 566.9 26.1999999999999C568.6 26.5999999999999 570.5 27.4999999999999 571.6999999999999 28.6999999999999C576.0999999999999 32.9999999999999 580.5999999999999 37.3 584.4 42.0999999999999C597.1999999999999 58.4999999999999 604.6999999999999 77.3999999999999 609.1 97.6999999999999C609.9 101.3 610.5 104.9999999999999 611.2 108.5999999999999V125.8999999999999zM479.1 249.1C466.2 284.8 453.3 320.6 440.4000000000001 356.3C438.4000000000001 362 436.2000000000001 367.6 434.1 373.2C433 376.1 430.9000000000001 378 427.7000000000001 378C420.1 378.1 412.5000000000001 378.2 404.8000000000001 378.1C402.3000000000001 378.1 401.1000000000001 376.1 401.6000000000001 373.6C402.1000000000001 371.5 402.7000000000001 369.5 403.5000000000001 367.5C423.1000000000001 319 442.8000000000001 270.4 462.6000000000001 222C464.3000000000001 217.9 464.7000000000001 214.4 462.8000000000001 210.2C459.5000000000001 202.9 456.9000000000001 195.2 453.5000000000001 187.9C450.5000000000001 181.4 445.5000000000001 176.5 438.3000000000001 174.6C433.2000000000001 173.2 428.1000000000001 173 422.9000000000001 173.5C420.4000000000001 173.6999999999999 417.9000000000001 174.3 415.4000000000001 174.5C412.0000000000001 174.6999999999999 410.3000000000001 173.1999999999999 410.2000000000001 169.6999999999999C410.1000000000001 166.3999999999999 410.1000000000001 163.0999999999999 410.2000000000001 159.8C410.3000000000002 154.3 412.2000000000001 151.8 417.6000000000001 150.9C423.2000000000001 149.9 428.9000000000001 149 434.5000000000001 148.9C451.6000000000001 148.5 465.2 155.4 474.0000000000001 170.3C477.5000000000001 176.1999999999999 480.7 182.4 483.2 188.6999999999999C506.9 248.5 530.3000000000001 308.3999999999999 553.8000000000001 368.3C554.5000000000001 370.0999999999999 555.1 371.8999999999999 555.4000000000001 373.8C555.8000000000001 376.5999999999999 554.5000000000001 378.2 551.7 378.2C545.1 378.3 538.4000000000001 378.2 531.8000000000001 378.2C528.1 378.2 525.5000000000001 376.5999999999999 524.1 373C523.6 371.5999999999999 523 370.3 522.5 368.8999999999999C510.9 335.5999999999999 499.3 302.3 487.7 268.8999999999999C485.2 261.7 482.6 254.3999999999999 480 246.7C479.6 247.8 479.4 248.3999999999999 479.1 249.1z" />
    +    <glyph glyph-name="amazon"
    +      unicode="&#xF270;"
    +      horiz-adv-x="448" d=" M257.2 285.3C208.5 283.5 87.7 269.8 87.7 167.8C87.7 58.3 226 53.8 271.2 124.6C277.7 114.4 306.6 87.1 316.5 77.8L373.3 133.8S341 159.1 341 186.6V333.7C341 359 316.5 416 228.7 416C140.7 416 94 361 94 311.7L167.5 304.9C183.8 354.4 221.7 354.4 221.7 354.4C262.4 354.5 257.2 324.6 257.2 285.3zM257.2 198.5C257.2 118.5 173 130.5 173 181.3C173 228.5 223.5 238 257.2 239.1V198.5zM393.2 35C385.5 25 323.2 -32 218.7 -32S34.2 39.5 9.7 69C2.9 76.7 10.7 80.3 15.2 77.3C88.5 32.8 203 -40.5 387.7 47C395.2 50.7 401 45 393.2 35zM433 32.8C426.5 17 417 6 411.8 1.8C406.3 -2.7 402.3 -0.9 405.3 5.6S424.6 52.1 418 60.6C411.5 68.9 381 64.9 370 63.8C359.2 62.8 357 61.8 356 64.1C353.7 69.8 377.7 79.6 393.5 81.6C409.2 83.4 434.5 82.4 439.5 75.9C443.2 70.8 439.5 48.8 433 32.8z" />
    +    <glyph glyph-name="amilia"
    +      unicode="&#xF36D;"
    +      horiz-adv-x="448" d=" M240.1 416C178.2 416 108.6 399.1 55.9 360.6C50.8 357.5 46.8 351.4 48.7 341.2C49.8 336.1 53.8 313.8 58.9 301.6C63 291.4 73.1 291.4 79.2 295.5C111.7 317.8 175.7 343.2 231.5 343.2C289.4 343.2 290.4 314.8 290.4 270.1V231.6C203 220.3 78.2 197 46.7 183.8C11.2 167.5 16.3 90.3 16.3 72S31.5 -32 141.2 -32C189 -32 254.9000000000001 -11.3 294.5 10.1V-15.3C294.5 -18.3 296.6 -23.4999999999999 300.6 -24.4C303.7000000000001 -25.4 351.3 -26.4 360.5 -26.4S423 -26.7 427 -25.7C431.1 -24.7 432.1 -19.6 432.1 -16.6V280C432 360.3 374.2000000000001 416 240.1 416zM152.2 88.3C152.2 100.5 149.2 131 170.5 141.2C194.8 154.4 245.6 170.6 290.3 174.7V68C268.9000000000001 54.8 241.6 43.6 211.2 43.6C158.4 43.6 152.3 77.1 152.2 88.3" />
    +    <glyph glyph-name="android"
    +      unicode="&#xF17B;"
    +      horiz-adv-x="448" d=" M89.6 243.5V127.7C89.6 112.3 77.5 100 62.1 100C46.8 100 32 112.4 32 127.7V243.5C32 258.6 46.8 271 62.1 271C77.2 271 89.6 258.6 89.6 243.5zM100.4 86.5C100.4 70.1 113.6 56.9 130 56.9H149.9L150.2 -4.2C150.2 -41.1 205.4 -40.8000000000001 205.4 -4.2V56.9H242.6V-4.2C242.6 -40.9 298.1 -41.0000000000001 298.1 -4.2V56.9H318.3C334.5 56.9 347.7 70.1 347.7 86.5V265.9H100.4V86.5zM348.4 275.6H99.3C99.3 318.4 124.9 355.6 162.9 375L143.8 410.3C141 415.2 148.1 418.3 150.5 414.1L169.9 378.5C204.8 394 244.9 393.2 278.2 378.5L297.5 414C300 418.3 307 415.1 304.2 410.2L285.1 375C322.8 355.6 348.4000000000001 318.4 348.4000000000001 275.6zM177.7 331.1C177.7 336.8 173.1 341.6 167.2 341.6C161.5 341.6 157 336.8 157 331.1S161.6 320.6 167.2 320.6C173.1 320.6 177.7 325.4 177.7 331.1zM291.1 331.1C291.1 336.8 286.5 341.6 280.9000000000001 341.6C275.0000000000001 341.6 270.4000000000001 336.8 270.4000000000001 331.1S275.0000000000001 320.6 280.9000000000001 320.6C286.5000000000001 320.6 291.1 325.4 291.1 331.1zM385.9000000000001 271C370.8 271 358.4000000000001 258.9 358.4000000000001 243.5V127.7C358.4000000000001 112.3 370.8 100 385.9000000000001 100C401.3 100 416.0000000000001 112.4 416.0000000000001 127.7V243.5C416.0000000000001 258.9 401.2000000000001 271 385.9000000000001 271z" />
    +    <glyph glyph-name="angellist"
    +      unicode="&#xF209;"
    +      horiz-adv-x="448" d=" M347.1 232.6C358.8 265.2 392.5 359.5 392.5 389.7C392.5 416.3 376.8 438.6 348.8 438.6C304.2 438.6 264.2000000000001 306.9 251.7 275.5C242 304 196.6 448 156.6 448C125.5 448 110.9 425.1 110.9 396.3C110.9 361 145.1 269.5 157.5 234.3C151.2 236.6 144.4 238.6 137.5 238.6C114.1 238.6 89.2 209.5 89.2 186C89.2 177.1 94.1 164.6 97.2 156.3C60.3 146.3 46.1 121.7 46.1 84.6C46 12.4 114.4 -64 210.6 -64C328.6 -64 402 24.6 402 138.9C402 182 395.1 220.9 347.1 232.6zM311.7 340C315.7 352.3 332.8 404.3 348.8 404.3C357.4000000000001 404.3 359.7 395.4 359.7 388.3C359.7 369.2 321.1 263.7 312.6 240.3L278.6 246.3L311.7 340zM142.3 399.7C142.3 411.6 156.8 445.4 188.6 352.6L223.2 252.3C207.6 253.6 195.5 255.3 187.8 250.9C176.9 279.7000000000001 142.3 370.6 142.3 399.7000000000001zM140 204C169.3 204 207.1 109.4 207.1 96.6C207.1 91.5 202.2 85.2000000000001 196.5 85.2000000000001C175.6 85.2000000000001 119.6 162.1 119.6 182.9C119.7 190.6 132.3 204 140 204zM324.3 17.7C295.2 -14.3 258 -30.9 214.6 -30.9C155.2 -30.9 108.3 1.7 85.7 57.4C68.6 100.8 89.5 125.7 106.3 125.7C117.7 125.7 160.6 65.4 160.6 52.6C160.6 47.7 152.9 44.3 148.9 44.3C132.8000000000001 44.3 126.5 59.8 97.8 95.7C68.1 66 118.3000000000001 8.8 156.1 8.8C182.2 8.8 199.2 32.9999999999999 194.1 50.8C197.8 50.8 202.4 50.4999999999999 205.8 51.4C206.9 24.3 214.9 -8 247.5 -10.3C247.5 -9.4 249.5 -3.2 249.5 -2.9C249.5 14.4999999999999 238.9 29.7 238.9 47.4C238.9 75.7 260.6 103.1 282.6 119.1C290.6 125.1 300.3 128.8 309.7000000000001 132.2C319.4000000000001 135.9 329.7000000000001 140.2 337.1 147.6C336 158.8 331.4000000000001 168.7 320.2000000000001 168.7C292.5000000000001 168.7 199.6000000000001 164.7 199.6000000000001 208.4C199.6000000000001 215.1 199.7000000000001 221.5 217.0000000000001 221.5C249.3000000000001 221.5 331.3000000000001 213.5 355.3000000000001 192.4C373.4000000000001 176.3 379.6000000000001 79.2 324.3000000000001 17.7zM225.7 143.7C235.4 140.6 245.4 139.7 255.4 137.7C248 132.3 241.4 125.7 235.1 118.6C232.3 127.1 228.9 135.4 225.7 143.7z" />
    +    <glyph glyph-name="angrycreative"
    +      unicode="&#xF36E;"
    +      horiz-adv-x="640" d=" M640 209.8L636.8 181.6L602.3 179.3L600.3 161.2L634.8 163.5L631.5999999999999 135.3L597.1999999999999 133.1L594.9 113L629.3 115.2L626.3 89.1L561.5999999999999 84.9999999999999L574.3 198.1999999999999L527 82.8L495.1 80.8L471.3 198.6L501.6 200.6L515.2 121.2000000000001L546.9000000000001 203.6000000000001L640.0000000000001 209.8000000000001zM426.8 76.5L455.1 78.3L468 198.4L439.6 196.5L426.8 76.5zM162 59.9L142.6 95.9L139.1 58.5L110.9 56.8L113.6 85.9C102.6 67.9 81.6 51.6 56.7 50.1C23.9 48.1 -3 71 0.3 108.3C2.9 137.6 27 171.1 67.8 173.7000000000001C105.5 176.1 115.4 150.5000000000001 119.1 144.9L121.9 175.7000000000001L160.8 178.2000000000001C180.9 179.5000000000001 199.5 174.5000000000001 203.3 154.5000000000001L205.9 181.1000000000001L270.7 185.3000000000001L268 157.4000000000001L231.6 155.0000000000001L229.9 137.1000000000001L266.3 139.4000000000002L263.6 111.5000000000002L227.2 109.2000000000002L225.3 89.3000000000002L261.6 91.6000000000002L259.5 70.8000000000002L314.5 188.0000000000002L338.3 189.6000000000002L370.4 79L379.3 164.6L357 163.2000000000001L359.8999999999999 191.1L434.8999999999999 196L431.8999999999999 168L407.5999999999999 166.4L397.8999999999999 74.5L339.8999999999999 70.8L335.5999999999999 86.4L296.2 83.9L288.2 67.6L162 59.9zM117.7 130.1L91.3 128.4C84.6 140.8 76.9 145 65 144.2C46 143 31.7 126.7 30.4 110.9C29 94.9 37.7 78.4 59.1 79.7C71.9 80.5 80.4 88.3 88 98.6L115 100.3L117.7 130.1zM173.8 137.8C175 150.6999999999999 166.2 151.4 147.7 150.1999999999999L145 121.6999999999999C159.2 122.5999999999999 172.5 123.8 173.8000000000001 137.8zM194.9 66.9999999999999L200.7 127C195.7 113.5 186 105.8999999999999 172.8 100.3999999999999L194.9 66.9999999999999zM330.3 111.9999999999999L322.4000000000001 149.8L306.6 110.4999999999999L330.3 111.9999999999999zM160.2 186.5999999999999L155.9 204.0999999999999L116.3 201.4999999999999L108.2 183.2999999999999L76.3 181.1999999999999L133.3 303.0999999999999L157.2 304.6999999999999L187.9 202.6999999999999L197.8 307.3999999999999L224.8 309.1999999999999L262.6 245.5999999999999L269.1 312.1999999999999L297.6 314.0999999999999L293.6 272.8999999999999C301 286.3999999999999 316.5 317.5999999999999 357.2000000000001 320.3999999999999C397.7000000000001 323.1999999999999 409.6 291.0999999999999 410.6 290.0999999999999L413.9000000000001 322.0999999999999L453.2 324.7999999999999C465.9 325.6999999999999 481.0000000000001 324.4999999999999 489.5000000000001 315.0999999999999L485.1000000000001 326.9999999999999L517.3000000000001 329.1999999999999L530.2 285.9999999999999L553.2 331.6999999999999L584.2 333.8999999999999L540.6 255.4999999999999L535.8000000000001 211.1999999999999L507.4000000000001 209.2999999999999L512.2 253.5999999999999L496.4 296.5999999999999C497.4 274.2999999999999 487.2 256.4999999999999 464.4 246.9999999999999L489.6 208.1999999999999L453.2 205.7999999999999L434.0000000000001 242.5999999999999L430.0000000000001 204.2999999999999L401.6000000000001 202.3999999999998L404.9000000000001 233.8999999999999C398.2000000000001 224.5999999999998 385.2000000000001 198.4999999999998 345.3000000000001 195.8999999999998C319.1000000000001 194.1999999999999 299.7000000000001 206.1999999999999 289.9000000000001 235.0999999999999L285.9000000000001 194.7999999999999L260.9000000000001 193.1999999999999L223.3000000000001 256.4999999999999L217.0000000000001 190.2999999999999L160.2000000000001 186.5999999999999zM436.8000000000001 268.7C447.0000000000001 269.3999999999999 454.3000000000001 270.7999999999999 458.4000000000001 272.9999999999999C462.9000000000001 275.3999999999999 465.4000000000001 279.3999999999999 466.0000000000001 285.0999999999999C466.6000000000001 290.3999999999999 465.4000000000001 293.8999999999999 462.6000000000001 295.4999999999999C459.0000000000001 297.5999999999999 452.0000000000001 298.3 439.7000000000002 297.4999999999999L436.8000000000002 268.7zM327.7 234C333.3 228.1 340.4 225.5 349 226.1C353.7 226.4 358.1 227.9 362.3 230.2C367.8 233.2 372.9000000000001 238.2 377.4000000000001 244.5L343.2000000000001 242.2L345.6 266.1L408.7000000000001 270.4L409.9000000000001 282.4L378.7000000000001 280.3C374.6 284 370.9000000000001 286.9 367.6 288.4C363.6 290.1 359.5 291.2000000000001 355.4000000000001 290.9C347.4000000000001 290.4 340.1 287.3 333.4000000000001 281.7000000000001C325.7000000000001 275.3 321.4000000000001 267.2000000000001 320.5000000000001 257.3C319.4000000000001 247.7 321.9000000000001 240 327.7000000000001 234zM126.4 225.8L150.2 227.4L141.9 265L126.4 225.8z" />
    +    <glyph glyph-name="angular"
    +      unicode="&#xF420;"
    +      horiz-adv-x="415.6" d=" M169.7 179.9H245.9L207.8 271.5L169.7 179.9zM207.8 416L0 341.6L31.8 65.9L207.8 -32L383.8 65.9L415.6 341.6L207.8 416zM338 74.2H289.4L263.2 139.6H152.6L126.4 74.2000000000001H77.7L207.8 366.5L338 74.2z" />
    +    <glyph glyph-name="app-store-ios"
    +      unicode="&#xF370;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM127 63.5C121.5 53.9 109.2 50.7 99.7 56.2C90.1 61.7 86.9 74 92.4 83.5L106.7 108.2C122.8 113.1 136 109.3 146.3 96.8L127 63.5zM265.9 117.4H84C73 117.4 64 126.4 64 137.4S73 157.4 84 157.4H135L200.4 270.6L179.9 306C174.4 315.6 177.7 327.8 187.2 333.3C196.8 338.8 209 335.5 214.5 326L223.4 310.6L232.3000000000001 326C237.8000000000001 335.6 250.1000000000001 338.8 259.6 333.3C269.2000000000001 327.8 272.4000000000001 315.5 266.9000000000001 306L181.1 157.4H243.2C263.4000000000001 157.4 274.7000000000001 133.7 265.9000000000001 117.4zM364 117.4H335L354.6 83.5C360.1 73.9 356.8 61.7 347.3 56.2C337.7 50.7 325.5 54 320 63.5C287.1 120.4 262.5 163.2 246 191.6C229.3 220.6 241.2 249.6 253.1 259.4000000000001C266.2 236.7000000000001 285.8 202.7000000000001 312 157.4H364C375 157.4 384 148.4 384 137.4C384 126.3 375 117.4 364 117.4z" />
    +    <glyph glyph-name="app-store"
    +      unicode="&#xF36F;"
    +      horiz-adv-x="512" d=" M255.9 327.1L265 342.8C270.6 352.6 283.1 355.9 292.9 350.3C302.7 344.7 306 332.2 300.4 322.4L212.9 170.9H276.2C296.7 170.9 308.2 146.8 299.3 130.1H113.8C102.5 130.1 93.4 139.2 93.4 150.5C93.4 161.8 102.5 170.8999999999999 113.8 170.8999999999999H165.8L232.4 286.3L211.6 322.3999999999999C206 332.2 209.3 344.5999999999999 219.1 350.3C228.9 355.8999999999999 241.3 352.5999999999999 247 342.8L255.9 327.0999999999999zM177.2 109.1L157.6 75.1C152 65.3 139.5 62 129.7 67.6C119.9 73.2000000000001 116.6 85.7000000000001 122.2 95.5L136.8 120.7C153.2 125.8 166.6 121.9 177.2 109.1zM346.1 170.8H399.2000000000001C410.5000000000001 170.8 419.6 161.7 419.6 150.4C419.6 139.1 410.5 130.0000000000001 399.2000000000001 130.0000000000001H369.7000000000001L389.6 95.5000000000001C395.2000000000001 85.7000000000001 391.9000000000001 73.3000000000001 382.1 67.6000000000001C372.3 62.0000000000001 359.9000000000001 65.3000000000001 354.2000000000001 75.1000000000001C320.7000000000001 133.2000000000001 295.5000000000001 176.7000000000001 278.8000000000001 205.7000000000001C261.7000000000001 235.2000000000001 273.9000000000001 264.8000000000001 286.0000000000001 274.8000000000001C299.4000000000001 251.8000000000001 319.4000000000001 217.1000000000001 346.1000000000001 170.8000000000001zM256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM472 192C472 73.3 375.9 -24 256 -24C137.3 -24 40 72.1 40 192C40 310.7 136.1 408 256 408C374.7 408 472 311.9 472 192z" />
    +    <glyph glyph-name="apper"
    +      unicode="&#xF371;"
    +      horiz-adv-x="640" d=" M42.1 208.9C64.3 208.9 71.1 206.1 75.6 194.3H76.4V217.2C76.4 228.5000000000001 71.6 232.6 58.5 232.6C47.2 232.6 44.1 230.1 43.4 219.8H4.8C5.1 233.7 6.3 238.9 10.6 244.2C17.9 253 29.5 256 56.7 256C89.7 256 103.8 251 110.6 237.1C112.6 232.8 114.6 221.5 114.6 213.4V137.1H76.3L77.6 156.2000000000001H76.6C71.3 140.6 63 135.8000000000001 41.1 135.8000000000001C10.8 135.8000000000001 0 145.9000000000001 0 173.1000000000001C0 198.3000000000001 12.3 208.9000000000001 42.1 208.9000000000001zM59.2 160.8C72.3 160.8 76.1 163.8 76.1 174.2C76.1 183.3 71.8 185.8 56.5 185.8C43.4 185.8 38.6 182.8 38.6 173.7C38.5 163.3 42.3 160.8 59.2 160.8zM137 255.7H175.3L173.8 235.1H174.6C183.7 252.2 190.5 256 212.1 256C226.5000000000001 256 236.8 253.0000000000001 243.6 246.9000000000001C253.4000000000001 238.3000000000001 256.4000000000001 226.5000000000001 256.4000000000001 198.8000000000001C256.4000000000001 168.8000000000001 253.4000000000001 155.7000000000001 244.3000000000001 145.9C237.5000000000001 138.6 227.9000000000001 135.8 211.1 135.8C190.7 135.8 181.9 141.3 177.3 157H176.5V86.7H137V255.7zM217.9 195C217.9 222.5 214.6 227.5 197.2 227.5C180.3 227.5 176.5 222.5 176.5 198.8C176.5 170.8 180 165.3 197.7 165.3C214.1 165.3 217.9 170.9 217.9 195zM275.8 255.7H314.1L312.6 235.1H313.4000000000001C322.5000000000001 252.2 329.3 256 350.9000000000001 256C365.3 256 375.6 253 382.4000000000001 246.9C392.2000000000001 238.3 395.2000000000001 226.5 395.2000000000001 198.8C395.2000000000001 168.8 392.2000000000001 155.7 383.1 145.9C376.3 138.6 366.7000000000001 135.8 349.8 135.8C329.4000000000001 135.8 320.6 141.3 316 157H315.2V86.7H275.7V255.7zM356.7000000000001 195C356.7000000000001 222.5 353.4000000000001 227.5 336.0000000000001 227.5C319.1000000000001 227.5 315.3000000000001 222.5 315.3000000000001 198.8C315.3000000000001 170.8 318.8000000000001 165.3 336.5000000000001 165.3C352.9000000000001 165.3 356.7000000000001 170.9 356.7000000000001 195zM410.5000000000001 198.8C410.5000000000001 224.2 413.8000000000001 236.6 422.8000000000001 244.6C431.6000000000001 252.7 445.0000000000001 255.9000000000001 467.9000000000001 255.9000000000001C510.7000000000001 255.9000000000001 523.6000000000001 243.1 523.6000000000001 200.2000000000001V189.1H448.3000000000002C448.0000000000001 187.1 448.0000000000001 185.1 448.0000000000001 184.3C448.0000000000001 167.4 452.5000000000001 162.4 468.1000000000001 162.4C482.0000000000001 162.4 486.0000000000001 165.4 486.0000000000001 176.3H523.5000000000001V174C523.5000000000001 164.2 521.0000000000001 155.1 516.7000000000002 149.3C509.4000000000001 139.5 497.1000000000001 135.7 472.4000000000001 135.7C444.9000000000002 135.7 430.8000000000002 139 421.8000000000002 148C413.3000000000002 156.5 410.5000000000001 169.3 410.5000000000001 198.8zM486.9000000000001 210.4C486.6000000000001 212.2 486.6000000000001 213.7 486.6000000000001 214.2C486.6000000000001 226.5000000000001 483.3000000000001 228.8 467.0000000000001 228.8C452.6000000000001 228.8 449.9000000000001 225.8 448.9000000000001 213.7L448.6 210.4H486.9zM542.5000000000001 255.7H580.8000000000001L579.0000000000001 235.8H579.7000000000002C586.5000000000001 250.7 594.1000000000001 256 609.4000000000002 256C620.2000000000002 256 628.5000000000002 252.7 632.8000000000002 246.7C638.1000000000001 239.4 639.6000000000001 232.3 639.6000000000001 212.7C639.6000000000001 211.2 639.6000000000001 207.7 639.8000000000002 203.4H604.8000000000002C605.1000000000001 205.2 605.1000000000001 206.7 605.1000000000001 207.4C605.1000000000001 222.8 603.1000000000001 226.8 594.8000000000002 226.8C588.5000000000002 226.8 584.0000000000002 223.5 581.7000000000002 217.5C580.7000000000002 214.5 580.7000000000002 213.1999999999999 580.7000000000002 205.1999999999999V137.1999999999999H542.4000000000002V255.7z" />
    +    <glyph glyph-name="apple-pay"
    +      unicode="&#xF415;"
    +      horiz-adv-x="640" d=" M116.9 289.5C109.4 280.6 97.4 273.6 85.4 274.6C83.9 286.6 89.8 299.4 96.7 307.2C104.2 316.3 117.3 322.8 128 323.3C129.2 310.9 124.3 298.6 116.9 289.5M127.8 272.3C110.4 273.3 95.5 262.4 87.3 262.4C78.9 262.4 66.3 271.8 52.5 271.5C34.6 271.2 18 261.1 8.9 245C-9.9 212.7 4 165 22.2 138.7C31.1 125.7 41.7 111.4 55.7 111.9C69 112.4 74.2 120.5 90.2 120.5C106.3 120.5 111 111.9 125 112.1C139.5 112.4 148.6 125.1 157.5 138.1C167.6 152.9 171.8 167.2000000000001 172 168C171.7 168.3 144 178.9 143.7 210.9C143.4 237.7 165.6 250.4 166.6 251.2C154.1 269.8 134.6 271.8 127.8 272.3M228.2 308.5V113.6H258.5V180.2000000000001H300.4C338.7 180.2000000000001 365.5 206.5000000000001 365.5 244.5000000000001S339.1 308.5000000000001 301.4 308.5000000000001H228.2zM258.5 283H293.4C319.7 283 334.7 269 334.7 244.4S319.7 205.6 293.3 205.6H258.5V283zM420.7 112.1C439.7 112.1 457.3 121.7000000000001 465.3 137H465.9V113.6H493.9V210.6C493.9 238.7 471.4 256.9000000000001 436.8 256.9000000000001C404.7 256.9000000000001 380.9000000000001 238.5000000000001 380 213.3000000000001H407.3C409.6 225.3000000000001 420.7 233.2000000000001 435.9000000000001 233.2000000000001C454.4 233.2000000000001 464.8 224.6000000000001 464.8 208.7000000000001V197.9L427 195.6C391.9 193.5 372.9 179.1 372.9 154.1C373 128.9 392.6 112.1 420.7 112.1zM428.9 135.2000000000001C412.8 135.2000000000001 402.5 143.0000000000001 402.5 154.8000000000001C402.5 167.1000000000001 412.4 174.2000000000001 431.3 175.3000000000001L464.9 177.4000000000001V166.4000000000001C464.9 148.2000000000001 449.4000000000001 135.2000000000001 428.9000000000001 135.2000000000001zM531.4 60.6C560.9 60.6 574.8 71.9 586.9 106L640 255H609.2L573.6 139.9H573L537.4 255H505.8L557 113.1L554.2 104.5C549.6 89.9 542.1 84.2 528.7 84.2C526.3000000000001 84.2 521.7 84.5 519.8000000000001 84.7V61.3C521.6 60.9 529.1 60.6 531.4000000000001 60.6z" />
    +    <glyph glyph-name="apple"
    +      unicode="&#xF179;"
    +      horiz-adv-x="376.5" d=" M314.7 179.3C314.5 216 331.1 243.7 364.7 264.1C345.9 291 317.5 305.8 280 308.7000000000001C244.5 311.5 205.7 288 191.5 288C176.5 288 142.1 307.7000000000001 115.1 307.7000000000001C59.3 306.8 0 263.2 0 174.5C0 148.3 4.8 121.2 14.4 93.3C27.2 56.6 73.4 -33.4 121.6 -31.9C146.8 -31.3 164.6 -14 197.4 -14C229.2 -14 245.7 -31.9 273.8 -31.9C322.4000000000001 -31.2 364.2000000000001 50.6 376.4 87.4C311.2 118.1 314.7 177.4 314.7 179.3000000000001zM258.1 343.5C285.4 375.9 282.9 405.4 282.1 416C258 414.6 230.1 399.6 214.2 381.1C196.7 361.3 186.4 336.8 188.6 309.2C214.7 307.2 238.5 320.6 258.1 343.5z" />
    +    <glyph glyph-name="asymmetrik"
    +      unicode="&#xF372;"
    +      horiz-adv-x="576" d=" M517.5 138.8C556.3 178.8 575.6 218.8 576 254.9C576.8 320.4 516.6 373.1 406.6 389.9C277.9 409.6 118.1 374.4 0 307.5C52 334 110.6 355.7 170.7 365.7C245.2 386.2 323.7 391.1 392 380.5C544.5 356.7 588.8 253 490.8 148.8C480.6 138 468.8 127.7 455.8 118.2L304.9 344.6L114.7 59.1C49.1 88.5 38.2 149.3 95.6 210.3C116.4 232.5 143.9 252.2 175.1 268.4C195.1 280.6 214.8 291 237.1 299.1C172 278.8 114.4 246.2 75.5 206.2C47.8 177.6 34.1 149.1 33.8 123.3C33.3 88.1999999999999 57.2 58.1999999999999 102.2 40.3L67.7 -11.4H169.3L191.3 22.9999999999999C213.5 21.9999999999999 236.6 22.9999999999999 259.9 25.6999999999999L237.1 -11.4000000000001H372.6L340 41.7C358.6 47 376.9 53.2 394.5 60.4L440.4 -11.4H542L468.6 99C487.1 111.1 503.6 124.5 517.5 138.8zM329.9 58.3L304.9 98.9L272.2 45.6C248.8 42.1 225.5 40.5 203 41.2L304.9 200.5000000000001L383.6 77.5000000000001C366.4 70.1000000000001 348.3 63.6000000000001 329.9 58.3000000000001z" />
    +    <glyph glyph-name="audible"
    +      unicode="&#xF373;"
    +      horiz-adv-x="640" d=" M640 248.1V194.1L320 -5.9L0 194V248L320 48L640 248.1zM445.5 176.1L492.6 205.5C455.4 261.3 391.9000000000001 298.1 319.9000000000001 298.1C247.9000000000001 298.1 184.4 261.4000000000001 147.3000000000001 205.7H147.6000000000001C150.1000000000001 208 152.7000000000001 210.2 155.3000000000001 212.4C245.0000000000001 286.8 374.7000000000001 270.5 445.5 176.1zM225.4 157.3C242.3 169.2 261.9 176 282.8 176C317.2 176 348 157.6 369.2000000000001 128.4L414.6 156.8C393.7000000000001 186.6999999999999 359 206.3 319.8 206.3C280.9000000000001 206.3 246.4 186.9 225.4 157.3zM103.6 286.9C235.4 391.2 421.8 363.3 521.1 224.8L521.8000000000001 223.8L570.6 254.2C517.1 335.9 424.8 389.9 319.9 389.9C216.4 389.9 123.3 336.4 69.4 254.3C79.3 264.8 92.1 277.8 103.6 286.9zM570.6 254.2z" />
    +    <glyph glyph-name="autoprefixer"
    +      unicode="&#xF41C;"
    +      horiz-adv-x="640" d=" M318.4 432L157.4 -48H234.9L260.3 33.4H379.8L405 -48H482.5L318.4 432zM278.1 90.1L319.3 220.5H320.8L361.7 90.1H278.0999999999999zM640 43L630 74.4L462.1 90L481.5 33.5L640 43zM177.9 90L10 74.3L0 43L158.5 33.6L177.9 90z" />
    +    <glyph glyph-name="avianex"
    +      unicode="&#xF374;"
    +      horiz-adv-x="512" d=" M453.1 416H141.1C102.2 416 64.9 384.8 57.8 346.3L1.2 37.7C-5.9 -0.8 19.9 -32 58.9 -32H370.9C409.8 -32 447.1 -0.8 454.2 37.7L510.9 346.2C517.9 384.8 492.1 416 453.1 416zM394.9000000000001 68.7L362.9000000000001 55.2L247.5000000000001 165.2C232.8000000000001 155.2 218.3000000000001 145.7 205.8 138.1L227.9 73.9L210 61.2L169.4 122.2L117 170.3L132.7 185.7L190.7 154.6C200 165.1 211.5 177.2 223.5 189.5L203 219.1L134.2 318.9L153 347.8L161.9 352.6L265 240.2L269.9 235.7C289.3 254.5 303.7 268.1 303.7 268.1C311.4 274.6 325.2 271 334.4 260.2C343.4 249.7 345 235.5 337.1 228.9C335.3 227.6 321.6 217.5 301.8 203.3L306.3 196L401.2 76.6L394.8999999999999 68.7z" />
    +    <glyph glyph-name="aviato"
    +      unicode="&#xF421;"
    +      horiz-adv-x="640" d=" M107.2 164.5L88.2 206.3H36.1L17.1 164.5H0L62.2 295.9L124.4 164.5H107.2zM62.2 262.6L42.6 220.1H81.8L62.2 262.6zM174.9 160.2L112.7 291.6H129.8L174.9 195.6L220 291.6H237L174.9 160.2zM255.5 164.5V291.6H271V164.5H255.5zM464.6 280.1V164.5H447.3V280.1H406.1V291.6H505.7V280.1H464.6zM640 229.2C640 220 638.3 211.4 634.9 203.4C631.5 195.4 626.6999999999999 188.3 620.6999999999999 182.3C614.6999999999999 176.3 607.5999999999999 171.5 599.5999999999999 168.1C591.5999999999999 164.7 582.9999999999999 163 573.8 163S556 164.6999999999999 548 168.1C540 171.5 532.9 176.3 526.9 182.3C520.9 188.3 516.1 195.3 512.6999999999999 203.4C509.3 211.4 507.5999999999999 220 507.5999999999999 229.2S509.2999999999999 247 512.6999999999999 255C516.0999999999999 263 520.9 270.1 526.9 276.1C532.9 282.1 539.9 284.5 548 288C556 291.4 564.6 293.1 573.8 293.1S591.5999999999999 291.4 599.5999999999999 288C607.5999999999999 284.6 614.6999999999999 282.2 620.6999999999999 276.1C626.6999999999999 270.1 631.4 263 634.9 255C638.3 247 640 238.4 640 229.2zM624.5 229.2C624.5 236.5 623.2 243.2 620.6 249.5C618 255.8 614.4 261.2 609.8000000000001 265.8C605.2 270.4 599.8000000000001 274 593.6 276.7000000000001C587.4 279.4 580.8000000000001 280.7000000000001 573.8000000000001 280.7000000000001S560.2 279.4 554.0000000000001 276.7000000000001C547.8000000000001 274 542.4000000000001 270.4 537.8000000000001 265.8C533.2 261.2000000000001 529.6 255.8 527.0000000000001 249.5C524.4000000000001 243.2 523.1000000000001 236.4 523.1000000000001 229.2C523.1000000000001 221.9 524.4000000000001 215.2 527.0000000000001 208.9C529.6000000000001 202.6 533.2000000000002 197.2 537.8000000000001 192.6C542.4000000000001 188 547.8000000000001 184.4 554.0000000000001 181.7C560.2000000000002 179 566.8000000000001 177.7 573.8000000000001 177.7S587.4000000000001 179 593.6 181.7C599.8000000000001 184.4 605.2 188 609.8000000000001 192.6C614.4000000000001 197.2 618.0000000000001 202.6 620.6 208.9C623.2 215.2 624.5 222 624.5 229.2zM529.7 132.5V138.8L618.6 148.8L375.7000000000001 135.4C376.3000000000001 137.6 376.8000000000001 140.0000000000001 377.1 142.6C377.4000000000001 144.6 377.6 146.8 377.7000000000001 149.1L442.5000000000001 157.2000000000001L377.6 155.3000000000001C377.6 155.7000000000001 377.5 156.0000000000001 377.5 156.4000000000001C374.7 173.6000000000001 352 180.1000000000001 352 180.1000000000001L350.9 206.4000000000001H374.7L393.7 164.6000000000001H410.8L348.6 296L286.4000000000001 164.6H303.5000000000001L322.5000000000001 206.4H346.1000000000001L345 180S322.3 173.5 319.5 156.3C319.4 156 319.4 155.6 319.4 155.2L254.5 157.1L319.3 149C319.4 146.6999999999999 319.6 144.6 319.9 142.5C320.2 139.8999999999999 320.7 137.5 321.3 135.3L78.4 148.8L167.3 138.8V132.5C161.4 131.6 156.8 126.5 156.8 120.3C156.8 113.5 162.4 107.9 169.2 107.9C176 107.9 181.6 113.5000000000001 181.6 120.3C181.6 126.5 177 131.6 171.1 132.5V138.3L251.4000000000001 129.3V123.9C245.7000000000001 122.8 241.5000000000001 117.7000000000001 241.5000000000001 111.8C241.5000000000001 105 247.1 101.6 253.9000000000001 101.6C260.7000000000001 101.6 266.3 105 266.3 111.8C266.3 117.8 262 122.8 256.4000000000001 123.9V128.8L284.8 125.6V101.9H278.9000000000001V88H284.8V94.6H289.8V88H295.7V101.8H289.8V125L328.1 120.7C336.2000000000001 109.3 347.1 107.1 347.1 107.1L347 100.4L341.9 100.2L341.8 88.1H345.9L346 93.1H351.2L351.3 88.1H355.4000000000001L355.3 100.2L350.2 100.4L350.1 107.1S361 109.2 369.1 120.7L407.4 125V101.8H401.5V88H407.4V94.6H412.4V88H418.3V101.8H412.4V125.5L440.8 128.7V123.8C435.1 122.7 430.9 117.6 430.9 111.7C430.9 104.9 436.5 101.5 443.3 101.5C450.1 101.5 455.6999999999999 104.9 455.6999999999999 111.7C455.6999999999999 117.7 451.3999999999999 122.7 445.8 123.8V129.2L526.0999999999999 138.2V132.4C520.1999999999999 131.5 515.5999999999999 126.4 515.5999999999999 120.2C515.5999999999999 113.4 521.1999999999999 107.8 527.9999999999999 107.8C534.7999999999998 107.8 540.3999999999999 113.4 540.3999999999999 120.2C540.1999999999998 126.5 535.6999999999998 131.6 529.6999999999998 132.5zM328.9000000000001 220.1L348.5000000000001 262.6L368.1000000000001 220.1H350.2000000000001L348.5000000000001 260.4L346.8000000000002 220.1H328.9000000000002z" />
    +    <glyph glyph-name="aws"
    +      unicode="&#xF375;"
    +      horiz-adv-x="640" d=" M180.41 244.99C179.69 222.34 191.01 212.31 191.29 205.94A8.164 8.164 0 0 0 187.19 199.67L174.39 190.71A10.659999999999998 10.659999999999998 0 0 0 168.76 188.79C168.33 188.81 160.57 186.96 148.28 214.4A78.608 78.608 0 0 0 85.67 184.95C69.39 184.06 25.27 194.19 27.54 241.16C25.95 279.44 61.6 303.2200000000001 98.47 301.21C105.57 301.19 120.07 300.84 145.46 294.94V310.56C148.15 337.02 130.76 357.55 100.65 354.47C98.25 354.46 81.25 354.97 54.81 344.36C47.45 340.98 46.51 341.54 44.06 341.54C36.65 341.54 39.7 363.02 41.12 365.74C46.33 372.14 76.98 384.09 107.06 383.92A76.857 76.857 0 0 0 162.75 366.64A70.285 70.285 0 0 0 180.42 314.28L180.41 244.99zM93.99 212.6C126.42 213.07 140.15 232.57 143.28 243.07C145.74 253.12 145.33 259.48 145.33 270.4700000000001C135.66 272.79 121.74 275.32 105.77 275.3400000000001C90.62 276.48 62.95 269.7100000000001 64.03 243.08C62.79 226.29 75.15 211.68 93.99 212.6zM264.91 189.55C257.05 188.83 253.39 194.41 252.23 199.92L202.43 364.5700000000001C201.46 367.35 200.8199999999999 370.2200000000001 200.51 373.1500000000001A4.61 4.61 0 0 0 204.37 378.4000000000001C204.61 378.4400000000001 202.24 378.4000000000001 226.62 378.4000000000001C235.4 379.2800000000001 238.26 372.37 239.17 368.0300000000001L274.89 227.2L308.05 368.03C308.58 371.25 310.99 379.1 320.85 378.27H338.01C340.18 378.45 349.12 378.77 350.69 367.9L384.11 225.27L420.98 367.9C421.4600000000001 370.0800000000001 423.7000000000001 379.27 433.6600000000001 378.27H453.38C454.23 378.4 459.53 379.0800000000001 458.63 369.69C458.2 367.8400000000001 462.04 380.35 405.88 199.79C404.73 194.28 401.06 188.7000000000001 393.2 189.42H374.51C363.57 188.2700000000001 362 199.08 361.83 200.17L328.67 337.3L295.89 200.31C295.73 199.22 294.16 188.41 283.21 189.56H264.91zM538.39 183.92C532.51 183.91 504.47 184.22 481.03 196.21A12.802 12.802 0 0 0 473.22 208.12V218.87C473.22 227.32 479.42 225.77 482.05 224.76C492.09 220.7 498.53 217.62 510.86 215.16C547.51 207.63 563.63 217.46 567.5799999999999 219.64C580.7299999999999 227.45 581.77 245.32 572.8299999999999 254.59C562.3499999999999 263.38 557.3499999999999 263.71 519.6999999999999 275.59C515.06 276.88 475.9999999999999 289.2 475.9099999999999 327.95C475.2999999999999 356.19 500.9599999999999 384.13 545.43 383.9C558.0999999999999 383.91 591.8599999999999 379.77 601 368.28C602.35 366.19 603.02 363.73 602.92 361.24V351.13C602.92 346.69 601.3 344.47 598.05 344.47C590.3399999999999 345.33 576.66 355.64 548.89 355.22C542 355.58 509 354.31 510.48 330.25C510.05 311.29 537.09 304.18 540.1800000000001 303.36C576.6400000000001 292.39 588.83 290.57 603.3000000000001 273.78C620.44 251.53 611.2 225.48 607.6500000000001 218.34C588.57 180.85 539.2300000000001 183.9 538.3900000000001 183.92zM578.59 79.06C508.5600000000001 27.34 406.9000000000001 -0.19 320.1 -0.19A469.127 469.127 0 0 0 2.83 120.54C-3.7 126.43 2.06 134.5 10 130.0100000000001A637.37 637.37 0 0 1 326.88 45.89A630.22 630.22 0 0 1 568.47 95.4400000000001C580.25 100.4400000000001 590.24 87.64 578.59 79.0600000000001zM607.7800000000001 112.35C598.82 123.87 548.5000000000001 117.73 525.97 115.04C519.1800000000001 114.2700000000001 518.03 120.16 524.1800000000001 124.5100000000001C564.2500000000001 152.6800000000001 630.0600000000001 144.6100000000001 637.6200000000001 135.1400000000001C645.1700000000001 125.67 635.5700000000002 59.73 598.0600000000002 28.23C592.3000000000002 23.36 586.7900000000002 25.93 589.3500000000001 32.33C597.7900000000002 53.58 616.7400000000001 100.8200000000001 607.7800000000001 112.35z" />
    +    <glyph glyph-name="bandcamp"
    +      unicode="&#xF2D5;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM296.2 113.9H115.2L199.9 270H380.9L296.2 113.9z" />
    +    <glyph glyph-name="behance-square"
    +      unicode="&#xF1B5;"
    +      horiz-adv-x="448" d=" M186.5 155C186.5 135.7 172.5 129.6 155.3 129.6H110.2V182.5H156.2C174.8 182.4 186.5 174.7 186.5 155zM178.8 237.3C178.8 255 165.1 259.2000000000001 149.9 259.2000000000001H110.3V214.4H153C168.1 214.4 178.8 221 178.8 237.3000000000001zM311.1 214.1C292.8 214.1 280.6 202.7 279.4000000000001 184.4H341.6C339.9000000000001 202.9 330.3 214.1 311.1 214.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM271.7 263H349.5V281.9H271.7V263zM228.7 152.7C228.7 176.8 217.3 197.6 193.7 204.3C210.9 212.5 219.9 222 219.9 241.3C219.9 279.5 191.4 288.8 158.5 288.8H68V96.8H161.1C196 96.9999999999999 228.7 113.6999999999999 228.7 152.6999999999999zM380 167.5C380 208.6 355.9 242.9 312.4 242.9C270 242.9 241.3 211.1 241.3 169.3C241.3 126 268.6 96.3 312.4 96.3C345.6 96.3 367.1 111.2 377.5 143.1H343.8C340.1 131.2000000000001 325.2 125 313.6 125C291.2000000000001 125 279.5 138.1 279.5 160.3H379.7C379.8 162.6 380 165.1 380 167.5z" />
    +    <glyph glyph-name="behance"
    +      unicode="&#xF1B4;"
    +      horiz-adv-x="576" d=" M232 210.8C263.8 226 280.4 249 280.4 284.8C280.4 355.4 227.8 372.6 167.1 372.6H0V18.2H171.8C236.2 18.2 296.7000000000001 49.1 296.7000000000001 121.1C296.7000000000001 165.6 275.6 198.5 232.0000000000001 210.8zM77.9 312.1H151C179.1 312.1 204.4 304.2 204.4 271.6C204.4 241.5 184.7 229.4 156.9 229.4H77.9V312.1zM161.2 78.4H77.9V176H162.8C197.1 176 218.8 161.7 218.8 125.4C218.8 89.6 192.9 78.4 161.2 78.4zM519.7 319.1H376V354H519.7V319.1zM576 142.8C576 218.7 531.6 282 451.1 282C372.9000000000001 282 319.8 223.2 319.8 146.2C319.8 66.3 370.1 11.5 451.1 11.5C512.4 11.5 552.1 39.1 571.2 97.8H509C502.3 75.9 474.7 64.3 453.3 64.3C412 64.3 390.3 88.5 390.3 129.6H575.4C575.6999999999999 133.8 576 138.3 576 142.8zM390.4 174C392.7 207.7 415.1 228.8 448.9 228.8C484.3 228.8 502.1 208 505.1 174H390.4z" />
    +    <glyph glyph-name="bimobject"
    +      unicode="&#xF378;"
    +      horiz-adv-x="448" d=" M416 416H32C14.4 416 0 401.6 0 384V0C0 -17.6 14.4 -32 32 -32H416C433.6 -32 448 -17.6 448 0V384C448 401.6 433.6 416 416 416zM352 158.6C352 109.2000000000001 340.6 76 248.2 76H231.3C187.2 76 168.9 90.9 160.9 114.8H160V80H96V312H160V237.3H161.1C165.7 267.8 200.8 276.1 230.8 276.1H248.1C340.5 276.1 351.9000000000001 243.0000000000001 351.9000000000001 193.6V158.6zM288 187.5V164.6C288 142.9 284.6 130.8 249.6 130.8H204.3C175.4 130.8 160.2 137.3 160.2 166.5V185.5C160.2 214.8 175.4 221.2 204.3 221.2H249.6C284.6 221.4 288 209.2 288 187.5z" />
    +    <glyph glyph-name="bitbucket"
    +      unicode="&#xF171;"
    +      horiz-adv-x="512" d=" M23.1 416C14.2 416.1 7 409.1 6.9 400.2C6.9 399.3 7 398.4 7.1 397.4L74.9 -14C76.6 -24.4 85.6 -32 96.1 -32.1H421.2000000000001C429.1 -32.2 435.9000000000001 -26.5 437.2000000000001 -18.7L505.0000000000001 397.3C506.4 406 500.5000000000001 414.2 491.8000000000001 415.6C490.9000000000001 415.7 490.0000000000001 415.8 489.0000000000001 415.8L23.1 416zM308.4000000000001 118.7H204.6L176.5 265.5H333.5L308.4 118.7z" />
    +    <glyph glyph-name="bitcoin"
    +      unicode="&#xF379;"
    +      horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM362.349 227.33C367.286 260.329 342.158 278.069 307.799 289.903L318.945 334.605L291.732 341.386L280.881 297.862C273.727 299.645 266.379 301.326 259.078 302.992L270.007 346.802L242.809 353.583L231.656 308.897C225.734 310.246 219.9209999999999 311.579 214.279 312.981L214.31 313.121L176.78 322.491L169.541 293.429S189.732 288.802 189.3059999999999 288.516C200.3279999999999 285.765 202.3199999999999 278.472 201.9859999999999 272.691L189.2899999999999 221.766C190.0499999999999 221.572 191.0339999999999 221.293 192.119 220.859C191.2119999999999 221.084 190.243 221.332 189.243 221.572L171.447 150.2339999999999C170.098 146.8859999999999 166.68 141.8639999999999 158.976 143.7699999999999C159.2469999999999 143.375 139.196 148.7069999999999 139.196 148.7069999999999L125.6859999999999 117.56L161.0999999999999 108.733C167.6879999999999 107.0819999999999 174.1449999999999 105.3539999999999 180.5 103.727L169.238 58.514L196.4199999999999 51.733L207.5729999999999 96.466A1038.209 1038.209 0 0 1 229.26 90.8389999999999L218.1449999999999 46.3159999999999L245.3579999999999 39.5349999999999L256.6199999999999 84.6629999999999C303.0239999999999 75.8819999999999 337.9189999999999 79.4239999999999 352.6059999999999 121.3899999999999C364.4419999999999 155.1799999999999 352.0169999999999 174.6709999999999 327.6019999999999 187.3809999999999C345.3819999999999 191.4789999999999 358.7759999999999 203.1729999999999 362.3489999999999 227.3299999999999zM300.172 140.151C291.762 106.3609999999999 234.864 124.6279999999999 216.417 129.208L231.361 189.107C249.807 184.504 308.961 175.39 300.172 140.151zM308.589 227.818C300.916 197.082 253.558 212.698 238.196 216.526L251.744 270.853C267.107 267.025 316.58 259.88 308.589 227.818z" />
    +    <glyph glyph-name="bity"
    +      unicode="&#xF37A;"
    +      horiz-adv-x="496" d=" M78.4 380.8C173.8 470 324.5 472 421.5 377C435.8 362.9 415.1 339.9 399.1 355.5C314.3 437.9 183.3 435.8 100.2000000000001 358.7C83.9000000000001 343.6 63.7000000000001 367 78.4000000000001 380.8zM177.3 -37.8C196.6 -43.5 206.6 -14.2 185.2 -7.8C73 26.1 9.4 141.9 37.7 253.2C42.7 272.8 12.8 281.3 7.5 260.3C-24.6 132.9 48.6 0.5 177.3 -37.8000000000001zM325.4 -35.8C447.3 4.4 518.3 131.1 489.8 255.2C485.3 274.9 454.9 269 459.8 247.3C483.9999999999999 139.6 422.7 29.4 316.6 -6.1C295.4 -13.1 306.2 -42.1 325.4 -35.8zM262.5 43.2L262.7 115C262.7 123.2 256.1 129.8 247.9 129.8C239.7 129.8 233.1 123.1 233.1 115L232.9 43.2C232.9 35 239.5 28.4 247.7 28.4S262.5 35 262.5 43.2zM333.5 312.2C335.6 221.3 338.2 180.3 248 179.7C155.5 180.4 161.1 224 162.5 312.2C162.5 334 130 331.8 130 312.2V240.6C130 171.3 190.7 149.7 248 150.5C305.3 149.7 366 171.3 366 240.6V312.2C366 331.8 333.5 334 333.5 312.2z" />
    +    <glyph glyph-name="black-tie"
    +      unicode="&#xF27E;"
    +      horiz-adv-x="448" d=" M0 416V-32H448V416H0zM316.5 90.8L224 2.1L131.5 90.8L196 274.8L131.5 361.4H316.4L252 274.8L316.5 90.8z" />
    +    <glyph glyph-name="blackberry"
    +      unicode="&#xF37B;"
    +      horiz-adv-x="512" d=" M166 331.1C166 307.7 149.6 282 93.5 282H23.4L44.4 370.8H112.2C154.3 370.8 166 347.5 166 331.1zM292.2 370.8H224.4L205.7 282H275.8C329.6 282 345.9 307.7 345.9 331.1C346 347.5 334.3 370.8 292.2 370.8zM88.8 239.9H21L0 151.1H70.1C126.2 151.1 142.6 174.5 142.6 200.2C142.6 216.5 130.9 239.9000000000001 88.8 239.9000000000001zM268.9 239.9H201.1L182.4 151.1H252.5C306.3 151.1 322.6 174.5 322.6 200.2C322.6 216.5 310.9 239.9000000000001 268.9 239.9000000000001zM458.2 293.7H390.4L371.7 204.9H441.8C495.6 204.9 511.9 228.3 511.9 254C512 270.3 500.3 293.7 458.2 293.7zM430.2 155.8H362.4L343.7 67H413.8C469.9 67 483.9 90.4 483.9 116.1C483.9 132.4 472.3 155.8 430.2 155.8zM240.8 102H173L154.3 13.2H224.4C280.5 13.2 294.5 38.9 294.5 62.3C294.6 78.6 282.9 102 240.8 102z" />
    +    <glyph glyph-name="blogger-b"
    +      unicode="&#xF37D;"
    +      horiz-adv-x="448" d=" M446.6 225.3C444.8 233.3 439.8 240.7 434.1 243.8C432.3 244.8 421.1 246 409.1 246.5C389 247.4 386.8 247.8 380.4000000000001 251.5C370.3 257.4 367.6 263.8 367.5000000000001 281C367.4000000000001 314 353.7000000000001 344.7 326.6000000000001 372.3C307.3000000000001 392 285.7000000000001 405.3 261.1000000000001 412.8C255.2000000000001 414.6 242.0000000000001 415.2 197.8000000000001 415.7C128.4000000000001 416.5 113.0000000000001 415.1 89.4000000000001 405.7C45.9 388.5 14.7 351.9 3.3 305.1C1.2 296.3 0.7 282.2 0.2 201.2C-0.4 99.7 0.3 84.8 6.6 64.7C22.2 15.1 66.5 -21.6 111 -29.6C125.8 -32.3 308.3 -32.9 327 -30.4C359.5 -26.0000000000001 385 -12.9 408.9 11.4999999999999C426.2 29.1999999999999 437 48.3 444.1 73.6C449 91.2 448.6 216.4 446.6 225.3zM124.5 288.9C132.3 296.8 134.5 297.1 183.3 297.1C227.2 297.1 228.7 297 235.1 293.7C244.4000000000001 289 248.5000000000001 282.4 248.5000000000001 271.8C248.5000000000001 262.3 244.7 255.6 236.2 250.2C231.6 247.3 228.9 247.1 185.9 246.9C159.4 246.7 138.2000000000001 247.3 135.1 248.1C118.5 252.8 112.3 276.6 124.5 288.9zM316.3 89.1L301.4000000000001 86.7000000000001L223.9 85.8000000000001C155.8000000000001 85.0000000000001 136.6 86.2000000000001 133 87.8000000000001C125.9 90.9000000000001 119.2 99.5000000000001 118.1 107.2000000000001C117 114.5000000000001 120.7 124.5000000000001 126.3 129.6C133.4 136 136.5 136.2000000000001 223.6 136.3C313.2000000000001 136.4 312.7000000000001 136.4 321.2000000000001 128.5C333.3000000000001 117.2 330.7000000000001 97.3 316.3000000000001 89.1z" />
    +    <glyph glyph-name="blogger"
    +      unicode="&#xF37C;"
    +      horiz-adv-x="448" d=" M162.4 252C167.2 256.9 168.6 257.1 198.8 257.1C226 257.1 226.9 257 230.9 255C236.7 252.1 239.2 248 239.2 241.4C239.2 235.5 236.8 231.4 231.6 228C228.8 226.2 227.1 226.1 200.5 225.9C184.1 225.8 171 226.1 169 226.7C158.7 229.6 154.9 244.4 162.4 252.0000000000001zM223.8 157.5C169.9 157.5 168 157.3 163.6 153.4C160.1 150.3 157.9 144 158.5 139.5C159.2 134.8 163.3000000000001 129.4 167.7 127.5C169.9 126.5 181.8 125.8 224 126.3L271.9 126.9L281.1 128.4C290.1 133.5000000000001 291.6 145.8 284.2 152.8C278.9 157.5 279.2 157.5 223.8 157.5zM447.2000000000001 27.4C443.7000000000001 -1 424.2000000000001 -23 396.1 -30.1C388.9000000000001 -31.9 386.4000000000001 -32 223.2 -31.9C65.4 -31.9 57.3 -31.8 51.2 -30.1C42.8 -27.9 35.6 -24.6 28.9 -20.1C23.3 -16.3 15 -8.3 11.9 -3.7C8.1 1.9 3.7 11.6 1.9 18.3C0.1 25 0 27.7 0 191.7C0 354.8 0 358.3 1.8 365.4C8.1 390.1 27.7 409 53 414.6C60.3 416.2 385.1 416.5 393 414.9C414.2 410.6 430.9 397.8 440.6 378.5C448.3 363.2 447.6 380 447.9000000000001 197.9C448.1 82.1 447.9000000000001 33.4 447.2000000000001 27.4zM361.8000000000001 212.6C360.7000000000001 217.6 357.6000000000001 222.2 354.1000000000001 224.1C353.0000000000001 224.7 346.1000000000001 225.4 338.6000000000001 225.8C326.2000000000001 226.4 324.8000000000001 226.6 320.8000000000001 228.9C314.6000000000001 232.5 312.9000000000001 236.5 312.8000000000001 247.2C312.8000000000001 267.6 304.3000000000001 286.6 287.5000000000001 303.7C275.5000000000001 315.9 262.2000000000001 324.2 246.9000000000001 328.8C243.3000000000001 329.9 235.1000000000001 330.3 207.7000000000001 330.6C164.8000000000001 331.1 155.2000000000001 330.2 140.6000000000001 324.4C113.6000000000001 313.7 94.3000000000001 291 87.2000000000001 262C85.9000000000001 256.5999999999999 85.6000000000001 247.8 85.3 197.6999999999999C84.9 134.8999999999999 85.3 125.5999999999999 89.3 113.1999999999999C99 82.4999999999999 126.4 59.8 153.9 54.8C163.1 53.1 276.1 52.6999999999999 287.6 54.3C307.7000000000001 56.9999999999999 323.5 65.1 338.3 80.1999999999999C349 91.0999999999999 355.7 102.9999999999999 360.1 118.6999999999999C363.3 129.5999999999999 363 207.0999999999999 361.8 212.5999999999999z" />
    +    <glyph glyph-name="bluetooth-b"
    +      unicode="&#xF294;"
    +      horiz-adv-x="320" d=" M196.48 187.977L289.106 291.31L143.125 448V241.67L57.014 327.781L25.608 296.376L133.669 187.977L25.608 79.578L57.014 48.173L143.125 134.284L145.84 -64L294.392 84.644L196.48 187.977zM237.34 290.973L187.363 240.995L187.025 341.29L237.34 290.973zM187.363 134.96L237.34 84.982L187.025 34.6659999999999L187.363 134.9599999999999z" />
    +    <glyph glyph-name="bluetooth"
    +      unicode="&#xF293;"
    +      horiz-adv-x="448" d=" M292.6 276.9L249.7 234L249.4 320L292.6 276.9M249.4 57.1L292.5 100.2000000000001L249.6 143.1L249.4 57.1zM416 188.6C416 -17 344.1 -64 230.9 -64S32 -17 32 188.6S115.4 448 228.6 448S416 394.1 416 188.6zM257.5 188.6L336.9 277.2000000000001L211.8 411.5V234.6L138 308.4L111 281.5L203.7 188.5L111 95.5L137.9 68.6L211.7 142.4L214 -27.6L341.4 99.9L257.5 188.6z" />
    +    <glyph glyph-name="btc"
    +      unicode="&#xF15A;"
    +      horiz-adv-x="384" d=" M310.204 205.362C337.9340000000001 219.542 355.581 244.752 351.4840000000001 286.662C346.1260000000001 344.013 299.0260000000001 363.235 236.6340000000001 368.591V448H188.1060000000001V370.7970000000001C175.5010000000001 370.7970000000001 162.5810000000001 370.482 149.662 370.1670000000001V448H101.134V368.591C83.2920000000001 368.052 62.512 368.315 3.764 368.591V316.913C42.078 317.591 62.181 320.053 66.787 295.486V78.057C63.862 58.565 48.263 61.372 13.532 61.986L3.765 4.32C92.246 4.32 101.135 4.005 101.135 4.005V-64H149.663V3.06C162.897 2.745 175.817 2.745 188.107 2.745V-64H236.635V4.005C317.9340000000001 8.417 372.2820000000001 28.899 379.5300000000001 105.472C385.201 166.918 356.2100000000001 194.334 310.2040000000001 205.362zM150.608 313.447C178.023 313.447 263.7340000000001 321.954 263.7340000000001 264.919C263.7340000000001 210.404 178.0240000000001 216.707 150.608 216.707V313.447zM150.608 61.671V168.179C183.38 168.179 283.735 177.317 283.735 114.924C283.7340000000001 54.738 183.38 61.671 150.608 61.671z" />
    +    <glyph glyph-name="buromobelexperte"
    +      unicode="&#xF37F;"
    +      horiz-adv-x="448" d=" M0 416V288H128V416H0zM120 296H8V408H120V296zM160 416V288H288V416H160zM280 296H168V408H280V296zM320 416V288H448V416H320zM440 296H328V408H440V296zM0 256V128H128V256H0zM120 136H8V248H120V136zM160 256V128H288V256H160zM280 136H168V248H280V136zM320 256V128H448V256H320zM440 136H328V248H440V136zM0 96V-32H128V96H0zM120 -24H8V88H120V-24zM160 96V-32H288V96H160zM280 -24H168V88H280V-24zM320 96V-32H448V96H320z" />
    +    <glyph glyph-name="buysellads"
    +      unicode="&#xF20D;"
    +      horiz-adv-x="448" d=" M224 297.3L266.9 136.6H181.1L224 297.3zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM382.7 42.7L288.2 341.4H159.8L65.3 42.7H156L267.7 134.3L291.9 42.6999999999999H382.7z" />
    +    <glyph glyph-name="cc-amazon-pay"
    +      unicode="&#xF42D;"
    +      horiz-adv-x="576" d=" M124.7 246.2C124.8 258 124.7 269.7 124.7 281.5V316.8C124.7 318.1 125.1 318.8 126.1 319.5C137.6 327.5 150.2 331.6 164.3 330.6C176.8 329.7 187 323.6 192.4 308.9C195.7 300 196.5 290.7000000000001 196.5 281.2000000000001C196.5 272.5 195.8 263.9 193.1 255.6C187.4 237.8 174.4 230.9000000000001 157.4 231.7C145.7 232.2 135.5 236.7 126 243.4C125.1 244.2 124.6 245 124.7 246.2zM279.6 231.6C284.2000000000001 229.8 288.9000000000001 229.6 293.7000000000001 230.1C305.3000000000001 231.3 315.6 235.8 325.0000000000001 242.6C325.9000000000001 243.2 326.3000000000001 243.9 326.3000000000001 245.1C326.2000000000001 249 326.3000000000001 253 326.3000000000001 256.9C326.3000000000001 260.9 326.2000000000001 264.9 326.3000000000001 268.9C326.3000000000001 270.3 325.9000000000001 270.9 324.5000000000001 271.1C317.5000000000001 272 310.6000000000001 273.3 303.6000000000001 274C296.6000000000001 274.6 289.6000000000001 274.3 282.8000000000001 272.1C276.1000000000001 269.9 271.1000000000001 265.9 269.1000000000001 259C267.5000000000001 253.6 267.5000000000001 248.2 269.2000000000001 242.8C270.8000000000002 237.3 274.4000000000001 233.6 279.6000000000001 231.6zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM368.5 344.1C368.9 342.4 369.4 340.7 370.1 339C386.6 298.4 403 257.7 419.6 217.1C421 213.6 421.3 210.7 419.8 207.2C417 201 414.9000000000001 194.6 412 188.5C409.4 183 405.3 179 399.3 177.3C395.1 176.2 390.8 176 386.4000000000001 176.4C384.3 176.6 382.2000000000001 177.1 380.1 177.2000000000001C377.3 177.4 375.9000000000001 176.1 375.8 173.2000000000001C375.7 170.4 375.7 167.6 375.8 164.9C375.9000000000001 160.3 377.4000000000001 158.2000000000001 382 157.4C386.7 156.6 391.4 155.8 396.2 155.7000000000001C410.5 155.4 421.9 161.1 429.3 173.6C432.2 178.5 434.9000000000001 183.7000000000001 437 189C456.8 239.1 476.5 289.3 496.2 339.5C496.8 341 497.3 342.5 497.5 344.1C497.9 346.5 496.8 347.7 494.4 347.8C488.8 347.9 483.3 347.8 477.7 347.8C474.6 347.8 472.4 346.4 471.3 343.5C470.9 342.4 470.4 341.2 470 340.1L440.9 256.4C438.8 250.3 436.7 244.3 434.4 237.8C434 238.7 433.8 239.2 433.6 239.7C422.8 269.6 412 299.6 401.2 329.5C399.5 334.2 397.7 339 395.9 343.7C395 346.2 393.2 347.7 390.5 347.7C384.1 347.8 377.7 347.9 371.3 347.8C369.1 347.8 368 346.2 368.5 344.1zM242.4 242C244.1 230.3 250 221.2 260.4 215.4C270.3 209.9 281.1 209.2 292.1 210.8C304.8 212.7 316 218.1 325.9 226.3C326.3 226.6 326.7 226.9 327.3 227.3C327.8 224.1 328.2 221.1 328.8 218.1C329.3 215.5 330.9 213.8 333.3 213.7C337.9 213.6 342.4 213.6 347 213.7C349.3 213.8 350.8 215.3 351 217.6C351.1 218.4 351.1 219.2 351.1 219.9V308.7000000000001C351.1 312.3000000000001 350.9 315.9000000000001 350.4 319.5000000000001C348.8 330.3000000000001 344.2 339.2000000000001 334.5 344.9000000000001C328.9 348.2000000000001 322.7 349.9000000000001 316.3 350.8000000000001C313.3 351.2000000000001 310.3 351.5000000000001 307.2 351.9000000000001H297.2C296.4 351.8000000000001 295.6 351.6000000000001 294.7 351.6000000000001C286.5 351.2000000000001 278.4 350.2000000000001 270.5 348.1000000000001C265.4 346.8000000000001 260.5 344.9000000000001 255.5 343.2000000000001C252.5 342.2000000000001 251 340.0000000000001 251.1 336.7000000000001C251.2 333.9000000000001 251 331.1000000000001 251.1 328.4000000000001C251.2 324.3000000000001 252.9 323.2000000000001 256.8 324.3000000000001C263.3 326.0000000000001 269.9000000000001 327.8000000000001 276.5 329.1000000000001C286.8 331.0000000000001 297.2 331.8000000000001 307.6 330.3000000000001C313 329.5000000000001 318.1 327.9000000000001 321.7000000000001 323.3000000000001C324.8000000000001 319.3000000000001 325.9000000000001 314.5000000000001 326.1 309.6000000000001C326.4000000000001 302.7000000000001 326.3 295.7000000000001 326.4000000000001 288.8000000000001C326.4000000000001 288.4000000000001 326.3 288.1000000000001 326.2000000000001 287.6000000000001C325.8000000000001 287.6000000000001 325.4000000000001 287.6000000000001 325.1 287.7000000000001C316.3 289.8000000000001 307.4000000000001 291.3000000000001 298.3 291.8000000000001C288.8 292.3000000000001 279.4000000000001 291.7000000000001 270.4000000000001 288.6000000000001C259.6 284.8000000000001 250.9000000000001 278.3000000000001 245.8000000000001 267.8000000000001C241.7000000000001 259.5000000000001 241.2000000000001 250.8000000000001 242.4000000000001 242.0000000000001zM98.7 341.1V165.8C98.7 165 98.7 164.1 98.8 163.3C99 160.8 100.5 159.1999999999999 102.9 159.1C108.8 159 114.7 159 120.6 159.1C123.1 159.1 124.6 160.8 124.7 163.2C124.8 164 124.8 164.9 124.8 165.7V226.4C125.7 225.7 126.2 225.2 126.7 224.8C141.7 212.3 158.9 208.2 177.8 211.9C194.9 215.3 206.7 225.8 214.5 241.1C220.3 252.7 222.8 265.2 223.2 278.1C223.7 292.4 222.2 306.5 216.4 319.8C209.3 336.2 197.5 347.1 179.7 350.7C177 351.3 174.2 351.5 171.5 351.9H164.5C163.3 351.7 162.1 351.6 160.9 351.4C149.2 350 138.6 345.6 129.1 338.7C127.1 337.3 125.2 335.7 123.2 334.2C123.1 334.7 122.9 335 122.8 335.4C122.4 337.7 122.1 340 121.7 342.3C121.1 346.2 119.2 347.8 115.3 347.9H105.6C99.7 348 98.7 346.9 98.7 341.1zM493.6 109C490.9 109.7 488.5 109 486 108C442.1 89.6 396.5 77.8 349.2 72.2C334.7 70.5 320.1 69.4 305.5 69C278.9 68.3 252.3 69.8 225.9 73.3C208.1 75.7 190.4 79 172.9 83.2C135.9 92.1 100.2 104.9 66.2 122C57.4 126.4 48.8 131.3 40.1 136C36.3 138.1 33.9 137.5 31.9 133.9V132.2C33.1 130.6 34.1 128.8 35.6 127.4C71.6 95.2 112.2 70.9 157.6 54.5C179.5 46.6 202 40.8 224.9 37C238.9 34.7 252.9 33.2 267.1 32.5C270.1 32.4 273.1 32.3 276.1 32.1C276.8 32.1 277.5 31.9 278.2 31.8H295.9C296.6 31.9 297.3 32.1 298 32.1C312.9 32.5 327.8 33.9 342.6 36.1C364 39.3 385 44.2 405.5 50.8C435.1 60.4 463.2 73.2 488.9 90.9C491.7 92.8 494.6 94.7000000000001 496.9 97.1C501.2 101.5 499.2 107.5 493.6 109zM544 136.7C543.2 140.9 540 142.5 536.4 143.7C530.6999999999999 145.6 524.8 146.5 518.8 147C507.8 147.9 496.8 147.4 485.9999999999999 145.4C473.9999999999999 143.2 462.6 139.3 452.4999999999999 132.3C451.3 131.5 450.1 130.5 449.3999999999999 129.3C448.7999999999999 128.4 448.7 127 448.8999999999999 125.9C449.2 124.6 450.5999999999999 124.3 451.8999999999999 124.4C452.4999999999999 124.4 453.0999999999999 124.4 453.6999999999999 124.5L473.1999999999999 126.6C482.8 127.5 492.3999999999999 128.1 501.9999999999999 127.4C506.1 127.1 510.1 126.2000000000001 514 125.2000000000001C518.3 124.1 520.2 120.8000000000001 520.4 116.5000000000001C520.6999999999999 109.8000000000001 519.1999999999999 103.4 517.5 97.0000000000001C514 84.1000000000001 509.2 71.6000000000001 504.2 59.2000000000001C503.9 58.4 503.5 57.5000000000001 503.4 56.7000000000001C503 54.2 504.4 52.7 506.8 53.2C508.1999999999999 53.5000000000001 509.8 54.3000000000001 510.8 55.3000000000001C514.5 58.9000000000001 518.3 62.5000000000001 521.4 66.5000000000001C532.1 80.3000000000001 538.4 96.1000000000001 542.1 113.1000000000001C542.8000000000001 116.1000000000001 543.3000000000001 119.2000000000001 543.8000000000001 122.2000000000001C544.0000000000001 126.9000000000001 544.0000000000001 131.8000000000001 544.0000000000001 136.7000000000001z" />
    +    <glyph glyph-name="cc-amex"
    +      unicode="&#xF1F3;"
    +      horiz-adv-x="576" d=" M576 192.6C538.1 192.8 531.8 193.5 521.5 187.6V192.6C476.2 192.6 468 194.3 456.6 187.4V192.6H378.4000000000001V187.5C367.0000000000001 194 357.0000000000001 192.6 302.7000000000001 192.6V187C296.4000000000001 190.7 288.2000000000001 192.6 278.4000000000001 192.6H220.4C216.9 188.8 207.9 178.9 204.7000000000001 175.4C192.0000000000001 189.5 194.2000000000001 187 189.2000000000001 192.6H106.1000000000001V100.3H188.1000000000001C191.4000000000001 103.8 201.0000000000001 114.1999999999999 204.2000000000001 117.6999999999999C216.9 103.3999999999999 214.5000000000001 105.9999999999999 219.6000000000001 100.3H268.5000000000001C268.5000000000001 115 268.6000000000001 108.6 268.6000000000001 123.3C280.1000000000001 123.1 292.9000000000001 123.5 302.9000000000001 129.5C302.9000000000001 115.6 302.8000000000001 112.3999999999999 302.8000000000001 100.3H342.4000000000001C342.4000000000001 118.8 342.5000000000001 107.6999999999999 342.5000000000001 125.6C348.7000000000001 125.6 350.2000000000001 125.6 351.9000000000001 125.5C352.0000000000001 124.1999999999999 351.9000000000001 125.5 351.9000000000001 100.3C504.7000000000001 100.3 497.8000000000001 99.1999999999999 508.6000000000001 104.8V100.3C543.4000000000001 100.3 563.4000000000001 98.1 576.1000000000001 106.4V16C576.1000000000001 -10.5 554.6000000000001 -32 528.1000000000001 -32H48C21.5 -32 0 -10.5 0 16V219.7H26.6C30.8 229.8 28.8 225 33 235H52.2C56.4 225 54.4 229.8 58.6 219.7H111.5V231.1C113.7 226.1 112.6 228.6 116.6 219.7H146.1C148.5 225.2 148.7 225.5 151.2 231.1V219.7H286.7V244.8C293.1 244.8 294.7 244.9 296.5 244.6C296.5 244.6 296.3 233.7 296.6 219.8H363.1V228.7C370.5 222.8 380.5 219.8 392.8 219.8H419.6C423.8 229.9 421.8 225.1 426 235.1H445C451.5 220.1 445.2 234.6 451.6 219.8H504.4V241.7C516.2 222 512.2 228.8 517.6 219.8H559.2V311.8H519.3000000000001V293.4C507.1000000000001 313.6 513.0000000000001 303.8 508.1000000000001 311.8H464.8000000000001V291.2C458.6000000000001 305.8 460.2 302 456.0000000000001 311.8H423.6000000000001C423.2000000000001 311.8 421.3000000000001 311.6 421.3000000000001 312.1H393.7000000000001C380.9000000000001 312.1 370.6 308.9 363.0000000000001 302.8V312.1H323.1000000000001V306.8C312.3000000000001 312.9 302.4000000000001 311.9 258.7000000000001 312.1C258.6 312.1 247.1000000000001 312.2 247.1000000000001 312.1H144.1000000000001C141.6000000000001 306 137.3000000000001 295.7 131.5000000000001 282.1C128.7000000000001 288.1 120.5000000000001 305.9 117.6000000000001 312.1H71.6000000000001V291C64.2000000000001 308.4 66.9000000000001 302 62.6000000000001 312.1H22.9C19.5 304.2 9.2 280.1 -0.2 258.2V368C-0.2 394.5 21.3 416 47.8 416H527.8C554.3 416 575.8 394.5 575.8 368V192.6zM389.4 273.2C389.1 273 388 271 388 265.6C388 259.6 388.9 257.9 389.1 257.7C389.3 257.6 390.2000000000001 257.2 392.5 257.2L399.8 274.1C398.7 274.1 397.7 274.2 396.7 274.2C391.1 274.2 389.7 273.5 389.4 273.2zM369.5 142.3C378.7 139 380.5 132.8 380.5 123.9L380.4 110.1H363.8L363.9 121.6C363.9 133.4 360.1 135.4 349.1 135.4H331.5L331.3999999999999 110.1H314.7999999999999L314.8999999999999 179.4H354.2999999999999C367.2999999999999 179.4 381.3999999999999 177.1 381.3999999999999 160.7C381.2999999999999 153.1 377.2 145.4 369.5 142.3zM363.2 157.6999999999999C363.2 164.0999999999999 357.6 165.0999999999999 352.5 165.0999999999999H331.5V149.4999999999999H352.2C357.8 149.4999999999999 363.2 150.7999999999999 363.2 157.6999999999999zM544.9 164.8H575V179.4H542.1C529.3000000000001 179.4 518.3000000000001 172.8 518.3000000000001 158.7C518.3000000000001 125.7 561.0000000000001 145.9 561.0000000000001 131.3C561.0000000000001 126.2 556.7000000000002 124.9 552.6000000000001 124.9H520.6000000000001L520.5000000000001 110.1H552.5000000000001C560.9000000000001 110.1 570.1000000000001 111.9 575.0000000000001 119V144.8C564.5000000000001 158.6 535.7000000000002 146.1 535.7000000000002 158.3C535.7000000000002 164.1 540.3000000000002 164.8 544.9000000000002 164.8zM445.7 165.1V179.4H390.5L390.4 110.1H445.6L445.7 124.4L407.1 124.7V138.5H445V152.6H407.2V165.1H445.7zM487.9 125H455.7L455.6 110.1999999999999H487.8C502.6 110.1999999999999 514 115.8 514 132.1999999999999C514 165.3999999999999 471.1 143.3999999999999 471.1 158.5C471.1 164.1 476 164.8999999999999 480.3 164.8999999999999H510.7V179.5H477.5C464.7 179.5 454 172.8999999999999 454 158.8C454 125.8 496.7 146.3 496.7 131.4C496.6 126 492 125 487.9 125zM409.8 283.7C392.4 284 376.6 287.8 376.6 264C376.6 252.2 379.4 244.1 392.7 244.1H400.1L423.6 298.5999999999999H448.4L476.3 233.2V298.5999999999999H501.6L530.6999999999999 250.5V298.5999999999999H547.5999999999999V229.6H524L492.8 281.5V229.6H459.1L452.5 244.9H418.2L411.8 229.6H392.6C369.8 229.6 359.6 241.4 359.6 263.5999999999999C359.6 286.9 370.1 298.8999999999999 393.6 298.8999999999999H409.7000000000001V283.7zM424.1 259.2H446.9L435.7 286.8L424.1 259.2zM351.5 298.8H334.6V229.5H351.5V298.8zM313.4 261.5C322.9 258.2 324.4 252.3 324.4 243.1V229.6H307.8C307.5 244.4 311.4 254.7 293 254.7H275V229.6H258.6V298.8999999999999L297.7 298.5999999999999C311 298.5999999999999 325.1 296.5999999999999 325.1 280.2C325.2 272.2 320.8 264.4999999999999 313.4 261.4999999999999zM306.7 276.8C306.7 283.2 301.1 284.2 296 284.2H275V268.9H295.7C301.4 268.9 306.7 270.2 306.7 276.8zM247.2 284.2V298.8H191.7V229.5H247.2V243.8H208.3V257.6H246.1V271.7H208.3V284.2H247.2zM162.6 229.5V283.7L138.6 229.5H124L100 283.7V229.5H66.2L59.8 244.8H25.3L18.9 229.5H1L30.7 298.8H55.2L83.3 233.1V298.8H110.4L132.1 251.8L151.8 298.8H179.4V229.5H162.6zM53.9 259.2L42.4 286.8L31.2 259.2H53.9zM306.9 156.7C306.9 128.8 276.5 133.4 257.6 133.4L257.5 110.1H225.3L204.9 133.1L183.5999999999999 110.1H118.1999999999999L118.2999999999999 179.4H184.7999999999999L205.2999999999999 156.6L226.3 179.4H279C294.6 179.4 306.9 174 306.9 156.7zM194.2 144.9L176.3 165.1H134.6V152.6H170.9V138.5H134.6V124.6999999999999H175.2L194.2 144.8999999999999zM241 172L215.7 144.6L241 116.5V172zM289.3 156.7C289.3 162.8 284.7 165.1 279.1 165.1H257.6V147.5H278.8C284.7 147.5 289.3 150.3 289.3 156.6999999999999z" />
    +    <glyph glyph-name="cc-apple-pay"
    +      unicode="&#xF416;"
    +      horiz-adv-x="576" d=" M302.2 229.6C302.2 212.4 291.7 202.5 273.2 202.5H248.9V256.7H273.3C291.7 256.7 302.2 246.9 302.2 229.6zM349.7 167C349.7 158.7 356.9 153.3 368.2 153.3C382.6 153.3 393.4 162.4 393.4 175.2V182.9L369.9 181.4C356.6 180.5 349.7 175.6 349.7 167zM576 369V17C576 -9.5 554.5 -31 528 -31H48C21.5 -31 0 -9.5 0 17V369C0 395.5 21.5 417 48 417H528C554.5 417 576 395.5 576 369zM127.8 250.8C136.2 250.1 144.6 255 149.9 261.2000000000001C155.1 267.6 158.5 276.2000000000001 157.6 284.9C150.2 284.6 141 280 135.7 273.6C130.9 268.1 126.8 259.2 127.8 250.8zM188.4 176.3C188.2 176.5 168.8 183.9 168.6 206.3C168.4 225 183.9 234 184.6 234.5C175.8 247.5 162.2 248.9 157.5 249.2C145.3 249.9 134.9 242.3 129.1 242.3C123.2 242.3 114.4 248.9 104.8 248.7C92.3 248.5 80.6 241.4 74.3 230.1C61.2 207.5 70.9 174.1 83.6 155.7C89.8 146.6 97.3 136.6 107.1 137C116.4 137.4 120.1 143 131.3 143C142.6 143 145.8 137 155.6 137.1C165.8 137.3 172.1 146.2000000000001 178.4 155.3C185.3 165.7 188.2 175.7 188.4 176.3zM323.8 229.7C323.8 256.3 305.3 274.5 278.9000000000001 274.5H227.7000000000001V138.1H248.9000000000001V184.7000000000001H278.2000000000001C305.0000000000001 184.7000000000001 323.8000000000001 203.1000000000001 323.8000000000001 229.7000000000001zM413.8 206C413.8 225.7 398 238.4000000000001 373.8 238.4000000000001C351.3 238.4000000000001 334.7 225.5000000000001 334.1 207.9H353.2000000000001C354.8000000000001 216.3000000000001 362.6 221.8000000000001 373.2000000000001 221.8000000000001C386.2000000000001 221.8000000000001 393.4000000000001 215.8000000000001 393.4000000000001 204.6000000000001V197.1000000000001L367.0000000000001 195.5000000000001C342.4000000000001 194.0000000000001 329.1000000000001 183.9 329.1000000000001 166.4C329.1000000000001 148.7000000000001 342.8000000000001 137.0000000000001 362.5000000000001 137.0000000000001C375.8000000000001 137.0000000000001 388.1000000000001 143.7000000000001 393.7000000000001 154.4H394.1V138H413.7000000000001V206zM516 237.1H494.5L469.6 156.5H469.2L444.3000000000001 237.1H422L457.9 137.8L456 131.8C452.8 121.6 447.5 117.6 438.1 117.6C436.4000000000001 117.6 433.2000000000001 117.8 431.9000000000001 117.9V101.5000000000001C433.1 101.1000000000001 438.4000000000001 101.0000000000001 440.0000000000001 101.0000000000001C460.7 101.0000000000001 470.4 108.9 478.9 132.8000000000001L516 237.1z" />
    +    <glyph glyph-name="cc-diners-club"
    +      unicode="&#xF24C;"
    +      horiz-adv-x="576" d=" M239.7 368.1C142.8 368.1 63.9 289.5 63.9 192.3C63.9 95.4 142.8 16.5 239.7 16.5C336.9 16.5 415.5 95.4 415.5 192.3C415.5 289.5 336.9 368.1 239.7 368.1zM199.8 88.5C158.1 104.4 128.4 144.9 128.4 192.3S158.1 280.2000000000001 199.8 296.4V88.5zM279.6 88.2V296.4C321.3 280.2000000000001 351 239.7 351 192.3S321.3 104.4 279.6 88.2000000000001zM528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM329.7 0H239.4C133.2 0 45.6 85.5 45.6 190.2C45.6 304.8 133.2 384 239.4 384H329.7C434.7 384 530.4 304.8 530.4 190.2C530.4 85.5 434.7 0 329.7 0z" />
    +    <glyph glyph-name="cc-discover"
    +      unicode="&#xF1F2;"
    +      horiz-adv-x="576" d=" M83 235.9C83 228 79.8 220.4 74.1 215.2C69.2 210.8 62.5 208.8 52.2 208.8H48V263H52.2C62.5 263 68.9 261.3 74.1 256.4C79.8 251.4 83 243.8 83 235.9zM504.8 264H499.9V239.1H504.6C514.9 239.1 520.4 243.5 520.4 251.9C520.4 259.8 514.9 264 504.8 264zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM428 195H473.3V208.8H444V231H472.3V244.8H444V263H473.3V277H428V195zM341.8 277L376.8 192.8H385.4000000000001L420.9000000000001 277H403.4000000000001L381.2000000000001 221.8L359.3000000000001 277H341.8000000000001zM258.8 235.4C258.8 210.8 278.7 190.8 303.4000000000001 190.8C328.0000000000001 190.8 348.0000000000001 210.7 348.0000000000001 235.4C348.0000000000001 260 328.1000000000001 280 303.4000000000001 280C278.8 280 258.8 260.1 258.8 235.4zM190.8 235.9C190.8 203.4 224.4 183.4 254.1 197.7V216.7C234.8 197.4 207.3 210.9 207.3 235.9C207.3 259.6 234 275 254.1 254.9V273.9C223.9 288.9 190.8 267.1 190.8 235.9zM156.9 207.6C149.3 207.6 143.1 211.3 139.4 218.4L129.1 208.5C146.9 182.4 185.7 190.3 185.7 219.8C185.7 232.9 180.3 238.8 162.1 245.4C152.5 248.8 149.8 251.3 149.8 255.7C149.8 264.4 164.3 269.8 174.7 258.2000000000001L183.1 269C164 286.1 133.4 277.9000000000001 133.4 254.7C133.4 243.4 138.6 237.5000000000001 153.6 232.0000000000001C179.3 222.9 168.3 207.6 156.9 207.6zM99.5 235.9C99.5 260 81.5 277 55.4 277H32V195H55.4C86.3 195 99.5 217.4 99.5 235.9zM122.9 277H106.9V195H122.9V277zM544 160C510.7 139.2 317.6 35.6 128 0H529C537.2 0 544 6.8 544 15V160zM544 195L518.1 229.5C530.2 232 536.8000000000001 240.1 536.8000000000001 252.7C536.8000000000001 281.2 506.5000000000001 277.1 483.9000000000001 277.1V195.1H499.9000000000001V227.9H502.1000000000001L524.3000000000001 195.1H544z" />
    +    <glyph glyph-name="cc-jcb"
    +      unicode="&#xF24B;"
    +      horiz-adv-x="576" d=" M431.5 203.7V236C472.7 236 470 235.8 470 235.8C477.3 234.5 483.3 228.5 483.3 219.8C483.3 211 477.3 205.3 470 204C468.8 203.6 466.7 203.7 431.5 203.7zM474.3 183.5C471.5 184.2 471 184 431.5 184V149C471.1 149 471.5 148.8 474.3 149.5C481.8 151 487.8 157.5 487.8 166.5C487.8 175.2 481.8 182 474.3 183.5zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM182 255.7H125C125 188.6 135.7 146 89.2 146C69.7 146 50.4 151.7 32 160.8V132.8C62 124.5 100 124.5 100 124.5C197.9 124.5 182 172.2 182 255.7zM360.5 251.2C297.1 267.2 195.5 266.1 195.5 191.9C195.5 114.8 303.7 118.3 360.5 132.7V161C312.9 136.3 253 139 253 192S312.8 247.6 360.5 223.2V251.2zM544 161.5C544 180 527.5 192 506 193.5V194.3C525.5 197 536.3 209.8 536.3 224.5C536.3 243.5 520.5999999999999 254.5 499.3 255.5C499.3 255.5 505.6 255.8 379 255.8V128.3H501.6999999999999C525.9999999999999 128.2 543.9999999999999 141.2 543.9999999999999 161.5z" />
    +    <glyph glyph-name="cc-mastercard"
    +      unicode="&#xF1F1;"
    +      horiz-adv-x="576" d=" M482.9 37.7C482.9 30.9 478.3 26 471.7 26C464.9 26 460.5 31.2 460.5 37.7C460.5 44.2 464.9 49.4 471.7 49.4C478.3 49.4 482.9 44.2 482.9 37.7zM172.1 49.4C165 49.4 160.9 44.2 160.9 37.7C160.9 31.2 165 26 172.1 26C178.6 26 183 30.9 183 37.7C182.9 44.2 178.6 49.4 172.1 49.4zM289.6 49.7C284.2 49.7 280.9 46.2 280.1 41H299.2C298.3 46.7 294.8 49.7 289.6 49.7zM397.4 49.4C390.6 49.4 386.5 44.2 386.5 37.7C386.5 31.2 390.6 26 397.4 26C404.2 26 408.6 30.9 408.6 37.7C408.6 44.2 404.2 49.4 397.4 49.4zM503.3 23.3C503.3 22.9999999999999 503.6 22.8 503.6 22.1999999999999C503.6 21.8999999999999 503.3 21.6999999999999 503.3 21.0999999999999C502.9999999999999 20.7999999999999 502.9999999999999 20.5999999999999 502.8 20.2999999999999C502.4999999999999 19.9999999999999 502.3 19.7999999999999 501.6999999999999 19.7999999999999C501.3999999999999 19.4999999999999 501.1999999999999 19.4999999999999 500.5999999999999 19.4999999999999C500.2999999999999 19.4999999999999 500.0999999999999 19.4999999999999 499.4999999999999 19.7999999999999C499.1999999999999 19.7999999999999 498.9999999999999 20.0999999999999 498.6999999999999 20.2999999999999C498.3999999999999 20.5999999999999 498.1999999999999 20.7999999999999 498.1999999999999 21.0999999999999C497.8999999999999 21.5999999999999 497.8999999999999 21.8999999999999 497.8999999999999 22.1999999999999C497.8999999999999 22.6999999999999 497.8999999999999 22.9999999999999 498.1999999999999 23.3C498.1999999999999 23.8 498.4999999999999 24.1 498.6999999999999 24.4C498.9999999999999 24.7 499.1999999999999 24.7 499.4999999999999 24.9C499.9999999999999 25.2 500.2999999999999 25.2 500.5999999999999 25.2C501.0999999999999 25.2 501.3999999999999 25.2 501.6999999999999 24.9C502.1999999999999 24.6 502.4999999999999 24.6 502.8 24.4S502.9999999999999 23.8 503.3 23.3zM501.1 21.9C501.6 21.9 501.6 22.2 501.9 22.2C502.2 22.5 502.2 22.7 502.2 23C502.2 23.3 502.2 23.5 501.9 23.8C501.6 23.8 501.4 24.1 500.8 24.1H499.1999999999999V20.6H499.9999999999999V22H500.3L501.4 20.6H502.2L501.1 21.9zM576 367V15C576 -11.5 554.5 -33 528 -33H48C21.5 -33 0 -11.5 0 15V367C0 393.5 21.5 415 48 415H528C554.5 415 576 393.5 576 367zM64 227.4C64 150.9 126.1 88.9 202.5 88.9C229.7 88.9 256.4 97.1 279 112C206.1 171.3 206.6 283.2 279 342.5C256.4 357.5 229.7 365.6 202.5 365.6C126.1 365.7 64 303.6 64 227.4zM288 118.6C358.5 173.6 358.2 280.8 288 336.1C217.8 280.8 217.5 173.5 288 118.6zM145.7 42.3C145.7 51 140 56.7 131 57C126.4 57 121.5 55.6 118.2 50.5C115.8 54.6 111.7 57 106 57C102.2 57 98.4 55.6 95.4 51.6V56H87.2V19.3H95.4C95.4 38.2 92.9 49.5 104.4 49.5C114.6 49.5 112.6 39.3 112.6 19.3H120.5C120.5 37.6 118 49.5 129.5 49.5C139.7 49.5 137.7 39.5 137.7 19.3H145.9V42.3zM190.6 56H182.7V51.6C180 54.9 176.2 57 171 57C160.7 57 152.8 48.8 152.8 37.7C152.8 26.5 160.7 18.4 171 18.4C176.2 18.4 180 20.3 182.7 23.8V19.1999999999999H190.6V56zM231.1 30.4C231.1 45.4 208.2 38.6 208.2 45.6C208.2 51.3 220.1 50.4 226.7 46.7L230 53.2C220.6 59.3 199.8 59.2 199.8 45C199.8 30.7 222.7 36.7 222.7 30C222.7 23.7 209.2 24.2 202 29.2L198.5 22.9C209.7 15.3 231.1 16.9 231.1 30.4zM266.5 21.1L264.3 27.9C260.5 25.8 252.1 23.5 252.1 32V48.6H265.2000000000001V56H252.1000000000001V67.2H243.9000000000001V56H236.3000000000001V48.7H243.9000000000001V32C243.9000000000001 14.4 261.2000000000001 17.6 266.5000000000001 21.1zM279.8 34.4999999999999H307.3C307.3 50.6999999999999 299.9000000000001 57.1 289.9000000000001 57.1C279.3 57.1 271.7000000000001 49.2 271.7000000000001 37.8C271.7000000000001 17.3 294.3000000000001 13.9 305.5000000000001 23.6L301.7000000000001 29.6C293.9000000000001 23.2 282.1 23.8 279.8000000000001 34.4999999999999zM338.9000000000001 55.9999999999999C334.3 57.9999999999999 327.3 57.8 323.7000000000001 51.6V56H315.5000000000001V19.3H323.7000000000001V40C323.7000000000001 51.6 333.2000000000001 50.1 336.5000000000001 48.4L338.9000000000001 56zM349.5000000000001 37.6999999999999C349.5000000000001 49.0999999999999 361.1000000000001 52.8 370.2000000000001 46.0999999999999L374.0000000000001 52.5999999999999C362.4000000000001 61.6999999999999 341.3000000000001 56.6999999999999 341.3000000000001 37.5999999999999C341.3000000000001 17.7999999999999 363.7000000000001 13.7999999999999 374.0000000000001 22.5999999999999L370.2000000000001 29.0999999999999C361.0000000000001 22.5999999999999 349.5000000000001 26.4999999999999 349.5000000000001 37.6999999999999zM416.2000000000001 55.9999999999999H408V51.6C399.7 62.6 378.1 56.4 378.1 37.7C378.1 18.5 400.5 13 408 23.8V19.2H416.2V56zM449.9000000000001 55.9999999999999C447.5000000000001 57.1999999999999 438.9000000000001 58.8999999999999 434.7000000000001 51.6V56H426.8000000000001V19.3H434.7000000000001V40C434.7000000000001 51 443.7000000000001 50.3 447.5000000000001 48.4L449.9000000000001 56zM490.2 70.8999999999999H482.3000000000001V51.5999999999999C474.1000000000001 62.4999999999999 452.4000000000001 56.6999999999999 452.4000000000001 37.6999999999999C452.4000000000001 18.3 474.9000000000001 13.0999999999999 482.3000000000001 23.8V19.1999999999999H490.2V70.8999999999999zM497.8000000000001 145.9999999999999V141.3999999999999H498.6000000000001V146H500.5000000000001V146.8H495.9V146H497.8zM504.4000000000001 22.1999999999999C504.4000000000001 22.6999999999999 504.4000000000001 23.2999999999999 504.1000000000001 23.7999999999999C503.8000000000001 24.0999999999999 503.6000000000001 24.5999999999999 503.3000000000001 24.8999999999999C503.0000000000001 25.1999999999999 502.5000000000001 25.3999999999999 502.2 25.6999999999999C501.7 25.6999999999999 501.1 25.9999999999999 500.6 25.9999999999999C500.3 25.9999999999999 499.8 25.6999999999999 499.2 25.6999999999999C498.7 25.3999999999999 498.4 25.1999999999999 498.1 24.8999999999999C497.6 24.5999999999999 497.3 24.0999999999999 497.3 23.7999999999999C497 23.2999999999999 497 22.6999999999999 497 22.1999999999999C497 21.8999999999999 497 21.3999999999999 497.3 20.7999999999999C497.3 20.4999999999999 497.6 19.9999999999999 498.1 19.6999999999999C498.4 19.3999999999999 498.6 19.1999999999999 499.2 18.8999999999999C499.7 18.5999999999999 500.3000000000001 18.5999999999999 500.6 18.5999999999999C501.1 18.5999999999999 501.7 18.5999999999999 502.2 18.8999999999999C502.5000000000001 19.1999999999999 503.0000000000001 19.3999999999999 503.3000000000001 19.6999999999999C503.6000000000001 19.9999999999999 503.8000000000001 20.4999999999999 504.1000000000001 20.7999999999999C504.4000000000001 21.3999999999999 504.4000000000001 21.8999999999999 504.4000000000001 22.1999999999999zM507.6000000000001 146.8999999999999H506.2000000000001L504.6000000000001 143.3999999999999L503.0000000000001 146.8999999999999H501.6000000000001V141.4999999999999H502.4000000000001V145.5999999999999L504.0000000000001 142.0999999999999H505.1000000000001L506.5000000000001 145.5999999999999V141.4999999999999H507.6000000000001V146.8999999999999zM512.0000000000001 227.3999999999999C512.0000000000001 303.5999999999999 449.9000000000001 365.6999999999999 373.5000000000001 365.6999999999999C346.3000000000002 365.6999999999999 319.6000000000002 357.4999999999999 297.0000000000001 342.5999999999999C369.1000000000002 283.2999999999999 370.2000000000001 171.0999999999999 297.0000000000001 112.0999999999999C319.6000000000002 97.0999999999999 346.5000000000001 88.9999999999999 373.5000000000001 88.9999999999999C449.9000000000001 88.8999999999999 512.0000000000001 150.8999999999999 512.0000000000001 227.3999999999999z" />
    +    <glyph glyph-name="cc-paypal"
    +      unicode="&#xF1F4;"
    +      horiz-adv-x="576" d=" M186.3 189.8C186.3 177.6 176.6 168.3 164.3 168.3C155.1 168.3 148.3 173.5 148.3 183.3C148.3 195.5 157.8 205.3 170 205.3C179.3 205.3 186.3 199.6 186.3 189.8zM80.5 238.3H75.8C74.3 238.3 72.8 237.3 72.6 235.6L68.3 208.9L76.5 209.2000000000001C87.5 209.2000000000001 96 210.7000000000001 98 223.4C100.3 236.8000000000001 91.8 238.3000000000001 80.5 238.3000000000001zM364.5 238.3H360C358.2 238.3 357 237.3 356.8 235.6L352.6 208.9L360.6 209.2000000000001C373.6 209.2000000000001 382.6 212.2000000000001 382.6 227.2000000000001C382.5 237.8000000000001 373 238.3000000000001 364.5 238.3000000000001zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM128.3 232.6C128.3 253.6 112.1 260.6 93.6 260.6H53.6C51.1 260.6 48.6 258.6 48.4 255.9L32 153.8C31.7 151.8 33.2 149.8 35.2 149.8H54.2C56.9 149.8 59.4 152.7 59.7 155.5L64.2 182.1C65.2 189.3 77.4 186.8 82.2 186.8C110.8 186.8 128.3 203.8 128.3 232.6zM212.5 223.8H193.5C189.7 223.8 189.5 218.3 189.3 215.6C183.5 224.1 175.1 225.6 165.6 225.6C141.1 225.6 122.4 204.1 122.4 180.4C122.4 160.9 134.6 148.2 154.1 148.2C163.1 148.2 174.3 153.1 180.6 160.1C180.1 158.6 179.6 155.4 179.6 153.9C179.6 151.6 180.6 149.9 182.8 149.9H200C202.7 149.9 205 152.8 205.5 155.6L215.7 219.9C216 221.8 214.5 223.8 212.5 223.8zM253 125.9L316.7 218.5C317.2 219 317.2 219.5 317.2 220.2C317.2 221.9 315.7 223.7 314 223.7H294.8C293.1 223.7 291.3 222.7 290.3 221.2L263.8 182.1999999999999L252.8 219.6999999999999C252 221.8999999999999 249.8 223.6999999999999 247.3 223.6999999999999H228.6C226.9000000000001 223.6999999999999 225.4000000000001 221.8999999999999 225.4000000000001 220.1999999999999C225.4000000000001 219 244.9000000000001 163.3999999999999 246.6 158.0999999999999C243.9000000000001 154.2999999999999 226.1 129.4999999999999 226.1 126.4999999999999C226.1 124.6999999999999 227.6 123.2999999999999 229.3 123.2999999999999H248.5C250.3 123.3999999999999 252 124.3999999999999 253 125.8999999999999zM412.3 232.6C412.3 253.6 396.1 260.6 377.6 260.6H337.9000000000001C335.2000000000001 260.6 332.7000000000001 258.6 332.4000000000001 255.9L316.2000000000001 153.9C316.0000000000001 151.9 317.5000000000001 149.9 319.4000000000001 149.9H339.9000000000001C341.9000000000001 149.9 343.4000000000001 151.4 343.9000000000001 153.1L348.4000000000001 182.1C349.4000000000001 189.3 361.6 186.8 366.4000000000001 186.8C394.8 186.8 412.3 203.8 412.3 232.6zM496.5 223.8H477.5C473.7 223.8 473.5 218.3 473.2 215.6C467.7 224.1 459.2 225.6 449.5 225.6C425 225.6 406.3 204.1 406.3 180.4C406.3 160.9 418.5 148.2 438 148.2C447.3 148.2 458.5 153.1 464.5 160.1C464.2 158.6 463.5 155.4 463.5 153.9C463.5 151.6 464.5 149.9 466.7 149.9H484C486.7 149.9 489 152.8 489.5 155.6L499.7 219.9C500 221.8 498.5 223.8 496.5 223.8zM544 257.1C544 259.1 542.5 260.6 540.8 260.6H522.3C520.8 260.6 519.3 259.4 519.0999999999999 257.9L502.8999999999999 153.9L502.5999999999999 153.4C502.5999999999999 151.6 504.0999999999999 149.9 506.0999999999999 149.9H522.5999999999999C525.0999999999999 149.9 527.5999999999999 152.8 527.8 155.6L544 256.8V257.1zM454 205.3C441.8 205.3 432.3 195.6 432.3 183.3C432.3 173.6 439.3 168.3 448.5 168.3C460.5 168.3 470.2 177.5 470.2 189.8C470.3 199.6 463.3 205.3 454 205.3z" />
    +    <glyph glyph-name="cc-stripe"
    +      unicode="&#xF1F5;"
    +      horiz-adv-x="576" d=" M396.9 191.5C396.9 172.4 388.1 158.1 375 158.1C366.7 158.1 361.7 161.1 358.2 164.8L358 217.6C361.7 221.7 366.8 224.6 375 224.6C387.9 224.7 396.9 210.1 396.9 191.5zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM122.2 166.9C122.2 209.2 67.9 201.6 67.9 217.6C67.9 223.1 72.5 225.3 80 225.3C90.8 225.3 104.5 222 115.3 216.2V249.6C103.5 254.3 91.8 256.1 80 256.1C51.2 256.1 32 241.1 32 215.9C32 176.6 86 183 86 166C86 159.4 80.3 157.3 72.4 157.3C60.6 157.3 45.5 162.2 33.5 168.6V134.7000000000001C46.7 129.0000000000001 60.1 126.6 72.3 126.6C101.9 126.8 122.2 141.3 122.2 166.9zM191.1 253.8H164.1V284.6L129.4 277.2L129.2000000000001 163.3C129.2000000000001 142.3 145.0000000000001 126.8 166.1000000000001 126.8C177.7000000000001 126.8 186.3000000000001 128.9 191.0000000000001 131.5V160.3999999999999C186.5000000000001 158.5999999999999 164.0000000000001 152.0999999999999 164.0000000000001 173V223.5H191.0000000000001V253.8zM264.9000000000001 253.8C260.2000000000001 255.5 243.6 258.6 235.3000000000001 243.3L233.1000000000001 253.8H202.4000000000001V129.3H237.9000000000001V213.7C246.3000000000001 224.7 260.5000000000001 222.6 265.0000000000001 221.1V253.8zM309.1 253.8H273.4000000000001V129.3H309.1V253.8zM309.1 301.1L273.4000000000001 293.5V264.6L309.1 272.2V301.1zM431.8 192.3C431.8 233.6 408.3 256.1 383.4000000000001 256.1C369.5000000000001 256.1 360.5000000000001 249.5 355.6 245L353.8 253.8H322.5V88L358 95.5L358.1 135.7C363.2000000000001 132 370.8 126.7 383.2000000000001 126.7C408.6 126.8 431.8000000000001 147.2 431.8000000000001 192.3zM544 191.1C544 227.5 526.4 256.2 492.7 256.2C458.9 256.2 438.4 227.5 438.4 191.3C438.4 148.5 462.6 126.8 497.2 126.8C514.2 126.8 526.9 130.6999999999999 536.6 136V164.6C526.9 159.7 515.8000000000001 156.7 501.7 156.7C487.9 156.7 475.7 161.6 474.1 178.2H543.6C543.7 180.2 544 187.6 544 191.1zM492.4 227.2C483.5 227.2 473.7 220.5 473.7 204.5H510.4C510.4 220.5 501.1 227.2 492.4 227.2z" />
    +    <glyph glyph-name="cc-visa"
    +      unicode="&#xF1F0;"
    +      horiz-adv-x="576" d=" M470.1 216.7S477.7 179.5 479.4 171.7H446C449.3 180.6 462 215.2 462 215.2C461.8 214.9 465.3 224.3 467.3 230.1L470.1 216.7zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM152.5 116.8L215.7 272H173.2L133.9 166L129.6 187.5L115.6 258.9C113.3 268.8 106.2 271.6 97.4 272H32.7L32 268.9C47.8 264.9 61.9 259.1 74.2 251.8L110 116.8H152.5zM246.9 116.6L272.1 272H231.9000000000001L206.8000000000001 116.6H246.9000000000001zM386.8 167.4C387 185.1 376.2 198.6 353.1 209.7000000000001C339 216.8000000000001 330.4000000000001 221.6000000000001 330.4000000000001 228.9000000000001C330.6 235.5000000000001 337.7000000000001 242.3000000000001 353.5000000000001 242.3000000000001C366.6000000000001 242.6000000000001 376.2000000000001 239.5000000000001 383.4000000000001 236.4000000000001L387.0000000000001 234.7000000000001L392.5000000000001 268.3000000000001C384.6000000000001 271.4000000000001 372.0000000000001 274.9000000000001 356.5000000000001 274.9000000000001C316.8000000000001 274.9000000000001 288.9000000000001 253.7000000000001 288.7000000000001 223.5C288.4000000000001 201.2 308.7000000000001 188.8 323.9000000000001 181.3C339.4000000000001 173.7 344.7000000000001 168.7 344.7000000000001 162C344.5000000000001 151.6 332.1 146.8 320.6 146.8C304.6 146.8 296 149.3 282.9000000000001 155.1L277.6 157.6L272 122.7000000000001C281.4 118.4 298.8 114.6 316.8 114.4C359 114.3 386.5 135.2000000000001 386.8 167.4zM528 116.6L495.6 272H464.5C454.9 272 447.6 269.2 443.5 259.1L383.8 116.6H426S432.9 135.8 434.4 139.9H486C487.2 134.4 490.8 116.6 490.8 116.6H528z" />
    +    <glyph glyph-name="centercode"
    +      unicode="&#xF380;"
    +      horiz-adv-x="512" d=" M329.2 179.4C325.4 144.2 293.8 118.8 258.6 122.6C223.4 126.4 198 158 201.8 193.2C205.6 228.4 237.2 253.8 272.4 250C307.5 246.2 333 214.5999999999999 329.2 179.4zM243.4 -55.7C96.7 -48 -8.2 82.5 10.1 223.7C21.3 310.3 75.9 380.6 149.2 415.7C310.2 492.8 498.9 378.3 503.9 199.1C508 52.1 385.5 -63.1 243.4 -55.7zM423.3 124.3C451.1999999999999 242.3 262.8 330.2 186.1 358.5C128.6 302.2 117 169.9 152.3 14.1C221.1 -1.7 321.4 40.4999999999999 423.3 124.3z" />
    +    <glyph glyph-name="chrome"
    +      unicode="&#xF268;"
    +      horiz-adv-x="496" d=" M131.5 230.5L55.1 347.9C102.7 407.1 174.1 439.7 247.1 440C289.4 440.3 332.6 429.5 371.9 406.8C415.3 381.6 448.3 345.4 469.3 303.8L264 314.6C205.9 318 150.6 285.3 131.5 230.5zM164.4 192C164.4 145.8 201.8 108.4 248 108.4S331.6 145.8 331.6 192S294.2000000000001 275.6 248.0000000000001 275.6S164.4 238.3 164.4 192zM479.3 281.2L339.6 274C377.5 229.7 378.1 165.8 346.2000000000001 116.8L234.1 -55.6C280.6 -58.1 328.5 -47.9 371.9 -22.7C479.3 39.3 522.8 169.3 479.3 281.2zM133.7 144.4L40.4 327.9C14.9 288.9 0 242.1 0 192C0 68 90.8 -34.7 209.5 -52.9L273.2 71.9C215.6 61.1 160 92.7000000000001 133.7 144.4z" />
    +    <glyph glyph-name="cloudscale"
    +      unicode="&#xF383;"
    +      horiz-adv-x="448" d=" M318.1 294L308.7000000000001 286.4C286.2000000000001 305.7000000000001 257.2000000000001 320 225.4000000000001 320C153.8 320 96 259.2 96 187.7C96 181.1 96.4 174.6 97.4 168.3C95.4 224.3 139.2 265.7000000000001 190 265.7000000000001C214.2 265.7000000000001 236.2 256.3 252.6 241.0000000000001L227.4 220.6C219.1 221.5 210.6 218.8 204.3 212.5C193.2 201.5 193.2 183.6 204.3 172.5C215.4 161.5 233.2 161.5 244.3 172.5C250.6 178.8 253.3 187.4 252.4 195.6L327.6 284.4C333.9000000000001 290.9 324.3 300.3 318.1 294zM234.3 182.5C228.7 177 219.7 177 214.1 182.5C208.5 188.1 208.5 197.1 214.1 202.7S228.7 208.3 234.3 202.7S239.9 188 234.3 182.5zM224 416C100.5 416 0 315.5 0 192S100.5 -32 224 -32S448 68.5 448 192S347.5 416 224 416zM224 32C135.8 32 64 103.8 64 192S135.8 352 224 352S384 280.2 384 192S312.2 32 224 32z" />
    +    <glyph glyph-name="cloudsmith"
    +      unicode="&#xF384;"
    +      horiz-adv-x="332" d=" M332.5 28.1C332.5 -18.3 294.9 -56 248.5 -56S164.5 -18.3 164.5 28.1S202.1 112.1 248.5 112.1S332.5 74.5 332.5 28.1zM248.5 272C294.9 272 328.5 309.6 328.5 356S294.9 440 248.5 440S160.5 402.4000000000001 160.5 356S130.9 280 84.5 280S0.5 238.4000000000001 0.5 192S38.1 112 84.5 112S168.5 145.6 168.5 192S202.1 272 248.5 272z" />
    +    <glyph glyph-name="cloudversify"
    +      unicode="&#xF385;"
    +      horiz-adv-x="616" d=" M148.6 144C156.8 75.5 216 28.5 294.6 32.7C345.8 -10.6 431.4000000000001 -13.1 481 38.3C550.2 37.2 599.5 82.9 612.5 137.8C627.3 200.3 594.3 270.3 520.4 292.9C487.4 381 389 394.4 333.9 377.9C276.6 360.6 249.6 324.7 234.6 268.2C226.8 265.5 208.1 259.3 189.6 244.1C201.3 244.1 204.8 235.2 204.8 224.6V204.2C204.8 193.5 196.1 184.7 185.3 184.7H165.1C154.4 184.7 145.6 190.7 145.6 201.4V208H98.8C95 208 88 203.7 88 196.1V155.7C88 149.3 93.3 143.9 99.7 143.9H148.6zM376 136C365.3 89.7 397.7 63.6 431.3 49.2C324.1 15.4 259.7 100 296 160C262.8 138.4 262.3 88.8 266.8 67.1C248.9 79.5 213 99.5 209.4 146.9C206.4 186.8 230.9 222.6 266.4 240.8000000000001C297 256.6 369.9 249.3 400 200C385.9 248 346.2 270.1 298.2 274.8C329.1 305.5 362.6 325.1 412.4 318.5C482.2 309.2 545.5999999999999 235.7 480.1 168C515.0999999999999 184.3 528.8 222.4 527.5999999999999 244.9L538.0999999999999 225.3C549.8999999999999 203.3 553.3 177.7 547.4999999999999 153.3C538.2999999999998 114.3 506.8999999999999 84.5 467.7999999999999 76.8C435.6999999999999 70.5 384.7 81.9 375.9999999999999 136zM128 240H88.2C79.3 240 72 247.3 72 256.2V295.8C72 304.7 79.3 312 88.2 312H128C136.9 312 144.2 304.7 144.2 295.8V256.2C144.2 247.3 136.9 240 128 240zM10.1 280C4.5 280 0 284.5 0 290.1V317.9C0 323.5 4.5 328 10.1 328H37.8C43.3 328 47.9 323.5 47.9 317.9V290.1C47.9 284.5 43.4 280 37.8 280H10.1zM168 305.3V326.7000000000001C168 331.8 172.2 336 177.3 336H198.7C203.8 336 208 331.8 208 326.7000000000001V305.3C208 300.2000000000001 203.8000000000001 296 198.7 296H177.3C172.2 296 168 300.2 168 305.3zM56 212.5V187.5C56 181.2 50.9 176 44.6 176H19.4C13.1 176 8 181.2 8 187.5V212.5C8 218.8 13.1 224 19.4 224H44.5C50.9 224 56 218.8 56 212.5z" />
    +    <glyph glyph-name="codepen"
    +      unicode="&#xF1CB;"
    +      horiz-adv-x="512" d=" M502.285 288.296L268.2850000000001 444.296C260.298 449.211 251.7740000000001 449.256 243.7140000000001 444.296L9.714 288.296C3.714 284.2970000000001 0 277.153 0 270.011V114.012C0 106.869 3.714 99.726 9.715 95.726L243.715 -60.296C251.702 -65.211 260.226 -65.256 268.286 -60.296L502.286 95.726C508.286 99.725 512.001 106.869 512.001 114.012V270.011C512 277.153 508.286 284.2970000000001 502.285 288.296zM278 384.8690000000001L450.286 270.011L373.429 218.582L278 282.2970000000001V384.8690000000001zM234 384.8690000000001V282.2970000000001L138.571 218.582L61.714 270.011L234 384.8690000000001zM44 228.868L99.143 192.011L44 155.154V228.868zM234 -0.847L61.714 114.011L138.571 165.4400000000001L234 101.725V-0.847zM256 140.011L178.285 192.011L256 244.011L333.7150000000001 192.011L256 140.011zM278 -0.847V101.725L373.429 165.4400000000001L450.286 114.0110000000001L278 -0.847zM468 155.154L412.857 192.011L468 228.868V155.154z" />
    +    <glyph glyph-name="codiepie"
    +      unicode="&#xF284;"
    +      horiz-adv-x="472" d=" M422.5 245.1C453.2 245.1 456 192 422.2 192H411.4V147.7H384.8V245.1H422.5zM472 95.4C429.9 3.5 350.4 -56 248 -56C111 -56 0 55 0 192S111 440 248 440C345.4 440 420.8 386.3 466.2 301.6L280.2 192.8L472 95.4zM433.5 82.9L373.2 113.6C346.1 69.3 302.8 42.1999999999999 250.8 42.1999999999999C168.3 42.1999999999999 101.6 108.8999999999999 101.6 191.0999999999999C101.6 273.5999999999999 168.3 340.2999999999999 250.8 340.2999999999999C299.2 340.2999999999999 339.7 316.7999999999999 367.7 276.8999999999999L427.2 311.4999999999999C386.5 374.0999999999999 322.5 411.4999999999999 248 411.4999999999999C126.8 411.4999999999999 28.5 313.1999999999999 28.5 191.9999999999999S126.8 -27.5 248 -27.5C326.6 -27.5 394.5 14.6 433.5 82.9z" />
    +    <glyph glyph-name="connectdevelop"
    +      unicode="&#xF20E;"
    +      horiz-adv-x="576" d=" M550.5 207L500.411 293.786C501.482 295.928 502.286 298.339 502.286 301.0180000000001C502.286 309.054 495.59 315.751 487.554 316.019L432.107 411.9120000000001C432.643 413.519 433.178 415.126 433.178 416.733C433.178 425.304 426.214 432.001 417.91 432.001C413.089 432.001 409.071 429.858 406.124 426.376H299.518C296.839 429.857 292.8210000000001 432 288 432S279.161 429.857 276.482 426.375H170.411C167.464 429.857 163.447 432 158.625 432C150.322 432 143.357 425.304 143.357 416.732C143.357 415.125 143.893 413.25 144.429 411.911L88.446 314.678C83.09 312.2680000000001 79.339 307.178 79.339 301.017C79.339 300.482 79.607 299.9460000000001 79.607 299.41L26.303 207.267C19.071 205.928 13.713 199.767 13.713 192.267C13.713 185.035 18.802 178.874 25.767 177.267L80.946 81.909C80.41 80.302 80.142 78.963 80.142 77.088C80.142 69.8559999999999 85.231 63.6949999999999 92.196 62.356L143.893 -27.376C143.357 -28.983 142.822 -30.858 142.822 -32.733C142.822 -41.304 149.786 -48.001 158.09 -48.001C162.911 -48.001 166.929 -45.858 169.608 -42.6439999999999H276.483C279.161 -45.857 283.447 -48 288 -48S296.839 -45.857 299.5180000000001 -42.643H406.6610000000001C409.3390000000001 -45.589 413.3570000000001 -47.464 417.6430000000001 -47.464C426.2140000000001 -47.464 432.9110000000001 -40.5 432.9110000000001 -32.196C432.9110000000001 -30.589 432.6440000000001 -29.25 432.1080000000001 -27.911L483.8050000000001 62.357C490.7690000000001 63.696 495.859 69.857 495.859 77.0889999999999C495.859 78.696 495.5910000000001 80.3029999999999 495.0550000000001 81.91L549.9660000000001 177.268C556.9300000000002 178.607 562.2880000000001 184.768 562.2880000000001 192.268C562.2860000000002 199.5 557.1960000000001 205.661 550.5000000000001 207zM153.535 -2.732L109.875 73.071H153.535V-2.732zM153.535 81.107H109.875C109.607 82.178 109.071 83.249 108.536 84.321L153.535 131.731V81.107zM153.535 143.518L103.178 90.2139999999999C101.839 90.7499999999999 100.499 91.5539999999999 99.16 91.821L43.447 188.25C43.982 189.589 43.982 190.929 43.982 192.268S43.982 194.678 43.714 195.75L95.679 285.75C98.358 286.0180000000001 101.036 286.822 103.447 288.429L153.536 236.464V143.518zM153.535 245.84L107.732 293.25C109.071 295.393 109.875 298.071 109.875 301.017C109.875 301.285 109.607 301.821 109.607 302.089L153.535 317.893V245.84zM153.535 326.465L109.875 310.661L153.535 386.197V326.465zM480.054 287.357L480.8579999999999 286.018L445.5 118.875L381.75 186.107L479.786 287.625L480.054 287.357zM291.75 92.893L303.2680000000001 81.107H280.5L291.75 92.893zM291.4820000000001 104.143L208.179 189.589L287.7320000000001 273.964L370.7680000000001 186.375L291.4820000000001 104.1429999999999zM296.8390000000001 98.25L376.1250000000001 180.482L443.6250000000001 109.232L437.7330000000001 81.107H313.714L296.839 98.25zM410.411 403.607C411.4820000000001 403.0710000000001 412.553 402.535 413.8930000000001 402.267L471.75 301.553V301.017C471.75 298.0710000000001 472.553 295.3930000000001 473.893 293.25L376.393 192L293.358 279.589L410.411 403.607zM401.304 405.75L287.7320000000001 285.482L230.6780000000001 345.75L397.0170000000001 405.75H401.3040000000001zM277.821 405.75C280.499 403.072 283.981 401.4650000000001 288 401.4650000000001S295.5 403.072 298.1789999999999 405.75H373.1789999999999L224.786 352.179L173.893 405.75H277.8210000000001zM161.572 400.125L162.643 402.267A33.834 33.834 0 0 1 165.322 403.0710000000001L216.483 349.231L161.572 329.41V400.125zM161.572 320.839L222.375 342.803L282.107 279.589L202.554 195.482L161.572 237.535V320.839zM161.572 228.161L198 190.393L161.572 152.089V228.161zM161.572 140.303L203.625 184.767L286.393 98.785L269.25 81.107H161.572V140.303zM168.536 -21.75C166.929 -20.143 165.054 -19.072 162.643 -18.268L161.572 -16.6609999999999V73.071H261.482L169.875 -21.75H168.536zM298.447 -21.75C295.7680000000001 -19.34 292.019 -17.465 288 -17.465S280.233 -19.34 277.553 -21.75H181.124L272.731 73.071H311.035L402.642 -21.75H298.447zM418.447 -9.964L414.161 -17.464C412.822 -17.732 411.751 -18.267 410.679 -18.803L321.483 73.072H435.8589999999999L418.447 -9.964zM431.303 12.268L444.161 73.071H466.125L431.303 12.268zM466.125 81.107H445.7680000000001L450.3210000000001 102.2670000000001L467.4640000000001 84.0530000000001C466.929 83.2500000000001 466.393 82.179 466.1250000000001 81.107zM532.2860000000001 188.518L476.8390000000001 91.821C475.5000000000001 91.286 474.1600000000001 90.75 472.8210000000001 89.947L452.1960000000001 111.911L486.7500000000001 275.839L532.5530000000001 196.553C532.2860000000001 195.214 531.7500000000001 193.875 531.7500000000001 192.268C531.7500000000001 190.929 532.0180000000001 189.857 532.2860000000001 188.518z" />
    +    <glyph glyph-name="contao"
    +      unicode="&#xF26D;"
    +      horiz-adv-x="512" d=" M45.4 143C59.8 75.9 71.8 14 113.6 -32H34C15.3 -32 0 -16.8 0 2V382C0 400.7 15.2 416 34 416H91.7C77.9 403.4 65.6 388.8 54.8 372.4C9.4 302.4 27.8 225.6 45.4 143zM478 416H387.8C409.2 394.6 427 366.5 440.5 331.9L303.4 302.6C288.5 331.6 265.6 355.9 220.8 346.5C196.2 341.2 179.8 327.2 172.5 311.9C163.7 293.2000000000001 159.3 272.1 180.7 171.6C201.8 71.4 214.4 53.9 230.2 40.4C243.1 29.3 263.6 23.4 288.5 28.7C333 38.1 344.2 69.4 345.9 101.9L483.3 131.5000000000001C486.4999999999999 60.0000000000001 464.6 6.3000000000001 425.9 -32.0999999999999H478C496.7 -32.0999999999999 512 -16.8999999999999 512 1.9000000000001V382C512 400.8 496.8 416 478 416z" />
    +    <glyph glyph-name="cpanel"
    +      unicode="&#xF388;"
    +      horiz-adv-x="640" d=" M52.9 234.3H92.9L86.7 210.7C84.8 204.2 79.3 199.8 72.4 199.8H53.8C28.9 199.8 29.1 162.4 53.8 162.4H65.1C69.3 162.4 72.7 158.5000000000001 71.5 154.1L64.4 128H52C18.5 128 -7 159.4 1.7 193.2C9 220.2 30 234.3 52.9 234.3M73.1 128L108 258.1C109.8 264.5 115.2 269 122.3 269H159.3C183.4 269 204.7 252.6 210.3 227.8C216.9 198.7 195.8 162.5 158.6 162.5H126.6L133 186.3C134.8000000000001 192.5 140.3000000000001 197.1 147.3000000000001 197.1H157.6000000000001C170.0000000000001 197.1 178.4000000000001 208.8 175.9000000000001 219.7C173.8000000000001 228.9 166.0000000000001 234.5000000000001 157.6000000000001 234.5000000000001H137.8000000000001L112 138.8C110.1 132.6 104.6 128.1 97.8 128.1L73.1 128M293.7 197.4C294 198.4 295.6 202.7 291.6 202.7H234.1C224.4 202.7 217.5 211.6 219.9 221.2L223.4 234.6H301.3C320.1 234.6 334.6 217 329.8 197.8L315.8 146C313 135.4 303.6 128.2 292.4 128.2L234.9 128.4C192 128.4 196.4 192.2 235.6 192.2H284L280.5 179C278.6 172.8 273.1 168.2 266.3 168.2H244.7C239.4 168.2 239.4 160.3 244.7 160.3H279.6C284.2000000000001 160.3 284.7000000000001 164.2 285.1 165.6L293.7000000000001 197.4M396.8000000000001 234.3000000000001C431.2000000000001 234.3000000000001 456.1000000000001 202.0000000000001 447.1000000000001 168.9L438.3000000000001 135.8C437.1000000000001 130.9 432.6000000000001 128 428.0000000000001 128H408.9000000000001C404.4000000000001 128 401.3 132 402.5000000000001 136.3L413.1000000000001 176.3C416.4000000000001 187.9 407.5000000000001 199.7 395.0000000000001 199.7H375.2000000000001L358.0000000000001 135.7000000000001C356.8000000000001 130.9 352.4000000000001 127.9 347.6000000000001 127.9H328.7000000000001C324.5000000000001 127.9 321.1000000000001 131.8 322.3000000000002 136.2000000000001L348.5000000000001 234.2000000000001H396.8000000000002M498 196.4L490 166.4C489.1 163.1 491.5 159.7 495.1 159.7H568.4L562.6999999999999 138.7C560.8 132.5 555.3 128 548.4999999999999 128H481.7999999999999C461.7999999999999 128 448.4999999999999 147 453.4999999999999 164.7L464.2999999999999 204.7C469.0999999999999 222.3 484.9999999999999 234.3 502.8999999999999 234.3H550.1999999999999C569.1999999999999 234.3 583.4 216.6 578.4999999999999 197.5L575.2999999999998 185.5C572.3999999999999 174.5 562.5999999999998 167.9 552.0999999999998 167.9H498.6999999999998L502.1999999999998 180.9C503.7999999999998 187.1 509.3999999999998 191.7 516.3999999999999 191.7H538C540 191.7 541.3 192.7 541.9 194.7L542.6 197.3C543.3000000000001 200 541.3000000000001 202.4 538.7 202.4H505.8000000000001C501.7 202.4 498.9000000000001 200.3 498.0000000000001 196.4zM568.2 128L603.8000000000001 261.1C605.0000000000001 265.8 609.3000000000001 269 614.2 269H633.1C637.6 269 640.8000000000001 265 639.6 260.7L613.1 162.5C608 141.8 588.9 128 568.2 128" />
    +    <glyph glyph-name="creative-commons-by"
    +      unicode="&#xF4E7;"
    +      horiz-adv-x="496" d=" M314.9 253.6V152.2H286.6V31.7H209.5V152.1H181.2V253.6C181.2 258 182.8 261.8 185.8 264.9C188.9 268 192.7 269.6 197.1 269.6H299C303.1 269.6 306.8 268 310.1 264.9C313.2000000000001 261.7000000000001 314.9000000000001 258 314.9000000000001 253.6zM213.4 317.3C213.4 340.6 224.9 352.3 247.9 352.3S282.4 340.6 282.4 317.3C282.4 294.3 270.9 282.8 247.9 282.8S213.4 294.3 213.4 317.3zM247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3z" />
    +    <glyph glyph-name="creative-commons-nc-eu"
    +      unicode="&#xF4E9;"
    +      horiz-adv-x="496" d=" M247.7 440C103.6 440 0 323.2 0 192C0 55.7 111.7 -56 247.7 -56C377.9 -56 496 44.9 496 192C496 331 388.4 440 247.7 440zM248.3 -10.7C136.3 -10.7 44.7 81.8 44.7 192C44.7 215.2 48.4 237.2 55.6 258L121.3 228.9H116.6V199.4H139.9C139.9 193.2 139.5 196.2 139.5 179.9H116.7V150.4H143.7C155.1 83.4 210.9 49.1 268.3 49.1C294.9 49.1 318.9 56.9999999999999 333.1 64.9L323.1 111C314.4 106.4 294.9 100.2 275.8 100.2C247.6 100.2 217.7 111.1 208.5 150.4H298.8L427.1 93.6C425.6 91.4999999999999 370.9 -10.7 248.3 -10.7zM231.6 179.9L231.1 180.3L232 179.9H231.6zM308.8 199.4H312.5V228.9H242.2L213.6 241.5C216.1 247 219 252 222.4 255.8C235.3 271.6 253.5 278.2 273.5 278.2C291.8 278.2 308.8 272.8 319.6 268.2L331.2000000000001 315.5C316.2000000000001 322.1 294.2000000000001 327.9 268.9000000000001 327.9C229.9000000000001 327.9 196.7000000000001 312.1 173 285.6C167.7 279.5 163.2 272.7000000000001 159.1 265.5L77.5 301.6C142.1 398.4000000000001 235.2 395.2000000000001 248.2 395.2000000000001C361.2000000000001 395.2000000000001 451.2 305 451.2 191.8C451.2 173.1 449.1 155.5 444.9000000000001 138.9L308.8000000000001 199.4z" />
    +    <glyph glyph-name="creative-commons-nc-jp"
    +      unicode="&#xF4EA;"
    +      horiz-adv-x="496" d=" M247.7 440C103.6 440 0 323.2 0 192C0 55.6 111.8 -56 247.7 -56C377.9 -56 496 44.8 496 192C496 330.8 388.5 440 247.7 440zM248.3 -10.7C136.3 -10.7 44.7 81.8 44.7 192C44.7 213.1 47.7 233.2 53.7 252.3L180.7 195.8H152.8V157.2H210.9L216.6 145.4V126.7H152.8V88H216.6V32H278.3V88H342.5V123.7L423.5 87.6C422 85.4 366.3999999999999 -10.7 248.3 -10.7zM335.9 126.6H278.3V145.3L281.2 150.9L335.8999999999999 126.6zM342.4 178V195.8H303.8L366.8 311.8H301L257.6 215.8L234.6 226L195 311.7H129.2000000000001L156.5000000000001 260.7L74.6000000000001 297.2C102.4000000000001 341.3 157.2000000000001 395.3 248.3000000000001 395.3C361.1 395.3 451.3000000000001 305.3 451.3000000000001 191.9C451.3000000000001 170.9 448.6000000000001 151.3 443.4000000000001 132.9L342.4000000000001 178z" />
    +    <glyph glyph-name="creative-commons-nc"
    +      unicode="&#xF4E8;"
    +      horiz-adv-x="496" d=" M247.6 440C387.4 440 496 332.1 496 192C496 44.8 377.5 -56 247.6 -56C113.1 -56 0 54.8 0 192C0 324.9 104.7 440 247.6 440zM55.8 258.9C48.4 238.5 44.7 216.2 44.7 192C44.7 81.1 136.8 -10.4 248.4 -10.4C370.8 -10.4 425.6 91.4 426.9 93.7000000000001L333.5 135.3000000000001C325.8 98.2000000000001 292.3 82.3000000000001 265.3 79.9000000000001V41.8000000000001H236.5V80C209 80.3 183.9 90.2 161.2 109.7L195.3 144.2C227 114.8 281.7 112.4 281.7 146.4C281.7 152.6 279.5 157.6 275.1 161.5C260.9 167.5 273.3 161.6 55.8 258.9zM248.4 395.7C210 395.7 136 387 77.9 302.7L172.7 260.2C182.7 291.5 213.1 303.1 236.5 304.5V342.6H265.3V304.5C288 303.3 308.7 295.6 327.3 281.5L295 248.3C252.3 278.2000000000001 211.5 256.3 225 237.2C278.4 213.1 268.8 217.4 318 195.6L445.1 138.9C449.2000000000001 156.3 451.3 174.0000000000001 451.3 192C451.3 249.0000000000001 431.5 297 392 335.9000000000001C352.7 375.8000000000001 304.8 395.7000000000001 248.4 395.7000000000001z" />
    +    <glyph glyph-name="creative-commons-nd"
    +      unicode="&#xF4EB;"
    +      horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM342.4 251V208.5H162.1V251H342.4zM342.4 171.2V128.7H162.1V171.2H342.4z" />
    +    <glyph glyph-name="creative-commons-pd-alt"
    +      unicode="&#xF4ED;"
    +      horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM135.5 124.7V262H203.7C237.4 262 254.2 246.5 254.2 215.5C254.2 206.5 251.2 169 197.1 169H170.1V124.7H135.5zM169.6 236.3V194.7H198.8C226.7 194.7 228.8 236.3 197.9 236.3H169.6zM263.5 124.7V262H316.7C338.1 262 386.7 256.8 386.7 193.4C386.7 129.9 338.1 124.8 316.7 124.8H263.5zM297.6 233.2V153.5H317.5C341.5 153.5 352 168.8 352 193.4C352 235.4 320.8 233.3 317 233.3L297.6 233.2z" />
    +    <glyph glyph-name="creative-commons-pd"
    +      unicode="&#xF4EC;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 328.9 0 192C0 55 111 -56 248 -56S496 55 496 192C496 328.9 385 440 248 440zM248 -9.5C108.8 -9.5 12.2 128.5 57.8 258.4L136.6 223.3C134.5 212.8 133.3 201.8 133.3 190.4C133.3 91.4 207.2 63.5 253.7 63.5C276.6 63.5 307.2000000000001 70.2 333.1 93L297 136.9C291.5 130.6 279.4 120.2 260.7 120.2C222.9 120.2 207 160.1 206.8 192.1C437.2 89.5 423.3 95.6 424.7 95.3C390.4 32.9 324.1 -9.5 248 -9.5zM442.2 140.5L218.2 240.5C237 274.5 273.1 271.2 292.9 251.5L333.3 293.1C306.2 316.4 275.3 320.6 255.2 320.6C207.8 320.6 174.3 300.1 154.5 269L79.5999999999999 302.4C115.6999999999999 357.3 177.6999999999999 393.6 248.1 393.6C359.2 393.6 449.5999999999999 303.2 449.5999999999999 192.1C449.5999999999999 174.1 447.2 156.7000000000001 442.7999999999999 140.1C442.4999999999999 140.2000000000001 442.3999999999999 140.3 442.1999999999999 140.5z" />
    +    <glyph glyph-name="creative-commons-remix"
    +      unicode="&#xF4EE;"
    +      horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM410.1 187.6L415 185.4V115.4C407.8 111.8 351.6 87.9 347.7 86.6C341.2 88.4 234 133.4 210.4 142.8L146.2 116.2L82.9 143.7V207.5L142.2 232.3C141.5 233 141.8 227.3 141.8 302.7000000000001L209.1 332.4000000000001L361 269.5V207.9L410.1 187.6zM339.7000000000001 106.1V149.9H339.3000000000001V151.7000000000001L225.5000000000001 198.2000000000001V153L339.3000000000001 106.1V106.5L339.7000000000001 106.1zM347.2000000000001 163.7000000000001L387.1 180.1L350.3 195.6L311.3 179.2000000000001L347.2 163.7000000000001zM399.5000000000001 125.6V168.6L355.2 150V106.6L399.5 125.6z" />
    +    <glyph glyph-name="creative-commons-sa"
    +      unicode="&#xF4EF;"
    +      horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM137.7 227C150.7 310.9 218.2 322.7 246.6 322.7C346.4 322.7 374.1 240.2 374.1 188.5C374.1 124.9 333.1 55.6 245.2 55.6C206.3 55.6 146.1 75.6 135.8 152.6H198.3C199.8 122.5 217.9 107.4 252.8 107.4C276.1 107.4 310.8 125.6 310.8 190.2000000000001C310.8 272.7000000000001 261.7 270.8000000000001 254.1 270.8000000000001C221 270.8000000000001 202.4 256.2000000000001 198.3 227.0000000000001H216.5L167.3 177.8000000000001L118.3 227.0000000000001H137.7z" />
    +    <glyph glyph-name="creative-commons-sampling-plus"
    +      unicode="&#xF4F1;"
    +      horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM355.4 189.7C350.7 189.7 346.4 186.9 344.7 182.5L340.7 173L329.7 265.8C328 279.7000000000001 307.7 279.2000000000001 306.6 265.4L302.3 214L297.1 282.8C296 297.1 275 297 273.9 282.8L270.4 237.9L264.5 332.2C263.6 346.7 242.2 346.6 241.3 332.2L236.2 248.5L231.9 314.8C231 329.2000000000001 209.7 329.2000000000001 208.7 314.8L203.4 234.6L199.3 291.6C198.2 305.9000000000001 177.3 305.9000000000001 176.1 291.8L168.4 202L166.6 214.2C164.9 225.6 149.5 227.8 144.6 217.5L131.4 189.8H87.5V166.6H138.8C143.2 166.6 147.2 169.1 149.2 173L159.9 99.9C161.9 86.4 181.8 86.9 183 100.6L186.8 144.2L192.5 65.9C193.6 51.5 214.8 51.7 215.7 66L220.3 136.4L225.1 63.1C226 48.7 247.4 48.7 248.3 63.2L253.2 143.7L257.7 71.9C258.6 57.6 279.8 57.4 280.9 71.7L285.5 130.3L290.4 65.9C291.5 51.6 312.4 51.7 313.5 65.8L320.3 148.8L323 126.5C324.4 114.6999999999999 340.7 112.3999999999999 345.3 123.3999999999999L363.3 166.7999999999999H413.8V190L355.4000000000001 189.7zM277.4 184.5H255.5V162.6C255.5 158.5 252.2 155.1 248 155.1C243.9 155.1 240.5 158.4 240.5 162.6V184.5H218.6C214.5 184.5 211.1 187.8 211.1 192C211.1 196.1 214.5 199.5 218.6 199.5H240.5V221.4C240.5 225.5 243.9 228.9 248 228.9S255.5 225.6 255.5 221.4V199.5H277.4C281.5 199.5 284.9 196.2 284.9 192C284.9 187.9 281.5 184.5 277.4 184.5z" />
    +    <glyph glyph-name="creative-commons-sampling"
    +      unicode="&#xF4F0;"
    +      horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM252 342.1C254.8 342.4 263.5 341.1 263.5 330.6L270.1 223.4L275 282.7C275 288.7 279.7 293.3 285.6 293.3C291.5 293.3 296.2000000000001 288.6 296.2000000000001 282.7C296.2000000000001 280.2 295.7000000000001 288.4 301.9000000000001 201.2L307.7000000000001 265.4C308.0000000000001 268.3 310.6 274.7 317.9000000000001 274.7C321.7000000000001 274.7 327.8 272.4 328.5000000000001 265.8L340.0000000000001 169.3L345.3000000000001 182.1C347.1000000000001 186.5 350.5000000000001 188.7 355.5000000000001 188.7H413.5000000000001V167.4H362.6000000000001L344.4000000000001 123.1C340.5000000000001 113.2 324.9000000000001 114 323.6000000000001 126.2L319.6000000000001 158.1L312.1000000000001 65.5C311.8000000000001 62.5 309.1000000000001 56.2 301.9000000000001 56.2C298.9000000000001 56.2 292.1000000000001 58.3 291.3000000000001 65.5C291.3000000000001 67.4 291.9000000000001 59.7 285.1000000000001 143.4L279.8000000000001 71.2C278.7000000000001 66.4 275.0000000000001 61.9 269.2000000000001 61.9C266.3000000000001 61.9 259.4000000000001 63.9 258.6 71.2C258.6 73.1 259.1 64.5 252.8 158.9L247 64.1C247 57.8 243.4 51.7 236.4 51.7C231.2 51.7 225.8 55.8 225.8 63.7L220 151.4C214.2 58.9 214.7 67.4 214.7 65.5C213.6 60.7 209.9 56.2 204.1 56.2C201.1 56.2 194.3 58.3 193.5 65.5C193.5 66.2 193.1 66.6 193.1 68.1L186.9 156.7000000000001L182 100C181.3 93.5 175.3 90.7 171.4 90.7C165.6 90.7 161.8 94.8 160.8 99.6L149.7 176C147.7 172 146.2 167.6 138.6 167.6H87.2V188.9H132L145.7 216.8000000000001C150.1 226.7000000000001 163.9 224 165.6 214.1000000000001L168.7 193.7000000000001L177.1 291.6C177.1 297.6 181.9 302.2000000000001 187.7 302.2000000000001C188.2 302.2000000000001 198.3 302.4000000000001 198.3 289.8000000000001L203.2 220.7000000000001L209.8 313.3000000000001C209.8 323.4000000000001 219.3 323.9000000000001 220 323.9000000000001C220.6 323.9000000000001 230.6 323.2000000000001 230.6 313.3000000000001L235.9 232.7000000000001L242.1 330.6C242.2 331.7000000000001 241.5 340.9000000000001 252 342.1z" />
    +    <glyph glyph-name="creative-commons-share"
    +      unicode="&#xF4F2;"
    +      horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM349.4 262.9C357.2 262.9 363.1 256.8 363.1 249.2V66.7C363.1 59 357 53 349.4 53H214.3C206.6 53 200.6 59 200.6 66.7V120.7H146.6C138.8 120.7 132.9 126.7 132.9 134.4V316.9C132.9 325.1 139.5 329.6 145.3000000000001 330.6H281.7000000000001C289.4000000000001 330.6 295.4000000000001 324.6 295.4000000000001 316.9V262.9H349.4000000000001zM159.9 147.7H200.6V249.1C200.6 256.5 206.4 261.7 212.6 262.8H268.4000000000001V303.1H159.9V147.6999999999999zM336.1 235.8H227.6V80.4H336.1V235.8z" />
    +    <glyph glyph-name="creative-commons-zero"
    +      unicode="&#xF4F3;"
    +      horiz-adv-x="496" d=" M247.6 440C389.4 440 496 329.9 496 192C496 44.9 377.5 -56 247.6 -56C113.6 -56 0 53.5 0 192C0 324.9 104.7 440 247.6 440zM248.4 395.3C130.2 395.3 44.7 297.4 44.7 192C44.7 82.2 135.9 -10.8 248.4 -10.8C351.6 -10.8 451.2 70.3 451.2 192C451.3 305.8 361 395.3 248.4 395.3zM248 334.8C166.1 334.8 145.5 257.5 145.5 192C145.5 126.5 166.1 49.2 248 49.2S350.5 126.5 350.5 192C350.5 257.5 329.9 334.8 248 334.8zM248 280.9C251.3 280.9 254.4 280.4 257.2 279.7000000000001C263.1 274.6 266 267.6 260.3 257.8L205.8 157.6C204.1 170.3 203.9 182.7000000000001 203.9 192C203.9 220.8000000000001 205.9 280.9000000000001 248 280.9000000000001zM288.8 234.7C291.7 219.3 292.1 203.3 292.1 192C292.1 163.1 290.1 103.1 248.0000000000001 103.1C234.5000000000001 103.1 215.4 110.8 227.9000000000001 129.5L288.8 234.7z" />
    +    <glyph glyph-name="creative-commons"
    +      unicode="&#xF25E;"
    +      horiz-adv-x="496" d=" M245.83 233.13L212.61 215.85C203.18 235.43 187.37 235.78 185.15 235.78C163.02 235.78 151.93 221.17 151.93 191.94C151.93 168.37 161.14 148.1 185.15 148.1C199.62 148.1 209.8 155.19 215.72 169.36L246.27 153.86C240.1 142.35 220.58 114.88 181.17 114.88C158.57 114.88 107.21 125.2 107.21 191.93C107.21 250.62 150.21 268.99 179.84 268.99C210.56 269 232.54 257.04 245.8300000000001 233.13zM388.88 233.13L356.1 215.85C346.6 235.62 330.38 235.78 328.2000000000001 235.78C306.0600000000001 235.78 294.98 221.17 294.98 191.94C294.98 168.39 304.2100000000001 148.1 328.2000000000001 148.1C342.6500000000001 148.1 352.85 155.19 358.7400000000001 169.36L389.7400000000001 153.86C387.6400000000001 150.11 368.3500000000001 114.88 324.6500000000001 114.88C301.9600000000001 114.88 250.6900000000001 124.75 250.6900000000001 191.93C250.6900000000001 250.6 293.6600000000001 268.99 323.3200000000001 268.99C354.0300000000001 269 375.9000000000001 257.04 388.8800000000001 233.13zM247.56 439.95C104.74 439.95 0 324.89 0 191.95C0 53.46 113.6 -56.05 247.56 -56.05C377.49 -56.05 496 44.82 496 191.95C496 329.82 389.38 439.95 247.56 439.95zM248.43 -10.86C135.89 -10.86 44.73 82.18 44.73 191.95C44.73 297.37 130.16 395.2200000000001 248.45 395.2200000000001C360.98 395.2200000000001 451.27 305.76 451.27 191.96C451.26 70.27 351.59 -10.86 248.43 -10.86z" />
    +    <glyph glyph-name="critical-role"
    +      unicode="&#xF6C9;"
    +      horiz-adv-x="445.64" d=" M224.82 448C225.08 447.85 441.39 323.49 441.94 323.28C444.98 322.1 445.64 319.82 445.64 316.7200000000001C445.57 233.27 445.58 149.82 445.63 66.36C445.63 63.59 444.65 61.93 442.25 60.58C420.88 48.59 234.39 -57.71 223.32 -64H220.32C141 -18.34 2.08 61.44 1.93 61.52C0.64 62.26 -0.03 63.27 0.05 64.76C0.09 65.63 0.02 290.7 0 317.86C0 320.3 0.89 321.65 2.93 322.79C26.19 335.89 212.2 442.02 223.07 448H224.82zM214.4 427.58L214.18 427.74C149.43 390.88 84.69 354 19.95 317.13C19.99 317.01 20.03 316.9 20.08 316.78C30.27 312.94 40.47 309.0900000000001 50.94 305.14C43.23 299.15 42.62 299.11 40.29 300.01C40.19 300.05 16.12 309.29 13.49 310V79.58C14.37 80.9900000000001 77.56 190.49 77.62 190.59C79.24 193.41 80.65 192.51 86.74 192.1100000000001C88.14 192.0200000000001 88.22 191.8900000000001 87.52 190.6900000000001C46.33 119.3600000000001 51.12 127.7000000000001 20.04 73.7500000000001C19.23 72.3500000000001 19.43 72.6200000000001 21.29 72.6200000000001C249.02 72.6200000000001 197.69 72.6200000000001 207.79 72.5900000000001C209.23 72.5900000000001 209.48 72.8200000000001 209.49 74.2300000000001C209.5 77.1900000000001 209.5 80.1500000000001 209.49 83.1100000000001C209.49 84.4500000000001 211.85 83.9200000000001 191.12 84.1200000000001C183.66 84.1900000000001 176.98 87.3400000000001 169.74 96.8200000000001C162.36 106.4800000000001 155.12 116.2500000000001 147.89 126.03C145.61 129.11 144.44 128.41 131.13 128.41C129.38 128.41 129.35 128.41 129.37 126.59C129.66 100.3800000000001 129.52 101.3200000000001 130.41 93.9300000000001C130.93 89.5600000000001 132.57 89.7300000000001 140.1 89.1200000000001C143.24 88.8600000000001 143.98 85.0400000000001 140.62 84.2000000000001C139.05 83.8100000000001 109.02 83.6900000000001 106.95 84.3000000000001C104.68 84.9600000000001 104.4 88.3800000000001 107.25 89.0300000000001C110.54 89.7900000000001 113.41 88.2200000000001 113.91 93.4700000000001C115.21 107.1300000000001 115.08 102.5100000000001 115.01 172.8900000000001C115 183.7100000000001 114.66 185.4700000000001 109.65 186.4400000000001C108.43 186.6800000000001 106.11 186.6000000000001 104.96 186.9900000000001C102.08 187.9600000000002 102.96 191.8300000000001 106.73 191.8400000000002C140.4 191.8700000000001 152.81 192.9100000000002 162.79 186.9800000000001C170.53 182.3700000000001 174.77 175.5000000000001 175.3 166.5800000000002C176.18 151.9900000000002 168.79 144.2300000000001 160.31 133.9900000000001C159.63 133.1700000000001 159.59 132.6100000000001 160.27 131.7700000000001C162.87 128.5200000000001 165.32 125.1400000000001 167.98 121.9400000000001C195.54 88.7100000000001 192.09 91.4000000000001 209.26 88.8800000000001C210.15 88.7500000000001 210.28 89.3000000000001 210.27 90.0300000000001C210.25 93.7000000000001 210.28 97.3600000000001 210.25 101.0300000000001C210.24 102.0500000000001 210.57 102.4600000000001 211.66 102.2900000000001C224.2 100.3800000000001 233.51 102.3600000000001 235.24 102.5900000000001C236.32 102.7400000000001 236.74 102.3900000000001 236.72 101.2600000000001C236.72 101.1500000000001 237.6 74.5700000000001 237.59 74.4600000000001C237.54 72.9400000000001 238.26 72.8400000000001 239.48 72.8400000000001C301.86 72.8600000000001 364.63 72.8600000000001 426.19 72.8600000000001C399.07 119.8900000000001 372.08 166.71 345.01 213.6700000000001C347.2699999999999 214.3300000000001 344.61 213.7000000000001 351.7 215.0600000000001C353.7299999999999 215.4500000000001 353.75 215.4700000000001 354.81 213.6200000000001C362.12 200.9800000000001 432.12 79.6600000000001 432.18 79.5600000000001V310.02C430.4599999999999 309.52 328.88 271.3 326.42 270.3400000000001C325.34 269.92 324.87 270.14 324.51 271.2200000000001C323.88 273.12 323.17 274.98 322.42 276.8400000000001C322.1 277.63 322.33 277.9700000000001 323.07 278.23C323.17 278.27 418.5999999999999 314.08 426.11 317C360.69 354.57 295.55 392 230.1 429.6C259.17 379.24 288.05 329.23 316.92 279.2100000000001C316.83 279.1 316.74 278.99 316.64 278.88C307.07 279.78 306.18 280.48 304.84 282.82C303.88 284.51 231.34 410.53 222.84 424.98C213.74 410.31 139.28 278.77 137.47 278.66C134.54 278.49 131.59 278.58 128.22 278.58C157.05 328.41 185.72 378 214.4 427.58zM266.33 297.6600000000001C268.18 297.7100000000001 270.03 298.1800000000001 271.87 298.51C273.56 298.8100000000001 274.4 298.3100000000001 274.4700000000001 296.5900000000001C274.4700000000001 296.48 274.54 277.5300000000001 273.61 276.1400000000001C272.74 274.8400000000001 271.73 274.9200000000001 271.01 276.3300000000001C266.05 286.0200000000001 277.23 285.99 231.89 288.3800000000001C231.19 288.4200000000001 230.89 288.1500000000001 230.92 287.4500000000001C230.92 287.3200000000001 234.64 165.47 234.65 165.34C234.67 164.4500000000001 235.17 164.1400000000001 235.86 163.8300000000001C238.78 162.5200000000001 241.82 161.41 244.56 159.78C251.87 155.4500000000001 255.94 148.9400000000001 256.97 140.47C258.41 128.67 254.2 104.7000000000001 224.76 103.33C222.01 103.2000000000001 196.5 102.2500000000001 190.62 126.5800000000001C185.96 145.84 198.88 159.28 210.5099999999999 162.98C212 163.4500000000001 212.4599999999999 164.24 212.4899999999999 165.6400000000001C212.5899999999999 171.2700000000001 215.4899999999999 272.74 216.1999999999999 286.99C216.25 288.0700000000001 215.5799999999999 288.1500000000001 214.8499999999999 288.1400000000001C182.5 287.62 178.0999999999999 288.48 174.63 279.62C172.21 273.4400000000001 170.49 278.3000000000001 170.68 279.3900000000001A1361.1 1361.1 0 0 0 173.99 297.4200000000001C174.39 299.5300000000001 175.42 300.0300000000001 177.42 299.2800000000001C183.01 297.1700000000001 184.14 297.5800000000001 214.67 297.3600000000001C216.4 297.3500000000001 216.45 297.4400000000001 216.49 299.2100000000001C217.17 326.7000000000001 217.07 321.8000000000001 217.46 328.7600000000001C217.53 330.0500000000001 217.05 330.9300000000001 215.83 331.5600000000001C210.23 334.4700000000001 207.08 339.1100000000001 206.93 345.4300000000001C206.58 360.2400000000001 224.65 367.1000000000001 234.31 356.9400000000001C241.15 349.7500000000001 240.11 338.0300000000001 231.86 332.7900000000001C230.2 331.7300000000001 229.55 330.4600000000001 229.64 328.4500000000001C229.67 327.8600000000001 229.53 332.7600000000001 230.62 298.4000000000001C230.65 297.5000000000001 231.05 297.2800000000001 231.86 297.2900000000001C231.96 297.2900000000001 254.87 297.3800000000001 266.33 297.6600000000001zM67.27 306.3C87.11 310.81 99.95 306.86 119.76 304.61C122.52 304.3 123.5 303.39 123.38 300.62C123.17 295.63 122.22 278.29 122.14 277.4700000000001C122.04 276.43 121.54 275.56 120.51 275.13C116.45 273.43 116.9 279.58 116.5 282.42C113.37 304.85 42.63 315.12 41.87 257.02C41.56 233.1 58.88 203.39 95.95 206.14C123.19 208.15 115 226.33 120.79 226.61C122.77 226.71 124.12 225.28 123.77 223.25C121.94 212.4 120.35 204.3 120.32 204.1C118.81 194.92 33.65 182.02 26.97 246.15C24.29 272.02 37.44 299.52 67.27 306.3zM147.26 218.63C140.76 218.66 134.27 218.63 127.77 218.67C125.81 218.68 124.99 220.28 125.11 220.46C127.49 224.21 131 219.54 130.97 226.6C130.89 252.35 131.18 264.59 131.2 266.7C131.23 270.12 130.67 271.35 127.88 271.64C120.88 272.36 124.77 275.01 126.77 275.02C138.61 275.12 149.39 275.2 156.82 274.3C165.59 273.23 173.53 261.67 164.75 251.68C162.77 249.43 160.72 247.26 158.61 244.95C159.56 243.8 165.51 236.13 175.89 225.27C178.55 222.49 182.04 221.76 185.77 222.14C186.99 222.26 187.88 222.89 188 224.26C188.3 227.68 188.26 219.53 188.45 264.84C188.47 270.49 188.11 271.42 185.22 271.67C181.27 272.02 181.19 273.93 184.53 275.04C184.65 275.08 203.51 275.13 203.62 275.13C203.94 275.13 208.11 274.6 204.67 271.75C204.62 271.7 204.51 271.7200000000001 204.43 271.7100000000001C200.82 271.4500000000001 200.49 270.73 200.47 267.0900000000001C200.2 223.16 200.54 226.86 200.88 224.27C200.99 223.43 201.15 222.04 205.98 222.13C208.47 222.17 209.84 218.76 205.96 218.73C195.59 218.65 185.22 218.7 174.85 218.66C164.18 218.62 161.38 224.86 150.64 239.48C149.04 241.6600000000001 142.33 241.8400000000001 142.44 239.85C143.32 223.38 142.44 222.07 146.43 222.18C151.18 222.28 151.16 218.61 147.26 218.63zM422.23 228.78C421.0200000000001 221.65 422.4000000000001 218.4 416.93 218.44C355.38 218.86 369.11 218.66 366.2100000000001 218.75C364.99 218.79 363.7800000000001 219.19 362.5800000000001 219.48C360.0500000000001 220.08 364.0600000000001 220.71 362.2000000000001 225.08C360.7700000000001 228.45 359.4200000000001 231.86 358.0900000000001 235.27C357.7100000000001 236.25 357.1500000000001 236.71 356.05 236.71C352.93 236.71 348.7800000000001 237.15 341.4700000000001 236.64C340.8900000000001 236.6 340.0700000000001 236.09 339.85 235.58C338.2700000000001 231.96 336.7800000000001 228.29 335.3400000000001 224.62C334.0700000000001 221.39 343.2000000000001 223.3 347.5300000000001 222.46C350.5000000000001 221.89 352.06 218.74 348.1900000000001 218.73C339.4000000000001 218.7 330.6100000000001 218.67 321.8200000000001 218.68C318.9000000000001 218.68 318.7300000000001 221.83 321.0800000000001 221.89C323.7500000000001 221.96 325.8200000000001 223.02 327.0000000000001 225.36C328.5000000000001 228.33 329.8000000000001 231.4 331.1100000000001 234.45C349.2900000000001 276.59 348.1700000000001 274.62 349.5300000000001 276.06C350.5300000000001 277.12 351.6000000000001 277.11 352.5600000000001 276.02C355.4900000000001 272.68 370.9600000000001 231.31 376.1800000000001 224.1C378.1400000000001 221.4 381.9200000000001 222.12 382.5400000000001 222.09C386.1500000000001 221.96 386.5100000000001 223.2000000000001 386.6700000000001 226.38C386.7600000000001 228.2500000000001 386.7500000000001 225.2100000000001 386.7400000000001 267.62C386.7400000000001 272.0800000000001 384.3800000000001 271.36 381.1900000000001 271.8900000000001C380.9300000000001 271.9300000000001 378.6300000000001 272.5200000000001 381.1100000000001 274.9500000000001C381.3200000000001 275.1500000000001 380.2200000000001 275.1900000000001 402.8100000000001 275.1C405.1300000000001 275.0900000000001 408.1300000000001 272.35 401.6000000000001 271.6500000000001C399.7900000000001 271.4600000000001 399.0200000000001 270.6500000000001 398.9400000000001 268.8200000000001C398.8700000000001 267.1900000000001 398.7500000000001 229.9300000000001 399.2300000000001 227.6100000000001C399.5800000000001 225.8800000000001 400.9600000000001 225.2300000000001 402.4600000000001 225.1800000000001C415.7100000000001 224.75 417.3800000000001 224.7400000000001 418.5000000000001 228.5900000000001C420.1700000000002 234.3700000000001 422.6300000000001 231.1100000000001 422.2300000000002 228.7800000000001zM317.55 164.41C313.31 164.41 313.13 167.8 316.94 167.82C352.85 167.98 345.05 167.44 354.13 168.47C355.81 168.66 356.51 168.23 356.38 166.58C356.12 163.19 355.74 159.8 355.35 156.42C355.1 154.2599999999999 352.1500000000001 153.81 351.9500000000001 156.5699999999999C351.5700000000001 161.88 349.8000000000001 161.0199999999999 336.3200000000001 161.6499999999999C334.7400000000001 161.7199999999999 334.6800000000001 161.6699999999999 334.6800000000001 160.13V144.0099999999999C334.6800000000001 142.36 334.6800000000001 142.4099999999999 336.3000000000001 142.5399999999999C339.4200000000001 142.7899999999999 346.6100000000001 142.1999999999999 351.9900000000001 144.0599999999999C352.4600000000001 144.2199999999999 355.2900000000001 145.8499999999999 355.0600000000001 142.2999999999999C355.0500000000001 142.0899999999999 354.3000000000001 131.9499999999999 353.8800000000001 130.9099999999999C353.3500000000001 129.6199999999999 352.0000000000001 129.3999999999999 351.3000000000001 130.5899999999999C350.1300000000001 132.5399999999999 351.3000000000001 135.6699999999999 347.5900000000001 135.8899999999999C332.1700000000001 136.7899999999999 334.6800000000001 138.44 334.6800000000001 129.8999999999999C334.6800000000001 117.6499999999999 333.9200000000001 113.7899999999999 338.5700000000001 113.6599999999999C355.2100000000001 113.1799999999999 352.9700000000001 113.6599999999999 355.0000000000001 119.3699999999999C355.8400000000001 121.7399999999999 358.5000000000001 121.1399999999999 358.1800000000001 118.7899999999999C357.7400000000001 115.5799999999999 357.3300000000001 112.3599999999999 356.9500000000001 109.1499999999999C356.9100000000001 108.7899999999999 356.79 106.7499999999999 352.29 106.7599999999999C315.13 106.8399999999999 317.75 106.9499999999999 317.0800000000001 107.0699999999999C314.36 107.5799999999999 314.8800000000001 110.11 317.3000000000001 110.5199999999999C318.4000000000001 110.7099999999999 321.3300000000001 109.9799999999999 321.4600000000001 113.0799999999999C323.9000000000001 169.3 321.3900000000001 164.42 317.5500000000001 164.4099999999999zM317.14 273.93C319.6 273.32 320.27 272.17 320.09 269.28C319.76 263.9799999999999 319.75 260.3 319.54 259.5899999999999C318.88 257.36 316.39 257.4699999999999 316.2 259.86C315.82 264.67 313.15 267.68 308.63 269.01C282.35 276.74 275.82 253.55 281.46 238.79C287.34 223.38 303.45 222.87 310.32 225.01C316.24 226.86 316.2 231.51 317.23 232.59C318.4600000000001 233.89 319.48 234.43 320.35 231.49C320.38 231.39 320.92 219.6 314.38 218.74C312.78 218.53 295 215.05 281.7 222.13C260.69 233.32 264.96 257.6 274.82 267.46C288.85 281.52 314.73 274.52 317.14 273.93zM288.8 167.86C292.08 167.86 292.4600000000001 164.86 288.9600000000001 164.43C286.35 164.11 283.99 164.85 283.9600000000001 158.97C283.9500000000001 156.99 283.7700000000001 129.92 284.36 117.5200000000001C284.4700000000001 115.23 285.51 114.0000000000001 287.8 113.8700000000001C309.8300000000001 112.6600000000001 302.75 115.5200000000001 306.5900000000001 120.21C308.42 122.4500000000001 309.35 119.3700000000001 309.35 119.1300000000001C309.7000000000001 105.5100000000001 305.3900000000001 106.7400000000001 304.1600000000001 106.7300000000001C304.06 106.7300000000001 266.0800000000001 106.9100000000001 265.98 106.9200000000001C264.05 107.1500000000001 263.92 109.9100000000001 265.56 110.3000000000001C267.55 110.7800000000001 270.5 109.9000000000001 270.69 113.1000000000001C271.65 128.9700000000001 271.26 157.7500000000001 271.03 160.9100000000001C270.76 164.6800000000001 268.23 164.1800000000001 265.35 164.6200000000001C262.88 165.0000000000001 263.36 167.8400000000001 265.69 167.8400000000001C267.16 167.8600000000001 283.68 167.8700000000001 288.8 167.8600000000001zM257.17 225.65C257.24 221.57 260.0300000000001 222.19 263.18 222.07C265.79 221.97 265.71 218.66 263.11 218.64C256.63 218.6 249.4100000000001 218.66 241.5 218.7C237.66 218.72 238.12 222.05 241.54 222.07C246.03 222.1 244.78 220.46 244.95 267.61C244.97 272.69 241.68 271.15 240.23 271.84C237.65 273.07 238.87 274.93 240.64 274.99C241.93 275.04 260.83 275.4 261.81 274.78C262.94 274.06 263.68 273.13 261.39 271.92C260.4 271.4 257.53 272.2 257.24 269.45C257.2200000000001 269.24 256.42 267.82 257.17 225.65zM220.26 -48.62C221.4 -49.28 222.38 -49.28 223.52 -48.62C240.51 -38.83 405.49 54.95 420.94 63.89C420.8 64.32 432.2 64.07 239.42 64.16C238.2 64.16 237.85 63.79 237.89 62.6C237.89 62.4999999999999 239.14 18.09 239.11 12.22C239.09 9.64 238.49 6.9999999999999 237.75 4.51C237.2 2.68 238.13 5.01 224.25 -27.72C223.52 -29.4400000000001 223.21 -29.93 222.28 -27.64C218.09 -17.3000000000001 214 -6.9200000000001 209.71 3.3699999999999C208.25 6.8699999999999 207.47 10.3699999999999 207.71 14.16C207.87 16.6199999999999 208.51 30.28 209.22 62.18C209.26 64.1299999999999 209.23 64.1399999999999 207.26 64.1399999999999H24.26C26.84 62.5099999999999 202.58 -38.4300000000001 220.26 -48.6200000000001zM129.36 140.13C129.36 137.73 129.72 137.34 132.12 137.1C143.66 135.93 153.16 133.36 157.76 144.42C163.77 158.88 160.42 178.8300000000001 145.28 183.26C143.27 183.85 129.32 186.02 129.34 181.75C129.39 173.74 129.35 170.17 129.36 140.13zM235.11 155.18C235.11 153.05 236.18 116.5 236.2 116.05C236.54 106.11 210.62 110.28 210.97 118.64C211.0500000000001 120.66 212.34 156.06 212.07 158.07C197.97 150.63 197.65 117.86 218.51 109.27C226.9400000000001 105.8 236.05 108.67 240.9000000000001 116.34C245.8100000000001 124.1 247.7400000000001 145.81 235.4700000000001 155.3C235.35 155.25 235.23 155.21 235.11 155.18zM222.83 353.2200000000001C213 353.25 213.1 338.4700000000001 222.76 338.35C232.35 338.24 232.86 353.19 222.83 353.2200000000001zM142.68 249.35C142.7 247.55 143.09 246.95 144.85 246.77C158.47 245.38 157.36 257.76 157.01 260.13C155.32 271.35 142.63 270.33 142.66 267.94C142.71 263.44 142.63 254.26 142.68 249.35zM354.99 242.95C352.9600000000001 248.23 350.99 253.34 348.89 258.79C346.73 253.31 344.73 248.22 342.66 242.95H354.99z" />
    +    <glyph glyph-name="css3-alt"
    +      unicode="&#xF38B;"
    +      horiz-adv-x="384" d=" M0 416L34.9 20.2L192 -32L349.1 20.2L384 416H0zM313.1 336L308.3 288.7L193 239.4L192.7 239.3H304.2L291.4 92.7000000000001L193.2 64.0000000000001L94.4 93.2000000000001L88 167.1H136.9L140.1 128.8L192.7 115.5L247.4 130.9L251.1 192.5L84.8 193V193.1L84.6 193L81 239.3L193.1 286L199.6 288.7H76.7L70.9 336H313.1z" />
    +    <glyph glyph-name="css3"
    +      unicode="&#xF13C;"
    +      horiz-adv-x="512" d=" M480 416L416 48L192.7 -32L0 48L19.6 142.8H101.6L93.6 102.2L210 57.8L344.1 102.2L362.9000000000001 199.3H29.5L45.5 281.3H379.2L389.7 334H56.3L72.6 416H480z" />
    +    <glyph glyph-name="cuttlefish"
    +      unicode="&#xF38C;"
    +      horiz-adv-x="440" d=" M344 142.5C326.5 110.9 286.6 88 248 88C191.4 88 144 135.4 144 192S191.4 296 248 296C286.6 296 326.5 273.1 344 241.5C357.7 292.4 385.7 334.8 431 359.3C385.7 408.9 320.5 440 248 440C111 440 0 329 0 192S111 -56 248 -56C320.5 -56 385.7 -24.9 431 24.7C385.7 49.2 357.7 91.6 344 142.5z" />
    +    <glyph glyph-name="d-and-d"
    +      unicode="&#xF38D;"
    +      horiz-adv-x="576" d=" M82.5 349.1C81.9 366.3 84.5 382.9 95.2 397.3C95.5 389.9 96.4 382.8 99.4 375.7C105.3 403.2 119.1 425 141.7 441.2C139.8 435.3 138.2 429.4 138.7 423.5C147.4 430.9 157.5 441.3 183.1 446.2C197.8 449 212.8 448.2 225.2 445.2C263.7 435.9 286.2 410.9 294.9 372.9C300.2 349.8 295.6 327.9 286.6 306.5C281.4 294.1 274.6 282.1 265.9 271.4C263.9 273.3 262 275.2000000000001 260.1 277C217.3 317.8 233.3 302.2 222.7 314.4C221.6 315.6 221.7 316.6 222.6 318C230.9 331.5 234.4 346.2 232.6 362C231.5 371.8 228.3 380.9 221.3 388.2C206.8 403.5 182.1 403.2 167.8 387.6C156.4 375.1 153.7 360.2 156.9 344C157.0999999999999 342.7 157.3 341.3 156.9 340.1C153.5 326.4 152.3 312.5 154.4 298.5C154.5 298 154.5 297.4 154.5 296.9C154.5 296.6 154.4 296.4 154.3 295.8C132.5 306.8 118.3 324.1 111.1 348C102.8 330.2000000000001 100 312.5 104.5 293.9C88.9 309.1 83.2 328.2 82.5 349.1zM552.1 225.9C540.5 237.5 527.1 246.3 512 252.5C499.2 257.7 486 260.4 472.1 259.6C462.1 259 452.5 256.5 443.1 253.2C440.6 252.3 438 251.6 435.4000000000001 251C430.5000000000001 249.8 428.1 254.1 430.7000000000001 257.8C433.9000000000001 262.4 434.1 262 445.7000000000001 269.8C446.3000000000001 270.2 446.9000000000001 270.6 447.9000000000001 271.3H445.4000000000001C444.8 271.3 444.2000000000001 271.1 443.5000000000001 271C424.2000000000001 267.7 412.8000000000001 255.5 394.6000000000001 241.4C384.2000000000001 233.3 380.8000000000001 237.6 382.6000000000001 241.9C384.0000000000001 245.4 385.9000000000001 248.6 387.7000000000001 251.9C388.7000000000001 253.7 390.0000000000001 255.3 391.2000000000001 257C391.0000000000001 257.2 390.7000000000001 257.3 390.5000000000001 257.5C363.5000000000001 239.2 343.8000000000002 215.1 332.8000000000002 184.2C333.1000000000002 183.9 333.5000000000001 183.6 333.8000000000002 183.3C334.1000000000002 183.9 334.3000000000002 184.5 334.7000000000001 185C345.1000000000001 197.1 357.5000000000001 206.8 371.3000000000002 214.8C389.5000000000001 225.4 408.8000000000002 233.1 430.0000000000001 235C434.3000000000002 235.4 438.7000000000001 235.1 443.1000000000002 235.1C441.3000000000002 234.4 439.6000000000002 234.2 437.8000000000002 234C419.3000000000002 231.6 402.3000000000002 225 386.3000000000002 215.5C356.1000000000002 197.6 331.8000000000002 173.3 311.2000000000002 145.1C310.9000000000002 144.7000000000001 310.8000000000002 144.2000000000001 310.5000000000002 143.8C325.0000000000002 138.5 334.5000000000002 126.5 346.6000000000002 118.2C346.8000000000002 118.3 346.9000000000002 118.4 347.0000000000002 118.6L348.2000000000002 121.3C360.4000000000002 148.1999999999999 375.2000000000002 173.6 394.9000000000002 195.8C411.6000000000002 214.6 432.9000000000002 221.1 457.4000000000001 215.8C463.3000000000001 214.5 468.8000000000001 211.4 474.6000000000001 209C476.9000000000001 210.4 479.7000000000002 212.1999999999999 482.6000000000001 213.6999999999999C491.0000000000001 218 500.0000000000001 220.6999999999999 509.3000000000001 222.6999999999999C524.0000000000001 225.8 538.8000000000002 227.6 553.8000000000002 224V224.5C553.3000000000002 224.9 552.6000000000001 225.3 552.1000000000001 225.9zM316.7 50.4C277.3 83.4 293.9 69.9 274 86C273.2 85.1 274 86.2 272.1 83C260.9000000000001 63.9 246.6 47.7 228.1 35.4C217.8 28.6 206.6 23.6 194 23.6C172.4 23.6 155.8 33.1 144.6 51.4C132.6 70.9 131.3 92.1 136.4 114C144.2000000000001 147.8 166.5 169.2 175 178.3C156.3000000000001 184.5 142 176.6 128.6 164.4C129.4 178.3 132.9 190.6 140.4 201.7000000000001C116.1 191.1 94.5 176.7000000000001 75.6 157.8000000000001C75.3 163.6000000000001 81 201.5000000000001 81.2 202.5000000000001C81.5 205.2000000000001 80.6 207.8000000000001 78.2 209.9000000000001C54 185.2000000000001 33.7 158.1000000000001 22.1 125.3000000000001C29.5 131.2000000000001 37 136.7000000000001 45.7 141.5000000000001C37.4 119.2000000000001 26.1 88.7000000000001 37.9 40.4000000000001C42.5 21.4000000000001 49.8 3.6000000000001 62 -11.8999999999999C64.9 -15.5999999999999 68.3 -18.7999999999999 71.5 -22.1999999999999C71.7 -21.9999999999999 71.9 -21.8999999999999 72.1 -21.6999999999999C70.7 -14.6999999999999 69.9 -7.5999999999999 70.6 0.2C72.8 -2.9999999999999 74.5 -5.8 76.5 -8.4C89.1 -24.4 105.2 -35.8 123.7 -44C148.7000000000001 -55.3 174.8000000000001 -57.3 201.6 -52.6C256.5 -42.9 292.3 -4 317.6 46.2C318.6 48 318.2000000000001 49.1 316.7000000000001 50.4zM488.7 96.8C479.2 99.9 466.5 100.9999999999999 460 99.6999999999999C469.9 95.6999999999999 474.1 93.0999999999999 478.8 87.6999999999999C491.4 73.3 489.2 52.9999999999999 473.4 42.0999999999999C461.7 33.9999999999999 448.5000000000001 31.5999999999999 434.5000000000001 32.9999999999999C433.3000000000001 33.0999999999999 432.2000000000001 33.3999999999999 431.5000000000001 33.5999999999999C434.3000000000001 37.2999999999999 437.5000000000001 40.5999999999999 439.6000000000001 44.3999999999999C449.0000000000001 61.1999999999999 445.0000000000001 86.4999999999999 430.9000000000001 100.4999999999999C428.8000000000001 102.6 426.3000000000001 104.3999999999999 423.9000000000001 106.3999999999999C423.6000000000001 105.0999999999999 423.8000000000001 104.2999999999999 424.0000000000001 103.5999999999999C428.2000000000001 86.9999999999999 415.9000000000001 71.1999999999999 399.2000000000001 71.7999999999999C391.6000000000001 72.0999999999999 385.3000000000002 75.5999999999999 379.6000000000001 80.2999999999999C360.1000000000001 96.3999999999999 340.5000000000001 112.3999999999999 321.1000000000001 128.5999999999999C315.2000000000001 133.4999999999999 308.6000000000001 136.6999999999999 301.0000000000001 137.2999999999999C296.4000000000001 137.6999999999999 291.7000000000001 137.8999999999999 287.1000000000001 138.1999999999999C281.2000000000001 138.5999999999999 278.3000000000001 140.9999999999999 276.7000000000001 146.5999999999999C275.8000000000002 149.9999999999998 275.2000000000001 153.3999999999999 274.5000000000001 156.7999999999999C273.0000000000001 164.8999999999999 268.3000000000002 169.7999999999999 260.2000000000001 170.9999999999998C255.8000000000001 171.6999999999998 251.3000000000001 171.9999999999998 246.9000000000001 172.4999999999998C233.9000000000001 173.8999999999998 227.1000000000001 179.8999999999998 224.3000000000001 192.7999999999999C219.3000000000001 181.7999999999999 222.7000000000001 170.3999999999999 231.6000000000001 162.8999999999999C236.1000000000001 159.0999999999999 240.9000000000001 155.5999999999999 245.4000000000001 151.6999999999999C250.0000000000001 147.8999999999999 252.8000000000002 142.9999999999999 253.3000000000002 136.8999999999999C253.7000000000002 132.1999999999999 254.1000000000002 127.3999999999999 255.1000000000002 122.7999999999999C257.3000000000002 112.1999999999998 264.0000000000001 104.3999999999999 272.1000000000002 97.6999999999998C288.6000000000002 83.9999999999998 305.1000000000002 70.3999999999998 321.6000000000002 56.5999999999998C339.5000000000001 41.5999999999998 335.5000000000001 23.7999999999998 334.6000000000002 0.5999999999998C333.7000000000002 -22.3000000000002 346.8000000000002 -42.3000000000002 368.1000000000002 -50.6000000000002C369.1000000000002 -51.0000000000002 370.1000000000002 -51.2000000000002 371.7000000000002 -51.7000000000002C356.0000000000002 -33.5000000000002 361.6000000000002 -7.6000000000002 372.4000000000002 0.5999999999998C372.7000000000002 -1.6000000000002 372.8000000000002 -3.7000000000002 373.3000000000002 -5.8000000000002C382.7000000000001 -49.9000000000002 418.7000000000001 -70.0000000000002 458.3000000000001 -62.7000000000002C474.3000000000001 -59.8000000000002 488.9000000000001 -53.8000000000002 501.2000000000001 -42.9000000000001C503.2000000000001 -41.1000000000001 504.9000000000001 -38.8000000000001 507.1000000000001 -36.4000000000001C487.8000000000001 -41.0000000000002 471.3000000000001 -36.5000000000002 456.2000000000001 -25.8000000000001C456.9000000000001 -25.5000000000001 457.5000000000001 -25.5000000000001 458.1000000000001 -25.5000000000001C479.4000000000001 -27.3000000000001 498.7000000000001 -22.1000000000001 515.1000000000001 -8.1000000000001C534.6000000000001 8.4999999999999 541.7000000000002 34.7999999999998 532.5000000000001 57.8999999999999C524.2000000000002 77.9999999999999 508.9000000000001 90.1999999999999 488.7000000000001 96.7999999999998zM99.4 268.7C94.1 277.9 86.2 284.3 77.3 290C91 290.5 103.9 289.8 116.9 286.3C109.9 298.5 108.4 311 111.9 325C117.2 313.1 125.6 304.9 135.5 298.2000000000001C155.2 285 171.2 278.6 182.2 268C185.6 264.7000000000001 188.5 260.9000000000001 191.8 257.1C191 259.2000000000001 190.4 261.2000000000001 189.6 263.1C184.6 273.7000000000001 176.6 281.7000000000001 167 288.1C165.2 289.3 164.2 290.6 163.6 292.6C160.3 305.1 160.6 317.7000000000001 162.9 330.2000000000001C163.9 335.7000000000001 165.7 341.1 167.4 346.5C168.2 348.9000000000001 169.7 351.1 171.4 353.1C172 346.2 171.4 327.6 191 307.1C201.8 295.8 213.4 285.2000000000001 224.9 274.4000000000001C233.9 265.9000000000001 243.2 257.7000000000001 250.4 247.6C251.5 246.0000000000001 252.6 244.3 254.2 242.9000000000001C249.2 255.9000000000001 240.0000000000001 267 230.0000000000001 276.7000000000001C220.4 286.0000000000001 210.6 295.1 200.8000000000001 304.1C197.5 307.1 196.2000000000001 310.8000000000001 195.7000000000001 315.0000000000001C194.5000000000001 325.4000000000001 195.7000000000001 335.6 200.0000000000001 345.2000000000001C200.5000000000001 346.2000000000001 201.1000000000001 347.2000000000001 201.9000000000001 348.5000000000001C202.4000000000001 344.3000000000001 202.5000000000001 340.6 203.3000000000001 336.9000000000001C208.1000000000001 313.8000000000001 223.7000000000001 300.6000000000001 252.6000000000001 273.4000000000001C262.6000000000001 264.0000000000001 271.9000000000001 254.2000000000001 278.2000000000001 241.8000000000001C283.0000000000001 232.5000000000001 285.5000000000001 222.8000000000001 283.9000000000001 212.2000000000001C283.8000000000001 211.6000000000001 284.4000000000001 210.5000000000001 285.0000000000001 210.2000000000001C291.2000000000001 207.6000000000001 295.0000000000001 203.3000000000001 294.7000000000001 195.9000000000001C302.4000000000001 198.5000000000001 307.2000000000001 203.9000000000001 311.1000000000001 210.4000000000001C315.3000000000001 190.2000000000001 302.0000000000001 160.1000000000001 283.9000000000001 151.7000000000001C284.3000000000001 156.2000000000001 288.9000000000001 175.1 267.4000000000001 179.4C260.6000000000001 180.7000000000001 254.6000000000001 180.7000000000001 244.5000000000001 181.5000000000001C249.2000000000001 190.5000000000001 254.9000000000001 202.1000000000001 245.0000000000001 203.9000000000001C220.1000000000001 208.5000000000001 192.2000000000001 202.0000000000001 187.2000000000001 199.3000000000001C195.4000000000001 198.9000000000001 203.5000000000001 198.3000000000001 210.7000000000001 196.0000000000001C208.7000000000001 189.5000000000001 206.7000000000001 183.3000000000001 204.9000000000001 177.1000000000001C203.0000000000001 170.6000000000001 207.0000000000001 162.5000000000001 214.2000000000001 167.5000000000001C215.4000000000001 168.4 216.5000000000001 169.4 217.5000000000001 170.2000000000001C214.4000000000001 152.3000000000001 214.6000000000001 154.3000000000001 214.7000000000001 151.9C215.0000000000001 141.7000000000001 224.2000000000001 144.1 230.4000000000001 144.6C227.9000000000001 132.8 200.9000000000001 117.3 185.0000000000001 118.8C192.0000000000001 123.5 197.7000000000001 129.1 200.9000000000001 136.7C194.4000000000001 135.9 188.0000000000001 135.1 181.7000000000001 134.3L181.4000000000001 135.2C186.1000000000001 138.6 189.4000000000001 143 191.6000000000001 148.3C200.3000000000001 169.4 188.0000000000001 186.3 166.6000000000001 188.2C157.5000000000001 189 148.8000000000001 187.4 140.7000000000001 182.7C146.9000000000001 198.3 157.9000000000001 209.3 173.3000000000001 217.2C158.1000000000001 221.5 164.4000000000001 219.9 148.7000000000001 223.5C163.3000000000001 232.8 178.9000000000001 236.7 195.2000000000001 238.1C190.0000000000001 241.3 147.1000000000001 241.7 125.0000000000001 217.2C132.9000000000001 215.8 140.5000000000001 214.4 148.2000000000001 213C124.4000000000001 206 104.2000000000001 193.3 85.8000000000001 177.4C86.9000000000001 182.2 88.5000000000001 186.9 89.1000000000001 191.7C89.7000000000001 196.2 89.9000000000001 200.9 89.2000000000001 205.3C87.7000000000001 214.7 80.3000000000001 220.4 69.5000000000001 221.6C61.6000000000001 222.5 53.9000000000001 221.5 46.2000000000001 220.3C45.3000000000001 220.2 44.5000000000001 220 43.3000000000001 220.3C59.1000000000001 235.1 79.3000000000001 242 96.4000000000001 253.8C102.4000000000001 258.3 103.2000000000001 262 99.4000000000001 268.7zM227.8 241.9C231.1 225.9 240.4 216.4 251.6 217.6C247.0000000000001 228.9 239.5000000000001 237.1 227.8 241.9z" />
    +    <glyph glyph-name="dashcube"
    +      unicode="&#xF210;"
    +      horiz-adv-x="448" d=" M326.6 344H110.4C59.3 344 19.2 300.7 19.2 250.5V21C19.2 -29.5 59.3 -64 110.4 -64H337.6C388.7000000000001 -64 428.8 -29.5 428.8 21V448L326.6 344zM153.9 31.5C136.2 31.5 121.5 46.6 121.5 64.3V207.2C121.5 224.9 136.2 239.7 153.9 239.7H294.6C312.3 239.7 326.6 224.9 326.6 207.2V83.7L377.7000000000001 31.4H153.9z" />
    +    <glyph glyph-name="delicious"
    +      unicode="&#xF1A5;"
    +      horiz-adv-x="448" d=" M446.5 380C446.1 381.5 445.6 383 445.1 384.5C444.2000000000001 387 443.1 389.3 441.8 391.6C440.4000000000001 394 438.8 396.4 437.1 398.5C435 401 432.7000000000001 403.3 430.2000000000001 405.3C429.1 406.2 428.0000000000001 407 426.9000000000001 407.8C425.6 408.7 424.3 409.5 422.9000000000001 410.2C421.1 411.2 419.3 412 417.4000000000001 412.7C415.7000000000001 413.4 413.9000000000001 414 412.0000000000001 414.4C408.2000000000001 415.4 404.1000000000001 415.9 400.0000000000001 415.9H48C21.5 416 0 394.5 0 368V16C0 11.9 0.5 7.8 1.5 4C3.5 -3.7 7.3 -10.6 12.5 -16.3C13.5 -17.4 14.6 -18.5 15.8 -19.6C21.5 -24.8 28.4 -28.6 36.1 -30.6C39.9 -31.6 44 -32.1 48.1 -32.1H400.1C426.6 -32.1 448.1 -10.6 448.1 15.9V368C448 372.1 447.5 376.2 446.5 380zM416 16C416 7.2 408.8 0 400 0H224V192H32V368C32 376.8 39.2 384 48 384H224V192H416V16z" />
    +    <glyph glyph-name="deploydog"
    +      unicode="&#xF38E;"
    +      horiz-adv-x="512" d=" M382.2 312H433.9V72.4H382.2V93.1C362.4 68.3 329.4 68.9999999999999 308.4 78.4C282.2 90.1 264.1 116.5 264.1 150.2C264.1 180 278.9 208.1 307.4 221C327.6 230.1 360.1 231.6 382.2 208.1V312zM317.5 150.2C317.5 132 331.1 116.7 350.7 116.7C370.5 116.7 383.9 133.1 383.9 149.6C383.9 166.7 370.2 182.8 350.7 182.8C331.1 182.8 317.5 166.4 317.5 150.1999999999999zM188.5 312H240.2V72.4H188.5V93.1C168.7 68.3 135.7 68.9999999999999 114.7 78.4C88.5 90.1 70.4 116.5 70.4 150.2C70.4 180 85.2 208.1 113.7 221C133.9 230.1 166.4 231.6 188.5 208.1V312zM123.8 150.2C123.8 132 137.4 116.7 157 116.7C176.8 116.7 190.2 133.1 190.2 149.6C190.2 166.7 176.5 182.8 157 182.8C137.3 182.8 123.8 166.4 123.8 150.1999999999999zM448 352C465.5 352 480 337.6 480 320V64C480 46.5 465.6 32 448 32H64C46.5 32 32 46.4 32 64V320C32 337.5 46.4 352 64 352H448M448 384H64C28.8 384 0 355.2 0 320V64C0 28.8 28.8 0 64 0H448C483.2 0 512 28.8 512 64V320C512 355.2 483.2 384 448 384z" />
    +    <glyph glyph-name="deskpro"
    +      unicode="&#xF38F;"
    +      horiz-adv-x="480" d=" M205.9 -64L237 -25.6C249.3 -25.4 262.6 -24.2 273.5 -19C312.4 -0.4 311.9 42.9 311.8 44.8C311.7 49.8 311 49.2 282.9000000000001 82.2H362C361.8 32.1 354.7 13.7 351.8 6.5C342.4000000000001 -17.2 307.9000000000001 -56.3 256.6 -62.9C247.9000000000001 -64 223.8 -64.1 205.9 -64zM406.3 103.7C444.9000000000001 103.7 464.8 117.3 480 134.6L304.5 134.9L287.1 103.6L406.3 103.7zM362.7 327.6V159.3H289.2L256.5 103.8H250C197.7 103.8 191.9 160.3 191.7 162.6999999999999C190.5 175.8999999999999 170.4 174.3 171.6 160.8999999999999C173 145.0999999999999 180.4 120.8999999999999 198 103.7999999999999H107C81.5 103.7999999999999 -3.8 130.5999999999999 0 217.7999999999999V431.1C0 447.1 9.7 447.7 15 447.9H97C97.2 447.9 97.3 447.8 97.5 447.8C101.8 448.2 147.6 449.9 147.6 404.1C147.6 390.8 167.8 390.7 167.8 404.1C167.8 422.3 162.3 436.9 152 447.8H236.2C344.9 448.2 362.7 368.4 362.7 327.6zM230.2 271.6L294.2 242.3C307.5 287.8 252 314 230.2 271.6z" />
    +    <glyph glyph-name="dev"
    +      unicode="&#xF6CC;"
    +      horiz-adv-x="448" d=" M120.12 239.71C116.24 242.61 112.35 244.06 108.47 244.06H91.03V139.59H108.48C112.36 139.59 116.25 141.04 120.13 143.9400000000001C124.01 146.84 125.95 151.1900000000001 125.95 157.0000000000001V226.6500000000001C125.94 232.4500000000001 123.99 236.8100000000001 120.12 239.7100000000001zM404.1 416H43.9C19.7 416 0.06 396.41 0 372.2V11.8C0.06 -12.41 19.7 -32 43.9 -32H404.1C428.31 -32 447.94 -12.41 448 11.8V372.2C447.94 396.4100000000001 428.3 416 404.1 416zM154.2 156.81C154.2 138 142.59 109.5 105.84 109.56H59.44V275.02H106.82C142.26 275.02 154.18 246.56 154.19 227.74L154.2 156.81zM254.88 245.47H201.6V207.05H234.17V177.48H201.6V139.0700000000001H254.89V109.5000000000001H192.71C181.55 109.21 172.27 118.03 171.99 129.1900000000001V254.3C171.72 265.4500000000001 180.55 274.7100000000001 191.7 274.99H254.89L254.88 245.47zM358.52 130.18C345.32 99.43 321.67 105.55 311.08 130.18L272.55 274.98H305.12L334.83 161.26L364.3999999999999 274.98H396.9799999999999L358.5199999999999 130.18z" />
    +    <glyph glyph-name="deviantart"
    +      unicode="&#xF1BD;"
    +      horiz-adv-x="320" d=" M320 354.8L221.8 175.7L229.2 166.2H320V38.5H159.1L145.6 29.3L101.9 -54.7C101.6 -54.7 93.3 -63.3 92.7 -63.9H0V29.3L93.2 208.7L85.8 217.9H0V345.5H156L169.5 354.7L213.2 438.7C213.5 438.7 221.8 447.3 222.4 447.9H320V354.8z" />
    +    <glyph glyph-name="digg"
    +      unicode="&#xF1A6;"
    +      horiz-adv-x="512" d=" M81.7 275.7H0V101.3H132.7V352H81.7V275.7zM81.7 142.3H50.9V234.6H81.7V142.3zM378.9 275.7V101.3H460.7V72.8H378.9V32H512V275.7H378.9zM460.7 142.3H429.9V234.6H460.7V142.3zM225.1 101.3H307.2V72.8H225.1V32H358.4V275.7H225.1V101.3zM276.3 234.6H307.1V142.3H276.3V234.6zM153.3 352H204.6V301H153.3V352zM153.3 275.7H204.6V101.3H153.3V275.7z" />
    +    <glyph glyph-name="digital-ocean"
    +      unicode="&#xF391;"
    +      horiz-adv-x="512" d=" M256 -56V40.1C357.8 40.1 436.8 141 397.7 248.1C383.4 287.7000000000001 351.6 319.5 311.9 333.8C204.8 372.6 103.8 293.9000000000001 103.8 192.1H8C8 354.3 164.9 480.8 335 427.7C409.2 404.4 468.6 345.3 491.6 271.1C544.8 100.8 418.6 -56 256 -56zM256.3 135.4H160.7V39.8H256.3V135.4zM160.7 39.8H87V-33.8000000000001H160.7V39.8zM87 101.4H25.4V39.8H87V101.4z" />
    +    <glyph glyph-name="discord"
    +      unicode="&#xF392;"
    +      horiz-adv-x="448" d=" M297.216 204.8C297.216 189.184 285.6960000000001 176.384 271.104 176.384C256.768 176.384 244.992 189.184 244.992 204.8S256.512 233.216 271.104 233.216C285.696 233.216 297.216 220.416 297.216 204.8zM177.664 233.216C163.072 233.216 151.552 220.416 151.552 204.8S163.328 176.384 177.664 176.384C192.256 176.384 203.776 189.184 203.776 204.8C204.032 220.416 192.256 233.216 177.664 233.216zM448 395.264V-64C383.506 -7.006 404.132 -25.872 329.216 43.776L342.784 -3.584H52.48C23.552 -3.584 0 19.968 0 49.152V395.264C0 424.448 23.552 448 52.48 448H395.5200000000001C424.448 448 448 424.448 448 395.264zM375.04 152.576C375.04 235.0080000000001 338.1760000000001 301.824 338.1760000000001 301.824C301.3120000000001 329.472 266.24 328.704 266.24 328.704L262.656 324.608C306.176 311.296 326.4 292.096 326.4 292.096C265.589 325.425 194.156 325.4310000000001 135.168 299.52C125.696 295.168 120.064 292.096 120.064 292.096S141.312 312.32 187.392 325.632L184.832 328.704S149.76 329.472 112.896 301.824C112.896 301.824 76.032 235.008 76.032 152.576C76.032 152.576 97.536 115.456 154.112 113.6640000000001C154.112 113.6640000000001 163.584 125.184 171.264 134.912C138.752 144.6400000000001 126.464 165.12 126.464 165.12C130.23 162.484 136.44 159.067 136.96 158.72C180.17 134.5220000000001 241.548 126.5940000000001 296.704 149.7600000000001C305.664 153.088 315.648 157.9520000000001 326.144 164.864C326.144 164.864 313.344 143.872 279.808 134.4C287.488 124.672 296.704 113.6640000000001 296.704 113.6640000000001C353.28 115.456 375.04 152.576 375.04 152.576z" />
    +    <glyph glyph-name="discourse"
    +      unicode="&#xF393;"
    +      horiz-adv-x="448" d=" M225.9 416C103.3 416 0 317.5 0 195.9C0 192 0.1 -32 0.1 -32L225.9 -31.8C348.6 -31.8 448 70.5 448 192.1C448 313.7 348.6 416 225.9 416zM224 64C204.6 64 186.1 68.3 169.6 76.1L88.5 56L111.4 131C101.6 149.1 96 169.9 96 192C96 262.7 153.3 320 224 320S352 262.7 352 192S294.7 64 224 64z" />
    +    <glyph glyph-name="dochub"
    +      unicode="&#xF394;"
    +      horiz-adv-x="416" d=" M397.9 288H256V428.4L397.9 288zM304 256V126C304 59.2 267.5 25.9 190.7 25.9H96V363.2H190.7C202.7 363.2 213.8 362.4 223.8 360.7V444.7C212.9 446.9 201.4 448 189.2 448H0V-64H189.2C329.7 -64 400 0.6 400 129.9V256H304z" />
    +    <glyph glyph-name="docker"
    +      unicode="&#xF395;"
    +      horiz-adv-x="640" d=" M349.9 211.7H283.8V271.1H349.9V211.7zM349.9 416H283.8V355.3H349.9V416zM428.1 271.2H362V211.8H428.1V271.2zM271.8 343.3H205.7V283.2H271.8V343.3zM349.9 343.3H283.8V283.2H349.9V343.3zM626.7 243.3C612.3000000000001 253 579.1 256.5 553.6 251.7C550.3000000000001 275.7 536.9 296.6 512.5 315.4L498.5 324.7L489.2 310.7C470.8 282.9 465.8 237.1 485.5 206.9C476.8 202.2 459.7 195.8 437.1 196.2H2.4C-6.3 145.4 8.2 79.4 46.4 34.1C83.5 -9.8 139.1 -32.1 211.8 -32.1C369.2000000000001 -32.1 485.7 40.4 540.2 172.1C561.6 171.7000000000001 607.8000000000001 172 631.5 217.3C633 219.8 638.1 230.5 640 234.4L626.7 243.3zM115.6 271.2H49.6V211.8H115.7V271.2zM193.7 271.2H127.6V211.8H193.7V271.2zM271.8 271.2H205.7V211.8H271.8V271.2zM193.7 343.3H127.6V283.2H193.7V343.3z" />
    +    <glyph glyph-name="draft2digital"
    +      unicode="&#xF396;"
    +      horiz-adv-x="480" d=" M369.9 22.6V77L417 49.8L369.9 22.6zM82.4 67.4C107.9 94.7 180.1 172.1 233.3 237.4C268.4000000000001 280.5 273.6 319.8 261.7 350.1C254.3 368.9 244.2 380.3 237.4 385.8C282.7 383.7 305.4 362.4 319.6 347.5C319.6 347.5 362 299.3 325.4 234.2C288.4 168.3 214.5 86.7 196.9 67.5H82.4zM134.2 286.6C134.2 274.2 124.2 264.2 111.8 264.2C99.4 264.2 89.4 274.2 89.4 286.6C89.4 299 99.4 309 111.8 309C124.2 309 134.2 298.9 134.2 286.6M336 132.1V67.4H244.7C275.5 102.4 326.5 163.3000000000001 356.5 216.7000000000001C391.7 279.3000000000001 372.6 340.1 343.7 370.0000000000001C339.3 374.6 281.5 432.9000000000001 177.7 411.2000000000001C118.6 398.8000000000001 88.3 367.8000000000001 73.4 343.9000000000001C60.3 323.0000000000001 56.4 304.1000000000001 55.2 296.2000000000001C49.7 263.2000000000001 74.6 229.1000000000001 111.9 229.1000000000001C143.6 229.1000000000001 169.2 254.8000000000001 169.2 286.5000000000001C169.2 313.6 149.5 338.6 121.2 343.3000000000001C123 350.6 138.9 364.4000000000001 147.5 368.0000000000001C188.6 385.3000000000001 225.5 362.8000000000001 230.8 334.5000000000001C239.1 290.2000000000001 193.7 244.1000000000001 161.1 206.9000000000001C84.5 119.9 18.3 51.2 0 32.1L336 32.2V-32L480 49.9L336 132.1z" />
    +    <glyph glyph-name="dribbble-square"
    +      unicode="&#xF397;"
    +      horiz-adv-x="448" d=" M90.2 219.8C99.1 262.2000000000001 127.6 297.5 165.9 315.5C169.5 310.6 193.9 276.7 216.6 236.5C152.6 219.5 96.3 219.7 90.2 219.8zM314.6 294C281 323.8 235.3 335.1 192 324.6C195.8000000000001 319.5 220.6 285.7 243.0000000000001 244.6C291.6 262.9 312.1 290.5 314.6 294zM140.1 84C180.6 52.4 233.4 47.3 277.4 66C275.4 78 267.4 119.8 248.2 169.6C193.1 150.8 154.4 113.2000000000001 140.1 84zM238.9 192.2C235.5 200 231.7 207.7 227.8 215.4C159.6 195 93.4 195.8 87.4 196C87.4 194.6 87.3 193.2 87.3 191.8C87.3 156.7 100.6 124.7000000000001 122.4 100.4C144.6 138.3 189.5 178.3 238.9 192.2zM273.8 175.9C291.7 126.8 298.9 86.8 300.3 78.5C331 99.2 352.8 132.1 358.9 170.1C354.3 171.6 316.6 182.8 273.8 175.9zM253.5 224.3C258.3 214.5 261.8 206.5 265.5 197.5C311 203.2 356.2 194.1 360.7 193.1C360.3999999999999 225.4 348.8999999999999 255 329.8 278.2C326.9 274.3 304 245 253.5 224.3zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM384 192C384 280.2 312.2 352 224 352S64 280.2 64 192S135.8 32 224 32S384 103.8 384 192z" />
    +    <glyph glyph-name="dribbble"
    +      unicode="&#xF17D;"
    +      horiz-adv-x="512" d=" M256 440C119.252 440 8 328.748 8 192S119.252 -56 256 -56S504 55.252 504 192S392.748 440 256 440zM419.9700000000001 325.634C449.473 289.588 467.3390000000001 243.677 467.805 193.679C460.821 195.156 390.7870000000001 209.361 320.303 200.497C314.551 214.538 309.122 226.89 301.686 242.111C380.007 274.088 415.504 319.593 419.97 325.634zM396.421 350.13C392.611 344.703 360.724 301.844 285.4 273.611C250.688 337.387 212.215 389.779 206.36 397.619C273.536 413.812 344.326 396.349 396.421 350.13zM165.941 383.38C171.526 375.721 209.379 323.264 244.478 260.871C145.391 234.558 58.118 234.937 48.644 235.062C62.38 300.795 106.678 355.427 165.941 383.38zM44.17 191.677C44.17 193.843 44.213 195.999 44.278 198.15C53.546 197.96 156.198 196.637 261.984 228.2960000000001C268.048 216.4280000000001 273.841 204.3810000000001 279.158 192.347C202.559 170.7720000000001 132.964 108.8200000000001 98.627 50.0410000000001C64.794 87.595 44.17 137.27 44.17 191.677zM125.977 24.564C148.104 69.797 208.155 128.186 293.5560000000001 157.3200000000001C323.2960000000001 80.037 335.5950000000001 15.2670000000001 338.7450000000001 -3.318C270.6330000000001 -32.331 188.7300000000001 -24.371 125.9770000000001 24.564zM374.357 16.075C372.186 28.9610000000001 360.911 90.972 333.205 167.1080000000001C399.585 177.734 457.905 160.3400000000001 465.152 158.0530000000001C455.71 99.1120000000001 421.879 48.2090000000001 374.357 16.075z" />
    +    <glyph glyph-name="dropbox"
    +      unicode="&#xF16B;"
    +      horiz-adv-x="528" d=" M264.4 331.7L132.4 247.4L264.4 163.1L132.4 78.8L0 163.9L132.3 248.2L0 331.7L132.3 416L264.4 331.7zM131.6 52.3L263.6 136.6L395.6 52.3L263.6 -32L131.6 52.3zM264.4 163.9L396.4 248.2L264.4 331.8L395.7 416L528 331.7L395.7 247.4L528 163.2L395.7 78.9L264.4 163.9z" />
    +    <glyph glyph-name="drupal"
    +      unicode="&#xF1A9;"
    +      horiz-adv-x="448" d=" M319.5 333.3C297.3 347.3 276 352.8 254.8 366.8C241.8 375.6 223.5 396.8 208.3 415.1C205.6 385.8 196.8 373.9 186.3 365.6C165 348.6 151.5 343.4 132.8 333.3C117 325 32 266.5 32 157.5C32 48.3 123.8 -32 225.8 -32C327.5 -32 416 42 416 154C416 266.3 333 325 319.5 333.3zM322 7.7C301.9 -12.4 231.9 -21 205.3 3.5C200.5 8.3 205.6 15.5 211.8 15.5C211.8 15.5 228.8 2.2 263.3 2.2C290.3 2.2 309.3 9.9 317.8 16.2C323.9000000000001 20.8 326.2 11.9 322 7.7zM267.5 60.3C276.2 63.9 296.5 64.1 304.3 59C308.4000000000001 56.2 320.4000000000001 40.2 310.5 35.3C302.1 31.1 309.3 51 284 51C269.3 51 264.5 45.8 257.3 40C250.3 34 247.5 32 245.1 35.3C239.1 43.5 261 57.6 267.5 60.3zM360 43C344.8 44 314.5 91.8 295 92.5C264.1 93.4 190.9 11.8 133.7 50.5C94.9 77.1 119.1 155.3 185.5 155.7C235 156.2 269.3 106.7 294 107.2C315.3 107.5 355.8 149 375.8 149C424.5 149 399.1 39.7 360 43z" />
    +    <glyph glyph-name="dyalog"
    +      unicode="&#xF399;"
    +      horiz-adv-x="416" d=" M0 416V296.8H64V352H171.2C284.6 352 352 271.8 352 192.1C352 116 293.4 32 171.2 32H0V-32H171.2C331.9 -32 416 80.7 416 192.1C416 250.8 393.9 305.5 353.7 346.4C308.9 392 245.7 416 171.2 416H0z" />
    +    <glyph glyph-name="earlybirds"
    +      unicode="&#xF39A;"
    +      horiz-adv-x="480" d=" M313.2 400.5C314.4 413.5 334.5 414.5 349.8 409.2C350.7 408.9 376 399.5 368.8 394C340.9000000000001 401.4 312.4000000000001 375.8 313.2 400.5zM112.2 393.6C142.9 401.7 174.2 373.6 173.3 400.7C172 414.9 149.9 416 133.1 410.3C132.1 410 104.4 399.8 112.2 393.6zM319.4 288C310.6 288 303.4 280.8 303.4 272S310.6 256 319.4 256S335.4 263.2 335.4 272S328.2 288 319.4 288zM159.7 288C150.9 288 143.7 280.8 143.7 272S150.9 256 159.7 256S175.7 263.2 175.7 272S168.5 288 159.7 288zM478.2 124.8C468.3 100.8 437.5 113.8 414.3 126C400.8 56.9 356.2 14.6 288 1.8C288.3 0.9 286 1.9 312 0.8C345.6 -0.6 375.8 3.9 409.4 8.8C389.6 22.6 398 45.9 399.6 46.9C401 47.8 414.3 45.2 421.2 35.4C429.8 47.9 449.6 50.2 451.4 49.0000000000001C453 47.9 458 28.1000000000001 444.5 14.4C449.2 15.3 452.7 16.0000000000001 454.3 16.5000000000001C456.9 17.3000000000001 472 5.2 457.4 3.2C443.1 0.9 434.8 -1.9 410.3 -7.6C364.4000000000001 -18.3 324.4 -19.4 292.6 -20.4L293.6 -32C297.4000000000001 -50.1 270.2000000000001 -56.3 266 -38.2C266.8 -56.1 238.9 -60 237.6 -37.2L237.1 -42.5C236.4 -60.9 208.7 -60.4 208.8 -41.9C201.3 -55.4 180.7 -48.7 182.4 -33.4L183.6 -21C146.9 -21.9 123.9 -24.1 121.8 -24.1C100.9 -24.1 100.9 7.5 121.8 7.5C124.2 7.5 149.5 6.2 185 4.7C123.9 20.2 81.3 59.7 70.1 122.9C45.1 110.1 12.6 96.1 1.9 122.1C-8.6 147.5 23.4 164.7 68.7 195.5C69.4 202.1 70.3 208.8 71.4 215.3C57 234.9 59.8 251.6 55.3 275.7C38.5 273.3 32.1 284.8 31.7 298.8C32 306.1 33.8 313.7 34.1 314.2C35.2 316 44.2 316.2 46.8 316.8C52.8 348.5 97.4 350 137.7 351.3C157.4 373.1 182.9 392.8 218.6 399.6C203.3 419 215.2 439.5 216.2 440C217.9 440.8 237.4 435.7 242.5 416.8C247.7 425.6 260.8 428.2 262.1 427.5C263.2000000000001 426.9 268.5 412.5 257.2000000000001 401.6C297.5000000000001 398.1 329.4000000000001 376.9 353.2000000000001 350.9C389.3000000000001 349.4 425.0000000000001 345 430.3000000000001 316.9C433.0000000000001 316.3 441.9000000000001 316.1 443.0000000000001 314.3C443.3000000000001 313.8 445.1000000000001 306.2000000000001 445.4000000000001 298.9C444.9000000000001 285 438.6 273.5 421.8 275.8C418.6 258.5 419.1 242.9 413.1 228.1C415.5 216.4 417.1 204.3 417.9000000000001 191.7000000000001C454.9 166.3000000000001 488.2 149.2000000000001 478.2 124.8000000000001zM207.4 288.1C208.3 332.1 169.5 330.3 128.8 328.4C107.1 327.4 89.9 326.5 83.3 314.5C71.9 293.6 89.2 221.6 106.5 213.3C116.3 208.6 179.9 205.4 192.8 220.4C201 229.8 207.8 269.8 207.4 288.1zM259.4 229.8C255.1 242.2 253.4 259.9 244.1 262.5C242.1 263 235.1 263 233.1 262.5C223.1 259.7 222.3 240.4 216.1 225.3C231.5 225.3 235.4 215.6 239.8 215.6C244.1 215.6 246.1 226.9000000000001 259.4 229.8zM395.1 314.5C388.5 326.6 370.3 327.4 348.6 328.4C308.4 330.3 270.4 332.2 271.3 288.1C270.8 269.8 276.3 229.8 284.5 220.3C297.5 205.4 361.0999999999999 208.5 370.8 213.2C386.6 220.8 407.3 292.1 395.1 314.5z" />
    +    <glyph glyph-name="ebay"
    +      unicode="&#xF4F4;"
    +      horiz-adv-x="640" d=" M405.2 184.2C376.1 183.3 358 178 358 158.9C358 146.5 367.9 133.1 393 133.1C426.7 133.1 444.6 151.5 444.6 181.5V184.8C432.8 184.8 418.3 184.6999999999999 405.2000000000001 184.1999999999999M476.7 144.5C476.7 135.1999999999999 477.0000000000001 125.8999999999999 477.7 117.6999999999999H447.9000000000001C447.1 124.5999999999999 446.8 131.3 446.8 137.8999999999999C430.7 118.0999999999999 411.5 112.3999999999999 384.9000000000001 112.3999999999999C345.4000000000001 112.3999999999999 324.3 133.2999999999999 324.3 157.3999999999999C324.3 192.3999999999999 353.1 204.6999999999999 402.9 205.7999999999999C416.6 206.0999999999999 431.9 206.1999999999999 444.6 206.1999999999999V209.5999999999999C444.6 233 429.6 242.6 403.6 242.6C384.3 242.6 370 234.6 368.6 220.7999999999999H334.9C338.5 255.2 374.6 263.8999999999999 406.4 263.8999999999999C444.5 263.8999999999999 476.7 250.3999999999999 476.7 210.0999999999999V144.4999999999999zM127.7000000000001 201.3C125.4000000000001 256 40.2 257.9 33.3 201.3H127.7000000000001zM32.7 179.9C36.2 121.6 111.9000000000001 122.5 123.9000000000001 158.3H157C150.6 123.9 114 112.1999999999999 82.6 112.1999999999999C25.4 112.1999999999999 0.1 143.6999999999999 0.1 186.1999999999999C0.1 233 26.3 263.8 83.1 263.8C128.4 263.8 161.5 240.1 161.5 188.3999999999999V179.8999999999999H32.7zM243.7000000000001 134.2C273.5000000000001 134.2 293.9000000000001 155.7 293.9000000000001 188C293.9000000000001 220.4 273.5000000000001 241.8 243.7000000000001 241.8C214.1000000000001 241.8 193.5000000000001 220.4 193.5000000000001 188C193.5000000000001 155.7 214.1000000000001 134.2 243.7000000000001 134.2M161.5000000000001 320.2H193.6000000000001V239.6C209.3000000000001 258.3 231.0000000000001 263.8 252.3000000000001 263.8C288.0000000000001 263.8 327.7000000000001 239.7 327.7000000000001 187.6C327.7000000000001 144 296.2000000000001 112.1999999999999 251.7000000000001 112.1999999999999C228.4000000000001 112.1999999999999 206.6000000000001 120.5 193.0000000000001 137.0999999999999C193.0000000000001 130.4999999999999 192.6000000000001 123.8999999999999 191.9000000000001 117.5999999999999H160.4000000000001C160.9000000000001 127.7999999999999 161.5000000000001 140.3999999999999 161.5000000000001 150.6999999999999V320.2zM640 258.5L540.8 63.7H504.9L533.4 117.8L458.8 258.5H496.3L551.1999999999999 148.6L606 258.5H640z" />
    +    <glyph glyph-name="edge"
    +      unicode="&#xF282;"
    +      horiz-adv-x="512" d=" M25.714 219.837C25.825 219.999 25.944 220.16 26.056 220.322C26.035 220.16 26.011 219.999 25.991 219.837H25.714zM486.286 204.329C486.286 248.361 478.532 288.794 457.485 326.734C416.498 400.121 343.912 439.999 258.893 439.999C118.962 440.276 40.617 334.786 26.056 220.321C68.485 281.633 143.129 341.697 246.431 345.287C246.431 345.287 356.097 345.287 345.85 240.33H169.997C176.366 277.716 188.551 299.316 204.336 319.256C129.288 284.363 82.486 223.16 83.594 130.941C84.424 59.493 133.718 -13.895 204.337 -41.035C287.694 -72.8820000000001 397.113 -48.235 444.469 -19.711V84.693C363.605 28.199 173.598 23.768 172.214 152.265H486.287V204.329z" />
    +    <glyph glyph-name="elementor"
    +      unicode="&#xF430;"
    +      horiz-adv-x="448" d=" M425.6 416H22.4C10 416 0 406 0 393.6V-9.6C0 -22 10 -32 22.4 -32H425.6C438 -32 448 -22 448 -9.6V393.6C448 406 438 416 425.6 416M164.3 92.5H124.5V291.5H164.3V92.5zM323.6 92.5H204.1V132.3H323.6V92.5zM323.6 172.1H204.1V211.9H323.6V172.1zM323.6 251.8H204.1V291.6H323.6V251.8z" />
    +    <glyph glyph-name="ello"
    +      unicode="&#xF5F1;"
    +      horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM391.8400000000001 154.8C375.31 89.49 315.79 43.2 248 43.2S120.69 89.49 104.16 154.8C102.51 162.24 106.64 170.5099999999999 114.08 172.16C121.52 173.81 129.79 169.68 131.44 162.24C145.49 109.3299999999999 193.44 72.1299999999999 248 72.1299999999999S350.51 109.3299999999999 364.56 162.24C366.21 169.68 374.48 174.6399999999999 381.92 172.16C389.36 170.51 394.32 162.24 391.8400000000001 154.8z" />
    +    <glyph glyph-name="ember"
    +      unicode="&#xF423;"
    +      horiz-adv-x="640" d=" M639.9 193.4C638.8 204.1 629.1999999999999 200.2 629.1999999999999 200.2S613.5999999999999 188.1 599.9 189.5C586.1999999999999 190.8 590.5 221.5 590.5 221.5S593.5 249.6 585.4 251.9C577.3 254.3 567.4 244.6 567.4 244.6S555 230.9 549.1 213.4L547.5 212.9S549.4 243.5 547.2 250.5C545.6 254 530.8000000000001 253.7 528.4000000000001 247.5S514.2 198.3 513.4000000000001 180.3C513.4000000000001 180.3 490.3000000000001 160.7 470.1000000000001 157.5S445.1000000000001 166.9 445.1000000000001 166.9S499.9000000000001 182.2 498.0000000000001 226C496.1000000000001 269.8 453.8000000000001 253.6 449.0000000000001 250C444.4000000000001 246.5 419.6000000000001 231.6 412.4000000000001 190.3C412.2000000000001 188.9 411.7000000000001 182.8 411.7000000000001 182.8S390.5000000000001 168.6 378.7000000000001 164.8C378.7000000000001 164.8 411.7000000000001 220.4 371.4000000000001 245.7C353.1 256.7 338.6 233.6 338.6 233.6S393.1 294.3 381.1 345.6C375.3 370 363.1 372.7 351.9000000000001 368.7C334.9000000000001 362 328.4000000000001 352 328.4000000000001 352S306.4000000000001 320 301.3 272.5S288.7 167.4 288.7 167.4S278.2 157.2 268.5 156.7S263.1 185.4 263.1 185.4S270.6 230 270.1 237.5S269 249.1 260.2000000000001 251.7C251.3000000000001 254.4 241.7000000000001 243.1 241.7000000000001 243.1S216.2000000000001 204.4 214.0000000000001 198.5L212.7000000000001 196.1L211.4 197.7S229.4000000000001 250.4 212.2000000000001 251.2C195.0000000000001 252 183.7000000000001 232.4 183.7000000000001 232.4S164.1000000000001 199.6 163.3000000000001 195.9L162 197.5S170.1 235.7 168.4 245.1C166.8000000000001 254.5 157.9 252.6 157.9 252.6S146.6 253.9 143.7000000000001 246.7S130.0000000000001 191.3999999999999 128.7000000000001 176C128.7000000000001 176 100.5 155.8 81.9000000000001 155.6C63.4000000000001 155.3 65.2000000000001 167.4 65.2000000000001 167.4S133.2000000000001 190.7 114.6000000000001 236.6C106.3000000000001 248.4 96.6000000000001 252.1 82.9000000000001 251.9C69.2000000000001 251.6 52.6000000000001 243.3 41.6000000000001 218.6C36.3000000000001 206.8 34.8000000000001 195.6 33.8000000000001 187.1C33.8000000000001 187.1 21.5000000000001 184.7 15.0000000000001 190S5.0000000000001 190 5.0000000000001 190S-6.1999999999999 176 4.9000000000001 171.6999999999999S33.0000000000001 165.5999999999999 33.0000000000001 165.5999999999999C34.6000000000001 158.0999999999999 39.2000000000001 146.0999999999999 52.6000000000001 135.8999999999999C72.8000000000001 120.5999999999999 111.4000000000001 137.1999999999999 111.4000000000001 137.1999999999999L127.3000000000001 146S127.8000000000001 131.3999999999999 139.4000000000001 129.3C151.0000000000001 127.1999999999999 155.8000000000001 128.3 175.9000000000001 177.1999999999999C187.7000000000001 202.1999999999999 188.5000000000001 200.7999999999999 188.5000000000001 200.7999999999999L189.8000000000001 201.0999999999999S180.7000000000001 154.3 184.2000000000001 141.3999999999999C187.7 128.6 203 130 203 130S211.3 127.6 218 151.2C224.7 174.8 237.6 201.1 237.6 201.1H239.2S233.6 153 242.2 137.4C250.8 121.8 273.1 132.1 273.1 132.1S288.7 139.9 291.1 142.3C291.1 142.3 309.6 126.5 335.7 129.4C394 140.9 414.8 155.3 414.8 155.3S424.8 130.9 455.9 128.6C491.4 125.9 510.7 147.2 510.7 147.2S510.4 133.7 522.8 128.6C535.1999999999999 123.5 543.5 151.4 543.5 151.4L564.2 208.6H566.1S567.2 171.3 587.6 165.4S634.6 179.1 634.6 179.1S641 182.6 639.9 193.4zM61.9 188.1C62.7 220.1 83.7 234.0000000000001 90.9 227.1C98.2 220.1 95.5 205.1 81.8 195.7C68.1 186.2000000000001 61.9 188.1 61.9 188.1zM334.7 311.9000000000001S353.8 361.6 358.3 337.4000000000001S318.3 241.2000000000001 318.3 241.2000000000001C318.8 257.4000000000001 334.7 311.9000000000001 334.7 311.9000000000001zM357.5 173.5C344.9 140.5 314.2 153.9 314.2 153.9S310.7 165.7 320.6 198.8S353.9 219 353.9 219S370.1 206.6 357.5 173.5zM442.1 188.1S439.1 198.6 450.2000000000001 218.7C461.2 238.9 469.8000000000001 227.8 469.8000000000001 227.8S479.2 217.6 468.5000000000001 202.3S442.1000000000001 188.1 442.1000000000001 188.1z" />
    +    <glyph glyph-name="empire"
    +      unicode="&#xF1D1;"
    +      horiz-adv-x="496" d=" M287.6 393.8C276.8 396 265.5 397.1 254.1 397.4V415.6C332.2000000000001 413.4 400.2000000000001 371.6 438.7000000000001 309L422.9000000000001 299.9C416.8 309.6 410.2000000000001 318.7000000000001 402.7000000000001 327L384.7000000000001 311.5C358.7000000000001 341.1 323.3000000000001 362.2 282.8000000000001 369.9L287.6000000000001 393.8zM53.4 125.6L76.4 133.3C70 151.6 66.4 171.5 66.4 192S69.7 232.4 76.1 250.7L53.4 258.4C57 269.2 61.7 279.7 67 289.4L51.2 298.5C34 267 24.1 230.5 24.1 192S34.1 117 51.2 85.4L67 94.5C61.7 104.5 57.3 114.8 53.4 125.6zM213.1 14C172.7 22 137.3 43.1 111.2 72.7L93.2 56.9C85.7 65.5 78.8 74.6 73 84.3L57 74.9C95.5 12.6 163.8 -29.4 241.9 -31.7V-13.4C230.6 -13.1 219.2 -11.7 208.4 -9.8L213.1 14zM93.3 327.1L111.3 311.6C137.3 341.2 172.7 362.3 213.2 370L208.5 393.8C219.3 396 230.6 397.1 242 397.4V415.6C163.9 413.4 95.9 371.6 57.4 309L73.2 299.9C79.2 309.6 85.8 318.8 93.3 327.1zM402.7 56.9L384.7 72.7C358.7 43.1 323.3 22 282.8 14L287.5 -9.8C276.7 -11.7 265.3999999999999 -13.1 254 -13.4V-31.7C332.0999999999999 -29.5000000000001 400.4 12.6 438.9 74.9L422.8 84.3C417.1 74.6 410.2 65.4999999999999 402.7 56.9zM496 192C496 55 385 -56 248 -56S0 55 0 192S111 440 248 440S496 329 496 192zM483.8 192C483.8 322.1 378.1 427.8 248 427.8S12.2 322.1 12.2 192S117.9 -43.8 248 -43.8S483.8 61.9 483.8 192zM444.8 298.6L429 289.5C434.3 279.8 439 269.3 442.6 258.5L419.9000000000001 250.8C426.3 232.5 429.6 212.6 429.6 192.1S426 151.7000000000001 419.6 133.4L442.6 125.7000000000001C438.7000000000001 114.9 434.3 104.7000000000001 429 94.7000000000001L444.8 85.6C462 117 471.9 153.5 471.9 192S462 267 444.8 298.6zM261.8 120.9C278.1 124.2 292.2 132.5 302.5 144.4L353.7 99.6C365.6 113.2 375 128.9 380.8 146.4L316.6 168.5C319.1 176 320.5 183.7 320.5 192S319.1 208.1 316.6 215.5L381.1 237.6C375 255 365.6 270.8 353.7000000000001 284.4L302.5000000000001 239.6C292.3000000000001 251.5 278.1000000000001 260.1 261.8000000000001 263.4L275.1000000000001 329.8C266.5000000000001 331.7 257.4000000000001 332.6 248.0000000000001 332.6C238.6000000000001 332.6 229.5000000000001 331.8 220.9000000000001 329.8L234.2000000000001 263.4C217.9000000000001 260.1 203.8000000000001 251.5 193.5000000000001 239.6L142.3000000000001 284.4C130.4000000000001 270.8 121.0000000000001 255.1 114.9000000000001 237.6L179.4000000000001 215.5C176.9000000000001 208 175.5000000000001 200.3 175.5000000000001 192S176.9000000000001 175.9 179.4000000000001 168.5L115.2000000000001 146.4C121.0000000000001 129 130.4000000000001 113.2 142.3000000000001 99.6L193.5000000000001 144.4C203.7000000000001 132.5 217.9000000000001 124.2 234.2000000000001 120.9L220.9000000000001 54.2C229.5000000000001 52.5 238.6000000000001 51.4 248.0000000000001 51.4C257.4000000000001 51.4 266.5000000000001 52.5 275.1000000000001 54.2L261.8000000000001 120.9z" />
    +    <glyph glyph-name="envira"
    +      unicode="&#xF299;"
    +      horiz-adv-x="448" d=" M0 416C477.6 416 366.6 98.7 367.1 49.7L448 -32H422L351.6 39.2C312.6 35 227.2 4.7 137.2 76.2C47 147.7 52 233.3 0 416zM79.7 370C30 393.5 74.5 360.8 74.5 360.8C119.7 329.6 140.5 287.1 164.7 240.9C196.2 180.7 243.7 101.2 308.9 73.2C373.9 45.2 343.1 60.7 314.9 81.7C286.7 102.9 246.7 168.7 223.9 211.9C192.2 271.9 162.9 330.5 79.7 370z" />
    +    <glyph glyph-name="erlang"
    +      unicode="&#xF39D;"
    +      horiz-adv-x="640" d=" M21.7 201.6C21.6 114.8 50.7 42.1 100.4 -10.5H0V394.5H87.2C45.7 344.3 21.6 278.3 21.7 201.6zM640 394.4H556.4C587.8 351.7 605.1 296.9 602.6 231.7C603.1 225.7 603.1 220 602.6 207.6H230.2C230 97.9 269.1 12.7 368.8 12.3C437.3 12.6 486.8 63.3 520.6999999999999 118.4L617.0999999999999 70.2C599.6999999999999 39.3 580.5999999999999 12.4 559.1999999999999 -10.6H640V394.4zM559.2 -10.6S559.2 -10.5 559.2 -10.6H559H559.2zM556.1 394.4H556.4L556.3 394.5L556.0999999999999 394.4zM325.4000000000001 384.8C279.5000000000001 384.7 240.3000000000001 351.3 236.2000000000001 301.6H406.1C405 351.3 371.6 384.7 325.4000000000001 384.8z" />
    +    <glyph glyph-name="ethereum"
    +      unicode="&#xF42E;"
    +      horiz-adv-x="320" d=" M311.9 187.2L160 94.4L8 187.2L160 448L311.9 187.2zM160 64.6L8 157.4L160 -64L312 157.4L160 64.6z" />
    +    <glyph glyph-name="etsy"
    +      unicode="&#xF2D7;"
    +      horiz-adv-x="384" d=" M384 100C382.25 89.25 370.25 -10 368.5 -32C250.621 -27.701 148.605 -27.257 0 -32V-6.5C45.457 2.448 60.627 1.519 61 28.75C62.793 101.072 64.524 272.8930000000001 61 350.75C59.971 379.2100000000001 48.87 377.515 0 386.75V412.25C73.886 409.892 255.933 403.699 362.999 416C359.499 377.75 355.249 289.5 355.249 289.5H332C320.947 332.335 313.241 380 277.25 380H140.25C130 380 129.5 376.5 129.5 370.25V206.5C187.5 206 218 209 218 209C247.77 209.951 245.56 217.502 258.75 274.251H284.5C280.093 172.9 280.59 212.422 282.75 114.001H257C247.845 154.087 247.935 175.046 217.499 175.501C217.499 175.501 195.999 177.501 129.499 177.501V38.501C129.499 12.501 143.749 0.251 173.749 0.251H263C326.636 0.251 329.564 25.247 361.751 100.001H384z" />
    +    <glyph glyph-name="expeditedssl"
    +      unicode="&#xF23E;"
    +      horiz-adv-x="496" d=" M248 404.6C130.6 404.6 35.4 309.4 35.4 192S130.6 -20.6 248 -20.6S460.6 74.6 460.6 192S365.4 404.6 248 404.6zM150.6 271.7C150.6 325.4 194.3 369.1 248 369.1S345.4 325.4 345.4 271.7V245.1C345.4 240.1 341.5 236.2 336.5 236.2H318.8C313.8 236.2 309.9000000000001 240.1 309.9000000000001 245.1V271.7C309.9000000000001 353.8 185.9 353.8 185.9 271.7V245.1C185.9 240.1 182 236.2 177 236.2H159.3000000000001C154.3000000000001 236.2 150.4 240.1 150.4 245.1V271.7zM389.7 68C389.7 58.3 381.7 50.3 372 50.3H124C114.3 50.3 106.3 58.3 106.3 68V209.7C106.3 219.4 114.3 227.4 124 227.4H372C381.7 227.4 389.7 219.4 389.7 209.7V68zM141.7 205.3V72.4C141.7 69.9 139.8 68 137.3 68H128.4C125.9 68 124 69.9 124 72.4V205.3C124 207.8 125.9 209.7 128.4 209.7H137.3C139.8 209.7 141.7 207.8 141.7 205.3zM283.4 156.6C283.4 143.6 276.2 132.2000000000001 265.7 126.2000000000001V94.6C265.7 89.6 261.8 85.7000000000001 256.8 85.7000000000001H239.1C234.1 85.7000000000001 230.2 89.6 230.2 94.6V126.2000000000001C219.7 132.3000000000001 212.5 143.6 212.5 156.6C212.5 176.3 228.3000000000001 192 247.9000000000001 192S283.4000000000001 176.2000000000001 283.4000000000001 156.6zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -38.3C121 -38.3 17.7 65 17.7 192S121 422.3 248 422.3S478.3 319 478.3 192S375 -38.3 248 -38.3z" />
    +    <glyph glyph-name="facebook-f"
    +      unicode="&#xF39E;"
    +      horiz-adv-x="264" d=" M76.7 -64V165H0V256H76.7V327.7C76.7 405.6 124.3 448 193.8 448C227.1 448 255.7 445.5 264 444.4V363H215.8C178 363 170.7 345 170.7 318.7V256H256L244.3 165H170.7V-64" />
    +    <glyph glyph-name="facebook-messenger"
    +      unicode="&#xF39F;"
    +      horiz-adv-x="448" d=" M224 416C15.9 416 -77.5 170 84.6 47.4V-32L160.3 10C302.5 -29.8 445.7 69.9 445.7 208.7C445.8 323.2 346.5 416 224 416zM247.4 137.9L190 197.5L79.6 136.4L200.7 264.9L258.1 205.3L368.5 266.4L247.4 137.9z" />
    +    <glyph glyph-name="facebook-square"
    +      unicode="&#xF082;"
    +      horiz-adv-x="448" d=" M448 368V16C448 -10.5 426.5 -32 400 -32H314.7V145.2H375.3L384 212.8H314.7V256C314.7 275.6 320.1 288.9 348.2 288.9H384V349.3C377.8 350.1 356.6 352 331.8 352C280.2 352 244.8 320.5 244.8 262.6V212.7H184V145.1H244.9V-32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368z" />
    +    <glyph glyph-name="facebook"
    +      unicode="&#xF09A;"
    +      horiz-adv-x="448" d=" M448 391.3V-7.2C448 -20.9 436.9 -31.9 423.3 -31.9H309.1V141.5H367.3L376 209.1H309V252.3C309 271.9 314.4 285.2000000000001 342.5 285.2000000000001H378.3V345.7000000000001C372.1 346.5 350.9000000000001 348.4000000000001 326.1 348.4000000000001C274.5 348.4000000000001 239.1 316.9000000000001 239.1 259V209.1H180.7V141.5H239.1V-32H24.7C11.1 -32 0 -20.9 0 -7.3V391.3C0 404.9 11.1 416 24.7 416H423.2C436.9 416 448 404.9 448 391.3z" />
    +    <glyph glyph-name="fantasy-flight-games"
    +      unicode="&#xF6DC;"
    +      horiz-adv-x="512" d=" M256 415.14L32.86 192L256 -31.14L479.14 192L256 415.14zM88.34 192.17C90.3 194.17 100.26 204.47 184.83 289.65C226.28 331.4 271.02 333.42 304.6 308.34C329.23 289.94 366.66 249.44 366.75 249.34C367.43 248.6 367.82 246.48 367.33 245.96C356.06 234.12 344.6499999999999 222.42 333.83 211.27C299.62 243.58 293.31 249.51 285.32 255.22C267.55 267.91 243.92 265.35 228.34 250.12C226.17 247.99 226.55 246.69 228.46 244.77C231.4 241.82 256.56 216.44 263.55 208.99C251.6 197.39 239.89 186.02 227.86 174.33C215.84 186.87 203.38 199.86 191.32 212.44C169.93 191.35 149.63 171.33 129.47 151.45A42569.01 42569.01 0 0 0 88.34 192.17zM323.16 90.57C287.67 55.14 245.07 52.43 216.17 70.1C194.09 83.6 176.79 102.18 143.24 136.9400000000001C155.29 149.3100000000001 167.03 161.3600000000001 178.61 173.2500000000001C211.63 141.34 215.67 137.2400000000001 223.29 131.1600000000001C241.77 116.4200000000001 265.81 117.4900000000001 282.61 132.9600000000001C286.29 136.3500000000001 286.3 136.6000000000001 282.75 140.2000000000001C272.16 150.9300000000001 261.56 161.6400000000001 250.98 172.3800000000001C249.66 173.7200000000001 247.95 174.8600000000001 250.1799999999999 177.0700000000001C260.9699999999999 187.7800000000001 271.6599999999999 198.5900000000001 282.39 209.3600000000001C282.6499999999999 209.6200000000001 283.0399999999999 209.7400000000001 284.3 210.4300000000001C296.67 197.5600000000001 309.22 184.5100000000001 321.55 171.6800000000001C342.56 192.4100000000001 362.79 212.3600000000001 382.8 232.1000000000001C396.48 218.7000000000001 409.93 205.5200000000001 423.66 192.0700000000001C403.49 171.2100000000001 341.98 109.3600000000001 323.16 90.5700000000001zM256 448L0 192L256 -64L512 192L256 448zM16 192L256 432L496 192L256 -48L16 192z" />
    +    <glyph glyph-name="firefox"
    +      unicode="&#xF269;"
    +      horiz-adv-x="480" d=" M478.1 212.7C477.4 217.2 476.7 219.8 476.7 219.8S474.9 217.8 472.0000000000001 213.9C471.1000000000001 224.6 469.2 235.1 466.2 245.5C462.5000000000001 258.4 457.7 270.9 451.7 282.9C447.9000000000001 290.9 443.5000000000001 298.5 438.4000000000001 305.7C436.6 308.4 434.7000000000001 311.1 432.8 313.6C424 328 413.8 336.9 402.1 353.6C394.5 366.4 389.2000000000001 380.5 386.7000000000001 395.2C383.5000000000001 386.3 381.0000000000001 377.2 379.3000000000001 367.9C367.2000000000001 380.1 356.8000000000001 388.7 350.4000000000001 394.6C319.4 423.8 323 438.9 323 438.9S264.7 373.8 289.9 306C298.6 283 313.7 262.9 333.3 248.1C357.7 227.9 384.1 212.1 398 171.5C386.8 192.8 369.8999999999999 210.7 349.2 223C355.3999999999999 208.3 358.5999999999999 192.4 358.5 176.5C358.5 115.5 308.8999999999999 66 247.9 66.1C239.6 66.1 231.4 67 223.4 68.9C213.9 70.7000000000001 204.7 73.8 196 78.2000000000001C183.0999999999999 86.0000000000001 172 96.3000000000001 163.1999999999999 108.5000000000001L163 108.8000000000001L165 108.1000000000001C169.5999999999999 106.5000000000001 174.1999999999999 105.3000000000001 179 104.4000000000001C197.6999999999999 100.4000000000001 217.3 102.7000000000001 234.6 111.0000000000001C252.1 120.7000000000001 262.5999999999999 127.9000000000001 271.2 125.0000000000001H271.3999999999999C279.7999999999999 122.3000000000001 286.3999999999999 130.5000000000001 280.3999999999999 139.0000000000001C270 152.4000000000001 252.9999999999999 159.0000000000001 236.2 156.0000000000001C218.6999999999999 153.5000000000001 202.6999999999999 141.0000000000001 179.7999999999999 153.1000000000001C178.2999999999999 153.9000000000002 176.8999999999999 154.7000000000002 175.4999999999999 155.6000000000001C173.8999999999999 156.5000000000001 180.3999999999999 154.3000000000001 178.8999999999999 155.3000000000001C173.8999999999999 157.8000000000001 169.0999999999999 160.7000000000001 164.4999999999999 163.9000000000002C164.1999999999999 164.2000000000002 167.9999999999999 162.8000000000001 167.5999999999999 163.1000000000001C161.6999999999999 167.1000000000001 156.5999999999999 172.3000000000001 152.5999999999999 178.3000000000001C148.4999999999999 185.7000000000001 148.0999999999999 194.7000000000001 151.5999999999999 202.4000000000001C153.6999999999999 206.2000000000001 156.9999999999999 209.3000000000001 160.8999999999999 211.1000000000001C163.8999999999999 209.6000000000001 165.6999999999999 208.5000000000001 165.6999999999999 208.5000000000001S164.3999999999999 211.0000000000001 163.5999999999999 212.3000000000001C163.9 212.4000000000001 164.0999999999999 212.3000000000001 164.4 212.5000000000001C167 211.4000000000001 172.7 208.5000000000001 175.8 206.7000000000001C177.9 205.6000000000001 179.6 204.0000000000001 181 202.0000000000001C181 202.0000000000001 182 202.5000000000001 181.3 204.7000000000001C180.2 207.4000000000001 178.4 209.7000000000001 175.9 211.3000000000001H176.0999999999999C178.4 210.1000000000001 180.5999999999999 208.7000000000001 182.6999999999999 207.2000000000001C184.5999999999999 211.6000000000001 185.5 216.4000000000001 185.2999999999999 221.2000000000001C185.4999999999999 223.8000000000001 185.0999999999999 226.5000000000001 184.1999999999999 229.0000000000001C183.3999999999999 230.6000000000001 184.6999999999999 231.2000000000001 186.0999999999999 229.5000000000001C185.9 230.8000000000002 185.4 232.0000000000001 184.9 233.2000000000001V233.3000000000001S185.7 234.4000000000001 186.0999999999999 234.8000000000001C187.0999999999999 235.8000000000001 188.1999999999999 236.7000000000001 189.5 237.5000000000001C196.6999999999999 242.0000000000001 204.3 245.9000000000001 212.1999999999999 249.1000000000001C218.5999999999999 251.9000000000001 223.8999999999999 254.0000000000001 225 254.7000000000001C226.6 255.7000000000001 228.1 256.9000000000001 229.5 258.2000000000001C234.8 262.7000000000001 238.5 269.0000000000001 239.7 275.9000000000001C239.8 276.8000000000001 239.8999999999999 277.7000000000001 240 278.7000000000001V280.2000000000001C239.1 283.7000000000001 233.1 286.3000000000001 201.5999999999999 289.3000000000001C190.5 291.1000000000001 181.5999999999999 299.4000000000001 179.0999999999999 310.4000000000001V310.3000000000001C178.6999999999999 309.2000000000001 178.1999999999999 308.0000000000001 177.7999999999999 306.8000000000001C178.1999999999999 308.0000000000001 178.5999999999999 309.1000000000001 179.0999999999999 310.3000000000001V310.5000000000001C185.0999999999999 326.2000000000001 195.9 339.6 209.9 348.8000000000001C210.7 349.5000000000001 206.7 348.6 207.5 349.3000000000001C210.1999999999999 350.6 212.9 351.8000000000001 215.6999999999999 352.8000000000001C217.0999999999999 353.4000000000001 209.6999999999999 356.2000000000001 203.0999999999999 355.5000000000001C199.0999999999999 355.3000000000001 195.0999999999999 354.3000000000001 191.4 352.7000000000001C193 354.0000000000001 197.5999999999999 355.8000000000001 196.5 355.8000000000001C188.0999999999999 354.2000000000001 180 351.1 172.5999999999999 346.8000000000001C172.5999999999999 347.6 172.6999999999999 348.3000000000001 173.0999999999999 349.0000000000001C167.1999999999999 346.5000000000001 162.0999999999999 342.5000000000001 158.0999999999999 337.5000000000001C158.1999999999999 338.4000000000001 158.2999999999999 339.3000000000001 158.2999999999999 340.2000000000001C155.5999999999999 338.2000000000001 153.0999999999999 335.9000000000001 150.9999999999999 333.3000000000001L150.8999999999999 333.2000000000001C133.4999999999999 339.9000000000001 114.5999999999999 341.5000000000001 96.2999999999999 337.9000000000001L96.0999999999999 338.0000000000001H96.2999999999999C92.4999999999999 341.1 89.1999999999999 344.7000000000001 86.5999999999999 348.9000000000001L86.3999999999999 348.8000000000001L85.9999999999999 349.0000000000001C84.7999999999999 350.8000000000001 83.5999999999999 352.8000000000001 82.2999999999999 355.0000000000001C81.3999999999999 356.6000000000001 80.4999999999999 358.4000000000001 79.5999999999999 360.2000000000001C79.5999999999999 360.3000000000001 79.4999999999999 360.4000000000001 79.3999999999999 360.4000000000001C78.9999999999999 360.4000000000001 78.7999999999999 358.7000000000001 78.4999999999999 359.1000000000001V359.2000000000001C75.2999999999999 367.5000000000001 73.7999999999999 376.4000000000001 74.0999999999999 385.4000000000001L73.8999999999999 385.3000000000001C68.7999999999999 381.8000000000001 64.8999999999999 376.7000000000001 62.7999999999999 370.8000000000001C61.8999999999999 368.7000000000001 61.1999999999999 367.5000000000001 60.5999999999999 366.3000000000001V366.8000000000001C60.6999999999999 367.9000000000001 61.1999999999999 370.1000000000001 61.0999999999999 369.9000000000001C60.9999999999999 369.7000000000001 60.8999999999999 369.6000000000001 60.7999999999999 369.5000000000001C59.2999999999999 367.8000000000001 57.8999999999999 365.8000000000001 56.8999999999999 363.7000000000001C55.9999999999999 361.8000000000001 55.1999999999999 359.8000000000001 54.5999999999999 357.8000000000001C54.4999999999999 357.5000000000001 54.5999999999999 358.1 54.5999999999999 358.8000000000001S54.6999999999999 360.8000000000001 54.5999999999999 360.5000000000001L54.2999999999999 359.8000000000001C47.5999999999999 344.9000000000001 43.3999999999999 329.0000000000001 41.8999999999999 312.7000000000001C41.4999999999999 309.9000000000001 41.2999999999999 307.1 41.3999999999999 304.4000000000001V304.2000000000001C36.5999999999999 299.0000000000001 32.3999999999999 293.2000000000001 28.6999999999999 287.1C16.5999999999999 266.7000000000001 7.5999999999999 244.6000000000001 1.8999999999999 221.5000000000001C5.8999999999999 230.3000000000001 10.6999999999999 238.7000000000001 16.1999999999999 246.6000000000001C5.5 219.5 0 190.6 0 161.4C1.8 170 4.2 178.4 7 186.7C5.3 152.2 11.9 117.8 26.4 86.4C45.8 42.9 78 6.4 118.7 -18.3C135.3 -29.5 153.4 -38.2 172.5 -44.1C175 -45 177.6 -45.9 180.2 -46.8C179.4 -46.5 178.6 -46.1 177.8 -45.8C200.4 -52.6 224 -56.1 247.6 -56.1C331.3 -56.1 358.9 -24.2 361.4 -21.1C365.5 -17.4 368.9 -12.9 371.3 -7.8C372.9 -7.1 374.5 -6.4 376.2 -5.7L377.2 -5.2L379.0999999999999 -4.3C391.7 1.6 403.5999999999999 9.1 414.3999999999999 17.8C430.7 29.5 442.2999999999999 46.5 447.2999999999999 65.9C450.2999999999999 73.0000000000001 450.3999999999999 80.9 447.6999999999999 88.1C448.5999999999999 89.5 449.3999999999999 90.9 450.3999999999999 92.4C468.3999999999999 121.3 478.5999999999999 154.3 479.9999999999999 188.3000000000001V191.1000000000001C479.9999999999999 198.4000000000001 479.3999999999999 205.6000000000001 478.0999999999999 212.7000000000001z" />
    +    <glyph glyph-name="first-order-alt"
    +      unicode="&#xF50A;"
    +      horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 -48.21C115.34 -48.21 7.79 59.34 7.79 192S115.34 432.21 248 432.21S488.21 324.66 488.21 192S380.6600000000001 -48.21 248 -48.21zM248 411.7100000000001C126.66 411.71 28.29 313.3400000000001 28.29 192S126.66 -27.71 248 -27.71S467.71 70.66 467.71 192S369.34 411.71 248 411.71zM248 -19.51C131.19 -19.51 36.49 75.18 36.49 192S131.19 403.51 248 403.51S459.51 308.81 459.51 192S364.81 -19.51 248 -19.51zM434.23 143.47A191.613 191.613 0 0 0 414.1 94.78L339.9700000000001 130.66L401.4500000000001 75.84A193.515 193.515 0 0 0 364.2500000000001 38.55L309.4500000000001 100.12L345.3300000000001 25.85A190.94399999999996 190.94399999999996 0 0 0 296.7000000000001 5.62L269.4100000000001 84.09L274.2000000000001 1.16C265.5900000000001 -0.02 256.8000000000001 -0.64 247.8700000000001 -0.64S230.1500000000001 -0.02 221.5400000000001 1.16L226.3000000000001 83.62L199.1500000000001 5.59A191.365 191.365 0 0 0 150.5000000000001 25.79L186.4300000000001 100.13L131.5600000000001 38.49A193.85 193.85 0 0 0 94.3400000000001 75.77L155.9300000000001 130.67L81.6700000000001 94.74A191.638 191.638 0 0 0 61.5300000000001 143.43L139.3700000000001 170.54L57.1400000000001 165.78C55.9800000000001 174.35 55.3600000000001 183.1 55.3600000000001 191.99C55.3600000000001 200.99 55.9900000000001 209.83 57.1800000000001 218.5L139.5600000000001 213.7299999999999L61.6200000000001 240.89A191.726 191.726 0 0 0 81.8500000000001 289.56L156.0700000000001 253.64L94.55 308.5A193.85 193.85 0 0 0 131.8300000000001 345.7199999999999L186.59 284.19L150.7600000000001 358.36A191.48999999999998 191.48999999999998 0 0 0 199.4100000000001 378.49L226.2800000000001 301.24L221.5700000000001 382.85C230.1800000000001 384.03 238.9600000000001 384.65 247.8900000000001 384.65S265.6 384.03 274.2100000000001 382.85L269.4700000000001 300.69L296.5200000000001 378.45C313.79 373.95 330.1200000000001 367.1 345.1500000000001 358.28L309.3300000000001 284.16L364.0500000000001 345.63A193.12999999999997 193.12999999999997 0 0 0 401.2900000000001 308.4L339.8400000000001 253.63L413.9600000000001 289.49A191.51499999999996 191.51499999999996 0 0 0 434.1600000000001 240.84L356.3500000000001 213.74L438.5900000000001 218.49C439.7800000000001 209.83 440.4100000000001 200.99 440.4100000000001 192C440.4100000000001 183.12 439.8000000000001 174.37 438.6300000000001 165.81L356.5100000000001 170.56L434.2300000000002 143.47z" />
    +    <glyph glyph-name="first-order"
    +      unicode="&#xF2B0;"
    +      horiz-adv-x="448" d=" M12.9 218.8C13 218.9 13.1 219.1 13.2 219.2C13.2 219.1 13.2 218.9 13.1 218.8H12.9zM224 351.4C216.9 351.4 209.4 350.8 202.6 349.7L206.3 282.3L184.3 346.3C170 342.6 156.6 336.9 144.3 329.7000000000001L173.7 268.3L128.6 319.2000000000001C117.2 310.3 106.9 300.1 98 288.3L148.6 242.9L87.5 272.6C80.4 260.3 74.6 246.9 70.9 232.6L135.2 210L67.2 214C66.3 206.9 65.8 199.4 65.8 192S66.4 177.4 67.2 170.3L134.9 174.3L70.9 151.7C74.6 137.4 80.3 124 87.5 111.4L148.6 141.1L97.7 96C106.6 84.3 116.8 73.7 128.6 65.1L173.5 116L144 54.6C156.3 47.2 169.7 41.5 184 37.7L206.3 102.3000000000001L202.3 34.3000000000001C209.4 33.2 216.9 32.6000000000001 224 32.6000000000001C231.4 32.6000000000001 238.6 33.2000000000001 245.7 34.3000000000001L241.7 102.9000000000001L264.3 37.8000000000001C278.6 41.8000000000001 292 47.2 304.3 54.7L274.9 116L319.8 65.1C331.5 74 341.8 84.2000000000001 350.4 96L299.8 141.1L360.9 111.7000000000001C368 124.0000000000001 373.8 137.4 377.5 152.0000000000001L313.5 174.3000000000001L380.9 170.3000000000001C382 177.4000000000001 382.3 184.6000000000001 382.3 192.0000000000001S382 206.9000000000001 380.9 214.0000000000001L313.2 210.0000000000001L377.2 232.3000000000001C373.5 246.6000000000001 368.1 260.3000000000001 360.6 272.6000000000001L299.7 242.9000000000001L350.3 288.3000000000001C341.4000000000001 300.0000000000001 331.2 310.3000000000001 319.7 319.2000000000001L274.6 268.3000000000001L304 329.4000000000001C291.7 336.8000000000001 278.3 342.5000000000001 264 346.3000000000001L241.7 282L245.7 349.7C238.6 350.9 231.4 351.4 224 351.4zM443.4 320V64L224 -64L4.6 64V320L224 448L443.4 320zM426.3 309.7L224 427.1L21.7 309.7V74.6L224 -43.1L426.3 74.6V309.7zM224 410.9L411.7 301.5V82.6L224 -26.9L36.3 82.6V301.4L224 410.9zM224 360C131.7 360 57.1 284.9 57.1 192C57.1 99.4 131.7 24.3 224 24.3C316 24.3 390.9 99.4 390.9 192C390.9 284.9 316 360 224 360z" />
    +    <glyph glyph-name="firstdraft"
    +      unicode="&#xF3A1;"
    +      horiz-adv-x="384" d=" M384 256H320V128H192V0H0V25.6H166.4V153.6H294.4V281.6H384V256zM358.4 217.6V89.6H230.4V-38.4H64V-64H256V64H384V217.6H358.4zM384 25.6H294.4V-64H320V0H384V25.6zM0 448V64H128V192H256V320H384V448H0z" />
    +    <glyph glyph-name="flickr"
    +      unicode="&#xF16E;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM144.5 129C109.4 129 81 157.4 81 192.5S109.4 256 144.5 256S208 227.6 208 192.5S179.6 129 144.5 129zM303.5 129C268.4 129 240 157.4 240 192.5S268.4 256 303.5 256S367 227.6 367 192.5S338.6 129 303.5 129z" />
    +    <glyph glyph-name="flipboard"
    +      unicode="&#xF44D;"
    +      horiz-adv-x="448" d=" M0 416V-32H448V416H0zM358.4 236.8H268.8V147.2000000000001H179.2V57.6H89.6V326.4H358.4V236.8z" />
    +    <glyph glyph-name="fly"
    +      unicode="&#xF417;"
    +      horiz-adv-x="384" d=" M197.8 20.2C210.7 8.5 231.5 -13.1 231 -30.5C231 -31.3 230.9 -32.1 230.9 -33C229.1 -52.8 212.1 -64.1 191.8 -64C166.8 -63.9 151.9 -47.2 153.1 -28.2C154.1 -12 173.6 8.5 185.5 19.4C187.8000000000001 21.5000000000001 188.2 22.1 191.1 23.0000000000001C194.5 23.0000000000001 195 22.7 197.8 20.2zM331.9 380.7C315.6 406.4 293.3 421.3 268.6 432.8C243.1 443.5 214 448.2 192 448C147.9 448 120.8 434.8 110.9 430.7C57.3 402.8 26.5 360.8 28 289.4C35.1 207.2 125 113.4 183.8 55.6C185.5 54 188.3 51.1 190 50.5L193.3 50.4C195.4 51.1 195.1 50.9 196.8 52.5C249.1 101.7 337.5 198.3 352.7000000000001 268.2C359.7000000000001 307.4 355.8000000000001 340.7 331.9000000000001 380.7zM186.8 96.1C158.8 147.2000000000001 121.6 226.8 117.5 285.1C114.1 332.6 128.9 416.3 186.8 421.8V96.1zM328.7 268C312.3 211.2 251.4 140 209.8 97.7C237.6 149.6 275 231 277 289.6C278.6 335.5 267.2 395.4 229 421C317.8 402.7 344.5 322.9 328.7 268z" />
    +    <glyph glyph-name="font-awesome-alt"
    +      unicode="&#xF35C;"
    +      horiz-adv-x="448" d=" M397.8 380.2C405.6 380.2 412.1 373.6 412.1 365.9V18.3C412.1 10.4999999999999 405.5 3.9999999999999 397.8 3.9999999999999H50.2C42.4 3.9999999999999 35.9 10.6 35.9 18.3V365.8C35.9 373.6 42.5 380.1 50.2 380.1H397.8M397.8 416H50.2C22.7 416 0 393.3 0 365.8V18.2C0 -9.3 22.7 -32 50.2 -32H397.8C425.3 -32 448 -9.3 448 18.2V365.8C448 393.3 425.3 416 397.8 416zM339.3 276.8C333.3 276.8 309.4000000000001 261.3 286.7 261.3C282.5 261.3 278.3 261.9 274.2 263.7000000000001C254.5 271.5 237.2 277.4 215.1 277.4C194.8 277.4 173.3 270.8 155.4 263.7000000000001C153.6 263.1 151.8 262.5 150.6 261.9V279.8C158.4 285.8 163.1 294.7000000000001 163.1 305.5C163.1 323.4 148.8 337.8 130.8 337.8S98.5 323.5 98.5 305.5C98.5 295.3 103.3 285.8 111 279.8V67.7000000000001C111 56.9 120 48.0000000000001 130.7 48.0000000000001C139.7 48.0000000000001 146.8 54.0000000000001 149.2 61.7000000000001V63C149.8 64.8 149.8 66 149.8 67.8V112C151 112 152.2 112.6 152.8 113.2C172.5 121.6 195.8 129.9 218.5 129.9C249.6 129.9 261.5 113.8 287.8 113.8C306.3 113.8 324.2 120.4 339.8 127.5C344 129.3 347 131.1 347 135.3V269.7C348.8 273.8 344.7 276.8 339.3 276.8z" />
    +    <glyph glyph-name="font-awesome-flag"
    +      unicode="&#xF425;"
    +      horiz-adv-x="448" d=" M444.373 88.576C444.373 81.408 438.229 78.336 431.061 75.264C402.389 62.976 371.669 51.712 338.901 51.712C292.821 51.712 271.317 80.384 216.021 80.384C176.085 80.384 134.101 66.048 100.309 50.688C98.261 49.664 96.213 49.664 94.165 48.64V-29.184C94.165 -50.5890000000001 78.043 -64 60.373 -64C40.9169999999999 -64 25.5569999999999 -48.64 25.5569999999999 -29.184V345.6C12.245 355.8400000000001 3.029 372.224 3.029 390.656C3.029 422.4 28.629 448 60.373 448S117.717 422.4 117.717 390.656C117.717 372.224 109.525 355.8400000000001 95.189 345.6V313.856C99.313 315.23 153.957 342.528 209.877 342.528C275.147 342.528 307.553 314.88 336.853 314.88C375.765 314.88 418.773 342.528 429.0130000000001 342.528C437.2050000000001 342.528 444.3730000000001 336.384 444.3730000000001 329.216V88.576z" />
    +    <glyph glyph-name="font-awesome"
    +      unicode="&#xF2B4;"
    +      horiz-adv-x="448" d=" M397.8 416H50.2C22.7 416 0 393.3 0 365.8V18.2C0 -9.3 22.7 -32 50.2 -32H397.8C425.3 -32 448 -9.3 448 18.2V365.8C448 393.3 425.3 416 397.8 416zM352.4000000000001 131.7C352.4000000000001 127.5 348.8 125.7 344.6 123.9C327.9000000000001 116.7 310 110.2 290.8 110.2C263.9000000000001 110.2 251.4 126.9 219.1 126.9C195.8 126.9 171.3 118.5 151.6 109.6C150.4 108.9999999999999 149.2 108.9999999999999 148 108.4V63C148 61.2 148 59.4 147.4 58.2V57C145 48.6 137.2000000000001 42.7 128.3000000000001 42.7C117.0000000000001 42.7 108 51.7 108 63V281.6C100.2000000000001 287.6 94.9000000000001 297.1 94.9000000000001 307.9C94.9000000000001 326.4 109.8000000000001 341.4 128.4 341.4C146.9 341.4 161.9 326.5 161.9 307.9C161.9 297.1 157.1 287.6 148.8000000000001 281.6V263.1C150.6000000000001 263.7 152.4 264.3 154.2000000000001 265.5C172.7000000000001 273.3 194.8000000000001 279.8 215.7000000000001 279.8C238.4000000000001 279.8 256.3000000000001 273.8 276.6 266.1C280.8 264.3 285 263.7000000000001 289.7000000000001 263.7000000000001C312.4000000000001 263.7000000000001 337.5000000000001 279.8 343.5000000000001 279.8C348.3000000000001 279.8 352.5000000000001 276.2000000000001 352.5000000000001 272V131.7z" />
    +    <glyph glyph-name="fonticons-fi"
    +      unicode="&#xF3A2;"
    +      horiz-adv-x="384" d=" M114.4 224H206.8L191.6 172.8H115.2V15C115.2 7 112.4 5.8 119.6 5L179.2 -0.6V-35H0V0.2L29.2 3C36.4 3.8 38.4 6.2 38.4 13.8V169.6C38.4 172.8 34.4 172.8 30.4 172.8H0V224H38.4V252.8C38.4 320.8 74.8 348.8 144.4 348.8C191.2 348.8 233.2 337.6 233.2 276.4L163.6 268C164 293.6 157.6 299.6 141.2 299.6C116 299.6 115.2 286 115.2 262V230C115.2 226.8 110.4 224 114.4 224zM384 -35H243.2V-0.6L271.2 3C278.4 3.8 281.6 5.4 281.6 13V161C281.6 166.6 277.6 170.2 272.4 171.8L239.2 180.6L248.4 221H358.4V13C358.4 5 354.8 4.2 362.4 3L384 -0.6V-35zM354 312.2L366.4 266.6L356.4 256.6L313.6 279.4L270.8 256.6L260.8 266.6L273.2 312.2L243.2 348.6L248 358.6H286L307.2 397H320L341.2 358.6H379.2L384 345.4L354 312.2z" />
    +    <glyph glyph-name="fonticons"
    +      unicode="&#xF280;"
    +      horiz-adv-x="448" d=" M0 416V-32H448V416H0zM167.4 220H234.8L223.7 182.7H168V69.8C168 63.9999999999999 166 63.1 171.2 62.4999999999999L214.7 58.3999999999999V33.2999999999999H84V59L105.3 61C110.5 61.6 112 63.3 112 68.9V180.3C112 182.6 109.1 182.6 106.2 182.6H84V220H112V241C112 290.6 138.5 311 189.3 311C223.4 311 254 302.8 254 258.2L203.3 252.1C203.6 270.8 198.9 275.1 187 275.1C168.6 275.1 168 265.2 168 247.7V224.4C168 222 164.5 220 167.4 220zM364 33.3H261.3V58.4L281.7 61.0000000000001C286.9 61.6000000000001 289.3 62.7000000000001 289.3 68.3000000000001V176.2C289.3 180.3 286.4000000000001 182.9 282.6 184.1L258.4000000000001 190.5L265.1 220H345.3V68.3C345.3 62.4999999999999 342.7 61.9 348.2 60.9999999999999L363.9 58.3999999999999V33.2999999999999zM342.1 288.8L351.1 255.6L343.8 248.3L312.6 264.9L281.4000000000001 248.3L274.1 255.6L283.1 288.8L261.3 313L264.8 322.6H292.5L308 350.6H317.3L332.8 322.6H360.5L364 313L342.1 288.8z" />
    +    <glyph glyph-name="fort-awesome-alt"
    +      unicode="&#xF3A3;"
    +      horiz-adv-x="512" d=" M211.7 206.9V155.2C211.7 153.1 210.1 151.5 208 151.5H185.8C183.7 151.5 182.1 153.1 182.1 155.2V206.9C182.1 209 183.7 210.6 185.8 210.6H208C210.1 210.6 211.7 209 211.7 206.9zM326.2 210.6H304C301.9 210.6 300.3 209 300.3 206.9V155.2C300.3 153.1 301.9000000000001 151.5 304 151.5H326.2C328.3 151.5 329.9 153.1 329.9 155.2V206.9C329.8 209 328.2 210.6 326.2 210.6zM297.1 -52.6C296.2 -52.7 295.4 -52.9 294.5 -53C293.5 -53.2 292.3999999999999 -53.3 291.3999999999999 -53.5C290.5 -53.6 289.5999999999999 -53.8 288.5999999999999 -53.9C287.5999999999999 -54 286.5999999999999 -54.2 285.5999999999999 -54.3C284.5999999999999 -54.4 283.5999999999999 -54.4999999999999 282.7 -54.6C281.7 -54.7 280.8 -54.8 279.8 -54.9C278.8 -55 277.7 -55.1 276.7 -55.2C275.8 -55.3 274.8999999999999 -55.4 274 -55.4C272.8999999999999 -55.5 271.7 -55.5 270.6 -55.6C269.8 -55.6 268.9 -55.7 268.1 -55.7C266.8 -55.8 265.5 -55.8 264.2 -55.8C263.5 -55.8 262.8 -55.9 262.1 -55.9C260.1 -55.9 258.1 -56.0000000000001 256.1 -56.0000000000001S252.1 -56.0000000000001 250.1 -55.9C249.4 -55.9 248.7 -55.9 248 -55.8C246.7 -55.8 245.4 -55.7 244.1 -55.7C243.3 -55.7 242.4 -55.6 241.6 -55.6C240.5 -55.4999999999999 239.3 -55.4999999999999 238.2 -55.4C237.3 -55.3 236.4 -55.3 235.5 -55.2C234.5 -55.1 233.4 -55 232.4 -54.9C231.4 -54.8 230.5 -54.7 229.5 -54.6C228.5 -54.4999999999999 227.5 -54.4 226.6 -54.3C225.6 -54.1999999999999 224.6 -54.1 223.6 -53.9C222.7 -53.8 221.8 -53.6 220.8 -53.5C219.8 -53.4 218.7 -53.2 217.7 -53C216.8 -52.9 216 -52.7 215.1 -52.6C149.5 -41.7 92.6 -4.9 55.1 46.8C54.9 46.9999999999999 54.8 47.3 54.6 47.4999999999999C53.8 48.6 53 49.6999999999999 52.3 50.8C52 51.1999999999999 51.7 51.6 51.5 51.9999999999999C50.8 53.1 50.1 54.1 49.4 55.1999999999999C49.1 55.6999999999999 48.8 56.0999999999999 48.5 56.5999999999999C47.8 57.6999999999999 47.1 58.6999999999999 46.5 59.7999999999999C46.2 60.2999999999999 45.9 60.6999999999999 45.6 61.1999999999999C44.9 62.2999999999999 44.3 63.3999999999999 43.6 64.4999999999999C43.4 64.8999999999999 43.1 65.2999999999999 42.9 65.6999999999999C40.5 69.6999999999999 38.3 73.7999999999999 36.1 77.8999999999999C36 78.0999999999999 35.9 78.1999999999999 35.8 78.3999999999999C35.2 79.4999999999999 34.7 80.5999999999999 34.1 81.6999999999999C33.8 82.2999999999999 33.5 82.7999999999999 33.3 83.3999999999999C32.8 84.3999999999999 32.3 85.4999999999999 31.8 86.4999999999999C31.5 87.1999999999999 31.2 87.7999999999999 30.9 88.4999999999999C30.4 89.4999999999999 30 90.4999999999999 29.5 91.4999999999999L28.6 93.5999999999999C28.2 94.5999999999999 27.7 95.5999999999999 27.3 96.5999999999999C27 97.2999999999999 26.7 98.0999999999999 26.4 98.7999999999999L25.2 101.7999999999999C24.9 102.5999999999999 24.6 103.2999999999999 24.3 104.0999999999999C23.9 105.0999999999999 23.5 106.0999999999999 23.2 107.0999999999999C22.9 107.9999999999999 22.6 108.8999999999999 22.2 109.8999999999999C21.6 111.4999999999999 21.1 113.1999999999999 20.5 114.7999999999999C20.2 115.6999999999999 19.9 116.5999999999999 19.6 117.5999999999999C19.3 118.4999999999999 19.1 119.3999999999999 18.8 120.2999999999999C18.5 121.1999999999999 18.2 122.1999999999999 18 123.0999999999999C17.7 123.9999999999999 17.5 124.8999999999999 17.2 125.7999999999999C16.9 126.7999999999999 16.7 127.6999999999999 16.4 128.6999999999999C16.2 129.5999999999999 15.9 130.4999999999999 15.7 131.3999999999999C15.4 132.3999999999999 15.2 133.3999999999999 15 134.3999999999999C14.8 135.2999999999999 14.6 136.0999999999999 14.4 136.9999999999999C14.2 138.0999999999999 13.9 139.1999999999999 13.7 140.1999999999999C13.5 140.9999999999999 13.4 141.7999999999999 13.2 142.5999999999999C12.9 143.8999999999999 12.7 145.2999999999999 12.4 146.5999999999999C12.3 147.1999999999999 12.2 147.6999999999999 12.1 148.2999999999999L11.2 153.9999999999998C11.1 154.5999999999999 11 155.2999999999999 10.9 155.8999999999998C10.7 157.1999999999998 10.5 158.4999999999998 10.4 159.7999999999998C10.3 160.5999999999998 10.2 161.2999999999998 10.1 162.0999999999998C10 163.2999999999998 9.8 164.4999999999998 9.7 165.6999999999998C9.6 166.4999999999998 9.5 167.2999999999999 9.5 168.0999999999998C9.4 169.2999999999998 9.3 170.4999999999998 9.2 171.5999999999998C9.1 172.3999999999998 9.1 173.1999999999998 9 173.9999999999998C8.9 175.1999999999998 8.8 176.3999999999998 8.8 177.6999999999998C8.8 178.4999999999998 8.7 179.1999999999998 8.7 179.9999999999998C8.6 181.2999999999998 8.6 182.6999999999998 8.5 183.9999999999998C8.5 184.6999999999998 8.5 185.2999999999998 8.4 185.9999999999998C8.4 187.9999999999998 8.3 189.9999999999998 8.3 191.9999999999998C8.3 245.4999999999998 25.2 294.9999999999998 54.1 335.5999999999998C56.4 338.7999999999998 58.8 341.9999999999998 61.2 345.0999999999998C66.1 351.2999999999998 71.3 357.3999999999998 76.8 363.0999999999998C79.5 365.9999999999998 82.3 368.7999999999998 85.2 371.4999999999998C88.1 374.1999999999998 91 376.8999999999998 94 379.4999999999998C98.5 383.3999999999998 103.1 387.0999999999998 107.9 390.6999999999998C109.5 391.8999999999998 111.1 393.0999999999998 112.7 394.1999999999998C140 413.8 171.7 427.9 206 435C222.1 438.3 238.9 440 256 440S289.8 438.3 306 435C340.3 428 372 413.9 399.6 394.3C401.2000000000001 393.1 402.8 392 404.4000000000001 390.8C409.2000000000001 387.2 413.8 383.5 418.3 379.6C430.3 369.2 441.3 357.7 451.1 345.2C453.6 342.1 455.9 338.9 458.2 335.7C487.1 295 504 245.5 504 192C504 190 504 188 503.9 186C503.9 185.3 503.9 184.7 503.8 184C503.8 182.7 503.6999999999999 181.3 503.6 180C503.6 179.2 503.4999999999999 178.5 503.4999999999999 177.7C503.3999999999999 176.5 503.3999999999999 175.3 503.3 177C503.1999999999999 176.2 503.1999999999999 175.4 503.1 174.6C502.9999999999999 173.4 502.9 172.2000000000001 502.8 171.1C502.6999999999999 170.3 502.6 169.5 502.6 168.7000000000001C502.4999999999999 167.5000000000001 502.3 166.3000000000001 502.2 165.1C502.1 164.3 502 163.6 501.9 162.8C501.7 161.5 501.5 160.2 501.4 158.9C501.3 158.3 501.2 157.6 501.1 157.0000000000001L500.2 151.3000000000001C500.1 150.7000000000001 500 150.2000000000001 499.9 149.6000000000001C499.7 148.3000000000001 499.4 146.9000000000001 499.1 145.6000000000001C498.9 144.8000000000001 498.8 144.0000000000001 498.6 143.2000000000001C498.4 142.1000000000001 498.1 141.0000000000001 497.9 140.0000000000001C497.7 139.1000000000001 497.5 138.3000000000001 497.3 137.4000000000001C497.1 136.4000000000001 496.8 135.4000000000001 496.6 134.4000000000001C496.4 133.5000000000001 496.1 132.6000000000001 495.9 131.7000000000001C495.6 130.7000000000001 495.4 129.8000000000001 495.1 128.8000000000001C494.9 127.9000000000002 494.6 127.0000000000001 494.3 126.1000000000001C493.9999999999999 125.2000000000002 493.6999999999999 124.2000000000002 493.4999999999999 123.3000000000001C493.1999999999999 122.4000000000002 492.9999999999999 121.5000000000001 492.6999999999999 120.6000000000001C492.3999999999999 119.7000000000002 492.0999999999999 118.8000000000001 491.8 117.8000000000001C491.3 116.2000000000001 490.6999999999999 114.5000000000001 490.1 112.9000000000002C489.8 112.0000000000002 489.4999999999999 111.1000000000001 489.1 110.1000000000001C488.7 109.1000000000001 488.4 108.1000000000001 487.9999999999999 107.1000000000001C487.6999999999999 106.3000000000001 487.3999999999999 105.6000000000001 487.1 104.8000000000001L485.9 101.8000000000001C485.6 101.1000000000001 485.3 100.3000000000001 485 99.6000000000001C484.6 98.6000000000001 484.2 97.6000000000001 483.7 96.6000000000001L482.8 94.5000000000001C482.4 93.5000000000001 481.9 92.5000000000001 481.4 91.5000000000001C481.1 90.8000000000001 480.8 90.2000000000001 480.5000000000001 89.5000000000001C480.0000000000001 88.5000000000001 479.5000000000001 87.4000000000001 479.0000000000001 86.4000000000001C478.7 85.8000000000001 478.4 85.3000000000001 478.2 84.7000000000001C477.6 83.6000000000001 477.1 82.5000000000001 476.5000000000001 81.4000000000001C476.4 81.2000000000001 476.3000000000001 81.1000000000001 476.2 80.9000000000001C474.0000000000001 76.8000000000001 471.8000000000001 72.7000000000001 469.4 68.7000000000001C469.2 68.3000000000001 468.9 67.9000000000001 468.7 67.5000000000001C468.0000000000001 66.4000000000001 467.4 65.3000000000001 466.7 64.2000000000001C466.4 63.7000000000001 466.1 63.3000000000001 465.8000000000001 62.8000000000001C465.1000000000001 61.7000000000001 464.4000000000001 60.7000000000001 463.8000000000001 59.6000000000001C463.5000000000001 59.1000000000001 463.2 58.7000000000002 462.9000000000001 58.2000000000002C462.2000000000001 57.1000000000001 461.5000000000001 56.1000000000001 460.8000000000001 55.0000000000002C460.5000000000001 54.6000000000002 460.2 54.2000000000002 460.0000000000001 53.8000000000002C459.2 52.7000000000002 458.5000000000001 51.6000000000002 457.7 50.5000000000002C457.5000000000001 50.3000000000002 457.4 50.0000000000002 457.2 49.8000000000002C419.6 -4.8999999999998 362.7000000000001 -41.5999999999998 297.1 -52.5999999999998zM414.4 33.6C427.4 46.6 438.6 60.9999999999999 448 76.4999999999999V147.8C448 149.9 446.4 151.5 444.3 151.5H422.1C420 151.5 418.4000000000001 149.8999999999999 418.4000000000001 147.8V122H388.9000000000001V266C388.9000000000001 268.1 387.3 269.7 385.2000000000001 269.7H363.1C361 269.7 359.4000000000001 268.1 359.4000000000001 266V240.1H329.9000000000001V266C329.9000000000001 268.1 328.3 269.7 326.2000000000001 269.7H304C301.9 269.7 300.3 268.1 300.3 266V240.1H270.8V266C270.8 270.8 264.3 269.7 261.3 269.7V300.4C268 302 275.1 303.2 282.1 303.2C290.9000000000001 303.2 298.9000000000001 299.7 307.5 299.7C311.2 299.7 329.9 300.6 329.9 306.2V354.6C329.9 356.7 328.3 358.3 326.2 358.3C322 358.3 314 354.8 306.8 354.8C298.9000000000001 354.8 289.9000000000001 358.3 280.5 358.3C274 358.3 267.6 357.4 261.3 356V359.9C265.7 362 268.7 366.6 268.7 371.4C268.7 388.2 243.3 388.2 243.3 371.4C243.3 366.6 246.3 361.9 250.7 359.9V269.7C247.7 269.7 241.2 270.8 241.2 266V240.1H211.7V266C211.7 268.1 210.1 269.7 208 269.7H185.8C183.7 269.7 182.1 268.1 182.1 266V240.1H152.6V266C152.6 268.1 151 269.7 148.9 269.7H126.8000000000001C124.7000000000001 269.7 123.1 268.1 123.1 266V122H93.5V147.8C93.5 149.9 91.9 151.5 89.8 151.5H67.7C65.6 151.5 64 149.9 64 147.8V76.5C73.4 61 84.6 46.6 97.6 33.6C118.2 13 142.1 -3.1 168.8 -14.4C182.7 -20.3 197 -24.7 211.7 -27.6V48.2C211.7 106.8000000000001 300.3 106.8000000000001 300.3 48.2V-27.6C315 -24.7 329.3 -20.2 343.2 -14.4C369.9 -3.1 393.8 13 414.4 33.6" />
    +    <glyph glyph-name="fort-awesome"
    +      unicode="&#xF286;"
    +      horiz-adv-x="512" d=" M489.2 160.1H461.8C459.2 160.1 457.2 158.1 457.2 155.5V123.5H420.6V301.8C420.6 304.4 418.6 306.4 416 306.4H388.6C386 306.4 384 304.4 384 301.8V269.8H347.3999999999999V301.8C347.3999999999999 304.4 345.3999999999999 306.4 342.7999999999999 306.4H315.3999999999999C312.7999999999999 306.4 310.7999999999999 304.4 310.7999999999999 301.8V269.8H274.1999999999999V301.8C274.1999999999999 307.8 266.1999999999999 306.4 262.4999999999999 306.4V344.4C270.7999999999999 346.4 279.5999999999999 347.8 288.1999999999999 347.8C299.0999999999999 347.8 309.0999999999999 343.5 319.5999999999999 343.5C324.1999999999999 343.5 347.2999999999999 344.6 347.2999999999999 351.5V411.5C347.2999999999999 414.1 345.2999999999999 416.1 342.6999999999998 416.1C337.5999999999998 416.1 327.5999999999998 411.8 318.6999999999998 411.8C308.9999999999999 411.8 297.7999999999999 416.1 286.0999999999998 416.1C278.0999999999998 416.1 270.0999999999998 415 262.3999999999998 413.2000000000001V418.1C267.7999999999998 420.7000000000001 271.4999999999999 426.4000000000001 271.4999999999999 432.4000000000001C271.4999999999999 453.1 240.0999999999998 453.2 240.0999999999998 432.4000000000001C240.0999999999998 426.4000000000001 243.7999999999998 420.7000000000001 249.1999999999998 418.1V306.4C245.4999999999999 306.4 237.4999999999999 307.8 237.4999999999999 301.8V269.8H200.8999999999998V301.8C200.8999999999998 304.4 198.8999999999998 306.4 196.2999999999999 306.4H168.8999999999998C166.2999999999999 306.4 164.2999999999999 304.4 164.2999999999999 301.8V269.8H128V301.8C128 304.4 126 306.4 123.4 306.4H96C93.4 306.4 91.4 304.4 91.4 301.8V123.5H54.8V155.5C54.8 158.1 52.8 160.1 50.2 160.1H22.8C20.2 160.1 18.2 158.1 18.2 155.5V-64H201.1V32C201.1 104.6 310.8 104.6 310.8 32V-64H493.7V155.5C493.8000000000001 158.1 491.8000000000001 160.1 489.2 160.1zM201.1 164.6C201.1 162 199.1 160 196.5 160H169.1C166.5 160 164.5 162 164.5 164.6V228.6C164.5 231.2 166.5 233.2 169.1 233.2H196.5C199.1 233.2 201.1 231.2 201.1 228.6V164.6zM347.5 164.6C347.5 162 345.5 160 342.9 160H315.5C312.9 160 310.9 162 310.9 164.6V228.6C310.9 231.2 312.9 233.2 315.5 233.2H342.9C345.5 233.2 347.5 231.2 347.5 228.6V164.6z" />
    +    <glyph glyph-name="forumbee"
    +      unicode="&#xF211;"
    +      horiz-adv-x="448" d=" M5.8 138.3C2 155.3 0 172.5 0 189.7C0 313 99.8 413 223.1 413C239.7 413 256.4 411 272.4 407.5C149 360.5 51.9 262 5.8 138.3zM398.7 327.5C385 345 369 360.2 350.9 372.8C201.3 328.5 84.6 210.7 41.2 60.8C53.7 42.7 69.2 25.2 86.4 11.8C129.5 163.1 247.6 283.5 398.7 327.5zM414.5 74.8C429.7 99.9 439.9 128.5 444 157.6C364.6 114.7000000000001 299 47 256.4 -32.7C286.4 -28.3 315.3 -17.4 341 -1.4C376 -14.5 411.9 -25.7 448 -35C438.7 1.5 427.6 39.5 414.5 74.8zM444.2 220.3C441.6 239.8 436.3 259 428.4 277.1C290.5 231.3 182 120.5 137.1 -18C155.2 -25.6 174.1 -30.5 193.7 -33.2C240 80.9 330.5 173.6 444.2 220.3z" />
    +    <glyph glyph-name="foursquare"
    +      unicode="&#xF180;"
    +      horiz-adv-x="368" d=" M323.1 445H49.9C12.4 445 0 416.7 0 398.9V-34.9C0 -55.2 12.1 -62.6 18.2 -65C24.4 -67.5 41 -69.6 51.1 -57.9C180 91.5 182.2 94 182.2 94C185.3 97.4 185.6 97.1 189 97.1H272.4C307.5 97.1 313 122.3 316.7 136.8L365.3 379.8C373.8 422.2 363.1 445 323.1 445zM306.8 371.2L295.4000000000001 311.5C294.2000000000001 305 285.9000000000001 298.3 278.5000000000001 298.3H172.1C160.1 298.3 151.5 290 151.5 278V265C151.5 253 160.1 244.4 172.1 244.4H262.5C270.8 244.4 279.1 235.2 277.3 226.2C275.5 217.3 266.8 172.4 265.9000000000001 167.4C265.0000000000001 162.5000000000001 259.1 153.9 249.0000000000001 153.9H175.5C162 153.9 158.3000000000001 152.1 149 141.3C149 141.3 140.1 129.9 59.5 33C58.6 32.1 57.7 32.4 57.7 33.3V372.1C57.7 379.8 64.5 388.7 74.3 388.7H293.3000000000001C301.5000000000001 388.7 308.9000000000001 381 306.8000000000001 371.2z" />
    +    <glyph glyph-name="free-code-camp"
    +      unicode="&#xF2C5;"
    +      horiz-adv-x="576" d=" M69.3 303.5C28.3 235 32.9 140.5 70.3 76.5C92.5 38.3 120 24.1 120 10C120 3.2 114 -3 107.2 -3C87.7 -3 8 72.5 8 194.8C8 306.3 86 380.8 105.1 380.8C111.1 380.8 120 376 120 369.7000000000001C120 357 91.7 341.1 69.3 303.5zM265.1 89.7C269.6 87.9 277.4000000000001 84.5 277.4000000000001 90.9C277.4000000000001 93.6 275.2000000000001 93.8 273.1 94.5C264.6 97.9 259.1 102.2 254.0000000000001 109.7C245.8000000000001 121.8 243.9000000000001 133.9 243.9000000000001 148.3C243.9000000000001 180.4 288.1 186.2 288.1 218.3C288.1 230.6 280.4000000000001 234.2 280.4000000000001 237.6C280.4000000000001 239.8 281.1 239.8 283.3 239.8C291.3 239.8 302.4000000000001 226.5 305.8 220C308 215.4 308.2 214 308.2 208.9C308.2 201.9 307.5 194.7 307.5 187.6C307.5 160.6 339.4 167.8 339.4 180.8C339.4 186.8 335.8 192.4 335.8 198.2C335.8 198.9 335.8 199.4 336.5 199.4C339.8999999999999 199.4 345.8999999999999 191.7 347.6 189.3C353.4 180.4 356.1 168.5 356.1 157.9C356.1 125.5000000000001 326.6 108.9 326.6 101.9C326.6 100.9 329.5 94.2000000000001 338.7 100.0000000000001C368.4 115.1000000000001 391.8 147.6000000000001 391.8 189.8000000000001C391.8 223.4000000000001 383.1 247.5000000000001 359.7 272.4000000000001C355.8 276.5000000000001 343.3 289.3000000000001 337.2 289.3000000000001C329 289.3000000000001 344.4 270.7000000000001 344.4 258.1000000000001C344.4 250.9000000000001 339.6 245.8000000000001 332.1 245.8000000000001C320.5 245.8000000000001 317.6 271.2000000000001 316.2 279.1000000000001C310.4 312.9000000000001 303.4 337.3000000000001 269.8 353.2000000000001C259.4000000000001 358.2000000000001 233.3 365.0000000000001 233.3 355.4000000000001C233.3 353.0000000000001 236 351.3000000000001 237.9 350.3000000000001C247.1 344.7000000000001 257.5 328.9000000000001 257.5 312.1000000000001C257.5 266.0000000000001 199.8 223.9000000000001 199.8 175.9000000000001C199.6 135.6000000000001 227.9 103.3000000000001 265.1 89.7000000000001zM470.4 381C464.4 381 456 374.5 456 368.4C456 359.7 468.1 348.8 473.6 343C555.2 257.9 552.2 128.7 491.2 52C484.2 43.1 455.9 16.7 455.9 8.5C455.9 3.4 464.1 -2.9 469.1 -2.9C494.5 -2.9 567.9 77.9 567.9 182.8C568 302.1 491.8 381 470.4 381zM428.1 57.9H167C157.6 57.9 151.5 50.4 151.5 41.5C151.5 33 158.5 26 167 26H428.1C437.5 26 440 33.5 440 42.4C440 50.9 436.5 57.9 428.1 57.9z" />
    +    <glyph glyph-name="freebsd"
    +      unicode="&#xF3A4;"
    +      horiz-adv-x="448" d=" M303.7 351.8C314.8 362.9 419.2 428.8 442.9 405C466.6 381.3 400.8 276.9 389.7 265.8C378.6 254.7 350.3 264.9 326.6 288.7000000000001C302.8 312.4 292.5 340.7000000000001 303.7 351.8zM109.9 379.9C73.6 400.5 22 423.4 5.6 406.9C-11 390.3 12.7 337.5 33.5 301.2C52 333.4 78.3 360.5 109.9 379.9zM406.7 274C410 262.7 409.4 253.3 404 247.9C383.7 227.6 316.5 274.9 294.7 318C276.7 350.3 283.6 371.4 309.6 366.7C315.3 370.3 321.9 374.3 329.2 378.3C299.4 393.8 265.6 402.6 229.7 402.6C110.6 402.6 14.1 306.1 14.1 187C14.1 68 110.6 -28.6 229.7 -28.6S445.3 67.9 445.3 187C445.3 225.4 435.2 261.5 417.6 292.8C413.7000000000001 285.8 410 279.5 406.7000000000001 274z" />
    +    <glyph glyph-name="fulcrum"
    +      unicode="&#xF50B;"
    +      horiz-adv-x="269.66" d=" M70.75 283.86L35.37 240.31L0 283.86L35.38 327.4100000000001L70.75 283.86zM119.23 448L98.69 249.82L47.72 192L98.7 134.18L119.23 -64V147.11L78.15 192L119.23 236.89V448zM198.9 283.86L234.28 240.31L269.6600000000001 283.86L234.2800000000001 327.4100000000001L198.9 283.86zM150.42 236.89L191.5 192L150.42 147.11V-64L170.96 134.18L221.94 192L170.96 249.82L150.42 448V236.89z" />
    +    <glyph glyph-name="galactic-republic"
    +      unicode="&#xF50C;"
    +      horiz-adv-x="496" d=" M248 -56C111.25 -56 0 55.25 0 192S111.25 440 248 440S496 328.75 496 192S384.75 -56 248 -56zM248 423.4700000000001C120.37 423.4700000000001 16.53 319.63 16.53 192S120.37 -39.47 248 -39.47S479.47 64.37 479.47 192S375.63 423.4700000000001 248 423.4700000000001zM275.62 401.6600000000001V377.04A185.933 185.933 0 0 0 359.19 342.5L376.58 359.86C347.83 381.92 313.28 396.75 275.62 401.6600000000001zM220.25 401.5900000000001C182.61 396.6500000000001 148.09 381.79 119.37 359.74L136.65 342.38H136.73C160.8 360.2200000000001 189.28 372.4400000000001 220.25 377.05V401.5900000000001zM232.5 351.42V268.55C222.46 266.52 213.08 262.61 204.83 257.13L146.21 315.7200000000001L124.28 293.79L182.95 235.12C177.48 226.89 173.5 217.53 171.48 207.5H88.58V176.5H171.48C173.5 166.48 177.49 157.19 182.95 148.96L124.28 90.27L146.21 68.34L204.83 126.96A77.873 77.873 0 0 1 232.5 115.49V32.5899999999999H263.5V115.4899999999999C273.55 117.5199999999999 282.87 121.5499999999999 291.12 127.0399999999999L349.79 68.3499999999999L371.7200000000001 90.2799999999999L313.05 148.9699999999999C318.51 157.1999999999999 322.5200000000001 166.4899999999999 324.55 176.5099999999999H407.42V207.5099999999999H324.55C322.5300000000001 217.53 318.5200000000001 226.89 313.05 235.13L371.7200000000001 293.8L349.79 315.73L291.12 257.06C282.87 262.55 273.55 266.53 263.5 268.56V351.42H232.5zM415.74 320.7000000000001L398.38 303.3400000000001A186.337 186.337 0 0 0 433.05 219.67H457.67C452.72 257.36 437.8400000000001 291.9600000000001 415.74 320.7000000000001zM80.19 320.5700000000001C58.13 291.85 43.28 257.3100000000001 38.34 219.66H62.99C67.59 250.6200000000001 79.75 279.11 97.58 303.18L80.19 320.57zM38.34 164.33C43.26 126.69 58.09 92.15 80.14 63.43L97.5 80.8199999999999C79.69 104.8899999999999 67.58 133.3899999999999 62.99 164.3399999999999H38.34zM433.04 164.33C428.43 133.34 416.24 104.83 398.37 80.73L415.73 63.37C437.81 92.11 452.71 126.66 457.66 164.33H433.04zM136.66 41.62L119.3 24.26C148.03 2.17 182.6 -12.72 220.26 -17.67V6.97C189.27 11.6 160.73 23.76 136.66 41.62zM359.19 41.57C335.1 23.73 306.61 11.49 275.62 6.9V-17.67C313.29 -12.75 347.83 2.12 376.58 24.18L359.27 41.57H359.19z" />
    +    <glyph glyph-name="galactic-senate"
    +      unicode="&#xF50D;"
    +      horiz-adv-x="512" d=" M249.86 414.52V388.45C236.28 367.83 226 279.86 225.39 173.1C237.13 188.72 244.52 206.43 244.52 221.34V238.2200000000001C244.49 243.54 245.27 248.7500000000001 246.71 253.8700000000001C247.36 256.01 248.1 257.9500000000001 249.33 259.6900000000001C250.56 261.4400000000001 252.76 263.48 256.01 263.48C259.25 263.48 261.46 261.43 262.69 259.6900000000001C263.92 257.9400000000001 264.6600000000001 256.01 265.31 253.8700000000001C266.75 248.7500000000001 267.5300000000001 243.54 267.5 238.2200000000001V221.34C267.5 206.43 274.89 188.72 286.63 173.1C286 279.86 275.72 367.8300000000001 262.14 388.4500000000001V414.52H249.86zM223.52 266.75C214 264.6 204.82 261.56 196.06 257.67C204.96 241.55 205.82 225.03 197.77 220.38C189.77 215.76 175.92 224.61 166.41 240.2C154.83 231.41 144.53 220.88 135.85 209.11C150.58 199.49 158.74 186.19 154.17 178.45C149.63 170.75 134.14 171.31 118.7 179.41C112.92 166.16 108.95 151.9 107.05 136.99C116.73 136.81 125.72 134.61 133.23 130.9499999999999C151.01 131.25 166 132.9099999999999 173.72 135.17C179.2700000000001 161.52 196.7400000000001 183.4 220.04 194.68C220.77 220.23 221.92 244.35 223.52 266.75zM288.48 266.75C290.07 244.35 291.23 220.23 291.9500000000001 194.68C315.2400000000001 183.4 332.7200000000001 161.52 338.2700000000001 135.17C345.9900000000001 132.91 360.98 131.25 378.7600000000001 130.95C386.2700000000001 134.61 395.2600000000001 136.8 404.9400000000001 136.99C403.0400000000001 151.9 399.0800000000001 166.16 393.2900000000001 179.41C377.8500000000001 171.31 362.3600000000001 170.75 357.8200000000001 178.4500000000001C353.2500000000001 186.1900000000001 361.4200000000001 199.5000000000001 376.1400000000001 209.1100000000001C367.4600000000001 220.8800000000001 357.1600000000001 231.4100000000001 345.5800000000001 240.2000000000001C336.0700000000001 224.6100000000001 322.2200000000001 215.7600000000001 314.2200000000001 220.3800000000001C306.17 225.0300000000001 307.0300000000001 241.5400000000001 315.93 257.6700000000001A147.49 147.49 0 0 1 288.48 266.7500000000001zM256 258.15C252.77 258.15 250.14 249.34 249.91 238.22H249.86V221.34C249.86 179.92 200.85 126.3 156.37 126.3C104.37 126.3 33.62 127.75 0 97.13V94.62C9.42 77.5 20.58 61.45 33.18 46.65C45.7 67.74 84.77 87.6 141.2 88C186.88 86.98 220.23 67.67 231.96 47.13C231.97 47.12 231.95 47.09 231.96 47.08C239.63 44.94 247.81 43.85 256 43.87C264.19 43.85 272.37 44.94 280.04 47.08C280.05 47.09 280.03 47.12 280.04 47.13C291.78 67.67 325.12 86.98 370.8 88C427.23 87.61 466.29 67.74 478.8199999999999 46.65C491.42 61.45 502.5799999999999 77.51 511.9999999999999 94.62V97.13C478.3899999999999 127.75 407.63 126.3 355.63 126.3C311.1499999999999 126.3 262.14 179.92 262.14 221.34V238.2200000000001H262.0899999999999C261.8599999999999 249.3400000000001 259.2299999999999 258.1500000000001 255.9999999999999 258.1500000000001zM256 161.56C278.42 161.56 296.6 143.38 296.6 120.96S278.42 80.31 256 80.31S215.4 98.54 215.4 120.96C215.4 143.38 233.58 161.56 256 161.56zM256 153.92C237.81 153.92 223.04 139.15 223.04 120.96S237.81 88 256 88S288.96 102.77 288.96 120.96S274.19 153.92 256 153.92zM256 147.78C270.81 147.78 282.82 135.7700000000001 282.82 120.96S270.81 94.14 256 94.14S229.18 106.15 229.18 120.96S241.19 147.78 256 147.78zM141.2 81.11C131.01 81.04 119.6 80.75 110.7 79.45C111.13 75.03 112.21 60.82 117.81 49.69C126.92 52.25 136.17 53.59 145.43 53.59C186.71 52.65 216.91 19.24 223.69 -20.88L223.8 -25.58C234.2 -27.49 244.99 -28.52 256.01 -28.52C267.04 -28.52 277.82 -27.5 288.22 -25.58L288.33 -20.88C295.11 19.24 325.31 52.65 366.59 53.59C375.85 53.59 385.1 52.2500000000001 394.21 49.6900000000001C399.81 60.8200000000001 400.89 75.03 401.32 79.4500000000001C392.42 80.7500000000001 381 81.03 370.82 81.1100000000001C352.06 80.6900000000001 335.63 76.9400000000001 322.21 71.4400000000001C309.67 55.4100000000001 293.05 41.4100000000001 272.63 38.3700000000001C272.54 38.3500000000001 272.46 38.33 272.36 38.3200000000001C272.31 38.3100000000001 272.25 38.28 272.2 38.27C266.96 37.2 261.57 36.67 256.01 36.67C250.46 36.67 245.06 37.2 239.82 38.27C239.77 38.28 239.71 38.3100000000001 239.66 38.3200000000001C239.56 38.34 239.49 38.3600000000001 239.39 38.3700000000001C218.97 41.4 202.36 55.4100000000001 189.81 71.4400000000001C176.39 76.9300000000001 159.95 80.6900000000001 141.2 81.1100000000001z" />
    +    <glyph glyph-name="get-pocket"
    +      unicode="&#xF265;"
    +      horiz-adv-x="448" d=" M407.6 384H40.6C18.5 384 0 365.5 0 343.4V208.2C0 83.5 99.7 -16 224.2 -16C348.2 -16 448 83.5 448 208.2V343.4C448 365.8 430.3 384 407.6 384zM245.6 115.5C233.2 103.7 214.2 104.4 203.2 115.5C89.5 224.4 88.3 220.6 88.3 238.7C88.3 255.6 102.1 269.4 119 269.4C136 269.4 135.1 265.6 224.2 180.1C314.8 267 312.8 269.4 329.7 269.4C346.6 269.4 360.4 255.6 360.4 238.7C360.4 220.9 357.5 223 245.6 115.5z" />
    +    <glyph glyph-name="gg-circle"
    +      unicode="&#xF261;"
    +      horiz-adv-x="512" d=" M257 440C120 440 9 329 9 192S120 -56 257 -56S505 55 505 192S394 440 257 440zM207.5 65.2L81.8 190.9L207.5 316.6L242.7 281.2L218.5 257L207.4 268.1L130.2 190.9L207.4 113.7L234 140.3L180.9 193.2L205.3 217.6L282.5 140.4L207.5 65.2000000000001zM306.5 67.4L271.3 102.6L295.4000000000001 127L306.5000000000001 115.8999999999999L383.7000000000001 193.0999999999999L306.5000000000001 270.2999999999999L280.0000000000001 243.7999999999999L333.1000000000001 190.8999999999999L308.7000000000001 166.5L231.5000000000001 243.7L306.5000000000001 318.7L432.2 193L306.5 67.4z" />
    +    <glyph glyph-name="gg"
    +      unicode="&#xF260;"
    +      horiz-adv-x="512" d=" M179.2 217.6L281.6 115.2L179.2 12.8L0 192L179.2 371.2L224 326.4L198.4 300.8L179.2 320L51.2 192L179.2 64L230.7 115.5L153.6 192L179.2 217.6zM332.8 371.2L230.4 268.8L332.8 166.4L358.4000000000001 192L281.3000000000001 268.5L332.8000000000001 320L460.8000000000001 192L332.8000000000001 64L313.6000000000001 83.2L288.0000000000001 57.6L332.8000000000001 12.8L512 192L332.8 371.2z" />
    +    <glyph glyph-name="git-square"
    +      unicode="&#xF1D2;"
    +      horiz-adv-x="448" d=" M140.1 99.5C152.2 99.5 169.6 97.4 169.6 81.6C169.6 66.1 155.7 62.8 142.6 62.8C130.3 62.8 111.7 64.8 111.7 80.8S127.4 99.5 140.1 99.5zM115.4 216.1C115.4 201.3 122 192 137.7 192C153.2 192 158.9 202 158.9 216.5C159 250.9 115.4 251.3 115.4 216.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM207 274.3C194.7 269.5 181.5 265.9 168.1 265.9C129.6 288 77.4 265 77.4 216.4C77.4 198.4 89 173.5 107 167.5V166.8C93.6 160.9 89.9 130.7 107.7 119.8V119.1C88.2 112.7000000000001 75.4 100.3 75.4 78.9C75.4 42.1 110.2 31.9 140.8 31.9C177.9 31.9 205.6 45.3 205.6 86.2000000000001C205.6 136.6 133.5 118.0000000000001 133.5 145.3000000000001C133.5 154.9000000000001 138.7 158.7000000000001 147.6 160.5000000000001C177.2 166.0000000000001 195.8 189.1000000000001 195.8 219.2000000000001C195.8 224.4 194.7 229.4000000000001 192.9 234.2000000000001C197.7 235.3000000000001 202.4 236.5000000000001 207 238.1000000000001V274.3000000000001zM263.8 272.5H224.2C225.5000000000001 261.9 225.3 129.9 224.2 117H263.8C262.7 129.8 262.6 262.1 263.8 272.5zM268.3 325.8C268.3 339.2 258.3 352 244.2 352C229.9 352 219.6 339.5 219.6 325.8C219.6 312.2 230.1 299.9 244.2 299.9C257.9000000000001 299.9 268.3 312.4 268.3 325.8zM372.6 272.5H336.2000000000001C336.2000000000001 282.3 335.8000000000001 292.1 337.3000000000001 302H296.8000000000001C298.1000000000001 294.7 297.9000000000001 288.4 297.9000000000001 272.5H280.8000000000001V238.6C292.7000000000001 240.5 292.9000000000001 239.3 297.9000000000001 239.3V238.6H297.5000000000001V175.9C297.5000000000001 144.8 302.0000000000001 114.7 340.2000000000001 114.7C350.9000000000001 114.7 363.2000000000001 116.5 372.7000000000001 121.7V156.7C367.0000000000001 152.8 358.8000000000002 150.8 351.8000000000002 150.8C338.6000000000002 150.8 336.3000000000002 163.7 336.3000000000002 174.2V239.4C359.0000000000001 239.4 372.7000000000001 238.7 372.7000000000001 238.7V272.5z" />
    +    <glyph glyph-name="git"
    +      unicode="&#xF1D3;"
    +      horiz-adv-x="448" d=" M18.8 226.3C18.8 201 35 166.3 60.3 157.8V156.8C41.5 148.5 36.3 106.2 61.3 91V90C34 81 16 63.7 16 33.8C16 -17.7 64.8 -32 107.5 -32C159.5 -32 198.2 -13.3 198.2 44C198.2 114.5 97.2 88.5 97.2 126.8C97.2 140.3 104.4 145.5 116.9 148.1C158.4 155.8 184.4 188.1 184.4 230.3C184.4 237.6 182.9 244.5 180.4 251.3C187.1 252.8 193.6 254.6 200.1 256.8V307.3C182.9 300.5 164.4 295.5 145.6 295.5C91.8 326.5 18.8 294.2 18.8 226.3zM106.5 62.5C123.5 62.5 147.7 59.5 147.7 37.5C147.7 15.7 128.2 11.2 110 11.2C92.7 11.2 66.7 13.9 66.7 36.4C66.8 58.7 88.8 62.5 106.5 62.5zM103.3 192C81.3 192 72 205 72 225.8C72 275.1 133 274.6 133 226.3C133 206 125 192 103.3 192zM432 142.5V93.5C418.7 86.2 401.5 83.7 386.5 83.7C333 83.7 326.7 125.9 326.7 169.4V257.1H327.2V258.1C320.2 258.1 319.9 259.7 303.2 257.1V304.6H327.2C327.2 326.9 327.5 335.6 325.7 345.8H382.4C380.4 332 380.9 318.3 380.9 304.6H431.9V257.1S412.6 258.1 380.9 258.1V167C380.9 152.2 384.2 134.2 402.7 134.2C412.5 134.2 424 137 432 142.5zM286 379.3C286 360.6 271.5 343.1 252.2 343.1C232.4 343.1 217.7 360.3 217.7 379.3C217.7 398.6 232.2 416 252.2 416C272 416 286 398 286 379.3zM279.8 304.8C278 290.2000000000001 278.2 105 279.8 87H224.3C225.9 105.1 226.1 290 224.3 304.8H279.8z" />
    +    <glyph glyph-name="github-alt"
    +      unicode="&#xF113;"
    +      horiz-adv-x="480" d=" M186.1 119.3C186.1 98.4 175.2 64.2 149.4 64.2S112.7 98.4 112.7 119.3S123.6 174.4 149.4 174.4S186.1 140.2000000000001 186.1 119.3zM480 169.8C480 137.9 476.8 104.1 462.5 74.8C424.6 -1.8 320.4 0 245.8 0C170 0 59.6 -2.7 20.2 74.8C5.6 103.8 0 137.9 0 169.8C0 211.7 13.9 251.3 41.5 283.4C36.3 299.2000000000001 33.8 315.8 33.8 332.2C33.8 353.7 38.7 364.5 48.4 384C93.7 384 122.7 375 157.2 348C186.2 354.9 216 358 245.9000000000001 358C272.9000000000001 358 300.1 355.1 326.3000000000001 348.8C360.3000000000001 375.5 389.3000000000001 384 434.1000000000001 384C443.9000000000001 364.5 448.7000000000001 353.7 448.7000000000001 332.2C448.7000000000001 315.8 446.1000000000001 299.5 441.0000000000001 284C468.5000000000001 251.6 480.0000000000001 211.7 480.0000000000001 169.8zM415.7 119.3C415.7 163.2 389 201.9 342.2 201.9C323.3 201.9 305.2 198.5 286.2 195.9C271.3 193.6 256.4 192.7 241.1 192.7C225.9 192.7 211 193.6 196 195.9C177.3 198.5 159 201.9 140 201.9C93.2 201.9 66.5 163.2 66.5 119.3C66.5 31.5 146.9 18 216.9 18H265.1C335.4000000000001 18 415.7000000000001 31.4 415.7000000000001 119.3zM333.1 174.4C307.3 174.4 296.4000000000001 140.2000000000001 296.4000000000001 119.3S307.3 64.2 333.1 64.2S369.8 98.4 369.8 119.3S358.9000000000001 174.4 333.1 174.4z" />
    +    <glyph glyph-name="github-square"
    +      unicode="&#xF092;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM277.3 32.3C268.9000000000001 30.8 265.8 36 265.8 40.3C265.8 45.7 266 73.3 266 95.6C266 111.2000000000001 260.8 121.1 254.7 126.3C291.7 130.4 330.7 135.5 330.7 199.4C330.7 217.6 324.2 226.7 313.6 238.4C315.3 242.7 321 260.4 311.9 283.4C298 287.7000000000001 266.2 265.5 266.2 265.5C253 269.2 238.7 271.1 224.6 271.1C210.5 271.1 196.2 269.2 183 265.5C183 265.5 151.2 287.7 137.3 283.4C128.2 260.5 133.8 242.8 135.6 238.4C125 226.7 120 217.6 120 199.4C120 135.8 157.3 130.4 194.3 126.3C189.5 122 185.2 114.6 183.7 104C174.2 99.7 149.9 92.3 135.4 117.9C126.3000000000001 133.7 109.9 135 109.9 135C93.7 135.2 108.8 124.8 108.8 124.8C119.6 119.8 127.2000000000001 100.6 127.2000000000001 100.6C136.9 70.9 183.3000000000001 80.9 183.3000000000001 80.9C183.3000000000001 67.0000000000001 183.5 44.4 183.5 40.3C183.5 36 180.5 30.8 172 32.3C106 54.4 59.8 117.2000000000001 59.8 190.6C59.8 282.4000000000001 130 352.1 221.8 352.1S388 282.4 388 190.6C388.1 117.2000000000001 343.3 54.3 277.3 32.3zM179.2 93.4C177.3 93.0000000000001 175.5 93.8 175.3 95.1C175.1 96.6 176.4 97.9 178.3 98.3C180.2 98.5 182 97.7 182.2 96.4C182.5 95.1 181.2 93.8 179.2 93.4zM169.7 94.3C169.7 93 168.2 91.9 166.2 91.9C164 91.7000000000001 162.5 92.8 162.5 94.3C162.5 95.6 164 96.7 166 96.7C167.9 96.9 169.7 95.8 169.7 94.3zM156 95.4C155.6 94.1 153.6 93.5000000000001 151.9 94.1C150 94.5 148.7000000000001 96 149.1 97.3C149.5 98.6 151.5 99.2 153.2 98.8C155.2 98.2 156.5 96.7 156 95.4zM143.7 100.8C142.8 99.7 140.9 99.9 139.4 101.4C137.9 102.7000000000001 137.5 104.6 138.5 105.5000000000001C139.4 106.6000000000001 141.3 106.4 142.8 104.9C144.1 103.6 144.6 101.6 143.7 100.8zM134.6 109.9C133.7 109.3 132 109.9 130.9 111.4S129.8000000000001 114.6 130.9 115.3C132 116.2 133.7000000000001 115.5 134.6 114C135.7 112.5 135.7 110.7 134.6 109.9zM128.1 119.6C127.2 118.7000000000001 125.7 119.2000000000001 124.6 120.2000000000001C123.5 121.5000000000001 123.3 123.0000000000001 124.2 123.7000000000001C125.1 124.6 126.6 124.1 127.7 123.1C128.8 121.8 129 120.3 128.1 119.6zM121.4 127C121 126.1 119.7 125.9 118.6 126.6C117.3 127.2000000000001 116.7 128.3 117.1 129.2000000000001C117.5 129.8000000000001 118.6 130.1 119.9 129.6C121.2 128.9 121.8 127.8 121.4 127z" />
    +    <glyph glyph-name="github"
    +      unicode="&#xF09B;"
    +      horiz-adv-x="496" d=" M165.9 50.6C165.9 48.6 163.6 47 160.7 47C157.4 46.7 155.1 48.3 155.1 50.6C155.1 52.6 157.4 54.2 160.3 54.2C163.3 54.5000000000001 165.9 52.9 165.9 50.6zM134.8 55.1C134.1 53.1 136.1 50.8 139.1 50.2C141.7 49.2 144.7 50.2 145.3 52.2S144 56.5000000000001 141 57.4C138.4 58.1 135.5 57.1 134.8 55.1zM179 56.8C176.1 56.1 174.1 54.2 174.4 51.9C174.7 49.9 177.3 48.6 180.3 49.3C183.2 50 185.2 51.9 184.9 53.9C184.6 55.8 181.9 57.1 179 56.8zM244.8 440C106.1 440 0 334.7 0 196C0 85.1 69.8 -9.8 169.5 -43.2C182.3 -45.5 186.8 -37.6 186.8 -31.1C186.8 -24.9 186.5 9.3 186.5 30.3C186.5 30.3 116.5 15.3 101.8 60.1C101.8 60.1 90.4 89.2000000000001 74 96.7000000000001C74 96.7000000000001 51.1 112.4 75.6 112.1C75.6 112.1 100.5 110.1 114.2 86.3C136.1 47.7 172.8 58.8 187.1 65.4C189.4 81.4 195.9 92.5000000000001 203.1 99.1C147.2 105.3 90.8 113.4 90.8 209.6C90.8 237.1 98.4 250.9000000000001 114.4 268.5C111.8 275 103.3 301.8 117 336.4000000000001C137.9 342.9000000000001 186 309.4000000000001 186 309.4000000000001C206 315 227.5 317.9000000000001 248.8 317.9000000000001S291.6 315 311.6 309.4000000000001C311.6 309.4000000000001 359.7000000000001 343 380.6 336.4000000000001C394.3 301.7000000000001 385.8 275 383.2000000000001 268.5C399.2000000000001 250.8000000000001 409.0000000000001 237.0000000000001 409.0000000000001 209.6C409.0000000000001 113.1 350.1000000000001 105.4 294.2000000000001 99.1C303.4000000000001 91.2000000000001 311.2000000000001 76.2000000000001 311.2000000000001 52.7C311.2000000000001 19.0000000000001 310.9000000000001 -22.6999999999999 310.9000000000001 -30.9C310.9000000000001 -37.4 315.5000000000001 -45.3 328.2000000000001 -43C428.2 -9.8 496 85.1 496 196C496 334.7 383.5 440 244.8 440zM97.2 95.1C95.9 94.1 96.2 91.8 97.9 89.9C99.5 88.3 101.8 87.6 103.1 88.9C104.4 89.9 104.1 92.2000000000001 102.4 94.1C100.8 95.7000000000001 98.5 96.4 97.2 95.1zM86.4 103.2000000000001C85.7 101.9 86.7 100.3000000000001 88.7 99.3000000000001C90.3 98.3000000000001 92.3 98.6000000000001 93 100.0000000000001C93.7 101.3000000000001 92.7 102.9 90.7 103.9C88.7 104.5000000000001 87.1 104.2000000000001 86.4 103.2000000000001zM118.8 67.6C117.2 66.3 117.8 63.3 120.1 61.4C122.4 59.1 125.3 58.8 126.6 60.4C127.9 61.7000000000001 127.3 64.7000000000001 125.3 66.6C123.1 68.9 120.1 69.2000000000001 118.8 67.6zM107.4 82.3C105.8 81.3 105.8 78.7 107.4 76.4C109 74.1 111.7 73.1 113 74.1C114.6 75.4 114.6 78 113 80.3C111.6 82.6 109 83.6 107.4 82.3z" />
    +    <glyph glyph-name="gitkraken"
    +      unicode="&#xF3A6;"
    +      horiz-adv-x="592" d=" M565.7 329.9C563.4000000000001 336 556.4000000000001 339.1 550.4000000000001 336.5C544.7 334.1 541.9000000000001 327.6 544.1000000000001 321.9C555.0000000000001 292.9 561.0000000000001 261.4 561.0000000000001 228.6C561.0000000000001 94 460.7000000000001 -17.1 330.8000000000002 -34.1V89.6C338.7000000000001 91.1 346.3000000000002 93.2000000000001 353.8000000000002 95.8V-8.2C460.5000000000001 17.7 539.7000000000002 113.9 539.7000000000002 228.6C539.7000000000002 320.4000000000001 488.9000000000001 400.4000000000001 413.9000000000002 441.9000000000001C408.2000000000002 445.1 400.9000000000002 442.8 398.0000000000002 436.9000000000001C395.3000000000002 431.4000000000001 397.4000000000002 424.7000000000001 402.7000000000002 421.8C470.6000000000001 384.2000000000001 516.6000000000001 311.8000000000001 516.6000000000001 228.6000000000001C516.6000000000001 135.3000000000001 458.7000000000002 55.5000000000001 376.8000000000002 23.2V115.4C391.0000000000001 119.9 401.7000000000001 133.1 401.7000000000001 148.9C401.7000000000001 162.0000000000001 394.9000000000001 173.3 384.4000000000001 179.4C392.7000000000001 258.9000000000001 428.9000000000001 238.0000000000001 428.9000000000001 263.3000000000001V278C428.9000000000001 316 341.0000000000001 439.8 299.9000000000001 442.7C297.4000000000001 442.9 294.9000000000001 442.9 292.3000000000001 442.7C251.1 439.7 163.2 316 163.2 278V263.2C163.2 237.9 199.5 258.9 207.7 179.3C197.1 173.1999999999999 190.4 161.9 190.4 148.8C190.4 133 201 119.8 215.2 115.3V23.1C133.3 55.3 75.4 135.1 75.4 228.5C75.4 311.6 121.4 384 189.3 421.7C194.7 424.7 196.7 431.3 194 436.8C191.1 442.7 183.9 445 178.1 441.8C103.1 400.3 52.3 320.3 52.3 228.5C52.3 113.8 131.5 17.6999999999999 238.2 -8.3000000000001V95.6999999999999C245.8 93.1999999999999 253.3 91.0999999999999 261.2 89.4999999999999V-34.2C131.4 -17.2 31 93.9 31 228.5C31 261.3 37 292.8 47.9 321.8C50.1 327.6 47.3 334 41.6 336.4C35.6 339 28.6 336 26.3 329.8C14.5 298.3 8 264.2 8 228.5C8 73.4 130.6 -53.1 284.3 -59.3V86.6C291.1 86.2000000000001 299.3 86.1 307.7 86.6V-59.2C461.4 -53.1 584 73.4 584 228.5C584 264.2 577.5 298.3 565.7 329.9zM365.9 172.5C378.9 172.5 389.6 162 389.6 148.8C389.6 135.7 379 125.1 365.9 125.1C352.9 125.1 342.2 135.6 342.2 148.8C342.2 161.9 352.8 172.5 365.9 172.5zM226.1 125.2C212.9 125.2 202.4 135.9 202.4 148.9S212.9 172.6 226.1 172.6C239.2 172.6 249.8 162 249.8 148.9C249.8 135.9 239.3 125.2 226.1 125.2z" />
    +    <glyph glyph-name="gitlab"
    +      unicode="&#xF296;"
    +      horiz-adv-x="512" d=" M29.782 248.268L256 -45.714L8.074 138.301C1.218 143.443 -1.638 152.297 0.933 160.294L29.782 248.268zM105.187 423.074C102.045 431.928 89.478 431.928 86.336 423.074L29.782 248.268H161.743L105.187 423.074zM161.743 248.268L256 -45.714L350.257 248.2680000000001H161.743zM511.067 160.294L482.218 248.268L256 -45.714L503.926 138.301C510.781 143.443 513.637 152.297 511.067 160.294zM425.663 423.074C422.521 431.928 409.954 431.928 406.812 423.074L350.257 248.268H482.218L425.663 423.074z" />
    +    <glyph glyph-name="gitter"
    +      unicode="&#xF426;"
    +      horiz-adv-x="384" d=" M66.4 125.5H16V448H66.4V125.5zM166.9 371.9H116.5V-64H166.9V371.9zM267.5 371.9H217.1V-64H267.5V371.9zM368 372H317.6V125H368V372z" />
    +    <glyph glyph-name="glide-g"
    +      unicode="&#xF2A6;"
    +      horiz-adv-x="448" d=" M407.1 236.8C403.6 238.2 395.5 240.6 391.7000000000001 240.6C354.6 240.6 329.5000000000001 223.8 298.2000000000001 206.1L297.3000000000001 207C304.3000000000001 254.3 320.8000000000001 298.9000000000001 320.8000000000001 347.4000000000001C320.8 418.9 282.6 448 212.4 448C97.3 448 39 334.3 39 249.6C39 161.7 90.3 113 177.6 113C189.6 113 188.6 114 188.6 109.2C171.7 -19.7 97.8 -23.9 97.8 14.6C97.8 53.8 142.8 73.2000000000001 143.3 75.6C143 87.8 96.3 103.2000000000001 84.4 103.2000000000001C50.5 103.1 32 52.0000000000001 32 23.9C32 -28 64.8 -64 117.5 -64C194.9 -64 251.5 13.8 268.9 81.4C284 141.9 280.1 144.7 288.6 149C320.8 165.2 346.1 176 382.4 176C400.2 176 412.9 172.3 441.3 167.6C444.2 167.6 448 170.5 448 173.4C448 181.4 414.6 233.9000000000001 407.1 236.8000000000001zM231.8 321.2000000000001C222.5 276.5 213.2 231.6 204 186.9C201.7 176.7 190.7 179.1 182 179.1C143.7 179.1 133 220.9 133 252.2C133 299.2 151 361.5 194.8 385.6C201.8 389.7 209.6 392.3 217.4 392.3C236 392.3 237.4 379 237.4 363.6C237.3 349.3 234.7 335.1 231.8 321.2z" />
    +    <glyph glyph-name="glide"
    +      unicode="&#xF2A5;"
    +      horiz-adv-x="448" d=" M252.8 299.4C252.8 290.6 251.2 281.7000000000001 249.4 273C243.6 245.2 237.8 217.2 232.1 189.4C230.7 183.1 223.8 184.5 218.4 184.5C194.6 184.5 187.9 210.5 187.9 230C187.9 259.3 199.1 298.1 226.4 313.1C230.7 315.6 235.6 317.3 240.5 317.3C251.9 317.3 252.8 309 252.8 299.4zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM384 181C384 186.1 363.2 218.7 358.5 220.5C356.3 221.4 351.3 222.8 348.9 222.8C325.8 222.8 310.2 212.3 290.7 201.3L290.2 201.8C294.5 231.2 304.8 259 304.8 289.2000000000001C304.8 333.8 281 351.9000000000001 237.3 351.9000000000001C165.6 351.9000000000001 129.3 281.1 129.3 228.4000000000001C129.3 173.7000000000001 161.3 143.4 215.6 143.4C223.1 143.4 222.5 144.0000000000001 222.5 141.1C212 60.8 166 58.2000000000001 166 82.2000000000001C166 106.6 194 118.7000000000001 194.3000000000001 120.2000000000001C194.1000000000001 127.8000000000001 165 137.4 157.6 137.4C136.5 137.4 124.9 104.4 124.9 86.8C124.9 54.5 145.3 32.1 178.2 32.1C226.4000000000001 32.1 261.6 81.8 272.5 123.8C281.9 161.5 279.5 163.2 284.8 165.9C304.8 176.0000000000001 320.6 182.7000000000001 343.2 182.7000000000001C354.3 182.7000000000001 362.2 180.4 379.9 177.5000000000001C381.7 177.4 384 179.2000000000001 384 181.0000000000001z" />
    +    <glyph glyph-name="gofore"
    +      unicode="&#xF3A7;"
    +      horiz-adv-x="400" d=" M324 128.2H310.8V93.5C286.3 70.4 254.5 57.7 220.9 57.7C147.7 57.7 88.5 117.9 88.5 192.1C88.5 266.2 147.7 326.5 220.9 326.5C256.2 326.5 289.5 312.5 314.5 287.1L376.8 350.4C335 392.7 279.7 416 220.7 416C98 416 0 315.4 0 192C0 69.5 97 -32 220.7 -32C283.9 -32 345.2 -5.8 391.7 50.5C389.7 78.1 378.3 128.2 324 128.2zM311.9 240.7H205.6V151.7H324C357.5 151.7 384.5 136.6 400 109.9V140.5C400 205.7 359.6 240.7 311.9 240.7z" />
    +    <glyph glyph-name="goodreads-g"
    +      unicode="&#xF3A9;"
    +      horiz-adv-x="384" d=" M42.6 44.7H45.4C58.1 44.7 70.9 44.7 83.6 44.6C85.2 44.6 86.7 44.9999999999999 87.2 42.4999999999999C94.3 7.6 117.2 -12.1000000000001 150.1 -21.4C177 -29.0000000000001 204.2 -29.2 231.4 -23.2C265.2 -15.8000000000001 287.4 5.1 299.4 37.1999999999999C307.4 58.6999999999999 310.1 80.9999999999999 310.4 103.6999999999999C310.5 109.4999999999999 310.7 150.6999999999999 310.2 156.5L309.3 156.8C308.5 155.3 307.6 153.9 306.8 152.4C284.7 109.3 245.5 85 201.4 83.3C98.4 79.3 32 140.3 29.4 259.5C28.9 283.2 31.2 306.4 37.7 329.2C58.3 400.3 112.3 447.4 191.6 448C252.9 448.4 293.1 409.3 307.8 377.7C308.3 376.6 309.1 375.4 310.2 375.8V437.4H354.5C354.5 157.1 354.6 105.2 354.6 105.2C354.5 26.7 327.9000000000001 -38.5 251.6 -57C182.1 -73.9 92.6 -61.8 55.6 0.2C47.6 13.7 43.8 28.5 42.6 44.7zM188.9 411.5C136.4 412 80.4 370.8 73.9 277.7C69.8 218.7 88.7 155.5 145.4 129.1C173 116.2000000000001 219.7 114.1 253.7 137.8C301.3 171 316.4 234.8 308.5 291.8C298.8 362.9 260.7 411.8 188.9 411.5z" />
    +    <glyph glyph-name="goodreads"
    +      unicode="&#xF3A8;"
    +      horiz-adv-x="448" d=" M299.9 256.8C305 219.5 295.2 177.8 264 156.1C241.7 140.6 211.2 142 193.2 150.4C156.1 167.7000000000001 143.7 209 146.4 247.6C150.7 308.5 187.3 335.5 221.7 335.1C268.6 335.3 293.5 303.3 299.9 256.8zM448 360V24C448 -6.9 422.9 -32 392 -32H56C25.1 -32 0 -6.9 0 24V360C0 390.9 25.1 416 56 416H392C422.9 416 448 390.9 448 360zM330 134.8S329.9 168.8 329.9 352.1H300.9V311.8C300.1 311.5 299.7 312.3 299.3 313C289.7 333.7 263.4 359.3 223.3 359C171.4 358.6 136.1 327.8 122.7 281.2C118.4 266.3 116.9 251.1 117.2 235.6C118.9 157.7 162.3 117.8 229.6 120.4C258.5 121.5 284.1 137.4 298.6 165.6C299.1 166.6 299.7 167.5 300.3 168.5C300.5 168.3999999999999 300.7 168.3999999999999 300.9 168.3C301.2 164.5 301.1 137.6 301 133.8C300.8 119 299 104.3 293.8 90.3C286 69.3 271.5 55.6 249.3 50.8C231.5 46.9 213.7 46.9999999999999 196.1 51.9999999999999C174.6 58.1 159.6 70.9999999999999 155 93.8C154.7 95.4 153.7 95.1 152.7 95.1H125.9C126.7 84.4999999999999 129.1 74.8 134.4 65.9C158.6 25.4 217.1 17.4 262.6 28.5C312.5 40.8 329.9000000000001 83.4 330 134.8z" />
    +    <glyph glyph-name="google-drive"
    +      unicode="&#xF3AA;"
    +      horiz-adv-x="512" d=" M339 133.1L175.4 416H336.6L500.2 133.1H339zM201.5 109.5L120.9 -32H431.4L512 109.5H201.5zM154.1 380.6L0 109.5L80.6 -32L237 239.2L154.1 380.6z" />
    +    <glyph glyph-name="google-play"
    +      unicode="&#xF3AB;"
    +      horiz-adv-x="512" d=" M325.3 213.7L104.6 435L385.4 273.8L325.3 213.7zM47 448C34 441.2 25.3 428.8 25.3 412.7V-28.6C25.3 -44.7 34 -57.1 47 -63.9L303.6 192.1L47 448zM472.2 222.4L413.3 256.5L347.6 192L413.3 127.5L473.4 161.6C491.4 175.9 491.4 208.1 472.2 222.4zM104.6 -51L385.4 110.2L325.3 170.3L104.6 -51z" />
    +    <glyph glyph-name="google-plus-g"
    +      unicode="&#xF0D5;"
    +      horiz-adv-x="640" d=" M386.061 219.504C387.895 209.812 389.204 200.12 389.204 187.548C389.204 77.795 315.599 0 204.8 0C98.716 0 12.8 85.915 12.8 192S98.716 384 204.8 384C256.664 384 299.8830000000001 365.141 333.411 333.708L281.2850000000001 283.678C267.1400000000001 297.299 242.2570000000001 313.277 204.8 313.277C139.316 313.277 85.88 259.056 85.88 192C85.88 124.944 139.316 70.723 204.8 70.723C280.761 70.723 309.313 125.468 313.765 153.496H204.8V219.505H386.0610000000001zM571.467 213.067V268.8H515.466V213.067H459.733V157.066H515.466V101.333H571.467V157.066H627.2V213.067H571.4670000000001z" />
    +    <glyph glyph-name="google-plus-square"
    +      unicode="&#xF0D4;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM164 92C108.7 92 64 136.7 64 192S108.7 292 164 292C191 292 213.5 282.2 231 265.8L203.9 239.7C196.5 246.8 183.6 255.1 164.1 255.1C130 255.1 102.2 226.9000000000001 102.2 191.9C102.2 157.0000000000001 130 128.7000000000001 164.1 128.7000000000001C203.7 128.7000000000001 218.5 157.2000000000001 220.9 171.8000000000001H164V206.2000000000001H258.4C259.4 201.2000000000001 260 196.1000000000001 260 189.6000000000001C260 132.5000000000001 221.7 92.0000000000001 164 92.0000000000001zM384 173.8H355V144.8H325.8V173.8H296.8V203H325.8V232H355V203H384V173.8z" />
    +    <glyph glyph-name="google-plus"
    +      unicode="&#xF2B3;"
    +      horiz-adv-x="496" d=" M248 440C111.1 440 0 328.9 0 192S111.1 -56 248 -56S496 55.1 496 192S384.9 440 248 440zM177.3 68C108.5 68 53.3 123.5 53.3 192S108.5 316 177.3 316C208.6 316 237.4 305 260.3 283.7L226.7 251.1C213.5 264 195.4 270.2 177.3 270.2C134.4 270.2 100.1 234.7 100.1 192.1S134.3 114 177.3 114C209.9 114 242.2 133.1 247.4 167.3H177.3V209.9H294.2000000000001C295.5000000000001 203.1 296.1 196.3 296.1 189.2C296.1 118.4 248.6 68 177.3 68zM407.5 174.2V138.7H372V174.2H336.5V209.7H372V245.2H407.5V209.7H442.7V174.2H407.5z" />
    +    <glyph glyph-name="google-wallet"
    +      unicode="&#xF1EE;"
    +      horiz-adv-x="448" d=" M156.8 321.2C194.4 260.6 221 208.1 241.1 158.7C232.8 124.9 222.3 92.2 209.8 60.4C196.6 112.7 183.3 161.7 153.8 208.9C160.3 245.3 156.1 282.5 156.8 321.2zM109.3 248H16.1C9.6 248 5.6 240.5 9.6 235.3C51.8 181 81.3 117.5 101.3 48H204.8C188.6 117.7 166.1 181.7 122.3 241.5C119.3 245.5 114.3 248 109.3 248zM157.1 336C225.6 228 287.1 101.5 295.3 -32H409C397 106 340.6 233 265.8 336H157.1zM408.9 404.5C407.1 411.3 400.7 416 393.7 416H305.4C300.1 416 296.4 411 297.6 405.7C310.8 359.2 319.9 310.2 324.1 259.7C372.3 173.5 403.8 81.4 414.7 -11.1C430.5 49.4 440 122.4 440 191.9C440 265.5 427.8999999999999 337 408.8999999999999 404.5z" />
    +    <glyph glyph-name="google"
    +      unicode="&#xF1A0;"
    +      horiz-adv-x="488" d=" M488 186.2C488 44.7 391.1 -56 248 -56C110.8 -56 0 54.8 0 192S110.8 440 248 440C314.8 440 371 415.5 414.3 375.1L346.8 310.2C258.5 395.4 94.3 331.4 94.3 192C94.3 105.5 163.4 35.4 248 35.4C346.2 35.4 383 105.8 388.8 142.3H248V227.6H484.1C486.4 214.9 488 202.7 488 186.2z" />
    +    <glyph glyph-name="gratipay"
    +      unicode="&#xF184;"
    +      horiz-adv-x="496" d=" M248 440C111.1 440 0 328.9 0 192S111.1 -56 248 -56S496 55.1 496 192S384.9 440 248 440zM362.6 213.6L249.6 60.9L136.9 213.6C128.2000000000001 225.5 117.8000000000001 264 150.5 285.6C178.6 303.7 205.1 289.8 219 273.7C234.9000000000001 255.8 265.6 256.8 280.7000000000001 273.7C294.6 289.8 321.1 303.7 348.8000000000001 285.6C381.7000000000001 264 371.4000000000001 225.6 362.6000000000001 213.6z" />
    +    <glyph glyph-name="grav"
    +      unicode="&#xF2D6;"
    +      horiz-adv-x="512" d=" M301.1 236C305.5 231.6 305.5 224.1 301.1 219.7L291.4000000000001 210C287.0000000000001 205.3 279.5000000000001 205.3 274.8 210L264.3 220.5C259.9000000000001 225.2 259.9000000000001 232.4 264.3 237.1L274 246.8C278.4 251.2 285.9 251.2 290.6 246.8L301.1 236zM270.9000000000001 255.7C273.9000000000001 258.7 273.9000000000001 263.5 270.9000000000001 266.2C268.1 269.2 263.4000000000001 269.2 260.4000000000001 266.2C257.6 263.4 257.6 258.7 260.4000000000001 255.7C263.5000000000001 252.9 268.2000000000001 252.9 270.9000000000001 255.7zM244.9000000000001 250.4C241.9000000000001 247.6 241.9000000000001 242.9 244.9000000000001 240.2C247.7000000000001 237.2 252.4000000000001 237.2 255.4000000000001 240.2C258.2000000000001 243 258.2000000000001 247.7 255.4000000000001 250.4C252.4000000000001 253.4 247.7000000000001 253.4 244.9000000000001 250.4zM317.4000000000001 263.7C297.5000000000001 278.1 283.6 306.9 305.5000000000001 331.8C327.1000000000001 356.7 346.2000000000001 349 365.3000000000001 331C377.2000000000001 319.7 394.6000000000001 306.1 382.5000000000001 282.8C370.0000000000001 259.3 337.4000000000001 249.6 317.4000000000001 263.7zM365.1 308.2C356.2000000000001 318.2 341.8 301.3 349.6 292.1C357 283.1 381.7000000000001 289.7 365.1 308.2zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM437.8 149.4C440.3 165.5 417.6 166 412.6 175.1C399 199.2 384.9000000000001 211.9 358.1 205.5C369.7000000000001 213.5 381.6 211.6 381.6 211.6C381.9000000000001 218 381.6 224.6 372.2000000000001 236.5C376.1 249 372.5000000000001 258.9 372.5000000000001 258.9C388.0000000000001 267.5 399.3000000000001 283.3 401.6000000000001 302.1C405.2000000000001 333.1 382.8000000000001 361.3 351.8000000000001 364.9C329.7000000000001 367.4 308.1000000000001 357.2 297.5000000000001 339.2C274.3000000000001 299.1 298.9000000000001 268.3 319.9000000000001 257.8C305.5000000000001 259.2 285.6 269.7 279.8 292.1C273.2 317.8 282.6 341.9 288.7 353.5C288.7 353.5 284.3 359.3 280.7 362.4C280.7 362.4 266.9 362.4 256.1 357.1C268 372.3 281.3 371.5 281.3 371.5C281.3 377.9 280.7 386.4 277.7 393.1C272.3 404.1 253.8999999999999 406 246 390.3C246.1 390.5 246.3 390.7 246.4 390.8C241.4 378.9 245.3 334.9 263.3 303.6C260.8 302.2 254.2 297.5 250.3 293.6C228.7 283.9 194.1 233.3 194.1 233.3C165.9 222.5 116.9 182.4 123.5 153.6C123.8 150.6 124.9 148.1 126.5 146.1C123.7 143.9 121 141.1 118.2 137.8C106.3 124 112.9 102.6 135.9 113.4C151.7 120.6 165.5 133.6 172.2 143.8C172.2 143.8 166.7 148.8 155.9 148.2C183.6 154.8 190.2 157.6 202.1 157.3C210.1 153.4 210.1 191.6 210.1 191.6C210.1 206.3 207.9 222.6 199 233.1C211.5 220.9 228.1 200.4 227 172.5C226.2 154.2 211.8 149.5 211.8 149.5C202.7 132.9 168.6 83.6 181.4 43.5C181.4 43.5 171.7 58.4 171.2 65.6C153.8 46.2 124.7 13.3 146.6 1.1C173.2 -13.6 255.4 89.7000000000001 272.8 143.4C307.4000000000001 164.2000000000001 328.2 190.7000000000001 336.7 208.4C358.7 164.9 432 113.9 437.8 149.4z" />
    +    <glyph glyph-name="gripfire"
    +      unicode="&#xF3AC;"
    +      horiz-adv-x="384" d=" M171.8 -55.8C171.8 -50.5 176.6 -43.6 176.6 -33.5C176.6 -18.3 163.6 6.4 98.5 53.1C64.2 82.2 32 111.6 32 161.4C32 276.1 179.1 337.9 179.1 430C179.1 433.3 178.9 436.7 178.5 440C183.6 437.6 217.6 396.7 217.6 349.6C217.6 269.1 112.5 220.4 112.5 146.6C112.5 119.7000000000001 129.1 99.4 145.1 77.1C167.6 46.9 189.3 20.2 189.3 -9.4C189.2 -23.9 184.9 -39.1 171.8 -55.8zM317.8 185.6C319.3 177.2000000000001 320 169 320 161C320 109.2 290.6 63.5 252.7 24.2C251.7 23.2 250.5 21.8 249.5 21.8C245.9 21.8 214 63.4 214 75C214 75 255.8 130.7 255.8 171.9C255.8 182.7 253.1 193.6 246.7 205.3C245.2 173 191 117.6 188.6 117.6C185.9 117.6 170.7 139.6 170.7 159.7C170.7 165 171.7 170.4 173.9 175.5C176.3 181 230.5 247.5 230.5 292.2C230.5 298.4 229.5 304.2 227.1 309.3L223.1 316.5C239.8 310 305.7 252.4 317.8 185.6" />
    +    <glyph glyph-name="grunt"
    +      unicode="&#xF3AD;"
    +      horiz-adv-x="384" d=" M61.3 258.7C60.2 248.7 66.5 239.6 66.5 239.6C67.2 247.1 68.7 252.4 70.5 256.2C70.9 245.9 73.7 232.7 83.3 222.1C90.2 214.5 118.9 198.8 138.2 216C139.2 213.6 140.3 210.7 141.2 207.5C144.1 197.2 138.5 182.2 138.5 182.2S153.6 199.3 152.4 214.7C163.2 215.2 173.8 223.1 173.5 234.2C173.5 234.2 154.6 223.8 138 243C128.3 254.2 97.1 285 54.9 274.8C59.2 273.8 63.8 272.4 68.4 270.7000000000001H68.3C64.1 268.7000000000001 61.8 263.6 61.3 258.7000000000001zM89.6 260.5C109.1 249.5 127 234.8 134.5 223.5C128.8 220.2 112.8 213.1 96.5 225.2C86.2 232.8 86.7 251.4 89.6 260.5zM168.8 26.8C171 24.5 170.3 21.5 169.7 20C168.6 17.3 164.2 8.4 156.7 0.2C154 -2.7 150.1 -4.4 145.7 -4.4C141.4 -4.4 137 -2.8 133.9 -0.1C131.6 2 123.7 9.4 120.2 18.5C118.9 21.9 119.2 24.6 121.1 26.6C122.4 27.9 125.1 29.5 130.6 29.5H160C164.1 29.5 167 28.6 168.8 26.8zM231.7 214.7C230.5000000000001 199.2 245.6 182.2000000000001 245.6 182.2000000000001S240.0000000000001 197.2000000000001 242.9000000000001 207.5000000000001C243.8000000000001 210.7000000000001 244.9000000000001 213.5000000000001 245.9000000000001 216.0000000000001C265.2000000000001 198.7000000000001 293.9000000000001 214.5000000000001 300.7000000000001 222.1000000000001C310.3000000000001 232.7000000000001 313.0000000000001 245.9000000000001 313.5000000000001 256.2000000000001C315.3000000000001 252.4000000000001 316.9000000000001 247.1000000000001 317.5000000000001 239.6000000000001C317.5000000000001 239.6000000000001 323.9000000000001 248.7000000000001 322.7000000000001 258.7000000000001C322.1 263.7000000000001 319.8000000000001 268.7000000000001 315.7000000000001 270.5000000000001H315.6C320.2000000000001 272.3000000000001 324.8 273.7000000000001 329.1 274.6C286.8 284.8000000000001 255.7 254.0000000000001 246.0000000000001 242.8000000000001C229.3000000000001 223.6000000000001 210.5 234.0000000000001 210.5 234.0000000000001C210.3000000000001 223.1 220.9 215.1 231.7 214.7zM249.5000000000001 223.5C257 234.9000000000001 274.9000000000001 249.5000000000001 294.4000000000001 260.5C297.4000000000001 251.4000000000001 297.8 232.8000000000001 287.4000000000001 225.1C271.1 213 255.2000000000001 220.1 249.5000000000001 223.5C249.4000000000001 223.4 249.5000000000001 223.5 249.5000000000001 223.5zM263 26.6C264.9 24.7 265.2 22 263.9 18.7C260.4 9.8000000000001 252.5 2.6 250.2 0.6C247.1 -2 242.8 -3.6 238.4 -3.6S230.1 -1.9999999999999 227.4 0.9C219.9 8.9 215.4 17.6 214.4 20.2C213.8 21.7 213.1 24.6 215.3 26.9C217 28.7 220 29.6 224.2 29.6H253.6C259 29.5 261.7 27.9 263 26.6zM164.7 278.1C174.6 272.1 183.5 270 192 269.8C200.5 270 209.4 272.1 219.3 278.1C219.3 278.1 204.8 260.4000000000001 192.1 260.3H191.9C179.2000000000001 260.5 164.7000000000001 278.1 164.7000000000001 278.1zM349.2 130.7000000000001C346.8 112.8000000000001 336.2 96.9 324.6 87.0000000000001C321.5 109.7000000000001 320.9 142.5000000000001 320.9 149.4C320.9 164.1 330.4 173.9 333.1 175.5000000000001C335.6 177.0000000000001 338.5 178.5000000000001 341.4 180.1000000000001C359.4 189.7000000000001 381.8 201.7000000000001 381.8 223.8000000000001C381.8 240.0000000000001 372.5 247.0000000000001 366.4 251.6000000000001C365.6 252.2000000000001 364.9 252.7000000000001 364.2 253.3000000000001C362.1 255.0000000000001 360.5 256.3000000000001 359.9 257.7000000000001C355.5 267.5000000000001 356.3 291.9000000000001 358.2 295.3000000000001C358.8 295.9000000000001 374.9 316.2000000000001 370 334.5000000000001C368 341.9000000000001 363.1 347.8000000000001 355.9 351.5000000000001C350.6 354.2000000000001 344 355.7000000000001 336.4 356.0000000000001C336.3 358.0000000000001 335.9 359.9000000000001 335.5 361.9000000000001C334.9 364.5000000000001 334.4 367.2000000000001 334.6 370.0000000000001C335 374.7000000000001 335.4000000000001 379.0000000000001 336.8 381.3000000000001C345.2 394.6000000000001 365.6 398.9000000000001 365.8 398.9000000000001L378.1 401.3000000000001L370 410.8000000000001C369.9 411.0000000000001 352.7 428.3000000000001 323.7 428.3000000000001C315.8 428.3000000000001 307.7 427.0000000000001 299.6 424.4000000000001C275.4 416.6000000000001 256.7 393.9000000000001 250.2 385.1000000000001C247.1 386.1000000000001 243.9 387.0000000000001 240.6 387.8000000000001C236.4 403.6000000000001 249.6 426.3000000000001 249.6 426.3000000000001S236 429.3000000000001 215.9 411.1000000000001C213.3 417.6000000000001 207.8 431.6000000000001 214.1 448.3000000000001C184.6 437.9 177.2 422 175 407.6C167.4 413 168.3 430.7 167.8 435.2C160.3 434.3 138.6 413.3 139.6 386.9C137.6 386.4 135.7 385.8 133.7 385.2C127.2 394 108.6 416.7 84.3 424.5C76.4 426.7 68.3 428 60.4 428C31.4 428 14.3 410.7 14.1 410.5L6 401.1L18.3 398.7C18.5 398.7 38.9 394.4 47.3 381.1C48.7 378.9 49.1 374.5 49.5 369.8C49.7 367 49.1 364.3 48.6 361.7C48.2 359.8 47.8 357.8 47.7 355.8C40 355.5 33.5 354 28.2 351.3C21 347.6 16.1 341.7 14.1 334.3C9.1 316.1 25.3 295.8 25.9 295.1C27.8 291.7 28.6 267.3 24.2 257.5C23.6 256.1 22 254.8 19.9 253.1C19.2 252.6 18.5 252 17.7 251.4C11.6 246.8 2.3 239.7 2.3 223.6C2.3 201.5 24.7 189.5 42.7 179.9C45.7 178.3 48.5 176.8 51 175.3C53.7 173.6999999999999 63.2 163.9 63.2 149.1999999999999C63.2 142.3 62.6 109.4999999999999 59.5 86.8C47.9 96.6999999999999 37.3 112.6999999999999 34.9 130.6C34.9 130.6 5.7 107.9999999999999 14.3 59.8C19.5 30.3 37.5 13.6999999999999 61.3 5.1C70.1 -14.0000000000001 90.7 -40.6 128.6 -44.5000000000001C143 -56.3 163 -64 192.2 -64H192.4C221.5 -64 241.5 -56.3 256 -44.5C293.9 -40.6 314.5 -14 323.3 5.1C347.1 13.8 365 30.3 370.3 59.8C378.5 108.2 349.2 130.7000000000001 349.2 130.7000000000001zM305.7 410.3C311.3 412.1 317.3 413 323.4 413C334.4 413 343.3 410 348.1 408C345 406.6 341.7 404.8 338.4 402.7C336 403.1 332.8 403.5 329.2 403.5C318.7 403.5 308.7 400.4 300.5 394.6C288.2 385.9 282.5 377.7 279.8 372.2C277.6 373.5 275.3 374.7 272.7 375.9C271.1 376.7 269.6 377.4 268 378.1C274.1 387.2 287.9 404.6 305.7 410.3zM326.7 392.1C325.9 391.1 325.1 390 324.4 388.9C321.1 383.7 320.5 377.3 320 371.1C319.5 364.7 318.9 358.6 315.6 354.1C311.4000000000001 353.3 307.5 352.4 304.1 351.4C301.8 354.5 298.5 358.4 293.6 362.6C295 367.4 299.1 378.7 307.1 385.1C312.7000000000001 389.4 319.3 391.8 326.7000000000001 392.1zM45.6 402.7C42.3 404.9 39 406.7 35.9 408C40.7 410 49.6 413 60.6 413C66.7 413 72.6 412.1 78.3 410.3C96.1 404.5 109.9 387.1 116 378.2C114.4 377.5 112.8 376.8 111.2 376C108.7 374.8 106.3 373.5 104.1 372.3C101.5 377.7 95.8 386 83.4 394.7C75.1 400.5 65.2 403.6 54.6 403.6C51.2 403.5 48 403.1 45.6 402.7zM90.3 362.6C85.4 358.4 82 354.6 79.8 351.4C76.4 352.3 72.5 353.3 68.3 354.1C65 358.5 64.5 364.6 64 371C63.5 377.2 62.9 383.6 59.6 388.8C58.9 389.9 58.1 391 57.3 392C64.7 391.7 71.3 389.4 76.8 385C84.8 378.7 88.9 367.4 90.3 362.6zM58.1 188.1C55.4 189.7000000000001 52.5 191.2000000000001 49.7 192.7C34.8 200.7 19.5 209 19.5 223.2C19.5 234.3 23.8 237.8 28.4 241.4L28.9 241.8C29.6 242.4 30.3 243 31.1 243.6C30.2 236.4000000000001 29.2 230.3 28.4 228.7C28.4 228.7 40.5 243.7 44.1 273C45.5 284.5 43 307.3 39 316C39.2 311.1 39 306.2 38.7 301.6C38.3 302.4 37.9 303.2 37.4 303.8C34.2 307.8 25.6 321.3 28 330.4C28.9 333.9 31.1 336.4 34.7 338.2C38.5 340.1 43.5 341.1 49.8 341.1C62.1 341.1 75.7 337.4 82.7 335.1C107.8 327.1 138.1 304.2 146.8 297.4C147 297.2 147.2 297.1 147.2 297.1L152.8 293.2L149.3 299C149.1 299.3 130.2 330.4 96.1 345.5C98.1 348.4 103.5 353.6 117.7 360.6C139.1 371.1 164.2 376.4 192 376.4C219.9 376.4 244.9 371.1 266.3 360.6C280.5 353.7 285.9000000000001 348.4 287.9000000000001 345.5C253.9000000000001 330.4 235.0000000000001 299.3 234.8000000000001 299L231.3000000000001 293.2L236.9000000000001 297.1S237.1 297.2 237.3000000000001 297.4C246.0000000000001 304.2 276.3000000000001 327.2 301.4000000000001 335.1C308.4000000000001 337.3 322.0000000000001 341.1 334.3 341.1C340.6 341.1 345.6 340.1 349.4000000000001 338.2C352.9000000000001 336.4 355.1 333.8 356.1 330.4C358.6 321.3 350 307.8 346.7000000000001 303.8C346.2000000000001 303.2 345.8000000000001 302.5 345.4000000000001 301.6C345.1 306.2 344.9000000000001 311.1 345.1 316C341.1 307.2 338.6 284.5 340 273C343.6 243.7 355.7 228.7 355.7 228.7C354.9 230.3 353.9 236.4 353 243.6C353.7 243 354.5 242.4 355.2 241.8L355.7 241.4C360.3 237.7 364.6 234.3 364.6 223.2C364.6 209 349.2 200.7 334.4 192.7C331.5 191.2 328.7 189.6 326 188.1C317.3 183.1 308 171.4 306.9 153.9C306 139.3 307.8 104 310.3 78C297.9 73.2 283.6 71.6 270.6 71.2C268.6 75.3 266.7 79.7 265.1 84.3C264.4 86.3 245.5 135.4 238.7 146.5C244.2 107.5 256.2 72.8 262.2 56.9C258.7 57.4 254.8999999999999 57.6 250.5 57.6H133.5C129.0999999999999 57.6 125.2 57.3 121.8 56.9C127.8 72.8 139.9 107.5 145.3 146.5C138.5 135.3 119.6 86.2 118.9 84.3C117.3 79.7 115.4 75.3 113.4 71.2C100.4 71.6 86.2 73.2 73.7 78C76.2 104 77.9999999999999 139.2 77.1 153.9C76.2 171.3 66.8 183.1 58.1 188.1zM34.8 43.4C22.7 63.4 26.1 97.5 31.1 102.5C42 68.1 78.3 58.2 105.5 57.1C102.8 52.9 100.3 49.5 98.5 47.1L97.1 45.7C89.9 37.9 88.5 27.2 93 13.9C70.3 14.0000000000001 46.7 23.7 34.8 43.4zM80.5 -0.1C86.5 -1.2 92.7 -2 99.1 -2.5C102.6 -10.5 106.5 -18.4 111.4 -25.6C97 -19.7 87 -9.6 80.5 -0.1zM192 -50.2C131.4 -50.1 113.7 -4.4 107.1 14.5C103.4 25 103.7 32.7 108 37.6C110.9 40.9 117.5 44.8 132.6 44.8H251.4C266.5 44.8 273.2 40.9 276 37.6C280.2 32.8 280.5 25 276.9 14.5C270.3 -4.3 252.6 -50.1 192 -50.2zM272.6 -25.6C277.5 -18.4 281.4000000000001 -10.4999999999999 284.9000000000001 -2.4999999999999C291.3 -1.9999999999999 297.5000000000001 -1.1999999999999 303.5000000000001 -0.1C297.0000000000001 -9.6 287.0000000000001 -19.7 272.6000000000001 -25.6zM349.2000000000001 43.4C337.2000000000001 23.7 313.6 14.1 291.1 13.7C295.6 27.0000000000001 294.2000000000001 37.8000000000001 287 45.5000000000001C286.6 46.0000000000001 286.1 46.5000000000001 285.6 47.0000000000001C283.8 49.4 281.3 52.8000000000001 278.6 57.0000000000001C305.8 58.2000000000001 342.1 68.0000000000001 353 102.4C358 97.4 361.4 63.3 349.2 43.4z" />
    +    <glyph glyph-name="gulp"
    +      unicode="&#xF3AE;"
    +      horiz-adv-x="256" d=" M209.8 56.9L195.7 32.3L191.1 -47.9C191.1 -56.8 162.8 -64 128 -64S64.9 -56.8 64.9 -47.9L59.1 31.5L44.2 56.9C85.4 39.6 170.2000000000001 40.2 209.8000000000001 56.9zM13.8 310.2L27.4 184.7C33.3 204.7 48.2 231.7 67.4 239.9C73.7 242.6 80.1 242.6 86.1 239C91.3 236 95.7 229.7 96.2 227.2C97.4 220.7 94.2 218.1 91.7 218.1C88.7 218.1 86.4 222.7 84.9 225.4C80.8 232.7 74.6 233 68 228.2C61.1 223.2 55.1 214.8 50.9 207.5C45.8 198.7 41.5 189 38.9 179.3C37.4 173.7 36 164.7 38.3 159.4C39.3 157.2000000000001 40.8 155.8 43.2 155.8C48.2 155.8 55.5 162.4 59 165.9C63.5 170.4 69.3 177.4 71.5 181.9L76.7 197.4C79.3 204.2000000000001 86.6 203 86.6 197.4C86.6 187.2000000000001 82.9 183.8 76.6 162.7000000000001C70.8 143.2000000000001 69 136.9 69 136.9C68.3 134.1 65.6 129.4 62.7 129.4C61.5 129.4 60.6 129.8 60.1 130.6C59.1 132 59.2 135.9 59.3 136.9C59.5 140.1 65.6 159.1 66.6 162.1C64.6 159.9 62.5 157.7000000000001 60.2 155.5C54.8 150.4 46.1 143.7 38.7 143.7C35.3 143.7 33.1 144.6 31 146.1L38.6 66.5C40.6 61.5 77.8 49.4 126.8 49.4C175.9 49.4 213.1 61.6 215 66.5L225.9000000000001 161.1C220.2000000000001 155.9 213.6 149.5 206.3000000000001 146.3C200.9 144 188.9 142.5 188.9 152C188.9 157.2 198 166.8 203.3000000000001 173.5C204.7000000000001 175.2 208 179.4 208 181.6C208 184.5 202 183.8 196.3000000000001 179.1C193.1000000000001 176.4 190.1000000000001 172.8 187.6000000000001 169.4C183.3000000000001 163.4 181.0000000000001 158.2000000000001 179.1000000000001 153.9C172.9000000000001 139.7000000000001 175.0000000000001 145.3 170.0000000000001 131.9C165.0000000000001 118.6 165.8000000000001 120.1 164.8000000000001 117.9C163.9000000000001 116.0000000000001 162.6000000000001 114.4 160.8000000000001 113.4C158.9000000000001 112.4 156.3000000000001 112.5000000000001 154.7000000000001 113.7000000000001C153.8000000000001 114.3000000000001 153.4000000000001 115.6 153.4000000000001 117.4C153.4000000000001 118.3 153.5000000000001 119.2000000000001 153.7000000000001 120.1C155.2000000000001 126.2000000000001 161.5000000000001 138.2000000000001 168.7000000000001 154.4C170.3000000000001 158.1 169.7000000000001 157.0000000000001 169.5000000000001 156.7000000000001C163.3000000000001 150.7000000000001 158.6000000000001 147.8000000000001 155.1000000000001 146.2000000000001C149.3000000000001 143.6 142.1000000000001 143.6 140.6000000000001 150.3000000000001C140.5000000000001 150.7000000000001 140.5000000000001 151.1000000000001 140.4000000000001 151.5000000000001C128.6000000000001 142.3000000000001 116.1000000000001 139.8000000000001 120.4000000000001 159.6000000000001C115.8000000000001 151.4000000000001 107.8000000000001 144.7000000000001 98.0000000000001 144.7000000000001C93.9000000000001 144.7000000000001 90.9000000000001 146.1000000000001 89.4000000000001 149.8000000000001C87.1000000000001 155.3000000000001 90.7000000000001 164.7000000000001 94.0000000000001 173.6000000000001C95.7000000000001 178.1000000000001 98.0000000000001 183.5000000000001 101.1000000000001 189.8000000000001C102.7000000000001 193.2000000000001 105.3000000000001 195.2000000000001 108.7000000000001 194.3000000000001C109.3000000000001 194.1000000000001 109.8000000000001 193.9000000000001 110.3000000000001 193.6000000000001C112.9000000000001 191.8000000000001 111.9000000000001 189.1000000000001 110.6000000000001 186.4000000000002C106.8000000000001 178.9000000000002 103.5000000000001 173.4000000000002 101.3000000000001 165.6000000000001C100.4000000000001 162.3000000000001 99.3000000000001 156.6000000000001 102.8000000000001 156.6000000000001C105.2000000000001 156.6000000000001 107.5000000000001 157.4000000000002 109.7000000000001 159.0000000000001C114.3000000000001 162.4000000000001 118.0000000000001 167.5000000000001 120.8000000000001 172.5000000000001C122.8000000000001 176.1000000000001 125.2000000000001 180.8000000000001 126.4000000000001 184.8000000000001C126.9000000000001 186.5000000000001 127.5000000000001 188.1000000000001 128.2000000000001 189.6000000000001C129.3000000000001 192.1000000000001 130.8000000000001 194.7000000000001 133.4000000000001 194.7000000000001C134.7000000000001 194.7000000000001 135.8000000000001 194.2000000000001 136.6000000000001 193.2000000000001C138.3000000000001 191.0000000000001 137.9000000000001 188.7000000000002 137.0000000000001 186.3000000000001C135.0000000000001 180.7000000000001 132.3000000000001 175.7000000000001 130.1000000000001 169.6000000000001C128.8000000000001 166.1000000000001 127.4000000000001 161.6000000000001 127.4000000000001 157.9000000000002C127.4000000000001 154.5000000000002 131.1000000000001 155.3000000000001 134.2000000000001 156.7000000000002C136.6000000000001 157.8000000000002 139.0000000000001 159.5000000000002 141.0000000000001 161.2000000000002C142.2000000000001 166.1000000000001 141.9000000000001 165.0000000000002 167.4000000000001 229.4000000000002C168.7000000000001 232.7000000000002 171.1000000000001 234.1000000000002 173.5000000000001 234.1000000000002C174.7000000000001 234.1000000000002 175.7000000000001 233.7000000000002 176.7000000000001 233.0000000000002C178.4 231.7000000000002 178.4 228.9000000000002 177.7000000000001 226.8000000000002C177.0000000000001 224.9000000000002 177.1000000000001 225.5000000000002 173.2000000000001 216.3000000000002C168.0000000000001 204.2000000000002 164.6000000000001 195.5000000000002 160.0000000000001 184.4000000000002C158.1000000000001 179.8000000000001 152.3000000000001 165.5000000000002 151.3000000000001 162.1000000000001C150.7000000000001 159.9000000000002 150.0000000000001 156.3000000000001 152.3000000000001 156.3000000000001C157.7000000000001 156.3000000000001 171.6000000000001 169.4000000000002 175.4000000000001 173.3000000000001C175.6000000000001 173.6000000000001 175.9000000000001 173.7000000000001 176.3000000000001 173.9000000000002C176.9000000000001 175.8000000000001 177.5000000000001 177.6000000000001 178.0000000000001 179.4000000000002C179.4000000000001 183.2000000000002 180.7000000000001 187.6000000000001 183.3000000000001 190.7000000000002C184.1000000000001 191.7000000000002 185.0000000000001 192.3000000000002 186.0000000000001 192.3000000000002C188.8000000000001 192.3000000000002 190.2000000000001 191.1000000000001 190.2000000000001 188.3000000000002C190.2000000000001 187.2000000000002 189.5000000000001 183.2000000000002 189.1000000000001 182.1000000000002C190.5000000000001 183.6000000000002 192.0000000000001 185.1000000000002 193.6000000000001 186.6000000000002C208.6000000000001 200.5000000000002 219.3000000000001 193.4000000000002 219.3000000000001 186.4000000000002C219.3000000000001 179.0000000000002 210.4 168.7000000000002 205.5 163.0000000000002C203.9 161.1000000000003 200.6 157.6000000000003 200.5 156.6000000000003C200.5 155.3000000000003 201.4 154.8000000000003 202.7 154.8000000000003C204.7 154.8000000000003 209.1 158.3000000000003 210.7 159.5000000000002C215.7 163.4000000000002 222.5 169.4000000000002 227.3 173.6000000000003L242.1 310.4000000000003C211.6 293.3000000000003 44.5 293.2000000000003 13.8 310.2000000000003zM243.5 318.7C243.5 297.7 12.3 297.7 12.3 318.7C12.3 327.5 64.1 334.6 127.9 334.6C136.9 334.6 145.7 334.5 154.2 334.2L166.8 382.9L228.1 447.4C229.5 448.8 233.9 447.6 238 443.9S244.6 436 243.3 434.6L243.2 434.5L185.9 374L175.9 333.3C215.8 330.7 243.5 325.2 243.5 318.7zM174.1 314.1C174.1 314.9 173.2 315.6 171.6 316.2L171.4 315.4C171.4 314.1 166.4 313 160.3 313S149.2 314.1 149.2 315.4C149.2 315.5 149.2 315.6 149.3 315.7L149.5 316.4C147.7 315.8 146.5 315 146.5 314.1C146.5 312 152.7 310.4 160.2 310.4C167.9 310.3 174.1 312 174.1 314.1z" />
    +    <glyph glyph-name="hacker-news-square"
    +      unicode="&#xF3AF;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM21.2 218.8H21C21.1 218.9 21.2 219.1 21.3 219.2C21.3 219.1 21.3 218.9 21.2 218.8zM239.2 164.9V64H207.8V166.7L128 320H165.3C217.8 221.7 214.5 218.8 224.6 194.4C236.9000000000001 221.4 230.4000000000001 218.8 285.2000000000001 320H320L239.2 164.9z" />
    +    <glyph glyph-name="hacker-news"
    +      unicode="&#xF1D4;"
    +      horiz-adv-x="448" d=" M0 416V-32H448V416H0zM21.2 218.8H21C21.1 218.9 21.2 219.1 21.3 219.2C21.3 219.1 21.3 218.9 21.2 218.8zM239.2 164.9V64H207.8V166.7L128 320H165.3C217.8 221.7 214.5 218.8 224.6 194.4C236.9000000000001 221.4 230.4000000000001 218.8 285.2000000000001 320H320L239.2 164.9z" />
    +    <glyph glyph-name="hackerrank"
    +      unicode="&#xF5F7;"
    +      horiz-adv-x="464.36" d=" M453.5 320C439.01 344.95 261.13 448 232.16 448C203.2 448 25.25 345.21 10.84 320C-3.57 294.79 -3.65 89.2 10.84 63.99C25.33 38.79 203.22 -64 232.16 -64S439.01 38.92 453.49 64C467.97 89.08 467.98 295.05 453.5 320zM292.13 33.78C288.17 33.78 251.22 69.55 254.13 72.47C255 73.34 260.39 73.95 271.68 74.3C271.68 100.53 272.27 142.89 272.62 160.62C272.6600000000001 162.6399999999999 272.18 164.05 272.18 166.47H192.25C192.25 159.37 191.79 130.27 193.62 93.59C193.85 89.05 192.04 87.63 187.88 87.65C177.75 87.68 167.61 87.76 157.47 87.73C153.37 87.72 151.6 89.2599999999999 151.73 93.84C152.65 127.28 154.69 177.86 151.58 306.51V309.68C141.91 310.03 135.2 310.64 134.32 311.52C131.4 314.44 168.86 350.2099999999999 172.81 350.2099999999999C176.77 350.2099999999999 213.98 314.43 211.08 311.52C210.21 310.65 203.18 310.03 194.31 309.68V306.52C191.89 280.77 192.28 226.93 191.68 201.13H271.94C271.94 205.68 272.33 235.87 270.74 284.7699999999999C270.64 288.1599999999999 271.69 289.94 274.95 289.9699999999999C286.02 290.05 297.1 290.0999999999999 308.18 290.0299999999999C311.64 290.0099999999999 312.75 288.31 312.68 284.6499999999999C309.0300000000001 93.3599999999999 312.02 106.7099999999999 312.02 74.31C320.89 73.9599999999999 328.84 73.35 329.71 72.47C332.59 69.56 296.09 33.78 292.13 33.78z" />
    +    <glyph glyph-name="hips"
    +      unicode="&#xF452;"
    +      horiz-adv-x="640" d=" M0 367.8C0 369.6 0.9 370.5 2.7 370.5H43.6C45.5 370.5 46.4 369.6 46.4 367.8V286.6C61.6 294.3 78.1 298.1 96.2 298C120.2 297.9 140.4 291.8 156.5 280C175.2 266.5 184.5 248.1 184.5 224.7V88.6C184.5 86.7000000000001 183.6 85.8 181.8 85.8H154.5C145.4 85.8 138.1 93.1 138.1 102.1V224.7C138.1 225.6 140.8 251.7 92.3 251.7C43.7 251.7 46.5 225.5 46.5 224.7V88.6C46.5 86.7000000000001 45.6 85.8 43.7 85.8H2.7C0.9 85.8 0 86.7 0 88.6V367.8zM497.7 146.3C511.4 136.1 531.8 127.2 556.1 127.2C579.4 127.2 588.9 131.7 592.6 140.8C595.6 148.7 592 156.9 580.4 162L526.8 185.5C505.4 194.9 492.9999999999999 209.5 489.6 229.1C483.9 262.8 511.8 282.4 512.3 282.8C525.5 292.4 544.3 298.2000000000001 570.8 298.2000000000001C589.8 298.2000000000001 608.1999999999999 294.9 625.9 288.3C627.1999999999999 287.8 627.8 287 627.8 285.7000000000001V241C627.8 238.9 625.5 237.6 623.8 238.6C584.0999999999999 259.3 547.1999999999999 250.9 539.8 245.4C533.1999999999999 240.5 533.8 232.9 542.4 229.3L600 204C616.5 196.9 628.1 185.6 634.9 169.9C640.4 157.3 641.5 144.3 638 130.8C628.4 93.9 593.1 85.3 592.4 84.9999999999999C581.9 81.8999999999999 568.8 80.6999999999999 556.1 80.6999999999999C539.5 80.6999999999999 523.5 83.3999999999999 507.9 88.8999999999999C498.2 92.2999999999999 493.3 99.1999999999999 493.3 109.5999999999999V144C493.3 146.1 495.6 147.7 497.7 146.3zM376.2 298.2C344.5 298.2 272 278.1 272 194.7V11.2C272 10.4 272.6 8.5 274.7 8.5H315.6C317.5 8.5 318.4 9.4 318.4 11.2V100C334.9 87.3 354.2 80.9 376.1 80.9C436.6 80.9 484.8 129.4 484.8 189.6C484.9 249.9 436.6 298.2 376.2 298.2zM376.2 127.3C359 127.3 344.3 133.4 332.2 145.5C320 157.6999999999999 314 172.3 314 189.5C314 224 341.6 251.7 376.2 251.7C410.7 251.7 438.4 224.0999999999999 438.4 189.5C438.5 155.1999999999999 411.1 127.3 376.2 127.3zM251.6 88.6C251.6 86.7 250.7 85.8 248.8 85.8H207.9C206.3 85.8 205.2 87.1999999999999 205.2 88.6V290.4C205.2 291.8 206.3 293.2000000000001 207.9 293.2000000000001H248.8C250.7 293.2000000000001 251.6 292.3 251.6 290.4V88.6M228.3 375.5C244.2 375.5 257.2 362.8 257.2 346.6C257.2 330.8 244.5 317.7 228.3 317.7S199.4 331 199.4 346.6C199.5 362.6 212.4 375.5 228.3 375.5" />
    +    <glyph glyph-name="hire-a-helper"
    +      unicode="&#xF3B0;"
    +      horiz-adv-x="512" d=" M443.1 448H71.9C67.9 410.7 37.4 380.2 0 376.3V4.8C37.4 -0.1 66 -27.6 71.9 -64H444.1C447.1 -27.6 476.6 1.8 512 5.8V376.3C475.6 382.2 447 411.6 443.1 448zM406.1 43.1C369.8 43.1 387.3 45.1 351 45.1C315.2 45.1 330 43.1 294.9 43.1C289 43.1 290 51.3 294.9 52.9C317.7 60.5000000000001 317.8 63.1 319.5 65.7000000000001C329.9 81.3000000000001 325.4 148.7000000000001 325.4 178.7000000000001C325.4 184.0000000000001 319 191.5000000000001 311.6 191.5000000000001H200.4C193 191.5000000000001 186.6 184.0000000000001 186.6 178.7000000000001C186.6 148.7000000000001 182.1 81.3000000000001 192.5 65.7000000000001C194.2 63.2000000000001 194.3 60.5000000000001 217.1 52.9C222 51.3 223.1 43.1 217.1 43.1C182 43.1 196.8 45.1 161 45.1C124.7 45.1 142.2 43.1 105.9 43.1C98 43.1 100.1 53.9 105.9 53.9C116.1 57.3 119.4 57.4 127.6 67.7000000000001C135.3 80.6 135.5 112.1 135.5 195.5000000000001V296.7C135.5 318.9 123.3 325 106.9 329.1C98.1 331.3 102.9 340.9 107.9 340.9C144.4 340.9 128.5 338.9 165 338.9C197.7 338.9 181.5 340.9 214.2 340.9C217.5 340.9 222.7 332.6 215.2 330.1C210.3 328.5 187.6 326.4 187.6 290.8C187.6 245.2 187.4 235 188.6 222C188.6 220.7 190.9 209.2 201.4 209.2H310.6C321.1 209.2 323.4000000000001 220.7 323.4000000000001 222C324.6 235 324.4000000000001 245.2 324.4000000000001 290.8C324.4000000000001 326.4 301.7000000000001 328.5 296.8 330.1C289.3 332.6 294.5 340.9 297.8 340.9C330.5 340.9 314.3 338.9 347 338.9C383.5 338.9 367.6 340.9 404.1 340.9C409 340.9 414 331.3 405.1 329.1C388.7000000000001 325 376.5 318.8 376.5 296.7000000000001V195.5C376.5 112.1 376.6 80.6 384.4 67.7C392.6 57.5 395.8 57.3 406.1 53.9C411.9 53.9 413.9 43.1 406.1 43.1z" />
    +    <glyph glyph-name="hooli"
    +      unicode="&#xF427;"
    +      horiz-adv-x="640" d=" M508.4 96H566.3V291.3L508.4 264V96zM582.1 206.5V96H640V206.5H582.1zM331.4000000000001 215.4C313.2000000000001 233.6 281.0000000000001 232.5 281.0000000000001 232.5S248.8000000000001 233.6 230.6000000000001 215.4C228.7000000000001 213.5 226.9000000000001 211.5 225.3000000000001 209.4C187.1 239 152.8000000000001 255.9 123.2000000000001 270.5V291.2L100.7000000000001 280.6C46.3000000000001 302.7 11.7 298.8 3.4 280.5C3.4 280.5 -21.4999999999999 247.7 65.3 169.6V200.6C16.5 255.2 26.3 276.7000000000001 30 279.8C43.5 291.2000000000001 67.5 287.8 94.4000000000001 277.7000000000001L65.2 264V200.7C78.3 186 95.7 169.2 118.7 150.3L123.2 146.7V176.5C123.2 183.4 124.9 194.7 134 194.7S144.6 187.8 144.6 179.7V131C162.6 118.8 181.9 108.9 202.3 101.4V195.3C202.3 214 188.9 232.7 161.7 232.7C145.9 232.8 131.2 224.5 123.2 210.8V265.1C165.1 244.2 207.1 218.6 223.1 206.8C212.9 192.2 213.8 178.6999999999999 213.8 163.1C213.8 144.4 212.4 128.8 230.6 110.6C248.8 92.4 281 93.4999999999999 281 93.4999999999999S313.3 92.3999999999999 331.4 110.6C349.6 128.8 348.1 144.4 348.1 163.1C348.1 181.6 349.6 197.3 331.4 215.4zM291.7000000000001 143.5C291.7000000000001 139.9 289.9000000000001 131 281.0000000000001 131C272.1000000000001 131 270.3000000000001 139.9 270.3000000000001 143.5V183.9C270.3000000000001 192.6 277.6000000000001 194.8 281.0000000000001 194.8C284.4000000000001 194.8 291.7000000000001 192.7 291.7000000000001 183.9V143.5zM477.4 215.4C459.2 233.6 427.0000000000001 232.5 427.0000000000001 232.5S394.7000000000001 233.6 376.6000000000001 215.4C358.4000000000001 197.2 359.8000000000001 181.5 359.8000000000001 162.8C359.8000000000001 144.1 358.4000000000001 128.5 376.6000000000001 110.3C394.8000000000001 92.1 427.0000000000001 93.2 427.0000000000001 93.2S459.3000000000001 92.1 477.4 110.3C495.6 128.5 494.2 144.1 494.2 162.8C494.1 181.6 495.5000000000001 197.3 477.4 215.4zM437.6 143.5C437.6 139.9 435.8 131 426.9000000000001 131C418.0000000000001 131 416.2000000000001 139.9 416.2000000000001 143.5V183.9C416.2000000000001 192.6 423.5000000000001 194.8 426.9000000000001 194.8C430.3 194.8 437.6 192.7 437.6 183.9V143.5zM611.1 216.5C627 216.5 640 229.4 640 245.4S627.1 269.9 611.1 269.9C595.2 269.9 582.2 261.3 582.2 245.4S595.1 216.5 611.1 216.5zM144.5 96L182.8 95.2C169.6 99.8 156.8 105.4 144.5 112V96zM123.1 96V124.6C116.6 128.8 110.1 133.3 103.7 138.2000000000001C88.9 149.4 76.2 159.9 65.2 169.7000000000001V96H123.1zM182.8 95.2C219.3 82.7 252.7 81 277.5 88C257.6 87.8 231.7 90.6 202.2 101.3V96L182.8 95.2z" />
    +    <glyph glyph-name="hornbill"
    +      unicode="&#xF592;"
    +      horiz-adv-x="509.02" d=" M75.37 77.7C77.51 61.87 69.6 45.72 54.43 38.41C35.58 29.3099999999999 12.88 37.24 3.75 56.09C-5.33 74.92 2.62 97.67 21.45 106.74C28.5 110.1399999999999 36.08 111.16 43.3 110.12C-34.98 221.47 95.3 300.65 95.3 300.65C89.44 257.61 87.06 209.49 87.06 209.49C19.75 168.04 87.98 145.43 126.87 136.62C146.64 82.9999999999999 198.05 44.68 258.5300000000001 44.68C260.4500000000001 44.68 262.3 44.8899999999999 264.2000000000001 44.9599999999999L264.3100000000001 26.0999999999999C165.0900000000001 24.7099999999999 105.6100000000001 55.2399999999999 75.3700000000001 77.6999999999999zM183.38 405.4C184.27 412.4 183.28 419.73 179.99 426.55C170.89 445.39 148.17 453.33 129.33 444.24C110.47 435.14 102.53 412.41 111.64 393.56C118.62 379.0900000000001 133.66 371.14 148.82 372.33C126.27 342.42 94.99 282.76 96.4 182.3L118.24 182.45C118.22 183.35 118.1 184.22 118.1 185.13C118.1 244.08 154.47 294.46 205.95 315.29C213.96 353.04 236.6900000000001 429.59 279.79 359.58C279.79 359.58 327.93 357.2 370.9700000000001 351.34C370.9700000000001 351.35 293.13 479.37 183.38 405.4zM487.56 271.23C506.4 280.3200000000001 514.37 303.04 505.26 321.88C496.16 340.73 473.43 348.6500000000001 454.59 339.5700000000001C439.32 332.2000000000001 431.4 315.88 433.72 299.93C402.01 321.87 343.88 348.98 250.27 347.67L250.41 325.17C253.11 325.3200000000001 255.8 325.5800000000001 258.55 325.5800000000001C317.85 325.5800000000001 368.45 288.7800000000001 389.04 236.82C428.14 227.8 494.1 205.24 427.5 164.28C427.5 164.28 425.16 116.15 419.29 73.12C419.29 73.12 552.74 154.28 468.2499999999999 267.73C474.6799999999999 267.23 481.3199999999999 268.2200000000001 487.5599999999999 271.23zM373.05 11.76C394.48 44.22 419.4700000000001 101.45 418.19 191.42L398.67 191.28C398.75 189.22 398.9700000000001 187.21 398.9700000000001 185.13C398.9700000000001 124.86 360.92 73.58 307.5800000000001 53.68C298.73 14.73 276.1400000000001 -52.98 234.8100000000001 14.19C234.8100000000001 14.19 186.6900000000001 16.53 143.6200000000001 22.41C143.6200000000001 22.41 223.5400000000001 -108.9299999999999 335.5200000000001 -28.5599999999999C335.8300000000001 -33.28 336.9700000000001 -38.0099999999999 339.1600000000001 -42.53C348.2200000000001 -61.42 370.9600000000001 -69.3099999999999 389.8000000000001 -60.2399999999999C408.6600000000001 -51.1399999999999 416.5900000000001 -28.41 407.5000000000001 -9.59C400.9400000000001 4.03 387.2400000000001 11.84 373.0500000000001 11.76z" />
    +    <glyph glyph-name="hotjar"
    +      unicode="&#xF3B1;"
    +      horiz-adv-x="448" d=" M414.9 286.5C340.2 419 121.1 448 121.1 448S222.2 337.6 93 250.3C11.3 195.2 -21 123.6 14 45.4C40.8 -14.5 97.5 -38.9 158.6 -48C129.4 7.1 152 74.4 154.5 81.6C211.6 -4.8 319.5 81.6 265.3 175.5C336.3 160.1 346.9 36.9 292.4000000000001 -40C372.9000000000001 -14.7 426.5 48.9 441.2000000000001 105.6C456.7 164.9 444.9000000000001 233.5000000000001 414.9000000000001 286.5z" />
    +    <glyph glyph-name="houzz"
    +      unicode="&#xF27C;"
    +      horiz-adv-x="414.6" d=" M258.9 117.3H154.3V-32H0V416H109.5V311.5L414.6 225.9V-32H258.9V117.3z" />
    +    <glyph glyph-name="html5"
    +      unicode="&#xF13B;"
    +      horiz-adv-x="384" d=" M0 416L34.9 20.2L191.5 -32L349.1 20.2L384 416H0zM308.2 288.1H124.4L128.5 238.7H304.1L290.5 90.3L192.6 63.3V62.9999999999999H191.5L92.8 90.3L86.8 166.1H134.5L138 128L191.5 113.5L245.2 128L251.2 190.2H84.3L71.5 335.8H312.6L308.2000000000001 288.1z" />
    +    <glyph glyph-name="hubspot"
    +      unicode="&#xF3B2;"
    +      horiz-adv-x="512" d=" M267.4 236.4C242.3 212.7 226.6 179.1 226.6 141.8C226.6 112.5 236.3 85.5 252.6 63.8L203.1 14C198.7 15.6 194 16.5 189.1 16.5C178.3 16.5 168.2 12.3 160.6 4.7C153 -2.9 148.8 -13.1 148.8 -23.9S153 -44.8 160.6 -52.4C168.2 -60.0000000000001 178.4 -64 189.1 -64C199.9 -64 210 -60.1 217.7 -52.4C225.3 -44.8 229.5 -34.6 229.5 -23.9C229.5 -19.7 228.9 -15.7 227.6 -11.8L277.6 38.4C299.6 21.5000000000001 327 11.5000000000001 356.9000000000001 11.5000000000001C428.8000000000001 11.5000000000001 486.9 69.8000000000001 486.9 141.7000000000001C486.9 206.9 439.2000000000001 260.9000000000001 376.7000000000001 270.4000000000001V332C394.2000000000001 339.4 404.9000000000001 355.8 404.9000000000001 374.9C404.9000000000001 401 384.0000000000001 422.8 357.9000000000001 422.8S311.2 401 311.2 374.9C311.2 355.8 321.9 339.4 339.4 332V270.8C324.2 268.7000000000001 309.8 264.1 296.7 257.2000000000001C269.1 278.1 179.2 342.9000000000001 127.8 382C129 386.4000000000001 129.8 391 129.8 395.8C129.8 424.6 106.3 448 77.4 448C48.6 448 25.2 424.6 25.2 395.8C25.2 366.9 48.6 343.5 77.4 343.5C87.2 343.5 96.3 346.4 104.2 351.1L267.4 236.4zM356.9 72.8C318.8 72.8 287.9 103.7 287.9 141.8S318.8 210.8 356.9 210.8S425.9 179.9 425.9 141.8S395 72.8 356.9 72.8z" />
    +    <glyph glyph-name="imdb"
    +      unicode="&#xF2D8;"
    +      horiz-adv-x="448" d=" M350.5 159.3C350.5 153.9 352.1 144.9 344.3 144.9C342.7 144.9 341.3 145.7000000000001 340.5 147.3C338.3 152.4 339.4 191.4 339.4 192C339.4 195.8 338.3 204.7 344.3 204.7C351.6 204.7 350.5 197.4 350.5 192V159.3zM265 218.1C265 227.8 266.6 234.1 254.7 234.1V150.4C266.9 150.1 265 159.1 265 168.8V218.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM21.3 219.2C21.2 219.1 21.1 218.9 21 218.8H21.3V219.2zM97 256H64V128.2H97V256zM210.3 256H167.2L159.6 196.1C156.9 216.1 154.2 236.2 150.9 256H108.1V128.2H137.1V212.7L149.3 128.2H169.9L181.5 214.6V128.2H210.2V256zM296.6 210.7C296.6 218.8 296.9000000000001 227.5 295.2000000000001 235.1C290.9000000000001 257.6 263.8000000000001 256 246.2000000000001 256H221.6000000000001V128.2C307.7000000000001 128.1 296.6 122.2 296.6 210.7zM382.5 193.4C382.5 210.7 381.7 223.5 360.3 223.5C351.4000000000001 223.5 345.4000000000001 220.8 339.4000000000001 214.3V256H307.7000000000001V128.2H337.5000000000001L339.4000000000001 136.3C345.1 129.5 351.3 126.5 360.3 126.5C380.1 126.5 382.5 141.7 382.5 157.4V193.4z" />
    +    <glyph glyph-name="instagram"
    +      unicode="&#xF16D;"
    +      horiz-adv-x="448" d=" M224.1 307C160.5 307 109.2 255.7 109.2 192.1S160.5 77.2 224.1 77.2S339 128.5 339 192.1S287.7 307 224.1 307zM224.1 117.4C183 117.4 149.4 150.9 149.4 192.1S182.9 266.8 224.1 266.8S298.8 233.3 298.8 192.1S265.2 117.4 224.1 117.4zM370.5 311.7C370.5 296.8 358.5 284.9 343.7 284.9C328.8 284.9 316.9 296.9 316.9 311.7S328.9 338.5 343.7 338.5S370.5 326.5 370.5 311.7zM446.6 284.5C444.9000000000001 320.4 436.7000000000001 352.2 410.4000000000001 378.4C384.2000000000001 404.6 352.4000000000001 412.8 316.5 414.6C279.5 416.7 168.6 416.7 131.6 414.6C95.8 412.9 64 404.7 37.7 378.5S3.3 320.5 1.5 284.6C-0.6 247.6 -0.6 136.7 1.5 99.7C3.2 63.8 11.4 32 37.7 5.8S95.7 -28.6 131.6 -30.4C168.6 -32.5000000000001 279.5 -32.5000000000001 316.5 -30.4C352.4 -28.7 384.2 -20.5000000000001 410.4 5.8C436.6 31.9999999999999 444.8 63.8 446.6 99.6999999999999C448.7 136.6999999999999 448.7 247.5 446.6 284.5zM398.8 60C391 40.4 375.9000000000001 25.3 356.2 17.4C326.7 5.7 256.7 8.4 224.1 8.4S121.4 5.8 92 17.4C72.4 25.2 57.3 40.3 49.4 60C37.7 89.5 40.4 159.5 40.4 192.1S37.8 294.8 49.4 324.2C57.2 343.8 72.3 358.9 92 366.8C121.5 378.5 191.5 375.8 224.1 375.8S326.8 378.4 356.2 366.8C375.8 359 390.9 343.9 398.8 324.2C410.5 294.7 407.8 224.7 407.8 192.1S410.5 89.4 398.8 60z" />
    +    <glyph glyph-name="internet-explorer"
    +      unicode="&#xF26B;"
    +      horiz-adv-x="512" d=" M483.049 288.294C493.904 312.8690000000001 504.473 348.7320000000001 504.473 376.165C504.473 448.887 424.832 474.536 294.8 414.742C187.168 421.923 83.579 341.072 57.7019999999999 228.2850000000001C88.554 263.1470000000001 135.973 310.5830000000001 179.679 329.4430000000001C125.404 281.15 79.128 219.998 43.992 156.275C23.246 118.349 0 57.06 0 11.253C0 -87.322 92.854 -75.2470000000001 180.251 -30.753C211.674 -46.183 246.81 -46.326 281.9460000000001 -46.326C379.0700000000001 -46.326 466.1950000000001 7.968 498.76 99.696H377.927C325.418 11.103 181.108 46.7 181.108 147.132H509.9C516.307 190.713 508.245 242.847 483.049 288.294zM64.559 101.123C82.27 49.973 118.262 5.252 164.825 -22.181C76.084 -71.1210000000001 -8.442 -51.277 64.559 101.1229999999999zM180.536 209.996C182.536 265.147 230.812 304.867 284.516 304.867C337.9340000000001 304.867 386.497 265.147 388.497 209.996H180.536zM365.072 397.596C386.497 407.883 413.635 419.599 437.63 419.599C469.052 419.599 491.904 397.882 491.904 365.877C491.904 345.874 484.477 316.87 477.335 298.01C451.0549999999999 340.302 411.349 379.594 365.072 397.596z" />
    +    <glyph glyph-name="ioxhost"
    +      unicode="&#xF208;"
    +      horiz-adv-x="640" d=" M616 288H548.7C511.2 377.3 422.9 440 320 440C183 440 72 329 72 192C72 175.6 73.6 159.5 76.7 144H24C10.7 144 0 133.2 0 120C0 106.7 10.7 96 24 96H91.3C128.8 6.7 217.1 -56 320 -56C457 -56 568 55 568 192C568 208.4 566.4 224.5 563.3 240H616C629.3 240 640 250.8 640 264C640 277.3 629.3 288 616 288zM520 192C520 81.5 430.5 -8 320 -8C244.3 -8 178.4 34 144.5 96H424C437.3 96 448 106.8 448 120C448 133.3 437.3 144 424 144H125.8C122 159.4 120 175.4 120 192C120 302.5 209.5 392 320 392C395.7 392 461.6 350 495.5 288H216C202.7 288 192 277.2 192 264C192 250.7 202.7 240 216 240H514.2C518 224.6 520 208.6 520 192zM216 216H424C437.3 216 448 205.3 448 192C448 178.8 437.3 168 424 168H216C202.7 168 192 178.7 192 192C192 205.2 202.7 216 216 216z" />
    +    <glyph glyph-name="itunes-note"
    +      unicode="&#xF3B5;"
    +      horiz-adv-x="384" d=" M381.9 59.8C375.5 32.4 354.7 17 326.8 11.8C302.3 7.3 281.9 6.2 262.3 22C238.4 42.1 238.1 75.4 259.6 96.4C276.6 112.6 300.5 115.9 336.4 122.2C342.4 123.3 347.6 124.7 352 129.6C358.4 136.8 356.4 133.7 356.4 292.8C356.4 304 350.9 307.1 339.4 305.1C331.2 303.7 153.7 270.5 153.7 270.5C143.5 268.3 140.3 265.3 140.3 253.8C140.3 19.1 141.4 29.9 137.8 14.3C133.6 -3.9 122.4 -17.6 107.6 -25.2C90.8 -34.5000000000001 60.4 -38.6 44.2 -35.6C1 -27.5 -14.2 22.4 15.1 51C32.1 67.2 56 70.5 91.9 76.8C97.9 77.9 103.1 79.3 107.5 84.2C117.6 95.7 109.3 340.8 112.7 354.4C113.5 359.6 115.7 364 119.8 367.3C124 370.8 131.6 372.8 133.2 372.8C337.2 411 362.1 415.9 365.6 415.9C377.1 416.7 383.7 409.9 383.7 398.3C383.9 53.8 384.8 72.3 381.9 59.8z" />
    +    <glyph glyph-name="itunes"
    +      unicode="&#xF3B4;"
    +      horiz-adv-x="448" d=" M223.6 367.7C129 367.7 52.5 291 52.5 196.5S129 25.2 223.6 25.2S394.8 101.9 394.8 196.4C394.8 291 318.1 367.7 223.6 367.7zM303 127.7C299.8 114.1 289.5 106.5 275.7 103.9C263.6 101.7 253.5 101.1 243.8 108.9C232 118.9 231.8 135.3 242.4 145.7C250.8 153.7 262.7 155.3 280.4 158.5C283.4 159 286 159.7 288.1 162.2C291.3 165.8 290.3 164.2 290.3 243C290.3 248.6 287.6 250.1 281.9 249.1C277.9 248.4 190 232 190 232C185 230.9 183.3 229.4 183.3 223.7C183.3 107.6 183.8 112.9 182.1 105.2C180 96.2 174.5 89.4 167.2 85.6C158.9 80.9999999999999 143.8 78.9999999999999 135.8 80.4C114.4 84.4 106.9 109.1 121.4 123.3C129.8 131.3 141.7 132.9 159.4 136.1C162.4 136.6 165 137.3 167.1 139.8C172.1 145.5 168 266.8 169.7 273.5C170.1 276.0999999999999 171.2 278.3 173.2 279.9C175.3 281.5999999999999 179 282.5999999999999 179.9 282.5999999999999C280.9 301.5999999999999 293.2 304 295 304C300.7 304.4 304 301 304 295.3C303.8999999999999 124.6999999999999 304.3999999999999 133.9 303 127.6999999999999zM345.2 416H102.8C45.9 416 0 370.1 0 313.2V70.8C0 13.9 45.9 -32 102.8 -32H345.2C402.2 -32 448 13.9 448 70.8V313.2C448 370.1 402.1 416 345.2 416zM223.6 4C117.3 4 31.1 90.2 31.1 196.5S117.3 389 223.6 389S416.1 302.8 416.1 196.5S329.9 4 223.6 4z" />
    +    <glyph glyph-name="java"
    +      unicode="&#xF4E4;"
    +      horiz-adv-x="377.6" d=" M121.6 52S102 40.6 135.5 36.8C176.1 32.2 196.8 32.8 241.5 41.3C241.5 41.3 253.3 33.9 269.7 27.5C169.5 -15.4 42.9 30 121.6 52M109.4 108.1S87.5 91.9 121 88.4C164.3 83.9 198.6 83.6 257.8 95.0000000000001C257.8 95.0000000000001 266 86.7000000000001 278.9000000000001 82.2000000000001C157.6 46.7 22.6 79.3000000000001 109.4 108.1M212.6 203.2C237.3 174.8 206.1 149.2000000000001 206.1 149.2000000000001S268.8 181.6 240.0000000000001 222.1000000000001C213.1 259.9000000000001 192.5 278.7000000000001 304.1 343.4000000000001C304.2000000000001 343.4000000000001 128.9 299.6 212.6 203.2000000000001M345.2000000000001 10.6S359.7000000000001 -1.3 329.3000000000001 -10.6C271.4000000000001 -28.1 88.5000000000001 -33.4 37.7 -11.3C19.4 -3.4 53.7 7.7 64.5 10.0000000000001C75.7000000000001 12.4 82.2000000000001 12.0000000000001 82.2000000000001 12.0000000000001C61.9000000000001 26.3000000000001 -49.1 -16.1 25.8 -28.1999999999999C230.0000000000001 -61.3999999999999 398.2000000000001 -13.3 345.2000000000001 10.6000000000001M131 166.2S37.9 144.1 98 136.1C123.4 132.7 174 133.5 221.1 137.4C259.6 140.6 298.3 147.6 298.3 147.6S284.7 141.8 274.9000000000001 135.1C180.4 110.2 -2.1 121.8 50.4 147.2C94.9 168.6 131 166.2 131 166.2M298 72.9C394.1 122.8 349.6 170.8 318.6 164.3C311 162.6999999999999 307.6 161.3 307.6 161.3S310.4000000000001 165.6999999999999 315.8 167.6C377.1 189.2 424.3 103.9999999999999 296 70.3C296 70.4 297.5 71.6999999999999 298 72.9M240 448S293.2 394.8 189.5 313C106.4 247.4 170.5 209.9 189.5 167.2C141 211 105.4 249.5 129.3 285.4C164.4 337.9 261.5 363.5 240 448M140.5 -62.4C232.7 -68.2999999999999 374.3 -59.1 377.6 -15.5C377.6 -15.5 371.2000000000001 -32 301.4000000000001 -45.2C222.7000000000001 -60 125.6 -58.3 68.1 -48.8C68.1 -48.7 79.9 -58.5 140.5 -62.4" />
    +    <glyph glyph-name="jedi-order"
    +      unicode="&#xF50E;"
    +      horiz-adv-x="448" d=" M231.89 112.28L263.33 158.17L243.15 102.67L305.71 93.58L243.15 84.5L267.37 37.07S237.15 68.84 232.88 73.32C234.64 4.54 235.07 -12.38 235.07 -12.38S389.4700000000001 59.27 303.69 217.71C303.69 217.71 410.66 335.78 313.78 408.44C313.78 408.44 479.28 308.53 374.33 136.98C374.33 136.98 461.11 221.75 415.7 307.52C415.7 307.52 494.41 196.51 398.54 74.41C398.54 74.41 424.78 90.56 447.99 152.12C447.99 152.12 431.06 -31.14 226.03 -33.5400000000001V-33.5600000000001H221.9499999999999V-33.5400000000001C16.93 -31.14 0 152.12 0 152.12C23.21 90.56 49.44 74.41 49.44 74.41C-46.43 196.5200000000001 32.29 307.5200000000001 32.29 307.5200000000001C-13.12 221.7400000000001 73.67 136.98 73.67 136.98C-31.28 308.54 134.21 408.44 134.21 408.44C37.33 335.78 144.3 217.71 144.3 217.71C58.52 59.27 212.92 -12.38 212.92 -12.38S213.35 4.55 215.11 73.32L180.63 37.07L204.85 84.5L142.29 93.58L204.85 102.67L184.67 158.17L216.11 112.28C218.36 200.13 223.93 418.1 223.96 419.13L223.97 421.56L223.99 420.56L224.02 421.56L224.03 419.13C224.08 417.41 229.64 199.93 231.89 112.28z" />
    +    <glyph glyph-name="jenkins"
    +      unicode="&#xF3B6;"
    +      horiz-adv-x="512" d=" M487.1 23C485.7 34.2 468.1 46.1 458.9 54.9C453.8 59.9 429.9000000000001 78 428.5000000000001 84.8C427.1000000000001 91.4 438.2000000000001 106.3 441.8000000000001 113.6999999999999C446.9000000000001 124.3999999999999 450.6000000000001 137.3999999999999 453.1000000000001 146.3C471.9000000000001 212.4 473.8000000000001 303.2 446.9000000000001 357.5C436.7000000000001 378.0999999999999 408.3000000000001 406.5 390.5000000000001 420C348.5000000000001 451.6999999999999 270.9000000000001 455.3 220.4000000000001 436.6C206.3000000000001 431.3999999999999 192.6000000000001 426.8 180.3000000000001 419.5C147.2000000000001 400.1 112.0000000000001 387 102.2000000000001 347.9C78.0000000000001 337.1 70.7000000000001 306.1 71.9000000000001 270.1C72.1000000000001 263.1 76.0000000000001 254.3 74.6000000000001 247.7C73.9000000000001 244.4 69.4000000000001 240.1 68.5000000000001 237.9C56.9000000000001 210.2 66.2000000000002 173.9 79.6000000000001 154.1999999999999C87.7000000000001 142.3 101.1000000000001 131.8 118.8000000000002 129C119.5000000000002 118.3999999999999 122.1000000000001 109.3 127.0000000000002 98.6C130.1000000000001 91.8 141.7000000000001 79.6 137.4000000000002 70.9C135.2000000000002 66.5 116.4000000000002 57.1 110.1000000000002 53.3C89 40.8 73.7 33 54.2 19C41.6 10 21.9 8.8 25 -12.1C27.1 -26.2 35.1 -43.7 39.7 -57.9C40.4 -59.9 41.1 -62.0000000000001 41.8 -63.9H463.8C468.7 -48.6 473.5 -33.0000000000001 478.4 -16.7C481.8 -5.3000000000001 488.6 11.1 487.1 22.9999999999999zM205.9 414.3C207.7 414.8 209.3 413.6 210.8 411.9C210.6 406.7 205.4 406.8 201.9 405.1C196.5 398.4 188.5 395.3 181.9 387.9C175.1 380.4 167.5 360.2 158.5 357.9C154 356.8 148.8 358.7 144.9 358.4C134.5 357.7 127.2 352.4 116.6 350.9C130.2 380.8 172.7 404.9 205.9 414.3zM101.1 320.7C114.6 335.6 133.2 344.8 155.9 346.6C167.6 316.9 147.5 281.6 155 249C157.3 239.1 165.2 223.6 152.6 223.3C152.9 251.6 117.8 269.6 91.3 252.9C89.5 274.4 86.4 304.6 101.1 320.7zM137.8 120.5C136.8 124.6 135.1 133.4 135.5 135.6C137.1 144.3 152.6 148.1 146.5 160.3C135.2 160.4 132.7 150.1 122.4 149C95.7 146.4 76.8 184.4 78 207.4C79 226.9 95.6 245.6 118.1 243.2C134.1 241.4 139.5 224 142.6 208.5C151.8 208 165.1 208.9 169.5 216.1C168.9 233.6 160.7 247.7 161.3 263.8C162.3 294.1 178.8 321.4 166.1 351.2000000000001C179.7 382.1 219.6 406.5 249.2 421.2000000000001C285.8 439.5 344.1 424.9000000000001 378.5 405.4000000000001C398.2 394.3 412.9 372.7000000000001 426.8 354.7000000000001C407.3 360.5 390.7 350.5 393.7 334.4000000000001C410 349.3 437.9 334.6 446.2 318C454.1 302.2000000000001 454 278.7000000000001 455.2 255.2000000000001C458.1 198.2000000000001 444.8 139.3000000000001 416.1 98.1C408.4 87.1 402 75.1 391.2 67.5C365.2 49.3 325.8 32.8 292 44.1C247.3 59.1 227 88.9 202.5 122.9C203.2 104.2000000000001 216.3 88.8 229.3 74.5000000000001C240.6 62.0000000000001 254.3 47.9 269 42.1000000000001C256.7 45.0000000000001 237.9 45.9000000000001 232.8 34.9000000000001C204.2 36.8000000000001 177.7 39.7000000000001 164.1 59.1000000000001C153.5 74.5000000000001 142.7 100.5000000000001 137.8 120.5000000000001zM359.8 -3.6C363.9000000000001 -0.6 370.9000000000001 -0.7 377.2 0C371.8 2.7 364.2 3.7 357.9 2.2C357.8 6.4 355.9 9 354.7 12.4C365.3 16.2 390.2 40.9 404.3 32.7C411 28.8 413.8 6.5 414.4000000000001 -4.3C414.8 -13.3 413.6 -22.3 409.9000000000001 -27.1C391.1 -26.5 374.1 -24.3 359.2000000000001 -20.1C360.1 -14 358.2000000000001 -8 359.8000000000001 -3.6zM342.6 16.4C325.8 15.6 316.6 17.6 304.3 27.2C304.5 28 305.7 27.7 305.8 28.6C323.8 20.6 346.6 31.9 364.8 33.4999999999999C356.9000000000001 28.3999999999999 350.2 21.8999999999999 342.6 16.3999999999999zM330.5 -16.8C328.9 -7.4 327 -4.8 327.7 3.4C352.7 20 357.4 -25.2 330.5 -16.8zM226 9.4C214.4 10.1 177.9 23.4 187.5 33.1C196.9 26.6 215 28.2 228.8 25.8C229.6 21.4 226 15.6 226 9.4zM57.7 -49.1C53.4 -36.4 48.5 -24 42.9 -12.2C73.7 11.6 108.2 36.6999999999999 145.1 51.3C147.9 52.4 168.3 25.9 171.3 23.6999999999999C187.8 11.9999999999999 208.3 2.6999999999999 227.5 -6.5000000000001C228.7 -15.3000000000001 231.4 -26.7 236.2 -42.0000000000001C236.9 -44.3000000000001 237.6 -46.7 238.4 -49.2H57.7zM298.3 -54.8H297.5C297.8 -54.6 298 -54.4 298.3 -54.3V-54.8zM305.8 -49.1C307.9000000000001 -47.7 310.1 -46.3 312.2 -44.8C313.3 -46.2 314.4 -47.6 315.4 -49.1H305.8zM320.9000000000001 -24.4C310.1 -31.7 300.3 -42.7 287.6 -49.6C281.6 -52.9 260.6 -61.3 254.2 -59.8C250.6 -59 250.3 -54.5 248.8 -50.3C245.7 -41.3 238.7 -26.9 238 -13.3C237.2 3.9 235.5 32.7 254 29.1C268.9 26.2 286.3 19.4 297.9 12.9999999999999C305 9.1 309 4.3999999999999 319.8 3.4999999999999C319.7 2.1 319.7 0.6999999999999 319.6 -0.8000000000001C313.7 -4.7 304.3 -4.6000000000001 297.8 -7.9000000000001C307.3 -8.3000000000001 314.8 -10.6000000000001 321.3 -13.8000000000001C321.2 -17.2 321 -20.8000000000001 320.9 -24.4000000000001zM374.3 -49.1H360.3C360.2 -45.9 357.5 -43.3 354.2 -43.3S348.3 -45.9 348.1 -49.1H330.7C327.9 -44.7 325 -40.5 321.8 -36.6C323.9000000000001 -34.4 325.8 -31.9 327.8 -29.7C336.8 -33.4 342.6 -24.8000000000001 349.5 -25.5000000000001C357.4 -26.3000000000001 363.7 -37.2 374.9 -36.5000000000001L374.3 -49.1000000000001zM383 -49.1C383.2 -45.1 383.4 -41.3 383.6 -37.6C399.2000000000001 -30.3 412.6 -38.9 419.3 -49.1H383zM466.4 -12.1C464.1 -23.3 460.6 -36.1 456.5 -49.2C456.3 -49.1 456.1 -49.1 455.9 -49.1H428C428.6 -48 429.2 -46.9 429.9 -45.8C427.3 -39.7 420.9 -37.1 419 -30.3C431.1 -7.6 425.5 63.1 394.8 48.2C399.1 54.5 410.4000000000001 59.7 415.6 67.5C428.6 57.1 436.4000000000001 47.2 448.8 36.1C455.6 30.1 468.8 22.8 470.2 13C471 7.5 467.6 -5.9 466.4 -12.1zM222.2 317.5C227.6 332.4 249.4 352.2 267.2 349.5C274.9 348.3 285.2 341.3 279.4 331.8C249.2 338.8 234.2 319.2 225 298.7C216.9 300.7 220.1 311.8 222.2 317.5zM406.3 254.4C414.5 258 428.7 255.1 435.9 259.7000000000001C431.7 271.2000000000001 425.6 281.1 426.6 297.4000000000001C427.1 297.4000000000001 427.6 297.4000000000001 428 297.3000000000001C434.8 283.1 440.7 268.1 449.3999999999999 255.6C443.7 242.1 405.7999999999999 230.2 406.2999999999999 254.4000000000001zM426.7 297.4zM309.5 251.7C302.7 262.6 290.5 284.2 295 297C301.5 285.1 303.6 272.6 312.8 263.7C316.9 259.7 325 254.7 321 243.5C320.1 240.8 313.2 234.9 309.3 233.8C294.9 229.5 261.4 232.9 272.7 250.9C284.5999999999999 250.2 300.5999999999999 243.1 309.5 251.7zM336.8 181.7C340.6 175.1 338.2 163 348.9 161.1C369.1 157.7 392.5 173.4 407 178.9C416 194.1 406.2 199.6 398.1 209.4C381.5 229.4 359.3 254.2 360.1 284.1C366.8 289 367.4000000000001 276.7 368.3 274.4C377 254.1 398.7 228.2 414.6 210.9C418.5 206.6 424.9000000000001 202.5 425.6 199.7C427.7000000000001 191.5 420.2000000000001 181.7 421.1 176.2C399.4000000000001 162.3 375.3 147.1 339.7000000000001 150.6C332.3000000000001 157.3 329.4000000000001 172 336.8000000000001 181.7zM135.5 190.9C128.6999999999999 194.8 127.0999999999999 211.9 119.0999999999999 212.3C107.6999999999999 213 109.7999999999999 190.1 109.7999999999999 176.8C101.9999999999999 183.9 100.5999999999999 205.9 106.2999999999999 217.1C99.7 220.3 96.7999999999999 213.5 93.2 211.2C97.9 245.3 143 227 135.5 190.9zM435.1 162.1C425 142.9 410.7 121.7 381.1 121.1C380.5 127.3 380 136.7 381.1 140.5C403.8 142.6999999999999 417.7 154.1999999999999 435.1 162.1zM293.2 149.7C312.0999999999999 139.8 346.8 138.7 372.5 139.5C373.8999999999999 133.9 373.8 126.9 373.8999999999999 120.1C340.8999999999999 118.3 301.8999999999999 126.5 293.2 149.7000000000001zM385.3999999999999 103C383.7 98.7 380.0999999999999 93.7 375.5999999999999 91.9C363.4999999999999 87 329.9999999999999 83.2 313.2 92.2C302.5 97.9 295.7 110.7 289.8 118.2C287 121.8 272.9 131.1 289.6 131.1C302.7 98.4 347.6 102.1 385.4 102.9999999999999z" />
    +    <glyph glyph-name="joget"
    +      unicode="&#xF3B7;"
    +      horiz-adv-x="496" d=" M227.5 -20.7C218.5 -7.1 207.6 12.6 203.8 21.7C198.1 35.4 176.6 67.3 235 88.8C286.7 107.9 411.7 105.3 443.8 106.4C439.8 97.4 435.2 88.5 429.9000000000001 79.8C389.5000000000001 14.3 319.5 -21.7 247.9000000000001 -21.7C241.1 -21.7 234.3000000000001 -21.3000000000001 227.5000000000001 -20.7M66.1 304.1C128 404.6 259.6 435.8 360.1 373.9C434.9000000000001 327.8 471.3 243 459.4 161.2000000000001C434.5000000000001 161.7000000000001 280.1 164.8000000000001 229.1 166.1C173.6 167.5 147.4 186.9 170.6 214.3C193.8 241.7 221.7 255 239.5000000000001 265.5C257.4000000000001 276 266.8 299.2 215.9 295.2C87.3 286.5 48.6 195.9 37.6 155C28.8 204.7 37.5 257.7 66.1 304.1M36.9 322.1C-35 205.5 1.3 52.8 117.9 -19.1C234.5 -91 387.2 -54.7 459.1 61.8C531 178.4 494.7 331.2 378.1 403C337.6 428.1 292.6 440 248.2 440C165 440 83.8 398.1 36.9 322.1M281.3 211.7C249.8 191.2 216 180.4 216 180.4L385.5 182L432 205.4S435.6 214.9 412.9 220.9C390.2 226.9 355.9 209.6 326.2 193.7C296.5 177.9 295.1 185.5 295.1 185.5S335.3 213.6 345.8 220C356.3 226.4 377.7 234 359.2 244.6C356 246.4 352.5 247.3 348.8 247.3C331 247.3 307.3 228.6 281.3 211.7" />
    +    <glyph glyph-name="joomla"
    +      unicode="&#xF1AA;"
    +      horiz-adv-x="448" d=" M0.6 355.9C0.6 389.2 27.4 416 60.4 416C90.4 416 114.9 394.1 119.6 365.8C152.2 373.4 186.7 365.2 216.1 335.8L171.8 291.5C151.3 312 129.2 307.8 116.4 295C102.1 280.7 102.1 257.1 116.4 242.8L215.9 143.3L171.9 99C84.2 186.2 122.2 148.7 72.1 198.7C45.3 225.2 37.1 263.5 47.3 297.6C20.4 303.4 0.6 327.3 0.6 355.9zM130.1 239.5L174.4 195.2C184.4 205.2 264.1 284.9 274.1 295C288.4 309.3 311.7 309.3 326 295C338.8 282.2 343 260 322.5 239.6L366.5 195.3C397.7 226.5 405 262.9 395.3999999999999 296.5C424.5999999999999 300.6 447.2999999999999 325.7 447.2999999999999 356C447.2999999999999 389.2 420.4999999999999 416.1 387.4999999999999 416.1C357.1999999999999 416.1 332.0999999999999 393.6 327.9999999999999 364.5C294.1999999999999 374.4 256.2999999999999 366 229.6999999999999 339.4C211.3999999999999 320.3 158.5999999999999 267.9 130.0999999999999 239.5zM396.4 87.3C404.6 120 395.5 155.8 370.1 181.2000000000001C358.3 193.4 375.1 176.5000000000001 270.6 280.9000000000001L226.3 236.6L326 136.9C340.3 122.6 340.3 99.3 326 85.0000000000001C313.2 72.2000000000001 291 68.0000000000001 270.6 88.5000000000001L226.6 44.2C254.2 14.0000000000001 294.6 5.4 329.3 16.2C334.8 -11.1999999999999 359 -31.9 388.2 -31.9C421.2 -31.9 448 -5.1 448 28.2C448 58.4 425.5 83.2000000000001 396.3999999999999 87.3000000000001zM312.1 140.4L268.1 184.7000000000001C181.1 98.3000000000001 217.7 134.3000000000001 168.4 84.9C154.1 70.6 130.8 70.6 116.5 84.9C103.4 98.3 99.6 120.2000000000001 119.7 140.3L75.7 184.6C45.5 154.4 37.7 119.4 46.2 86.3C19.5 80.3 0 56.4 0 28.1C0 -5.2 26.8 -32 59.8 -32C88.4 -32 112.3 -12.2 118.4 14.7C151.1 6.5 186.9 15.3 212.6 40.7C244.7 72.7 224.8 53.1 312.1 140.4z" />
    +    <glyph glyph-name="js-square"
    +      unicode="&#xF3B9;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM243.8 66.6C243.8 23 218.2 3.1 180.9 3.1C147.2 3.1 127.7 20.5 117.7 41.6L152 62.3C158.6 50.6 164.6 40.7 179.1 40.7C192.9 40.7 201.7 46.1 201.7 67.2V210.3H243.8V66.6zM343.4 3.1C304.3 3.1 279 21.7 266.7 46.1L301 65.9C310 51.2 321.8 40.3 342.5 40.3C359.9 40.3 371.1 49 371.1 61.1C371.1 75.5 359.7000000000001 80.6 340.4000000000001 89.1L329.9000000000001 93.6C299.5000000000001 106.5 279.4000000000001 122.8 279.4000000000001 157.1C279.4000000000001 188.7000000000001 303.5000000000001 212.7 341.0000000000001 212.7C367.8000000000001 212.7 387.0000000000001 203.4 400.8000000000001 179L368 158C360.8 170.9 353 176 340.9 176C328.6 176 320.8 168.2 320.8 158C320.8 145.4 328.6 140.3 346.7 132.4L357.2 127.9C393 112.6 413.0999999999999 96.9 413.0999999999999 61.7C413.0999999999999 23.9 383.2999999999999 3.1 343.3999999999999 3.1z" />
    +    <glyph glyph-name="js"
    +      unicode="&#xF3B8;"
    +      horiz-adv-x="448" d=" M0 416V-32H448V416H0zM243.8 66.6C243.8 23 218.2 3.1 180.9 3.1C147.2 3.1 127.7 20.5 117.7 41.6L152 62.3C158.6 50.6 164.6 40.7 179.1 40.7C192.9 40.7 201.7 46.1 201.7 67.2V210.3H243.8V66.6zM343.4 3.1C304.3 3.1 279 21.7 266.7 46.1L301 65.9C310 51.2 321.8 40.3 342.5 40.3C359.9 40.3 371.1 49 371.1 61.1C371.1 75.5 359.7000000000001 80.6 340.4000000000001 89.1L329.9000000000001 93.6C299.5000000000001 106.5 279.4000000000001 122.8 279.4000000000001 157.1C279.4000000000001 188.7000000000001 303.5000000000001 212.7 341.0000000000001 212.7C367.8000000000001 212.7 387.0000000000001 203.4 400.8000000000001 179L368 158C360.8 170.9 353 176 340.9 176C328.6 176 320.8 168.2 320.8 158C320.8 145.4 328.6 140.3 346.7 132.4L357.2 127.9C393 112.6 413.0999999999999 96.9 413.0999999999999 61.7C413.0999999999999 23.9 383.2999999999999 3.1 343.3999999999999 3.1z" />
    +    <glyph glyph-name="jsfiddle"
    +      unicode="&#xF1CC;"
    +      horiz-adv-x="576" d=" M510.634 210.538C505.907 213.159 504.97 216.286 504.253 221.314C501.9010000000001 237.802 500.7140000000001 254.933 495.1560000000001 270.409C459.2610000000001 370.366 341.1660000000001 413.795 248.3070000000001 362.055C220.9370000000001 346.805 199.3360000000001 325.6860000000001 182.8140000000001 298.1520000000001C179.6300000000001 299.6600000000001 177.3560000000001 300.862 174.9900000000001 301.838C144.8880000000001 314.259 115.9410000000001 311.9590000000001 89.6590000000001 292.6710000000001C64.1280000000001 273.9340000000001 53.2370000000001 248.123 56.9830000000001 216.263C57.3380000000001 213.238 55.0160000000001 208.642 52.4690000000001 206.7180000000001C12.7570000000001 176.7260000000001 -3.5619999999999 128.653 10.5670000000001 82.1030000000001C24.3980000000001 36.5340000000001 68.0810000000001 2.3070000000001 116.1750000000001 0.6700000000001C146.4660000000001 -0.3609999999999 176.8120000000001 0.1240000000001 207.1340000000001 0.1310000000001C291.1750000000001 0.1520000000001 375.2240000000001 -0.3999999999999 459.2540000000001 0.6110000000001C511.9180000000001 1.2450000000001 555.3620000000001 37.4840000000001 567.4660000000001 87.9040000000001C579.0060000000001 135.9780000000001 556.3220000000001 185.2040000000001 510.6340000000001 210.5380000000001zM531.741 53.658C513.511 31.226 489.398 18.405 460.461 18.008C403.587 17.227 346.694 17.778 289.8090000000001 17.778C289.8090000000001 17.078 126.781 17.619 126.081 17.624C82.22 17.956 49.342 37.39 30.906 77.619C12.004 118.864 26.902 168.4670000000001 65.092 193.725C74.274 199.798 77.597 205.291 75.188 216.861C69.698 243.222 79.641 264.817 101.608 279.842C124.595 295.5650000000001 149.03 295.988 173.642 282.925C183.911 277.475 188.249 271.361 195.84 285.452C210.0620000000001 311.851 230.3970000000001 332.179 256.511 346.746C353.971 401.112 484.881 339.178 486.751 214.049C486.873 205.899 489.163 201.621 496.599 198.155C554.1590000000001 171.326 571.0550000000001 102.033 531.7410000000001 53.658zM443.952 134.1570000000001C438.104 103.0000000000001 409.33 79.061 377.286 79.062C360.3330000000001 79.063 345.228 85.607 333.207 96.767C305.51 122.48 262.066 171.747 237.27 190.154C217.214 205.042 195.28 202.487 176.998 186.372C127.002 142.3010000000001 192.857 64.597 244.061 109.184C248.609 113.144 251.901 118.727 256.805 122.028C264.989 127.537 277.571 122.912 269.973 111.406C252.615 85.122 220.643 73.209 191.11 82.105C162.213 90.809 142.27 118.073 142.484 152.284C143.709 174.769 154.848 195.344 177.898 208.249C200.473 220.887 224.267 221.395 244.889 205.775C295.68 167.3 320.467 124.03 352.185 104.53C376.743 89.431 406.439 97.167 421.008 122.036C449.838 171.245 386.416 227.052 342.14 185.4959999999999C338.151 181.7519999999999 335.223 176.5639999999999 330.73 173.7759999999999C319.755 166.9649999999999 313.397 177.8889999999999 317.921 184.1289999999999C338.6239999999999 212.6829999999999 368.385 224.5689999999999 401.192 212.3429999999999C432.6209999999999 200.6289999999999 450.3 167.9769999999999 443.952 134.1569999999999z" />
    +    <glyph glyph-name="kaggle"
    +      unicode="&#xF5FA;"
    +      horiz-adv-x="291.72" d=" M291.7200000000001 -60.98C291.2100000000001 -62.99 289.2100000000001 -63.99 285.7100000000001 -63.99H218.79C214.77 -63.99 211.28 -62.24 208.27 -58.72L97.74 81.86L66.92 52.54V-56.48C66.92 -61.4999999999999 64.41 -63.9999999999999 59.4 -63.9999999999999H7.52C2.5 -64 0 -61.5 0 -56.48V440.49C0 445.49 2.5 448 7.52 448H59.4C64.41 448 66.92 445.49 66.92 440.49V134.49L199.24 268.31C202.75 271.81 206.26 273.57 209.76 273.57H278.9400000000001C285.9000000000001 273.57 286.8400000000001 265.7 284.2000000000001 263.05L144.35 127.74L290.2100000000001 -53.46" />
    +    <glyph glyph-name="keybase"
    +      unicode="&#xF4F5;"
    +      horiz-adv-x="412.3" d=" M177.2 17.1C177.2 7.3 169.2 -0.7 159.4 -0.7S141.6 7.3 141.6 17.1S149.6 34.9 159.4 34.9C169.2 35.0000000000001 177.2 27.0000000000001 177.2 17.1zM270 35C260.2 35 252.2 27 252.2 17.2S260.2 -0.6 270 -0.6S287.8 7.4 287.8 17.2S279.8 35 270 35zM412.3 71C412.3 32.1 404.7 -2.9 390.1 -32H362.8C386.3 6.7 393.3 62.8 385.2 102.3C369.1 72.8 333.1 63.7 299.3 73.5C171.5 111 106.8 53.8 64.7 23.2L83.6 82.5L43.7 40.2C48.5 13.5 59.4 -11.1 74.9 -32.1H46.1C36.4 -16.3 28.9 0.9 23.9 19.2L0.1 -6C0.1 68.9 -5.4 141.6 61.6 209.2C81.8 229.6 105.3 245.4 130.7 255.9C123.9 269.4 121.2 285.1 122.9 301.9L103 303.1C85.1 304.2 71.4 319.6 72.4 337.5V337.6L74 363.8C75.1 380.9 89.4 394.4 106.5 394.4C107.8 394.4 106.2 394.5 134.7 392.7C148.6 391.9 156.2 382.9 157.5 381.3C164.6 391.7 172 401.8 182.1 415.8L202.7 403.7C189.1 374.7 193.6 367.5 193.7 367.4C197.6 367.4 207.6 367.9 226.1 361.7C246 355.1 262 341 271 322C271.4 321.1 286.5 293 272.2 259.4C291.2 253.3 323.5 239.5 354.6 207.6C391.2000000000001 170 412.3 120.2000000000001 412.3 71zM128 325.7C131.2 335.7 135.7 345.4 141.1 355.1C141.2 357.1 143.3 368.2 133.3 368.9C104.8 370.7 107 370.5 106.6 370.5C102 370.5 98.3 367 98 362.4L96.4 336.2C96.1 331.5 99.8 327.4 104.5 327.1L128 325.7zM153.8 263.9C159.4 254.5 167.9 247.8 176.1 243.9C176.1 265.1 204.6 285.8 228.9000000000001 261.4L237.3000000000001 251.1C258.1 269.9 256.7000000000001 296.4 249.4000000000001 312C235.6 341.1 202.5 344 195.1 343.7C184.8 343.3 175.4 349.1 171.4 359C157.7000000000001 337.8 134.2000000000001 296.5 153.8000000000001 263.9zM236.7 195.5L217 179.4C215.1 177.8 214.8 175 216.4 173.1L225.3 162.2C226.3 161 229.1 159.5 231.6 161.6L251.2 177.6L256.7000000000001 170.8C261.6 164.8 270.5000000000001 172.1999999999999 265.7000000000001 178.1C202.1000000000001 256.4 224.2000000000001 229.2 210.4 246.2C205.7000000000001 252.2 196.5 244.8 201.4 238.9C203.3000000000001 236.6 219.8000000000001 216.3 221.2000000000001 214.5999999999999L211.6000000000001 206.6999999999999C207.0000000000001 202.8999999999999 214.2000000000001 193.3999999999999 219.0000000000001 197.2999999999999L228.7000000000001 205.2999999999999L236.7000000000001 195.4999999999999zM355.1 169.8C338.2000000000001 193.5 312.5 216.5 281.7000000000001 230.2C273.8000000000001 233.7 266.7000000000001 236.3 258.8000000000001 238.8C256.8000000000001 236.6 254.7000000000001 234.5 252.4000000000001 232.6L284.3000000000001 193.4C294.7000000000001 180.7000000000001 292.8000000000001 161.9 280.1000000000001 151.5000000000001C278.8000000000001 150.4 267.0000000000001 140.8000000000001 251.1000000000001 146.6000000000001C248.2000000000001 144.3000000000001 241.0000000000001 136.7000000000001 228.9000000000001 136.7000000000001C220.3000000000001 136.7000000000001 212.3000000000001 140.5000000000001 206.8000000000001 147.2000000000001L197.9000000000001 158.1000000000001C191.6000000000001 165.9000000000001 190.0000000000001 176.0000000000001 192.9000000000001 184.9000000000001C184.7000000000001 194.8000000000001 184.6000000000001 206.2000000000001 188.3000000000001 214.9000000000001C181.1000000000001 216.2000000000001 161.6000000000001 221.1000000000001 145.6000000000001 236.3000000000001C89.8000000000001 215.6000000000001 57.6000000000001 171.9000000000001 44.3000000000001 145.1000000000001C29.4000000000001 114.9000000000001 25.5000000000001 84.2000000000001 24.4000000000001 54.9000000000001C32.6000000000001 63.6000000000001 20.5000000000001 50.8000000000001 138.4000000000001 175.8000000000001L108.5000000000001 82.2000000000001C166.3000000000001 113.3000000000001 232.5000000000001 118.2000000000001 305.9000000000001 96.6C329.5000000000001 89.7000000000001 351.0000000000001 95 361.9000000000001 110.5C373.0000000000001 126.1 370.4000000000001 148.2 355.1000000000001 169.8zM110.6 340.7L126.2 339.7L127.2 355.3L111.6 356.3L110.6 340.7z" />
    +    <glyph glyph-name="keycdn"
    +      unicode="&#xF3BA;"
    +      horiz-adv-x="512" d=" M63.8 38.7L124.3 97.7C156.4 54.9 195.4 31.7 250.9 30.3C281.4 29.6 311.2 37.3 337.3 52.6999999999999C342.4 47.3999999999999 355.8 33.1999999999999 358.2 30.6999999999999C326 9.9999999999999 288.5999999999999 -0.4000000000001 250.1 0.4999999999999C206.8 1.6 165.5 17.1999999999999 132.3999999999999 44.8999999999999C132.6999999999999 45.4999999999999 94.1999999999999 7.3999999999999 93.7999999999999 6.9999999999999C103.2999999999999 -22.8000000000001 80.6999999999999 -55.4 47.4999999999999 -55.4C20.7 -55.3 0 -33.7 0 -6.9C0 27.4 33.1 49.7 63.8 38.7zM418.7 291.1C437.8 259.8 448.3 223.7 447.4 187.1C446.3 142.3 428.4 99.6 398.8 66.1C399.1 65.8 422.6 40.9 422.9 40.6C432.5 41.9 442.1 38.6 448.8 31.5C460.1 19.5 459.6999999999999 0.6 447.7 -10.9C435.7 -22.2 416.8 -21.8 405.3 -9.8C398.6 -2.8 395.9 7.0000000000001 397.7 16.5000000000001C372.8 43.1000000000001 353.3 63.7000000000001 353.3 63.7000000000001C396 97.8000000000001 416.6 143.3000000000001 417.7 187.9C418.3999999999999 216.8000000000001 410.5 245.1 396.5999999999999 270.1L418.7 291.1zM104 394.9C110.7 387.9 113.4 378.1 111.6 368.6L157.5 320.5C152.8 316.7 144.2 310.1 134.7 299.2C109.3 270.7 95.1 234.4 94 196.3C93.3 167.4 100.1 139.1 114 113.9L92 92.4C72.7 124 63.1 160.1 64.2 197.1C65.2 241.7 82.5 284.7 111.7 318.2L86.4 344.6C76.8 343.3 67.2 346.6 60.5 353.7C49.2 365.7 49.6 384.6 61.6 396.1C73.5 407.3 92.2 407 104 394.9zM464.9 440C490.9 440 512 417.6 512 391.7S490.9 344 464.9 344C458.6 343.9 450.9 345.1 449 345.8L386.1 286.1C353.4000000000001 329.7 309.4000000000001 352 259.2000000000001 353.3C228.7000000000001 354 198.9 346.5 173.0000000000001 330.9L151.9000000000001 352.9C184.1 373.7 221.5 384 260 383.1C303.3 382 344.6 366.4 377.7 338.5L418.8 377.1C417.3 381.8 416.6 386.7 416.6 391.6C416.5 418.3 438.9 440 464.9 440zM256.7 334.6C262.2 334.6 267.6 334.2 273.1 333.5C351.2 323.7 406.5 252.4 396.9 174.4C387.1 96.3 315.8 41 237.8 50.6C159.7 60.4 104.4 131.6999999999999 114 209.8C123.3 282.2 184.1 334.4 256.7 334.6zM197.7 215.2C198.3 192.5 209.9 173.4 230.1 163L219.1 111.3H292.8L281.8 163C301.9000000000001 173.9 313.9000000000001 192 314.2 215.2C313.8 248 288.4 272.7 255.9 273.5C223.8 272.7 198.6 248.7 197.7 215.2zM256 288" />
    +    <glyph glyph-name="kickstarter-k"
    +      unicode="&#xF3BC;"
    +      horiz-adv-x="384" d=" M147.3 333.6C147.3 389.8 114.8 416 73.9 416C26.2 416 0 379.8 0 334.6V51.6C0 4.3 25.3 -31.8 74.9 -31.8C114.7 -31.8 147.3 -6.1999999999999 147.3 51.6V128.1L259.4 -10.2C282.1 -37.4 331.5 -40.9 362.6 -10.2C389.6 17.4 389.9 57.2000000000001 370 82L279.2 196.8L354.0999999999999 304.2000000000001C371.4999999999999 328.9000000000001 371.5999999999999 367.3 343.7 394C313.3999999999999 423 261.3 425.6 230.1 381.2000000000001L147.3 263V333.6z" />
    +    <glyph glyph-name="kickstarter"
    +      unicode="&#xF3BB;"
    +      horiz-adv-x="448" d=" M400 -32H48C21.6 -32 0 -10.4 0 16V368C0 394.4 21.6 416 48 416H400C426.4 416 448 394.4 448 368V16C448 -10.4 426.4 -32 400 -32zM199.6 269.5C199.6 300.2 182 314.6 159.9 314.6C134.1 314.6 119.9 294.8 119.9 270.1V115.3C119.9 89.4999999999999 133.6 69.6999999999999 160.4 69.6999999999999C181.9 69.6999999999999 199.6 83.6999999999999 199.6 115.3V157.1L260.2 81.4C272.5 66.5 299.2 64.6 316 81.4C330.6 96.5 330.8 118.2 320 131.8L270.9 194.6L311.4 253.3C320.8 266.8 320.9 287.8 305.8 302.4C289.4 318.3 261.2 319.7 244.4 295.4L199.6 230.7V269.5z" />
    +    <glyph glyph-name="korvue"
    +      unicode="&#xF42F;"
    +      horiz-adv-x="446" d=" M386.5 414H59.5C26.8 414 0 387.2 0 354.5V27.4C0 -5.2 26.8 -32 59.5 -32H386.6C419.6 -32 446.1 -5.2 446.1 27.5V354.5C446 387.2 419.2 414 386.5 414zM87.1 327.2H183.1V211.2L244.9 327.2H355.8L274.6 195.2H87.1V327.2zM248.9 55.1L183.2 168.6999999999999V55.0999999999999H87.2V185.9H278.7L367.3 55.1H248.9z" />
    +    <glyph glyph-name="laravel"
    +      unicode="&#xF3BD;"
    +      horiz-adv-x="640" d=" M637.5 206.4C633.3 211.2 574.7 284.5 564.4 296.9C554.1 309.3 549 307.1 542.6999999999999 306.2000000000001C536.3 305.3 462.1999999999999 292.8 453.5999999999999 291.4C444.9999999999999 289.9 439.5999999999999 286.5 444.8999999999999 279.1C449.5999999999999 272.5 498.2999999999999 203.4 509.0999999999999 188.2L315.3999999999999 141.8L161.2 399.3C155.1 408.4 153.8 411.6 139.8 410.9C125.8 410.3 18.9 401.4 11.3 400.7C3.7 400.1 -4.7 396.7 2.9 378.7S131.9 99.1 135.3 91.5C138.7 83.9 147.5 71.5 168.1 76.5C189.2 81.6 262.4 100.7 302.4 111.2C323.5 72.9 366.6 -4.7 374.6 -15.8C385.2 -30.7 392.6 -28.2 408.9 -23.2C421.7 -19.3 608.5 47.9 616.9 51.3C625.3 54.8 630.5 57.2 624.8 65.7C620.5999999999999 71.9 571.3 137.9 545.5 172.5C563.2 177.2 626.1 193.9 632.8 195.8C640.6999999999999 197.8 641.8 201.6 637.5 206.4zM285.3 134.4C283 133.9 174.5 107.9 168.7 106.6C162.9 105.3 162.9 105.9 162.2 107.9C161.5 109.9 33.2 374.6 31.4 377.9C29.6 381.2 29.7 383.8 31.4 383.8S133.9 392.8 137.4 393C141 393.2 140.6 392.4 141.9 390.2C141.9 390.2 284.1 144.8 286.5 140.5C289.1 136.2 287.6 134.9 285.3 134.4zM591.3 77C593 74.3 594.8 72.5 589.3 70.6C583.9 68.6 405.6 8.5 402.2 7C398.7 5.5 396 5 391.5999999999999 11.5S329.2 118.3 329.2 118.3L518 167.4C522.7 168.9 524.2 169.9 527.2 165.2C530.1 160.4 589.6 79.7 591.3000000000001 77zM603.4 211.1C599.1999999999999 210.2 529.8 193 529.8 193L473.1 270.8C471.4999999999999 273.1 470.2 275.3 474.2 275.8S542.6 288 545.5 288.6C548.4 289.3 550.9 290.1 554.5 285.2000000000001C558.1 280.3 607.1 218.2 609 215.8C610.8 213.5 607.6 212.1 603.4 211.1z" />
    +    <glyph glyph-name="lastfm-square"
    +      unicode="&#xF203;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM307.8 103.1C244.4 103.1 222.4 131.7000000000001 210.7 167.2000000000001C194.4 218.2000000000001 189.2 251.5000000000001 147.7 251.5000000000001C125.3 251.5000000000001 102.6 235.4000000000001 102.6 190.3000000000001C102.6 155.1000000000001 120.6 133.1000000000001 145.9 133.1000000000001C174.5 133.1000000000001 193.5 154.4000000000001 193.5 154.4000000000001L205.2 122.5000000000001S185.4 103.1000000000001 144 103.1000000000001C92.7 103.1000000000001 64.1 133.2000000000002 64.1 188.9000000000002C64.1 246.8000000000002 92.7 280.9000000000002 146.6 280.9000000000002C220.1 280.9000000000002 227.4 239.5000000000002 247.4 179.0000000000001C256.2 152.2000000000001 271.6 132.8000000000001 308.6 132.8000000000001C333.5 132.8000000000001 346.7 138.3000000000001 346.7 151.9000000000002C346.7 171.8000000000001 324.9 173.9000000000002 296.8 180.5000000000002C266.4000000000001 187.8000000000002 254.3 203.6000000000002 254.3 228.5000000000002C254.3 268.5000000000002 286.6 280.9000000000002 319.5 280.9000000000002C356.9 280.9000000000002 379.6 267.3000000000002 382.5 234.3000000000002L345.8 229.9000000000002C344.3 245.7000000000002 334.8 252.3000000000002 317.2 252.3000000000002C301.1 252.3000000000002 291.2 245.0000000000002 291.2 232.5000000000002C291.2 221.5000000000002 296 214.9000000000002 312.1 211.2000000000002C344.8 204.1000000000002 383.9 199.2000000000002 383.9 153.7000000000002C384 117.0000000000002 353.2 103.1000000000001 307.8 103.1000000000001z" />
    +    <glyph glyph-name="lastfm"
    +      unicode="&#xF202;"
    +      horiz-adv-x="512" d=" M225.8 80.9L207 131.9S176.5 97.9 130.8 97.9C90.3 97.9 61.6 133.1 61.6 189.4C61.6 261.5 98 287.3 133.7 287.3C200.2 287.3 208.5 234 234.6 152.4C253.4 95.5 288.6 49.8 390 49.8C462.7 49.8 512 72.1 512 130.6999999999999C512 203.5999999999999 449.3 211.2999999999999 397 222.7999999999999C371.2 228.7 363.6 239.2 363.6 256.8C363.6 276.7 379.4000000000001 288.4999999999999 405.2000000000001 288.4999999999999C433.4000000000001 288.4999999999999 448.6 277.8999999999999 450.9 252.7L509.5000000000001 259.7C504.8000000000001 312.5 468.4 334.2 408.6 334.2C355.8 334.2 304.2000000000001 314.3 304.2000000000001 250.3C304.2000000000001 210.3999999999999 323.6 185.1999999999999 372.2000000000001 173.5C417.1 162.8999999999999 452.0000000000001 159.6999999999999 452.0000000000001 127.8C452.0000000000001 106.1 430.9000000000001 97.3 391.0000000000001 97.3C331.8000000000001 97.3 307.1 128.4 293.1 171.1999999999999C261.1 268 249.5000000000001 334.2 131.8 334.2C45.7 334.2 0 279.7 0 187C0 97.9 45.7 49.8 127.9 49.8C194.1 49.8 225.8 80.9 225.8 80.9z" />
    +    <glyph glyph-name="leanpub"
    +      unicode="&#xF212;"
    +      horiz-adv-x="576" d=" M386.539 336.515L401.635 87.56L390.656 87.835C354.424 88.659 319.016 79.052 287.999 59.838C256.983 79.052 221.575 87.835 185.3420000000001 87.835C139.7780000000001 87.835 103.2720000000001 77.13 61.826 60.112L93.117 318.4C121.663 330.203 154.601 336.515 185.343 336.515C226.516 336.515 259.1790000000001 323.3400000000001 288 293.971C315.723 322.242 347.013 335.692 386.539 336.515zM569.07 0C543.5440000000001 0 521.585 5.215 498.528 15.645C464.218 31.29 428.5350000000001 40.623 390.6570000000001 40.623C351.6800000000001 40.623 315.7230000000001 27.722 288.0000000000001 0C260.2770000000001 27.723 224.3200000000001 40.623 185.3430000000001 40.623C147.4650000000001 40.623 111.7820000000001 31.29 77.4720000000001 15.645C55.239 5.764 32.731 0 8.303 0H6.93L49.475 349.141C88.726 371.374 136.486 384 181.775 384C218.83 384 256.984 376.315 288 354.905C319.016 376.315 357.17 384 394.225 384C439.514 384 487.274 371.374 526.5250000000001 349.141L569.07 0zM525.702 44.741L491.666 324.987C460.924 338.986 424.418 346.397 390.657 346.397C352.229 346.397 316.272 334.32 288 307.695C259.728 334.32 223.772 346.397 185.343 346.397C151.582 346.397 115.076 338.986 84.334 324.987L50.298 44.741C97.509 64.228 133.192 78.227 185.343 78.227C222.947 78.227 256.16 68.621 288 48.583C319.84 68.621 353.052 78.227 390.657 78.227C442.808 78.227 478.491 64.228 525.702 44.741z" />
    +    <glyph glyph-name="less"
    +      unicode="&#xF41D;"
    +      horiz-adv-x="640" d=" M612.7 229C612.7 249.5 615.9000000000001 261.6 615.9000000000001 283.6C615.9000000000001 317.8 603.3000000000001 328.8 575.4000000000001 328.8H554.9000000000001V304.6H561.2C575.4000000000001 304.6 578.5 299.9 578.5 282.5C578.5 266.2 576.9 249.9 576.9 231C576.9 206.8 584.8 197.4 600.5 193.7V192.1C584.7 188.4 576.9 179 576.9 154.8C576.9 135.9 578.5 120.6 578.5 103.3C578.5 85.4 574.8 80.7 561.2 80.7V80.2H554.9000000000001V55H575.4000000000001C603.2 55 615.9000000000001 66 615.9000000000001 100.2C615.9000000000001 122.8 612.7 134.4 612.7 154.8C612.7 165.8 619.5 177.4 640 178.4V205.7000000000001C619.5 206.4 612.7 218.0000000000001 612.7 229.0000000000001zM507.1 197C491.3 203.3 476.6 207 476.6 217.5C476.6 225.4 482.9 230.1 494.5 230.1S516.6 225.4 528.1 217L549.1 244.8C536 254.8 518.1 265.3 493.9 265.3C458.2 265.3 434.0000000000001 244.8 434.0000000000001 215.9C434.0000000000001 190.2 456.6000000000001 177 475.5000000000001 169.7C491.8000000000001 163.4 507.6000000000001 158.1 507.6000000000001 147.6C507.6000000000001 139.7 501.3000000000001 134.5 487.1000000000001 134.5C474.0000000000001 134.5 460.8000000000001 139.8 446.6000000000001 150.8L425.6000000000001 120.3C441.4000000000001 107.1999999999999 465.5000000000001 98.1999999999999 485.5000000000001 98.1999999999999C527.5 98.1999999999999 550.1 120.3 550.1 149.1999999999999S527.6 190.1999999999999 507.1 197zM148.2000000000001 137.6C144.5000000000001 137.6 139.8000000000001 140.8 139.8000000000001 150.7000000000001V328.9H65.2C36.8 328.9 24.2 317.9 24.2 283.7C24.2 261.1 27.4 248.5 27.4 229.1C27.4 218.1 20.6 206.5 0.1 205.5V178.2C20.6 177.7 27.4 166.1 27.4 155.1C27.4 135.7 24.2 124.1 24.2 101.4999999999999C24.2 67.3 36.8 56.3 64.7 56.3H85.2V80.4999999999999H78.9C65.8 80.4999999999999 61.6 85.8 61.6 103.1S63.2 135.2 63.2 154.6C63.2 178.8 55.3 188.2 39.6 191.9V193.5C55.4 197.2 63.2 206.6 63.2 230.8C63.2 249.7 61.6 265 61.6 282.3S65.3 304.4 78.9 304.4H93V153.5999999999999C93 121.4999999999999 104 100.4999999999999 136.1 100.4999999999999C146.1 100.4999999999999 154 102.0999999999999 159.7 104.1999999999999L154.4 138.3999999999999C151.3 137.5999999999999 149.8 137.5999999999999 148.2 137.5999999999999zM379.9 197C363.6 203.3 348.9 207 348.9 217.5C348.9 225.4 355.2 230.1 366.8 230.1C378.4 230.1 388.9 225.4 400.4 217L421.4 244.8C408.3 254.8 390.4 265.3 366.2 265.3C330.5 265.3 306.3 244.8 306.3 215.9C306.3 190.2 328.9000000000001 177 347.8 169.7C364.1 163.4 379.9000000000001 158.1 379.9000000000001 147.6C379.9000000000001 139.7 373.6 134.5 359.4000000000001 134.5C346.3 134.5 333.1 139.8 318.9000000000001 150.8L298.4000000000001 120.3C314.2000000000001 107.1999999999999 338.3 98.1999999999999 358.3 98.1999999999999C400.3 98.1999999999999 422.9 120.3 422.9 149.1999999999999C423 178.0999999999999 400.4 190.1999999999999 379.9 197zM224.9 265.8C186.5 265.8 149.8 233.7 150.8 183.3C150.8 131.3 185 100.8 230.1 100.8C249 100.8 270 107.6 286.3 118.7L270.5 146.5C258.8999999999999 139.7 247.9 136.5 236.3 136.5C215.3 136.5 199 146.5 194.8 170.7H290C290.5 174.4 291.6 181.7 291.6 190.1C292.2000000000001 232.7 269 265.8 224.9 265.8zM194.9 199.6C198.1 220.6 210.7 230.6 225.4 230.6C244.3 230.6 251.7 217.5 251.7 199.6H194.9z" />
    +    <glyph glyph-name="line"
    +      unicode="&#xF3C0;"
    +      horiz-adv-x="448" d=" M272.1 243.8V172.7000000000001C272.1 170.9 270.7000000000001 169.5000000000001 268.9000000000001 169.5000000000001H257.5000000000001C256.4000000000001 169.5000000000001 255.4000000000001 170.1000000000001 254.9000000000001 170.8000000000001L222.3000000000001 214.8000000000001V172.6000000000001C222.3000000000001 170.8000000000001 220.9000000000001 169.4000000000001 219.1000000000001 169.4000000000001H207.7000000000001C205.9000000000001 169.4000000000001 204.5000000000001 170.8000000000001 204.5000000000001 172.6000000000001V243.7000000000001C204.5000000000001 245.5000000000001 205.9000000000001 246.9000000000001 207.7000000000001 246.9000000000001H219C220 246.9000000000001 221.1 246.4000000000001 221.6 245.5000000000001L254.2 201.5000000000001V243.7000000000001C254.2 245.5000000000001 255.6 246.9000000000001 257.4 246.9000000000001H268.8C270.6 247.0000000000001 272.1 245.5000000000001 272.1 243.8000000000001zM190.1 247H178.7C176.9 247 175.5 245.6 175.5 243.8V172.7000000000001C175.5 170.9 176.9 169.5000000000001 178.7 169.5000000000001H190.1C191.9 169.5000000000001 193.3 170.9 193.3 172.7000000000001V243.8000000000001C193.3 245.5000000000001 191.9 247.0000000000001 190.1 247.0000000000001zM162.6 187.4H131.5V243.8C131.5 245.6 130.1 247 128.3000000000001 247H116.9C115.1 247 113.7 245.6 113.7 243.8V172.7C113.7 171.8 114 171.1 114.6 170.5C115.2 170 115.9 169.6 116.8000000000001 169.6H162.5000000000001C164.3000000000001 169.6 165.7000000000001 171 165.7000000000001 172.8V184.2C165.7000000000001 185.9 164.3000000000001 187.4 162.6000000000001 187.4zM332.1 247H286.4000000000001C284.7000000000001 247 283.2000000000001 245.6 283.2000000000001 243.8V172.7000000000001C283.2000000000001 171.0000000000001 284.6 169.5000000000001 286.4000000000001 169.5000000000001H332.1C333.9000000000001 169.5000000000001 335.3 170.9 335.3 172.7000000000001V184.1C335.3 185.9 333.9000000000001 187.3 332.1 187.3H301V199.3H332.1C333.9000000000001 199.3 335.3 200.7 335.3 202.5V214C335.3 215.8 333.9000000000001 217.2 332.1 217.2H301V229.2H332.1C333.9000000000001 229.2 335.3 230.6 335.3 232.4V243.8C335.2 245.5 333.8 247 332.1 247zM448 334.3V49C447.9 4.2 411.2 -32.1 366.3 -32H81C36.2 -31.9 -0.1 4.9 0 49.7V335C0.1 379.8 36.9 416.1 81.7 416H367C411.8 415.9 448.1 379.2 448 334.3zM386.4 211.7C386.4 284.7 313.2 344.1 223.3 344.1C133.4 344.1 60.2 284.7 60.2 211.7C60.2 146.3 118.2 91.5 196.6 81.1C215.7 77 213.5 70 209.2 44.3C208.5 40.2 205.9 28.2 223.3 35.5C240.7 42.8 317.2 90.8 351.5 130.2C375.1 156.2 386.4 182.5 386.4 211.7z" />
    +    <glyph glyph-name="linkedin-in"
    +      unicode="&#xF0E1;"
    +      horiz-adv-x="448.1" d=" M100.3 0H7.4V299.1H100.3V0zM53.8 339.9C24.1 339.9 0 364.5 0 394.2S24.1 448 53.8 448S107.6 423.9 107.6 394.2S83.5 339.9 53.8 339.9zM448 0H355.3V145.6C355.3 180.3 354.6 224.8 307 224.8C258.7 224.8 251.3 187.1 251.3 148.1V0H158.5V299.1H247.6V258.3H248.9C261.3 281.8 291.6 306.6 336.8 306.6C430.8 306.6 448.1 244.7 448.1 164.3V0H448z" />
    +    <glyph glyph-name="linkedin"
    +      unicode="&#xF08C;"
    +      horiz-adv-x="448" d=" M416 416H31.9C14.3 416 0 401.5 0 383.7V0.3C0 -17.5 14.3 -32 31.9 -32H416C433.6 -32 448 -17.5 448 0.3V383.7C448 401.5 433.6 416 416 416zM135.4 32H69V245.8H135.5V32zM102.2 275C80.9 275 63.7 292.3 63.7 313.5S80.9 352 102.2 352C123.4 352 140.7 334.7 140.7 313.5C140.7 292.2 123.5 275 102.2 275zM384.3 32H317.9V136C317.9 160.8 317.4 192.7 283.4 192.7C248.8 192.7 243.5 165.7 243.5 137.8V32H177.1V245.8H240.8V216.6H241.7C250.6 233.4000000000001 272.3 251.1 304.6 251.1C371.8 251.1 384.3 206.8 384.3 149.2000000000001V32z" />
    +    <glyph glyph-name="linode"
    +      unicode="&#xF2B8;"
    +      horiz-adv-x="448" d=" M437.4 221.7C437.1 222.6 436.5 223.1 436 223.7L366 262.3C365.1 262.9 364 262.9 362.9 262.3L304 226.3C303.1 225.7 302.6 224.6 302.6 223.7L301.7000000000001 192.3L277.7000000000001 208.3C276.8000000000001 208.9 275.4000000000001 208.9 274.6 208.3L240 187.1L238.6 222.2C238.6 223.1 238 224.2 237.2 224.5L201.2 248.8000000000001L234.9 266.2000000000001C236 266.8000000000001 236.6 267.9000000000001 236.6 269.1L230.9 401.4000000000001C230.9 402.3000000000001 230 403.4000000000001 229.2 404.0000000000001L138.6 447.7C137.7 448 136.9 448 136.3 448L12.6 409.4C11.2 408.8 10.3 407.4 10.6 405.7L38 272.6C38.9 269.2 72 245.2 76.6 241.7L49.7 228.8C48.3 227.9 47.7 226.5 48 225.4L68.6 125.1C69.2 122.2 92.3 101.9999999999999 95.7 98.8L78.3 88.1999999999999C77.4 87.5999999999999 76.6 86.1999999999999 76.9 85.0999999999999C78.3 77.9999999999999 92.3 7.3999999999999 93.8 5.9999999999999L158.9 -63.1000000000001C159.5 -63.7000000000002 160.3 -63.7000000000002 161.2 -64.0000000000001C161.8 -64.0000000000001 162.3 -63.7000000000001 162.9 -63.4000000000001L246.6 3.4999999999999C247.5 4.0999999999999 247.7 4.8999999999999 247.7 5.7999999999999L245.7 51.7999999999999L273.7 28.0999999999999C274.8 27.1999999999999 276.5999999999999 27.1999999999999 277.7 28.0999999999999L344.5999999999999 81.4999999999999C345.4999999999999 82.0999999999999 345.7 82.8999999999999 345.7 83.7999999999999L348 117.1999999999999L368.3 103.1999999999999C369.4 102.2999999999999 370.9 102.2999999999999 372 103.1999999999999L426.6 146.8999999999999C427.2 147.1999999999999 427.7 147.9999999999999 427.7 148.8999999999999C428.6 155.3999999999999 438 219.6999999999999 437.4 221.6999999999999zM232.6 216.9L236.6 124.3L146 63.1L132 159.6999999999999L232.6 216.8999999999999zM224.9 396.9L230.3 270.9L123.7 215.5L104 350.3L224.9 396.9zM44 274.9L18 400L97.7 350.6L117.1 217.7L44 274.9zM74.6 127.1L55.7 218L125.7 159.7L139.4 66.3L74.6 127.1zM98.9 9.4L85.2 76.5L146.9 15.6L156.6 -51.8L98.9 9.4zM163.4 -55.1L152.8 15.8000000000001L238.5 77.2000000000001L241.6 7.2L163.4 -55.1zM245.4 60C245.4 63.4 246.3 82.9 243.4 85.1L219.1 105.1L241.4 120C243.7 121.7 242.5 125.7 242.5 128L271.9 105.4L272.5 37.1L245.4 59.9999999999999zM339.7 85.4L278.8 36.8L278.2 105.4L343.9 152.3L339.7 85.4zM367.4 111.1L348.3 124.5L350.3 158.5C350.6 159.3999999999999 350 160.5 349.2 161.1L308 188.3L308.6 218.3L373.2000000000001 177.7L367.4000000000001 111.1zM422 150.9L373.7 112.6L379.4 177.6999999999999L430.5 214.2999999999999L422 150.8999999999999z" />
    +    <glyph glyph-name="linux"
    +      unicode="&#xF17C;"
    +      horiz-adv-x="448" d=" M196.1 324.4C195.9 325.8 198 326.7 199.3 327.3C201 328 203.2 328.3 204.8 327.4C205.2 327.2 205.6 326.7 205.4 326.3C205 325.1 203 325.3 201.9 324.7000000000001C200.9 324.2000000000001 200.1 323 198.9 323C197.9 322.9000000000001 196.2 323.4000000000001 196.1 324.4000000000001zM220.8 324.7C221.8 324.2 222.6 323 223.8 323C224.9 323 226.6 323.4 226.7 324.5C226.9 325.9 224.8 326.8 223.5 327.4C221.8 328.1 219.6 328.4 218 327.5C217.6 327.3 217.2 326.8 217.4 326.4C217.7 325.1 219.7 325.3 220.8 324.7zM435.5 14.5C435 6.3 429 0.7 421.6 -3.8C406.7000000000001 -12.8 384.3 -19.6 370.7000000000001 -36L368.1 -33.8L370.7000000000001 -36C356.5000000000001 -52.9 339.0000000000001 -62.6 322.4000000000001 -63.9C305.9000000000001 -65.1999999999999 290.4000000000001 -57.6 282.1 -40.9V-40.8C281 -38.6999999999999 280.2000000000001 -36.4 279.6 -34.1C258.1 -35.3 239.4000000000001 -28.8 224.5 -29.9999999999999C202.5 -31.1999999999999 188.7000000000001 -36.4999999999999 176.2000000000001 -36.6C171.4 -47.2 161.9 -54.2 150.3000000000001 -56.7999999999999C134.3000000000001 -60.4999999999999 114.2000000000001 -56.7999999999999 94.4 -46.4L96 -43.4L94.4 -46.4C75.9 -36.6 52.4 -37.5 35.1 -33.9C26.4 -32.1 18.8 -28.9 15 -21.6C11.3 -14.3 12 -4.3 17.2 10.1C18.9 15.2 17.6 22.8 16.4 30.9C15.8 34.8 15.2 38.8 15.2 42.7C15.2 47.0000000000001 15.9 51.2 18 55.1C22.5 63.6 29.8 67.2000000000001 36.5 69.6C43.2 72 49.3 73.6 53.5 77.9C58.7 83.4 63.6 92.3 70.1 98.1C67.5 115.3 70.3 133.5 76.3 151.4C88.9 189.3 115.5000000000001 225.6 134.4 248.1C150.5 271 155.2000000000001 289.4000000000001 156.9 312.8C158 344.6 132.4 448.2 234.8 448C315.7000000000001 447.9 311.1 362.6 310.6 316.7C310.3 286.6 326.9000000000001 266.2 344 244.7C359.2 226.7 379.1 200.4 390.5 170.3C399.8 145.6999999999999 403.4 118.5 394.2 91.1999999999999C395.6 90.6999999999999 397 89.9999999999999 398.3 89.1999999999999C399.7 88.3999999999999 401 87.3999999999999 402.3 86.3C408.9000000000001 80.6999999999999 411 71.9999999999999 412.8 63.9C414.7 55.8 416.4000000000001 48.2 420 44.2C431.1 31.8 435.9 22.7 435.5 14.5zM220.8 338.9C224.4 338 229.7 336.5 233.8 334.5C231.7 346.7 238.3 358 245.6 357.5C254.5000000000001 357.2 259.5 342 254.7 330.2C253.9 328.3 251.9 326.8 250.8 325.6C257.5 323.3 261.8 321.5 263.4000000000001 320.7C271.3 330.2 274.2000000000001 346.9 267.7000000000001 361.1C257.9000000000001 382.5 233.5000000000001 382.9 223.7000000000001 360.7C220.5000000000001 353.5 219.8000000000001 345.8 220.8000000000001 338.9zM174.6 320.1C182.4 325.8 181.5 324.8 180.5 325.6C172.5 332.5 173.9 353 182.3000000000001 353.7000000000001C188.6000000000001 354.2000000000001 193.1000000000001 343 191.9 334.1C195 336.2000000000001 198.6 337.7000000000001 202.1 338.7000000000001C203.8 358 193.1 372.2000000000001 183 372.2000000000001C164.1 372.2000000000001 159 334.7000000000001 174.6 320.1zM165.2 299.2000000000001C166.7 294.3 171.3 288.7000000000001 179.9 283.9C187.7 279.3 191.9 272.4 199.9 268.9C202.5 267.8 205.6 267 209.5 266.8C227.9 265.7000000000001 236.6 278.1 247.7 281.7000000000001C259.4 285.4 267.8 292.7000000000001 270.4 299.8C273.6 308.3 268.3 314.5 259.9 318C248.6 322.9 243.6 323.2 237.3 327.3C227 333.9 218.5 336.2 211.4 336.2C197 336.2 188.2 326.4 183.5 322C183 321.5 175.6 316.1 169.4 311.5C165.2 308.2 163.8 304.1 165.2 299.2zM131.7 46.4L112.1 82C105.3 91.2 98.3 96.8 90.2 98C82.5 99.2 77.6 96.6 72.5 91.1C67.7 86 63.7 78.8 58.2 73.1C50.4 66.6 48.9 66.9 38.6 63.2000000000001C32.3 61.0000000000001 27.3 58.6 23.8 51.9C21.1 46.9 21.7 39.7 22.9 31.9C24.1 24.0000000000001 25.9 15.6 23.5 8.0000000000001V7.8000000000001C18.5 -5.8999999999999 18.5 -13.8999999999999 20.9 -18.5999999999999C28.8 -33.9999999999999 67.5 -24.6999999999999 97.4 -40.4999999999999C128.8 -56.8999999999999 170 -57.5999999999999 172.7 -22.4999999999999C174.8 -1.9999999999999 141.2 26.5000000000001 131.7 46.4000000000001zM285.6 10.6C288.8 21.6 291.9000000000001 31.9 292.4000000000001 39.6C293.2000000000001 54.8 294.0000000000001 68.3 296.8 79.4999999999999C299.9000000000001 92.1 306.1 102.6 318.2 106.8C320.5 127.9 336.9 127.9 356.5 119.3C375.4 110.8 382.5 103.3 379.3 93.1999999999999C380.3 93.1999999999999 381.3 93.3 383.5 93.1999999999999C388.7 110.0999999999999 369.2 121.1999999999999 352.8 128C355.7 140 355.2 152.1 352.4000000000001 163.6999999999999C346.4000000000001 189 329.8 211.5 317.2000000000001 222.6999999999999C314.9000000000001 222.7999999999999 315.1 220.7999999999999 319.8000000000001 216.1999999999999C331.4000000000001 205.5 356.9000000000001 167 343.1000000000001 131.3C339.2000000000001 132.3 335.5000000000001 132.8 332.2000000000001 132.6999999999999C326.9000000000001 161.8 314.7000000000001 185.8999999999999 308.6000000000001 197.2999999999999C297.1000000000001 218.6999999999999 279.1000000000001 262.5999999999999 271.4000000000001 293C266.9000000000001 286.5999999999999 259.0000000000001 281.0999999999999 249.1000000000001 278C244.4000000000001 276.5 239.4000000000001 272.5 233.2000000000001 269C219.3000000000001 261 203.2000000000001 260.2 190.8000000000001 270.2C186.3000000000001 273.8 182.8000000000001 277.8 178.2000000000001 280.5C176.6000000000001 281.4 173.1000000000001 283.8 172.0000000000001 284.5999999999999C170.0000000000001 246.8 144.7000000000001 199.3 132.7000000000001 171.8999999999999C124.4000000000001 152.1999999999999 119.5000000000001 131.0999999999999 118.9000000000001 110.3999999999999C97.1000000000001 139.5 113.0000000000001 176.6999999999999 121.5000000000001 192.7999999999999C131.0000000000001 210.3999999999999 132.5000000000001 215.2999999999999 130.2000000000001 213.5999999999999C121.6000000000001 199.5999999999999 108.2000000000001 177.3 103.0000000000001 154.3999999999999C100.3000000000001 142.5 99.8000000000001 130.3999999999999 103.3000000000001 119.1999999999999C106.8000000000001 107.9999999999999 114.4000000000001 97.6999999999999 127.9000000000001 89.3C127.9000000000001 89.3 152.7000000000001 74.9999999999999 166.2000000000001 56.8C173.6000000000001 46.8 175.9000000000001 38.1 173.6000000000001 31.9C171.1000000000001 25.2 164.0000000000001 23 156.9000000000001 23C161.7000000000001 17 167.2000000000001 10 171.3000000000001 3.4C208.9000000000001 -22.3 253.5000000000001 -12.3 285.6000000000002 10.6zM415 39.5C405 50.8 407.8 72.6 397.9 81.1C391 87.1 384.3 86.5 375.3 86.2000000000001C367.6 77.4 349.5 66.6 336.9 69.9C325.4 72.8 318.9 86.2000000000001 318.1 99.4C317.8 99.2000000000001 317.4 99.1 317.1 98.9C310 95.0000000000001 306 88.1 303.4 77.8C300.9 67.6 300 54.3 299.2 39.1C298.5 27.3 293 12.7 289.3 -1.5C285.8 -14.7 283.5 -26.7 288.2 -37.8C295.4 -52.3 307.7 -58.2 321.9 -57.1C336.1 -56 352.3 -47.3 365.5 -31.6C387.5 -5 427.8 -1.9 428.7 14.9C429 20 425.6 27.9 415 39.5zM173.3 299.3C175.3 297.4 178 294.8 181.3 292.2000000000001C187.9 287 197.1 281.6 208.6 281.6C220.2 281.6 231.1 287.5 240.4000000000001 292.4000000000001C245.3000000000001 295 251.3000000000001 299.4000000000001 255.2000000000001 302.8000000000001C259.1 306.2000000000001 261.1 309.1 258.3000000000001 309.4000000000001C255.5000000000001 309.7000000000001 255.7000000000001 306.8000000000001 252.3000000000001 304.3000000000001C247.9000000000001 301.1 242.6000000000001 296.9000000000001 238.4000000000001 294.5C231.0000000000001 290.3000000000001 218.9000000000001 284.3000000000001 208.5000000000001 284.3000000000001C198.1000000000001 284.3000000000001 189.8000000000001 289.1 183.6000000000001 294C180.5000000000001 296.5 177.9000000000001 299 175.9000000000001 300.9000000000001C174.4000000000001 302.3000000000001 174.0000000000001 305.5 171.6000000000001 305.8000000000001C170.2000000000001 305.9000000000001 169.8000000000001 302.1 173.3000000000001 299.3000000000001z" />
    +    <glyph glyph-name="lyft"
    +      unicode="&#xF3C3;"
    +      horiz-adv-x="512" d=" M0 366.9H77.8V158.2000000000001C77.8 125.1 92.8 105.4 105 97.2000000000001C92.3 86.1 53.8 76.3000000000001 24.8 100.0000000000001C7.8 114 0 137.3 0 159V366.9zM485.9 193.4V215.4H509.7V292.2H483.6C473.4999999999999 338.5 432.4 372.9 383.3 372.9C326.7 372.9 280.6 326.9 280.6 270.2V91C296.6 88.7 316 91.3 332.3 105C349.4 119 357.1 142.2 357.1 164V170.7H395.9V247.5H357.1V270.8C357.1 305.4 409.3 305.4 409.3 270.8V193.7C409.3 137.1 455.3 91 511.9999999999999 91V167.5C497.4999999999999 167.5 485.8999999999999 179.2 485.8999999999999 193.4zM191.6 292.4V179.4C191.6 164 167.8 164 167.8 179.4V292.4H91V159.7C91 135.9 99 105.7 136 95.8C173 86 194.2 106.4 194.2 106.4C192.1 93.0000000000001 179.7 83.1 159.3 81.1C143.8 79.5 124.1 84.7000000000001 114.3 88.9V18.6C139.4 11.1 165.8 8.8 191.9 13.9C239 23.0000000000001 268.7 62.3 268.7 114.7000000000001V292.9H191.6V292.4z" />
    +    <glyph glyph-name="magento"
    +      unicode="&#xF3C4;"
    +      horiz-adv-x="448" d=" M445.7 320.1V64L382.3 27.5V283.3L223.8 374.9L65.2 283.3L65.6 27.4L2.3 64V319.9L224.2 448L445.7 320.1zM255.6 27.5L224 9.1L192.2 27.3V283.3L128.9 246.7L129 -9.2L223.9 -64.1L319 -9.2V246.8L255.6 283.4V27.4999999999999z" />
    +    <glyph glyph-name="mailchimp"
    +      unicode="&#xF59E;"
    +      horiz-adv-x="428.07" d=" M426.56 124.28C423.4700000000001 130.87 417.59 135.41 410.21 137.16C407.74 148.43 404.33 153.96 404.02 154.79C405.32 156.27 406.58 157.76 406.86 158.11C417.28 171.04 410.48 189.97 392.67 194.44C382.65 204.0799999999999 373.58 208.6099999999999 366.13 212.34C358.99 215.91 361.8399999999999 214.5099999999999 355.14 217.53C353.36 226.24 352.7699999999999 246.5 349.94 260.7199999999999C347.3999999999999 273.51 342.2799999999999 282.78 334.38 288.87C331.2199999999999 295.7099999999999 326.79 302.61 321.45 307.68C346.2899999999999 345.76 352.83 383.37 334.64 403.07C326.5399999999999 411.8399999999999 314.51 416 300.12 416C279.86 416 254.94 407.74 229.78 392.4599999999999C229.78 392.4599999999999 213.4 405.64 213.05 405.92C142.97 461.11 -55.23 217.22 14.73 163.92L32.79 150.12C21.45 118.5799999999999 37.22 80.98 70.08 68.91C77.34 66.24 85.22 64.9399999999999 93.39 65.4C93.39 65.4 146.48 -31.96 258.49 -31.99C388.07 -32.03 421.04 94.73 421.39 95.87C421.39 95.86 431.89 111.38 426.56 124.28zM20.12 180.05C5.92 204.01 30.63 253.24 48.21 281.2200000000001C91.66 350.37 163.98 404.94 196.82 397.15L205.85 400.61C205.88 400.58 230.52 379.76 230.55 379.74C247.52 389.93 269.13 400.31 289.35 402.38C277.05 399.61 262.06 393.23 244.3 382.37C243.87 382.12 202.28 354.05 176.87 328.85C163.02 315.12 107.42 248.44 107.4699999999999 248.5C117.63 267.73 124.33 277.17 140.41 297.4C149.5099999999999 308.8400000000001 159.22 319.9700000000001 169.15 330.24C173.76 335.01 178.43 339.6 183.0999999999999 343.9500000000001C186.31 346.94 189.5399999999999 349.8200000000001 192.75 352.5700000000001C194.2299999999999 353.8400000000001 195.71 355.0700000000001 197.18 356.2800000000001L197.19 356.29L164.6 383.2L166.32 371.14L190.01 350.27S169.05 336.16 158.62 327.26C116.83 291.6 75.82 236.86 60.56 183.57L61.29 183.6C53.69 179.41 46.15 172.69 39.56 163.55C39.4 163.59 22.52 175.98 20.12 180.05zM89.23 79.96C64.2 79.96 43.9 101.33 43.9 127.6800000000001C43.9 154.0400000000001 64.19 175.4000000000001 89.23 175.4000000000001C95.72 175.4000000000001 101.89 173.9600000000001 107.47 171.3800000000001C107.47 171.3800000000001 117.1 166.5200000000001 119.81 143.5700000000001C122.63 150.7400000000001 124.05 156.6300000000001 124.05 156.6300000000001C127.28 146.7500000000001 128.93 136.3700000000001 128.28 125.8700000000001C130.96 129.4300000000001 133.83 136.1400000000001 133.83 136.1400000000001C138.83 106.8100000000001 117.43 79.9600000000001 89.23 79.9600000000001zM145.03 248.4900000000001S164.52 285.5500000000001 207.36 310.0600000000001C204.17 310.5700000000001 196.37 309.5800000000001 195 309.4200000000001C202.78 316.11 217.24 320.5800000000001 227.23 322.61C224.31 324.4700000000001 217.34 324.9400000000001 213.89 325.0300000000001C212.87 325.0600000000001 212.88 325.0500000000001 211.67 325.0000000000001C221.07 330.2500000000001 238.49 333.3400000000001 254.32 330.5500000000001C252.33 333.1900000000001 247.82 335.12 244.65 336.0600000000001C244.37 336.1400000000001 243.13 336.4500000000001 243.13 336.4500000000001L244.32 336.73C253.86 338.5700000000001 265.01 336.5800000000001 273.82 333.0400000000001C272.82 335.36 270.37 338.0700000000001 268.53 339.7800000000001C268.34 339.9600000000001 267.24 340.7500000000001 267.24 340.7500000000001C276.46 338.8400000000001 285.3 334.8100000000001 291.95 330.2500000000001C291.05 332.0000000000001 288.81 334.9400000000001 287.26 336.5400000000001C296.07 334.0200000000001 305.9699999999999 327.73 310.2099999999999 318.7200000000001C310.31 318.5200000000001 310.58 317.7800000000001 310.6099999999999 317.6900000000001C293.9099999999999 330.5300000000001 245.1699999999999 326.8900000000001 196.3699999999999 295.2700000000001C174.0399999999999 280.7900000000001 157.6599999999999 264.9500000000001 145.0299999999999 248.4900000000001zM408.35 102.15C407.7600000000001 101.0000000000001 401.62 67.7500000000001 366.49 40.14C322.12 5.28 263.8300000000001 8.8100000000001 241.82 28.34C230.06 39.34 224.97 55.0700000000001 224.97 55.0700000000001S223.64 46.2 223.41 42.72C214.54 57.81 215.29 76.24 215.29 76.24S210.56 67.41 208.39 62.47C201.86 79.09 205.23 96.25 205.23 96.25L200.07 88.55S197.65 107.36 203.59 123.02C209.95 139.76 222.27 151.92 224.7 153.44C215.35 156.41 204.58 164.93 204.56 164.95C204.56 164.95 208.84 164.67 211.82 165.35C211.82 165.35 192.92 178.89 189.6 199.61C192.34 196.23 198.09 192.4 198.09 192.4C196.23 197.8199999999999 195.1 209.89 196.84 221.7599999999999L196.85 221.7699999999999C200.43 244.45 219.12 259.2199999999999 240.29 259.04C262.83 258.8399999999999 277.94 254.11 296.84 271.54C300.84 275.2299999999999 304.03 278.41 309.65 279.6499999999999C310.24 279.7799999999999 311.71 280.3999999999999 314.72 280.3999999999999C317.77 280.3999999999999 320.7 279.7099999999999 323.39 278.1099999999999C333.64 272.01 335.85 256.0999999999999 336.95 244.4299999999999C341.02 201.1499999999999 339.38 208.8599999999999 356.89 199.9399999999999C365.25 195.6899999999999 374.63 191.6499999999999 385.32 180.2199999999999C385.35 180.19 385.4 180.13 385.4 180.13H385.53C394.54 179.9099999999999 399.18 172.8199999999999 395.03 167.6599999999999C364.8 131.5599999999999 322.57 114.2699999999999 275.52 112.8199999999999C273.58 112.7699999999999 269.2 112.67 269.18 112.67C250.17 112.09 243.99 87.5099999999999 255.91 72.72C263.45 63.37 277.94 60.3 289.88 60.26L290.05 60.32C341.5 59.28 393.19 95.69 402.12 115.76C402.18 115.91 402.73 117.18 402.73 117.18C400.6600000000001 114.75 350.55 67.57 289.6500000000001 69.28C289.6500000000001 69.28 282.99 69.42 276.7200000000001 70.8800000000001C268.4500000000001 72.8000000000001 262.17 76.4400000000001 259.7700000000001 84.6800000000001C264.8200000000001 83.6700000000001 271.2200000000001 83.02 278.6400000000001 83.02C322.6 83.02 354.2700000000001 103.0000000000001 350.9700000000001 103.27C350.8400000000001 103.27 350.7100000000001 103.2400000000001 350.49 103.1900000000001C345.36 102.0000000000001 292.52 81.53 259.12 92.03C259.2 93.05 259.36 94.04 259.6 94.93C262.5700000000001 104.88 267.85 103.49 276.3900000000001 103.86C306.8700000000001 104.87 331.4600000000001 112.54 349.8900000000001 121.29C369.54 130.62 384.5200000000001 142.6400000000001 389.9200000000001 148.71C396.9200000000001 136.92 396.8800000000001 121.79 396.8800000000001 121.79S399.6200000000001 122.75 403.2600000000001 122.75C414.6400000000001 122.74 416.9900000000001 112.52 408.35 102.15zM259.0600000000001 88.4500000000001C259.0600000000001 88.5000000000001 259.0500000000001 88.5500000000001 259.0500000000001 88.6C259.0600000000001 88.55 259.0600000000001 88.5 259.0600000000001 88.4500000000001zM259.0500000000001 88.66C259.0400000000001 88.79 259.0400000000001 88.92 259.0300000000001 89.05C259.0100000000001 89.7 259.0000000000001 90.38 259.0300000000001 91.07C259.0100000000001 90.33 259.0100000000001 89.65 259.0300000000001 89.05C259.0400000000001 88.92 259.0400000000001 88.78 259.0500000000001 88.66zM259.1700000000001 87.2000000000001C259.1700000000001 87.1800000000001 259.1700000000001 87.16 259.1800000000001 87.14C259.1800000000001 87.16 259.1800000000001 87.1800000000001 259.1700000000001 87.2000000000001zM259.1900000000001 87.08C259.3900000000001 85.5000000000001 259.7000000000001 84.77 259.7400000000001 84.6800000000001C259.5100000000001 85.1700000000001 259.3200000000001 86.02 259.1900000000001 87.08zM193.96 388.32L196.83 397.15L201.71 379.43L195.68 381.38L193.96 388.32zM216.34 370.6L212.72 383.19L222.69 374.83C220.45 373.39 218.33 371.9700000000001 216.34 370.6zM259.05 88.66C259.04 88.79 259.04 88.92 259.0300000000001 89.05C259.04 88.92 259.04 88.78 259.05 88.66zM259.04 89.05C259.0200000000001 89.6999999999999 259.0100000000001 90.3799999999999 259.04 91.0699999999999C259.0100000000001 90.3199999999999 259.0100000000001 89.6499999999999 259.04 89.05zM259.06 88.4499999999999C259.06 88.4999999999999 259.05 88.55 259.05 88.5999999999999M259.18 87.1399999999999C259.18 87.1599999999999 259.18 87.18 259.17 87.1999999999999M259.19 87.0799999999999C259.39 85.4999999999999 259.7 84.7699999999999 259.74 84.68C259.51 85.17 259.32 86.0199999999999 259.19 87.0799999999999zM311.29 225.69C311.2200000000001 229.05 311.7600000000001 234.61 314.92 235.64H314.93C320.3400000000001 237.5199999999999 327.51 223.66 327.8400000000001 211.3599999999999C323.5600000000001 213.4999999999999 318.54 214.41 313.37 213.9599999999999C312.07 217.9299999999999 311.45 221.6599999999999 311.29 225.6899999999999zM205.38 362.73L191.79 374.11L212.36 367.83C209.71 365.95 207.36 364.23 205.38 362.73zM233.08 195.79C229.67 194.49 227.25 193.48 226.08 193.65C224.19 193.93 226.02 197.4 230.16 200.7600000000001C238.49 207.4 249.92 209.46 259.69 205.8300000000001C263.97 204.2600000000001 268.77 201.1100000000001 271.29 197.4400000000001C272.24 196.0500000000001 272.5 195.0000000000001 272.11 194.5600000000001C271.3400000000001 193.6600000000001 268.6 194.8700000000001 264.56 196.4500000000001C254.21 200.3100000000001 246.58 200.9 233.08 195.7900000000001zM247.63 181.2600000000001C245.32 180.3200000000001 243.82 179.6 243.21 180.09C242.59 180.5700000000001 243.2 182.5100000000001 245.36 184.6C247.24 186.41 249.1900000000001 187.43 251.43 188.37C251.78 188.52 252.15 188.65 252.53 188.75C253.57 189.03 254.62 189.38 255.76 189.55C264.88 191.1 271.56 186.04 270.69 184.57C270.3 183.88 268.61 184.04 266.09 184.21C260.86 184.57 255.38 184.48 247.63 181.26zM60.86 124.88zM85.16 150.66C83.31 150.27 84.35 150.49 82.52 149.98A7 7 0 0 1 81.75 149.73C81.17 149.46 80.64 149.28 80.13 149C79.7 148.7599999999999 76.06 147.1399999999999 73.1 143.5199999999999C69.11 138.5699999999999 67.66 132.0899999999999 67.91 125.8499999999999C68.15 119.7899999999999 69.93 116.4399999999999 70.26 115.6199999999999C71.64 112.6599999999999 68.41 112.0499999999999 65.47 115.2299999999999L65.46 115.2399999999999C63.11 117.7299999999999 61.6 121.5299999999999 60.86 124.8999999999999C57.88 138.8499999999999 64.1 152.8699999999999 78.47 158.4699999999999C79.27 158.7899999999999 80.21 158.9799999999999 80.97 159.1999999999999H80.96C82.43 159.6399999999999 87.68 160.6999999999999 93.03 159.87C98.9 158.9599999999999 104.07 156.0199999999999 107.36 152.1999999999999L107.37 152.19C109.9 149.3199999999999 111.8 145.2699999999999 111.46 141.66V141.65C111.33 140.15 110.67 138 109.32 137.44C108.82 137.23 108.31 137.34 107.96 137.69C106.98 138.65 107.74 140.62 105.36 143.99C102.19 148.46 95.05 152.75 85.16 150.66zM115.44 119.49C117.32 108.67 109.44 98.99 99.92 98.79C93.25 98.64 89.61 102.81 90.26 103.72C90.56 104.15 91.58 103.96 93.14 103.73C101.64 102.41 106.8 107.59 108.04 113.02C108.06 113.11 108.39 114.56 108.38 115.56C108.45 116.44 108.35 117.32 108.22 118.12C107.22 123.74 100.77 124.8 96.62 129.27C92.9 133.31 93.63 138.49 95.97 140.98C98.78 143.75 102.8 142.74 102.75 141.7599999999999C102.75 141.24 101.78 140.8499999999999 100.58 140.0199999999999C99.02 138.9199999999999 98.81 137.8599999999999 99.21 136.0399999999999C99.47 135.0399999999999 99.92 134.3899999999999 100.89 133.6199999999999C104.37 130.8599999999999 113.74 128.9199999999999 115.44 119.4899999999999zM328.31 200.96C330.89 200.56 332.5300000000001 197.37 331.98 193.83C331.43 190.29 328.8900000000001 187.75 326.31 188.16C323.73 188.56 322.09 191.75 322.64 195.29C323.2 198.82 325.73 201.36 328.31 200.96zM299.98 190.65C301.4000000000001 193.24 305.42 193.76 308.9700000000001 191.81C312.5200000000001 189.87 314.24 186.19 312.8300000000001 183.61C311.4100000000001 181.0200000000001 307.3900000000001 180.5 303.8400000000001 182.45C300.29 184.39 298.5600000000001 188.06 299.98 190.65z" />
    +    <glyph glyph-name="mandalorian"
    +      unicode="&#xF50F;"
    +      horiz-adv-x="390.88" d=" M203.28 -63.89C202.3 -60.63 201.59 -48.06 201.89 -39.31C202.44 -23.42 202.87 -14.59 203.29 -10.55C203.93 -4.35 206.16 10.17 206.57 10.83C207.17 11.79 206.97 38.7 206.33 43.96C206.02 46.54 205.7 55.86 205.64 64.69C205.51 81.16 205.11 84.81 202.91 89.45C201.81 91.77 201.68 93.29 201.92 100.88C202.08 105.69 201.92 111.41 201.58 113.59C199.53 126.56 198.12 141.29 198.33 147.49C198.54 153.61 198.76 154.6399999999999 200.39 157.16C203.44 161.87 206.9 171.2 209.01 180.43C211.27 190.29 212.89 197.61 213.6 201.17C214.49 205.59 216.03 210.89 217.96 216.22C220.2300000000001 222.47 220.4500000000001 231.61 218.3300000000001 231.61C218.03 231.61 216.9500000000001 230.39 215.9200000000001 228.9C214.8900000000001 227.41 211.1600000000001 224.0999999999999 207.6300000000001 221.5399999999999C199.2600000000001 215.4599999999999 195.9300000000001 212.1499999999999 194.9700000000001 208.9599999999999C194.0400000000001 205.8499999999999 193.9500000000001 201.7299999999999 194.8100000000001 201.1999999999999C195.1500000000001 200.9899999999999 196.1000000000001 198.7999999999999 196.9200000000001 196.3199999999999C198.5400000000001 191.44 198.7900000000001 186.1999999999999 197.6400000000001 180.9599999999999C197.2500000000001 179.19 196.5900000000001 175.4899999999999 196.1800000000001 172.7299999999999C195.7700000000001 169.9699999999999 195.2000000000001 166.2699999999999 194.9300000000001 164.5099999999999C194.6500000000001 162.7499999999999 193.9600000000001 160.8299999999999 193.3800000000001 160.2499999999999C192.4200000000001 159.2899999999999 192.2400000000001 159.3399999999999 191.3300000000001 160.7799999999999C190.78 161.6499999999999 190.1300000000001 163.7899999999999 189.8900000000001 165.5299999999999C189.6400000000001 167.2699999999999 188.2600000000001 172.6399999999999 186.81 177.4599999999999C183.53 188.3599999999999 183.29 193.6099999999999 185.85 198.4199999999999C186.77 200.1499999999999 187.52 202.2299999999999 187.52 203.0299999999999C187.52 205.4199999999999 185.32 208.3499999999999 180.11 212.9199999999999C173.06 219.0999999999999 171.48 220.8399999999999 169.88 224.2199999999999C168.17 227.8199999999999 166.82 228.2799999999999 165.34 225.7599999999999C163.56 222.7499999999999 162.7400000000001 216.6499999999999 162.37 203.7399999999999L162.0200000000001 191.6099999999999L163.97 189.3599999999999C167.18 185.6599999999999 176.04 172.9099999999999 177.75 169.5299999999999C181.16 162.7899999999999 182.09 157.8399999999999 182.16 145.9699999999999C182.23 134.13 183.11 123.2199999999999 184.16 121.2599999999999C184.5200000000001 120.5999999999999 184.67 119.9099999999999 184.5 119.74C184.3300000000001 119.5699999999999 184.91 117.65 185.79 115.47C186.67 113.29 187.6 109.2499999999999 187.85 106.49C188.1 103.73 188.87 99.06 189.56 96.12C191.79 86.56 192.3300000000001 82.04 191.95 75.98C191.75 72.71 191.42 64.91 191.22 58.66C189.91 16.9 189.37 0.68 189.18 -2.55C189.06 -4.57 188.7900000000001 -14.06 188.5800000000001 -23.62C188.22 -39.92 187.28 -50.99 186.1600000000001 -52.27C185.5200000000001 -53 178.0900000000001 -47.36 173.6400000000001 -42.78C169.8900000000001 -38.91 169.62 -37.9899999999999 170.81 -32.83C171.51 -29.82 173.07 -14.54 174.1400000000001 -0.21C174.5000000000001 4.57 174.9500000000001 10.29 175.15 12.5C175.9800000000001 21.87 176.81 32.85 177.7600000000001 47.28C178.3200000000001 55.74 179.0900000000001 63.72 179.4800000000001 65.01C179.8600000000001 66.3 180.37 74.9 180.6100000000001 84.12L181.0400000000001 100.89L178.7800000000001 105.19C177.0600000000001 108.47 173.9100000000001 112.13 165.5600000000001 120.53C159.5300000000001 126.6 153.7200000000001 132.83 152.6500000000001 134.38L150.7000000000001 137.19L151.4500000000001 148.09C152.5400000000001 163.8 152.5500000000001 196.66 151.4700000000001 207.15L150.5800000000001 215.85L147.3000000000001 220.37C141.4400000000001 228.45 141.5000000000001 228.12 141.0800000000001 253.64C140.9800000000001 259.71 140.7000000000001 265.14 140.4500000000001 265.7C139.6200000000001 267.57 137.4000000000001 268.36 131.9100000000001 268.75C123.0500000000001 269.37 120.9500000000001 270.65 108.0600000000001 283.3C101.9100000000001 289.3400000000001 95.7200000000001 295.27 94.3100000000001 296.49C91.5000000000001 298.91 91.5200000000001 298.48 93.7500000000001 306.12L95.1000000000001 310.77L93.4100000000001 313.81C92.4800000000001 315.48 91.3200000000001 317.32 90.8200000000001 317.88C89.4900000000001 319.39 85.3200000000001 328.77 84.8300000000001 331.37C84.5200000000001 333.03 84.7400000000001 334.04 85.7000000000001 335.27C87.9300000000001 338.13 89.1000000000001 340.95 90.1500000000001 346C92.4800000000001 357.19 97.8900000000001 372.0900000000001 100.7500000000001 375.2200000000001C103.9300000000001 378.69 108.4500000000001 376.27 110.1600000000001 370.19C111.5000000000001 365.4 111.5300000000001 360.4 110.2600000000001 351.64C109.7300000000001 347.96 109.2800000000001 342.9600000000001 109.2700000000001 340.53C109.2500000000001 336.52 109.4600000000001 335.8400000000001 111.5200000000001 333.14C114.8500000000001 328.77 119.2500000000001 325.73 126.7200000000001 322.62C128.4200000000001 321.9100000000001 130.5400000000001 320.63 131.4400000000001 319.77C142.6100000000001 309.05 150.0600000000001 303.5900000000001 154.3900000000001 302.92C159.5700000000001 302.12 162.3700000000001 298.38 164.4300000000001 289.5300000000001C165.7400000000001 283.88 168.4300000000001 278.3900000000001 169.8900000000001 278.3900000000001C170.4800000000001 278.3900000000001 171.9800000000001 279.0200000000001 173.2200000000001 279.7800000000001C175.2000000000001 281 175.4700000000001 281.51 175.4700000000001 283.9600000000001C175.4600000000001 287.6700000000001 174.3000000000001 298.0400000000001 173.4700000000001 301.8000000000001C173.1000000000001 303.4600000000001 172.6900000000001 305.86 172.5400000000001 307.1500000000001C172.4000000000001 308.4400000000001 171.9300000000001 311 171.5100000000001 312.8400000000001C168.9600000000001 324 167.8600000000001 328.3000000000001 167.4100000000001 328.8900000000001C165.8600000000001 330.9100000000001 163.3300000000001 339.0900000000001 162.4800000000001 344.8100000000001C160.8400000000001 355.92 158.5200000000001 359.04 149.5700000000001 362.2000000000001C144.9300000000001 363.8400000000001 140.6800000000001 366.3200000000001 136.2500000000001 369.98C135.1000000000001 370.9300000000001 132.2400000000001 373.2000000000001 129.9000000000001 375.04C127.5500000000001 376.87 125.4900000000001 378.5700000000001 125.3000000000001 378.8000000000001C125.1200000000001 379.0300000000001 123.9100000000001 379.9400000000001 122.6100000000001 380.8200000000001C116.3700000000001 385.04 113.7700000000001 387.8000000000001 111.3500000000001 392.7800000000001L108.9100000000001 397.8000000000001L108.6900000000001 410.7800000000001L108.4700000000001 423.7600000000001L115.3800000000001 430.3100000000001C119.3300000000001 434.0600000000001 123.8600000000001 437.6600000000001 125.9700000000001 438.7400000000001C129.2800000000001 440.4300000000001 130.4200000000001 440.6300000000001 137.3400000000001 440.79C145.8700000000001 440.98 147.4600000000001 440.7700000000001 149.0000000000001 439.23C150.5300000000001 437.7000000000001 150.3600000000001 432.8300000000001 148.7100000000001 430.73C147.9700000000001 429.79 147.3700000000001 428.7500000000001 147.3700000000001 428.4100000000001C147.3700000000001 427.8300000000001 144.7600000000001 423.5000000000001 141.9500000000001 419.4200000000001C141.2700000000001 418.4300000000001 139.8200000000001 414.0700000000001 139.5800000000001 412.6C160.0200000000001 399.2100000000001 161.1300000000002 408.8300000000001 153.6500000000001 383.6200000000001L165.0500000000001 381.0800000000001C168.1600000000002 389.74 171.5200000000001 398.3400000000001 173.6600000000002 407.3000000000001C173.9500000000001 414.9300000000001 161.6800000000002 411.49 158.2600000000001 415.98C155.9300000000001 421.9100000000001 161.3900000000001 430.1600000000001 164.3200000000001 435.1800000000001C165.9200000000001 437.5200000000001 170.9400000000002 439.8800000000001 173.1400000000001 439.3300000000001C174.0200000000001 439.11 177.3000000000001 439.6800000000001 180.5100000000001 440.61C183.6900000000002 441.5300000000001 187.0900000000002 442.29 188.0600000000002 442.29C189.0300000000002 442.29 191.7200000000002 442.8700000000001 194.0400000000001 443.5800000000001C197.6900000000002 444.6900000000001 198.5400000000001 444.7500000000001 200.3900000000001 443.98C201.5600000000001 443.5000000000001 204.1800000000001 442.8900000000001 206.2100000000001 442.6200000000001C208.2300000000001 442.36 210.9300000000001 441.5000000000001 212.2100000000001 440.7100000000001C213.4900000000001 439.92 215.7400000000001 438.9400000000001 217.2300000000001 438.54C219.7400000000001 437.86 220.2300000000001 437.9700000000001 224.2800000000002 440.2100000000001L228.6300000000002 442.61L239.3300000000002 443.0200000000001C249.7700000000001 443.42 250.1400000000002 443.4900000000001 254.5900000000001 445.7000000000001L259.1700000000002 448.0000000000001L261.6300000000001 446.5700000000001C263.3900000000001 445.55 264.7700000000001 443.8400000000001 266.4800000000002 440.5900000000001C268.8400000000002 436.0800000000001 268.8600000000002 436.0100000000001 267.8500000000002 433.2200000000001C266.9700000000002 430.7800000000001 266.9600000000002 429.92 267.7500000000001 426.8300000000001C268.2500000000001 424.8700000000001 269.2000000000001 422.2100000000001 269.8500000000002 420.92C270.5000000000001 419.6300000000001 271.0900000000002 417.8300000000001 271.1600000000002 416.9100000000001C271.4700000000002 412.5800000000001 271.1300000000002 411.61 268.7500000000001 409.99C266.5800000000001 408.5200000000001 261.7700000000001 402.0800000000001 261.7700000000001 400.6500000000001C261.7700000000001 400.3300000000001 261.2900000000001 398.9600000000001 260.7000000000001 397.62C255.6600000000001 386.11 253.9400000000001 384.0600000000001 246.4400000000001 380.6400000000001C237.2400000000001 376.4400000000001 234.1400000000001 375.4500000000001 230.2300000000001 375.4500000000001C227.1300000000001 375.4500000000001 226.2300000000001 375.2000000000001 225.6900000000001 374.1900000000001C225.3200000000001 373.5 223.4800000000001 371.8200000000001 221.6000000000001 370.48C219.5600000000001 369.0100000000001 217.8000000000001 367.1 217.2200000000001 365.7000000000001C216.6800000000001 364.42 215.5600000000001 363.11 214.7300000000001 362.79C213.9000000000001 362.4700000000001 212.7900000000001 361.7100000000001 212.2800000000001 361.0800000000001C211.7600000000001 360.4600000000001 208.6200000000001 358.04 205.2800000000001 355.7000000000001C201.9500000000001 353.36 198.4100000000001 350.6800000000001 197.4100000000001 349.7400000000001C196.4100000000001 348.8000000000001 195.3400000000001 348.0300000000001 195.0200000000001 348.0300000000001S193.7400000000001 347.2900000000001 192.8900000000001 346.3800000000001C191.5800000000001 344.9900000000001 191.4000000000001 344.2700000000001 191.7500000000002 341.7800000000001C191.9700000000002 340.1500000000001 192.6100000000002 337.5100000000001 193.1700000000001 335.9000000000001C194.4900000000001 332.1000000000001 194.4800000000001 328.0400000000001 193.1200000000001 325.3300000000001C191.6900000000001 322.4700000000001 192.2300000000001 318.6800000000001 194.4700000000001 315.7400000000001C196.4800000000001 313.1100000000001 196.6300000000001 311.1800000000001 195.1800000000001 306.9000000000001C194.5700000000001 305.1 194.1300000000001 301.4500000000001 194.1200000000001 297.9900000000001C194.1000000000001 293.1100000000001 194.3400000000001 291.7100000000001 195.5800000000001 289.6100000000001C196.7800000000001 287.5700000000001 197.4000000000001 287.1300000000001 198.8200000000001 287.2900000000001C200.8000000000001 287.5200000000001 201.1200000000002 288.3400000000001 203.5300000000002 299.4100000000001C205.7100000000002 309.4400000000001 207.2400000000002 311.3300000000001 217.2900000000001 316.4900000000001C220.2300000000001 318.0000000000001 224.7500000000002 320.4500000000001 227.3200000000002 321.9300000000001C229.9000000000002 323.4100000000001 234.1100000000002 325.6200000000001 236.6900000000002 326.8400000000001C243.3600000000002 330.0000000000001 247.7400000000002 333.3600000000001 251.9100000000002 338.5100000000001C259.0200000000002 347.3000000000001 261.8900000000002 354.7300000000001 264.7600000000002 371.8100000000001C265.3100000000002 375.0900000000001 266.1900000000002 377.4600000000001 267.6200000000002 379.5400000000001C268.9100000000002 381.4100000000001 269.9900000000002 384.1600000000001 270.5100000000002 386.8500000000001C271.5300000000002 392.1500000000001 273.3600000000002 395.9300000000001 276.0900000000002 398.3600000000001C280.7900000000002 402.5400000000001 282.0900000000002 399.4500000000001 280.6800000000001 387.4900000000001C280.2200000000002 383.6300000000001 279.5800000000001 377.1600000000001 279.2400000000001 373.1100000000001L278.6300000000001 365.7500000000001L283.0800000000001 361.6600000000001L287.5300000000001 357.5700000000001L287.6400000000001 349.1500000000001C287.7000000000001 344.5200000000001 288.1100000000002 339.6200000000001 288.5600000000001 338.2600000000001L289.3800000000001 335.7900000000001L282.9500000000001 329.5100000000001C274.4100000000001 321.1800000000001 270.0700000000001 315.5800000000001 266.1900000000001 307.9000000000001C264.4200000000002 304.4100000000001 262.4500000000001 300.7900000000001 261.8100000000001 299.8700000000001C259.6300000000001 296.7600000000001 255.3500000000001 286.8600000000001 253.0500000000002 279.6100000000001L250.7600000000002 272.3900000000001L243.7900000000002 265.9000000000001C239.9600000000001 262.3300000000001 235.8300000000002 258.6500000000001 234.6200000000002 257.7300000000001C231.5700000000002 255.4100000000001 230.3600000000002 252.5800000000001 230.3600000000002 247.7400000000001C230.3600000000002 244.7600000000001 230.7900000000002 242.7800000000001 231.9500000000002 240.4800000000001C232.8200000000002 238.7400000000001 233.7600000000002 236.5700000000001 234.0400000000002 235.6500000000001C234.3200000000002 234.7300000000001 235.0200000000002 233.4300000000001 235.6100000000002 232.7600000000001C237.0100000000002 231.1700000000001 237.5300000000002 216.6400000000001 236.4400000000002 209.5400000000001C235.7600000000002 205.0600000000001 232.8100000000002 197.5200000000001 231.7400000000002 197.5200000000001C229.9500000000002 197.5200000000001 227.6800000000002 188.2500000000001 226.6700000000002 176.7800000000001C226.4900000000002 174.7600000000001 226.0500000000002 170.8400000000001 225.6900000000002 168.0800000000001C225.3300000000002 165.3200000000001 224.7300000000002 158.1000000000001 224.3400000000002 152.0300000000001C223.5700000000002 139.8100000000001 224.1500000000002 133.2600000000001 226.3900000000002 128.8800000000001C229.8000000000002 122.1900000000001 226.9100000000002 116.1900000000001 215.3600000000002 106.0400000000001L211.3900000000002 102.5500000000001L211.4600000000002 97.3600000000001C211.5000000000002 94.5000000000001 212.0100000000002 90.5100000000001 212.6000000000002 88.4900000000001C217.2100000000002 72.5100000000001 217.3300000000002 71.5700000000001 216.9800000000002 51.3600000000001C216.5200000000002 24.9600000000002 216.7200000000002 11.0900000000001 217.6100000000002 7.2100000000002C218.0300000000002 5.3700000000002 218.5200000000002 2.2100000000002 218.6900000000002 0.1900000000002C218.8600000000002 -1.8299999999998 219.3500000000002 -5.1399999999998 219.7700000000002 -7.1699999999998C220.2400000000002 -9.4299999999998 220.5500000000002 -18.1899999999998 220.5600000000002 -29.9099999999999L220.5800000000002 -48.9699999999999L218.7700000000002 -51.5999999999998C216.0600000000002 -55.5099999999999 203.6600000000002 -65.1399999999999 203.2800000000002 -63.8899999999999zM232.81 -18.78C232.63 -18.48 232.48 -11.91 232.48 -4.19C232.48 9.87 231.59 23.35 230.22 30.26C229.82 32.28 229.41 39.96 229.32 47.32C229.17 59.25 227.92 71.69 226.68 73.7C226.02 74.77 223.66 91.36 223.65 95C223.64 99.23 224.67 101 228.93 104.13C233.07 107.17 233.79 107.27 234.41 104.85C234.69 103.75 235.86 99.23 237.01 94.8200000000001C240.94 79.7000000000001 241.15 78.5500000000001 241.06 73.08C240.96 67.3000000000001 240.93 66.9500000000001 239.32 55.35C238.34 48.28 238.15 42.96 238.28 26.92C238.45 7.52 237.64 -8.81 236.24 -14.35C235.53 -17.1299999999999 233.44 -19.83 232.81 -18.78zM161.82 18.8C161.58 19.18 160.81 24.04 160.09 29.59C159.37 35.15 158.6 40.0000000000001 158.36 40.3800000000001C158.13 40.7600000000001 157.68 43.6800000000001 157.37 46.8700000000001C157.06 50.0600000000001 156.46 54.33 156.04 56.3500000000001C155.05 61.1400000000001 152.69 75.7000000000001 152.62 77.4200000000001C152.59 78.1600000000001 152.28 81.4700000000001 151.92 84.7800000000001C151.25 90.9900000000001 151.08 112.4500000000001 151.7 113.0700000000001C152.66 114.0300000000001 158.33 110.3100000000001 163.03 105.6400000000001L168.31 100.3900000000001L167.8600000000001 93.9200000000001C167.6100000000001 90.3600000000001 167.2600000000001 83.6900000000001 167.0800000000001 79.0900000000001C166.9 74.4900000000001 166.59 69.2200000000001 166.4100000000001 67.3800000000001C166.2300000000001 65.5400000000001 165.8000000000001 58.0200000000001 165.4700000000001 50.6600000000001C164.6800000000001 33.2500000000001 163.5300000000001 19.3700000000001 162.8200000000001 18.6600000000001C162.5000000000001 18.3600000000001 162.0600000000001 18.4200000000001 161.8200000000001 18.8000000000001zM74.63 285.39C95.7 272.6 92.47 271.24 103.12 267.73C116.13 263.44 121.99 260.6 126.27 250.86C82.61 214.72 57.26 192.96 49.56 180.04C18.54 128.03 43.57 78.4499999999999 112.31 92.83C98.13 63.6 34.34 64.2 13.63 97.73C-11.05 137.68 -8.46 216.03 74.63 285.39zM285.42 106.37C342.08 99.49 367.74 144.11 331.96 195.6C331.96 195.6 305.09 224.94 267.68 263.56C270.66 279.01 277.17 295.68 298.25 317.38C387.45 253.87 390.25 175.77 390.7099999999999 168.02C394.9799999999999 97.44 312.05 76.9 285.4199999999999 106.37z" />
    +    <glyph glyph-name="markdown"
    +      unicode="&#xF60F;"
    +      horiz-adv-x="640" d=" M593.85 -4.92H46.15C20.7 -4.92 0 15.78 0 41.23V342.77C0 368.2200000000001 20.7 388.92 46.15 388.92H593.84C619.2900000000001 388.92 639.99 368.2200000000001 639.99 342.77V41.23C640 15.78 619.3 -4.92 593.85 -4.92zM153.85 87.38V207.38L215.39 130.46L276.93 207.38V87.38H338.4700000000001V296.62H276.93L215.39 219.7L153.85 296.62H92.31V87.39H153.85zM566.15 192H504.61V296.62H443.07V192H381.5299999999999L473.8399999999999 84.31L566.15 192z" />
    +    <glyph glyph-name="mastodon"
    +      unicode="&#xF4F6;"
    +      horiz-adv-x="417.8" d=" M417.8 268.9C417.8 366.1 354.1 394.6 354.1 394.6C291.6 423.3 125.6 423 63.7000000000001 394.6C63.7000000000001 394.6 0 366.1 0 268.9C0 153.2 -6.6 9.5 105.6 -20.2C146.1 -30.9 180.9 -33.2 208.9 -31.6C259.7000000000001 -28.8 288.2000000000001 -13.5 288.2000000000001 -13.5L286.5000000000001 23.4S250.2000000000001 12 209.4000000000001 13.3C169.0000000000001 14.6999999999999 126.4000000000001 17.6999999999999 119.8000000000001 67.3C119.2000000000001 71.6999999999999 118.9000000000001 76.3 118.9000000000001 81.1999999999999C204.5000000000001 60.3 277.5000000000001 72.0999999999999 297.6 74.4999999999999C353.7000000000001 81.1999999999999 402.6 115.8 408.8 147.4C418.6 197.2 417.8 268.9 417.8 268.9zM342.7000000000001 143.7H296.1V257.9C296.1 307.6 232.1 309.5 232.1 251V188.5H185.8V251C185.8 309.5 121.8 307.6 121.8 257.9V143.7H75.1C75.1 265.8 69.9 291.6 93.5 318.7C119.4 347.6 173.3 349.5 197.3 312.6L208.9 293.1L220.5 312.6C244.6 349.7 298.6 347.4 324.3 318.7C348 291.4 342.7 265.7 342.7 143.7z" />
    +    <glyph glyph-name="maxcdn"
    +      unicode="&#xF136;"
    +      horiz-adv-x="512" d=" M461.1 5.3H363.7000000000001L415.6 248C417.9000000000001 258.2 416.5 267.5 411.2000000000001 273.7C406.2000000000001 279.8 397.5000000000001 283.3 387.0000000000001 283.3H337.7000000000001L278.2000000000001 5.3H180.8000000000001L240.3000000000001 283.3H156.9L97.4 5.3H0L59.5 283.3L14.9 378.7H387C426.4 378.7 462.3 362.4 485.3 333.8C508.6 305.2 517.1 266.4 508.9 227.9L461.1 5.3z" />
    +    <glyph glyph-name="medapps"
    +      unicode="&#xF3C6;"
    +      horiz-adv-x="320" d=" M118.3 209.6C121.8 222.1 125.2 243.2 131.5 243.2C139.8 241.4 141.1 219.8 150.1 206.6C154.7 230.1 155.4 291.7 164.2 293.3C173.2 294 183.9 226.8 186.2 215.8C196.1 211.7 235.1 209.2 235.1 209.2C237 201.9 211.1 201.6 195.1 201.4C190.5 186.6 189.7 173.7 183.7 173.4C179 173.2 175.5 202.2 166.2 223L156.8 157.5C152.4 144.5 141.3 180 134.9 196.8C131.6 196.9 72.5 198.4 87.3 204.6L118.3 209.6zM228 0C249.2 0 249.2 32 228 32H92C70.8 32 70.8 0 92 0H228zM204 -64C225.2 -64 225.2 -32 204 -32H116C94.8 -32 94.8 -64 116 -64H204zM238.2 77.5C241.4 96.4 243.4 113.9 250.1 126.3C258 141 266.2 154.4 274.1 167.3C298.7000000000001 207.7 320 242.5 320 292.8C320 378.4 248.2 448 160 448S0 378.4 0 292.8C0 242.6 21.3 207.7 45.9 167.3C53.8 154.4 61.9 141 69.9 126.3C76.6 113.8 78.6 96.5 81.8 77.4C85.3 56.4 117.9 61.7000000000001 114.4 82.5000000000001C110.8 104.2000000000001 108.8 123.2000000000001 99.1 141.1000000000001C66.5 201.5 33 236.7 33 292.8C33 360.7 90 416 160 416S287 360.7 287 292.8C287 236.7 253.5 201.5 220.9 141.2000000000001C211.2 123.2000000000001 209.2 103.8000000000001 205.6 82.6C202.2 62 234.6 56.2 238.2 77.5z" />
    +    <glyph glyph-name="medium-m"
    +      unicode="&#xF3C7;"
    +      horiz-adv-x="512" d=" M71.5 305.7C72.1 311.6 69.8 317.5 65.4 321.5L20.3 375.9V384H160.5L268.9 146.3L364.2 384H497.9V375.9L459.3 338.9C455.9999999999999 336.4 454.3 332.2 454.9999999999999 328.1V56.1C454.3 52 455.9999999999999 47.8 459.3 45.3L496.9999999999999 8.3V0.2H307.3V8.3L346.4000000000001 46.2C350.2000000000001 50 350.2000000000001 51.2 350.2000000000001 57V276.8L241.5 0.9H226.8L100.4 276.8V91.9C99.3 84.1 101.9 76.3 107.4 70.7L158.2 9.1V0.9999999999999H14.2V8.9999999999999L65 70.7C70.4 76.3 72.9 84.2 71.5 91.9V305.7z" />
    +    <glyph glyph-name="medium"
    +      unicode="&#xF23A;"
    +      horiz-adv-x="448" d=" M0 416V-32H448V416H0zM372.2 309.9L348.2 286.9C346.1 285.3 345.1 282.7000000000001 345.5 280.2000000000001V110.9C345.1 108.3 346.1 105.7 348.2 104.2L371.7 81.2V76.1H253.7V81L278 104.6C280.4 107 280.4 107.7000000000001 280.4 111.3V248.2L212.8 76.6H203.7L125 248.2V133.2C124.3 128.4 126 123.5 129.4 120L161 81.7V76.6H71.2V81.7L102.8 120C106.2 123.5 107.7 128.4 106.9 133.2V266.2C107.3 269.9 105.9 273.5 103.1 276L75 309.9V315H162.3L229.7 167L289 314.9H372.2V309.9z" />
    +    <glyph glyph-name="medrt"
    +      unicode="&#xF3C8;"
    +      horiz-adv-x="544" d=" M113.7 192C113.7 70.2 197.6 -30.8 307.2 -49.1C288.5 -53.6 269 -56 249 -56C111.4 -56 0 55 0 192S111.4 440 248.9 440C269 440 288.5 437.6 307.1 433.1C197.5 414.8 113.7 313.8 113.7 192M411.1 91.7C333.4 36.3 231.5 44.2 170.7 106.3C176.2 92.2 183.4 78.6 192.4 65.8C254 -22.4 374.8 -43.5 462.0999999999999 18.8C549.3999999999999 81.1 570.1999999999999 203.1 508.5999999999999 291.4000000000001C499.5999999999999 304.3000000000001 489.2999999999999 315.7000000000001 478.0999999999999 325.6C515.4999999999999 246.8000000000001 488.7999999999999 147.1 411.0999999999999 91.7000000000001M192.2999999999999 335.7000000000001C190.8999999999999 334.7000000000001 189.5999999999999 333.6 188.2999999999999 332.6C252.5999999999999 350.4000000000001 324.2 328.6 367.2 272.1C402.8999999999999 225.1000000000001 410.0999999999999 165.5000000000001 391.5999999999999 114.1C448.2999999999999 170.3 459.1999999999999 256.2000000000001 413.8999999999999 315.9000000000001C363.8999999999999 381.4000000000001 264.8 390.3000000000001 192.2999999999999 335.7000000000001M296 224C291.6 224 288 227.6 288 232V272C288 276.4 284.4 280 280 280H232C227.6 280 224 276.4 224 272V232C224 227.6 220.4 224 216 224H176C171.6 224 168 220.4 168 216V168C168 163.6 171.6 160 176 160H216C220.4 160 224 156.4 224 152V112C224 107.6 227.6 104 232 104H280C284.4 104 288 107.6 288 112V152C288 156.4 291.6 160 296 160H336C340.4 160 344 163.6 344 168V216C344 220.4 340.4 224 336 224H296z" />
    +    <glyph glyph-name="meetup"
    +      unicode="&#xF2E0;"
    +      horiz-adv-x="512" d=" M99 33.7C100.1 28 96.7 22.6 91 21.4C85.6 20.3 80.1 23.7 79 29.4C77.9 34.8 81.3 40.5 86.7 41.7C92.1 42.9 97.8 39.4 99 33.7zM242.1 -37.7C235.8 -42.3000000000001 234.1 -51.1 238.4 -57.7C243 -64.3000000000001 251.8 -66 258.4 -61.4C264.7 -56.8 266.4 -48.0000000000001 261.8 -41.4C257.6 -34.9 248.7 -33.1 242.1 -37.7zM156.1 424.6C162.4 426 166.4 432.3 165 438.6C163.9 445.2 157.6 449.2 151.3 447.7C145 446.3 141 440 142.2 433.7C143.6 427.1 149.8 423.1 156.1 424.6zM34.4 221.7C24.4 228.6 10.7 226 3.8 215.7C-3.1 205.7 -0.5 191.7 9.5 184.8C19.5 177.7 33.2 180.2 40.1 190.5C47 200.9 44.4 214.6 34.4 221.7zM306.4 392.6C317 398.9 320.1 412.6 314.1 422.9C307.8 433.5 294.4 436.9 284.1 430.6S270.4 410.6 276.7 400C282.7 389.7 296.1 386.3 306.4 392.6zM115.3 334.6C123 340 124.7 350.6 119.6 358.3S103.9 367.7 96.5 362.6C88.8 357.2 87.1 346.6 92.2 338.9C97.3 331.1 107.8 329.4 115.3 334.6zM487.6 178.6C480.2 176.9 475.3 169.5 477 161.7000000000001C478.4 154.3000000000001 485.9 149.4 493.3 151.1C500.7 152.5 505.6 160 503.9 167.7000000000001C502.4 175.1 495.0000000000001 180.0000000000001 487.6 178.6zM527.3000000000001 235.4000000000001C526.2 241.1 520.7 244.5000000000001 515.3000000000001 243.4000000000001C509.6000000000001 242.3000000000001 506.2 236.5000000000001 507.3000000000001 230.8000000000001C508.4000000000001 225.4000000000001 513.9000000000001 221.7000000000001 519.6 222.8000000000001C525 224.3000000000001 528.7 229.7000000000001 527.3000000000001 235.4000000000001zM447 309.1C438.4 303.1 436.4 291.4 442.1 282.8C447.8 274.2 459.5 272.2 468.1 277.9C476.4 283.9 478.4 295.6 472.7 304.2C467.0000000000001 312.9 455.3000000000001 315.1 447.0000000000001 309.1zM440.7 169.7C467 126.6 455.8 69.7 414.4 40.6C397 28.3 377.3 22.9 357.5 23.5C345.5 -23.6 288.1 -41.1 252.4 -9.1C251.3 -10 249.8 -10.8 248.7 -12C209.6 -39.1 156.4 -29.4 129.3 10.3C119.6 24.6 114.7 40.9 114.2 57.2C48.8 68.1 24.2 151.2 73.1 196.9C44.8 243.8 73.7 304.3 126.5 311.8C151.6 378 234.1 409.4 290.1 366C357.5 388.3 426.4000000000001 336.6 421 264.9C462.1 252.3 473.8 198 440.7 169.7zM370.7 95.4C367.6 116 329.8 100 327.6 122.5C324.5 154.5 371.3 223.6 367.6 250.5C364.2 274.5 348.2 279.6 334.2 279.9C320.8 280.2000000000001 317.3 277.9 312.8 275.3C309.9000000000001 273.6 306.2 270.4 301.1 275.6C294.8 281.6 290 287.3 281.7000000000001 288.5C269.4000000000001 290.5 264.0000000000001 286.5 255.1000000000001 278.8000000000001C251.7000000000001 275.9000000000001 243.1000000000001 265.9000000000001 235.1000000000001 269.7000000000001C231.7000000000001 271.4000000000001 219.7000000000001 277.4000000000001 211.1000000000001 281.1C194.8000000000001 288.2000000000001 171.1000000000001 276.5000000000001 162.5000000000001 261.1C149.6000000000001 238.2000000000001 124.5000000000001 148.0000000000001 120.8000000000001 136.0000000000001C112.2000000000001 109.4 131.7000000000001 87.4 157.7000000000001 88.9C168.8000000000001 89.5000000000001 176.0000000000001 93.5000000000001 183.1000000000001 106.3C187.1000000000001 113.7 224.8000000000001 214 227.7000000000001 218.9C229.7000000000001 222.3 236.6000000000001 226.9 242.3000000000001 224C248.0000000000001 220.9 249.2000000000001 214.6 248.3000000000001 208.9C247.2000000000001 199.2 220.3000000000001 138 219.4 131.2C216 108.3 246.3000000000001 104.6 258.0000000000001 127.2C261.7000000000001 134.3 303.7000000000001 219.8 307.4000000000001 225.5C311.7000000000001 231.8 314.8 233.8 319.1 233.5C322.2000000000001 233.5 327.4000000000001 232.6 326.2000000000001 222.6C324.8000000000001 213.2 291.1 150.3 287.3000000000001 134.9C282.7000000000001 114.3 293.9000000000001 93.5 312.2000000000001 84.3C323.6 78.6 374.7000000000001 68.6 370.7000000000001 95.4zM376.4 3.1C366.1 -4.3 363.5 -18.9 370.7 -29.5000000000001C377.8 -40.1000000000001 392.1 -42.6000000000001 402.7 -35.5000000000001C413.3 -28.1000000000001 415.8 -13.5000000000001 408.7 -2.9C401.3 7.7 387 10.6 376.4 3.1z" />
    +    <glyph glyph-name="megaport"
    +      unicode="&#xF5A3;"
    +      horiz-adv-x="496" d=" M248 440C111.04 440 0 328.96 0 192C0 55.03 111.04 -56 248 -56C384.9600000000001 -56 496 55.03 496 192C496 328.96 384.96 440 248 440zM333.46 172.33L393.12 112.66V25.61L367.05 6.3799999999999L341 25.61V91.07L307.56 124.51L274.12 91.07V25.61L248 6.38L221.88 25.61V91.07L188.44 124.51L155 91.08V25.62L128.93 6.39L102.87 25.62V112.67L162.34 172.14V260L221.84 319.5V395.12L247.9 414.35L273.96 395.12V319.48L333.46 259.98M247.9 271.84L281.34 238.4V172L248 138.67L214.46 172.21V238.4100000000001L247.9 271.8400000000001z" />
    +    <glyph glyph-name="microsoft"
    +      unicode="&#xF3CA;"
    +      horiz-adv-x="448" d=" M0 416H214.6V201.4H0V416zM233.4 416H448V201.4H233.4V416zM0 182.6H214.6V-32H0V182.6zM233.4 182.6H448V-32H233.4V182.6z" />
    +    <glyph glyph-name="mix"
    +      unicode="&#xF3CB;"
    +      horiz-adv-x="448" d=" M0 384V35.1C0 -21.1 88 -23 88 35.1V273.7C95.9 326.6 176 324.1 176 267.2V91.9C176 34 272 33.9 272 91.9V208C277.3 262.7 360 260.5 360 203.7V179.9C360 120 448 123.3 448 179.9V384H0z" />
    +    <glyph glyph-name="mixcloud"
    +      unicode="&#xF289;"
    +      horiz-adv-x="640" d=" M424.43 228.271C416.124 313.273 344.135 380 256.919 380C184.653 380 120.695 333.4840000000001 97.714 265.926C43.169 257.897 1.084 211.104 1.084 154.344C1.084 92.046 51.752 41.378 114.327 41.378H403.9409999999999C456.2699999999999 41.378 498.9099999999999 83.74 498.9099999999999 136.071C498.9099999999999 181.202 466.7919999999999 219.134 424.4299999999999 228.271zM403.9410000000001 83.741H114.327C75.287 83.741 43.446 115.305 43.446 154.345S75.287 224.949 114.327 224.949C133.154 224.949 150.875 217.474 164.165 204.183C184.128 184.22 214.298 214.41 194.345 234.363C179.67 248.761 161.673 258.728 142.292 263.712C162.227 308.012 207.082 337.638 256.92 337.638C326.416 337.638 382.899 281.155 382.899 211.936C382.899 198.368 380.6840000000001 185.079 376.53 172.342C367.587 144.825 408.663 133.403 416.677 159.052C419.446 167.358 421.661 175.941 423.046 184.524C442.4269999999999 177.048 456.5479999999999 158.221 456.5479999999999 136.0709999999999C456.5479999999999 107.2759999999999 433.0129999999999 83.7409999999999 403.9409999999999 83.7409999999999zM639.01 136.071C639.01 92.047 626.273 49.6849999999999 601.908 13.414C597.755 7.322 591.11 4 584.188 4C567.871 4 557.061 22.826 566.745 36.949C586.126 66.298 596.648 100.631 596.648 136.071S586.1270000000001 205.844 566.745 234.9160000000001C551.09 257.747 586.106 282.1560000000001 601.908 258.4500000000001C626.274 222.457 639.01 180.0940000000001 639.01 136.071zM568.13 136.071C568.13 104.506 558.9929999999999 74.05 541.273 47.746C537.12 41.655 530.475 38.61 523.553 38.61C506.352 38.61 496.531 57.5889999999999 506.11 71.5579999999999C519.123 90.6619999999999 525.768 112.8129999999999 525.768 136.0709999999999C525.768 159.0519999999999 519.123 181.4789999999999 506.11 200.5829999999999C490.349 223.5689999999999 525.118 247.6779999999999 541.273 224.1179999999999C558.9920000000001 198.0919999999999 568.13 167.6349999999999 568.13 136.0709999999999z" />
    +    <glyph glyph-name="mizuni"
    +      unicode="&#xF3CC;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 328.9 0 192C0 55 111 -56 248 -56S496 55 496 192C496 328.9 385 440 248 440zM168 88.1C136.6 77.5 109.2 60.8 88 39.9V312C88 334.1 105.9 352 128 352S168 334.1 168 312V88.1zM288 98C275.1 100 261.8 101.1 248.2 101.1C234.4 101.1 221 100 208 98V312C208 334.1 225.9 352 248 352S288 334.1 288 312V98zM408 40.3C386.8 61.1 359.4 77.7 328 88.3V312C328 334.1 345.9 352 368 352S408 334.1 408 312V40.3z" />
    +    <glyph glyph-name="modx"
    +      unicode="&#xF285;"
    +      horiz-adv-x="448" d=" M356 206.2L392.7 182.5V-32L259.7 51.8L356 206.2zM440 373H226.3L203.3 335.2L356.8 238.7L440 373zM351 230.2L55.2 416V201.5L101.2 172.5L351 230.2zM97 153.8L8 11H221.7L346.7 211.5L97 153.8z" />
    +    <glyph glyph-name="monero"
    +      unicode="&#xF3D0;"
    +      horiz-adv-x="496" d=" M352 64H460.4C417 -7.9 338.1 -56 248 -56S79 -7.9 35.6 64H144V191.8L248 87L352 192V64zM88 112V320L247.4 160.6L408 320V112H482.8C491.3 137.1 496 164 496 192C496 329 385 440 248 440S0 329 0 192C0 164 4.6 137.1 13.2 112H88z" />
    +    <glyph glyph-name="napster"
    +      unicode="&#xF3D2;"
    +      horiz-adv-x="496" d=" M298.3 74.4C284.1 60.8 267 50.3 247.9 43.9C228.9 50.3 211.7 60.8 197.6 74.4H298.3zM342.3 274C362.3 290.9 385.9000000000001 303.2 411.9 310.2V149C411.9 -70.4 83.9 -68.6 83.9 148.7V310.3C109.8 303.4 133.5 290.7000000000001 153.4 273.9C210.2 313.9 285.9 313.8 342.3 274zM133.5 332.5C197.9 392.5 297.8 392.6 362.4 332.7C355.3 329.2 348.5 325.4 341.8 321.2C283.1 351.7 212.6 351.6 153.9 321.1C147.5999999999999 325.1 140 329.3 133.5 332.5zM43.8 354.8V285.5C-14.6 249 -14.6 164.4 43.9 127.2C70.3 -117.9 425.6 -113.1 451.5 125.7L451.8 127.4C510.5 163.7 510.7 249.1 452 285.6V354.8C434.7 354.3 418 351.8 401.9 347.4C319.9 438.9 176.4 438.9 94.4 347.3C78.1 351.7 61.3 354.3 43.8 354.8zM259.2 96S295.2 96.3 320.5 97.5C330.7 98 341.6 101.5 346 104C372.3 119.1 371.4 143.2 372.2 151.4C292.7 152 272.3 155.3 259.2 96zM123.7 151.3C124.5 143.1 123.6 119 149.9 103.9C154.3 101.4 165.1 97.9 175.4 97.4C200.7 96.3 236.7 95.9 236.7 95.9C223.5 155.3 203 152.0000000000001 123.7 151.3zM292.8 27.9C289.6 33.2 285.9 35.2 285.9 35.2C261.1 27.9 233.7 28.3 210 35.2C210 35.2 207.1 33.7 203.6 28.6C200.8 24.4999999999999 199.9 18.9999999999999 199.9 18.9999999999999C229 1.3999999999999 267 1.3999999999999 296.1 18.9999999999999C296 19.1 295.8 22.9999999999999 292.8 27.8999999999999z" />
    +    <glyph glyph-name="neos"
    +      unicode="&#xF612;"
    +      horiz-adv-x="456.38" d=" M387.44 -64H292.33L184.12 90.54V-0.5599999999999L97.69 -64H0V418.18L40.47 448H148.52L272.26 271.87V384.55L358.69 448H456.38V-13.5L387.44 -64zM10.77 412.73V-47.99L82.78 4.89V254.05L298.27 -53.64H383.06L435.4100000000001 -15.47H357.1400000000001L40.96 435.02L10.77 412.73zM93.31 -53.88L173.35 4.9V105.94L93.55 220.3V-0.64L20.97 -53.89H93.31zM52.63 437.23L363.23 -5.34H445.6V437.23H365.85V119.67L142.91 437.23H52.63zM283.0300000000001 256.35L355.04 153.54V432.07L283.0300000000001 379.11V256.35z" />
    +    <glyph glyph-name="nimblr"
    +      unicode="&#xF5A8;"
    +      horiz-adv-x="355.52" d=" M232.6 148.71C248.17 148.71 259.75 137.25 259.75 121.75C259.75 106.2 248.13 94.79 232.6 94.79C216.9 94.79 205.45 106.36 205.45 121.75C205.45 137.26 217.03 148.71 232.6 148.71zM99.01 121.75C99.01 137.36 110.69 148.71 126.16 148.71C141.73 148.71 153.31 137.25 153.31 121.75C153.31 106.34 141.84 94.79 126.16 94.79C110.72 94.79 99.01 106.1 99.01 121.75M177.76 289.05C143 289.05 75.45 269.23 45.25 221L0 448V112.52C0 14.87 79.61 -64 177.76 -64C276 -64 355.52 14.95 355.52 112.52C355.52 209.98 276.13 289.05 177.76 289.05zM177.76 -19.07C104.49 -19.07 45.25 39.83 45.25 112.52C45.25 185.2 104.49 244.11 177.76 244.11C251.03 244.11 310.27 185.2 310.27 112.52S251.02 -19.07 177.76 -19.07z" />
    +    <glyph glyph-name="nintendo-switch"
    +      unicode="&#xF418;"
    +      horiz-adv-x="448" d=" M95.9 414.5C51.3 406.5 15.4 373.5 4.1 330.1C0 314.4 -0.3 305.2 0.2 183.6C0.4 72 0.5 69.4 2.4 60.7C12.7 14.2 45.7 -18.9 92.7 -29.8C98.8 -31.2 106.6 -31.5 156.8 -31.7C208.7 -32.1 214.1 -32 215.5 -30.6C216.9 -29.2 217 -11.3 217 191.6C217 342.1 216.7 412.9000000000001 216.1 414.2000000000001C215.2 415.9000000000001 213.6 416 159.2 415.9000000000001C115 415.8 101.7 415.5 95.9 414.5zM179.8 191.9V4L142 4.5C107.2 4.9 103.5 5.1 96.5 6.8C66.6 14.5 44.5 37.5 38.2 67.5C36.2 76.9 36.2 307.6 38.1 316.8C43.7 342.9 61.8 364.5 86.1 374.2000000000001C98.3 379.1 104 379.7000000000001 143.7 379.8L179.6 379.9V191.9zM103.9 323.1C98.1 322 89.2 317.5 84.4 313.4C74.7 305 69.8 293 70.6 278.9C71 271.6 71.4 269.6 74.4 263.7C78.8 254.7 85.3 248.1 94.3 243.7C100.5 240.6 102.1 240.3 110.2 240C117.5 239.7 120.1 240 125 241.7C145.1 248.5 157.3 268 153.8 288.1C149.9 311.8 127.2 327.8 103.9 323.1zM262.1 415.4C261.7000000000001 415.1 261.5 314.6 261.5 191.9C261.5 -10.4 261.6 -30.9 263 -31.5C265.5 -32.4 337.5 -32.1 346.4 -31.1C384.1 -26.8 417.4 -3.9 435.4 30.1C437.7 34.4999999999999 440.8 41.8 442.4 46.3C448.2 63.6999999999999 448.1 59.1 448.1 192.4C448.1 298.8 447.9 314.7 446.6 321.4C437.4 369.7 400.5 406.2 352.1 414.5C345.6 415.6 335.6 415.8999999999999 303.3 415.8999999999999C280.9 416 262.4 415.7 262.1 415.3999999999999zM361.2000000000001 213.3C375.7000000000001 209.5 387.5000000000001 198.5 392.4000000000001 184.4C395.5000000000001 175.7 395.4000000000001 162.9 392.3 154.9C386.6 140.2 375.5 129.9 361.2 126.1C338 120.1 313.3 134.1 306.6 157.1C304.6 164.1 304.7 176 307 183.3C313.8999999999999 206 338 219.4 361.2 213.3z" />
    +    <glyph glyph-name="node-js"
    +      unicode="&#xF3D3;"
    +      horiz-adv-x="448" d=" M224 -60C217.3 -60 210.5 -58.2 204.6 -54.8L142.9 -18.3C133.7 -13.1 138.2 -11.3 141.2 -10.3C153.5 -6 156 -5.1 169.1 2.4C170.5 3.2 172.3 2.9 173.7 2L221.1 -26.1C222.8 -27.1 225.2 -27.1 226.8 -26.1L411.5 80.5C413.2 81.5 414.3 83.5 414.3 85.5V298.7C414.3 300.8 413.2 302.7 411.4000000000001 303.8L226.8 410.3C225.1 411.3 222.8 411.3 221.1 410.3L36.6 303.7C34.8 302.7 33.7 300.7 33.7 298.6V85.5C33.7 83.5 34.8 81.5 36.6 80.6L87.2 51.4C114.7 37.7 131.5 53.8 131.5 70.1V280.5C131.5 283.5 133.9 285.8 136.9 285.8H160.3C163.2 285.8 165.7 283.5 165.7 280.5V70C165.7 33.4 145.7 12.4 111 12.4C100.3 12.4 91.9 12.4 68.5 24L20.1 51.9C8.1 58.8 0.7 71.7 0.7 85.6V298.7C0.7 312.5 8.1 325.5 20.1 332.4L204.6 439C216.3 445.6 231.8 445.6 243.4 439L428.1 332.3C440.1 325.4 447.5 312.5 447.5 298.6V85.5C447.5 71.7 440.1 58.8 428.1 51.8L243.4 -54.8C237.5 -58.2 230.8 -60 224 -60zM373.1 150.1C373.1 190 346.1 200.6 289.4000000000001 208.1C232.0000000000001 215.7 226.2000000000001 219.6 226.2000000000001 233.0000000000001C226.2000000000001 244.1 231.1000000000001 258.9000000000001 273.6 258.9000000000001C311.5 258.9000000000001 325.5 250.7000000000001 331.3 225.1C331.8 222.7 334 220.9 336.5 220.9H360.5C362 220.9 363.4 221.5 364.4 222.6S365.9 225.2 365.8 226.7C362.1 270.8 332.8 291.3 273.6 291.3C220.9 291.3 189.5 269.1 189.5 231.8C189.5 191.4 220.8 180.2 271.3 175.2C331.8 169.3 336.5 160.4 336.5 148.5C336.5 127.9 319.8999999999999 119.1 281 119.1C232.1 119.1 221.4 131.4 217.8 155.7000000000001C217.4 158.3000000000001 215.2 160.2000000000001 212.5 160.2000000000001H188.5999999999999C185.5999999999999 160.2000000000001 183.2999999999999 157.8000000000001 183.2999999999999 154.9C183.2999999999999 123.8 200.1999999999999 86.7000000000001 281.0999999999999 86.7000000000001C339.4999999999999 86.8000000000001 373.0999999999999 109.9 373.0999999999999 150.1z" />
    +    <glyph glyph-name="node"
    +      unicode="&#xF419;"
    +      horiz-adv-x="640" d=" M316.3 -4C314.2 -4 312.1 -3.4 310.2 -2.4L291 9C288.1 10.6 289.5 11.2 290.5 11.5C294.3 12.8 295.1 13.1 299.2 15.5C299.6 15.7 300.2 15.6 300.6 15.4L315.4 6.6C315.9 6.3 316.7 6.3 317.2 6.6L375 40C375.5 40.3 375.9 40.9 375.9 41.6V108.3C375.9 109 375.6 109.6 375 109.9L317.2 143.2000000000001C316.7 143.5000000000001 316 143.5000000000001 315.4 143.2000000000001L257.6 109.9C257 109.6 256.7 108.9 256.7 108.3V41.6C256.7 41 257.1 40.4 257.6 40.1L273.4 31C282 26.7 287.3 31.8 287.3 36.8V102.7000000000001C287.3 103.6 288 104.4 289 104.4H296.3C297.2 104.4 298 103.7000000000001 298 102.7000000000001V36.8000000000001C298 25.3000000000001 291.8 18.8000000000001 280.8999999999999 18.8000000000001C277.5999999999999 18.8000000000001 274.8999999999999 18.8000000000001 267.5999999999999 22.4000000000001L252.3999999999999 31.1000000000001C248.7 33.3000000000001 246.3 37.3000000000001 246.3 41.6000000000001V108.3000000000001C246.3 112.6000000000001 248.6 116.7000000000001 252.3999999999999 118.8000000000001L310.2 152.2000000000001C313.8999999999999 154.3000000000001 318.7 154.3000000000001 322.3 152.2000000000001L380.1 118.8000000000001C383.8 116.6000000000001 386.2 112.6000000000001 386.2 108.3000000000001V41.6000000000001C386.2 37.3000000000001 383.9 33.2000000000001 380.1 31.1000000000001L322.3 -2.2999999999999C320.6 -3.3999999999999 318.5 -3.9999999999999 316.3 -3.9999999999999zM363 61.8C363 74.3 354.6 77.6 336.8 80C318.8 82.4 317 83.6 317 87.8C317 91.3 318.5 95.9 331.8 95.9C343.7 95.9 348.1 93.3 349.9000000000001 85.3C350.1 84.5 350.7000000000001 84 351.5000000000001 84H359.0000000000001C359.5000000000001 84 359.9000000000001 84.2 360.2000000000001 84.5C360.5000000000001 84.9 360.7000000000001 85.3 360.6 85.8C359.4000000000001 99.6 350.3 106 331.8 106C315.3 106 305.5 99 305.5 87.4C305.5 74.7 315.3 71.3 331.1 69.7C350 67.8 351.5 65.1 351.5 61.4C351.5 54.9 346.3 52.2 334.1 52.2C318.8 52.2 315.4000000000001 56 314.3 63.6C314.2 64.4 313.5 64.9999999999999 312.6 64.9999999999999H305.1C304.2000000000001 64.9999999999999 303.4000000000001 64.3 303.4000000000001 63.3C303.4000000000001 53.6 308.7000000000001 41.9999999999999 334.0000000000001 41.9999999999999C352.5000000000001 41.9999999999999 363.0000000000001 49.1999999999999 363.0000000000001 61.8zM417.5 111.9C417.5 105.8 412.5 100.8 406.4 100.8S395.3 105.8 395.3 111.9C395.3 118.2000000000001 400.5 123.0000000000001 406.4 123.0000000000001C412.4 123.1000000000001 417.5 118.2000000000001 417.5 111.9zM415.7 111.9C415.7 117.1 411.5 121.2000000000001 406.3 121.2000000000001C401.2 121.2000000000001 397 117.1 397 111.9C397 106.7000000000001 401.2 102.5000000000001 406.3 102.5000000000001C411.5 102.6000000000001 415.7 106.8000000000001 415.7 111.9zM411.2 105.7000000000001H408.6C408.5 106.3000000000001 408.1 109.5000000000001 408.1 109.6C407.9 110.3 407.7 110.7000000000001 406.8 110.7000000000001H404.6V105.7000000000001H402.2V118.2000000000001H406.5C408 118.2000000000001 410.9 118.2000000000001 410.9 114.9C410.9 112.6 409.4 112.1 408.5 111.8C410.2 111.7 410.3 110.6 410.6 109C410.7000000000001 108 410.9000000000001 106.3 411.2000000000001 105.7zM408.4 114.5000000000001C408.4 116.2000000000001 407.2 116.2000000000001 406.6 116.2000000000001H404.6V112.7000000000001H406.5C408.1 112.7000000000001 408.3999999999999 113.8000000000001 408.3999999999999 114.5000000000001zM137.3 257C137.3 259.7 135.9 262.1 133.6 263.4L72.3 298.7C71.3 299.3 70.1 299.6 68.9 299.7H68.3C67.1 299.7 66 299.3 64.9 298.7L3.7 263.4C1.4 262.1 0 259.6 0 257L0.1 162C0.1 160.7 0.8 159.5 1.9 158.8C3 158.1 4.4 158.1 5.6 158.8L42 179.7C44.3 181.1 45.7 183.5 45.7 186.1V230.5C45.7 233.1 47.1 235.6 49.4 236.9L64.9 245.8C66.1 246.5 67.3 246.8 68.6 246.8C69.9 246.8 71.2 246.5 72.3 245.8L87.8 236.9C90.1 235.6 91.5 233.1 91.5 230.5V186.1C91.5 183.5 92.9 181 95.2 179.7L131.6 158.8C132.7 158.1 134.2 158.1 135.3 158.8C136.4 159.4 137.1 160.7 137.1 162L137.3 257zM472.5 360.7V184.3C472.5 181.7 471.1 179.2 468.8 177.9L407.5 142.5000000000001C405.2 141.2000000000001 402.4 141.2000000000001 400.1 142.5000000000001L338.8 177.9C336.5 179.2000000000001 335.1 181.7000000000001 335.1 184.3V255.1C335.1 257.7000000000001 336.5 260.2000000000001 338.8 261.5L400.1 296.9000000000001C402.4000000000001 298.2000000000001 405.2000000000001 298.2000000000001 407.5 296.9000000000001L422.8 288.1C424.5 287.1 426.7 288.4000000000001 426.7 290.3V384.3C426.7 387.1 429.7 388.9000000000001 432.2 387.5L468.7 367.1C471 365.9000000000001 472.5 363.4000000000001 472.5 360.7000000000001zM426.5 231.8C426.5 232.5 426.1 233.1 425.6 233.4L404.6 245.6C404 245.9 403.3 245.9 402.7000000000001 245.6L381.7000000000001 233.4C381.1 233.1 380.8000000000001 232.5 380.8000000000001 231.8V207.5C380.8000000000001 206.8 381.2000000000001 206.2 381.7000000000001 205.9L402.7000000000001 193.8C403.3000000000001 193.5 404.0000000000001 193.5 404.5000000000001 193.8L425.5000000000001 205.9C426.1000000000001 206.2 426.4000000000001 206.8 426.4000000000001 207.5V231.8zM636.3 232.5C638.5999999999999 233.8 640 236.3 640 238.9V256C640 258.6 638.6 261.1 636.3 262.4L575.4 297.8C573.1 299.1 570.3 299.1 568 297.8L506.7 262.4C504.4 261.1 503 258.6 503 256V185.2C503 182.5 504.4 180.1 506.7 178.8L567.6 144.1C569.8000000000001 142.8 572.6 142.8 574.9 144.1L611.6999999999999 164.6C614.1999999999999 166 614.1999999999999 169.6 611.6999999999999 171L550 206.4C548.8 207.1 548.1 208.3 548.1 209.6V231.8C548.1 233.1 548.8000000000001 234.3 550 235L569.2 246.1C570.3000000000001 246.8 571.8000000000001 246.8 572.9000000000001 246.1L592.1000000000001 235C593.2000000000002 234.3 594.0000000000001 233.1 594.0000000000001 231.8V214.4C594.0000000000001 211.6 597.1000000000001 209.8 599.6000000000001 211.2L636.3000000000002 232.5zM559 229C558.6 228.7 558.3 228.3 558.3 227.8V214.2C558.3 213.7 558.5999999999999 213.2 559 213L570.8 206.2C571.1999999999999 205.9 571.8 205.9 572.1999999999999 206.2L584 213C584.4 213.3 584.7 213.7 584.7 214.2V227.8C584.7 228.3 584.4000000000001 228.8 584 229L572.2 235.8C571.8000000000001 236.1 571.2 236.1 570.8000000000001 235.8L559 229zM304.8 185.5V255.9C304.8 258.5 303.2 261 300.9000000000001 262.3L239.8000000000001 297.5C237.7000000000001 298.7 234.8000000000001 298.9 232.4000000000001 297.5L171.3000000000001 262.3C169 261 167.4 258.6 167.4 255.9V185.5C167.4 182.7 169.3000000000001 180.3 171.4 179.1L232.6 143.9C235.0000000000001 142.5000000000001 237.8 142.6 240.0000000000001 143.9L301 179.1C302.8 180.1 304.1 181.8 304.6 183.8C304.7000000000001 184.3 304.8 184.9 304.8 185.5zM230.5 310.4L229.7 309.9H230.8L230.5 310.4zM306.7 180.2000000000001L306.3 180.9V180.0000000000001L306.7 180.2000000000001z" />
    +    <glyph glyph-name="npm"
    +      unicode="&#xF3D4;"
    +      horiz-adv-x="576" d=" M288 160H256V224H288V160zM576 288V96H288V64H160V96H0V288H576zM160 256H32V128H96V224H128V128H160V256zM320 256H192V96H256V128H320V256zM544 256H352V128H416V224H448V128H480V224H512V128H544V256z" />
    +    <glyph glyph-name="ns8"
    +      unicode="&#xF3D5;"
    +      horiz-adv-x="640" d=" M187.1 288.1L152.9 174.4L98.4 288.1H49L0 128H44.9L76 234.5L126.6 128H183.5L232 288.1H187.1zM639.6 289C636.7 307 615.7 317.1 597.5 320.3C552.9 328.1 495.6 304 509 261.5V261.4C465.2 252.7 434.7 234.6 414.8 213.2C411.8 223 401.2 229.8 380.8 229.8H293.2000000000001C283.9000000000001 229.8 280.3000000000001 232.1 281.7000000000001 237.2C283.3000000000001 242.7 283.6 244 285.4000000000001 249.4C287.5000000000001 255.8 293.2000000000001 256.5 298.7000000000001 256.5H432.2000000000001L441.9000000000001 288C302.2000000000001 288 297.4000000000001 288.5 281.8000000000001 286.8C269.5000000000001 285.5 258.3000000000001 282 251.2000000000001 271.8C244.4000000000001 261.9 236.8000000000001 236.2 233.6000000000001 224.7C228.2000000000001 205.3 233.0000000000001 196.1 266.4000000000001 196.1H353.7000000000001C361.5000000000001 196.1 362.5000000000001 193.4 361.4000000000001 189.5C360.3000000000001 185.1 358.6000000000001 179.5 356.9000000000001 174.9C355.3000000000001 170.7 352.2000000000001 167.5 343.1000000000001 167.5H216.3L204.7 128C344.6 128 350 128.6 365.6 130.3C372.2000000000001 131 378.6 132.4 384.1 135.2C384.3 131.5 384.6 127.9 385.3 124.4C390.7 93.9 412.7 72.1 442.1 64.9C490.7 53 550.8000000000001 81.7 577.2 132.9C595.9000000000001 169.1 591.3000000000001 209.1 573.8000000000001 238.4H573.9000000000001C603.5000000000001 244.3 644.2 260.4 639.6000000000001 289zM530.7 184.3C524.8000000000001 154.8 494.1 136.5 469.1 140.4C438.2000000000001 145.2000000000001 430.6 179.9 455 205.2000000000001C471.2 222.0000000000001 500.2 229.2000000000001 523.5 232.1000000000001C530.2 218.0000000000001 533.8 200.1000000000001 530.7 184.3000000000001zM552.5 267.4C548.3 273.4 542.7 285.9 550 293.7000000000001C556.7 300.9 570.9 303.8 581.8 301.4C597.0999999999999 298 601.5 285.5 586.6999999999999 277C575.9999999999999 270.9 563.0999999999999 268.9 552.4999999999999 267.4z" />
    +    <glyph glyph-name="nutritionix"
    +      unicode="&#xF3D6;"
    +      horiz-adv-x="400" d=" M88 439.9S221.4 448.1 209 335.5C209 335.5 228.1 410.4 312 376.1C312 376.1 294.3 302.1 224 320.1C224 320.1 238.6 374.7 290.1 376.7C290.1 376.7 250.2 387 208 327.9C208 327.9 188.2 422.4 114.4 427.6C114.4 427.6 189.6 408.2 192 320.1C192 320 85.6 313.1 88 439.9zM400 124.3C400 75.8 390.3 28.9999999999999 368 -8.0000000000001C325.8 -38.9 263 -56.0000000000001 200 -56.0000000000001C137.1 -56.0000000000001 74.2 -38.9 32 -8.0000000000001C9.7 29 0 75.8 0 124.3C0 172.7 17.7 219 40 256C82.2 286.9 137.1 304.6 200 304.6C263 304.6 317.8 287 360 256C382.3 219 400 172.7 400 124.3zM120 20C120 35.5 107.5 48 92 48S64 35.5 64 20S76.5 -8 92 -8S120 4.5 120 20zM120 86.2C120 101.7 107.5 114.2 92 114.2S64 101.7 64 86.2S76.5 58.2 92 58.2S120 70.7 120 86.2zM120 152.4C120 167.9 107.5 180.4 92 180.4S64 167.9 64 152.4S76.5 124.4 92 124.4S120 136.9 120 152.4zM192 20C192 35.5 179.5 48 164 48S136 35.5 136 20S148.5 -8 164 -8S192 4.5 192 20zM192 86.2C192 101.7 179.5 114.2 164 114.2S136 101.7 136 86.2S148.5 58.2 164 58.2S192 70.7 192 86.2zM192 152.4C192 167.9 179.5 180.4 164 180.4S136 167.9 136 152.4S148.5 124.4 164 124.4S192 136.9 192 152.4zM264 20C264 35.5 251.5 48 236 48S208 35.5 208 20S220.5 -8 236 -8S264 4.5 264 20zM264 86.2C264 101.7 251.5 114.2 236 114.2S208 101.7 208 86.2S220.5 58.2 236 58.2S264 70.7 264 86.2zM264 152.4C264 167.9 251.5 180.4 236 180.4S208 167.9 208 152.4S220.5 124.4 236 124.4S264 136.9 264 152.4zM336 20C336 35.5 323.5 48 308 48S280 35.5 280 20S292.5 -8 308 -8S336 4.5 336 20zM336 86.2C336 101.7 323.5 114.2 308 114.2S280 101.7 280 86.2S292.5 58.2 308 58.2S336 70.7 336 86.2zM336 152.4C336 167.9 323.5 180.4 308 180.4S280 167.9 280 152.4S292.5 124.4 308 124.4S336 136.9 336 152.4zM360 192C355.2 214.3 352.6 228.9 344 248C305.2 267.9 253.5 280 200 280S94.8 267.9 56 248C47.2 228.5 44.8 214.1 40 192C82.2 199.9 138.7 206.8 200 206.8S317.8 199.9 360 192z" />
    +    <glyph glyph-name="odnoklassniki-square"
    +      unicode="&#xF264;"
    +      horiz-adv-x="448" d=" M184.2 270.9C184.2 293 202.1 310.9 224 310.9S263.8 293 263.8 270.9C263.8 248.9 245.9 231.1 224 231.1S184.2 249.0000000000001 184.2 270.9000000000001zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM142.9 270.9C142.9 226.3 179.3 190 224 190S305.1 226.2 305.1 270.9C305.1 315.7 268.7 352 224 352S142.9 315.8 142.9 270.9zM317.4 180.2C312.8 189.3 300.1 197 283.3 183.8C283.3 183.8 260.6 165.8 224 165.8S164.6999999999999 183.8 164.6999999999999 183.8C147.8999999999999 197 135.1999999999999 189.3 130.5999999999999 180.2C122.6999999999999 164.1 131.6999999999999 156.5 152 143.2C169.3 132.1 193.1999999999999 128 208.5999999999999 126.4L195.6999999999999 113.5C177.5 95.5 160.1999999999999 78 148 65.8C130.4 48.2 158.6999999999999 20 176.4 37.2L224.1 85.1C242.3 66.9 259.8 49.4 271.8 37.2C289.4 20 317.8 47.9 300.4 65.8L252.7 113.5L239.7 126.4C255.2 128 278.8 132.3 295.9 143.2C316.3 156.5 325.2 164.2 317.4 180.2z" />
    +    <glyph glyph-name="odnoklassniki"
    +      unicode="&#xF263;"
    +      horiz-adv-x="320" d=" M275.1 114C247.7 96.6 210 89.7 185.1 87.1L206 66.5L282.3 -9.8C310.2 -38.4 264.8 -83.1 236.6 -55.5C217.5 -36.1 189.5 -8.1 160.3 21.1L84 -55.4C55.8 -82.9 10.4 -37.8 38.6 -9.7C58 9.7 85.7 37.7 114.9 66.6L135.5 87.2000000000001C110.9 89.8000000000001 72.6 96.3000000000001 44.9 114.1C12.3 135.1 -2 147.4 10.6 173.1C18 187.7000000000001 38.3 200 65.2 178.8C65.2 178.8 101.5 149.9 160.1 149.9S255.0000000000001 178.8 255.0000000000001 178.8C281.9000000000001 199.9 302.1 187.7 309.6 173.1C322 147.4 307.7000000000001 135.1 275.1 114zM30.3 318.3C30.3 390 88.6 448 160 448S289.7 390 289.7 318.3C289.7 246.9 231.4 188.9 160 188.9S30.3 246.9 30.3 318.3zM96.3 318.3C96.3 283.2000000000001 124.9 254.6 160 254.6S223.7 283.2000000000001 223.7 318.3C223.7 353.7000000000001 195.1 382.3 160 382.3S96.3 353.7000000000001 96.3 318.3z" />
    +    <glyph glyph-name="old-republic"
    +      unicode="&#xF510;"
    +      horiz-adv-x="496" d=" M235.76 437.77C243.26 438.08 250.76 438.05 258.26 437.86C261.87 437.7200000000001 265.46 437.46 269.05 437.13C273.9700000000001 436.86 278.8400000000001 436.1 283.7200000000001 435.51C286.6500000000001 435.08 289.55 434.53 292.4700000000001 434.05C300.37 432.72 308.1400000000001 430.77 315.86 428.65C328.1 425.18 340.05 420.73 351.62 415.44C378.18 403.2 402.56 386.23 423.25 365.56C443.28 345.4700000000001 459.97 322.01 472.14 296.37C473.27 293.78 474.58 291.27 475.61 288.63C478.42 282.2 481 275.66 483.19 269C487.33 256.67 490.53 244.01 492.61 231.17C493.18 228.0300000000001 493.65 224.87 494.01 221.7C494.56 217.87 494.95 214.01 495.19 210.14C496.02 201.8 496.03 193.41 495.96 185.04C495.89 180.07 495.7 175.1 495.21 170.15C494.97 166.7700000000001 494.7 163.3900000000001 494.23 160.03C493.84 157.31 493.6 154.5700000000001 493.1199999999999 151.86C492.22 146.71 491.42 141.55 490.2499999999999 136.45C486.1499999999999 117.95 479.9499999999999 99.9 471.74 82.82C455.97 49.99 432.91 20.65 404.62 -2.3A246.503 246.503 0 0 0 347.7099999999999 -37.16C341.5 -39.84 335.25 -42.41 328.8399999999999 -44.57C325.33 -45.7300000000001 321.83 -46.95 318.2699999999999 -47.96C311.6499999999999 -49.84 304.9799999999999 -51.6 298.2299999999999 -52.96C293.5699999999999 -53.8700000000001 288.89 -54.6900000000001 284.2 -55.4400000000001C278.95 -56.1000000000001 273.7 -56.88 268.4099999999999 -57.1800000000001C261.7199999999999 -57.8400000000001 254.9999999999999 -58.02 248.2899999999999 -57.9900000000001C241.4699999999999 -58.02 234.6399999999999 -57.8700000000001 227.8399999999999 -57.2C224.5499999999999 -56.97 221.2699999999999 -56.7 218.0099999999999 -56.2500000000001C215.2899999999999 -55.8600000000001 212.5499999999999 -55.6200000000001 209.8399999999999 -55.14C205.7199999999999 -54.42 201.5899999999999 -53.77 197.4899999999999 -52.92C193.2399999999999 -51.98 188.9999999999999 -51.03 184.7999999999999 -49.9C176.1699999999999 -47.73 167.7199999999999 -44.89 159.3899999999999 -41.77C148.8999999999999 -37.65 138.5999999999999 -33.02 128.75 -27.52C126.61 -26.3700000000001 124.47 -25.23 122.4 -23.95C111.18 -17.3700000000001 100.54 -9.85 90.48 -1.6100000000001C55.8 26.8 29.07 64.8199999999999 14.13 107.0899999999999C11.04 115.8299999999999 8.42 124.7399999999999 6.33 133.7699999999999C4.85 139.93 3.81 146.19 2.75 152.43C2.35 154.78 2.14 157.16 1.8 159.5199999999999C1.2 163.4799999999999 1.05 167.4799999999999 0.63 171.4599999999999C-0.17 180.93 -0.08 190.4499999999999 0.12 199.9499999999999C0.26 203.4599999999999 0.46 206.9599999999999 0.82 210.4599999999999C1.13 213.6299999999999 1.28 216.8299999999999 1.74 219.9799999999999C2.15 222.7899999999999 2.39 225.63 2.9 228.42C3.6 232.36 4.2 236.32 5.02 240.2399999999999C8.45 256.76 13.49 272.9699999999999 20.28 288.42C21.43 291.3399999999999 22.87 294.14 24.14 297.01C32.19 313.7199999999999 42.04 329.57 53.63 344.07C73.63 369.45 98.73 390.75 126.9 406.54C134.4 410.69 142.06 414.5899999999999 149.97 417.9099999999999C165.7899999999999 424.7899999999999 182.38 429.86 199.28 433.2899999999999C202.7899999999999 433.9599999999999 206.3199999999999 434.5299999999999 209.84 435.14C212.46 435.61 215.12 435.8399999999999 217.75 436.2199999999999C221.28 436.75 224.8499999999999 436.8999999999999 228.4 437.26C230.86 437.5 233.31 437.62 235.76 437.7699999999999M244.4 413.36C235.17 413.26 225.97 412.37 216.83 411.13C209.53 410.05 202.3 408.5299999999999 195.12 406.83C181.21 403.33 167.64 398.49 154.66 392.41C144.2 387.42 134.07 381.7099999999999 124.48 375.19C120.3 372.2699999999999 116.08 369.39 112.14 366.16C107.06 362.19 102.16 357.99 97.46 353.57C94.95 351.33 92.65 348.87 90.24 346.51C62.02 317.7199999999999 41.8 281.12 32.74 241.82C30.7 233.38 29.2 224.7999999999999 28.3 216.1699999999999C27.2 207.2799999999999 26.86 198.3199999999999 26.89 189.37C27 182.23 27.27 175.09 28.11 168C28.73 160.88 29.98 153.8399999999999 31.31 146.8199999999999C32.3799999999999 142.17 33.3399999999999 137.5 34.64 132.9099999999999C40.93 109.5299999999999 51.14 87.2099999999999 64.71 67.1599999999999C73.35 54.1799999999999 83.49 42.2299999999999 94.69 31.3899999999999C110.97 15.5699999999999 129.74 2.3499999999999 150.03 -7.83C157.31 -11.35 164.69 -14.7 172.3 -17.46C177.34 -19.22 182.36 -21.03 187.52 -22.4400000000001C198.78 -25.6700000000001 210.29 -28.0400000000001 221.91 -29.5000000000001C224.82 -29.7900000000001 227.72 -30.1100000000001 230.63 -30.4C244.45 -31.48 258.37 -31.4 272.17 -29.97C276.62 -29.37 281.09 -28.98 285.52 -28.1900000000001C289.15 -27.52 292.8 -26.9400000000001 296.39 -26.09C300.52 -25.11 304.67 -24.18 308.75 -23.02C335.25 -15.6800000000001 360.33 -3.3100000000001 382.33 13.18C398.11 24.9999999999999 412.29 38.9399999999999 424.45 54.4599999999999C427.71 58.4799999999999 430.62 62.7699999999999 433.58 67.0099999999999C436.97 72.0699999999999 440.16 77.2599999999999 443.18 82.55C445.58 86.99 447.92 91.46 450.13 95.9999999999999C455.82 108.05 460.41 120.62 463.88 133.49C466.47 143.5 468.63 153.65 469.78 163.94C471.55 177.41 471.72 191.04 471.07 204.59C470.78 208.4799999999999 470.4 212.36 470.07 216.25C467.84 235.33 463.28 254.16 456.25 272.05C450.3 287.18 442.7200000000001 301.68 433.64 315.18C420.95 333.98 405.4 350.86 387.67 365.01C362.62 385.01 333.2 399.56 302.02 407.0899999999999C294.24 409.0199999999999 286.33 410.43 278.39 411.54C274.48 412.13 270.54 412.36 266.62 412.78C259.23 413.35 251.81 413.5 244.4 413.36zM139.26 364.4700000000001C152.56 373.36 167.34 379.85 182.56 384.65C179.39 382.88 176.12 381.27 173.03 379.36C161.82 372.68 151.51 364.46 142.65 354.87C135.85 347.44 129.89 339.14 125.64 329.98C122.35 323.12 120 315.79 118.78 308.27C117.85 303.42 117.48 298.4600000000001 117.61 293.52C117.74 279.86 122.05 266.44 128.9 254.7C134.82 244.48 142.53 235.37 151.26 227.4400000000001C156.11 223.08 161.5 219.35 166.21 214.84C168.47 212.65 170.7 210.4200000000001 172.64 207.93C175.26 204.62 177.53 200.94 178.63 196.8300000000001C179.53 193.81 179.29 190.6300000000001 179.32 187.5200000000001C179.34 183.42 179.28 179.3200000000001 179.35 175.22C179.49 171.68 179.33 168.1300000000001 179.46 164.59C179.54 162.21 179.48 159.8300000000001 179.51 157.4500000000001C179.67 151.6800000000001 179.57 145.9200000000001 179.66 140.15C179.7700000000001 137.24 179.68 134.3300000000001 179.79 131.41C179.82 129.78 179.92 128.1300000000001 179.76 126.5C178.85 126.38 177.94 126.32 177.03 126.34C166.04 126.34 155.15 128.97 145.0800000000001 133.27C139.0800000000001 135.97 133.2700000000001 139.16 127.9900000000001 143.1C122.2400000000001 147.29 116.9 152.06 112.2000000000001 157.41C105.6700000000001 164.65 100.22 172.8 95.58 181.36C94.5100000000001 183.3899999999999 93.3400000000001 185.38 92.4 187.48C91.24 190.12 89.78 192.62 88.73 195.3C84.68 204.98 82.16 215.24 80.65 225.61C80.16 230.05 79.56 234.49 79.45 238.96C78.75 254.69 80.29 270.51 84.12 285.78C86.24 293.93 88.89 301.9599999999999 92.43 309.61C98.75 323.81 107.77 336.79 118.73 347.8C125.01 354 131.8600000000001 359.64 139.2600000000001 364.47zM314.63 384.5900000000001C317.37 383.85 320.04 382.85 322.72 381.91C329.08 379.58 335.4 377.07 341.43 373.95C354.54 367.51 366.74 359.14 377.25 348.98C387.45 339.03 395.99 327.38 402.39 314.64C403.6699999999999 311.89 405.0299999999999 309.18 406.2 306.38C412.51 291.28 416.2 275.12 417.43 258.81C417.84 254.27 417.87 249.72 417.88 245.17C417.95 233.5300000000001 416.39 221.92 413.58 210.64C411.6099999999999 203.37 409.2299999999999 196.15 405.7199999999999 189.46C402.5399999999999 182.8200000000001 399.0399999999999 176.3 394.88 170.22C387.94 159.75 379.2799999999999 150.35 369.06 143C358.58 135.36 346.42 129.98 333.66 127.62C330.15 126.93 326.58 126.54 323 126.41C321.1499999999999 126.35 319.2799999999999 126.25 317.44 126.5100000000001C317.16 128.66 317.44 130.8200000000001 317.43 132.97C317.4 136.7000000000001 317.57 140.42 317.53 144.1400000000001C317.72 151.16 317.55 158.1900000000001 317.74 165.21C317.7699999999999 167.59 317.71 169.97 317.7699999999999 172.35C317.94 177.42 317.7299999999999 182.49 317.9099999999999 187.56C318.01 190.55 317.6699999999999 193.6 318.4199999999999 196.52C319.08 199.02 320.1999999999999 201.38 321.5099999999999 203.6C325.9699999999999 210.91 332.5699999999999 216.56 339.1899999999999 221.86C344.5699999999999 226.04 349.6599999999999 230.63 354.2099999999999 235.7C361.8899999999999 244.07 368.3799999999999 253.58 372.9899999999999 263.9700000000001C375.4899999999999 269.9000000000001 377.5099999999999 276.0700000000001 378.5399999999999 282.4300000000001C379.3999999999999 286.8000000000001 379.5999999999999 291.2600000000001 379.5499999999999 295.7000000000001C379.5299999999999 303.5500000000001 378.1499999999999 311.35 375.9099999999999 318.8700000000001C374.1599999999999 324.6000000000001 371.64 330.0500000000001 368.82 335.3200000000001C364.95 342.2500000000001 360.17 348.6300000000001 354.86 354.5200000000001C344.92 365.3700000000001 333.11 374.4600000000001 320.26 381.6200000000001C318.4099999999999 382.6400000000001 316.42 383.4400000000001 314.63 384.5900000000001zM213.83 326.14C214.81 327.32 215.82 328.4700000000001 216.95 329.52C216.34 328.59 215.68 327.71 215 326.84C211.9 322.96 209.46 318.53 207.97 313.78C207.1 310.51 206.29 307.18 206.24 303.78C206.17 301.26 206.16 298.7100000000001 206.56 296.2100000000001C207.69 288.5800000000001 210.89 281.36 215.33 275.0900000000001C217.33 272.39 219.58 269.82 222.25 267.76C223.87 266.49 225.78 265.67 227.59 264.71C230.7 263.03 233.91 261.48 236.66 259.23C239.33 257.14 241.21 253.9 241.06 250.44C241.05 176.77 241.06 103.1 241.05 29.42C241.05 28.0699999999999 240.97 26.72 241.09 25.3799999999999C241.22 23.8999999999999 241.91 22.55 242.56 21.23C243.42 19.5699999999999 244.34 17.89 245.74 16.61C246.59 15.84 247.71 15.21 248.89 15.3699999999999C250.39 15.5699999999999 251.55 16.72 252.34 17.9399999999999C253.3 19.4499999999999 254.02 21.1 254.62 22.79C255.38 24.92 255.06 27.21 255.16 29.42C255.3 33.4499999999999 255.14 37.48 255.3 41.5099999999999C255.33 47.3999999999999 255.33 53.2799999999999 255.36 59.17C255.5 62.79 255.39 66.41 255.47 70.03C255.62 74.06 255.45 78.09 255.61 82.12C255.64 88.11 255.64 94.1 255.68 100.0899999999999C255.82 103.7099999999999 255.7 107.3299999999999 255.79 110.9499999999999C255.93 114.88 255.77 118.81 255.93 122.7299999999999C255.96 128.7199999999999 255.96 134.7099999999999 255.99 140.6999999999999C256.15 144.6399999999999 255.98 148.5799999999999 256.18 152.5199999999999C256.4700000000001 151.0799999999999 256.31 149.5999999999999 256.4000000000001 148.1399999999999C256.5900000000001 144.5299999999999 256.8200000000001 140.9099999999999 257.1600000000001 137.3C257.48 133.86 257.6 130.41 258.0200000000001 126.98C258.3900000000001 123.88 258.5300000000001 120.7599999999999 258.9700000000001 117.67C259.54 113.58 259.8400000000001 109.46 260.5100000000001 105.3799999999999C261.9700000000001 96.3399999999999 263.3400000000001 87.2699999999999 265.6 78.3899999999999C266.73 73.5699999999999 268 68.7799999999999 269.6 64.0899999999999C272.1400000000001 56.1899999999999 275.3200000000001 48.4199999999999 279.9100000000001 41.4699999999999C281.6400000000001 38.8299999999999 283.7800000000001 36.4899999999999 286.0100000000001 34.2599999999999C286.2800000000001 34.0099999999999 286.5600000000001 33.7499999999999 286.8900000000001 33.55C287.4900000000001 33.3 288.2000000000001 33.62 288.5900000000001 34.12C289.3 34.9999999999999 289.7600000000001 36.0599999999999 290.29 37.05C294.3400000000001 44.85 298.4700000000001 52.61 302.63 60.36C303.33 61.67 304.07 62.98 305.19 63.97C306.94 65.54 309.03 66.66 311.17 67.6C314.05 68.82 317.07 69.79 320.2 70.02C326.78 70.64 333.31 69.27 339.76 68.17C343.45 67.59 347.16 66.9999999999999 350.89 66.7599999999999C354.63 66.6599999999999 358.37 66.7099999999999 362.1 67.0399999999999C370.65 67.9599999999999 379.09 69.9999999999999 387.04 73.2899999999999C392.34 75.5299999999999 397.5 78.1199999999999 402.35 81.2199999999999C413.81 88.4299999999999 423.81 97.7899999999999 432.39 108.2299999999999C433.56 109.6499999999999 434.64 111.1299999999999 435.85 112.5099999999999C434.65 109.2699999999999 433.18 106.1399999999999 431.69 103.0299999999999C430.44 100.1299999999999 428.85 97.4199999999999 427.42 94.6099999999998C422.26 84.9799999999999 416.4 75.6999999999998 409.67 67.0899999999999C405.64 61.8799999999999 401.14 57.0399999999999 396.34 52.5199999999999C389.7 46.4699999999999 382.27 41.1499999999999 373.91 37.7599999999999C365.7 34.3899999999999 356.6 33.1299999999999 347.82 34.4699999999999C344.26 35.0499999999998 340.81 36.1599999999999 337.41 37.3499999999999C334.62 38.3199999999999 332.02 39.7299999999999 329.38 41.0399999999999C325.95 42.7499999999998 322.74 44.8499999999999 319.67 47.1199999999998C322.38 44.0599999999998 325.36 41.2599999999998 328.37 38.5099999999998C332.64 34.7499999999998 337.11 31.1999999999998 342 28.2799999999998C345.98 25.8299999999998 350.29 23.8799999999998 354.84 22.7699999999998C356.3 22.3999999999998 357.8 22.3099999999998 359.29 22.1699999999998C358.04 21.0699999999998 356.66 20.1299999999998 355.3 19.1899999999998C345.69 12.6499999999998 335.29 7.3299999999998 324.61 2.7599999999998C303.75 -5.9400000000002 281.44 -11.2100000000003 258.87 -12.5800000000002C254.21 -12.8200000000002 249.55 -12.9400000000002 244.89 -12.9400000000002C239.91 -12.8300000000002 234.92 -12.8100000000002 229.97 -12.2900000000002C218.77 -11.5300000000003 207.68 -9.5600000000002 196.8 -6.8600000000002C186.45 -4.1500000000003 176.25 -0.7400000000002 166.5 3.6899999999998C157.7899999999999 7.5499999999998 149.38 12.1099999999998 141.5099999999999 17.4799999999998C139.6799999999999 18.7899999999998 137.7699999999999 20.0099999999998 136.1399999999999 21.5599999999998C142.7399999999999 22.7499999999998 149.1699999999999 24.9499999999998 155.13 28.0399999999998C160.87 30.8999999999998 166.12 34.6999999999998 170.7599999999999 39.1099999999998C173 41.2999999999998 175.0499999999999 43.6999999999998 176.9499999999999 46.1999999999998C173.5199999999999 44.0699999999998 170.0199999999999 42.0499999999998 166.3299999999999 40.4199999999998C161.9199999999999 38.2599999999998 157.2599999999999 36.6499999999998 152.5199999999999 35.3999999999998C146.7899999999999 33.8799999999998 140.7799999999999 33.6699999999998 134.9099999999999 34.2599999999998C126.7799999999999 35.2099999999998 119.0499999999999 38.5299999999998 112.3999999999999 43.2399999999998C108.0799999999999 46.1799999999998 104.1799999999999 49.6699999999998 100.4399999999999 53.2999999999998C90.5099999999999 63.4599999999999 82.2399999999999 75.1099999999998 74.7799999999999 87.1599999999999C70.8399999999999 93.4299999999998 67.2499999999999 99.9099999999999 63.6599999999999 106.3799999999999C62.6099999999999 108.4199999999999 61.5099999999999 110.4299999999999 60.4799999999999 112.4799999999999C63.3299999999999 109.5599999999999 66.0499999999999 106.5099999999999 68.9099999999999 103.5999999999999C77.8999999999999 94.6299999999999 87.4699999999999 86.1599999999999 98.0699999999999 79.1199999999999C105.6199999999999 74.2199999999999 113.7399999999999 69.8899999999999 122.6299999999999 68.0899999999999C125.7399999999999 67.3599999999999 128.9499999999999 67.6199999999999 132.0999999999999 67.2799999999999C134.8699999999999 66.9999999999999 137.6599999999999 67.0799999999999 140.4399999999999 66.9799999999999C145.4899999999999 66.9199999999999 150.5499999999999 66.9399999999999 155.5999999999999 67.1399999999999C159.2499999999999 67.3 162.8699999999999 67.8 166.4899999999999 68.2299999999999C168.5599999999999 68.4799999999999 170.5999999999999 68.9399999999999 172.6299999999999 69.4299999999999C176.5099999999999 70.3799999999999 180.7399999999999 70.3899999999999 184.4599999999999 68.8199999999999C189.2199999999999 66.9699999999999 192.8999999999999 63.1799999999999 195.8399999999999 59.1099999999999C197.9999999999999 56.0899999999999 199.8999999999999 52.8899999999999 201.4999999999999 49.5299999999999C202.6599999999999 47.0999999999999 203.9599999999999 44.7399999999999 205.0499999999999 42.2699999999999C206.0499999999999 40.0299999999999 207.1999999999999 37.8499999999999 208.4699999999999 35.7499999999999C209.1399999999999 34.73 209.8699999999999 33.6 211.0899999999999 33.1999999999999C212.1499999999999 33.9499999999999 212.7999999999999 35.11 213.3699999999999 36.2299999999999C215.4699999999999 40.3899999999999 216.7899999999999 44.8799999999999 218.2599999999999 49.2799999999999C220.2799999999999 55.8699999999999 222.0399999999999 62.5499999999999 223.4499999999999 69.2999999999999C225.6599999999999 78.5499999999999 226.6999999999999 88.0199999999999 227.9899999999999 97.4299999999999C228.5499999999999 101.4099999999999 228.8199999999999 105.4199999999999 229.2999999999999 109.3999999999999C230.1699999999999 120.0399999999999 231.1999999999999 130.6699999999999 231.5399999999999 141.3399999999999C231.6199999999999 143.1999999999999 231.7799999999999 145.0499999999999 231.7899999999999 146.9099999999999C231.7999999999999 151.2599999999999 232.0399999999999 155.5999999999999 232.0099999999999 159.9399999999999C231.9999999999999 162.3199999999999 231.9999999999999 164.6999999999999 232.0099999999999 167.0699999999999C232.0599999999999 172.1399999999999 231.8099999999999 177.2099999999999 231.7899999999999 182.2799999999999C231.5899999999999 188.8899999999999 231.0799999999999 195.4799999999999 230.4999999999999 202.0599999999999C229.7699999999999 207.9399999999999 228.9499999999999 213.8399999999999 227.3799999999999 219.5699999999999C225.3299999999999 227.3199999999999 221.7899999999999 234.5999999999999 217.5799999999999 241.3899999999999C214.4199999999999 246.4599999999999 210.7899999999999 251.2699999999999 206.4899999999999 255.4199999999999C202.6099999999999 259.2799999999999 197.9099999999999 262.4999999999999 192.5499999999999 263.8699999999999C191.0499999999999 264.2799999999999 189.4899999999999 264.3199999999998 187.9599999999999 264.5099999999998C188.0299999999999 267.4999999999999 188.6599999999999 270.4399999999999 189.2199999999999 273.3599999999998C190.8099999999999 281.0699999999998 193.0199999999999 288.6599999999999 195.9799999999999 295.9599999999998C197.4999999999999 299.9899999999998 199.3899999999999 303.8599999999998 201.3699999999998 307.6799999999999C204.8199999999998 314.2399999999998 208.9899999999999 320.4699999999998 213.8299999999999 326.1399999999998zM245.1 324.44C245.45 324.5 245.81 324.56 246.17 324.63C246.36 322.84 246.26 321.05 246.27 319.26V281.13C246.26 279.39 246.4 277.64 246.12 275.91C245.76 275.94 245.41 275.9600000000001 245.06 275.9600000000001C244.11 279.7100000000001 243.34 283.51 242.44 287.27C242.06 288.8 241.86 290.36 241.37 291.86C239.67 292.1 237.94 292.03 236.22 292.06C231.16 292.07 226.09 292.06 221.03 292.07C219.37 292.08 217.71 291.98 216.05 292.1C216.02 292.49 215.79 293.01 216.21 293.28C217.49 293.93 218.93 294.16 220.27 294.63C223.7 295.77 227.15 296.79 230.58 297.94C231.97 298.42 233.48 298.66 234.74 299.48C234.78 300.04 234.76 300.61 234.69 301.16C233.46 301.7100000000001 232.16 302.03 230.88 302.44C227.75 303.4700000000001 224.59 304.4 221.47 305.4600000000001C219.68 306.0800000000001 217.8 306.4600000000001 216.06 307.25C216.03 307.62 215.99 307.98 215.95 308.3400000000001C221.04 308.53 226.15 308.28 231.25 308.4600000000001C234.61 308.5900000000001 237.98 308.38 241.34 308.53C241.46 308.92 241.6 309.3 241.71 309.69C242.79 314.63 244.04 319.52 245.1 324.44zM251.07 324.64C251.43 324.5900000000001 251.79 324.52 252.15 324.44C253.13 320.5900000000001 253.88 316.68 254.86 312.83C255.2200000000001 311.41 255.42 309.95 255.89 308.56C258.42 308.38 260.9600000000001 308.57 263.5 308.51C268.6600000000001 308.39 273.83 308.39 278.99 308.44C279.75 308.45 280.51 308.41 281.27 308.36C281.23 308 281.2 307.64 281.17 307.28C279.35 306.45 277.39 306.03 275.5 305.39C271.7699999999999 304.16 268.0199999999999 303 264.2799999999999 301.82C263.7099999999999 301.65 263.1599999999999 301.4 262.6099999999999 301.18C262.4599999999999 300.63 262.4299999999999 300.06 262.4899999999999 299.49C263.3599999999999 299.01 264.3099999999999 298.68 265.2599999999999 298.4C270.1399999999999 296.88 274.9899999999999 295.26 279.8899999999999 293.8C280.2699999999999 293.67 280.6699999999999 293.53 281.0199999999999 293.31C281.4199999999999 293.04 281.2499999999999 292.52 281.1699999999999 292.13C279.5099999999998 292 277.8599999999999 292.1 276.1999999999998 292.09C271.0299999999998 292.08 265.8699999999999 292.1 260.6999999999998 292.08C259.0899999999998 292.05 257.4799999999998 292.1 255.8799999999998 291.87C255.3599999999998 290.2 255.1599999999999 288.45 254.7099999999999 286.76C253.7699999999999 283.19 253.1899999999999 279.52 252.1699999999999 275.98C251.8099999999999 275.97 251.4599999999999 275.9599999999999 251.1099999999999 275.92C250.8199999999999 277.65 250.9599999999999 279.4 250.9599999999999 281.14V319.27C250.9799999999999 321.05 250.8799999999998 322.85 251.0699999999999 324.64zM65.05 279.67C66.17 281.82 67.13 284.07 68.42 286.13C66.6 278.57 65.51 270.86 64.8 263.13C64 255.42 63.95 247.64 64.26 239.9C65.31 219.96 69.8 200.07 78.49 182.02C81.48 176.03 84.84 170.19 88.99 164.91C95.11 157.44 101.52 150.15 108.83 143.82C113.63 139.72 118.82 136.04 124.37 133.02C127.64 131.37 130.88 129.63 134.31 128.34C139.32 126.31 144.5 124.73 149.73 123.4C153.56 122.44 157.51 121.99 161.25 120.69C166.25 119.12 170.72 116.08 174.28 112.26C179.21 107.03 182.37 100.39 184.48 93.59C185.47 90.69 186.07 87.68 186.65 84.67C186.8 83.92 186.87 83.15 186.81 82.3799999999999C180.31 79.6 173.55 77.3199999999999 166.55 76.1999999999999C162.44 75.42 158.26 75.2099999999999 154.09 75.12C143.84 74.8799999999999 133.62 76.8799999999999 123.97 80.24C120.23 81.66 116.48 83.09 112.94 84.96C104.88 88.8 97.3 93.66 90.48 99.42C87.56 101.97 84.65 104.55 82.08 107.4499999999999C72.92 117.2799999999999 65.78 128.86 60.29 141.0999999999999C57.9 146.6499999999999 55.68 152.2799999999999 53.92 158.0599999999999C52.75 161.9999999999999 51.56 165.9499999999999 50.66 169.9699999999999C49.91 172.9099999999999 49.44 175.9199999999999 48.79 178.8899999999999C48.33 181.0299999999999 48.1 183.2099999999999 47.76 185.37C46.91 190.8 46.48 196.3 46.43 201.8C46.54 207.98 46.68 214.17 47.5 220.3C47.9 223.16 48.17 226.04 48.65 228.9C49.63 234.6 50.79 240.27 52.36 245.83C55.45 257.48 59.84 268.78 65.05 279.67zM428.7800000000001 286.11C429.8800000000001 284.45 430.6900000000001 282.63 431.56 280.85C433.6600000000001 276.4 435.8 271.95 437.58 267.36C445.19 248.6 449.88 228.57 450.62 208.31C450.64 206.55 450.69 204.79 450.73 203.02C450.86 193.45 449.4600000000001 183.93 447.55 174.57C446.82 170.98 446.01 167.4 444.9700000000001 163.88C440.93 149.16 434.9700000000001 134.88 426.56 122.1C418.35 109.53 407.55 98.55 394.7200000000001 90.69C388.99 87.1 382.93 84.05 376.67 81.5C370.8900000000001 79.31 364.9600000000001 77.47 358.87 76.39C352.4700000000001 75.34 345.96 74.87 339.4700000000001 75.16C331.55 75.64 323.6900000000001 77.23 316.2600000000001 80.01C314.3200000000001 80.81 312.3200000000001 81.47 310.4200000000001 82.34C310.2100000000001 83.85 310.6700000000001 85.33 310.9500000000001 86.8C312.1100000000001 92.54 313.98 98.16 316.6500000000001 103.3799999999999C319.0200000000001 107.8899999999999 322.17 112.0299999999999 326.11 115.2799999999999C328.54 117.3299999999999 331.35 118.8899999999999 334.2700000000001 120.1099999999999C337.85 121.6099999999999 341.7400000000001 122.0799999999999 345.5100000000001 122.9399999999999C352.7400000000001 124.6499999999999 359.8800000000001 126.8699999999999 366.6600000000001 129.9399999999999C377.0100000000001 134.5899999999999 386.37 141.3199999999999 394.31 149.3999999999999C395.9 151.0099999999999 397.54 152.5799999999999 399.05 154.2699999999999C402.42 158.0299999999999 405.76 161.8399999999999 408.9000000000001 165.7999999999999C416.3800000000001 175.8699999999998 421.7200000000001 187.3899999999998 425.61 199.2799999999998C427.19 204.5799999999999 428.82 209.8799999999998 429.82 215.3299999999999C430.45 218.1999999999999 430.86 221.1099999999999 431.34 224.0099999999999C432.21 230.0999999999999 432.93 236.2299999999999 433.02 242.3899999999999C433.14 249.0399999999999 433.16 255.7099999999999 432.49 262.3299999999998C431.76 270.3199999999998 430.62 278.2899999999999 428.7800000000001 286.1099999999999z" />
    +    <glyph glyph-name="opencart"
    +      unicode="&#xF23D;"
    +      horiz-adv-x="640" d=" M423.3 7.3C423.3 -18 403 -38.3 377.7 -38.3S331.9 -18 331.9 7.3S352.5 53.1 377.7 53.1C403.1 53.1 423.3 32.6 423.3 7.3zM169.4 53.1C144.1 53.1 123.8 32.5 123.8 7.3S144.1 -38.3 169.4 -38.3S215.2 -18 215.2 7.3S194.7 53.1 169.4 53.1zM461.1 323.1C158.9 323.1 81.9 335.9 0 422.3C34.4 370.6 53.3 273.4 373.1 278.1C706.4000000000001 283.1 503.1 192 443.9000000000001 89.2000000000001C630.6 255.9000000000001 763.3 323.1 461.1 323.1z" />
    +    <glyph glyph-name="openid"
    +      unicode="&#xF19B;"
    +      horiz-adv-x="448" d=" M271.5 16L203.5 -16C88.5 -5.7 0 55.5 0 129.8C0 201.3 82.5 260.8 191.7 274.1V231.1C120.2 218.6 67.7 178.1 67.7 129.8C67.7 78.8 126.2 36.5 203.4 26.8V366.8L271.4 400V16zM448 157L316.7 185.5L353.5 206.2C334 217.7 310 226.2 283.5 231V274C329.7 268.5 371.2 254.5 403.8 234.7L438.8 254.5L448 157z" />
    +    <glyph glyph-name="opera"
    +      unicode="&#xF26A;"
    +      horiz-adv-x="496" d=" M313.9 415.3C143.7 415.3 61.3 191.5 166.4 60.2C202.9 14.8 255 -15.4 313.9 -15.4C350.2 -15.4 384.2 -4.3 413.3 15C369.5 -24.2 311.4 -48 248 -48C244.1 -48 240 -48 236.1 -47.7C104.6 -41.6 0 66.9 0 200C0 337 111 448 248 448H248.8C311.9000000000001 447.7 369.5 423.9 413.2000000000001 384.9C384.2000000000001 404.3 350.1 415.3 313.9000000000001 415.3zM415.7 17.6C374.8 -7.1 325 -6 283.7 23.4C339.9 43.9 381.4 115 381.4 200C381.4 284.7000000000001 340.2 355.8000000000001 284 376.6C325.8 405.8 375.2 406.9000000000001 416.9 381.6C522.8 282.9000000000001 522.4 115.9 415.7 17.6z" />
    +    <glyph glyph-name="optin-monster"
    +      unicode="&#xF23C;"
    +      horiz-adv-x="576" d=" M550.671 -2.303C550.671 -13.923 534.998 -21.76 518.513 -17.166C506.353 -13.923 487.167 0.399 482.302 10.128C476.628 21.748 486.356 42.826 501.218 40.934C516.892 39.313 550.671 15.533 550.671 -2.3030000000001zM372.86 372.777C369.077 444.928 272.064 452.495 246.932 396.2870000000001C291.5200000000001 420.608 337.189 411.9600000000001 372.86 372.777zM74.795 40.934C59.122 39.313 25.343 15.533 25.343 -2.303C25.343 -13.923 41.016 -21.76 57.5 -17.166C69.66 -13.923 88.576 0.399 93.44 10.128C99.386 21.748 89.658 42.826 74.795 40.934zM572.56 26.612C573.641 23.099 574.452 19.586 574.452 15.803C575.262 -15.813 530.135 -48.242 500.949 -49.322C483.654 -50.132 466.359 -40.945 458.253 -25.812C344.7560000000001 -29.865 231.2590000000001 -30.676 118.033 -25.812C109.656 -40.945 92.361 -49.862 75.066 -49.322C46.151 -48.241 1.023 -15.813 1.563 15.803C1.833 19.586 2.374 23.099 3.455 26.612C-2.111 36.075 -1.39 41.894 8.86 38.232C12.103 43.366 15.886 47.6900000000001 19.94 52.014C17.37 62.931 21.21 66.108 31.019 61.202C35.613 64.445 41.017 67.687 46.963 70.39C46.963 86.147 58.802 81.521 64.258 76.065C76.725 77.845 84.387 75.356 91.011 70.39V90.116C78.024 90.116 50.37 101.491 45.071 126.328C40.097 147.053 47.678 164.403 70.203 173.888C71.013 179.833 78.31 187.94 85.065 189.832C92.632 191.724 97.496 185.238 99.117 179.563C106.542 179.563 116.874 178.098 120.195 171.456C125.6 171.997 131.274 172.808 136.679 173.348C134.2470000000001 175.24 131.545 176.861 128.572 177.942C123.438 186.859 114.79 189.021 103.981 189.562C103.981 190.372 103.981 191.183 104.251 192.264C84.524 192.805 60.203 197.939 49.394 210.099C28.073 233.737 33.459 293.6760000000001 61.554 313.5970000000001C69.931 319.2720000000001 83.172 314.408 84.253 303.8690000000001C86.678 283.271 84.652 277.0360000000001 110.465 277.927C118.572 285.7630000000001 127.22 292.519 136.948 297.9240000000001C122.086 299.2760000000001 108.034 296.303 93.17 294.1410000000001C105.922 306.6210000000001 117.123 319.5830000000001 149.918 336.5680000000001C173.429 348.4580000000001 199.911 357.3760000000001 226.123 359.807C207.477 367.6440000000001 186.13 371.6980000000001 166.402 376.2910000000001C242.877 392.5050000000001 340.971 398.4500000000001 410.691 338.7290000000001C428.796 323.326 443.118 302.5180000000001 453.3869999999999 278.7370000000001C493.1859999999999 273.884 489.857 284.3180000000001 492.03 303.8690000000001C493.111 314.1380000000001 506.352 319.2720000000001 514.7289999999999 313.3270000000001C529.5909999999999 302.7880000000001 536.8879999999999 282.5210000000001 539.319 265.2260000000001C541.481 247.3910000000001 539.5889999999999 223.8810000000001 526.889 210.0990000000001C516.08 197.9390000000001 492.569 192.5340000000001 473.113 191.994V189.2910000000001C462.033 189.0210000000001 452.845 186.859 447.44 177.6710000000001C444.468 176.59 441.766 174.9680000000001 439.063 173.0770000000001C444.738 172.537 450.413 171.7260000000001 455.818 171.186C457.687 176.8050000000001 468.353 179.5630000000001 476.895 179.5630000000001C478.516 184.968 483.651 191.453 490.947 189.8320000000001S504.999 179.8340000000001 505.81 173.888C516.619 169.564 527.969 161.728 530.941 148.216C532.8330000000001 140.109 532.562 133.083 531.211 126.328C525.485 101.066 497.85 90.116 485.272 90.116C485.272 83.36 485.272 76.8750000000001 485.002 70.39C493.012 76.3960000000001 501.369 77.5480000000001 511.754 76.0650000000001C517.673 81.984 529.3190000000001 85.4750000000001 529.3190000000001 70.39C534.994 67.6870000000001 540.6680000000001 64.4450000000001 545.263 61.2020000000001C555.363 66.253 558.932 61.741 556.072 52.0140000000001C560.125 47.6910000000001 564.179 43.0970000000001 567.151 38.2320000000001C577.2869999999999 41.8520000000001 578.1719999999999 36.1540000000001 572.56 26.6120000000001zM498.7869999999999 280.6280000000001C516.0819999999999 273.872 524.9989999999999 258.4690000000001 529.0519999999999 244.9580000000001C530.1329999999999 255.497 526.3499999999999 284.4110000000001 515.2699999999999 296.0310000000001C507.9739999999999 303.327 501.2179999999998 301.165 501.2179999999998 295.221C501.2189999999998 289.005 499.8679999999998 283.601 498.7869999999999 280.6280000000001zM480.1409999999999 268.198C493.1119999999999 252.525 497.1649999999999 226.583 492.8409999999999 205.235C503.6499999999999 207.397 513.3779999999999 211.45 519.0529999999999 217.395C520.9449999999999 219.557 522.8359999999999 222.259 523.9169999999999 224.961C522.8359999999999 246.3090000000001 513.6479999999999 267.658 494.1919999999999 273.8730000000001C490.9499999999999 270.63 485.0049999999999 269.009 480.1409999999999 268.198zM458.2519999999999 267.387C465.8189999999999 246.85 470.6829999999999 224.691 472.5739999999999 202.802C476.0869999999999 202.802 480.1409999999999 203.072 484.1939999999999 203.613C490.1389999999999 227.9340000000001 483.9239999999999 255.2270000000001 470.1419999999999 267.117C466.3589999999999 267.117 462.0349999999999 267.117 458.2519999999999 267.3870000000001zM77.768 280.628C76.687 283.601 75.336 289.005 75.336 295.221C75.336 301.166 68.31 303.328 61.284 296.031C49.934 284.411 46.421 255.497 47.502 244.958C51.555 258.47 60.473 273.873 77.768 280.628zM83.443 205.234C79.119 226.582 83.173 252.525 96.144 268.197C91.279 269.008 85.335 270.629 82.092 273.872C62.635 267.657 53.717 246.309 52.366 224.96C53.717 222.258 55.338 219.556 57.23 217.394C62.905 211.179 72.633 207.396 83.443 205.234zM124.788 266.307C119.654 265.226 114.79 263.334 109.926 261.442L97.766 256.308V256.578C90.47 242.526 87.767 222.259 92.361 203.613C96.955 203.072 101.008 202.802 105.061 202.802C107.493 224.961 114.249 246.58 124.788 266.307zM212.883 289.546C212.883 247.391 247.202 213.341 289.088 213.341S365.293 247.391 365.293 289.546C365.293 331.432 330.974 365.481 289.088 365.481S212.883 331.432 212.883 289.546zM365.293 192.263C375.262 141.655 368.592 127.571 381.777 134.164C397.721 142.271 404.476 173.347 404.747 191.183C391.776 191.993 378.534 191.993 365.293 192.263zM293.682 192.804V193.074C293.4120000000001 187.94 293.952 154.971 298.0060000000001 151.999C309.0850000000001 146.594 337.4590000000001 147.405 349.079 150.918C354.484 152.5389999999999 351.511 187.94 350.7 192.804C331.784 193.074 312.598 193.074 293.682 192.804zM279.629 192.804V193.074C260.173 192.804 240.987 192.804 221.8 192.263C219.908 183.076 217.206 143.352 223.692 140.649C236.663 134.974 265.308 135.515 278.278 139.028C282.8730000000001 141.46 280.711 184.427 279.629 192.804zM193.967 135.244C199.372 132.812 202.614 132.812 203.695 139.568C205.587 148.215 206.127 176.32 208.56 191.723C196.4 191.453 183.969 190.912 171.808 190.102C166.403 170.375 172.078 144.973 193.967 135.244zM128.301 146.324C172.079 99.304 220.99 60.661 284.2240000000001 39.8539999999999C351.7820000000001 59.0399999999999 399.8830000000001 99.8449999999999 447.4430000000001 146.8649999999999C436.348 151.1799999999999 439.7280000000001 157.2279999999999 440.1470000000001 158.4849999999999C431.2290000000001 159.2949999999999 422.3120000000001 160.3769999999999 413.6640000000001 161.1869999999999C404.206 128.2189999999999 377.7240000000001 108.2219999999999 366.9140000000001 129.5709999999999C364.2120000000001 134.7049999999999 363.4010000000001 141.1909999999999 362.3200000000001 146.3249999999999C358.5370000000001 137.9479999999999 349.0780000000001 138.218 337.7290000000001 137.4069999999999C324.4880000000001 136.3259999999999 306.112 136.0559999999999 293.6810000000001 140.3789999999999C290.7090000000001 127.4079999999999 282.6020000000001 127.4079999999999 266.9290000000001 126.0569999999999C252.8770000000001 124.7049999999999 218.287 122.0029999999999 212.072 136.8659999999999C210.9910000000001 108.2219999999999 176.942 126.868 166.9430000000001 143.892C163.7000000000001 149.567 161.5380000000001 155.242 159.917 161.4569999999999C152.0800000000001 160.6469999999999 144.244 159.836 136.406 158.755C138.8490000000001 155.0919999999999 137.9550000000001 149.7029999999999 128.3010000000001 146.324zM115.6 -5.545C109.926 17.694 96.954 44.177 82.092 48.501C59.663 55.257 13.183 24.991 15.885 -6.085C28.586 -25.542 55.879 -41.755 75.066 -42.566C92.901 -43.376 111.006 -31.486 114.79 -13.652C115.329 -11.22 115.6 -8.518 115.6 -5.5450000000001zM122.896 0.399C156.405 19.856 192.075 36.07 228.827 47.419C190.184 67.956 160.729 95.25 131.544 124.435C129.382 123.083 126.41 122.003 123.708 120.922C122.071 116.012 132.426 115.5920000000001 129.113 108.491C126.951 104.4370000000001 120.465 100.924 113.98 99.3030000000001C111.819 96.6010000000001 108.846 94.4390000000001 106.144 92.818H105.874C105.604 79.307 105.604 65.794 106.144 52.283C115.083 36.319 121.57 18.969 122.896 0.399zM443.6600000000001 -12.301C406.908 9.047 369.6160000000001 29.044 328.0010000000001 40.664C314.2190000000001 34.449 300.168 29.315 285.846 25.261C283.6840000000001 24.45 283.6840000000001 24.45 281.522 25.261C269.632 29.044 258.283 33.3679999999999 246.663 38.502C206.398 26.8819999999999 169.377 9.317 134.247 -12.301H133.977V-12.571C134.247 -12.571 134.247 -12.571 134.247 -12.301C237.474 -16.355 340.702 -15.814 443.66 -12.301zM470.683 51.744L470.4130000000001 51.474C470.9540000000001 65.256 471.224 79.037 471.224 92.8190000000001C468.251 94.4400000000001 465.549 96.8730000000001 463.1170000000001 99.5750000000001C456.6320000000001 100.9260000000001 450.1460000000001 104.7090000000001 447.9840000000001 108.4930000000001C446.0920000000001 112.5460000000001 449.3350000000001 116.059 453.9290000000001 118.7620000000001C453.6590000000001 119.3030000000001 453.3880000000001 120.3830000000001 453.3880000000001 121.1940000000001C450.4160000000001 122.0050000000001 447.9830000000001 123.0860000000001 445.8210000000001 124.4370000000001C414.2050000000001 94.9820000000001 380.4250000000001 67.6880000000001 342.3230000000001 47.6910000000001C381.2370000000001 36.0710000000001 418.2580000000001 19.5870000000001 454.1980000000001 0.1300000000001C455.2480000000001 14.8220000000001 461.4290000000001 35.8790000000001 470.6830000000001 51.7440000000001zM493.9230000000001 48.5C479.33 44.177 466.0890000000001 17.694 460.414 -5.546C460.414 -29.372 481.6920000000001 -43.443 500.948 -42.568C520.134 -41.757 547.428 -25.544 560.129 -6.087C563.102 24.99 516.6220000000001 55.257 493.923 48.5zM290.709 313.867C290.754 313.867 290.798 313.8640000000001 290.843 313.8640000000001C290.889 313.8640000000001 290.933 313.867 290.9790000000001 313.867H290.7090000000001zM290.709 217.124C319.354 217.124 342.593 238.742 342.593 265.495C342.593 301.587 302.086 323.574 270.442 309.813C279.9000000000001 306.841 286.926 298.193 286.926 288.195C286.926 264.938 253.635 256.24 240.446 276.8450000000001C233.149 242.778 259.814 217.124 290.709 217.124zM68.039 -26.083C68.579 -32.569 80.199 -38.784 89.657 -35.5410000000001C96.413 -32.8380000000001 104.25 -25.0020000000001 106.952 -19.3270000000001C109.925 -12.301 105.871 0.67 97.224 -0.9520000000001C88.307 -2.573 67.499 -17.7060000000001 68.039 -26.0830000000001zM478.789 -0.952C470.412 0.669 466.358 -12.301 469.331 -19.327C471.763 -25.002 479.6 -32.838 486.626 -35.541C495.813 -38.784 507.704 -32.569 507.974 -26.083C508.785 -17.706 487.707 -2.573 478.789 -0.952z" />
    +    <glyph glyph-name="osi"
    +      unicode="&#xF41A;"
    +      horiz-adv-x="495.8" d=" M0 188.8C2.3 324.6 97.4 421.2 213.8 436.9C352.6 455.5 469.4 361.1 491.8 235.8C513.1 117 447.8 5.8 340.2000000000001 -38.2C330.9000000000001 -42 325.8000000000001 -39.9 322.2000000000001 -30.5C304.4000000000001 15.8 286.6 62.2 268.8000000000001 108.5C265.7000000000001 116.6 267.8000000000001 121.7 275.8000000000001 125.3C300.0000000000001 136.3 315.1000000000001 154.7 319.1000000000001 181.1C325.5000000000001 223.5 294.6000000000001 259.8 254.6000000000001 263.3C215.6000000000001 266.7000000000001 182.8000000000001 239.6 177.1000000000001 203.6C171.9000000000001 170.6 188.2000000000001 139.9 219.0000000000001 125.9C228.6000000000001 121.5000000000001 230.5000000000001 117.3 226.8000000000001 107.5000000000001C208.9000000000001 60.9 191.0000000000001 14.3000000000001 173.1000000000001 -32.4C170.5000000000001 -39.3 164.8000000000001 -41.7 157.6000000000001 -38.9C105.0000000000001 -18.6 56.2000000000001 22.1 26.8000000000001 80.1C1.9 129.3 1.6 167.8 0 188.8zM20.9 190.7C21.3 184.1 21.5 176.4 22.2 168.6C28.5 96.6999999999999 71.8 25.1 153.2 -14.5C156.4 -16 157.6 -15.3 158.8 -12.2C173.7 26.9 188.7 66 203.8 105.1C205.1 108.4 204.4 109.9 201.4 111.8C169.8 131.7 154.1 160.3 155.8 197.8C156.8 219.4 165.1 238.3 179.6 254.1C209.6 286.8 256.6 293.9000000000001 295.1 271.7000000000001C327 253.3 344.6 217.9 340.3 181.3C336.7 150.7 321 127.4 294.6 111.5C291.9000000000001 109.9 291.1 108.6 292.3 105.5C307.5 66.3 322.5 27.1 337.5 -12.2C338.7 -15.3 339.9 -16 343.1 -14.5C378.6 2.1 408.3 25.8 431.2000000000001 57.5C466.0000000000001 105.7 480.3000000000001 159.4 473.5000000000001 218.5C459.8 336 354.1 433.3 218 416.5C111.9 403.5 22.7 314 20.9 190.7z" />
    +    <glyph glyph-name="page4"
    +      unicode="&#xF3D7;"
    +      horiz-adv-x="496" d=" M248 -56C111 -56 0 55 0 192S111 440 248 440C268.9 440 289.3 437.4 308.7 432.5L42.3 56H248V-56zM248 87.6V301.2L98.6 87.6H248zM344 56V-36.7C389.7 -17.5 428.5 15 455.4 56H344zM401.4 194.2L380.2 185.8L401.4 177.5V194.2zM381.1 139.7C374.4 139.7 373.1 133.4 373.1 126.8V119.1H389.3V129.1C389.3 135 387 139.7000000000001 381.1 139.7000000000001zM496 192C496 154.7 487.8 119.3 473 87.6H344V420.7C433.3 383.2 496 294.9 496 192zM360.4 304.4H428.6V352H414.7V319.4H400.8V349H386.9000000000001V319.4H374.2000000000001V352H360.3000000000001V304.4zM428.5 119.1H402V130.1C402 145.5 396.4 155.3 381.1 155.3C365.7000000000001 155.3 360.4000000000001 144.7 360.4000000000001 129.4V104.1H428.6V119.1zM428.5 222.1L360.3 192.4V180L428.5 150.5V167.1L414.1 172.8V199.3L428.5 205.2V222.1zM423.7 290.6H388.1V264H402V276.2H413C421.6 260.4 414.3 240.9 394.4 240.9C371.9 240.9 366.1 266.2 378.9 278.6L367.3 289.2C351.1 271.7 355.1 225.3 394.4 225.3C428.4 225.3 439.1 261.2 423.7 290.6z" />
    +    <glyph glyph-name="pagelines"
    +      unicode="&#xF18C;"
    +      horiz-adv-x="384" d=" M384 135.3C328.9 -1.4 196.9 81.3 196.9 81.3C156.4 -0.5 89.5 -53.1 12.3 -53.4C-3.8 -53.4 -4.3 -29 12.3 -29C76.7 -28.7 132.8 13.7 169.5 81.1C128.4 65.2000000000001 50.9 53.2 7.9 163.3C116.9 208.2 167 152.1 186.2 117.8C196.1 142.2 203.2 168.7 207.8 197.5C207.8 197.5 68.1 175.6 58.3 295.6C177.4 343.5 210.9 218.9 210.9 218.9C212.5 235.6 214.2 271.5 214.2 272.3C214.2 272.3 107.9 346 176.1 437.5C300.7000000000001 394.5 237.5000000000001 275.1 237.5000000000001 275.1C238.0000000000001 273.5 238.0000000000001 251.3 237.5000000000001 241.7C237.5000000000001 241.7 282.7000000000001 330.7 373.9000000000001 299.2C369.7000000000001 165.1999999999999 232.0000000000001 192.8 232.0000000000001 192.8C227.6 165.4 220.8000000000001 139.4 212 115.3C212 115.3 295 207.1 384 135.3z" />
    +    <glyph glyph-name="palfed"
    +      unicode="&#xF3D8;"
    +      horiz-adv-x="576" d=" M384.9 254.1C384.9 301.5 329.7 298.3 289.5 283.9C288.2 244.5 287 203.2 286.5 164.1C287.2 161.3 289.1 157.9 301.6 157.9C338.4000000000001 157.9 385 200.7000000000001 384.9000000000001 254.1zM190.4 181.9C190.6 181.9 196.9 184.6 201.6 184.6C228.2 184.6 222.3 140.5 187.2 140.5C165.7 140.5 150.1 158.6 150.1 183.5C150.1 225.5 193 279.0999999999999 250.8 310C251.8 322.4 253.8 332 261.3 338.2C272.5 347.2 287.9 341.7 290.8 327.1C363 349.3 426 326.1 426 255.1C426 177.1999999999999 346.7 102.5 285.9 116.9C285.8 77.5 286.8 42.5 288.6 16.9V16.7C288.8 13.3 289.2 4.2 283.3 -2.4C273.7 -13.0000000000001 249.9 -12.4 246.9 19.9C242.8 64.3 247.1 226 248.3 262.4C226.8 247.4 189.8 212.1 189.8 186.5C190 184 190.2 182.5 190.4 181.9zM8 266.9S7.9 229.5 46.4 229.5H76.4L98.8 12.3S98.8 -32 143.5 -32H432.4S477.1 -31.6 477.1 12.3L499.4999999999999 229.5H529.5S567.9 228.3 567.9 266.9C567.9 266.9 568 304.3 529.5 304.3H499.4C492.1 329.9 469.2 378.6 380 378.6H352V397.7S349.3 416.1 330.9 416.1H245.1S224 416.1 224 397.7V378.6H195.9S90.9 374.4 75.4 304.3H46.4S8 305.5 8 266.9z" />
    +    <glyph glyph-name="patreon"
    +      unicode="&#xF3D9;"
    +      horiz-adv-x="512" d=" M512 253.2C512 151.9 429.6 69.4 328.2 69.4C226.5 69.4 143.8 151.8 143.8 253.2C143.8 354.8 226.5 437.5 328.2 437.5C429.6 437.5 512 354.8 512 253.2zM0 -53.5H90V437.5H0V-53.5z" />
    +    <glyph glyph-name="paypal"
    +      unicode="&#xF1ED;"
    +      horiz-adv-x="384" d=" M111.4 152.1C107.9 132.9 94 43.4 89.9 18.1C89.6 16.3 88.9 15.6 86.9 15.6H12.3C4.7 15.6 -0.8 22.2 0.2 29.5L58.8 401.4C60.3 411 68.9 418.3 78.8 418.3C231.1 418.3 243.9 422 282.8 406.9C342.9000000000001 383.6 348.4 327.4 326.8 266.6C305.3 204 254.3 177.1 186.7 176.3C143.3 175.6 117.2 183.3 111.4 152.1zM357.1 296C355.3 297.3 354.6 297.8 354.1 294.7C352.1 283.3 349 272.2 345.3 261.1C305.4000000000001 147.3 194.8 157.2 140.8 157.2C134.7 157.2 130.7 153.9 129.9 147.8C107.3 7.4 102.8 -21.9 102.8 -21.9C101.8 -29 106.3 -34.8 113.4 -34.8H176.9C185.5 -34.8 192.6 -28.4999999999999 194.3 -19.9C195 -14.5 193.2 -26 208.7 71.4C213.3 93.4 223 91.1 238.0000000000001 91.1C309 91.1 364.4000000000001 119.9 380.9000000000001 203.4C387.4000000000001 238.2000000000001 385.5000000000001 274.8000000000001 357.1 296z" />
    +    <glyph glyph-name="penny-arcade"
    +      unicode="&#xF704;"
    +      horiz-adv-x="640" d=" M421.9100000000001 283.73C417.42 264.28 420.5100000000001 277.67 406.81 218.44L446.54 229.05C424.2000000000001 278.6600000000001 429.25 267.4600000000001 421.9100000000001 283.73zM215.82 232.62C195.63 227.22 204.51 229.59 176.19 222.04L180.65 175.85C208.8200000000001 183.44 201.2700000000001 181.42 215.47 185.19C257.7700000000001 194.98 248.32 241.61 215.82 232.62zM541.98 258.81L496.51 358.01C490.82 370.38 477.05 376.85 463.89 373.3400000000001C393.62 354.5900000000001 425.17 363.02 328.3 337.11A27.618 27.618 0 0 1 309.41 319.7000000000001C144.26 334.73 0 294.25 0 221.33C0 187.8300000000001 30.67 154.22 80.9 125.96L82.64 108.08A27.891 27.891 0 0 1 64.87 79.41L69.17 34.93C70.56 20.62 82.6 9.72 96.97 9.73C102.15 9.74 93.96 7.95 219.5 41.49C232.07 44.86 240.62 56.51 240.08 69.51C456.67 24.01 642.0699999999999 75.49 639.97 154.34C639.98 182.49 617.78 220.9 541.98 258.81zM255.14 149.7L233.23 143.82L184.79 130.91L187.25 107.36L207.78 112.87L212.29 68.36L96.98 37.5799999999999L92.68 82.0999999999999L112.7 87.4499999999999L101.59 202.0899999999999L81.47 196.6999999999999L77.12 241.2C255.27 288.7399999999999 247.3 287.62 263.34 287.8499999999999C320 288.9799999999999 327.49 216.0099999999999 305.89 183.42A86.7 86.7 0 0 0 255.14 149.6999999999999zM454.32 133.08L450.43 172.57L465.33 176.55L458.72 191.23L400.96 175.81L396.86 158.27L416.06 163.39L420.11 123.85L307.26 93.78L302.8 138.21L323.79 143.8L356.87 270.27L339.7200000000001 265.7099999999999L335.5200000000001 310.19C428.8800000000001 335.18 400.5300000000001 327.5999999999999 471.11 346.43L537.78 200.96L558.5699999999999 206.52L562.8699999999999 162.04L454.3199999999999 133.08z" />
    +    <glyph glyph-name="periscope"
    +      unicode="&#xF3DA;"
    +      horiz-adv-x="448" d=" M370 384.4C331.4 425.4 280.5 448 226.6 448C111.9 448 18.5 351.8 18.5 233.6C18.5 158.5 76.3 73.8 101.2 40.9C137.8 -7.5 192.6 -64 226.6 -64C268.2 -64 339.5 30.2 347.5 41C372.1 74.1 429.5 159.3 429.5 233.6C429.5 290.1 408.4 343.7 370 384.4zM226.6 -45.9C184.1 -45.9 36.6 121.4 36.6 233.5C36.6 340.9 120.5 429.8 226.6 429.8C327.4 429.8 411.3 340.8 411.3 233.5C411.4 121.4 263.9 -45.9 226.6 -45.9zM338 241.2C338 182.1 286.9 131.5 227.2 131.5C126.6 131.5 76.5 239.7 134.3 313.3V312.9C134.3 288.4 154.4 268.5 179.1 268.5C203.8 268.5 223.9 288.4 223.9 312.9C223.9 331.1 212.8 346.7 197 353.6C273.6 372.8 338 314.3 338 241.2z" />
    +    <glyph glyph-name="phabricator"
    +      unicode="&#xF3DB;"
    +      horiz-adv-x="496" d=" M323 185.9L322.9 198.9S344.6 218.7 344 220.1L334.5 240.1C333.9 241.5 305 240.6 305 240.6L295.6 249.9S295.8 278.4 294.4000000000001 279L274.3 288.2C272.9000000000001 288.8 253.6 267.2 253.6 267.2L240.5000000000001 267.4S220 288.8 218.6 288.2L198.6 279.9C197.2 279.4 198.8 251 198.8 251L189.7 241.9S160.5 242.8 160 241.5L151.9 221.6999999999999C151.3000000000001 220.2999999999999 172.9 200.6999999999999 172.9 200.6999999999999L173 187.8S151.3000000000001 168 151.9 166.6L161.4 146.6C162 145.2 190.9 146.1 190.9 146.1L200.3000000000001 136.8S200.1000000000001 104.9999999999999 201.5 104.4999999999999L221.6 96.1999999999999C223 95.5999999999999 242.3 119.6999999999999 242.3 119.6999999999999L255.4 119.5S275.9 95.6999999999999 277.2 96.1999999999999L297.2 103.6999999999999C298.6 104.3 297 135.8 297 135.8L306.1 144.9S335.3 144 335.8 145.4L343.9000000000001 165.2C344.6 166.3 323.0000000000001 185.9 323.0000000000001 185.9zM278.1 194.6C278.8 177.5 265.3 163 248.0000000000001 162.2C230.7 161.4 215.9 174.7 215.2000000000001 191.8C214.5000000000001 208.9 228.0000000000001 223.4 245.3000000000001 224.1C262.6 224.9 277.4000000000001 211.6 278.1 194.6zM479.3 232.5L382.3 329.5L382.2 329.4C307.1 402.7 186.8 402.2 112.4 327.8C61.5 276.8 84.6 299.9 16.7 232.5C-5.6 210.2 -5.6 173.8 16.7 151.5C86.6 82.1 63.1 105.5 114.1 54.5L114.2 54.6C189.3 -18.7 309.6 -18.3 384 56.2C435 107.1 411.9 84.1 479.3 151.5000000000001C501.6 173.8000000000001 501.6 210.2000000000001 479.3 232.5000000000001zM140.4 84.2C80.8 143.7 80.8 240.2 140.4 299.7C199.9 359.3 296.4 359.2 356 299.7C415.5 240.2 415.6 143.7 356 84.1C296.4 24.6 200 24.7 140.4 84.2000000000001z" />
    +    <glyph glyph-name="phoenix-framework"
    +      unicode="&#xF3DC;"
    +      horiz-adv-x="640" d=" M212.9 103.7C216.7 103.8 235.7 105.1 238.5 105.9C236.1 108.5 194.9 106.9 170.5 155.5C166.2 164.1 163 173.1 164.1 183.1C167 208.6 197 213.1 216.1 201.6C252.1 180 279.4 110.3 329.8 104.1C366.8 99.6 414.4 121.1 438 149.5C437.4 149.6 437.2 149.7 437 149.6C436.6 149.5 436.2 149.4 435.9 149.3C402.6 137.2 341.6 139.6 301.2 164.1C263.6 186.9 248.1 222.8 249.4 238.7C251.2 260 272.3 261.9 285.3 258.3C299.7 254.4 309.7 240.7 324.2 230.9C339.8 220.5 357.0999999999999 217.2 375.5 220.6C390.3999999999999 223.3 409.8999999999999 232.9 412 235.1C410.8999999999999 235.2 410.2 235.2 409.5 235.3C403.3 235.9 397.1 236.1 391 237C279.8 253.5 262.1 400.6 138.5 410.1C94.2 413.5 39.1 402 2.2 375.1C1.4 374.5 0.7 373.9 0 373.3C0.1 373.1 0.1 373 0.2 372.8C1 372.8 1.8 372.9 2.6 373C8.9 374 15.1 373.8 21.3 372.7C45.1 368.4 69 349.6 77.2 296.2C82.5 261.9 76.5 245.4 85.2 210.1C104.2 133 176.2 102.5 212.9 103.7zM75.3 383.1C74.4 384.1 74.4 384.3 74 385.1C86.1 387.7 98.2 389.2 110.6 389.9C109.5 375.2 88.4 368.6 75.3 383.1zM272.2 32.6C229.4 31.4 180.2 59.3 148.7 94C144.1 99 131.9 114.2 130.1 117.4L130.5 117.8C137.1 113.6999999999999 156.2 99.1999999999999 185.3 90.8C209.5 83.8 233.4 84.4999999999999 256.9 94.1C279.6 103.4 297.9 94.6 300 91.2C281.5 87.4 279.9 86.8 276 83.3C270.9 78.9 271.4 71.6 283 66.1C309.2 53.7 346 68.9 380.2 40.7C382.6 38.7 388.3 32.9 390.3 30.0000000000001C390.2 29.8000000000001 390 29.7 389.9000000000001 29.5000000000001C385.1 31.0000000000001 373.5000000000001 37.0000000000001 349.7000000000001 38.8000000000001C325.0000000000001 40.8000000000001 303.4000000000001 33.5000000000001 272.2000000000001 32.6000000000001zM447 284.6C463.4 289.8 488.3 298 513.5 287.9000000000001C529.6 281.4000000000001 539.7 269.2000000000001 545.6 253.3000000000001C549.1 243.9000000000001 550.7 233.6000000000001 550.7 224.6000000000001C550.5 224.6000000000001 550.3000000000001 224.6000000000001 550.1 224.5000000000001C549.9 224.9000000000001 549.7 225.4000000000001 549.6 225.8000000000001C544.6 247.8000000000001 519.7 269.6000000000001 482 255.7000000000001C431.8 237.1000000000001 351.6 246.0000000000001 305.1 303.7000000000001C304.4000000000001 304.6000000000001 302.7000000000001 305.4000000000001 303.8 306.9000000000001C303.9000000000001 307.1 305.9000000000001 306.3000000000001 306.8 305.6C324.9000000000001 292.2000000000001 345.1 283.7000000000001 367.1 279.4000000000001C397.6 273.3000000000001 421.7000000000001 276.5000000000001 447 284.6zM549.7 167.1C517.3000000000001 166.9 515.9000000000001 117 446.1 102.7000000000001C427.9000000000001 99.0000000000001 407.4000000000001 98.1 401.2000000000001 98.5000000000001V98.9C404.0000000000001 100.4 415.9000000000001 101.5000000000001 430.9000000000001 115.5000000000001C438.8 122.8000000000001 446.2000000000001 130.6000000000001 453.7 138.4C473.2 158.6 495.1 180.6 535.6 177.4C558.7 175.6 564.9 169.2000000000001 571.7 164.7000000000001C572 164.5000000000001 572.1 164.2000000000001 572.4000000000001 163.8000000000001C571.9000000000001 163.8000000000001 571.7 163.7000000000001 571.5000000000001 163.8000000000001C564.5000000000001 166.5000000000001 557.2000000000002 167.1000000000001 549.7000000000002 167.1000000000001zM537.4000000000001 191.2000000000001C537.3000000000001 191.0000000000001 537.3000000000001 190.8000000000001 537.2 190.6C508.3000000000001 195 489.2 198.5 468.7 186.6C451.7 176.7000000000001 437.3000000000001 166.1 406.7000000000001 162.2000000000001C379.6 158.8000000000001 361.6 159.8000000000001 340.6 170.2000000000001C340.3 170.4 340 170.6 339.6 170.8000000000001C339.6 171.0000000000001 339.7000000000001 171.1000000000001 339.7000000000001 171.3000000000001C364.6 167.5000000000001 376.1 166.2000000000001 395.2000000000001 177.1000000000001C417.5000000000001 190.0000000000001 435.3000000000001 203.7000000000001 466.5000000000001 208.1000000000001C496.1000000000001 212.2000000000001 517.8000000000001 205.6000000000001 537.4000000000001 191.2000000000001zM268.6 350.7C268 351.3 267.5 351.9 266.5 353C274.1 353 296.2 354.2 319.9 344.6C339.6 336.6 352.1 323.6 370.1 311.7C381.2 304.4 393.5 302.4 406.5 303.6C410.8 304 415 304.8 419.3 305.3C419.7 305.4 420.2 305.3 420.8 305C420.2 304.6 419.6 304.1 419 303.8C410.8999999999999 299.8 402.3 297.5 393.3999999999999 296.7C367.2999999999999 294.1 343.0999999999999 300.4 319.9999999999999 312.1C300.6999999999999 322 283.5999999999999 335 268.5999999999999 350.7zM640 112.3C636.5 109.2 617.3 100.7 597.3 107C585 110.9 577.8 121.9 565.6999999999999 131.1C555.6999999999999 138.7000000000001 544.8 139 537.5999999999999 139.5C538.1999999999999 140.3 538.4999999999999 140.7 538.8 140.9C553.5999999999999 150.1 569.3 153.1 586.0999999999999 147.4C598.5999999999999 143.2 605.3 133.9 616.4999999999999 123.2C627.2999999999998 112.8 637.4999999999999 113.3 639.5999999999999 112.7C639.6999999999999 112.8 639.8 112.7 639.9999999999999 112.3zM427.5 -24.7C429.7 -25.9 429.1 -26.2 429 -26.7C410.5 -25.3 395.1 -19.1 382.2 -4.5C360.4 20.2 340.5 23.4 333.6 25.2C334.1 25.4 334.4 25.6 334.7 25.6C347.8 25.4999999999999 360.8 24.9 373.6 21.7C398.9 15.3 408.6 -3.7 415.2 -13.6C418.4 -18.4 422.5 -21.9 427.5 -24.7z" />
    +    <glyph glyph-name="phoenix-squadron"
    +      unicode="&#xF511;"
    +      horiz-adv-x="513.52" d=" M96.24 385.19C142.91 421.43 202.15 441.43 261.28 439.92C290.95 440.3 320.57 434.54 348.45 424.55C324.25 429.19 299.27 430.9 274.85 427C231.85 421.65 191.59 399.77 162.69 367.65C168.38 368.64 173.5 371.3300000000001 178.76 373.53C196.95 381.42 216.36 386.82 236.1600000000001 388.4C255.9600000000001 390.54 275.9100000000001 388.83 295.61 386.4700000000001C281.1500000000001 383.68 266.4100000000001 381.89 252.5 376.86C217.97 365.75 187.04 343.6 165.95 314.04C152.11 294.27 142.25 271.05 141.21 246.71C140.86 230.17 146.44 211.8 161.1 202.54C172.23 195.88 185.95 193.15 198.73 195.78C214.22 198.25 228.89 204.45 242.46 212.16C254.01 219 265.19 226.75 274.51 236.48C278.31 239.71 277.05 244.96 277.14 249.31C275.01 249.65 272.74 250.42 270.82 249.01A203.975 203.975 0 0 0 234.89 233.59C214.8199999999999 227.4 192.6099999999999 225.11 172.6099999999999 232.81C185.44 231.08 198.75 232.5 210.4599999999999 238.27C230.7499999999999 248.02 247.38 263.54 265.06 277.15C292.8999999999999 298.44 322.7 317.26 354.23 332.62C380.01 344.63 407.32 355.47 436.04 356.82C420.36 343.06 403.79 330.22 389.12 315.31C374.57 301.27 361.58 285.73 348.89 270C345.36 265.39 339.9099999999999 263.04 335.2699999999999 259.81C313.0299999999999 244.78 294.6699999999999 223.85 283.2299999999999 199.53C273.8699999999999 179.79 268.6799999999999 157.56 271.4199999999999 135.69C273.3699999999999 121.9599999999999 280.1599999999999 108.0199999999999 292.3799999999999 100.68C305.3199999999999 92.6899999999999 321.5199999999999 92.59 335.9899999999999 95.5699999999999C368.8899999999999 103.04 397.5999999999999 124.54 417.2699999999999 151.5699999999999C437.7699999999999 179.17 447.8799999999999 213.9499999999999 446.5199999999999 248.2099999999999C445.9999999999999 255.73 444.9399999999999 263.2099999999999 444.8499999999999 270.76C452.8699999999998 251.22 459.7199999999999 230.93 461.5499999999998 209.75C463.5599999999998 195.43 462.2999999999998 180.91 459.9299999999998 166.73C458.0099999999998 155.71 454.2399999999998 145.15 452.1199999999998 134.1999999999999C472.4799999999998 156.93 486.2899999999998 185.44 491.5799999999998 215.5099999999999C497.2999999999998 250.88 492.1599999999998 287.87 477.3299999999998 320.4599999999999C498.1699999999998 288.3399999999999 509.7599999999998 250.67 513.1399999999999 212.66C513.6399999999999 199.8899999999999 513.6399999999999 187.0799999999999 513.1399999999999 174.3199999999999C510.2299999999998 140.06 500.1699999999998 106.37 483.3799999999999 76.3199999999999C457.1799999999999 28.8399999999999 415.1799999999999 -9.57 365.8399999999999 -32.0000000000001C287.3199999999999 -68.34 190.6399999999999 -63.4100000000001 117.1199999999999 -17.28C78.2799999999999 6.5 46.0599999999999 41.04 25.4399999999999 81.68C10.72 110.57 2.04 142.5 0 174.87V206.3C3.94 276.27 40.99 342.62 96.24 385.19M318.89 304.62C324.4 305.42 329.71 307.19 334.91 309.12C339.9 310.89 344.18 315.07 345.26 320.37C336.35 315.37 327.31 310.42 318.89 304.62z" />
    +    <glyph glyph-name="php"
    +      unicode="&#xF457;"
    +      horiz-adv-x="640" d=" M320 343.5C491.4 343.5 623.2 271.3 623.2 192S491.3 40.5 320 40.5C148.6 40.5 16.8 112.7 16.8 192S148.7 343.5 320 343.5M320 360.3C143.3 360.3 0 285 0 192S143.3 23.7 320 23.7S640 99 640 192S496.7 360.3 320 360.3zM218.2 205.5C210.3 165 182.4 169.2 148.1 169.2L161.8 239.8C199.8 239.8 225.6 243.9 218.2 205.5zM97.4 97.7H134.1L142.8 142.5C183.9 142.5 209.4 139.5 233 161.6C259.1 185.6 265.9 228.3 247.3 249.7C237.6 260.9 222 266.4 200.8 266.4H130.1L97.4 97.7zM283.1 311.3H319.6L310.9000000000001 266.5C342.4000000000001 266.5 371.6 268.8 385.7000000000001 255.8C400.5000000000001 242.2 393.4000000000001 224.8 377.4000000000001 142.7000000000001H340.4000000000001C355.8 222.1000000000001 358.7000000000001 228.7000000000001 353.1 234.7000000000001C347.7000000000001 240.5000000000001 335.4000000000001 239.3000000000001 305.7000000000001 239.3000000000001L286.9000000000001 142.7000000000001H250.4000000000001L283.1 311.3000000000001zM505 205.5C497 164.4 468.3 169.2 434.9 169.2L448.6 239.8C486.8 239.8 512.4 243.9 504.9999999999999 205.5zM384.2 97.7H421L429.7 142.5C472.9 142.5 496.8 140 519.9 161.6C546 185.6 552.8 228.3 534.1999999999999 249.7C524.4999999999999 260.9 508.8999999999999 266.4 487.6999999999999 266.4H417L384.2 97.7000000000001z" />
    +    <glyph glyph-name="pied-piper-alt"
    +      unicode="&#xF1A8;"
    +      horiz-adv-x="576" d=" M242 261C248.3 272.8 255.2 278 267.9 282.8C295.2 293.1 308.1 313.3 326.8 333.9C338.7 325.5 338.8 309.3 358.4 310.9V289.1L364.7 288.8C402.1 303.2 439.4 319 471.3 343.4C519.5999999999999 380.2 524.1999999999999 393.4 552.5999999999999 443.4L554.5999999999999 446C553.9999999999999 431.9 548.3 418.7 542.1999999999999 406.1C511.6999999999999 342.3 463.4999999999999 305.8 395.3999999999999 289.4C383 286.5 369 286.2 357.7999999999999 280.5C359.1999999999999 270.7 370.9999999999999 262.4 370.9999999999999 257.5C370.9999999999999 254.1 365.4999999999999 250.3 363.4999999999999 248.9C352.2999999999999 261.8 347.3999999999999 268.2 340.7999999999999 271C333.1999999999999 274.5 276.8999999999999 277.4 241.9999999999999 261zM379.9 4.1C360.9 4.1 315.8 -5.4 300 -15.7L306.9 -60.8C342.6 -66.9 377 -64.4 412.9 -51C408.1 -41 389.4 4.1 379.9 4.1zM244 202C240.8 204 237.7 204.9 233.9 204.9C227.3 204.9 221.3 201.7 214.6 201.2L216.3 196.3L244 202zM231.4 170.2L255.5 109L276.5 122.8L245.2 173.7L231.4 170.2zM555.5 448L554.9 446.9L554.6 446L555.2 446.6L555.5 448zM496.3 65.9C462.4 122.8 421 184.3 346.3 181.4L346 187.4C344.9 200.9 378.8 184.2 381.1 218.4L366.7000000000001 211.2C346.9000000000001 256.9 358.1 265.5 301.2000000000001 265.5C286.5000000000001 265.5 274.5000000000001 263.8 259.8000000000001 260.9C262.7000000000001 242.3 262.0000000000001 224.2 248.9000000000001 210.6L268.4000000000001 205.1C266.7000000000001 201.9 265.5000000000001 198.8 265.5000000000001 195.3C265.5000000000001 174.3 308.3000000000002 192.4 308.3000000000002 161.7C308.3000000000002 143.3 271.5000000000001 101.6 253.4000000000001 101.6C245.4000000000001 101.6 199.7000000000001 151.6 200.0000000000001 161.7L200.3000000000001 166.3L252.6000000000002 177.8C265.6000000000002 180.4 264.9000000000002 200.5 249.7000000000002 200.5C246.0000000000002 200.5 206.6000000000001 191.3 200.3000000000001 189.9C198.3000000000001 195.1 192.8000000000001 204 186.5000000000001 204C183.3000000000001 204 180.2000000000001 200.8 177.0000000000001 200C167.8000000000001 197.4 146.0000000000001 197.1 155.5000000000001 179.9L15.9 149.5C10.4 148.4 7 143.2 7 137.7C7 131.7 12.5 126.8 18.5 126.8C26.5 126.8 149.8 155.2 165.9 159C168.5 155.8 170.5 152.7 173.7 150.4C193.8 136 233.5 64.5 250.1 64.5C274.2000000000001 64.5 308.1 86.9 321.4000000000001 106.4C324.6 110.7 328.3 113.9 333.8 113.3C334.4000000000001 99.4999999999999 302.2 79.1 300.8 69.6C299.4000000000001 59.4 299.8 34.4 300.5 28.4999999999999C327.2 20.3999999999999 352.5 32.1 378.4 31.3999999999999C382.7 52.3999999999999 389 73.2999999999999 388.2 94.8999999999999L387.9 104.3999999999999C386.5 138.5999999999999 377 142.8999999999999 353.1 163C352 164.1 350.5 165.6 349.4 167C351.6 168.3999999999999 350.5 168 354 168.6999999999999C442.5 168.6999999999999 410.3 -14.9000000000001 465.5 -61.2C498.6 -46.2 538 -33.3000000000001 569 -14.0000000000001C540 11.6 516.4 31.6999999999999 496.3 65.9zM300.1 19.9V-7.4L311.9000000000001 -4.0000000000001L309.0000000000001 19.8H300.1000000000001zM376.2000000000001 17C376.2000000000001 18.4 375.6 20.2 375.3000000000001 21.6C348.5000000000001 21.6 338.4000000000001 17.8 315.8000000000001 15.3L317.8000000000001 2.9C326.8000000000001 4.4 376.2000000000001 9.5000000000001 376.2000000000001 17.0000000000001z" />
    +    <glyph glyph-name="pied-piper-hat"
    +      unicode="&#xF4E5;"
    +      horiz-adv-x="640" d=" M640 423.1C559.2 369.5 550.6 330.6 543.6 318.7C536.9 306.5 531.9 258.4 520.3000000000001 235.1C508.6000000000001 211.5 466.1000000000001 192.9 454.2 185.1C442.5000000000001 177.3 425.9000000000001 147 412.3000000000001 120.9C304.2000000000001 125.3 244.9000000000001 82.1 153.1000000000001 27.3000000000001C182.5000000000001 37.0000000000001 196.4000000000001 44.0000000000001 196.4000000000001 44.0000000000001C290.6000000000001 80.0000000000001 335.7000000000001 112.3000000000001 477.5000000000001 93.2000000000001C478.6000000000001 93.2000000000001 479.4000000000001 92.6 480.3000000000001 92.4C484.2000000000001 90.2000000000001 485.6000000000001 85.5000000000001 483.4000000000001 81.6L429.5000000000002 -14.2C427.0000000000002 -18.9 421.7000000000002 -21.4 416.4000000000002 -20.3C289.6000000000002 3.5 189.5000000000002 -37.6 97.5000000000002 -38.9C24.1 -40 0 -5.4 0 -3.8C0 -2.7 0.6 -2.1 1.7 -2.1C1.7 -2.1 40 -2.1 104.8 13.2C178.4 153.5 244 202.6 315.4 202.6C315.4 202.6 387.1 202.6 406 140.7C428.8 180.4 434.3 189.9 434.3 189.9C439.6 199.3 469.3 267.1 520.7 331.3C572.2 395.3 611.1 411.2 640 423.1z" />
    +    <glyph glyph-name="pied-piper-pp"
    +      unicode="&#xF1A7;"
    +      horiz-adv-x="448" d=" M205.3 273.4C205.3 252.3 191.1 235.3 173.6 235.3C166.5 235.3 160.8 236.5 156.4 239V307C160.8000000000001 309.7 166.5 311.2 173.6 311.2C191.1 311.2 205.3 294.3 205.3 273.4zM257.9000000000001 206.4C250.8000000000001 206.4 245.1 204.9 240.7000000000001 202.2V134.2000000000001C245.1000000000001 131.7000000000001 250.8000000000001 130.5000000000001 257.9000000000001 130.5000000000001C275.3 130.5000000000001 289.6 147.4 289.6 168.3000000000001C289.6 189.4000000000001 275.3 206.4000000000001 257.9000000000001 206.4000000000001zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM185 192.9C226 192.9 259.2 228.5 259.2 272.5C259.2 316.5 226 352.1 185 352.1C173 352.1 160.9 348.9 150.4 343.3H104.7V137L156.5 147.1V197.7C165.1 194.6 174.6 192.9 185 192.9zM343.4 167.6C343.4 211.6 310.2 247.2 269.5 247.2C266.3 247.2 263.1 247.0000000000001 259.9 246.5000000000001C256.2 234.0000000000001 249.8 222.7 240.7 213.1C226.9 198.1 208.5 189.3 188.9 188.3V32L240.7 42.1V92.7000000000001C249.3 89.5000000000001 258.9 88.0000000000001 269.4 88.0000000000001C310.2 88.0000000000001 343.4 123.6000000000001 343.4 167.6z" />
    +    <glyph glyph-name="pied-piper"
    +      unicode="&#xF2AE;"
    +      horiz-adv-x="448" d=" M32 29L0 -31.2L0.8 296.8C0.8 362.7 54 416 120 416H447.2C354.2 387.1 257.3 321.8 193.3 247.4C122.7 166 82.6 110 32 29M448 416S305.2 349.2 261.6 248.9C238.4000000000001 195.3 232.7 130.8 190.6 90.3C161.7 62.5 120.8 52.1 85.3 34C62.1 22 18.9 -6.5 0.4 -32H328.8C394.8 -32 448.1 21.3 448.1 87.2C448 87.2 448 416 448 416z" />
    +    <glyph glyph-name="pinterest-p"
    +      unicode="&#xF231;"
    +      horiz-adv-x="384" d=" M204 441.5C101.4 441.5 0 373.1 0 262.4C0 192 39.6 152 63.6 152C73.5 152 79.2 179.6 79.2 187.4C79.2 196.7 55.5 216.5 55.5 255.2C55.5 335.6 116.7 392.6 195.9 392.6C264 392.6 314.4 353.9 314.4 282.8C314.4 229.7 293.1 130.1 224.1 130.1C199.2 130.1 177.9 148.1 177.9 173.9C177.9 211.7000000000001 204.3 248.3000000000001 204.3 287.3000000000001C204.3 353.5000000000001 110.4 341.5000000000001 110.4 261.5C110.4 244.7 112.5 226.1 120 210.8C106.2 151.4 78 62.9 78 1.7C78 -17.1999999999999 80.7 -35.8 82.5 -54.6999999999999C85.9 -58.4999999999999 84.2 -58.0999999999999 89.4 -56.1999999999999C139.8 12.8000000000001 138 26.3000000000001 160.8 116.6000000000001C173.1 93.2000000000001 204.9 80.6000000000001 230.1 80.6000000000001C336.3 80.6000000000001 384 184.1000000000001 384 277.4000000000001C384 376.7 298.2 441.5 204 441.5z" />
    +    <glyph glyph-name="pinterest-square"
    +      unicode="&#xF0D3;"
    +      horiz-adv-x="448" d=" M448 368V16C448 -10.5 426.5 -32 400 -32H154.4C164.2 -15.6 176.8 8 181.8 27.3C184.8 38.8 197.1 85.7 197.1 85.7C205.1 70.4 228.5000000000001 57.5 253.4000000000001 57.5C327.5 57.5 380.8000000000001 125.6 380.8000000000001 210.2C380.8000000000001 291.3 314.6000000000001 352 229.4000000000001 352C123.4000000000001 352 67.2000000000001 280.9 67.2000000000001 203.4C67.2000000000001 167.4 86.4000000000001 122.6 117.0000000000001 108.3C121.7000000000001 106.1 124.1000000000001 107.1 125.2000000000001 111.6C126.0000000000001 115 130.2000000000001 131.7000000000001 132.0000000000001 139.4C132.6000000000001 141.9 132.3000000000001 144.0000000000001 130.3000000000001 146.4C120.2000000000001 158.7000000000001 112.0000000000001 181.3 112.0000000000001 202.4C112.0000000000001 256.6 153.0000000000001 309 222.9000000000001 309C283.2000000000001 309 325.5000000000001 267.9000000000001 325.5000000000001 209.1C325.5000000000001 142.7000000000001 292.0000000000001 96.7000000000001 248.3000000000002 96.7000000000001C224.2000000000001 96.7000000000001 206.2000000000001 116.6 211.9000000000001 141.1C218.8000000000001 170.3 232.2000000000002 201.8 232.2000000000002 222.9C232.2000000000002 275.9000000000001 156.7000000000001 268.6 156.7000000000001 197.9C156.7000000000001 176.2000000000001 164.0000000000002 161.4 164.0000000000002 161.4C132.6000000000001 28.6 127.9000000000002 26.9 134.4000000000002 -31.1999999999999L136.6000000000001 -31.9999999999999H48C21.5 -31.9999999999999 0 -10.4999999999999 0 16.0000000000001V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368z" />
    +    <glyph glyph-name="pinterest"
    +      unicode="&#xF0D2;"
    +      horiz-adv-x="496" d=" M496 192C496 55 385 -56 248 -56C222.4 -56 197.8 -52.1 174.6 -44.9C184.7 -28.4 199.8 -1.4 205.4 20.1C208.4 31.7 220.8 79.1 220.8 79.1C228.9 63.7000000000001 252.5 50.6 277.6 50.6C352.4000000000001 50.6 406.3 119.4 406.3 204.9C406.3 286.8000000000001 339.4 348.1 253.4 348.1C146.4 348.1 89.5 276.3 89.5 198C89.5 161.6 108.9 116.3 139.8 101.9C144.5 99.7000000000001 147 100.7000000000001 148.1 105.2000000000001C148.9 108.6 153.1 125.5000000000001 155 133.3000000000001C155.6 135.8000000000001 155.3000000000001 138.0000000000001 153.3000000000001 140.4000000000001C143.2000000000001 152.9000000000001 135 175.7000000000001 135 197.0000000000001C135 251.7000000000001 176.4 304.6000000000001 247.0000000000001 304.6000000000001C307.9000000000001 304.6000000000001 350.6 263.1000000000001 350.6 203.7000000000001C350.6 136.6000000000001 316.7000000000001 90.1000000000001 272.6 90.1000000000001C248.3 90.1000000000001 230.0000000000001 110.2000000000001 235.9000000000001 134.9000000000001C242.9000000000001 164.4000000000001 256.4000000000001 196.2000000000001 256.4000000000001 217.5000000000001C256.4000000000001 236.5000000000001 246.2000000000001 252.4000000000001 225 252.4000000000001C200.1 252.4000000000001 180.1 226.7000000000001 180.1 192.2000000000001C180.1 170.2000000000001 187.5 155.4000000000001 187.5 155.4000000000001S163 51.6000000000001 158.5 32.2000000000001C153.5 10.8000000000001 155.5 -19.3999999999999 157.6 -38.9999999999999C65.4 -2.9 0 86.9 0 192C0 329 111 440 248 440S496 329 496 192z" />
    +    <glyph glyph-name="playstation"
    +      unicode="&#xF3DF;"
    +      horiz-adv-x="576" d=" M570.9 75.7C559.6 61.5 532.1 51.4 532.1 51.4L327 -22.2V32.1L477.9 85.9C495 92.0000000000001 497.7 100.7000000000001 483.7 105.3C469.8 109.9 444.6 108.6 427.5 102.4L327 66.9V123.3C350.2 131.1 374.1 136.9 402.7 140.1C443.6 144.6 493.6 139.5 532.9 124.6C577.1 110.6 582.1 89.9 570.9 75.7zM346.5 168.2V307.2C346.5 323.5 343.5 338.5 328.2 342.8C316.5 346.6 309.2 335.7 309.2 319.4V-28.5L215.4 1.3V416C255.3 408.6 313.4 391.1 344.6 380.6C424.1 353.3 451 319.3 451 242.8C451 168.3 405 140 346.5 168.2000000000001zM43.2 37.8C-2.2 50.6 -9.8 77.3 10.9 92.6C30 106.8 62.6 117.5 62.6 117.5L197.1 165.3V110.8L100.3 76.2C83.2 70.1 80.6 61.4 94.5 56.8C108.4 52.2 133.6 53.5 150.7000000000001 59.7L197.1000000000001 76.6V27.8C145.5000000000001 18.4999999999999 95.7000000000001 20.4999999999999 43.2 37.8z" />
    +    <glyph glyph-name="product-hunt"
    +      unicode="&#xF288;"
    +      horiz-adv-x="512" d=" M326.3 229.2C326.3 208.7 309.6 192 289.1 192H218.8V266.4H289.1C309.6 266.4 326.3 249.7 326.3 229.2zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM375.9 229.2C375.9 277.1 337 316 289.1 316H169.2V68H218.8V142.4H289.1C337 142.4 375.9 181.3 375.9 229.2z" />
    +    <glyph glyph-name="pushed"
    +      unicode="&#xF3E1;"
    +      horiz-adv-x="432" d=" M407 336.1L308.5 345.1L322.5 378.5C332.9 402 311.7 418.9 293.8 415.5L22.5 371.1C7.4 368.4 -3.5 352.8 1.1 334.5L106.2 -13.8C112.7 -35.1 142.9 -38 153.9 -20.8L189.2 60L424.4 291.3C440.8 308.1 428.7 334.2000000000001 407 336.1zM297.6 394.4C302.7000000000001 395.1 305.1 391.9 302.8 387L286 347.1L108.6 363.4L297.6 394.4zM22.7 340.1C19.6 345.2 23.7 350.1 28.8 349.2L277.5 326.5L180.6 95.8L22.7 340.1zM136 -8.4C133.4 -12.4 128.1 -11.5 126.6 -7.2L43.5 268.3L171.2 70.7000000000001C164.2 55.7 136 -8.4 136 -8.4zM408.8 306.1L210.1 110.7L299.8 324.4L406.2000000000001 314.7C410.2000000000001 313.6 411.9000000000001 309.4 408.8000000000001 306.1z" />
    +    <glyph glyph-name="python"
    +      unicode="&#xF3E2;"
    +      horiz-adv-x="448" d=" M167.8 411.6C122.6 403.6 114.4 386.9 114.4 356V315.3H221.3V301.7000000000001H74.3C43.2 301.7000000000001 16 283 7.5 247.5C-2.3 206.8 -2.7 181.4 7.5 138.9C15.1 107.3 33.2 84.7 64.3 84.7H101V133.5C101 168.8 131.5 199.9 167.8 199.9H274.6C304.3 199.9 328 224.4 328 254.2V356.1C328 385.1 303.6 406.8 274.6 411.7C238.8 417.6 199.9 417.3 167.8 411.6zM161.1 383.2C172.1 383.2 181.2 374 181.2 362.8S172.2 342.5 161.1 342.5C150 342.5 141 351.6 141 362.8C141.1 374.1 150 383.2000000000001 161.1 383.2000000000001zM346.3 301.8V254.3C346.3 217.5 315.1 186.5 279.5 186.5H172.7C143.5 186.5 119.3 161.5 119.3 132.2V30.4C119.3 1.4 144.5 -15.6 172.7 -23.9C206.5 -33.8 239 -35.6 279.5 -23.9C306.4 -16.1 332.9 -0.4 332.9 30.4V71.1H226.2V84.7H386.4C417.5 84.7 429 106.4 439.8 138.9C450.9999999999999 172.4 450.4999999999999 204.6 439.8 247.5C432.1 278.4 417.5 301.7 386.4 301.7H346.3zM286.2 44C297.3 44 306.3 34.9 306.3 23.7C306.3 12.4 297.3 3.3 286.2 3.3C275.2 3.3 266.1 12.5 266.1 23.7C266.2 35 275.2 44 286.2 44z" />
    +    <glyph glyph-name="qq"
    +      unicode="&#xF1D6;"
    +      horiz-adv-x="448" d=" M433.754 27.555C422.228 26.162 388.894 80.296 388.894 80.296C388.894 48.951 372.758 8.049 337.843 -21.49C354.685 -26.682 392.6860000000001 -40.657 383.646 -55.911C376.3300000000001 -68.254 258.136 -63.792 224.014 -59.948C189.892 -63.792 71.698 -68.254 64.382 -55.911C55.337 -40.661 93.3 -26.697 110.165 -21.496C75.245 8.043 59.106 48.949 59.106 80.2960000000001C59.106 80.2960000000001 25.772 26.162 14.247 27.5550000000001C8.877 28.205 1.823 57.1990000000001 23.594 127.2590000000001C33.855 160.2830000000001 45.589 187.7370000000001 63.738 233.0380000000001C60.683 349.937 108.982 447.9940000000001 224 448C337.737 447.9940000000001 387.156 351.867 384.264 233.037C402.382 187.814 414.176 160.187 424.408 127.259C446.1760000000001 57.199 439.124 28.206 433.754 27.555z" />
    +    <glyph glyph-name="quinscape"
    +      unicode="&#xF459;"
    +      horiz-adv-x="489.1" d=" M301.9 -26.6H300.6C213.3 -26.6 142.5 44.2 142.5 131.5S213.3 289.6 300.6 289.6C395.5 289.6 468.8 206.5 457.6 113C461.6 107.9 465.8 103.4 468.8 97.7C482.1999999999999 128 489.1 160.1 489.1 195.4C489.1 330.5 379.6 440 244.5 440C109.5 440 0 330.5 0 195.4S109.5 -49.2 244.5 -49.2C269.3 -49.2 292.3 -46 314.9 -39.1C309.7 -35.6 305.9 -30.9 301.5 -26.4999999999999L301.9 -26.6zM280.7 43.2C280.7 98 325.1 142.4 379.9 142.4C434.7 142.4 479.1 98 479.1 43.2C479.1 -11.6 434.7 -56 379.9 -56C325.1 -56 280.7 -11.6 280.7 43.2" />
    +    <glyph glyph-name="quora"
    +      unicode="&#xF2C4;"
    +      horiz-adv-x="448" d=" M440.5 61.3H411.2C409.7 47.8 400.7 30.5 378.2 30.5C357.7 30.5 342.9 44.7 328.7 66.3C372.9 100.5 403.4 153.8 403.4 219.3C403.5 336.8 306.8 416 205 416C105.3 416 7.3 336.3 7.3 219.3C7.3 85.2000000000001 138.6 -2.3 256.3 30.3C276 -3.3 302 -32 351.5 -32C433.3 -32 442.3 43.3 440.5 61.3zM297 118.8C277.5 148 253.3 171 205.5 171C175 171 151.2 161 136.5 148.2L148.7 123.9C154.9 126.9 161.7 127.9 168.5 127.9C204 127.9 222.2 97.1 237.7 66.6C227.7 63.6 217 62.4 205 62.4C130 62.4 97.5 115.4 97.5 219.1C97.5 323.5 130 377 205 377C281.2 377 313.7 323.5 313.7 219.3C313.8 177.5 308.3 143.7000000000001 297 118.8z" />
    +    <glyph glyph-name="r-project"
    +      unicode="&#xF4F7;"
    +      horiz-adv-x="581" d=" M581 221.4C581 328.9 450.9 416 290.5 416S0 328.9 0 221.4C0 125.6 103.3 46 239.4 29.9V-32H338.5V29.5C362.8 32.2 386.1 36.9 407.9 43.4L448 -32H560L492.6 81.7C547.1 117.1 581 166.6 581 221.4zM114.2 206.9C114.2 280.4 213.1 339.9 335 339.9S546.9 299.2 546.9 206.9C546.9 156.8 520.4 121.9 476.6 100.5C474.2 102.1 471.9 103.4 470.2 104.2C460 109.4 442.4 114.7 442.4 114.7S529 121.1 529 207.4S438.4 295.3 438.4 295.3H239.4V87C165.3 108.5 114.2 154.1 114.2 206.9zM339.3 168.6V224.2C397.1 224.2 427.1 231.0000000000001 427.1 196.9C427.1 160.4 388.9 168.6 339.3 168.6zM338.4 96.1H365C375.8 96.1 383.9 84.4 389 76.9C372.9 75.0000000000001 356 74.1 338.4 74.0000000000001V96.1000000000001z" />
    +    <glyph glyph-name="ravelry"
    +      unicode="&#xF2D9;"
    +      horiz-adv-x="512" d=" M407.4 386.5C331.6 425.9 257.8 417 182.9 382C171.6 376.8 167.4 371.4 163 363C152.7 343.8 146.8 325.6 143.1 310.3C121.9 284.7000000000001 106.7 254.2 99.8 220.4C89.2 202.4 78.9 179 76.7 149C76.7 149 76 141.4 76.2 141.1C40.9 145.7000000000001 0 168.1 0 168.1C9.1 153.6 61.3 135.8 76.3 130.2000000000001C76.3 130.2000000000001 78 32.2 140.8 -0.9999999999999C129.5 16.2 127.5 19.2 127.5 19.2S94.8 79 100.4 123.3C101.1 123.3 101.9 123.1 102.6 123.1C126.5 35.7 205.8 -28.3 299.5 -28.3C305.7 -28.3 311.6 -28.1 317.5 -27.6C331.5 -29.1 345.1 -28.1 357.6 -23.7C364.5 -21.5 371.4000000000001 -17.3 377.8 -12.9C448 26.2 478.7 69.1 500.9 134.8C506.3 150.8 509 170.3 510.7 187C519.4 269.3 480.1 348.6 407.4 386.5zM138.8 284.8S137.6 272.5 138.1 265.1C134.7 262.6 128 257 119.9 248.4000000000001C125.1 261.2000000000001 131.2 273.5 138.8 284.8000000000001zM107.6 162.9C112 180.1 120.9 202 137.4 218C137.4 218 139.1 170 153.2 127.9L111.8 134.8C109.6 144 108.3 153.3 107.6 162.9zM115.5 120.1C130.3 116.9 149.5 112.4999999999999 158.6 110.9999999999999C185.9 34.1999999999999 266.9000000000001 -13.3000000000001 266.9000000000001 -13.3000000000001C267.9000000000001 -13.8000000000001 268.6 -14.0000000000001 269.6 -14.3000000000001C196.5 -2.7 136.9 50.3999999999999 115.5 120.0999999999999zM386 3.9C371.5 -0.8 349.8 -4.5 321.3 0.2C321.3 0.2 230.2 23.3 193.8 108C232 107.3 246.2 108.2 271.8 111.9C311.2 117.6 350.8 128.1 386.8 144.9C398.6 150.3 397.9000000000001 164.3 396.4000000000001 174.7C394.4000000000001 187.5 385.3 186.8 375.0000000000001 179.4C375.0000000000001 179.4 293.0000000000001 120.8 185.2000000000001 125.7C166.5000000000001 157.7 158.4 236.5 158.4 236.5C199.8000000000001 271.7 241.6 296.1 326.8000000000001 288.9C327.0000000000001 295.3 329.8000000000001 316 306.4000000000001 317C306.4000000000001 317 212.9000000000001 328.1 160.4000000000001 283.5C162.9000000000001 300 166.3000000000001 312.8 171.5000000000001 322.9C205.7000000000001 353.7 250.5000000000001 372.4 299.8000000000001 372.4C406.2000000000001 372.4 492.8000000000001 285.3 492.8000000000001 177.9C492.6000000000001 101.9 449.0000000000001 35.9 386.0000000000001 3.9z" />
    +    <glyph glyph-name="react"
    +      unicode="&#xF41B;"
    +      horiz-adv-x="512" d=" M418.2 270.8C412.8 272.6 407.4 274.3 402 275.9C402.9 279.6 403.7 283.3 404.5 287C416.8 346.6 408.7 394.5 381.4 410.3C355.1 425.4 312.2 409.7 268.8 371.9C264.5 368.2 260.3 364.3 256.3 360.4C253.6 363 250.8 365.6 248 368.1C202.5 408.5 156.9 425.5 129.5999999999999 409.6C103.3999999999999 394.4 95.5999999999999 349.3 106.5999999999999 292.9C107.6999999999999 287.3 108.8999999999999 281.8 110.2999999999999 276.2000000000001C103.8999999999999 274.4 97.5999999999999 272.4 91.6999999999999 270.3C38.3 251.8 0 222.6 0 192.4C0 161.2 40.8 129.9 96.3 110.9C100.8 109.4 105.3 107.9 109.9 106.6C108.4 100.6 107.1 94.7 105.9 88.6C95.4 33.1 103.6 -10.9 129.8 -26C156.8 -41.6 202.2 -25.6 246.4 13.1C249.9 16.2 253.4 19.4 256.9 22.8C261.3 18.5 265.9 14.4 270.5 10.4C313.3 -26.4 355.6 -41.3 381.7 -26.2C408.7 -10.6 417.5 36.7 406.1 94.3C405.2 98.7 404.2 103.2 403.1 107.8C406.3 108.7 409.4 109.7 412.5 110.7C470.1999999999999 129.8 511.9999999999999 160.7 511.9999999999999 192.4C511.9999999999999 222.7 472.6 252.1 418.2 270.8zM282.9 355.7C320.1 388.1 354.8 400.8 370.6 391.7C387.5 382 394 342.8 383.4 291.3C382.7 287.9 382 284.6 381.1 281.3C358.9 286.3 336.4 289.9 313.8 291.9C300.8 310.5 286.6 328.3 271.2 345C275.0999999999999 348.7 278.8999999999999 352.2 282.8999999999999 355.7zM152.9 166.6C157.5 157.8 162.2 149.1 167.2 140.5C172.3 131.8 177.5 123.1 183 114.6C167.4 116.3 151.9 118.8 136.6 122.1C141 136.5 146.5 151.4 152.9 166.6zM152.9 217.2C146.6 232.1 141.3 246.7 136.9 260.8C151.3 264 166.6 266.6 182.5 268.6C177.2 260.3 172 251.8 167.1 243.2C162.2 234.7 157.4 226.0000000000001 152.9 217.2zM164.3 191.9C170.9 205.7000000000001 178.1 219.2000000000001 185.7 232.5000000000001C193.3 245.8000000000001 201.5 258.7000000000001 210.1 271.4000000000001C225.1 272.5 240.4 273.1 256 273.1C271.6 273.1 287 272.5 301.9 271.4000000000001C310.4 258.8000000000001 318.5 245.9000000000001 326.2 232.7000000000001C333.9 219.5000000000001 341.1 206.0000000000001 347.9 192.3000000000001C341.2 178.5000000000001 334 164.9 326.3 151.5000000000001C318.7 138.2000000000001 310.6 125.3000000000001 302.1 112.5000000000001C287.2 111.4 271.7 110.9 256 110.9C240.3 110.9 225.1 111.4 210.4 112.3C201.7 125 193.5 138 185.8 151.3C178.1 164.6 171 178.1 164.3 191.9zM344.9 140.7000000000001C350 149.5000000000001 354.8 158.4 359.5 167.4C365.9 152.9 371.5 138.2000000000001 376.4 123.1C360.9 119.6 345.2 116.9 329.4 115.1C334.8 123.5 339.9 132.1 344.9 140.7000000000001zM359.3 217.2000000000001C354.6 226.0000000000001 349.8 234.8000000000001 344.8 243.4000000000001C339.9 251.9000000000001 334.8 260.3000000000001 329.5 268.6C345.6 266.6 361 263.9000000000001 375.3999999999999 260.6C370.7999999999999 245.8 365.3999999999999 231.4000000000001 359.2999999999999 217.2zM256.2 329.7C266.7 318.3 276.6 306.3 285.8 293.9C266 294.8 246.1 294.8 226.3 293.9C236.1 306.8 246.2 318.8 256.2 329.7zM140.2 391C157 400.8 194.3 386.8 233.6 352C236.1 349.8 238.6 347.4 241.2 345C225.7 328.3 211.4 310.5 198.3 291.9C175.7 289.9 153.3 286.4 131.1 281.5C129.8 286.6 128.7 291.8 127.6 297C118.2 345.4 124.4 381.9 140.2 391zM115.7 127.4C111.5 128.6 107.4 129.9 103.3 131.3C82 138 57.8 148.6 40.3 162.5C30.2 169.5 23.4 180.3 21.5 192.4C21.5 210.7 53.1 234.1 98.7 250C104.4 252 110.2 253.8 116 255.5C122.8 233.8 131 212.5 140.5 191.8999999999999C130.9 171 122.6 149.3999999999999 115.7 127.3999999999999zM232.3 29.4C215.8 14.3 196.7 2.3 175.9 -5.9C164.8 -11.2 152 -11.7 140.6 -7.2C124.7 1.9999999999999 118.1 37.3 127.1 84.8C128.2 90.4 129.4 95.9999999999999 130.8 101.4999999999999C153.2 96.6999999999999 175.8 93.3999999999999 198.7 91.6999999999999C211.9 72.9999999999999 226.4 55.0999999999999 241.9 38.3C238.7 35.1999999999999 235.5 32.1999999999999 232.3 29.4zM256.8 53.7C246.6 64.7 236.4 76.9 226.5 90C236.1 89.6 246 89.4 256 89.4C266.3 89.4 276.3999999999999 89.6 286.3999999999999 90.1C277.2 77.4 267.2999999999999 65.3 256.7999999999999 53.7zM387.5 23.7C386.6 11.5 380.6 0.1 371 -7.6C355.1 -16.8 321.2 -4.8 284.5999999999999 26.6C280.3999999999999 30.2 276.2 34.1 271.8999999999999 38.1C287.2 54.9999999999999 301.2999999999999 72.9 314.0999999999999 91.7C336.9999999999999 93.6 359.7999999999999 97.1 382.2999999999999 102.2C383.2999999999999 98.1 384.1999999999999 94 384.9999999999999 90C389.8999999999999 68.4 390.6999999999999 45.9 387.4999999999999 23.7zM405.7 131.2C402.8999999999999 130.3 400.0999999999999 129.4 397.2 128.6C390.2 150.4 381.5999999999999 171.7 371.7 192.4C381.3 212.8 389.3999999999999 233.8 396.2 255.3C401.3999999999999 253.8 406.3999999999999 252.2 411.2 250.6C457.8 234.6 490.4999999999999 210.8 490.4999999999999 192.6C490.4999999999999 173 455.6 147.7 405.7 131.2zM256 237.8C281.3 237.8 301.8 217.3 301.8 192C301.8 166.7 281.3 146.2 256 146.2C230.7 146.2 210.2 166.7 210.2 192C210.2 217.3 230.7 237.8 256 237.8" />
    +    <glyph glyph-name="readme"
    +      unicode="&#xF4D5;"
    +      horiz-adv-x="576" d=" M528.3 401.5H388.5C340.4 401.5 298.6 368.2 288.1 321.2C277.5 368.2 235.8 401.5 187.7 401.5H48C21.5 401.5 0 380 0 353.5V107.7C0 81.2 21.5 59.7 48 59.7H137.7C239.9 59.7 270.4 35.3 285 -15.3C285.7 -18.1 290.2 -18.1 291 -15.3C305.7 35.3 336.2 59.7 438.3 59.7H528C554.5 59.7 576 81.2 576 107.7V353.4C576 379.8 554.7 401.3 528.3 401.5zM242 136.1C242 134.2000000000001 240.5 132.6 238.5 132.6H78.2C76.3 132.6 74.7 134.1 74.7 136.1V159C74.7 160.9 76.2 162.5 78.2 162.5H238.6C240.5000000000001 162.5 242.1 161 242.1 159V136.1zM242 197C242 195.1 240.5 193.5 238.5 193.5H78.2C76.3 193.5 74.7 195 74.7 197V219.9C74.7 221.8000000000001 76.2 223.4 78.2 223.4H238.6C240.5000000000001 223.4 242.1 221.9 242.1 219.9V197zM242 257.9000000000001C242 256 240.5 254.4000000000001 238.5 254.4000000000001H78.2C76.3 254.4000000000001 74.7 255.9000000000001 74.7 257.9000000000001V280.8000000000001C74.7 282.7000000000001 76.2 284.3000000000001 78.2 284.3000000000001H238.6C240.5000000000001 284.3000000000001 242.1 282.8000000000001 242.1 280.8000000000001V257.9000000000001zM501.3 136.2000000000001C501.3 134.3000000000001 499.8 132.7000000000001 497.8 132.7000000000001H337.5C335.6 132.7000000000001 334 134.2000000000001 334 136.2000000000001V159.1C334 161 335.5 162.6 337.5 162.6H497.9C499.8 162.6 501.4 161.1 501.4 159.1V136.2000000000001zM501.3 197.1000000000001C501.3 195.2000000000001 499.8 193.6000000000001 497.8 193.6000000000001H337.5C335.6 193.6000000000001 334 195.1000000000001 334 197.1000000000001V220C334 221.9 335.5 223.5 337.5 223.5H497.9C499.8 223.5 501.4 222 501.4 220V197.1zM501.3 258.0000000000001C501.3 256.1 499.8 254.5000000000001 497.8 254.5000000000001H337.5C335.6 254.5000000000001 334 256.0000000000001 334 258.0000000000001V280.8000000000001C334 282.7000000000001 335.5 284.3000000000001 337.5 284.3000000000001H497.9C499.8 284.3000000000001 501.4 282.8000000000001 501.4 280.8000000000001V258z" />
    +    <glyph glyph-name="rebel"
    +      unicode="&#xF1D0;"
    +      horiz-adv-x="512" d=" M256.5 -56C117.2 -56 9 60.2 13.2 198.1C16 277.3 56.4 350.3 129.7 398.5C130 398.5 131.6 399.1 130.8 397.7C125 392.2 19.5 267.9 116.7 171.3C166.5 121.8 206.7 168.8 206.7 168.8C245.2 218.9 206.1 294.7000000000001 206.1 294.7000000000001C196.1 319.6 160.4 334.8 160.4 334.8L189.2 366.6C213.6 356.1 232.4 327.9 232.4 327.9C233.2 357.5 210.5 389.3 210.5 389.3L255.1 440L299.4 389.9C278.9 361.1 277.5 327.3 277.5 327.3C291.3 350.3 321 366.6 321 366.6L349.5 334.8C322.1 325.9 304.1 294.9 304.1 294.9C288.3 266.4 277 205.5 304.7000000000001 167.6C337.1 123 392.4000000000001 170.4 392.4000000000001 170.4C495.1 262.3000000000001 381.9000000000001 395.4000000000001 381.9000000000001 395.4000000000001C375.8 400.9000000000001 382.7000000000001 398.2000000000001 382.7000000000001 398.2000000000001C432.8000000000001 361.7000000000001 497.3000000000001 313.8 498.9 193.4C500.9 47.8 399 -56 256.5 -56z" />
    +    <glyph glyph-name="red-river"
    +      unicode="&#xF3E3;"
    +      horiz-adv-x="448" d=" M353.2 416H94.8C42.4 416 0 373.6 0 321.2V62.8C0 10.4 42.4 -32 94.8 -32H353.2C405.6 -32 448 10.4 448 62.8V321.2C448 373.6 405.6 416 353.2 416zM144.9 247.1V190.8C144.9 163.8 123 141.9 96 141.9V296.1C96 309.3 106.7 320 119.9 320H274.1C274.1 293 252.2 271.1 225.2 271.1H168.9C156.6 271.7 144.3000000000001 259.5 144.9 247.1zM321.2000000000001 175.1H264.9000000000001C252.6 175.7000000000001 240.3000000000001 163.5 240.9000000000001 151.1V94.8C240.9000000000001 67.8 219 45.9 192 45.9V200.1C192 213.3 202.7 224 215.9 224H370.1C370.1 197 348.2000000000001 175.1 321.2000000000001 175.1z" />
    +    <glyph glyph-name="reddit-alien"
    +      unicode="&#xF281;"
    +      horiz-adv-x="512" d=" M440.3 244.5C425.3 244.5 412.1 238.3 402.4000000000001 228.6C366.7000000000001 253.3 318.6 269.2 265.3000000000001 270.9L293 395.7L381.2 375.9C381.2 354.3 398.8 336.7 420.4 336.7C442.4 336.7 460.1 354.8 460.1 376.4S442.5 416.1 420.4 416.1C405 416.1 391.7 406.8 385.1 394.1L287.7 415.7C282.8 417 278 413.5 276.7 408.6L246.3 271C193.4 268.8 145.8 252.9 110 228.2C100.3 238.3 86.6 244.5 71.6 244.5C16 244.5 -2.2 169.9 48.7 144.4C46.9 136.5 46.1 128.1 46.1 119.7C46.1 35.9 140.5 -32 256.4 -32C372.8 -32 467.2 35.9 467.2 119.7C467.2 128.1 466.3 136.9 464.1 144.8C514 170.4 495.6 244.5 440.3 244.5zM129.4 139.1C129.4 161.1 147 178.8 169.1 178.8C190.7 178.8 208.3 161.2 208.3 139.1C208.3 117.5 190.7 99.9 169.1 99.9C147.1 99.8 129.4 117.5000000000001 129.4 139.1zM343.7000000000001 45.6C307.3000000000001 9.2 204.6000000000001 9.2 168.2000000000001 45.6C164.2000000000001 49.1 164.2000000000001 55.3 168.2000000000001 59.3C171.7000000000001 62.8 177.9 62.8 181.4 59.3C209.2000000000001 30.8 301.4000000000001 30.3 330.4000000000001 59.3C333.9000000000001 62.8 340.1 62.8 343.6 59.3C347.7000000000001 55.3 347.7000000000001 49.1 343.7000000000001 45.6zM342.9000000000001 99.8C321.3 99.8 303.7000000000001 117.4 303.7000000000001 139C303.7000000000001 161 321.3000000000001 178.7 342.9000000000001 178.7C364.9000000000001 178.7 382.6 161.1 382.6 139C382.5 117.5 364.9000000000001 99.8 342.9000000000001 99.8z" />
    +    <glyph glyph-name="reddit-square"
    +      unicode="&#xF1A2;"
    +      horiz-adv-x="448" d=" M283.2 102.5C285.9 99.8 285.9 95.7 283.2 93.3C258.7 68.8 189.4 68.7 164.8 93.3C162.1 95.7 162.1 99.8 164.8 102.5C167.2 104.9 171.3 104.9 173.7 102.5C192.4 83.3 254.7 82.9 274.2 102.5C276.6 104.8 280.8 104.8 283.2 102.5zM191.9 156.3C191.9 171.2 180 183.1 165.4 183.1C150.5 183.1 138.6 171.2000000000001 138.6 156.3C138.6 141.7 150.5 129.8 165.4 129.8C180 129.8 191.9 141.7 191.9 156.3zM282.6 183.1C268 183.1 256.1 171.2000000000001 256.1 156.3C256.1 141.7 268 129.8 282.6 129.8C297.5 129.8 309.4 141.7 309.4 156.3C309.4 171.2 297.5 183.1 282.6 183.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM348.3 227.4C338.2 227.4 329.3 223.2 322.7 216.7C298.6 233.4 266.2 244.1 230.2 245.3L248.9 329.5L308.4 316.1C308.4 301.5 320.3 289.6 334.9 289.6C349.8 289.6 361.7 301.8 361.7 316.4000000000001C361.7 331 349.8 343.2000000000001 334.9 343.2000000000001C324.5 343.2000000000001 315.6 337 311.1 328.3L245.4 342.9000000000001C242.1 343.8 238.9 341.4000000000001 238 338.1L217.5 245.3C181.8 243.8 149.7 233.1 125.6 216.4C119.1 223.2 109.8 227.4 99.7 227.4C62.2 227.4 49.9 177 84.2 159.9C83 154.5 82.4 148.9 82.4 143.2C82.4 86.7 146.1 40.9 224.3 40.9C302.8 40.9 366.5 86.7 366.5 143.2C366.5 148.9 365.8999999999999 154.8 364.3999999999999 160.2C398 177.4 385.5999999999999 227.4 348.2999999999999 227.4z" />
    +    <glyph glyph-name="reddit"
    +      unicode="&#xF1A1;"
    +      horiz-adv-x="512" d=" M201.5 142.5C187.7 142.5 176.6 153.6 176.6 167.1C176.6 180.9 187.7 192 201.5 192C215.1 192 226.1 180.9 226.1 167.1C226.1 153.5 215 142.5 201.5 142.5zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM371.7 233.2C362.3 233.2 354 229.3 347.9 223.2C325.5 238.7 295.3 248.7 261.8 249.8L279.2 328.1L334.5999999999999 315.6C334.5999999999999 302 345.7 291 359.2 291C373 291 384.0999999999999 302.3 384.0999999999999 315.9S372.9999999999999 340.8 359.2 340.8C349.5 340.8 341.2 335 337.0999999999999 327L275.8999999999999 340.6C272.8999999999999 341.4 269.7999999999999 339.2 269 336.2L249.9 249.8C216.6999999999999 248.4 186.8 238.5 164.4 223C158.3 229.4 149.7 233.2 140.3 233.2C105.4 233.2 94 186.3 125.9 170.3999999999999C124.8 165.3999999999999 124.2 160.1999999999999 124.2 154.8999999999999C124.2 102.2999999999999 183.4 59.6999999999999 256.2 59.6999999999999C329.3 59.6999999999999 388.5 102.3 388.5 154.8999999999999C388.5 160.1999999999999 387.8999999999999 165.6999999999999 386.6 170.6999999999999C417.9 186.6999999999999 406.4 233.2 371.7 233.2zM302.8 117C284.6 98.8 226.7 99.1 209.2 117C207 119.2 203.1 119.2 200.9 117C198.4 114.5 198.4 110.6 200.9 108.4C223.7 85.6 288.2 85.6 311.1 108.4C313.6 110.6 313.6 114.5 311.1 117C308.9000000000001 119.2 305 119.2 302.8 117zM310.5 192C296.9 192 285.9 180.9 285.9 167.1C285.9 153.5 297 142.5 310.5 142.5C324.3 142.5 335.4 153.6 335.4 167.1C335.4 180.9 324.4 192 310.5 192z" />
    +    <glyph glyph-name="rendact"
    +      unicode="&#xF3E4;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56C266.6 -56 284.7 -53.9 302.1 -50.1C296.5 -42.7 291.3 -35.7 286.2000000000001 -28.8C273.8000000000001 -30.9 261.0000000000001 -32.1 247.9000000000001 -32.1C124.3 -32 24 68.3 24 192S124.3 416 248 416S472 315.7 472 192C472 121 439 57.8 387.5 16.7C361.6 -2.1 348.4 -4.7 304 60.9C225.3 173.8 256 132 230.3 169.2C303.1 160.3 458.8 241.2 398.9 337.8C314 474.8 15 354.2 59.7 221.6C62.9 211.8 74.1 183 105.3 183C107.3 183 107.9 183.6 107.3 184.7C102.9 193.4 87.2 194.5 87.2 222.1C87.2 262.6 127.7 311.7 187.5 342.1C253.6 374.4 319.4 372.3 345.7 336.7C372.9 298.4 324.8 217.5 225.3 199.8C232.8 209.2 282.3 275 288.1 283.8C310.8 318.4 311.7 332.8 302.1 343C286.6 359.9 272.6 353.3 251.4 354.7C240.6 355.6 137.7 173.5 115 137.8C109.1 128.8 93.8 103.6999999999999 93.8 86.9C93.8 65.6 96.6 35.5 114.4 35.5C125 35.5 122.4 54.2 122.4 62.1C122.4 75 149.8 111.5 197.2 166.7000000000001C217.6 130.6 254.9 52.4 327.4 -42.9999999999999C425.4 -9.8999999999999 495.9 82.8000000000001 495.9 192.0000000000001C496 329 385 440 248 440z" />
    +    <glyph glyph-name="renren"
    +      unicode="&#xF18B;"
    +      horiz-adv-x="512" d=" M214 278.9C214 168.5 153 73.5 66.4 31.5C30 74.8 8 130.3 8 191.4C8 314.1 97.1 415.8 214 435.5V278.9zM255 -56C212.1 -56 171.7 -45 136.5 -25.6C193.7 10.5 239.9 65.1 255 129C270.5 65.1 316.7 10.5 373.8 -25.7C338.7 -45 298.3 -56 255 -56zM445.6 31.5C359 73.5 298 168.4 298 278.9V435.5C414.9 415.8 504 314.1 504 191.4C504 130.3 482 74.8 445.6 31.5z" />
    +    <glyph glyph-name="replyd"
    +      unicode="&#xF3E6;"
    +      horiz-adv-x="448" d=" M320 -32H128C57.6 -32 0 25.6 0 96V288C0 358.4 57.6 416 128 416H320C390.4 416 448 358.4 448 288V96C448 25.6 390.4 -32 320 -32zM193.4 174.8C187.3 176.8 181.8 177.9 177 177.9C169.8 177.9 163.5 176.0000000000001 158.1 172.3C152.7 168.6 148.5 163.3 145.3 156.5H144.2L140 174.8H112V35.9H148.1V125.6C149.6 131 152.5 135.4 156.8 138.8C161.1 142.1999999999999 166.6 143.9 173 143.9C177.6 143.9 182.8 142.9 188.6 140.8L193.4 174.8zM308.6 71.4C305.4000000000001 69 300.9000000000001 66.6 294.9000000000001 64.3C288.9000000000001 61.9999999999999 282.1 60.8 274.5000000000001 60.8C262.3000000000001 60.8 253.4000000000001 63.8 248.0000000000001 69.6999999999999C242.5000000000001 75.5999999999999 239.5000000000001 84.3999999999999 239.0000000000001 96.0999999999999H322.3000000000001C323.2000000000001 100.8999999999999 323.9000000000001 105.4999999999999 324.4000000000001 109.9999999999999C324.9000000000001 114.3999999999999 325.1000000000001 118.5999999999999 325.1000000000001 122.4999999999999C325.1000000000001 133.1999999999999 323.5000000000001 142.1999999999999 320.4000000000001 149.3999999999999C317.2000000000001 156.5999999999999 313.1000000000001 162.3999999999999 307.9000000000001 166.5999999999999C302.7000000000001 170.8999999999999 296.8000000000001 173.8999999999999 290.1000000000001 175.7999999999999C283.4000000000001 177.5999999999999 276.6000000000001 178.5999999999999 269.5000000000001 178.5999999999999C248.4000000000001 178.5999999999999 232.0000000000001 172.4999999999998 220.3000000000001 160.2999999999999S202.8000000000001 129.7999999999999 202.8000000000001 105.2999999999998C202.8000000000001 82.4999999999998 208.0000000000001 64.5999999999999 218.4000000000001 51.5999999999999C228.8000000000001 38.4999999999998 245.2000000000001 31.9999999999998 267.6000000000001 31.9999999999998C278.3000000000001 31.9999999999998 288.5000000000001 33.4999999999998 298.0000000000001 36.5999999999999C307.5000000000001 39.6999999999999 315.1000000000001 43.3999999999999 320.6000000000001 47.7999999999998L308.6000000000001 71.3999999999999zM286.8 141.7C290.6 136.3 292.1 128.6 291.4000000000001 118.6H239.7000000000001C240.6000000000001 128 243.4000000000001 135.6 247.9000000000001 141.2C252.4000000000001 146.8 259.4000000000001 149.7 268.9000000000001 149.7C277.1 149.8 283.0000000000001 147.1 286.8 141.7zM366.7000000000001 139.2C370.8000000000001 135.3 376.1 133.4 382.8000000000001 133.4C389.8000000000001 133.4 395.4000000000001 135.3 399.5000000000001 139.2S405.6000000000001 148.3 405.6000000000001 154.8S403.6000000000001 166.4 399.5000000000001 170.2C395.4000000000001 174 389.9000000000001 175.9 382.8000000000001 175.9C376.1000000000001 175.9 370.8000000000001 174 366.7000000000001 170.2C362.6 166.4 360.6 161.3 360.6 154.8S362.6 143.1 366.7000000000001 139.2zM366.7000000000001 38.7C370.8000000000001 34.8 376.1 32.9 382.8000000000001 32.9C389.8000000000001 32.9 395.4000000000001 34.8 399.5000000000001 38.7S405.6000000000001 47.8 405.6000000000001 54.3S403.6000000000001 65.9 399.5000000000001 69.7C395.4000000000001 73.5 389.9000000000001 75.4 382.8000000000001 75.4C376.1000000000001 75.4 370.8000000000001 73.5 366.7000000000001 69.7C362.6 65.9 360.6 60.8 360.6 54.3C360.6 47.7 362.6 42.6 366.7000000000001 38.7z" />
    +    <glyph glyph-name="researchgate"
    +      unicode="&#xF4F8;"
    +      horiz-adv-x="448" d=" M0 416V-32H448V416H0zM262.2 81.6C255.6 78.6 229 75.6 212.2 95.8C203 106.4 186.9 129.1 170 159.4C161.1 159.4 155.3 159.4 148.6 160.0000000000001V113.6000000000001C148.6 90.1000000000001 154.6 92.4000000000001 174.4 89.7000000000001V81.6000000000001C167.5 81.9000000000001 151.3 82.4000000000001 138.8 82.4000000000001C125.7 82.4000000000001 112.7 81.8000000000001 105.2 81.6000000000001V89.7000000000001C120.7 92.6000000000001 127.2 91.0000000000001 127.2 113.6000000000001V223C127.2 245.6 120.8 244 105.2 246.9V255C131 254 158.3 255.6 176.1 255.6C207.8 255.6 232.0000000000001 241.2 232.0000000000001 210C232.0000000000001 188.9 215.3000000000001 167.8 192.8 162.5C206.4 138.3 222.8 116.9 235 103.6C242.2 95.8 252.2 88.9 262.2 88.9V81.6zM285.1 216.6C261.8 216.6 252.9 232.3 252.9 248.8V281C252.9 293.2 261.7 311.4 286.9 311.4S317.3 293.5 317.3 293.5L306.6 286.3S301.1 298.8 286.9 298.8C279 298.8 267.2 291.5 267.2 279.1V252.3C267.2 238.9 273.8 229 285.1 229C299.2 229 306.6 239.9 306.6 255.8H288.7V266.5H319.1C319.1 246 323.8 216.6 285.1 216.6zM168.6 171.9C159.2 171.9 155 172.2000000000001 148.6 172.7000000000001V242.4000000000001C155 243.0000000000001 163.6 243.0000000000001 171.1 243.0000000000001C194.4 243.0000000000001 208.3 230.8000000000001 208.3 208.5C208.3 186.6 193.3 171.9 168.6 171.9z" />
    +    <glyph glyph-name="resolving"
    +      unicode="&#xF3E7;"
    +      horiz-adv-x="496" d=" M281.2 169.8C327.2 183.1 330.8 193.3 325.2 213.2L314 252.5C307.9 273.4 295.6 280.6 242.9 265.3L54.7 211.2L83.3 112.6L281.2000000000001 169.8zM248.5 440C131.4 440 33.2 359.3 7.2 250.5L229.1 314.4C263.9 324.6 283.3 326.1 308.4 322.6C344.7 316.5 361.1 297.6 369.8 267.4L380.5 229.6C388.7 201.5 381.5 179 357 156C337.6 138.6 325.8 131.5 295.6 122.8L203 96.2L423.4 69.1L433.1 34.9L385 21.6L98.1999999999999 58.9L121.1999999999999 -21.3C158 -43.3 201.5 -56 247.5 -56C384.5 -56 495.9999999999999 55.4 495.9999999999999 192.3C497 328.6 385.5 440 248.5 440zM38.3 59.4L0 191.2C0 142.7 14.3 97.8 38.3 59.4z" />
    +    <glyph glyph-name="rev"
    +      unicode="&#xF5B2;"
    +      horiz-adv-x="410.22" d=" M270.67 173.11C270.67 136.9500000000001 241.26 107.54 205.11 107.54S139.54 136.9500000000001 139.54 173.11S168.95 238.67 205.11 238.67S270.67 209.27 270.67 173.11zM410.2200000000001 178.16H410.0900000000001C408.6 239.7100000000001 379.99 294.51 335.7700000000001 331.14L290.3900000000001 304.9400000000001C333.5600000000001 276.9100000000001 362.2000000000001 228.3100000000001 362.2000000000001 173.12C362.2000000000001 86.5 291.73 16.03 205.1100000000001 16.03S48.02 86.5 48.02 173.12C48.02 254.98 110.98 322.39 191.01 329.55V290.43L299.7700000000001 353.2200000000001L191.01 416V377.68C84.31 370.43 0 281.64 0 173.11C0 61.52 89.12 -29.1799999999999 200.06 -31.87V-32H410.2200000000001V178.16z" />
    +    <glyph glyph-name="rocketchat"
    +      unicode="&#xF3E8;"
    +      horiz-adv-x="448" d=" M448 191.8C448 279 348.4 345.1 228.2 345.1C209.4 345.1 190.9 343.5 172.9 340.3C161.8 350.8 148.7 360.3 134.9 367.7000000000001C61.2 403.8 0 368.6 0 368.6S56.9 321.5 47.6 280.3C-4.7 228 -4.9 156.2000000000001 47.6 103.7000000000001C56.9 62.4 0 15.4 0 15.4S61.2 -19.8 134.9 16.2C148.7 23.7 161.8 33.1 172.9 43.6C190.9 40.4 209.4 38.8 228.2 38.8C348.5 38.9 448 104.6 448 191.8zM228.3 67.8C204.6 67.8 182 70.6 161 75.6C139.7 49.8 92.9 13.9 47.4 25.5C62.2 41.5 84.1 68.6 79.4 113.1C52.1 134.5 35.8 161.8 35.8 191.6C35.8 260 122 315.5 228.3 315.5S420.8 260 420.8 191.6C420.8 123.3 334.6 67.8 228.3 67.8zM253.9 191.7000000000001C253.9 177.5000000000001 242.4 165.9 228.3 165.9C214.2 165.9 202.7 177.4 202.7 191.7000000000001C202.7 205.9 214.2 217.5000000000001 228.3 217.5000000000001C242.4 217.5000000000001 253.9 205.9000000000001 253.9 191.7000000000001zM342.8 191.7000000000001C342.8 177.5000000000001 331.4000000000001 165.9 317.2 165.9C303.1 165.9 291.6 177.4 291.6 191.7000000000001C291.6 205.9 303 217.5000000000001 317.2 217.5000000000001C331.3 217.5000000000001 342.8 205.9000000000001 342.8 191.7000000000001zM164.9 191.7000000000001C164.9 177.5000000000001 153.5 165.9 139.3 165.9C125.2 165.9 113.7 177.4 113.7 191.7000000000001C113.7 205.9 125.1 217.5000000000001 139.3 217.5000000000001C153.5 217.5000000000001 164.9 205.9000000000001 164.9 191.7000000000001z" />
    +    <glyph glyph-name="rockrms"
    +      unicode="&#xF3E9;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM405.4 20.5H315.4L203.4 151.8C185.5 172.2 199.5 207.9 230 207.9H305.3L220.7 307.2L136.4 208.3H46.4L193.5 380.8C207.9 399.2 234.8 398.1 248 380.8L405.7 195.7C424.7 172.9 407.7 138.5 378.1 139.6C377.5 139.6 303.9 139.4 303.9 139.4L405.4 20.5z" />
    +    <glyph glyph-name="safari"
    +      unicode="&#xF267;"
    +      horiz-adv-x="512" d=" M236.9 191.2C236.9 200.3 243.5 208.9 253.2 208.9C262.1 208.9 270.6 202.5 270.6 192.8C270.6 183.7 264.2000000000001 175.1 254.5000000000001 175.1C245.5000000000001 175.1 236.9000000000001 181.8 236.9000000000001 191.2zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM477.4 192C477.4 314.3 378.3 413.4 256 413.4S34.6 314.3 34.6 192S133.7 -29.4 256 -29.4S477.4 69.7 477.4 192zM404.9 95.4C404.9 91.8 417.9 85.2 421.2 83.2C393.8 41.7 351.4 11.8 303.3 -0.1L298.9 18.4C298.6 20.9 297 21.2 294.7 21.2C292.8 21.2 291.7 18.4 291.9 17L296.3 -1.8C283 -4.6 269.5 -6 255.9 -6C219.6 -6 183.9 4.2 152.9 23.1C154.5999999999999 25.9 165.0999999999999 41.1 165.0999999999999 43.3C165.0999999999999 45.2 163.4 46.9 161.5 46.9C157.5999999999999 46.9 149.3 30.3 146.8 27.0000000000001C105 54.7 74.8 97.6 63.2 146.6L82.3 150.8C84.5 151.4 85.1 153 85.1 155C85.1 156.9 82.3 158 80.7 157.8L62 153.5C59.5 166.2 58.1 179 58.1 192C58.1 229.1 68.6 265.6 88.3 296.9C91.1 295.2000000000001 104.4 286.1 106.6 286.1C108.5 286.1 110.2 287.5 110.2 289.4C110.2 293.3 95.5 300.7000000000001 92.2 303C120.4 344.2 163.3 373.9 212 384.9L216.2 366.4C216.8 364.2 218.4 363.6 220.4 363.6S223.4 366.4 223.2 368L219 386.3C231.2 388.5 243.6 389.9 256.1 389.9C293.2000000000001 389.9 329.4000000000001 379.4 361 359.7C359.1 356.9 350.2 343.9 350.2 341.7C350.2 339.8 351.6 338.1 353.5 338.1C357.4 338.1 364.8 352.5 366.8 355.8C407.8 328.1 437.1 285.8 448.5 237.6L433 234.3C430.5 233.7 430.2 232.1 430.2 229.9C430.2 228 433 226.9 434.4 227.1L450.2 230.7C452.7 218 454.1 205 454.1 192C454.1 155.7 444.1 120 425.3 89.3C422.5 90.7 410.9 99 408.7 99C406.5999999999999 99 404.8999999999999 97.3 404.8999999999999 95.4zM371.7 337.6C358.7 325.4 237.5 213.9 234.1 208.1L137.5 47.6C150.2 59.4999999999999 271.7 171.6 274.8 176.9L371.7000000000001 337.6z" />
    +    <glyph glyph-name="sass"
    +      unicode="&#xF41E;"
    +      horiz-adv-x="640.4" d=" M551.1 156.1C528.7 156 509.3 150.6 493.1 142.6C487.2 154.5 481.1 164.9 480.1 172.7000000000001C478.9 181.8000000000001 477.6 187.2000000000001 479 198.0000000000001S486.7 224.1000000000001 486.6 225.2000000000001C486.5 226.3000000000001 485.2 231.8000000000001 472.3 231.9000000000001C459.4 232.0000000000001 448.3 229.4000000000001 447 226.0000000000001C445.7 222.6 443.2 214.9 441.7 206.9C439.4 195.2000000000001 415.9 153.4 402.6 131.6C398.2 140.1 394.5 147.6 393.7 153.6C392.5 162.7000000000001 391.2 168.1 392.6 178.9S400.3 205 400.2 206.1C400.1 207.2 398.8 212.7 385.9 212.8C373 212.9 361.9 210.3 360.6 206.9C359.3 203.5 357.9 195.5 355.3 187.8C352.7 180.1 321.4 110.5 313.2 92.4C309 83.2 305.3999999999999 75.8 302.8 70.8S302.6 70.4999999999999 302.4 69.9C300.2 65.6 298.9 63.2 298.9 63.2V63.1C297.2 59.9 295.3 56.9999999999999 294.4 56.9999999999999C293.8 56.9999999999999 292.5 65.3999999999999 294.7 76.8999999999999C299.4 101.0999999999999 310.5 138.6999999999999 310.4 140C310.3 140.6999999999999 312.5 147.1999999999999 303.1 150.6999999999999C294 154 290.7 148.5 289.9 148.5C289.1 148.5 288.5 146.5 288.5 146.5S298.6 188.8999999999999 269.1 188.8999999999999C250.7 188.8999999999999 225.1 168.6999999999999 212.5 150.3999999999999C204.6 146.0999999999999 187.5 136.7999999999999 169.5 126.8999999999999C162.6 123.0999999999999 155.5 119.1999999999999 148.8000000000001 115.5C148.3000000000001 116 147.9 116.5 147.4 117C111.6 155.1999999999999 45.5 182.1999999999999 48.3 233.5C49.3 252.2 55.8 301.3 175.4 360.9C273.4000000000001 409.7 351.8000000000001 396.3 365.3000000000001 366.5C384.7000000000001 324 323.4000000000001 244.9 221.6000000000001 233.5C182.8000000000001 229.2 162.4000000000001 244.2 157.3000000000001 249.8C152.0000000000001 255.7 151.2000000000001 256 149.2000000000001 254.9C145.9000000000001 253.1 148.0000000000001 247.9 149.2000000000001 244.8C152.2000000000001 236.9 164.7000000000001 222.9 186.0000000000001 215.9C204.7000000000001 209.8 250.2000000000001 206.4 305.2000000000001 227.7C367 251.5 415.1 317.8 401 373.3C386.6 429.7 293.1 448.2 204.6 416.8C151.9 398.1 94.9 368.7 53.9 330.4C5.2 284.8 -2.6 245.1 0.6 228.5C12 169.6 93.2 131.2 125.7 102.8C124.1 101.9 122.6 101.1 121.2 100.3C104.9 92.2 43 59.8 27.5 25.6C10 -13.2 30.4 -41 43.8 -44.8C85.6 -56.4 128.4 -35.4999999999999 151.4 -1.1999999999999S171.6 77.9000000000001 161 98.3000000000001C160.9 98.6000000000001 160.7 98.8000000000001 160.6 99.1000000000001C164.8 101.6000000000001 169.1 104.1000000000001 173.4 106.6000000000001C181.7 111.5000000000001 189.8 116.0000000000001 196.9 119.9000000000001C192.9 109.1000000000001 190 96.1000000000001 188.5 77.3000000000001C186.7 55.3000000000001 195.8 26.8000000000001 207.6 15.6000000000001C212.8 10.7000000000001 219.1 10.6000000000001 223 10.6000000000001C236.8 10.6000000000001 243 22.0000000000001 249.9 35.6000000000001C258.4 52.2000000000001 265.9 71.5000000000001 265.9 71.5000000000001S256.5 19.3000000000001 282.2 19.3000000000001C291.6 19.3000000000001 301 31.4000000000001 305.2 37.6000000000001V37.5000000000001S305.4 37.9 305.9 38.7C306.9 40.2 307.4 41.1 307.4 41.1V41.4C311.2 47.9 319.5 62.8 332 87.4C348.2 119.2000000000001 363.7 158.9 363.7 158.9S365.1 149.2000000000001 369.9 133.1C372.7 123.6 378.6 113.2000000000001 383.3 103.1C379.5 97.9 377.2 94.9 377.2 94.9S377.2 94.8 377.3 94.7000000000001C374.3 90.7000000000001 370.9 86.4 367.4 82.2000000000001C354.6 67.0000000000001 339.4 49.6 337.4 44.6C335 38.7 335.6 34.3 340.2 30.9C343.6 28.3 349.6 27.9 355.9 28.4C367.4 29.2 375.5 32.0000000000001 379.4 33.8C385.6 36 392.8 39.5 399.6 44.4C412.1 53.6 419.7 66.8 419 84.2000000000001C418.6 93.8000000000001 415.5 103.4 411.7 112.4C412.8 114.0000000000001 414 115.7000000000001 415.0999999999999 117.4C434.8999999999999 146.3 450.2 178.0000000000001 450.2 178.0000000000001S451.5999999999999 168.3000000000001 456.3999999999999 152.2000000000001C458.7999999999999 144.1 463.4999999999999 135.2000000000001 467.7999999999999 126.5000000000001C449.1999999999999 111.4 437.6999999999999 93.9 433.6999999999999 82.4C426.2999999999999 61.1 432.0999999999999 51.5000000000001 442.9999999999999 49.3C447.8999999999999 48.3 454.8999999999999 50.6 460.0999999999999 52.8C466.5999999999999 55 474.3999999999999 58.5 481.6999999999999 63.9C494.1999999999999 73.1 506.3 86.0000000000001 505.4999999999999 103.5000000000001C505.1999999999999 111.4 502.9999999999999 119.3000000000001 500.1 126.9C515.8 133.5000000000001 536.1999999999999 137.1 562.1999999999999 134.1C617.9 127.6 628.8 92.8 626.6999999999999 78.3C624.5999999999999 63.7 612.9 55.7 608.9999999999999 53.3C605.0999999999999 50.9 603.8999999999999 50 604.1999999999999 48.2C604.6999999999999 45.6 606.4999999999999 45.7 609.8 46.3C614.4 47.1 639 58.1 640.0999999999999 85C641.6999999999999 119 608.9999999999999 156.4 551.0999999999999 156.1zM121.8 11.4C103.4 -8.7 77.6 -16.3 66.5 -9.9C54.6 -3 59.3 26.6 82 48C95.8 61 113.6 73 125.4 80.4C128.1 82 132 84.4 136.8 87.3C137.6 87.8 138 87.9999999999999 138 87.9999999999999C138.9 88.6 139.9 89.1 140.9 89.6999999999999C149.2 59.3 141.2 32.4999999999999 121.8 11.3999999999999zM256.2 102.8C249.8 87.1 236.3 47.1 228.1 49.1999999999999C221.1 50.9999999999999 216.8 81.4999999999999 226.7 111.4999999999999C231.7 126.6 242.3 144.6 248.6 151.6C258.7 162.9 269.8 166.5 272.4 162C275.9 156.1 260.2 112.6 256.2 102.8zM367.2 49.8C364.5 48.4 362 47.4999999999999 360.8 48.1999999999999C359.9000000000001 48.6999999999999 361.9000000000001 50.5999999999999 361.9000000000001 50.5999999999999S375.8 65.4999999999999 381.3 72.2999999999999C384.5 76.2999999999999 388.2 80.9999999999999 392.2 86.1999999999999C392.2 85.6999999999999 392.3 85.1999999999999 392.3 84.5999999999999C392.2 66.6999999999999 375 54.5999999999999 367.2 49.7999999999998zM452.8 69.3C450.8 70.6999999999999 451.1 75.4 457.8 89.9999999999999C460.4 95.6999999999999 466.4 105.3 476.8 114.5C477.9999999999999 110.6999999999999 478.6999999999999 107.1 478.6999999999999 103.6999999999999C478.5999999999999 81.1999999999999 462.4999999999999 72.8 452.8 69.3z" />
    +    <glyph glyph-name="schlix"
    +      unicode="&#xF3EA;"
    +      horiz-adv-x="448" d=" M350.5 290.3L296.3 336.4L369.7000000000001 375.4L448.0000000000001 331.2L350.5000000000001 290.3zM192 325.9L237.7 354.1L272.4 319.5L217 290.5L192 325.9zM126.9 319.3L158.8 341.4L176 313L139.3 290.5L126.9 319.3zM103.6 231.1L94.8 265.9000000000001L124.4 284.2000000000001L137.5 248.9000000000001L103.6 231.1zM82.4 314.8L106.3 332.9L115.2 308.9L88.5 290.6L82.4 314.8zM59 241.5L55.4 269.9L77.7 285.4L83.8 256.7000000000001L59 241.5zM28.4 224.9L49.2 237.7L52.5 204.3L29.6 192.3L28.4 224.9zM1.4 180L20.6 190.2L21 152L0 143.2L1.4 180zM60.5 120.7L32.2 112.4L30.6 159.2L55.7 169.9L60.5 120.7zM99 184.8L67.9 171.8L62.7 212.6L90.1 227L99 184.8zM123.2 71L81.6 65.1L73.5 128.6L108.7 139.4L123.2 71zM151.7 210.9L172.9 153.8L126.7 140.2L113 194.3L151.7 210.9zM237.4 -19.6L166.5 -16.3L142.2 79.5L197.4 88.1L237.4 -19.6zM152.5 260.1L194.7 282.5L222.7 236.6L171.9 215.3L152.5 260.1zM193.5 165.1999999999999L254.8 183.8999999999999L307.6 97.3L227.8 85.9999999999999L193.5 165.1999999999999zM244.9 250.8L312.2 279.5999999999999L377.7 214.1999999999999L289.1 188L244.9000000000001 250.8z" />
    +    <glyph glyph-name="scribd"
    +      unicode="&#xF28A;"
    +      horiz-adv-x="384" d=" M42.3 195.3C26.2 214.3 17.6 241.2 17.5 275.2000000000001C17.5 375.6 92.7 428.3 184.7 428.3C283.3 429.9000000000001 341.5 379.3 369 357.7000000000001L318.5 285.6L281.2 310.2000000000001L308.1 348.8C271.6 372.8 228.7 385.3 185.1 384.6C134.4 385.4 73.4 357.4 73.4 308.4C73.4 289.7000000000001 84.6 287.7000000000001 102 292.8C125.3 298.1 143.9 292.2000000000001 157.8 278.8C184.2 254.5 181 211.2 157.1 186.9C127.9 157.4 71.9 159.6 42.3 195.3zM360 189.4C344.5 208.2000000000001 321.1 218.8000000000001 296.8 218C258.7 220 225.7 190 226.3 150.8C225.6 134 232.3 117.8 244.7 106.5C258.8 92.6 277.7000000000001 86.8 301 92.1C318.4 97.2000000000001 329.6 95.2000000000001 329.6 76.5C329.6 72.2 329.1 68 328.2000000000001 63.8C311.5000000000001 22.9 268.7000000000001 -0.6 206.8000000000001 -0.6C154.9 -0.8 104.4 15.8 62.7000000000001 46.7L96.4000000000001 86.1L60.8000000000001 113.5L0 41.7L15.4 27.9C67.9 -18.9 135.8 -44.6 206.1 -44.3C257.5 -44.3 300.5 -33.8 339.7 -0.2C396.8 51.2 393.9 149 360 189.4z" />
    +    <glyph glyph-name="searchengin"
    +      unicode="&#xF3EB;"
    +      horiz-adv-x="460" d=" M220.6 317.7L153.4 289.5V404.8L98.7 214.5L153.4 238.7V108.4L220.6 317.7zM137.4 414.4L136.1 409.7L120.9 356.8C80.6 341.3 52 302.2 52 256.5C52 204.2 86.3 160.6 135.4 151V97.4C57.5 107.9 0 175.6 0 256.4C0 336.9 59.8 403.6 137.4 414.4zM448.8 -32.8C437.6 -44 425.7 -45.1 420.2 -43.3C414.8 -41.5 393.0999999999999 -23.4 359.8 1.1C326.5 25.7 326.2 36.8 316.8 57.8C307.4 78.6999999999999 286.4 100.4 259.3 110.1999999999999L249.6 124.8999999999999C224.9 107.9999999999999 196.6 97.9999999999999 168.3 96.1999999999999L170.4 102.8L186.3 152.3C232.8 164.1999999999999 267.2 206.3 267.2 256.5C267.2 311 228.8 358.5999999999999 171.1999999999999 363.5999999999999V415.7C254.4 410.6 320 341.2 320 256.4C320 222.8 308.8 191.7 291 166L305.6 156.4C315.4000000000001 129.3 337.1 108.4 358 99S390.2 89.3 414.8 56C439.4000000000001 22.8 457.5 1.1 459.3 -4.3S460 -21.6 448.8 -32.8zM438.9 -14.9C438.9 -10.5000000000001 435.3 -6.9 430.9 -6.9S422.9 -10.5000000000001 422.9 -14.9S426.5 -22.9 430.9 -22.9S438.9 -19.3 438.9 -14.9z" />
    +    <glyph glyph-name="sellcast"
    +      unicode="&#xF2DA;"
    +      horiz-adv-x="448" d=" M353.4 416H94.7C42.6 416 0 373.4 0 321.4V62.7000000000001C0 10.6 42.6 -32 94.7 -32H353.4C405.5 -32 448.1 10.6 448.1 62.6V321.4C448.1 373.4 405.5 416 353.4 416zM303.4 99.6C275.5 51.4 213.5 34.7 165.2 62.4C142.3 22.6 110.3 53.8 122.9 75.6L138.6 102.8C144.5 113.1 157.8 116.7 168.1 110.7C186.7 99.9 168 110.8 186.6 100C214.2 84.1 250 93.7 266 121.3C281.9 148.9 272.3 184.7 244.7 200.7C226.9 210.9 244.1 201.1 226.1 211.3C201.5 225.5 222.7 263.2000000000001 247.7 248.8C266.3 238 247.6 248.9 266.2 238.1C314.6 210.1 331.3 147.8 303.4 99.6zM325.2 308.4000000000001C308.2 278.9000000000001 308.9 279.6 306.2 276.9000000000001C299.7 270.4000000000001 289.9 268.2000000000001 279.7 273.3000000000001C261.1 284.1 279.8 273.2000000000001 261.2 284C233.6 299.9000000000001 197.8 290.3000000000001 181.8 262.7000000000001S175.5 199.3 203.1 183.3C203.1 183.3 221.6 172.7 221.7 172.7C246.3 158.5 225.1 120.8 200.1 135.2C181.5 146 200.2 135.1 181.6 145.9C133.4 173.7 116.7 236 144.5 284.3C172.4 332.5 234.4 349.2 282.7 321.5L287.5 329.9C301.8 354.8 339.5 333.2 325.2 308.4z" />
    +    <glyph glyph-name="sellsy"
    +      unicode="&#xF213;"
    +      horiz-adv-x="640" d=" M539.71 210.692C542.774 222.949 544 235.513 544 248.076C544 340.618 468.618 416 376.076 416C298.856 416 231.4420000000001 362.988 213.056 288.219C197.734 301.395 178.122 308.749 157.899 308.749C111.628 308.749 73.937 271.059 73.937 224.788C73.937 217.434 74.857 209.773 77.002 202.419C34.102 182.194 6.217 138.6810000000001 6.217 91.185C6.216 23.157 61.68 -32 129.401 -32H510.599C578.319 -32 633.783 23.157 633.783 91.184C633.784 147.568 594.867 197.209 539.71 210.692zM199.88 46.446C199.88 38.172 192.832 31.125 184.559 31.125H153.61C145.336 31.125 138.289 38.173 138.289 46.446V157.374C138.289 165.6470000000001 145.337 172.6950000000001 153.61 172.6950000000001H184.559C192.833 172.6950000000001 199.88 165.6470000000001 199.88 157.374V46.446zM289.357 46.446C289.357 38.172 282.309 31.125 274.035 31.125H243.086C234.812 31.125 227.765 38.173 227.765 46.446V177.904C227.765 186.178 234.813 193.225 243.086 193.225H274.035C282.309 193.225 289.357 186.177 289.357 177.904V46.446zM378.834 46.446C378.834 38.172 371.7869999999999 31.125 363.5129999999999 31.125H332.5639999999999C324.2899999999999 31.125 317.2419999999999 38.173 317.2419999999999 46.446V209.16C317.2419999999999 217.434 324.2899999999999 224.481 332.5639999999999 224.481H363.5129999999999C371.7869999999999 224.481 378.834 217.433 378.834 209.16V46.446zM465.8609999999999 46.446C465.8609999999999 38.172 458.8129999999999 31.125 450.5389999999999 31.125H422.0419999999999C413.7679999999999 31.125 406.7209999999999 38.173 406.7209999999999 46.446V271.059C406.7209999999999 279.6380000000001 413.7679999999999 286.687 422.0419999999999 286.687H450.5389999999999C458.8129999999999 286.687 465.8609999999999 279.639 465.8609999999999 271.0590000000001V46.446z" />
    +    <glyph glyph-name="servicestack"
    +      unicode="&#xF3EC;"
    +      horiz-adv-x="496" d=" M88 232C169.7 221.8 361.7 129.7 392 0H0C99.5 8.1 184.5 137 88 232zM120 384C152.3 348.4 167.7 300.1 166.4 250.4C249.3 216.7 373.7 126.7 400 0H496C455.3 216.1 222.8 368.5 120 384z" />
    +    <glyph glyph-name="shirtsinbulk"
    +      unicode="&#xF214;"
    +      horiz-adv-x="448" d=" M395.2080000000001 226.417H406V192.875H395.2080000000001V226.417zM395.2080000000001 236.042H406V269.584H395.2080000000001V236.042zM395.2080000000001 149.709H406V183.25H395.2080000000001V149.709zM358.75 312.75H325.208V302.25H358.75V312.75zM395.208 106.542H406V140.0840000000001H395.2080000000001V106.542zM311.5 312.75H277.958V302.25H311.5V312.75zM264.25 312.75H231V302.25H264.25V312.75zM217 312.75H183.75V302.25H217V312.75zM395.208 279.208H406V312.75H372.458V302.25H395.208V279.208zM139.416 20.208L170.041 6.791L174.416 16.708L143.791 30.1249999999999L139.416 20.208zM179.083 3L209.417 -10.708L213.791 -0.792L183.458 12.6249999999999L179.083 2.9999999999999zM395.208 63.375H406V96.917H395.2080000000001V63.375zM60.3749999999999 55.208L91 41.792L95.375 51.416L64.75 65.125L60.375 55.208zM100.0409999999999 37.709L130.666 24.292L135.041 34.209L104.4159999999999 47.625L100.0409999999999 37.709zM232.458 -0.792L236.833 -10.708L267.459 3L263.084 12.625L232.458 -0.792zM350.875 51.4160000000001L355.25 41.792L385.874 55.208L381.5 65.125L350.875 51.416zM311.5 34.209L315.875 24.292L346.5 37.709L342.126 47.625L311.5 34.209zM271.833 16.708L276.208 6.7910000000001L306.833 20.208L302.458 30.125L271.833 16.708zM311.5 401.4170000000001H277.958V390.9170000000001H311.5V401.4170000000001zM405.709 401.4170000000001H372.4580000000001V390.9170000000001H405.709V401.4170000000001zM217 401.4170000000001H183.75V390.9170000000001H217V401.4170000000001zM358.75 401.4170000000001H325.208V390.9170000000001H358.75V401.4170000000001zM264.25 401.4170000000001H231V390.9170000000001H264.25V401.4170000000001zM448 444.292V38.292L221.666 -60.292L0 38.292V444.292H448zM418.834 327.334H29.166V57.25L221.958 -28.5L418.833 57.25V327.334zM418.834 415.125H29.166V356.5H418.833V415.125zM75.542 401.4170000000001H42.291V390.9170000000001H75.542V401.4170000000001zM170.042 401.4170000000001H136.5V390.9170000000001H170.042V401.4170000000001zM122.791 401.4170000000001H89.25V390.9170000000001H122.792V401.4170000000001zM130.375 164.875C130.375 215.042 171.5 256.1670000000001 221.667 256.1670000000001C272.125 256.1670000000001 312.959 215.042 312.959 164.875C312.959 114.417 272.126 73.583 221.667 73.583C171.5 73.584 130.375 114.417 130.375 164.875zM251.125 146.791C251.125 133.666 227.208 132.5 218.459 132.5C206.209 132.5 188.709 135.125 182.584 147.375H181.709L172.666 129C187.542 119.667 201.833 116.75 219.916 116.75C239.458 116.75 270.958 122.583 270.958 147.959C270.958 196.084 192.5 164.292 192.5 185.875C192.5 199 213.208 200.75 222.25 200.75C233.041 200.75 251.416 197.542 257.833 187.626H258.708L267.459 204.542C252.292 210.667 240.042 216.501 223.125 216.501C203 216.501 173.542 210.084 173.542 184.709C173.542 140.375 251.125 172.75 251.125 146.791zM122.791 312.75H89.25V302.25H122.792V312.75zM52.792 302.25H75.542V312.75H42V279.208H52.792V302.25zM52.792 269.584H42V236.042H52.792V269.584zM170.042 312.75H136.5V302.25H170.042V312.75zM52.792 226.417H42V192.875H52.792V226.417zM52.792 140.083H42V106.5409999999999H52.792V140.083zM52.792 183.25H42V149.708H52.792V183.25zM52.792 96.917H42V63.375H52.792V96.917z" />
    +    <glyph glyph-name="shopware"
    +      unicode="&#xF5B5;"
    +      horiz-adv-x="495.99" d=" M395.5 -7.27C352.55 -39.06 301.55 -55.86 248.02 -55.86C110.81 -55.86 0 55.14 0 192.14C0 329.33 111.04 440.14 248.02 440.14C309.32 440.14 368.1600000000001 417.59 413.7000000000001 376.64C416.3200000000001 374.28 414.2800000000001 370 410.8400000000001 370.46C393.17 372.89 374.0900000000001 374.12 354.1300000000001 374.12C224.7700000000001 374.12 131.7300000000001 320.65 131.7300000000001 218.77C131.7300000000001 109.73 223.8600000000001 72.89 308.5600000000001 40.04C342.2000000000001 26.9999999999999 373.9600000000001 14.68 395.5200000000001 -1.5500000000001C397.42 -2.9900000000001 397.4100000000001 -5.8600000000001 395.5000000000001 -7.2700000000001zM494.96 215.05C494.88 215.99 494.41 216.88 493.69 217.49C441.93 260.4500000000001 400.07 277.9700000000001 349.2100000000001 277.9700000000001C265.0800000000001 277.9700000000001 268.9600000000001 225.8 268.9600000000001 224.34C268.9600000000001 181.74 321.0200000000001 162.33 381.3000000000001 139.85C412.3700000000001 128.2600000000001 444.4900000000001 116.28 473.9800000000001 99.92C475.8600000000001 98.87 478.2400000000001 99.73 479.0300000000001 101.74C497.9200000000001 150.13 496.9700000000001 191.97 494.9600000000001 215.05z" />
    +    <glyph glyph-name="simplybuilt"
    +      unicode="&#xF215;"
    +      horiz-adv-x="512" d=" M481.2 384H375.2C360.7 384 348.6 372.2 348.6 357.7V318.1H163.3V357.7C163.3 372.2 151.3 384 136.7 384H30.7C16.1 384 4.3 372.2 4.3 357.7V26.3C4.3 11.8 16.1 0 30.9 0H481.3C496.1 0 507.9 11.8 507.9 26.3V357.7C507.7 372.2 495.9 384 481.2 384zM149.8 92.2C113.2 92.2 83.4 121.9 83.4 158.6C83.4 195.5 113.1 225.2 149.8 225.2C186.7 225.2 216.4 195.5 216.4 158.6C216.4 121.9 186.7 92.2000000000001 149.8 92.2000000000001zM362.2000000000001 92.2C325.3000000000001 92.2 295.6 121.9 295.6 158.8C295.6 195.4 325.3 225.2 362.2000000000001 225.2C398.8000000000001 225.2 428.6 195.5 428.6 158.8C428.6 121.9 398.8 92.1999999999999 362.2000000000001 92.1999999999999z" />
    +    <glyph glyph-name="sistrix"
    +      unicode="&#xF3EE;"
    +      horiz-adv-x="448" d=" M448 -1L301.2 147.8C321.2 175.7 333.1 210 333.1 247C333.1 340.1 258.4 415.9 166.6 415.9C74.7 416 0 340.2 0 247.1S74.7 78.2 166.5 78.2C206.3 78.2 242.8 92.4 271.5 116.1L417.5 -32L448 -1zM166.5 117.2C95.9 117.2 38.4 175.5 38.4 247.1S95.9 377 166.5 377S294.6 318.7 294.6 247.1S237.2 117.2 166.5 117.2z" />
    +    <glyph glyph-name="sith"
    +      unicode="&#xF512;"
    +      horiz-adv-x="448" d=" M0 416L69.71 297.25L10.85 308.77L80.69 217.74A146.741 146.741 0 0 1 80.69 166.29L10.85 75.26L69.71 86.78L0 -32L118.75 37.71L107.23 -21.15L198.26 48.6899999999999C215.28 45.6499999999999 232.73 45.6499999999999 249.74 48.6899999999999L340.77 -21.1500000000001L329.25 37.7099999999999L448 -32L378.29 86.78L437.1500000000001 75.26L367.3100000000001 166.29C370.3400000000001 183.3 370.3500000000001 200.73 367.3100000000001 217.74L437.1500000000001 308.77L378.2900000000001 297.25L448 416L329.25 346.29L340.77 405.19L249.71 335.32C241.21 336.84 232.61 337.61 224 337.61S206.79 336.83 198.29 335.32L107.23 405.19L118.75 346.29L0 416zM224 316.2200000000001C255.8 316.2200000000001 287.6 304.1 311.85 279.85C360.35 231.35 360.3400000000001 152.64 311.85 104.15S184.65 55.69 136.15 104.18C87.65 152.68 87.66 231.39 136.15 279.88C160.3900000000001 304.13 192.2000000000001 316.2199999999999 224 316.2199999999999zM224 279.56C201.58 279.56 179.17 271.04 162.08 253.95C127.9 219.77 127.89 164.27 162.08 130.08S251.73 95.9 285.92 130.08C320.1 164.26 320.11 219.76 285.92 253.95C268.83 271.04 246.42 279.56 224 279.56z" />
    +    <glyph glyph-name="skyatlas"
    +      unicode="&#xF216;"
    +      horiz-adv-x="640" d=" M640 118.7C640 52.8 587.5 4.3 522.5 4.3C356.6 4.3 325.9 254 162.8 254C15.9 254 15.7 41.8 168.4 41.8C210.9 41.8 259.3 59.6 293.7 84.3C299.3 88.4 310.6 100.6 316.5 100.6S327.4 95.6 327.4 89.7C327.4 81.9 314.3 70.6 308.7 65.6C267.8 29.9999999999999 208.4 4.4 154 4.4C70.6 4.3 0 63.4 0 149.3S67.5 298.4 152.8 298.4C338.1 298.4 375.3 52.4999999999999 514.7 52.4999999999999C614.6 52.4999999999999 609.5 192.1999999999999 518.1 192.1999999999999C500.6 192.1999999999999 483.1 180.5999999999999 471.2 180.5999999999999C462.8000000000001 180.5999999999999 455.3000000000001 187.7999999999999 455.3000000000001 196.1999999999999C455.3000000000001 207.7999999999999 460.6000000000001 219.8999999999999 460.6000000000001 232.4999999999999C460.6000000000001 299.0999999999999 409.7000000000001 347.1999999999999 343.7000000000001 347.1999999999999C290.6 347.1999999999999 263.7000000000001 310.2999999999999 254.9000000000001 310.2999999999999C248.7000000000001 310.2999999999999 243.7000000000001 315.2999999999999 243.7000000000001 321.4999999999999C243.7000000000001 327.0999999999999 247.8000000000001 331.7999999999999 251.5000000000001 335.8999999999999C276.8000000000001 364.7 316.2000000000001 379.5999999999999 354.3000000000001 379.5999999999999C433.7000000000001 379.5999999999999 493.4000000000001 321.2 493.4000000000001 241.7999999999999C493.4000000000001 234.8999999999999 493.1000000000001 228.0999999999999 492.2000000000001 221.1999999999999C504.1000000000001 224.2999999999999 516.3000000000001 225.8999999999999 528.1000000000001 225.8999999999999C588.8000000000002 225.8999999999999 640.0000000000001 180.5999999999999 640.0000000000001 118.6999999999999z" />
    +    <glyph glyph-name="skype"
    +      unicode="&#xF17E;"
    +      horiz-adv-x="448" d=" M424.7 148.2C427.6 162.2 429.4 177.1 429.4 192C429.4 305.5 337.5 397.3 224.1 397.3C209.2 397.3 194.4 395.6 180.3 392.6C161.3 407.3 137.7 416 112 416C50.2 416 0 365.8 0 304C0 278.3 8.7 254.7 23.3 235.8C20.4 221.8 18.6 206.9 18.6 192C18.6 78.5 110.5 -13.3 223.9 -13.3C238.8 -13.3 253.6 -11.6 267.7 -8.6C286.7 -23.2 310.3 -31.9 335.9 -31.9C397.7 -31.9 447.9 18.3 447.9 80.1C448 105.7 439.3 129.3 424.7 148.1999999999999zM230.1 56.7C164.5 56.7 109.6 85.9 109.6 121.7C109.6 137.7 118.6 152.3 139.1 152.3C170.3 152.3 173.2 107.4 227.2 107.4C252.9 107.4 269.5 118.8 269.5 133.7000000000001C269.5 152.4 253.5 155.3000000000001 227.5 161.7000000000001C165 177.1 109.7 183.7000000000001 109.7 248.9000000000001C109.7 308.1 168.3 330 218.8 330C273.9000000000001 330 329.6 308.1 329.6 274.6C329.6 257.7000000000001 318.2000000000001 242.8 299.3 242.8C271 242.8 270.1 276.3 224.3 276.3C198.6 276.3 182.3 269.3 182.3 253.8C182.3 234 203.1 232 251.4 220.8C292.8 211.5 342.1 194 342.1 143.2000000000001C342.1 84.1 285 56.7000000000001 230.1 56.7000000000001z" />
    +    <glyph glyph-name="slack-hash"
    +      unicode="&#xF3EF;"
    +      horiz-adv-x="448" d=" M446.2 177.6C440 196.6 419.3 206.7 400.2 200.5L354.8 185.4L324.5 275.4000000000001L369.9 290.5C389 296.7000000000001 399 317.3000000000001 392.9 336.4000000000001C386.7 355.4000000000001 366 365.5 346.9 359.3000000000001L301.5 344.2000000000001L285.8 391.2000000000001C279.6 410.2000000000001 258.9000000000001 420.3000000000001 239.8 414.1C220.7 407.9000000000001 210.7 387.3000000000001 216.8 368.2000000000001L232.5 321.2000000000001L139.1 290.0000000000001L123.4 337.0000000000001C117.2 356.0000000000001 96.5 366.1 77.4 359.9000000000001C58.3 353.7000000000001 48.3 333.1000000000001 54.4 314.0000000000001L70.1 267.0000000000001L24.8 252.0000000000001C5.7 245.8000000000001 -4.3 225.2000000000001 1.8 206.1000000000001C6.8 191.6 20.9 182.1 35.4 181.5000000000001C42.2 180.5000000000001 47.4 183.1000000000001 93.1 198.3000000000001L123.4 108.3000000000001L78 93.2C59 87 48.9 66.3 55 47.3C60 32.8 74.1 23.3 88.6 22.7C95.4 21.7 100.6 24.3 146.3 39.5L162 -7.5C167.9 -24.4 186.7 -36.5 208 -30.4C227.1 -24.2 237.1 -3.6 231 15.5L215.3 62.5L308.9 93.8L324.6 46.8C330.5 29.9 349.3 17.8 370.6 23.9C389.7 30.1 399.7 50.7 393.6 69.8L377.9 116.8L423.3 131.9C442.3 137.9 452.4 158.6 446.2 177.6zM192.1 130.4L161.8 220.6L255.3 251.9000000000001L285.6 161.7000000000001L192.1 130.4z" />
    +    <glyph glyph-name="slack"
    +      unicode="&#xF198;"
    +      horiz-adv-x="448" d=" M244.2 230.5L263.5 172.8L203.7 152.8L184.4 210.5L244.2 230.5zM285.6 -13.2C131.6 -59.4 65 -23.6 18.8 130.4S8.4 351 162.4 397.2C316.4 443.4 383 407.6 429.2 253.6C475.4 99.6 439.6 33 285.6 -13.2zM366.2 183C362.3 195.2 349 201.6 336.8 197.7L307.8 188L288.5 245.7L317.5 255.4C329.7 259.3 336.1 272.6 332.2 284.8C328.3 297 315 303.4 302.8 299.5L273.8 289.8L263.8 319.9C259.9000000000001 332.1 246.6 338.5 234.4 334.6C222.2 330.7 215.8 317.4 219.7 305.2L229.7 275.1L169.9 255L159.9 285.1C156 297.3 142.7000000000001 303.7 130.5 299.8C118.3 295.9 111.9 282.6 115.8 270.4L125.8 240.3L96.8 230.6C84.6 226.7 78.2 213.4 82.1 201.2C85.3 191.9 94.3 185.8 103.6 185.4C107.9 184.8 111.3 186.4 140.5 196.1L159.8000000000001 138.4L130.8000000000001 128.7C118.6 124.8 112.2000000000001 111.5 116.1 99.3C119.3000000000001 90 128.3000000000001 83.9 137.6 83.5C141.9 82.9 145.3 84.5 174.5 94.2L184.5 64.1C188.2 53.3 200.3000000000001 45.4999999999999 213.9 49.4C226.1 53.3 232.5000000000001 66.6 228.6 78.8L218.6 108.9L278.4000000000001 129L288.4000000000001 98.9C292.1 88.1 304.2000000000001 80.3 317.8 84.2C330 88.1 336.4000000000001 101.4 332.5 113.6L322.5 143.7L351.5 153.4C363.7 157.6 370.1 170.9 366.2 183z" />
    +    <glyph glyph-name="slideshare"
    +      unicode="&#xF1E7;"
    +      horiz-adv-x="512" d=" M249.429 236.564C249.429 204.848 221.714 178.847 187.712 178.847C153.711 178.847 125.996 204.848 125.996 236.564C125.996 268.565 153.711 294.28 187.712 294.28C221.713 294.28 249.429 268.565 249.429 236.564zM503.723 186.562C485.437 163.989 450.579 136.274 397.4340000000001 114.559C453.722 -77.163 260 -107.735 263.143 -9.446C263.143 -11.16 262.857 43.413 262.857 83.986C258.572 84.844 254.286 85.986 249.143 87.129C249.143 46.271 248.857 -11.16 248.857 -9.446C252 -107.735 58.278 -77.163 114.566 114.559C61.421 136.274 26.563 163.989 8.276 186.562C-0.867 200.276 9.134 214.849 24.277 204.277C26.277 202.849 28.562 201.42 30.562 199.992V398.284C30.563 425.713 51.135 448 76.565 448H435.722C461.151 448 481.724 425.713 481.724 398.284V199.991L487.724 204.276C502.867 214.849 512.867 200.276 503.723 186.562zM457.151 375.712C457.151 408.57 446.579 421.428 416.2920000000001 421.428H98.566C66.85 421.428 57.993 410.5700000000001 57.993 375.712V183.419C125.71 147.989 183.713 154.275 215.428 155.418C228.857 155.704 237.429 153.132 242.572 147.703C244.261 146.016 252.595 138.257 262.859 130.5600000000001C264.002 146.275 272.86 156.275 296.575 155.4180000000001C328.862 153.9900000000001 388.293 147.7030000000001 457.152 185.1340000000001V375.712zM331.146 294.28C297.144 294.28 269.43 268.565 269.43 236.564C269.43 204.848 297.145 178.847 331.146 178.847C365.433 178.847 392.862 204.848 392.862 236.564C392.862 268.565 365.4330000000001 294.28 331.146 294.28z" />
    +    <glyph glyph-name="snapchat-ghost"
    +      unicode="&#xF2AC;"
    +      horiz-adv-x="512" d=" M510.846 55.327C505.635 43.17 483.607 34.238 443.486 28.009C441.422 25.223 439.711 13.323 436.979 4.053C435.354 -1.513 431.356 -4.816 424.851 -4.816L424.554 -4.811C415.159 -4.811 405.351 -0.4880000000001 385.702 -0.4880000000001C359.181 -0.4880000000001 350.04 -6.5310000000001 329.448 -21.0760000000001C307.616 -36.5140000000001 286.677 -49.8400000000001 255.421 -48.4750000000001C223.775 -50.8090000000001 197.396 -31.5670000000001 182.55 -21.0710000000001C161.836 -6.4280000000001 152.722 -0.4890000000001 126.309 -0.4890000000001C107.445 -0.4890000000001 95.573 -5.2090000000001 87.457 -5.2090000000001C79.384 -5.2090000000001 76.244 -0.2870000000001 75.035 3.8309999999999C72.332 13.0199999999999 70.631 25.0939999999999 68.512 27.9609999999999C47.833 31.1699999999999 1.202 39.3049999999999 0.014 60.1109999999999A10.627 10.627 0 0 0 8.891 71.1799999999999C78.474 82.6349999999999 109.815 154.0809999999999 111.118 157.1139999999999C111.192 157.2899999999999 111.273 157.4579999999999 111.355 157.6289999999999C115.068 165.1659999999999 115.899 171.4779999999999 113.818 176.3819999999999C108.768 188.2779999999999 86.946 192.5459999999999 77.765 196.1779999999999C54.05 205.5439999999999 50.75 216.3059999999999 52.153 223.6819999999999C54.59 236.5179999999999 73.878 244.4169999999999 85.155 239.1349999999999C94.074 234.9539999999999 101.998 232.8379999999999 108.702 232.8379999999999C113.724 232.8379999999999 116.914 234.0419999999999 118.662 235.0089999999999C116.619 270.9449999999999 111.561 322.2989999999999 124.349 350.9779999999999C158.122 426.6960000000001 229.705 432.58 250.826 432.58C251.77 432.58 259.967 432.669 260.936 432.669C313.084 432.669 363.19 405.889 387.659 351.026C400.436 322.376 395.408 271.234 393.354 235.017C394.936 234.145 397.711 233.075 401.953 232.878C408.35 233.164 415.768 235.267 424.022 239.135C430.107 241.981 438.428 241.596 444.502 239.077L444.531 239.067C454.007 235.682 459.97 228.852 460.12 221.197C460.304 211.45 451.598 203.032 434.242 196.179C432.124 195.344 429.548 194.524 426.808 193.654C417.011 190.548 402.208 185.849 398.192 176.383C396.113 171.479 396.9360000000001 165.172 400.652 157.635C400.739 157.467 400.818 157.293 400.891 157.12C402.192 154.09 433.506 82.66 503.121 71.186C509.548 70.128 514.284 63.309 510.846 55.3270000000001z" />
    +    <glyph glyph-name="snapchat-square"
    +      unicode="&#xF2AD;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM393.5 101.1C390 93 375.4 87.1 348.7 82.9C347.3 81.0000000000001 346.2 73.1 344.4 67.0000000000001C343.3 63.3000000000001 340.7 61.1000000000001 336.3 61.1000000000001H336.1C329.9 61.1000000000001 323.3 64.0000000000001 310.3 64.0000000000001C292.7 64.0000000000001 286.6 60.0000000000001 272.9 50.3000000000001C258.4 40.0000000000001 244.5 31.2 223.7 32.1000000000001C202.7 30.5000000000001 185.1 43.3000000000001 175.2 50.3000000000001C161.4 60.0000000000001 155.4 64.0000000000001 137.8 64.0000000000001C125.3 64.0000000000001 117.4 60.9 112 60.9C106.6 60.9 104.5 64.2000000000001 103.7 66.9C101.9 73.0000000000001 100.8 81.0000000000001 99.4 82.9C85.6 85.0000000000001 54.6 90.4 53.9 104.3C53.7 107.9 56.2 111.1 59.8 111.7C106.1 119.3 126.9 166.8 127.8 168.8C127.8 168.9 127.9 169 128 169.1C130.5 174.1 131 178.3 129.6 181.6C126.2 189.5 111.7 192.3 105.6 194.8C89.8 201 87.6 208.2 88.6 213.1C90.2 221.6 103 226.9000000000001 110.5 223.4C116.4 220.6 121.7 219.2000000000001 126.2 219.2000000000001C129.5 219.2000000000001 131.7 220.0000000000001 132.8 220.6000000000001C131.4 244.5000000000001 128.1 278.6 136.6 297.7000000000001C159.1 348 206.7 352 220.7 352C221.3 352 226.8 352.1 227.4 352.1C262.1 352.1 295.4 334.3 311.7 297.8C320.2 278.7000000000001 316.9 244.7 315.5 220.7C316.6 220.1 318.4 219.4 321.2 219.3C325.5 219.5 330.4 220.9 335.9 223.5C339.9 225.4 345.5 225.1 349.5 223.5C355.8 221.2 359.8 216.7 359.9 211.6C360 205.1 354.2 199.5 342.7 195C341.3 194.4 339.6 193.9 337.8 193.3C331.3 191.2 321.4000000000001 188.1 318.8 181.8C317.4000000000001 178.5 318 174.3 320.4000000000001 169.3C320.5000000000001 169.2 320.5000000000001 169.1 320.6 169C321.5 167 342.3 119.5 388.6 111.9C392.6 110.9 395.7000000000001 106.4 393.5 101.1z" />
    +    <glyph glyph-name="snapchat"
    +      unicode="&#xF2AB;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM417.5 101.1C414 93 399.4 87.1 372.7 82.9C371.3 81.0000000000001 370.2 73.1 368.4 67.0000000000001C367.3 63.3000000000001 364.7 61.1000000000001 360.3 61.1000000000001H360.1C353.9 61.1000000000001 347.3 64.0000000000001 334.3 64.0000000000001C316.7 64.0000000000001 310.6 60.0000000000001 296.9 50.3000000000001C282.4 40.0000000000001 268.5 31.2 247.7 32.1000000000001C226.7 30.5000000000001 209.1 43.3000000000001 199.2 50.3000000000001C185.4 60.0000000000001 179.4 64.0000000000001 161.8 64.0000000000001C149.3 64.0000000000001 141.4 60.9 136 60.9C130.6 60.9 128.5 64.2000000000001 127.7 66.9C125.9 73.0000000000001 124.8 81.0000000000001 123.4 82.9C109.6 85.0000000000001 78.6 90.4 77.9 104.3C77.7 107.9 80.2 111.1 83.8 111.7C130.1 119.3 150.9 166.8 151.8 168.8C151.8 168.9 151.9 169 152 169.1C154.5 174.1 155 178.3 153.6 181.6C150.2 189.5 135.7 192.3 129.6 194.8C113.8 201 111.6 208.2 112.6 213.1C114.2 221.6 127 226.9000000000001 134.5 223.4C140.4 220.6 145.7 219.2000000000001 150.2 219.2000000000001C153.5 219.2000000000001 155.7 220.0000000000001 156.8 220.6000000000001C155.4 244.5000000000001 152.1 278.6 160.6 297.7000000000001C183.1 348 230.7 352 244.7 352C245.3 352 250.8 352.1 251.4 352.1C286.1 352.1 319.4 334.3 335.7 297.8C344.2 278.7000000000001 340.9 244.7 339.5 220.7C340.6 220.1 342.4 219.4 345.2 219.3C349.5 219.5 354.4 220.9 359.9 223.5C363.9 225.4 369.5 225.1 373.5 223.5C379.8 221.2 383.8 216.7 383.9 211.6C384 205.1 378.2 199.5 366.7 195C365.3 194.4 363.6 193.9 361.8 193.3C355.3 191.2 345.4000000000001 188.1 342.8 181.8C341.4000000000001 178.5 342 174.3 344.4000000000001 169.3C344.5000000000001 169.2 344.5000000000001 169.1 344.6 169C345.5 167 366.3 119.5 412.6 111.9C416.6 110.9 419.7000000000001 106.4 417.5 101.1z" />
    +    <glyph glyph-name="soundcloud"
    +      unicode="&#xF1BE;"
    +      horiz-adv-x="640" d=" M111.4 191.7L117.2 126.7L111.4 58.4C111.1 55.9 109.2 54 107 54S102.8 55.9 102.8 58.4L97.2 126.7L102.8 191.7C102.8 193.9 104.7 195.9 107 195.9C109.2 195.9 111.1 193.9 111.4 191.7zM132.8 237.3C130 237.3 128.1 235.1 127.8 232.3L122.8 126.7L127.8 58.4C128.1 55.6 130 53.4 132.8 53.4C135.3 53.4 137.5 55.6 137.5 58.4L143.3 126.7L137.5 232.3C137.5 235.1 135.3 237.3 132.8 237.3zM158.3 261.4C155.2 261.4 153 259.2 152.7 256.1L148.3 126.1L152.7 58.3C153 55.1999999999999 155.2 52.9999999999999 158.3 52.9999999999999C161.1 52.9999999999999 163.6 55.1999999999999 163.6 58.3L168.9 126.1L163.6 256.1C163.6 259.2 161.1 261.4 158.3 261.4zM7.2 164.8C5.8 164.8 5 163.7 4.7 162.3L0 126.7L4.7 91.7C5 90.3 5.8 89.2 7.2 89.2S9.4 90.3 9.7 91.7L15.3 126.7L9.7 162.3C9.4 163.7 8.6 164.8 7.2 164.8zM30.8 186.7C29.4 186.7 28.3 185.6 28.3 184.2L21.9 126.7L28.3 70.6C28.3 68.9 29.4 67.8 30.8 67.8S33.3 68.9 33.6 70.3L40.8 126.6999999999999L33.6 184.1999999999999C33.3 185.5999999999999 32.2 186.6999999999999 30.8 186.6999999999999zM56.1 198.1C54.4 198.1 53 196.7 52.8 194.8L47 126.7L52.8 60.9C53.1 59.2 54.5 57.8 56.1 57.8C57.8 57.8 59.2 59.1999999999999 59.2 60.9L66.1 126.7L59.2 194.8C59.2 196.7 57.8 198.1 56.1 198.1zM81.4 200.3C79.5 200.3 77.8 198.9 77.8 196.7L72 126.7L77.8 58.9C77.8 56.7 79.5 55.3 81.4 55.3S85 56.6999999999999 85.3 58.9L91.7 126.7L85.3 196.7C85 198.9 83.3 200.3 81.4 200.3zM322.8 311.2C321.7 312 320 312.6 318.6 312.6C316.4000000000001 312.6 314.4000000000001 311.8 313 310.7C311.1 309 309.9 306.5 309.7 304V303.2L306.4 126.5L308.1 94L309.8 62.3C310.1 57.6 314 53.7 318.7 53.7S327.3 57.6 327.3 62.3L331.2 126.5L327.3 304C326.9 307 325.3 309.8 322.8 311.2zM296.1 295.9C294.7000000000001 296.7 293.3 297.3 291.7000000000001 297.3S288.6 296.7 287.3000000000001 295.9C285.1000000000001 294.5 283.7000000000001 292 283.7000000000001 289.2L283.4000000000001 287.5L280.6 126.7S280.6 126.4 283.7000000000001 61.1V60.8C283.7000000000001 59.1 284.3000000000001 57.5 285.4000000000001 56.1C287.1 54.2 289.3 53 291.8 53C294 53 296 54.1 297.4000000000001 55.5C299.1 56.9 299.9000000000001 58.8 299.9000000000001 61.1L300.2000000000001 67.8L303.3000000000001 126.4L300.0000000000001 289.2000000000001C299.7000000000001 292.0000000000001 298.3000000000001 294.5000000000001 296.1000000000001 295.9000000000001zM184.7 273.4C181.6 273.4 178.9 270.6 178.9 267.3L174.5 126.7L178.9 59.5C179.2 56.2 181.7 53.7 184.7 53.7C188 53.7 190.5 56.2 190.8 59.5L195.8 126.7L190.8 267.3C190.6 270.6 188.1 273.4 184.7 273.4zM561.4 210.6C550.6 210.6 540.3 208.4 530.8 204.5C524.4 275.3 464.9999999999999 330.9 392.5 330.9C374.7 330.9 357.5 327.6 342.2 321.5C336.0999999999999 319.3 334.3999999999999 317.1 334.3999999999999 312.3V62.6C334.3999999999999 57.6 338.2999999999999 54 343 53.4H561.3C604.5999999999999 53.4 639.9 88.4 639.9 131.7000000000001C640 175.3000000000001 604.6999999999999 210.6000000000001 561.4 210.6000000000001zM264.7 270.9C260.5 270.9 257.2 267.6 256.9 263.1L253.6 126.4L256.9 60.8C257.2 56.6 260.5 53.3 264.7 53.3C268.9 53.3 272.2 56.6 272.2 60.8L276.1 126.4L272.2 263.1C271.9 267.6 268.9 270.9 264.7 270.9zM211.1 278.7C207.8 278.7 204.7 275.6 204.7 272L200.8 126.7L204.7 59.8C205 56.1999999999999 207.8 53.4 211.1 53.4C214.7 53.4 217.5 56.2 217.8 59.8L222.2 126.6999999999999L217.8 272C217.5 275.5999999999999 214.7 278.7 211.1 278.7zM237.8 275.3C233.9 275.3 230.9 272.2 230.9 268.4L227 126.7L230.9 60.3C231.2 56.4 234 53.4 237.8 53.4S244.7 56.5 244.7 60.3L248.9 126.6999999999999L244.7 268.3999999999999C244.7 272.3 241.7 275.3 237.8 275.3z" />
    +    <glyph glyph-name="speakap"
    +      unicode="&#xF3F3;"
    +      horiz-adv-x="430.87" d=" M55.01 56.22C-24.4 144.41 -16.95 280.5800000000001 71.65 360.36S296.4500000000001 433.32 375.86 345.12S447.82 120.76 359.2200000000001 40.98C340.48 24.11 423.25 -2.11 401.24 -11.28C319.18 -45.4899999999999 147.33 -46.32 55.01 56.22zM268.32 267.8200000000001L306.82 308.68C297.21 317.57 274.8 335.51 230.65 336.28C178.32 337.19 134.79 307.98 133.88 256.32C133.68 244.99 134.17 219.6 163.3 201.49C197.76 180.07 249.82 179.98 249.2800000000001 149.23C248.9100000000001 127.9500000000001 222.86 123.42 210.69 123.63C207.71 123.68 180.46 124.09 163.0800000000001 148.25L123.1300000000001 105.64C151.2900000000001 78.63 182.12 73.02 206.62 72.59C216.85 72.41 303.04 72.26 304.4600000000001 153.59C304.74 169.4 302.3900000000001 193.31 275.6 210.18C241.24 231.82 190.6400000000001 229.63 191.17 259.93C191.58 283.18 222.13 285.3 228.7 285.19C229.13 285.19 255.32 284.93 268.32 267.82z" />
    +    <glyph glyph-name="spotify"
    +      unicode="&#xF1BC;"
    +      horiz-adv-x="496" d=" M248 440C111.1 440 0 328.9 0 192S111.1 -56 248 -56S496 55.1 496 192S384.9 440 248 440zM348.7 75.1C344.5 75.1 341.9 76.4 338 78.7000000000001C275.6 116.3000000000001 203 117.9 131.3 103.2000000000001C127.4 102.2000000000001 122.3 100.6 119.4 100.6C109.7 100.6 103.6 108.3 103.6 116.4C103.6 126.7000000000001 109.7 131.6 117.2 133.2000000000001C199.1 151.3000000000001 282.8 149.7000000000001 354.2 107.0000000000001C360.3 103.1000000000001 363.9 99.6000000000001 363.9 90.5000000000001S356.8 75.1000000000001 348.7 75.1000000000001zM375.6 140.7000000000001C370.4 140.7000000000001 366.9 143.0000000000001 363.3 144.9C300.8 181.9 207.6 196.8000000000001 124.7 174.3C119.9 173 117.3 171.7 112.8 171.7C102.1 171.7 93.4 180.4 93.4 191.1S98.6 208.9 108.9 211.8C136.7 219.6 165.1 225.4 206.6999999999999 225.4C271.5999999999999 225.4 334.3 209.3 383.7 179.9C391.8 175.1 395 168.9 395 160.2C394.8999999999999 149.4 386.5 140.7 375.6 140.7zM406.6 216.9C401.4 216.9 398.2 218.2000000000001 393.7 220.8000000000001C322.5 263.3000000000001 195.2 273.5000000000001 112.8 250.5000000000001C109.2 249.5000000000001 104.7 247.9000000000001 99.9 247.9000000000001C86.7 247.9000000000001 76.6 258.2000000000001 76.6 271.5C76.6 285.1 85 292.8000000000001 94 295.4000000000001C129.2 305.7000000000001 168.6 310.6 211.5 310.6C284.5 310.6 361 295.4000000000001 416.9 262.8C424.7 258.3 429.8 252.1 429.8 240.2C429.8 226.6 418.8 216.9 406.6 216.9z" />
    +    <glyph glyph-name="squarespace"
    +      unicode="&#xF5BE;"
    +      horiz-adv-x="512" d=" M186.12 104.66C176.47 95.0100000000001 176.47 79.37 186.12 69.72C195.77 60.0700000000001 211.41 60.0700000000001 221.06 69.72L378.24 226.9C397.5300000000001 246.19 428.81 246.19 448.1 226.9S467.39 176.33 448.1 157.04L293.95 2.9C313.22 -16.39 344.48 -16.41 363.77 2.86L363.81 2.9L483.06 122.14C521.65 160.73 521.65 223.28 483.06 261.86C444.4700000000001 300.45 381.91 300.45 343.3400000000001 261.86L186.12 104.66zM430.65 209.46C421 219.1100000000001 405.36 219.1100000000001 395.72 209.46L238.52 52.28C219.25 32.99 187.99 32.97 168.7 52.23L168.65 52.28C159.01 61.92 143.38 61.93 133.73 52.29L133.72 52.28C124.07 42.64 124.06 27 133.7 17.35L133.72 17.33C172.3 -21.24 234.86 -21.24 273.44 17.33L430.64 174.53C440.2899999999999 184.18 440.2899999999999 199.82 430.6499999999999 209.46zM168.66 122.1300000000001L325.84 279.3100000000001C335.48 288.9600000000001 335.48 304.6 325.84 314.2500000000001C316.2 323.8900000000001 300.57 323.8900000000001 290.93 314.2500000000001L133.72 157.07C114.44 137.78 83.16 137.77 63.87 157.06L63.86 157.07C44.57 176.35 44.55 207.61 63.83 226.91L63.86 226.94L218.03 381.11C198.75 400.4 167.48 400.41 148.18 381.13L148.16 381.11L28.93 261.86C-9.65 223.27 -9.65 160.72 28.93 122.14C67.53 83.55 130.06 83.55 168.66 122.13zM81.33 174.53C90.97 164.8900000000001 106.6 164.8900000000001 116.24 174.53L273.45 331.7200000000001C292.73 351.01 324 351.0200000000001 343.29 331.74L343.31 331.7200000000001C352.9599999999999 322.0700000000001 368.6 322.0700000000001 378.24 331.7200000000001C387.89 341.37 387.89 357.01 378.24 366.6500000000001C339.65 405.24 277.11 405.24 238.52 366.6500000000001L81.33 209.46C71.68 199.82 71.68 184.18 81.32 174.53H81.33z" />
    +    <glyph glyph-name="stack-exchange"
    +      unicode="&#xF18D;"
    +      horiz-adv-x="448" d=" M17.7 115.7H430.4V93.7C430.4 56 401.1 25.7 365.1 25.7H346.1L259.3 -64V25.7H83C47 25.7 17.7 56 17.7 93.7V115.7zM17.7 139.3H430.4V224.3H17.7V139.3zM17.7 248.7H430.4V333.7000000000001H17.7V248.7zM365 448H83C47 448 17.7 417.7 17.7 380.3V358H430.4V380.3C430.3 417.7 401 448 365 448z" />
    +    <glyph glyph-name="stack-overflow"
    +      unicode="&#xF16C;"
    +      horiz-adv-x="384" d=" M293.7 148L112.5 232.5L129.2 269L310.5 184.3L293.7 148zM341.7 224L188.2 352.3L162.7 321.5L316.2 193.2L341.7 224zM381.3 255.7L262 416L230 392L349.3 231.7L381.3 255.7zM290.7 137L95 178.3L86.8 139L282.5 98L290.7 137zM322.3 8H42.7V128H2.7V-32H362.2V128H322.2V8zM282.5 88H82.5V48.3H282.5V88z" />
    +    <glyph glyph-name="staylinked"
    +      unicode="&#xF3F5;"
    +      horiz-adv-x="440" d=" M201.6 320.6C205.7 323.8 211.9 323.6 215.4 320.1L385.4 152.8L382.7 155.5L427 114.1999999999999C430.7 110.6999999999999 430.3 105.1999999999999 426.3 101.9999999999999L228.3 -61.9000000000001C218.4 -69.5000000000001 211 -62.7000000000001 211 -62.7000000000001L2.3 133.4C-1.2 136.9 -0.7 142.4 3.5 145.6L49.3 180.5C53.5 183.6999999999999 59.7 183.5 63.2 180L215.1 32.4999999999999C218.8 28.9999999999999 225.1 28.8 229.3 32.1L322.5 106.1C326.6 109.3 327 114.8 323.4 118.3L239.4 199.6C235.8 203.1 229.5 203.3 225.4 200.1L225.3 200C221.2 196.8 214.9 197 211.3 200.5L143.2 264.8C139.7 268.3 140.1 273.8 144.3 277L201.6 320.5999999999999M216.4 63.3C220.1 59.8 226.5 59.6 230.7 62.9L280.9 101.7L280.6 102L288.3 108C292.5 111.2 292.9 116.7 289.2 120.2L232.1 174.6C228.5 178.1 222.0999999999999 178.3 217.9 175.1L217.8 175C213.6 171.8 207.3 171.8999999999999 203.6 175.3999999999999L109 267.2C105.4 270.7 105.9 276.1 110.1 279.4L202.3 350.9C206.4 354.1 212.6 353.9 216.2 350.4L376.6 191.4C380.3 187.9 386.6 187.7 390.7000000000001 190.9L436.5000000000001 226.7C440.6000000000001 229.9 440.9000000000001 235.4 437.2000000000001 238.9L226.7 445.5C225.2 446.7 218.7 451 210.4 444.4L3.6 282.3C-0.6 279.1 -1.2 273.6 2.4 270.1L44.7 228.4000000000001" />
    +    <glyph glyph-name="steam-square"
    +      unicode="&#xF1B7;"
    +      horiz-adv-x="448" d=" M185.2 91.5C192.9 110 184.2 131.2 165.6 138.9L136.1 151.1C147.5 155.4 160.4 155.6 172.5 150.6C184.7 145.5 194.1 136 199.2 123.9C204.2 111.7 204.2 98.3 199.1 86.2C188.6 61.1 159.7 49.2 134.5 59.7C122.9 64.5 114.1 73.3 109.1 83.9L137.6 72.1C156.2 64.3 177.5 72.9999999999999 185.2 91.4999999999999zM400 416H48C21.5 416 0 394.5 0 368V207.3L116.6 159.2C128.6 167.4 142.8 171.3 157.3 170.5L212.7 250.7V251.8C212.7 300 252 339.3 300.3 339.3S387.9 300 387.9 251.8C387.9 202.6 347 163.1 298.3 164.3L219.3 107.9999999999999C220.9 69.4999999999999 190.2 39.1999999999999 153.6 39.1999999999999C121.8 39.1999999999999 95.1 61.8999999999999 89.1 91.8999999999999L0 128.8V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM300.3 193.5C268.1 193.5 241.9 219.6 241.9 251.8S268.1 310.1 300.3 310.1S358.7 283.9000000000001 358.7 251.8S332.5 193.5 300.3 193.5zM300.4000000000001 208.1C324.6 208.1 344.3 227.7 344.3 251.9C344.3 276.1 324.7 295.7 300.4000000000001 295.7C276.2000000000001 295.7 256.5000000000001 276.1 256.5000000000001 251.9C256.5000000000001 227.7 276.2000000000001 208.1 300.4000000000001 208.1z" />
    +    <glyph glyph-name="steam-symbol"
    +      unicode="&#xF3F6;"
    +      horiz-adv-x="448" d=" M395.5 270.5C395.5 236.7 368 209.5 334.5 209.5C300.7 209.5 273.5 236.8 273.5 270.5S300.8 331.5 334.5 331.5C368 331.5 395.5 304.3 395.5 270.5zM448 270.3C448 207.3 397 156.5 334.3 156.5L225 76.7C221 33.7 184.5 -0.1 140.5 -0.1C100 -0.1 65.8 28.7 57.5 66.9L0 90V197.3L97.2 158C112.3 167.2 129.4 171.3 149.2 169.5L220.2 271.2C220.7 333.5 271.7 384 334.2 384C397 384 448 333 448 270.3zM203 85C203 119.7 175.2 147.5 140.5 147.5C136 147.5 131.5 147 127 146L153 135.5C178.5 125.3 191 96.5 180.7 71C170.5 45.5 141.5 33 116 43.5C105.8 47.5 95.5 51.8 85.3 55.7C95.8 36 116.5 22.5 140.5 22.5C175.2 22.5 203 50.3 203 85zM410.5 270.3C410.5 312.3 376.2 346.5 334.3 346.5C292 346.5 257.8 312.3 257.8 270.3C257.8 228.1 292.1 194.1 334.3 194.1C376.2 194 410.5 228.0000000000001 410.5 270.3z" />
    +    <glyph glyph-name="steam"
    +      unicode="&#xF1B6;"
    +      horiz-adv-x="496" d=" M496 192C496 55 384.8 -56 247.6 -56C133.8 -56 38 20.3 8.6 124.4L103.8 85.1C110.2 52.9999999999999 138.7 28.7 172.7 28.7C211.9 28.7 244.6 61.1 242.9 102.2L327.4 162.4C379.5 161.1 423.2 203.3 423.2 255.9C423.2 307.5 381.2 349.4 329.5 349.4S235.8 307.4 235.8 255.9V254.7L176.6 169C161.1 169.9 145.9 165.6 133.1 156.9L0 211.9C10.2 339.6 117.1 440 247.6 440C384.8 440 496 329 496 192zM155.7 63.7L125.2 76.3A52.79 52.79 0 0 1 152.4 50.5C179.3 39.3 210.2 52.1 221.4 78.9C226.8 91.9 226.9 106.2 221.5 119.2C216.1 132.2 206 142.4 193 147.8C180.1 153.2 166.3 153 154.1 148.4L185.6 135.4C205.4 127.2000000000001 214.8 104.5000000000001 206.5 84.7000000000001C198.2 64.8000000000001 175.5 55.5000000000001 155.7 63.7000000000001zM329.5 193.6C295.1 193.6 267.1 221.6 267.1 255.9S295.1 318.2 329.5 318.2S391.9 290.2 391.9 255.9S364 193.6 329.5 193.6zM329.6 209.2C355.5 209.2 376.5 230.2 376.5 256C376.5 281.9 355.5 302.8 329.6 302.8S282.7000000000001 281.8 282.7000000000001 256C282.8000000000001 230.2 303.8000000000001 209.2 329.6 209.2z" />
    +    <glyph glyph-name="sticker-mule"
    +      unicode="&#xF3F7;"
    +      horiz-adv-x="576" d=" M353.1 -61.8C347.2000000000001 -64.7 321 -65 316.6 -61.3C312.5 -58.3 314.4000000000001 -49.4 315.1 -46.3C317.3 -31.3 312.6 -38.4 305.3 -34.8C302.2 -33.3 301.2 -29.3 300.7 -24.8C300.2 -23.3 299.7 -22.3 299.2 -21.3C297.5 -10.6 306 12.3 307.4 22.1C312.3 45.8 306.7 59.3 308.9 68.9999999999999C312.6 85.1999999999999 313 72.4999999999999 313 98.8999999999999C311.6 124.7999999999999 316.3 135.7999999999999 313.5 137.7999999999999C298.7 137.7999999999999 249.2 127.0999999999999 201.3 135.7999999999999C155.2 144.6999999999999 141.9 164.7999999999999 135.9 166.6999999999999C125.6 171.1999999999999 112.7 166.1999999999999 108.6 159.6999999999999C108.5 159.5999999999999 73.6 89.0999999999999 69 71.8999999999999C62.8 51.3999999999999 68.5 24.4999999999999 73.1 5.0999999999999C73.1 4.9999999999998 77.6 -9.5000000000002 83.4 -14.4000000000001C85.5 -15.9000000000001 88.5 -16.9000000000001 90.6 -18.9000000000001C93.4 -21.6000000000001 100 -34.1000000000001 100.4 -34.9000000000001C103 -39.4000000000001 104 -42.9000000000001 98.9 -45.4000000000001C95.3 -47.4000000000001 89.6 -47.9000000000001 84.5 -47.9000000000001C81.9 -48.4000000000001 83 -51.4000000000001 81.4 -52.9000000000001C78.5 -55.7000000000002 60.7 -59.0000000000002 51.5 -55.4000000000001C48.9 -54.4000000000001 45.8 -52.4000000000001 45.3 -50.4000000000001C43.8 -46.4000000000001 47.4 -41.4000000000001 44.3 -37.9000000000001C39.8 -35.0000000000002 31.2 -35.9000000000001 27.3 -25.9000000000001C25.1 -20.5000000000002 24.7 -18.3000000000001 24.7 23.4999999999998C24.7 33.1999999999998 18.8 62.1999999999998 16.5 70.3999999999998C15 75.8999999999998 15 81.8999999999998 16.5 86.3999999999998C16.8 87.2999999999998 20.6 90.9999999999998 20.6 99.3999999999998C19.6 100.8999999999998 16 99.8999999999998 15.5 100.8999999999998C5.1 181.4999999999998 9.6 179.8999999999998 7.8 199.1999999999998C6.3 215.1999999999998 -3.1 243.0999999999998 1.1 263.4999999999999C1.6 265.8999999999999 4.5 284.4999999999999 25.3 302.3999999999999C56.3 329.0999999999999 73.7 340.6999999999998 184.3 313.8999999999999C185.4 313.4999999999999 250.6 292.7999999999999 295 322.8999999999999C310.5 334.1999999999998 323.8 334.1999999999998 330.5 338.8999999999999C330.6 338.9999999999999 392.2 390.9999999999999 417.5 404.1999999999998C464.7 433.5999999999999 487.4 420.8999999999998 492.6 422.1999999999998C497.3 423.1999999999998 506 447.9999999999999 509.6 447.9999999999999C515.1 447.9999999999999 511.2 427.7999999999999 513.2 422.0999999999999C513.7 420.0999999999999 516.8000000000001 417.0999999999999 519.4000000000001 417.0999999999999C521.7 417.0999999999999 521.1000000000001 417.8999999999999 529.7 422.0999999999999C538.1 427.4999999999999 544.6 439.6999999999998 550.3000000000001 439.0999999999999C562.0000000000001 437.4999999999999 531.3000000000001 397.4999999999999 531.3000000000001 392.1999999999998C531.3000000000001 390.1999999999998 531.5000000000001 391.3999999999999 535.9000000000001 382.6999999999998C538.5000000000001 377.1999999999998 540.5000000000001 369.1999999999998 542.1000000000001 362.6999999999998C550.4000000000001 332.9999999999999 547.8000000000002 348.0999999999999 555.5000000000001 325.7999999999999C575.7000000000002 275.6999999999998 576.1000000000001 280.5999999999999 576.1000000000001 272.8999999999999C576.1000000000001 265.3999999999999 572.0000000000001 261.8999999999999 568.9000000000001 256.3999999999999C567.4000000000001 253.3999999999999 564.3000000000001 248.8999999999999 561.7 248.3999999999999C559 247.6999999999999 568.7 249.8999999999999 548.3000000000001 245.8999999999999C541.1 244.8999999999999 534.9000000000001 250.3999999999999 533.4000000000001 255.3999999999999C531.8000000000001 260.0999999999998 536.2 265.4999999999999 521.6000000000001 278.2999999999999C511.3000000000001 288.2999999999999 500.5000000000001 289.5999999999999 489.7000000000002 295.2999999999999C479.9000000000001 300.9999999999999 477.8000000000002 294.2999999999999 471.7000000000002 287.2999999999999C453.7000000000002 264.3999999999999 437.7000000000002 240.3999999999999 419.7000000000002 217.4999999999998C407.9000000000002 202.4999999999998 395.5000000000002 187.0999999999999 386.2000000000002 170.0999999999999C382.3000000000002 163.2999999999999 376.7000000000002 141.9999999999998 375.9000000000002 140.1999999999999C369.7000000000002 122.4999999999999 370.4000000000002 114.3999999999999 359.4000000000002 71.8999999999999C356.3000000000002 61.8999999999999 353.7000000000002 50.4999999999999 350.7000000000002 39.4999999999999C348.5000000000002 32.6999999999999 343.3000000000002 -9.8000000000001 350.2000000000002 -19.9000000000001C352.3000000000002 -23.4000000000001 358.9000000000002 -24.4000000000001 361.5000000000002 -27.9000000000001C361.6000000000002 -28.0000000000001 371.1000000000002 -46.1000000000001 370.8000000000002 -47.9000000000001C370.8000000000002 -54.0000000000001 361.4000000000002 -53.5000000000001 359.5000000000002 -54.4000000000001C354.7000000000002 -57.3000000000001 355.7000000000002 -60.3000000000001 353.1000000000002 -61.8000000000001" />
    +    <glyph glyph-name="strava"
    +      unicode="&#xF428;"
    +      horiz-adv-x="369.2" d=" M301.6 156L257.7000000000001 67.8L213.1000000000001 156H145.5000000000001L257.7000000000001 -64L369.2000000000001 156H301.6zM151.4 448L0 156H89.2L151.4 272.1L213.1 156H301.6L151.4 448z" />
    +    <glyph glyph-name="stripe-s"
    +      unicode="&#xF42A;"
    +      horiz-adv-x="362.3" d=" M144.3 293.4C144.3 315.7000000000001 162.9 324.3 192.7 324.3C236.1 324.3 291.2000000000001 311 334.6 287.6V421.9C287.3 440.8 240.1 448 192.8 448C77.1 448 0 387.6 0 286.6C0 128.7 216.8 154.3 216.8 86.2C216.8 59.8 193.9 51.3 162.1 51.3C114.9 51.3 53.9 70.8 6 96.8V-31.7C59 -54.5 112.8 -64.1 162 -64.1C280.6 -64.1 362.3000000000001 -13.1 362.3000000000001 89.5C362.3000000000001 259.7 144.3000000000001 229.2 144.3000000000001 293.4" />
    +    <glyph glyph-name="stripe"
    +      unicode="&#xF429;"
    +      horiz-adv-x="640" d=" M640 186.4C640 231.9 618 267.8 575.8 267.8S507.9 231.9 507.9 186.7C507.9 133.2 538.1999999999999 108.5 581.4 108.5C602.6 108.5 618.5 113.3 630.6 120V153.4C618.5 147.3 604.6 143.6 587 143.6C569.7 143.6 554.5 149.7 552.5 170.5H639.4C639.6 172.8 640 182.1 640 186.3999999999999M552.1 203.1999999999999C552.1 223.1999999999999 564.4 231.6 575.5 231.6C586.4 231.6 598 223.1999999999999 598 203.1999999999999H552.1zM439.2000000000001 267.8C421.8000000000001 267.8 410.6 259.5999999999999 404.4000000000001 253.8999999999999L402.1 264.8999999999999H363V60.0999999999999L407.4 69.4999999999999L407.5 119.6999999999999C413.9 114.9999999999999 423.4 108.4999999999999 438.9 108.4999999999999C470.7 108.4999999999999 499.7 131.6999999999999 499.7 188.0999999999999C499.8 239.6999999999999 470.4 267.7999999999999 439.2 267.7999999999999M428.6 145.2999999999999C418.2 145.2999999999999 412 149.0999999999999 407.7 153.6999999999999L407.4 219.6999999999999C412 224.7999999999999 418.4 228.4999999999999 428.6 228.4999999999999C444.8 228.4999999999999 455.9999999999999 210.2999999999999 455.9999999999999 187.0999999999999C456.1 163.1999999999999 445.1 145.2999999999999 428.6 145.2999999999999M346.4 324V287.8L301.8 278.3V314.5L346.4 324M301.9 264.8H346.5V111.6H301.9V264.8zM254.1 251.7C264.5 270.8 285.2 266.9 291.2 264.8V224C285.5 225.8 267.8 228.5 257.3 214.7V111.6H213V264.8H251.4L254.1 251.7M165.1 264.8H198.8V227H165.1V163.8C165.1 137.6 193.1 145.8 198.8 148.1V114.3C192.9 111.1 182.2 108.4 167.6 108.4C141.3 108.4 121.5 125.4 121.5 151.7000000000001L121.7 294.1L165 303.3000000000001L165.1 264.8000000000001zM44.9 219.7C44.9 199.7 112.8 209.2 112.8 156.3C112.8 124.3 87.4 108.5 50.5 108.5C35.2 108.5 18.5 111.5 2 118.6V158.6C16.9 150.5 35.9 144.4 50.6 144.4C60.5 144.4 67.6 147.1 67.6 155.3C67.6 176.5 0.1 168.5 0.1 217.7C0.1 249.1 24.1 267.9000000000001 60.1 267.9000000000001C74.8 267.9000000000001 89.5 265.6 104.2 259.8000000000001V218C90.7 225.3 73.5 229.4 60 229.4C50.7 229.3 44.9 226.6 44.9 219.7" />
    +    <glyph glyph-name="studiovinari"
    +      unicode="&#xF3F8;"
    +      horiz-adv-x="512" d=" M480.3 260.3L484.5 232.3V204.3L459.4 160.2L419.6 81.8L363.5 14.3L284.4 -23.5000000000001L266.7 -48.0000000000001L259 -60.0000000000001L249.4 -64S266.7 -0.4 268.8 -0.4C270.9000000000001 -0.4 289.1 -1.1 289.1 -1.1L355.8 37.5000000000001L263.3 11.4L207.4 -25.4L184.6 -53.4L178 -54.8L198.8 18.8000000000001L205.7 24.3000000000001L226.4 11.4000000000001L314.7 56.6000000000001L371.5 108.1000000000001L386.3 176.5000000000001L260.9 153.2000000000001L276.1 171.4000000000001L102.7 224.7000000000001L184.6 235.2000000000001L18.6 358.1000000000002L133.5 340L32.2 448L285.1 321.4L253.6 359.4L378 285L234.7 384L253.4 345.6L203.8 363.7L158.3 448L352.9 326L310 381.8L418 285.4L430 294.3L409 310.7L413.2 348.5L451 358.9L480.2 334.2L491.7 330L484.7 323.8L493.2 311.8L480.1 304.4L469.8 284.2000000000001L480.3 260.3z" />
    +    <glyph glyph-name="stumbleupon-circle"
    +      unicode="&#xF1A3;"
    +      horiz-adv-x="496" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 262.5C246.2 262.5 238.2 254.5 238.2 244.7V137.8C238.2 96.9 204.3 63.9 163.3 63.9C121.9 63.9 88.4 97.4 88.4 138.8V185.3H145.7V139.5C145.7 129.5 153.7 121.6999999999999 163.5 121.6999999999999S181.3 129.5999999999999 181.3 139.5V247.9C181.3 287.9 215.5 320 256 320C296.7 320 330.7 287.7 330.7 247.4V223.7L296.6 213.6L273.7 224.3V244.9C273.8 254.5 265.8 262.5 256 262.5zM423.6 138.9C423.6 97.5 390.1 64 348.7000000000001 64C307.5000000000001 64 273.8000000000001 97.2 273.8000000000001 138.2V185L296.7000000000001 174.3L330.8000000000001 184.4V137.3C330.8000000000001 127.5 338.8000000000001 119.7 348.6000000000001 119.7S366.4000000000001 127.6 366.4000000000001 137.3V185.3H423.7000000000001C423.6000000000001 139.4 423.6000000000001 138.9 423.6000000000001 138.9z" />
    +    <glyph glyph-name="stumbleupon"
    +      unicode="&#xF1A4;"
    +      horiz-adv-x="512" d=" M502.9 182V112.3C502.9 50.2 452.6 -0.1 390.5 -0.1C328.7 -0.1 278.1 49.7 278.1 111.2V181.4L312.4000000000001 165.4L363.5000000000001 180.6V110C363.5000000000001 95.3 375.5000000000001 83.5 390.2000000000001 83.5S417 95.3 417 110V182H502.9zM278.2 240.2L312.5 224.2L363.6 239.4V275C363.6 335.5 312.5 384 251.5000000000001 384C190.7000000000001 384 139.4 335.8 139.4 275.8V113.4C139.4 98.5 127.4 86.7 112.7 86.7S86 98.5 86 113.4V182H0V112.3C0 50.3 50.3 0 112.4 0C174 0 224.8 49.5 224.8 110.8V271.1C224.8 285.8 236.8 297.8 251.5 297.8S278.2 285.8 278.2 271.1V240.2z" />
    +    <glyph glyph-name="superpowers"
    +      unicode="&#xF2DD;"
    +      horiz-adv-x="448" d=" M448 416C364.7 405 281.2 394 198 383C106 370.5 34.7 296.3 29 203C25.7 147.5 47 93.5 86.8 54.8L0 -32C83.3 -21 166.5 -10 249.8 1C341.6 13.5 413.1 87.8 418.5 180.8C422 236.3 400.5 290.3 360.8 329L448 416zM368.3 183.7C364.1 104.2 294.3 44.5 215.5 49.2C136 53.9 74.8 120.2 79.2 200.2C83.7 279.4 153.5 339.5 232.2 334.7C311.5 330 372.7 263.7 368.3 183.7z" />
    +    <glyph glyph-name="supple"
    +      unicode="&#xF3F9;"
    +      horiz-adv-x="640" d=" M640 185.5C640 121.4 531 69.4 396.5 69.4C371.7 69.4 347.9 71.2 325.4 74.4C333.1 74 340.9 73.8 348.8 73.8C483.3 73.8 592.3 130.6999999999999 592.3 200.9C592.3 230.3 573.1999999999999 257.3 541.0999999999999 278.9C601.0999999999999 257.8 639.9999999999999 223.8 639.9999999999999 185.5zM47.7 220.1C47.6 290.3 156.5 347.4 291 347.7C298.9 347.7 306.6 347.5 314.3 347.2C291.8 350.4 268 352.1 243.3 352.1C108.8 351.7 -0.1 299.5 0 235.4C0.1 197.1 39.1 163.1 99.3 142.1C67 163.6 47.8 190.7000000000001 47.7 220.1zM107.9 180.2S118.4 167 137.2 167C155.1 167 165.6 178.5 165.6 192.1C165.6 220.1 125.4 217.2 125.4 231.8C125.4 237.2 130.7 240.9 137.9 240.9C143.6 240.9 149.2000000000001 238.3 149.2000000000001 234.3V230.4H163.4V238.3C163.4 250.4 148 255.1 138 255.1C121.5 255.1 109.5 244.9000000000001 109.5 231.0000000000001C109.5 204.4 149.7000000000001 205.6 149.7000000000001 191.1C149.7000000000001 184.5 143.9 181 137.4 181C125.5 181 116.7 191.1 116.7 191.1L107.9 180.2000000000001zM228.7 253.8V199.4C228.7 188.1 221.6 181.6 210.9 181.6C200.2 181.6 193.1 188.1 193.1 199.3V253.8H177.3V198.8C177.3 179.9 190.7 166.9 211 166.9C231.1 166.9 244.4 179.9 244.4 198.8V253.8H228.7zM263.1 168.4H278.9V197.9H294.4C310.4 197.9 321.6 209.4 321.6 226S310.4 253.8 294.4 253.8H255.3V240.4H263.1V168.4zM278.9 211.4V240.5H291.8C300.5 240.5 305.5 234.8 305.5 226.1C305.5 217.2 300.3999999999999 211.4 291.5 211.4H278.8999999999999zM335.9 168.4H351.7V197.9H367.2C383.2 197.9 394.4 209.4 394.4 226S383.2 253.8 367.2 253.8H328.1V240.4H335.9V168.4zM351.6 211.4V240.5H364.5C373.2 240.5 378.2 234.8 378.2 226.1C378.2 217.2 373.2 211.4 364.2 211.4H351.5999999999999zM408.7 176.6C408.7 170.8 411.1 168.4 416.9 168.4H454.5C460.3 168.4 462.7 170.8 462.7 176.6V189.6H448.4V184.4C448.4 182.7 447.4 181.8 445.8 181.8H427.2C425.5 181.8 424.5999999999999 182.8 424.5999999999999 184.4V245.6C424.5999999999999 251.3 422.2 253.8 416.3999999999999 253.8H401V240.4H406.2C407.9 240.4 408.8 239.4 408.8 237.8V176.6zM472.1 176.6C472.1 170.8 474.4999999999999 168.4 480.3 168.4H519C524.7 168.4 527.2 170.8 527.2 176.6V189.6H512.9000000000001V184.4C512.9000000000001 182.7 511.9000000000001 181.8 510.3000000000001 181.8H490.6000000000001C488.9000000000001 181.8 488.0000000000001 182.8 488.0000000000001 184.4V204.7H515.7V218.1H488V240.5H507.2C508.9 240.5 509.8 239.5 509.8 237.9V232.7H524V245.7C524 251.4 521.5 253.9 515.8 253.9H464.1999999999999V240.5H471.9999999999999V176.6zM531 252.6V246.7H532.6V252.6H535.3000000000001V253.8H528.3000000000001V252.6H531.0000000000001zM536.7 253.8V246.7H538.2V252.4L540.5 246.7H541.8L544.0999999999999 252.4V246.7H545.5999999999999V253.8H543.3L541.1999999999999 248.7L539.0999999999999 253.8H536.6999999999999z" />
    +    <glyph glyph-name="teamspeak"
    +      unicode="&#xF4F9;"
    +      horiz-adv-x="511.8" d=" M0.82 210.18C3.18 225.7 11.51 237.22 25.7 244.21C29.2 246.06 31.35 247.71 32.07 252.02C38.24 285.43 51.6 315.9600000000001 71.44 343.61C73.8 346.8 75.45 348.9600000000001 72.47 352.9600000000001C68.77 358.31 71.44 363.14 75.45 367.45C103.51 399.32 137.33 422.55 177.43 434.89C273.24 464.29 357.53 444.24 429.8 374.44C436.48 368.07 445.32 361.5900000000001 436.79 350.08C435.4500000000001 348.23 437.82 346.58 438.9500000000001 345.04C459.6100000000001 316.98 473.1800000000001 285.62 479.35 251.39C480.17 247.69 482.33 246.35 485.21 245.02C502.58 236.18 510.91 221.68 511.22 202.77C511.22 185.6 513.07 168.23 510.1900000000001 151.06C506.1800000000001 126.39 481.0000000000001 109.32 456.9400000000001 114.36C449.7400000000001 116 447.5900000000001 121.56 447.5900000000001 128.55C447.5900000000001 156.61 448.4100000000001 184.99 447.5900000000001 213.15C445.74 288.9100000000001 411.4100000000001 345.9600000000001 345.3100000000001 382.56C234.28 443.02 92.11 375.58 67.54 251.09C61.48 220.67 65.8 202.82 63.84 125.27C63.53 118.07 59.52 114.07 51.81 113.76C20.97 112.42 0 131.95 0 162.79V183.66M221.74 76.85C233.56 81.17 241.79 88.67 244.25 101.21C246.61 113.55 232.22 131.23 211.87 149.9400000000001C191 169.1600000000001 163.65 189.0000000000001 148.44 196.5100000000001C126.75 208.5400000000001 106.7 198.3600000000001 102.18 173.7900000000001C97.14 147.5800000000001 102.18 122.3900000000001 116.67 99.8800000000001C126.85 84.3600000000001 142.06 77.1600000000001 160.05 75.8300000000001C171.67 75.2100000000001 212.59 73.6700000000001 221.74 76.8500000000001M351.5700000000001 71.3000000000001C388.0700000000001 68.4900000000001 410.9000000000001 99.8500000000001 409.9600000000001 131.7500000000001C407.8200000000001 176.9200000000001 343.79 148.2300000000001 322.17 139.7700000000001C249.01 111.6300000000001 277.12 84.85 299.9700000000001 79.02M449.23 80.35C446.25 82.71 442.0300000000001 81.38 440.9000000000001 77.99C432.8800000000001 52.6 396.1800000000001 -34.47 268.8200000000001 -43.52C119.1500000000001 -54.01 349.1100000000001 -87.11 414.1800000000001 -37.15C436.9000000000001 -19.78 461.7800000000001 -2.1 460.7500000000001 48.28C460.4300000000001 58.35 455.9100000000001 75 449.2300000000001 80.35" />
    +    <glyph glyph-name="telegram-plane"
    +      unicode="&#xF3FE;"
    +      horiz-adv-x="448" d=" M446.7 349.4L379.1 30.6C374 8.1 360.7000000000001 2.5 341.8 13.1L238.8 89L189.1 41.2C183.6 35.7 179 31.1 168.4 31.1L175.8000000000001 136L366.7000000000001 308.5C375.0000000000001 315.9 364.9000000000001 320 353.8000000000001 312.6L117.8 164L16.2 195.8C-5.9 202.7 -6.3 217.9 20.8 228.5L418.2 381.6C436.6 388.5 452.7 377.5 446.7 349.4z" />
    +    <glyph glyph-name="telegram"
    +      unicode="&#xF2C6;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM369.8 270.1L329.1 78.3C326.1 64.6999999999999 318 61.4 306.7000000000001 67.8L244.7000000000001 113.5L214.8000000000001 84.6999999999999C211.5 81.3999999999999 208.7000000000001 78.5999999999999 202.3000000000001 78.5999999999999L206.7000000000001 141.6999999999999L321.6 245.5C326.6 249.9 320.5 252.4 313.9000000000001 248L171.9 158.5999999999999L110.7 177.6999999999999C97.4 181.8999999999999 97.1 191 113.5 197.3999999999999L352.6 289.5999999999999C363.7000000000001 293.5999999999999 373.4000000000001 286.8999999999999 369.8 270.0999999999999z" />
    +    <glyph glyph-name="tencent-weibo"
    +      unicode="&#xF1D5;"
    +      horiz-adv-x="384" d=" M72.3 -47.8C73.7 -67.7 44.7 -70 42.6 -50.7C31 79.2 73.7 188.8 144 262.5C128.4 296.5 153.2 339.6 194.6 339.6C224.9 339.6 249.7 315 249.7 284.5C249.7 240.5 200.2 213.7 162.8 239.4C97.1 168.1 61.4 69.6 72.3 -47.8zM192 447.9C66.1 447.9 -12.3 313.7 43.7 205.6C52.4 188.2 79 201.1 70 219C23.7 311.6 91 418.2 192 418.2C267.4 418.2 328.9 356.8 328.9 281.3C328.9 190.5 242 127.4 161.2 148.2C142.1 152.3 135.6 123.8 154.6 119.1C265.3 95.9 358.6 179.1 358.6 281.4C358.6 373.3 284 447.9 192 447.9z" />
    +    <glyph glyph-name="the-red-yeti"
    +      unicode="&#xF69D;"
    +      horiz-adv-x="505.07" d=" M484.41 206.26L505.0700000000001 199.13C495.51 223.04 481.14 236.09 473.35 243.89L480.48 262.09C480.73 262.09 492.76 289.88 478.02 292.83C477.39 304.18 471.4300000000001 319.88 459.58 319.88C451.96 330.45 441.8700000000001 332.18 428.8400000000001 325.78C419.99 321.6 411.1300000000001 315.7 403.5100000000001 309.3C398.2100000000001 315.74 400.5600000000001 308.92 400.5600000000001 339.06C363.4800000000001 363.3400000000001 355.1600000000001 350.79 325.8000000000001 336.11L326.2900000000001 335.62C305.1400000000001 343.24 282.2700000000001 347.67 257.9300000000001 348.9000000000001C252.3800000000001 357.61 239.3300000000001 368 232.8500000000001 373.98L257.6900000000001 366.85C252.2000000000001 372.3400000000001 230.9100000000001 379.76 223.5100000000001 382.1C241.7100000000001 386.2100000000001 253.2900000000001 402.87 266.0500000000001 415.05C231.1300000000001 425.13 198.1800000000001 420.9500000000001 168.1700000000001 403.25L179.97 447.52L178.24 448C146.64 423.84 145.25 406.1 144.55 402.51C143.64 404.9 138.23 422.12 129.3 429.56C125.86 420.71 125.86 412.35 128.81 404.23C131.76 395.87 134.71 389.4700000000001 137.17 385.29C121.13 388.5900000000001 108.82 390.19 87.99 385.29H84.3L117.25 371.03C96.59 351.6 81.35 329.2200000000001 70.53 303.65L68.81 295.29L70.53 293.5700000000001L78.15 298.24C74.82 286.6 72.88 278.85 71.51 272.42C60.2 259.63 51.1 246.35 43.72 232.0900000000001C28.75 231.0900000000001 11.9 221.31 3.39 217.8300000000001L6.34 214.3900000000001L35.11 213.4100000000001C34.62 212.4300000000001 34.37 211.2000000000001 33.88 210.2100000000001C26.59 203.8300000000001 -5.9 172.5600000000001 0.93 129.5500000000001L21.1 151.9300000000001C21.59 150.21 21.84 148.4900000000001 22.33 146.7700000000001C22.33 121.24 22.7 57.1300000000001 87.25 -3.73C131.03 -43.83 183.41 -63.9999999999999 244.89 -63.9999999999999C366.62 -63.9999999999999 467.94 23.2900000000001 467.94 147.4900000000001C474.74 157.2100000000001 466.7 144.4600000000001 484.66 172.5700000000001L497.6899999999999 158.3100000000001L500.1499999999999 158.8000000000001C498.4299999999999 170.1100000000001 495.4799999999999 181.1800000000001 491.2999999999999 192.9800000000001C489.0799999999999 199.3800000000001 486.6199999999999 203.3100000000001 484.4099999999999 206.2600000000001zM468.92 247.58L454.66 259.38L472.86 260.61L468.92 247.58zM394.1600000000001 336.85L393.67 314.96C399.19 296.83 410.55 297.75 416.05 297.75L412.61 302.42L434.99 307.83C424.9100000000001 307.3399999999999 416.05 307.3399999999999 407.94 307.83C420.75 309.9599999999999 441.26 336.86 450.98 319.14C454.42 311.52 457.37 301.93 460.32 291.35L462.04 297.25C460.81 301.43 460.32 306.59 460.32 312.5C465.73 312.01 469.17 309.06 469.66 302.42C470.15 296.03 471.38 287.66 473.1 277.09L477.77 288.4C482.36 288.4 482.24 292.01 475.31 267.74C454.42 276.44 440.2200000000001 276.1 428.83 276.1L447.03 292.08C421.75 283.93 414 281.28 392.19 271.18C391.11 276.5899999999999 387.2099999999999 284.68 376.2099999999999 291.1C373.0299999999999 287.28 373.45 290.2 375.4699999999999 276.34H373.01C371.7799999999999 284.7 368.83 292.32 364.6499999999999 299.46L368.83 302.9C377.19 310.03 380.63 317.16 379.3999999999999 324.79C378.9099999999999 331.18 373.9899999999999 338.32 365.87 345.45C371.53 348.65 381.12 345.7 394.16 336.85zM354.5700000000001 346.93C357.2600000000001 345.01 365.9700000000001 341.55 373.5100000000001 329.72C377.7100000000001 321.32 377.4900000000001 319.91 376.9500000000001 318.65C376.4700000000001 316.24 376.4900000000001 314.32 374.0000000000001 311.52C372.2800000000001 309.06 368.5900000000001 306.85 362.2000000000001 303.9C354.5800000000001 316.93 345.7200000000001 327.51 334.4100000000001 335.13L354.5700000000001 346.93zM87.25 304.88L88.48 306.6C89.71 309.55 92.66 314.2200000000001 97.82 321.85L100.28 325.29L87.25 312.99L92.66 317.66L82.58 308.32L78.4 307.09C90.7 331.19 101.52 348.4 110.86 357.26C120.2 366.6 126.84 373.24 131.03 376.69L124.64 375.46C113.33 379.64 105.21 382.59 99.8 383.82C102.26 384.31 103.49 384.31 103 384.31C113.33 384.31 120.46 383.82 123.9 383.08C129.31 381.36 134.47 380.62 139.88 380.62L140.37 382.34L132.0100000000001 418.24L145.5400000000001 389.22C147.2600000000001 391.68 149.7200000000001 396.35 151.4400000000001 403.48C153.1600000000001 409.87 156.8500000000001 416.51 161.5200000000001 422.91C166.1900000000001 429.3 169.1400000000001 433.48 170.8600000000001 434.22C167.9100000000001 425.37 166.1900000000001 417.01 164.4700000000001 408.89L162.7500000000001 401.76L162.2600000000001 397.09L164.7200000000001 394.63C186.6100000000001 408.16 210.2100000000001 414.06 236.0400000000001 413.57L257.1900000000001 413.08C245.3900000000001 399.55 229.4000000000001 391.19 208.7400000000001 388.24C200.1300000000001 386.76 192.5100000000001 385.78 185.3800000000001 385.29L185.1300000000001 385.78L182.6700000000001 387.01C177.5100000000001 387.99 172.8300000000001 387.26 168.65 385.04C166.19 385.29 163.7300000000001 385.53 161.5200000000001 385.78L159.06 384.06L159.5500000000001 382.83C161.5200000000001 382.58 163.4800000000001 382.34 165.7000000000001 382.09L163.7300000000001 378.65L167.1700000000001 379.14L156.6000000000001 367.83C152.4200000000001 364.88 151.1900000000001 361.44 152.4200000000001 358.49L157.8300000000001 361.93H159.06C165.45 370.29 174.31 375.46 184.3900000000001 377.18V380.13C190.78 379.64 197.4200000000001 379.15 203.8200000000001 378.9C210.21 378.9 212.1800000000001 378.41 209.2300000000001 377.67C216.8500000000001 373.49 223.4900000000001 368.82 229.8900000000001 364.14C243.4200000000001 354.06 253.5000000000001 342.25 259.8900000000001 328.73C268.7400000000001 310.53 273.42 291.6 273.42 272.17C273.42 262.0899999999999 272.19 252.74 270.4700000000001 243.89C268.12 233.1 262.67 214.27 254.4900000000001 197.9L256.9500000000001 197.41C275.1800000000001 217.0799999999999 298.85 213.3899999999999 306.1300000000001 213.3899999999999L299.7400000000001 207.4899999999999L322.1200000000001 189.7799999999999L320.4000000000001 159.0399999999999C314.99 171.3399999999999 303.92 180.1899999999999 287.4500000000001 186.8299999999999C303.9300000000001 172.0699999999999 311.0600000000001 165.68 309.3400000000001 166.6599999999999C304.5300000000001 169.4699999999999 305.8100000000001 168.5299999999999 298.5200000000001 170.3499999999999C302.6400000000001 166.2299999999999 315.9700000000001 151.5599999999999 316.7200000000001 149.6899999999999L316.9700000000001 149.4399999999999L316.7200000000001 149.1899999999999C316.7200000000001 147.4299999999999 318.2800000000001 150.3699999999999 302.7000000000001 126.3199999999999C227.5500000000001 141.6299999999999 196.4400000000001 169.0599999999999 161.5400000000001 189.5199999999999L173.3400000000001 188.2899999999999C161.5900000000001 206.8199999999999 157.7100000000001 206.0099999999999 134.9800000000001 214.3599999999999L145.5500000000001 222.7199999999999C136.7000000000001 225.6699999999999 127.3500000000001 225.6699999999999 117.2700000000001 222.2299999999999L124.8900000000001 232.7999999999999L123.6600000000001 234.5199999999999C108.7700000000001 230.1799999999999 103.8100000000001 225.3499999999999 101.0400000000001 223.2099999999998C99.9000000000001 228.6699999999999 98.2700000000001 235.6499999999999 88.7400000000001 251.9799999999999L87.5100000000001 224.9299999999998L73.9800000000001 230.3399999999999C75.4500000000001 255.4499999999998 79.3800000000001 280.7799999999999 87.2500000000001 304.8799999999998zM363.6600000000001 -25.15C313.74 -50.11 307.5300000000001 -47.56 304.6400000000001 -49C274.8800000000001 -37.2 253.7400000000001 -17.28 241.1900000000001 9.77L271.1900000000001 -6.71C261.4200000000001 2.6 252.8500000000001 9.83 232.8300000000001 37.5599999999999L244.6300000000001 14.4399999999999L226.9200000000001 22.0599999999999C241.1200000000001 0.98 250.3900000000001 -29.6800000000001 293.5600000000001 -51.47C172.7900000000001 -75.62 94.5300000000001 20.64 92.6500000000001 22.8C103.9600000000001 13.46 115.7700000000001 5.09 128.0600000000001 -2.04C131.5000000000001 -3.76 135.1900000000001 -4.5 138.1400000000001 -3.27L122.1600000000001 17.39C131.3900000000001 13.2 131.6500000000001 12.89 191.2600000000001 -11.63C148.7200000000001 9.03 117.4800000000001 29.19 98.0600000000001 48.62C97.5700000000001 42.23 96.83 38.54 96.83 38.54C105.68 30.92 112.8100000000001 22.06 117.4900000000001 11.98C78.44 30.83 59.9 59.59 46.17 94.61C96.0600000000001 39.51 165.0200000000001 57.12 166.6700000000001 57.48C201.46 41.05 236.5400000000001 33.87 280.5300000000001 46.91C283.85 46.91 300.8300000000001 29.93 305.86 7.81L310.04 10.76L307.5800000000001 34.37C316.5300000000001 25.42 332.48 11.81 342.0100000000001 21.34C326.4300000000001 26.66 318.4900000000001 30.83 312.5000000000001 53.0600000000001C317.0800000000001 48.8600000000001 320.0700000000001 44.0100000000001 340.2900000000001 38.0600000000001L341.5200000000001 39.2900000000001L330.9500000000001 53.5500000000001C342.6000000000001 58.4000000000001 327.4100000000001 52.5400000000001 362.9200000000001 64.3700000000001C367.2600000000001 30.14 371.9700000000001 15.2200000000001 363.6600000000001 -25.1499999999999zM479 189.29L476.54 188.8L479.49 179.46C475.94 173.59 455.76 135.2000000000001 407.93 99.78C368.39 70.02 331.35 60.65 327.02 59.4500000000001L319.4 66.58L318.17 63.6300000000001L332.43 47.65L325.3 52.3200000000001L328.74 48.14H327.51L305.62 61.67L314.9599999999999 35.11L296.0199999999999 62.9L294.7899999999999 60.4400000000001L302.4099999999999 31.4200000000001C296.2999999999999 39.6600000000001 281.3799999999999 64.0300000000001 245.5999999999999 71.0100000000001L278.0599999999999 49.8600000000001C246.0899999999999 45.1900000000001 214.8599999999999 47.4000000000002 184.8599999999999 56.2500000000001C180.6799999999999 57.4800000000001 176.0099999999999 58.7100000000001 171.3299999999999 60.4300000000001L172.5599999999999 63.3800000000001L127.7999999999999 85.7600000000001L153.8699999999999 63.3800000000001C96.2099999999999 54.3000000000001 40.9099999999999 88.7900000000001 27.4699999999999 146.7500000000001L25.0099999999999 163.2300000000001L2.6599999999999 140.8500000000001C22.1299999999999 198.3600000000001 28.2699999999999 198.7400000000001 54.0599999999999 210.9400000000002C44.9699999999999 216.2700000000002 52.5099999999999 214.2000000000001 15.6999999999999 220.2800000000002C31.4799999999999 226.0700000000002 48.7499999999999 235.7200000000002 88.7399999999999 215.1200000000002C91.6899999999999 216.6000000000001 90.8799999999999 216.2200000000002 92.4299999999999 216.8400000000002C93.0699999999999 220.0200000000002 92.8399999999999 217.6600000000002 93.4099999999999 228.6400000000002C97.2999999999999 218.6300000000002 97.0399999999999 219.9700000000002 96.3599999999999 219.3000000000002L98.0799999999999 218.8100000000002C110.7699999999999 225.3000000000002 106.9999999999999 223.3300000000002 115.0499999999999 227.6600000000002L109.6399999999999 214.1300000000002L132.0199999999999 220.0300000000002L123.6599999999999 211.6700000000001L126.1199999999999 209.2100000000001C130.6199999999999 211.0100000000001 156.4699999999999 205.7900000000001 166.9399999999999 193.2300000000001L143.3299999999999 195.6900000000002C182.7199999999999 172.7100000000002 194.7899999999999 141.7200000000002 199.1499999999999 126.1000000000001L200.8699999999999 127.3300000000002C198.0299999999999 149.6100000000001 188.4999999999999 161.2100000000002 184.8899999999999 167.4100000000002C189.1099999999999 162.4200000000001 224.0899999999999 132.8500000000001 295.3099999999999 121.4200000000001C283.9999999999999 121.9100000000002 272.1899999999999 116.0100000000001 260.3899999999999 102.4800000000001L307.1099999999999 122.6500000000002L297.7699999999999 100.7600000000002C305.39 110.8400000000002 312.5299999999999 124.3700000000002 318.9199999999999 140.3500000000001V140.8400000000002L320.1499999999999 143.7900000000001L318.9199999999999 127.8100000000001C332.4499999999999 169.6200000000001 344.2499999999999 206.2600000000001 354.33 237.4900000000001L367.8599999999999 265.2800000000001V267.2500000000001L362.4499999999999 271.4300000000001H372.5299999999999L378.4299999999999 267.2500000000001L380.8899999999998 268.4800000000002L377.4499999999998 284.4600000000001L389.7499999999999 265.5200000000001L431.5599999999999 285.6900000000001L416.7999999999999 272.6600000000001L417.2899999999999 269.7100000000002L434.9999999999999 270.2000000000002C446.3099999999999 269.7100000000002 456.8899999999998 268.4800000000002 467.9499999999998 266.0200000000001L444.3399999999998 263.5600000000001L443.1099999999998 260.6100000000002L469.6699999999998 237.4900000000001C479.7499999999998 227.4100000000001 488.6099999999998 216.8300000000001 496.7199999999998 205.5200000000001C485.4799999999998 208.8100000000001 486.4399999999998 208.9600000000001 475.5699999999998 208.9600000000001L487.8699999999998 176.5000000000001L478.9999999999998 189.2900000000001zM201.11 278.3200000000001C166.26 263.9000000000001 166.38 264.3400000000001 164.96 264.0600000000001C144.13 259.3300000000001 145.99 288.5 146.02 288.9000000000001L151.92 290.13L151.43 292.5900000000001C131.26 295.24 120.4 288.4200000000001 118.97 287.6700000000001C119.46 287.1800000000001 121.92 284.23 124.87 278.3300000000001C129.05 284.7200000000001 133.72 288.4100000000001 140.12 288.9000000000001C138.4 277.5900000000001 138.89 266.5200000000001 141.84 255.2100000000001C141.91 254.7000000000001 144.41 237.7700000000001 169.38 231.1100000000001C180.69 228.1600000000001 196.43 229.8800000000001 218.32 236.5200000000001L208.98 236.0300000000001C204.8 250.79 202.59 260.87 203.08 265.54C214.39 274.39 224.97 276.85 233.82 273.1600000000001H236.28L224.48 280.7800000000001L217.35 280.29C211.45 279.0600000000001 205.05 276.11 197.92 271.93L201.11 278.32zM212.18 365.13L209.72 364.6400000000001L210.21 361.6900000000001C218.57 362.18 227.42 360.4600000000001 236.28 355.79C233.78 361.3300000000001 226.31 370.05 208 370.05L208.49 367.5900000000001L212.18 365.1300000000001zM145.04 309.0600000000001C141 315.4100000000001 141.95 314.11 140.37 315.7000000000001C162.06 298.9400000000001 156.85 294.29 186.85 292.0900000000001L183.9 296.76C192.75 304.38 197.43 313.9700000000001 198.66 325.04C200.38 341.0200000000001 197.43 354.55 189.81 366.35L202.84 373.9700000000001C202.84 374.4600000000001 202.84 375.2000000000001 202.35 375.6900000000001C197.68 377.4100000000001 193.01 376.92 188.82 373.9700000000001C176.14 367.3 160.83 353.0300000000001 159.8 351.5900000000001C158.08 349.87 156.36 345.6900000000001 154.39 338.0600000000001C152.67 330.9300000000001 151.44 323.3 151.44 314.4500000000001C146.76 322.4100000000001 140.92 320.85 131.5200000000001 320.35L138.65 312.73C122.18 312.73 115.3300000000001 297.3000000000001 115.04 296.7500000000001C121.85 296.7600000000001 119.64 304.35 145.04 309.0600000000001zM159.06 334.3900000000001C160.29 342.0100000000001 162.5 347.42 165.45 351.6C170.86 357.99 176.02 361.68 181.43 363.4000000000001C185.61 365.12 188.56 362.17 191.51 354.06C193.97 346.44 194.95 337.5800000000001 194.46 328.73C193.97 319.39 191.02 311.52 186.1 305.61C183.15 302.17 180.69 299.7100000000001 179.71 297.99C175.0400000000001 297.5 171.35 297.99 168.4 298.48L161.2700000000001 301.92L155.8600000000001 308.31C156.8500000000001 318.4 157.34 327.25 159.06 334.39zM221.7700000000001 355.7800000000001C215.3800000000001 359.2200000000001 211.2000000000001 352.8300000000001 209.47 336.8400000000001S211.93 307.3300000000001 221.2700000000001 297.25C230.6100000000001 287.17 239.4700000000001 286.6800000000001 247.3400000000001 294.3000000000001C255.2100000000001 301.9200000000001 250.7800000000001 317.9100000000001 236.0300000000001 342.0100000000001C232.8400000000001 347.4200000000001 228.1600000000001 352.0900000000001 221.7700000000001 355.7800000000001zM217.1000000000001 309.5500000000001C222.4600000000001 307.3200000000001 227.6100000000001 307.6400000000001 229.4000000000001 320.12V324.79L228.1700000000001 324.3000000000001C223.8900000000001 327.35 225.6200000000001 328.79 226.4500000000001 330.4500000000001L226.9400000000001 330.9400000000001C226.0600000000001 332.1700000000001 221.9200000000001 339.0500000000001 214.4000000000001 326.2700000000001C213.9100000000001 339.8000000000001 214.8900000000001 348.1600000000001 217.3500000000001 351.11C218.5800000000001 353.5700000000001 222.0200000000001 352.3400000000001 228.6600000000001 346.9300000000001C235.0500000000001 341.5200000000001 239.9700000000001 330.9500000000001 243.9100000000001 314.4700000000001C250.5000000000001 286.4100000000001 224.2100000000001 288.2100000000001 217.1000000000001 309.5500000000001zM172.0900000000001 314.9600000000001C173.6600000000001 314.6500000000001 181.4300000000001 316.0500000000001 181.4300000000001 329.7200000000001H180.9400000000001C175.5000000000001 330.8100000000001 178.7000000000001 335.1900000000001 180.2000000000001 335.6200000000001C178.4800000000001 338.5700000000001 176.7600000000001 339.8000000000001 174.7900000000001 340.2900000000001C166.6400000000001 340.2900000000001 163.1400000000001 327.6300000000001 166.6700000000001 319.1400000000001C167.9100000000001 316.6800000000001 169.8800000000001 315.4500000000001 172.09 314.9600000000001zM218.0800000000001 253.4800000000001C219.8000000000001 242.9100000000001 222.7500000000001 235.7700000000001 226.9300000000001 231.5900000000001C217.6700000000001 224.98 199.3900000000001 217.7400000000001 180.4500000000001 215.6100000000001L180.9400000000001 214.3800000000001C189.3000000000001 213.1500000000001 197.4200000000001 213.8900000000001 205.7800000000001 216.8400000000001L198.6500000000001 203.8100000000001C202.8300000000001 205.5300000000001 208.7300000000001 210.9400000000001 216.3600000000001 218.5700000000001C228.2900000000001 224.0800000000001 229.0800000000001 223.6400000000001 236.5300000000001 234.5500000000001C223.8000000000001 241.1300000000001 220.7700000000001 248.3800000000001 218.0800000000001 253.4800000000001z" />
    +    <glyph glyph-name="themeco"
    +      unicode="&#xF5C6;"
    +      horiz-adv-x="441.03" d=" M199.74 435.71C209.48 441.35 225.33 441.44 235.13 435.92L423.26 329.9700000000001C433.07 324.45 441.02 310.83 441.02 299.5900000000001V85.72C441.02 74.46 433.09 60.83 423.31 55.2600000000001L235.09 -51.88C225.31 -57.45 209.51 -57.36 199.8 -51.67L17.58 55.05C7.87 60.74 0 74.48 0 85.73V299.5900000000001C0 310.85 7.9 324.55 17.63 330.18L199.74 435.71zM123.54 239C107.85 239 92.15 238.86 76.46 238.86V138.99H95.29V168.38H123.54C172.48 168.38 172.33 239 123.54 239zM261.5 140.27L231.25 174.37C267.65 181.76 265.51 238.58 220.55 238.86C204.71 238.86 188.88 239 173.04 239V138.99H191.87V172.37H210L239.1 138.99H261.5V140.27zM220.56 221.31C243.54 221.31 243.46 189.35 220.56 189.35H191.88V221.31H220.56zM126.49 222.88C147.34 222.88 147.27 184.64 126.49 184.64H94.68V222.87L126.49 222.88zM316.14 240.85C248.74 240.85 246.28 136.7 316.14 136.7C384.53 136.71 384.47 240.85 316.14 240.85zM316.14 223.73C359.57 223.73 360.24 153.97 316.14 153.97C272.02 153.97 272.4 223.73 316.14 223.73z" />
    +    <glyph glyph-name="themeisle"
    +      unicode="&#xF2B2;"
    +      horiz-adv-x="512" d=" M208 359.714C208 369.714 214.286 381.428 225.715 381.428C236.857 381.428 243.429 369.714 243.429 359.714C243.429 349.429 236.857 338 225.715 338C214.286 338 208 349.429 208 359.714zM512 199.714C512 163.713 500.571 97.428 475.714 70C452.856 45.142 388.286 8.857 354.857 -0.572L353.714 -0.858V-33.429C353.714 -49.715 341.142 -64 324.5710000000001 -64C314.5710000000001 -64 305.1420000000001 -58.286 299.999 -49.714C294.572 -58.286 285.1430000000001 -64 275.1430000000001 -64C265.1430000000001 -64 255.7140000000001 -58.286 250.2850000000001 -49.714C245.1430000000001 -58.286 235.7140000000001 -64 225.7150000000001 -64C215.429 -64 206.286 -58.286 200.857 -49.714C195.714 -58.286 186.286 -64 176.286 -64C157.429 -64 146.857 -48.286 146.857 -31.143C130.571 -43.4280000000001 111.142 -50.571 90.286 -50.571C68.286 -50.571 46.857 -42.286 30 -27.7140000000001C40.285 -27.4280000000001 50.571 -25.4280000000001 60.285 -22.0000000000001C39.428 -16.2860000000001 20.857 -3.143 8.285 14.2859999999999C29.655 9.641 54.494 12.6129999999999 75.428 25.429C53.428 47.429 18.857 84.286 6.856 112.857C1.143 126.286 0 144.286 0 158.571C0 208.285 20.286 318.5710000000001 86.286 318.5710000000001C96.857 318.5710000000001 105.143 313.713 109.429 303.7140000000001A158.792 158.792 0 0 0 121.429 319.1420000000001C123.429 321.7140000000001 127.143 324.5710000000001 128.572 327.428C136.571 339.999 140.286 348.5700000000001 150.286 361.428C182.571 402.572 232 430.857 285.143 430.857C291.143 430.857 297.143 430.572 302.857 429.714C313.714 441.429 328.8570000000001 448 344.572 448C359.1430000000001 448 374.286 442 384.572 431.714C385.4290000000001 430.856 386 429.428 386 428.286C386 424.572 375.715 414.857 373.1430000000001 412C377.4290000000001 410.5710000000001 388.8570000000001 405.142 388.8570000000001 400C388.8570000000001 397.1430000000001 386 394.857 384.286 392.857C415.715 365.1430000000001 433.7150000000001 325.714 440.572 284.857C444.858 290 450.857 293.429 457.715 293.429C468.2860000000001 293.429 478.572 286.285 486.2860000000001 279.428C507.143 260.857 512 226.286 512 199.714zM188 358.572C188 340.286 200.571 321.429 220.286 321.429C240 321.429 252.571 340.286 252.571 358.572C252.571 376.572 240 395.429 220.286 395.429C200.571 395.429 188 376.5710000000001 188 358.572zM237.714 254C237.714 273.714 241.428 293.1430000000001 246.285 312.286C194.246 232.752 232.754 127.715 315.1430000000001 127.715C336.5710000000001 127.715 357.7140000000001 135.429 375.1430000000001 147.715C377.1430000000001 155.144 378.8570000000001 162.572 378.8570000000001 170.287C378.8570000000001 184.573 372.5710000000001 191.715 358.2850000000001 191.715C353.714 191.715 349.1420000000001 190.858 344.8560000000001 190.001C281.5130000000001 177.333 237.7140000000001 186.3320000000001 237.7140000000001 254.0000000000001zM196.572 -0.858C196.572 10.285 187.714 19.999 176.286 19.999C164.857 19.999 156.286 10.284 156.286 -0.8579999999999V-33.429C156.286 -44.572 164.857 -54.571 176.286 -54.571C187.714 -54.571 196.572 -44.856 196.572 -33.429V-0.8579999999999zM245.715 -0.858C245.715 10.285 237.143 19.999 225.715 19.999C214.286 19.999 205.429 10.284 205.429 -0.8579999999999V-33.429C205.429 -44.572 214.286 -54.571 225.715 -54.571C237.143 -54.571 245.715 -44.571 245.715 -33.429V-0.8579999999999zM295.428 -0.858C295.428 10.285 286.5710000000001 19.999 275.143 19.999C263.714 19.999 254.857 10.284 254.857 -0.8579999999999V-33.429C254.857 -44.572 263.714 -54.571 275.143 -54.571C286.571 -54.571 295.428 -44.856 295.428 -33.429V-0.8579999999999zM345.1430000000001 -0.858C345.1430000000001 10.285 336.2860000000001 19.999 324.8570000000001 19.999C313.4290000000001 19.999 304.5710000000001 10.284 304.5710000000001 -0.8579999999999V-33.429C304.5710000000001 -44.572 313.4290000000001 -54.571 324.8570000000001 -54.571C336.286 -54.571 345.1430000000001 -44.571 345.1430000000001 -33.429V-0.8579999999999zM421.714 162C390.857 102.858 331.429 59.428 263.1430000000001 59.428C166.572 59.428 102.572 144 102.572 236C102.572 252.857 104.572 269.429 108.572 285.714C88.572 251.999 78.858 213.142 78.858 174.285C78.858 113.999 103.715 52.5699999999999 150.287 13.428C155.43 23.142 165.144 29.714 176.287 29.714C186.287 29.714 195.715 24 200.858 15.428C206.287 23.999 215.429 29.714 225.7160000000001 29.714C235.7160000000001 29.714 245.1440000000001 24 250.2870000000001 15.428C255.7160000000001 23.999 265.144 29.714 275.1450000000001 29.714C285.1450000000001 29.714 294.5730000000001 24 300.0020000000001 15.428C305.1450000000001 23.999 314.5730000000001 29.714 324.5740000000001 29.714C335.4310000000001 29.714 345.4310000000001 23.142 350.2880000000001 13.714C393.7150000000001 50 418.8570000000001 105.714 421.7140000000001 162zM432.286 261.714C432.286 315.428 397.7150000000001 367.428 339.714 367.428C309.429 367.428 281.1430000000001 352.285 260.857 330.5710000000001C240.862 264.188 233.41 194 302.286 194C331.091 194 399.6430000000001 222.538 386.572 157.143C415.429 183.143 432.286 222.857 432.286 261.7140000000001z" />
    +    <glyph glyph-name="trade-federation"
    +      unicode="&#xF513;"
    +      horiz-adv-x="496" d=" M202.45 339.58V257.9700000000001H38.94L87.16 196.06H201.89V-0.69H266.5V195.04H349.77V257.73H266.59V276.9H412.21V339.5800000000001H202.45zM207.31 333.58H405.0800000000001V282.9H259.44V251.97H342.62V201.04H259.36V5.31H206.63V202.06H89.86L49.91 251.97H207.31V333.58zM247.99 439.2C111.03 439.2 0 328.17 0 191.2S111.03 -56.8 247.99 -56.8S496 54.24 496 191.2S384.96 439.2 247.99 439.2zM248.01 425.96C377.67 425.96 482.77 320.8400000000001 482.77 191.18S377.67 -43.58 248.01 -43.58S13.23 61.53 13.23 191.19S118.35 425.96 248.01 425.96zM248.01 418.07C122.71 418.07 21.12 316.5 21.12 191.2S122.71 -35.69 248.01 -35.69S474.88 65.9 474.88 191.2S373.31 418.07 248.01 418.07zM247.99 404.77C365.94 404.77 461.55 309.15 461.55 191.21S365.93 -22.35 247.99 -22.35S34.43 73.25 34.43 191.2S130.04 404.77 247.99 404.77zM174.67 299.9700000000001L190.33 281.92L168.17 291.37L155.84 270.9L157.99 294.89L134.71 300.29L158.19 305.66L156.13 329.4700000000001L168.5 308.8L190.51 318.12L174.67 299.9700000000001zM127.53 346.51L135.54 334.11L148.23 339.97L138.91 328.52L148.41 318.27L134.64 323.59L127.82 311.39L128.63 326.13L114.92 328.84L129.19 332.62L127.53 346.51zM378.3 270.92L390.29 251.36L411.17 260.47L396.2700000000001 243.02L411.3800000000001 225.98L390.1800000000001 234.76L378.6400000000001 215.12L380.4400000000001 237.99L358.2000000000001 242.89L380.5100000000001 248.2500000000001L378.3000000000001 270.92zM271.25 172.47L285.11 175.69L283.8300000000001 189.86L291.1800000000001 177.68L304.2600000000001 183.27L294.9500000000001 172.52L304.3100000000001 161.81L291.2100000000001 167.35L283.92 155.1400000000001L285.1400000000001 169.3100000000001L271.2500000000001 172.4700000000001zM145.82 165.97L169.55 169.84L167.82 194.37L178.83 172.99L201.62 182.21L184.69 165.13L200.5 146.3L179.03 157.12L166.01 136.26L169.67 160.03L145.82 165.97zM209.26 331.63V250.02H54.16L90.88 204.01H208.58V7.26H257.4V202.99H340.67V250.02H257.4V284.85H403.13V331.63H209.26zM220.12 320.43H391.92V296.07H246.88V239.84H329.81V215.9H246.88V18.48H220.12V215.9H96.31L76.22 239.84H220.12V320.43z" />
    +    <glyph glyph-name="trello"
    +      unicode="&#xF181;"
    +      horiz-adv-x="448" d=" M392 416H56C25.1 416 0 390.9 0 360V24C0 -6.9 25.1 -32 56 -32H392C422.9 -32 448 -6.9 448 24V360C448 390.9 422.9 416 392 416zM194.9 76.6C194.9 61.8 182.9 49.7 168 49.7H85.1C70.3 49.7 58.2 61.7000000000001 58.2 76.6V330.9C58.2 345.7 70.2 357.8 85.1 357.8H168C182.8 357.8 194.9 345.8 194.9 330.9V76.6zM389.8 188.6C389.8 173.8 377.8 161.7000000000001 362.9000000000001 161.7000000000001H280C265.2 161.7000000000001 253.1 173.7000000000001 253.1 188.6V330.9C253.1 345.7 265.1 357.8 280 357.8H362.9C377.7 357.8 389.8 345.8 389.8 330.9V188.6z" />
    +    <glyph glyph-name="tripadvisor"
    +      unicode="&#xF262;"
    +      horiz-adv-x="576" d=" M166.4 167.479C166.4 154.243 155.67 143.513 142.434 143.513S118.468 154.243 118.468 167.479S129.198 191.445 142.434 191.445S166.4 180.716 166.4 167.479zM431.362 191.435C418.132 191.435 407.406 180.71 407.406 167.479C407.406 154.249 418.131 143.523 431.362 143.523C444.592 143.523 455.318 154.248 455.318 167.479C455.317 180.71 444.592 191.435 431.362 191.435zM520.75 51.945C458.083 2.841 367.474 13.836 318.371 76.504L287.392 30.179L256.709 76.1180000000001C208.432 15.7280000000001 121.087 4.227 58.824 50.063C-5.234 97.2210000000001 -18.935 187.379 28.223 251.4370000000001A186.76199999999997 186.76199999999997 0 0 1 0 308.584L90.286 308.634A358.48 358.48 0 0 0 287.351 362.664A350.382 350.382 0 0 0 479.532 309.3150000000001L575.75 309.241A185.71300000000002 185.71300000000002 0 0 1 547.398 251.592C594.191 188.845 582.3620000000001 100.222 520.75 51.9450000000001zM259.366 166.239C259.359 229.796 207.831 281.314 144.274 281.307C80.717 281.3 29.2 229.772 29.206 166.215C29.213 102.658 80.741 51.14 144.298 51.147C207.811 51.222 259.282 102.686 259.366 166.199V166.239zM287.957 176.694C293.39 250.134 353.467 307.578 427.077 309.716A339.146 339.146 0 0 1 287.35 337.528A356.31 356.31 0 0 1 147.186 310.275C221.53 308.693 282.485 250.851 287.957 176.694zM539.663 205.461C517.671 265.095 451.501 295.6089999999999 391.8680000000001 273.618C332.2340000000001 251.626 301.7200000000001 185.4559999999999 323.7110000000001 125.823V125.791C345.7490000000001 66.184 411.9090000000001 35.7 471.5380000000001 57.678C531.153 79.682 561.6510000000001 145.84 539.663 205.461zM213.624 167.4859999999999V167.3709999999999C213.567 128.0429999999999 181.638 96.2079999999999 142.31 96.2649999999999C102.982 96.322 71.147 128.2509999999999 71.204 167.579C71.261 206.907 103.19 238.742 142.518 238.685C181.7770000000001 238.569 213.56 206.745 213.624 167.4859999999999zM189.112 167.4859999999999V167.5699999999999C189.061 193.3539999999999 168.118 214.215 142.334 214.1639999999999C116.5500000000001 214.113 95.689 193.1699999999999 95.74 167.387C95.791 141.603 116.734 120.742 142.5170000000001 120.793C168.2430000000001 120.906 189.0540000000001 141.761 189.1120000000001 167.4859999999999zM502.535 167.4859999999999V167.4379999999999C502.515 128.1099999999999 470.617 96.2439999999999 431.288 96.2649999999999S360.094 128.1829999999999 360.115 167.512C360.135 206.84 392.033 238.706 431.362 238.685C470.652 238.619 502.483 206.776 502.535 167.4859999999999zM478.031 167.4939999999999C478.022 193.2779999999999 457.113 214.1729999999999 431.329 214.1639999999999C405.545 214.155 384.65 193.2459999999999 384.659 167.4619999999999C384.668 141.678 405.577 120.7839999999999 431.361 120.7919999999999C457.126 120.8379999999999 477.997 141.7199999999999 478.031 167.4849999999999V167.4939999999999z" />
    +    <glyph glyph-name="tumblr-square"
    +      unicode="&#xF174;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM317.7 51.8C309.2 42.7 286.5 32 256.8 32C181.3 32 164.9 87.5 164.9 119.9V209.9H135.2C131.8 209.9 129 212.7 129 216.1V258.6C129 263.1 131.8000000000001 267.1 136.1 268.6C174.9 282.3 187 316.1 188.8 341.8C189.3 348.7 192.9 352 198.8 352H243.1C246.5000000000001 352 249.3 349.2 249.3 345.8V273.8H301.2C304.6 273.8 307.4 271 307.4 267.6V216.5C307.4 213.1 304.6 210.3 301.2 210.3H249.1V127C249.1 105.6 263.9 93.5 291.6 104.6C294.6 105.8 297.2000000000001 106.6 299.6 106C301.8 105.5 303.2000000000001 103.9 304.2000000000001 101.1L318.0000000000001 60.9C319.0000000000001 57.7000000000001 320.0000000000001 54.2 317.7000000000001 51.8z" />
    +    <glyph glyph-name="tumblr"
    +      unicode="&#xF173;"
    +      horiz-adv-x="320" d=" M309.8 -32.3C296.2 -46.8 259.8 -64 212.4 -64C91.6 -64 65.4 24.8 65.4 76.6V220.6H17.9C12.4 220.6 7.9 225.1 7.9 230.6V298.6C7.9 305.8 12.4 312.2000000000001 19.2 314.6C81.2 336.4000000000001 100.7 390.6 103.5 431.7000000000001C104.3 442.7000000000001 110 448 119.6 448H190.5C196 448 200.5 443.5 200.5 438V322.8H283.5C289 322.8 293.5 318.4 293.5 312.9V231.2C293.5 225.7 289 221.2 283.5 221.2H200.1V88C200.1 53.8 223.8 34.4 268.1 52.2C272.9000000000001 54.1 277.1 55.4 280.8 54.4C284.3 53.5 286.6 51 288.2 46.5L310.2 -17.8C312 -22.8 313.5 -28.4 309.8 -32.3z" />
    +    <glyph glyph-name="twitch"
    +      unicode="&#xF1E8;"
    +      horiz-adv-x="448" d=" M40.1 416L10 339.1V24.8H117V-32H177.2L234 24.8H321L438 141.8V416H40.1zM397.9000000000001 161.9L331 95H224L167.2 38.2V95H76.9V375.9H397.9V161.9zM331 299V182.1H290.9V299H331zM224 299V182.1H183.9V299H224z" />
    +    <glyph glyph-name="twitter-square"
    +      unicode="&#xF081;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM351.1 257.2C351.3 254.4 351.3 251.5 351.3 248.7C351.3 162 285.3 62.1 164.7 62.1C127.5 62.1 93 72.9 64 91.5C69.3 90.9 74.4 90.7 79.8 90.7C110.5 90.7 138.7 101.1 161.2 118.7C132.4 119.3 108.2 138.2 99.9 164.2C110 162.7 119.1 162.7 129.5 165.4C99.5 171.5 77 197.9 77 229.8V230.6C85.7 225.7 95.9 222.7 106.6 222.3A65.447 65.447 0 0 0 77.4 276.9C77.4 289.1 80.6 300.3 86.3 310C118.6 270.2 167.1 244.2 221.5 241.4C212.2 285.9 245.5 322 285.5 322C304.4 322 321.4 314.1 333.4 301.3C348.2 304.1 362.4 309.6 375 317.1C370.1 301.9 359.8 289.1 346.2 281C359.4 282.4 372.2 286.1 384 291.2C375.1 278.1 363.9 266.5 351.1 257.2z" />
    +    <glyph glyph-name="twitter"
    +      unicode="&#xF099;"
    +      horiz-adv-x="512" d=" M459.37 296.284C459.695 291.736 459.695 287.187 459.695 282.639C459.695 143.919 354.112 -15.919 161.137 -15.919C101.685 -15.919 46.457 1.3 0 31.187C8.447 30.213 16.568 29.888 25.34 29.888C74.395 29.888 119.553 46.456 155.614 74.72C109.482 75.6950000000001 70.822 105.908 57.502 147.492C64 146.518 70.497 145.868 77.32 145.868C86.741 145.868 96.163 147.168 104.934 149.441C56.853 159.188 20.791 201.421 20.791 252.426V253.725C34.76 245.928 51.005 241.055 68.222 240.406C39.958 259.249 21.441 291.411 21.441 327.7970000000001C21.441 347.289 26.638 365.1570000000001 35.735 380.751C87.39 317.076 165.035 275.493 252.1 270.944C250.4760000000001 278.741 249.5010000000001 286.862 249.5010000000001 294.9840000000001C249.5010000000001 352.812 296.283 399.918 354.4350000000001 399.918C384.6480000000001 399.918 411.9370000000001 387.248 431.1050000000001 366.781C454.8200000000001 371.329 477.5610000000001 380.101 497.7040000000001 392.121C489.9060000000001 367.755 473.3380000000001 347.288 451.5720000000001 334.294C472.6890000000001 336.567 493.1560000000001 342.416 511.998 350.5370000000001C497.7060000000001 329.746 479.837 311.2290000000001 459.3700000000001 296.284z" />
    +    <glyph glyph-name="typo3"
    +      unicode="&#xF42B;"
    +      horiz-adv-x="433.3" d=" M330.8 107C323.8 104.7 319.2 104.7 312.3 104.7C255.1 104.7 171.7 303.2 171.7 369.6C171.7 394.3 177.1 402 185.6 409C116.1 400.5 36.3 375 9.3 342.6C3.9 334.9 0 321.8 0 305.5C0 202 106.8 -32 184.1 -32C220.4 -32 281.4 27.5 330.8 107M294.5 416C366.3 416 433.3 404.4 433.3 363.5C433.3 280.9 380.8 181.2 354.5 181.2C306.6 181.2 252.8 313.3 252.8 379.7C252.8 410.6 264.4000000000001 416 294.5 416" />
    +    <glyph glyph-name="uber"
    +      unicode="&#xF402;"
    +      horiz-adv-x="448" d=" M414.1 416H33.9C15.2 416 0 400.8 0 382.1V2C0 -16.8 15.2 -32 33.9 -32H414C432.7 -32 447.9 -16.8 447.9 1.9V382.1C448 400.8 432.8 416 414.1 416zM237.6 56.9C163 49.4 96.4 103.8 88.9 178.4H183.3V158C183.3 154.3 186.3 151.2 190.1 151.2H258C261.7 151.2 264.8 154.2 264.8 158V225.9C264.8 229.6 261.8 232.7 258 232.7H190.1C186.4 232.7 183.3 229.7 183.3 225.9V205.5H88.9C95.9 274.9 154.3 327.7 224 327.7C293.7 327.7 352.1 274.9 359.1 205.5C366.6 131 312.2000000000001 64.4 237.6 56.9z" />
    +    <glyph glyph-name="uikit"
    +      unicode="&#xF403;"
    +      horiz-adv-x="448" d=" M443.9 320V64L218 -64L0 64V278.3L87.6 233.2V116.2000000000001L221.1 40.7L356.9 116.2000000000001V267.2000000000001L255.8 324.8000000000001L343.4 377.9000000000001L443.9 320zM308.6 398.9L223.8 448L135.2 393.2L221.2 345.9L308.6 398.9z" />
    +    <glyph glyph-name="uniregistry"
    +      unicode="&#xF404;"
    +      horiz-adv-x="384" d=" M281.1 227.9H384V242.7H281.1V227.9zM281.1 265H384V277.4H281.1V265zM281.1 190.8H384V208.1H281.1V190.8zM123.4 104.1H8.5C11.1 95.6 14.3 87.3 18.1 79.3H156.4C143.5 85 132.3 93.5 123.4 104.1M269.1 116.5H378.8C380.6 123.8 381.9000000000001 131.2 382.7 138.8H278.3C276.2 130.9 273.1 123.4 269.1 116.5M227.6 79.4H367C370.7 87.4 372.8 95.6 375.5 104.2H260.5C251.7 93.5 240.4 85 227.6 79.4M384 416H281.1V413.5H384V416zM192 -32C231.5 -32 268.2 -20.2 298.8 0.2H85.3C115.8 -20.2 152.5 -32 192 -32M281.1 302.2H384V312H281.1V302.2zM281.1 339.3H384V346.7H281.1V339.3zM281.1 376.4H384V381.3H281.1V376.4zM102.9 277.4H0V265H102.9V277.4zM38.8 42.3H344.1C350.8 50.8 356.7000000000001 59.9 361.9000000000001 69.5H23C28.2 59.9 32.2 50.8 38.8 42.3M102.9 161.1V173.5H0V161.1C0 158.6 0 156.1 0.1 153.7000000000001H103.2C103 156.1 102.9 158.6 102.9 161.1M281.1 161.1C281.1 158.6 281 156.1 280.7 153.7000000000001H383.8C383.9 156.2000000000001 384 158.6 384 161.1V173.5H281.1V161.1zM78.1 5.1H305.8C317.6 13.8 328.5 23.7 338 34.8H44.9C54.5 23.8 66.3 13.8 78.1 5.1M102.9 381.3H0V376.4H102.9V381.3zM102.9 416H0V413.5H102.9V416zM102.9 242.7H0V227.9H102.9V242.7zM102.9 208.1H0V190.8H102.9V208.1zM102.9 312H0V302.1H102.9V312zM102.9 346.7H0V339.3H102.9V346.7zM105.7 138.8H1.3C2.2 131.2 3.5 123.8 5.2 116.5H114.9C110.9 123.4 107.7 130.9 105.7 138.8" />
    +    <glyph glyph-name="untappd"
    +      unicode="&#xF405;"
    +      horiz-adv-x="640" d=" M401.3 398.1C321.5 238 316.7000000000001 245.6 313.4 224.9L308.2 192.1C306.3 180.1 301.6 168.6 294.5 158.7000000000001L145.6 -49.1C138 -59.7 125.2 -65.3000000000001 112.2 -63.7C71.9 -58.7 34.4 -31.5000000000001 16.9 4.8C11.2 16.6 12.4 30.6 20 41.1999999999999L168.9 249.1C176 259 185.3 267.0999999999999 196.1 272.8L225.4 288.3C243.9 298.0999999999999 235.1 300.2 361 427.2C362 432 362 434.5 364.6 435.2C367.6 435.8999999999999 371.2000000000001 436.2 370.9000000000001 439.8L370.5000000000001 444.3999999999999C370.3000000000001 446.3 371.8000000000001 448 373.7000000000001 448C378.2000000000001 448.0999999999999 386.9000000000001 446.8 399.3000000000001 438C411.6000000000001 429.0999999999999 415.7000000000001 421.2 417.0000000000001 416.8999999999999C417.6000000000001 415.0999999999999 416.4000000000001 413.2 414.6000000000001 412.7L410.1000000000001 411.5999999999999C406.7000000000001 410.7 407.6000000000001 407.2 407.8000000000001 404.2C407.9000000000001 401.3999999999999 405.5000000000001 400.5999999999999 401.3000000000001 398.0999999999999zM230.1 411.6C233.5 410.7 232.6 407.2 232.4 404.2C232.2 401.5 234.5 400.7 238.8 398.2C246.7 382.3 254.1 367.7 261 354.2C261.7 352.9 263.3 352.7 264.3 353.7C275.5 365.7 288.9000000000001 379.9 304.8 396.3C306.1 397.7 306.2 399.8 304.9000000000001 401.2C296.9000000000001 409.4 288.4000000000001 418.1 279.3 427.3C278.3 432 278.3 434.6 275.7 435.3C272.7 436.1 269.1 436.3 269.4 439.9C269.7 443.2 270.8 448 266.6 448.1C262.1 448.2 253.4 447 241 438.1C228.7 429.2 224.6 421.3 223.3 417C221.9 412.8 226.9 412.4 230.1 411.6zM620 41.3L471.2 249.2C458 267.7 444.6 272.6 414.8 288.3C403.6 294.2 400.6 299.2 384.3 317.2C383.3 318.3 381.4000000000001 318.1 380.7 316.7C334.4 227.9 333.6 233.9 331.7 221.9C330 211.2 330.4 201.9 332 192.1C333.9 180.1 338.6 168.6 345.7 158.7L494.6 -49.2C502.2 -59.8000000000001 514.8000000000001 -65.4000000000001 527.7 -63.9C568 -59.0000000000001 605.7 -31.9 623.4000000000001 4.6999999999999C628.8000000000001 16.5999999999999 627.7 30.5999999999999 620.0000000000001 41.3z" />
    +    <glyph glyph-name="usb"
    +      unicode="&#xF287;"
    +      horiz-adv-x="640" d=" M641.5 192C641.5 188.9 639.8 185.9 637 184.5L547.9 131C546.5 130.2 545.1 129.6 543.4 129.6C542 129.6 540.3 129.9 538.9 130.7000000000001C536.1 132.4 534.4 135.2000000000001 534.4 138.5000000000001V174.1000000000001H295.7C321 134.5000000000001 336.2 67.2000000000001 365.3 67.2000000000001H392V94C392 99 395.9 102.9 400.9 102.9H490C495 102.9 498.9 99 498.9 94V4.9C498.9 -0.1 495 -4 490 -4H400.9C395.9 -4 392 -0.1 392 4.9V31.6H365.3C289.9 31.6 284.2000000000001 174.1 240.6 174.1H140.3C132.2 143.5 104.4 120.6 71.3 120.6C32 120.7 0 152.7 0 192S32 263.3 71.3 263.3C104.4 263.3 132.3 240.5 140.3 209.8C179.4 209.8 184.2 200.3 214.9 270.2000000000001C255 359.3 273 352.3 323.8 352.3C331.3 373.2 350.8 387.9 374.2 387.9C403.7 387.9 427.7 364 427.7 334.4S403.8 280.9 374.2 280.9C350.8 280.9 331.3 295.7000000000001 323.8 316.5H294C264.9 316.5 249.7 249.1 224.4 209.6H534.5V245.2C534.5 248.5 536.2 251.3 539 253C541.8 254.7 545.4 254.4 547.9 252.7L637 199.2C639.8 198.1 641.5 195.1 641.5 192z" />
    +    <glyph glyph-name="ussunnah"
    +      unicode="&#xF407;"
    +      horiz-adv-x="512" d=" M156.8 162.9L162.5 148.5H154.3C153 151.7 151.2 156.2 150.5 158C148 164.3 149.4 166.4 150.5 168C152.4 170.7 153.7 172.4 154.1 173.2C154.1 171 154.9 167.5 156.8 162.9zM454.1 144.1C452 130.3 448.4000000000001 117 443.6 104.4L486.6 81L441.8 99.8C436.5 86.6 429.8 74.2 421.9000000000001 62.6L456.1 32.4L419.3 58.8C410.9000000000001 47 401.3 36.2 390.6 26.5L415.5 -8.2L387.4 23.6C376.4 14 364.3 5.6 351.3 -1.5L367 -38.7L347.7 -3.4C334.5999999999999 -10.2 320.7 -15.5 306.0999999999999 -19.3L312.7999999999999 -57.6999999999999L302.2999999999999 -20.3C287.9999999999999 -23.6999999999999 273.0999999999999 -25.6 257.7999999999999 -25.6999999999999L256 -64L254.1 -25.6C238.8 -25.5 223.9 -23.6 209.6 -20.3L199 -57.6L205.7 -19.4C191.1 -15.7 177.1 -10.3 164 -3.6L144.8 -38.7L160.4 -1.7C147.4 5.3 135.2 13.6999999999999 124.2 23.4L96.3 -8.2L121 26.1999999999999C110.3 35.8999999999999 100.6 46.6999999999999 92.2 58.4999999999999L55.7 32.3L89.6 62.1999999999999C81.7 73.8 75 86.3 69.6 99.4999999999999L25.2 80.8L67.8 104C63 116.7 59.4 130.1 57.3 143.9L6.3 134.9L56.6 149.1C55.5 157.6 54.9 166.2 54.9 175C54.9 179.6999999999999 55.1 184.3999999999999 55.4 189.1L0 192L56 194.8C57.3 207.9 59.8 220.6 63.5 232.9L6.4 249L65.3 238.6C69.3 250.6 74.4 262.1 80.5 273L25.4 303L83.7 278.4C90 289 97.2 298.8 105.3 308L55.8 351.6L109.7 312.9C117.8 321.5 126.7 329.4 136.3 336.5L96.3 392.1L141.9 340.5C151.4 347.1 161.6 352.8 172.2 357.7L144.9 422.6L178.7 360.5C189.2 364.9 200.1 368.4 211.4 370.9L199 441.6L218.5 372.4C229.5 374.5 240.8 375.6 252.3 375.8L256 448L259.6 375.8C271.1 375.6 282.4000000000001 374.4 293.4000000000001 372.3L313 441.6L300.6 370.9C311.9000000000001 368.3 322.8 364.8 333.2000000000001 360.4L367.1 422.6L339.7000000000001 357.5C350.3000000000001 352.6 360.4000000000001 346.8 369.9000000000001 340.3L415.7000000000001 392.1L375.6 336.2C385.1 329.1 394 321.2 402.1 312.6L456.3 351.5L406.6 307.6C414.6 298.5 421.8 288.7 428.1 278.2L486.8 302.9L431.3 272.7C437.4000000000001 261.8 442.4000000000001 250.4 446.4000000000001 238.4L505.7 248.8L448.2000000000001 232.6C451.9 220.4 454.4 207.7 455.7 194.7L512 192L456 189.2C456.3 184.6 456.5 179.9 456.5 175.1C456.5 166.4 455.9 157.8 454.9 149.3L505.6 135L454.1 144.1zM432.3 175.1C432.3 272.6 353.3 351.6 255.8 351.6S79.3 272.6 79.3 175.1S158.3 -1.4 255.8 -1.4S432.3 77.6 432.3 175.1zM408.3 175.1C408.3 90.8 340 22.5 255.7 22.5S103.1 90.8 103.1 175.1S171.4 327.7000000000001 255.7 327.7000000000001S408.3 259.4000000000001 408.3 175.1zM195 207C195 204.9 196.3 203.2 198.6 201.9C201.9 200 204.8 197.3 206.8 193.7C209.6 199.4 211.1 203.2 211.1 204.9C211.1 207.1 210 209.3 207.9 211.9C205.8 214.4 204.7 217.1 204.6 219.6C198.1 212.8 195 208.7 195 207zM154.3 226C154.3 223.9 155.6 222.2 157.9 220.9C161.4 219 164.1 216.3 166.1 212.7C168.9 218.4 170.4 222.2 170.4 223.9C170.4 226.1 169.3 228.3 167.2 230.9C165.1 233.4 164 236.1 163.9 238.6C157.4 231.8 154.3 227.7 154.3 226zM135.3 226C135.3 223.9 136.6 222.2 138.9 220.9C142.2 219 145.1 216.3 147.1 212.7C149.9 218.4 151.4 222.2 151.4 223.9C151.4 226.1 150.3 228.3 148.2 230.9C146.1 233.4 145 236.1 144.9 238.6C138.5 231.8 135.3 227.7 135.3 226zM340.2000000000001 138.1C331.8000000000001 141.1 331.5000000000001 144.9 331.5000000000001 153.7000000000001V266C323.3000000000001 253.5 317.3000000000001 247.4 313.5000000000001 247.4C319.8000000000001 233 323.0000000000001 223.5 323.0000000000001 219.1V154.8C323.0000000000001 152.6 320.8000000000001 148.3 318.3000000000001 148.3H300.3000000000001C297.5000000000001 155.8 290.1000000000001 175.2 285.0000000000001 188.6C283.0000000000001 186.1 277.8000000000001 179.4 274.3000000000001 174.9C276.7000000000001 173.3 278.4000000000001 171.3 279.5000000000001 168.6C282.1000000000001 161.9 285.9000000000001 152.1 287.4000000000001 148.4H278.2000000000001C274.3000000000001 158.8 268.6 173.8 266.4000000000001 179.5000000000001C264.4000000000001 177.0000000000001 259.2000000000001 170.3000000000001 255.7000000000001 165.8000000000001C258.1 164.2000000000001 259.8000000000001 162.2000000000001 260.9000000000001 159.5000000000001C261.7000000000001 157.5000000000001 263.7000000000001 152.2000000000001 265.2000000000001 148.6000000000001H256C254.5 152.7000000000001 250.4 163.2000000000001 247.6 170.6000000000001C245.6 168.1000000000001 240.4 161.4000000000001 236.9 156.9000000000001C239.4 155.3000000000001 241.2 153.3000000000001 242.1 150.6000000000001C242.3 150.0000000000001 242.6 149.2000000000001 242.7 148.9000000000001H225C220.4 162.8000000000001 213.6 176.6000000000001 213.6 183.0000000000001C213.6 185.2000000000001 213.9 188.1000000000001 214.7 191.2000000000001C205.9 180.4000000000001 200.7 175.3000000000001 200.7 166.2000000000001C200.7 158.7000000000001 211.1 137.9000000000001 211.1 132.9000000000001C211.1 131.2000000000001 210.6 129.6000000000001 209.7 128.0000000000001C200.1 140.7000000000001 194.2 148.7000000000001 190.9 148.7000000000001H178.9L167.7 176.7000000000001C163.9 186.3000000000001 162 192.7000000000001 162 195.5000000000001C162 199.3000000000001 162.5 203.2000000000001 163.7 207.7000000000001C162.7 206.4000000000001 160 203.0000000000001 158.2 200.6000000000001C157.4 202.7000000000001 155.1 208.3000000000001 153.6 212.1000000000001C151.5 209.6000000000001 146.1 203.0000000000001 142.4 198.5000000000001C143.3 196.2000000000001 145.7 190.4000000000001 147.3 186.3000000000001C144.8 183.0000000000001 138.2 174.5000000000001 133.7 168.6000000000001C129.7 163.3000000000001 127.9 155.3000000000001 131 146.8000000000001C133.5 140.1000000000001 133 138.9000000000002 129.3000000000001 132.7000000000001H191C196.5 132.7000000000001 205.3 118.7000000000001 206.5 110.7000000000001C219.7 126.7000000000001 221.9 130.3000000000001 223.3 132.3000000000001H330.3C334.2 132.3000000000001 337.5 134.2000000000001 340.2 138.1000000000001zM360.3000000000001 164.7000000000001V266.3C351.3000000000001 253.8 344.4000000000001 247.7 339.6000000000001 247.7C346.7000000000001 233.3 350.3000000000001 223.8 350.3000000000001 219.4V153.1C350.3000000000001 135.6 358.9000000000001 132.7000000000001 374.3000000000001 132.7000000000001C382.4000000000001 132.7000000000001 386.8000000000001 133.5000000000001 388.0000000000001 135.4C383.7000000000001 137.0000000000001 380.4000000000001 137.9 378.1000000000001 138.7000000000001C370.0000000000001 141.9 360.3000000000001 146.1 360.3000000000001 164.7000000000001z" />
    +    <glyph glyph-name="vaadin"
    +      unicode="&#xF408;"
    +      horiz-adv-x="448" d=" M224.5 307.3C226 324.9 229.4 360 274.3 360H372.9C393.6 360 405 367.8 405 381.6V393.9C405 406.1 414.3 416 426.5 416S448 406.1 448 393.9V357.4C448 314.5 426.5 295.4 381.2 295.4H280.7C250.6 295.4 247.7 280.7000000000001 247.7 268.3C247.7 267 247.6 265.8 247.5 264.6C246.8 252.3 236.6 242.4000000000001 224.1 242.4000000000001S201.4 252.2000000000001 200.7 264.6C200.6 265.8 200.5 267 200.5 268.3C200.5 280.6 197.5 295.4 167.5 295.4H66.8C21.5 295.4 0 314.5 0 357.4V393.9C0 406.1 9.4 416 21.6 416S43.1 406.1 43.1 393.9V381.6C43.1 367.8 54.5 360 75.2 360H173.8C218.6 360 222.1 324.9 223.6 307.3H224.5zM224 -8C235.5 -8 245.4 -1 249.7 8.3C250.8 10.1 346.8 177.9 347.9 179.7000000000001C359.8 199.3000000000001 344.7 224.0000000000001 320.7 224.0000000000001C306.8 224.0000000000001 297.4 217.6000000000001 290.9 203.7000000000001L224 86L157.1 203.7C150.7 217.6 141.2 224 127.3 224C103.3 224 88.2 199.4 100.1 179.7C101.2 177.8 197.2 10.1 198.3 8.3C202.6 -1.0000000000001 212.5 -8.0000000000001 224 -8.0000000000001z" />
    +    <glyph glyph-name="viacoin"
    +      unicode="&#xF237;"
    +      horiz-adv-x="384" d=" M384 416H320L239.3 224H144.8L64 416H0L48 304H0V256H68.5L82.3 224H0V176H102.8L192 -32L281.2 176H384V224H301.7L315.5 256H384V304H336L384 416zM192 112L165 176H219L192 112z" />
    +    <glyph glyph-name="viadeo-square"
    +      unicode="&#xF2AA;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM280.7 66.8C238.3 20.6 160.7 20.2 118.3 66.8C50.3 140.4 98.5 262.9 199.5 262.9C212.8 262.9 226.1 260.8 238.6 256.2000000000001C234.3 247.8 231.3 238.6 230.2 229.1C220.5 233.2 210 235.1 199.5 235.1C150.7 235.1 114.9 193.4 114.9 146.2000000000001C114.9 103.2000000000001 143.4 67.5000000000001 184.4 60.3000000000001C245.9 84.3000000000001 257.3 177.9000000000001 257.3 235.3000000000001C257.3 242.6000000000001 257.3 250.1000000000001 256.7 257.4000000000001C245.5 290.3000000000001 230.1 322.0000000000001 212.5 351.9000000000001C239.6 333.6000000000001 254.4 289.4000000000001 256.7 257.8000000000001V257.4000000000001C264.4 234.9000000000001 268.5 211.2000000000001 268.5 187.4000000000001C268.5 133.3000000000001 246.6 88.4000000000001 200.2 59.2000000000001L197.8 59.0000000000001C247.8 58.0000000000001 284 97.6000000000001 284 146.2000000000001C284 158.4000000000001 281.9 170.5000000000001 277.1 181.9000000000001C286.6 183.8000000000001 295.6 187.5000000000001 303.5 192.4000000000001C318.8 155.8000000000001 316.1 105.1000000000001 280.7 66.8000000000001zM309 214.3C295.7 214.3 283.9 221.4 274.6 230.4C296.5 242.4 324.2000000000001 261.1 336.9000000000001 283.4C338.4000000000001 286.4 341.0000000000001 292 341.4000000000001 295.4C328.9000000000001 267.5 297.2000000000001 245.6 267.5 238.7C262.8 246 260 254.2 260 263C260 273.3 265.2 287.1 272.9 294.6C294.5 315.1 325.9 303.1 345.3 344.6C377.8 298.4 358.4 214.3 309 214.3z" />
    +    <glyph glyph-name="viadeo"
    +      unicode="&#xF2A9;"
    +      horiz-adv-x="448" d=" M276.2 297.5V296.8C258.3 349.4 233.6 400.2 205.4 448C248.7 418.8 272.4 348 276.2 297.5zM308.9 175.8C316.5 157.6 319.9 138.3 319.9 118.8C319.9 41.1 262.1 -22.2 182.1 -20.6L185.9 -20.3C260.1 26.4 295.2 98.3 295.2 184.8C295.2 222.9 288.7 260.7 276.3 296.8C277.3 285.1 277.3 273.1 277.3 261.4C277.3 169.6 259.2 19.8 160.7 -18.6C95 -7.2 49.4 50 49.4 118.8C49.4 194.4 106.8 261.1 184.8 261.1C201.6 261.1 218.5 258 233.9 251.5000000000001C235.6 266.6 240.4 281.4000000000001 247.3 294.8C227.4 302 206.1 305.5 184.8 305.5C23.3 305.5 -53.9 109.6 54.9 -8.2C122.8 -82.7999999999999 246.9 -82.1 314.7000000000001 -8.2C371.3000000000001 53.1 375.6 134.2000000000001 351.1 192.8C338.4000000000001 184.8 324 178.9 308.9000000000001 175.8zM418.1 436.3C387.1 369.8 336.8 389.1 302.3 356.2C289.9000000000001 344.2 281.7 322.2 281.7 305.7C281.7 291.6 286.2 278.6 293.7 266.9C341.1 277.9 392 312.9 411.9 357.6C411.2 352.1 407.1 343.2 404.7 338.4C384.4 302.7 340.1 272.8 305 253.5C319.8 239.1 338.7 227.7 360 227.7C439 227.7 470.1 362.3 418.1 436.3z" />
    +    <glyph glyph-name="viber"
    +      unicode="&#xF409;"
    +      horiz-adv-x="512" d=" M444 398.1C431.3 409.8 379.9 447.1 265.3 447.6C265.3 447.6 130.2 455.7 64.4 395.3C27.8 358.7 14.9 305 13.5 238.5C12.1 172 10.4 47.4 130.5 13.6H130.6L130.5 -38S129.7 -58.9 143.5 -63.1C160.1 -68.3000000000001 169.9 -52.4 185.8 -35.3C194.5 -25.9 206.5 -12.1 215.6 -1.6C297.8 -8.5 360.9000000000001 7.3 368.1 9.6C384.7000000000001 14.9999999999999 478.6 26.9999999999999 493.8 151.6C509.6 280.2 486.2 361.4 444 398.1zM457.9 161C445 57 368.9 50.4 354.9 45.9C348.9 44 293.4 30.2 223.7 34.7C223.7 34.7 171.7 -28 155.5 -44.3C150.2 -49.6 144.4 -49.1 144.5 -38.6C144.5 -31.7 144.9 47.1 144.9 47.1C144.8 47.1 144.8 47.1 144.9 47.1C43.1 75.3 49.1 181.4 50.2 236.9C51.3 292.4 61.8 337.9 92.8 368.5C148.5 419 263.2000000000001 411.5 263.2000000000001 411.5C360.1 411.1 406.5000000000001 381.9 417.3000000000001 372.1C453.0000000000001 341.5 471.2 268.3 457.9000000000001 161zM318.9 241.8C319.3 233.2 306.4 232.6 306 241.2C304.9 263.2000000000001 294.6 273.9000000000001 273.4 275.1C264.8 275.6 265.6 288.5 274.1 288C302 286.5 317.5 270.5 318.9 241.8zM339.2 230.5C340.2 272.9 313.7 306.1 263.4 309.8C254.9 310.4 255.8 323.3 264.3 322.7000000000001C322.3 318.5 353.2 278.6 352.1 230.2C352 221.6 339 222 339.2 230.5000000000001zM386.2 217.1C386.3 208.5 373.3 208.4 373.3 217C372.7 298.5 318.4000000000001 342.9 252.5 343.4C244 343.5 244 356.3 252.5 356.3C326.2 355.8 385.5 304.9 386.2 217.1zM374.9 119V118.8C364.1 99.8 343.9 78.8 323.1 85.5L322.9 85.8C301.8 91.7 252.1 117.3 220.7 142.3C204.5 155.1 189.7 170.2 178.3 184.7C168 197.6 157.6 212.9 147.5 231.3C126.2 269.8 121.5 287 121.5 287C114.8 307.8 135.7 328 154.8 338.8H155C164.1999999999999 343.6 173 342 178.9 334.9C178.9 334.9 191.3 320.1 196.5999999999999 312.8C201.5999999999999 306 208.2999999999999 295.1 211.7999999999999 289C217.8999999999999 278.1 214.0999999999999 267 208.0999999999999 262.4L196.0999999999999 252.8C190 247.9 190.7999999999999 238.8 190.7999999999999 238.8S208.5999999999999 171.5 275.0999999999999 154.5C275.0999999999999 154.5 284.2 153.7 289.0999999999999 159.8L298.7 171.8C303.3 177.8 314.3999999999999 181.6 325.3 175.5C340 167.2 358.7 154.3 371.1 142.6C378.1 136.9 379.7 128.2000000000001 374.9 119z" />
    +    <glyph glyph-name="vimeo-square"
    +      unicode="&#xF194;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM383.8 266.4C382.4000000000001 235.3 360.6 192.6 318.5 138.5C275 82 238.2 53.7 208.1 53.7C189.4 53.7 173.7 70.9 160.8 105.3C135.6 197.6 124.9 251.7 104.1 251.7C101.7 251.7 93.3 246.7 79 236.6L64 256C100.9 288.4 136.1 324.4 158.1 326.4C183 328.8 198.3 311.8 204.1 275.3C224.6 145.7000000000001 233.7 126.1 270.9 184.8C284.3 206 291.5 222 292.4 233.1C295.8 265.9000000000001 266.8 263.7000000000001 247.2 255.3C262.9 306.8 293 331.8 337.3 330.4C370.2 329.4 385.7 308 383.8 266.4z" />
    +    <glyph glyph-name="vimeo-v"
    +      unicode="&#xF27D;"
    +      horiz-adv-x="448" d=" M447.8 294.4C445.8 250.8 415.4000000000001 191.1 356.4 115.3C295.5 36.1 244 -3.5 201.8 -3.5C175.7 -3.5 153.6 20.6 135.5 68.8C100.3 198 85.3 273.7 56.2 273.7C52.8 273.7 41.1 266.6 21 252.6L0 279.8C51.6 325.1 100.9 375.5 131.8 378.3C166.7 381.7000000000001 188.1 357.8 196.2 306.8C224.9 125.3 237.6 97.9 289.8 180.1C308.5 209.7 318.6 232.2 320 247.7C324.8 293.6 284.2 290.5 256.7 278.7000000000001C278.7 350.8 320.8 385.8 382.9 383.8C428.7 382.6 450.4 352.7000000000001 447.8 294.4z" />
    +    <glyph glyph-name="vimeo"
    +      unicode="&#xF40A;"
    +      horiz-adv-x="448" d=" M403.2 416H44.8C20.1 416 0 395.9 0 371.2V12.8C0 -11.9 20.1 -32 44.8 -32H403.2C427.9 -32 448 -11.9 448 12.8V371.2C448 395.9 427.9 416 403.2 416zM377 267.2C375.6 235.7 353.6 192.5 311 137.8C267 80.6 229.7 51.9999999999999 199.3 51.9999999999999C180.4 51.9999999999999 164.5 69.3999999999999 151.4 104.3C125.9 197.6 115 252.3 94 252.3C91.6 252.3 83.1 247.2 68.6 237.1L53.4 256.7C90.7 289.5 126.3 325.9 148.6 327.9C173.8 330.3 189.3 313.1 195.1 276.2C215.8 145 225 125.1999999999999 262.7 184.6C276.2 206 283.5 222.3 284.5 233.5C288 266.7 258.6 264.4 238.7 255.9C254.6 308 285 333.3 329.9 331.9C363.2 331 378.9 309.4 377 267.2z" />
    +    <glyph glyph-name="vine"
    +      unicode="&#xF1CA;"
    +      horiz-adv-x="384" d=" M384 193.3V141.2C365.6 137 347.1 135.1 331.9 135.1C295 57.6999999999999 228.9 -8.7 206.8 -21.1C192.8 -29 179.7 -29.5 164.1 -20.3C137 -4 34.2 80.3 0 345.3H74.5C93.2 186.2 139 104.6 189.3 43.5C217.2 71.4 244.1 108.6 264.9 150.4C215.1 175.7 184.8 231.3 184.8 296C184.8 361.6 222.5 411.1 287 411.1C401.9 411.1 393.2 283.2 368.6 229.6C368.6 229.6 322.2000000000001 220.4 305.1 250.1C308.5 261.4 313.3 280.9 313.3 298.6C313.3 329.9 302 345.2 284.9000000000001 345.2C266.7000000000001 345.2 254.1 328.1 254.1 295.2C254.2 216 313.5 176.5 384 193.3z" />
    +    <glyph glyph-name="vk"
    +      unicode="&#xF189;"
    +      horiz-adv-x="576" d=" M545 330.3C548.7 342.8 545 352 527.2 352H468.3000000000001C453.3000000000001 352 446.4000000000001 344.1 442.7000000000001 335.3C442.7000000000001 335.3 412.7000000000001 262.2 370.3000000000001 214.8C356.6000000000001 201.1 350.3000000000001 196.7 342.8000000000001 196.7C339.1000000000001 196.7 333.4000000000001 201.1 333.4000000000001 213.6V330.3C333.4000000000001 345.3 329.2000000000001 352 316.8000000000001 352H224.2000000000001C214.8000000000001 352 209.2000000000001 345 209.2000000000001 338.5C209.2000000000001 324.3 230.4000000000001 321 232.6000000000001 281V194.2C232.6000000000001 175.2 229.2000000000001 171.7 221.7000000000001 171.7C201.7000000000001 171.7 153.1000000000001 245.1 124.3000000000001 329.1C118.5000000000001 345.4 112.8000000000001 352 97.7000000000001 352H38.8C22 352 18.6 344.1 18.6 335.3C18.6 319.7 38.6 242.2 111.7 139.8C160.4 69.9 229 32 291.4 32C328.9 32 333.5 40.4 333.5 54.9C333.5 121.7 330.1 128 348.9 128C357.6 128 372.6 123.6 407.6 89.9C447.6 49.9 454.2 32 476.6 32H535.5C552.3 32 560.8 40.4 555.9 57C544.6999999999999 91.9 469 163.7 465.6 168.5C456.9 179.7 459.4 184.7 465.6 194.7C465.7 194.8 537.5999999999999 296 545 330.3z" />
    +    <glyph glyph-name="vnv"
    +      unicode="&#xF40B;"
    +      horiz-adv-x="640" d=" M104.9 96C70.8 96 58.5 126.4 58.5 126.4L2.6 237.9S-7.8 256 13 256H45.8C56.2 256 59 247.3 64.6 237.9L101.3 163.4S106.5 150.3 122.4 150.3S143.5 163.4 143.5 163.4L180.2 237.9C185.8 247.4 188.6 256 199 256H231.8C252.6 256 242.2 237.9 242.2 237.9L186.4 126.4S174.2 96 140 96H104.9zM499.9 96C465.8 96 453.5 126.4 453.5 126.4L397.6 237.9S387.2 256 408 256H440.8C451.2 256 454 247.3 459.6 237.9L496.3 163.4S501.5 150.3 517.4 150.3S538.5 163.4 538.5 163.4L575.3 237.9C580.9 247.4 583.6999999999999 256 594.0999999999999 256H627C647.8 256 637.4 237.9 637.4 237.9L581.5 126.4S569.3 96 535.1 96H499.9zM337.6 256C371.7000000000001 256 384 225.6 384 225.6L439.9 114.1S450.3 96 429.5 96H396.7C386.3 96 383.5 104.7 377.9 114.1L341.2 188.6S336 201.7 320.1 201.7C304.2 201.7 299 188.6 299 188.6L262.3 114.1C256.7 104.7000000000001 253.9 96 243.5 96H210.5999999999999C189.7999999999999 96 200.1999999999999 114.1 200.1999999999999 114.1L256.0999999999999 225.6S268.2999999999999 256 302.4999999999999 256H337.5999999999999z" />
    +    <glyph glyph-name="vuejs"
    +      unicode="&#xF41F;"
    +      horiz-adv-x="448" d=" M356.9 383.7H280L224 295.1L176 383.7000000000001H0L224 0L448 383.7H356.9zM55.7 351.7H109.5L224 153.5L338.4 351.7H392.2L224 63.5L55.7 351.7z" />
    +    <glyph glyph-name="weebly"
    +      unicode="&#xF5CC;"
    +      horiz-adv-x="512" d=" M425.09 382.17C385.21 382.17 351.81 356.44 341.43 317.8400000000001C323.2699999999999 375.9 275.93 382.17 256.48 382.17C236.7 382.17 189.68 375.89 171.2 317.8400000000001C160.82 356.44 127.75 382.17 87.54 382.17C38.59 382.17 0 348.28 0 304.9700000000001C0 276.01 4.18 271.7 77.17 71.49C99.54 10.92 144.94 2.14 169.91 2.14C209.14 2.14 239.95 21.6 255.84 56.12C271.73 21.29 302.53 1.83 341.77 1.83C366.74 1.83 412.13 10.93 434.51 71.5C511.06 280.15 512.01 277.0800000000001 512.01 298.7C512.64 347.02 476 382.17 425.09 382.17zM451.4299999999999 267.36L385.86 90.92C377.94 69.43 364.64 53.7 339.62 53.7C316.18 53.7 302.24 66.1100000000001 295.5899999999999 87.6L256.31 205.0200000000001H255.36L216.08 87.6C209.12 66.1 195.18 54 172.06 54C147.04 54 133.73 69.74 125.82 91.22L60.88 266.45C55.5 281.28 52.96 290.36 52.96 300.95C52.96 317.29 68.8 330.31 91.29 330.31C109.98 330.31 123.28 318.51 127.4 301.26L171.43 161.44H172.38L217.04 298.23C223.06 317.9 233.51 330.31 256 330.31S288.94 318.2 294.96 298.23L339.62 161.44H340.57L384.6 301.26C388.7200000000001 318.51 402.0200000000001 330.31 420.7100000000001 330.31C442.8800000000001 330.31 459.04 316.99 459.04 294.6C458.72 286.73 454.92 278.56 451.43 267.36z" />
    +    <glyph glyph-name="weibo"
    +      unicode="&#xF18A;"
    +      horiz-adv-x="512" d=" M407 270.4C414.6 294.4 393.6 317.2 369.6 312.1C347.6 307.3 340.8 340.2000000000001 362.5 344.9000000000001C412.6 355.8 454.8 307.8 439 260.1C432.2 238.9000000000001 400.2 249.3 407 270.4000000000001zM214.8 1.3C108.5 1.3 0 52.7 0 137.6C0 181.9 28 233.0000000000001 76.3 281.3C176 381 279.5 382.2 249.9 287C245.9 273.9 262.2 281.3 262.2 281C341.7 314.6 402.7 297.8 376.2 229.6C372.5 220.2 377.3 218.7 384.5 216.5C520.2 174.2 419.3 1.3 214.8 1.3zM358.5 147.6C353.1 203.3 280 241.6 195.1 233.3C110.3 224.7 46.3 173 51.7 117.3S130.2 23.3 215.1 31.6C299.9 40.2 363.9 91.9 358.5 147.6zM347.9 412.9C322 407.3 331.1 369.2 356.2 374.6C428.5 389.8 491 321.8 467.9 250.6C460.5 226.4 497 213.6 505.3 238.6C537.1999999999999 338.4 450.2 434.5 347.9 412.9zM269.4 101.9C252.3 63.1 202.6 41.9 160.3 55.6C119.5 68.7 102.3 108.9999999999999 120 145.3C137.7 180.6999999999999 183.1 200.7 223.4 190.4C265.4 179.6 286.5 140.2 269.4 101.9zM183.1 131.9C170.2 137.3 153.1 131.6 145.1 119C136.8 106.1 140.8 91 153.7 85C166.8 79 184.5 84.7 192.8 97.9C200.8 111 196.5 126.2 183.1 131.9zM215.7 145.3C210.6 147 204.3 144.6999999999999 201.4 139.9C198.5 134.8 200 129.3 205.0999999999999 127C210.1999999999999 125 216.7999999999999 127.3 219.6999999999999 132.4C222.5 137.6 220.7999999999999 143.3 215.6999999999999 145.3z" />
    +    <glyph glyph-name="weixin"
    +      unicode="&#xF1D7;"
    +      horiz-adv-x="576" d=" M385.2 280.4C391.6 280.4 397.8 280.1 404 279.3C387.4 357.7 303.3 416 207.7 416C100.5 416 13 343.2 13 250.6C13 197.2 42.3 153.1 90.9 119L71.6 60.4L139.6 94.5C164 89.7 183.4 84.8 207.8 84.8C214 84.8 219.9 85.1 226.1 85.6C222.1 98.5 219.9 112.2000000000001 219.9 126.4C219.8000000000001 211.3000000000001 292.8000000000001 280.4000000000001 385.2000000000001 280.4000000000001zM280.7 333.3C295.2 333.3 304.9 323.6 304.9 308.9C304.9 294.4 295.2 284.7000000000001 280.7 284.7000000000001C265.9 284.7000000000001 251.4 294.4 251.4 308.9C251.5 323.6 266 333.3 280.7 333.3zM144.3 284.7000000000001C129.8 284.7000000000001 115 294.4 115 308.9C115 323.7 129.8 333.3 144.3 333.3C159.1 333.3 168.7 323.6 168.7 308.9C168.7 294.3 159.1 284.7000000000001 144.3 284.7000000000001zM563 128.6C563 206.5 485.1 269.9000000000001 397.6 269.9000000000001C304.9000000000001 269.9000000000001 232.2 206.5 232.2 128.6S305 -12.7 397.6 -12.7C416.9000000000001 -12.7 436.5 -7.6 456.2 -2.8L509.6 -32.1L494.8 16.5C534 45.9 563 84.8 563 128.6zM343.9 153.1C334.2 153.1 324.6 162.8 324.6 172.7000000000001C324.6 182.4 334.3 192.0000000000001 343.9 192.0000000000001C358.7 192.0000000000001 368.3 182.3000000000001 368.3 172.7000000000001C368.3 162.7000000000001 358.6 153.1 343.9 153.1zM451 153.1C441.3 153.1 431.7 162.8 431.7 172.7000000000001C431.7 182.4 441.4 192.0000000000001 451 192.0000000000001C465.5 192.0000000000001 475.4 182.3000000000001 475.4 172.7000000000001C475.5 162.7000000000001 465.5 153.1 451 153.1z" />
    +    <glyph glyph-name="whatsapp-square"
    +      unicode="&#xF40C;"
    +      horiz-adv-x="448" d=" M224 325.2C151.3 325.2 92.2 266.1 92.1 193.4C92.1 168.5 99.1 144.2 112.3 123.3L115.4 118.3L102.1 69.6999999999999L152 82.8L156.8 79.9C177 67.9 200.2 61.5 223.9 61.5H224C296.6 61.5 357.3 120.6 357.3 193.3C357.3 228.5 342.1 261.6 317.2 286.5C292.2 311.5 259.2 325.2 224 325.2zM301.5 136.8C298.2 127.5 282.4 119.1 274.8 118C262.2 116.1 252.4 117.1 227.3 127.9C187.6 145.1 161.6 185.1 159.6 187.7C157.6 190.3 143.4 209.2 143.4 228.7S153.6 257.8 157.3000000000001 261.8C160.9 265.8 165.2000000000001 266.8 167.9 266.8C170.5 266.8 173.2000000000001 266.8 175.5 266.7C177.9 266.6 181.2 267.6 184.4 259.9C187.7000000000001 252 195.6 232.5 196.6 230.5S198.3 226.2 196.9 223.6C189.3000000000001 208.4 181.2000000000001 209 185.3000000000001 202C200.6000000000001 175.7 215.9 166.6 239.2000000000001 154.9C243.2000000000001 152.9 245.5000000000001 153.2 247.8000000000001 155.9C250.1000000000001 158.5 257.7000000000001 167.5 260.3000000000001 171.4C262.9000000000001 175.4 265.6000000000001 174.7 269.2000000000001 173.4C272.8000000000001 172.1 292.3000000000001 162.5 296.3000000000001 160.5S302.9000000000001 157.5 303.9000000000001 155.9C304.8000000000001 154 304.8000000000001 146 301.5000000000001 136.8zM400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM223.9 34.8C197.3 34.8 171.2 41.5 148.1 54.1L64 32L86.5 114.2C72.6 138.2 65.3 165.5 65.3 193.5C65.4 280.9 136.5 352 223.9 352C266.3 352 306.1 335.5 336.1 305.5C366 275.5 384 235.7 384 193.3C384 105.9 311.3 34.8 223.9 34.8z" />
    +    <glyph glyph-name="whatsapp"
    +      unicode="&#xF232;"
    +      horiz-adv-x="448" d=" M380.9 350.9C339 392.9 283.2 416 223.9 416C101.5 416 1.9 316.4 1.9 194C1.9 154.9 12.1 116.7 31.5 83L0 -32L117.7 -1.1C150.1 -18.8 186.6 -28.1 223.8 -28.1H223.9C346.2 -28.1 448 71.5 448 193.9C448 253.2 422.8 308.9 380.9 350.9zM223.9 9.3C190.7 9.3 158.2 18.1999999999999 129.9 34.9999999999999L123.2 38.9999999999999L53.4 20.6999999999999L72 88.8L67.6 95.8C49.1 125.2 39.4 159.1 39.4 194C39.4 295.7 122.2 378.5 224 378.5C273.3 378.5 319.6 359.3 354.4 324.4C389.2 289.5 410.6 243.2 410.5 193.9C410.5 92.1 325.6 9.3 223.9 9.3zM325.1 147.5C319.6 150.3 292.3 163.6999999999999 287.2 165.5C282.1 167.3999999999999 278.4 168.3 274.7 162.6999999999999C271 157.0999999999999 260.4 144.6999999999999 257.1 140.8999999999999C253.9 137.1999999999999 250.6 136.6999999999999 245.1 139.5C212.5 155.8 191.1 168.6 169.6 205.5C163.9 215.3 175.3 214.5999999999999 185.9 235.8C187.7 239.5 186.8 242.7 185.4 245.5C184 248.3 172.9 275.5999999999999 168.3 286.7C163.8 297.5 159.2 296 155.8 296.2C152.6 296.3999999999999 148.9 296.3999999999999 145.2 296.3999999999999C141.5 296.3999999999999 135.5 294.9999999999999 130.4 289.4999999999999C125.3 283.8999999999999 111 270.4999999999999 111 243.2C111 215.8999999999999 130.9 189.5 133.6 185.8C136.4 182.1 172.7 126.1 228.4 101.9999999999999C263.6 86.8 277.4 85.4999999999999 295 88.1C305.7 89.7 327.8 101.4999999999999 332.4 114.5C337 127.5 337 138.6 335.6 140.8999999999999C334.3 143.3999999999999 330.6 144.7999999999999 325.1 147.5z" />
    +    <glyph glyph-name="whmcs"
    +      unicode="&#xF40D;"
    +      horiz-adv-x="448" d=" M448 287V308.3L419.5 317.1L417.3 327.5L437.4000000000001 348.2000000000001L427 367.6L398 360.1L390.8 367.6L398.3 395.8L379.2 407.4L357.9 386.4L347.2 389.6L340.2 416H317.6L311.4 389.6L299.3 386.4L279.6 407.4L260.2 396.4L268.3 368.7L260.2 360.3L231.7 367.8L220.7 348.7L241.4 327.7L238.5 317.3L210 309.5L209.7 287.8L238.5 280.3L240.9 268.2L220.8 248.3L231.2 229.8L260.8 237.3L268 228.7L259.9 201.8L279.8 190.2L299.2 210.6L310.8 207.7L317.5 179.2L340.1 178.9L346.8 207.7L358.4 211.2L379.1 189.6L399.5 201.7L390.7 229.7L398.5 237.8L427.3 229L437.6 249.1L416.7 267.9L418.9 280L448 287zM328.8 241.8C297.5 241.8 272 267.2000000000001 272 298.6S297.4 355.4000000000001 328.8 355.4000000000001S385.6 330 385.6 298.6C385.6 267.1 360.2000000000001 241.8 328.8 241.8zM401.1 225.4L448 210.9V171L392.9 157.6L388.8 134.9L427.7 99.6L408.5 61.7000000000001L354.5 78.4L339.8999999999999 63.2000000000001L356.5999999999999 10.7L318.2999999999999 -11.9999999999999L279.3999999999999 28.5000000000001L257.7 21.9L245.1 -32.1L202.6999999999999 -31.6L190.0999999999999 22.0000000000001L168.4 27.6000000000001L132 -10.7999999999999L94.5999999999999 10.9000000000001L109.7999999999999 61.4000000000001L96.0999999999999 77.5000000000001L40.5999999999999 63.4000000000001L20.8999999999999 98.2000000000001L58.7999999999999 135.6000000000001L53.9999999999999 158.4000000000001L-1e-13 172.5000000000001L0.4999999999999 213.4000000000001L54 228.1L59.7 247.8L20.8 287.2L41.5 323L95.1 308.9L110.3 324.6L95.1 376.6L131.5 397.3L168.3 357.9L191 364L202.6 416H245L256.6 370.1L234 376L227.7 377.7L224.4 372L213.4 352.9L210.1 347.3L214.7 342.7000000000001L231.9 325.3L231.6 324.3L207.7999999999999 317.8L201.5999999999999 316.1L201.5 309.7000000000001L201.3 296.8C153.8 286.4 118 244 118 193.3C118 135 165.3 87.6 223.7 87.6C274.2 87.6 316.4 123 326.9 170.4L340.1 170.2000000000001L347 170.1L348.6 176.8L354.2 200.8L356.1 201.4L373.2 183.6L377.9 178.7000000000001L383.7 182.1L404.1 194.2L409.9 197.7L407.9 204.2L401.1 225.4z" />
    +    <glyph glyph-name="wikipedia-w"
    +      unicode="&#xF266;"
    +      horiz-adv-x="640" d=" M640 396.8L639.7 384.6C611.6 383.8 594.7 368.8 583.9000000000001 344.3C558.9000000000001 286.5 480.6000000000001 104.3 428.6000000000001 -14.3H415L333.1 178.8C300.6 115.1999999999999 264.8 48.8 233.9000000000001 -14.3000000000001C233.6 -14.6000000000001 218.9 -14.3000000000001 218.9 -14.0000000000001C172 95.7 122.8 204.6 75.8 314.6C64.4 341.3 26.4 384.6 0.2 384.3C0.2 387.4 -0.1 394.3 -0.1 398.5H161.8V384.6C142.6 383.5 109 371.3 118.5 350.4C140.4 300.7 222.1 110.1 244.1 61.8C259.1 91.4999999999999 301.9000000000001 171 319.4000000000001 204.6C305.5000000000001 232.9 260.8 338.5 246.6 364.6C236.9000000000001 382.4 210.5 384 190.8 384.3V398.2L333.3 397.9V384.8C313.9000000000001 384.2 295.2 377 303.9000000000001 358.7C322.8 318.7 334.5000000000001 290.6 352.0000000000001 254C357.6000000000001 264.8 386.7000000000001 323.4 400.1000000000001 354.8C409.0000000000001 375.4 396.2000000000001 383.4 361.5000000000001 384.2C361.8000000000001 387.8 361.5000000000001 394.5 361.8000000000001 397.8C406.2000000000001 398.1 472.9000000000001 398.1 484.9000000000001 398.4V384.8C462.4000000000001 384 439.1000000000001 372 426.8000000000001 353.1L367.6000000000001 230.3C374.0000000000001 214.2 430.9000000000001 87.5 436.8000000000001 73.6L559.2 356.2C550.6 379.3 522.8000000000001 384.3 512 384.5V398.4L639.8 397.3L640 396.8z" />
    +    <glyph glyph-name="windows"
    +      unicode="&#xF17A;"
    +      horiz-adv-x="448" d=" M0 354.3L183.6 379.6V202.2H0V354.3zM0 29.7L183.6 4.4V179.6H0V29.7zM203.8 1.7L448 -32V179.6H203.8V1.7zM203.8 382.3V202.2H448V416L203.8 382.3z" />
    +    <glyph glyph-name="wix"
    +      unicode="&#xF5CF;"
    +      horiz-adv-x="640" d=" M393.38 316.31C393.38 303.28 395.46 283.62 364.7 272.48C355.18 269.0300000000001 348.75 262.8200000000001 348.75 262.8200000000001C348.75 293.8200000000001 353.4700000000001 305.04 366.15 311.68C375.9 316.79 393.38 316.31 393.38 316.31zM277.58 280.77L243.34 148.11L214.86 256.68C207.17 288.67 194.05 305.2100000000001 166.43 305.2100000000001C139.06 305.2100000000001 125.77 289.03 118 256.68L89.52 148.11L55.28 280.77C49.73 307.49 23.86 319.04 0 316.04L65.57 68.11S87.2 66.55 98.03 72.07C112.25 79.32 119.01 84.91 127.62 118.64C135.29 148.71 156.73 237.05 158.74 243.34C163.5 258.28 169.83 257.15 174.14 243.34C176.11 237.04 197.59 148.71 205.26 118.64C213.86 84.91 220.63 79.32 234.85 72.07C245.67 66.55 267.31 68.11 267.31 68.11L332.88 316.04C308.46 319.11 283.06 307.11 277.58 280.77zM393.36 275.56S389.26 269.2200000000001 379.9000000000001 263.99C373.8900000000001 260.63 368.1200000000001 258.35 361.9300000000001 255.38C346.7900000000001 248.12 348.7500000000001 241.43 348.7500000000001 220.18V68.11S365.3000000000001 66.02 376.1200000000001 71.54C390.0500000000001 78.64 393.2500000000001 85.49 393.3800000000001 116.3200000000001V266.5900000000001L393.3600000000001 266.5800000000001V275.56zM556.8 191.48L640 315.2200000000001S604.89 321.2 587.5 305.37C574.2 293.27 563.09 275.82 533.32 232.9C532.85 232.17 527.07 222.36 520.25 232.9C490.96 275.13 479.45 293.19 466.07 305.37C448.68 321.2 413.57 315.2200000000001 413.57 315.2200000000001L496.77 191.48L413.8 68.12S450.3699999999999 63.5 467.7499999999999 79.33C479.24 89.79 485.3299999999999 99.7 520.26 150.05C527.0699999999999 160.5699999999999 532.83 150.8199999999999 533.33 150.05C562.73 107.67 572.5600000000001 91.99 586.47 79.3299999999999C603.86 63.4999999999999 639.7900000000001 68.12 639.7900000000001 68.12L556.8 191.48z" />
    +    <glyph glyph-name="wizards-of-the-coast"
    +      unicode="&#xF730;"
    +      horiz-adv-x="640" d=" M219.19 102.31C217.29 100.93 208.12 93.87 218.93 78.74C223.57 72.32 233.04 65.95 240.66 72.19C247.16 77.07 248.01 85.11 240.92 95.23C235.45 102.99 226.64 108.11 219.19 102.31zM555.94 26.37C555.6 24.67 555.3900000000001 24.7 556.73 26.37C558.82 30.56 560.9200000000001 36.58 561.71 46.27C564.85 84.76 521.38 117.76 460.37 124.3C405.64 130.3199999999999 335.99 115.13 271.57 63.81L271.31 62.24C273.93 57.2599999999999 276.29 51.4999999999999 274.71 41.03L275.5 40.77C339.39 99.17 406.69 118.02 459.85 114.62C518.25 110.95 559.88 80.58 559.88 46.54C559.87 36.58 557.25 30.82 555.9399999999999 26.37zM392.28 207.58C393.07 200.51 396.47 197.37 401.45 197.11C406.95 196.85 410.88 199.73 411.92 203.66C412.7100000000001 207.06 414.01 233.51 414.01 233.51S402.75 226.96 399.08 223.04C395.42 219.36 391.75 214.65 392.28 207.58zM342.26 358.68C137.75 358.68 13.1 221.2 0.79 206.8C-0.26 206.28 -0.52 206.01 1.58 205.49C62.07 188.99 157.39 124.31 197.71 3.33L198.76 3.0700000000001C254.01 72.9900000000001 339.64 131.1200000000001 435.75 131.1200000000001C516.67 131.1200000000001 565.9 88.96 565.9 50.7300000000001C565.9 32.4000000000001 559.35 17.2100000000001 543.64 4.3800000000001C543.64 3.4200000000001 543.4399999999999 3.59 544.43 3.59C559.0899999999999 14.33 571.93 32.39 571.93 51.77C571.93 74.5500000000001 559.88 90.0000000000001 559.88 90.0000000000001C566.95 82.9300000000001 570.62 73.7600000000001 570.62 73.7600000000001C576.38 114.6100000000001 597.59 136.0800000000001 597.59 136.0800000000001C595.23 145.7700000000001 590.7800000000001 153.8900000000001 590.7800000000001 153.8900000000001C598.3700000000001 145.7700000000001 605.1800000000001 126.3900000000001 605.1800000000001 112.52C605.1800000000001 102.05 601.7800000000001 89.74 592.61 80.5700000000001L592.87 80.0500000000001C600.99 85.0300000000001 609.37 96.8100000000001 609.37 118.0200000000001C609.37 133.7300000000001 604.66 143.9400000000001 604.66 143.9400000000001C610.42 149.1800000000001 615.92 153.1100000000001 620.63 155.7200000000001C621.42 152.3200000000001 622.72 146.0300000000001 622.99 140.7900000000001C622.99 139.7400000000001 623.78 138.9600000000001 624.04 140.7900000000001C624.8299999999999 146.5500000000001 623.78 157.0300000000001 623.78 157.2900000000001C629.8 160.4300000000001 633.47 161.7400000000001 633.47 161.7400000000001C617.74 272 489.43 358.68 342.26 358.68zM243.02 69.06C231.96 60.07 218.82 64.98 212.38 73.25C204.93 82.83 205.62 97.34 216.57 105.72C231.42 117.0700000000001 243.65 106.21 247.73 100.22C248.01 99.83 259.86 83.65 243.02 69.06zM245.11 205.49L254.54 223.3L266.32 152.34L253.75 146.3200000000001L229.13 175.1200000000001L243.27 201.8300000000001L246.94 197.3800000000001L245.11 205.4900000000001zM263.7 87.91L263.44 88.17C265.49 92.27 260.94 94.78 245.9 119.86C244.59 122.22 242.76 122.74 241.45 122.48L241.1900000000001 123C249.0500000000001 128.76 256.6400000000001 133.21 266.5900000000001 138.71L267.11 138.45C268.42 136.62 269.2 135.57 270.51 133.74L270.25 133.22C269.2 133.48 267.89 134.0100000000001 265.01 132.96C262.92 132.17 257.15 129.29 252.7 125.3700000000001V124.0600000000001C254.27 121.7000000000001 256.63 117.5100000000001 258.46 114.3700000000001H258.72C268.77 120.65 266.28 118.9200000000001 270.24 122.2300000000001H270.5C271.0199999999999 120.4000000000001 271.0199999999999 120.4000000000001 272.33 116.7300000000001L272.07 116.4700000000001C269.01 115.8600000000001 267.42 116.1300000000001 260.55 110.9700000000001V110.7100000000001C270.01 93.6900000000001 271.56 93.9600000000001 273.12 94.7400000000001L273.38 94.4800000000001C271.04 92.8900000000001 267.11 90.2700000000001 263.7 87.9100000000001zM318.96 120.38C315.82 118.81 312.94 117.5 309.01 115.4L308.75 115.66C310.04 118.25 309.9100000000001 118.37 296.9700000000001 148.13L296.7100000000001 148.39C296.5600000000001 148.39 287.8100000000001 144.74 286.7600000000001 141.06H286.2400000000001L285.1900000000001 146.82L285.4500000000001 147.34C292.7400000000001 151.9 310.98 158.98 313.2100000000001 159.91L313.73 159.65L316.87 154.67L316.61 154.15C313.0800000000001 155.91 309.26 153.39 304.3 151.53V151.27C316.61 119.26 316.9700000000001 120.63 318.9600000000001 120.63V120.38zM363.73 136.88C359.54 135.83 358.49 135.57 354.04 134L353.78 134.26L354.3 138.71C353.25 142.11 351.16 150.23 350.63 152.33L350.37 152.59C346.97 151.8 341.47 149.97 337.54 148.66L337.28 148.4C338.07 145.78 340.42 138.45 341.47 134.52C342.26 132.16 343.3 131.64 344.35 131.38V130.86C340.68 129.81 337.28 128.24 334.14 126.93L333.88 127.19C334.93 128.5 334.93 130.07 334.14 132.17C333.09 135.31 326.02 156 324.97 159.4C324.45 161.23 323.4 162.54 322.35 162.54V163.06C325.49 164.11 328.37 165.15 333.09 166.46L333.35 166.2L333.09 161.49C334.4 157.56 335.45 153.9 336.23 151.8H336.49C340.42 153.11 345.92 154.68 349.32 155.73L349.58 155.99L346.9599999999999 165.42C346.44 167.25 345.9099999999999 168.82 344.3399999999999 169.35V169.61C348.7899999999999 170.66 351.6699999999999 171.44 355.08 171.97L355.3399999999999 171.71C354.2899999999999 170.4 354.2899999999999 168.8300000000001 354.82 167.2600000000001C356.39 160.9800000000001 359.5299999999999 146.8300000000001 361.0999999999999 140.8100000000001C361.64 138.1900000000001 362.95 137.4 363.7299999999999 136.8800000000001zM395.94 143.69L395.68 143.43C390.97 142.91 381.54 141.07 373.16 139.24L372.9 139.5L373.69 143.69C372.12 151.55 370.29 162.28 368.71 169.88C368.45 171.71 367.92 172.76 366.09 173.55L366.88 174.07C376.05 175.64 387.04 176.43 391.76 176.69L392.02 176.43C392.54 174.07 392.81 173.29 393.59 170.93L393.33 170.67C392.19 171.81 389.99 173.87 377.09 171.46L376.83 171.2000000000001C377.09 169.6300000000001 377.88 164.65 378.4 161.2500000000001L378.66 160.9900000000001C388.18 162.6700000000001 383.42 161.0500000000001 389.4 163.3500000000001H389.66C389.66 161.7800000000001 389.4 161.5200000000001 389.4 158.1100000000001H389.14C384.33 159.1400000000001 386.99 159.0100000000001 378.93 158.1100000000001L378.67 157.8500000000001C378.93 155.7600000000001 380.24 148.4200000000001 380.76 145.2800000000001L381.02 145.0200000000001C382.17 144.6400000000001 395.23 145.6700000000001 397.26 149.7300000000001H397.52C396.99 147.3500000000001 396.47 145.5200000000001 395.94 143.6900000000001zM406.68 188.2C402.23 185.84 398.56 185.32 395.68 185.32C395.43 185.3 384.2699999999999 184.23 378.14 195.27C371.3999999999999 206.06 377.1599999999999 220.47 383.64 226.96C392.44 235.08 406.99 237.06 412.18 243.98C420.2099999999999 254.31 399.14 266.29 382.59 249.74L379.97 252.62L385.21 268.86C410.8 270.43 430.41 271.9 435.23 252.62C436.02 249.48 435.23 243.19 434.97 240.57C434.97 237.95 433.14 221.72 432.88 217.53C432.36 213.34 432.09 199.2 432.09 196.84C432.35 194.48 432.61 192.65 433.66 191.34C435.23 189.51 439.42 189.51 439.42 189.51L438.63 184.8C426.81 185.87 428.35 185.39 418.2 185.85C414.9799999999999 191 415.9699999999999 189.13 414.01 193.71C414.01 193.7000000000001 409.82 189.7700000000001 406.68 188.2000000000001zM443.86 166.99C437.51 177.57 424.04 174.15 422.13 161.49C419.5 144.41 436.43 141.7 442.82 151.28L443.08 151.0200000000001C442.56 149.1900000000001 441.25 145.0000000000001 441.25 144.7400000000001L440.73 144.2200000000001C430.43 137.3500000000001 412.23 146.7200000000001 415.07 162.8100000000001C417.01 173.6800000000001 429.51 181.7400000000001 443.87 172.7600000000001L444.13 172.2400000000001C444.13 171.1800000000001 443.86 168.8300000000001 443.86 166.9900000000001zM449.63 254.7200000000001V261.2700000000001C450.32 261.2700000000001 469.2799999999999 257.99 477.3899999999999 253.9400000000001L475.8199999999999 236.4000000000001S486.0299999999999 245.8300000000001 491.2699999999999 247.1400000000001C496.5099999999999 248.7100000000001 506.1999999999999 239.8100000000001 506.1999999999999 239.8100000000001L494.9399999999999 228.5500000000001C482.8699999999999 234.9000000000001 475.35 228.6300000000001 474.2499999999999 227.7600000000001C468.9599999999999 189.0400000000001 465.6499999999999 185.59 478.6999999999999 181.6700000000001L478.1799999999999 176.9600000000001C460.6299999999999 181.2500000000001 459.65 181.4600000000001 441.26 184.2900000000001L442.05 189.0000000000001C449.3 189.0000000000001 449.53 194.3200000000001 449.64 195.8100000000001C449.64 195.8100000000001 454.6199999999999 248.9700000000001 454.6199999999999 251.0600000000001C454.6 253.9300000000001 449.63 254.7200000000001 449.63 254.7200000000001zM460.6199999999999 140.28C452.4999999999999 142.37 446.48 151.28 449.88 160.97C453.0199999999999 170.4 462.1899999999999 173.28 468.73 171.18C477.9 168.56 481.5599999999999 159.4 479.47 151.8C476.86 142.9 470.05 137.93 460.6199999999999 140.28zM502.78 130.59C500.42 131.11 495.71 132.9500000000001 494.14 133.47V133.73L495.71 135.56C496.3 143.8 496.3 142.83 495.97 143.15C491.15 144.96 489.3099999999999 145.51 488.9 145.51C487.59 143.68 486.02 141.06 485.23 140.01L484.4399999999999 136.61V136.35C483.1299999999999 136.61 480.5099999999999 137.66 478.42 137.92V138.18L481.04 140.01C484.4399999999999 144.72 490.99 154.15 494.92 160.17V162.26L495.4399999999999 162.52C497.5299999999999 161.73 500.9399999999999 160.43 503.0299999999999 159.64C503.5099999999999 159.16 503.2099999999999 161.51 501.9799999999999 134.5C501.7399999999999 132.69 501.9999999999999 131.9 502.7799999999999 130.59zM498.07 220.41C509.32 238.6800000000001 528.83 236.6 532.11 223.81L539.7 250C542.0400000000001 256.25 536.88 259.9 535.25 261.26L537.08 264.93C549.3000000000001 254.56 553.46 250.96 559.6 244.5C533.69 171.43 528.84 163.69 534.98 160.18L533.15 155.73C526.78 159.08 524.25 160.15 515.34 164.37L517.4300000000001 171.18C517.1700000000001 171.44 513.5000000000001 167.25 507.7400000000001 167.5099999999999C488.6800000000001 168.81 484.8500000000001 199.2599999999999 498.0700000000001 220.41zM527.4 141.0700000000001C527.4 146.78 521.06 148.96 519.54 146.3100000000001C518.23 144.2200000000001 520.5899999999999 141.3300000000001 522.42 137.9300000000001C523.99 135.3100000000001 525.04 131.6500000000001 523.4699999999999 128.5000000000001C520.8299999999999 122.1600000000001 511.0699999999999 123.1900000000001 508.0199999999999 129.2900000000001C508.0199999999999 129.9900000000001 507.7499999999999 129.2000000000001 509.8499999999999 134.0000000000001L510.6399999999999 134.2600000000001C510.0699999999999 128.6 516.6999999999999 124.65 519.02 129.28C520.0699999999999 131.37 518.5 134.78 516.93 137.66C515.3599999999999 140.28 513.26 143.94 515.0999999999999 147.35C517.8199999999999 152.41 526.3499999999999 151.8200000000001 529.7599999999999 144.99V144.47L527.3999999999999 141.0700000000001zM548.61 127.71C546.65 130.98 547.7 129.85 544.16 132.42H543.9C541.54 128.23 538.14 121.95 535.26 116.18C533.95 113.82 534.21 112.78 534.47 112.25L534.21 111.99L528.45 116.44L528.71 116.7L530.8000000000001 118.01C533.94 123.77 537.35 130.06 539.97 135.03V135.29C537.33 137.27 538.75 136.8 533.95 137.12V137.38L537.09 140.7799999999999H537.35C541.02 138.4199999999999 547.3000000000001 133.9699999999999 549.66 131.88L549.92 131.62L548.61 127.7099999999999zM575.84 171.97L572.96 174.85C573.75 177.21 574.7900000000001 179.8300000000001 575.0500000000001 182.44C575.8000000000001 192.18 563.5300000000001 194.28 563.5300000000001 187.42C563.5300000000001 182.44 571.3900000000001 168.04 571.3900000000001 159.66C571.3900000000001 149.4500000000001 565.6300000000001 143.9500000000001 557.5100000000001 143.16C549.1300000000001 142.37 537.3500000000001 153.6300000000001 537.3500000000001 153.6300000000001L542.3300000000002 168.03L545.2100000000002 165.9400000000001C542.2400000000001 148.1400000000001 562.8900000000001 145.5700000000001 558.5600000000002 160.7000000000001C557.5000000000002 164.72 539.8100000000002 194.9 560.6500000000002 198.93C574.2700000000002 201.2900000000001 583.6900000000002 182.4300000000001 583.6900000000002 182.4300000000001L575.8400000000001 171.9700000000001zM611.46 182.18C600.46 212.56 550.97 309.7100000000001 419.5100000000001 311.8C366.0900000000001 312.85 325.2400000000001 296.35 286.7500000000001 273.8300000000001L372.3800000000001 283L280.9900000000001 262.31L306.1300000000001 242.67L302.2000000000001 259.17C309.7000000000001 260.88 341.35 267.62 368.9700000000001 268.0700000000001L346.7100000000001 187.68C360.3200000000001 188.38 365.6800000000001 196.66 366.35 210.46L371.3300000000001 211.51L371.5900000000001 184.8C349.1300000000001 181.59 334.29 178.11 322.1 174.85L335.19 218.06L273.65 254.7200000000001L276.01 246.6L286.22 241.6200000000001C292.5 223.03 305.6 185.0600000000001 306.65 182.96C308.6 178.6800000000001 309.81 177.1800000000001 318.7 178.5100000000001L319.75 173.53C303.67 168.67 296.09 165.92 280.73 159.1300000000001L278.37 163.84C282.77 166.78 287.1 167.78 283.87 176.67C260.17 239.17 262.39 234.81 261.0900000000001 236.11L263.4500000000001 240.56L296.9700000000001 173.26C293.1300000000001 185.13 298.6500000000001 171.57 263.98 252.08L222.08 163.57L226.79 177.45L190.91 219.61L218.67 126.13L206.89 117.75C95 219.42 101.05 216.13 93.23 216.48C87.73 216.74 79.61 210.98 79.61 210.98L74.63 217C105.19 240.53 106.25 241.33 133.03 259.68L137.22 252.61S131.46 248.42 129.36 245.54C123.46 236.26 131.03 232.26 191.16 169.86L172.31 228.7800000000001L212.11 238.9900000000001L237.77 208.35L242.22 220.66L237.24 245.2800000000001L250.33 248.6800000000001L250.85 245.5400000000001L254.52 256.0100000000001L160.25 226.6800000000001L171.5099999999999 231.6600000000001L157.8899999999999 274.0800000000001L175.1699999999999 283.25L205.2799999999999 247.11L233.8199999999999 260.2000000000001C232.4099999999999 267.67 231.3499999999999 274.7000000000001 229.1099999999999 279.8400000000001L246.3899999999999 265.9600000000001L251.0999999999999 268.0500000000001L191.9199999999999 310.73L214.9999999999999 299.23C233.9799999999999 305.3000000000001 240.2299999999999 306.7000000000001 247.2099999999999 308.9200000000001L249.8299999999999 297.9200000000001C237.2799999999999 285.37 251.2599999999999 281.1 256.3799999999999 278.5400000000001L242.7599999999999 339.5500000000001L254.8099999999999 311.2700000000001C258.9999999999999 312.5800000000001 262.1399999999999 313.36 262.1399999999999 313.36L264.7599999999999 304.7200000000001S261.6199999999999 303.67 258.4799999999999 302.63L267.3799999999999 281.6800000000001L301.1599999999999 347.4100000000001L280.4699999999999 286.4000000000001C322.8899999999999 310.49 361.9099999999999 323.0600000000001 412.4499999999998 322.2800000000001C479.4899999999998 321.23 579.7799999999999 281.4300000000001 612.2499999999998 182.4500000000001C613.0299999999997 180.35 612.2399999999998 179.8200000000001 611.4599999999998 182.1800000000001zM203.48 295.57S205.31 296.0900000000001 207.67 296.88L217.1 289.29C216.7 289.29 213.66 289.54 205.84 286.93L203.48 295.57zM347.24 257.07C345.67 257.67 320.7800000000001 261.88 313.98 236.38L335.7100000000001 219.36L347.24 257.07zM318.43 380.93C260.0300000000001 380.93 212.38 368.88 203.47 366.53V365.74C211.85 363.65 217.87 361.55 224.68 353.96L226.2500000000001 353.7C232.8000000000001 355.53 275.2200000000001 367.58 336.49 367.58C516.65 367.58 638.1600000000001 250.79 638.1600000000001 144.21V134.26C638.1600000000001 132.95 638.95 131.64 639.21 133.74C639.73 135.83 640 142.38 640 153.38C640.26 237.17 543.37 380.93 318.43 380.93zM529.49 211.25C530.8 217.01 529.49 223.56 522.16 224.34C512.54 225.47 506.02 200.55 505.14 190.82C504.35 185.32 503.83 175.89 511.16 175.89C515.8399999999999 175.9 520.88 176.8 529.49 211.25zM467.96 168.3C465.34 169.09 458.53 169.09 455.39 157.83C453.5600000000001 151.02 455.91 144.48 461.41 143.17C465.08 142.12 470.31 142.65 473.19 153.91C475.81 163.85 471.36 167.52 467.96 168.3zM491 147.35C492.83 146.8300000000001 494.14 146.3 496.76 145.5200000000001C496.76 147.35 497.28 153.9 497.55 157.5700000000001C496.5 156.2600000000001 492.05 149.4500000000001 491 147.6200000000001V147.3500000000001z" />
    +    <glyph glyph-name="wolf-pack-battalion"
    +      unicode="&#xF514;"
    +      horiz-adv-x="456.58" d=" M239.73 -23.53L250.29 -39.3699999999999L255.57 -27.05L260.85 -34.09V-64C281.91 -56.08 281.96 2.86 286.36 33.21C290.98 65.1 285.48 126.02 367.73 182.32C358.85 205.93 355.73 231.75 365.09 262.37C392.96 259.03 419.03 251.79 428.43 208.27L398.08 199.91C409.2299999999999 176.87 415.0899999999999 153.15 411.2799999999999 127.7700000000001L384 134.82L377.84 101.39L359.37 108.43L350.57 75L331.22 82.04L357.61 60.93L366.41 89.08L391.04 83.8L398.08 119.43L424.47 104.91C424.72 124.93 431.44 162.97 415.67 189.36L442.06 184.0800000000001C446.05 206.15 439.68 223.2900000000001 434.14 240.8200000000001L456.5699999999999 231.1400000000001C456.1299999999999 256.2100000000001 426.63 287.9300000000001 394.99 289.6400000000001C374.77 290.73 338.25 314.8100000000001 340.89 341.5400000000001C342.8499999999999 361.4100000000001 358.3399999999999 384.1600000000001 384 391.2400000000001C340.01 354.73 374.32 323.9400000000001 389.2799999999999 317.7800000000001C393.6799999999999 329.2200000000001 406.82 386.8600000000001 389.2799999999999 447.98C348.81 425.1100000000001 299.5499999999999 382.8800000000001 296.0299999999999 300.1900000000001L237.9699999999999 261.48L234.4499999999999 168.23L341.7799999999999 228.05L348.82 221.01L331.23 217.49L287.24 178.78L271.4 184.06L243.25 134.8L239.73 15.16L260.84 -0.6799999999999L228.29 -16.5199999999999L195.74 -0.6799999999999L216.85 15.16L213.33 134.8L185.18 184.06L169.34 178.78L125.3499999999999 217.4900000000001L107.7599999999999 221.0100000000001L114.8 228.0500000000001L222.13 168.23L218.6099999999999 261.48L160.5499999999999 300.1900000000001C157.03 382.9 107.77 425.13 67.3 448C49.76 386.88 62.9 329.24 67.3 317.8C82.26 323.9600000000001 116.56 354.75 72.58 391.26C98.24 384.18 113.73 361.43 115.69 341.56C118.32 314.82 81.81 290.75 61.59 289.66C29.94 287.94 0.44 256.2200000000001 0 231.15L22.43 240.83C16.89 223.3 10.52 206.16 14.51 184.09L40.9 189.37C25.14 162.98 31.85 124.94 32.1 104.92L58.49 119.44L65.53 83.81L90.16 89.09L98.96 60.94L125.35 82.05L106.01 75L97.21 108.43L78.74 101.39L72.58 134.82L45.31 127.78C41.49 153.16 47.36 176.88 58.51 199.92L28.16 208.28C37.56 251.8 63.63 259.05 91.5 262.38C100.86 231.76 97.74 205.93 88.86 182.33C171.11 126.03 165.61 65.1 170.23 33.22C174.63 2.8699999999999 174.68 -56.07 195.74 -63.99V-34.08L201.02 -27.04L206.3 -39.36L216.86 -23.52L228.3 -44.63L239.73 -23.53zM318.9 71.48L303.06 82.04C310.5300000000001 86.4 316.82 90.46 322.4100000000001 94.36C321.81 87.1 322.1400000000001 80.48 318.9000000000001 71.48zM347.05 120.74C346.65 109.8 346.15 99.08 345.29 89.07C337.44 90.93 329.72 92.87 324.18 96.11C332.42 104.01 339.73 112.38 347.05 120.74zM371.68 115.46C371.66 128.8900000000001 369.63 139.67 366.4 148.8900000000001C361.02 139.8000000000001 355.17 130.71 347.93 121.6200000000001L371.68 115.46zM375.2 196.4C394.64 183.59 403 162.74 405.11 140.1C392.79 144.63 380.48 149.41 368.16 150.66C373.22 162.65 374.81 178.8 375.2 196.4zM373.44 242.1400000000001C374.25 227.8400000000001 375.2799999999999 213.3200000000001 375.2 199.9100000000001C394.42 208.0200000000001 404.9799999999999 209.6300000000001 419.19 213.9900000000001C408.5899999999999 232.9400000000001 391.9699999999999 239.5100000000001 373.44 242.1400000000001zM137.68 71.48L153.52 82.04C146.05 86.4 139.76 90.46 134.17 94.36C134.77 87.1 134.44 80.48 137.68 71.48zM109.53 120.74C109.93 109.8 110.43 99.08 111.29 89.07C119.14 90.93 126.86 92.87 132.4 96.11C124.16 104.01 116.85 112.38 109.53 120.74zM84.89 115.46C84.91 128.8900000000001 86.94 139.67 90.17 148.8900000000001C95.55 139.8000000000001 101.4 130.71 108.64 121.6200000000001L84.89 115.46zM81.37 196.4C61.93 183.59 53.57 162.74 51.46 140.1C63.78 144.63 76.09 149.41 88.41 150.66C83.36 162.65 81.76 178.8 81.37 196.4zM83.13 242.1400000000001C82.32 227.8400000000001 81.29 213.3200000000001 81.37 199.9100000000001C62.15 208.0200000000001 51.59 209.6300000000001 37.38 213.9900000000001C47.99 232.9400000000001 64.6 239.5100000000001 83.13 242.1400000000001z" />
    +    <glyph glyph-name="wordpress-simple"
    +      unicode="&#xF411;"
    +      horiz-adv-x="512" d=" M256 440C119.3 440 8 328.8 8 192C8 55.3 119.3 -56 256 -56S504 55.3 504 192C504 328.8 392.7 440 256 440zM33 192C33 224.3 39.9 255 52.3 282.7L158.7 -8.7C84.3 27.5 33 103.8 33 192zM256 -31C234.1 -31 213 -27.8 193 -21.9L259.9 172.5L328.4 -15.3C328.9 -16.4 329.4 -17.4 330 -18.4C306.9 -26.5000000000001 282 -31.0000000000001 256 -31.0000000000001zM286.7 296.5C300.1 297.2 312.2 298.6 312.2 298.6C324.2 300 322.8 317.7 310.8 317C310.8 317 274.7 314.2 251.4 314.2C229.5 314.2 192.7 317 192.7 317C180.7 317.7 179.3 299.3 191.3 298.6C191.3 298.6 202.7 297.2 214.7 296.5L249.4 201.3L200.6 55L119.4 296.5C132.8 297.2 144.9 298.6 144.9 298.6C156.9 300 155.5 317.7 143.5 317C143.5 317 107.4 314.2 84.1 314.2C79.9 314.2 75 314.3 69.7 314.5C109.6 375 178.1 415 256 415C314 415 366.9 392.8 406.6 356.5C405.6 356.6 404.7000000000001 356.7 403.7000000000001 356.7C381.8000000000001 356.7 366.3000000000001 337.6 366.3000000000001 317.1C366.3000000000001 298.7 376.9000000000001 283.2 388.2000000000001 264.8C396.7000000000001 250 406.6 230.9 406.6 203.3C406.6 184.2 399.3 162.1 389.6 131.2000000000001L367.4000000000001 56.9L286.7000000000001 296.5zM368.1 -0.7L436.2000000000001 196.2C448.9000000000001 228.0000000000001 453.2 253.4000000000001 453.2 276.1C453.2 284.3 452.7 291.9000000000001 451.7 299C469.1 267.2000000000001 479.0000000000001 230.8 479.0000000000001 192C479.0000000000001 109.7000000000001 434.4000000000001 37.9 368.1 -0.6999999999999z" />
    +    <glyph glyph-name="wordpress"
    +      unicode="&#xF19A;"
    +      horiz-adv-x="512" d=" M61.7 278.6L163.2 0.6C92.2 35 43.3 107.8 43.3 192C43.3 222.9 49.9 252.1 61.7 278.6zM399.6 202.7C399.6 229 390.2 247.2 382.1 261.4C371.3 278.9 361.2 293.8 361.2 311.3C361.2 330.9 376 349.1 396.9 349.1C397.8 349.1 398.7 349 399.7 348.9C361.8 383.6 311.4 404.8 256 404.8C181.7 404.8 116.3 366.7 78.2 308.9C83.2 308.7 87.9 308.6 91.9 308.6C114.1 308.6 148.6 311.3 148.6 311.3C160.1 312 161.4 295.1 150 293.8C150 293.8 138.5 292.5 125.7 291.8L203.2 61.4L249.8 201L216.7 291.8C205.2 292.5 194.4 293.8 194.4 293.8C182.9 294.5 184.3 312 195.7 311.3C195.7 311.3 230.8 308.6 251.7 308.6C273.9000000000001 308.6 308.4000000000001 311.3 308.4000000000001 311.3C319.9000000000001 312 321.2000000000001 295.1 309.8 293.8C309.8 293.8 298.3 292.5 285.5 291.8L362.4 63.1L383.6 134C392.6 163.4 399.6 184.5 399.6 202.7zM259.7 173.4L195.8999999999999 -12.1C214.9999999999999 -17.7 235.0999999999999 -20.8 255.9999999999999 -20.8C280.7999999999999 -20.8 304.4999999999999 -16.5 326.5999999999999 -8.7C325.9999999999999 -7.8 325.4999999999999 -6.8 325.0999999999999 -5.8L259.7 173.4zM442.7 294.1C443.5999999999999 287.3 444.0999999999999 280.1 444.0999999999999 272.2C444.0999999999999 250.6 440.0999999999999 226.4 427.8999999999999 196L362.8999999999999 8.0999999999999C426.2 45 468.7 113.5 468.7 192C468.7 229 459.3 263.8 442.7 294.1zM504 192C504 55.2 392.7 -56 256 -56C119.2 -56 8 55.3 8 192C8 328.8 119.2 440 256 440C392.7 440 504 328.8 504 192zM492.6 192C492.6 322.5 386.4000000000001 428.6 256 428.6C125.5 428.6 19.4 322.5 19.4 192S125.6 -44.6 256 -44.6C386.5 -44.6 492.6 61.5 492.6 192z" />
    +    <glyph glyph-name="wpbeginner"
    +      unicode="&#xF297;"
    +      horiz-adv-x="512" d=" M462.799 125.626C519.01 61.318 466.961 -32 370.944 -32C331.3420000000001 -32 292.12 -14.313 270.802 18.04C263.915 17.684 248.1 17.684 241.212 18.04C219.848 -14.381 180.588 -32 141.069 -32C45.579 -32 -7.279 60.996 49.214 125.626C-29.925 257.477 80.479 416 256.006 416C431.638 416 541.876 257.374 462.799 125.626zM123.152 208.598H164.681V266.673H123.152V208.598zM340.332 122.526V146.365C279.826 125.4499999999999 207.977 137.167 152.743 180.336L152.989 155.439C204.09 109.072 284.735 97.564 340.332 122.526zM189.579 208.598H355.637V266.673H189.579V208.598z" />
    +    <glyph glyph-name="wpexplorer"
    +      unicode="&#xF2DE;"
    +      horiz-adv-x="512" d=" M512 192C512 50.8 397.3 -64 256 -64C114.8 -64 0 50.7 0 192S114.7 448 256 448S512 333.3 512 192zM480 192C480 315.2 379.7 416 256 416C132.5 416 32 315.5 32 192S132.5 -32 256 -32S480 68.5 480 192zM160.9 323.4L247.8 286.3L210.7 199.4L123.8 236.5L160.9 323.4zM270.9 154.3L317.5 60.3H302.9L252.9 160.3L204 60.3H190L241.1 167.2000000000001L218.8 176.6L224.8 190.6L293.4 161.5L287.4 147.2L270.9 154.3zM259.1 270.6L327.7 241.2L298.3 172.9L230 202L259.1 270.6zM339.4 227.7L394 204.6L370.6 150.3L316.3 173.4L339.4000000000001 227.7000000000001z" />
    +    <glyph glyph-name="wpforms"
    +      unicode="&#xF298;"
    +      horiz-adv-x="448" d=" M448 372.8V11.1C448 -13.2 429 -32.1 404.8 -32.1H43.2C19.3 -32 0 -13.4 0 11.2V372.8C0 396.9 18.8 416 43.2 416H404.9C428.9 416 448 397.2 448 372.8zM410.7 11.2V372.8C410.7 375.8 408.1 378.6 404.9 378.6H395.6L285.3 304L224 353.9L162.8 304L52.5 378.7H43.2C40 378.7 37.4 375.9 37.4 372.9V11.2C37.4 8.2 40 5.4 43.2 5.4H404.9C408.1 5.3 410.7 8.1 410.7 11.2zM150.2 262V225H76.7V262H150.2zM150.2 187.6V150.3H76.7V187.6H150.2zM161.3 334.9000000000001L215.3 378.6H96.8L161.3 334.9000000000001zM371.3 262V225H175.3V262H371.3zM371.3 187.6V150.3H175.3V187.6H371.3zM286.7 334.9000000000001L351.2 378.6H232.8L286.7 334.9000000000001zM371.3 113V75.7H271.9V113H371.3z" />
    +    <glyph glyph-name="xbox"
    +      unicode="&#xF412;"
    +      horiz-adv-x="512" d=" M369.9 129.8C414.2 75.5 434.6 31 424.3 11.1C416.4 -4 367.6 -33.5 331.7 -44.8C302.0999999999999 -54.1 263.3 -58.1 231.3 -54.9999999999999C193.0999999999999 -51.3 154.3999999999999 -37.6 121.1999999999999 -15.9999999999999C93.3 2.2 87 9.7 87 24.6C87 54.5 119.9 106.9 176.2 166.7000000000001C208.2 200.6000000000001 252.7 240.4000000000001 257.6 239.3000000000001C267 237.2000000000001 341.9000000000001 164.2000000000001 369.9000000000001 129.8000000000001zM188.6 304.2C158.9 331.1 130.5 358.1 102.2 367.6C87 372.7 85.9 372.4 73.5 359.5C44.3 329.1 20 279.8 13.2 237.1C7.8 202.9 7.1 193.3 9 176.6C14.6 126.1 26.3 91.2000000000001 49.5 55.7C59 41.1 61.6 38.4 58.8 45.8000000000001C54.6 56.8000000000001 58.5 83.3000000000001 68.3 109.8000000000001C82.6 148.8000000000001 122.2 222.7000000000001 188.6 304.2000000000001zM500.2 240.7C483.3 320.7 432.7 371 425.6 371C418.3 371 401.4000000000001 364.5 389.6 357.1C366.3 342.6 348.6 325.7 325.3 304.3C367.7 251 427.5 164.9 448.2 102C455 81.3 457.9 60.9 455.6 49.7C453.9 41.2 453.9 41.2 456.9999999999999 45.1C463.1 52.8 476.8999999999999 76.4 482.3999999999999 88.6C489.7999999999999 104.8 497.3999999999999 128.8 500.9999999999999 147.3C505.3 169.8 504.8999999999999 218.1 500.1999999999999 240.7zM141.3 405C189 407.5 251 370.5 255.6 369.6C256.3 369.5 266 373.8 277.2 379.3C341.1 410.4 371.2 405.1 384.6 404.5C320.7000000000001 443.8 231.9000000000001 454.5 150.7 416.2C127.3 405.1 126.7 404.3 141.3 405z" />
    +    <glyph glyph-name="xing-square"
    +      unicode="&#xF169;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM140.4 127.8H93.8C88.3 127.8 85.1 133.1 87.8 138.1L137.1 224.8C137.2 224.8 137.2 224.9 137.1 225L105.7 279C102.7 284.6 105.9 289.1 111.7 289.1H158.3C163.5 289.1 167.8 286.2 171.2 280.4L203.1 225.1C201.8 222.8 185.1 193.4 153 136.9C149.5 130.7000000000001 145.3 127.8 140.4 127.8zM360.1 341.9L257.3 161.2V161L322.8 42C325.6 36.9 322.9000000000001 31.9 316.8 31.9H270.2C264.7 31.9 260.5 34.8 257.3 40.6L191.3 160.9C193.6 165 228.1 225.8 294.7000000000001 343.2C298.0000000000001 349 302.1 351.9 307.2000000000001 351.9H354.1C359.8 352 362.9000000000001 347.2 360.1 341.9z" />
    +    <glyph glyph-name="xing"
    +      unicode="&#xF168;"
    +      horiz-adv-x="384" d=" M162.7 238C160.9 234.7 137.5 193.6 92.6 114.5C87.7 106.2 81.8 102 74.9 102H9.8C2.1 102 -2.3 109.5 1.3 116.4L70.3 237.7C70.5 237.7 70.5 237.8 70.3 238L26.4 313.6C22.1 321.4 26.7 327.7 34.9 327.7H100C107.3 327.7 113.3 323.6 118 315.5L162.7 238zM382.6 401.9L238.6 148.9V148.6L330.2 -18C334.1 -25.1 330.4 -32.1 321.7 -32.1H256.5C248.9 -32.1 242.9 -28.1 238.5 -19.9L146.1 148.6C149.4 154.4 197.6 239.4 290.9 403.8C295.5 411.9 301.3 416 308.4 416H374.1C382.1 416 386.4 409.3 382.6 401.9z" />
    +    <glyph glyph-name="y-combinator"
    +      unicode="&#xF23B;"
    +      horiz-adv-x="448" d=" M448 416V-32H0V416H448zM236 160.5L313.5 306H280.8L235 215C230.3 205.7 226 196.7 222.2 188.2L210 215L164.8 306H129.8L206.5 162.2V67.7H236V160.5z" />
    +    <glyph glyph-name="yahoo"
    +      unicode="&#xF19E;"
    +      horiz-adv-x="448" d=" M252 156L256 -64C243.3 -61.8 232.5 -60.1 223.7 -60.1C215.3 -60.1 204.5 -61.8 191.4 -64L195.4 156C140.4 250.8 85 352.8 21.4 448C33.3 444.9 44.4 444.1 54.6 444.1C63.6 444.1 75 444.9 88.7 448C129.6 375.8 170.8 309.3 223.7 222.5C261 284.1 314.8 366.6 358.6 448C369.7000000000001 445.1 380.6 444.1 391.5 444.1C403 444.1 414.7 445.1 426.5 448C392.1 400.1 294.9 231.1 252 156z" />
    +    <glyph glyph-name="yandex-international"
    +      unicode="&#xF414;"
    +      horiz-adv-x="320" d=" M129.5 -64V102.1L18.5 400H74.3L156.1 170.3L250.2 448H301.5L180.8 100.2V-64H129.5z" />
    +    <glyph glyph-name="yandex"
    +      unicode="&#xF413;"
    +      horiz-adv-x="256" d=" M153.1 132.2L65.7 -64H2L98 145.8C52.9 168.7 22.8 210.2 22.8 286.9C22.7 394.3 90.8 448 171.7 448H254V-64H198.9V132.2H153.1zM198.9 401.5H169.5C125.1 401.5 82.1 372.1 82.1 286.9C82.1 204.6 121.5 178.1 169.5 178.1H198.9V401.5z" />
    +    <glyph glyph-name="yelp"
    +      unicode="&#xF1E9;"
    +      horiz-adv-x="384" d=" M136.9 120C135.9 119.7 27.7 84.3 21.1 84.3C5.9 85.2 2.6 100.5 1.2 115.5C-0.3 129.7 -0.2 145.3 1.5 162.3C3.4 181.1 7 207.4 25.7 206.3C30.5 206.3 92.8 180.4 138.4 161.9C155.5 155.1 157 126.1 136.9 120.0000000000001zM194.8 233.9C196.6 195.7 169.3 185.4 147.6 219.6L41.3 387.6C39.8 394.2 41.6 400 46.6 405C62.2 421.5 146 444.8 168.1 439.1C175.6 437.2 180.2 433 181.9 426.5C183.2 418.2 193.4 259.1 194.8 233.9zM193.4 69.1C193.4 64.5 193.6 -47.3 191.7 -52.4C189.4 -58.4 184.7 -62.1 177.4 -63.6C167.3 -65.2999999999999 150.3 -61.7 126.4 -52.9C104.4 -44.8 69.7 -31.4 77.1 -10.4C79.9 -3.5 128.5 52.4 154.4 83.2000000000001C166.4 98.4 194.2 88.7000000000001 193.4 69.1zM373.6 186.9C368 183.2000000000001 262.8 158.7000000000001 255.5000000000001 156.3L255.8000000000001 156.9C237.7000000000001 152.2000000000001 220.4 175.4 232.5000000000001 191.5000000000001C236.2 195.2000000000001 298.4000000000001 283.9000000000001 305.3 288.5000000000001C310.5 292.1 316.6 292.3000000000001 323.6 289.1C342 280.3000000000001 378.7000000000001 226.0000000000001 381 204.5000000000001C380.9 201.6000000000001 382.2 192.8000000000001 373.6 186.9zM383.7000000000001 56.2C381.0000000000001 35.6 339.2000000000001 -17.1999999999999 319.9000000000001 -24.8C313.0000000000001 -27.4 307.0000000000001 -26.8 302.2000000000001 -22.8C297.2000000000001 -19.3 240.4000000000001 74.3000000000001 237.3000000000001 79.5000000000001C226.4000000000001 95.7000000000001 244.1000000000001 119.3000000000001 262.9000000000001 112.7000000000001C262.9000000000001 112.7000000000001 373.4000000000001 77.0000000000001 377.6 73.3000000000001C382.8 69.2000000000001 384.8 63.5000000000001 383.7000000000001 56.2z" />
    +    <glyph glyph-name="yoast"
    +      unicode="&#xF2B1;"
    +      horiz-adv-x="448" d=" M91.3 372H277.3L270.3 353.1H91.3C51.6 353.1 19.4 321.5 19.4 282.8V77.4C19.4 42 44.3 7.1 103.4 7.1V-12H91.3C41.2 -12 0 28.2 0 77.5V282.8C0 332.1 40.7 372 91.3 372zM320.4 428H386.9C243.1 49.9 241.2 29.1 202.2 -11.3C181.4 -32.9 152.9 -43 123.9 -44V7.1C173.1 14.8 188.5 57 188.5 82.4C188.5 102.5000000000001 189.1 95.0000000000001 106.4 305.6H167.8L218.2 149L320.4 428zM448 286.5V-12H234C240.6 -2.4 244.7 4.3 246.1 7.4H428.6V286.5C428.6 319 411.5 338.4 380.4000000000001 349.4L387.1 367C428.8 353.4 448 323.9 448 286.5z" />
    +    <glyph glyph-name="youtube-square"
    +      unicode="&#xF431;"
    +      horiz-adv-x="448" d=" M186.8 245.9L282 191.8L186.8 137.7V245.9zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM406 191.7S406 251.3 398.4 279.9C394.2 295.7 381.9 308.1 366.2 312.3C337.9 320 224 320 224 320S110.1 320 81.8 312.3C66.1 308.1 53.8 295.7000000000001 49.6 279.9C42 251.4 42 191.7 42 191.7S42 132.1 49.6 103.5C53.8 87.7 66.1 75.8 81.8 71.6C110.1 64 224 64 224 64S337.9 64 366.2 71.7C381.9 75.9 394.2 87.8 398.4 103.6C406 132.1 406 191.6999999999999 406 191.6999999999999z" />
    +    <glyph glyph-name="youtube"
    +      unicode="&#xF167;"
    +      horiz-adv-x="576" d=" M549.655 323.9170000000001C543.374 347.567 524.8679999999999 366.193 501.371 372.514C458.781 384 288 384 288 384S117.22 384 74.629 372.514C51.132 366.192 32.626 347.567 26.345 323.9170000000001C14.933 281.05 14.933 191.612 14.933 191.612S14.933 102.174 26.345 59.307C32.626 35.657 51.132 17.807 74.629 11.486C117.22 0 288 0 288 0S458.78 0 501.371 11.486C524.8679999999999 17.807 543.374 35.657 549.655 59.307C561.067 102.174 561.067 191.612 561.067 191.612S561.067 281.05 549.655 323.9170000000001zM232.145 110.409V272.815L374.884 191.61L232.145 110.409z" />
    +    <glyph glyph-name="zhihu"
    +      unicode="&#xF63F;"
    +      horiz-adv-x="640" d=" M170.54 299.87V82.33L193.97 82.3200000000001L201.68 55.95L243.69 82.3200000000001H293.2200000000001V299.87H170.54zM268.29 105.94H240.35L212.45 88.43L207.37 105.9L195.47 105.94V276.25H268.29V105.94zM149.83 200.33H97.5C99.24 227.43 99.7 251.92 99.7 273.79H150.86S152.83 296.35 142.28 296.1H53.78C57.27 309.22 61.65 322.76 66.9 336.77C66.9 336.77 42.83 336.77 34.63 315.2C31.24 306.3 21.42 272.06 3.93 237.08C9.82 237.72 29.3 238.26 40.77 259.29C42.88 265.18 43.28 265.95 45.91 273.82H74.78C74.78 263.32 73.58 206.94 73.1 200.38H20.83C9.09 200.38 5.27 176.76 5.27 176.76H70.85C66.45 126.9 42.83 84.88 0 51.66C20.49 45.81 40.91 52.59 51 61.56C51 61.56 73.98 82.46 86.59 130.81L140.55 65.87S148.46 92.76 139.31 105.86C131.73 114.78 111.25 138.92 102.52 147.67L87.9 136.05C92.26 150.03 94.89 163.6 95.77 176.72H157.42S157.33 200.34 149.83 200.34V200.3300000000001zM561.8499999999999 201.93C582.68 227.57 606.8299999999999 260.5 606.8299999999999 260.5S588.18 275.3 579.4499999999999 264.56C573.4499999999999 256.41 542.6199999999999 216.36 542.6199999999999 216.36L561.8499999999999 201.93zM411.7599999999999 261.02C402.7499999999999 269.27 385.8499999999999 258.89 385.8499999999999 258.89S425.3699999999999 203.85 426.9699999999999 201.44L446.4299999999999 215.17S420.7599999999998 252.78 411.7699999999999 261.03H411.7599999999999zM640 189.65C620.22 189.65 509.09 188.72 508.94 188.72V289.72C513.75 289.72 521.36 290.12 531.79 290.92C572.67 293.33 601.92 294.92 619.56 295.73C619.56 295.73 631.78 322.92 618.9699999999999 329.17C615.8999999999999 330.35 595.8 324.59 595.8 324.59S430.58 308.1 363.44 306.54C365.04 297.72 371.06 289.46 379.2199999999999 286.99C392.5299999999999 283.51 401.9099999999999 285.29 428.3699999999999 286.1C453.1999999999999 287.7 472.0499999999999 288.53 484.8799999999999 288.53V188.72H351.4100000000001S354.23 166.41 376.92 165.87H484.86V94.9499999999999C484.86 80.9799999999999 473.67 72.9599999999999 460.38 73.8299999999999C446.3 73.7199999999999 434.3 74.9799999999999 418.69 75.6399999999999C420.68 71.6699999999999 425.02 61.2499999999999 438 53.8C447.88 48.99 454.17 47.23 464.02 47.23C493.58 47.23 509.69 64.51 508.91 92.54V165.86H631.27C640.9499999999999 165.86 639.97 189.64 639.97 189.64L640 189.65z" />
    +  </font>
    +</defs>
    +</svg>
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.ttf b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.ttf
    new file mode 100644
    index 00000000000..867f408c5af
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.ttf differ
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff
    new file mode 100644
    index 00000000000..87d28af1683
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff differ
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff2 b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff2
    new file mode 100644
    index 00000000000..e97785f2d57
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-brands-400.woff2 differ
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.eot b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.eot
    new file mode 100644
    index 00000000000..fba135e6649
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.eot differ
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.svg b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.svg
    new file mode 100644
    index 00000000000..0085843379d
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.svg
    @@ -0,0 +1,467 @@
    +<?xml version="1.0" standalone="no"?> 
    +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
    +<svg xmlns="http://www.w3.org/2000/svg">
    +<defs>
    +  <font id="fontawesome-free" horiz-adv-x="640">
    +    <font-face font-family="Font Awesome 5 Free"
    +      units-per-em="512" ascent="448"
    +      descent="64"
    +      font-weight="400"
    +      font-style="Regular" />
    +    <missing-glyph horiz-adv-x="0" />
    +    <glyph glyph-name="address-book"
    +      unicode="&#xF2B9;"
    +      horiz-adv-x="448" d=" M436 288C442.6 288 448 293.4 448 300V340C448 346.6 442.6 352 436 352H416V400C416 426.5 394.5 448 368 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H368C394.5 -64 416 -42.5 416 -16V32H436C442.6 32 448 37.4 448 44V84C448 90.6 442.6 96 436 96H416V160H436C442.6 160 448 165.4 448 172V212C448 218.6 442.6 224 436 224H416V288H436zM368 -16H48V400H368V-16zM208 192C243.3 192 272 220.7 272 256S243.3 320 208 320S144 291.3 144 256S172.7 192 208 192zM118.4 64H297.6C310 64 320 72.6 320 83.2V102.4C320 134.2 289.9 160 252.8 160C242 160 234.1 152 208 152C181.1 152 174.6 160 163.2 160C126.1 160 96 134.2 96 102.4V83.2C96 72.6 106 64 118.4 64z" />
    +    <glyph glyph-name="address-card"
    +      unicode="&#xF2BB;"
    +      horiz-adv-x="576" d=" M528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM528 16H48V368H528V16zM208 192C243.3 192 272 220.7 272 256S243.3 320 208 320S144 291.3 144 256S172.7 192 208 192zM118.4 64H297.6C310 64 320 72.6 320 83.2V102.4C320 134.2 289.9 160 252.8 160C242 160 234.1 152 208 152C181.1 152 174.6 160 163.2 160C126.1 160 96 134.2 96 102.4V83.2C96 72.6 106 64 118.4 64zM360 128H472C476.4 128 480 131.6 480 136V152C480 156.4 476.4 160 472 160H360C355.6 160 352 156.4 352 152V136C352 131.6 355.6 128 360 128zM360 192H472C476.4 192 480 195.6 480 200V216C480 220.4 476.4 224 472 224H360C355.6 224 352 220.4 352 216V200C352 195.6 355.6 192 360 192zM360 256H472C476.4 256 480 259.6 480 264V280C480 284.4 476.4 288 472 288H360C355.6 288 352 284.4 352 280V264C352 259.6 355.6 256 360 256z" />
    +    <glyph glyph-name="angry"
    +      unicode="&#xF556;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM248 136C214.4 136 182.8 121.2 161.2 95.4C152.7 85.2 154.1 70.1 164.3 61.6S189.6 54.4 198.1 64.6C222.9 94.3 273.1 94.3 297.9 64.6C306 54.9 321.1 52.7 331.7 61.6C341.9 70.1 343.2 85.2 334.8 95.4C313.2 121.2 281.6 136 248 136zM200 208C210.3 208 219.9 214.7 223 225.1C226.8 237.8 219.6 251.2 206.9 255L126.9 279C114.1 282.9 100.8 275.6 97 262.9C93.2 250.2 100.4 236.8 113.1 233L141.3 224.5C138.2 219.6 136 214.1 136 207.9C136 190.2 150.3 175.9 168 175.9S200 190.3 200 208zM399 262.9C395.2 275.6 381.9 282.8 369.1 279L289.1 255C276.4000000000001 251.2 269.2000000000001 237.8 273 225.1C276.1 214.7 285.7 208 296 208C296 190.3 310.3 176 328 176S360 190.3 360 208C360 214.2 357.8 219.7 354.7 224.6L382.9 233.1C395.6 236.8 402.8 250.2 399 262.9z" />
    +    <glyph glyph-name="arrow-alt-circle-down"
    +      unicode="&#xF358;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM224 308V192H157C146.3 192 141 179.1 148.5 171.5L247.5 72.5C252.2 67.8 259.8 67.8 264.5 72.5L363.5 171.5C371.1 179.1 365.7 192 355 192H288V308C288 314.6 282.6 320 276 320H236C229.4 320 224 314.6 224 308z" />
    +    <glyph glyph-name="arrow-alt-circle-left"
    +      unicode="&#xF359;"
    +      horiz-adv-x="512" d=" M8 192C8 55 119 -56 256 -56S504 55 504 192S393 440 256 440S8 329 8 192zM456 192C456 81.5 366.5 -8 256 -8S56 81.5 56 192S145.5 392 256 392S456 302.5 456 192zM384 212V172C384 165.4 378.6 160 372 160H256V93C256 82.3 243.1 77 235.5 84.5L136.5 183.5C131.8 188.2 131.8 195.8 136.5 200.5L235.5 299.5C243.1 307.1 256 301.7 256 291V224H372C378.6 224 384 218.6 384 212z" />
    +    <glyph glyph-name="arrow-alt-circle-right"
    +      unicode="&#xF35A;"
    +      horiz-adv-x="512" d=" M504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192zM128 172V212C128 218.6 133.4 224 140 224H256V291C256 301.7 268.9 307 276.5 299.5L375.5 200.5C380.2 195.8 380.2 188.2 375.5 183.5L276.5 84.5C268.9 76.9 256 82.3 256 93V160H140C133.4 160 128 165.4 128 172z" />
    +    <glyph glyph-name="arrow-alt-circle-up"
    +      unicode="&#xF35B;"
    +      horiz-adv-x="512" d=" M256 -56C393 -56 504 55 504 192S393 440 256 440S8 329 8 192S119 -56 256 -56zM256 392C366.5 392 456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192S145.5 392 256 392zM276 64H236C229.4 64 224 69.4 224 76V192H157C146.3 192 141 204.9 148.5 212.5L247.5 311.5C252.2 316.2 259.8 316.2 264.5 311.5L363.5 212.5C371.1 204.9 365.7 192 355 192H288V76C288 69.4 282.6 64 276 64z" />
    +    <glyph glyph-name="bell-slash"
    +      unicode="&#xF1F6;"
    +      horiz-adv-x="640" d=" M633.99 -23.02L36 444.49C29.1 450.01 19.03 448.9 13.51 442L3.51 429.51C-2.02 422.61 -0.9 412.54 6 407.02L604 -60.49C610.9 -66.01 620.96 -64.89 626.49 -58L636.49 -45.51C642.01 -38.61 640.9 -28.54 633.99 -23.02zM163.53 80C180.24 102.03 198.01 135.8 204.93 190.58L159.46 226.13C156.19 135.4 122.99 105.45 104.62 85.71C98.62 79.2600000000001 95.96 71.55 96.01 64.0000000000001C96.12 47.6000000000001 108.99 32.0000000000001 128.11 32.0000000000001H407.7700000000001L346.3700000000001 80.0000000000001H163.53zM320 352C381.86 352 432 301.86 432 240C432 239.8 431.94 239.62 431.94 239.42C431.96 222.58 433.1 207.65 434.73 193.69L494.26 147.15C485.95 169.28 479.92 198.64 479.92 240C479.92 317.7 425.44 379.9 351.98 395.16V416C351.98 433.67 337.6600000000001 448 320 448S288.02 433.67 288.02 416V395.16C262 389.75 238.57 378.2200000000001 218.89 362.44L257.06 332.6C275 344.82 296.65 352 320 352zM320 -64C355.32 -64 383.9700000000001 -35.35 383.9700000000001 0H256.03C256.03 -35.35 284.68 -64 320 -64z" />
    +    <glyph glyph-name="bell"
    +      unicode="&#xF0F3;"
    +      horiz-adv-x="448" d=" M439.39 85.71C420.07 106.47 383.92 137.7 383.92 240C383.92 317.7 329.44 379.9 255.98 395.16V416C255.98 433.67 241.66 448 224 448S192.02 433.67 192.02 416V395.16C118.56 379.9 64.08 317.7 64.08 240C64.08 137.7 27.93 106.47 8.61 85.71C2.61 79.2600000000001 -0.05 71.55 0 64.0000000000001C0.11 47.6000000000001 12.98 32.0000000000001 32.1 32.0000000000001H415.9000000000001C435.0200000000001 32.0000000000001 447.9000000000001 47.6000000000001 448.0000000000001 64.0000000000001C448.0500000000001 71.5500000000001 445.3900000000001 79.27 439.3900000000001 85.71zM67.53 80C88.75 107.97 111.95 154.33 112.06 239.42C112.06 239.62 112 239.8 112 240C112 301.86 162.14 352 224 352S336 301.86 336 240C336 239.8 335.94 239.62 335.94 239.42C336.05 154.32 359.25 107.96 380.4700000000001 80H67.53zM224 -64C259.32 -64 287.9700000000001 -35.35 287.9700000000001 0H160.03C160.03 -35.35 188.68 -64 224 -64z" />
    +    <glyph glyph-name="bookmark"
    +      unicode="&#xF02E;"
    +      horiz-adv-x="384" d=" M336 448H48C21.49 448 0 426.51 0 400V-64L192 48L384 -64V400C384 426.51 362.51 448 336 448zM336 19.57L192 103.57L48 19.57V394A6 6 0 0 0 54 400H330C333.314 400 336 397.317 336 394.004V19.57z" />
    +    <glyph glyph-name="building"
    +      unicode="&#xF1AD;"
    +      horiz-adv-x="448" d=" M128 300V340C128 346.6 133.4 352 140 352H180C186.6 352 192 346.6 192 340V300C192 293.4 186.6 288 180 288H140C133.4 288 128 293.4 128 300zM268 288H308C314.6 288 320 293.4 320 300V340C320 346.6 314.6 352 308 352H268C261.4 352 256 346.6 256 340V300C256 293.4 261.4 288 268 288zM140 192H180C186.6 192 192 197.4 192 204V244C192 250.6 186.6 256 180 256H140C133.4 256 128 250.6 128 244V204C128 197.4 133.4 192 140 192zM268 192H308C314.6 192 320 197.4 320 204V244C320 250.6 314.6 256 308 256H268C261.4 256 256 250.6 256 244V204C256 197.4 261.4 192 268 192zM192 108V148C192 154.6 186.6 160 180 160H140C133.4 160 128 154.6 128 148V108C128 101.4 133.4 96 140 96H180C186.6 96 192 101.4 192 108zM268 96H308C314.6 96 320 101.4 320 108V148C320 154.6 314.6 160 308 160H268C261.4 160 256 154.6 256 148V108C256 101.4 261.4 96 268 96zM448 -28V-64H0V-28C0 -21.4 5.4 -16 12 -16H31.5V424C31.5 437.3 42.2 448 55.5 448H392.5C405.8 448 416.5 437.3 416.5 424V-16H436C442.6 -16 448 -21.4 448 -28zM79.5 -15H192V52C192 58.6 197.4 64 204 64H244C250.6 64 256 58.6 256 52V-15H368.5V399L80 400L79.5 -15z" />
    +    <glyph glyph-name="calendar-alt"
    +      unicode="&#xF073;"
    +      horiz-adv-x="448" d=" M148 160H108C101.4 160 96 165.4 96 172V212C96 218.6 101.4 224 108 224H148C154.6 224 160 218.6 160 212V172C160 165.4 154.6 160 148 160zM256 172V212C256 218.6 250.6 224 244 224H204C197.4 224 192 218.6 192 212V172C192 165.4 197.4 160 204 160H244C250.6 160 256 165.4 256 172zM352 172V212C352 218.6 346.6 224 340 224H300C293.4 224 288 218.6 288 212V172C288 165.4 293.4 160 300 160H340C346.6 160 352 165.4 352 172zM256 76V116C256 122.6 250.6 128 244 128H204C197.4 128 192 122.6 192 116V76C192 69.4 197.4 64 204 64H244C250.6 64 256 69.4 256 76zM160 76V116C160 122.6 154.6 128 148 128H108C101.4 128 96 122.6 96 116V76C96 69.4 101.4 64 108 64H148C154.6 64 160 69.4 160 76zM352 76V116C352 122.6 346.6 128 340 128H300C293.4 128 288 122.6 288 116V76C288 69.4 293.4 64 300 64H340C346.6 64 352 69.4 352 76zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
    +    <glyph glyph-name="calendar-check"
    +      unicode="&#xF274;"
    +      horiz-adv-x="448" d=" M400 384H352V436C352 442.627 346.627 448 340 448H300C293.373 448 288 442.627 288 436V384H160V436C160 442.627 154.627 448 148 448H108C101.373 448 96 442.627 96 436V384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H400C426.51 -64 448 -42.51 448 -16V336C448 362.51 426.51 384 400 384zM394 -16H54A6 6 0 0 0 48 -10V288H400V-10A6 6 0 0 0 394 -16zM341.151 184.65L198.842 43.481C194.137 38.814 186.539 38.844 181.871 43.549L106.78 119.248C102.113 123.953 102.143 131.551 106.848 136.219L129.567 158.755C134.272 163.422 141.87 163.392 146.537 158.686L190.641 114.225L301.713 224.406C306.418 229.073 314.016 229.043 318.6840000000001 224.3379999999999L341.2200000000001 201.62C345.887 196.9149999999999 345.8560000000001 189.317 341.151 184.65z" />
    +    <glyph glyph-name="calendar-minus"
    +      unicode="&#xF272;"
    +      horiz-adv-x="448" d=" M124 120C117.4 120 112 125.4 112 132V156C112 162.6 117.4 168 124 168H324C330.6 168 336 162.6 336 156V132C336 125.4 330.6 120 324 120H124zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
    +    <glyph glyph-name="calendar-plus"
    +      unicode="&#xF271;"
    +      horiz-adv-x="448" d=" M336 156V132C336 125.4 330.6 120 324 120H248V44C248 37.4 242.6 32 236 32H212C205.4 32 200 37.4 200 44V120H124C117.4 120 112 125.4 112 132V156C112 162.6 117.4 168 124 168H200V244C200 250.6 205.4 256 212 256H236C242.6 256 248 250.6 248 244V168H324C330.6 168 336 162.6 336 156zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
    +    <glyph glyph-name="calendar-times"
    +      unicode="&#xF273;"
    +      horiz-adv-x="448" d=" M311.7 73.3L294.7 56.3C290 51.6 282.4 51.6 277.7 56.3L224 110.1L170.3 56.4C165.6 51.7 158 51.7 153.3 56.4L136.3 73.4C131.6 78.1 131.6 85.7000000000001 136.3 90.4L190 144.1L136.3 197.8C131.6 202.5 131.6 210.1 136.3 214.8L153.3 231.8C158 236.5 165.6 236.5 170.3 231.8L224 178.1L277.7 231.8C282.4 236.5 290 236.5 294.7 231.8L311.7 214.8C316.4 210.1 316.4 202.5 311.7 197.8L257.9 144L311.6 90.3C316.4 85.6 316.4 78 311.7 73.3zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
    +    <glyph glyph-name="calendar"
    +      unicode="&#xF133;"
    +      horiz-adv-x="448" d=" M400 384H352V436C352 442.6 346.6 448 340 448H300C293.4 448 288 442.6 288 436V384H160V436C160 442.6 154.6 448 148 448H108C101.4 448 96 442.6 96 436V384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V336C448 362.5 426.5 384 400 384zM394 -16H54C50.7 -16 48 -13.3 48 -10V288H400V-10C400 -13.3 397.3 -16 394 -16z" />
    +    <glyph glyph-name="caret-square-down"
    +      unicode="&#xF150;"
    +      horiz-adv-x="448" d=" M125.1 240H322.9C333.6 240 339 227 331.4 219.5L232.5 121.2C227.8 116.5 220.3 116.5 215.6 121.2L116.7 219.5C109 227 114.4 240 125.1 240zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
    +    <glyph glyph-name="caret-square-left"
    +      unicode="&#xF191;"
    +      horiz-adv-x="448" d=" M272 290.9V93.1C272 82.4 259 77 251.5 84.6L153.2 183.5C148.5 188.2 148.5 195.7 153.2 200.4L251.5 299.3C259 307 272 301.6 272 290.9zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
    +    <glyph glyph-name="caret-square-right"
    +      unicode="&#xF152;"
    +      horiz-adv-x="448" d=" M176 93.1V290.9C176 301.6 189 307 196.5 299.4L294.8 200.5C299.5 195.8 299.5 188.3 294.8 183.6L196.5 84.7000000000001C189 77.0000000000001 176 82.4 176 93.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
    +    <glyph glyph-name="caret-square-up"
    +      unicode="&#xF151;"
    +      horiz-adv-x="448" d=" M322.9 144H125.1C114.4 144 109 157 116.6 164.5L215.5 262.8C220.2 267.5 227.7 267.5 232.4 262.8L331.3 164.5C339 157 333.6 144 322.9000000000001 144zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
    +    <glyph glyph-name="chart-bar"
    +      unicode="&#xF080;"
    +      horiz-adv-x="512" d=" M396.8 96H419.2C425.6 96 432 102.4 432 108.8V339.2C432 345.6 425.6 352 419.2 352H396.8C390.4000000000001 352 384 345.6 384 339.2V108.8C384 102.4 390.4 96 396.8 96zM204.8 96H227.2C233.6 96 240.0000000000001 102.4 240.0000000000001 108.8V307.2C240.0000000000001 313.6 233.6 320 227.2 320H204.8C198.4 320 192 313.6 192 307.2V108.8C192 102.4 198.4 95.9999999999999 204.8 95.9999999999999zM300.8 96H323.2C329.6 96 336 102.4 336 108.8V243.2C336 249.6 329.6 256 323.2 256H300.8C294.4000000000001 256 288 249.6 288 243.2V108.8C288 102.4 294.4 95.9999999999999 300.8 95.9999999999999zM496 48H48V368C48 376.8400000000001 40.84 384 32 384H16C7.16 384 0 376.8400000000001 0 368V32C0 14.33 14.33 0 32 0H496C504.84 0 512 7.16 512 16V32C512 40.84 504.84 48 496 48zM108.8 96H131.2C137.6 96 144 102.4 144 108.8V179.2000000000001C144 185.6 137.6 192.0000000000001 131.2 192.0000000000001H108.8C102.4 192.0000000000001 96 185.6000000000001 96 179.2000000000001V108.8000000000001C96 102.4000000000001 102.4 96.0000000000001 108.8 96.0000000000001z" />
    +    <glyph glyph-name="check-circle"
    +      unicode="&#xF058;"
    +      horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8C145.468 -8 56 81.451 56 192C56 302.532 145.451 392 256 392M396.204 261.733L373.668 284.451C369.0010000000001 289.156 361.403 289.187 356.698 284.519L215.346 144.303L155.554 204.58C150.887 209.285 143.289 209.316 138.584 204.649L115.865 182.113C111.16 177.446 111.129 169.848 115.797 165.142L206.578 73.6259999999999C211.245 68.9209999999999 218.843 68.8899999999999 223.548 73.5579999999999L396.1370000000001 244.762C400.8410000000001 249.43 400.8710000000001 257.0279999999999 396.2040000000001 261.733z" />
    +    <glyph glyph-name="check-square"
    +      unicode="&#xF14A;"
    +      horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM400 16H48V368H400V16zM364.136 257.724L191.547 86.52C186.842 81.853 179.244 81.883 174.577 86.588L83.796 178.104C79.129 182.809 79.159 190.407 83.865 195.075L106.584 217.611C111.289 222.278 118.887 222.248 123.554 217.542L183.346 157.265L324.698 297.481C329.403 302.148 337.001 302.118 341.668 297.413L364.204 274.695C368.871 269.9890000000001 368.841 262.391 364.136 257.724z" />
    +    <glyph glyph-name="circle"
    +      unicode="&#xF111;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8z" />
    +    <glyph glyph-name="clipboard"
    +      unicode="&#xF328;"
    +      horiz-adv-x="384" d=" M336 384H256C256 419.29 227.29 448 192 448S128 419.29 128 384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V336C384 362.51 362.51 384 336 384zM330 -16H54A6 6 0 0 0 48 -10V330A6 6 0 0 0 54 336H96V300C96 293.373 101.373 288 108 288H276C282.627 288 288 293.373 288 300V336H330A6 6 0 0 0 336 330V-10A6 6 0 0 0 330 -16zM192 408C205.255 408 216 397.255 216 384S205.255 360 192 360S168 370.745 168 384S178.745 408 192 408" />
    +    <glyph glyph-name="clock"
    +      unicode="&#xF017;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM317.8 96.4L232.9 158.1C229.8 160.4 228 164 228 167.8V332C228 338.6 233.4 344 240 344H272C278.6 344 284 338.6 284 332V190.3L350.8 141.7C356.2 137.8 357.3 130.3 353.4000000000001 124.9L334.6 99C330.7000000000001 93.7 323.2000000000001 92.5 317.8 96.4z" />
    +    <glyph glyph-name="clone"
    +      unicode="&#xF24D;"
    +      horiz-adv-x="512" d=" M464 448H144C117.49 448 96 426.51 96 400V352H48C21.49 352 0 330.51 0 304V-16C0 -42.51 21.49 -64 48 -64H368C394.51 -64 416 -42.51 416 -16V32H464C490.51 32 512 53.49 512 80V400C512 426.51 490.51 448 464 448zM362 -16H54A6 6 0 0 0 48 -10V298A6 6 0 0 0 54 304H96V80C96 53.49 117.49 32 144 32H368V-10A6 6 0 0 0 362 -16zM458 80H150A6 6 0 0 0 144 86V394A6 6 0 0 0 150 400H458A6 6 0 0 0 464 394V86A6 6 0 0 0 458 80z" />
    +    <glyph glyph-name="closed-captioning"
    +      unicode="&#xF20A;"
    +      horiz-adv-x="512" d=" M464 384H48C21.5 384 0 362.5 0 336V48C0 21.5 21.5 0 48 0H464C490.5 0 512 21.5 512 48V336C512 362.5 490.5 384 464 384zM458 48H54C50.7 48 48 50.7 48 54V330C48 333.3 50.7 336 54 336H458C461.3 336 464 333.3 464 330V54C464 50.7 461.3 48 458 48zM246.9 133.7C248.6 131.3 248.4 128.1 246.4 126C192.8 69.2 73.6 93.9 73.6 193.9C73.6 291.2 195.3 313.4 246.1 264C248.2 262 248.6 260.8 247.1 258.3L229.6 227.8C227.7 224.7 223.4 223.8 220.5 226.1C179.7 258.1 125.9 241.0000000000001 125.9 194.9C125.9 146.9 176.9 124.4 218.1 162.3C220.9 164.8 225.2 164.4 227.3 161.4L246.9 133.7000000000001zM437.3 133.7C439 131.3 438.8 128.1 436.8 126C383.2 69.1 264 93.9 264 193.9C264 291.2 385.7 313.4 436.5 264C438.6 262 439 260.8 437.5 258.3L420 227.8C418.1 224.7 413.8 223.8 410.9 226.1C370.1 258.1 316.3 241.0000000000001 316.3 194.9C316.3 146.9 367.3 124.4 408.5 162.3C411.3 164.8 415.6 164.4 417.7 161.4L437.3 133.7000000000001z" />
    +    <glyph glyph-name="comment-alt"
    +      unicode="&#xF27A;"
    +      horiz-adv-x="512" d=" M448 448H64C28.7 448 0 419.3 0 384V96C0 60.7 28.7 32 64 32H160V-52C160 -59.1 165.8 -64 172 -64C174.4 -64 176.9 -63.3 179.1 -61.6L304 32H448C483.3 32 512 60.7 512 96V384C512 419.3 483.3 448 448 448zM464 96C464 87.2 456.8 80 448 80H288L275.2 70.4L208 20V80H64C55.2 80 48 87.2 48 96V384C48 392.8 55.2 400 64 400H448C456.8 400 464 392.8 464 384V96z" />
    +    <glyph glyph-name="comment-dots"
    +      unicode="&#xF4AD;"
    +      horiz-adv-x="512" d=" M144 240C126.3 240 112 225.7 112 208S126.3 176 144 176S176 190.3 176 208S161.7 240 144 240zM256 240C238.3 240 224 225.7 224 208S238.3 176 256 176S288 190.3 288 208S273.7 240 256 240zM368 240C350.3 240 336 225.7 336 208S350.3 176 368 176S400 190.3 400 208S385.7 240 368 240zM256 416C114.6 416 0 322.9 0 208C0 160.4 19.9 116.8 52.9 81.7C38 42.3 7 8.9 6.5 8.5C-0.1 1.5 -1.9 -8.7 1.9 -17.5S14.4 -32 24 -32C85.5 -32 134 -6.3 163.1 14.3C192 5.2 223.2 0 256 0C397.4 0 512 93.1 512 208S397.4 416 256 416zM256 48C229.3 48 202.9 52.1 177.6 60.1L154.9 67.3L135.4 53.5C121.1 43.4 101.5 32.1 77.9 24.5C85.2 36.6 92.3 50.2 97.8 64.7L108.4 92.8L87.8 114.6C69.7 133.9 48 165.8 48 208C48 296.2 141.3 368 256 368S464 296.2 464 208S370.7 48 256 48z" />
    +    <glyph glyph-name="comment"
    +      unicode="&#xF075;"
    +      horiz-adv-x="512" d=" M256 416C114.6 416 0 322.9 0 208C0 160.4 19.9 116.8 52.9 81.7C38 42.3 7 8.9 6.5 8.5C-0.1 1.5 -1.9 -8.7 1.9 -17.5S14.4 -32 24 -32C85.5 -32 134 -6.3 163.1 14.3C192 5.2 223.2 0 256 0C397.4 0 512 93.1 512 208S397.4 416 256 416zM256 48C229.3 48 202.9 52.1 177.6 60.1L154.9 67.3L135.4 53.5C121.1 43.4 101.5 32.1 77.9 24.5C85.2 36.6 92.3 50.2 97.8 64.7L108.4 92.8L87.8 114.6C69.7 133.9 48 165.8 48 208C48 296.2 141.3 368 256 368S464 296.2 464 208S370.7 48 256 48z" />
    +    <glyph glyph-name="comments"
    +      unicode="&#xF086;"
    +      horiz-adv-x="576" d=" M532 61.8C559.5 88.9 576 122.9 576 160C576 240 499.5 306.1 399.8 317.9C368.3 375.5 294.3 416 208 416C93.1 416 0 344.4 0 256C0 219 16.5 185 44 157.8C28.7 127.1 6.7 103.3 6.3 102.9C0 96.2000000000001 -1.8 86.4 1.9 77.9C5.5 69.4 13.9 63.9 23.1 63.9C76.6 63.9 119.8 84.1 148.3 102.7000000000001C157.5 100.6 167 99.0000000000001 176.7 97.8000000000001C208.1 40.4 281.8 0 368 0C388.8 0 408.8 2.4 427.8 6.8C456.3 -11.7 499.4 -32 553 -32C562.2 -32 570.5 -26.5 574.2 -18C577.8000000000001 -9.5 576.1 0.3 569.8000000000001 7C569.4000000000001 7.3 547.3000000000001 31.1 532.0000000000001 61.8zM139.2 154.1L122.1 143C108 133.9 93.6 126.7 79 121.6C81.7 126.3 84.4 131.3 87 136.4L102.5 167.5000000000001L77.7 192C64.2 205.4 48 227.3 48 256C48 316.7 121.3 368 208 368S368 316.7 368 256S294.7 144 208 144C191.5 144 175 145.9 159 149.6L139.2 154.1zM498.3 96L473.6 71.6L489.1 40.5C491.7 35.4 494.4 30.4 497.1 25.7C482.5 30.8 468.1 38 454 47.1L436.9 58.2L417 53.6C401 49.9 384.5 47.9999999999999 368 47.9999999999999C314 47.9999999999999 265.8 68.1 236.7 97.6999999999999C338 108.5 416 175.1 416 256C416 259.4 415.6 262.7 415.3 266C479.7 251.5 528 209.2 528 160C528 131.3 511.8 109.4 498.3 96z" />
    +    <glyph glyph-name="compass"
    +      unicode="&#xF14E;"
    +      horiz-adv-x="496" d=" M347.94 318.14L203.6 252.17A31.938 31.938 0 0 1 187.83 236.4L121.86 92.06C114.25 75.41 131.4 58.2499999999999 148.06 65.86L292.4 131.8299999999999A31.938 31.938 0 0 1 308.17 147.5999999999999L374.14 291.94C381.75 308.5999999999999 364.6 325.7499999999999 347.94 318.1399999999999zM270.58 169.42C258.11 156.9499999999999 237.89 156.9499999999999 225.42 169.42C212.95 181.89 212.95 202.11 225.42 214.58C237.89 227.05 258.11 227.05 270.58 214.58C283.05 202.11 283.05 181.89 270.58 169.42zM248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 -8C137.72 -8 48 81.72 48 192S137.72 392 248 392S448 302.28 448 192S358.28 -8 248 -8z" />
    +    <glyph glyph-name="copy"
    +      unicode="&#xF0C5;"
    +      horiz-adv-x="448" d=" M433.941 382.059L382.059 433.941A48 48 0 0 1 348.118 448H176C149.49 448 128 426.51 128 400V352H48C21.49 352 0 330.51 0 304V-16C0 -42.51 21.49 -64 48 -64H272C298.51 -64 320 -42.51 320 -16V32H400C426.51 32 448 53.49 448 80V348.118A48 48 0 0 1 433.941 382.059zM266 -16H54A6 6 0 0 0 48 -10V298A6 6 0 0 0 54 304H128V80C128 53.49 149.49 32 176 32H272V-10A6 6 0 0 0 266 -16zM394 80H182A6 6 0 0 0 176 86V394A6 6 0 0 0 182 400H288V312C288 298.745 298.745 288 312 288H400V86A6 6 0 0 0 394 80zM400 336H336V400H345.632C347.223 400 348.749 399.368 349.875 398.243L398.243 349.875A6 6 0 0 0 400 345.632V336z" />
    +    <glyph glyph-name="copyright"
    +      unicode="&#xF1F9;"
    +      horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 -8C145.468 -8 56 81.451 56 192C56 302.531 145.451 392 256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8zM363.351 93.064C353.737 83.352 317.8210000000001 51.668 259.286 51.668C176.856 51.668 118.802 113.093 118.802 193.235C118.802 272.387 179.077 332.636 258.564 332.636C314.095 332.636 347.302 306.016 356.157 297.857A11.965 11.965 0 0 0 358.093 282.535L339.938 254.422C336.097 248.472 327.972 247.14 322.439 251.501C313.844 258.277 290.625 274.039 260.731 274.039C212.428 274.039 182.815 238.709 182.815 193.957C182.815 152.368 209.703 110.265 261.092 110.265C293.749 110.265 317.935 129.304 326.818 137.49C332.088 142.347 340.414 141.529 344.638 135.752L364.503 108.582A11.947000000000001 11.947000000000001 0 0 0 363.351 93.064z" />
    +    <glyph glyph-name="credit-card"
    +      unicode="&#xF09D;"
    +      horiz-adv-x="576" d=" M527.9 416H48.1C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48.1 -32H527.9C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 527.9 416zM54.1 368H521.9C525.1999999999999 368 527.9 365.3 527.9 362V320H48.1V362C48.1 365.3 50.8 368 54.1 368zM521.9 16H54.1C50.8 16 48.1 18.7 48.1 22V192H527.9V22C527.9 18.7 525.1999999999999 16 521.9 16zM192 116V76C192 69.4 186.6 64 180 64H108C101.4 64 96 69.4 96 76V116C96 122.6 101.4 128 108 128H180C186.6 128 192 122.6 192 116zM384 116V76C384 69.4 378.6 64 372 64H236C229.4 64 224 69.4 224 76V116C224 122.6 229.4 128 236 128H372C378.6 128 384 122.6 384 116z" />
    +    <glyph glyph-name="dizzy"
    +      unicode="&#xF567;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM214.2 209.9C222 217.7 222 230.4 214.2 238.2L196.3 256L214.2 273.9C222 281.7000000000001 222 294.4 214.2 302.2000000000001C206.4 310 193.7 310 185.9 302.2000000000001L168 284.3L150.2 302.1C142.4 309.9000000000001 129.7 309.9000000000001 121.9 302.1C114.1 294.3 114.1 281.6 121.9 273.8L139.8 255.9L121.9 238C114.1 230.2 114.1 217.5 121.9 209.7C129.7 201.9 142.4 201.9 150.2 209.7L168 227.5L185.8 209.7C193.7 202 206.3 202 214.2 209.9zM374.2 302.1C366.4 309.9000000000001 353.7 309.9000000000001 345.9 302.1L328 284.3L310.2 302.1C302.4 309.9000000000001 289.7 309.9000000000001 281.9 302.1C274.1 294.3 274.1 281.6 281.9 273.8L299.8 255.9L281.9 238C274.1 230.2 274.1 217.5 281.9 209.7C289.7 201.9 302.4 201.9 310.2 209.7L328 227.5L345.8 209.7C353.6 201.9 366.3 201.9 374.1 209.7C381.9000000000001 217.5 381.9000000000001 230.2 374.1 238L356.3 256L374.2 273.9C381.9 281.7000000000001 381.9 294.3 374.2 302.1zM248 176C212.7 176 184 147.3 184 112S212.7 48 248 48S312 76.7 312 112S283.3 176 248 176z" />
    +    <glyph glyph-name="dot-circle"
    +      unicode="&#xF192;"
    +      horiz-adv-x="512" d=" M256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8C145.468 -8 56 81.451 56 192C56 302.532 145.451 392 256 392M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 272C211.817 272 176 236.183 176 192S211.817 112 256 112S336 147.817 336 192S300.183 272 256 272z" />
    +    <glyph glyph-name="edit"
    +      unicode="&#xF044;"
    +      horiz-adv-x="576" d=" M402.3 103.1L434.3 135.1C439.3 140.1 448 136.6 448 129.4V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H321.5C328.6 384 332.2 375.4 327.2 370.3L295.2 338.3C293.7 336.8 291.7 336 289.5 336H48V-16H400V97.5C400 99.6 400.8 101.6 402.3 103.1zM558.9 304.9000000000001L296.3 42.3L205.9 32.3C179.7 29.4 157.4 51.5 160.3 77.9L170.3 168.3000000000001L432.9 430.9C455.8 453.8 492.8 453.8 515.6 430.9L558.8000000000001 387.7C581.7 364.8 581.7 327.7 558.9000000000001 304.9zM460.1 274L402 332.1L216.2 146.2L208.9 80.9L274.2 88.2L460.1 274zM524.9 353.7L481.7 396.9C477.6 401 470.9 401 466.9 396.9L436 366L494.1 307.9L525 338.8C529 343 529 349.6 524.9 353.7000000000001z" />
    +    <glyph glyph-name="envelope-open"
    +      unicode="&#xF2B6;"
    +      horiz-adv-x="512" d=" M494.586 283.4840000000001C489.889 287.367 382.863 373.4340000000001 359.3350000000001 392.141C337.231 409.809 299.437 448 256 448C212.795 448 175.364 410.283 152.665 392.141C128.202 372.6910000000001 21.595 286.9460000000001 17.515 283.592A48.004000000000005 48.004000000000005 0 0 1 0 246.515V-16C0 -42.51 21.49 -64 48 -64H464C490.51 -64 512 -42.51 512 -16V246.491A48 48 0 0 1 494.586 283.4840000000001zM464 -10A6 6 0 0 0 458 -16H54A6 6 0 0 0 48 -10V243.653C48 245.466 48.816 247.179 50.226 248.318C66.096 261.132 159.019 335.872 182.59 354.611C200.755 369.12 232.398 400 256 400C279.693 400 311.857 368.631 329.41 354.611C352.983 335.87 445.913 261.118 461.776 248.295A5.99 5.99 0 0 0 463.9999999999999 243.632V-10zM432.009 177.704C436.2580000000001 172.545 435.474 164.909 430.264 160.723C401.289 137.44 370.99 113.126 359.3350000000001 103.86C336.636 85.717 299.205 48 256 48C212.548 48 174.713 86.237 152.665 103.86C141.386 112.827 110.921 137.273 81.738 160.725C76.528 164.912 75.745 172.547 79.993 177.706L95.251 196.234C99.429 201.307 106.908 202.077 112.03 197.96C140.648 174.959 170.596 150.925 182.59 141.389C200.143 127.369 232.307 96 256 96C279.602 96 311.246 126.88 329.41 141.389C341.404 150.924 371.354 174.959 399.973 197.957C405.095 202.073 412.574 201.303 416.751 196.23L432.009 177.704z" />
    +    <glyph glyph-name="envelope"
    +      unicode="&#xF0E0;"
    +      horiz-adv-x="512" d=" M464 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V336C512 362.51 490.51 384 464 384zM464 336V295.195C441.578 276.936 405.832 248.544 329.413 188.705C312.572 175.458 279.212 143.633 256 144.004C232.792 143.629 199.421 175.463 182.587 188.705C106.18 248.535 70.425 276.933 48 295.195V336H464zM48 48V233.602C70.914 215.351 103.409 189.74 152.938 150.956C174.795 133.751 213.072 95.77 256 96.001C298.717 95.77 336.509 133.2000000000001 359.053 150.948C408.581 189.7310000000001 441.085 215.3490000000001 464 233.6010000000001V48H48z" />
    +    <glyph glyph-name="eye-slash"
    +      unicode="&#xF070;"
    +      horiz-adv-x="576" d=" M272.702 88.861C192.219 97.872 136.49 175.747 155.772 255.903L272.702 88.861zM288 56C185.444 56 95.908 110.701 48 192C69.755 228.917 100.1 260.342 136.344 283.658L108.803 323.0010000000001C67.001 295.766 31.921 259.259 6.646 216.369A47.999 47.999 0 0 1 6.646 167.63C63.004 71.994 168.14 8 288 8A332.89 332.89 0 0 1 327.648 10.367L295.627 56.111A284.16 284.16 0 0 0 288 56zM569.354 167.631C536.1220000000001 111.237 485.933 65.889 425.8000000000001 38.139L473.9160000000001 -30.601C477.717 -36.03 476.3960000000001 -43.513 470.967 -47.313L450.23 -61.83C444.8010000000001 -65.631 437.3180000000001 -64.3099999999999 433.5180000000001 -58.881L102.084 414.601C98.283 420.03 99.604 427.513 105.033 431.313L125.77 445.83C131.199 449.631 138.682 448.31 142.482 442.881L198.008 363.556C226.612 371.657 256.808 376 288 376C407.86 376 512.996 312.006 569.354 216.369A48.00200000000001 48.00200000000001 0 0 0 569.354 167.631zM528 192C483.843 266.933 404.323 319.27 311.838 327.007C302.042 316.9220000000001 296 303.17 296 288C296 257.072 321.072 232 352 232S408 257.072 408 288L407.999 288.0420000000001C438.6310000000001 230.765 424.738 157.7820000000001 371.0710000000001 116.323L397.766 78.188C452.626 101.449 498.308 141.614 528 192z" />
    +    <glyph glyph-name="eye"
    +      unicode="&#xF06E;"
    +      horiz-adv-x="576" d=" M569.354 216.369C512.97 312.051 407.81 376 288 376C168.14 376 63.004 312.006 6.646 216.369A47.999 47.999 0 0 1 6.646 167.63C63.031 71.949 168.19 8 288 8C407.86 8 512.996 71.994 569.354 167.631A47.997 47.997 0 0 1 569.354 216.369zM288 56C185.444 56 95.909 110.701 48 192C92.157 266.933 171.677 319.27 264.1620000000001 327.007C273.9580000000001 316.9220000000001 280 303.17 280 288C280 257.072 254.928 232 224 232S168 257.072 168 288L168.001 288.0420000000001C157.794 268.957 152 247.156 152 224C152 148.889 212.889 88 288 88S424 148.889 424 224C424 255.031 413.6 283.629 396.105 306.515C451.704 283.362 498.009 242.894 528 192C480.092 110.701 390.5560000000001 56 288 56z" />
    +    <glyph glyph-name="file-alt"
    +      unicode="&#xF15C;"
    +      horiz-adv-x="384" d=" M288 200V172C288 165.4 282.6 160 276 160H108C101.4 160 96 165.4 96 172V200C96 206.6 101.4 212 108 212H276C282.6 212 288 206.6 288 200zM276 128H108C101.4 128 96 122.6 96 116V88C96 81.4 101.4 76 108 76H276C282.6 76 288 81.4 288 88V116C288 122.6 282.6 128 276 128zM384 316.1V-16C384 -42.5 362.5 -64 336 -64H48C21.5 -64 0 -42.5 0 -16V400C0 426.5 21.5 448 48 448H252.1C264.8 448 277 442.9 286 433.9L369.9 350C378.9 341.1 384 328.8 384 316.1zM256 396.1V320H332.1L256 396.1zM336 -16V272H232C218.7 272 208 282.7 208 296V400H48V-16H336z" />
    +    <glyph glyph-name="file-archive"
    +      unicode="&#xF1C6;"
    +      horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM256 396.118L332.118 320H256V396.118zM336 -16H48V400H127.714V384H159.714V400H208V296C208 282.745 218.745 272 232 272H336V-16zM192.27 352H160.27V384H192.27V352zM160.27 352V320H128.27V352H160.27zM160.27 288V256H128.27V288H160.27zM192.27 288H160.27V320H192.27V288zM194.179 182.322A12 12 0 0 1 182.406 192H160.27V224H128.27V192L108.58 94.894C101.989 62.389 126.834 32 160 32C193.052 32 217.871 62.192 211.476 94.62L194.179 182.322zM160.27 57.927C142.352 57.927 127.826 70.032 127.826 84.963C127.826 99.895 142.351 111.999 160.27 111.999S192.714 99.894 192.714 84.963C192.714 70.032 178.188 57.927 160.27 57.927zM192.27 224H160.27V256H192.27V224z" />
    +    <glyph glyph-name="file-audio"
    +      unicode="&#xF1C7;"
    +      horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM192 60.024C192 49.333 179.074 43.979 171.515 51.539L136 87.514H108C101.373 87.514 96 92.887 96 99.514V155.514C96 162.141 101.373 167.514 108 167.514H136L171.515 204.461C179.075 212.021 192 206.667 192 195.976V60.024zM233.201 107.154C242.252 116.451 242.261 131.287 233.202 140.593C211.053 163.345 245.437 196.839 267.597 174.074C294.795 146.134 294.809 101.63 267.598 73.673C245.805 51.287 210.651 83.988 233.201 107.154z" />
    +    <glyph glyph-name="file-code"
    +      unicode="&#xF1C9;"
    +      horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM149.677 99.115L116.854 128L149.676 156.885A8.793 8.793 0 0 1 150.281 169.509L132.878 188.073C129.494 191.686 123.914 191.735 120.44 188.4740000000001L62.78 134.42C59.077 130.946 59.076 125.053 62.781 121.5800000000001L120.44 67.525A8.738 8.738 0 0 1 126.452 65.1440000000001A8.746 8.746 0 0 1 132.879 67.9260000000001L150.282 86.489A8.795 8.795 0 0 1 149.677 99.115zM233.961 226.965L209.56 234.049A8.796 8.796 0 0 1 198.655 228.051L144.04 39.939C142.687 35.279 145.378 30.387 150.038 29.0340000000001L174.441 21.95C179.121 20.595 183.998 23.304 185.346 27.948L239.958 216.06C241.312 220.72 238.621 225.612 233.961 226.9650000000001zM321.219 134.42L263.561 188.475C260.035 191.7820000000001 254.462 191.6400000000001 251.122 188.074L233.719 169.511A8.795 8.795 0 0 1 234.324 156.886L267.146 128L234.324 99.115A8.793 8.793 0 0 1 233.719 86.491L251.122 67.927A8.797 8.797 0 0 1 263.5610000000001 67.526H263.5600000000001L321.2200000000001 121.581C324.923 125.054 324.923 130.947 321.2190000000001 134.42z" />
    +    <glyph glyph-name="file-excel"
    +      unicode="&#xF1C3;"
    +      horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM260 224H231.2C226.8 224 222.8 221.6 220.7 217.7C202.7 184.6 198.5 175.3 192.1 160C178.2 189.1 185.2 177.3 163.5 217.7C161.4 221.6 157.3 224 152.9 224H124C114.7 224 109 214 113.6 206L159.9 128L113.6 50C108.9 42 114.7 32 124 32H152.9C157.3 32 161.3 34.4 163.4 38.3C185.1 78.3 186.4 83.3 192 96C206.9 65.8 197.9 80.1 220.6 38.3C222.7 34.4 226.8 32 231.2 32H260C269.3 32 275 42 270.4 50L224 128C224.7 129.1 254.3 178.5 270.3 206C275 214 269.2 224 260 224z" />
    +    <glyph glyph-name="file-image"
    +      unicode="&#xF1C5;"
    +      horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM80 32H304V160L280.5 183.5C275.8 188.2 268.2 188.2 263.5 183.5L176 96L136.5 135.5C131.8 140.2 124.2 140.2 119.5 135.5L80 96V32zM128 272C101.5 272 80 250.5 80 224S101.5 176 128 176S176 197.5 176 224S154.5 272 128 272z" />
    +    <glyph glyph-name="file-pdf"
    +      unicode="&#xF1C1;"
    +      horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM298.2 127.7C286 139.7 251.2 136.4 233.8 134.2C216.6 144.7 205.1 159.2 197 180.5C200.9 196.6 207.1 221.1 202.4 236.5C198.2 262.7 164.6 260.1 159.8 242.4C155.4 226.3 159.4 203.9 166.8 175.3C156.8 151.4 141.9 119.3 131.4 100.9C111.4 90.6 84.4 74.7 80.4 54.7C77.1 38.9 106.4 -0.5 156.5 85.9C178.9 93.3 203.3 102.4 224.9 106C243.8 95.8 265.9 89 280.7 89C306.2 89 308.7 117.2 298.2 127.7zM100.1 49.9C105.2 63.6 124.6 79.4 130.5 84.9C111.5 54.6 100.1 49.2 100.1 49.9zM181.7 240.5C189.1 240.5 188.4 208.4 183.5 199.7C179.1 213.6 179.2 240.5 181.7 240.5zM157.3 103.9C167 120.8 175.3 140.9 182 158.6C190.3 143.5 200.9 131.4 212.1 123.1C191.3 118.8 173.2 109.9999999999999 157.3 103.9zM288.9 108.9S283.9 102.9 251.6 116.7C286.7 119.3 292.5 111.3 288.9 108.9z" />
    +    <glyph glyph-name="file-powerpoint"
    +      unicode="&#xF1C4;"
    +      horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM120 44V212C120 218.6 125.4 224 132 224H201.2C237.9 224 264 197 264 157.7C264 83.4 195.3 91.2 168.5 91.2V44C168.5 37.4 163.1 32 156.5 32H132C125.4 32 120 37.4 120 44zM168.5 131.4H191.5C199.4 131.4 205.4 133.8 209.6 138.6C218.1 148.4 218 167.1 209.7 176.4C205.6 181 199.8 183.4 192.3 183.4H168.4V131.4z" />
    +    <glyph glyph-name="file-video"
    +      unicode="&#xF1C8;"
    +      horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM276.687 195.303L224 142.626V180C224 191.046 215.046 200 204 200H100C88.954 200 80 191.046 80 180V76C80 64.954 88.954 56 100 56H204C215.046 56 224 64.954 224 76V113.374L276.687 60.7000000000001C286.704 50.682 304 57.72 304 72.014V183.989C304 198.3 286.691 205.308 276.687 195.303z" />
    +    <glyph glyph-name="file-word"
    +      unicode="&#xF1C2;"
    +      horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM268.1 192C262.4000000000001 192 257.5 188 256.4000000000001 182.5C235.8000000000001 84.8 236.0000000000001 87.1 235.4000000000001 79C235.2000000000001 80.2 235.0000000000001 81.6 234.7000000000001 83.3C233.9000000000001 88.4 235.0000000000001 83.1 211.1000000000001 182.8C209.8000000000001 188.2 205.0000000000001 192 199.4000000000001 192H186.1000000000001C180.6000000000001 192 175.8000000000001 188.2 174.4000000000001 182.9C150.0000000000001 83.9 150.4000000000001 86.7 149.6000000000001 79.2C149.5000000000001 80.3 149.4000000000001 81.7 149.1000000000001 83.4C148.4000000000001 88.6 135.0000000000001 156.7 130.0000000000001 182.4C128.9000000000001 188 124.0000000000001 192.1 118.2000000000001 192.1H101.4000000000001C93.6000000000001 192.1 87.9000000000001 184.8 89.7000000000001 177.3C97.7000000000001 144.6999999999999 116.4000000000001 67.8 122.9000000000001 41.3C124.2000000000001 35.9 129.0000000000001 32.1999999999999 134.6000000000001 32.1999999999999H159.8000000000001C165.3000000000001 32.1999999999999 170.1000000000001 35.8999999999999 171.4 41.3L189.3000000000001 112.6999999999999C190.8000000000001 118.8999999999999 191.8000000000001 124.6999999999999 192.3000000000001 130L195.2000000000001 112.6999999999999C195.3000000000001 112.3 207.8000000000001 62.1999999999999 213.1000000000001 41.3C214.4000000000001 35.9999999999999 219.2000000000001 32.1999999999999 224.7000000000001 32.1999999999999H249.4000000000001C254.9000000000001 32.1999999999999 259.7000000000001 35.8999999999999 261.0000000000001 41.3C281.8000000000001 123.1999999999999 291.2000000000001 160.3 295.5000000000001 177.3C297.4000000000001 184.9 291.7000000000001 192.2 283.9000000000001 192.2H268.1z" />
    +    <glyph glyph-name="file"
    +      unicode="&#xF15B;"
    +      horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48z" />
    +    <glyph glyph-name="flag"
    +      unicode="&#xF024;"
    +      horiz-adv-x="512" d=" M336.174 368C287.042 368 242.869 400 174.261 400C142.96 400 115.958 393.5180000000001 93.54 384.832A48.04 48.04 0 0 1 95.682 405.559C93.067 428.425 74.167 446.406 51.201 447.896C23.242 449.71 0 427.569 0 400C0 382.236 9.657 366.738 24 358.438V-48C24 -56.837 31.163 -64 40 -64H56C64.837 -64 72 -56.837 72 -48V35.443C109.869 52.72 143.259 64 199.826 64C248.958 64 293.131 32 361.7390000000001 32C420.218 32 463.711 54.617 490.287 71.981C503.846 80.839 512 95.949 512 112.145V352.063C512 386.522 476.736 409.831 445.096 396.18C409.193 380.6910000000001 371.641 368 336.174 368zM464 112C442.217 96.588 403.176 80 361.7390000000001 80C301.7940000000001 80 259.737 112 199.826 112C156.465 112 103.447 102.597 72 88V320C93.784 335.4120000000001 132.824 352 174.261 352C234.206 352 276.2630000000001 320 336.1740000000001 320C379.4450000000001 320 432.4940000000001 337.366 464 352V112z" />
    +    <glyph glyph-name="flushed"
    +      unicode="&#xF579;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM344 304C299.8 304 264 268.2 264 224S299.8 144 344 144S424 179.8 424 224S388.2 304 344 304zM344 176C317.5 176 296 197.5 296 224S317.5 272 344 272S392 250.5 392 224S370.5 176 344 176zM344 248C330.7 248 320 237.3 320 224S330.7 200 344 200S368 210.7 368 224S357.3 248 344 248zM232 224C232 268.2 196.2 304 152 304S72 268.2 72 224S107.8 144 152 144S232 179.8 232 224zM152 176C125.5 176 104 197.5 104 224S125.5 272 152 272S200 250.5 200 224S178.5 176 152 176zM152 248C138.7 248 128 237.3 128 224S138.7 200 152 200S176 210.7 176 224S165.3 248 152 248zM312 104H184C170.8 104 160 93.2 160 80S170.8 56 184 56H312C325.2 56 336 66.8 336 80S325.2 104 312 104z" />
    +    <glyph glyph-name="folder-open"
    +      unicode="&#xF07C;"
    +      horiz-adv-x="576" d=" M527.943 224H480V272C480 298.51 458.51 320 432 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H448A48.001 48.001 0 0 1 488.704 22.56L568.646 150.56C588.5939999999999 182.477 565.608 224 527.943 224zM54 336H188.118L252.118 272H426A6 6 0 0 0 432 266V224H152A48 48 0 0 1 110.902 200.798L48 96.551V330.007A5.993 5.993 0 0 0 54 336zM448 48H72L149.234 176H528L448 48z" />
    +    <glyph glyph-name="folder"
    +      unicode="&#xF07B;"
    +      horiz-adv-x="512" d=" M464 320H272L217.37 374.63C211.37 380.63 203.23 384 194.74 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V272C512 298.51 490.51 320 464 320zM464 48H48V336H188.12L242.75 281.37C248.75 275.37 256.89 272 265.38 272H464V48z" />
    +    <glyph glyph-name="frown-open"
    +      unicode="&#xF57A;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM200 240C200 257.7 185.7 272 168 272S136 257.7 136 240S150.3 208 168 208S200 222.3 200 240zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM248 160C212.4 160 159.2 138.7 152.2 98.8C150.2 87 161.2 77.3 172.7 80.7C203.9 90.3 232.1 96 248 96S292.1 90.3 323.3 80.7C334.7 77.2 345.8 87 343.8 98.8C336.8 138.7 283.6 160 248 160z" />
    +    <glyph glyph-name="frown"
    +      unicode="&#xF119;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM248 144C207.8 144 170 126.3 144.2 95.4C135.7 85.2 137.1 70.1 147.3 61.6C157.5 53.2 172.6 54.4999999999999 181.1 64.7C197.7 84.6 222.1 96.1 248 96.1S298.3 84.7 314.9 64.7C323 55 338 52.8 348.7 61.6C358.9 70.1 360.2 85.2 351.8 95.4C326 126.3 288.2 144 248 144z" />
    +    <glyph glyph-name="futbol"
    +      unicode="&#xF1E3;"
    +      horiz-adv-x="496" d=" M483.8 268.6C449.8 373.4 352.6 440 248.1 440C222.7 440 196.9 436.1 171.4 427.8C41.2 385.5 -30.1 245.6 12.2 115.4C46.2 10.6 143.4 -56 247.9 -56C273.3 -56 299.1 -52.1 324.6 -43.8C454.8 -1.5 526.1 138.4 483.8 268.6zM409.3 74.9L357.1 68.5L313.4000000000001 129.4L337.8 204.6L408.9 226.7L447.8 190.3C447.6 159.6 440.4 129.1999999999999 426.1 101.1C421.4 91.8 415.4 83.3 409.3 74.9zM409.3 310.3L398.9000000000001 257.2L328.2000000000001 235.2L264.0000000000001 281.7V355.5L311.4000000000001 381.7C350.6 368.7 384.8000000000001 343.7 409.3000000000001 310.3zM184.9 381.6L232 355.5V281.7L167.8 235.2L97.2 257.2L87.1 309.7C111.4 343.1 145 368.3 184.9 381.6zM139 68.5L85.9 75C71.5 95.1 48.6 134.6 48.1 190.3L87.1 226.7L158.2 204.5L182.5 130.2000000000001L139 68.5000000000001zM187.2 1.5L164.8 49.6L208.4 111.3H287L331.3 49.6L308.9000000000001 1.5C302.7000000000001 -0.3 251.3000000000001 -18.9 187.2000000000001 1.5z" />
    +    <glyph glyph-name="gem"
    +      unicode="&#xF3A5;"
    +      horiz-adv-x="576" d=" M464 448H112C108 448 104.2 446 102 442.6L2 295.4C-0.9 291 -0.6 285.2000000000001 2.7 281.2000000000001L278.7 -59.6C283.5 -65.5 292.5 -65.5 297.3 -59.6L573.3 281.2C576.5999999999999 285.3 576.9 291 574 295.4L474.1 442.6C471.8 446 468.1 448 464 448zM444.7 400L508 304H439.6L387.9000000000001 400H444.7000000000001zM242.6 400H333.3L385 304H191L242.6 400zM131.3 400H188.1L136.4 304H68L131.3 400zM88.3 256H139.7L208 96L88.3 256zM191.2 256H384.8L288 12.7L191.2 256zM368 96L436.2 256H487.6L368 96z" />
    +    <glyph glyph-name="grimace"
    +      unicode="&#xF57F;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 208C345.7 208 360 222.3 360 240S345.7 272 328 272S296 257.7 296 240S310.3 208 328 208zM344 192H152C125.5 192 104 170.5 104 144V112C104 85.5 125.5 64 152 64H344C370.5 64 392 85.5 392 112V144C392 170.5 370.5 192 344 192zM176 96H152C143.2 96 136 103.2 136 112V120H176V96zM176 136H136V144C136 152.8 143.2 160 152 160H176V136zM240 96H192V120H240V96zM240 136H192V160H240V136zM304 96H256V120H304V96zM304 136H256V160H304V136zM360 112C360 103.2 352.8 96 344 96H320V120H360V112zM360 136H320V160H344C352.8 160 360 152.8 360 144V136z" />
    +    <glyph glyph-name="grin-alt"
    +      unicode="&#xF581;"
    +      horiz-adv-x="496" d=" M200.3 200C212.7 218.7 215.4 237.3 216 256C215.5 274.7 212.7 293.3 200.3 312C192.3 324 175.2 323.4 167.6 312C155.2 293.3 152.5 274.7 151.9 256C152.4 237.3 155.2000000000001 218.7 167.6 200C175.7 188 192.8 188.6 200.3 200zM328.3 200C340.7 218.7 343.4000000000001 237.3 344 256C343.5 274.7 340.7 293.3 328.3 312C320.3 324 303.2 323.4 295.6 312C283.2000000000001 293.3 280.5 274.7 279.9000000000001 256C280.4000000000001 237.3 283.2000000000001 218.7 295.6 200C303.7000000000001 188 320.8 188.6 328.3 200zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.5 146.5 123 138.1 124.7 128.1C132.6 80.9 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4z" />
    +    <glyph glyph-name="grin-beam-sweat"
    +      unicode="&#xF583;"
    +      horiz-adv-x="496" d=" M440 288C469.5 288 493.3 314.3 493.3 346.7C493.3 371.7 461.6 422.2 447.1 444C443.5 449.3 436.4000000000001 449.3 432.9000000000001 444C418.4000000000001 422.2 386.7000000000001 371.7 386.7000000000001 346.7C386.7000000000001 314.3 410.5000000000001 288 440.0000000000001 288zM248 48C299.9 48 363.3 80.9 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.6 146.4 123 138 124.7 128C132.7000000000001 80.9 196.1 48 248.0000000000001 48zM378.3 216.3C381.9000000000001 217.4 384.3 220.8 384 224.6C380.7 266.7000000000001 351.8 296 328 296S275.3 266.7000000000001 272 224.6C271.7 220.9 274.1 217.4 277.7 216.3C281.2 215.2 285.1 216.8 287 220L296.5 237C304.2 250.7 315.7 258.6 328 258.6S351.8 250.7 359.5 237L369 220C371.1 216.4 375.2 215.4 378.3 216.3zM483.6 269.2000000000001C459 253.5000000000001 437.6 256.3 437.2000000000001 256.3C444.1 236.1 448.0000000000001 214.5 448.0000000000001 192C448.0000000000001 81.7 358.3000000000001 -8 248.0000000000001 -8S48 81.7 48 192S137.7 392 248 392C287.8 392 324.8 380.2 356 360.1C357.7 369.6 362.3 384.2 373.2 405.8C336.4 427.4 293.7 440 248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192C496 219 491.6 244.9 483.6 269.2zM168 258.6C180.3 258.6 191.8 250.7 199.5 237L209 220C211.1 216.3 215.2 215.3 218.3 216.3C221.9 217.4 224.3 220.8 224 224.6C220.7 266.7000000000001 191.8 296 168 296S115.3 266.7000000000001 112 224.6C111.7 220.9 114.1 217.4 117.7 216.3C121.2 215.2 125.1 216.8 127 220L136.5 237C144.2 250.8 155.7 258.6 168 258.6z" />
    +    <glyph glyph-name="grin-beam"
    +      unicode="&#xF582;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.6 146.5 123 138.1 124.7 128.1C132.6 80.9999999999999 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM117.7 216.3C121.2 215.2 125.1 216.8 127 220L136.5 237C144.2 250.7 155.7 258.6 168 258.6S191.8 250.7 199.5 237L209 220C211.1 216.3 215.2 215.3 218.3 216.3C221.9 217.4 224.3 220.8 224 224.6C220.7 266.7 191.8 296 168 296S115.3 266.7 112 224.6C111.7 220.9 114.1 217.4 117.7 216.3zM277.7000000000001 216.3C281.2000000000001 215.2 285.1 216.8 287.0000000000001 220L296.5000000000001 237C304.2000000000001 250.7 315.7000000000001 258.6 328.0000000000001 258.6S351.8000000000001 250.7 359.5000000000001 237L369.0000000000001 220C371.1000000000001 216.3 375.2000000000001 215.3 378.3000000000001 216.3C381.9000000000001 217.4 384.3000000000001 220.8 384.0000000000001 224.6C380.7000000000001 266.7 351.8000000000001 296 328.0000000000001 296S275.3000000000001 266.7 272.0000000000001 224.6C271.7000000000001 220.9 274.1000000000001 217.4 277.7000000000001 216.3z" />
    +    <glyph glyph-name="grin-hearts"
    +      unicode="&#xF584;"
    +      horiz-adv-x="496" d=" M353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.6 146.5 123 138.1 124.7 128.1C132.6 80.9 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM200.8 192.3C205.3 191.1 210 193.8 211.3 198.3L230.7 268.2C236.3 288.5 223.3 309.3 201.9 312.7C183.3 315.7 165.5 302.9 160.4 284.8L158.4 277.7L151.3 279.6C133.1 284.3 113.1 275.3 106.4 257.6C98.7 237.4 110.2 215.7 130.6 210.4L200.8 192.3zM389.6 257.6C382.9000000000001 275.2 362.9000000000001 284.3 344.7000000000001 279.6L337.6 277.7L335.6 284.8C330.6 302.9 312.8 315.7 294.1 312.7C272.7000000000001 309.3 259.7000000000001 288.5 265.3 268.2L284.7 198.3C285.9 193.8 290.6 191.1 295.2 192.3L365.4 210.5C385.8 215.8 397.3 237.4 389.6 257.5999999999999zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8z" />
    +    <glyph glyph-name="grin-squint-tears"
    +      unicode="&#xF586;"
    +      horiz-adv-x="512" d=" M117.1 63.9C91.3 60.2 33.1 50.2 16.2 33.3C-5.7 11.4 -5.3 -24.6 17.1 -47.0000000000001S75.4 -69.8000000000001 97.4 -47.9C114.3 -31 124.3 27.2 128 53C128.8 59.4 123.4 64.8 117.1 63.9zM75.9 105.6C40.3 180 53 271.9 114.6 333.4C152.4 371.2 202.6 392 256 392C292.2 392 326.8 382.2 357.2 364.3C361 384.6 365.2 400.4 369.2 412.6C333.8 430.8 294.9 440 256 440C192.5 440 129.1 415.8 80.6 367.4C6.5 293.3 -10.7 184 28.6 93.4C40.8 97.5 56.3 101.7 75.9 105.6zM428.2 293.2C473.2 216.6 463.1 116.3 397.4 50.6C359.6 12.8 309.4 -8.0000000000001 256 -8.0000000000001C225.5 -8.0000000000001 196.2 -1.0000000000001 169.6 11.8C165.7 -7.7 161.6 -23.2 157.4 -35.4C188.8 -49.0000000000001 222.4 -56.0000000000001 256.1 -56.0000000000001C319.6 -56.0000000000001 383 -31.8000000000001 431.5 16.5999999999999C509.6 94.6999999999999 524.6 211.9999999999999 476.7 305.2C464.4 301.2 448.5 297.0999999999999 428.2 293.2zM394.9 320.1C420.7 323.8 478.9 333.8 495.8 350.7C517.6999999999999 372.6 517.3 408.6 494.9 431S436.6 453.8 414.6 431.9C397.7 415 387.7 356.8 384 331C383.2 324.6 388.6 319.2 394.9 320.1zM207.9 211.8C204.9 214.8 200.7 216 196.5 215L106 192.3C100.3 190.9 96.5 185.6 96.9 179.7C97.4 173.9 102 169.2 107.8 168.7L160.1 163.9L164.9 111.6C165.4 105.8 170.1 101.2 175.9 100.7H176.8000000000001C182.3000000000001 100.7 187.1000000000001 104.4 188.5 109.8L211.1 200.3C212.1 204.5 210.9 208.8 207.9 211.8zM247.6 236.9L338.1 259.5C343.8 260.9 347.6 266.2 347.2 272.0999999999999C346.7 277.9 342.1 282.5999999999999 336.3 283.0999999999999L284 287.9L279.2 340.2C278.7 346 274 350.6 268.2 351.1C262.6 351.2 257 347.7 255.6 342L233 251.5C232 247.4 233.2 243.1 236.2 240.1C241.2 235.1 247.5 236.9 247.6 236.9zM299.6 148.4C270.5 119.3 239.9 95.5 215.7 83C206.5 78.2 205.7 65.5 214 59.6C252.9 31.9 321 53.4 357.7 90.2000000000001S416 195 388.3 233.9C382.5 242.1 369.8 241.5 364.9000000000001 232.2C352.6 208 328.7000000000001 177.5 299.6 148.4z" />
    +    <glyph glyph-name="grin-squint"
    +      unicode="&#xF585;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.5 146.5 123 138 124.7 128.1C132.6 80.9999999999999 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM118.9 184.2C122.5 180 128.8000000000001 178.5 134.2000000000001 181.7L214.2000000000001 229.7C217.8000000000001 231.9 220.0000000000001 235.8 220.0000000000001 240S217.8000000000001 248.1 214.2000000000001 250.3L134.2000000000001 298.3C129.1000000000001 301.3 122.8000000000001 300.2000000000001 118.9000000000001 295.8C115.1000000000001 291.3 115.1000000000001 284.8 118.8000000000001 280.3L152.4000000000001 240L118.8000000000001 199.7C115.0000000000001 195.2 115.1000000000001 188.6 118.9000000000001 184.2zM361.8000000000001 181.7C367.2000000000001 178.5 373.5000000000001 180 377.1000000000001 184.2C380.9000000000001 188.7 380.9000000000001 195.2 377.2000000000001 199.7L343.6 240L377.2000000000001 280.3C381.0000000000001 284.8 380.9000000000001 291.3 377.1 295.8C373.3 300.2000000000001 366.9000000000001 301.2000000000001 361.8 298.3L281.8 250.3C278.2 248.1 276 244.2 276 240S278.2 231.9 281.8 229.7L361.8 181.7z" />
    +    <glyph glyph-name="grin-stars"
    +      unicode="&#xF587;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.6 146.5 123 138.1 124.7 128.1C132.6 80.9 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM125.7 200.9C124.7 194.7 131.1 189.9 136.7 193L168 209.3L199.3000000000001 193C204.9 189.9 211.3000000000001 194.7 210.3000000000001 200.9L204.3000000000001 235.8L229.7000000000001 260.4C234.2000000000001 264.9 231.6000000000001 272.6 225.4000000000001 273.6L190.5 278.6L175 310.2C172.1 316 164 316 161.1 310.2L145.6 278.6L110.7 273.6C104.5 272.7 101.8 265 106.4 260.4L131.8 235.8L125.7 200.9zM385.4 273.6L350.5 278.6L335 310.2C332.1 316 324 316 321.1 310.2L305.6 278.6L270.7000000000001 273.6C264.5000000000001 272.7 261.8000000000001 265 266.4000000000001 260.4L291.8 235.8L285.8 200.9C284.8 194.7 291.2 189.9 296.8 193L328.1 209.3L359.4000000000001 193C365.0000000000001 189.9 371.4000000000001 194.7 370.4000000000001 200.9L364.4000000000001 235.8L389.8 260.4C394.3 265 391.6 272.6 385.4000000000001 273.6z" />
    +    <glyph glyph-name="grin-tears"
    +      unicode="&#xF588;"
    +      horiz-adv-x="640" d=" M117.1 191.9C91.3 188.2 33.1 178.2 16.2 161.3C-5.7 139.4 -5.3 103.4 17.1 80.9999999999999S75.4 58.1999999999999 97.4 80.1C114.3 97 124.3 155.2 128 181C128.8 187.4 123.4 192.8 117.1 191.9zM623.8 161.3C606.9 178.1999999999999 548.6999999999999 188.1999999999999 522.9 191.9C516.6 192.8 511.2 187.4 512.1 181.1C515.8000000000001 155.3 525.8000000000001 97.1 542.7 80.1999999999999C564.6 58.3 600.6 58.6999999999999 623 81.0999999999999C645.3 103.3999999999999 645.7 139.3999999999999 623.8 161.2999999999999zM497.1999999999999 99.6C463.8 35.7 396.9 -8 320 -8C243.1 -8 176.2 35.7 142.8 99.6C130.3 62.2000000000001 117.6 55.7 114.5 53.1C159.1 -12.7 234.5 -56 320 -56S480.9 -12.7 525.5 53.1C522.3 55.8 509.6 62.3 497.2 99.6zM122.7 223.5C137.9 318.8 220.5 392 320 392C419.5 392 502.1 318.8 517.3 223.5C519.4 223.7 522.5 225.9 566.8 216.5C554.4 342 448.7 440 320 440S85.6 342 73.2 216.6C117.7 226 120.3 223.8 122.7 223.5zM320 48C371.9 48 435.3 80.9 443.3 128C445 137.9 435.6 146.5 425.6 143.3C399.7000000000001 135 361.2000000000001 130.2 320 130.2S240.4 135 214.4 143.3C204.6 146.4 195 138 196.7 128C204.7 80.9 268.1 48 320 48zM450.3 216.3C453.9 217.4 456.3 220.8 456 224.6C452.7 266.7000000000001 423.8 296 400 296S347.3 266.7000000000001 344 224.6C343.7 220.9 346.1 217.4 349.7 216.3C353.2 215.2 357.1 216.8 359 220L368.5 237C376.2 250.7 387.7 258.6 400 258.6S423.8 250.7 431.5 237L441 220C443.1 216.4 447.2 215.4 450.3 216.3zM240 258.6C252.3 258.6 263.8 250.7 271.5 237L281 220C283.1 216.3 287.2 215.3 290.3 216.3C293.9000000000001 217.4 296.3 220.8 296 224.6C292.7 266.7000000000001 263.8 296 240 296S187.3 266.7000000000001 184 224.6C183.7 220.9 186.1 217.4 189.7 216.3C193.2 215.2 197.1 216.8 199 220L208.5 237C216.2 250.8 227.7 258.6 240 258.6z" />
    +    <glyph glyph-name="grin-tongue-squint"
    +      unicode="&#xF58A;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM312 40C312 4.4 282.9 -24.5 247.1 -24C212 -23.5 184 5.8 184 41V83.8L201.7 92.6C216.7 100.1 233.2 90.9 236.6 76.1L239.4 64C241.5 54.8 254.6 54.8 256.7 64L259.5 76.1C262.9 90.9 279.3 100.2000000000001 294.4 92.6L312.1 83.8V40zM340.2 14.7C342.4 22.8 344 31.2 344 40V83.5C358.2 95.9 368.4 111 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.5 146.4 123 138 124.7 128C127.6 111 137.8000000000001 95.9 152 83.5V40C152 31.2 153.6 22.8 155.8000000000001 14.7C91.8 48.1 48 115 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 115 404.2 48.1 340.2 14.7zM377.1 295.8C373.3 300.2000000000001 366.8 301.3 361.8 298.3L281.8 250.3C278.2 248.1 276 244.2 276 240S278.2 231.9 281.8 229.7L361.8 181.7C367.2 178.5 373.5 180 377.1 184.2C380.9 188.7 380.9 195.2 377.2 199.7L343.6 240L377.2000000000001 280.3C381.0000000000001 284.8 380.9000000000001 291.4 377.1 295.8zM214.2 250.3L134.2 298.3C129.2 301.3 122.8 300.3 118.9 295.8C115.1 291.3 115.1 284.8 118.8 280.3L152.4 240L118.8 199.7C115 195.2 115.1 188.7 118.9 184.2C122.5 180 128.8 178.5 134.2 181.7L214.2 229.7C217.8 231.9 220 235.8 220 240S217.8 248.1 214.2 250.3z" />
    +    <glyph glyph-name="grin-tongue-wink"
    +      unicode="&#xF58B;"
    +      horiz-adv-x="496" d=" M152 268C126.3 268 96.1 251.1 92.2 225.9C91.4 220.9 93.9 215.9 98.3 213.5C102.7 211.1 108.2 211.7 112 215.1L121.5 223.6C136.3 236.8 167.7 236.8 182.5 223.6L192 215.1C194.5 212.9 200 210.4 205.7 213.5C210.1 215.9 212.6 220.9 211.8 225.9C207.9 251.1 177.7 268 152 268zM328 320C283.8 320 248 284.2 248 240S283.8 160 328 160S408 195.8 408 240S372.2 320 328 320zM328 192C301.5 192 280 213.5 280 240S301.5 288 328 288S376 266.5 376 240S354.5 192 328 192zM328 264C314.7 264 304 253.3 304 240S314.7 216 328 216S352 226.7 352 240S341.3 264 328 264zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM312 40C312 4.4 282.9 -24.5 247.1 -24C212 -23.5 184 5.8 184 41V83.8L201.7 92.6C216.7 100.1 233.2 90.9 236.6 76.1L239.4 64C241.5 54.8 254.6 54.8 256.7 64L259.5 76.1C262.9 90.9 279.3 100.2000000000001 294.4 92.6L312.1 83.8V40zM340.2 14.7C342.4 22.8 344 31.2 344 40V83.5C358.2 95.9 368.4 111 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.5 146.4 123 138 124.7 128C127.6 111 137.8000000000001 95.9 152 83.5V40C152 31.2 153.6 22.8 155.8000000000001 14.7C91.8 48.1 48 115 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 115 404.2 48.1 340.2 14.7z" />
    +    <glyph glyph-name="grin-tongue"
    +      unicode="&#xF589;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM312 40C312 4.4 282.9 -24.5 247.1 -24C212 -23.5 184 5.8 184 41V83.8L201.7 92.6C216.7 100.1 233.2 90.9 236.6 76.1L239.4 64C241.5 54.8 254.6 54.8 256.7 64L259.5 76.1C262.9 90.9 279.3 100.2000000000001 294.4 92.6L312.1 83.8V40zM340.2 14.7C342.4 22.8 344 31.2 344 40V83.5C358.2 95.9 368.4 111 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.5 146.4 123 138 124.7 128C127.6 111 137.8000000000001 95.9 152 83.5V40C152 31.2 153.6 22.8 155.8000000000001 14.7C91.8 48.1 48 115 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 115 404.2 48.1 340.2 14.7zM168 272C150.3 272 136 257.7 136 240S150.3 208 168 208S200 222.3 200 240S185.7 272 168 272zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" />
    +    <glyph glyph-name="grin-wink"
    +      unicode="&#xF58C;"
    +      horiz-adv-x="496" d=" M328 268C302.31 268 272.12 251.08 268.14 225.88C266.39 214.66 279.64 207.64 287.97 215.04L297.52 223.52C312.33 236.71 343.68 236.71 358.49 223.52L368.04 215.04C376.5200000000001 207.61 389.6 214.79 387.87 225.88C383.88 251.08 353.69 268 328 268zM168 208C185.67 208 200 222.33 200 240S185.67 272 168 272S136 257.67 136 240S150.33 208 168 208zM353.55 143.36C327.62 135.06 289.15 130.3 248 130.3S168.38 135.05 142.45 143.36C132.51 146.49 123.05 137.99 124.74 128.0200000000001C132.67 80.87 196.06 48 248 48S363.33 80.87 371.26 128.02C372.94 137.91 363.59 146.5 353.55 143.36zM248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 -8C137.72 -8 48 81.72 48 192S137.72 392 248 392S448 302.28 448 192S358.28 -8 248 -8z" />
    +    <glyph glyph-name="grin"
    +      unicode="&#xF580;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.5 146.5 123 138 124.7 128.1C132.6 80.9999999999999 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 208C345.7 208 360 222.3 360 240S345.7 272 328 272S296 257.7 296 240S310.3 208 328 208z" />
    +    <glyph glyph-name="hand-lizard"
    +      unicode="&#xF258;"
    +      horiz-adv-x="576" d=" M556.686 157.458L410.328 383.171C397.001 403.728 374.417 416 349.917 416H56C25.121 416 0 390.878 0 360V352C0 307.8880000000001 35.888 272 80 272H276.0420000000001L257.7090000000001 224H144C95.477 224 56 184.523 56 136C56 105.121 81.121 80 112 80H243.552C246.539 80 249.466 79.451 252.249 78.369L352 39.582V-32H576V92.171C576 115.396 569.321 137.972 556.686 157.458zM528 16H400V39.582C400 59.53 387.986 77.09 369.396 84.318L269.645 123.106A71.733 71.733 0 0 1 243.552 128H112C107.589 128 104 131.589 104 136C104 158.056 121.944 176 144 176H257.709C277.476 176 295.495 188.407 302.549 206.873L327.101 271.154C336.097 294.707 318.673 320 293.471 320H80C62.355 320 48 334.355 48 352V360C48 364.411 51.589 368 56 368H349.917C358.083 368 365.61 363.91 370.054 357.058L516.412 131.343A71.84 71.84 0 0 0 528 92.171V16z" />
    +    <glyph glyph-name="hand-paper"
    +      unicode="&#xF256;"
    +      horiz-adv-x="448" d=" M372.57 335.359V346.184C372.57 389.796 332.05 422.875 289.531 411.73C263.902 461.23 195.441 459.18 171.549 410.983C130.269 421.544 89.144 390.055 89.144 346V219.87C69.191 227.297 45.836 224.938 27.061 210.999C-2.294 189.203 -8.733 147.666 12.511 117.846L132.48 -50.569A32 32 0 0 1 158.542 -64.001H381.439C396.343 -64.001 409.274 -53.712 412.621 -39.188L442.805 91.77A203.637 203.637 0 0 1 448 137.436V269C448 309.62 412.477 340.992 372.57 335.359zM399.997 137.437C399.997 125.706 398.663 113.968 396.0320000000001 102.551L368.707 -16H166.787L51.591 145.697C37.152 165.967 66.614 188.473 80.985 168.302L108.113 130.223C117.108 117.597 137.144 123.936 137.144 139.506V346C137.144 371.645 173.715 370.81 173.715 345.309V192C173.715 183.163 180.878 176 189.715 176H196.571C205.408 176 212.571 183.163 212.571 192V381C212.571 406.663 249.142 405.81 249.142 380.309V192C249.142 183.163 256.305 176 265.142 176H271.998C280.835 176 287.998 183.163 287.998 192V346.875C287.998 372.5470000000001 324.568 371.685 324.568 346.184V192C324.568 183.163 331.731 176 340.568 176H347.425C356.262 176 363.425 183.163 363.425 192V268.309C363.425 294.551 399.995 293.949 399.995 269V137.437z" />
    +    <glyph glyph-name="hand-peace"
    +      unicode="&#xF25B;"
    +      horiz-adv-x="448" d=" M362.146 256.024C348.4360000000001 277.673 323.385 290.04 297.14 286.365V374C297.14 414.804 264.329 448 223.999 448C183.669 448 150.859 414.804 150.859 374L160 280L141.321 358.85C126.578 397.157 83.85 415.89 46.209 400.7920000000001C8.735 385.762 -9.571 343.0370000000001 5.008 305.15L60.765 160.223C30.208 135.267 16.771 102.414 36.032 68.005L90.885 -29.994C102.625 -50.97 124.73 -64 148.575 -64H354.277C385.021 -64 411.835 -42.56 418.832 -12.203L446.259 106.7960000000001A67.801 67.801 0 0 1 447.988 121.999L448 192C448 236.956 404.737 269.343 362.146 256.024zM399.987 122C399.987 120.512 399.8180000000001 119.023 399.485 117.577L372.058 -1.424C370.08 -10.006 362.768 -16 354.276 -16H148.575C142.089 -16 136.033 -12.379 132.77 -6.551L77.916 91.449C73.359 99.59 75.297 110.117 82.424 115.937L109.071 137.701A16 16 0 0 1 113.883 155.84L49.793 322.389C37.226 355.044 84.37 373.163 96.51 341.611L156.294 186.254A16 16 0 0 1 171.227 176H182.859C191.696 176 198.859 183.163 198.859 192V374C198.859 408.375 249.14 408.43 249.14 374V192C249.14 183.163 256.303 176 265.14 176H271.996C280.833 176 287.996 183.163 287.996 192V220C287.996 245.122 324.563 245.159 324.563 220V192C324.563 183.163 331.726 176 340.563 176H347.419C356.256 176 363.419 183.163 363.419 192C363.419 217.12 399.986 217.16 399.986 192V122z" />
    +    <glyph glyph-name="hand-point-down"
    +      unicode="&#xF0A7;"
    +      horiz-adv-x="448" d=" M188.8 -64C234.416 -64 272 -26.235 272 19.2V54.847A93.148 93.148 0 0 1 294.064 62.776C316.0700000000001 60.269 339.0420000000001 66.2789999999999 356.855 78.761C409.342 79.9 448 116.159 448 178.701V200C448 260.063 408 298.512 408 327.2V329.879C412.952 335.626 416 343.415 416 351.999V416C416 433.673 403.106 448 387.2 448H156.8C140.894 448 128 433.673 128 416V352C128 343.416 131.048 335.627 136 329.88V327.201C136 320.237 129.807 312.339 112.332 297.0180000000001L112.184 296.889L112.038 296.7580000000001C102.101 287.9020000000001 91.197 278.642 78.785 270.9070000000001C48.537 252.202 0 240.514 0 195.2C0 138.272 35.286 103.2 83.2 103.2C91.226 103.2 98.689 104.014 105.6 105.376V19.2C105.6 -25.899 143.701 -64 188.8 -64zM188.8 -16C170.1 -16 153.6 0.775 153.6 19.2V177.6C136.275 177.6 118.4 151.2000000000001 83.2 151.2000000000001C56.8 151.2000000000001 48 171.8250000000001 48 195.2000000000001C48 203.9940000000001 80.712 215.6450000000001 104.1 230.1260000000001C118.675 239.2000000000001 131.325 249.6500000000001 143.975 260.9250000000001C162.349 277.0340000000001 180.608 294.761 183.571 320.0000000000001H360.3230000000001C364.087 277.2100000000001 400 245.491 400 200V178.701C400 138.177 377.803 121.577 338.675 128.1C330.6740000000001 113.488 304.6960000000001 103.949 285.05 115.175C266.825 95.81 238.669 97.388 224 110.225V19.2C224 0.225 207.775 -16 188.8 -16zM328 384C328 397.255 338.745 408 352 408S376 397.255 376 384S365.255 360 352 360S328 370.745 328 384z" />
    +    <glyph glyph-name="hand-point-left"
    +      unicode="&#xF0A5;"
    +      horiz-adv-x="512" d=" M0 227.2C0 181.584 37.765 144 83.2 144H118.847A93.148 93.148 0 0 1 126.776 121.936C124.269 99.93 130.279 76.958 142.761 59.145C143.9 6.658 180.159 -32 242.701 -32H264C324.063 -32 362.512 8 391.2 8H393.879C399.626 3.048 407.415 0 415.999 0H479.999C497.672 0 511.999 12.894 511.999 28.8V259.2C511.999 275.106 497.672 288 479.999 288H415.999C407.415 288 399.626 284.952 393.879 280H391.2C384.236 280 376.338 286.193 361.017 303.668L360.888 303.8160000000001L360.757 303.962C351.901 313.899 342.641 324.803 334.906 337.215C316.202 367.463 304.514 416 259.2 416C202.272 416 167.2 380.714 167.2 332.8C167.2 324.774 168.014 317.3110000000001 169.376 310.4H83.2C38.101 310.4 0 272.299 0 227.2zM48 227.2C48 245.9 64.775 262.4 83.2 262.4H241.6C241.6 279.725 215.2 297.6 215.2 332.8C215.2 359.2 235.825 368 259.2000000000001 368C267.9940000000001 368 279.6450000000001 335.288 294.1260000000001 311.9C303.2000000000001 297.325 313.6500000000001 284.675 324.925 272.025C341.034 253.651 358.761 235.392 384 232.429V55.677C341.21 51.913 309.491 16 264 16H242.701C202.177 16 185.577 38.197 192.1 77.325C177.488 85.326 167.949 111.304 179.175 130.95C159.81 149.175 161.388 177.331 174.225 192H83.2C64.225 192 48 208.225 48 227.2zM448 88C461.255 88 472 77.255 472 64S461.255 40 448 40S424 50.745 424 64S434.745 88 448 88z" />
    +    <glyph glyph-name="hand-point-right"
    +      unicode="&#xF0A4;"
    +      horiz-adv-x="512" d=" M428.8 310.4H342.623A115.52 115.52 0 0 1 344.799 332.8C344.799 380.714 309.727 416 252.799 416C207.485 416 195.797 367.463 177.092 337.216C169.357 324.803 160.098 313.899 151.241 303.963L151.11 303.817L150.981 303.6690000000001C135.662 286.193 127.764 280 120.8 280H118.121C112.374 284.952 104.585 288 96.001 288H32C14.327 288 0 275.106 0 259.2V28.8C0 12.894 14.327 0 32 0H96C104.584 0 112.373 3.048 118.12 8H120.799C149.487 8 187.936 -32 247.999 -32H269.298C331.8400000000001 -32 368.098 6.658 369.238 59.145C381.7200000000001 76.958 387.729 99.93 385.223 121.936A93.148 93.148 0 0 1 393.152 144H428.8C474.235 144 512 181.584 512 227.2C512 272.299 473.899 310.4 428.8 310.4zM428.8 192H337.774C350.611 177.331 352.189 149.175 332.824 130.95C344.051 111.304 334.511 85.326 319.899 77.325C326.423 38.197 309.823 16 269.299 16H248C202.509 16 170.79 51.913 128 55.676V232.429C153.239 235.393 170.966 253.651 187.075 272.025C198.35 284.675 208.8 297.3250000000001 217.874 311.9C232.355 335.288 244.006 368 252.8 368C276.175 368 296.8 359.2 296.8 332.8C296.8 297.6 270.4000000000001 279.725 270.4000000000001 262.4H428.8000000000001C447.2250000000001 262.4 464.0000000000001 245.9 464.0000000000001 227.2C464.0000000000001 208.225 447.7750000000001 192 428.8000000000001 192zM88 64C88 50.745 77.255 40 64 40S40 50.745 40 64S50.745 88 64 88S88 77.255 88 64z" />
    +    <glyph glyph-name="hand-point-up"
    +      unicode="&#xF0A6;"
    +      horiz-adv-x="448" d=" M105.6 364.8V278.623A115.52 115.52 0 0 1 83.2 280.799C35.286 280.799 0 245.727 0 188.799C0 143.485 48.537 131.797 78.784 113.092C91.197 105.357 102.101 96.098 112.037 87.241L112.183 87.11L112.331 86.981C129.807 71.662 136 63.764 136 56.8V54.121C131.048 48.374 128 40.585 128 32.001V-31.999C128 -49.672 140.894 -63.999 156.8 -63.999H387.2000000000001C403.1060000000001 -63.999 416.0000000000001 -49.672 416.0000000000001 -31.999V32.001C416.0000000000001 40.585 412.9520000000001 48.374 408.0000000000001 54.121V56.8C408.0000000000001 85.488 448.0000000000001 123.937 448.0000000000001 184V205.299C448.0000000000001 267.841 409.3420000000001 304.099 356.8550000000001 305.2390000000001C339.0420000000001 317.721 316.0700000000001 323.73 294.0640000000001 321.224A93.148 93.148 0 0 1 272 329.153V364.8C272 410.235 234.416 448 188.8 448C143.701 448 105.6 409.899 105.6 364.8zM224 364.8V273.774C238.669 286.611 266.825 288.189 285.05 268.824C304.6960000000001 280.0510000000001 330.6740000000001 270.511 338.675 255.899C377.803 262.423 400 245.823 400 205.299V184C400 138.509 364.087 106.79 360.324 64H183.571C180.607 89.239 162.349 106.966 143.975 123.075C131.325 134.35 118.675 144.8 104.1 153.874C80.712 168.355 48 180.006 48 188.8C48 212.175 56.8 232.8 83.2 232.8C118.4 232.8 136.275 206.4 153.6 206.4V364.8C153.6 383.225 170.1 400 188.8 400C207.775 400 224 383.775 224 364.8zM352 24C365.255 24 376 13.255 376 0S365.255 -24 352 -24S328 -13.255 328 0S338.745 24 352 24z" />
    +    <glyph glyph-name="hand-pointer"
    +      unicode="&#xF25A;"
    +      horiz-adv-x="448" d=" M358.182 268.639C338.689 293.4070000000001 305.5030000000001 300.584 278.31 287.737C263.183 303.4240000000001 242.128 310.2240000000001 221.715 307.366V381C221.715 417.944 191.979 448 155.429 448S89.143 417.944 89.143 381V219.871C69.234 227.281 45.871 224.965 27.06 210.999C-2.295 189.204 -8.733 147.6660000000001 12.51 117.847L122.209 -36.154C134.632 -53.59 154.741 -64 176 -64H354.286C385.088 -64 411.86 -42.5 418.843 -12.203L446.272 106.7960000000001A67.873 67.873 0 0 1 448 122V206C448 252.844 401.375 285.273 358.182 268.639zM80.985 168.303L108.111 130.224C117.106 117.598 137.142 123.937 137.142 139.507V381C137.142 406.12 173.713 406.16 173.713 381V206C173.713 197.164 180.876 190 189.713 190H196.57C205.407 190 212.57 197.164 212.57 206V241C212.57 266.12 249.141 266.16 249.141 241V206C249.141 197.164 256.304 190 265.141 190H272C280.837 190 288 197.164 288 206V227C288 252.12 324.5710000000001 252.16 324.5710000000001 227V206C324.5710000000001 197.164 331.7340000000001 190 340.5710000000001 190H347.4280000000001C356.2650000000001 190 363.4280000000001 197.164 363.4280000000001 206C363.4280000000001 231.121 399.999 231.16 399.999 206V122C399.999 120.512 399.8300000000001 119.023 399.497 117.577L372.067 -1.424C370.089 -10.006 362.777 -16 354.2850000000001 -16H176C170.231 -16 164.737 -13.122 161.303 -8.303L51.591 145.697C37.185 165.92 66.585 188.515 80.985 168.303zM176.143 48V144C176.143 152.837 182.411 160 190.143 160H196.143C203.875 160 210.143 152.837 210.143 144V48C210.143 39.163 203.875 32 196.143 32H190.143C182.41 32 176.143 39.163 176.143 48zM251.571 48V144C251.571 152.837 257.839 160 265.5710000000001 160H271.5710000000001C279.3030000000001 160 285.5710000000001 152.837 285.5710000000001 144V48C285.5710000000001 39.163 279.3030000000001 32 271.5710000000001 32H265.5710000000001C257.839 32 251.5710000000001 39.163 251.5710000000001 48zM327 48V144C327 152.837 333.268 160 341 160H347C354.7320000000001 160 361 152.837 361 144V48C361 39.163 354.7320000000001 32 347 32H341C333.268 32 327 39.163 327 48z" />
    +    <glyph glyph-name="hand-rock"
    +      unicode="&#xF255;"
    +      horiz-adv-x="512" d=" M408.864 368.948C386.463 402.846 342.756 411.221 310.051 392.536C280.577 424.005 230.906 423.629 201.717 392.558C154.557 419.578 93.007 387.503 91.046 331.752C44.846 342.593 0 307.999 0 260.5710000000001V203.618C0 170.877 14.28 139.664 39.18 117.984L136.89 32.903C141.142 29.201 140 27.33 140 -1e-13C140 -17.6730000000001 154.327 -32.0000000000001 172 -32.0000000000001H424C441.673 -32.0000000000001 456 -17.6730000000001 456 -1e-13C456 23.5129999999999 454.985 30.745 459.982 42.37L502.817 142.026C508.911 156.203 512 171.198 512 186.5939999999999V301.0370000000001C512 353.876 457.686 389.699 408.8640000000001 368.948zM464 186.594A64.505 64.505 0 0 0 458.718 160.981L415.8830000000001 61.326C410.653 49.155 408.0000000000001 36.286 408.0000000000001 23.076V16H188V26.286C188 42.656 180.86 58.263 168.41 69.103L70.7 154.183C56.274 166.745 48 184.764 48 203.619V260.572C48 293.78 100 294.1090000000001 100 259.895V218.667A16 16 0 0 1 105.493 206.6L112.493 200.505A16 16 0 0 1 139 212.571V329.1430000000001C139 362.24 191 362.868 191 328.466V301.7150000000001C191 292.879 198.164 285.7150000000001 207 285.7150000000001H214C222.836 285.7150000000001 230 292.879 230 301.7150000000001V342.858C230 375.992 282 376.533 282 342.181V301.7150000000001C282 292.879 289.163 285.7150000000001 298 285.7150000000001H305C313.837 285.7150000000001 321 292.879 321 301.7150000000001V329.144C321 362.174 373 362.924 373 328.467V301.716C373 292.88 380.163 285.716 389 285.716H396C404.837 285.716 412 292.88 412 301.716C412 334.862 464 335.329 464 301.039V186.5940000000001z" />
    +    <glyph glyph-name="hand-scissors"
    +      unicode="&#xF257;"
    +      horiz-adv-x="512" d=" M256 -32L326 -31.987C331.114 -31.987 336.231 -31.404 341.203 -30.258L460.202 -2.831C490.56 4.165 512 30.98 512 61.723V267.425C512 291.27 498.97 313.376 477.995 325.115L379.996 379.968C345.587 399.2290000000001 312.733 385.7920000000001 287.778 355.235L142.85 410.992C104.963 425.5710000000001 62.238 407.265 47.208 369.791C32.11 332.149 50.843 289.421 89.15 274.679L168 256L74 265.141C33.196 265.141 0 232.33 0 192.001C0 151.671 33.196 118.86 74 118.86H161.635C157.96 92.615 170.327 67.563 191.976 53.8539999999999C178.657 11.263 211.044 -32 256 -32zM256 16.013C230.84 16.013 230.88 52.58 256 52.58C264.837 52.58 272 59.743 272 68.58V75.436C272 84.273 264.837 91.436 256 91.436H228C202.841 91.436 202.878 128.003 228 128.003H256C264.837 128.003 272 135.166 272 144.003V150.859C272 159.696 264.837 166.859 256 166.859H74C39.57 166.859 39.625 217.14 74 217.14H256C264.837 217.14 272 224.303 272 233.14V244.772A16 16 0 0 1 261.746 259.705L106.389 319.49C74.837 331.63 92.957 378.773 125.611 366.207L292.16 302.116A16.001 16.001 0 0 1 310.299 306.928L332.063 333.5750000000001C337.883 340.702 348.411 342.639 356.551 338.0830000000001L454.551 283.2290000000001C460.379 279.966 464 273.911 464 267.424V61.723C464 53.232 458.006 45.919 449.424 43.941L330.423 16.514A19.743 19.743 0 0 0 326 16.012H256z" />
    +    <glyph glyph-name="hand-spock"
    +      unicode="&#xF259;"
    +      horiz-adv-x="512" d=" M21.096 66.21L150.188 -55.303A32 32 0 0 1 172.12 -64.001H409.7200000000001C423.8900000000001 -64.001 436.3730000000001 -54.682 440.4000000000001 -41.097L472.215 66.216A115.955 115.955 0 0 1 477 99.189V136.028C477 140.079 477.476 144.132 478.414 148.073L510.144 281.4830000000001C520.243 323.8950000000001 487.828 364.221 444.6 364.0080000000001C440.456 388.8640000000001 422.057 411.1730000000001 394.75 418.0000000000001C358.947 426.9520000000001 322.523 405.3450000000001 313.5 369.25L296.599 264L274.924 395.99C266.638 432.06 230.621 454.562 194.62 446.286C165.004 439.4820000000001 144.482 413.897 142.738 384.991C100.101 384.16 69.283 344.428 78.667 303.147L109.707 166.639C82.513 189.154 42.423 186.631 18.225 160.917C-7.151 133.956 -5.873 91.592 21.096 66.21zM53.164 128.021L53.166 128.0219999999999C60.385 135.694 72.407 136.002 80.022 128.8349999999999L133.034 78.9409999999999C143.225 69.351 160 76.6 160 90.594V160.073C160 161.266 159.866 162.456 159.603 163.619L125.473 313.791C119.877 338.408 156.975 346.651 162.527 322.212L192.926 188.4549999999999A16 16 0 0 1 208.529 176.0009999999999H217.1330000000001C227.4090000000001 176.0009999999999 235.0270000000001 185.5679999999999 232.7270000000001 195.5839999999999L191.107 376.7369999999999C185.484 401.2059999999999 222.497 409.813 228.142 385.2449999999999L273.362 188.4169999999999A16 16 0 0 1 288.956 176H302.173A16 16 0 0 1 317.695 188.119L360.067 357.6090000000001C366.171 382.0310000000001 403.029 372.7680000000001 396.932 348.3920000000001L358.805 195.88C356.284 185.792 363.92 176 374.327 176H384.021A16 16 0 0 1 399.586 188.295L426.509 301.4C432.3300000000001 325.848 469.306 317.087 463.475 292.598L431.7200000000001 159.19A100.094 100.094 0 0 1 429 136.028V99.189C429 92.641 428.057 86.138 426.195 79.8610000000001L397.775 -16H178.465L53.978 101.164C46.349 108.344 45.984 120.393 53.164 128.021z" />
    +    <glyph glyph-name="handshake"
    +      unicode="&#xF2B5;"
    +      horiz-adv-x="640" d=" M519.2 320.1L471.6 367.7A56.252 56.252 0 0 1 432 384H205.2C190.4 384 176.1 378.1 165.6 367.7L118 320.1H0V64.4H64C81.6 64.4 95.8 78.6 95.9 96.1H105L189.6 19.6999999999999C220.5 -5.4000000000001 263.4 -6.0000000000001 295.2 15.8999999999999C307.7 5.0999999999999 321.2 -1e-13 336.3 -1e-13C354.5 -1e-13 371.6 7.3999999999999 385.1 23.9999999999999C407.2000000000001 15.3 433.3 21.3999999999999 449.1 40.8L475.3 73.1C480.9 79.9999999999999 484.4 87.9 486.2 96.1H544.1C544.2 78.6 558.5 64.4 576 64.4H640V320.1H519.2zM48 96.4C39.2 96.4 32 103.6 32 112.4S39.2 128.4 48 128.4S64 121.2 64 112.4C64 103.5 56.8 96.4 48 96.4zM438 103.3L411.9 71.1C409.1 67.7 404.1 67.1 400.6 69.9L376.7 89.3L346.7 52.8C340.7 45.4999999999999 331.7 47.9999999999999 328.7 50.4L291.9 81.9L276.3 62.7C262.4 45.6 237.1 43 221 56.1L123.7 144.1H96V272.2H137.9L199.6 333.8C201.6 334.6 203.3 335.3 205.3 336.1H262L223.3 300.6C193.9 273.7 192.2 228.3 218.9 199.3C233.7 183.1 280.1 158.1 320.4 194.9L328.6 202.4L436.8 114.6C440.2 111.8 440.7 106.7 438 103.3zM544 144.1H474.8C472.5 146.9 469.9 149.5 467.1 151.8L364.4000000000001 235.2L376.9000000000001 246.6C383.4000000000001 252.6 383.9000000000001 262.7 377.9000000000001 269.2L367 280.9C361 287.4 350.9 287.8 344.4 281.9L289.2 231.3C279.7 222.6 263.5 221.9 254.6 231.3C245.3 241.2 246.1 256.4 255.8 265.2000000000001L321.4 325.3C328.8 332.1 338.4 335.8 348.4 335.8L432.1 336C434.2 336 436.2 335.2000000000001 437.6 333.7000000000001L499.3 272.1H544V144.1zM592 96.4C583.2 96.4 576 103.6 576 112.4S583.2 128.4 592 128.4S608 121.2 608 112.4C608 103.5 600.8 96.4 592 96.4z" />
    +    <glyph glyph-name="hdd"
    +      unicode="&#xF0A0;"
    +      horiz-adv-x="576" d=" M567.403 212.358L462.323 363.411A48 48 0 0 1 422.919 384H153.081A48 48 0 0 1 113.677 363.411L8.597 212.358A48.001 48.001 0 0 1 0 184.946V48C0 21.49 21.49 0 48 0H528C554.51 0 576 21.49 576 48V184.946C576 194.747 573 204.312 567.403 212.358zM153.081 336H422.919L500.832 224H75.168L153.081 336zM528 48H48V176H528V48zM496 112C496 94.327 481.673 80 464 80S432 94.327 432 112S446.327 144 464 144S496 129.673 496 112zM400 112C400 94.327 385.673 80 368 80S336 94.327 336 112S350.327 144 368 144S400 129.673 400 112z" />
    +    <glyph glyph-name="heart"
    +      unicode="&#xF004;"
    +      horiz-adv-x="512" d=" M458.4 383.7C400.6 432.3 311.3 425 256 368.7C200.7 425 111.4 432.4 53.6 383.7C-21.6 320.4 -10.6 217.2 43 162.5L218.4 -16.2C228.4 -26.4 241.8 -32.1 256 -32.1C270.3 -32.1 283.6 -26.4999999999999 293.6 -16.3L469 162.4C522.5 217.1 533.7 320.3 458.4 383.7zM434.8 196.2L259.4 17.5C257 15.1 255 15.1 252.6 17.5L77.2 196.2C40.7 233.4 33.3 303.8 84.5 346.9C123.4 379.6 183.4 374.7 221 336.4L256 300.7L291 336.4C328.8 374.9 388.8 379.6 427.5 347C478.6 303.9 471 233.1 434.8 196.2z" />
    +    <glyph glyph-name="hospital"
    +      unicode="&#xF0F8;"
    +      horiz-adv-x="448" d=" M128 204V244C128 250.627 133.373 256 140 256H180C186.627 256 192 250.627 192 244V204C192 197.373 186.627 192 180 192H140C133.373 192 128 197.373 128 204zM268 192H308C314.627 192 320 197.373 320 204V244C320 250.627 314.627 256 308 256H268C261.373 256 256 250.627 256 244V204C256 197.373 261.373 192 268 192zM192 108V148C192 154.627 186.627 160 180 160H140C133.373 160 128 154.627 128 148V108C128 101.373 133.373 96 140 96H180C186.627 96 192 101.373 192 108zM268 96H308C314.627 96 320 101.373 320 108V148C320 154.627 314.627 160 308 160H268C261.373 160 256 154.627 256 148V108C256 101.373 261.373 96 268 96zM448 -28V-64H0V-28C0 -21.373 5.373 -16 12 -16H31.5V362.9650000000001C31.5 374.582 42.245 384 55.5 384H144V424C144 437.255 154.745 448 168 448H280C293.255 448 304 437.255 304 424V384H392.5C405.755 384 416.5 374.582 416.5 362.9650000000001V-16H436C442.627 -16 448 -21.373 448 -28zM79.5 -15H192V52C192 58.627 197.373 64 204 64H244C250.627 64 256 58.627 256 52V-15H368.5V336H304V312C304 298.745 293.255 288 280 288H168C154.745 288 144 298.745 144 312V336H79.5V-15zM266 384H240V410A6 6 0 0 1 234 416H214A6 6 0 0 1 208 410V384H182A6 6 0 0 1 176 378V358A6 6 0 0 1 182 352H208V326A6 6 0 0 1 214 320H234A6 6 0 0 1 240 326V352H266A6 6 0 0 1 272 358V378A6 6 0 0 1 266 384z" />
    +    <glyph glyph-name="hourglass"
    +      unicode="&#xF254;"
    +      horiz-adv-x="384" d=" M368 400H372C378.627 400 384 405.373 384 412V436C384 442.627 378.627 448 372 448H12C5.373 448 0 442.627 0 436V412C0 405.373 5.373 400 12 400H16C16 319.4360000000001 48.188 234.193 113.18 192C47.899 149.619 16 64.1 16 -16H12C5.373 -16 0 -21.373 0 -28V-52C0 -58.627 5.373 -64 12 -64H372C378.627 -64 384 -58.627 384 -52V-28C384 -21.373 378.627 -16 372 -16H368C368 64.564 335.812 149.807 270.82 192C336.102 234.381 368 319.9 368 400zM64 400H320C320 298.38 262.693 216 192 216S64 298.379 64 400zM320 -16H64C64 85.62 121.308 168 192 168S320 85.62 320 -16z" />
    +    <glyph glyph-name="id-badge"
    +      unicode="&#xF2C1;"
    +      horiz-adv-x="384" d=" M336 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V400C384 426.5 362.5 448 336 448zM336 -16H48V400H336V-16zM144 336H240C248.8 336 256 343.2 256 352S248.8 368 240 368H144C135.2 368 128 360.8 128 352S135.2 336 144 336zM192 160C227.3 160 256 188.7 256 224S227.3 288 192 288S128 259.3 128 224S156.7 160 192 160zM102.4 32H281.6C294 32 304 40.6 304 51.2V70.4C304 102.2 273.9 128 236.8 128C226 128 218.1 120 192 120C165.1 120 158.6 128 147.2 128C110.1 128 80 102.2 80 70.4V51.2C80 40.6 90 32 102.4 32z" />
    +    <glyph glyph-name="id-card"
    +      unicode="&#xF2C2;"
    +      horiz-adv-x="576" d=" M528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM528 16H303.2C304.1 20.5 304 12.4 304 38.4C304 70.2 273.9 96 236.8 96C226 96 218.1 88 192 88C165.1 88 158.6 96 147.2 96C110.1 96 80 70.2 80 38.4C80 12.4 79.8 20.5 80.8 16H48V304H528V16zM360 96H472C476.4 96 480 99.6 480 104V120C480 124.4 476.4 128 472 128H360C355.6 128 352 124.4 352 120V104C352 99.6 355.6 96 360 96zM360 160H472C476.4 160 480 163.6 480 168V184C480 188.4 476.4 192 472 192H360C355.6 192 352 188.4 352 184V168C352 163.6 355.6 160 360 160zM360 224H472C476.4 224 480 227.6 480 232V248C480 252.4 476.4 256 472 256H360C355.6 256 352 252.4 352 248V232C352 227.6 355.6 224 360 224zM192 128C227.3 128 256 156.7 256 192S227.3 256 192 256S128 227.3 128 192S156.7 128 192 128z" />
    +    <glyph glyph-name="image"
    +      unicode="&#xF03E;"
    +      horiz-adv-x="512" d=" M464 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V336C512 362.51 490.51 384 464 384zM458 48H54A6 6 0 0 0 48 54V330A6 6 0 0 0 54 336H458A6 6 0 0 0 464 330V54A6 6 0 0 0 458 48zM128 296C105.909 296 88 278.091 88 256S105.909 216 128 216S168 233.909 168 256S150.091 296 128 296zM96 96H416V176L328.485 263.515C323.7990000000001 268.201 316.201 268.201 311.514 263.515L192 144L152.485 183.515C147.799 188.201 140.201 188.201 135.514 183.515L96 144V96z" />
    +    <glyph glyph-name="images"
    +      unicode="&#xF302;"
    +      horiz-adv-x="576" d=" M480 32V16C480 -10.51 458.51 -32 432 -32H48C21.49 -32 0 -10.51 0 16V272C0 298.51 21.49 320 48 320H64V272H54A6 6 0 0 1 48 266V22A6 6 0 0 1 54 16H426A6 6 0 0 1 432 22V32H480zM522 368H150A6 6 0 0 1 144 362V118A6 6 0 0 1 150 112H522A6 6 0 0 1 528 118V362A6 6 0 0 1 522 368zM528 416C554.51 416 576 394.51 576 368V112C576 85.49 554.51 64 528 64H144C117.49 64 96 85.49 96 112V368C96 394.51 117.49 416 144 416H528zM264 304C264 281.909 246.091 264 224 264S184 281.909 184 304S201.909 344 224 344S264 326.091 264 304zM192 208L231.515 247.515C236.201 252.201 243.799 252.201 248.486 247.515L288 208L391.515 311.515C396.201 316.201 403.799 316.201 408.486 311.515L480 240V160H192V208z" />
    +    <glyph glyph-name="keyboard"
    +      unicode="&#xF11C;"
    +      horiz-adv-x="576" d=" M528 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H528C554.51 0 576 21.49 576 48V336C576 362.51 554.51 384 528 384zM536 48C536 43.589 532.411 40 528 40H48C43.589 40 40 43.589 40 48V336C40 340.411 43.589 344 48 344H528C532.411 344 536 340.411 536 336V48zM170 178V206C170 212.627 164.627 218 158 218H130C123.373 218 118 212.627 118 206V178C118 171.373 123.373 166 130 166H158C164.627 166 170 171.373 170 178zM266 178V206C266 212.627 260.627 218 254 218H226C219.373 218 214 212.627 214 206V178C214 171.373 219.373 166 226 166H254C260.627 166 266 171.373 266 178zM362 178V206C362 212.627 356.627 218 350 218H322C315.373 218 310 212.627 310 206V178C310 171.373 315.373 166 322 166H350C356.627 166 362 171.373 362 178zM458 178V206C458 212.627 452.627 218 446 218H418C411.373 218 406 212.627 406 206V178C406 171.373 411.373 166 418 166H446C452.627 166 458 171.373 458 178zM122 96V124C122 130.627 116.627 136 110 136H82C75.373 136 70 130.627 70 124V96C70 89.373 75.373 84 82 84H110C116.627 84 122 89.373 122 96zM506 96V124C506 130.627 500.627 136 494 136H466C459.373 136 454 130.627 454 124V96C454 89.373 459.373 84 466 84H494C500.627 84 506 89.373 506 96zM122 260V288C122 294.627 116.627 300 110 300H82C75.373 300 70 294.627 70 288V260C70 253.373 75.373 248 82 248H110C116.627 248 122 253.373 122 260zM218 260V288C218 294.627 212.627 300 206 300H178C171.373 300 166 294.627 166 288V260C166 253.373 171.373 248 178 248H206C212.627 248 218 253.373 218 260zM314 260V288C314 294.627 308.627 300 302 300H274C267.373 300 262 294.627 262 288V260C262 253.373 267.373 248 274 248H302C308.627 248 314 253.373 314 260zM410 260V288C410 294.627 404.627 300 398 300H370C363.373 300 358 294.627 358 288V260C358 253.373 363.373 248 370 248H398C404.627 248 410 253.373 410 260zM506 260V288C506 294.627 500.627 300 494 300H466C459.373 300 454 294.627 454 288V260C454 253.373 459.373 248 466 248H494C500.627 248 506 253.373 506 260zM408 102V118C408 124.627 402.627 130 396 130H180C173.373 130 168 124.627 168 118V102C168 95.373 173.373 90 180 90H396C402.627 90 408 95.373 408 102z" />
    +    <glyph glyph-name="kiss-beam"
    +      unicode="&#xF597;"
    +      horiz-adv-x="496" d=" M168 296C144.2 296 115.3 266.7 112 224.6C111.7 220.9 114 217.4 117.6 216.3C121.1 215.3 125.1 216.8 126.9 220L136.4 237C144.1 250.7 155.6 258.6 167.9 258.6S191.7 250.7 199.4 237L208.9 220C211 216.3 215.1 215.3 218.2 216.3C221.8 217.4 224.1 220.8 223.8 224.6C220.7 266.7 191.8 296 168 296zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM304 140C304 159.2 275.2 181.5 232.5 184C228.7 184.4 225.1 181.6 224.3 177.8C223.4 174 225.4 170.1 229 168.6L245.9 161.4C258.9 155.9 266.7 147.9 266.7 139.9S258.9 123.9 246 118.4L229 111.2000000000001C223.3 108.8000000000001 223 99.0000000000001 229 96.4L245.9 89.2000000000001C258.9 83.7000000000001 266.7 75.7000000000001 266.7 67.7000000000001S258.9 51.7 246 46.2L229 39.0000000000001C225.4 37.5000000000001 223.4 33.6000000000001 224.3 29.8000000000001C225.1 26.2 228.4 23.6000000000001 232.1 23.6000000000001H232.6C275.4000000000001 26.1000000000001 304.1 48.4000000000001 304.1 67.6000000000001C304.1 80.6000000000001 290.7000000000001 94.9000000000001 268.9000000000001 103.6000000000001C290.6 112.7 304 127 304 140zM328 296C304.2 296 275.3 266.7 272 224.6C271.7 220.9 274 217.4 277.6 216.3C281.1 215.3 285.1 216.8 286.9000000000001 220L296.4000000000001 237C304.1 250.7 315.6 258.6 327.9000000000001 258.6S351.7000000000001 250.7 359.4000000000001 237L368.9000000000001 220C371.0000000000001 216.3 375.1 215.3 378.2000000000001 216.3C381.8000000000001 217.4 384.1 220.8 383.8000000000001 224.6C380.7000000000001 266.7 351.8000000000001 296 328.0000000000001 296z" />
    +    <glyph glyph-name="kiss-wink-heart"
    +      unicode="&#xF598;"
    +      horiz-adv-x="504" d=" M304 139.5C304 158.7 275.2 181 232.5 183.5C228.7 183.9 225.1 181.1 224.3 177.3C223.4 173.5 225.4 169.6 229 168.1L245.9 160.9C258.9 155.4 266.7 147.4 266.7 139.4S258.9 123.4 246 117.9L229 110.7000000000001C223.3 108.3000000000001 223 98.5000000000001 229 95.9L245.9 88.7000000000001C258.9 83.2000000000001 266.7 75.2000000000001 266.7 67.2000000000001S258.9 51.2 246 45.7L229 38.5000000000001C225.4 37.0000000000001 223.4 33.1000000000001 224.3 29.3000000000001C225.1 25.7 228.4 23.1000000000001 232.1 23.1000000000001H232.6C275.4000000000001 25.6000000000001 304.1 47.9000000000001 304.1 67.1000000000001C304.1 80.1000000000001 290.7000000000001 94.4000000000001 268.9000000000001 103.1000000000001C290.6 112.2000000000001 304.0000000000001 126.5000000000001 304.0000000000001 139.5000000000001zM374.5 223L384 214.5C387.8 211.2 393.3 210.5 397.7 212.9C402.1 215.3 404.6 220.3 403.8 225.3C399.8 250.5 369.6 267.4 344 267.4S288.1 250.5 284.2 225.3C283.4 220.3 285.9 215.3 290.3 212.9C296.1 209.8 301.5 212.2 304 214.5L313.5 223C328.3 236.2 359.7 236.2 374.5 223zM136 239.5C136 221.8 150.3 207.5 168 207.5S200 221.8 200 239.5S185.7 271.5 168 271.5S136 257.2 136 239.5zM501.1 45.5C493.1 66.3 469.6 77 448 71.4L439.6 69.2L437.3 77.6C431.4000000000001 98.9999999999999 410.3 114.1 388.3 110.6C363.1 106.6 347.7 81.9999999999999 354.3 57.9999999999999L377.2 -24.6C378.7 -29.9 384.2 -33.1 389.6 -31.7L472.6 -10.2C496.7 -3.9 510.3 21.6 501.1 45.4999999999999zM334 11.7C307.9 -0.8 278.8 -8 248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192C448 169.9 444.3 148.7 437.6 128.8C446.6 122.4 454.6 114.6 460.2 104.9C466.6 104.8 472.8000000000001 103.5000000000001 478.8000000000001 102.0000000000001C489.7 129.9 495.9000000000001 160.2000000000001 495.9000000000001 192.0000000000001C496 329 385 440 248 440S0 329 0 192S111 -56 248 -56C283.4 -56 316.9 -48.5 347.4 -35.1C344.9 -27.8 351.7 -52.3 334 11.7z" />
    +    <glyph glyph-name="kiss"
    +      unicode="&#xF596;"
    +      horiz-adv-x="496" d=" M168 272C150.3 272 136 257.7 136 240S150.3 208 168 208S200 222.3 200 240S185.7 272 168 272zM304 140C304 159.2 275.2 181.5 232.5 184C228.7 184.4 225.1 181.6 224.3 177.8C223.4 174 225.4 170.1 229 168.6L245.9 161.4C258.9 155.9 266.7 147.9 266.7 139.9S258.9 123.9 246 118.4L229 111.2000000000001C223.3 108.8000000000001 223 99.0000000000001 229 96.4L245.9 89.2000000000001C258.9 83.7000000000001 266.7 75.7000000000001 266.7 67.7000000000001S258.9 51.7 246 46.2L229 39.0000000000001C225.4 37.5000000000001 223.4 33.6000000000001 224.3 29.8000000000001C225.1 26.2 228.4 23.6000000000001 232.1 23.6000000000001H232.6C275.4000000000001 26.1000000000001 304.1 48.4000000000001 304.1 67.6000000000001C304.1 80.6000000000001 290.7000000000001 94.9000000000001 268.9000000000001 103.6000000000001C290.6 112.7 304 127 304 140zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" />
    +    <glyph glyph-name="laugh-beam"
    +      unicode="&#xF59A;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6S48 138.6 48 192S68.8 295.6 106.6 333.4S194.6 392 248 392S351.6 371.2 389.4 333.4S448 245.4 448 192S427.2 88.4 389.4 50.6zM328 296C304.2 296 275.3 266.7 272 224.6C271.3 216 282.8 212.7 286.9 220.1L296.4 237.1C304.1 250.8 315.6 258.7 327.9 258.7S351.7 250.8 359.4 237.1L368.9 220.1C373 212.7 384.5 216.1 383.8 224.6C380.7 266.7 351.8 296 328 296zM127 220.1L136.5 237.1C144.2 250.8 155.7 258.7 168 258.7S191.8 250.8 199.5 237.1L209 220.1C213.1 212.7 224.6 216.1 223.9 224.6C220.6 266.7 191.7 296 167.9 296S115.2 266.7 111.9 224.6C111.3 216.1 122.8 212.7 127 220.1zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" />
    +    <glyph glyph-name="laugh-squint"
    +      unicode="&#xF59B;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6S48 138.6 48 192S68.8 295.6 106.6 333.4S194.6 392 248 392S351.6 371.2 389.4 333.4S448 245.4 448 192S427.2 88.4 389.4 50.6zM343.6 252L377.2000000000001 292.3C385.8000000000001 302.6 373.4000000000001 317.1 361.8000000000001 310.3L281.8000000000001 262.3C274.0000000000001 257.6 274.0000000000001 246.4 281.8000000000001 241.7L361.8000000000001 193.7C373.3000000000001 186.9 385.8000000000001 201.3 377.2000000000001 211.7L343.6 252zM134.2 193.7L214.2 241.7C222 246.4 222 257.6 214.2 262.3L134.2 310.3C122.6 317.2 110.2 302.6 118.8 292.3L152.4 252L118.8 211.7C110.1 201.3 122.6 186.9 134.2 193.7zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" />
    +    <glyph glyph-name="laugh-wink"
    +      unicode="&#xF59C;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6C68.8 88.4 48 138.6 48 192S68.8 295.6 106.6 333.4C144.4 371.2 194.6 392 248 392S351.6 371.2 389.4 333.4C427.2 295.6 448 245.4 448 192S427.2 88.4 389.4 50.6zM328 284C302.3 284 272.1 267.1 268.1 241.9C266.4000000000001 230.7 279.6 223.7 287.9000000000001 231.1L297.4000000000001 239.6C312.2000000000001 252.8 343.6 252.8 358.4000000000001 239.6L367.9000000000001 231.1C376.4000000000001 223.7 389.5000000000001 230.8 387.7000000000001 241.9C383.9000000000001 267.1 353.7000000000001 284 328.0000000000001 284zM168 224C185.7 224 200 238.3 200 256S185.7 288 168 288S136 273.7 136 256S150.3 224 168 224zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" />
    +    <glyph glyph-name="laugh"
    +      unicode="&#xF599;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6S48 138.6 48 192S68.8 295.6 106.6 333.4S194.6 392 248 392S351.6 371.2 389.4 333.4S448 245.4 448 192S427.2 88.4 389.4 50.6zM328 224C345.7 224 360 238.3 360 256S345.7 288 328 288S296 273.7 296 256S310.3 224 328 224zM168 224C185.7 224 200 238.3 200 256S185.7 288 168 288S136 273.7 136 256S150.3 224 168 224zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" />
    +    <glyph glyph-name="lemon"
    +      unicode="&#xF094;"
    +      horiz-adv-x="512" d=" M484.112 420.111C455.989 448.233 416.108 456.057 387.0590000000001 439.135C347.604 416.152 223.504 489.111 91.196 356.803C-41.277 224.328 31.923 100.528 8.866 60.942C-8.056 31.891 -0.234 -7.99 27.888 -36.112C56.023 -64.247 95.899 -72.0499999999999 124.945 -55.133C164.368 -32.163 288.502 -105.102 420.803 27.196C553.277 159.673 480.076 283.473 503.134 323.057C520.056 352.1070000000001 512.234 391.988 484.112 420.111zM461.707 347.217C422.907 280.608 507.307 181.582 386.862 61.137C266.422 -59.306 167.387 25.089 100.786 -13.706C78.1069999999999 -26.913 36.751 13.535 50.2929999999999 36.782C89.0929999999999 103.391 4.6929999999999 202.417 125.138 322.862C245.573 443.298 344.616 358.914 411.219 397.708C433.949 410.948 475.224 370.42 461.707 347.217zM291.846 338.481C293.216 327.521 285.442 317.524 274.481 316.154C219.635 309.299 138.702 228.367 131.846 173.519C130.473 162.53 120.447 154.785 109.52 156.154C98.559 157.524 90.785 167.52 92.155 178.48C101.317 251.766 196.322 346.6950000000001 269.5200000000001 355.8450000000001C280.473 357.213 290.4760000000001 349.442 291.8460000000001 338.481z" />
    +    <glyph glyph-name="life-ring"
    +      unicode="&#xF1CD;"
    +      horiz-adv-x="512" d=" M256 -56C392.967 -56 504 55.033 504 192S392.967 440 256 440S8 328.967 8 192S119.033 -56 256 -56zM152.602 20.72L206.013 74.131C237.819 60.625 274.141 60.609 305.987 74.131L359.398 20.72C296.1810000000001 -17.599 215.819 -17.599 152.602 20.72zM336 192C336 147.888 300.112 112 256 112S176 147.888 176 192S211.888 272 256 272S336 236.112 336 192zM427.28 88.602L373.869 142.013C387.374 173.819 387.391 210.141 373.869 241.987L427.28 295.398C465.599 232.181 465.599 151.819 427.28 88.602zM359.397 363.28L305.986 309.8690000000001C274.18 323.374 237.858 323.391 206.013 309.8690000000001L152.602 363.28C215.819 401.599 296.1810000000001 401.599 359.397 363.28zM84.72 295.398L138.131 241.987C124.625 210.181 124.609 173.859 138.131 142.013L84.72 88.602C46.401 151.819 46.401 232.181 84.72 295.398z" />
    +    <glyph glyph-name="lightbulb"
    +      unicode="&#xF0EB;"
    +      horiz-adv-x="352" d=" M176 368C123.06 368 80 324.94 80 272C80 263.16 87.16 256 96 256S112 263.16 112 272C112 307.3 140.72 336 176 336C184.84 336 192 343.16 192 352S184.84 368 176 368zM96.06 -11.17C96.06 -14.32 96.99 -17.39 98.74 -20.01L123.25 -56.85C126.22 -61.31 131.22 -63.99 136.57 -63.99H215.42C220.78 -63.99 225.7800000000001 -61.31 228.74 -56.85L253.25 -20.01C254.99 -17.39 255.92 -14.31 255.93 -11.17L255.98 32.01H96.02L96.06 -11.17zM176 448C73.72 448 0 365.03 0 272C0 227.63 16.45 187.15 43.56 156.22C60.2 137.23 86.3 97.42 95.98 64.0600000000001V64.0000000000001H143.98V64.1200000000001C143.97 68.89 143.26 73.6300000000001 141.83 78.1900000000001C136.24 96.0000000000001 119.01 142.96 79.66 187.8600000000001C59.12 211.2900000000001 48.14 241.0100000000001 48.05 272.0000000000001C47.85 345.6400000000001 107.72 400.0000000000001 176 400.0000000000001C246.58 400.0000000000001 304 342.5800000000001 304 272.0000000000001C304 241.0300000000001 292.76 211.1500000000001 272.35 187.8600000000001C233.24 143.2500000000001 215.93 96.3900000000001 210.25 78.4000000000001A47.507 47.507 0 0 1 208.03 64.1000000000001V64.0000000000001H256.0300000000001V64.0500000000001C265.7100000000001 97.4200000000001 291.8100000000001 137.2300000000001 308.4500000000001 156.21C335.55 187.15 352 227.63 352 272C352 369.2 273.2 448 176 448z" />
    +    <glyph glyph-name="list-alt"
    +      unicode="&#xF022;"
    +      horiz-adv-x="512" d=" M464 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H464C490.51 -32 512 -10.51 512 16V368C512 394.51 490.51 416 464 416zM458 16H54A6 6 0 0 0 48 22V362A6 6 0 0 0 54 368H458A6 6 0 0 0 464 362V22A6 6 0 0 0 458 16zM416 108V84C416 77.373 410.627 72 404 72H204C197.373 72 192 77.373 192 84V108C192 114.627 197.373 120 204 120H404C410.627 120 416 114.627 416 108zM416 204V180C416 173.373 410.627 168 404 168H204C197.373 168 192 173.373 192 180V204C192 210.627 197.373 216 204 216H404C410.627 216 416 210.627 416 204zM416 300V276C416 269.373 410.627 264 404 264H204C197.373 264 192 269.373 192 276V300C192 306.627 197.373 312 204 312H404C410.627 312 416 306.627 416 300zM164 288C164 268.118 147.882 252 128 252S92 268.118 92 288S108.118 324 128 324S164 307.882 164 288zM164 192C164 172.118 147.882 156 128 156S92 172.118 92 192S108.118 228 128 228S164 211.882 164 192zM164 96C164 76.118 147.882 60 128 60S92 76.118 92 96S108.118 132 128 132S164 115.882 164 96z" />
    +    <glyph glyph-name="map"
    +      unicode="&#xF279;"
    +      horiz-adv-x="576" d=" M560.02 416C558.06 416 556.04 415.63 554.06 414.8400000000001L384.01 352H384L212 412.7200000000001A64.252 64.252 0 0 1 191.76 416C185.07 416 178.39 414.95 171.95 412.86L20.12 360.05A32.006 32.006 0 0 1 0 330.3400000000001V-15.98C0 -25.17 7.53 -32 15.99 -32C17.95 -32 19.96 -31.63 21.95 -30.84L192 32L364 -28.71A63.97999999999999 63.97999999999999 0 0 1 404.05 -28.86L555.88 23.95A31.996 31.996 0 0 1 576 53.66V399.98C576 409.17 568.47 416 560.02 416zM224 357.58L352 312.39V26.42L224 71.61V357.58zM48 29.95V318.93L176 363.4600000000001V77.26L175.36 77.03L48 29.95zM528 65.08L400 20.55V306.74L400.64 306.98L528 354.05V65.08z" />
    +    <glyph glyph-name="meh-blank"
    +      unicode="&#xF5A4;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 272C150.3 272 136 257.7 136 240S150.3 208 168 208S200 222.3 200 240S185.7 272 168 272zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" />
    +    <glyph glyph-name="meh-rolling-eyes"
    +      unicode="&#xF5A5;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM336 296C296.2 296 264 263.8 264 224S296.2 152 336 152S408 184.2 408 224S375.8 296 336 296zM336 184C313.9 184 296 201.9 296 224C296 237.6 303.3 249.1 313.7 256.3C312.7 253.7 312 251 312 248C312 234.7 322.7 224 336 224S360 234.7 360 248C360 250.9 359.3 253.7 358.3 256.3C368.7 249.1 376 237.6 376 224C376 201.9 358.1 184 336 184zM232 224C232 263.8 199.8 296 160 296S88 263.8 88 224S120.2 152 160 152S232 184.2 232 224zM120 224C120 237.6 127.3 249.1 137.7 256.3C136.7 253.7 136 251 136 248C136 234.7 146.7 224 160 224S184 234.7 184 248C184 250.9 183.3 253.7 182.3 256.3C192.7 249.1 200 237.6 200 224C200 201.9 182.1 184 160 184S120 201.9 120 224zM312 96H184C170.8 96 160 85.2 160 72S170.8 48 184 48H312C325.2 48 336 58.8 336 72S325.2 96 312 96z" />
    +    <glyph glyph-name="meh"
    +      unicode="&#xF11A;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM336 128H160C146.8 128 136 117.2 136 104S146.8 80 160 80H336C349.2 80 360 90.8 360 104S349.2 128 336 128z" />
    +    <glyph glyph-name="minus-square"
    +      unicode="&#xF146;"
    +      horiz-adv-x="448" d=" M108 164C101.4 164 96 169.4 96 176V208C96 214.6 101.4 220 108 220H340C346.6 220 352 214.6 352 208V176C352 169.4 346.6 164 340 164H108zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
    +    <glyph glyph-name="money-bill-alt"
    +      unicode="&#xF3D1;"
    +      horiz-adv-x="640" d=" M320 304C266.98 304 224 253.86 224 192C224 130.15 266.98 80 320 80C373 80 416 130.13 416 192C416 253.86 373.02 304 320 304zM360 136C360 131.58 356.42 128 352 128H288C283.58 128 280 131.58 280 136V152C280 156.42 283.58 160 288 160H304V215.44L303.53 215.13A7.991999999999999 7.991999999999999 0 0 0 292.44 217.35L283.56 230.66A7.991999999999999 7.991999999999999 0 0 0 285.7800000000001 241.75L301.11 251.97A23.99 23.99 0 0 0 314.42 256H328C332.42 256 336 252.42 336 248V160H352C356.42 160 360 156.42 360 152V136zM608 384H32C14.33 384 0 369.67 0 352V32C0 14.33 14.33 0 32 0H608C625.67 0 640 14.33 640 32V352C640 369.67 625.67 384 608 384zM592 112C556.65 112 528 83.35 528 48H112C112 83.35 83.35 112 48 112V272C83.35 272 112 300.65 112 336H528C528 300.65 556.65 272 592 272V112z" />
    +    <glyph glyph-name="moon"
    +      unicode="&#xF186;"
    +      horiz-adv-x="512" d=" M279.135 -64C357.891 -64 430.117 -28.196 477.979 30.775C506.249 65.606 475.421 116.497 431.73 108.176C349.382 92.493 273.458 155.444 273.458 238.968C273.458 287.392 299.518 331.26 340.892 354.804C379.637 376.854 369.891 435.592 325.87 443.723A257.936 257.936 0 0 1 279.135 448C137.775 448 23.135 333.425 23.135 192C23.135 50.64 137.711 -64 279.135 -64zM279.135 400C292.12 400 304.824 398.799 317.151 396.522C262.391 365.359 225.4580000000001 306.48 225.4580000000001 238.968C225.4580000000001 125.12 329.0990000000001 39.768 440.7100000000001 61.024C402.574 14.036 344.366 -16 279.135 -16C164.26 -16 71.135 77.125 71.135 192S164.26 400 279.135 400z" />
    +    <glyph glyph-name="newspaper"
    +      unicode="&#xF1EA;"
    +      horiz-adv-x="576" d=" M552 384H112C91.142 384 73.357 370.623 66.752 352H24C10.745 352 0 341.255 0 328V56C0 25.072 25.072 0 56 0H552C565.255 0 576 10.745 576 24V360C576 373.255 565.255 384 552 384zM48 56V304H64V56C64 51.589 60.411 48 56 48S48 51.589 48 56zM528 48H111.422C111.796 50.614 112 53.283 112 56V336H528V48zM172 168H308C314.627 168 320 173.373 320 180V276C320 282.627 314.627 288 308 288H172C165.373 288 160 282.627 160 276V180C160 173.373 165.373 168 172 168zM200 248H280V208H200V248zM160 108V132C160 138.627 165.373 144 172 144H308C314.627 144 320 138.627 320 132V108C320 101.373 314.627 96 308 96H172C165.373 96 160 101.373 160 108zM352 108V132C352 138.627 357.373 144 364 144H468C474.627 144 480 138.627 480 132V108C480 101.373 474.627 96 468 96H364C357.373 96 352 101.373 352 108zM352 252V276C352 282.627 357.373 288 364 288H468C474.627 288 480 282.627 480 276V252C480 245.373 474.627 240 468 240H364C357.373 240 352 245.373 352 252zM352 180V204C352 210.627 357.373 216 364 216H468C474.627 216 480 210.627 480 204V180C480 173.373 474.627 168 468 168H364C357.373 168 352 173.373 352 180z" />
    +    <glyph glyph-name="object-group"
    +      unicode="&#xF247;"
    +      horiz-adv-x="512" d=" M500 320C506.627 320 512 325.373 512 332V404C512 410.627 506.627 416 500 416H428C421.373 416 416 410.627 416 404V392H96V404C96 410.627 90.627 416 84 416H12C5.373 416 0 410.627 0 404V332C0 325.373 5.373 320 12 320H24V64H12C5.373 64 0 58.627 0 52V-20C0 -26.627 5.373 -32 12 -32H84C90.627 -32 96 -26.627 96 -20V-8H416V-20C416 -26.627 421.373 -32 428 -32H500C506.627 -32 512 -26.627 512 -20V52C512 58.627 506.627 64 500 64H488V320H500zM448 384H480V352H448V384zM32 384H64V352H32V384zM64 0H32V32H64V0zM480 0H448V32H480V0zM440 64H428C421.373 64 416 58.627 416 52V40H96V52C96 58.627 90.627 64 84 64H72V320H84C90.627 320 96 325.373 96 332V344H416V332C416 325.373 421.373 320 428 320H440V64zM404 256H320V308C320 314.628 314.627 320 308 320H108C101.373 320 96 314.628 96 308V140C96 133.372 101.373 128 108 128H192V76C192 69.372 197.373 64 204 64H404C410.627 64 416 69.372 416 76V244C416 250.628 410.627 256 404 256zM136 280H280V168H136V280zM376 104H232V128H308C314.627 128 320 133.372 320 140V216H376V104z" />
    +    <glyph glyph-name="object-ungroup"
    +      unicode="&#xF248;"
    +      horiz-adv-x="576" d=" M564 224C570.627 224 576 229.373 576 236V308C576 314.627 570.627 320 564 320H492C485.373 320 480 314.627 480 308V296H392V320H404C410.627 320 416 325.373 416 332V404C416 410.627 410.627 416 404 416H332C325.373 416 320 410.627 320 404V392H96V404C96 410.627 90.627 416 84 416H12C5.373 416 0 410.627 0 404V332C0 325.373 5.373 320 12 320H24V160H12C5.373 160 0 154.627 0 148V76C0 69.373 5.373 64 12 64H84C90.627 64 96 69.373 96 76V88H184V64H172C165.373 64 160 58.627 160 52V-20C160 -26.627 165.373 -32 172 -32H244C250.627 -32 256 -26.627 256 -20V-8H480V-20C480 -26.627 485.373 -32 492 -32H564C570.627 -32 576 -26.627 576 -20V52C576 58.627 570.627 64 564 64H552V224H564zM352 384H384V352H352V384zM352 128H384V96H352V128zM64 96H32V128H64V96zM64 352H32V384H64V352zM96 136V148C96 154.627 90.627 160 84 160H72V320H84C90.627 320 96 325.373 96 332V344H320V332C320 325.373 325.373 320 332 320H344V160H332C325.373 160 320 154.627 320 148V136H96zM224 0H192V32H224V0zM504 64H492C485.373 64 480 58.627 480 52V40H256V52C256 58.627 250.627 64 244 64H232V88H320V76C320 69.373 325.373 64 332 64H404C410.627 64 416 69.373 416 76V148C416 154.627 410.627 160 404 160H392V248H480V236C480 229.373 485.373 224 492 224H504V64zM544 0H512V32H544V0zM544 256H512V288H544V256z" />
    +    <glyph glyph-name="paper-plane"
    +      unicode="&#xF1D8;"
    +      horiz-adv-x="512" d=" M440 441.5L24 201.6C-10.4 181.7 -7.1 130.8 29.7 115.7L144 68.4V-16C144 -62.4 203.2 -81.5 230.6 -44.6L274.4 14.5L386.3 -31.7C392.2 -34.1 398.4 -35.3 404.6 -35.3C412.8 -35.3 420.9 -33.2 428.2 -29.1C441 -21.9 449.8 -9.1 452.1 5.4L511.4999999999999 392.6C517.5999999999999 432.7 474.6 461.4 440 441.5zM192 -16V48.6L228.6 33.5L192 -16zM404.6 12.7L250.8 76.2L391 278.5C401.7 294 381.5 312 367.3 299.7L155.8 115.4L48 160L464 400L404.6 12.7z" />
    +    <glyph glyph-name="pause-circle"
    +      unicode="&#xF28B;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM352 272V112C352 103.2 344.8 96 336 96H288C279.2 96 272 103.2 272 112V272C272 280.8 279.2 288 288 288H336C344.8 288 352 280.8 352 272zM240 272V112C240 103.2 232.8 96 224 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H224C232.8 288 240 280.8 240 272z" />
    +    <glyph glyph-name="play-circle"
    +      unicode="&#xF144;"
    +      horiz-adv-x="512" d=" M371.7 210L195.7 317C179.9 325.8 160 314.5 160 296V88C160 69.6 179.8 58.2 195.7 67L371.7 168C388.1 177.1 388.1 200.8 371.7 210zM504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192z" />
    +    <glyph glyph-name="plus-square"
    +      unicode="&#xF0FE;"
    +      horiz-adv-x="448" d=" M352 208V176C352 169.4 346.6 164 340 164H252V76C252 69.4 246.6 64 240 64H208C201.4 64 196 69.4 196 76V164H108C101.4 164 96 169.4 96 176V208C96 214.6 101.4 220 108 220H196V308C196 314.6 201.4 320 208 320H240C246.6 320 252 314.6 252 308V220H340C346.6 220 352 214.6 352 208zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
    +    <glyph glyph-name="question-circle"
    +      unicode="&#xF059;"
    +      horiz-adv-x="512" d=" M256 440C119.043 440 8 328.9170000000001 8 192C8 55.003 119.043 -56 256 -56S504 55.003 504 192C504 328.9170000000001 392.957 440 256 440zM256 -8C145.468 -8 56 81.431 56 192C56 302.495 145.472 392 256 392C366.491 392 456 302.529 456 192C456 81.47 366.569 -8 256 -8zM363.2440000000001 247.2C363.2440000000001 180.148 290.8230000000001 179.116 290.8230000000001 154.337V148C290.8230000000001 141.373 285.4500000000001 136 278.8230000000001 136H233.1760000000001C226.5490000000001 136 221.1760000000001 141.373 221.1760000000001 148V156.659C221.1760000000001 192.404 248.2760000000001 206.693 268.7550000000001 218.175C286.3160000000001 228.02 297.0790000000001 234.716 297.0790000000001 247.754C297.0790000000001 265 275.0800000000001 276.447 257.2950000000001 276.447C234.1060000000001 276.447 223.4010000000001 265.4700000000001 208.3530000000001 246.478C204.2960000000001 241.358 196.8930000000001 240.407 191.6870000000001 244.354L163.8630000000001 265.452C158.7560000000001 269.324 157.6120000000001 276.5180000000001 161.2190000000001 281.815C184.846 316.509 214.94 336 261.794 336C310.865 336 363.244 297.6960000000001 363.244 247.2zM298 80C298 56.841 279.159 38 256 38S214 56.841 214 80S232.841 122 256 122S298 103.159 298 80z" />
    +    <glyph glyph-name="registered"
    +      unicode="&#xF25D;"
    +      horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 -8C145.468 -8 56 81.451 56 192C56 302.531 145.451 392 256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8zM366.442 73.791C313.396 170.075 316.192 165.259 313.171 169.876C337.438 183.755 352.653 211.439 352.653 243.052C352.653 295.555 322.406 328.304 251.1550000000001 328.304H172.488C165.8710000000001 328.304 160.488 322.921 160.488 316.304V68C160.488 61.383 165.8710000000001 56 172.488 56H211.0560000000001C217.673 56 223.0560000000001 61.383 223.0560000000001 68V151.663H255.0140000000001L302.5290000000001 62.36A11.98 11.98 0 0 1 313.1220000000001 56H355.9320000000001C365.0720000000001 56 370.8460000000001 65.799 366.4420000000001 73.791zM256.933 208.094H223.058V272.234H250.435C282.852 272.234 289.3640000000001 260.101 289.3640000000001 240.525C289.3630000000001 219.612 277.846 208.094 256.9330000000001 208.094z" />
    +    <glyph glyph-name="sad-cry"
    +      unicode="&#xF5B3;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM392 53.6V168C392 181.2 381.2 192 368 192S344 181.2 344 168V16.6C315.5 1 282.8 -8 248 -8S180.5 1 152 16.6V168C152 181.2 141.2 192 128 192S104 181.2 104 168V53.6C69.4 89.6 48 138.3 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 138.3 426.6 89.5 392 53.6zM205.8 213.5C210.2 215.9 212.7 220.9 211.9 225.9C207.9 251.1 177.7 268 152.1 268S96.2 251.1 92.3 225.9C91.5 220.9 94 215.9 98.4 213.5C102.8 211.1 108.3 211.7 112.1 215.1L121.6 223.6C136.4 236.8 167.8 236.8 182.6 223.6L192.1 215.1C194.6 212.8 200 210.3 205.8 213.5zM344 268C318.3 268 288.1 251.1 284.2 225.9C283.4 220.9 285.9 215.9 290.3 213.5C294.8 211.1 300.2 211.7 304 215.1L313.5 223.6C328.3 236.8 359.7 236.8 374.5 223.6L384 215.1C386.5 212.9 392 210.4 397.7 213.5C402.1 215.9 404.6 220.9 403.8 225.9C399.9000000000001 251.1 369.7 268 344 268zM248 176C217.1 176 192 147.3 192 112S217.1 48 248 48S304 76.7 304 112S278.9 176 248 176z" />
    +    <glyph glyph-name="sad-tear"
    +      unicode="&#xF5B4;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM256 144C242.8 144 232 133.2 232 120S242.8 96 256 96C279.8 96 302.3 85.5 317.6 67.2C325.7000000000001 57.4 340.8 55.3 351.4000000000001 64.1C361.6 72.6 363.0000000000001 87.7 354.5000000000001 97.9C330 127.2 294.1 144 256 144zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM162.4 173.2C151 157.9 126 122.6 126 105.1C126 82.4 144.8 64 168 64S210 82.4 210 105.1C210 122.6 185 157.9 173.6 173.2000000000001C170.8 176.9 165.2 176.9 162.4 173.2000000000001z" />
    +    <glyph glyph-name="save"
    +      unicode="&#xF0C7;"
    +      horiz-adv-x="448" d=" M433.941 318.059L350.059 401.9410000000001A48 48 0 0 1 316.118 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V284.118A48 48 0 0 1 433.941 318.059zM272 368V288H144V368H272zM394 16H54A6 6 0 0 0 48 22V362A6 6 0 0 0 54 368H96V264C96 250.745 106.745 240 120 240H296C309.255 240 320 250.745 320 264V364.118L398.243 285.875A6 6 0 0 0 400 281.632V22A6 6 0 0 0 394 16zM224 216C175.477 216 136 176.523 136 128S175.477 40 224 40S312 79.477 312 128S272.523 216 224 216zM224 88C201.944 88 184 105.944 184 128S201.944 168 224 168S264 150.056 264 128S246.056 88 224 88z" />
    +    <glyph glyph-name="share-square"
    +      unicode="&#xF14D;"
    +      horiz-adv-x="576" d=" M561.938 289.94L417.94 433.908C387.926 463.922 336 442.903 336 399.968V342.77C293.55 340.89 251.97 336.2200000000001 215.24 324.7800000000001C180.07 313.8300000000001 152.17 297.2000000000001 132.33 275.36C108.22 248.8 96 215.4 96 176.06C96 114.363 129.178 63.605 180.87 31.3C218.416 7.792 266.118 43.951 251.89 87.04C236.375 134.159 234.734 157.963 336 165.8V112C336 69.007 387.968 48.087 417.94 78.06L561.938 222.06C580.688 240.8 580.688 271.2 561.938 289.94zM384 112V215.84C255.309 213.918 166.492 192.65 206.31 72C176.79 90.45 144 123.92 144 176.06C144 285.394 273.14 295.007 384 295.91V400L528 256L384 112zM408.74 27.507A82.658 82.658 0 0 1 429.714 36.81C437.69 41.762 448 35.984 448 26.596V-16C448 -42.51 426.51 -64 400 -64H48C21.49 -64 0 -42.51 0 -16V336C0 362.51 21.49 384 48 384H180C186.627 384 192 378.627 192 372V367.514C192 362.597 189.013 358.145 184.431 356.362C170.729 351.031 158.035 344.825 146.381 337.777A12.138 12.138 0 0 0 140.101 336H54A6 6 0 0 1 48 330V-10A6 6 0 0 1 54 -16H394A6 6 0 0 1 400 -10V15.966C400 21.336 403.579 26.025 408.74 27.507z" />
    +    <glyph glyph-name="smile-beam"
    +      unicode="&#xF5B8;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM332 135.4C311.2 110.4 280.5 96 248 96S184.8 110.3 164 135.4C155.5 145.6 140.4 146.9 130.2 138.5C120 130 118.7 114.9 127.1 104.7C157.1 68.7 201.2 48.1 248 48.1S338.9 68.7 368.9 104.7C377.4 114.9 376 130 365.8 138.5C355.6 146.9 340.5 145.6 332 135.4zM136.5 237C144.2 250.7 155.7 258.6 168 258.6S191.8 250.7 199.5 237L209 220C211.1 216.3 215.2 215.3 218.3 216.3C221.9 217.4 224.3 220.8 224 224.6C220.7 266.7000000000001 191.8 296 168 296S115.3 266.7000000000001 112 224.6C111.7 220.9 114.1 217.4 117.7 216.3C121.1 215.2 125.1 216.8 127 220L136.5 237zM328 296C304.2 296 275.3 266.7 272 224.6C271.7 220.9 274.1 217.4 277.7 216.3C281.2 215.2 285.1 216.8 287 220L296.5 237C304.2 250.7 315.7 258.6 328 258.6S351.8 250.7 359.5 237L369 220C371.1 216.3 375.2 215.3 378.3 216.3C381.9000000000001 217.4 384.3 220.8 384 224.6C380.7 266.7 351.8 296 328 296z" />
    +    <glyph glyph-name="smile-wink"
    +      unicode="&#xF4DA;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM365.8 138.4C355.6 146.9 340.5 145.5 332 135.3C311.2 110.3 280.5 95.9 248 95.9S184.8 110.2 164 135.3C155.5 145.5 140.3 146.8 130.2 138.4C120 129.9 118.7 114.8 127.1 104.6C157.1 68.6 201.2 47.9999999999999 248 47.9999999999999S338.9 68.6 368.9 104.6C377.4 114.8 376 129.9 365.8 138.4zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 268C302.3 268 272.1 251.1 268.1 225.9C266.4000000000001 214.7 279.6 207.7 287.9000000000001 215.1L297.4000000000001 223.6C312.2000000000001 236.8 343.6 236.8 358.4000000000001 223.6L367.9000000000001 215.1C376.4000000000001 207.7 389.5000000000001 214.8 387.7000000000001 225.9C383.9000000000001 251.1 353.7000000000001 268 328.0000000000001 268z" />
    +    <glyph glyph-name="smile"
    +      unicode="&#xF118;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 208C345.7 208 360 222.3 360 240S345.7 272 328 272S296 257.7 296 240S310.3 208 328 208zM332 135.4C311.2 110.4 280.5 96 248 96S184.8 110.3 164 135.4C155.5 145.6 140.3 146.9 130.2 138.5C120 130 118.7 114.9 127.1 104.7C157.1 68.7 201.2 48.1 248 48.1S338.9 68.7 368.9 104.7C377.4 114.9 376 130 365.8 138.5C355.7 146.9 340.5 145.6 332 135.4z" />
    +    <glyph glyph-name="snowflake"
    +      unicode="&#xF2DC;"
    +      horiz-adv-x="448" d=" M438.237 92.073L371.663 130.613L431.111 140.94C436.957 142.315 441.72 146.123 444.569 151.07C447.0490000000001 155.377 448.075 160.548 447.093 165.721C444.983 176.836 434.4070000000001 183.76 423.4720000000001 181.188L338.0490000000001 150.073L255.914 192L338.05 233.926L423.473 202.811C434.409 200.239 444.985 207.163 447.094 218.278C449.205 229.393 442.048 240.487 431.113 243.059L371.665 253.386L438.238 291.926C447.778 297.449 450.853 310.018 445.105 320C439.357 329.982 426.965 333.596 417.425 328.074L350.851 289.534L371.656 346.3210000000001C374.902 357.103 368.898 368.863 358.243 372.589C347.589 376.314 336.3209999999999 370.592 333.075 359.81L317.2369999999999 270.075L244.8139999999999 228.149V312L314.3989999999999 370.621C322.0879999999999 378.831 321.3959999999999 391.4770000000001 312.8509999999999 398.866C304.3059999999999 406.257 291.1459999999999 405.589 283.4569999999999 397.38L244.8129999999999 350.92V428C244.8129999999999 439.046 235.4949999999999 448 223.9999999999999 448S203.1869999999999 439.046 203.1869999999999 428V350.92L164.5429999999999 397.38C156.8539999999999 405.5900000000001 143.6939999999999 406.256 135.1489999999999 398.866C126.6049999999999 391.477 125.9129999999999 378.831 133.6019999999999 370.621L203.187 312V228.147L130.764 270.073L114.926 359.809C111.679 370.591 100.411 376.313 89.757 372.588C79.101 368.863 73.098 357.102 76.344 346.32L97.149 289.533L30.576 328.073C21.036 333.596 8.643 329.981 2.896 319.999S0.223 297.448 9.763 291.925L76.337 253.385L16.888 243.057C5.953 240.485 -1.202 229.391 0.907 218.276C3.017 207.162 13.593 200.238 24.529 202.81L109.951 233.925L192.086 192L109.95 150.074L24.527 181.189C13.591 183.761 3.016 176.8370000000001 0.905 165.723C-1.204 154.61 5.951 143.514 16.886 140.942L76.335 130.614L9.761 92.074C0.223 86.551 -2.852 73.982 2.896 64S21.036 50.403 30.576 55.926L97.15 94.466L76.345 37.68C74.61 31.916 75.517 25.875 78.365 20.929C80.845 16.622 84.798 13.145 89.757 11.412C100.412 7.687 111.68 13.409 114.926 24.191L130.764 113.927L203.187 155.853V72L133.602 13.379C125.912 5.169 126.605 -7.476 135.149 -14.866C143.693 -22.254 156.854 -21.589 164.543 -13.379L203.187 33.081V-44C203.187 -55.046 212.505 -64 224 -64S244.813 -55.046 244.813 -44V33.081L283.457 -13.379C287.568 -17.768 293.2389999999999 -19.9999999999999 298.935 -19.9999999999999C303.8949999999999 -19.9999999999999 308.874 -18.3059999999999 312.851 -14.8659999999999C321.396 -7.4759999999999 322.088 5.1690000000001 314.399 13.3790000000001L244.813 72V155.853L317.236 113.927L333.074 24.191C336.32 13.409 347.588 7.687 358.242 11.412C368.8950000000001 15.138 374.901 26.8990000000001 371.654 37.6800000000001L350.849 94.467L417.423 55.927C426.963 50.404 439.356 54.019 445.103 64.001C450.852 73.982 447.778 86.5510000000001 438.237 92.073z" />
    +    <glyph glyph-name="square"
    +      unicode="&#xF0C8;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM394 16H54C50.7 16 48 18.7 48 22V362C48 365.3 50.7 368 54 368H394C397.3 368 400 365.3 400 362V22C400 18.7 397.3 16 394 16z" />
    +    <glyph glyph-name="star-half"
    +      unicode="&#xF089;"
    +      horiz-adv-x="576" d=" M288 62.7L163.7 -2.7L187.4 135.6999999999999L86.8 233.7L225.8 253.8999999999999L288 379.8999999999999V448C276.6 448 265.2 442.1 259.3 430.2L194 297.8L47.9 276.6C21.7 272.8 11.2 240.5 30.2 222L135.9 119L110.9 -26.5C106.4 -52.6 133.9 -72.5 157.3 -60.2L288 8.4V62.7z" />
    +    <glyph glyph-name="star"
    +      unicode="&#xF005;"
    +      horiz-adv-x="576" d=" M528.1 276.5L382 297.8L316.7 430.2C305 453.8 271.1 454.1 259.3 430.2L194 297.8L47.9 276.5C21.7 272.7 11.2 240.4 30.2 221.9L135.9 118.9L110.9 -26.6C106.4 -52.9 134.1 -72.6 157.3 -60.3L288 8.4L418.7 -60.3C441.9 -72.5 469.6 -52.9 465.1 -26.6L440.1 118.9L545.8 221.9C564.8 240.4 554.3 272.7 528.0999999999999 276.5zM388.6 135.7L412.3 -2.7L288 62.6L163.7 -2.7L187.4 135.7000000000001L86.8 233.7000000000001L225.8 253.9000000000001L288 379.9000000000001L350.2 253.9000000000001L489.2 233.7000000000001L388.6 135.7000000000001z" />
    +    <glyph glyph-name="sticky-note"
    +      unicode="&#xF249;"
    +      horiz-adv-x="448" d=" M448 99.894V368C448 394.51 426.51 416 400 416H48C21.49 416 0 394.51 0 368V16.012C0 -10.498 21.49 -31.988 48 -31.988H316.118A48 48 0 0 1 350.059 -17.929L433.941 65.953A48 48 0 0 1 448 99.894zM320 19.894V96.012H396.118L320 19.894zM400 368V144.012H296C282.745 144.012 272 133.267 272 120.012V16.012H48V368H400z" />
    +    <glyph glyph-name="stop-circle"
    +      unicode="&#xF28D;"
    +      horiz-adv-x="512" d=" M504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192zM352 272V112C352 103.2 344.8 96 336 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H336C344.8 288 352 280.8 352 272z" />
    +    <glyph glyph-name="sun"
    +      unicode="&#xF185;"
    +      horiz-adv-x="512" d=" M220.116 -39.936L199.903 9.489A3.9920000000000004 3.9920000000000004 0 0 1 194.095 11.3750000000001L148.691 -16.7289999999999C119.225 -34.9689999999999 82.396 -8.2099999999999 90.637 25.45L103.336 77.3150000000001A3.9930000000000003 3.9930000000000003 0 0 1 99.746 82.256L46.495 86.2070000000001C11.941 88.7690000000001 -2.137 132.0620000000001 24.321 154.4540000000001L65.08 188.95A3.9920000000000004 3.9920000000000004 0 0 1 65.08 195.056L24.32 229.553C-2.13 251.937 11.93 295.235 46.494 297.799L99.745 301.75A3.9930000000000003 3.9930000000000003 0 0 1 103.335 306.691L90.637 358.557C82.398 392.213 119.218 418.977 148.691 400.736L194.094 372.632A3.9930000000000003 3.9930000000000003 0 0 1 199.902 374.519L220.115 423.944C233.231 456.015 278.753 456.025 291.873 423.944L312.085 374.52A3.9939999999999998 3.9939999999999998 0 0 1 317.894 372.6330000000001L363.2970000000001 400.737C392.761 418.973 429.5940000000001 392.224 421.351 358.558L408.652 306.693A3.9950000000000006 3.9950000000000006 0 0 1 412.242 301.752L465.4929999999999 297.8010000000001C500.0459999999999 295.2380000000001 514.126 251.947 487.6679999999999 229.555L446.908 195.058A3.9930000000000003 3.9930000000000003 0 0 1 446.908 188.951L487.6679999999999 154.455C514.179 132.014 499.99 88.766 465.4929999999999 86.208L412.242 82.257A3.9930000000000003 3.9930000000000003 0 0 1 408.653 77.3149999999999L421.351 25.451C429.592 -8.207 392.7679999999999 -34.97 363.2969999999999 -16.729L317.8939999999999 11.3749999999999A3.9939999999999998 3.9939999999999998 0 0 1 312.0849999999999 9.4879999999999L291.8729999999999 -39.936C278.7139999999999 -72.114 233.1979999999999 -71.9290000000001 220.1159999999999 -39.936zM236.93 24.632L255.994 -21.984L275.058 24.631C285.366 49.831 315.836 59.697 338.95 45.39L381.772 18.883L369.796 67.802C363.321 94.246 382.176 120.141 409.283 122.151L459.509 125.877L421.065 158.413C400.283 176.004 400.318 208.034 421.066 225.593L459.508 258.129L409.283 261.856C382.132 263.871 363.333 289.8040000000001 369.795 316.2050000000001L381.773 365.124L338.95 338.617C315.799 324.29 285.347 334.217 275.058 359.377L255.994 405.992L236.93 359.375C226.625 334.177 196.152 324.3090000000001 173.039 338.615L130.216 365.123L142.193 316.2050000000001C148.667 289.759 129.812 263.867 102.705 261.855L52.481 258.129L90.924 225.592C111.706 208.004 111.671 175.973 90.924 158.414L52.48 125.877L102.706 122.151C129.857 120.137 148.656 94.204 142.193 67.802L130.216 18.883L173.039 45.39C196.227 59.7450000000001 226.661 49.742 236.93 24.6320000000001zM256 64C185.42 64 128 121.421 128 192C128 262.58 185.42 320 256 320C326.579 320 384 262.58 384 192C384 121.421 326.579 64 256 64zM256 272C211.888 272 176 236.112 176 192S211.888 112 256 112S336 147.888 336 192S300.112 272 256 272z" />
    +    <glyph glyph-name="surprise"
    +      unicode="&#xF5C2;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM248 168C212.7 168 184 139.3 184 104S212.7 40 248 40S312 68.7 312 104S283.3 168 248 168zM200 240C200 257.7 185.7 272 168 272S136 257.7 136 240S150.3 208 168 208S200 222.3 200 240zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" />
    +    <glyph glyph-name="thumbs-down"
    +      unicode="&#xF165;"
    +      horiz-adv-x="512" d=" M466.27 222.69C470.944 245.337 467.134 267.228 457.28 285.68C460.238 309.548 453.259 334.245 439.94 352.67C438.986 408.577 404.117 448 327 448C320 448 312 447.99 304.78 447.99C201.195 447.99 168.997 408 128 408H117.155C111.515 412.975 104.113 416 96 416H32C14.327 416 0 401.673 0 384V144C0 126.327 14.327 112 32 112H96C107.842 112 118.175 118.438 123.708 128H130.76C149.906 111.047 176.773 67.347 199.52 44.6C213.187 30.9330000000001 209.673 -64 271.28 -64C328.86 -64 366.55 -32.064 366.55 40.73C366.55 59.14 362.62 74.46 357.7 87.27H394.18C442.782 87.27 479.9999999999999 128.835 479.9999999999999 172.85C479.9999999999999 192 475.04 207.84 466.2699999999999 222.69zM64 152C50.745 152 40 162.745 40 176S50.745 200 64 200S88 189.255 88 176S77.255 152 64 152zM394.18 135.27H290.19C290.19 97.45 318.55 79.9 318.55 40.73C318.55 16.98 318.55 -16.0000000000001 271.2800000000001 -16.0000000000001C252.3700000000001 2.91 261.8200000000001 50.18 233.4600000000001 78.54C206.9 105.11 167.28 176 138.92 176H128V362.17C181.611 362.17 228.001 399.99 299.64 399.99H337.46C372.972 399.99 398.28 382.87 390.58 334.0900000000001C405.78 325.93 417.08 297.65 404.52 276.52C426.101 256.136 423.219 225.455 409.73 210.9C419.18 210.9 432.09 191.99 432 173.09C431.91 154.18 415.29 135.2700000000001 394.18 135.2700000000001z" />
    +    <glyph glyph-name="thumbs-up"
    +      unicode="&#xF164;"
    +      horiz-adv-x="512" d=" M466.27 161.31C475.04 176.16 480 192 480 211.15C480 255.165 442.782 296.73 394.18 296.73H357.7C362.62 309.54 366.55 324.86 366.55 343.27C366.55 416.064 328.86 448 271.28 448C209.673 448 213.187 353.067 199.52 339.4C176.773 316.653 149.905 272.953 130.76 256H32C14.327 256 0 241.673 0 224V-16C0 -33.673 14.327 -48 32 -48H96C110.893 -48 123.408 -37.826 126.978 -24.05C171.487 -25.051 202.038 -63.99 304.78 -63.99C312 -63.99 320 -64 327 -64C404.117 -64 438.986 -24.577 439.94 31.33C453.259 49.755 460.239 74.452 457.28 98.32C467.134 116.772 470.944 138.663 466.27 161.31zM404.52 107.48C417.08 86.35 405.78 58.0700000000001 390.58 49.91C398.28 1.13 372.972 -15.99 337.46 -15.99H299.64C228.001 -15.99 181.611 21.83 128 21.83V208H138.92C167.28 208 206.9 278.89 233.46 305.46C261.82 333.82 252.37 381.09 271.28 400C318.55 400 318.55 367.02 318.55 343.27C318.55 304.1 290.19 286.55 290.19 248.73H394.18C415.29 248.73 431.91 229.82 432 210.91C432.0899999999999 192.01 419.18 173.1 409.73 173.1C423.219 158.545 426.101 127.864 404.52 107.48zM88 16C88 2.745 77.255 -8 64 -8S40 2.745 40 16S50.745 40 64 40S88 29.255 88 16z" />
    +    <glyph glyph-name="times-circle"
    +      unicode="&#xF057;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM357.8 254.2L295.6 192L357.8 129.8C362.5 125.1 362.5 117.5 357.8 112.8L335.2 90.2C330.5 85.5 322.9 85.5 318.2 90.2L256 152.4L193.8 90.2C189.1 85.5 181.5 85.5 176.8 90.2L154.2 112.8C149.5 117.5 149.5 125.1 154.2 129.8L216.4 192L154.2000000000001 254.2C149.5000000000001 258.9 149.5000000000001 266.5 154.2000000000001 271.2L176.8000000000001 293.8C181.5 298.5 189.1000000000001 298.5 193.8000000000001 293.8L256.0000000000001 231.6L318.2000000000001 293.8C322.9000000000001 298.5 330.5000000000001 298.5 335.2000000000001 293.8L357.8000000000001 271.2C362.5000000000001 266.5 362.5000000000001 258.9 357.8000000000001 254.2z" />
    +    <glyph glyph-name="tired"
    +      unicode="&#xF5C8;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM377.1 295.8C373.3 300.2000000000001 366.8 301.2000000000001 361.8 298.3L281.8 250.3C278.2 248.1 276 244.2 276 240S278.2 231.9 281.8 229.7L361.8 181.7C367.2 178.5 373.6 180.1 377.1 184.2C380.9000000000001 188.7 381 195.2 377.2000000000001 199.7L343.6 240L377.2000000000001 280.3C381.0000000000001 284.8 380.9000000000001 291.4 377.1 295.8zM220 240C220 244.2 217.8 248.1 214.2 250.3L134.2 298.3C129.2 301.3 122.7 300.2000000000001 118.9 295.8C115.1 291.3 115 284.8 118.8 280.3L152.4 240L118.8 199.7C115 195.2 115.1 188.7 118.9 184.2C122.4 180.1 128.8 178.5 134.2 181.7L214.2 229.7C217.8 231.9 220 235.8 220 240zM248 176C202.6 176 147.1 137.7 140.2 82.7C138.7 70.9 147.1 61.1 155.7 64.8C178.4 74.5 212 80 248 80S317.6 74.5 340.3 64.8C348.8 61.1 357.3 70.8 355.8 82.7C348.9000000000001 137.7 293.4000000000001 176 248 176z" />
    +    <glyph glyph-name="trash-alt"
    +      unicode="&#xF2ED;"
    +      horiz-adv-x="448" d=" M192 260V44C192 37.373 186.627 32 180 32H156C149.373 32 144 37.373 144 44V260C144 266.627 149.373 272 156 272H180C186.627 272 192 266.627 192 260zM292 272H268C261.373 272 256 266.627 256 260V44C256 37.373 261.373 32 268 32H292C298.627 32 304 37.373 304 44V260C304 266.627 298.627 272 292 272zM424 368C437.255 368 448 357.255 448 344V332C448 325.373 442.627 320 436 320H416V-16C416 -42.51 394.51 -64 368 -64H80C53.49 -64 32 -42.51 32 -16V320H12C5.373 320 0 325.373 0 332V344C0 357.255 10.745 368 24 368H98.411L132.429 424.6960000000001A48 48 0 0 0 173.589 448H274.412A48 48 0 0 0 315.572 424.6960000000001L349.589 368H424zM154.389 368H293.612L276.1600000000001 397.087A6 6 0 0 1 271.015 400H176.987A6 6 0 0 1 171.842 397.087L154.389 368zM368 320H80V-10A6 6 0 0 1 86 -16H362A6 6 0 0 1 368 -10V320z" />
    +    <glyph glyph-name="user-circle"
    +      unicode="&#xF2BD;"
    +      horiz-adv-x="496" d=" M248 344C195 344 152 301 152 248S195 152 248 152S344 195 344 248S301 344 248 344zM248 200C221.5 200 200 221.5 200 248S221.5 296 248 296S296 274.5 296 248S274.5 200 248 200zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C198.3 -8 152.9 10.3 117.9 40.4C132.8 63.4 158.3 79 187.5 79.9C208.3 73.5 228.1 70.3 248 70.3S287.7 73.4 308.5 79.9C337.7 78.9 363.2 63.4 378.1 40.4C343.1 10.3 297.7000000000001 -8 248.0000000000001 -8zM410.7 76.1C386.3 107.5 348.6 128 305.6 128C295.4000000000001 128 279.6 118.4 248.0000000000001 118.4C216.5 118.4 200.6 128 190.4 128C147.5 128 109.8 107.5 85.3 76.1C61.9 108.8 48 148.8 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 148.8 434.1 108.8 410.7 76.1z" />
    +    <glyph glyph-name="user"
    +      unicode="&#xF007;"
    +      horiz-adv-x="448" d=" M313.6 144C284.9000000000001 144 271.1 128 224 128C176.9 128 163.2000000000001 144 134.4 144C60.2 144 0 83.8 0 9.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V9.6C448 83.8 387.8 144 313.6 144zM400 -16H48V9.6C48 57.2000000000001 86.8 96 134.4 96C149 96 172.7 80 224 80C275.7 80 298.9 96 313.6 96C361.2000000000001 96 400 57.2 400 9.6V-16zM224 160C303.5 160 368 224.5 368 304S303.5 448 224 448S80 383.5 80 304S144.5 160 224 160zM224 400C276.9 400 320 356.9 320 304S276.9 208 224 208S128 251.1 128 304S171.1 400 224 400z" />
    +    <glyph glyph-name="window-close"
    +      unicode="&#xF410;"
    +      horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM464 22C464 18.7 461.3 16 458 16H54C50.7 16 48 18.7 48 22V362C48 365.3 50.7 368 54 368H458C461.3 368 464 365.3 464 362V22zM356.5 253.4L295.1 192L356.5 130.6C361.1 126 361.1 118.5 356.5 113.8L334.2 91.5C329.6 86.9 322.1 86.9 317.4 91.5L256 152.9L194.6 91.5C190 86.9 182.5 86.9 177.8 91.5L155.5 113.8C150.9 118.4 150.9 125.9 155.5 130.6L216.9 192L155.5 253.4000000000001C150.9 258 150.9 265.5 155.5 270.2000000000001L177.8 292.5000000000001C182.4 297.1 189.9 297.1 194.6 292.5000000000001L256 231.1000000000001L317.4 292.5000000000001C322 297.1 329.5 297.1 334.2 292.5000000000001L356.5 270.2000000000001C361.2 265.6 361.2 258.1 356.5 253.4000000000001z" />
    +    <glyph glyph-name="window-maximize"
    +      unicode="&#xF2D0;"
    +      horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM464 22C464 18.7 461.3 16 458 16H54C50.7 16 48 18.7 48 22V256H464V22z" />
    +    <glyph glyph-name="window-minimize"
    +      unicode="&#xF2D1;"
    +      horiz-adv-x="512" d=" M480 -32H32C14.3 -32 0 -17.7 0 0S14.3 32 32 32H480C497.7 32 512 17.7 512 0S497.7 -32 480 -32z" />
    +    <glyph glyph-name="window-restore"
    +      unicode="&#xF2D2;"
    +      horiz-adv-x="512" d=" M464 448H144C117.5 448 96 426.5 96 400V352H48C21.5 352 0 330.5 0 304V-16C0 -42.5 21.5 -64 48 -64H368C394.5 -64 416 -42.5 416 -16V32H464C490.5 32 512 53.5 512 80V400C512 426.5 490.5 448 464 448zM368 -16H48V192H368V-16zM464 80H416V304C416 330.5 394.5 352 368 352H144V400H464V80z" />
    +  </font>
    +</defs>
    +</svg>
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.ttf b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.ttf
    new file mode 100644
    index 00000000000..cc5e311b320
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.ttf differ
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.woff b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.woff
    new file mode 100644
    index 00000000000..0c01e47a5b8
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.woff differ
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.woff2 b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.woff2
    new file mode 100644
    index 00000000000..dbf3a76cc38
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-regular-400.woff2 differ
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.eot b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.eot
    new file mode 100644
    index 00000000000..ccdfcf1e55f
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.eot differ
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.svg b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.svg
    new file mode 100644
    index 00000000000..7caded3051f
    --- /dev/null
    +++ b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.svg
    @@ -0,0 +1,2564 @@
    +<?xml version="1.0" standalone="no"?> 
    +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
    +<svg xmlns="http://www.w3.org/2000/svg">
    +<defs>
    +  <font id="fontawesome-free" horiz-adv-x="640">
    +    <font-face font-family="Font Awesome 5 Free"
    +      units-per-em="512" ascent="448"
    +      descent="64"
    +      font-weight="900"
    +      font-style="Solid" />
    +    <missing-glyph horiz-adv-x="0" />
    +    <glyph glyph-name="ad"
    +      unicode="&#xF641;"
    +      horiz-adv-x="512" d=" M157.52 176H194.48L176 229.22L157.52 176zM352 192C338.77 192 328 181.23 328 168S338.77 144 352 144S376 154.77 376 168S365.23 192 352 192zM464 384H48C21.5 384 0 362.5 0 336V48C0 21.5 21.5 0 48 0H464C490.5 0 512 21.5 512 48V336C512 362.5 490.5 384 464 384zM250.58 96H233.64C226.83 96 220.76 100.32 218.52 106.75L211.15 128H140.86L133.48 106.75A16 16 0 0 0 118.36 96H101.42C90.41 96 82.69 106.85 86.3 117.25L140 271.88A23.995000000000005 23.995000000000005 0 0 0 162.67 288H189.33A23.99 23.99 0 0 0 212 271.87L265.69 117.25C269.3 106.85 261.58 96 250.58 96zM424 112C424 103.16 416.84 96 408 96H392C387.15 96 382.96 98.27 380.02 101.68C371.4 98.02 361.93 96 352 96C312.3 96 280 128.3 280 168S312.3 240 352 240C360.46 240 368.46 238.27 376 235.58V272C376 280.8400000000001 383.1600000000001 288 392 288H408C416.84 288 424 280.8400000000001 424 272V112z" />
    +    <glyph glyph-name="address-book"
    +      unicode="&#xF2B9;"
    +      horiz-adv-x="448" d=" M436 288C442.6 288 448 293.4 448 300V340C448 346.6 442.6 352 436 352H416V400C416 426.5 394.5 448 368 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H368C394.5 -64 416 -42.5 416 -16V32H436C442.6 32 448 37.4 448 44V84C448 90.6 442.6 96 436 96H416V160H436C442.6 160 448 165.4 448 172V212C448 218.6 442.6 224 436 224H416V288H436zM208 320C243.3 320 272 291.3 272 256S243.3 192 208 192S144 220.7 144 256S172.7 320 208 320zM320 83.2C320 72.6 310 64 297.6 64H118.4C106 64 96 72.6 96 83.2V102.4C96 134.2 126.1 160 163.2 160H168.2C180.5 154.9 193.9 152 208 152S235.6 154.9 247.8 160H252.8C289.9000000000001 160 320 134.2 320 102.4V83.2z" />
    +    <glyph glyph-name="address-card"
    +      unicode="&#xF2BB;"
    +      horiz-adv-x="576" d=" M528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM176 320C211.3 320 240 291.3 240 256S211.3 192 176 192S112 220.7 112 256S140.7 320 176 320zM288 83.2C288 72.6 278 64 265.6 64H86.4C74 64 64 72.6 64 83.2V102.4C64 134.2 94.1 160 131.2 160H136.2C148.5 154.9 161.9 152 176 152S203.6 154.9 215.8 160H220.8C257.9000000000001 160 288 134.2 288 102.4V83.2zM512 136C512 131.6 508.4 128 504 128H360C355.6 128 352 131.6 352 136V152C352 156.4 355.6 160 360 160H504C508.4 160 512 156.4 512 152V136zM512 200C512 195.6 508.4 192 504 192H360C355.6 192 352 195.6 352 200V216C352 220.4 355.6 224 360 224H504C508.4 224 512 220.4 512 216V200zM512 264C512 259.6 508.4 256 504 256H360C355.6 256 352 259.6 352 264V280C352 284.4 355.6 288 360 288H504C508.4 288 512 284.4 512 280V264z" />
    +    <glyph glyph-name="adjust"
    +      unicode="&#xF042;"
    +      horiz-adv-x="512" d=" M8 192C8 55.034 119.033 -56 256 -56S504 55.034 504 192S392.966 440 256 440S8 328.967 8 192zM256 8V376C357.705 376 440 293.689 440 192C440 90.295 357.689 8 256 8z" />
    +    <glyph glyph-name="air-freshener"
    +      unicode="&#xF5D0;"
    +      horiz-adv-x="384" d=" M378.94 126.59L284.7 224H333.92C349.22 224 357.58 240.6 347.78 251.53L234.45 378.04C237.88 384.65 240 392.04 240 400C240 426.51 218.51 448 192 448S144 426.51 144 400C144 392.04 146.12 384.65 149.55 378.04L36.22 251.53C26.42 240.6 34.78 224 50.08 224H99.3L5.06 126.59C-6.69 114.44 3.34 96 21.7 96H160V64H48C39.16 64 32 56.84 32 48V-48C32 -56.84 39.16 -64 48 -64H336C344.84 -64 352 -56.84 352 -48V48C352 56.84 344.84 64 336 64H224V96H362.3C380.6600000000001 96 390.69 114.44 378.94 126.59zM192 416.02C200.85 416.02 208.02 408.85 208.02 400C208.02 391.16 200.85 383.98 192 383.98S175.98 391.16 175.98 400C175.98 408.85 183.15 416.02 192 416.02zM304 16V-16H80V16H304z" />
    +    <glyph glyph-name="align-center"
    +      unicode="&#xF037;"
    +      horiz-adv-x="448" d=" M352 404V364C352 355.163 344.837 348 336 348H112C103.163 348 96 355.163 96 364V404C96 412.837 103.163 420 112 420H336C344.837 420 352 412.837 352 404zM16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276V236C0 227.163 7.163 220 16 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM336 164H112C103.163 164 96 156.837 96 148V108C96 99.163 103.163 92 112 92H336C344.837 92 352 99.163 352 108V148C352 156.837 344.837 164 336 164z" />
    +    <glyph glyph-name="align-justify"
    +      unicode="&#xF039;"
    +      horiz-adv-x="448" d=" M0 364V404C0 412.837 7.163 420 16 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H16C7.163 348 0 355.163 0 364zM16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276V236C0 227.163 7.163 220 16 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM16 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H16C7.163 164 0 156.837 0 148V108C0 99.163 7.163 92 16 92z" />
    +    <glyph glyph-name="align-left"
    +      unicode="&#xF036;"
    +      horiz-adv-x="448" d=" M288 404V364C288 355.163 280.837 348 272 348H16C7.163 348 0 355.163 0 364V404C0 412.837 7.163 420 16 420H272C280.837 420 288 412.837 288 404zM0 276V236C0 227.163 7.163 220 16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM272 164H16C7.163 164 0 156.837 0 148V108C0 99.163 7.163 92 16 92H272C280.837 92 288 99.163 288 108V148C288 156.837 280.837 164 272 164z" />
    +    <glyph glyph-name="align-right"
    +      unicode="&#xF038;"
    +      horiz-adv-x="448" d=" M160 364V404C160 412.837 167.163 420 176 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H176C167.163 348 160 355.163 160 364zM16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276V236C0 227.163 7.163 220 16 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM176 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H176C167.163 164 160 156.837 160 148V108C160 99.163 167.163 92 176 92z" />
    +    <glyph glyph-name="allergies"
    +      unicode="&#xF461;"
    +      horiz-adv-x="448" d=" M416 336C398.4 336 384 321.6 384 304V232C384 227.6 380.4 224 376 224H360C355.6 224 352 227.6 352 232V384C352 401.6 337.6 416 320 416S288 401.6 288 384V232C288 227.6 284.4 224 280 224H264C259.6 224 256 227.6 256 232V416C256 433.6 241.6 448 224 448S192 433.6 192 416V232C192 227.6 188.4 224 184 224H168C163.6 224 160 227.6 160 232V384C160 401.6 145.6 416 128 416S96 401.6 96 384V143L72.4 175.5C59.4 193.4 34.4 197.3 16.5 184.3S-5.3 146.3 7.7 128.4L133.3 -44.3C142.3 -56.6999999999999 156.8 -64.0999999999999 172.1 -64.0999999999999H369.7000000000001C392.0000000000001 -64.0999999999999 411.3000000000001 -48.7999999999999 416.4000000000001 -27.0999999999999L442.9000000000001 85.6000000000001C446.1 99.3000000000001 447.8 113.9000000000001 448.0000000000001 127.9000000000001V304C448.0000000000001 321.6 433.6000000000001 336 416.0000000000001 336zM176 32C167.2 32 160 39.2 160 48S167.2 64 176 64S192 56.8 192 48S184.8 32 176 32zM176 128C167.2 128 160 135.2 160 144S167.2 160 176 160S192 152.8 192 144S184.8 128 176 128zM240 0C231.2 0 224 7.2 224 16S231.2 32 240 32S256 24.8 256 16S248.8 0 240 0zM240 96C231.2 96 224 103.2 224 112S231.2 128 240 128S256 120.8 256 112S248.8 96 240 96zM304 64C295.2 64 288 71.2 288 80S295.2 96 304 96S320 88.8 320 80S312.8 64 304 64zM336 0C327.2 0 320 7.2 320 16S327.2 32 336 32S352 24.8 352 16S344.8 0 336 0zM368 128C359.2 128 352 135.2 352 144S359.2 160 368 160S384 152.8 384 144S376.8 128 368 128z" />
    +    <glyph glyph-name="ambulance"
    +      unicode="&#xF0F9;"
    +      horiz-adv-x="640" d=" M624 96H608V204.1C608 216.8 602.9 229 593.9 238L494 337.9C485 346.9 472.8 352 460.1 352H416V400C416 426.5 394.5 448 368 448H48C21.5 448 0 426.5 0 400V80C0 53.5 21.5 32 48 32H64C64 -21 107 -64 160 -64S256 -21 256 32H384C384 -21 427 -64 480 -64S576 -21 576 32H624C632.8 32 640 39.2 640 48V80C640 88.8 632.8 96 624 96zM160 -16C133.5 -16 112 5.5 112 32S133.5 80 160 80S208 58.5 208 32S186.5 -16 160 -16zM304 232C304 227.6 300.4 224 296 224H240V168C240 163.6 236.4 160 232 160H184C179.6 160 176 163.6 176 168V224H120C115.6 224 112 227.6 112 232V280C112 284.4 115.6 288 120 288H176V344C176 348.4 179.6 352 184 352H232C236.4 352 240 348.4 240 344V288H296C300.4 288 304 284.4 304 280V232zM480 -16C453.5 -16 432 5.5 432 32S453.5 80 480 80S528 58.5 528 32S506.5 -16 480 -16zM560 192H416V304H460.1L560 204.1V192z" />
    +    <glyph glyph-name="american-sign-language-interpreting"
    +      unicode="&#xF2A3;"
    +      horiz-adv-x="640" d=" M290.5470000000001 258.961C270.252 269.11 246.4000000000001 270.1600000000001 225.808 262.851C268.4140000000001 262.851 297.016 242.376 311.386 212.275C319.9620000000001 194.376 306.238 174.204 287.769 174.204C306.198 174.204 319.98 154.068 311.386 136.1330000000001C296.661 105.287 265.2630000000001 85.2790000000001 231.088 85.2790000000001C230.5310000000001 85.2790000000001 136.617 93.8940000000001 136.617 93.8940000000001L70.211 60.5470000000001C60.827 55.8540000000001 50.396 60.1680000000001 46.316 68.3280000000001L1.86 157.253C-2.307 165.868 0.749 176.15 8.806 180.874L66.878 213.943L108 288.139C114.39 345.384 142.731 397.906 187.743 434.865C199.134 444.313 216.084 442.646 225.253 431.252C234.699 419.858 233.033 403.185 221.641 393.736C209.138 383.177 198.023 371.227 189.132 358.166C210.804 372.895 235.811 382.898 263.318 386.233C278.043 388.178 291.381 377.897 293.048 363.168C294.993 348.44 284.712 335.101 269.986 333.434C253.87 331.4890000000001 238.866 325.931 225.808 318.15C251.922 323.863 284.52 321.288 313.887 307.035C327.223 300.366 332.78 284.526 326.111 271.187C319.722 258.127 303.607 252.57 290.547 258.961zM263.3180000000001 189.489C257.206 201.994 244.9800000000001 209.775 231.0870000000001 209.775A35.46 35.46 0 0 1 195.5220000000001 174.2050000000001C195.5220000000001 152.7770000000001 213.3300000000001 138.6350000000001 231.0870000000001 138.6350000000001C244.9800000000001 138.6350000000001 257.206 146.4160000000001 263.3180000000001 158.9210000000001C267.7640000000001 168.3700000000001 276.932 173.927 286.6570000000001 174.2050000000001C276.932 174.482 267.764 180.04 263.3180000000001 189.489zM638.1390000000001 226.7260000000001C642.3070000000001 218.111 639.2500000000001 207.829 631.1930000000001 203.105L573.1220000000001 170.036L532 95.84C525.61 38.595 497.269 -13.927 452.257 -50.886C441.325 -59.998 424.4580000000001 -59.03 414.747 -47.273C405.301 -35.879 406.9670000000001 -19.206 418.36 -9.757C430.863 0.802 441.9770000000001 12.752 450.868 25.813C429.196 11.084 404.189 1.081 376.682 -2.254C366.661 -4.76 349.13 3.389 346.952 20.811C345.007 35.539 355.288 48.878 370.014 50.545C386.13 52.491 401.134 58.048 414.192 65.829C388.0780000000001 60.1159999999999 355.48 62.691 326.113 76.944C312.777 83.6129999999999 307.2200000000001 99.453 313.889 112.792C320.278 125.853 336.394 131.411 349.454 125.019C369.749 114.87 393.601 113.8199999999999 414.193 121.129C371.587 121.129 342.985 141.604 328.615 171.705C320.039 189.604 333.7630000000001 209.776 352.2320000000001 209.776C333.8030000000001 209.776 320.021 229.912 328.615 247.847C342.648 277.243 372.654 298.734 410.581 298.701L503.384 290.086L569.79 323.433C579.198 328.137 589.6179999999999 323.787 593.684 315.652L638.139 226.726zM408.9120000000002 245.344C395.0190000000001 245.344 382.7930000000001 237.563 376.6810000000002 225.058C372.2350000000002 215.609 363.0670000000002 210.052 353.3420000000002 209.774C363.0670000000002 209.4960000000001 372.2350000000002 203.938 376.6810000000002 194.4900000000001C382.7930000000002 181.985 395.0190000000002 174.2040000000001 408.9120000000002 174.2040000000001A35.46 35.46 0 0 1 444.4770000000002 209.7740000000001C444.4770000000002 231.2030000000001 426.6690000000002 245.3440000000001 408.9120000000002 245.3440000000001z" />
    +    <glyph glyph-name="anchor"
    +      unicode="&#xF13D;"
    +      horiz-adv-x="576" d=" M12.971 96H45.365C67.172 -6.735 181.944 -64 288 -64C394.229 -64 508.853 -6.62 530.635 96H563.029C573.72 96 579.074 108.926 571.514 116.485L504.485 183.514C499.799 188.2 492.201 188.2 487.514 183.514L420.485 116.485C412.925 108.925 418.279 96 428.9700000000001 96H464.116C443.826 41.683 379.153 9.412 319.999 1.985V192H371.999C378.6260000000001 192 383.999 197.373 383.999 204V244C383.999 250.627 378.6260000000001 256 371.999 256H319.999V261.4700000000001C357.2800000000001 274.648 383.9940000000001 310.195 383.999 351.988C384.005 404.228 341.605 447.262 289.37 447.99C235.723 448.739 192 405.475 192 352C192 310.202 218.716 274.65 256 261.4700000000001V256H204C197.373 256 192 250.627 192 244V204C192 197.373 197.373 192 204 192H256V1.985C197.064 9.384 132.18 41.664 111.883 96H147.029C157.72 96 163.074 108.926 155.514 116.485L88.485 183.514C83.799 188.2 76.201 188.2 71.514 183.514L4.485 116.485C-3.074 108.926 2.28 96 12.971 96zM288 384C305.645 384 320 369.645 320 352S305.645 320 288 320S256 334.355 256 352S270.355 384 288 384z" />
    +    <glyph glyph-name="angle-double-down"
    +      unicode="&#xF103;"
    +      horiz-adv-x="320" d=" M143 191.7L7 327.7C-2.4 337.1 -2.4 352.3 7 361.6L29.6 384.2C39 393.6 54.2 393.6 63.5 384.2L159.9 287.8L256.3 384.2C265.7 393.6 280.9000000000001 393.6 290.2 384.2L313 361.7C322.4 352.3 322.4 337.1 313 327.8L177 191.8C167.6 182.3 152.4 182.3 143 191.7zM177 -0.3L313 135.7C322.4 145.1 322.4 160.3 313 169.6L290.4 192.2C281 201.6 265.8 201.6 256.5 192.2L160 95.9L63.6 192.3C54.2 201.7 39 201.7 29.7 192.3L7 169.7C-2.4 160.3 -2.4 145.1 7 135.8L143 -0.2C152.4 -9.7 167.6 -9.7 177 -0.3z" />
    +    <glyph glyph-name="angle-double-left"
    +      unicode="&#xF100;"
    +      horiz-adv-x="448" d=" M223.7 209L359.7 345C369.1 354.4 384.3 354.4 393.6 345L416.2 322.4C425.6 313 425.6 297.8 416.2 288.5L319.9 192L416.3 95.6C425.7 86.2000000000001 425.7 71 416.3 61.7000000000001L393.7 39C384.3 29.6 369.1 29.6 359.8 39L223.8 175C214.3 184.4 214.3 199.6 223.7 209zM31.7 175L167.7 39C177.1 29.6 192.3 29.6 201.6 39L224.2 61.6C233.6 71 233.6 86.2000000000001 224.2 95.5L127.9 192L224.3 288.4C233.7 297.8 233.7 313 224.3 322.3L201.7 345C192.3 354.4 177.1 354.4 167.8 345L31.8 209C22.3 199.6 22.3 184.4 31.7 175z" />
    +    <glyph glyph-name="angle-double-right"
    +      unicode="&#xF101;"
    +      horiz-adv-x="448" d=" M224.3 175L88.3 39C78.9 29.6 63.7 29.6 54.4 39L31.8 61.6C22.4 71 22.4 86.2000000000001 31.8 95.5L128.2 191.9L31.8 288.3C22.4 297.7 22.4 312.9 31.8 322.2L54.3 345C63.7 354.4 78.9 354.4 88.2 345L224.2 209C233.7 199.6 233.7 184.4 224.3 175zM416.3 209L280.3 345C270.9000000000001 354.4 255.7 354.4 246.4 345L223.8 322.4C214.4 313 214.4 297.8 223.8 288.5L320.2000000000001 192.1L223.8000000000001 95.7C214.4 86.3 214.4 71.1 223.8000000000001 61.8L246.4000000000001 39.2C255.8000000000001 29.8 271.0000000000001 29.8 280.3 39.2L416.3 175.2C425.7 184.4 425.7 199.6 416.3 209z" />
    +    <glyph glyph-name="angle-double-up"
    +      unicode="&#xF102;"
    +      horiz-adv-x="320" d=" M177 192.3L313 56.3C322.4 46.9 322.4 31.7 313 22.4L290.4 -0.2C281 -9.6 265.8 -9.6 256.5 -0.2L160 96.1L63.6 -0.3C54.2 -9.6999999999999 39 -9.6999999999999 29.7 -0.3L7 22.3C-2.4 31.7 -2.4 46.9 7 56.2L143 192.2C152.4 201.7 167.6 201.7 177 192.3zM143 384.3L7 248.3C-2.4 238.9 -2.4 223.7 7 214.4L29.6 191.8C39 182.4 54.2 182.4 63.5 191.8L159.9 288.2000000000001L256.3 191.8C265.7 182.4 280.9000000000001 182.4 290.2 191.8L312.8 214.4C322.2 223.8 322.2 239 312.8 248.3L176.8 384.3C167.6 393.7 152.4 393.7 143 384.3z" />
    +    <glyph glyph-name="angle-down"
    +      unicode="&#xF107;"
    +      horiz-adv-x="320" d=" M143 95.7L7 231.7C-2.4 241.1 -2.4 256.3 7 265.6L29.6 288.2C39 297.6 54.2 297.6 63.5 288.2L159.9 191.8L256.3 288.2C265.7 297.6 280.9000000000001 297.6 290.2 288.2L312.8 265.6C322.2 256.2 322.2 241 312.8 231.7L176.8 95.6999999999999C167.6 86.3 152.4 86.3 143 95.6999999999999z" />
    +    <glyph glyph-name="angle-left"
    +      unicode="&#xF104;"
    +      horiz-adv-x="256" d=" M31.7 209L167.7 345C177.1 354.4 192.3 354.4 201.6 345L224.2 322.4C233.6 313 233.6 297.8 224.2 288.5L127.9 192L224.3 95.6C233.7 86.2000000000001 233.7 71 224.3 61.7000000000001L201.7 39C192.3 29.6 177.1 29.6 167.8 39L31.8 175C22.3 184.4 22.3 199.6 31.7 209z" />
    +    <glyph glyph-name="angle-right"
    +      unicode="&#xF105;"
    +      horiz-adv-x="256" d=" M224.3 175L88.3 39C78.9 29.6 63.7 29.6 54.4 39L31.8 61.6C22.4 71 22.4 86.2000000000001 31.8 95.5L128.2 191.9L31.8 288.3C22.4 297.7 22.4 312.9 31.8 322.2L54.3 345C63.7 354.4 78.9 354.4 88.2 345L224.2 209C233.7 199.6 233.7 184.4 224.3 175z" />
    +    <glyph glyph-name="angle-up"
    +      unicode="&#xF106;"
    +      horiz-adv-x="320" d=" M177 288.3L313 152.3C322.4 142.9 322.4 127.7 313 118.4L290.4 95.8C281 86.4 265.8 86.4 256.5 95.8L160 192.1L63.6 95.7C54.2 86.3 39 86.3 29.7 95.7L7 118.3C-2.4 127.7 -2.4 142.9 7 152.2L143 288.2C152.4 297.7 167.6 297.7 177 288.3z" />
    +    <glyph glyph-name="angry"
    +      unicode="&#xF556;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM136 208C136 217.3 140.1 225.5 146.5 231.4L115.5 240.7C107 243.2 102.2 252.2 104.8 260.6C107.3 269.1 116.2 273.8 124.7 271.3L204.7 247.3C213.2 244.8 218 235.8 215.4 227.4C213.3 220.5 207 216 200.1 216C199.6 216 199 216.2 198.4 216.2C199.1 213.5 200.1 210.9 200.1 208C200.1 190.3 185.8 176 168.1 176S136 190.3 136 208zM304 53.8C276.2 87.2 219.8 87.2 191.9 53.8C178.4 37.5 153.7 58 167.3 74.3C187.3 98.3 216.7 112.1 247.9 112.1S308.5 98.3 328.5 74.3C342.3 57.8 317.4 37.7 304 53.8zM380.6 240.7L349.6 231.4C355.9000000000001 225.6 360.1 217.3 360.1 208C360.1 190.3 345.8 176 328.1 176S296.1 190.3 296.1 208C296.1 210.9 297 213.6 297.8 216.2C297.2 216.1 296.7 216 296.1 216C289.2000000000001 216 282.9000000000001 220.5 280.8 227.4C278.3 235.9 283.1 244.8 291.5 247.3L371.5 271.3C379.9 273.8 388.9 269 391.4 260.6C393.9 252.1 389.1 243.2 380.6 240.7z" />
    +    <glyph glyph-name="ankh"
    +      unicode="&#xF644;"
    +      horiz-adv-x="320" d=" M296 192H251.38C272.46 225.99 288 266.35 288 304C288 392.37 230.69 448 160 448S32 392.37 32 304C32 266.35 47.54 225.99 68.62 192H24C10.75 192 0 181.26 0 168V136C0 122.75 10.75 112 24 112H120V-40C120 -53.25 130.75 -64 144 -64H176C189.25 -64 200 -53.25 200 -40V112H296C309.25 112 320 122.75 320 136V168C320 181.26 309.25 192 296 192zM160 368C189.61 368 208 343.48 208 304C208 269.3400000000001 180.86 225.86 160 203.13C139.14 225.85 112 269.34 112 304C112 343.48 130.39 368 160 368z" />
    +    <glyph glyph-name="apple-alt"
    +      unicode="&#xF5D1;"
    +      horiz-adv-x="448" d=" M350.85 319C376.8200000000001 314.3300000000001 398.12 300.33 414.7700000000001 277C429.42 256.33 439.4100000000001 230.33 444.73 199C449.4000000000001 170.33 449.05 141.67 443.73 113C435.74 65.67 419.76 26 395.79 -6C367.1500000000001 -44.67 331.2000000000001 -64 287.92 -64C277.26 -64 265.62 -60.67 252.96 -54C244.3 -48.67 234.65 -46 223.99 -46S203.69 -48.67 195.02 -54C182.36 -60.67 170.72 -64 160.06 -64C116.78 -64 80.83 -44.67 52.19 -6C28.22 26 12.24 65.67 4.25 113C-1.07 141.67 -1.42 170.33 3.25 199C8.57 230.33 18.56 256.33 33.21 277C49.86 300.33 71.16 314.33 97.13 319C113.11 321.67 135.08 319.3300000000001 163.05 312C187.02 305.3300000000001 207.33 297.3300000000001 223.98 288C240.63 297.3300000000001 260.94 305.33 284.9100000000001 312C312.8900000000001 319.3300000000001 334.87 321.67 350.85 319zM295.9100000000001 360C286.5900000000001 351.33 274.2600000000001 345 258.9500000000001 341C248.2900000000001 337.67 236.6500000000001 336 223.9900000000001 336L209.0100000000001 337C207.68 346.33 207.68 357 209.0100000000001 369C211.68 393 219.3300000000001 411.33 231.9800000000001 424C241.3000000000001 432.67 253.6300000000001 439 268.9400000000001 443C279.6000000000001 446.33 291.2400000000001 448 303.9000000000001 448L318.8800000000001 447L319.8800000000001 432C319.8800000000001 419.33 318.2100000000001 407.67 314.8900000000001 397C310.9000000000001 381.67 304.5800000000001 369.33 295.9100000000001 360z" />
    +    <glyph glyph-name="archive"
    +      unicode="&#xF187;"
    +      horiz-adv-x="512" d=" M32 0C32 -17.7 46.3 -32 64 -32H448C465.7 -32 480 -17.7 480 0V288H32V0zM192 212C192 218.6 197.4 224 204 224H308C314.6 224 320 218.6 320 212V204C320 197.4 314.6 192 308 192H204C197.4 192 192 197.4 192 204V212zM480 416H32C14.3 416 0 401.7 0 384V336C0 327.2 7.2 320 16 320H496C504.8 320 512 327.2 512 336V384C512 401.7 497.7 416 480 416z" />
    +    <glyph glyph-name="archway"
    +      unicode="&#xF557;"
    +      horiz-adv-x="576" d=" M560 0H544V352H32V0H16.02C7.18 0 0.02 -7.16 0.02 -16V-48C0.02 -56.84 7.18 -64 16.02 -64H176C184.84 -64 192 -56.84 192 -48V128C192 181.02 234.98 224 288 224S384 181.02 384 128L384.02 -32V-48C384.02 -56.84 391.18 -64 400.02 -64H560C568.84 -64 576 -56.84 576 -48V-16C576 -7.16 568.84 0 560 0zM560 448H16C7.16 448 0 440.84 0 432V400C0 391.16 7.16 384 16 384H560C568.84 384 576 391.16 576 400V432C576 440.84 568.84 448 560 448z" />
    +    <glyph glyph-name="arrow-alt-circle-down"
    +      unicode="&#xF358;"
    +      horiz-adv-x="512" d=" M504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM212 308V192H141.1C130.4 192 125 179 132.6 171.5L247.5 57.2C252.2 52.5 259.7 52.5 264.4 57.2L379.3 171.5C386.9 179.1 381.5 192 370.8 192H300V308C300 314.6 294.6 320 288 320H224C217.4 320 212 314.6 212 308z" />
    +    <glyph glyph-name="arrow-alt-circle-left"
    +      unicode="&#xF359;"
    +      horiz-adv-x="512" d=" M256 -56C119 -56 8 55 8 192S119 440 256 440S504 329 504 192S393 -56 256 -56zM372 236H256V306.9C256 317.6 243 323 235.5 315.4L121.2 200.5C116.5 195.8 116.5 188.3 121.2 183.6L235.5 68.7000000000001C243.1 61.1 256 66.5000000000001 256 77.2000000000001V148H372C378.6 148 384 153.4 384 160V224C384 230.6 378.6 236 372 236z" />
    +    <glyph glyph-name="arrow-alt-circle-right"
    +      unicode="&#xF35A;"
    +      horiz-adv-x="512" d=" M256 440C393 440 504 329 504 192S393 -56 256 -56S8 55 8 192S119 440 256 440zM140 148H256V77.1C256 66.4 269 61 276.5 68.6L390.8 183.5C395.5 188.2 395.5 195.7 390.8 200.4L276.5 315.4C268.9 323 256 317.6 256 306.9V236H140C133.4 236 128 230.6 128 224V160C128 153.4 133.4 148 140 148z" />
    +    <glyph glyph-name="arrow-alt-circle-up"
    +      unicode="&#xF35B;"
    +      horiz-adv-x="512" d=" M8 192C8 329 119 440 256 440S504 329 504 192S393 -56 256 -56S8 55 8 192zM300 76V192H370.9C381.6 192 387 205 379.4 212.5L264.5 326.8C259.8 331.5 252.3 331.5 247.6 326.8L132.6 212.5C125 204.9 130.4 192 141.1 192H212V76C212 69.4 217.4 64 224 64H288C294.6 64 300 69.4 300 76z" />
    +    <glyph glyph-name="arrow-circle-down"
    +      unicode="&#xF0AB;"
    +      horiz-adv-x="512" d=" M504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM360.4 220.9L288 145.4V328C288 341.3 277.3 352 264 352H248C234.7 352 224 341.3 224 328V145.4L151.6 220.9C142.3 230.6 126.8 230.8 117.3 221.3L106.4 210.3C97 200.9 97 185.7 106.4 176.4L239 43.7C248.4 34.3 263.6 34.3 272.9 43.7L405.6 176.4C415 185.8 415 201 405.6 210.3L394.7 221.3C385.2 230.8 369.7 230.6 360.4 220.9z" />
    +    <glyph glyph-name="arrow-circle-left"
    +      unicode="&#xF0A8;"
    +      horiz-adv-x="512" d=" M256 -56C119 -56 8 55 8 192S119 440 256 440S504 329 504 192S393 -56 256 -56zM284.9 87.6L209.4 160H392C405.3 160 416 170.7 416 184V200C416 213.3 405.3 224 392 224H209.4L284.9 296.4C294.6 305.7000000000001 294.8 321.2 285.3 330.7L274.3 341.6C264.9 351 249.7 351 240.4 341.6L107.7 209C98.3 199.6 98.3 184.4 107.7 175.1L240.4 42.4C249.8 33.0000000000001 265 33.0000000000001 274.3 42.4L285.3 53.3C294.8 62.8 294.6 78.3 284.9 87.6z" />
    +    <glyph glyph-name="arrow-circle-right"
    +      unicode="&#xF0A9;"
    +      horiz-adv-x="512" d=" M256 440C393 440 504 329 504 192S393 -56 256 -56S8 55 8 192S119 440 256 440zM227.1 296.4L302.6 224H120C106.7 224 96 213.3 96 200V184C96 170.7 106.7 160 120 160H302.6L227.1 87.6C217.4 78.3 217.2 62.8 226.7 53.3L237.7 42.4C247.1 33.0000000000001 262.3 33.0000000000001 271.6 42.4L404.3 175C413.7 184.4 413.7 199.6 404.3 208.9L271.6 341.7C262.2000000000001 351.1 247.0000000000001 351.1 237.7 341.7L226.7 330.8C217.2 321.2 217.4 305.7 227.1 296.4z" />
    +    <glyph glyph-name="arrow-circle-up"
    +      unicode="&#xF0AA;"
    +      horiz-adv-x="512" d=" M8 192C8 329 119 440 256 440S504 329 504 192S393 -56 256 -56S8 55 8 192zM151.6 163.1L224 238.6V56C224 42.7 234.7 32 248 32H264C277.3 32 288 42.7 288 56V238.6L360.4 163.1C369.7 153.4 385.2 153.2000000000001 394.7 162.7000000000001L405.6 173.7000000000001C415 183.1 415 198.3000000000001 405.6 207.6000000000001L273 340.3C263.6 349.7 248.4 349.7 239.1 340.3L106.3 207.6C96.9 198.2 96.9 183 106.3 173.7L117.2 162.7C126.8 153.2 142.3 153.4 151.6 163.1z" />
    +    <glyph glyph-name="arrow-down"
    +      unicode="&#xF063;"
    +      horiz-adv-x="448" d=" M413.1 225.5L435.3 203.3C444.7 193.9 444.7 178.7 435.3 169.4L241 -25C231.6 -34.4 216.4 -34.4 207.1 -25L12.7 169.4C3.3 178.8 3.3 194 12.7 203.3L34.9 225.5C44.4 235 59.9 234.8 69.2 225.1L184 104.6V392C184 405.3 194.7 416 208 416H240C253.3 416 264 405.3 264 392V104.6L378.8 225.1C388.1 234.9000000000001 403.6 235.1 413.1 225.5000000000001z" />
    +    <glyph glyph-name="arrow-left"
    +      unicode="&#xF060;"
    +      horiz-adv-x="448" d=" M257.5 2.9L235.3 -19.3C225.9 -28.7 210.7 -28.7 201.4 -19.3L7 175C-2.4 184.4 -2.4 199.6 7 208.9L201.4 403.3C210.8 412.7 226 412.7 235.3 403.3L257.5 381.1C267 371.6 266.8 356.1 257.1 346.8L136.6 232H424C437.3 232 448 221.3 448 208V176C448 162.7 437.3 152 424 152H136.6L257.1 37.2C266.9000000000001 27.9 267.1 12.4 257.5 2.9z" />
    +    <glyph glyph-name="arrow-right"
    +      unicode="&#xF061;"
    +      horiz-adv-x="448" d=" M190.5 381.1L212.7 403.3C222.1 412.7 237.3 412.7 246.6 403.3L441 209C450.4 199.6 450.4 184.4 441 175.1L246.6 -19.3C237.2 -28.7 222 -28.7 212.7 -19.3L190.5 2.9C181 12.4 181.2 27.9 190.9 37.2L311.4 152H24C10.7 152 0 162.7 0 176V208C0 221.3 10.7 232 24 232H311.4L190.9 346.8C181.1 356.1 180.9 371.6 190.5 381.1z" />
    +    <glyph glyph-name="arrow-up"
    +      unicode="&#xF062;"
    +      horiz-adv-x="448" d=" M34.9 158.5L12.7 180.7C3.3 190.1 3.3 205.3 12.7 214.6L207 409C216.4 418.4 231.6 418.4 240.9 409L435.2000000000001 214.7C444.6 205.3 444.6 190.1 435.2000000000001 180.8L413 158.6C403.5 149.1 388 149.3 378.7 159L264 279.4V-8C264 -21.3 253.3 -32 240 -32H208C194.7 -32 184 -21.3 184 -8V279.4L69.2 158.9C59.9 149.1 44.4 148.9 34.9 158.5z" />
    +    <glyph glyph-name="arrows-alt-h"
    +      unicode="&#xF337;"
    +      horiz-adv-x="512" d=" M377.941 278.059V232H134.059V278.059C134.059 299.4410000000001 108.208 310.149 93.088 295.03L7.029 208.971C-2.344 199.598 -2.344 184.403 7.029 175.03L93.088 88.971C108.207 73.852 134.059 84.56 134.059 105.942V152H377.9410000000001V105.941C377.9410000000001 84.559 403.7920000000001 73.851 418.9120000000001 88.97L504.971 175.029C514.344 184.402 514.344 199.597 504.971 208.97L418.9120000000001 295.029C403.793 310.149 377.9410000000001 299.4410000000001 377.9410000000001 278.059z" />
    +    <glyph glyph-name="arrows-alt-v"
    +      unicode="&#xF338;"
    +      horiz-adv-x="256" d=" M214.059 70.059H168V313.9410000000001H214.059C235.441 313.9410000000001 246.149 339.7920000000001 231.03 354.9120000000001L144.971 440.971C135.598 450.344 120.403 450.344 111.03 440.971L24.971 354.9120000000001C9.852 339.793 20.56 313.9410000000001 41.942 313.9410000000001H88V70.059H41.941C20.559 70.059 9.851 44.208 24.97 29.088L111.029 -56.971C120.402 -66.344 135.597 -66.344 144.97 -56.971L231.029 29.088C246.149 44.207 235.441 70.059 214.059 70.059z" />
    +    <glyph glyph-name="arrows-alt"
    +      unicode="&#xF0B2;"
    +      horiz-adv-x="512" d=" M352.201 22.225L273.005 -56.971C263.632 -66.344 248.437 -66.344 239.064 -56.971L159.868 22.225C144.749 37.3440000000001 155.457 63.196 176.839 63.1950000000001H228.001L228 164H127.196V112.838C127.196 91.456 101.345 80.7480000000001 86.225 95.867L7.029 175.063C-2.344 184.436 -2.344 199.632 7.029 209.004L86.225 288.2C101.344 303.319 127.196 292.611 127.196 271.229V220H228V320.804H176.77C155.388 320.804 144.68 346.655 159.799 361.775L238.995 440.971C248.368 450.344 263.563 450.344 272.9360000000001 440.971L352.1320000000001 361.775C367.2510000000001 346.656 356.5430000000001 320.804 335.1610000000001 320.804H283.9990000000001V220H384.8030000000001V271.1620000000001C384.8030000000001 292.544 410.6540000000001 303.252 425.7730000000002 288.1330000000001L504.9690000000002 208.937C514.3420000000002 199.564 514.3420000000002 184.368 504.9690000000002 174.996L425.773 95.8C410.654 80.681 384.802 91.389 384.803 112.771V164H284V63.196H335.23C356.612 63.196 367.3200000000001 37.345 352.201 22.225z" />
    +    <glyph glyph-name="assistive-listening-systems"
    +      unicode="&#xF2A2;"
    +      horiz-adv-x="512" d=" M216 188C216 172.536 203.464 160 188 160S160 172.536 160 188C160 232.112 195.888 268 240 268S320 232.112 320 188C320 172.536 307.464 160 292 160S264 172.536 264 188C264 201.234 253.233 212 240 212S216 201.234 216 188zM240 364C142.953 364 64 285.0470000000001 64 188C64 172.536 76.536 160 92 160S120 172.536 120 188C120 254.168 173.832 308 240 308S360 254.168 360 188C360 112.836 288.991 117.689 288.003 44.378L288 44C288 15.327 264.673 -8 236 -8C220.536 -8 208 -20.536 208 -36S220.536 -64 236 -64C295.475 -64 343.876 -15.672 344 43.774C344.5950000000001 78.202 416 92.014 416 188C416 285.0470000000001 337.0470000000001 364 240 364zM160 128C142.327 128 128 113.673 128 96S142.327 64 160 64S192 78.327 192 96S177.673 128 160 128zM32 0C14.327 0 0 -14.327 0 -32S14.327 -64 32 -64S64 -49.673 64 -32S49.673 0 32 0zM512 187.993C512 189.511 511.988 191.018 511.955 192.524C510.076 307.475 436.157 409.53 327.9940000000001 446.489C313.3610000000001 451.487 297.4450000000001 443.68 292.444 429.0470000000001C287.444 414.414 295.254 398.498 309.886 393.497C395.7920000000001 364.1430000000001 454.496 282.984 455.963 191.544L455.966 191.356C455.992 190.238 455.999 189.12 455.999 187.993C455.999 172.529 468.535 159.993 483.999 159.993S512 172.529 512 187.993zM152.971 8.971L72.971 88.971L39.03 55.03L119.03 -24.97L152.971 8.971z" />
    +    <glyph glyph-name="asterisk"
    +      unicode="&#xF069;"
    +      horiz-adv-x="512" d=" M478.21 113.907L336 192L478.21 270.093C490.0050000000001 276.5700000000001 494.171 291.4770000000001 487.442 303.13L467.962 336.8710000000001C461.234 348.524 446.242 352.37 434.735 345.394L296 261.2820000000001L299.475 423.486C299.763 436.939 288.937 448 275.48 448H236.52C223.064 448 212.237 436.939 212.526 423.486L216 261.2820000000001L77.265 345.3930000000001C65.759 352.3690000000001 50.766 348.523 44.038 336.87L24.558 303.129C17.83 291.476 21.996 276.569 33.791 270.092L176 192L33.79 113.907C21.995 107.43 17.829 92.523 24.558 80.87L44.038 47.129C50.766 35.476 65.759 31.63 77.265 38.606L216 122.718L212.525 -39.486C212.237 -52.939 223.064 -64 236.52 -64H275.481C288.937 -64 299.764 -52.939 299.476 -39.486L296 122.718L434.735 38.607C446.241 31.631 461.234 35.477 467.962 47.1300000000001L487.442 80.871C494.17 92.5240000000001 490.005 107.4300000000001 478.21 113.9070000000001z" />
    +    <glyph glyph-name="at"
    +      unicode="&#xF1FA;"
    +      horiz-adv-x="512" d=" M256 440C118.941 440 8 329.081 8 192C8 54.941 118.919 -56 256 -56C304.154 -56 351.342 -41.86 391.408 -15.777C403.413 -7.962 406.033 8.511 396.9600000000001 19.595L386.783 32.028C379.112 41.399 365.6040000000001 43.695 355.4100000000001 37.157C325.92 18.243 291.314 8 256 8C154.542 8 72 90.542 72 192S154.542 376 256 376C356.139 376 440 318.381 440 216C440 177.214 418.907 136.258 381.83 132.307C364.481 132.761 364.92 145.164 368.354 162.331L391.787 283.4410000000001C394.653 298.25 383.308 312 368.225 312H323.2440000000001A13.518 13.518 0 0 1 309.812 300.007L309.802 299.915C295.105 317.8160000000001 269.3540000000001 321.69 249.831 321.69C175.251 321.69 112 259.456 112 170.23C112 104.927 148.785 64.36 208 64.36C234.9840000000001 64.36 265.3690000000001 79.997 282.9910000000001 102.693C292.5130000000001 68.589 323.6040000000001 68.59 353.701 68.59C462.609 68.59 504 140.202 504 216C504 352.347 394.023 440 256 440zM234.32 135.57C212.071 135.57 198.25 151.193 198.25 176.341C198.25 221.334 229.029 249.07 256.88 249.07C279.1720000000001 249.07 292.481 233.829 292.481 208.3C292.481 163.239 258.606 135.57 234.32 135.57z" />
    +    <glyph glyph-name="atlas"
    +      unicode="&#xF558;"
    +      horiz-adv-x="448" d=" M318.38 240H279.29C277.8 212.97 272.75 188.65 265.08 169.59C292.79 182.8300000000001 313.1 208.78 318.38 240.0000000000001zM318.38 272C313.09 303.2200000000001 292.79 329.17 265.08 342.41C272.76 323.35 277.8 299.03 279.29 272H318.38zM224 350.69C216.31 343.24 203.23 316.27 200.57 272H247.44C244.77 316.26 231.69 343.24 224 350.69zM182.92 342.41C155.21 329.17 134.9 303.2200000000001 129.62 272H168.71C170.2 299.03 175.24 323.35 182.92 342.41zM182.92 169.59C175.24 188.65 170.2 212.97 168.71 240.0000000000001H129.62C134.9 208.78 155.21 182.8300000000001 182.92 169.59zM247.43 240H200.56C203.22 195.74 216.3 168.76 223.99 161.31C231.69 168.76 244.77 195.74 247.43 240zM448 89.6V422.4C448 438.4 438.4 448 422.4 448H96C41.6 448 0 406.4 0 352V32C0 -22.4 41.6 -64 96 -64H422.4C435.2 -64 448 -54.4 448 -38.4V-22.4C448 -16 444.8 -9.6 438.4 -3.2C435.2 12.8 435.2 57.6 438.4 70.4C444.8 73.6 448 80 448 89.6zM224 384C294.69 384 352 326.69 352 256S294.69 128 224 128S96 185.31 96 256S153.31 384 224 384zM384 0H96C76.8 0 64 12.8 64 32S80 64 96 64H384V0z" />
    +    <glyph glyph-name="atom"
    +      unicode="&#xF5D2;"
    +      horiz-adv-x="448" d=" M413.03 192C453.16 246.89 454.54 290.62 438.17 320C427.26 339.52 397.63 370.73 321.84 361.88C300.36 413.11 267.64 448 224 448S147.64 413.11 126.16 361.88C50.43 370.66 20.73 339.52 9.83 320C-6.55 290.6 -5.17 246.91 34.97 192C-5.16 137.11 -6.54 93.38 9.83 64C39.04 11.66 111.51 20.42 126.16 22.12C147.63 -29.1 180.36 -64 224 -64S300.37 -29.1 321.8400000000001 22.12C336.48 20.42 408.9500000000001 11.66 438.17 64C454.55 93.4 453.17 137.09 413.0300000000001 192zM63.38 96C59.35 103.21 63.19 120.8 78.33 144.29C85.29 137.7600000000001 92.53 131.4 100.2 125.11C101.91 111.4 104.2 98.03 106.96 85.03C82.4 84.14 67.07 89.4 63.38 96.0000000000001zM100.2 258.88C92.54 252.59 85.3 246.23 78.33 239.7C63.2 263.2 59.36 280.79 63.38 288C66.79 294.14 79.77 299.4700000000001 101.3 299.4700000000001C103.01 299.4700000000001 105.17 299.17 106.99 299.1A472.19100000000003 472.19100000000003 0 0 1 100.2 258.88zM224 384C233.47 384 246.2 370.48 257.86 346.74C246.67 343.04 235.42 338.74 224 333.88C212.58 338.74 201.33 343.04 190.14 346.74C201.8 370.48 214.53 384 224 384zM224 0C214.53 0 201.8 13.52 190.14 37.26C201.33 40.96 212.58 45.26 224 50.12C235.42 45.26 246.67 40.96 257.86 37.26C246.2 13.52 233.47 0 224 0zM286.5 157.3300000000001C259.8 138.2500000000001 240.36 128.0000000000001 224 119.85C207.65 127.99 188.2 138.2600000000001 161.5 157.3300000000001C159.51 185.1200000000001 159.51 198.87 161.5 226.6600000000001C188.17 245.7100000000001 207.63 255.98 224 264.14C240.39 255.9700000000001 259.86 245.7 286.5 226.6600000000001C288.48 198.88 288.49 185.13 286.5 157.3300000000001zM384.62 96C380.95 89.38 365.62 84.18 341.04 85.05C343.8 98.05 346.0900000000001 111.42 347.8 125.11C355.4600000000001 131.4 362.7 137.76 369.67 144.29C384.8 120.8 388.64 103.21 384.62 96zM369.67 239.71C362.7100000000001 246.24 355.4700000000001 252.6 347.8 258.89A473.535 473.535 0 0 1 341.01 299.11C342.83 299.18 344.98 299.48 346.7 299.48C368.22 299.48 381.21 294.14 384.62 288.01C388.64 280.79 384.8 263.2000000000001 369.67 239.7100000000001zM224 224C206.33 224 192 209.67 192 192S206.33 160 224 160S256 174.33 256 192S241.67 224 224 224z" />
    +    <glyph glyph-name="audio-description"
    +      unicode="&#xF29E;"
    +      horiz-adv-x="512" d=" M162.925 209.291L171.747 178.636H146.141L155.182 209.288C156.459 213.709 157.833 219.282 159.054 224.533C160.274 219.282 161.648 213.71 162.9250000000001 209.291zM329.399 241.39H314.876V142.609H329.399C359.175 142.609 375.574 160.287 375.574 192.385C375.574 224.624 358.084 241.39 329.399 241.39zM512 336V48C512 21.49 490.51 0 464 0H48C21.49 0 0 21.49 0 48V336C0 362.51 21.49 384 48 384H464C490.51 384 512 362.51 512 336zM245.459 111.861L188.362 279.861A12.001000000000001 12.001000000000001 0 0 1 177 288H141.106A12.001000000000001 12.001000000000001 0 0 1 129.744 279.861L72.647 111.861C70.003 104.078 75.789 96 84.009 96H113.142A12 12 0 0 1 124.677 104.693L133.251 134.599H184.618L193.411 104.622A12 12 0 0 1 204.926 96H234.098C242.318 96 248.104 104.078 245.459 111.861zM430.16 192.386C430.16 251.363 392.241 288 331.2 288H273.834C267.207 288 261.834 282.627 261.834 276V108C261.834 101.373 267.207 96 273.834 96H331.2C392.241 96 430.16 132.933 430.16 192.386z" />
    +    <glyph glyph-name="award"
    +      unicode="&#xF559;"
    +      horiz-adv-x="384" d=" M97.12 85.37C88.43 94.06 92.96 91.61 72 97.22C62.49 99.77 54.13 104.67 46.57 110.54L1.2 -0.7C-3.19 -11.47 5.01 -23.17 16.63 -22.73L69.32 -20.72L105.56 -59C113.56 -67.44 127.6 -64.8099999999999 131.99 -54.04L184.04 73.58C173.2 67.54 161.17 64 148.73 64C129.23 64 110.91 71.59 97.12 85.37zM382.8 -0.7L337.43 110.54C329.87 104.66 321.51 99.77 312 97.22C290.93 91.58 295.55 94.04 286.88 85.37C273.09 71.59 254.76 64 235.26 64C222.82 64 210.79 67.55 199.95 73.58L252 -54.04C256.39 -64.8100000000001 270.44 -67.44 278.43 -59L314.68 -20.72L367.37 -22.73C378.99 -23.17 387.19 -11.46 382.8 -0.7zM263 108C278.28 123.55 280.03 122.21 301.79 128.14C315.68 131.93 326.54 142.98 330.26 157.12C337.74 185.52 335.8 182.09 356.21 202.87C366.38 213.22 370.35 228.31 366.63 242.45C359.16 270.83 359.15 266.87 366.63 295.28C370.35 309.42 366.38 324.51 356.21 334.86C335.8 355.64 337.74 352.22 330.26 380.61C326.54 394.75 315.68 405.8 301.79 409.59C273.91 417.2 277.27 415.21 256.84 436C246.67 446.35 231.84 450.4 217.95 446.61C190.08 439.01 193.97 439 166.05 446.61C152.16 450.4 137.33 446.36 127.16 436C106.75 415.22 110.11 417.2 82.22 409.59C68.33 405.8 57.47 394.75 53.75 380.61C46.28 352.22 48.21 355.64 27.8 334.86C17.63 324.51 13.65 309.42 17.38 295.28C24.85 266.92 24.86 270.88 17.38 242.46C13.66 228.32 17.63 213.23 27.8 202.87C48.21 182.09 46.27 185.52 53.75 157.12C57.47 142.98 68.33 131.93 82.22 128.14C104.6 122.04 106.27 123 121 108C134.23 94.53 154.84 92.12 170.74 102.18A39.676 39.676 0 0 0 213.27 102.18C229.1600000000001 92.12 249.77 94.53 263 108zM97.66 272.04C97.66 325.07 139.9 368.06 192 368.06S286.3400000000001 325.07 286.3400000000001 272.04S244.1 176.02 192 176.02S97.66 219.01 97.66 272.04z" />
    +    <glyph glyph-name="backspace"
    +      unicode="&#xF55A;"
    +      horiz-adv-x="640" d=" M576 384H205.26A63.97 63.97 0 0 1 160 365.25L9.37 214.63C-3.13 202.13 -3.13 181.87 9.37 169.38L160 18.75C172 6.75 188.28 0 205.25 0H576C611.35 0 640 28.65 640 64V320C640 355.35 611.35 384 576 384zM491.31 129.94C497.56 123.69 497.56 113.56 491.31 107.31L468.69 84.69C462.44 78.44 452.31 78.44 446.06 84.69L384 146.75L321.94 84.69C315.69 78.44 305.56 78.44 299.31 84.69L276.69 107.31C270.44 113.56 270.44 123.69 276.69 129.94L338.75 192L276.69 254.06C270.44 260.31 270.44 270.44 276.69 276.69L299.31 299.31C305.56 305.56 315.69 305.56 321.94 299.31L384 237.25L446.06 299.31C452.31 305.56 462.44 305.56 468.69 299.31L491.31 276.69C497.56 270.44 497.56 260.31 491.31 254.06L429.25 192L491.31 129.94z" />
    +    <glyph glyph-name="backward"
    +      unicode="&#xF04A;"
    +      horiz-adv-x="512" d=" M11.5 167.4L203.5 7.4C224.1 -9.8 256 4.6 256 32V352C256 379.4 224.1 393.8 203.5 376.6L11.5 216.6C-3.8 203.8 -3.8 180.2 11.5 167.4zM267.5 167.4L459.5 7.4C480.1 -9.8 512 4.6 512 32V352C512 379.4 480.1 393.8 459.5 376.6L267.5 216.6C252.2 203.8 252.2 180.2 267.5 167.4z" />
    +    <glyph glyph-name="balance-scale"
    +      unicode="&#xF24E;"
    +      horiz-adv-x="640" d=" M256 112H255.98C255.98 128.18 257.32 120.73 170.93 293.51C153.28 328.8 102.74 328.87 85.06 293.51C-2.06 119.25 0.02 127.67 0.02 112H0C0 67.82 57.31 32 128 32S256 67.82 256 112zM128 272L200 128H56L128 272zM639.98 112C639.98 128.18 641.32 120.73 554.9300000000001 293.51C537.2800000000001 328.8 486.7400000000001 328.87 469.0600000000001 293.51C381.9400000000001 119.25 384.0200000000001 127.67 384.0200000000001 112H384C384 67.82 441.31 32 512 32S640 67.82 640 112H639.98zM440 128L512 272L584 128H440zM528 0H352V294.75C375.51 305.04 393.16 326.23 398.39 352H528C536.84 352 544 359.16 544 368V400C544 408.8400000000001 536.84 416 528 416H383.64C369.04 435.32 346.09 448 320 448S270.96 435.32 256.36 416H112C103.16 416 96 408.8400000000001 96 400V368C96 359.16 103.16 352 112 352H241.61C246.84 326.24 264.48 305.04 288 294.75V0H112C103.16 0 96 -7.16 96 -16V-48C96 -56.84 103.16 -64 112 -64H528C536.84 -64 544 -56.84 544 -48V-16C544 -7.16 536.84 0 528 0z" />
    +    <glyph glyph-name="ban"
    +      unicode="&#xF05E;"
    +      horiz-adv-x="512" d=" M256 440C119.034 440 8 328.967 8 192S119.034 -56 256 -56S504 55.034 504 192S392.967 440 256 440zM386.108 322.108C451.556 256.6600000000001 456.108 156.627 406.7850000000001 86.471L150.47 342.784C220.674 392.14 320.6960000000001 387.519 386.108 322.108zM125.892 61.892C60.444 127.34 55.892 227.373 105.215 297.529L361.53 41.216C291.327 -8.14 191.304 -3.52 125.892 61.892z" />
    +    <glyph glyph-name="band-aid"
    +      unicode="&#xF462;"
    +      horiz-adv-x="640" d=" M0 288V96C0 60.7 28.7 32 64 32H160V352H64C28.7 352 0 323.3 0 288zM576 352H480V32H576C611.3 32 640 60.7 640 96V288C640 323.3 611.3 352 576 352zM192 32H448V352H192V32zM368 264C381.3 264 392 253.3 392 240S381.3 216 368 216S344 226.7 344 240S354.7 264 368 264zM368 168C381.3 168 392 157.3 392 144S381.3 120 368 120S344 130.7 344 144S354.7 168 368 168zM272 264C285.3 264 296 253.3 296 240S285.3 216 272 216S248 226.7 248 240S258.7 264 272 264zM272 168C285.3 168 296 157.3 296 144S285.3 120 272 120S248 130.7 248 144S258.7 168 272 168z" />
    +    <glyph glyph-name="barcode"
    +      unicode="&#xF02A;"
    +      horiz-adv-x="512" d=" M0 0V384H18V0H0zM26.857 0.273V384H36V0.273H26.857zM54 0.273V384H62.857V0.273H54zM98.857 0.273V384H107.714V0.273H98.857zM134.857 0.273V384H152.571V0.273H134.857zM179.714 0.273V384H188.571V0.273H179.714zM197.714 0.273V384H206.571V0.273H197.714zM215.714 0.273V384H224.571V0.273H215.714zM251.429 0.273V384H269.429V0.273H251.429zM296.286 0.273V384H314.286V0.273H296.286zM332.2850000000001 0.273V384H350.286V0.273H332.2850000000001zM368.286 0.273V384H386.287V0.273H368.286zM395.1430000000001 0.273V384H413.1430000000001V0.273H395.1430000000001zM440.2860000000001 0.273V384H467.143V0.273H440.2860000000001zM476.0000000000001 0.273V384H485.143V0.273H476zM494.0000000000001 0V384H512V0H494z" />
    +    <glyph glyph-name="bars"
    +      unicode="&#xF0C9;"
    +      horiz-adv-x="448" d=" M16 316H432C440.837 316 448 323.163 448 332V372C448 380.837 440.837 388 432 388H16C7.163 388 0 380.837 0 372V332C0 323.163 7.163 316 16 316zM16 156H432C440.837 156 448 163.163 448 172V212C448 220.837 440.837 228 432 228H16C7.163 228 0 220.837 0 212V172C0 163.163 7.163 156 16 156zM16 -4H432C440.837 -4 448 3.163 448 12V52C448 60.837 440.837 68 432 68H16C7.163 68 0 60.837 0 52V12C0 3.163 7.163 -4 16 -4z" />
    +    <glyph glyph-name="baseball-ball"
    +      unicode="&#xF433;"
    +      horiz-adv-x="496" d=" M368.5 84.1L397.3 98C408.4000000000001 75.1 423.3 54.8 441.4000000000001 37.1C475.4 79.6 495.9 133.4 495.9 192C495.9 250.5000000000001 475.5000000000001 304.2000000000001 441.7000000000001 346.6C423.9000000000001 329.3 409.1 309.5 398.1 287.1L369.4000000000001 301.2000000000001C382.2000000000001 327.2000000000001 399.4000000000001 350.2000000000001 420.2000000000001 370.2000000000001C375.6 413.3 315 440 248 440C181.1 440 120.5 413.4 75.9 370.3C96.6 350.4 113.8 327.4 126.6 301.5L97.9 287.4C86.9 309.7000000000001 72.2 329.5 54.4 346.8C20.4 304.3 0 250.6 0 192C0 133.4 20.4 79.7 54.4 37.3C72.6 55 87.6 75.3 98.7 98.3L127.5 84.4C114.6 57.7000000000001 97.2 34.1 76 13.7C120.5 -29.4 181.1 -55.9999999999999 248 -55.9999999999999C314.8 -55.9999999999999 375.3 -29.4999999999999 419.9 13.5000000000001C398.8 33.9 381.4 57.4 368.5 84.1zM140.2 116.1L109.7 125.9C124.6 172.3 122.4 219.7000000000001 109.1 259.9000000000001L139.5 269.9000000000001C154.5 224.3000000000001 157.5 170 140.2 116.1zM356.5 269.5L386.9 259.5C373.7 219.4 371.4 172 386.3 125.5L355.8 115.7C338.5 169.7 341.5 224 356.5 269.5z" />
    +    <glyph glyph-name="basketball-ball"
    +      unicode="&#xF434;"
    +      horiz-adv-x="496" d=" M212.3 437.7C168.5 431.4 126.1 413.6 90.1 383.9L167.5 306.5C195.3 342.3 210.8 387.7 212.3 437.7zM248 226L405.9 383.9C363.5 418.9 312.3 437.4 260.4 440C259.2 376.1 238.9 317.7000000000001 201.7 272.3L248 226zM56.1 349.9C26.4 313.9 8.6 271.5 2.3 227.7C52.3 229.2 97.8 244.7 133.5 272.5L56.1 349.9zM328.3 145.7000000000001C373.6 182.8000000000001 432 203.1000000000001 496 204.4C493.4 256.3000000000001 474.9 307.5 439.9 349.9000000000001L282 192L328.3 145.7zM248 158L90.1 0.1C132.5 -34.8 183.7 -53.4 235.6 -56C236.9 8 257.2 66.4 294.3 111.7L248 158zM439.9 34.1C469.6 70.1 487.4 112.5 493.7 156.3C443.6 154.7 398.2 139.2 362.5 111.5L439.9 34.1zM167.7 238.3C122.3 201.1 63.9 180.7 0 179.6C2.6 127.7000000000001 21.1 76.5 56.1 34.1L214 192L167.7 238.3zM283.7 -53.7C327.5 -47.4 369.9 -29.6 405.9 0.1L328.5 77.5C300.8 41.8 285.3 -3.7 283.7 -53.7z" />
    +    <glyph glyph-name="bath"
    +      unicode="&#xF2CD;"
    +      horiz-adv-x="512" d=" M488 192H80V336C80 353.645 94.355 368 112 368C123.351 368 133.332 362.055 139.015 353.12C122.523 327.913 124.328 293.544 145.853 270.0850000000001C141.677 265.372 141.832 258.169 146.344 253.657L157.658 242.343C162.344 237.657 169.942 237.657 174.629 242.343L269.659 337.372C274.345 342.058 274.345 349.656 269.659 354.343L258.345 365.6570000000001C253.833 370.169 246.63 370.323 241.917 366.148C223.968 382.617 199.623 387.577 177.739 381.5130000000001C163.281 402.333 139.212 416 112 416C67.888 416 32 380.112 32 336V192H24C10.745 192 0 181.255 0 168V152C0 138.745 10.745 128 24 128H32V96C32 67.57 44.362 42.031 64 24.453V-8C64 -21.255 74.745 -32 88 -32H104C117.255 -32 128 -21.255 128 -8V0H384V-8C384 -21.255 394.745 -32 408 -32H424C437.255 -32 448 -21.255 448 -8V24.453C467.638 42.031 480 67.57 480 96V128H488C501.255 128 512 138.745 512 152V168C512 181.255 501.255 192 488 192z" />
    +    <glyph glyph-name="battery-empty"
    +      unicode="&#xF244;"
    +      horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352z" />
    +    <glyph glyph-name="battery-full"
    +      unicode="&#xF240;"
    +      horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM512 256H96V128H512V256z" />
    +    <glyph glyph-name="battery-half"
    +      unicode="&#xF242;"
    +      horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM320 256H96V128H320V256z" />
    +    <glyph glyph-name="battery-quarter"
    +      unicode="&#xF243;"
    +      horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM224 256H96V128H224V256z" />
    +    <glyph glyph-name="battery-three-quarters"
    +      unicode="&#xF241;"
    +      horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM416 256H96V128H416V256z" />
    +    <glyph glyph-name="bed"
    +      unicode="&#xF236;"
    +      horiz-adv-x="640" d=" M176 192C220.11 192 256 227.89 256 272S220.11 352 176 352S96 316.11 96 272S131.89 192 176 192zM528 320H304C295.1600000000001 320 288 312.8400000000001 288 304V160H64V368C64 376.8400000000001 56.84 384 48 384H16C7.16 384 0 376.8400000000001 0 368V16C0 7.16 7.16 0 16 0H48C56.84 0 64 7.16 64 16V64H576V16C576 7.16 583.16 0 592 0H624C632.84 0 640 7.16 640 16V208C640 269.86 589.86 320 528 320z" />
    +    <glyph glyph-name="beer"
    +      unicode="&#xF0FC;"
    +      horiz-adv-x="448" d=" M368 352H320V392C320 405.255 309.255 416 296 416H24C10.745 416 0 405.255 0 392V-8C0 -21.255 10.745 -32 24 -32H296C309.255 -32 320 -21.255 320 -8V34.11L400.606 70.087C429.396 82.937 448 111.612 448 143.14V272C448 316.112 412.112 352 368 352zM384 143.14A16.018 16.018 0 0 0 374.521 128.529L320 104.195V288H368C376.822 288 384 280.822 384 272V143.14zM208 64C199.164 64 192 71.164 192 80V304C192 312.836 199.164 320 208 320S224 312.836 224 304V80C224 71.164 216.836 64 208 64zM112 64C103.164 64 96 71.164 96 80V304C96 312.836 103.164 320 112 320S128 312.836 128 304V80C128 71.164 120.836 64 112 64z" />
    +    <glyph glyph-name="bell-slash"
    +      unicode="&#xF1F6;"
    +      horiz-adv-x="640" d=" M633.82 -10.1L543.2 59.95C543.3900000000001 61.33 544 62.61 544 64.01C544.05 71.56 541.39 79.28 535.39 85.72C516.0699999999999 106.48 479.92 137.71 479.92 240.01C479.92 317.71 425.44 379.91 351.98 395.17V416C351.98 433.67 337.66 448 320 448S288.0199999999999 433.67 288.0199999999999 416V395.16C247.69 386.78 213.3599999999999 364.0900000000001 190.4299999999999 332.5900000000001L45.47 444.63C38.49 450.05 28.43 448.8 23.01 441.82L3.37 416.55C-2.05 409.58 -0.8 399.53 6.18 394.1L594.53 -60.63C601.51 -66.0599999999999 611.56 -64.7999999999999 616.99 -57.82L636.63 -32.55C642.05 -25.58 640.8 -15.53 633.82 -10.1zM157.23 196.46C148.62 128.5 120.82 103.13 104.61 85.71C98.61 79.2600000000001 95.95 71.55 96 64.0000000000001C96.11 47.6000000000001 108.98 32.0000000000001 128.1 32.0000000000001H370.02L157.23 196.46zM320 -64C355.32 -64 383.9700000000001 -35.35 383.9700000000001 0H256.03C256.03 -35.35 284.68 -64 320 -64z" />
    +    <glyph glyph-name="bell"
    +      unicode="&#xF0F3;"
    +      horiz-adv-x="448" d=" M224 -64C259.32 -64 287.9700000000001 -35.35 287.9700000000001 0H160.03C160.03 -35.35 188.68 -64 224 -64zM439.39 85.71C420.07 106.47 383.92 137.7000000000001 383.92 240.0000000000001C383.92 317.7000000000001 329.44 379.9000000000001 255.98 395.1600000000001V416C255.98 433.67 241.66 448 224 448S192.02 433.67 192.02 416V395.16C118.56 379.9 64.08 317.7 64.08 240C64.08 137.7 27.93 106.47 8.61 85.71C2.61 79.2600000000001 -0.05 71.55 0 64.0000000000001C0.11 47.6000000000001 12.98 32.0000000000001 32.1 32.0000000000001H415.9000000000001C435.0200000000001 32.0000000000001 447.9000000000001 47.6000000000001 448.0000000000001 64.0000000000001C448.0500000000001 71.5500000000001 445.3900000000001 79.27 439.3900000000001 85.71z" />
    +    <glyph glyph-name="bezier-curve"
    +      unicode="&#xF55B;"
    +      horiz-adv-x="640" d=" M368 416H272C254.33 416 240 401.67 240 384V288C240 270.33 254.33 256 272 256H368C385.67 256 400 270.3300000000001 400 288V384C400 401.67 385.67 416 368 416zM208 360H123.25C113.75 383.44 90.84 400 64 400C28.66 400 0 371.35 0 336S28.66 272 64 272C90.84 272 113.75 288.56 123.25 312H202.98C147.61 279.48 107.12 224.68 93.44 160H142.84C154.14 201.61 179.61 237.21 213.88 261.56C210.18 269.64 208 278.55 208 288V360zM160 128H64C46.33 128 32 113.67 32 96V0C32 -17.67 46.33 -32 64 -32H160C177.67 -32 192 -17.67 192 0V96C192 113.67 177.67 128 160 128zM576 400C549.16 400 526.25 383.44 516.75 360H432V288C432 278.55 429.81 269.64 426.12 261.56C460.39 237.21 485.86 201.61 497.16 160H546.5600000000001C532.8800000000001 224.68 492.39 279.48 437.0200000000001 312H516.75C526.25 288.56 549.16 272 576 272C611.34 272 640 300.65 640 336S611.34 400 576 400zM576 128H480C462.33 128 448 113.67 448 96V0C448 -17.67 462.33 -32 480 -32H576C593.67 -32 608 -17.67 608 0V96C608 113.67 593.67 128 576 128z" />
    +    <glyph glyph-name="bible"
    +      unicode="&#xF647;"
    +      horiz-adv-x="448" d=" M448 89.6V422.4C448 438.4 438.4 448 422.4 448H96C41.6 448 0 406.4 0 352V32C0 -22.4 41.6 -64 96 -64H422.4C435.2 -64 448 -54.4 448 -38.4V-22.4C448 -16 444.8 -9.6 438.4 -3.2C435.2 12.8 435.2 57.6 438.4 70.4C444.8 73.6 448 80 448 89.6zM144 304C144 312.8400000000001 151.16 320 160 320H208V368C208 376.8400000000001 215.16 384 224 384H256C264.84 384 272 376.8400000000001 272 368V320H320C328.84 320 336 312.8400000000001 336 304V272C336 263.16 328.84 256 320 256H272V144C272 135.16 264.84 128 256 128H224C215.16 128 208 135.16 208 144V256H160C151.16 256 144 263.16 144 272V304zM380.8 0H96C76.8 0 64 12.8 64 32S80 64 96 64H380.8V0z" />
    +    <glyph glyph-name="bicycle"
    +      unicode="&#xF206;"
    +      horiz-adv-x="640" d=" M512.509 255.999C496.136 256.063 480.479 253.044 466.073 247.504L388.3930000000001 372.657A24 24 0 0 1 368.001 384H304.001C295.164 384 288.001 376.837 288.001 368V352C288.001 343.163 295.164 336 304.001 336H354.65L369.546 312H256.002V328C256.002 336.837 248.839 344 240.002 344H152.543C139.102 344 127.766 333.001 128.007 319.563C128.239 306.519 138.883 296 152.002 296H200.728L171.311 248.48C157.878 253.31 143.407 255.963 128.319 256C58.094 256.17 0.412 198.988 0.002 128.764C-0.413 57.721 57.055 0 128.002 0C187.644 0 237.76 40.793 251.969 96H304.002A24 24 0 0 1 324.408 107.367L410.37 246.23L425.308 222.163C399.853 198.715 383.923 165.082 384.001 127.726C384.146 58.893 441.9 0.675 510.73 0.007C581.336 -0.678 638.911 55.81 639.9849999999999 126.003C641.0709999999999 196.944 583.459 255.723 512.5089999999999 255.999zM186.75 182.228C196.477 171.699 203.423 158.567 206.392 144H163.086L186.75 182.228zM128.002 48C83.89 48 48.002 83.888 48.002 128S83.89 208 128.002 208C133.871 208 139.588 207.347 145.101 206.141L99.596 132.632C89.715 116.673 101.213 96 120.002 96H201.302C188.932 67.775 160.74 48 128.002 48zM290.632 144H255.008C251.048 175.756 235.452 203.894 212.625 224.026L237.371 264H364.918L290.632 144zM507.689 48.114C466.653 50.2790000000001 433.64 83.806 432.062 124.869C431.25 145.99 438.695 165.3870000000001 451.3969999999999 180.132L495.8299999999999 108.546C500.49 101.038 510.3539999999999 98.73 517.862 103.39L531.456 111.827C538.964 116.487 541.273 126.351 536.612 133.859L492.1439999999999 205.502A79.901 79.901 0 0 0 512.002 207.999C556.1139999999999 207.999 592.002 172.111 592.002 127.999C592.001 82.459 553.75 45.683 507.689 48.114z" />
    +    <glyph glyph-name="binoculars"
    +      unicode="&#xF1E5;"
    +      horiz-adv-x="512" d=" M416 400C416 408.8400000000001 408.84 416 400 416H336C327.1600000000001 416 320 408.8400000000001 320 400V352H416V400zM63.91 288.01C61.4 194.16 3.46 173.78 0 44V0C0 -17.67 14.33 -32 32 -32H128C145.67 -32 160 -17.67 160 0V160H192V320H95.84C78.21 320 64.39 305.63 63.91 288.01zM448.0900000000001 288.01C447.61 305.63 433.79 320 416.1600000000001 320H320V160H352V0C352 -17.67 366.33 -32 384 -32H480C497.67 -32 512 -17.67 512 0V44C508.54 173.78 450.6 194.16 448.0900000000001 288.01zM176 416H112C103.16 416 96 408.8400000000001 96 400V352H192V400C192 408.8400000000001 184.84 416 176 416zM224 160H288V320H224V160z" />
    +    <glyph glyph-name="birthday-cake"
    +      unicode="&#xF1FD;"
    +      horiz-adv-x="448" d=" M448 64C419.98 64 416.74 96 373.5 96C330.07 96 326.675 64 298.75 64C271.055 64 267.296 96 224 96C181.158 96 176.782 64 149.5 64C121.352 64 118.298 96 74.75 96C31.203 96 28.097 64 0 64V144C0 170.5 21.5 192 48 192H64V336H128V192H192V336H256V192H320V336H384V192H400C426.5 192 448 170.5 448 144V64zM448 -64H0V32C43.356 32 46.767 64 74.75 64C102.701 64 106.003 32 149.5 32C192.343 32 196.717 64 224 64C252.148 64 255.201 32 298.75 32C342.107 32 345.517 64 373.5 64C400.988 64 404.752 32 448 32V-64zM96 352C78.25 352 64 366.25 64 384C64 415 96 407 96 448C108 448 128 418.5 128 392S113.75 352 96 352zM224 352C206.25 352 192 366.25 192 384C192 415 224 407 224 448C236 448 256 418.5 256 392S241.75 352 224 352zM352 352C334.25 352 320 366.25 320 384C320 415 352 407 352 448C364 448 384 418.5 384 392S369.75 352 352 352z" />
    +    <glyph glyph-name="blender-phone"
    +      unicode="&#xF6B6;"
    +      horiz-adv-x="576" d=" M392 384H558.54L576 448H192V96H480L497.46 160H392C387.58 160 384 163.58 384 168V184C384 188.42 387.58 192 392 192H506.18L523.64 256H392C387.58 256 384 259.5800000000001 384 264V280C384 284.42 387.58 288 392 288H532.36L549.82 352H392C387.58 352 384 355.58 384 360V376C384 380.42 387.58 384 392 384zM158.8 112.99L133.02 176.25C130.24 183.06 123.22 187.24 115.78 186.51L70.75 182.09C53.47 229.03 53.1 281.87 70.75 329.81L115.78 325.39C123.21 324.66 130.24 328.85 133.02 335.65L158.8 398.91C161.82 406.3 159 414.76 152.12 418.98L112.84 443.08C98.51 451.87 80.09 448.5 68.95 436.03C-23.62 332.43 -23.05 176.48 71.05 73.54C80.92 62.74 100.17 61.06 112.7 68.74L152.11 92.92C159 97.14 161.81 105.59 158.8 112.99zM480 64H192C156.65 64 128 35.35 128 0V-32C128 -49.67 142.33 -64 160 -64H512C529.67 -64 544 -49.67 544 -32V0C544 35.35 515.35 64 480 64zM336 -32C318.33 -32 304 -17.67 304 0S318.33 32 336 32S368 17.67 368 0S353.67 -32 336 -32z" />
    +    <glyph glyph-name="blender"
    +      unicode="&#xF517;"
    +      horiz-adv-x="512" d=" M416 64H160C124.65 64 96 35.35 96 0V-32C96 -49.67 110.33 -64 128 -64H448C465.67 -64 480 -49.67 480 -32V0C480 35.35 451.35 64 416 64zM288 -32C270.33 -32 256 -17.67 256 0S270.33 32 288 32S320 17.67 320 0S305.67 -32 288 -32zM328 384H494.54L512 448H48C21.49 448 0 426.51 0 400V240C0 213.49 21.49 192 48 192H151.27L160 96H416L433.46 160H328C323.58 160 320 163.58 320 168V184C320 188.42 323.58 192 328 192H442.18L459.64 256H328C323.58 256 320 259.5800000000001 320 264V280C320 284.42 323.58 288 328 288H468.36L485.82 352H328C323.58 352 320 355.58 320 360V376C320 380.42 323.58 384 328 384zM64 256V384H133.82L145.46 256H64z" />
    +    <glyph glyph-name="blind"
    +      unicode="&#xF29D;"
    +      horiz-adv-x="384" d=" M380.15 -62.837A8 8 0 0 0 369.161 -60.15L243.831 146.2770000000001A31.923 31.923 0 0 1 256.7890000000001 155.7620000000001L382.8370000000001 -51.8459999999999A8 8 0 0 0 380.1500000000001 -62.8369999999999zM142.803 133.662L110.263 44.177L146.383 -44.1080000000001C153.076 -60.4680000000001 171.76 -68.3000000000001 188.116 -61.609C204.473 -54.917 212.309 -36.2330000000001 205.617 -19.8750000000001L142.803 133.6619999999999zM96 360C120.301 360 140 379.699 140 404S120.301 448 96 448S52 428.301 52 404S71.699 360 96 360zM250.837 190.872L130.837 342.872C126.104 348.867 119.087 351.98 112 351.9840000000001V352H80V351.974C72.854 351.971 65.783 348.813 61.056 342.7340000000001L0 264.2340000000001V168.54C0 155.085 11.011 143.749 24.464 144.004C37.505 144.252 48 154.9 48 168V247.766L64 268.337V127.639L9.927 -21.055C3.887 -37.664 12.455 -56.024 29.065 -62.064C45.667 -68.1030000000001 64.033 -59.54 70.074 -42.926L136 138.362V245.559L104.594 285.375A4 4 0 1 0 110.863 290.346L213.163 161.129C222.308 149.545 237.531 149.79 246.871 157.1640000000001C257.281 165.3800000000001 259.0300000000001 180.4980000000001 250.837 190.8720000000001z" />
    +    <glyph glyph-name="bold"
    +      unicode="&#xF032;"
    +      horiz-adv-x="384" d=" M304.793 204.109C338.432 222.646 358.45 258.269 358.45 299.802C358.45 348.038 332.2 387.428 289.824 403.981C265.138 413.99 240.849 416 209.661 416H24C15.163 416 8 408.837 8 400V366.951C8 358.114 15.163 350.951 24 350.951H57.113V32.4210000000001H24C15.163 32.4210000000001 8 25.258 8 16.4210000000001V-16C8 -24.837 15.163 -32 24 -32H219.69C243.893 -32 264.524 -30.711 286.556 -24.416C337.52 -9.193 376 37.353 376 97.986C376 150.154 349.427 189.67 304.793 204.109zM142.217 347.1910000000001H209.661C225.955 347.1910000000001 237.197 345.1720000000001 247.186 340.474C263.014 331.995 272.092 313.972 272.092 291.028C272.092 255.999 251.772 234.2380000000001 219.063 234.2380000000001H142.217V347.1910000000001zM254.859 41.716C244.719 37.66 232.182 36.809 223.45 36.809H142.217V166.057H226.584C266.229 166.057 289.641 140.677 289.641 103C289.642 74.575 275.981 50.517 254.8590000000001 41.716z" />
    +    <glyph glyph-name="bolt"
    +      unicode="&#xF0E7;"
    +      horiz-adv-x="320" d=" M295.973 288H180.572L215.19 417.816C219.25 433.044 207.756 448 192 448H56C43.971 448 33.8 439.0950000000001 32.211 427.1720000000001L0.215 187.172C-1.704 172.783 9.504 160 24.004 160H142.705L96.646 -34.466C93.05 -49.649 104.659 -64 119.992 -64C128.342 -64 136.368 -59.626 140.77 -52.022L316.7430000000001 251.975C325.9870000000001 267.942 314.4550000000001 288 295.9730000000001 288z" />
    +    <glyph glyph-name="bomb"
    +      unicode="&#xF1E2;"
    +      horiz-adv-x="512" d=" M440.5 359.5L388.5 307.5L415 281C424.4 271.6 424.4 256.4 415 247.1L397.6 229.7C409.4000000000001 203.6 416 174.6 416 144.1C416 29.2 322.9 -63.9 208 -63.9S0 29.1 0 144S93.1 352 208 352C238.5 352 267.5 345.4 293.6 333.6L311 351C320.4 360.4 335.6 360.4 344.9 351L371.4 324.5L423.4 376.5L440.5 359.5zM500 388H476C469.4 388 464 382.6 464 376S469.4 364 476 364H500C506.6 364 512 369.4 512 376S506.6 388 500 388zM440 448C433.4 448 428 442.6 428 436V412C428 405.4 433.4 400 440 400S452 405.4 452 412V436C452 442.6 446.6 448 440 448zM473.9 393L490.9 410C495.6 414.7 495.6 422.3 490.9 427C486.2 431.7 478.6 431.7 473.9 427L456.9 410C452.2 405.3 452.2 397.7 456.9 393C461.7 388.3 469.3 388.3 473.9 393zM406.1 393C410.8 388.3 418.4 388.3 423.1 393C427.8 397.7 427.8 405.3 423.1 410L406.1 427C401.4 431.7 393.8 431.7 389.1 427C384.4 422.3 384.4 414.7 389.1 410L406.1 393zM473.9 359C469.2 363.7 461.6 363.7 456.9 359C452.2 354.3 452.2 346.7 456.9 342L473.9 325C478.6 320.3 486.2 320.3 490.9 325C495.6 329.7 495.6 337.3 490.9 342L473.9 359zM112 176C112 211.3 140.7 240 176 240C184.8 240 192 247.2 192 256S184.8 272 176 272C123.1 272 80 228.9 80 176C80 167.2 87.2 160 96 160S112 167.2 112 176z" />
    +    <glyph glyph-name="bone"
    +      unicode="&#xF5D7;"
    +      horiz-adv-x="640" d=" M598.88 203.44C624.08 216.04 640 241.8 640 269.9700000000001V277.61C640 318.7 606.7 352 565.61 352C533.59 352 505.17 331.51 495.04 301.14C487.36 278.11 483.44 256 456.93 256H183.06C155.68 256 151.48 281.54 144.95 301.14C134.83 331.51 106.4 352 74.39 352C33.3 352 0 318.7 0 277.61V269.9700000000001C0 241.8 15.92 216.04 41.12 203.44C50.55 198.73 50.55 185.2700000000001 41.12 180.56C15.92 167.96 0 142.2 0 114.03V106.39C0 65.3 33.3 32 74.38 32C106.4 32 134.82 52.49 144.95 82.86C152.63 105.89 156.55 128 183.06 128H456.93C484.31 128 488.51 102.46 495.04 82.86C505.17 52.49 533.6 32 565.61 32C606.69 32 639.99 65.3 639.99 106.39V114.03C639.99 142.21 624.07 167.96 598.87 180.56C589.45 185.2699999999999 589.45 198.73 598.88 203.44z" />
    +    <glyph glyph-name="bong"
    +      unicode="&#xF55C;"
    +      horiz-adv-x="448" d=" M302.5 -64C325.68 -64 346.93 -51.42 358.5 -31.34C374.69 -3.26 384 29.25 384 64C384 100.12 373.92 133.81 356.56 162.62L400 206.06L409.38 196.68C415.63 190.43 425.76 190.43 432.01 196.68L443.31 208C449.56 214.25 449.56 224.38 443.31 230.63L390.62 283.32C384.37 289.57 374.24 289.57 367.99 283.32L356.68 272.01C350.43 265.76 350.43 255.63 356.68 249.38L366.06 240L326.65 200.59C315.09 211.96 302.12 221.92 288 230.1V384.26L303.9700000000001 384.28C312.79 384.29 319.9400000000001 391.44 319.9500000000001 400.26L319.9900000000001 431.98C320 440.83 312.82 448.01 303.9700000000001 448L80.03 447.74C71.21 447.73 64.06 440.58 64.05 431.76L64.01 400.03C64 391.18 71.18 384.01 80.03 384.02L96 384.04V230.11C38.67 196.9 0 135.03 0 64C0 29.25 9.31 -3.27 25.5 -31.34C37.08 -51.42 58.33 -64 81.5 -64H302.5zM120.06 188.57L144 202.44V384.0900000000001L240 384.2V202.44L263.94 188.57C288.75 174.2 308.06 152.84 320.5 128H63.5C75.95 152.84 95.25 174.2 120.06 188.57z" />
    +    <glyph glyph-name="book-dead"
    +      unicode="&#xF6B7;"
    +      horiz-adv-x="448" d=" M272 312C280.84 312 288 319.16 288 328S280.84 344 272 344S256 336.8400000000001 256 328S263.1600000000001 312 272 312zM448 89.6V422.4C448 438.4 438.4 448 422.4 448H96C41.6 448 0 406.4 0 352V32C0 -22.4 41.6 -64 96 -64H422.4C435.2 -64 448 -54.4 448 -38.4V-22.4C448 -16 444.8 -9.6 438.4 -3.2C435.2 12.8 435.2 57.6 438.4 70.4C444.8 73.6 448 80 448 89.6zM240 392C284.18 392 320 363.35 320 328C320 307.13 307.32 288.77 288 277.0900000000001V264C288 255.16 280.84 248 272 248H208C199.16 248 192 255.16 192 264V277.0900000000001C172.68 288.77 160 307.13 160 328C160 363.35 195.82 392 240 392zM129.05 214.15A7.996000000000001 7.996000000000001 0 0 0 124.85 224.65L131.14 239.35A7.995 7.995 0 0 0 141.65 243.55L240 201.4L338.35 243.55C342.4100000000001 245.29 347.12 243.4100000000001 348.86 239.35L355.1500000000001 224.65A7.996000000000001 7.996000000000001 0 0 0 350.9500000000001 214.15L280.6 184L350.9400000000001 153.85A7.996000000000001 7.996000000000001 0 0 0 355.1400000000001 143.35L348.85 128.65A8.008 8.008 0 0 0 338.3400000000001 124.4400000000001L240 166.6L141.65 124.4500000000001A8.003 8.003 0 0 0 131.14 128.66L124.85 143.36A7.996000000000001 7.996000000000001 0 0 0 129.05 153.86L199.4 184L129.05 214.15zM380.8 0H96C76.8 0 64 12.8 64 32S80 64 96 64H380.8V0zM208 312C216.84 312 224 319.16 224 328S216.84 344 208 344S192 336.8400000000001 192 328S199.16 312 208 312z" />
    +    <glyph glyph-name="book-open"
    +      unicode="&#xF518;"
    +      horiz-adv-x="576" d=" M542.22 415.95C487.42 412.8400000000001 378.5 401.52 311.26 360.36C306.62 357.52 303.99 352.4700000000001 303.99 347.19V-16.68C303.99 -28.23 316.62 -35.53 327.27 -30.17C396.45 4.65 496.5 14.15 545.97 16.75C562.86 17.64 575.99 31.18 575.99 47.41V385.25C576 402.96 560.64 416.99 542.22 415.95zM264.73 360.36C197.5 401.52 88.58 412.83 33.78 415.95C15.36 416.99 0 402.96 0 385.25V47.4C0 31.16 13.13 17.62 30.02 16.74C79.51 14.1399999999999 179.61 4.6299999999999 248.79 -30.21C259.4100000000001 -35.5600000000001 272 -28.27 272 -16.7500000000001V347.37C272 352.6600000000001 269.38 357.51 264.73 360.36z" />
    +    <glyph glyph-name="book-reader"
    +      unicode="&#xF5DA;"
    +      horiz-adv-x="512" d=" M352 352C352 405.02 309.02 448 256 448S160 405.02 160 352S202.98 256 256 256S352 298.98 352 352zM233.59 206.9C174.26 243.22 78.16 253.2 29.8 255.95C13.55 256.87 0 244.49 0 228.86V6.06C0 -8.27 11.59 -20.22 26.49 -20.99C70.15 -23.28 158.48 -31.67 219.53 -62.42C228.9 -67.14 240.01 -60.71 240.01 -50.55V195.44C240 200.11 237.69 204.39 233.59 206.9zM482.2 255.95C433.85 253.21 337.74 243.22 278.4200000000001 206.9C274.3200000000001 204.39 272.0100000000001 199.94 272.0100000000001 195.27V-50.52C272.0100000000001 -60.71 283.1500000000001 -67.15 292.5500000000001 -62.42C353.5900000000001 -31.6999999999999 441.8700000000001 -23.3099999999999 485.5200000000001 -21.02C500.4200000000001 -20.24 512.0100000000001 -8.29 512.0100000000001 6.04V228.86C512.0000000000001 244.49 498.4500000000001 256.87 482.2000000000001 255.95z" />
    +    <glyph glyph-name="book"
    +      unicode="&#xF02D;"
    +      horiz-adv-x="448" d=" M448 88V424C448 437.3 437.3 448 424 448H96C43 448 0 405 0 352V32C0 -21 43 -64 96 -64H424C437.3 -64 448 -53.3 448 -40V-24C448 -16.5 444.5 -9.7 439.1 -5.3C434.9000000000001 10.1 434.9000000000001 54 439.1 69.4C444.5 73.7 448 80.5 448 88zM128 314C128 317.3 130.7 320 134 320H346C349.3 320 352 317.3 352 314V294C352 290.7 349.3 288 346 288H134C130.7 288 128 290.7 128 294V314zM128 250C128 253.3 130.7 256 134 256H346C349.3 256 352 253.3 352 250V230C352 226.7 349.3 224 346 224H134C130.7 224 128 226.7 128 230V250zM381.4 0H96C78.3 0 64 14.3 64 32C64 49.6 78.4 64 96 64H381.4C379.5 46.9 379.5 17.1 381.4 0z" />
    +    <glyph glyph-name="bookmark"
    +      unicode="&#xF02E;"
    +      horiz-adv-x="384" d=" M0 -64V400C0 426.51 21.49 448 48 448H336C362.51 448 384 426.51 384 400V-64L192 48L0 -64z" />
    +    <glyph glyph-name="bowling-ball"
    +      unicode="&#xF436;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM120 256C102.3 256 88 270.3 88 288S102.3 320 120 320S152 305.7 152 288S137.7 256 120 256zM184 352C184 369.7 198.3 384 216 384S248 369.7 248 352S233.7 320 216 320S184 334.3 184 352zM232 208C214.3 208 200 222.3 200 240S214.3 272 232 272S264 257.7 264 240S249.7 208 232 208z" />
    +    <glyph glyph-name="box-open"
    +      unicode="&#xF49E;"
    +      horiz-adv-x="640" d=" M53.2 407L1.7 304.2C-2.9 295 2 284 11.8 281.2L209.7 224.7C216.8 222.7 224.4 225.7 228.2 232L320 384L69.8 415.9C62.9 416.7 56.3 413.2 53.2 407zM638.3000000000001 304.2L586.8 407C583.6999999999999 413.2 577 416.8 570.0999999999999 415.9L320 384L411.7 231.9C415.5 225.6 423.1 222.6 430.2 224.6L628.1 281.1C638 284 642.8000000000001 295 638.3000000000001 304.2zM425.7 192C408.8 192 392.9 201 384.3 215.4L320 322L255.8 215.4C247.1 200.9 231.2 191.9 214.3 191.9C209.8 191.9 205.3 192.5 201 193.8L64 233V55C64 40.3 74 27.5 88.2 24L304.4 -30.1C314.6 -32.6 325.3 -32.6 335.4 -30.1L551.8 24C566 27.6 576 40.4 576 55V233L439 193.9C434.7 192.6 430.2 192 425.7 192z" />
    +    <glyph glyph-name="box"
    +      unicode="&#xF466;"
    +      horiz-adv-x="512" d=" M509.5 263.4L458.9 415.2C452.4 434.8 434.1 448 413.4 448H272V256H510.7C510.3 258.5 510.3 261 509.5 263.4zM240 448H98.6C77.9 448 59.6 434.8 53.1 415.2L2.5 263.4C1.7 261 1.7 258.5 1.3 256H240V448zM0 224V-16C0 -42.5 21.5 -64 48 -64H464C490.5 -64 512 -42.5 512 -16V224H0z" />
    +    <glyph glyph-name="boxes"
    +      unicode="&#xF468;"
    +      horiz-adv-x="576" d=" M560 160H480V64L448 85.3L416 64V160H336C327.2 160 320 152.8 320 144V-48C320 -56.8 327.2 -64 336 -64H560C568.8 -64 576 -56.8 576 -48V144C576 152.8 568.8 160 560 160zM176 224H400C408.8 224 416 231.2 416 240V432C416 440.8 408.8 448 400 448H320V352L288 373.3L256 352V448H176C167.2 448 160 440.8 160 432V240C160 231.2 167.2 224 176 224zM240 160H160V64L128 85.3L96 64V160H16C7.2 160 0 152.8 0 144V-48C0 -56.8 7.2 -64 16 -64H240C248.8 -64 256 -56.8 256 -48V144C256 152.8 248.8 160 240 160z" />
    +    <glyph glyph-name="braille"
    +      unicode="&#xF2A1;"
    +      horiz-adv-x="640" d=" M128 192C128 156.654 99.346 128 64 128S0 156.654 0 192S28.654 256 64 256S128 227.346 128 192zM64 64C46.327 64 32 49.673 32 32S46.327 0 64 0S96 14.327 96 32S81.673 64 64 64zM64 416C28.654 416 0 387.346 0 352S28.654 288 64 288S128 316.654 128 352S99.346 416 64 416zM224 224C206.327 224 192 209.673 192 192S206.327 160 224 160S256 174.327 256 192S241.673 224 224 224zM224 64C206.327 64 192 49.673 192 32S206.327 0 224 0S256 14.327 256 32S241.673 64 224 64zM224 416C188.654 416 160 387.346 160 352S188.654 288 224 288S288 316.654 288 352S259.346 416 224 416zM448 224C430.327 224 416 209.673 416 192S430.327 160 448 160S480 174.327 480 192S465.673 224 448 224zM448 64C430.327 64 416 49.673 416 32S430.327 0 448 0S480 14.327 480 32S465.673 64 448 64zM448 416C412.654 416 384 387.346 384 352S412.654 288 448 288S512 316.654 512 352S483.346 416 448 416zM608 224C590.327 224 576 209.673 576 192S590.327 160 608 160S640 174.327 640 192S625.673 224 608 224zM608 64C590.327 64 576 49.673 576 32S590.327 0 608 0S640 14.327 640 32S625.673 64 608 64zM608 384C590.327 384 576 369.673 576 352S590.327 320 608 320S640 334.327 640 352S625.673 384 608 384z" />
    +    <glyph glyph-name="brain"
    +      unicode="&#xF5DC;"
    +      horiz-adv-x="576" d=" M208 448C178.13 448 153.26 427.45 146.2 399.78C145.45 399.8 144.75 400 144 400C108.66 400 80 371.35 80 336C80 331.16 80.64 326.49 81.66 321.9600000000001C52.54 310 32 281.43 32 248C32 235.42 35.16 223.68 40.34 213.09C16.34 199.28 0 173.67 0 144C0 110.66 20.42 82.12 49.42 70.11C48.52 65.54 48 60.83 48 56C48 16.24 80.23 -16 120 -16C124.12 -16 128.1 -15.45 132.03 -14.79C141.61 -43.31 168.25 -64 200 -64C239.77 -64 272 -31.76 272 8V242.55C261.09 233.57 248.02 227.1 233.64 224.16C228.67 223.14 224 226.98 224 232.05V248.23C224 251.8 226.35 255.01 229.8 255.89C254 262.05 272 283.8400000000001 272 309.93V384C272 419.35 243.34 448 208 448zM576 144C576 173.67 559.66 199.28 535.66 213.09C540.8299999999999 223.68 544 235.42 544 248C544 281.43 523.46 310 494.34 321.96C495.36 326.49 496.0000000000001 331.16 496.0000000000001 336C496.0000000000001 371.35 467.34 400 432.0000000000001 400C431.2500000000001 400 430.5500000000001 399.8 429.8000000000001 399.78C422.74 427.45 397.87 448 368 448C332.66 448 304 419.35 304 384V309.93C304 283.8400000000001 321.99 262.05 346.2 255.89C349.66 255.01 352 251.8 352 248.23V232.05C352 226.98 347.32 223.14 342.36 224.16C327.98 227.1 314.92 233.57 304 242.55V8C304 -31.76 336.23 -64 376 -64C407.75 -64 434.39 -43.31 443.9700000000001 -14.79C447.9000000000001 -15.46 451.8800000000001 -16 456 -16C495.77 -16 528 16.24 528 56C528 60.83 527.48 65.54 526.58 70.11C555.58 82.12 576 110.66 576 144z" />
    +    <glyph glyph-name="briefcase-medical"
    +      unicode="&#xF469;"
    +      horiz-adv-x="512" d=" M464 320H384V368C384 394.5 362.5 416 336 416H176C149.5 416 128 394.5 128 368V320H48C21.5 320 0 298.5 0 272V-16C0 -42.5 21.5 -64 48 -64H464C490.5 -64 512 -42.5 512 -16V272C512 298.5 490.5 320 464 320zM192 352H320V320H192V352zM352 104C352 99.6 348.4 96 344 96H288V40C288 35.6 284.4 32 280 32H232C227.6 32 224 35.6 224 40V96H168C163.6 96 160 99.6 160 104V152C160 156.4 163.6 160 168 160H224V216C224 220.4 227.6 224 232 224H280C284.4 224 288 220.4 288 216V160H344C348.4 160 352 156.4 352 152V104z" />
    +    <glyph glyph-name="briefcase"
    +      unicode="&#xF0B1;"
    +      horiz-adv-x="512" d=" M320 112C320 103.16 312.84 96 304 96H208C199.16 96 192 103.16 192 112V160H0V16C0 -9.6 22.4 -32 48 -32H464C489.6 -32 512 -9.6 512 16V160H320V112zM464 320H384V368C384 393.6 361.6 416 336 416H176C150.4 416 128 393.6 128 368V320H48C22.4 320 0 297.6 0 272V192H512V272C512 297.6 489.6 320 464 320zM320 320H192V352H320V320z" />
    +    <glyph glyph-name="broadcast-tower"
    +      unicode="&#xF519;"
    +      horiz-adv-x="640" d=" M150.94 256H184.67C195.68 256 203.28 266.8300000000001 199.53 277.18C194.6 290.76 191.98 305.16 191.98 320S194.6 349.24 199.53 362.82C203.29 373.17 195.68 384 184.67 384H150.94C143.93 384 137.48 379.51 135.53 372.77C130.64 355.79 128 338.12 128 320C128 301.88 130.64 284.2100000000001 135.54 267.24C137.48 260.5 143.93 256 150.94 256zM89.92 424.6600000000001C95.56 435.28 87.97 448 75.96 448H40.63C34.36 448 28.49 444.4100000000001 25.89 438.69C9.4 402.46 0 362.35 0 320C0 295.25 3.12 251.67 26.69 201.14C29.31 195.51 35.11 192 41.3 192H76.14C88.16 192 95.75 204.74 90.09 215.37C40.31 308.69 73.38 393.52 89.92 424.66zM614.06 438.71C611.46 444.42 605.6 448 599.33 448H563.9100000000001C551.9300000000001 448 544.2500000000001 435.34 549.8900000000001 424.75C568.1600000000001 390.46 598.3100000000001 305.33 550.1700000000001 215.52C544.45 204.84 551.97 192 564.08 192H599.3100000000001C605.58 192 611.44 195.58 614.0400000000001 201.29C630.57 237.52 640 277.64 640 320S630.58 402.48 614.06 438.71zM489.06 384H455.33C444.32 384 436.72 373.17 440.47 362.82C445.4 349.24 448.02 334.84 448.02 320S445.4 290.76 440.47 277.18C436.71 266.8300000000001 444.32 256 455.33 256H489.06C496.08 256 502.52 260.49 504.47 267.24C509.37 284.2100000000001 512 301.88 512 320C512 338.12 509.36 355.79 504.46 372.76C502.52 379.51 496.07 384 489.06 384zM372.76 283.88C379.81 294.17 383.96 306.5900000000001 383.96 320C383.96 355.35 355.33 384 320 384C284.68 384 256.04 355.35 256.04 320C256.04 306.5900000000001 260.19 294.17 267.24 283.88L136.74 -29.53C133.34 -37.68 137.2 -47.05 145.35 -50.45L174.86 -62.76C183.01 -66.1600000000001 192.38 -62.3000000000001 195.77 -54.15L244.96 64H395.03L444.23 -54.15C447.63 -62.31 456.99 -66.16 465.14 -62.76L494.65 -50.45C502.8 -47.05 506.65 -37.68 503.26 -29.53L372.76 283.8800000000001zM271.62 128L320 244.19L368.38 128H271.62z" />
    +    <glyph glyph-name="broom"
    +      unicode="&#xF51A;"
    +      horiz-adv-x="640" d=" M256.4700000000001 231.23L343.2000000000001 122.05S326.6 19.6899999999999 266.6300000000001 -28.07C206.66 -75.85 0 -62.19 0 -62.19S3.8 -39.05 11 -6.76L105.62 105.41C109.59 110.11 104.75 117.03 98.97 114.91L38.57 92.8200000000001C53.01 134.48 71.29 172.8600000000001 93.17 190.2900000000001C153.14 238.0500000000001 256.4700000000001 231.2300000000001 256.4700000000001 231.2300000000001zM636.53 416.9700000000001L616.67 441.9700000000001C611.18 448.87 601.15 450.02 594.26 444.53L361.78 266.73L327.64 309.7C322.55 316.11 312.5 314.91 309.05 307.49L283.7200000000001 252.94L370.4500000000001 143.76L429.2500000000001 156.21C437.2500000000001 157.9 440.6700000000001 167.41 435.5900000000001 173.81L401.5 216.73L633.98 394.5300000000001C640.87 400.0100000000001 642.02 410.0600000000001 636.53 416.9700000000001z" />
    +    <glyph glyph-name="brush"
    +      unicode="&#xF55D;"
    +      horiz-adv-x="384" d=" M352 448H32C14.33 448 0 433.67 0 416V192H384V416C384 433.67 369.67 448 352 448zM0 128C0 92.65 28.66 64 64 64H128V0C128 -35.35 156.66 -64 192 -64S256 -35.35 256 0V64H320C355.3400000000001 64 384 92.65 384 128V160H0V128zM192 24C205.25 24 216 13.26 216 0C216 -13.25 205.25 -24 192 -24S168 -13.25 168 0C168 13.26 178.75 24 192 24z" />
    +    <glyph glyph-name="bug"
    +      unicode="&#xF188;"
    +      horiz-adv-x="512" d=" M511.988 159.1C511.51 141.67 496.771 128 479.335 128H424V112C424 90.136 419.118 69.416 410.4 50.855L470.628 -9.373C483.124 -21.87 483.124 -42.131 470.628 -54.628C458.13 -67.125 437.869 -67.124 425.372 -54.628L370.636 0.108C345.886 -19.965 314.351 -32 280 -32V212C280 218.627 274.627 224 268 224H244C237.373 224 232 218.627 232 212V-32C197.649 -32 166.114 -19.965 141.364 0.108L86.628 -54.628C74.13 -67.125 53.869 -67.124 41.372 -54.628C28.876 -42.131 28.876 -21.87 41.372 -9.373L101.6 50.855C92.882 69.416 88 90.136 88 112V128H32.666C15.23 128 0.491 141.67 0.013 159.1C-0.484 177.184 14.028 192 32 192H88V250.745L41.372 297.373C28.876 309.87 28.876 330.131 41.372 342.628C53.87 355.125 74.13 355.125 86.628 342.628L141.255 288H370.7440000000001L425.3710000000001 342.627C437.8690000000001 355.124 458.129 355.124 470.6270000000001 342.627C483.123 330.13 483.123 309.8690000000001 470.6270000000001 297.372L424 250.745V192H480C497.972 192 512.484 177.184 511.988 159.1zM257 448C195.144 448 145 397.856 145 336H369C369 397.856 318.856 448 257 448z" />
    +    <glyph glyph-name="building"
    +      unicode="&#xF1AD;"
    +      horiz-adv-x="448" d=" M436 -32H416V424C416 437.255 405.255 448 392 448H56C42.745 448 32 437.255 32 424V-32H12C5.373 -32 0 -37.373 0 -44V-64H448V-44C448 -37.373 442.627 -32 436 -32zM128 372C128 378.627 133.373 384 140 384H180C186.627 384 192 378.627 192 372V332C192 325.373 186.627 320 180 320H140C133.373 320 128 325.373 128 332V372zM128 276C128 282.627 133.373 288 140 288H180C186.627 288 192 282.627 192 276V236C192 229.373 186.627 224 180 224H140C133.373 224 128 229.373 128 236V276zM180 128H140C133.373 128 128 133.373 128 140V180C128 186.627 133.373 192 140 192H180C186.627 192 192 186.627 192 180V140C192 133.373 186.627 128 180 128zM256 -32H192V52C192 58.627 197.373 64 204 64H244C250.627 64 256 58.627 256 52V-32zM320 140C320 133.373 314.627 128 308 128H268C261.373 128 256 133.373 256 140V180C256 186.627 261.373 192 268 192H308C314.627 192 320 186.627 320 180V140zM320 236C320 229.373 314.627 224 308 224H268C261.373 224 256 229.373 256 236V276C256 282.627 261.373 288 268 288H308C314.627 288 320 282.627 320 276V236zM320 332C320 325.373 314.627 320 308 320H268C261.373 320 256 325.373 256 332V372C256 378.627 261.373 384 268 384H308C314.627 384 320 378.627 320 372V332z" />
    +    <glyph glyph-name="bullhorn"
    +      unicode="&#xF0A1;"
    +      horiz-adv-x="576" d=" M576 208C576 231.63 563.05 252.04 544 263.12V415.99C544 424.74 537.02 448 512 448C504.88 448 497.81 445.62 492.02 440.98L406.99 372.95C364.28 338.81 310.6600000000001 320 256 320H64C28.65 320 0 291.35 0 256V160C0 124.65 28.65 96 64 96H97.7C96.31 85.52 95.52 74.86 95.52 64C95.52 24.23 104.78 -13.35 121.08 -46.94C126.27 -57.63 137.6 -64 149.48 -64H223.76C249.81 -64 265.45 -34.16 249.66 -13.44C233.26 8.08 223.51 34.92 223.51 64C223.51 75.11 225.13 85.79 227.92 96H256C310.66 96 364.28 77.19 406.98 43.05L492.01 -24.98A32.023 32.023 0 0 1 511.99 -32C536.91 -32 543.99 -9.22 543.99 0V152.87C563.05 163.96 576 184.37 576 208zM480 66.58L446.95 93.02C392.95 136.22 325.12 160 256 160V256C325.12 256 392.95 279.78 446.95 322.98L480 349.42V66.58z" />
    +    <glyph glyph-name="bullseye"
    +      unicode="&#xF140;"
    +      horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 8C146.31 8 64 90.29 64 192C64 293.69 146.29 376 248 376C349.69 376 432 293.71 432 192C432 90.31 349.71 8 248 8zM248 320C177.31 320 120 262.69 120 192S177.31 64 248 64S376 121.31 376 192S318.69 320 248 320zM248 128C212.71 128 184 156.71 184 192S212.71 256 248 256S312 227.29 312 192S283.29 128 248 128z" />
    +    <glyph glyph-name="burn"
    +      unicode="&#xF46A;"
    +      horiz-adv-x="384" d=" M192 448C79.7 346.7 0 227.1 0 147.5C0 23 79 -64 192 -64S384 23 384 147.5C384 227.4 303.8 347.1 192 448zM192 0C135.5 0 96 39 96 94.8C96 108.3 100.6 156.3 192 256C283.4 156.3 288 108.3 288 94.8C288 39 248.5 0 192 0z" />
    +    <glyph glyph-name="bus-alt"
    +      unicode="&#xF55E;"
    +      horiz-adv-x="512" d=" M488 320H480V368C480 412.8 380.8 448 256 448S32 412.8 32 368V320H24C10.75 320 0 309.26 0 296V216C0 202.75 10.75 192 24 192H32V32C32 14.33 46.33 0 64 0V-32C64 -49.67 78.33 -64 96 -64H128C145.67 -64 160 -49.67 160 -32V0H352V-32C352 -49.67 366.33 -64 384 -64H416C433.67 -64 448 -49.67 448 -32V0H454.4C470.4 0 480 12.8 480 25.6V192H488C501.25 192 512 202.75 512 216V296C512 309.26 501.25 320 488 320zM160 376C160 380.42 163.58 384 168 384H344C348.42 384 352 380.42 352 376V360C352 355.58 348.42 352 344 352H168C163.58 352 160 355.58 160 360V376zM112 48C94.33 48 80 62.33 80 80S94.33 112 112 112S144 97.67 144 80S129.67 48 112 48zM240 160H128C110.33 160 96 174.33 96 192V288C96 305.67 110.33 320 128 320H240V160zM272 160V320H384C401.67 320 416 305.67 416 288V192C416 174.33 401.67 160 384 160H272zM400 48C382.33 48 368 62.33 368 80S382.33 112 400 112S432 97.67 432 80S417.67 48 400 48z" />
    +    <glyph glyph-name="bus"
    +      unicode="&#xF207;"
    +      horiz-adv-x="512" d=" M488 320H480V368C480 412.8 380.8 448 256 448S32 412.8 32 368V320H24C10.75 320 0 309.26 0 296V216C0 202.75 10.75 192 24 192H32V32C32 14.33 46.33 0 64 0V-32C64 -49.67 78.33 -64 96 -64H128C145.67 -64 160 -49.67 160 -32V0H352V-32C352 -49.67 366.33 -64 384 -64H416C433.67 -64 448 -49.67 448 -32V0H454.4C470.4 0 480 12.8 480 25.6V192H488C501.25 192 512 202.75 512 216V296C512 309.26 501.25 320 488 320zM112 48C94.33 48 80 62.33 80 80S94.33 112 112 112S144 97.67 144 80S129.67 48 112 48zM128 160C110.33 160 96 174.33 96 192V320C96 337.67 110.33 352 128 352H384C401.67 352 416 337.67 416 320V192C416 174.33 401.67 160 384 160H128zM400 48C382.33 48 368 62.33 368 80S382.33 112 400 112S432 97.67 432 80S417.67 48 400 48z" />
    +    <glyph glyph-name="business-time"
    +      unicode="&#xF64A;"
    +      horiz-adv-x="640" d=" M496 224C416.41 224 352 159.59 352 80S416.41 -64 496 -64S640 0.41 640 80S575.59 224 496 224zM560 73.71C560 68.3700000000001 555.63 64.0000000000001 550.29 64.0000000000001H489.72C484.38 64.0000000000001 480.01 68.3700000000001 480.01 73.71V150.28C480.01 155.62 484.38 159.99 489.72 159.99H502.29C507.6299999999999 159.99 511.9999999999999 155.62 511.9999999999999 150.28V96H550.29C555.63 96 560 91.63 560 86.29V73.71zM496 256C501.4 256 506.72 255.67 512 255.19V304C512 329.6 489.6 352 464 352H384V400C384 425.6 361.6 448 336 448H176C150.4 448 128 425.6 128 400V352H48C22.4 352 0 329.6 0 304V224H395.12C423.7200000000001 244.09 458.47 256 496 256zM320 352H192V384H320V352zM326.82 128H208C199.16 128 192 135.16 192 144V192H0V48C0 22.4 22.4 0 48 0H339.43C327.1 24.04 320 51.18 320 80C320 96.66 322.48 112.72 326.82 128z" />
    +    <glyph glyph-name="calculator"
    +      unicode="&#xF1EC;"
    +      horiz-adv-x="448" d=" M400 448H48C22.4 448 0 425.6 0 400V-16C0 -41.6 22.4 -64 48 -64H400C425.6 -64 448 -41.6 448 -16V400C448 425.6 425.6 448 400 448zM128 12.8C128 6.4 121.6 0 115.2 0H76.8C70.4 0 64 6.4 64 12.8V51.2C64 57.6 70.4 64 76.8 64H115.2C121.6 64 128 57.6 128 51.2V12.8zM128 140.8C128 134.4 121.6 128 115.2 128H76.8C70.4 128 64 134.4 64 140.8V179.2C64 185.6 70.4 192 76.8 192H115.2C121.6 192 128 185.6 128 179.2V140.8zM256 12.8C256 6.4 249.6 0 243.2 0H204.8C198.4 0 192 6.4 192 12.8V51.2C192 57.6 198.4 64 204.8 64H243.2C249.6 64 256 57.6 256 51.2V12.8zM256 140.8C256 134.4 249.6 128 243.2 128H204.8C198.4 128 192 134.4 192 140.8V179.2C192 185.6 198.4 192 204.8 192H243.2C249.6 192 256 185.6 256 179.2V140.8zM384 12.8C384 6.4 377.6 0 371.2 0H332.8C326.4000000000001 0 320 6.4 320 12.8V179.2C320 185.6 326.4 192 332.8 192H371.2C377.6 192 384 185.6 384 179.2V12.8zM384 268.8C384 262.4 377.6 256 371.2 256H76.8C70.4 256 64 262.4 64 268.8V371.2C64 377.6 70.4 384 76.8 384H371.2C377.6 384 384 377.6 384 371.2V268.8z" />
    +    <glyph glyph-name="calendar-alt"
    +      unicode="&#xF073;"
    +      horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM128 52C128 58.6 122.6 64 116 64H76C69.4 64 64 58.6 64 52V12C64 5.4 69.4 0 76 0H116C122.6 0 128 5.4 128 12V52zM128 180C128 186.6 122.6 192 116 192H76C69.4 192 64 186.6 64 180V140C64 133.4 69.4 128 76 128H116C122.6 128 128 133.4 128 140V180zM256 52C256 58.6 250.6 64 244 64H204C197.4 64 192 58.6 192 52V12C192 5.4 197.4 0 204 0H244C250.6 0 256 5.4 256 12V52zM256 180C256 186.6 250.6 192 244 192H204C197.4 192 192 186.6 192 180V140C192 133.4 197.4 128 204 128H244C250.6 128 256 133.4 256 140V180zM384 52C384 58.6 378.6 64 372 64H332C325.4 64 320 58.6 320 52V12C320 5.4 325.4 0 332 0H372C378.6 0 384 5.4 384 12V52zM384 180C384 186.6 378.6 192 372 192H332C325.4 192 320 186.6 320 180V140C320 133.4 325.4 128 332 128H372C378.6 128 384 133.4 384 140V180z" />
    +    <glyph glyph-name="calendar-check"
    +      unicode="&#xF274;"
    +      horiz-adv-x="448" d=" M436 288H12C5.373 288 0 293.373 0 300V336C0 362.51 21.49 384 48 384H96V436C96 442.627 101.373 448 108 448H148C154.627 448 160 442.627 160 436V384H288V436C288 442.627 293.373 448 300 448H340C346.627 448 352 442.627 352 436V384H400C426.51 384 448 362.51 448 336V300C448 293.373 442.627 288 436 288zM12 256H436C442.627 256 448 250.627 448 244V-16C448 -42.51 426.51 -64 400 -64H48C21.49 -64 0 -42.51 0 -16V244C0 250.627 5.373 256 12 256zM345.296 160.053L317.127 188.451C312.4600000000001 193.156 304.862 193.187 300.1570000000001 188.519L194.12 83.335L148.14 129.687C143.473 134.392 135.874 134.423 131.169 129.755L102.772 101.5849999999999C98.067 96.918 98.036 89.3199999999999 102.704 84.6149999999999L185.305 1.3459999999999C189.972 -3.3590000000001 197.57 -3.3900000000001 202.275 1.2779999999999L345.228 143.0829999999999C349.933 147.7499999999999 349.964 155.3479999999999 345.296 160.0529999999999z" />
    +    <glyph glyph-name="calendar-minus"
    +      unicode="&#xF272;"
    +      horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM316 64C322.6 64 328 69.4 328 76V116C328 122.6 322.6 128 316 128H132C125.4 128 120 122.6 120 116V76C120 69.4 125.4 64 132 64H316z" />
    +    <glyph glyph-name="calendar-plus"
    +      unicode="&#xF271;"
    +      horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM328 116C328 122.6 322.6 128 316 128H256V188C256 194.6 250.6 200 244 200H204C197.4 200 192 194.6 192 188V128H132C125.4 128 120 122.6 120 116V76C120 69.4 125.4 64 132 64H192V4C192 -2.6 197.4 -8 204 -8H244C250.6 -8 256 -2.6 256 4V64H316C322.6 64 328 69.4 328 76V116z" />
    +    <glyph glyph-name="calendar-times"
    +      unicode="&#xF273;"
    +      horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM269.3 96L317.4000000000001 144.1C322.1 148.8 322.1 156.4 317.4000000000001 161.1L289.1 189.4C284.4000000000001 194.1 276.8 194.1 272.1 189.4L224 141.3L175.9 189.4C171.2 194.1 163.6 194.1 158.9 189.4L130.6 161.1C125.9 156.4 125.9 148.8 130.6 144.1L178.7 96L130.6 47.9C125.9 43.2 125.9 35.6 130.6 30.9L158.9 2.6C163.6 -2.1 171.2 -2.1 175.9 2.6L224 50.7L272.1 2.6C276.8 -2.1 284.4000000000001 -2.1 289.1 2.6L317.4000000000001 30.9C322.1 35.6 322.1 43.2 317.4000000000001 47.9L269.3 96z" />
    +    <glyph glyph-name="calendar"
    +      unicode="&#xF133;"
    +      horiz-adv-x="448" d=" M12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM448 300V336C448 362.5 426.5 384 400 384H352V436C352 442.6 346.6 448 340 448H300C293.4 448 288 442.6 288 436V384H160V436C160 442.6 154.6 448 148 448H108C101.4 448 96 442.6 96 436V384H48C21.5 384 0 362.5 0 336V300C0 293.4 5.4 288 12 288H436C442.6 288 448 293.4 448 300z" />
    +    <glyph glyph-name="camera-retro"
    +      unicode="&#xF083;"
    +      horiz-adv-x="512" d=" M48 416C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416H48zM48 384H154C157.3 384 160 381.3 160 378V358C160 354.7 157.3 352 154 352H38C34.7 352 32 354.7 32 358V368C32 376.8 39.2 384 48 384zM474 288H38C34.7 288 32 290.7 32 294V330C32 333.3 34.7 336 38 336H176L206.2 381.3C207.3 383 209.2 384 211.2 384H464C472.8 384 480 376.8 480 368V294C480 290.7 477.3 288 474 288zM256 24C189.8 24 136 77.8 136 144S189.8 264 256 264S376 210.2 376 144S322.2 24 256 24zM256 232C207.5 232 168 192.5 168 144S207.5 56 256 56S344 95.5 344 144S304.5 232 256 232zM208 128C199.2 128 192 135.2 192 144C192 179.3 220.7 208 256 208C264.8 208 272 200.8 272 192S264.8 176 256 176C238.4 176 224 161.6 224 144C224 135.2 216.8 128 208 128z" />
    +    <glyph glyph-name="camera"
    +      unicode="&#xF030;"
    +      horiz-adv-x="512" d=" M512 304V16C512 -10.5 490.5 -32 464 -32H48C21.5 -32 0 -10.5 0 16V304C0 330.5 21.5 352 48 352H136L148.3 384.9C155.3 403.6 173.2 416 193.2 416H318.7000000000001C338.7000000000001 416 356.6 403.6 363.6 384.9L376 352H464C490.5 352 512 330.5 512 304zM376 160C376 226.2 322.2 280 256 280S136 226.2 136 160S189.8 40 256 40S376 93.8 376 160zM344 160C344 111.5 304.5 72 256 72S168 111.5 168 160S207.5 248 256 248S344 208.5 344 160z" />
    +    <glyph glyph-name="campground"
    +      unicode="&#xF6BB;"
    +      horiz-adv-x="640" d=" M624 0H599.32L359.54 330.25L412.9500000000001 403.8C418.1400000000001 410.95 416.5600000000001 420.96 409.4100000000001 426.15L383.5100000000001 444.94C376.3600000000001 450.13 366.3600000000001 448.55 361.1600000000001 441.39L320 384.7L278.83 441.4C273.64 448.55 263.63 450.14 256.48 444.95L230.6 426.15C223.45 420.96 221.86 410.95 227.06 403.8L280.47 330.25L40.68 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H624C632.84 -64 640 -56.84 640 -48V-16C640 -7.16 632.84 0 624 0zM320 160L436.36 0H203.64L320 160z" />
    +    <glyph glyph-name="cannabis"
    +      unicode="&#xF55F;"
    +      horiz-adv-x="512" d=" M503.47 87.75C501.91 88.57 471.08 104.64 426.6900000000001 113.56C490.9400000000001 188.68 510.7400000000001 275.23 511.6200000000001 279.2C512.8000000000001 284.53 511.1800000000001 290.1 507.3200000000001 293.9700000000001C504.2900000000001 297.01 500.2 298.67 496.0000000000001 298.67C494.8600000000001 298.67 493.71 298.55 492.5600000000001 298.29C488.6800000000001 297.44 406.0200000000001 278.7 331.98 218.53C331.99 219.99 331.99 221.46 331.99 222.93C331.99 341.72 272.01 436.65 269.4600000000001 440.63A15.973000000000003 15.973000000000003 0 0 1 256 448C250.55 448 245.47 445.2200000000001 242.53 440.63C239.98 436.65 180 341.7200000000001 180 222.93C180 221.46 180.01 219.99 180.01 218.53C105.98 278.69 23.32 297.43 19.43 298.29C18.29 298.54 17.14 298.67 15.99 298.67C11.79 298.67 7.7 297.01 4.67 293.9700000000001A15.986 15.986 0 0 1 0.38 279.2C1.26 275.23 21.06 188.68 85.31 113.56C40.92 104.64 10.1 88.57 8.53 87.75A16.003 16.003 0 0 1 8.51 59.46C10.96 58.17 69.27 27.74 142 27.74C148.14 27.74 153.96 27.84 159.5 28.05C148.13 5.82 142.98 -10.26 142.69 -11.17C140.89 -16.85 142.4 -23.0599999999999 146.6 -27.28A16.019 16.019 0 0 1 162.7 -31.27C164.53 -30.7 200.42 -19.28 240 8.02V-56C240 -60.42 243.58 -64 248 -64H264C268.42 -64 272 -60.42 272 -56V8.01C311.58 -19.29 347.4700000000001 -30.7 349.3 -31.28A16.019 16.019 0 0 1 365.4000000000001 -27.29C369.6 -23.07 371.11 -16.86 369.3100000000001 -11.18C369.0200000000001 -10.27 363.8600000000001 5.81 352.5000000000001 28.04C358.0400000000001 27.83 363.8700000000001 27.73 370.0000000000001 27.73C442.7200000000001 27.73 501.0400000000001 58.16 503.4900000000001 59.4499999999999C508.7300000000001 62.2299999999999 512.0100000000001 67.67 512.0000000000001 73.5999999999999C511.9900000000001 79.5399999999999 508.7100000000001 84.9899999999999 503.4700000000001 87.7499999999999z" />
    +    <glyph glyph-name="capsules"
    +      unicode="&#xF46B;"
    +      horiz-adv-x="576" d=" M555.3 147.9L424.2 335.2C401.9 367 366.4 384 330.4 384C307.8 384 284.9 377.3 264.9 363.3C245.2 349.5 231.2 330.5 223.4 309.5C220.5 368.8 172 416 112 416C50.1 416 0 365.9 0 304V80C0 18.1 50.1 -32 112 -32S224 18.1 224 80V229.1C227.3 220.5 231.3 212 236.8 204.1L368 16.8C390.2 -15 425.7 -32 461.8 -32C484.5 -32 507.3 -25.3 527.3 -11.3C579 24.9 591.5 96.2 555.3 147.9zM160 192H64V304C64 330.5 85.5 352 112 352S160 330.5 160 304V192zM354.8 147.1L289.2000000000001 240.8C281.5000000000001 251.8 278.5000000000001 265.2000000000001 280.9000000000001 278.4C283.2000000000001 291.6 290.6 303.2000000000001 301.6 310.9C310.1 316.9 320.1 320 330.4000000000001 320C346.9000000000001 320 362.3 312 371.7000000000001 298.5L437.3000000000001 204.8L354.8000000000001 147.1z" />
    +    <glyph glyph-name="car-alt"
    +      unicode="&#xF5DE;"
    +      horiz-adv-x="480" d=" M438.6600000000001 235.67L427.42 263.77L407.49 313.6C390.38 356.37 349.57 384 303.5 384H176.5C130.44 384 89.62 356.37 72.51 313.6L52.58 263.77L41.34 235.67C17.22 226.5 0 203.34 0 176V128C0 111.88 6.16 97.33 16 86.07V32C16 14.33 30.33 0 48 0H80C97.67 0 112 14.33 112 32V64H368V32C368 14.33 382.33 0 400 0H432C449.67 0 464 14.33 464 32V86.07C473.84 97.32 480 111.87 480 128V176C480 203.34 462.78 226.5 438.66 235.67zM131.93 289.83C139.22 308.05 156.87 320 176.5 320H303.5C323.13 320 340.78 308.05 348.07 289.83L368 240H112L131.93 289.83zM80 128.2C60.8 128.2 48 140.96 48 160.1S60.8 192 80 192S128 163.29 128 144.15S99.2 128.2 80 128.2zM400 128.2C380.8 128.2 352 125.01 352 144.15S380.8 192 400 192S432 179.24 432 160.1S419.2 128.2000000000001 400 128.2000000000001z" />
    +    <glyph glyph-name="car-battery"
    +      unicode="&#xF5DF;"
    +      horiz-adv-x="512" d=" M480 320H448V368C448 376.8400000000001 440.84 384 432 384H336C327.1600000000001 384 320 376.8400000000001 320 368V320H192V368C192 376.8400000000001 184.84 384 176 384H80C71.16 384 64 376.8400000000001 64 368V320H32C14.33 320 0 305.67 0 288V32C0 14.33 14.33 0 32 0H480C497.67 0 512 14.33 512 32V288C512 305.67 497.67 320 480 320zM192 184C192 179.58 188.42 176 184 176H72C67.58 176 64 179.58 64 184V200C64 204.42 67.58 208 72 208H184C188.42 208 192 204.42 192 200V184zM448 184C448 179.58 444.42 176 440 176H400V136C400 131.58 396.42 128 392 128H376C371.58 128 368 131.58 368 136V176H328C323.58 176 320 179.58 320 184V200C320 204.42 323.58 208 328 208H368V248C368 252.42 371.58 256 376 256H392C396.42 256 400 252.42 400 248V208H440C444.42 208 448 204.42 448 200V184z" />
    +    <glyph glyph-name="car-crash"
    +      unicode="&#xF5E1;"
    +      horiz-adv-x="640" d=" M143.25 227.19L130.83 180.82C127.82 169.57 127.2 157.93 128.42 146.43L93.22 117.45C86.65 112.04 76.91 117.88 78.6 126.22L94.04 202.9C95.1 208.16 91.38 213.18 86.04 213.69L8.18 221.24C-0.29 222.06 -3.05 233.07 4.04 237.78L69.19 281.08C73.65 284.05 74.57 290.23 71.17 294.37L21.46 354.78C16.05 361.35 21.89 371.08 30.24 369.4L106.92 353.9600000000001C112.18 352.9 117.2 356.62 117.72 361.9600000000001L125.27 439.82C126.09 448.3 137.1 451.05 141.82 443.96L185.12 378.82C188.09 374.36 194.27 373.44 198.41 376.8400000000001L258.81 426.55C265.38 431.96 275.11 426.12 273.43 417.7800000000001L262.1 361.62C259.3900000000001 358.57 256.67 355.53 254.1900000000001 352.2200000000001L222.04 309.25L211.33 294.93C178.6 286.17 152.15 260.4 143.25 227.19zM637.8199999999999 94.68L625.4 48.32C622.27 36.64 616.02 26.71 607.85 18.96A66.876 66.876 0 0 0 599.09 11.96L585.1 -40.27C583.96 -44.54 582 -48.3700000000001 579.45 -51.65C571.7800000000001 -61.49 558.71 -66.33 545.9100000000001 -62.9L515 -54.62C497.93 -50.05 487.8 -32.5 492.37 -15.43L500.65 15.48L253.37 81.74L245.09 50.83C240.52 33.76 222.97 23.63 205.9 28.2L174.99 36.48C162.19 39.91 153.29 50.64 151.57 62.99C151 67.11 151.22 71.41 152.36 75.67L166.35 127.9A66.62 66.62 0 0 0 162.26 138.35C159.06 149.14 158.61 160.87 161.74 172.55L174.16 218.92C179.47 238.72 193.52 253.75 211.05 261.13A64.336 64.336 0 0 0 229.54 265.85L247.67 290.08L279.82 333.05C283.2699999999999 337.66 287.01 341.95 291.0199999999999 345.89C299.0199999999999 353.78 308.05 360.33 317.76 365.4C322.62 367.94 327.6499999999999 370.11 332.81 371.89C343.14 375.47 354 377.52 365.05 377.93C376.1 378.34 387.36 377.11 398.48 374.13L521.16 341.26C532.28 338.28 542.64 333.72 552.01 327.83A111.10999999999999 111.10999999999999 0 0 0 586.7 293.33C595.5200000000001 279.45 601.34 263.49 603.38 246.34L609.74 193.05L613.33 163A64.49 64.49 0 0 0 636.07 133.0699999999999C640.46 121.19 641.36 107.8799999999999 637.82 94.68zM255.58 213.66C237.03 218.63 221.37 209.62 216.41 191.13C211.45 172.64 220.5200000000001 157.01 239.0600000000001 152.04C257.61 147.0699999999999 284.6 136.53 289.55 155.02C294.51 173.51 274.12 208.69 255.58 213.66zM546.19 185.49L539.83 238.78C539.25 243.65 537.94 248.31 536.01 252.64C530.21 265.63 518.81 275.65 504.59 279.46L381.91 312.33A48.008 48.008 0 0 1 331.05 294.72L298.9 251.75L470.9 205.67L546.1899999999999 185.49zM564.6800000000001 130.84C546.1300000000001 135.8100000000001 510.8800000000001 115.53 505.9300000000001 97.05C500.9800000000001 78.56 529.6200000000001 74.19 548.1700000000001 69.22C566.72 64.25 582.3800000000001 73.2600000000001 587.34 91.75C592.2900000000001 110.23 583.23 125.87 564.6800000000001 130.84z" />
    +    <glyph glyph-name="car-side"
    +      unicode="&#xF5E4;"
    +      horiz-adv-x="640" d=" M544 256H528L419.2200000000001 391.98A64.025 64.025 0 0 1 369.24 416H155.33C129.16 416 105.63 400.07 95.91 375.77L48 253.74C20.44 246.6 0 221.79 0 192V80C0 71.16 7.16 64 16 64H64C64 10.98 106.98 -32 160 -32S256 10.98 256 64H384C384 10.98 426.98 -32 480 -32S576 10.98 576 64H624C632.84 64 640 71.16 640 80V160C640 213.02 597.02 256 544 256zM160 16C133.53 16 112 37.53 112 64S133.53 112 160 112S208 90.47 208 64S186.47 16 160 16zM232 256H116.93L155.33 352H232V256zM280 256V352H369.24L446.04 256H280zM480 16C453.53 16 432 37.53 432 64S453.53 112 480 112S528 90.47 528 64S506.47 16 480 16z" />
    +    <glyph glyph-name="car"
    +      unicode="&#xF1B9;"
    +      horiz-adv-x="512" d=" M499.99 272H440.12L423.48 313.6C406.38 356.37 365.57 384 319.5 384H192.5C146.44 384 105.62 356.37 88.51 313.6L71.87 272H12.01C4.2 272 -1.53 264.66 0.37 257.0900000000001L6.37 233.09C7.7 227.75 12.5 224 18.01 224H38.08C24.65 212.27 16 195.22 16 176V128C16 111.88 22.16 97.33 32 86.07V32C32 14.33 46.33 0 64 0H96C113.67 0 128 14.33 128 32V64H384V32C384 14.33 398.33 0 416 0H448C465.67 0 480 14.33 480 32V86.07C489.84 97.32 496 111.87 496 128V176C496 195.22 487.35 212.27 473.93 224H494C499.51 224 504.31 227.75 505.64 233.09L511.64 257.0900000000001C513.53 264.66 507.8 272 499.99 272zM147.93 289.83C155.22 308.05 172.87 320 192.5 320H319.5C339.13 320 356.78 308.05 364.07 289.83L384 240H128L147.93 289.83zM96 128.2C76.8 128.2 64 140.96 64 160.1S76.8 192 96 192S144 163.29 144 144.15S115.2 128.2 96 128.2zM416 128.2C396.8 128.2 368 125.01 368 144.15S396.8 192 416 192S448 179.24 448 160.1S435.2 128.2000000000001 416 128.2000000000001z" />
    +    <glyph glyph-name="caret-down"
    +      unicode="&#xF0D7;"
    +      horiz-adv-x="320" d=" M31.3 256H288.6C306.4000000000001 256 315.3 234.5 302.7000000000001 221.9L174.1 93.2C166.3 85.4 153.6 85.4 145.8 93.2L17.2 221.9C4.6 234.5 13.5 256 31.3 256z" />
    +    <glyph glyph-name="caret-left"
    +      unicode="&#xF0D9;"
    +      horiz-adv-x="192" d=" M192 320.6620000000001V63.338C192 45.52 170.457 36.597 157.858 49.196L29.196 177.858C21.386 185.668 21.386 198.332 29.196 206.142L157.858 334.804C170.457 347.404 192 338.48 192 320.6620000000001z" />
    +    <glyph glyph-name="caret-right"
    +      unicode="&#xF0DA;"
    +      horiz-adv-x="192" d=" M0 63.338V320.6620000000001C0 338.48 21.543 347.403 34.142 334.804L162.804 206.142C170.614 198.332 170.614 185.668 162.804 177.858L34.142 49.196C21.543 36.596 0 45.52 0 63.338z" />
    +    <glyph glyph-name="caret-square-down"
    +      unicode="&#xF150;"
    +      horiz-adv-x="448" d=" M448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM92.5 227.5L215.5 104.5C220.2 99.8 227.8 99.8 232.5 104.5L355.5 227.5C363.1 235.1 357.7 248 347 248H101C90.3 248 84.9 235.1 92.5 227.5z" />
    +    <glyph glyph-name="caret-square-left"
    +      unicode="&#xF191;"
    +      horiz-adv-x="448" d=" M400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32zM259.515 323.515L136.485 200.485C131.799 195.799 131.799 188.201 136.485 183.514L259.514 60.485C267.074 52.925 279.999 58.279 279.999 68.97V315.029C280 325.7200000000001 267.074 331.074 259.5150000000001 323.515z" />
    +    <glyph glyph-name="caret-square-right"
    +      unicode="&#xF152;"
    +      horiz-adv-x="448" d=" M48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416zM188.485 60.485L311.514 183.514C316.2 188.2 316.2 195.798 311.514 200.485L188.485 323.515C180.925 331.0750000000001 168 325.721 168 315.0300000000001V68.971C168 58.28 180.926 52.926 188.485 60.485z" />
    +    <glyph glyph-name="caret-square-up"
    +      unicode="&#xF151;"
    +      horiz-adv-x="448" d=" M0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16zM355.515 156.485L232.485 279.515C227.799 284.201 220.201 284.201 215.514 279.515L92.485 156.485C84.925 148.925 90.279 136 100.97 136H347.029C357.72 136 363.074 148.926 355.515 156.485z" />
    +    <glyph glyph-name="caret-up"
    +      unicode="&#xF0D8;"
    +      horiz-adv-x="320" d=" M288.662 96H31.338C13.52 96 4.597 117.543 17.196 130.142L145.858 258.804C153.668 266.6140000000001 166.332 266.6140000000001 174.142 258.804L302.804 130.142C315.404 117.543 306.48 96 288.662 96z" />
    +    <glyph glyph-name="cart-arrow-down"
    +      unicode="&#xF218;"
    +      horiz-adv-x="576" d=" M504.717 128H211.572L218.117 96H486.535C501.936 96 513.351 81.699 509.938 66.681L504.421 42.405C523.112 33.332 536 14.172 536 -8C536 -39.202 510.481 -64.444 479.176 -63.994C449.353 -63.565 424.826 -39.3630000000001 424.021 -9.547C423.581 6.74 430.106 21.502 440.824 32.001H231.176C241.553 21.835 248 7.674 248 -8C248 -39.813 221.472 -65.431 189.33 -63.938C160.79 -62.613 137.579 -39.553 136.079 -11.021C134.921 11.013 146.515 30.434 164.13 40.5650000000001L93.883 384H24C10.745 384 0 394.745 0 408V424C0 437.255 10.745 448 24 448H126.529C137.93 448 147.757 439.979 150.042 428.81L159.208 384H551.99C567.391 384 578.806 369.699 575.393 354.681L528.12 146.681C525.637 135.754 515.923 128 504.717 128zM403.029 256H360V316C360 322.627 354.627 328 348 328H324C317.373 328 312 322.627 312 316V256H268.971C258.2800000000001 256 252.926 243.074 260.486 235.515L327.515 168.486C332.201 163.8 339.799 163.8 344.486 168.486L411.515 235.515C419.074 243.074 413.72 256 403.029 256z" />
    +    <glyph glyph-name="cart-plus"
    +      unicode="&#xF217;"
    +      horiz-adv-x="576" d=" M504.717 128H211.572L218.117 96H486.535C501.936 96 513.351 81.699 509.938 66.681L504.421 42.405C523.112 33.332 536 14.172 536 -8C536 -39.202 510.481 -64.444 479.176 -63.994C449.353 -63.565 424.826 -39.3630000000001 424.021 -9.547C423.581 6.74 430.106 21.502 440.824 32.001H231.176C241.553 21.835 248 7.674 248 -8C248 -39.813 221.472 -65.431 189.33 -63.938C160.79 -62.613 137.579 -39.553 136.079 -11.021C134.921 11.013 146.515 30.434 164.13 40.5650000000001L93.883 384H24C10.745 384 0 394.745 0 408V424C0 437.255 10.745 448 24 448H126.529C137.93 448 147.757 439.979 150.042 428.81L159.208 384H551.99C567.391 384 578.806 369.699 575.393 354.681L528.12 146.681C525.637 135.754 515.923 128 504.717 128zM408 280H360V320C360 328.837 352.837 336 344 336H328C319.163 336 312 328.837 312 320V280H264C255.163 280 248 272.837 248 264V248C248 239.163 255.163 232 264 232H312V192C312 183.163 319.163 176 328 176H344C352.837 176 360 183.163 360 192V232H408C416.837 232 424 239.163 424 248V264C424 272.837 416.837 280 408 280z" />
    +    <glyph glyph-name="cat"
    +      unicode="&#xF6BE;"
    +      horiz-adv-x="512" d=" M290.59 256C270.41 256 183.77 254.02 128 170.05V256C128 308.94 84.94 352 32 352C14.33 352 0 337.67 0 320S14.33 288 32 288C49.64 288 64 273.64 64 256V0C64 -35.3 92.7 -64 128 -64H304C312.84 -64 320 -56.84 320 -48V-32C320 -14.33 305.67 0 288 0H256L384 96V-48C384 -56.84 391.1600000000001 -64 400 -64H432C440.84 -64 448 -56.84 448 -48V158.14C437.71 155.47 427.11 153.6 416 153.6C354.19 153.6 302.48 197.65 290.5900000000001 256zM448 352H384L320 416V281.6C320 228.58 362.98 185.6 416 185.6S512 228.58 512 281.6V416L448 352zM376 272C367.1600000000001 272 360 279.16 360 288S367.1600000000001 304 376 304S392 296.8400000000001 392 288S384.84 272 376 272zM456 272C447.1600000000001 272 440 279.16 440 288S447.1600000000001 304 456 304S472 296.8400000000001 472 288S464.84 272 456 272z" />
    +    <glyph glyph-name="certificate"
    +      unicode="&#xF0A3;"
    +      horiz-adv-x="512" d=" M458.622 192.08L504.607 237.085C518.315 250.062 511.923 273.124 493.943 277.424L431.2930000000001 293.414L448.9540000000001 355.4290000000001C453.9450000000001 373.2670000000001 437.1250000000001 390.092 419.2930000000001 385.1L357.2990000000001 367.433L341.3150000000001 430.1040000000001C337.085 447.803 313.765 454.276 300.99 440.772L256 394.43L211.011 440.771C198.381 454.122 174.964 448.005 170.686 430.103L154.702 367.432L92.707 385.099C74.87 390.093 58.056 373.262 63.046 355.428L80.707 293.413L18.057 277.423C0.069 273.122 -6.31 250.056 7.392 237.085L53.377 192.08L7.392 147.076C-6.316 134.0990000000001 0.076 111.037 18.056 106.737L80.706 90.747L63.045 28.732C58.054 10.894 74.874 -5.931 92.706 -0.939L154.7 16.7280000000001L170.684 -45.9429999999999C175.123 -64.5179999999999 198.38 -69.9609999999999 211.009 -56.6109999999999L256 -10.61L300.989 -56.611C313.489 -70.0989999999999 336.976 -64.097 341.314 -45.943L357.298 16.728L419.2919999999999 -0.939C437.128 -5.933 453.9429999999999 10.898 448.9529999999999 28.732L431.2919999999999 90.747L493.9419999999999 106.737C511.9289999999999 111.0390000000001 518.3079999999999 134.1040000000001 504.6059999999999 147.076L458.6219999999999 192.08z" />
    +    <glyph glyph-name="chair"
    +      unicode="&#xF6C0;"
    +      horiz-adv-x="448" d=" M446.33 106.12L435.66 138.12A31.996 31.996 0 0 1 405.3 160H42.69C28.92 160 16.69 151.19 12.33 138.12L1.66 106.12C-5.24 85.4 10.18 64 32.03 64H32V-48C32 -56.84 39.16 -64 48 -64H80C88.84 -64 96 -56.84 96 -48V64H352V-48C352 -56.84 359.1600000000001 -64 368 -64H400C408.84 -64 416 -56.84 416 -48V64H415.9700000000001C437.8200000000001 64 453.24 85.4 446.3300000000001 106.12zM112 320C112 349.48 128.2 374.99 152 388.87V192H200V400H248V192H296V388.87C319.8 374.99 336 349.48 336 320V192H384V320C384 390.69 326.69 448 256 448H192C121.31 448 64 390.69 64 320V192H112V320z" />
    +    <glyph glyph-name="chalkboard-teacher"
    +      unicode="&#xF51C;"
    +      horiz-adv-x="640" d=" M208 96C205.61 96 203.22 95.65 200.94 94.91C187.98 90.7 174.35 88 160 88C145.65 88 132.02 90.7 119.05 94.91C116.77 95.65 114.39 96 112 96C49.94 96 -0.33 45.52 0 -16.62C0.14 -42.88 21.73 -64 48 -64H272C298.27 -64 319.86 -42.88 320 -16.62C320.33 45.52 270.06 96 208 96zM160 128C213.02 128 256 170.98 256 224S213.02 320 160 320S64 277.02 64 224S106.98 128 160 128zM592 448H208C181.53 448 160 425.75 160 398.41V352C183.42 352 205.1 345.2200000000001 224 334.2V384H576V96H512V160H384V96H307.76C326.86 79.31 340.88 57.27 347.45 32H592C618.47 32 640 54.25 640 81.59V398.41C640 425.75 618.47 448 592 448z" />
    +    <glyph glyph-name="chalkboard"
    +      unicode="&#xF51B;"
    +      horiz-adv-x="640" d=" M96 384H544V32H608V408C608 430.06 590.06 448 568 448H72C49.94 448 32 430.06 32 408V32H96V384zM624 0H480V64H288V0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H624C632.84 -64 640 -56.84 640 -48V-16C640 -7.16 632.84 0 624 0z" />
    +    <glyph glyph-name="charging-station"
    +      unicode="&#xF5E7;"
    +      horiz-adv-x="576" d=" M336 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H336C344.84 -64 352 -56.84 352 -48V-16C352 -7.16 344.84 0 336 0zM544 320V368C544 376.8400000000001 536.84 384 528 384S512 376.8400000000001 512 368V320H480V368C480 376.8400000000001 472.84 384 464 384S448 376.8400000000001 448 368V320H432C423.1600000000001 320 416 312.8400000000001 416 304V272C416 236.24 439.62 206.31 472 196.07V77.58C472 63.63 462.5 50.66 448.74 48.39C431.2200000000001 45.5 416 59.01 416 76V104C416 152.6 376.6 192 328 192H320V384C320 419.35 291.35 448 256 448H96C60.65 448 32 419.35 32 384V32H320V144H328C350.09 144 368 126.09 368 104V79.39C368 39.72 396.92 4.23 436.41 0.38C481.71 -4.05 520 31.59 520 76V196.07C552.38 206.31 576 236.24 576 272V304C576 312.8400000000001 568.84 320 560 320H544zM260.09 272.24L166.39 133.24C164.19 129.91 160.18 128 156 128C148.33 128 142.53 134.28 144.33 140.92L167.35 224H108C100.75 224 95.15 229.59 96.11 235.89L112.11 342.89C112.9 348.1 117.98 352 124 352H192C199.88 352 205.62 345.46 203.6 338.79L192 288H249.7C258.94 288 264.71 279.2200000000001 260.09 272.24z" />
    +    <glyph glyph-name="chart-area"
    +      unicode="&#xF1FE;"
    +      horiz-adv-x="512" d=" M500 64C506.6 64 512 58.6 512 52V12C512 5.4 506.6 0 500 0H12C5.4 0 0 5.4 0 12V372C0 378.6 5.4 384 12 384H52C58.6 384 64 378.6 64 372V64H500zM372.7 288.5L288 232L202.7 345.7C197.6 352.5 187.2 352 182.8 344.7L96 200V96H480L390.1 283.8C386.9000000000001 290.3 378.7000000000001 292.5 372.7000000000001 288.5z" />
    +    <glyph glyph-name="chart-bar"
    +      unicode="&#xF080;"
    +      horiz-adv-x="512" d=" M332.8 128H371.2C377.6 128 384 134.4 384 140.8V275.2C384 281.6 377.6 288 371.2 288H332.8C326.4000000000001 288 320 281.6 320 275.2V140.8C320 134.4 326.4 128 332.8 128zM428.8 128H467.2C473.6 128 480 134.4 480 140.8V371.2C480 377.6 473.6 384 467.2 384H428.8C422.4000000000001 384 416 377.6 416 371.2V140.8C416 134.4 422.4 128 428.8 128zM140.8 128H179.2C185.6 128 192 134.4 192 140.8V211.2C192 217.6 185.6 224 179.2 224H140.8C134.4 224 128 217.6 128 211.2V140.8C128 134.4 134.4 128 140.8 128zM236.8 128H275.2C281.6 128 288 134.4 288 140.8V339.2C288 345.6 281.6 352 275.2 352H236.8C230.4 352 224 345.6 224 339.2V140.8C224 134.4 230.4 128 236.8 128zM496 64H64V368C64 376.8400000000001 56.84 384 48 384H16C7.16 384 0 376.8400000000001 0 368V32C0 14.33 14.33 0 32 0H496C504.84 0 512 7.16 512 16V48C512 56.84 504.84 64 496 64z" />
    +    <glyph glyph-name="chart-line"
    +      unicode="&#xF201;"
    +      horiz-adv-x="512" d=" M496 64H64V368C64 376.8400000000001 56.84 384 48 384H16C7.16 384 0 376.8400000000001 0 368V32C0 14.33 14.33 0 32 0H496C504.84 0 512 7.16 512 16V48C512 56.84 504.84 64 496 64zM464 352H345.94C324.56 352 313.85 326.15 328.9700000000001 311.03L361.37 278.63L288 205.25L214.63 278.62C202.13 291.12 181.87 291.12 169.38 278.62L100.69 209.93C94.44 203.68 94.44 193.55 100.69 187.3L123.31 164.68C129.56 158.43 139.69 158.43 145.94 164.68L192 210.75L265.37 137.38C277.87 124.88 298.13 124.88 310.62 137.38L406.62 233.38L439.02 200.98C454.14 185.86 479.99 196.57 479.99 217.95V336C480 344.8400000000001 472.84 352 464 352z" />
    +    <glyph glyph-name="chart-pie"
    +      unicode="&#xF200;"
    +      horiz-adv-x="544" d=" M527.79 160H290.5L448.53 1.97C454.57 -4.07 464.51 -4.5599999999999 470.72 1.29C509.42 37.75 536.04 86.9 543.8499999999999 142.15C545.1899999999999 151.61 537.3399999999999 160.0000000000001 527.79 160.0000000000001zM511.96 224.8C503.72 344.26 408.26 439.7200000000001 288.8 447.96C279.68 448.59 272 440.9 272 431.76V208H495.77C504.91 208 512.59 215.68 511.96 224.8zM224 160V397.29C224 406.8400000000001 215.61 414.69 206.16 413.35C86.99 396.51 -4.1 292.4 0.14 167.63C4.5 39.49 114.83 -65.59 243.03 -63.98C293.43 -63.35 340 -47.11 378.29 -19.95C386.19 -14.35 386.71 -2.72 379.86 4.1299999999999L224 160z" />
    +    <glyph glyph-name="check-circle"
    +      unicode="&#xF058;"
    +      horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM227.314 60.686L411.314 244.686C417.562 250.934 417.562 261.065 411.314 267.313L388.687 289.94C382.439 296.189 372.308 296.189 366.059 289.94L216 139.882L145.941 209.941C139.693 216.189 129.562 216.189 123.313 209.941L100.686 187.314C94.438 181.066 94.438 170.935 100.686 164.687L204.686 60.687C210.935 54.438 221.065 54.438 227.314 60.686z" />
    +    <glyph glyph-name="check-double"
    +      unicode="&#xF560;"
    +      horiz-adv-x="512" d=" M504.5 276.05L468.3 312.4600000000001C458.3 322.51 442.0900000000001 322.51 432.1 312.4600000000001L192 70.98L79.9 183.72C69.9 193.78 53.69 193.78 43.7 183.72L7.5 147.31C-2.5 137.26 -2.5 120.95 7.5 110.9L173.9 -56.46C183.9 -66.52 200.11 -66.52 210.1 -56.46L504.5 239.63C514.5 249.69 514.5 265.99 504.5 276.05zM166.57 165.29C173.41 158.2700000000001 184.75 158.2700000000001 191.78 165.11L403.85 375.38C410.87 382.2200000000001 410.87 393.56 404.0300000000001 400.59L362.08 442.71C355.24 449.73 343.9 449.73 336.87 442.89L179.71 286.81L111.48 355.58C104.64 362.6 93.3 362.6 86.28 355.76L44.15 313.99C37.13 307.15 37.13 295.81 43.97 288.79L166.57 165.29z" />
    +    <glyph glyph-name="check-square"
    +      unicode="&#xF14A;"
    +      horiz-adv-x="448" d=" M400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32zM195.314 66.059L379.314 250.059C385.562 256.307 385.562 266.438 379.314 272.686L356.687 295.313C350.439 301.561 340.308 301.562 334.059 295.313L184 145.255L113.941 215.314C107.693 221.562 97.562 221.562 91.313 215.314L68.686 192.687C62.438 186.439 62.438 176.308 68.686 170.06L172.686 66.06C178.935 59.81 189.065 59.81 195.314 66.059z" />
    +    <glyph glyph-name="check"
    +      unicode="&#xF00C;"
    +      horiz-adv-x="512" d=" M173.898 8.596L7.498 174.996C-2.499 184.993 -2.499 201.202 7.498 211.2L43.701 247.404C53.698 257.402 69.908 257.402 79.905 247.404L192 135.31L432.0950000000001 375.404C442.0920000000001 385.401 458.302 385.401 468.299 375.404L504.5020000000001 339.2C514.499 329.203 514.499 312.9940000000001 504.5020000000001 302.996L210.1020000000001 8.595C200.1040000000001 -1.402 183.8950000000001 -1.402 173.8980000000001 8.5959999999999z" />
    +    <glyph glyph-name="chess-bishop"
    +      unicode="&#xF43A;"
    +      horiz-adv-x="320" d=" M123.158 370.1190000000001C107.369 375.4700000000001 96 390.403 96 408C96 430.091 113.909 448 136 448H183.796C205.887 448 223.796 430.091 223.796 408C223.796 390.459 212.501 375.5660000000001 196.791 370.171C220.784 353.514 245.368 323.332 265.4940000000001 288.121L144.929 167.557A6 6 0 0 1 144.929 159.072L159.071 144.93A6 6 0 0 1 167.556 144.93L280.9 258.274C298.658 219.977 310.271 178.831 310.271 144.001C310.271 90.215 287.374 68.213 251.825 57.968V0H68.174V57.97C32.631 68.216 9.739 90.219 9.739 144C9.739 222.029 68.02 331.766 123.158 370.1190000000001zM320 -52V-28C320 -21.373 314.627 -16 308 -16H12C5.373 -16 0 -21.373 0 -28V-52C0 -58.627 5.373 -64 12 -64H308C314.627 -64 320 -58.627 320 -52z" />
    +    <glyph glyph-name="chess-board"
    +      unicode="&#xF43C;"
    +      horiz-adv-x="512" d=" M256 192V128H192V192H256zM256 448H192V384H256V448zM256 192H320V256H256V192zM384 448H320V384H384V448zM384 -64H448V0H384V-64zM512 0V64H448V0H512zM128 -64H192V0H128V-64zM128 448H64V384H128V448zM512 256V320H448V256H512zM512 128V192H448V128H512zM0 -64H64V0H0V-64zM0 384V320H64V384H0zM0 256V192H64V256H0zM0 128V64H64V128H0zM256 -64H320V0H256V-64zM192 64V0H256V64H192zM256 256V320H192V256H256zM64 64V0H128V64H64zM128 192H64V128H128V192zM384 64H448V128H384V64zM512 448H448V384H512V448zM384 192H448V256H384V192zM384 384V320H448V384H384zM320 64V0H384V64H320zM128 128V64H192V128H128zM256 128V64H320V128H256zM192 256H128V192H192V256zM128 320H64V256H128V320zM320 128H384V192H320V128zM192 320V384H128V320H192zM320 320V384H256V320H320zM320 256H384V320H320V256z" />
    +    <glyph glyph-name="chess-king"
    +      unicode="&#xF43F;"
    +      horiz-adv-x="448" d=" M416 -28V-52C416 -58.627 410.627 -64 404 -64H44C37.373 -64 32 -58.627 32 -52V-28C32 -21.373 37.373 -16 44 -16H404C410.627 -16 416 -21.373 416 -28zM407.967 296H248V344H298A6 6 0 0 1 304 350V386A6 6 0 0 1 298 392H248V442A6 6 0 0 1 242 448H206A6 6 0 0 1 200 442V392H150A6 6 0 0 1 144 386V350A6 6 0 0 1 150 344H200V296H40.033C12.459 296 -6.846 268.756 2.295 242.741L87.582 0H360.418L445.7050000000001 242.741C454.846 268.756 435.541 296 407.967 296z" />
    +    <glyph glyph-name="chess-knight"
    +      unicode="&#xF441;"
    +      horiz-adv-x="384" d=" M352 224V0H32V46.557C32 76.859 49.12 104.56 76.223 118.111L133.466 146.733A48 48 0 0 1 160 189.666V240L137.873 228.937A23.996 23.996 0 0 1 125.323 213.292L113.488 165.954A12 12 0 0 0 106.303 157.723L76.702 145.8830000000001A11.998 11.998 0 0 0 67.372 146.059L7.126 172.833A12 12 0 0 0 0 183.799V342.059C0 348.424 2.529 354.529 7.03 359.03L16 368L1.789 396.4220000000001A16.937 16.937 0 0 0 0 404C0 410.627 5.373 416 12 416H160C266.039 416 352 330.039 352 224zM372 -16H12C5.373 -16 0 -21.373 0 -28V-52C0 -58.627 5.373 -64 12 -64H372C378.627 -64 384 -58.627 384 -52V-28C384 -21.373 378.627 -16 372 -16zM52 320C40.954 320 32 311.046 32 300S40.954 280 52 280S72 288.954 72 300S63.046 320 52 320z" />
    +    <glyph glyph-name="chess-pawn"
    +      unicode="&#xF443;"
    +      horiz-adv-x="320" d=" M264 0H56S116 42.743 116 176H84C77.373 176 72 181.373 72 188V212C72 218.627 77.373 224 84 224H124.209C95.721 237.44 76 266.4120000000001 76 300C76 346.392 113.608 384 160 384S244 346.392 244 300C244 266.4120000000001 224.279 237.44 195.791 224H236C242.627 224 248 218.627 248 212V188C248 181.373 242.627 176 236 176H204C204 42.743 264 0 264 0zM292 -16H28C21.373 -16 16 -21.373 16 -28V-52C16 -58.627 21.373 -64 28 -64H292C298.627 -64 304 -58.627 304 -52V-28C304 -21.373 298.627 -16 292 -16z" />
    +    <glyph glyph-name="chess-queen"
    +      unicode="&#xF445;"
    +      horiz-adv-x="512" d=" M436 -64H76C69.373 -64 64 -58.627 64 -52V-28C64 -21.373 69.373 -16 76 -16H436C442.627 -16 448 -21.373 448 -28V-52C448 -58.627 442.627 -64 436 -64zM255.579 448C224.651 448 199.579 422.928 199.579 392S224.651 336 255.579 336S311.579 361.072 311.579 392S286.507 448 255.579 448zM460.147 293.366C454.3790000000001 296.411 447.2310000000001 294.298 444.0650000000001 288.596C435.4490000000001 273.0800000000001 421.3180000000001 250.795 400.0000000000001 250.795C371.2860000000001 250.795 369.3750000000001 270.5990000000001 368.3140000000001 308.337C368.1310000000001 314.829 362.8130000000001 320.0010000000001 356.3190000000001 320.0010000000001H315.3130000000001C310.1380000000001 320.0010000000001 305.5590000000001 316.673 303.9250000000002 311.7630000000001C295.0350000000002 285.0540000000001 277.8520000000002 270.7710000000001 256.0000000000001 270.7710000000001S216.9660000000001 285.0540000000001 208.0750000000001 311.7630000000001C206.4410000000001 316.673 201.8620000000001 320.0010000000001 196.6870000000001 320.0010000000001H155.6820000000001C149.1870000000001 320.0010000000001 143.8690000000001 314.827 143.6870000000001 308.3340000000001C142.6350000000001 270.692 140.7530000000001 250.795 111.9990000000001 250.795C91.3080000000001 250.795 78.1820000000001 271.019 67.5740000000001 288.8200000000001C64.3080000000001 294.3 57.3160000000001 296.2510000000001 51.6750000000001 293.273L12.4960000000001 272.5940000000001A12 12 0 0 1 6.9860000000001 257.449L112 0H400L505.014 257.448A12 12 0 0 1 499.504 272.593L460.147 293.366z" />
    +    <glyph glyph-name="chess-rook"
    +      unicode="&#xF447;"
    +      horiz-adv-x="384" d=" M81.241 232.973C80.957 189.08 77.411 99.924 48 0H335.9820000000001C306.5820000000001 99.604 303.0460000000001 188.912 302.761 232.975L348.1790000000001 275.287A11.998 11.998 0 0 1 351.999 284.067V404C351.999 410.627 346.6260000000001 416 339.999 416H299.999C293.372 416 287.999 410.627 287.999 404V360H239.999V404C239.999 410.627 234.6260000000001 416 227.999 416H155.999C149.372 416 143.999 410.627 143.999 404V360H96V404C96 410.627 90.627 416 84 416H44C37.373 416 32 410.627 32 404V284.068C32 280.738 33.384 277.558 35.82 275.288L81.241 232.973zM160 192C160 209.673 174.327 224 192 224C209.673 224 224 209.673 224 192V127.996H160V192zM384 -28V-52C384 -58.627 378.627 -64 372 -64H12C5.373 -64 0 -58.627 0 -52V-28C0 -21.373 5.373 -16 12 -16H372C378.627 -16 384 -21.373 384 -28z" />
    +    <glyph glyph-name="chess"
    +      unicode="&#xF439;"
    +      horiz-adv-x="512" d=" M199.821 230.367A6 6 0 0 0 205.821 224.367L205.82 203.601A6 6 0 0 0 199.82 197.601H174.015C174.015 165.886 171.862 101.4 191.413 44.372H64.597C84.54 102.548 82.02 168.755 82.02 197.601H56.183A6 6 0 0 0 50.183 203.601L50.185 224.367A6 6 0 0 0 56.185 230.367H199.821zM41.554 332.9120000000001L76.134 237.841H179.868L214.44 332.913C217.286 340.7390000000001 211.49 349.014 203.162 349.014H152V379.2340000000001H173.57A6 6 0 0 1 179.57 385.2340000000001V407.617A6 6 0 0 1 173.57 413.617H145.203V442A6 6 0 0 1 139.203 448H116.82A6 6 0 0 1 110.82 442V413.617H82.421A6 6 0 0 1 76.421 407.617V385.2340000000001A6 6 0 0 1 82.421 379.2340000000001H104V349.015H52.831C44.503 349.014 38.707 340.7390000000001 41.554 332.9120000000001zM222.678 2.83V30.897A6 6 0 0 1 216.678 36.897H39.322A6 6 0 0 1 33.322 30.897V2.83L11.174 -11.334A6 6 0 0 1 8.407 -16.389V-58A6 6 0 0 1 14.407 -64H241.594A6 6 0 0 1 247.594 -58V-16.388A6 6 0 0 1 244.8270000000001 -11.333L222.678 2.83zM313.256 147.055L338.136 130.0919999999999C338.226 111.9679999999999 337.969 66.1879999999999 326.231 15.5699999999999H473.757C462.044 66.045 461.788 111.894 461.875 130.107L486.734 147.056A3.856 3.856 0 0 1 488.418 150.243V220.144A3.8569999999999998 3.8569999999999998 0 0 1 484.561 224.001H456.9059999999999A3.8569999999999998 3.8569999999999998 0 0 1 453.0489999999999 220.144V188.63H430.3119999999999V220.144A3.8569999999999998 3.8569999999999998 0 0 1 426.4539999999999 224.001H373.5359999999999A3.8569999999999998 3.8569999999999998 0 0 1 369.6789999999999 220.144V188.63H346.9419999999999V220.144A3.8569999999999998 3.8569999999999998 0 0 1 343.0849999999998 224.001H315.43A3.8569999999999998 3.8569999999999998 0 0 1 311.573 220.144V150.243A3.8549999999999995 3.8549999999999995 0 0 1 313.256 147.055zM384.841 95.149C384.841 103.521 391.628 110.307 400 110.307S415.158 103.52 415.158 95.149V64.831H384.841V95.149zM504.62 -22.059L490.956 -11.42V4.132A3.8569999999999998 3.8569999999999998 0 0 1 487.099 7.989H312.915A3.8569999999999998 3.8569999999999998 0 0 1 309.058 4.132V-11.42L295.381 -22.059A3.8569999999999998 3.8569999999999998 0 0 1 293.893 -25.103V-60.142A3.8569999999999998 3.8569999999999998 0 0 1 297.75 -63.999H502.25A3.8569999999999998 3.8569999999999998 0 0 1 506.107 -60.142V-25.102A3.859 3.859 0 0 1 504.62 -22.059z" />
    +    <glyph glyph-name="chevron-circle-down"
    +      unicode="&#xF13A;"
    +      horiz-adv-x="512" d=" M504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM273 78.1L408.5 213.6C417.9 223 417.9 238.2 408.5 247.5000000000001L391.5 264.5C382.1 273.9000000000001 366.9 273.9000000000001 357.6 264.5L256 162.9L154.4 264.5C145 273.9 129.8 273.9 120.5 264.5L103.5 247.5C94.1 238.1 94.1 222.9 103.5 213.6L239 78.1C248.4 68.7000000000001 263.6 68.7000000000001 273 78.1z" />
    +    <glyph glyph-name="chevron-circle-left"
    +      unicode="&#xF137;"
    +      horiz-adv-x="512" d=" M256 -56C119 -56 8 55 8 192S119 440 256 440S504 329 504 192S393 -56 256 -56zM142.1 175L277.6 39.5C287 30.1 302.2000000000001 30.1 311.5 39.5L328.5 56.5C337.9 65.9 337.9 81.1 328.5 90.4L226.9 192L328.5 293.6C337.9 303 337.9 318.2 328.5 327.5L311.5 344.5C302.1 353.9 286.9 353.9 277.6 344.5L142.1 209C132.7 199.6 132.7 184.4 142.1 175z" />
    +    <glyph glyph-name="chevron-circle-right"
    +      unicode="&#xF138;"
    +      horiz-adv-x="512" d=" M256 440C393 440 504 329 504 192S393 -56 256 -56S8 55 8 192S119 440 256 440zM369.9 209L234.4 344.5C225 353.9 209.8 353.9 200.5 344.5L183.5 327.5C174.1 318.1 174.1 302.9 183.5 293.6L285.1 192L183.5 90.4C174.1 81 174.1 65.8 183.5 56.5L200.5 39.5C209.9 30.1 225.1 30.1 234.4 39.5L369.9 175C379.3 184.4 379.3 199.6 369.9 209z" />
    +    <glyph glyph-name="chevron-circle-up"
    +      unicode="&#xF139;"
    +      horiz-adv-x="512" d=" M8 192C8 329 119 440 256 440S504 329 504 192S393 -56 256 -56S8 55 8 192zM239 305.9L103.5 170.4C94.1 161 94.1 145.8 103.5 136.5L120.5 119.5C129.9 110.1 145.1 110.1 154.4 119.5L256 221.1L357.6 119.5C367 110.1 382.2000000000001 110.1 391.5 119.5L408.5 136.5C417.9 145.9 417.9 161.1 408.5 170.4L273 305.9C263.6 315.3 248.4 315.3 239 305.9z" />
    +    <glyph glyph-name="chevron-down"
    +      unicode="&#xF078;"
    +      horiz-adv-x="448" d=" M207.029 66.524L12.686 260.868C3.313 270.241 3.313 285.437 12.686 294.809L35.353 317.476C44.71 326.833 59.875 326.851 69.254 317.516L224 163.495L378.745 317.516C388.124 326.851 403.289 326.833 412.646 317.476L435.313 294.809C444.686 285.4360000000001 444.686 270.24 435.313 260.868L240.971 66.524C231.598 57.152 216.402 57.152 207.029 66.524z" />
    +    <glyph glyph-name="chevron-left"
    +      unicode="&#xF053;"
    +      horiz-adv-x="320" d=" M34.52 208.97L228.87 403.31C238.24 412.68 253.44 412.68 262.81 403.31L285.48 380.64C294.8400000000001 371.28 294.85 356.12 285.5200000000001 346.74L131.49 192L285.51 37.25C294.85 27.87 294.83 12.71 285.47 3.35L262.8 -19.32C253.43 -28.69 238.23 -28.69 228.86 -19.32L34.52 175.03C25.15 184.4 25.15 199.6 34.52 208.97z" />
    +    <glyph glyph-name="chevron-right"
    +      unicode="&#xF054;"
    +      horiz-adv-x="320" d=" M285.476 175.029L91.132 -19.314C81.759 -28.687 66.563 -28.687 57.191 -19.314L34.524 3.353C25.167 12.7099999999999 25.149 27.8749999999999 34.484 37.254L188.505 192L34.484 346.745C25.149 356.124 25.167 371.289 34.524 380.646L57.191 403.313C66.564 412.6860000000001 81.76 412.6860000000001 91.132 403.313L285.475 208.97C294.848 199.598 294.848 184.402 285.476 175.029z" />
    +    <glyph glyph-name="chevron-up"
    +      unicode="&#xF077;"
    +      horiz-adv-x="448" d=" M240.971 317.476L435.314 123.1330000000001C444.687 113.7600000000001 444.687 98.564 435.314 89.192L412.647 66.525C403.29 57.168 388.125 57.15 378.7459999999999 66.485L224 220.505L69.255 66.484C59.876 57.149 44.711 57.167 35.354 66.524L12.687 89.191C3.314 98.564 3.314 113.7600000000001 12.687 123.1320000000001L207.03 317.475C216.402 326.848 231.598 326.848 240.971 317.476z" />
    +    <glyph glyph-name="child"
    +      unicode="&#xF1AE;"
    +      horiz-adv-x="384" d=" M120 376C120 415.765 152.235 448 192 448S264 415.765 264 376C264 336.236 231.765 304 192 304S120 336.236 120 376zM374.627 374.627C362.1310000000001 387.124 341.8690000000001 387.124 329.373 374.627L242.745 288H141.254L54.627 374.627C42.131 387.124 21.869 387.124 9.373 374.627C-3.124 362.13 -3.124 341.8690000000001 9.373 329.372L104 234.746V-32C104 -49.673 118.327 -64 136 -64H152C169.673 -64 184 -49.673 184 -32V80H200V-32C200 -49.673 214.327 -64 232 -64H248C265.673 -64 280 -49.673 280 -32V234.746L374.627 329.373C387.124 341.87 387.124 362.13 374.627 374.627z" />
    +    <glyph glyph-name="church"
    +      unicode="&#xF51D;"
    +      horiz-adv-x="640" d=" M464.46 201.32L352 268.8V320H400C408.84 320 416 327.16 416 336V368C416 376.8400000000001 408.84 384 400 384H352V432C352 440.84 344.84 448 336 448H304C295.1600000000001 448 288 440.84 288 432V384H240C231.16 384 224 376.8400000000001 224 368V336C224 327.16 231.16 320 240 320H288V268.8L175.54 201.32A31.997 31.997 0 0 1 160 173.88V-64H256V32C256 67.35 284.65 96 320 96S384 67.35 384 32V-64H480V173.88C480 185.12 474.1 195.54 464.46 201.32zM0 52.04V-48C0 -56.84 7.16 -64 16 -64H128V128L19.39 81.46A32.024 32.024 0 0 1 0 52.04zM620.61 81.46L512 128V-64H624C632.84 -64 640 -56.84 640 -48V52.04C640 64.84 632.37 76.41 620.61 81.46z" />
    +    <glyph glyph-name="circle-notch"
    +      unicode="&#xF1CE;"
    +      horiz-adv-x="512" d=" M288 408.944V392.2850000000001C288 381.481 295.281 372.126 305.686 369.219C383.204 347.5660000000001 440 276.482 440 192C440 90.311 357.705 8 256 8C154.311 8 72 90.295 72 192C72 276.4700000000001 128.786 347.564 206.312 369.219C216.719 372.126 224 381.483 224 392.288V408.936C224 424.645 209.166 436.089 193.954 432.17C86.603 404.5180000000001 7.394 306.794 8.003 190.668C8.723 53.616 119.48 -56.288 256.534 -55.999C393.255 -55.711 504 55.212 504 192C504 307.633 424.86 404.779 317.789 432.236C302.678 436.111 288 424.544 288 408.944z" />
    +    <glyph glyph-name="circle"
    +      unicode="&#xF111;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440z" />
    +    <glyph glyph-name="city"
    +      unicode="&#xF64F;"
    +      horiz-adv-x="640" d=" M616 256H480V424C480 437.26 469.26 448 456 448H312C298.74 448 288 437.26 288 424V352H224V432C224 440.84 216.84 448 208 448H192C183.16 448 176 440.84 176 432V352H112V432C112 440.84 104.84 448 96 448H80C71.16 448 64 440.84 64 432V352H24C10.74 352 0 341.26 0 328V-32C0 -49.67 14.33 -64 32 -64H608C625.67 -64 640 -49.67 640 -32V232C640 245.26 629.25 256 616 256zM128 44C128 37.37 122.63 32 116 32H76C69.37 32 64 37.37 64 44V84C64 90.63 69.37 96 76 96H116C122.63 96 128 90.63 128 84V44zM128 140C128 133.37 122.63 128 116 128H76C69.37 128 64 133.37 64 140V180C64 186.63 69.37 192 76 192H116C122.63 192 128 186.63 128 180V140zM128 236C128 229.37 122.63 224 116 224H76C69.37 224 64 229.37 64 236V276C64 282.63 69.37 288 76 288H116C122.63 288 128 282.63 128 276V236zM256 44C256 37.37 250.63 32 244 32H204C197.37 32 192 37.37 192 44V84C192 90.63 197.37 96 204 96H244C250.63 96 256 90.63 256 84V44zM256 140C256 133.37 250.63 128 244 128H204C197.37 128 192 133.37 192 140V180C192 186.63 197.37 192 204 192H244C250.63 192 256 186.63 256 180V140zM256 236C256 229.37 250.63 224 244 224H204C197.37 224 192 229.37 192 236V276C192 282.63 197.37 288 204 288H244C250.63 288 256 282.63 256 276V236zM416 140C416 133.37 410.63 128 404 128H364C357.37 128 352 133.37 352 140V180C352 186.63 357.37 192 364 192H404C410.63 192 416 186.63 416 180V140zM416 236C416 229.37 410.63 224 404 224H364C357.37 224 352 229.37 352 236V276C352 282.63 357.37 288 364 288H404C410.63 288 416 282.63 416 276V236zM416 332C416 325.37 410.63 320 404 320H364C357.37 320 352 325.37 352 332V372C352 378.63 357.37 384 364 384H404C410.63 384 416 378.63 416 372V332zM576 44C576 37.37 570.63 32 564 32H524C517.37 32 512 37.37 512 44V84C512 90.63 517.37 96 524 96H564C570.63 96 576 90.63 576 84V44zM576 140C576 133.37 570.63 128 564 128H524C517.37 128 512 133.37 512 140V180C512 186.63 517.37 192 524 192H564C570.63 192 576 186.63 576 180V140z" />
    +    <glyph glyph-name="clipboard-check"
    +      unicode="&#xF46C;"
    +      horiz-adv-x="384" d=" M336 384H256C256 419.3 227.3 448 192 448S128 419.3 128 384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V336C384 362.5 362.5 384 336 384zM192 408C205.3 408 216 397.3 216 384S205.3 360 192 360S168 370.7 168 384S178.7 408 192 408zM313.2 176.2L170.2 34.4C165.5 29.7 157.9 29.8 153.2 34.5L70.6 117.8C65.9 122.5 66 130.1 70.7 134.8L99.1 163C103.8 167.7 111.4 167.6 116.1 162.9L162.1 116.5L268.1 221.7C272.8 226.4 280.4000000000001 226.3 285.1 221.6L313.3 193.2C318 188.4 317.9000000000001 180.9 313.2 176.2z" />
    +    <glyph glyph-name="clipboard-list"
    +      unicode="&#xF46D;"
    +      horiz-adv-x="384" d=" M336 384H256C256 419.3 227.3 448 192 448S128 419.3 128 384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V336C384 362.5 362.5 384 336 384zM96 24C82.7 24 72 34.7 72 48S82.7 72 96 72S120 61.3 120 48S109.3 24 96 24zM96 120C82.7 120 72 130.7 72 144S82.7 168 96 168S120 157.3 120 144S109.3 120 96 120zM96 216C82.7 216 72 226.7 72 240S82.7 264 96 264S120 253.3 120 240S109.3 216 96 216zM192 408C205.3 408 216 397.3 216 384S205.3 360 192 360S168 370.7 168 384S178.7 408 192 408zM320 40C320 35.6 316.4 32 312 32H168C163.6 32 160 35.6 160 40V56C160 60.4 163.6 64 168 64H312C316.4 64 320 60.4 320 56V40zM320 136C320 131.6 316.4 128 312 128H168C163.6 128 160 131.6 160 136V152C160 156.4 163.6 160 168 160H312C316.4 160 320 156.4 320 152V136zM320 232C320 227.6 316.4 224 312 224H168C163.6 224 160 227.6 160 232V248C160 252.4 163.6 256 168 256H312C316.4 256 320 252.4 320 248V232z" />
    +    <glyph glyph-name="clipboard"
    +      unicode="&#xF328;"
    +      horiz-adv-x="384" d=" M384 336V-16C384 -42.51 362.51 -64 336 -64H48C21.49 -64 0 -42.51 0 -16V336C0 362.51 21.49 384 48 384H128C128 419.29 156.71 448 192 448S256 419.29 256 384H336C362.51 384 384 362.51 384 336zM192 408C178.745 408 168 397.255 168 384S178.745 360 192 360S216 370.745 216 384S205.255 408 192 408M288 294V314A6 6 0 0 1 282 320H102A6 6 0 0 1 96 314V294A6 6 0 0 1 102 288H282A6 6 0 0 1 288 294z" />
    +    <glyph glyph-name="clock"
    +      unicode="&#xF017;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM313.1 89.9L224.9 154C221.8 156.3 220 159.9 220 163.7V332C220 338.6 225.4 344 232 344H280C286.6 344 292 338.6 292 332V194.3L355.5 148.1C360.9 144.2000000000001 362 136.7000000000001 358.1 131.3L329.9000000000001 92.5C326.0000000000001 87.2 318.5000000000001 86 313.1 89.9z" />
    +    <glyph glyph-name="clone"
    +      unicode="&#xF24D;"
    +      horiz-adv-x="512" d=" M464 448C490.51 448 512 426.51 512 400V112C512 85.49 490.51 64 464 64H176C149.49 64 128 85.49 128 112V400C128 426.51 149.49 448 176 448H464M176 32C131.888 32 96 67.888 96 112V320H48C21.49 320 0 298.51 0 272V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V32H176z" />
    +    <glyph glyph-name="closed-captioning"
    +      unicode="&#xF20A;"
    +      horiz-adv-x="512" d=" M464 384H48C21.5 384 0 362.5 0 336V48C0 21.5 21.5 0 48 0H464C490.5 0 512 21.5 512 48V336C512 362.5 490.5 384 464 384zM218.1 160.3C220.9 162.8 225.2 162.4 227.3 159.4L246.8 131.7000000000001C248.5 129.3000000000001 248.3 126.1 246.3 124.0000000000001C192.7 67.2000000000001 73.5 91.9 73.5 191.9000000000001C73.5 289.2000000000001 195.2 311.4000000000001 246 262.0000000000001C248.1 260.0000000000001 248.5 258.8000000000001 247 256.3000000000001L229.5 225.8000000000001C227.6 222.7000000000001 223.3 221.8000000000001 220.4 224.1000000000001C179.6 256.1000000000002 125.8 239.0000000000001 125.8 192.9000000000001C125.9 144.9000000000001 176.9 122.4000000000001 218.1 160.3000000000001zM408.5 160.3C411.3 162.8 415.6 162.4 417.7 159.4L437.2 131.7000000000001C438.9 129.3000000000001 438.7 126.1 436.7 124.0000000000001C383.2 67.1000000000001 264 91.9 264 191.9000000000001C264 289.2000000000001 385.7 311.4000000000001 436.5 262.0000000000001C438.6 260.0000000000001 439 258.8000000000001 437.5 256.3000000000001L420 225.8C418.1 222.7 413.8 221.8 410.9 224.1C370.1 256.1 316.3 239.0000000000001 316.3 192.9C316.3 144.9 367.3 122.4 408.5 160.3z" />
    +    <glyph glyph-name="cloud-download-alt"
    +      unicode="&#xF381;"
    +      horiz-adv-x="640" d=" M537.6 221.4C541.7 232.1 544 243.8 544 256C544 309 501 352 448 352C428.3 352 409.9 346 394.7 335.8C367 383.8 315.3 416 256 416C167.6 416 96 344.4 96 256C96 253.3 96.1 250.6 96.2 247.9C40.2 228.2 0 174.8 0 112C0 32.5 64.5 -32 144 -32H512C582.7 -32 640 25.3 640 96C640 157.9 596 209.6 537.6 221.4zM404.7000000000001 132.7L299.3 27.3C293.1 21.1 282.9000000000001 21.1 276.7 27.3L171.3 132.7C161.2 142.8 168.4 160 182.6 160H248V272C248 280.8 255.2 288 264 288H312C320.8 288 328 280.8 328 272V160H393.4C407.6 160 414.8 142.8 404.7 132.7z" />
    +    <glyph glyph-name="cloud-moon"
    +      unicode="&#xF6C3;"
    +      horiz-adv-x="640" d=" M342.75 95.32C348.49 104.91 352 116.01 352 128C352 163.35 323.35 192 288 192C270.79 192 255.23 185.12 243.73 174.07C227.39 203.7 196.23 224 160 224C106.98 224 64 181.02 64 128C64 126.05 64.46 124.22 64.57 122.3C27.08 109.23 0 73.95 0 32C0 -21.02 42.98 -64 96 -64H336C380.18 -64 416 -28.18 416 16C416 57.87 383.7200000000001 91.84 342.75 95.32zM628.01 124.74C523.78 105.52 428.06 182.9 428.06 284.77C428.06 343.4500000000001 460.51 397.4100000000001 513.24 426.4700000000001C521.37 430.95 519.32 442.88 510.09 444.53C497.14 446.83 484 448 470.84 448C352.25 448 256 354.96 256 240C256 232.74 256.4 225.56 257.15 218.49C267.02 221.87 277.33 224 288 224C340.94 224 384 180.94 384 128C384 124.41 383.79 120.83 383.37 117.27C416.86 101.88 440.8400000000001 70.72 446.61 33.41C454.57 32.54 462.64 31.9999999999999 470.84 31.9999999999999C537.1 31.9999999999999 597.63 61.1899999999999 637.72 109.0199999999999C643.65 116.0899999999999 637.1800000000001 126.43 628.01 124.74z" />
    +    <glyph glyph-name="cloud-sun"
    +      unicode="&#xF6C4;"
    +      horiz-adv-x="640" d=" M342.75 95.32C348.49 104.91 352 116.01 352 128C352 163.35 323.35 192 288 192C270.79 192 255.23 185.12 243.73 174.07C227.39 203.69 196.23 224 160 224C106.98 224 64 181.02 64 128C64 126.05 64.46 124.22 64.57 122.3C27.08 109.23 0 73.95 0 32C0 -21.02 42.98 -64 96 -64H336C380.18 -64 416 -28.18 416 16C416 57.87 383.7200000000001 91.84 342.75 95.32zM585.94 195.12C578.09 201.91 578.09 214.09 585.94 220.88L633.41 262C646.17 273.05 639.25 294.02 622.41 295.3L560.8199999999999 299.9700000000001C550.6299999999999 300.75 543.54 310.4600000000001 545.92 320.4L560.87 382.88C564.76 399.14 546.91 411.9 532.79 402.95L480.28 369.69C471.67 364.23 460.22 367.94 456.4299999999999 377.41L432.9599999999999 436.15C426.64 451.96 404.7699999999999 451.96 398.45 436.15L375.07 377.66C371.24 368.07 359.63 364.31 350.8999999999999 369.8400000000001L298.6099999999999 402.96C284.4799999999999 411.91 266.6299999999999 399.15 270.5299999999999 382.89L285.4799999999999 320.41C287.8599999999999 310.4700000000001 280.7799999999999 300.76 270.58 299.98L209.4299999999999 295.3400000000001C192.4299999999999 294.05 185.4399999999999 272.88 198.3299999999999 261.7200000000001L229.5599999999999 234.67C237.3799999999999 229.5 244.7699999999999 223.66 251.3399999999999 216.83C262.76 221.54 275.07 224.01 287.7099999999999 224.01C293.68 224.01 299.4799999999999 223.3 305.1499999999999 222.25C312.2399999999999 277.23 358.83 320.01 415.7099999999999 320.01C477.4699999999999 320.01 527.7099999999999 269.77 527.7099999999999 208.01S477.4699999999999 96.01 415.7099999999999 96.01C414.76 96.01 413.88 96.27 412.94 96.29C426.7699999999999 83.09 437.55 66.8199999999999 443.1 48.01H470.1199999999999C476.3699999999999 48.01 482.49 46.18 487.72 42.74L532.8 13.06C546.99 4.07 564.6899999999999 17.23 560.7199999999999 33.82L546.0299999999999 95.2C543.5999999999999 105.36 550.8299999999998 115.28 561.2499999999999 116.07L622.4099999999999 120.71C639.2499999999999 121.99 646.1699999999998 142.96 633.4099999999999 154.01L585.9399999999998 195.12zM383.2800000000001 135.18C393.3 130.66 404.32 128 416 128C460.11 128 496 163.89 496 208S460.11 288 416 288C372.75 288 337.61 253.44 336.25 210.51C362.69 194.98 380.8400000000001 167.38 383.28 135.18z" />
    +    <glyph glyph-name="cloud-upload-alt"
    +      unicode="&#xF382;"
    +      horiz-adv-x="640" d=" M537.6 221.4C541.7 232.1 544 243.8 544 256C544 309 501 352 448 352C428.3 352 409.9 346 394.7 335.8C367 383.8 315.3 416 256 416C167.6 416 96 344.4 96 256C96 253.3 96.1 250.6 96.2 247.9C40.2 228.2 0 174.8 0 112C0 32.5 64.5 -32 144 -32H512C582.7 -32 640 25.3 640 96C640 157.9 596 209.6 537.6 221.4zM393.4 160H328V48C328 39.2 320.8 32 312 32H264C255.2 32 248 39.2 248 48V160H182.6C168.3 160 161.2 177.2 171.3 187.3L276.7 292.7000000000001C282.9 298.9 293.1 298.9 299.3 292.7000000000001L404.7000000000001 187.3C414.8000000000001 177.2 407.6 160 393.4000000000001 160z" />
    +    <glyph glyph-name="cloud"
    +      unicode="&#xF0C2;"
    +      horiz-adv-x="640" d=" M537.6 221.4C541.7 232.1 544 243.8 544 256C544 309 501 352 448 352C428.3 352 409.9 346 394.7 335.8C367 383.8 315.3 416 256 416C167.6 416 96 344.4 96 256C96 253.3 96.1 250.6 96.2 247.9C40.2 228.2 0 174.8 0 112C0 32.5 64.5 -32 144 -32H512C582.7 -32 640 25.3 640 96C640 157.9 596 209.6 537.6 221.4z" />
    +    <glyph glyph-name="cocktail"
    +      unicode="&#xF561;"
    +      horiz-adv-x="576" d=" M296 -16H240V109.22L408.74 277.9500000000001C424.26 293.4700000000001 413.27 320 391.32 320H24.68C2.73 320 -8.26 293.4700000000001 7.26 277.9500000000001L176 109.22V-16H120C97.91 -16 80 -33.91 80 -56C80 -60.42 83.58 -64 88 -64H328C332.42 -64 336 -60.42 336 -56C336 -33.91 318.09 -16 296 -16zM432 448C369.39 448 316.65 407.8 296.82 352H349.36C366.01 380.55 396.63 400 432 400C484.93 400 528 356.94 528 304S484.93 208 432 208C417.96 208 404.71 211.2 392.68 216.64L357.42 181.38C379.23 168.08 404.59 160 432 160C511.53 160 576 224.47 576 304S511.53 448 432 448z" />
    +    <glyph glyph-name="code-branch"
    +      unicode="&#xF126;"
    +      horiz-adv-x="384" d=" M384 304C384 348.2 348.2 384 304 384S224 348.2 224 304C224 267.6 248.3 236.9 281.5 227.2C280.9 211.1 277.3 198.7 270.5 190.3C255.1 171.1 221.2 167.9 185.3 164.6C157.1 162 127.9 159.2000000000001 104 147.7000000000001V291.7000000000001C136.5 301.9000000000001 160 332.2000000000001 160 368.0000000000001C160 412.2000000000001 124.2 448.0000000000001 80 448.0000000000001S0 412.2 0 368C0 332.2 23.5 301.9 56 291.7V92.4C23.5 82.1 0 51.8 0 16C0 -28.2 35.8 -64 80 -64S160 -28.2 160 16C160 50 138.8 79.1 108.8 90.6C111.9 95.8 116.6 100.4 123.7 104C139.9 112.2 164.1 114.4 189.8 116.8C232 120.7 279.8 125.2 308 160.2C322 177.6 329.1 200 329.6 228.1C361.2000000000001 238.9 384 268.8 384 304zM80 384C88.8 384 96 376.8 96 368S88.8 352 80 352S64 359.2 64 368S71.2 384 80 384zM80 0C71.2 0 64 7.2 64 16S71.2 32 80 32S96 24.8 96 16S88.8 0 80 0zM304 320C312.8 320 320 312.8 320 304S312.8 288 304 288S288 295.2 288 304S295.2 320 304 320z" />
    +    <glyph glyph-name="code"
    +      unicode="&#xF121;"
    +      horiz-adv-x="640" d=" M278.9 -63.5L217.9 -45.8C211.5 -44 207.9 -37.3 209.7 -30.9L346.2 439.3C348 445.7 354.7 449.3 361.1 447.5L422.1 429.8C428.5 428 432.1 421.3 430.3 414.9L293.8 -55.3C291.9000000000001 -61.7 285.3 -65.4 278.9000000000001 -63.5zM164.9 48.7L208.4 95.1C213 99.9999999999999 212.7 107.8 207.6 112.3L117 192L207.6 271.7C212.7 276.2 213.1 284 208.4 288.9L164.9 335.3C160.4 340.1 152.8 340.4 147.9 335.8L3.8 200.8C-1.3 196.1 -1.3 188 3.8 183.3L147.9 48.2C152.8 43.6 160.4 43.8000000000001 164.9 48.7zM492.1 48.1L636.1999999999999 183.1999999999999C641.3 187.8999999999999 641.3 196 636.1999999999999 200.6999999999999L492.1 335.9C487.3 340.4 479.7 340.2 475.1 335.4L431.6 289C427 284.1 427.3 276.3 432.4000000000001 271.8L523 192L432.4 112.3C427.3 107.8 426.9 100 431.6 95.1L475.1 48.7C479.6 43.8000000000001 487.2 43.6 492.1 48.1z" />
    +    <glyph glyph-name="coffee"
    +      unicode="&#xF0F4;"
    +      horiz-adv-x="640" d=" M192 64H384C437 64 480 107 480 160H512C582.6 160 640 217.4 640 288S582.6 416 512 416H120C106.7 416 96 405.3 96 392V160C96 107 139 64 192 64zM512 352C547.3 352 576 323.3 576 288S547.3 224 512 224H480V352H512zM559.7 -32H48.3C0.7 -32 -12.7 32 12.3 32H595.5999999999999C620.5999999999999 32 607.3999999999999 -32 559.6999999999999 -32z" />
    +    <glyph glyph-name="cog"
    +      unicode="&#xF013;"
    +      horiz-adv-x="512" d=" M444.788 156.9L487.404 132.301C492.271 129.492 494.53 123.683 492.863 118.316C481.793 82.674 462.893 50.474 438.174 23.73A12.015999999999998 12.015999999999998 0 0 0 423.342 21.4759999999999L380.758 46.0709999999999A191.577 191.577 0 0 0 319.999 10.9409999999999V-38.2410000000001A12.01 12.01 0 0 0 310.622 -49.9590000000001C275.666 -57.8090000000001 238.123 -58.2150000000001 201.403 -49.9660000000001C195.913 -48.7330000000001 192 -43.8700000000001 192 -38.2430000000001V10.9409999999999A191.555 191.555 0 0 0 131.241 46.0709999999999L88.657 21.4759999999999A12.015999999999998 12.015999999999998 0 0 0 73.825 23.7299999999999C49.107 50.4739999999999 30.206 82.6739999999999 19.136 118.3159999999999C17.469 123.6819999999999 19.728 129.4909999999999 24.595 132.3009999999999L67.212 156.9A193.48000000000002 193.48000000000002 0 0 0 67.212 227.099L24.596 251.698C19.729 254.507 17.47 260.316 19.137 265.683C30.207 301.325 49.107 333.525 73.826 360.269A12.015999999999998 12.015999999999998 0 0 0 88.658 362.523L131.242 337.928A191.577 191.577 0 0 0 192.001 373.058V422.241A12.01 12.01 0 0 0 201.3780000000001 433.959C236.3340000000001 441.8090000000001 273.8770000000001 442.215 310.5970000000001 433.966C316.0870000000001 432.733 320.0000000000001 427.87 320.0000000000001 422.243V373.059A191.555 191.555 0 0 0 380.7590000000001 337.929L423.3430000000001 362.524A12.015999999999998 12.015999999999998 0 0 0 438.1750000000001 360.27C462.8930000000001 333.526 481.7940000000001 301.326 492.8640000000001 265.684C494.5310000000001 260.318 492.2720000000001 254.509 487.4050000000001 251.699L444.788 227.1A193.485 193.485 0 0 0 444.788 156.9zM336 192C336 236.112 300.112 272 256 272S176 236.112 176 192S211.888 112 256 112S336 147.888 336 192z" />
    +    <glyph glyph-name="cogs"
    +      unicode="&#xF085;"
    +      horiz-adv-x="640" d=" M512.1 257L503.9 242.7C500.9 237.4 494.5000000000001 235.2 488.8 237.3C477 241.7 466.2 248 456.7 255.9C452.1 259.7 450.9 266.4 453.9 271.6L462.1 285.9C455.2 293.9 449.8 303.2 446.2 313.3H429.7C423.7 313.3 418.5 317.6 417.5 323.6C415.5 335.6 415.4 348.2 417.5 360.7C418.5 366.7 423.7 371.1 429.7 371.1H446.2C449.8 381.2 455.2 390.5 462.1 398.5L453.9 412.8C450.9 418 452 424.7 456.7 428.5C466.2 436.4 477.1 442.7 488.8 447.1C494.5 449.2 500.9 447 503.9 441.7L512.1 427.4C522.6 429.3 533.3000000000001 429.3 543.8000000000001 427.4L552 441.7C555 447 561.4 449.2 567.1 447.1C578.9 442.7 589.7 436.4 599.2 428.5C603.8000000000001 424.7 605 418 602 412.8L593.8 398.5C600.6999999999999 390.5 606.0999999999999 381.2 609.6999999999999 371.1H626.1999999999999C632.1999999999999 371.1 637.4 366.8 638.4 360.8C640.4 348.8 640.5 336.2 638.4 323.7C637.4 317.7 632.1999999999999 313.3 626.1999999999999 313.3H609.6999999999999C606.0999999999999 303.2 600.6999999999999 293.9 593.8 285.9L602 271.6C605 266.4 603.9 259.7 599.2 255.9C589.7 248 578.8000000000001 241.7 567.1 237.3C561.4 235.2 555 237.4 552 242.7L543.8 257C533.4 255.1 522.5999999999999 255.1 512.0999999999999 257zM501.6 315.8C540.1 286.2000000000001 584 330.1 554.4 368.6C515.9 398.3 472 354.3 501.6 315.8zM386.3 161.9L420 145.1C430.1 139.3 434.5 127 430.5 116C421.6 91.8 404.1 69.6 387.9 50.1999999999999C380.5 41.3 367.7 39.0999999999999 357.6 44.8999999999999L328.5 61.6999999999999C312.5 47.9999999999999 293.8999999999999 37.0999999999999 273.6 29.9999999999999V-3.6000000000001C273.6 -15.2000000000001 265.3 -25.2000000000001 253.9 -27.2000000000001C229.3 -31.4000000000001 203.5 -31.6000000000001 178 -27.2000000000001C166.5 -25.2000000000001 158 -15.3000000000001 158 -3.6000000000001V30C137.7 37.2 119.1 48 103.1 61.7L74 45C64 39.2 51.1 41.4 43.7 50.3C27.5 69.7 10.4 91.9 1.5 116C-2.5 126.9 1.9 139.2 12 145.1L45.3 161.9C41.4 182.8 41.4 204.3000000000001 45.3 225.3000000000001L12 242.2C1.9 248 -2.6 260.3 1.5 271.2C10.4 295.4 27.5 317.6 43.7 337C51.1 345.9 63.9 348.1 74 342.3L103.1 325.5C119.1 339.2 137.7 350.1 158 357.2V390.9C158 402.4 166.2 412.4 177.6 414.4C202.2 418.6 228.1 418.8 253.6 414.5C265.1 412.5 273.6 402.6 273.6 390.9V357.3C293.9000000000001 350.1 312.5 339.3 328.5 325.6L357.6 342.4C367.6 348.2 380.5 346 387.9000000000001 337.1C404.1 317.7 421.1 295.5 430.0000000000001 271.3C434.0000000000001 260.4 430.1000000000001 248.1 420.0000000000001 242.2L386.3000000000001 225.4C390.2000000000001 204.4 390.2000000000001 182.9 386.3000000000001 161.9zM268.7000000000001 140.8C327.9000000000001 217.8 240.0000000000001 305.7 163.0000000000001 246.5C103.8000000000001 169.5 191.7000000000001 81.5999999999999 268.7000000000001 140.8zM512.1 -41.9L503.9 -56.2C500.9 -61.5000000000001 494.5000000000001 -63.7 488.8 -61.6C477 -57.2 466.2 -50.9 456.7 -43C452.1 -39.2 450.9 -32.5 453.9 -27.3L462.1 -13C455.2 -5 449.8 4.3 446.2 14.4H429.7C423.7 14.4 418.5 18.7 417.5 24.7C415.5 36.7 415.4 49.3 417.5 61.8C418.5 67.8 423.7 72.2 429.7 72.2H446.2C449.8 82.3 455.2 91.6 462.1 99.6L453.9 113.9C450.9 119.1 452 125.8 456.7 129.6C466.2 137.5 477.1 143.8 488.8 148.2C494.5 150.3 500.9 148.1 503.9 142.8L512.1 128.5C522.6 130.4 533.3000000000001 130.4 543.8000000000001 128.5L552.0000000000001 142.8C555.0000000000001 148.1 561.4000000000001 150.3 567.1000000000001 148.2C578.9000000000001 143.8 589.7000000000002 137.5 599.2000000000002 129.6C603.8000000000002 125.8 605.0000000000001 119.1 602.0000000000001 113.9L593.8000000000001 99.6C600.7 91.6 606.1 82.3 609.7 72.2H626.2C632.2 72.2 637.4000000000001 67.9 638.4000000000001 61.9C640.4000000000001 49.9 640.5000000000001 37.3 638.4000000000001 24.8C637.4000000000001 18.8 632.2 14.4 626.2 14.4H609.7C606.1 4.3 600.7 -5 593.8000000000001 -13L602.0000000000001 -27.3C605.0000000000001 -32.5 603.9000000000001 -39.2 599.2000000000002 -43C589.7000000000002 -50.9 578.8000000000002 -57.2 567.1000000000001 -61.6C561.4000000000001 -63.7 555.0000000000001 -61.5 552.0000000000001 -56.2L543.8000000000001 -41.9C533.4000000000001 -43.8 522.6 -43.8 512.1 -41.9zM501.6 17C540.1 -12.6 584 31.3 554.4 69.8C515.9 99.4 472 55.5 501.6 17z" />
    +    <glyph glyph-name="coins"
    +      unicode="&#xF51E;"
    +      horiz-adv-x="512" d=" M0 42.7V0C0 -35.3 86 -64 192 -64S384 -35.3 384 0V42.7C342.7 13.6 267.2 0 192 0S41.3 13.6 0 42.7zM320 320C426 320 512 348.7 512 384S426 448 320 448S128 419.3 128 384S214 320 320 320zM0 147.6V96C0 60.7 86 32 192 32S384 60.7 384 96V147.6C342.7 113.6 267.1 96 192 96S41.3 113.6 0 147.6zM416 136.6C473.3 147.7000000000001 512 168.3 512 192V234.7000000000001C488.8 218.3000000000001 454.7 207.1000000000001 416 200.2000000000001V136.6zM192 288C86 288 0 252.2 0 208S86 128 192 128S384 163.8 384 208S298 288 192 288zM411.3 231.7C471.3 242.5 512 263.7 512 288V330.7C476.5 305.6 415.5 292.1 351.3 288.9C380.8 274.6 402.5 255.4 411.3 231.7z" />
    +    <glyph glyph-name="columns"
    +      unicode="&#xF0DB;"
    +      horiz-adv-x="512" d=" M464 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H464C490.51 -32 512 -10.51 512 16V368C512 394.51 490.51 416 464 416zM224 32H64V288H224V32zM448 32H288V288H448V32z" />
    +    <glyph glyph-name="comment-alt"
    +      unicode="&#xF27A;"
    +      horiz-adv-x="512" d=" M448 448H64C28.7 448 0 419.3 0 384V96C0 60.7 28.7 32 64 32H160V-52C160 -61.8 171.2 -67.5 179.1 -61.7L304 32H448C483.3 32 512 60.7 512 96V384C512 419.3 483.3 448 448 448z" />
    +    <glyph glyph-name="comment-dollar"
    +      unicode="&#xF651;"
    +      horiz-adv-x="512" d=" M256 416C114.62 416 0 322.88 0 208C0 158.44 21.41 112.99 57.02 77.26C44.46 26.95 2.7 -17.97 2.2 -18.5A7.995 7.995 0 0 1 8 -32C74.26 -32 123.99 -0.25 148.6 19.38C181.29 7.07 217.59 0 256 0C397.38 0 512 93.12 512 208S397.38 416 256 416zM280 113.56V96C280 87.16 272.84 80 264 80H248C239.16 80 232 87.16 232 96V113.73C220.58 115.0800000000001 209.72 118.92 200.22 125.19C194 129.3 193.4 138.3 198.67 143.57L216.19 161.09C219.93 164.83 225.5 165.33 230.3 163.12C233.48 161.66 236.96 160.8999999999999 240.56 160.8999999999999H273.3400000000001C278.0000000000001 160.8999999999999 281.7800000000001 164.6799999999999 281.7800000000001 169.3199999999999C281.7800000000001 173.0699999999999 279.2600000000001 176.3999999999999 275.6600000000001 177.43L225.5900000000001 191.73C203.34 198.08 185.5800000000001 216.44 182.68 239.4C178.63 271.47 201.71 298.83 232.0000000000001 302.45V320C232.0000000000001 328.8400000000001 239.1600000000001 336 248.0000000000001 336H264C272.84 336 280 328.8400000000001 280 320V302.27C291.42 300.92 302.28 297.0800000000001 311.78 290.81C318 286.7 318.6 277.7 313.33 272.43L295.81 254.91C292.07 251.17 286.5 250.67 281.7 252.88A24.516 24.516 0 0 1 271.44 255.1H238.66C234 255.1 230.22 251.32 230.22 246.68C230.22 242.93 232.74 239.6 236.34 238.57L286.4100000000001 224.27C308.6600000000001 217.91 326.42 199.56 329.3200000000001 176.6C333.3700000000001 144.54 310.2900000000001 117.18 280.0000000000001 113.56z" />
    +    <glyph glyph-name="comment-dots"
    +      unicode="&#xF4AD;"
    +      horiz-adv-x="512" d=" M256 416C114.6 416 0 322.9 0 208C0 158.4 21.4 113 57 77.3C44.5 26.9 2.7 -18 2.2 -18.5C0 -20.8 -0.6 -24.2 0.7 -27.2S4.8 -32 8 -32C74.3 -32 124 -0.2 148.6 19.4C181.3 7.1 217.6 0 256 0C397.4 0 512 93.1 512 208S397.4 416 256 416zM128 176C110.3 176 96 190.3 96 208S110.3 240 128 240S160 225.7 160 208S145.7 176 128 176zM256 176C238.3 176 224 190.3 224 208S238.3 240 256 240S288 225.7 288 208S273.7 176 256 176zM384 176C366.3 176 352 190.3 352 208S366.3 240 384 240S416 225.7 416 208S401.7 176 384 176z" />
    +    <glyph glyph-name="comment-slash"
    +      unicode="&#xF4B3;"
    +      horiz-adv-x="640" d=" M64 208C64 158.4 85.4 113 121 77.3C108.4 27 66.7 -17.9 66.2 -18.5C64 -20.8 63.4 -24.2 64.7 -27.2C66 -30.1 68.8 -32 72 -32C138.3 -32 188 -0.2 212.6 19.4C245.3 7.1 281.6 0 320 0C347.4 0 373.7 3.6 398.4 10L72.9 261.6C67.3 244.5 64 226.6 64 208zM633.8 -10.1L519.4 78.3C554.6 113.9 576 158.8 576 208C576 322.9 461.4 416 320 416C254.9 416 195.8 395.9 150.6 363.3L45.5 444.6C38.5 450 28.5 448.8 23 441.8L3.4 416.6C-2 409.6 -0.8 399.6 6.2 394.2L594.6 -60.5C601.6 -65.9 611.6 -64.7 617.1 -57.7L636.7 -32.4C642.1 -25.6 640.8000000000001 -15.5 633.8000000000001 -10.1z" />
    +    <glyph glyph-name="comment"
    +      unicode="&#xF075;"
    +      horiz-adv-x="512" d=" M256 416C114.6 416 0 322.9 0 208C0 158.4 21.4 113 57 77.3C44.5 26.9 2.7 -18 2.2 -18.5C0 -20.8 -0.6 -24.2 0.7 -27.2S4.8 -32 8 -32C74.3 -32 124 -0.2 148.6 19.4C181.3 7.1 217.6 0 256 0C397.4 0 512 93.1 512 208S397.4 416 256 416z" />
    +    <glyph glyph-name="comments-dollar"
    +      unicode="&#xF653;"
    +      horiz-adv-x="576" d=" M416 256C416 344.37 322.88 416 208 416S0 344.37 0 256C0 221.73 14.13 190.05 37.97 164.02C24.61 133.78 2.52 109.84 2.2 109.5A7.995 7.995 0 0 1 8 96C44.58 96 74.93 108.25 96.73 120.98C128.93 105.24 167.02 96 208 96C322.88 96 416 167.63 416 256zM192 160V176.29C180.71 176.87 169.73 180.81 160.63 187.6400000000001C156.73 190.5700000000001 156.53 196.4100000000001 160.06 199.78L171.81 210.9900000000001C174.58 213.63 178.7 213.75 181.94 211.72C185.81 209.3000000000001 190.2 208 194.76 208H222.87C229.37 208 234.67 213.92 234.67 221.19C234.67 227.14 231.06 232.38 225.9 233.92L180.9 247.42C162.31 253.0000000000001 149.32 270.8400000000001 149.32 290.81C149.32 315.3300000000001 168.37 335.25 191.99 335.88V352C191.99 356.42 195.57 360 199.99 360H215.99C220.41 360 223.99 356.42 223.99 352V335.7100000000001C235.28 335.13 246.26 331.2 255.36 324.36C259.26 321.43 259.4600000000001 315.5900000000001 255.93 312.2200000000001L244.18 301.01C241.41 298.37 237.29 298.25 234.05 300.2800000000001C230.18 302.7100000000001 225.79 304 221.23 304H193.12C186.62 304 181.32 298.0800000000001 181.32 290.8100000000001C181.32 284.86 184.93 279.62 190.09 278.0800000000001L235.09 264.5800000000001C253.68 259 266.67 241.1600000000001 266.67 221.1900000000001C266.67 196.6600000000001 247.62 176.7500000000001 224 176.1200000000001V160C224 155.58 220.42 152 216 152H200C195.58 152 192 155.58 192 160zM538.01 36.01C561.87 62.04 576 93.73 576 128C576 194.94 522.51 252.2 446.67 276.07C447.53 269.4700000000001 448 262.78 448 256C448 150.13 340.3399999999999 64 208 64C197.22 64 186.68 64.77 176.27 65.88C207.8 8.37 281.77 -32 368 -32C408.98 -32 447.07 -22.76 479.27 -7.02C501.07 -19.75 531.42 -32 568 -32C571.2 -32 574.09 -30.09 575.34 -27.16C576.61 -24.22 576 -20.82 573.7900000000001 -18.49C573.4800000000001 -18.16 551.3700000000001 5.75 538.0100000000001 36.01z" />
    +    <glyph glyph-name="comments"
    +      unicode="&#xF086;"
    +      horiz-adv-x="576" d=" M416 256C416 344.4 322.9 416 208 416S0 344.4 0 256C0 221.7 14.1 190.1 38 164C24.6 133.8 2.5 109.8 2.2 109.5C0 107.2 -0.6 103.8 0.7 100.8S4.8 96 8 96C44.6 96 74.9 108.3 96.7 121C128.9 105.3 167 96 208 96C322.9 96 416 167.6 416 256zM538 36C561.9 62 576 93.7 576 128C576 194.9 522.5 252.2 446.7 276.1C447.6 269.5 448 262.8 448 256C448 150.1 340.3 64 208 64C197.2 64 186.7 64.8 176.3 65.9C207.8 8.4 281.8 -32 368 -32C409 -32 447.1 -22.8 479.3 -7C501.1 -19.7 531.4 -32 568 -32C571.2 -32 574.1 -30.1 575.3 -27.2C576.5999999999999 -24.3 576 -20.9 573.8 -18.5C573.5 -18.2 551.4 5.7 538 36z" />
    +    <glyph glyph-name="compact-disc"
    +      unicode="&#xF51F;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM88 192H56C56 297.9 142.1 384 248 384V352C159.8 352 88 280.2 88 192zM248 96C195 96 152 139 152 192S195 288 248 288S344 245 344 192S301 96 248 96zM248 224C230.3 224 216 209.7 216 192S230.3 160 248 160S280 174.3 280 192S265.7 224 248 224z" />
    +    <glyph glyph-name="compass"
    +      unicode="&#xF14E;"
    +      horiz-adv-x="496" d=" M225.38 214.63C212.88 202.13 212.88 181.87 225.38 169.38C237.87 156.88 258.14 156.88 270.63 169.38C283.13 181.88 283.13 202.14 270.63 214.63C258.13 227.12 237.87 227.12 225.38 214.63zM248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM374.14 291.95L308.17 147.6A31.938 31.938 0 0 0 292.4000000000001 131.8300000000001L148.06 65.86C131.41 58.25 114.25 75.41 121.86 92.06L187.84 236.41A31.938 31.938 0 0 0 203.6100000000001 252.18L347.9500000000001 318.15C364.6 325.75 381.7500000000001 308.6 374.1400000000001 291.9500000000001z" />
    +    <glyph glyph-name="compress"
    +      unicode="&#xF066;"
    +      horiz-adv-x="448" d=" M436 256H312C298.7 256 288 266.7 288 280V404C288 410.6 293.4 416 300 416H340C346.6 416 352 410.6 352 404V320H436C442.6 320 448 314.6 448 308V268C448 261.4 442.6 256 436 256zM160 280V404C160 410.6 154.6 416 148 416H108C101.4 416 96 410.6 96 404V320H12C5.4 320 0 314.6 0 308V268C0 261.4 5.4 256 12 256H136C149.3 256 160 266.7 160 280zM160 -20V104C160 117.3 149.3 128 136 128H12C5.4 128 0 122.6 0 116V76C0 69.4 5.4 64 12 64H96V-20C96 -26.6 101.4 -32 108 -32H148C154.6 -32 160 -26.6 160 -20zM352 -20V64H436C442.6 64 448 69.4 448 76V116C448 122.6 442.6 128 436 128H312C298.7 128 288 117.3 288 104V-20C288 -26.6 293.4 -32 300 -32H340C346.6 -32 352 -26.6 352 -20z" />
    +    <glyph glyph-name="concierge-bell"
    +      unicode="&#xF562;"
    +      horiz-adv-x="512" d=" M288 317.4600000000001V336H304C312.84 336 320 343.16 320 352V368C320 376.8400000000001 312.84 384 304 384H208C199.16 384 192 376.8400000000001 192 368V352C192 343.16 199.16 336 208 336H224V317.4600000000001C115.49 301.89 32 208.82 32 96H480C480 208.82 396.51 301.89 288 317.4600000000001zM496 64H16C7.16 64 0 56.84 0 48V16C0 7.16 7.16 0 16 0H496C504.84 0 512 7.16 512 16V48C512 56.84 504.84 64 496 64z" />
    +    <glyph glyph-name="cookie-bite"
    +      unicode="&#xF564;"
    +      horiz-adv-x="512" d=" M510.52 192.18C440.55 193.03 384.05 249.87 384.05 320.04C313.88 320.04 257.05 376.53 256.19 446.49C228.93 450.63 201.06 446.19 176.47 433.67L107.34 398.45A132.221 132.221 0 0 1 49.55 340.64L14.4499999999999 271.76A132.645 132.645 0 0 1 1.6299999999999 190.81L13.7099999999999 114.54A132.521 132.521 0 0 1 50.8699999999999 41.58L105.6399999999999 -13.1799999999999A132.036 132.036 0 0 1 178.3499999999999 -50.2399999999999L255.06 -62.3899999999999C282.57 -66.7499999999999 310.76 -62.2799999999999 335.5899999999999 -49.6299999999999L404.7199999999999 -14.42A132.273 132.273 0 0 1 462.5099999999999 43.39L497.61 112.27C510.17 136.91 514.62 164.85 510.52 192.18zM176 80C158.33 80 144 94.33 144 112S158.33 144 176 144S208 129.67 208 112S193.67 80 176 80zM208 240C190.33 240 176 254.33 176 272S190.33 304 208 304S240 289.67 240 272S225.67 240 208 240zM368 112C350.33 112 336 126.33 336 144S350.33 176 368 176S400 161.67 400 144S385.67 112 368 112z" />
    +    <glyph glyph-name="cookie"
    +      unicode="&#xF563;"
    +      horiz-adv-x="512" d=" M510.37 193.21L498.29 269.4700000000001A132.493 132.493 0 0 1 461.13 342.42L406.37 397.17C386.64 416.8900000000001 361.19 429.87 333.6600000000001 434.2200000000001L256.9600000000001 446.37C229.4500000000001 450.73 201.2700000000001 446.2600000000001 176.4400000000001 433.61L107.32 398.4A132.25 132.25 0 0 1 49.53 340.6L14.43 271.7200000000001A132.602 132.602 0 0 1 1.61 190.78L13.69 114.51A132.493 132.493 0 0 1 50.85 41.56L105.61 -13.19A132.087 132.087 0 0 1 178.32 -50.24L255.02 -62.38C282.53 -66.74 310.71 -62.27 335.54 -49.63L404.66 -14.42A132.302 132.302 0 0 1 462.45 43.38L497.55 112.25C510.26 137.21 514.75 165.55 510.37 193.21zM176 80C158.33 80 144 94.33 144 112S158.33 144 176 144S208 129.67 208 112S193.67 80 176 80zM208 240C190.33 240 176 254.33 176 272S190.33 304 208 304S240 289.67 240 272S225.67 240 208 240zM368 112C350.33 112 336 126.33 336 144S350.33 176 368 176S400 161.67 400 144S385.67 112 368 112z" />
    +    <glyph glyph-name="copy"
    +      unicode="&#xF0C5;"
    +      horiz-adv-x="448" d=" M320 0V-40C320 -53.255 309.255 -64 296 -64H24C10.745 -64 0 -53.255 0 -40V328C0 341.255 10.745 352 24 352H96V56C96 25.121 121.121 0 152 0H320zM320 344V448H152C138.745 448 128 437.255 128 424V56C128 42.745 138.745 32 152 32H424C437.255 32 448 42.745 448 56V320H344C330.8 320 320 330.8 320 344zM440.971 375.029L375.029 440.971A24 24 0 0 1 358.0590000000001 448H352V352H448V358.059A24 24 0 0 1 440.971 375.029z" />
    +    <glyph glyph-name="copyright"
    +      unicode="&#xF1F9;"
    +      horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM373.134 93.247C371.5420000000001 91.38 333.358 47.516 263.283 47.516C178.591 47.516 118.799 110.776 118.799 193.083C118.799 274.386 180.803 336.4840000000001 262.5610000000001 336.4840000000001C329.5180000000001 336.4840000000001 364.5260000000001 299.1690000000001 365.9830000000001 297.5800000000001A12 12 0 0 0 367.2210000000001 282.9570000000001L344.8410000000001 248.3020000000001C340.7920000000001 242.0350000000001 332.0670000000001 240.9510000000001 326.6070000000001 246.0070000000001C326.3740000000001 246.2210000000001 300.0780000000001 269.8870000000001 264.7270000000001 269.8870000000001C218.6110000000001 269.8870000000001 190.8110000000001 236.3120000000001 190.8110000000001 193.8050000000001C190.8110000000001 154.2030000000001 216.3250000000001 114.1130000000001 265.0880000000001 114.1130000000001C303.7850000000001 114.1130000000001 330.3680000000001 142.4510000000001 330.6320000000001 142.7380000000001C335.7640000000001 148.3030000000001 344.6910000000001 147.7710000000001 349.1400000000001 141.6850000000001L373.6870000000001 108.1130000000001A12.001000000000001 12.001000000000001 0 0 0 373.1340000000001 93.2470000000001z" />
    +    <glyph glyph-name="couch"
    +      unicode="&#xF4B8;"
    +      horiz-adv-x="640" d=" M160 224V160H480V224C480 259.3 508.7 288 544 288H576C576 341 533 384 480 384H160C107 384 64 341 64 288H96C131.3 288 160 259.3 160 224zM576 256H544C526.3 256 512 241.7 512 224V128H128V224C128 241.7 113.7 256 96 256H64C28.7 256 0 227.3 0 192C0 168.4 13 148 32 136.9V16C32 7.2 39.2 0 48 0H112C120.8 0 128 7.2 128 16V32H512V16C512 7.2 519.2 0 528 0H592C600.8 0 608 7.2 608 16V136.9C627 148 640 168.4 640 192C640 227.3 611.3 256 576 256z" />
    +    <glyph glyph-name="credit-card"
    +      unicode="&#xF09D;"
    +      horiz-adv-x="576" d=" M0 16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V192H0V16zM192 84C192 90.6 197.4 96 204 96H340C346.6 96 352 90.6 352 84V44C352 37.4 346.6 32 340 32H204C197.4 32 192 37.4 192 44V84zM64 84C64 90.6 69.4 96 76 96H148C154.6 96 160 90.6 160 84V44C160 37.4 154.6 32 148 32H76C69.4 32 64 37.4 64 44V84zM576 368V320H0V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368z" />
    +    <glyph glyph-name="crop-alt"
    +      unicode="&#xF565;"
    +      horiz-adv-x="512" d=" M488 96H448V352C448 369.67 433.67 384 416 384H192V288H352V-40C352 -53.25 362.75 -64 376 -64H424C437.25 -64 448 -53.25 448 -40V0H488C501.25 0 512 10.75 512 24V72C512 85.26 501.25 96 488 96zM160 424C160 437.26 149.25 448 136 448H88C74.75 448 64 437.26 64 424V384H24C10.75 384 0 373.26 0 360V312C0 298.75 10.75 288 24 288H64V32C64 14.33 78.33 0 96 0H320V96H160V424z" />
    +    <glyph glyph-name="crop"
    +      unicode="&#xF125;"
    +      horiz-adv-x="512" d=" M488 96H448V338.75L507.31 398.06C513.56 404.31 513.56 414.44 507.31 420.69L484.69 443.31C478.44 449.56 468.31 449.56 462.06 443.31L402.75 384H192V288H306.75L160 141.25V424C160 437.26 149.25 448 136 448H88C74.75 448 64 437.26 64 424V384H24C10.75 384 0 373.26 0 360V312C0 298.75 10.75 288 24 288H64V24C64 10.75 74.75 0 88 0H320V96H205.25L352 242.75V-40C352 -53.25 362.75 -64 376 -64H424C437.25 -64 448 -53.25 448 -40V0H488C501.25 0 512 10.75 512 24V72C512 85.26 501.25 96 488 96z" />
    +    <glyph glyph-name="cross"
    +      unicode="&#xF654;"
    +      horiz-adv-x="384" d=" M352 320H256V416C256 433.67 241.67 448 224 448H160C142.33 448 128 433.67 128 416V320H32C14.33 320 0 305.67 0 288V224C0 206.33 14.33 192 32 192H128V-32C128 -49.67 142.33 -64 160 -64H224C241.67 -64 256 -49.67 256 -32V192H352C369.67 192 384 206.33 384 224V288C384 305.67 369.67 320 352 320z" />
    +    <glyph glyph-name="crosshairs"
    +      unicode="&#xF05B;"
    +      horiz-adv-x="512" d=" M500 224H469.636C455.724 317.675 381.675 391.724 288 405.636V436C288 442.627 282.627 448 276 448H236C229.373 448 224 442.627 224 436V405.636C130.325 391.724 56.276 317.675 42.364 224H12C5.373 224 0 218.627 0 212V172C0 165.373 5.373 160 12 160H42.364C56.276 66.325 130.325 -7.724 224 -21.636V-52C224 -58.627 229.373 -64 236 -64H276C282.627 -64 288 -58.627 288 -52V-21.636C381.675 -7.724 455.724 66.325 469.636 160H500C506.627 160 512 165.373 512 172V212C512 218.627 506.627 224 500 224zM288 43.366V84C288 90.627 282.627 96 276 96H236C229.373 96 224 90.627 224 84V43.366C165.826 55.768 119.783 101.757 107.366 160H148C154.627 160 160 165.373 160 172V212C160 218.627 154.627 224 148 224H107.366C119.768 282.174 165.757 328.217 224 340.634V300C224 293.373 229.373 288 236 288H276C282.627 288 288 293.373 288 300V340.634C346.174 328.232 392.217 282.243 404.634 224H364C357.373 224 352 218.627 352 212V172C352 165.373 357.373 160 364 160H404.634C392.2320000000001 101.826 346.243 55.783 288 43.366zM288 192C288 174.327 273.673 160 256 160S224 174.327 224 192C224 209.673 238.327 224 256 224S288 209.673 288 192z" />
    +    <glyph glyph-name="crow"
    +      unicode="&#xF520;"
    +      horiz-adv-x="640" d=" M544 416H527.64C513.04 435.32 490.09 448 464 448C419.82 448 384 412.18 384 368V347.02L12.09 54.43A30.216 30.216 0 0 1 0 30.26C0 7.8 23.64 -6.81 43.73 3.23L165.27 64H261.76L306.17 -56.1C308.44 -62.33 315.32 -65.5400000000001 321.55 -63.27L344.1 -55.0600000000001C350.33 -52.7900000000001 353.54 -45.9100000000001 351.27 -39.6800000000001L312.94 64H352C353.9100000000001 64 355.76 64.23 357.6600000000001 64.29L402.17 -56.09C404.44 -62.32 411.32 -65.53 417.55 -63.26L440.1 -55.05C446.3300000000001 -52.78 449.54 -45.9 447.2700000000001 -39.67L406.0300000000001 71.86C485.74 95.2 544 168.74 544 256V336L640 352C640 387.35 597.02 416 544 416zM464 344C450.75 344 440 354.75 440 368C440 381.26 450.75 392 464 392S488 381.26 488 368C488 354.75 477.25 344 464 344z" />
    +    <glyph glyph-name="crown"
    +      unicode="&#xF521;"
    +      horiz-adv-x="640" d=" M528 0H112C103.2 0 96 -7.2 96 -16V-48C96 -56.8 103.2 -64 112 -64H528C536.8 -64 544 -56.8 544 -48V-16C544 -7.2 536.8 0 528 0zM592 320C565.5 320 544 298.5 544 272C544 264.9 545.6 258.3 548.4 252.2L476 208.8C460.6 199.6 440.7 204.8 431.8 220.4L350.3 363C361 371.8 368 385 368 400C368 426.5 346.5 448 320 448S272 426.5 272 400C272 385 279 371.8 289.7 363L208.2 220.4C199.3 204.8 179.3 199.6 164 208.8L91.7 252.2C94.4 258.2000000000001 96.1 264.9 96.1 272C96.1 298.5 74.6 320 48.1 320S0 298.5 0 272S21.5 224 48 224C50.6 224 53.2 224.4 55.7 224.8L128 32H512L584.3 224.8C586.8 224.4 589.4 224 592 224C618.5 224 640 245.5 640 272S618.5 320 592 320z" />
    +    <glyph glyph-name="cube"
    +      unicode="&#xF1B2;"
    +      horiz-adv-x="512" d=" M239.1 441.7L31.1 363.7C12.4 356.7 0 338.7 0 318.7V93.6C0 75.4 10.3 58.8 26.5 50.7L234.5 -53.3C248 -60.1 263.9 -60.1 277.4 -53.3L485.4 50.7C501.7 58.8000000000001 511.9 75.5000000000001 511.9 93.6V318.7C511.9 338.7 499.5 356.6 480.8 363.6L272.8 441.6C262 445.8 250 445.8 239.1 441.7zM256 379.6L448 307.6V306.5L256 228.5L64 306.5V307.6L256 379.6zM288 23.6V172.5L448 237.5V103.6L288 23.6z" />
    +    <glyph glyph-name="cubes"
    +      unicode="&#xF1B3;"
    +      horiz-adv-x="512" d=" M488.6 197.8L392 234V342.5C392 357.5 382.7 370.9 368.6 376.2L268.6 413.7C260.5 416.8 251.5000000000001 416.8 243.3 413.7L143.3 376.2C129.2 370.9 119.9 357.5 119.9 342.5V234L23.3 197.8C9.3 192.5 0 179.1 0 164.1V54C0 40.4 7.7 27.9 19.9 21.8L119.9 -28.2C130 -33.3 142 -33.3 152.1 -28.2L256 23.8L359.9 -28.2C370 -33.3 382 -33.3 392.1 -28.2L492.1 21.8C504.3 27.9 511.9999999999999 40.4 511.9999999999999 54V164.1C511.9999999999999 179.1 502.6999999999999 192.5 488.6 197.8zM358 233.2L273 201.3V269.5L358 306.5V233.2zM154 343.9L256 382.1L358 343.9V343.3L256 301.9L154 343.3V343.9zM238 52.8L153 10.3V89.4L238 128.2V52.8zM238 164.8L136 123.4L34 164.8V165.4L136 203.6L238 165.4V164.8zM478 52.8L393 10.3V89.4L478 128.2V52.8zM478 164.8L376 123.4L274 164.8V165.4L376 203.6L478 165.4V164.8z" />
    +    <glyph glyph-name="cut"
    +      unicode="&#xF0C4;"
    +      horiz-adv-x="448" d=" M278.06 192L444.48 358.43C449.17 363.12 449.17 370.7200000000001 444.48 375.4C411.68 408.2 358.49 408.2 325.69 375.4L210.18 259.88L185.32 284.74C189.63 295.66 192 307.55 192 320C192 373.02 149.02 416 96 416S0 373.02 0 320S42.98 224 96 224C100.54 224 104.99 224.32 109.36 224.93L142.29 192L109.36 159.07C104.99 159.68 100.53 160 96 160C42.98 160 0 117.02 0 64S42.98 -32 96 -32S192 10.98 192 64C192 76.45 189.63 88.34 185.32 99.26L210.18 124.12L325.69 8.6C358.49 -24.2 411.68 -24.2 444.48 8.6C449.17 13.28 449.17 20.88 444.48 25.5700000000001L278.06 192zM96 288C78.36 288 64 302.36 64 320S78.36 352 96 352S128 337.64 128 320S113.64 288 96 288zM96 32C78.36 32 64 46.36 64 64S78.36 96 96 96S128 81.64 128 64S113.64 32 96 32z" />
    +    <glyph glyph-name="database"
    +      unicode="&#xF1C0;"
    +      horiz-adv-x="448" d=" M448 374.857V329.1430000000001C448 288.857 347.667 256 224 256S0 288.857 0 329.1430000000001V374.857C0 415.1430000000001 100.333 448 224 448S448 415.1430000000001 448 374.857zM448 272V169.143C448 128.857 347.667 96 224 96S0 128.857 0 169.143V272C48.125 238.857 136.208 223.428 224 223.428S399.874 238.857 448 272zM448 112V9.143C448 -31.143 347.667 -64 224 -64S0 -31.143 0 9.143V112C48.125 78.857 136.208 63.428 224 63.428S399.874 78.857 448 112z" />
    +    <glyph glyph-name="deaf"
    +      unicode="&#xF2A4;"
    +      horiz-adv-x="512" d=" M216 188C216 172.536 203.464 160 188 160S160 172.536 160 188C160 232.112 195.888 268 240 268S320 232.112 320 188C320 172.536 307.464 160 292 160S264 172.536 264 188C264 201.234 253.233 212 240 212S216 201.234 216 188zM240 364C142.953 364 64 285.0470000000001 64 188C64 172.536 76.536 160 92 160S120 172.536 120 188C120 254.168 173.832 308 240 308S360 254.168 360 188C360 112.836 288.991 117.689 288.003 44.378L288 44C288 15.327 264.673 -8 236 -8C220.536 -8 208 -20.536 208 -36S220.536 -64 236 -64C295.475 -64 343.876 -15.672 344 43.774C344.5950000000001 78.202 416 92.014 416 188C416 285.0470000000001 337.0470000000001 364 240 364zM508.485 416.201L480.2 444.485C475.513 449.171 467.916 449.171 463.229 444.485L376.2 357.456C371.514 352.77 371.514 345.1720000000001 376.2 340.485L404.485 312.2C409.171 307.514 416.769 307.514 421.4550000000001 312.2L508.485 399.229C513.172 403.917 513.172 411.515 508.485 416.201zM168.97 133.255C164.284 137.941 156.686 137.941 152 133.255L3.515 -15.23C-1.171 -19.916 -1.171 -27.514 3.515 -32.201L31.8 -60.485C36.487 -65.171 44.084 -65.171 48.771 -60.485L197.256 88C201.942 92.686 201.942 100.284 197.256 104.971L168.97 133.255z" />
    +    <glyph glyph-name="desktop"
    +      unicode="&#xF108;"
    +      horiz-adv-x="576" d=" M528 448H48C21.5 448 0 426.5 0 400V80C0 53.5 21.5 32 48 32H240L224 -16H152C138.7 -16 128 -26.7 128 -40S138.7 -64 152 -64H424C437.3 -64 448 -53.3 448 -40S437.3 -16 424 -16H352L336 32H528C554.5 32 576 53.5 576 80V400C576 426.5 554.5 448 528 448zM512 96H64V384H512V96z" />
    +    <glyph glyph-name="dharmachakra"
    +      unicode="&#xF655;"
    +      horiz-adv-x="512" d=" M495 222.94L477.78 221.86C472.51 261.35 456.99 297.5 433.92 327.7L446.87 339.13C453.79 345.24 454.1199999999999 355.92 447.6 362.44L426.44 383.6C419.9100000000001 390.13 409.23 389.79 403.13 382.87L391.7 369.93C361.5 392.99 325.35 408.51 285.87 413.79L286.94 431C287.52 440.21 280.2 448 270.97 448H241.03C231.8 448 224.49 440.21 225.06 431L226.14 413.78C186.65 408.51 150.5 392.99 120.31 369.92L108.88 382.87C102.77 389.79 92.09 390.12 85.57 383.6L64.4 362.44C57.87 355.91 58.21 345.23 65.13 339.13L78.08 327.7C55.02 297.5 39.5 261.35 34.22 221.86L17 222.94C7.79 223.52 0 216.2 0 206.97V177.03C0 167.8 7.79 160.49 17 161.06L34.22 162.1399999999999C39.49 122.6499999999999 55.01 86.4999999999999 78.08 56.31L65.13 44.8799999999999C58.21 38.7699999999999 57.88 28.0899999999999 64.4 21.5699999999999L85.57 0.3999999999999C92.1 -6.1300000000001 102.78 -5.7900000000001 108.88 1.1299999999999L120.31 14.0799999999999C150.51 -8.9800000000001 186.66 -24.5000000000001 226.15 -29.7800000000001L225.06 -47C224.48 -56.21 231.8 -64 241.03 -64H270.9700000000001C280.2000000000001 -64 287.5100000000001 -56.21 286.9400000000001 -47L285.8600000000001 -29.78C325.3500000000001 -24.51 361.5000000000001 -8.99 391.7000000000001 14.08L403.1300000000001 1.1300000000001C409.2400000000001 -5.79 419.9200000000001 -6.1199999999999 426.4400000000001 0.4L447.6100000000001 21.5700000000001C454.14 28.1 453.8000000000001 38.78 446.8800000000001 44.8800000000001L433.9300000000001 56.3100000000001C456.9900000000001 86.5100000000001 472.51 122.6600000000001 477.7900000000001 162.1400000000001L495.0100000000001 161.0600000000001C504.2200000000001 160.4800000000001 512.0100000000001 167.8000000000001 512.0100000000001 177.0300000000001V206.9700000000001C512.0000000000001 216.2000000000001 504.2100000000001 223.5100000000001 495.0000000000001 222.9400000000001zM281.84 349.39C306.65 345.32 329.47 335.73 349.07 321.61L306.45 273.32C297.72 278.76 288.13 282.86 277.83 285.27L281.84 349.39zM230.16 349.39L234.17 285.27C223.88 282.86 214.28 278.75 205.55 273.32L162.93 321.61C182.53 335.73 205.35 345.32 230.16 349.39zM126.39 285.06L174.69 242.45C169.25 233.72 165.15 224.12 162.73 213.83L98.61 217.84C102.68 242.65 112.27 265.46 126.39 285.06zM98.61 166.16L162.73 170.17C165.14 159.88 169.25 150.28 174.68 141.55L126.39 98.93C112.27 118.53 102.68 141.35 98.61 166.16zM230.16 34.61C205.35 38.68 182.53 48.27 162.93 62.39L205.54 110.69C214.27 105.25 223.87 101.15 234.16 98.73L230.16 34.61zM256 160C238.33 160 224 174.33 224 192S238.33 224 256 224S288 209.67 288 192S273.67 160 256 160zM281.84 34.61L277.83 98.73C288.12 101.14 297.72 105.25 306.45 110.69L349.06 62.39C329.46 48.27 306.65 38.68 281.8400000000001 34.61zM385.61 98.94L337.32 141.56C342.76 150.29 346.86 159.88 349.2699999999999 170.18L413.39 166.17C409.32 141.35 399.7299999999999 118.53 385.6099999999999 98.94zM349.27 213.83C346.86 224.12 342.75 233.72 337.31 242.45L385.61 285.06C399.73 265.4600000000001 409.32 242.64 413.39 217.83L349.27 213.83z" />
    +    <glyph glyph-name="diagnoses"
    +      unicode="&#xF470;"
    +      horiz-adv-x="640" d=" M496 192C504.8 192 512 199.2 512 208S504.8 224 496 224S480 216.8 480 208S487.2 192 496 192zM320 272C368.5 272 408 311.5 408 360S368.5 448 320 448S232 408.5 232 360S271.5 272 320 272zM59.8 84C70 68.7 89.1 66.2 102.7 74.2C118.9 83.8 158.9 105.9 208 122.8V32H432V122.7C481.1 105.9 521.1 83.7 537.3 74.1C550.9 66.1 570 68.8 580.1999999999999 83.9L597.9999999999999 110.6C606.7999999999998 123.8 605.5999999999999 145.2 587.9999999999999 155.7C576.0999999999999 162.8 558.2999999999998 172.7 536.8999999999999 183.1C508.7999999999998 137 437.4999999999999 165.3 449.1999999999999 218.2C409.3 230.8 365.1 240 320 240C263 240 207.1 225.5 160 207.8C159.8 167.6 112.4 144.5 80.8 171.8C69.6 165.8 59.5 160.2 52.1 155.8C34.5 145.3 33.3 124 42.1 110.7L59.8 84zM368 104C381.3 104 392 93.3 392 80S381.3 56 368 56S344 66.7 344 80S354.7 104 368 104zM272 200C285.3 200 296 189.3 296 176S285.3 152 272 152S248 162.7 248 176S258.7 200 272 200zM112 192C120.8 192 128 199.2 128 208S120.8 224 112 224S96 216.8 96 208S103.2 192 112 192zM624 0H16C7.2 0 0 -7.2 0 -16V-48C0 -56.8 7.2 -64 16 -64H624C632.8 -64 640 -56.8 640 -48V-16C640 -7.2 632.8 0 624 0z" />
    +    <glyph glyph-name="dice-d20"
    +      unicode="&#xF6CF;"
    +      horiz-adv-x="480" d=" M106.75 232.94L1.2 77.05C-1.88 72.05 1.3 65.55 7.13 64.91L215.39 42.84L106.75 232.9400000000001zM7.41 132.57L82.7 254.92L6.06 300.9C3.39 302.5 0 300.5800000000001 0 297.4700000000001V134.66C0 130.63 5.29 129.13 7.41 132.57zM18.25 24.4L212.65 -63.26C217.95 -65.71 224 -61.83 224 -56V9.67L20.45 31.97C16 32.47 14.22 26.3800000000001 18.25 24.4zM99.47 282.18L179.4 425.12C183.74 432.18 175.81 440.37 168.62 436.26L17.81 337.65C15.34 336.03 15.42 332.39 17.94 330.87L99.47 282.18zM240 272H349.21L253.63 440.38C250.5 445.46 245.25 448 240 448S229.5 445.46 226.37 440.38L130.79 272H240zM473.94 300.9L397.3 254.91L472.59 132.56C474.7 129.12 480.0000000000001 130.62 480.0000000000001 134.66V297.4700000000001C480.0000000000001 300.5800000000001 476.6100000000001 302.5 473.9400000000001 300.9zM380.53 282.18L462.0599999999999 330.88C464.5899999999999 332.4 464.66 336.04 462.1899999999999 337.6600000000001L311.38 436.26C304.19 440.37 296.26 432.18 300.6 425.12L380.53 282.18zM459.55 31.97L256 9.68V-55.99C256 -61.83 262.05 -65.7 267.35 -63.25L461.75 24.41C465.78 26.38 464 32.47 459.55 31.97zM373.25 232.9400000000001L264.62 42.84L472.8799999999999 64.91C478.7099999999999 65.56 481.8899999999999 72.05 478.8099999999999 77.05L373.25 232.94zM240 240H139.57L240 64.25L340.43 240H240z" />
    +    <glyph glyph-name="dice-d6"
    +      unicode="&#xF6D1;"
    +      horiz-adv-x="448" d=" M422.19 338.05L256.21 438.93C236.3 451.03 211.69 451.03 191.78 438.93L25.81 338.05C20.49 334.82 20.52 326.78 25.87 323.5900000000001L224 205.45L422.14 323.59C427.49 326.78 427.52 334.81 422.19 338.05zM436.03 293.42L240 176.54V-47.28C240 -60.16 253.39 -68.1899999999999 264.05 -61.71L416.2100000000001 30.77C435.8900000000001 42.73 448.0000000000001 64.71 448.0000000000001 88.47V286.17C448.0000000000001 292.5800000000001 441.3600000000001 296.6 436.0300000000001 293.42zM0 286.17V88.47C0 64.7000000000001 12.11 42.73 31.79 30.77L183.95 -61.6999999999999C194.62 -68.1799999999999 208 -60.1599999999999 208 -47.2699999999999V176.54L11.97 293.42C6.64 296.6 0 292.5800000000001 0 286.17z" />
    +    <glyph glyph-name="dice-five"
    +      unicode="&#xF523;"
    +      horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM128 64C110.33 64 96 78.33 96 96S110.33 128 128 128S160 113.67 160 96S145.67 64 128 64zM128 256C110.33 256 96 270.3300000000001 96 288S110.33 320 128 320S160 305.67 160 288S145.67 256 128 256zM224 160C206.33 160 192 174.33 192 192S206.33 224 224 224S256 209.67 256 192S241.67 160 224 160zM320 64C302.33 64 288 78.33 288 96S302.33 128 320 128S352 113.67 352 96S337.67 64 320 64zM320 256C302.33 256 288 270.3300000000001 288 288S302.33 320 320 320S352 305.67 352 288S337.67 256 320 256z" />
    +    <glyph glyph-name="dice-four"
    +      unicode="&#xF524;"
    +      horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM128 64C110.33 64 96 78.33 96 96S110.33 128 128 128S160 113.67 160 96S145.67 64 128 64zM128 256C110.33 256 96 270.3300000000001 96 288S110.33 320 128 320S160 305.67 160 288S145.67 256 128 256zM320 64C302.33 64 288 78.33 288 96S302.33 128 320 128S352 113.67 352 96S337.67 64 320 64zM320 256C302.33 256 288 270.3300000000001 288 288S302.33 320 320 320S352 305.67 352 288S337.67 256 320 256z" />
    +    <glyph glyph-name="dice-one"
    +      unicode="&#xF525;"
    +      horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM224 160C206.33 160 192 174.33 192 192S206.33 224 224 224S256 209.67 256 192S241.67 160 224 160z" />
    +    <glyph glyph-name="dice-six"
    +      unicode="&#xF526;"
    +      horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM128 64C110.33 64 96 78.33 96 96S110.33 128 128 128S160 113.67 160 96S145.67 64 128 64zM128 160C110.33 160 96 174.33 96 192S110.33 224 128 224S160 209.67 160 192S145.67 160 128 160zM128 256C110.33 256 96 270.3300000000001 96 288S110.33 320 128 320S160 305.67 160 288S145.67 256 128 256zM320 64C302.33 64 288 78.33 288 96S302.33 128 320 128S352 113.67 352 96S337.67 64 320 64zM320 160C302.33 160 288 174.33 288 192S302.33 224 320 224S352 209.67 352 192S337.67 160 320 160zM320 256C302.33 256 288 270.3300000000001 288 288S302.33 320 320 320S352 305.67 352 288S337.67 256 320 256z" />
    +    <glyph glyph-name="dice-three"
    +      unicode="&#xF527;"
    +      horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM128 256C110.33 256 96 270.3300000000001 96 288S110.33 320 128 320S160 305.67 160 288S145.67 256 128 256zM224 160C206.33 160 192 174.33 192 192S206.33 224 224 224S256 209.67 256 192S241.67 160 224 160zM320 64C302.33 64 288 78.33 288 96S302.33 128 320 128S352 113.67 352 96S337.67 64 320 64z" />
    +    <glyph glyph-name="dice-two"
    +      unicode="&#xF528;"
    +      horiz-adv-x="448" d=" M384 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H384C419.35 -32 448 -3.35 448 32V352C448 387.35 419.35 416 384 416zM128 256C110.33 256 96 270.3300000000001 96 288S110.33 320 128 320S160 305.67 160 288S145.67 256 128 256zM320 64C302.33 64 288 78.33 288 96S302.33 128 320 128S352 113.67 352 96S337.67 64 320 64z" />
    +    <glyph glyph-name="dice"
    +      unicode="&#xF522;"
    +      horiz-adv-x="640" d=" M592 256H473.26C485.95 226.41 480.38 190.8 456.26 166.68L320 30.42V-16C320 -42.51 341.49 -64 368 -64H592C618.51 -64 640 -42.51 640 -16V208C640 234.51 618.51 256 592 256zM480 72C466.75 72 456 82.75 456 96C456 109.26 466.75 120 480 120S504 109.26 504 96C504 82.75 493.25 72 480 72zM433.63 258.7L258.7 433.63C239.54 452.79 208.47 452.79 189.31 433.63L14.37 258.7C-4.79 239.54 -4.79 208.47 14.37 189.31L189.3 14.37C208.46 -4.79 239.53 -4.79 258.69 14.37L433.63 189.3C452.79 208.47 452.79 239.54 433.63 258.7000000000001zM96 200C82.75 200 72 210.75 72 224C72 237.26 82.75 248 96 248S120 237.26 120 224C120 210.75 109.25 200 96 200zM224 72C210.75 72 200 82.75 200 96C200 109.26 210.75 120 224 120S248 109.26 248 96C248 82.75 237.25 72 224 72zM224 200C210.75 200 200 210.75 200 224C200 237.26 210.75 248 224 248S248 237.26 248 224C248 210.75 237.25 200 224 200zM224 328C210.75 328 200 338.75 200 352C200 365.26 210.75 376 224 376S248 365.26 248 352C248 338.75 237.25 328 224 328zM352 200C338.75 200 328 210.75 328 224C328 237.26 338.75 248 352 248S376 237.26 376 224C376 210.75 365.25 200 352 200z" />
    +    <glyph glyph-name="digital-tachograph"
    +      unicode="&#xF566;"
    +      horiz-adv-x="640" d=" M608 352H32C14.33 352 0 337.67 0 320V64C0 46.33 14.33 32 32 32H608C625.67 32 640 46.33 640 64V320C640 337.67 625.67 352 608 352zM304 96C304 91.58 300.42 88 296 88H72C67.58 88 64 91.58 64 96V104C64 108.42 67.58 112 72 112H296C300.42 112 304 108.42 304 104V96zM72 160V176C72 180.42 75.58 184 80 184H96C100.42 184 104 180.42 104 176V160C104 155.58 100.42 152 96 152H80C75.58 152 72 155.58 72 160zM136 160V176C136 180.42 139.58 184 144 184H160C164.42 184 168 180.42 168 176V160C168 155.58 164.42 152 160 152H144C139.58 152 136 155.58 136 160zM200 160V176C200 180.42 203.58 184 208 184H224C228.42 184 232 180.42 232 176V160C232 155.58 228.42 152 224 152H208C203.58 152 200 155.58 200 160zM264 160V176C264 180.42 267.58 184 272 184H288C292.42 184 296 180.42 296 176V160C296 155.58 292.42 152 288 152H272C267.58 152 264 155.58 264 160zM304 224C304 215.16 296.84 208 288 208H80C71.16 208 64 215.16 64 224V272C64 280.8400000000001 71.16 288 80 288H288C296.84 288 304 280.8400000000001 304 272V224zM576 96C576 91.58 572.42 88 568 88H344C339.58 88 336 91.58 336 96V104C336 108.42 339.58 112 344 112H568C572.42 112 576 108.42 576 104V96z" />
    +    <glyph glyph-name="directions"
    +      unicode="&#xF5EB;"
    +      horiz-adv-x="512" d=" M502.61 214.68L278.68 438.61C266.1600000000001 451.13 245.85 451.13 233.32 438.61L9.39 214.68C-3.13 202.15 -3.13 181.85 9.39 169.32L233.32 -54.61C245.84 -67.14 266.15 -67.14 278.68 -54.61L502.61 169.32C515.13 181.85 515.13 202.15 502.61 214.68zM401.63 202.12L317.42 124.39C312.3 119.66 303.99 123.29 303.99 130.27V184H207.99V120C207.99 115.58 204.41 112 199.99 112H167.99C163.57 112 159.99 115.58 159.99 120V200C159.99 217.67 174.32 232 191.99 232H303.99V285.73C303.99 292.7 312.29 296.34 317.42 291.61L401.63 213.88C405.06 210.71 405.06 205.29 401.63 202.12z" />
    +    <glyph glyph-name="divide"
    +      unicode="&#xF529;"
    +      horiz-adv-x="448" d=" M224 96C188.65 96 160 67.35 160 32S188.65 -32 224 -32S288 -3.35 288 32S259.35 96 224 96zM224 288C259.35 288 288 316.65 288 352S259.35 416 224 416S160 387.35 160 352S188.65 288 224 288zM416 240H32C14.33 240 0 225.67 0 208V176C0 158.33 14.33 144 32 144H416C433.67 144 448 158.33 448 176V208C448 225.67 433.67 240 416 240z" />
    +    <glyph glyph-name="dizzy"
    +      unicode="&#xF567;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM152 233.4L123.3 204.7C108.5 189.9 85.5 212.2 100.7 227.3L129.4 256L100.7 284.7C85.7 299.7 108.4 322.3 123.3 307.3L152 278.6L180.7 307.3C195.7 322.3 218.3 299.6 203.3 284.7L174.6 256L203.3 227.3C218.5 212.1 195.4 189.9 180.7 204.7L152 233.4zM248 32C212.7 32 184 60.7 184 96S212.7 160 248 160S312 131.3 312 96S283.3 32 248 32zM395.3 227.3C410.5 212.1 387.4000000000001 189.9 372.7 204.7L344 233.4L315.3 204.7C300.5 189.9 277.5 212.2 292.7 227.3L321.4 256L292.7 284.7C277.7 299.7 300.4 322.3 315.3 307.3L344 278.6L372.7 307.3C387.7 322.3 410.3 299.6 395.3 284.7L366.6 256L395.3 227.3z" />
    +    <glyph glyph-name="dna"
    +      unicode="&#xF471;"
    +      horiz-adv-x="448" d=" M0.1 -46.1C-1 -55.6 6.4 -63.9 16 -63.9L48.3 -64C56.4 -64 63.2 -58.1 64.3 -50.1C65 -45.2 66.1 -39 67.7 -32H380C381.6 -38.9 382.9 -45.2 383.5 -50.1C384.6 -58.1 391.4 -64.1 399.5 -64L431.8 -63.9C441.4000000000001 -63.9 448.9000000000001 -55.6 447.7 -46.1C443.1 -8.2 422.1 82.9 328.8 161.6C311.2 149.2000000000001 291.7 137.4 270.3 126.2000000000001C276.5 121.6 281.7 116.8000000000001 287.3 112.0000000000001H159.7C181 130.1000000000001 206.7 147.6000000000001 238.4 163.4C410.5 248.9 442.1 382.2 447.9 430.1C449 439.6 441.6 447.9 432 447.9L399.6 448C391.5 448 384.7000000000001 442.1 383.6 434.1C382.9000000000001 429.2 381.8 423 380.2000000000001 416H67.8C66.2 423 65.1 429.1 64.4 434.1C63.3 442.1 56.5 448.1 48.4 448L16.1 447.9C6.5 447.9 -1 439.6 0.1 430.1C5.3 387.2 31.4 276.2 160 192C31.5 107.8 5.3 -3.2 0.1 -46.1zM224 228.4C198.9 242.1 177.6 256.8 159.7 272H288.2C270.4 256.8 249.1 242 224 228.4zM355.1 352C349.3 341.6 342.3 330.9 334.1 320H114C105.7 330.9 98.7 341.6 93 352H355.1zM92.9 32C98.7 42.4 105.7 53.1 113.9 64H333.3C341.6 53.1 348.7 42.4 354.5 32H92.9z" />
    +    <glyph glyph-name="dog"
    +      unicode="&#xF6D3;"
    +      horiz-adv-x="512" d=" M496 352H432L424.84 366.31A32 32 0 0 1 396.2200000000001 384H342.6L315.3200000000001 411.28C305.23 421.36 288 414.2200000000001 288 399.9700000000001V250.13L416 204.42V240H448C483.35 240 512 268.65 512 304V336C512 344.8400000000001 504.84 352 496 352zM384 304C375.1600000000001 304 368 311.16 368 320S375.1600000000001 336 384 336S400 328.8400000000001 400 320S392.84 304 384 304zM96 224C78.36 224 64 238.36 64 256C64 273.67 49.67 288 32 288S0 273.67 0 256C0 214.34 26.83 179.15 64 165.9V-48C64 -56.84 71.16 -64 80 -64H144C152.84 -64 160 -56.84 160 -48V64H320V-48C320 -56.84 327.1600000000001 -64 336 -64H400C408.84 -64 416 -56.84 416 -48V170.45L266.05 224H96z" />
    +    <glyph glyph-name="dollar-sign"
    +      unicode="&#xF155;"
    +      horiz-adv-x="288" d=" M209.2 214.6L101.2 246.2C88.7 249.8 80 261.5 80 274.5C80 290.8 93.2 304 109.5 304H175.8C188 304 200 300.3 210 293.5C216.1 289.4 224.3 290.4 229.5 295.5L264.3 329.5C271.4000000000001 336.4 270.4000000000001 347.9 262.5 354C238 373.2 207.4 383.9 176 384V432C176 440.8 168.8 448 160 448H128C119.2 448 112 440.8 112 432V384H109.5C45.8 384 -5.4 329.3 0.5 264.4C4.7 218.3 39.9 180.8 84.3 167.8L186.8 137.8C199.3 134.1 208 122.5 208 109.5C208 93.2 194.8 80 178.5 80H112.2C100 80 88 83.7 78 90.5C71.9 94.6 63.7 93.6 58.5 88.5L23.7 54.5C16.6 47.6 17.6 36.1 25.5 30C50 10.8 80.6 0.1 112 0V-48C112 -56.8 119.2 -64 128 -64H160C168.8 -64 176 -56.8 176 -48V0.2C222.6 1.1 266.3 28.8 281.7 72.9C303.2 134.5 267.1 197.7 209.2 214.6z" />
    +    <glyph glyph-name="dolly-flatbed"
    +      unicode="&#xF474;"
    +      horiz-adv-x="640" d=" M208 128H592C600.8 128 608 135.2 608 144V400C608 408.8 600.8 416 592 416H448V288L400 320L352 288V416H208C199.2 416 192 408.8 192 400V144C192 135.2 199.2 128 208 128zM624 64H128V432C128 440.8 120.8 448 112 448H16C7.2 448 0 440.8 0 432V400C0 391.2 7.2 384 16 384H64V16C64 7.2 71.2 0 80 0H162.9C161.1 -5 160 -10.4 160 -16C160 -42.5 181.5 -64 208 -64S256 -42.5 256 -16C256 -10.4 254.8 -5 253.1 0H451C449.2 -5 448.1 -10.4 448.1 -16C448.1 -42.5 469.6 -64 496.1 -64S544.1 -42.5 544.1 -16C544.1 -10.4 542.9 -5 541.2 0H624C632.8 0 640 7.2 640 16V48C640 56.8 632.8 64 624 64z" />
    +    <glyph glyph-name="dolly"
    +      unicode="&#xF472;"
    +      horiz-adv-x="576" d=" M294.2 170.3C312.2 165.3 328.9 156.9 343.7 145.6L505.2 199.4C513.6 202.2000000000001 518.1 211.3000000000001 515.3 219.6L454.9 400.8C452.1 409.2 443 413.7 434.7 410.9L373.6 390.5L406.7 291.1L346 271L312.9 370.4L251.3 349.9C242.9 347.1 238.4 338 241.2 329.7L294.2 170.3zM575.2 121.6L565 152C562.2 160.4 553.1 164.9 544.8 162.1L331.3 90.9C314.1 112.9 287.7 127.3 257.8 127.9L158.4 426.1C154 439.2 141.8 448 128 448H16C7.2 448 0 440.8 0 432V400C0 391.2 7.2 384 16 384H104.9L197.1 107.3C171 86.9 155.4 53.7 161.1 16.8C167.2 -22.6 199 -55.5 238.4000000000001 -62.4C298.6 -73.1 350.7000000000001 -27.6 351.8000000000001 30.2L565.1000000000001 101.4C573.4000000000001 104.2000000000001 578.0000000000001 113.2000000000001 575.2000000000002 121.6zM256 -16C229.5 -16 208 5.5 208 32S229.5 80 256 80S304 58.5 304 32S282.5 -16 256 -16z" />
    +    <glyph glyph-name="donate"
    +      unicode="&#xF4B9;"
    +      horiz-adv-x="512" d=" M256 32C370.9 32 464 125.1 464 240S370.9 448 256 448S48 354.9 48 240S141.1 32 256 32zM233.8 350.6V367.4C233.8 376.6 241.2 384 250.4 384H261.5C270.7 384 278.1 376.6 278.1 367.4V350.4C293.6 349.6 308.6 344.3 321.1 335C326.7000000000001 330.9 327.3 322.7 322.3 317.9L306 302.4C302.2 298.7000000000001 296.5 298.6 292 301.4C286.6 304.8 280.6 306.5 274.2 306.5H235.3C226.3 306.5 219 298.3 219 288.2C219 280 224 272.7 231.1 270.6L293.4 251.9C319.1 244.2 337.1 219.5 337.1 191.8C337.1 157.8 310.7 130.3 278 129.4V112.6C278 103.4 270.6 96 261.3999999999999 96H250.3C241.1 96 233.7 103.4 233.7 112.6V129.6C218.1999999999999 130.4 203.1999999999999 135.7000000000001 190.6999999999999 145C185.0999999999999 149.1 184.5 157.3 189.5 162.1L205.8 177.6C209.6 181.3 215.3 181.4 219.8 178.6C225.2 175.2000000000001 231.2 173.5 237.6 173.5H276.5C285.5 173.5 292.8 181.7 292.8 191.8C292.8 200 287.8 207.3 280.7 209.4L218.3999999999999 228.1C192.6999999999999 235.8 174.6999999999999 260.5 174.6999999999999 288.2C174.7999999999999 322.2 201.0999999999999 349.7 233.8 350.6zM480 96H447.5C427.9 70 402.9 48.3 374.5 32H438.3C443.6 32 447.9000000000001 28.4 447.9000000000001 24V8C447.9000000000001 3.6 443.6 0 438.3 0H73.6C68.3 0 64 3.6 64 8V24C64 28.4 68.3 32 73.6 32H137.4C109 48.3 84.1 70 64.4 96H32C14.3 96 0 81.7 0 64V-32C0 -49.7 14.3 -64 32 -64H480C497.7 -64 512 -49.7 512 -32V64C512 81.7 497.7 96 480 96z" />
    +    <glyph glyph-name="door-closed"
    +      unicode="&#xF52A;"
    +      horiz-adv-x="640" d=" M624 0H512V397.2C512 425.2200000000001 490.47 448 464 448H175.99C149.52 448 127.99 425.2200000000001 127.99 397.2V0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H624C632.84 -64 640 -56.84 640 -48V-16C640 -7.16 632.84 0 624 0zM415.99 160C398.32 160 383.99 174.33 383.99 192S398.32 224 415.99 224S447.99 209.67 447.99 192C448 174.33 433.67 160 415.99 160z" />
    +    <glyph glyph-name="door-open"
    +      unicode="&#xF52B;"
    +      horiz-adv-x="640" d=" M624 0H544V334.55C544 361.81 522.47 384 496 384H384V320H480V-64H624C632.84 -64 640 -56.84 640 -48V-16C640 -7.16 632.84 0 624 0zM312.24 446.99L120.24 397.25C105.99 393.56 96 380.3 96 365.08V0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H352V414.82C352 436.4 332.44 452.23 312.24 446.99zM264 160C250.75 160 240 174.33 240 192S250.75 224 264 224S288 209.67 288 192S277.25 160 264 160z" />
    +    <glyph glyph-name="dot-circle"
    +      unicode="&#xF192;"
    +      horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM336 192C336 147.888 300.112 112 256 112S176 147.888 176 192S211.888 272 256 272S336 236.112 336 192z" />
    +    <glyph glyph-name="dove"
    +      unicode="&#xF4BA;"
    +      horiz-adv-x="512" d=" M288 280.8V308.9C259.8 345.2 240.9 388.2 233.9 434.1C231.8 447.6 214.9 452.9 206.1 442.4000000000001C185 417.5 168.4 388.3 157.2 355.9C191.4 317.6 237.2 291.3 288 280.8zM400 384C355.8 384 320 348.1 320 303.9V244.5C215.6 250.7 127 315 87 406.2C81.5 418.7 63.8 419.4 58 407.1C41.4 372 32 332.8 32 291.4C32 220.6 66.1 154.5 117.1 105.5C130.3 92.8 143.2 82.3 156 72.7L12.1 36.7C1.4 34 -3.4 21.6 2.6 12.3C20 -14.6 63 -60.2 155.8 -64C163.8 -64.2999999999999 171.8 -61.4 177.9 -56.1L243.1 0H320C408.4 0 480 71.5 480 159.9V320L512 384H400zM400 287.9C391.2 287.9 384 295.1 384 303.9S391.2 319.9 400 319.9S416 312.7000000000001 416 303.9S408.8 287.9 400 287.9z" />
    +    <glyph glyph-name="download"
    +      unicode="&#xF019;"
    +      horiz-adv-x="512" d=" M216 448H296C309.3 448 320 437.3 320 424V256H407.7C425.5 256 434.4 234.5 421.8 221.9L269.7 69.7C262.2 62.2 249.9 62.2 242.4 69.7L90.1 221.9C77.5 234.5 86.4 256 104.2 256H192V424C192 437.3 202.7 448 216 448zM512 72V-40C512 -53.3 501.3 -64 488 -64H24C10.7 -64 0 -53.3 0 -40V72C0 85.3 10.7 96 24 96H170.7L219.7 47C239.8 26.9 272.2 26.9 292.3 47L341.3 96H488C501.3 96 512 85.3 512 72zM388 -16C388 -5 379 4 368 4S348 -5 348 -16S357 -36 368 -36S388 -27 388 -16zM452 -16C452 -5 443 4 432 4S412 -5 412 -16S421 -36 432 -36S452 -27 452 -16z" />
    +    <glyph glyph-name="drafting-compass"
    +      unicode="&#xF568;"
    +      horiz-adv-x="512" d=" M457.01 103.58C431.96 83.25 404.38 66.4 374.47 54.53L428.85 -39.66L482.8 -62.7C492.61 -66.8900000000001 503.6899999999999 -60.4900000000001 504.97 -49.9L511.99 8.35L457.0099999999999 103.58zM499.5 198.14C504.36 205.81 501.39 216.13 493.45 220.53L465.38 236.1C457.9 240.25 448.77 237.56 444.12 230.38C403.01 166.85 332.25 128 256 128C232.07 128 208.77 132.25 186.59 139.53L253.95 256.21C254.65 256.19 255.29 256 255.99 256S257.34 256.19 258.03 256.21L309.12 167.71C340.35 176.67 368.68 193.46 391.73 216.63L339.94 306.34C347.39 319.9700000000001 352 335.37 352 352C352 405.02 309.02 448 256 448S160 405.02 160 352C160 335.37 164.61 319.9700000000001 172.05 306.3400000000001L103.75 188.03C91.2 199.64 79.79 212.62 70.07 227.03C65.28 234.13 56.1 236.65 48.69 232.36L20.94 216.29C13.09 211.75 10.31 201.39 15.3 193.82C30.87 170.18 49.99 149.61 71.28 131.8L0 8.34L7.02 -49.91C8.3 -60.5 19.38 -66.9 29.19 -62.71L83.14 -39.67L153.94 82.96C186.13 70.72 220.62 64 256 64C355.05 64 446.88 115.01 499.5 198.14zM256 384C273.67 384 288 369.67 288 352S273.67 320 256 320S224 334.33 224 352S238.33 384 256 384z" />
    +    <glyph glyph-name="dragon"
    +      unicode="&#xF6D5;"
    +      horiz-adv-x="640" d=" M18.32 192.22L192 224.04L100.72 155.35C90.64 145.2700000000001 97.78 128.04 112.03 128.04H334.73C325.29 154.44 320 182.51 320 211.42V253.6900000000001L200.27 341.29C176.45 357.17 144.98 355.3 123.21 336.7000000000001L5.81 220.36C-6.57 210.03 2.36 189.94 18.32 192.22zM575.19 158.12L474.5300000000001 208.43A47.992 47.992 0 0 0 448 251.35V288.04H512L540.09 265.41C546.09 259.41 554.23 256.04 562.72 256.04H593.69A32 32 0 0 1 622.3100000000001 273.73L636.62 302.35A32.005 32.005 0 0 1 633.6 335.86L559.07 435.24C553.02 443.3 543.54 448 533.47 448H296.02C288.89 448 285.32 439.43 290.36 434.39L352 384.04L292.42 359.2C286.5200000000001 356.25 286.5200000000001 347.8400000000001 292.42 344.89L352 320.04V211.42C352 139.34 388.03 72.03 448 32.04C252.41 25.23 103.44 -8.97 13.9 -28.87C5.78 -30.67 0 -37.88 0 -46.2C0 -56 7.95 -64 17.76 -64H516.84C580.13 -64.01 636.45 -16.44 639.83 46.76C642.35 94.04 617.1 137.16 575.19 158.12zM489.18 381.75L534.83 370.3400000000001C532.08 359.43 522.36 351.45 510.7 352.08C497.7400000000001 352.79 484.85 364.61 489.1800000000001 381.75z" />
    +    <glyph glyph-name="draw-polygon"
    +      unicode="&#xF5EE;"
    +      horiz-adv-x="448" d=" M384 96C383.65 96 383.33 95.9 382.98 95.9L343.7800000000001 161.22C348.85 170.39 352.0000000000001 180.78 352.0000000000001 192S348.8600000000001 213.61 343.7800000000001 222.78L382.98 288.1C383.3300000000001 288.0900000000001 383.6500000000001 288 384 288C419.35 288 448 316.65 448 352S419.35 416 384 416C360.37 416 339.96 403.05 328.88 384H119.12C108.04 403.05 87.63 416 64 416C28.65 416 0 387.35 0 352C0 328.37 12.95 307.9600000000001 32 296.88V87.13C12.95 76.04 0 55.63 0 32C0 -3.35 28.65 -32 64 -32C87.63 -32 108.04 -19.05 119.12 0H328.87C339.96 -19.05 360.36 -32 383.99 -32C419.3400000000001 -32 447.99 -3.35 447.99 32C448 67.35 419.35 96 384 96zM96 87.12V296.88A63.824999999999996 63.824999999999996 0 0 1 119.12 320H327.48L289.0200000000001 255.9C288.67 255.91 288.35 256 288.0000000000001 256C252.6500000000001 256 224.0000000000001 227.35 224.0000000000001 192S252.6500000000001 128 288.0000000000001 128C288.3500000000001 128 288.6700000000001 128.1 289.0200000000001 128.1L327.48 64H119.12A63.748000000000005 63.748000000000005 0 0 1 96 87.12zM272 192C272 200.82 279.18 208 288 208S304 200.82 304 192S296.82 176 288 176S272 183.18 272 192zM400 352C400 343.18 392.82 336 384 336S368 343.18 368 352S375.18 368 384 368S400 360.82 400 352zM64 368C72.82 368 80 360.82 80 352S72.82 336 64 336S48 343.18 48 352S55.18 368 64 368zM48 32C48 40.82 55.18 48 64 48S80 40.82 80 32S72.82 16 64 16S48 23.18 48 32zM384 16C375.18 16 368 23.18 368 32S375.18 48 384 48S400 40.82 400 32S392.82 16 384 16z" />
    +    <glyph glyph-name="drum-steelpan"
    +      unicode="&#xF56A;"
    +      horiz-adv-x="576" d=" M288 416C128.94 416 0 358.69 0 288V96C0 25.31 128.94 -32 288 -32S576 25.31 576 96V288C576 358.69 447.06 416 288 416zM205.01 257.64C200.56 241.03 190.47 227.07 176.7 217.16C100.23 230.54 48 257.2200000000001 48 288C48 318.16 98.11 344.39 172.04 358.03L197.64 313.69C207.5 296.6 210.12 276.7 205.01 257.64zM288 208C266.92 208 246.59 209 227.11 210.7C235.17 236.83 259.26 256 288 256S340.83 236.83 348.89 210.7C329.4100000000001 209 309.08 208 288 208zM352 352C352 316.7100000000001 323.29 288 288 288S224 316.7100000000001 224 352V365.04C244.4 366.92 265.8 368 288 368S331.6 366.92 352 365.04V352zM398.93 217.1C385.12 227.01 374.99 241 370.5300000000001 257.64C365.42 276.7 368.04 296.6 377.9100000000001 313.68L403.56 358.1C477.72 344.5 528 318.2100000000001 528 288C528 257.17 475.6 230.46 398.93 217.1z" />
    +    <glyph glyph-name="drum"
    +      unicode="&#xF569;"
    +      horiz-adv-x="576" d=" M458.08 327.12L560.47 388.55C575.63 397.64 580.53 417.3 571.44 432.46C562.34 447.61 542.7 452.53 527.53 443.43L366.84 347.02A629.3200000000002 629.3200000000002 0 0 1 288 352C128.94 352 0 294.69 0 224V63.17C0 32.71 24.03 4.77 64 -17.2V79.17C64 96.77 78.4 111.17 96 111.17S128 96.77 128 79.17V-43.24C165.4 -54.37 209 -61.68 256 -63.99V47.16C256 64.7600000000001 270.4 79.16 288 79.16S320 64.7600000000001 320 47.16V-64C367 -61.69 410.6 -54.38 448 -43.25V79.16C448 96.7600000000001 462.4 111.16 480 111.16S512 96.7600000000001 512 79.16V-17.21C551.97 4.76 576 32.7 576 63.16V223.99C575.99 266.37 529.46 303.8300000000001 458.08 327.12zM288 144C155.45 144 48 179.82 48 224S155.45 304 288 304C290.34 304 292.62 303.9 294.94 303.88L207.53 251.44C192.37 242.35 187.47 222.69 196.56 207.53C206.12 191.6 226.07 187.92 240.47 196.56L403.18 294.18C477.55 280.5900000000001 528 254.26 528 223.99C528 179.81 420.54 144 288 144z" />
    +    <glyph glyph-name="drumstick-bite"
    +      unicode="&#xF6D7;"
    +      horiz-adv-x="512" d=" M462.79 398.43C396.6500000000001 464.52 289.43 464.52 223.29 398.43C187.81 362.98 160.12 320 160.12 256V170.17L119.5 129.5800000000001C109.8 119.8900000000001 95.46 118.5100000000001 82.72 123.6C61 132.28 35.3 127.8900000000001 17.7 110.31C-5.91 86.72 -5.91 48.47 17.7 24.88C32.98 9.61 54.23 5.3 73.84 9.79C69.34 -9.81 73.66 -31.04 88.94 -46.31C112.55 -69.9 150.82 -69.9 174.43 -46.31C192.03 -28.73 196.42 -3.05 187.74 18.66C182.65 31.39 184.02 45.71 193.73 55.41L234.35 96H320.24C343.44 96 363.81 99.72 382.13 106.03C342.49 149.92 342.3 216.26 383.18 257.1C417.56 291.46 469.94 296.56 511.92 273.9C513.22 318.83 497.11 364.15 462.79 398.43z" />
    +    <glyph glyph-name="dumbbell"
    +      unicode="&#xF44B;"
    +      horiz-adv-x="640" d=" M104 352H56C42.7 352 32 341.3 32 328V224H8C3.6 224 0 220.4 0 216V168C0 163.6 3.6 160 8 160H32V56C32 42.7 42.7 32 56 32H104C117.3 32 128 42.7 128 56V328C128 341.3 117.3 352 104 352zM632 224H608V328C608 341.3 597.3 352 584 352H536C522.7 352 512 341.3 512 328V56C512 42.7 522.7 32 536 32H584C597.3 32 608 42.7 608 56V160H632C636.4 160 640 163.6 640 168V216C640 220.4 636.4 224 632 224zM456 416H408C394.7 416 384 405.3 384 392V224H256V392C256 405.3 245.3 416 232 416H184C170.7 416 160 405.3 160 392V-8C160 -21.3 170.7 -32 184 -32H232C245.3 -32 256 -21.3 256 -8V160H384V-8C384 -21.3 394.7 -32 408 -32H456C469.3 -32 480 -21.3 480 -8V392C480 405.3 469.3 416 456 416z" />
    +    <glyph glyph-name="dungeon"
    +      unicode="&#xF6D9;"
    +      horiz-adv-x="512" d=" M128.73 252.68L45.92 304.44C37.88 309.4600000000001 26.93 306.61 22.99 297.99A254.18999999999997 254.18999999999997 0 0 1 0.54 208.72C-0.05 199.63 7.59 192 16.69 192H113.82C121.78 192 127.9 198.25 128.83 206.16C129.92 215.49 132.07 224.49 135.07 233.1C137.63 240.44 135.32 248.56 128.73 252.68zM319.03 440C298.86 445.18 277.77 448 256 448S213.14 445.18 192.97 440C183.8 437.65 179.06 427.4 182.58 418.61L220.05 314.58A16.003 16.003 0 0 1 235.1 304H276.9C283.65 304 289.67 308.23 291.95 314.5800000000001L329.42 418.61C332.94 427.4000000000001 328.2 437.64 319.03 440zM112 160H16C7.16 160 0 152.84 0 144V80C0 71.16 7.16 64 16 64H112C120.84 64 128 71.16 128 80V144C128 152.84 120.84 160 112 160zM112 32H16C7.16 32 0 24.84 0 16V-48C0 -56.84 7.16 -64 16 -64H112C120.84 -64 128 -56.84 128 -48V16C128 24.84 120.84 32 112 32zM189.31 315.67L152.99 406.4700000000001C149.46 415.3 138.86 419.4600000000001 130.57 414.7800000000001A257.308 257.308 0 0 1 58.96 354.89C52.9 347.5700000000001 55.11 336.4100000000001 63.18 331.37L146.11 279.54C152.62 275.4700000000001 160.77 276.92 166.22 282.3300000000001C171.4 287.48 177.01 292.18 183.01 296.38C189.29 300.79 192.16 308.55 189.31 315.67zM398.18 192H495.31C504.41 192 512.05 199.63 511.46 208.72A254.13500000000002 254.13500000000002 0 0 1 489.01 297.99C485.07 306.61 474.12 309.4600000000001 466.08 304.44L383.27 252.68C376.68 248.56 374.37 240.44 376.93 233.1C379.94 224.49 382.08 215.48 383.17 206.16C384.1 198.25 390.2200000000001 192 398.18 192zM453.03 354.89A257.308 257.308 0 0 1 381.42 414.78C373.1400000000001 419.46 362.54 415.3 359 406.47L322.68 315.67C319.83 308.55 322.7 300.79 328.98 296.39C334.98 292.19 340.5900000000001 287.49 345.7700000000001 282.34C351.2100000000001 276.93 359.3700000000001 275.48 365.8800000000001 279.55L448.8100000000001 331.38C456.8800000000001 336.41 459.1000000000001 347.57 453.0300000000001 354.89zM496 160H400C391.1600000000001 160 384 152.84 384 144V80C384 71.16 391.1600000000001 64 400 64H496C504.84 64 512 71.16 512 80V144C512 152.84 504.84 160 496 160zM496 32H400C391.1600000000001 32 384 24.84 384 16V-48C384 -56.84 391.1600000000001 -64 400 -64H496C504.84 -64 512 -56.84 512 -48V16C512 24.84 504.84 32 496 32zM240 270.38V-24C240 -28.42 243.58 -32 248 -32H264C268.42 -32 272 -28.42 272 -24V270.38C266.77 271.27 261.48 272 256 272S245.23 271.27 240 270.38zM176 228.87V-24C176 -28.42 179.58 -32 184 -32H200C204.42 -32 208 -28.42 208 -24V258.64C195.22 251.19 184.16 241.17 176 228.87zM304 258.64V-24C304 -28.42 307.58 -32 312 -32H328C332.42 -32 336 -28.42 336 -24V228.87C327.84 241.17 316.78 251.19 304 258.64z" />
    +    <glyph glyph-name="edit"
    +      unicode="&#xF044;"
    +      horiz-adv-x="576" d=" M402.6 364.8L492.8 274.6C496.6 270.8 496.6 264.6 492.8 260.8L274.4 42.4L181.6 32.1C169.2 30.7 158.7 41.2 160.1 53.6L170.4 146.4L388.8 364.8C392.6 368.6 398.8 368.6 402.6 364.8zM564.6 387.7L515.8000000000001 436.5C500.6000000000001 451.7 475.9000000000001 451.7 460.6000000000001 436.5L425.2000000000001 401.1C421.4000000000001 397.3 421.4000000000001 391.1 425.2000000000001 387.3L515.4000000000001 297.1C519.2 293.3 525.4000000000001 293.3 529.2 297.1L564.6 332.5C579.8000000000001 347.8 579.8000000000001 372.5 564.6 387.7zM384 101.8V0H64V320H293.8C297 320 300 321.3 302.3 323.5L342.3 363.5C349.9000000000001 371.1 344.5 384 333.8 384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V141.8C448 152.5 435.1 157.8 427.5 150.3L387.5 110.3C385.3 108 384 105 384 101.8z" />
    +    <glyph glyph-name="eject"
    +      unicode="&#xF052;"
    +      horiz-adv-x="448" d=" M448 64V0C448 -17.673 433.673 -32 416 -32H32C14.327 -32 0 -17.673 0 0V64C0 81.673 14.327 96 32 96H416C433.673 96 448 81.673 448 64zM48.053 128H399.939C441.5900000000001 128 463.52 177.674 435.322 208.435L259.383 400.442C240.369 421.185 207.632 421.186 188.616 400.442L12.67 208.435C-15.475 177.732 6.324 128 48.053 128z" />
    +    <glyph glyph-name="ellipsis-h"
    +      unicode="&#xF141;"
    +      horiz-adv-x="512" d=" M328 192C328 152.2 295.8 120 256 120S184 152.2 184 192S216.2 264 256 264S328 231.8 328 192zM432 264C392.2 264 360 231.8 360 192S392.2 120 432 120S504 152.2 504 192S471.8 264 432 264zM80 264C40.2 264 8 231.8 8 192S40.2 120 80 120S152 152.2 152 192S119.8 264 80 264z" />
    +    <glyph glyph-name="ellipsis-v"
    +      unicode="&#xF142;"
    +      horiz-adv-x="192" d=" M96 264C135.8 264 168 231.8 168 192S135.8 120 96 120S24 152.2 24 192S56.2 264 96 264zM24 368C24 328.2 56.2 296 96 296S168 328.2 168 368S135.8 440 96 440S24 407.8 24 368zM24 16C24 -23.8 56.2 -56 96 -56S168 -23.8 168 16S135.8 88 96 88S24 55.8 24 16z" />
    +    <glyph glyph-name="envelope-open-text"
    +      unicode="&#xF658;"
    +      horiz-adv-x="512" d=" M176 232H336C344.84 232 352 239.16 352 248V264C352 272.8400000000001 344.84 280 336 280H176C167.16 280 160 272.8400000000001 160 264V248C160 239.16 167.16 232 176 232zM160 152C160 143.16 167.16 136 176 136H336C344.84 136 352 143.16 352 152V168C352 176.84 344.84 184 336 184H176C167.16 184 160 176.84 160 168V152zM256 30.87C239.58 30.87 223.16 35.93 209.14 46.06L0 197.14V-16C0 -42.51 21.49 -64 48 -64H464C490.51 -64 512 -42.51 512 -16V197.14L302.86 46.06C288.8400000000001 35.94 272.42 30.87 256 30.87zM493.61 285.05C484.76 291.99 476.37 298.52 464 307.86V352C464 378.51 442.51 400 416 400H338.45C335.41 402.2 332.58 404.26 329.41 406.56C312.6 418.83 279.2 448.35 256 448C232.8 448.35 199.41 418.83 182.59 406.56C179.42 404.26 176.59 402.2 173.55 400H96C69.49 400 48 378.51 48 352V307.86C35.63 298.53 27.24 291.99 18.39 285.05A47.995 47.995 0 0 1 0 247.28V236.63L96 167.28V352H416V167.28L512 236.63V247.28C512 262.02 505.22 275.95 493.61 285.05z" />
    +    <glyph glyph-name="envelope-open"
    +      unicode="&#xF2B6;"
    +      horiz-adv-x="512" d=" M512 -16C512 -42.51 490.51 -64 464 -64H48C21.49 -64 0 -42.51 0 -16V247.276A48 48 0 0 0 18.387 285.052C43.3 304.581 63.888 320.4170000000001 182.587 406.563C199.412 418.83 232.797 448.347 256 447.997C279.198 448.351 312.596 418.825 329.413 406.564C448.1 320.427 468.716 304.569 493.613 285.052A48 48 0 0 0 512 247.276V-16zM446.334 180.605C443.771 184.333 438.634 185.2000000000001 434.995 182.512C412.15 165.639 379.533 141.807 329.413 105.433C312.588 93.167 279.2030000000001 63.652 256 64.003C232.789 63.659 199.441 93.146 182.587 105.433C132.473 141.803 99.853 165.637 77.005 182.512C73.366 185.2 68.229 184.333 65.666 180.605L56.594 167.409A7.997999999999999 7.997999999999999 0 0 1 58.433 156.442C81.32 139.543 113.887 115.752 163.736 79.574C184.01 64.793 220.26 31.761 256 32.001C291.724 31.759 327.961 64.7720000000001 348.2630000000001 79.574C398.1130000000001 115.7530000000001 430.6810000000001 139.544 453.566 156.442A7.997999999999999 7.997999999999999 0 0 1 455.405 167.409L446.334 180.605z" />
    +    <glyph glyph-name="envelope-square"
    +      unicode="&#xF199;"
    +      horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM178.117 185.896C87.429 251.713 88.353 251.879 64 270.833V296C64 309.255 74.745 320 88 320H360C373.255 320 384 309.255 384 296V270.833C359.629 251.864 360.566 251.709 269.883 185.895C259.383 178.24 238.491 159.775 224 160.001C209.497 159.783 188.633 178.228 178.117 185.896zM384 230.225V88C384 74.745 373.255 64 360 64H88C74.745 64 64 74.745 64 88V230.225C77.958 219.431 97.329 204.989 159.303 160.011C173.465 149.67 197.278 127.866 223.997 128.001C250.884 127.867 275.034 150.042 288.717 160.026C350.675 204.991 370.042 219.432 384 230.225z" />
    +    <glyph glyph-name="envelope"
    +      unicode="&#xF0E0;"
    +      horiz-adv-x="512" d=" M502.3 257.2C506.2 260.3 512 257.4 512 252.5V48C512 21.5 490.5 0 464 0H48C21.5 0 0 21.5 0 48V252.4C0 257.4 5.7 260.2000000000001 9.7 257.1C32.1 239.7 61.8 217.6 163.8 143.5C184.9 128.1 220.5 95.7 256 95.9C291.7 95.6 328 128.7 348.3 143.5C450.3 217.6 479.9 239.8 502.3 257.2zM256 128C279.2 127.6 312.6 157.2 329.4 169.4C462.1 265.7 472.2 274.1 502.8 298.1C508.6 302.6 511.9999999999999 309.6 511.9999999999999 317V336C511.9999999999999 362.5 490.4999999999999 384 463.9999999999999 384H48C21.5 384 0 362.5 0 336V317C0 309.6 3.4 302.7 9.2 298.1C39.8 274.2 49.9 265.7 182.6 169.4C199.4 157.2 232.8 127.6 256 128z" />
    +    <glyph glyph-name="equals"
    +      unicode="&#xF52C;"
    +      horiz-adv-x="448" d=" M416 144H32C14.33 144 0 129.67 0 112V80C0 62.33 14.33 48 32 48H416C433.67 48 448 62.33 448 80V112C448 129.67 433.67 144 416 144zM416 336H32C14.33 336 0 321.67 0 304V272C0 254.33 14.33 240 32 240H416C433.67 240 448 254.33 448 272V304C448 321.67 433.67 336 416 336z" />
    +    <glyph glyph-name="eraser"
    +      unicode="&#xF12D;"
    +      horiz-adv-x="512" d=" M497.941 174.059C516.6859999999999 192.804 516.6859999999999 223.196 497.941 241.9410000000001L337.941 401.9410000000001C319.196 420.6860000000001 288.805 420.687 270.058 401.9410000000001L14.058 145.941C-4.687 127.196 -4.687 96.804 14.058 78.059L110.058 -17.941A48.004000000000005 48.004000000000005 0 0 1 144 -32H500C506.627 -32 512 -26.627 512 -20V20C512 26.627 506.627 32 500 32H355.883L497.941 174.059zM195.314 236.6860000000001L332.687 99.3130000000001L265.373 32H150.628L70.628 112L195.314 236.686z" />
    +    <glyph glyph-name="euro-sign"
    +      unicode="&#xF153;"
    +      horiz-adv-x="320" d=" M310.706 34.235C309.392 40.865 302.8710000000001 45.107 296.2820000000001 43.604C285.5900000000001 41.165 268.86 38.191 250.8560000000001 38.191C194.0930000000001 38.191 148.9270000000001 72.9810000000001 129.3950000000001 123.6400000000001H243.0840000000001A12 12 0 0 1 254.7920000000001 133.009L261.165 161.369C262.851 168.8710000000001 257.146 176 249.457 176H115.22C114.01 190.328 113.806 204.287 115.357 218.245H261.95A12 12 0 0 1 273.673 227.679L280.185 257.434C281.823 264.918 276.124 272 268.462 272H130.184C150.817 316.991 192.874 347.03 247.803 347.03C262.289 347.03 276.367 344.78 285.654 342.885C291.87 341.617 298.001 345.3830000000001 299.656 351.5080000000001L311.647 395.8760000000001C313.469 402.617 309.182 409.492 302.321 410.793C290.217 413.088 270.71 416 249.635 416C152.451 416 74.03 355.748 45.075 272H12C5.373 272 0 266.627 0 260V230.245C0 223.618 5.373 218.245 12 218.245H33.569C32.56 204.638 32.388 188.958 33.388 176H12C5.373 176 0 170.627 0 164V135.64C0 129.013 5.373 123.64 12 123.64H42.114C67.139 33.308 145.264 -32 249.635 -32C275.936 -32 298.197 -27.456 310.736 -24.212C316.903 -22.617 320.763 -16.504 319.524 -10.255L310.706 34.235z" />
    +    <glyph glyph-name="exchange-alt"
    +      unicode="&#xF362;"
    +      horiz-adv-x="512" d=" M0 280V296C0 309.255 10.745 320 24 320H384V368C384 389.367 409.899 400.0420000000001 424.971 384.971L504.971 304.971C514.343 295.598 514.343 280.4020000000001 504.971 271.03L424.971 191.03C409.956 176.018 384 186.544 384 208V256H24C10.745 256 0 266.745 0 280zM488 128H128V176C128 197.314 102.138 208.08 87.029 192.971L7.029 112.971C-2.343 103.598 -2.343 88.402 7.029 79.03L87.029 -0.97C102.057 -15.997 128 -5.437 128 16V64H488C501.255 64 512 74.745 512 88V104C512 117.255 501.255 128 488 128z" />
    +    <glyph glyph-name="exclamation-circle"
    +      unicode="&#xF06A;"
    +      horiz-adv-x="512" d=" M504 192C504 55.003 392.957 -56 256 -56S8 55.003 8 192C8 328.9170000000001 119.043 440 256 440S504 328.9170000000001 504 192zM256 142C230.595 142 210 121.405 210 96S230.595 50 256 50S302 70.595 302 96S281.405 142 256 142zM212.327 307.346L219.745 171.346C220.092 164.982 225.354 160 231.727 160H280.273C286.646 160 291.908 164.982 292.255 171.346L299.673 307.346C300.048 314.2200000000001 294.575 320 287.6910000000001 320H224.308C217.424 320 211.952 314.2200000000001 212.327 307.346z" />
    +    <glyph glyph-name="exclamation-triangle"
    +      unicode="&#xF071;"
    +      horiz-adv-x="576" d=" M569.517 7.987C587.975 -24.007 564.806 -64 527.94 -64H48.054C11.117 -64 -11.945 -23.945 6.477 7.987L246.423 424.015C264.89 456.024 311.1430000000001 455.966 329.577 424.015L569.517 7.987zM288 94C262.5950000000001 94 242 73.405 242 48S262.5950000000001 2 288 2S334 22.595 334 48S313.405 94 288 94zM244.327 259.346L251.745 123.346C252.092 116.982 257.354 112 263.727 112H312.273C318.646 112 323.908 116.982 324.255 123.346L331.673 259.346C332.048 266.2200000000001 326.575 272 319.6910000000001 272H256.3080000000001C249.4240000000001 272 243.9520000000001 266.2200000000001 244.3270000000001 259.346z" />
    +    <glyph glyph-name="exclamation"
    +      unicode="&#xF12A;"
    +      horiz-adv-x="192" d=" M176 16C176 -28.112 140.112 -64 96 -64S16 -28.112 16 16S51.888 96 96 96S176 60.112 176 16zM25.26 422.801L38.86 150.801C39.499 138.028 50.041 128 62.83 128H129.17C141.959 128 152.501 138.028 153.14 150.801L166.74 422.801C167.425 436.51 156.496 448 142.77 448H49.23C35.504 448 24.575 436.51 25.26 422.801z" />
    +    <glyph glyph-name="expand-arrows-alt"
    +      unicode="&#xF31E;"
    +      horiz-adv-x="448.1" d=" M448.1 104V-8C448.1 -21.3 437.4000000000001 -32 424.1 -32H312.1C290.7000000000001 -32 280 -6.1 295.1 9L331.3 45.2L224 152.4L116.8 45.1L153 9C168.1 -6.1 157.4 -32 136 -32H24C10.7 -32 0 -21.3 0 -8V104C0 125.4 25.9 136.1 41 121L77.2 84.8L184.5 192L77.2 299.3L41 263C25.9 247.9 0 258.6 0 280V392C0 405.3 10.7 416 24 416H136C157.4 416 168.1 390.1 153 375L116.8 338.8L224 231.6L331.3 338.9L295.1 375C280 390.1 290.7000000000001 416 312.1 416H424.1C437.4000000000001 416 448.1 405.3 448.1 392V280C448.1 258.6 422.2000000000001 247.9 407.1 263L370.9000000000001 299.2L263.6 192L370.9000000000001 84.7L407.1 120.9C422.2000000000001 136.1 448.1 125.4 448.1 104z" />
    +    <glyph glyph-name="expand"
    +      unicode="&#xF065;"
    +      horiz-adv-x="448" d=" M0 268V392C0 405.3 10.7 416 24 416H148C154.6 416 160 410.6 160 404V364C160 357.4 154.6 352 148 352H64V268C64 261.4 58.6 256 52 256H12C5.4 256 0 261.4 0 268zM288 404V364C288 357.4 293.4 352 300 352H384V268C384 261.4 389.4 256 396 256H436C442.6 256 448 261.4 448 268V392C448 405.3 437.3 416 424 416H300C293.4 416 288 410.6 288 404zM436 128H396C389.4 128 384 122.6 384 116V32H300C293.4 32 288 26.6 288 20V-20C288 -26.6 293.4 -32 300 -32H424C437.3 -32 448 -21.3 448 -8V116C448 122.6 442.6 128 436 128zM160 -20V20C160 26.6 154.6 32 148 32H64V116C64 122.6 58.6 128 52 128H12C5.4 128 0 122.6 0 116V-8C0 -21.3 10.7 -32 24 -32H148C154.6 -32 160 -26.6 160 -20z" />
    +    <glyph glyph-name="external-link-alt"
    +      unicode="&#xF35D;"
    +      horiz-adv-x="576" d=" M576 424V296.016C576 274.555 550.04 264.0360000000001 535.029 279.045L499.322 314.754L255.799 71.231C246.426 61.858 231.231 61.858 221.858 71.231L199.231 93.858C189.858 103.231 189.858 118.427 199.231 127.799L442.756 371.324L407.053 407.029C391.9820000000001 422.1 402.656 448 424.024 448H552C565.255 448 576 437.255 576 424zM407.029 177.206L391.029 161.206A23.999000000000002 23.999000000000002 0 0 1 384 144.235V0H64V320H328A24.003 24.003 0 0 1 344.9700000000001 327.029L360.9700000000001 343.029C376.089 358.149 365.381 384 344 384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H400C426.51 -64 448 -42.51 448 -16V160.236C448 181.618 422.148 192.326 407.029 177.206z" />
    +    <glyph glyph-name="external-link-square-alt"
    +      unicode="&#xF360;"
    +      horiz-adv-x="448" d=" M448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368zM360 352H248.029C226.716 352 215.949 326.139 231.058 311.029L263.042 279.0420000000001L67.515 83.515C62.829 78.829 62.829 71.231 67.515 66.544L98.544 35.515C103.231 30.829 110.829 30.829 115.515 35.515L311.041 231.041L343.029 199.05C358.058 184.023 384 194.575 384 216.021V328C384 341.255 373.255 352 360 352z" />
    +    <glyph glyph-name="eye-dropper"
    +      unicode="&#xF1FB;"
    +      horiz-adv-x="512" d=" M50.75 114.75C38.75 102.75 32 86.47 32 69.49V24L0 -32L32 -64L88 -32H133.49C150.46 -32 166.74 -25.26 178.74 -13.26L305.38 113.36L177.38 241.36L50.75 114.75zM483.88 419.88C446.41 457.38 385.6 457.38 348.13 419.88L271.04 342.79L257.94 355.89C248.5 365.33 233.29 365.2 224 355.89L183.03 314.92C173.66 305.55 173.66 290.35 183.03 280.98L344.9699999999999 119.04C354.4099999999999 109.6 369.6199999999999 109.73 378.9099999999999 119.04L419.88 160C429.25 169.37 429.25 184.57 419.88 193.94L406.78 207.04L483.87 284.13C521.38 321.61 521.38 382.39 483.88 419.88z" />
    +    <glyph glyph-name="eye-slash"
    +      unicode="&#xF070;"
    +      horiz-adv-x="576" d=" M286.693 56.016L319.272 9.474A333.958 333.958 0 0 0 288 8C168.19 8 63.031 71.949 6.646 167.631A47.999 47.999 0 0 0 6.646 216.37C30.669 257.136 63.559 292.145 102.67 318.907L159.747 237.368C154.736 223.18 152 207.913 152 192C152 117.264 212.135 56.718 286.693 56.016zM569.354 167.631C537.687 113.894 490.607 70.1710000000001 434.1790000000001 42.1560000000001L434.1900000000001 42.1410000000001L475.6600000000001 -17.0589999999999C483.2600000000001 -27.9189999999999 480.6200000000001 -42.8789999999999 469.7600000000001 -50.4789999999999L456.6500000000001 -59.6589999999999C445.7900000000001 -67.2589999999999 430.8300000000001 -64.6189999999999 423.2300000000001 -53.759L100.34 401.06C92.74 411.92 95.38 426.88 106.24 434.48L119.35 443.6600000000001C130.21 451.26 145.17 448.62 152.77 437.76L203.808 365.1430000000001C230.68 372.224 258.905 376 288 376C407.81 376 512.969 312.051 569.354 216.369A48.00200000000001 48.00200000000001 0 0 0 569.354 167.631zM424 192C424 267.174 363.162 328 288 328C270.061 328 252.944 324.527 237.271 318.228L256.57 291.17C282.439 299.341 311.614 297.3330000000001 336.9700000000001 283.76H336.9400000000001C313.2900000000001 283.76 294.1200000000001 264.5900000000001 294.1200000000001 240.9400000000001C294.1200000000001 217.314 313.2670000000001 198.12 336.9400000000001 198.12C360.5900000000001 198.12 379.7600000000001 217.29 379.7600000000001 240.9400000000001V240.9700000000001C398.2220000000001 206.48 396.0720000000001 163.0560000000001 371.5100000000001 130.0200000000001V130.0100000000001L390.8240000000001 102.9490000000001C411.496 126.8 424 157.926 424 192zM262.014 91.273L184.484 202.03C179.47 149.643 213.798 103.6760000000001 262.014 91.273z" />
    +    <glyph glyph-name="eye"
    +      unicode="&#xF06E;"
    +      horiz-adv-x="576" d=" M569.354 216.369C512.969 312.051 407.81 376 288 376C168.14 376 63.004 312.006 6.646 216.369A47.999 47.999 0 0 1 6.646 167.63C63.031 71.949 168.19 8 288 8C407.86 8 512.996 71.994 569.354 167.631A47.997 47.997 0 0 1 569.354 216.369zM288 56C212.838 56 152 116.827 152 192C152 267.1620000000001 212.826 328 288 328C363.1620000000001 328 424 267.174 424 192C424 116.838 363.174 56 288 56zM392 192C392 134.562 345.438 88 288 88S184 134.562 184 192C184 209.708 188.431 226.379 196.236 240.973L196.235 240.941C196.235 217.29 215.408 198.118 239.059 198.118S281.883 217.291 281.883 240.941C281.883 264.592 262.71 283.765 239.059 283.765L239.027 283.764C253.621 291.569 270.292 296 288 296C345.438 296 392 249.438 392 192z" />
    +    <glyph glyph-name="fast-backward"
    +      unicode="&#xF049;"
    +      horiz-adv-x="512" d=" M0 12V372C0 378.6 5.4 384 12 384H52C58.6 384 64 378.6 64 372V220.1L235.5 376.6C256.1 393.7 288 379.4 288 352V220.1L459.5 376.6C480.1 393.7 512 379.4 512 352V32C512 4.6 480.1 -9.7 459.5 7.4L288 162.7V32C288 4.6 256.1 -9.7 235.5 7.4L64 162.7V12C64 5.4 58.6 0 52 0H12C5.4 0 0 5.4 0 12z" />
    +    <glyph glyph-name="fast-forward"
    +      unicode="&#xF050;"
    +      horiz-adv-x="512" d=" M512 372V12C512 5.4 506.6 0 500 0H460C453.4 0 448 5.4 448 12V163.9L276.5 7.4C255.9 -9.8 224 4.6 224 32V163.9L52.5 7.4C31.9 -9.8 0 4.6 0 32V352C0 379.4 31.9 393.7 52.5 376.6L224 221.2V352C224 379.4 255.9 393.7 276.5 376.6L448 221.2V372C448 378.6 453.4 384 460 384H500C506.6 384 512 378.6 512 372z" />
    +    <glyph glyph-name="fax"
    +      unicode="&#xF1AC;"
    +      horiz-adv-x="512" d=" M64 320H32C14.33 320 0 305.67 0 288V-32C0 -49.67 14.33 -64 32 -64H64C81.67 -64 96 -49.67 96 -32V288C96 305.67 81.67 320 64 320zM480 288V370.75C480 379.24 476.63 387.37 470.63 393.38L425.37 438.63C419.37 444.63 411.23 448 402.74 448H160C142.33 448 128 433.67 128 416V-32C128 -49.67 142.33 -64 160 -64H480C497.67 -64 512 -49.67 512 -32V256C512 273.67 497.67 288 480 288zM288 16C288 7.16 280.84 0 272 0H240C231.16 0 224 7.16 224 16V48C224 56.84 231.16 64 240 64H272C280.84 64 288 56.84 288 48V16zM288 144C288 135.16 280.84 128 272 128H240C231.16 128 224 135.16 224 144V176C224 184.84 231.16 192 240 192H272C280.84 192 288 184.84 288 176V144zM416 16C416 7.16 408.84 0 400 0H368C359.1600000000001 0 352 7.16 352 16V48C352 56.84 359.1600000000001 64 368 64H400C408.84 64 416 56.84 416 48V16zM416 144C416 135.16 408.84 128 400 128H368C359.1600000000001 128 352 135.16 352 144V176C352 184.84 359.1600000000001 192 368 192H400C408.84 192 416 184.84 416 176V144zM432 256H176V400H384V368C384 359.16 391.1600000000001 352 400 352H432V256z" />
    +    <glyph glyph-name="feather-alt"
    +      unicode="&#xF56B;"
    +      horiz-adv-x="512" d=" M512 448C460.22 444.44 96.44 409.8 71.01 160.39C67.92 133.73 66.17 106.95 65.02 80.15L243.89 258.84C250.14 265.09 260.29 265.09 266.54 258.84S272.79 242.46 266.54 236.21L7.04 -23.03C-2.34 -32.4 -2.34 -47.6 7.04 -56.97C16.42 -66.3399999999999 31.63 -66.3399999999999 41.02 -56.97L98.15 0.1C140.24 0.24 182.3 2.63 224.11 7.46C277.5900000000001 12.9 321.13 33.9300000000001 356.6900000000001 64.0000000000001H255.74L402.53 112.8800000000001C413.78 127.7700000000001 423.9 143.59 432.98 160.0000000000001H351.84L458.38 213.2100000000001C500.29 315.14 510.19 421.74 512 448z" />
    +    <glyph glyph-name="feather"
    +      unicode="&#xF52D;"
    +      horiz-adv-x="512" d=" M467.14 403.16C404.59 465.64 305.4700000000001 467.94 214.86 377.43C136.25 298.91 153.88 316.51 129.11 291.77C68.65 231.38 58.72 140.94 65.47 80.6L243.91 258.85C250.17 265.1 260.31 265.1 266.56 258.85S272.81 242.4700000000001 266.56 236.2200000000001L7.04 -23.03C-2.34 -32.4 -2.34 -47.6 7.04 -56.97C16.42 -66.3399999999999 31.64 -66.3399999999999 41.02 -56.97L107.12 9.0600000000001C159.42 -6.65 279 -9.11 353.95 64H255.76L403.33 113.14C453.32 163.07 439.71 149.32 449.64 160H351.86L483.4 203.8C528.8399999999999 278.26 517.71 352.64 467.14 403.1600000000001z" />
    +    <glyph glyph-name="female"
    +      unicode="&#xF182;"
    +      horiz-adv-x="256" d=" M128 448C163.346 448 192 419.346 192 384S163.346 320 128 320C92.654 320 64 348.654 64 384S92.654 448 128 448M247.283 93.821L199.283 285.8210000000001A24 24 0 0 1 176 304H164.64C141.929 293.557 115.05 293.106 91.36 304H80A24 24 0 0 1 56.717 285.8210000000001L8.717 93.821C4.935 78.695 16.383 64 32 64H88V-40C88 -53.255 98.745 -64 112 -64H144C157.255 -64 168 -53.255 168 -40V64H224C239.591 64 251.071 78.671 247.283 93.821z" />
    +    <glyph glyph-name="fighter-jet"
    +      unicode="&#xF0FB;"
    +      horiz-adv-x="640" d=" M544 224L416 240L368 256H344L227.158 404H266.667C278.3330000000001 404 288 406.625 288 410S278.3330000000001 416 266.6670000000001 416H152V404H168V240H120L53.333 320H18.667L8 309.333V240H16V224H64V221.334L0 213.334V170.667L64 162.667V160H16V144H8V74.667L18.667 64H53.334L120 144H168V-20H152V-32H266.6670000000001C278.334 -32 288 -29.375 288 -26S278.3330000000001 -20 266.6670000000001 -20H227.158L344 128H368L416 144L544 160C640 181.333 640 186.583 640 192C640 197.417 640 202.667 544 224z" />
    +    <glyph glyph-name="file-alt"
    +      unicode="&#xF15C;"
    +      horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM288 76C288 69.4 282.6 64 276 64H108C101.4 64 96 69.4 96 76V84C96 90.6 101.4 96 108 96H276C282.6 96 288 90.6 288 84V76zM288 140C288 133.4 282.6 128 276 128H108C101.4 128 96 133.4 96 140V148C96 154.6 101.4 160 108 160H276C282.6 160 288 154.6 288 148V140zM288 212V204C288 197.4 282.6 192 276 192H108C101.4 192 96 197.4 96 204V212C96 218.6 101.4 224 108 224H276C282.6 224 288 218.6 288 212zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
    +    <glyph glyph-name="file-archive"
    +      unicode="&#xF1C6;"
    +      horiz-adv-x="384" d=" M224 312V448H160.4V416H128.4V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM95.9 416H127.9V384H95.9V416zM128.2 32C95 32 70.2 62.4 76.8 94.9L96.4 192V224H128.4V256H96.4V288H128.4V320H96.4V352H128.4V384H160.4V352H128.4V320H160.4V288H128.4V256H160.4V224H128.4V192H150.5C156.2 192 161.2 187.9 162.3 182.3L179.6 94.6C186 62.2000000000001 161.2 32 128.2 32zM160.9 85C160.9 70.1 146.4 58 128.5 58S96 70 96 85C96 99.9 110.5 112 128.4 112S160.9 99.9 160.9 85zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
    +    <glyph glyph-name="file-audio"
    +      unicode="&#xF1C7;"
    +      horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM160 44C160 33.3 147.1 28 139.5 35.5L104 72H76C69.4 72 64 77.4 64 84V140C64 146.6 69.4 152 76 152H104L139.5 188.5C147.1 196.1 160 190.7 160 180V44zM193.2 91.6C202.3 100.9 202.3 115.7000000000001 193.2 125C171.1 147.8 205.4 181.2 227.6 158.5C254.8 130.6 254.8 86.1 227.6 58.1C205.8 35.8 170.7 68.5 193.2 91.6zM279.2 208.7C333.6 152.8 333.6 63.9 279.2 7.9C257.4 -14.5 222.2 18.2 244.8 41.4C281 78.6 281.1 137.9 244.8 175.2C222.7 198 257.1 231.5 279.2 208.7zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
    +    <glyph glyph-name="file-code"
    +      unicode="&#xF1C9;"
    +      horiz-adv-x="384" d=" M384 326.059V320H256V448H262.0590000000001C268.4240000000001 448 274.5290000000001 445.471 279.0300000000001 440.971L376.971 343.03A24.005 24.005 0 0 0 384 326.059zM248 288C234.8 288 224 298.8 224 312V448H24C10.745 448 0 437.255 0 424V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V288H248zM123.206 47.495A5.4 5.4 0 0 0 115.573 47.249L50.707 108.061A5.4 5.4 0 0 0 50.707 115.9400000000001L115.573 176.7520000000001A5.4 5.4 0 0 0 123.206 176.5060000000001L142.785 155.6210000000001A5.4 5.4 0 0 0 142.413 147.8740000000001L101.65 112L142.413 76.126A5.4 5.4 0 0 0 142.785 68.379L123.206 47.495zM174.501 -2.984L147.048 4.986A5.401999999999999 5.401999999999999 0 0 0 143.367 11.6780000000001L204.807 223.3040000000001A5.401999999999999 5.401999999999999 0 0 0 211.499 226.9850000000001L238.951 219.0150000000001A5.4 5.4 0 0 0 242.631 212.3230000000001L181.191 0.6970000000001A5.396999999999999 5.396999999999999 0 0 0 174.501 -2.9839999999999zM335.293 108.061L270.427 47.249A5.4 5.4 0 0 0 262.7940000000001 47.495L243.2140000000001 68.38A5.4 5.4 0 0 0 243.5860000000001 76.127L284.35 112L243.587 147.874A5.4 5.4 0 0 0 243.215 155.6210000000001L262.795 176.506A5.4 5.4 0 0 0 270.428 176.752L335.294 115.94A5.4 5.4 0 0 0 335.293 108.061z" />
    +    <glyph glyph-name="file-contract"
    +      unicode="&#xF56C;"
    +      horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM64 376C64 380.42 67.58 384 72 384H152C156.42 384 160 380.42 160 376V360C160 355.58 156.42 352 152 352H72C67.58 352 64 355.58 64 360V376zM64 312C64 316.42 67.58 320 72 320H152C156.42 320 160 316.42 160 312V296C160 291.5800000000001 156.42 288 152 288H72C67.58 288 64 291.5800000000001 64 296V312zM256.81 64H304C312.84 64 320 56.84 320 48S312.84 32 304 32H256.81C240.36 32 225.54 41.14 218.17 55.86C215.22 61.78 210.08 62.38 208 62.38S200.78 61.79 197.98 56.19L190.31 40.85A15.986 15.986 0 0 0 176 32.0100000000001C175.62 32.0100000000001 175.25 32.03 174.8600000000001 32.0600000000001C168.4100000000001 32.5100000000001 162.8600000000001 36.8100000000001 160.8300000000001 42.95L144 93.41L133.39 61.53C127.5 43.87 111.01 32 92.39 32H80C71.16 32 64 39.16 64 48S71.16 64 80 64H92.39C97.22 64 101.5 67.08 103.03 71.66L121.22 126.3C124.52 136.11 133.66 142.71 144 142.71S163.48 136.1200000000001 166.77 126.3L180.65 84.66C200.42 100.85 234.7 94.36 246.65 70.5C248.67 66.44 252.61 64 256.81 64zM377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343z" />
    +    <glyph glyph-name="file-csv"
    +      unicode="&#xF6DD;"
    +      horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM128 168C128 163.58 124.42 160 120 160H112C103.16 160 96 152.84 96 144V112C96 103.16 103.16 96 112 96H120C124.42 96 128 92.42 128 88V72C128 67.58 124.42 64 120 64H112C85.49 64 64 85.49 64 112V144C64 170.51 85.49 192 112 192H120C124.42 192 128 188.42 128 184V168zM172.27 64H160C155.58 64 152 67.58 152 72V88C152 92.42 155.58 96 160 96H172.27C178.22 96 182.68 99.5 182.68 102.62C182.68 103.92 181.93 105.28 180.56 106.46L158.67 125.23C150.2 132.45 145.34 142.71 145.34 153.37C145.34 174.67 164.36 191.99 187.75 191.99H200C204.42 191.99 208 188.41 208 183.99V167.99C208 163.5699999999999 204.42 159.99 200 159.99H187.73C181.78 159.99 177.32 156.49 177.32 153.37C177.32 152.0699999999999 178.07 150.7099999999999 179.44 149.53L201.33 130.76C209.8 123.54 214.66 113.28 214.66 102.62C214.67 81.33 195.66 64 172.27 64zM256 184V163.2C256 142.93 261.7 123.03 272 106.32C282.3 123.02 288 142.93 288 163.2V184C288 188.42 291.58 192 296 192H312C316.42 192 320 188.42 320 184V163.2C320 127.72 307.12 94.31 283.7200000000001 69.11C280.7000000000001 65.86 276.4500000000001 64 272 64S263.3 65.86 260.28 69.11C236.88 94.31 224 127.72 224 163.2000000000001V184C224 188.42 227.58 192 232 192H248C252.42 192 256 188.42 256 184zM377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343z" />
    +    <glyph glyph-name="file-download"
    +      unicode="&#xF56D;"
    +      horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM300.45 100.64L204.03 4.94C197.38 -1.67 186.64 -1.67 179.99 4.94L83.57 100.64C73.42 110.71 80.54 128 94.82 128H160V208C160 216.84 167.16 224 176 224H208C216.84 224 224 216.84 224 208V128H289.18C303.46 128 310.58 110.71 300.45 100.64zM377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343z" />
    +    <glyph glyph-name="file-excel"
    +      unicode="&#xF1C3;"
    +      horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM284.1 205.5L224 112L284.1 18.5C289.2000000000001 10.5 283.5 0 274 0H239.1C234.7 0 230.6 2.4 228.5 6.3C208.9 42.5 192 75 192 75C185.6 60.2 182 55 155.4 6.2C153.3 2.3 149.3 -0.1 144.9 -0.1H110C100.5 -0.1 94.8 10.4 99.9 18.4L160.2 111.9L99.9 205.4C94.7 213.4 100.5 223.9 110 223.9H144.8C149.2 223.9 153.3 221.5 155.4 217.6C181.5 168.8 175.4 184 192 149.1C192 149.1 198.1 160.8 228.6 217.6C230.7 221.5 234.8 223.9 239.2 223.9H274C283.5 224 289.2 213.5 284.1 205.5zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
    +    <glyph glyph-name="file-export"
    +      unicode="&#xF56E;"
    +      horiz-adv-x="576" d=" M384 326.1C384 332.4 381.5 338.5 377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1zM192 112V144C192 152.84 199.16 160 208 160H384V288H248C234.8 288 224 298.8 224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V96H208C199.16 96 192 103.16 192 112zM571.05 140.02L475.35 236.45C465.29 246.59 447.99 239.46 447.99 225.18V160H384V96H447.99V30.82C447.99 16.54 465.28 9.41 475.35 19.55L571.0500000000001 115.97C577.6500000000001 122.6300000000001 577.6500000000001 133.37 571.0500000000001 140.0200000000001z" />
    +    <glyph glyph-name="file-image"
    +      unicode="&#xF1C5;"
    +      horiz-adv-x="384" d=" M384 326.059V320H256V448H262.0590000000001A24 24 0 0 0 279.029 440.971L376.9700000000001 343.03A24.002000000000002 24.002000000000002 0 0 0 384 326.059zM248 288C234.8 288 224 298.8 224 312V448H24C10.745 448 0 437.255 0 424V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V288H248zM112.545 272C139.055 272 160.545 250.51 160.545 224S139.055 176 112.545 176S64.545 197.49 64.545 224S86.036 272 112.545 272zM320.545 32H64.545L65.03 80.485L104.545 120C109.231 124.686 116.344 124.201 121.03 119.515L160.545 80L264.06 183.515C268.746 188.201 276.344 188.201 281.031 183.515L320.545 144V32z" />
    +    <glyph glyph-name="file-import"
    +      unicode="&#xF56F;"
    +      horiz-adv-x="512" d=" M16 160C7.16 160 0 152.84 0 144V112C0 103.16 7.16 96 16 96H128V160H16zM352 312V448H152C138.7 448 128 437.3 128 424V160H255.99V225.18C255.99 239.46 273.2800000000001 246.59 283.35 236.45L379.05 140.02C385.6500000000001 133.37 385.6500000000001 122.63 379.05 115.98L283.35 19.5599999999999C273.29 9.42 255.99 16.55 255.99 30.8299999999999V96H128V-40C128 -53.3 138.7 -64 152 -64H488C501.3 -64 512 -53.3 512 -40V288H376C362.8 288 352 298.8 352 312zM505 343L407.1 441C402.6 445.5 396.5 448 390.1 448H384V320H512V326.1C512 332.4 509.5 338.5 505 343z" />
    +    <glyph glyph-name="file-invoice-dollar"
    +      unicode="&#xF571;"
    +      horiz-adv-x="384" d=" M377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM64 376C64 380.42 67.58 384 72 384H152C156.42 384 160 380.42 160 376V360C160 355.58 156.42 352 152 352H72C67.58 352 64 355.58 64 360V376zM64 296V312C64 316.42 67.58 320 72 320H152C156.42 320 160 316.42 160 312V296C160 291.5800000000001 156.42 288 152 288H72C67.58 288 64 291.5800000000001 64 296zM208 32.12V8C208 3.58 204.42 0 200 0H184C179.58 0 176 3.58 176 8V32.29C164.71 32.87 153.73 36.81 144.63 43.64C140.73 46.5700000000001 140.53 52.41 144.06 55.78L155.81 66.99C158.58 69.63 162.7 69.75 165.94 67.72C169.81 65.3 174.2 64 178.76 64H206.87C213.37 64 218.67 69.92 218.67 77.19C218.67 83.14 215.06 88.38 209.9 89.92L164.9 103.42C146.31 109 133.32 126.84 133.32 146.81C133.32 171.33 152.37 191.25 175.99 191.88V216C175.99 220.42 179.57 224 183.99 224H199.99C204.41 224 207.99 220.42 207.99 216V191.71C219.28 191.13 230.26 187.2 239.36 180.36C243.26 177.43 243.46 171.59 239.93 168.22L228.18 157.01C225.41 154.37 221.29 154.25 218.05 156.28C214.18 158.71 209.79 160 205.23 160H177.12C170.62 160 165.32 154.08 165.32 146.81C165.32 140.86 168.93 135.62 174.09 134.08L219.09 120.58C237.68 115 250.67 97.16 250.67 77.19C250.67 52.66 231.62 32.75 208 32.12z" />
    +    <glyph glyph-name="file-invoice"
    +      unicode="&#xF570;"
    +      horiz-adv-x="384" d=" M288 192H96V128H288V192zM377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM64 376C64 380.42 67.58 384 72 384H152C156.42 384 160 380.42 160 376V360C160 355.58 156.42 352 152 352H72C67.58 352 64 355.58 64 360V376zM64 312C64 316.42 67.58 320 72 320H152C156.42 320 160 316.42 160 312V296C160 291.5800000000001 156.42 288 152 288H72C67.58 288 64 291.5800000000001 64 296V312zM320 8C320 3.58 316.42 0 312 0H232C227.58 0 224 3.58 224 8V24C224 28.42 227.58 32 232 32H312C316.42 32 320 28.42 320 24V8zM320 208V112C320 103.16 312.84 96 304 96H80C71.16 96 64 103.16 64 112V208C64 216.84 71.16 224 80 224H304C312.84 224 320 216.84 320 208z" />
    +    <glyph glyph-name="file-medical-alt"
    +      unicode="&#xF478;"
    +      horiz-adv-x="448" d=" M288 312V448H88C74.7 448 64 437.3 64 424V192H8C3.6 192 0 188.4 0 184V168C0 163.6 3.6 160 8 160H148.9C151.9 160 154.7 158.3 156.1 155.6L176 115.8L232.8 229.5C235.7 235.4 244.2 235.4 247.1 229.5L281.8 160H352C360.8 160 368 152.8 368 144S360.8 128 352 128H262.1L240 172.2L183.2 58.5C180.3 52.6 171.8 52.6 168.9 58.5L134.1 128H64V-40C64 -53.3 74.7 -64 88 -64H424C437.3 -64 448 -53.3 448 -40V288H312C298.8 288 288 298.8 288 312zM441 343L343.1 441C338.6 445.5 332.5 448 326.1 448H320V320H448V326.1C448 332.4 445.5 338.5 441 343z" />
    +    <glyph glyph-name="file-medical"
    +      unicode="&#xF477;"
    +      horiz-adv-x="384" d=" M377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM288 152V104C288 99.6 284.4 96 280 96H224V40C224 35.6 220.4 32 216 32H168C163.6 32 160 35.6 160 40V96H104C99.6 96 96 99.6 96 104V152C96 156.4 99.6 160 104 160H160V216C160 220.4 163.6 224 168 224H216C220.4 224 224 220.4 224 216V160H280C284.4 160 288 156.4 288 152z" />
    +    <glyph glyph-name="file-pdf"
    +      unicode="&#xF1C1;"
    +      horiz-adv-x="384" d=" M181.9 191.9C176.9 207.9 177 238.8 179.9 238.8C188.3 238.8 187.5 201.9 181.9 191.9zM180.2 144.7C172.5 124.5 162.9 101.4 151.8 82C170.1 89 190.8 99.2 214.7 103.9C202 113.5 189.8 127.3 180.2 144.7zM86.1 19.9C86.1 19.1 99.3 25.3 121 60.1C114.3 53.8 91.9 35.6 86.1 19.9zM248 288H384V-40C384 -53.3 373.3 -64 360 -64H24C10.7 -64 0 -53.3 0 -40V424C0 437.3 10.7 448 24 448H224V312C224 298.8 234.8 288 248 288zM240 116.2C220 128.4 206.7 145.2 197.3 170C201.8 188.5 208.9 216.6 203.5 234.2C198.8 263.6 161.1 260.7 155.7 241C150.7 222.7 155.3 196.9 163.8 164C152.2 136.4 135.1 99.4 123 78.2C122.9 78.2 122.9 78.1 122.8 78.1C95.7 64.2 49.2 33.6 68.3 10.1C73.9 3.2 84.3 0.1 89.8 0.1C107.7 0.1 125.5 18.1 150.9 61.9C176.7 70.4 205 81 229.9 85.1C251.6 73.3 277 65.6 293.9 65.6C323.1 65.6 325.1 97.6 313.6 108.9999999999999C299.7 122.6 259.3 118.6999999999999 240 116.1999999999999zM377 343L279 441C274.5 445.5 268.4 448 262 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM302.9 87.7C307 90.4 300.4 99.6 260.1 96.7C297.2 80.9 302.9 87.7 302.9 87.7z" />
    +    <glyph glyph-name="file-powerpoint"
    +      unicode="&#xF1C4;"
    +      horiz-adv-x="384" d=" M193.7 176.8C202.5 176.8 209.2 174.1 214 168.7C223.6 157.8 223.8 136 213.8 124.6C208.9 119 201.9 116.1 192.7 116.1H165.8V176.8H193.7zM377 343L279 441C274.5 445.5 268.4 448 262 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM277 146.8C277 56.5 188.2 69.2000000000001 165.9 69.2000000000001V12C165.9 5.4 160.5 0 153.9 0H123.1C116.5 0 111.1 5.4 111.1 12V211.8C111.1 218.4 116.5 223.8 123.1 223.8H204.1C248.6 223.8 277 191 277 146.8z" />
    +    <glyph glyph-name="file-prescription"
    +      unicode="&#xF572;"
    +      horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM292.53 132.52L303.84 121.21C310.09 114.96 310.09 104.83 303.84 98.58L273.94 68.68L304 38.62C310.25 32.37 310.25 22.24 304 15.99L292.69 4.68C286.44 -1.57 276.31 -1.57 270.06 4.68L240 34.75L209.94 4.69C203.69 -1.56 193.56 -1.56 187.31 4.69L176 16C169.75 22.25 169.75 32.38 176 38.63L206.06 68.69L146.74 128H128V80C128 71.16 120.84 64 112 64H96C87.16 64 80 71.16 80 80V240C80 248.84 87.16 256 96 256H176C211.35 256 240 227.35 240 192C240 167.78 226.38 146.95 206.54 136.08L240 102.62L269.9 132.52C276.15 138.77 286.28 138.77 292.53 132.52zM176 176H128V208H176C184.82 208 192 200.82 192 192S184.82 176 176 176zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
    +    <glyph glyph-name="file-signature"
    +      unicode="&#xF573;"
    +      horiz-adv-x="576" d=" M218.17 23.86C215.22 29.78 210.08 30.38 208 30.38S200.78 29.79 197.98 24.19L190.31 8.85C183.94 -3.9299999999999 165.28 -2.52 160.83 10.94L144 61.41L133.39 29.53C127.5 11.87 111.01 0 92.39 0H80C71.16 0 64 7.16 64 16S71.16 32 80 32H92.39C97.22 32 101.5 35.08 103.03 39.66L121.22 94.3C124.52 104.11 133.66 110.71 144 110.71S163.48 104.1200000000001 166.77 94.3L180.65 52.66C200.4 68.85 234.71 62.36 246.65 38.5C248.54 34.72 252.14 32.55 256.01 32.24V114.36L384.01 241.45V288H248C234.8 288 224 298.8 224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V0L256 0.11C239.88 0.42 225.42 9.39 218.17 23.86zM384 326.1C384 332.4 381.5 338.5 377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1zM288 101.04V32H356.99L518.6700000000001 194.78L450.7900000000001 262.66L288 101.04zM568.54 280.67L536.67 312.54C526.7299999999999 322.48 510.6 322.48 500.66 312.54L473.41 285.29L541.29 217.41L568.54 244.66C578.49 254.6 578.49 270.73 568.54 280.67z" />
    +    <glyph glyph-name="file-upload"
    +      unicode="&#xF574;"
    +      horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM289.18 95.99H224V15.99C224 7.15 216.84 -0.01 208 -0.01H176C167.16 -0.01 160 7.15 160 15.99V95.99H94.82C80.54 95.99 73.41 113.28 83.55 123.35L179.97 219.05C186.62 225.6600000000001 197.36 225.6600000000001 204.01 219.05L300.43 123.35C310.58 113.28 303.46 95.99 289.18 95.99zM377 343L279.1 441C274.6 445.5 268.5 448 262.1 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343z" />
    +    <glyph glyph-name="file-video"
    +      unicode="&#xF1C8;"
    +      horiz-adv-x="384" d=" M384 326.059V320H256V448H262.0590000000001C268.4240000000001 448 274.5290000000001 445.471 279.0300000000001 440.971L376.971 343.03A24.005 24.005 0 0 0 384 326.059zM224 312V448H24C10.745 448 0 437.255 0 424V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V288H248C234.8 288 224 298.8 224 312zM320 167.984V56.0210000000001C320 34.5760000000001 294.057 24.0230000000001 279.029 39.0500000000001L224 94.059V56C224 42.745 213.255 32 200 32H88C74.745 32 64 42.745 64 56V168C64 181.255 74.745 192 88 192H200C213.255 192 224 181.255 224 168V129.941L279.029 184.954C294.04 199.964 320 189.445 320 167.984z" />
    +    <glyph glyph-name="file-word"
    +      unicode="&#xF1C2;"
    +      horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM281.1 192H305C312.7 192 318.4 184.9 316.7 177.3L278.7 9.3C277.5 3.8 272.6 0 267 0H229C223.5 0 218.7 3.8 217.4 9.1C191.6 112.6 196.6 90.3 191.8 119.6H191.3C190.2 105.3 188.9 102.2000000000001 165.7 9.1C164.4 3.8 159.6 0 154.1 0H117C111.4 0 106.5 3.9 105.3 9.4L67.5 177.4C65.8 184.9 71.5 192 79.2 192H103.7C109.4 192 114.4 188 115.5 182.3C131.1 104.3 135.6 72.8 136.5 60.1C138.1 70.3 143.8 92.8 165.9 182.8C167.2 188.2 172 191.9 177.6 191.9H206.7C212.3 191.9 217.1 188.1 218.4 182.7000000000001C242.4 82.3000000000001 247.2 58.7000000000001 248 53.3000000000001C247.8 64.5000000000001 245.4 71.1000000000001 269.6 182.5000000000001C270.6 188.1000000000001 275.5 192.0000000000001 281.1 192.0000000000001zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
    +    <glyph glyph-name="file"
    +      unicode="&#xF15B;"
    +      horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
    +    <glyph glyph-name="fill-drip"
    +      unicode="&#xF576;"
    +      horiz-adv-x="576" d=" M512 128S448 35.35 448 0C448 -35.35 476.66 -64 512 -64S576 -35.35 576 0S512 128 512 128zM502.63 230.94L294.94 438.63C288.69 444.88 280.5 448 272.31 448S255.93 444.88 249.69 438.63L168.11 357.05L81.93 443.24C75.68 449.49 65.55 449.49 59.31 443.24L36.69 420.62C30.45 414.37 30.45 404.24 36.69 398L122.88 311.82L28.12 217.06C-9.37 179.58 -9.37 118.8 28.12 81.31L145.31 -35.88C164.05 -54.62 188.62 -64 213.18 -64C237.75 -64 262.31 -54.63 281.05 -35.88L502.62 185.69C515.12 198.19 515.12 218.44 502.63 230.94zM386.41 159.97H65.93C67.29 163.81 69.5 167.9500000000001 73.36 171.8L86.51 184.95L168.12 266.56L226.72 207.96C239.21 195.47 259.4700000000001 195.47 271.96 207.96S284.45 240.71 271.96 253.2L213.36 311.8L272.31 370.75L434.75 208.31L386.41 159.97z" />
    +    <glyph glyph-name="fill"
    +      unicode="&#xF575;"
    +      horiz-adv-x="512" d=" M502.63 230.94L294.94 438.63C288.69 444.88 280.5 448 272.31 448S255.93 444.88 249.69 438.63L168.11 357.05L81.93 443.23C75.69 449.48 65.55 449.48 59.31 443.23L36.69 420.62C30.45 414.37 30.45 404.24 36.69 397.99L122.88 311.81L28.12 217.05C-9.37 179.56 -9.37 118.79 28.12 81.3L145.31 -35.89C164.06 -54.63 188.62 -64.01 213.18 -64.01C237.75 -64.01 262.31 -54.64 281.06 -35.89L502.63 185.68C515.12 198.18 515.12 218.44 502.63 230.94zM386.41 159.97H65.93C67.29 163.81 69.5 167.9500000000001 73.36 171.8L86.51 184.95L168.12 266.56L226.73 207.96C239.2200000000001 195.47 259.48 195.47 271.9700000000001 207.96C284.4600000000001 220.45 284.4600000000001 240.71 271.9700000000001 253.2L213.36 311.8L272.31 370.75L434.76 208.31L386.41 159.97z" />
    +    <glyph glyph-name="film"
    +      unicode="&#xF008;"
    +      horiz-adv-x="512" d=" M488 384H480V364C480 357.4 474.6 352 468 352H428C421.4 352 416 357.4 416 364V384H96V364C96 357.4 90.6 352 84 352H44C37.4 352 32 357.4 32 364V384H24C10.7 384 0 373.3 0 360V24C0 10.7 10.7 0 24 0H32V20C32 26.6 37.4 32 44 32H84C90.6 32 96 26.6 96 20V0H416V20C416 26.6 421.4 32 428 32H468C474.6 32 480 26.6 480 20V0H488C501.3 0 512 10.7 512 24V360C512 373.3 501.3 384 488 384zM96 76C96 69.4 90.6 64 84 64H44C37.4 64 32 69.4 32 76V116C32 122.6 37.4 128 44 128H84C90.6 128 96 122.6 96 116V76zM96 172C96 165.4 90.6 160 84 160H44C37.4 160 32 165.4 32 172V212C32 218.6 37.4 224 44 224H84C90.6 224 96 218.6 96 212V172zM96 268C96 261.4 90.6 256 84 256H44C37.4 256 32 261.4 32 268V308C32 314.6 37.4 320 44 320H84C90.6 320 96 314.6 96 308V268zM368 60C368 53.4 362.6 48 356 48H156C149.4 48 144 53.4 144 60V156C144 162.6 149.4 168 156 168H356C362.6 168 368 162.6 368 156V60zM368 228C368 221.4 362.6 216 356 216H156C149.4 216 144 221.4 144 228V324C144 330.6 149.4 336 156 336H356C362.6 336 368 330.6 368 324V228zM480 76C480 69.4 474.6 64 468 64H428C421.4 64 416 69.4 416 76V116C416 122.6 421.4 128 428 128H468C474.6 128 480 122.6 480 116V76zM480 172C480 165.4 474.6 160 468 160H428C421.4 160 416 165.4 416 172V212C416 218.6 421.4 224 428 224H468C474.6 224 480 218.6 480 212V172zM480 268C480 261.4 474.6 256 468 256H428C421.4 256 416 261.4 416 268V308C416 314.6 421.4 320 428 320H468C474.6 320 480 314.6 480 308V268z" />
    +    <glyph glyph-name="filter"
    +      unicode="&#xF0B0;"
    +      horiz-adv-x="512" d=" M487.976 448H24.028C2.71 448 -8.047 422.134 7.058 407.029L192 222.059V16C192 8.169 195.821 0.83 202.237 -3.662L282.237 -59.642C298.02 -70.69 320 -59.493 320 -39.98V222.059L504.947 407.029C520.021 422.104 509.338 448 487.976 448z" />
    +    <glyph glyph-name="fingerprint"
    +      unicode="&#xF577;"
    +      horiz-adv-x="512" d=" M256.12 202.04C242.87 202.04 232.12 191.3 232.12 178.04C233.26 105.79 223.98 36.14 204.42 -33.51C201.69 -43.2300000000001 206.57 -64 227.54 -64C238.02 -64 247.6500000000001 -57.08 250.63 -46.48C264.1600000000001 1.43 281.67 78.93 280.11 178.04C280.12 191.29 269.38 202.04 256.12 202.04zM255.26 283.77C194 283.8400000000001 151.25 236.7 152.1 182.68C152.85 134.74 148.35 86.77 138.73 40.13C136.04 27.15 144.4 14.44 157.37 11.77C170.42 9.1 183.04 17.43 185.73 30.41C196.07 80.5 200.9 131.99 200.1 183.43C199.69 209.38 220.0200000000001 235.92 254.55 235.77C285.86 235.3 311.7 210.43 312.17 180.3C312.94 132.25 309.36 83.97 301.56 36.7499999999999C299.39 23.6899999999999 308.25 11.3299999999999 321.32 9.17C341.29 5.84 348.13 24.27 348.9 28.9399999999999C357.18 78.9699999999999 360.96 130.1499999999999 360.17 181.05C359.29 236.85 312.23 282.93 255.26 283.77zM144.57 303.55C134.27 311.89 119.2 310.35 110.81 300.07C85.19 268.57 71.42 228.79 72.06 188.07C72.65 150.49 69.59 112.8 62.95 76.02C60.61 62.97 69.26 50.49 82.31 48.13C102.42 44.63 109.38 62.94 110.2 67.49C117.39 107.33 120.7 148.15 120.06 188.82C119.59 218.7 129.26 246.7 148.06 269.79C156.41 280.07 154.85 295.18 144.57 303.55zM254.04 365.88C238.63 366.29 223.17 364.44 208.26 360.91C195.37 357.85 187.39 344.93 190.43 332.02C193.49 319.13 206.43 311.19 219.32 314.19C230.37 316.8 241.79 317.9600000000001 253.32 317.88C328.75 316.75 391.05 256.38 392.2 183.3C392.79 145.42 390.92 107.1899999999999 386.62 69.67C385.12 56.4999999999999 394.57 44.59 407.73 43.09C424.4500000000001 41.14 433.24 54.97 434.31 64.2A929.06 929.06 0 0 1 440.2 184.05C438.64 282.8 355.13 364.38 254.04 365.88zM506.11 244.43C503.25 257.35 490.6 265.63 477.5 262.7C464.56 259.84 456.38 247.04 459.24 234.09C463.95 212.68 464.15 196.68 463.94 172.49C463.83 159.22 474.49 148.4 487.74 148.29H487.94C501.11 148.29 511.83 158.9 511.94 172.09C512.12 194.27 512.34 216.2 506.11 244.43zM465.99 335.15C417.29 404.54 337.6 446.71 252.81 447.98C183.02 448.82 118.47 423.09 70.46 375.06C24.09 328.63 -0.9 266.9600000000001 0.14 201.35L0.02 179.88C-0.37 166.63 10.05 155.57 23.3 155.19C23.53 155.17 23.78 155.17 24.02 155.17C36.94 155.17 47.61 165.47 47.99 178.47L48.15 202.11C47.32 254.61 67.31 303.9700000000001 104.43 341.11C143.19 379.9100000000001 195.77 400.7800000000001 252.11 399.9700000000001C321.56 398.94 386.8400000000001 364.4100000000001 426.73 307.5800000000001C434.3400000000001 296.7200000000001 449.29 294.13 460.15 301.7200000000001C470.99 309.3400000000001 473.61 324.31 465.99 335.15z" />
    +    <glyph glyph-name="fire-extinguisher"
    +      unicode="&#xF134;"
    +      horiz-adv-x="448" d=" M434.027 421.671L266.027 393.671C254.693 391.782 256 380.2 256 376H197.668C208.353 411.892 181.446 448 144 448C104.565 448 77.632 408.324 91.772 371.7970000000001C39.733 358.746 16.391 317.584 1.723 280.913C-3.2 268.606 2.786 254.639 15.093 249.716C27.41 244.79 41.372 250.791 46.289 263.086C75.058 335.01 106.964 328 168 328V300.924C126.457 290.062 96 251.689 96 206.795V-40C96 -53.255 106.745 -64 120 -64H264C277.255 -64 288 -53.255 288 -40V208C288 252.731 257.404 290.312 216 300.9700000000001V328H256C256 325.026 254.297 312.284 266.027 310.329L434.027 282.329C441.342 281.11 448 286.75 448 294.166V409.834C448 417.25 441.342 422.89 434.027 421.671zM144 376C135.178 376 128 383.178 128 392S135.178 408 144 408S160 400.822 160 392S152.822 376 144 376z" />
    +    <glyph glyph-name="fire"
    +      unicode="&#xF06D;"
    +      horiz-adv-x="384" d=" M216 424.142C216 447.944 185.347 456.907 171.851 437.18C48 256.149 224 248 224 160C224 124.371 194.886 95.542 159.15 96.006C123.98 96.462 96 125.78 96 160.954V246.464C96 268.1670000000001 69.529 278.689 54.568 262.968C27.801 234.842 0 186.668 0 128C0 22.131 86.131 -64 192 -64S384 22.131 384 128C384 298.29 216 321.003 216 424.142z" />
    +    <glyph glyph-name="first-aid"
    +      unicode="&#xF479;"
    +      horiz-adv-x="576" d=" M0 368V16C0 -10.5 21.5 -32 48 -32H96V416H48C21.5 416 0 394.5 0 368zM128 -32H448V416H128V-32zM192 216C192 220.4 195.6 224 200 224H256V280C256 284.4 259.6 288 264 288H312C316.4 288 320 284.4 320 280V224H376C380.4 224 384 220.4 384 216V168C384 163.6 380.4 160 376 160H320V104C320 99.6 316.4 96 312 96H264C259.6 96 256 99.6 256 104V160H200C195.6 160 192 163.6 192 168V216zM528 416H480V-32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416z" />
    +    <glyph glyph-name="fish"
    +      unicode="&#xF578;"
    +      horiz-adv-x="576" d=" M327.1 352C237.13 352 158.56 297.23 114.83 250.37L27.5 316.42C15.37 325.6 -2.74 315.82 0.36 301.76L24.54 192L0.35 82.23C-2.75 68.17 15.36 58.4 27.49 67.57L114.82 133.62C158.55 86.77 237.13 32 327.1 32C464.56 32 576 160 576 192S464.56 352 327.1 352zM414.5300000000001 168C401.2800000000001 168 390.5300000000001 178.75 390.5300000000001 192C390.5300000000001 205.26 401.2800000000001 216 414.5300000000001 216C427.79 216 438.5300000000001 205.26 438.5300000000001 192C438.5300000000001 178.75 427.7800000000001 168 414.5300000000001 168z" />
    +    <glyph glyph-name="fist-raised"
    +      unicode="&#xF6DE;"
    +      horiz-adv-x="384" d=" M255.98 288V432C255.98 440.84 248.82 448 239.98 448H207.98C199.14 448 191.98 440.84 191.98 432V285.07C197 286.85 202.32 288 207.95 288H255.98zM383.98 192.01C383.9700000000001 227.35 355.32 256 319.99 256H207.85C199.07 256 191.95 248.93 191.95 240.15V239.59C191.95 213.32 213.25 192 239.52 192H274.78C284.46 192 287.98 188.42 287.98 184V167.8C287.98 163.51 284.39 160.0200000000001 280.1 159.8C235.58 157.5200000000001 215.94 135.09 184.05 87.25L177.74 77.78A7.993999999999999 7.993999999999999 0 0 0 166.65 75.56L153.34 84.4399999999999A7.993999999999999 7.993999999999999 0 0 0 151.12 95.5299999999999L157.43 104.9999999999999C173.16 128.6 187.63 148.2599999999999 204.74 163.0799999999999C187.47 168.5899999999999 173.34 181.1999999999999 165.87 197.5299999999999C159.28 194.1199999999999 151.91 192.0099999999999 144 192.0099999999999H111.9999999999999C99.6599999999999 192.0099999999999 88.51 196.8199999999999 79.9999999999999 204.4899999999999C71.48 196.81 60.33 192 48 192H16C10.36 192 5.03 193.15 0 194.95V117.02C0 83.07 13.48 50.52 37.49 26.51L63.99 0V-64H319.97V-0.04L355.88 35.88A96.035 96.035 0 0 1 384 103.79L383.98 192.01zM351.9700000000001 282.1V400C351.9700000000001 408.8400000000001 344.81 416 335.9700000000001 416H303.9700000000001C295.1300000000001 416 287.9700000000001 408.8400000000001 287.9700000000001 400V288H319.9700000000001C331.25 288 341.9100000000001 285.69 351.9700000000001 282.1zM16 224H48C56.84 224 64 231.16 64 240V368C64 376.8400000000001 56.84 384 48 384H16C7.16 384 0 376.8400000000001 0 368V240C0 231.16 7.16 224 16 224zM111.99 224H143.99C152.83 224 159.99 231.16 159.99 240V400C159.99 408.8400000000001 152.83 416 143.99 416H111.99C103.15 416 95.99 408.8400000000001 95.99 400V240C95.99 231.16 103.15 224 111.99 224z" />
    +    <glyph glyph-name="flag-checkered"
    +      unicode="&#xF11E;"
    +      horiz-adv-x="512" d=" M466.515 381.072C487.731 390.926 512 375.449 512 352.056V108.956C512 98.43 506.839 88.549 498.157 82.598C462.32 58.034 423.822 41.74 375.652 41.74C308.279 41.74 264.022 76.523 210.435 76.523C159.582 76.523 124.311 66.465 96 54.401V-40C96 -53.255 85.255 -64 72 -64H56C42.745 -64 32 -53.255 32 -40V346.055C17.497 356.175 8 372.974 8 392C8 423.704 34.345 449.254 66.338 447.952C94.806 446.794 118.117 423.984 119.889 395.548C120.409 387.206 119.079 379.238 116.303 371.986C137.039 379.616 159.393 384 184.348 384C251.721 384 295.978 349.217 349.5650000000001 349.217C390.0610000000001 349.217 432.177 365.123 466.515 381.072zM96 313.37V242.88C125 253.55 147.18 260.71 169.6 263.79V335.36C146.1 333.19 129.16 325.57 96 313.37zM316.8 304.18C290.3830000000001 308.852 266.914 318.159 243.2 325.52V258.1C267.375 251.3940000000001 290.766 241.6560000000001 316.8 235.79V304.18zM169.6 263.79V193.75C202.396 196.728 223.51 194.385 243.2 189.95V258.1C217.953 265.135 196.619 267.523 169.6 263.79zM243.2 121.5600000000001C269.538 116.9080000000001 292.932 107.633 316.8 100.2200000000001V167.6300000000001C292.523 174.3760000000001 269.26 184.0800000000001 243.2 189.9500000000001V121.5600000000001zM96 105.9C119.62 114.29 143.79 119.74 169.6 122.46V193.75C143.49 191.4 122.24 185.71 96 176.39V105.9zM464 327.5C442.7 318.65 417.41 309.86 390.4 305.03V233.12C417.71 237.48 440.43 247.22 464 257.01V327.5zM464 117.54V188.03C441.81 173.83 415.2200000000001 165.42 390.4 162.01V90.43C415.47 92.81 438.89 101.47 464 117.54zM316.8 235.79V167.63C342.464 160.496 363.416 158.288 390.4 162.01V233.12C364.401 228.933 340.457 230.444 316.8 235.79z" />
    +    <glyph glyph-name="flag"
    +      unicode="&#xF024;"
    +      horiz-adv-x="512" d=" M349.565 349.217C295.978 349.217 251.721 384 184.348 384C159.393 384 137.039 379.616 116.303 371.987A55.947 55.947 0 0 1 119.889 395.549C118.117 423.985 94.806 446.794 66.338 447.952C34.345 449.254 8 423.704 8 392C8 372.974 17.497 356.175 32 346.055V-40C32 -53.255 42.745 -64 56 -64H72C85.255 -64 96 -53.255 96 -40V54.4C124.311 66.464 159.582 76.522 210.435 76.522C264.023 76.522 308.279 41.739 375.6520000000001 41.739C423.8210000000001 41.739 462.3190000000001 58.033 498.157 82.597C506.84 88.548 512 98.429 512 108.955V352.055C512 375.448 487.731 390.925 466.515 381.071C432.177 365.123 390.061 349.217 349.565 349.217z" />
    +    <glyph glyph-name="flask"
    +      unicode="&#xF0C3;"
    +      horiz-adv-x="448" d=" M437.2 44.5L320 233V384H328C341.3 384 352 394.7 352 408V424C352 437.3 341.3 448 328 448H120C106.7 448 96 437.3 96 424V408C96 394.7 106.7 384 120 384H128V233L10.8 44.5C-18.5 -2.6 15.3 -64 70.9 -64H377.1C432.8 -64 466.5 -2.5 437.2000000000001 44.5zM137.9 128L186.1 205.6C189.8 210.8 191.9 217.2 191.9 224V384H255.9000000000001V224C255.9000000000001 217.1 258.1 210.8 261.7000000000001 205.6L309.9000000000001 128H137.9z" />
    +    <glyph glyph-name="flushed"
    +      unicode="&#xF579;"
    +      horiz-adv-x="496" d=" M344 248C330.7 248 320 237.3 320 224S330.7 200 344 200S368 210.7 368 224S357.3 248 344 248zM152 248C138.7 248 128 237.3 128 224S138.7 200 152 200S176 210.7 176 224S165.3 248 152 248zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM80 224C80 263.8 112.2 296 152 296S224 263.8 224 224S191.8 152 152 152S80 184.2 80 224zM312 48H184C162.8 48 162.8 80 184 80H312C333.2 80 333.2 48 312 48zM344 152C304.2 152 272 184.2 272 224S304.2 296 344 296S416 263.8 416 224S383.8 152 344 152z" />
    +    <glyph glyph-name="folder-minus"
    +      unicode="&#xF65D;"
    +      horiz-adv-x="512" d=" M464 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V272C512 298.51 490.51 320 464 320zM368 152C368 143.16 360.84 136 352 136H160C151.16 136 144 143.16 144 152V168C144 176.84 151.16 184 160 184H352C360.84 184 368 176.84 368 168V152z" />
    +    <glyph glyph-name="folder-open"
    +      unicode="&#xF07C;"
    +      horiz-adv-x="576" d=" M572.694 155.907L500.27 31.752A63.99699999999999 63.99699999999999 0 0 0 444.989 0H45.025C26.502 0 14.961 20.093 24.294 36.093L96.718 160.2480000000001A64 64 0 0 0 152 192H551.9639999999999C570.487 192 582.0279999999999 171.907 572.694 155.907zM152 224H480V272C480 298.51 458.51 320 432 320H272L208 384H48C21.49 384 0 362.51 0 336V57.954L69.077 176.372C86.214 205.75 117.989 224 152 224z" />
    +    <glyph glyph-name="folder-plus"
    +      unicode="&#xF65E;"
    +      horiz-adv-x="512" d=" M464 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V272C512 298.51 490.51 320 464 320zM368 152C368 143.16 360.84 136 352 136H280V64C280 55.16 272.84 48 264 48H248C239.16 48 232 55.16 232 64V136H160C151.16 136 144 143.16 144 152V168C144 176.84 151.16 184 160 184H232V256C232 264.8400000000001 239.16 272 248 272H264C272.84 272 280 264.8400000000001 280 256V184H352C360.84 184 368 176.84 368 168V152z" />
    +    <glyph glyph-name="folder"
    +      unicode="&#xF07B;"
    +      horiz-adv-x="512" d=" M464 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V272C512 298.51 490.51 320 464 320z" />
    +    <glyph glyph-name="font"
    +      unicode="&#xF031;"
    +      horiz-adv-x="448" d=" M152 32H127.987L154.573 112.782H292.8L319.386 32H296C287.163 32 280 24.837 280 16V-16C280 -24.837 287.163 -32 296 -32H432C440.837 -32 448 -24.837 448 -16V16C448 24.837 440.837 32 432 32H405.261L275.495 405.254A16 16 0 0 1 260.382 416H187.616A16 16 0 0 1 172.503 405.254L42.739 32H16C7.163 32 0 24.837 0 16V-16C0 -24.837 7.163 -32 16 -32H152C160.837 -32 168 -24.837 168 -16V16C168 24.837 160.837 32 152 32zM216.353 303.778C220.701 318.9940000000001 222.963 331.9340000000001 223.939 338.4220000000001C224.778 331.901 226.878 318.9460000000001 231.6660000000001 303.716L273.0010000000001 179.71H174.382L216.353 303.778z" />
    +    <glyph glyph-name="football-ball"
    +      unicode="&#xF44E;"
    +      horiz-adv-x="496" d=" M481.5 387.7C476.7 405.9 462.4 420.2 444.2 425.1C420.3 431.5 383 439.1 339.4 440L496 283.2C495.2 326.7 487.8 363.8 481.5 387.7zM14.5 -3.7C19.3 -21.9 33.6 -36.2 51.8 -41.1C75.7 -47.4999999999999 113 -55.1 156.6 -55.9999999999999L0 100.8C0.8 57.3 8.2 20.2 14.5 -3.7zM4.2 164.6L220.4 -52C352.9 -32.6 469.2 66.7 491.9 219.4L275.6 436C143.1 416.6 26.8 317.3 4.2 164.6zM321.5 288.2000000000001C324.6 291.3 329.7 291.3 332.8 288.2000000000001L344.1 276.9C347.2000000000001 273.8 347.2000000000001 268.7000000000001 344.1 265.6L315.8 237.3L344.1 209C347.2000000000001 205.9 347.2000000000001 200.8 344.1 197.7L332.8 186.4C329.7 183.3 324.6 183.3 321.5 186.4L293.2 214.7L270.6 192L298.9 163.7C302 160.6 302 155.5 298.9 152.4L287.6 141.1C284.5 138 279.4 138 276.3 141.1L248 169.4L225.4 146.8L253.7 118.5C256.8 115.3999999999999 256.8 110.3 253.7 107.1999999999999L242.4 95.8999999999999C239.3 92.7999999999999 234.2 92.7999999999999 231.1 95.8999999999999L202.8 124.1999999999999L174.5 95.8999999999999C171.4 92.7999999999999 166.3 92.7999999999999 163.2 95.8999999999999L151.9 107.1999999999999C148.8 110.3 148.8 115.3999999999999 151.9 118.5L180.2 146.8L151.9 175C148.8 178.1 148.8 183.1999999999999 151.9 186.3L163.2 197.6C166.3 200.7 171.4 200.7 174.5 197.6L202.8 169.3L225.4 191.9L197.1 220.2C194 223.3 194 228.4 197.1 231.5L208.4 242.8C211.5 245.9 216.6 245.9 219.7 242.8L248 214.5L270.6 237.1L242.3 265.4C239.2 268.5 239.2 273.6 242.3 276.7000000000001L253.6 288C256.7000000000001 291.1 261.8 291.1 264.9000000000001 288L293.2000000000001 259.7000000000001L321.5000000000001 288.2000000000001z" />
    +    <glyph glyph-name="forward"
    +      unicode="&#xF04E;"
    +      horiz-adv-x="512" d=" M500.5 216.6L308.5 376.6C287.9 393.7 256 379.4 256 352V32C256 4.6 287.9 -9.8 308.5 7.4L500.5 167.4C515.8 180.2 515.8 203.8 500.5 216.6zM244.5 216.6L52.5 376.6C31.9 393.7 0 379.4 0 352V32C0 4.6 31.9 -9.8 52.5 7.4L244.5 167.4C259.8 180.2 259.8 203.8 244.5 216.6z" />
    +    <glyph glyph-name="frog"
    +      unicode="&#xF52E;"
    +      horiz-adv-x="576" d=" M446.53 350.57C439.67 387.77 407.19 416 368 416C328.77 416 296.28 387.71 289.46 350.46C126.75 335.04 -0.5 197.88 0 31.02C0.11 -3.9 29.08 -32 64 -32H368C376.84 -32 384 -24.84 384 -16C384 1.67 369.67 16 352 16H272.51L308.31 64.33C332.45 100.56 318.6600000000001 152.61 274.6 170.93C250.7100000000001 180.86 223.05 175.5799999999999 202.36 160.05L169.6 135.46C162.54 130.15 152.51 131.55 147.19 138.65C141.89 145.73 143.31 155.76 150.38 161.06L185.16 187.15C222 214.81 273.4400000000001 214.77 310.29 187.15C321.1600000000001 179 356.1600000000001 148.09 351.0900000000001 93.94L469.62 -32H560C568.84 -32 576 -24.84 576 -16C576 1.67 561.67 16 544 16H490.37L391.85 120.68L546.29 207.33A58.15999999999999 58.15999999999999 0 0 1 576 258.06C576 279.4600000000001 564.28 299.01 545.52 309.29C504.96 331.51 446.53 350.57 446.53 350.57zM368 312C354.74 312 344 322.75 344 336C344 349.26 354.74 360 368 360C381.25 360 392 349.26 392 336C392 322.75 381.25 312 368 312z" />
    +    <glyph glyph-name="frown-open"
    +      unicode="&#xF57A;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM136 240C136 257.7 150.3 272 168 272S200 257.7 200 240S185.7 208 168 208S136 222.3 136 240zM323.3 56.7C292.1 66.3 263.9000000000001 72 248 72S203.9 66.3 172.7 56.7C161.2 53.2 150.2 63 152.2 74.8C159.2 114.8 212.3 136 248 136S336.8 114.7 343.8 74.8C345.8 62.9 334.7 53.2 323.3 56.7zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208z" />
    +    <glyph glyph-name="frown"
    +      unicode="&#xF119;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 272C345.7 272 360 257.7 360 240S345.7 208 328 208S296 222.3 296 240S310.3 272 328 272zM168 272C185.7 272 200 257.7 200 240S185.7 208 168 208S136 222.3 136 240S150.3 272 168 272zM338.2 53.8C315.8 80.6 282.9 96 248 96S180.2 80.6 157.8 53.8C144.3 37.5 119.7 58 133.2 74.3C161.7 108.4 203.6 128 248 128S334.3 108.4 362.7 74.2C376.3 58 351.7 37.5 338.2 53.8z" />
    +    <glyph glyph-name="funnel-dollar"
    +      unicode="&#xF662;"
    +      horiz-adv-x="640" d=" M433.46 282.06L534.66 393.93C554.61 413.88 540.48 448 512.26 448H31.74C3.52 448 -10.61 413.88 9.34 393.93L192 192V36.08C192 23.4900000000001 197.93 11.64 208 4.08L287.99 -55.92C308.85 -71.5599999999999 336.4600000000001 -62.89 347.2100000000001 -42.35C310.8 -7.38 288 41.65 288 96C288 185.79 350.05 261.17 433.4600000000001 282.06zM480 256C391.63 256 320 184.37 320 96S391.63 -64 480 -64S640 7.63 640 96S568.37 256 480 256zM496 16.12V0C496 -4.42 492.42 -8 488 -8H472C467.58 -8 464 -4.42 464 0V16.29C452.71 16.87 441.73 20.81 432.63 27.64C428.73 30.5700000000001 428.53 36.41 432.06 39.78L443.81 50.99C446.58 53.63 450.7 53.75 453.94 51.72C457.81 49.3 462.2 48 466.76 48H494.87C501.37 48 506.67 53.92 506.67 61.19C506.67 67.14 503.06 72.38 497.9 73.92L452.9 87.42C434.3100000000001 93 421.3200000000001 110.84 421.3200000000001 130.81C421.3200000000001 155.33 440.3700000000001 175.25 463.9900000000001 175.88V192C463.9900000000001 196.42 467.5700000000001 200 471.9900000000001 200H487.9900000000001C492.4100000000001 200 495.9900000000001 196.42 495.9900000000001 192V175.71C507.2800000000001 175.13 518.2600000000001 171.2 527.36 164.36C531.26 161.43 531.46 155.59 527.9300000000001 152.22L516.1800000000001 141.01C513.4100000000001 138.37 509.2900000000001 138.25 506.0500000000001 140.28C502.1800000000001 142.71 497.7900000000001 144 493.2300000000001 144H465.1200000000001C458.6200000000001 144 453.3200000000001 138.08 453.3200000000001 130.81C453.3200000000001 124.86 456.9300000000001 119.62 462.09 118.08L507.09 104.58C525.6800000000001 99 538.6700000000001 81.16 538.6700000000001 61.19C538.6700000000001 36.66 519.6300000000001 16.75 496.0000000000001 16.12z" />
    +    <glyph glyph-name="futbol"
    +      unicode="&#xF1E3;"
    +      horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM456 192L455.997 192.282L429.933 169.541L367.254 228.041L383.7080000000001 312.396L418.011 309.324C393.122 343.54 358.007 369.413 317.302 382.4650000000001L330.9530000000001 350.526L256 309L181.047 350.525L194.698 382.464C154.067 369.436 118.918 343.594 93.989 309.323L128.554 312.396L144.746 228.041L82.068 169.541L56.004 192.282L56.001 192C56.001 148.985 69.498 108.048 94.473 74.009L102.177 107.906L187.315 97.459L223.616 19.633L193.714 1.847C233.916 -11.275 278.004 -11.301 318.286 1.847L288.384 19.633L324.685 97.4590000000001L409.823 107.9060000000001L417.527 74.0090000000001C442.503 108.048 456 148.985 456 192zM207.898 122.429L178.004 213.741L256 270.2680000000001L333.996 213.741L304.374 122.429H207.898z" />
    +    <glyph glyph-name="gamepad"
    +      unicode="&#xF11B;"
    +      horiz-adv-x="640" d=" M480 352H160C71.6 352 0 280.4 0 192S71.6 32 160 32C204.8 32 245.2 50.4 274.2 80H365.7C394.7 50.4 435.2 32 479.9 32C568.3 32 639.9 103.6 639.9 192S568.4 352 480 352zM256 172C256 165.4 250.6 160 244 160H192V108C192 101.4 186.6 96 180 96H140C133.4 96 128 101.4 128 108V160H76C69.4 160 64 165.4 64 172V212C64 218.6 69.4 224 76 224H128V276C128 282.6 133.4 288 140 288H180C186.6 288 192 282.6 192 276V224H244C250.6 224 256 218.6 256 212V172zM440 104C413.5 104 392 125.5 392 152S413.5 200 440 200S488 178.5 488 152S466.5 104 440 104zM520 184C493.5 184 472 205.5 472 232S493.5 280 520 280S568 258.5 568 232S546.5 184 520 184z" />
    +    <glyph glyph-name="gas-pump"
    +      unicode="&#xF52F;"
    +      horiz-adv-x="512" d=" M336 0H16C7.2 0 0 -7.2 0 -16V-48C0 -56.8 7.2 -64 16 -64H336C344.8 -64 352 -56.8 352 -48V-16C352 -7.2 344.8 0 336 0zM493.2 340.7L412.2 421.7C406 427.9 395.8 427.9 389.6 421.7L378.3 410.4C372.1 404.2 372.1 394 378.3 387.8L416 350.1V288C416 259.9 436.9 236.7 464 232.8V72C464 58.8 453.2 48 440 48S416 58.8 416 72V104C416 152.6 376.6 192 328 192H320V384C320 419.3 291.3 448 256 448H96C60.7 448 32 419.3 32 384V32H320V144H328C350.1 144 368 126.1 368 104V76.2C368 38.5 395 4.2 432.5 0.3C475.5 -4.0000000000001 512 29.8 512 71.9999999999999V295.4C512 312.4 505.2 328.7 493.2 340.7zM256 256H96V384H256V256z" />
    +    <glyph glyph-name="gavel"
    +      unicode="&#xF0E3;"
    +      horiz-adv-x="512" d=" M504.971 248.638L482.344 271.265C472.971 280.6380000000001 457.775 280.6380000000001 448.403 271.265L442.7460000000001 265.608L329.608 378.745L335.265 384.402C344.638 393.775 344.638 408.971 335.265 418.343L312.638 440.971C303.265 450.344 288.069 450.344 278.697 440.971L154.246 316.52C144.873 307.1470000000001 144.873 291.951 154.246 282.579L176.873 259.952C186.246 250.579 201.442 250.579 210.814 259.952L216.471 265.6090000000001L256.069 226.011L175.029 144.971L169.372 150.628C156.875 163.125 136.614 163.125 124.117 150.628L9.373 35.882C-3.124 23.385 -3.124 3.124 9.373 -9.373L54.628 -54.628C67.125 -67.125 87.386 -67.125 99.883 -54.628L214.628 60.117C227.125 72.614 227.125 92.875 214.628 105.372L208.971 111.029L290.011 192.069L329.6090000000001 152.471L323.9520000000001 146.814C314.5790000000001 137.441 314.5790000000001 122.245 323.9520000000001 112.8730000000001L346.5790000000001 90.246C355.9520000000001 80.8730000000001 371.1480000000001 80.8730000000001 380.5200000000001 90.246L504.9710000000001 214.697C514.3430000000001 224.069 514.3430000000001 239.2650000000001 504.9710000000001 248.6380000000001z" />
    +    <glyph glyph-name="gem"
    +      unicode="&#xF3A5;"
    +      horiz-adv-x="576" d=" M485.5 448L576 288H474.9L405.7 448H485.5zM357.5 448L426.7 288H149.3L218.5 448H357.5zM90.5 448H170.3L101.1 288H0L90.5 448zM0 256H100.7L223.7 4.3C225.2 1.2 221 -1.6 218.7 1L0 256zM148.2 256H427.8L290.8 -62.2C289.8 -64.6 286.3 -64.6 285.3 -62.2L148.2 256zM352.3 4.3L475.3 256H576L357.3 1.1C355 -1.6 350.8 1.2 352.3 4.3z" />
    +    <glyph glyph-name="genderless"
    +      unicode="&#xF22D;"
    +      horiz-adv-x="288" d=" M144 272C188.1 272 224 236.1 224 192S188.1 112 144 112S64 147.9 64 192S99.9 272 144 272M144 336C64.5 336 0 271.5 0 192S64.5 48 144 48S288 112.5 288 192S223.5 336 144 336z" />
    +    <glyph glyph-name="ghost"
    +      unicode="&#xF6E2;"
    +      horiz-adv-x="384" d=" M186.1 447.9100000000001C81.01 444.76 0 353.08 0 247.95V-15.97C0 -30.23 17.23 -37.36 27.31 -27.28L52.23 -8.75C58.89 -3.8 68.23 -4.76 73.74 -10.96L116.69 -59.31C122.94 -65.5599999999999 133.07 -65.5599999999999 139.32 -59.31L180.04 -13.46C186.41 -6.29 197.6 -6.29 203.96 -13.46L244.6800000000001 -59.31C250.9300000000001 -65.5599999999999 261.0600000000001 -65.5599999999999 267.3100000000001 -59.31L310.2600000000001 -10.96C315.7700000000001 -4.76 325.1100000000001 -3.79 331.7700000000001 -8.75L356.6900000000001 -27.28C366.7700000000001 -37.36 384.0000000000001 -30.22 384.0000000000001 -15.97V256C384 364 294.83 451.17 186.1 447.9100000000001zM128 224C110.33 224 96 238.33 96 256S110.33 288 128 288S160 273.67 160 256S145.67 224 128 224zM256 224C238.33 224 224 238.33 224 256S238.33 288 256 288S288 273.67 288 256S273.67 224 256 224z" />
    +    <glyph glyph-name="gift"
    +      unicode="&#xF06B;"
    +      horiz-adv-x="512" d=" M32 0C32 -17.7 46.3 -32 64 -32H224V128H32V0zM480 288H437.9C444.1 300.1 448 313.5 448 328C448 376.5 408.5 416 360 416C318.4 416 291.5 394.7 257 347.7C222.5 394.7 195.6 416 154 416C105.5 416 66 376.5 66 328C66 313.5 69.8 300.1 76.1 288H32C14.3 288 0 273.7 0 256V176C0 167.2 7.2 160 16 160H496C504.8 160 512 167.2 512 176V256C512 273.7 497.7 288 480 288zM153.9 288C131.8 288 113.9 305.9 113.9 328S131.8 368 153.9 368C173.8 368 188.5 364.7 240 288H153.9zM360 288H273.9C325.3 364.5 339.6 368 360 368C382.1 368 400 350.1 400 328S382.1 288 360 288zM288 -32H448C465.7 -32 480 -17.7 480 0V128H288V-32z" />
    +    <glyph glyph-name="glass-martini-alt"
    +      unicode="&#xF57B;"
    +      horiz-adv-x="512" d=" M502.05 390.4C523.3 411.66 508.25 448 478.2 448H33.8C3.75 448 -11.3 411.66 9.95 390.4L224 176.36V-16H168C145.91 -16 128 -33.91 128 -56C128 -60.42 131.58 -64 136 -64H376C380.42 -64 384 -60.42 384 -56C384 -33.91 366.09 -16 344 -16H288V176.36L502.05 390.4zM443.77 400L395.77 352H116.24L68.24 400H443.77z" />
    +    <glyph glyph-name="glass-martini"
    +      unicode="&#xF000;"
    +      horiz-adv-x="512" d=" M502.05 390.4C523.3 411.66 508.25 448 478.2 448H33.8C3.75 448 -11.3 411.66 9.95 390.4L224 176.36V-16H168C145.91 -16 128 -33.91 128 -56C128 -60.42 131.58 -64 136 -64H376C380.42 -64 384 -60.42 384 -56C384 -33.91 366.09 -16 344 -16H288V176.36L502.05 390.4z" />
    +    <glyph glyph-name="glasses"
    +      unicode="&#xF530;"
    +      horiz-adv-x="576" d=" M574.1 167.63L528.75 349.3400000000001C522.84 373.04 507.16 393.39 485.75 405.15C464.31 416.88 438.78 419.26 415.56 411.48L400.31 406.4C391.92 403.61 387.39 394.54 390.19 386.1600000000001L395.25 370.98C398.04 362.6 407.1 358.0700000000001 415.48 360.86L428.6600000000001 365.25C439.5300000000001 368.87 451.66 368.82 461.8200000000001 363.52C472.1100000000001 358.15 479.39 348.9600000000001 482.1900000000001 337.7000000000001L520.6500000000001 183.88C498.4600000000001 190.69 470.8600000000001 196.34 439.4500000000001 196.34C404.6800000000001 196.34 365.4700000000001 189.32 324.6000000000002 169.6H251.4200000000002C210.5500000000001 189.34 171.3400000000002 196.35 136.5600000000001 196.35C105.1400000000001 196.35 77.5400000000001 190.7000000000001 55.3500000000001 183.8900000000001L93.8100000000001 337.7200000000001C96.6000000000001 348.9700000000001 103.9000000000001 358.1700000000001 114.1900000000001 363.5300000000001C124.3500000000001 368.8300000000001 136.4700000000001 368.8800000000001 147.3400000000001 365.2600000000001L160.5100000000001 360.8700000000001C168.8900000000001 358.0800000000001 177.9500000000001 362.6100000000001 180.7400000000001 370.9900000000001L185.8000000000001 386.1700000000001C188.6000000000001 394.5500000000001 184.0700000000001 403.6200000000001 175.6800000000001 406.4100000000001L160.4300000000001 411.4900000000001C137.2100000000001 419.2700000000001 111.6800000000001 416.9000000000001 90.2400000000001 405.1600000000001C68.8300000000001 393.3900000000001 53.1500000000001 373.0500000000001 47.2400000000001 349.3600000000001L1.9 167.63A64.218 64.218 0 0 1 0 152.14V81.89C0 18.99 51.58 -32 115.2 -32H152.32C212.6 -32 262.69 13.94 267.2 73.37L270.13 112H305.88L308.81 73.37C313.31 13.94 363.4 -32 423.68 -32H460.8C524.42 -32 576 18.99 576 81.88V152.13C576 157.36 575.36 162.56 574.1 167.63zM203.38 78.21C201.41 52.3 178.98 32 152.32 32H115.2C86.97 32 64 54.38 64 81.89V119.43C82.12 125.92 107.42 132.35 136.58 132.35C160.44 132.35 183.84 128.0200000000001 206.51 119.43L203.38 78.21zM512 81.88C512 54.37 489.03 32 460.8 32H423.68C397.01 32 374.58 52.3 372.62 78.21L369.49 119.43C392.1600000000001 128.0199999999999 415.57 132.35 439.44 132.35C468.56 132.35 493.87 125.91 511.99 119.42V81.8799999999999z" />
    +    <glyph glyph-name="globe-africa"
    +      unicode="&#xF57C;"
    +      horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM408 224.5V217.57C408 211.7 404.68 206.33 399.43 203.71L384.04 196.01A15.485 15.485 0 0 0 368.5100000000001 196.98L350.3000000000001 209.12A15.519999999999998 15.519999999999998 0 0 1 336.8000000000001 210.93L334.1500000000001 210.05C324.4500000000001 206.82 320.4900000000001 195.26 326.1600000000001 186.75L339.4000000000001 166.89C342.2700000000001 162.58 347.1100000000001 159.99 352.2900000000001 159.99H360.5000000000001C369.0600000000001 159.99 376.0000000000001 153.05 376.0000000000001 144.49V133.15C376.0000000000001 129.8 374.9100000000001 126.53 372.9000000000001 123.85L354.1600000000001 98.87C352.74 96.97 351.7700000000001 94.77 351.3300000000001 92.44L347.0300000000001 69.61C346.4100000000001 66.32 344.74 63.32 342.2700000000001 61.05A159.60800000000003 159.60800000000003 0 0 1 317.2700000000001 31.89L304.2400000000001 12.34A27.756 27.756 0 0 0 281.1500000000001 -0.02C270.6400000000001 -0.02 261.0300000000001 5.92 256.3300000000001 15.3199999999999A78.902 78.902 0 0 0 248.0000000000001 50.61V80.5C248.0000000000001 89.06 241.0600000000001 96 232.5000000000001 96H206.6200000000001C192.1300000000001 96 178.2400000000001 101.76 167.9900000000001 112A54.65899999999999 54.65899999999999 0 0 0 151.9900000000001 150.63V164.69C151.9900000000001 181.88 160.0900000000001 198.07 173.8400000000001 208.39L201.4200000000001 229.08A54.663 54.663 0 0 0 234.2000000000001 240.01H235.0900000000001C243.5700000000001 240.01 251.9400000000001 238.04 259.5200000000001 234.24L274.2400000000001 226.88C277.9200000000001 225.04 282.1700000000001 224.74 286.0700000000001 226.04L333.3800000000001 241.81C339.7100000000001 243.92 343.9800000000001 249.84 343.9800000000001 256.51C343.9800000000001 265.07 337.0400000000001 272.01 328.4800000000001 272.01H318.3900000000001C314.2800000000001 272.01 310.3400000000001 273.64 307.4300000000001 276.55L300.5100000000001 283.4699999999999A15.493 15.493 0 0 1 289.5500000000002 288.01H199.5C190.94 288.01 184 294.95 184 303.51V307.91C184 315.02 188.84 321.2199999999999 195.74 322.95L210.19 326.56C213.93 327.5 217.19 329.79 219.33 333L227.41 345.1099999999999C230.28 349.42 235.12 352.01 240.3 352.01H264.51C273.07 352.01 280.01 358.95 280.01 367.51V389.2099999999999C359.23 376.37 422.86 316.98 441.93 240H423.5C414.94 240 408 233.06 408 224.5z" />
    +    <glyph glyph-name="globe-americas"
    +      unicode="&#xF57D;"
    +      horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM330.29 82.4C326.3900000000001 78.52 322.3 74.45 318.98 71.12C315.99 68.12 313.88 64.42 312.81 60.41C311.3 54.75 310.08 49.03 308.04 43.54L290.6500000000001 -3.31C276.8900000000001 -6.31 262.6500000000001 -8 248.0000000000001 -8V19.38C249.6900000000001 32 240.3600000000001 55.64 225.3700000000001 70.63C219.37 76.63 216 84.77 216 93.26V125.27C216 136.91 209.73 147.61 199.54 153.24C185.17 161.19 164.73 172.3 150.73 179.35C139.25 185.13 128.63 192.49 119.08 201.1L118.28 201.82A114.792 114.792 0 0 0 100.22 222.56C90.84 236.3300000000001 75.56 258.98 65.63 273.7000000000001C86.1 319.2000000000001 122.99 355.7400000000001 168.83 375.5900000000001L192.84 363.5800000000001C203.48 358.26 216 365.99 216 377.89V389.19C223.99 390.48 232.12 391.3 240.39 391.61L268.69 363.31C274.94 357.06 274.94 346.93 268.69 340.68L264 336L253.66 325.66C250.54 322.54 250.54 317.4700000000001 253.66 314.35L258.35 309.66C261.4700000000001 306.54 261.4700000000001 301.4700000000001 258.35 298.35L250.35 290.35A8.008 8.008 0 0 0 244.6900000000001 288.01H235.7C233.62 288.01 231.62 287.2 230.12 285.74L220.2 276.09A8.008 8.008 0 0 1 218.62 266.78L234.21 235.59C236.87 230.27 233 224.01 227.06 224.01H221.42C219.49 224.01 217.63 224.71 216.18 225.97L206.9 234.03A16.017 16.017 0 0 1 191.35 237.13L160.18 226.74A11.95 11.95 0 0 1 152.01 215.4C152.01 210.87 154.57 206.74 158.62 204.71L169.7000000000001 199.17C179.1100000000001 194.46 189.4900000000001 192.01 200.0100000000001 192.01S222.6000000000001 164.72 232.0100000000001 160.01H298.7600000000001C307.2500000000001 160.01 315.3800000000001 156.64 321.3900000000001 150.64L335.0800000000001 136.95A30.503000000000004 30.503000000000004 0 0 0 344.0100000000001 115.38A46.536 46.536 0 0 0 330.29 82.4zM417 173.75C411.21 175.2 406.1600000000001 178.75 402.85 183.72L384.87 210.69A23.97 23.97 0 0 0 384.87 237.3100000000001L404.46 266.6900000000001C406.78 270.1600000000001 409.96 272.98 413.7 274.8400000000001L426.68 281.3300000000001C440.2 254.41 448 224.13 448 192C448 183.33 447.26 174.84 446.18 166.46L417 173.75z" />
    +    <glyph glyph-name="globe-asia"
    +      unicode="&#xF57E;"
    +      horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM236.66 199.77C233.77 194.95 228.56 192 222.94 192H222.63C218.39 192 214.32 190.31 211.32 187.31L205.66 181.65C202.54 178.53 202.54 173.46 205.66 170.34L211.32 164.68C214.32 161.68 216.01 157.61 216.01 153.37V144C216.01 135.16 208.85 128 200.01 128H193.9C187.84 128 182.3 131.42 179.59 136.85L156.97 182.0800000000001C154.53 186.96 148.02 188.0200000000001 144.16 184.16L124.69 164.7000000000001C121.69 161.7000000000001 117.62 160.0100000000001 113.38 160.0100000000001H50.81C49.12 170.45 48 181.08 48 192C48 302.28 137.72 392 248 392C269.51 392 290.2 388.49 309.63 382.18L259.4700000000001 343.65C254.36 340.24 254.8400000000001 332.5900000000001 260.3300000000001 329.8400000000001L271.1600000000001 324.43C276.5800000000001 321.7200000000001 280 316.18 280 310.12V232C280 227.58 276.42 224 272 224H268.94C265.9100000000001 224 263.14 225.71 261.79 228.42C260.23 231.54 255.83 231.71 254.0300000000001 228.72L236.6600000000001 199.77zM408 89.57C408 85.33 406.31 81.26 403.31 78.26L393.74 68.69C390.74 65.69 386.67 64 382.43 64H367.27C363.03 64 358.96 65.69 355.96 68.69L342.95 81.7A26.767 26.767 0 0 1 317.53 88.74L296.26 83.42C294.99 83.1 293.69 82.94 292.38 82.94H282.04C277.8 82.94 273.73 84.63 270.73 87.63L258.82 99.54A8.008 8.008 0 0 0 256.48 105.2000000000001V115.4C256.48 118.67 258.4700000000001 121.61 261.51 122.8300000000001L300.85 138.5700000000001C302.8300000000001 139.3600000000001 304.7100000000001 140.3900000000001 306.44 141.6200000000001L330.15 158.5100000000001A7.978 7.978 0 0 0 334.79 159.9900000000001H346.88C350.11 159.9900000000001 353.0299999999999 158.0500000000001 354.2699999999999 155.0600000000001L359.62 142.21A4 4 0 0 1 363.31 139.7500000000001H367.11C368.89 139.7500000000001 370.46 140.9300000000001 370.95 142.6300000000001L375.1499999999999 157.1000000000001C375.6499999999999 158.8100000000001 377.2099999999999 159.9800000000001 378.9899999999999 159.9800000000001H385.0499999999999C387.2599999999999 159.9800000000001 389.0499999999999 158.1900000000001 389.0499999999999 155.9800000000001V143.0500000000001C389.0499999999999 140.9300000000001 389.8899999999999 138.8900000000001 391.3899999999999 137.3900000000001L403.2999999999999 125.48C406.2999999999999 122.48 407.9899999999999 118.41 407.9899999999999 114.17V89.57z" />
    +    <glyph glyph-name="globe"
    +      unicode="&#xF0AC;"
    +      horiz-adv-x="496" d=" M336.5 288C322 377.3 287.8 440 248 440S174 377.3 159.5 288H336.5zM152 192C152 169.8 153.2 148.5 155.3 128H340.6C342.7000000000001 148.5 343.9000000000001 169.8 343.9000000000001 192S342.7000000000001 235.5 340.6 256H155.3C153.2 235.5 152 214.2 152 192zM476.7 288C448.1 355.9 390.2 408.4 318.7 429.6C343.1 395.8 359.9 344.9 368.7 288H476.7zM177.2 429.6C105.8 408.4 47.8 355.9 19.3 288H127.3C136 344.9 152.8 395.8 177.2 429.6zM487.4 256H372.7C374.8 235 376 213.5 376 192S374.8 149 372.7 128H487.3C492.8 148.5 495.9 169.8 495.9 192S492.8 235.5 487.4 256zM120 192C120 213.5 121.2 235 123.3 256H8.6C3.2 235.5 0 214.2 0 192S3.2 148.5 8.6 128H123.2C121.2 149 120 170.5 120 192zM159.5 96C174 6.7 208.2 -56 248 -56S322 6.7 336.5 96H159.5zM318.8 -45.6C390.2000000000001 -24.4 448.2000000000001 28.1 476.8 96H368.8C360 39.1 343.2 -11.8 318.8 -45.6zM19.3 96C47.9 28.1 105.8 -24.4 177.3 -45.6C152.9 -11.8 136.1 39.1 127.3 96H19.3z" />
    +    <glyph glyph-name="golf-ball"
    +      unicode="&#xF450;"
    +      horiz-adv-x="416" d=" M96 32H320C320 14.3 305.7 0 288 0H272C254.3 0 240 -14.3 240 -32V-52C240 -58.6 234.6 -64 228 -64H188C181.4 -64 176 -58.6 176 -52V-32C176 -14.3 161.7 0 144 0H128C110.3 0 96 14.3 96 32zM416 240C416 165.8 377 100.8 318.5 64H97.5C39 100.8 0 165.8 0 240C0 354.9 93.1 448 208 448S416 354.9 416 240zM235.9 196.1C254.2 196.1 269 210.9 269 229.2C269 243.6 259.7 255.5 246.9 260.1C256.5 233.3 231.3 208.8 205 218.2C209.6 205.4 221.5 196.1 235.9 196.1zM285 149.2C285 163.6 275.7 175.5 262.9 180.1C272.5 153.3 247.3 128.8 221 138.2C225.6 125.4 237.5 116.1 251.9 116.1C270.2 116.1 285 131 285 149.2zM349 213.2C349 227.6 339.7 239.5 326.9 244.1C336.5 217.3 311.3 192.8 285 202.2C289.6 189.4 301.5 180.1 315.9 180.1C334.2 180.1 349 195 349 213.2z" />
    +    <glyph glyph-name="gopuram"
    +      unicode="&#xF664;"
    +      horiz-adv-x="512" d=" M496 96H480V208C480 216.84 472.84 224 464 224H448V304C448 312.8400000000001 440.84 320 432 320H416V432C416 440.84 408.84 448 400 448S384 440.84 384 432V416H320V432C320 440.84 312.84 448 304 448S288 440.84 288 432V416H224V432C224 440.84 216.84 448 208 448S192 440.84 192 432V416H128V432C128 440.84 120.84 448 112 448S96 440.84 96 432V320H80C71.16 320 64 312.8400000000001 64 304V224H48C39.16 224 32 216.84 32 208V96H16C7.16 96 0 88.84 0 80V-48C0 -56.84 7.16 -64 16 -64H96V96H128V224H160V320H192V224H160V96H128V-64H208V16C208 24.84 215.16 32 224 32H288C296.84 32 304 24.84 304 16V-64H384V96H352V224H320V320H352V224H384V96H416V-64H496C504.84 -64 512 -56.84 512 -48V80C512 88.84 504.84 96 496 96zM224 96V160C224 168.84 231.16 176 240 176H272C280.84 176 288 168.84 288 160V96H224zM232 224V272C232 280.8400000000001 239.16 288 248 288H264C272.84 288 280 280.8400000000001 280 272V224H232z" />
    +    <glyph glyph-name="graduation-cap"
    +      unicode="&#xF19D;"
    +      horiz-adv-x="640" d=" M622.34 294.8L343.4 380.5C328.2 385.17 311.8 385.17 296.61 380.5L17.66 294.8C-5.88 287.5700000000001 -5.88 256.44 17.66 249.21L66.29 234.27C55.62 221.08 49.06 204.99 48.41 187.37C38.78 181.85 32 171.89 32 160C32 149.22 37.68 140.15 45.86 134.35L20.33 19.47C18.11 9.48 25.71 0 35.94 0H92.05C102.29 0 109.89 9.48 107.67 19.47L82.14 134.35C90.32 140.15 96 149.22 96 160C96 171.57 89.53 181.25 80.34 186.87C81.1 201.89 88.78 215.17 101.03 223.59L296.6 163.5C305.6600000000001 160.72 323.04 157.25 343.3900000000001 163.5L622.34 249.2C645.89 256.44 645.89 287.56 622.34 294.8zM352.79 132.91C324.26 124.15 299.9500000000001 128.99 287.2000000000001 132.91L142.18 177.46L128 64C128 28.65 213.96 0 320 0S512 28.65 512 64L497.82 177.47L352.79 132.91z" />
    +    <glyph glyph-name="greater-than-equal"
    +      unicode="&#xF532;"
    +      horiz-adv-x="448" d=" M55.22 340.31L230.78 272.2200000000001L55.34 204.17C36.95 198.14 27.46 179.78 34.14 163.17L46.23 133.09C52.91 116.48 73.22 107.9 91.61 113.9400000000001L393.02 233.8C406.79 238.32 416 250.4100000000001 416 263.9700000000001V279.9300000000001C416 293.49 406.79 305.5800000000001 393.02 310.1L91.3 430.08C73.01 436.08 52.79 427.55 46.15 411.02L34.12 381.1C27.48 364.57 36.93 346.31 55.22 340.31zM424 48H24C10.75 48 0 37.26 0 24V-24C0 -37.25 10.75 -48 24 -48H424C437.25 -48 448 -37.25 448 -24V24C448 37.26 437.25 48 424 48z" />
    +    <glyph glyph-name="greater-than"
    +      unicode="&#xF531;"
    +      horiz-adv-x="384" d=" M365.52 238.15L59.22 380.99C43.16 388.48 24.07 381.53 16.58 365.4700000000001L3.01 336.39C-4.48 320.33 2.47 301.24 18.53 293.75L236.96 191.9L18.49 90.01C2.47 82.54 -4.46 63.5 3.01 47.48L16.53 18.48C24 2.46 43.04 -4.47 59.06 3L365.5300000000001 145.91A32.003 32.003 0 0 1 384.0100000000001 174.91V209.14C384.0000000000001 221.59 376.8000000000001 232.9 365.5200000000001 238.15z" />
    +    <glyph glyph-name="grimace"
    +      unicode="&#xF57F;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM144 48H136C118.3 48 104 62.3 104 80V88H144V48zM144 104H104V112C104 129.7 118.3 144 136 144H144V104zM136 240C136 257.7 150.3 272 168 272S200 257.7 200 240S185.7 208 168 208S136 222.3 136 240zM208 48H160V88H208V48zM208 104H160V144H208V104zM272 48H224V88H272V48zM272 104H224V144H272V104zM336 48H288V88H336V48zM336 104H288V144H336V104zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208zM392 80C392 62.3 377.7 48 360 48H352V88H392V80zM392 104H352V144H360C377.7 144 392 129.7 392 112V104z" />
    +    <glyph glyph-name="grin-alt"
    +      unicode="&#xF581;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM311.7 311.3C319.3 322.7000000000001 336.4 323 344.4 311.3C356.8 292.9 359.5 274.4 360.1 256C359.6 237.6 356.8 219.1 344.4 200.7C336.8 189.3 319.7 189 311.7 200.7C299.3 219.1 296.6 237.6 296 256C296.5 274.4 299.3 292.9 311.7 311.3zM151.7 311.3C159.3 322.7000000000001 176.4 323 184.4 311.3C196.8 292.9 199.5 274.4 200.1 256C199.6 237.6 196.8 219.1 184.4 200.7C176.8 189.3 159.7 189 151.7 200.7C139.3 219.1 136.6 237.6 136 256C136.5 274.4 139.3 292.9 151.7 311.3zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.1 113.5 130.9 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.5 130.9 393.7000000000001 121.1 391.8 109.3C382.5 54.3 308.6 16 248 16z" />
    +    <glyph glyph-name="grin-beam-sweat"
    +      unicode="&#xF583;"
    +      horiz-adv-x="504" d=" M456 320C482.5 320 504 341 504 367C504 387 475.5 427.4 462.4 444.8C459.2 449.1 452.8 449.1 449.6 444.8C436.5 427.4 408 387 408 367C408 341 429.5 320 456 320zM456 288C411.9 288 376 323.4 376 367C376 371.4 376.3 381.2 384.1 399.2C345 424.9 298.3 440 248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192C496 227.1 488.6 260.4 475.5 290.6C469.2 289.1 462.8 288 456 288zM328 296C351.8 296 380.7 266.7 384 224.6C384.7 216 373.2 212.6 369.1 220.1L359.6 237.1C351.9000000000001 250.8 340.4000000000001 258.7 328.1 258.7S304.3 250.8 296.6 237.1L287.1 220.1C283 212.7 271.5 216.1 272.2000000000001 224.6C275.3000000000001 266.7 304.2000000000001 296 328.0000000000001 296zM168 296C191.8 296 220.7 266.7 224 224.6C224.7 216 213.2 212.6 209.1 220.1L199.6 237.1C191.9 250.8 180.4 258.7 168.1 258.7S144.3 250.8 136.6 237.1L127.1 220.1C122.9 212.7 111.5 216.1 112.2 224.6C115.3 266.7 144.2 296 168 296zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.1 113.5 130.9 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.6 130.9 393.7000000000001 121 391.8 109.3C382.5 54.3 308.6 16 248 16z" />
    +    <glyph glyph-name="grin-beam"
    +      unicode="&#xF582;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 296C351.8 296 380.7 266.7 384 224.6C384.7 216 373.2 212.7 369.1 220.1L359.6 237.1C351.9000000000001 250.8 340.4000000000001 258.7 328.1 258.7S304.3 250.8 296.6 237.1L287.1 220.1C283 212.8 271.5 216.1 272.2000000000001 224.6C275.3000000000001 266.7 304.2000000000001 296 328.0000000000001 296zM168 296C191.8 296 220.7 266.7 224 224.6C224.7 216 213.2 212.7 209.1 220.1L199.6 237.1C191.9 250.8 180.4 258.7 168.1 258.7S144.3 250.8 136.6 237.1L127.1 220.1C122.9 212.7 111.5 216.1 112.2 224.6C115.3 266.7 144.2 296 168 296zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.2 113.6 130.9 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.5 130.9 393.7000000000001 121.1 391.8 109.3C382.5 54.3 308.6 16 248 16z" />
    +    <glyph glyph-name="grin-hearts"
    +      unicode="&#xF584;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM90.4 264.4C97.1 282 117.1 291.1 135.3 286.3L142.4 284.4L144.4 291.5C149.4 309.6 167.2 322.4 185.9 319.4C207.3 316 220.3 295.2000000000001 214.7 274.9L195.3 205C194.1 200.5 189.4 197.8 184.8 199L114.6 217.2C94.2 222.6 82.7 244.2 90.4 264.4zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.1 113.4 130.8 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.5 130.8 393.7000000000001 121.1 391.8 109.3C382.5 54.3 308.6 16 248 16zM381.4 217.3L311.2 199.1C306.7 197.9 302 200.6 300.7 205.1L281.3 275C275.7 295.3 288.7 316.1 310.1 319.5C328.7000000000001 322.5 346.5 309.7 351.6 291.6L353.6 284.5L360.7000000000001 286.4C378.9000000000001 291.1 398.9000000000001 282.1 405.6 264.5C413.3 244.2 401.8 222.6 381.4000000000001 217.3z" />
    +    <glyph glyph-name="grin-squint-tears"
    +      unicode="&#xF586;"
    +      horiz-adv-x="512" d=" M409.6 336.1C432.2000000000001 339.3 483.1 348.1 497.9 362.9C517.1 382.1 516.8000000000001 413.5 497.2 433.1S446 453 426.9 433.8C412.1 419 403.4 368.1 400.1 345.5C399.3 340 404 335.3 409.6 336.1zM102.4 47.9C79.8 44.7 28.9 35.9 14.1 21.1C-5 1.9999999999999 -4.7 -29.5000000000001 14.9 -49.1S65.9 -69 85.1 -49.8C99.9 -35 108.6 15.9 111.9 38.5C112.7 44 108 48.7 102.4 47.9zM414.1 304.4C381.1 300.5 365.5 329.5 368.4000000000001 350.1C371.8 374.1 375.8 392.2 379.9000000000001 406.6C285.1 461.4 161.8 448.5 80.6 367.4C-0.5 286.3 -13.4 163 41.4 68.1C55.8 72.2000000000001 73.8 76.1 97.9 79.6C131.1 83.5 146.5 54.4 143.6 33.9C140.2 9.9 136.2 -8.2 132.1 -22.6C226.9000000000001 -77.4 350.2000000000001 -64.5 431.4000000000001 16.6S525.4000000000001 221 470.6 315.9000000000001C456.2 311.8000000000001 438.1 307.9000000000001 414.1 304.4000000000001zM255.7 342C259 355.2 278.1 353.5 279.3 340.2L284.1 287.9L336.4000000000001 283.1C349.8 281.9 351.3 262.8 338.2000000000001 259.5L247.7000000000001 236.9C238.8000000000001 234.7 231.0000000000001 242.8 233.2000000000001 251.4L255.7000000000001 342zM164.8 111.7L160 164L107.7 168.8C94.3 170 92.8 189.1 105.9 192.4L196.4 215C205.2 217.2 213.1 209.2 210.9 200.5L188.3 110C185.2 96.8 166.1 98.3 164.8 111.7zM380.5 67.5C351.2 38.2 304.8 17.1 263.8 17.1C244.9 17.1 227.2 21.6 212.8 31.8C203 38.7 204.1 53.6 214.8 59C243.1 73.6 278.7 101.4 312.6 135.3S374.3 204.9 388.9000000000001 233.1C394.3 243.6 409.1 245.0000000000001 416.2000000000001 235.1C448.5000000000001 189.8 423.3000000000001 110.4 380.5000000000001 67.5z" />
    +    <glyph glyph-name="grin-squint"
    +      unicode="&#xF585;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM281.8 250.3L361.8 298.3C373.4000000000001 305.2000000000001 385.8 290.6 377.2 280.3L343.6 240L377.2000000000001 199.7C385.9000000000001 189.3 373.3000000000001 174.9 361.8000000000001 181.7L281.8000000000001 229.7C274.1000000000001 234.4 274.1000000000001 245.6 281.8000000000001 250.3zM118.8 280.3C110.2 290.6 122.6 305.2000000000001 134.2 298.3L214.2 250.3C222 245.6 222 234.4 214.2 229.7L134.2 181.7000000000001C122.7 174.9 110.2 189.3000000000001 118.8 199.7000000000001L152.4 240.0000000000001L118.8 280.3000000000001zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.2 113.6 130.9 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.6 130.9 393.7000000000001 121 391.8 109.3C382.5 54.3 308.6 16 248 16z" />
    +    <glyph glyph-name="grin-stars"
    +      unicode="&#xF587;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM94.6 279.1L129.5 284.1L145 315.7C147.9 321.5 156 321.5 158.9 315.7L174.4 284.1L209.3 279.1C215.5 278.1 218.2 270.5 213.6 265.9L188.2 241.3L194.2 206.4C195.2 200.2 188.9 195.4 183.2 198.5L152 214.7L120.7 198.4C115 195.3 108.7 200.1 109.7 206.3L115.7 241.2L90.3 265.8C85.7 270.5 88.4 278.1 94.6 279.1zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.1 113.5 130.8 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.6 130.9 393.7000000000001 121.1 391.8 109.3C382.5 54.3 308.6 16 248 16zM405.7 265.9L380.3 241.3L386.3 206.4C387.3 200.2 381 195.4 375.3 198.5L344 214.7L312.7 198.4C307 195.3 300.7 200.1 301.7 206.3L307.7 241.2L282.3 265.8C277.8 270.4 280.4000000000001 278 286.6 279L321.5 284L337 315.6C339.9 321.4 348 321.4 350.9 315.6L366.4 284L401.3 279C407.6 278.1 410.3 270.5 405.7 265.9z" />
    +    <glyph glyph-name="grin-tears"
    +      unicode="&#xF588;"
    +      horiz-adv-x="640" d=" M102.4 191.9C79.8 188.7 28.9 179.9 14.1 165.1C-5 146 -4.7 114.5 14.9 94.9S65.9 75 85.1 94.2C99.9 109 108.6 159.9 111.9 182.5C112.7 188 108 192.7 102.4 191.9zM625.8 165.1C611 179.9 560.0999999999999 188.6 537.5 191.9C532 192.7 527.2 188 528 182.4C531.2 159.8 540 108.9 554.8 94.1C574 74.9 605.4 75.2 625 94.8S645 146 625.8 165.1zM496.4 177.9C492.6 204.5 515.5 227.4 542.1 223.6C551 222.3 558.9 220.9 566.4 219.5C552.7 343.5 447.7 440 320 440S87.3 343.5 73.6 219.5C81.1 220.9 89 222.3 97.9 223.6C131.1 227.5 146.5 198.3 143.6 177.9C131.8 95.6 113.7 77.5 107.8 71.5C106.9 70.6 105.8 69.9 104.8 69C147.5 -5.6 227.8 -56 320 -56S492.5 -5.6 535.2 69.1C534.2 70 533.1 70.6 532.2 71.6C526.3000000000001 77.5 508.2 95.6 496.4 177.9zM400 296C423.8 296 452.7 266.7 456 224.6C456.7 216 445.2 212.6 441.1 220.1L431.6 237.1C423.9000000000001 250.8 412.4000000000001 258.7 400.1 258.7S376.3 250.8 368.6 237.1L359.1 220.1C354.9000000000001 212.7 343.5 216.1 344.2000000000001 224.6C347.3000000000001 266.7 376.2000000000001 296 400.0000000000001 296zM240 296C263.8 296 292.7 266.7 296 224.6C296.7 216 285.2 212.6 281.1 220.1L271.6 237.1C263.9000000000001 250.8 252.4000000000001 258.7 240.1 258.7S216.3 250.8 208.6 237.1L199.1 220.1C194.9 212.7 183.5 216.1 184.2 224.6C187.3 266.7 216.2 296 240 296zM320 16C259.4 16 185.5 54.3 176.2 109.3C174.2 121 185.4 130.9 196.9 127.2C227.1 117.5 272 112 320 112S412.9 117.5 443.1 127.2C454.5 130.9 465.7 121.1 463.8 109.3C454.5 54.3 380.6 16 320 16z" />
    +    <glyph glyph-name="grin-tongue-squint"
    +      unicode="&#xF58A;"
    +      horiz-adv-x="496" d=" M293.1 73.4C278.7000000000001 79.9 262 71.2 258.5 55.8L256.7 47.9999999999999C254.6 38.8 241.5 38.8 239.4 47.9999999999999L237.6 55.8C234.1 71.1999999999999 217.4 79.9 203 73.4C202.1 73 203.3 73.6 184.1 64V1C184.1 -34.2 212.1 -63.5 247.2 -63.9C282.9 -64.4 312.1 -35.5 312.1 0.1V64.1C292.6 73.7000000000001 293.9 73 293.1 73.4zM248 440C111 440 0 329 0 192C0 85.7 67 -4.7 161 -40C155.4 -27.8 152 -14.3 152 0V45.5C127.3 61.7 108.5 83.6 104.2 109.3C102.2 121.1 113.4 130.8 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.5 130.9 393.7000000000001 121.1 391.8 109.3C387.5 83.6 368.7 61.7 344 45.5V0C344 -14.3 340.6 -27.8 335 -40C429 -4.7 496 85.7 496 192C496 329 385 440 248 440zM214.2 229.7L134.2 181.7C122.7 174.9 110.2 189.3 118.8 199.7L152.4 240L118.8 280.3C110.2 290.6 122.6 305.2000000000001 134.2 298.3L214.2 250.3C221.9 245.6 221.9 234.4 214.2 229.7zM377.2 199.7C385.9 189.3 373.3 174.9 361.8 181.7L281.8 229.7C274 234.4 274 245.6 281.8 250.3L361.8 298.3C373.5 305.2 385.7 290.6 377.2 280.3L343.6 240L377.2000000000001 199.7z" />
    +    <glyph glyph-name="grin-tongue-wink"
    +      unicode="&#xF58B;"
    +      horiz-adv-x="496" d=" M344 264C330.7 264 320 253.3 320 240S330.7 216 344 216S368 226.7 368 240S357.3 264 344 264zM248 440C111 440 0 329 0 192C0 85.7 67 -4.7 161 -40C155.4 -27.8 152 -14.3 152 0V45.5C127.3 61.7 108.5 83.6 104.2 109.3C102.2 121.1 113.5 130.8 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.6 130.9 393.7000000000001 121.1 391.8 109.3C387.5 83.6 368.7 61.7 344 45.5V0C344 -14.3 340.6 -27.8 335 -40C429 -4.7 496 85.7 496 192C496 329 385 440 248 440zM192 215L182.5 223.5C167.7 236.7 136.3 236.7 121.5 223.5L112 215C103.5 207.6 90.4 214.7 92.2 225.8C96.2 251 126.4 267.9 152.1 267.9S208 251 212 225.8C213.6 214.7 200.4 207.6 192 215zM344 176C308.7 176 280 204.7 280 240S308.7 304 344 304S408 275.3 408 240S379.3 176 344 176zM293.1 73.4C278.7000000000001 79.9 262 71.2 258.5 55.8L256.7 47.9999999999999C254.6 38.8 241.5 38.8 239.4 47.9999999999999L237.6 55.8C234.1 71.1999999999999 217.4 79.9 203 73.4C202.1 73 203.3 73.6 184.1 64V1C184.1 -34.2 212.1 -63.5 247.2 -63.9C282.9 -64.4 312.1 -35.5 312.1 0.1V64.1C292.6 73.7000000000001 293.9 73 293.1 73.4z" />
    +    <glyph glyph-name="grin-tongue"
    +      unicode="&#xF589;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192C0 85.7 67 -4.7 161 -40C155.4 -27.8 152 -14.3 152 0V45.5C127.3 61.7 108.5 83.6 104.2 109.3C102.2 121.1 113.5 130.8 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.5 130.8 393.7000000000001 121.1 391.8 109.3C387.5 83.6 368.7 61.7 344 45.5V0C344 -14.3 340.6 -27.8 335 -40C429 -4.7 496 85.7 496 192C496 329 385 440 248 440zM168 208C150.3 208 136 222.3 136 240S150.3 272 168 272S200 257.7 200 240S185.7 208 168 208zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208zM293.1 73.4C278.7000000000001 79.9 262 71.2 258.5 55.8L256.7 47.9999999999999C254.6 38.8 241.5 38.8 239.4 47.9999999999999L237.6 55.8C234.1 71.1999999999999 217.4 79.9 203 73.4C202.1 73 203.3 73.6 184.1 64V1C184.1 -34.2 212.1 -63.5 247.2 -63.9C282.9 -64.4 312.1 -35.5 312.1 0.1V64.1C292.6 73.7000000000001 293.9 73 293.1 73.4z" />
    +    <glyph glyph-name="grin-wink"
    +      unicode="&#xF58C;"
    +      horiz-adv-x="496" d=" M0 192C0 55 111 -56 248 -56S496 55 496 192S385 440 248 440S0 329 0 192zM200 240C200 222.3 185.7 208 168 208S136 222.3 136 240S150.3 272 168 272S200 257.7 200 240zM368 215L358.5 223.5C343.7 236.7 312.3 236.7 297.5 223.5L288 215C279.7 207.6 266.4 214.6 268.2 225.8C272.2 251 302.4 267.9 328.1 267.9S384 251 388 225.8C389.6 214.8 376.5 207.6 368 215zM124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.4000000000001 130.9 393.7000000000001 121.2 391.8 109.3C382.6 54.3 308.6 16 248 16S113.5 54.3 104.2 109.3C102.2 121.2 113.5 130.9 124.9 127.2z" />
    +    <glyph glyph-name="grin"
    +      unicode="&#xF580;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 272C345.7 272 360 257.7 360 240S345.7 208 328 208S296 222.3 296 240S310.3 272 328 272zM168 272C185.7 272 200 257.7 200 240S185.7 208 168 208S136 222.3 136 240S150.3 272 168 272zM248 16C187.4 16 113.5 54.3 104.2 109.3C102.2 121.1 113.5 130.9 124.9 127.2C155.1 117.5 200 112 248 112S340.9 117.5 371.1 127.2C382.4000000000001 130.9 393.7000000000001 121.1 391.8 109.3C382.5 54.3 308.6 16 248 16z" />
    +    <glyph glyph-name="grip-horizontal"
    +      unicode="&#xF58D;"
    +      horiz-adv-x="448" d=" M96 160H32C14.33 160 0 145.67 0 128V64C0 46.33 14.33 32 32 32H96C113.67 32 128 46.33 128 64V128C128 145.67 113.67 160 96 160zM256 160H192C174.33 160 160 145.67 160 128V64C160 46.33 174.33 32 192 32H256C273.67 32 288 46.33 288 64V128C288 145.67 273.67 160 256 160zM416 160H352C334.33 160 320 145.67 320 128V64C320 46.33 334.33 32 352 32H416C433.67 32 448 46.33 448 64V128C448 145.67 433.67 160 416 160zM96 352H32C14.33 352 0 337.67 0 320V256C0 238.33 14.33 224 32 224H96C113.67 224 128 238.33 128 256V320C128 337.67 113.67 352 96 352zM256 352H192C174.33 352 160 337.67 160 320V256C160 238.33 174.33 224 192 224H256C273.67 224 288 238.33 288 256V320C288 337.67 273.67 352 256 352zM416 352H352C334.33 352 320 337.67 320 320V256C320 238.33 334.33 224 352 224H416C433.67 224 448 238.33 448 256V320C448 337.67 433.67 352 416 352z" />
    +    <glyph glyph-name="grip-vertical"
    +      unicode="&#xF58E;"
    +      horiz-adv-x="320" d=" M96 416H32C14.33 416 0 401.67 0 384V320C0 302.33 14.33 288 32 288H96C113.67 288 128 302.3300000000001 128 320V384C128 401.67 113.67 416 96 416zM96 256H32C14.33 256 0 241.67 0 224V160C0 142.33 14.33 128 32 128H96C113.67 128 128 142.33 128 160V224C128 241.67 113.67 256 96 256zM96 96H32C14.33 96 0 81.67 0 64V0C0 -17.67 14.33 -32 32 -32H96C113.67 -32 128 -17.67 128 0V64C128 81.67 113.67 96 96 96zM288 416H224C206.33 416 192 401.67 192 384V320C192 302.33 206.33 288 224 288H288C305.67 288 320 302.3300000000001 320 320V384C320 401.67 305.67 416 288 416zM288 256H224C206.33 256 192 241.67 192 224V160C192 142.33 206.33 128 224 128H288C305.67 128 320 142.33 320 160V224C320 241.67 305.67 256 288 256zM288 96H224C206.33 96 192 81.67 192 64V0C192 -17.67 206.33 -32 224 -32H288C305.67 -32 320 -17.67 320 0V64C320 81.67 305.67 96 288 96z" />
    +    <glyph glyph-name="h-square"
    +      unicode="&#xF0FD;"
    +      horiz-adv-x="448" d=" M448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368zM336 320H304C295.163 320 288 312.837 288 304V224H160V304C160 312.837 152.837 320 144 320H112C103.163 320 96 312.837 96 304V80C96 71.163 103.163 64 112 64H144C152.837 64 160 71.163 160 80V160H288V80C288 71.163 295.163 64 304 64H336C344.837 64 352 71.163 352 80V304C352 312.837 344.837 320 336 320z" />
    +    <glyph glyph-name="hammer"
    +      unicode="&#xF6E3;"
    +      horiz-adv-x="576" d=" M571.31 254.06L548.68 276.69C542.43 282.94 532.3 282.94 526.05 276.69L514.74 265.38L485.84 294.28C491.47 315.5900000000001 486.2 339.18 469.49 355.89L424.24 401.14C361.76 463.62 260.4500000000001 463.62 197.96 401.14L288.4700000000001 355.89V337.14C288.4700000000001 320.17 295.2100000000001 303.89 307.2200000000001 291.89L356.36 242.75C373.07 226.04 396.6600000000001 220.77 417.9700000000001 226.4L446.87 197.5L435.56 186.19C429.31 179.94 429.31 169.81 435.56 163.56L458.19 140.93C464.44 134.68 474.57 134.68 480.82 140.93L571.33 231.44C577.5600000000001 237.68 577.5600000000001 247.81 571.3100000000001 254.06zM284.5899999999999 269.26C280.89 272.96 277.75 277.05 274.7399999999999 281.21L19.64 43.04C-5.93 19.16 -6.62 -21.15 18.11 -45.89S83.16 -69.9399999999999 107.04 -44.36L345.17 210.71C341.2100000000001 213.62 337.2700000000001 216.58 333.73 220.12L284.5900000000001 269.26z" />
    +    <glyph glyph-name="hamsa"
    +      unicode="&#xF665;"
    +      horiz-adv-x="512" d=" M509.34 140.75C504.28 152.44 492.75 160 480 160H416V368C416 390 398 408 376 408S336 390 336 368V234C336 228.48 331.52 224 326 224H306C300.48 224 296 228.48 296 234V408C296 430 278 448 256 448S216 430 216 408V234C216 228.48 211.52 224 206 224H186C180.48 224 176 228.48 176 234V368C176 390 158 408 136 408S96 390 96 368V160H32C19.25 160 7.72 152.44 2.66 140.75A31.966 31.966 0 0 1 8.6 106.17L111.29 -3.86C146.97 -42.08 199.69 -64 256 -64S365.03 -42.08 400.7200000000001 -3.86L503.4 106.17A31.966 31.966 0 0 1 509.34 140.75zM256 32C202.98 32 160 96 160 96S202.98 160 256 160S352 96 352 96S309.02 32 256 32zM256 128C238.33 128 224 113.67 224 96S238.33 64 256 64S288 78.33 288 96S273.67 128 256 128z" />
    +    <glyph glyph-name="hand-holding-heart"
    +      unicode="&#xF4BE;"
    +      horiz-adv-x="576" d=" M275.3 197.5C282.3 190.1 293.7 190.1 300.8 197.5L409.7000000000001 311.7C441.3000000000001 344.9 439.5000000000001 399.9 404.1 430.5C373.3 457.2 327.4000000000001 452.4 299.2000000000001 422.8L288 411.1L276.9 422.7C248.7 452.4 202.8 457.2 172 430.5C136.7 399.9 134.8 344.9 166.4 311.7L275.3 197.5zM565.3 119.9C553.5 130.6 535.0999999999999 129.9 522.6999999999999 119.9L430.3 46C419 36.9 404.9000000000001 32 390.3 32H272C263.2 32 256 39.2 256 48S263.2 64 272 64H350.3C366.2 64 381 74.9 383.6 90.6C386.9000000000001 110.6 371.5 128 352 128H192C165 128 138.9 118.7 117.9 101.7L71.4 64H16C7.2 64 0 56.8 0 48V-48C0 -56.8 7.2 -64 16 -64H372.8C387.3 -64 401.4000000000001 -59.1 412.8 -50L564 71C579.2 83.1 580.4 106.3 565.3 119.9z" />
    +    <glyph glyph-name="hand-holding-usd"
    +      unicode="&#xF4C0;"
    +      horiz-adv-x="544" d=" M257.6 303.7L307.6 289.4C311.2000000000001 288.4 313.7000000000001 285 313.7000000000001 281.3C313.7000000000001 276.7 309.9000000000001 272.9 305.3000000000001 272.9H272.5000000000001C268.9000000000001 272.9 265.4000000000001 273.7 262.2000000000001 275.1C257.4000000000001 277.3 251.8000000000001 276.8 248.1000000000001 273.1L230.6000000000001 255.6C225.3000000000001 250.3 225.9000000000001 241.3 232.1000000000001 237.2C241.6000000000001 230.9 252.4000000000001 227.1 263.9000000000001 225.7V208C263.9000000000001 199.2 271.1 192 279.9000000000001 192H295.9000000000001C304.7000000000001 192 311.9000000000001 199.2 311.9000000000001 208V225.6C342.2000000000001 229.2 365.2000000000001 256.6 361.2000000000001 288.6C358.3000000000001 311.6 340.5000000000001 329.9 318.3000000000001 336.3L268.3000000000001 350.6C264.7000000000001 351.6 262.2000000000001 355 262.2000000000001 358.7C262.2000000000001 363.3 266.0000000000001 367.1 270.6 367.1H303.4000000000001C307.0000000000001 367.1 310.5000000000001 366.3 313.7000000000001 364.9C318.5000000000001 362.7 324.1 363.2 327.8000000000001 366.9L345.3000000000001 384.4C350.6000000000001 389.7 350.0000000000001 398.7 343.8000000000001 402.8C334.3000000000001 409.1 323.5000000000001 412.9 312.0000000000001 414.3V432C312.0000000000001 440.8 304.8000000000001 448 296.0000000000001 448H280.0000000000001C271.2000000000001 448 264.0000000000001 440.8 264.0000000000001 432V414.4C233.7000000000001 410.8 210.7000000000001 383.4 214.7000000000001 351.4C217.6000000000001 328.4 235.4000000000001 310.1 257.6 303.7zM533.9000000000001 119.9C522.7 130.6 505.4000000000001 129.9 493.6000000000001 119.9L406.4 46C395.7 36.9 382.4 32 368.6 32H256.9C248.6 32 241.8 39.2 241.8 48S248.6 64 256.9 64H330.8C345.9 64 359.8 74.9 362.2 90.6C365.3 110.6 350.7 128 332.3999999999999 128H181.3C155.8 128 131.1 118.7 111.4 101.7L67.5 64H15.1C6.8 64 0 56.8 0 48V-48C0 -56.8 6.8 -64 15.1 -64H352C365.7 -64 379 -59.1 389.8 -50L532.6 71C547 83.1 548.1 106.3 533.9 119.9z" />
    +    <glyph glyph-name="hand-holding"
    +      unicode="&#xF4BD;"
    +      horiz-adv-x="576" d=" M565.3 119.9C553.5 130.6 535.0999999999999 129.9 522.6999999999999 119.9L430.3 46C419 36.9 404.9000000000001 32 390.3 32H272C263.2 32 256 39.2 256 48S263.2 64 272 64H350.3C366.2 64 381 74.9 383.6 90.6C386.9000000000001 110.6 371.5 128 352 128H192C165 128 138.9 118.7 117.9 101.7L71.4 64H16C7.2 64 0 56.8 0 48V-48C0 -56.8 7.2 -64 16 -64H372.8C387.3 -64 401.4000000000001 -59.1 412.8 -50L564 71C579.2 83.1 580.4 106.3 565.3 119.9z" />
    +    <glyph glyph-name="hand-lizard"
    +      unicode="&#xF258;"
    +      horiz-adv-x="576" d=" M384 -32H576V84.222A95.998 95.998 0 0 1 561.167 135.485L398.127 393.632A48 48 0 0 1 357.544 416H24C10.745 416 0 405.255 0 392V376C0 345.072 25.072 320 56 320H285.981C298.825 320 307.537 306.933 302.596 295.077L281.186 243.692A32 32 0 0 0 251.648 224H128C92.654 224 64 195.346 64 160V152C64 138.745 74.745 128 88 128H235.406A47.995 47.995 0 0 0 261.098 120.545L372.846 49.734A24.001000000000005 24.001000000000005 0 0 0 384 29.461V-32z" />
    +    <glyph glyph-name="hand-paper"
    +      unicode="&#xF256;"
    +      horiz-adv-x="448" d=" M408.781 319.993C386.356 320.4220000000001 368 301.64 368 279.2100000000001V192H360V368.21C360 390.64 341.644 409.4220000000001 319.219 408.993C297.488 408.577 280 390.831 280 369V192H272V407.21C272 429.64 253.644 448.4220000000001 231.219 447.993C209.488 447.577 192 429.831 192 408V192H184V367.21C184 389.64 165.644 408.4220000000001 143.219 407.993C121.488 407.577 104 389.831 104 368V132.0080000000001L72.352 175.5270000000001C59.359 193.393 34.343 197.3440000000001 16.475 184.35C-1.39 171.356 -5.34 146.34 7.653 128.473L133.254 -44.232A48 48 0 0 1 172.073 -64H369.663C391.937 -64 411.2850000000001 -48.676 416.387 -26.994L442.895 85.6659999999999A192.011 192.011 0 0 1 447.999 129.641V280C448 301.831 430.512 319.577 408.781 319.993z" />
    +    <glyph glyph-name="hand-peace"
    +      unicode="&#xF25B;"
    +      horiz-adv-x="448" d=" M408 232C385.908 232 368 214.091 368 192H360V224C360 246.091 342.092 264 320 264S280 246.091 280 224V192H272V400C272 426.51 250.51 448 224 448S176 426.51 176 400V192H162.428L92.688 369.551C82.994 394.226 55.134 406.37 30.461 396.676C5.787 386.983 -6.356 359.123 3.337 334.449L78.102 144.107L47.012 119.235C31.631 106.929 27.497 85.257 37.271 68.1539999999999L101.271 -43.8460000000001A39.998 39.998 0 0 1 136 -64H376C394.562 -64 410.686 -51.23 414.937 -33.162L446.937 102.838A39.97 39.97 0 0 1 448 112V192C448 214.091 430.092 232 408 232z" />
    +    <glyph glyph-name="hand-point-down"
    +      unicode="&#xF0A7;"
    +      horiz-adv-x="384" d=" M91.826 -19.2V130.034C83.578 124.193 75.268 119.464 66.908 115.881C35.098 102.248 -0.014 125.778 0 160C0.008 178.616 10.897 192.203 29.092 200C57.378 212.122 93.421 278.648 106.415 307.534C114.371 325.391 131.894 335.987 150.26 335.998L150.261 336H321.7870000000001C333.5990000000001 336 343.6840000000001 327.404 345.49 315.731C352.74 268.894 383.973 253.971 383.805 192C383.798 189.276 384 178.746 384 176C384 125.346 361.878 94.426 312.737 103.4C303.44 84.803 273.251 72.662 250.422 86.95C229.245 62.305 196.526 64.311 179.478 80.651V-19.2C179.478 -43.35 159.277 -64 135.652 -64C112.369 -64 91.826 -42.65 91.826 -19.2zM112 376V424C112 437.255 122.745 448 136 448H328C341.255 448 352 437.255 352 424V376C352 362.745 341.255 352 328 352H136C122.745 352 112 362.745 112 376zM324 400C324 411.046 315.046 420 304 420S284 411.046 284 400S292.954 380 304 380S324 388.954 324 400z" />
    +    <glyph glyph-name="hand-point-left"
    +      unicode="&#xF0A5;"
    +      horiz-adv-x="512" d=" M44.8 292.174H194.034C188.193 300.4220000000001 183.464 308.732 179.881 317.092C166.248 348.902 189.778 384.014 224 384C242.616 383.992 256.203 373.103 264 354.908C276.122 326.622 342.648 290.579 371.534 277.5850000000001C389.391 269.629 399.987 252.106 399.998 233.74L400 233.739V62.213C400 50.401 391.404 40.316 379.731 38.51C332.894 31.26 317.971 0.027 256 0.195C253.276 0.202 242.746 0 240 0C189.346 0 158.426 22.122 167.4 71.263C148.803 80.5600000000001 136.662 110.749 150.95 133.578C126.305 154.7550000000001 128.311 187.4740000000001 144.651 204.5220000000001H44.8C20.65 204.5220000000001 0 224.7230000000001 0 248.3480000000001C0 271.6310000000001 21.35 292.1740000000001 44.8 292.1740000000001zM440 272H488C501.255 272 512 261.255 512 248V56C512 42.745 501.255 32 488 32H440C426.745 32 416 42.745 416 56V248C416 261.255 426.745 272 440 272zM464 60C475.046 60 484 68.954 484 80S475.046 100 464 100S444 91.046 444 80S452.954 60 464 60z" />
    +    <glyph glyph-name="hand-point-right"
    +      unicode="&#xF0A4;"
    +      horiz-adv-x="512" d=" M512 248.348C512 224.723 491.35 204.522 467.2 204.522H367.349C383.689 187.4740000000001 385.695 154.756 361.05 133.578C375.338 110.749 363.197 80.561 344.6 71.263C353.574 22.122 322.654 0 272 0C269.254 0 258.724 0.203 256 0.195C194.029 0.027 179.106 31.26 132.269 38.51C120.596 40.317 112 50.401 112 62.214V233.739L112.002 233.74C112.013 252.106 122.609 269.629 140.466 277.5850000000001C169.352 290.579 235.879 326.623 248 354.908C255.797 373.102 269.384 383.992 288 384C322.222 384.014 345.752 348.902 332.1190000000001 317.092C328.536 308.733 323.807 300.422 317.966 292.174H467.2C490.65 292.174 512 271.631 512 248.348zM96 248V56C96 42.745 85.255 32 72 32H24C10.745 32 0 42.745 0 56V248C0 261.255 10.745 272 24 272H72C85.255 272 96 261.255 96 248zM68 80C68 91.046 59.046 100 48 100S28 91.046 28 80S36.954 60 48 60S68 68.954 68 80z" />
    +    <glyph glyph-name="hand-point-up"
    +      unicode="&#xF0A6;"
    +      horiz-adv-x="384" d=" M135.652 448C159.277 448 179.478 427.35 179.478 403.2V303.349C196.526 319.689 229.244 321.695 250.422 297.05C273.251 311.338 303.439 299.197 312.737 280.6C361.878 289.574 384 258.654 384 208C384 205.254 383.7970000000001 194.724 383.805 192C383.973 130.029 352.74 115.106 345.49 68.269C343.683 56.596 333.599 48 321.786 48H150.261L150.26 48.002C131.894 48.013 114.371 58.609 106.415 76.466C93.421 105.352 57.377 171.878 29.092 184C10.897 191.797 0.008 205.384 0 224C-0.014 258.222 35.098 281.752 66.908 268.1190000000001C75.267 264.536 83.578 259.807 91.826 253.966V403.2C91.826 426.65 112.369 448 135.652 448zM136 32H328C341.255 32 352 21.255 352 8V-40C352 -53.255 341.255 -64 328 -64H136C122.745 -64 112 -53.255 112 -40V8C112 21.255 122.745 32 136 32zM304 4C292.954 4 284 -4.954 284 -16S292.954 -36 304 -36S324 -27.046 324 -16S315.046 4 304 4z" />
    +    <glyph glyph-name="hand-pointer"
    +      unicode="&#xF25A;"
    +      horiz-adv-x="448" d=" M448 208V112C448 108.916 447.644 105.841 446.937 102.838L414.937 -33.162C410.686 -51.23 394.562 -64 376 -64H168A40.004 40.004 0 0 0 135.65 -47.527L7.653 128.473C-5.34 146.339 -1.39 171.356 16.475 184.349C34.342 197.343 59.359 193.392 72.352 175.526L104 132.008V408C104 430.091 121.908 448 144 448S184 430.091 184 408V208H192V248C192 270.091 209.908 288 232 288S272 270.091 272 248V208H280V232C280 254.091 297.908 272 320 272S360 254.091 360 232V208H368C368 230.091 385.908 248 408 248S448 230.091 448 208zM192 128H184V32H192V128zM280 128H272V32H280V128zM368 128H360V32H368V128z" />
    +    <glyph glyph-name="hand-rock"
    +      unicode="&#xF255;"
    +      horiz-adv-x="512" d=" M512 319.2100000000001C512 345.5320000000001 491.139 367.554 464.82 367.993C437.935 368.442 416 346.783 416 320H408V351.21C408 377.532 387.139 399.554 360.82 399.993C333.935 400.442 312 378.783 312 352V320H304V367.21C304 393.532 283.139 415.554 256.82 415.993C229.935 416.442 208 394.783 208 368V320H200V351.21C200 377.532 179.139 399.554 152.82 399.993C125.935 400.442 104 378.783 104 352V216L96 223.111V271.2100000000001C96 297.5320000000001 75.139 319.554 48.82 319.993C21.935 320.442 0 298.783 0 272V205.555A95.998 95.998 0 0 1 32.221 133.804L143.889 34.543A47.999 47.999 0 0 0 160 -1.333V-8C160 -21.255 170.745 -32 184 -32H424C437.255 -32 448 -21.255 448 -8V-5.079A96.01 96.01 0 0 0 455.523 32.175L504.477 148.44A96.002 96.002 0 0 1 512 185.694V319.2100000000001z" />
    +    <glyph glyph-name="hand-scissors"
    +      unicode="&#xF257;"
    +      horiz-adv-x="512" d=" M216 8C216 30.092 233.909 48 256 48V56H224C201.909 56 184 73.908 184 96S201.909 136 224 136H256V144H48C21.49 144 0 165.49 0 192S21.49 240 48 240H256V253.572L78.449 323.312C53.775 333.006 41.631 360.867 51.324 385.54C61.017 410.214 88.878 422.357 113.552 412.664L303.894 337.899L328.766 368.9890000000001C341.072 384.37 362.7440000000001 388.504 379.8470000000001 378.73L491.847 314.73A40.002 40.002 0 0 0 512 280V40C512 21.438 499.23 5.314 481.162 1.063L345.162 -30.937A39.982 39.982 0 0 0 336 -32H256C233.909 -32 216 -14.092 216 8z" />
    +    <glyph glyph-name="hand-spock"
    +      unicode="&#xF259;"
    +      horiz-adv-x="512" d=" M10.872 131.415C26.011 147.501 51.326 148.269 67.415 133.1280000000001L128 76.107V155.5120000000001L88.995 327.135C84.099 348.677 97.593 370.1090000000001 119.135 375.005C140.684 379.899 162.11 366.406 167.005 344.8640000000001L201.747 192H211.58L164.016 399.034C159.07 420.565 172.514 442.028 194.044 446.974C215.576 451.924 237.038 438.476 241.984 416.9460000000001L293.664 192H308.769L357.194 385.702C362.5510000000001 407.134 384.269 420.164 405.701 414.806C427.1330000000001 409.448 440.1640000000001 387.731 434.805 366.299L391.231 192H402.311L433.079 321.265C438.196 342.756 459.764 356.033 481.256 350.912C502.747 345.795 516.021 324.226 510.903 302.735L474.611 150.268A96.02400000000002 96.02400000000002 0 0 1 472 128.033V85.931A96.002 96.002 0 0 0 468.04 58.6440000000001L441.8660000000001 -29.6429999999999C435.825 -50.022 417.101 -64 395.846 -64H179.172A48.00200000000001 48.00200000000001 0 0 0 146.274 -50.954L12.585 74.872C-3.502 90.013 -4.268 115.328 10.872 131.415z" />
    +    <glyph glyph-name="hands-helping"
    +      unicode="&#xF4C4;"
    +      horiz-adv-x="640" d=" M488 256H336V200C336 160.3 303.7 128 264 128S192 160.3 192 200V321.6L127.1 282.6C107.8 271.1 96 250.2 96 227.8V180.5L16 134.3C0.7 125.5 -4.6 105.9 4.3 90.6L84.3 -48C93.1 -63.3 112.7 -68.5 128 -59.7L231.4 0H368C403.3 0 432 28.7 432 64H448C465.7 64 480 78.3 480 96V160H488C501.3 160 512 170.7 512 184V232C512 245.3 501.3 256 488 256zM635.7 293.4L555.7 432C546.9 447.3 527.3 452.5 512 443.7L408.6 384H306.4C294.4 384 282.7 380.6 272.5 374.3L239 353.4C229.6 347.6 224 337.3 224 326.3V200C224 177.9 241.9 160 264 160S304 177.9 304 200V288H488C518.9 288 544 262.9 544 232V203.5L624 249.7C639.3 258.6 644.5 278.1 635.7 293.4z" />
    +    <glyph glyph-name="hands"
    +      unicode="&#xF4C2;"
    +      horiz-adv-x="640" d=" M204.8 217.6C194.2 231.7 174.1 234.6 160 224C145.9 213.4 143 193.3 153.6 179.2L191.7 128.4C196.5 122 195.8 113.1 190.2 107.5L177.4 94.7C170.7 88 159.8 88.5 153.8 95.8L64 203.6V352C64 369.7 49.7 384 32 384S0 369.7 0 352V133.6C0 122.7000000000001 3.7 112.1 10.5 103.6L114.6 -30.7C119.6 -37.2 123 -44.6 125 -52.4C126.8 -59.2999999999999 133.1 -64 140.3 -64H272C280.8 -64 288 -56.8 288 -48V64C288 91.7 279 118.6 262.4 140.8L204.8 217.6zM608 384C590.3 384 576 369.7 576 352V203.6L486.2 95.8C480.2 88.6 469.2 88.1 462.6 94.7L449.8 107.5C444.2 113.1 443.5 122 448.3 128.4L486.4 179.2C497 193.3 494.1 213.4 480 224C465.9 234.6 445.8 231.7 435.2 217.6L377.6 140.8C361 118.6 352 91.7 352 64V-48C352 -56.8 359.2 -64 368 -64H499.7C506.8 -64 513.2 -59.3 515 -52.4C517 -44.6 520.4 -37.2 525.4 -30.7L629.5 103.6C636.3 112.1 640 122.7000000000001 640 133.6V352C640 369.7 625.7 384 608 384z" />
    +    <glyph glyph-name="handshake"
    +      unicode="&#xF2B5;"
    +      horiz-adv-x="640" d=" M434.7 384H348.8C340.8 384 333.1 381 327.2 375.6L228.8999999999999 285.6C228.8 285.5 228.7 285.3 228.5999999999999 285.2C211.9999999999999 269.6 212.2999999999999 244.7 226.4999999999999 229.2C239.1999999999999 215.3 265.8999999999999 211.6 282.5999999999999 226.5C282.7 226.6 282.8999999999999 226.6 282.9999999999999 226.7L362.8999999999999 299.9C369.3999999999999 305.8 379.5999999999999 305.4 385.4999999999999 298.9C391.4999999999999 292.4 390.9999999999999 282.3 384.4999999999999 276.3L358.3999999999999 252.4L504 134.2C506.9 131.8 509.5 129.2 511.9 126.5V320L457.3 374.6C451.4 380.6 443.2 384 434.7 384zM544 319.8V95.9C544 78.2 558.3 63.9 576 63.9H640V319.8H544zM592 95.9C583.2 95.9 576 103.1 576 111.9S583.2 127.9 592 127.9S608 120.7 608 111.9S600.8 95.9 592 95.9zM0 64H64C81.7 64 96 78.3 96 96V319.8H0V64zM48 127.9C56.8 127.9 64 120.7 64 111.9S56.8 95.9 48 95.9S32 103.1 32 111.9C32 120.8 39.2 127.9 48 127.9zM483.9 109.3L334.6 230.5L304.6 203C274.9000000000001 175.9 229.4000000000001 178.5 202.9 207.4C176 236.8 178.1 282.3 207.3000000000001 309.1L289.1 384H205.3C196.8 384 188.7 380.6 182.7 374.6L128 320V96.1H146.3L236.8 14.2C264.2 -8.1 304.5 -3.9 326.8 23.5000000000001L327 23.7L344.9 8.2C360.8 -4.8 384.3 -2.3 397.2 13.6L428.6 52.2L434 47.8000000000001C447.7 36.7 467.8999999999999 38.7 478.9999999999999 52.5000000000001L488.4999999999999 64.2000000000001C499.6999999999999 78.0000000000001 497.6 98.1 483.8999999999999 109.3000000000001z" />
    +    <glyph glyph-name="hanukiah"
    +      unicode="&#xF6E6;"
    +      horiz-adv-x="640" d=" M232 288C227.58 288 224 284.42 224 280V160H256V280C256 284.42 252.42 288 248 288H232zM168 288C163.58 288 160 284.42 160 280V160H192V280C192 284.42 188.42 288 184 288H168zM392 288C387.58 288 384 284.42 384 280V160H416V280C416 284.42 412.42 288 408 288H392zM456 288C451.58 288 448 284.42 448 280V160H480V280C480 284.42 476.42 288 472 288H456zM544 280C544 284.42 540.42 288 536 288H520C515.58 288 512 284.42 512 280V160H544V280zM104 288C99.58 288 96 284.42 96 280V160H128V280C128 284.42 124.42 288 120 288H104zM624 288H592C583.16 288 576 280.8400000000001 576 272V160C576 142.33 561.67 128 544 128H352V320C352 328.8400000000001 344.84 336 336 336H304C295.1600000000001 336 288 328.8400000000001 288 320V128H96C78.33 128 64 142.33 64 160V272C64 280.8400000000001 56.84 288 48 288H16C7.16 288 0 280.8400000000001 0 272V160C0 106.98 42.98 64 96 64H288V0H112C103.16 0 96 -7.16 96 -16V-48C96 -56.84 103.16 -64 112 -64H528C536.84 -64 544 -56.84 544 -48V-16C544 -7.16 536.84 0 528 0H352V64H544C597.02 64 640 106.98 640 160V272C640 280.8400000000001 632.84 288 624 288zM608 320C621.25 320 632 331.94 632 346.67S608 400 608 400S584 361.39 584 346.67S594.75 320 608 320zM32 320C45.25 320 56 331.94 56 346.67S32 400 32 400S8 361.39 8 346.67S18.75 320 32 320zM320 368C333.25 368 344 379.94 344 394.67S320 448 320 448S296 409.39 296 394.67S306.75 368 320 368zM112 320C125.25 320 136 331.94 136 346.67S112 400 112 400S88 361.39 88 346.67S98.75 320 112 320zM176 320C189.25 320 200 331.94 200 346.67S176 400 176 400S152 361.39 152 346.67S162.75 320 176 320zM240 320C253.25 320 264 331.94 264 346.67S240 400 240 400S216 361.39 216 346.67S226.75 320 240 320zM400 320C413.25 320 424 331.94 424 346.67S400 400 400 400S376 361.39 376 346.67S386.75 320 400 320zM464 320C477.25 320 488 331.94 488 346.67S464 400 464 400S440 361.39 440 346.67S450.75 320 464 320zM528 320C541.25 320 552 331.94 552 346.67S528 400 528 400S504 361.39 504 346.67S514.75 320 528 320z" />
    +    <glyph glyph-name="hashtag"
    +      unicode="&#xF292;"
    +      horiz-adv-x="448" d=" M440.667 265.891L447.81 305.891C449.123 313.246 443.468 320 435.997 320H361.187L375.81 401.891C377.123 409.246 371.468 416 363.997 416H323.365A12 12 0 0 1 311.552 406.109L296.175 320H197.54L212.163 401.891C213.477 409.246 207.822 416 200.35 416H159.718A12 12 0 0 1 147.905 406.109L132.528 320H53.432A12 12 0 0 1 41.619 310.1090000000001L34.476 270.1090000000001C33.163 262.754 38.818 256 46.289 256H121.099L98.242 128H19.146A12 12 0 0 1 7.333 118.109L0.19 78.109C-1.123 70.754 4.532 64 12.003 64H86.813L72.19 -17.891C70.877 -25.246 76.532 -32 84.003 -32H124.635A12 12 0 0 1 136.448 -22.109L151.826 64H250.46L235.837 -17.891C234.523 -25.246 240.178 -32 247.65 -32H288.282A12 12 0 0 1 300.095 -22.109L315.472 64H394.568A12 12 0 0 1 406.381 73.891L413.524 113.891C414.837 121.2460000000001 409.182 128 401.711 128H326.901L349.7579999999999 256H428.854A12 12 0 0 1 440.6669999999999 265.891zM261.889 128H163.255L186.112 256H284.746L261.889 128z" />
    +    <glyph glyph-name="hat-wizard"
    +      unicode="&#xF6E8;"
    +      horiz-adv-x="512" d=" M496 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H496C504.84 -64 512 -56.84 512 -48V-16C512 -7.16 504.84 0 496 0zM192 64L128 96L192 128L224 192L256 128L320 96L256 64L240 32H448L361.5900000000001 233.63A63.95499999999999 63.95499999999999 0 0 0 359.7000000000001 279.08L416 448L228.42 340.81A127.98900000000002 127.98900000000002 0 0 1 174.96 281.66L64 32H208L192 64zM256 288L272 320L288 288L320 272L288 256L272 224L256 256L224 272L256 288z" />
    +    <glyph glyph-name="haykal"
    +      unicode="&#xF666;"
    +      horiz-adv-x="512" d=" M496.25 245.48L386.25 260.92L428.07 365.26C434.74 381.9 416.47 397.44 401.48 387.89L307.44 328L273.35 435.18C270.64 443.73 263.32 448 256 448C248.68 448 241.36 443.73 238.65 435.18L204.56 327.99L110.52 387.88C95.53 397.43 77.27 381.89 83.93 365.25L125.75 260.9100000000001L15.75 245.48C-1.79 243.02 -5.93 219.21 9.72 210.81L107.88 158.15L33.4 74.61C22.48 62.36 31.68 43.68 46.69 43.68C48 43.68 49.36 43.8199999999999 50.76 44.1299999999999L159.33 67.7799999999999L155.22 -44.7700000000001C154.79 -56.4200000000001 164.09 -63.9900000000001 173.63 -63.9900000000001C178.78 -63.9900000000001 184.02 -61.7800000000001 187.83 -56.8100000000001L256.01 32.0899999999999L324.19 -56.8100000000001C328 -61.7800000000001 333.23 -63.9900000000001 338.39 -63.9900000000001C347.93 -63.9900000000001 357.23 -56.4200000000001 356.8 -44.7700000000001L352.69 67.7799999999999L461.26 44.1299999999999C478.62 40.37 490.47 61.3299999999999 478.61 74.62L404.13 158.16L502.29 210.82C517.93 219.21 513.79 243.02 496.2499999999999 245.48zM338.51 136.32L286.62 147.62L288.5900000000001 93.83L256 136.32L223.41 93.83L225.37 147.62L173.48 136.32L209.08 176.25L162.16 201.42L214.73 208.8L194.74 258.67L239.69 230.05L256 281.28L272.29 230.05L317.24 258.67L297.25 208.8L349.82 201.42L302.9 176.25L338.51 136.32z" />
    +    <glyph glyph-name="hdd"
    +      unicode="&#xF0A0;"
    +      horiz-adv-x="576" d=" M576 144V48C576 21.49 554.51 0 528 0H48C21.49 0 0 21.49 0 48V144C0 170.51 21.49 192 48 192H528C554.51 192 576 170.51 576 144zM528 224A79.557 79.557 0 0 0 558.777 217.835L462.25 362.626A48.003 48.003 0 0 1 422.311 384H153.689A48 48 0 0 1 113.751 362.626L17.223 217.835A79.557 79.557 0 0 0 48 224H528zM480 128C462.327 128 448 113.673 448 96S462.327 64 480 64S512 78.327 512 96S497.673 128 480 128zM384 128C366.327 128 352 113.673 352 96S366.327 64 384 64S416 78.327 416 96S401.673 128 384 128z" />
    +    <glyph glyph-name="heading"
    +      unicode="&#xF1DC;"
    +      horiz-adv-x="512" d=" M496 368V400C496 408.837 488.837 416 480 416H320C311.163 416 304 408.837 304 400V368C304 359.163 311.163 352 320 352H357.621V224H154.379V352H192C200.837 352 208 359.163 208 368V400C208 408.837 200.837 416 192 416H32C23.163 416 16 408.837 16 400V368C16 359.163 23.163 352 32 352H69.275V32H32C23.163 32 16 24.837 16 16V-16C16 -24.837 23.163 -32 32 -32H192C200.837 -32 208 -24.837 208 -16V16C208 24.837 200.837 32 192 32H154.379V160H357.62V32H320C311.163 32 304 24.837 304 16V-16C304 -24.837 311.163 -32 320 -32H480C488.837 -32 496 -24.837 496 -16V16C496 24.837 488.837 32 480 32H442.725V352H480C488.837 352 496 359.163 496 368z" />
    +    <glyph glyph-name="headphones-alt"
    +      unicode="&#xF58F;"
    +      horiz-adv-x="512" d=" M160 160H144C108.65 160 80 131.3 80 95.88V32.12C80 -3.29 108.65 -32 144 -32H160C177.67 -32 192 -17.64 192 0.06V127.94C192 145.65 177.67 160 160 160zM368 160H352C334.33 160 320 145.65 320 127.94V0.06C320 -17.64 334.33 -32 352 -32H368C403.35 -32 432 -3.29 432 32.12V95.88C432 131.29 403.35 160 368 160zM256 416C112.91 416 4.57 296.87 0 160V48C0 39.16 7.16 32 16 32H32C40.84 32 48 39.16 48 48V160C48 274.67 141.33 367.8 256 367.82C370.67 367.8 464 274.67 464 160V48C464 39.16 471.16 32 480 32H496C504.84 32 512 39.16 512 48V160C507.43 296.87 399.09 416 256 416z" />
    +    <glyph glyph-name="headphones"
    +      unicode="&#xF025;"
    +      horiz-adv-x="512" d=" M256 416C114.52 416 0 301.504 0 160V112A32 32 0 0 1 17.689 83.378L32.072 76.187C34.083 16.097 83.421 -32 144 -32H168C181.255 -32 192 -21.255 192 -8V168C192 181.255 181.255 192 168 192H144C112.658 192 84.329 179.121 64 158.373V160C64 265.8690000000001 150.131 352 256 352S448 265.8690000000001 448 160V158.373C427.671 179.121 399.342 192 368 192H344C330.745 192 320 181.255 320 168V-8C320 -21.255 330.745 -32 344 -32H368C428.579 -32 477.917 16.098 479.928 76.187L494.31 83.378A32 32 0 0 1 512 112V160C512 301.4790000000001 397.504 416 256 416z" />
    +    <glyph glyph-name="headset"
    +      unicode="&#xF590;"
    +      horiz-adv-x="512" d=" M192 240C192 257.67 177.67 272 160 272H144C108.65 272 80 243.35 80 208V160C80 124.65 108.65 96 144 96H160C177.67 96 192 110.33 192 128V240zM368 96C403.35 96 432 124.65 432 160V208C432 243.35 403.35 272 368 272H352C334.33 272 320 257.67 320 240V128C320 110.33 334.33 96 352 96H368zM256 448C113.18 448 4.58 329.17 0 192V176C0 167.16 7.16 160 16 160H32C40.84 160 48 167.16 48 176V192C48 306.69 141.31 400 256 400S464 306.69 464 192H463.88C463.96 189.57 464 26.28 464 26.28C464 2.93 445.07 -16 421.7200000000001 -16H320C320 10.51 298.51 32 272 32H240C213.49 32 192 10.51 192 -16S213.49 -64 240 -64H421.7200000000001C471.58 -64 512 -23.58 512 26.28V192C507.42 329.17 398.82 448 256 448z" />
    +    <glyph glyph-name="heart"
    +      unicode="&#xF004;"
    +      horiz-adv-x="512" d=" M462.3 385.4C407.5 432.1 326 423.7 275.7 371.8L256 351.5L236.3 371.8C186.1 423.7 104.5 432.1 49.7 385.4C-13.1 331.8 -16.4 235.6 39.8 177.5L233.3 -22.3C245.8 -35.2 266.1 -35.2 278.6 -22.3L472.1 177.5C528.4 235.6 525.1 331.8 462.3 385.4z" />
    +    <glyph glyph-name="heartbeat"
    +      unicode="&#xF21E;"
    +      horiz-adv-x="512" d=" M320.2 204.2L270.5 104.8C264.5 92.6999999999999 247.1 93.1 241.6 105.4L184.7 231.7L154.7 160H60.6L243.1 -26.5C250.2 -33.8 261.7 -33.8 268.8 -26.5L451.4 160H342.3L320.2 204.2zM473.7 374.1L471.3 376.6C419.8 429.2 335.5 429.2 283.9 376.6L256 348L228.1 376.5C176.6 429.2 92.2 429.2 40.7 376.5L38.3 374.1C-10.4 324.3 -12.5 245 31 192H133.4L169.3 278.2C174.7 291.1 192.9 291.4 198.7 278.6L256.9000000000001 149.3L305.9000000000001 247.2C311.8 259 328.6 259 334.5000000000001 247.2L362.1000000000001 192H481C524.5 245 522.4 324.3 473.7 374.0999999999999z" />
    +    <glyph glyph-name="helicopter"
    +      unicode="&#xF533;"
    +      horiz-adv-x="640" d=" M304 64H576C593.67 64 608 78.33 608 96C608 219.71 507.71 320 384 320V384H560C568.84 384 576 391.16 576 400V432C576 440.84 568.84 448 560 448H144C135.16 448 128 440.84 128 432V400C128 391.16 135.16 384 144 384H320V320H112L68.8 377.6C65.78 381.63 61.03 384 56 384H16.01C5.6 384 -2.04 374.2200000000001 0.49 364.12L32 256L192 192L278.4 76.8A31.991999999999997 31.991999999999997 0 0 1 304 64zM416 252.49C478.55 239.7 528.03 190.56 540.79 128H416V252.49zM635.37 -10.81L613.22 11.39C606.97 17.65 596.98 17.49 590.58 11.38C583.49 4.61 576.74 0.13 565.94 0.13H240C231.16 0.13 224 -7.05 224 -15.9V-47.96C224 -56.81 231.16 -63.99 240 -63.99H565.94C580.82 -63.99 601.24 -63.52 634.3900000000001 -34.47C641.4100000000001 -28.33 641.9600000000002 -17.42 635.3700000000001 -10.81z" />
    +    <glyph glyph-name="highlighter"
    +      unicode="&#xF591;"
    +      horiz-adv-x="544" d=" M0 -31.98L99.92 -64L135.37 -28.55L68.33 38.49L0 -31.98zM124.61 208.03A36.592 36.592 0 0 1 113.82 169.93L126.87 127.1L75.94 76.16L172.17 -20.07L223.03 30.79L265.7700000000001 17.71C279.5000000000001 13.51 294.42 17.72 303.92 28.49L339.4700000000001 70.1299999999999L166.13 243.47L124.61 208.03zM527.92 368.73L464.72 431.93C444.23 452.42 411.34 453.45 389.6 434.28L190.55 264.32L360.3200000000001 94.54L530.27 293.6C549.4499999999999 315.3400000000001 548.42 348.23 527.92 368.73z" />
    +    <glyph glyph-name="hiking"
    +      unicode="&#xF6EC;"
    +      horiz-adv-x="384" d=" M80.95 -24.23C76.67 -41.39 87.09 -58.76 104.23 -63.04C106.84 -63.7 109.45 -63.99 112.03 -63.99C126.36 -63.99 139.4 -54.29 143.05 -39.76L168.29 61.21L115.51 113.99L80.95 -24.23zM95.84 171.89L137 331C139.19 339.42 133.86 347.95 125.08 350.06C81.2 360.58 36.73 334.99 25.76 292.89L0.49 194.76C-1.7 186.34 3.63 177.81 12.41 175.7L75.97 160.45C84.76 158.35 93.65 163.47 95.84 171.89zM368 288H352C343.1600000000001 288 336 280.8400000000001 336 272V256H301.25L254.47 302.78C243.38 313.89 228.61 320 212.91 320C185.89 320 162.44 301.7 155.88 275.48L128.96 167.76A32.012 32.012 0 0 1 137.38 137.37L224 50.75V-32C224 -49.67 238.33 -64 256 -64S288 -49.67 288 -32V50.75C288 67.84 281.34 83.91 269.25 96L222.43 142.82C222.58 143.32 222.92 143.71 223.05 144.23L242.94 223.8L265.37 201.37C271.37 195.37 279.51 191.99 287.99 191.99H335.99V-48.01C335.99 -56.85 343.1500000000001 -64.01 351.99 -64.01H367.99C376.83 -64.01 383.99 -56.85 383.99 -48.01V272C384 280.8400000000001 376.8400000000001 288 368 288zM240 352C266.51 352 288 373.49 288 400S266.51 448 240 448S192 426.51 192 400S213.49 352 240 352z" />
    +    <glyph glyph-name="hippo"
    +      unicode="&#xF6ED;"
    +      horiz-adv-x="640" d=" M581.12 351.8C553.45 351.95 528.62 334.2200000000001 504.52 325.18C489.98 359.73 455.83 384 416 384C404.7200000000001 384 394.05 381.7 384 378.12V392C384 405.26 373.25 416 360 416H344C330.75 416 320 405.26 320 392V343.02C286.01 368.42 241.24 384 192 384C85.96 384 0 312.36 0 224V-16C0 -24.84 7.16 -32 16 -32H80C88.84 -32 96 -24.84 96 -16V54.79C128.35 40.43 166.72 32 208 32S287.65 40.43 320 54.79V-16C320 -24.84 327.1600000000001 -32 336 -32H400C408.84 -32 416 -24.84 416 -16V160H544V128C544 119.16 551.16 112 560 112H592C600.84 112 608 119.16 608 128V160C625.67 160 640 174.33 640 192V284.02C640 318.11 615.21 351.61 581.12 351.8zM448 272C439.1600000000001 272 432 279.16 432 288S439.1600000000001 304 448 304S464 296.8400000000001 464 288S456.84 272 448 272z" />
    +    <glyph glyph-name="history"
    +      unicode="&#xF1DA;"
    +      horiz-adv-x="512" d=" M504 192.469C504.253 55.829 392.82 -55.903 256.18 -55.999C197.165 -56.041 142.957 -35.469 100.358 -1.088C89.281 7.852 88.453 24.453 98.519 34.519L109.786 45.786C118.395 54.395 132.139 55.337 141.677 47.77C173.062 22.865 212.781 8 256 8C357.705 8 440 90.311 440 192C440 293.705 357.689 376 256 376C207.186 376 162.851 357.031 129.932 326.068L180.686 275.314C190.766 265.234 183.627 248 169.373 248H24C15.163 248 8 255.163 8 264V409.373C8 423.627 25.234 430.766 35.314 420.687L84.686 371.315C129.209 413.864 189.552 440 256 440C392.81 440 503.747 329.2200000000001 504 192.469zM323.088 113.685L332.911 126.315C341.0489999999999 136.778 339.164 151.857 328.701 159.994L288 191.651V296C288 309.255 277.255 320 264 320H248C234.745 320 224 309.255 224 296V160.349L289.409 109.475C299.872 101.338 314.95 103.222 323.088 113.685z" />
    +    <glyph glyph-name="hockey-puck"
    +      unicode="&#xF453;"
    +      horiz-adv-x="512" d=" M0 288C0 341 114.6 384 256 384S512 341 512 288S397.4 192 256 192S0 235 0 288zM0 205.8V96C0 43 114.6 0 256 0S512 43 512 96V205.8C398.6 123.5 113.5 123.4 0 205.8z" />
    +    <glyph glyph-name="home"
    +      unicode="&#xF015;"
    +      horiz-adv-x="576" d=" M488 135.3V-8C488 -21.3 477.3 -32 464 -32H348C341.4 -32 336 -26.6 336 -20V92C336 98.6 330.6 104 324 104H252C245.4 104 240 98.6 240 92V-20C240 -26.6 234.6 -32 228 -32H112C98.7 -32 88 -21.3 88 -8V135.3C88 138.9 89.6 142.3 92.4 144.6L280.4 299.4000000000001C284.8 303 291.2 303 295.7 299.4000000000001L483.7 144.6C486.4 142.3 488 138.9 488 135.3zM571.6 196.2L488 265.1V403.6C488 410.2 482.6 415.6 476 415.6H420C413.4 415.6 408 410.2 408 403.6V331L318.5 404.7C300.8 419.3 275.2 419.3 257.5 404.7L4.4 196.2C-0.7 192 -1.4 184.4 2.8 179.3L28.3 148.3C32.5 143.2 40.1 142.5 45.2 146.7L280.4 340.4C284.8 344 291.2 344 295.7 340.4L530.9 146.7C536 142.5 543.6 143.2 547.8 148.3L573.3 179.3C577.5 184.5 576.6999999999999 192 571.5999999999999 196.2z" />
    +    <glyph glyph-name="horse"
    +      unicode="&#xF6F0;"
    +      horiz-adv-x="576" d=" M575.92 371.4C575.91 379.53 572.9 387.27 567.3399999999999 393.2C563.56 397.23 558.7599999999999 402.32 553.6499999999999 407.7C564.7099999999998 414.54 573.1499999999999 425.19 575.8299999999998 438.36C576.85 443.32 572.96 448 567.9 448H447.92C377.23 448 319.92 390.69 319.92 320H160C131.16 320 105.6 307.02 88 286.89V288C39.47 288 0 248.53 0 200V144C0 135.16 7.16 128 16 128H32C40.84 128 48 135.16 48 144V200C48 213.22 54.87 224.39 64.78 231.68C64.57 229.1 64 226.63 64 224C64 196.36 75.84 171.64 94.54 154.12L68.82 85.52A63.94500000000001 63.94500000000001 0 0 1 66.66 47.53L91.51 -51.88A15.982 15.982 0 0 1 107.02 -64H172.98C183.39 -64 191.03 -54.22 188.5 -44.12L162.19 61.14L186.03 124.73L320 102.4V-48C320 -56.84 327.1600000000001 -64 336 -64H400C408.84 -64 416 -56.84 416 -48V129.78C435.74 149.97 448 177.53 448 208C448 208.22 447.93 208.42 447.92 208.64V311.11L463.92 304L482.82 266.3C490.27 251.43 507.87 244.75 523.31 250.93L555.8599999999999 263.9500000000001A31.997 31.997 0 0 1 575.9799999999999 293.6900000000001L575.92 371.4000000000001zM511.92 352C503.08 352 495.92 359.16 495.92 368S503.08 384 511.92 384S527.92 376.8400000000001 527.92 368S520.76 352 511.92 352z" />
    +    <glyph glyph-name="hospital-alt"
    +      unicode="&#xF47D;"
    +      horiz-adv-x="576" d=" M544 352H416V416C416 433.7 401.7 448 384 448H192C174.3 448 160 433.7 160 416V352H32C14.3 352 0 337.7 0 320V-48C0 -56.8 7.2 -64 16 -64H560C568.8 -64 576 -56.8 576 -48V320C576 337.7 561.7 352 544 352zM160 12C160 5.4 154.6 0 148 0H108C101.4 0 96 5.4 96 12V52C96 58.6 101.4 64 108 64H148C154.6 64 160 58.6 160 52V12zM160 140C160 133.4 154.6 128 148 128H108C101.4 128 96 133.4 96 140V180C96 186.6 101.4 192 108 192H148C154.6 192 160 186.6 160 180V140zM320 12C320 5.4 314.6 0 308 0H268C261.4 0 256 5.4 256 12V52C256 58.6 261.4 64 268 64H308C314.6 64 320 58.6 320 52V12zM320 140C320 133.4 314.6 128 308 128H268C261.4 128 256 133.4 256 140V180C256 186.6 261.4 192 268 192H308C314.6 192 320 186.6 320 180V140zM336 310C336 306.7 333.3 304 330 304H304V278C304 274.7 301.3 272 298 272H278C274.7 272 272 274.7 272 278V304H246C242.7 304 240 306.7 240 310V330C240 333.3 242.7 336 246 336H272V362C272 365.3 274.7 368 278 368H298C301.3 368 304 365.3 304 362V336H330C333.3 336 336 333.3 336 330V310zM480 12C480 5.4 474.6 0 468 0H428C421.4 0 416 5.4 416 12V52C416 58.6 421.4 64 428 64H468C474.6 64 480 58.6 480 52V12zM480 140C480 133.4 474.6 128 468 128H428C421.4 128 416 133.4 416 140V180C416 186.6 421.4 192 428 192H468C474.6 192 480 186.6 480 180V140z" />
    +    <glyph glyph-name="hospital-symbol"
    +      unicode="&#xF47E;"
    +      horiz-adv-x="512" d=" M256 448C114.6 448 0 333.4 0 192S114.6 -64 256 -64S512 50.6 512 192S397.4 448 256 448zM368 72C368 67.6 364.4 64 360 64H312C307.6 64 304 67.6 304 72V160H208V72C208 67.6 204.4 64 200 64H152C147.6 64 144 67.6 144 72V312C144 316.4 147.6 320 152 320H200C204.4 320 208 316.4 208 312V224H304V312C304 316.4 307.6 320 312 320H360C364.4 320 368 316.4 368 312V72z" />
    +    <glyph glyph-name="hospital"
    +      unicode="&#xF0F8;"
    +      horiz-adv-x="448" d=" M448 -44V-64H0V-44C0 -37.373 5.373 -32 12 -32H32V328C32 341.255 42.745 352 56 352H144V424C144 437.255 154.745 448 168 448H280C293.255 448 304 437.255 304 424V352H392C405.255 352 416 341.255 416 328V-32H436C442.627 -32 448 -37.373 448 -44zM308 256H268C261.373 256 256 250.627 256 244V204C256 197.373 261.373 192 268 192H308C314.627 192 320 197.373 320 204V244C320 250.627 314.627 256 308 256zM140 192H180C186.627 192 192 197.373 192 204V244C192 250.627 186.627 256 180 256H140C133.373 256 128 250.627 128 244V204C128 197.373 133.373 192 140 192zM244 64H204C197.373 64 192 58.627 192 52V-32H256V52C256 58.627 250.627 64 244 64zM308 160H268C261.373 160 256 154.627 256 148V108C256 101.373 261.373 96 268 96H308C314.627 96 320 101.373 320 108V148C320 154.627 314.627 160 308 160zM192 148C192 154.627 186.627 160 180 160H140C133.373 160 128 154.627 128 148V108C128 101.373 133.373 96 140 96H180C186.627 96 192 101.373 192 108V148zM182 352H208V326A6 6 0 0 1 214 320H234A6 6 0 0 1 240 326V352H266A6 6 0 0 1 272 358V378A6 6 0 0 1 266 384H240V410A6 6 0 0 1 234 416H214A6 6 0 0 1 208 410V384H182A6 6 0 0 1 176 378V358A6 6 0 0 1 182 352z" />
    +    <glyph glyph-name="hot-tub"
    +      unicode="&#xF593;"
    +      horiz-adv-x="512" d=" M414.21 270.35C415.23 262.14 421.96 256 429.96 256H446.08C455.59 256 463.16 264.57 462.08 274.35C457.74 313.46 439.68 348.88 411.95 371.51C394.58 385.68 383.13 408.26 379.97 433.66C378.96 441.86 372.2200000000001 448 364.23 448H348.11C338.6 448 331.0200000000001 439.43 332.11 429.65C336.45 390.54 354.51 355.12 382.24 332.49C399.6 318.3200000000001 411.06 295.74 414.2100000000001 270.35zM306.21 270.35C307.23 262.14 313.96 256 321.96 256H338.08C347.59 256 355.16 264.57 354.08 274.35C349.74 313.46 331.68 348.88 303.95 371.51C286.58 385.68 275.13 408.26 271.97 433.66C270.96 441.86 264.2200000000001 448 256.23 448H240.11C230.6 448 223.02 439.43 224.11 429.65C228.45 390.54 246.51 355.12 274.24 332.49C291.6 318.3200000000001 303.06 295.74 306.2100000000001 270.35zM480 192H256L145.07 275.2A63.99 63.99 0 0 1 106.67 288H64C28.65 288 0 259.35 0 224V0C0 -35.35 28.65 -64 64 -64H448C483.35 -64 512 -35.35 512 0V160C512 177.67 497.67 192 480 192zM128 8C128 3.58 124.42 0 120 0H104C99.58 0 96 3.58 96 8V120C96 124.42 99.58 128 104 128H120C124.42 128 128 124.42 128 120V8zM224 8C224 3.58 220.42 0 216 0H200C195.58 0 192 3.58 192 8V120C192 124.42 195.58 128 200 128H216C220.42 128 224 124.42 224 120V8zM320 8C320 3.58 316.42 0 312 0H296C291.58 0 288 3.58 288 8V120C288 124.42 291.58 128 296 128H312C316.42 128 320 124.42 320 120V8zM416 8C416 3.58 412.42 0 408 0H392C387.58 0 384 3.58 384 8V120C384 124.42 387.58 128 392 128H408C412.42 128 416 124.42 416 120V8zM64 320C99.35 320 128 348.65 128 384S99.35 448 64 448S0 419.35 0 384S28.65 320 64 320z" />
    +    <glyph glyph-name="hotel"
    +      unicode="&#xF594;"
    +      horiz-adv-x="576" d=" M560 384C568.84 384 576 391.16 576 400V432C576 440.84 568.84 448 560 448H16C7.16 448 0 440.84 0 432V400C0 391.16 7.16 384 16 384H31.98V0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H256V16C256 24.8 263.2 32 272 32H304C312.8 32 320 24.8 320 16V-64H560C568.84 -64 576 -56.84 576 -48V-16C576 -7.16 568.84 0 560 0H544V384H560zM256 339.2C256 345.6 262.4 352 268.8 352H307.2C313.6 352 320 345.6 320 339.2V300.8C320 294.4 313.6 288 307.2 288H268.8C262.4000000000001 288 256 294.4 256 300.8V339.2000000000001zM256 243.2C256 249.6 262.4 256 268.8 256H307.2C313.6 256 320 249.6 320 243.2V204.8C320 198.4 313.6 192 307.2 192H268.8C262.4000000000001 192 256 198.4 256 204.8V243.2zM128 339.2C128 345.6 134.4 352 140.8 352H179.2C185.6 352 192 345.6 192 339.2V300.8C192 294.4 185.6 288 179.2 288H140.8C134.4 288 128 294.4 128 300.8V339.2zM179.2 192H140.8C134.4 192 128 198.4 128 204.8V243.2C128 249.6 134.4 256 140.8 256H179.2C185.6 256 192 249.6 192 243.2V204.8C192 198.4 185.6 192 179.2 192zM192 64C192 117.02 234.98 160 288 160S384 117.02 384 64H192zM448 204.8C448 198.4 441.6 192 435.2 192H396.8C390.4000000000001 192 384 198.4 384 204.8V243.2C384 249.6 390.4 256 396.8 256H435.2C441.6 256 448 249.6 448 243.2V204.8zM448 300.8C448 294.4 441.6 288 435.2 288H396.8C390.4000000000001 288 384 294.4 384 300.8V339.2000000000001C384 345.6 390.4 352 396.8 352H435.2C441.6 352 448 345.6 448 339.2000000000001V300.8z" />
    +    <glyph glyph-name="hourglass-end"
    +      unicode="&#xF253;"
    +      horiz-adv-x="384" d=" M360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384zM192 240C134.213 240 88 306.5180000000001 88 384H296C296 306.055 249.49 240 192 240z" />
    +    <glyph glyph-name="hourglass-half"
    +      unicode="&#xF252;"
    +      horiz-adv-x="384" d=" M360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448zM284.9220000000001 64H99.08C116.139 110.797 151.176 144 192 144C232.821 144 267.862 110.804 284.9220000000001 64zM284.9410000000001 320H99.078C91.988 339.452 88 361.252 88 384H296C296 361.195 292.013 339.413 284.941 320z" />
    +    <glyph glyph-name="hourglass-start"
    +      unicode="&#xF251;"
    +      horiz-adv-x="384" d=" M360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448zM296 0H88C88 77.458 134.204 144 192 144C249.786 144 296 77.483 296 0z" />
    +    <glyph glyph-name="hourglass"
    +      unicode="&#xF254;"
    +      horiz-adv-x="384" d=" M360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384z" />
    +    <glyph glyph-name="house-damage"
    +      unicode="&#xF6F1;"
    +      horiz-adv-x="576" d=" M288 333.04L69.47 140.29C67.85 138.8300000000001 65.78 138.15 64 136.94V-48C64 -56.84 71.16 -64 80 -64H229.23L192 8.81L296.11 72.81L235.95 192.03L384 55.25L279.89 -8.75L319.81 -64H496C504.84 -64 512 -56.84 512 -48V136.9C510.3 138.06 508.28 138.72 506.74 140.1L288 333.04zM570.69 211.72L512 263.55V400C512 408.8400000000001 504.84 416 496 416H432C423.1600000000001 416 416 408.8400000000001 416 400V348.31L314.75 437.69C307.12 444.55 297.56 447.99 288 448S268.9 444.59 261.3 437.73L5.31 211.72C-1.26 205.81 -1.81 195.7 4.1 189.12L25.5 165.3C31.4 158.73 41.52 158.18 48.1 164.09L277.42 366.37C283.4700000000001 371.7 292.54 371.7 298.5900000000001 366.37L527.91 164.1C534.48 158.2000000000001 544.6 158.74 550.51 165.31L571.91 189.13C577.81 195.7 577.27 205.82 570.6899999999999 211.72z" />
    +    <glyph glyph-name="hryvnia"
    +      unicode="&#xF6F2;"
    +      horiz-adv-x="384" d=" M368 208C376.84 208 384 215.16 384 224V256C384 264.8400000000001 376.84 272 368 272H326.14C339.55 300.63 339.88 335.33 322.01 366.05C303.34 398.16 267.1 416 229.96 416H151.14C126.82 416 103.28 407.4700000000001 84.6 391.91L72.83 382.1C62.65 373.61 61.27 358.48 69.76 348.3L90.25 323.71C98.74 313.52 113.87 312.15 124.06 320.64L135.79 330.42C140.11 334.02 145.56 335.99 151.18 335.99H234.8C246.49 335.99 256 326.4700000000001 256 314.79C256 308.88 253.52 303.2100000000001 249.19 299.2100000000001L219.7 272H16C7.16 272 0 264.8400000000001 0 256V224C0 215.16 7.16 208 16 208H150.37L115.7 176H16C7.16 176 0 168.84 0 160V128C0 119.16 7.16 112 16 112H57.86C44.45 83.37 44.12 48.67 61.99 17.95C80.66 -14.15 116.9 -32 154.04 -32H232.86C257.18 -32 280.72 -23.47 299.4 -7.91L311.17 1.9C321.35 10.39 322.73 25.52 314.24 35.7L293.75 60.29C285.26 70.48 270.13 71.85 259.94 63.36L248.19 53.5599999999999A23.992 23.992 0 0 0 232.83 47.9999999999999H149.2C137.51 47.9999999999999 128 57.5199999999999 128 69.1999999999999C128 75.11 130.48 80.7799999999999 134.81 84.7799999999999L164.3 112H368C376.84 112 384 119.16 384 128V160C384 168.84 376.84 176 368 176H233.63L268.3 208H368z" />
    +    <glyph glyph-name="i-cursor"
    +      unicode="&#xF246;"
    +      horiz-adv-x="256" d=" M256 395.952V435.935C256 442.504 250.726 447.852 244.158 447.9340000000001C211.621 448.344 166.469 447.989 128 410.041C90.266 447.264 46.979 448.114 11.913 447.886C5.318 447.843 0 442.481 0 435.886V396.241C0 389.554 5.458 384.163 12.145 384.243C38.111 384.553 96 380.757 96 335.818V224H60C53.373 224 48 218.627 48 212V172C48 165.373 53.373 160 60 160H96V48C96 3.068 39.925 -0.031 12.05 0.041C5.404 0.058 0 -5.306 0 -11.952V-51.935C0 -58.504 5.274 -63.852 11.842 -63.934C44.379 -64.3430000000001 89.531 -63.988 128 -26.04C165.734 -63.263 209.021 -64.1130000000001 244.087 -63.885C250.682 -63.842 256 -58.48 256 -51.885V-12.24C256 -5.553 250.542 -0.162 243.855 -0.242C217.889 -0.553 160 3.061 160 48V160H196C202.627 160 208 165.373 208 172V212C208 218.627 202.627 224 196 224H160V335.818C160 380.75 216.075 384.031 243.95 383.9600000000001C250.596 383.942 256 389.3060000000001 256 395.952z" />
    +    <glyph glyph-name="id-badge"
    +      unicode="&#xF2C1;"
    +      horiz-adv-x="384" d=" M336 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V400C384 426.5 362.5 448 336 448zM144 416H240C248.8 416 256 408.8 256 400S248.8 384 240 384H144C135.2 384 128 391.2 128 400S135.2 416 144 416zM192 288C227.3 288 256 259.3 256 224S227.3 160 192 160S128 188.7 128 224S156.7 288 192 288zM304 51.2C304 40.6 294 32 281.6 32H102.4C90 32 80 40.6 80 51.2V70.4C80 102.2 110.1 128 147.2 128H152.2C164.5 122.9 177.9 120 192 120S219.6 122.9 231.8 128H236.8C273.9000000000001 128 304 102.2 304 70.4V51.2z" />
    +    <glyph glyph-name="id-card-alt"
    +      unicode="&#xF47F;"
    +      horiz-adv-x="576" d=" M528 384H384V288H192V384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H528C554.5 -64 576 -42.5 576 -16V336C576 362.5 554.5 384 528 384zM288 224C323.3 224 352 195.3 352 160S323.3 96 288 96S224 124.7 224 160S252.7 224 288 224zM381.3 0H194.7C184.3 0 175.9 10 179.1 19.8C187.4 45.4 211.5 64 240 64H248.2C260.5 58.9 273.9 56 288 56S315.6 58.9 327.8 64H336C364.4 64 388.5 45.5 396.9 19.8C400.1 10 391.7 0 381.3 0zM352 416C352 433.7 337.7 448 320 448H256C238.3 448 224 433.7 224 416V320H352V416z" />
    +    <glyph glyph-name="id-card"
    +      unicode="&#xF2C2;"
    +      horiz-adv-x="576" d=" M528 416H48C21.5 416 0 394.5 0 368V352H576V368C576 394.5 554.5 416 528 416zM0 16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V320H0V16zM352 248C352 252.4 355.6 256 360 256H504C508.4 256 512 252.4 512 248V232C512 227.6 508.4 224 504 224H360C355.6 224 352 227.6 352 232V248zM352 184C352 188.4 355.6 192 360 192H504C508.4 192 512 188.4 512 184V168C512 163.6 508.4 160 504 160H360C355.6 160 352 163.6 352 168V184zM352 120C352 124.4 355.6 128 360 128H504C508.4 128 512 124.4 512 120V104C512 99.6 508.4 96 504 96H360C355.6 96 352 99.6 352 104V120zM176 256C211.3 256 240 227.3 240 192S211.3 128 176 128S112 156.7 112 192S140.7 256 176 256zM67.1 51.8C75.5 77.5 99.6 96 128 96H136.2C148.5 90.9 161.9 88 176 88S203.6 90.9 215.8 96H224C252.4 96 276.5 77.5 284.9 51.8C288.1 41.9 279.7 32 269.3 32H82.7C72.3 32 63.9 42 67.1 51.8z" />
    +    <glyph glyph-name="image"
    +      unicode="&#xF03E;"
    +      horiz-adv-x="512" d=" M464 0H48C21.49 0 0 21.49 0 48V336C0 362.51 21.49 384 48 384H464C490.51 384 512 362.51 512 336V48C512 21.49 490.51 0 464 0zM112 328C81.072 328 56 302.928 56 272S81.072 216 112 216S168 241.072 168 272S142.928 328 112 328zM64 64H448V176L360.485 263.515C355.7990000000001 268.201 348.201 268.201 343.514 263.515L208 128L152.485 183.515C147.799 188.201 140.201 188.201 135.514 183.515L64 112V64z" />
    +    <glyph glyph-name="images"
    +      unicode="&#xF302;"
    +      horiz-adv-x="576" d=" M480 32V16C480 -10.51 458.51 -32 432 -32H48C21.49 -32 0 -10.51 0 16V272C0 298.51 21.49 320 48 320H64V112C64 67.888 99.888 32 144 32H480zM576 112V368C576 394.51 554.51 416 528 416H144C117.49 416 96 394.51 96 368V112C96 85.49 117.49 64 144 64H528C554.51 64 576 85.49 576 112zM256 320C256 293.49 234.51 272 208 272S160 293.49 160 320S181.49 368 208 368S256 346.51 256 320zM160 176L215.515 231.515C220.201 236.201 227.799 236.201 232.486 231.515L272 192L407.515 327.515C412.201 332.201 419.799 332.201 424.486 327.515L512 240V128H160V176z" />
    +    <glyph glyph-name="inbox"
    +      unicode="&#xF01C;"
    +      horiz-adv-x="576" d=" M567.938 204.092L462.25 362.626A48.003 48.003 0 0 1 422.311 384H153.689A48 48 0 0 1 113.751 362.626L8.062 204.092A47.994 47.994 0 0 1 0 177.467V48C0 21.49 21.49 0 48 0H528C554.51 0 576 21.49 576 48V177.467A47.994 47.994 0 0 1 567.938 204.092zM162.252 320H413.749L499.082 192H376L344 128H232L200 192H76.918L162.252 320z" />
    +    <glyph glyph-name="indent"
    +      unicode="&#xF03C;"
    +      horiz-adv-x="448" d=" M0 364V404C0 412.837 7.163 420 16 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H16C7.163 348 0 355.163 0 364zM176 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H176C167.163 292 160 284.837 160 276V236C160 227.163 167.163 220 176 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM176 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H176C167.163 164 160 156.837 160 148V108C160 99.163 167.163 92 176 92zM123.313 203.313L27.313 299.297C17.266 309.348 0 302.224 0 287.9840000000001V96.009C0 81.68 17.325 74.705 27.313 84.696L123.313 180.6880000000001C129.562 186.9350000000001 129.562 197.0650000000001 123.313 203.3130000000001z" />
    +    <glyph glyph-name="industry"
    +      unicode="&#xF275;"
    +      horiz-adv-x="512" d=" M475.115 284.219L336 195.691V263.971C336 282.887 315.069 294.37 299.115 284.219L160 195.691V392C160 405.255 149.255 416 136 416H24C10.745 416 0 405.255 0 392V-8C0 -21.255 10.745 -32 24 -32H488C501.255 -32 512 -21.255 512 -8V263.971C512 282.8880000000001 491.069 294.37 475.115 284.219z" />
    +    <glyph glyph-name="infinity"
    +      unicode="&#xF534;"
    +      horiz-adv-x="640" d=" M471.1 352C405 352 353.3 310.7 320 273.4C286.7 310.7 235 352 168.9 352C75.8 352 0 280.2 0 192S75.8 32 168.9 32C235 32 286.7 73.3 320 110.6C353.3 73.3 405 32 471.1 32C564.2 32 640 103.8 640 192S564.2 352 471.1 352zM168.9 128C128.7 128 96 156.7 96 192S128.7 256 168.9 256C207.1 256 242.3 219.9 262.9 192C242.5 164.4 207 128 168.9 128zM471.1 128C432.9000000000001 128 397.7000000000001 164.1 377.1 192C397.5 219.6 433 256 471.1 256C511.3 256 544 227.3 544 192S511.3 128 471.1 128z" />
    +    <glyph glyph-name="info-circle"
    +      unicode="&#xF05A;"
    +      horiz-adv-x="512" d=" M256 440C119.043 440 8 328.9170000000001 8 192C8 55.003 119.043 -56 256 -56S504 55.003 504 192C504 328.9170000000001 392.957 440 256 440zM256 330C279.1960000000001 330 298 311.1960000000001 298 288S279.1960000000001 246 256 246S214 264.804 214 288S232.804 330 256 330zM312 76C312 69.373 306.627 64 300 64H212C205.373 64 200 69.373 200 76V100C200 106.627 205.373 112 212 112H224V176H212C205.373 176 200 181.373 200 188V212C200 218.627 205.373 224 212 224H276C282.627 224 288 218.627 288 212V112H300C306.627 112 312 106.627 312 100V76z" />
    +    <glyph glyph-name="info"
    +      unicode="&#xF129;"
    +      horiz-adv-x="192" d=" M20 23.771H40V168.229H20C8.954 168.229 0 177.183 0 188.229V236C0 247.046 8.954 256 20 256H132C143.046 256 152 247.046 152 236V23.771H172C183.046 23.771 192 14.817 192 3.771V-44C192 -55.046 183.046 -64 172 -64H20C8.954 -64 0 -55.046 0 -44V3.771C0 14.817 8.954 23.771 20 23.771zM96 448C56.235 448 24 415.765 24 376S56.235 304 96 304S168 336.235 168 376S135.764 448 96 448z" />
    +    <glyph glyph-name="italic"
    +      unicode="&#xF033;"
    +      horiz-adv-x="320" d=" M204.758 32H170.909L233.0010000000001 352H273.7260000000001A16 16 0 0 1 289.4300000000001 364.937L295.6720000000001 396.937C297.599 406.8160000000001 290.034 416 279.968 416H120.235A16 16 0 0 1 104.531 403.063L98.289 371.063C96.362 361.184 103.927 352 113.993 352H147.839L85.749 32H46.278A16 16 0 0 1 30.574 19.065L24.329 -12.935C22.402 -22.815 29.967 -32 40.034 -32H198.513A16 16 0 0 1 214.217 -19.065L220.462 12.935C222.389 22.815 214.824 32 204.758 32z" />
    +    <glyph glyph-name="jedi"
    +      unicode="&#xF669;"
    +      horiz-adv-x="544" d=" M479.99 96L538.87 154.87C542.16 171.67 544 188.99 544 206.73C544 212.54 543.32 218.24 542.95 224H496L537.25 265.24C522.75 330.0300000000001 484.82 388.29 429.3400000000001 427.5100000000001C426.5700000000001 429.4700000000001 423.37 430.5000000000001 420.0900000000001 430.5000000000001C414.7200000000001 430.5000000000001 409.68 427.7900000000001 406.6 423.2600000000001C403.55 418.7700000000001 402.9600000000001 413.2700000000001 404.99 408.1700000000001C411.54 391.7100000000001 414.85 374.4400000000001 414.85 356.86C414.85 311.74 393.8200000000001 270.2900000000001 357.1600000000001 243.1300000000001C353.1400000000001 240.1500000000001 350.7000000000001 235.6300000000001 350.4600000000001 230.7300000000001C350.2200000000001 225.8100000000001 352.2200000000001 221.0700000000001 355.9500000000001 217.7000000000001C388.8800000000001 187.9500000000001 403.3000000000001 144.1900000000001 394.5200000000001 100.6300000000001C384.7800000000001 52.28 345.6800000000001 13.5300000000001 297.2100000000001 4.1300000000001L294.7100000000001 69.47L321.88 51C324.86 48.94 329.27 49.31 331.9 51.8A8.002 8.002 0 0 1 333.24 61.72L313.13 95.4500000000001L355.2 104.1700000000001C358.8999999999999 104.9200000000001 361.58 108.2200000000001 361.58 112.0000000000001C361.58 115.7700000000001 358.89 119.0600000000001 355.2 119.8300000000001L313.13 128.5600000000001L333.26 162.3300000000001C335.18 165.5600000000001 334.5999999999999 169.6400000000001 331.88 172.2400000000001C329.18 174.7900000000001 324.9099999999999 175.1300000000001 321.88 173.0400000000001L291.49 152.3700000000001L279.96 440.3A7.9639999999999995 7.9639999999999995 0 0 1 271.96 448C267.63 448 264.12 444.62 263.96 440.33L252.44 152.36L222.05 173.02C218.91 175.14 214.78 174.85 212.05 172.24C209.33 169.65 208.75 165.57 210.69 162.3L230.8 128.57L188.73 119.84C185.03 119.09 182.35 115.79 182.35 112.01S185.02 104.93 188.73 104.18L230.8 95.46L210.67 61.69C208.75 58.46 209.33 54.36 212.06 51.75C214.65 49.3 219.09 49 222.06 51L249.22 69.48L246.72 4.22C189.78 15.86 146.8299999999999 66.11 146.8299999999999 126.1400000000001C146.8299999999999 161.22 161.4499999999999 193.7400000000001 188 217.72C191.72 221.0800000000001 193.72 225.8300000000001 193.4799999999999 230.73C193.2399999999999 235.63 190.7999999999999 240.14 186.7899999999999 243.11C150.12 270.27 129.0799999999999 311.73 129.0799999999999 356.85C129.0799999999999 374.4100000000001 132.3899999999999 391.6600000000001 138.9199999999999 408.11C140.94 413.2 140.3499999999999 418.7 137.2999999999999 423.2C134.2199999999999 427.74 129.1699999999999 430.45 123.7899999999999 430.45C120.4899999999999 430.45 117.2899999999999 429.4100000000001 114.5199999999999 427.45C58.6499999999999 387.93 20.9199999999999 330.08 6.5499999999999 265.38L47.93 224H0.72C0.09 214.08 -0.25 204.09 0.22 194.01C0.84 180.58 2.76 167.48 5.33 154.6L63.93 96H24.02C65.27 5.77 155.15 -58.94 259.12 -63.71C263.42 -63.91 267.71 -64 271.9700000000001 -64C382.3100000000001 -64 477.3200000000001 1.83 519.95 96H479.9900000000001z" />
    +    <glyph glyph-name="joint"
    +      unicode="&#xF595;"
    +      horiz-adv-x="640" d=" M444.34 266.9C466.72 251.22 480 225.74 480 198.31V168C480 163.58 483.58 160 488 160H536C540.42 160 544 163.58 544 168V198.31C544 241.55 522.99 281.7200000000001 487.66 306.37C463.85 322.98 448 348.66 448 377.69V440C448 444.42 444.42 448 440 448H392C387.58 448 384 444.42 384 440V373.6C384 329.91 408.56 291.9700000000001 444.3400000000001 266.9zM194.97 89.02C126.03 77.93 59.69 53.31 0 16C83.65 -36.28 180.3 -64 278.94 -64H367.51L254.79 67.51C240.05 84.71 217.34 92.62 194.97 89.02zM553.28 360.91C547.61 364.71 544 370.87 544 377.69V440C544 444.42 540.42 448 536 448H488C483.58 448 480 444.42 480 440V377.69C480 355.67 490.17 334.28 508.64 322.3C550.79 294.9600000000001 576 248.46 576 198.31V168C576 163.58 579.58 160 584 160H632C636.42 160 640 163.58 640 168V198.31C640 263.75 607.59 324.5 553.28 360.91zM360.89 95.95C326.49 95.89 274.08 95.8 272.68 95.78L390.48 -41.65A63.98700000000001 63.98700000000001 0 0 1 439.07 -64H527.52L409.57 73.6A63.95499999999999 63.95499999999999 0 0 1 360.89 95.9500000000001zM616 96H432L549.99 -41.65A63.98700000000001 63.98700000000001 0 0 1 598.58 -64H616C629.25 -64 640 -53.25 640 -40V72C640 85.26 629.25 96 616 96z" />
    +    <glyph glyph-name="journal-whills"
    +      unicode="&#xF66A;"
    +      horiz-adv-x="448" d=" M448 89.6V422.4C448 438.4 438.4 448 422.4 448H96C41.6 448 0 406.4 0 352V32C0 -22.4 41.6 -64 96 -64H422.4C435.2 -64 448 -54.4 448 -38.4V-22.4C448 -16 444.8 -9.6 438.4 -3.2C435.2 12.8 435.2 57.6 438.4 70.4C444.8 73.6 448 80 448 89.6zM133.08 303.61L154.34 282.35C155.9 280.79 157.95 280.01 160 280.01S164.09 280.79 165.66 282.35C168.78 285.4700000000001 168.78 290.54 165.66 293.6600000000001L139.24 320.0800000000001C149.24 340.98 165.48 358.05 185.61 369.3400000000001C179.62 359.6 176 348.26 176 336C176 316.04 185.33 298.43 199.66 286.69C190.01 276.63 184 263.04 184 248C184 221.06 203.04 198.6 228.38 193.24L229.74 225.95L219.37 218.91C218.68 218.46 217.9 218.22 217.12 218.22C216.12 218.22 215.14 218.6 214.37 219.31A4.006 4.006 0 0 0 213.68 224.26L222.22 238.57L204.31 242.29C202.45 242.68 201.12 244.32 201.12 246.21S202.45 249.74 204.31 250.13L222.22 253.85L213.68 268.16C212.73 269.77 213.01 271.83 214.37 273.11C215.73 274.41 217.81 274.55 219.37 273.52L231.38 265.36L236 376.17C236.09 378.31 237.86 380 240 380S243.91 378.31 244 376.17L248.68 263.88L262.88 273.53A4.067 4.067 0 0 0 267.88 273.12A4.006 4.006 0 0 0 268.57 268.17L260.03 253.86L277.94 250.14C279.8 249.7500000000001 281.13 248.11 281.13 246.2200000000001S279.8 242.6900000000001 277.94 242.3000000000001L260.03 238.5800000000001L268.57 224.2700000000001C269.52 222.66 269.24 220.6000000000001 267.88 219.3200000000001C267.11 218.6000000000001 266.11 218.2300000000001 265.13 218.2300000000001C264.35 218.2300000000001 263.57 218.46 262.88 218.9200000000001L250.2 227.5400000000001L251.63 193.2600000000001C276.96 198.6 296 221.06 296 248C296 263.04 289.99 276.63 280.34 286.69C294.67 298.43 304 316.04 304 336C304 348.26 300.38 359.6 294.4 369.33C314.53 358.05 330.77 340.9700000000001 340.77 320.07L314.35 293.65C311.23 290.53 311.23 285.46 314.35 282.34C315.91 280.78 317.96 280 320.01 280S324.1 280.78 325.67 282.34L346.93 303.6C349.9000000000001 293.52 352 283.05 352 272C352 271.48 351.86 271.01 351.85 270.49L314.74 238.02A7.974999999999999 7.974999999999999 0 0 1 313.99 226.74A7.97 7.97 0 0 1 320.01 224.01C321.89 224.01 323.76 224.67 325.28 225.99L348.87 246.63C337.32 197.04 293.09 160 240 160S142.68 197.04 131.14 246.62L154.73 225.98A7.957 7.957 0 0 1 160 224C162.22 224 164.44 224.92 166.02 226.73C168.94 230.06 168.6 235.11 165.27 238.01L128.16 270.48C128.15 271 128.01 271.4700000000001 128.01 271.99C128 283.05 130.1 293.52 133.08 303.61zM380.8 0H96C76.8 0 64 12.8 64 32S80 64 96 64H380.8V0z" />
    +    <glyph glyph-name="kaaba"
    +      unicode="&#xF66B;"
    +      horiz-adv-x="576" d=" M554.12 364.49L318.36 443.07A95.962 95.962 0 0 1 257.6500000000001 443.07L21.88 364.49A32.006 32.006 0 0 1 0 334.13V285.12L265.02 364.63C280.05 369.13 295.94 369.13 311 364.63L576 285.12V334.13C576 347.9 567.19 360.13 554.12 364.49zM274.2200000000001 333.9700000000001L0 251.7V23.32C0 8.32 10.42 -4.66 25.06 -7.92L267.18 -61.72A95.937 95.937 0 0 1 308.83 -61.72L550.95 -7.92C565.59 -4.67 576.01 8.32 576.01 23.32V251.71L301.81 333.9700000000001C292.77 336.69 283.2200000000001 336.69 274.2200000000001 333.9700000000001zM128 217.89C128 214.28 125.59 211.12 122.11 210.17L42.11 188.35C37.02 186.97 32 190.8 32 196.07V212.65C32 216.26 34.41 219.42 37.89 220.37L117.89 242.19C122.98 243.58 128 239.75 128 234.47V217.89zM272 257.17C272 253.56 269.59 250.4 266.11 249.45L170.11 223.27C165.02 221.88 160 225.71 160 230.99V247.57C160 251.18 162.41 254.34 165.89 255.29L261.89 281.4700000000001C266.98 282.86 272 279.03 272 273.75V257.17zM448 234.47C448 239.75 453.02 243.58 458.11 242.19L538.11 220.37C541.59 219.42 544 216.26 544 212.65V196.07C544 190.79 538.98 186.96 533.89 188.35L453.89 210.17A7.997 7.997 0 0 0 448 217.89V234.47zM304 273.74C304 279.02 309.02 282.85 314.11 281.4600000000001L410.11 255.28C413.5900000000001 254.33 416 251.17 416 247.56V230.98C416 225.7 410.98 221.87 405.89 223.26L309.89 249.4400000000001A7.997 7.997 0 0 0 304 257.1600000000001V273.74z" />
    +    <glyph glyph-name="key"
    +      unicode="&#xF084;"
    +      horiz-adv-x="512" d=" M512 271.999C512 174.797 433.202 96 336 96C324.78 96 313.81 97.062 303.173 99.069L279.161 72.055A23.999000000000002 23.999000000000002 0 0 0 261.223 64H224V24C224 10.745 213.255 0 200 0H160V-40C160 -53.255 149.255 -64 136 -64H24C10.745 -64 0 -53.255 0 -40V38.059C0 44.424 2.529 50.529 7.029 55.03L168.831 216.832C163.108 234.186 160 252.729 160 272C160 369.202 238.797 447.999 335.999 448C433.488 448.001 512 369.4890000000001 512 271.999zM336 320C336 293.49 357.49 272 384 272S432 293.49 432 320S410.51 368 384 368S336 346.51 336 320z" />
    +    <glyph glyph-name="keyboard"
    +      unicode="&#xF11C;"
    +      horiz-adv-x="576" d=" M528 0H48C21.49 0 0 21.49 0 48V336C0 362.51 21.49 384 48 384H528C554.51 384 576 362.51 576 336V48C576 21.49 554.51 0 528 0zM128 268V308C128 314.627 122.627 320 116 320H76C69.373 320 64 314.627 64 308V268C64 261.373 69.373 256 76 256H116C122.627 256 128 261.373 128 268zM224 268V308C224 314.627 218.627 320 212 320H172C165.373 320 160 314.627 160 308V268C160 261.373 165.373 256 172 256H212C218.627 256 224 261.373 224 268zM320 268V308C320 314.627 314.627 320 308 320H268C261.373 320 256 314.627 256 308V268C256 261.373 261.373 256 268 256H308C314.627 256 320 261.373 320 268zM416 268V308C416 314.627 410.627 320 404 320H364C357.373 320 352 314.627 352 308V268C352 261.373 357.373 256 364 256H404C410.627 256 416 261.373 416 268zM512 268V308C512 314.627 506.627 320 500 320H460C453.373 320 448 314.627 448 308V268C448 261.373 453.373 256 460 256H500C506.627 256 512 261.373 512 268zM176 172V212C176 218.627 170.627 224 164 224H124C117.373 224 112 218.627 112 212V172C112 165.373 117.373 160 124 160H164C170.627 160 176 165.373 176 172zM272 172V212C272 218.627 266.627 224 260 224H220C213.373 224 208 218.627 208 212V172C208 165.373 213.373 160 220 160H260C266.627 160 272 165.373 272 172zM368 172V212C368 218.627 362.627 224 356 224H316C309.373 224 304 218.627 304 212V172C304 165.373 309.373 160 316 160H356C362.627 160 368 165.373 368 172zM464 172V212C464 218.627 458.627 224 452 224H412C405.373 224 400 218.627 400 212V172C400 165.373 405.373 160 412 160H452C458.627 160 464 165.373 464 172zM128 76V116C128 122.627 122.627 128 116 128H76C69.373 128 64 122.627 64 116V76C64 69.373 69.373 64 76 64H116C122.627 64 128 69.373 128 76zM416 76V116C416 122.627 410.627 128 404 128H172C165.373 128 160 122.627 160 116V76C160 69.373 165.373 64 172 64H404C410.627 64 416 69.373 416 76zM512 76V116C512 122.627 506.627 128 500 128H460C453.373 128 448 122.627 448 116V76C448 69.373 453.373 64 460 64H500C506.627 64 512 69.373 512 76z" />
    +    <glyph glyph-name="khanda"
    +      unicode="&#xF66D;"
    +      horiz-adv-x="512" d=" M415.81 382C409.44 385.5 401.44 384.33 396.45 378.98A15.973999999999998 15.973999999999998 0 0 1 394.54 359.4600000000001C411.03 333.3 419.74 303.07 419.74 272.05C419.55 218.8 392.97 169.36 348.47 139.64L271.84 86.29V106.39L315.89 142.48C319.81 146.68 320.89 152.57 318.7 157.76L310.85 175C344.6900000000001 194.26 367.79 230.25 367.79 271.99C367.79 312.78 345.7700000000001 348.12 313.2000000000001 367.7L318.4200000000001 379.14C320.7600000000001 384.67 319.3500000000001 390.9700000000001 314.8500000000001 395.18L255.86 448L196.87 395.19C192.37 390.98 190.97 384.68 193.3 379.15L198.52 367.7100000000001C165.95 348.13 143.93 312.78 143.93 271.99C143.93 230.24 167.02 194.26 200.87 175L193.02 157.76C190.83 152.58 191.92 146.69 195.83 142.48L239.88 106.39V86.49L163.29 139.82C119.02 169.38 92.44 218.81 92.26 272C92.26 303.08 100.97 333.31 117.46 359.4700000000001C121.33 365.63 119.86 373.24 114.87 378.55C109.87 383.89 101.19 384.75 94.85 381.25C16.32 338.4 -22.3 242.7 13.36 152.01C20.43 134.02 31.25 117.63 43.82 102.95L99.79 37.59C104.66 31.9 112.83 30.35 119.44 33.87L198.79 76.1L228 55.77L180.92 22.99C179.25 23.36 177.69 24 175.91 24C162.66 24 151.92 13.26 151.92 0C151.92 -13.25 162.66 -24 175.91 -24C188.01 -24 197.6 -14.89 199.24 -3.24L239.87 25.04V-4.91C230.48 -10.48 223.88 -20.29 223.88 -32.01C223.88 -49.6800000000001 238.2 -64.01 255.86 -64.01S287.84 -49.68 287.84 -32.01C287.84 -20.3 281.23 -10.49 271.85 -4.91V25.24L312.76 -3.24C314.4100000000001 -14.89 324 -24 336.09 -24C349.34 -24 360.08 -13.25 360.08 0C360.08 13.26 349.34 24 336.09 24C334.31 24 332.75 23.36 331.08 22.99L284 55.77L313.21 76.11L392.56 33.8799999999999C399.17 30.36 407.3399999999999 31.9099999999999 412.2099999999999 37.5899999999999L464.7199999999999 98.8999999999999C483.5899999999999 120.9199999999999 498.7199999999999 146.3999999999999 505.9699999999999 174.4899999999999C527.5899999999999 258.1499999999999 489.5199999999999 341.7599999999999 415.81 381.9999999999999zM319.82 272C319.82 249.7 308.33 230.08 290.99 218.62L285.3400000000001 231.03C276.5900000000001 255.55 276.5900000000001 282.07 285.3400000000001 306.5900000000001L293.17 323.77C309.24 312.12 319.82 293.3200000000001 319.82 272zM191.89 272C191.89 293.32 202.47 312.12 218.55 323.76L226.38 306.58C235.13 282.06 235.13 255.55 226.38 231.02L220.73 218.61C203.39 230.07 191.89 249.7 191.89 272z" />
    +    <glyph glyph-name="kiss-beam"
    +      unicode="&#xF597;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM209 220.1L199.5 237.1C191.8 250.8 180.3 258.7 168 258.7S144.2 250.8 136.5 237.1L127 220.1C122.8 212.7 111.4 216.1 112.1 224.6C115.4 266.7 144.3 296 168.1 296S220.8 266.7 224.1 224.6C224.6 216.1 213.2 212.6 209 220.1zM304 52C304 32.8 275.3 10.5 232.5 8C224 7.2 220.4 19.8 228.9 23.4L245.9 30.6C258.9 36.1 266.7 44.1 266.7 52.1S258.9 68.1 245.9 73.6L228.9 80.8C222.9 83.3 222.8 92.9999999999999 228.9 95.6L245.9 102.8C258.9 108.3 266.7 116.3 266.7 124.3S258.9 140.3 245.9 145.8L228.9 153C220.3 156.6 224.1 169.5 232.5 168.3999999999999C275.3 165.8999999999999 304 143.5999999999999 304 124.3999999999999C304 111.3999999999999 290.6 97.0999999999999 268.8 88.3999999999999C290.6 79.3 304 65 304 52zM369 220.1L359.5 237.1C351.8 250.8 340.3 258.7 328 258.7S304.2 250.8 296.5 237.1L287 220.1C282.9 212.8 271.4 216.1 272.1 224.6C275.4000000000001 266.7 304.3 296 328.1 296S380.8 266.7 384.1 224.6C384.6 216.1 373.2000000000001 212.6 369 220.1z" />
    +    <glyph glyph-name="kiss-wink-heart"
    +      unicode="&#xF598;"
    +      horiz-adv-x="504" d=" M501.1 45.5C493.1 66.3 469.6 77 448 71.4L439.6 69.2L437.3 77.6C431.4000000000001 98.9999999999999 410.3 114.1 388.3 110.6C363.1 106.6 347.7 81.9999999999999 354.3 57.9999999999999L377.2 -24.6C378.7 -29.9 384.2 -33.1 389.6 -31.7L472.6 -10.2C496.7 -3.9 510.3 21.6 501.1 45.4999999999999zM323.5 49.5C317.9 69.8 321.2 91.5 332.5 109.2C362.2 155.5 431.2 154.7 460.3 104.9C466.7 104.8 472.9 103.5 478.9 102C489.8 129.9 496.0000000000001 160.2 496.0000000000001 192C496 329 385 440 248 440S0 329 0 192S111 -56 248 -56C283.4 -56 316.9 -48.5 347.4 -35.1C347.1 -34.4 323.5 49.5 323.5 49.5zM168 208C150.3 208 136 222.3 136 240S150.3 272 168 272S200 257.7 200 240S185.7 208 168 208zM288 52C288 32.8 259.3 10.5 216.5 8C208 7.2 204.4 19.8 212.9 23.4L229.9 30.6C242.9 36.1 250.7 44.1 250.7 52.1S242.9 68.1 229.9 73.6L212.9 80.8C206.9 83.3 207.2 93.1 212.9 95.6L229.9 102.8C242.9 108.3 250.7 116.3 250.7 124.3S242.9 140.3 229.9 145.8L212.9 153C204.1 156.6999999999999 208.3 169.6 216.5 168.3999999999999C259.3 165.8999999999999 288 143.5999999999999 288 124.3999999999999C288 111.3999999999999 274.6 97.0999999999999 252.8 88.3999999999999C274.6 79.3 288 65 288 52zM304 231C295.7 223.6 282.4 230.6 284.2 241.8C288.2 267 318.4 283.9 344.1 283.9S400 267 404 241.8C405.7 230.7 392.7 223.5 384.2 231L374.7 239.5C359.9 252.7 328.5 252.7 313.7 239.5L304 231z" />
    +    <glyph glyph-name="kiss"
    +      unicode="&#xF596;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM168 208C150.3 208 136 222.3 136 240S150.3 272 168 272S200 257.7 200 240S185.7 208 168 208zM304 52C304 32.8 275.3 10.5 232.5 8C224 7.2 220.4 19.8 228.9 23.4L245.9 30.6C258.9 36.1 266.7 44.1 266.7 52.1S258.9 68.1 245.9 73.6L228.9 80.8C222.9 83.3 222.8 92.9999999999999 228.9 95.6L245.9 102.8C258.9 108.3 266.7 116.3 266.7 124.3S258.9 140.3 245.9 145.8L228.9 153C220.3 156.6 224.1 169.5 232.5 168.3999999999999C275.3 165.8999999999999 304 143.5999999999999 304 124.3999999999999C304 111.3999999999999 290.6 97.0999999999999 268.8 88.3999999999999C290.6 79.3 304 65 304 52zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208z" />
    +    <glyph glyph-name="kiwi-bird"
    +      unicode="&#xF535;"
    +      horiz-adv-x="576" d=" M575.81 230.02C572.64 290.5900000000001 518.28 336 457.63 336H448.26C395.44 336 344.01 352.25 300.52 382.24C258.53 411.2 204.48 423.86 147.31 410.94C129.3 406.88 -0.08 369.76 0 224C0.04 153.05 38.68 91.2 95.99 57.99V-16C95.99 -24.84 103.15 -32 111.99 -32H127.99C136.83 -32 143.99 -24.84 143.99 -16V38.26C159.35 34.3 175.39 32 191.99 32C197.43 32 202.67 32.73 207.99 33.18V-16C207.99 -24.84 215.15 -32 223.99 -32H239.99C248.83 -32 255.99 -24.84 255.99 -16V43.43C270.23 48.49 283.87 54.82 296.3300000000001 62.94C342.07 92.75 393.86 112 448.46 112C473.94 112 464.47 112.31 471.51 112.78L545.92 -23.66C548.78 -28.89 554.2199999999999 -32 559.9699999999999 -32C561.2799999999999 -32 562.6099999999999 -31.84 563.92 -31.5C571.01 -29.7 575.9699999999999 -23.31 575.9699999999999 -16C575.9699999999999 -16 576.1099999999999 224.24 575.81 230.02zM463.97 200C450.72 200 439.9700000000001 210.75 439.9700000000001 224C439.9700000000001 237.26 450.72 248 463.97 248S487.97 237.26 487.97 224C487.97 210.75 477.22 200 463.97 200zM543.97 46.75L504.11 119.83C519.23 125.66 532.84 134.43 543.97 145.81V46.75z" />
    +    <glyph glyph-name="landmark"
    +      unicode="&#xF66F;"
    +      horiz-adv-x="512" d=" M501.62 355.89L267.24 445.96A31.958 31.958 0 0 1 244.77 445.96L10.38 355.89A16.001 16.001 0 0 1 0 340.91V304C0 295.16 7.16 288 16 288H496C504.84 288 512 295.16 512 304V340.91C512 347.58 507.86 353.55 501.62 355.89zM64 256V96H48C39.16 96 32 88.84 32 80V32H480V80C480 88.84 472.84 96 464 96H448V256H384V96H288V256H224V96H128V256H64zM496 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H496C504.84 -64 512 -56.84 512 -48V-16C512 -7.16 504.84 0 496 0z" />
    +    <glyph glyph-name="language"
    +      unicode="&#xF1AB;"
    +      horiz-adv-x="640" d=" M304 32H24C10.745 32 0 42.745 0 56V328C0 341.255 10.745 352 24 352H304V32zM183.324 104.622A12 12 0 0 1 194.839 96H217.702C225.922 96 231.709 104.078 229.064 111.861L171.61 280.915A12 12 0 0 1 160.248 289.054H127.759A12.001000000000001 12.001000000000001 0 0 1 116.397 280.915L58.942 111.861C56.297 104.078 62.084 96 70.304 96H93.109A12 12 0 0 1 104.644 104.693L113.762 136.5H173.973L183.324 104.622zM144.273 245.042S148.593 223.981 152.103 211.832L162.9030000000001 174.301H124.8330000000001L135.9030000000001 211.832C139.4130000000001 223.982 143.7330000000001 245.042 143.7330000000001 245.042H144.2730000000001zM616 32H336V352H616C629.255 352 640 341.255 640 328V56C640 42.745 629.255 32 616 32zM580 260H516V276C516 282.627 510.627 288 504 288H488C481.373 288 476 282.627 476 276V260H412C405.373 260 400 254.627 400 248V232C400 225.373 405.373 220 412 220H526.106C519.843 205.701 509.588 191.028 496.083 176.794C489.523 183.692 483.686 190.704 478.718 197.727C475.079 202.871 468.133 204.402 462.723 201.173L455.443 196.827L448.945 192.948C442.989 189.392 441.252 181.527 445.21 175.831C451.275 167.102 458.308 158.495 466.194 150.105C458.0719999999999 143.879 449.353 137.861 440.091 132.141C434.57 128.731 432.7099999999999 121.585 435.929 115.951L443.87 102.055C447.232 96.172 454.8049999999999 94.2289999999999 460.576 97.7789999999999C473.308 105.61 485.147 113.954 496.0189999999999 122.67C506.9359999999999 113.9089999999999 518.785 105.568 531.415 97.789C537.189 94.233 544.7679999999999 96.171 548.132 102.059L556.0759999999999 115.962C559.2889999999999 121.585 557.4459999999999 128.722 551.9409999999999 132.133A312.737 312.737 0 0 0 525.881 150.152C546.905 172.577 561.649 196.441 568.5939999999999 220.002H580C586.627 220.002 592 225.375 592 232.002V248.002C592 254.627 586.627 260 580 260z" />
    +    <glyph glyph-name="laptop-code"
    +      unicode="&#xF5FC;"
    +      horiz-adv-x="640" d=" M255.03 186.35C261.28 180.1 271.4100000000001 180.1 277.6600000000001 186.35L288.9700000000001 197.66C295.2200000000001 203.91 295.2200000000001 214.04 288.9700000000001 220.29L253.25 256L288.96 291.7200000000001C295.21 297.9700000000001 295.21 308.1 288.96 314.35L277.65 325.66C271.4 331.91 261.27 331.91 255.02 325.66L196.68 267.32C190.43 261.07 190.43 250.94 196.68 244.69L255.03 186.35zM351.04 197.65L362.35 186.34C368.6 180.09 378.73 180.09 384.98 186.34L443.3200000000001 244.6800000000001C449.5700000000001 250.9300000000001 449.5700000000001 261.0600000000001 443.3200000000001 267.3100000000001L384.98 325.6500000000001C378.73 331.9000000000001 368.6 331.9000000000001 362.35 325.6500000000001L351.04 314.3400000000001C344.79 308.0900000000001 344.79 297.9600000000001 351.04 291.7100000000001L386.75 256L351.04 220.28C344.79 214.03 344.79 203.9 351.04 197.65zM624 32H381.54C380.8 12.19 366.8300000000001 0 348.8 0H288C269.31 0 254.98 17.47 255.23 32H16C7.2 32 0 24.8 0 16V0C0 -35.2 28.8 -64 64 -64H576C611.2 -64 640 -35.2 640 0V16C640 24.8 632.8 32 624 32zM576 400C576 426.4 554.4 448 528 448H112C85.6 448 64 426.4 64 400V64H576V400zM512 128H128V384H512V128z" />
    +    <glyph glyph-name="laptop"
    +      unicode="&#xF109;"
    +      horiz-adv-x="640" d=" M624 32H381.54C380.8 12.19 366.8300000000001 0 348.8 0H288C269.31 0 254.98 17.47 255.23 32H16C7.2 32 0 24.8 0 16V0C0 -35.2 28.8 -64 64 -64H576C611.2 -64 640 -35.2 640 0V16C640 24.8 632.8 32 624 32zM576 400C576 426.4 554.4 448 528 448H112C85.6 448 64 426.4 64 400V64H576V400zM512 128H128V384H512V128z" />
    +    <glyph glyph-name="laugh-beam"
    +      unicode="&#xF59A;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM272 240.6C275.3 282.7 304.2 312 328 312S380.7 282.7 384 240.6C384.7 232 373.2 228.7 369.1 236.1L359.6 253.1C351.9000000000001 266.8 340.4000000000001 274.7 328.1 274.7S304.3 266.8 296.6 253.1L287.1 236.1C282.9000000000001 228.7 271.3 232 272 240.6zM112 240.6C115.3 282.7 144.2 312 168 312S220.7 282.7 224 240.6C224.7 232 213.2 228.7 209.1 236.1L199.6 253.1C191.9 266.8 180.4 274.7 168.1 274.7S144.3 266.8 136.6 253.1L127.1 236.1C122.8 228.7 111.3 232.1 112 240.6zM398.9 142C390 71 329.4 16 256 16H240C166.6 16 106 71 97.1 142C95.9 151.5 103.4 160 113 160H383C392.6 160 400.1 151.6 398.9 142z" />
    +    <glyph glyph-name="laugh-squint"
    +      unicode="&#xF59B;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM281.8 278.3L361.8 326.3C373.4000000000001 333.2000000000001 385.8 318.6 377.2 308.3L343.6 268L377.2000000000001 227.7C385.9000000000001 217.3 373.3000000000001 202.9 361.8000000000001 209.7L281.8000000000001 257.7C274.1000000000001 262.4 274.1000000000001 273.6 281.8000000000001 278.3zM118.8 308.3C110.2 318.6 122.6 333.2000000000001 134.2 326.3L214.2 278.3C222 273.6 222 262.4 214.2 257.7000000000001L134.2 209.7C122.7 202.9 110.2 217.3 118.8 227.7L152.4 268L118.8 308.3zM398.9 142C390 71 329.4 16 256 16H240C166.6 16 106 71 97.1 142C95.9 151.5 103.4 160 113 160H383C392.6 160 400.1 151.6 398.9 142z" />
    +    <glyph glyph-name="laugh-wink"
    +      unicode="&#xF59C;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM268.1 241.9C272.1 267.1 302.3 284 328 284S383.9 267.1 387.9 241.9C389.6 230.8 376.5 223.6 368.1 231.1L358.6 239.6C343.8 252.8 312.4 252.8 297.6 239.6L288 231C279.6 223.6 266.4 230.7 268.1 241.9zM168 288C185.7 288 200 273.7 200 256S185.7 224 168 224S136 238.3 136 256S150.3 288 168 288zM398.9 142C390 71 329.4 16 256 16H240C166.6 16 106 71 97.1 142C95.9 151.5 103.4 160 113 160H383C392.6 160 400.1 151.6 398.9 142z" />
    +    <glyph glyph-name="laugh"
    +      unicode="&#xF599;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 288C345.7 288 360 273.7 360 256S345.7 224 328 224S296 238.3 296 256S310.3 288 328 288zM168 288C185.7 288 200 273.7 200 256S185.7 224 168 224S136 238.3 136 256S150.3 288 168 288zM256 16H240C166.6 16 106 71 97.1 142C95.9 151.5 103.4 160 113 160H383C392.6 160 400.1 151.6 398.9 142C390 71 329.4 16 256 16z" />
    +    <glyph glyph-name="layer-group"
    +      unicode="&#xF5FD;"
    +      horiz-adv-x="512" d=" M12.41 299.98L245.35 194.31C252.15 191.22 259.84 191.22 266.64 194.31L499.58 299.98C516.13 307.49 516.13 332.5 499.58 340.01L266.65 445.69A25.606999999999996 25.606999999999996 0 0 1 245.36 445.69L12.41 340.02C-4.14 332.51 -4.14 307.49 12.41 299.98zM499.59 211.7L441.5 238.03L279.86 164.76C272.3 161.33 264.2700000000001 159.59 256 159.59S239.71 161.33 232.14 164.76L70.51 238.03L12.41 211.7C-4.14 204.2 -4.14 179.2 12.41 171.7L245.35 66.11C252.15 63.03 259.84 63.03 266.64 66.11L499.59 171.7C516.14 179.2 516.14 204.2 499.59 211.7zM499.59 83.9L441.7200000000001 110.13L279.86 36.76C272.3 33.33 264.2700000000001 31.59 256 31.59S239.71 33.33 232.14 36.76L70.29 110.13L12.41 83.9C-4.14 76.4 -4.14 51.4 12.41 43.9L245.35 -61.69C252.15 -64.7700000000001 259.84 -64.7700000000001 266.64 -61.69L499.59 43.9C516.14 51.4 516.14 76.4 499.59 83.9z" />
    +    <glyph glyph-name="leaf"
    +      unicode="&#xF06C;"
    +      horiz-adv-x="576" d=" M546.2 438.3C540.6 450.8 524.6 451.3 517.9000000000001 439.5C486.9 385.6 431.4 352 368 352H288C182 352 96 266 96 160C96 153 96.8 146.3 97.5 139.5C161.3 185.2 253.4 224 384 224C392.8 224 400 216.8 400 208S392.8 192 384 192C132.6 192 26 37.9 2.4 -20C-4.2 -36.3 3.6 -54.9 19.9 -61.6C36.3 -68.4 54.9 -60.5 61.7 -44.3C63.2 -40.7 82.6 3.6 133.6 46.3C166 2.4 227.6 -39.5000000000001 308.5 -30.9C465.5 -19.5 576 121.3 576 293.7C576 343.9 565.2 395.9 546.2 438.3z" />
    +    <glyph glyph-name="lemon"
    +      unicode="&#xF094;"
    +      horiz-adv-x="512" d=" M489.038 425.037C465.944 448.13 434.648 453.93 413.947 441.871C355.041 407.5590000000001 232.697 494.948 92.874 355.125S40.441 92.959 6.129 34.055C-5.93 13.353 -0.131 -17.944 22.962 -41.038C46.057 -64.133 77.354 -69.929 98.057 -57.87C156.958 -23.56 279.303 -110.9489999999999 419.125 28.873S471.56 291.04 505.871 349.944C517.93 370.646 512.132 401.943 489.038 425.0370000000001zM243.881 352.478C185.692 337.931 110.073 262.323 95.523 204.12C93.706 196.85 87.181 191.996 80.012 191.996C78.728 191.996 77.422 192.152 76.119 192.477C67.547 194.621 62.335 203.307 64.477 211.88C81.901 281.573 166.316 366.07 236.119 383.522C244.694 385.665 253.38 380.453 255.522 371.88S252.453 354.621 243.881 352.478z" />
    +    <glyph glyph-name="less-than-equal"
    +      unicode="&#xF537;"
    +      horiz-adv-x="448" d=" M54.98 233.8L356.3900000000001 113.93C374.7800000000001 107.9 395.1 116.47 401.7700000000001 133.08L413.86 163.16C420.54 179.77 411.04 198.13 392.6500000000001 204.16L217.21 272.21L392.7700000000001 340.3C411.0600000000001 346.3 420.5100000000001 364.57 413.8700000000001 381.09L401.8400000000001 411.01C395.2000000000001 427.54 374.9800000000001 436.07 356.6900000000001 430.07L54.98 310.11C41.21 305.5900000000001 32 293.5 32 279.93V263.9700000000001C32 250.41 41.21 238.32 54.98 233.8zM424 48H24C10.75 48 0 37.26 0 24V-24C0 -37.25 10.75 -48 24 -48H424C437.25 -48 448 -37.25 448 -24V24C448 37.26 437.25 48 424 48z" />
    +    <glyph glyph-name="less-than"
    +      unicode="&#xF536;"
    +      horiz-adv-x="384" d=" M365.46 90.26L147.04 192.11L365.51 293.99C381.53 301.4600000000001 388.46 320.5 380.99 336.52L367.4700000000001 365.52C360 381.54 340.96 388.4700000000001 324.94 381L18.48 238.09A32.014 32.014 0 0 1 0 209.09V174.85C0 162.41 7.21 151.1 18.48 145.85L324.79 3.02C340.85 -4.47 359.94 2.48 367.43 18.54L380.99 47.62C388.48 63.68 381.5300000000001 82.7699999999999 365.4600000000001 90.2599999999999z" />
    +    <glyph glyph-name="level-down-alt"
    +      unicode="&#xF3BE;"
    +      horiz-adv-x="320" d=" M313.553 55.669L209.587 -56.334C200.102 -66.548 183.911 -66.563 174.413 -56.334L70.438 55.669C56.232 70.969 67.062 96 88.025 96H152V368H68.024A11.996 11.996 0 0 0 59.539 371.515L3.539 427.515C-4.021 435.074 1.333 448 12.024 448H208C221.255 448 232 437.255 232 424V96H295.966C316.844 96 327.817 71.031 313.553 55.669z" />
    +    <glyph glyph-name="level-up-alt"
    +      unicode="&#xF3BF;"
    +      horiz-adv-x="320" d=" M313.553 328.331L209.587 440.334C200.102 450.548 183.911 450.563 174.413 440.334L70.438 328.331C56.232 313.031 67.062 288 88.025 288H152V16H68.024A11.996 11.996 0 0 1 59.539 12.485L3.539 -43.515C-4.021 -51.074 1.333 -64 12.024 -64H208C221.255 -64 232 -53.255 232 -40V288H295.966C316.844 288 327.817 312.969 313.553 328.331z" />
    +    <glyph glyph-name="life-ring"
    +      unicode="&#xF1CD;"
    +      horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM429.6960000000001 320.4410000000001L366.2970000000001 257.0420000000001C355.31 275.601 339.627 291.294 321.0420000000001 302.2970000000001L384.4410000000001 365.6960000000001A218.396 218.396 0 0 0 429.6960000000001 320.4410000000001zM256 96C202.981 96 160 138.981 160 192S202.981 288 256 288S352 245.019 352 192S309.019 96 256 96zM127.559 365.6960000000001L190.958 302.2970000000001C172.399 291.31 156.706 275.627 145.703 257.0420000000001L82.304 320.4410000000001A218.372 218.372 0 0 0 127.559 365.6960000000001zM82.304 63.559L145.703 126.958C156.69 108.399 172.373 92.706 190.958 81.703L127.559 18.304A218.396 218.396 0 0 0 82.304 63.559zM384.4410000000001 18.304L321.0420000000001 81.703C339.6010000000001 92.6900000000001 355.2940000000001 108.3730000000001 366.2970000000001 126.958L429.6960000000001 63.559A218.40299999999996 218.40299999999996 0 0 0 384.4410000000001 18.304z" />
    +    <glyph glyph-name="lightbulb"
    +      unicode="&#xF0EB;"
    +      horiz-adv-x="352" d=" M96.06 -6.35C96.07 -12.64 97.93 -18.8 101.42 -24.04L118.51 -49.73A31.989999999999995 31.989999999999995 0 0 1 145.15 -64.01H206.86A31.989999999999995 31.989999999999995 0 0 1 233.5 -49.73L250.59 -24.04A31.989000000000004 31.989000000000004 0 0 1 255.95 -6.35L255.99 32H96.01L96.06 -6.35zM0 272C0 227.63 16.45 187.15 43.56 156.22C60.08 137.37 85.92 97.99 95.77 64.77C95.81 64.5100000000001 95.84 64.2500000000001 95.88 63.9900000000001H256.12C256.1600000000001 64.2500000000001 256.19 64.5000000000001 256.23 64.77C266.0800000000001 97.99 291.92 137.37 308.44 156.22C335.55 187.15 352 227.63 352 272C352 369.39 272.9100000000001 448.3 175.45 448C73.44 447.69 0 365.03 0 272zM176 352C131.89 352 96 316.11 96 272C96 263.16 88.84 256 80 256S64 263.16 64 272C64 333.76 114.24 384 176 384C184.84 384 192 376.8400000000001 192 368S184.84 352 176 352z" />
    +    <glyph glyph-name="link"
    +      unicode="&#xF0C1;"
    +      horiz-adv-x="512" d=" M326.612 262.6090000000001C386.3590000000001 202.8 385.5390000000001 106.911 326.9720000000001 48.019C326.862 47.899 326.7320000000001 47.769 326.612 47.649L259.4120000000001 -19.551C200.142 -78.821 103.713 -78.813 44.452 -19.551C-14.818 39.709 -14.818 136.149 44.452 195.409L81.558 232.515C91.398 242.355 108.344 235.8150000000001 108.852 221.909C109.5 204.187 112.678 186.382 118.542 169.1880000000001C120.528 163.3660000000001 119.109 156.9260000000001 114.759 152.576L101.672 139.489C73.646 111.463 72.767 65.8290000000001 100.517 37.5290000000001C128.541 8.95 174.603 8.78 202.842 37.0190000000001L270.0420000000001 104.2090000000001C298.233 132.4 298.115 177.9660000000001 270.0420000000001 206.0390000000001C266.341 209.733 262.6130000000001 212.603 259.701 214.608A16.037 16.037 0 0 0 252.754 227.2140000000001C252.3580000000001 237.7810000000001 256.1020000000001 248.67 264.452 257.0200000000001L285.506 278.0750000000001C291.027 283.596 299.688 284.2740000000001 306.09 279.8060000000001A152.482 152.482 0 0 0 326.612 262.6090000000001zM467.547 403.551C408.286 462.813 311.8570000000001 462.821 252.587 403.551L185.387 336.351C185.267 336.231 185.137 336.101 185.027 335.981C126.461 277.089 125.64 181.2 185.387 121.391A152.454 152.454 0 0 1 205.908 104.1949999999999C212.31 99.7269999999999 220.972 100.406 226.492 105.9259999999999L247.546 126.981C255.896 135.331 259.6400000000001 146.2199999999999 259.2440000000001 156.7869999999999A16.037 16.037 0 0 1 252.2970000000001 169.3929999999999C249.385 171.3979999999999 245.6570000000001 174.2679999999999 241.956 177.9619999999999C213.883 206.035 213.765 251.601 241.956 279.7919999999999L309.156 346.9819999999999C337.395 375.2209999999999 383.456 375.051 411.481 346.4719999999999C439.231 318.1719999999999 438.353 272.5379999999999 410.326 244.5119999999999L397.2390000000001 231.425C392.889 227.075 391.4700000000001 220.6349999999999 393.456 214.8129999999999C399.32 197.619 402.498 179.8139999999999 403.146 162.0919999999999C403.6550000000001 148.1859999999999 420.6 141.6459999999999 430.44 151.4859999999999L467.546 188.5919999999999C526.817 247.851 526.817 344.291 467.547 403.551z" />
    +    <glyph glyph-name="lira-sign"
    +      unicode="&#xF195;"
    +      horiz-adv-x="384" d=" M371.9940000000001 192H323.975C317.64 192 312 187.088 312 180.754C312 80 230.179 32 144 32V191.219L278.603 221.131A12 12 0 0 1 288 232.845V273.8210000000001C288 281.498 280.891 287.201 273.397 285.535L144 256.781V287.2200000000001L278.603 317.132A12 12 0 0 1 288 328.846V369.8210000000001C288 377.498 280.891 383.201 273.397 381.535L144 352.781V404C144 410.627 138.627 416 132 416H76C69.373 416 64 410.627 64 404V335.003L9.397 322.8690000000001A12 12 0 0 1 0 311.155V270.179C0 262.502 7.109 256.799 14.603 258.4650000000001L64 269.442V239.003L9.397 226.869A12 12 0 0 1 0 215.155V174.179C0 166.502 7.109 160.799 14.603 162.465L64 173.442V-20C64 -26.627 69.373 -32 76 -32H155.583C289.674 -32 378.838 45.834 383.991 179.592C384.252 186.374 378.78 192 371.994 192z" />
    +    <glyph glyph-name="list-alt"
    +      unicode="&#xF022;"
    +      horiz-adv-x="512" d=" M464 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H464C490.51 416 512 394.51 512 368V16C512 -10.51 490.51 -32 464 -32zM128 328C105.909 328 88 310.091 88 288S105.909 248 128 248S168 265.909 168 288S150.091 328 128 328zM128 232C105.909 232 88 214.091 88 192S105.909 152 128 152S168 169.909 168 192S150.091 232 128 232zM128 136C105.909 136 88 118.091 88 96S105.909 56 128 56S168 73.909 168 96S150.091 136 128 136zM416 272V304C416 310.627 410.627 316 404 316H204C197.373 316 192 310.627 192 304V272C192 265.373 197.373 260 204 260H404C410.627 260 416 265.373 416 272zM416 176V208C416 214.627 410.627 220 404 220H204C197.373 220 192 214.627 192 208V176C192 169.373 197.373 164 204 164H404C410.627 164 416 169.373 416 176zM416 80V112C416 118.627 410.627 124 404 124H204C197.373 124 192 118.627 192 112V80C192 73.373 197.373 68 204 68H404C410.627 68 416 73.373 416 80z" />
    +    <glyph glyph-name="list-ol"
    +      unicode="&#xF0CB;"
    +      horiz-adv-x="512" d=" M3.263 308.473C3.263 315.9500000000001 7.18 320.045 14.836 320.045H29.967V359.9220000000001C29.967 365.085 30.501 370.425 30.501 370.425H30.145S28.366 367.755 27.297 366.687C22.846 362.414 16.793 362.236 11.631 367.755L6.113 373.986C0.771 379.327 1.129 385.202 6.647 390.365L28.367 410.303C32.815 414.398 36.732 416 42.785 416H54.89C62.546 416 66.639 412.084 66.639 404.428V320.044H82.127C89.782 320.044 93.699 315.95 93.699 308.472V299.5710000000001C93.699 292.094 89.782 287.999 82.127 287.999H14.836C7.18 287.999 3.263 292.094 3.263 299.5710000000001V308.473zM2.211 143.409C2.211 190.687 53.166 199.792 53.166 212.574C53.166 219.754 47.212 221.329 43.886 221.329C40.733 221.329 37.407 220.278 34.431 217.477C29.352 212.574 23.924 210.473 18.32 215.026L9.741 221.855C3.962 226.408 2.561 231.6600000000001 6.938 237.264C13.592 246.019 26.025 256 47.387 256C66.824 256 91.863 245.494 91.863 216.427C91.863 178.08 45.11 170.025 43.184 159.518H82.233C89.762 159.518 93.79 155.491 93.79 148.136V139.381C93.79 132.027 89.762 127.999 82.233 127.999H14.293C7.288 127.999 2.21 132.027 2.21 139.381V143.409zM5.654 -6.61L11.257 2.67C15.11 9.324 20.362 9.674 26.841 5.8219999999999C31.744 3.7209999999999 36.471 2.67 41.2 2.67C51.355 2.67 55.558 6.172 55.558 10.9C55.558 17.554 49.954 20.006 39.624 20.006H34.896C28.942 20.006 25.616 22.107 22.638 27.886L21.588 29.812C19.137 34.54 20.362 39.6179999999999 24.389 44.696L29.993 51.7C36.822 60.105 42.25 65.183 42.25 65.183V65.533S38.047 64.482 29.642 64.482H16.685C9.155 64.482 5.302 68.5100000000001 5.302 75.864V84.619C5.302 92.149 9.155 96.001 16.685 96.001H75.169C82.698 96.001 86.551 91.9740000000001 86.551 84.619V81.292C86.551 75.514 85.15 71.4860000000001 81.472 67.109L63.963 46.972C83.574 41.8940000000001 92.679 26.485 92.679 12.1270000000001C92.679 -9.2359999999999 78.321 -31.9989999999999 44.176 -31.9989999999999C27.54 -31.9989999999999 15.984 -27.2709999999999 8.28 -22.5439999999999C2.501 -18.3419999999999 1.976 -12.7389999999999 5.654 -6.6099999999999zM144 316H496C504.837 316 512 323.163 512 332V372C512 380.837 504.837 388 496 388H144C135.163 388 128 380.837 128 372V332C128 323.163 135.163 316 144 316zM144 156H496C504.837 156 512 163.163 512 172V212C512 220.837 504.837 228 496 228H144C135.163 228 128 220.837 128 212V172C128 163.163 135.163 156 144 156zM144 -4H496C504.837 -4 512 3.163 512 12V52C512 60.837 504.837 68 496 68H144C135.163 68 128 60.837 128 52V12C128 3.163 135.163 -4 144 -4z" />
    +    <glyph glyph-name="list-ul"
    +      unicode="&#xF0CA;"
    +      horiz-adv-x="512" d=" M96 352C96 325.49 74.51 304 48 304S0 325.49 0 352S21.49 400 48 400S96 378.51 96 352zM48 240C21.49 240 0 218.51 0 192S21.49 144 48 144S96 165.49 96 192S74.51 240 48 240zM48 80C21.49 80 0 58.51 0 32S21.49 -16 48 -16S96 5.49 96 32S74.51 80 48 80zM144 316H496C504.837 316 512 323.163 512 332V372C512 380.837 504.837 388 496 388H144C135.163 388 128 380.837 128 372V332C128 323.163 135.163 316 144 316zM144 156H496C504.837 156 512 163.163 512 172V212C512 220.837 504.837 228 496 228H144C135.163 228 128 220.837 128 212V172C128 163.163 135.163 156 144 156zM144 -4H496C504.837 -4 512 3.163 512 12V52C512 60.837 504.837 68 496 68H144C135.163 68 128 60.837 128 52V12C128 3.163 135.163 -4 144 -4z" />
    +    <glyph glyph-name="list"
    +      unicode="&#xF03A;"
    +      horiz-adv-x="512" d=" M128 332V372C128 380.837 135.163 388 144 388H496C504.837 388 512 380.837 512 372V332C512 323.163 504.837 316 496 316H144C135.163 316 128 323.163 128 332zM144 156H496C504.837 156 512 163.163 512 172V212C512 220.837 504.837 228 496 228H144C135.163 228 128 220.837 128 212V172C128 163.163 135.163 156 144 156zM144 -4H496C504.837 -4 512 3.163 512 12V52C512 60.837 504.837 68 496 68H144C135.163 68 128 60.837 128 52V12C128 3.163 135.163 -4 144 -4zM16 304H80C88.837 304 96 311.163 96 320V384C96 392.837 88.837 400 80 400H16C7.163 400 0 392.837 0 384V320C0 311.163 7.163 304 16 304zM16 144H80C88.837 144 96 151.163 96 160V224C96 232.837 88.837 240 80 240H16C7.163 240 0 232.837 0 224V160C0 151.163 7.163 144 16 144zM16 -16H80C88.837 -16 96 -8.837 96 0V64C96 72.837 88.837 80 80 80H16C7.163 80 0 72.837 0 64V0C0 -8.837 7.163 -16 16 -16z" />
    +    <glyph glyph-name="location-arrow"
    +      unicode="&#xF124;"
    +      horiz-adv-x="512" d=" M444.52 444.48L28.74 252.58C-19.23 230.19 -3.24 159.8300000000001 47.93 159.8300000000001H223.84V-16.0799999999999C223.84 -67.2499999999999 294.2 -83.2499999999999 316.5900000000001 -35.2699999999999L508.49 380.5100000000001C524.48 418.9000000000001 482.9 460.48 444.52 444.48z" />
    +    <glyph glyph-name="lock-open"
    +      unicode="&#xF3C1;"
    +      horiz-adv-x="576" d=" M423.5 448C339.5 447.7 272 378.5 272 294.5V224H48C21.5 224 0 202.5 0 176V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V176C448 202.5 426.5 224 400 224H352V295.1C352 334.7 383.7 367.6 423.3 368C463.3 368.4 496 335.9 496 296V216C496 202.7 506.7 192 520 192H552C565.3 192 576 202.7 576 216V296C576 380 507.5 448.3 423.5 448z" />
    +    <glyph glyph-name="lock"
    +      unicode="&#xF023;"
    +      horiz-adv-x="448" d=" M400 224H376V296C376 379.8 307.8 448 224 448S72 379.8 72 296V224H48C21.5 224 0 202.5 0 176V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V176C448 202.5 426.5 224 400 224zM296 224H152V296C152 335.7 184.3 368 224 368S296 335.7 296 296V224z" />
    +    <glyph glyph-name="long-arrow-alt-down"
    +      unicode="&#xF309;"
    +      horiz-adv-x="256" d=" M168 102.059V404C168 410.627 162.627 416 156 416H100C93.373 416 88 410.627 88 404V102.059H41.941C20.559 102.059 9.851 76.208 24.97 61.088L111.029 -24.971C120.402 -34.344 135.598 -34.344 144.97 -24.971L231.029 61.088C246.148 76.207 235.44 102.059 214.058 102.059H168z" />
    +    <glyph glyph-name="long-arrow-alt-left"
    +      unicode="&#xF30A;"
    +      horiz-adv-x="448" d=" M134.059 152H436C442.627 152 448 157.373 448 164V220C448 226.627 442.627 232 436 232H134.059V278.059C134.059 299.4410000000001 108.208 310.149 93.088 295.03L7.029 208.971C-2.344 199.598 -2.344 184.402 7.029 175.03L93.088 88.971C108.207 73.852 134.059 84.56 134.059 105.942V152z" />
    +    <glyph glyph-name="long-arrow-alt-right"
    +      unicode="&#xF30B;"
    +      horiz-adv-x="448" d=" M313.941 232H12C5.373 232 0 226.627 0 220V164C0 157.373 5.373 152 12 152H313.941V105.941C313.941 84.559 339.792 73.851 354.912 88.97L440.971 175.029C450.344 184.402 450.344 199.598 440.971 208.97L354.9120000000001 295.029C339.793 310.148 313.9410000000001 299.44 313.9410000000001 278.058V232z" />
    +    <glyph glyph-name="long-arrow-alt-up"
    +      unicode="&#xF30C;"
    +      horiz-adv-x="256" d=" M88 281.9410000000001V-20C88 -26.627 93.373 -32 100 -32H156C162.627 -32 168 -26.627 168 -20V281.9410000000001H214.059C235.441 281.9410000000001 246.149 307.7920000000001 231.03 322.9120000000001L144.971 408.971C135.598 418.344 120.402 418.344 111.03 408.971L24.971 322.9120000000001C9.852 307.793 20.56 281.9410000000001 41.942 281.9410000000001H88z" />
    +    <glyph glyph-name="low-vision"
    +      unicode="&#xF2A8;"
    +      horiz-adv-x="576" d=" M569.344 216.369C512.96 312.051 407.81 376 288 376C259.532 376 231.898 372.381 205.549 365.591L152.778 437.76C145.177 448.618 130.214 451.26 119.355 443.6600000000001L106.241 434.482C95.381 426.881 92.739 411.916 100.341 401.056L143.472 342.661C89.449 316.27 40.228 273.317 6.682 216.419C6.672 216.402 6.659 216.386 6.648 216.369C-2.117 201.494 -2.316 182.841 6.648 167.63C45.148 102.298 106.39 51.768 179.507 26.281L55.316 203.698A272.194 272.194 0 0 0 83.61 239.61L203.01 69.03H203.02L243.65 10.99A330.055 330.055 0 0 1 322.59 9.8199999999999L132.61 281.2199999999999A277.628 277.628 0 0 0 171.387 302.7829999999999L423.223 -53.7610000000001C430.824 -64.619 445.7870000000001 -67.2600000000001 456.646 -59.6610000000001L469.76 -50.4830000000001C480.62 -42.8820000000001 483.262 -27.9160000000001 475.66 -17.0570000000001L432.54 41.3199999999999L432.533 41.329C489.694 69.307 537.3679999999999 113.369 569.343 167.63A47.937999999999995 47.937999999999995 0 0 1 569.3439999999999 216.369zM390.026 102.06L370.9600000000001 129.29C395.6420000000001 161.857 398.6710000000001 205.643 379.7600000000001 240.9700000000001V240.9400000000001C379.7600000000001 217.29 360.5900000000001 198.12 336.9400000000001 198.12C313.1120000000001 198.12 294.1200000000001 217.469 294.1200000000001 240.9400000000001C294.1200000000001 264.5900000000001 313.2900000000001 283.76 336.9400000000001 283.76H336.9700000000001C312.2200000000001 297.009 283.4480000000001 299.403 257.4600000000001 291.4400000000001L238.392 318.677C253.758 324.694 270.488 328 288 328C363.1620000000001 328 424 267.174 424 192C424 157.496 411.167 126.025 390.026 102.06z" />
    +    <glyph glyph-name="luggage-cart"
    +      unicode="&#xF59D;"
    +      horiz-adv-x="640" d=" M224 128H256V352H224C206.33 352 192 337.67 192 320V160C192 142.33 206.33 128 224 128zM576 160V320C576 337.67 561.67 352 544 352H512V128H544C561.67 128 576 142.33 576 160zM624 64H128V432C128 440.84 120.84 448 112 448H16C7.16 448 0 440.84 0 432V400C0 391.16 7.16 384 16 384H64V16C64 7.16 71.16 0 80 0H162.94C161.15 -5.03 160 -10.36 160 -16C160 -42.51 181.49 -64 208 -64S256 -42.51 256 -16C256 -10.36 254.85 -5.03 253.06 0H450.94C449.15 -5.03 448 -10.36 448 -16C448 -42.51 469.49 -64 496 -64S544 -42.51 544 -16C544 -10.36 542.85 -5.03 541.06 0H624C632.84 0 640 7.16 640 16V48C640 56.84 632.84 64 624 64zM480 352V400C480 426.51 458.51 448 432 448H336C309.49 448 288 426.51 288 400V128H480V352zM432 352H336V400H432V352z" />
    +    <glyph glyph-name="magic"
    +      unicode="&#xF0D0;"
    +      horiz-adv-x="512" d=" M224 352L240 384L272 400L240 416L224 448L208 416L176 400L208 384L224 352zM80 288L106.66 341.33L160 368L106.66 394.67L80 448L53.34 394.67L0 368L53.34 341.33L80 288zM432 160L405.34 106.67L352 80L405.3400000000001 53.33L432 0L458.66 53.33L512 80L458.66 106.67L432 160zM502.62 353.77L417.77 438.62C411.53 444.88 403.34 448 395.15 448C386.96 448 378.77 444.88 372.52 438.62L9.38 75.48C-3.12 62.98 -3.12 42.72 9.38 30.23L94.23 -54.62C100.48 -60.87 108.67 -63.99 116.85 -63.99C125.04 -63.99 133.23 -60.87 139.48 -54.62L502.62 308.53C515.12 321.01 515.12 341.28 502.62 353.77zM359.45 244.54L308.54 295.45L395.14 382.05L446.05 331.14L359.45 244.54z" />
    +    <glyph glyph-name="magnet"
    +      unicode="&#xF076;"
    +      horiz-adv-x="512.1" d=" M164.1 288H12C5.4 288 0 293.4 0 300V380C0 399.9 16.1 416 36 416H140C159.9 416 176 399.9 176 380V300C176.1 293.4 170.7 288 164.1 288zM512.1 300V380.1C512.1 400 496 416.1 476.1 416.1H372.1C352.2000000000001 416.1 336.1 400 336.1 380.1V300.1C336.1 293.5 341.5 288.1 348.1 288.1H500.1C506.7 288 512.1 293.4 512.1 300zM348.1 256C341.5 256 336.1 250.6 336.1 244V192C336.1 63.9 176.1 64.1 176.1 192V244C176.1 250.6 170.7 256 164.1 256H12.1C5.4 256 0.1 250.6 0.1 243.9C0.2 222.5 0.7 203.6 0.1 190.6C0.1 40 136.3 -56 256.9 -56C377.5 -56 512 40 512 190.7C511.4 203.5 511.8 223.7 512 243.9C512 250.6 506.7 256 500 256H348.1z" />
    +    <glyph glyph-name="mail-bulk"
    +      unicode="&#xF674;"
    +      horiz-adv-x="576" d=" M160 0C134.4 0 108.8 22.4 96 32C32 76.8 12.8 92.8 0 102.4V-32C0 -49.67 14.33 -64 32 -64H288C305.67 -64 320 -49.67 320 -32V102.4C307.2 92.8 288 76.8 224 32C211.2 22.4 185.6 0 160 0zM288 192H32C14.33 192 0 177.67 0 160V144C25.6 124.8 22.4 124.8 115.2 57.6C124.8 51.2 144 32 160 32S195.2 51.2 204.8 54.4C297.6 121.6 294.4 121.6 320 140.8V160C320 177.67 305.67 192 288 192zM544 288H224C206.33 288 192 273.67 192 256V224H288C321.21 224 348.5900000000001 198.58 351.71 166.18L352 166.4V32H544C561.67 32 576 46.33 576 64V256C576 273.67 561.67 288 544 288zM512 160H448V224H512V160zM160 256C160 291.29 188.71 320 224 320H448V416C448 433.67 433.67 448 416 448H96C78.33 448 64 433.67 64 416V224H160V256z" />
    +    <glyph glyph-name="male"
    +      unicode="&#xF183;"
    +      horiz-adv-x="192" d=" M96 448C131.346 448 160 419.346 160 384S131.346 320 96 320S32 348.654 32 384S60.654 448 96 448M144 304H132.64C109.929 293.557 83.05 293.106 59.36 304H48C21.49 304 0 282.51 0 256V120C0 106.745 10.745 96 24 96H40V-40C40 -53.255 50.745 -64 64 -64H128C141.255 -64 152 -53.255 152 -40V96H168C181.255 96 192 106.745 192 120V256C192 282.51 170.51 304 144 304z" />
    +    <glyph glyph-name="map-marked-alt"
    +      unicode="&#xF5A0;"
    +      horiz-adv-x="576" d=" M288 448C218.41 448 162 391.5900000000001 162 322C162 265.74 244.35 163.2 275.9 125.98C282.29 118.44 293.72 118.44 300.1 125.98C331.65 163.2 414 265.74 414 322C414 391.5900000000001 357.59 448 288 448zM288 280C264.8 280 246 298.8 246 322S264.8 364 288 364S330 345.2 330 322S311.2 280 288 280zM20.12 232.05A32.006 32.006 0 0 1 0 202.34V-47.98C0 -59.3 11.43 -67.04 21.94 -62.84L160 0V233.08C151.16 249.06 143.93 264.62 138.75 279.5L20.12 232.05zM288 88.33C273.93 88.33 260.62 94.51 251.49 105.29C231.83 128.49 210.92 154.91 192 182.01V0.01L384 -63.99V182C365.08 154.91 344.18 128.48 324.51 105.28C315.38 94.51 302.07 88.33 288 88.33zM554.06 286.84L416 224V-64L555.88 -8.05A31.996 31.996 0 0 1 576 21.66V271.98C576 283.3 564.57 291.04 554.06 286.84z" />
    +    <glyph glyph-name="map-marked"
    +      unicode="&#xF59F;"
    +      horiz-adv-x="576" d=" M288 448C218.41 448 162 391.5900000000001 162 322C162 265.74 244.35 163.2 275.9 125.98C282.29 118.44 293.72 118.44 300.1 125.98C331.65 163.2 414 265.74 414 322C414 391.5900000000001 357.59 448 288 448zM20.12 232.05A32.006 32.006 0 0 1 0 202.34V-47.98C0 -59.3 11.43 -67.04 21.94 -62.84L160 0V233.08C151.16 249.06 143.93 264.62 138.75 279.5L20.12 232.05zM288 88.33C273.93 88.33 260.62 94.51 251.49 105.29C231.83 128.49 210.92 154.91 192 182.01V0.01L384 -63.99V182C365.08 154.91 344.18 128.48 324.51 105.28C315.38 94.51 302.07 88.33 288 88.33zM554.06 286.84L416 224V-64L555.88 -8.05A31.996 31.996 0 0 1 576 21.66V271.98C576 283.3 564.57 291.04 554.06 286.84z" />
    +    <glyph glyph-name="map-marker-alt"
    +      unicode="&#xF3C5;"
    +      horiz-adv-x="384" d=" M172.268 -53.67C26.97 156.969 0 178.587 0 256C0 362.039 85.961 448 192 448S384 362.039 384 256C384 178.587 357.03 156.969 211.732 -53.67C202.197 -67.444 181.802 -67.443 172.268 -53.67zM192 176C236.183 176 272 211.817 272 256S236.183 336 192 336S112 300.183 112 256S147.817 176 192 176z" />
    +    <glyph glyph-name="map-marker"
    +      unicode="&#xF041;"
    +      horiz-adv-x="384" d=" M172.268 -53.67C26.97 156.969 0 178.587 0 256C0 362.039 85.961 448 192 448S384 362.039 384 256C384 178.587 357.03 156.969 211.732 -53.67C202.197 -67.444 181.802 -67.443 172.268 -53.67z" />
    +    <glyph glyph-name="map-pin"
    +      unicode="&#xF276;"
    +      horiz-adv-x="288" d=" M112 131.06V-25.63L134.02 -58.65C138.77 -65.77 149.24 -65.77 153.99 -58.65L176 -25.63V131.06C165.61 129.14 154.94 128 144 128S122.39 129.14 112 131.06zM144 448C64.47 448 0 383.53 0 304S64.47 160 144 160S288 224.47 288 304S223.53 448 144 448zM144 372C106.5 372 76 341.5 76 304C76 297.38 70.62 292 64 292S52 297.38 52 304C52 354.73 93.28 396 144 396C150.62 396 156 390.62 156 384S150.62 372 144 372z" />
    +    <glyph glyph-name="map-signs"
    +      unicode="&#xF277;"
    +      horiz-adv-x="512" d=" M507.31 363.31L464 406.63C458 412.63 449.86 416 441.37 416H288V432C288 440.84 280.84 448 272 448H240C231.16 448 224 440.84 224 432V416H56C42.75 416 32 405.25 32 392V312C32 298.75 42.75 288 56 288H441.37C449.86 288 457.99 291.37 464 297.37L507.31 340.68C513.56 346.94 513.56 357.06 507.31 363.31zM224 -48C224 -56.84 231.16 -64 240 -64H272C280.84 -64 288 -56.84 288 -48V64H224V-48zM456 224H288V256H224V224H70.63C62.14 224 54.01 220.63 48 214.63L4.69 171.31C-1.56 165.06 -1.56 154.93 4.69 148.68L48 105.37C54 99.37 62.14 96 70.63 96H456C469.25 96 480 106.75 480 120V200C480 213.25 469.25 224 456 224z" />
    +    <glyph glyph-name="map"
    +      unicode="&#xF279;"
    +      horiz-adv-x="576" d=" M0 330.3400000000001V-15.98C0 -27.3 11.43 -35.04 21.94 -30.84L160 32V416L20.12 360.05A32.006 32.006 0 0 1 0 330.3400000000001zM192 32L384 -32V352L192 416V32zM554.06 414.8400000000001L416 352V-32L555.88 23.95A31.996 31.996 0 0 1 576 53.66V399.98C576 411.3 564.57 419.04 554.06 414.84z" />
    +    <glyph glyph-name="marker"
    +      unicode="&#xF5A1;"
    +      horiz-adv-x="512" d=" M93.95 157.97A327.038 327.038 0 0 1 0.17 -37.11L0.14 -37.34C-1.56 -52.62 11.35 -65.5400000000001 26.63 -63.85A327.02000000000004 327.02000000000004 0 0 1 221.97 29.95L297.37 105.35L169.35 233.3700000000001L93.95 157.97zM485.49 421.49C450.14 456.84 392.82 456.84 357.4700000000001 421.49L335.7100000000001 399.73L299.1500000000001 436.28C283.5300000000001 451.9 258.2000000000001 451.9 242.5900000000001 436.28L138.47 332.16C132.22 325.91 132.22 315.78 138.47 309.53L161.09 286.91C167.34 280.66 177.47 280.66 183.72 286.91L270.87 374.06L290.46 354.4700000000001L191.98 256L320 127.98L485.49 293.4700000000001C520.84 328.8200000000001 520.84 386.13 485.49 421.49z" />
    +    <glyph glyph-name="mars-double"
    +      unicode="&#xF227;"
    +      horiz-adv-x="512" d=" M340 448H261C250.3 448 245 435.1 252.5 427.5L269.4 410.6L220.7 361.9C198.5 375.9 172.2 384 144 384C64.5 384 0 319.5 0 240S64.5 96 144 96S288 160.5 288 240C288 268.2 279.9 294.5 265.9 316.7L314.6 365.4L331.5 348.5C333.8999999999999 346.1 337 345 339.8999999999999 345C346.0999999999999 345 352 349.8 352 357V436C352 442.6 346.6 448 340 448zM144 160C99.9 160 64 195.9 64 240S99.9 320 144 320S224 284.1 224 240S188.1 160 144 160zM500 288.1H421C410.3 288.1 405 275.2 412.5 267.6L429.4 250.7L380.7 202C362.5 213.4 341.7 220.9 319.2 223.3C317.1 201.5 311 180 300.8 160C301.9000000000001 160 303 160.1 304 160.1C348.1 160.1 384 124.2000000000001 384 80.1S348.1 0.1 304 0.1S224 36 224 80.1C224 81.2000000000001 224 82.3 224.1 83.3C204.1 73.1 182.6 66.9 160.8 64.9C168.4 -7.6 229.6 -64 304 -64C383.5 -64 448 0.5 448 80C448 108.2 439.9 134.5 425.9 156.7L474.6 205.4L491.4999999999999 188.5C493.8999999999999 186.1 496.8999999999999 185 499.8999999999999 185C506.0999999999999 185 511.9999999999999 189.8 511.9999999999999 197V276C511.9999999999999 282.7 506.6 288.1 499.9999999999999 288.1z" />
    +    <glyph glyph-name="mars-stroke-h"
    +      unicode="&#xF22B;"
    +      horiz-adv-x="480" d=" M476.2 200.5L420.3 256.4C412.7 264 399.8 258.6 399.8 247.9V224H376V244C376 250.6 370.6 256 364 256H324C317.4 256 312 250.6 312 244V224H284.4C278.6 249.6 265.7 273.9 245.8 293.8C189.6 350 98.4 350 42.2 293.8C-14 237.6 -14 146.4 42.2 90.2000000000001C98.4 34.0000000000001 189.6 34.0000000000001 245.8 90.2000000000001C265.7 110.1 278.6 134.4 284.4000000000001 160.0000000000001H312V140.0000000000001C312 133.4 317.4 128.0000000000001 324 128.0000000000001H364C370.6 128.0000000000001 376 133.4 376 140.0000000000001V160.0000000000001H399.9V136.1000000000001C399.9 125.4000000000001 412.8 120.1000000000001 420.4 127.6000000000001L476.3 183.5000000000001C480.9 188.2000000000001 480.9 195.8000000000001 476.1999999999999 200.5000000000001zM200.6 135.4C169.4 104.2 118.7 104.2 87.5 135.4C56.3 166.6 56.3 217.3 87.5 248.5C118.7 279.7 169.4 279.7 200.6 248.5C231.8 217.4 231.8 166.6 200.6 135.4z" />
    +    <glyph glyph-name="mars-stroke-v"
    +      unicode="&#xF22A;"
    +      horiz-adv-x="288" d=" M245.8 213.8C225.9 233.7 201.6 246.6 176 252.4V277.8H196C202.6 277.8 208 283.2000000000001 208 289.8V329.8C208 336.4 202.6 341.8 196 341.8H176V366.6H199.9C210.6 366.6 215.9 379.5 208.4 387.1L152.5 442.9C147.8 447.6 140.2 447.6 135.5 442.9L79.6 387C72 379.4 77.4 366.5 88.1 366.5H112V341.8H92C85.4 341.8 80 336.4 80 329.8V289.8C80 283.2000000000001 85.4 277.8 92 277.8H112V252.4C86.4 246.6 62.1 233.7 42.2 213.8C-14 157.6 -14 66.4 42.2 10.2C98.4 -45.9999999999999 189.6 -45.9999999999999 245.8 10.2C302.1 66.4 302.1 157.6 245.8 213.8000000000001zM200.6 55.4C169.4 24.2 118.7 24.2 87.5 55.4C56.3 86.6 56.3 137.3 87.5 168.5C118.7 199.7 169.4 199.7 200.6 168.5C231.8 137.4 231.8 86.6 200.6 55.4z" />
    +    <glyph glyph-name="mars-stroke"
    +      unicode="&#xF229;"
    +      horiz-adv-x="384" d=" M372 384H293C282.3 384 277 371.1 284.5 363.5L301.4 346.6L283.9 329.1L269.8 343.2C265.1 347.9 257.5 347.9 252.8 343.2L224.5 315C219.8 310.3 219.8 302.7 224.5 298L238.6 283.9L220.6 265.9C198.4 279.9 172.1 288 143.9 288C64.5 288 0 223.5 0 144S64.5 0 144 0S288 64.5 288 144C288 172.2 279.9 198.5 265.9 220.7L283.9 238.7L298 224.6C302.7 219.9 310.3 219.9 315 224.6L343.3 252.9C348 257.6 348 265.2000000000001 343.3 269.9L329.2 284L346.7 301.5L363.6 284.6C371.2 277 384.1 282.4 384.1 293.1V372C384 378.6 378.6 384 372 384zM144 64C99.9 64 64 99.9 64 144S99.9 224 144 224S224 188.1 224 144S188.1 64 144 64z" />
    +    <glyph glyph-name="mars"
    +      unicode="&#xF222;"
    +      horiz-adv-x="384" d=" M372 384H293C282.3 384 277 371.1 284.5 363.5L301.4 346.6L220.7 265.9C198.5 279.9 172.2 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0S288 64.5 288 144C288 172.2 279.9 198.5 265.9 220.7L346.6 301.4L363.5 284.5C371.1 276.9 384 282.3 384 293V372C384 378.6 378.6 384 372 384zM144 64C99.9 64 64 99.9 64 144S99.9 224 144 224S224 188.1 224 144S188.1 64 144 64z" />
    +    <glyph glyph-name="mask"
    +      unicode="&#xF6FA;"
    +      horiz-adv-x="640" d=" M320.67 384C-121.93 384 -36.9 0 162.21 0C202.11 0 239.68 20.69 263.63 55.86L289.36 93.65C305.0200000000001 116.6400000000001 336.3300000000001 116.6400000000001 351.99 93.65L377.7200000000001 55.86C401.6600000000001 20.69 439.23 0 479.13 0C668.99 0 769.76 384 320.67 384zM184 139.64C142.94 139.64 116.24 165.3 103.92 180.69C98.69 187.22 98.69 196.78 103.92 203.32C116.24 218.72 142.93 244.37 184 244.37S251.76 218.71 264.08 203.32C269.31 196.79 269.31 187.23 264.08 180.69C251.76 165.29 225.06 139.64 184 139.64zM456 139.64C414.94 139.64 388.24 165.3 375.92 180.69C370.69 187.22 370.69 196.78 375.92 203.32C388.24 218.72 414.93 244.37 456 244.37S523.76 218.71 536.08 203.32C541.3100000000001 196.79 541.3100000000001 187.23 536.08 180.69C523.76 165.29 497.0600000000001 139.64 456.0000000000001 139.64z" />
    +    <glyph glyph-name="medal"
    +      unicode="&#xF5A2;"
    +      horiz-adv-x="512" d=" M223.75 317.25L154.62 432.46A31.997 31.997 0 0 1 127.18 448H16.03C3.08 448 -4.5 433.43 2.92 422.82L114.19 263.86C143.91 291.63 181.71 310.69 223.75 317.25zM495.97 448H384.82C373.58 448 363.16 442.1 357.38 432.46L288.25 317.25C330.29 310.69 368.0900000000001 291.63 397.81 263.87L509.08 422.82C516.5 433.43 508.92 448 495.97 448zM256 288C158.8 288 80 209.2 80 112S158.8 -64 256 -64S432 14.8 432 112S353.2 288 256 288zM348.52 130.74L310.59 93.78L319.56 41.5600000000001C321.1600000000001 32.2 311.3 25.0500000000001 302.9100000000001 29.4700000000001L256 54.12L209.1 29.47C200.7 25.02 190.85 32.21 192.45 41.56L201.42 93.78L163.49 130.74C156.67 137.38 160.44 148.97 169.84 150.3299999999999L222.27 157.9699999999999L245.7 205.4899999999999C247.81 209.7699999999999 251.89 211.8799999999999 255.98 211.8799999999999C260.09 211.8799999999999 264.2 209.7399999999999 266.31 205.4899999999999L289.74 157.9699999999999L342.17 150.3299999999999C351.57 148.9699999999999 355.3400000000001 137.38 348.5200000000001 130.74z" />
    +    <glyph glyph-name="medkit"
    +      unicode="&#xF0FA;"
    +      horiz-adv-x="512" d=" M96 -32H416V320H384V368C384 394.51 362.51 416 336 416H176C149.49 416 128 394.51 128 368V320H96V-32zM192 352H320V320H192V352zM512 272V16C512 -10.51 490.51 -32 464 -32H448V320H464C490.51 320 512 298.51 512 272zM64 -32H48C21.49 -32 0 -10.51 0 16V272C0 298.51 21.49 320 48 320H64V-32zM352 176V144C352 135.163 344.837 128 336 128H288V80C288 71.163 280.837 64 272 64H240C231.163 64 224 71.163 224 80V128H176C167.163 128 160 135.163 160 144V176C160 184.837 167.163 192 176 192H224V240C224 248.837 231.163 256 240 256H272C280.837 256 288 248.837 288 240V192H336C344.837 192 352 184.837 352 176z" />
    +    <glyph glyph-name="meh-blank"
    +      unicode="&#xF5A4;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM168 208C150.3 208 136 222.3 136 240S150.3 272 168 272S200 257.7 200 240S185.7 208 168 208zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208z" />
    +    <glyph glyph-name="meh-rolling-eyes"
    +      unicode="&#xF5A5;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM88 224C88 248.3 101.7 269.2 121.6 280C120.9 277.4 120 274.8 120 272C120 254.3 134.3 240 152 240S184 254.3 184 272C184 274.8 183.1 277.4 182.4 280C202.3 269.2 216 248.3 216 224C216 188.7 187.3 160 152 160S88 188.7 88 224zM312 48H184C162.8 48 162.8 80 184 80H312C333.2 80 333.2 48 312 48zM344 160C308.7 160 280 188.7 280 224C280 248.3 293.7 269.2 313.6 280C312.9000000000001 277.4 312 274.8 312 272C312 254.3 326.3 240 344 240S376 254.3 376 272C376 274.8 375.1 277.4 374.4 280C394.3 269.2 408 248.3 408 224C408 188.7 379.3 160 344 160z" />
    +    <glyph glyph-name="meh"
    +      unicode="&#xF11A;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM168 272C185.7 272 200 257.7 200 240S185.7 208 168 208S136 222.3 136 240S150.3 272 168 272zM344 80H152C130.8 80 130.8 112 152 112H344C365.2 112 365.2 80 344 80zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208z" />
    +    <glyph glyph-name="memory"
    +      unicode="&#xF538;"
    +      horiz-adv-x="640" d=" M640 317.06V352C640 369.67 625.67 384 608 384H32C14.33 384 0 369.67 0 352V317.06C18.6 310.45 32 292.87 32 272S18.6 233.55 0 226.94V128H640V226.94C621.4 233.55 608 251.13 608 272S621.4 310.45 640 317.06zM224 192H160V320H224V192zM352 192H288V320H352V192zM480 192H416V320H480V192zM0 0H64V26.67C64 35.51 71.16 42.67 80 42.67S96 35.51 96 26.67V0H224V26.67C224 35.51 231.16 42.67 240 42.67S256 35.51 256 26.67V0H384V26.67C384 35.51 391.1600000000001 42.67 400 42.67S416 35.51 416 26.67V0H544V26.67C544 35.51 551.16 42.67 560 42.67S576 35.51 576 26.67V0H640V96H0V0z" />
    +    <glyph glyph-name="menorah"
    +      unicode="&#xF676;"
    +      horiz-adv-x="640" d=" M144 320H112C103.16 320 96 312.8400000000001 96 304V160H160V304C160 312.8400000000001 152.84 320 144 320zM240 320H208C199.16 320 192 312.8400000000001 192 304V160H256V304C256 312.8400000000001 248.84 320 240 320zM432 320H400C391.1600000000001 320 384 312.8400000000001 384 304V160H448V304C448 312.8400000000001 440.84 320 432 320zM528 320H496C487.16 320 480 312.8400000000001 480 304V160H544V304C544 312.8400000000001 536.84 320 528 320zM608 352C625.67 352 640 366.33 640 384S608 448 608 448S576 401.67 576 384S590.33 352 608 352zM512 352C529.67 352 544 366.33 544 384S512 448 512 448S480 401.67 480 384S494.33 352 512 352zM416 352C433.67 352 448 366.33 448 384S416 448 416 448S384 401.67 384 384S398.33 352 416 352zM320 352C337.67 352 352 366.33 352 384S320 448 320 448S288 401.67 288 384S302.33 352 320 352zM224 352C241.67 352 256 366.33 256 384S224 448 224 448S192 401.67 192 384S206.33 352 224 352zM128 352C145.67 352 160 366.33 160 384S128 448 128 448S96 401.67 96 384S110.33 352 128 352zM32 352C49.67 352 64 366.33 64 384S32 448 32 448S0 401.67 0 384S14.33 352 32 352zM576 160C576 142.33 561.67 128 544 128H352V304C352 312.8400000000001 344.84 320 336 320H304C295.1600000000001 320 288 312.8400000000001 288 304V128H96C78.33 128 64 142.33 64 160V304C64 312.8400000000001 56.84 320 48 320H16C7.16 320 0 312.8400000000001 0 304V160C0 106.98 42.98 64 96 64H288V0H112C103.16 0 96 -7.16 96 -16V-48C96 -56.84 103.16 -64 112 -64H528C536.84 -64 544 -56.84 544 -48V-16C544 -7.16 536.84 0 528 0H352V64H544C597.02 64 640 106.98 640 160V304C640 312.8400000000001 632.84 320 624 320H592C583.16 320 576 312.8400000000001 576 304V160z" />
    +    <glyph glyph-name="mercury"
    +      unicode="&#xF223;"
    +      horiz-adv-x="288" d=" M288 240C288 284.2 268.1 323.7 236.8 350.1C239.3 351.9 241.7 353.9 244 355.9C268.7 377.1 283.8 404.7 287.2 434.7C288.1 441.8 282.5 448 275.3 448H234.8C229 448 224.1 443.9 223 438.2C220.6 425.7 213.4 413.9 202.3 404.4C187 391.2 166.3 384 144 384S101 391.2 85.6 404.4C74.5 413.9 67.4 425.7 64.9 438.2C63.8 443.9 58.9 448 53.2 448H12.7C5.5 448 -0.1 441.8 0.8 434.7C4.2 404.6 19.2 377 44 355.8C46.3 353.8 48.7 351.9 51.2 350C19.9 323.7 0 284.2 0 240C0 171.5 47.9 114.1 112 99.6V48H76C69.4 48 64 42.6 64 36V-4C64 -10.6 69.4 -16 76 -16H112V-52C112 -58.6 117.4 -64 124 -64H164C170.6 -64 176 -58.6 176 -52V-16H212C218.6 -16 224 -10.6 224 -4V36C224 42.6 218.6 48 212 48H176V99.6C240.1 114.1 288 171.5 288 240.0000000000001zM64 240C64 284.1 99.9 320 144 320S224 284.1 224 240S188.1 160 144 160S64 195.9 64 240z" />
    +    <glyph glyph-name="microchip"
    +      unicode="&#xF2DB;"
    +      horiz-adv-x="512" d=" M416 400V-16C416 -42.51 394.51 -64 368 -64H144C117.49 -64 96 -42.51 96 -16V400C96 426.51 117.49 448 144 448H368C394.51 448 416 426.51 416 400zM512 342V330A6 6 0 0 0 506 324H488V318A6 6 0 0 0 482 312H440V360H482A6 6 0 0 0 488 354V348H506A6 6 0 0 0 512 342zM512 246V234A6 6 0 0 0 506 228H488V222A6 6 0 0 0 482 216H440V264H482A6 6 0 0 0 488 258V252H506A6 6 0 0 0 512 246zM512 150V138A6 6 0 0 0 506 132H488V126A6 6 0 0 0 482 120H440V168H482A6 6 0 0 0 488 162V156H506A6 6 0 0 0 512 150zM512 54V42A6 6 0 0 0 506 36H488V30A6 6 0 0 0 482 24H440V72H482A6 6 0 0 0 488 66V60H506A6 6 0 0 0 512 54zM30 72H72V24H30A6 6 0 0 0 24 30V36H6A6 6 0 0 0 0 42V54A6 6 0 0 0 6 60H24V66A6 6 0 0 0 30 72zM30 168H72V120H30A6 6 0 0 0 24 126V132H6A6 6 0 0 0 0 138V150A6 6 0 0 0 6 156H24V162A6 6 0 0 0 30 168zM30 264H72V216H30A6 6 0 0 0 24 222V228H6A6 6 0 0 0 0 234V246A6 6 0 0 0 6 252H24V258A6 6 0 0 0 30 264zM30 360H72V312H30A6 6 0 0 0 24 318V324H6A6 6 0 0 0 0 330V342A6 6 0 0 0 6 348H24V354A6 6 0 0 0 30 360z" />
    +    <glyph glyph-name="microphone-alt-slash"
    +      unicode="&#xF539;"
    +      horiz-adv-x="640" d=" M633.82 -10.1L476.26 111.67C488.74 135.79 496 163.02 496 192V240C496 248.84 488.84 256 480 256H464C455.16 256 448 248.84 448 240V192C448 174.08 444.04 157.2 437.28 141.8L410.73 162.32C413.83 171.72 416.01 181.54 416.01 191.99H372.3399999999999L330.94 223.99H416V255.99H330.67C324.7800000000001 255.99 320 259.5700000000001 320 263.99V279.99C320 284.41 324.78 287.99 330.67 287.99H416V319.99H330.67C324.7800000000001 319.99 320 323.57 320 327.99V343.99C320 348.4100000000001 324.78 351.99 330.67 351.99H416C416 405.01 373.02 447.99 320 447.99S224 405.01 224 351.99V306.63L45.47 444.63C38.49 450.05 28.43 448.8 23.01 441.82L3.37 416.55C-2.05 409.58 -0.8 399.53 6.18 394.1L594.54 -60.63C601.52 -66.0599999999999 611.5699999999999 -64.7999999999999 617 -57.82L636.64 -32.55C642.05 -25.58 640.8 -15.53 633.8199999999999 -10.1zM400 -16H344V17.78C355.71 19.4 367.1 22.0599999999999 377.96 25.86L327.56 64.8199999999999C320.85 64.42 314.15 63.9499999999999 307.21 64.62C251.36 70.0699999999999 208.47 113.25 196.03 166.4699999999999L144 206.69V199.84C144 110.2 207.97 30.29 296 18.15V-16H240C231.16 -16 224 -23.16 224 -32V-48C224 -56.84 231.16 -64 240 -64H400C408.84 -64 416 -56.84 416 -48V-32C416 -23.16 408.84 -16 400 -16z" />
    +    <glyph glyph-name="microphone-alt"
    +      unicode="&#xF3C9;"
    +      horiz-adv-x="352" d=" M336 256H320C311.1600000000001 256 304 248.84 304 240V192C304 117.2 239.51 57.18 163.21 64.62C96.71 71.11 48 130.89 48 197.7V240C48 248.84 40.84 256 32 256H16C7.16 256 0 248.84 0 240V199.84C0 110.2 63.97 30.29 152 18.15V-16H96C87.16 -16 80 -23.16 80 -32V-48C80 -56.84 87.16 -64 96 -64H256C264.84 -64 272 -56.84 272 -48V-32C272 -23.16 264.84 -16 256 -16H200V17.77C285.71 29.53 352 103.1 352 192V240C352 248.84 344.84 256 336 256zM176 96C229.02 96 272 138.98 272 192H186.67C180.78 192 176 195.58 176 200V216C176 220.42 180.78 224 186.67 224H272V256H186.67C180.78 256 176 259.5800000000001 176 264V280C176 284.42 180.78 288 186.67 288H272V320H186.67C180.78 320 176 323.58 176 328V344C176 348.42 180.78 352 186.67 352H272C272 405.02 229.02 448 176 448S80 405.02 80 352V192C80 138.98 122.98 96 176 96z" />
    +    <glyph glyph-name="microphone-slash"
    +      unicode="&#xF131;"
    +      horiz-adv-x="640" d=" M633.82 -10.1L476.02 111.86C488.61 135.87 496 162.99 496 192V240C496 248.84 488.84 256 480 256H464C455.16 256 448 248.84 448 240V192C448 174.08 444.04 157.2 437.28 141.8L410.73 162.32C413.83 171.72 416.01 181.54 416.01 191.99V352C416.01 405.02 373.0299999999999 448 320.01 448S224.0099999999999 405.02 224.0099999999999 352V306.64L45.47 444.63C38.49 450.05 28.43 448.8 23.01 441.82L3.37 416.55C-2.05 409.58 -0.8 399.53 6.18 394.1L594.54 -60.63C601.52 -66.0599999999999 611.5699999999999 -64.7999999999999 617 -57.82L636.64 -32.55C642.05 -25.58 640.8 -15.53 633.8199999999999 -10.1zM400 -16H344V17.77C355.6600000000001 19.37 366.85 22.31 377.67 26.08L327.56 64.81C320.85 64.41 314.15 63.94 307.21 64.61C251.36 70.06 208.47 113.24 196.03 166.46L144 206.69V199.84C144 110.2 207.97 30.29 296 18.15V-16H240C231.16 -16 224 -23.16 224 -32V-48C224 -56.84 231.16 -64 240 -64H400C408.84 -64 416 -56.84 416 -48V-32C416 -23.16 408.84 -16 400 -16z" />
    +    <glyph glyph-name="microphone"
    +      unicode="&#xF130;"
    +      horiz-adv-x="352" d=" M176 96C229.02 96 272 138.98 272 192V352C272 405.02 229.02 448 176 448S80 405.02 80 352V192C80 138.98 122.98 96 176 96zM336 256H320C311.1600000000001 256 304 248.84 304 240V192C304 117.2 239.51 57.18 163.21 64.62C96.71 71.11 48 130.89 48 197.7V240C48 248.84 40.84 256 32 256H16C7.16 256 0 248.84 0 240V199.84C0 110.2 63.97 30.29 152 18.15V-16H96C87.16 -16 80 -23.16 80 -32V-48C80 -56.84 87.16 -64 96 -64H256C264.84 -64 272 -56.84 272 -48V-32C272 -23.16 264.84 -16 256 -16H200V17.77C285.71 29.53 352 103.1 352 192V240C352 248.84 344.84 256 336 256z" />
    +    <glyph glyph-name="microscope"
    +      unicode="&#xF610;"
    +      horiz-adv-x="512" d=" M160 128H172V112C172 103.16 179.16 96 188 96H228C236.84 96 244 103.16 244 112V128H256C273.67 128 288 142.33 288 160V384C288 401.67 273.67 416 256 416V432C256 440.84 248.84 448 240 448H176C167.16 448 160 440.84 160 432V416C142.33 416 128 401.67 128 384V160C128 142.33 142.33 128 160 128zM464 0H462.71C493.24 34.01 512 78.8 512 128C512 233.88 425.88 320 320 320V256C390.58 256 448 198.58 448 128S390.58 0 320 0H48C21.49 0 0 -21.49 0 -48C0 -56.84 7.16 -64 16 -64H496C504.84 -64 512 -56.84 512 -48C512 -21.49 490.51 0 464 0zM104 32H312C316.42 32 320 35.58 320 40V56C320 60.42 316.42 64 312 64H104C99.58 64 96 60.42 96 56V40C96 35.58 99.58 32 104 32z" />
    +    <glyph glyph-name="minus-circle"
    +      unicode="&#xF056;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM124 152C117.4 152 112 157.4 112 164V220C112 226.6 117.4 232 124 232H388C394.6 232 400 226.6 400 220V164C400 157.4 394.6 152 388 152H124z" />
    +    <glyph glyph-name="minus-square"
    +      unicode="&#xF146;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM92 152C85.4 152 80 157.4 80 164V220C80 226.6 85.4 232 92 232H356C362.6 232 368 226.6 368 220V164C368 157.4 362.6 152 356 152H92z" />
    +    <glyph glyph-name="minus"
    +      unicode="&#xF068;"
    +      horiz-adv-x="448" d=" M416 240H32C14.33 240 0 225.67 0 208V176C0 158.33 14.33 144 32 144H416C433.67 144 448 158.33 448 176V208C448 225.67 433.67 240 416 240z" />
    +    <glyph glyph-name="mobile-alt"
    +      unicode="&#xF3CD;"
    +      horiz-adv-x="320" d=" M272 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H272C298.5 -64 320 -42.5 320 -16V400C320 426.5 298.5 448 272 448zM160 -32C142.3 -32 128 -17.7 128 0S142.3 32 160 32S192 17.7 192 0S177.7 -32 160 -32zM272 76C272 69.4 266.6 64 260 64H60C53.4 64 48 69.4 48 76V388C48 394.6 53.4 400 60 400H260C266.6 400 272 394.6 272 388V76z" />
    +    <glyph glyph-name="mobile"
    +      unicode="&#xF10B;"
    +      horiz-adv-x="320" d=" M272 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H272C298.5 -64 320 -42.5 320 -16V400C320 426.5 298.5 448 272 448zM160 -32C142.3 -32 128 -17.7 128 0S142.3 32 160 32S192 17.7 192 0S177.7 -32 160 -32z" />
    +    <glyph glyph-name="money-bill-alt"
    +      unicode="&#xF3D1;"
    +      horiz-adv-x="640" d=" M352 160H336V248C336 252.42 332.42 256 328 256H314.42C309.68 256 305.05 254.6 301.11 251.97L285.7800000000001 241.75A7.993999999999999 7.993999999999999 0 0 1 283.56 230.66L292.44 217.35A7.993999999999999 7.993999999999999 0 0 1 303.53 215.13L304 215.44V160H288C283.58 160 280 156.42 280 152V136C280 131.58 283.58 128 288 128H352C356.42 128 360 131.58 360 136V152C360 156.42 356.42 160 352 160zM608 384H32C14.33 384 0 369.67 0 352V32C0 14.33 14.33 0 32 0H608C625.67 0 640 14.33 640 32V352C640 369.67 625.67 384 608 384zM48 48V112C83.35 112 112 83.35 112 48H48zM48 272V336H112C112 300.65 83.35 272 48 272zM320 80C266.98 80 224 130.15 224 192C224 253.86 266.98 304 320 304S416 253.86 416 192C416 130.13 373 80 320 80zM592 48H528C528 83.35 556.65 112 592 112V48zM592 272C556.65 272 528 300.65 528 336H592V272z" />
    +    <glyph glyph-name="money-bill-wave-alt"
    +      unicode="&#xF53B;"
    +      horiz-adv-x="640" d=" M621.16 393.54C582.37 409.81 543.55 416 504.75 416C381.58 416.01 258.42 353.66 135.25 353.66C104.36 353.66 73.49 357.58 42.6 367.38C39.13 368.48 35.65 369 32.25 369C15.04 369 0 355.68 0 337.19V19.93C0 7.3 7.23 -4.67 18.84 -9.53C57.63 -25.81 96.45 -32 135.25 -32C258.42 -32 381.5900000000001 30.35 504.76 30.35C535.65 30.35 566.52 26.43 597.41 16.63C600.88 15.53 604.36 15.01 607.76 15.01C624.97 15.01 640.01 28.33 640.01 46.82V364.07C640 376.71 632.77 388.67 621.16 393.54zM320 96C275.81 96 240 138.99 240 192C240 245.02 275.82 288 320 288S400 245.02 400 192C400 138.97 364.17 96 320 96z" />
    +    <glyph glyph-name="money-bill-wave"
    +      unicode="&#xF53A;"
    +      horiz-adv-x="640" d=" M621.16 393.54C582.37 409.81 543.55 416 504.75 416C381.58 416.01 258.42 353.66 135.25 353.66C104.36 353.66 73.49 357.58 42.6 367.38C39.13 368.48 35.65 369 32.25 369C15.04 369 0 355.68 0 337.19V19.93C0 7.3 7.23 -4.67 18.84 -9.53C57.63 -25.81 96.45 -32 135.25 -32C258.42 -32 381.5900000000001 30.35 504.76 30.35C535.65 30.35 566.52 26.43 597.41 16.63C600.88 15.53 604.36 15.01 607.76 15.01C624.97 15.01 640.01 28.33 640.01 46.82V364.07C640 376.71 632.77 388.67 621.16 393.54zM48 315.78C68.12 310.74 89.12 308.2100000000001 110.72 306.85C104.84 277.4600000000001 79 255.31 48 255.31V315.78zM48 30.78V78.56C82.37 78.56 110.18 51.29 111.71 17.16C89.18 18.97 68.12 23.47 48 30.78zM320 96C275.81 96 240 138.99 240 192C240 245.02 275.82 288 320 288S400 245.02 400 192C400 138.97 364.17 96 320 96zM592 68.22C574.48 72.61 556.29 75.0700000000001 537.68 76.66C543.55 102.74 565.18 122.54 592 125.9400000000001V68.22zM592 304.3300000000001C561.11 308.24 537.14 334.0300000000001 536.19 365.8800000000001C555.73 363.7100000000001 574.2800000000001 359.6500000000001 592 353.2200000000001V304.3300000000001z" />
    +    <glyph glyph-name="money-bill"
    +      unicode="&#xF0D6;"
    +      horiz-adv-x="640" d=" M608 384H32C14.33 384 0 369.67 0 352V32C0 14.33 14.33 0 32 0H608C625.67 0 640 14.33 640 32V352C640 369.67 625.67 384 608 384zM48 48V112C83.35 112 112 83.35 112 48H48zM48 272V336H112C112 300.65 83.35 272 48 272zM320 96C275.81 96 240 138.99 240 192C240 245.02 275.82 288 320 288S400 245.02 400 192C400 138.97 364.17 96 320 96zM592 48H528C528 83.35 556.65 112 592 112V48zM592 272C556.65 272 528 300.65 528 336H592V272z" />
    +    <glyph glyph-name="money-check-alt"
    +      unicode="&#xF53D;"
    +      horiz-adv-x="640" d=" M608 416H32C14.33 416 0 401.67 0 384V0C0 -17.67 14.33 -32 32 -32H608C625.67 -32 640 -17.67 640 0V384C640 401.67 625.67 416 608 416zM176 120.12V104C176 99.58 172.42 96 168 96H152C147.58 96 144 99.58 144 104V120.29C132.71 120.87 121.73 124.81 112.63 131.6400000000001C108.73 134.5700000000001 108.53 140.41 112.06 143.78L123.81 154.99C126.58 157.63 130.7 157.75 133.94 155.72C137.81 153.3 142.2 152 146.76 152H174.87C181.37 152 186.67 157.92 186.67 165.19C186.67 171.14 183.06 176.38 177.9 177.92L132.9 191.42C114.31 197 101.32 214.84 101.32 234.81C101.32 259.3300000000001 120.37 279.25 143.99 279.88V296C143.99 300.42 147.57 304 151.99 304H167.99C172.41 304 175.99 300.42 175.99 296V279.7100000000001C187.28 279.13 198.26 275.2000000000001 207.36 268.36C211.26 265.43 211.46 259.5900000000001 207.93 256.2200000000001L196.18 245.01C193.41 242.3700000000001 189.29 242.2500000000001 186.05 244.2800000000001C182.18 246.7100000000001 177.79 248.0000000000001 173.23 248.0000000000001H145.12C138.62 248.0000000000001 133.32 242.0800000000001 133.32 234.8100000000001C133.32 228.8600000000001 136.93 223.62 142.09 222.0800000000001L187.09 208.5800000000001C205.68 203 218.67 185.16 218.67 165.1900000000001C218.67 140.6600000000001 199.62 120.7500000000001 176 120.1200000000001zM416 136C416 131.58 412.42 128 408 128H296C291.58 128 288 131.58 288 136V152C288 156.42 291.58 160 296 160H408C412.42 160 416 156.42 416 152V136zM576 136C576 131.58 572.42 128 568 128H488C483.58 128 480 131.58 480 136V152C480 156.42 483.58 160 488 160H568C572.42 160 576 156.42 576 152V136zM576 232C576 227.58 572.42 224 568 224H296C291.58 224 288 227.58 288 232V248C288 252.42 291.58 256 296 256H568C572.42 256 576 252.42 576 248V232z" />
    +    <glyph glyph-name="money-check"
    +      unicode="&#xF53C;"
    +      horiz-adv-x="640" d=" M0 0C0 -17.67 14.33 -32 32 -32H608C625.67 -32 640 -17.67 640 0V320H0V0zM448 208C448 216.84 455.16 224 464 224H560C568.84 224 576 216.84 576 208V176C576 167.16 568.84 160 560 160H464C455.16 160 448 167.16 448 176V208zM448 88C448 92.42 451.58 96 456 96H568C572.42 96 576 92.42 576 88V72C576 67.58 572.42 64 568 64H456C451.58 64 448 67.58 448 72V88zM64 184C64 188.42 67.58 192 72 192H376C380.42 192 384 188.42 384 184V168C384 163.58 380.42 160 376 160H72C67.58 160 64 163.58 64 168V184zM64 88C64 92.42 67.58 96 72 96H248C252.42 96 256 92.42 256 88V72C256 67.58 252.42 64 248 64H72C67.58 64 64 67.58 64 72V88zM624 416H16C7.16 416 0 408.8400000000001 0 400V352H640V400C640 408.8400000000001 632.84 416 624 416z" />
    +    <glyph glyph-name="monument"
    +      unicode="&#xF5A6;"
    +      horiz-adv-x="384" d=" M368 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H368C376.84 -64 384 -56.84 384 -48V-16C384 -7.16 376.84 0 368 0zM289.14 347.26A31.97 31.97 0 0 1 279.93 366.7L203.31 443.31C197.06 449.56 186.93 449.56 180.68 443.31L104.08 366.7A31.97 31.97 0 0 1 94.87 347.26L64 32H320L289.14 347.26zM240 140.8C240 134.4 233.6 128 227.2 128H156.8C150.4 128 144 134.4 144 140.8V179.2C144 185.6 150.4 192 156.8 192H227.2C233.6 192 240 185.6 240 179.2V140.8z" />
    +    <glyph glyph-name="moon"
    +      unicode="&#xF186;"
    +      horiz-adv-x="512" d=" M283.211 -64C362.173 -64 434.29 -28.075 482.068 30.792C489.136 39.5000000000001 481.429 52.222 470.506 50.1420000000001C346.303 26.4880000000001 232.244 121.7180000000001 232.244 247.0960000000001C232.244 319.3180000000001 270.906 385.7310000000001 333.742 421.4900000000001C343.428 427.0020000000001 340.992 441.6870000000001 329.986 443.7200000000001A258.156 258.156 0 0 1 283.211 448C141.902 448 27.211 333.4890000000001 27.211 192C27.211 50.691 141.722 -64 283.211 -64z" />
    +    <glyph glyph-name="mortar-pestle"
    +      unicode="&#xF5A7;"
    +      horiz-adv-x="512" d=" M501.54 387.0900000000001C518.76 404.31 514.0500000000001 433.3400000000001 492.27 444.23A35.696 35.696 0 0 1 454.9 440.86L251.09 288H402.4600000000001L501.54 387.0900000000001zM496 256H16C7.16 256 0 248.84 0 240V208C0 199.16 7.16 192 16 192H32C32 111.02 82.2 41.89 153.13 13.68C140.37 -3.19 131.41 -23.12 128.18 -45.01C126.72 -54.93 134.22 -63.99 144.25 -63.99H367.75C377.78 -63.99 385.28 -54.93 383.82 -45.01C380.6 -23.12 371.64 -3.19 358.87 13.68C429.8 41.89 480 111.02 480 192H496C504.84 192 512 199.16 512 208V240C512 248.84 504.84 256 496 256z" />
    +    <glyph glyph-name="mosque"
    +      unicode="&#xF678;"
    +      horiz-adv-x="640" d=" M0 -32C0 -49.67 14.33 -64 32 -64H96C113.67 -64 128 -49.67 128 -32V288H0V-32zM579.16 160C597.02 177.39 608 197.34 608 218.91C608 271.77 566.21 312.7 520.08 341.81C478.14 368.28 439.4500000000001 399.58 408.1200000000001 438.03L400 448L391.88 438.03C360.55 399.58 321.87 368.27 279.92 341.81C233.79 312.7 192 271.77 192 218.91C192 197.34 202.98 177.39 220.84 160H579.16zM608 128H192C174.33 128 160 113.67 160 96V-32C160 -49.67 174.33 -64 192 -64H224V0C224 17.67 238.33 32 256 32S288 17.67 288 0V-64H352V8C352 56 400 80 400 80S448 56 448 8V-64H512V0C512 17.67 526.33 32 544 32S576 17.67 576 0V-64H608C625.67 -64 640 -49.67 640 -32V96C640 113.67 625.67 128 608 128zM64 448S0 416 0 352V320H128V352C128 416 64 448 64 448z" />
    +    <glyph glyph-name="motorcycle"
    +      unicode="&#xF21C;"
    +      horiz-adv-x="640" d=" M512.949 255.997C498.0869999999999 256.105 483.809 253.675 470.515 249.123L437.589 304H520C533.255 304 544 314.745 544 328V360C544 373.255 533.255 384 520 384H474.689A24 24 0 0 1 456.85 376.055L419.3540000000001 334.392L396.5800000000001 372.348A24 24 0 0 1 376 384H296C287.163 384 280 376.837 280 368V352C280 343.163 287.163 336 296 336H362.411L381.611 304H227.904C210.177 327.073 182.98 344 128 344H72.54C59.085 344 47.749 332.9890000000001 48.004 319.536C48.252 306.495 58.9 296 72 296H128C152.504 296 166.686 285.081 175.787 271.231L164.496 250.702C151.49 254.567 137.625 256.438 123.245 255.912C55.857 253.451 1.565 198.395 0.034 130.979C-1.603 58.924 56.317 0 128 0C187.642 0 237.744 40.794 251.953 96H336.189C349.862 96 360.778 107.421 360.165 121.077C358.0470000000001 168.197 377.687 214.742 416.35 246.103L428.8350000000001 225.295C401.189 201.641 383.7380000000001 166.415 384.004 127.116C384.4740000000001 57.56 441.207 0.664 510.762 0.006C582.391 -0.672 640.601 57.493 639.996 129.105C639.408 198.696 582.5409999999999 255.491 512.949 255.997zM128 48C83.888 48 48 83.888 48 128S83.888 208 128 208C132.242 208 136.405 207.659 140.469 207.018L98.97 131.566C90.187 115.593 101.762 96 120 96H201.297C188.927 67.775 160.737 48 128 48zM516.351 48.116C470.272 45.663 432 82.446 432 128C432 149.363 440.4340000000001 168.781 454.125 183.144L503.537 100.792C508.083 93.215 517.912 90.758 525.489 95.304L539.2090000000001 103.5360000000001C546.7860000000001 108.0820000000001 549.243 117.9110000000001 544.6970000000001 125.4880000000001L496.1410000000001 206.4150000000001A80.005 80.005 0 0 0 512 208C557.554 208 594.338 169.727 591.884 123.648C589.724 83.09 556.91 50.276 516.351 48.116z" />
    +    <glyph glyph-name="mountain"
    +      unicode="&#xF6FC;"
    +      horiz-adv-x="640" d=" M634.92 -14.7L346.92 433.3C341.03 442.46 330.89 448 320 448S298.9700000000001 442.46 293.08 433.3L5.08 -14.7A32.001 32.001 0 0 1 3.91 -47.34A32.004 32.004 0 0 1 32 -64H608C619.71 -64 630.48 -57.61 636.09 -47.33A31.982999999999997 31.982999999999997 0 0 1 634.9200000000001 -14.7zM320 356.82L405.39 224H320L256 160L217.94 198.06L320 356.82z" />
    +    <glyph glyph-name="mouse-pointer"
    +      unicode="&#xF245;"
    +      horiz-adv-x="320" d=" M302.189 118.874H196.105L251.936 -17.119C255.825 -26.547 251.381 -37.118 242.492 -41.118L193.327 -62.545C184.162 -66.5450000000001 173.884 -61.974 169.995 -52.831L116.942 76.305L30.278 -12.8330000000001C18.729 -24.71 0 -15.554 0 0.023V429.701C0 446.101 19.921 454.096 30.277 442.557L314.689 150.0150000000001C326.161 138.8360000000001 317.696 118.874 302.189 118.874z" />
    +    <glyph glyph-name="music"
    +      unicode="&#xF001;"
    +      horiz-adv-x="512" d=" M511.99 415.99C511.99 437.7 490.89 453 470.39 446.5L150.4 352C137.1 347.8 128 335.5 128 321.5V60.08C117.95 62.46 107.28 64 96 64C42.98 64 0 35.35 0 0S42.98 -64 96 -64S192 -35.35 192 0V233.69L448 308.71V124.08C437.95 126.46 427.28 128 416 128C362.98 128 320 99.35 320 64S362.98 0 416 0S512 28.65 512 64L511.99 415.99z" />
    +    <glyph glyph-name="network-wired"
    +      unicode="&#xF6FF;"
    +      horiz-adv-x="640" d=" M640 184V200C640 208.84 632.84 216 624 216H344V256H416C433.67 256 448 270.3300000000001 448 288V416C448 433.67 433.67 448 416 448H224C206.33 448 192 433.67 192 416V288C192 270.33 206.33 256 224 256H296V216H16C7.16 216 0 208.84 0 200V184C0 175.16 7.16 168 16 168H120V128H64C46.33 128 32 113.67 32 96V-32C32 -49.67 46.33 -64 64 -64H224C241.67 -64 256 -49.67 256 -32V96C256 113.67 241.67 128 224 128H168V168H472V128H416C398.33 128 384 113.67 384 96V-32C384 -49.67 398.33 -64 416 -64H576C593.67 -64 608 -49.67 608 -32V96C608 113.67 593.67 128 576 128H520V168H624C632.84 168 640 175.16 640 184zM256 320V384H384V320H256zM192 0H96V64H192V0zM544 0H448V64H544V0z" />
    +    <glyph glyph-name="neuter"
    +      unicode="&#xF22C;"
    +      horiz-adv-x="288" d=" M288 272C288 351.5 223.5 416 144 416S0 351.5 0 272C0 203.5 47.9 146.1 112 131.6V-20C112 -26.6 117.4 -32 124 -32H164C170.6 -32 176 -26.6 176 -20V131.6C240.1 146.1 288 203.5 288 272zM144 192C99.9 192 64 227.9 64 272S99.9 352 144 352S224 316.1 224 272S188.1 192 144 192z" />
    +    <glyph glyph-name="newspaper"
    +      unicode="&#xF1EA;"
    +      horiz-adv-x="576" d=" M552 384H88C74.745 384 64 373.255 64 360V352H24C10.745 352 0 341.255 0 328V56C0 25.072 25.072 0 56 0H528C554.51 0 576 21.49 576 48V360C576 373.255 565.255 384 552 384zM56 48A8 8 0 0 0 48 56V304H64V56A8 8 0 0 0 56 48zM292 64H140C133.373 64 128 69.373 128 76V84C128 90.627 133.373 96 140 96H292C298.627 96 304 90.627 304 84V76C304 69.373 298.627 64 292 64zM500 64H348C341.373 64 336 69.373 336 76V84C336 90.627 341.373 96 348 96H500C506.627 96 512 90.627 512 84V76C512 69.373 506.627 64 500 64zM292 160H140C133.373 160 128 165.373 128 172V180C128 186.627 133.373 192 140 192H292C298.627 192 304 186.627 304 180V172C304 165.373 298.627 160 292 160zM500 160H348C341.373 160 336 165.373 336 172V180C336 186.627 341.373 192 348 192H500C506.627 192 512 186.627 512 180V172C512 165.373 506.627 160 500 160zM500 256H140C133.373 256 128 261.373 128 268V308C128 314.627 133.373 320 140 320H500C506.627 320 512 314.627 512 308V268C512 261.373 506.627 256 500 256z" />
    +    <glyph glyph-name="not-equal"
    +      unicode="&#xF53E;"
    +      horiz-adv-x="448" d=" M416 240C433.67 240 448 254.33 448 272V304C448 321.67 433.67 336 416 336H392.12L443.99 402.81C449.36 409.83 448.0300000000001 419.87 441.02 425.24L415.61 444.7C408.5900000000001 450.08 398.55 448.74 393.17 441.73L311.09 336H32C14.33 336 0 321.67 0 304V272C0 254.33 14.33 240 32 240H236.56L162.03 144H32C14.33 144 0 129.67 0 112V80C0 62.33 14.33 48 32 48H87.49L35.62 -18.81C30.25 -25.82 31.58 -35.86 38.59 -41.24L64 -60.7C71.02 -66.08 81.06 -64.74 86.43 -57.73L168.52 48H416C433.67 48 448 62.33 448 80V112C448 129.67 433.67 144 416 144H243.05L317.5800000000001 240H416z" />
    +    <glyph glyph-name="notes-medical"
    +      unicode="&#xF481;"
    +      horiz-adv-x="384" d=" M336 384H256C256 419.3 227.3 448 192 448S128 419.3 128 384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V336C384 362.5 362.5 384 336 384zM192 408C205.3 408 216 397.3 216 384S205.3 360 192 360S168 370.7 168 384S178.7 408 192 408zM288 104C288 99.6 284.4 96 280 96H224V40C224 35.6 220.4 32 216 32H168C163.6 32 160 35.6 160 40V96H104C99.6 96 96 99.6 96 104V152C96 156.4 99.6 160 104 160H160V216C160 220.4 163.6 224 168 224H216C220.4 224 224 220.4 224 216V160H280C284.4 160 288 156.4 288 152V104zM288 296C288 291.6 284.4 288 280 288H104C99.6 288 96 291.6 96 296V312C96 316.4 99.6 320 104 320H280C284.4 320 288 316.4 288 312V296z" />
    +    <glyph glyph-name="object-group"
    +      unicode="&#xF247;"
    +      horiz-adv-x="512" d=" M480 320V352H500C506.627 352 512 357.373 512 364V404C512 410.627 506.627 416 500 416H460C453.373 416 448 410.627 448 404V384H64V404C64 410.627 58.627 416 52 416H12C5.373 416 0 410.627 0 404V364C0 357.373 5.373 352 12 352H32V32H12C5.373 32 0 26.627 0 20V-20C0 -26.627 5.373 -32 12 -32H52C58.627 -32 64 -26.627 64 -20V0H448V-20C448 -26.627 453.373 -32 460 -32H500C506.627 -32 512 -26.627 512 -20V20C512 26.627 506.627 32 500 32H480V320zM96 172V308C96 314.627 101.373 320 108 320H276C282.627 320 288 314.627 288 308V172C288 165.373 282.627 160 276 160H108C101.373 160 96 165.373 96 172zM416 76C416 69.373 410.627 64 404 64H236C229.373 64 224 69.373 224 76V128H296C309.255 128 320 138.745 320 152V224H404C410.627 224 416 218.627 416 212V76z" />
    +    <glyph glyph-name="object-ungroup"
    +      unicode="&#xF248;"
    +      horiz-adv-x="576" d=" M64 128V102A6 6 0 0 0 58 96H6A6 6 0 0 0 0 102V154A6 6 0 0 0 6 160H32V352H6A6 6 0 0 0 0 358V410A6 6 0 0 0 6 416H58A6 6 0 0 0 64 410V384H352V410A6 6 0 0 0 358 416H410A6 6 0 0 0 416 410V358A6 6 0 0 0 410 352H384V160H410A6 6 0 0 0 416 154V102A6 6 0 0 0 410 96H358A6 6 0 0 0 352 102V128H64zM544 192V224H570A6 6 0 0 1 576 230V282A6 6 0 0 1 570 288H518A6 6 0 0 1 512 282V256H408V184H416C429.255 184 440 173.255 440 160V96C440 82.745 429.255 72 416 72H352C338.745 72 328 82.745 328 96V104H192V32H166A6 6 0 0 1 160 26V-26A6 6 0 0 1 166 -32H218A6 6 0 0 1 224 -26V0H512V-26A6 6 0 0 1 518 -32H570A6 6 0 0 1 576 -26V26A6 6 0 0 1 570 32H544V192z" />
    +    <glyph glyph-name="oil-can"
    +      unicode="&#xF613;"
    +      horiz-adv-x="640" d=" M629.8 287.69L416 224L365.51 249.24A64.07 64.07 0 0 1 336.89 256H280V304H336C344.84 304 352 311.16 352 320V336C352 344.8400000000001 344.84 352 336 352H176C167.16 352 160 344.8400000000001 160 336V320C160 311.16 167.16 304 176 304H232V256H176L37.72 281.14A31.899999999999995 31.899999999999995 0 0 1 31.93 281.67C14.67 281.67 0 267.64 0 249.66V154.71C0 139.25 11.06 125.99 26.28 123.23L96 110.54V64C96 46.33 110.33 32 128 32H402.63C411.18 32 419.38 35.42 425.39 41.51L637.65 256.26C639.15 257.76 639.99 259.8 639.99 261.92V280C640 285.31 634.91 289.15 629.8 287.69zM96 159.33L48 168.06V230.49L96 221.76V159.3300000000001zM549.3299999999999 74.67C549.3299999999999 51.11 568.43 31.9999999999999 591.9999999999999 31.9999999999999S634.6699999999998 51.1 634.6699999999998 74.67S592 160 592 160S549.33 98.23 549.33 74.67z" />
    +    <glyph glyph-name="om"
    +      unicode="&#xF679;"
    +      horiz-adv-x="512" d=" M360.6 387.06A10.43 10.43 0 0 1 375.36 387.06L396.93 408.62A10.43 10.43 0 0 1 396.93 423.38L375.35 444.94C371.2700000000001 449.01 364.67 449.01 360.5900000000001 444.94L339.0200000000001 423.38A10.43 10.43 0 0 1 339.0200000000001 408.62L360.6 387.06zM412.11 256C385.42 256 360.3400000000001 245.61 341.4700000000001 226.75L317.2200000000001 202.5C310.4400000000001 195.73 301.4400000000001 192 291.8400000000001 192H245C255.54 214.1 259.17 240.11 252.73 267.23C242.63 309.7800000000001 206.37 343.3400000000001 163.21 350.42C127.06 356.35 92.31 345.38 67.2 321.64C59.84 314.68 60.23 302.79 68.32 296.7100000000001L94.47 277.0800000000001C100.19 272.78 108.13 272.76 113.67 277.29C122.12 284.1900000000001 132.69 288 143.94 288C170.41 288 191.95 266.4700000000001 191.95 240.0000000000001S170.41 192 143.94 192H112.04C100.08 192 92.3 179.42 97.65 168.72L113.74 136.55C116.27 131.49 121.34 128.45 126.91 128H159.94C195.24 128 223.95 99.3 223.95 64S195.24 0 159.94 0C63.92 0 37.59 54.02 14.79 92.03C10.26 99.58 0.02 95.61 0 86.81C-0.09 32 41.13 -64 159.94 -64C230.53 -64 287.9600000000001 -6.58 287.9600000000001 64C287.9600000000001 87.42 281.1800000000001 109.1 270.1500000000001 128H291.8400000000001C318.5300000000001 128 343.61 138.39 362.48 157.25L386.73 181.5C393.51 188.27 402.51 192 412.11 192C431.89 192 447.99 175.91 447.99 156.12V56C447.99 42.77 429.2200000000001 32 415.98 32C376.5800000000001 32 349.31 56.24 334.1600000000001 74.89C329.3900000000001 80.76 319.9600000000001 77.43 319.9600000000001 69.87V32S319.9600000000001 -32 415.98 -32C464.52 -32 512 7.47 512 56V156.12C512 211.2 467.2 256 412.11 256zM454.29 380.73C368.74 315.61 285.24 377.98 281.7100000000001 380.68C275.6900000000001 385.3 267.2700000000001 385.06 261.5700000000001 380.13C255.8300000000001 375.2100000000001 254.3000000000001 366.9600000000001 257.9100000000001 360.3300000000001C259.5200000000001 357.38 298.2800000000001 287.99 376.7100000000001 287.99C456.6300000000001 287.99 475.49 319.35 478.46 325.65C479.48 327.77 479.99 330.12 479.99 332.48V368C479.99 381.2200000000001 464.85 388.69 454.29 380.73z" />
    +    <glyph glyph-name="otter"
    +      unicode="&#xF700;"
    +      horiz-adv-x="640" d=" M608 416H576L562.75 429.25A63.97 63.97 0 0 1 517.49 448H497C485.86 448 474.92 445.09 465.25 439.57L312 352H256C149.96 352 64 266.04 64 160V158.39C64 125.64 48 96.25 24.44 73.5C6.25 55.92 -3.66 29.82 1.25 1.7C8.01 -37.1 44.15 -64 83.53 -64H192C209.67 -64 224 -49.67 224 -32S209.67 0 192 0H80C71.17 0 64 7.17 64 16S71.17 32 80 32H304C312.84 32 320 39.16 320 48V64C320 81.67 305.67 96 288 96H224L373.49 176.5L448 32H528C536.84 32 544 39.16 544 48V64C544 81.67 529.67 96 512 96H483.78L428.67 206.21L521.14 256H544C597.02 256 640 298.98 640 352V384C640 401.67 625.67 416 608 416zM512 400C520.84 400 528 392.8400000000001 528 384S520.84 368 512 368S496 375.16 496 384S503.16 400 512 400zM544 304H509.04L407.2 249.16L393.43 276.7100000000001L512 336H589.05C582.43 317.42 564.8299999999999 304 544 304z" />
    +    <glyph glyph-name="outdent"
    +      unicode="&#xF03B;"
    +      horiz-adv-x="448" d=" M0 364V404C0 412.837 7.163 420 16 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H16C7.163 348 0 355.163 0 364zM208 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H208C199.163 292 192 284.837 192 276V236C192 227.163 199.163 220 208 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM208 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H208C199.163 164 192 156.837 192 148V108C192 99.163 199.163 92 208 92zM4.687 180.687L100.687 84.703C110.734 74.652 128 81.776 128 96.016V287.992C128 302.3210000000001 110.675 309.296 100.687 299.305L4.687 203.313C-1.562 197.065 -1.562 186.935 4.687 180.687z" />
    +    <glyph glyph-name="paint-brush"
    +      unicode="&#xF1FC;"
    +      horiz-adv-x="512" d=" M167.02 138.66C126.9 136.0800000000001 90.49 120.8 69.83 66.36C67.48 60.15 61.83 56.38 55.24 56.38C44.13 56.38 9.78 84.05 -0.01 90.73C0 8.38 37.93 -64 128 -64C203.86 -64 256 -20.23 256 56.19C256 59.3 255.35 62.27 255.03 65.32L167.02 138.66zM457.89 448C442.73 448 428.52 441.29 417.68 431.55C213.27 248.95 192 244.66 192 190.91C192 177.21 195.25 164.15 200.73 152.21L264.55 99.03C271.76 97.23 279.19 96.0000000000001 286.94 96.0000000000001C349.05 96.0000000000001 385.05 141.47 498.1 352.4600000000001C505.48 366.8100000000001 512 382.3100000000001 512 398.4500000000001C512 427.36 486 448 457.89 448z" />
    +    <glyph glyph-name="paint-roller"
    +      unicode="&#xF5AA;"
    +      horiz-adv-x="512" d=" M416 320V416C416 433.67 401.67 448 384 448H32C14.33 448 0 433.67 0 416V320C0 302.33 14.33 288 32 288H384C401.67 288 416 302.3300000000001 416 320zM448 384V256C448 238.33 433.67 224 416 224H256C220.65 224 192 195.35 192 160V128C174.33 128 160 113.67 160 96V-32C160 -49.67 174.33 -64 192 -64H256C273.67 -64 288 -49.67 288 -32V96C288 113.67 273.67 128 256 128V160H416C469.02 160 512 202.98 512 256V320C512 355.35 483.35 384 448 384z" />
    +    <glyph glyph-name="palette"
    +      unicode="&#xF53F;"
    +      horiz-adv-x="512" d=" M204.3 443C104.9 423.6 24.8 343.7 5.2 244.6C-31.8 57.6 136.9 -81.7999999999999 264 -62.1C305.2 -55.7 325.4 -7.5 306.5 29.6C283.4 74.9999999999999 316.4 128 367.4 128H447.1C482.9 128 511.9 157.6 512 193.3C511.5 350.9 368.1 474.9 204.3 443zM96 128C78.3 128 64 142.3 64 160S78.3 192 96 192S128 177.7 128 160S113.7 128 96 128zM128 256C110.3 256 96 270.3 96 288S110.3 320 128 320S160 305.7 160 288S145.7 256 128 256zM256 320C238.3 320 224 334.3 224 352S238.3 384 256 384S288 369.7 288 352S273.7 320 256 320zM384 256C366.3 256 352 270.3 352 288S366.3 320 384 320S416 305.7 416 288S401.7 256 384 256z" />
    +    <glyph glyph-name="pallet"
    +      unicode="&#xF482;"
    +      horiz-adv-x="640" d=" M144 192H496C504.8 192 512 199.2 512 208V432C512 440.8 504.8 448 496 448H384V320L320 352L256 320V448H144C135.2 448 128 440.8 128 432V208C128 199.2 135.2 192 144 192zM624 64C632.8 64 640 71.2 640 80V112C640 120.8 632.8 128 624 128H16C7.2 128 0 120.8 0 112V80C0 71.2 7.2 64 16 64H64V0H16C7.2 0 0 -7.2 0 -16V-48C0 -56.8 7.2 -64 16 -64H624C632.8 -64 640 -56.8 640 -48V-16C640 -7.2 632.8 0 624 0H576V64H624zM288 0H128V64H288V0zM512 0H352V64H512V0z" />
    +    <glyph glyph-name="paper-plane"
    +      unicode="&#xF1D8;"
    +      horiz-adv-x="512" d=" M476 444.8L12.5 177.4C-5.6 167 -3.3 141.8 14.7 134.2L121 89.6L408.3 342.8C413.8 347.7000000000001 421.6 340.2000000000001 416.9000000000001 334.5L176 41V-39.5C176 -63.1 204.5 -72.4 218.5 -55.3L282 22L406.6 -30.2C420.8 -36.2 437 -27.3 439.6 -12L511.6 420C515 440.2 493.3 454.8 476 444.8z" />
    +    <glyph glyph-name="paperclip"
    +      unicode="&#xF0C6;"
    +      horiz-adv-x="448" d=" M43.246 -18.142C-15.184 42.147 -14.095 139.369 44.632 199.439L254.392 414C298.708 459.332 370.743 459.336 415.063 414C458.953 369.106 459.006 296.671 415.063 251.724L232.214 64.872C202.359 34.335 153.581 34.761 124.232 65.87C95.957 95.84 96.864 143.343 125.684 172.823L269.427 319.658C275.6090000000001 325.972 285.7390000000001 326.08 292.053 319.899L314.914 297.52C321.229 291.338 321.336 281.208 315.155 274.894L171.427 128.073C166.495 123.028 166.191 114.645 170.779 109.781C175.151 105.1469999999999 182.024 105.0699999999999 186.467 109.6159999999999L369.316 296.467C388.929 316.529 388.929 349.1919999999999 369.305 369.265C350.116 388.892 319.348 388.902 300.151 369.265L90.39 154.705C55.627 119.145 55.091 61.585 89.199 26.392C123.209 -8.701 178.184 -8.745 212.257 26.106L384.317 202.105C390.4940000000001 208.424 400.624 208.538 406.943 202.361L429.82 179.997C436.139 173.82 436.254 163.69 430.076 157.3710000000001L258.016 -18.627C198.44 -79.5649999999999 102.073 -78.843 43.246 -18.1419999999999z" />
    +    <glyph glyph-name="parachute-box"
    +      unicode="&#xF4CD;"
    +      horiz-adv-x="512" d=" M511.9 273C502.8 348.6 433.5 405.4 353.6 431.7C390 392.3 416 331.1 416 256H444.1L327.5 126.5C325 127.1 322.7 128 320 128H272V256H384C384 371.2 315.1 448 256 448S128 371.2 128 256H240V128H192C189.3 128 187 127.1 184.5 126.5L67.9 256H96C96 331.1 122 392.3 158.4 431.7C78.5 405.3 9.2 348.5 0.1 273C-1 263.9 6.9 256 16.1 256H24.8L161.5 104.1C160.8 101.5 159.9 98.9 159.9 96V-32C159.9 -49.7 174.2 -64 191.9 -64H319.9C337.6 -64 351.9 -49.7 351.9 -32V96C351.9 98.9 351 101.4 350.3 104.1L487.1 256H495.8C505.1 256 513 263.8 511.9 273z" />
    +    <glyph glyph-name="paragraph"
    +      unicode="&#xF1DD;"
    +      horiz-adv-x="448" d=" M408 416H177.531C88.948 416 16.045 344.665 16 256.082C15.956 167.679 87.607 96 176 96V-8C176 -21.255 186.745 -32 200 -32H232C245.255 -32 256 -21.255 256 -8V336H288V-8C288 -21.255 298.745 -32 312 -32H344C357.255 -32 368 -21.255 368 -8V336H408C421.255 336 432 346.745 432 360V392C432 405.255 421.255 416 408 416z" />
    +    <glyph glyph-name="parking"
    +      unicode="&#xF540;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM240 128H192V80C192 71.2 184.8 64 176 64H144C135.2 64 128 71.2 128 80V304C128 312.8 135.2 320 144 320H240C292.9 320 336 276.9 336 224S292.9 128 240 128zM240 256H192V192H240C257.6 192 272 206.4 272 224S257.6 256 240 256z" />
    +    <glyph glyph-name="passport"
    +      unicode="&#xF5AB;"
    +      horiz-adv-x="448" d=" M129.62 272H168.71C170.2 299.03 175.25 323.35 182.92 342.41C155.21 329.17 134.9 303.2200000000001 129.62 272zM129.62 240C134.91 208.78 155.21 182.83 182.92 169.59C175.24 188.65 170.2 212.97 168.71 240.0000000000001H129.62zM224 161.31C231.69 168.76 244.77 195.73 247.43 240H200.56C203.23 195.74 216.31 168.76 224 161.31zM200.57 272H247.44C244.78 316.26 231.7 343.24 224.01 350.69C216.31 343.24 203.23 316.26 200.57 272zM265.08 169.59C292.79 182.8300000000001 313.1 208.78 318.38 240.0000000000001H279.29C277.8 212.97 272.76 188.65 265.08 169.59zM416 448H64C28.65 448 0 419.35 0 384V0C0 -35.35 28.65 -64 64 -64H416C433.67 -64 448 -49.67 448 -32V416C448 433.67 433.67 448 416 448zM336 32H112C103.2 32 96 39.2 96 48S103.2 64 112 64H336C344.8 64 352 56.8 352 48S344.8 32 336 32zM224 128C153.31 128 96 185.31 96 256S153.31 384 224 384S352 326.69 352 256S294.69 128 224 128zM265.08 342.41C272.76 323.35 277.8 299.03 279.29 272H318.38C313.1 303.2200000000001 292.79 329.17 265.08 342.41z" />
    +    <glyph glyph-name="pastafarianism"
    +      unicode="&#xF67B;"
    +      horiz-adv-x="640" d=" M624.54 100.33C591.8399999999999 112.85 567.18 96.08 549.17 83.88C532.11 72.35 525.92 69.46 517.76 72.52C509.64 75.61 506.93 81.9 501.87 101.9C498.54 115.05 494.43 131.22 483.92 144.55C486.16 147.46 488.35 150.34 490.3 153.12C500.47 143.55 513.71 136 532 136C565.95 136 582.87 161.78 594.06 178.83C604.65 194.97 609.06 200 616 200C629.25 200 640 210.75 640 224S629.25 248 616 248C582.05 248 565.13 222.22 553.94 205.17C543.34 189.03 538.94 184 532 184C514.69 184 494.52 245.43 434.74 285.91L451.99 320.41C485.43 322.5 512 350.02 512 384C512 419.35 483.35 448 448 448S384 419.35 384 384C384 370.98 387.94 358.9 394.62 348.79L376.4700000000001 312.49C359.49 317.0900000000001 340.87 320 320.0100000000001 320S280.5200000000001 317.0900000000001 263.5500000000001 312.49L245.4000000000001 348.79C252.06 358.9 256 370.98 256 384C256 419.35 227.35 448 192 448S128 419.35 128 384C128 350.02 154.56 322.5 188.02 320.4L205.27 285.9C145.68 245.56 125.15 184 108 184C101.06 184 96.66 189.03 86.06 205.17C74.88 222.22 57.96 248 24 248C10.75 248 0 237.25 0 224S10.75 200 24 200C30.94 200 35.34 194.97 45.94 178.83C57.13 161.78 74.05 136 108 136C126.29 136 139.53 143.55 149.7 153.11C151.65 150.32 153.84 147.45 156.08 144.54C145.57 131.21 141.46 115.04 138.13 101.89C133.07 81.89 130.36 75.61 122.24 72.5100000000001C114.13 69.4500000000001 107.91 72.34 90.83 83.8700000000001C72.8 96.0700000000001 48.11 112.7900000000001 15.46 100.3200000000001C3.07 95.6 -3.13 81.7400000000001 1.59 69.35C6.31 56.94 20.2 50.74 32.56 55.47C40.72 58.56 46.9 55.66 63.95 44.11C77.5 34.95 94.78 23.25 116.37 23.27C123.54 23.27 131.2 24.55 139.34 27.66C172 40.1 179.32 68.99 184.67 90.1C186.88 98.8200000000001 188.66 104.59 190.62 108.97C207.24 95.36 227.57 83.09 252.26 74.8C242.3 37.8 220.08 -16 192 -16C178.75 -16 168 -26.75 168 -40S178.75 -64 192 -64C258.74 -64 289.05 24.63 299.42 65.14C306.11 64.54 312.8400000000001 64 320 64S333.89 64.54 340.58 65.14C350.95 24.63 381.26 -64 448 -64C461.25 -64 472 -53.25 472 -40S461.25 -16 448 -16C420.06 -16 397.79 37.81 387.78 74.81C412.47 83.1 432.78 95.37 449.4 108.97C451.36 104.59 453.14 98.8200000000001 455.35 90.1C460.6899999999999 68.99 468.02 40.1 500.6799999999999 27.66C508.8199999999999 24.55 516.4799999999999 23.27 523.65 23.27C545.24 23.27 562.52 34.96 576.0699999999999 44.11C593.1199999999999 55.66 599.3499999999999 58.56 607.4599999999999 55.47C619.8499999999999 50.72 633.7299999999999 56.9400000000001 638.43 69.35C643.14 81.75 636.9399999999999 95.61 624.54 100.33zM448 400C456.82 400 464 392.82 464 384S456.82 368 448 368S432 375.18 432 384S439.18 400 448 400zM192 400C200.82 400 208 392.82 208 384S200.82 368 192 368S176 375.18 176 384S183.18 400 192 400z" />
    +    <glyph glyph-name="paste"
    +      unicode="&#xF0EA;"
    +      horiz-adv-x="448" d=" M128 264C128 294.879 153.122 320 184 320H320V392C320 405.255 309.255 416 296 416H215.39C204.306 435.11 183.637 448 160 448S115.694 435.11 104.61 416H24C10.745 416 0 405.255 0 392V56C0 42.745 10.745 32 24 32H128V264zM160 408C173.255 408 184 397.255 184 384S173.255 360 160 360S136 370.745 136 384S146.745 408 160 408zM344 160H448V-40C448 -53.255 437.255 -64 424 -64H184C170.745 -64 160 -53.255 160 -40V264C160 277.255 170.745 288 184 288H320V184C320 170.8 330.8 160 344 160zM448 198.059V192H352V288H358.0590000000001A24 24 0 0 0 375.029 280.971L440.9700000000001 215.03A24.002000000000002 24.002000000000002 0 0 0 448 198.059z" />
    +    <glyph glyph-name="pause-circle"
    +      unicode="&#xF28B;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM240 112C240 103.2 232.8 96 224 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H224C232.8 288 240 280.8 240 272V112zM352 112C352 103.2 344.8 96 336 96H288C279.2 96 272 103.2 272 112V272C272 280.8 279.2 288 288 288H336C344.8 288 352 280.8 352 272V112z" />
    +    <glyph glyph-name="pause"
    +      unicode="&#xF04C;"
    +      horiz-adv-x="448" d=" M144 -31H48C21.5 -31 0 -9.5 0 17V369C0 395.5 21.5 417 48 417H144C170.5 417 192 395.5 192 369V17C192 -9.5 170.5 -31 144 -31zM448 17V369C448 395.5 426.5 417 400 417H304C277.5 417 256 395.5 256 369V17C256 -9.5 277.5 -31 304 -31H400C426.5 -31 448 -9.5 448 17z" />
    +    <glyph glyph-name="paw"
    +      unicode="&#xF1B0;"
    +      horiz-adv-x="512" d=" M256 224C176.59 224 64 101.24 64 23.75C64 -11.15 90.81 -32 135.74 -32C184.58 -32 216.83 -6.92 256 -6.92C295.51 -6.92 327.85 -32 376.26 -32C421.19 -32 448 -11.15 448 23.75C448 101.24 335.4100000000001 224 256 224zM108.72 236.61C98.32 271.26 66.28 293.7000000000001 37.16 286.74C8.04 279.78 -7.13 246.05 3.27 211.4C13.67 176.75 45.71 154.31 74.83 161.27C103.95 168.23 119.12 201.96 108.72 236.61zM193.44 257.39C224.38 265.5300000000001 239.86 307.3300000000001 228.02 350.75S181.5 422.76 150.56 414.62S104.14 364.68 115.98 321.26C127.82 277.8400000000001 162.51 249.24 193.44 257.39zM474.83 286.73C445.71 293.6900000000001 413.68 271.25 403.27 236.6C392.87 201.95 408.04 168.22 437.16 161.26C466.28 154.3 498.3099999999999 176.74 508.72 211.39C519.12 246.04 503.95 279.77 474.83 286.73zM318.56 257.39C349.5 249.25 384.18 277.8400000000001 396.0199999999999 321.26C407.8599999999999 364.68 392.38 406.4700000000001 361.44 414.62S295.82 394.17 283.98 350.75C272.14 307.3300000000001 287.62 265.5300000000001 318.56 257.3900000000001z" />
    +    <glyph glyph-name="peace"
    +      unicode="&#xF67C;"
    +      horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM432 192C432 160.07 423.8 130.03 409.43 103.83L280 207.37V373.03C366.23 357.82 432 282.53 432 192zM216 10.97C182.14 16.9400000000001 151.51 32.17 126.71 53.99L216 125.43V10.97zM280 125.43L369.29 54C344.49 32.18 313.86 16.95 280 10.98V125.43zM216 373.03V207.37L86.57 103.83C72.2 130.03 64 160.07 64 192C64 282.53 129.77 357.82 216 373.03z" />
    +    <glyph glyph-name="pen-alt"
    +      unicode="&#xF305;"
    +      horiz-adv-x="512" d=" M497.94 373.83L437.83 433.94C419.08 452.69 388.67 452.69 369.92 433.94L313.37 377.39L441.39 249.37L497.94 305.92C516.69 324.67 516.69 355.0700000000001 497.94 373.8300000000001zM251.14 394.36C235.52 409.98 210.2 409.98 194.58 394.36L75.8 275.57C69.55 269.32 69.55 259.19 75.8 252.95L98.43 230.32C104.68 224.07 114.81 224.07 121.06 230.32L222.88 332.14L245.51 309.52L93.95 157.97A327.038 327.038 0 0 1 0.17 -37.11L0.14 -37.34C-1.56 -52.62 11.35 -65.5400000000001 26.63 -63.85A327.02000000000004 327.02000000000004 0 0 1 221.97 29.95L418.76 226.74L335.99 309.51L251.14 394.36z" />
    +    <glyph glyph-name="pen-fancy"
    +      unicode="&#xF5AC;"
    +      horiz-adv-x="512" d=" M79.18 165.06A32.005 32.005 0 0 1 58.94 144.82L0 -32L4.69 -36.69L97.58 56.2C96.92 58.76 96.01 61.23 96.01 64C96.01 81.67 110.34 96 128.01 96S160.01 81.67 160.01 64S145.68 32 128.01 32C125.24 32 122.77 32.91 120.21 33.57L27.32 -59.32L32 -64L208.82 -5.06A31.982999999999997 31.982999999999997 0 0 1 229.06 15.18L262.13 99.25L163.25 198.13L79.18 165.06zM369.25 419.68L186.14 220.19L283.99 122.34L483.48 305.4500000000001C568.4 380.52 443.73 503.94 369.25 419.68z" />
    +    <glyph glyph-name="pen-nib"
    +      unicode="&#xF5AD;"
    +      horiz-adv-x="512" d=" M136.6 309.2100000000001A64.003 64.003 0 0 1 93.29 267.86L0 -12L14.69 -26.69L164.8 123.42C161.81 129.68 160 136.6 160 144C160 170.51 181.49 192 208 192S256 170.51 256 144S234.51 96 208 96C200.6 96 193.68 97.81 187.42 100.8L37.31 -49.31L52 -64L331.86 29.29A64.003 64.003 0 0 1 373.2100000000001 72.6L416 224L288 352L136.6 309.2100000000001zM497.9399999999999 373.8300000000001L437.83 433.94C419.08 452.69 388.67 452.69 369.92 433.94L313.37 377.39L441.39 249.37L497.94 305.92C516.69 324.67 516.69 355.0700000000001 497.94 373.8300000000001z" />
    +    <glyph glyph-name="pen-square"
    +      unicode="&#xF14B;"
    +      horiz-adv-x="448" d=" M400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368V16C448 -10.5 426.5 -32 400 -32zM238.1 270.1L102.4 134.4L96.1 77.3C95.3 69.6999999999999 101.7 63.1999999999999 109.4 63.9999999999999L166.5 70.3L302.2 206C304.5 208.3 304.5 212.1 302.2 214.5L246.7 270C244.2 272.4 240.4 272.4 238.1 270.1zM345 282.9L314.9 313C305.5 322.4 290.3 322.4 281 313L257.9 289.9C255.6 287.6 255.6 283.8 257.9 281.4L313.4 225.9C315.7 223.6 319.5 223.6 321.9 225.9L345 249C354.3 258.3 354.3 273.5 345 282.9z" />
    +    <glyph glyph-name="pen"
    +      unicode="&#xF304;"
    +      horiz-adv-x="512" d=" M290.74 354.76L418.76 226.74L140.77 -51.25L26.63 -63.85C11.35 -65.54 -1.56 -52.62 0.14 -37.34L12.84 76.88L290.74 354.76zM497.94 373.82L437.83 433.93C419.08 452.68 388.67 452.68 369.92 433.93L313.37 377.38L441.39 249.36L497.94 305.9100000000001C516.69 324.67 516.69 355.0700000000001 497.94 373.8200000000001z" />
    +    <glyph glyph-name="pencil-alt"
    +      unicode="&#xF303;"
    +      horiz-adv-x="512" d=" M497.9 305.9L451.8 259.8C447.1 255.1 439.5 255.1 434.8 259.8L323.8 370.8C319.1 375.5 319.1 383.1 323.8 387.8L369.9 433.9000000000001C388.6 452.6 419 452.6 437.8 433.9000000000001L497.9 373.8C516.6999999999999 355.1 516.6999999999999 324.7000000000001 497.9 305.9zM284.2 348.2L21.6 85.6L0.4 -35.9C-2.5 -52.3 11.8 -66.5 28.2 -63.7L149.7 -42.4L412.3 220.2000000000001C417 224.9 417 232.5000000000001 412.3 237.2000000000001L301.3 348.2000000000001C296.5 352.9000000000001 288.9000000000001 352.9000000000001 284.2 348.2000000000001zM124.1 108.1C118.6 113.6 118.6 122.4 124.1 127.9L278.1 281.9000000000001C283.6 287.4000000000001 292.4000000000001 287.4000000000001 297.9000000000001 281.9000000000001S303.4000000000001 267.6 297.9000000000001 262.1L143.9 108.1C138.4 102.6 129.6 102.6 124.1 108.1zM88 24H136V-12.3L71.5 -23.6L40.4 7.5L51.7 72H88V24z" />
    +    <glyph glyph-name="pencil-ruler"
    +      unicode="&#xF5AE;"
    +      horiz-adv-x="512" d=" M109.46 203.96L244.04 338.52L199.92 382.64L138.24 320.9600000000001A7.919 7.919 0 0 0 127.03 320.9600000000001L115.82 332.17C112.72 335.27 112.72 340.29 115.82 343.38L177.5 405.06L143.86 438.7100000000001C131.47 451.1 111.39 451.1 99 438.71L9.29 349C-3.09 336.61 -3.1 316.53 9.29 304.14L109.46 203.96zM497.93 320.76C516.69 339.52 516.6800000000001 369.93 497.93 388.69L452.68 433.94C433.92 452.7 403.5 452.7 384.73 433.94L338.7100000000001 387.93L451.91 274.73L497.93 320.76zM316.08 365.29L19.08 68.33L0.32 -39.11C-2.21 -53.6 10.41 -66.22 24.91 -63.67L132.36 -44.83L429.28 252.1L316.08 365.29zM502.71 79.86L469.07 113.5L407.39 51.82C404.29 48.72 399.27 48.72 396.18 51.82L384.9700000000001 63.03C381.8800000000001 66.13 381.8800000000001 71.15 384.9700000000001 74.24L446.6500000000001 135.92L402.5100000000001 180.06L267.93 45.5L368.14 -54.7C380.53 -67.09 400.61 -67.09 413 -54.7L502.71 35C515.1 47.39 515.1 67.47 502.71 79.86z" />
    +    <glyph glyph-name="people-carry"
    +      unicode="&#xF4CE;"
    +      horiz-adv-x="640" d=" M128 352C154.5 352 176 373.5 176 400S154.5 448 128 448S80 426.5 80 400S101.5 352 128 352zM512 352C538.5 352 560 373.5 560 400S538.5 448 512 448S464 426.5 464 400S485.5 352 512 352zM637.7 -20.1L593.7 89.9L552.6 43.5L550.6 25.3L578.3000000000001 -43.9C583.3000000000001 -56.4 595.3000000000001 -64 608.0000000000001 -64C612.0000000000001 -64 616.0000000000001 -63.3 619.9000000000001 -61.7C636.3000000000001 -55.1 644.3000000000001 -36.5 637.7 -20.1zM603.5 189.7L585 269.9C580.4 289.9 566.4 306.7 547.5 314.8C529 322.8 508.5 321.5 491.4 311.5C468.7 298.1 451.7 277 443.3 252.1L432 218.2L416 208V304C416 312.8 408.8 320 400 320H240C231.2 320 224 312.8 224 304V208L207.9 218.2L196.6 252.1C188.3 277.1 171.2 298.1 148.5 311.5C131.3 321.5 110.9 322.8 92.4 314.8C73.5 306.7000000000001 59.5 289.9 54.9 269.9L36.5 189.7C31.9 169.7 37.2 148.5 50.9 133L118.1 57.1L128.2 -35.5C130 -51.8 143.8 -64 160 -64C161.2 -64 162.3 -63.9 163.5 -63.8C181.1 -61.9 193.7 -46.1 191.8 -28.5L181.7 64.3C180.2 77.3 174.8 89.4 166.1 99.3L122.8 148.3L140.4 218.6L147.2000000000001 198.2C151.3000000000001 185.7000000000001 159.1000000000001 174.8 171.7000000000001 165.6L222.8000000000001 133.1C227.4000000000001 130.2000000000001 234.9000000000001 128.5 240.0000000000001 128.1H400C405.1 128.5 412.6 130.2000000000001 417.2 133.1L468.3 165.6C480.9 174.8 488.7 185.6 492.8 198.2L499.6 218.6L517.2 148.3L473.9 99.3C465.2 89.4 459.8 77.3 458.3 64.3L448.2 -28.5C446.3 -46.1 459 -61.9 476.5 -63.8C477.7 -63.9 478.8 -64 480 -64C496.1 -64 510 -51.9 511.8 -35.5L521.9 57.1L589.1 133C602.7 148.5 608.1 169.7 603.5 189.7zM46.3 89.9L2.3 -20.1C-4.3 -36.5 3.7 -55.1 20.1 -61.7C36.9 -68.3000000000001 55.2 -60.0000000000001 61.7 -43.9L89.4 25.3L87.4 43.4999999999999L46.3 89.8999999999999z" />
    +    <glyph glyph-name="percent"
    +      unicode="&#xF295;"
    +      horiz-adv-x="448" d=" M112 224C173.9 224 224 274.1 224 336S173.9 448 112 448S0 397.9 0 336S50.1 224 112 224zM112 384C138.5 384 160 362.5 160 336S138.5 288 112 288S64 309.5 64 336S85.5 384 112 384zM336 160C274.1 160 224 109.9 224 48S274.1 -64 336 -64S448 -13.9 448 48S397.9 160 336 160zM336 0C309.5 0 288 21.5 288 48S309.5 96 336 96S384 74.5 384 48S362.5 0 336 0zM392.3 447.8L423.9000000000001 447.9C443.3 448 454.8 426.1 443.6 410.1L77.4 -53.6A23.95 23.95 0 0 0 57.8 -63.8L24.4 -63.9C4.9 -63.9 -6.5 -42.0000000000001 4.7 -26.1L372.7 437.6C377.2 444 384.5 447.8 392.3 447.8z" />
    +    <glyph glyph-name="percentage"
    +      unicode="&#xF541;"
    +      horiz-adv-x="384" d=" M109.25 274.75C134.24 299.74 134.24 340.27 109.25 365.26C84.26 390.25 43.73 390.25 18.74 365.26C-6.25 340.27 -6.25 299.74 18.74 274.75C43.74 249.75 84.26 249.75 109.25 274.75zM365.25 109.26C340.26 134.25 299.73 134.25 274.74 109.26C249.75 84.27 249.75 43.74 274.74 18.75C299.73 -6.24 340.26 -6.24 365.25 18.75C390.25 43.74 390.25 84.26 365.25 109.26zM363.31 340.69L340.69 363.31C328.19 375.81 307.93 375.81 295.44 363.31L20.69 88.56C8.19 76.06 8.19 55.8 20.69 43.31L43.31 20.69C55.81 8.19 76.07 8.19 88.56 20.69L363.31 295.44C375.81 307.93 375.81 328.19 363.31 340.69z" />
    +    <glyph glyph-name="phone-slash"
    +      unicode="&#xF3DD;"
    +      horiz-adv-x="640" d=" M268.2 66.6L218.6 127.2000000000001C211.8 135.5000000000001 200.4 138.3000000000001 190.6 134.1L78.6 86.1C67.9 81.5 62.1 70 64.7 58.6L88.7 -45.4C91.2 -56.2 100.8 -64 112.1 -64C212.8 -64 305.8 -31.6 381.8 22.9L301.8 84.7C290.9 78.2 279.7 72 268.2 66.6zM633.8 -10.1L475.1 112.5C537.9 191.6 576 291.1 576 400C576 411.2 568.3 420.9 557.4 423.4L453.4 447.4C442.1 450 430.5 444.1 425.9 433.5L377.9 321.5C373.7 311.7 376.5 300.2 384.8 293.5L445.4 243.9C433.2 217.8 417.5 193.6 399.4 171.1L45.5 444.6C38.5 450 28.5 448.8 23 441.8L3.4 416.6C-2 409.6 -0.8 399.6 6.2 394.2L594.6 -60.5C601.6 -65.9 611.6 -64.7 617.1 -57.7L636.7 -32.4C642.1 -25.6 640.8000000000001 -15.5 633.8000000000001 -10.1z" />
    +    <glyph glyph-name="phone-square"
    +      unicode="&#xF098;"
    +      horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM94 32C86.967 32 80.943 36.873 79.384 43.627L64.386 108.627A15 15 0 0 0 73.093 125.787L143.091 155.7860000000001A15 15 0 0 0 160.609 151.4970000000001L191.606 113.6120000000001C240.55 136.5750000000001 279.903 176.4700000000001 302.387 224.3920000000001L264.501 255.3890000000001A15.000999999999998 15.000999999999998 0 0 0 260.212 272.9070000000001L290.212 342.9050000000001A15 15 0 0 0 307.372 351.6120000000001L372.372 336.6140000000001A14.997000000000002 14.997000000000002 0 0 0 384 322C384 161.708 254.055 32 94 32z" />
    +    <glyph glyph-name="phone-volume"
    +      unicode="&#xF2A0;"
    +      horiz-adv-x="384" d=" M97.333 -58.966C-32.541 70.908 -32.348 281.286 97.333 410.967C103.031 416.665 111.86 417.599 118.596 413.389L183.413 372.876A17.187 17.187 0 0 0 190.262 351.918L157.854 270.897A17.188 17.188 0 0 0 140.185 260.178L84.375 265.7580000000001C63.324 207.497 63.763 143.287 84.375 86.2430000000001L140.186 91.8240000000001A17.188 17.188 0 0 0 157.855 81.1050000000001L190.263 0.0830000000001A17.188 17.188 0 0 0 183.414 -20.8749999999999L118.597 -61.3879999999999A17.19 17.19 0 0 0 97.333 -58.9659999999998zM247.126 352.527C258.9580000000001 332.48 258.9580000000001 307.519 247.126 287.472C243.176 280.779 234.018 279.513 228.408 284.891L222.433 290.617C218.522 294.365 217.64 300.239 220.172 305.027A32.063 32.063 0 0 1 220.172 334.972C217.6390000000001 339.76 218.522 345.634 222.433 349.382L228.408 355.108C234.0180000000001 360.486 243.176 359.22 247.126 352.527zM338.913 443.714C399.053 372.11 399.005 267.832 338.913 196.286C334.439 190.959 326.3830000000001 190.54 321.361 195.353L315.563 200.91C311.003 205.281 310.586 212.439 314.633 217.289C364.32 276.827 364.279 363.222 314.633 422.711C310.586 427.561 311.002 434.719 315.563 439.09L321.361 444.647C326.383 449.46 334.439 449.041 338.913 443.714zM292.9410000000001 398.773C328.9910000000001 352.451 329.0490000000001 287.624 292.9410000000001 241.227C288.5510000000001 235.586 280.2440000000001 234.976 275.0850000000001 239.923L269.2670000000001 245.502C264.8670000000001 249.721 264.2690000000001 256.597 267.9820000000001 261.433C294.5180000000001 295.997 294.516 344.005 267.9820000000001 378.567C264.269 383.403 264.867 390.278 269.2670000000001 394.4980000000001L275.0850000000001 400.077C280.2440000000001 405.024 288.5510000000001 404.414 292.9410000000001 398.773z" />
    +    <glyph glyph-name="phone"
    +      unicode="&#xF095;"
    +      horiz-adv-x="512" d=" M493.4 423.4L389.4 447.4C378.1 450 366.5 444.1 361.9 433.5L313.9 321.5C309.7 311.7 312.5 300.2 320.8 293.5L381.4 243.9C345.4 167.2 282.5 103.4 204.2 66.7000000000001L154.6 127.3000000000001C147.8 135.6000000000001 136.4 138.4000000000001 126.6 134.2000000000001L14.6 86.2000000000001C3.9 81.5 -2 69.9 0.6 58.6L24.6 -45.4C27.1 -56.2 36.7 -64 48 -64C304.1 -64 512 143.5 512 400C512 411.2 504.3 420.9 493.4 423.4z" />
    +    <glyph glyph-name="piggy-bank"
    +      unicode="&#xF4D3;"
    +      horiz-adv-x="576" d=" M560 224H530.5C521.7 244 508.9 261.7 493.1 276.5L512 352H480C450.6 352 424.6 338.5 407 317.7C399.4 318.8 391.9 320 384 320H256C178.6 320 114.1 265 99.2 192H56C41.2 192 29.5 205.5 32.5 220.8C34.7 232.2 45.4 240 57 240H58C61.3 240 64 242.7 64 246V266C64 269.3 61.3 272 58 272C29.5 272 4.1 251.6 0.5 223.4C-3.9 189.2 22.7 160 56 160H96C96 107.8 121.4 61.9 160 32.7V-48C160 -56.8 167.2 -64 176 -64H240C248.8 -64 256 -56.8 256 -48V0H384V-48C384 -56.8 391.2 -64 400 -64H464C472.8 -64 480 -56.8 480 -48V32.7C491.8 41.6 502.3 52.1 511.3 64H560C568.8 64 576 71.2 576 80V208C576 216.8 568.8 224 560 224zM432 160C423.2 160 416 167.2 416 176S423.2 192 432 192S448 184.8 448 176S440.8 160 432 160zM256 352H384C389.4 352 394.7 351.6 399.9 351.2C399.9 351.5 400 351.7 400 352C400 405 357 448 304 448S208 405 208 352C208 349.9 208.5 347.9 208.6 345.8C223.8 349.7 239.6 352 256 352z" />
    +    <glyph glyph-name="pills"
    +      unicode="&#xF484;"
    +      horiz-adv-x="576" d=" M112 416C50.1 416 0 365.9 0 304V80C0 18.1 50.1 -32 112 -32S224 18.1 224 80V304C224 365.9 173.9 416 112 416zM160 192H64V304C64 330.5 85.5 352 112 352S160 330.5 160 304V192zM299.7 221.7C296.2 225.2 290.3 224.8 287.4 220.9C242.1 158.4 247 70.8 303.3 14.5C359.6 -41.8 447.2 -46.7 509.6999999999999 -1.4C513.6999999999999 1.5 513.9999999999999 7.4 510.4999999999999 10.9L299.7 221.7zM529.5 240.7C473.2 297 385.6 301.9 323.1 256.6C319.1 253.7 318.8 247.8 322.3 244.3L533.1 33.5C536.6 30 542.5 30.4 545.4 34.3C590.6999999999999 96.9 585.9 184.4 529.5 240.7z" />
    +    <glyph glyph-name="place-of-worship"
    +      unicode="&#xF67F;"
    +      horiz-adv-x="640" d=" M620.61 81.45L512 128V-64H624C632.84 -64 640 -56.84 640 -48V52.04A32 32 0 0 1 620.61 81.4500000000001zM0 52.04V-48C0 -56.84 7.16 -64 16 -64H128V128L19.39 81.45A32 32 0 0 1 0 52.04zM464.46 201.32L416 230.4V345.37C416 353.86 412.63 361.99 406.62 368L331.31 443.31C325.06 449.56 314.93 449.56 308.69 443.31L233.38 368C227.38 362 224 353.86 224 345.37V230.4L175.54 201.32A31.997 31.997 0 0 1 160 173.88V-64H256V32C256 67.35 284.6600000000001 96 320 96S384 67.35 384 32V-64H480V173.88C480 185.12 474.1 195.54 464.46 201.32z" />
    +    <glyph glyph-name="plane-arrival"
    +      unicode="&#xF5AF;"
    +      horiz-adv-x="640" d=" M624 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H624C632.84 -64 640 -56.84 640 -48V-16C640 -7.16 632.84 0 624 0zM44.81 242.34L133.55 162.34A62.60699999999999 62.60699999999999 0 0 1 159.02 148.41L446.62 70.0600000000001C473.1 62.8500000000001 501.18 61.34 527.62 68.7000000000001C557.29 76.97 571.06 89.91 574.87 104.41C578.7 118.91 573.14 137.12 551.5 159.37C532.22 179.19 507.15 192.16 480.67 199.37L383.1600000000001 225.93L282.8 417.78C281.29 423.59 276.85 428.13 271.14 429.69L206.05 447.42C195.49 450.3 185.15 442.1 185.34 430.98L233.26 266.77L131.06 294.61L103.47 362.49C101.54 367.38 97.46 371.06 92.45 372.42L52.72 383.25C42.38 386.07 32.19 378.25 32 367.37L32.23 265.5900000000001C32.42 256.68 38.26 248.25 44.81 242.34z" />
    +    <glyph glyph-name="plane-departure"
    +      unicode="&#xF5B0;"
    +      horiz-adv-x="640" d=" M624 0H16C7.16 0 0 -7.16 0 -16V-48C0 -56.84 7.16 -64 16 -64H624C632.84 -64 640 -56.84 640 -48V-16C640 -7.16 632.84 0 624 0zM80.55 106.73C86.83 99.89 95.65 96.01 104.88 96.02L235.42 96.2000000000001A65.62 65.62 0 0 1 265.06 103.3200000000001L556.02 250.9700000000001C582.76 264.5400000000001 606.73 283.9100000000001 623.04 309.2800000000001C641.3499999999999 337.7600000000001 643.3399999999999 358.3700000000001 636.11 372.9300000000001C628.9 387.5000000000001 611.37 398.2000000000001 577.86 400.3800000000001C548.01 402.3200000000001 518.32 394.4600000000001 491.58 380.9000000000001L393.0700000000001 330.9100000000001L174.3700000000001 412.9700000000001A17.799 17.799 0 0 1 156.3700000000001 414.0800000000001L90.62 380.71C79.95 375.3 77.37 361.06 85.45 352.18L241.67 254.08L138.46 201.7L66.11 238.17A17.804 17.804 0 0 1 50.04 238.15L9.91 217.78C-0.53 212.48 -3.28 198.66 4.34 189.7L80.55 106.73z" />
    +    <glyph glyph-name="plane"
    +      unicode="&#xF072;"
    +      horiz-adv-x="576" d=" M480 256H365.71L260.61 439.94A16.014 16.014 0 0 1 246.71 448H181.21C170.58 448 162.91 437.83 165.83 427.61L214.86 256H112L68.8 313.6C65.78 317.63 61.03 320 56 320H16.01C5.6 320 -2.04 310.2200000000001 0.49 300.12L32 192L0.49 83.88C-2.04 73.78 5.6 64 16.01 64H56C61.04 64 65.78 66.37 68.8 70.4L112 128H214.86L165.83 -43.6C162.91 -53.82 170.58 -64 181.21 -64H246.71C252.45 -64 257.75 -60.92 260.6 -55.94L365.71 128H480C515.35 128 576 156.65 576 192S515.35 256 480 256z" />
    +    <glyph glyph-name="play-circle"
    +      unicode="&#xF144;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM371.7 168L195.7 67C179.9 58.2 160 69.5 160 88V296C160 314.4 179.8 325.8 195.7 317L371.7 210C388.1 200.8 388.1 177.1 371.7 168z" />
    +    <glyph glyph-name="play"
    +      unicode="&#xF04B;"
    +      horiz-adv-x="448" d=" M424.4 233.3L72.4 441.4C43.8 458.3 0 441.9 0 400.1V-16C0 -53.5 40.7 -76.1 72.4 -57.3L424.4 150.7C455.8 169.2 455.9 214.8 424.4 233.3z" />
    +    <glyph glyph-name="plug"
    +      unicode="&#xF1E6;"
    +      horiz-adv-x="384" d=" M256 304V416C256 433.673 270.327 448 288 448S320 433.673 320 416V304H256zM368 288H16C7.163 288 0 280.837 0 272V240C0 231.163 7.163 224 16 224H32V192C32 114.594 86.969 50.029 160 35.204V-64H224V35.204C297.031 50.029 352 114.594 352 192V224H368C376.837 224 384 231.163 384 240V272C384 280.837 376.837 288 368 288zM128 304V416C128 433.673 113.673 448 96 448S64 433.673 64 416V304H128z" />
    +    <glyph glyph-name="plus-circle"
    +      unicode="&#xF055;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM400 164C400 157.4 394.6 152 388 152H296V60C296 53.4 290.6 48 284 48H228C221.4 48 216 53.4 216 60V152H124C117.4 152 112 157.4 112 164V220C112 226.6 117.4 232 124 232H216V324C216 330.6 221.4 336 228 336H284C290.6 336 296 330.6 296 324V232H388C394.6 232 400 226.6 400 220V164z" />
    +    <glyph glyph-name="plus-square"
    +      unicode="&#xF0FE;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM368 164C368 157.4 362.6 152 356 152H264V60C264 53.4 258.6 48 252 48H196C189.4 48 184 53.4 184 60V152H92C85.4 152 80 157.4 80 164V220C80 226.6 85.4 232 92 232H184V324C184 330.6 189.4 336 196 336H252C258.6 336 264 330.6 264 324V232H356C362.6 232 368 226.6 368 220V164z" />
    +    <glyph glyph-name="plus"
    +      unicode="&#xF067;"
    +      horiz-adv-x="448" d=" M416 240H272V384C272 401.67 257.67 416 240 416H208C190.33 416 176 401.67 176 384V240H32C14.33 240 0 225.67 0 208V176C0 158.33 14.33 144 32 144H176V0C176 -17.67 190.33 -32 208 -32H240C257.67 -32 272 -17.67 272 0V144H416C433.67 144 448 158.33 448 176V208C448 225.67 433.67 240 416 240z" />
    +    <glyph glyph-name="podcast"
    +      unicode="&#xF2CE;"
    +      horiz-adv-x="448" d=" M267.429 -40.563C262.286 -59.573 242.858 -64 224 -64C205.143 -64 185.714 -59.573 180.572 -40.563C172.927 -12.134 160 59.102 160 92.25C160 127.406 191.142 136 224 136S288 127.406 288 92.25C288 59.301 275.129 -11.929 267.429 -40.563zM156.867 159.446C138.174 177.754 126.909 203.619 128.083 232.045C130.137 281.769 170.478 322.0010000000001 220.207 323.9260000000001C274.862 326.0420000000001 320 282.193 320 228C320 201.173 308.936 176.884 291.134 159.448C288.459 156.828 288.733 152.462 291.762 150.261C301.074 143.496 308.222 134.918 312.996 124.898C314.737 121.244 319.493 120.238 322.445 123.007C351.271 150.05 368.998 188.79 367.956 231.572C366.101 307.778 304.361 369.78 228.163 371.9409999999999C146.869 374.247 80 308.785 80 228C80 186.639 97.532 149.3 125.55 123.011C128.503 120.24 133.261 121.241 135.003 124.898C139.777 134.919 146.926 143.496 156.238 150.261C159.267 152.461 159.542 156.827 156.867 159.446zM224 448C100.204 448 0 347.815 0 224C0 134.008 52.602 58.353 125.739 22.592C130.072 20.474 135.006 24.136 134.274 28.902C131.892 44.414 129.932 59.848 128.868 73.241C128.722 75.077 127.719 76.727 126.19 77.753C78.79 109.559 47.626 163.769 48.003 225.1C48.595 321.337 127.293 399.748 223.532 399.999C320.793 400.253 400 321.203 400 224C400 162.068 367.842 107.51 319.35 76.133C318.351 62.0960000000001 316.281 45.545 313.726 28.903C312.994 24.136 317.929 20.474 322.261 22.593C395.227 58.273 448 133.813 448 224C448 347.795 347.815 448 224 448zM224 288C188.654 288 160 259.346 160 224S188.654 160 224 160S288 188.654 288 224S259.346 288 224 288z" />
    +    <glyph glyph-name="poll-h"
    +      unicode="&#xF682;"
    +      horiz-adv-x="448" d=" M448 16V368C448 394.5 426.5 416 400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16zM112 256C103.16 256 96 263.16 96 272V304C96 312.8400000000001 103.16 320 112 320H240C248.84 320 256 312.8400000000001 256 304V272C256 263.16 248.84 256 240 256H112zM112 160C103.16 160 96 167.16 96 176V208C96 216.84 103.16 224 112 224H336C344.84 224 352 216.84 352 208V176C352 167.16 344.84 160 336 160H112zM112 64C103.16 64 96 71.16 96 80V112C96 120.84 103.16 128 112 128H176C184.84 128 192 120.84 192 112V80C192 71.16 184.84 64 176 64H112z" />
    +    <glyph glyph-name="poll"
    +      unicode="&#xF681;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM160 80C160 71.16 152.84 64 144 64H112C103.16 64 96 71.16 96 80V208C96 216.84 103.16 224 112 224H144C152.84 224 160 216.84 160 208V80zM256 80C256 71.16 248.84 64 240 64H208C199.16 64 192 71.16 192 80V304C192 312.8400000000001 199.16 320 208 320H240C248.84 320 256 312.8400000000001 256 304V80zM352 80C352 71.16 344.84 64 336 64H304C295.1600000000001 64 288 71.16 288 80V144C288 152.84 295.1600000000001 160 304 160H336C344.84 160 352 152.84 352 144V80z" />
    +    <glyph glyph-name="poo"
    +      unicode="&#xF2FE;"
    +      horiz-adv-x="512" d=" M451.4 78.9C468.7 92 480 112.6 480 136C480 175.8 447.8 208 408 208H393.9C407.3 219.7 416 236.8 416 256C416 291.3 387.3 320 352 320H346.1C349.7000000000001 330.1 352 340.7 352 352C352 405 309 448 256 448C250.8 448 245.8 447.3 240.9 446.5C250.3 433.4 256 417.4 256 400C256 355.8 220.2 320 176 320H160C124.7 320 96 291.3 96 256C96 236.8 104.7 219.7 118.1 208H104C64.2 208 32 175.8 32 136C32 112.6 43.3 92 60.6 78.9C26.3 73.4 0 43.9 0 8C0 -31.8 32.2 -64 72 -64H440C479.8 -64 512 -31.8 512 8C512 43.9 485.7 73.4 451.4 78.9zM192 192C209.7 192 224 177.7 224 160S209.7 128 192 128S160 142.3 160 160S174.3 192 192 192zM351.5 53C341 25.1 293 0 256 0S171 25.1 160.5 53C158.5 58.3 162.5 64 168.3 64H343.7000000000001C349.5000000000001 64 353.5000000000001 58.3 351.5000000000001 53zM320 128C302.3 128 288 142.3 288 160S302.3 192 320 192S352 177.7 352 160S337.7 128 320 128z" />
    +    <glyph glyph-name="poop"
    +      unicode="&#xF619;"
    +      horiz-adv-x="512" d=" M451.36 78.86C468.66 92.01 480 112.59 480 136C480 175.77 447.76 208 408 208H393.93C407.35 219.73 416 236.78 416 256C416 291.35 387.35 320 352 320H346.12C349.69 330.05 352 340.7200000000001 352 352C352 405.02 309.02 448 256 448C250.83 448 245.85 447.26 240.89 446.48C250.31 433.36 256 417.38 256 400C256 355.82 220.18 320 176 320H160C124.65 320 96 291.35 96 256C96 236.78 104.65 219.73 118.07 208H104C64.24 208 32 175.77 32 136C32 112.59 43.34 92.01 60.64 78.86C26.31 73.38 0 43.88 0 8C0 -31.76 32.24 -64 72 -64H440C479.76 -64 512 -31.76 512 8C512 43.88 485.69 73.38 451.36 78.86z" />
    +    <glyph glyph-name="portrait"
    +      unicode="&#xF3E0;"
    +      horiz-adv-x="384" d=" M336 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V400C384 426.5 362.5 448 336 448zM192 320C227.3 320 256 291.3 256 256S227.3 192 192 192S128 220.7 128 256S156.7 320 192 320zM304 83.2C304 72.6 294 64 281.6 64H102.4C90 64 80 72.6 80 83.2V102.4C80 134.2 110.1 160 147.2 160H152.2C164.5 154.9 177.9 152 192 152S219.6 154.9 231.8 160H236.8C273.9000000000001 160 304 134.2 304 102.4V83.2z" />
    +    <glyph glyph-name="pound-sign"
    +      unicode="&#xF154;"
    +      horiz-adv-x="320" d=" M308 96H262.505C255.878 96 250.505 90.627 250.505 84V33.152H128V160H212C218.627 160 224 165.373 224 172V212C224 218.627 218.627 224 212 224H128V287.556C128 319.822 152.562 344.642 189.792 344.642C213.45 344.642 235.67 333.137 247.444 325.793C252.5950000000001 322.58 259.332 323.742 263.132 328.478L291.625 363.991C295.858 369.267 294.904 376.996 289.506 381.072C273.124 393.44 236.576 416 187.931 416C106.026 416 48 363.258 48 290.039V224H20C13.373 224 8 218.627 8 212V172C8 165.373 13.373 160 20 160H48V32H12C5.373 32 0 26.627 0 20V-20C0 -26.627 5.373 -32 12 -32H308C314.627 -32 320 -26.627 320 -20V84C320 90.627 314.627 96 308 96z" />
    +    <glyph glyph-name="power-off"
    +      unicode="&#xF011;"
    +      horiz-adv-x="512" d=" M400 393.9C463 348.9 504 275.3 504 192C504 55.2 393.2 -55.7 256.5 -56C120 -56.3 8.2 55 8 191.6C7.9 274.9 48.9 348.7 111.8 393.8C123.5 402.1 139.8 398.6 146.8 386.1L162.6 358C168.5 347.5 165.7 334.2 156 327C114.5 296.2 88 247.4 88 192.1C87.9 99.8 162.5 24 256 24C347.6 24 424.6 98.2 424 193.1C423.7 244.9 399.3 294.9 355.9 327.1C346.2 334.3 343.5 347.6 349.4 358L365.2 386.1C372.2 398.5 388.4 402.2 400 393.9zM296 184V424C296 437.3 285.3 448 272 448H240C226.7 448 216 437.3 216 424V184C216 170.7 226.7 160 240 160H272C285.3 160 296 170.7 296 184z" />
    +    <glyph glyph-name="pray"
    +      unicode="&#xF683;"
    +      horiz-adv-x="384" d=" M256 320C291.35 320 320 348.65 320 384S291.35 448 256 448S192 419.35 192 384S220.65 320 256 320zM225.37 150.25C239.43 133.53 264.37 131.16 281.3400000000001 145.03L369.3400000000001 217.05C386.43 231.03 388.93 256.24 374.9600000000001 273.33C360.99 290.44 335.7700000000001 292.92 318.6500000000001 278.95L261.2100000000001 231.95L222.3000000000001 278.26C206.8600000000001 296.65 183.0800000000001 306.18 158.3000000000001 303.59C134.1100000000001 301.11 113.0500000000001 287.32 101.93 266.67L52.56 174.64C29.16 131 43.87 78.27 86.75 50.89L131.56 16H40C17.91 16 0 -1.91 0 -24S17.91 -64 40 -64H248C282.08 -64 301.77 -21.21 276.28 4.28L166.42 114.14L201.22 179.01L225.37 150.25z" />
    +    <glyph glyph-name="praying-hands"
    +      unicode="&#xF684;"
    +      horiz-adv-x="640" d=" M272 256.0900000000001C254.4 256.0900000000001 240 241.69 240 224.09V144.09C240 135.2500000000001 232.84 128.09 224 128.09S208 135.2500000000001 208 144.09V220.6400000000001C208 238.0300000000001 212.72 255.1100000000001 221.69 270.0300000000001L299.44 399.62C308.53 414.7800000000001 303.63 434.4300000000001 288.47 443.5300000000001C274.02 452.2 255.75 447.8300000000001 246.17 434.3200000000001C245.97 434.0900000000001 245.55 434.11 245.38 433.8400000000001L128.12 257.9400000000001C117.56 242.1 112 223.69 112 204.71V124.48L21.88 94.44A31.974000000000004 31.974000000000004 0 0 1 0 64.09V-31.91C0 -42.73 8.52 -63.91 32 -63.91C34.69 -63.91 37.41 -63.57 40.06 -62.88L219.25 -16.26C269.1600000000001 -1.99 304 44.2 304 96.09V224.09C304 241.69 289.6 256.09 272 256.09zM618.12 94.36L528 124.4V204.63C528 223.61 522.44 242.02 511.88 257.86L394.62 433.75C394.44 434.02 394.0300000000001 433.99 393.83 434.23C384.25 447.74 365.98 452.11 351.53 443.44C336.37 434.35 331.47 414.69 340.56 399.53L418.31 269.94C427.28 255.02 432 237.94 432 220.55V144C432 135.16 424.8399999999999 128 416 128S400 135.16 400 144V224C400 241.6 385.6 256 368 256S336 241.6 336 224V96C336 44.11 370.8399999999999 -2.08 420.75 -16.34L599.9399999999999 -62.96C602.5999999999999 -63.65 605.3199999999999 -63.99 607.9999999999999 -63.99C631.4799999999999 -63.99 639.9999999999999 -42.81 639.9999999999999 -31.99V64.01C639.9999999999999 77.78 631.1899999999999 90 618.1199999999999 94.36z" />
    +    <glyph glyph-name="prescription-bottle-alt"
    +      unicode="&#xF486;"
    +      horiz-adv-x="384" d=" M360 448H24C10.8 448 0 437.2 0 424V376C0 362.8 10.8 352 24 352H360C373.2 352 384 362.8 384 376V424C384 437.2 373.2 448 360 448zM32 -32C32 -49.6 46.4 -64 64 -64H320C337.6 -64 352 -49.6 352 -32V320H32V-32zM96 152C96 156.4 99.6 160 104 160H160V216C160 220.4 163.6 224 168 224H216C220.4 224 224 220.4 224 216V160H280C284.4 160 288 156.4 288 152V104C288 99.6 284.4 96 280 96H224V40C224 35.6 220.4 32 216 32H168C163.6 32 160 35.6 160 40V96H104C99.6 96 96 99.6 96 104V152z" />
    +    <glyph glyph-name="prescription-bottle"
    +      unicode="&#xF485;"
    +      horiz-adv-x="384" d=" M32 256H152C156.4 256 160 252.4 160 248V232C160 227.6 156.4 224 152 224H32V160H152C156.4 160 160 156.4 160 152V136C160 131.6 156.4 128 152 128H32V64H152C156.4 64 160 60.4 160 56V40C160 35.6 156.4 32 152 32H32V-32C32 -49.6 46.4 -64 64 -64H320C337.6 -64 352 -49.6 352 -32V320H32V256zM360 448H24C10.8 448 0 437.2 0 424V376C0 362.8 10.8 352 24 352H360C373.2 352 384 362.8 384 376V424C384 437.2 373.2 448 360 448z" />
    +    <glyph glyph-name="prescription"
    +      unicode="&#xF5B1;"
    +      horiz-adv-x="384" d=" M301.26 96L379.32 174.06C385.57 180.31 385.57 190.44 379.32 196.69L356.69 219.32C350.44 225.57 340.31 225.57 334.06 219.32L256 141.26L172.04 225.22C219.31 231.2 256 271.11 256 320C256 373.02 213.02 416 160 416H16C7.16 416 0 408.8400000000001 0 400V144C0 135.16 7.16 128 16 128H48C56.84 128 64 135.16 64 144V224H82.75L210.75 96L132.69 17.94C126.44 11.69 126.44 1.56 132.69 -4.69L155.32 -27.32C161.57 -33.57 171.7 -33.57 177.95 -27.32L256 50.75L334.06 -27.31C340.31 -33.56 350.44 -33.56 356.69 -27.31L379.32 -4.68C385.57 1.57 385.57 11.7 379.32 17.95L301.26 96zM64 352H160C177.64 352 192 337.64 192 320S177.64 288 160 288H64V352z" />
    +    <glyph glyph-name="print"
    +      unicode="&#xF02F;"
    +      horiz-adv-x="512" d=" M448 256V370.75C448 379.24 444.63 387.37 438.63 393.38L393.37 438.63C387.37 444.63 379.23 448 370.74 448H96C78.33 448 64 433.67 64 416V256C28.65 256 0 227.35 0 192V80C0 71.16 7.16 64 16 64H64V-32C64 -49.67 78.33 -64 96 -64H416C433.67 -64 448 -49.67 448 -32V64H496C504.84 64 512 71.16 512 80V192C512 227.35 483.35 256 448 256zM384 0H128V96H384V0zM384 224H128V384H320V336C320 327.16 327.1600000000001 320 336 320H384V224zM432 152C418.75 152 408 162.75 408 176C408 189.26 418.75 200 432 200S456 189.26 456 176C456 162.75 445.25 152 432 152z" />
    +    <glyph glyph-name="procedures"
    +      unicode="&#xF487;"
    +      horiz-adv-x="640" d=" M528 224H272C263.2 224 256 216.8 256 208V64H64V304C64 312.8 56.8 320 48 320H16C7.2 320 0 312.8 0 304V-48C0 -56.8 7.2 -64 16 -64H48C56.8 -64 64 -56.8 64 -48V0H576V-48C576 -56.8 583.2 -64 592 -64H624C632.8 -64 640 -56.8 640 -48V112C640 173.9 589.9 224 528 224zM136 352H262.1L289.7000000000001 296.8C295.6 285 312.4000000000001 285 318.3000000000001 296.8L368 396.2L390.1 352H512C520.8 352 528 359.2 528 368S520.8 384 512 384H409.9L382.3 439.2C376.4 451 359.6 451 353.7 439.2L304 339.8L284.1 379.6C282.7000000000001 382.3 280 384 276.9000000000001 384H136C131.6 384 128 380.4 128 376V360C128 355.6 131.6 352 136 352zM160 96C195.3 96 224 124.7 224 160S195.3 224 160 224S96 195.3 96 160S124.7 96 160 96z" />
    +    <glyph glyph-name="project-diagram"
    +      unicode="&#xF542;"
    +      horiz-adv-x="640" d=" M384 128H256C238.33 128 224 113.67 224 96V-32C224 -49.67 238.33 -64 256 -64H384C401.67 -64 416 -49.67 416 -32V96C416 113.67 401.67 128 384 128zM192 416C192 433.67 177.67 448 160 448H32C14.33 448 0 433.67 0 416V288C0 270.33 14.33 256 32 256H127.72L200.88 127.96C211.98 147.02 232.4 160 256 160H256.28L192 272.49V320H416V384H192V416zM608 448H480C462.33 448 448 433.67 448 416V288C448 270.33 462.33 256 480 256H608C625.67 256 640 270.3300000000001 640 288V416C640 433.67 625.67 448 608 448z" />
    +    <glyph glyph-name="puzzle-piece"
    +      unicode="&#xF12E;"
    +      horiz-adv-x="576" d=" M519.442 159.349C477.923 159.349 459.942 127.756 437.384 127.756C377.409 127.756 432 304 432 304S235.712 224 235.712 307.2970000000001C235.712 343.124 272 353.5470000000001 272 393.282C272 428.784 243.885 448 210.539 448C175.885 448 144.173 429.109 144.173 391.654C144.173 350.29 175.884 332.377 175.884 309.904C175.885 240.281 0 281.242 0 281.242V-51.995S178.635 -93.042 178.635 -23.333C178.635 -0.86 138.635 16.774 138.635 58.138C138.635 95.594 167.885 114.484 202.212 114.484C235.885 114.484 264 95.268 264 59.767C264 20.032 227.712 9.609 227.712 -26.218C227.712 -87.021 357.387 -51.948 408.942 -51.948C408.942 -51.948 374.217 68.153 434.769 68.153C470.731 68.153 481.192 32.001 521.077 32.001C556.712 32 576 60.01 576 93.557C576 127.756 557.038 159.3490000000001 519.442 159.3490000000001z" />
    +    <glyph glyph-name="qrcode"
    +      unicode="&#xF029;"
    +      horiz-adv-x="448" d=" M0 224H192V416H0V224zM64 352H128V288H64V352zM256 416V224H448V416H256zM384 288H320V352H384V288zM0 -32H192V160H0V-32zM64 96H128V32H64V96zM416 160H448V32H352V64H320V-32H256V160H352V128H416V160zM416 0H448V-32H416V0zM352 0H384V-32H352V0z" />
    +    <glyph glyph-name="question-circle"
    +      unicode="&#xF059;"
    +      horiz-adv-x="512" d=" M504 192C504 55.003 392.957 -56 256 -56S8 55.003 8 192C8 328.9170000000001 119.043 440 256 440S504 328.9170000000001 504 192zM262.655 358C208.158 358 173.4 335.043 146.106 294.242C142.57 288.956 143.753 281.827 148.821 277.984L183.52 251.674C188.725 247.727 196.141 248.666 200.185 253.796C218.049 276.454 230.298 289.593 257.488 289.593C277.9169999999999 289.593 303.1859999999999 276.445 303.1859999999999 256.635C303.1859999999999 241.659 290.8229999999999 233.968 270.652 222.659C247.128 209.472 216 193.059 216 152V148C216 141.373 221.373 136 228 136H284C290.627 136 296 141.373 296 148V149.333C296 177.795 379.1860000000001 178.98 379.1860000000001 256C379.1860000000001 314.0020000000001 319.021 358 262.6550000000001 358zM256 110C230.635 110 210 89.365 210 64C210 38.636 230.635 18 256 18S302 38.636 302 64C302 89.365 281.365 110 256 110z" />
    +    <glyph glyph-name="question"
    +      unicode="&#xF128;"
    +      horiz-adv-x="384" d=" M202.021 448C122.202 448 70.503 415.2970000000001 29.914 356.974C22.551 346.394 24.821 331.8880000000001 35.092 324.1L78.23 291.391C88.603 283.526 103.362 285.365 111.483 295.539C136.532 326.92 155.113 344.988 194.24 344.988C225.004 344.988 263.0560000000001 325.189 263.0560000000001 295.357C263.0560000000001 272.805 244.4390000000001 261.223 214.0630000000001 244.193C178.6400000000001 224.333 131.7640000000001 199.617 131.7640000000001 137.788V128C131.7640000000001 114.745 142.5090000000001 104 155.7640000000001 104H228.2350000000001C241.4900000000001 104 252.2350000000001 114.745 252.2350000000001 128V133.773C252.2350000000001 176.6330000000001 377.5030000000001 178.418 377.5030000000001 294.4000000000001C377.504 381.7440000000001 286.902 448 202.021 448zM192 74.541C153.804 74.541 122.729 43.466 122.729 5.27C122.729 -32.925 153.804 -64 192 -64S261.271 -32.925 261.271 5.271S230.1960000000001 74.541 192 74.541z" />
    +    <glyph glyph-name="quidditch"
    +      unicode="&#xF458;"
    +      horiz-adv-x="640" d=" M256.5 231.2L343.2 122S326.6 19.6 266.6 -28.1C206.7 -75.7999999999999 0 -62.2 0 -62.2S3.8 -39.1 11 -6.8L105.6 105.4C109.6 110.1 104.7 117 99 114.9L38.6 92.8C53 134.5 71.3 172.8 93.2 190.3C153.1 238.1 256.5 231.2 256.5 231.2zM494.5 96.2C450.5 96.2 414.7 60.4 414.7 16.3C414.7 -27.8000000000001 450.4 -63.6 494.5 -63.6C538.6 -63.6 574.3 -27.8 574.3 16.3C574.3 60.4999999999999 538.5 96.1999999999999 494.4999999999999 96.1999999999999zM636.5 417L616.7 442C611.2 448.9 601.2 450 594.3000000000001 444.6L361.8 266.7L327.7 309.7C322.6 316.1 312.6 314.9 309.1 307.5L283.8 252.9L370.5 143.7L429.3 156.1C437.3 157.8 440.7 167.3 435.6 173.7L401.5 216.6L634 394.5C640.9 400 642 410.1 636.5 417z" />
    +    <glyph glyph-name="quote-left"
    +      unicode="&#xF10D;"
    +      horiz-adv-x="512" d=" M464 192H384V256C384 291.3 412.7 320 448 320H456C469.3 320 480 330.7 480 344V392C480 405.3 469.3 416 456 416H448C359.6 416 288 344.4 288 256V16C288 -10.5 309.5 -32 336 -32H464C490.5 -32 512 -10.5 512 16V144C512 170.5 490.5 192 464 192zM176 192H96V256C96 291.3 124.7 320 160 320H168C181.3 320 192 330.7 192 344V392C192 405.3 181.3 416 168 416H160C71.6 416 0 344.4 0 256V16C0 -10.5 21.5 -32 48 -32H176C202.5 -32 224 -10.5 224 16V144C224 170.5 202.5 192 176 192z" />
    +    <glyph glyph-name="quote-right"
    +      unicode="&#xF10E;"
    +      horiz-adv-x="512" d=" M464 416H336C309.5 416 288 394.5 288 368V240C288 213.5 309.5 192 336 192H416V128C416 92.7 387.3 64 352 64H344C330.7 64 320 53.3 320 40V-8C320 -21.3 330.7 -32 344 -32H352C440.4 -32 512 39.6 512 128V368C512 394.5 490.5 416 464 416zM176 416H48C21.5 416 0 394.5 0 368V240C0 213.5 21.5 192 48 192H128V128C128 92.7 99.3 64 64 64H56C42.7 64 32 53.3 32 40V-8C32 -21.3 42.7 -32 56 -32H64C152.4 -32 224 39.6 224 128V368C224 394.5 202.5 416 176 416z" />
    +    <glyph glyph-name="quran"
    +      unicode="&#xF687;"
    +      horiz-adv-x="448" d=" M448 89.6V422.4C448 438.4 438.4 448 422.4 448H96C41.6 448 0 406.4 0 352V32C0 -22.4 41.6 -64 96 -64H422.4C435.2 -64 448 -54.4 448 -38.4V-22.4C448 -16 444.8 -9.6 438.4 -3.2C435.2 12.8 435.2 57.6 438.4 70.4C444.8 73.6 448 80 448 89.6zM301.08 302.18C301.68 303.39 302.84 304 304 304S306.32 303.39 306.92 302.18L318.1 279.53L343.1 275.9C345.7700000000001 275.51 346.8400000000001 272.23 344.9100000000001 270.3400000000001L326.8200000000001 252.71L331.0900000000001 227.82C331.4500000000001 225.71 329.7800000000001 224 327.8800000000001 224C327.3800000000001 224 326.8600000000001 224.12 326.3600000000001 224.38L304 236.13L281.64 224.38C281.14 224.12 280.62 224 280.12 224C278.2200000000001 224 276.55 225.71 276.9100000000001 227.82L281.18 252.71L263.0900000000001 270.34C261.1500000000001 272.23 262.2200000000001 275.51 264.9000000000001 275.9L289.8900000000001 279.53L301.0800000000001 302.18zM243.19 371.19C256.86 371.19 270.45 368.7000000000001 283.57 363.7800000000001A6.775 6.775 0 1 0 281.19 350.6600000000001C280.52 350.6600000000001 278.1 350.87 277.06 350.87C224.75 350.87 182.2 308.32 182.2 256.01C182.2 203.71 224.75 161.15 277.06 161.15C278.09 161.15 280.54 161.36 281.19 161.36C285.12 161.36 287.99 158.22 287.99 154.58C287.99 151.6 286.05 149.07 283.37 148.16C270.3 143.29 256.7800000000001 140.82 243.18 140.82C179.67 140.81 128 192.49 128 256C128 319.52 179.67 371.19 243.19 371.19zM380.8 0H96C76.8 0 64 12.8 64 32S80 64 96 64H380.8V0z" />
    +    <glyph glyph-name="random"
    +      unicode="&#xF074;"
    +      horiz-adv-x="512" d=" M504.971 88.971C514.344 79.598 514.344 64.402 504.971 55.03L424.971 -24.954C409.961 -39.964 384 -29.444 384 -7.983V32H325.2150000000001A12.004 12.004 0 0 0 316.442 35.812L245.886 111.408L299.2190000000001 168.5510000000001L352 112H384V151.981C384 173.419 409.943 183.979 424.971 168.952L504.971 88.971zM12 272H96L148.781 215.449L202.114 272.592L131.558 348.188A11.999000000000002 11.999000000000002 0 0 1 122.785 352H12C5.373 352 0 346.627 0 340V284C0 277.373 5.373 272 12 272zM384 272V232.016C384 210.556 409.961 200.036 424.971 215.045L504.971 295.029C514.344 304.402 514.344 319.598 504.971 328.9700000000001L424.971 408.951C409.943 423.979 384 413.418 384 391.981V352H325.2150000000001A12.004 12.004 0 0 1 316.442 348.188L96 112H12C5.373 112 0 106.627 0 100V44C0 37.373 5.373 32 12 32H122.785C126.111 32 129.288 33.381 131.558 35.812L352 272H384z" />
    +    <glyph glyph-name="receipt"
    +      unicode="&#xF543;"
    +      horiz-adv-x="384" d=" M358.4 444.8L320 400L265.6 444.8A15.9 15.9 0 0 1 246.4000000000001 444.8L192 400L137.6 444.8A15.9 15.9 0 0 1 118.4 444.8L64 400L25.6 444.8C15 452.7 0 445.2 0 432V-48C0 -61.2 15 -68.7 25.6 -60.8L64 -16L118.4 -60.8A15.9 15.9 0 0 1 137.6 -60.8L192 -16L246.4 -60.8A15.9 15.9 0 0 1 265.6 -60.8L320 -16L358.4 -60.8C368.9 -68.7 384 -61.2 384 -48V432C384 445.2 369 452.7 358.4 444.8zM320 88C320 83.6 316.4 80 312 80H72C67.6 80 64 83.6 64 88V104C64 108.4 67.6 112 72 112H312C316.4 112 320 108.4 320 104V88zM320 184C320 179.6 316.4 176 312 176H72C67.6 176 64 179.6 64 184V200C64 204.4 67.6 208 72 208H312C316.4 208 320 204.4 320 200V184zM320 280C320 275.6 316.4 272 312 272H72C67.6 272 64 275.6 64 280V296C64 300.4 67.6 304 72 304H312C316.4 304 320 300.4 320 296V280z" />
    +    <glyph glyph-name="recycle"
    +      unicode="&#xF1B8;"
    +      horiz-adv-x="512" d=" M184.561 186.097C187.793 172.1 172.438 161.462 160.493 168.929L119.757 194.384L68.89 112.982C55.606 91.727 70.96 64 96.012 64H148C154.627 64 160 58.627 160 52V12C160 5.373 154.627 0 148 0H96.115C20.781 0 -25.187 83.048 14.707 146.88L65.529 228.268L24.804 253.716C12.723 261.2630000000001 15.838 279.677 29.683 282.874L139.92 308.324C148.531 310.312 157.121 304.943 159.109 296.334L184.561 186.097zM283.122 369.012L324.411 302.936L283.671 277.479C271.62 269.951 274.671 251.526 288.55 248.321L398.7870000000001 222.871C407.4590000000001 220.872 416.002 226.309 417.9760000000001 234.861L443.4260000000001 345.098C446.6230000000001 358.942 431.4360000000001 369.817 419.3580000000001 362.266L378.6710000000001 336.842L337.4080000000001 402.924C299.8870000000001 462.957 212.1990000000001 463.095 174.5920000000001 402.924L156.6290000000001 374.158C153.1190000000001 368.538 154.8290000000001 361.137 160.4490000000001 357.625L194.3680000000001 336.43C199.9880000000001 332.918 207.3920000000001 334.627 210.9040000000001 340.247L228.8650000000001 368.99C241.5770000000001 389.331 270.8380000000001 388.666 283.1220000000001 369.012zM497.288 146.88L469.773 190.945C466.262 196.568 458.857 198.279 453.235 194.766L419.374 173.607C413.754 170.095 412.0440000000001 162.692 415.5560000000001 157.071L443.1200000000001 112.959C456.3770000000001 91.7479999999999 441.0630000000001 63.999 415.9840000000001 63.999H320V111.98C320 126.1930000000001 302.758 133.363 292.687 123.293L212.687 43.312C206.438 37.064 206.438 26.933 212.687 20.685L292.687 -59.304C302.689 -69.308 320 -62.3 320 -47.989V0H415.88C491.154 0 537.215 82.997 497.288 146.88z" />
    +    <glyph glyph-name="redo-alt"
    +      unicode="&#xF2F9;"
    +      horiz-adv-x="512" d=" M256.455 440C322.724 439.881 382.892 413.767 427.314 371.315L463.029 407.03C478.149 422.149 504 411.4410000000001 504 390.059V256C504 242.745 493.255 232 480 232H345.941C324.559 232 313.851 257.851 328.97 272.971L370.72 314.721C339.856 343.62 299.919 359.628 257.49 359.9940000000001C165.092 360.7920000000001 87.207 286.017 88.0059999999999 190.552C88.764 99.991 162.184 24 256 24C297.127 24 335.997 38.678 366.629 65.556C371.372 69.717 378.5350000000001 69.464 382.997 65.003L422.659 25.341C427.531 20.469 427.29 12.526 422.177 7.908C378.202 -31.813 319.926 -56 256 -56C119.034 -56 8.001 55.033 8 191.998C7.999 328.807 119.646 440.245 256.455 440z" />
    +    <glyph glyph-name="redo"
    +      unicode="&#xF01E;"
    +      horiz-adv-x="512.333" d=" M500.333 448H452.922C446.069 448 440.608 442.271 440.9360000000001 435.426L444.9020000000001 352.6670000000001C399.416 406.101 331.6720000000001 440 256.001 440C119.34 440 7.899 328.474 8 191.813C8.101 54.932 119.096 -56 256 -56C319.926 -56 378.202 -31.813 422.178 7.908C427.291 12.526 427.532 20.469 422.6600000000001 25.341L388.689 59.312C384.223 63.778 377.0490000000001 64.029 372.3090000000001 59.855C341.308 32.552 300.606 16 256 16C158.733 16 80 94.716 80 192C80 289.267 158.716 368 256 368C316.892 368 370.506 337.142 402.099 290.2L300.574 295.065C293.729 295.3930000000001 288 289.932 288 283.079V235.668C288 229.041 293.373 223.668 300 223.668H500.333C506.96 223.668 512.333 229.041 512.333 235.668V436C512.333 442.627 506.96 448 500.333 448z" />
    +    <glyph glyph-name="registered"
    +      unicode="&#xF25D;"
    +      horiz-adv-x="512" d=" M285.363 240.525C285.363 221.925 275.532 212.094 256.932 212.094H227.056V268.234H250.4340000000001C279.1020000000001 268.234 285.3630000000001 259.461 285.3630000000001 240.525zM504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM363.411 87.586C316.682 172.411 320.112 166.222 318.709 168.566C342.141 183.7380000000001 356.654 211.545 356.654 243.052C356.654 297.2960000000001 325.154 332.3040000000001 251.156 332.3040000000001H180.489C167.234 332.3040000000001 156.489 321.5590000000001 156.489 308.3040000000001V76C156.489 62.745 167.234 52 180.489 52H203.056C216.311 52 227.056 62.745 227.056 76V147.663H252.612L296.7410000000001 64.726A24.001000000000005 24.001000000000005 0 0 1 317.9290000000001 51.999H342.3930000000001C360.6540000000001 52 372.2220000000001 71.59 363.4110000000001 87.586z" />
    +    <glyph glyph-name="reply-all"
    +      unicode="&#xF122;"
    +      horiz-adv-x="576" d=" M136.309 258.164L312.313 410.149C327.7200000000001 423.454 352 412.652 352 391.985V309.222C481.182 298.991 576 257.01 576 125.674C576 64.233 536.418 3.365 492.667 -28.458C479.014 -38.389 459.556 -25.925 464.59 -9.827C503.102 113.335 460.668 159.655 352 172.188V88.013C352 67.312 327.7 56.56 312.313 69.849L136.309 221.836C125.238 231.397 125.223 248.589 136.309 258.164zM8.309 221.836L184.313 69.85C199.7 56.561 224 67.313 224 88.014V103.832L115.394 197.617A55.96 55.96 0 0 0 96 240.002A55.95300000000001 55.95300000000001 0 0 0 115.393 282.382L224 376.168V391.985C224 412.652 199.72 423.454 184.313 410.149L8.309 258.164C-2.777 248.589 -2.762 231.397 8.309 221.836z" />
    +    <glyph glyph-name="reply"
    +      unicode="&#xF3E5;"
    +      horiz-adv-x="512" d=" M8.309 258.164L184.313 410.149C199.719 423.454 224 412.653 224 391.985V311.932C384.629 310.093 512 277.9000000000001 512 125.674C512 64.233 472.419 3.365 428.6670000000001 -28.458C415.014 -38.389 395.5560000000001 -25.925 400.5900000000001 -9.827C445.9340000000001 135.185 379.0830000000001 173.683 224 175.915V88C224 67.3 199.7 56.547 184.3130000000001 69.836L8.3090000000001 221.836C-2.7619999999999 231.398 -2.7769999999999 248.589 8.3090000000001 258.164z" />
    +    <glyph glyph-name="retweet"
    +      unicode="&#xF079;"
    +      horiz-adv-x="640" d=" M629.657 104.402L528.971 3.716C519.598 -5.656 504.403 -5.656 495.03 3.716L394.343 104.402C384.9700000000001 113.775 384.9700000000001 128.971 394.343 138.343L405.166 149.166C414.728 158.728 430.299 158.5059999999999 439.585 148.6739999999999L480 105.882V288H292.451A24.005 24.005 0 0 0 275.48 295.029L259.48 311.029C244.361 326.149 255.069 352 276.451 352H520C533.255 352 544 341.255 544 328V105.882L584.4159999999999 148.674C593.7009999999999 158.505 609.2719999999999 158.728 618.8349999999999 149.166L629.6579999999999 138.343C639.0299999999999 128.971 639.0299999999999 113.774 629.6569999999999 104.402zM364.5190000000001 88.971A23.999000000000002 23.999000000000002 0 0 1 347.548 96H160V278.1190000000001L200.416 235.327C209.702 225.496 225.272 225.273 234.835 234.836L245.657 245.658C255.03 255.031 255.03 270.227 245.657 279.599L144.971 380.284C135.598 389.657 120.402 389.657 111.03 380.284L10.343 279.598C0.97 270.225 0.97 255.029 10.343 245.657L21.165 234.835C30.727 225.273 46.298 225.495 55.584 235.326L96 278.1190000000001V56C96 42.745 106.745 32 120 32H363.549C384.931 32 395.639 57.851 380.52 72.971L364.519 88.971z" />
    +    <glyph glyph-name="ribbon"
    +      unicode="&#xF4D6;"
    +      horiz-adv-x="448" d=" M6.1 3.7C-3.5 -7.1 -1.4 -23.9 10.6 -32L79.4 -59.9C89.3 -66.6 102.7 -64.9 110.7 -56.1L202.5 45.8000000000001L123.3 133.7000000000001L6.1 3.7zM441.9000000000001 3.7S149.9 328.3 146.5000000000001 333.8C161.9000000000001 342.2000000000001 186.7000000000001 351.7000000000001 224.0000000000001 351.7000000000001S286.1000000000001 342.2000000000001 301.5000000000001 333.8C298.2000000000001 328.2000000000001 245.5000000000001 269.2000000000001 245.5000000000001 269.2000000000001L324.6 181.5L358.8 219.5C387.5 251.4 392.1 298.1 370.2 335L326.5 408.5C322.2 415.7 316.6 421.8 309.7 426.5C269 454.1 182.3 456.2 138.3 426.5C131.4 421.8 125.8 415.7 121.5 408.5L77.9 335.3C76.4 332.8 40.8 273.1 89.4 219.3L337.5 -56C345.5 -64.9 358.9 -66.5 368.8 -59.8L437.6 -31.9C449.5 -23.9 451.6 -7.1 441.9000000000001 3.7z" />
    +    <glyph glyph-name="ring"
    +      unicode="&#xF70B;"
    +      horiz-adv-x="512" d=" M256 384C110.06 384 0 322.0900000000001 0 240V141.87C0 63.52 114.62 0 256 0S512 63.52 512 141.87V240C512 322.0900000000001 401.94 384 256 384zM256 320C362.04 320 448 284.18 448 240C448 230.74 444.03 221.88 437.09 213.61C392.15 239.79 328.23 256 256 256S119.85 239.79 74.91 213.61C67.97 221.88 64 230.74 64 240C64 284.18 149.96 320 256 320zM120.43 183.36C155.04 198.07 201.64 208 256 208S356.96 198.07 391.57 183.36C356.84 168.93 308.93 160 256 160S155.16 168.93 120.43 183.36z" />
    +    <glyph glyph-name="road"
    +      unicode="&#xF018;"
    +      horiz-adv-x="576" d=" M573.19 45.33L433.4000000000001 365.33C428.43 376.71 417.6 384 405.68 384H308.0900000000001L310.54 360.8400000000001C311.04 356.12 307.3300000000001 352 302.5800000000001 352H273.42C268.67 352 264.9600000000001 356.12 265.4600000000001 360.8400000000001L267.9100000000001 384H170.32C158.39 384 147.56 376.71 142.59 365.33L2.8 45.33C-6.45 24.14 8.31 0 30.54 0H227.38L237.69 97.68C238.55 105.82 245.41 112 253.6 112H322.4C330.59 112 337.45 105.82 338.31 97.68L348.62 0H545.46C567.69 0 582.45 24.14 573.19 45.33zM260.4 312.8400000000001A8 8 0 0 0 268.36 320H307.65C311.74 320 315.18 316.91 315.61 312.8400000000001L320.21 269.26C320.96 262.17 315.4 256 308.28 256H267.74C260.61 256 255.06 262.17 255.81 269.26L260.3999999999999 312.84zM315.64 144H260.35C250.85 144 243.44 152.23 244.44 161.68L249.51 209.68C250.37 217.82 257.23 224 265.42 224H310.57C318.76 224 325.62 217.82 326.48 209.68L331.55 161.68C332.55 152.23 325.14 144 315.64 144z" />
    +    <glyph glyph-name="robot"
    +      unicode="&#xF544;"
    +      horiz-adv-x="640" d=" M0 192V64C0 46.3 14.3 32 32 32H64V224H32C14.3 224 0 209.7 0 192zM464 352H352V416C352 433.7 337.7 448 320 448S288 433.7 288 416V352H176C131.8 352 96 316.2 96 272V0C96 -35.3 124.7 -64 160 -64H480C515.3 -64 544 -35.3 544 0V272C544 316.2 508.2 352 464 352zM256 32H192V64H256V32zM224 152C201.9 152 184 169.9 184 192S201.9 232 224 232S264 214.1 264 192S246.1 152 224 152zM352 32H288V64H352V32zM448 32H384V64H448V32zM416 152C393.9 152 376 169.9 376 192S393.9 232 416 232S456 214.1 456 192S438.1 152 416 152zM608 224H576V32H608C625.7 32 640 46.3 640 64V192C640 209.7 625.7 224 608 224z" />
    +    <glyph glyph-name="rocket"
    +      unicode="&#xF135;"
    +      horiz-adv-x="512" d=" M505.1 428.9C503.8 435 499 439.8 492.9 441.1C460.7 448 435.5 448 410.4 448C307.2 448 245.3 392.8 199.1 320H94.9C76.7 320 60.1 309.7 52 293.5L2.6 194.7C-5.4 178.7 6.2 160 24.1 160H119.2C113.3 147.2 107.3 134.5 101.2 122.3C98.1 116.1 99.3 108.7 104.2 103.8L167.8 40.2C172.7 35.3 180.1 34.1 186.3 37.2C198.5 43.3 211.2 49.2 224 55.1V-40C224 -57.8 242.8 -69.4 258.7 -61.5L357.4 -12.1C373.7 -4 383.9 12.7 383.9 30.8V135.2C456.5 181.5 511.9 243.6 511.9 346.3C512 371.5 512 396.7 505.1 428.9zM400 288C373.5 288 352 309.5 352 336S373.5 384 400 384S448 362.5 448 336S426.5 288 400 288z" />
    +    <glyph glyph-name="route"
    +      unicode="&#xF4D7;"
    +      horiz-adv-x="512" d=" M416 128H320C302.4 128 288 142.4 288 160S302.4 192 320 192H416S512 299 512 352S469 448 416 448S320 405 320 352C320 326.5 342.2 288.6 365.3 256H320C267.1 256 224 212.9 224 160S267.1 64 320 64H416C433.6 64 448 49.6 448 32S433.6 0 416 0H185.5C169.5 -24.8 151.7 -47.7 138.2 -64H416C468.9 -64 512 -20.9 512 32S468.9 128 416 128zM416 384C433.7 384 448 369.7 448 352S433.7 320 416 320S384 334.3 384 352S398.3 384 416 384zM96 192C43 192 0 149 0 96S96 -64 96 -64S192 43 192 96S149 192 96 192zM96 64C78.3 64 64 78.3 64 96S78.3 128 96 128S128 113.7 128 96S113.7 64 96 64z" />
    +    <glyph glyph-name="rss-square"
    +      unicode="&#xF143;"
    +      horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM112 32C85.49 32 64 53.49 64 80S85.49 128 112 128S160 106.51 160 80S138.51 32 112 32zM269.533 32H235.198C229.187 32 224.147 36.636 223.756 42.634C218.542 122.684 154.513 186.554 74.633 191.757C68.636 192.147 64 197.188 64 203.198V237.533C64 244.068 69.468 249.31 75.994 248.9580000000001C186.54 242.9840000000001 274.9910000000001 154.422 280.9580000000001 43.994C281.31 37.468 276.0680000000001 32 269.533 32zM372.56 32H338.226C332.065 32 327.051 36.882 326.799 43.038C321.201 179.573 211.595 289.199 75.039 294.798C68.882 295.051 64 300.065 64 306.226V340.56C64 347.014 69.338 352.224 75.787 351.992C243.617 345.967 377.997 210.801 383.992 43.787C384.224 37.338 379.014 32.0000000000001 372.56 32.0000000000001z" />
    +    <glyph glyph-name="rss"
    +      unicode="&#xF09E;"
    +      horiz-adv-x="448" d=" M128.081 32.041C128.081 -3.328 99.409 -32 64.04 -32S0 -3.328 0 32.041S28.672 96.082 64.041 96.082S128.081 67.409 128.081 32.041zM303.741 -15.209C295.387 139.391 171.556 263.378 16.791 271.741C7.656 272.235 0 264.895 0 255.747V207.678C0 199.263 6.49 192.206 14.887 191.66C126.719 184.376 216.36 94.958 223.659 -17.112C224.206 -25.509 231.263 -31.999 239.677 -31.999H287.746C296.895 -32 304.235 -24.344 303.741 -15.209zM447.99 -15.497C439.596 218.323 251.465 407.555 16.503 415.99C7.473 416.314 0 409.019 0 399.984V351.916C0 343.291 6.835 336.271 15.453 335.9170000000001C206.632 328.078 360.08 174.601 367.918 -16.548C368.271 -25.166 375.291 -32.001 383.917 -32.001H431.985C441.019 -32 448.314 -24.527 447.99 -15.497z" />
    +    <glyph glyph-name="ruble-sign"
    +      unicode="&#xF158;"
    +      horiz-adv-x="384" d=" M239.36 128C324.48 128 384 187.458 384 272.929S324.48 416 239.36 416H76C69.373 416 64 410.627 64 404V197.368H12C5.373 197.368 0 191.995 0 185.368V140C0 133.373 5.373 128 12 128H64V96H12C5.373 96 0 90.627 0 84V44C0 37.373 5.373 32 12 32H64V-20C64 -26.627 69.373 -32 76 -32H134.56C141.187 -32 146.56 -26.627 146.56 -20V32H308C314.627 32 320 37.373 320 44V84C320 90.627 314.627 96 308 96H146.56V128H239.36zM146.56 347.252H225.28C272 347.252 300.16 318.142 300.16 272.9290000000001C300.16 227.0970000000001 272 197.368 224 197.368H146.56V347.252z" />
    +    <glyph glyph-name="ruler-combined"
    +      unicode="&#xF546;"
    +      horiz-adv-x="512" d=" M160 160H104C99.58 160 96 163.58 96 168V184C96 188.42 99.58 192 104 192H160V256H104C99.58 256 96 259.5800000000001 96 264V280C96 284.42 99.58 288 104 288H160V352H104C99.58 352 96 355.58 96 360V376C96 380.42 99.58 384 104 384H160V416C160 433.67 145.67 448 128 448H32C14.33 448 0 433.67 0 416V-32C0 -34.77 0.91 -37.24 1.57 -39.8L160 118.62V160zM480 96H448V40C448 35.58 444.42 32 440 32H424C419.58 32 416 35.58 416 40V96H352V40C352 35.58 348.42 32 344 32H328C323.58 32 320 35.58 320 40V96H256V40C256 35.58 252.42 32 248 32H232C227.58 32 224 35.58 224 40V96H182.63L24.2 -62.43C26.76 -63.09 29.24 -64 32 -64H480C497.67 -64 512 -49.67 512 -32V64C512 81.67 497.67 96 480 96z" />
    +    <glyph glyph-name="ruler-horizontal"
    +      unicode="&#xF547;"
    +      horiz-adv-x="576" d=" M544 320H496V232C496 227.58 492.42 224 488 224H472C467.58 224 464 227.58 464 232V320H400V232C400 227.58 396.42 224 392 224H376C371.58 224 368 227.58 368 232V320H304V232C304 227.58 300.42 224 296 224H280C275.58 224 272 227.58 272 232V320H208V232C208 227.58 204.42 224 200 224H184C179.58 224 176 227.58 176 232V320H112V232C112 227.58 108.42 224 104 224H88C83.58 224 80 227.58 80 232V320H32C14.33 320 0 305.67 0 288V96C0 78.33 14.33 64 32 64H544C561.67 64 576 78.33 576 96V288C576 305.67 561.67 320 544 320z" />
    +    <glyph glyph-name="ruler-vertical"
    +      unicode="&#xF548;"
    +      horiz-adv-x="256" d=" M168 32C163.58 32 160 35.58 160 40V56C160 60.42 163.58 64 168 64H256V128H168C163.58 128 160 131.58 160 136V152C160 156.42 163.58 160 168 160H256V224H168C163.58 224 160 227.58 160 232V248C160 252.42 163.58 256 168 256H256V320H168C163.58 320 160 323.58 160 328V344C160 348.42 163.58 352 168 352H256V416C256 433.67 241.67 448 224 448H32C14.33 448 0 433.67 0 416V-32C0 -49.67 14.33 -64 32 -64H224C241.67 -64 256 -49.67 256 -32V32H168z" />
    +    <glyph glyph-name="ruler"
    +      unicode="&#xF545;"
    +      horiz-adv-x="640" d=" M635.7 280.8L556.1 416.3C547.3000000000001 431.3 527.8000000000001 436.4 512.6 427.8L443.6 388.7L503.3 287C505.5 283.2 504.2 278.5 500.4 276.3L486.6 268.5C482.8 266.3 477.9 267.6 475.7 271.4L416 373L360.8 341.7L388.7 294.3C390.9 290.5 389.6 285.8 385.8 283.6L372 275.8C368.2 273.6 363.3 274.9 361.1 278.7000000000001L333.2 326L278 294.7L337.8 193C340 189.3 338.7 184.5 334.9000000000001 182.3L321.1 174.5C317.3 172.3 312.4000000000001 173.6 310.2000000000001 177.4L250.5000000000001 279.1L195.3000000000001 247.8L223.2000000000001 200.4C225.4000000000001 196.5999999999999 224.1000000000001 191.9 220.3000000000001 189.6999999999999L206.5000000000001 181.8999999999999C202.7000000000001 179.6999999999999 197.8000000000001 181 195.6000000000001 184.7999999999999L167.7000000000001 232.2999999999999L112.5 200.9999999999999L172.2000000000001 99.2999999999999C174.4 95.5999999999999 173.1000000000001 90.7999999999999 169.3000000000001 88.5999999999999L155.5 80.7999999999999C151.7 78.5999999999999 146.8000000000001 79.8999999999999 144.6 83.6999999999999L84.9 185.1L15.9 146C0.7 137.3 -4.6 118.2 4.2 103.2L83.8 -32.4C92.6 -47.4 112.1 -52.5 127.3 -43.9L624.1 238C639.3000000000001 246.6 644.5 265.8 635.7 280.8z" />
    +    <glyph glyph-name="running"
    +      unicode="&#xF70C;"
    +      horiz-adv-x="416" d=" M272 352C298.51 352 320 373.49 320 400S298.51 448 272 448S224 426.51 224 400S245.49 352 272 352zM113.69 130.53L98.89 96.01H32C14.33 96.01 0 81.68 0 64.01S14.33 32.01 32 32.01H109.45C128.7 32.01 146.03 43.45 153.56 61.1L162.35 81.62L151.68 87.92C134.36 98.15 121.62 113.29 113.69 130.53zM384 224.01H339.9700000000001L313.9100000000001 277.26C301.4100000000001 302.81 278.4600000000001 321.49 252.13 328.2L181.05 349.34C152.75 356.14 123.28 349.89 100.21 332.2L60.54 301.79C46.51 291.04 43.85 270.96 54.62 256.93S85.46 240.27 99.48 251.01L139.17 281.42C146.84 287.31 156.61 289.42 164.44 287.56L179.14 283.19L141.68 195.8C129.06 166.32 140.37 131.79 167.98 115.49L252.9600000000001 65.32L225.4900000000001 -22.41C220.21 -39.27 229.6000000000001 -57.22 246.4600000000001 -62.5C249.6500000000001 -63.5 252.8700000000001 -63.98 256.04 -63.98C269.6500000000001 -63.98 282.2700000000001 -55.21 286.56 -41.53L318.2 59.53C324.11 80.3 315.31 102.61 296.56 113.92L235.32 150.06L266.63 228.34L286.9 186.91C294.9 170.57 311.82 160.02 330.01 160.02H384C401.67 160.02 416 174.35 416 192.02S401.67 224.01 384 224.01z" />
    +    <glyph glyph-name="rupee-sign"
    +      unicode="&#xF156;"
    +      horiz-adv-x="320" d=" M308 352C314.627 352 320 357.373 320 364V404C320 410.627 314.627 416 308 416H12C5.373 416 0 410.627 0 404V359.252C0 352.625 5.373 347.252 12 347.252H97.28C124.588 347.252 145.541 337.294 158.25 320H12C5.373 320 0 314.627 0 308V268C0 261.373 5.373 256 12 256H170.757C164.54 219.914 137.796 197.368 96 197.368H12C5.373 197.368 0 191.995 0 185.368V132.356C0 129.007 1.4 125.81 3.861 123.538L168.913 -28.818A12.001000000000001 12.001000000000001 0 0 1 177.052 -32H259.614C270.538 -32 275.78 -18.592 267.753 -11.182L116.871 128.094C193.37 130.434 248.015 181.489 255.189 256H308C314.627 256 320 261.373 320 268V308C320 314.627 314.627 320 308 320H249.31C245.824 331.541 241.03 342.246 235.058 352H308z" />
    +    <glyph glyph-name="sad-cry"
    +      unicode="&#xF5B3;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192C0 101.9 48.2 23.3 120 -20.1V160C120 168.8 127.2 176 136 176S152 168.8 152 160V-36.7C181.5 -49.1 214 -56 248 -56S314.5 -49.1 344 -36.7V160C344 168.8 351.2 176 360 176S376 168.8 376 160V-20.1C447.8 23.3 496 102 496 192C496 329 385 440 248 440zM182.5 223.5C167.7 236.7 136.3 236.7 121.5 223.5L112 215C108.2 211.7 102.7 211 98.3 213.4C93.9 215.8 91.4 220.8 92.2 225.8C96.2 251 126.4 267.9 152.1 267.9S208 251 212 225.8C212.8 220.8 210.3 215.8 205.9 213.4C200.1 210.3 194.7 212.7 192.2 215L182.5 223.5zM248 32C221.5 32 200 60.7 200 96S221.5 160 248 160S296 131.3 296 96S274.5 32 248 32zM397.8 213.5C392 210.4 386.6 212.8 384.1 215.1L374.6 223.6C359.8 236.8 328.4000000000001 236.8 313.6 223.6L304 215C300.2 211.7 294.7 211 290.3 213.4C285.9000000000001 215.8 283.4000000000001 220.8 284.2 225.8C288.2 251 318.4 267.9 344.1 267.9S400 251 404 225.8C404.6 220.9 402.2 215.9 397.8 213.5z" />
    +    <glyph glyph-name="sad-tear"
    +      unicode="&#xF5B4;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 272C345.7 272 360 257.7 360 240S345.7 208 328 208S296 222.3 296 240S310.3 272 328 272zM152 32C125.5 32 104 53 104 79C104 99 132.5 139.4 145.6 156.8C148.8 161.1 155.2 161.1 158.4 156.8C171.5 139.4 200 99 200 79C200 53 178.5 32 152 32zM168 208C150.3 208 136 222.3 136 240S150.3 272 168 272S200 257.7 200 240S185.7 208 168 208zM338.2 53.8C315.8 80.6 282.9 96 248 96C226.8 96 226.8 128 248 128C292.4 128 334.3 108.4 362.7 74.2C376.5 57.8 351.5 37.7 338.2 53.8z" />
    +    <glyph glyph-name="save"
    +      unicode="&#xF0C7;"
    +      horiz-adv-x="448" d=" M433.941 318.059L350.059 401.9410000000001A48 48 0 0 1 316.118 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V284.118A48 48 0 0 1 433.941 318.059zM224 32C188.654 32 160 60.654 160 96C160 131.346 188.654 160 224 160S288 131.346 288 96C288 60.654 259.346 32 224 32zM320 336.52V236C320 229.373 314.627 224 308 224H76C69.373 224 64 229.373 64 236V340C64 346.627 69.373 352 76 352H304.52C307.703 352 310.755 350.736 313.005 348.485L316.485 345.005A11.996 11.996 0 0 0 320 336.52z" />
    +    <glyph glyph-name="school"
    +      unicode="&#xF549;"
    +      horiz-adv-x="640" d=" M0 224V-48C0 -56.84 7.16 -64 16 -64H96V256H32C14.33 256 0 241.67 0 224zM360 272H336V312C336 316.42 332.42 320 328 320H312C307.58 320 304 316.42 304 312V248C304 243.58 307.58 240 312 240H360C364.42 240 368 243.58 368 248V264C368 268.42 364.42 272 360 272zM497.75 335.9600000000001L337.75 442.63A32.02 32.02 0 0 1 302.25 442.63L142.25 335.9600000000001A32.002 32.002 0 0 1 128 309.3400000000001V-64H256V80C256 88.84 263.1600000000001 96 272 96H368C376.84 96 384 88.84 384 80V-64H512V309.3300000000001C512 320.0300000000001 506.65 330.0300000000001 497.75 335.9600000000001zM320 192C275.82 192 240 227.82 240 272S275.82 352 320 352S400 316.18 400 272S364.18 192 320 192zM608 256H544V-64H624C632.84 -64 640 -56.84 640 -48V224C640 241.67 625.67 256 608 256z" />
    +    <glyph glyph-name="screwdriver"
    +      unicode="&#xF54A;"
    +      horiz-adv-x="512" d=" M448 448L320 352V289.94L236.97 206.91C243.76 202.66 250.24 197.85 256.04 192.04C261.8400000000001 186.24 266.6600000000001 179.76 270.9100000000001 172.97L353.94 256H416L512 384L448 448zM128 169.41L10.92 52.33C-3.63 37.78 -3.63 14.18 10.92 -0.38L63.62 -53.08C78.18 -67.64 101.77 -67.64 116.33 -53.08L233.41 64C262.52 93.11 262.52 140.3 233.41 169.41S157.11 198.52 128 169.41z" />
    +    <glyph glyph-name="scroll"
    +      unicode="&#xF70E;"
    +      horiz-adv-x="640" d=" M48 448C21.53 448 0 426.4700000000001 0 400V336C0 327.16 7.16 320 16 320H96V400C96 426.4700000000001 74.47 448 48 448zM256 35.43V96H544V352C544 404.94 500.94 448 448 448H111.59C121.74 434.59 128 418.08 128 400V32C128 -6.87 162.65 -37.65 202.75 -31.12C234.22 -26 256 3.54 256 35.43zM288 64V32C288 -20.93 244.94 -64 192 -64H528C589.86 -64 640 -13.86 640 48C640 56.84 632.84 64 624 64H288z" />
    +    <glyph glyph-name="search-dollar"
    +      unicode="&#xF688;"
    +      horiz-adv-x="512" d=" M505.04 5.34L405.3300000000001 105.03C400.8300000000001 109.53 394.73 112.03 388.3300000000001 112.03H372.0300000000001C399.6300000000001 147.33 416.0300000000001 191.72 416.0300000000001 240.02C416.03 354.91 322.92 448 208.02 448S0 354.91 0 240.02S93.11 32.04 208.02 32.04C256.32 32.04 300.73 48.44 336.03 76.04V59.74C336.03 53.34 338.53 47.24 343.03 42.74L442.74 -56.95C452.1399999999999 -66.35 467.34 -66.35 476.6399999999999 -56.95L504.9399999999999 -28.65C514.3399999999999 -19.25 514.3399999999999 -4.06 505.04 5.34zM208.0200000000001 96.04C128.48 96.04 64.02 160.38 64.02 240.02C64.02 319.55 128.37 384 208.0200000000001 384C287.5600000000001 384 352.0200000000001 319.66 352.0200000000001 240.02C352.0200000000001 160.49 287.6700000000001 96.04 208.0200000000001 96.04zM235.1300000000001 248.58L190.1200000000001 262.08C184.9600000000001 263.63 181.3500000000001 268.86 181.3500000000001 274.81C181.3500000000001 282.08 186.6500000000001 288 193.1500000000001 288H221.2600000000001C225.8200000000001 288 230.2200000000001 286.7099999999999 234.0800000000001 284.28C237.3200000000001 282.25 241.4400000000001 282.37 244.2100000000001 285.01L255.9600000000001 296.2199999999999C259.49 299.5899999999999 259.29 305.43 255.3900000000001 308.36C246.2900000000001 315.19 235.3100000000001 319.13 224.0200000000001 319.7099999999999V336C224.0200000000001 340.42 220.44 344 216.0200000000001 344H200.0200000000001C195.6000000000001 344 192.0200000000001 340.42 192.0200000000001 336V319.88C168.3900000000001 319.25 149.34 299.33 149.34 274.81C149.34 254.84 162.3300000000001 237 180.92 231.42L225.93 217.92C231.09 216.37 234.7 211.14 234.7 205.19C234.7 197.92 229.4 192 222.9 192H194.8C190.24 192 185.84 193.29 181.98 195.72C178.74 197.75 174.62 197.63 171.85 194.9900000000001L160.1 183.78C156.57 180.41 156.77 174.5700000000001 160.67 171.6400000000001C169.77 164.8100000000001 180.75 160.8700000000001 192.04 160.29V144C192.04 139.58 195.62 136 200.04 136H216.04C220.46 136 224.04 139.58 224.04 144V160.12C247.67 160.75 266.7200000000001 180.66 266.7200000000001 205.19C266.7200000000001 225.16 253.73 243 235.13 248.58z" />
    +    <glyph glyph-name="search-location"
    +      unicode="&#xF689;"
    +      horiz-adv-x="512" d=" M505.04 5.34L405.3300000000001 105.03C400.8300000000001 109.53 394.73 112.03 388.3300000000001 112.03H372.0300000000001C399.6300000000001 147.33 416.0300000000001 191.72 416.0300000000001 240.02C416.03 354.91 322.92 448 208.02 448S0 354.91 0 240.02S93.11 32.04 208.02 32.04C256.32 32.04 300.73 48.44 336.03 76.04V59.74C336.03 53.34 338.53 47.24 343.03 42.74L442.74 -56.95C452.1399999999999 -66.35 467.34 -66.35 476.6399999999999 -56.95L504.9399999999999 -28.65C514.3399999999999 -19.25 514.3399999999999 -4.06 505.04 5.34zM208.0200000000001 96.04C128.48 96.04 64.02 160.38 64.02 240.02C64.02 319.55 128.37 384 208.0200000000001 384C287.5600000000001 384 352.0200000000001 319.66 352.0200000000001 240.02C352.0200000000001 160.49 287.6700000000001 96.04 208.0200000000001 96.04zM208.0400000000001 336C167.2600000000001 336 134.2000000000001 302.95 134.2000000000001 262.17C134.2000000000001 229.21 182.46 169.12 200.9500000000001 147.31A9.24 9.24 0 0 1 215.1300000000001 147.31C233.6200000000001 169.12 281.8800000000001 229.2 281.8800000000001 262.17C281.8800000000001 302.95 248.8200000000001 336 208.0400000000001 336zM208.0400000000001 240C194.7800000000001 240 184.0400000000001 250.75 184.0400000000001 264C184.0400000000001 277.26 194.7900000000001 288 208.0400000000001 288S232.0400000000001 277.26 232.0400000000001 264C232.0400000000001 250.75 221.2900000000001 240 208.0400000000001 240z" />
    +    <glyph glyph-name="search-minus"
    +      unicode="&#xF010;"
    +      horiz-adv-x="512" d=" M304 256V224C304 217.4 298.6 212 292 212H124C117.4 212 112 217.4 112 224V256C112 262.6 117.4 268 124 268H292C298.6 268 304 262.6 304 256zM505 -28.7L476.7 -57C467.3 -66.4 452.1 -66.4 442.8 -57L343 42.7C338.5 47.2 336 53.3 336 59.7V76C300.7 48.4 256.3 32 208 32C93.1 32 0 125.1 0 240S93.1 448 208 448S416 354.9 416 240C416 191.7 399.6 147.3 372 112H388.3C394.7 112 400.8 109.5 405.3 105L505 5.3C514.3 -4.1 514.3 -19.3 505 -28.7zM344 240C344 315.2 283.2 376 208 376S72 315.2 72 240S132.8 104 208 104S344 164.8 344 240z" />
    +    <glyph glyph-name="search-plus"
    +      unicode="&#xF00E;"
    +      horiz-adv-x="512" d=" M304 256V224C304 217.4 298.6 212 292 212H236V156C236 149.4 230.6 144 224 144H192C185.4 144 180 149.4 180 156V212H124C117.4 212 112 217.4 112 224V256C112 262.6 117.4 268 124 268H180V324C180 330.6 185.4 336 192 336H224C230.6 336 236 330.6 236 324V268H292C298.6 268 304 262.6 304 256zM505 -28.7L476.7 -57C467.3 -66.4 452.1 -66.4 442.8 -57L343 42.7C338.5 47.2 336 53.3 336 59.7V76C300.7 48.4 256.3 32 208 32C93.1 32 0 125.1 0 240S93.1 448 208 448S416 354.9 416 240C416 191.7 399.6 147.3 372 112H388.3C394.7 112 400.8 109.5 405.3 105L505 5.3C514.3 -4.1 514.3 -19.3 505 -28.7zM344 240C344 315.2 283.2 376 208 376S72 315.2 72 240S132.8 104 208 104S344 164.8 344 240z" />
    +    <glyph glyph-name="search"
    +      unicode="&#xF002;"
    +      horiz-adv-x="512" d=" M505 5.3L405.3 105C400.8 109.5 394.7 112 388.3 112H372C399.6 147.3 416 191.7 416 240C416 354.9 322.9 448 208 448S0 354.9 0 240S93.1 32 208 32C256.3 32 300.7 48.4 336 76V59.7C336 53.3 338.5 47.2 343 42.7L442.7 -57C452.1 -66.4 467.3 -66.4 476.6 -57L504.9 -28.7C514.3 -19.3 514.3 -4.1 505 5.3zM208 112C137.3 112 80 169.2 80 240C80 310.7 137.2 368 208 368C278.7 368 336 310.8 336 240C336 169.3 278.8 112 208 112z" />
    +    <glyph glyph-name="seedling"
    +      unicode="&#xF4D8;"
    +      horiz-adv-x="512" d=" M64 352H0C0 228.3 100.3 128 224 128V-16C224 -24.8 231.2 -32 240 -32H272C280.8 -32 288 -24.8 288 -16V128C288 251.7 187.7 352 64 352zM448 416C363.8 416 290.6 369.5 252.3 300.8C280 270.6 300.5 233.9 311.3 193.2C424 204.9 512 300.1 512 416H448z" />
    +    <glyph glyph-name="server"
    +      unicode="&#xF233;"
    +      horiz-adv-x="512" d=" M480 288H32C14.327 288 0 302.327 0 320V384C0 401.673 14.327 416 32 416H480C497.673 416 512 401.673 512 384V320C512 302.327 497.673 288 480 288zM432 376C418.745 376 408 365.255 408 352S418.745 328 432 328S456 338.745 456 352S445.255 376 432 376zM368 376C354.745 376 344 365.255 344 352S354.745 328 368 328S392 338.745 392 352S381.255 376 368 376zM480 128H32C14.327 128 0 142.327 0 160V224C0 241.673 14.327 256 32 256H480C497.673 256 512 241.673 512 224V160C512 142.327 497.673 128 480 128zM432 216C418.745 216 408 205.255 408 192S418.745 168 432 168S456 178.745 456 192S445.255 216 432 216zM368 216C354.745 216 344 205.255 344 192S354.745 168 368 168S392 178.745 392 192S381.255 216 368 216zM480 -32H32C14.327 -32 0 -17.673 0 0V64C0 81.673 14.327 96 32 96H480C497.673 96 512 81.673 512 64V0C512 -17.673 497.673 -32 480 -32zM432 56C418.745 56 408 45.255 408 32S418.745 8 432 8S456 18.745 456 32S445.255 56 432 56zM368 56C354.745 56 344 45.255 344 32S354.745 8 368 8S392 18.745 392 32S381.255 56 368 56z" />
    +    <glyph glyph-name="shapes"
    +      unicode="&#xF61F;"
    +      horiz-adv-x="512" d=" M512 128V-32C512 -49.67 497.67 -64 480 -64H320C302.33 -64 288 -49.67 288 -32V128C288 145.67 302.33 160 320 160H480C497.67 160 512 145.67 512 128zM128 192C57.31 192 0 134.69 0 64S57.31 -64 128 -64S256 -6.69 256 64S198.69 192 128 192zM479.03 224C504.3699999999999 224 520.2099999999999 250.67 507.54 272L412.51 432C399.84 453.33 368.16 453.33 355.49 432L260.4600000000001 272C247.7900000000001 250.67 263.6300000000001 224 288.9700000000001 224H479.03z" />
    +    <glyph glyph-name="share-alt-square"
    +      unicode="&#xF1E1;"
    +      horiz-adv-x="448" d=" M448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368zM304 152C289.438 152 276.177 146.439 266.217 137.329L198.259 178.104A56.33899999999999 56.33899999999999 0 0 1 198.259 205.897L266.217 246.672C276.177 237.561 289.438 232 304 232C334.928 232 360 257.072 360 288S334.928 344 304 344S248 318.928 248 288C248 283.203 248.605 278.5470000000001 249.74 274.103L181.782 233.328C171.823 242.439 158.562 248 144 248C113.072 248 88 222.928 88 192S113.072 136 144 136C158.562 136 171.823 141.561 181.783 150.671L249.741 109.896A56.08800000000001 56.08800000000001 0 0 1 248.001 95.999C248.001 65.071 273.073 39.999 304.001 39.999S360.001 65.071 360.001 95.999C360 126.928 334.928 152 304 152z" />
    +    <glyph glyph-name="share-alt"
    +      unicode="&#xF1E0;"
    +      horiz-adv-x="448" d=" M352 128C329.392 128 308.613 120.181 292.21 107.105L189.724 171.159A96.551 96.551 0 0 1 189.724 212.842L292.21 276.896C308.613 263.819 329.392 256 352 256C405.019 256 448 298.981 448 352S405.019 448 352 448S256 405.019 256 352C256 344.842 256.79 337.87 258.276 331.159L155.79 267.105C139.387 280.1810000000001 118.608 288 96 288C42.981 288 0 245.019 0 192S42.981 96 96 96C118.608 96 139.387 103.819 155.79 116.895L258.276 52.841A96.301 96.301 0 0 1 256 32C256 -21.019 298.981 -64 352 -64S448 -21.019 448 32S405.019 128 352 128z" />
    +    <glyph glyph-name="share-square"
    +      unicode="&#xF14D;"
    +      horiz-adv-x="576" d=" M568.482 270.552L424.479 134.567C409.3 120.232 384 130.86 384 152.015V223.978C239.425 223.008 178.434 188.865 219.225 52.625C223.708 37.652 206.379 26.058 194.219 35.295C155.252 64.895 120 121.512 120 178.661C120 322.598 237.599 351.161 384 351.973V423.988C384 445.162 409.317 455.756 424.479 441.436L568.482 305.448C578.502 295.985 578.51 280.023 568.482 270.552zM384 68.872V0H64V320H114.916A11.989999999999998 11.989999999999998 0 0 1 123.564 323.693C138.517 339.261 155.801 351.583 174.578 361.3690000000001C185.708 367.17 181.584 384 169.033 384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H400C426.51 -64 448 -42.51 448 -16V72.806C448 81.094 439.803 86.872 431.989 84.108A71.83 71.83 0 0 0 397.8 80.731C390.53 81.777 384 76.217 384 68.872z" />
    +    <glyph glyph-name="share"
    +      unicode="&#xF064;"
    +      horiz-adv-x="512" d=" M503.691 258.164L327.687 410.149C312.281 423.454 288 412.653 288 391.985V311.932C127.371 310.093 0 277.9 0 125.674C0 64.233 39.581 3.365 83.333 -28.458C96.986 -38.389 116.444 -25.925 111.41 -9.827C66.066 135.186 132.917 173.684 288 175.915V88C288 67.3 312.3 56.547 327.687 69.836L503.691 221.836C514.7620000000001 231.398 514.777 248.589 503.691 258.164z" />
    +    <glyph glyph-name="shekel-sign"
    +      unicode="&#xF20B;"
    +      horiz-adv-x="448" d=" M248 280V112C248 103.16 255.16 96 264 96H312C320.84 96 328 103.16 328 112V280C328 355.11 267.11 416 192 416H24C10.75 416 0 405.26 0 392V-16C0 -24.84 7.16 -32 16 -32H64C72.84 -32 80 -24.84 80 -16V336H192C222.93 336 248 310.93 248 280zM432 416H384C375.1600000000001 416 368 408.8400000000001 368 400V104C368 73.07 342.93 48 312 48H200V272C200 280.8400000000001 192.84 288 184 288H136C127.16 288 120 280.8400000000001 120 272V-8C120 -21.25 130.75 -32 144 -32H312C387.11 -32 448 28.89 448 104V400C448 408.8400000000001 440.84 416 432 416z" />
    +    <glyph glyph-name="shield-alt"
    +      unicode="&#xF3ED;"
    +      horiz-adv-x="512" d=" M496 320C496 98.718 360.0660000000001 -24.645 274.461 -60.308A48 48 0 0 0 237.538 -60.308C130.495 -15.713 16 121.513 16 320A48 48 0 0 0 45.539 364.308L237.539 444.308A48 48 0 0 0 274.462 444.308L466.462 364.308A48 48 0 0 0 496 320zM256 1.687L256.066 1.653C349.801 48.342 428.563 157.961 431.883 309.382L256 382.6670000000001V1.687z" />
    +    <glyph glyph-name="ship"
    +      unicode="&#xF21A;"
    +      horiz-adv-x="640" d=" M496.616 75.361L566.6279999999999 145.373C583.5269999999999 162.273 576.5699999999999 191.144 553.7919999999999 198.465L512 211.898V352C512 369.673 497.673 384 480 384H416V424C416 437.255 405.255 448 392 448H248C234.745 448 224 437.255 224 424V384H160C142.327 384 128 369.673 128 352V211.898L86.208 198.465C63.455 191.152 56.454 162.292 73.372 145.373L143.384 75.361C125.828 31.713 85.587 0 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64C85.023 -64 131.499 -43.39 167.258 -4.604C181.677 -39.432 216.021 -64 256 -64H384C423.979 -64 458.323 -39.432 472.742 -4.604C508.495 -43.384 554.968 -64 616 -64C629.255 -64 640 -53.255 640 -40V-24C640 -10.745 629.255 0 616 0C555.183 0 514.458 31.001 496.616 75.361zM192 320H448V232.469L329.7920000000001 270.464A31.995 31.995 0 0 1 310.2080000000001 270.464L192 232.469V320z" />
    +    <glyph glyph-name="shipping-fast"
    +      unicode="&#xF48B;"
    +      horiz-adv-x="640" d=" M624 96H608V204.1C608 216.8 602.9 229 593.9 238L494 337.9C485 346.9 472.8 352 460.1 352H416V400C416 426.5 394.5 448 368 448H112C85.5 448 64 426.5 64 400V352H8C3.6 352 0 348.4 0 344V328C0 323.6 3.6 320 8 320H280C284.4 320 288 316.4 288 312V296C288 291.6 284.4 288 280 288H40C35.6 288 32 284.4 32 280V264C32 259.6 35.6 256 40 256H248C252.4 256 256 252.4 256 248V232C256 227.6 252.4 224 248 224H8C3.6 224 0 220.4 0 216V200C0 195.6 3.6 192 8 192H216C220.4 192 224 188.4 224 184V168C224 163.6 220.4 160 216 160H64V32C64 -21 107 -64 160 -64S256 -21 256 32H384C384 -21 427 -64 480 -64S576 -21 576 32H624C632.8 32 640 39.2 640 48V80C640 88.8 632.8 96 624 96zM160 -16C133.5 -16 112 5.5 112 32S133.5 80 160 80S208 58.5 208 32S186.5 -16 160 -16zM480 -16C453.5 -16 432 5.5 432 32S453.5 80 480 80S528 58.5 528 32S506.5 -16 480 -16zM560 192H416V304H460.1L560 204.1V192z" />
    +    <glyph glyph-name="shoe-prints"
    +      unicode="&#xF54B;"
    +      horiz-adv-x="640" d=" M192 288H224V416H192C156.65 416 128 387.35 128 352S156.65 288 192 288zM0 32C0 -3.35 28.65 -32 64 -32H96V96H64C28.65 96 0 67.35 0 32zM337.46 160C302.55 160 261.3 146.88 232.73 128C207.94 111.62 188.21 96 128 96V-32L185.53 -47.97C211.74 -55.25 238.54 -61.09 265.84 -63.02C298.53 -65.33 331.44 -63.69 363.42 -56.82C472.9 -33.3 512 18.78 512 64C512 128 427.82 160 337.4600000000001 160zM491.42 440.81C459.44 447.68 426.53 449.33 393.84 447.01C366.54 445.08 339.74 439.24 313.53 431.9700000000001L256 416V288C316.2 288 335.94 272.38 360.73 256C389.3 237.12 430.55 224 465.46 224C555.82 224 640 256 640 320C640 365.2200000000001 600.9 417.3 491.42 440.81z" />
    +    <glyph glyph-name="shopping-bag"
    +      unicode="&#xF290;"
    +      horiz-adv-x="448" d=" M352 288V320C352 390.58 294.579 448 224 448C153.42 448 96 390.58 96 320V288H0V16C0 -28.183 35.817 -64 80 -64H368C412.183 -64 448 -28.183 448 16V288H352zM160 320C160 355.29 188.71 384 224 384S288 355.29 288 320V288H160V320zM320 200C306.745 200 296 210.745 296 224S306.745 248 320 248S344 237.255 344 224S333.255 200 320 200zM128 200C114.745 200 104 210.745 104 224S114.745 248 128 248S152 237.255 152 224S141.255 200 128 200z" />
    +    <glyph glyph-name="shopping-basket"
    +      unicode="&#xF291;"
    +      horiz-adv-x="576" d=" M576 232V216C576 202.745 565.255 192 552 192H544L517.887 9.212C514.509 -14.435 494.257 -32 470.37 -32H105.63C81.743 -32 61.491 -14.435 58.112 9.212L32 192H24C10.745 192 0 202.745 0 216V232C0 245.255 10.745 256 24 256H91.341L198.121 402.8210000000001C208.516 417.113 228.528 420.274 242.822 409.879C257.115 399.484 260.275 379.471 249.88 365.178L170.477 256H405.523L326.12 365.179C315.725 379.471 318.886 399.485 333.1790000000001 409.88C347.4700000000001 420.275 367.485 417.115 377.8800000000001 402.822L484.659 256H552C565.255 256 576 245.255 576 232zM312 56V168C312 181.255 301.255 192 288 192S264 181.255 264 168V56C264 42.745 274.745 32 288 32S312 42.745 312 56zM424 56V168C424 181.255 413.255 192 400 192S376 181.255 376 168V56C376 42.745 386.745 32 400 32S424 42.745 424 56zM200 56V168C200 181.255 189.255 192 176 192S152 181.255 152 168V56C152 42.745 162.745 32 176 32S200 42.745 200 56z" />
    +    <glyph glyph-name="shopping-cart"
    +      unicode="&#xF07A;"
    +      horiz-adv-x="576" d=" M528.12 146.681L575.393 354.681C578.806 369.699 567.391 384 551.99 384H159.208L150.042 428.81C147.758 439.979 137.93 448 126.529 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384H93.883L164.131 40.565C147.325 30.9 136 12.778 136 -8C136 -38.928 161.072 -64 192 -64S248 -38.928 248 -8C248 7.674 241.553 21.835 231.176 32H440.823C430.447 21.835 424 7.674 424 -8C424 -38.928 449.072 -64 480 -64S536 -38.928 536 -8C536 14.172 523.112 33.332 504.421 42.405L509.938 66.681C513.351 81.699 501.936 96 486.535 96H218.117L211.572 128H504.717C515.923 128 525.637 135.754 528.12 146.681z" />
    +    <glyph glyph-name="shower"
    +      unicode="&#xF2CC;"
    +      horiz-adv-x="512" d=" M389.6600000000001 312.4L231.6 154.34C222.23 144.97 207.03 144.97 197.66 154.34L186.34 165.66C176.97 175.03 176.97 190.23 186.34 199.6L186.45 199.71C152.42 239.92 151.29 298.65 183.06 340.09C171.09 347.64 156.92 352 141.7600000000001 352C98.88 352 64 317.12 64 274.24V-32H0V274.24C0 352.41 63.59 416 141.76 416C178.69 416 212.37 401.8 237.62 378.58C273.52 390.09 314.12 383.08 344.29 357.55L344.4000000000001 357.66C353.7700000000001 367.03 368.9700000000001 367.03 378.3400000000001 357.66L389.6600000000001 346.3400000000001C399.0300000000001 336.9700000000001 399.0300000000001 321.77 389.6600000000001 312.4zM384 240C384 231.163 376.837 224 368 224S352 231.163 352 240S359.163 256 368 256S384 248.837 384 240zM416 240C416 248.837 423.163 256 432 256S448 248.837 448 240S440.837 224 432 224S416 231.163 416 240zM512 240C512 231.163 504.837 224 496 224S480 231.163 480 240S487.163 256 496 256S512 248.837 512 240zM352 208C352 199.163 344.837 192 336 192S320 199.163 320 208S327.163 224 336 224S352 216.837 352 208zM400 224C408.837 224 416 216.837 416 208S408.837 192 400 192S384 199.163 384 208S391.163 224 400 224zM480 208C480 199.163 472.837 192 464 192S448 199.163 448 208S455.163 224 464 224S480 216.837 480 208zM320 176C320 167.163 312.837 160 304 160S288 167.163 288 176S295.163 192 304 192S320 184.837 320 176zM352 176C352 184.837 359.163 192 368 192S384 184.837 384 176S376.837 160 368 160S352 167.163 352 176zM448 176C448 167.163 440.837 160 432 160S416 167.163 416 176S423.163 192 432 192S448 184.837 448 176zM320 144C320 152.837 327.163 160 336 160S352 152.837 352 144S344.837 128 336 128S320 135.163 320 144zM416 144C416 135.163 408.837 128 400 128S384 135.163 384 144S391.163 160 400 160S416 152.837 416 144zM320 112C320 103.163 312.837 96 304 96S288 103.163 288 112S295.163 128 304 128S320 120.837 320 112zM384 112C384 103.163 376.837 96 368 96S352 103.163 352 112S359.163 128 368 128S384 120.837 384 112zM352 80C352 71.163 344.837 64 336 64S320 71.163 320 80S327.163 96 336 96S352 88.837 352 80zM320 48C320 39.163 312.837 32 304 32S288 39.163 288 48S295.163 64 304 64S320 56.837 320 48z" />
    +    <glyph glyph-name="shuttle-van"
    +      unicode="&#xF5B6;"
    +      horiz-adv-x="640" d=" M628.88 237.35L494.39 398.73A48.01 48.01 0 0 1 457.52 416H32C14.33 416 0 401.67 0 384V96C0 78.33 14.33 64 32 64H64C64 10.98 106.98 -32 160 -32S256 10.98 256 64H384C384 10.98 426.98 -32 480 -32S576 10.98 576 64H608C625.67 64 640 78.33 640 96V206.62C640 217.85 636.06 228.72 628.88 237.35zM64 256V352H160V256H64zM160 16C133.49 16 112 37.49 112 64S133.49 112 160 112S208 90.51 208 64S186.51 16 160 16zM320 256H224V352H320V256zM480 16C453.49 16 432 37.49 432 64S453.49 112 480 112S528 90.51 528 64S506.51 16 480 16zM384 256V352H450.02L530.02 256H384z" />
    +    <glyph glyph-name="sign-in-alt"
    +      unicode="&#xF2F6;"
    +      horiz-adv-x="512" d=" M416 0H332C325.4 0 320 5.4 320 12V52C320 58.6 325.4 64 332 64H416C433.7 64 448 78.3 448 96V288C448 305.7 433.7 320 416 320H332C325.4 320 320 325.4 320 332V372C320 378.6 325.4 384 332 384H416C469 384 512 341 512 288V96C512 43 469 0 416 0zM369 201L201 369C186 384 160 373.5 160 352V256H24C10.7 256 0 245.3 0 232V136C0 122.7 10.7 112 24 112H160V16C160 -5.5 186 -16 201 -1L369 167C378.3 176.4 378.3 191.6 369 201z" />
    +    <glyph glyph-name="sign-language"
    +      unicode="&#xF2A7;"
    +      horiz-adv-x="448" d=" M91.434 -35.987C91.127 -19.969 104.543 -6.858 120.564 -6.858H182.857V-1.144H56.993C40.972 -1.144 27.556 11.967 27.863 27.985C28.16 43.509 40.835 56 56.428 56H182.857V61.714H29.136C13.115 61.714 -0.301 74.825 0.006 90.843C0.303 106.365 12.979 118.856 28.572 118.856H182.858V124.57H57.707C41.686 124.57 28.27 137.681 28.577 153.699C28.874 169.221 41.55 181.712 57.143 181.712H225.709L194.624 204.318C181.862 213.599 179.041 231.467 188.322 244.23C197.603 256.991 215.472 259.812 228.234 250.532L351.5950000000001 160.817A34.287 34.287 0 0 0 365.7150000000001 133.089V-8.047C365.7150000000001 -23.957 354.769 -37.777 339.2820000000001 -41.421L258.8110000000001 -60.3550000000001A137.16 137.16 0 0 0 227.4000000000001 -64.0010000000001H120C104.407 -64.0000000000001 91.731 -51.5090000000001 91.434 -35.9870000000001zM164.683 189.714H201.106L189.919 197.8499999999999C171.34 211.3609999999999 169.606 238.737 186.749 254.386L173.745 271.0859999999999C163.902 283.7269999999999 145.315 286.257 132.865 276.1739999999999C120.8 266.4029999999999 118.732 248.7269999999999 128.312 236.4239999999999L164.683 189.714zM447.981 191.817L442.978 344.269C442.4600000000001 360.04 429.2560000000001 372.405 413.485 371.8879999999999C397.712 371.37 385.348 358.166 385.866 342.395L387.128 303.98L283.565 436.981C273.985 449.284 256.342 451.611 243.912 442.3090000000001C231.085 432.71 228.983 414.069 238.826 401.428L315.715 302.683L311.206 299.1720000000001L216.416 420.906C206.8359999999999 433.209 189.1929999999999 435.536 176.763 426.234C163.936 416.635 161.834 397.994 171.6769999999999 385.353L266.12 264.065L261.611 260.554L183.9359999999999 360.308C174.3559999999999 372.611 156.7129999999999 374.938 144.2829999999999 365.636C131.4559999999999 356.0370000000001 129.3539999999999 337.396 139.1969999999999 324.755L191.2499999999999 257.906C203.7469999999999 266.163 220.3049999999999 266.1910000000001 232.9399999999999 257.002L356.2999999999999 167.288C367.2039999999999 159.358 373.7149999999999 146.573 373.7149999999999 133.09V116.091L434.779 163.64A34.285 34.285 0 0 1 447.981 191.817z" />
    +    <glyph glyph-name="sign-out-alt"
    +      unicode="&#xF2F5;"
    +      horiz-adv-x="512" d=" M497 175L329 7C314 -8 288 2.5 288 24V120H152C138.7 120 128 130.7 128 144V240C128 253.3 138.7 264 152 264H288V360C288 381.4 313.9 392 329 377L497 209C506.3 199.6 506.3 184.4 497 175zM192 12V52C192 58.6 186.6 64 180 64H96C78.3 64 64 78.3 64 96V288C64 305.7 78.3 320 96 320H180C186.6 320 192 325.4 192 332V372C192 378.6 186.6 384 180 384H96C43 384 0 341 0 288V96C0 43 43 0 96 0H180C186.6 0 192 5.4 192 12z" />
    +    <glyph glyph-name="sign"
    +      unicode="&#xF4D9;"
    +      horiz-adv-x="512" d=" M496 384H128V432C128 440.8 120.8 448 112 448H80C71.2 448 64 440.8 64 432V384H16C7.2 384 0 376.8 0 368V336C0 327.2 7.2 320 16 320H64V-48C64 -56.8 71.2 -64 80 -64H112C120.8 -64 128 -56.8 128 -48V320H496C504.8 320 512 327.2 512 336V368C512 376.8 504.8 384 496 384zM160 64H480V288H160V64z" />
    +    <glyph glyph-name="signal"
    +      unicode="&#xF012;"
    +      horiz-adv-x="640" d=" M216 160H168C159.16 160 152 152.84 152 144V-48C152 -56.84 159.16 -64 168 -64H216C224.84 -64 232 -56.84 232 -48V144C232 152.84 224.84 160 216 160zM88 64H40C31.16 64 24 56.84 24 48V-48C24 -56.84 31.16 -64 40 -64H88C96.84 -64 104 -56.84 104 -48V48C104 56.84 96.84 64 88 64zM344 256H296C287.1600000000001 256 280 248.84 280 240V-48C280 -56.84 287.1600000000001 -64 296 -64H344C352.84 -64 360 -56.84 360 -48V240C360 248.84 352.84 256 344 256zM472 352H424C415.1600000000001 352 408 344.8400000000001 408 336V-48C408 -56.84 415.1600000000001 -64 424 -64H472C480.84 -64 488 -56.84 488 -48V336C488 344.8400000000001 480.84 352 472 352zM600 448H552C543.16 448 536 440.84 536 432V-48C536 -56.84 543.16 -64 552 -64H600C608.84 -64 616 -56.84 616 -48V432C616 440.84 608.84 448 600 448z" />
    +    <glyph glyph-name="signature"
    +      unicode="&#xF5B7;"
    +      horiz-adv-x="512" d=" M496 128H404.14C394.87 128 384.42 139.31 378.36 156.52C363.13 199.88 330.25 226.82 292.56 226.82C261.7200000000001 226.82 234.09 208.77 216.45 177.59L194.8 341.5C188.84 366.92 169.34 384 146.28 384C123.23 384 103.73 366.92 97.78 341.5L56.16 163.8C50.7 140.55 37.75 128 28.33 128H16C7.16 128 0 120.84 0 112V80C0 71.16 7.16 64 16 64H28.33C70.3 64 106.52 98.23 118.47 149.2L142.31 250.98L171.56 28.87C173.54 13.82 185.38 1.42 200.5 0.12C201.49 0.03 202.46 -0.01 203.43 -0.01C217.51 -0.01 230.07 9.26 234.12 22.94L267.15 135.28C273.03 152 282.99 162.8 292.56 162.8C302.14 162.8 312.11 152 318.3400000000001 134.28C333.5700000000001 90.92 366.4500000000001 63.98 404.1400000000001 63.98H496C504.84 63.98 512 71.14 512 79.98V111.98C512 120.84 504.84 128 496 128z" />
    +    <glyph glyph-name="sitemap"
    +      unicode="&#xF0E8;"
    +      horiz-adv-x="640" d=" M128 96H32C14.33 96 0 81.67 0 64V-32C0 -49.67 14.33 -64 32 -64H128C145.67 -64 160 -49.67 160 -32V64C160 81.67 145.67 96 128 96zM104 176H296V128H344V176H536V128H584V185.59C584 206.7600000000001 566.77 224 545.59 224H344V288H384C401.67 288 416 302.3300000000001 416 320V416C416 433.67 401.67 448 384 448H256C238.33 448 224 433.67 224 416V320C224 302.33 238.33 288 256 288H296V224H94.41C73.23 224 56 206.77 56 185.59V128H104V176zM368 96H272C254.33 96 240 81.67 240 64V-32C240 -49.67 254.33 -64 272 -64H368C385.67 -64 400 -49.67 400 -32V64C400 81.67 385.67 96 368 96zM608 96H512C494.33 96 480 81.67 480 64V-32C480 -49.67 494.33 -64 512 -64H608C625.67 -64 640 -49.67 640 -32V64C640 81.67 625.67 96 608 96z" />
    +    <glyph glyph-name="skull-crossbones"
    +      unicode="&#xF714;"
    +      horiz-adv-x="448" d=" M439.15 -5.06L297.17 64L439.1600000000001 133.06C447.06 137.01 450.2700000000001 146.62 446.31 154.52L432 183.15C428.05 191.05 418.44 194.26 410.53 190.31L224 99.59L37.47 190.31C29.57 194.26 19.96 191.06 16 183.15L1.69 154.52C-2.26 146.62 0.94 137.01 8.84 133.06L150.83 64L8.85 -5.06C0.95 -9.01 -2.26 -18.62 1.7 -26.53L16.01 -55.16C19.96 -63.0599999999999 29.57 -66.27 37.48 -62.3099999999999L224 28.41L410.53 -62.3099999999999C418.43 -66.26 428.04 -63.0599999999999 432 -55.16L446.31 -26.53C450.26 -18.6199999999999 447.05 -9.01 439.15 -5.0599999999999zM150 210.72L144.52 184.85C141.85 172.23 149.94 160 160.97 160H287.05C298.08 160 306.17 172.23 303.5 184.85L298 210.72C339.78 233.13 368 273.4700000000001 368 320C368 390.69 303.53 448 224 448S80 390.69 80 320C80 273.4700000000001 108.22 233.13 150 210.72zM280 336C297.65 336 312 321.65 312 304S297.65 272 280 272S248 286.35 248 304S262.35 336 280 336zM168 336C185.65 336 200 321.65 200 304S185.65 272 168 272S136 286.35 136 304S150.35 336 168 336z" />
    +    <glyph glyph-name="skull"
    +      unicode="&#xF54C;"
    +      horiz-adv-x="512" d=" M256 448C114.6 448 0 347.7 0 224C0 153.9 36.9 91.4 94.5 50.3C104.1 43.4 109.7 32.2 108 20.4L98.6 -45.8C97.2 -55.4 104.6 -63.9999999999999 114.3 -63.9999999999999H192V-7.9999999999999C192 -3.6 195.6 1e-13 200 1e-13H216C220.4 1e-13 224 -3.6 224 -7.9999999999999V-63.9999999999999H288V-7.9999999999999C288 -3.6 291.6 1e-13 296 1e-13H312C316.4 1e-13 320 -3.6 320 -7.9999999999999V-63.9999999999999H397.7C407.4 -63.9999999999999 414.8 -55.3999999999999 413.4 -45.8L404 20.4C402.3 32.1 407.8 43.4 417.5 50.3C475.1 91.4 512 153.9 512 224C512 347.7 397.4 448 256 448zM160 128C124.7 128 96 156.7 96 192S124.7 256 160 256S224 227.3 224 192S195.3 128 160 128zM352 128C316.7 128 288 156.7 288 192S316.7 256 352 256S416 227.3 416 192S387.3 128 352 128z" />
    +    <glyph glyph-name="slash"
    +      unicode="&#xF715;"
    +      horiz-adv-x="640" d=" M594.53 -60.63L6.18 394.1C-0.79 399.52 -2.05 409.57 3.37 416.55L23.01 441.82C28.43 448.8 38.49 450.06 45.47 444.63L633.82 -10.1C640.7900000000001 -15.52 642.0500000000001 -25.57 636.63 -32.55L616.99 -57.82C611.57 -64.7999999999999 601.51 -66.0499999999999 594.53 -60.63z" />
    +    <glyph glyph-name="sliders-h"
    +      unicode="&#xF1DE;"
    +      horiz-adv-x="512" d=" M496 64H160V80C160 88.8 152.8 96 144 96H112C103.2 96 96 88.8 96 80V64H16C7.2 64 0 56.8 0 48V16C0 7.2 7.2 0 16 0H96V-16C96 -24.8 103.2 -32 112 -32H144C152.8 -32 160 -24.8 160 -16V0H496C504.8 0 512 7.2 512 16V48C512 56.8 504.8 64 496 64zM496 224H416V240C416 248.8 408.8 256 400 256H368C359.2 256 352 248.8 352 240V224H16C7.2 224 0 216.8 0 208V176C0 167.2 7.2 160 16 160H352V144C352 135.2 359.2 128 368 128H400C408.8 128 416 135.2 416 144V160H496C504.8 160 512 167.2 512 176V208C512 216.8 504.8 224 496 224zM496 384H288V400C288 408.8 280.8 416 272 416H240C231.2 416 224 408.8 224 400V384H16C7.2 384 0 376.8 0 368V336C0 327.2 7.2 320 16 320H224V304C224 295.2 231.2 288 240 288H272C280.8 288 288 295.2 288 304V320H496C504.8 320 512 327.2 512 336V368C512 376.8 504.8 384 496 384z" />
    +    <glyph glyph-name="smile-beam"
    +      unicode="&#xF5B8;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM112 224.6C115.3 266.7 144.2 296 168 296S220.7 266.7 224 224.6C224.7 216 213.2 212.7 209.1 220.1L199.6 237.1C191.9 250.8 180.4 258.7 168.1 258.7S144.3 250.8 136.6 237.1L127.1 220.1C122.8 212.7 111.3 216.1 112 224.6zM362.8 101.8C334.3 67.6 292.5 48 248 48S161.7 67.6 133.2 101.8C119.7 118.1 144.2 138.5 157.8 122.3C180.2 95.4 213 80.1 248 80.1S315.8 95.5 338.2 122.3C351.8 138.5 376.3 118 362.8 101.8zM369 220.1L359.5 237.1C351.8 250.8 340.3 258.7000000000001 328 258.7000000000001S304.2 250.8 296.5 237.1L287 220.1C282.9 212.8 271.4 216.1 272.1 224.6C275.4000000000001 266.7000000000001 304.3 296 328.1 296S380.8 266.7000000000001 384.1 224.6C384.7000000000001 216 373.1 212.7 369 220.1z" />
    +    <glyph glyph-name="smile-wink"
    +      unicode="&#xF4DA;"
    +      horiz-adv-x="496" d=" M0 192C0 55 111 -56 248 -56S496 55 496 192S385 440 248 440S0 329 0 192zM200 240C200 222.3 185.7 208 168 208S136 222.3 136 240S150.3 272 168 272S200 257.7 200 240zM358.5 223.5C343.7 236.7 312.3 236.7 297.5 223.5L288 215C279.7 207.6 266.4 214.6 268.2 225.8C272.2 251 302.4 267.9 328.1 267.9S384 251 388 225.8C389.7 214.7 376.6 207.5 368.2 215L358.5 223.5zM157.8 122.2C180.2 95.3 213 80 248 80S315.8 95.4 338.2 122.2C351.8 138.4 376.3 118 362.8 101.7C334.3 67.6 292.5 48 248 48S161.7 67.6 133.2 101.8C119.7 118.1 144.4 138.5 157.8 122.2z" />
    +    <glyph glyph-name="smile"
    +      unicode="&#xF118;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM328 272C345.7 272 360 257.7 360 240S345.7 208 328 208S296 222.3 296 240S310.3 272 328 272zM168 272C185.7 272 200 257.7 200 240S185.7 208 168 208S136 222.3 136 240S150.3 272 168 272zM362.8 101.8C334.3 67.6 292.5 48 248 48S161.7 67.6 133.2 101.8C119.6 118.1 144.2 138.5 157.8 122.3C180.2 95.4 213 80.1 248 80.1S315.8 95.5 338.2 122.3C351.6 138.5 376.3 118.1 362.8 101.8z" />
    +    <glyph glyph-name="smoking-ban"
    +      unicode="&#xF54D;"
    +      horiz-adv-x="512" d=" M96 144C96 135.2 103.2 128 112 128H229.5L133.5 224H112C103.2 224 96 216.8 96 208V144zM256 448C114.6 448 0 333.4 0 192S114.6 -64 256 -64S512 50.6 512 192S397.4 448 256 448zM256 0C150.1 0 64 86.1 64 192C64 233.4 77.3 271.7 99.7 303.1L367.1 35.7C335.7 13.3 297.4 0 256 0zM301.2 192H384V160H333.2L301.2 192zM412.3 80.9L365.2 128H400C408.8 128 416 135.2 416 144V208C416 216.8 408.8 224 400 224H269.2L144.9 348.3C176.3 370.7 214.6 384 256 384C361.9 384 448 297.9 448 192C448 150.6 434.7 112.3 412.3 80.9zM320.6 320C305 320 292 331.2 289.2000000000001 345.9C288.5000000000001 349.5 285.2000000000001 352 281.5000000000001 352H265.3000000000001C260.3000000000001 352 256.6000000000001 347.5 257.3000000000001 342.6C261.9000000000001 311.7 288.5000000000001 288 320.6000000000001 288C336.2000000000001 288 349.2000000000001 276.8 352.0000000000001 262.1C352.7000000000001 258.5 356.0000000000001 256 359.7000000000001 256H375.9000000000001C380.9000000000001 256 384.6 260.5 383.9000000000001 265.4C379.3 296.3 352.7000000000001 320 320.6 320z" />
    +    <glyph glyph-name="smoking"
    +      unicode="&#xF48D;"
    +      horiz-adv-x="640" d=" M632 96H584C579.6 96 576 92.4 576 88V-56C576 -60.4 579.6 -64 584 -64H632C636.4 -64 640 -60.4 640 -56V88C640 92.4 636.4 96 632 96zM553.3 360.9C547.5999999999999 364.7 544 370.9 544 377.7V440C544 444.4 540.4 448 536 448H488C483.6 448 480 444.4 480 440V377.7C480 355.7 490.2 334.3 508.6 322.3C550.8000000000001 295 576 248.5 576 198.3V168C576 163.6 579.6 160 584 160H632C636.4 160 640 163.6 640 168V198.3C640 263.8 607.6 324.5 553.3 360.9zM432 96H48C21.5 96 0 74.5 0 48V-16C0 -42.5 21.5 -64 48 -64H432C440.8 -64 448 -56.8 448 -48V80C448 88.8 440.8 96 432 96zM400 -16H224V48H400V-16zM487.7 306.4C463.8 323 448 348.7 448 377.7V440C448 444.4 444.4 448 440 448H392C387.6 448 384 444.4 384 440V373.6C384 329.9 408.6 292 444.3 266.9C466.7 251.2 480 225.7 480 198.3V168C480 163.6 483.6 160 488 160H536C540.4 160 544 163.6 544 168V198.3C544 241.6 523 281.7000000000001 487.7 306.4zM536 96H488C483.6 96 480 92.4 480 88V-56C480 -60.4 483.6 -64 488 -64H536C540.4 -64 544 -60.4 544 -56V88C544 92.4 540.4 96 536 96z" />
    +    <glyph glyph-name="snowflake"
    +      unicode="&#xF2DC;"
    +      horiz-adv-x="448" d=" M444.816 146.361A24.12 24.12 0 0 1 447.477 163.339C444.752 176.305 432.138 184.584 419.303 181.831L331.896 156.785L264 192L331.896 227.215L419.303 202.169C432.138 199.416 444.752 207.695 447.477 220.661C450.202 233.627 442.006 246.369 429.172 249.122L381.695 256.259L434.772 287.2150000000001C446.135 293.842 450.029 308.521 443.468 320C436.9070000000001 331.479 422.377 335.4120000000001 411.014 328.785L357.937 297.829L375.558 342.933C379.615 355.539 372.79 369.079 360.311 373.178C347.833 377.2770000000001 334.428 370.3810000000001 330.371 357.776L308.139 268.786L247.759 233.571V304L312.9340000000001 367.945C321.7120000000001 377.7970000000001 320.9210000000001 392.972 311.168 401.839C301.415 410.706 286.3930000000001 409.907 277.616 400.055L247.759 362.088V424C247.759 437.255 237.122 448 224.001 448S200.243 437.255 200.243 424V362.088L170.386 400.055C161.607 409.907 146.587 410.707 136.834 401.839C127.081 392.972 126.291 377.7970000000001 135.068 367.945L200.242 304V233.569L139.862 268.784L117.63 357.774C113.573 370.379 100.168 377.2750000000001 87.69 373.1760000000001C75.212 369.077 68.386 355.536 72.443 342.9310000000001L90.063 297.827L36.986 328.783C25.623 335.41 11.093 331.477 4.532 319.998S1.865 293.841 13.228 287.213L66.305 256.257L18.828 249.12C5.993 246.366 -2.203 233.625 0.523 220.659C3.248 207.694 15.862 199.414 28.697 202.167L116.104 227.213L184 192L116.104 156.785L28.698 181.83C15.863 184.583 3.249 176.304 0.524 163.338C-2.201 150.371 5.994 137.63 18.829 134.877L66.306 127.74L13.229 96.7839999999999C1.866 90.157 -2.027 75.479 4.533 64S25.624 48.588 36.987 55.215L90.064 86.171L72.444 41.067A24.157 24.157 0 0 1 74.466 21.639C77.297 16.686 81.882 12.73 87.69 10.823C100.168 6.724 113.573 13.6200000000001 117.63 26.225L139.862 115.215L200.242 150.4300000000001V80L135.067 16.055C126.289 6.203 127.08 -8.972 136.833 -17.839C146.587 -26.707 161.607 -25.907 170.385 -16.055L200.242 21.912V-40C200.242 -53.255 210.879 -64 224 -64S247.758 -53.255 247.758 -40V21.912L277.615 -16.055A23.59 23.59 0 0 1 295.282 -24A23.534 23.534 0 0 1 311.167 -17.839C320.92 -8.972 321.711 6.203 312.933 16.055L247.758 80V150.431L308.1380000000001 115.216L330.37 26.226C334.427 13.621 347.832 6.725 360.31 10.824C372.789 14.923 379.614 28.464 375.557 41.069L357.9360000000001 86.173L411.0130000000001 55.217C422.3760000000001 48.59 436.9060000000001 52.523 443.4670000000001 64.002S446.134 90.159 434.771 96.787L381.694 127.7430000000001L429.171 134.8800000000001C436.031 136.3490000000001 441.565 140.6730000000001 444.816 146.3610000000001z" />
    +    <glyph glyph-name="socks"
    +      unicode="&#xF696;"
    +      horiz-adv-x="512" d=" M214.66 136.99L288 192V352H128V176L41.35 111.39C1.95 81.83 -12.51 26.97 12.14 -15.67C30.39 -47.25 63.27 -64 96.08 -64C116.11 -64 136.33 -57.75 153.6 -44.8L175.46 -28.41C145.61 26.97 161.92 97.43 214.66 136.99zM288 416C288 427.05 291.07 437.3 296.02 446.38C293.4 447.08 290.85 448 288 448H160C142.33 448 128 433.67 128 416V384H288V416zM480 448H352C334.33 448 320 433.67 320 416V384H512V416C512 433.67 497.67 448 480 448zM320 176L233.87 111.39C194.47 81.83 180.01 26.97 204.66 -15.67C222.91 -47.25 255.27 -64 288.08 -64C308.11 -64 328.33 -57.75 345.6 -44.8L460.8 41.6A127.99699999999999 127.99699999999999 0 0 1 512 144V352H320V176z" />
    +    <glyph glyph-name="solar-panel"
    +      unicode="&#xF5BA;"
    +      horiz-adv-x="640" d=" M431.98 -0.01L384.01 -0.06V32H256.01V-0.21L208.03 -0.26C199.21 -0.27 192.06 -7.42 192.05 -16.25L192 -47.98C191.99 -56.83 199.17 -64.01 208.02 -64L431.98 -63.74C440.8 -63.73 447.9500000000001 -56.58 447.9600000000001 -47.76L448.0000000000001 -16.03C448.0100000000001 -7.1799999999999 440.8300000000001 0 431.9800000000001 -0.01zM585.2 421.26C582.58 436.69 568.99 448 553.06 448H86.93C71 448 57.41 436.69 54.79 421.26C-3.32 78.84 0.04 99.92 0.03 96C0 78.68 14.32 64 32.63 64H607.37C625.6 64 639.88 78.56 639.96 95.79C639.98 99.87 643.3100000000001 78.84 585.2 421.2600000000001zM259.83 384H380.16L389.93 288H250.06L259.83 384zM184.66 128H71.09L90.1 240H196.07L184.66 128zM200.95 288H98.24L114.53 384H210.72L200.95 288zM233.77 128L245.17 240H394.82L406.2199999999999 128H233.77zM429.27 384H525.46L541.75 288H439.04L429.2700000000001 384zM455.33 128L443.93 240H549.9L568.91 128H455.33z" />
    +    <glyph glyph-name="sort-alpha-down"
    +      unicode="&#xF15D;"
    +      horiz-adv-x="448" d=" M187.298 52.686L107.314 -27.316C101.066 -33.563 90.931 -33.561 84.687 -27.316L4.705 52.686C-5.365 62.756 1.807 80 16.019 80H64V400C64 408.837 71.163 416 80 416H112C120.837 416 128 408.837 128 400V80H175.984C190.225 80 197.347 62.736 187.298 52.686zM306.373 232.693A12 12 0 0 0 294.838 224H259.1210000000001C250.9010000000001 224 245.1140000000001 232.078 247.7590000000001 239.861L304.855 407.861A12 12 0 0 0 316.217 416H355.783C360.9220000000001 416 365.4910000000001 412.727 367.1450000000001 407.861L424.2410000000001 239.861C426.886 232.078 421.1 224 412.879 224H377.144A12 12 0 0 0 365.629 232.622L357.3280000000001 260.9210000000001H314.4650000000001L306.3730000000001 232.693zM329.23 311.39H342.5970000000001L335.997 334.327L329.23 311.39zM341.805 24.067L409.256 119.765A12 12 0 0 1 411.448 126.678V148C411.448 154.627 406.075 160 399.448 160H274.522C267.895 160 262.522 154.627 262.522 148V119.07C262.522 112.443 267.895 107.07 274.522 107.07H330.991C330.252 106.079 329.494 105.034 328.721 103.937L261.5180000000001 8.732A12.001000000000001 12.001000000000001 0 0 1 259.322 1.812V-20C259.322 -26.627 264.695 -32 271.322 -32H400.677C407.3040000000001 -32 412.677 -26.627 412.677 -20V8.93C412.677 15.557 407.3040000000001 20.93 400.677 20.93H339.531C340.271 21.923 341.031 22.969 341.805 24.067z" />
    +    <glyph glyph-name="sort-alpha-up"
    +      unicode="&#xF15E;"
    +      horiz-adv-x="448" d=" M4.702 331.314L84.686 411.316C90.934 417.563 101.069 417.561 107.313 411.316L187.294 331.314C197.364 321.2440000000001 190.193 304 175.98 304H128V-16C128 -24.837 120.837 -32 112 -32H80C71.163 -32 64 -24.837 64 -16V304H16.016C1.775 304 -5.347 321.264 4.702 331.314zM306.373 232.693A12 12 0 0 0 294.838 224H259.1210000000001C250.9010000000001 224 245.1140000000001 232.078 247.7590000000001 239.861L304.855 407.861A12 12 0 0 0 316.217 416H355.783C360.9220000000001 416 365.4910000000001 412.727 367.1450000000001 407.861L424.2410000000001 239.861C426.886 232.078 421.1 224 412.879 224H377.144A12 12 0 0 0 365.629 232.622L357.3280000000001 260.9210000000001H314.4650000000001L306.3730000000001 232.693zM329.23 311.39H342.5970000000001L335.997 334.327L329.23 311.39zM341.805 24.067L409.256 119.765A12 12 0 0 1 411.448 126.678V148C411.448 154.627 406.075 160 399.448 160H274.522C267.895 160 262.522 154.627 262.522 148V119.07C262.522 112.443 267.895 107.07 274.522 107.07H330.991C330.252 106.079 329.494 105.034 328.721 103.937L261.5180000000001 8.732A12.001000000000001 12.001000000000001 0 0 1 259.322 1.812V-20C259.322 -26.627 264.695 -32 271.322 -32H400.677C407.3040000000001 -32 412.677 -26.627 412.677 -20V8.93C412.677 15.557 407.3040000000001 20.93 400.677 20.93H339.531C340.271 21.923 341.031 22.969 341.805 24.067z" />
    +    <glyph glyph-name="sort-amount-down"
    +      unicode="&#xF160;"
    +      horiz-adv-x="512" d=" M187.298 52.686L107.314 -27.316C101.066 -33.563 90.931 -33.561 84.687 -27.316L4.705 52.686C-5.365 62.756 1.807 80 16.019 80H64V400C64 408.837 71.163 416 80 416H112C120.837 416 128 408.837 128 400V80H175.984C190.225 80 197.347 62.736 187.298 52.686zM240 352H496C504.837 352 512 359.163 512 368V400C512 408.837 504.837 416 496 416H240C231.163 416 224 408.837 224 400V368C224 359.163 231.163 352 240 352zM224 240V272C224 280.837 231.163 288 240 288H432C440.837 288 448 280.837 448 272V240C448 231.163 440.837 224 432 224H240C231.163 224 224 231.163 224 240zM224 -16V16C224 24.837 231.163 32 240 32H304C312.837 32 320 24.837 320 16V-16C320 -24.837 312.837 -32 304 -32H240C231.163 -32 224 -24.837 224 -16zM224 112V144C224 152.837 231.163 160 240 160H368C376.837 160 384 152.837 384 144V112C384 103.163 376.837 96 368 96H240C231.163 96 224 103.163 224 112z" />
    +    <glyph glyph-name="sort-amount-up"
    +      unicode="&#xF161;"
    +      horiz-adv-x="512" d=" M4.702 331.314L84.686 411.316C90.934 417.563 101.069 417.561 107.313 411.316L187.294 331.314C197.364 321.2440000000001 190.193 304 175.98 304H128V-16C128 -24.837 120.837 -32 112 -32H80C71.163 -32 64 -24.837 64 -16V304H16.016C1.775 304 -5.347 321.264 4.702 331.314zM240 352H496C504.837 352 512 359.163 512 368V400C512 408.837 504.837 416 496 416H240C231.163 416 224 408.837 224 400V368C224 359.163 231.163 352 240 352zM224 240V272C224 280.837 231.163 288 240 288H432C440.837 288 448 280.837 448 272V240C448 231.163 440.837 224 432 224H240C231.163 224 224 231.163 224 240zM224 -16V16C224 24.837 231.163 32 240 32H304C312.837 32 320 24.837 320 16V-16C320 -24.837 312.837 -32 304 -32H240C231.163 -32 224 -24.837 224 -16zM224 112V144C224 152.837 231.163 160 240 160H368C376.837 160 384 152.837 384 144V112C384 103.163 376.837 96 368 96H240C231.163 96 224 103.163 224 112z" />
    +    <glyph glyph-name="sort-down"
    +      unicode="&#xF0DD;"
    +      horiz-adv-x="320" d=" M41 160H279C300.4 160 311.1 134.1 296 119L177 0C167.6 -9.4 152.4 -9.4 143.1 0L24 119C8.9 134.1 19.6 160 41 160z" />
    +    <glyph glyph-name="sort-numeric-down"
    +      unicode="&#xF162;"
    +      horiz-adv-x="448" d=" M308.811 334.213L289.363 355.008C284.841 359.844 285.089 367.429 289.919 371.958L333.362 412.699A11.999000000000002 11.999000000000002 0 0 0 341.571 415.9460000000001H373.162C379.789 415.9460000000001 385.162 410.573 385.162 403.9460000000001V276.876H410.822C417.449 276.876 422.822 271.5030000000001 422.822 264.876V235.946C422.822 229.319 417.449 223.946 410.822 223.946H301.649C295.022 223.946 289.649 229.319 289.649 235.946V264.876C289.649 271.5030000000001 295.022 276.876 301.649 276.876H327.063V334.814C319.809 328.2340000000001 312.852 329.8930000000001 308.811 334.213zM278.241 95.644C278.241 128.297 302.106 163 346.335 163C384.588 163 425.759 134.139 425.759 70.772C425.759 19.496 393.522 -35 333.776 -35C315.94 -35 303.23 -31.443 295.228 -28.219C289.438 -25.886 286.439 -19.473 288.306 -13.516L297.543 15.964C299.5780000000001 22.46 306.592 25.947 313.01 23.68C326.039 19.078 340.888 18.405 351.113 27.818C312.371 22.746 278.241 53.178 278.241 95.644zM370.514 76.306C370.514 98.591 355.212 112.811 344.6790000000001 112.811C336.0370000000001 112.811 331.5150000000001 104.846 331.5150000000001 96.979C331.5150000000001 91.31 333.3300000000001 72.811 356.6830000000001 72.811C366.6560000000001 72.811 370.0600000000001 74.965 370.427 75.542C370.4480000000001 75.588 370.514 75.833 370.514 76.306zM175.984 80H128V400C128 408.837 120.837 416 112 416H80C71.163 416 64 408.837 64 400V80H16.019C1.807 80 -5.365 62.756 4.705 52.686L84.686 -27.316C90.931 -33.561 101.066 -33.563 107.313 -27.316L187.297 52.686C197.347 62.736 190.225 80 175.984 80z" />
    +    <glyph glyph-name="sort-numeric-up"
    +      unicode="&#xF163;"
    +      horiz-adv-x="448" d=" M308.811 334.213L289.363 355.008C284.841 359.844 285.089 367.429 289.919 371.958L333.362 412.699A11.999000000000002 11.999000000000002 0 0 0 341.571 415.9460000000001H373.162C379.789 415.9460000000001 385.162 410.573 385.162 403.9460000000001V276.876H410.822C417.449 276.876 422.822 271.5030000000001 422.822 264.876V235.946C422.822 229.319 417.449 223.946 410.822 223.946H301.649C295.022 223.946 289.649 229.319 289.649 235.946V264.876C289.649 271.5030000000001 295.022 276.876 301.649 276.876H327.063V334.814C319.809 328.2340000000001 312.852 329.8930000000001 308.811 334.213zM278.241 95.644C278.241 128.297 302.106 163 346.335 163C384.588 163 425.759 134.139 425.759 70.772C425.759 19.496 393.522 -35 333.776 -35C315.94 -35 303.23 -31.443 295.228 -28.219C289.438 -25.886 286.439 -19.473 288.306 -13.516L297.543 15.964C299.5780000000001 22.46 306.592 25.947 313.01 23.68C326.039 19.078 340.888 18.405 351.113 27.818C312.371 22.746 278.241 53.178 278.241 95.644zM370.514 76.306C370.514 98.591 355.212 112.811 344.6790000000001 112.811C336.0370000000001 112.811 331.5150000000001 104.846 331.5150000000001 96.979C331.5150000000001 91.31 333.3300000000001 72.811 356.6830000000001 72.811C366.6560000000001 72.811 370.0600000000001 74.965 370.427 75.542C370.4480000000001 75.588 370.514 75.833 370.514 76.306zM16.016 304H64V-16C64 -24.837 71.163 -32 80 -32H112C120.837 -32 128 -24.837 128 -16V304H175.981C190.193 304 197.365 321.2440000000001 187.295 331.314L107.314 411.316C101.069 417.561 90.934 417.563 84.687 411.316L4.702 331.314C-5.347 321.264 1.775 304 16.016 304z" />
    +    <glyph glyph-name="sort-up"
    +      unicode="&#xF0DE;"
    +      horiz-adv-x="320" d=" M279 224H41C19.6 224 8.9 249.9 24 265L143 384C152.4 393.4 167.6 393.4 176.9 384L295.9 265C311.1 249.9 300.4 224 279 224z" />
    +    <glyph glyph-name="sort"
    +      unicode="&#xF0DC;"
    +      horiz-adv-x="320" d=" M41 160H279C300.4 160 311.1 134.1 296 119L177 0C167.6 -9.4 152.4 -9.4 143.1 0L24 119C8.9 134.1 19.6 160 41 160zM296 265L177 384C167.6 393.4 152.4 393.4 143.1 384L24 265C8.9 249.9 19.6 224 41 224H279C300.4 224 311.1 249.9 296 265z" />
    +    <glyph glyph-name="spa"
    +      unicode="&#xF5BB;"
    +      horiz-adv-x="576" d=" M568.25 256C539.21 255.87 433.24 249.84 354.41 173C321.29 143.37 301.05 109.7 288 78.14C274.95 109.7 254.71 143.37 221.59 173C142.76 249.84 36.79 255.87 7.75 256C3.34 256.02 -0.04 252.6 0 248.18C0.23 220.26 7.14 122.04 88.77 48.88C172.79 -32.94 256 -32 288 -32S403.19 -32.95 487.23 48.88C568.87 122.05 575.77 220.26 576 248.18C576.04 252.6 572.66 256.02 568.25 256zM287.98 145.4C300.8 164.25 315.5800000000001 181.18 332.0700000000001 195.92C351.1600000000001 214.53 371.6500000000001 229.22 392.3300000000001 241.1C375.8900000000001 311.6 340.61 374.15 295.6 413.32C291.49 416.9 284.5800000000001 416.9 280.4600000000001 413.32C235.4700000000001 374.18 200.1900000000001 311.69 183.72 241.25C204.09 229.55 224.22 215.11 242.9400000000001 196.86A282.768 282.768 0 0 0 287.98 145.4z" />
    +    <glyph glyph-name="space-shuttle"
    +      unicode="&#xF197;"
    +      horiz-adv-x="640" d=" M592.604 239.756C559.735 255.164 515.777 264 472 264H186.327C181.375 270.555 175.742 275.978 169.607 280H376C229.157 310.253 219.403 416 96.003 416H96V288H80V416C53.49 416 32 387.346 32 352V288C8.803 288 0 277.968 0 264V224C0 210.017 8.819 200 32 200V184C8.803 184 0 173.968 0 160V120C0 106.017 8.819 96 32 96V32C32 -3.346 53.49 -32 80 -32V96H96V-32H96.003C219.403 -32 229.157 73.747 376 104H169.606C175.741 108.022 181.374 113.445 186.326 120H472C515.777 120 559.735 128.836 592.604 144.244C622.282 158.155 640 176.008 640 192S622.282 225.845 592.604 239.756zM488 152A8 8 0 0 0 480 160V224A8 8 0 0 0 488 232C519.909 232 519.942 152 488 152z" />
    +    <glyph glyph-name="spider"
    +      unicode="&#xF717;"
    +      horiz-adv-x="576" d=" M151.17 280.65L177.1 272H181.77L186.99 298.12C187.71 301.7000000000001 188.79 305.7000000000001 190.2 309.91L169.91 350.49L193.71 421.88C196.5 430.26 191.98 439.32 183.59 442.12L168.42 447.18C160.04 449.98 150.97 445.45 148.18 437.06L122.29 359.38A32.04 32.04 0 0 1 124.02 334.95L151.17 280.65zM573.31 98.62L520.56 177.74A32.002 32.002 0 0 1 493.9399999999999 191.99H416L484.99 216.35A32.03 32.03 0 0 1 501.5 228.9600000000001L555.1 309.37C560 316.7200000000001 558.01 326.6600000000001 550.66 331.5600000000001L537.35 340.4400000000001C530 345.3400000000001 520.0600000000001 343.35 515.16 336L464.6 260.17L404.1 240H368L357.63 291.85C355.44 302.82 340.26 352 288 352C235.74 352 220.56 302.82 218.37 291.85L208 240H171.9L111.41 260.17L60.84 336C55.94 343.35 46.01 345.3400000000001 38.65 340.44L25.34 331.56C17.99 326.66 16 316.73 20.9 309.37L74.5 228.96A32.03 32.03 0 0 1 91.01 216.35L160 192H82.06A32.02 32.02 0 0 1 55.43 177.75L2.69 98.62C-2.21 91.27 -0.23 81.33 7.13 76.43L20.44 67.55C27.79 62.65 37.73 64.64 42.63 71.99L90.63 143.99H137.69L76.86 46.66A31.988 31.988 0 0 1 72 29.7V-48C72 -56.84 79.16 -64 88 -64H104C112.84 -64 120 -56.84 120 -48V25.11L194.08 143.64C193.07 129.59 192 115.53 192 101.43C192 48.36 232.76 0 288 0S384 48.36 384 101.43C384 115.53 382.92 129.59 381.92 143.64L456 25.11V-48C456 -56.84 463.16 -64 472 -64H488C496.84 -64 504 -56.84 504 -48V29.71C504 35.71 502.31 41.59 499.14 46.67L438.31 144H485.37L533.37 72C538.27 64.65 548.21 62.66 555.5600000000001 67.56L568.87 76.44C576.23 81.34 578.21 91.27 573.3100000000001 98.62zM406.09 350.49L385.8 309.91C387.21 305.7 388.29 301.7 389.01 298.12L394.23 272H398.9L424.83 280.65L451.98 334.95A31.995 31.995 0 0 1 453.71 359.38L427.82 437.06C425.03 445.44 415.96 449.98 407.58 447.18L392.41 442.12C384.03 439.32 379.5 430.26 382.29 421.88L406.09 350.49z" />
    +    <glyph glyph-name="spinner"
    +      unicode="&#xF110;"
    +      horiz-adv-x="512" d=" M304 400C304 373.49 282.51 352 256 352S208 373.49 208 400S229.49 448 256 448S304 426.51 304 400zM256 32C229.49 32 208 10.51 208 -16S229.49 -64 256 -64S304 -42.51 304 -16S282.51 32 256 32zM464 240C437.49 240 416 218.51 416 192S437.49 144 464 144S512 165.49 512 192S490.51 240 464 240zM96 192C96 218.51 74.51 240 48 240S0 218.51 0 192S21.49 144 48 144S96 165.49 96 192zM108.922 92.922C82.412 92.922 60.922 71.432 60.922 44.922S82.412 -3.078 108.922 -3.078S156.922 18.412 156.922 44.922C156.922 71.431 135.431 92.922 108.922 92.922zM403.078 92.922C376.568 92.922 355.078 71.432 355.078 44.922S376.568 -3.078 403.078 -3.078S451.078 18.412 451.078 44.922C451.078 71.431 429.588 92.922 403.078 92.922zM108.922 387.078C82.412 387.078 60.922 365.588 60.922 339.078S82.412 291.078 108.922 291.078S156.922 312.568 156.922 339.078S135.431 387.078 108.922 387.078z" />
    +    <glyph glyph-name="splotch"
    +      unicode="&#xF5BC;"
    +      horiz-adv-x="512" d=" M472.29 252.11L405.23 275.06C385.9500000000001 281.66 371.69 295.98 367.0900000000001 313.36L351.1 373.81C339.5200000000001 417.58 274.5300000000001 430.94 241.12 396.43L194.98 348.76C181.72 335.05 161.44 327.8300000000001 140.78 329.45L68.9 335.07C16.85 339.14 -18.03 290.19 9.87 252.24L48.41 199.82C59.49 184.75 61.23 165.96 53.05 149.58L24.62 92.6C4.03 51.35 47.46 7.73 98.11 18.79L168.07 34.07C188.18 38.46 209.52 34.07 225.14 22.34L279.46 -18.49C318.78 -48.05 380.5 -26.06 383.91 18.73L388.61 80.59C389.96 98.3800000000001 401.41 114.4500000000001 419.24 123.5800000000001L481.24 155.3200000000001C526.12 178.28 520.8299999999999 235.4900000000001 472.29 252.1100000000001z" />
    +    <glyph glyph-name="spray-can"
    +      unicode="&#xF5BD;"
    +      horiz-adv-x="512" d=" M224 416C224 433.67 209.67 448 192 448H128C110.33 448 96 433.67 96 416V320H224V416zM480 320C462.33 320 448 305.67 448 288S462.33 256 480 256S512 270.3300000000001 512 288S497.67 320 480 320zM224 288H96C42.98 288 0 245.02 0 192V-32C0 -49.67 14.33 -64 32 -64H288C305.67 -64 320 -49.67 320 -32V192C320 245.02 277.02 288 224 288zM160 32C115.82 32 80 67.82 80 112S115.82 192 160 192S240 156.18 240 112S204.18 32 160 32zM480 352C497.67 352 512 366.33 512 384S497.67 416 480 416S448 401.67 448 384S462.33 352 480 352zM384 320C366.33 320 352 305.67 352 288S366.33 256 384 256S416 270.3300000000001 416 288S401.67 320 384 320zM288 416C270.33 416 256 401.67 256 384S270.33 352 288 352S320 366.33 320 384S305.67 416 288 416zM384 416C366.33 416 352 401.67 352 384S366.33 352 384 352S416 366.33 416 384S401.67 416 384 416zM480 224C462.33 224 448 209.67 448 192S462.33 160 480 160S512 174.33 512 192S497.67 224 480 224z" />
    +    <glyph glyph-name="square-full"
    +      unicode="&#xF45C;"
    +      horiz-adv-x="512" d=" M512 -64H0V448H512V-64z" />
    +    <glyph glyph-name="square-root-alt"
    +      unicode="&#xF698;"
    +      horiz-adv-x="576" d=" M571.31 196.69L548.6899999999999 219.31C542.4399999999999 225.56 532.31 225.56 526.06 219.31L480 173.25L433.94 219.31C427.69 225.56 417.56 225.56 411.31 219.31L388.69 196.69C382.44 190.44 382.44 180.31 388.69 174.06L434.75 128L388.69 81.94C382.44 75.69 382.44 65.56 388.69 59.31L411.31 36.69C417.56 30.44 427.69 30.44 433.94 36.69L480 82.75L526.06 36.69C532.31 30.44 542.4399999999999 30.44 548.6899999999999 36.69L571.31 59.31C577.56 65.56 577.56 75.69 571.31 81.94L525.25 128L571.31 174.06C577.56 180.31 577.56 190.44 571.31 196.69zM552 448H307.65C293.11 448 280.39 438.2 276.7 424.13L191.91 101.33L133.5 207.43A32.008 32.008 0 0 1 105.47 224H24C10.75 224 0 213.26 0 200V152C0 138.75 10.75 128 24 128H67.62L156.5 -35.73C168.99 -55.5 186.3 -64 204.94 -64C222.21 -64 249.38 -55 259.2200000000001 -22.52L357.03 352H552C565.25 352 576 362.75 576 376V424C576 437.26 565.25 448 552 448z" />
    +    <glyph glyph-name="square"
    +      unicode="&#xF0C8;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416z" />
    +    <glyph glyph-name="stamp"
    +      unicode="&#xF5BF;"
    +      horiz-adv-x="512" d=" M32 -64H480V0H32V-64zM416 192H349.44C333.18 192 320 205.18 320 221.44V230.9C320 258.27 328.88 284.31 341.46 308.62C350.57 326.23 354.36 347.01 350.51 369.04C343.74 407.82 312.04 439.74 273.25 446.49C212.62 457.04 160 410.67 160 352C160 337.8400000000001 163.12 324.4600000000001 168.69 312.42C182.02 283.57 192 253.3 192 221.51V221.44C192 205.18 178.82 192 162.56 192H96C42.98 192 0 149.02 0 96V64C0 46.33 14.33 32 32 32H480C497.67 32 512 46.33 512 64V96C512 149.02 469.02 192 416 192z" />
    +    <glyph glyph-name="star-and-crescent"
    +      unicode="&#xF699;"
    +      horiz-adv-x="512" d=" M340.4700000000001 -18.36C339.0200000000001 -18.36 333.5800000000001 -18.82 331.29 -18.82C215.04 -18.82 120.47 75.75 120.47 192S215.04 402.82 331.29 402.82C333.61 402.82 338.99 402.36 340.4700000000001 402.36C347.6 402.36 353.8 407.39 355.2200000000001 414.43C356.68 421.68 352.67 428.92 345.75 431.52C316.58 442.46 286.39 448 256 448C114.84 448 0 333.16 0 192S114.84 -64 256 -64C286.23 -64 316.28 -58.51 345.32 -47.68C351.28 -45.66 355.6 -40.04 355.6 -33.42C355.6 -25.33 349.21 -18.36 340.47 -18.36zM503.46 234.14L427.0800000000001 245.24L392.9200000000001 314.45C391.0900000000001 318.15 387.5400000000001 320 383.9900000000001 320S376.8900000000001 318.15 375.0600000000001 314.45L340.9000000000001 245.24L264.5200000000001 234.14C256.3500000000001 232.96 253.0900000000001 222.92 259.0000000000001 217.15L314.2700000000001 163.28L301.2200000000001 87.21C300.1100000000001 80.77 305.2300000000001 75.55 311.0300000000001 75.55C312.5600000000001 75.55 314.1400000000001 75.91 315.6700000000001 76.72L384 112.63L452.31 76.72C453.84 75.92 455.42 75.55 456.95 75.55C462.75 75.55 467.87 80.78 466.76 87.21L453.71 163.28L508.98 217.15C514.89 222.9200000000001 511.6299999999999 232.9600000000001 503.46 234.1400000000001z" />
    +    <glyph glyph-name="star-half-alt"
    +      unicode="&#xF5C0;"
    +      horiz-adv-x="536" d=" M508.55 276.49L362.18 297.8L296.77 430.19C290.89 442.02 279.42 448 267.95 448C256.55 448 245.16 442.1 239.26 430.19L173.83 297.81L27.45 276.52C1.2 272.7200000000001 -9.32 240.43 9.71 221.93L115.6 118.93L90.54 -26.55C86.98 -47.33 103.57 -64 122.15 -64C127.08 -64 132.15 -62.83 137.02 -60.25L267.9700000000001 8.43L398.9100000000001 -60.27C403.7700000000001 -62.82 408.8300000000001 -63.98 413.74 -63.98C432.3400000000001 -63.98 448.9600000000001 -47.3699999999999 445.4000000000001 -26.58L420.37 118.91L526.28 221.8900000000001C545.3199999999999 240.3900000000001 534.8 272.6900000000001 508.55 276.49zM386.81 153.29L368.69 135.67L372.97 110.79L392.49 -2.66L290.36 50.9300000000001L267.98 62.6700000000001L268.01 379.8600000000001L319.04 276.5700000000001L330.22 253.9400000000001L355.23 250.3000000000001L469.46 233.6700000000001L386.81 153.2900000000001z" />
    +    <glyph glyph-name="star-half"
    +      unicode="&#xF089;"
    +      horiz-adv-x="576" d=" M288 448C276.6 448 265.2 442.1 259.3 430.2L194 297.8L47.9 276.6C21.7 272.8 11.2 240.5 30.2 222L135.9 119L110.9 -26.5C106.4 -52.6 133.9 -72.5 157.3 -60.2L288 8.4V448z" />
    +    <glyph glyph-name="star-of-david"
    +      unicode="&#xF69A;"
    +      horiz-adv-x="464" d=" M405.68 192L458.89 281.39C473.3 305.6 455.48 336 426.88 336H319.96L264.01 429.98C256.86 441.99 244.43 448 232 448S207.14 441.99 199.99 429.98L144.04 336H37.11C8.51 336 -9.31 305.6 5.1 281.39L58.32 192L5.1 102.61C-9.31 78.4 8.51 48 37.11 48H144.04L199.99 -45.98C207.14 -57.99 219.57 -64 232 -64S256.86 -57.99 264.01 -45.98L319.96 48H426.89C455.49 48 473.31 78.4 458.9 102.61L405.68 192zM392.9000000000001 280L373.1 246.74L353.3 280H392.9000000000001zM340.5100000000001 192L288.1200000000001 104H175.88L123.49 192L175.87 280H288.12L340.51 192zM232 374.28L254.79 336H209.22L232 374.28zM71.1 280H110.7L90.9 246.74L71.1 280zM71.1 104L90.9 137.26L110.7 104H71.1zM232 9.72L209.21 48H254.78L232 9.72zM353.29 104L373.0900000000001 137.26L392.9 104H353.29z" />
    +    <glyph glyph-name="star-of-life"
    +      unicode="&#xF621;"
    +      horiz-adv-x="480" d=" M471.99 113.57L336.06 192L471.99 270.43C479.65 274.85 482.27 284.63 477.85 292.29L445.8300000000001 347.7200000000001C441.4100000000001 355.37 431.6200000000001 358 423.9600000000001 353.5800000000001L288.0300000000001 275.1500000000001V432C288.0300000000001 440.84 280.86 448 272.0200000000001 448H207.98C199.14 448 191.97 440.84 191.97 432V275.14L56.04 353.57C48.38 357.99 38.59 355.36 34.17 347.71L2.15 292.29C-2.27 284.64 0.35 274.85 8.01 270.43L143.94 192L8.01 113.57C0.35 109.15 -2.27 99.36 2.15 91.71L34.17 36.28C38.59 28.63 48.38 26.01 56.04 30.42L191.97 108.85V-48C191.97 -56.84 199.14 -64 207.98 -64H272.0200000000001C280.86 -64 288.0300000000001 -56.84 288.0300000000001 -48V108.86L423.9600000000001 30.43C431.6200000000001 26.01 441.4100000000001 28.63 445.8300000000001 36.29L477.85 91.72C482.27 99.37 479.65 109.15 471.99 113.5700000000001z" />
    +    <glyph glyph-name="star"
    +      unicode="&#xF005;"
    +      horiz-adv-x="576" d=" M259.3 430.2L194 297.8L47.9 276.5C21.7 272.7 11.2 240.4 30.2 221.9L135.9 118.9L110.9 -26.6C106.4 -52.9 134.1 -72.6 157.3 -60.3L288 8.4L418.7 -60.3C441.9 -72.5 469.6 -52.9 465.1 -26.6L440.1 118.9L545.8 221.9C564.8 240.4 554.3 272.7 528.0999999999999 276.5L382 297.8L316.7 430.2C305 453.8 271.1 454.1 259.3 430.2z" />
    +    <glyph glyph-name="step-backward"
    +      unicode="&#xF048;"
    +      horiz-adv-x="448" d=" M64 -20V404C64 410.6 69.4 416 76 416H124C130.6 416 136 410.6 136 404V227.6L331.5 408.6C352.1 425.7 384 411.4 384 384V0C384 -27.4 352.1 -41.7 331.5 -24.6L136 155.3V-20C136 -26.6 130.6 -32 124 -32H76C69.4 -32 64 -26.6 64 -20z" />
    +    <glyph glyph-name="step-forward"
    +      unicode="&#xF051;"
    +      horiz-adv-x="448" d=" M384 404V-20C384 -26.6 378.6 -32 372 -32H324C317.4 -32 312 -26.6 312 -20V156.4L116.5 -24.6C95.9 -41.7 64 -27.4 64 0V384C64 411.4 95.9 425.7 116.5 408.6L312 228.7V404C312 410.6 317.4 416 324 416H372C378.6 416 384 410.6 384 404z" />
    +    <glyph glyph-name="stethoscope"
    +      unicode="&#xF0F1;"
    +      horiz-adv-x="512" d=" M447.1 336C412.9000000000001 335.5 384.8 307.6 384.1 273.4C383.6 249.1 396.6 227.8 416.1 216.6V104C416.1 46.7 365.9000000000001 0 304.1 0C244.1 0 194.9 44.1 192.2 99.2C265 114.2 320 178.8 320 256V411.4C320 422.8 311.9 432.7 300.7 434.9L237.8 447.5C224.8 450.1 212.2 441.7 209.6 428.7L206.4 413C203.8 400 212.2 387.4 225.2 384.8L255.9 378.7V257.3C255.9 204.4 213.7 160.6 160.8 160.1C107.4 159.6 63.9 202.8 63.9 256.1V378.6L94.6 384.7C107.6 387.3 116 399.9 113.4 412.9L110.3 428.6C107.7 441.6 95.1 450 82.1 447.4L19.3 435C8.1 432.7 0 422.9 0 411.4V256C0 178.7 55.1 114 128.1 99.2C130.7 8.8 208.6 -64 304 -64C401 -64 480 11.4 480 104V216.6C499.1 227.7 512 248.3 512 272C512 307.7 482.8 336.5 447.1 336zM448 256C439.2 256 432 263.2 432 272S439.2 288 448 288S464 280.8 464 272S456.8 256 448 256z" />
    +    <glyph glyph-name="sticky-note"
    +      unicode="&#xF249;"
    +      horiz-adv-x="448" d=" M312 128H448V392C448 405.3 437.3 416 424 416H24C10.7 416 0 405.3 0 392V-8C0 -21.3 10.7 -32 24 -32H288V104C288 117.2 298.8 128 312 128zM441 73L343 -25C338.5 -29.5 332.4 -32 326 -32H320V96H448V89.9C448 83.6 445.5 77.5 441 73z" />
    +    <glyph glyph-name="stop-circle"
    +      unicode="&#xF28D;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM352 112C352 103.2 344.8 96 336 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H336C344.8 288 352 280.8 352 272V112z" />
    +    <glyph glyph-name="stop"
    +      unicode="&#xF04D;"
    +      horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416z" />
    +    <glyph glyph-name="stopwatch"
    +      unicode="&#xF2F2;"
    +      horiz-adv-x="448" d=" M432 144C432 29.1 338.9 -64 224 -64S16 29.1 16 144C16 248 92.3 334.2 192 349.5V384H164C157.4 384 152 389.4 152 396V436C152 442.6 157.4 448 164 448H284C290.6 448 296 442.6 296 436V396C296 389.4 290.6 384 284 384H256V349.5C293.5 343.7 327.7 327.9 355.7 304.9L383.2 332.4C387.9 337.1 395.5 337.1 400.2 332.4L428.5 304.1C433.2 299.4 433.2 291.8 428.5 287.1L399.1 257.7L398.5 257.1C419.7 224.7 432 185.8 432 144zM256 108V259.5C256 266.1 250.6 271.5 244 271.5H204C197.4 271.5 192 266.1 192 259.5V108C192 101.4 197.4 96 204 96H244C250.6 96 256 101.4 256 108z" />
    +    <glyph glyph-name="store-alt"
    +      unicode="&#xF54F;"
    +      horiz-adv-x="640" d=" M320 64H128V224H64V-32C64 -49.7 78.3 -64 96 -64H352C369.7 -64 384 -49.7 384 -32V224H320V64zM634.6 305.8L549.3000000000001 433.8C543.3000000000001 442.7 533.3000000000001 448 522.6 448H117.4C106.7 448 96.7 442.7 90.8 433.8L5.5 305.8C-8.7 284.5 6.5 256 32.1 256H608C633.5 256 648.7 284.5 634.6 305.8zM512 -48C512 -56.8 519.2 -64 528 -64H560C568.8 -64 576 -56.8 576 -48V224H512V-48z" />
    +    <glyph glyph-name="store"
    +      unicode="&#xF54E;"
    +      horiz-adv-x="616" d=" M602 329.4L537.1 433C531.3 442.3 521 448 510 448H106C95 448 84.7 442.3 78.9 433L14 329.4C-19.5 275.9 10.2 201.5 72.8 193C77.3 192.4 81.9 192.1 86.5 192.1C116.1 192.1 142.3 205.1 160.3 225.2C178.3 205.1 204.6 192.1 234.1 192.1C263.7000000000001 192.1 289.9000000000001 205.1 307.9000000000001 225.2C325.9000000000001 205.1 352.2000000000001 192.1 381.7000000000001 192.1C411.3000000000001 192.1 437.5000000000001 205.1 455.5000000000001 225.2C473.6000000000001 205.1 499.8000000000001 192.1 529.3000000000001 192.1C534.0000000000001 192.1 538.5000000000001 192.4 543.0000000000001 193C605.8000000000001 201.4 635.6000000000001 275.8 602.0000000000001 329.4zM529.5 160C519.5 160 509.6 161.5 500 163.8V64H116V163.8C106.4 161.6 96.5 160 86.5 160C80.5 160 74.4 160.4 68.5 161.2C62.9 162 57.4 163.3 52.1 164.8V-32C52.1 -49.7 66.4 -64 84.1 -64H532.1C549.8000000000001 -64 564.1 -49.7 564.1 -32V164.8C558.7 163.2 553.3000000000001 161.9 547.7 161.2C541.6 160.4 535.6 160 529.5 160z" />
    +    <glyph glyph-name="stream"
    +      unicode="&#xF550;"
    +      horiz-adv-x="512" d=" M16 320H432C440.84 320 448 327.16 448 336V400C448 408.8400000000001 440.84 416 432 416H16C7.16 416 0 408.8400000000001 0 400V336C0 327.16 7.16 320 16 320zM496 240H80C71.16 240 64 232.84 64 224V160C64 151.16 71.16 144 80 144H496C504.84 144 512 151.16 512 160V224C512 232.84 504.84 240 496 240zM432 64H16C7.16 64 0 56.84 0 48V-16C0 -24.84 7.16 -32 16 -32H432C440.84 -32 448 -24.84 448 -16V48C448 56.84 440.84 64 432 64z" />
    +    <glyph glyph-name="street-view"
    +      unicode="&#xF21D;"
    +      horiz-adv-x="512" d=" M367.9 118.24C363.28 112.94 358.12 108.14 352 104.59V81.65C418.52 72.3100000000001 464 53.6 464 32.0000000000001C464 1.0700000000001 370.88 -23.9999999999999 256 -23.9999999999999S48 1.07 48 32C48 53.6 93.48 72.3 160 81.65V104.59C153.88 108.14 148.72 112.94 144.1 118.24C58.87 102.66 0 69.95 0 32C0 -21.02 114.62 -64 256 -64S512 -21.02 512 32C512 69.95 453.13 102.66 367.9 118.24zM256 320C291.35 320 320 348.65 320 384S291.35 448 256 448S192 419.35 192 384S220.65 320 256 320zM192 128V32C192 14.33 206.33 0 224 0H288C305.67 0 320 14.33 320 32V128C337.67 128 352 142.33 352 160V256C352 282.51 330.51 304 304 304H292.2C281.13 298.9700000000001 268.94 296 256 296S230.87 298.9700000000001 219.8 304H208C181.49 304 160 282.51 160 256V160C160 142.33 174.33 128 192 128z" />
    +    <glyph glyph-name="strikethrough"
    +      unicode="&#xF0CC;"
    +      horiz-adv-x="512" d=" M496 160H16C7.163 160 0 167.163 0 176V208C0 216.837 7.163 224 16 224H496C504.837 224 512 216.837 512 208V176C512 167.163 504.837 160 496 160zM281.334 144C308.592 131.063 327.858 115.317 327.858 87.757C327.858 54.649 298.8810000000001 34.081 252.237 34.081C219.912 34.081 175.363 46.161 175.363 78.352V80C175.363 88.837 168.1990000000001 96 159.363 96H113.75C104.914 96 97.75 88.837 97.75 80V60.796C97.75 -6.049 175.467 -41.024 252.237 -41.024C340.815 -41.024 414.25 4.414 414.25 93.4C414.25 113.215 410.632 129.817 404.107 144H281.334zM250.382 240C217.96 253.505 193.546 268.9460000000001 193.546 299.683C193.546 333.603 224.447 347.089 258.508 347.089C301.155 347.089 323.47 330.496 323.47 314.104V312C323.47 303.163 330.634 296 339.47 296H385.083C393.919 296 401.083 303.163 401.083 312V342.318C401.083 394.756 329.358 422.193 258.508 422.193C173.305 422.193 107.782 381.221 107.782 296.5470000000001C107.782 273.837 112.447 255.371 120.559 240H250.382z" />
    +    <glyph glyph-name="stroopwafel"
    +      unicode="&#xF551;"
    +      horiz-adv-x="512" d=" M188.12 237.26L142.86 192L188.11 146.75L233.37 192L188.12 237.26zM301.25 259.88L256 305.14L210.75 259.89L256 214.63L301.25 259.88zM210.75 124.12L256 78.86L301.26 124.12L256 169.37L210.75 124.12zM256 448C114.62 448 0 333.38 0 192S114.62 -64 256 -64S512 50.62 512 192S397.38 448 256 448zM442.68 152.4L431.37 141.09C428.25 137.97 423.18 137.97 420.06 141.09L391.77 169.38L346.52 124.13L380.46 90.19L397.43 107.16C400.55 110.28 405.62 110.28 408.74 107.16L420.05 95.85C423.17 92.73 423.17 87.66 420.05 84.54L403.08 67.5699999999999L420.05 50.5999999999999C423.17 47.4799999999999 423.17 42.4099999999999 420.05 39.2899999999999L408.74 27.9799999999999C405.62 24.8599999999999 400.55 24.8599999999999 397.43 27.9799999999999L380.4599999999999 44.9499999999999L363.4899999999999 27.9799999999999C360.3699999999999 24.8599999999999 355.2999999999999 24.8599999999999 352.1799999999999 27.9799999999999L340.8699999999999 39.2899999999999C337.7499999999999 42.4099999999999 337.7499999999999 47.4799999999999 340.8699999999999 50.5999999999999L357.8399999999999 67.5699999999999L323.8999999999999 101.5099999999999L278.64 56.2499999999999L306.93 27.9599999999999C310.05 24.8399999999999 310.05 19.7699999999999 306.93 16.6499999999999L295.62 5.3399999999999C292.5 2.2199999999999 287.43 2.2199999999999 284.31 5.3399999999999L256 33.61L227.71 5.32C224.59 2.2 219.52 2.2 216.4 5.32L205.09 16.63C201.97 19.75 201.97 24.82 205.09 27.94L233.38 56.23L188.13 101.49L154.19 67.55L171.16 50.58C174.28 47.46 174.28 42.39 171.16 39.27L159.85 27.96C156.73 24.84 151.66 24.84 148.54 27.96L131.57 44.9300000000001L114.6 27.96C111.48 24.84 106.41 24.84 103.29 27.96L91.98 39.27C88.86 42.39 88.86 47.46 91.98 50.58L108.95 67.5500000000001L91.98 84.5200000000001C88.86 87.6400000000001 88.86 92.7100000000001 91.98 95.8300000000001L103.29 107.1400000000001C106.41 110.2600000000001 111.48 110.2600000000001 114.6 107.1400000000001L131.57 90.1700000000001L165.51 124.1100000000001L120.26 169.3600000000001L91.97 141.0700000000001C88.85 137.9500000000001 83.78 137.9500000000001 80.66 141.0700000000001L69.32 152.4C66.2 155.52 66.2 160.59 69.32 163.71L97.61 192L69.32 220.29C66.2 223.41 66.2 228.48 69.32 231.6L80.63 242.91C83.75 246.03 88.82 246.03 91.94 242.91L120.23 214.62L165.48 259.88L131.54 293.82L114.57 276.85C111.45 273.73 106.38 273.73 103.26 276.85L91.95 288.16C88.83 291.28 88.83 296.35 91.95 299.4700000000001L108.92 316.44L91.95 333.41C88.83 336.53 88.83 341.6 91.95 344.7200000000001L103.26 356.03C106.38 359.15 111.45 359.15 114.57 356.03L131.54 339.06L148.51 356.03C151.63 359.15 156.7 359.15 159.82 356.03L171.13 344.7200000000001C174.25 341.6 174.25 336.53 171.13 333.41L154.16 316.44L188.1 282.5L233.36 327.75L205.07 356.04C201.95 359.16 201.95 364.23 205.07 367.35L216.38 378.66C219.5 381.78 224.57 381.78 227.69 378.66L256 350.39L284.29 378.68C287.4100000000001 381.8 292.48 381.8 295.6 378.68L306.9100000000001 367.37C310.0300000000001 364.25 310.0300000000001 359.18 306.9100000000001 356.06L278.62 327.77L323.88 282.52L357.82 316.4600000000001L340.85 333.43C337.73 336.55 337.73 341.62 340.85 344.74L352.1600000000001 356.05C355.2800000000001 359.17 360.35 359.17 363.4700000000001 356.05L380.4400000000001 339.0800000000001L397.4100000000001 356.05C400.5300000000001 359.17 405.6000000000001 359.17 408.7200000000001 356.05L420.0300000000001 344.74C423.1500000000001 341.62 423.1500000000001 336.55 420.0300000000001 333.43L403.0600000000001 316.4600000000001L420.0300000000001 299.49C423.1500000000001 296.37 423.1500000000001 291.3 420.0300000000001 288.18L408.7200000000001 276.87C405.6000000000001 273.75 400.5300000000001 273.75 397.4100000000001 276.87L380.4400000000001 293.8400000000001L346.5000000000001 259.9L391.7500000000001 214.64L420.0400000000001 242.93C423.1600000000001 246.05 428.2300000000001 246.05 431.3500000000001 242.93L442.6600000000001 231.62C445.7800000000001 228.5 445.7800000000001 223.43 442.6600000000001 220.31L414.39 192L442.68 163.72A8.015 8.015 0 0 0 442.68 152.4zM278.63 192L323.89 146.75L369.14 192L323.89 237.26L278.63 192z" />
    +    <glyph glyph-name="subscript"
    +      unicode="&#xF12C;"
    +      horiz-adv-x="512" d=" M395.198 32C398.659 42.526 413.994 53.28 431.463 64.425C448.088 75.03 466.9299999999999 87.051 481.804 103.287C499.2619999999999 122.341 507.748 143.4620000000001 507.748 167.8540000000001C507.748 228.4160000000001 457.046 256.0000000000001 409.938 256.0000000000001C367.447 256.0000000000001 333.56 233.9840000000001 315.506 205.5530000000001C310.852 198.2240000000001 312.914 188.5170000000001 320.129 183.6880000000001L350.457 163.3920000000001C357.4889999999999 158.686 366.9169999999999 160.3080000000001 372.087 167.006C380.1089999999999 177.4 390.9049999999999 185.2310000000001 403.7539999999999 185.2310000000001C423.1409999999999 185.2310000000001 430.0199999999999 172.3300000000001 430.0199999999999 161.2830000000001C430.0199999999999 125.1240000000001 310.5829999999999 104.2600000000001 310.5829999999999 1.2590000000001C310.5829999999999 -5.3949999999999 311.1439999999999 -11.7549999999999 311.998 -18.0719999999999C313.074 -26.0359999999999 319.832 -31.9999999999999 327.868 -31.9999999999999H496C504.837 -31.9999999999999 512 -24.8369999999999 512 -15.9999999999999V16.0000000000001C512 24.837 504.837 32.0000000000001 496 32.0000000000001H395.198zM272 192C280.837 192 288 184.837 288 176V144C288 135.163 280.837 128 272 128H209.601A16 16 0 0 0 196.06 135.478L150.359 208.093C148.062 211.445 145.937 215.062 144.164 218.302C142.514 215.058 140.517 211.365 138.29 207.72L93.578 135.573A15.999 15.999 0 0 0 79.978 128.001H16C7.163 128.001 0 135.1640000000001 0 144.001V176.001C0 184.838 7.163 192.001 16 192.001H42.325L98.877 274.7100000000001L46.111 352H16C7.163 352 0 359.163 0 368V400C0 408.837 7.163 416 16 416H84.806A16 16 0 0 0 98.451 408.356L138.333 343.23C140.405 339.707 142.386 336.059 144.06 332.86C145.837 336.104 147.98 339.814 150.297 343.397L190.629 408.432A15.999 15.999 0 0 0 204.226 416H272C280.837 416 288 408.837 288 400V368C288 359.163 280.837 352 272 352H244.021L191.331 276.329L249.974 192H272z" />
    +    <glyph glyph-name="subway"
    +      unicode="&#xF239;"
    +      horiz-adv-x="448" d=" M448 352V96C448 44.185 386.376 0 317.978 0L380.9580000000001 -49.721C386.905 -54.417 383.562 -64 376 -64H72C64.422 -64 61.108 -54.406 67.043 -49.721L130.022 0C61.82 0 0 44.046 0 96V352C0 405.019 64 448 128 448H320C385 448 448 405.019 448 352zM200 216V328C200 341.255 189.255 352 176 352H72C58.745 352 48 341.255 48 328V216C48 202.745 58.745 192 72 192H176C189.255 192 200 202.745 200 216zM400 216V328C400 341.255 389.255 352 376 352H272C258.745 352 248 341.255 248 328V216C248 202.745 258.745 192 272 192H376C389.255 192 400 202.745 400 216zM352 160C325.49 160 304 138.51 304 112S325.49 64 352 64S400 85.49 400 112S378.51 160 352 160zM96 160C69.49 160 48 138.51 48 112S69.49 64 96 64S144 85.49 144 112S122.51 160 96 160z" />
    +    <glyph glyph-name="suitcase-rolling"
    +      unicode="&#xF5C1;"
    +      horiz-adv-x="384" d=" M336 288H48C21.49 288 0 266.51 0 240V16C0 -10.51 21.49 -32 48 -32H64V-48C64 -56.84 71.16 -64 80 -64H112C120.84 -64 128 -56.84 128 -48V-32H256V-48C256 -56.84 263.1600000000001 -64 272 -64H304C312.84 -64 320 -56.84 320 -48V-32H336C362.51 -32 384 -10.51 384 16V240C384 266.51 362.51 288 336 288zM320 72C320 67.58 316.42 64 312 64H72C67.58 64 64 67.58 64 72V88C64 92.42 67.58 96 72 96H312C316.42 96 320 92.42 320 88V72zM320 168C320 163.58 316.42 160 312 160H72C67.58 160 64 163.58 64 168V184C64 188.42 67.58 192 72 192H312C316.42 192 320 188.42 320 184V168zM144 400H240V320H288V400C288 426.51 266.51 448 240 448H144C117.49 448 96 426.51 96 400V320H144V400z" />
    +    <glyph glyph-name="suitcase"
    +      unicode="&#xF0F2;"
    +      horiz-adv-x="512" d=" M128 -32H384V368C384 394.5 362.5 416 336 416H176C149.5 416 128 394.5 128 368V-32zM192 352H320V320H192V352zM512 272V16C512 -10.5 490.5 -32 464 -32H416V320H464C490.5 320 512 298.5 512 272zM96 -32H48C21.5 -32 0 -10.5 0 16V272C0 298.5 21.5 320 48 320H96V-32z" />
    +    <glyph glyph-name="sun"
    +      unicode="&#xF185;"
    +      horiz-adv-x="512" d=" M274.835 435.354L300.351 372.961C304.564 362.66 317.022 358.612 326.485 364.469L383.8010000000001 399.948C399.2910000000001 409.536 418.6090000000001 395.501 414.2760000000001 377.806L398.2460000000001 312.331C395.5990000000001 301.521 403.2990000000001 290.923 414.3980000000001 290.1L481.6220000000001 285.1130000000001C499.7890000000001 283.765 507.1680000000001 261.0560000000001 493.2630000000001 249.2870000000001L441.81 205.74C433.315 198.55 433.315 185.451 441.81 178.261L493.264 134.713C507.17 122.944 499.791 100.235 481.623 98.887L414.399 93.9C403.3 93.077 395.6 82.479 398.247 71.669L414.2770000000001 6.194C418.6090000000001 -11.501 399.2910000000001 -25.5360000000001 383.802 -15.948L326.486 19.531C317.023 25.389 304.564 21.341 300.352 11.0389999999999L274.836 -51.354C267.94 -68.216 244.062 -68.216 237.166 -51.354L211.65 11.039C207.437 21.34 194.979 25.388 185.516 19.531L128.199 -15.948C112.709 -25.536 93.391 -11.501 97.724 6.194L113.754 71.669C116.401 82.479 108.701 93.077 97.602 93.9L30.378 98.887C12.211 100.235 4.832 122.944 18.737 134.713L70.19 178.26C78.685 185.45 78.685 198.549 70.19 205.739L18.736 249.287C4.83 261.056 12.209 283.765 30.377 285.113L97.601 290.1C108.7 290.923 116.4 301.521 113.753 312.331L97.723 377.806C93.391 395.501 112.709 409.536 128.198 399.948L185.515 364.469C194.978 358.611 207.436 362.659 211.649 372.961L237.165 435.354C244.061 452.215 267.939 452.215 274.835 435.354zM392 192C392 266.991 330.99 328 256 328C181.009 328 120 266.991 120 192S181.009 56 256 56C330.99 56 392 117.009 392 192zM360 192C360 134.654 313.346 88 256 88S152 134.654 152 192S198.654 296 256 296S360 249.346 360 192z" />
    +    <glyph glyph-name="superscript"
    +      unicode="&#xF12B;"
    +      horiz-adv-x="512" d=" M395.198 192C398.659 202.526 413.994 213.28 431.463 224.425C448.088 235.03 466.9299999999999 247.051 481.804 263.2870000000001C499.2619999999999 282.341 507.748 303.462 507.748 327.854C507.748 388.416 457.046 416 409.938 416C367.447 416 333.56 393.984 315.506 365.553C310.852 358.224 312.914 348.517 320.129 343.688L350.457 323.392C357.4889999999999 318.6860000000001 366.9169999999999 320.308 372.087 327.006C380.1089999999999 337.4 390.9049999999999 345.231 403.7539999999999 345.231C423.1409999999999 345.231 430.0199999999999 332.33 430.0199999999999 321.283C430.0199999999999 285.124 310.5829999999999 264.26 310.5829999999999 161.259C310.5829999999999 154.605 311.1439999999999 148.245 311.998 141.928C313.074 133.964 319.832 128 327.868 128H496C504.837 128 512 135.163 512 144V176C512 184.837 504.837 192 496 192H395.198zM272 32C280.837 32 288 24.837 288 16V-16C288 -24.837 280.837 -32 272 -32H209.601A16 16 0 0 0 196.06 -24.522L150.359 48.093C148.062 51.445 145.937 55.062 144.164 58.302C142.514 55.058 140.517 51.365 138.29 47.72L93.578 -24.427A15.999 15.999 0 0 0 79.978 -31.999H16C7.163 -31.999 0 -24.836 0 -15.999V16.001C0 24.838 7.163 32.001 16 32.001H42.325L98.877 114.71L46.111 192H16C7.163 192 0 199.163 0 208V240C0 248.837 7.163 256 16 256H84.806A16 16 0 0 0 98.451 248.356L138.333 183.23C140.405 179.707 142.386 176.059 144.06 172.86C145.837 176.1040000000001 147.98 179.814 150.297 183.397L190.629 248.432A16 16 0 0 0 204.227 255.999H272C280.837 255.999 288 248.836 288 239.999V207.999C288 199.162 280.837 191.999 272 191.999H244.021L191.331 116.328L249.974 32H272z" />
    +    <glyph glyph-name="surprise"
    +      unicode="&#xF5C2;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM136 240C136 257.7 150.3 272 168 272S200 257.7 200 240S185.7 208 168 208S136 222.3 136 240zM248 32C212.7 32 184 60.7 184 96S212.7 160 248 160S312 131.3 312 96S283.3 32 248 32zM328 208C310.3 208 296 222.3 296 240S310.3 272 328 272S360 257.7 360 240S345.7 208 328 208z" />
    +    <glyph glyph-name="swatchbook"
    +      unicode="&#xF5C3;"
    +      horiz-adv-x="511" d=" M479.06 128H372.29L186.15 -58.51C184.09 -60.58 181.66 -62.09 179.48 -64H479.06C496.7 -64 511 -49.67 511 -32V96C511 113.67 496.7 128 479.06 128zM434.56 280.9L344.23 371.4100000000001C331.76 383.9100000000001 311.54 383.9100000000001 299.06 371.4100000000001L223.56 295.76V32C223.56 29.04 222.89 26.27 222.69 23.36L434.56 235.64C447.0300000000001 248.14 447.0300000000001 268.4100000000001 434.56 280.9zM191.62 416C191.62 433.67 177.32 448 159.68 448H31.94C14.3 448 0 433.67 0 416V32C0 -21.02 42.9 -64 95.81 -64S191.62 -21.02 191.62 32V416zM95.81 8C82.58 8 71.86 18.75 71.86 32C71.86 45.26 82.59 56 95.81 56S119.76 45.26 119.76 32C119.77 18.75 109.04 8 95.81 8zM127.75 192H63.88V256H127.76V192zM127.75 320H63.88V384H127.76V320z" />
    +    <glyph glyph-name="swimmer"
    +      unicode="&#xF5C4;"
    +      horiz-adv-x="640" d=" M189.61 137.42C193.15 134.16 204.88 128 224 128S254.86 134.16 258.39 137.42C274.41 152.19 292.89 160 311.85 160H328.15C347.11 160 365.6 152.19 381.61 137.42C385.15 134.16 396.88 128 416 128S446.86 134.16 450.3899999999999 137.42C465.2499999999999 151.13 482.2699999999999 158.54 499.7799999999999 159.5800000000001L386.94 240.1800000000001L404.94 253.04C408.58 255.6200000000001 413.2199999999999 256.5600000000001 417.56 255.6500000000001L517.91 234.1200000000001C543.8199999999999 228.5900000000001 569.3499999999999 245.0900000000001 574.91 271C580.4599999999999 296.92 563.9599999999999 322.4400000000001 538.03 328L437.68 349.53C406.95 356.11 374.6600000000001 349.41 349.12 331.15L269.1 273.98C258.7200000000001 266.5900000000001 249.74 257.54 242.38 247.04L173.75 149C179.22 145.77 184.57 142.07 189.61 137.42zM624 96H608C581.96 96 562.2 104.42 551.91 113.9C543.01 122.11 532.25 128 520.14 128H503.84C491.73 128 480.97 122.11 472.07 113.9C461.8 104.42 442.04 96 416 96S370.2 104.42 359.91 113.9C351.01 122.11 340.25 128 328.14 128H311.84C299.73 128 288.97 122.11 280.07 113.9C269.8 104.42 250.04 96 224 96S178.2 104.42 167.91 113.9C159.01 122.11 148.25 128 136.14 128H119.84C107.73 128 96.97 122.11 88.07 113.9C77.8 104.42 58.04 96 32 96H16C7.16 96 0 88.84 0 80V48C0 39.16 7.16 32 16 32H32C70.62 32 104.72 44.19 128 63.84C151.28 44.18 185.38 32 224 32S296.7200000000001 44.19 320 63.84C343.28 44.18 377.38 32 416 32S488.72 44.19 512 63.84C535.28 44.18 569.38 32 608 32H624C632.84 32 640 39.16 640 48V80C640 88.84 632.84 96 624 96zM112 192C156.18 192 192 227.82 192 272S156.18 352 112 352S32 316.18 32 272S67.82 192 112 192z" />
    +    <glyph glyph-name="swimming-pool"
    +      unicode="&#xF5C5;"
    +      horiz-adv-x="640" d=" M624 32H608C581.96 32 562.2 40.42 551.91 49.9C543.01 58.11 532.25 64 520.14 64H503.84C491.73 64 480.97 58.11 472.07 49.9C461.8 40.42 442.04 32 416 32S370.2 40.42 359.91 49.9C351.01 58.11 340.25 64 328.14 64H311.84C299.73 64 288.97 58.11 280.07 49.9C269.8 40.42 250.04 32 224 32S178.2 40.42 167.91 49.9C159.01 58.11 148.25 64 136.14 64H119.84C107.73 64 96.97 58.11 88.07 49.9C77.8 40.42 58.04 32 32 32H16C7.16 32 0 24.84 0 16V-16C0 -24.84 7.16 -32 16 -32H32C70.62 -32 104.72 -19.81 128 -0.16C151.28 -19.82 185.38 -32 224 -32S296.7200000000001 -19.81 320 -0.16C343.28 -19.82 377.38 -32 416 -32S488.72 -19.81 512 -0.16C535.28 -19.82 569.38 -32 608 -32H624C632.84 -32 640 -24.84 640 -16V16C640 24.84 632.84 32 624 32zM224 64V160H416V64C435.12 64 446.86 70.16 450.39 73.42C459.56 81.88 469.59 87.76 480 91.49V320C480 337.64 494.36 352 512 352S544 337.64 544 320V304C544 295.16 551.16 288 560 288H592C600.84 288 608 295.16 608 304V320C608 372.94 564.94 416 512 416S416 372.94 416 320V224H224V320C224 337.64 238.36 352 256 352S288 337.64 288 320V304C288 295.16 295.1600000000001 288 304 288H336C344.84 288 352 295.16 352 304V320C352 372.94 308.94 416 256 416S160 372.94 160 320V91.5C170.41 87.77 180.44 81.88 189.61 73.43C193.14 70.16 204.88 64 224 64z" />
    +    <glyph glyph-name="synagogue"
    +      unicode="&#xF69B;"
    +      horiz-adv-x="640" d=" M70 251.49L6.67 179.71A26.643000000000004 26.643000000000004 0 0 1 0 162.07V-64H128V208.42L90 251.49C84.69 257.5 75.31 257.5 70 251.49zM633.33 179.71L570 251.49C564.69 257.51 555.31 257.51 550 251.49L512 208.42V-64H640V162.07C640 168.57 637.63 174.84 633.33 179.71zM339.99 440.99C328.3 450.34 311.7 450.34 300.01 440.99L172.01 338.59A32.005 32.005 0 0 1 160 313.6V-64H256V28.57C256 60.45 277.78 90 309.25 95.12C349.34 101.65 384 70.87 384 32V-64H480V313.6C480 323.32 475.58 332.52 467.99 338.59L339.99 440.99zM392.06 225.44C394.04 222.29 391.77 218.2 388.06 218.2H349.12L324 178.21C322.15 175.26 317.85 175.26 316 178.21L290.88 218.19H251.94C248.22 218.19 245.96 222.28 247.94 225.43L267.14 255.99L247.94 286.55C245.96 289.7 248.23 293.79 251.94 293.79H290.88L316 333.79C317.85 336.74 322.15 336.74 324 333.79L349.12 293.81H388.07C391.78 293.81 394.05 289.7200000000001 392.07 286.57L372.87 256L392.06 225.44z" />
    +    <glyph glyph-name="sync-alt"
    +      unicode="&#xF2F1;"
    +      horiz-adv-x="512" d=" M370.7200000000001 314.7200000000001C339.4580000000001 343.992 298.888 360.038 255.848 360C178.39 359.932 111.52 306.822 93.057 233.15C91.713 227.787 86.935 224 81.406 224H24.103C16.605 224 10.909 230.807 12.296 238.176C33.933 353.076 134.813 440 256 440C322.448 440 382.791 413.8640000000001 427.315 371.315L463.03 407.03C478.149 422.149 504 411.4410000000001 504 390.059V256C504 242.745 493.255 232 480 232H345.941C324.559 232 313.851 257.851 328.97 272.971L370.72 314.7200000000001zM32 152H166.059C187.441 152 198.149 126.149 183.03 111.029L141.28 69.279C172.542 40.006 213.115 23.96 256.156 23.999C333.574 24.069 400.471 77.143 418.943 150.848C420.287 156.211 425.065 159.998 430.594 159.998H487.898C495.396 159.998 501.092 153.191 499.705 145.822C478.067 30.924 377.187 -56 256 -56C189.552 -56 129.209 -29.864 84.685 12.685L48.97 -23.03C33.851 -38.149 8 -27.441 8 -6.059V128C8 141.255 18.745 152 32 152z" />
    +    <glyph glyph-name="sync"
    +      unicode="&#xF021;"
    +      horiz-adv-x="512.333" d=" M440.935 435.426L444.901 352.66C399.416 406.096 331.674 440 256 440C134.813 440 33.933 353.076 12.296 238.176C10.908 230.807 16.604 224 24.103 224H73.187C78.757 224 83.564 227.842 84.863 233.259C103.407 310.592 172.931 368 256 368C316.8930000000001 368 370.512 337.144 402.1040000000001 290.199L300.5740000000001 295.064C293.7290000000001 295.3920000000001 288.0000000000001 289.9310000000001 288.0000000000001 283.0780000000001V235.6670000000001C288.0000000000001 229.04 293.3730000000001 223.667 300.0000000000001 223.667H500.3330000000001C506.9600000000001 223.667 512.3330000000001 229.04 512.3330000000001 235.6670000000001V436C512.3330000000001 442.627 506.9600000000001 448 500.3330000000001 448H452.9220000000001C446.0690000000001 448 440.6070000000001 442.271 440.9350000000001 435.426zM256 16C195.105 16 141.483 46.858 109.891 93.805L211.759 88.934C218.604 88.607 224.332 94.068 224.332 100.92V148.332C224.332 154.959 218.959 160.332 212.332 160.332H12C5.373 160.332 0 154.959 0 148.332V-52C0 -58.627 5.373 -64 12 -64H59.385C66.248 -64 71.713 -58.255 71.37 -51.401L67.241 31.174C112.725 -22.166 180.405 -56 256 -56C377.187 -56 478.067 30.924 499.704 145.824C501.092 153.193 495.396 160 487.897 160H438.813C433.243 160 428.436 156.158 427.137 150.741C408.593 73.408 339.069 16 256 16z" />
    +    <glyph glyph-name="syringe"
    +      unicode="&#xF48E;"
    +      horiz-adv-x="512" d=" M201.5 273.2L257.2 217.4C260.3 214.3 260.3 209.2 257.2 206.1L245.9 194.8C242.8 191.6999999999999 237.7 191.6999999999999 234.6 194.8L178.9 250.6L133.6 205.3L189.4 149.5C192.5 146.3999999999999 192.5 141.3 189.4 138.1999999999999L178.1 126.8999999999999C175 123.7999999999999 169.9 123.7999999999999 166.8 126.8999999999999L111 182.8L84.6 156.4C67.3 139.1 59 115.3 61.6 91L68.7 27.4L2.3 -39C-0.8 -42.1 -0.8 -47.2 2.3 -50.3L13.6 -61.6C16.7 -64.7 21.8 -64.7 24.9 -61.6L91.2 4.7L154.8 -2.4C178.7 -5.0000000000001 202.7 2.9999999999999 220.2 20.6L402.1 202.5L266.4000000000001 338.2L201.5 273.2zM509.7 366.5L430.5 445.7C427.4 448.8 422.3 448.8 419.2 445.7L407.9 434.4C404.8 431.3 404.8 426.2 407.9 423.1L436.2 394.8L390.9 349.5L334.3 406.1L317.3 423.1C314.2 426.2 309.1 426.2 306 423.1L272.1 389.2C269 386.1 269 381 272.1 377.9L289.1 360.9L424.8 225L441.8 208C444.9000000000001 204.9 450 204.9 453.1 208L487 242C490.1 245.1 490.1 250.2 487 253.3L413.5 326.8L458.8 372.1L487.1 343.8C490.2 340.7000000000001 495.3 340.7000000000001 498.4 343.8L509.7 355.1C512.8000000000001 358.3 512.8000000000001 363.3 509.7 366.5z" />
    +    <glyph glyph-name="table-tennis"
    +      unicode="&#xF45D;"
    +      horiz-adv-x="512" d=" M496.2 151.5C527.7 229.3 512 321.8 449 384.9C365.1 469 229 469 145.1 384.9L89.1 328.8L300.6 117.3C346.7000000000001 179.4 432.1 194.7 496.2 151.5zM278.3 71.8L57.9 292.1C30.6 246.8 36.2 187.1 75.2 148L109.7 113.4L6.7 24C-1.9 16.5 -2.4 3.3 5.7 -4.8L59.1 -58.3C67.1 -66.4 80.3 -65.9 87.8 -57.3L177.1 46L212.8 10.3C232.5 -9.4 257.4000000000001 -20.2 283.1 -23C276 -6 272.1 12.6 272.1 32.1C272 45.9 274.6 59.1 278.3 71.8zM416 128C363 128 320 85 320 32S363 -64 416 -64S512 -21 512 32S469 128 416 128z" />
    +    <glyph glyph-name="table"
    +      unicode="&#xF0CE;"
    +      horiz-adv-x="512" d=" M464 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H464C490.51 -32 512 -10.51 512 16V368C512 394.51 490.51 416 464 416zM224 32H64V128H224V32zM224 192H64V288H224V192zM448 32H288V128H448V32zM448 192H288V288H448V192z" />
    +    <glyph glyph-name="tablet-alt"
    +      unicode="&#xF3FA;"
    +      horiz-adv-x="448" d=" M400 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V400C448 426.5 426.5 448 400 448zM224 -32C206.3 -32 192 -17.7 192 0S206.3 32 224 32S256 17.7 256 0S241.7 -32 224 -32zM400 76C400 69.4 394.6 64 388 64H60C53.4 64 48 69.4 48 76V388C48 394.6 53.4 400 60 400H388C394.6 400 400 394.6 400 388V76z" />
    +    <glyph glyph-name="tablet"
    +      unicode="&#xF10A;"
    +      horiz-adv-x="448" d=" M400 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V400C448 426.5 426.5 448 400 448zM224 -32C206.3 -32 192 -17.7 192 0S206.3 32 224 32S256 17.7 256 0S241.7 -32 224 -32z" />
    +    <glyph glyph-name="tablets"
    +      unicode="&#xF490;"
    +      horiz-adv-x="640" d=" M160 256C78.9 256 12.5 197.5 0.1 121.3C-0.7 116.5 3.4 112 8.4 112H311.7C316.7 112 320.8 116.5 320 121.3C307.5 197.5 241.1 256 160 256zM311.6 80H8.4C3.4 80 -0.7 75.5 0.1 70.7C12.5 -5.5 78.9 -64 160 -64S307.5 -5.5 319.9 70.7C320.7 75.5 316.6 80 311.6 80zM593.4 401.4C536.9 457.9 449.2 462.8 386.5 417.4C382.5 414.5 382.2 408.5 385.7 405.1L597 193.7C600.5 190.2 606.5 190.5 609.3 194.5C654.8 257.2 649.9 344.9 593.4 401.4zM363 382.3C359.5 385.8 353.5 385.5 350.7 381.5C305.3 318.8 310.2 231.1 366.6 174.6C423.1 118.1 510.8 113.2000000000001 573.5 158.7000000000001C577.5 161.6 577.8 167.6 574.3 171.0000000000001L363 382.3z" />
    +    <glyph glyph-name="tachometer-alt"
    +      unicode="&#xF3FD;"
    +      horiz-adv-x="576" d=" M288 416C128.94 416 0 287.06 0 128C0 75.2 14.25 25.74 39.06 -16.8C44.67 -26.42 55.36 -32 66.5 -32H509.5C520.64 -32 531.33 -26.42 536.94 -16.8C561.75 25.74 576 75.2 576 128C576 287.06 447.06 416 288 416zM288 352C302.71 352 314.58 341.87 318.32 328.35C317.21 326.09 315.68 324.12 314.87 321.68L305.65 294.01C300.52 290.52 294.68 288 288.01 288C270.34 288 256.01 302.3300000000001 256.01 320S270.33 352 288 352zM96 64C78.33 64 64 78.33 64 96S78.33 128 96 128S128 113.67 128 96S113.67 64 96 64zM144 224C126.33 224 112 238.33 112 256S126.33 288 144 288S176 273.67 176 256S161.67 224 144 224zM390.77 296.41L329.44 112.41C343.13 100.67 352 83.46 352 64C352 52.28 348.62 41.45 343.12 32H232.88C227.38 41.45 224 52.28 224 64C224 97.94 250.5 125.43 283.9 127.59L345.24 311.6C349.4100000000001 324.1600000000001 362.9700000000001 331.05 375.6 326.7700000000001C388.17 322.5800000000001 394.9500000000001 308.98 390.7700000000001 296.4100000000001zM405.43 239.21L420.95 285.76C424.42 287.05 428.08 287.99 432 287.99C449.67 287.99 464 273.66 464 255.99S449.67 223.99 432 223.99C420.62 224 411.11 230.27 405.43 239.21zM480 64C462.33 64 448 78.33 448 96S462.33 128 480 128S512 113.67 512 96S497.67 64 480 64z" />
    +    <glyph glyph-name="tag"
    +      unicode="&#xF02B;"
    +      horiz-adv-x="512" d=" M0 195.882V400C0 426.51 21.49 448 48 448H252.118A48 48 0 0 0 286.059 433.941L497.941 222.059C516.6859999999999 203.314 516.6859999999999 172.922 497.941 154.177L293.823 -49.941C275.078 -68.6859999999999 244.686 -68.6859999999999 225.941 -49.941L14.059 161.941A48 48 0 0 0 0 195.882zM112 384C85.49 384 64 362.51 64 336S85.49 288 112 288S160 309.49 160 336S138.51 384 112 384z" />
    +    <glyph glyph-name="tags"
    +      unicode="&#xF02C;"
    +      horiz-adv-x="640" d=" M497.941 222.059L286.0590000000001 433.941A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V195.882A48 48 0 0 1 14.059 161.941L225.941 -49.941C244.685 -68.6859999999999 275.077 -68.687 293.823 -49.941L497.941 154.177C516.6859999999999 172.922 516.6859999999999 203.314 497.941 222.059zM112 288C85.49 288 64 309.49 64 336S85.49 384 112 384S160 362.51 160 336S138.51 288 112 288zM625.941 154.177L421.823 -49.941C403.078 -68.6859999999999 372.686 -68.6859999999999 353.941 -49.941L353.581 -49.581L527.64 124.478C544.639 141.477 554 164.078 554 188.118S544.638 234.759 527.64 251.758L331.397 448H380.118A48 48 0 0 0 414.059 433.941L625.941 222.059C644.686 203.314 644.686 172.922 625.941 154.177z" />
    +    <glyph glyph-name="tape"
    +      unicode="&#xF4DB;"
    +      horiz-adv-x="640" d=" M224 256C188.7 256 160 227.3 160 192S188.7 128 224 128S288 156.7 288 192S259.3 256 224 256zM624 32H380.6C422.1 72.7 448 129.3 448 192C448 315.7 347.7 416 224 416S0 315.7 0 192S100.3 -32 224 -32H624C632.8 -32 640 -24.8 640 -16V16C640 24.8 632.8 32 624 32zM224 96C171 96 128 139 128 192S171 288 224 288S320 245 320 192S277 96 224 96z" />
    +    <glyph glyph-name="tasks"
    +      unicode="&#xF0AE;"
    +      horiz-adv-x="512" d=" M208 316H496C504.8 316 512 323.2 512 332V372C512 380.8 504.8 388 496 388H208C199.2 388 192 380.8 192 372V332C192 323.2 199.2 316 208 316zM208 156H496C504.8 156 512 163.2 512 172V212C512 220.8 504.8 228 496 228H208C199.2 228 192 220.8 192 212V172C192 163.2 199.2 156 208 156zM208 -4H496C504.8 -4 512 3.2 512 12V52C512 60.8 504.8 68 496 68H208C199.2 68 192 60.8 192 52V12C192 3.2 199.2 -4 208 -4zM64 80C37.5 80 15.4 58.5 15.4 32S37.5 -16 64 -16S112 5.5 112 32S90.5 80 64 80zM156.5 379L84.3 306.8L68.7 291.2000000000001C64 286.5 55.8 286.5 51.1 291.2000000000001L3.5 338.6C-1.2 343.3 -1.2 350.9 3.5 355.6L19.2 371.3C23.9 376 31.5 376 36.2 371.3L58.9 349.2L122.6 412.5C127.3 417.2 134.9 417.2 139.6 412.5L156.6 396C161.2 391.3 161.2 383.7 156.5 379zM156.5 219.4L84.3 147.2L68.6 131.5C63.9 126.8 55.7 126.8 51 131.5L3.5 179C-1.2 183.7 -1.2 191.3 3.5 196L19.2 211.7C23.9 216.4 31.5 216.4 36.2 211.7L58.9 189.6L122.6 253.3C127.3 258 134.9 258 139.6 253.3L156.6 236.3C161.2 231.7 161.2 224.1 156.5 219.4z" />
    +    <glyph glyph-name="taxi"
    +      unicode="&#xF1BA;"
    +      horiz-adv-x="512" d=" M462 206.36L440 291.2000000000001C430.4 326.4000000000001 398.4 352 363.2 352H352V384C352 401.67 337.67 416 320 416H192C174.33 416 160 401.67 160 384V352H148.8C113.6 352 81.6 326.4 72 291.2L50 206.36C21.41 199.96 0 174.53 0 144V96C0 72.37 12.95 51.96 32 40.88V0C32 -17.67 46.33 -32 64 -32H96C113.67 -32 128 -17.67 128 0V32H384V0C384 -17.67 398.33 -32 416 -32H448C465.67 -32 480 -17.67 480 0V40.88C499.05 51.97 512 72.38 512 96V144C512 174.53 490.59 199.96 462 206.36zM96 96C78.33 96 64 110.33 64 128S78.33 160 96 160S128 145.67 128 128S113.67 96 96 96zM116.55 208L133.75 274.36C135.98 282.52 143.34 288 148.81 288H363.2100000000001C368.6800000000001 288 376.04 282.52 378.0600000000001 275.14L395.45 208H116.55zM416 96C398.33 96 384 110.33 384 128S398.33 160 416 160S448 145.67 448 128S433.67 96 416 96z" />
    +    <glyph glyph-name="teeth-open"
    +      unicode="&#xF62F;"
    +      horiz-adv-x="640" d=" M544 448H96C42.98 448 0 405.02 0 352V288C0 252.65 28.66 224 64 224H576C611.34 224 640 252.65 640 288V352C640 405.02 597.02 448 544 448zM160 272C160 263.16 152.84 256 144 256H80C71.16 256 64 263.16 64 272V304C64 330.51 85.49 352 112 352S160 330.51 160 304V272zM304 272C304 263.16 296.84 256 288 256H208C199.16 256 192 263.16 192 272V328C192 358.93 217.07 384 248 384S304 358.93 304 328V272zM448 272C448 263.16 440.84 256 432 256H352C343.1600000000001 256 336 263.16 336 272V328C336 358.93 361.07 384 392 384S448 358.93 448 328V272zM576 272C576 263.16 568.84 256 560 256H496C487.16 256 480 263.16 480 272V304C480 330.51 501.49 352 528 352S576 330.51 576 304V272zM576 128H64C28.66 128 0 99.35 0 64V32C0 -21.02 42.98 -64 96 -64H544C597.02 -64 640 -21.02 640 32V64C640 99.35 611.34 128 576 128zM160 48C160 21.49 138.51 0 112 0S64 21.49 64 48V80C64 88.84 71.16 96 80 96H144C152.84 96 160 88.84 160 80V48zM304 56C304 25.07 278.93 0 248 0S192 25.07 192 56V80C192 88.84 199.16 96 208 96H288C296.84 96 304 88.84 304 80V56zM448 56C448 25.07 422.93 0 392 0S336 25.07 336 56V80C336 88.84 343.1600000000001 96 352 96H432C440.84 96 448 88.84 448 80V56zM576 48C576 21.49 554.51 0 528 0S480 21.49 480 48V80C480 88.84 487.16 96 496 96H560C568.84 96 576 88.84 576 80V48z" />
    +    <glyph glyph-name="teeth"
    +      unicode="&#xF62E;"
    +      horiz-adv-x="640" d=" M544 448H96C42.98 448 0 405.02 0 352V32C0 -21.02 42.98 -64 96 -64H544C597.02 -64 640 -21.02 640 32V352C640 405.02 597.02 448 544 448zM160 80C160 53.49 138.51 32 112 32S64 53.49 64 80V144C64 152.84 71.16 160 80 160H144C152.84 160 160 152.84 160 144V80zM160 208C160 199.16 152.84 192 144 192H80C71.16 192 64 199.16 64 208V272C64 298.51 85.49 320 112 320S160 298.51 160 272V208zM304 88C304 57.07 278.93 32 248 32S192 57.07 192 88V144C192 152.84 199.16 160 208 160H288C296.84 160 304 152.84 304 144V88zM304 208C304 199.16 296.84 192 288 192H208C199.16 192 192 199.16 192 208V296C192 326.93 217.07 352 248 352S304 326.93 304 296V208zM448 88C448 57.07 422.93 32 392 32S336 57.07 336 88V144C336 152.84 343.1600000000001 160 352 160H432C440.84 160 448 152.84 448 144V88zM448 208C448 199.16 440.84 192 432 192H352C343.1600000000001 192 336 199.16 336 208V296C336 326.93 361.07 352 392 352S448 326.93 448 296V208zM576 80C576 53.49 554.51 32 528 32S480 53.49 480 80V144C480 152.84 487.16 160 496 160H560C568.84 160 576 152.84 576 144V80zM576 208C576 199.16 568.84 192 560 192H496C487.16 192 480 199.16 480 208V272C480 298.51 501.49 320 528 320S576 298.51 576 272V208z" />
    +    <glyph glyph-name="terminal"
    +      unicode="&#xF120;"
    +      horiz-adv-x="640" d=" M257.981 175.029L63.638 -19.314C54.265 -28.687 39.069 -28.687 29.697 -19.314L7.029 3.353C-2.328 12.71 -2.346 27.875 6.989 37.254L161.011 192L6.99 346.745C-2.345 356.124 -2.327 371.289 7.03 380.646L29.697 403.313C39.07 412.6860000000001 54.266 412.6860000000001 63.638 403.313L257.981 208.97C267.354 199.598 267.354 184.402 257.981 175.029zM640 -8V24C640 37.255 629.255 48 616 48H312C298.745 48 288 37.255 288 24V-8C288 -21.255 298.745 -32 312 -32H616C629.255 -32 640 -21.255 640 -8z" />
    +    <glyph glyph-name="text-height"
    +      unicode="&#xF034;"
    +      horiz-adv-x="576" d=" M16 416H304C312.837 416 320 408.837 320 400V304C320 295.163 312.837 288 304 288H268.504C259.6670000000001 288 252.504 295.163 252.504 304V352H197.743V32H232C240.837 32 248 24.837 248 16V-16C248 -24.837 240.837 -32 232 -32H88C79.163 -32 72 -24.837 72 -16V16C72 24.837 79.163 32 88 32H122.257V352H67.496V304C67.496 295.163 60.333 288 51.496 288H16C7.163 288 0 295.163 0 304V400C0 408.837 7.163 416 16 416zM491.308 411.315L571.303 331.314C581.309 321.307 574.297 304 559.99 304H512V80H560C575.639 80 580.635 62.009 571.313 52.686L491.318 -27.3150000000001C485.071 -33.5620000000001 474.937 -33.5600000000001 468.692 -27.3150000000001L388.697 52.6859999999999C378.691 62.693 385.703 80 400.01 80H448V304H400C384.361 304 379.365 321.991 388.687 331.314L468.682 411.315C474.929 417.563 485.063 417.56 491.308 411.315z" />
    +    <glyph glyph-name="text-width"
    +      unicode="&#xF035;"
    +      horiz-adv-x="448" d=" M16 416H432C440.837 416 448 408.837 448 400V304C448 295.163 440.837 288 432 288H396.504C387.6670000000001 288 380.504 295.163 380.504 304V352H261.743V224H296C304.837 224 312 216.837 312 208V176C312 167.163 304.837 160 296 160H152C143.163 160 136 167.163 136 176V208C136 216.837 143.163 224 152 224H186.257V352H67.496V304C67.496 295.163 60.333 288 51.496 288H16C7.163 288 0 295.163 0 304V400C0 408.837 7.163 416 16 416zM443.315 75.318L363.314 155.313C353.991 164.635 336 159.638 336 144V96H112V143.99C112 158.297 94.693 165.309 84.686 155.303L4.685 75.308C-1.56 69.063 -1.562 58.929 4.685 52.682L84.686 -27.313C94.009 -36.635 112 -31.638 112 -16V32H336V-15.99C336 -30.297 353.307 -37.309 363.314 -27.303L443.3150000000001 52.692C449.5600000000001 58.937 449.5630000000001 69.071 443.3150000000001 75.318z" />
    +    <glyph glyph-name="th-large"
    +      unicode="&#xF009;"
    +      horiz-adv-x="512" d=" M296 416H488C501.255 416 512 405.255 512 392V232C512 218.745 501.255 208 488 208H296C282.745 208 272 218.745 272 232V392C272 405.255 282.745 416 296 416zM216 416H24C10.745 416 0 405.255 0 392V232C0 218.745 10.745 208 24 208H216C229.255 208 240 218.745 240 232V392C240 405.255 229.255 416 216 416zM0 152V-8C0 -21.255 10.745 -32 24 -32H216C229.255 -32 240 -21.255 240 -8V152C240 165.255 229.255 176 216 176H24C10.745 176 0 165.255 0 152zM296 -32H488C501.255 -32 512 -21.255 512 -8V152C512 165.255 501.255 176 488 176H296C282.745 176 272 165.255 272 152V-8C272 -21.255 282.745 -32 296 -32z" />
    +    <glyph glyph-name="th-list"
    +      unicode="&#xF00B;"
    +      horiz-adv-x="512" d=" M149.333 232V152C149.333 138.745 138.588 128 125.333 128H24C10.745 128 0 138.745 0 152V232C0 245.255 10.745 256 24 256H125.333C138.588 256 149.333 245.255 149.333 232zM0 72V-8C0 -21.255 10.745 -32 24 -32H125.333C138.588 -32 149.333 -21.255 149.333 -8V72C149.333 85.255 138.588 96 125.333 96H24C10.745 96 0 85.255 0 72zM125.333 416H24C10.745 416 0 405.255 0 392V312C0 298.745 10.745 288 24 288H125.333C138.588 288 149.333 298.745 149.333 312V392C149.333 405.255 138.588 416 125.333 416zM205.333 -32H488C501.255 -32 512 -21.255 512 -8V72C512 85.255 501.255 96 488 96H205.333C192.078 96 181.333 85.255 181.333 72V-8C181.333 -21.255 192.078 -32 205.333 -32zM181.333 392V312C181.333 298.745 192.078 288 205.333 288H488C501.255 288 512 298.745 512 312V392C512 405.255 501.255 416 488 416H205.333C192.078 416 181.333 405.255 181.333 392zM205.333 128H488C501.255 128 512 138.745 512 152V232C512 245.255 501.255 256 488 256H205.333C192.078 256 181.333 245.255 181.333 232V152C181.333 138.745 192.078 128 205.333 128z" />
    +    <glyph glyph-name="th"
    +      unicode="&#xF00A;"
    +      horiz-adv-x="512" d=" M149.333 392V312C149.333 298.745 138.588 288 125.333 288H24C10.745 288 0 298.745 0 312V392C0 405.255 10.745 416 24 416H125.333C138.588 416 149.333 405.255 149.333 392zM330.6670000000001 152V232C330.6670000000001 245.255 319.9220000000001 256 306.6670000000001 256H205.333C192.078 256 181.333 245.255 181.333 232V152C181.333 138.745 192.078 128 205.333 128H306.666C319.9220000000001 128 330.667 138.745 330.667 152zM362.6670000000001 392V312C362.6670000000001 298.745 373.4120000000001 288 386.6670000000001 288H488C501.255 288 512 298.745 512 312V392C512 405.255 501.255 416 488 416H386.667C373.412 416 362.667 405.255 362.667 392zM330.6670000000001 312V392C330.6670000000001 405.255 319.9220000000001 416 306.6670000000001 416H205.333C192.078 416 181.333 405.255 181.333 392V312C181.333 298.745 192.078 288 205.333 288H306.666C319.9220000000001 288 330.667 298.745 330.667 312zM125.333 256H24C10.745 256 0 245.255 0 232V152C0 138.745 10.745 128 24 128H125.333C138.588 128 149.333 138.745 149.333 152V232C149.333 245.255 138.588 256 125.333 256zM0 72V-8C0 -21.255 10.745 -32 24 -32H125.333C138.588 -32 149.333 -21.255 149.333 -8V72C149.333 85.255 138.588 96 125.333 96H24C10.745 96 0 85.255 0 72zM386.667 128H488C501.255 128 512 138.745 512 152V232C512 245.255 501.255 256 488 256H386.667C373.412 256 362.667 245.255 362.667 232V152C362.667 138.745 373.412 128 386.667 128zM386.667 -32H488C501.255 -32 512 -21.255 512 -8V72C512 85.255 501.255 96 488 96H386.667C373.412 96 362.667 85.255 362.667 72V-8C362.667 -21.255 373.412 -32 386.667 -32zM181.333 72V-8C181.333 -21.255 192.078 -32 205.333 -32H306.666C319.921 -32 330.666 -21.255 330.666 -8V72C330.666 85.255 319.921 96 306.666 96H205.333C192.078 96 181.333 85.255 181.333 72z" />
    +    <glyph glyph-name="theater-masks"
    +      unicode="&#xF630;"
    +      horiz-adv-x="640" d=" M206.86 202.85C170.98 192.4 146.91 161.65 149.33 128.75C160.73 141.47 178.14 152.45 199.23 159.67L206.86 202.85zM95.81 153L64.08 332.51C63.79 334.13 64.36 335.13 64.32 335.1600000000001C122.08 367.2200000000001 187.44 384.17 253.33 384.17C254.94 384.17 256.56 384 258.18 383.98C272.13 397.45 289.9100000000001 406.81 309.77 409.98C328.66 413 347.82 414.53 366.95 415.3C356.96 429.25 342.47 439.5300000000001 325.18 442.3C301.27 446.11 277.24 448 253.32 448C176.66 448 101.02 428.58 33.2 390.94C9.03 377.52 -3.92 349.52 1.05 321.42L32.78 141.91C47.01 61.39 169.11 -0.17 237.23 -0.17C240.82 -0.17 243.98 0.29 247.24 0.6300000000001C233.72 17.71 218.3 41.1100000000001 207.74 68.21C160.13 81.1900000000001 101.68 119.8300000000001 95.81 153.0000000000001zM193.36 290.4600000000001C192.63 294.5800000000001 191.13 298.3300000000001 189.29 301.86C181.04 292.9500000000001 168.62 286.11 153.97 283.54C139.32 280.9600000000001 125.3 283.14 114.4900000000001 288.7100000000001C113.9700000000001 284.77 113.85 280.73 114.5800000000001 276.61C118.4200000000001 254.9100000000001 139.16 240.42 160.9200000000001 244.24C182.6700000000001 248.06 197.2000000000001 268.76 193.3600000000001 290.4600000000001zM606.8 327.1C517.8199999999999 376.48 415.37 394.51 314.82 378.45C287.51 374.09 265.74 352.19 260.7799999999999 324.09L229.05 144.58C213.6599999999999 57.53 324.33 -51.6900000000001 387.3599999999999 -62.77C450.3899999999999 -73.86 591.8299999999999 -8.98 607.2199999999999 78.0700000000001L638.9499999999999 257.5800000000001C643.92 285.6900000000001 630.9699999999999 313.6900000000001 606.8 327.1zM333.56 230.3C337.3999999999999 252 358.14 266.49 379.9 262.6600000000001C401.66 258.8300000000001 416.18 238.14 412.35 216.44C411.62 212.32 410.12 208.57 408.28 205.04C400.03 213.95 387.61 220.79 372.96 223.36C358.31 225.9400000000001 344.29 223.76 333.48 218.19C332.95 222.14 332.83 226.1800000000001 333.56 230.3zM404.03 31.54C348.35 41.33 310.51 90.81 314.99 144.4400000000001C335.59 118.9 371.2 98.27 414.48 90.6600000000001C457.76 83.0500000000001 498.3 90.2900000000001 526.41 107.2600000000001C512.23 55.3200000000001 459.7 21.7500000000001 404.03 31.5400000000001zM534.3299999999999 182.88C526.0799999999999 191.79 513.65 198.63 498.9999999999999 201.2C484.35 203.78 470.3299999999999 201.6 459.5199999999999 196.03C458.9999999999999 199.97 458.8799999999999 204.01 459.6099999999999 208.13C463.4499999999999 229.83 484.1899999999999 244.32 505.9499999999999 240.5C527.6999999999999 236.67 542.2299999999999 215.98 538.4 194.28C537.67 190.15 536.17 186.4 534.3299999999999 182.88z" />
    +    <glyph glyph-name="thermometer-empty"
    +      unicode="&#xF2CB;"
    +      horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 99.346 92.654 128 128 128S192 99.346 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" />
    +    <glyph glyph-name="thermometer-full"
    +      unicode="&#xF2C7;"
    +      horiz-adv-x="256" d=" M224 352C224 405.019 181.019 448 128 448S32 405.019 32 352V148.653C12.225 126.244 0.166 96.864 0.002 64.667C-0.357 -5.636 56.789 -63.509 127.091 -63.997C127.39 -63.999 127.701 -64 128 -64C198.698 -64 256 -6.696 256 64C256 96.459 243.912 126.09 224 148.653V352zM128 -16L127.424 -15.998C83.564 -15.694 47.777 20.546 48.001 64.422C48.174 98.402 67.267 116.074 80 130.502V352C80 378.467 101.533 400 128 400S176 378.467 176 352V130.502C188.63 116.19 208 98.338 208 64C208 19.888 172.112 -16 128 -16zM192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V352C96 369.673 110.327 384 128 384S160 369.673 160 352V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64z" />
    +    <glyph glyph-name="thermometer-half"
    +      unicode="&#xF2C9;"
    +      horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V224C96 241.673 110.327 256 128 256S160 241.673 160 224V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" />
    +    <glyph glyph-name="thermometer-quarter"
    +      unicode="&#xF2CA;"
    +      horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V160C96 177.673 110.327 192 128 192S160 177.673 160 160V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" />
    +    <glyph glyph-name="thermometer-three-quarters"
    +      unicode="&#xF2C8;"
    +      horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0C92.654 0 64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V288C96 305.673 110.327 320 128 320S160 305.673 160 288V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" />
    +    <glyph glyph-name="thermometer"
    +      unicode="&#xF491;"
    +      horiz-adv-x="512" d=" M476.8 427.6C439.3 458.3 381.3 453.9 344.9 417.4L299.2 371.4L349.7 320.9C352.8 317.8 352.8 312.7000000000001 349.7 309.6L338.4 298.3C335.3 295.2 330.2 295.2 327.1 298.3L276.7 348.8L231.6 303.4L281.9 253C285 249.9 285 244.8 281.9 241.7L270.6 230.4C267.5 227.3 262.4 227.3 259.3 230.4L209 280.6L163.9 235.2L214 185C217.1 181.9 217.1 176.8 214 173.7L202.7 162.4C199.6 159.3 194.5 159.3 191.4 162.4L141.3 212.6L96 166.9V66L7 -23C-2.4 -32.4 -2.4 -47.6 7 -56.9C16.4 -66.2999999999999 31.6 -66.2999999999999 40.9 -56.9L129.9 32.1H229.8L484 285.4C518.9 320.3 526.2 386.9 476.8 427.6z" />
    +    <glyph glyph-name="thumbs-down"
    +      unicode="&#xF165;"
    +      horiz-adv-x="512" d=" M0 392V152C0 138.745 10.745 128 24 128H104C117.255 128 128 138.745 128 152V392C128 405.255 117.255 416 104 416H24C10.745 416 0 405.255 0 392zM40 192C40 205.255 50.745 216 64 216S88 205.255 88 192S77.255 168 64 168S40 178.745 40 192zM312 -64C291.817 -64 282.515 -24.707 278.069 -6.205C272.863 15.461 267.48 37.865 252.676 52.697C220.207 85.221 203.173 126.664 163.559 165.808A11.98 11.98 0 0 0 160.001 174.329V388.099C160.001 394.64 165.244 399.977 171.784 400.097C187.615 400.387 208.478 409.176 224.435 416.275C256.189 430.402 295.709 447.983 343.995 448H346.839C389.616 448 440.202 447.587 460.613 418.263C469.005 406.206 471.059 391.229 466.761 373.631C483.073 356.578 491.824 324.7680000000001 483.143 298.874C500.687 275.442 502.2860000000001 242.742 492.451 219.405L492.561 219.295C504.4540000000001 207.346 512.0840000000001 188.036 512 170.098C511.844 139.746 485.843 111.9999999999999 452.447 111.9999999999999H350.723C358.03 83.66 384 59.868 384 17.452C384 -56 336 -64 312 -64z" />
    +    <glyph glyph-name="thumbs-up"
    +      unicode="&#xF164;"
    +      horiz-adv-x="512" d=" M104 224H24C10.745 224 0 213.255 0 200V-40C0 -53.255 10.745 -64 24 -64H104C117.255 -64 128 -53.255 128 -40V200C128 213.255 117.255 224 104 224zM64 -24C50.745 -24 40 -13.255 40 0S50.745 24 64 24S88 13.255 88 0S77.255 -24 64 -24zM384 366.548C384 324.132 358.03 300.3400000000001 350.723 272H452.446C485.843 272 511.843 244.254 511.999 213.902C512.083 195.964 504.453 176.653 492.56 164.705L492.45 164.595C502.286 141.258 500.687 108.558 483.142 85.126C491.823 59.231 483.073 27.422 466.76 10.369C471.058 -7.229 469.004 -22.206 460.612 -34.263C440.202 -63.587 389.616 -64 346.839 -64L343.994 -63.999C295.707 -63.982 256.188 -46.401 224.434 -32.274C208.477 -25.175 187.613 -16.387 171.783 -16.096C165.243 -15.976 160 -10.639 160 -4.098V209.672C160 212.872 161.282 215.943 163.558 218.193C203.172 257.337 220.206 298.78 252.675 331.304C267.479 346.136 272.863 368.54 278.068 390.206C282.515 408.707 291.817 448 312 448C336 448 384 440 384 366.548z" />
    +    <glyph glyph-name="thumbtack"
    +      unicode="&#xF08D;"
    +      horiz-adv-x="384" d=" M298.028 233.733L285.793 352H328C341.255 352 352 362.745 352 376V424C352 437.255 341.255 448 328 448H56C42.745 448 32 437.255 32 424V376C32 362.745 42.745 352 56 352H98.207L85.972 233.733C37.465 211.18 0 170.739 0 120C0 106.745 10.745 96 24 96H160V-8.007C160 -9.249 160.289 -10.474 160.845 -11.585L184.845 -59.585C187.786 -65.467 196.209 -65.4779999999999 199.156 -59.585L223.156 -11.585A8.008 8.008 0 0 1 224.001 -8.007V96H360.001C373.256 96 384.001 106.745 384.001 120C384 171.183 346.018 211.42 298.028 233.733z" />
    +    <glyph glyph-name="ticket-alt"
    +      unicode="&#xF3FF;"
    +      horiz-adv-x="576" d=" M128 288H448V96H128V288zM528 192C528 165.49 549.49 144 576 144V48C576 21.49 554.51 0 528 0H48C21.49 0 0 21.49 0 48V144C26.51 144 48 165.49 48 192S26.51 240 0 240V336C0 362.51 21.49 384 48 384H528C554.51 384 576 362.51 576 336V240C549.49 240 528 218.51 528 192zM480 296C480 309.255 469.255 320 456 320H120C106.745 320 96 309.255 96 296V88C96 74.745 106.745 64 120 64H456C469.255 64 480 74.745 480 88V296z" />
    +    <glyph glyph-name="times-circle"
    +      unicode="&#xF057;"
    +      horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM377.6 126.9C382.3 122.2 382.3 114.6 377.6 109.9L338 70.4C333.3 65.7 325.7 65.7 321 70.4L256 136L190.9 70.4C186.2 65.7 178.6 65.7 173.9 70.4L134.4 110C129.7 114.7 129.7 122.3 134.4 127L200 192L134.4 257.1C129.7 261.8 129.7 269.4 134.4 274.1L174 313.7C178.7 318.4 186.3 318.4 191 313.7L256 248L321.1 313.6C325.8 318.3 333.4000000000001 318.3 338.1 313.6L377.7000000000001 274C382.4000000000001 269.3 382.4000000000001 261.7 377.7000000000001 257L312 192L377.6 126.9z" />
    +    <glyph glyph-name="times"
    +      unicode="&#xF00D;"
    +      horiz-adv-x="352" d=" M242.72 192L342.79 292.07C355.07 304.35 355.07 324.26 342.79 336.55L320.55 358.79C308.27 371.07 288.36 371.07 276.07 358.79L176 258.7200000000001L75.93 358.79C63.65 371.07 43.74 371.07 31.45 358.79L9.21 336.55C-3.07 324.27 -3.07 304.36 9.21 292.07L109.28 192L9.21 91.93C-3.07 79.65 -3.07 59.74 9.21 47.45L31.45 25.21C43.73 12.93 63.65 12.93 75.93 25.21L176 125.28L276.07 25.21C288.35 12.93 308.27 12.93 320.55 25.21L342.79 47.45C355.07 59.73 355.07 79.64 342.79 91.93L242.72 192z" />
    +    <glyph glyph-name="tint-slash"
    +      unicode="&#xF5C7;"
    +      horiz-adv-x="640" d=" M633.82 -10.1L494.97 97.22C495.49 102.79 496 108.3800000000001 496 114.09C496 225.85 396.21 267.4300000000001 349.2200000000001 425.9100000000001C341.2800000000001 454.6900000000001 299.7800000000001 456.03 290.7800000000001 425.9100000000001C275.2600000000001 373.5700000000001 253.9100000000001 333.9500000000001 232.29 300.23L45.47 444.63C38.49 450.05 28.43 448.8 23.01 441.82L3.37 416.55C-2.05 409.58 -0.8 399.53 6.18 394.1L594.54 -60.63C601.52 -66.0599999999999 611.5699999999999 -64.7999999999999 617 -57.82L636.64 -32.55C642.05 -25.58 640.8 -15.53 633.8199999999999 -10.1zM144 114.09C144 15.65 222.72 -64 320 -64C364.71 -64 405.37 -47.04 436.4 -19.3L162.72 192.22C151.31 168.72 144 143.87 144 114.09z" />
    +    <glyph glyph-name="tint"
    +      unicode="&#xF043;"
    +      horiz-adv-x="352" d=" M205.22 425.9100000000001C197.28 454.69 155.78 456.03 146.78 425.9100000000001C100.01 268.15 0 225.28 0 114.09C0 15.65 78.72 -64 176 -64S352 15.65 352 114.09C352 225.8400000000001 252.21 267.4300000000001 205.22 425.9100000000001zM176 0C114.25 0 64 50.25 64 112C64 120.84 71.16 128 80 128S96 120.84 96 112C96 67.89 131.89 32 176 32C184.84 32 192 24.84 192 16S184.84 0 176 0z" />
    +    <glyph glyph-name="tired"
    +      unicode="&#xF5C8;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM281.8 250.3L361.8 298.3C373.4000000000001 305.2000000000001 385.8 290.6 377.2 280.3L343.6 240L377.2000000000001 199.7C385.9000000000001 189.3 373.3000000000001 174.9 361.8000000000001 181.7L281.8000000000001 229.7C274.1000000000001 234.4 274.1000000000001 245.6 281.8000000000001 250.3zM118.8 280.3C110.2 290.6 122.6 305.2000000000001 134.2 298.3L214.2 250.3C222 245.6 222 234.4 214.2 229.7L134.2 181.7000000000001C122.7 174.9 110.2 189.3000000000001 118.8 199.7000000000001L152.4 240.0000000000001L118.8 280.3000000000001zM248 160C299.9 160 363.3 116.2 371.2 53.3C372.9 39.7 363.2 28.7 353.5 32.9C327.6 44.0000000000001 289.1 50.3 248 50.3S168.4 44 142.5 32.9C132.7 28.7 123.1 39.9 124.8 53.3C132.7 116.2 196.1 160 248 160z" />
    +    <glyph glyph-name="toggle-off"
    +      unicode="&#xF204;"
    +      horiz-adv-x="576" d=" M384 384H192C85.961 384 0 298.039 0 192S85.961 0 192 0H384C490.039 0 576 85.961 576 192S490.039 384 384 384zM64 192C64 262.741 121.249 320 192 320C262.741 320 320 262.751 320 192C320 121.259 262.751 64 192 64C121.259 64 64 121.249 64 192zM384 64H335.0950000000001C400.312 136.858 400.331 247.12 335.0950000000001 320H384C454.741 320 512 262.751 512 192C512 121.26 454.751 64 384 64z" />
    +    <glyph glyph-name="toggle-on"
    +      unicode="&#xF205;"
    +      horiz-adv-x="576" d=" M576 192C576 85.961 490.039 0 384 0H192C85.961 0 0 85.961 0 192S85.961 384 192 384H384C490.039 384 576 298.039 576 192zM384 320C313.259 320 256 262.751 256 192C256 121.259 313.249 64 384 64C454.741 64 512 121.249 512 192C512 262.741 454.751 320 384 320" />
    +    <glyph glyph-name="toilet-paper"
    +      unicode="&#xF71E;"
    +      horiz-adv-x="576" d=" M128 448C74.98 448 32 362.04 32 256V83.93C32 42.81 22.2 21.16 0.83 -42.94C-2.62 -53.3 5.09 -64 16.01 -64H296.93C310.7 -64 322.93 -55.19 327.29 -42.12C340.12 -3.64 352 30.28 352 83.93V256C352 339.6 375.67 409.52 412.44 448H128zM96 224C87.16 224 80 231.16 80 240S87.16 256 96 256S112 248.84 112 240S104.84 224 96 224zM160 224C151.16 224 144 231.16 144 240S151.16 256 160 256S176 248.84 176 240S168.84 224 160 224zM224 224C215.16 224 208 231.16 208 240S215.16 256 224 256S240 248.84 240 240S232.84 224 224 224zM288 224C279.1600000000001 224 272 231.16 272 240S279.1600000000001 256 288 256S304 248.84 304 240S296.84 224 288 224zM480 448C426.98 448 384 362.04 384 256S426.98 64 480 64S576 149.96 576 256S533.02 448 480 448zM480 192C462.33 192 448 220.65 448 256S462.33 320 480 320S512 291.35 512 256S497.67 192 480 192z" />
    +    <glyph glyph-name="toolbox"
    +      unicode="&#xF552;"
    +      horiz-adv-x="512" d=" M502.63 233.37L457.38 278.62C451.38 284.62 443.24 287.99 434.75 287.99H384V368C384 394.51 362.51 416 336 416H176C149.49 416 128 394.51 128 368V288H77.25C68.76 288 60.63 284.63 54.62 278.63L9.37 233.37C3.37 227.37 0 219.23 0 210.74V128H128V144C128 152.84 135.16 160 144 160H176C184.84 160 192 152.84 192 144V128H320V144C320 152.84 327.1600000000001 160 336 160H368C376.84 160 384 152.84 384 144V128H512V210.75C512 219.23 508.63 227.37 502.63 233.37zM320 288H192V352H320V288zM384 80C384 71.16 376.84 64 368 64H336C327.1600000000001 64 320 71.16 320 80V96H192V80C192 71.16 184.84 64 176 64H144C135.16 64 128 71.16 128 80V96H0V0C0 -17.67 14.33 -32 32 -32H480C497.67 -32 512 -17.67 512 0V96H384V80z" />
    +    <glyph glyph-name="tooth"
    +      unicode="&#xF5C9;"
    +      horiz-adv-x="448" d=" M443.98 351.75C432.9700000000001 396.9700000000001 396.87 433.81 351.9700000000001 445.4700000000001C319.7800000000001 453.83 288.9700000000001 440.37 262.8300000000001 421.14C259.5800000000001 418.75 255.8700000000001 417.4100000000001 252.3300000000001 415.66L280.6500000000001 397.45C288.0700000000001 392.68 290.23 382.78 285.4500000000001 375.3400000000001C280.9900000000001 368.39 271.1800000000001 365.48 263.3400000000001 370.54L162.83 435.1600000000001C142.13 446.01 119.45 451.56 96.02 445.4700000000001C51.12 433.8 15.02 396.9700000000001 4.01 351.75C-6.12 310.13 3.59 270.94 25.51 241.32C48.87 209.75 58.19 172.66 61.8 133.97C66.2 86.8100000000001 72.13 39.8100000000001 82.74 -6.35L90.54 -40.3C93.73 -54.17 106.03 -63.9999999999999 120.21 -63.9999999999999C134.18 -63.9999999999999 146.36 -54.4499999999999 149.75 -40.8399999999999L184.22 97.58C188.78 115.9 205.18 128.7400000000001 223.98 128.7400000000001S259.18 115.8900000000001 263.74 97.58L298.2100000000001 -40.8399999999999C301.6 -54.4499999999999 313.7800000000001 -63.9999999999999 327.7500000000001 -63.9999999999999C341.9300000000001 -63.9999999999999 354.2300000000001 -54.17 357.4200000000001 -40.3L365.2200000000001 -6.35C375.8300000000001 39.8 381.7500000000001 86.8100000000001 386.1600000000001 133.97C389.7700000000001 172.67 399.0900000000001 209.75 422.4500000000001 241.32C444.4000000000001 270.93 454.1100000000001 310.12 443.9800000000002 351.75z" />
    +    <glyph glyph-name="torah"
    +      unicode="&#xF6A0;"
    +      horiz-adv-x="448" d=" M448 89.6V422.4C448 438.4 438.4 448 422.4 448H96C41.6 448 0 406.4 0 352V32C0 -22.4 41.6 -64 96 -64H422.4C435.2 -64 448 -54.4 448 -38.4V-22.4C448 -16 444.8 -9.6 438.4 -3.2C435.2 12.8 435.2 57.6 438.4 70.4C444.8 73.6 448 80 448 89.6zM139.11 306.79C136.34 311.2 139.51 316.93 144.71 316.93H197.79C198.69 316.93 199.52 317.39 200 318.15L234.4000000000001 372.91C237.0000000000001 377.04 243.0100000000001 377.04 245.6100000000001 372.91L280.0100000000001 318.15A2.61 2.61 0 0 1 282.2200000000001 316.93H335.3C340.5 316.93 343.67 311.2000000000001 340.9000000000001 306.79L314.01 264L340.89 221.21C343.66 216.81 340.49 211.08 335.29 211.08H282.21C281.31 211.08 280.48 210.62 280 209.86L245.6 155.1C243 150.97 236.99 150.97 234.39 155.1L200 209.85A2.61 2.61 0 0 1 197.79 211.07H144.71C139.51 211.07 136.34 216.8 139.11 221.2L165.99 264L139.11 306.79zM380.8 0H96C76.8 0 64 12.8 64 32S80 64 96 64H380.8V0z" />
    +    <glyph glyph-name="torii-gate"
    +      unicode="&#xF6A1;"
    +      horiz-adv-x="512" d=" M376.45 416H135.55A303.17 303.17 0 0 0 0 448V352C0 334.33 14.33 320 32 320H64V256H16C7.16 256 0 248.84 0 240V208C0 199.16 7.16 192 16 192H64V-48C64 -56.84 71.16 -64 80 -64H112C120.84 -64 128 -56.84 128 -48V192H384V-48C384 -56.84 391.1600000000001 -64 400 -64H432C440.84 -64 448 -56.84 448 -48V192H496C504.84 192 512 199.16 512 208V240C512 248.84 504.84 256 496 256H448V320H480C497.67 320 512 334.33 512 352V448A303.17 303.17 0 0 0 376.45 416zM128 320H224V256H128V320zM384 256H288V320H384V256z" />
    +    <glyph glyph-name="tractor"
    +      unicode="&#xF722;"
    +      horiz-adv-x="640" d=" M528 112C479.4 112 440 72.6 440 24S479.4 -64 528 -64S616 -24.6 616 24S576.6 112 528 112zM528 0C514.77 0 504 10.77 504 24S514.77 48 528 48S552 37.23 552 24S541.23 0 528 0zM608 288H544V328.2C544 342.32 548.7 355.9600000000001 557.15 367.04C561.5699999999999 372.8400000000001 560.6999999999999 381.1 555.8299999999999 386.53L534.2 410.7C527.5400000000001 418.15 515.88 417.62 509.5000000000001 409.92C490.58 387.1 480 358.19 480 328.2V288H377.67L321.58 418.86A47.914 47.914 0 0 1 277.45 448H144C117.53 448 96 426.4700000000001 96 400V253.48C87.37 260.21 75.04 259.94 67.11 252.01L36 220.9C27.41 212.31 27.41 198.38 36 189.79L41.06 184.73C36.07 175.47 32.1 165.91 29.15 156.01H22C9.85 156.01 0 146.16 0 134.01V90.01C0 77.86 9.85 68.01 22 68.01H29.14C32.1 58.1 36.06 48.55 41.05 39.28L35.99 34.22C27.4 25.63 27.4 11.7 35.99 3.11L67.1 -28C75.69 -36.59 89.62 -36.59 98.21 -28L103.27 -22.94C112.53 -27.93 122.09 -31.9 131.99 -34.85V-42C131.99 -54.15 141.84 -64 153.99 -64H197.99C210.14 -64 219.99 -54.15 219.99 -42V-34.86C229.89 -31.91 239.45 -27.94 248.71 -22.95L253.77 -28.01C262.36 -36.6 276.29 -36.6 284.88 -28.01L315.99 3.1C324.58 11.69 324.58 25.62 315.99 34.21L310.93 39.27C315.92 48.53 319.89 58.09 322.8400000000001 67.99H330C342.15 67.99 352 77.84 352 89.99V95.99H432.54C454.45 124.98 488.86 143.99 528 143.99C546.64 143.99 564.07 139.38 579.8 131.79L630.62 182.61C636.62 188.61 639.99 196.75 639.99 205.24V256C640 273.67 625.67 288 608 288zM176 32C131.82 32 96 67.82 96 112S131.82 192 176 192S256 156.18 256 112S220.18 32 176 32zM198 288H160V384H266.89L308.04 288H198z" />
    +    <glyph glyph-name="trademark"
    +      unicode="&#xF25C;"
    +      horiz-adv-x="640" d=" M97.119 284.867H12C5.373 284.867 0 290.24 0 296.867V340C0 346.627 5.373 352 12 352H260.559C267.186 352 272.559 346.627 272.559 340V296.867C272.559 290.24 267.186 284.867 260.559 284.867H175.44V44C175.44 37.373 170.067 32 163.44 32H109.118C102.491 32 97.118 37.373 97.118 44V284.867zM329.825 352H395.25A12 12 0 0 0 406.596 343.907L450.355 216.839C457.516 196.251 466.466 164.027 466.466 164.027H467.362S476.312 196.251 483.473 216.839L527.231 343.907A12 12 0 0 0 538.577 352H603.987A12 12 0 0 0 615.948 340.9700000000001L639.96 44.97C640.527 37.983 635.009 32 627.999 32H573.898A12 12 0 0 0 561.926 43.182L552.844 176.112C551.0540000000001 200.28 552.844 229.8180000000001 552.844 229.8180000000001H551.9480000000001S541.2070000000001 196.2520000000001 534.046 176.112L503.3460000000001 91.381A12 12 0 0 0 492.0640000000001 83.4690000000001H441.7620000000001A12 12 0 0 0 430.4800000000001 91.381L399.7800000000001 176.112C392.6190000000001 196.252 381.8770000000001 229.8180000000001 381.8770000000001 229.8180000000001H380.9820000000001S382.7720000000001 200.28 380.9820000000001 176.112L371.9000000000001 43.182C371.4720000000001 36.887 366.2400000000001 32 359.9300000000001 32H305.4C298.383 32 292.864 37.994 293.441 44.987L317.866 340.987A11.999000000000002 11.999000000000002 0 0 0 329.825 352z" />
    +    <glyph glyph-name="traffic-light"
    +      unicode="&#xF637;"
    +      horiz-adv-x="384" d=" M384 256H320V293.88C357.2 307.1 384 342.26 384 384H320V416C320 433.67 305.67 448 288 448H96C78.33 448 64 433.67 64 416V384H0C0 342.26 26.8 307.1 64 293.88V256H0C0 214.26 26.8 179.1 64 165.88V128H0C0 85.16 28.25 49.31 66.99 36.95C79.42 -20.72 130.6 -64 192 -64S304.58 -20.72 317.01 36.95C355.75 49.31 384 85.16 384 128H320V165.88C357.2 179.1 384 214.26 384 256zM192 32C165.49 32 144 53.49 144 80S165.49 128 192 128S240 106.51 240 80S218.51 32 192 32zM192 160C165.49 160 144 181.49 144 208S165.49 256 192 256S240 234.51 240 208S218.51 160 192 160zM192 288C165.49 288 144 309.49 144 336S165.49 384 192 384S240 362.51 240 336S218.51 288 192 288z" />
    +    <glyph glyph-name="train"
    +      unicode="&#xF238;"
    +      horiz-adv-x="448" d=" M448 352V96C448 44.185 386.376 0 317.978 0L380.9580000000001 -49.721C386.905 -54.417 383.562 -64 376 -64H72C64.422 -64 61.108 -54.406 67.043 -49.721L130.022 0C61.82 0 0 44.046 0 96V352C0 405.019 64 448 128 448H320C385 448 448 405.019 448 352zM400 216V328C400 341.255 389.255 352 376 352H72C58.745 352 48 341.255 48 328V216C48 202.745 58.745 192 72 192H376C389.255 192 400 202.745 400 216zM224 152C193.072 152 168 126.928 168 96S193.072 40 224 40S280 65.072 280 96S254.928 152 224 152z" />
    +    <glyph glyph-name="transgender-alt"
    +      unicode="&#xF225;"
    +      horiz-adv-x="480" d=" M468 448H389C378.3 448 373 435.1 380.5 427.5L397.4 410.6L316.7 329.9C294.5 343.9 268.2 352 240 352C211.8 352 185.5 343.9 163.3 329.9L146.8 346.4L166.6 366.2C171.3 370.9 171.3 378.5 166.6 383.2L138.3 411.5C133.6 416.2 126 416.2 121.3 411.5L101.5 391.7L82.5 410.7L99.4 427.6C107.1 435.1 101.7 448 91 448H12C5.4 448 0 442.6 0 436V357C0 346.3 12.9 341 20.5 348.5L37.4 365.4L56.4 346.4L36.6 326.6C31.9 321.9 31.9 314.3 36.6 309.6L64.9 281.3C69.6 276.6 77.2 276.6 81.9 281.3L101.7 301.1L118.2 284.6C104.1 262.5 96 236.2 96 208C96 139.5 143.9 82.1 208 67.6V40H172C165.4 40 160 34.6 160 28V-12C160 -18.6 165.4 -24 172 -24H208V-52C208 -58.6 213.4 -64 220 -64H260C266.6 -64 272 -58.6 272 -52V-24H308C314.6 -24 320 -18.6 320 -12V28C320 34.6 314.6 40 308 40H272V67.6C336.1 82.2000000000001 384 139.5 384 208C384 236.2 375.9 262.5 361.9 284.7000000000001L442.6 365.4000000000001L459.4999999999999 348.5000000000001C467.1 340.9000000000001 479.9999999999999 346.3000000000001 479.9999999999999 357.0000000000001V436C479.9999999999999 442.6 474.6 448 467.9999999999999 448zM240 128C195.9 128 160 163.9 160 208S195.9 288 240 288S320 252.1 320 208S284.1 128 240 128z" />
    +    <glyph glyph-name="transgender"
    +      unicode="&#xF224;"
    +      horiz-adv-x="384" d=" M372 448H293C282.3 448 277 435.1 284.5 427.5L301.4 410.6L220.7 329.9C198.5 343.9 172.2 352 144 352C64.5 352 0 287.5 0 208C0 139.5 47.9 82.1 112 67.6V40H76C69.4 40 64 34.6 64 28V-12C64 -18.6 69.4 -24 76 -24H112V-52C112 -58.6 117.4 -64 124 -64H164C170.6 -64 176 -58.6 176 -52V-24H212C218.6 -24 224 -18.6 224 -12V28C224 34.6 218.6 40 212 40H176V67.6C240.1 82.2000000000001 288 139.5 288 208C288 236.2 279.9 262.5 265.9 284.7000000000001L346.6 365.4000000000001L363.5 348.5000000000001C371.1 340.9000000000001 384 346.3000000000001 384 357.0000000000001V436C384 442.6 378.6 448 372 448zM144 128C99.9 128 64 163.9 64 208S99.9 288 144 288S224 252.1 224 208S188.1 128 144 128z" />
    +    <glyph glyph-name="trash-alt"
    +      unicode="&#xF2ED;"
    +      horiz-adv-x="448" d=" M0 364V392C0 405.3 10.7 416 24 416H136L145.4 434.7C149.4 442.9 157.7 448 166.8 448H281.1C290.2000000000001 448 298.5 442.9 302.6 434.7L312 416H424C437.3 416 448 405.3 448 392V364C448 357.4 442.6 352 436 352H12C5.4 352 0 357.4 0 364zM416 308V-16C416 -42.5 394.5 -64 368 -64H80C53.5 -64 32 -42.5 32 -16V308C32 314.6 37.4 320 44 320H404C410.6 320 416 314.6 416 308zM144 240C144 248.8 136.8 256 128 256S112 248.8 112 240V16C112 7.2 119.2 0 128 0S144 7.2 144 16V240zM240 240C240 248.8 232.8 256 224 256S208 248.8 208 240V16C208 7.2 215.2 0 224 0S240 7.2 240 16V240zM336 240C336 248.8 328.8 256 320 256S304 248.8 304 240V16C304 7.2 311.2 0 320 0S336 7.2 336 16V240z" />
    +    <glyph glyph-name="trash"
    +      unicode="&#xF1F8;"
    +      horiz-adv-x="448" d=" M0 364V392C0 405.3 10.7 416 24 416H136L145.4 434.7C149.4 442.9 157.7 448 166.8 448H281.1C290.2000000000001 448 298.5 442.9 302.6 434.7L312 416H424C437.3 416 448 405.3 448 392V364C448 357.4 442.6 352 436 352H12C5.4 352 0 357.4 0 364zM415.2 307.3L394.8 -19C393.2 -44.3 372.2 -64 346.9000000000001 -64H101.1C75.8 -64 54.8 -44.3 53.2 -19L32.8 307.3C32.4 314.2000000000001 37.9 320 44.8 320H403.3C410.1 320 415.6 314.2000000000001 415.2 307.3z" />
    +    <glyph glyph-name="tree"
    +      unicode="&#xF1BB;"
    +      horiz-adv-x="384" d=" M378.31 69.51L298.42 160H329.05C338.06 160 346.0300000000001 165 349.8300000000001 173.06C353.6300000000001 181.1 352.3800000000001 190.32 346.5500000000001 197.11L268.42 288H297.31C306.4100000000001 288 314.61 293.35 318.17 301.61C321.69 309.74 320.0300000000001 319.2000000000001 313.93 325.69L203.66 443.17C197.63 449.62 186.38 449.62 180.34 443.17L70.06 325.69C63.96 319.2 62.31 309.74 65.82 301.61C69.38 293.35 77.59 288 86.69 288H115.58L37.44 197.09C31.63 190.31 30.38 181.1 34.17 173.05C37.97 165 45.93 160 54.95 160H85.58L5.69 69.51C-0.31 62.72 -1.67 53.42 2.13 45.25C5.88 37.2 14.13 32 23.14 32H160V7.55L129.71 -40.85C124.39 -51.4899999999999 132.13 -64.01 144.02 -64.01H239.98C251.87 -64.01 259.61 -51.49 254.29 -40.85L224 7.55V32H360.86C369.87 32 378.12 37.2 381.87 45.25C385.67 53.42 384.31 62.72 378.31 69.51z" />
    +    <glyph glyph-name="trophy"
    +      unicode="&#xF091;"
    +      horiz-adv-x="576" d=" M552 384H448V424C448 437.3 437.3 448 424 448H152C138.7 448 128 437.3 128 424V384H24C10.7 384 0 373.3 0 360V304C0 268.3 22.5 231.6 61.9 203.3C93.4 180.6 131.7 166.2 171.9 161.6C203.3 109.5 240 88 240 88V16H192C156.7 16 128 -4.7 128 -40V-52C128 -58.6 133.4 -64 140 -64H436C442.6 -64 448 -58.6 448 -52V-40C448 -4.7 419.3 16 384 16H336V88S372.7 109.5 404.1 161.6C444.4000000000001 166.2000000000001 482.7 180.6 514.1 203.3C553.4 231.6 576 268.3 576 304V360C576 373.3 565.3 384 552 384zM99.3 255.2C74.9 272.8 64 292.4 64 304V320H128.2C129.2 287.4 134 258.8 141 233.8C125.9 239 111.8 246.2 99.3 255.2zM512 304C512 287.9 494.3 267.9 476.7 255.2C464.2 246.2 450 239 434.9 233.8C441.9 258.8 446.7 287.4 447.7 320H512V304z" />
    +    <glyph glyph-name="truck-loading"
    +      unicode="&#xF4DE;"
    +      horiz-adv-x="640" d=" M50.2 72.4C52.5 63.9 61.3 58.8 69.8 61.1L286.2000000000001 119.1C294.7000000000001 121.4 299.8000000000001 130.2 297.5000000000001 138.7L247.8000000000001 324.2C245.5000000000001 332.7 236.7000000000001 337.8 228.2000000000001 335.5L151 314.7L175.8 222L114 205.5L89.2 298.2L11.9 277.5C3.4 275.2 -1.7 266.4 0.6 257.9L50.2 72.4zM384 448C366.3 448 352 433.7 352 416V92.4L5.9 -2C1.6 -3.2 -0.9 -7.6 0.3 -11.8L12.9 -58.1C14.1 -62.4 18.5 -64.9 22.7 -63.7L416.4 43.6999999999999C418.8 -16.1 467.6 -64 528 -64C589.9 -64 640 -13.9 640 48V448H384zM528 0C501.5 0 480 21.5 480 48S501.5 96 528 96S576 74.5 576 48S554.5 0 528 0z" />
    +    <glyph glyph-name="truck-monster"
    +      unicode="&#xF63B;"
    +      horiz-adv-x="640" d=" M624 224H608V288C608 305.67 593.67 320 576 320H502.4L419.2200000000001 423.98A64.025 64.025 0 0 1 369.24 448H256C238.33 448 224 433.67 224 416V320H48C39.16 320 32 312.8400000000001 32 304V224H16C7.16 224 0 216.84 0 208V176C0 167.16 7.16 160 16 160H32.72C61.93 198.65 107.82 224 160 224S258.07 198.65 287.28 160H352.73C381.94 198.65 427.83 224 480.01 224S578.0799999999999 198.65 607.29 160H624C632.84 160 640 167.16 640 176V208C640 216.84 632.84 224 624 224zM288 320V384H369.24L420.44 320H288zM592 96H586.8C584.5999999999999 103.33 581.7299999999999 110.28 578.15 116.89L581.8199999999999 120.56C588.0699999999999 126.81 588.0699999999999 136.94 581.8199999999999 143.19L559.1899999999999 165.82C552.9399999999999 172.07 542.81 172.07 536.56 165.82L532.89 162.15A110.84999999999998 110.84999999999998 0 0 1 512 170.8V176C512 184.84 504.84 192 496 192H464C455.16 192 448 184.84 448 176V170.8C440.67 168.6 433.7200000000001 165.73 427.11 162.15L423.44 165.8200000000001C417.19 172.0700000000001 407.06 172.0700000000001 400.81 165.8200000000001L378.18 143.1900000000001C371.93 136.9400000000001 371.93 126.8100000000001 378.18 120.5600000000001L381.85 116.8900000000001A110.84999999999998 110.84999999999998 0 0 1 373.2 96H368C359.1600000000001 96 352 88.84 352 80V48C352 39.16 359.1600000000001 32 368 32H373.2C375.4 24.67 378.27 17.72 381.85 11.11L378.18 7.44C371.93 1.19 371.93 -8.94 378.18 -15.19L400.81 -37.82C407.06 -44.07 417.19 -44.07 423.44 -37.82L427.11 -34.15C433.72 -37.72 440.68 -40.6 448.01 -42.8V-47.9999999999999C448.01 -56.8399999999999 455.17 -63.9999999999999 464.0099999999999 -63.9999999999999H496.0099999999999C504.8499999999999 -63.9999999999999 512.01 -56.8399999999999 512.01 -47.9999999999999V-42.8C519.34 -40.6 526.29 -37.73 532.91 -34.15L536.5799999999999 -37.82C542.8299999999999 -44.07 552.9599999999999 -44.07 559.2099999999999 -37.82L581.8399999999999 -15.19C588.0899999999999 -8.94 588.0899999999999 1.19 581.8399999999999 7.44L578.17 11.11A110.84999999999998 110.84999999999998 0 0 1 586.8199999999999 32H592.02C600.86 32 608.02 39.16 608.02 48V80C608 88.84 600.84 96 592 96zM480 16C453.49 16 432 37.49 432 64S453.49 112 480 112S528 90.51 528 64S506.51 16 480 16zM272 96H266.8C264.6 103.33 261.73 110.28 258.1500000000001 116.89L261.8200000000001 120.56C268.0700000000001 126.81 268.0700000000001 136.94 261.8200000000001 143.19L239.1900000000001 165.82C232.9400000000001 172.07 222.8100000000001 172.07 216.5600000000001 165.82L212.8900000000001 162.15A110.84999999999998 110.84999999999998 0 0 1 192 170.8V176C192 184.84 184.84 192 176 192H144C135.16 192 128 184.84 128 176V170.8C120.67 168.6 113.72 165.73 107.11 162.15L103.44 165.8200000000001C97.19 172.0700000000001 87.06 172.0700000000001 80.81 165.8200000000001L58.18 143.2C51.93 136.95 51.93 126.82 58.18 120.57L61.85 116.9A110.84999999999998 110.84999999999998 0 0 1 53.2 96.01H48C39.16 96.01 32 88.85 32 80.01V48.01C32 39.17 39.16 32.01 48 32.01H53.2C55.4 24.68 58.27 17.73 61.85 11.12L58.18 7.45C51.93 1.2 51.93 -8.93 58.18 -15.18L80.81 -37.81C87.06 -44.06 97.19 -44.06 103.44 -37.81L107.11 -34.14C113.72 -37.71 120.68 -40.59 128.01 -42.79V-47.9899999999999C128.01 -56.8299999999999 135.17 -63.9899999999999 144.01 -63.9899999999999H176.01C184.85 -63.9899999999999 192.01 -56.8299999999999 192.01 -47.9899999999999V-42.79C199.34 -40.59 206.29 -37.72 212.91 -34.14L216.58 -37.81C222.83 -44.06 232.96 -44.06 239.21 -37.81L261.84 -15.18C268.09 -8.93 268.09 1.2 261.84 7.45L258.17 11.12A110.84999999999998 110.84999999999998 0 0 1 266.82 32.01H272.0199999999999C280.8599999999999 32.01 288.0199999999999 39.17 288.0199999999999 48.01V80.01C288 88.84 280.84 96 272 96zM160 16C133.49 16 112 37.49 112 64S133.49 112 160 112S208 90.51 208 64S186.51 16 160 16z" />
    +    <glyph glyph-name="truck-moving"
    +      unicode="&#xF4DF;"
    +      horiz-adv-x="640" d=" M621.3 210.7L562.8 269.2C550.8 281.2 534.5 287.9 517.5 287.9H480V384C480 401.7 465.7 416 448 416H32C14.3 416 0 401.7 0 384V48C0 3.8 35.8 -32 80 -32C106.3 -32 129.4 -19.1 144 0.4C158.6 -19.2 181.7 -32 208 -32C252.2 -32 288 3.8 288 48C288 53.5 287.4 58.8 286.4 64H449.6C448.5 58.8 448 53.5 448 48C448 3.8 483.8 -32 528 -32S608 3.8 608 48C608 53.5 607.4 58.8 606.4 64H624C632.8 64 640 71.2 640 80V165.5C640 182.5 633.3 198.7 621.3 210.7zM80 16C62.4 16 48 30.4 48 48S62.4 80 80 80S112 65.6 112 48S97.6 16 80 16zM208 16C190.4 16 176 30.4 176 48S190.4 80 208 80S240 65.6 240 48S225.6 16 208 16zM480 240H517.5C521.8 240 525.8 238.3 528.8 235.3L572.0999999999999 192H480V240zM528 16C510.4 16 496 30.4 496 48S510.4 80 528 80S560 65.6 560 48S545.6 16 528 16z" />
    +    <glyph glyph-name="truck-pickup"
    +      unicode="&#xF63C;"
    +      horiz-adv-x="640" d=" M624 160H608V224C608 241.67 593.67 256 576 256H528L419.2200000000001 391.98A64.025 64.025 0 0 1 369.24 416H256C238.33 416 224 401.67 224 384V256H64C46.33 256 32 241.67 32 224V160H16C7.16 160 0 152.84 0 144V112C0 103.16 7.16 96 16 96H65.61C64.85 90.73 64 85.48 64 80C64 18.14 114.14 -32 176 -32S288 18.14 288 80C288 85.48 287.15 90.73 286.39 96H353.62C352.86 90.73 352.01 85.48 352.01 80C352.01 18.14 402.15 -32 464.01 -32S576.01 18.14 576.01 80C576.01 85.48 575.16 90.73 574.4 96H624C632.84 96 640 103.16 640 112V144C640 152.84 632.84 160 624 160zM288 352H369.24L446.04 256H288V352zM176 32C149.53 32 128 53.53 128 80S149.53 128 176 128S224 106.47 224 80S202.47 32 176 32zM464 32C437.53 32 416 53.53 416 80S437.53 128 464 128S512 106.47 512 80S490.47 32 464 32z" />
    +    <glyph glyph-name="truck"
    +      unicode="&#xF0D1;"
    +      horiz-adv-x="640" d=" M624 96H608V204.1C608 216.8 602.9 229 593.9 238L494 337.9C485 346.9 472.8 352 460.1 352H416V400C416 426.5 394.5 448 368 448H48C21.5 448 0 426.5 0 400V80C0 53.5 21.5 32 48 32H64C64 -21 107 -64 160 -64S256 -21 256 32H384C384 -21 427 -64 480 -64S576 -21 576 32H624C632.8 32 640 39.2 640 48V80C640 88.8 632.8 96 624 96zM160 -16C133.5 -16 112 5.5 112 32S133.5 80 160 80S208 58.5 208 32S186.5 -16 160 -16zM480 -16C453.5 -16 432 5.5 432 32S453.5 80 480 80S528 58.5 528 32S506.5 -16 480 -16zM560 192H416V304H460.1L560 204.1V192z" />
    +    <glyph glyph-name="tshirt"
    +      unicode="&#xF553;"
    +      horiz-adv-x="640" d=" M631.2 351.5L436.5 448C416.4 420.2 371.9 400.8 320 400.8S223.6 420.2 203.5 448L8.8 351.5C0.9 347.5 -2.3 337.9 1.6 330L58.8 215.5C62.8 207.6 72.4 204.4 80.3 208.3L136.9 236C147.5 241.2 159.9 233.5 159.9 221.6V-32C159.9 -49.7 174.2 -64 191.9 -64H447.9C465.6 -64 479.9 -49.7 479.9 -32V221.7C479.9 233.5 492.3 241.3 502.9 236.1L559.5 208.4C567.4 204.4 577 207.6 581 215.6L638.3 330C642.3 337.9 639.0999999999999 347.6 631.1999999999999 351.5z" />
    +    <glyph glyph-name="tty"
    +      unicode="&#xF1E4;"
    +      horiz-adv-x="512" d=" M5.37 344.178C143.902 482.71 368.306 482.504 506.632 344.178C512.71 338.1 513.706 328.682 509.215 321.497L466.001 252.359A18.332 18.332 0 0 0 443.6450000000001 245.054L357.2230000000001 279.623A18.335 18.335 0 0 0 345.7890000000001 298.469L351.741 358C289.596 380.454 221.105 379.986 160.258 358L166.211 298.468A18.331 18.331 0 0 0 154.777 279.622L68.354 245.0540000000001A18.334 18.334 0 0 0 45.998 252.3590000000001L2.787 321.498A18.333 18.333 0 0 0 5.37 344.178zM96 140V180C96 186.627 90.627 192 84 192H44C37.373 192 32 186.627 32 180V140C32 133.373 37.373 128 44 128H84C90.627 128 96 133.373 96 140zM192 140V180C192 186.627 186.627 192 180 192H140C133.373 192 128 186.627 128 180V140C128 133.373 133.373 128 140 128H180C186.627 128 192 133.373 192 140zM288 140V180C288 186.627 282.627 192 276 192H236C229.373 192 224 186.627 224 180V140C224 133.373 229.373 128 236 128H276C282.627 128 288 133.373 288 140zM384 140V180C384 186.627 378.627 192 372 192H332C325.373 192 320 186.627 320 180V140C320 133.373 325.373 128 332 128H372C378.627 128 384 133.373 384 140zM480 140V180C480 186.627 474.627 192 468 192H428C421.373 192 416 186.627 416 180V140C416 133.373 421.373 128 428 128H468C474.627 128 480 133.373 480 140zM144 44V84C144 90.627 138.627 96 132 96H92C85.373 96 80 90.627 80 84V44C80 37.373 85.373 32 92 32H132C138.627 32 144 37.373 144 44zM240 44V84C240 90.627 234.627 96 228 96H188C181.373 96 176 90.627 176 84V44C176 37.373 181.373 32 188 32H228C234.627 32 240 37.373 240 44zM336 44V84C336 90.627 330.627 96 324 96H284C277.373 96 272 90.627 272 84V44C272 37.373 277.373 32 284 32H324C330.627 32 336 37.373 336 44zM432 44V84C432 90.627 426.627 96 420 96H380C373.373 96 368 90.627 368 84V44C368 37.373 373.373 32 380 32H420C426.627 32 432 37.373 432 44zM96 -52V-12C96 -5.373 90.627 0 84 0H44C37.373 0 32 -5.373 32 -12V-52C32 -58.627 37.373 -64 44 -64H84C90.627 -64 96 -58.627 96 -52zM384 -52V-12C384 -5.373 378.627 0 372 0H140C133.373 0 128 -5.373 128 -12V-52C128 -58.627 133.373 -64 140 -64H372C378.627 -64 384 -58.627 384 -52zM480 -52V-12C480 -5.373 474.627 0 468 0H428C421.373 0 416 -5.373 416 -12V-52C416 -58.627 421.373 -64 428 -64H468C474.627 -64 480 -58.627 480 -52z" />
    +    <glyph glyph-name="tv"
    +      unicode="&#xF26C;"
    +      horiz-adv-x="640" d=" M592 448H48C21.5 448 0 426.5 0 400V80C0 53.5 21.5 32 48 32H293.1V0H133.1C115.4 0 101.1 -14.3 101.1 -32S115.4 -64 133.1 -64H517.1C534.8000000000001 -64 549.1 -49.7 549.1 -32S534.8000000000001 0 517.1 0H357.1V32H592C618.5 32 640 53.5 640 80V400C640 426.5 618.5 448 592 448zM576 96H64V384H576V96z" />
    +    <glyph glyph-name="umbrella-beach"
    +      unicode="&#xF5CA;"
    +      horiz-adv-x="640" d=" M115.38 311.1L217.49 273.92C252.68 355.46 303.7 418.21 356.49 447.62C260.61 452.51 167.71 410.66 107.96 335.82C101.27 327.42 105.3 314.77 115.38 311.1zM247.63 262.94L486.11 176.11C521.87 297.49 504.81 407.77 443.48 430.0900000000001C436.0800000000001 432.79 428.35 434.0900000000001 420.3900000000001 434.0900000000001C362.3700000000001 434.08 292.12 364.92 247.6300000000001 262.94zM521.48 387.5C527.7 371.2 532.3100000000001 352.9 534.6800000000001 332.31C540.4200000000001 282.42 533.2600000000001 224.08 515.73 165.3300000000001L618.35 127.97C628.44 124.3 639.66 131.4 639.9200000000001 142.1400000000001C642.2400000000001 237.8300000000001 598.0100000000001 329.5800000000001 521.48 387.5000000000001zM560 0.02H321.06L386 178.5L325.86 200.4L252.96 0.03H16C7.16 0.03 0 -7.1300000000001 0 -15.98V-47.99C0 -56.83 7.16 -64 16 -64H560C568.84 -64 576 -56.83 576 -47.99V-15.98C576 -7.14 568.84 0.02 560 0.02z" />
    +    <glyph glyph-name="umbrella"
    +      unicode="&#xF0E9;"
    +      horiz-adv-x="576" d=" M557.011 180.369C505.579 225.586 449.439 224.067 398.444 149.638C393.146 141.7770000000001 383.538 142.473 378.708 149.638C376.225 153.2620000000001 346.49 210.446 288 210.446C242.234 210.446 217.458 179.0680000000001 197.291 149.638C192.462 142.473 182.855 141.7770000000001 177.557 149.638C126.653 223.923 70.944 226.0440000000001 18.99 180.369C8.78 172.105 -1.922 181.478 0.294 189.85C32.146 313.427 158.516 383.3880000000001 288.001 383.3880000000001C416.794 383.3880000000001 544.547 313.427 575.707 189.85C577.913 181.528 567.281 172.057 557.011 180.369zM256 186.999V32C256 14.355 241.645 0 224 0S192 14.355 192 32C192 49.673 177.673 64 160 64S128 49.673 128 32C128 -20.935 171.065 -64 224 -64S320 -20.935 320 32V186.712C298.164 197.518 274.575 196.449 256 186.999zM320 398.0060000000001V416C320 433.673 305.673 448 288 448S256 433.673 256 416V398.0130000000001A372.105 372.105 0 0 0 320 398.0060000000001z" />
    +    <glyph glyph-name="underline"
    +      unicode="&#xF0CD;"
    +      horiz-adv-x="448" d=" M224.264 59.76C132.595 59.76 67.661 110.925 67.661 211.152V384H39.37C30.533 384 23.37 391.163 23.37 400V432C23.37 440.837 30.533 448 39.37 448H176.76C185.597 448 192.76 440.837 192.76 432V400C192.76 391.163 185.597 384 176.76 384H147.947V211.152C147.947 157.453 176.261 131.708 224.264 131.708C271.23 131.708 300.06 157.142 300.06 211.673V384H271.769C262.932 384 255.769 391.163 255.769 400V432C255.769 440.837 262.932 448 271.769 448H408.637C417.474 448 424.637 440.837 424.637 432V400C424.637 391.163 417.474 384 408.637 384H380.346V211.152C380.346 111.747 315.4650000000001 59.76 224.264 59.76zM16 0H432C440.837 0 448 -7.163 448 -16V-48C448 -56.837 440.837 -64 432 -64H16C7.163 -64 0 -56.837 0 -48V-16C0 -7.163 7.163 0 16 0z" />
    +    <glyph glyph-name="undo-alt"
    +      unicode="&#xF2EA;"
    +      horiz-adv-x="512" d=" M255.545 440C189.276 439.881 129.107 413.767 84.685 371.315L48.971 407.029C33.851 422.149 8 411.4410000000001 8 390.059V256C8 242.745 18.745 232 32 232H166.059C187.441 232 198.149 257.851 183.03 272.971L141.28 314.721C172.144 343.62 212.081 359.628 254.51 359.9940000000001C346.908 360.7920000000001 424.793 286.017 423.9940000000001 190.552C423.236 99.991 349.816 24 256 24C214.873 24 176.003 38.678 145.37 65.556C140.627 69.717 133.464 69.464 129.002 65.003L89.34 25.341C84.468 20.469 84.709 12.526 89.822 7.908C133.798 -31.813 192.074 -56 256 -56C392.966 -56 503.999 55.033 504 191.998C504.001 328.807 392.354 440.245 255.545 440z" />
    +    <glyph glyph-name="undo"
    +      unicode="&#xF0E2;"
    +      horiz-adv-x="512" d=" M212.333 223.667H12C5.373 223.667 0 229.04 0 235.667V436C0 442.627 5.373 448 12 448H60C66.627 448 72 442.627 72 436V357.8880000000001C117.773 408.721 184.26 440.53 258.175 439.993C395.081 438.999 504.623 328.37 504.332 191.461C504.041 54.742 393.12 -56 256.3330000000001 -56C192.244 -56 133.8370000000001 -31.687 89.823 8.215C84.724 12.837 84.489 20.769 89.356 25.635L123.323 59.602C127.7970000000001 64.076 134.9850000000001 64.319 139.7240000000001 60.127C170.76 32.664 211.58 16 256.3330000000001 16C353.601 16 432.3330000000001 94.716 432.3330000000001 192C432.3330000000001 289.267 353.617 368 256.3330000000001 368C197.837 368 146.053 339.524 114.059 295.6670000000001H212.333C218.96 295.6670000000001 224.333 290.294 224.333 283.6670000000001V235.667C224.333 229.04 218.96 223.667 212.333 223.667z" />
    +    <glyph glyph-name="universal-access"
    +      unicode="&#xF29A;"
    +      horiz-adv-x="512" d=" M256 400C370.953 400 464 306.971 464 192C464 77.047 370.971 -16 256 -16C141.047 -16 48 77.029 48 192C48 306.953 141.029 400 256 400M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 384C149.961 384 64 298.039 64 192S149.961 0 256 0S448 85.961 448 192S362.039 384 256 384zM256 340C275.882 340 292 323.882 292 304S275.882 268 256 268S220 284.118 220 304S236.118 340 256 340zM373.741 241.977C345.029 235.198 318.23 229.229 291.601 226.17C292.452 125.1470000000001 303.907 103.118 316.638 70.549C320.255 61.289 315.681 50.851 306.421 47.234C297.16 43.617 286.722 48.191 283.105 57.451C274.4000000000001 79.759 266.019 98.087 260.844 136H251.158C245.991 98.149 237.624 79.792 228.896 57.451C225.281 48.196 214.846 43.615 205.581 47.234C196.321 50.8510000000001 191.747 61.29 195.364 70.549C208.077 103.09 219.549 125.09 220.401 226.1700000000001C193.772 229.2280000000001 166.973 235.1970000000001 138.26 241.9770000000001C129.66 244.0080000000001 124.334 252.6250000000001 126.365 261.226S137.012 275.1520000000001 145.614 273.1210000000001C242.3 250.2920000000001 269.897 250.338 366.389 273.1210000000001C374.988 275.1510000000001 383.6070000000001 269.827 385.6380000000001 261.226C387.6670000000001 252.6250000000001 382.341 244.0070000000001 373.7410000000001 241.9770000000001z" />
    +    <glyph glyph-name="university"
    +      unicode="&#xF19C;"
    +      horiz-adv-x="512" d=" M496 320V304A8 8 0 0 0 488 296H464V284C464 277.373 458.627 272 452 272H60C53.373 272 48 277.373 48 284V296H24A8 8 0 0 0 16 304V320A8 8 0 0 0 20.941 327.392L252.941 415.392A7.996000000000001 7.996000000000001 0 0 0 259.0590000000001 415.392L491.059 327.392A8 8 0 0 0 496 320zM472 16H40C26.745 16 16 5.255 16 -8V-24A8 8 0 0 1 24 -32H488A8 8 0 0 1 496 -24V-8C496 5.255 485.255 16 472 16zM96 256V64H60C53.373 64 48 58.627 48 52V32H464V52C464 58.627 458.627 64 452 64H416V256H352V64H288V256H224V64H160V256H96z" />
    +    <glyph glyph-name="unlink"
    +      unicode="&#xF127;"
    +      horiz-adv-x="512" d=" M304.0830000000001 42.093C308.769 37.407 308.769 29.809 304.0830000000001 25.122L259.4090000000001 -19.552C200.1460000000001 -78.814 103.716 -78.818 44.448 -19.552C-14.816 39.713 -14.816 136.144 44.448 195.4080000000001L89.123 240.0830000000001C93.809 244.7690000000001 101.407 244.7690000000001 106.094 240.0830000000001L145.692 200.485C150.3780000000001 195.799 150.3780000000001 188.201 145.692 183.514L101.017 138.84C72.945 110.7670000000001 72.945 65.09 101.017 37.0170000000001C129.089 8.9450000000001 174.7670000000001 8.9440000000001 202.841 37.0170000000001L247.5150000000001 81.691C252.2010000000001 86.377 259.7990000000001 86.377 264.4860000000001 81.691L304.0830000000001 42.093zM247.5150000000001 302.3090000000001C252.2010000000001 297.6230000000001 259.7990000000001 297.6230000000001 264.4860000000001 302.3090000000001L309.1600000000001 346.9830000000001C337.2320000000001 375.0580000000001 382.9100000000001 375.0560000000001 410.9840000000001 346.9830000000001C439.0560000000001 318.9100000000001 439.0560000000001 273.2330000000001 410.9840000000001 245.1600000000001L366.3090000000001 200.486C361.6230000000001 195.8 361.6230000000001 188.202 366.3090000000001 183.5150000000001L405.9070000000001 143.917C410.593 139.2310000000001 418.1910000000001 139.2310000000001 422.8780000000001 143.917L467.5530000000001 188.5920000000001C526.8180000000001 247.8570000000001 526.8180000000001 344.2870000000001 467.5530000000001 403.552C408.2870000000001 462.816 311.8580000000001 462.816 252.5920000000001 403.552L207.918 358.8780000000001C203.232 354.192 203.232 346.5940000000001 207.918 341.9070000000001L247.5150000000001 302.3090000000001zM482.3430000000001 -56.9709999999999L504.9700000000001 -34.3439999999999C514.3430000000001 -24.9709999999999 514.3430000000001 -9.7749999999999 504.9700000000001 -0.4029999999999L63.598 440.971C54.225 450.344 39.029 450.344 29.657 440.971L7.029 418.343C-2.344 408.9700000000001 -2.344 393.774 7.029 384.402L448.402 -56.971C457.775 -66.343 472.971 -66.343 482.343 -56.971z" />
    +    <glyph glyph-name="unlock-alt"
    +      unicode="&#xF13E;"
    +      horiz-adv-x="448" d=" M400 192H152V295.1C152 334.7 183.7 367.6 223.3 368C263.3 368.4 296 335.9 296 296V280C296 266.7 306.7 256 320 256H352C365.3 256 376 266.7 376 280V296C376 380 307.5 448.3 223.5 448C139.5 447.7 72 378.5 72 294.5V192H48C21.5 192 0 170.5 0 144V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V144C448 170.5 426.5 192 400 192zM264 40C264 17.9 246.1 0 224 0S184 17.9 184 40V88C184 110.1 201.9 128 224 128S264 110.1 264 88V40z" />
    +    <glyph glyph-name="unlock"
    +      unicode="&#xF09C;"
    +      horiz-adv-x="448" d=" M400 192H152V295.1C152 334.7 183.7 367.6 223.3 368C263.3 368.4 296 335.9 296 296V280C296 266.7 306.7 256 320 256H352C365.3 256 376 266.7 376 280V296C376 380 307.5 448.3 223.5 448C139.5 447.7 72 378.5 72 294.5V192H48C21.5 192 0 170.5 0 144V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V144C448 170.5 426.5 192 400 192z" />
    +    <glyph glyph-name="upload"
    +      unicode="&#xF093;"
    +      horiz-adv-x="512" d=" M296 64H216C202.7 64 192 74.7 192 88V256H104.3C86.5 256 77.6 277.5 90.2 290.1L242.3 442.3C249.8 449.8 262.1 449.8 269.6 442.3L421.8 290.1C434.4000000000001 277.5 425.5 256 407.7 256H320V88C320 74.7 309.3 64 296 64zM512 72V-40C512 -53.3 501.3 -64 488 -64H24C10.7 -64 0 -53.3 0 -40V72C0 85.3 10.7 96 24 96H160V88C160 57.1 185.1 32 216 32H296C326.9 32 352 57.1 352 88V96H488C501.3 96 512 85.3 512 72zM388 -16C388 -5 379 4 368 4S348 -5 348 -16S357 -36 368 -36S388 -27 388 -16zM452 -16C452 -5 443 4 432 4S412 -5 412 -16S421 -36 432 -36S452 -27 452 -16z" />
    +    <glyph glyph-name="user-alt-slash"
    +      unicode="&#xF4FA;"
    +      horiz-adv-x="640" d=" M633.8 -10.1L389.6 178.7C433.8 203.3 464 249.9 464 304C464 383.5 399.5 448 320 448C252.9 448 197 401.9 181 339.8L45.5 444.6C38.5 450 28.5 448.8 23 441.8L3.4 416.6C-2 409.6 -0.8 399.6 6.2 394.2L594.6 -60.5C601.6 -65.9 611.6 -64.7 617.1 -57.7L636.7 -32.4C642.1 -25.6 640.8000000000001 -15.5 633.8000000000001 -10.1zM198.4 128C124.2 128 64 67.8 64 -6.4V-16C64 -42.5 85.5 -64 112 -64H494.2L245.8 128H198.4z" />
    +    <glyph glyph-name="user-alt"
    +      unicode="&#xF406;"
    +      horiz-adv-x="512" d=" M256 160C335.5 160 400 224.5 400 304S335.5 448 256 448S112 383.5 112 304S176.5 160 256 160zM384 128H328.9C306.7 117.8 282 112 256 112S205.4 117.8 183.1 128H128C57.3 128 0 70.7 0 0V-16C0 -42.5 21.5 -64 48 -64H464C490.5 -64 512 -42.5 512 -16V0C512 70.7 454.7 128 384 128z" />
    +    <glyph glyph-name="user-astronaut"
    +      unicode="&#xF4FB;"
    +      horiz-adv-x="448" d=" M64 224H77.5C102.2 167.5 158.4 128 224 128S345.8 167.5 370.5 224H384C392.8 224 400 231.2 400 240V336C400 344.8 392.8 352 384 352H370.5C345.8 408.5 289.6 448 224 448S102.2 408.5 77.5 352H64C55.2 352 48 344.8 48 336V240C48 231.2 55.2 224 64 224zM104 312C104 334.1 125.5 352 152 352H296C322.5 352 344 334.1 344 312V288C344 235 301 192 248 192H200C147 192 104 235 104 288V312zM176 240L188 276L224 288L188 300L176 336L164 300L128 288L164 276L176 240zM327.6 126.6C297.7 107.3 262.2 96 224 96S150.3 107.3 120.4 126.6C52.9 119.5 0 63 0 -6.4V-16C0 -42.5 21.5 -64 48 -64H128V0C128 17.7 142.3 32 160 32H288C305.7 32 320 17.7 320 0V-64H400C426.5 -64 448 -42.5 448 -16V-6.4C448 63 395.1 119.5 327.6 126.6zM272 0C263.2 0 256 -7.2 256 -16S263.2 -32 272 -32S288 -24.8 288 -16S280.8 0 272 0zM176 0C167.2 0 160 -7.2 160 -16V-64H192V-16C192 -7.2 184.8 0 176 0z" />
    +    <glyph glyph-name="user-check"
    +      unicode="&#xF4FC;"
    +      horiz-adv-x="640" d=" M224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 99.8 387.8 160 313.6 160zM636.6 288.4L608.8000000000001 316.5C604.2 321.2 596.7 321.2 592.0000000000001 316.6L487.2000000000001 212.6L441.7000000000001 258.4C437.1000000000001 263.1 429.6000000000001 263.1 424.9000000000001 258.5L396.8000000000001 230.6C392.1000000000001 226 392.1000000000001 218.5 396.7000000000001 213.8L478.4 131.5C483.0000000000001 126.8 490.5000000000001 126.8 495.2 131.3999999999999L636.5 271.5999999999999C641.1 276.2999999999999 641.2 283.7999999999999 636.6 288.3999999999999z" />
    +    <glyph glyph-name="user-circle"
    +      unicode="&#xF2BD;"
    +      horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 344C296.6 344 336 304.6 336 256S296.6 168 248 168S160 207.4 160 256S199.4 344 248 344zM248 0C189.3 0 136.7 26.6 101.5 68.2C120.3 103.6 157.1 128 200 128C202.4 128 204.8 127.6 207.1 126.9C220.1 122.7 233.7 120 248 120C262.3 120 276 122.7 288.9 126.9C291.2 127.6 293.6 128 296 128C338.9 128 375.7 103.6 394.5 68.2C359.3 26.6 306.7 0 248 0z" />
    +    <glyph glyph-name="user-clock"
    +      unicode="&#xF4FD;"
    +      horiz-adv-x="640" d=" M496 224C416.4 224 352 159.6 352 80S416.4 -64 496 -64S640 0.4 640 80S575.6 224 496 224zM560 73.7C560 68.4 555.6 64 550.3 64H489.6999999999999C484.3999999999999 64 479.9999999999999 68.4 479.9999999999999 73.7V150.3C479.9999999999999 155.6 484.3999999999999 160 489.6999999999999 160H502.3C507.6 160 511.9999999999999 155.6 511.9999999999999 150.3V96H550.3C555.5999999999999 96 560 91.6 560 86.3V73.7zM320 80C320 107.8 326.7 134.1 338.2 157.5C330.2 159 322 160 313.6 160H296.9C274.7 149.8 250 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H395.1C349.8 -32.1 320 20.5 320 80zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192z" />
    +    <glyph glyph-name="user-cog"
    +      unicode="&#xF4FE;"
    +      horiz-adv-x="640" d=" M610.5 74.7C613.1 88.8 613.1 103.2 610.5 117.3L636.3 132.2C639.3 133.9 640.5999999999999 137.4 639.5999999999999 140.7C632.8999999999999 162.3 621.3999999999999 181.9 606.3999999999999 198.1C604.0999999999999 200.6 600.3999999999999 201.2 597.3999999999999 199.5L571.5999999999999 184.6C560.6999999999999 193.9 548.1999999999999 201.1 534.6999999999999 205.9V235.7000000000001C534.6999999999999 239.1000000000001 532.3 242.1000000000001 528.9999999999999 242.8000000000001C506.6999999999999 247.8000000000001 483.9999999999999 247.6000000000001 462.7999999999999 242.8000000000001C459.4999999999999 242.1000000000001 457.0999999999999 239.1000000000001 457.0999999999999 235.7000000000001V205.9C443.5999999999999 201.1 431.0999999999999 193.9 420.2 184.6L394.3999999999999 199.5C391.5 201.2 387.7 200.6 385.3999999999999 198.1C370.3999999999999 181.9 358.8999999999999 162.3 352.2 140.7000000000001C351.2 137.4 352.5999999999999 133.9 355.5 132.2000000000001L381.3 117.3000000000001C378.7 103.2000000000001 378.7 88.8000000000001 381.3 74.7000000000001L355.5 59.8000000000001C352.5 58.1000000000001 351.2 54.6000000000001 352.2 51.3000000000001C358.8999999999999 29.7 370.3999999999999 10.2 385.3999999999999 -6.0999999999999C387.7 -8.5999999999999 391.3999999999999 -9.1999999999999 394.3999999999999 -7.4999999999999L420.2 7.4000000000001C431.0999999999999 -1.8999999999999 443.5999999999999 -9.0999999999999 457.0999999999999 -13.8999999999999V-43.6999999999999C457.0999999999999 -47.0999999999999 459.4999999999999 -50.0999999999999 462.7999999999999 -50.8C485.0999999999999 -55.8 507.7999999999999 -55.6 528.9999999999999 -50.8C532.2999999999998 -50.1 534.6999999999999 -47.1 534.6999999999999 -43.6999999999999V-13.8999999999999C548.1999999999999 -9.0999999999999 560.6999999999999 -1.8999999999999 571.5999999999999 7.4000000000001L597.3999999999999 -7.4999999999999C600.2999999999998 -9.1999999999999 604.0999999999999 -8.5999999999999 606.3999999999999 -6.0999999999999C621.3999999999999 10.1000000000001 632.8999999999999 29.7000000000001 639.5999999999999 51.3000000000001C640.5999999999999 54.6000000000001 639.1999999999999 58.1000000000001 636.3 59.8000000000001L610.5 74.7000000000001zM496 47.5C469.2 47.5 447.5 69.3 447.5 96S469.3 144.5 496 144.5S544.5 122.7 544.5 96S522.8 47.5 496 47.5zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM425.2 -34.5C422.9 -33.3 420.6 -31.9 418.4 -30.6L410.5 -35.2C404.5 -38.6 397.7 -40.5000000000001 390.9 -40.5000000000001C380 -40.5000000000001 369.5 -35.9 362 -27.9C343.7 -8.1 329.7 15.9999999999999 321.8 41.6999999999999C316.3 59.3999999999999 323.7 78.0999999999999 339.7 87.3999999999999L347.6 91.9999999999999C347.5 94.6 347.5 97.1999999999999 347.6 99.8L339.7 104.4C323.7 113.6 316.3 132.4 321.8 150.1C322.7 153 324 155.9 325 158.8C321.2 159.1 317.5 160 313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C410.1 -64 419.5 -60.8 427.2 -55.5C426 -51.7 425.2 -47.8 425.2 -43.7V-34.5z" />
    +    <glyph glyph-name="user-edit"
    +      unicode="&#xF4FF;"
    +      horiz-adv-x="640" d=" M224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H322.9C320.5 -57.2 319.5 -50 320.3 -42.7L327.1 18.2L328.3 29.3L336.2 37.2L413.5 114.5C389 142.2 353.5 160 313.5999999999999 160zM358.9000000000001 14.7L352.1 -46.3C351 -56.5 359.6 -65.1 369.7000000000001 -63.9L430.6 -57.1L568.5 80.8L496.8 152.5L358.9 14.6999999999999zM633 179.1L595.1 217C585.8000000000001 226.3 570.6 226.3 561.3000000000001 217L523.5000000000001 179.2L519.4000000000001 175.1L591.2 103.4L633 145.2C642.3 154.6 642.3 169.7 633 179.1z" />
    +    <glyph glyph-name="user-friends"
    +      unicode="&#xF500;"
    +      horiz-adv-x="640" d=" M192 192C253.9 192 304 242.1 304 304S253.9 416 192 416S80 365.9 80 304S130.1 192 192 192zM268.8 160H260.5C239.7 150 216.6 144 192 144S144.4 150 123.5 160H115.2C51.6 160 0 108.4 0 44.8V16C0 -10.5 21.5 -32 48 -32H336C362.5 -32 384 -10.5 384 16V44.8C384 108.4 332.4 160 268.8 160zM480 192C533 192 576 235 576 288S533 384 480 384S384 341 384 288S427 192 480 192zM528 160H524.2C510.3000000000001 155.2 495.6 152 480.0000000000001 152S449.7000000000001 155.2 435.8000000000001 160H432C411.6 160 392.8 154.1 376.3 144.6C400.7 118.3 416 83.4 416 44.8V6.4C416 4.2 415.5 2.1 415.4 1e-13H592C618.5 1e-13 640 21.5000000000001 640 48.0000000000001C640 109.9 589.9 160.0000000000001 528 160.0000000000001z" />
    +    <glyph glyph-name="user-graduate"
    +      unicode="&#xF501;"
    +      horiz-adv-x="448" d=" M319.4 127.4L224 32L128.6 127.4C57.1 124.3 0 65.8 0 -6.4V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V-6.4C448 65.8 390.9 124.3 319.4 127.4zM13.6 368.2L20 366.7V308.3C13 304.1 8 296.8 8 288C8 279.6 12.6 272.6 19.1 268.3L3.5 206C1.8 199.1 5.6 192 11.1 192H52.9C58.4 192 62.2 199.1 60.5 206L44.9 268.3C51.4 272.6 56 279.6 56 288C56 296.8 51 304.1 44 308.3V360.9L110 345C101.4 327.8 96 308.6 96 288C96 217.3 153.3 160 224 160S352 217.3 352 288C352 308.6 346.7 327.8 338 345L434.3 368.2C452.5 372.6 452.5 395.3 434.3 399.7L243.9 445.7C230.9 448.8 217.2 448.8 204.2 445.7L13.6 399.8C-4.5 395.4 -4.5 372.6 13.6 368.2z" />
    +    <glyph glyph-name="user-injured"
    +      unicode="&#xF728;"
    +      horiz-adv-x="448" d=" M277.37 436.02C261.08 443.53 243.11 448 224 448C170.31 448 124.5 414.87 105.49 368H186.68L277.37 436.02zM342.51 368C334.61 387.4700000000001 321.84 404.2 306.02 417.52L239.99 368H342.51zM224 192C294.69 192 352 249.31 352 320C352 325.48 351.05 330.7 350.39 336H97.61C96.94 330.7 96 325.48 96 320C96 249.31 153.31 192 224 192zM80 148.3V-64H208.26L109.81 157.52A132.835 132.835 0 0 1 80 148.3zM0 -16C0 -42.51 21.49 -64 48 -64V127.76C18.88 103.11 0 66.74 0 25.6V-16zM256 32H200.62L243.29 -64H256C282.4700000000001 -64 304 -42.47 304 -16S282.4700000000001 32 256 32zM313.6 160H296.8900000000001C274.6500000000001 149.82 250.0100000000001 144 224.0000000000001 144S173.3500000000001 149.82 151.1100000000001 160H143.7400000000001L186.4100000000001 64H256C300.11 64 336 28.11 336 -16C336 -34.08 329.74 -50.59 319.59 -64H400C426.51 -64 448 -42.51 448 -16V25.6C448 99.83 387.83 160 313.6 160z" />
    +    <glyph glyph-name="user-lock"
    +      unicode="&#xF502;"
    +      horiz-adv-x="640" d=" M320 128C320 139.1 323.1 149.4 328.1 158.5C323.3 159 318.6 160 313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H328.9C323.4 -54.5 320 -43.7 320 -32V128zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM608 160H576V208C576 252.2 540.2 288 496 288S416 252.2 416 208V160H384C366.3 160 352 145.7 352 128V-32C352 -49.7 366.3 -64 384 -64H608C625.7 -64 640 -49.7 640 -32V128C640 145.7 625.7 160 608 160zM528 160H464V208C464 225.6 478.4 240 496 240S528 225.6 528 208V160z" />
    +    <glyph glyph-name="user-md"
    +      unicode="&#xF0F0;"
    +      horiz-adv-x="448" d=" M224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM104 24C104 10.7 114.7 0 128 0S152 10.7 152 24S141.3 48 128 48S104 37.3 104 24zM320 159.4V110.4C356.5 103 384 70.6 384 32V-9.7C384 -17.3 378.6 -23.9 371.1 -25.4L338.9000000000001 -31.8C334.6 -32.6999999999999 330.4000000000001 -29.9 329.5000000000001 -25.4999999999999L326.4000000000001 -9.8C325.5000000000001 -5.4999999999999 328.3 -1.1999999999999 332.7000000000001 -0.4L352.0000000000001 3.5V32C352.0000000000001 94.8 256.0000000000001 97.1 256.0000000000001 30.1V3.4L275.3000000000001 -0.4999999999999C279.6000000000001 -1.3999999999999 282.4000000000001 -5.6 281.6000000000001 -9.8999999999999L278.5000000000001 -25.5999999999999C277.6000000000001 -29.8999999999999 273.4000000000001 -32.6999999999999 269.1000000000001 -31.8999999999999L237.9000000000001 -27.6999999999999C230.0000000000001 -26.5999999999999 224.1000000000001 -19.8999999999999 224.1000000000001 -11.8V32C224.1000000000001 70.6 251.6000000000001 102.9 288.1000000000001 110.4V155.6C285.9000000000001 154.9 283.7000000000001 154.5 281.5000000000001 153.7C263.5000000000001 147.4 244.2000000000001 143.9 224.1000000000001 143.9S184.7000000000001 147.4 166.7000000000001 153.7C159.3000000000001 156.3 151.8000000000001 157.9 144.1000000000001 158.9V77.3C167.2000000000001 70.4 184.1000000000001 49.1999999999999 184.1000000000001 23.9C184.1000000000001 -7 159.0000000000001 -32.1 128.1000000000001 -32.1S72.1000000000001 -7 72.1000000000001 23.9C72.1000000000001 49.2 89.0000000000001 70.4 112.1000000000001 77.3V157.6999999999999C48.5 147 0 92.2 0 25.6V-19.2C0 -43.9 20.1 -64 44.8 -64H403.2C427.9 -64 448 -43.9 448 -19.2V25.6C448 97.6 391.2 155.9 320 159.4z" />
    +    <glyph glyph-name="user-minus"
    +      unicode="&#xF503;"
    +      horiz-adv-x="640" d=" M624 240H432C423.2 240 416 232.8 416 224V192C416 183.2 423.2 176 432 176H624C632.8 176 640 183.2 640 192V224C640 232.8 632.8 240 624 240zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 99.8 387.8 160 313.6 160z" />
    +    <glyph glyph-name="user-ninja"
    +      unicode="&#xF504;"
    +      horiz-adv-x="448" d=" M325.4 158.8L224 57.4L122.6 158.8C54 152.7 0 95.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 95.8 394 152.7000000000001 325.4 158.8zM32 256C59.3 256 83.8 267.5 101.2 285.7C116.3 231.8 165.2 192 224 192C294.7 192 352 249.3 352 320S294.7 448 224 448C173.6 448 130.4 418.6 109.5 376.2C92.1 400.2 64 416 32 416C32 382.6 49.1 353.2 75.1 336C49.1 318.8 32 289.4 32 256zM176 352H272C289.7 352 304 337.7 304 320H144C144 337.7 158.3 352 176 352z" />
    +    <glyph glyph-name="user-plus"
    +      unicode="&#xF234;"
    +      horiz-adv-x="640" d=" M624 240H560V304C560 312.8 552.8 320 544 320H512C503.2 320 496 312.8 496 304V240H432C423.2 240 416 232.8 416 224V192C416 183.2 423.2 176 432 176H496V112C496 103.2 503.2 96 512 96H544C552.8 96 560 103.2 560 112V176H624C632.8 176 640 183.2 640 192V224C640 232.8 632.8 240 624 240zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 99.8 387.8 160 313.6 160z" />
    +    <glyph glyph-name="user-secret"
    +      unicode="&#xF21B;"
    +      horiz-adv-x="448" d=" M383.9 139.7L407.8 202.3C411.8 212.8 404.1 224 392.8 224H334.3C345.3 242.9 352.1 264.6 352.1 288V288.3C391.3 296.1 416.1 307.4 416.1 320C416.1 333.3 388.8 345.1 346 353C336.8 385.8 319 418.8 305.4 435.8C295.9 447.7 279.5 451.4 265.9 444.6L238.3 430.8C229.3 426.3 218.7 426.3 209.7 430.8L182.1 444.6C168.5 451.4 152.1 447.7 142.6 435.8C129.1 418.8 111.2 385.8 102 353C59.3 345.1 32 333.3 32 320C32 307.4 56.8 296.1 96 288.3V288C96 264.6 102.8 242.9 113.8 224H56.3C44.8 224 37.1 212.3 41.6 201.7L67.4 141.5C27.3 118.2 0 75.3 0 25.6V-19.2C0 -43.9 20.1 -64 44.8 -64H403.2C427.9 -64 448 -43.9 448 -19.2V25.6C448 74 422.2 116 383.9 139.7000000000001zM176 -32L134.4 160L184 128L208 88L176 -32zM272 -32L240 88L264 128L313.6 160L272 -32zM313.7 266.5C309.8 254.6 306.7 241.9 297.2 233.1C287.1 223.8 249.2 210.7 233.2 258.1C230.4 266.5 217.8 266.5 214.9 258.1C197.9 207.9 158.9 225.7 150.9 233.1C141.4 241.9 138.2 254.6 134.4 266.5C133.6 269 128.1 272.2 128.1 272.3V283.1C156.4 279.5 189.1 277.3 224.1 277.3S291.8 279.4 320.1 283.1V272.3C320 272.2000000000001 314.5 269.1 313.7 266.5z" />
    +    <glyph glyph-name="user-shield"
    +      unicode="&#xF505;"
    +      horiz-adv-x="640" d=" M622.3 176.9L507.1 221.9C502.9999999999999 223.5 494.4999999999999 225.6 484.9 221.9L369.7 176.9C359 172.7 352 162.9 352 152C352 40.4 420.7 -36.8 484.9 -61.9C494.5 -65.6 502.9 -63.5 507.1 -61.9C558.4 -41.9 640 27.5 640 152C640 162.9 633 172.7 622.3 176.9zM496 -14.4V174.7L591.5 137.4C585.9 50.3 530.6 2 496 -14.4zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM320 152C320 154.5 320.8 156.8 321.1 159.2C318.6 159.3 316.2000000000001 160 313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C406.8 -64 413.3 -62.5 419.2 -60C365.2 -17.1 320 56.7 320 152z" />
    +    <glyph glyph-name="user-slash"
    +      unicode="&#xF506;"
    +      horiz-adv-x="640" d=" M633.8 -10.1L362.3 199.7C412.1 217.3 448 264.2 448 320C448 390.7 390.7 448 320 448C252.9 448 198.5 396.2 193.1 330.6L45.5 444.6C38.5 450 28.5 448.8 23 441.8L3.4 416.6C-2 409.6 -0.8 399.6 6.2 394.2L594.6 -60.5C601.6 -65.9 611.6 -64.7 617.1 -57.7L636.7 -32.4C642.1 -25.6 640.8000000000001 -15.5 633.8000000000001 -10.1zM96 25.6V-16C96 -42.5 117.5 -64 144 -64H494.2L207.4 157.7C144.2 146.7 96 92 96 25.6z" />
    +    <glyph glyph-name="user-tag"
    +      unicode="&#xF507;"
    +      horiz-adv-x="640" d=" M630.6 83.1L540.3000000000001 173.3C528.3000000000001 185.3 512.0000000000001 192 495.0000000000001 192H415.7000000000001C398.0000000000001 192 383.7000000000001 177.7 383.7000000000001 160V80.8C383.7000000000001 63.8 390.4000000000001 47.6 402.4000000000001 35.6L492.7 -54.6C505.2 -67.0999999999999 525.5 -67.0999999999999 538 -54.6L630.5 37.9C643.1 50.4 643.1 70.6 630.6 83.1zM447.8 104.1C434.5 104.1 423.8 114.8 423.8 128.1S434.5 152.1 447.8 152.1S471.8 141.4 471.8 128.1C471.8 114.9 461.1 104.1 447.8 104.1zM224 192.1C294.7 192.1 352 249.4000000000001 352 320.1C352 390.7 294.7 448 224 448S96 390.7 96 320C96 249.4 153.3 192.1 224 192.1zM351.8 80.9V154C339.6 157.6 326.9000000000001 160.2 313.6 160.2H296.9000000000001C274.7000000000001 150 250.0000000000001 144.2 224 144.2S173.4 150 151.1 160.2H134.4C60.2 160.1 0 99.9 0 25.7V-15.9C0 -42.4 21.5 -63.9 48 -63.9H400C415.5 -63.9 429.1 -56.4 437.9 -45.0000000000001L379.9 12.9999999999999C361.8 31.1 351.8 55.1999999999999 351.8 80.9z" />
    +    <glyph glyph-name="user-tie"
    +      unicode="&#xF508;"
    +      horiz-adv-x="448" d=" M224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM319.8 159.4L272 -32L240 104L272 160H176L208 104L176 -32L128.2 159.4C56.9 156 0 97.7 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 97.7000000000001 391.1 156 319.8 159.4z" />
    +    <glyph glyph-name="user-times"
    +      unicode="&#xF235;"
    +      horiz-adv-x="640" d=" M589.6 208L635.2 253.6C641.5 259.9 641.5 270.1 635.2 276.4L612.4000000000001 299.2000000000001C606.1000000000001 305.5 595.9000000000001 305.5 589.6000000000001 299.2000000000001L544 253.6L498.4 299.2C492.1 305.5 481.9 305.5 475.6 299.2L452.8 276.4C446.5 270.1 446.5 259.9 452.8 253.6L498.4 208L452.8 162.4C446.5 156.1 446.5 145.9 452.8 139.6L475.6 116.8C481.9 110.4999999999999 492.1 110.4999999999999 498.4 116.8L544 162.4L589.6 116.8C595.9 110.4999999999999 606.1 110.4999999999999 612.4 116.8L635.1999999999999 139.6C641.4999999999999 145.9 641.4999999999999 156.1 635.1999999999999 162.4L589.6 208zM224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 99.8 387.8 160 313.6 160z" />
    +    <glyph glyph-name="user"
    +      unicode="&#xF007;"
    +      horiz-adv-x="448" d=" M224 192C294.7 192 352 249.3 352 320S294.7 448 224 448S96 390.7 96 320S153.3 192 224 192zM313.6 160H296.9000000000001C274.7000000000001 149.8 250.0000000000001 144 224 144S173.4 149.8 151.1 160H134.4C60.2 160 0 99.8 0 25.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V25.6C448 99.8 387.8 160 313.6 160z" />
    +    <glyph glyph-name="users-cog"
    +      unicode="&#xF509;"
    +      horiz-adv-x="640" d=" M610.5 106.7C613.1 120.8 613.1 135.2 610.5 149.3L636.3 164.2C639.3 165.9 640.5999999999999 169.4 639.5999999999999 172.7C632.8999999999999 194.3 621.3999999999999 213.9 606.3999999999999 230.1C604.0999999999999 232.6 600.3999999999999 233.2 597.3999999999999 231.5L571.5999999999999 216.6C560.6999999999999 225.9 548.1999999999999 233.1 534.6999999999999 237.9V267.7000000000001C534.6999999999999 271.1 532.3 274.1 528.9999999999999 274.8C506.6999999999999 279.8 483.9999999999999 279.6 462.7999999999999 274.8C459.4999999999999 274.1 457.0999999999999 271.1 457.0999999999999 267.7000000000001V237.9C443.5999999999999 233.1 431.0999999999999 225.9 420.2 216.6L394.3999999999999 231.5C391.5 233.2 387.7 232.6 385.3999999999999 230.1C370.3999999999999 213.9 358.8999999999999 194.3 352.2 172.7C351.2 169.4 352.5999999999999 165.9 355.5 164.2L381.3 149.3C378.7 135.2 378.7 120.8 381.3 106.7L355.5 91.8C352.5 90.1 351.2 86.6 352.2 83.3C358.8999999999999 61.7 370.3999999999999 42.2 385.3999999999999 25.9C387.7 23.4 391.3999999999999 22.8 394.3999999999999 24.5000000000001L420.2 39.4C431.0999999999999 30.1 443.5999999999999 22.9 457.0999999999999 18.1V-11.7C457.0999999999999 -15.1 459.4999999999999 -18.1 462.7999999999999 -18.8C485.0999999999999 -23.8 507.7999999999999 -23.6 528.9999999999999 -18.8C532.2999999999998 -18.1 534.6999999999999 -15.1 534.6999999999999 -11.7V18.1C548.1999999999999 22.9 560.6999999999999 30.1 571.5999999999999 39.4L597.3999999999999 24.5000000000001C600.2999999999998 22.8000000000001 604.0999999999999 23.4 606.3999999999999 25.9C621.3999999999999 42.1 632.8999999999999 61.7000000000001 639.5999999999999 83.3C640.5999999999999 86.6 639.1999999999999 90.1 636.3 91.8L610.5 106.7zM496 79.5C469.2 79.5 447.5 101.3 447.5 128S469.3 176.5 496 176.5S544.5 154.7 544.5 128S522.8 79.5 496 79.5zM96 224C131.3 224 160 252.7 160 288S131.3 352 96 352S32 323.3 32 288S60.7 224 96 224zM320 192C321.9 192 323.7 192.5 325.6 192.6C333.9000000000001 214.3 346.1 234.7 361.9000000000001 251.8C369.3 259.8 379.8 264.4 390.8 264.4C397.7 264.4 404.5 262.6 410.4000000000001 259.1L418.3 254.5C419.1 255 419.9000000000001 255.4 420.7 255.9C427.7 270.5 431.9 286.7000000000001 431.9 303.9C431.9 365.8 381.8 415.9 319.9 415.9S208 365.9 208 304C208 242.1 258.1 192 320 192zM425.2 -2.5C422.9 -1.3 420.6 0.1 418.4 1.4C410.2 -3.4 403.1 -8.4 390.9 -8.4C380 -8.4 369.5 -3.8 362 4.2C343.7 24 329.7 48.1 321.8 73.8C311.1 108.3 346.7 123.5 347.6 124.1C347.5 126.7 347.5 129.3 347.6 131.9L339.7000000000001 136.5C335.9000000000001 138.7 332.7000000000001 141.5 329.9000000000001 144.6C326.6 144.4 323.4000000000001 144 320.1 144C295.5 144 272.5 150 251.6 160H243.3C179.6 160 128 108.4 128 44.8V16C128 -10.5 149.5 -32 176 -32H431.4C427.7 -26 425.2 -19.2 425.2 -11.7V-2.5zM173.1 173.4C161.5 184.9 145.6 192 128 192H64C28.7 192 0 163.3 0 128V96C0 78.3 14.3 64 32 64H97.9C104.2 111.4 132.8 151.3 173.1 173.4z" />
    +    <glyph glyph-name="users"
    +      unicode="&#xF0C0;"
    +      horiz-adv-x="640" d=" M96 224C131.3 224 160 252.7 160 288S131.3 352 96 352S32 323.3 32 288S60.7 224 96 224zM544 224C579.3 224 608 252.7 608 288S579.3 352 544 352S480 323.3 480 288S508.7 224 544 224zM576 192H512C494.4 192 478.5 184.9 466.9 173.4C507.2 151.3 535.8 111.4 542 64H608C625.7 64 640 78.3 640 96V128C640 163.3 611.3 192 576 192zM320 192C381.9 192 432 242.1 432 304S381.9 416 320 416S208 365.9 208 304S258.1 192 320 192zM396.8 160H388.5C367.7 150 344.6 144 320 144S272.4 150 251.5 160H243.2C179.6 160 128 108.4 128 44.8V16C128 -10.5 149.5 -32 176 -32H464C490.5 -32 512 -10.5 512 16V44.8C512 108.4 460.4 160 396.8 160zM173.1 173.4C161.5 184.9 145.6 192 128 192H64C28.7 192 0 163.3 0 128V96C0 78.3 14.3 64 32 64H97.9C104.2 111.4 132.8 151.3 173.1 173.4z" />
    +    <glyph glyph-name="utensil-spoon"
    +      unicode="&#xF2E5;"
    +      horiz-adv-x="512" d=" M480.1 416.1C425.1 471.2 315.2000000000001 450.6 252.3 387.6C203 338.3 197.2 277.6 223.5 227.2L9 34.8C-2.6 24.3 -3.1 6.3 8 -4.7L59.3 -56C70.3 -67 88.4 -66.5 98.8 -54.9L291.2 159.5C341.6 133.2 402.3 139 451.6 188.3C514.6 251.2 535.2 361.1 480.1 416.1z" />
    +    <glyph glyph-name="utensils"
    +      unicode="&#xF2E7;"
    +      horiz-adv-x="416" d=" M207.9 432.8C208.7 428.1 224 338.3 224 304C224 251.7 196.2 214.4 155.1 199.4L168 -38.7C168.7 -52.4 157.8 -64 144 -64H80C66.3 -64 55.3 -52.5 56 -38.7L68.9 199.4C27.7 214.4 0 251.8 0 304C0 338.4 15.3 428.1 16.1 432.8C19.3 453.1 61.4 453.4 64 431.7V290.5C65.3 287.1 79.1 287.3 80 290.5C81.4 315.8 87.9 429.7 88 432.3C91.3 453.1 132.7 453.1 135.9 432.3C136.1 429.6 142.5 315.8 143.9 290.5C144.8 287.3 158.7 287.1 159.9 290.5V431.7C162.5 453.3 204.7 453.1 207.9 432.8zM327.1 147.1L312.1 -38C310.9000000000001 -52 322 -64 336 -64H392C405.3 -64 416 -53.3 416 -40V424C416 437.2 405.3 448 392 448C309.5 448 170.6 269.5 327.1 147.1z" />
    +    <glyph glyph-name="vector-square"
    +      unicode="&#xF5CB;"
    +      horiz-adv-x="512" d=" M512 320V416C512 433.67 497.67 448 480 448H384C366.33 448 352 433.67 352 416H160C160 433.67 145.67 448 128 448H32C14.33 448 0 433.67 0 416V320C0 302.33 14.33 288 32 288V96C14.33 96 0 81.67 0 64V-32C0 -49.67 14.33 -64 32 -64H128C145.67 -64 160 -49.67 160 -32H352C352 -49.67 366.33 -64 384 -64H480C497.67 -64 512 -49.67 512 -32V64C512 81.67 497.67 96 480 96V288C497.67 288 512 302.3300000000001 512 320zM416 384H448V352H416V384zM64 384H96V352H64V384zM96 0H64V32H96V0zM448 0H416V32H448V0zM416 96H384C366.33 96 352 81.67 352 64V32H160V64C160 81.67 145.67 96 128 96H96V288H128C145.67 288 160 302.3300000000001 160 320V352H352V320C352 302.33 366.33 288 384 288H416V96z" />
    +    <glyph glyph-name="venus-double"
    +      unicode="&#xF226;"
    +      horiz-adv-x="512" d=" M288 272C288 351.5 223.5 416 144 416S0 351.5 0 272C0 203.5 47.9 146.1 112 131.6V80H76C69.4 80 64 74.6 64 68V28C64 21.4 69.4 16 76 16H112V-20C112 -26.6 117.4 -32 124 -32H164C170.6 -32 176 -26.6 176 -20V16H212C218.6 16 224 21.4 224 28V68C224 74.6 218.6 80 212 80H176V131.6C240.1 146.1 288 203.5 288 272zM64 272C64 316.1 99.9 352 144 352S224 316.1 224 272S188.1 192 144 192S64 227.9 64 272zM400 131.6V80H436C442.6 80 448 74.6 448 68V28C448 21.4 442.6 16 436 16H400V-20C400 -26.6 394.6 -32 388 -32H348C341.4 -32 336 -26.6 336 -20V16H300C293.4 16 288 21.4 288 28V68C288 74.6 293.4 80 300 80H336V131.6C314.8 136.4 295.4 145.9 278.8 158.9C292.8 175.6 303.8 194.9 310.9000000000001 216C325.4000000000001 201.2 345.6 192 368.0000000000001 192C412.1000000000001 192 448.0000000000001 227.9000000000001 448.0000000000001 272S412.1000000000001 352 368.0000000000001 352C345.7000000000001 352 325.4000000000001 342.8 310.9000000000001 328C303.8 349.1 292.9000000000001 368.4000000000001 278.8 385.1C303.4 404.4 334.3 416 368 416C447.5 416 512 351.5 512 272C512 203.5 464.1 146.1 400 131.6z" />
    +    <glyph glyph-name="venus-mars"
    +      unicode="&#xF228;"
    +      horiz-adv-x="576" d=" M564 448H485C474.3 448 469 435.1 476.5 427.5L493.4 410.6L444.7 361.9C422.5 375.9 396.2 384 368 384C334.3 384 303.4 372.4 278.8 353.1C292.8 336.4 303.8 317.1 310.9000000000001 296C325.4000000000001 310.8 345.6 320 368.0000000000001 320C412.1000000000001 320 448.0000000000001 284.1 448.0000000000001 240S412.1000000000001 160 368.0000000000001 160C345.7000000000001 160 325.4000000000001 169.2 310.9000000000001 184C303.8 162.9 292.9000000000001 143.6 278.8 126.9C303.3 107.5 334.3 96 368 96C447.5 96 512 160.5 512 240C512 268.2 503.9 294.5 489.9 316.7L538.6 365.4L555.5 348.5C557.9 346.1 560.9 345 563.9 345C570.1 345 576 349.8 576 357V436C576 442.6 570.6 448 564 448zM144 384C64.5 384 0 319.5 0 240C0 171.5 47.9 114.1 112 99.6V48H76C69.4 48 64 42.6 64 36V-4C64 -10.6 69.4 -16 76 -16H112V-52C112 -58.6 117.4 -64 124 -64H164C170.6 -64 176 -58.6 176 -52V-16H212C218.6 -16 224 -10.6 224 -4V36C224 42.6 218.6 48 212 48H176V99.6C240.1 114.2000000000001 288 171.5 288 240.0000000000001C288 319.5 223.5 384 144 384zM144 160C99.9 160 64 195.9 64 240S99.9 320 144 320S224 284.1 224 240S188.1 160 144 160z" />
    +    <glyph glyph-name="venus"
    +      unicode="&#xF221;"
    +      horiz-adv-x="288" d=" M288 272C288 351.5 223.5 416 144 416S0 351.5 0 272C0 203.5 47.9 146.1 112 131.6V80H76C69.4 80 64 74.6 64 68V28C64 21.4 69.4 16 76 16H112V-20C112 -26.6 117.4 -32 124 -32H164C170.6 -32 176 -26.6 176 -20V16H212C218.6 16 224 21.4 224 28V68C224 74.6 218.6 80 212 80H176V131.6C240.1 146.1 288 203.5 288 272zM64 272C64 316.1 99.9 352 144 352S224 316.1 224 272S188.1 192 144 192S64 227.9 64 272z" />
    +    <glyph glyph-name="vial"
    +      unicode="&#xF492;"
    +      horiz-adv-x="480" d=" M477.7 261.9L309.5 429.7C306.4 432.8 301.3 432.8 298.2 429.7L264.2 395.8C261.1 392.7 261.1 387.6 264.2 384.5L275.4 373.4L33 131.5C-5.8 92.8 -12.1 29.5 23.6 -12C44.2 -36 73.1 -48 102 -47.9C128.4 -47.9 154.8 -37.9 174.9 -17.8L421.2000000000001 227.9000000000001L432.4000000000001 216.8000000000001C435.5000000000001 213.7000000000001 440.6 213.7000000000001 443.7000000000001 216.8000000000001L477.7 250.7000000000001C480.8000000000001 253.7000000000001 480.8000000000001 258.8000000000001 477.7 261.9000000000001zM318 192H161L309 339.7L387.5 261.4L318 192z" />
    +    <glyph glyph-name="vials"
    +      unicode="&#xF493;"
    +      horiz-adv-x="640" d=" M72 384H96V144C96 99.9 131.9 64 176 64S256 99.9 256 144V384H280C284.4 384 288 387.6 288 392V440C288 444.4 284.4 448 280 448H72C67.6 448 64 444.4 64 440V392C64 387.6 67.6 384 72 384zM144 384H208V288H144V384zM624 0H16C7.2 0 0 -7.2 0 -16V-48C0 -56.8 7.2 -64 16 -64H624C632.8 -64 640 -56.8 640 -48V-16C640 -7.2 632.8 0 624 0zM360 384H384V144C384 99.9 419.9 64 464 64S544 99.9 544 144V384H568C572.4 384 576 387.6 576 392V440C576 444.4 572.4 448 568 448H360C355.6 448 352 444.4 352 440V392C352 387.6 355.6 384 360 384zM432 384H496V288H432V384z" />
    +    <glyph glyph-name="video-slash"
    +      unicode="&#xF4E2;"
    +      horiz-adv-x="640" d=" M633.8 -10.1L578.8 32.4C594.1999999999999 33.8 608 46.1 608 63.5V320.5C608 346 578.9 360.9 557.6 346.3L448 270.7V133.5L416 158.2V336.2C416 362.6 394.6 384 368.2 384H123.9L45.5 444.6C38.5 450 28.5 448.8 23 441.8L3.4 416.6C-2 409.6 -0.8 399.6 6.2 394.2L42.7 366L416 77.4L594.5 -60.6C601.5 -66 611.5 -64.8000000000001 617 -57.8L636.6 -32.5C642.1 -25.6 640.8000000000001 -15.5 633.8000000000001 -10.1zM32 47.8C32 21.4 53.4 0 79.8 0H368.2C379.4 0 389.6 4 397.8 10.5L32 293.3V47.8z" />
    +    <glyph glyph-name="video"
    +      unicode="&#xF03D;"
    +      horiz-adv-x="576" d=" M336.2 384H47.8C21.4 384 0 362.6 0 336.2V47.8C0 21.4 21.4 0 47.8 0H336.2C362.6 0 384 21.4 384 47.8V336.2C384 362.6 362.6 384 336.2 384zM525.6 346.3L416 270.7V113.3L525.6 37.8C546.8000000000001 23.1999999999999 576 38.1 576 63.6V320.5C576 345.9 546.9 360.9 525.6 346.3z" />
    +    <glyph glyph-name="vihara"
    +      unicode="&#xF6A7;"
    +      horiz-adv-x="640" d=" M632.88 47.29L544 96V160L599.16 177.69C610.9499999999999 183.59 610.9499999999999 200.41 599.16 206.31L480 256V320L507.31 336.3C515.03 344.02 512.92 357.04 503.15 361.92L320 448L136.85 361.93C127.08 357.05 124.97 344.03 132.69 336.31L160 320V256L40.84 206.31C29.05 200.41 29.05 183.59 40.84 177.69L96 160V96L7.12 47.29C1.7 43.67 -0.58 37.66 0.12 32C0.74 26.99 3.69 22.25 8.84 19.67L64 0V-48C64 -56.84 71.16 -64 80 -64H112C120.84 -64 128 -56.84 128 -48V0H288V-48C288 -56.84 295.1600000000001 -64 304 -64H336C344.84 -64 352 -56.84 352 -48V0H512V-48C512 -56.84 519.16 -64 528 -64H560C568.84 -64 576 -56.84 576 -48V0L631.15 19.67C636.31 22.25 639.25 26.99 639.87 32C640.58 37.67 638.3 43.68 632.88 47.29zM224 320H416V256H224V320zM160 96V160H480V96H160z" />
    +    <glyph glyph-name="volleyball-ball"
    +      unicode="&#xF45F;"
    +      horiz-adv-x="495.9" d=" M223.3 204.6C222.4 241.6 214.7 277.4 200.6 310.3C109.8 267.9 43.1 187.9 20.3 93.5C33.7 62.7 53.2 35.2 77.2 12.4C99.9 91.6 151.4 160.2 223.3 204.6zM186.4 339C171.4 365.4 151.9 389.1 129 409.7C38 359.9 -15.8 256.8 4 147.5C37.4 230.6 102.4 299.5 186.4 339zM374 173.9C382.6 273.7 346.7 371.4 276.5 438.3C261.8 440 224.9 443.8 177.6 429.8C234.9 370.5 268.6 291.6 271.1 207.1C303.6 189.4 338.4000000000001 178.1 374 173.9zM249.3 164.4C217.7 145.1 190.6 120.5 169.1 91.8C251.1 34.4999999999999 353.6 16.6999999999999 446.6 43.9999999999999C466.3 70.3999999999999 480.8 100.8 488.8 133.9C462.2 127.3 435.1 123.5 407.9 123.5C353.3 123.6 299 137.6 249.3 164.4zM151 64.7C135.8 38.7 125.3 10.3 118.9 -19.5C156.5 -42.5 200.6 -56 248 -56C309 -56 364.7 -33.9 407.9 2.6C295 -13.5 204.6 27.4 151 64.7zM331.3 425.3C386.6 354.9 413.8 264.1 405.9 171.7C436.2 171.5 466.4 176.5 495.6 185.9C495.6 187.9 495.9 189.9 495.9 191.9C495.9 299.7 427.2 391 331.3 425.3z" />
    +    <glyph glyph-name="volume-down"
    +      unicode="&#xF027;"
    +      horiz-adv-x="384" d=" M215.03 375.96L126.06 287H24C10.74 287 0 276.26 0 263V119C0 105.75 10.74 95 24 95H126.06L215.03 6.05C230.06 -8.98 256 1.58 256 23.02V358.98C256 380.45 230.04 390.9600000000001 215.03 375.9600000000001zM338.23 267.88C326.6500000000001 274.2100000000001 312.04 270.04 305.62 258.43C299.23 246.82 303.46 232.23 315.07 225.82C327.98 218.72 336 205.38 336 191C336 176.62 327.98 163.28 315.08 156.19C303.47 149.78 299.24 135.19 305.63 123.58C312.06 111.92 326.68 107.78 338.24 114.13C366.4700000000001 129.68 384.01 159.13 384.01 191.01S366.47 252.33 338.23 267.88z" />
    +    <glyph glyph-name="volume-mute"
    +      unicode="&#xF6A9;"
    +      horiz-adv-x="512" d=" M215.03 376.95L126.06 288H24C10.74 288 0 277.26 0 264V120C0 106.75 10.74 96 24 96H126.06L215.03 7.05C230.06 -7.98 256 2.58 256 24.02V359.98C256 381.44 230.04 391.9600000000001 215.03 376.95zM461.64 192L507.28 237.64C513.5799999999999 243.94 513.5799999999999 254.16 507.28 260.46L484.46 283.28C478.16 289.58 467.94 289.58 461.64 283.28L416 237.64L370.36 283.28C364.06 289.58 353.8400000000001 289.58 347.54 283.28L324.7200000000001 260.46C318.42 254.16 318.42 243.94 324.7200000000001 237.64L370.36 192L324.73 146.37C318.43 140.07 318.43 129.85 324.73 123.55L347.55 100.73C353.85 94.43 364.07 94.43 370.37 100.73L416 146.36L461.64 100.72C467.94 94.42 478.16 94.42 484.46 100.72L507.28 123.54C513.5799999999999 129.84 513.5799999999999 140.06 507.28 146.36L461.64 192z" />
    +    <glyph glyph-name="volume-off"
    +      unicode="&#xF026;"
    +      horiz-adv-x="257.33" d=" M216.36 376.96L127.39 288H25.33C12.07 288 1.33 277.26 1.33 264V120C1.33 106.75 12.07 96 25.33 96H127.39L216.36 7.05C231.39 -7.98 257.3300000000001 2.58 257.3300000000001 24.02V359.98C257.3300000000001 381.45 231.3700000000001 391.9600000000001 216.3600000000001 376.9600000000001z" />
    +    <glyph glyph-name="volume-up"
    +      unicode="&#xF028;"
    +      horiz-adv-x="576" d=" M215.03 376.95L126.06 288H24C10.74 288 0 277.26 0 264V120C0 106.75 10.74 96 24 96H126.06L215.03 7.05C230.06 -7.98 256 2.58 256 24.02V359.98C256 381.44 230.04 391.9600000000001 215.03 376.95zM448.35 428.03C437.18 435.36 422.17 432.27 414.8400000000001 421.08C407.5000000000001 409.9100000000001 410.62 394.9 421.79 387.57C488.06 344.0800000000001 527.61 270.9700000000001 527.61 191.99C527.61 113.01 488.06 39.9 421.79 -3.59C410.62 -10.91 407.5 -25.93 414.8400000000001 -37.09C421.8800000000001 -47.8 436.7700000000001 -51.65 448.35 -44.04C528.27 8.42 576 96.67 576 192S528.27 375.57 448.35 428.03zM480 192C480 255.53 447.94 313.94 394.23 348.24C383.04 355.38 368.2000000000001 352.06 361.11 340.7800000000001S357.3300000000001 314.5700000000001 368.5200000000001 307.42C408.27 282.03 432 238.89 432 192S408.27 101.97 368.52 76.58C357.33 69.44 354.02 54.51 361.11 43.22C367.62 32.86 382.23 28.08 394.23 35.76C447.94 70.06 480 128.46 480 192zM338.23 268.87C326.6500000000001 275.2000000000001 312.04 271.03 305.62 259.42C299.23 247.81 303.46 233.2200000000001 315.07 226.81C327.98 219.72 336 206.37 336 192C336 177.62 327.98 164.28 315.08 157.19C303.47 150.78 299.24 136.19 305.63 124.58C312.06 112.92 326.68 108.78 338.24 115.13C366.4700000000001 130.68 384.01 160.13 384.01 192.01S366.47 253.33 338.23 268.87z" />
    +    <glyph glyph-name="walking"
    +      unicode="&#xF554;"
    +      horiz-adv-x="320" d=" M208 352C234.5 352 256 373.5 256 400S234.5 448 208 448S160 426.5 160 400S181.5 352 208 352zM302.5 202.9L279.2 214.7L269.5 244.1C254.8 288.7000000000001 213.8 319.9000000000001 167.3 320C131.3 320.1 111.4 309.9000000000001 74 294.8000000000001C52.4 286.1 34.7 269.6 24.3 248.6L17.6 235C9.8 219.2 16.1 200 31.8 192.1C47.4 184.2 66.4 190.6 74.3 206.4L81 220C84.5 227 90.3 232.5 97.5 235.4L124.3 246.2L109.1 185.5C103.9 164.7 109.5 142.6 124 126.7L183.9 61.3C191.1 53.4 196.2 43.9 198.8 33.6L217.1 -39.7C221.4 -56.8000000000001 238.8 -67.3000000000001 255.9000000000001 -63.0000000000001C273.0000000000001 -58.7 283.5000000000001 -41.3000000000001 279.2000000000001 -24.2L257.0000000000001 64.8C254.4000000000001 75.1 249.3000000000001 84.6999999999999 242.1000000000001 92.4999999999999L196.6000000000001 142.1999999999999L213.8000000000001 210.8999999999999L219.3000000000001 194.3999999999999C224.6000000000001 178.2999999999999 236.0000000000001 165 251.0000000000001 157.3999999999999L274.3 145.5999999999999C289.9000000000001 137.6999999999999 308.9000000000001 144.0999999999999 316.8 159.8999999999999C324.5 175.5999999999999 318.2 194.9999999999999 302.5 202.8999999999999zM73.6 62.2C70.4 54.1 65.6 46.8 59.4 40.7L9.4 -9.4C-3.1 -21.9 -3.1 -42.2 9.4 -54.7S42.1 -67.2 54.6 -54.7L114 4.6999999999999C120.1 10.8 124.9 18.0999999999999 128.2 26.1999999999999L141.7 59.9999999999999C86.4 120.3 103 101.8 94.3 113.6999999999999L73.6 62.1999999999999z" />
    +    <glyph glyph-name="wallet"
    +      unicode="&#xF555;"
    +      horiz-adv-x="512" d=" M461.2 320H80C71.16 320 64 327.16 64 336S71.16 352 80 352H464C472.84 352 480 359.16 480 368C480 394.51 458.51 416 432 416H64C28.65 416 0 387.35 0 352V32C0 -3.35 28.65 -32 64 -32H461.2C489.22 -32 512 -10.47 512 16V272C512 298.4700000000001 489.22 320 461.2 320zM416 112C398.33 112 384 126.33 384 144S398.33 176 416 176S448 161.67 448 144S433.67 112 416 112z" />
    +    <glyph glyph-name="warehouse"
    +      unicode="&#xF494;"
    +      horiz-adv-x="640" d=" M504 96H136.4C132 96 128.4 92.4 128.4 88L128.3 40C128.3 35.6 131.9 32 136.3 32H504C508.4 32 512 35.6 512 40V88C512 92.4 508.4 96 504 96zM504 0H136.1C131.7 0 128.1 -3.6 128.1 -8L128 -56C128 -60.4 131.6 -64 136 -64H504C508.4 -64 512 -60.4 512 -56V-8C512 -3.6 508.4 0 504 0zM504 192H136.6C132.2 192 128.6 188.4 128.6 184L128.5 136C128.5 131.6 132.1 128 136.5 128H504C508.4 128 512 131.6 512 136V184C512 188.4 508.4 192 504 192zM610.5 331L338.4 444.3A48.15 48.15 0 0 1 301.5 444.3L29.5 331C11.7 323.5 0 306.1 0 286.7V-56C0 -60.4 3.6 -64 8 -64H88C92.4 -64 96 -60.4 96 -56V192C96 209.6 110.6 224 128.6 224H511.4C529.4 224 544 209.6 544 192V-56C544 -60.4 547.6 -64 552 -64H632C636.4 -64 640 -60.4 640 -56V286.7C640 306.1 628.3 323.5 610.5 331z" />
    +    <glyph glyph-name="weight-hanging"
    +      unicode="&#xF5CD;"
    +      horiz-adv-x="512" d=" M510.28 2.14L437.25 294.27C433.45 309.46 420.81 319.99 406.38 319.99H346.13C349.7 330.04 352.01 340.71 352.01 351.99C352.01 405.01 309.03 447.99 256.01 447.99S160.01 405.01 160.01 351.99C160.01 340.71 162.31 330.04 165.89 319.99H105.64C91.21 319.99 78.56 309.45 74.77 294.27L1.72 2.14C-6.61 -31.17 16.38 -64 48.03 -64H463.98C495.62 -64 518.61 -31.17 510.28 2.14zM256 320C238.36 320 224 334.36 224 352S238.36 384 256 384S288 369.64 288 352S273.64 320 256 320z" />
    +    <glyph glyph-name="weight"
    +      unicode="&#xF496;"
    +      horiz-adv-x="512" d=" M448 384H422.02C438.44 355.7200000000001 448 322.99 448 288C448 182.13 361.87 96 256 96S64 182.13 64 288C64 322.99 73.56 355.7200000000001 89.98 384H64C28.71 384 0 355.29 0 320V0C0 -35.29 28.71 -64 64 -64H448C483.29 -64 512 -35.29 512 0V320C512 355.29 483.29 384 448 384zM256 128C344.37 128 416 199.63 416 288S344.37 448 256 448S96 376.37 96 288S167.63 128 256 128zM255.7 279.94L289.28 358.3C292.78 366.4700000000001 302.22 370.2200000000001 310.31 366.71C318.43 363.23 322.19 353.82 318.72 345.71L285.05 267.16C291.73 260 296 250.55 296 240C296 217.91 278.09 200 256 200S216 217.91 216 240C216 261.98 233.76 279.77 255.7 279.94z" />
    +    <glyph glyph-name="wheelchair"
    +      unicode="&#xF193;"
    +      horiz-adv-x="512" d=" M496.101 62.331L510.328 33.668C514.257 25.753 511.025 16.152 503.11 12.223L437.645 -20.663C421.596 -28.63 402.089 -21.857 394.456 -5.608L331.679 128H192C176.075 128 162.574 139.71 160.321 155.475C126.433 392.692 128.38 377.956 128 384C128 420.358 158.318 449.635 195.052 447.929C228.3230000000001 446.384 255.1 419.024 255.9770000000001 385.728C256.8450000000001 352.795 232.8250000000001 325.305 201.369 320.689L206.039 287.999H336C344.837 287.999 352 280.836 352 271.999V239.999C352 231.162 344.837 223.999 336 223.999H215.182L219.754 191.999H352A32 32 0 0 0 380.962 173.607L438.477 51.2L474.655 69.549C482.57 73.478 492.172 70.246 496.101 62.331zM311.358 96H286.852C279.064 41.796 232.324 0 176 0C114.243 0 64 50.243 64 112C64 153.505 86.694 189.809 120.324 209.156C116.612 235.121 113.48 257.016 110.836 275.4890000000001C45.956 249.536 0 186.037 0 112C0 14.953 78.953 -64 176 -64C247.87 -64 309.8060000000001 -20.692 337.11 41.192L311.358 96z" />
    +    <glyph glyph-name="wifi"
    +      unicode="&#xF1EB;"
    +      horiz-adv-x="640" d=" M634.91 293.12C457.74 456.99 182.19 456.93 5.09 293.12C-1.57 286.9600000000001 -1.7 276.53 4.74 270.14L38.98 236.17C45.12 230.07 55 229.9400000000001 61.38 235.79C207.3 369.4700000000001 432.68 369.5 578.63 235.79C585.01 229.9400000000001 594.89 230.08 601.03 236.17L635.27 270.14C641.6999999999999 276.53 641.5699999999999 286.9600000000001 634.91 293.12zM320 96C284.65 96 256 67.35 256 32S284.65 -32 320 -32S384 -3.35 384 32S355.35 96 320 96zM522.67 179.59C407.41 281.5200000000001 232.46 281.4100000000001 117.33 179.59C110.43 173.49 110.21 162.9 116.76 156.4400000000001L151.2 122.4500000000001C157.2 116.53 166.86 116.1300000000001 173.25 121.65C257.2 194.22 382.99 194.06 466.74 121.65C473.13 116.1300000000001 482.79 116.5200000000001 488.79 122.4500000000001L523.23 156.4400000000001C529.79 162.9 529.5600000000001 173.5000000000001 522.6700000000001 179.59z" />
    +    <glyph glyph-name="wind"
    +      unicode="&#xF72E;"
    +      horiz-adv-x="512" d=" M156.66 192H16C7.16 192 0 184.84 0 176V144C0 135.16 7.16 128 16 128H158.19C174.14 128 188.96 117.15 191.56 101.42C194.86 81.4 179.42 64 160 64C145.89 64 133.87 73.19 129.63 85.9C127.52 92.21 121.03 96 114.38 96H81.63C71.83 96 63.9 87.19 65.77 77.57C74.39 33.42 113.37 0 160 0C217.09 0 262.7 50.09 255.19 108.63C248.98 157.02 205.45 192 156.66 192zM16 224H352C411.7 224 458.83 278.76 445.83 340.69C438.22 376.92 408.92 406.2200000000001 372.69 413.83C317.25 425.4700000000001 267.56 388.92 257.76 338.3C255.9 328.73 263.85 320 273.6 320H306.4C313.05 320 319.54 323.79 321.65 330.1C325.88 342.81 337.89 352 352 352C371.42 352 386.86 334.61 383.55 314.5900000000001C380.95 298.86 366.13 288 350.18 288H16C7.16 288 0 280.8400000000001 0 272V240C0 231.16 7.16 224 16 224zM400 192H243.68C263.02 175.43 276.87 153.21 283.45 128H400C426.4700000000001 128 448 106.47 448 80S426.4700000000001 32 400 32C382.14 32 366.67 41.86 358.44 56.38C355.59 61.41 349.75 64 343.97 64H310.15C299.24 64 291.19 53.19 294.8 42.9C312.57 -7.7 365.34 -41.85 424.2099999999999 -29.45C465.4299999999999 -20.76 499.3099999999999 12.1999999999999 508.8799999999999 53.23C525.98 126.54 470.48 192 400 192z" />
    +    <glyph glyph-name="window-close"
    +      unicode="&#xF410;"
    +      horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM380.4 125.5C385.2 120.7 385.2 112.9 380.4 108.1L339.9 67.6C335.1 62.8 327.3 62.8 322.5 67.6L256 134.7L189.5 67.6C184.7 62.8 176.9 62.8 172.1 67.6L131.6 108.1C126.8 112.9 126.8 120.7000000000001 131.6 125.5L198.7 192L131.6 258.5C126.8 263.3 126.8 271.1 131.6 275.9L172.1 316.4C176.9 321.2 184.7 321.2 189.5 316.4L256 249.3L322.5 316.4C327.3 321.2 335.1 321.2 339.9 316.4L380.4 275.9C385.2 271.1 385.2 263.3 380.4 258.5L313.3 192L380.4 125.5z" />
    +    <glyph glyph-name="window-maximize"
    +      unicode="&#xF2D0;"
    +      horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM448 256H64V340C64 346.6 69.4 352 76 352H436C442.6 352 448 346.6 448 340V256z" />
    +    <glyph glyph-name="window-minimize"
    +      unicode="&#xF2D1;"
    +      horiz-adv-x="512" d=" M464 96H48C21.5 96 0 74.5 0 48V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V48C512 74.5 490.5 96 464 96z" />
    +    <glyph glyph-name="window-restore"
    +      unicode="&#xF2D2;"
    +      horiz-adv-x="512" d=" M512 400V112C512 85.5 490.5 64 464 64H416V272C416 316.1 380.1 352 336 352H128V400C128 426.5 149.5 448 176 448H464C490.5 448 512 426.5 512 400zM384 272V-16C384 -42.5 362.5 -64 336 -64H48C21.5 -64 0 -42.5 0 -16V272C0 298.5 21.5 320 48 320H336C362.5 320 384 298.5 384 272zM316 244C316 250.6 310.6 256 304 256H76C69.4 256 64 250.6 64 244V192H316V244z" />
    +    <glyph glyph-name="wine-bottle"
    +      unicode="&#xF72F;"
    +      horiz-adv-x="512" d=" M507.31 375.43L439.43 443.31C433.18 449.56 423.05 449.56 416.8 443.31L394.17 420.68C387.92 414.43 387.92 404.3 394.17 398.05L317.5 321.38C270.92 341.08 215.1 332.11 177.13 294.15L18.75 135.77C-6.24 110.78 -6.24 70.25 18.75 45.26L109.26 -45.25C134.25 -70.24 174.78 -70.24 199.77 -45.25L358.16 113.14C396.12 151.1 405.09 206.93 385.39 253.51L462.06 330.18C468.31 323.93 478.44 323.93 484.69 330.18L507.32 352.81C513.56 359.05 513.56 369.18 507.31 375.43zM179.22 24.71L88.71 115.22L210.75 237.26L301.26 146.75L179.22 24.71z" />
    +    <glyph glyph-name="wine-glass-alt"
    +      unicode="&#xF5CE;"
    +      horiz-adv-x="288" d=" M216 -16H176V101.19C244.47 117.08 294.05 181.1 287.4 255.35L271.45 433.45C270.71 441.69 263.9 448 255.74 448H32.26C24.11 448 17.29 441.69 16.56 433.45L0.6 255.34C-6.05 181.09 43.53 117.07 112 101.18V-16H72C49.91 -16 32 -33.91 32 -56C32 -60.42 35.58 -64 40 -64H248C252.42 -64 256 -60.42 256 -56C256 -33.91 238.09 -16 216 -16zM61.75 400H226.25L233.42 320H54.58L61.75 400z" />
    +    <glyph glyph-name="wine-glass"
    +      unicode="&#xF4E3;"
    +      horiz-adv-x="288" d=" M216 -16H176V101.19C244.47 117.08 294.05 181.1 287.4 255.35L271.45 433.45C270.71 441.69 263.9 448 255.74 448H32.26C24.11 448 17.29 441.69 16.56 433.45L0.6 255.34C-6.05 181.09 43.53 117.07 112 101.18V-16H72C49.91 -16 32 -33.91 32 -56C32 -60.42 35.58 -64 40 -64H248C252.42 -64 256 -60.42 256 -56C256 -33.91 238.09 -16 216 -16z" />
    +    <glyph glyph-name="won-sign"
    +      unicode="&#xF159;"
    +      horiz-adv-x="576" d=" M564 256C570.627 256 576 261.373 576 268V308C576 314.627 570.627 320 564 320H515.972L534.544 400.61C536.276 408.128 530.566 415.304 522.851 415.304H476.744A11.998 11.998 0 0 1 465.008 405.804L450.73 320H340.839L321.114 405.987A12 12 0 0 1 309.418 415.304H265.43A12 12 0 0 1 253.743 406.027L233.696 320H124.975L107.5 405.701A12 12 0 0 1 95.742 415.303H53.628C45.942 415.303 40.238 408.179 41.919 400.679L60 320H12C5.373 320 0 314.627 0 308V268C0 261.373 5.373 256 12 256H74.342L81.513 224H12C5.373 224 0 218.627 0 212V172C0 165.373 5.373 160 12 160H95.856L136.783 -22.624A12 12 0 0 1 148.492 -32H205.259C210.842 -32 215.687 -28.15 216.948 -22.712L259.335 160H314.421L356.807 -22.712A12 12 0 0 1 368.496 -32H425.322A12 12 0 0 1 437.016 -22.694L479.108 160H564C570.627 160 576 165.373 576 172V212C576 218.627 570.627 224 564 224H493.854L501.227 256H564zM138.024 256H218.781L211.324 224H144.548L138.024 256zM183.82 105.971C177.626 80.14 177.062 58.721 176.499 58.721H175.373S173.684 80.771 168.615 105.971L157.599 160H196.411L183.82 105.971zM274.182 224L276.178 232.602C278.034 240.564 279.635 248.57 280.981 256H292.775C294.122 248.57 295.722 240.564 297.578 232.602L299.574 224H274.182zM405.141 105.971C400.0730000000001 80.771 398.3830000000001 58.721 398.3830000000001 58.721H397.2570000000001C396.6940000000001 58.721 396.1310000000001 80.141 389.9360000000001 105.971L377.542 160H416.649L405.141 105.971zM430.281 224H362.861L355.521 256H437.098L430.281 224z" />
    +    <glyph glyph-name="wrench"
    +      unicode="&#xF0AD;"
    +      horiz-adv-x="512" d=" M507.73 338.9C505.49 347.93 494.19 350.99 487.61 344.4100000000001L413.25 270.05L345.37 281.36L334.06 349.24L408.42 423.6C415.04 430.2200000000001 411.85 441.5 402.76 443.76C355.38 455.5 303.21 442.85 266.18 405.8300000000001C226.54 366.19 215.63 308.73 232.13 258.63L18.74 45.24C-6.25 20.25 -6.25 -20.27 18.74 -45.26C43.73 -70.25 84.25 -70.25 109.24 -45.26L322.45 167.9500000000001C372.57 151.2400000000001 429.92 162.2700000000001 469.82 202.1700000000001C506.89 239.2400000000001 519.52 291.49 507.73 338.9000000000001zM64 -24C50.75 -24 40 -13.25 40 0C40 13.26 50.75 24 64 24S88 13.26 88 0C88 -13.25 77.25 -24 64 -24z" />
    +    <glyph glyph-name="x-ray"
    +      unicode="&#xF497;"
    +      horiz-adv-x="640" d=" M240 64C231.2 64 224 56.8 224 48S231.2 32 240 32S256 39.2 256 48S248.8 64 240 64zM400 32C408.8 32 416 39.2 416 48S408.8 64 400 64S384 56.8 384 48S391.2 32 400 32zM624 448H16C7.2 448 0 440.8 0 432V400C0 391.2 7.2 384 16 384H624C632.8 384 640 391.2 640 400V432C640 440.8 632.8 448 624 448zM624 0H576V352H64V0H16C7.2 0 0 -7.2 0 -16V-48C0 -56.8 7.2 -64 16 -64H624C632.8 -64 640 -56.8 640 -48V-16C640 -7.2 632.8 0 624 0zM480 200C480 195.6 476.4 192 472 192H336V160H440C444.4 160 448 156.4 448 152V136C448 131.6 444.4 128 440 128H336V96H400C426.5 96 448 74.5 448 48S426.5 0 400 0S352 21.5 352 48V64H288V48C288 21.5 266.5 0 240 0S192 21.5 192 48S213.5 96 240 96H304V128H200C195.6 128 192 131.6 192 136V152C192 156.4 195.6 160 200 160H304V192H168C163.6 192 160 195.6 160 200V216C160 220.4 163.6 224 168 224H304V256H200C195.6 256 192 259.6 192 264V280C192 284.4 195.6 288 200 288H304V312C304 316.4 307.6 320 312 320H328C332.4 320 336 316.4 336 312V288H440C444.4 288 448 284.4 448 280V264C448 259.6 444.4 256 440 256H336V224H472C476.4 224 480 220.4 480 216V200z" />
    +    <glyph glyph-name="yen-sign"
    +      unicode="&#xF157;"
    +      horiz-adv-x="384" d=" M351.2080000000001 416H285.9310000000001A12 12 0 0 1 275.153 409.276L219.763 296.113C205.25 261.409 192.63 224.181 192.63 224.181H191.368S178.748 261.409 164.235 296.113L108.845 409.276A11.997 11.997 0 0 1 98.068 416H32.792C23.735 416 17.942 406.35 22.202 398.357L102.322 248H44C37.373 248 32 242.627 32 236V204C32 197.373 37.373 192 44 192H132.162L152 154.772V128H44C37.373 128 32 122.627 32 116V84C32 77.373 37.373 72 44 72H152V-20C152 -26.627 157.373 -32 164 -32H220C226.627 -32 232 -26.627 232 -20V72H340C346.627 72 352 77.373 352 84V116C352 122.627 346.627 128 340 128H232V154.772L251.838 192H340C346.627 192 352 197.373 352 204V236C352 242.627 346.627 248 340 248H281.678L361.798 398.357C366.058 406.35 360.266 416 351.2080000000001 416z" />
    +    <glyph glyph-name="yin-yang"
    +      unicode="&#xF6AD;"
    +      horiz-adv-x="496" d=" M248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 64C230.33 64 216 78.33 216 96S230.33 128 248 128S280 113.67 280 96S265.67 64 248 64zM248 192C194.98 192 152 149.02 152 96S194.98 0 248 0C141.96 0 56 85.96 56 192S141.96 384 248 384C301.02 384 344 341.02 344 288S301.02 192 248 192zM248 320C230.33 320 216 305.67 216 288S230.33 256 248 256S280 270.3300000000001 280 288S265.67 320 248 320z" />
    +  </font>
    +</defs>
    +</svg>
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.ttf b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.ttf
    new file mode 100644
    index 00000000000..4c04632bac7
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.ttf differ
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff
    new file mode 100644
    index 00000000000..a38172b9795
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff differ
    diff --git a/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff2 b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff2
    new file mode 100644
    index 00000000000..39b8d0bd4a8
    Binary files /dev/null and b/htdocs/theme/common/fontawesome-5/webfonts/fa-solid-900.woff2 differ
    diff --git a/htdocs/theme/common/octicons/build/data.json b/htdocs/theme/common/octicons/build/data.json
    index 41fa0740b8a..c70ceda6631 100644
    --- a/htdocs/theme/common/octicons/build/data.json
    +++ b/htdocs/theme/common/octicons/build/data.json
    @@ -1 +1 @@
    -{"alert":{"name":"alert","figma":{"id":"0:5","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["warning","triangle","exclamation","point"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z\"/>"},"arrow-down":{"name":"arrow-down","figma":{"id":"0:8","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 7V3H3v4H0l5 6 5-6H7z\"/>"},"arrow-left":{"name":"arrow-left","figma":{"id":"0:10","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 3L0 8l6 5v-3h4V6H6V3z\"/>"},"arrow-right":{"name":"arrow-right","figma":{"id":"0:12","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 8L4 3v3H0v4h4v3l6-5z\"/>"},"arrow-up":{"name":"arrow-up","figma":{"id":"0:14","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M5 3L0 9h3v4h4V9h3L5 3z\"/>"},"arrow-small-down":{"name":"arrow-small-down","figma":{"id":"0:16","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction","little","tiny"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 7V5H2v2H0l3 4 3-4H4z\"/>"},"arrow-small-left":{"name":"arrow-small-left","figma":{"id":"0:18","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction","little","tiny"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 7V5L0 8l4 3V9h2V7H4z\"/>"},"arrow-small-right":{"name":"arrow-small-right","figma":{"id":"0:20","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction","little","tiny"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 8L2 5v2H0v2h2v2l4-3z\"/>"},"arrow-small-up":{"name":"arrow-small-up","figma":{"id":"0:22","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction","little","tiny"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M3 5L0 9h2v2h2V9h2L3 5z\"/>"},"beaker":{"name":"beaker","figma":{"id":"0:26","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["experiment","labs","experimental","feature","test","science","education","study","development","testing"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14.84 14.59L11.46 7V3h1V2h-9v1h1v4l-3.37 7.59A1 1 0 0 0 2 16h11.94c.72 0 1.2-.75.91-1.41h-.01zM4.21 10l1.25-3V3h5v4l1.25 3h-7.5zm4.25-2h1v1h-1V8zm-1-1h-1V6h1v1zm0-3h1v1h-1V4zm0-3h-1V0h1v1z\"/>"},"bell":{"name":"bell","figma":{"id":"0:34","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["notification"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 12v1H0v-1l.73-.58c.77-.77.81-2.55 1.19-4.42C2.69 3.23 6 2 6 2c0-.55.45-1 1-1s1 .45 1 1c0 0 3.39 1.23 4.16 5 .38 1.88.42 3.66 1.19 4.42l.66.58H14zm-7 4c1.11 0 2-.89 2-2H5c0 1.11.89 2 2 2z\"/>"},"bold":{"name":"bold","figma":{"id":"0:38","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["markdown","bold","text"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z\"/>"},"book":{"name":"book","figma":{"id":"0:43","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","wiki","readme"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M3 5h4v1H3V5zm0 3h4V7H3v1zm0 2h4V9H3v1zm11-5h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm2-6v9c0 .55-.45 1-1 1H9.5l-1 1-1-1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h5.5l1 1 1-1H15c.55 0 1 .45 1 1zm-8 .5L7.5 3H2v9h6V3.5zm7-.5H9.5l-.5.5V12h6V3z\"/>"},"bookmark":{"name":"bookmark","figma":{"id":"0:54","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["tab","star"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z\"/>"},"briefcase":{"name":"briefcase","figma":{"id":"0:58","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["suitcase","business"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 4V3c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1H9zM6 3h2v1H6V3zm7 6H8v1H6V9H1V5h1v3h10V5h1v4z\"/>"},"broadcast":{"name":"broadcast","figma":{"id":"0:63","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["rss","radio","signal"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 9H8c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1H6c-.55 0-1 .45-1 1v2h1v3c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-3h1v-2c0-.55-.45-1-1-1zM7 7h1v1H7V7zm2 4H8v4H7v-4H6v-1h3v1zm2.09-3.5c0-1.98-1.61-3.59-3.59-3.59A3.593 3.593 0 0 0 4 8.31v1.98c-.61-.77-1-1.73-1-2.8 0-2.48 2.02-4.5 4.5-4.5S12 5.01 12 7.49c0 1.06-.39 2.03-1 2.8V8.31c.06-.27.09-.53.09-.81zm3.91 0c0 2.88-1.63 5.38-4 6.63v-1.05a6.553 6.553 0 0 0 3.09-5.58A6.59 6.59 0 0 0 7.5.91 6.59 6.59 0 0 0 .91 7.5c0 2.36 1.23 4.42 3.09 5.58v1.05A7.497 7.497 0 0 1 7.5 0C11.64 0 15 3.36 15 7.5z\"/>"},"browser":{"name":"browser","figma":{"id":"0:70","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["window","web"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M5 3h1v1H5V3zM3 3h1v1H3V3zM1 3h1v1H1V3zm12 10H1V5h12v8zm0-9H7V3h6v1zm1-1c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V3z\"/>"},"bug":{"name":"bug","figma":{"id":"0:78","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["insect","issue"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11.17 10h3V9h-3V8l3.17-1.03-.34-.94-2.83.97V6c0-.55-.45-1-1-1V4c0-.48-.36-.88-.83-.97L10.37 2h1.8V1h-2.2l-2 2h-.59L5.37 1h-2.2v1h1.8L6 3.03c-.47.09-.83.48-.83.97v1c-.55 0-1 .45-1 1v1l-2.83-.97-.34.94L4.17 8v1h-3v1h3v1L1 12.03l.34.94L4.17 12v1c0 .55.45 1 1 1h1l1-1V6h1v7l1 1h1c.55 0 1-.45 1-1v-1l2.83.97.34-.94L11.17 11v-1zm-2-5h-3V4h3v1z\"/>"},"calendar":{"name":"calendar","figma":{"id":"0:82","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["time","day","month","year","date","appointment"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 2h-1v1.5c0 .28-.22.5-.5.5h-2c-.28 0-.5-.22-.5-.5V2H6v1.5c0 .28-.22.5-.5.5h-2c-.28 0-.5-.22-.5-.5V2H2c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 12H2V5h11v9zM5 3H4V1h1v2zm6 0h-1V1h1v2zM6 7H5V6h1v1zm2 0H7V6h1v1zm2 0H9V6h1v1zm2 0h-1V6h1v1zM4 9H3V8h1v1zm2 0H5V8h1v1zm2 0H7V8h1v1zm2 0H9V8h1v1zm2 0h-1V8h1v1zm-8 2H3v-1h1v1zm2 0H5v-1h1v1zm2 0H7v-1h1v1zm2 0H9v-1h1v1zm2 0h-1v-1h1v1zm-8 2H3v-1h1v1zm2 0H5v-1h1v1zm2 0H7v-1h1v1zm2 0H9v-1h1v1z\"/>"},"check":{"name":"check","figma":{"id":"0:104","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["mark","yes","confirm","accept","ok","success"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 5.5l-8 8-4-4L1.5 8 4 10.5 10.5 4 12 5.5z\"/>"},"checklist":{"name":"checklist","figma":{"id":"0:108","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["todo","tasks"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M16 8.5l-6 6-3-3L8.5 10l1.5 1.5L14.5 7 16 8.5zM5.7 12.2l.8.8H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h7c.55 0 1 .45 1 1v6.5l-.8-.8c-.39-.39-1.03-.39-1.42 0L5.7 10.8a.996.996 0 0 0 0 1.41v-.01zM4 4h5V3H4v1zm0 2h5V5H4v1zm0 2h3V7H4v1zM3 9H2v1h1V9zm0-2H2v1h1V7zm0-2H2v1h1V5zm0-2H2v1h1V3z\"/>"},"chevron-down":{"name":"chevron-down","figma":{"id":"0:117","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["triangle","arrow"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M5 11.5l-5-5L1.5 5 5 8.75 8.5 5 10 6.5l-5 5z\"/>"},"chevron-left":{"name":"chevron-left","figma":{"id":"0:119","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["triangle","arrow"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 3l1.5 1.5L3.75 8l3.75 3.5L6 13 1 8l5-5z\"/>"},"chevron-right":{"name":"chevron-right","figma":{"id":"0:121","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["triangle","arrow"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.5 8l-5 5L1 11.5 4.75 8 1 4.5 2.5 3l5 5z\"/>"},"chevron-up":{"name":"chevron-up","figma":{"id":"0:123","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["triangle","arrow"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 10l-1.5 1.5L5 7.75 1.5 11.5 0 10l5-5 5 5z\"/>"},"circle-slash":{"name":"circle-slash","figma":{"id":"0:127","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["no","deny","fail","failure","error","bad"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm0 1.3c1.3 0 2.5.44 3.47 1.17l-8 8A5.755 5.755 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zm0 11.41c-1.3 0-2.5-.44-3.47-1.17l8-8c.73.97 1.17 2.17 1.17 3.47 0 3.14-2.56 5.7-5.7 5.7z\"/>"},"circuit-board":{"name":"circuit-board","figma":{"id":"0:132","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["developer","hardware","electricity"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M3 5c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zm8 0c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0 6c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm2-10H5v2.17c.36.19.64.47.83.83h2.34c.42-.78 1.33-1.28 2.34-1.05.75.19 1.36.8 1.53 1.55.31 1.38-.72 2.59-2.05 2.59-.8 0-1.48-.44-1.83-1.09H5.83c-.42.8-1.33 1.28-2.34 1.03-.73-.17-1.34-.78-1.52-1.52C1.72 4.49 2.2 3.59 3 3.17V1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1l5-5h2.17c.42-.78 1.33-1.28 2.34-1.05.75.19 1.36.8 1.53 1.55.31 1.38-.72 2.59-2.05 2.59-.8 0-1.48-.44-1.83-1.09H6.99L4 15h9c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1z\"/>"},"clippy":{"name":"clippy","figma":{"id":"0:138","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["copy","paste","save","capture","clipboard"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z\"/>"},"clock":{"name":"clock","figma":{"id":"0:147","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["time","hour","minute","second","watch"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 8h3v2H7c-.55 0-1-.45-1-1V4h2v4zM7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7z\"/>"},"cloud-download":{"name":"cloud-download","figma":{"id":"0:152","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["save","install","get"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 12h2l-3 3-3-3h2V7h2v5zm3-8c0-.44-.91-3-4.5-3C5.08 1 3 2.92 3 5 1.02 5 0 6.52 0 8c0 1.53 1 3 3 3h3V9.7H3C1.38 9.7 1.3 8.28 1.3 8c0-.17.05-1.7 1.7-1.7h1.3V5c0-1.39 1.56-2.7 3.2-2.7 2.55 0 3.13 1.55 3.2 1.8v1.2H12c.81 0 2.7.22 2.7 2.2 0 2.09-2.25 2.2-2.7 2.2h-2V11h2c2.08 0 4-1.16 4-3.5C16 5.06 14.08 4 12 4z\"/>"},"cloud-upload":{"name":"cloud-upload","figma":{"id":"0:156","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["put","export"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 9H5l3-3 3 3H9v5H7V9zm5-4c0-.44-.91-3-4.5-3C5.08 2 3 3.92 3 6 1.02 6 0 7.52 0 9c0 1.53 1 3 3 3h3v-1.3H3c-1.62 0-1.7-1.42-1.7-1.7 0-.17.05-1.7 1.7-1.7h1.3V6c0-1.39 1.56-2.7 3.2-2.7 2.55 0 3.13 1.55 3.2 1.8v1.2H12c.81 0 2.7.22 2.7 2.2 0 2.09-2.25 2.2-2.7 2.2h-2V12h2c2.08 0 4-1.16 4-3.5C16 6.06 14.08 5 12 5z\"/>"},"code":{"name":"code","figma":{"id":"0:160","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["brackets"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z\"/>"},"comment-discussion":{"name":"comment-discussion","figma":{"id":"0:164","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["converse","talk"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15 1H6c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1v3l3-3h4c.55 0 1-.45 1-1V9h1l3 3V9h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM9 11H4.5L3 12.5V11H1V5h4v3c0 .55.45 1 1 1h3v2zm6-3h-2v1.5L11.5 8H6V2h9v6z\"/>"},"comment":{"name":"comment","figma":{"id":"0:169","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["speak","bubble"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 1H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2v3.5L7.5 11H14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 9H7l-2 2v-2H2V2h12v8z\"/>"},"credit-card":{"name":"credit-card","figma":{"id":"0:173","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["money","billing","payments","transactions"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 9H2V8h10v1zm4-6v9c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h14c.55 0 1 .45 1 1zm-1 3H1v6h14V6zm0-3H1v1h14V3zm-9 7H2v1h4v-1z\"/>"},"dash":{"name":"dash","figma":{"id":"0:178","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["hyphen","range"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 7v2h8V7H0z\"/>"},"dashboard":{"name":"dashboard","figma":{"id":"0:182","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["speed","dial"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 5H8V4h1v1zm4 3h-1v1h1V8zM6 5H5v1h1V5zM5 8H4v1h1V8zm11-5.5l-.5-.5L9 7c-.06-.02-1 0-1 0-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-.92l6-5.58zm-1.59 4.09c.19.61.3 1.25.3 1.91 0 3.42-2.78 6.2-6.2 6.2-3.42 0-6.21-2.78-6.21-6.2 0-3.42 2.78-6.2 6.2-6.2 1.2 0 2.31.34 3.27.94l.94-.94A7.459 7.459 0 0 0 8.51 1C4.36 1 1 4.36 1 8.5 1 12.64 4.36 16 8.5 16c4.14 0 7.5-3.36 7.5-7.5 0-1.03-.2-2.02-.59-2.91l-1 1z\"/>"},"database":{"name":"database","figma":{"id":"0:190","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["disks","data"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 15c-3.31 0-6-.9-6-2v-2c0-.17.09-.34.21-.5.67.86 3 1.5 5.79 1.5s5.12-.64 5.79-1.5c.13.16.21.33.21.5v2c0 1.1-2.69 2-6 2zm0-4c-3.31 0-6-.9-6-2V7c0-.11.04-.21.09-.31.03-.06.07-.13.12-.19C.88 7.36 3.21 8 6 8s5.12-.64 5.79-1.5c.05.06.09.13.12.19.05.1.09.21.09.31v2c0 1.1-2.69 2-6 2zm0-4c-3.31 0-6-.9-6-2V4 3c0-1.1 2.69-2 6-2s6 .9 6 2v2c0 1.1-2.69 2-6 2zm0-5c-2.21 0-4 .45-4 1s1.79 1 4 1 4-.45 4-1-1.79-1-4-1z\"/>"},"desktop-download":{"name":"desktop-download","figma":{"id":"0:196","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["clone","download"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 6h3V0h2v6h3l-4 4-4-4zm11-4h-4v1h4v8H1V3h4V2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"/>"},"device-camera-video":{"name":"device-camera-video","figma":{"id":"0:198","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["watch","view","media","stream"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.2 2.091L10 5.721v-2.72c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-2.72l5.2 3.63c.33.23.8 0 .8-.41v-10c0-.41-.47-.64-.8-.41z\"/>"},"device-camera":{"name":"device-camera","figma":{"id":"0:202","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["photo","picture","image","snapshot"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15 3H7c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM6 5H2V4h4v1zm4.5 7C8.56 12 7 10.44 7 8.5S8.56 5 10.5 5 14 6.56 14 8.5 12.44 12 10.5 12zM13 8.5c0 1.38-1.13 2.5-2.5 2.5S8 9.87 8 8.5 9.13 6 10.5 6 13 7.13 13 8.5z\"/>"},"device-desktop":{"name":"device-desktop","figma":{"id":"0:208","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["computer","monitor"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15 2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 9H1V3h14v8z\"/>"},"device-mobile":{"name":"device-mobile","figma":{"id":"0:212","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["phone","iphone","cellphone"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 15.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zM9 12H1V2h8v10z\"/>"},"diff-added":{"name":"diff-added","figma":{"id":"0:217","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["new","addition","plus"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zM6 9H3V7h3V4h2v3h3v2H8v3H6V9z\"/>"},"diff-ignored":{"name":"diff-ignored","figma":{"id":"0:222","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["slash"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zm-8.5-2H3v-1.5L9.5 4H11v1.5L4.5 12z\"/>"},"diff-modified":{"name":"diff-modified","figma":{"id":"0:227","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["dot","changed","updated"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zM4 8c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3-3-1.34-3-3z\"/>"},"diff-removed":{"name":"diff-removed","figma":{"id":"0:232","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["deleted","subtracted","dash"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zm-2-5H3V7h8v2z\"/>"},"diff-renamed":{"name":"diff-renamed","figma":{"id":"0:237","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["moved","arrow"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 9H3V7h3V4l5 4-5 4V9zm8-7v12c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h12c.55 0 1 .45 1 1zm-1 0H1v12h12V2z\"/>"},"diff":{"name":"diff","figma":{"id":"0:242","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["difference","changes","compare"],"width":13,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 7h2v1H6v2H5V8H3V7h2V5h1v2zm-3 6h5v-1H3v1zM7.5 2L11 5.5V15c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h6.5zM10 6L7 3H1v12h9V6zM8.5 0H3v1h5l4 4v8h1V4.5L8.5 0z\"/>"},"ellipsis":{"name":"ellipsis","figma":{"id":"0:249","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["dot","read","more","hidden","expand"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11 5H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM4 9H2V7h2v2zm3 0H5V7h2v2zm3 0H8V7h2v2z\"/>"},"eye":{"name":"eye","figma":{"id":"0:255","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["look","watch","see"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z\"/>"},"file-binary":{"name":"file-binary","figma":{"id":"0:260","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["image","video","word","powerpoint","excel"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 12h1v1H2v-1h1v-2H2V9h2v3zm8-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5zM8 4H6v1h1v2H6v1h3V7H8V4zM2 4h3v4H2V4zm1 3h1V5H3v2zm3 2h3v4H6V9zm1 3h1v-2H7v2z\"/>"},"file-code":{"name":"file-code","figma":{"id":"0:270","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["text","javascript","html","css","php","ruby","coffeescript","sass","scss"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.5 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V4.5L8.5 1zM11 14H1V2h7l3 3v9zM5 6.98L3.5 8.5 5 10l-.5 1L2 8.5 4.5 6l.5.98zM7.5 6L10 8.5 7.5 11l-.5-.98L8.5 8.5 7 7l.5-1z\"/>"},"file-directory":{"name":"file-directory","figma":{"id":"0:276","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["folder"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z\"/>"},"file-media":{"name":"file-media","figma":{"id":"0:280","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["image","video","audio"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 5h2v2H6V5zm6-.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v11l3-5 2 4 2-2 3 3V5z\"/>"},"file-pdf":{"name":"file-pdf","figma":{"id":"0:285","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["adobe"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.5 1H1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V4.5L8.5 1zM1 2h4a.68.68 0 0 0-.31.2 1.08 1.08 0 0 0-.23.47 4.22 4.22 0 0 0-.09 1.47c.06.609.173 1.211.34 1.8A21.78 21.78 0 0 1 3.6 8.6c-.5 1-.8 1.66-.91 1.84a7.161 7.161 0 0 0-.69.3 4.19 4.19 0 0 0-1 .64V2zm4.42 4.8a5.65 5.65 0 0 0 1.17 2.09c.275.237.595.417.94.53-.64.09-1.23.2-1.81.33a12.22 12.22 0 0 0-1.81.59c-.587.243.22-.44.61-1.25.365-.74.67-1.51.91-2.3l-.01.01zM11 14H1.5a.743.743 0 0 1-.17 0 2.12 2.12 0 0 0 .73-.44 10.14 10.14 0 0 0 1.78-2.38c.31-.13.58-.23.81-.31l.42-.14c.45-.13.94-.23 1.44-.33s1-.16 1.48-.2c.447.216.912.394 1.39.53.403.11.814.188 1.23.23h.38V14H11zm0-4.86a3.74 3.74 0 0 0-.64-.28 4.22 4.22 0 0 0-.75-.11c-.411.003-.822.03-1.23.08a3 3 0 0 1-1-.64 6.07 6.07 0 0 1-1.29-2.33c.111-.662.178-1.33.2-2 .02-.25.02-.5 0-.75a1.05 1.05 0 0 0-.2-.88.82.82 0 0 0-.61-.23H8l3 3v4.14z\"/>"},"file-submodule":{"name":"file-submodule","figma":{"id":"0:292","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["folder"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 7H4v7h9c.55 0 1-.45 1-1V8h-4V7zM9 9H5V8h4v1zm4-5H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h2V7c0-.55.45-1 1-1h6c.55 0 1 .45 1 1h3V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z\"/>"},"file-symlink-directory":{"name":"file-symlink-directory","figma":{"id":"0:298","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["folder","subfolder","link","alias"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM1 3h5v1H1V3zm6 9v-2c-.98-.02-1.84.22-2.55.7-.71.48-1.19 1.25-1.45 2.3.02-1.64.39-2.88 1.13-3.73C4.86 8.43 5.82 8 7.01 8V6l4 3-4 3H7z\"/>"},"file-symlink-file":{"name":"file-symlink-file","figma":{"id":"0:303","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["link","alias"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.5 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V4.5L8.5 1zM11 14H1V2h7l3 3v9zM6 4.5l4 3-4 3v-2c-.98-.02-1.84.22-2.55.7-.71.48-1.19 1.25-1.45 2.3.02-1.64.39-2.88 1.13-3.73.73-.84 1.69-1.27 2.88-1.27v-2H6z\"/>"},"file":{"name":"file","figma":{"id":"0:308","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["file","text","words"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z\"/>"},"file-zip":{"name":"file-zip","figma":{"id":"0:316","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["compress","archive"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.5 1H1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 0 0 3 11v1h4v-1a2 2 0 0 0-2-2V8H4v1.28zM6 10v1H4v-1h2z\"/>"},"flame":{"name":"flame","figma":{"id":"0:325","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["fire","hot","burn","trending"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M5.05.01c.81 2.17.41 3.38-.52 4.31C3.55 5.37 1.98 6.15.9 7.68c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.01 8.68 2.15 5.05.02L5.03 0l.02.01z\"/>"},"fold":{"name":"fold","figma":{"id":"0:329","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["unfold","hide","collapse"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z\"/>"},"gear":{"name":"gear","figma":{"id":"0:334","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["settings"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 8.76v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45L7.77 1h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.22v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.74v.02zm-7 2.23c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"/>"},"gift":{"name":"gift","figma":{"id":"0:338","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["package","present","skill","craft","freebie"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13.02 4h-1.38c.19-.33.33-.67.36-.91.06-.67-.11-1.22-.52-1.61-.36-.38-.81-.48-1.36-.48h-.11c-.53.02-1.11.25-1.53.58-.42.33-.73.72-.97 1.2-.23-.48-.55-.88-.97-1.2-.42-.32-1-.58-1.53-.58h-.03c-.56 0-1.06.09-1.44.48-.41.39-.58.94-.52 1.61.03.23.17.58.36.91H2c-.55 0-1 .45-1 1v3h1v5c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8h1V5c0-.55-.45-1-1-1h.02zm-4.78-.88c.17-.36.42-.67.75-.92.3-.23.72-.39 1.05-.41h.09c.45 0 .66.11.8.25s.33.39.3.95c-.05.19-.25.61-.5 1h-2.9l.41-.88v.01zM4.11 2.04c.13-.13.31-.25.91-.25.31 0 .72.17 1.03.41.33.25.58.55.75.92l.42.88h-2.9c-.25-.39-.45-.81-.5-1-.03-.56.16-.81.3-.95l-.01-.01zm2.91 10.95h-4V8h4v5-.01zm0-6h-5V5h5v2-.01zm5 6h-4V8h4v5-.01zm1-6h-5V5h5v2-.01z\"/>"},"gist-secret":{"name":"gist-secret","figma":{"id":"0:347","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["gist","secret","private"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.782 10.5l1 3.5h-4l1-3.5-.75-1.5h3.5l-.75 1.5zm2-4.5h-6l-2 1h10l-2-1zm-1-4l-2 1-2-1-1 3h6l-1-3zm4.03 7.75L9.782 9l1 2-2 3h3.22c.45 0 .86-.31.97-.75l.56-2.28c.14-.53-.19-1.08-.72-1.22zM3.782 9l-3.03.75c-.53.14-.86.69-.72 1.22l.56 2.28c.11.44.52.75.97.75h3.22l-2-3 1-2z\"/>"},"gist":{"name":"gist","figma":{"id":"0:354","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["gist","github"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.5 5L10 7.5 7.5 10l-.75-.75L8.5 7.5 6.75 5.75 7.5 5zm-3 0L2 7.5 4.5 10l.75-.75L3.5 7.5l1.75-1.75L4.5 5zM0 13V2c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v11c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1zm1 0h10V2H1v11z\"/>"},"git-branch":{"name":"git-branch","figma":{"id":"0:360","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["fork","branch","git","duplicate"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 5c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v.3c-.02.52-.23.98-.63 1.38-.4.4-.86.61-1.38.63-.83.02-1.48.16-2 .45V4.72a1.993 1.993 0 0 0-1-3.72C.88 1 0 1.89 0 3a2 2 0 0 0 1 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2 1.11 0 2-.89 2-2 0-.53-.2-1-.53-1.36.09-.06.48-.41.59-.47.25-.11.56-.17.94-.17 1.05-.05 1.95-.45 2.75-1.25S8.95 7.77 9 6.73h-.02C9.59 6.37 10 5.73 10 5zM2 1.8c.66 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2C1.35 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2zm0 12.41c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm6-8c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/>"},"git-commit":{"name":"git-commit","figma":{"id":"0:366","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["save"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z\"/>"},"git-compare":{"name":"git-compare","figma":{"id":"0:370","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["difference","changes"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M5 12H4c-.27-.02-.48-.11-.69-.31-.21-.2-.3-.42-.31-.69V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V11c.03.78.34 1.47.94 2.06.6.59 1.28.91 2.06.94h1v2l3-3-3-3v2zM2 1.8c.66 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2C1.35 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2zm11 9.48V5c-.03-.78-.34-1.47-.94-2.06-.6-.59-1.28-.91-2.06-.94H9V0L6 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 12 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/>"},"git-merge":{"name":"git-merge","figma":{"id":"0:376","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["join"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 7.01c-.73 0-1.38.41-1.73 1.02v-.02C7.22 7.99 6 7.65 5.14 6.99c-.75-.58-1.5-1.61-1.89-2.44A1.993 1.993 0 0 0 2 1C.89 1 0 1.9 0 3.01a2 2 0 0 0 1 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2a1.993 1.993 0 0 0 1-3.72V7.68c.67.7 1.44 1.27 2.3 1.69.86.42 2.03.63 2.97.64v-.02c.36.61 1 1.02 1.73 1.02 1.11 0 2-.89 2-2 0-1.11-.89-2-2-2zm-6.8 6c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.21c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm8 6c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/>"},"git-pull-request":{"name":"git-pull-request","figma":{"id":"0:382","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["review"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/>"},"globe":{"name":"globe","figma":{"id":"0:389","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["world","earth","planet"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 1C3.14 1 0 4.14 0 8s3.14 7 7 7c.48 0 .94-.05 1.38-.14-.17-.08-.2-.73-.02-1.09.19-.41.81-1.45.2-1.8-.61-.35-.44-.5-.81-.91-.37-.41-.22-.47-.25-.58-.08-.34.36-.89.39-.94.02-.06.02-.27 0-.33 0-.08-.27-.22-.34-.23-.06 0-.11.11-.2.13-.09.02-.5-.25-.59-.33-.09-.08-.14-.23-.27-.34-.13-.13-.14-.03-.33-.11s-.8-.31-1.28-.48c-.48-.19-.52-.47-.52-.66-.02-.2-.3-.47-.42-.67-.14-.2-.16-.47-.2-.41-.04.06.25.78.2.81-.05.02-.16-.2-.3-.38-.14-.19.14-.09-.3-.95s.14-1.3.17-1.75c.03-.45.38.17.19-.13-.19-.3 0-.89-.14-1.11-.13-.22-.88.25-.88.25.02-.22.69-.58 1.16-.92.47-.34.78-.06 1.16.05.39.13.41.09.28-.05-.13-.13.06-.17.36-.13.28.05.38.41.83.36.47-.03.05.09.11.22s-.06.11-.38.3c-.3.2.02.22.55.61s.38-.25.31-.55c-.07-.3.39-.06.39-.06.33.22.27.02.5.08.23.06.91.64.91.64-.83.44-.31.48-.17.59.14.11-.28.3-.28.3-.17-.17-.19.02-.3.08-.11.06-.02.22-.02.22-.56.09-.44.69-.42.83 0 .14-.38.36-.47.58-.09.2.25.64.06.66-.19.03-.34-.66-1.31-.41-.3.08-.94.41-.59 1.08.36.69.92-.19 1.11-.09.19.1-.06.53-.02.55.04.02.53.02.56.61.03.59.77.53.92.55.17 0 .7-.44.77-.45.06-.03.38-.28 1.03.09.66.36.98.31 1.2.47.22.16.08.47.28.58.2.11 1.06-.03 1.28.31.22.34-.88 2.09-1.22 2.28-.34.19-.48.64-.84.92s-.81.64-1.27.91c-.41.23-.47.66-.66.8 3.14-.7 5.48-3.5 5.48-6.84 0-3.86-3.14-7-7-7L7 1zm1.64 6.56c-.09.03-.28.22-.78-.08-.48-.3-.81-.23-.86-.28 0 0-.05-.11.17-.14.44-.05.98.41 1.11.41.13 0 .19-.13.41-.05.22.08.05.13-.05.14zM6.34 1.7c-.05-.03.03-.08.09-.14.03-.03.02-.11.05-.14.11-.11.61-.25.52.03-.11.27-.58.3-.66.25zm1.23.89c-.19-.02-.58-.05-.52-.14.3-.28-.09-.38-.34-.38-.25-.02-.34-.16-.22-.19.12-.03.61.02.7.08.08.06.52.25.55.38.02.13 0 .25-.17.25zm1.47-.05c-.14.09-.83-.41-.95-.52-.56-.48-.89-.31-1-.41-.11-.1-.08-.19.11-.34.19-.15.69.06 1 .09.3.03.66.27.66.55.02.25.33.5.19.63h-.01z\"/>"},"graph":{"name":"graph","figma":{"id":"0:396","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["trend","stats","statistics"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z\"/>"},"heart":{"name":"heart","figma":{"id":"0:400","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["love","beat"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11.2 3c-.52-.63-1.25-.95-2.2-1-.97 0-1.69.42-2.2 1-.51.58-.78.92-.8 1-.02-.08-.28-.42-.8-1-.52-.58-1.17-1-2.2-1-.95.05-1.69.38-2.2 1-.52.61-.78 1.28-.8 2 0 .52.09 1.52.67 2.67C1.25 8.82 3.01 10.61 6 13c2.98-2.39 4.77-4.17 5.34-5.33C11.91 6.51 12 5.5 12 5c-.02-.72-.28-1.39-.8-2.02V3z\"/>"},"history":{"name":"history","figma":{"id":"0:404","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["time","past","revert","back"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 13H6V6h5v2H8v5zM7 1C4.81 1 2.87 2.02 1.59 3.59L0 2v4h4L2.5 4.5C3.55 3.17 5.17 2.3 7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-.34.03-.67.09-1H.08C.03 7.33 0 7.66 0 8c0 3.86 3.14 7 7 7s7-3.14 7-7-3.14-7-7-7z\"/>"},"home":{"name":"home","figma":{"id":"0:408","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["welcome","index","house","building"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M16 9l-3-3V2h-2v2L8 1 0 9h2l1 5c0 .55.45 1 1 1h8c.55 0 1-.45 1-1l1-5h2zm-4 5H9v-4H7v4H4L2.81 7.69 8 2.5l5.19 5.19L12 14z\"/>"},"horizontal-rule":{"name":"horizontal-rule","figma":{"id":"0:412","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["hr"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M1 7h2v2h1V3H3v3H1V3H0v6h1V7zm9 2V7H9v2h1zm0-3V4H9v2h1zM7 6V4h2V3H6v6h1V7h2V6H7zm-7 7h10v-2H0v2z\"/>"},"hubot":{"name":"hubot","figma":{"id":"0:419","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["robot","bot"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M3 6c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H3zm8 1.75L9.75 9h-1.5L7 7.75 5.75 9h-1.5L3 7.75V7h.75L5 8.25 6.25 7h1.5L9 8.25 10.25 7H11v.75zM5 11h4v1H5v-1zm2-9C3.14 2 0 4.91 0 8.5V13c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V8.5C14 4.91 10.86 2 7 2zm6 11H1V8.5c0-3.09 2.64-5.59 6-5.59s6 2.5 6 5.59V13z\"/>"},"inbox":{"name":"inbox","figma":{"id":"0:426","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["mail","todo","new","messages"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 9l-1.13-7.14c-.08-.48-.5-.86-1-.86H2.13c-.5 0-.92.38-1 .86L0 9v5c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V9zm-3.28.55l-.44.89c-.17.34-.52.56-.91.56H4.61c-.38 0-.72-.22-.89-.55l-.44-.91c-.17-.33-.52-.55-.89-.55H1l1-7h10l1 7h-1.38c-.39 0-.73.22-.91.55l.01.01z\"/>"},"info":{"name":"info","figma":{"id":"0:430","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["help"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6.3 5.71a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 8.01c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V8v.01zM7 2.32C3.86 2.32 1.3 4.86 1.3 8c0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 1c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z\"/>"},"issue-closed":{"name":"issue-closed","figma":{"id":"0:436","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["done","complete"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 10h2v2H7v-2zm2-6H7v5h2V4zm1.5 1.5l-1 1L12 9l4-4.5-1-1L12 7l-1.5-1.5zM8 13.7A5.71 5.71 0 0 1 2.3 8c0-3.14 2.56-5.7 5.7-5.7 1.83 0 3.45.88 4.5 2.2l.92-.92A6.947 6.947 0 0 0 8 1C4.14 1 1 4.14 1 8s3.14 7 7 7 7-3.14 7-7l-1.52 1.52c-.66 2.41-2.86 4.19-5.48 4.19v-.01z\"/>"},"issue-opened":{"name":"issue-opened","figma":{"id":"0:442","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["new"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z\"/>"},"issue-reopened":{"name":"issue-reopened","figma":{"id":"0:448","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["regression"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 9H6V4h2v5zm-2 3h2v-2H6v2zm6.33-2H10l1.5 1.5c-1.05 1.33-2.67 2.2-4.5 2.2A5.71 5.71 0 0 1 1.3 8c0-.34.03-.67.09-1H.08C.03 7.33 0 7.66 0 8c0 3.86 3.14 7 7 7 2.19 0 4.13-1.02 5.41-2.59L14 14v-4h-1.67zM1.67 6H4L2.5 4.5C3.55 3.17 5.17 2.3 7 2.3c3.14 0 5.7 2.56 5.7 5.7 0 .34-.03.67-.09 1h1.31c.05-.33.08-.66.08-1 0-3.86-3.14-7-7-7-2.19 0-4.13 1.02-5.41 2.59L0 2v4h1.67z\"/>"},"italic":{"name":"italic","figma":{"id":"0:454","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["font","italic","style"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z\"/>"},"jersey":{"name":"jersey","figma":{"id":"0:458","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["team","game","basketball"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4.5 6l-.5.5v5l.5.5h2l.5-.5v-5L6.5 6h-2zM6 11H5V7h1v4zm6.27-7.25C12.05 2.37 11.96 1.12 12 0H9.02c0 .27-.13.48-.39.69-.25.2-.63.3-1.13.3-.5 0-.88-.09-1.13-.3-.23-.2-.36-.42-.36-.69H3c.05 1.13-.03 2.38-.25 3.75C2.55 5.13 1.95 5.88 1 6v9c.02.27.11.48.31.69.2.21.42.3.69.31h11c.27-.02.48-.11.69-.31.21-.2.3-.42.31-.69V6c-.95-.13-1.53-.88-1.75-2.25h.02zM13 15H2V7c.89-.5 1.48-1.25 1.72-2.25S4.03 2.5 4 1h1c-.02.78.16 1.47.52 2.06.36.58 1.02.89 2 .94.98-.02 1.64-.33 2-.94.36-.59.5-1.28.48-2.06h1c.02 1.42.13 2.55.33 3.38.2.81.69 2 1.67 2.63v8V15zM8.5 6l-.5.5v5l.5.5h2l.5-.5v-5l-.5-.5h-2zm1.5 5H9V7h1v4z\"/>"},"keyboard":{"name":"keyboard","figma":{"id":"0:466","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["type","keys","write","shortcuts"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 5H9V4h1v1zM3 6H2v1h1V6zm5-2H7v1h1V4zM4 4H2v1h2V4zm8 7h2v-1h-2v1zM8 7h1V6H8v1zm-4 3H2v1h2v-1zm8-6h-1v1h1V4zm2 0h-1v1h1V4zm-2 5h2V6h-2v3zm4-6v9c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h14c.55 0 1 .45 1 1zm-1 0H1v9h14V3zM6 7h1V6H6v1zm0-3H5v1h1V4zM4 7h1V6H4v1zm1 4h6v-1H5v1zm5-4h1V6h-1v1zM3 8H2v1h1V8zm5 0v1h1V8H8zM6 8v1h1V8H6zM5 8H4v1h1V8zm5 1h1V8h-1v1z\"/>"},"law":{"name":"law","figma":{"id":"0:490","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["legal","bill"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 4c-.83 0-1.5-.67-1.5-1.5S6.17 1 7 1s1.5.67 1.5 1.5S7.83 4 7 4zm7 6c0 1.11-.89 2-2 2h-1c-1.11 0-2-.89-2-2l2-4h-1c-.55 0-1-.45-1-1H8v8c.42 0 1 .45 1 1h1c.42 0 1 .45 1 1H3c0-.55.58-1 1-1h1c0-.55.58-1 1-1h.03L6 5H5c0 .55-.45 1-1 1H3l2 4c0 1.11-.89 2-2 2H2c-1.11 0-2-.89-2-2l2-4H1V5h3c0-.55.45-1 1-1h4c.55 0 1 .45 1 1h3v1h-1l2 4zM2.5 7L1 10h3L2.5 7zM13 10l-1.5-3-1.5 3h3z\"/>"},"link":{"name":"link","figma":{"id":"0:496","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["connect","hyperlink"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/>"},"list-ordered":{"name":"list-ordered","figma":{"id":"0:500","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["numbers","tasks","todo","items"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.25 8.13c-.17 0-.45.03-.66.06.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3l-.09-.88h-.66l.01.01zm-.08 3.78v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z\"/>"},"list-unordered":{"name":"list-unordered","figma":{"id":"0:508","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["bullet","point","tasks","todo","items"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z\"/>"},"location":{"name":"location","figma":{"id":"0:516","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["here","marker"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 0C2.69 0 0 2.5 0 5.5 0 10.02 6 16 6 16s6-5.98 6-10.5C12 2.5 9.31 0 6 0zm0 14.55C4.14 12.52 1 8.44 1 5.5 1 3.02 3.25 1 6 1c1.34 0 2.61.48 3.56 1.36.92.86 1.44 1.97 1.44 3.14 0 2.94-3.14 7.02-5 9.05zM8 5.5c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z\"/>"},"lock":{"name":"lock","figma":{"id":"0:521","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["secure","safe","protected"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 13H3v-1h1v1zm8-6v7c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h1V4c0-2.2 1.8-4 4-4s4 1.8 4 4v2h1c.55 0 1 .45 1 1zM3.8 6h4.41V4c0-1.22-.98-2.2-2.2-2.2-1.22 0-2.2.98-2.2 2.2v2H3.8zM11 7H2v7h9V7zM4 8H3v1h1V8zm0 2H3v1h1v-1z\"/>"},"logo-gist":{"name":"logo-gist","figma":{"id":"0:529","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["brand","github","logo"],"width":25,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4.7 8.73h2.45v4.02c-.55.27-1.64.34-2.53.34-2.56 0-3.47-2.2-3.47-5.05 0-2.85.91-5.06 3.48-5.06 1.28 0 2.06.23 3.28.73V2.66C7.27 2.33 6.25 2 4.63 2 1.13 2 0 4.69 0 8.03c0 3.34 1.11 6.03 4.63 6.03 1.64 0 2.81-.27 3.59-.64V7.73H4.7v1zm6.39 3.72V6.06h-1.05v6.28c0 1.25.58 1.72 1.72 1.72v-.89c-.48 0-.67-.16-.67-.7v-.02zm.25-8.72c0-.44-.33-.78-.78-.78s-.77.34-.77.78.33.78.77.78.78-.34.78-.78zm4.34 5.69c-1.5-.13-1.78-.48-1.78-1.17 0-.77.33-1.34 1.88-1.34 1.05 0 1.66.16 2.27.36v-.94c-.69-.3-1.52-.39-2.25-.39-2.2 0-2.92 1.2-2.92 2.31 0 1.08.47 1.88 2.73 2.08 1.55.13 1.77.63 1.77 1.34 0 .73-.44 1.42-2.06 1.42-1.11 0-1.86-.19-2.33-.36v.94c.5.2 1.58.39 2.33.39 2.38 0 3.14-1.2 3.14-2.41 0-1.28-.53-2.03-2.75-2.23h-.03zm8.58-2.47v-.86h-2.42v-2.5l-1.08.31v2.11l-1.56.44v.48h1.56v5c0 1.53 1.19 2.13 2.5 2.13.19 0 .52-.02.69-.05v-.89c-.19.03-.41.03-.61.03-.97 0-1.5-.39-1.5-1.34V6.94h2.42v.02-.01z\"/>"},"logo-github":{"name":"logo-github","figma":{"id":"0:536","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["brand","github","logo"],"width":45,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M18.53 12.03h-.02c.009 0 .015.01.024.011h.006l-.01-.01zm.004.011c-.093.001-.327.05-.574.05-.78 0-1.05-.36-1.05-.83V8.13h1.59c.09 0 .16-.08.16-.19v-1.7c0-.09-.08-.17-.16-.17h-1.59V3.96c0-.08-.05-.13-.14-.13h-2.16c-.09 0-.14.05-.14.13v2.17s-1.09.27-1.16.28c-.08.02-.13.09-.13.17v1.36c0 .11.08.19.17.19h1.11v3.28c0 2.44 1.7 2.69 2.86 2.69.53 0 1.17-.17 1.27-.22.06-.02.09-.09.09-.16v-1.5a.177.177 0 0 0-.146-.18zm23.696-2.2c0-1.81-.73-2.05-1.5-1.97-.6.04-1.08.34-1.08.34v3.52s.49.34 1.22.36c1.03.03 1.36-.34 1.36-2.25zm2.43-.16c0 3.43-1.11 4.41-3.05 4.41-1.64 0-2.52-.83-2.52-.83s-.04.46-.09.52c-.03.06-.08.08-.14.08h-1.48c-.1 0-.19-.08-.19-.17l.02-11.11c0-.09.08-.17.17-.17h2.13c.09 0 .17.08.17.17v3.77s.82-.53 2.02-.53l-.01-.02c1.2 0 2.97.45 2.97 3.88zm-8.72-3.61H33.84c-.11 0-.17.08-.17.19v5.44s-.55.39-1.3.39-.97-.34-.97-1.09V6.25c0-.09-.08-.17-.17-.17h-2.14c-.09 0-.17.08-.17.17v5.11c0 2.2 1.23 2.75 2.92 2.75 1.39 0 2.52-.77 2.52-.77s.05.39.08.45c.02.05.09.09.16.09h1.34c.11 0 .17-.08.17-.17l.02-7.47c0-.09-.08-.17-.19-.17zm-23.7-.01h-2.13c-.09 0-.17.09-.17.2v7.34c0 .2.13.27.3.27h1.92c.2 0 .25-.09.25-.27V6.23c0-.09-.08-.17-.17-.17zm-1.05-3.38c-.77 0-1.38.61-1.38 1.38 0 .77.61 1.38 1.38 1.38.75 0 1.36-.61 1.36-1.38 0-.77-.61-1.38-1.36-1.38zm16.49-.25h-2.11c-.09 0-.17.08-.17.17v4.09h-3.31V2.6c0-.09-.08-.17-.17-.17h-2.13c-.09 0-.17.08-.17.17v11.11c0 .09.09.17.17.17h2.13c.09 0 .17-.08.17-.17V8.96h3.31l-.02 4.75c0 .09.08.17.17.17h2.13c.09 0 .17-.08.17-.17V2.6c0-.09-.08-.17-.17-.17zM8.81 7.35v5.74c0 .04-.01.11-.06.13 0 0-1.25.89-3.31.89-2.49 0-5.44-.78-5.44-5.92S2.58 1.99 5.1 2c2.18 0 3.06.49 3.2.58.04.05.06.09.06.14L7.94 4.5c0 .09-.09.2-.2.17-.36-.11-.9-.33-2.17-.33-1.47 0-3.05.42-3.05 3.73s1.5 3.7 2.58 3.7c.92 0 1.25-.11 1.25-.11v-2.3H4.88c-.11 0-.19-.08-.19-.17V7.35c0-.09.08-.17.19-.17h3.74c.11 0 .19.08.19.17z\"/>"},"mail-read":{"name":"mail-read","figma":{"id":"0:547","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["email","open"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 5H4V4h2v1zm3 1H4v1h5V6zm5-.48V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V5.52c0-.33.16-.63.42-.81L2 3.58V3c0-.55.45-1 1-1h1.2L7 0l2.8 2H11c.55 0 1 .45 1 1v.58l1.58 1.13c.27.19.42.48.42.81zM3 7.5L7 10l4-2.5V3H3v4.5zm-2 6l4.5-3-4.5-3v6zm11 .5l-5-3-5 3h10zm1-6.5l-4.5 3 4.5 3v-6z\"/>"},"reply":{"name":"reply","figma":{"id":"0:554","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["reply all","back"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6.5 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L1 5.5 6.5 0v3.5z\"/>"},"mail":{"name":"mail","figma":{"id":"0:558","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["email","unread"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 4v8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1zm13 0L7 9 1 4h12zM1 5.5l4 3-4 3v-6zM2 12l3.5-3L7 10.5 8.5 9l3.5 3H2zm11-.5l-4-3 4-3v6z\"/>"},"mark-github":{"name":"mark-github","figma":{"id":"0:563","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["octocat","brand","github","logo"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z\"/>"},"markdown":{"name":"markdown","figma":{"id":"0:567","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["markup","style"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z\"/>"},"megaphone":{"name":"megaphone","figma":{"id":"0:572","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["bullhorn","loud","shout","broadcast"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 1c-.17 0-.36.05-.52.14C8.04 2.02 4.5 4.58 3 5c-1.38 0-3 .67-3 2.5S1.63 10 3 10c.3.08.64.23 1 .41V15h2v-3.45c1.34.86 2.69 1.83 3.48 2.31.16.09.34.14.52.14.52 0 1-.42 1-1V2c0-.58-.48-1-1-1zm0 12c-.38-.23-.89-.58-1.5-1-.16-.11-.33-.22-.5-.34V3.31c.16-.11.31-.2.47-.31.61-.41 1.16-.77 1.53-1v11zm2-6h4v1h-4V7zm0 2l4 2v1l-4-2V9zm4-6v1l-4 2V5l4-2z\"/>"},"mention":{"name":"mention","figma":{"id":"0:579","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["at","ping"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z\"/>"},"milestone":{"name":"milestone","figma":{"id":"0:583","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["marker"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 2H6V0h2v2zm4 5H2c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h10l2 2-2 2zM8 4H6v2h2V4zM6 16h2V8H6v8z\"/>"},"mirror":{"name":"mirror","figma":{"id":"0:589","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["reflect"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.5 4.7L8.5 0l-7 4.7c-.3.19-.5.45-.5.8V16l7.5-4 7.5 4V5.5c0-.34-.2-.61-.5-.8zm-.5 9.8l-6-3.25V10H8v1.25L2 14.5v-9l6-4V6h1V1.5l6 4v9zM6 7h5V5l3 3-3 3V9H6v2L3 8l3-3v2z\"/>"},"mortar-board":{"name":"mortar-board","figma":{"id":"0:594","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["education","learn","teach"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.808 9.405l-3.83-1.19c-4-8 0 1.5 0 2.5s1.8 1.5 4 1.5 4-.5 4-1.5v-2.5l-3.83 1.19a.73.73 0 0 1-.36 0h.02zm.28-6.39a.34.34 0 0 0-.2 0l-7.64 2.38a.35.35 0 0 0 0 .67l1.73.55v1.77c-.3.17-.5.5-.5.86 0 .19.05.36.14.5-.08.14-.14.31-.14.5v2.58c0 .55 2 .55 2 0v-2.58c0-.19-.05-.36-.14-.5.08-.14.14-.31.14-.5 0-.38-.2-.69-.5-.86v-1.45l4.89 1.53c.06.02.14.02.2 0l7.64-2.38a.35.35 0 0 0 0-.67l-7.63-2.39.01-.01zm-.09 3.2c-.55 0-1-.22-1-.5s.45-.5 1-.5 1 .22 1 .5-.45.5-1 .5z\"/>"},"mute":{"name":"mute","figma":{"id":"0:599","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["quiet","sound","audio","turn","off"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 2.75v10.38c0 .67-.81 1-1.28.53L3 9.94H1c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.75 8 2.08 8 2.75zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06 1.97 1.97-1.97 1.97 1.06 1.06L12.5 9l1.97 1.97 1.06-1.06-1.97-1.97 1.97-1.97z\"/>"},"no-newline":{"name":"no-newline","figma":{"id":"0:603","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["return"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M16 5v3c0 .55-.45 1-1 1h-3v2L9 8l3-3v2h2V5h2zM8 8c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4zM1.5 9.66L5.66 5.5C5.18 5.19 4.61 5 4 5 2.34 5 1 6.34 1 8c0 .61.19 1.17.5 1.66zM7 8c0-.61-.19-1.17-.5-1.66L2.34 10.5c.48.31 1.05.5 1.66.5 1.66 0 3-1.34 3-3z\"/>"},"octoface":{"name":"octoface","figma":{"id":"0:609","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["octocat","brand"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z\"/>"},"organization":{"name":"organization","figma":{"id":"0:613","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["people","group","team"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M16 12.999c0 .439-.45 1-1 1H7.995c-.539 0-.994-.447-.995-.999H1c-.54 0-1-.561-1-1 0-2.634 3-4 3-4s.229-.409 0-1c-.841-.621-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.442.58 2.5 3c.058 2.41-.159 2.379-1 3-.229.59 0 1 0 1s1.549.711 2.42 2.088A6.78 6.78 0 0 1 10 8.999s.229-.409 0-1c-.841-.62-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.437.581 2.495 3c.059 2.41-.158 2.38-1 3-.229.59 0 1 0 1s3.005 1.366 3.005 4z\"/>"},"package":{"name":"package","figma":{"id":"0:617","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["box","ship"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M1 4.732v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97v-7.47c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 0 0-.5 0l-6.5 1.74c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59v-6.77l6 1.61v6.75zm-6-9.36l2.5-.67 6.5 1.73-2.5.67L2 4.463zm13 7.77l-6 1.59v-6.75l2-.55v2.44l2-.53v-2.44l2-.53v6.77zm-2-7.24l-6.5-1.73 2-.53 6.5 1.73-2 .53z\"/>"},"paintcan":{"name":"paintcan","figma":{"id":"0:624","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["style","theme","art","color"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 0C2.69 0 0 2.69 0 6v1c0 .55.45 1 1 1v5c0 1.1 2.24 2 5 2s5-.9 5-2V8c.55 0 1-.45 1-1V6c0-3.31-2.69-6-6-6zm3 10v.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5V10c0-.28-.22-.5-.5-.5s-.5.22-.5.5v2.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-2c0-.28-.22-.5-.5-.5s-.5.22-.5.5v.5c0 .55-.45 1-1 1s-1-.45-1-1v-1c-.55 0-1-.45-1-1V7.2c.91.49 2.36.8 4 .8 1.64 0 3.09-.31 4-.8V9c0 .55-.45 1-1 1zM6 7c-1.68 0-3.12-.41-3.71-1C2.88 5.41 4.32 5 6 5c1.68 0 3.12.41 3.71 1-.59.59-2.03 1-3.71 1zm0-3c-2.76 0-5 .89-5 2 0-2.76 2.24-5 5-5s5 2.24 5 5c0-1.1-2.24-2-5-2z\"/>"},"pencil":{"name":"pencil","figma":{"id":"0:630","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["edit","change","update","write"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 11.592v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3l-1.3 1.3-3-3 1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z\"/>"},"person":{"name":"person","figma":{"id":"0:633","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["people","man","woman","human"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 14.002a.998.998 0 0 1-.998.998H1.001A1 1 0 0 1 0 13.999V13c0-2.633 4-4 4-4s.229-.409 0-1c-.841-.62-.944-1.59-1-4 .173-2.413 1.867-3 3-3s2.827.586 3 3c-.056 2.41-.159 3.38-1 4-.229.59 0 1 0 1s4 1.367 4 4v1.002z\"/>"},"pin":{"name":"pin","figma":{"id":"0:635","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["save","star","bookmark"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 1.494v.8l.5 1-4.5 3H2.2c-.44 0-.67.53-.34.86L5 10.294l-4 5 5-4 3.14 3.14a.5.5 0 0 0 .86-.34v-3.8l3-4.5 1 .5h.8c.44 0 .67-.53.34-.86l-4.28-4.28a.5.5 0 0 0-.86.34z\"/>"},"plug":{"name":"plug","figma":{"id":"0:637","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["hook","webhook"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 6V5h-4V3H8v1H6c-1.03 0-1.77.81-2 2L3 7c-1.66 0-3 1.34-3 3v2h1v-2c0-1.11.89-2 2-2l1 1c.25 1.16.98 2 2 2h2v1h2v-2h4V9h-4V6h4z\"/>"},"plus":{"name":"plus","figma":{"id":"0:639","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["add","new","more"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 9H7v5H5V9H0V7h5V2h2v5h5v2z\"/>"},"primitive-dot":{"name":"primitive-dot","figma":{"id":"0:641","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["circle"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 8c0-2.2 1.8-4 4-4s4 1.8 4 4-1.8 4-4 4-4-1.8-4-4z\"/>"},"primitive-square":{"name":"primitive-square","figma":{"id":"0:643","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["box"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 12H0V4h8v8z\"/>"},"pulse":{"name":"pulse","figma":{"id":"0:645","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["graph","trend","line","activity"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11.5 8.4L8.8 5.8 6.6 8.9 5.5 2 2.38 8.4H0v2h3.6l.9-1.8.9 5.4L9 8.9l1.6 1.5H14v-2h-2.5z\"/>"},"question":{"name":"question","figma":{"id":"0:649","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["help","explain"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 10h2v2H6v-2zm4-3.5C10 8.64 8 9 8 9H6c0-.55.45-1 1-1h.5c.28 0 .5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7H4c0-1.5 1.5-3 3-3s3 1 3 2.5zM7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7z\"/>"},"quote":{"name":"quote","figma":{"id":"0:655","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["quotation"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6.16 3.84C3.73 5.4 2.55 7.01 2.55 9.7c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25C0 6.62 1.75 3.89 5.02 2l1.14 1.84zm7 0C10.73 5.4 9.55 7.01 9.55 9.7c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z\"/>"},"radio-tower":{"name":"radio-tower","figma":{"id":"0:659","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["broadcast"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4.78 5.78c.25-.25.25-.67 0-.92-.32-.33-.48-.76-.48-1.19 0-.43.16-.86.48-1.19.25-.26.25-.67 0-.92a.613.613 0 0 0-.45-.19c-.16 0-.33.06-.45.19-.57.58-.85 1.35-.85 2.11 0 .76.29 1.53.85 2.11.25.25.66.25.9 0zM2.32.19a.651.651 0 0 0-.92 0C.47 1.15 0 2.41 0 3.66c0 1.26.47 2.52 1.4 3.48.25.26.66.26.91 0s.25-.68 0-.94c-.68-.7-1.02-1.62-1.02-2.54 0-.92.34-1.84 1.02-2.54a.66.66 0 0 0 .01-.93zm5.69 5.1a1.62 1.62 0 1 0-1.62-1.62c-.01.89.72 1.62 1.62 1.62zM14.58.2a.628.628 0 0 0-.91 0c-.25.26-.25.68 0 .94.68.7 1.02 1.62 1.02 2.54 0 .92-.34 1.83-1.02 2.54-.25.26-.25.68 0 .94a.651.651 0 0 0 .92 0c.93-.96 1.4-2.22 1.4-3.48A5.048 5.048 0 0 0 14.58.2zM8.01 6.59c-.41 0-.83-.1-1.2-.3l-3.15 8.37h1.49l.86-1h4l.84 1h1.49L9.2 6.29c-.38.2-.78.3-1.19.3zM8 7.07l1.01 3.6h-2L8 7.07zm-1.99 5.59l1-1h2l1 1h-4zm5.19-11.1c-.25.25-.25.67 0 .92.32.33.48.76.48 1.19 0 .43-.16.86-.48 1.19-.25.26-.25.67 0 .92a.63.63 0 0 0 .9 0c.57-.58.85-1.35.85-2.11 0-.76-.28-1.53-.85-2.11a.634.634 0 0 0-.9 0z\"/>"},"repo-clone":{"name":"repo-clone","figma":{"id":"0:669","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","repository"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15 0H9v7c0 .55.45 1 1 1h1v1h1V8h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 7h-1V6h1v1zm4 0h-3V6h3v1zm0-2h-4V1h4v4zM4 5H3V4h1v1zm0-2H3V2h1v1zM2 1h6V0H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h2v2l1.5-1.5L6 16v-2h5c.55 0 1-.45 1-1v-3H2V1zm9 10v2H6v-1H3v1H1v-2h10zM3 8h1v1H3V8zm1-1H3V6h1v1z\"/>"},"repo-force-push":{"name":"repo-force-push","figma":{"id":"0:681","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","put"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 9H8v7H6V9H4l2.25-3H4l3-4 3 4H7.75L10 9zm1-9H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h4v-1H1v-2h4v-1H2V1h9v9H9v1h2v2H9v1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"/>"},"repo-forked":{"name":"repo-forked","figma":{"id":"0:685","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","copy"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/>"},"repo-pull":{"name":"repo-pull","figma":{"id":"0:691","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","get"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 8V6H7V4h6V2l3 3-3 3zM4 2H3v1h1V2zm7 5h1v6c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v2h-1V1H2v9h9V7zm0 4H1v2h2v-1h3v1h5v-2zM4 6H3v1h1V6zm0-2H3v1h1V4zM3 9h1V8H3v1z\"/>"},"repo-push":{"name":"repo-push","figma":{"id":"0:700","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","repository","put"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 3H3V2h1v1zM3 5h1V4H3v1zm4 0L4 9h2v7h2V9h2L7 5zm4-5H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h4v-1H1v-2h4v-1H2V1h9.02L11 10H9v1h2v2H9v1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"/>"},"repo":{"name":"repo","figma":{"id":"0:706","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","repository"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z\"/>"},"rocket":{"name":"rocket","figma":{"id":"0:715","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["staff","stafftools","blast","off","space","launch","ship"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12.17 3.83c-.27-.27-.47-.55-.63-.88-.16-.31-.27-.66-.34-1.02-.58.33-1.16.7-1.73 1.13-.58.44-1.14.94-1.69 1.48-.7.7-1.33 1.81-1.78 2.45H3L0 10h3l2-2c-.34.77-1.02 2.98-1 3l1 1c.02.02 2.23-.64 3-1l-2 2v3l3-3v-3c.64-.45 1.75-1.09 2.45-1.78.55-.55 1.05-1.13 1.47-1.7.44-.58.81-1.16 1.14-1.72-.36-.08-.7-.19-1.03-.34a3.39 3.39 0 0 1-.86-.63zM16 0s-.09.38-.3 1.06c-.2.7-.55 1.58-1.06 2.66-.7-.08-1.27-.33-1.66-.72-.39-.39-.63-.94-.7-1.64C13.36.84 14.23.48 14.92.28 15.62.08 16 0 16 0z\"/>"},"rss":{"name":"rss","figma":{"id":"0:719","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["broadcast","feed","atom"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M2 13H0v-2c1.11 0 2 .89 2 2zM0 3v1a9 9 0 0 1 9 9h1C10 7.48 5.52 3 0 3zm0 4v1c2.75 0 5 2.25 5 5h1c0-3.31-2.69-6-6-6z\"/>"},"ruby":{"name":"ruby","figma":{"id":"0:724","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["code","language"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 6l-5 5V4h3l2 2zm3 0l-8 8-8-8 4-4h8l4 4zm-8 6.5L14.5 6l-3-3h-7l-3 3L8 12.5z\"/>"},"search":{"name":"search","figma":{"id":"0:729","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["magnifying","glass"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z\"/>"},"server":{"name":"server","figma":{"id":"0:733","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["computers","racks","ops"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11 6H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zM2 9H1V7h1v2zm2 0H3V7h1v2zm2 0H5V7h1v2zm2 0H7V7h1v2zm3-8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM2 4H1V2h1v2zm2 0H3V2h1v2zm2 0H5V2h1v2zm2 0H7V2h1v2zm3-1h-1V2h1v1zm0 8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm-9 3H1v-2h1v2zm2 0H3v-2h1v2zm2 0H5v-2h1v2zm2 0H7v-2h1v2z\"/>"},"settings":{"name":"settings","figma":{"id":"0:751","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["sliders","filters","controls","levels"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 7H3V2h1v5zm-1 7h1v-3H3v3zm5 0h1V8H8v6zm5 0h1v-2h-1v2zm1-12h-1v6h1V2zM9 2H8v2h1V2zM5 8H2c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm5-3H7c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm5 4h-3c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1z\"/>"},"shield":{"name":"shield","figma":{"id":"0:762","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["protect","shield","lock"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 0L0 2v6.02C0 12.69 5.31 16 7 16c1.69 0 7-3.31 7-7.98V2L7 0zM5 11l1.14-2.8a.568.568 0 0 0-.25-.59C5.33 7.25 5 6.66 5 6c0-1.09.89-2 1.98-2C8.06 4 9 4.91 9 6c0 .66-.33 1.25-.89 1.61-.19.13-.3.36-.25.59L9 11H5z\"/>"},"sign-in":{"name":"sign-in","figma":{"id":"0:764","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["door","arrow","direction","enter","log in"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 6.75V12h4V8h1v4c0 .55-.45 1-1 1H7v3l-5.45-2.72c-.33-.17-.55-.52-.55-.91V1c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v3h-1V1H3l4 2v2.25L10 3v2h4v2h-4v2L7 6.75z\"/>"},"sign-out":{"name":"sign-out","figma":{"id":"0:768","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["door","arrow","direction","leave","log out"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 9V7H8V5h4V3l4 3-4 3zm-2 3H6V3L2 1h8v3h1V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v11.38c0 .39.22.73.55.91L6 16.01V13h4c.55 0 1-.45 1-1V8h-1v4z\"/>"},"smiley":{"name":"smiley","figma":{"id":"0:772","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["emoji","smile","mood","emotion"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z\"/>"},"squirrel":{"name":"squirrel","figma":{"id":"0:779","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["ship","shipit","launch"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11.75 1c-2.21 0-4 1.31-4 2.92 0 1.94.5 3.03 0 6.08 0-4.5-2.77-6.34-4-6.34.05-.5-.48-.66-.48-.66s-.22.11-.3.34c-.27-.31-.56-.27-.56-.27l-.13.58S.45 4.29.43 6.87c.2.33 1.53.6 2.47.43.89.05.67.79.47.99C2.53 9.13 1.75 8 .75 8s-1 1 0 1 1 1 3 1c-3.09 1.2 0 4 0 4h-1c-1 0-1 1-1 1h6c3 0 5-1 5-3.47 0-.85-.43-1.79-1-2.53-1.11-1.46.23-2.68 1-2 .77.68 3 1 3-2 0-2.21-1.79-4-4-4zm-9.5 5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5z\"/>"},"star":{"name":"star","figma":{"id":"0:781","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["save","remember","like"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z\"/>"},"stop":{"name":"stop","figma":{"id":"0:785","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["block","spam","report"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 1H4L0 5v6l4 4h6l4-4V5l-4-4zm3 9.5L9.5 14h-5L1 10.5v-5L4.5 2h5L13 5.5v5zM6 4h2v5H6V4zm0 6h2v2H6v-2z\"/>"},"sync":{"name":"sync","figma":{"id":"0:791","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["cycle","refresh","loop"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10.236 7.4a4.15 4.15 0 0 1-1.2 3.6 4.346 4.346 0 0 1-5.41.54l1.17-1.14-4.3-.6.6 4.2 1.31-1.26c2.36 1.74 5.7 1.57 7.84-.54a5.876 5.876 0 0 0 1.74-4.46l-1.75-.34zM2.956 5a4.346 4.346 0 0 1 5.41-.54L7.196 5.6l4.3.6-.6-4.2-1.31 1.26c-2.36-1.74-5.7-1.57-7.85.54-1.24 1.23-1.8 2.85-1.73 4.46l1.75.35A4.17 4.17 0 0 1 2.956 5z\"/>"},"tag":{"name":"tag","figma":{"id":"0:795","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["release"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 0 0 0-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z\"/>"},"tasklist":{"name":"tasklist","figma":{"id":"0:800","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["todo"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z\"/>"},"telescope":{"name":"telescope","figma":{"id":"0:806","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["science","space","look","view","explore"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.59 9l3 6h-1l-2-4v5h-1v-6l-2 5h-1l2-5 2-1zm-1-9h-1v1h1V0zm-2 3h-1v1h1V3zm-3-2h-1v1h1V1zM.22 9a.52.52 0 0 0-.16.67l.55.92c.13.23.41.31.64.2l1.39-.66-1.16-2-1.27.86.01.01zm7.89-5.39l-5.8 3.95L3.54 9.7l6.33-3.03L8.1 3.61h.01zm4.22 1.28l-1.47-2.52a.51.51 0 0 0-.72-.17l-1.2.83 1.84 3.2 1.33-.64c.27-.13.36-.44.22-.7z\"/>"},"terminal":{"name":"terminal","figma":{"id":"0:815","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["code","ops","shell"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 10h4v1H7v-1zm-3 1l3-3-3-3-.75.75L5.5 8l-2.25 2.25L4 11zm10-8v10c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h12c.55 0 1 .45 1 1zm-1 0H1v10h12V3z\"/>"},"text-size":{"name":"text-size","figma":{"id":"0:821","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["font","size","text"],"width":18,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z\"/>"},"three-bars":{"name":"three-bars","figma":{"id":"0:826","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["hamburger","menu","dropdown"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11.41 9H.59C0 9 0 8.59 0 8c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zm0-4H.59C0 5 0 4.59 0 4c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM.59 11H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1H.59C0 13 0 12.59 0 12c0-.59 0-1 .59-1z\"/>"},"thumbsdown":{"name":"thumbsdown","figma":{"id":"0:831","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["thumb","thumbsdown","rejected","dislike"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.98 7.83l-.97-5.95C14.84.5 13.13 0 12 0H5.69c-.2 0-.38.05-.53.14L3.72 1H2C.94 1 0 1.94 0 3v4c0 1.06.94 2.02 2 2h2c.91 0 1.39.45 2.39 1.55.91 1 .88 1.8.63 3.27-.08.5.06 1 .42 1.42.39.47.98.77 1.56.77 1.83 0 3-3.72 3-5.02l-.02-.98h2.04c1.16 0 1.95-.8 1.98-1.97 0-.06.02-.13-.02-.2v-.01zm-1.97 1.19h-1.99c-.7 0-1.03.28-1.03.97l.03 1.03c0 1.27-1.17 4-2 4-.5 0-1.08-.5-1-1 .25-1.58.34-2.78-.89-4.14C6.11 8.75 5.36 8 4 8V2l1.67-1H12c.73 0 1.95.31 2 1l.02.02 1 6c-.03.64-.38 1-1 1h-.01z\"/>"},"thumbsup":{"name":"thumbsup","figma":{"id":"0:835","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["thumb","thumbsup","prop","ship","like"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 14c-.05.69-1.27 1-2 1H5.67L4 14V8c1.36 0 2.11-.75 3.13-1.88 1.23-1.36 1.14-2.56.88-4.13-.08-.5.5-1 1-1 .83 0 2 2.73 2 4l-.02 1.03c0 .69.33.97 1.02.97h2c.63 0 .98.36 1 1l-1 6L14 14zm0-8h-2.02l.02-.98C12 3.72 10.83 0 9 0c-.58 0-1.17.3-1.56.77-.36.41-.5.91-.42 1.41.25 1.48.28 2.28-.63 3.28-1 1.09-1.48 1.55-2.39 1.55H2C.94 7 0 7.94 0 9v4c0 1.06.94 2 2 2h1.72l1.44.86c.16.09.33.14.52.14h6.33c1.13 0 2.84-.5 3-1.88l.98-5.95c.02-.08.02-.14.02-.2-.03-1.17-.84-1.97-2-1.97H14z\"/>"},"tools":{"name":"tools","figma":{"id":"0:839","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["screwdriver","wrench","settings"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4.48 7.27c.26.26 1.28 1.33 1.28 1.33l.56-.58-.88-.91 1.69-1.8s-.76-.74-.43-.45c.32-1.19.03-2.51-.87-3.44C4.93.5 3.66.2 2.52.51l1.93 2-.51 1.96-1.89.52-1.93-2C-.19 4.17.1 5.48 1 6.4c.94.98 2.29 1.26 3.48.87zm6.44 1.94l-2.33 2.3 3.84 3.98c.31.33.73.49 1.14.49.41 0 .82-.16 1.14-.49.63-.65.63-1.7 0-2.35l-3.79-3.93zM16 2.53L13.55 0 6.33 7.46l.88.91-4.31 4.46-.99.53-1.39 2.27.35.37 2.2-1.44.51-1.02L7.9 9.08l.88.91L16 2.53z\"/>"},"trashcan":{"name":"trashcan","figma":{"id":"0:844","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["garbage","rubbish","recycle","delete"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11 2H9c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 12H3V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9zm1-10H2V3h9v1z\"/>"},"triangle-down":{"name":"triangle-down","figma":{"id":"0:847","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["arrow","point","direction"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 5l6 6 6-6H0z\"/>"},"triangle-left":{"name":"triangle-left","figma":{"id":"0:849","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["arrow","point","direction"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 2L0 8l6 6V2z\"/>"},"triangle-right":{"name":"triangle-right","figma":{"id":"0:851","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["arrow","point","direction"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 14l6-6-6-6v12z\"/>"},"triangle-up":{"name":"triangle-up","figma":{"id":"0:853","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["arrow","point","direction"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 11L6 5l-6 6h12z\"/>"},"unfold":{"name":"unfold","figma":{"id":"0:857","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["expand","open","reveal"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11.5 7.5L14 10c0 .55-.45 1-1 1H9v-1h3.5l-2-2h-7l-2 2H5v1H1c-.55 0-1-.45-1-1l2.5-2.5L0 5c0-.55.45-1 1-1h4v1H1.5l2 2h7l2-2H9V4h4c.55 0 1 .45 1 1l-2.5 2.5zM6 6h2V3h2L7 0 4 3h2v3zm2 3H6v3H4l3 3 3-3H8V9z\"/>"},"unmute":{"name":"unmute","figma":{"id":"0:862","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["loud","volume","audio","sound","play"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 7.96c0 1.09-.45 2.09-1.17 2.83l-.67-.67c.55-.56.89-1.31.89-2.16 0-.85-.34-1.61-.89-2.16l.67-.67A3.99 3.99 0 0 1 12 7.96zM7.72 2.22L4 5.94H2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2l3.72 3.72c.47.47 1.28.14 1.28-.53V2.75c0-.67-.81-1-1.28-.53zm5.94.08l-.67.67a6.996 6.996 0 0 1 2.06 4.98c0 1.94-.78 3.7-2.06 4.98l.67.67A7.973 7.973 0 0 0 16 7.94c0-2.22-.89-4.22-2.34-5.66v.02zm-1.41 1.41l-.69.67a5.05 5.05 0 0 1 1.48 3.58c0 1.39-.56 2.66-1.48 3.56l.69.67A5.97 5.97 0 0 0 14 7.96c0-1.65-.67-3.16-1.75-4.25z\"/>"},"project":{"name":"project","figma":{"id":"0:868","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["board","kanban","columns","scrum"],"width":15,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z\"/>"},"kebab-horizontal":{"name":"kebab-horizontal","figma":{"id":"0:875","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["kebab","dot","menu","more"],"width":13,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z\"/>"},"kebab-vertical":{"name":"kebab-vertical","figma":{"id":"0:880","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["kebab","dot","menu","more"],"width":3,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 2.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0zm0 5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0zM1.5 14a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"/>"},"report":{"name":"report","figma":{"id":"0:885","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["report","abuse","flag"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H7l-4 4v-4H1a1 1 0 0 1-1-1V2zm1 0h14v9H6.5L4 13.5V11H1V2zm6 6h2v2H7V8zm0-5h2v4H7V3z\"/>"},"note":{"name":"note","figma":{"id":"0:891","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["card","paper","ticket"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M3 10h4V9H3v1zm0-2h6V7H3v1zm0-2h8V5H3v1zm10 6H1V3h12v9zM1 2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1H1z\"/>"},"screen-full":{"name":"screen-full","figma":{"id":"0:898","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["fullscreen","expand"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 10h1v3c0 .547-.453 1-1 1h-3v-1h3v-3zM1 10H0v3c0 .547.453 1 1 1h3v-1H1v-3zm0-7h3V2H1c-.547 0-1 .453-1 1v3h1V3zm1 1h10v8H2V4zm2 6h6V6H4v4zm6-8v1h3v3h1V3c0-.547-.453-1-1-1h-3z\"/>"},"screen-normal":{"name":"screen-normal","figma":{"id":"0:906","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["fullscreen","expand","exit"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M2 4H0V3h2V1h1v2c0 .547-.453 1-1 1zm0 8H0v1h2v2h1v-2c0-.547-.453-1-1-1zm9-2c0 .547-.453 1-1 1H4c-.547 0-1-.453-1-1V6c0-.547.453-1 1-1h6c.547 0 1 .453 1 1v4zM9 7H5v2h4V7zm2 6v2h1v-2h2v-1h-2c-.547 0-1 .453-1 1zm1-10V1h-1v2c0 .547.453 1 1 1h2V3h-2z\"/>"},"unverified":{"name":"unverified","figma":{"id":"0:914","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["insecure","untrusted","signed"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.68 7.07L14.6 5.73c-.17-.22-.28-.48-.31-.77l-.19-1.7a1.51 1.51 0 0 0-1.33-1.33l-1.7-.19c-.3-.03-.56-.16-.78-.33L8.95.33c-.55-.44-1.33-.44-1.88 0L5.73 1.41c-.22.17-.48.28-.77.31l-1.7.19c-.7.08-1.25.63-1.33 1.33l-.19 1.7c-.03.3-.16.56-.33.78L.33 7.06c-.44.55-.44 1.33 0 1.88l1.08 1.34c.17.22.28.48.31.77l.19 1.7c.08.7.63 1.25 1.33 1.33l1.7.19c.3.03.56.16.78.33l1.34 1.08c.55.44 1.33.44 1.88 0l1.34-1.08c.22-.17.48-.28.77-.31l1.7-.19c.7-.08 1.25-.63 1.33-1.33l.19-1.7c.03-.3.16-.56.33-.78l1.08-1.34c.44-.55.44-1.33 0-1.88zm-6.67 4.44c0 .28-.22.5-.5.5h-1c-.27 0-.5-.22-.5-.5v-1c0-.28.23-.5.5-.5h1c.28 0 .5.22.5.5v1zm1.56-4.89c-.06.17-.17.33-.3.47-.13.16-.14.19-.33.38-.16.17-.31.3-.52.45-.11.09-.2.19-.28.27-.08.08-.14.17-.19.27-.05.1-.08.19-.11.3-.03.11-.03.13-.03.25H7.14c0-.22 0-.31.03-.48.03-.19.08-.36.14-.52.06-.14.14-.28.25-.42.11-.13.23-.25.41-.38.27-.19.36-.3.48-.52.12-.22.2-.38.2-.59 0-.27-.06-.45-.2-.58-.13-.13-.31-.19-.58-.19-.09 0-.19.02-.3.05-.11.03-.17.09-.25.16-.08.07-.14.11-.2.2a.41.41 0 0 0-.09.28h-2c0-.38.13-.56.27-.83.16-.27.36-.5.61-.67.25-.17.55-.3.88-.38.33-.08.7-.13 1.09-.13.44 0 .83.05 1.17.13.34.09.63.22.88.39.23.17.41.38.55.63.13.25.19.55.19.88 0 .22 0 .42-.08.59l-.02-.01z\"/>"},"verified":{"name":"verified","figma":{"id":"0:919","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["trusted","secure","trustworthy","signed"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.68 7.07L14.6 5.73c-.17-.22-.28-.48-.31-.77l-.19-1.7a1.51 1.51 0 0 0-1.33-1.33l-1.7-.19c-.3-.03-.56-.16-.78-.33L8.95.33c-.55-.44-1.33-.44-1.88 0L5.73 1.41c-.22.17-.48.28-.77.31l-1.7.19c-.7.08-1.25.63-1.33 1.33l-.19 1.7c-.03.3-.16.56-.33.78L.33 7.06c-.44.55-.44 1.33 0 1.88l1.08 1.34c.17.22.28.48.31.77l.19 1.7c.08.7.63 1.25 1.33 1.33l1.7.19c.3.03.56.16.78.33l1.34 1.08c.55.44 1.33.44 1.88 0l1.34-1.08c.22-.17.48-.28.77-.31l1.7-.19c.7-.08 1.25-.63 1.33-1.33l.19-1.7c.03-.3.16-.56.33-.78l1.08-1.34c.44-.55.44-1.33 0-1.88zm-9.17 4.94l-3.5-3.5 1.5-1.5 2 2 5-5 1.5 1.55-6.5 6.45z\"/>"},"versions":{"name":"versions","figma":{"id":"0:923","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["history","commits"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 3H7c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-1 8H8V5h4v6zM4 4h1v1H4v6h1v1H4c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1zM1 5h1v1H1v4h1v1H1c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1z\"/>"},"watch":{"name":"watch","figma":{"id":"0:929","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["wait","hourglass","time","date"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 8h2v1H5V5h1v3zm6 0c0 2.22-1.2 4.16-3 5.19V15c0 .55-.45 1-1 1H4c-.55 0-1-.45-1-1v-1.81C1.2 12.16 0 10.22 0 8s1.2-4.16 3-5.19V1c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1.81c1.8 1.03 3 2.97 3 5.19zm-1 0c0-2.77-2.23-5-5-5S1 5.23 1 8s2.23 5 5 5 5-2.23 5-5z\"/>"},"x":{"name":"x","figma":{"id":"0:932","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["remove","close","delete"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z\"/>"},"zap":{"name":"zap","figma":{"id":"0:934","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["electricity","lightning","props","like","star","save"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 7H6l3-7-9 9h4l-3 7 9-9z\"/>"},"key":{"name":"key","figma":{"id":"0:938","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["key","lock","secure","safe"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12.83 2.17C12.08 1.42 11.14 1.03 10 1c-1.13.03-2.08.42-2.83 1.17S6.04 3.86 6.01 5c0 .3.03.59.09.89L0 12v1l1 1h2l1-1v-1h1v-1h1v-1h2l1.09-1.11c.3.08.59.11.91.11 1.14-.03 2.08-.42 2.83-1.17S13.97 6.14 14 5c-.03-1.14-.42-2.08-1.17-2.83zM11 5.38c-.77 0-1.38-.61-1.38-1.38 0-.77.61-1.38 1.38-1.38.77 0 1.38.61 1.38 1.38 0 .77-.61 1.38-1.38 1.38z\"/>"},"grabber":{"name":"grabber","figma":{"id":"0:942","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["mover","drap","drop","sort"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 4v1H0V4h8zM0 8h8V7H0v1zm0 3h8v-1H0v1z\"/>"},"plus-small":{"name":"plus-small","figma":{"id":"0:947","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["add","new","more","small"],"width":7,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 4H3v3H0v1h3v3h1V8h3V7H4V4z\"/>"},"light-bulb":{"name":"light-bulb","figma":{"id":"0:951","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["idea"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z\"/>"},"link-external":{"name":"link-external","figma":{"id":"0:956","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["out","see","more","go","to"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11 10h1v3c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h3v1H1v10h10v-3zM6 2l2.25 2.25L5 7.5 6.5 9l3.25-3.25L12 8V2H6z\"/>"}}
    \ No newline at end of file
    +{"alert":{"name":"alert","figma":{"id":"0:5","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["warning","triangle","exclamation","point"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z\"/>"},"arrow-down":{"name":"arrow-down","figma":{"id":"0:8","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 7V3H3v4H0l5 6 5-6H7z\"/>"},"arrow-left":{"name":"arrow-left","figma":{"id":"0:10","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 3L0 8l6 5v-3h4V6H6V3z\"/>"},"arrow-right":{"name":"arrow-right","figma":{"id":"0:12","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 8L4 3v3H0v4h4v3l6-5z\"/>"},"arrow-up":{"name":"arrow-up","figma":{"id":"0:14","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M5 3L0 9h3v4h4V9h3L5 3z\"/>"},"arrow-both":{"name":"arrow-both","figma":{"id":"7345:13","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction","left","right"],"width":20,"height":16,"path":"<path d=\"M0 8l6-5v3h8V3l6 5-6 5v-3H6v3L0 8z\"/>"},"arrow-small-down":{"name":"arrow-small-down","figma":{"id":"0:16","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction","little","tiny"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 7V5H2v2H0l3 4 3-4H4z\"/>"},"arrow-small-left":{"name":"arrow-small-left","figma":{"id":"0:18","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction","little","tiny"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 7V5L0 8l4 3V9h2V7H4z\"/>"},"arrow-small-right":{"name":"arrow-small-right","figma":{"id":"0:20","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction","little","tiny"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 8L2 5v2H0v2h2v2l4-3z\"/>"},"arrow-small-up":{"name":"arrow-small-up","figma":{"id":"0:22","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["point","direction","little","tiny"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M3 5L0 9h2v2h2V9h2L3 5z\"/>"},"beaker":{"name":"beaker","figma":{"id":"0:26","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["experiment","labs","experimental","feature","test","science","education","study","development","testing"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14.38 14.59L11 7V3h1V2H3v1h1v4L.63 14.59A1 1 0 0 0 1.54 16h11.94c.72 0 1.2-.75.91-1.41h-.01zM3.75 10L5 7V3h5v4l1.25 3h-7.5zM8 8h1v1H8V8zM7 7H6V6h1v1zm0-3h1v1H7V4zm0-3H6V0h1v1z\"/>"},"bell":{"name":"bell","figma":{"id":"0:34","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["notification"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13.99 11.991v1H0v-1l.73-.58c.769-.769.809-2.547 1.189-4.416.77-3.767 4.077-4.996 4.077-4.996 0-.55.45-1 .999-1 .55 0 1 .45 1 1 0 0 3.387 1.229 4.156 4.996.38 1.879.42 3.657 1.19 4.417l.659.58h-.01zM6.995 15.99c1.11 0 1.999-.89 1.999-1.999H4.996c0 1.11.89 1.999 1.999 1.999z\"/>"},"bold":{"name":"bold","figma":{"id":"0:38","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["markdown","bold","text"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M1 2h3.83c2.48 0 4.3.75 4.3 2.95 0 1.14-.63 2.23-1.67 2.61v.06c1.33.3 2.3 1.23 2.3 2.86 0 2.39-1.97 3.52-4.61 3.52H1V2zm3.66 4.95c1.67 0 2.38-.66 2.38-1.69 0-1.17-.78-1.61-2.34-1.61H3.13v3.3h1.53zm.27 5.39c1.77 0 2.75-.64 2.75-1.98 0-1.27-.95-1.81-2.75-1.81h-1.8v3.8h1.8v-.01z\"/>"},"book":{"name":"book","figma":{"id":"0:43","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","wiki","readme"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M3 5h4v1H3V5zm0 3h4V7H3v1zm0 2h4V9H3v1zm11-5h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm2-6v9c0 .55-.45 1-1 1H9.5l-1 1-1-1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h5.5l1 1 1-1H15c.55 0 1 .45 1 1zm-8 .5L7.5 3H2v9h6V3.5zm7-.5H9.5l-.5.5V12h6V3z\"/>"},"bookmark":{"name":"bookmark","figma":{"id":"0:54","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["tab","star"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 0H1C.27 0 0 .27 0 1v15l5-3.09L10 16V1c0-.73-.27-1-1-1zm-.78 4.25L6.36 5.61l.72 2.16c.06.22-.02.28-.2.17L5 6.6 3.12 7.94c-.19.11-.25.05-.2-.17l.72-2.16-1.86-1.36c-.17-.16-.14-.23.09-.23l2.3-.03.7-2.16h.25l.7 2.16 2.3.03c.23 0 .27.08.09.23h.01z\"/>"},"briefcase":{"name":"briefcase","figma":{"id":"0:58","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["suitcase","business"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 4V3c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1H9zM6 3h2v1H6V3zm7 6H8v1H6V9H1V5h1v3h10V5h1v4z\"/>"},"broadcast":{"name":"broadcast","figma":{"id":"0:63","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["rss","radio","signal"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 9H8c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1H6c-.55 0-1 .45-1 1v2h1v3c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-3h1v-2c0-.55-.45-1-1-1zM7 7h1v1H7V7zm2 4H8v4H7v-4H6v-1h3v1zm2.09-3.5c0-1.98-1.61-3.59-3.59-3.59A3.593 3.593 0 0 0 4 8.31v1.98c-.61-.77-1-1.73-1-2.8 0-2.48 2.02-4.5 4.5-4.5S12 5.01 12 7.49c0 1.06-.39 2.03-1 2.8V8.31c.06-.27.09-.53.09-.81zm3.91 0c0 2.88-1.63 5.38-4 6.63v-1.05a6.553 6.553 0 0 0 3.09-5.58A6.59 6.59 0 0 0 7.5.91 6.59 6.59 0 0 0 .91 7.5c0 2.36 1.23 4.42 3.09 5.58v1.05A7.497 7.497 0 0 1 7.5 0C11.64 0 15 3.36 15 7.5z\"/>"},"browser":{"name":"browser","figma":{"id":"0:70","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["window","web"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M5 3h1v1H5V3zM3 3h1v1H3V3zM1 3h1v1H1V3zm12 10H1V5h12v8zm0-9H7V3h6v1zm1-1c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V3z\"/>"},"bug":{"name":"bug","figma":{"id":"0:78","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["insect","issue"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11 10h3V9h-3V8l3.17-1.03-.34-.94L11 7V6c0-.55-.45-1-1-1V4c0-.48-.36-.88-.83-.97L10.2 2H12V1H9.8l-2 2h-.59L5.2 1H3v1h1.8l1.03 1.03C5.36 3.12 5 3.51 5 4v1c-.55 0-1 .45-1 1v1l-2.83-.97-.34.94L4 8v1H1v1h3v1L.83 12.03l.34.94L4 12v1c0 .55.45 1 1 1h1l1-1V6h1v7l1 1h1c.55 0 1-.45 1-1v-1l2.83.97.34-.94L11 11v-1zM9 5H6V4h3v1z\"/>"},"calendar":{"name":"calendar","figma":{"id":"0:82","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["time","day","month","year","date","appointment"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 2h-1v1.5c0 .28-.22.5-.5.5h-2c-.28 0-.5-.22-.5-.5V2H6v1.5c0 .28-.22.5-.5.5h-2c-.28 0-.5-.22-.5-.5V2H2c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 12H2V5h11v9zM5 3H4V1h1v2zm6 0h-1V1h1v2zM6 7H5V6h1v1zm2 0H7V6h1v1zm2 0H9V6h1v1zm2 0h-1V6h1v1zM4 9H3V8h1v1zm2 0H5V8h1v1zm2 0H7V8h1v1zm2 0H9V8h1v1zm2 0h-1V8h1v1zm-8 2H3v-1h1v1zm2 0H5v-1h1v1zm2 0H7v-1h1v1zm2 0H9v-1h1v1zm2 0h-1v-1h1v1zm-8 2H3v-1h1v1zm2 0H5v-1h1v1zm2 0H7v-1h1v1zm2 0H9v-1h1v1z\"/>"},"check":{"name":"check","figma":{"id":"0:104","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["mark","yes","confirm","accept","ok","success"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z\"/>"},"checklist":{"name":"checklist","figma":{"id":"0:108","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["todo","tasks"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M16 8.5l-6 6-3-3L8.5 10l1.5 1.5L14.5 7 16 8.5zM5.7 12.2l.8.8H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h7c.55 0 1 .45 1 1v6.5l-.8-.8c-.39-.39-1.03-.39-1.42 0L5.7 10.8a.996.996 0 0 0 0 1.41v-.01zM4 4h5V3H4v1zm0 2h5V5H4v1zm0 2h3V7H4v1zM3 9H2v1h1V9zm0-2H2v1h1V7zm0-2H2v1h1V5zm0-2H2v1h1V3z\"/>"},"chevron-down":{"name":"chevron-down","figma":{"id":"0:117","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["triangle","arrow"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M5 11L0 6l1.5-1.5L5 8.25 8.5 4.5 10 6l-5 5z\"/>"},"chevron-left":{"name":"chevron-left","figma":{"id":"0:119","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["triangle","arrow"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M5.5 3L7 4.5 3.25 8 7 11.5 5.5 13l-5-5 5-5z\"/>"},"chevron-right":{"name":"chevron-right","figma":{"id":"0:121","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["triangle","arrow"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.5 8l-5 5L1 11.5 4.75 8 1 4.5 2.5 3l5 5z\"/>"},"chevron-up":{"name":"chevron-up","figma":{"id":"0:123","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["triangle","arrow"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 10l-1.5 1.5L5 7.75 1.5 11.5 0 10l5-5 5 5z\"/>"},"circle-slash":{"name":"circle-slash","figma":{"id":"0:127","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["no","deny","fail","failure","error","bad"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm0 1.3c1.3 0 2.5.44 3.47 1.17l-8 8A5.755 5.755 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zm0 11.41c-1.3 0-2.5-.44-3.47-1.17l8-8c.73.97 1.17 2.17 1.17 3.47 0 3.14-2.56 5.7-5.7 5.7z\"/>"},"circuit-board":{"name":"circuit-board","figma":{"id":"0:132","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["developer","hardware","electricity"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M3 5c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zm8 0c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0 6c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm2-10H5v2.17c.36.19.64.47.83.83h2.34c.42-.78 1.33-1.28 2.34-1.05.75.19 1.36.8 1.53 1.55.31 1.38-.72 2.59-2.05 2.59-.8 0-1.48-.44-1.83-1.09H5.83c-.42.8-1.33 1.28-2.34 1.03-.73-.17-1.34-.78-1.52-1.52C1.72 4.49 2.2 3.59 3 3.17V1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1l5-5h2.17c.42-.78 1.33-1.28 2.34-1.05.75.19 1.36.8 1.53 1.55.31 1.38-.72 2.59-2.05 2.59-.8 0-1.48-.44-1.83-1.09H6.99L4 15h9c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1z\"/>"},"clippy":{"name":"clippy","figma":{"id":"0:138","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["copy","paste","save","capture","clipboard"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z\"/>"},"clock":{"name":"clock","figma":{"id":"0:147","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["time","hour","minute","second","watch"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 8h3v2H7c-.55 0-1-.45-1-1V4h2v4zM7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7z\"/>"},"cloud-download":{"name":"cloud-download","figma":{"id":"0:152","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["save","install","get"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 12h2l-3 3-3-3h2V7h2v5zm3-8c0-.44-.91-3-4.5-3C5.08 1 3 2.92 3 5 1.02 5 0 6.52 0 8c0 1.53 1 3 3 3h3V9.7H3C1.38 9.7 1.3 8.28 1.3 8c0-.17.05-1.7 1.7-1.7h1.3V5c0-1.39 1.56-2.7 3.2-2.7 2.55 0 3.13 1.55 3.2 1.8v1.2H12c.81 0 2.7.22 2.7 2.2 0 2.09-2.25 2.2-2.7 2.2h-2V11h2c2.08 0 4-1.16 4-3.5C16 5.06 14.08 4 12 4z\"/>"},"cloud-upload":{"name":"cloud-upload","figma":{"id":"0:156","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["put","export"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 9H5l3-3 3 3H9v5H7V9zm5-4c0-.44-.91-3-4.5-3C5.08 2 3 3.92 3 6 1.02 6 0 7.52 0 9c0 1.53 1 3 3 3h3v-1.3H3c-1.62 0-1.7-1.42-1.7-1.7 0-.17.05-1.7 1.7-1.7h1.3V6c0-1.39 1.56-2.7 3.2-2.7 2.55 0 3.13 1.55 3.2 1.8v1.2H12c.81 0 2.7.22 2.7 2.2 0 2.09-2.25 2.2-2.7 2.2h-2V12h2c2.08 0 4-1.16 4-3.5C16 6.06 14.08 5 12 5z\"/>"},"code":{"name":"code","figma":{"id":"0:160","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["brackets"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z\"/>"},"comment-discussion":{"name":"comment-discussion","figma":{"id":"0:164","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["converse","talk"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15 1H6c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1v3l3-3h4c.55 0 1-.45 1-1V9h1l3 3V9h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM9 11H4.5L3 12.5V11H1V5h4v3c0 .55.45 1 1 1h3v2zm6-3h-2v1.5L11.5 8H6V2h9v6z\"/>"},"comment":{"name":"comment","figma":{"id":"0:169","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["speak","bubble"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 1H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2v3.5L7.5 11H14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 9H7l-2 2v-2H2V2h12v8z\"/>"},"credit-card":{"name":"credit-card","figma":{"id":"0:173","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["money","billing","payments","transactions"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 9H2V8h10v1zm4-6v9c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h14c.55 0 1 .45 1 1zm-1 3H1v6h14V6zm0-3H1v1h14V3zm-9 7H2v1h4v-1z\"/>"},"dash":{"name":"dash","figma":{"id":"0:178","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["hyphen","range"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 7v2h8V7H0z\"/>"},"dashboard":{"name":"dashboard","figma":{"id":"0:182","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["speed","dial"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 5H8V4h1v1zm4 3h-1v1h1V8zM6 5H5v1h1V5zM5 8H4v1h1V8zm11-5.5l-.5-.5L9 7c-.06-.02-1 0-1 0-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-.92l6-5.58zm-1.59 4.09c.19.61.3 1.25.3 1.91 0 3.42-2.78 6.2-6.2 6.2-3.42 0-6.21-2.78-6.21-6.2 0-3.42 2.78-6.2 6.2-6.2 1.2 0 2.31.34 3.27.94l.94-.94A7.459 7.459 0 0 0 8.51 1C4.36 1 1 4.36 1 8.5 1 12.64 4.36 16 8.5 16c4.14 0 7.5-3.36 7.5-7.5 0-1.03-.2-2.02-.59-2.91l-1 1z\"/>"},"database":{"name":"database","figma":{"id":"0:190","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["disks","data"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 15c-3.31 0-6-.9-6-2v-2c0-.17.09-.34.21-.5.67.86 3 1.5 5.79 1.5s5.12-.64 5.79-1.5c.13.16.21.33.21.5v2c0 1.1-2.69 2-6 2zm0-4c-3.31 0-6-.9-6-2V7c0-.11.04-.21.09-.31.03-.06.07-.13.12-.19C.88 7.36 3.21 8 6 8s5.12-.64 5.79-1.5c.05.06.09.13.12.19.05.1.09.21.09.31v2c0 1.1-2.69 2-6 2zm0-4c-3.31 0-6-.9-6-2V3c0-1.1 2.69-2 6-2s6 .9 6 2v2c0 1.1-2.69 2-6 2zm0-5c-2.21 0-4 .45-4 1s1.79 1 4 1 4-.45 4-1-1.79-1-4-1z\"/>"},"desktop-download":{"name":"desktop-download","figma":{"id":"0:196","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["clone","download"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 6h3V0h2v6h3l-4 4-4-4zm11-4h-4v1h4v8H1V3h4V2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z\"/>"},"device-camera-video":{"name":"device-camera-video","figma":{"id":"0:198","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["watch","view","media","stream"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.2 2.09L10 5.72V3c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V9.28l5.2 3.63c.33.23.8 0 .8-.41v-10c0-.41-.47-.64-.8-.41z\"/>"},"device-camera":{"name":"device-camera","figma":{"id":"0:202","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["photo","picture","image","snapshot"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15 3H7c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM6 5H2V4h4v1zm4.5 7C8.56 12 7 10.44 7 8.5S8.56 5 10.5 5 14 6.56 14 8.5 12.44 12 10.5 12zM13 8.5c0 1.38-1.13 2.5-2.5 2.5S8 9.87 8 8.5 9.13 6 10.5 6 13 7.13 13 8.5z\"/>"},"device-desktop":{"name":"device-desktop","figma":{"id":"0:208","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["computer","monitor"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15 2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 9H1V3h14v8z\"/>"},"device-mobile":{"name":"device-mobile","figma":{"id":"0:212","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["phone","iphone","cellphone"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 15.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zM9 12H1V2h8v10z\"/>"},"diff-added":{"name":"diff-added","figma":{"id":"0:217","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["new","addition","plus"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zM6 9H3V7h3V4h2v3h3v2H8v3H6V9z\"/>"},"diff-ignored":{"name":"diff-ignored","figma":{"id":"0:222","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["slash"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zm-8.5-2H3v-1.5L9.5 4H11v1.5L4.5 12z\"/>"},"diff-modified":{"name":"diff-modified","figma":{"id":"0:227","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["dot","changed","updated"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zM4 8c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3-3-1.34-3-3z\"/>"},"diff-removed":{"name":"diff-removed","figma":{"id":"0:232","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["deleted","subtracted","dash"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 13H1V2h12v12zm-2-5H3V7h8v2z\"/>"},"diff-renamed":{"name":"diff-renamed","figma":{"id":"0:237","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["moved","arrow"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 9H3V7h3V4l5 4-5 4V9zm8-7v12c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h12c.55 0 1 .45 1 1zm-1 0H1v12h12V2z\"/>"},"diff":{"name":"diff","figma":{"id":"0:242","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["difference","changes","compare"],"width":13,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 7h2v1H6v2H5V8H3V7h2V5h1v2zm-3 6h5v-1H3v1zM7.5 2L11 5.5V15c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h6.5zM10 6L7 3H1v12h9V6zM8.5 0H3v1h5l4 4v8h1V4.5L8.5 0z\"/>"},"ellipsis":{"name":"ellipsis","figma":{"id":"0:249","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["dot","read","more","hidden","expand"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11 5H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM4 9H2V7h2v2zm3 0H5V7h2v2zm3 0H8V7h2v2z\"/>"},"eye":{"name":"eye","figma":{"id":"0:255","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["look","watch","see"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z\"/>"},"file-binary":{"name":"file-binary","figma":{"id":"0:260","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["image","video","word","powerpoint","excel"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 12h1v1H2v-1h1v-2H2V9h2v3zm8-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5zM8 4H6v1h1v2H6v1h3V7H8V4zM2 4h3v4H2V4zm1 3h1V5H3v2zm3 2h3v4H6V9zm1 3h1v-2H7v2z\"/>"},"file-code":{"name":"file-code","figma":{"id":"0:270","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["text","javascript","html","css","php","ruby","coffeescript","sass","scss"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.5 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V4.5L8.5 1zM11 14H1V2h7l3 3v9zM5 6.98L3.5 8.5 5 10l-.5 1L2 8.5 4.5 6l.5.98zM7.5 6L10 8.5 7.5 11l-.5-.98L8.5 8.5 7 7l.5-1z\"/>"},"file-directory":{"name":"file-directory","figma":{"id":"0:276","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["folder"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z\"/>"},"file-media":{"name":"file-media","figma":{"id":"0:280","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["image","video","audio"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 5h2v2H6V5zm6-.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v11l3-5 2 4 2-2 3 3V5z\"/>"},"file-pdf":{"name":"file-pdf","figma":{"id":"0:285","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["adobe"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.5 1H1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V4.5L8.5 1zM1 2h4a.68.68 0 0 0-.31.2 1.08 1.08 0 0 0-.23.47 4.22 4.22 0 0 0-.09 1.47c.06.609.173 1.211.34 1.8A21.78 21.78 0 0 1 3.6 8.6c-.5 1-.8 1.66-.91 1.84a7.156 7.156 0 0 0-.69.3c-.362.165-.699.38-1 .64V2zm4.42 4.8a5.65 5.65 0 0 0 1.17 2.09c.275.237.595.417.94.53-.64.09-1.23.2-1.81.33-.618.15-1.223.347-1.81.59s.22-.44.61-1.25c.365-.74.67-1.51.91-2.3l-.01.01zM11 14H1.5a.743.743 0 0 1-.17 0 2.12 2.12 0 0 0 .73-.44 10.14 10.14 0 0 0 1.78-2.38c.31-.13.58-.23.81-.31l.42-.14c.45-.13.94-.23 1.44-.33s1-.16 1.48-.2c.447.216.912.394 1.39.53.403.11.814.188 1.23.23h.38V14H11zm0-4.86a3.743 3.743 0 0 0-.64-.28 4.221 4.221 0 0 0-.75-.11c-.411.003-.822.03-1.23.08a3 3 0 0 1-1-.64 6.07 6.07 0 0 1-1.29-2.33c.111-.661.178-1.33.2-2 .02-.25.02-.5 0-.75a1.05 1.05 0 0 0-.2-.88.82.82 0 0 0-.61-.23H8l3 3v4.14z\"/>"},"file-submodule":{"name":"file-submodule","figma":{"id":"0:292","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["folder"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 7H4v7h9c.55 0 1-.45 1-1V8h-4V7zM9 9H5V8h4v1zm4-5H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h2V7c0-.55.45-1 1-1h6c.55 0 1 .45 1 1h3V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z\"/>"},"file-symlink-directory":{"name":"file-symlink-directory","figma":{"id":"0:298","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["folder","subfolder","link","alias"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM1 3h5v1H1V3zm6 9v-2c-.98-.02-1.84.22-2.55.7-.71.48-1.19 1.25-1.45 2.3.02-1.64.39-2.88 1.13-3.73C4.86 8.43 5.82 8 7.01 8V6l4 3-4 3H7z\"/>"},"file-symlink-file":{"name":"file-symlink-file","figma":{"id":"0:303","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["link","alias"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.5 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V4.5L8.5 1zM11 14H1V2h7l3 3v9zM6 4.5l4 3-4 3v-2c-.98-.02-1.84.22-2.55.7-.71.48-1.19 1.25-1.45 2.3.02-1.64.39-2.88 1.13-3.73.73-.84 1.69-1.27 2.88-1.27v-2H6z\"/>"},"file":{"name":"file","figma":{"id":"0:308","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["file","text","words"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z\"/>"},"file-zip":{"name":"file-zip","figma":{"id":"0:316","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["compress","archive"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8.5 1H1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V4.5L8.5 1zM11 14H1V2h3v1h1V2h3l3 3v9zM5 4V3h1v1H5zM4 4h1v1H4V4zm1 2V5h1v1H5zM4 6h1v1H4V6zm1 2V7h1v1H5zM4 9.28A2 2 0 0 0 3 11v1h4v-1a2 2 0 0 0-2-2V8H4v1.28zM6 10v1H4v-1h2z\"/>"},"flame":{"name":"flame","figma":{"id":"0:325","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["fire","hot","burn","trending"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z\"/>"},"fold":{"name":"fold","figma":{"id":"0:329","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["unfold","hide","collapse"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z\"/>"},"gear":{"name":"gear","figma":{"id":"0:334","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["settings"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 8.77v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45-.69-1.92h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.23v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.75v.02zM7 11c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"/>"},"gift":{"name":"gift","figma":{"id":"0:338","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["package","present","skill","craft","freebie"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 4h-1.38c.19-.33.33-.67.36-.91.06-.67-.11-1.22-.52-1.61C11.1 1.1 10.65 1 10.1 1h-.11c-.53.02-1.11.25-1.53.58-.42.33-.73.72-.97 1.2-.23-.48-.55-.88-.97-1.2-.42-.32-1-.58-1.53-.58h-.03c-.56 0-1.06.09-1.44.48-.41.39-.58.94-.52 1.61.03.23.17.58.36.91H1.98c-.55 0-1 .45-1 1v3h1v5c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8h1V5c0-.55-.45-1-1-1H13zm-4.78-.88c.17-.36.42-.67.75-.92.3-.23.72-.39 1.05-.41h.09c.45 0 .66.11.8.25s.33.39.3.95c-.05.19-.25.61-.5 1h-2.9l.41-.88v.01zM4.09 2.04c.13-.13.31-.25.91-.25.31 0 .72.17 1.03.41.33.25.58.55.75.92L7.2 4H4.3c-.25-.39-.45-.81-.5-1-.03-.56.16-.81.3-.95l-.01-.01zM7 12.99H3V8h4v5-.01zm0-6H2V5h5v2-.01zm5 6H8V8h4v5-.01zm1-6H8V5h5v2-.01z\"/>"},"gist-secret":{"name":"gist-secret","figma":{"id":"0:347","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["gist","secret","private"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 10.5L9 14H5l1-3.5L5.25 9h3.5L8 10.5zM10 6H4L2 7h10l-2-1zM9 2L7 3 5 2 4 5h6L9 2zm4.03 7.75L10 9l1 2-2 3h3.22c.45 0 .86-.31.97-.75l.56-2.28c.14-.53-.19-1.08-.72-1.22zM4 9l-3.03.75c-.53.14-.86.69-.72 1.22l.56 2.28c.11.44.52.75.97.75H5l-2-3 1-2z\"/>"},"gist":{"name":"gist","figma":{"id":"0:354","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["gist","github"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.5 5L10 7.5 7.5 10l-.75-.75L8.5 7.5 6.75 5.75 7.5 5zm-3 0L2 7.5 4.5 10l.75-.75L3.5 7.5l1.75-1.75L4.5 5zM0 13V2c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v11c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1zm1 0h10V2H1v11z\"/>"},"git-branch":{"name":"git-branch","figma":{"id":"0:360","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["fork","branch","git","duplicate"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 5c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v.3c-.02.52-.23.98-.63 1.38-.4.4-.86.61-1.38.63-.83.02-1.48.16-2 .45V4.72a1.993 1.993 0 0 0-1-3.72C.88 1 0 1.89 0 3a2 2 0 0 0 1 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2 1.11 0 2-.89 2-2 0-.53-.2-1-.53-1.36.09-.06.48-.41.59-.47.25-.11.56-.17.94-.17 1.05-.05 1.95-.45 2.75-1.25S8.95 7.77 9 6.73h-.02C9.59 6.37 10 5.73 10 5zM2 1.8c.66 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2C1.35 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2zm0 12.41c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm6-8c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/>"},"git-commit":{"name":"git-commit","figma":{"id":"0:366","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["save"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z\"/>"},"git-compare":{"name":"git-compare","figma":{"id":"0:370","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["difference","changes"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M5 12H4c-.27-.02-.48-.11-.69-.31-.21-.2-.3-.42-.31-.69V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V11c.03.78.34 1.47.94 2.06.6.59 1.28.91 2.06.94h1v2l3-3-3-3v2zM2 1.8c.66 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2C1.35 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2zm11 9.48V5c-.03-.78-.34-1.47-.94-2.06-.6-.59-1.28-.91-2.06-.94H9V0L6 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 12 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/>"},"git-merge":{"name":"git-merge","figma":{"id":"0:376","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["join"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 7c-.73 0-1.38.41-1.73 1.02V8C7.22 7.98 6 7.64 5.14 6.98c-.75-.58-1.5-1.61-1.89-2.44A1.993 1.993 0 0 0 2 .99C.89.99 0 1.89 0 3a2 2 0 0 0 1 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2a1.993 1.993 0 0 0 1-3.72V7.67c.67.7 1.44 1.27 2.3 1.69.86.42 2.03.63 2.97.64v-.02c.36.61 1 1.02 1.73 1.02 1.11 0 2-.89 2-2 0-1.11-.89-2-2-2zm-6.8 6c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm8 6c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/>"},"git-pull-request":{"name":"git-pull-request","figma":{"id":"0:382","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["review"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/>"},"globe":{"name":"globe","figma":{"id":"0:389","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["world","earth","planet"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 1C3.14 1 0 4.14 0 8s3.14 7 7 7c.48 0 .94-.05 1.38-.14-.17-.08-.2-.73-.02-1.09.19-.41.81-1.45.2-1.8-.61-.35-.44-.5-.81-.91-.37-.41-.22-.47-.25-.58-.08-.34.36-.89.39-.94.02-.06.02-.27 0-.33 0-.08-.27-.22-.34-.23-.06 0-.11.11-.2.13-.09.02-.5-.25-.59-.33-.09-.08-.14-.23-.27-.34-.13-.13-.14-.03-.33-.11s-.8-.31-1.28-.48c-.48-.19-.52-.47-.52-.66-.02-.2-.3-.47-.42-.67-.14-.2-.16-.47-.2-.41-.04.06.25.78.2.81-.05.02-.16-.2-.3-.38-.14-.19.14-.09-.3-.95s.14-1.3.17-1.75c.03-.45.38.17.19-.13-.19-.3 0-.89-.14-1.11-.13-.22-.88.25-.88.25.02-.22.69-.58 1.16-.92.47-.34.78-.06 1.16.05.39.13.41.09.28-.05-.13-.13.06-.17.36-.13.28.05.38.41.83.36.47-.03.05.09.11.22s-.06.11-.38.3c-.3.2.02.22.55.61s.38-.25.31-.55c-.07-.3.39-.06.39-.06.33.22.27.02.5.08.23.06.91.64.91.64-.83.44-.31.48-.17.59.14.11-.28.3-.28.3-.17-.17-.19.02-.3.08-.11.06-.02.22-.02.22-.56.09-.44.69-.42.83 0 .14-.38.36-.47.58-.09.2.25.64.06.66-.19.03-.34-.66-1.31-.41-.3.08-.94.41-.59 1.08.36.69.92-.19 1.11-.09.19.1-.06.53-.02.55.04.02.53.02.56.61.03.59.77.53.92.55.17 0 .7-.44.77-.45.06-.03.38-.28 1.03.09.66.36.98.31 1.2.47.22.16.08.47.28.58.2.11 1.06-.03 1.28.31.22.34-.88 2.09-1.22 2.28-.34.19-.48.64-.84.92s-.81.64-1.27.91c-.41.23-.47.66-.66.8 3.14-.7 5.48-3.5 5.48-6.84 0-3.86-3.14-7-7-7L7 1zm1.64 6.56c-.09.03-.28.22-.78-.08-.48-.3-.81-.23-.86-.28 0 0-.05-.11.17-.14.44-.05.98.41 1.11.41.13 0 .19-.13.41-.05.22.08.05.13-.05.14zM6.34 1.7c-.05-.03.03-.08.09-.14.03-.03.02-.11.05-.14.11-.11.61-.25.52.03-.11.27-.58.3-.66.25zm1.23.89c-.19-.02-.58-.05-.52-.14.3-.28-.09-.38-.34-.38-.25-.02-.34-.16-.22-.19.12-.03.61.02.7.08.08.06.52.25.55.38.02.13 0 .25-.17.25zm1.47-.05c-.14.09-.83-.41-.95-.52-.56-.48-.89-.31-1-.41-.11-.1-.08-.19.11-.34.19-.15.69.06 1 .09.3.03.66.27.66.55.02.25.33.5.19.63h-.01z\"/>"},"graph":{"name":"graph","figma":{"id":"0:396","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["trend","stats","statistics"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z\"/>"},"heart":{"name":"heart","figma":{"id":"0:400","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["love","beat"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M9 2c-.97 0-1.69.42-2.2 1-.51.58-.78.92-.8 1-.02-.08-.28-.42-.8-1-.52-.58-1.17-1-2.2-1-1.632.086-2.954 1.333-3 3 0 .52.09 1.52.67 2.67C1.25 8.82 3.01 10.61 6 13c2.98-2.39 4.77-4.17 5.34-5.33C11.91 6.51 12 5.5 12 5c-.047-1.69-1.342-2.913-3-3z\"/>"},"history":{"name":"history","figma":{"id":"0:404","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["time","past","revert","back"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 13H6V6h5v2H8v5zM7 1C4.81 1 2.87 2.02 1.59 3.59L0 2v4h4L2.5 4.5C3.55 3.17 5.17 2.3 7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-.34.03-.67.09-1H.08C.03 7.33 0 7.66 0 8c0 3.86 3.14 7 7 7s7-3.14 7-7-3.14-7-7-7z\"/>"},"home":{"name":"home","figma":{"id":"0:408","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["welcome","index","house","building"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M16 9l-3-3V2h-2v2L8 1 0 9h2l1 5c0 .55.45 1 1 1h8c.55 0 1-.45 1-1l1-5h2zm-4 5H9v-4H7v4H4L2.81 7.69 8 2.5l5.19 5.19L12 14z\"/>"},"horizontal-rule":{"name":"horizontal-rule","figma":{"id":"0:412","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["hr"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M1 7h2v2h1V3H3v3H1V3H0v6h1V7zm9 2V7H9v2h1zm0-3V4H9v2h1zM7 6V4h2V3H6v6h1V7h2V6H7zm-7 7h10v-2H0v2z\"/>"},"hubot":{"name":"hubot","figma":{"id":"0:419","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["robot","bot"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M3 6c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H3zm8 1.75L9.75 9h-1.5L7 7.75 5.75 9h-1.5L3 7.75V7h.75L5 8.25 6.25 7h1.5L9 8.25 10.25 7H11v.75zM5 11h4v1H5v-1zm2-9C3.14 2 0 4.91 0 8.5V13c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V8.5C14 4.91 10.86 2 7 2zm6 11H1V8.5c0-3.09 2.64-5.59 6-5.59s6 2.5 6 5.59V13z\"/>"},"inbox":{"name":"inbox","figma":{"id":"0:426","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["mail","todo","new","messages"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 9l-1.13-7.14c-.08-.48-.5-.86-1-.86H2.13c-.5 0-.92.38-1 .86L0 9v5c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V9zm-3.28.55l-.44.89c-.17.34-.52.56-.91.56H4.61c-.38 0-.72-.22-.89-.55l-.44-.91c-.17-.33-.52-.55-.89-.55H1l1-7h10l1 7h-1.38c-.39 0-.73.22-.91.55l.01.01z\"/>"},"info":{"name":"info","figma":{"id":"0:430","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["help"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z\"/>"},"issue-closed":{"name":"issue-closed","figma":{"id":"0:436","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["done","complete"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 10h2v2H7v-2zm2-6H7v5h2V4zm1.5 1.5l-1 1L12 9l4-4.5-1-1L12 7l-1.5-1.5zM8 13.7A5.71 5.71 0 0 1 2.3 8c0-3.14 2.56-5.7 5.7-5.7 1.83 0 3.45.88 4.5 2.2l.92-.92A6.947 6.947 0 0 0 8 1C4.14 1 1 4.14 1 8s3.14 7 7 7 7-3.14 7-7l-1.52 1.52c-.66 2.41-2.86 4.19-5.48 4.19v-.01z\"/>"},"issue-opened":{"name":"issue-opened","figma":{"id":"0:442","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["new"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z\"/>"},"issue-reopened":{"name":"issue-reopened","figma":{"id":"0:448","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["regression"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 9H6V4h2v5zm-2 3h2v-2H6v2zm6.33-2H10l1.5 1.5c-1.05 1.33-2.67 2.2-4.5 2.2A5.71 5.71 0 0 1 1.3 8c0-.34.03-.67.09-1H.08C.03 7.33 0 7.66 0 8c0 3.86 3.14 7 7 7 2.19 0 4.13-1.02 5.41-2.59L14 14v-4h-1.67zM1.67 6H4L2.5 4.5C3.55 3.17 5.17 2.3 7 2.3c3.14 0 5.7 2.56 5.7 5.7 0 .34-.03.67-.09 1h1.31c.05-.33.08-.66.08-1 0-3.86-3.14-7-7-7-2.19 0-4.13 1.02-5.41 2.59L0 2v4h1.67z\"/>"},"italic":{"name":"italic","figma":{"id":"0:454","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["font","italic","style"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M2.81 5h1.98L3 14H1l1.81-9zm.36-2.7c0-.7.58-1.3 1.33-1.3.56 0 1.13.38 1.13 1.03 0 .75-.59 1.3-1.33 1.3-.58 0-1.13-.38-1.13-1.03z\"/>"},"jersey":{"name":"jersey","figma":{"id":"0:458","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["team","game","basketball"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4.5 6l-.5.5v5l.5.5h2l.5-.5v-5L6.5 6h-2zM6 11H5V7h1v4zm6.27-7.25C12.05 2.37 11.96 1.12 12 0H9.02c0 .27-.13.48-.39.69-.25.2-.63.3-1.13.3-.5 0-.88-.09-1.13-.3-.23-.2-.36-.42-.36-.69H3c.05 1.13-.03 2.38-.25 3.75C2.55 5.13 1.95 5.88 1 6v9c.02.27.11.48.31.69.2.21.42.3.69.31h11c.27-.02.48-.11.69-.31.21-.2.3-.42.31-.69V6c-.95-.13-1.53-.88-1.75-2.25h.02zM13 15H2V7c.89-.5 1.48-1.25 1.72-2.25S4.03 2.5 4 1h1c-.02.78.16 1.47.52 2.06.36.58 1.02.89 2 .94.98-.02 1.64-.33 2-.94.36-.59.5-1.28.48-2.06h1c.02 1.42.13 2.55.33 3.38.2.81.69 2 1.67 2.63v8V15zM8.5 6l-.5.5v5l.5.5h2l.5-.5v-5l-.5-.5h-2zm1.5 5H9V7h1v4z\"/>"},"keyboard":{"name":"keyboard","figma":{"id":"0:466","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["type","keys","write","shortcuts"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 5H9V4h1v1zM3 6H2v1h1V6zm5-2H7v1h1V4zM4 4H2v1h2V4zm8 7h2v-1h-2v1zM8 7h1V6H8v1zm-4 3H2v1h2v-1zm8-6h-1v1h1V4zm2 0h-1v1h1V4zm-2 5h2V6h-2v3zm4-6v9c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h14c.55 0 1 .45 1 1zm-1 0H1v9h14V3zM6 7h1V6H6v1zm0-3H5v1h1V4zM4 7h1V6H4v1zm1 4h6v-1H5v1zm5-4h1V6h-1v1zM3 8H2v1h1V8zm5 0v1h1V8H8zM6 8v1h1V8H6zM5 8H4v1h1V8zm5 1h1V8h-1v1z\"/>"},"law":{"name":"law","figma":{"id":"0:490","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["legal","bill"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 4c-.83 0-1.5-.67-1.5-1.5S6.17 1 7 1s1.5.67 1.5 1.5S7.83 4 7 4zm7 6c0 1.11-.89 2-2 2h-1c-1.11 0-2-.89-2-2l2-4h-1c-.55 0-1-.45-1-1H8v8c.42 0 1 .45 1 1h1c.42 0 1 .45 1 1H3c0-.55.58-1 1-1h1c0-.55.58-1 1-1h.03L6 5H5c0 .55-.45 1-1 1H3l2 4c0 1.11-.89 2-2 2H2c-1.11 0-2-.89-2-2l2-4H1V5h3c0-.55.45-1 1-1h4c.55 0 1 .45 1 1h3v1h-1l2 4zM2.5 7L1 10h3L2.5 7zM13 10l-1.5-3-1.5 3h3z\"/>"},"link":{"name":"link","figma":{"id":"0:496","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["connect","hyperlink"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/>"},"list-ordered":{"name":"list-ordered","figma":{"id":"0:500","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["numbers","tasks","todo","items"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 12.99c0 .589 0 .998-.59.998H4.597c-.59 0-.59-.41-.59-.999 0-.59 0-.999.59-.999H11.4c.59 0 .59.41.59 1H12zM4.596 3.996H11.4c.59 0 .59-.41.59-1 0-.589 0-.999-.59-.999H4.596c-.59 0-.59.41-.59 1 0 .589 0 .999.59.999zM11.4 6.994H4.596c-.59 0-.59.41-.59 1 0 .589 0 .999.59.999H11.4c.59 0 .59-.41.59-1 0-.59 0-.999-.59-.999zM2.008 1h-.72C.99 1.19.71 1.25.26 1.34V2h.75v2.138H.17v.859h2.837v-.86h-.999V1zm.25 8.123c-.17 0-.45.03-.66.06.53-.56 1.14-1.249 1.14-1.888-.02-.78-.56-1.299-1.36-1.299-.589 0-.968.2-1.378.64l.58.579c.19-.19.38-.38.639-.38.28 0 .48.16.48.52 0 .53-.77 1.199-1.699 2.058v.58h2.998l-.09-.88h-.66l.01.01zm-.08 3.777v-.03c.44-.19.64-.47.64-.859 0-.7-.56-1.11-1.44-1.11-.479 0-.888.19-1.278.52l.55.64c.25-.2.44-.31.689-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.749c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.479.659c.3.36.77.56 1.409.56.83 0 1.529-.41 1.529-1.16 0-.5-.31-.809-.77-.939v.01z\"/>"},"list-unordered":{"name":"list-unordered","figma":{"id":"0:508","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["bullet","point","tasks","todo","items"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M2 13c0 .59 0 1-.59 1H.59C0 14 0 13.59 0 13c0-.59 0-1 .59-1h.81c.59 0 .59.41.59 1H2zm2.59-9h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1H4.59C4 2 4 2.41 4 3c0 .59 0 1 .59 1zM1.41 7H.59C0 7 0 7.41 0 8c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0-5H.59C0 2 0 2.41 0 3c0 .59 0 1 .59 1h.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm10 5H4.59C4 7 4 7.41 4 8c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01zm0 5H4.59C4 12 4 12.41 4 13c0 .59 0 1 .59 1h6.81c.59 0 .59-.41.59-1 0-.59 0-1-.59-1h.01z\"/>"},"location":{"name":"location","figma":{"id":"0:516","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["here","marker"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 0C2.69 0 0 2.5 0 5.5 0 10.02 6 16 6 16s6-5.98 6-10.5C12 2.5 9.31 0 6 0zm0 14.55C4.14 12.52 1 8.44 1 5.5 1 3.02 3.25 1 6 1c1.34 0 2.61.48 3.56 1.36.92.86 1.44 1.97 1.44 3.14 0 2.94-3.14 7.02-5 9.05zM8 5.5c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z\"/>"},"lock":{"name":"lock","figma":{"id":"0:521","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["secure","safe","protected"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 13H3v-1h1v1zm8-6v7c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h1V4c0-2.2 1.8-4 4-4s4 1.8 4 4v2h1c.55 0 1 .45 1 1zM3.8 6h4.41V4c0-1.22-.98-2.2-2.2-2.2-1.22 0-2.2.98-2.2 2.2v2H3.8zM11 7H2v7h9V7zM4 8H3v1h1V8zm0 2H3v1h1v-1z\"/>"},"logo-gist":{"name":"logo-gist","figma":{"id":"0:529","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["brand","github","logo"],"width":25,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4.7 8.73h2.45v4.02c-.55.27-1.64.34-2.53.34-2.56 0-3.47-2.2-3.47-5.05 0-2.85.91-5.06 3.48-5.06 1.28 0 2.06.23 3.28.73V2.66C7.27 2.33 6.25 2 4.63 2 1.13 2 0 4.69 0 8.03c0 3.34 1.11 6.03 4.63 6.03 1.64 0 2.81-.27 3.59-.64V7.73H4.7v1zm6.39 3.72V6.06h-1.05v6.28c0 1.25.58 1.72 1.72 1.72v-.89c-.48 0-.67-.16-.67-.7v-.02zm.25-8.72c0-.44-.33-.78-.78-.78s-.77.34-.77.78.33.78.77.78.78-.34.78-.78zm4.34 5.69c-1.5-.13-1.78-.48-1.78-1.17 0-.77.33-1.34 1.88-1.34 1.05 0 1.66.16 2.27.36v-.94c-.69-.3-1.52-.39-2.25-.39-2.2 0-2.92 1.2-2.92 2.31 0 1.08.47 1.88 2.73 2.08 1.55.13 1.77.63 1.77 1.34 0 .73-.44 1.42-2.06 1.42-1.11 0-1.86-.19-2.33-.36v.94c.5.2 1.58.39 2.33.39 2.38 0 3.14-1.2 3.14-2.41 0-1.28-.53-2.03-2.75-2.23h-.03zm8.58-2.47v-.86h-2.42v-2.5l-1.08.31v2.11l-1.56.44v.48h1.56v5c0 1.53 1.19 2.13 2.5 2.13.19 0 .52-.02.69-.05v-.89c-.19.03-.41.03-.61.03-.97 0-1.5-.39-1.5-1.34V6.94h2.42v.02-.01z\"/>"},"logo-github":{"name":"logo-github","figma":{"id":"0:536","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["brand","github","logo"],"width":45,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M18.53 12.03h-.02c.009 0 .015.01.024.011h.006l-.01-.01zm.004.011c-.093.001-.327.05-.574.05-.78 0-1.05-.36-1.05-.83V8.13h1.59c.09 0 .16-.08.16-.19v-1.7c0-.09-.08-.17-.16-.17h-1.59V3.96c0-.08-.05-.13-.14-.13h-2.16c-.09 0-.14.05-.14.13v2.17s-1.09.27-1.16.28c-.08.02-.13.09-.13.17v1.36c0 .11.08.19.17.19h1.11v3.28c0 2.44 1.7 2.69 2.86 2.69.53 0 1.17-.17 1.27-.22.06-.02.09-.09.09-.16v-1.5a.177.177 0 0 0-.146-.18zm23.696-2.2c0-1.81-.73-2.05-1.5-1.97-.6.04-1.08.34-1.08.34v3.52s.49.34 1.22.36c1.03.03 1.36-.34 1.36-2.25zm2.43-.16c0 3.43-1.11 4.41-3.05 4.41-1.64 0-2.52-.83-2.52-.83s-.04.46-.09.52c-.03.06-.08.08-.14.08h-1.48c-.1 0-.19-.08-.19-.17l.02-11.11c0-.09.08-.17.17-.17h2.13c.09 0 .17.08.17.17v3.77s.82-.53 2.02-.53l-.01-.02c1.2 0 2.97.45 2.97 3.88zm-8.72-3.61h-2.1c-.11 0-.17.08-.17.19v5.44s-.55.39-1.3.39-.97-.34-.97-1.09V6.25c0-.09-.08-.17-.17-.17h-2.14c-.09 0-.17.08-.17.17v5.11c0 2.2 1.23 2.75 2.92 2.75 1.39 0 2.52-.77 2.52-.77s.05.39.08.45c.02.05.09.09.16.09h1.34c.11 0 .17-.08.17-.17l.02-7.47c0-.09-.08-.17-.19-.17zm-23.7-.01h-2.13c-.09 0-.17.09-.17.2v7.34c0 .2.13.27.3.27h1.92c.2 0 .25-.09.25-.27V6.23c0-.09-.08-.17-.17-.17zm-1.05-3.38c-.77 0-1.38.61-1.38 1.38 0 .77.61 1.38 1.38 1.38.75 0 1.36-.61 1.36-1.38 0-.77-.61-1.38-1.36-1.38zm16.49-.25h-2.11c-.09 0-.17.08-.17.17v4.09h-3.31V2.6c0-.09-.08-.17-.17-.17h-2.13c-.09 0-.17.08-.17.17v11.11c0 .09.09.17.17.17h2.13c.09 0 .17-.08.17-.17V8.96h3.31l-.02 4.75c0 .09.08.17.17.17h2.13c.09 0 .17-.08.17-.17V2.6c0-.09-.08-.17-.17-.17zM8.81 7.35v5.74c0 .04-.01.11-.06.13 0 0-1.25.89-3.31.89-2.49 0-5.44-.78-5.44-5.92S2.58 1.99 5.1 2c2.18 0 3.06.49 3.2.58.04.05.06.09.06.14L7.94 4.5c0 .09-.09.2-.2.17-.36-.11-.9-.33-2.17-.33-1.47 0-3.05.42-3.05 3.73s1.5 3.7 2.58 3.7c.92 0 1.25-.11 1.25-.11v-2.3H4.88c-.11 0-.19-.08-.19-.17V7.35c0-.09.08-.17.19-.17h3.74c.11 0 .19.08.19.17z\"/>"},"mail-read":{"name":"mail-read","figma":{"id":"0:547","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["email","open"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 5H4V4h2v1zm3 1H4v1h5V6zm5-.48V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V5.52c0-.33.16-.63.42-.81L2 3.58V3c0-.55.45-1 1-1h1.2L7 0l2.8 2H11c.55 0 1 .45 1 1v.58l1.58 1.13c.27.19.42.48.42.81zM3 7.5L7 10l4-2.5V3H3v4.5zm-2 6l4.5-3-4.5-3v6zm11 .5l-5-3-5 3h10zm1-6.5l-4.5 3 4.5 3v-6z\"/>"},"reply":{"name":"reply","figma":{"id":"0:554","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["reply all","back"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z\"/>"},"mail":{"name":"mail","figma":{"id":"0:558","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["email","unread"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 4v8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1zm13 0L7 9 1 4h12zM1 5.5l4 3-4 3v-6zM2 12l3.5-3L7 10.5 8.5 9l3.5 3H2zm11-.5l-4-3 4-3v6z\"/>"},"mark-github":{"name":"mark-github","figma":{"id":"0:563","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["octocat","brand","github","logo"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z\"/>"},"markdown":{"name":"markdown","figma":{"id":"0:567","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["markup","style"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z\"/>"},"megaphone":{"name":"megaphone","figma":{"id":"0:572","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["bullhorn","loud","shout","broadcast"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 1c-.17 0-.36.05-.52.14C8.04 2.02 4.5 4.58 3 5c-1.38 0-3 .67-3 2.5S1.63 10 3 10c.3.08.64.23 1 .41V15h2v-3.45c1.34.86 2.69 1.83 3.48 2.31.16.09.34.14.52.14.52 0 1-.42 1-1V2c0-.58-.48-1-1-1zm0 12c-.38-.23-.89-.58-1.5-1-.16-.11-.33-.22-.5-.34V3.31c.16-.11.31-.2.47-.31.61-.41 1.16-.77 1.53-1v11zm2-6h4v1h-4V7zm0 2l4 2v1l-4-2V9zm4-6v1l-4 2V5l4-2z\"/>"},"mention":{"name":"mention","figma":{"id":"0:579","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["at","ping"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6.58 15c1.25 0 2.52-.31 3.56-.94l-.42-.94c-.84.52-1.89.83-3.03.83-3.23 0-5.64-2.08-5.64-5.72 0-4.37 3.23-7.18 6.58-7.18 3.45 0 5.22 2.19 5.22 5.2 0 2.39-1.34 3.86-2.5 3.86-1.05 0-1.36-.73-1.05-2.19l.73-3.75H8.98l-.11.72c-.41-.63-.94-.83-1.56-.83-2.19 0-3.66 2.39-3.66 4.38 0 1.67.94 2.61 2.3 2.61.84 0 1.67-.53 2.3-1.25.11.94.94 1.45 1.98 1.45 1.67 0 3.77-1.67 3.77-5C14 2.61 11.59 0 7.83 0 3.66 0 0 3.33 0 8.33 0 12.71 2.92 15 6.58 15zm-.31-5c-.73 0-1.36-.52-1.36-1.67 0-1.45.94-3.22 2.41-3.22.52 0 .84.2 1.25.83l-.52 3.02c-.63.73-1.25 1.05-1.78 1.05V10z\"/>"},"milestone":{"name":"milestone","figma":{"id":"0:583","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["marker"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 2H6V0h2v2zm4 5H2c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h10l2 2-2 2zM8 4H6v2h2V4zM6 16h2V8H6v8z\"/>"},"mirror":{"name":"mirror","figma":{"id":"0:589","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["reflect"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.5 4.7L8.5 0l-7 4.7c-.3.19-.5.45-.5.8V16l7.5-4 7.5 4V5.5c0-.34-.2-.61-.5-.8zm-.5 9.8l-6-3.25V10H8v1.25L2 14.5v-9l6-4V6h1V1.5l6 4v9zM6 7h5V5l3 3-3 3V9H6v2L3 8l3-3v2z\"/>"},"mortar-board":{"name":"mortar-board","figma":{"id":"0:594","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["education","learn","teach"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.83 9.19L4 8c-4-8 0 1.5 0 2.5S5.8 12 8 12s4-.5 4-1.5V8L8.17 9.19a.73.73 0 0 1-.36 0h.02zm.28-6.39a.34.34 0 0 0-.2 0L.27 5.18a.35.35 0 0 0 0 .67L2 6.4v1.77c-.3.17-.5.5-.5.86 0 .19.05.36.14.5-.08.14-.14.31-.14.5v2.58c0 .55 2 .55 2 0v-2.58c0-.19-.05-.36-.14-.5.08-.14.14-.31.14-.5 0-.38-.2-.69-.5-.86V6.72l4.89 1.53c.06.02.14.02.2 0l7.64-2.38a.35.35 0 0 0 0-.67L8.1 2.81l.01-.01zM8.02 6c-.55 0-1-.22-1-.5s.45-.5 1-.5 1 .22 1 .5-.45.5-1 .5z\"/>"},"mute":{"name":"mute","figma":{"id":"0:599","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["quiet","sound","audio","turn","off"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 2.81v10.38c0 .67-.81 1-1.28.53L3 10H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.81 8 2.14 8 2.81zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06L11.44 8 9.47 9.97l1.06 1.06 1.97-1.97 1.97 1.97 1.06-1.06L13.56 8l1.97-1.97z\"/>"},"no-newline":{"name":"no-newline","figma":{"id":"0:603","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["return"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M16 5v3c0 .55-.45 1-1 1h-3v2L9 8l3-3v2h2V5h2zM8 8c0 2.2-1.8 4-4 4s-4-1.8-4-4 1.8-4 4-4 4 1.8 4 4zM1.5 9.66L5.66 5.5C5.18 5.19 4.61 5 4 5 2.34 5 1 6.34 1 8c0 .61.19 1.17.5 1.66zM7 8c0-.61-.19-1.17-.5-1.66L2.34 10.5c.48.31 1.05.5 1.66.5 1.66 0 3-1.34 3-3z\"/>"},"octoface":{"name":"octoface","figma":{"id":"0:609","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["octocat","brand"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z\"/>"},"organization":{"name":"organization","figma":{"id":"0:613","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["people","group","team"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M16 12.999c0 .439-.45 1-1 1H7.995c-.539 0-.994-.447-.995-.999H1c-.54 0-1-.561-1-1 0-2.634 3-4 3-4s.229-.409 0-1c-.841-.621-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.442.58 2.5 3c.058 2.41-.159 2.379-1 3-.229.59 0 1 0 1s1.549.711 2.42 2.088C9.196 9.369 10 8.999 10 8.999s.229-.409 0-1c-.841-.62-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.437.581 2.495 3c.059 2.41-.158 2.38-1 3-.229.59 0 1 0 1s3.005 1.366 3.005 4z\"/>"},"package":{"name":"package","figma":{"id":"0:617","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["box","ship"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 0 0-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z\"/>"},"paintcan":{"name":"paintcan","figma":{"id":"0:624","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["style","theme","art","color"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 0C2.69 0 0 2.69 0 6v1c0 .55.45 1 1 1v5c0 1.1 2.24 2 5 2s5-.9 5-2V8c.55 0 1-.45 1-1V6c0-3.31-2.69-6-6-6zm3 10v.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5V10c0-.28-.22-.5-.5-.5s-.5.22-.5.5v2.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-2c0-.28-.22-.5-.5-.5s-.5.22-.5.5v.5c0 .55-.45 1-1 1s-1-.45-1-1v-1c-.55 0-1-.45-1-1V7.2c.91.49 2.36.8 4 .8 1.64 0 3.09-.31 4-.8V9c0 .55-.45 1-1 1zM6 7c-1.68 0-3.12-.41-3.71-1C2.88 5.41 4.32 5 6 5c1.68 0 3.12.41 3.71 1-.59.59-2.03 1-3.71 1zm0-3c-2.76 0-5 .89-5 2 0-2.76 2.24-5 5-5s5 2.24 5 5c0-1.1-2.24-2-5-2z\"/>"},"pencil":{"name":"pencil","figma":{"id":"0:630","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["edit","change","update","write"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z\"/>"},"person":{"name":"person","figma":{"id":"0:633","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["people","man","woman","human"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 14.002a.998.998 0 0 1-.998.998H1.001A1 1 0 0 1 0 13.999V13c0-2.633 4-4 4-4s.229-.409 0-1c-.841-.62-.944-1.59-1-4 .173-2.413 1.867-3 3-3s2.827.586 3 3c-.056 2.41-.159 3.38-1 4-.229.59 0 1 0 1s4 1.367 4 4v1.002z\"/>"},"pin":{"name":"pin","figma":{"id":"0:635","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["save","star","bookmark"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 1.2V2l.5 1L6 6H2.2c-.44 0-.67.53-.34.86L5 10l-4 5 5-4 3.14 3.14a.5.5 0 0 0 .86-.34V10l3-4.5 1 .5h.8c.44 0 .67-.53.34-.86L10.86.86a.5.5 0 0 0-.86.34z\"/>"},"plug":{"name":"plug","figma":{"id":"0:637","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["hook","webhook"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 6V5h-4V3H8v1H6c-1.03 0-1.77.81-2 2L3 7c-1.66 0-3 1.34-3 3v2h1v-2c0-1.11.89-2 2-2l1 1c.25 1.16.98 2 2 2h2v1h2v-2h4V9h-4V6h4z\"/>"},"plus":{"name":"plus","figma":{"id":"0:639","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["add","new","more"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 9H7v5H5V9H0V7h5V2h2v5h5v2z\"/>"},"primitive-dot":{"name":"primitive-dot","figma":{"id":"0:641","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["circle"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 8c0-2.2 1.8-4 4-4s4 1.8 4 4-1.8 4-4 4-4-1.8-4-4z\"/>"},"primitive-square":{"name":"primitive-square","figma":{"id":"0:643","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["box"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 12H0V4h8v8z\"/>"},"pulse":{"name":"pulse","figma":{"id":"0:645","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["graph","trend","line","activity"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11.5 8L8.8 5.4 6.6 8.5 5.5 1.6 2.38 8H0v2h3.6l.9-1.8.9 5.4L9 8.5l1.6 1.5H14V8h-2.5z\"/>"},"question":{"name":"question","figma":{"id":"0:649","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["help","explain"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 10h2v2H6v-2zm4-3.5C10 8.64 8 9 8 9H6c0-.55.45-1 1-1h.5c.28 0 .5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7H4c0-1.5 1.5-3 3-3s3 1 3 2.5zM7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7z\"/>"},"quote":{"name":"quote","figma":{"id":"0:655","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["quotation"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z\"/>"},"radio-tower":{"name":"radio-tower","figma":{"id":"0:659","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["broadcast"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4.79 6.11c.25-.25.25-.67 0-.92-.32-.33-.48-.76-.48-1.19 0-.43.16-.86.48-1.19.25-.26.25-.67 0-.92a.613.613 0 0 0-.45-.19c-.16 0-.33.06-.45.19-.57.58-.85 1.35-.85 2.11 0 .76.29 1.53.85 2.11.25.25.66.25.9 0zM2.33.52a.651.651 0 0 0-.92 0C.48 1.48.01 2.74.01 3.99c0 1.26.47 2.52 1.4 3.48.25.26.66.26.91 0s.25-.68 0-.94c-.68-.7-1.02-1.62-1.02-2.54 0-.92.34-1.84 1.02-2.54a.66.66 0 0 0 .01-.93zm5.69 5.1A1.62 1.62 0 1 0 6.4 4c-.01.89.72 1.62 1.62 1.62zM14.59.53a.628.628 0 0 0-.91 0c-.25.26-.25.68 0 .94.68.7 1.02 1.62 1.02 2.54 0 .92-.34 1.83-1.02 2.54-.25.26-.25.68 0 .94a.651.651 0 0 0 .92 0c.93-.96 1.4-2.22 1.4-3.48A5.048 5.048 0 0 0 14.59.53zM8.02 6.92c-.41 0-.83-.1-1.2-.3l-3.15 8.37h1.49l.86-1h4l.84 1h1.49L9.21 6.62c-.38.2-.78.3-1.19.3zm-.01.48L9.02 11h-2l.99-3.6zm-1.99 5.59l1-1h2l1 1h-4zm5.19-11.1c-.25.25-.25.67 0 .92.32.33.48.76.48 1.19 0 .43-.16.86-.48 1.19-.25.26-.25.67 0 .92a.63.63 0 0 0 .9 0c.57-.58.85-1.35.85-2.11 0-.76-.28-1.53-.85-2.11a.634.634 0 0 0-.9 0z\"/>"},"repo-clone":{"name":"repo-clone","figma":{"id":"0:669","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","repository"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15 0H9v7c0 .55.45 1 1 1h1v1h1V8h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 7h-1V6h1v1zm4 0h-3V6h3v1zm0-2h-4V1h4v4zM4 5H3V4h1v1zm0-2H3V2h1v1zM2 1h6V0H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h2v2l1.5-1.5L6 16v-2h5c.55 0 1-.45 1-1v-3H2V1zm9 10v2H6v-1H3v1H1v-2h10zM3 8h1v1H3V8zm1-1H3V6h1v1z\"/>"},"repo-force-push":{"name":"repo-force-push","figma":{"id":"0:681","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","put"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 9H8v7H6V9H4l2.25-3H4l3-4 3 4H7.75L10 9zm1-9H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h4v-1H1v-2h4v-1H2V1h9v9H9v1h2v2H9v1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"/>"},"repo-forked":{"name":"repo-forked","figma":{"id":"0:685","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","copy"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"/>"},"repo-pull":{"name":"repo-pull","figma":{"id":"0:691","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","get"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 8V6H7V4h6V2l3 3-3 3zM4 2H3v1h1V2zm7 5h1v6c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v2h-1V1H2v9h9V7zm0 4H1v2h2v-1h3v1h5v-2zM4 6H3v1h1V6zm0-2H3v1h1V4zM3 9h1V8H3v1z\"/>"},"repo-push":{"name":"repo-push","figma":{"id":"0:700","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","repository","put"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 3H3V2h1v1zM3 5h1V4H3v1zm4 0L4 9h2v7h2V9h2L7 5zm4-5H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h4v-1H1v-2h4v-1H2V1h9.02L11 10H9v1h2v2H9v1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z\"/>"},"repo":{"name":"repo","figma":{"id":"0:706","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["book","journal","repository"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z\"/>"},"rocket":{"name":"rocket","figma":{"id":"0:715","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["staff","stafftools","blast","off","space","launch","ship"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12.17 3.83c-.27-.27-.47-.55-.63-.88-.16-.31-.27-.66-.34-1.02-.58.33-1.16.7-1.73 1.13-.58.44-1.14.94-1.69 1.48-.7.7-1.33 1.81-1.78 2.45H3L0 10h3l2-2c-.34.77-1.02 2.98-1 3l1 1c.02.02 2.23-.64 3-1l-2 2v3l3-3v-3c.64-.45 1.75-1.09 2.45-1.78.55-.55 1.05-1.13 1.47-1.7.44-.58.81-1.16 1.14-1.72-.36-.08-.7-.19-1.03-.34a3.39 3.39 0 0 1-.86-.63zM16 0s-.09.38-.3 1.06c-.2.7-.55 1.58-1.06 2.66-.7-.08-1.27-.33-1.66-.72-.39-.39-.63-.94-.7-1.64C13.36.84 14.23.48 14.92.28 15.62.08 16 0 16 0z\"/>"},"rss":{"name":"rss","figma":{"id":"0:719","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["broadcast","feed","atom"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M2 13H0v-2c1.11 0 2 .89 2 2zM0 3v1a9 9 0 0 1 9 9h1C10 7.48 5.52 3 0 3zm0 4v1c2.75 0 5 2.25 5 5h1c0-3.31-2.69-6-6-6z\"/>"},"ruby":{"name":"ruby","figma":{"id":"0:724","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["code","language"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 6l-5 5V4h3l2 2zm3 0l-8 8-8-8 4-4h8l4 4zm-8 6.5L14.5 6l-3-3h-7l-3 3L8 12.5z\"/>"},"search":{"name":"search","figma":{"id":"0:729","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["magnifying","glass"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z\"/>"},"server":{"name":"server","figma":{"id":"0:733","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["computers","racks","ops"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11 6H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zM2 9H1V7h1v2zm2 0H3V7h1v2zm2 0H5V7h1v2zm2 0H7V7h1v2zm3-8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM2 4H1V2h1v2zm2 0H3V2h1v2zm2 0H5V2h1v2zm2 0H7V2h1v2zm3-1h-1V2h1v1zm0 8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm-9 3H1v-2h1v2zm2 0H3v-2h1v2zm2 0H5v-2h1v2zm2 0H7v-2h1v2z\"/>"},"settings":{"name":"settings","figma":{"id":"0:751","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["sliders","filters","controls","levels"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 7H3V2h1v5zm-1 7h1v-3H3v3zm5 0h1V8H8v6zm5 0h1v-2h-1v2zm1-12h-1v6h1V2zM9 2H8v2h1V2zM5 8H2c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm5-3H7c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm5 4h-3c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1z\"/>"},"shield":{"name":"shield","figma":{"id":"0:762","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["protect","shield","lock"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 0L0 2v6.02C0 12.69 5.31 16 7 16c1.69 0 7-3.31 7-7.98V2L7 0zM5 11l1.14-2.8a.568.568 0 0 0-.25-.59C5.33 7.25 5 6.66 5 6c0-1.09.89-2 1.98-2C8.06 4 9 4.91 9 6c0 .66-.33 1.25-.89 1.61-.19.13-.3.36-.25.59L9 11H5z\"/>"},"sign-in":{"name":"sign-in","figma":{"id":"0:764","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["door","arrow","direction","enter","log in"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 6.75V12h4V8h1v4c0 .55-.45 1-1 1H7v3l-5.45-2.72c-.33-.17-.55-.52-.55-.91V1c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v3h-1V1H3l4 2v2.25L10 3v2h4v2h-4v2L7 6.75z\"/>"},"sign-out":{"name":"sign-out","figma":{"id":"0:768","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["door","arrow","direction","leave","log out"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11.992 8.994V6.996H7.995v-2h3.997V2.999l3.998 2.998-3.998 2.998zm-1.998 2.998H5.996V2.998L2 1h7.995v2.998h1V1c0-.55-.45-.999-1-.999H.999A1.001 1.001 0 0 0 0 1v11.372c0 .39.22.73.55.91L5.996 16v-3.008h3.998c.55 0 1-.45 1-1V7.995h-1v3.997z\"/>"},"smiley":{"name":"smiley","figma":{"id":"0:772","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["emoji","smile","mood","emotion"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 0 1-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 0 1-1.45-2.17A6.59 6.59 0 0 1 1.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 0 1 8 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z\"/>"},"squirrel":{"name":"squirrel","figma":{"id":"0:779","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["ship","shipit","launch"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 1C9.79 1 8 2.31 8 3.92c0 1.94.5 3.03 0 6.08 0-4.5-2.77-6.34-4-6.34.05-.5-.48-.66-.48-.66s-.22.11-.3.34c-.27-.31-.56-.27-.56-.27l-.13.58S.7 4.29.68 6.87c.2.33 1.53.6 2.47.43.89.05.67.79.47.99C2.78 9.13 2 8 1 8S0 9 1 9s1 1 3 1c-3.09 1.2 0 4 0 4H3c-1 0-1 1-1 1h6c3 0 5-1 5-3.47 0-.85-.43-1.79-1-2.53-1.11-1.46.23-2.68 1-2 .77.68 3 1 3-2 0-2.21-1.79-4-4-4zM2.5 6c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5z\"/>"},"star":{"name":"star","figma":{"id":"0:781","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["save","remember","like"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z\"/>"},"stop":{"name":"stop","figma":{"id":"0:785","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["block","spam","report"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 1H4L0 5v6l4 4h6l4-4V5l-4-4zm3 9.5L9.5 14h-5L1 10.5v-5L4.5 2h5L13 5.5v5zM6 4h2v5H6V4zm0 6h2v2H6v-2z\"/>"},"sync":{"name":"sync","figma":{"id":"0:791","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["cycle","refresh","loop"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10.24 7.4a4.15 4.15 0 0 1-1.2 3.6 4.346 4.346 0 0 1-5.41.54L4.8 10.4.5 9.8l.6 4.2 1.31-1.26c2.36 1.74 5.7 1.57 7.84-.54a5.876 5.876 0 0 0 1.74-4.46l-1.75-.34zM2.96 5a4.346 4.346 0 0 1 5.41-.54L7.2 5.6l4.3.6-.6-4.2-1.31 1.26c-2.36-1.74-5.7-1.57-7.85.54C.5 5.03-.06 6.65.01 8.26l1.75.35A4.17 4.17 0 0 1 2.96 5z\"/>"},"tag":{"name":"tag","figma":{"id":"0:795","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["release"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.685 1.72a2.49 2.49 0 0 0-1.76-.726H3.48A2.5 2.5 0 0 0 .994 3.48v2.456c0 .656.269 1.292.726 1.76l6.024 6.024a.99.99 0 0 0 1.402 0l4.563-4.563a.99.99 0 0 0 0-1.402L7.685 1.72zM2.366 7.048a1.54 1.54 0 0 1-.467-1.123V3.48c0-.874.716-1.58 1.58-1.58h2.456c.418 0 .825.159 1.123.467l6.104 6.094-4.702 4.702-6.094-6.114zm.626-4.066h1.989v1.989H2.982V2.982h.01z\"/>"},"tasklist":{"name":"tasklist","figma":{"id":"0:800","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["todo"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.41 9H7.59C7 9 7 8.59 7 8c0-.59 0-1 .59-1h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM9.59 4C9 4 9 3.59 9 3c0-.59 0-1 .59-1h5.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H9.59zM0 3.91l1.41-1.3L3 4.2 7.09 0 8.5 1.41 3 6.91l-3-3zM7.59 12h7.81c.59 0 .59.41.59 1 0 .59 0 1-.59 1H7.59C7 14 7 13.59 7 13c0-.59 0-1 .59-1z\"/>"},"telescope":{"name":"telescope","figma":{"id":"0:806","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["science","space","look","view","explore"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 9l3 6h-1l-2-4v5H7v-6l-2 5H4l2-5 2-1zM7 0H6v1h1V0zM5 3H4v1h1V3zM2 1H1v1h1V1zM.63 9a.52.52 0 0 0-.16.67l.55.92c.13.23.41.31.64.2l1.39-.66-1.16-2-1.27.86.01.01zm7.89-5.39l-5.8 3.95L3.95 9.7l6.33-3.03-1.77-3.06h.01zm4.22 1.28l-1.47-2.52a.51.51 0 0 0-.72-.17l-1.2.83 1.84 3.2 1.33-.64c.27-.13.36-.44.22-.7z\"/>"},"terminal":{"name":"terminal","figma":{"id":"0:815","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["code","ops","shell"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7 10h4v1H7v-1zm-3 1l3-3-3-3-.75.75L5.5 8l-2.25 2.25L4 11zm10-8v10c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h12c.55 0 1 .45 1 1zm-1 0H1v10h12V3z\"/>"},"text-size":{"name":"text-size","figma":{"id":"0:821","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["font","size","text"],"width":18,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13.62 9.08L12.1 3.66h-.06l-1.5 5.42h3.08zM5.7 10.13S4.68 6.52 4.53 6.02h-.08l-1.13 4.11H5.7zM17.31 14h-2.25l-.95-3.25h-4.07L9.09 14H6.84l-.69-2.33H2.87L2.17 14H0l3.3-9.59h2.5l2.17 6.34L10.86 2h2.52l3.94 12h-.01z\"/>"},"three-bars":{"name":"three-bars","figma":{"id":"0:826","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["hamburger","menu","dropdown"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11.41 9H.59C0 9 0 8.59 0 8c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zm0-4H.59C0 5 0 4.59 0 4c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM.59 11H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1H.59C0 13 0 12.59 0 12c0-.59 0-1 .59-1z\"/>"},"thumbsdown":{"name":"thumbsdown","figma":{"id":"0:831","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["thumb","thumbsdown","rejected","dislike"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.97 7.825L15 1.88C14.83.499 13.123 0 11.993 0H5.686c-.2 0-.38.05-.53.14L3.719 1h-1.72C.94 1 0 1.938 0 2.997v3.998c0 1.059.94 2.018 1.999 1.998h1.998c.91 0 1.39.45 2.389 1.55.91.999.88 1.798.63 3.267-.08.5.06 1 .42 1.42.39.47.979.769 1.558.769 1.83 0 2.998-3.718 2.998-5.017l-.02-.98h2.04c1.159 0 1.948-.799 1.978-1.968 0-.06.02-.13-.02-.2v-.01zm-1.969 1.19h-1.989c-.7 0-1.029.28-1.029.969l.03 1.03c0 1.268-1.17 3.997-1.999 3.997-.5 0-1.079-.5-.999-1 .25-1.579.34-2.778-.89-4.137-1.019-1.13-1.768-1.879-3.127-1.879V1.999l1.668-1h6.326c.73 0 1.95.31 2 1l.02.02.999 5.996c-.03.64-.38 1-1 1h-.01z\"/>"},"thumbsup":{"name":"thumbsup","figma":{"id":"0:835","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["thumb","thumbsup","prop","ship","like"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13.991 13.991c-.05.69-1.269 1-1.998 1H5.665l-1.669-1V7.995c1.36 0 2.11-.75 3.129-1.879 1.229-1.359 1.139-2.558.879-4.127-.08-.5.5-1 1-1 .829 0 1.998 2.729 1.998 3.998l-.02 1.03c0 .689.33.969 1.02.969H14c.63 0 .98.36 1 .999l-1 5.996-.01.01zm0-7.995h-2.018l.02-.98C11.992 3.719 10.822 0 8.993 0c-.58 0-1.169.3-1.559.77-.36.41-.5.909-.42 1.409.25 1.479.28 2.278-.629 3.278-1 1.089-1.48 1.549-2.389 1.549H2c-1.061-.01-2 .929-2 1.988v3.998c0 1.06.94 1.999 1.999 1.999h1.719l1.439.86c.16.089.33.139.52.139h6.325c1.13 0 2.839-.5 2.999-1.879l.979-5.946c.02-.08.02-.14.02-.2-.03-1.17-.84-1.969-1.999-1.969h-.01z\"/>"},"tools":{"name":"tools","figma":{"id":"0:839","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["screwdriver","wrench","settings"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4.48 7.27c.26.26 1.28 1.33 1.28 1.33l.56-.58-.88-.91 1.69-1.8s-.76-.74-.43-.45c.32-1.19.03-2.51-.87-3.44C4.93.5 3.66.2 2.52.51l1.93 2-.51 1.96-1.89.52-1.93-2C-.19 4.17.1 5.48 1 6.4c.94.98 2.29 1.26 3.48.87zm6.44 1.94l-2.33 2.3 3.84 3.98c.31.33.73.49 1.14.49.41 0 .82-.16 1.14-.49.63-.65.63-1.7 0-2.35l-3.79-3.93zM16 2.53L13.55 0 6.33 7.46l.88.91-4.31 4.46-.99.53-1.39 2.27.35.37 2.2-1.44.51-1.02L7.9 9.08l.88.91L16 2.53z\"/>"},"trashcan":{"name":"trashcan","figma":{"id":"0:844","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["garbage","rubbish","recycle","delete"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11 2H9c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 12H3V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9zm1-10H2V3h9v1z\"/>"},"triangle-down":{"name":"triangle-down","figma":{"id":"0:847","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["arrow","point","direction"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 5l6 6 6-6H0z\"/>"},"triangle-left":{"name":"triangle-left","figma":{"id":"0:849","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["arrow","point","direction"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 2L0 8l6 6V2z\"/>"},"triangle-right":{"name":"triangle-right","figma":{"id":"0:851","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["arrow","point","direction"],"width":6,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 14l6-6-6-6v12z\"/>"},"triangle-up":{"name":"triangle-up","figma":{"id":"0:853","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["arrow","point","direction"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 11L6 5l-6 6h12z\"/>"},"unfold":{"name":"unfold","figma":{"id":"0:857","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["expand","open","reveal"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11.5 7.5L14 10c0 .55-.45 1-1 1H9v-1h3.5l-2-2h-7l-2 2H5v1H1c-.55 0-1-.45-1-1l2.5-2.5L0 5c0-.55.45-1 1-1h4v1H1.5l2 2h7l2-2H9V4h4c.55 0 1 .45 1 1l-2.5 2.5zM6 6h2V3h2L7 0 4 3h2v3zm2 3H6v3H4l3 3 3-3H8V9z\"/>"},"unmute":{"name":"unmute","figma":{"id":"0:862","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["loud","volume","audio","sound","play"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12 8.02c0 1.09-.45 2.09-1.17 2.83l-.67-.67c.55-.56.89-1.31.89-2.16 0-.85-.34-1.61-.89-2.16l.67-.67A3.99 3.99 0 0 1 12 8.02zM7.72 2.28L4 6H2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2l3.72 3.72c.47.47 1.28.14 1.28-.53V2.81c0-.67-.81-1-1.28-.53zm5.94.08l-.67.67a6.996 6.996 0 0 1 2.06 4.98c0 1.94-.78 3.7-2.06 4.98l.67.67A7.973 7.973 0 0 0 16 8c0-2.22-.89-4.22-2.34-5.66v.02zm-1.41 1.41l-.69.67a5.05 5.05 0 0 1 1.48 3.58c0 1.39-.56 2.66-1.48 3.56l.69.67A5.971 5.971 0 0 0 14 8.02c0-1.65-.67-3.16-1.75-4.25z\"/>"},"project":{"name":"project","figma":{"id":"0:868","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["board","kanban","columns","scrum"],"width":15,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z\"/>"},"kebab-horizontal":{"name":"kebab-horizontal","figma":{"id":"0:875","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["kebab","dot","menu","more"],"width":13,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z\"/>"},"kebab-vertical":{"name":"kebab-vertical","figma":{"id":"0:880","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["kebab","dot","menu","more"],"width":3,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 2.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0zm0 5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0zM1.5 14a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z\"/>"},"report":{"name":"report","figma":{"id":"0:885","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["report","abuse","flag"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M0 2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H7l-4 4v-4H1a1 1 0 0 1-1-1V2zm1 0h14v9H6.5L4 13.5V11H1V2zm6 6h2v2H7V8zm0-5h2v4H7V3z\"/>"},"note":{"name":"note","figma":{"id":"0:891","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["card","paper","ticket"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M3 10h4V9H3v1zm0-2h6V7H3v1zm0-2h8V5H3v1zm10 6H1V3h12v9zM1 2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1H1z\"/>"},"screen-full":{"name":"screen-full","figma":{"id":"0:898","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["fullscreen","expand"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 10h1v3c0 .547-.453 1-1 1h-3v-1h3v-3zM1 10H0v3c0 .547.453 1 1 1h3v-1H1v-3zm0-7h3V2H1c-.547 0-1 .453-1 1v3h1V3zm1 1h10v8H2V4zm2 6h6V6H4v4zm6-8v1h3v3h1V3c0-.547-.453-1-1-1h-3z\"/>"},"screen-normal":{"name":"screen-normal","figma":{"id":"0:906","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["fullscreen","expand","exit"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M2 4H0V3h2V1h1v2c0 .547-.453 1-1 1zm0 8H0v1h2v2h1v-2c0-.547-.453-1-1-1zm9-2c0 .547-.453 1-1 1H4c-.547 0-1-.453-1-1V6c0-.547.453-1 1-1h6c.547 0 1 .453 1 1v4zM9 7H5v2h4V7zm2 6v2h1v-2h2v-1h-2c-.547 0-1 .453-1 1zm1-10V1h-1v2c0 .547.453 1 1 1h2V3h-2z\"/>"},"unverified":{"name":"unverified","figma":{"id":"0:914","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["insecure","untrusted","signed"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.67 7.066l-1.08-1.34a1.5 1.5 0 0 1-.309-.77l-.19-1.698a1.51 1.51 0 0 0-1.329-1.33l-1.699-.19c-.3-.03-.56-.159-.78-.329L8.945.33a1.504 1.504 0 0 0-1.878 0l-1.34 1.08a1.5 1.5 0 0 1-.77.31l-1.698.19c-.7.08-1.25.63-1.33 1.329l-.19 1.699c-.03.3-.159.56-.329.78L.33 7.055a1.504 1.504 0 0 0 0 1.878l1.08 1.34c.17.22.28.48.31.77l.19 1.698c.08.7.63 1.25 1.329 1.33l1.699.19c.3.03.56.159.78.329l1.339 1.08c.55.439 1.329.439 1.878 0l1.34-1.08c.22-.17.48-.28.77-.31l1.698-.19c.7-.08 1.25-.63 1.33-1.329l.19-1.699c.03-.3.159-.56.329-.78l1.08-1.339a1.504 1.504 0 0 0 0-1.878zm-6.666 4.437c0 .28-.22.5-.5.5h-.999c-.27 0-.5-.22-.5-.5v-1c0-.28.23-.5.5-.5h1c.28 0 .5.22.5.5v1zm1.56-4.887c-.06.17-.17.33-.3.47-.13.16-.14.19-.33.38-.16.17-.31.3-.52.449-.11.09-.2.19-.28.27-.08.08-.14.17-.19.27-.05.1-.08.19-.11.3-.03.11-.03.13-.03.25H7.136c0-.22 0-.31.03-.48.03-.19.08-.36.14-.52.06-.14.14-.28.25-.42.11-.13.23-.25.409-.38.27-.19.36-.3.48-.52.12-.219.2-.379.2-.589 0-.27-.06-.45-.2-.58-.13-.13-.31-.19-.58-.19-.09 0-.19.02-.3.05-.11.03-.17.09-.25.16-.08.07-.14.11-.2.2a.41.41 0 0 0-.09.28H5.028c0-.38.13-.56.27-.83.16-.27.36-.499.61-.669.25-.17.549-.3.879-.38.33-.08.7-.13 1.09-.13.439 0 .829.05 1.168.13.34.09.63.22.88.39.23.17.41.38.55.63.13.25.19.55.19.88 0 .22 0 .419-.08.589l-.02-.01z\"/>"},"verified":{"name":"verified","figma":{"id":"0:919","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["trusted","secure","trustworthy","signed"],"width":16,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M15.67 7.066l-1.08-1.34a1.5 1.5 0 0 1-.309-.77l-.19-1.698a1.51 1.51 0 0 0-1.329-1.33l-1.699-.19c-.3-.03-.56-.159-.78-.329L8.945.33a1.504 1.504 0 0 0-1.878 0l-1.34 1.08a1.5 1.5 0 0 1-.77.31l-1.698.19c-.7.08-1.25.63-1.33 1.329l-.19 1.699c-.03.3-.159.56-.329.78L.33 7.055a1.504 1.504 0 0 0 0 1.878l1.08 1.34c.17.22.28.48.31.77l.19 1.698c.08.7.63 1.25 1.329 1.33l1.699.19c.3.03.56.159.78.329l1.339 1.08c.55.439 1.329.439 1.878 0l1.34-1.08c.22-.17.48-.28.77-.31l1.698-.19c.7-.08 1.25-.63 1.33-1.329l.19-1.699c.03-.3.159-.56.329-.78l1.08-1.339a1.504 1.504 0 0 0 0-1.878zm-9.164 4.936L3.008 8.505l1.5-1.5 1.998 2 4.997-4.998 1.499 1.55-6.496 6.445z\"/>"},"versions":{"name":"versions","figma":{"id":"0:923","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["history","commits"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 3H7c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-1 8H8V5h4v6zM4 4h1v1H4v6h1v1H4c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1zM1 5h1v1H1v4h1v1H1c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1z\"/>"},"watch":{"name":"watch","figma":{"id":"0:929","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["wait","hourglass","time","date"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6 8h2v1H5V5h1v3zm6 0c0 2.22-1.2 4.16-3 5.19V15c0 .55-.45 1-1 1H4c-.55 0-1-.45-1-1v-1.81C1.2 12.16 0 10.22 0 8s1.2-4.16 3-5.19V1c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1.81c1.8 1.03 3 2.97 3 5.19zm-1 0c0-2.77-2.23-5-5-5S1 5.23 1 8s2.23 5 5 5 5-2.23 5-5z\"/>"},"x":{"name":"x","figma":{"id":"0:932","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["remove","close","delete"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z\"/>"},"zap":{"name":"zap","figma":{"id":"0:934","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["electricity","lightning","props","like","star","save"],"width":10,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M10 7H6l3-7-9 9h4l-3 7 9-9z\"/>"},"key":{"name":"key","figma":{"id":"0:938","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["key","lock","secure","safe"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M12.83 2.17C12.08 1.42 11.14 1.03 10 1c-1.13.03-2.08.42-2.83 1.17S6.04 3.86 6.01 5c0 .3.03.59.09.89L0 12v1l1 1h2l1-1v-1h1v-1h1v-1h2l1.09-1.11c.3.08.59.11.91.11 1.14-.03 2.08-.42 2.83-1.17S13.97 6.14 14 5c-.03-1.14-.42-2.08-1.17-2.83zM11 5.38c-.77 0-1.38-.61-1.38-1.38 0-.77.61-1.38 1.38-1.38.77 0 1.38.61 1.38 1.38 0 .77-.61 1.38-1.38 1.38z\"/>"},"grabber":{"name":"grabber","figma":{"id":"0:942","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["mover","drap","drop","sort"],"width":8,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M8 4v1H0V4h8zM0 8h8V7H0v1zm0 3h8v-1H0v1z\"/>"},"plus-small":{"name":"plus-small","figma":{"id":"0:947","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["add","new","more","small"],"width":7,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M4 4H3v3H0v1h3v3h1V8h3V7H4V4z\"/>"},"light-bulb":{"name":"light-bulb","figma":{"id":"0:951","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["idea"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z\"/>"},"link-external":{"name":"link-external","figma":{"id":"0:956","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["out","see","more","go","to"],"width":12,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M11 10h1v3c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h3v1H1v10h10v-3zM6 2l2.25 2.25L5 7.5 6.5 9l3.25-3.25L12 8V2H6z\"/>"},"archive":{"name":"archive","figma":{"id":"2228:2","file":"FP7lqd1V00LUaT5zvdklkkZr"},"keywords":["box","catalog"],"width":14,"height":16,"path":"<path fill-rule=\"evenodd\" d=\"M13 2H1v2h12V2zM0 4a1 1 0 0 0 1 1v9a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V5a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H1a1 1 0 0 0-1 1v2zm2 1h10v9H2V5zm2 3h6V7H4v1z\"/>"}}
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/archive.svg b/htdocs/theme/common/octicons/build/svg/archive.svg
    new file mode 100644
    index 00000000000..d1eaa21f97b
    --- /dev/null
    +++ b/htdocs/theme/common/octicons/build/svg/archive.svg
    @@ -0,0 +1 @@
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M13 2H1v2h12V2zM0 4a1 1 0 0 0 1 1v9a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V5a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H1a1 1 0 0 0-1 1v2zm2 1h10v9H2V5zm2 3h6V7H4v1z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/arrow-both.svg b/htdocs/theme/common/octicons/build/svg/arrow-both.svg
    new file mode 100644
    index 00000000000..4167746d84b
    --- /dev/null
    +++ b/htdocs/theme/common/octicons/build/svg/arrow-both.svg
    @@ -0,0 +1 @@
    +<svg xmlns="http://www.w3.org/2000/svg" width="20" height="16" viewBox="0 0 20 16"><path d="M0 8l6-5v3h8V3l6 5-6 5v-3H6v3L0 8z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/beaker.svg b/htdocs/theme/common/octicons/build/svg/beaker.svg
    index 19377609a5d..0997bb0931c 100644
    --- a/htdocs/theme/common/octicons/build/svg/beaker.svg
    +++ b/htdocs/theme/common/octicons/build/svg/beaker.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M14.84 14.59L11.46 7V3h1V2h-9v1h1v4l-3.37 7.59A1 1 0 0 0 2 16h11.94c.72 0 1.2-.75.91-1.41h-.01zM4.21 10l1.25-3V3h5v4l1.25 3h-7.5zm4.25-2h1v1h-1V8zm-1-1h-1V6h1v1zm0-3h1v1h-1V4zm0-3h-1V0h1v1z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M14.38 14.59L11 7V3h1V2H3v1h1v4L.63 14.59A1 1 0 0 0 1.54 16h11.94c.72 0 1.2-.75.91-1.41h-.01zM3.75 10L5 7V3h5v4l1.25 3h-7.5zM8 8h1v1H8V8zM7 7H6V6h1v1zm0-3h1v1H7V4zm0-3H6V0h1v1z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/bell.svg b/htdocs/theme/common/octicons/build/svg/bell.svg
    index d076a0c2129..171f84f1e0f 100644
    --- a/htdocs/theme/common/octicons/build/svg/bell.svg
    +++ b/htdocs/theme/common/octicons/build/svg/bell.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M14 12v1H0v-1l.73-.58c.77-.77.81-2.55 1.19-4.42C2.69 3.23 6 2 6 2c0-.55.45-1 1-1s1 .45 1 1c0 0 3.39 1.23 4.16 5 .38 1.88.42 3.66 1.19 4.42l.66.58H14zm-7 4c1.11 0 2-.89 2-2H5c0 1.11.89 2 2 2z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M13.99 11.991v1H0v-1l.73-.58c.769-.769.809-2.547 1.189-4.416.77-3.767 4.077-4.996 4.077-4.996 0-.55.45-1 .999-1 .55 0 1 .45 1 1 0 0 3.387 1.229 4.156 4.996.38 1.879.42 3.657 1.19 4.417l.659.58h-.01zM6.995 15.99c1.11 0 1.999-.89 1.999-1.999H4.996c0 1.11.89 1.999 1.999 1.999z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/bug.svg b/htdocs/theme/common/octicons/build/svg/bug.svg
    index bd533f829e7..75188298bdc 100644
    --- a/htdocs/theme/common/octicons/build/svg/bug.svg
    +++ b/htdocs/theme/common/octicons/build/svg/bug.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M11.17 10h3V9h-3V8l3.17-1.03-.34-.94-2.83.97V6c0-.55-.45-1-1-1V4c0-.48-.36-.88-.83-.97L10.37 2h1.8V1h-2.2l-2 2h-.59L5.37 1h-2.2v1h1.8L6 3.03c-.47.09-.83.48-.83.97v1c-.55 0-1 .45-1 1v1l-2.83-.97-.34.94L4.17 8v1h-3v1h3v1L1 12.03l.34.94L4.17 12v1c0 .55.45 1 1 1h1l1-1V6h1v7l1 1h1c.55 0 1-.45 1-1v-1l2.83.97.34-.94L11.17 11v-1zm-2-5h-3V4h3v1z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M11 10h3V9h-3V8l3.17-1.03-.34-.94L11 7V6c0-.55-.45-1-1-1V4c0-.48-.36-.88-.83-.97L10.2 2H12V1H9.8l-2 2h-.59L5.2 1H3v1h1.8l1.03 1.03C5.36 3.12 5 3.51 5 4v1c-.55 0-1 .45-1 1v1l-2.83-.97-.34.94L4 8v1H1v1h3v1L.83 12.03l.34.94L4 12v1c0 .55.45 1 1 1h1l1-1V6h1v7l1 1h1c.55 0 1-.45 1-1v-1l2.83.97.34-.94L11 11v-1zM9 5H6V4h3v1z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/check.svg b/htdocs/theme/common/octicons/build/svg/check.svg
    index 2d59600912e..2df5deeef92 100644
    --- a/htdocs/theme/common/octicons/build/svg/check.svg
    +++ b/htdocs/theme/common/octicons/build/svg/check.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 5.5l-8 8-4-4L1.5 8 4 10.5 10.5 4 12 5.5z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/chevron-down.svg b/htdocs/theme/common/octicons/build/svg/chevron-down.svg
    index 3a4e0aad5c6..32eab7b007f 100644
    --- a/htdocs/theme/common/octicons/build/svg/chevron-down.svg
    +++ b/htdocs/theme/common/octicons/build/svg/chevron-down.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="10" height="16" viewBox="0 0 10 16"><path fill-rule="evenodd" d="M5 11.5l-5-5L1.5 5 5 8.75 8.5 5 10 6.5l-5 5z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="10" height="16" viewBox="0 0 10 16"><path fill-rule="evenodd" d="M5 11L0 6l1.5-1.5L5 8.25 8.5 4.5 10 6l-5 5z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/chevron-left.svg b/htdocs/theme/common/octicons/build/svg/chevron-left.svg
    index 2de62df36b3..680c9a0740c 100644
    --- a/htdocs/theme/common/octicons/build/svg/chevron-left.svg
    +++ b/htdocs/theme/common/octicons/build/svg/chevron-left.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="8" height="16" viewBox="0 0 8 16"><path fill-rule="evenodd" d="M6 3l1.5 1.5L3.75 8l3.75 3.5L6 13 1 8l5-5z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="8" height="16" viewBox="0 0 8 16"><path fill-rule="evenodd" d="M5.5 3L7 4.5 3.25 8 7 11.5 5.5 13l-5-5 5-5z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/database.svg b/htdocs/theme/common/octicons/build/svg/database.svg
    index 08b036d9aee..e686d98e4c7 100644
    --- a/htdocs/theme/common/octicons/build/svg/database.svg
    +++ b/htdocs/theme/common/octicons/build/svg/database.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6 15c-3.31 0-6-.9-6-2v-2c0-.17.09-.34.21-.5.67.86 3 1.5 5.79 1.5s5.12-.64 5.79-1.5c.13.16.21.33.21.5v2c0 1.1-2.69 2-6 2zm0-4c-3.31 0-6-.9-6-2V7c0-.11.04-.21.09-.31.03-.06.07-.13.12-.19C.88 7.36 3.21 8 6 8s5.12-.64 5.79-1.5c.05.06.09.13.12.19.05.1.09.21.09.31v2c0 1.1-2.69 2-6 2zm0-4c-3.31 0-6-.9-6-2V4 3c0-1.1 2.69-2 6-2s6 .9 6 2v2c0 1.1-2.69 2-6 2zm0-5c-2.21 0-4 .45-4 1s1.79 1 4 1 4-.45 4-1-1.79-1-4-1z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6 15c-3.31 0-6-.9-6-2v-2c0-.17.09-.34.21-.5.67.86 3 1.5 5.79 1.5s5.12-.64 5.79-1.5c.13.16.21.33.21.5v2c0 1.1-2.69 2-6 2zm0-4c-3.31 0-6-.9-6-2V7c0-.11.04-.21.09-.31.03-.06.07-.13.12-.19C.88 7.36 3.21 8 6 8s5.12-.64 5.79-1.5c.05.06.09.13.12.19.05.1.09.21.09.31v2c0 1.1-2.69 2-6 2zm0-4c-3.31 0-6-.9-6-2V3c0-1.1 2.69-2 6-2s6 .9 6 2v2c0 1.1-2.69 2-6 2zm0-5c-2.21 0-4 .45-4 1s1.79 1 4 1 4-.45 4-1-1.79-1-4-1z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/device-camera-video.svg b/htdocs/theme/common/octicons/build/svg/device-camera-video.svg
    index 8f989c86e9c..dc0e55e6f0b 100644
    --- a/htdocs/theme/common/octicons/build/svg/device-camera-video.svg
    +++ b/htdocs/theme/common/octicons/build/svg/device-camera-video.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M15.2 2.091L10 5.721v-2.72c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-2.72l5.2 3.63c.33.23.8 0 .8-.41v-10c0-.41-.47-.64-.8-.41z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M15.2 2.09L10 5.72V3c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V9.28l5.2 3.63c.33.23.8 0 .8-.41v-10c0-.41-.47-.64-.8-.41z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/file-pdf.svg b/htdocs/theme/common/octicons/build/svg/file-pdf.svg
    index 1b1703e19fd..6d04a046024 100644
    --- a/htdocs/theme/common/octicons/build/svg/file-pdf.svg
    +++ b/htdocs/theme/common/octicons/build/svg/file-pdf.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V4.5L8.5 1zM1 2h4a.68.68 0 0 0-.31.2 1.08 1.08 0 0 0-.23.47 4.22 4.22 0 0 0-.09 1.47c.06.609.173 1.211.34 1.8A21.78 21.78 0 0 1 3.6 8.6c-.5 1-.8 1.66-.91 1.84a7.161 7.161 0 0 0-.69.3 4.19 4.19 0 0 0-1 .64V2zm4.42 4.8a5.65 5.65 0 0 0 1.17 2.09c.275.237.595.417.94.53-.64.09-1.23.2-1.81.33a12.22 12.22 0 0 0-1.81.59c-.587.243.22-.44.61-1.25.365-.74.67-1.51.91-2.3l-.01.01zM11 14H1.5a.743.743 0 0 1-.17 0 2.12 2.12 0 0 0 .73-.44 10.14 10.14 0 0 0 1.78-2.38c.31-.13.58-.23.81-.31l.42-.14c.45-.13.94-.23 1.44-.33s1-.16 1.48-.2c.447.216.912.394 1.39.53.403.11.814.188 1.23.23h.38V14H11zm0-4.86a3.74 3.74 0 0 0-.64-.28 4.22 4.22 0 0 0-.75-.11c-.411.003-.822.03-1.23.08a3 3 0 0 1-1-.64 6.07 6.07 0 0 1-1.29-2.33c.111-.662.178-1.33.2-2 .02-.25.02-.5 0-.75a1.05 1.05 0 0 0-.2-.88.82.82 0 0 0-.61-.23H8l3 3v4.14z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M8.5 1H1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V4.5L8.5 1zM1 2h4a.68.68 0 0 0-.31.2 1.08 1.08 0 0 0-.23.47 4.22 4.22 0 0 0-.09 1.47c.06.609.173 1.211.34 1.8A21.78 21.78 0 0 1 3.6 8.6c-.5 1-.8 1.66-.91 1.84a7.156 7.156 0 0 0-.69.3c-.362.165-.699.38-1 .64V2zm4.42 4.8a5.65 5.65 0 0 0 1.17 2.09c.275.237.595.417.94.53-.64.09-1.23.2-1.81.33-.618.15-1.223.347-1.81.59s.22-.44.61-1.25c.365-.74.67-1.51.91-2.3l-.01.01zM11 14H1.5a.743.743 0 0 1-.17 0 2.12 2.12 0 0 0 .73-.44 10.14 10.14 0 0 0 1.78-2.38c.31-.13.58-.23.81-.31l.42-.14c.45-.13.94-.23 1.44-.33s1-.16 1.48-.2c.447.216.912.394 1.39.53.403.11.814.188 1.23.23h.38V14H11zm0-4.86a3.743 3.743 0 0 0-.64-.28 4.221 4.221 0 0 0-.75-.11c-.411.003-.822.03-1.23.08a3 3 0 0 1-1-.64 6.07 6.07 0 0 1-1.29-2.33c.111-.661.178-1.33.2-2 .02-.25.02-.5 0-.75a1.05 1.05 0 0 0-.2-.88.82.82 0 0 0-.61-.23H8l3 3v4.14z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/flame.svg b/htdocs/theme/common/octicons/build/svg/flame.svg
    index 49507a1073a..1fcb94b429a 100644
    --- a/htdocs/theme/common/octicons/build/svg/flame.svg
    +++ b/htdocs/theme/common/octicons/build/svg/flame.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.01c.81 2.17.41 3.38-.52 4.31C3.55 5.37 1.98 6.15.9 7.68c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.01 8.68 2.15 5.05.02L5.03 0l.02.01z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/gear.svg b/htdocs/theme/common/octicons/build/svg/gear.svg
    index aded0c46675..bf82007a485 100644
    --- a/htdocs/theme/common/octicons/build/svg/gear.svg
    +++ b/htdocs/theme/common/octicons/build/svg/gear.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M14 8.76v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45L7.77 1h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.22v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.74v.02zm-7 2.23c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M14 8.77v-1.6l-1.94-.64-.45-1.09.88-1.84-1.13-1.13-1.81.91-1.09-.45-.69-1.92h-1.6l-.63 1.94-1.11.45-1.84-.88-1.13 1.13.91 1.81-.45 1.09L0 7.23v1.59l1.94.64.45 1.09-.88 1.84 1.13 1.13 1.81-.91 1.09.45.69 1.92h1.59l.63-1.94 1.11-.45 1.84.88 1.13-1.13-.92-1.81.47-1.09L14 8.75v.02zM7 11c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/gift.svg b/htdocs/theme/common/octicons/build/svg/gift.svg
    index 761be5473ca..4539ce60945 100644
    --- a/htdocs/theme/common/octicons/build/svg/gift.svg
    +++ b/htdocs/theme/common/octicons/build/svg/gift.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M13.02 4h-1.38c.19-.33.33-.67.36-.91.06-.67-.11-1.22-.52-1.61-.36-.38-.81-.48-1.36-.48h-.11c-.53.02-1.11.25-1.53.58-.42.33-.73.72-.97 1.2-.23-.48-.55-.88-.97-1.2-.42-.32-1-.58-1.53-.58h-.03c-.56 0-1.06.09-1.44.48-.41.39-.58.94-.52 1.61.03.23.17.58.36.91H2c-.55 0-1 .45-1 1v3h1v5c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8h1V5c0-.55-.45-1-1-1h.02zm-4.78-.88c.17-.36.42-.67.75-.92.3-.23.72-.39 1.05-.41h.09c.45 0 .66.11.8.25s.33.39.3.95c-.05.19-.25.61-.5 1h-2.9l.41-.88v.01zM4.11 2.04c.13-.13.31-.25.91-.25.31 0 .72.17 1.03.41.33.25.58.55.75.92l.42.88h-2.9c-.25-.39-.45-.81-.5-1-.03-.56.16-.81.3-.95l-.01-.01zm2.91 10.95h-4V8h4v5-.01zm0-6h-5V5h5v2-.01zm5 6h-4V8h4v5-.01zm1-6h-5V5h5v2-.01z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M13 4h-1.38c.19-.33.33-.67.36-.91.06-.67-.11-1.22-.52-1.61C11.1 1.1 10.65 1 10.1 1h-.11c-.53.02-1.11.25-1.53.58-.42.33-.73.72-.97 1.2-.23-.48-.55-.88-.97-1.2-.42-.32-1-.58-1.53-.58h-.03c-.56 0-1.06.09-1.44.48-.41.39-.58.94-.52 1.61.03.23.17.58.36.91H1.98c-.55 0-1 .45-1 1v3h1v5c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8h1V5c0-.55-.45-1-1-1H13zm-4.78-.88c.17-.36.42-.67.75-.92.3-.23.72-.39 1.05-.41h.09c.45 0 .66.11.8.25s.33.39.3.95c-.05.19-.25.61-.5 1h-2.9l.41-.88v.01zM4.09 2.04c.13-.13.31-.25.91-.25.31 0 .72.17 1.03.41.33.25.58.55.75.92L7.2 4H4.3c-.25-.39-.45-.81-.5-1-.03-.56.16-.81.3-.95l-.01-.01zM7 12.99H3V8h4v5-.01zm0-6H2V5h5v2-.01zm5 6H8V8h4v5-.01zm1-6H8V5h5v2-.01z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/gist-secret.svg b/htdocs/theme/common/octicons/build/svg/gist-secret.svg
    index a6459e19bf2..6495281267c 100644
    --- a/htdocs/theme/common/octicons/build/svg/gist-secret.svg
    +++ b/htdocs/theme/common/octicons/build/svg/gist-secret.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7.782 10.5l1 3.5h-4l1-3.5-.75-1.5h3.5l-.75 1.5zm2-4.5h-6l-2 1h10l-2-1zm-1-4l-2 1-2-1-1 3h6l-1-3zm4.03 7.75L9.782 9l1 2-2 3h3.22c.45 0 .86-.31.97-.75l.56-2.28c.14-.53-.19-1.08-.72-1.22zM3.782 9l-3.03.75c-.53.14-.86.69-.72 1.22l.56 2.28c.11.44.52.75.97.75h3.22l-2-3 1-2z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M8 10.5L9 14H5l1-3.5L5.25 9h3.5L8 10.5zM10 6H4L2 7h10l-2-1zM9 2L7 3 5 2 4 5h6L9 2zm4.03 7.75L10 9l1 2-2 3h3.22c.45 0 .86-.31.97-.75l.56-2.28c.14-.53-.19-1.08-.72-1.22zM4 9l-3.03.75c-.53.14-.86.69-.72 1.22l.56 2.28c.11.44.52.75.97.75H5l-2-3 1-2z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/git-merge.svg b/htdocs/theme/common/octicons/build/svg/git-merge.svg
    index fedb516064a..63c43f76936 100644
    --- a/htdocs/theme/common/octicons/build/svg/git-merge.svg
    +++ b/htdocs/theme/common/octicons/build/svg/git-merge.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M10 7.01c-.73 0-1.38.41-1.73 1.02v-.02C7.22 7.99 6 7.65 5.14 6.99c-.75-.58-1.5-1.61-1.89-2.44A1.993 1.993 0 0 0 2 1C.89 1 0 1.9 0 3.01a2 2 0 0 0 1 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2a1.993 1.993 0 0 0 1-3.72V7.68c.67.7 1.44 1.27 2.3 1.69.86.42 2.03.63 2.97.64v-.02c.36.61 1 1.02 1.73 1.02 1.11 0 2-.89 2-2 0-1.11-.89-2-2-2zm-6.8 6c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.21c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm8 6c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M10 7c-.73 0-1.38.41-1.73 1.02V8C7.22 7.98 6 7.64 5.14 6.98c-.75-.58-1.5-1.61-1.89-2.44A1.993 1.993 0 0 0 2 .99C.89.99 0 1.89 0 3a2 2 0 0 0 1 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2a1.993 1.993 0 0 0 1-3.72V7.67c.67.7 1.44 1.27 2.3 1.69.86.42 2.03.63 2.97.64v-.02c.36.61 1 1.02 1.73 1.02 1.11 0 2-.89 2-2 0-1.11-.89-2-2-2zm-6.8 6c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm8 6c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/heart.svg b/htdocs/theme/common/octicons/build/svg/heart.svg
    index 8b81f8845fe..e9407b514c7 100644
    --- a/htdocs/theme/common/octicons/build/svg/heart.svg
    +++ b/htdocs/theme/common/octicons/build/svg/heart.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M11.2 3c-.52-.63-1.25-.95-2.2-1-.97 0-1.69.42-2.2 1-.51.58-.78.92-.8 1-.02-.08-.28-.42-.8-1-.52-.58-1.17-1-2.2-1-.95.05-1.69.38-2.2 1-.52.61-.78 1.28-.8 2 0 .52.09 1.52.67 2.67C1.25 8.82 3.01 10.61 6 13c2.98-2.39 4.77-4.17 5.34-5.33C11.91 6.51 12 5.5 12 5c-.02-.72-.28-1.39-.8-2.02V3z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M9 2c-.97 0-1.69.42-2.2 1-.51.58-.78.92-.8 1-.02-.08-.28-.42-.8-1-.52-.58-1.17-1-2.2-1-1.632.086-2.954 1.333-3 3 0 .52.09 1.52.67 2.67C1.25 8.82 3.01 10.61 6 13c2.98-2.39 4.77-4.17 5.34-5.33C11.91 6.51 12 5.5 12 5c-.047-1.69-1.342-2.913-3-3z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/info.svg b/htdocs/theme/common/octicons/build/svg/info.svg
    index 745ef337a3d..26db463ff03 100644
    --- a/htdocs/theme/common/octicons/build/svg/info.svg
    +++ b/htdocs/theme/common/octicons/build/svg/info.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.71a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 8.01c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V8v.01zM7 2.32C3.86 2.32 1.3 4.86 1.3 8c0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 1c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/list-ordered.svg b/htdocs/theme/common/octicons/build/svg/list-ordered.svg
    index 64126c3b8ef..2450532b491 100644
    --- a/htdocs/theme/common/octicons/build/svg/list-ordered.svg
    +++ b/htdocs/theme/common/octicons/build/svg/list-ordered.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12.01 13c0 .59 0 1-.59 1H4.6c-.59 0-.59-.41-.59-1 0-.59 0-1 .59-1h6.81c.59 0 .59.41.59 1h.01zM4.6 4h6.81C12 4 12 3.59 12 3c0-.59 0-1-.59-1H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1zm6.81 3H4.6c-.59 0-.59.41-.59 1 0 .59 0 1 .59 1h6.81C12 9 12 8.59 12 8c0-.59 0-1-.59-1zm-9.4-6h-.72c-.3.19-.58.25-1.03.34V2h.75v2.14H.17V5h2.84v-.86h-1V1zm.25 8.13c-.17 0-.45.03-.66.06.53-.56 1.14-1.25 1.14-1.89C2.72 6.52 2.18 6 1.38 6c-.59 0-.97.2-1.38.64l.58.58c.19-.19.38-.38.64-.38.28 0 .48.16.48.52 0 .53-.77 1.2-1.7 2.06V10h3l-.09-.88h-.66l.01.01zm-.08 3.78v-.03c.44-.19.64-.47.64-.86 0-.7-.56-1.11-1.44-1.11-.48 0-.89.19-1.28.52l.55.64c.25-.2.44-.31.69-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.75c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.48.66c.3.36.77.56 1.41.56.83 0 1.53-.41 1.53-1.16 0-.5-.31-.81-.77-.94v.01z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M12 12.99c0 .589 0 .998-.59.998H4.597c-.59 0-.59-.41-.59-.999 0-.59 0-.999.59-.999H11.4c.59 0 .59.41.59 1H12zM4.596 3.996H11.4c.59 0 .59-.41.59-1 0-.589 0-.999-.59-.999H4.596c-.59 0-.59.41-.59 1 0 .589 0 .999.59.999zM11.4 6.994H4.596c-.59 0-.59.41-.59 1 0 .589 0 .999.59.999H11.4c.59 0 .59-.41.59-1 0-.59 0-.999-.59-.999zM2.008 1h-.72C.99 1.19.71 1.25.26 1.34V2h.75v2.138H.17v.859h2.837v-.86h-.999V1zm.25 8.123c-.17 0-.45.03-.66.06.53-.56 1.14-1.249 1.14-1.888-.02-.78-.56-1.299-1.36-1.299-.589 0-.968.2-1.378.64l.58.579c.19-.19.38-.38.639-.38.28 0 .48.16.48.52 0 .53-.77 1.199-1.699 2.058v.58h2.998l-.09-.88h-.66l.01.01zm-.08 3.777v-.03c.44-.19.64-.47.64-.859 0-.7-.56-1.11-1.44-1.11-.479 0-.888.19-1.278.52l.55.64c.25-.2.44-.31.689-.31.27 0 .42.13.42.36 0 .27-.2.44-.86.44v.749c.83 0 .98.17.98.47 0 .25-.23.38-.58.38-.28 0-.56-.14-.81-.38l-.479.659c.3.36.77.56 1.409.56.83 0 1.529-.41 1.529-1.16 0-.5-.31-.809-.77-.939v.01z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/logo-github.svg b/htdocs/theme/common/octicons/build/svg/logo-github.svg
    index 253c13ecbaa..0da3476f6e3 100644
    --- a/htdocs/theme/common/octicons/build/svg/logo-github.svg
    +++ b/htdocs/theme/common/octicons/build/svg/logo-github.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="45" height="16" viewBox="0 0 45 16"><path fill-rule="evenodd" d="M18.53 12.03h-.02c.009 0 .015.01.024.011h.006l-.01-.01zm.004.011c-.093.001-.327.05-.574.05-.78 0-1.05-.36-1.05-.83V8.13h1.59c.09 0 .16-.08.16-.19v-1.7c0-.09-.08-.17-.16-.17h-1.59V3.96c0-.08-.05-.13-.14-.13h-2.16c-.09 0-.14.05-.14.13v2.17s-1.09.27-1.16.28c-.08.02-.13.09-.13.17v1.36c0 .11.08.19.17.19h1.11v3.28c0 2.44 1.7 2.69 2.86 2.69.53 0 1.17-.17 1.27-.22.06-.02.09-.09.09-.16v-1.5a.177.177 0 0 0-.146-.18zm23.696-2.2c0-1.81-.73-2.05-1.5-1.97-.6.04-1.08.34-1.08.34v3.52s.49.34 1.22.36c1.03.03 1.36-.34 1.36-2.25zm2.43-.16c0 3.43-1.11 4.41-3.05 4.41-1.64 0-2.52-.83-2.52-.83s-.04.46-.09.52c-.03.06-.08.08-.14.08h-1.48c-.1 0-.19-.08-.19-.17l.02-11.11c0-.09.08-.17.17-.17h2.13c.09 0 .17.08.17.17v3.77s.82-.53 2.02-.53l-.01-.02c1.2 0 2.97.45 2.97 3.88zm-8.72-3.61H33.84c-.11 0-.17.08-.17.19v5.44s-.55.39-1.3.39-.97-.34-.97-1.09V6.25c0-.09-.08-.17-.17-.17h-2.14c-.09 0-.17.08-.17.17v5.11c0 2.2 1.23 2.75 2.92 2.75 1.39 0 2.52-.77 2.52-.77s.05.39.08.45c.02.05.09.09.16.09h1.34c.11 0 .17-.08.17-.17l.02-7.47c0-.09-.08-.17-.19-.17zm-23.7-.01h-2.13c-.09 0-.17.09-.17.2v7.34c0 .2.13.27.3.27h1.92c.2 0 .25-.09.25-.27V6.23c0-.09-.08-.17-.17-.17zm-1.05-3.38c-.77 0-1.38.61-1.38 1.38 0 .77.61 1.38 1.38 1.38.75 0 1.36-.61 1.36-1.38 0-.77-.61-1.38-1.36-1.38zm16.49-.25h-2.11c-.09 0-.17.08-.17.17v4.09h-3.31V2.6c0-.09-.08-.17-.17-.17h-2.13c-.09 0-.17.08-.17.17v11.11c0 .09.09.17.17.17h2.13c.09 0 .17-.08.17-.17V8.96h3.31l-.02 4.75c0 .09.08.17.17.17h2.13c.09 0 .17-.08.17-.17V2.6c0-.09-.08-.17-.17-.17zM8.81 7.35v5.74c0 .04-.01.11-.06.13 0 0-1.25.89-3.31.89-2.49 0-5.44-.78-5.44-5.92S2.58 1.99 5.1 2c2.18 0 3.06.49 3.2.58.04.05.06.09.06.14L7.94 4.5c0 .09-.09.2-.2.17-.36-.11-.9-.33-2.17-.33-1.47 0-3.05.42-3.05 3.73s1.5 3.7 2.58 3.7c.92 0 1.25-.11 1.25-.11v-2.3H4.88c-.11 0-.19-.08-.19-.17V7.35c0-.09.08-.17.19-.17h3.74c.11 0 .19.08.19.17z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="45" height="16" viewBox="0 0 45 16"><path fill-rule="evenodd" d="M18.53 12.03h-.02c.009 0 .015.01.024.011h.006l-.01-.01zm.004.011c-.093.001-.327.05-.574.05-.78 0-1.05-.36-1.05-.83V8.13h1.59c.09 0 .16-.08.16-.19v-1.7c0-.09-.08-.17-.16-.17h-1.59V3.96c0-.08-.05-.13-.14-.13h-2.16c-.09 0-.14.05-.14.13v2.17s-1.09.27-1.16.28c-.08.02-.13.09-.13.17v1.36c0 .11.08.19.17.19h1.11v3.28c0 2.44 1.7 2.69 2.86 2.69.53 0 1.17-.17 1.27-.22.06-.02.09-.09.09-.16v-1.5a.177.177 0 0 0-.146-.18zm23.696-2.2c0-1.81-.73-2.05-1.5-1.97-.6.04-1.08.34-1.08.34v3.52s.49.34 1.22.36c1.03.03 1.36-.34 1.36-2.25zm2.43-.16c0 3.43-1.11 4.41-3.05 4.41-1.64 0-2.52-.83-2.52-.83s-.04.46-.09.52c-.03.06-.08.08-.14.08h-1.48c-.1 0-.19-.08-.19-.17l.02-11.11c0-.09.08-.17.17-.17h2.13c.09 0 .17.08.17.17v3.77s.82-.53 2.02-.53l-.01-.02c1.2 0 2.97.45 2.97 3.88zm-8.72-3.61h-2.1c-.11 0-.17.08-.17.19v5.44s-.55.39-1.3.39-.97-.34-.97-1.09V6.25c0-.09-.08-.17-.17-.17h-2.14c-.09 0-.17.08-.17.17v5.11c0 2.2 1.23 2.75 2.92 2.75 1.39 0 2.52-.77 2.52-.77s.05.39.08.45c.02.05.09.09.16.09h1.34c.11 0 .17-.08.17-.17l.02-7.47c0-.09-.08-.17-.19-.17zm-23.7-.01h-2.13c-.09 0-.17.09-.17.2v7.34c0 .2.13.27.3.27h1.92c.2 0 .25-.09.25-.27V6.23c0-.09-.08-.17-.17-.17zm-1.05-3.38c-.77 0-1.38.61-1.38 1.38 0 .77.61 1.38 1.38 1.38.75 0 1.36-.61 1.36-1.38 0-.77-.61-1.38-1.36-1.38zm16.49-.25h-2.11c-.09 0-.17.08-.17.17v4.09h-3.31V2.6c0-.09-.08-.17-.17-.17h-2.13c-.09 0-.17.08-.17.17v11.11c0 .09.09.17.17.17h2.13c.09 0 .17-.08.17-.17V8.96h3.31l-.02 4.75c0 .09.08.17.17.17h2.13c.09 0 .17-.08.17-.17V2.6c0-.09-.08-.17-.17-.17zM8.81 7.35v5.74c0 .04-.01.11-.06.13 0 0-1.25.89-3.31.89-2.49 0-5.44-.78-5.44-5.92S2.58 1.99 5.1 2c2.18 0 3.06.49 3.2.58.04.05.06.09.06.14L7.94 4.5c0 .09-.09.2-.2.17-.36-.11-.9-.33-2.17-.33-1.47 0-3.05.42-3.05 3.73s1.5 3.7 2.58 3.7c.92 0 1.25-.11 1.25-.11v-2.3H4.88c-.11 0-.19-.08-.19-.17V7.35c0-.09.08-.17.19-.17h3.74c.11 0 .19.08.19.17z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/mortar-board.svg b/htdocs/theme/common/octicons/build/svg/mortar-board.svg
    index 302415b1736..869f9ae8e7c 100644
    --- a/htdocs/theme/common/octicons/build/svg/mortar-board.svg
    +++ b/htdocs/theme/common/octicons/build/svg/mortar-board.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M7.808 9.405l-3.83-1.19c-4-8 0 1.5 0 2.5s1.8 1.5 4 1.5 4-.5 4-1.5v-2.5l-3.83 1.19a.73.73 0 0 1-.36 0h.02zm.28-6.39a.34.34 0 0 0-.2 0l-7.64 2.38a.35.35 0 0 0 0 .67l1.73.55v1.77c-.3.17-.5.5-.5.86 0 .19.05.36.14.5-.08.14-.14.31-.14.5v2.58c0 .55 2 .55 2 0v-2.58c0-.19-.05-.36-.14-.5.08-.14.14-.31.14-.5 0-.38-.2-.69-.5-.86v-1.45l4.89 1.53c.06.02.14.02.2 0l7.64-2.38a.35.35 0 0 0 0-.67l-7.63-2.39.01-.01zm-.09 3.2c-.55 0-1-.22-1-.5s.45-.5 1-.5 1 .22 1 .5-.45.5-1 .5z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M7.83 9.19L4 8c-4-8 0 1.5 0 2.5S5.8 12 8 12s4-.5 4-1.5V8L8.17 9.19a.73.73 0 0 1-.36 0h.02zm.28-6.39a.34.34 0 0 0-.2 0L.27 5.18a.35.35 0 0 0 0 .67L2 6.4v1.77c-.3.17-.5.5-.5.86 0 .19.05.36.14.5-.08.14-.14.31-.14.5v2.58c0 .55 2 .55 2 0v-2.58c0-.19-.05-.36-.14-.5.08-.14.14-.31.14-.5 0-.38-.2-.69-.5-.86V6.72l4.89 1.53c.06.02.14.02.2 0l7.64-2.38a.35.35 0 0 0 0-.67L8.1 2.81l.01-.01zM8.02 6c-.55 0-1-.22-1-.5s.45-.5 1-.5 1 .22 1 .5-.45.5-1 .5z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/mute.svg b/htdocs/theme/common/octicons/build/svg/mute.svg
    index 4d894a1cadd..e448808fbe5 100644
    --- a/htdocs/theme/common/octicons/build/svg/mute.svg
    +++ b/htdocs/theme/common/octicons/build/svg/mute.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 2.75v10.38c0 .67-.81 1-1.28.53L3 9.94H1c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.75 8 2.08 8 2.75zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06 1.97 1.97-1.97 1.97 1.06 1.06L12.5 9l1.97 1.97 1.06-1.06-1.97-1.97 1.97-1.97z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 2.81v10.38c0 .67-.81 1-1.28.53L3 10H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.81 8 2.14 8 2.81zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06L11.44 8 9.47 9.97l1.06 1.06 1.97-1.97 1.97 1.97 1.06-1.06L13.56 8l1.97-1.97z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/organization.svg b/htdocs/theme/common/octicons/build/svg/organization.svg
    index af333e418dd..6bf4ae94b40 100644
    --- a/htdocs/theme/common/octicons/build/svg/organization.svg
    +++ b/htdocs/theme/common/octicons/build/svg/organization.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M16 12.999c0 .439-.45 1-1 1H7.995c-.539 0-.994-.447-.995-.999H1c-.54 0-1-.561-1-1 0-2.634 3-4 3-4s.229-.409 0-1c-.841-.621-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.442.58 2.5 3c.058 2.41-.159 2.379-1 3-.229.59 0 1 0 1s1.549.711 2.42 2.088A6.78 6.78 0 0 1 10 8.999s.229-.409 0-1c-.841-.62-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.437.581 2.495 3c.059 2.41-.158 2.38-1 3-.229.59 0 1 0 1s3.005 1.366 3.005 4z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M16 12.999c0 .439-.45 1-1 1H7.995c-.539 0-.994-.447-.995-.999H1c-.54 0-1-.561-1-1 0-2.634 3-4 3-4s.229-.409 0-1c-.841-.621-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.442.58 2.5 3c.058 2.41-.159 2.379-1 3-.229.59 0 1 0 1s1.549.711 2.42 2.088C9.196 9.369 10 8.999 10 8.999s.229-.409 0-1c-.841-.62-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.437.581 2.495 3c.059 2.41-.158 2.38-1 3-.229.59 0 1 0 1s3.005 1.366 3.005 4z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/package.svg b/htdocs/theme/common/octicons/build/svg/package.svg
    index 720e30026a5..2db03518db2 100644
    --- a/htdocs/theme/common/octicons/build/svg/package.svg
    +++ b/htdocs/theme/common/octicons/build/svg/package.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M1 4.732v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97v-7.47c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 0 0-.5 0l-6.5 1.74c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59v-6.77l6 1.61v6.75zm-6-9.36l2.5-.67 6.5 1.73-2.5.67L2 4.463zm13 7.77l-6 1.59v-6.75l2-.55v2.44l2-.53v-2.44l2-.53v6.77zm-2-7.24l-6.5-1.73 2-.53 6.5 1.73-2 .53z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 0 0-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/pencil.svg b/htdocs/theme/common/octicons/build/svg/pencil.svg
    index 41c6e7ec6f8..8702f4dcecd 100644
    --- a/htdocs/theme/common/octicons/build/svg/pencil.svg
    +++ b/htdocs/theme/common/octicons/build/svg/pencil.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M0 11.592v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3l-1.3 1.3-3-3 1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/pin.svg b/htdocs/theme/common/octicons/build/svg/pin.svg
    index 861ae05afdc..95405c537c0 100644
    --- a/htdocs/theme/common/octicons/build/svg/pin.svg
    +++ b/htdocs/theme/common/octicons/build/svg/pin.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M10 1.494v.8l.5 1-4.5 3H2.2c-.44 0-.67.53-.34.86L5 10.294l-4 5 5-4 3.14 3.14a.5.5 0 0 0 .86-.34v-3.8l3-4.5 1 .5h.8c.44 0 .67-.53.34-.86l-4.28-4.28a.5.5 0 0 0-.86.34z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M10 1.2V2l.5 1L6 6H2.2c-.44 0-.67.53-.34.86L5 10l-4 5 5-4 3.14 3.14a.5.5 0 0 0 .86-.34V10l3-4.5 1 .5h.8c.44 0 .67-.53.34-.86L10.86.86a.5.5 0 0 0-.86.34z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/pulse.svg b/htdocs/theme/common/octicons/build/svg/pulse.svg
    index d87d04ea419..4ec57bacaae 100644
    --- a/htdocs/theme/common/octicons/build/svg/pulse.svg
    +++ b/htdocs/theme/common/octicons/build/svg/pulse.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M11.5 8.4L8.8 5.8 6.6 8.9 5.5 2 2.38 8.4H0v2h3.6l.9-1.8.9 5.4L9 8.9l1.6 1.5H14v-2h-2.5z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M11.5 8L8.8 5.4 6.6 8.5 5.5 1.6 2.38 8H0v2h3.6l.9-1.8.9 5.4L9 8.5l1.6 1.5H14V8h-2.5z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/quote.svg b/htdocs/theme/common/octicons/build/svg/quote.svg
    index 7b5f4a7f191..da5c2b22cef 100644
    --- a/htdocs/theme/common/octicons/build/svg/quote.svg
    +++ b/htdocs/theme/common/octicons/build/svg/quote.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.16 3.84C3.73 5.4 2.55 7.01 2.55 9.7c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25C0 6.62 1.75 3.89 5.02 2l1.14 1.84zm7 0C10.73 5.4 9.55 7.01 9.55 9.7c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.16 3.5C3.73 5.06 2.55 6.67 2.55 9.36c.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.9 0-2.99-1.52-2.99-4.25 0-3.8 1.75-6.53 5.02-8.42L6.16 3.5zm7 0c-2.43 1.56-3.61 3.17-3.61 5.86.16-.05.3-.05.44-.05 1.27 0 2.5.86 2.5 2.41 0 1.61-1.03 2.61-2.5 2.61-1.89 0-2.98-1.52-2.98-4.25 0-3.8 1.75-6.53 5.02-8.42l1.14 1.84h-.01z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/radio-tower.svg b/htdocs/theme/common/octicons/build/svg/radio-tower.svg
    index a438661ce55..f89a7052a7a 100644
    --- a/htdocs/theme/common/octicons/build/svg/radio-tower.svg
    +++ b/htdocs/theme/common/octicons/build/svg/radio-tower.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M4.78 5.78c.25-.25.25-.67 0-.92-.32-.33-.48-.76-.48-1.19 0-.43.16-.86.48-1.19.25-.26.25-.67 0-.92a.613.613 0 0 0-.45-.19c-.16 0-.33.06-.45.19-.57.58-.85 1.35-.85 2.11 0 .76.29 1.53.85 2.11.25.25.66.25.9 0zM2.32.19a.651.651 0 0 0-.92 0C.47 1.15 0 2.41 0 3.66c0 1.26.47 2.52 1.4 3.48.25.26.66.26.91 0s.25-.68 0-.94c-.68-.7-1.02-1.62-1.02-2.54 0-.92.34-1.84 1.02-2.54a.66.66 0 0 0 .01-.93zm5.69 5.1a1.62 1.62 0 1 0-1.62-1.62c-.01.89.72 1.62 1.62 1.62zM14.58.2a.628.628 0 0 0-.91 0c-.25.26-.25.68 0 .94.68.7 1.02 1.62 1.02 2.54 0 .92-.34 1.83-1.02 2.54-.25.26-.25.68 0 .94a.651.651 0 0 0 .92 0c.93-.96 1.4-2.22 1.4-3.48A5.048 5.048 0 0 0 14.58.2zM8.01 6.59c-.41 0-.83-.1-1.2-.3l-3.15 8.37h1.49l.86-1h4l.84 1h1.49L9.2 6.29c-.38.2-.78.3-1.19.3zM8 7.07l1.01 3.6h-2L8 7.07zm-1.99 5.59l1-1h2l1 1h-4zm5.19-11.1c-.25.25-.25.67 0 .92.32.33.48.76.48 1.19 0 .43-.16.86-.48 1.19-.25.26-.25.67 0 .92a.63.63 0 0 0 .9 0c.57-.58.85-1.35.85-2.11 0-.76-.28-1.53-.85-2.11a.634.634 0 0 0-.9 0z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M4.79 6.11c.25-.25.25-.67 0-.92-.32-.33-.48-.76-.48-1.19 0-.43.16-.86.48-1.19.25-.26.25-.67 0-.92a.613.613 0 0 0-.45-.19c-.16 0-.33.06-.45.19-.57.58-.85 1.35-.85 2.11 0 .76.29 1.53.85 2.11.25.25.66.25.9 0zM2.33.52a.651.651 0 0 0-.92 0C.48 1.48.01 2.74.01 3.99c0 1.26.47 2.52 1.4 3.48.25.26.66.26.91 0s.25-.68 0-.94c-.68-.7-1.02-1.62-1.02-2.54 0-.92.34-1.84 1.02-2.54a.66.66 0 0 0 .01-.93zm5.69 5.1A1.62 1.62 0 1 0 6.4 4c-.01.89.72 1.62 1.62 1.62zM14.59.53a.628.628 0 0 0-.91 0c-.25.26-.25.68 0 .94.68.7 1.02 1.62 1.02 2.54 0 .92-.34 1.83-1.02 2.54-.25.26-.25.68 0 .94a.651.651 0 0 0 .92 0c.93-.96 1.4-2.22 1.4-3.48A5.048 5.048 0 0 0 14.59.53zM8.02 6.92c-.41 0-.83-.1-1.2-.3l-3.15 8.37h1.49l.86-1h4l.84 1h1.49L9.21 6.62c-.38.2-.78.3-1.19.3zm-.01.48L9.02 11h-2l.99-3.6zm-1.99 5.59l1-1h2l1 1h-4zm5.19-11.1c-.25.25-.25.67 0 .92.32.33.48.76.48 1.19 0 .43-.16.86-.48 1.19-.25.26-.25.67 0 .92a.63.63 0 0 0 .9 0c.57-.58.85-1.35.85-2.11 0-.76-.28-1.53-.85-2.11a.634.634 0 0 0-.9 0z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/reply.svg b/htdocs/theme/common/octicons/build/svg/reply.svg
    index 5f89aad3010..12717db93da 100644
    --- a/htdocs/theme/common/octicons/build/svg/reply.svg
    +++ b/htdocs/theme/common/octicons/build/svg/reply.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.5 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L1 5.5 6.5 0v3.5z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6 3.5c3.92.44 8 3.125 8 10-2.312-5.062-4.75-6-8-6V11L.5 5.5 6 0v3.5z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/sign-out.svg b/htdocs/theme/common/octicons/build/svg/sign-out.svg
    index e0893cbce43..ccfc4959ae3 100644
    --- a/htdocs/theme/common/octicons/build/svg/sign-out.svg
    +++ b/htdocs/theme/common/octicons/build/svg/sign-out.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M12 9V7H8V5h4V3l4 3-4 3zm-2 3H6V3L2 1h8v3h1V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v11.38c0 .39.22.73.55.91L6 16.01V13h4c.55 0 1-.45 1-1V8h-1v4z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M11.992 8.994V6.996H7.995v-2h3.997V2.999l3.998 2.998-3.998 2.998zm-1.998 2.998H5.996V2.998L2 1h7.995v2.998h1V1c0-.55-.45-.999-1-.999H.999A1.001 1.001 0 0 0 0 1v11.372c0 .39.22.73.55.91L5.996 16v-3.008h3.998c.55 0 1-.45 1-1V7.995h-1v3.997z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/squirrel.svg b/htdocs/theme/common/octicons/build/svg/squirrel.svg
    index 7c974be5979..3e5b51beea4 100644
    --- a/htdocs/theme/common/octicons/build/svg/squirrel.svg
    +++ b/htdocs/theme/common/octicons/build/svg/squirrel.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M11.75 1c-2.21 0-4 1.31-4 2.92 0 1.94.5 3.03 0 6.08 0-4.5-2.77-6.34-4-6.34.05-.5-.48-.66-.48-.66s-.22.11-.3.34c-.27-.31-.56-.27-.56-.27l-.13.58S.45 4.29.43 6.87c.2.33 1.53.6 2.47.43.89.05.67.79.47.99C2.53 9.13 1.75 8 .75 8s-1 1 0 1 1 1 3 1c-3.09 1.2 0 4 0 4h-1c-1 0-1 1-1 1h6c3 0 5-1 5-3.47 0-.85-.43-1.79-1-2.53-1.11-1.46.23-2.68 1-2 .77.68 3 1 3-2 0-2.21-1.79-4-4-4zm-9.5 5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M12 1C9.79 1 8 2.31 8 3.92c0 1.94.5 3.03 0 6.08 0-4.5-2.77-6.34-4-6.34.05-.5-.48-.66-.48-.66s-.22.11-.3.34c-.27-.31-.56-.27-.56-.27l-.13.58S.7 4.29.68 6.87c.2.33 1.53.6 2.47.43.89.05.67.79.47.99C2.78 9.13 2 8 1 8S0 9 1 9s1 1 3 1c-3.09 1.2 0 4 0 4H3c-1 0-1 1-1 1h6c3 0 5-1 5-3.47 0-.85-.43-1.79-1-2.53-1.11-1.46.23-2.68 1-2 .77.68 3 1 3-2 0-2.21-1.79-4-4-4zM2.5 6c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/sync.svg b/htdocs/theme/common/octicons/build/svg/sync.svg
    index 61bef53cbd0..692349a1f93 100644
    --- a/htdocs/theme/common/octicons/build/svg/sync.svg
    +++ b/htdocs/theme/common/octicons/build/svg/sync.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M10.236 7.4a4.15 4.15 0 0 1-1.2 3.6 4.346 4.346 0 0 1-5.41.54l1.17-1.14-4.3-.6.6 4.2 1.31-1.26c2.36 1.74 5.7 1.57 7.84-.54a5.876 5.876 0 0 0 1.74-4.46l-1.75-.34zM2.956 5a4.346 4.346 0 0 1 5.41-.54L7.196 5.6l4.3.6-.6-4.2-1.31 1.26c-2.36-1.74-5.7-1.57-7.85.54-1.24 1.23-1.8 2.85-1.73 4.46l1.75.35A4.17 4.17 0 0 1 2.956 5z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M10.24 7.4a4.15 4.15 0 0 1-1.2 3.6 4.346 4.346 0 0 1-5.41.54L4.8 10.4.5 9.8l.6 4.2 1.31-1.26c2.36 1.74 5.7 1.57 7.84-.54a5.876 5.876 0 0 0 1.74-4.46l-1.75-.34zM2.96 5a4.346 4.346 0 0 1 5.41-.54L7.2 5.6l4.3.6-.6-4.2-1.31 1.26c-2.36-1.74-5.7-1.57-7.85.54C.5 5.03-.06 6.65.01 8.26l1.75.35A4.17 4.17 0 0 1 2.96 5z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/tag.svg b/htdocs/theme/common/octicons/build/svg/tag.svg
    index 6c8a9c43c1e..aee833d91b9 100644
    --- a/htdocs/theme/common/octicons/build/svg/tag.svg
    +++ b/htdocs/theme/common/octicons/build/svg/tag.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 0 0 0-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7.685 1.72a2.49 2.49 0 0 0-1.76-.726H3.48A2.5 2.5 0 0 0 .994 3.48v2.456c0 .656.269 1.292.726 1.76l6.024 6.024a.99.99 0 0 0 1.402 0l4.563-4.563a.99.99 0 0 0 0-1.402L7.685 1.72zM2.366 7.048a1.54 1.54 0 0 1-.467-1.123V3.48c0-.874.716-1.58 1.58-1.58h2.456c.418 0 .825.159 1.123.467l6.104 6.094-4.702 4.702-6.094-6.114zm.626-4.066h1.989v1.989H2.982V2.982h.01z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/telescope.svg b/htdocs/theme/common/octicons/build/svg/telescope.svg
    index ce4bfaaa184..95047dc191d 100644
    --- a/htdocs/theme/common/octicons/build/svg/telescope.svg
    +++ b/htdocs/theme/common/octicons/build/svg/telescope.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7.59 9l3 6h-1l-2-4v5h-1v-6l-2 5h-1l2-5 2-1zm-1-9h-1v1h1V0zm-2 3h-1v1h1V3zm-3-2h-1v1h1V1zM.22 9a.52.52 0 0 0-.16.67l.55.92c.13.23.41.31.64.2l1.39-.66-1.16-2-1.27.86.01.01zm7.89-5.39l-5.8 3.95L3.54 9.7l6.33-3.03L8.1 3.61h.01zm4.22 1.28l-1.47-2.52a.51.51 0 0 0-.72-.17l-1.2.83 1.84 3.2 1.33-.64c.27-.13.36-.44.22-.7z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M8 9l3 6h-1l-2-4v5H7v-6l-2 5H4l2-5 2-1zM7 0H6v1h1V0zM5 3H4v1h1V3zM2 1H1v1h1V1zM.63 9a.52.52 0 0 0-.16.67l.55.92c.13.23.41.31.64.2l1.39-.66-1.16-2-1.27.86.01.01zm7.89-5.39l-5.8 3.95L3.95 9.7l6.33-3.03-1.77-3.06h.01zm4.22 1.28l-1.47-2.52a.51.51 0 0 0-.72-.17l-1.2.83 1.84 3.2 1.33-.64c.27-.13.36-.44.22-.7z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/thumbsdown.svg b/htdocs/theme/common/octicons/build/svg/thumbsdown.svg
    index ac4c7c6996b..aa319a29879 100644
    --- a/htdocs/theme/common/octicons/build/svg/thumbsdown.svg
    +++ b/htdocs/theme/common/octicons/build/svg/thumbsdown.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M15.98 7.83l-.97-5.95C14.84.5 13.13 0 12 0H5.69c-.2 0-.38.05-.53.14L3.72 1H2C.94 1 0 1.94 0 3v4c0 1.06.94 2.02 2 2h2c.91 0 1.39.45 2.39 1.55.91 1 .88 1.8.63 3.27-.08.5.06 1 .42 1.42.39.47.98.77 1.56.77 1.83 0 3-3.72 3-5.02l-.02-.98h2.04c1.16 0 1.95-.8 1.98-1.97 0-.06.02-.13-.02-.2v-.01zm-1.97 1.19h-1.99c-.7 0-1.03.28-1.03.97l.03 1.03c0 1.27-1.17 4-2 4-.5 0-1.08-.5-1-1 .25-1.58.34-2.78-.89-4.14C6.11 8.75 5.36 8 4 8V2l1.67-1H12c.73 0 1.95.31 2 1l.02.02 1 6c-.03.64-.38 1-1 1h-.01z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M15.97 7.825L15 1.88C14.83.499 13.123 0 11.993 0H5.686c-.2 0-.38.05-.53.14L3.719 1h-1.72C.94 1 0 1.938 0 2.997v3.998c0 1.059.94 2.018 1.999 1.998h1.998c.91 0 1.39.45 2.389 1.55.91.999.88 1.798.63 3.267-.08.5.06 1 .42 1.42.39.47.979.769 1.558.769 1.83 0 2.998-3.718 2.998-5.017l-.02-.98h2.04c1.159 0 1.948-.799 1.978-1.968 0-.06.02-.13-.02-.2v-.01zm-1.969 1.19h-1.989c-.7 0-1.029.28-1.029.969l.03 1.03c0 1.268-1.17 3.997-1.999 3.997-.5 0-1.079-.5-.999-1 .25-1.579.34-2.778-.89-4.137-1.019-1.13-1.768-1.879-3.127-1.879V1.999l1.668-1h6.326c.73 0 1.95.31 2 1l.02.02.999 5.996c-.03.64-.38 1-1 1h-.01z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/thumbsup.svg b/htdocs/theme/common/octicons/build/svg/thumbsup.svg
    index e77f1e30e57..5b197266c1a 100644
    --- a/htdocs/theme/common/octicons/build/svg/thumbsup.svg
    +++ b/htdocs/theme/common/octicons/build/svg/thumbsup.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M14 14c-.05.69-1.27 1-2 1H5.67L4 14V8c1.36 0 2.11-.75 3.13-1.88 1.23-1.36 1.14-2.56.88-4.13-.08-.5.5-1 1-1 .83 0 2 2.73 2 4l-.02 1.03c0 .69.33.97 1.02.97h2c.63 0 .98.36 1 1l-1 6L14 14zm0-8h-2.02l.02-.98C12 3.72 10.83 0 9 0c-.58 0-1.17.3-1.56.77-.36.41-.5.91-.42 1.41.25 1.48.28 2.28-.63 3.28-1 1.09-1.48 1.55-2.39 1.55H2C.94 7 0 7.94 0 9v4c0 1.06.94 2 2 2h1.72l1.44.86c.16.09.33.14.52.14h6.33c1.13 0 2.84-.5 3-1.88l.98-5.95c.02-.08.02-.14.02-.2-.03-1.17-.84-1.97-2-1.97H14z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M13.991 13.991c-.05.69-1.269 1-1.998 1H5.665l-1.669-1V7.995c1.36 0 2.11-.75 3.129-1.879 1.229-1.359 1.139-2.558.879-4.127-.08-.5.5-1 1-1 .829 0 1.998 2.729 1.998 3.998l-.02 1.03c0 .689.33.969 1.02.969H14c.63 0 .98.36 1 .999l-1 5.996-.01.01zm0-7.995h-2.018l.02-.98C11.992 3.719 10.822 0 8.993 0c-.58 0-1.169.3-1.559.77-.36.41-.5.909-.42 1.409.25 1.479.28 2.278-.629 3.278-1 1.089-1.48 1.549-2.389 1.549H2c-1.061-.01-2 .929-2 1.988v3.998c0 1.06.94 1.999 1.999 1.999h1.719l1.439.86c.16.089.33.139.52.139h6.325c1.13 0 2.839-.5 2.999-1.879l.979-5.946c.02-.08.02-.14.02-.2-.03-1.17-.84-1.969-1.999-1.969h-.01z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/unmute.svg b/htdocs/theme/common/octicons/build/svg/unmute.svg
    index 531aafc8b46..19b375fb08c 100644
    --- a/htdocs/theme/common/octicons/build/svg/unmute.svg
    +++ b/htdocs/theme/common/octicons/build/svg/unmute.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M12 7.96c0 1.09-.45 2.09-1.17 2.83l-.67-.67c.55-.56.89-1.31.89-2.16 0-.85-.34-1.61-.89-2.16l.67-.67A3.99 3.99 0 0 1 12 7.96zM7.72 2.22L4 5.94H2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2l3.72 3.72c.47.47 1.28.14 1.28-.53V2.75c0-.67-.81-1-1.28-.53zm5.94.08l-.67.67a6.996 6.996 0 0 1 2.06 4.98c0 1.94-.78 3.7-2.06 4.98l.67.67A7.973 7.973 0 0 0 16 7.94c0-2.22-.89-4.22-2.34-5.66v.02zm-1.41 1.41l-.69.67a5.05 5.05 0 0 1 1.48 3.58c0 1.39-.56 2.66-1.48 3.56l.69.67A5.97 5.97 0 0 0 14 7.96c0-1.65-.67-3.16-1.75-4.25z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M12 8.02c0 1.09-.45 2.09-1.17 2.83l-.67-.67c.55-.56.89-1.31.89-2.16 0-.85-.34-1.61-.89-2.16l.67-.67A3.99 3.99 0 0 1 12 8.02zM7.72 2.28L4 6H2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2l3.72 3.72c.47.47 1.28.14 1.28-.53V2.81c0-.67-.81-1-1.28-.53zm5.94.08l-.67.67a6.996 6.996 0 0 1 2.06 4.98c0 1.94-.78 3.7-2.06 4.98l.67.67A7.973 7.973 0 0 0 16 8c0-2.22-.89-4.22-2.34-5.66v.02zm-1.41 1.41l-.69.67a5.05 5.05 0 0 1 1.48 3.58c0 1.39-.56 2.66-1.48 3.56l.69.67A5.971 5.971 0 0 0 14 8.02c0-1.65-.67-3.16-1.75-4.25z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/unverified.svg b/htdocs/theme/common/octicons/build/svg/unverified.svg
    index becff6dfc8f..cf04ce3f81e 100644
    --- a/htdocs/theme/common/octicons/build/svg/unverified.svg
    +++ b/htdocs/theme/common/octicons/build/svg/unverified.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M15.68 7.07L14.6 5.73c-.17-.22-.28-.48-.31-.77l-.19-1.7a1.51 1.51 0 0 0-1.33-1.33l-1.7-.19c-.3-.03-.56-.16-.78-.33L8.95.33c-.55-.44-1.33-.44-1.88 0L5.73 1.41c-.22.17-.48.28-.77.31l-1.7.19c-.7.08-1.25.63-1.33 1.33l-.19 1.7c-.03.3-.16.56-.33.78L.33 7.06c-.44.55-.44 1.33 0 1.88l1.08 1.34c.17.22.28.48.31.77l.19 1.7c.08.7.63 1.25 1.33 1.33l1.7.19c.3.03.56.16.78.33l1.34 1.08c.55.44 1.33.44 1.88 0l1.34-1.08c.22-.17.48-.28.77-.31l1.7-.19c.7-.08 1.25-.63 1.33-1.33l.19-1.7c.03-.3.16-.56.33-.78l1.08-1.34c.44-.55.44-1.33 0-1.88zm-6.67 4.44c0 .28-.22.5-.5.5h-1c-.27 0-.5-.22-.5-.5v-1c0-.28.23-.5.5-.5h1c.28 0 .5.22.5.5v1zm1.56-4.89c-.06.17-.17.33-.3.47-.13.16-.14.19-.33.38-.16.17-.31.3-.52.45-.11.09-.2.19-.28.27-.08.08-.14.17-.19.27-.05.1-.08.19-.11.3-.03.11-.03.13-.03.25H7.14c0-.22 0-.31.03-.48.03-.19.08-.36.14-.52.06-.14.14-.28.25-.42.11-.13.23-.25.41-.38.27-.19.36-.3.48-.52.12-.22.2-.38.2-.59 0-.27-.06-.45-.2-.58-.13-.13-.31-.19-.58-.19-.09 0-.19.02-.3.05-.11.03-.17.09-.25.16-.08.07-.14.11-.2.2a.41.41 0 0 0-.09.28h-2c0-.38.13-.56.27-.83.16-.27.36-.5.61-.67.25-.17.55-.3.88-.38.33-.08.7-.13 1.09-.13.44 0 .83.05 1.17.13.34.09.63.22.88.39.23.17.41.38.55.63.13.25.19.55.19.88 0 .22 0 .42-.08.59l-.02-.01z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M15.67 7.066l-1.08-1.34a1.5 1.5 0 0 1-.309-.77l-.19-1.698a1.51 1.51 0 0 0-1.329-1.33l-1.699-.19c-.3-.03-.56-.159-.78-.329L8.945.33a1.504 1.504 0 0 0-1.878 0l-1.34 1.08a1.5 1.5 0 0 1-.77.31l-1.698.19c-.7.08-1.25.63-1.33 1.329l-.19 1.699c-.03.3-.159.56-.329.78L.33 7.055a1.504 1.504 0 0 0 0 1.878l1.08 1.34c.17.22.28.48.31.77l.19 1.698c.08.7.63 1.25 1.329 1.33l1.699.19c.3.03.56.159.78.329l1.339 1.08c.55.439 1.329.439 1.878 0l1.34-1.08c.22-.17.48-.28.77-.31l1.698-.19c.7-.08 1.25-.63 1.33-1.329l.19-1.699c.03-.3.159-.56.329-.78l1.08-1.339a1.504 1.504 0 0 0 0-1.878zm-6.666 4.437c0 .28-.22.5-.5.5h-.999c-.27 0-.5-.22-.5-.5v-1c0-.28.23-.5.5-.5h1c.28 0 .5.22.5.5v1zm1.56-4.887c-.06.17-.17.33-.3.47-.13.16-.14.19-.33.38-.16.17-.31.3-.52.449-.11.09-.2.19-.28.27-.08.08-.14.17-.19.27-.05.1-.08.19-.11.3-.03.11-.03.13-.03.25H7.136c0-.22 0-.31.03-.48.03-.19.08-.36.14-.52.06-.14.14-.28.25-.42.11-.13.23-.25.409-.38.27-.19.36-.3.48-.52.12-.219.2-.379.2-.589 0-.27-.06-.45-.2-.58-.13-.13-.31-.19-.58-.19-.09 0-.19.02-.3.05-.11.03-.17.09-.25.16-.08.07-.14.11-.2.2a.41.41 0 0 0-.09.28H5.028c0-.38.13-.56.27-.83.16-.27.36-.499.61-.669.25-.17.549-.3.879-.38.33-.08.7-.13 1.09-.13.439 0 .829.05 1.168.13.34.09.63.22.88.39.23.17.41.38.55.63.13.25.19.55.19.88 0 .22 0 .419-.08.589l-.02-.01z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/verified.svg b/htdocs/theme/common/octicons/build/svg/verified.svg
    index 8420d2ac554..e1c6c71f72b 100644
    --- a/htdocs/theme/common/octicons/build/svg/verified.svg
    +++ b/htdocs/theme/common/octicons/build/svg/verified.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M15.68 7.07L14.6 5.73c-.17-.22-.28-.48-.31-.77l-.19-1.7a1.51 1.51 0 0 0-1.33-1.33l-1.7-.19c-.3-.03-.56-.16-.78-.33L8.95.33c-.55-.44-1.33-.44-1.88 0L5.73 1.41c-.22.17-.48.28-.77.31l-1.7.19c-.7.08-1.25.63-1.33 1.33l-.19 1.7c-.03.3-.16.56-.33.78L.33 7.06c-.44.55-.44 1.33 0 1.88l1.08 1.34c.17.22.28.48.31.77l.19 1.7c.08.7.63 1.25 1.33 1.33l1.7.19c.3.03.56.16.78.33l1.34 1.08c.55.44 1.33.44 1.88 0l1.34-1.08c.22-.17.48-.28.77-.31l1.7-.19c.7-.08 1.25-.63 1.33-1.33l.19-1.7c.03-.3.16-.56.33-.78l1.08-1.34c.44-.55.44-1.33 0-1.88zm-9.17 4.94l-3.5-3.5 1.5-1.5 2 2 5-5 1.5 1.55-6.5 6.45z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M15.67 7.066l-1.08-1.34a1.5 1.5 0 0 1-.309-.77l-.19-1.698a1.51 1.51 0 0 0-1.329-1.33l-1.699-.19c-.3-.03-.56-.159-.78-.329L8.945.33a1.504 1.504 0 0 0-1.878 0l-1.34 1.08a1.5 1.5 0 0 1-.77.31l-1.698.19c-.7.08-1.25.63-1.33 1.329l-.19 1.699c-.03.3-.159.56-.329.78L.33 7.055a1.504 1.504 0 0 0 0 1.878l1.08 1.34c.17.22.28.48.31.77l.19 1.698c.08.7.63 1.25 1.329 1.33l1.699.19c.3.03.56.159.78.329l1.339 1.08c.55.439 1.329.439 1.878 0l1.34-1.08c.22-.17.48-.28.77-.31l1.698-.19c.7-.08 1.25-.63 1.33-1.329l.19-1.699c.03-.3.159-.56.329-.78l1.08-1.339a1.504 1.504 0 0 0 0-1.878zm-9.164 4.936L3.008 8.505l1.5-1.5 1.998 2 4.997-4.998 1.499 1.55-6.496 6.445z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/build/svg/x.svg b/htdocs/theme/common/octicons/build/svg/x.svg
    index 3725777be40..e3773142bb9 100644
    --- a/htdocs/theme/common/octicons/build/svg/x.svg
    +++ b/htdocs/theme/common/octicons/build/svg/x.svg
    @@ -1 +1 @@
    -<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"/></svg>
    \ No newline at end of file
    +<svg xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 0 12 16"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
    \ No newline at end of file
    diff --git a/htdocs/theme/common/octicons/package.json b/htdocs/theme/common/octicons/package.json
    index 77188450670..4d8ea495b08 100644
    --- a/htdocs/theme/common/octicons/package.json
    +++ b/htdocs/theme/common/octicons/package.json
    @@ -1,6 +1,6 @@
     {
    -  "version": "7.2.0",
       "name": "octicons",
    +  "version": "8.1.0",
       "description": "A scalable set of icons handcrafted with <3 by GitHub.",
       "homepage": "https://octicons.github.com",
       "author": "GitHub Inc.",
    diff --git a/htdocs/theme/eldy/ckeditor/config.js b/htdocs/theme/eldy/ckeditor/config.js
    index bc560d38f8f..50ff0cc6eed 100644
    --- a/htdocs/theme/eldy/ckeditor/config.js
    +++ b/htdocs/theme/eldy/ckeditor/config.js
    @@ -18,7 +18,7 @@ CKEDITOR.editorConfig = function( config )
     	//config.extraPlugins = 'docprops,scayt,showprotected';
     	config.removeDialogTabs = 'flash:advanced';	// config.removeDialogTabs = 'flash:advanced;image:Link';
     	config.protectedSource.push( /<\?[\s\S]*?\?>/g );   // Prevent PHP Code to be formatted
    -	//config.menu_groups = 'clipboard,table,anchor,link,image';	// for context menu 'clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea' 
    +	//config.menu_groups = 'clipboard,table,anchor,link,image';	// for context menu 'clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea'
     	//config.language = 'de';
     	//config.defaultLanguage = 'en';
     	//config.contentsLanguage = 'fr';
    @@ -29,7 +29,7 @@ CKEDITOR.editorConfig = function( config )
     	//config.autoParagraph = false;
     	//config.removeFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd';		// See also rules on this.dataProcessor.writer.setRules
     	//config.forcePasteAsPlainText = true;
    -	
    +
     	config.toolbar_Full =
     	[
     	    ['Templates','NewPage'],
    @@ -51,7 +51,7 @@ CKEDITOR.editorConfig = function( config )
     	];
     
     	// Used for mailing fields
    -	config.toolbar_dolibarr_mailings = 
    +	config.toolbar_dolibarr_mailings =
     	[
     	 	['Maximize','Preview'],
     	 	['SpellChecker', 'Scayt'],
    @@ -64,7 +64,7 @@ CKEDITOR.editorConfig = function( config )
     	 	['Link','Unlink','Anchor','Image','Table','HorizontalRule','SpecialChar'],
     	 	['Source']
     	 ];
    -	
    +
     	// Used for notes fields
     	config.toolbar_dolibarr_notes =
     	[
    @@ -78,7 +78,7 @@ CKEDITOR.editorConfig = function( config )
     	    ['Link','Unlink','Image','Table','HorizontalRule','SpecialChar'],
     	 	['Source']
     	];
    -	
    +
     	// Used for details lines
     	config.toolbar_dolibarr_details =
     	[
    @@ -91,12 +91,12 @@ CKEDITOR.editorConfig = function( config )
     	    ['Link','Unlink','SpecialChar'],
     	 	['Source']
     	];
    -	
    +
     	// Used for mailing fields
     	config.toolbar_dolibarr_readonly =
     	[
     	 	['Maximize'],
     	 	['Find'],
     	 	['Source']
    -	];	
    +	];
     };
    diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
    index 0097eb4715c..b120e2c04d2 100644
    --- a/htdocs/theme/eldy/style.css.php
    +++ b/htdocs/theme/eldy/style.css.php
    @@ -1,9 +1,10 @@
     <?php
     /* Copyright (C) 2004-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2006		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2007-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2012		Juanjo Menent			<jmenent@2byte.es>
    + * Copyright (C) 2018       Ferran Marcet           <fmarcet@2byte.es>
      *
      * 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
    @@ -46,31 +47,36 @@ $colorbacklineimpair1='255,255,255';    // line impair
     $colorbacklineimpair2='255,255,255';    // line impair
     $colorbacklinepair1='250,250,250';    // line pair
     $colorbacklinepair2='250,250,250';    // line pair
    -$colorbacklinepairhover='238,246,252';    // line pair
    -$colorbacklinebreak='214,218,220';		// line break
    +$colorbacklinepairhover='230,237,244';	// line hover
    +$colorbacklinebreak='239,231,224';		// line break
     $colorbackbody='255,255,255';
     $colortexttitlenotab='100,60,20';
     $colortexttitle='0,0,0';
     $colortext='0,0,0';
     $colortextlink='0,0,100';
    -$fontsize='0.85em';
    +$fontsize='0.86em';
     $fontsizesmaller='0.75em';
     
     if (defined('THEME_ONLY_CONSTANT')) return;
     
    -session_cache_limiter(false);
    +session_cache_limiter('public');
     
     require_once '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     
     // Load user to have $user->conf loaded (not done into main because of NOLOGIN constant defined)
    -if (empty($user->id) && ! empty($_SESSION['dol_login'])) $user->fetch('',$_SESSION['dol_login'],'',1);
    +// and permission, so we can later calculate number of top menu ($nbtopmenuentries) according to user profile.
    +if (empty($user->id) && ! empty($_SESSION['dol_login']))
    +{
    +	$user->fetch('',$_SESSION['dol_login'],'',1);
    +	$user->getrights();
    +}
     
     
     // Define css type
     top_httphead('text/css');
     // Important: Following code is to avoid page request by browser and PHP CPU at each Dolibarr page access.
    -if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate');
    +if (empty($dolibarr_nocache)) header('Cache-Control: max-age=10800, public, must-revalidate');
     else header('Cache-Control: no-cache');
     
     if (GETPOST('theme','alpha')) $conf->theme=GETPOST('theme','alpha');  // If theme was forced on URL
    @@ -107,6 +113,7 @@ if (! isset($conf->global->THEME_ELDY_TOPMENU_BACK1)) $conf->global->THEME_ELDY_
     if (! isset($conf->global->THEME_ELDY_VERMENU_BACK1)) $conf->global->THEME_ELDY_VERMENU_BACK1=$colorbackvmenu1;
     if (! isset($conf->global->THEME_ELDY_BACKTITLE1)) $conf->global->THEME_ELDY_BACKTITLE1=$colorbacktitle1;
     if (! isset($conf->global->THEME_ELDY_USE_HOVER)) $conf->global->THEME_ELDY_USE_HOVER=$colorbacklinepairhover;
    +if (! isset($conf->global->THEME_ELDY_USE_CHECKED)) $conf->global->THEME_ELDY_USE_CHECKED=$colorbacklinepairchecked;
     if (! isset($conf->global->THEME_ELDY_LINEBREAK)) $conf->global->THEME_ELDY_LINEBREAK=$colorbacklinebreak;
     if (! isset($conf->global->THEME_ELDY_TEXTTITLENOTAB)) $conf->global->THEME_ELDY_TEXTTITLENOTAB=$colortexttitlenotab;
     if (! isset($conf->global->THEME_ELDY_TEXTLINK)) $conf->global->THEME_ELDY_TEXTLINK=$colortextlink;
    @@ -142,10 +149,12 @@ $fontsize            =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty(
     $fontsizesmaller     =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_FONT_SIZE2)   ?$fontsize:$conf->global->THEME_ELDY_FONT_SIZE2)             :(empty($user->conf->THEME_ELDY_FONT_SIZE2)?$fontsize:$user->conf->THEME_ELDY_FONT_SIZE2);
     
     // Hover color
    -$colorbacklinepairhover=((! isset($conf->global->THEME_ELDY_USE_HOVER) || (string) $conf->global->THEME_ELDY_USE_HOVER === '0')?'':($conf->global->THEME_ELDY_USE_HOVER === '1'?'edf4fb':$conf->global->THEME_ELDY_USE_HOVER));
    +$colorbacklinepairhover=((! isset($conf->global->THEME_ELDY_USE_HOVER) || (string) $conf->global->THEME_ELDY_USE_HOVER === '0')?'':($conf->global->THEME_ELDY_USE_HOVER === '1'?'e6edf0':$conf->global->THEME_ELDY_USE_HOVER));
    +$colorbacklinepairchecked=((! isset($conf->global->THEME_ELDY_USE_CHECKED) || (string) $conf->global->THEME_ELDY_USE_CHECKED === '0')?'':($conf->global->THEME_ELDY_USE_CHECKED === '1'?'e6edf0':$conf->global->THEME_ELDY_USE_CHECKED));
     if (! empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED))
     {
    -	$colorbacklinepairhover=((! isset($user->conf->THEME_ELDY_USE_HOVER) || $user->conf->THEME_ELDY_USE_HOVER === '0')?'':($user->conf->THEME_ELDY_USE_HOVER === '1'?'edf4fb':$user->conf->THEME_ELDY_USE_HOVER));
    +	$colorbacklinepairhover=((! isset($user->conf->THEME_ELDY_USE_HOVER) || $user->conf->THEME_ELDY_USE_HOVER === '0')?'':($user->conf->THEME_ELDY_USE_HOVER === '1'?'e6edf0':$user->conf->THEME_ELDY_USE_HOVER));
    +	$colorbacklinepairchecked=((! isset($user->conf->THEME_ELDY_USE_CHECKED) || $user->conf->THEME_ELDY_USE_CHECKED === '0')?'':($user->conf->THEME_ELDY_USE_CHECKED === '1'?'e6edf0':$user->conf->THEME_ELDY_USE_CHECKED));
     }
     
     //$colortopbordertitle1=$colorbackhmenu1;
    @@ -177,7 +186,7 @@ $colorbacktabcard1=join(',',colorStringToArray($colorbacktabcard1));    // Norma
     $tmppart=explode(',',$colorbacktabcard1);
     $tmpval=(! empty($tmppart[0]) ? $tmppart[0] : 0)+(! empty($tmppart[1]) ? $tmppart[1] : 0)+(! empty($tmppart[2]) ? $tmppart[2] : 0);
     if ($tmpval <= 460) { $colortextbacktab='FFFFFF'; }
    -else { $colortextbacktab='111111'; }
    +else { $colortextbacktab='000000'; }
     
     
     // Format color value to match expected format (may be 'FFFFFF' or '255,255,255')
    @@ -191,6 +200,7 @@ $colorbacklineimpair2=join(',',colorStringToArray($colorbacklineimpair2));
     $colorbacklinepair1=join(',',colorStringToArray($colorbacklinepair1));
     $colorbacklinepair2=join(',',colorStringToArray($colorbacklinepair2));
     if ($colorbacklinepairhover != '') $colorbacklinepairhover=join(',',colorStringToArray($colorbacklinepairhover));
    +if ($colorbacklinepairchecked != '') $colorbacklinepairchecked=join(',',colorStringToArray($colorbacklinepairchecked));
     $colorbackbody=join(',',colorStringToArray($colorbackbody));
     $colortexttitlenotab=join(',',colorStringToArray($colortexttitlenotab));
     $colortexttitle=join(',',colorStringToArray($colortexttitle));
    @@ -218,6 +228,7 @@ print 'colorbacklineimpair2='.$colorbacklineimpair2."\n";
     print 'colorbacklinepair1='.$colorbacklinepair1."\n";
     print 'colorbacklinepair2='.$colorbacklinepair2."\n";
     print 'colorbacklinepairhover='.$colorbacklinepairhover."\n";
    +print 'colorbacklinepairchecked='.$colorbacklinepairchecked."\n";
     print '$colortexttitlenotab='.$colortexttitlenotab."\n";
     print '$colortexttitle='.$colortexttitle."\n";
     print '$colortext='.$colortext."\n";
    @@ -258,7 +269,7 @@ body {
         <?php print 'direction: '.$langs->trans("DIRECTION").";\n"; ?>
     }
     
    -.thumbstat, a.tab { font-weight: bold !important; }
    +.thumbstat { font-weight: bold !important; }
     th a { font-weight: <?php echo ($useboldtitle?'bold':'normal'); ?> !important; }
     a.tab { font-weight: bold !important; }
     
    @@ -325,7 +336,7 @@ input, select {
     }
     
     /* Focus definitions must be after standard definition */
    -textarea:focus, button:focus {
    +textarea:focus {
         /* v6 box-shadow: 0 0 4px #8091BF; */
     	border: 1px solid #aaa !important;
     }
    @@ -445,7 +456,7 @@ select.flat, form.flat select {
     	color: #FFF !important;
     }
     .optiongrey, .opacitymedium {
    -	opacity: 0.5;
    +	opacity: 0.4;
     }
     .opacityhigh {
     	opacity: 0.2;
    @@ -491,6 +502,7 @@ input#onlinepaymenturl, input#directdownloadlink {
     }
     
     hr { border: 0; border-top: 1px solid #ccc; }
    +.tabBar hr { margin-top: 20px; margin-bottom: 17px; }
     
     .button, .buttonDelete, input[name="sbmtConnexion"] {
     	margin-bottom: 0;
    @@ -498,10 +510,8 @@ hr { border: 0; border-top: 1px solid #ccc; }
     	margin-left: 5px;
     	margin-right: 5px;
         font-family: <?php print $fontlist ?>;
    -	border-color: #c5c5c5;
    -	border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
     	display: inline-block;
    -	padding: 3px 14px;
    +	padding: 4px 14px;
     	text-align: center;
     	cursor: pointer;
     	text-decoration: none !important;
    @@ -512,12 +522,14 @@ hr { border: 0; border-top: 1px solid #ccc; }
     	background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
     	background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
     	background-repeat: repeat-x;
    -	border-color: #e6e6e6 #e6e6e6 #bfbfbf;
     	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
    -	border: 1px solid #bbbbbb;
    -	border-bottom-color: #a2a2a2;
    +	border: 1px solid #aaa;
     	-webkit-border-radius: 2px;
    -	border-radius: 2px;
    +	border-radius: 1px;
    +
    +	font-weight: bold;
    +	text-transform: uppercase;
    +	color: #444;
     }
     .button:focus, .buttonDelete:focus  {
     	-webkit-box-shadow: 0px 0px 5px 1px rgba(0, 0, 60, 0.2), 0px 0px 0px rgba(60,60,60,0.1);
    @@ -546,7 +558,7 @@ form {
         margin:0px;
     }
     form#addproduct {
    -    padding-top: 6px;
    +    padding-top: 10px;
     }
     div.float
     {
    @@ -689,6 +701,9 @@ textarea.centpercent {
     	height: 28px;
     	vertical-align: middle;
     }
    +.divsocialnetwork:not(:first-child) {
    +    padding-left: 20px;
    +}
     div.divsearchfield {
     	float: <?php print $left; ?>;
     	margin-<?php print $right; ?>: 12px;
    @@ -748,6 +763,9 @@ select.flat.selectlimit {
     .marginleftonly {
     	margin-left: 10px !important;
     }
    +.marginleftonlyshort {
    +	margin-left: 4px !important;
    +}
     .nomarginleft {
     	margin-left: 0px !important;
     }
    @@ -849,9 +867,7 @@ select.flat.selectlimit {
     .fa-file-text-o, .fa-file-code-o, .fa-file-powerpoint-o, .fa-file-excel-o, .fa-file-word-o, .fa-file-o, .fa-file-image-o, .fa-file-video-o, .fa-file-audio-o, .fa-file-archive-o, .fa-file-pdf-o {
     	color: #055;
     }
    -.fa-trash, .fa-crop, .fa-pencil {
    -	font-size: 1.4em;
    -}
    +
     .fa-15 {
     	font-size: 1.5em;
     }
    @@ -894,8 +910,9 @@ div.fiche {
         min-width: 150px;
     }
     .thumbstat150 {
    -    /* min-width: 170px; */
    -    width: 170px;
    +    min-width: 168px;
    +    max-width: 169px;
    +    /* width: 168px; If I use with, there is trouble on size of flex boxes solved with min+max that is a little bit higer than min */
     }
     .thumbstat, .thumbstat150 {
     <?php if ($conf->browser->name == 'ie') { ?>
    @@ -1060,7 +1077,13 @@ select.selectarrowonleft option {
         	/* padding: .4em .1em; */
         	/* border-bottom: 1px solid #BBB; */
         	/* max-width: inherit; why this ? */
    -     }
    +    }
    +    input[type=text], input[type=password] {
    +		max-width: 180px;
    +	}
    +    .vmenu .searchform input {
    +		max-width: 138px;	/* length of input text in the quick search box when using a smartphone and without dolidroid */
    +	}
     
         .hideonsmartphone { display: none; }
         .hideonsmartphoneimp { display: none !important; }
    @@ -1130,6 +1153,11 @@ select.selectarrowonleft option {
        	}
     }
     .linkobject { cursor: pointer; }
    +
    +table.tableforfield tr>td:first-of-type {
    +	color: #666;
    +}
    +
     <?php if (GETPOST('optioncss','aZ09') == 'print') { ?>
     .hideonprint { display: none; }
     <?php } ?>
    @@ -1160,8 +1188,8 @@ td.showDragHandle {
     	table-layout: fixed;
     }
     #id-right, #id-left {
    -	padding-top: 16px;
    -	padding-bottom: 16px;
    +	padding-top: 20px;
    +	padding-bottom: 20px;
     
     	display: table-cell;			/* DOL_XXX Empeche fonctionnement correct du scroll horizontal sur tableau, avec datatable ou CSS */
     	float: none;
    @@ -1266,8 +1294,8 @@ div.fiche {
     
     
     div.fiche {
    -	margin-<?php print $left; ?>: <?php print (GETPOST('optioncss','aZ09') == 'print'?6:(empty($conf->dol_optimize_smallscreen)?'25':'6')); ?>px;
    -	margin-<?php print $right; ?>: <?php print (GETPOST('optioncss','aZ09') == 'print'?6:(empty($conf->dol_optimize_smallscreen)?'24':'6')); ?>px;
    +	margin-<?php print $left; ?>: <?php print (GETPOST('optioncss','aZ09') == 'print'?6:(empty($conf->dol_optimize_smallscreen)?'30':'6')); ?>px;
    +	margin-<?php print $right; ?>: <?php print (GETPOST('optioncss','aZ09') == 'print'?6:(empty($conf->dol_optimize_smallscreen)?'29':'6')); ?>px;
     	<?php if (! empty($dol_hide_leftmenu)) print 'margin-bottom: 12px;'."\n"; ?>
     	<?php if (! empty($dol_hide_leftmenu)) print 'margin-top: 12px;'."\n"; ?>
     }
    @@ -1357,6 +1385,23 @@ div.secondcolumn div.box {
     	}
     }
     
    +/* Force values on one colum for small screen */
    +@media only screen and (max-width: 1599px)
    +{
    +    div.fichehalfleft-lg {
    +    	float: none;
    +    	width: auto;
    +    }
    +    div.fichehalfright-lg {
    +    	float: none;
    +    	width: auto;
    +    }
    +
    +    .fichehalfright-lg .ficheaddleft{
    +    	padding-left:0;
    +    }
    +}
    +
     /* For table into table into card */
     div.ficheaddleft tr.liste_titre:first-child td table.nobordernopadding td {
         padding: 0 0 0 0;
    @@ -1665,6 +1710,9 @@ div.mainmenu.menu {
     #mainmenutd_menu a.tmenuimage {
         display: unset;
     }
    +a.tmenuimage {
    +    display: block;
    +}
     
     /* Do not load menu img for other if hidden to save bandwidth */
     
    @@ -1695,6 +1743,10 @@ div.mainmenu.cashdesk {
     	background-image: url(<?php echo dol_buildpath($path.'/theme/'.$theme.'/img/menus/pointofsale_over.png',1) ?>);
     }
     
    +div.mainmenu.takepos {
    +	background-image: url(<?php echo dol_buildpath($path.'/theme/'.$theme.'/img/menus/pointofsale_over.png',1) ?>);
    +}
    +
     div.mainmenu.companies {
     	background-image: url(<?php echo dol_buildpath($path.'/theme/'.$theme.'/img/menus/company_over.png',1) ?>);
     }
    @@ -1764,7 +1816,7 @@ $mainmenuusedarray=array_unique(explode(',',$mainmenuused));
     
     $generic=1;
     // Put here list of menu entries when the div.mainmenu.menuentry was previously defined
    -$divalreadydefined=array('home','companies','products','commercial','externalsite','accountancy','project','tools','members','agenda','ftp','holiday','hrm','bookmark','cashdesk','ecm','geoipmaxmind','gravatar','clicktodial','paypal','stripe','webservices','website');
    +$divalreadydefined=array('home','companies','products','commercial','externalsite','accountancy','project','tools','members','agenda','ftp','holiday','hrm','bookmark','cashdesk','takepos','ecm','geoipmaxmind','gravatar','clicktodial','paypal','stripe','webservices','website');
     // Put here list of menu entries we are sure we don't want
     $divnotrequired=array('multicurrency','salaries','ticket','margin','opensurvey','paybox','expensereport','incoterm','prelevement','propal','workflow','notification','supplier_proposal','cron','product','productbatch','expedition');
     foreach($mainmenuusedarray as $val)
    @@ -1799,6 +1851,14 @@ foreach($mainmenuusedarray as $val)
     		print "}\n";
     	}
     }
    +$j=0;
    +while ($j++ < 4)
    +{
    +	$url=dol_buildpath($path.'/theme/'.$theme.'/img/menus/generic'.$j."_over.png",1);
    +	print "div.mainmenu.generic".$j." {\n";
    +	print "	background-image: url(".$url.");\n";
    +	print "}\n";
    +}
     // End of part to add more div class css
     ?>
     
    @@ -1825,6 +1885,7 @@ foreach($mainmenuusedarray as $val)
         position: absolute;
         height: 100%;
         width: 100%;
    +    font-size: 1em;
     }
     .login_center {
     	display: table-cell;
    @@ -1836,13 +1897,14 @@ foreach($mainmenuusedarray as $val)
     }
     form#login {
     	padding-bottom: 30px;
    -	font-size: 13px;
    +	font-size: 14px;
     	vertical-align: middle;
     }
     .login_table_title {
     	max-width: 530px;
    -	color: #aaa !important;
    +	color: #eee !important;
     	padding-bottom: 20px;
    +	text-shadow: 1px 1px #444;
     }
     .login_table label {
     	text-shadow: 1px 1px 1px #FFF;
    @@ -1877,12 +1939,30 @@ if (! empty($conf->global->MAIN_LOGIN_BACKGROUND)) {
     	padding: 5px;
     	margin-left: 5px;
     	margin-top: 5px;
    +	margin-bottom: 5px;
     }
     .login_table input#username:focus, .login_table input#password:focus, .login_table input#securitycode:focus {
     	outline: none !important;
    -	/* box-shadow: none;
    -	-webkit-box-shadow: 0 0 0 50px #FFF inset;
    -	box-shadow: 0 0 0 50px #FFF inset;*/
    +}
    +.login_table .trinputlogin {
    +	font-size: 1.2em;
    +	margin: 8px;
    +}
    +.login_table .tdinputlogin {
    +    background-color: transparent;
    +    /* border: 2px solid #ccc; */
    +    min-width: 220px;
    +    border-radius: 2px;
    +}
    +.login_table .tdinputlogin .fa {
    +	padding-left: 10px;
    +	width: 14px;
    +}
    +.login_table .tdinputlogin input#username, .login_table .tdinputlogin input#password {
    +	font-size: 1em;
    +}
    +.login_table .tdinputlogin input#securitycode {
    +	font-size: 1em;
     }
     .login_main_message {
     	text-align: center;
    @@ -1980,7 +2060,6 @@ div.login_block_other { padding-top: 3px; text-align: right; }
     }
     .atoplogin, .atoplogin:hover {
     	color: #<?php echo $colortextbackhmenu; ?> !important;
    -	font-weight: normal !important;
     }
     .login_block_getinfo {
     	text-align: center;
    @@ -1990,7 +2069,6 @@ div.login_block_other { padding-top: 3px; text-align: right; }
     }
     .login_block_getinfo .atoplogin, .login_block_getinfo .atoplogin:hover {
     	color: #333 !important;
    -	font-weight: normal !important;
     }
     .alogin, .alogin:hover {
     	font-weight: normal !important;
    @@ -2015,7 +2093,6 @@ img.login, img.printer, img.entity {
         height: 16px;
         border-radius: 8px;
         background-size: contain;
    -    background-size: contain;
     }
     img.userphoto {			/* size for user photo in lists */
     	border-radius: 9px;
    @@ -2263,7 +2340,6 @@ div.tabs {
         padding-right: 6px !important;
     	clear:both;
     	height:100%;
    -	/* background-image: linear-gradient(to top,#f6f6f6 0,#fff 8px);  */
     }
     div.tabsElem {
     	margin-top: 1px;
    @@ -2303,6 +2379,7 @@ div.tabBar table.tableforservicepart2:last-child {
     }
     .tableforservicepart1 .tdhrthin {
     	height: unset;
    +    padding-top: 0 !important;
     }
     
     div.popuptabset {
    @@ -2317,7 +2394,7 @@ div.popuptab {
     	padding-right: 5px;
     }
     div.tabsAction {
    -    margin: 20px 0em 20px 0em;
    +    margin: 20px 0em 30px 0em;
         padding: 0em 0em;
         text-align: right;
     }
    @@ -2344,7 +2421,7 @@ a.tabunactive {
     }
     a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
     	font-family: <?php print $fontlist ?>;
    -	padding: 12px 9px 13px;
    +	padding: 12px 14px 13px;
         margin: 0em 0.2em;
         text-decoration: none;
         white-space: nowrap;
    @@ -2458,21 +2535,24 @@ span.butAction, span.butActionDelete {
         cursor: pointer;
         /*color: #fff !important;
         background: rgb(<?php echo $colorbackhmenu1 ?>);
    -    border: 1px solid rgb(<?php echo $colorbackhmenu1 ?>);*/
    +    border: 1px solid rgb(<?php echo $colorbackhmenu1 ?>);
         border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
    -
         border-top-right-radius: 0 !important;
         border-bottom-right-radius: 0 !important;
         border-top-left-radius: 0 !important;
    -    border-bottom-left-radius: 0 !important;
    +    border-bottom-left-radius: 0 !important;*/
     }
     a.butActionNew>span.fa-plus-circle, a.butActionNew>span.fa-plus-circle:hover { padding-left: 6px; font-size: 1.5em; border: none; box-shadow: none; webkit-box-shadow: none; }
     a.butActionNewRefused>span.fa-plus-circle, a.butActionNewRefused>span.fa-plus-circle:hover { padding-left: 6px; font-size: 1.5em; border: none; box-shadow: none; webkit-box-shadow: none; }
     
    -.butAction:hover, .butActionNew:hover   {
    +.butAction:hover   {
       -webkit-box-shadow: 0px 0px 6px 1px rgba(50, 50, 50, 0.4), 0px 0px 0px rgba(60,60,60,0.1);
       box-shadow: 0px 0px 6px 1px rgba(50, 50, 50, 0.4), 0px 0px 0px rgba(60,60,60,0.1);
     }
    +.butActionNew:hover   {
    +  text-decoration: underline;
    +  box-shadow: unset !important;
    +}
     
     .butActionDelete, .butActionDelete:link, .butActionDelete:visited, .butActionDelete:hover, .butActionDelete:active, .buttonDelete {
         background: rgb(234, 228, 225);
    @@ -2693,7 +2773,9 @@ table.paddingtopbottomonly tr td {
     	background: rgb(<?php echo $colorbacktitle1; ?>) !important;
     }
     tr.liste_titre_filter td.liste_titre {
    -/*    border-bottom: 1px solid #ddd; */
    +	/* border-bottom: 1px solid #ddd; */
    +	padding-top: 1px;
    +	padding-bottom: 0px;
     }
     .liste_titre_create td, .liste_titre_create th, .liste_titre_create .tagtd
     {
    @@ -2929,9 +3011,20 @@ div.pagination li.paginationafterarrows {
     	background: rgb(<?php echo $colorbacklinepairhover; ?>) !important;		/* Must be background to be stronger than background of odd or even */
     <?php } ?>
     }
    +<?php if ($colorbacklinepairchecked) { ?>
    +.highlight {
    +	background: rgb(<?php echo $colorbacklinepairchecked; ?>) !important; /* Must be background to be stronger than background of odd or even */
    +}
    +<?php } ?>
    +
     .nohover:hover {
     	background: unset;
     }
    +.nohoverborder:hover {
    +	border: unset;
    +	box-shadow: unset;
    +	-webkit-box-shadow: unset;
    +}
     .oddeven, .evenodd, .impair, .nohover .impair:hover, tr.impair td.nohover
     {
     	font-family: <?php print $fontlist ?>;
    @@ -3016,11 +3109,12 @@ tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, tabl
     {
     	height: 26px !important;
     }
    -div.colorback
    +div.colorback	/* for the form "assign user" on time spent view */
     {
    -	background: rgb(<?php echo $colorbacktitle1; ?>);
    +	background: #f8f8f8;
     	padding: 10px;
     	margin-top: 5px;
    +	border: 1px solid #ddd;
     }
     div.liste_titre_bydiv, .liste_titre div.tagtr, tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, table.dataTable thead tr
     {
    @@ -3201,8 +3295,9 @@ ul.noborder li:nth-child(even):not(.liste_titre) {
         margin-bottom: 5px;
         text-align: center;
     
    -    background: #f8f8f8;
    +    background: #fcfcfc;
         border: 1px solid #eee;
    +    /* border-left: 6px solid #ddd; */
         box-shadow: 1px 1px 8px #ddd;
         border-radius: 0px;
     }
    @@ -3214,7 +3309,7 @@ ul.noborder li:nth-child(even):not(.liste_titre) {
     .boxstats130 {
         width: 158px;
         height: 48px;
    -    padding: 3px
    +    padding: 3px;
     }
     .boxstats {
         padding: 3px;
    @@ -3250,9 +3345,12 @@ ul.noborder li:nth-child(even):not(.liste_titre) {
         }
     	.thumbstat {
     		flex: 1 1 110px;
    +		margin-bottom: 8px;
     	}
     	.thumbstat150 {
     		flex: 1 1 110px;
    +		margin-bottom: 8px;
    +		width: 160px;
     	}
         .dashboardlineindicator {
             float: left;
    @@ -3346,7 +3444,7 @@ table.noborder.boxtable tr td {
         border-bottom-width: 0 !important;
     }
     .boxtable .fichehalfright, .boxtable .fichehalfleft {
    -    min-width: 300px;
    +    min-width: 275px;	/* increasing this, make chart on box not side by side on laptops */
     }
     .tdboxstats {
     	text-align: center;
    @@ -3446,7 +3544,7 @@ div.warning {
         background: #fcf8e3;
     }
     div.warning a, div.info a, div.error a {
    -	color: rgb(<?php echo $colortext; ?>);
    +	color: rgb(<?php echo $colortextlink; ?>);
     }
     
     /* Error message */
    @@ -3507,7 +3605,7 @@ div.boximport {
     .widthpictotitle { width: 40px; text-align: <?php echo $left; ?>; }
     
     .dolgraphtitle { margin-top: 6px; margin-bottom: 4px; }
    -.dolgraphtitlecssboxes { margin: 0px; }
    +.dolgraphtitlecssboxes { /* margin: 0px; */ }
     .legendColorBox, .legendLabel { border: none !important; }
     div.dolgraph div.legend, div.dolgraph div.legend div { background-color: rgba(255,255,255,0) !important; }
     div.dolgraph div.legend table tbody tr { height: auto; }
    @@ -3821,7 +3919,7 @@ tr.visible {
     }
     .websitebar {
     	border-bottom: 1px solid #ccc;
    -	background: #eee;
    +	background: #e6e6e6;
     	display: inline-block;
     }
     .websitebar .buttonDelete, .websitebar .button {
    @@ -3868,6 +3966,13 @@ span.websitebuttonsitepreviewdisabled img, a.websitebuttonsitepreviewdisabled im
         float: right;
         padding-top: 8px;
     }
    +.websiteselectionsection {
    +	border-left: 1px solid #bbb;
    +	border-right: 1px solid #bbb;
    +	margin-left: 0px;
    +	padding-left: 8px;
    +	margin-right: 5px;
    +}
     
     
     /* ============================================================================== */
    @@ -4373,7 +4478,7 @@ td.gminorheading {
     .ecmfiletree {
     	width: 99%;
     	height: 99%;
    -	background: #FFF;
    +	/* background: #FFF; */
     	padding-left: 2px;
     	font-weight: normal;
     }
    @@ -4615,7 +4720,6 @@ div.dataTables_length select {
     }
     .select2-default {
         color: #999 !important;
    -    /*opacity: 0.2;*/
     }
     .select2-choice, .select2-container .select2-choice {
     	border-bottom: solid 1px rgba(0,0,0,.4);
    @@ -4756,7 +4860,7 @@ a span.select2-chosen
     	cursor: default;
     }
     .select2-container-disabled .select2-choice .select2-arrow b {
    -	opacity: 0.5;
    +	opacity: 0.4;
     }
     .select2-container-multi .select2-choices .select2-search-choice {
       margin-bottom: 3px;
    @@ -4781,11 +4885,11 @@ a span.select2-chosen
     }
     .select2-container--default .select2-selection--single .select2-selection__placeholder {
     	color: unset;
    -	opacity: 0.5;
    +	opacity: 0.4;
     }
     span#select2-boxbookmark-container, span#select2-boxcombo-container {
         text-align: <?php echo $left; ?>;
    -    opacity: 0.5;
    +    opacity: 0.4;
     }
     .select2-container .select2-selection--single .select2-selection__rendered {
     	padding-left: 6px;
    @@ -4870,7 +4974,81 @@ span.noborderoncategories {
     
     
     /* ============================================================================== */
    -/*  Multiselect with checkbox                                                     */
    +/*  External lib multiselect with checkbox                                        */
    +/* ============================================================================== */
    +
    +.multi-select-container {
    +  display: inline-block;
    +  position: relative;
    +}
    +
    +.multi-select-menu {
    +  position: absolute;
    +  left: 0;
    +  top: 0.8em;
    +  float: left;
    +  min-width: 100%;
    +  background: #fff;
    +  margin: 1em 0;
    +  padding: 0.4em 0;
    +  border: 1px solid #aaa;
    +  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    +  display: none;
    +}
    +
    +.multi-select-menu input {
    +  margin-right: 0.3em;
    +  vertical-align: 0.1em;
    +}
    +
    +.multi-select-button {
    +  display: inline-block;
    +  max-width: 20em;
    +  white-space: nowrap;
    +  overflow: hidden;
    +  text-overflow: ellipsis;
    +  vertical-align: middle;
    +  background-color: #fff;
    +  cursor: default;
    +
    +  border: none;
    +  border-bottom: solid 1px rgba(0,0,0,.2);
    +  padding: 5px;
    +  padding-left: 2px;
    +  height: 17px;
    +}
    +.multi-select-button:focus {
    +  outline: none;
    +  border-bottom: 1px solid #666;
    +}
    +
    +.multi-select-button:after {
    +  content: "";
    +  display: inline-block;
    +  width: 0;
    +  height: 0;
    +  border-style: solid;
    +  border-width: 0.5em 0.23em 0em 0.23em;
    +  border-color: #444 transparent transparent transparent;
    +  margin-left: 0.4em;
    +}
    +
    +.multi-select-container--open .multi-select-menu { display: block; }
    +
    +.multi-select-container--open .multi-select-button:after {
    +  border-width: 0 0.4em 0.4em 0.4em;
    +  border-color: transparent transparent #999 transparent;
    +}
    +
    +.multi-select-menuitem {
    +    clear: both;
    +    float: left;
    +    padding-left: 5px
    +}
    +
    +
    +/* ============================================================================== */
    +/*  Native multiselect with checkbox                                              */
     /* ============================================================================== */
     
     ul.ulselectedfields {
    @@ -4910,10 +5088,10 @@ dl.dropdown {
     }
     .dropdown dd ul {
         background-color: #FFF;
    -    border: 1px solid #888;
    +    box-shadow: 1px 1px 10px #aaa;
         display:none;
         <?php echo $right; ?>:0px;						/* pop is align on right */
    -    padding: 2px 15px 2px 5px;
    +    padding: 0 0 0 0;
         position:absolute;
         top:2px;
         list-style:none;
    @@ -4923,10 +5101,13 @@ dl.dropdown {
     .dropdown dd ul li {
     	white-space: nowrap;
     	font-weight: normal;
    -	padding: 2px;
    +	padding: 7px 8px 7px 8px;
     	/* color: rgb(<?php print $colortext; ?>); */
     	color: #000;
     }
    +.dropdown dd ul li:hover {
    +	background: #eee;
    +}
     .dropdown dd ul li input[type="checkbox"] {
         margin-<?php echo $right; ?>: 3px;
     }
    @@ -4938,7 +5119,7 @@ dl.dropdown {
     	color: #888;
     }
     .dropdown dd ul li a:hover {
    -    background-color:#fff;
    +    background-color:#eee;
     }
     
     
    diff --git a/htdocs/theme/md/ckeditor/config.js b/htdocs/theme/md/ckeditor/config.js
    index bc560d38f8f..50ff0cc6eed 100644
    --- a/htdocs/theme/md/ckeditor/config.js
    +++ b/htdocs/theme/md/ckeditor/config.js
    @@ -18,7 +18,7 @@ CKEDITOR.editorConfig = function( config )
     	//config.extraPlugins = 'docprops,scayt,showprotected';
     	config.removeDialogTabs = 'flash:advanced';	// config.removeDialogTabs = 'flash:advanced;image:Link';
     	config.protectedSource.push( /<\?[\s\S]*?\?>/g );   // Prevent PHP Code to be formatted
    -	//config.menu_groups = 'clipboard,table,anchor,link,image';	// for context menu 'clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea' 
    +	//config.menu_groups = 'clipboard,table,anchor,link,image';	// for context menu 'clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea'
     	//config.language = 'de';
     	//config.defaultLanguage = 'en';
     	//config.contentsLanguage = 'fr';
    @@ -29,7 +29,7 @@ CKEDITOR.editorConfig = function( config )
     	//config.autoParagraph = false;
     	//config.removeFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd';		// See also rules on this.dataProcessor.writer.setRules
     	//config.forcePasteAsPlainText = true;
    -	
    +
     	config.toolbar_Full =
     	[
     	    ['Templates','NewPage'],
    @@ -51,7 +51,7 @@ CKEDITOR.editorConfig = function( config )
     	];
     
     	// Used for mailing fields
    -	config.toolbar_dolibarr_mailings = 
    +	config.toolbar_dolibarr_mailings =
     	[
     	 	['Maximize','Preview'],
     	 	['SpellChecker', 'Scayt'],
    @@ -64,7 +64,7 @@ CKEDITOR.editorConfig = function( config )
     	 	['Link','Unlink','Anchor','Image','Table','HorizontalRule','SpecialChar'],
     	 	['Source']
     	 ];
    -	
    +
     	// Used for notes fields
     	config.toolbar_dolibarr_notes =
     	[
    @@ -78,7 +78,7 @@ CKEDITOR.editorConfig = function( config )
     	    ['Link','Unlink','Image','Table','HorizontalRule','SpecialChar'],
     	 	['Source']
     	];
    -	
    +
     	// Used for details lines
     	config.toolbar_dolibarr_details =
     	[
    @@ -91,12 +91,12 @@ CKEDITOR.editorConfig = function( config )
     	    ['Link','Unlink','SpecialChar'],
     	 	['Source']
     	];
    -	
    +
     	// Used for mailing fields
     	config.toolbar_dolibarr_readonly =
     	[
     	 	['Maximize'],
     	 	['Find'],
     	 	['Source']
    -	];	
    +	];
     };
    diff --git a/htdocs/theme/md/img/menus/generic1.png b/htdocs/theme/md/img/menus/generic1.png
    index b51ce3ed95a..39f808bed32 100644
    Binary files a/htdocs/theme/md/img/menus/generic1.png and b/htdocs/theme/md/img/menus/generic1.png differ
    diff --git a/htdocs/theme/md/img/menus/generic1_over.png b/htdocs/theme/md/img/menus/generic1_over.png
    new file mode 100644
    index 00000000000..adfa8c1599b
    Binary files /dev/null and b/htdocs/theme/md/img/menus/generic1_over.png differ
    diff --git a/htdocs/theme/md/img/menus/generic2.png b/htdocs/theme/md/img/menus/generic2.png
    index b51ce3ed95a..f4dfc5f360a 100644
    Binary files a/htdocs/theme/md/img/menus/generic2.png and b/htdocs/theme/md/img/menus/generic2.png differ
    diff --git a/htdocs/theme/md/img/menus/generic2_over.png b/htdocs/theme/md/img/menus/generic2_over.png
    new file mode 100644
    index 00000000000..c8e58fc2220
    Binary files /dev/null and b/htdocs/theme/md/img/menus/generic2_over.png differ
    diff --git a/htdocs/theme/md/img/menus/generic3.png b/htdocs/theme/md/img/menus/generic3.png
    index b51ce3ed95a..00769352dae 100644
    Binary files a/htdocs/theme/md/img/menus/generic3.png and b/htdocs/theme/md/img/menus/generic3.png differ
    diff --git a/htdocs/theme/md/img/menus/generic3_over.png b/htdocs/theme/md/img/menus/generic3_over.png
    new file mode 100644
    index 00000000000..0672d20bce4
    Binary files /dev/null and b/htdocs/theme/md/img/menus/generic3_over.png differ
    diff --git a/htdocs/theme/md/img/menus/generic4.png b/htdocs/theme/md/img/menus/generic4.png
    index b51ce3ed95a..5f9240240da 100644
    Binary files a/htdocs/theme/md/img/menus/generic4.png and b/htdocs/theme/md/img/menus/generic4.png differ
    diff --git a/htdocs/theme/md/img/menus/generic4_over.png b/htdocs/theme/md/img/menus/generic4_over.png
    new file mode 100644
    index 00000000000..6a4d7b1acce
    Binary files /dev/null and b/htdocs/theme/md/img/menus/generic4_over.png differ
    diff --git a/htdocs/theme/md/img/menus/ticket.png b/htdocs/theme/md/img/menus/ticket.png
    index 98beeaf593a..98a482c4701 100644
    Binary files a/htdocs/theme/md/img/menus/ticket.png and b/htdocs/theme/md/img/menus/ticket.png differ
    diff --git a/htdocs/theme/md/img/object_ticket.png b/htdocs/theme/md/img/object_ticket.png
    index 8ece94fbefc..38df927744e 100644
    Binary files a/htdocs/theme/md/img/object_ticket.png and b/htdocs/theme/md/img/object_ticket.png differ
    diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
    index 87b41358fa5..e20ffbe43e2 100644
    --- a/htdocs/theme/md/style.css.php
    +++ b/htdocs/theme/md/style.css.php
    @@ -1,10 +1,11 @@
     <?php
     /* Copyright (C) 2004-2017	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2006		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (C) 2007-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2007-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Philippe Grand			<philippe.grand@atoo-net.com>
      * Copyright (C) 2012		Juanjo Menent			<jmenent@2byte.es>
      * Copyright (C) 2015		Alexandre Spangaro      <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2018       Ferran Marcet           <fmarcet@2byte.es>
      *
      * 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
    @@ -47,31 +48,36 @@ $colorbacklineimpair1='255,255,255';    // line impair
     $colorbacklineimpair2='255,255,255';    // line impair
     $colorbacklinepair1='248,248,248';    // line pair
     $colorbacklinepair2='246,246,246';    // line pair
    -$colorbacklinepairhover='244,244,244';    // line pair
    +$colorbacklinepairhover='230,237,244';    // line pair
     $colorbacklinebreak='214,218,220';
     $colorbackbody='248,248,248';
     $colortexttitlenotab='90,90,90';
     $colortexttitle='20,20,20';
     $colortext='0,0,0';
     $colortextlink='0,0,120';
    -$fontsize='13';
    +$fontsize='14';
     $fontsizesmaller='11';
     
     if (defined('THEME_ONLY_CONSTANT')) return;
     
    -session_cache_limiter(false);
    +session_cache_limiter('public');
     
     require_once '../../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
     
     // Load user to have $user->conf loaded (not done into main because of NOLOGIN constant defined)
    -if (empty($user->id) && ! empty($_SESSION['dol_login'])) $user->fetch('',$_SESSION['dol_login'],'',1);
    +// and permission, so we can later calculate number of top menu ($nbtopmenuentries) according to user profile.
    +if (empty($user->id) && ! empty($_SESSION['dol_login']))
    +{
    +	$user->fetch('',$_SESSION['dol_login'],'',1);
    +	$user->getrights();
    +}
     
     
     // Define css type
     top_httphead('text/css');
     // Important: Following code is to avoid page request by browser and PHP CPU at each Dolibarr page access.
    -if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate');
    +if (empty($dolibarr_nocache)) header('Cache-Control: max-age=10800, public, must-revalidate');
     else header('Cache-Control: no-cache');
     
     if (GETPOST('theme','alpha')) $conf->theme=GETPOST('theme','alpha');  // If theme was forced on URL
    @@ -99,7 +105,7 @@ $dol_no_mouse_hover=$conf->dol_no_mouse_hover;
     //$user->conf->THEME_ELDY_ENABLE_PERSONALIZED=0;
     //var_dump($user->conf->THEME_ELDY_RGB);
     
    -$useboldtitle=(isset($conf->global->THEME_ELDY_USEBOLDTITLE)?$conf->global->THEME_ELDY_USEBOLDTITLE:1);
    +$useboldtitle=(isset($conf->global->THEME_ELDY_USEBOLDTITLE)?$conf->global->THEME_ELDY_USEBOLDTITLE:0);
     $borderwidth=2;
     
     // Case of option always editable
    @@ -108,6 +114,7 @@ if (! isset($conf->global->THEME_ELDY_TOPMENU_BACK1)) $conf->global->THEME_ELDY_
     if (! isset($conf->global->THEME_ELDY_VERMENU_BACK1)) $conf->global->THEME_ELDY_VERMENU_BACK1=$colorbackvmenu1;
     if (! isset($conf->global->THEME_ELDY_BACKTITLE1)) $conf->global->THEME_ELDY_BACKTITLE1=$colorbacktitle1;
     if (! isset($conf->global->THEME_ELDY_USE_HOVER)) $conf->global->THEME_ELDY_USE_HOVER==$colorbacklinepairhover;
    +if (! isset($conf->global->THEME_ELDY_USE_CHECKED)) $conf->global->THEME_ELDY_USE_CHECKED=$colorbacklinepairchecked;
     if (! isset($conf->global->THEME_ELDY_LINEBREAK)) $conf->global->THEME_ELDY_LINEBREAK=$colorbacklinebreak;
     if (! isset($conf->global->THEME_ELDY_TEXTTITLENOTAB)) $conf->global->THEME_ELDY_TEXTTITLENOTAB=$colortexttitlenotab;
     if (! isset($conf->global->THEME_ELDY_TEXTLINK)) $conf->global->THEME_ELDY_TEXTLINK=$colortextlink;
    @@ -119,7 +126,7 @@ if (empty($conf->global->THEME_ELDY_ENABLE_PERSONALIZED))
         $conf->global->THEME_ELDY_BACKTABCARD1='255,255,255';     // card
         $conf->global->THEME_ELDY_BACKTABACTIVE='234,234,234';
         $conf->global->THEME_ELDY_TEXT='0,0,0';
    -    $conf->global->THEME_ELDY_FONT_SIZE1='13';
    +    $conf->global->THEME_ELDY_FONT_SIZE1='14';
         $conf->global->THEME_ELDY_FONT_SIZE2='11';
     }
     
    @@ -145,9 +152,11 @@ $fontsizesmaller     =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty(
     
     // Hover color
     $colorbacklinepairhover=((! isset($conf->global->THEME_ELDY_USE_HOVER) || (string) $conf->global->THEME_ELDY_USE_HOVER === '0')?'':($conf->global->THEME_ELDY_USE_HOVER === '1'?'edf4fb':$conf->global->THEME_ELDY_USE_HOVER));
    +$colorbacklinepairchecked=((! isset($conf->global->THEME_ELDY_USE_CHECKED) || (string) $conf->global->THEME_ELDY_USE_CHECKED === '0')?'':($conf->global->THEME_ELDY_USE_CHECKED === '1'?'edf4fb':$conf->global->THEME_ELDY_USE_CHECKED));
     if (! empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED))
     {
         $colorbacklinepairhover=((! isset($user->conf->THEME_ELDY_USE_HOVER) || $user->conf->THEME_ELDY_USE_HOVER === '0')?'':($user->conf->THEME_ELDY_USE_HOVER === '1'?'edf4fb':$user->conf->THEME_ELDY_USE_HOVER));
    +    $colorbacklinepairchecked=((! isset($user->conf->THEME_ELDY_USE_CHECKED) || $user->conf->THEME_ELDY_USE_CHECKED === '0')?'':($user->conf->THEME_ELDY_USE_CHECKED === '1'?'edf4fb':$user->conf->THEME_ELDY_USE_CHECKED));
     }
     
     if (empty($colortopbordertitle1)) $colortopbordertitle1=$colorbackhmenu1;
    @@ -193,6 +202,7 @@ $colorbacklineimpair2=join(',',colorStringToArray($colorbacklineimpair2));
     $colorbacklinepair1=join(',',colorStringToArray($colorbacklinepair1));
     $colorbacklinepair2=join(',',colorStringToArray($colorbacklinepair2));
     if ($colorbacklinepairhover != '') $colorbacklinepairhover=join(',',colorStringToArray($colorbacklinepairhover));
    +if ($colorbacklinepairchecked != '') $colorbacklinepairchecked=join(',',colorStringToArray($colorbacklinepairchecked));
     $colorbackbody=join(',',colorStringToArray($colorbackbody));
     $colortexttitlenotab=join(',',colorStringToArray($colortexttitlenotab));
     $colortexttitle=join(',',colorStringToArray($colortexttitle));
    @@ -211,6 +221,7 @@ print 'colorbacklineimpair2='.$colorbacklineimpair2."\n";
     print 'colorbacklinepair1='.$colorbacklinepair1."\n";
     print 'colorbacklinepair2='.$colorbacklinepair2."\n";
     print 'colorbacklinepairhover='.$colorbacklinepairhover."\n";
    +print 'colorbacklinepairchecked='.$colorbacklinepairchecked."\n";
     print '$colortexttitlenotab='.$colortexttitlenotab."\n";
     print '$colortexttitle='.$colortexttitle."\n";
     print '$colortext='.$colortext."\n";
    @@ -251,7 +262,8 @@ body {
         <?php print 'direction: '.$langs->trans("DIRECTION").";\n"; ?>
     }
     
    -th a, .thumbstat, a.tab { font-weight: bold !important; }
    +.thumbstat { font-weight: bold !important; }
    +th a { font-weight: <?php echo ($useboldtitle?'bold':'normal'); ?> !important; }
     a.tab { font-weight: bold !important; }
     
     a:link, a:visited, a:hover, a:active { font-family: <?php print $fontlist ?>; font-weight: normal; color: rgb(<?php print $colortextlink; ?>); text-decoration: none;  }
    @@ -682,6 +694,9 @@ textarea.centpercent {
     	height: 28px;
     	vertical-align: middle;
     }
    +.divsocialnetwork:not(:first-child) {
    +    padding-left: 20px;
    +}
     div.divsearchfield {
     	float: <?php print $left; ?>;
     	margin-<?php print $right; ?>: 12px;
    @@ -735,6 +750,9 @@ select.flat.selectlimit {
     .marginleftonly {
     	margin-left: 10px !important;
     }
    +.marginleftonlyshort {
    +	margin-left: 4px !important;
    +}
     .nomarginleft {
     	margin-left: 0px !important;
     }
    @@ -833,9 +851,6 @@ select.flat.selectlimit {
     .fa-file-text-o, .fa-file-code-o, .fa-file-powerpoint-o, .fa-file-excel-o, .fa-file-word-o, .fa-file-o, .fa-file-image-o, .fa-file-video-o, .fa-file-audio-o, .fa-file-archive-o, .fa-file-pdf-o {
     	color: #505;
     }
    -.fa-trash, .fa-crop, .fa-pencil {
    -	font-size: 1.4em;
    -}
     
     /* DOL_XXX for future usage (when left menu has been removed). If we do not use datatable */
     /*.table-responsive {
    @@ -1192,6 +1207,13 @@ td.showDragHandle {
     .side-nav-vert {
     	margin-left: 228px;
     }
    +<?php if (empty($conf->global->THEME_DISABLE_STICKY_TOPMENU)) {  ?>
    +.side-nav-vert {
    +	position: sticky;
    +	top: 0px;
    +	z-index: 210;
    +}
    +<?php } ?>
     
     /* For smartphone (testmenuhider is on) */
     <?php if (in_array($conf->browser->layout, array('phone','tablet')) && ((GETPOST('testmenuhider') || ! empty($conf->global->MAIN_TESTMENUHIDER)) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))) { ?>
    @@ -1223,6 +1245,11 @@ div.backgroundsemitransparent {
     	padding-left: 10px;
     	padding-right: 10px;
     }
    +
    +
    +
    +/* Login */
    +
     div.login_block {
     	/* position: initial !important;*/
     	display: none;
    @@ -1235,8 +1262,11 @@ div.login_block {
     }
     .login_block_getinfo .atoplogin, .login_block_getinfo .atoplogin:hover {
     	color: #333 !important;
    -	font-weight: normal !important;
     }
    +
    +
    +
    +
     #id-right {
     	padding-left: 0 ! important;
     }
    @@ -1687,6 +1717,10 @@ div.mainmenu.cashdesk {
     	background-image: url(<?php echo dol_buildpath($path.'/theme/'.$theme.'/img/menus/pointofsale.png',1) ?>);
     }
     
    +div.mainmenu.takepos {
    +	background-image: url(<?php echo dol_buildpath($path.'/theme/'.$theme.'/img/menus/pointofsale.png',1) ?>);
    +}
    +
     div.mainmenu.companies {
     	background-image: url(<?php echo dol_buildpath($path.'/theme/'.$theme.'/img/menus/company.png',1) ?>);
     }
    @@ -1760,7 +1794,7 @@ $mainmenuusedarray=array_unique(explode(',',$mainmenuused));
     
     $generic=1;
     // Put here list of menu entries when the div.mainmenu.menuentry was previously defined
    -$divalreadydefined=array('home','companies','products','commercial','externalsite','accountancy','project','tools','members','agenda','ftp','holiday','hrm','bookmark','cashdesk','ecm','geoipmaxmind','gravatar','clicktodial','paypal','stripe','webservices','website');
    +$divalreadydefined=array('home','companies','products','commercial','externalsite','accountancy','project','tools','members','agenda','ftp','holiday','hrm','bookmark','cashdesk','takepos','ecm','geoipmaxmind','gravatar','clicktodial','paypal','stripe','webservices','website');
     // Put here list of menu entries we are sure we don't want
     $divnotrequired=array('multicurrency','salaries','ticket','margin','opensurvey','paybox','expensereport','incoterm','prelevement','propal','workflow','notification','supplier_proposal','cron','product','productbatch','expedition');
     foreach($mainmenuusedarray as $val)
    @@ -1795,6 +1829,14 @@ foreach($mainmenuusedarray as $val)
     		print "}\n";
     	}
     }
    +$j=0;
    +while ($j++ < 4)
    +{
    +	$url=dol_buildpath($path.'/theme/'.$theme.'/img/menus/generic'.$j."_over.png",1);
    +	print "div.mainmenu.generic".$j." {\n";
    +	print "	background-image: url(".$url.");\n";
    +	print "}\n";
    +}
     // End of part to add more div class css
     ?>
     
    @@ -1809,7 +1851,9 @@ foreach($mainmenuusedarray as $val)
         	display: none;
         <?php } ?>
     }
    -
    +a.tmenuimage {
    +    display: block;
    +}
     
     
     /* Login */
    @@ -1832,7 +1876,7 @@ foreach($mainmenuusedarray as $val)
     }
     form#login {
     	padding-bottom: 30px;
    -	font-size: 13px;
    +	font-size: 14px;
     	vertical-align: middle;
     }
     .login_table_title {
    @@ -1864,17 +1908,29 @@ form#login {
     }
     .login_table input#username, .login_table input#password, .login_table input#securitycode{
     	border: none;
    -	border-bottom: solid 1px rgba(180,180,180,.4);
    +	/* border-bottom: solid 1px rgba(180,180,180,.4); */
     	padding: 5px;
     	margin-left: 18px;
     	margin-top: 5px;
    +	margin-bottom: 5px;
     }
     .login_table input#username:focus, .login_table input#password:focus, .login_table input#securitycode:focus {
     	outline: none !important;
    -	/* box-shadow: none;
    -	-webkit-box-shadow: 0 0 0 50px #FFF inset;
    -	box-shadow: 0 0 0 50px #FFF inset;*/
     }
    +.login_table .trinputlogin {
    +	margin: 8px;
    +}
    +.login_table .tdinputlogin {
    +    background-color: #fff;
    +    border: 2px solid #ccc;
    +    min-width: 220px;
    +    border-radius: 2px;
    +}
    +.login_table .tdinputlogin .fa {
    +	padding-left: 10px;
    +	width: 14px;
    +}
    +
     .login_main_message {
     	text-align: center;
     	max-width: 570px;
    @@ -1935,7 +1991,7 @@ div.login_block {
     	vertical-align: middle;
     	background: rgb(<?php echo $colorbackvmenu1; ?>);
     	width: 228px;
    -	height: 43px;
    +	height: 45px;
     	<?php if (GETPOST('optioncss','aZ09') == 'print') { ?>
     	display: none;
     	<?php } ?>
    @@ -1968,7 +2024,6 @@ div.login_block_other { padding-top: 3px; }
     }
     .atoplogin, .atoplogin:hover {
     	color: #<?php echo $colortextbackvmenu; ?> !important;
    -	font-weight: normal !important;
     }
     .alogin, .alogin:hover {
     	color: #888 !important;
    @@ -2300,7 +2355,7 @@ a.tabTitle {
     
     a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
     	font-family: <?php print $fontlist ?>;
    -	padding: 12px 9px 12px;
    +	padding: 12px 13px 12px;
         margin: 0em 0.2em;
         text-decoration: none;
         white-space: nowrap;
    @@ -2662,6 +2717,8 @@ table.paddingtopbottomonly tr td {
     }
     tr.liste_titre_filter td.liste_titre {
         border-bottom: 1px solid #FDFFFF;
    +	padding-top: 4px;
    +	padding-bottom: 3px;
     }
     .liste_titre_create td, .liste_titre_create th, .liste_titre_create .tagtd
     {
    @@ -2693,7 +2750,7 @@ table.liste td, table.noborder td, div.noborder form div {
     	padding: 8px 6px 8px 6px;			/* t r b l */
     }
     div.liste_titre_bydiv .divsearchfield {
    -	padding: 2px 1px 2px 0px;			/* t r b l */
    +	padding: 2px 1px 2px 6px;			/* t r b l */
     }
     
     table.nobordernopadding {
    @@ -2892,6 +2949,12 @@ ul.noborder li:nth-child(odd):not(.liste_titre) {
     
     
     /* Set the color for hover lines */
    +
    +.nohoverborder:hover {
    +	border: unset;
    +	box-shadow: unset;
    +	-webkit-box-shadow: unset;
    +}
     .oddeven:hover, .evenodd:hover, .impair:hover, .pair:hover
     {
     <?php if ($colorbacklinepairhover) { ?>
    @@ -2899,6 +2962,12 @@ ul.noborder li:nth-child(odd):not(.liste_titre) {
     <?php } ?>
     }
     
    +<?php if ($colorbacklinepairchecked) { ?>
    +.highlight {
    +	background: rgb(<?php echo $colorbacklinepairchecked; ?>) !important; /* Must be background to be stronger than background of odd or even */
    +}
    +<?php } ?>
    +
     .oddeven, .evenodd, .impair, .nohover .impair:hover, tr.impair td.nohover
     {
     	font-family: <?php print $fontlist ?>;
    @@ -3188,7 +3257,7 @@ div .tdtop {
     		margin: 3px;
     	    border: 1px solid #ddd;
         	box-shadow: none;
    -    	background: #ddd;
    +    	background: #eee;
         }
     	.thumbstat {
     		flex: 1 1 110px;
    @@ -3262,7 +3331,7 @@ span.dashboardlineko {
         /* border-bottom-width: 0 !important; */
     }
     .boxtable .fichehalfright, .boxtable .fichehalfleft {
    -    min-width: 300px;
    +    min-width: 275px;
     }
     .tdboxstats {
     	text-align: center;
    @@ -3362,7 +3431,7 @@ div.warning {
         background: #fcf8e3;
     }
     div.warning a, div.info a, div.error a {
    -	color: rgb(<?php echo $colortext; ?>);
    +	color: rgb(<?php echo $colortextlink; ?>);
     }
     
     /* Error message */
    @@ -3425,7 +3494,7 @@ div.boximport {
     .widthpictotitle { width: 40px; text-align: <?php echo $left; ?>; }
     
     .dolgraphtitle { margin-top: 6px; margin-bottom: 4px; }
    -.dolgraphtitlecssboxes { margin: 0px; }
    +.dolgraphtitlecssboxes { /* margin: 0px; */ }
     .legendColorBox, .legendLabel { border: none !important; }
     div.dolgraph div.legend, div.dolgraph div.legend div { background-color: rgba(255,255,255,0) !important; }
     div.dolgraph div.legend table tbody tr { height: auto; }
    @@ -4644,7 +4713,7 @@ a span.select2-chosen
     
     /* Special case for the select2 add widget */
     #addbox .select2-container .select2-choice > .select2-chosen, #actionbookmark .select2-container .select2-choice > .select2-chosen {
    -    text-align: <?php echo $left; ?>;;
    +    text-align: <?php echo $left; ?>;
         opacity: 0.3;
     }
     .select2-container--default .select2-selection--single .select2-selection__placeholder {
    @@ -4737,7 +4806,81 @@ span.noborderoncategories {
     
     
     /* ============================================================================== */
    -/*  Multiselect with checkbox                                                     */
    +/*  External lib multiselect with checkbox                                        */
    +/* ============================================================================== */
    +
    +.multi-select-container {
    +  display: inline-block;
    +  position: relative;
    +}
    +
    +.multi-select-menu {
    +  position: absolute;
    +  left: 0;
    +  top: 0.8em;
    +  float: left;
    +  min-width: 100%;
    +  background: #fff;
    +  margin: 1em 0;
    +  padding: 0.4em 0;
    +  border: 1px solid #aaa;
    +  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    +  display: none;
    +}
    +
    +.multi-select-menu input {
    +  margin-right: 0.3em;
    +  vertical-align: 0.1em;
    +}
    +
    +.multi-select-button {
    +  display: inline-block;
    +  max-width: 20em;
    +  white-space: nowrap;
    +  overflow: hidden;
    +  text-overflow: ellipsis;
    +  vertical-align: middle;
    +  background-color: #fff;
    +  cursor: default;
    +
    +  border: none;
    +  border-bottom: solid 1px rgba(0,0,0,.2);
    +  padding: 5px;
    +  padding-left: 2px;
    +  height: 17px;
    +}
    +.multi-select-button:focus {
    +  outline: none;
    +  border-bottom: 1px solid #666;
    +}
    +
    +.multi-select-button:after {
    +  content: "";
    +  display: inline-block;
    +  width: 0;
    +  height: 0;
    +  border-style: solid;
    +  border-width: 0.5em 0.23em 0em 0.23em;
    +  border-color: #444 transparent transparent transparent;
    +  margin-left: 0.4em;
    +}
    +
    +.multi-select-container--open .multi-select-menu { display: block; }
    +
    +.multi-select-container--open .multi-select-button:after {
    +  border-width: 0 0.4em 0.4em 0.4em;
    +  border-color: transparent transparent #999 transparent;
    +}
    +
    +.multi-select-menuitem {
    +    clear: both;
    +    float: left;
    +    padding-left: 5px
    +}
    +
    +
    +/* ============================================================================== */
    +/*  Native multiselect with checkbox                                              */
     /* ============================================================================== */
     
     ul.ulselectedfields {
    @@ -4748,7 +4891,7 @@ dl.dropdown {
         padding:0px;
     	margin-left: 2px;
         margin-right: 2px;
    -    vertical-align: text-bottom;
    +    vertical-align: middle;
         display: inline-block;
     }
     .dropdown dd, .dropdown dt {
    @@ -4777,10 +4920,10 @@ dl.dropdown {
     }
     .dropdown dd ul {
         background-color: #FFF;
    -    border: 1px solid #888;
    +    box-shadow: 1px 1px 10px #aaa;
         display:none;
         right:0px;						/* pop is align on right */
    -    padding: 2px 15px 2px 5px;
    +    padding: 0 0 0 0;
         position:absolute;
         top:2px;
         list-style:none;
    @@ -4790,9 +4933,12 @@ dl.dropdown {
     .dropdown dd ul li {
     	white-space: nowrap;
     	font-weight: normal;
    -	padding: 2px;
    +	padding: 7px 8px 7px 8px;
     	color: #000;
     }
    +.dropdown dd ul li:hover {
    +	background: #eee;
    +}
     .dropdown dd ul li input[type="checkbox"] {
         margin-right: 3px;
     }
    @@ -4804,7 +4950,7 @@ dl.dropdown {
     	color: #888;
     }
     .dropdown dd ul li a:hover {
    -    background-color:#fff;
    +    background-color: #eee;
     }
     
     
    diff --git a/htdocs/ticket/agenda.php b/htdocs/ticket/agenda.php
    new file mode 100644
    index 00000000000..cddff9d2df6
    --- /dev/null
    +++ b/htdocs/ticket/agenda.php
    @@ -0,0 +1,239 @@
    +<?php
    +/* Copyright (C) - 2013-2016 Jean-François FERRY    <hello@librethic.io>
    + *
    + * 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + *		\file       htdocs/ticket/agenda.php
    + *    	\ingroup	ticket
    + *    	\brief		Page with events on ticket
    + */
    +
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT . '/ticket/class/actions_ticket.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/class/html.formticket.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/lib/ticket.lib.php';
    +require_once DOL_DOCUMENT_ROOT . "/core/lib/company.lib.php";
    +require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
    +require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
    +require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
    +
    +// Load translation files required by the page
    +$langs->loadLangs(array('companies', 'other', 'ticket'));
    +
    +// Get parameters
    +$id       = GETPOST('id', 'int');
    +$ref      = GETPOST('ref', 'alpha');
    +$track_id = GETPOST('track_id', 'alpha', 3);
    +$socid    = GETPOST('socid', 'int');
    +$action   = GETPOST('action', 'aZ09');
    +
    +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
    +$sortfield = GETPOST("sortfield","alpha");
    +$sortorder = GETPOST("sortorder");
    +$page = GETPOST("page");
    +$page = is_numeric($page) ? $page : 0;
    +$page = $page == -1 ? 0 : $page;
    +if (! $sortfield) $sortfield="a.datep,a.id";
    +if (! $sortorder) $sortorder="DESC";
    +$offset = $limit * $page ;
    +$pageprev = $page - 1;
    +$pagenext = $page + 1;
    +
    +if (GETPOST('actioncode','array'))
    +{
    +	$actioncode=GETPOST('actioncode','array',3);
    +	if (! count($actioncode)) $actioncode='0';
    +}
    +else
    +{
    +	$actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT));
    +}
    +$search_agenda_label=GETPOST('search_agenda_label');
    +
    +$object = new Ticket($db);
    +$object->fetch($id, $ref, $track_id);
    +
    +$extrafields = new ExtraFields($db);
    +$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
    +
    +if (!$action) {
    +	$action = 'view';
    +}
    +
    +
    +// Security check
    +$id = GETPOST("id",'int');
    +$socid=0;
    +//if ($user->societe_id > 0) $socid = $user->societe_id;    // For external user, no check is done on company because readability is managed by public status of project and assignement.
    +$result=restrictedArea($user,'ticket',$id,'');
    +
    +if (!$user->rights->ticket->read) {
    +	accessforbidden();
    +}
    +// restrict access for externals users
    +if ($user->societe_id > 0 && ($object->fk_soc != $user->societe_id))
    +{
    +	accessforbidden('', 0);
    +}
    +// or for unauthorized internals users
    +if (!$user->societe_id && ($conf->global->TICKET_LIMIT_VIEW_ASSIGNED_ONLY && $object->fk_user_assign != $user->id) && !$user->rights->ticket->manage) {
    +	accessforbidden('', 0);
    +}
    +
    +
    +
    +/*
    + * Actions
    + */
    +
    +$parameters=array('id'=>$socid);
    +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
    +
    +// Purge search criteria
    +if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All test are required to be compatible with all browsers
    +{
    +	$actioncode='';
    +	$search_agenda_label='';
    +}
    +
    +
    +
    +/*
    + * View
    + */
    +
    +$form = new Form($db);
    +$userstat = new User($db);
    +$formticket = new FormTicket($db);
    +
    +$title=$langs->trans("Ticket").' - '.$object->ref.' '.$object->name;
    +if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/ticketnameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->ref.' '.$object->name.' - '.$langs->trans("Info");
    +$help_url = 'FR:DocumentationModuleTicket';
    +llxHeader('', $title, $help_url);
    +
    +	if ($socid > 0) {
    +            $object->fetch_thirdparty();
    +            $head = societe_prepare_head($object->thirdparty);
    +
    +            dol_fiche_head($head, 'ticket', $langs->trans("ThirdParty"), 0, 'company');
    +
    +            dol_banner_tab($object->thirdparty, 'socid', '', ($user->societe_id ? 0 : 1), 'rowid', 'nom');
    +
    +            dol_fiche_end();
    +    }
    +
    +        if (!$user->societe_id && $conf->global->TICKET_LIMIT_VIEW_ASSIGNED_ONLY) {
    +            $object->next_prev_filter = "te.fk_user_assign = '" . $user->id . "'";
    +        } elseif ($user->societe_id > 0) {
    +            $object->next_prev_filter = "te.fk_soc = '" . $user->societe_id . "'";
    +        }
    +        $head = ticket_prepare_head($object);
    +
    +        dol_fiche_head($head, 'tabTicketLogs', $langs->trans("Ticket"), 0, 'ticket');
    +
    +        $morehtmlref ='<div class="refidno">';
    +        $morehtmlref.= $object->subject;
    +        // Author
    +        if ($object->fk_user_create > 0) {
    +        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . '  ';
    +
    +        	$langs->load("users");
    +        	$fuser = new User($db);
    +        	$fuser->fetch($object->fk_user_create);
    +        	$morehtmlref .= $fuser->getNomUrl(0);
    +        }
    +        if (!empty($object->origin_email)) {
    +        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . ' : ';
    +        	$morehtmlref .= $object->origin_email . ' <small>(' . $langs->trans("TicketEmailOriginIssuer") . ')</small>';
    +        }
    +
    +        // Thirdparty
    +        if (! empty($conf->societe->enabled))
    +        {
    +        	$morehtmlref.='<br>'.$langs->trans('ThirdParty');
    +        	/*if ($action != 'editcustomer' && $object->fk_statut < 8 && !$user->societe_id && $user->rights->ticket->write) {
    +        		$morehtmlref.='<a href="' . $url_page_current . '?action=editcustomer&amp;track_id=' . $object->track_id . '">' . img_edit($langs->transnoentitiesnoconv('Edit'), 1) . '</a>';
    +        	}*/
    +        	$morehtmlref.=' : ';
    +        	if ($action == 'editcustomer') {
    +        		$morehtmlref.=$form->form_thirdparty($url_page_current . '?track_id=' . $object->track_id, $object->socid, 'editcustomer', '', 1, 0, 0, array(), 1);
    +        	} else {
    +        		$morehtmlref.=$form->form_thirdparty($url_page_current . '?track_id=' . $object->track_id, $object->socid, 'none', '', 1, 0, 0, array(), 1);
    +        	}
    +        }
    +
    +        // Project
    +        if (! empty($conf->projet->enabled))
    +        {
    +        	$langs->load("projects");
    +        	$morehtmlref.='<br>'.$langs->trans('Project');
    +        	if ($user->rights->ticket->write)
    +        	{
    +        		if ($action != 'classify')
    +        			//$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a>';
    +        			$morehtmlref.=' : ';
    +        			if ($action == 'classify') {
    +        				//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
    +        				$morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
    +        				$morehtmlref.='<input type="hidden" name="action" value="classin">';
    +        				$morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +        				$morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', 0, 0, 1, 0, 1, 0, 0, '', 1);
    +        				$morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    +        				$morehtmlref.='</form>';
    +        			} else {
    +        				$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
    +        			}
    +        	} else {
    +        		if (! empty($object->fk_project)) {
    +        			$proj = new Project($db);
    +        			$proj->fetch($object->fk_project);
    +        			$morehtmlref.=$proj->getNomUrl(1);
    +        		} else {
    +        			$morehtmlref.='';
    +        		}
    +        	}
    +        }
    +
    +        $morehtmlref.='</div>';
    +
    +        $linkback = '<a href="' . dol_buildpath('/ticket/list.php', 1) . '"><strong>' . $langs->trans("BackToList") . '</strong></a> ';
    +
    +        dol_banner_tab($object, 'ref', $linkback, ($user->societe_id ? 0 : 1), 'ref', 'ref', $morehtmlref, '', 0, '', '', 1);
    +
    +        dol_fiche_end();
    +
    +    print '<br>';
    +
    +
    +if (!empty($object->id))
    +{
    +	print '<br>';
    +	$param='&id='.$object->id;
    +	if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    +	if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    +
    +	print_barre_liste($langs->trans("ActionsOnTicket"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', 0, $morehtmlcenter, '', 0, 1, 1);
    +
    +	// List of all actions
    +	$filters=array();
    +	$filters['search_agenda_label']=$search_agenda_label;
    +	show_actions_done($conf,$langs,$db,$object,null,0,$actioncode, '', $filters, $sortfield, $sortorder);
    +}
    +
    +// End of page
    +llxFooter();
    +$db->close();
    diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php
    index b736b49646f..68f01707d58 100644
    --- a/htdocs/ticket/card.php
    +++ b/htdocs/ticket/card.php
    @@ -49,32 +49,49 @@ $id        = GETPOST('id', 'int');
     $track_id  = GETPOST('track_id', 'alpha', 3);
     $ref       = GETPOST('ref', 'alpha');
     $projectid = GETPOST('projectid', 'int');
    -$action    = GETPOST('action', 'alpha', 3);
    +$action    = GETPOST('action', 'aZ09');
     
     // Initialize technical object to manage hooks of ticket. Note that conf->hooks_modules contains array array
     $hookmanager->initHooks(array('ticketcard','globalcard'));
     
     $object = new Ticket($db);
    -
     $extrafields = new ExtraFields($db);
    +// Fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
    -if (!$action) {
    -    $action = 'view';
    +// Initialize array of search criterias
    +$search_all=trim(GETPOST("search_all",'alpha'));
    +$search=array();
    +foreach($object->fields as $key => $val)
    +{
    +	if (GETPOST('search_'.$key,'alpha')) $search[$key]=GETPOST('search_'.$key,'alpha');
     }
    +
    +if (empty($action) && empty($id) && empty($ref)) $action='view';
    +
     //Select mail models is same action as add_message
     if (GETPOST('modelselected','alpha')) {
         $action = 'add_message';
     }
     
    +// Load object
    +//include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php';  // Must be include, not include_once  // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals
    +if ($id || $track_id || $ref) {
    +	$res = $object->fetch($id, $ref, $track_id);
    +	if ($res >= 0)
    +	{
    +		$id = $object->id;
    +		$track_id = $object->track_id;
    +	}
    +}
    +
     // Store current page url
     $url_page_current = DOL_URL_ROOT.'/ticket/card.php';
     
    -if ($id || $track_id || $ref) {
    -	$res = $object->fetch($id, $ref, $track_id);
    -}
    -
    -// Security check
    +// Security check - Protection if external user
    +//if ($user->societe_id > 0) access_forbidden();
    +//if ($user->societe_id > 0) $socid = $user->societe_id;
     $result = restrictedArea($user, 'ticket', $object->id);
     
     $triggermodname = 'TICKETSUP_MODIFY';
    @@ -89,7 +106,9 @@ $now = dol_now();
      * Actions
      */
     
    -// TODO Replace actions with common includes actions_addupdatedelete.inc.php
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
     
     if ($cancel)
     {
    @@ -98,7 +117,7 @@ if ($cancel)
     		header("Location: ".$backtopage);
     		exit;
     	}
    -	$action='';
    +	$action='view';
     }
     
     // Do action
    @@ -157,26 +176,25 @@ include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php';        // Must be inc
     $userstat = new User($db);
     $form = new Form($db);
     $formticket = new FormTicket($db);
    +if (! empty($conf->projet->enabled)) $formproject = new FormProjets($db);
     
    -if (! empty($conf->projet->enabled)) {
    -	$formproject = new FormProjets($db);
    -}
    +$help_url = 'FR:DocumentationModuleTicket';
    +$page_title = $actionobject->getTitle($action);
     
    -if ($action == 'view' || $action == 'add_message' || $action == 'close' || $action == 'delete' || $action == 'editcustomer' || $action == 'progression' || $action == 'reopen'
    +llxHeader('', $page_title, $help_url);
    +
    +
    +if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'dellink' || $action == 'add_message' || $action == 'close' || $action == 'delete' || $action == 'editcustomer' || $action == 'progression' || $action == 'reopen'
     	|| $action == 'editsubject' || $action == 'edit_extras' || $action == 'update_extras' || $action == 'edit_extrafields' || $action == 'set_extrafields' || $action == 'classify' || $action == 'sel_contract' || $action == 'edit_message_init' || $action == 'set_status' || $action == 'dellink')
     {
     
    -    if ($res > 0) {
    +    if ($res > 0)
    +    {
             // or for unauthorized internals users
             if (!$user->societe_id && ($conf->global->TICKET_LIMIT_VIEW_ASSIGNED_ONLY && $object->fk_user_assign != $user->id) && !$user->rights->ticket->manage) {
                 accessforbidden('', 0);
             }
     
    -        $help_url = 'FR:DocumentationModuleTicket';
    -        $page_title = $actionobject->getTitle($action);
    -
    -        llxHeader('', $page_title, $help_url);
    -
             // Confirmation close
             if ($action == 'close') {
                 print $form->formconfirm($url_page_current . "?track_id=" . $object->track_id, $langs->trans("CloseATicket"), $langs->trans("ConfirmCloseAticket"), "confirm_close", '', '', 1);
    @@ -287,7 +305,7 @@ if ($action == 'view' || $action == 'add_message' || $action == 'close' || $acti
             $morehtmlref.= $object->subject;
             // Author
             if ($object->fk_user_create > 0) {
    -        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . '  ';
    +        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . ' : ';
     
                 $langs->load("users");
                 $fuser = new User($db);
    @@ -295,19 +313,34 @@ if ($action == 'view' || $action == 'add_message' || $action == 'close' || $acti
                 $morehtmlref .= $fuser->getNomUrl(0);
             }
             if (!empty($object->origin_email)) {
    -        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . ' ';
    +        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . ' : ';
             	$morehtmlref .= $object->origin_email . ' <small>(' . $langs->trans("TicketEmailOriginIssuer") . ')</small>';
             }
     
    +        // Thirdparty
    +        if (! empty($conf->societe->enabled))
    +        {
    +	        $morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' ';
    +	        if ($action != 'editcustomer' && $object->fk_statut < 8 && !$user->societe_id && $user->rights->ticket->write) {
    +	        	$morehtmlref.='<a href="' . $url_page_current . '?action=editcustomer&amp;track_id=' . $object->track_id . '">' . img_edit($langs->transnoentitiesnoconv('Edit'), 1) . '</a> : ';
    +	        }
    +	        if ($action == 'editcustomer') {
    +	        	$morehtmlref.=$form->form_thirdparty($url_page_current . '?track_id=' . $object->track_id, $object->socid, 'editcustomer', '', 1, 0, 0, array(), 1);
    +	        } else {
    +	        	$morehtmlref.=$form->form_thirdparty($url_page_current . '?track_id=' . $object->track_id, $object->socid, 'none', '', 1, 0, 0, array(), 1);
    +	        }
    +        }
    +
             // Project
             if (! empty($conf->projet->enabled))
             {
             	$langs->load("projects");
    -        	$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
    +        	$morehtmlref.='<br>'.$langs->trans('Project');
             	if ($user->rights->ticket->write)
             	{
             		if ($action != 'classify')
    -        			$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
    +        			$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a>';
    +       			$morehtmlref.=' : ';
            			if ($action == 'classify') {
            				//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
            				$morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
    @@ -323,9 +356,7 @@ if ($action == 'view' || $action == 'add_message' || $action == 'close' || $acti
             		if (! empty($object->fk_project)) {
             			$proj = new Project($db);
             			$proj->fetch($object->fk_project);
    -        			$morehtmlref.='<a href="'.DOL_URL_ROOT.'/projet/card.php?id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">';
    -        			$morehtmlref.=$proj->ref;
    -        			$morehtmlref.='</a>';
    +        			$morehtmlref.=$proj->getNomUrl(1);
             		} else {
             			$morehtmlref.='';
             		}
    @@ -385,24 +416,6 @@ if ($action == 'view' || $action == 'add_message' || $action == 'close' || $acti
             }
             print '</td></tr>';
     
    -        // Thirdparty
    -        print '<tr><td>';
    -        print '<table class="nobordernopadding" width="100%"><tr><td>';
    -        print $langs->trans('ThirdParty');
    -        print '</td>';
    -        if ($action != 'editcustomer' && $object->fk_statut < 8 && !$user->societe_id && $user->rights->ticket->write) {
    -            print '<td align="right"><a href="' . $url_page_current . '?action=editcustomer&amp;track_id=' . $object->track_id . '">' . img_edit($langs->transnoentitiesnoconv('Edit'), 1) . '</a></td>';
    -        }
    -        print '</tr></table>';
    -        print '</td><td colspan="3">';
    -
    -        if ($action == 'editcustomer') {
    -            $form->form_thirdparty($url_page_current . '?track_id=' . $object->track_id, $object->fk_soc, 'editcustomer', ($object->fk_soc ? 's.rowid <> ' . $object->fk_soc : ''), 1);
    -        } else {
    -            $form->form_thirdparty($url_page_current . '?track_id=' . $object->track_id, $object->fk_soc, 'none', 's.rowid <> ' . $object->fk_soc, 1);
    -        }
    -        print '</td></tr>';
    -
             // User assigned
             print '<tr><td>' . $langs->trans("AssignedTo") . '</td><td>';
             if ($object->fk_user_assign > 0) {
    @@ -692,151 +705,146 @@ if ($action == 'view' || $action == 'add_message' || $action == 'close' || $acti
     			print '</div>';
             }
     
    -        // Contract
    -        if ($action == 'sel_contract') {
    -            if (!empty($conf->contrat->enabled)) {
    -                $langs->load('contrats');
    -                print load_fiche_titre($langs->trans('LinkToAContract'), '', 'title_commercial.png');
    -
    -                $form_contract = new FormContract($db);
    -                $form_contract->formSelectContract(
    -                    $url_page_current.'?track_id='.$object->track_id,
    -                    $object->fk_soc,
    -                    GETPOST('contractid'),
    -                    'contractid'
    -                );
    -            }
    -        }
    -
             print '</div></div></div>';
             print '<div style="clear:both"></div>';
     
    -        print dol_fiche_end();
    +		dol_fiche_end();
     
     
    -        /* ActionBar */
    -        print '<div class="tabsAction">';
    +		// Buttons for actions
    +		if ($action != 'presend' && $action != 'editline') {
    +			print '<div class="tabsAction">'."\n";
    +			$parameters=array();
    +			$reshook=$hookmanager->executeHooks('addMoreActionsButtons',$parameters,$object,$action);    // Note that $action and $object may have been modified by hook
    +			if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
     
    -        // Show link to add a message (if read and not closed)
    -        if ($object->fk_statut < 8 && $action != "add_message") {
    -            print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id=' . $object->track_id . '&action=add_message">' . $langs->trans('TicketAddMessage') . '</a></div>';
    -        }
    +			if (empty($reshook))
    +			{
    +				// Show link to add a message (if read and not closed)
    +		        if ($object->fk_statut < 8 && $action != "add_message") {
    +		            print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id=' . $object->track_id . '&action=add_message">' . $langs->trans('TicketAddMessage') . '</a></div>';
    +		        }
     
    -        // Link to create an intervention
    -        // socid is needed otherwise fichinter ask it and forgot origin after form submit :\
    -        if (!$object->fk_soc && $user->rights->ficheinter->creer) {
    -            print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . $langs->trans('UnableToCreateInterIfNoSocid') . '">' . $langs->trans('TicketAddIntervention') . '</a></div>';
    -        }
    -        if ($object->fk_soc > 0 && $object->fk_statut < 8 && $user->rights->ficheinter->creer) {
    -            print '<div class="inline-block divButAction"><a class="butAction" href="' . dol_buildpath('/fichinter/card.php', 1) . '?action=create&socid=' . $object->fk_soc . '&origin=ticket_ticket&originid=' . $object->id . '">' . $langs->trans('TicketAddIntervention') . '</a></div>';
    -        }
    +		        // Link to create an intervention
    +		        // socid is needed otherwise fichinter ask it and forgot origin after form submit :\
    +		        if (!$object->fk_soc && $user->rights->ficheinter->creer) {
    +		            print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs->trans('UnableToCreateInterIfNoSocid') . '">' . $langs->trans('TicketAddIntervention') . '</a></div>';
    +		        }
    +		        if ($object->fk_soc > 0 && $object->fk_statut < 8 && $user->rights->ficheinter->creer) {
    +		            print '<div class="inline-block divButAction"><a class="butAction" href="' . dol_buildpath('/fichinter/card.php', 1) . '?action=create&socid=' . $object->fk_soc . '&origin=ticket_ticket&originid=' . $object->id . '">' . $langs->trans('TicketAddIntervention') . '</a></div>';
    +		        }
     
    -        //    Button to link to a contract
    -        if ($user->rights->ticket->write && $object->fk_statut < 5 && $user->rights->contrat->creer) {
    -            print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id=' . $object->track_id . '&action=sel_contract">' . $langs->trans('LinkToAContract') . '</a></div>';
    -        }
    +		        // Close ticket if statut is read
    +		        if ($object->fk_statut > 0 && $object->fk_statut < 8 && $user->rights->ticket->write) {
    +		            print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id=' . $object->track_id . '&action=close">' . $langs->trans('CloseTicket') . '</a></div>';
    +		        }
     
    -        // Close ticket if statut is read
    -        if ($object->fk_statut > 0 && $object->fk_statut < 8 && $user->rights->ticket->write) {
    -            print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id=' . $object->track_id . '&action=close">' . $langs->trans('CloseTicket') . '</a></div>';
    -        }
    +		        // Re-open ticket
    +		        if (!$user->socid && $object->fk_statut == 8 && !$user->societe_id) {
    +		            print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id=' . $object->track_id . '&action=reopen">' . $langs->trans('ReOpen') . '</a></div>';
    +		        }
     
    -        // Re-open ticket
    -        if (!$user->socid && $object->fk_statut == 8 && !$user->societe_id) {
    -            print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id=' . $object->track_id . '&action=reopen">' . $langs->trans('ReOpen') . '</a></div>';
    -        }
    -
    -        // Delete ticket
    -        if ($user->rights->ticket->delete && !$user->societe_id) {
    -            print '<div class="inline-block divButAction"><a class="butActionDelete" href="card.php?track_id=' . $object->track_id . '&action=delete">' . $langs->trans('Delete') . '</a></div>';
    -        }
    -        print '</div>';
    -
    -        if ($action == 'view' || $action == 'edit_message_init') {
    -            print '<div class="fichecenter"><div class="">';
    -
    -            //print '<div style="float: left; width:49%; margin-right: 1%;">';
    -            // Message list
    -            print load_fiche_titre($langs->trans('TicketMessagesList'), '', 'messages@ticket');
    -            $show_private_message = ($user->societe_id ? 0 : 1);
    -            $actionobject->viewTicketTimelineMessages($show_private_message, true, $object);
    -
    -            print '</div><!-- fichehalfleft --> ';
    -            print '</div><!-- fichecenter -->';
    -            print '<br style="clear: both">';
    -        } elseif ($action == 'add_message') {
    -            $action='new_message';
    -            $modelmail='ticket_send';
    -
    -            print '<div>';
    -            print load_fiche_titre($langs->trans('TicketAddMessage'), '', 'messages@ticket');
    -
    -            // Define output language
    -            $outputlangs = $langs;
    -            $newlang = '';
    -            if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) {
    -                $newlang = $_REQUEST['lang_id'];
    -            }
    -            if ($conf->global->MAIN_MULTILANGS && empty($newlang)) {
    -                $newlang = $object->default_lang;
    -            }
    -
    -            $formticket = new FormTicket($db);
    -
    -            $formticket->action = $action;
    -            $formticket->track_id = $object->track_id;
    -            $formticket->id = $object->id;
    -
    -            $formticket->withfile = 2;
    -            $formticket->param = array('fk_user_create' => $user->id);
    -            $formticket->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
    -
    -            // Tableau des parametres complementaires du post
    -            $formticket->param['models']=$modelmail;
    -            $formticket->param['models_id']=GETPOST('modelmailselected', 'int');
    -            //$formticket->param['socid']=$object->fk_soc;
    -            $formticket->param['returnurl']=$_SERVER["PHP_SELF"].'?track_id='.$object->track_id;
    +		        // Delete ticket
    +		        if ($user->rights->ticket->delete && !$user->societe_id) {
    +		            print '<div class="inline-block divButAction"><a class="butActionDelete" href="card.php?track_id=' . $object->track_id . '&action=delete">' . $langs->trans('Delete') . '</a></div>';
    +		        }
    +			}
    +	        print '</div>'."\n";
    +		}
     
     
    -            $formticket->withsubstit = 1;
    +		// Select mail models is same action as presend
    +		if (GETPOST('modelselected')) {
    +			$action = 'presend';
    +		}
     
    -            if ($object->fk_soc > 0) {
    -                $object->fetch_thirdparty();
    -                $formticket->substit['__THIRDPARTY_NAME__'] = $object->thirdparty->name;
    -            }
    -            $formticket->substit['__SIGNATURE__'] = $user->signature;
    -            $formticket->substit['__TICKETSUP_TRACKID__'] = $object->track_id;
    -            $formticket->substit['__TICKETSUP_REF__'] = $object->ref;
    -            $formticket->substit['__TICKETSUP_SUBJECT__'] = $object->subject;
    -            $formticket->substit['__TICKETSUP_TYPE__'] = $object->type_code;
    -            $formticket->substit['__TICKETSUP_CATEGORY__'] = $object->category_code;
    -            $formticket->substit['__TICKETSUP_SEVERITY__'] = $object->severity_code;
    -            $formticket->substit['__TICKETSUP_MESSAGE__'] = $object->message;
    -            $formticket->substit['__TICKETSUP_PROGRESSION__'] = $object->progress;
    -            if ($object->fk_user_assign > 0) {
    -                $userstat->fetch($object->fk_user_assign);
    -                $formticket->substit['__TICKETSUP_USER_ASSIGN__'] = dolGetFirstLastname($userstat->firstname, $userstat->lastname);
    -            }
    +		if (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'dellink' || $action == 'edit_message_init')
    +		{
    +			print '<div class="fichecenter"><div class="fichehalfleft">';
    +			print '<a name="builddoc"></a>'; // ancre
     
    -            if ($object->fk_user_create > 0) {
    -                $userstat->fetch($object->fk_user_create);
    -                $formticket->substit['__TICKETSUP_USER_CREATE__'] = dolGetFirstLastname($userstat->firstname, $userstat->lastname);
    -            }
    +			// Show links to link elements
    +			$linktoelem = $form->showLinkToObjectBlock($object, null, array('ticket'));
    +			$somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
    +
    +			print '</div><div class="fichehalfright"><div class="ficheaddleft">';
    +
    +			// Message list
    +			print load_fiche_titre($langs->trans('TicketMessagesList'), '', 'messages@ticket');
    +			$show_private_message = ($user->societe_id ? 0 : 1);
    +			$actionobject->viewTicketTimelineMessages($show_private_message, true, $object);
    +
    +			print '</div></div>';
    +			print '</div><!-- fichecenter -->';
    +			print '<br style="clear: both">';
    +		}
    +		elseif ($action == 'add_message')
    +		{
    +			$action='new_message';
    +			$modelmail='ticket_send';
    +
    +			print '<div>';
    +			print load_fiche_titre($langs->trans('TicketAddMessage'), '', 'messages@ticket');
    +
    +			// Define output language
    +			$outputlangs = $langs;
    +			$newlang = '';
    +			if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) {
    +				$newlang = $_REQUEST['lang_id'];
    +			}
    +			if ($conf->global->MAIN_MULTILANGS && empty($newlang)) {
    +				$newlang = $object->default_lang;
    +			}
    +
    +			$formticket = new FormTicket($db);
    +
    +			$formticket->action = $action;
    +			$formticket->track_id = $object->track_id;
    +			$formticket->id = $object->id;
    +
    +			$formticket->withfile = 2;
    +			$formticket->param = array('fk_user_create' => $user->id);
    +			$formticket->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang);
    +
    +			// Tableau des parametres complementaires du post
    +			$formticket->param['models']=$modelmail;
    +			$formticket->param['models_id']=GETPOST('modelmailselected', 'int');
    +			//$formticket->param['socid']=$object->fk_soc;
    +			$formticket->param['returnurl']=$_SERVER["PHP_SELF"].'?track_id='.$object->track_id;
     
     
    -            $formticket->showMessageForm('100%');
    -            print '</div>';
    -        }
    -    }
    -} // End action view
    +			$formticket->withsubstit = 1;
     
    -/***************************************************
    - * LINKED OBJECT BLOCK
    - *
    - * Put here code to view linked object
    - ****************************************************/
    -$somethingshown = $form->showLinkedObjectBlock($object);
    +			if ($object->fk_soc > 0) {
    +				$object->fetch_thirdparty();
    +				$formticket->substit['__THIRDPARTY_NAME__'] = $object->thirdparty->name;
    +			}
    +			$formticket->substit['__SIGNATURE__'] = $user->signature;
    +			$formticket->substit['__TICKETSUP_TRACKID__'] = $object->track_id;
    +			$formticket->substit['__TICKETSUP_REF__'] = $object->ref;
    +			$formticket->substit['__TICKETSUP_SUBJECT__'] = $object->subject;
    +			$formticket->substit['__TICKETSUP_TYPE__'] = $object->type_code;
    +			$formticket->substit['__TICKETSUP_CATEGORY__'] = $object->category_code;
    +			$formticket->substit['__TICKETSUP_SEVERITY__'] = $object->severity_code;
    +			$formticket->substit['__TICKETSUP_MESSAGE__'] = $object->message;
    +			$formticket->substit['__TICKETSUP_PROGRESSION__'] = $object->progress;
    +			if ($object->fk_user_assign > 0) {
    +				$userstat->fetch($object->fk_user_assign);
    +				$formticket->substit['__TICKETSUP_USER_ASSIGN__'] = dolGetFirstLastname($userstat->firstname, $userstat->lastname);
    +			}
    +
    +			if ($object->fk_user_create > 0) {
    +				$userstat->fetch($object->fk_user_create);
    +				$formticket->substit['__TICKETSUP_USER_CREATE__'] = dolGetFirstLastname($userstat->firstname, $userstat->lastname);
    +			}
    +
    +
    +			$formticket->showMessageForm('100%');
    +			print '</div>';
    +	    }
    +	}
    +}
     
     // End of page
    -llxFooter('');
    +llxFooter();
     $db->close();
    diff --git a/htdocs/ticket/class/actions_ticket.class.php b/htdocs/ticket/class/actions_ticket.class.php
    index 3411672bd90..e67cd7a313c 100644
    --- a/htdocs/ticket/class/actions_ticket.class.php
    +++ b/htdocs/ticket/class/actions_ticket.class.php
    @@ -35,22 +35,49 @@ require_once DOL_DOCUMENT_ROOT . '/fichinter/class/fichinter.class.php';
      */
     class ActionsTicket
     {
    +    /**
    +     * @var DoliDB Database handler.
    +     */
         public $db;
    +
         public $dao;
     
         public $mesg;
    -    public $error;
    -    public $errors = array();
    +
    +    /**
    +	 * @var string Error code (or message)
    +	 */
    +	public $error;
    +
    +    /**
    +	 * @var string[] Error codes (or messages)
    +	 */
    +	public $errors = array();
    +
         //! Numero de l'erreur
         public $errno = 0;
     
         public $template_dir;
         public $template;
     
    +    /**
    +     * @var string ticket action label
    +     */
         public $label;
    -    public $description;
     
    +    /**
    +	 * @var string description
    +	 */
    +	public $description;
    +
    +	/**
    +     * @var int ID
    +     */
         public $fk_statut;
    +
    +    /**
    +	 * @var int Thirdparty ID
    +	 */
         public $fk_soc;
     
         /**
    @@ -231,7 +258,7 @@ class ActionsTicket
                             // Extrafields
                             $extrafields = new ExtraFields($this->db);
                             $extralabels = $extrafields->fetch_name_optionals_label($fichinter->table_element);
    -                        $array_options = $extrafields->getOptionalsFromPost($extralabels);
    +                        $array_options = $extrafields->getOptionalsFromPost($fichinter->table_element);
                             $fichinter->array_options = $array_options;
     
                             $id = $fichinter->create($user);
    @@ -579,6 +606,7 @@ class ActionsTicket
          *
          * @param User $user        User for action
          * @param string $action    Action string
    +     * @return int
          */
         private function newMessage($user, &$action)
         {
    @@ -792,12 +820,14 @@ class ActionsTicket
          *
          * @param User $user        User for action
          * @param string $action    Action string
    +     * @return void
          */
         private function newMessagePublic($user, &$action)
         {
     
             global $mysoc, $conf, $langs;
     
    +        $object = new Ticket($this->db);
             $error = 0;
             $ret = $object->fetch('', '', GETPOST('track_id','alpha'));
             $object->socid = $object->fk_soc;
    @@ -815,11 +845,11 @@ class ActionsTicket
             }
     
             if (!$error) {
    -            $object->message = GETPOST("message");
    +            $object->message = (string) GETPOST("message");
                 $id = $object->createTicketMessage($user);
                 if ($id <= 0) {
                     $error++;
    -                $this->errors = $object->error;
    +                $this->error = $object->error;
                     $this->errors = $object->errors;
                     $action = 'add_message';
                 }
    @@ -949,7 +979,7 @@ class ActionsTicket
          * Print statut
          *
          * @param		int		$mode		Display mode
    -     * @return 		void
    +     * @return 		string				Label of status
          */
         public function getLibStatut($mode = 0)
         {
    @@ -962,6 +992,7 @@ class ActionsTicket
          * Get ticket info
          *
          * @param  int $id    Object id
    +     * @return void
          */
         public function getInfo($id)
         {
    @@ -975,7 +1006,8 @@ class ActionsTicket
         /**
          * Get action title
          *
    -     * @param string $action    Type of action
    +     * @param string 	$action    	Type of action
    +     * @return string			Title of action
          */
         public function getTitle($action = '')
         {
    @@ -998,10 +1030,11 @@ class ActionsTicket
          * View html list of logs
          *
          * @param boolean $show_user Show user who make action
    +     * @return void
          */
         public function viewTicketLogs($show_user = true)
         {
    -        global $conf, $langs, $bc;
    +        global $conf, $langs;
     
             // Load logs in cache
             $ret = $this->dao->loadCacheLogsTicket();
    @@ -1021,11 +1054,8 @@ class ActionsTicket
                     print '</th>';
                 }
     
    -            $var = true;
    -
                 foreach ($this->dao->cache_logs_ticket as $id => $arraylogs) {
    -                $var = !$var;
    -                print "<tr " . $bc[$var] . ">";
    +                print '<tr class="oddeven">';
                     print '<td><strong>';
                     print dol_print_date($arraylogs['datec'], 'dayhour');
                     print '</strong></td>';
    @@ -1042,7 +1072,7 @@ class ActionsTicket
                         print '</td>';
                     }
                     print '</tr>';
    -                print "<tr " . $bc[$var] . ">";
    +                print '<tr class="oddeven">';
                     print '<td colspan="2">';
                     print dol_nl2br($arraylogs['message']);
     
    @@ -1061,10 +1091,11 @@ class ActionsTicket
          *
          * @param 	boolean 	$show_user 	Show user who make action
          * @param	Ticket	$object		Object
    +     * @return void
          */
         public function viewTimelineTicketLogs($show_user = true, $object = true)
         {
    -    	global $conf, $langs, $bc;
    +    	global $conf, $langs;
     
         	// Load logs in cache
         	$ret = $object->loadCacheLogsTicket();
    @@ -1168,20 +1199,20 @@ class ActionsTicket
          *
          * @param boolean $show_private Show private messages
          * @param boolean $show_user    Show user who make action
    +     * @return void
          */
         public function viewTicketMessages($show_private, $show_user = true)
         {
    -        global $conf, $langs, $user, $bc;
    -		global $object;
    +        global $conf, $langs, $user;
     
             // Load logs in cache
    -        $ret = $object->loadCacheMsgsTicket();
    +        $ret = $this->dao->loadCacheMsgsTicket();
             $action = GETPOST('action');
     
             $this->viewTicketOriginalMessage($user, $action);
     
    -        if (is_array($object->cache_msgs_ticket) && count($object->cache_msgs_ticket) > 0) {
    -            print_titre($langs->trans('TicketMailExchanges'));
    +        if (is_array($this->dao->cache_msgs_ticket) && count($this->dao->cache_msgs_ticket) > 0) {
    +            print load_fiche_titre($langs->trans('TicketMailExchanges'));
     
                 print '<table class="border" style="width:100%;">';
     
    @@ -1197,13 +1228,12 @@ class ActionsTicket
                     print '</td>';
                 }
     
    -            foreach ($object->cache_msgs_ticket as $id => $arraymsgs) {
    +            foreach ($this->dao->cache_msgs_ticket as $id => $arraymsgs) {
                     if (!$arraymsgs['private']
                         || ($arraymsgs['private'] == "1" && $show_private)
                     ) {
                         //print '<tr>';
    -                    $var = !$var;
    -                    print "<tr " . $bc[$var] . ">";
    +                    print '<tr class="oddeven">';
                         print '<td><strong>';
                         print dol_print_date($arraymsgs['datec'], 'dayhour');
                         print '<strong></td>';
    @@ -1221,7 +1251,7 @@ class ActionsTicket
                             print '</td>';
                         }
                         print '</td>';
    -                    print "<tr " . $bc[$var] . ">";
    +                    print '<tr class="oddeven">';
                         print '<td colspan="2">';
                         print $arraymsgs['message'];
                         print '</td>';
    @@ -1241,10 +1271,11 @@ class ActionsTicket
          * @param 	boolean 	$show_private Show private messages
          * @param 	boolean 	$show_user    Show user who make action
          * @param	Ticket	$object		 Object ticket
    +     * @return void
          */
         public function viewTicketTimelineMessages($show_private, $show_user, Ticket $object)
         {
    -    	global $conf, $langs, $user, $bc;
    +    	global $conf, $langs, $user;
     
         	// Load logs in cache
         	$ret = $object->loadCacheMsgsTicket();
    @@ -1292,6 +1323,7 @@ class ActionsTicket
         	}
         }
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          * load_previous_next_ref
          *
    @@ -1301,6 +1333,7 @@ class ActionsTicket
          */
         function load_previous_next_ref($filter, $fieldid)
         {
    +        // phpcs:enable
             $this->getInstanceDao();
             return $object->load_previous_next_ref($filter, $fieldid);
         }
    @@ -1312,6 +1345,7 @@ class ActionsTicket
          * @param string $message          Email message
          * @param int    $send_internal_cc Receive a copy on internal email ($conf->global->TICKET_NOTIFICATION_EMAIL_FROM)
          * @param array  $array_receiver   Array of receiver. exemple array('name' => 'John Doe', 'email' => 'john@doe.com', etc...)
    +     * @return void
          */
         public function sendTicketMessageByEmail($subject, $message, $send_internal_cc = 0, $array_receiver = array())
         {
    diff --git a/htdocs/ticket/class/api_tickets.class.php b/htdocs/ticket/class/api_tickets.class.php
    index c75ab7e2450..110c27a5cce 100644
    --- a/htdocs/ticket/class/api_tickets.class.php
    +++ b/htdocs/ticket/class/api_tickets.class.php
    @@ -473,190 +473,6 @@ class Tickets extends DolibarrApi
             );
         }
     
    -
    -    /**
    -     * Get the list of tickets categories.
    -     *
    -     * @param string    $sortfield  Sort field
    -     * @param string    $sortorder  Sort order
    -     * @param int       $limit      Number of items per page
    -     * @param int       $page       Page number (starting from zero)
    -     * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)"
    -     * @return List of events types
    -     *
    -     * @url     GET setup/dictionary/categories
    -     *
    -     * @throws RestException
    -     */
    -    function getTicketsCategories($sortfield = "code", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '')
    -    {
    -    	$list = array();
    -
    -    	$sql = "SELECT rowid, code, pos,  label, use_default, description";
    -    	$sql.= " FROM ".MAIN_DB_PREFIX."c_ticket_category as t";
    -    	$sql.= " WHERE t.active = 1";
    -    	// Add sql filters
    -    	if ($sqlfilters)
    -    	{
    -    		if (! DolibarrApi::_checkFilters($sqlfilters))
    -    		{
    -    			throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
    -    		}
    -    		$regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
    -    		$sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
    -    	}
    -
    -
    -    	$sql.= $this->db->order($sortfield, $sortorder);
    -
    -    	if ($limit) {
    -    		if ($page < 0) {
    -    			$page = 0;
    -    		}
    -    		$offset = $limit * $page;
    -
    -    		$sql .= $this->db->plimit($limit, $offset);
    -    	}
    -
    -    	$result = $this->db->query($sql);
    -
    -    	if ($result) {
    -    		$num = $this->db->num_rows($result);
    -    		$min = min($num, ($limit <= 0 ? $num : $limit));
    -    		for ($i = 0; $i < $min; $i++) {
    -    			$list[] = $this->db->fetch_object($result);
    -    		}
    -    	} else {
    -    		throw new RestException(503, 'Error when retrieving list of ticket categories : '.$this->db->lasterror());
    -    	}
    -
    -    	return $list;
    -    }
    -
    -    /**
    -     * Get the list of tickets severity.
    -     *
    -     * @param string    $sortfield  Sort field
    -     * @param string    $sortorder  Sort order
    -     * @param int       $limit      Number of items per page
    -     * @param int       $page       Page number (starting from zero)
    -     * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)"
    -     * @return List of events types
    -     *
    -     * @url     GET setup/dictionary/severities
    -     *
    -     * @throws RestException
    -     */
    -    function getTicketsSeverities($sortfield = "code", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '')
    -    {
    -    	$list = array();
    -
    -    	$sql = "SELECT rowid, code, pos,  label, use_default, color, description";
    -    	$sql.= " FROM ".MAIN_DB_PREFIX."c_ticket_severity as t";
    -    	$sql.= " WHERE t.active = 1";
    -    	// Add sql filters
    -    	if ($sqlfilters)
    -    	{
    -    		if (! DolibarrApi::_checkFilters($sqlfilters))
    -    		{
    -    			throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
    -    		}
    -    		$regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
    -    		$sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
    -    	}
    -
    -
    -    	$sql.= $this->db->order($sortfield, $sortorder);
    -
    -    	if ($limit) {
    -    		if ($page < 0) {
    -    			$page = 0;
    -    		}
    -    		$offset = $limit * $page;
    -
    -    		$sql .= $this->db->plimit($limit, $offset);
    -    	}
    -
    -    	$result = $this->db->query($sql);
    -
    -    	if ($result) {
    -    		$num = $this->db->num_rows($result);
    -    		$min = min($num, ($limit <= 0 ? $num : $limit));
    -    		for ($i = 0; $i < $min; $i++) {
    -    			$list[] = $this->db->fetch_object($result);
    -    		}
    -    	} else {
    -    		throw new RestException(503, 'Error when retrieving list of ticket severities : '.$this->db->lasterror());
    -    	}
    -
    -    	return $list;
    -    }
    -
    -    /**
    -     * Get the list of tickets types.
    -     *
    -     * @param string    $sortfield  Sort field
    -     * @param string    $sortorder  Sort order
    -     * @param int       $limit      Number of items per page
    -     * @param int       $page       Page number (starting from zero)
    -     * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.code:like:'A%') and (t.active:>=:0)"
    -     * @return List of events types
    -     *
    -     * @url     GET setup/dictionary/types
    -     *
    -     * @throws RestException
    -     */
    -    function getTicketsTypes($sortfield = "code", $sortorder = 'ASC', $limit = 100, $page = 0, $sqlfilters = '')
    -    {
    -    	$list = array();
    -
    -    	$sql = "SELECT rowid, code, pos,  label, use_default, description";
    -    	$sql.= " FROM ".MAIN_DB_PREFIX."c_ticket_type as t";
    -    	$sql.= " WHERE t.active = 1";
    -    	if ($type) $sql.=" AND t.type LIKE '%" . $this->db->escape($type) . "%'";
    -    	if ($module)    $sql.=" AND t.module LIKE '%" . $this->db->escape($module) . "%'";
    -    	// Add sql filters
    -    	if ($sqlfilters)
    -    	{
    -    		if (! DolibarrApi::_checkFilters($sqlfilters))
    -    		{
    -    			throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
    -    		}
    -    		$regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
    -    		$sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
    -    	}
    -
    -
    -    	$sql.= $this->db->order($sortfield, $sortorder);
    -
    -    	if ($limit) {
    -    		if ($page < 0) {
    -    			$page = 0;
    -    		}
    -    		$offset = $limit * $page;
    -
    -    		$sql .= $this->db->plimit($limit, $offset);
    -    	}
    -
    -    	$result = $this->db->query($sql);
    -
    -    	if ($result) {
    -    		$num = $this->db->num_rows($result);
    -    		$min = min($num, ($limit <= 0 ? $num : $limit));
    -    		for ($i = 0; $i < $min; $i++) {
    -    			$list[] = $this->db->fetch_object($result);
    -    		}
    -    	} else {
    -    		throw new RestException(503, 'Error when retrieving list of ticket types : '.$this->db->lasterror());
    -    	}
    -
    -    	return $list;
    -    }
    -
    -
    -
    -
    -
         /**
          * Validate fields before create or update object
          *
    diff --git a/htdocs/ticket/class/ticket.class.php b/htdocs/ticket/class/ticket.class.php
    index e904adfdb81..dd3307a391c 100644
    --- a/htdocs/ticket/class/ticket.class.php
    +++ b/htdocs/ticket/class/ticket.class.php
    @@ -25,8 +25,8 @@
     // Put here all includes required by your class file
     require_once DOL_DOCUMENT_ROOT . "/core/class/commonobject.class.php";
     require_once DOL_DOCUMENT_ROOT . '/fichinter/class/fichinter.class.php';
    -//require_once(DOL_DOCUMENT_ROOT."/societe/class/societe.class.php");
    -//require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php");
    +//require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php";
    +//require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php";
     
     
     /**
    @@ -38,22 +38,27 @@ class Ticket extends CommonObject
          * @var string ID to identify managed object
          */
         public $element = 'ticket';
    +
         /**
          * @var string Name of table without prefix where object is stored
          */
         public $table_element = 'ticket';
    +
         /**
          * @var string Name of field for link to tickets
          */
         public $fk_element='fk_ticket';
    +
         /**
          * @var int  Does ticketcore support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
          */
         public $ismultientitymanaged = 1;
    +
         /**
          * @var int  Does ticketcore support extrafields ? 0=No, 1=Yes
          */
         public $isextrafieldmanaged = 1;
    +
         /**
          * @var string String with name of icon for ticketcore. Must be the part after the 'object_' into object_ticketcore.png
          */
    @@ -175,9 +180,9 @@ class Ticket extends CommonObject
         public $fields=array(
             'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'position'=>1, 'visible'=>-2, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>"Id"),
         	'entity' => array('type'=>'integer', 'label'=>'Entity', 'visible'=>0, 'enabled'=>1, 'position'=>5, 'notnull'=>1, 'index'=>1),
    -    	'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'visible'=>1, 'enabled'=>1, 'position'=>10, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object", 'css'=>'aaa'),
    +    	'ref' => array('type'=>'varchar(128)', 'label'=>'Ref', 'visible'=>1, 'enabled'=>1, 'position'=>10, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object", 'css'=>''),
     	    'track_id' => array('type'=>'varchar(255)', 'label'=>'TrackID', 'visible'=>0, 'enabled'=>1, 'position'=>11, 'notnull'=>-1, 'searchall'=>1, 'help'=>"Help text"),
    -	    'fk_user_create' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'Author', 'visible'=>1, 'enabled'=>1, 'position'=>15, 'notnull'=>1),
    +	    'fk_user_create' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'Author', 'visible'=>1, 'enabled'=>1, 'position'=>15, 'notnull'=>1, 'css'=>'nowraponall'),
         	'origin_email' => array('type'=>'mail', 'label'=>'OriginEmail', 'visible'=>1, 'enabled'=>1, 'position'=>16, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>"Reference of object"),
         	'subject' => array('type'=>'varchar(255)', 'label'=>'Subject', 'visible'=>1, 'enabled'=>1, 'position'=>18, 'notnull'=>-1, 'searchall'=>1, 'help'=>""),
         	'type_code' => array('type'=>'varchar(32)', 'label'=>'Type', 'visible'=>1, 'enabled'=>1, 'position'=>20, 'notnull'=>-1, 'searchall'=>1, 'help'=>"", 'css'=>'maxwidth100'),
    @@ -211,8 +216,6 @@ class Ticket extends CommonObject
         const STATUS_CANCELED = 9;
     
     
    -
    -
         /**
          *  Constructor
          *
    @@ -555,7 +558,7 @@ class Ticket extends CommonObject
          * @param  int    $offset    Offset for query
          * @param  int    $arch      archive or not (not used)
          * @param  array  $filter    Filter for query
    -     *            output
    +     *                           output
          * @return int <0 if KO, >0 if OK
          */
         public function fetchAll($user, $sortorder = 'ASC', $sortfield = 't.datec', $limit = '', $offset = 0, $arch = '', $filter = '')
    @@ -898,6 +901,11 @@ class Ticket extends CommonObject
                 if ($res < 0) $error++;
             }
     
    +        if (!$error) {
    +        	$sql = "DELETE FROM " . MAIN_DB_PREFIX . "ticket_logs";
    +        	$sql .= " WHERE fk_track_id = '" . $this->db->escape($this->track_id) . "'";
    +        	$resql = $this->db->query($sql);
    +        }
             if (!$error) {
             	$sql = "DELETE FROM " . MAIN_DB_PREFIX . "ticket_msg";
             	$sql .= " WHERE fk_track_id = '" . $this->db->escape($this->track_id) . "'";
    @@ -963,6 +971,7 @@ class Ticket extends CommonObject
             // Clear fields
             // ...
             // Create clone
    +        $object->context['createfromclone'] = 'createfromclone';
             $result = $object->create($user);
     
             // Other options
    @@ -974,6 +983,8 @@ class Ticket extends CommonObject
             if (!$error) {
             }
     
    +        unset($object->context['createfromclone']);
    +
             // End
             if (!$error) {
                 $this->db->commit();
    @@ -1015,7 +1026,12 @@ class Ticket extends CommonObject
             $this->tms = '';
         }
     
    -
    +    /**
    +     * print selected status
    +     *
    +     * @param string    $selected   selected status
    +     * @return void
    +     */
         public function printSelectStatus($selected = "")
         {
             print Form::selectarray('search_fk_statut', $this->statuts_short, $selected, $show_empty = 1, $key_in_label = 0, $value_as_key = 0, $option = '', $translate = 1, $maxlen = 0, $disabled = 0, $sort = '', $morecss = '');
    @@ -1154,6 +1170,7 @@ class Ticket extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
          *    Return status label of object
          *
    @@ -1163,143 +1180,144 @@ class Ticket extends CommonObject
          */
         function LibStatut($statut, $mode = 0)
         {
    +        // phpcs:enable
             global $langs;
     
             if ($mode == 0) {
                 return $langs->trans($this->statuts[$statut]);
             }
    -        if ($mode == 1) {
    +        elseif ($mode == 1) {
                 return $langs->trans($this->statuts_short[$statut]);
             }
    -        if ($mode == 2) {
    +        elseif ($mode == 2) {
                 if ($statut == 0) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut0.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 1) {
    +            elseif ($statut == 1) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut1.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 3) {
    +            elseif ($statut == 3) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut3.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 4) {
    +            elseif ($statut == 4) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut4.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 5) {
    +            elseif ($statut == 5) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut5.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 6) {
    +            elseif ($statut == 6) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut6.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 8) {
    +            elseif ($statut == 8) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut8.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 9) {
    +            elseif ($statut == 9) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut9.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
             }
    -        if ($mode == 3) {
    +        elseif ($mode == 3) {
                 if ($statut == 0) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut0.png@ticket');
                 }
     
    -            if ($statut == 1) {
    +            elseif ($statut == 1) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut1.png@ticket');
                 }
     
    -            if ($statut == 3) {
    +            elseif ($statut == 3) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut3.png@ticket');
                 }
     
    -            if ($statut == 4) {
    +            elseif ($statut == 4) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut4.png@ticket');
                 }
     
    -            if ($statut == 5) {
    +            elseif ($statut == 5) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut5.png@ticket');
                 }
     
    -            if ($statut == 6) {
    +            elseif ($statut == 6) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut6.png@ticket');
                 }
     
    -            if ($statut == 8) {
    +            elseif ($statut == 8) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut8.png@ticket');
                 }
     
    -            if ($statut == 9) {
    +            elseif ($statut == 9) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut9.png@ticket');
                 }
             }
    -        if ($mode == 4) {
    +        elseif ($mode == 4) {
                 if ($statut == 0) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut0.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 1) {
    +            elseif ($statut == 1) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut1.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 3) {
    +            elseif ($statut == 3) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut3.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 4) {
    +            elseif ($statut == 4) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut4.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 5) {
    +            elseif ($statut == 5) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut5.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 6) {
    +            elseif ($statut == 6) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut6.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 8) {
    +            elseif ($statut == 8) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut8.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
     
    -            if ($statut == 9) {
    +            elseif ($statut == 9) {
                     return img_picto($langs->trans($this->statuts_short[$statut]), 'statut9.png@ticket') . ' ' . $langs->trans($this->statuts_short[$statut]);
                 }
             }
    -        if ($mode == 5) {
    +        elseif ($mode == 5) {
                 if ($statut == 0) {
                     return $langs->trans($this->statuts_short[$statut]) . ' ' . img_picto($langs->trans($this->statuts_short[$statut]), 'statut0.png@ticket');
                 }
     
    -            if ($statut == 1) {
    +            elseif ($statut == 1) {
                     return $langs->trans($this->statuts_short[$statut]) . ' ' . img_picto($langs->trans($this->statuts_short[$statut]), 'statut1.png@ticket');
                 }
     
    -            if ($statut == 3) {
    +            elseif ($statut == 3) {
                     return $langs->trans($this->statuts_short[$statut]) . ' ' . img_picto($langs->trans($this->statuts_short[$statut]), 'statut3.png@ticket');
                 }
     
    -            if ($statut == 4) {
    +            elseif ($statut == 4) {
                     return $langs->trans($this->statuts_short[$statut]) . ' ' . img_picto($langs->trans($this->statuts_short[$statut]), 'statut4.png@ticket');
                 }
     
    -            if ($statut == 5) {
    +            elseif ($statut == 5) {
                     return $langs->trans($this->statuts_short[$statut]) . ' ' . img_picto($langs->trans($this->statuts_short[$statut]), 'statut5.png@ticket');
                 }
     
    -            if ($statut == 6) {
    +            elseif ($statut == 6) {
                     return $langs->trans($this->statuts_short[$statut]) . ' ' . img_picto($langs->trans($this->statuts_short[$statut]), 'statut6.png@ticket');
                 }
     
    -            if ($statut == 8) {
    +            elseif ($statut == 8) {
                     return $langs->trans($this->statuts_short[$statut]) . ' ' . img_picto($langs->trans($this->statuts_short[$statut]), 'statut8.png@ticket');
                 }
     
    -            if ($statut == 9) {
    +            elseif ($statut == 9) {
                     return $langs->trans($this->statuts_short[$statut]) . ' ' . img_picto($langs->trans($this->statuts_short[$statut]), 'statut9.png@ticket');
                 }
             }
    @@ -1473,8 +1491,6 @@ class Ticket extends CommonObject
     			dol_syslog(get_class($this) . "::assignUser " . $this->error, LOG_ERR);
     			return - 1;
     		}
    -
    -		return 0;
     	}
     
         /**
    @@ -1597,8 +1613,8 @@ class Ticket extends CommonObject
                     }
                     include_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php';
                     $mailfile = new CMailFile($subject, $info_sendto['email'], $from, $message, $filepath, $mimetype, $filename, $sendtocc, '', $deliveryreceipt, 0);
    -                if ($mailfile->error) {
    -                    setEventMessage($mailfile->error, 'errors');
    +                if ($mailfile->error || $mailfile->errors) {
    +                    setEventMessages($mailfile->error, $mailfile->errors, 'errors');
                     } else {
                         $result = $mailfile->sendfile();
                         if ($result > 0) {
    @@ -1610,7 +1626,7 @@ class Ticket extends CommonObject
                     }
                 }
     
    -            setEventMessage($langs->trans('TicketNotificationNumberEmailSent', $nb_sent));
    +            setEventMessages($langs->trans('TicketNotificationNumberEmailSent', $nb_sent), null, 'mesgs');
             }
     
             return $nb_sent;
    @@ -1655,7 +1671,7 @@ class Ticket extends CommonObject
                 dol_syslog(get_class($this) . "::loadCacheLogsTicket " . $this->error, LOG_ERR);
                 return -1;
             }*/
    -
    +        
             return 0;
         }
     
    @@ -2423,6 +2439,7 @@ class Ticket extends CommonObject
         }
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
         /**
     	 *  Return if at least one photo is available
     	 *
    @@ -2431,6 +2448,7 @@ class Ticket extends CommonObject
     	 */
         function is_photo_available($sdir)
         {
    +        // phpcs:enable
             include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
     
             global $conf;
    @@ -2455,7 +2473,6 @@ class Ticket extends CommonObject
             }
             return false;
         }
    -
     }
     
     
    @@ -2464,7 +2481,10 @@ class Ticket extends CommonObject
      */
     class TicketsLine
     {
    -    public $id;
    +    /**
    +	 * @var int ID
    +	 */
    +	public $id;
     
         /**
          * @var string  $ref    Ticket reference
    @@ -2477,8 +2497,8 @@ class TicketsLine
         public $track_id;
     
         /**
    -	 * Thirdparty ID
    -	*/
    +	 * @var int Thirdparty ID
    +	 */
         public $fk_soc;
     
         /**
    @@ -2575,5 +2595,4 @@ class TicketsLine
      	 * Close ticket date
     	 */
         public $date_close = '';
    -
     }
    diff --git a/htdocs/ticket/class/ticketstats.class.php b/htdocs/ticket/class/ticketstats.class.php
    index 6b65f25016a..28a49a3bd8f 100644
    --- a/htdocs/ticket/class/ticketstats.class.php
    +++ b/htdocs/ticket/class/ticketstats.class.php
    @@ -29,7 +29,10 @@ require_once 'ticket.class.php';
      */
     class TicketStats extends Stats
     {
    -    public $table_element;
    +    /**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element;
     
         public $socid;
         public $userid;
    diff --git a/htdocs/ticket/contact.php b/htdocs/ticket/contact.php
    index 22199bed745..21c1087f276 100644
    --- a/htdocs/ticket/contact.php
    +++ b/htdocs/ticket/contact.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2011-2016 Jean-François Ferry    <hello@librethic.io>
    - * Copyright (C) 2011      Regis Houssin        <regis@dolibarr.fr>
    + * Copyright (C) 2011      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2016      Christophe Battarel <christophe@altairis.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -146,13 +146,13 @@ if ($id > 0 || !empty($track_id) || !empty($ref)) {
     
             $head = ticket_prepare_head($object);
     
    -        dol_fiche_head($head, 'contact', $langs->trans("Ticket"), -1, 'ticket');
    +        dol_fiche_head($head, 'contact', $langs->trans("Ticket"), 0, 'ticket');
     
             $morehtmlref ='<div class="refidno">';
             $morehtmlref.= $object->subject;
             // Author
             if ($object->fk_user_create > 0) {
    -        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . '  ';
    +        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . ' : ';
     
             	$langs->load("users");
             	$fuser = new User($db);
    @@ -160,14 +160,62 @@ if ($id > 0 || !empty($track_id) || !empty($ref)) {
             	$morehtmlref .= $fuser->getNomUrl(0);
             }
             if (!empty($object->origin_email)) {
    -        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . ' ';
    +        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . ' : ';
             	$morehtmlref .= $object->origin_email . ' <small>(' . $langs->trans("TicketEmailOriginIssuer") . ')</small>';
             }
    +
    +        // Thirdparty
    +        if (! empty($conf->societe->enabled))
    +        {
    +        	$morehtmlref.='<br>'.$langs->trans('ThirdParty');
    +        	/*if ($action != 'editcustomer' && $object->fk_statut < 8 && !$user->societe_id && $user->rights->ticket->write) {
    +        		$morehtmlref.='<a href="' . $url_page_current . '?action=editcustomer&amp;track_id=' . $object->track_id . '">' . img_edit($langs->transnoentitiesnoconv('Edit'), 1) . '</a>';
    +        	}*/
    +        	$morehtmlref.=' : ';
    +        	if ($action == 'editcustomer') {
    +        		$morehtmlref.=$form->form_thirdparty($url_page_current . '?track_id=' . $object->track_id, $object->socid, 'editcustomer', '', 1, 0, 0, array(), 1);
    +        	} else {
    +        		$morehtmlref.=$form->form_thirdparty($url_page_current . '?track_id=' . $object->track_id, $object->socid, 'none', '', 1, 0, 0, array(), 1);
    +        	}
    +        }
    +
    +        // Project
    +        if (! empty($conf->projet->enabled))
    +        {
    +        	$langs->load("projects");
    +        	$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
    +        	if ($user->rights->ticket->write)
    +        	{
    +        		if ($action != 'classify')
    +        			//$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a>';
    +        			$morehtmlref.=' : ';
    +        			if ($action == 'classify') {
    +        				//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
    +        				$morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
    +        				$morehtmlref.='<input type="hidden" name="action" value="classin">';
    +        				$morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +        				$morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', 0, 0, 1, 0, 1, 0, 0, '', 1);
    +        				$morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    +        				$morehtmlref.='</form>';
    +        			} else {
    +        				$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
    +        			}
    +        	} else {
    +        		if (! empty($object->fk_project)) {
    +        			$proj = new Project($db);
    +        			$proj->fetch($object->fk_project);
    +        			$morehtmlref.=$proj->getNomUrl(1);
    +        		} else {
    +        			$morehtmlref.='';
    +        		}
    +        	}
    +        }
    +
             $morehtmlref.='</div>';
     
             $linkback = '<a href="' . dol_buildpath('/ticket/list.php', 1) . '"><strong>' . $langs->trans("BackToList") . '</strong></a> ';
     
    -        dol_banner_tab($object, 'ref', $linkback, ($user->societe_id ? 0 : 1), 'ref', 'ref', $morehtmlref);
    +        dol_banner_tab($object, 'ref', $linkback, ($user->societe_id ? 0 : 1), 'ref', 'ref', $morehtmlref, $param, 0, '', '', 1, '');
     
             dol_fiche_end();
     
    diff --git a/htdocs/ticket/css/styles.css.php b/htdocs/ticket/css/styles.css.php
    index f8368f7e5f2..2c699461fb5 100644
    --- a/htdocs/ticket/css/styles.css.php
    +++ b/htdocs/ticket/css/styles.css.php
    @@ -56,14 +56,8 @@ if (! empty($conf->global->TICKET_SHOW_MODULE_LOGO)) {
     ?>
     }
     
    -body {
    -    font-size: 0.88em;
    -    background: none;
    -    min-height: 600px;
    -    /*padding-bottom:150px;*/
    -}
     
    -div.corps {
    +div.ticketform {
         font-family: arial;
         position: static;
         padding: 2em 1em;
    @@ -78,13 +72,13 @@ div.corps {
     
     }
     
    -.index_create, .index_display {
    +div.ticketform .index_create, .index_display {
         float: left;
         width: 33%;
         text-align: center;
     }
     
    -.orange {
    +div.ticketform .orange {
         color: #fef4e9;
         border: solid 1px #da7c0c;
         background: #f78d1d;
    @@ -92,22 +86,21 @@ div.corps {
         background: -moz-linear-gradient(top, #faa51a, #f47a20);
         filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a', endColorstr='#f47a20');
     }
    -.orange:active {
    +div.ticketform .orange:active {
         color: #fcd3a5;
         background: -webkit-gradient(linear, left top, left bottom, from(#f47a20), to(#faa51a));
         background: -moz-linear-gradient(top, #f47a20, #faa51a);
         filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f47a20', endColorstr='#faa51a');
     }
     
    -.orange:hover {
    +div.ticketform .orange:hover {
         background: #f47c20;
         background: -webkit-gradient(linear, left top, left bottom, from(#f88e11), to(#f06015));
         background: -moz-linear-gradient(top, #f88e11, #f06015);
         filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f88e11', endColorstr='#f06015');
     }
     
    -
    -.blue {
    +div.ticketform .blue {
         color: #d9eef7;
         border: solid 1px #0076a3;
         background: #0095cd;
    @@ -115,22 +108,21 @@ div.corps {
         background: -moz-linear-gradient(top, #00adee, #0078a5);
         filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00adee', endColorstr='#0078a5');
     }
    -.blue:active {
    +div.ticketform .blue:active {
         color: #80bed6;
         background: -webkit-gradient(linear, left top, left bottom, from(#0078a5), to(#00adee));
         background: -moz-linear-gradient(top, #0078a5, #00adee);
         filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0078a5', endColorstr='#00adee');
     }
    -.blue:hover {
    +div.ticketform .blue:hover {
         background: #007ead;
         background: -webkit-gradient(linear, left top, left bottom, from(#0095cc), to(#00678e));
         background: -moz-linear-gradient(top, #0095cc, #00678e);
         filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0095cc', endColorstr='#00678e');
     }
     
    -#form_create_ticket,
    -#form_view_ticket {
    -
    +#form_create_ticket, #form_view_ticket
    +{
         margin-left: 10px;
         margin-right: 10px;
         padding-left:1em;
    diff --git a/htdocs/ticket/document.php b/htdocs/ticket/document.php
    index e31cd98912d..09edb6e85cb 100644
    --- a/htdocs/ticket/document.php
    +++ b/htdocs/ticket/document.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002-2007      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2010      Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012      Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012      Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010           Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2013-2016      Jean-François Ferry  <hello@librethic.io>
      *
    @@ -119,7 +119,7 @@ if ($object->id)
         $morehtmlref.= $object->subject;
         // Author
         if ($object->fk_user_create > 0) {
    -    	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . '  ';
    +    	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . '  : ';
     
         	$langs->load("users");
         	$fuser = new User($db);
    @@ -127,18 +127,66 @@ if ($object->id)
         	$morehtmlref .= $fuser->getNomUrl(0);
         }
         if (!empty($object->origin_email)) {
    -    	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . ' ';
    +    	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . ' : ';
         	$morehtmlref .= $object->origin_email . ' <small>(' . $langs->trans("TicketEmailOriginIssuer") . ')</small>';
         }
    +
    +    // Thirdparty
    +    if (! empty($conf->societe->enabled))
    +    {
    +    	$morehtmlref.='<br>'.$langs->trans('ThirdParty');
    +    	/*if ($action != 'editcustomer' && $object->fk_statut < 8 && !$user->societe_id && $user->rights->ticket->write) {
    +    		$morehtmlref.='<a href="' . $url_page_current . '?action=editcustomer&amp;track_id=' . $object->track_id . '">' . img_edit($langs->transnoentitiesnoconv('Edit'), 1) . '</a>';
    +    	}*/
    +    	$morehtmlref.=' : ';
    +    	if ($action == 'editcustomer') {
    +    		$morehtmlref.=$form->form_thirdparty($url_page_current . '?track_id=' . $object->track_id, $object->socid, 'editcustomer', '', 1, 0, 0, array(), 1);
    +    	} else {
    +    		$morehtmlref.=$form->form_thirdparty($url_page_current . '?track_id=' . $object->track_id, $object->socid, 'none', '', 1, 0, 0, array(), 1);
    +    	}
    +    }
    +
    +    // Project
    +    if (! empty($conf->projet->enabled))
    +    {
    +    	$langs->load("projects");
    +    	$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
    +    	if ($user->rights->ticket->write)
    +    	{
    +    		if ($action != 'classify')
    +    			//$morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a>';
    +    			$morehtmlref.=' : ';
    +    			if ($action == 'classify') {
    +    				//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
    +    				$morehtmlref.='<form method="post" action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'">';
    +    				$morehtmlref.='<input type="hidden" name="action" value="classin">';
    +    				$morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +    				$morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', 0, 0, 1, 0, 1, 0, 0, '', 1);
    +    				$morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
    +    				$morehtmlref.='</form>';
    +    			} else {
    +    				$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
    +    			}
    +    	} else {
    +    		if (! empty($object->fk_project)) {
    +    			$proj = new Project($db);
    +    			$proj->fetch($object->fk_project);
    +    			$morehtmlref.=$proj->getNomUrl(1);
    +    		} else {
    +    			$morehtmlref.='';
    +    		}
    +    	}
    +    }
    +
         $morehtmlref.='</div>';
     
         $linkback = '<a href="' . dol_buildpath('/ticket/list.php', 1) . '"><strong>' . $langs->trans("BackToList") . '</strong></a> ';
     
    -    dol_banner_tab($object, 'ref', $linkback, ($user->societe_id ? 0 : 1), 'ref', 'ref', $morehtmlref);
    +    dol_banner_tab($object, 'ref', $linkback, ($user->societe_id ? 0 : 1), 'ref', 'ref', $morehtmlref, '', 0, '', '', 1);
     
         dol_fiche_end();
     
    -    // Construit liste des fichiers
    +    // Build file list
         $filearray = dol_dir_list($upload_dir, "files", 0, '', '\.meta$', $sortfield, (strtolower($sortorder) == 'desc' ? SORT_DESC : SORT_ASC), 1);
         $totalsize = 0;
         foreach ($filearray as $key => $file) {
    @@ -158,5 +206,6 @@ else
         accessforbidden('', 0, 0);
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/ticket/history.php b/htdocs/ticket/history.php
    deleted file mode 100644
    index c840f3aa1a8..00000000000
    --- a/htdocs/ticket/history.php
    +++ /dev/null
    @@ -1,148 +0,0 @@
    -<?php
    -/* Copyright (C) - 2013-2016 Jean-François FERRY    <hello@librethic.io>
    - *
    - * 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
    - * the Free Software Foundation; either version 3 of the License, or
    - * (at your option) any later version.
    - *
    - * This program is distributed in the hope that it will be useful,
    - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    - * GNU General Public License for more details.
    - *
    - * You should have received a copy of the GNU General Public License
    - * along with this program. If not, see <http://www.gnu.org/licenses/>.
    - */
    -
    -/**
    - *		\file       htdocs/ticket/history.php
    - *    	\ingroup	ticket
    - *    	\brief		History of ticket
    - */
    -
    -require '../main.inc.php';
    -require_once DOL_DOCUMENT_ROOT . '/ticket/class/actions_ticket.class.php';
    -require_once DOL_DOCUMENT_ROOT . '/core/class/html.formticket.class.php';
    -require_once DOL_DOCUMENT_ROOT . '/core/lib/ticket.lib.php';
    -require_once DOL_DOCUMENT_ROOT . "/core/lib/company.lib.php";
    -require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
    -require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
    -
    -if (!class_exists('Contact')) {
    -    include DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
    -}
    -
    -// Load translation files required by the page
    -$langs->loadLangs(array('companies', 'other', 'ticket'));
    -
    -// Get parameters
    -$id = GETPOST('id', 'int');
    -$track_id = GETPOST('track_id', 'alpha', 3);
    -$ref = GETPOST('ref', 'alpha');
    -$action = GETPOST('action', 'alpha', 3);
    -
    -// Security check
    -if (!$user->rights->ticket->read) {
    -    accessforbidden();
    -}
    -
    -$extrafields = new ExtraFields($db);
    -$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
    -
    -if (!$action) {
    -	$action = 'view';
    -}
    -
    -$object = new Ticket($db);
    -$object->fetch($id, $ref, $track_id);
    -
    -
    -/*
    - * Actions
    - */
    -
    -$actionobject = new ActionsTicket($db);
    -
    -$actionobject->doActions($action, $object);
    -
    -
    -
    -/*
    - * View
    - */
    -
    -$help_url = 'FR:DocumentationModuleTicket';
    -$page_title = $actionobject->getTitle($action);
    -llxHeader('', $page_title, $help_url);
    -
    -$userstat = new User($db);
    -$form = new Form($db);
    -$formticket = new FormTicket($db);
    -
    -if ($action == 'view') {
    -	$res = $object->fetch($id, $ref, $track_id);
    -
    -    if ($res > 0) {
    -        // restrict access for externals users
    -        if ($user->societe_id > 0 && ($object->fk_soc != $user->societe_id)
    -        ) {
    -            accessforbidden('', 0);
    -        }
    -        // or for unauthorized internals users
    -        if (!$user->societe_id && ($conf->global->TICKET_LIMIT_VIEW_ASSIGNED_ONLY && $object->fk_user_assign != $user->id) && !$user->rights->ticket->manage) {
    -            accessforbidden('', 0);
    -        }
    -
    -        if ($socid > 0) {
    -            $object->fetch_thirdparty();
    -            $head = societe_prepare_head($object->thirdparty);
    -            dol_fiche_head($head, 'ticket', $langs->trans("ThirdParty"), 0, 'company');
    -            dol_banner_tab($object->thirdparty, 'socid', '', ($user->societe_id ? 0 : 1), 'rowid', 'nom');
    -            dol_fiche_end();
    -        }
    -
    -        if (!$user->societe_id && $conf->global->TICKET_LIMIT_VIEW_ASSIGNED_ONLY) {
    -            $object->next_prev_filter = "te.fk_user_assign = '" . $user->id . "'";
    -        } elseif ($user->societe_id > 0) {
    -            $object->next_prev_filter = "te.fk_soc = '" . $user->societe_id . "'";
    -        }
    -        $head = ticket_prepare_head($object);
    -
    -        dol_fiche_head($head, 'tabTicketLogs', $langs->trans("Ticket"), 0, 'ticket');
    -
    -        $morehtmlref ='<div class="refidno">';
    -        $morehtmlref.= $object->subject;
    -        // Author
    -        if ($object->fk_user_create > 0) {
    -        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . '  ';
    -
    -        	$langs->load("users");
    -        	$fuser = new User($db);
    -        	$fuser->fetch($object->fk_user_create);
    -        	$morehtmlref .= $fuser->getNomUrl(0);
    -        }
    -        if (!empty($object->origin_email)) {
    -        	$morehtmlref .= '<br>' . $langs->trans("CreatedBy") . ' ';
    -        	$morehtmlref .= $object->origin_email . ' <small>(' . $langs->trans("TicketEmailOriginIssuer") . ')</small>';
    -        }
    -        $morehtmlref.='</div>';
    -
    -        $linkback = '<a href="' . dol_buildpath('/ticket/list.php', 1) . '"><strong>' . $langs->trans("BackToList") . '</strong></a> ';
    -
    -        dol_banner_tab($object, 'ref', $linkback, ($user->societe_id ? 0 : 1), 'ref', 'ref', $morehtmlref);
    -
    -        dol_fiche_end();
    -
    -        print '<div class="fichecenter">';
    -        // Logs list
    -        print load_fiche_titre($langs->trans('TicketHistory'), '', 'history@ticket');
    -        $actionobject->viewTimelineTicketLogs(true, $object);
    -        print '</div><!-- fichecenter -->';
    -        print '<br style="clear: both">';
    -    }
    -} // End action view
    -
    -// End of page
    -llxFooter('');
    -$db->close();
    diff --git a/htdocs/ticket/index.php b/htdocs/ticket/index.php
    index 1f01e335a7c..f89dd82cbca 100644
    --- a/htdocs/ticket/index.php
    +++ b/htdocs/ticket/index.php
    @@ -16,7 +16,7 @@
      */
     
     /**
    - *    \file     htdocs/ticket/history.php
    + *    \file     htdocs/ticket/agenda.php
      *    \ingroup	ticket
      */
     
    @@ -35,7 +35,7 @@ $HEIGHT = DolGraph::getDefaultGraphSizeForStats('height');
     $id = GETPOST('id', 'int');
     $msg_id = GETPOST('msg_id', 'int');
     
    -$action = GETPOST('action', 'alpha', 3);
    +$action = GETPOST('action', 'aZ09');
     
     if ($user->societe_id) {
         $socid = $user->societe_id;
    diff --git a/htdocs/ticket/list.php b/htdocs/ticket/list.php
    index 76edc111b14..64ec859cc0c 100644
    --- a/htdocs/ticket/list.php
    +++ b/htdocs/ticket/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2013-2018	Jean-François FERRY	<hello@librethic.io>
      * Copyright (C) 2016		Christophe Battarel	<christophe@altairis.fr>
    - * Copyright (C) 2018		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2018		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -38,7 +38,7 @@ $langs->loadLangs(array("ticket","companies","other","projects"));
     
     
     // Get parameters
    -$action     = GETPOST('action','alpha')?GETPOST('action','alpha'):'view';				// The action 'add', 'create', 'edit', 'update', 'view', ...
    +$action     = GETPOST('action','aZ09')?GETPOST('action','aZ09'):'view';				// The action 'add', 'create', 'edit', 'update', 'view', ...
     $massaction = GETPOST('massaction','alpha');											// The bulk action (combo box choice into lists)
     $show_files = GETPOST('show_files','int');												// Show files area generated by bulk actions ?
     $confirm    = GETPOST('confirm','alpha');												// Result of a confirmation
    @@ -62,7 +62,7 @@ $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
     $sortfield = GETPOST('sortfield','alpha');
     $sortorder = GETPOST('sortorder','alpha');
     $page = GETPOST('page','int');
    -if (empty($page) || $page == -1) { $page = 0; }     // If $page is not defined, or '' or -1
    +if (empty($page) || $page == -1 || GETPOST('button_search','alpha') || GETPOST('button_removefilter','alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; }     // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action
     $offset = $limit * $page;
     $pageprev = $page - 1;
     $pagenext = $page + 1;
    @@ -74,10 +74,9 @@ $diroutputmassaction=$conf->ticket->dir_output . '/temp/massgeneration/'.$user->
     if ($socid > 0)       $hookmanager->initHooks(array('thirdpartyticket'));
     elseif ($project > 0) $hookmanager->initHooks(array('projectticket'));
     else $hookmanager->initHooks(array('ticketlist'));
    -
     // Fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('ticket');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // Default sort order (if not yet defined by previous GETPOST)
     if (! $sortfield) $sortfield="t.".key($object->fields);   // Set here default search field. By default 1st field in definition.
    @@ -186,7 +185,7 @@ $user_assign = new User($db);
     $user_create = new User($db);
     $socstatic = new Societe($db);
     
    -$help_url = 'FR:DocumentationModuleTicket';
    +$help_url = '';
     $title = $langs->trans('TicketList');
     
     llxHeader('', $title, $help_url);
    @@ -409,7 +408,6 @@ if ($projectid > 0) {
             dol_fiche_end();
     
             $object = $savobject;
    -
         } else {
             print "ErrorRecordNotFound";
         }
    @@ -436,7 +434,7 @@ $arrayofmassactions =  array(
     	//'builddoc'=>$langs->trans("PDFMerge"),
     );
     if ($user->rights->ticket->delete) $arrayofmassactions['predelete']=$langs->trans("Delete");
    -if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
    +if (GETPOST('nomassaction','int') || in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
     $massactionbutton=$form->selectMassAction('', $arrayofmassactions);
     
     print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
    @@ -480,10 +478,10 @@ if ($sall)
     
     print '<div class="liste_titre liste_titre_bydiv centpercent">';
     if ($search_fk_status == 'non_closed') {
    -    print '<div class="divsearchfield"><a href="' . $url_page_current . '?search_fk_status=-1' . ($socid ? '&socid=' . $socid : '') . '">' . $langs->trans('TicketViewAllTickets') . '</a></div>';
    +    print '<div class="divsearchfield"><a href="' . $url_page_current . '?search_fk_status=-1' . ($projectid ? '&projectid='.$projectid : 0) . ($socid ? '&socid=' . $socid : '') . '">' . $langs->trans('TicketViewAllTickets') . '</a></div>';
         $param .= '&search_fk_status=non_closed';
     } else {
    -    print '<div class="divsearchfield"><a href="' . $url_page_current . '?search_fk_status=non_closed' . ($socid ? '&socid=' . $socid : '') . '">' . $langs->trans('TicketViewNonClosedOnly') . '</a></div>';
    +    print '<div class="divsearchfield"><a href="' . $url_page_current . '?search_fk_status=non_closed' . ($projectid ? '&projectid='.$projectid : 0) . ($socid ? '&socid=' . $socid : '') . '">' . $langs->trans('TicketViewNonClosedOnly') . '</a></div>';
         $param .= '&search_fk_status=-1';
     }
     print '</div>';
    @@ -519,30 +517,30 @@ print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"")
     print '<tr class="liste_titre">';
     foreach($object->fields as $key => $val)
     {
    -	$align='';
    -	if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center';
    -	if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap';
    -	if ($key == 'status') $align.=($align?' ':'').'center';
    +	$cssforfield='';
    +	if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +	if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +	if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
     	if (! empty($arrayfields['t.'.$key]['checked'])) {
     		if ($key == 'type_code') {
    -			print '<td class="liste_titre'.($align?' '.$align:'').'">';
    +			print '<td class="liste_titre'.($cssforfield?' '.$cssforfield:'').'">';
     			$formTicket->selectTypesTickets(dol_escape_htmltag($search[$key]), 'search_'.$key.'', '', 0, 1, 1, 0, ($val['css']?$val['css']:'maxwidth200'));
     			print '</td>';
     		} elseif ($key == 'category_code') {
    -			print '<td class="liste_titre'.($align?' '.$align:'').'">';
    +			print '<td class="liste_titre'.($cssforfield?' '.$cssforfield:'').'">';
     			$formTicket->selectCategoriesTickets(dol_escape_htmltag($search[$key]), 'search_'.$key.'', '', 0, 1, 1, 0, ($val['css']?$val['css']:'maxwidth200'));
     			print '</td>';
     		} elseif ($key == 'severity_code') {
    -			print '<td class="liste_titre'.($align?' '.$align:'').'">';
    +			print '<td class="liste_titre'.($cssforfield?' '.$cssforfield:'').'">';
     			$formTicket->selectSeveritiesTickets(dol_escape_htmltag($search[$key]), 'search_'.$key.'', '', 0, 1, 1, 0, ($val['css']?$val['css']:'maxwidth200'));
     			print '</td>';
     		} elseif ($key == 'fk_statut') {
    -			print '<td class="liste_titre'.($align?' '.$align:'').'">';
    +			print '<td class="liste_titre'.($cssforfield?' '.$cssforfield:'').'">';
     			$object->printSelectStatus(dol_escape_htmltag($search[$key]));
     			print '</td>';
     		}
     		else {
    -			print '<td class="liste_titre'.($align?' '.$align:'').'"><input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag($search[$key]).'"></td>';
    +			print '<td class="liste_titre'.($cssforfield?' '.$cssforfield:'').'"><input type="text" class="flat maxwidth75" name="search_'.$key.'" value="'.dol_escape_htmltag($search[$key]).'"></td>';
     		}
     	}
     }
    @@ -566,11 +564,14 @@ print '</tr>'."\n";
     print '<tr class="liste_titre">';
     foreach($object->fields as $key => $val)
     {
    -	$align='';
    -	if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center';
    -	if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap';
    -	if ($key == 'status') $align.=($align?' ':'').'center';
    -	if (! empty($arrayfields['t.'.$key]['checked'])) print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n";
    +	$cssforfield='';
    +	if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +	if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +	if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
    +	if (! empty($arrayfields['t.'.$key]['checked']))
    +	{
    +		print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($cssforfield?'class="'.$cssforfield.'"':''), $sortfield, $sortorder, ($cssforfield?$cssforfield.' ':''))."\n";
    +	}
     }
     // Extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
    @@ -613,14 +614,18 @@ while ($i < min($num, $limit))
     	print '<tr class="oddeven">';
     	foreach($object->fields as $key => $val)
     	{
    -		$align='';
    -		if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center';
    -		if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap';
    -		if ($key == 'status') $align.=($align?' ':'').'center';
    +		$cssforfield='';
    +		if (in_array($val['type'], array('date','datetime','timestamp'))) $cssforfield.=($cssforfield?' ':'').'center';
    +		if (in_array($val['type'], array('timestamp'))) $cssforfield.=($cssforfield?' ':'').'nowrap';
    +		if ($key == 'status') $cssforfield.=($cssforfield?' ':'').'center';
     		if (! empty($arrayfields['t.'.$key]['checked']))
     		{
     			print '<td';
    -			if ($align) print ' class="'.$align.'"';
    +			if ($cssforfield || $val['css']) print ' class="';
    +			print $cssforfield;
    +			if ($cssforfield && $val['css']) print ' ';
    +			print $val['css'];
    +			if ($cssforfield || $val['css']) print '"';
     			print '>';
     			print $object->showOutputField($val, $key, $obj->$key, '');
     			print '</td>';
    @@ -701,7 +706,7 @@ if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nb
     	$hidegeneratedfilelistifempty=1;
     	if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) $hidegeneratedfilelistifempty=0;
     
    -	require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php');
    +	require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
     	$formfile = new FormFile($db);
     
     	// Show list of available documents
    diff --git a/htdocs/ticket/new.php b/htdocs/ticket/new.php
    index 8f33d87c804..267e3e63847 100644
    --- a/htdocs/ticket/new.php
    +++ b/htdocs/ticket/new.php
    @@ -37,7 +37,7 @@ $contactid = GETPOST('contactid', 'int');
     $msg_id = GETPOST('msg_id', 'int');
     $notifyTiers = GETPOST("notify_tiers_at_create", 'alpha');
     
    -$action = GETPOST('action', 'alpha', 3);
    +$action = GETPOST('action', 'aZ09');
     
     // Protection if external user
     if (!$user->rights->ticket->read || !$user->rights->ticket->write) {
    diff --git a/htdocs/ticket/tpl/linkedobjectblock.tpl.php b/htdocs/ticket/tpl/linkedobjectblock.tpl.php
    index dd9f340429e..21fe9aa78d8 100644
    --- a/htdocs/ticket/tpl/linkedobjectblock.tpl.php
    +++ b/htdocs/ticket/tpl/linkedobjectblock.tpl.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2010-2012 Regis Houssin <regis@dolibarr.fr>
    +/* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Jean-François FERRY <hello@librethic.io>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -32,7 +32,7 @@ $langs = $GLOBALS['langs'];
     $langs->load('ticket');
     $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
     echo '<br>';
    -print_titre($langs->trans('RelatedTickets'));
    +print load_fiche_titre($langs->trans('RelatedTickets'));
     ?>
     <table class="noborder" width="100%">
     <tr class="liste_titre">
    diff --git a/htdocs/user/admin/group_extrafields.php b/htdocs/user/admin/group_extrafields.php
    index 0dd5cf9ce7e..27fbc7c152c 100644
    --- a/htdocs/user/admin/group_extrafields.php
    +++ b/htdocs/user/admin/group_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2014	   Alexis Algoud		<alexis@atm-consulting.fr>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -82,7 +82,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
     	print '<div class="tabsAction">';
    -	print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +	print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
     	print "</div>";
     }
     
    @@ -95,7 +95,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -	print "<br>";
    +	print '<br><div id="newattrib"></div>';
     	print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -114,6 +114,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/user/admin/user_extrafields.php b/htdocs/user/admin/user_extrafields.php
    index bf704af2003..eaf118d361a 100644
    --- a/htdocs/user/admin/user_extrafields.php
    +++ b/htdocs/user/admin/user_extrafields.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2001-2002	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2003		Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -81,7 +81,7 @@ dol_fiche_end();
     if ($action != 'create' && $action != 'edit')
     {
     	print '<div class="tabsAction">';
    -	print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
    +	print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create#newattrib\">".$langs->trans("NewAttribute")."</a>";
     	print "</div>";
     }
     
    @@ -94,7 +94,7 @@ if ($action != 'create' && $action != 'edit')
     
     if ($action == 'create')
     {
    -	print "<br>";
    +	print '<br><div id="newattrib"></div>';
     	print load_fiche_titre($langs->trans('NewAttribute'));
     
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
    @@ -113,6 +113,6 @@ if ($action == 'edit' && ! empty($attrname))
         require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/user/agenda_extsites.php b/htdocs/user/agenda_extsites.php
    index 2d94711aae8..2eb2ede000b 100644
    --- a/htdocs/user/agenda_extsites.php
    +++ b/htdocs/user/agenda_extsites.php
    @@ -162,12 +162,17 @@ if ($user->rights->user->user->lire || $user->admin) {
     
     dol_banner_tab($object,'id',$linkback,$user->rights->user->user->lire || $user->admin);
     
    -print $langs->trans("AgendaExtSitesDesc")."<br>\n";
    +
    +print '<div class="underbanner clearboth"></div>';
    +
    +print '<br>';
    +print '<span class="opacitymedium">'.$langs->trans("AgendaExtSitesDesc")."</span><br>\n";
     print "<br>\n";
     
     $selectedvalue=$conf->global->AGENDA_DISABLE_EXT;
     if ($selectedvalue==1) $selectedvalue=0; else $selectedvalue=1;
     
    +
     print '<div class="div-table-responsive">';
     print "<table class=\"noborder\" width=\"100%\">";
     
    @@ -210,15 +215,15 @@ while ($i <= $MAXAGENDA)
     print '</table>';
     print '</div>';
     
    -dol_fiche_end();
     
     print '<div class="center">';
     print "<input type=\"submit\" id=\"save\" name=\"save\" class=\"button hideifnotset\" value=\"".$langs->trans("Save")."\">";
     print "</div>";
     
    +dol_fiche_end();
    +
     print "</form>\n";
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php
    index 2f9fb787c72..c76cab34f3b 100644
    --- a/htdocs/user/bank.php
    +++ b/htdocs/user/bank.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Jean-Louis Bergamo   <jlb@j1b.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013      Peter Fontaine       <contact@peterfontaine.fr>
      * Copyright (C) 2015-2016 Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2015	   Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
    @@ -311,7 +311,7 @@ if ($action != 'edit' && $action != 'create')		// If not bank account yet, $acco
     	        print '<table class="noborder" width="100%">';
     
                 print '<tr class="liste_titre">';
    -   			print '<td colspan="4"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans("LastSalaries",($num<=$MAXLIST?"":$MAXLIST)).'</td><td align="right"><a class="notasortlink" href="'.DOL_URL_ROOT.'/compta/salaries/index.php?search_user='.$object->login.'">'.$langs->trans("AllSalaries").' <span class="badge">'.$num.'</span></a></td>';
    +   			print '<td colspan="4"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans("LastSalaries",($num<=$MAXLIST?"":$MAXLIST)).'</td><td align="right"><a class="notasortlink" href="'.DOL_URL_ROOT.'/compta/salaries/list.php?search_user='.$object->login.'">'.$langs->trans("AllSalaries").' <span class="badge">'.$num.'</span></a></td>';
        			print '</tr></table></td>';
        			print '</tr>';
     
    @@ -558,6 +558,6 @@ if ($id && $action == 'edit' && $user->rights->user->user->creer) print '</form>
     
     if ($id && $action == 'create' && $user->rights->user->user->creer) print '</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/user/card.php b/htdocs/user/card.php
    index 6db383ed515..8db719c62d4 100644
    --- a/htdocs/user/card.php
    +++ b/htdocs/user/card.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2018 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2018 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Lionel Cousteix      <etm_ltd@tiscali.co.uk>
      * Copyright (C) 2011      Herve Prot           <herve.prot@symeos.com>
      * Copyright (C) 2012-2018 Juanjo Menent        <jmenent@2byte.es>
    @@ -11,8 +11,10 @@
      * Copyright (C) 2013-2016 Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2015-2017 Jean-François Ferry  <jfefe@aternatik.fr>
      * Copyright (C) 2015      Ari Elbaz (elarifr)  <github@accedinfo.com>
    - * Copyright (C) 2015      Charlie Benke        <charlie@patas-monkey.com>
    + * Copyright (C) 2015-2018 Charlene Benke       <charlie@patas-monkey.com>
      * Copyright (C) 2016      Raphaël Doursenaud   <rdoursenaud@gpcsolutions.fr>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
    + * Copyright (C) 2018      David Beniamine      <David.Beniamine@Tetras-Libre.fr>
      *
      * 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
    @@ -145,15 +147,25 @@ if (empty($reshook)) {
     		}
     	}
     
    -	if ($action == 'confirm_delete' && $confirm == "yes" && $candisableuser) {
    -		if ($id <> $user->id) {
    +	if ($action == 'confirm_delete' && $confirm == "yes" && $candisableuser)
    +	{
    +		if ($id <> $user->id)
    +		{
    +			if (! GETPOSTISSET('token'))
    +			{
    +				print 'Error, token required for this critical operation';
    +				exit;
    +			}
    +
     			$object = new User($db);
     			$object->fetch($id);
    -			$result = $object->delete();
    +
    +			$result = $object->delete($user);
     			if ($result < 0) {
     				$langs->load("errors");
     				setEventMessages($langs->trans("ErrorUserCannotBeDelete"), null, 'errors');
     			} else {
    +				setEventMessages($langs->trans("RecordDeleted"), null);
     				header("Location: ".DOL_URL_ROOT."/user/list.php?restore_lastsearch_values=1");
     				exit;
     			}
    @@ -201,7 +213,11 @@ if (empty($reshook)) {
     			$object->office_phone = GETPOST("office_phone", 'alphanohtml');
     			$object->office_fax = GETPOST("office_fax", 'alphanohtml');
     			$object->user_mobile = GETPOST("user_mobile", 'alphanohtml');
    +
     			$object->skype = GETPOST("skype", 'alphanohtml');
    +			$object->twitter = GETPOST("twitter", 'alphanohtml');
    +			$object->facebook = GETPOST("facebook", 'alphanohtml');
    +
     			$object->email = preg_replace('/\s+/', '', GETPOST("email", 'alpha'));
     			$object->job = GETPOST("job", 'alpha');
     			$object->signature = GETPOST("signature", 'none');
    @@ -221,6 +237,9 @@ if (empty($reshook)) {
     			$dateemployment = dol_mktime(0, 0, 0, GETPOST('dateemploymentmonth'), GETPOST('dateemploymentday'), GETPOST('dateemploymentyear'));
     			$object->dateemployment = $dateemployment;
     
    +			$dateemploymentend = dol_mktime(0, 0, 0, GETPOST('dateemploymentendmonth'), GETPOST('dateemploymentendday'), GETPOST('dateemploymentendyear'));
    +			$object->dateemploymentend = $dateemploymentend;
    +
     			// Fill array 'array_options' with data from add form
     			$ret = $extrafields->setOptionalsFromPost($extralabels, $object);
     			if ($ret < 0) {
    @@ -346,6 +365,8 @@ if (empty($reshook)) {
     				$object->office_fax = GETPOST("office_fax", 'alphanohtml');
     				$object->user_mobile = GETPOST("user_mobile", 'alphanohtml');
     				$object->skype = GETPOST("skype", 'alpha');
    +				$object->twitter = GETPOST("twitter", 'alpha');
    +				$object->facebook = GETPOST("facebook", 'alpha');
     				$object->email = preg_replace('/\s+/', '', GETPOST("email", 'alpha'));
     				$object->job = GETPOST("job", 'alpha');
     				$object->signature = GETPOST("signature",'none');
    @@ -363,6 +384,8 @@ if (empty($reshook)) {
     				$object->color = GETPOST("color",'alpha') != '' ? GETPOST("color",'alpha') : '';
     				$dateemployment = dol_mktime(0, 0, 0, GETPOST('dateemploymentmonth','int'), GETPOST('dateemploymentday','int'), GETPOST('dateemploymentyear','int'));
     				$object->dateemployment = $dateemployment;
    +				$dateemploymentend = dol_mktime(0, 0, 0, GETPOST('dateemploymentendmonth','int'), GETPOST('dateemploymentendday','int'), GETPOST('dateemploymentendyear','int'));
    +				$object->dateemploymentend = $dateemploymentend;
     
     				if (! empty($conf->multicompany->enabled))
     				{
    @@ -440,14 +463,14 @@ if (empty($reshook)) {
     
     				if (!$error && !count($object->errors)) {
     					if (GETPOST('deletephoto') && $object->photo) {
    -						$fileimg = $conf->user->dir_output.'/'.get_exdir($object->id, 2, 0, 1, $object, 'user').'/logos/'.$object->photo;
    -						$dirthumbs = $conf->user->dir_output.'/'.get_exdir($object->id, 2, 0, 1, $object, 'user').'/logos/thumbs';
    +						$fileimg = $conf->user->dir_output.'/'.get_exdir(0, 0, 0, 0, $object, 'user').'/'.$object->id.'/logos/'.$object->photo;
    +						$dirthumbs = $conf->user->dir_output.'/'.get_exdir(0, 0, 0, 0, $object, 'user').'/'.$object->id.'/logos/thumbs';
     						dol_delete_file($fileimg);
     						dol_delete_dir_recursive($dirthumbs);
     					}
     
     					if (isset($_FILES['photo']['tmp_name']) && trim($_FILES['photo']['tmp_name'])) {
    -						$dir = $conf->user->dir_output.'/'.get_exdir($object->id, 2, 0, 1, $object, 'user');
    +						$dir = $conf->user->dir_output.'/'.get_exdir(0, 0, 0, 0, $object, 'user').'/'.$object->id;
     
     						dol_mkdir($dir);
     
    @@ -584,6 +607,8 @@ if (empty($reshook)) {
     					$ldap_fax = $attribute[$conf->global->LDAP_FIELD_FAX];
     					$ldap_mobile = $attribute[$conf->global->LDAP_FIELD_MOBILE];
     					$ldap_skype = $attribute[$conf->global->LDAP_FIELD_SKYPE];
    +					$ldap_twitter = $attribute[$conf->global->LDAP_FIELD_TWITTER];
    +					$ldap_facebook = $attribute[$conf->global->LDAP_FIELD_FACEBOOK];
     					$ldap_mail = $attribute[$conf->global->LDAP_FIELD_MAIL];
     					$ldap_sid = $attribute[$conf->global->LDAP_FIELD_SID];
     				}
    @@ -686,7 +711,6 @@ if ($action == 'create' || $action == 'adduserldap')
     					}
     					$liste[$key] = $label;
     				}
    -
     			}
     			else
     			{
    @@ -924,23 +948,23 @@ if ($action == 'create' || $action == 'adduserldap')
     
     
     	// Address
    -	print '<tr><td class="tdtop titlefieldcreate">'.fieldLabel('Address','address').'</td>';
    +	print '<tr><td class="tdtop titlefieldcreate">'.$form->editfieldkey('Address', 'address', '', $object, 0).'</td>';
     	print '<td><textarea name="address" id="address" class="quatrevingtpercent" rows="3" wrap="soft">';
     	print $object->address;
     	print '</textarea></td></tr>';
     
     	// Zip
    -	print '<tr><td>'.fieldLabel('Zip','zipcode').'</td><td>';
    +	print '<tr><td>'.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).'</td><td>';
     	print $formcompany->select_ziptown($object->zip,'zipcode',array('town','selectcountry_id','state_id'),6);
     	print '</td></tr>';
     
     	// Town
    -	print '<tr><td>'.fieldLabel('Town','town').'</td><td>';
    +	print '<tr><td>'.$form->editfieldkey('Town', 'town', '', $object, 0).'</td><td>';
     	print $formcompany->select_ziptown($object->town,'town',array('zipcode','selectcountry_id','state_id'));
     	print '</td></tr>';
     
     	// Country
    -	print '<tr><td>'.fieldLabel('Country','selectcountry_id').'</td><td class="maxwidthonsmartphone">';
    +	print '<tr><td>'.$form->editfieldkey('Country', 'selectcountry_id', '', $object, 0).'</td><td class="maxwidthonsmartphone">';
     	print $form->select_country((GETPOST('country_id')!=''?GETPOST('country_id'):$object->country_id));
     	if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
     	print '</td></tr>';
    @@ -948,7 +972,7 @@ if ($action == 'create' || $action == 'adduserldap')
     	// State
     	if (empty($conf->global->USER_DISABLE_STATE))
     	{
    -		print '<tr><td>'.fieldLabel('State','state_id').'</td><td class="maxwidthonsmartphone">';
    +		print '<tr><td>'.$form->editfieldkey('State', 'state_id', '', $object, 0).'</td><td class="maxwidthonsmartphone">';
     		print $formcompany->select_state($object->state_id,$object->country_code, 'state_id');
     		print '</td></tr>';
     	}
    @@ -996,7 +1020,7 @@ if ($action == 'create' || $action == 'adduserldap')
     	print '</td></tr>';
     
     	// Skype
    -	if (! empty($conf->skype->enabled))
    +	if (! empty($conf->socialnetworks->enabled))
     	{
     		print '<tr><td>'.$langs->trans("Skype").'</td>';
     		print '<td>';
    @@ -1007,7 +1031,41 @@ if ($action == 'create' || $action == 'adduserldap')
     		}
     		else
     		{
    -			print '<input class="maxwidth200" type="text" name="skype" value="'.GETPOST('skype').'">';
    +			print '<input class="maxwidth200" type="text" name="skype" value="'.GETPOST('skype','alpha').'">';
    +		}
    +		print '</td></tr>';
    +	}
    +
    +	// Twitter
    +	if (! empty($conf->socialnetworks->enabled))
    +	{
    +		print '<tr><td>'.$langs->trans("Twitter").'</td>';
    +		print '<td>';
    +		if (! empty($ldap_twitter))
    +		{
    +			print '<input type="hidden" name="twitter" value="'.$ldap_twitter.'">';
    +			print $ldap_twitter;
    +		}
    +		else
    +		{
    +			print '<input class="maxwidth200" type="text" name="twitter" value="'.GETPOST('twitter','alpha').'">';
    +		}
    +		print '</td></tr>';
    +	}
    +
    +	// Facebook
    +	if (! empty($conf->socialnetworks->enabled))
    +	{
    +		print '<tr><td>'.$langs->trans("Facebook").'</td>';
    +		print '<td>';
    +		if (! empty($ldap_facebook))
    +		{
    +			print '<input type="hidden" name="facebook" value="'.$ldap_facebook.'">';
    +			print $ldap_facebook;
    +		}
    +		else
    +		{
    +			print '<input class="maxwidth200" type="text" name="facebook" value="'.GETPOST('facebook','alpha').'">';
     		}
     		print '</td></tr>';
     	}
    @@ -1047,7 +1105,7 @@ if ($action == 'create' || $action == 'adduserldap')
     	// Categories
     	if (! empty($conf->categorie->enabled)  && ! empty($user->rights->categorie->lire))
     	{
    -		print '<tr><td>' . fieldLabel('Categories', 'usercats') . '</td><td colspan="3">';
    +		print '<tr><td>' . $form->editfieldkey('Categories', 'usercats', '', $object, 0) . '</td><td colspan="3">';
     		$cate_arbo = $form->select_all_categories('user', null, 'parent', null, null, 1);
     		print $form->multiselectarray('usercats', $cate_arbo, GETPOST('usercats', 'array'), null, null, null,
     			null, '90%' );
    @@ -1155,14 +1213,21 @@ if ($action == 'create' || $action == 'adduserldap')
     	// Date employment
     	print '<tr><td>'.$langs->trans("DateEmployment").'</td>';
     	print '<td>';
    -	echo $form->select_date(GETPOST('dateemployment'),'dateemployment',0,0,1,'form'.'dateemployment',1,0,1);
    +	print $form->selectDate(GETPOST('dateemployment'), 'dateemployment', 0, 0, 1, 'formdateemployment', 1, 0);
    +	print '</td>';
    +	print "</tr>\n";
    +
    +	// Date employment END
    +	print '<tr><td>'.$langs->trans("DateEmploymentEnd").'</td>';
    +	print '<td>';
    +	print $form->selectDate(GETPOST('dateemploymentend'), 'dateemploymentend', 0, 0, 1, 'formdateemploymentend', 1, 0);
     	print '</td>';
     	print "</tr>\n";
     
     	// Date birth
     	print '<tr><td>'.$langs->trans("DateToBirth").'</td>';
     	print '<td>';
    -	echo $form->select_date(GETPOST('birth'),'birth',0,0,1,'createuser',1,0,1);
    +	print $form->selectDate(GETPOST('birth'), 'birth', 0, 0, 1, 'createuser', 1, 0);
     	print '</td>';
     	print "</tr>\n";
     
    @@ -1193,8 +1258,11 @@ else
     		$res=$object->fetch_optionals();
     
     		// Check if user has rights
    -		$object->getrights();
    -		if (empty($object->nb_rights) && $object->statut != 0 && empty($object->admin)) setEventMessages($langs->trans('UserHasNoPermissions'), null, 'warnings');
    +		if (empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE))
    +		{
    +			$object->getrights();
    +			if (empty($object->nb_rights) && $object->statut != 0 && empty($object->admin)) setEventMessages($langs->trans('UserHasNoPermissions'), null, 'warnings');
    +		}
     
     		// Connexion ldap
     		// pour recuperer passDoNotExpire et userChangePassNextLogon
    @@ -1329,7 +1397,7 @@ else
     			// Password
     			print '<tr><td>'.$langs->trans("Password").'</td>';
     
    -			print '<td>';
    +			print '<td class="wordbreak">';
     			$valuetoshow='';
     			if (preg_match('/ldap/',$dolibarr_main_authentication))
     			{
    @@ -1363,7 +1431,7 @@ else
     			}
     			if (preg_match('/dolibarr/',$dolibarr_main_authentication))
     			{
    -				if ($object->pass) $valuetoshow.= preg_replace('/./i','*',$object->pass);
    +				if ($object->pass) $valuetoshow.= ($valuetoshow?(' '.$langs->trans("or").' '):'').preg_replace('/./i','*',$object->pass);
     				else
     				{
     					if ($user->admin) $valuetoshow.= ($valuetoshow?(' '.$langs->trans("or").' '):'').$langs->trans("Crypted").': '.$object->pass_indatabase_crypted;
    @@ -1505,6 +1573,13 @@ else
     			print '</td>';
     			print "</tr>\n";
     
    +			// Date employment
    +			print '<tr><td>'.$langs->trans("DateEmploymentEnd").'</td>';
    +			print '<td>';
    +			print dol_print_date($object->dateemploymentend);
    +			print '</td>';
    +			print "</tr>\n";
    +
     			// Date of birth
     			print '<tr><td>'.$langs->trans("DateToBirth").'</td>';
     			print '<td>';
    @@ -1665,14 +1740,14 @@ else
     				else
     				{
     					$langs->load("mails");
    -					print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans('SendMail').'</a></div>';
    +					print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans('SendMail').'</a></div>';
     				}
     
     				if ($caneditfield && (empty($conf->multicompany->enabled) || ! $user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1)))
     				{
     					if (! empty($conf->global->MAIN_ONLY_LOGIN_ALLOWED))
     					{
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("DisabledInMonoUserMode")).'">'.$langs->trans("Modify").'</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("DisabledInMonoUserMode")).'">'.$langs->trans("Modify").'</a></div>';
     					}
     					else
     					{
    @@ -1690,7 +1765,7 @@ else
     				{
     					if ($object->statut == 0)
     					{
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("UserDisabled")).'">'.$langs->trans("ReinitPassword").'</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("UserDisabled")).'">'.$langs->trans("ReinitPassword").'</a></div>';
     					}
     					elseif (($user->id != $id && $caneditpassword) && $object->login && !$object->ldap_sid &&
     					((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || ! $user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1)))
    @@ -1700,13 +1775,13 @@ else
     
     					if ($object->statut == 0)
     					{
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("UserDisabled")).'">'.$langs->trans("SendNewPassword").'</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("UserDisabled")).'">'.$langs->trans("SendNewPassword").'</a></div>';
     					}
     					else if (($user->id != $id && $caneditpassword) && $object->login && !$object->ldap_sid &&
     					((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || ! $user->entity || ($object->entity == $conf->entity) || ($conf->global->MULTICOMPANY_TRANSVERSE_MODE && $conf->entity == 1)))
     					{
     						if ($object->email) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;action=passwordsend">'.$langs->trans("SendNewPassword").'</a></div>';
    -						else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans("SendNewPassword").'</a></div>';
    +						else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans("SendNewPassword").'</a></div>';
     					}
     				}
     
    @@ -1732,7 +1807,7 @@ else
     					}
     					else
     					{
    -						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("MustBeAdminToDeleteOtherAdmin")).'">'.$langs->trans("DeleteUser").'</a></div>';
    +						print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("MustBeAdminToDeleteOtherAdmin")).'">'.$langs->trans("DeleteUser").'</a></div>';
     					}
     				}
     			}
    @@ -2062,7 +2137,7 @@ else
     			{
     				$type=0;
     				if ($object->contactid) $type=$object->contactid;
    -				print $form->selectcontacts(0,$type,'contactid',2,'','',1,'',false,1);
    +				print $form->selectcontacts(0, $type, 'contactid', 2, '', '', 1, '', false, 1);
     			   	if ($object->ldap_sid) print ' ('.$langs->trans("DomainUser").')';
     			}
     		   	print '</td></tr>';
    @@ -2074,13 +2149,21 @@ else
     		   	print $form->selectarray('gender', $arraygender, GETPOST('gender')?GETPOST('gender'):$object->gender, 1);
     		   	print '</td></tr>';
     
    -		   	// Employee
    -		   	print '<tr>';
    -		   	print '<td>'.fieldLabel('Employee','employee',0).'</td><td>';
    -		   	print $form->selectyesno("employee",$object->employee,1);
    -		   	print '</td></tr>';
    +            // Employee
    +            print '<tr>';
    +            print '<td>'.$form->editfieldkey('Employee', 'employee', '', $object, 0).'</td><td>';
    +            if ($caneditfield) {
    +                 print $form->selectyesno("employee", $object->employee, 1);
    +			} else {
    +				if ($object->employee){
    +					print $langs->trans("Yes");
    +				} else {
    +					print $langs->trans("No");
    +				}
    +			}
    +		    print '</td></tr>';
     
    -		   	// Hierarchy
    +		    // Hierarchy
     		   	print '<tr><td class="titlefield">'.$langs->trans("HierarchicalResponsible").'</td>';
     		   	print '<td>';
     		   	if ($caneditfield)
    @@ -2102,23 +2185,23 @@ else
     
     
     			// Address
    -			print '<tr><td class="tdtop titlefield">'.fieldLabel('Address','address').'</td>';
    +			print '<tr><td class="tdtop titlefield">'.$form->editfieldkey('Address', 'address', '', $object, 0).'</td>';
     			print '<td><textarea name="address" id="address" class="quatrevingtpercent" rows="3" wrap="soft">';
     			print $object->address;
     			print '</textarea></td></tr>';
     
     			// Zip
    -			print '<tr><td>'.fieldLabel('Zip','zipcode').'</td><td>';
    +			print '<tr><td>'.$form->editfieldkey('Zip', 'zipcode', '', $object, 0).'</td><td>';
     			print $formcompany->select_ziptown($object->zip, 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6);
     			print '</td></tr>';
     
     			// Town
    -			print '<tr><td>'.fieldLabel('Town','town').'</td><td>';
    +			print '<tr><td>'.$form->editfieldkey('Town', 'town', '', $object, 0).'</td><td>';
     			print $formcompany->select_ziptown($object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id'));
     			print '</td></tr>';
     
     			// Country
    -			print '<tr><td>'.fieldLabel('Country','selectcounty_id').'</td><td>';
    +			print '<tr><td>'.$form->editfieldkey('Country', 'selectcounty_id', '', $object, 0).'</td><td>';
     			print $form->select_country((GETPOST('country_id')!=''?GETPOST('country_id'):$object->country_id),'country_id');
     			if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
     			print '</td></tr>';
    @@ -2126,7 +2209,7 @@ else
     			// State
     			if (empty($conf->global->USER_DISABLE_STATE))
     			{
    -				print '<tr><td class="tdoverflow">'.fieldLabel('State','state_id').'</td><td>';
    +				print '<tr><td class="tdoverflow">'.$form->editfieldkey('State', 'state_id', '', $object, 0).'</td><td>';
     				print $formcompany->select_state($object->state_id,$object->country_code, 'state_id');
     				print '</td></tr>';
     			}
    @@ -2174,7 +2257,7 @@ else
     			print '</td></tr>';
     
     			// Skype
    -			if (! empty($conf->skype->enabled))
    +			if (! empty($conf->socialnetworks->enabled))
     			{
     				print '<tr><td>'.$langs->trans("Skype").'</td>';
     				print '<td>';
    @@ -2190,6 +2273,40 @@ else
     				print '</td></tr>';
     			}
     
    +			// Twitter
    +			if (! empty($conf->socialnetworks->enabled))
    +			{
    +				print '<tr><td>'.$langs->trans("Twitter").'</td>';
    +				print '<td>';
    +				if ($caneditfield  && empty($object->ldap_sid))
    +				{
    +					print '<input size="40" type="text" name="twitter" class="flat" value="'.$object->twitter.'">';
    +				}
    +				else
    +				{
    +					print '<input type="hidden" name="twitter" value="'.$object->twitter.'">';
    +					print $object->twitter;
    +				}
    +				print '</td></tr>';
    +			}
    +
    +			// Skype
    +			if (! empty($conf->socialnetworks->enabled))
    +			{
    +				print '<tr><td>'.$langs->trans("Facebook").'</td>';
    +				print '<td>';
    +				if ($caneditfield  && empty($object->ldap_sid))
    +				{
    +					print '<input size="40" type="text" name="facebook" class="flat" value="'.$object->facebook.'">';
    +				}
    +				else
    +				{
    +					print '<input type="hidden" name="facebook" value="'.$object->facebook.'">';
    +					print $object->facebook;
    +				}
    +				print '</td></tr>';
    +			}
    +
     			// EMail
     			print "<tr>".'<td'.(! empty($conf->global->USER_MAIL_REQUIRED)?' class="fieldrequired"':'').'>'.$langs->trans("EMail").'</td>';
     			print '<td>';
    @@ -2247,7 +2364,12 @@ else
     			{
     				print '<tr><td>'.$langs->trans("ColorUser").'</td>';
     				print '<td>';
    -				print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', null, 1, '', 'hideifnotset');
    +				if ($caneditfield)
    +				{
    +					print $formother->selectColor(GETPOST('color')?GETPOST('color'):$object->color, 'color', null, 1, '', 'hideifnotset');
    +				}else{
    +					print $formother->showColor($object->color, '');
    +				}
     				print '</td></tr>';
     			}
     
    @@ -2262,7 +2384,7 @@ else
     			// Categories
     			if (!empty( $conf->categorie->enabled ) && !empty( $user->rights->categorie->lire ))
     			{
    -				print '<tr><td>' . fieldLabel( 'Categories', 'usercats' ) . '</td>';
    +				print '<tr><td>' . $form->editfieldkey('Categories', 'usercats', '', $object, 0) . '</td>';
     				print '<td>';
     				$cate_arbo = $form->select_all_categories( Categorie::TYPE_USER, null, null, null, null, 1 );
     				$c = new Categorie( $db );
    @@ -2270,7 +2392,12 @@ else
     				foreach ($cats as $cat) {
     					$arrayselected[] = $cat->id;
     				}
    -				print $form->multiselectarray( 'usercats', $cate_arbo, $arrayselected, '', 0, '', 0, '90%' );
    +				if ($caneditfield)
    +				{
    +					print $form->multiselectarray( 'usercats', $cate_arbo, $arrayselected, '', 0, '', 0, '90%' );
    +				}else{
    +					print $form->showCategories( $object->id, 'user', 1 );
    +				}
     				print "</td></tr>";
     			}
     
    @@ -2353,7 +2480,12 @@ else
     			print $hookmanager->resPrint;
     			if (empty($reshook))
     			{
    -				print $object->showOptionals($extrafields,'edit');
    +				if ($caneditfield)
    +				{
    +					print $object->showOptionals($extrafields,'edit');
    +				}else{
    +					print $object->showOptionals($extrafields,'view');
    +				}
     			}
     
     			// Signature
    @@ -2402,7 +2534,11 @@ else
     				print $form->textwithpicto($text, $langs->trans("THMDescription"), 1, 'help', 'classthm');
     				print '</td>';
     				print '<td>';
    -				print '<input size="8" type="text" name="thm" value="'.price2num(GETPOST('thm')?GETPOST('thm'):$object->thm).'">';
    +				if($caneditfield){
    +					print '<input size="8" type="text" name="thm" value="'.price2num(GETPOST('thm')?GETPOST('thm'):$object->thm).'">';
    +				}else{
    +					print ($object->thm!=''?price($object->thm,'',$langs,1,-1,-1,$conf->currency):'');
    +				}
     				print '</td>';
     				print "</tr>\n";
     
    @@ -2412,7 +2548,12 @@ else
     				print $form->textwithpicto($text, $langs->trans("TJMDescription"), 1, 'help', 'classthm');
     				print '</td>';
     				print '<td>';
    -				print '<input size="8" type="text" name="tjm" value="'.price2num(GETPOST('tjm')?GETPOST('tjm'):$object->tjm).'">';
    +				if($caneditfield)
    +				{
    +					print '<input size="8" type="text" name="tjm" value="'.price2num(GETPOST('tjm')?GETPOST('tjm'):$object->tjm).'">';
    +				}else{
    +					print ($object->tjm!=''?price($object->tjm,'',$langs,1,-1,-1,$conf->currency):'');
    +				}
     				print '</td>';
     				print "</tr>\n";
     
    @@ -2427,21 +2568,49 @@ else
     			// Weeklyhours
     			print '<tr><td>'.$langs->trans("WeeklyHours").'</td>';
     			print '<td>';
    -			print '<input size="8" type="text" name="weeklyhours" value="'.price2num(GETPOST('weeklyhours')?GETPOST('weeklyhours'):$object->weeklyhours).'">';
    +			if($caneditfield)
    +			{
    +				print '<input size="8" type="text" name="weeklyhours" value="'.price2num(GETPOST('weeklyhours')?GETPOST('weeklyhours'):$object->weeklyhours).'">';
    +			}else{
    +				print price2num($object->weeklyhours);
    +			}
     			print '</td>';
     			print "</tr>\n";
     
     			// Date employment
     			print '<tr><td>'.$langs->trans("DateEmployment").'</td>';
     			print '<td>';
    -			echo $form->select_date(GETPOST('dateemployment')?GETPOST('dateemployment'):$object->dateemployment,'dateemployment',0,0,1,'form'.'dateemployment',1,0,1);
    +			if($caneditfield)
    +			{
    +				print $form->selectDate(GETPOST('dateemployment')?GETPOST('dateemployment'):$object->dateemployment, 'dateemployment', 0, 0, 1, 'formdateemployment', 1, 0);
    +			}else{
    +				print dol_print_date($object->dateemployment, 'day');
    +			}
     			print '</td>';
     			print "</tr>\n";
     
    +			// Date employmentEnd
    +			print '<tr><td>'.$langs->trans("DateEmploymentEnd").'</td>';
    +			print '<td>';
    +			if($caneditfield)
    +			{
    +				print $form->selectDate(GETPOST('dateemploymentend')?GETPOST('dateemploymentend'):$object->dateemploymentend, 'dateemploymentend', 0, 0, 1, 'formdateemploymentend', 1, 0);
    +			}else{
    +				print dol_print_date($object->dateemploymentend, 'day');
    +			}
    +			print '</td>';
    +			print "</tr>\n";
    +
    +
     			// Date birth
     			print '<tr><td>'.$langs->trans("DateToBirth").'</td>';
     			print '<td>';
    -			echo $form->select_date(GETPOST('birth')?GETPOST('birth'):$object->birth,'birth',0,0,1,'updateuser',1,0,1);
    +			if($caneditfield)
    +			{
    +				echo $form->selectDate(GETPOST('birth')?GETPOST('birth'):$object->birth, 'birth', 0, 0, 1, 'updateuser', 1, 0);
    +			}else{
    +				print dol_print_date($object->birth, 'day');
    +			}
     			print '</td>';
     			print "</tr>\n";
     
    @@ -2490,7 +2659,6 @@ else
     
     		if (! empty($conf->ldap->enabled) && ! empty($object->ldap_sid)) $ldap->close();
     	}
    -
     }
     
     if (! empty($conf->api->enabled) && ! empty($conf->use_javascript_ajax))
    @@ -2510,5 +2678,6 @@ if (! empty($conf->api->enabled) && ! empty($conf->use_javascript_ajax))
     	print '</script>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/user/class/api_users.class.php b/htdocs/user/class/api_users.class.php
    index dd4e60e4617..3b7d7ee5b00 100644
    --- a/htdocs/user/class/api_users.class.php
    +++ b/htdocs/user/class/api_users.class.php
    @@ -32,7 +32,7 @@ class Users extends DolibarrApi
     	 * @var array   $FIELDS     Mandatory fields, checked when create and update object
     	 */
     	static $FIELDS = array(
    -		'login'
    +		'login',
     	);
     
     	/**
    @@ -43,7 +43,8 @@ class Users extends DolibarrApi
     	/**
     	 * Constructor
     	 */
    -	function __construct() {
    +    function __construct()
    +    {
     		global $db, $conf;
     		$this->db = $db;
     		$this->useraccount = new User($this->db);
    @@ -63,7 +64,8 @@ class Users extends DolibarrApi
          * @param string    $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')"
     	 * @return  array               Array of User objects
     	 */
    -	function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $user_ids = 0, $sqlfilters = '') {
    +    function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 100, $page = 0, $user_ids = 0, $sqlfilters = '')
    +    {
     	    global $db, $conf;
     
     	    $obj_ret = array();
    @@ -136,7 +138,8 @@ class Users extends DolibarrApi
     	 *
     	 * @throws 	RestException
     	 */
    -	function get($id) {
    +    function get($id)
    +    {
     		//if (!DolibarrApiAccess::$user->rights->user->user->lire) {
     			//throw new RestException(401);
     		//}
    @@ -162,7 +165,8 @@ class Users extends DolibarrApi
     	 * @param array $request_data New user data
     	 * @return int
     	 */
    -	function post($request_data = null) {
    +    function post($request_data = null)
    +    {
     	    // check user authorization
     	    //if(! DolibarrApiAccess::$user->rights->user->creer) {
     	    //   throw new RestException(401, "User creation not allowed");
    @@ -194,7 +198,8 @@ class Users extends DolibarrApi
     	 * @param array $request_data   Datas
     	 * @return int
     	 */
    -	function put($id, $request_data = null) {
    +    function put($id, $request_data = null)
    +    {
     		//if (!DolibarrApiAccess::$user->rights->user->user->creer) {
     			//throw new RestException(401);
     		//}
    @@ -231,49 +236,19 @@ class Users extends DolibarrApi
     	 *
     	 * @param   int     $id        User ID
     	 * @param   int     $group     Group ID
    +	 * @param   int     $entity    Entity ID (valid only for superadmin in multicompany transverse mode)
     	 * @return  int                1 if success
          *
     	 * @url	GET {id}/setGroup/{group}
     	 */
    -	function setGroup($id, $group) {
    +    function setGroup($id, $group, $entity = 1)
    +    {
     
     		global $conf;
     
     		//if (!DolibarrApiAccess::$user->rights->user->user->supprimer) {
     			//throw new RestException(401);
     		//}
    -        $result = $this->useraccount->fetch($id);
    -        if (!$result)
    -        {
    -          throw new RestException(404, 'User not found');
    -        }
    -
    -        if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user'))
    -        {
    -          throw new RestException(401, 'Access not allowed for login ' . DolibarrApiAccess::$user->login);
    -        }
    -
    -        // When using API, action is done on entity of logged user because a user of entity X with permission to create user should not be able to
    -        // hack the security by giving himself permissions on another entity.
    -        $result = $this->useraccount->SetInGroup($group, DolibarrApiAccess::$user->entity > 0 ? DolibarrApiAccess::$user->entity : $conf->entity);
    -        if (! ($result > 0))
    -        {
    -            throw new RestException(500, $this->useraccount->error);
    -        }
    -
    -        return 1;
    -    }
    -
    -	/**
    -	 * Delete account
    -	 *
    -	 * @param   int     $id Account ID
    -	 * @return  array
    -	 */
    -	function delete($id) {
    -		//if (!DolibarrApiAccess::$user->rights->user->user->supprimer) {
    -			//throw new RestException(401);
    -		//}
     		$result = $this->useraccount->fetch($id);
     		if (!$result)
     		{
    @@ -285,7 +260,49 @@ class Users extends DolibarrApi
     			throw new RestException(401, 'Access not allowed for login ' . DolibarrApiAccess::$user->login);
     		}
     
    -		return $this->useraccount->delete($id);
    +		if (! empty($conf->multicompany->enabled) && ! empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE) && ! empty(DolibarrApiAccess::$user->admin) && empty(DolibarrApiAccess::$user->entity))
    +		{
    +			$entity = (! empty($entity) ? $entity : $conf->entity);
    +		}
    +		else
    +		{
    +			// When using API, action is done on entity of logged user because a user of entity X with permission to create user should not be able to
    +			// hack the security by giving himself permissions on another entity.
    +			$entity = (DolibarrApiAccess::$user->entity > 0 ? DolibarrApiAccess::$user->entity : $conf->entity);
    +		}
    +
    +		$result = $this->useraccount->SetInGroup($group, $entity);
    +		if (! ($result > 0))
    +		{
    +			throw new RestException(500, $this->useraccount->error);
    +		}
    +
    +		return 1;
    +	}
    +
    +	/**
    +	 * Delete account
    +	 *
    +	 * @param   int     $id Account ID
    +	 * @return  array
    +	 */
    +    function delete($id)
    +    {
    +		//if (!DolibarrApiAccess::$user->rights->user->user->supprimer) {
    +			//throw new RestException(401);
    +		//}
    +		$result = $this->useraccount->fetch($id);
    +		if (!$result)
    +		{
    +			throw new RestException(404, 'User not found');
    +		}
    +
    +		if (!DolibarrApi::_checkAccessToResource('user', $this->useraccount->id, 'user'))
    +		{
    +			throw new RestException(401, 'Access not allowed for login ' . DolibarrApiAccess::$user->login);
    +		}
    +
    +		return $this->useraccount->delete(DolibarrApiAccess::$user);
     	}
     
     	/**
    @@ -353,7 +370,8 @@ class Users extends DolibarrApi
     	 * @return  array
     	 * @throws RestException
     	 */
    -	function _validate($data) {
    +    function _validate($data)
    +    {
     		$account = array();
     		foreach (Users::$FIELDS as $field)
     		{
    diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php
    index ef2b828f6e5..2c189ad07d1 100644
    --- a/htdocs/user/class/user.class.php
    +++ b/htdocs/user/class/user.class.php
    @@ -4,13 +4,14 @@
      * Copyright (c) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
      * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
    - * Copyright (C) 2005-2017 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2005      Lionel Cousteix      <etm_ltd@tiscali.co.uk>
      * Copyright (C) 2011      Herve Prot           <herve.prot@symeos.com>
    - * Copyright (C) 2013-2014 Philippe Grand       <philippe.grand@atoo-net.com>
    + * Copyright (C) 2013-2018 Philippe Grand       <philippe.grand@atoo-net.com>
      * Copyright (C) 2013-2015 Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
    - * Copyright (C) 2018      Nicolas ZABOURI	<info@inovea-conseil.com>
    + * Copyright (C) 2018      charlene Benke       <charlie@patas-monkey.com>
    + * Copyright (C) 2018      Nicolas ZABOURI      <info@inovea-conseil.com>
      *
      * 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
    @@ -39,10 +40,26 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
      */
     class User extends CommonObject
     {
    +	/**
    +	 * @var string ID to identify managed object
    +	 */
     	public $element='user';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
     	public $table_element='user';
    +
    +	/**
    +	 * @var int Field with ID of parent key if this field has a parent
    +	 */
     	public $fk_element='fk_user';
    -	public $ismultientitymanaged = 1;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 1;
     
     	public $id=0;
     	public $statut;
    @@ -52,10 +69,19 @@ class User extends CommonObject
     	public $gender;
     	public $birth;
     	public $email;
    +
     	public $skype;
    -	public $job;
    +	public $twitter;
    +	public $facebook;
    +
    +	public $job;			// job position
     	public $signature;
    +
    +	/**
    +	 * @var string Address
    +	 */
     	public $address;
    +
     	public $zip;
     	public $town;
     	public $state_id;		// The state/department
    @@ -67,6 +93,10 @@ class User extends CommonObject
     	public $admin;
     	public $login;
     	public $api_key;
    +
    +	/**
    +	 * @var int Entity
    +	 */
     	public $entity;
     
     	//! Clear password in memory
    @@ -93,7 +123,14 @@ class User extends CommonObject
     	public $socid;
     	public $contactid;
     
    +	/**
    +     * @var int ID
    +     */
     	public $fk_member;
    +
    +	/**
    +	 * @var int User ID
    +	 */
     	public $fk_user;
     
     	public $clicktodial_url;
    @@ -132,18 +169,19 @@ class User extends CommonObject
     	public $color;						// Define background color for user in agenda
     
     	public $dateemployment;			// Define date of employment by company
    +	public $dateemploymentend;		// Define date of employment end by company
     
     	public $default_c_exp_tax_cat;
     	public $default_range;
     
    -	public $fields=array(
    -        	'rowid'=>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1,  'index'=>1, 'position'=>1, 'comment'=>'Id'),
    -        	'lastname'=>array('type'=>'varchar(50)', 'label'=>'Name', 'enabled'=>1, 'visible'=>1,  'notnull'=>1,  'showoncombobox'=>1, 'index'=>1, 'position'=>20, 'searchall'=>1, 'comment'=>'Reference of object'),
    -        	'firstname'=>array('type'=>'varchar(50)', 'label'=>'Name','enabled'=>1, 'visible'=>1,  'notnull'=>1,  'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'),
    -    	);
    +	public $fields = array(
    +        'rowid'=>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1,  'index'=>1, 'position'=>1, 'comment'=>'Id'),
    +        'lastname'=>array('type'=>'varchar(50)', 'label'=>'Name', 'enabled'=>1, 'visible'=>1,  'notnull'=>1,  'showoncombobox'=>1, 'index'=>1, 'position'=>20, 'searchall'=>1, 'comment'=>'Reference of object'),
    +        'firstname'=>array('type'=>'varchar(50)', 'label'=>'Name','enabled'=>1, 'visible'=>1,  'notnull'=>1,  'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'searchall'=>1, 'comment'=>'Reference of object'),
    +    );
     
     	/**
    -	 *    Constructor de la classe
    +	 *    Constructor of the class
     	 *
     	 *    @param   DoliDb  $db     Database handler
     	 */
    @@ -189,7 +227,8 @@ class User extends CommonObject
     		$login=trim($login);
     
     		// Get user
    -		$sql = "SELECT u.rowid, u.lastname, u.firstname, u.employee, u.gender, u.birth, u.email, u.job, u.skype, u.signature, u.office_phone, u.office_fax, u.user_mobile,";
    +		$sql = "SELECT u.rowid, u.lastname, u.firstname, u.employee, u.gender, u.birth, u.email, u.job, u.skype, u.twitter, u.facebook,";
    +		$sql.= " u.signature, u.office_phone, u.office_fax, u.user_mobile,";
     		$sql.= " u.address, u.zip, u.town, u.fk_state as state_id, u.fk_country as country_id,";
     		$sql.= " u.admin, u.login, u.note,";
     		$sql.= " u.pass, u.pass_crypted, u.pass_temp, u.api_key,";
    @@ -208,7 +247,7 @@ class User extends CommonObject
     		$sql.= " u.salaryextra,";
     		$sql.= " u.weeklyhours,";
     		$sql.= " u.color,";
    -		$sql.= " u.dateemployment,";
    +		$sql.= " u.dateemployment, u.dateemploymentend,";
     		$sql.= " u.ref_int, u.ref_ext,";
     		$sql.= " u.default_range, u.default_c_exp_tax_cat,";			// Expense report default mode
     		$sql.= " c.code as country_code, c.label as country,";
    @@ -294,6 +333,8 @@ class User extends CommonObject
     				$this->user_mobile  = $obj->user_mobile;
     				$this->email		= $obj->email;
     				$this->skype		= $obj->skype;
    +				$this->twitter		= $obj->twitter;
    +				$this->facebook		= $obj->facebook;
     				$this->job			= $obj->job;
     				$this->signature	= $obj->signature;
     				$this->admin		= $obj->admin;
    @@ -311,6 +352,7 @@ class User extends CommonObject
     				$this->weeklyhours	= $obj->weeklyhours;
     				$this->color		= $obj->color;
     				$this->dateemployment	= $this->db->jdate($obj->dateemployment);
    +				$this->dateemploymentend = $this->db->jdate($obj->dateemploymentend);
     
     				$this->datec				= $this->db->jdate($obj->datec);
     				$this->datem				= $this->db->jdate($obj->datem);
    @@ -380,45 +422,9 @@ class User extends CommonObject
     				return -2;
     			}
     
    -			// Load user->default_values for user. TODO Save this in memcached ?
    -			$sql = "SELECT rowid, entity, type, page, param, value";
    -			$sql.= " FROM ".MAIN_DB_PREFIX."default_values";
    -			$sql.= " WHERE entity IN (".$this->entity.",".$conf->entity.")";
    -			$sql.= " AND user_id IN (0, ".$this->id.")";
    -			$resql = $this->db->query($sql);
    -			if ($resql)
    -			{
    -				while ($obj = $this->db->fetch_object($resql))
    -				{
    -					if (! empty($obj->page) && ! empty($obj->type) && ! empty($obj->param))
    -					{
    -						// $obj->page is relative URL with or without params
    -						// $obj->type can be 'filters', 'sortorder', 'createform', ...
    -						// $obj->param is key or param
    -						$pagewithoutquerystring=$obj->page;
    -						$pagequeries='';
    -						if (preg_match('/^([^\?]+)\?(.*)$/', $pagewithoutquerystring, $reg))	// There is query param
    -						{
    -							$pagewithoutquerystring=$reg[1];
    -							$pagequeries=$reg[2];
    -						}
    -						$this->default_values[$pagewithoutquerystring][$obj->type][$pagequeries?$pagequeries:'_noquery_'][$obj->param]=$obj->value;
    -						//if ($pagequeries) $this->default_values[$pagewithoutquerystring][$obj->type.'_queries']=$pagequeries;
    -					}
    -				}
    -				// Sort by key, so _noquery_ is last
    -				if(!empty($this->default_values)) {
    -					foreach($this->default_values as $a => $b)
    -					{
    -						foreach($b as $c => $d)
    -						{
    -							krsort($this->default_values[$a][$c]);
    -						}
    -					}
    -				}
    -				$this->db->free($resql);
    -			}
    -			else
    +			$result = $this->loadDefaultValues();
    +
    +			if ($result < 0)
     			{
     				$this->error=$this->db->lasterror();
     				return -3;
    @@ -428,10 +434,66 @@ class User extends CommonObject
     		return 1;
     	}
     
    +	/**
    +	 *  Load default value in property ->default_values
    +	 *
    +	 *  @return int						> 0 if OK, < 0 if KO
    +	 */
    +	function loadDefaultValues()
    +	{
    +		global $conf;
    +
    +		// Load user->default_values for user. TODO Save this in memcached ?
    +		$sql = "SELECT rowid, entity, type, page, param, value";
    +		$sql.= " FROM ".MAIN_DB_PREFIX."default_values";
    +		$sql.= " WHERE entity IN (".($this->entity > 0 ? $this->entity.", " : "").$conf->entity.")";	// Entity of user (if defined) + current entity
    +		$sql.= " AND user_id IN (0".($this->id > 0 ? ", ".$this->id : "").")";							// User 0 (all) + me (if defined)
    +		$resql = $this->db->query($sql);
    +		if ($resql)
    +		{
    +			while ($obj = $this->db->fetch_object($resql))
    +			{
    +				if (! empty($obj->page) && ! empty($obj->type) && ! empty($obj->param))
    +				{
    +					// $obj->page is relative URL with or without params
    +					// $obj->type can be 'filters', 'sortorder', 'createform', ...
    +					// $obj->param is key or param
    +					$pagewithoutquerystring=$obj->page;
    +					$pagequeries='';
    +					if (preg_match('/^([^\?]+)\?(.*)$/', $pagewithoutquerystring, $reg))	// There is query param
    +					{
    +						$pagewithoutquerystring=$reg[1];
    +						$pagequeries=$reg[2];
    +					}
    +					$this->default_values[$pagewithoutquerystring][$obj->type][$pagequeries?$pagequeries:'_noquery_'][$obj->param]=$obj->value;
    +					//if ($pagequeries) $this->default_values[$pagewithoutquerystring][$obj->type.'_queries']=$pagequeries;
    +				}
    +			}
    +			// Sort by key, so _noquery_ is last
    +			if(!empty($this->default_values)) {
    +				foreach($this->default_values as $a => $b)
    +				{
    +					foreach($b as $c => $d)
    +					{
    +						krsort($this->default_values[$a][$c]);
    +					}
    +				}
    +			}
    +			$this->db->free($resql);
    +
    +			return 1;
    +		}
    +		else
    +		{
    +			dol_print_error($this->db);
    +			return -1;
    +		}
    +	}
    +
     	/**
     	 *  Add a right to the user
     	 *
    -	 * 	@param	int		$rid			id of permission to add
    +	 * 	@param	int		$rid			Id of permission to add or 0 to add several permissions
     	 *  @param  string	$allmodule		Add all permissions of module $allmodule
     	 *  @param  string	$allperms		Add all permissions of module $allmodule, subperms $allperms only
     	 *  @param	int		$entity			Entity to use
    @@ -484,8 +546,15 @@ class User extends CommonObject
     			// Where pour la liste des droits a ajouter
     			if (! empty($allmodule))
     			{
    -				$whereforadd="module='".$this->db->escape($allmodule)."'";
    -				if (! empty($allperms)) $whereforadd.=" AND perms='".$this->db->escape($allperms)."'";
    +				if ($allmodule == 'allmodules')
    +				{
    +					$whereforadd='allmodules';
    +				}
    +				else
    +				{
    +					$whereforadd="module='".$this->db->escape($allmodule)."'";
    +					if (! empty($allperms))  $whereforadd.=" AND perms='".$this->db->escape($allperms)."'";
    +				}
     			}
     		}
     
    @@ -495,8 +564,10 @@ class User extends CommonObject
     			//print "$module-$perms-$subperms";
     			$sql = "SELECT id";
     			$sql.= " FROM ".MAIN_DB_PREFIX."rights_def";
    -			$sql.= " WHERE ".$whereforadd;
    -			$sql.= " AND entity = ".$entity;
    +			$sql.= " WHERE entity = ".$entity;
    +			if (! empty($whereforadd) && $whereforadd != 'allmodules') {
    +				$sql.= " AND ".$whereforadd;
    +			}
     
     			$result=$this->db->query($sql);
     			if ($result)
    @@ -542,7 +613,6 @@ class User extends CommonObject
     			$this->db->commit();
     			return 1;
     		}
    -
     	}
     
     
    @@ -597,8 +667,18 @@ class User extends CommonObject
     		else {
     			// On a demande suppression d'un droit sur la base d'un nom de module ou perms
     			// Where pour la liste des droits a supprimer
    -			if (! empty($allmodule)) $wherefordel="module='".$this->db->escape($allmodule)."'";
    -			if (! empty($allperms))  $wherefordel=" AND perms='".$this->db->escape($allperms)."'";
    +			if (! empty($allmodule))
    +			{
    +				if ($allmodule == 'allmodules')
    +				{
    +					$wherefordel='allmodules';
    +				}
    +				else
    +				{
    +					$wherefordel="module='".$this->db->escape($allmodule)."'";
    +					if (! empty($allperms))  $whereforadd.=" AND perms='".$this->db->escape($allperms)."'";
    +				}
    +			}
     		}
     
     		// Suppression des droits selon critere defini dans wherefordel
    @@ -607,8 +687,10 @@ class User extends CommonObject
     			//print "$module-$perms-$subperms";
     			$sql = "SELECT id";
     			$sql.= " FROM ".MAIN_DB_PREFIX."rights_def";
    -			$sql.= " WHERE $wherefordel";
    -			$sql.= " AND entity = ".$entity;
    +			$sql.= " WHERE entity = ".$entity;
    +			if (! empty($wherefordel) && $wherefordel != 'allmodules') {
    +				$sql.= " AND ".$wherefordel;
    +			}
     
     			$result=$this->db->query($sql);
     			if ($result)
    @@ -654,7 +736,6 @@ class User extends CommonObject
     			$this->db->commit();
     			return 1;
     		}
    -
     	}
     
     
    @@ -676,30 +757,34 @@ class User extends CommonObject
     	/**
     	 *	Load permissions granted to user into object user
     	 *
    -	 *	@param  string	$moduletag    Limit permission for a particular module ('' by default means load all permissions)
    +	 *	@param  string	$moduletag		Limit permission for a particular module ('' by default means load all permissions)
    +	 *  @param	int		$forcereload	Force reload of permissions even if they were already loaded (ignore cache)
     	 *	@return	void
     	 *  @see	clearrights, delrights, addrights
     	 */
    -	function getrights($moduletag='')
    +	function getrights($moduletag='', $forcereload=0)
     	{
     		global $conf;
     
    -		if ($moduletag && isset($this->_tab_loaded[$moduletag]) && $this->_tab_loaded[$moduletag])
    +		if (empty($forcereload))
     		{
    -			// Le fichier de ce module est deja charge
    -			return;
    -		}
    +			if ($moduletag && isset($this->_tab_loaded[$moduletag]) && $this->_tab_loaded[$moduletag])
    +			{
    +				// Rights for this module are already loaded, so we leave
    +				return;
    +			}
     
    -		if ($this->all_permissions_are_loaded)
    -		{
    -			// Si les permissions ont deja ete charge pour ce user, on quitte
    -			return;
    +			if ($this->all_permissions_are_loaded)
    +			{
    +				// We already loaded all rights for this user, so we leave
    +				return;
    +			}
     		}
     
     		// Recuperation des droits utilisateurs + recuperation des droits groupes
     
     		// D'abord les droits utilisateurs
    -		$sql = "SELECT r.module, r.perms, r.subperms";
    +		$sql = "SELECT DISTINCT r.module, r.perms, r.subperms";
     		$sql.= " FROM ".MAIN_DB_PREFIX."user_rights as ur";
     		$sql.= ", ".MAIN_DB_PREFIX."rights_def as r";
     		$sql.= " WHERE r.id = ur.fk_id";
    @@ -753,7 +838,7 @@ class User extends CommonObject
     		}
     
     		// Maintenant les droits groupes
    -		$sql = "SELECT r.module, r.perms, r.subperms";
    +		$sql = "SELECT DISTINCT r.module, r.perms, r.subperms";
     		$sql.= " FROM ".MAIN_DB_PREFIX."usergroup_rights as gr,";
     		$sql.= " ".MAIN_DB_PREFIX."usergroup_user as gu,";
     		$sql.= " ".MAIN_DB_PREFIX."rights_def as r";
    @@ -805,7 +890,6 @@ class User extends CommonObject
     						// if we have already define a subperm like this $this->rights->$module->level1->level2 with llx_user_rights, we don't want override level1 because the level2 can be not define on user group
     						if (!is_object($this->rights->$module->$perms)) $this->rights->$module->$perms = 1;
     					}
    -
     				}
     				$i++;
     			}
    @@ -882,6 +966,7 @@ class User extends CommonObject
     	 * Existing categories are left untouch.
     	 *
     	 * @param int[]|int $categories Category or categories IDs
    +     * @return void
     	 */
     	public function setCategories($categories)
     	{
    @@ -920,13 +1005,14 @@ class User extends CommonObject
     	}
     
     	/**
    -	 *    	Delete the user
    +	 *  Delete the user
     	 *
    -	 * 		@return		int		<0 if KO, >0 if OK
    +	 *	@param		User	$user	User than delete
    +	 * 	@return		int				<0 if KO, >0 if OK
     	 */
    -	function delete()
    +	function delete(User $user)
     	{
    -		global $user,$conf,$langs;
    +		global $conf,$langs;
     
     		$error=0;
     
    @@ -1141,6 +1227,7 @@ class User extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Create a user from a contact object. User will be internal but if contact is linked to a third party, user will be external
     	 *
    @@ -1151,6 +1238,7 @@ class User extends CommonObject
     	 */
     	function create_from_contact($contact,$login='',$password='')
     	{
    +        // phpcs:enable
     		global $conf,$user,$langs;
     
     		$error=0;
    @@ -1162,6 +1250,8 @@ class User extends CommonObject
     		$this->gender		= $contact->gender;
     		$this->email		= $contact->email;
     		$this->skype 		= $contact->skype;
    +		$this->twitter 		= $contact->twitter;
    +		$this->facebook		= $contact->facebook;
     		$this->office_phone	= $contact->phone_pro;
     		$this->office_fax	= $contact->fax;
     		$this->user_mobile	= $contact->phone_mobile;
    @@ -1216,9 +1306,9 @@ class User extends CommonObject
     			$this->db->rollback();
     			return $result;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Create a user into database from a member object
     	 *
    @@ -1228,6 +1318,7 @@ class User extends CommonObject
     	 */
     	function create_from_member($member,$login='')
     	{
    +        // phpcs:enable
     		global $conf,$user,$langs;
     
     		// Positionne parametres
    @@ -1292,6 +1383,7 @@ class User extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Assign rights by default
     	 *
    @@ -1299,6 +1391,7 @@ class User extends CommonObject
     	 */
     	function set_default_rights()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$sql = "SELECT id FROM ".MAIN_DB_PREFIX."rights_def";
    @@ -1372,7 +1465,11 @@ class User extends CommonObject
     		$this->office_fax   = trim($this->office_fax);
     		$this->user_mobile  = trim($this->user_mobile);
     		$this->email        = trim($this->email);
    +
     		$this->skype        = trim($this->skype);
    +		$this->twitter      = trim($this->twitter);
    +		$this->facebook     = trim($this->facebook);
    +
     		$this->job    		= trim($this->job);
     		$this->signature    = trim($this->signature);
     		$this->note         = trim($this->note);
    @@ -1384,6 +1481,7 @@ class User extends CommonObject
     		$this->accountancy_code = trim($this->accountancy_code);
     		$this->color 		= empty($this->color)?'':$this->color;
     		$this->dateemployment 	= empty($this->dateemployment)?'':$this->dateemployment;
    +		$this->dateemploymentend = empty($this->dateemploymentend)?'':$this->dateemploymentend;
     
     		// Check parameters
     		if (! empty($conf->global->USER_MAIL_REQUIRED) && ! isValidEMail($this->email))
    @@ -1421,11 +1519,14 @@ class User extends CommonObject
     		$sql.= ", user_mobile = '".$this->db->escape($this->user_mobile)."'";
     		$sql.= ", email = '".$this->db->escape($this->email)."'";
     		$sql.= ", skype = '".$this->db->escape($this->skype)."'";
    +		$sql.= ", twitter = '".$this->db->escape($this->twitter)."'";
    +		$sql.= ", facebook = '".$this->db->escape($this->facebook)."'";
     		$sql.= ", job = '".$this->db->escape($this->job)."'";
     		$sql.= ", signature = '".$this->db->escape($this->signature)."'";
     		$sql.= ", accountancy_code = '".$this->db->escape($this->accountancy_code)."'";
     		$sql.= ", color = '".$this->db->escape($this->color)."'";
     		$sql.= ", dateemployment=".(strval($this->dateemployment)!='' ? "'".$this->db->idate($this->dateemployment)."'" : 'null');
    +		$sql.= ", dateemploymentend=".(strval($this->dateemploymentend)!='' ? "'".$this->db->idate($this->dateemploymentend)."'" : 'null');
     		$sql.= ", note = '".$this->db->escape($this->note)."'";
     		$sql.= ", photo = ".($this->photo?"'".$this->db->escape($this->photo)."'":"null");
     		$sql.= ", openid = ".($this->openid?"'".$this->db->escape($this->openid)."'":"null");
    @@ -1504,7 +1605,11 @@ class User extends CommonObject
     						$adh->country_id=$this->country_id;
     
     						$adh->email=$this->email;
    +
     						$adh->skype=$this->skype;
    +						$adh->twitter=$this->twitter;
    +						$adh->facebook=$this->facebook;
    +
     						$adh->phone=$this->office_phone;
     						$adh->phone_mobile=$this->user_mobile;
     
    @@ -1552,7 +1657,11 @@ class User extends CommonObject
     						//$tmpobj->societe=(empty($tmpobj->societe) && $this->societe_id ? $this->societe_id : $tmpobj->societe);
     
     						$tmpobj->email=$this->email;
    +
     						$tmpobj->skype=$this->skype;
    +						$tmpobj->twitter=$this->twitter;
    +						$tmpobj->facebook=$this->facebook;
    +
     						$tmpobj->phone_pro=$this->office_phone;
     						$tmpobj->phone_mobile=$this->user_mobile;
     						$tmpobj->fax=$this->office_fax;
    @@ -1622,9 +1731,9 @@ class User extends CommonObject
     			$this->db->rollback();
     			return -2;
     		}
    -
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    Mise a jour en base de la date de derniere connexion d'un utilisateur
     	 *	  Fonction appelee lors d'une nouvelle connexion
    @@ -1633,6 +1742,7 @@ class User extends CommonObject
     	 */
     	function update_last_login_date()
     	{
    +        // phpcs:enable
     		$now=dol_now();
     
     		$sql = "UPDATE ".MAIN_DB_PREFIX."user SET";
    @@ -1790,6 +1900,7 @@ class User extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Send new password by email
     	 *
    @@ -1800,7 +1911,8 @@ class User extends CommonObject
     	 */
     	function send_password($user, $password='', $changelater=0)
     	{
    -		global $conf,$langs;
    +        // phpcs:enable
    +		global $conf, $langs;
     		global $dolibarr_main_url_root;
     
     		require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
    @@ -1821,10 +1933,8 @@ class User extends CommonObject
     			$outputlangs=$langs;
     		}
     
    -		$outputlangs->load("main");
    -		$outputlangs->load("errors");
    -		$outputlangs->load("users");
    -		$outputlangs->load("other");
    +		// Load translation files required by the page
    +		$outputlangs->loadLangs(array("main", "errors", "users", "other"));
     
     		$appli=constant('DOL_APPLICATION_TITLE');
     		if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE;
    @@ -1904,6 +2014,7 @@ class User extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *    	Read clicktodial information for user
     	 *
    @@ -1911,6 +2022,7 @@ class User extends CommonObject
     	 */
     	function fetch_clicktodial()
     	{
    +        // phpcs:enable
     		$sql = "SELECT url, login, pass, poste ";
     		$sql.= " FROM ".MAIN_DB_PREFIX."user_clicktodial as u";
     		$sql.= " WHERE u.fk_user = ".$this->id;
    @@ -1940,6 +2052,7 @@ class User extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update clicktodial info
     	 *
    @@ -1947,6 +2060,7 @@ class User extends CommonObject
     	 */
     	function update_clicktodial()
     	{
    +        // phpcs:enable
     		$this->db->begin();
     
     		$sql = "DELETE FROM ".MAIN_DB_PREFIX."user_clicktodial";
    @@ -1979,6 +2093,7 @@ class User extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Add user into a group
     	 *
    @@ -1989,6 +2104,7 @@ class User extends CommonObject
     	 */
     	function SetInGroup($group, $entity, $notrigger=0)
     	{
    +        // phpcs:enable
     		global $conf, $langs, $user;
     
     		$error=0;
    @@ -2039,6 +2155,7 @@ class User extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Remove a user from a group
     	 *
    @@ -2049,6 +2166,7 @@ class User extends CommonObject
     	 */
     	function RemoveFromGroup($group, $entity, $notrigger=0)
     	{
    +        // phpcs:enable
     		global $conf,$langs,$user;
     
     		$error=0;
    @@ -2108,9 +2226,7 @@ class User extends CommonObject
     	 */
     	function getPhotoUrl($width, $height, $cssclass='', $imagesize='')
     	{
    -		$result='';
    -
    -		$result.='<a href="'.DOL_URL_ROOT.'/user/card.php?id='.$this->id.'">';
    +		$result ='<a href="'.DOL_URL_ROOT.'/user/card.php?id='.$this->id.'">';
     		$result.=Form::showphoto('userphoto', $this, $width, $height, 0, $cssclass, $imagesize);
     		$result.='</a>';
     
    @@ -2127,17 +2243,19 @@ class User extends CommonObject
     	 *  @param	integer	$notooltip					1=Disable tooltip on picto and name
     	 *  @param	int		$maxlen						Max length of visible user name
     	 *  @param	int		$hidethirdpartylogo			Hide logo of thirdparty if user is external user
    -	 *  @param  string  $mode               		''=Show firstname and lastname, 'firstname'=Show only firstname, 'login'=Show login
    +	 *  @param  string  $mode               		''=Show firstname and lastname, 'firstname'=Show only firstname, 'firstelselast'=Show firstname or lastname if not defined, 'login'=Show login
     	 *  @param  string  $morecss            		Add more css on link
     	 *  @param  int     $save_lastsearch_value    	-1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
     	 *	@return	string								String with URL
     	 */
     	function getNomUrl($withpictoimg=0, $option='', $infologin=0, $notooltip=0, $maxlen=24, $hidethirdpartylogo=0, $mode='',$morecss='', $save_lastsearch_value=-1)
     	{
    -		global $langs, $conf, $db, $hookmanager;
    +		global $langs, $conf, $db, $hookmanager, $user;
     		global $dolibarr_main_authentication, $dolibarr_main_demo;
     		global $menumanager;
     
    +        if(!$user->rights->user->user->lire && $user->id !=$this->id) $option='nolink';
    +
     		if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $withpictoimg) $withpictoimg=0;
     
     		$result=''; $label='';
    @@ -2186,7 +2304,7 @@ class User extends CommonObject
     			$label.= '<br><b>'.$langs->trans("Browser").':</b> '.$conf->browser->name.($conf->browser->version?' '.$conf->browser->version:'').' ('.$_SERVER['HTTP_USER_AGENT'].')';
     			$label.= '<br><b>'.$langs->trans("Layout").':</b> '.$conf->browser->layout;
     			$label.= '<br><b>'.$langs->trans("Screen").':</b> '.$_SESSION['dol_screenwidth'].' x '.$_SESSION['dol_screenheight'];
    -			if (! empty($conf->browser->phone)) $label.= '<br><b>'.$langs->trans("Phone").':</b> '.$conf->browser->phone;
    +			if ($conf->browser->layout == 'phone') $label.= '<br><b>'.$langs->trans("Phone").':</b> '.$langs->trans("Yes");
     			if (! empty($_SESSION["disablemodules"])) $label.= '<br><b>'.$langs->trans("DisabledModules").':</b> <br>'.join(', ',explode(',',$_SESSION["disablemodules"]));
     		}
     		if ($infologin < 0) $label='';
    @@ -2242,7 +2360,7 @@ class User extends CommonObject
     		{
     			if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) $result.='<div class="inline-block nopadding valignmiddle usertext'.((! isset($this->statut) || $this->statut)?'':' strikefordisabled').($morecss?' '.$morecss:'').'">';
     			if ($mode == 'login') $result.=dol_trunc($this->login, $maxlen);
    -			else $result.=$this->getFullName($langs,'',($mode == 'firstname' ? 2 : -1),$maxlen);
    +			else $result.=$this->getFullName($langs,'',($mode == 'firstelselast' ? 3 : ($mode == 'firstname' ? 2 : -1)),$maxlen);
     			if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) $result.='</div>';
     		}
     		$result.=(($option == 'nolink')?'':$linkend);
    @@ -2269,19 +2387,28 @@ class User extends CommonObject
     	 */
     	function getLoginUrl($withpicto=0,$option='')
     	{
    -		global $langs;
    +		global $langs, $user;
     
     		$result='';
     
     		$linkstart = '<a href="'.DOL_URL_ROOT.'/user/card.php?id='.$this->id.'">';
     		$linkend='</a>';
     
    +                //Check user's rights to see an other user
    +                if((!$user->rights->user->user->lire && $this->id !=$user->id)) $option='nolink';
    +
     		if ($option == 'xxx')
     		{
     			$linkstart = '<a href="'.DOL_URL_ROOT.'/user/card.php?id='.$this->id.'">';
     			$linkend='</a>';
     		}
     
    +        if ($option == 'nolink')
    +		{
    +			$linkstart = '';
    +			$linkend='';
    +		}
    +
     		$result.=$linkstart;
     		if ($withpicto) $result.=img_object($langs->trans("ShowUser"), 'user', 'class="paddingright"');
     		$result.=$this->login;
    @@ -2300,6 +2427,7 @@ class User extends CommonObject
     		return $this->LibStatut($this->statut,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -2309,43 +2437,44 @@ class User extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     		$langs->load('users');
     
     		if ($mode == 0)
     		{
    -			$prefix='';
     			if ($statut == 1) return $langs->trans('Enabled');
    -			if ($statut == 0) return $langs->trans('Disabled');
    +			elseif ($statut == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($statut == 1) return $langs->trans('Enabled');
    -			if ($statut == 0) return $langs->trans('Disabled');
    +			elseif ($statut == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($statut == 1) return img_picto($langs->trans('Enabled'),'statut4','class="pictostatus"').' '.$langs->trans('Enabled');
    -			if ($statut == 0) return img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"').' '.$langs->trans('Disabled');
    +			elseif ($statut == 0) return img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($statut == 1) return img_picto($langs->trans('Enabled'),'statut4','class="pictostatus"');
    -			if ($statut == 0) return img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"');
    +			elseif ($statut == 0) return img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($statut == 1) return img_picto($langs->trans('Enabled'),'statut4','class="pictostatus"').' '.$langs->trans('Enabled');
    -			if ($statut == 0) return img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"').' '.$langs->trans('Disabled');
    +			elseif ($statut == 0) return img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($statut == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4','class="pictostatus"');
    -			if ($statut == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"');
    +			elseif ($statut == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5','class="pictostatus"');
     		}
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Retourne chaine DN complete dans l'annuaire LDAP pour l'objet
     	 *
    @@ -2357,14 +2486,16 @@ class User extends CommonObject
     	 */
     	function _load_ldap_dn($info,$mode=0)
     	{
    +        // phpcs:enable
     		global $conf;
     		$dn='';
     		if ($mode==0) $dn=$conf->global->LDAP_KEY_USERS."=".$info[$conf->global->LDAP_KEY_USERS].",".$conf->global->LDAP_USER_DN;
    -		if ($mode==1) $dn=$conf->global->LDAP_USER_DN;
    -		if ($mode==2) $dn=$conf->global->LDAP_KEY_USERS."=".$info[$conf->global->LDAP_KEY_USERS];
    +		elseif ($mode==1) $dn=$conf->global->LDAP_USER_DN;
    +		elseif ($mode==2) $dn=$conf->global->LDAP_KEY_USERS."=".$info[$conf->global->LDAP_KEY_USERS];
     		return $dn;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Initialize the info array (array of LDAP values) that will be used to call LDAP functions
     	 *
    @@ -2372,6 +2503,7 @@ class User extends CommonObject
     	 */
     	function _load_ldap_info()
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$info=array();
    @@ -2388,13 +2520,15 @@ class User extends CommonObject
     			'LDAP_FIELD_NAME'		=> 'lastname',
     			'LDAP_FIELD_FIRSTNAME'	=> 'firstname',
     			'LDAP_FIELD_LOGIN'		=> 'login',
    -			'LDAP_FIELD_LOGIN_SAMBA'	=> 'login',
    +			'LDAP_FIELD_LOGIN_SAMBA'=> 'login',
     			'LDAP_FIELD_PHONE'		=> 'office_phone',
     			'LDAP_FIELD_MOBILE'		=> 'user_mobile',
    -			'LDAP_FIELD_FAX'			=> 'office_fax',
    +			'LDAP_FIELD_FAX'		=> 'office_fax',
     			'LDAP_FIELD_MAIL'		=> 'email',
    -			'LDAP_FIELD_SID'			=> 'ldap_sid',
    -			'LDAP_FIELD_SKYPE'		=> 'skype'
    +			'LDAP_FIELD_SID'		=> 'ldap_sid',
    +			'LDAP_FIELD_SKYPE'		=> 'skype',
    +			'LDAP_FIELD_TWITTER'	=> 'twitter',
    +			'LDAP_FIELD_FACEBOOK'	=> 'facebook'
     		);
     
     		// Champs
    @@ -2433,7 +2567,7 @@ class User extends CommonObject
     			if (! empty($conf->global->LDAP_FIELD_PASSWORD_CRYPTED))		$info[$conf->global->LDAP_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass, 4); // Create OpenLDAP MD5 password (TODO add type of encryption)
     		}
     		// Set LDAP password if possible
    -		else if ($conf->global->LDAP_SERVER_PROTOCOLVERSION !== '3') // If ldap key is modified and LDAPv3 we use ldap_rename function for avoid lose encrypt password
    +		elseif ($conf->global->LDAP_SERVER_PROTOCOLVERSION !== '3') // If ldap key is modified and LDAPv3 we use ldap_rename function for avoid lose encrypt password
     		{
     			if (! empty($conf->global->DATABASE_PWD_ENCRYPTED))
     			{
    @@ -2446,7 +2580,7 @@ class User extends CommonObject
     				}
     			}
     			// Use $this->pass_indatabase value if exists
    -			else if (! empty($this->pass_indatabase))
    +			elseif (! empty($this->pass_indatabase))
     			{
     				if (! empty($conf->global->LDAP_FIELD_PASSWORD))				$info[$conf->global->LDAP_FIELD_PASSWORD] = $this->pass_indatabase;	// $this->pass_indatabase = mot de passe non crypte
     				if (! empty($conf->global->LDAP_FIELD_PASSWORD_CRYPTED))		$info[$conf->global->LDAP_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass_indatabase, 4); // md5 for OpenLdap TODO add type of encryption
    @@ -2505,7 +2639,9 @@ class User extends CommonObject
     		$this->gender='man';
     		$this->note='This is a note';
     		$this->email='email@specimen.com';
    -		$this->skype='tom.hanson';
    +		$this->skype='skypepseudo';
    +		$this->twitter='twitterpseudo';
    +		$this->facebook='facebookpseudo';
     		$this->office_phone='0999999999';
     		$this->office_fax='0999999998';
     		$this->user_mobile='0999999997';
    @@ -2555,7 +2691,6 @@ class User extends CommonObject
     			}
     
     			$this->db->free($result);
    -
     		}
     		else
     		{
    @@ -2634,6 +2769,7 @@ class User extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Update user using data from the LDAP
     	 *
    @@ -2643,6 +2779,7 @@ class User extends CommonObject
     	 */
     	function update_ldap2dolibarr(&$ldapuser)
     	{
    +        // phpcs:enable
     		// TODO: Voir pourquoi le update met à jour avec toutes les valeurs vide (global $user écrase ?)
     		global $user, $conf;
     
    @@ -2657,6 +2794,8 @@ class User extends CommonObject
     		$this->office_fax=$ldapuser->{$conf->global->LDAP_FIELD_FAX};
     		$this->email=$ldapuser->{$conf->global->LDAP_FIELD_MAIL};
     		$this->skype=$ldapuser->{$conf->global->LDAP_FIELD_SKYPE};
    +		$this->twitter=$ldapuser->{$conf->global->LDAP_FIELD_TWITTER};
    +		$this->facebook=$ldapuser->{$conf->global->LDAP_FIELD_FACEBOOK};
     		$this->ldap_sid=$ldapuser->{$conf->global->LDAP_FIELD_SID};
     
     		$this->job=$ldapuser->{$conf->global->LDAP_FIELD_TITLE};
    @@ -2670,6 +2809,7 @@ class User extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * Return and array with all instanciated first level children users of current user
     	 *
    @@ -2678,6 +2818,7 @@ class User extends CommonObject
     	 */
     	function get_children()
     	{
    +        // phpcs:enable
     		$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."user";
     		$sql.= " WHERE fk_user = ".$this->id;
     
    @@ -2707,7 +2848,7 @@ class User extends CommonObject
     	 *
     	 *	@return		int		<0 if KO, >0 if OK
     	 */
    -	private function load_parentof()
    +	private function loadParentOf()
     	{
     		global $conf;
     
    @@ -2719,7 +2860,7 @@ class User extends CommonObject
     		$sql.= " WHERE fk_user <> 0";
     		$sql.= " AND entity IN (".getEntity('user').")";
     
    -		dol_syslog(get_class($this)."::load_parentof", LOG_DEBUG);
    +		dol_syslog(get_class($this)."::loadParentOf", LOG_DEBUG);
     		$resql = $this->db->query($sql);
     		if ($resql)
     		{
    @@ -2736,6 +2877,7 @@ class User extends CommonObject
     		}
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 * 	Reconstruit l'arborescence hierarchique des users sous la forme d'un tableau
     	 *	Set and return this->users that is an array sorted according to tree with arrays of:
    @@ -2751,6 +2893,7 @@ class User extends CommonObject
     	 */
     	function get_full_tree($deleteafterid=0, $filter='')
     	{
    +        // phpcs:enable
     		global $conf, $user;
     		global $hookmanager;
     
    @@ -2760,7 +2903,7 @@ class User extends CommonObject
     		$this->users = array();
     
     		// Init this->parentof that is array(id_son=>id_parent, ...)
    -		$this->load_parentof();
    +		$this->loadParentOf();
     
     		// Init $this->users array
     		$sql = "SELECT DISTINCT u.rowid, u.firstname, u.lastname, u.fk_user, u.fk_soc, u.login, u.email, u.gender, u.admin, u.statut, u.photo, u.entity";	// Distinct reduce pb with old tables with duplicates
    @@ -2879,6 +3022,7 @@ class User extends CommonObject
     		return $childids;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	For user id_user and its childs available in this->users, define property fullpath and fullname.
     	 *  Function called by get_full_tree().
    @@ -2889,6 +3033,7 @@ class User extends CommonObject
     	 */
     	function build_path_from_id_user($id_user,$protection=0)
     	{
    +        // phpcs:enable
     		dol_syslog(get_class($this)."::build_path_from_id_user id_user=".$id_user." protection=".$protection, LOG_DEBUG);
     
     		if (! empty($this->users[$id_user]['fullpath']))
    @@ -2934,13 +3079,14 @@ class User extends CommonObject
     	public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id)
     	{
     		$tables = array(
    -			'user'
    +			'user',
     		);
     
     		return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *      Charge indicateurs this->nb pour le tableau de bord
     	 *
    @@ -2948,6 +3094,7 @@ class User extends CommonObject
     	 */
     	function load_state_board()
     	{
    +        // phpcs:enable
     		global $conf;
     
     		$this->nb=array();
    @@ -2989,7 +3136,7 @@ class User extends CommonObject
     	 */
     	public function generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
     	{
    -		global $conf,$user,$langs;
    +		global $conf, $user, $langs;
     
     		$langs->load("user");
     
    @@ -3011,6 +3158,7 @@ class User extends CommonObject
     		return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Return property of user from its id
     	 *
    @@ -3020,6 +3168,7 @@ class User extends CommonObject
     	 */
     	function user_get_property($rowid,$mode)
     	{
    +        // phpcs:enable
     		$user_property='';
     
     		if (empty($rowid)) return '';
    @@ -3051,14 +3200,15 @@ class User extends CommonObject
     	/**
     	 *	Load all objects into $this->users
     	 *
    -	 *  @param	string		$sortorder    sort order
    -	 *  @param	string		$sortfield    sort field
    -	 *  @param	int			$limit		  limit page
    -	 *  @param	int			$offset    	  page
    -	 *  @param	array		$filter    	  filter output
    -	 *  @return int          	<0 if KO, >0 if OK
    +	 *  @param	string		$sortorder		sort order
    +	 *  @param	string		$sortfield		sort field
    +	 *  @param	int			$limit			limit page
    +	 *  @param	int			$offset			page
    +	 *  @param	array		$filter			Filter array. Example array('field'=>'valueforlike', 'customurl'=>...)
    +	 *  @param  string      $filtermode		Filter mode (AND or OR)
    +	 *  @return int							<0 if KO, >0 if OK
     	 */
    -	function fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, $filter=array())
    +	function fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, $filter=array(), $filtermode='AND')
     	{
     		global $conf;
     
    @@ -3066,19 +3216,27 @@ class User extends CommonObject
     		$sql.= ' FROM '.MAIN_DB_PREFIX .$this->table_element.' as t ';
     		$sql.= " WHERE 1";
     
    -		//Manage filter
    +		// Manage filter
    +		$sqlwhere = array();
     		if (!empty($filter)){
     			foreach($filter as $key => $value) {
    -				if (strpos($key,'date')) {
    -					$sql.= ' AND '.$key.' = \''.$this->db->idate($value).'\'';
    +				if ($key=='t.rowid') {
    +					$sqlwhere[] = $key . '='. $value;
    +				}
    +				elseif (strpos($key,'date') !== false) {
    +					$sqlwhere[] = $key.' = \''.$this->db->idate($value).'\'';
     				}
     				elseif ($key=='customsql') {
    -					$sql.= ' AND '.$value;
    -				} else {
    -					$sql.= ' AND '.$key.' LIKE \'%'.$value.'%\'';
    +					$sqlwhere[] = $value;
    +				}
    +				else {
    +					$sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\'';
     				}
     			}
     		}
    +		if (count($sqlwhere) > 0) {
    +			$sql .= ' AND (' . implode(' '.$filtermode.' ', $sqlwhere).')';
    +		}
     		$sql.= $this->db->order($sortfield,$sortorder);
     		if ($limit) $sql.= $this->db->plimit($limit+1,$offset);
     
    @@ -3108,8 +3266,5 @@ class User extends CommonObject
     			$this->errors[] = $this->db->lasterror();
     			return -1;
     		}
    -
     	}
    -
     }
    -
    diff --git a/htdocs/user/class/userbankaccount.class.php b/htdocs/user/class/userbankaccount.class.php
    index 77385f84179..7870fe9c35e 100644
    --- a/htdocs/user/class/userbankaccount.class.php
    +++ b/htdocs/user/class/userbankaccount.class.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2010-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2013   	Peter Fontaine          <contact@peterfontaine.fr>
      * Copyright (C) 2015	    Alexandre Spangaro	    <aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2016       Marcos García           <marcosgdf@gmail.com>
    @@ -206,4 +206,3 @@ class UserBankAccount extends Account
     		return $rib;
     	}
     }
    -
    diff --git a/htdocs/user/class/usergroup.class.php b/htdocs/user/class/usergroup.class.php
    index 2400c855a6d..f70f61e2ed6 100644
    --- a/htdocs/user/class/usergroup.class.php
    +++ b/htdocs/user/class/usergroup.class.php
    @@ -1,11 +1,11 @@
     <?php
    -/* Copyright (c) 2005		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
    - * Copyright (c) 2005-2018	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (c) 2005-2018	Regis Houssin		<regis.houssin@capnetworks.com>
    - * Copyright (C) 2012		Florian Henry		<florian.henry@open-concept.pro>
    - * Copyright (C) 2014		Juanjo Menent		<jmenent@2byte.es>
    - * Copyright (C) 2014		Alexis Algoud		<alexis@atm-consulting.fr>
    - * Copyright (C) 2018           Nicolas ZABOURI		<info@inovea-conseil.com>
    +/* Copyright (c) 2005		Rodolphe Quiedeville <rodolphe@quiedeville.org>
    + * Copyright (c) 2005-2018	Laurent Destailleur	 <eldy@users.sourceforge.net>
    + * Copyright (c) 2005-2018	Regis Houssin		 <regis.houssin@inodbox.com>
    + * Copyright (C) 2012		Florian Henry		 <florian.henry@open-concept.pro>
    + * Copyright (C) 2014		Juanjo Menent		 <jmenent@2byte.es>
    + * Copyright (C) 2014		Alexis Algoud		 <alexis@atm-consulting.fr>
    + * Copyright (C) 2018       Nicolas ZABOURI		 <info@inovea-conseil.com>
      *
      * 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
    @@ -27,7 +27,7 @@
      */
     
     require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
    -if (! empty($conf->ldap->enabled)) require_once (DOL_DOCUMENT_ROOT."/core/class/ldap.class.php");
    +if (! empty($conf->ldap->enabled)) require_once DOL_DOCUMENT_ROOT."/core/class/ldap.class.php";
     
     
     /**
    @@ -35,23 +35,49 @@ if (! empty($conf->ldap->enabled)) require_once (DOL_DOCUMENT_ROOT."/core/class/
      */
     class UserGroup extends CommonObject
     {
    -	public $element='usergroup';
    -	public $table_element='usergroup';
    -	public $ismultientitymanaged = 1;	// 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    -    public $picto='group';
    -	public $entity;		// Entity of group
    -
    -
    -	public $name;			// Name of group
     	/**
    +	 * @var string ID to identify managed object
    +	 */
    +	public $element='usergroup';
    +
    +	/**
    +	 * @var string Name of table without prefix where object is stored
    +	 */
    +	public $table_element='usergroup';
    +
    +	/**
    +	 * 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
    +	 * @var int
    +	 */
    +	public $ismultientitymanaged = 1;
    +
    +    public $picto='group';
    +
    +	/**
    +	 * @var int Entity of group
    +	 */
    +	public $entity;
    +
    +	/**
    +	 * @var string
     	 * @deprecated
     	 * @see name
     	 */
    -	public $nom;			// Name of group
    +	public $nom;
    +
    +	/**
    +	 * @var string name
    +	 */
    +	public $name;			// Name of group
    +
     	public $globalgroup;	// Global group
    +
     	public $datec;			// Creation date of group
    +
     	public $datem;			// Modification date of group
    +
     	public $note;			// Description
    +
     	public $members=array();	// Array of users
     
     	public $nb_rights;					// Number of rights granted to the user
    @@ -308,8 +334,18 @@ class UserGroup extends CommonObject
     		}
     		else {
     			// Where pour la liste des droits a ajouter
    -			if (! empty($allmodule)) $whereforadd="module='".$this->db->escape($allmodule)."'";
    -			if (! empty($allperms))  $whereforadd=" AND perms='".$this->db->escape($allperms)."'";
    +			if (! empty($allmodule))
    +			{
    +				if ($allmodule == 'allmodules')
    +				{
    +					$whereforadd='allmodules';
    +				}
    +				else
    +				{
    +					$whereforadd="module='".$this->db->escape($allmodule)."'";
    +					if (! empty($allperms))  $whereforadd.=" AND perms='".$this->db->escape($allperms)."'";
    +				}
    +			}
     		}
     
     		// Ajout des droits de la liste whereforadd
    @@ -318,8 +354,10 @@ class UserGroup extends CommonObject
     			//print "$module-$perms-$subperms";
     			$sql = "SELECT id";
     			$sql.= " FROM ".MAIN_DB_PREFIX."rights_def";
    -			$sql.= " WHERE $whereforadd";
    -			$sql.= " AND entity = ".$entity;
    +			$sql.= " WHERE entity = ".$entity;
    +			if (! empty($whereforadd) && $whereforadd != 'allmodules') {
    +				$sql.= " AND ".$whereforadd;
    +			}
     
     			$result=$this->db->query($sql);
     			if ($result)
    @@ -365,7 +403,6 @@ class UserGroup extends CommonObject
     			$this->db->commit();
     			return 1;
     		}
    -
     	}
     
     
    @@ -422,8 +459,18 @@ class UserGroup extends CommonObject
     		}
     		else {
     			// Where pour la liste des droits a supprimer
    -			if (! empty($allmodule)) $wherefordel="module='".$this->db->escape($allmodule)."'";
    -			if (! empty($allperms))  $wherefordel=" AND perms='".$this->db->escape($allperms)."'";
    +			if (! empty($allmodule))
    +			{
    +				if ($allmodule == 'allmodules')
    +				{
    +					$wherefordel='allmodules';
    +				}
    +				else
    +				{
    +					$wherefordel="module='".$this->db->escape($allmodule)."'";
    +					if (! empty($allperms))  $whereforadd.=" AND perms='".$this->db->escape($allperms)."'";
    +				}
    +			}
     		}
     
     		// Suppression des droits de la liste wherefordel
    @@ -432,8 +479,10 @@ class UserGroup extends CommonObject
     			//print "$module-$perms-$subperms";
     			$sql = "SELECT id";
     			$sql.= " FROM ".MAIN_DB_PREFIX."rights_def";
    -			$sql.= " WHERE $wherefordel";
    -			$sql.= " AND entity = ".$entity;
    +			$sql.= " WHERE entity = ".$entity;
    +			if (! empty($wherefordel) && $wherefordel != 'allmodules') {
    +				$sql.= " AND ".$wherefordel;
    +			}
     
     			$result=$this->db->query($sql);
     			if ($result)
    @@ -479,7 +528,6 @@ class UserGroup extends CommonObject
     			$this->db->commit();
     			return 1;
     		}
    -
     	}
     
     
    @@ -569,13 +617,14 @@ class UserGroup extends CommonObject
     	}
     
     	/**
    -	 *        Efface un groupe de la base
    +	 *	Delete a group
     	 *
    -	 *        @return     <0 if KO, > 0 if OK
    +	 *	@param	User	$user		User that delete
    +	 *	@return     				<0 if KO, > 0 if OK
     	 */
    -	function delete()
    +	function delete(User $user)
     	{
    -		global $user,$conf,$langs;
    +		global $conf,$langs;
     
     		$error=0;
     
    @@ -773,6 +822,7 @@ class UserGroup extends CommonObject
     	    return $this->LibStatut(0,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un statut donne
     	 *
    @@ -782,6 +832,7 @@ class UserGroup extends CommonObject
     	 */
     	function LibStatut($statut,$mode=0)
     	{
    +        // phpcs:enable
     	    global $langs;
     	    $langs->load('users');
     	    return '';
    @@ -864,6 +915,7 @@ class UserGroup extends CommonObject
     		return $result;
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Retourne chaine DN complete dans l'annuaire LDAP pour l'objet
     	 *
    @@ -875,6 +927,7 @@ class UserGroup extends CommonObject
     	 */
     	function _load_ldap_dn($info,$mode=0)
     	{
    +        // phpcs:enable
     		global $conf;
     		$dn='';
     		if ($mode==0) $dn=$conf->global->LDAP_KEY_GROUPS."=".$info[$conf->global->LDAP_KEY_GROUPS].",".$conf->global->LDAP_GROUP_DN;
    @@ -884,6 +937,7 @@ class UserGroup extends CommonObject
     	}
     
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *	Initialize the info array (array of LDAP values) that will be used to call LDAP functions
     	 *
    @@ -891,6 +945,7 @@ class UserGroup extends CommonObject
     	 */
     	function _load_ldap_info()
     	{
    +        // phpcs:enable
     		global $conf,$langs;
     
     		$info=array();
    @@ -953,7 +1008,7 @@ class UserGroup extends CommonObject
     	 *  @param      int			$hidedetails    Hide details of lines
     	 *  @param      int			$hidedesc       Hide description
     	 *  @param      int			$hideref        Hide ref
    -         *  @param   null|array  $moreparams     Array to provide more information
    +     *  @param      null|array  $moreparams     Array to provide more information
     	 * 	@return     int         				0 if KO, 1 if OK
     	 */
     	public function generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
    @@ -980,4 +1035,3 @@ class UserGroup extends CommonObject
     		return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
     	}
     }
    -
    diff --git a/htdocs/user/clicktodial.php b/htdocs/user/clicktodial.php
    index a6c43e2dc62..a6618f3a7c0 100644
    --- a/htdocs/user/clicktodial.php
    +++ b/htdocs/user/clicktodial.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -213,10 +213,8 @@ if ($id > 0)
         }
     
         print "</div>\n";
    -
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/user/document.php b/htdocs/user/document.php
    index 2c41c1bf922..6f7e27b13dd 100644
    --- a/htdocs/user/document.php
    +++ b/htdocs/user/document.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2010      Juanjo Menent        <jmenent@2byte.es>
      * Copyright (C) 2013      Cédric Salvador      <csalvador@gpcsolutions.fr>
      *
    @@ -141,7 +141,7 @@ if ($object->id)
         print '<div class="fichecenter">';
         print '<div class="underbanner clearboth"></div>';
     
    -	// Construit liste des fichiers
    +	// Build file list
     	$filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1);
     	$totalsize=0;
     	foreach($filearray as $key => $file)
    @@ -178,6 +178,6 @@ else
     	accessforbidden('',0,0);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/user/group/card.php b/htdocs/user/group/card.php
    index d5f7a5b8570..61c817a4c72 100644
    --- a/htdocs/user/group/card.php
    +++ b/htdocs/user/group/card.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2005		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2015	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2017	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Herve Prot			<herve.prot@symeos.com>
      * Copyright (C) 2012		Florian Henry		<florian.henry@open-concept.pro>
      * Copyright (C) 2018		Juanjo Menent		<jmenent@2byte.es>
    @@ -110,7 +110,7 @@ if (empty($reshook)) {
     		if ($caneditperms)
     		{
     			$object->fetch($id);
    -			$object->delete();
    +			$object->delete($user);
     			header("Location: ".DOL_URL_ROOT."/user/group/list.php?restore_lastsearch_values=1");
     			exit;
     		}
    @@ -587,5 +587,6 @@ else
         }
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/user/group/index.html b/htdocs/user/group/index.html
    new file mode 100644
    index 00000000000..8b137891791
    --- /dev/null
    +++ b/htdocs/user/group/index.html
    @@ -0,0 +1 @@
    +
    diff --git a/htdocs/user/group/ldap.php b/htdocs/user/group/ldap.php
    index bb9d05d59f1..0103f63884a 100644
    --- a/htdocs/user/group/ldap.php
    +++ b/htdocs/user/group/ldap.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2017 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2017 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -212,5 +212,6 @@ else
     
     print '</table>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/user/group/list.php b/htdocs/user/group/list.php
    index 946ba132af8..b9de423f19f 100644
    --- a/htdocs/user/group/list.php
    +++ b/htdocs/user/group/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002-2003	Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2004-2018	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2018	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2018	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2011		Herve Prot			<herve.prot@symeos.com>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -227,6 +227,6 @@ else
         dol_print_error($db);
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/user/group/perms.php b/htdocs/user/group/perms.php
    index c1f8d1fe5b0..6b1b011b85c 100644
    --- a/htdocs/user/group/perms.php
    +++ b/htdocs/user/group/perms.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2002-2003 Jean-Louis Bergamo   <jlb@j1b.org>
      * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2017 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -231,7 +231,14 @@ if ($object->id > 0)
         print '<table width="100%" class="noborder">';
         print '<tr class="liste_titre">';
         print '<td>'.$langs->trans("Module").'</td>';
    -    if ($caneditperms) print '<td width="24">&nbsp</td>';
    +    if ($caneditperms)
    +    {
    +    	print '<td align="center" class="nowrap">';
    +    	print '<a class="reposition" title="'.dol_escape_htmltag($langs->trans("All")).'" alt="'.dol_escape_htmltag($langs->trans("All")).'" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=addrights&amp;entity='.$entity.'&amp;module=allmodules">'.$langs->trans("All")."</a>";
    +    	print '/';
    +    	print '<a class="reposition" title="'.dol_escape_htmltag($langs->trans("None")).'" alt="'.dol_escape_htmltag($langs->trans("None")).'" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delrights&amp;entity='.$entity.'&amp;module=allmodules">'.$langs->trans("None")."</a>";
    +    	print '</td>';
    +    }
         print '<td align="center" width="24">&nbsp;</td>';
         print '<td>'.$langs->trans("Permissions").'</td>';
         print '</tr>';
    @@ -342,5 +349,6 @@ if ($object->id > 0)
         dol_fiche_end();
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/user/hierarchy.php b/htdocs/user/hierarchy.php
    index 9b2bd34b156..65723b4d65d 100644
    --- a/htdocs/user/hierarchy.php
    +++ b/htdocs/user/hierarchy.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2005      Eric Seigne          <eric.seigne@ryxeo.com>
      * Copyright (C) 2006-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
      * Copyright (C) 2007      Patrick Raguin       <patrick.raguin@gmail.com>
    - * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -52,6 +52,10 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter','a
     	$search_statut="";
     }
     
    +// Define value to know what current user can do on users
    +$canadduser=(! empty($user->admin) || $user->rights->user->user->creer);
    +
    +
     
     /*
      * View
    @@ -62,12 +66,7 @@ $form = new Form($db);
     $arrayofjs=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.js', '/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js');
     $arrayofcss=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.css');
     
    -llxHeader('',$langs->trans("ListOfUsers"). ' ('.$langs->trans("HierarchicView").')','','',0,0,$arrayofjs,$arrayofcss);
    -
    -$morehtmlright = '<a class="nohover" href="'.DOL_URL_ROOT.'/user/list.php'.(($search_statut != '' && $search_statut >= 0) ?'?search_statut='.$search_statut:'').'">'.$langs->trans("ViewList").'</a>';
    -
    -print load_fiche_titre($langs->trans("ListOfUsers"). ' ('.$langs->trans("HierarchicView").')', $morehtmlright);
    -
    +llxHeader('',$langs->trans("ListOfUsers"). ' - '.$langs->trans("HierarchicView"),'','',0,0,$arrayofjs,$arrayofcss);
     
     
     // Load hierarchy of users
    @@ -138,9 +137,30 @@ foreach($fulltree as $key => $val)
     
     //var_dump($data);
     
    -print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'."\n";
    +$title = $langs->trans("ListOfUsers"). ' - '.$langs->trans("HierarchicView");
     
    -$param="search_statut=".$search_statut;
    +$param="search_statut=".urlencode($search_statut);
    +
    +$newcardbutton='';
    +if ($canadduser)
    +{
    +	$newcardbutton = '<a class="butActionNew" href="'.DOL_URL_ROOT.'/user/card.php?action=create'.($mode == 'employee' ? '&employee=1': '').'&leftmenu="><span class="valignmiddle">'.$langs->trans('NewUser').'</span>';
    +	$newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
    +	$newcardbutton.= '</a>';
    +}
    +
    +$morehtmlright = '<a class="nohover" href="'.DOL_URL_ROOT.'/user/list.php'.(($search_statut != '' && $search_statut >= 0) ?'?search_statut='.$search_statut:'').'">'.$langs->trans("ViewList").'</a>';
    +
    +print load_fiche_titre($title, $morehtmlright.' '.$newcardbutton);
    +
    +print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'."\n";
    +if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
    +print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    +print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
    +print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
    +print '<input type="hidden" name="page" value="'.$page.'">';
    +print '<input type="hidden" name="mode" value="'.$mode.'">';
    +print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
     
     print '<table class="liste nohover" width="100%">';
     
    @@ -206,6 +226,6 @@ jQuery(document).ready(function() {
     </script>';
     */
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/user/home.php b/htdocs/user/home.php
    index 250bbf62b91..da31b6027ed 100644
    --- a/htdocs/user/home.php
    +++ b/htdocs/user/home.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2005-2018	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2018	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2018	Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -286,6 +286,6 @@ if ($canreadperms)
     //print '</td></tr></table>';
     print '</div></div></div>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/user/index.html b/htdocs/user/index.html
    new file mode 100644
    index 00000000000..8b137891791
    --- /dev/null
    +++ b/htdocs/user/index.html
    @@ -0,0 +1 @@
    +
    diff --git a/htdocs/user/info.php b/htdocs/user/info.php
    index 3cecf94543b..5e1bfaddc4c 100644
    --- a/htdocs/user/info.php
    +++ b/htdocs/user/info.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -93,6 +93,6 @@ print '</div>';
     
     dol_fiche_end();
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/user/ldap.php b/htdocs/user/ldap.php
    index 6b8d0b2502e..45b575b9843 100644
    --- a/htdocs/user/ldap.php
    +++ b/htdocs/user/ldap.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2006-2017 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2006-2017 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -218,5 +218,6 @@ else
     
     print '</table>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/user/list.php b/htdocs/user/list.php
    index c4664b07fb7..dcede3a5576 100644
    --- a/htdocs/user/list.php
    +++ b/htdocs/user/list.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2002-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2017 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2015      Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
      * Copyright (C) 2016      Marcos García        <marcosgdf@gmail.com>
      *
    @@ -26,6 +26,9 @@
      */
     
     require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
    +if (! empty($conf->categorie->enabled))
    +	require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
     
     if (! $user->rights->user->user->lire && ! $user->admin)
     	accessforbidden();
    @@ -65,7 +68,7 @@ $extrafields = new ExtraFields($db);
     
     // fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('user');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     $userstatic=new User($db);
     $companystatic = new Societe($db);
    @@ -123,6 +126,8 @@ $search_thirdparty=GETPOST('search_thirdparty','alpha');
     $search_supervisor=GETPOST('search_supervisor','intcomma');
     $search_previousconn=GETPOST('search_previousconn','alpha');
     $optioncss = GETPOST('optioncss','alpha');
    +$search_categ = GETPOST("search_categ",'int');
    +$catid = GETPOST('catid','int');
     
     // Default search
     if ($search_statut == '') $search_statut='1';
    @@ -165,6 +170,7 @@ if (empty($reshook))
     		$search_date_creation="";
     		$search_date_update="";
     		$search_array_options=array();
    +        $search_categ=0;
     	}
     }
     
    @@ -173,6 +179,8 @@ if (empty($reshook))
      * View
      */
     
    +$htmlother=new FormOther($db);
    +
     $user2=new User($db);
     
     $buttonviewhierarchy='<form action="'.DOL_URL_ROOT.'/user/hierarchy.php'.(($search_statut != '' && $search_statut >= 0) ? '?search_statut='.$search_statut : '').'" method="POST"><input type="submit" class="button" style="width:120px" name="viewcal" value="'.dol_escape_htmltag($langs->trans("HierarchicView")).'"></form>';
    @@ -193,6 +201,7 @@ $sql.= " FROM ".MAIN_DB_PREFIX."user as u";
     if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user_extrafields as ef on (u.rowid = ef.fk_object)";
     $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON u.fk_soc = s.rowid";
     $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u2 ON u.fk_user = u2.rowid";
    +if (! empty($search_categ) || ! empty($catid)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_user as cu ON u.rowid = cu.fk_user"; // We'll need this table joined to the select in order to filter by categ
     // Add fields from hooks
     $parameters=array();
     $reshook=$hookmanager->executeHooks('printUserListWhere',$parameters);    // Note that $action and $object may have been modified by hook
    @@ -216,6 +225,10 @@ if ($search_accountancy_code != '')  $sql.= natural_search("u.accountancy_code",
     if ($search_email != '')             $sql.= natural_search("u.email", $search_email);
     if ($search_statut != '' && $search_statut >= 0) $sql.= " AND u.statut IN (".$db->escape($search_statut).")";
     if ($sall)                           $sql.= natural_search(array_keys($fieldstosearchall), $sall);
    +if ($catid > 0)     $sql.= " AND cu.fk_categorie = ".$catid;
    +if ($catid == -2)   $sql.= " AND cu.fk_categorie IS NULL";
    +if ($search_categ > 0)   $sql.= " AND cu.fk_categorie = ".$db->escape($search_categ);
    +if ($search_categ == -2) $sql.= " AND cu.fk_categorie IS NULL";
     // Add where from extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
     // Add where from hooks
    @@ -253,21 +266,22 @@ if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) &&
     llxHeader('',$langs->trans("ListOfUsers"));
     
     $param='';
    -if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
    -if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
    +if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
    +if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
     if ($sall != '') $param.='&sall='.urlencode($sall);
    -if ($search_user != '') $param.="&search_user=".$search_user;
    -if ($search_login != '') $param.="&search_login=".$search_login;
    -if ($search_lastname != '') $param.="&search_lastname=".$search_lastname;
    -if ($search_firstname != '') $param.="&search_firstname=".$search_firstname;
    -if ($search_gender != '') $param.="&search_gender=".$search_gender;
    -if ($search_employee != '') $param.="&search_employee=".$search_employee;
    -if ($search_accountancy_code != '') $param.="&search_accountancy_code=".$search_accountancy_code;
    -if ($search_email != '') $param.="&search_email=".$search_email;
    -if ($search_supervisor > 0) $param.="&search_supervisor=".$search_supervisor;
    -if ($search_statut != '') $param.="&search_statut=".$search_statut;
    -if ($optioncss != '') $param.='&optioncss='.$optioncss;
    -if ($mode != '')      $param.='&mode='.$mode;
    +if ($search_user != '') $param.="&search_user=".urlencode($search_user);
    +if ($search_login != '') $param.="&search_login=".urlencode($search_login);
    +if ($search_lastname != '') $param.="&search_lastname=".urlencode($search_lastname);
    +if ($search_firstname != '') $param.="&search_firstname=".urlencode($search_firstname);
    +if ($search_gender != '') $param.="&search_gender=".urlencode($search_gender);
    +if ($search_employee != '') $param.="&search_employee=".urlencode($search_employee);
    +if ($search_accountancy_code != '') $param.="&search_accountancy_code=".urlencode($search_accountancy_code);
    +if ($search_email != '') $param.="&search_email=".urlencode($search_email);
    +if ($search_supervisor > 0) $param.="&search_supervisor=".urlencode($search_supervisor);
    +if ($search_statut != '') $param.="&search_statut=".urlencode($search_statut);
    +if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss);
    +if ($mode != '')      $param.='&mode='.urlencode($mode);
    +if ($search_categ > 0) $param.="&search_categ=".urlencode($search_categ);
     // Add $param from extra fields
     include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
     
    @@ -296,6 +310,15 @@ $morehtmlright = '<a class="nohover" href="'.DOL_URL_ROOT.'/user/hierarchy.php'.
     
     print_barre_liste($text, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, "", $num, $nbtotalofrecords, 'title_generic', 0, $morehtmlright.' '.$newcardbutton, '', $limit);
     
    +if (! empty($catid))
    +{
    +    print "<div id='ways'>";
    +    $c = new Categorie($db);
    +    $ways = $c->print_all_ways(' &gt; ','user/list.php');
    +    print " &gt; ".$ways[0]."<br>\n";
    +    print "</div><br>";
    +}
    +
     if ($sall)
     {
     	foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
    @@ -304,7 +327,29 @@ if ($sall)
     
     $moreforfilter='';
     
    +// Filter on categories
    +if (! empty($conf->categorie->enabled))
    +{
    +    $moreforfilter.='<div class="divsearchfield">';
    +    $moreforfilter.=$langs->trans('Categories'). ': ';
    +    $moreforfilter.=$htmlother->select_categories(Categorie::TYPE_USER,$search_categ,'search_categ',1);
    +    $moreforfilter.='</div>';
    +}
    +
    +$parameters=array();
    +$reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
    +if (empty($reshook)) $moreforfilter.=$hookmanager->resPrint;
    +else $moreforfilter=$hookmanager->resPrint;
    +
    +if ($moreforfilter)
    +{
    +    print '<div class="liste_titre liste_titre_bydiv centpercent">';
    +    print $moreforfilter;
    +    print '</div>';
    +}
    +
     $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
    +
     $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
     
     
    @@ -629,5 +674,6 @@ print "</form>\n";
     
     $db->free($result);
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/user/logout.php b/htdocs/user/logout.php
    index ceeaf35fddf..668ca6fa4db 100644
    --- a/htdocs/user/logout.php
    +++ b/htdocs/user/logout.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004      Rodolphe Quiedeville  <rodolphe@quiedeville.org>
      * Copyright (C) 2003      Xavier Dutoit         <doli@sydesy.com>
      * Copyright (C) 2004-2009 Laurent Destailleur   <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2012 Regis Houssin         <regis.houssin@inodbox.com>
      *
      * 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
    @@ -41,12 +41,12 @@ if (!empty($_SESSION["dol_authmode"]) && ($_SESSION["dol_authmode"] == 'forceuse
     
     global $conf, $langs, $user;
     
    -// Appel des triggers
    +// Call triggers for the "security events" log
     include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
     $interface=new Interfaces($db);
     $result=$interface->run_triggers('USER_LOGOUT',$user,$user,$langs,$conf);
     if ($result < 0) { $error++; }
    -// Fin appel triggers
    +// End call triggers
     
     // Hooks on logout
     $action='';
    @@ -70,13 +70,20 @@ if (GETPOST('dol_no_mouse_hover'))       $url.=(preg_match('/\?/',$url)?'&':'?')
     if (GETPOST('dol_use_jmobile'))          $url.=(preg_match('/\?/',$url)?'&':'?').'dol_use_jmobile=1';
     
     // Destroy session
    -$prefix=dol_getprefix('');
    +/*$prefix=dol_getprefix('');
     $sessionname='DOLSESSID_'.$prefix;
     $sessiontimeout='DOLSESSTIMEOUT_'.$prefix;
     if (! empty($_COOKIE[$sessiontimeout])) ini_set('session.gc_maxlifetime',$_COOKIE[$sessiontimeout]);
     session_name($sessionname);
     session_destroy();
     dol_syslog("End of session ".$sessionname);
    +*/
    +dol_syslog("End of session ".session_id());
    +if (session_status() === PHP_SESSION_ACTIVE)
    +{
    +	session_destroy();
    +}
    +
     
     // Not sure this is required
     unset($_SESSION['dol_login']);
    diff --git a/htdocs/user/note.php b/htdocs/user/note.php
    index 87a6785615e..c4f657a29bc 100644
    --- a/htdocs/user/note.php
    +++ b/htdocs/user/note.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2015 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -158,6 +158,6 @@ if ($id)
     	print "</form>\n";
     }
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/user/notify/card.php b/htdocs/user/notify/card.php
    index 9403694faa9..f4e06075e79 100644
    --- a/htdocs/user/notify/card.php
    +++ b/htdocs/user/notify/card.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2004-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2014 Juanjo Menent	<jmenent@2byte.es>
    + * Copyright (C) 2010-2014 Juanjo Menent	    <jmenent@2byte.es>
      * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
      * Copyright (C) 2016      Abbes Bahfir         <contact@dolibarrpar.com>
      *
    @@ -67,7 +67,7 @@ if ($action == 'add')
     
         if ($actionid <= 0)
         {
    -	    setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Action")), 'errors');
    +	    setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Action")), null, 'errors');
             $error++;
         }
     
    @@ -188,7 +188,7 @@ if ($result > 0)
     
     
         // Add notification form
    -    print_fiche_titre($langs->trans("AddNewNotification"),'','');
    +    print load_fiche_titre($langs->trans("AddNewNotification"),'','');
     
         print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$id.'" method="post">';
         print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
    @@ -276,7 +276,7 @@ if ($result > 0)
         }
     
         // List of active notifications
    -    print_fiche_titre($langs->trans("ListOfActiveNotifications").' ('.$num.')','','');
    +    print load_fiche_titre($langs->trans("ListOfActiveNotifications").' ('.$num.')','','');
     
         // Line with titles
         print '<table width="100%" class="noborder">';
    @@ -507,7 +507,6 @@ if ($result > 0)
     }
     else dol_print_error('','RecordNotFound');
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/user/notify/index.html b/htdocs/user/notify/index.html
    new file mode 100644
    index 00000000000..8b137891791
    --- /dev/null
    +++ b/htdocs/user/notify/index.html
    @@ -0,0 +1 @@
    +
    diff --git a/htdocs/user/param_ihm.php b/htdocs/user/param_ihm.php
    index 9e1ef7b9444..0e53db2c954 100644
    --- a/htdocs/user/param_ihm.php
    +++ b/htdocs/user/param_ihm.php
    @@ -1,7 +1,8 @@
     <?php
     /* Copyright (C) 2005-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2010-2015 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2010-2015 Regis Houssin        <regis.houssin@inodbox.com>
      * Copyright (C) 2013	   Florian Henry        <florian.henry@open-concept.pro.com>
    + * Copyright (C) 2018      Ferran Marcet        <fmarcet@2byte.es>
      *
      * 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
    @@ -109,6 +110,12 @@ if (empty($reshook)) {
     				$tabparam["MAIN_SIZE_LISTE_LIMIT"] = '';
     			}
     
    +			if (GETPOST("check_AGENDA_DEFAULT_VIEW") == "on") {
    +				$tabparam["AGENDA_DEFAULT_VIEW"] = $_POST["AGENDA_DEFAULT_VIEW"];
    +			} else {
    +				$tabparam["AGENDA_DEFAULT_VIEW"] = '';
    +			}
    +
     			if (GETPOST("check_MAIN_THEME") == "on") {
     				$tabparam["MAIN_THEME"] = $_POST["main_theme"];
     			} else {
    @@ -137,6 +144,12 @@ if (empty($reshook)) {
     				$tabparam["THEME_ELDY_USE_HOVER"] = 0;
     			}
     
    +			if (GETPOST('check_THEME_ELDY_USE_CHECKED') == 'on') {
    +				$tabparam["THEME_ELDY_USE_CHECKED"] = 1;
    +			} else {
    +				$tabparam["THEME_ELDY_USE_CHECKED"] = 0;
    +			}
    +
     			if (GETPOST('MAIN_OPTIMIZEFORTEXTBROWSER')) {
     			    $tabparam["MAIN_OPTIMIZEFORTEXTBROWSER"] = 1;
     			} else {
    @@ -222,6 +235,9 @@ if ($action == 'edit')
                     if (jQuery("#check_SIZE_LISTE_LIMIT").prop("checked")) { jQuery("#main_size_liste_limit").removeAttr(\'disabled\'); }
             		else { jQuery("#main_size_liste_limit").attr(\'disabled\',\'disabled\'); }
     
    +                if (jQuery("#check_AGENDA_DEFAULT_VIEW").prop("checked")) { jQuery("#AGENDA_DEFAULT_VIEW").removeAttr(\'disabled\'); }
    +        		else { jQuery("#AGENDA_DEFAULT_VIEW").attr(\'disabled\',\'disabled\'); }
    +
                     if (jQuery("#check_MAIN_THEME").prop("checked")) { jQuery(".themethumbs").removeAttr(\'disabled\'); }
             		else { jQuery(".themethumbs").attr(\'disabled\',\'disabled\'); }
     
    @@ -230,8 +246,9 @@ if ($action == 'edit')
                 }
             	init_myfunc();
             	jQuery("#check_MAIN_LANDING_PAGE").click(function() { init_myfunc(); });
    -            jQuery("#check_SIZE_LISTE_LIMIT").click(function() { init_myfunc(); });
                 jQuery("#check_MAIN_LANG_DEFAULT").click(function() { init_myfunc(); });
    +            jQuery("#check_SIZE_LISTE_LIMIT").click(function() { init_myfunc(); });
    +            jQuery("#check_AGENDA_DEFAULT_VIEW").click(function() { init_myfunc(); });
                 jQuery("#check_MAIN_THEME").click(function() { init_myfunc(); });
                 jQuery("#check_THEME_ELDY_TOPMENU_BACK1").click(function() { init_myfunc(); });
                 jQuery("#check_THEME_ELDY_BACKTITLE1").click(function() { init_myfunc(); });
    @@ -250,7 +267,7 @@ if ($action == 'edit')
         print '<td>';
         print (empty($conf->global->MAIN_LANDING_PAGE)?'':$conf->global->MAIN_LANDING_PAGE);
         print '</td>';
    -    print '<td align="left" class="nowrap" width="20%"><input '.$bc[$var].' name="check_MAIN_LANDING_PAGE" id="check_MAIN_LANDING_PAGE" type="checkbox" '.(! empty($object->conf->MAIN_LANDING_PAGE)?" checked":"");
    +    print '<td class="nowrap" width="20%"><input class="oddeven" name="check_MAIN_LANDING_PAGE" id="check_MAIN_LANDING_PAGE" type="checkbox" '.(! empty($object->conf->MAIN_LANDING_PAGE)?" checked":"");
         print empty($dolibarr_main_demo)?'':' disabled="disabled"';	// Disabled for demo
         print '> '.$langs->trans("UsePersonalValue").'</td>';
         print '<td>';
    @@ -258,28 +275,40 @@ if ($action == 'edit')
         //print info_admin($langs->trans("WarningYouMayLooseAccess"), 0, 0, 0);
         print '</td></tr>';
     
    -    // Langue par defaut
    +    // Language by default
         print '<tr class="oddeven"><td>'.$langs->trans("Language").'</td>';
         print '<td>';
         $s=picto_from_langcode($conf->global->MAIN_LANG_DEFAULT);
         print $s?$s.' ':'';
         print ($conf->global->MAIN_LANG_DEFAULT=='auto'?$langs->trans("AutoDetectLang"):$langs->trans("Language_".$conf->global->MAIN_LANG_DEFAULT));
         print '</td>';
    -    print '<td align="left" class="nowrap" width="20%"><input '.$bc[$var].' name="check_MAIN_LANG_DEFAULT" id="check_MAIN_LANG_DEFAULT" type="checkbox" '.(! empty($object->conf->MAIN_LANG_DEFAULT)?" checked":"");
    +    print '<td class="nowrap" width="20%"><input class="oddeven" name="check_MAIN_LANG_DEFAULT" id="check_MAIN_LANG_DEFAULT" type="checkbox" '.(! empty($object->conf->MAIN_LANG_DEFAULT)?" checked":"");
         print empty($dolibarr_main_demo)?'':' disabled="disabled"';	// Disabled for demo
         print '> '.$langs->trans("UsePersonalValue").'</td>';
         print '<td>';
         print $formadmin->select_language((! empty($object->conf->MAIN_LANG_DEFAULT)?$object->conf->MAIN_LANG_DEFAULT:''),'main_lang_default',1,null,0,0,(! empty($dolibarr_main_demo)));
         print '</td></tr>';
     
    -    // Taille max des listes
    +    // Max size of lists
         print '<tr class="oddeven"><td>'.$langs->trans("MaxSizeList").'</td>';
         print '<td>'.$conf->global->MAIN_SIZE_LISTE_LIMIT.'</td>';
    -    print '<td align="left" class="nowrap" width="20%"><input '.$bc[$var].' name="check_SIZE_LISTE_LIMIT" id="check_SIZE_LISTE_LIMIT" type="checkbox" '.(! empty($object->conf->MAIN_SIZE_LISTE_LIMIT)?" checked":"");
    +    print '<td class="nowrap" width="20%"><input class="oddeven" name="check_SIZE_LISTE_LIMIT" id="check_SIZE_LISTE_LIMIT" type="checkbox" '.(! empty($object->conf->MAIN_SIZE_LISTE_LIMIT)?" checked":"");
         print empty($dolibarr_main_demo)?'':' disabled="disabled"';	// Disabled for demo
         print '> '.$langs->trans("UsePersonalValue").'</td>';
         print '<td><input class="flat" name="main_size_liste_limit" id="main_size_liste_limit" size="4" value="' . (! empty($object->conf->MAIN_SIZE_LISTE_LIMIT)?$object->conf->MAIN_SIZE_LISTE_LIMIT:'') . '"></td></tr>';
     
    +    // AGENDA_DEFAULT_VIEW
    +    print '<tr class="oddeven">'."\n";
    +    print '<td>'.$langs->trans("AGENDA_DEFAULT_VIEW").'</td>'."\n";
    +    print '<td align="center">&nbsp;</td>'."\n";
    +    print '<td class="nowrap" width="20%"><input class="oddeven" name="check_AGENDA_DEFAULT_VIEW" id="check_AGENDA_DEFAULT_VIEW" type="checkbox" '.(! empty($object->conf->AGENDA_DEFAULT_VIEW)?" checked":"");
    +    print empty($dolibarr_main_demo)?'':' disabled="disabled"';	// Disabled for demo
    +    print '> '.$langs->trans("UsePersonalValue").'</td>';
    +    print '<td>'."\n";
    +    $tmplist=array(''=>'&nbsp;', 'show_list'=>$langs->trans("ViewList"), 'show_month'=>$langs->trans("ViewCal"), 'show_week'=>$langs->trans("ViewWeek"), 'show_day'=>$langs->trans("ViewDay"), 'show_peruser'=>$langs->trans("ViewPerUser"));
    +    print $form->selectarray('AGENDA_DEFAULT_VIEW', $tmplist, $object->conf->AGENDA_DEFAULT_VIEW, 0, 0, 0, '');
    +    print '</td></tr>'."\n";
    +
         print '</table><br>';
     
         // Theme
    @@ -293,7 +322,6 @@ if ($action == 'edit')
         print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
         print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
         print '</div>';
    -
     }
     else
     {
    @@ -307,12 +335,11 @@ else
         print '<tr class="liste_titre"><td width="25%">'.$langs->trans("Parameter").'</td><td width="25%">'.$langs->trans("DefaultValue").'</td><td>&nbsp;</td><td>'.$langs->trans("PersonalValue").'</td></tr>';
     
         // Landing page
    -
         print '<tr class="oddeven"><td>'.$langs->trans("LandingPage").'</td>';
         print '<td>';
         print (empty($conf->global->MAIN_LANDING_PAGE)?'':$conf->global->MAIN_LANDING_PAGE);
         print '</td>';
    -    print '<td align="left" class="nowrap"><input '.$bc[$var].' name="check_MAIN_LANDING_PAGE" disabled id="check_MAIN_LANDING_PAGE" type="checkbox" '.(! empty($object->conf->MAIN_LANDING_PAGE)?" checked":"");
    +    print '<td class="nowrap"><input class="oddeven" name="check_MAIN_LANDING_PAGE" disabled id="check_MAIN_LANDING_PAGE" type="checkbox" '.(! empty($object->conf->MAIN_LANDING_PAGE)?" checked":"");
         print empty($dolibarr_main_demo)?'':' disabled="disabled"';	// Disabled for demo
         print '> '.$langs->trans("UsePersonalValue").'</td>';
         print '<td>';
    @@ -325,26 +352,35 @@ else
         print '</td></tr>';
     
         // Language
    -
         print '<tr class="oddeven"><td>'.$langs->trans("Language").'</td>';
         print '<td>';
         $s=picto_from_langcode($conf->global->MAIN_LANG_DEFAULT);
         print ($s?$s.' ':'');
         print (isset($conf->global->MAIN_LANG_DEFAULT) && $conf->global->MAIN_LANG_DEFAULT=='auto'?$langs->trans("AutoDetectLang"):$langs->trans("Language_".$conf->global->MAIN_LANG_DEFAULT));
         print '</td>';
    -    print '<td align="left" class="nowrap"><input '.$bc[$var].' type="checkbox" disabled '.(! empty($object->conf->MAIN_LANG_DEFAULT)?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
    +    print '<td class="nowrap"><input class="oddeven" type="checkbox" disabled '.(! empty($object->conf->MAIN_LANG_DEFAULT)?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
         print '<td>';
         $s=(isset($object->conf->MAIN_LANG_DEFAULT) ? picto_from_langcode($object->conf->MAIN_LANG_DEFAULT) : '');
         print ($s?$s.' ':'');
         print (isset($object->conf->MAIN_LANG_DEFAULT) && $object->conf->MAIN_LANG_DEFAULT=='auto'?$langs->trans("AutoDetectLang"):(! empty($object->conf->MAIN_LANG_DEFAULT)?$langs->trans("Language_".$object->conf->MAIN_LANG_DEFAULT):''));
         print '</td></tr>';
     
    -
    +	// Max size for lists
         print '<tr class="oddeven"><td>'.$langs->trans("MaxSizeList").'</td>';
         print '<td>'.(! empty($conf->global->MAIN_SIZE_LISTE_LIMIT)?$conf->global->MAIN_SIZE_LISTE_LIMIT:'&nbsp;').'</td>';
    -    print '<td align="left" class="nowrap" width="20%"><input '.$bc[$var].' type="checkbox" disabled '.(! empty($object->conf->MAIN_SIZE_LISTE_LIMIT)?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
    +    print '<td class="nowrap" width="20%"><input class="oddeven" type="checkbox" disabled '.(! empty($object->conf->MAIN_SIZE_LISTE_LIMIT)?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
         print '<td>' . (! empty($object->conf->MAIN_SIZE_LISTE_LIMIT)?$object->conf->MAIN_SIZE_LISTE_LIMIT:'&nbsp;') . '</td></tr>';
     
    +    // AGENDA_DEFAULT_VIEW
    +    print '<tr class="oddeven">'."\n";
    +    print '<td>'.$langs->trans("AGENDA_DEFAULT_VIEW").'</td>'."\n";
    +    print '<td align="center">&nbsp;</td>'."\n";
    +    print '<td class="nowrap" width="20%"><input class="oddeven" type="checkbox" disabled '.(! empty($object->conf->AGENDA_DEFAULT_VIEW)?" checked":"").'> '.$langs->trans("UsePersonalValue").'</td>';
    +    print '<td>'."\n";
    +    $tmplist=array(''=>'&nbsp;', 'show_list'=>$langs->trans("ViewList"), 'show_month'=>$langs->trans("ViewCal"), 'show_week'=>$langs->trans("ViewWeek"), 'show_day'=>$langs->trans("ViewDay"), 'show_peruser'=>$langs->trans("ViewPerUser"));
    +    if (! empty($object->conf->AGENDA_DEFAULT_VIEW)) print $form->selectarray('AGENDA_DEFAULT_VIEW', $tmplist, $object->conf->AGENDA_DEFAULT_VIEW, 0, 0, 0, '', 0, 0, 1);
    +    print '</td></tr>'."\n";
    +
         print '</table><br>';
     
     
    @@ -357,7 +393,7 @@ else
         print '<div class="tabsAction">';
         if (empty($user->admin) && ! empty($dolibarr_main_demo))
         {
    -        print "<a class=\"butActionRefused\" title=\"".$langs->trans("FeatureDisabledInDemo")."\" href=\"#\">".$langs->trans("Modify")."</a>";
    +        print "<a class=\"butActionRefused classfortooltip\" title=\"".$langs->trans("FeatureDisabledInDemo")."\" href=\"#\">".$langs->trans("Modify")."</a>";
         }
         else
         {
    @@ -367,12 +403,11 @@ else
             }
             else
             {
    -            print "<a class=\"butActionRefused\" title=\"".$langs->trans("NotEnoughPermissions")."\" href=\"#\">".$langs->trans("Modify")."</a>";
    +            print "<a class=\"butActionRefused classfortooltip\" title=\"".$langs->trans("NotEnoughPermissions")."\" href=\"#\">".$langs->trans("Modify")."</a>";
             }
         }
     
         print '</div>';
    -
     }
     
     if ($action == 'edit')
    @@ -380,5 +415,6 @@ if ($action == 'edit')
         print '</form>';
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/user/passwordforgotten.php b/htdocs/user/passwordforgotten.php
    index cf13529d23a..519a0ef0a98 100644
    --- a/htdocs/user/passwordforgotten.php
    +++ b/htdocs/user/passwordforgotten.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2007-2011	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2008-2012	Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2008-2012	Regis Houssin		<regis.houssin@inodbox.com>
      * Copyright (C) 2008-2011	Juanjo Menent		<jmenent@2byte.es>
      * Copyright (C) 2014       Teddy Andreotti    	<125155@supinfo.com>
      *
    @@ -177,11 +177,11 @@ $rowspan=2;
     $urllogo=DOL_URL_ROOT.'/theme/login_logo.png';
     if (! empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small))
     {
    -	$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('thumbs/'.$mysoc->logo_small);
    +	$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/thumbs/'.$mysoc->logo_small);
     }
     elseif (! empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/'.$mysoc->logo))
     {
    -	$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode($mysoc->logo);
    +	$urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&amp;modulepart=mycompany&amp;file='.urlencode('logos/'.$mysoc->logo);
     	$width=128;
     }
     elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/img/dolibarr_logo.png'))
    diff --git a/htdocs/user/perms.php b/htdocs/user/perms.php
    index 574aa44f89d..17666183319 100644
    --- a/htdocs/user/perms.php
    +++ b/htdocs/user/perms.php
    @@ -3,7 +3,7 @@
      * Copyright (C) 2002-2003	Jean-Louis Bergamo		<jlb@j1b.org>
      * Copyright (C) 2004-2015	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2004		Eric Seigne				<eric.seigne@ryxeo.com>
    - * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2017	Regis Houssin			<regis.houssin@inodbox.com>
      * Copyright (C) 2012		Juanjo Menent			<jmenent@2byte.es>
      *
      * This program is free software; you can redistribute it and/or modify
    @@ -245,7 +245,7 @@ if ($user->rights->user->user->lire || $user->admin) {
     dol_banner_tab($object,'id',$linkback,$user->rights->user->user->lire || $user->admin);
     
     
    -//print '<div class="underbanner clearboth"></div>';
    +print '<div class="underbanner clearboth"></div>';
     
     if ($user->admin) print info_admin($langs->trans("WarningOnlyPermissionOfActivatedModules"));
     // Show warning about external users
    @@ -257,11 +257,22 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
     
     
     print "\n";
    +print '<div class="div-table-responsive">';
     print '<table width="100%" class="noborder">';
     print '<tr class="liste_titre">';
     print '<td>'.$langs->trans("Module").'</td>';
    -if ($caneditperms) print '<td>&nbsp</td>';
    -print '<td align="center" width="24">&nbsp;</td>';
    +if (($caneditperms && empty($objMod->rights_admin_allowed)) || empty($object->admin))
    +{
    +	if ($caneditperms)
    +	{
    +		print '<td align="center" class="nowrap">';
    +		print '<a class="reposition" title="'.dol_escape_htmltag($langs->trans("All")).'" alt="'.dol_escape_htmltag($langs->trans("All")).'" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=addrights&amp;entity='.$entity.'&amp;module=allmodules">'.$langs->trans("All")."</a>";
    +		print '/';
    +		print '<a class="reposition" title="'.dol_escape_htmltag($langs->trans("None")).'" alt="'.dol_escape_htmltag($langs->trans("None")).'" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delrights&amp;entity='.$entity.'&amp;module=allmodules">'.$langs->trans("None")."</a>";
    +		print '</td>';
    +	}
    +	print '<td align="center" width="24">&nbsp;</td>';
    +}
     print '<td>'.$langs->trans("Permissions").'</td>';
     print '</tr>'."\n";
     
    @@ -302,21 +313,31 @@ if ($result)
         		print '<tr class="oddeven trforbreak">';
         		print '<td class="maxwidthonsmartphone tdoverflowonsmartphone">'.img_object('',$picto,'class="pictoobjectwidth"').' '.$objMod->getName();
         		print '<a name="'.$objMod->getName().'"></a></td>';
    -    		print '<td align="center" class="nowrap">';
    -    		if ($caneditperms && empty($objMod->rights_admin_allowed) || empty($object->admin))
    +    		if (($caneditperms && empty($objMod->rights_admin_allowed)) || empty($object->admin))
         		{
    -    			print '<a class="reposition" title="'.dol_escape_htmltag($langs->trans("All")).'" alt="'.dol_escape_htmltag($langs->trans("All")).'" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=addrights&amp;entity='.$entity.'&amp;module='.$obj->module.'">'.$langs->trans("All")."</a>";
    -    			print '/';
    -    			print '<a class="reposition" title="'.dol_escape_htmltag($langs->trans("None")).'" alt="'.dol_escape_htmltag($langs->trans("None")).'" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delrights&amp;entity='.$entity.'&amp;module='.$obj->module.'">'.$langs->trans("None")."</a>";
    +    			if ($caneditperms)
    +    			{
    +    				print '<td align="center" class="nowrap">';
    +    				print '<a class="reposition" title="'.dol_escape_htmltag($langs->trans("All")).'" alt="'.dol_escape_htmltag($langs->trans("All")).'" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=addrights&amp;entity='.$entity.'&amp;module='.$obj->module.'">'.$langs->trans("All")."</a>";
    +    				print '/';
    +    				print '<a class="reposition" title="'.dol_escape_htmltag($langs->trans("None")).'" alt="'.dol_escape_htmltag($langs->trans("None")).'" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delrights&amp;entity='.$entity.'&amp;module='.$obj->module.'">'.$langs->trans("None")."</a>";
    +    				print '</td>';
    +    			}
    +    		}
    +    		else
    +    		{
    +    			if ($caneditperms)
    +    			{
    +    				print '<td></td>';
    +    			}
         		}
    -    		print '</td>';
         		print '<td colspan="2">&nbsp;</td>';
         		print '</tr>'."\n";
             }
     
     		print '<tr class="oddeven">';
     
    -		// Picto and label of permission
    +		// Picto and label of module
     		print '<td class="maxwidthonsmartphone tdoverflowonsmartphone">'.img_object('',$picto,'class="pictoobjectwidth"').' '.$objMod->getName().'</td>';
     
             // Permission and tick
    @@ -375,6 +396,7 @@ if ($result)
             	print '<td>&nbsp</td>';
             }
     
    +        // Label
     		$permlabel=($conf->global->MAIN_USE_ADVANCED_PERMS && ($langs->trans("PermissionAdvanced".$obj->id)!=("PermissionAdvanced".$obj->id))?$langs->trans("PermissionAdvanced".$obj->id):(($langs->trans("Permission".$obj->id)!=("Permission".$obj->id))?$langs->trans("Permission".$obj->id):$langs->trans($obj->libelle)));
     		print '<td class="maxwidthonsmartphone">'.$permlabel.'</td>';
     
    @@ -385,6 +407,7 @@ if ($result)
     }
     else dol_print_error($db);
     print '</table>';
    +print '</div>';
     
     $parameters=array();
     $reshook=$hookmanager->executeHooks('insertExtraFooter',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
    @@ -393,6 +416,6 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
     
     dol_fiche_end();
     
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/variants/admin/admin.php b/htdocs/variants/admin/admin.php
    index dc039bf6d5f..43700b281c7 100644
    --- a/htdocs/variants/admin/admin.php
    +++ b/htdocs/variants/admin/admin.php
    @@ -1,6 +1,6 @@
     <?php
    -
    -/* Copyright (C) 2016	Marcos García	<marcosgdf@gmail.com>
    +/* Copyright (C) 2016   Marcos García   <marcosgdf@gmail.com>
    + * Copyright (C) 2018   Frédéric France <frederic.france@netlogic.fr>
      *
      * 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
    @@ -31,17 +31,16 @@ if ($_POST) {
     	$value = GETPOST('PRODUIT_ATTRIBUTES_HIDECHILD');
     
     	if (dolibarr_set_const($db, 'PRODUIT_ATTRIBUTES_HIDECHILD', $value, 'chaine', 0, '', $conf->entity)) {
    -		setEventMessage($langs->trans('RecordSaved'));
    +		setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     	} else {
    -		setEventMessage($langs->trans('CoreErrorMessage'), 'errors');
    +		setEventMessages($langs->trans('CoreErrorMessage'), null, 'errors');
     	}
     
            if (dolibarr_set_const($db, 'PRODUIT_ATTRIBUTES_SEPARATOR', GETPOST('PRODUIT_ATTRIBUTES_SEPARATOR'), 'chaine', 0, '', $conf->entity)) {
    -               setEventMessage($langs->trans('RecordSaved'));
    +               setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
            } else {
    -               setEventMessage($langs->trans('CoreErrorMessage'), 'errors');
    +               setEventMessages($langs->trans('CoreErrorMessage'), null, 'errors');
            }
    -
     }
     
     $title = $langs->trans('ModuleSetup').' '.$langs->trans('ProductAttributes');
    @@ -62,16 +61,15 @@ print '<tr class="oddeven"><td>'.$langs->trans('HideProductCombinations').'</td>
     print $form->selectyesno("PRODUIT_ATTRIBUTES_HIDECHILD",$conf->global->PRODUIT_ATTRIBUTES_HIDECHILD,1).'</td></tr>';
     print '<tr class="oddeven"><td>'.$langs->trans('CombinationsSeparator').'</td>';
     if(isset($conf->global->PRODUIT_ATTRIBUTES_SEPARATOR)) {
    -       $separator = $conf->global->PRODUIT_ATTRIBUTES_SEPARATOR;
    +    $separator = $conf->global->PRODUIT_ATTRIBUTES_SEPARATOR;
     } else {
    -       $separator = "_";
    +    $separator = "_";
     }
     print '<td align="right"><input size="3" type="text" class="flat" name="PRODUIT_ATTRIBUTES_SEPARATOR" value="'.$separator.'"></td></tr>';
     print '</table>';
     print '<br><div style="text-align: center"><input type="submit" value="'.$langs->trans('Save').'" class="button"></div>';
     print '</form>';
     
    +// End of page
     llxFooter();
    -
     $db->close();
    -
    diff --git a/htdocs/variants/card.php b/htdocs/variants/card.php
    index 547a82d0f63..374341c51f6 100644
    --- a/htdocs/variants/card.php
    +++ b/htdocs/variants/card.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2016	Marcos García	<marcosgdf@gmail.com>
    +/* Copyright (C) 2016   Marcos García   <marcosgdf@gmail.com>
    + * Copyright (C) 2018   Frédéric France <frederic.france@netlogic.fr>
      *
      * 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
    @@ -50,9 +51,9 @@ if ($_POST) {
     		$object->label = $label;
     
     		if ($object->update($user) < 1) {
    -			setEventMessage($langs->trans('CoreErrorMessage'), 'errors');
    +			setEventMessages($langs->trans('CoreErrorMessage'), $object->errors, 'errors');
     		} else {
    -			setEventMessage($langs->trans('RecordSaved'));
    +			setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     			header('Location: '.dol_buildpath('/variants/card.php?id='.$id, 2));
     			exit();
     		}
    @@ -77,9 +78,9 @@ if ($_POST) {
     			if (! $error)
     			{
     				if ($objectval->update($user) > 0) {
    -					setEventMessage($langs->trans('RecordSaved'));
    +					setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     				} else {
    -					setEventMessage($langs->trans('CoreErrorMessage'), 'errors');
    +					setEventMessage($langs->trans('CoreErrorMessage'), $objectval->errors, 'errors');
     				}
     			}
     		}
    @@ -87,7 +88,6 @@ if ($_POST) {
     		header('Location: '.dol_buildpath('/variants/card.php?id='.$object->id, 2));
     		exit();
     	}
    -
     }
     
     if ($confirm == 'yes') {
    @@ -99,11 +99,11 @@ if ($confirm == 'yes') {
     
     		if ($res < 1 || ($object->delete() < 1)) {
     			$db->rollback();
    -			setEventMessage($langs->trans('CoreErrorMessage'), 'errors');
    +			setEventMessages($langs->trans('CoreErrorMessage'), $object->errors, 'errors');
     			header('Location: '.dol_buildpath('/variants/card.php?id='.$object->id, 2));
     		} else {
     			$db->commit();
    -			setEventMessage($langs->trans('RecordSaved'));
    +			setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     			header('Location: '.dol_buildpath('/variants/list.php', 2));
     		}
     		exit();
    @@ -113,9 +113,9 @@ if ($confirm == 'yes') {
     		if ($objectval->fetch($valueid) > 0) {
     
     			if ($objectval->delete() < 1) {
    -				setEventMessage($langs->trans('CoreErrorMessage'), 'errors');
    +				setEventMessages($langs->trans('CoreErrorMessage'), $objectval->errors, 'errors');
     			} else {
    -				setEventMessage($langs->trans('RecordSaved'));
    +				setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     			}
     
     			header('Location: '.dol_buildpath('/variants/card.php?id='.$object->id, 2));
    @@ -132,11 +132,10 @@ if ($confirm == 'yes') {
     $langs->load('products');
     
     $title = $langs->trans('ProductAttributeName', dol_htmlentities($object->label));
    -$var = false;
     
     llxHeader('', $title);
     
    -//print_fiche_titre($title);
    +//print load_fiche_titre($title);
     
     $h=0;
     $head[$h][0] = DOL_URL_ROOT.'/variants/card.php?id='.$object->id;
    @@ -242,7 +241,7 @@ if ($action == 'edit') { ?>
     
     	<?php
     
    -	print_fiche_titre($langs->trans("PossibleValues"));
    +	print load_fiche_titre($langs->trans("PossibleValues"));
     
     	if ($action == 'edit_value') {
     		print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
    @@ -299,5 +298,6 @@ if ($action == 'edit') { ?>
     	<?php
     }
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/variants/class/ProductAttribute.class.php b/htdocs/variants/class/ProductAttribute.class.php
    index 0fa25cdba6e..bdaaff20988 100644
    --- a/htdocs/variants/class/ProductAttribute.class.php
    +++ b/htdocs/variants/class/ProductAttribute.class.php
    @@ -53,6 +53,11 @@ class ProductAttribute
     	 */
     	public $rang;
     
    +    /**
    +     * Constructor
    +     *
    +     * @param   DoliDB $db     Database handler
    +     */
     	public function __construct(DoliDB $db)
     	{
     		global $conf;
    diff --git a/htdocs/variants/class/ProductAttributeValue.class.php b/htdocs/variants/class/ProductAttributeValue.class.php
    index 9b455851507..2988fd9715e 100644
    --- a/htdocs/variants/class/ProductAttributeValue.class.php
    +++ b/htdocs/variants/class/ProductAttributeValue.class.php
    @@ -52,8 +52,13 @@ class ProductAttributeValue
     	 */
     	public $value;
     
    -	public function __construct(DoliDB $db)
    -	{
    +    /**
    +     * Constructor
    +     *
    +     * @param   DoliDB $db     Database handler
    +     */
    +    public function __construct(DoliDB $db)
    +    {
     		global $conf;
     
     		$this->db = $db;
    diff --git a/htdocs/variants/class/ProductCombination.class.php b/htdocs/variants/class/ProductCombination.class.php
    index 92bba2f70f8..ef9ec4997f3 100644
    --- a/htdocs/variants/class/ProductCombination.class.php
    +++ b/htdocs/variants/class/ProductCombination.class.php
    @@ -1,6 +1,7 @@
     <?php
     
     /* Copyright (C) 2016	Marcos García	<marcosgdf@gmail.com>
    + * Copyright (C) 2018	Juanjo Menent	<jmenent@2byte.es>
      *
      * 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
    @@ -70,7 +71,12 @@ class ProductCombination
     	 */
     	public $entity;
     
    -	public function __construct(DoliDB $db)
    +    /**
    +     * Constructor
    +     *
    +     * @param   DoliDB $db     Database handler
    +     */
    +    public function __construct(DoliDB $db)
     	{
     		global $conf;
     
    @@ -324,6 +330,8 @@ class ProductCombination
     		$child->price_autogen = $parent->price_autogen;
     		$child->weight = $parent->weight + $this->variation_weight;
     		$child->weight_units = $parent->weight_units;
    +		$varlabel = $this->getCombinationLabel($this->fk_product_child);
    +		$child->label = $parent->label.$varlabel;
     
     		if ($child->update($child->id, $user) > 0) {
     
    @@ -332,14 +340,33 @@ class ProductCombination
     
     			// MultiPrix
     			if (! empty($conf->global->PRODUIT_MULTIPRICES)) {
    -				$new_type = $parent->multiprices_base_type[1];
    -				$new_min_price = $parent->multiprices_min[1];
    -				$new_psq = $parent->multiprices_recuperableonly[1];
    +				for ($i=1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++)
    +				{
    +					if ($parent->multiprices[$i] != '') {
    +						$new_type = $parent->multiprices_base_type[$i];
    +						$new_min_price = $parent->multiprices_min[$i];
    +						if ($parent->prices_by_qty_list[$i]) {
    +							$new_psq = 1;
    +						} else {
    +							$new_psq = 0;
    +						}
     
    -				if ($new_type == 'TTC') {
    -					$new_price = $parent->multiprices_ttc[1];
    -				} else {
    -					$new_price = $parent->multiprices[1];
    +						if ($new_type == 'TTC') {
    +							$new_price = $parent->multiprices_ttc[$i];
    +						} else {
    +							$new_price = $parent->multiprices[$i];
    +						}
    +
    +						if ($this->variation_price_percentage) {
    +							if ($new_price != 0) {
    +								$new_price *= 1 + ($this->variation_price / 100);
    +							}
    +						} else {
    +							$new_price += $this->variation_price;
    +						}
    +
    +						$child->updatePrice($new_price, $new_type, $user, $new_vat, $new_min_price, $i, $new_npr, $new_psq);
    +					}
     				}
     			} else {
     				$new_type = $parent->price_base_type;
    @@ -351,15 +378,17 @@ class ProductCombination
     				} else {
     					$new_price = $parent->price;
     				}
    -			}
     
    -			if ($this->variation_price_percentage) {
    -				$new_price *= 1 + ($this->variation_price/100);
    -			} else {
    -				$new_price += $this->variation_price;
    -			}
    +				if ($this->variation_price_percentage) {
    +					if ($new_price != 0) {
    +						$new_price *= 1 + ($this->variation_price / 100);
    +					}
    +				} else {
    +					$new_price += $this->variation_price;
    +				}
     
    -			$child->updatePrice($new_price, $new_type, $user, $new_vat, $new_min_price, 1, $new_npr, $new_psq);
    +				$child->updatePrice($new_price, $new_type, $user, $new_vat, $new_min_price, 1, $new_npr, $new_psq);
    +			}
     
     			$this->db->commit();
     
    @@ -629,7 +658,7 @@ WHERE c.fk_product_parent = ".(int) $productid." AND p.tosell = 1";
     		}
     
     		$db->commit();
    -		return 1;
    +		return $newproduct->id;
     	}
     
     	/**
    @@ -676,4 +705,38 @@ WHERE c.fk_product_parent = ".(int) $productid." AND p.tosell = 1";
     
     		return 1;
     	}
    +
    +	/**
    +	 * Return label for combinations
    +	 * @param 	int 	$prod_child		id of child
    +	 * @return 	string					combination label
    +	 */
    +	public function getCombinationLabel($prod_child)
    +	{
    +		$label = '';
    +		$sql = 'SELECT pav.value AS label';
    +		$sql.= ' FROM '.MAIN_DB_PREFIX.'product_attribute_combination pac';
    +		$sql.= ' INNER JOIN '.MAIN_DB_PREFIX.'product_attribute_combination2val pac2v ON pac2v.fk_prod_combination=pac.rowid';
    +		$sql.= ' INNER JOIN '.MAIN_DB_PREFIX.'product_attribute_value pav ON pav.rowid=pac2v.fk_prod_attr_val';
    +		$sql.= ' WHERE pac.fk_product_child='.$prod_child;
    +
    +		$resql = $this->db->query($sql);
    +		if ($resql) {
    +			$num = $this->db->num_rows($resql);
    +
    +			$i = 0;
    +
    +			while ($i < $num)
    +			{
    +				$obj = $this->db->fetch_object($resql);
    +
    +				if ($obj->label)
    +				{
    +					$label.=' '.$obj->label;
    +				}
    +				$i++;
    +			}
    +		}
    +		return $label;
    +	}
     }
    diff --git a/htdocs/variants/class/ProductCombination2ValuePair.class.php b/htdocs/variants/class/ProductCombination2ValuePair.class.php
    index 874cedb101a..7332670f684 100644
    --- a/htdocs/variants/class/ProductCombination2ValuePair.class.php
    +++ b/htdocs/variants/class/ProductCombination2ValuePair.class.php
    @@ -52,10 +52,15 @@ class ProductCombination2ValuePair
     	 */
     	public $fk_prod_attr_val;
     
    -	public function __construct(DoliDB $db)
    -	{
    -		$this->db = $db;
    -	}
    +    /**
    +     * Constructor
    +     *
    +     * @param   DoliDB $db     Database handler
    +     */
    +    public function __construct(DoliDB $db)
    +    {
    +        $this->db = $db;
    +    }
     
     	/**
     	 * Translates this class to a human-readable string
    diff --git a/htdocs/variants/combinations.php b/htdocs/variants/combinations.php
    index dbc413542c4..31731261360 100644
    --- a/htdocs/variants/combinations.php
    +++ b/htdocs/variants/combinations.php
    @@ -1,6 +1,7 @@
     <?php
    -/* Copyright (C) 2016	Marcos García	      <marcosgdf@gmail.com>
    - * Copyright (C) 2017	Laurent Destailleur   <eldy@users.sourceforge.net>
    +/* Copyright (C) 2016   Marcos García       <marcosgdf@gmail.com>
    + * Copyright (C) 2017   Laurent Destailleur <eldy@users.sourceforge.net>
    + * Copyright (C) 2018   Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -24,10 +25,8 @@ require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductAttributeValue.class.php'
     require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php';
     require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination2ValuePair.class.php';
     
    -$langs->load("products");
    -$langs->load("other");
    +$langs->loadLangs(array("products", "other"));
     
    -$var = false;
     $id = GETPOST('id', 'int');
     $valueid = GETPOST('valueid', 'int');
     $ref = GETPOST('ref');
    @@ -104,7 +103,7 @@ if ($_POST) {
             $features = $_SESSION['addvariant_'.$object->id];
     
     		if (!$features) {
    -			setEventMessage($langs->trans('ErrorFieldsRequired'), 'errors');
    +			setEventMessages($langs->trans('ErrorFieldsRequired'), null, 'errors');
     		}
     		else
     		{
    @@ -147,7 +146,7 @@ if ($_POST) {
     				$result = $prodcomb->createProductCombination($object, $sanit_features, array(), $price_impact_percent, $price_impact, $weight_impact);
     				if ($result > 0)
     				{
    -					setEventMessage($langs->trans('RecordSaved'));
    +					setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     					unset($_SESSION['addvariant_'.$object->id]);
     
     					$db->commit();
    @@ -211,12 +210,10 @@ if ($_POST) {
     			} else {
     				setEventMessages($langs->trans('CoreErrorMessage'), null, 'errors');
     			}
    -
     		} else {
     			$db->commit();
    -			setEventMessage($langs->trans('RecordSaved'));
    +			setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     		}
    -
     	}
     	elseif ($valueid > 0) {
     
    @@ -230,7 +227,7 @@ if ($_POST) {
     		$prodcomb->variation_weight = $weight_impact;
     
     		if ($prodcomb->update($user) > 0) {
    -			setEventMessage($langs->trans('RecordSaved'));
    +			setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     			header('Location: '.dol_buildpath('/variants/combinations.php?id='.$id, 2));
     			exit();
     		} else {
    @@ -250,13 +247,13 @@ if ($action === 'confirm_deletecombination') {
     
     		if ($prodcomb->delete($user) > 0 && $prodstatic->fetch($prodcomb->fk_product_child) > 0 && $prodstatic->delete($user) > 0) {
     			$db->commit();
    -			setEventMessage($langs->trans('RecordSaved'));
    +			setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     			header('Location: '.dol_buildpath('/variants/combinations.php?id='.$object->id, 2));
     			exit();
     		}
     
     		$db->rollback();
    -		setEventMessage($langs->trans('ProductCombinationAlreadyUsed'), 'errors');
    +		setEventMessages($langs->trans('ProductCombinationAlreadyUsed'), null, 'errors');
     		$action = '';
     	}
     } elseif ($action === 'edit') {
    @@ -284,14 +281,12 @@ if ($action === 'confirm_deletecombination') {
     				header('Location: '.dol_buildpath('/variants/combinations.php?id='.$prodstatic->id, 2));
     				exit();
     			} else {
    -				setEventMessage($langs->trans('ErrorCopyProductCombinations'), 'errors');
    +				setEventMessages($langs->trans('ErrorCopyProductCombinations'), null, 'errors');
     			}
     		}
    -
     	} else {
    -		setEventMessage($langs->trans('ErrorDestinationProductNotFound'), 'errors');
    +		setEventMessages($langs->trans('ErrorDestinationProductNotFound'), null, 'errors');
     	}
    -
     }
     
     
    @@ -319,6 +314,66 @@ if (! empty($id) || ! empty($ref))
     
         dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref', '', '', '', 0, '', '', 1);
     
    +	print '<div class="fichecenter">';
    +
    +	print '<div class="underbanner clearboth"></div>';
    +	print '<table class="border tableforfield" width="100%">';
    +
    +    // TVA
    +    print '<tr><td class="titlefield">' . $langs->trans("DefaultTaxRate") . '</td><td>';
    +
    +    $positiverates='';
    +    if (price2num($object->tva_tx))       $positiverates.=($positiverates?'/':'').price2num($object->tva_tx);
    +    if (price2num($object->localtax1_type)) $positiverates.=($positiverates?'/':'').price2num($object->localtax1_tx);
    +    if (price2num($object->localtax2_type)) $positiverates.=($positiverates?'/':'').price2num($object->localtax2_tx);
    +    if (empty($positiverates)) $positiverates='0';
    +    echo vatrate($positiverates.($object->default_vat_code?' ('.$object->default_vat_code.')':''), '%', $object->tva_npr);
    +    /*
    +    if ($object->default_vat_code)
    +    {
    +        print vatrate($object->tva_tx, true) . ' ('.$object->default_vat_code.')';
    +    }
    +    else print vatrate($object->tva_tx, true, $object->tva_npr, true);*/
    +    print '</td></tr>';
    +
    +    // Price
    +    print '<tr><td>' . $langs->trans("SellingPrice") . '</td><td>';
    +    if ($object->price_base_type == 'TTC') {
    +        print price($object->price_ttc) . ' ' . $langs->trans($object->price_base_type);
    +    } else {
    +        print price($object->price) . ' ' . $langs->trans($object->price_base_type);
    +    }
    +    print '</td></tr>';
    +
    +    // Price minimum
    +    print '<tr><td>' . $langs->trans("MinPrice") . '</td><td>';
    +    if ($object->price_base_type == 'TTC') {
    +        print price($object->price_min_ttc) . ' ' . $langs->trans($object->price_base_type);
    +    } else {
    +        print price($object->price_min) . ' ' . $langs->trans($object->price_base_type);
    +    }
    +    print '</td></tr>';
    +
    +	// Weight
    +	print '<tr><td>'.$langs->trans("Weight").'</td><td>';
    +	if ($object->weight != '')
    +	{
    +		print $object->weight." ".measuring_units_string($object->weight_units,"weight");
    +	}
    +	else
    +	{
    +		print '&nbsp;';
    +	}
    +	print "</td></tr>\n";
    +
    +
    +
    +
    +	print "</table>\n";
    +
    +	print '</div>';
    +	print '<div style="clear:both"></div>';
    +
     	dol_fiche_end();
     
     
    @@ -327,7 +382,7 @@ if (! empty($id) || ! empty($ref))
     
     		if ($action == 'add') {
     			$title = $langs->trans('NewProductCombination');
    -			print dol_fiche_head();
    +			//print dol_fiche_head();
     			$features = $_SESSION['addvariant_'.$object->id];
     			//First, sanitize
     			print '<div id="parttoaddvariant">';
    @@ -348,11 +403,12 @@ if (! empty($id) || ! empty($ref))
     				}
     			}
     			print '</div>';
    -			print dol_fiche_end();
    +			print '<br><br>';
    +			//print dol_fiche_end();
     		} else {
     			$title = $langs->trans('EditProductCombination');
     		}
    -		print_fiche_titre($title);
    +		print load_fiche_titre($title);
     
     		if ($action == 'add') {
     			$prodattr_all = $prodattr->fetchAll();
    @@ -449,7 +505,7 @@ if (! empty($id) || ! empty($ref))
                     if($valueid > 0) {
                         print '<input type="hidden" name="valueid" value="' . $valueid .'">'."\n";
                     }
    -                    
    +
     		print dol_fiche_head();
     
     		?>
    @@ -634,12 +690,14 @@ if (! empty($id) || ! empty($ref))
     		print '<div class="tabsAction">';
     
     		print '	<div class="inline-block divButAction">';
    -		if ($productCombinations) {
    -		    print '<a href="combinations.php?id='.$object->id.'&action=copy" class="butAction">'.$langs->trans('PropagateVariant').'</a>';
    -		}
     
     		print '<a href="combinations.php?id='.$object->id.'&action=add" class="butAction">'.$langs->trans('NewProductCombination').'</a>'; // NewVariant
     
    +		if ($productCombinations)
    +		{
    +			print '<a href="combinations.php?id='.$object->id.'&action=copy" class="butAction">'.$langs->trans('PropagateVariant').'</a>';
    +		}
    +
     		// Too much bugged page.
     		/*
     		print '<a href="generator.php?id='.$object->id.'" class="butAction">'.$langs->trans('ProductCombinationGenerator').'</a>';
    @@ -773,7 +831,6 @@ if (! empty($id) || ! empty($ref))
     	// not found
     }
     
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/variants/create.php b/htdocs/variants/create.php
    index f1a34a835b6..4f2d53bb75f 100644
    --- a/htdocs/variants/create.php
    +++ b/htdocs/variants/create.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2016	Marcos García	<marcosgdf@gmail.com>
    +/* Copyright (C) 2016   Marcos García   <marcosgdf@gmail.com>
    + * Copyright (C) 2018   Frédéric France <frederic.france@netlogic.fr>
      *
      * 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
    @@ -29,7 +30,7 @@ $backtopage = GETPOST('backtopage', 'alpha');
     
     if ($_POST) {
     	if (empty($ref) || empty($label)) {
    -		setEventMessage($langs->trans('ErrorFieldsRequired'), 'errors');
    +		setEventMessages($langs->trans('ErrorFieldsRequired'), null, 'errors');
     	} else {
     
     		$prodattr = new ProductAttribute($db);
    @@ -38,7 +39,7 @@ if ($_POST) {
     
     		$resid = $prodattr->create($user);
     		if ($resid > 0) {
    -			setEventMessage($langs->trans('RecordSaved'));
    +			setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     			if ($backtopage)
     			{
     				header('Location: '.$backtopage);
    @@ -49,7 +50,7 @@ if ($_POST) {
     			}
     			exit;
     		} else {
    -			setEventMessage($langs->trans('ErrorRecordAlreadyExists'), 'errors');
    +			setEventMessages($langs->trans('ErrorRecordAlreadyExists'), $prodattr->errors, 'errors');
     		}
     	}
     }
    @@ -65,7 +66,7 @@ $title = $langs->trans('NewProductAttribute');
     
     llxHeader('', $title);
     
    -print_fiche_titre($title);
    +print load_fiche_titre($title);
     
     dol_fiche_head();
     
    @@ -97,5 +98,6 @@ print '<div class="center"><input type="submit" class="button" value="'.$langs->
     
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/variants/create_val.php b/htdocs/variants/create_val.php
    index b290182a042..86372df9f59 100644
    --- a/htdocs/variants/create_val.php
    +++ b/htdocs/variants/create_val.php
    @@ -1,5 +1,6 @@
     <?php
     /* Copyright (C) 2016	Marcos García	<marcosgdf@gmail.com>
    + * Copyright (C) 2018   Frédéric France <frederic.france@netlogic.fr>
      *
      * 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
    @@ -58,7 +59,7 @@ if ($cancel)
     if ($action == 'add')
     {
     	if (empty($ref) || empty($value)) {
    -		setEventMessage($langs->trans('ErrorFieldsRequired'), 'errors');
    +		setEventMessages($langs->trans('ErrorFieldsRequired'), null, 'errors');
     	} else {
     
     		$objectval->fk_product_attribute = $object->id;
    @@ -66,11 +67,11 @@ if ($action == 'add')
     		$objectval->value = $value;
     
     		if ($objectval->create($user) > 0) {
    -			setEventMessage($langs->trans('RecordSaved'));
    +			setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     			header('Location: '.DOL_URL_ROOT.'/variants/card.php?id='.$object->id);
     			exit();
     		} else {
    -			setEventMessage($langs->trans('ErrorCreatingProductAttributeValue'), 'errors');
    +			setEventMessages($langs->trans('ErrorCreatingProductAttributeValue'), $objectval->errors, 'errors');
     		}
     	}
     }
    @@ -117,7 +118,7 @@ print '<input type="hidden" name="action" value="add">';
     print '<input type="hidden" name="id" value="'.$object->id.'">';
     print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
     
    -print_fiche_titre($langs->trans('NewProductAttributeValue'));
    +print load_fiche_titre($langs->trans('NewProductAttributeValue'));
     
     dol_fiche_head();
     
    @@ -144,5 +145,6 @@ print '</div>';
     
     print '</form>';
     
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/variants/generator.php b/htdocs/variants/generator.php
    index 4daa2d8f45a..420c90147ea 100644
    --- a/htdocs/variants/generator.php
    +++ b/htdocs/variants/generator.php
    @@ -1,6 +1,6 @@
     <?php
    -
    -/* Copyright (C) 2016	Marcos García	<marcosgdf@gmail.com>
    +/* Copyright (C) 2016   Marcos García   <marcosgdf@gmail.com>
    + * Copyright (C) 2018   Frédéric France <frederic.france@netlogic.fr>
      *
      * 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
    @@ -24,8 +24,7 @@ require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductAttributeValue.class.php'
     require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php';
     require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination2ValuePair.class.php';
     
    -$langs->load("products");
    -$langs->load('other');
    +$langs->loadLangs(array("products", "other"));
     
     $id = GETPOST('id', 'int');
     $ref = GETPOST('ref');
    @@ -103,7 +102,7 @@ if ($_POST) {
     
     			$res = 1;
     
    -			foreach (cartesianArray($adapted_values) as $currcomb) 
    +			foreach (cartesianArray($adapted_values) as $currcomb)
     			{
     				$res = $combination->createProductCombination($product, $currcomb, $sanitized_values, $price_var_percent);
     				if ($res < 0) {
    @@ -115,18 +114,17 @@ if ($_POST) {
     
     			if ($res > 0) {
     				$db->commit();
    -				setEventMessage($langs->trans('RecordSaved'));
    +				setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
     				header('Location: '.dol_buildpath('/variants/combinations.php?id='.$id, 2));
     				exit;
     			}
     		} else {
    -			setEventMessage($langs->trans('ErrorDeletingGeneratedProducts'), 'errors');
    +			setEventMessages($langs->trans('ErrorDeletingGeneratedProducts'), null, 'errors');
     		}
     
     		$db->rollback();
    -
     	} else {
    -		setEventMessage($langs->trans('ErrorFieldsRequired'), 'errors');
    +		setEventMessages($langs->trans('ErrorFieldsRequired'), null, 'errors');
     	}
     }
     
    @@ -146,21 +144,21 @@ if (! empty($id) || ! empty($ref)) {
     	{
     		$showbarcode=empty($conf->barcode->enabled)?0:1;
     		if (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->barcode->lire_advance)) $showbarcode=0;
    -		 
    +
     		$head=product_prepare_head($object);
     		$titre=$langs->trans("CardProduct".$object->type);
     		$picto=($object->type== Product::TYPE_SERVICE?'service':'product');
     		dol_fiche_head($head, 'combinations', $titre, 0, $picto);
    -		 
    +
     		$linkback = '<a href="'.DOL_URL_ROOT.'/product/list.php?type='.$object->type.'">'.$langs->trans("BackToList").'</a>';
     		$object->next_prev_filter=" fk_product_type = ".$object->type;
    -		 
    +
     		dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref', '', '', '', 0, '', '', 1);
    -		
    +
     		dol_fiche_end();
     	}
     
    -	print_fiche_titre($langs->trans('ProductCombinationGenerator'));
    +	print load_fiche_titre($langs->trans('ProductCombinationGenerator'));
     
     	$dictionary_attr = array();
     
    @@ -374,5 +372,8 @@ if (! empty($id) || ! empty($ref)) {
     
     	<?php
     
    -	llxFooter();
    -}
    \ No newline at end of file
    +  // End of page
    +  llxFooter();
    +}
    +
    +$db->close();
    diff --git a/htdocs/variants/list.php b/htdocs/variants/list.php
    index af859175946..de6ac5c8959 100644
    --- a/htdocs/variants/list.php
    +++ b/htdocs/variants/list.php
    @@ -50,7 +50,6 @@ if ($action == 'up') {
     
     $langs->load('products');
     
    -$var = false;
     $title = $langs->trans($langs->trans('ProductAttributes'));
     
     $variants = $object->fetchAll();
    @@ -122,7 +121,7 @@ $forcereloadpage=empty($conf->global->MAIN_FORCE_RELOAD_PAGE)?0:1;
     			<th class="liste_titre" colspan="2"></th>
     		</tr>
     		<?php foreach ($variants as $key => $attribute): ?>
    -		<tr id="row-<?php echo $attribute->id ?>" <?php echo $bcdd[$var] ?>>
    +		<tr id="row-<?php echo $attribute->id ?>" class="drag drop oddeven">
     			<td><a href="card.php?id=<?php echo $attribute->id ?>"><?php echo dol_htmlentities($attribute->ref) ?></a></td>
     			<td><a href="card.php?id=<?php echo $attribute->id ?>"><?php echo dol_htmlentities($attribute->label) ?></a></td>
     			<td align="right"><?php echo $attribute->countChildValues() ?></td>
    @@ -131,7 +130,7 @@ $forcereloadpage=empty($conf->global->MAIN_FORCE_RELOAD_PAGE)?0:1;
     				<a href="card.php?id=<?php echo $attribute->id ?>&action=edit"><?php echo img_edit() ?></a>
     				<a href="card.php?id=<?php echo $attribute->id ?>&action=delete"><?php echo img_delete() ?></a>
     			</td>
    -			<td align="center" class="linecolmove tdlineupdown">
    +			<td class="center linecolmove tdlineupdown">
     				<?php if ($key > 0): ?>
     				<a class="lineupdown"
     				   href="<?php echo $_SERVER['PHP_SELF'] ?>?action=up&amp;rowid=<?php echo $attribute->id ?>"><?php echo img_up('default', 0, 'imgupforline'); ?></a>
    @@ -143,7 +142,6 @@ $forcereloadpage=empty($conf->global->MAIN_FORCE_RELOAD_PAGE)?0:1;
     			</td>
     		</tr>
     		<?php
    -			$var = !$var;
     			endforeach
     		?>
     
    @@ -151,4 +149,6 @@ $forcereloadpage=empty($conf->global->MAIN_FORCE_RELOAD_PAGE)?0:1;
     
     <?php
     
    -llxFooter();
    \ No newline at end of file
    +// End of page
    +llxFooter();
    +$db->close();
    \ No newline at end of file
    diff --git a/htdocs/viewimage.php b/htdocs/viewimage.php
    index ae2a538ca04..ea29fe0d8bd 100644
    --- a/htdocs/viewimage.php
    +++ b/htdocs/viewimage.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
      * Copyright (C) 2005-2016 Laurent Destailleur  <eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2016 Regis Houssin        <regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2016 Regis Houssin        <regis.houssin@inodbox.com>
      *
      * 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
    @@ -37,7 +37,8 @@ if (! defined('NOREQUIREHTML'))		define('NOREQUIREHTML','1');
     if (! defined('NOREQUIREAJAX'))		define('NOREQUIREAJAX','1');
     
     // Some value of modulepart can be used to get resources that are public so no login are required.
    -if ((isset($_GET["modulepart"]) && ($_GET["modulepart"] == 'mycompany' || $_GET["modulepart"] == 'companylogo')))
    +// Note that only directory logo is free to access without login.
    +if (isset($_GET["modulepart"]) && $_GET["modulepart"] == 'mycompany' && preg_match('/^\/?logos\//', $_GET['file']))
     {
     	if (! defined("NOLOGIN"))		define("NOLOGIN",1);
     	if (! defined("NOCSRFCHECK"))	define("NOCSRFCHECK",1);	// We accept to go on this page from external web site.
    @@ -56,28 +57,32 @@ if ((isset($_GET["modulepart"]) && $_GET["modulepart"] == 'medias'))
     	if (! defined("NOLOGIN"))		define("NOLOGIN",1);
     	if (! defined("NOCSRFCHECK"))	define("NOCSRFCHECK",1);	// We accept to go on this page from external web site.
     	if (! defined("NOIPCHECK"))		define("NOIPCHECK",1);		// Do not check IP defined into conf $dolibarr_main_restrict_ip
    -	// For multicompany
    -	$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
    -	if (is_numeric($entity)) define("DOLENTITY", $entity);
     }
     
    +// For multicompany
    +$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
    +if (is_numeric($entity)) define("DOLENTITY", $entity);
    +
     /**
      * Header empty
      *
      * @return	void
      */
    -function llxHeader() { }
    +function llxHeader()
    +{
    +}
     /**
      * Footer empty
      *
      * @return	void
      */
    -function llxFooter() { }
    +function llxFooter()
    +{
    +}
     
     require 'main.inc.php';	// Load $user and permissions
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     
    -
     $action=GETPOST('action','alpha');
     $original_file=GETPOST('file','alpha');		// Do not use urldecode here ($_GET are already decoded by PHP).
     $hashp=GETPOST('hashp','aZ09');
    @@ -91,6 +96,7 @@ if (empty($original_file) && empty($hashp) && $modulepart != 'barcode') accessfo
     if ($modulepart == 'fckeditor') $modulepart='medias';   // For backward compatibility
     
     
    +
     /*
      * Actions
      */
    @@ -125,8 +131,14 @@ if (! empty($hashp))
     	if ($result > 0)
     	{
     		$tmp = explode('/', $ecmfile->filepath, 2);		// $ecmfile->filepath is relative to document directory
    -		$moduleparttocheck = $tmp[0];
    -		if ($modulepart)	// Not required for link using public hashp
    +		// filepath can be 'users/X' or 'X/propale/PR11111'
    +		if (is_numeric($tmp[0])) // If first tmp is numeric, it is subdir of company for multicompany, we take next part.
    +		{
    +			$tmp = explode('/', $tmp[1], 2);
    +		}
    +		$moduleparttocheck = $tmp[0];	// moduleparttocheck is first part of path
    +
    +		if ($modulepart)	// Not required, so often not defined, for link using public hashp parameter.
     		{
     			if ($moduleparttocheck == $modulepart)
     			{
    diff --git a/htdocs/webservices/admin/index.php b/htdocs/webservices/admin/index.php
    index e0e549cf2a7..3cd9aacdac8 100644
    --- a/htdocs/webservices/admin/index.php
    +++ b/htdocs/webservices/admin/index.php
    @@ -2,7 +2,7 @@
     /* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2010	Laurent Destailleur		<eldy@users.sourceforge.org>
      * Copyright (C) 2011		Juanjo Menent			<jmenent@2byte.es>
    - * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -156,6 +156,6 @@ if (! empty($conf->use_javascript_ajax))
     	print '</script>';
     }
     
    -
    +// End of page
     llxFooter();
     $db->close();
    diff --git a/htdocs/webservices/index.php b/htdocs/webservices/index.php
    index adbdb7a25f7..e0a1ba998c8 100644
    --- a/htdocs/webservices/index.php
    +++ b/htdocs/webservices/index.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2006-2011	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2011		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2011		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/htdocs/webservices/server_actioncomm.php b/htdocs/webservices/server_actioncomm.php
    index a00e014d88a..a9edcb0557a 100644
    --- a/htdocs/webservices/server_actioncomm.php
    +++ b/htdocs/webservices/server_actioncomm.php
    @@ -25,12 +25,12 @@
     
     if (! defined("NOCSRFCHECK"))    define("NOCSRFCHECK",'1');
     
    -require_once("../master.inc.php");
    -require_once(NUSOAP_PATH.'/nusoap.php');		// Include SOAP
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/ws.lib.php");
    +require "../master.inc.php";
    +require_once NUSOAP_PATH.'/nusoap.php';		// Include SOAP
    +require_once DOL_DOCUMENT_ROOT."/core/lib/ws.lib.php";
     
    -require_once(DOL_DOCUMENT_ROOT."/comm/action/class/actioncomm.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/comm/action/class/cactioncomm.class.php");
    +require_once DOL_DOCUMENT_ROOT."/comm/action/class/actioncomm.class.php";
    +require_once DOL_DOCUMENT_ROOT."/comm/action/class/cactioncomm.class.php";
     require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     
     
    @@ -378,7 +378,6 @@ function getListActionCommType($authentication)
     				 $objectresp = array(
     			    	'result'=>array('result_code'=>'OK', 'result_label'=>''),
     			        'actioncommtypes'=>$resultarray);
    -
     			}
     			else
     			{
    diff --git a/htdocs/webservices/server_category.php b/htdocs/webservices/server_category.php
    index 9ef07dda952..a941c2aceff 100644
    --- a/htdocs/webservices/server_category.php
    +++ b/htdocs/webservices/server_category.php
    @@ -23,10 +23,10 @@
     
     if (! defined("NOCSRFCHECK"))    define("NOCSRFCHECK",'1');
     
    -require_once("../master.inc.php");
    -require_once(NUSOAP_PATH.'/nusoap.php');		// Include SOAP
    +require "../master.inc.php";
    +require_once NUSOAP_PATH.'/nusoap.php';		// Include SOAP
     require_once DOL_DOCUMENT_ROOT.'/core/lib/ws.lib.php';
    -require_once(DOL_DOCUMENT_ROOT."/categories/class/categorie.class.php");
    +require_once DOL_DOCUMENT_ROOT."/categories/class/categorie.class.php";
     
     
     dol_syslog("Call Dolibarr webservices interfaces");
    @@ -92,7 +92,7 @@ $server->wsdl->addComplexType(
     /*
      * Les catégories filles, sous tableau dez la catégorie
      */
    - $server->wsdl->addComplexType(
    +$server->wsdl->addComplexType(
         'FillesArray',
         'complexType',
         'array',
    @@ -108,38 +108,38 @@ $server->wsdl->addComplexType(
      /*
       * Image of product
      */
    - $server->wsdl->addComplexType(
    - 		'PhotosArray',
    - 		'complexType',
    - 		'array',
    - 		'sequence',
    - 		'',
    - 		array(
    - 				'image' => array(
    - 						'name' => 'image',
    - 						'type' => 'tns:image',
    - 						'minOccurs' => '0',
    - 						'maxOccurs' => 'unbounded'
    - 				)
    - 		)
    - );
    +$server->wsdl->addComplexType(
    +		'PhotosArray',
    +		'complexType',
    +		'array',
    +		'sequence',
    +		'',
    +		array(
    +				'image' => array(
    +						'name' => 'image',
    +						'type' => 'tns:image',
    +						'minOccurs' => '0',
    +						'maxOccurs' => 'unbounded'
    +				)
    +		)
    +);
     
      /*
       * An image
      */
    - $server->wsdl->addComplexType(
    - 		'image',
    - 		'complexType',
    - 		'struct',
    - 		'all',
    - 		'',
    - 		array(
    - 				'photo' => array('name'=>'photo','type'=>'xsd:string'),
    - 				'photo_vignette' => array('name'=>'photo_vignette','type'=>'xsd:string'),
    - 				'imgWidth' => array('name'=>'imgWidth','type'=>'xsd:string'),
    - 				'imgHeight' => array('name'=>'imgHeight','type'=>'xsd:string')
    - 		)
    - );
    +$server->wsdl->addComplexType(
    +		'image',
    +		'complexType',
    +		'struct',
    +		'all',
    +		'',
    +		array(
    +				'photo' => array('name'=>'photo','type'=>'xsd:string'),
    +				'photo_vignette' => array('name'=>'photo_vignette','type'=>'xsd:string'),
    +				'imgWidth' => array('name'=>'imgWidth','type'=>'xsd:string'),
    +				'imgHeight' => array('name'=>'imgHeight','type'=>'xsd:string')
    +		)
    +);
     
     /*
      * Retour
    @@ -250,9 +250,7 @@ function getCategory($authentication,$id)
     								'dir' => $pdir,
     								'photos' => $fille->liste_photos($dir,$nbmax=10)
     							);
    -
     						}
    -
     					}
     
     			    // Create
    diff --git a/htdocs/webservices/server_contact.php b/htdocs/webservices/server_contact.php
    index 6791864ba8b..edb429af0d3 100644
    --- a/htdocs/webservices/server_contact.php
    +++ b/htdocs/webservices/server_contact.php
    @@ -23,11 +23,11 @@
     
     if (! defined("NOCSRFCHECK"))    define("NOCSRFCHECK",'1');
     
    -require_once("../master.inc.php");
    -require_once(NUSOAP_PATH.'/nusoap.php');		// Include SOAP
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/ws.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/contact/class/contact.class.php");
    -require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
    +require "../master.inc.php";
    +require_once NUSOAP_PATH.'/nusoap.php';		// Include SOAP
    +require_once DOL_DOCUMENT_ROOT."/core/lib/ws.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/contact/class/contact.class.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/extrafields.class.php";
     
     
     dol_syslog("Call Contact webservices interfaces");
    @@ -105,7 +105,6 @@ $contact_fields = array(
     	'birthday' => array('name'=>'birthday','type'=>'xsd:string'),
     	'default_lang' => array('name'=>'default_lang','type'=>'xsd:string'),
     	'note' => array('name'=>'note','type'=>'xsd:string'),
    -	'no_email' => array('name'=>'no_email','type'=>'xsd:string'),
     	'ref_facturation' => array('name'=>'ref_facturation','type'=>'xsd:string'),
     	'ref_contrat' => array('name'=>'ref_contrat','type'=>'xsd:string'),
     	'ref_commande' => array('name'=>'ref_commande','type'=>'xsd:string'),
    @@ -295,7 +294,6 @@ function getContact($authentication,$id,$ref_ext)
     	            	'birthday' => $contact->birthday,
     	            	'default_lang' => $contact->default_lang,
     	            	'note' => $contact->note,
    -	            	'no_email' => $contact->no_email,
     	            	'ref_facturation' => $contact->ref_facturation,
     	            	'ref_contrat' => $contact->ref_contrat,
     	            	'ref_commande' => $contact->ref_commande,
    @@ -406,7 +404,6 @@ function createContact($authentication,$contact)
     		$newobject->birthday=$contact['birthday'];
     		$newobject->default_lang=$contact['default_lang'];
     		$newobject->note=$contact['note'];
    -		$newobject->no_email=$contact['no_email'];
     		$newobject->ref_facturation=$contact['ref_facturation'];
     		$newobject->ref_contrat=$contact['ref_contrat'];
     		$newobject->ref_commande=$contact['ref_commande'];
    @@ -496,7 +493,7 @@ function getContactsForThirdParty($authentication,$idthirdparty)
     		$sql.= " c.fk_departement,";
     		$sql.= " c.birthday,";
     		$sql.= " c.poste, c.phone, c.phone_perso, c.phone_mobile, c.fax, c.email, c.jabberid,";
    -		//$sql.= " c.priv, c.note, c.default_lang, c.no_email, c.canvas,";
    +		//$sql.= " c.priv, c.note, c.default_lang, c.canvas,";
     		$sql.= " co.label as country, co.code as country_code,";
     		$sql.= " d.nom as state, d.code_departement as state_code,";
     		$sql.= " u.rowid as user_id, u.login as user_login,";
    @@ -557,7 +554,6 @@ function getContactsForThirdParty($authentication,$idthirdparty)
     					'birthday' => $contact->birthday?$contact->birthday:'',
     					'default_lang' => $contact->default_lang?$contact->default_lang:'',
     					'note' => $contact->note?$contact->note:'',
    -					'no_email' => $contact->no_email?$contact->no_email:'',
     					'ref_facturation' => $contact->ref_facturation?$contact->ref_facturation:'',
     					'ref_contrat' => $contact->ref_contrat?$contact->ref_contrat:'',
     					'ref_commande' => $contact->ref_commande?$contact->ref_commande:'',
    diff --git a/htdocs/webservices/server_invoice.php b/htdocs/webservices/server_invoice.php
    index c93605ab2ea..4e8d3ec41d8 100644
    --- a/htdocs/webservices/server_invoice.php
    +++ b/htdocs/webservices/server_invoice.php
    @@ -23,7 +23,7 @@
     
     if (! defined("NOCSRFCHECK"))    define("NOCSRFCHECK",'1');
     
    -require_once '../master.inc.php';
    +require '../master.inc.php';
     require_once NUSOAP_PATH.'/nusoap.php';		// Include SOAP
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/ws.lib.php';
    @@ -426,9 +426,9 @@ function getInvoicesForThirdParty($authentication,$idthirdparty)
     	{
     		$linesinvoice=array();
     
    -		$sql ='SELECT f.rowid as facid, facnumber as ref, ref_ext, type, fk_statut as status, total_ttc, total, tva';
    +		$sql ='SELECT f.rowid as facid, ref as ref, ref_ext, type, fk_statut as status, total_ttc, total, tva';
     		$sql.=' FROM '.MAIN_DB_PREFIX.'facture as f';
    -		$sql.=" WHERE f.entity = ".$conf->entity;
    +		$sql.=" WHERE f.entity IN (".getEntity('invoice').")";
     		if ($idthirdparty != 'all' ) $sql.=" AND f.fk_soc = ".$db->escape($idthirdparty);
     
     		$resql=$db->query($sql);
    @@ -635,7 +635,6 @@ function createInvoice($authentication,$invoice)
                 $errorlabel=$new_invoice->error;
                 dol_syslog("Function: createInvoice error while creating".$errorlabel);
             }
    -
         }
     
         if ($error)
    @@ -707,7 +706,6 @@ function createInvoiceFromOrder($authentication,$id_order='', $ref_order='', $re
     						$error++;
     						dol_syslog("Webservice server_invoice:: invoice creation from order failed", LOG_ERR);
     					}
    -
     				}
     			}
     			else
    diff --git a/htdocs/webservices/server_order.php b/htdocs/webservices/server_order.php
    index eb42dd74ce4..c74b5660873 100644
    --- a/htdocs/webservices/server_order.php
    +++ b/htdocs/webservices/server_order.php
    @@ -1,7 +1,7 @@
     <?php
     /* Copyright (C) 2006-2016	Laurent Destailleur	<eldy@users.sourceforge.net>
      * Copyright (C) 2012		JF FERRY			<jfefe@aternatik.fr>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
     *
     * 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,14 +22,13 @@
      *       \brief      File that is entry point to call Dolibarr WebServices
      */
     
    -if (! defined("NOCSRFCHECK"))    define("NOCSRFCHECK",'1');
    +if (! defined("NOCSRFCHECK")) define("NOCSRFCHECK",'1');
     
    -require_once '../master.inc.php';
    +require '../master.inc.php';
     require_once NUSOAP_PATH.'/nusoap.php';        // Include SOAP
     require_once DOL_DOCUMENT_ROOT.'/core/lib/ws.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
    -
    -require_once(DOL_DOCUMENT_ROOT."/commande/class/commande.class.php");
    +require_once DOL_DOCUMENT_ROOT."/commande/class/commande.class.php";
     
     
     dol_syslog("Call Dolibarr webservices interfaces");
    @@ -660,7 +659,7 @@ function createOrder($authentication,$order)
     {
     	global $db,$conf,$langs;
     
    -	require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    +	include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     
     	$now=dol_now();
     
    @@ -750,7 +749,6 @@ function createOrder($authentication,$order)
     		{
     			dol_syslog("Webservice server_order:: order creation failed", LOG_ERR);
     			$error++;
    -
     		}
     
     		if ($order['status'] == 1)   // We want order to have status validated
    @@ -778,7 +776,6 @@ function createOrder($authentication,$order)
     			$errorcode='KO';
     			$errorlabel=$newobject->error;
     		}
    -
     	}
     
     	if ($error)
    @@ -832,7 +829,6 @@ function validOrder($authentication,$id='',$id_warehouse=0)
     					// Define output language
     					$outputlangs = $langs;
     					$order->generateDocument($order->modelpdf, $outputlangs);
    -
     				}
     				else
     				{
    @@ -849,7 +845,6 @@ function validOrder($authentication,$id='',$id_warehouse=0)
     				$errorcode='KO';
     				$errorlabel=$newobject->error;
     			}
    -
     		}
     		else
     		{
    @@ -858,7 +853,6 @@ function validOrder($authentication,$id='',$id_warehouse=0)
     			$errorcode='KO';
     			$errorlabel=$newobject->error;
     		}
    -
     	}
     
     	if ($error)
    @@ -927,7 +921,6 @@ function updateOrder($authentication,$order)
     						// Define output language
     						$outputlangs = $langs;
     						$object->generateDocument($order->modelpdf, $outputlangs);
    -
     					}
     				}
     				if ($order['status'] == 0)  $result=$object->set_reopen($fuser);
    diff --git a/htdocs/webservices/server_other.php b/htdocs/webservices/server_other.php
    index 8ac519ae87e..895e5d55af4 100644
    --- a/htdocs/webservices/server_other.php
    +++ b/htdocs/webservices/server_other.php
    @@ -22,7 +22,7 @@
     
     if (! defined("NOCSRFCHECK"))    define("NOCSRFCHECK",'1');
     
    -require_once '../master.inc.php';
    +require '../master.inc.php';
     require_once NUSOAP_PATH.'/nusoap.php';        // Include SOAP
     require_once DOL_DOCUMENT_ROOT.'/core/lib/ws.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
    diff --git a/htdocs/webservices/server_payment.php b/htdocs/webservices/server_payment.php
    index d6cd261a686..9356b6a558a 100644
    --- a/htdocs/webservices/server_payment.php
    +++ b/htdocs/webservices/server_payment.php
    @@ -27,7 +27,7 @@
     // This is to make Dolibarr working with Plesk
     set_include_path($_SERVER['DOCUMENT_ROOT'].'/htdocs');
     
    -require_once '../master.inc.php';
    +require '../master.inc.php';
     require_once NUSOAP_PATH.'/nusoap.php';                // Include SOAP
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/ws.lib.php';
    diff --git a/htdocs/webservices/server_productorservice.php b/htdocs/webservices/server_productorservice.php
    index 6094d2e0798..1e301350063 100644
    --- a/htdocs/webservices/server_productorservice.php
    +++ b/htdocs/webservices/server_productorservice.php
    @@ -25,14 +25,14 @@
     
     if (! defined("NOCSRFCHECK"))    define("NOCSRFCHECK",'1');
     
    -require_once '../master.inc.php';
    +require '../master.inc.php';
     require_once NUSOAP_PATH.'/nusoap.php';        // Include SOAP
     require_once DOL_DOCUMENT_ROOT.'/core/lib/ws.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
     
     require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
    -require_once(DOL_DOCUMENT_ROOT."/categories/class/categorie.class.php");
    +require_once DOL_DOCUMENT_ROOT."/categories/class/categorie.class.php";
     require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
     
     
    @@ -570,7 +570,7 @@ function createProductOrService($authentication,$product)
             	// Update stock if stock count is provided and differs from database after creation or update
     			if (isset($product['stock_real']) && $product['stock_real'] != '' && ! empty($conf->global->stock->enabled))
     			{
    -				require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
    +				include_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
     
     				$savstockreal=$newobject->stock_reel;
     				$newobject->load_stock('novirtual,nobatch');		// This overwrite ->stock_reel, surely 0 because we have just created product
    @@ -617,7 +617,6 @@ function createProductOrService($authentication,$product)
                 $errorcode='KO';
                 $errorlabel=$newobject->error;
             }
    -
         }
     
         if ($error)
    @@ -739,7 +738,7 @@ function updateProductOrService($authentication,$product)
             	// Update stock if stock count is provided and differs from database after creation or update
     			if (isset($product['stock_real']) && $product['stock_real'] != '' && ! empty($conf->global->stock->enabled))
     			{
    -				require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
    +				include_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
     
     				$savstockreal=$newobject->stock_reel;
     				$newobject->load_stock('novirtual,nobatch');		// This overwrite ->stock_reel
    @@ -806,7 +805,6 @@ function updateProductOrService($authentication,$product)
                 $errorcode='KO';
                 $errorlabel=$newobject->error;
             }
    -
         }
     
         if ($error)
    @@ -1105,7 +1103,6 @@ function getProductsForCategory($authentication,$id,$lang='')
     
     							$iProduct++;
     						}
    -
     					}
     
     					// Retour
    @@ -1113,14 +1110,12 @@ function getProductsForCategory($authentication,$id,$lang='')
     					'result'=>array('result_code'=>'OK', 'result_label'=>''),
     					'products'=> $products
     					);
    -
     				}
     				else
     				{
     					$errorcode='NORECORDS_FOR_ASSOCIATION'; $errorlabel='No products associated'.$sql;
     					$objectresp = array('result'=>array('result_code' => $errorcode, 'result_label' => $errorlabel));
     					dol_syslog("getProductsForCategory:: ".$c->error, LOG_DEBUG);
    -
     				}
     			}
     			else
    diff --git a/htdocs/webservices/server_project.php b/htdocs/webservices/server_project.php
    index bc26de37601..822081011aa 100644
    --- a/htdocs/webservices/server_project.php
    +++ b/htdocs/webservices/server_project.php
    @@ -23,7 +23,7 @@
     
     if (! defined("NOCSRFCHECK"))    define("NOCSRFCHECK",'1');
     
    -require_once '../master.inc.php';
    +require '../master.inc.php';
     require_once NUSOAP_PATH.'/nusoap.php';        // Include SOAP
     require_once DOL_DOCUMENT_ROOT.'/core/lib/ws.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
    diff --git a/htdocs/webservices/server_supplier_invoice.php b/htdocs/webservices/server_supplier_invoice.php
    index fcfd73270aa..50e5498dbe1 100644
    --- a/htdocs/webservices/server_supplier_invoice.php
    +++ b/htdocs/webservices/server_supplier_invoice.php
    @@ -22,11 +22,10 @@
     
     if (! defined("NOCSRFCHECK"))    define("NOCSRFCHECK",'1');
     
    -require_once '../master.inc.php';
    +require '../master.inc.php';
     require_once NUSOAP_PATH.'/nusoap.php';        // Include SOAP
     require_once DOL_DOCUMENT_ROOT.'/core/lib/ws.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
    -
     require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
     
     
    diff --git a/htdocs/webservices/server_thirdparty.php b/htdocs/webservices/server_thirdparty.php
    index c2236368d18..7f0b590ee9a 100644
    --- a/htdocs/webservices/server_thirdparty.php
    +++ b/htdocs/webservices/server_thirdparty.php
    @@ -816,7 +816,6 @@ function deleteThirdParty($authentication,$id='',$ref='',$ref_ext='')
     			{
     				$error++;
     				$errorcode='NOT_FOUND'; $errorlabel='Object not found for id='.$id.' nor ref='.$ref.' nor ref_ext='.$ref_ext;
    -
     			}
     		}
     		else
    diff --git a/htdocs/webservices/server_user.php b/htdocs/webservices/server_user.php
    index 60bf95bd20c..81702c55456 100644
    --- a/htdocs/webservices/server_user.php
    +++ b/htdocs/webservices/server_user.php
    @@ -681,7 +681,8 @@ function createUserFromThirdparty($authentication,$thirdpartywithuser)
      * @param	array		$shortuser			Array of login/password info
      * @return	mixed
      */
    -function setUserPassword($authentication,$shortuser) {
    +function setUserPassword($authentication,$shortuser)
    +{
     
     	global $db,$conf,$langs;
     
    @@ -732,7 +733,6 @@ function setUserPassword($authentication,$shortuser) {
     				$error++;
     				$errorcode='NOT_FOUND'; $errorlabel='User not found';
     			}
    -
     		}
     		else
     		{
    diff --git a/htdocs/website/class/website.class.php b/htdocs/website/class/website.class.php
    index c3d18b889e7..0e6ee83aa9d 100644
    --- a/htdocs/website/class/website.class.php
    +++ b/htdocs/website/class/website.class.php
    @@ -1,9 +1,9 @@
     <?php
    -/* Copyright (C) 2007-2012  Laurent Destailleur <eldy@users.sourceforge.net>
    +/* Copyright (C) 2007-2018  Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2014       Juanjo Menent       <jmenent@2byte.es>
      * Copyright (C) 2015       Florian Henry       <florian.henry@open-concept.pro>
      * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
    - * Copyright (C) ---Put here your own copyright and developer email---
    + * Copyright (C) 2018       Frédéric France         <frederic.france@netlogic.fr>
      *
      * 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
    @@ -39,47 +39,54 @@ class Website extends CommonObject
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'website';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'website';
    +
     	/**
     	 * @var array  Does website support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
     	 */
     	public $ismultientitymanaged = 1;
    +
     	/**
     	 * @var string String with name of icon for website. Must be the part after the 'object_' into object_myobject.png
     	 */
     	public $picto = 'globe';
     
     	/**
    -	 * @var int
    +	 * @var int Entity
     	 */
     	public $entity;
    +
     	/**
    -	 * @var string
    +	 * @var string Ref
     	 */
     	public $ref;
    +
     	/**
    -	 * @var string
    +	 * @var string description
     	 */
     	public $description;
    +
     	/**
    -	 * @var int
    +	 * @var int Status
     	 */
     	public $status;
    +
     	/**
     	 * @var mixed
     	 */
     	public $date_creation;
    -	/**
    -	 * @var mixed
    -	 */
    -	public $tms = '';
    +	public $date_modification;
    +
     	/**
     	 * @var integer
     	 */
     	public $fk_default_home;
    +	public $fk_user_creat;
    +
     	/**
     	 * @var string
     	 */
    @@ -127,11 +134,17 @@ class Website extends CommonObject
     		if (isset($this->status)) {
     			 $this->status = trim($this->status);
     		}
    -		if (empty($this->date_creation)) $this->date_creation = $now;
    -		if (empty($this->date_modification)) $this->date_modification = $now;
    +		if (empty($this->date_creation)) {
    +            $this->date_creation = $now;
    +        }
    +		if (empty($this->date_modification)) {
    +            $this->date_modification = $now;
    +        }
     
     		// Check parameters
    -		if (empty($this->entity)) { $this->entity = $conf->entity; }
    +		if (empty($this->entity)) {
    +            $this->entity = $conf->entity;
    +        }
     
     		// Insert request
     		$sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . '(';
    @@ -141,19 +154,19 @@ class Website extends CommonObject
     		$sql.= 'status,';
     		$sql.= 'fk_default_home,';
     		$sql.= 'virtualhost,';
    -		$sql.= 'fk_user_create,';
    +		$sql.= 'fk_user_creat,';
     		$sql.= 'date_creation,';
     		$sql.= 'tms';
     		$sql .= ') VALUES (';
     		$sql .= ' '.((empty($this->entity) && $this->entity != '0')?'NULL':$this->entity).',';
     		$sql .= ' '.(! isset($this->ref)?'NULL':"'".$this->db->escape($this->ref)."'").',';
     		$sql .= ' '.(! isset($this->description)?'NULL':"'".$this->db->escape($this->description)."'").',';
    -		$sql .= ' '.(! isset($this->status)?'NULL':$this->status).',';
    +		$sql .= ' '.(! isset($this->status)?'1':$this->status).',';
     		$sql .= ' '.(! isset($this->fk_default_home)?'NULL':$this->fk_default_home).',';
     		$sql .= ' '.(! isset($this->virtualhost)?'NULL':"'".$this->db->escape($this->virtualhost)."'").",";
    -		$sql .= ' '.(! isset($this->fk_user_create)?$user->id:$this->fk_user_create).',';
    +		$sql .= ' '.(! isset($this->fk_user_creat)?$user->id:$this->fk_user_creat).',';
     		$sql .= ' '.(! isset($this->date_creation) || dol_strlen($this->date_creation)==0?'NULL':"'".$this->db->idate($this->date_creation)."'").",";
    -		$sql .= ' '.(! isset($this->date_modification) || dol_strlen($this->date_modification)==0?'NULL':"'".$this->db->idate($this->date_creation)."'");
    +		$sql .= ' '.(! isset($this->date_modification) || dol_strlen($this->date_modification)==0?'NULL':"'".$this->db->idate($this->date_modification)."'");
     		$sql .= ')';
     
     		$this->db->begin();
    @@ -168,16 +181,16 @@ class Website extends CommonObject
     		if (!$error) {
     			$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element);
     
    -			if (!$notrigger) {
    -				// Uncomment this and change MYOBJECT to your own tag if you
    -				// want this action to call a trigger.
    +            // Uncomment this and change MYOBJECT to your own tag if you
    +            // want this action to call a trigger.
    +            // if (!$notrigger) {
     
    -				//// Call triggers
    -				//$result=$this->call_trigger('MYOBJECT_CREATE',$user);
    -				//if ($result < 0) $error++;
    -				//// End call triggers
    -			}
    -		}
    +            //     // Call triggers
    +            //     $result = $this->call_trigger('MYOBJECT_CREATE',$user);
    +            //     if ($result < 0) $error++;
    +            //     // End call triggers
    +            // }
    +        }
     
     		// Commit or rollback
     		if ($error) {
    @@ -210,7 +223,7 @@ class Website extends CommonObject
     		$sql .= " t.status,";
     		$sql .= " t.fk_default_home,";
     		$sql .= " t.virtualhost,";
    -		$sql .= " t.fk_user_create,";
    +		$sql .= " t.fk_user_creat,";
     		$sql .= " t.fk_user_modif,";
     		$sql .= " t.date_creation,";
     		$sql .= " t.tms as date_modification";
    @@ -236,7 +249,7 @@ class Website extends CommonObject
     				$this->status = $obj->status;
     				$this->fk_default_home = $obj->fk_default_home;
     				$this->virtualhost = $obj->virtualhost;
    -				$this->fk_user_create = $obj->fk_user_create;
    +				$this->fk_user_creat = $obj->fk_user_creat;
     				$this->fk_user_modif = $obj->fk_user_modif;
     				$this->date_creation = $this->db->jdate($obj->date_creation);
     				$this->date_modification = $this->db->jdate($obj->date_modification);
    @@ -300,7 +313,7 @@ class Website extends CommonObject
     		$sql .= " t.status,";
     		$sql .= " t.fk_default_home,";
     		$sql .= " t.virtualhost,";
    -		$sql .= " t.fk_user_create,";
    +		$sql .= " t.fk_user_creat,";
     		$sql .= " t.fk_user_modif,";
     		$sql .= " t.date_creation,";
     		$sql .= " t.tms as date_modification";
    @@ -340,7 +353,7 @@ class Website extends CommonObject
     				$line->status = $obj->status;
     				$line->fk_default_home = $obj->fk_default_home;
     				$line->virtualhost = $obj->virtualhost;
    -				$this->fk_user_create = $obj->fk_user_create;
    +				$this->fk_user_creat = $obj->fk_user_creat;
     				$this->fk_user_modif = $obj->fk_user_modif;
     				$line->date_creation = $this->db->jdate($obj->date_creation);
     				$line->date_modification = $this->db->jdate($obj->date_modification);
    @@ -474,6 +487,14 @@ class Website extends CommonObject
     			}
     		}
     
    +		if (! $error && ! empty($this->ref))
    +		{
    +			global $dolibarr_main_data_root;
    +			$pathofwebsite=$dolibarr_main_data_root.'/website/'.$this->ref;
    +
    +			dol_delete_dir_recursive($pathofwebsite);
    +		}
    +
     		// Commit or rollback
     		if ($error) {
     			$this->db->rollback();
    @@ -493,13 +514,15 @@ class Website extends CommonObject
     	 * @param	User	$user		User making the clone
     	 * @param 	int 	$fromid 	Id of object to clone
     	 * @param	string	$newref		New ref
    +	 * @param	string	$newlang	New language
     	 * @return 	mixed 				New object created, <0 if KO
     	 */
    -	public function createFromClone($user, $fromid, $newref)
    +	public function createFromClone($user, $fromid, $newref, $newlang='')
     	{
             global $hookmanager, $langs;
     		global $dolibarr_main_data_root;
     
    +		$now = dol_now();
     		$error=0;
     
             dol_syslog(__METHOD__, LOG_DEBUG);
    @@ -535,6 +558,8 @@ class Website extends CommonObject
     		$object->ref=$newref;
     		$object->fk_default_home=0;
     		$object->virtualhost='';
    +		$object->date_creation = $now;
    +		$object->fk_user_creat = $user->id;
     
     		// Create clone
     		$object->context['createfromclone'] = 'createfromclone';
    @@ -568,11 +593,11 @@ class Website extends CommonObject
     			{
     				// Delete old file
     				$filetplold=$pathofwebsitenew.'/page'.$pageid.'.tpl.php';
    -				dol_syslog("We regenerate alias page new name=".$filealias.", old name=".$fileoldalias);
     				dol_delete_file($filetplold);
     
     				// Create new file
    -				$objectpagenew = $objectpageold->createFromClone($user, $pageid, $objectpageold->pageurl, '', 0, $object->id);
    +				$objectpagenew = $objectpageold->createFromClone($user, $pageid, $objectpageold->pageurl, '', 0, $object->id, 1);
    +
     				//print $pageid.' = '.$objectpageold->pageurl.' -> '.$objectpagenew->id.' = '.$objectpagenew->pageurl.'<br>';
     				if (is_object($objectpagenew) && $objectpagenew->pageurl)
     				{
    @@ -607,19 +632,22 @@ class Website extends CommonObject
     		    if (! $res > 0)
     		    {
     		        $error++;
    -		        setEventMessages($objectpage->error, $objectpage->errors, 'errors');
    +		        setEventMessages($object->error, $object->errors, 'errors');
     		    }
     
     		    if (! $error)
     		    {
     		    	$filetpl=$pathofwebsitenew.'/page'.$newidforhome.'.tpl.php';
    +		    	$filewrapper=$pathofwebsitenew.'/wrapper.php';
     
     		    	// Generate the index.php page to be the home page
     		    	//-------------------------------------------------
    -		    	$result = dolSaveIndexPage($pathofwebsitenew, $fileindex, $filetpl);
    +		    	$result = dolSaveIndexPage($pathofwebsitenew, $fileindex, $filetpl, $filewrapper);
     		    }
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (!$error) {
     			$this->db->commit();
    @@ -684,6 +712,7 @@ class Website extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un status donne
     	 *
    @@ -693,35 +722,30 @@ class Website extends CommonObject
     	 */
     	function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
    -		if ($mode == 0)
    -		{
    -			$prefix='';
    -			if ($status == 1) return $langs->trans('Enabled');
    -			if ($status == 0) return $langs->trans('Disabled');
    -		}
    -		if ($mode == 1)
    +		if ($mode == 0 || $mode == 1)
     		{
     			if ($status == 1) return $langs->trans('Enabled');
     			if ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
     			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
    @@ -747,12 +771,10 @@ class Website extends CommonObject
     		$this->status = '';
     		$this->fk_default_home = null;
     		$this->virtualhost = 'http://myvirtualhost';
    -		$this->fk_user_create = $user->id;
    +		$this->fk_user_creat = $user->id;
     		$this->fk_user_modif = $user->id;
     		$this->date_creation = dol_now();
     		$this->tms = dol_now();
    -
    -
     	}
     
     
    @@ -763,7 +785,7 @@ class Website extends CommonObject
     	 */
     	function exportWebSite()
     	{
    -		global $conf;
    +		global $conf, $mysoc;
     
     		$website = $this;
     
    @@ -781,25 +803,33 @@ class Website extends CommonObject
     			return '';
     		}
     
    -		$srcdir = $conf->website->dir_output.'/'.$website->ref;
    -		$destdir = $conf->website->dir_temp.'/'.$website->ref.'/containers';
    +		$destdir = $conf->website->dir_temp.'/'.$website->ref;
    +
    +		dol_syslog("Clear temp dir ".$destdir);
    +		$count=0; $countreallydeleted=0;
    +		$counttodelete = dol_delete_dir_recursive($destdir, $count, 1, 0, $countreallydeleted);
    +		if ($counttodelete != $countreallydeleted)
    +		{
    +			setEventMessages("Failed to clean temp directory ".$destdir, null, 'errors');
    +			return '';
    +		}
     
     		$arrayreplacement=array();
     
    -		dol_syslog("Clear temp dir ".$destdir);
    -		dol_delete_dir($destdir, 1);
    +		$srcdir = $conf->website->dir_output.'/'.$website->ref;
    +		$destdir = $conf->website->dir_temp.'/'.$website->ref.'/containers';
     
     		dol_syslog("Copy content from ".$srcdir." into ".$destdir);
     		dolCopyDir($srcdir, $destdir, 0, 1, $arrayreplacement);
     
     		$srcdir = DOL_DATA_ROOT.'/medias/image/'.$website->ref;
    -		$destdir = $conf->website->dir_temp.'/'.$website->ref.'/medias/image/'.$website->ref;
    +		$destdir = $conf->website->dir_temp.'/'.$website->ref.'/medias/image/websitekey';
     
     		dol_syslog("Copy content from ".$srcdir." into ".$destdir);
     		dolCopyDir($srcdir, $destdir, 0, 1, $arrayreplacement);
     
     		$srcdir = DOL_DATA_ROOT.'/medias/js/'.$website->ref;
    -		$destdir = $conf->website->dir_temp.'/'.$website->ref.'/medias/js/'.$website->ref;
    +		$destdir = $conf->website->dir_temp.'/'.$website->ref.'/medias/js/websitekey';
     
     		dol_syslog("Copy content from ".$srcdir." into ".$destdir);
     		dolCopyDir($srcdir, $destdir, 0, 1, $arrayreplacement);
    @@ -844,25 +874,66 @@ class Website extends CommonObject
     		}
     		foreach($listofpages as $pageid => $objectpageold)
     		{
    -			$line = 'INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, title, description, keyword, status, date_creation, tms, lang, import_key, grabbed_from, content)';
    +			$allaliases = $objectpageold->pageurl;
    +			$allaliases.= ($objectpageold->aliasalt ? ','.$objectpageold->aliasalt : '');
    +
    +			$line = '-- Page ID '.$objectpageold->id.' -> '.$objectpageold->newid.'__+MAX_llx_website_page__ - Aliases '.$allaliases.' --;';	// newid start at 1, 2...
    +			$line.= "\n";
    +			fputs($fp, $line);
    +
    +			// Warning: We must keep llx_ here. It is a generic SQL.
    +			$line = 'INSERT INTO llx_website_page(rowid, fk_page, fk_website, pageurl, aliasalt, title, description, image, keywords, status, date_creation, tms, lang, import_key, grabbed_from, type_container, htmlheader, content)';
     			$line.= " VALUES(";
    -			$line.= $objectpageold->newid."+__MAXROWID__, ";
    -			$line.= ($objectpageold->newfk_page ? $this->db->escape($objectpageold->newfk_page)."+__MAXROWID__" : "null").", ";
    +			$line.= $objectpageold->newid."__+MAX_llx_website_page__, ";
    +			$line.= ($objectpageold->newfk_page ? $this->db->escape($objectpageold->newfk_page)."__+MAX_llx_website_page__" : "null").", ";
     			$line.= "__WEBSITE_ID__, ";
     			$line.= "'".$this->db->escape($objectpageold->pageurl)."', ";
    +			$line.= "'".$this->db->escape($objectpageold->aliasalt)."', ";
     			$line.= "'".$this->db->escape($objectpageold->title)."', ";
     			$line.= "'".$this->db->escape($objectpageold->description)."', ";
    -			$line.= "'".$this->db->escape($objectpageold->keyword)."', ";
    +			$line.= "'".$this->db->escape($objectpageold->image)."', ";
    +			$line.= "'".$this->db->escape($objectpageold->keywords)."', ";
     			$line.= "'".$this->db->escape($objectpageold->status)."', ";
     			$line.= "'".$this->db->idate($objectpageold->date_creation)."', ";
     			$line.= "'".$this->db->idate($objectpageold->date_modification)."', ";
     			$line.= "'".$this->db->escape($objectpageold->lang)."', ";
     			$line.= ($objectpageold->import_key ? "'".$this->db->escape($objectpageold->import_key)."'" : "null").", ";
     			$line.= "'".$this->db->escape($objectpageold->grabbed_from)."', ";
    -			$line.= "'".$this->db->escape($objectpageold->content)."'";
    +			$line.= "'".$this->db->escape($objectpageold->type_container)."', ";
    +
    +			$stringtoexport = $objectpageold->htmlheader;
    +			$stringtoexport = str_replace(array("\r\n","\r","\n"), "__N__", $stringtoexport);
    +			$stringtoexport = str_replace('file=image/'.$website->ref.'/', "file=image/__WEBSITE_KEY__/", $stringtoexport);
    +			$stringtoexport = str_replace('file=js/'.$website->ref.'/', "file=js/__WEBSITE_KEY__/", $stringtoexport);
    +			$stringtoexport = str_replace('medias/image/'.$website->ref.'/', "medias/image/__WEBSITE_KEY__/", $stringtoexport);
    +			$stringtoexport = str_replace('medias/js/'.$website->ref.'/', "medias/js/__WEBSITE_KEY__/", $stringtoexport);
    +			$stringtoexport = str_replace('file=logos%2Fthumbs%2F'.$mysoc->logo_small, "file=logos%2Fthumbs%2F__LOGO_SMALL_KEY__", $stringtoexport);
    +			$stringtoexport = str_replace('file=logos%2Fthumbs%2F'.$mysoc->logo_mini, "file=logos%2Fthumbs%2F__LOGO_MINI_KEY__", $stringtoexport);
    +			$stringtoexport = str_replace('file=logos%2Fthumbs%2F'.$mysoc->logo, "file=logos%2Fthumbs%2F__LOGO_KEY__", $stringtoexport);
    +			$line.= "'".$this->db->escape(str_replace(array("\r\n","\r","\n"), "__N__", $stringtoexport))."', ";	// Replace \r \n to have record on 1 line
    +
    +			$stringtoexport = $objectpageold->content;
    +			$stringtoexport = str_replace(array("\r\n","\r","\n"), "__N__", $stringtoexport);
    +			$stringtoexport = str_replace('file=image/'.$website->ref.'/', "file=image/__WEBSITE_KEY__/", $stringtoexport);
    +			$stringtoexport = str_replace('file=js/'.$website->ref.'/', "file=js/__WEBSITE_KEY__/", $stringtoexport);
    +			$stringtoexport = str_replace('medias/image/'.$website->ref.'/', "medias/image/__WEBSITE_KEY__/", $stringtoexport);
    +			$stringtoexport = str_replace('medias/js/'.$website->ref.'/', "medias/js/__WEBSITE_KEY__/", $stringtoexport);
    +			$stringtoexport = str_replace('file=logos%2Fthumbs%2F'.$mysoc->logo_small, "file=logos%2Fthumbs%2F__LOGO_SMALL_KEY__", $stringtoexport);
    +			$stringtoexport = str_replace('file=logos%2Fthumbs%2F'.$mysoc->logo_mini, "file=logos%2Fthumbs%2F__LOGO_MINI_KEY__", $stringtoexport);
    +			$stringtoexport = str_replace('file=logos%2Fthumbs%2F'.$mysoc->logo, "file=logos%2Fthumbs%2F__LOGO_KEY__", $stringtoexport);
    +			$line.= "'".$this->db->escape($stringtoexport)."'";		// Replace \r \n to have record on 1 line
     			$line.= ");";
     			$line.= "\n";
     			fputs($fp, $line);
    +
    +			// Add line to update home page id during import
    +			//var_dump($this->fk_default_home.' - '.$objectpageold->id.' - '.$objectpageold->newid);exit;
    +			if ($this->fk_default_home > 0 && ($objectpageold->id == $this->fk_default_home) && ($objectpageold->newid > 0))	// This is the record with home page
    +			{
    +				$line = "UPDATE llx_website SET fk_default_home = ".($objectpageold->newid > 0 ? $this->db->escape($objectpageold->newid)."__+MAX_llx_website_page__" : "null")." WHERE rowid = __WEBSITE_ID__;";
    +				$line.= "\n";
    +				fputs($fp, $line);
    +			}
     		}
     
     		fclose($fp);
    @@ -870,7 +941,7 @@ class Website extends CommonObject
     			@chmod($filesql, octdec($conf->global->MAIN_UMASK));
     
     		// Build zip file
    -		$filedir  = $conf->website->dir_temp.'/'.$website->ref;
    +		$filedir  = $conf->website->dir_temp.'/'.$website->ref.'/.';
     		$fileglob = $conf->website->dir_temp.'/'.$website->ref.'/website_'.$website->ref.'-*.zip';
     		$filename = $conf->website->dir_temp.'/'.$website->ref.'/website_'.$website->ref.'-'.dol_print_date(dol_now(),'dayhourlog').'.zip';
     
    @@ -889,11 +960,19 @@ class Website extends CommonObject
     	 */
     	function importWebSite($pathtofile)
     	{
    -		global $conf;
    +		global $conf, $mysoc;
     
    -		$result = 0;
    +		$error = 0;
     
    -		$object = new Website($this->db);
    +		$object = $this;
    +		if (empty($object->ref))
    +		{
    +			$this->error = 'Function importWebSite called on object not loaded (object->ref is empty)';
    +			return -1;
    +		}
    +
    +		dol_delete_dir_recursive(dirname($pathtofile).'/'.$object->ref);
    +		dol_mkdir(dirname($pathtofile).'/'.$object->ref);
     
     		$filename = basename($pathtofile);
     		if (! preg_match('/^website_(.*)-(.*)$/', $filename, $reg))
    @@ -902,14 +981,236 @@ class Website extends CommonObject
     			return -1;
     		}
     
    -		$websitecode = $reg[1];
    -
    -		$sql = "INSERT INTO ".MAIN_DB_PREFIX."website(ref, entity, description, status) values('".$websitecode."', ".$conf->entity.", 'Portal to sell your SaaS. Do not remove this entry.', 1)";
    -		$resql = $this->db->query($sql);
    +		$result = dol_uncompress($pathtofile, $conf->website->dir_temp.'/'.$object->ref);
    +		if (! empty($result['error']))
    +		{
    +			$this->errors[]='Failed to unzip file '.$pathtofile.'.';
    +			return -1;
    +		}
     
     
    -		return $result;
    +		dolCopyDir($conf->website->dir_temp.'/'.$object->ref.'/containers', $conf->website->dir_output.'/'.$object->ref, 0, 1);	// Overwrite if exists
    +
    +		// Now generate the master.inc.php page
    +		$filemaster=$conf->website->dir_output.'/'.$object->ref.'/master.inc.php';
    +		$result = dolSaveMasterFile($filemaster);
    +		if (! $result)
    +		{
    +			$this->errors[]='Failed to write file '.$filemaster;
    +			$error++;
    +		}
    +
    +		dolCopyDir($conf->website->dir_temp.'/'.$object->ref.'/medias/image/websitekey', $conf->website->dir_output.'/'.$object->ref.'/medias/image/'.$object->ref, 0, 1);	// Medias can be shared, do not overwrite if exists
    +		dolCopyDir($conf->website->dir_temp.'/'.$object->ref.'/medias/js/websitekey',    $conf->website->dir_output.'/'.$object->ref.'/medias/js/'.$object->ref, 0, 1);	    // Medias can be shared, do not overwrite if exists
    +
    +		$sqlfile = $conf->website->dir_temp.'/'.$object->ref.'/website_pages.sql';
    +
    +		$arrayreplacement = array();
    +		$arrayreplacement['__WEBSITE_ID__'] = $object->id;
    +		$arrayreplacement['__WEBSITE_KEY__'] = $object->ref;
    +		$arrayreplacement['__N__'] = $this->db->escape("\n");			// Restore \n
    +		$arrayreplacement['__LOGO_SMALL_KEY__'] = $this->db->escape($mysoc->logo_small);
    +		$arrayreplacement['__LOGO_MINI_KEY__'] = $this->db->escape($mysoc->logo_mini);
    +		$arrayreplacement['__LOGO_KEY__'] = $this->db->escape($mysoc->logo);
    +		$result = dolReplaceInFile($sqlfile, $arrayreplacement);
    +
    +		$this->db->begin();
    +
    +		// Search the $maxrowid because we need it later
    +		$sqlgetrowid='SELECT MAX(rowid) as max from '.MAIN_DB_PREFIX.'website_page';
    +		$resql=$this->db->query($sqlgetrowid);
    +		if ($resql)
    +		{
    +			$obj=$this->db->fetch_object($resql);
    +			$maxrowid=$obj->max;
    +		}
    +
    +		// Load sql record
    +		$runsql = run_sql($sqlfile, 1, '', 0, '', 'none', 0, 1);	// The maxrowid of table is searched into this function two
    +		if ($runsql <= 0)
    +		{
    +			$this->errors[]='Failed to load sql file '.$sqlfile;
    +			$error++;
    +		}
    +
    +		$objectpagestatic = new WebsitePage($this->db);
    +
    +		// Make replacement of IDs
    +		$fp = fopen($sqlfile,"r");
    +		if ($fp)
    +		{
    +			while (! feof($fp))
    +			{
    +				// Warning fgets with second parameter that is null or 0 hang.
    +				$buf = fgets($fp, 65000);
    +				if (preg_match('/^-- Page ID (\d+)\s[^\s]+\s(\d+).*Aliases\s(.*)\s--;/i', $buf, $reg))
    +				{
    +					$oldid = $reg[1];
    +					$newid = ($reg[2] + $maxrowid);
    +					$aliasesarray = explode(',', $reg[3]);
    +
    +					$objectpagestatic->fetch($newid);
    +
    +					dol_syslog("Found ID ".$oldid." to replace with ID ".$newid." and shortcut aliases to create: ".$reg[3]);
    +
    +					dol_move($conf->website->dir_output.'/'.$object->ref.'/page'.$oldid.'.tpl.php', $conf->website->dir_output.'/'.$object->ref.'/page'.$newid.'.tpl.php', 0, 1, 0, 0);
    +
    +					// The move is not enough, so we regenerate page
    +					$filetpl=$conf->website->dir_output.'/'.$object->ref.'/page'.$newid.'.tpl.php';
    +					dolSavePageContent($filetpl, $object, $objectpagestatic);
    +
    +					// Regenerate alternative aliases pages
    +					foreach($aliasesarray as $aliasshortcuttocreate)
    +					{
    +						$filealias=$conf->website->dir_output.'/'.$object->ref.'/'.$aliasshortcuttocreate.'.php';
    +						dolSavePageAlias($filealias, $object, $objectpagestatic);
    +					}
    +				}
    +			}
    +		}
    +
    +		// Regenerate index page to point to new index page
    +		$pathofwebsite = $conf->website->dir_output.'/'.$object->ref;
    +		dolSaveIndexPage($pathofwebsite, $pathofwebsite.'/index.php', $pathofwebsite.'/page'.$object->fk_default_home.'.tpl.php', $pathofwebsite.'/wrapper.php');
    +
    +		if ($error)
    +		{
    +			$this->db->rollback();
    +			return -1;
    +		}
    +		else
    +		{
    +			$this->db->commit();
    +			return $object->id;
    +		}
     	}
     
    -}
    +	/**
    +	 * Component to select language inside a container (Full CSS Only)
    +	 *
    +	 * @param	array|string	$languagecodes			'auto' to show all languages available for page, or language codes array like array('en_US','fr_FR','de_DE','es_ES')
    +	 * @param	Translate		$weblangs				Language Object
    +	 * @param	string			$morecss				More CSS class on component
    +	 * @param	string			$htmlname				Suffix for HTML name
    +	 * @return 	string									HTML select component
    +	 */
    +	public function componentSelectLang($languagecodes, $weblangs, $morecss='', $htmlname='')
    +	{
    +		global $websitepagefile, $website;
     
    +		if (! is_object($weblangs)) return 'ERROR componentSelectLang called with parameter $weblangs not defined';
    +
    +		// Load tmppage if we have $websitepagefile defined
    +		$tmppage=new WebsitePage($this->db);
    +
    +		$pageid = 0;
    +		if (! empty($websitepagefile))
    +		{
    +			$pageid = str_replace(array('.tpl.php', 'page'), array('', ''), basename($websitepagefile));
    +			if ($pageid > 0)
    +			{
    +				$tmppage->fetch($pageid);
    +			}
    +		}
    +
    +		// Fill with existing translation, nothing if none
    +		if (! is_array($languagecodes) && $pageid > 0)
    +		{
    +			$languagecodes = array();
    +
    +			$sql ="SELECT wp.rowid, wp.lang, wp.pageurl, wp.fk_page";
    +			$sql.=" FROM ".MAIN_DB_PREFIX."website_page as wp";
    +			$sql.=" WHERE wp.fk_website = ".$website->id;
    +			$sql.=" AND (wp.fk_page = ".$pageid." OR wp.rowid  = ".$pageid;
    +			if ($tmppage->fk_page > 0) $sql.=" OR wp.fk_page = ".$tmppage->fk_page." OR wp.rowid = ".$tmppage->fk_page;
    +			$sql.=")";
    +
    +			$resql = $this->db->query($sql);
    +			if ($resql)
    +			{
    +				while ($obj = $this->db->fetch_object($resql))
    +				{
    +					$newlang = $obj->lang;
    +					if ($obj->rowid == $pageid) $newlang = $obj->lang;
    +					if (! in_array($newlang, $languagecodes)) $languagecodes[]=$newlang;
    +				}
    +			}
    +		}
    +		// Now $languagecodes is always an array
    +
    +		$languagecodeselected= $weblangs->defaultlang;	// Because we must init with a value, but real value is the lang of main parent container
    +		if (! empty($websitepagefile))
    +		{
    +			$pageid = str_replace(array('.tpl.php', 'page'), array('', ''), basename($websitepagefile));
    +			if ($pageid > 0)
    +			{
    +
    +				$languagecodeselected=$tmppage->lang;
    +				if (! in_array($tmppage->lang, $languagecodes)) $languagecodes[]=$tmppage->lang;	// We add language code of page into combo list
    +			}
    +		}
    +
    +		$weblangs->load('languages');
    +		//var_dump($weblangs->defaultlang);
    +
    +		$url = $_SERVER["REQUEST_URI"];
    +		$url = preg_replace('/(\?|&)l=([a-zA-Z_]*)/', '', $url);	// We remove param l from url
    +		//$url = preg_replace('/(\?|&)lang=([a-zA-Z_]*)/', '', $url);	// We remove param lang from url
    +		$url.= (preg_match('/\?/', $url) ? '&' : '?').'l=';
    +
    +		$HEIGHTOPTION=40;
    +		$MAXHEIGHT = 4 * $HEIGHTOPTION;
    +		$nboflanguage = count($languagecodes);
    +
    +		$out ='<!-- componentSelectLang'.$htmlname.' -->'."\n";
    +
    +		$out.= '<style>';
    +		$out.= '.componentSelectLang'.$htmlname.':hover { height: '.min($MAXHEIGHT, ($HEIGHTOPTION * $nboflanguage)).'px; overflow-x: hidden; overflow-y: '.((($HEIGHTOPTION * $nboflanguage) > $MAXHEIGHT) ? ' scroll' : 'hidden').'; }'."\n";
    +		$out.= '.componentSelectLang'.$htmlname.' li { line-height: '.$HEIGHTOPTION.'px; }'."\n";
    +		$out.= '.componentSelectLang'.$htmlname.' {
    +			display: inline-block;
    +			padding: 0;
    +			height: '.$HEIGHTOPTION.'px;
    +			overflow: hidden;
    +			transition: all .3s ease;
    +			margin: 0 50px 0 0;
    +			vertical-align: top;
    +		}
    +		.componentSelectLang'.$htmlname.':hover, .componentSelectLang'.$htmlname.':hover a { background-color: #fff; color: #000 !important; }
    +		ul.componentSelectLang'.$htmlname.' { width: 150px; }
    +		ul.componentSelectLang'.$htmlname.':hover .fa { visibility: hidden; }
    +		.componentSelectLang'.$htmlname.' a { text-decoration: none; width: 100%; }
    +		.componentSelectLang'.$htmlname.' li { display: block; padding: 0px 20px; }
    +		.componentSelectLang'.$htmlname.' li:hover { background-color: #EEE; }
    +		';
    +		$out.= '</style>';
    +		$out.= '<ul class="componentSelectLang'.$htmlname.($morecss?' '.$morecss:'').'">';
    +		if ($languagecodeselected)
    +		{
    +			$shortcode = strtolower(substr($languagecodeselected, -2));
    +			$label = $weblangs->trans("Language_".$languagecodeselected);
    +			if ($shortcode == 'us') $label = preg_replace('/\s*\(.*\)/', '', $label);
    +			$out.= '<a href="'.$url.$languagecodeselected.'"><li><img height="12px" src="medias/image/common/flags/'.$shortcode.'.png" style="margin-right: 5px;"/>'.$label;
    +			$out.= '<span class="fa fa-caret-down" style="padding-left: 5px;" />';
    +			$out.= '</li></a>';
    +		}
    +		$i=0;
    +		if (is_array($languagecodes))
    +		{
    +    		foreach($languagecodes as $languagecode)
    +    		{
    +    			if ($languagecode == $languagecodeselected) continue;	// Already output
    +    			$shortcode = strtolower(substr($languagecode, -2));
    +    			$label = $weblangs->trans("Language_".$languagecode);
    +    			if ($shortcode == 'us') $label = preg_replace('/\s*\(.*\)/', '', $label);
    +    			$out.= '<a href="'.$url.$languagecode.'"><li><img height="12px" src="medias/image/common/flags/'.$shortcode.'.png" style="margin-right: 5px;"/>'.$label;
    +    			if (empty($i) && empty($languagecodeselected)) $out.= '<span class="fa fa-caret-down" style="padding-left: 5px;" />';
    +    			$out.= '</li></a>';
    +    			$i++;
    +    		}
    +		}
    +		$out.= '</ul>';
    +
    +		return $out;
    +	}
    +}
    diff --git a/htdocs/website/class/websitepage.class.php b/htdocs/website/class/websitepage.class.php
    index c0b6aaa7ab9..ffa2176f142 100644
    --- a/htdocs/website/class/websitepage.class.php
    +++ b/htdocs/website/class/websitepage.class.php
    @@ -1,9 +1,8 @@
     <?php
    -/* Copyright (C) 2007-2012  Laurent Destailleur <eldy@users.sourceforge.net>
    +/* Copyright (C) 2007-2018  Laurent Destailleur <eldy@users.sourceforge.net>
      * Copyright (C) 2014       Juanjo Menent       <jmenent@2byte.es>
      * Copyright (C) 2015       Florian Henry       <florian.henry@open-concept.pro>
      * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
    - * Copyright (C) ---Put here your own copyright and developer email---
      *
      * 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
    @@ -39,29 +38,52 @@ class WebsitePage extends CommonObject
     	 * @var string Id to identify managed objects
     	 */
     	public $element = 'websitepage';
    +
     	/**
     	 * @var string Name of table without prefix where object is stored
     	 */
     	public $table_element = 'website_page';
    +
     	/**
     	 * @var string String with name of icon for websitepage. Must be the part after the 'object_' into object_myobject.png
     	 */
     	public $picto = 'label';
     
     	/**
    -	 */
    -
    +     * @var int ID
    +     */
     	public $fk_website;
    +
     	public $pageurl;
     	public $aliasalt;
     	public $type_container;
    +
    +	/**
    +	 * @var string title
    +	 */
     	public $title;
    +	/**
    +	 * @var string description
    +	 */
     	public $description;
    +	/**
    +	 * @var string image
    +	 */
    +	public $image;
    +	/**
    +	 * @var string keywords
    +	 */
     	public $keywords;
    +
     	public $htmlheader;
     	public $content;
     	public $grabbed_from;
    +
    +	/**
    +	 * @var int Status
    +	 */
     	public $status;
    +
     	public $date_creation;
     	public $date_modification;
     
    @@ -77,7 +99,8 @@ class WebsitePage extends CommonObject
     		'type_container' =>array('type'=>'varchar(16)',  'label'=>'Type',             'enabled'=>1, 'visible'=>1,  'notnull'=>1, 'index'=>0, 'position'=>12, 'comment'=>'Type of container'),
     		'title'          =>array('type'=>'varchar(255)', 'label'=>'Label',            'enabled'=>1, 'visible'=>1,  'position'=>30,  'searchall'=>1),
     	    'description'    =>array('type'=>'varchar(255)', 'label'=>'Description',      'enabled'=>1, 'visible'=>1,  'position'=>30,  'searchall'=>1),
    -	    'keywords'       =>array('type'=>'varchar(255)', 'label'=>'Keywords',         'enabled'=>1, 'visible'=>1,  'position'=>45,  'searchall'=>0),
    +		'image'          =>array('type'=>'varchar(255)', 'label'=>'Image',            'enabled'=>1, 'visible'=>1,  'position'=>32,  'searchall'=>0, 'help'=>'Relative path of media. Used if Type is "blog_post"'),
    +		'keywords'       =>array('type'=>'varchar(255)', 'label'=>'Keywords',         'enabled'=>1, 'visible'=>1,  'position'=>45,  'searchall'=>0),
     		'lang'           =>array('type'=>'varchar(6)',   'label'=>'Lang',             'enabled'=>1, 'visible'=>1,  'position'=>45,  'searchall'=>0),
     		//'status'        =>array('type'=>'integer',      'label'=>'Status',           'enabled'=>1, 'visible'=>1,  'index'=>true,   'position'=>1000),
     	    'fk_website'     =>array('type'=>'integer',      'label'=>'WebsiteId',        'enabled'=>1, 'visible'=>1,  'notnull'=>1, 'position'=>40,  'searchall'=>0, 'foreignkey'=>'websitepage.rowid'),
    @@ -88,8 +111,8 @@ class WebsitePage extends CommonObject
     	    'date_creation'  =>array('type'=>'datetime',     'label'=>'DateCreation',     'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>500),
     		'tms'            =>array('type'=>'timestamp',    'label'=>'DateModification', 'enabled'=>1, 'visible'=>-1, 'notnull'=>1, 'position'=>501),
     		//'date_valid'    =>array('type'=>'datetime',     'label'=>'DateValidation',     'enabled'=>1, 'visible'=>-1, 'position'=>502),
    -		//'fk_user_creat' =>array('type'=>'integer',      'label'=>'UserAuthor',       'enabled'=>1, 'visible'=>-1, 'notnull'=>true, 'position'=>510),
    -		//'fk_user_modif' =>array('type'=>'integer',      'label'=>'UserModif',        'enabled'=>1, 'visible'=>-1, 'position'=>511),
    +		'fk_user_creat'  =>array('type'=>'integer',      'label'=>'UserAuthor',       'enabled'=>1, 'visible'=>-1, 'notnull'=>true, 'position'=>510),
    +		'fk_user_modif'  =>array('type'=>'integer',      'label'=>'UserModif',        'enabled'=>1, 'visible'=>-1, 'position'=>511),
     		//'fk_user_valid' =>array('type'=>'integer',      'label'=>'UserValidation',        'enabled'=>1, 'visible'=>-1, 'position'=>512),
     		'import_key'     =>array('type'=>'varchar(14)',  'label'=>'ImportId',         'enabled'=>1, 'visible'=>-1,  'index'=>1,  'position'=>1000, 'notnull'=>-1),
     	);
    @@ -125,7 +148,9 @@ class WebsitePage extends CommonObject
     	/**
     	 * Load object in memory from the database
     	 *
    -	 * @param int		$id         	Id object. If this is 0, the value into $page will be used. If not found of $page not defined, the default page of website_id will be used or the first page found if not set.
    +	 * @param int		$id				Id object.
    +	 * 									- If this is 0, the value into $page will be used. If not found or $page not defined, the default page of website_id will be used or the first page found if not set.
    +	 * 									- If value is < 0, we must exclude this ID.
     	 * @param string	$website_id 	Web site id (page name must also be filled if this parameter is used)
     	 * @param string	$page       	Page name (website id must also be filled if this parameter is used)
     	 * @param string	$aliasalt		Alternative alias to search page (slow)
    @@ -144,6 +169,7 @@ class WebsitePage extends CommonObject
     		$sql .= " t.aliasalt,";
     		$sql .= " t.title,";
     		$sql .= " t.description,";
    +		$sql .= " t.image,";
     		$sql .= " t.keywords,";
     		$sql .= " t.htmlheader,";
     		$sql .= " t.content,";
    @@ -152,7 +178,9 @@ class WebsitePage extends CommonObject
     		$sql .= " t.status,";
     		$sql .= " t.grabbed_from,";
     		$sql .= " t.date_creation,";
    -		$sql .= " t.tms as date_modification";
    +		$sql .= " t.tms as date_modification,";
    +		$sql .= " t.fk_user_creat,";
    +		$sql .= " t.fk_user_modif";
     		$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t';
     		//$sql .= ' WHERE entity IN ('.getEntity('website').')';       // entity is on website level
     		$sql .= ' WHERE 1 = 1';
    @@ -162,6 +190,7 @@ class WebsitePage extends CommonObject
     		}
     		else
     		{
    +			if ($id < 0) $sql .= ' AND t.rowid <> ' . abs($id);
     			if (null !== $website_id) {
     			    $sql .= " AND t.fk_website = '" . $this->db->escape($website_id) . "'";
     			    if ($page)		$sql .= " AND t.pageurl = '" . $this->db->escape($page) . "'";
    @@ -180,10 +209,14 @@ class WebsitePage extends CommonObject
     
     				$this->fk_website = $obj->fk_website;
     				$this->type_container = $obj->type_container;
    +
     				$this->pageurl = $obj->pageurl;
    +				$this->ref = $obj->pageurl;
     				$this->aliasalt = preg_replace('/,+$/', '', preg_replace('/^,+/', '', $obj->aliasalt));
    +
     				$this->title = $obj->title;
     				$this->description = $obj->description;
    +				$this->image = $obj->image;
     				$this->keywords = $obj->keywords;
     				$this->htmlheader = $obj->htmlheader;
     				$this->content = $obj->content;
    @@ -193,6 +226,8 @@ class WebsitePage extends CommonObject
     				$this->grabbed_from = $obj->grabbed_from;
     				$this->date_creation = $this->db->jdate($obj->date_creation);
     				$this->date_modification = $this->db->jdate($obj->date_modification);
    +				$this->fk_user_creat = $obj->fk_user_creat;
    +				$this->fk_user_modif = $obj->fk_user_modif;
     			}
     			$this->db->free($resql);
     
    @@ -210,7 +245,7 @@ class WebsitePage extends CommonObject
     	}
     
     	/**
    -	 * Load object in memory from the database
    +	 * Load list of objects in memory from the database.
     	 *
     	 * @param  string      $websiteid    Web site
     	 * @param  string      $sortorder    Sort Order
    @@ -221,7 +256,7 @@ class WebsitePage extends CommonObject
     	 * @param  string      $filtermode   Filter mode (AND or OR)
     	 * @return array|int                 int <0 if KO, array of pages if OK
     	 */
    -	public function fetchAll($websiteid, $sortorder='', $sortfield='', $limit=0, $offset=0, array $filter = array(), $filtermode='AND')
    +	public function fetchAll($websiteid, $sortorder='', $sortfield='', $limit=0, $offset=0, array $filter=array(), $filtermode='AND')
     	{
     		dol_syslog(__METHOD__, LOG_DEBUG);
     
    @@ -235,6 +270,7 @@ class WebsitePage extends CommonObject
     		$sql .= " t.aliasalt,";
     		$sql .= " t.title,";
     		$sql .= " t.description,";
    +		$sql .= " t.image,";
     		$sql .= " t.keywords,";
     		$sql .= " t.htmlheader,";
     		$sql .= " t.content,";
    @@ -243,7 +279,9 @@ class WebsitePage extends CommonObject
     		$sql .= " t.status,";
     		$sql .= " t.grabbed_from,";
     		$sql .= " t.date_creation,";
    -		$sql .= " t.tms as date_modification";
    +		$sql .= " t.tms as date_modification,";
    +		$sql .= " t.fk_user_creat,";
    +		$sql .= " t.fk_user_modif";
     		$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element. ' as t';
     		$sql .= ' WHERE t.fk_website = '.$websiteid;
     		// Manage filter
    @@ -258,14 +296,14 @@ class WebsitePage extends CommonObject
     			}
     		}
     		if (count($sqlwhere) > 0) {
    -			$sql .= ' AND ' . implode(' '.$filtermode.' ', $sqlwhere);
    +			$sql .= ' AND (' . implode(' '.$filtermode.' ', $sqlwhere).')';
     		}
     
     		if (!empty($sortfield)) {
    -			$sql .= $this->db->order($sortfield,$sortorder);
    +			$sql .= $this->db->order($sortfield, $sortorder);
     		}
     		if (!empty($limit)) {
    -            $sql .=  ' ' . $this->db->plimit($limit, $offset);
    +			$sql .=  ' ' . $this->db->plimit($limit, $offset);
     		}
     
     		$resql = $this->db->query($sql);
    @@ -283,6 +321,7 @@ class WebsitePage extends CommonObject
     				$record->aliasalt = preg_replace('/,+$/', '', preg_replace('/^,+/', '', $obj->aliasalt));
     				$record->title = $obj->title;
     				$record->description = $obj->description;
    +				$record->image = $obj->image;
     				$record->keywords = $obj->keywords;
     				$record->htmlheader = $obj->htmlheader;
     				$record->content = $obj->content;
    @@ -292,6 +331,8 @@ class WebsitePage extends CommonObject
     				$record->grabbed_from = $obj->grabbed_from;
     				$record->date_creation = $this->db->jdate($obj->date_creation);
     				$record->date_modification = $this->db->jdate($obj->date_modification);
    +				$record->fk_user_creat = $obj->fk_user_creat;
    +				$record->fk_user_modif = $obj->fk_user_modif;
     				//var_dump($record->id);
     				$records[$record->id] = $record;
     			}
    @@ -362,12 +403,15 @@ class WebsitePage extends CommonObject
     	 * @param	string	$newref				New ref/alias of page
     	 * @param	string	$newlang			New language
     	 * @param	int		$istranslation		1=New page is a translation of the cloned page.
    -	 * @param	int		$newwebsite			0=Same web site, 1=New web site
    +	 * @param	int		$newwebsite			0=Same web site, >0=Id of new website
    +	 * @param	int		$keeptitleunchanged	1=Keep title unchanged
     	 * @return 	mixed 						New object created, <0 if KO
     	 */
    -	public function createFromClone(User $user, $fromid, $newref, $newlang='', $istranslation=0, $newwebsite=0)
    +	public function createFromClone(User $user, $fromid, $newref, $newlang='', $istranslation=0, $newwebsite=0, $keeptitleunchanged=0)
     	{
     		global $hookmanager, $langs;
    +
    +		$now = dol_now();
     		$error = 0;
     
     		dol_syslog(__METHOD__, LOG_DEBUG);
    @@ -385,7 +429,9 @@ class WebsitePage extends CommonObject
     		$object->ref = $newref;
     		$object->pageurl = $newref;
     		$object->aliasalt = '';
    -		$object->title = $langs->trans("CopyOf").' '.$object->title;
    +		$object->fk_user_creat = $user->id;
    +		$object->date_creation = $now;
    +		$object->title = ($keeptitleunchanged ? '' : $langs->trans("CopyOf").' ').$object->title;
     		if (! empty($newlang)) $object->lang=$newlang;
     		if ($istranslation) $object->fk_page = $fromid;
     		else $object->fk_page = 0;
    @@ -401,6 +447,8 @@ class WebsitePage extends CommonObject
     			dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
     		}
     
    +		unset($object->context['createfromclone']);
    +
     		// End
     		if (!$error) {
     			$this->db->commit();
    @@ -464,6 +512,7 @@ class WebsitePage extends CommonObject
     		return $this->LibStatut($this->status,$mode);
     	}
     
    +    // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
     	/**
     	 *  Renvoi le libelle d'un status donne
     	 *
    @@ -473,6 +522,7 @@ class WebsitePage extends CommonObject
     	 */
     	function LibStatut($status,$mode=0)
     	{
    +        // phpcs:enable
     		global $langs;
     
     		if ($mode == 0)
    @@ -481,27 +531,27 @@ class WebsitePage extends CommonObject
     			if ($status == 1) return $langs->trans('Enabled');
     			if ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 1)
    +		elseif ($mode == 1)
     		{
     			if ($status == 1) return $langs->trans('Enabled');
     			if ($status == 0) return $langs->trans('Disabled');
     		}
    -		if ($mode == 2)
    +		elseif ($mode == 2)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 3)
    +		elseif ($mode == 3)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5');
     		}
    -		if ($mode == 4)
    +		elseif ($mode == 4)
     		{
     			if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled');
     			if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled');
     		}
    -		if ($mode == 5)
    +		elseif ($mode == 5)
     		{
     			if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4');
     			if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5');
    @@ -517,6 +567,8 @@ class WebsitePage extends CommonObject
     	 */
     	public function initAsSpecimen()
     	{
    +		global $user;
    +
     		$this->id = 0;
     
     		$now=dol_now();
    @@ -527,6 +579,7 @@ class WebsitePage extends CommonObject
     		$this->aliasalt = 'specimenalt';
     		$this->title = 'My Page';
     		$this->description = 'This is my page';
    +		$this->image = '';
     		$this->keywords = 'keyword1, keyword2';
     		$this->htmlheader = '';
     		$this->content = '<html><body>This is a html content</body></html>';
    @@ -534,6 +587,6 @@ class WebsitePage extends CommonObject
     		$this->grabbed_from = '';
     		$this->date_creation = $now - (24 * 30 * 3600);
     		$this->date_modification = $now - (24 * 7 * 3600);
    +		$this->fk_user_creat = $user->id;
     	}
    -
     }
    diff --git a/htdocs/website/index.php b/htdocs/website/index.php
    index e1460f497f1..ecb80bf6c22 100644
    --- a/htdocs/website/index.php
    +++ b/htdocs/website/index.php
    @@ -1,5 +1,5 @@
     <?php
    -/* Copyright (C) 2016-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2016-2018 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
    @@ -24,6 +24,8 @@
     define('NOSCANPOSTFORINJECTION',1);
     define('NOSTYLECHECK',1);
     
    +header('X-XSS-Protection:0');
    +
     require '../main.inc.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    @@ -37,7 +39,7 @@ require_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php';
     
     $langs->loadLangs(array("admin","other","website"));
     
    -if (! $user->admin) accessforbidden();
    +if (! $user->rights->website->read) accessforbidden();
     
     if (! ((GETPOST('testmenuhider','int') || ! empty($conf->global->MAIN_TESTMENUHIDER)) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)))
     {
    @@ -45,7 +47,7 @@ if (! ((GETPOST('testmenuhider','int') || ! empty($conf->global->MAIN_TESTMENUHI
     }
     
     $error=0;
    -$website=GETPOST('website', 'alpha');
    +$websitekey=GETPOST('website', 'alpha');
     $page=GETPOST('page', 'alpha');
     $pageid=GETPOST('pageid', 'int');
     $pageref=GETPOST('pageref', 'aZ09');
    @@ -58,6 +60,7 @@ $type_container=GETPOST('WEBSITE_TYPE_CONTAINER', 'alpha');
     $section_dir = GETPOST('section_dir', 'alpha');
     $file_manager = GETPOST('file_manager', 'alpha');
     
    +if (GETPOST('deletesite','alpha')) { $action='deletesite'; }
     if (GETPOST('delete','alpha')) { $action='delete'; }
     if (GETPOST('preview','alpha')) $action='preview';
     if (GETPOST('createsite','alpha')) { $action='createsite'; }
    @@ -68,6 +71,8 @@ if (GETPOST('setashome','alpha')) { $action='setashome'; }
     if (GETPOST('editmeta','alpha')) { $action='editmeta'; }
     if (GETPOST('editsource','alpha')) { $action='editsource'; }
     if (GETPOST('editcontent','alpha')) { $action='editcontent'; }
    +if (GETPOST('exportsite','alpha')) { $action='exportsite'; }
    +if (GETPOST('importsite','alpha')) { $action='importsite'; }
     if (GETPOST('createfromclone','alpha')) { $action='createfromclone'; }
     if (GETPOST('createpagefromclone','alpha')) { $action='createpagefromclone'; }
     if (empty($action) && $file_manager) $action='file_manager';
    @@ -89,46 +94,82 @@ if (empty($action)) $action='preview';
     $object=new Website($db);
     $objectpage=new WebsitePage($db);
     
    -$object->fetchAll();    // Init $object->records
    +$object->fetchAll();    // Init $object->records with list of websites
     
     // If website not defined, we take first found
    -if (empty($website))
    +if (empty($websitekey))
     {
     	foreach($object->records as $key => $valwebsite)
     	{
    -		$website=$valwebsite->ref;
    +		$websitekey=$valwebsite->ref;
     		break;
     	}
     }
    -if ($website)
    +if ($websitekey)
     {
    -	$res = $object->fetch(0, $website);
    +	$res = $object->fetch(0, $websitekey);
     }
    +$website = $object;
     
    +// Check pageid received as aprameter
     if ($pageid < 0) $pageid = 0;
     if (($pageid > 0 || $pageref) && $action != 'addcontainer')
     {
     	$res = $objectpage->fetch($pageid, ($object->id > 0 ? $object->id : null), $pageref);
    -	//var_dump($res);exit;
    -	//if ($res == 0)		// Page ref not found, we check in alias
    -	//{
    -	//	$res = $objectpage->fetch($pageid, ($object->id > 0 ? $object->id : null), $pageref);
    -	//}
     
     	// Check if pageid is inside the new website, if not we reset param pageid
    -	if ($object->id > 0 && ($objectpage->fk_website != $object->id))
    +	if ($res >= 0 && $object->id > 0)
     	{
    -		$res = $objectpage->fetch(0, $object->id, '');;
    -		if ($res == 0)	// Page was not found, we reset it
    +		if ($objectpage->fk_website != $object->id)	// We have a bad page that does not belong to web site
     		{
    -			$objectpage=new WebsitePage($db);
    +			if ($object->fk_default_home > 0)
    +			{
    +				$res = $objectpage->fetch($object->fk_default_home, $object->id, '');	// We search first page of web site
    +				if ($res > 0) $pageid = $object->fk_default_home;
    +			}
    +			else
    +			{
    +				$res = $objectpage->fetch(0, $object->id, '');	// We search first page of web site
    +				if ($res == 0)	// Page was not found, we reset it
    +				{
    +					$objectpage=new WebsitePage($db);
    +				}
    +				else			// We found a page, we set pageid to it.
    +				{
    +					$pageid = $objectpage->id;
    +				}
    +			}
    +		}
    +		else	// We have a valid page. We force pageid for the case we got the page with a fetch on ref.
    +		{
    +			$pageid = $objectpage->id;
     		}
     	}
    -	$pageid = $objectpage->id;
     }
     
    +// Define pageid if pageid and pageref not received as parameter or was wrong
    +if (empty($pageid) && empty($pageref) && $object->id > 0 && $action != 'createcontainer')
    +{
    +	$pageid = $object->fk_default_home;
    +	if (empty($pageid))
    +	{
    +		$array=$objectpage->fetchAll($object->id, 'ASC,ASC', 'type_container,pageurl');
    +		if (! is_array($array) && $array < 0) dol_print_error('', $objectpage->error, $objectpage->errors);
    +		$atleastonepage=(is_array($array) && count($array) > 0);
    +
    +		$firstpageid=0;$homepageid=0;
    +		foreach($array as $key => $valpage)
    +		{
    +			if (empty($firstpageid)) $firstpageid=$valpage->id;
    +			if ($object->fk_default_home && $key == $object->fk_default_home) $homepageid=$valpage->id;
    +		}
    +		$pageid=($homepageid?$homepageid:$firstpageid);   // We choose home page and if not defined yet, we take first page
    +	}
    +}
    +
    +
     global $dolibarr_main_data_root;
    -$pathofwebsite=$dolibarr_main_data_root.'/website/'.$website;
    +$pathofwebsite=$dolibarr_main_data_root.'/website/'.$websitekey;
     $filehtmlheader=$pathofwebsite.'/htmlheader.html';
     $filecss=$pathofwebsite.'/styles.css.php';
     $filejs=$pathofwebsite.'/javascript.js.php';
    @@ -136,6 +177,7 @@ $filerobot=$pathofwebsite.'/robots.txt';
     $filehtaccess=$pathofwebsite.'/.htaccess';
     $filetpl=$pathofwebsite.'/page'.$pageid.'.tpl.php';
     $fileindex=$pathofwebsite.'/index.php';
    +$filewrapper=$pathofwebsite.'/wrapper.php';
     
     // Define $urlwithroot
     $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
    @@ -167,11 +209,39 @@ $htmlheadercontentdefault.='-->'."\n";
      * Actions
      */
     
    -$backtopage=$_SERVER["PHP_SELF"].'?file_manager=1&website='.$website.'&pageid='.$pageid;	// used after a confirm_deletefile into actions_linkedfiles.inc.php
    +$backtopage=$_SERVER["PHP_SELF"].'?file_manager=1&website='.$websitekey.'&pageid='.$pageid.(GETPOST('section_dir','alpha')?'&section_dir='.urlencode(GETPOST('section_dir','alpha')):'');	// used after a confirm_deletefile into actions_linkedfiles.inc.php
     include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
     
     if ($action == 'renamefile') $action='file_manager';		// After actions_linkedfiles, if action were renamefile, we set it to 'file_manager'
     
    +if ($action == 'seteditinline')
    +{
    +	dolibarr_set_const($db, 'WEBSITE_EDITINLINE', 1);
    +	setEventMessages($langs->trans("FeatureNotYetAvailable"), null, 'warnings');
    +	dolibarr_set_const($db, 'WEBSITE_SUBCONTAINERSINLINE', 0);	// Force disable of 'Include dynamic content'
    +	header("Location: ".$_SERVER["PHP_SELF"].'?website='.GETPOST('website','alphanohtml').'&pageid='.GETPOST('pageid','int'));
    +	exit;
    +}
    +if ($action == 'unseteditinline')
    +{
    +	dolibarr_del_const($db, 'WEBSITE_EDITINLINE');
    +	header("Location: ".$_SERVER["PHP_SELF"].'?website='.GETPOST('website','alphanohtml').'&pageid='.GETPOST('pageid','int'));
    +	exit;
    +}
    +if ($action == 'setshowsubcontainers')
    +{
    +	dolibarr_set_const($db, 'WEBSITE_SUBCONTAINERSINLINE', 1);
    +	dolibarr_set_const($db, 'WEBSITE_EDITINLINE', 0);	// Force disable of edit inline
    +	header("Location: ".$_SERVER["PHP_SELF"].'?website='.GETPOST('website','alphanohtml').'&pageid='.GETPOST('pageid','int'));
    +	exit;
    +}
    +if ($action == 'unsetshowsubcontainers')
    +{
    +	dolibarr_del_const($db, 'WEBSITE_SUBCONTAINERSINLINE');
    +	header("Location: ".$_SERVER["PHP_SELF"].'?website='.GETPOST('website','alphanohtml').'&pageid='.GETPOST('pageid','int'));
    +	exit;
    +}
    +
     // Add directory
     /*
     if ($action == 'adddir' && $permtouploadfile)
    @@ -197,12 +267,12 @@ if ($action == 'adddir' && $permtouploadfile)
     */
     
     
    -if (GETPOST('refreshsite'))		// If we change the site, we reset the pageid and cancel addsite action.
    +if (GETPOST('refreshsite','alpha'))		// If we change the site, we reset the pageid and cancel addsite action.
     {
     	$pageid=0;
     	if ($action == 'addsite') $action = 'preview';
     }
    -if (GETPOST('refreshpage') && ! in_array($action, array('updatecss'))) $action='preview';
    +if (GETPOST('refreshpage','alpha') && ! in_array($action, array('updatecss'))) $action='preview';
     
     
     // Add site
    @@ -213,6 +283,7 @@ if ($action == 'addsite')
     	if (! $error && ! GETPOST('WEBSITE_REF','alpha'))
     	{
     		$error++;
    +		$langs->load("errors");
     		setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities("Ref")), null, 'errors');
     	}
     	if (! $error && ! preg_match('/^[a-z0-9_\-\.]+$/i', GETPOST('WEBSITE_REF','alpha')))
    @@ -279,20 +350,30 @@ if ($action == 'addcontainer')
     	{
     		include_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
     
    -		// Clean url to grab, so url can be
    -		// http://www.example.com/ or http://www.example.com/dir1/ or http://www.example.com/dir1/aaa
    -		$urltograbwithoutdomainandparam = preg_replace('/^https?:\/\/[^\/]+\/?/i', '', $urltograb);
    -		$urltograbwithoutdomainandparam = preg_replace('/\?.*$/', '', $urltograbwithoutdomainandparam);
    -		if (empty($urltograbwithoutdomainandparam) && ! preg_match('/\/$/', $urltograb))
    +		if (! preg_match('/^http/', $urltograb))
     		{
    -			$urltograb.='/';
    +			$error++;
    +			setEventMessages('Error URL must start with http:// or https://', null, 'errors');
    +			$action = 'createcontainer';
     		}
    -		$pageurl = dol_sanitizeFileName(preg_replace('/[\/\.]/','-', preg_replace('/\/+$/', '', $urltograbwithoutdomainandparam)));
     
    -		$urltograbdirwithoutslash = dirname($urltograb.'.');
    -		$urltograbdirrootwithoutslash = getRootURLFromURL($urltograbdirwithoutslash);
    -		// Exemple, now $urltograbdirwithoutslash is https://www.dolimed.com/screenshots
    -		// and $urltograbdirrootwithoutslash is https://www.dolimed.com
    +		if (! $error)
    +		{
    +			// Clean url to grab, so url can be
    +			// http://www.example.com/ or http://www.example.com/dir1/ or http://www.example.com/dir1/aaa
    +			$urltograbwithoutdomainandparam = preg_replace('/^https?:\/\/[^\/]+\/?/i', '', $urltograb);
    +			$urltograbwithoutdomainandparam = preg_replace('/\?.*$/', '', $urltograbwithoutdomainandparam);
    +			if (empty($urltograbwithoutdomainandparam) && ! preg_match('/\/$/', $urltograb))
    +			{
    +				$urltograb.='/';
    +			}
    +			$pageurl = dol_sanitizeFileName(preg_replace('/[\/\.]/','-', preg_replace('/\/+$/', '', $urltograbwithoutdomainandparam)));
    +
    +			$urltograbdirwithoutslash = dirname($urltograb.'.');
    +			$urltograbdirrootwithoutslash = getRootURLFromURL($urltograbdirwithoutslash);
    +			// Exemple, now $urltograbdirwithoutslash is https://www.dolimed.com/screenshots
    +			// and $urltograbdirrootwithoutslash is https://www.dolimed.com
    +		}
     
     		// Check pageurl is not already used
     		if ($pageurl)
    @@ -327,7 +408,7 @@ if ($action == 'addcontainer')
     				// Remove comments
     				$tmp['content'] = removeHtmlComment($tmp['content']);
     
    -				preg_match('/<head>(.*)<\/head>/is', $tmp['content'], $reg);
    +				preg_match('/<head>(.*)<\/head>/ims', $tmp['content'], $reg);
     				$head = $reg[1];
     
     				$objectpage->type_container = 'page';
    @@ -390,11 +471,13 @@ if ($action == 'addcontainer')
     				//$objectpage->htmlheader = preg_replace('/<meta name="msvalidate.01[^>]*>\n*/ims', '', $objectpage->htmlheader);
     				$objectpage->htmlheader = preg_replace('/<title>[^<]*<\/title>\n*/ims', '', $objectpage->htmlheader);
     				$objectpage->htmlheader = preg_replace('/<link[^>]*rel="shortcut[^>]*>\n/ims', '', $objectpage->htmlheader);
    +				$objectpage->htmlheader = preg_replace('/<link[^>]*rel="canonical[^>]*>\n/ims', '', $objectpage->htmlheader);
     
     				// Now loop to fetch JS
     				$tmp = $objectpage->htmlheader;
     
     				preg_match_all('/<script([^\.>]+)src=["\']([^"\'>]+)["\']([^>]*)><\/script>/i', $objectpage->htmlheader, $regs);
    +				$errorforsubresource = 0;
     				foreach ($regs[0] as $key => $val)
     				{
     					dol_syslog("We will grab the resource found into script tag ".$regs[2][$key]);
    @@ -430,13 +513,15 @@ if ($action == 'addcontainer')
     	    			if ($tmpgeturl['curl_error_no'])
     	    			{
     	    				$error++;
    -	    				setEventMessages('Error getting '.$urltograbbis.': '.$tmpgeturl['curl_error_msg'], null, 'errors');
    +	    				setEventMessages('Error getting script url '.$urltograbbis.': '.$tmpgeturl['curl_error_msg'], null, 'errors');
    +	    				$errorforsubresource++;
     	    				$action='createcontainer';
     	    			}
     					elseif ($tmpgeturl['http_code'] != '200')
     					{
     						$error++;
    -						setEventMessages('Error getting '.$urltograbbis.': '.$tmpgeturl['http_code'], null, 'errors');
    +						setEventMessages('Error getting script url '.$urltograbbis.': '.$tmpgeturl['http_code'], null, 'errors');
    +						$errorforsubresource++;
     						$action='createcontainer';
     					}
     					else
    @@ -461,9 +546,10 @@ if ($action == 'addcontainer')
     				$pagecsscontent = "\n".'<style>'."\n";
     
     				preg_match_all('/<link([^\.>]+)href=["\']([^"\'>]+\.css[^"\'>]*)["\']([^>]*)>/i', $objectpage->htmlheader, $regs);
    +				$errorforsubresource = 0;
     				foreach ($regs[0] as $key => $val)
     				{
    -					dol_syslog("We will grab the resource found into link tag ".$regs[2][$key]);
    +					dol_syslog("We will grab the resources found into link tag ".$regs[2][$key]);
     
     					$linkwithoutdomain = $regs[2][$key];
     					if (preg_match('/^\//', $regs[2][$key]))
    @@ -494,14 +580,16 @@ if ($action == 'addcontainer')
     					$tmpgeturl = getURLContent($urltograbbis);
     					if ($tmpgeturl['curl_error_no'])
     					{
    -						$error++;
    -						setEventMessages('Error getting '.$urltograbbis.': '.$tmpgeturl['curl_error_msg'], null, 'errors');
    +						$errorforsubresource++;
    +						setEventMessages('Error getting link tag url '.$urltograbbis.': '.$tmpgeturl['curl_error_msg'], null, 'errors');
    +						dol_syslog('Error getting '.$urltograbbis.': '.$tmpgeturl['curl_error_msg']);
     						$action='createcontainer';
     					}
     					elseif ($tmpgeturl['http_code'] != '200')
     					{
    -						$error++;
    -						setEventMessages('Error getting '.$urltograbbis.': '.$tmpgeturl['http_code'], null, 'errors');
    +						$errorforsubresource++;
    +						setEventMessages('Error getting link tag url'.$urltograbbis.': '.$tmpgeturl['http_code'], null, 'errors');
    +						dol_syslog('Error getting '.$urltograbbis.': '.$tmpgeturl['curl_error_msg']);
     						$action='createcontainer';
     					}
     					else
    @@ -556,6 +644,7 @@ if ($action == 'addcontainer')
     		$objectpage->pageurl = GETPOST('WEBSITE_PAGENAME','alpha');
     		$objectpage->aliasalt = GETPOST('WEBSITE_ALIASALT','alpha');
     		$objectpage->description = GETPOST('WEBSITE_DESCRIPTION','alpha');
    +		$objectpage->image = GETPOST('WEBSITE_IMAGE','alpha');
     		$objectpage->keywords = GETPOST('WEBSITE_KEYWORDS','alpha');
     		$objectpage->lang = GETPOST('WEBSITE_LANG','aZ09');
     		$objectpage->htmlheader = GETPOST('htmlheader','none');
    @@ -566,7 +655,7 @@ if ($action == 'addcontainer')
     		$sample = GETPOST('sample','alpha');
     		if (empty($sample)) $sample='empty';
     
    -		$pathtosample = DOL_DOCUMENT_ROOT.'/website/page-sample-'.$sample.'.html';
    +		$pathtosample = DOL_DOCUMENT_ROOT.'/website/samples/page-sample-'.$sample.'.html';
     
     		// Init content with content into pagetemplate.html, blogposttempltate.html, ...
     		$objectpage->content = make_substitutions(@file_get_contents($pathtosample), $substitutionarray);
    @@ -623,14 +712,11 @@ if ($action == 'addcontainer')
     			if ($result)
     			{
     				setEventMessages($langs->trans("Saved"), null, 'mesgs');
    -				//header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website.'&pageid='.$pageid);
    -				//exit;
     			}
     			else
     			{
     				setEventMessages('Failed to write file '.$filetpl, null, 'errors');
    -				//header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website.'&pageid='.$pageid);
    -				//exit;
    +				$action = 'createcontainer';
     			}
     		}
     	}
    @@ -697,6 +783,41 @@ if ($action == 'addcontainer')
     	}
     }
     
    +// Delete site
    +if ($action == 'deletesite')
    +{
    +	$error = 0;
    +
    +	$db->begin();
    +
    +	$res = $object->fetch(0, $websitekey);
    +	$website = $object;
    +
    +	if ($res > 0)
    +	{
    +		$res = $object->delete($user);
    +		if ($res <= 0)
    +		{
    +			$error++;
    +			setEventMessages($object->error, $object->errors, 'errors');
    +		}
    +	}
    +
    +	if (! $error)
    +	{
    +		$db->commit();
    +		setEventMessages($langs->trans("SiteDeleted", $object->ref, $websitekey), null, 'mesgs');
    +
    +		header("Location: ".$_SERVER["PHP_SELF"]);
    +		exit;
    +	}
    +	else
    +	{
    +		$db->rollback();
    +		dol_print_error($db);
    +	}
    +}
    +
     // Delete page
     if ($action == 'delete')
     {
    @@ -704,7 +825,8 @@ if ($action == 'delete')
     
     	$db->begin();
     
    -	$res = $object->fetch(0, $website);
    +	$res = $object->fetch(0, $websitekey);
    +	$website = $object;
     
     	$res = $objectpage->fetch($pageid, $object->fk_website);
     
    @@ -721,9 +843,9 @@ if ($action == 'delete')
     	if (! $error)
     	{
     		$db->commit();
    -		setEventMessages($langs->trans("PageDeleted", $objectpage->pageurl, $website), null, 'mesgs');
    +		setEventMessages($langs->trans("PageDeleted", $objectpage->pageurl, $websitekey), null, 'mesgs');
     
    -		header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website);
    +		header("Location: ".$_SERVER["PHP_SELF"].'?website='.$websitekey);
     		exit;
     	}
     	else
    @@ -742,7 +864,20 @@ if ($action == 'updatecss')
     	}
     	else
     	{
    -		$res = $object->fetch(0, $website);
    +		$res = $object->fetch(0, $websitekey);
    +		$website = $object;
    +
    +		// Save master.inc.php file
    +		$filemaster=$pathofwebsite.'/master.inc.php';
    +
    +		dol_syslog("Save master file ".$filemaster);
    +
    +		dol_mkdir($pathofwebsite);
    +
    +		// Now generate the master.inc.php page
    +		$result = dolSaveMasterFile($filemaster);
    +		if (! $result) setEventMessages('Failed to write file '.$filemaster, null, 'errors');
    +
     
     		// Html header file
     		$htmlheadercontent ='';
    @@ -750,7 +885,7 @@ if ($action == 'updatecss')
     		/* We disable php code since htmlheader is never executed as an include but only read by fgets_content.
     	    $htmlheadercontent.= "<?php // BEGIN PHP\n";
     	    $htmlheadercontent.= '$websitekey=basename(dirname(__FILE__));'."\n";
    -	    $htmlheadercontent.= "if (! defined('USEDOLIBARRSERVER')) { require_once './master.inc.php'; } // Not already loaded"."\n";
    +	    $htmlheadercontent.= "if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) { require_once './master.inc.php'; } // Not already loaded"."\n";
     	    $htmlheadercontent.= "require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';\n";
     	    $htmlheadercontent.= "require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';\n";
     	    $htmlheadercontent.= "ob_start();\n";
    @@ -773,10 +908,11 @@ if ($action == 'updatecss')
     
     		$csscontent.= "<?php // BEGIN PHP\n";
     		$csscontent.= '$websitekey=basename(dirname(__FILE__));'."\n";
    -		$csscontent.= "if (! defined('USEDOLIBARRSERVER')) { require_once dirname(__FILE__).'/master.inc.php'; } // Not already loaded"."\n";	// For the css, we need to set path of master using the dirname of css file.
    +		$csscontent.= "if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) { require_once dirname(__FILE__).'/master.inc.php'; } // Not already loaded"."\n";	// For the css, we need to set path of master using the dirname of css file.
     		$csscontent.= "require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';\n";
     		$csscontent.= "require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';\n";
     		$csscontent.= "ob_start();\n";
    +		$csscontent.= "header('Cache-Control: max-age=3600, public, must-revalidate');\n";
     		$csscontent.= "header('Content-type: text/css');\n";
     		$csscontent.= "// END PHP ?>\n";
     
    @@ -805,10 +941,11 @@ if ($action == 'updatecss')
     
     		$jscontent.= "<?php // BEGIN PHP\n";
     		$jscontent.= '$websitekey=basename(dirname(__FILE__));'."\n";
    -		$jscontent.= "if (! defined('USEDOLIBARRSERVER')) { require_once dirname(__FILE__).'/master.inc.php'; } // Not already loaded"."\n";	// For the css, we need to set path of master using the dirname of css file.
    +		$jscontent.= "if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) { require_once dirname(__FILE__).'/master.inc.php'; } // Not already loaded"."\n";	// For the css, we need to set path of master using the dirname of css file.
     		$jscontent.= "require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';\n";
     		$jscontent.= "require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';\n";
     		$jscontent.= "ob_start();\n";
    +		$jscontent.= "header('Cache-Control: max-age=3600, public, must-revalidate');\n";
     		$jscontent.= "header('Content-type: application/javascript');\n";
     		$jscontent.= "// END PHP ?>\n";
     
    @@ -837,10 +974,11 @@ if ($action == 'updatecss')
     
     		/*$robotcontent.= "<?php // BEGIN PHP\n";
     	    $robotcontent.= '$websitekey=basename(dirname(__FILE__));'."\n";
    -	    $robotcontent.= "if (! defined('USEDOLIBARRSERVER')) { require_once './master.inc.php'; } // Not already loaded"."\n";
    +	    $robotcontent.= "if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) { require_once './master.inc.php'; } // Not already loaded"."\n";
     	    $robotcontent.= "require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';\n";
     	    $robotcontent.= "require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';\n";
     	    $robotcontent.= "ob_start();\n";
    +		$robotcontent.= "header('Cache-Control: max-age=3600, public, must-revalidate');\n";
     	    $robotcontent.= "header('Content-type: text/css');\n";
     	    $robotcontent.= "// END PHP ?>\n";*/
     
    @@ -867,20 +1005,21 @@ if ($action == 'updatecss')
     		// Css file
     		$htaccesscontent ='';
     
    -		/*$robotcontent.= "<?php // BEGIN PHP\n";
    -    	 $robotcontent.= '$websitekey=basename(dirname(__FILE__));'."\n";
    -    	 $robotcontent.= "if (! defined('USEDOLIBARRSERVER')) { require_once './master.inc.php'; } // Not already loaded"."\n";
    -    	 $robotcontent.= "require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';\n";
    -    	 $robotcontent.= "require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';\n";
    -    	 $robotcontent.= "ob_start();\n";
    -    	 $robotcontent.= "header('Content-type: text/css');\n";
    -    	 $robotcontent.= "// END PHP ?>\n";*/
    +		/*$htaccesscontent.= "<?php // BEGIN PHP\n";
    +    	$htaccesscontent.= '$websitekey=basename(dirname(__FILE__));'."\n";
    +    	$htaccesscontent.= "if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) { require_once './master.inc.php'; } // Not already loaded"."\n";
    +    	$htaccesscontent.= "require_once DOL_DOCUMENT_ROOT.'/core/lib/website.lib.php';\n";
    +    	$htaccesscontent.= "require_once DOL_DOCUMENT_ROOT.'/core/website.inc.php';\n";
    +    	$htaccesscontent.= "ob_start();\n";
    +		$htaccesscontent.= "header('Cache-Control: max-age=3600, public, must-revalidate');\n";
    +    	$htaccesscontent.= "header('Content-type: text/css');\n";
    +    	$htaccesscontent.= "// END PHP ?>\n";*/
     
     		$htaccesscontent.= GETPOST('WEBSITE_HTACCESS', 'none');
     
    -		/*$robotcontent.= "\n".'<?php // BEGIN PHP'."\n";
    -    	 $robotcontent.= '$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp);'."\n";
    -    	 $robotcontent.= "// END PHP ?>"."\n";*/
    +		/*$htaccesscontent.= "\n".'<?php // BEGIN PHP'."\n";
    +    	$htaccesscontent.= '$tmp = ob_get_contents(); ob_end_clean(); dolWebsiteOutput($tmp);'."\n";
    +    	$htaccesscontent.= "// END PHP ?>"."\n";*/
     
     		dol_syslog("Save file htaccess into ".$filehtaccess);
     
    @@ -909,7 +1048,8 @@ if ($action == 'updatecss')
     if ($action == 'setashome')
     {
     	$db->begin();
    -	$object->fetch(0, $website);
    +	$object->fetch(0, $websitekey);
    +	$website = $object;
     
     	$object->fk_default_home = $pageid;
     	$res = $object->update($user);
    @@ -925,7 +1065,7 @@ if ($action == 'setashome')
     
     		// Generate the index.php page to be the home page
     		//-------------------------------------------------
    -		$result = dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl);
    +		$result = dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl, $filewrapper);
     
     		if ($result) setEventMessages($langs->trans("Saved"), null, 'mesgs');
     		else setEventMessages('Failed to write file '.$fileindex, null, 'errors');
    @@ -943,7 +1083,8 @@ if ($action == 'updatemeta')
     {
     	$db->begin();
     
    -	$object->fetch(0, $website);
    +	$result = $object->fetch(0, $websitekey);
    +	$website = $object;
     
     	$objectpage->fk_website = $object->id;
     
    @@ -956,13 +1097,59 @@ if ($action == 'updatemeta')
     		$action='editmeta';
     	}
     
    -	$res = $objectpage->fetch($pageid, $object->fk_website);
    +	$res = $objectpage->fetch($pageid, $object->id);
     	if ($res <= 0)
     	{
     		$error++;
     		setEventMessages('Page not found '.$objectpage->error, $objectpage->errors, 'errors');
     	}
     
    +	// Check alias not exists
    +	if (! $error && GETPOST('WEBSITE_PAGENAME', 'alpha'))
    +	{
    +		$websitepagetemp=new WebsitePage($db);
    +		$result = $websitepagetemp->fetch(-1 * $objectpage->id, $object->id, GETPOST('WEBSITE_PAGENAME', 'alpha'));
    +		if ($result < 0)
    +		{
    +			$error++;
    +			$langs->load("errors");
    +			setEventMessages($websitepagetemp->error, $websitepagetemp->errors, 'errors');
    +			$action = 'editmeta';
    +		}
    +		if ($result > 0)
    +		{
    +			$error++;
    +			$langs->load("errors");
    +			setEventMessages($langs->trans("ErrorAPageWithThisNameOrAliasAlreadyExists", $websitepagetemp->pageurl), null, 'errors');
    +			$action = 'editmeta';
    +		}
    +	}
    +	if (! $error && GETPOST('WEBSITE_ALIASALT', 'alpha'))
    +	{
    +		$arrayofaliastotest=explode(',', GETPOST('WEBSITE_ALIASALT', 'alpha'));
    +		$websitepagetemp=new WebsitePage($db);
    +		foreach($arrayofaliastotest as $aliastotest)
    +		{
    +			$result = $websitepagetemp->fetch(-1 * $objectpage->id, $object->id, $aliastotest);
    +			if ($result < 0)
    +			{
    +				$error++;
    +				$langs->load("errors");
    +				setEventMessages($websitepagetemp->error, $websitepagetemp->errors, 'errors');
    +				$action = 'editmeta';
    +				break;
    +			}
    +			if ($result > 0)
    +			{
    +				$error++;
    +				$langs->load("errors");
    +				setEventMessages($langs->trans("ErrorAPageWithThisNameOrAliasAlreadyExists", $websitepagetemp->pageurl), null, 'errors');
    +				$action = 'editmeta';
    +				break;
    +			}
    +		}
    +	}
    +
     	if (! $error)
     	{
     		$objectpage->old_object = clone $objectpage;
    @@ -972,15 +1159,31 @@ if ($action == 'updatemeta')
     		$objectpage->pageurl = GETPOST('WEBSITE_PAGENAME', 'alpha');
     		$objectpage->aliasalt = GETPOST('WEBSITE_ALIASALT', 'alpha');
     		$objectpage->description = GETPOST('WEBSITE_DESCRIPTION', 'alpha');
    +		$objectpage->image = GETPOST('WEBSITE_IMAGE', 'alpha');
     		$objectpage->keywords = GETPOST('WEBSITE_KEYWORDS', 'alpha');
     		$objectpage->lang = GETPOST('WEBSITE_LANG', 'aZ09');
     		$objectpage->htmlheader = trim(GETPOST('htmlheader', 'none'));
    +		$newdatecreation=dol_mktime(GETPOST('datecreationhour','int'), GETPOST('datecreationmin','int'), GETPOST('datecreationsec','int'), GETPOST('datecreationmonth','int'), GETPOST('datecreationday','int'), GETPOST('datecreationyear','int'));
    +		if ($newdatecreation) $objectpage->date_creation = $newdatecreation;
     
     		$res = $objectpage->update($user);
    -		if (! $res > 0)
    +		if (! ($res > 0))
     		{
    -			$error++;
    -			setEventMessages($objectpage->error, $objectpage->errors, 'errors');
    +			$langs->load("errors");
    +			if ($db->lasterrno == 'DB_ERROR_RECORD_ALREADY_EXISTS')
    +			{
    +				$error++;
    +				$langs->load("errors");
    +				setEventMessages($langs->trans("ErrorAPageWithThisNameOrAliasAlreadyExists"), null, 'errors');
    +				$action = 'editmeta';
    +			}
    +			else
    +			{
    +				$error++;
    +				$langs->load("errors");
    +				setEventMessages($objectpage->error, $objectpage->errors, 'errors');
    +				$action = 'editmeta';
    +			}
     		}
     	}
     
    @@ -1003,19 +1206,7 @@ if ($action == 'updatemeta')
     
     
     		// Now generate the master.inc.php page
    -		dol_syslog("We regenerate the master file (because we update meta)");
    -		dol_delete_file($filemaster);
    -
    -		$mastercontent = '<?php'."\n";
    -		$mastercontent.= '// File generated to link to the master file - DO NOT MODIFY - It is just an include'."\n";
    -		$mastercontent.= "if (! defined('USEDOLIBARRSERVER')) require_once '".DOL_DOCUMENT_ROOT."/master.inc.php';\n";
    -		//$mastercontent.= "include_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php';"."\n";
    -		//$mastercontent.= '$website = new WebSite($db)'."\n";
    -		$mastercontent.= '?>'."\n";
    -		$result = file_put_contents($filemaster, $mastercontent);
    -		if (! empty($conf->global->MAIN_UMASK))
    -			@chmod($filemaster, octdec($conf->global->MAIN_UMASK));
    -
    +		$result = dolSaveMasterFile($filemaster);
     		if (! $result) setEventMessages('Failed to write file '.$filemaster, null, 'errors');
     
     		// Now delete the alias.php page
    @@ -1061,13 +1252,13 @@ if ($action == 'updatemeta')
     		if ($result)
     		{
     			setEventMessages($langs->trans("Saved"), null, 'mesgs');
    -			//header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website.'&pageid='.$pageid);
    +			//header("Location: ".$_SERVER["PHP_SELF"].'?website='.$websitekey.'&pageid='.$pageid);
     			//exit;
     		}
     		else
     		{
     			setEventMessages('Failed to write file '.$filetpl, null, 'errors');
    -			//header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website.'&pageid='.$pageid);
    +			//header("Location: ".$_SERVER["PHP_SELF"].'?website='.$websitekey.'&pageid='.$pageid);
        			//exit;
     		}
     
    @@ -1079,10 +1270,13 @@ if ($action == 'updatemeta')
     if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'confirm_createfromclone' || $action == 'confirm_createpagefromclone')
     	|| ($action == 'preview' && (GETPOST('refreshsite') || GETPOST('refreshpage') || GETPOST('preview'))))
     {
    -	$object->fetch(0, $website);
    +	$object->fetch(0, $websitekey);
    +	$website = $object;
     
     	if ($action == 'confirm_createfromclone')
     	{
    +		$db->begin();
    +
     		$objectnew = new Website($db);
     		$result = $objectnew->createFromClone($user, GETPOST('id','int'), GETPOST('siteref','aZ09'), (GETPOST('newlang','aZ09')?GETPOST('newlang','aZ09'):''));
     		if ($result < 0)
    @@ -1090,12 +1284,17 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf
     			$error++;
     			setEventMessages($objectnew->error, $objectnew->errors, 'errors');
     			$action='preview';
    +
    +			$db->rollback();
     		}
     		else
     		{
     			$object = $objectnew;
     			$id = $object->id;
     			$pageid = $object->fk_default_home;
    +			$websitekey = GETPOST('siteref','aZ09');
    +
    +			$db->commit();
     		}
     	}
     
    @@ -1114,17 +1313,51 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf
     
     		if (! $error)
     		{
    +			$db->begin();
    +
    +			$newwebsiteid = GETPOST('newwebsite','int');
    +			$pathofwebsitenew = $pathofwebsite;
    +
    +			$tmpwebsite=new Website($db);
    +			if ($newwebsiteid > 0 && $newwebsiteid != $object->id)
    +			{
    +				$tmpwebsite->fetch($newwebsiteid);
    +				$pathofwebsitenew = $dolibarr_main_data_root.'/website/'.$tmpwebsite->ref;
    +			}
    +			else
    +			{
    +				$tmpwebsite = $object;
    +			}
    +
     			$objectpage = new WebsitePage($db);
    -			$result = $objectpage->createFromClone($user, $pageid, GETPOST('pageurl','aZ09'), (GETPOST('newlang','aZ09')?GETPOST('newlang','aZ09'):''), $istranslation, GETPOST('newwebsite','int'));
    -			if ($result < 0)
    +			$resultpage = $objectpage->createFromClone($user, $pageid, GETPOST('pageurl','aZ09'), (GETPOST('newlang','aZ09')?GETPOST('newlang','aZ09'):''), $istranslation, $newwebsiteid);
    +			if ($resultpage < 0)
     			{
     				$error++;
     				setEventMessages($objectpage->error, $objectpage->errors, 'errors');
     				$action='createpagefromclone';
    +
    +				$db->rollback();
     			}
     			else
     			{
    -				// TODO Switch on the new page ?
    +				$fileindex=$pathofwebsitenew.'/index.php';
    +				$filetpl=$pathofwebsitenew.'/page'.$resultpage->id.'.tpl.php';
    +				$filewrapper=$pathofwebsitenew.'/wrapper.php';
    +
    +				//var_dump($pathofwebsitenew);
    +				//var_dump($filetpl);
    +				//exit;
    +
    +				dolSavePageContent($filetpl, $tmpwebsite, $resultpage);
    +
    +				// Switch on the new page if web site of new page/container is same
    +				if (empty($newwebsiteid) || $newwebsiteid == $object->id)
    +				{
    +					$pageid = $resultpage->id;
    +				}
    +
    +				$db->commit();
     			}
     		}
     	}
    @@ -1178,7 +1411,7 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf
     			$objectpage->content = GETPOST('PAGE_CONTENT','none');
     
     			// Clean data. We remove all the head section.
    -			$objectpage->content = preg_replace('/<head>.*<\/head>/s', '', $objectpage->content);
    +			$objectpage->content = preg_replace('/<head>.*<\/head>/ims', '', $objectpage->content);
     			/* $objectpage->content = preg_replace('/<base\s+href=[\'"][^\'"]+[\'"]\s/?>/s', '', $objectpage->content); */
     
     
    @@ -1201,16 +1434,7 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf
     
     
     				// Now generate the master.inc.php page
    -				dol_syslog("We regenerate the master file");
    -				dol_delete_file($filemaster);
    -
    -				$mastercontent = '<?php'."\n";
    -				$mastercontent.= '// File generated to link to the master file'."\n";
    -				$mastercontent.= "if (! defined('USEDOLIBARRSERVER')) require_once '".DOL_DOCUMENT_ROOT."/master.inc.php';\n";
    -				$mastercontent.= '?>'."\n";
    -				$result = file_put_contents($filemaster, $mastercontent);
    -				if (! empty($conf->global->MAIN_UMASK))
    -					@chmod($filemaster, octdec($conf->global->MAIN_UMASK));
    +				$result = dolSaveMasterFile($filemaster);
     
     				if (! $result) setEventMessages('Failed to write file '.$filemaster, null, 'errors');
     
    @@ -1231,13 +1455,13 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf
     				if ($result)
     				{
     					setEventMessages($langs->trans("Saved"), null, 'mesgs');
    -					header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website.'&pageid='.$pageid);
    +					header("Location: ".$_SERVER["PHP_SELF"].'?website='.$websitekey.'&pageid='.$pageid);
     	   				exit;
     				}
     				else
     				{
     					setEventMessages('Failed to write file '.$filetpl, null, 'errors');
    -					header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website.'&pageid='.$pageid);
    +					header("Location: ".$_SERVER["PHP_SELF"].'?website='.$websitekey.'&pageid='.$pageid);
     	   				exit;
     				}
     			}
    @@ -1248,18 +1472,29 @@ if (($action == 'updatesource' || $action == 'updatecontent' || $action == 'conf
     		}
     		else
     		{
    -			header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website.'&pageid='.$pageid);
    +			header("Location: ".$_SERVER["PHP_SELF"].'?website='.$websitekey.'&pageid='.$pageid);
     			exit;
     		}
     	}
     	else
     	{
    -		if (! $error) setEventMessages($langs->trans("NoPageYet"), null, 'warnings');
    +		if (! $error)
    +		{
    +			if (empty($websitekey) || $websitekey == '-1')
    +			{
    +				setEventMessages($langs->trans("NoWebSiteCreateOneFirst"), null, 'warnings');
    +			}
    +			else
    +			{
    +				setEventMessages($langs->trans("NoPageYet"), null, 'warnings');
    +				setEventMessages($langs->trans("YouCanCreatePageOrImportTemplate"), null, 'warnings');
    +			}
    +		}
     	}
     }
     
     // Export site
    -if (GETPOST('exportsite','alpha'))
    +if ($action == 'exportsite')
     {
     	$fileofzip = $object->exportWebSite();
     
    @@ -1276,6 +1511,84 @@ if (GETPOST('exportsite','alpha'))
     	}
     }
     
    +// Import site
    +if ($action == 'importsiteconfirm')
    +{
    +	if (empty($_FILES))
    +	{
    +		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("File")), null, 'errors');
    +		$action = 'importsite';
    +	}
    +	else
    +	{
    +		if (! empty($_FILES))
    +		{
    +			// Check symlink to medias and restore it if ko
    +			$pathtomedias=DOL_DATA_ROOT.'/medias';
    +			$pathtomediasinwebsite=$pathofwebsite.'/medias';
    +			if (! is_link(dol_osencode($pathtomediasinwebsite)))
    +			{
    +				dol_syslog("Create symlink for ".$pathtomedias." into name ".$pathtomediasinwebsite);
    +				dol_mkdir(dirname($pathtomediasinwebsite));     // To be sure dir for website exists
    +				$result = symlink($pathtomedias, $pathtomediasinwebsite);
    +				if (! $result)
    +				{
    +					setEventMessages($langs->trans("ErrorFieldToCreateSymLinkToMedias", $pathtomediasinwebsite, $pathtomedias), null, 'errors');
    +					$action = 'importsite';
    +				}
    +			}
    +
    +			if (is_array($_FILES['userfile']['tmp_name'])) $userfiles=$_FILES['userfile']['tmp_name'];
    +			else $userfiles=array($_FILES['userfile']['tmp_name']);
    +
    +			foreach($userfiles as $key => $userfile)
    +			{
    +				if (empty($_FILES['userfile']['tmp_name'][$key]))
    +				{
    +					$error++;
    +					if ($_FILES['userfile']['error'][$key] == 1 || $_FILES['userfile']['error'][$key] == 2){
    +						setEventMessages($langs->trans('ErrorFileSizeTooLarge'), null, 'errors');
    +						$action = 'importsite';
    +					}
    +					else {
    +						setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("File")), null, 'errors');
    +						$action = 'importsite';
    +					}
    +				}
    +			}
    +
    +			if (! $error)
    +			{
    +				$upload_dir = $conf->website->dir_temp;
    +				$result = dol_add_file_process($upload_dir, 1, -1, 'userfile', '');
    +
    +				// Get name of file (take last one if several name provided)
    +				$fileofzip = $upload_dir.'/unknown';
    +				foreach($_FILES as $key => $ifile)
    +				{
    +					foreach($ifile['name'] as $key2 => $ifile2)
    +					{
    +						$fileofzip = $upload_dir . '/' .$ifile2;
    +					}
    +				}
    +
    +				$result = $object->importWebSite($fileofzip);
    +				if ($result < 0)
    +				{
    +					setEventMessages($object->error, $object->errors, 'errors');
    +					$action = 'importsite';
    +				}
    +				else
    +				{
    +					header("Location: ".$_SERVER["PHP_SELF"].'?website='.$object->ref);
    +					exit();
    +				}
    +			}
    +		}
    +	}
    +}
    +
    +
     
     
     /*
    @@ -1309,7 +1622,7 @@ $moreheadjs.='<script type="text/javascript">'."\n";
     $moreheadjs.='var indicatorBlockUI = \''.DOL_URL_ROOT."/theme/".$conf->theme."/img/working.gif".'\';'."\n";
     $moreheadjs.='</script>'."\n";
     
    -llxHeader($moreheadcss.$moreheadjs, $langs->trans("websiteetup"), $help_url, '', 0, 0, $arrayofjs, $arrayofcss, '', '', '<!-- Begin div class="fiche" -->'."\n".'<div class="fichebutwithotherclass">');
    +llxHeader($moreheadcss.$moreheadjs, $langs->trans("WebsiteSetup"), $help_url, '', 0, 0, $arrayofjs, $arrayofcss, '', '', '<!-- Begin div class="fiche" -->'."\n".'<div class="fichebutwithotherclass">');
     
     print "\n".'<form action="'.$_SERVER["PHP_SELF"].'" method="POST" enctype="multipart/form-data">';
     
    @@ -1350,6 +1663,10 @@ if ($action == 'edit')
     {
     	print '<input type="hidden" name="action" value="update">';
     }
    +if ($action == 'importsite')
    +{
    +	print '<input type="hidden" name="action" value="importsiteconfirm">';
    +}
     if ($action == 'file_manager')
     {
     	print '<input type="hidden" name="action" value="file_manager">';
    @@ -1364,13 +1681,12 @@ if ($action != 'preview' && $action != 'editcontent' && $action != 'editsource')
     
     if (! GETPOST('hide_websitemenu'))
     {
    -//var_dump($objectpage);exit;
    -print '<div class="centpercent websitebar">';
    +	//var_dump($objectpage);exit;
    +	print '<div class="centpercent websitebar">';
    +
     
    -if (count($object->records) > 0)
    -{
     	// ***** Part for web sites
    -
    +	print '<!-- Bar for website -->';
     	print '<div class="websiteselection hideonsmartphoneimp minwidth100 tdoverflowmax100">';
     	print $langs->trans("Website").' : ';
     	print '</div>';
    @@ -1388,10 +1704,10 @@ if (count($object->records) > 0)
     	$i=0;
     	foreach($object->records as $key => $valwebsite)
     	{
    -		if (empty($website)) $website=$valwebsite->ref;
    +		if (empty($websitekey)) $websitekey=$valwebsite->ref;
     
     		$out.='<option value="'.$valwebsite->ref.'"';
    -		if ($website == $valwebsite->ref) $out.=' selected';		// To preselect a value
    +		if ($websitekey == $valwebsite->ref) $out.=' selected';		// To preselect a value
     		$out.='>';
     		$out.=$valwebsite->ref;
     		$out.='</option>';
    @@ -1401,17 +1717,25 @@ if (count($object->records) > 0)
     	$out.=ajax_combobox('website');
     	print $out;
     	//print '<input type="submit" class="button" name="refreshsite" value="'.$langs->trans("Load").'">';
    -	print '<input type="image" class="valignbottom" src="'.img_picto('', 'refresh', '', 0, 1).'" name="refreshpage" value="'.$langs->trans("Load").'">';
    +	print '<input type="image" class="valignmiddle" src="'.img_picto('', 'refresh', '', 0, 1).'" name="refreshpage" value="'.$langs->trans("Load").'">';
     
     
    -	if ($website)
    +	if ($websitekey)
     	{
     		$virtualurl='';
    -		$dataroot=DOL_DATA_ROOT.'/website/'.$website;
    +		$dataroot=DOL_DATA_ROOT.'/website/'.$websitekey;
     		if (! empty($object->virtualhost)) $virtualurl=$object->virtualhost;
     	}
     
    -	if ($website && ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone'))
    +	$array=array();
    +	if ($object->id > 0)
    +	{
    +		$array=$objectpage->fetchAll($object->id, 'ASC,ASC', 'type_container,pageurl');
    +	}
    +	if (! is_array($array) && $array < 0) dol_print_error('', $objectpage->error, $objectpage->errors);
    +	$atleastonepage=(is_array($array) && count($array) > 0);
    +
    +	if ($websitekey && $websitekey != '-1' && ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone'))
     	{
     		$disabled='';
     		if (empty($user->rights->website->write)) $disabled=' disabled="disabled"';
    @@ -1422,6 +1746,16 @@ if (count($object->records) > 0)
     		//print '<input type="submit" class="button"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("EditMenu")).'" name="editmenu">';
     		print '<input type="submit" class="button nobordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("CloneSite")).'" name="createfromclone">';
     		print '<input type="submit" class="button nobordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("ExportSite")).'" name="exportsite">';
    +		if (! $atleastonepage)
    +		{
    +			print '<input type="submit" class="button nobordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("ImportSite")).'" name="importsite">';
    +		}
    +		else
    +		{
    +			print '<input type="submit" class="button nobordertransp" disabled="disabled" value="'.dol_escape_htmltag($langs->trans("ImportSite")).'" name="importsite">';
    +		}
    +
    +		print '<input type="submit" class="buttonDelete" name="deletesite" value="'.$langs->trans("Delete").'"'.($atleastonepage?' disabled="disabled"':'').'>';
     
     		print ' &nbsp; ';
     
    @@ -1430,7 +1764,7 @@ if (count($object->records) > 0)
     		print '<script language="javascript">
     			jQuery(document).ready(function () {
                		jQuery(".button_file_manager").click(function () {
    -					var $dialog = $(\'<div></div>\').html(\'<iframe style="border: 0px;" src="'.DOL_URL_ROOT.'/website/index.php?hide_websitemenu=1&dol_hide_topmenu=1&dol_hide_leftmenu=1&file_manager=1&website='.$website.'&pageid='.$pageid.'" width="100%" height="100%"></iframe>\')
    +					var $dialog = $(\'<div></div>\').html(\'<iframe style="border: 0px;" src="'.DOL_URL_ROOT.'/website/index.php?hide_websitemenu=1&dol_hide_topmenu=1&dol_hide_leftmenu=1&file_manager=1&website='.$websitekey.'&pageid='.$pageid.'" width="100%" height="100%"></iframe>\')
     					.dialog({
     						autoOpen: false,
     						modal: true,
    @@ -1447,31 +1781,33 @@ if (count($object->records) > 0)
     
     	print '</div>';
     
    -	// Button for website
    +
    +	// Toolbar for websites
    +
     	print '<div class="websitetools">';
     
     	if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone')
     	{
     		$urlext=$virtualurl;
    -		$urlint=$urlwithroot.'/public/website/index.php?website='.$website;
    +		$urlint=$urlwithroot.'/public/website/index.php?website='.$websitekey;
     
     		$htmltext = $langs->trans("PreviewSiteServedByDolibarr", $langs->transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $urlint, $dataroot);
     		$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("ReadPerm"), DOL_DOCUMENT_ROOT);
    -		$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("WritePerm"), DOL_DATA_ROOT);
    -		print '<a class="websitebuttonsitepreview" id="previewsite" href="'.$urlwithroot.'/public/website/index.php?website='.$website.'" target="tab'.$website.'" alt="'.dol_escape_htmltag($htmltext).'">';
    +		$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("WritePerm"), DOL_DATA_ROOT.'/website<br>'.DOL_DATA_ROOT.'/medias');
    +		print '<a class="websitebuttonsitepreview" id="previewsite" href="'.$urlwithroot.'/public/website/index.php?website='.$websitekey.'" target="tab'.$websitekey.'" alt="'.dol_escape_htmltag($htmltext).'">';
     		print $form->textwithpicto('', $htmltext, 1, 'preview');
     		print '</a>';
     
     		print '<div class="websiteinputurl" id="websiteinputurl">';
     		print '<input type="text" id="previewsiteurl" class="minwidth200imp" name="previewsite" placeholder="'.$langs->trans("http://myvirtualhost").'" value="'.$virtualurl.'">';
    -		//print '<input type="submit" class="button" name="previewwebsite" target="tab'.$website.'" value="'.$langs->trans("ViewSiteInNewTab").'">';
    +		//print '<input type="submit" class="button" name="previewwebsite" target="tab'.$websitekey.'" value="'.$langs->trans("ViewSiteInNewTab").'">';
     		$htmltext =$langs->trans("SetHereVirtualHost", $dataroot);
     		$htmltext.='<br>';
    +		$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("ReadPerm"), DOL_DOCUMENT_ROOT);
    +		$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("WritePerm"), DOL_DATA_ROOT.'/website<br>'.DOL_DATA_ROOT.'/medias');
    +		$htmltext.='<br>';
     		$htmltext.='<br>';
     		$htmltext.=$langs->trans("YouCanAlsoTestWithPHPS", $dataroot);
    -		$htmltext.='<br>';
    -		$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("ReadPerm"), DOL_DOCUMENT_ROOT);
    -		$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("WritePerm"), DOL_DATA_ROOT);
     		print $form->textwithpicto('', $htmltext, 1, 'help', '', 0, 2, 'helpvirtualhost');
     		print '</div>';
     
    @@ -1481,7 +1817,7 @@ if (count($object->records) > 0)
     			$htmltext.='<br>';
     			$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("ReadPerm"), DOL_DOCUMENT_ROOT);
     			$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("WritePerm"), DOL_DATA_ROOT);
    -			print '<span class="websitebuttonsitepreview websitebuttonsitepreviewdisabled cursornotallowed" id="previewsiteextdisabled" href="" target="tab'.$website.'ext" alt="'.dol_escape_htmltag($langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext)).'">';
    +			print '<span class="websitebuttonsitepreview websitebuttonsitepreviewdisabled cursornotallowed" id="previewsiteextdisabled" href="" target="tab'.$websitekey.'ext" alt="'.dol_escape_htmltag($langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext)).'">';
     			print $form->textwithpicto('', $htmltext, 1, 'preview_ext');
     			print '</span>';
     		}
    @@ -1490,8 +1826,8 @@ if (count($object->records) > 0)
     			$htmltext = $langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext?$urlext:'<span class="error">'.$langs->trans("VirtualHostUrlNotDefined").'</span>');
     			$htmltext.='<br>';
     			$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("ReadPerm"), DOL_DOCUMENT_ROOT);
    -			$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("WritePerm"), DOL_DATA_ROOT);
    -			print '<a class="websitebuttonsitepreview'.($urlext?'':' websitebuttonsitepreviewdisabled cursornotallowed').'" id="previewsiteext" href="'.$urlext.'" target="tab'.$website.'ext" alt="'.dol_escape_htmltag($langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext)).'">';
    +			$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("WritePerm"), DOL_DATA_ROOT.'/website<br>'.DOL_DATA_ROOT.'/medias');
    +			print '<a class="websitebuttonsitepreview'.($urlext?'':' websitebuttonsitepreviewdisabled cursornotallowed').'" id="previewsiteext" href="'.$urlext.'" target="tab'.$websitekey.'ext" alt="'.dol_escape_htmltag($langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext)).'">';
     			print $form->textwithpicto('', $htmltext, 1, 'preview_ext');
     			print '</a>';
     		}
    @@ -1507,16 +1843,13 @@ if (count($object->records) > 0)
     	print '</div>';
     
     
    -	// ***** Part for pages
    +	// Toolbar for pages
     
    -	if ($website && ! in_array($action, array('editcss','editmenu')))
    +	if ($websitekey && $websitekey != '-1' && ! in_array($action, array('editcss','editmenu','importsite')))
     	{
     		print '</div>';	// Close current websitebar to open a new one
     
    -		$array=$objectpage->fetchAll($object->id, 'ASC,ASC', 'type_container,pageurl');
    -		if (! is_array($array) && $array < 0) dol_print_error('', $objectpage->error, $objectpage->errors);
    -		$atleastonepage=(is_array($array) && count($array) > 0);
    -
    +		print '<!-- Bar for websitepage -->';
     		print '<div class="centpercent websitebar"'.($style?' style="'.$style.'"':'').'">';
     
     		print '<div class="websiteselection hideonsmartphoneimp minwidth100 tdoverflowmax100">';
    @@ -1532,7 +1865,14 @@ if (count($object->records) > 0)
     		if ($action != 'addcontainer')
     		{
     			$out='';
    -			$out.='<select name="pageid" id="pageid" class="minwidth200 maxwidth300">';
    +			if ($atleastonepage && $action != 'editsource')
    +			{
    +			    $out.='<select name="pageid" id="pageid" class="minwidth200 maxwidth300">';
    +			}
    +			else
    +			{
    +			    $out.='<select name="pageidbis" id="pageid" class="minwidth200 maxwidth300" disabled="disabled">';
    +			}
     			if ($atleastonepage)
     			{
     				if (empty($pageid) && $action != 'createcontainer')      // Page id is not defined, we try to take one
    @@ -1551,7 +1891,7 @@ if (count($object->records) > 0)
     					$out.='<option value="'.$key.'"';
     					if ($pageid > 0 && $pageid == $key) $out.=' selected';		// To preselect a value
     					$out.='>';
    -					$out.='['.$valpage->type_container.' '.$valpage->id.'] ';
    +					$out.='['.$valpage->type_container.' '.sprintf("%03d", $valpage->id).'] ';
     					$out.=$valpage->pageurl.' - '.$valpage->title;
     					if ($object->fk_default_home && $key == $object->fk_default_home) $out.=' ('.$langs->trans("HomePage").')';
     					$out.='</option>';
    @@ -1559,7 +1899,15 @@ if (count($object->records) > 0)
     			}
     			else $out.='<option value="-1">&nbsp;</option>';
     			$out.='</select>';
    -			$out.=ajax_combobox('pageid');
    +			if ($atleastonepage && $action != 'editsource')
    +			{
    +			    $out.=ajax_combobox('pageid');
    +			}
    +			else
    +			{
    +    			$out.='<input type="hidden" name="pageid" value="'.$pageid.'">';
    +    			$out.=ajax_combobox('pageid');
    +			}
     			print $out;
     		}
     		else
    @@ -1568,7 +1916,7 @@ if (count($object->records) > 0)
     		}
     
     		//print '<input type="submit" class="button" name="refreshpage" value="'.$langs->trans("Load").'"'.($atleastonepage?'':' disabled="disabled"').'>';
    -		print '<input type="image" class="valignbottom" src="'.img_picto('', 'refresh', '', 0, 1).'" name="refreshpage" value="'.$langs->trans("Load").'"'.($atleastonepage?'':' disabled="disabled"').'>';
    +		print '<input type="image" class="valignmiddle" src="'.img_picto('', 'refresh', '', 0, 1).'" name="refreshpage" value="'.$langs->trans("Load").'"'.(($atleastonepage && $action != 'editsource')?'':' disabled="disabled"').'>';
     
     
     		// Print nav arrows
    @@ -1600,10 +1948,10 @@ if (count($object->records) > 0)
     			else dol_print_error($db);
     		}
     
    -		if ($pagepreviousid) print '<a href="'.$_SERVER['PHP_SELF'].'?website='.urlencode($object->ref).'&pageid='.$pagepreviousid.'&action='.$action.'">'.img_previous($langs->trans("PreviousContainer")).'</a>';
    -		else print '<span class="opacitymedium">'.img_previous($langs->trans("PreviousContainer")).'</span>';
    -		if ($pagenextid) print '<a href="'.$_SERVER['PHP_SELF'].'?website='.urlencode($object->ref).'&pageid='.$pagenextid.'&action='.$action.'">'.img_next($langs->trans("NextContainer")).'</a>';
    -		else print '<span class="opacitymedium">'.img_next($langs->trans("NextContainer")).'</span>';
    +		if ($pagepreviousid) print '<a class="valignmiddle" href="'.$_SERVER['PHP_SELF'].'?website='.urlencode($object->ref).'&pageid='.$pagepreviousid.'&action='.$action.'">'.img_previous($langs->trans("PreviousContainer")).'</a>';
    +		else print '<span class="valignmiddle opacitymedium">'.img_previous($langs->trans("PreviousContainer")).'</span>';
    +		if ($pagenextid) print '<a class="valignmiddle" href="'.$_SERVER['PHP_SELF'].'?website='.urlencode($object->ref).'&pageid='.$pagenextid.'&action='.$action.'">'.img_next($langs->trans("NextContainer")).'</a>';
    +		else print '<span class="valignmiddle opacitymedium">'.img_next($langs->trans("NextContainer")).'</span>';
     
     		$websitepage = new WebSitePage($db);
     		if ($pageid > 0 && ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone'))
    @@ -1631,16 +1979,18 @@ if (count($object->records) > 0)
     				print $formconfirm;
     			}
     
    -			if ($pageid > 0)
    +			if ($pageid > 0 && $atleastonepage)		// pageid can be set without pages, if homepage of site is set and all page were removed
     			{
     				// Confirmation to clone
     				if ($action == 'createpagefromclone') {
     					// Create an array for form
    +					$preselectedlanguage = GETPOST('newlang', 'az09') ? GETPOST('newlang', 'az09') : ($objectpage->lang ? $objectpage->lang : $langs->defaultlang);
     					$formquestion = array(
    -						array('type' => 'text', 'name' => 'pageurl', 'label'=> $langs->trans("WEBSITE_PAGENAME")  ,'value'=> 'copy_of_'.$objectpage->pageurl),
    -						array('type' => 'checkbox', 'name' => 'is_a_translation', 'label' => $langs->trans("PageIsANewTranslation"), 'value' => 0),
    -						array('type' => 'other','name' => 'newlang','label' => $langs->trans("Language"), 'value' => $formadmin->select_language(GETPOST('newlang', 'az09')?GETPOST('newlang', 'az09'):$langs->defaultlang, 'newlang', 0, null, 1, 0, 0, 'minwidth200')),
    -						array('type' => 'other','name' => 'newwebsite','label' => $langs->trans("WebSite"), 'value' => $formwebsite->selectWebsite($object->id, 'newwebsite', 0)),
    +						array('type' => 'hidden', 'name' => 'sourcepageurl', 'value'=> $objectpage->pageurl),
    +						array('type' => 'checkbox', 'tdclass'=>'maxwidth200', 'name' => 'is_a_translation', 'label' => $langs->trans("PageIsANewTranslation"), 'value' => 0),
    +						array('type' => 'other','name' => 'newlang', 'label' => $langs->trans("Language"), 'value' => $formadmin->select_language($preselectedlanguage, 'newlang', 0, null, 1, 0, 0, 'minwidth200', 0, 1)),
    +						array('type' => 'other','name' => 'newwebsite', 'label' => $langs->trans("WebSite"), 'value' => $formwebsite->selectWebsite($object->id, 'newwebsite', 0)),
    +						array('type' => 'text', 'tdclass'=>'maxwidth200 fieldrequired', 'name' => 'pageurl', 'label'=> $langs->trans("WEBSITE_PAGENAME"), 'value'=> 'copy_of_'.$objectpage->pageurl),
     					);
     
     				   	$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?website='.$object->ref.'&pageid=' . $pageid, $langs->trans('ClonePage'), '', 'confirm_createpagefromclone', $formquestion, 0, 1, 300, 550);
    @@ -1651,16 +2001,51 @@ if (count($object->records) > 0)
     				print ' &nbsp; ';
     
     				print '<input type="submit" class="button nobordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("EditPageMeta")).'" name="editmeta">';
    +
    +				print '<input type="submit" class="button nobordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("EditHTMLSource")).'" name="editsource">';
    +
    +				print '<!-- button EditInLine and ShowSubcontainers -->'."\n";
    +				print '<div class="websiteselectionsection inline-block">';
    +				print '<div class="inline-block">';
    +				print $langs->trans("EditInLine");
     				if ($websitepage->grabbed_from)
     				{
    -					print '<input type="submit" class="button nobordertransp" disabled="disabled" title="'.dol_escape_htmltag($langs->trans("OnlyEditionOfSourceForGrabbedContent")).'" value="'.dol_escape_htmltag($langs->trans("EditWithEditor")).'" name="editcontent">';
    +					//print '<input type="submit" class="button nobordertransp" disabled="disabled" title="'.dol_escape_htmltag($langs->trans("OnlyEditionOfSourceForGrabbedContent")).'" value="'.dol_escape_htmltag($langs->trans("EditWithEditor")).'" name="editcontent">';
    +					print '<a class="button nobordertransp opacitymedium nohoverborder"'.$disabled.' href="#" disabled="disabled" title="'.dol_escape_htmltag($langs->trans("OnlyEditionOfSourceForGrabbedContent")).'">'.img_picto($langs->trans("OnlyEditionOfSourceForGrabbedContent"),'switch_off','',false,0,0,'','nomarginleft').'</a>';
     				}
     				else
     				{
    -					print '<input type="submit" class="button nobordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("EditWithEditor")).'" name="editcontent">';
    +					//print '<input type="submit" class="button nobordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("EditWithEditor")).'" name="editcontent">';
    +					if (empty($conf->global->WEBSITE_EDITINLINE))
    +					{
    +						print '<a class="button nobordertransp nohoverborder"'.$disabled.' href="'.$_SERVER["PHP_SELF"].'?website='.$object->ref.'&pageid='.$websitepage->id.'&action=seteditinline">'.img_picto($langs->trans("EditInLineOff"),'switch_off','',false,0,0,'','nomarginleft').'</a>';
    +					}
    +					else
    +					{
    +						print '<a class="button nobordertransp nohoverborder"'.$disabled.' href="'.$_SERVER["PHP_SELF"].'?website='.$object->ref.'&pageid='.$websitepage->id.'&action=unseteditinline">'.img_picto($langs->trans("EditInLineOn"),'switch_on','',false,0,0,'','nomarginleft').'</a>';
    +					}
     				}
    +				print '</div>';
    +				print '<div class="inline-block">';
    +				print $langs->trans("ShowSubcontainers");
    +				/*if ($websitepage->grabbed_from)
    +				{
    +					print '<a class="button nobordertransp opacitymedium nohoverborder"'.$disabled.' href="#" disabled="disabled" title="'.dol_escape_htmltag($langs->trans("OnlyEditionOfSourceForGrabbedContent")).'">'.img_picto($langs->trans("OnlyEditionOfSourceForGrabbedContent"),'switch_off','',false,0,0,'','nomarginleft').'</a>';
    +				}
    +				else
    +				{*/
    +					if (empty($conf->global->WEBSITE_SUBCONTAINERSINLINE))
    +					{
    +						print '<a class="button nobordertransp nohoverborder"'.$disabled.' href="'.$_SERVER["PHP_SELF"].'?website='.$object->ref.'&pageid='.$websitepage->id.'&action=setshowsubcontainers">'.img_picto($langs->trans("ShowSubContainersOff"),'switch_off','',false,0,0,'','nomarginleft').'</a>';
    +					}
    +					else
    +					{
    +						print '<a class="button nobordertransp nohoverborder"'.$disabled.' href="'.$_SERVER["PHP_SELF"].'?website='.$object->ref.'&pageid='.$websitepage->id.'&action=unsetshowsubcontainers">'.img_picto($langs->trans("ShowSubContainersOn"),'switch_on','',false,0,0,'','nomarginleft').'</a>';
    +					}
    +				/*}*/
    +				print '</div>';
    +				print '</div>';
     
    -				print '<input type="submit" class="button nobordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("EditHTMLSource")).'" name="editsource">';
     				if ($object->fk_default_home > 0 && $pageid == $object->fk_default_home) print '<input type="submit" class="button nobordertransp" disabled="disabled" value="'.dol_escape_htmltag($langs->trans("SetAsHomePage")).'" name="setashome">';
     				else print '<input type="submit" class="button nobordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("SetAsHomePage")).'" name="setashome">';
     				print '<input type="submit" class="button nobordertransp"'.$disabled.' value="'.dol_escape_htmltag($langs->trans("ClonePage")).'" name="createpagefromclone">';
    @@ -1672,16 +2057,16 @@ if (count($object->records) > 0)
     
     		print '<div class="websitetools">';
     
    -		if ($pageid > 0 && ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone'))
    +		if (($pageid > 0 && $atleastonepage) && ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone'))
     		{
    -			$realpage=$urlwithroot.'/public/website/index.php?website='.$website.'&pageref='.$websitepage->pageurl;
    +			$realpage=$urlwithroot.'/public/website/index.php?website='.$websitekey.'&pageref='.$websitepage->pageurl;
     			$pagealias = $websitepage->pageurl;
     
     			$htmltext = $langs->trans("PreviewSiteServedByDolibarr", $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $realpage, $dataroot);
     			$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("ReadPerm"), DOL_DOCUMENT_ROOT);
    -			$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("WritePerm"), DOL_DATA_ROOT);
    +			$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("WritePerm"), DOL_DATA_ROOT.'/website<br>'.DOL_DATA_ROOT.'/medias');
     
    -			print '<a class="websitebuttonsitepreview" id="previewpage" href="'.$realpage.'&nocache='.dol_now().'" class="button" target="tab'.$website.'" alt="'.dol_escape_htmltag($htmltext).'">';
    +			print '<a class="websitebuttonsitepreview" id="previewpage" href="'.$realpage.'&nocache='.dol_now().'" class="button" target="tab'.$websitekey.'" alt="'.dol_escape_htmltag($htmltext).'">';
     			print $form->textwithpicto('', $htmltext, 1, 'preview');
     			print '</a>';       // View page in new Tab
     
    @@ -1692,14 +2077,14 @@ if (count($object->records) > 0)
     			print '</div>';
     
     			$urlext=$virtualurl.'/'.$pagealias.'.php';
    -			$urlint=$urlwithroot.'/public/website/index.php?website='.$website;
    +			$urlint=$urlwithroot.'/public/website/index.php?website='.$websitekey;
     
     			$htmltext = $langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $dataroot, $virtualurl?$urlext:'<span class="error">'.$langs->trans("VirtualHostUrlNotDefined").'</span>');
     
    -			print '<a class="websitebuttonsitepreview'.($virtualurl?'':' websitebuttonsitepreviewdisabled cursornotallowed').'" id="previewpageext" href="'.$urlext.'" target="tab'.$website.'ext" alt="'.dol_escape_htmltag($htmltext).'">';
    +			print '<a class="websitebuttonsitepreview'.($virtualurl?'':' websitebuttonsitepreviewdisabled cursornotallowed').'" id="previewpageext" href="'.$urlext.'" target="tab'.$websitekey.'ext" alt="'.dol_escape_htmltag($htmltext).'">';
     			print $form->textwithpicto('', $htmltext, 1, 'preview_ext');
     			print '</a>';
    -			//print '<input type="submit" class="button" name="previewpage" target="tab'.$website.'"value="'.$langs->trans("ViewPageInNewTab").'">';
    +			//print '<input type="submit" class="button" name="previewpage" target="tab'.$websitekey.'"value="'.$langs->trans("ViewPageInNewTab").'">';
     
     			// TODO Add js to save alias like we save virtual host name and use dynamic virtual host for url of id=previewpageext
     		}
    @@ -1772,17 +2157,8 @@ if (count($object->records) > 0)
     			}
     		}
     	}
    -}
    -else
    -{
    -	print '<div class="websiteselection">';
    -	$langs->load("errors");
    -	print $langs->trans("ErrorModuleSetupNotComplete");
    -	print '<div>';
    -	$action='';
    -}
     
    -print '</div>';	// end current websitebar
    +	print '</div>';	// end current websitebar
     }
     
     
    @@ -1890,7 +2266,7 @@ if ($action == 'editcss')
     	print '<tr><td class="titlefieldcreate">';
     	print $langs->trans('WebSite');
     	print '</td><td>';
    -	print $website;
    +	print $websitekey;
     	print '</td></tr>';
     
     	// CSS file
    @@ -1971,7 +2347,7 @@ if ($action == 'createsite')
     
         dol_fiche_head($head, 'card', $langs->trans("AddSite"), -1, 'globe');
         */
    -	if ($action == 'createcontainer') print_fiche_titre($langs->trans("AddSite"));
    +	if ($action == 'createcontainer') print load_fiche_titre($langs->trans("AddSite"));
     
     	print '<!-- Add site -->'."\n";
     	//print '<div class="fichecenter">';
    @@ -1980,6 +2356,7 @@ if ($action == 'createsite')
     
     	if (GETPOST('WEBSITE_REF'))         $siteref=GETPOST('WEBSITE_REF','alpha');
     	if (GETPOST('WEBSITE_DESCRIPTION')) $sitedesc=GETPOST('WEBSITE_DESCRIPTION','alpha');
    +	if (GETPOST('WEBSITE_VIRTUALHOST')) $sitevhost=GETPOST('WEBSITE_VIRTUALHOST','alpha');
     
     	print '<tr><td class="titlefieldcreate fieldrequired">';
     	print $langs->trans('Ref');
    @@ -1997,11 +2374,11 @@ if ($action == 'createsite')
     	$htmltext = $langs->trans("SetHereVirtualHost", DOL_DATA_ROOT.'/website/<i>websiteref</i>');
     	$htmltext.='<br>';
     	$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("ReadPerm"), DOL_DOCUMENT_ROOT);
    -	$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("WritePerm"), DOL_DATA_ROOT);
    +	$htmltext.='<br>'.$langs->trans("CheckVirtualHostPerms", $langs->transnoentitiesnoconv("WritePerm"), DOL_DATA_ROOT.'/website<br>'.DOL_DATA_ROOT.'/medias');
     
     	print $form->textwithpicto($langs->trans('Virtualhost'), $htmltext, 1, 'help', '', 0, 2, 'tooltipvirtual');
     	print '</td><td>';
    -	print '<input type="text" class="flat minwidth300" name="WEBSITE_DESCRIPTION" value="'.dol_escape_htmltag($sitedesc).'">';
    +	print '<input type="text" class="flat minwidth300" name="WEBSITE_VIRTUALHOST" value="'.dol_escape_htmltag($sitevhost).'">';
     	print '</td></tr>';
     
     
    @@ -2027,6 +2404,28 @@ if ($action == 'createsite')
     	print '<br>';
     }
     
    +if ($action == 'importsite')
    +{
    +	print '<div class="fiche">';
    +
    +	print '<br>';
    +
    +	print load_fiche_titre($langs->trans("ImportSite"));
    +
    +	dol_fiche_head(array(), '0', '', -1);
    +
    +	print $langs->trans("ZipOfWebsitePackageToImport").'<br><br>';
    +
    +	print '<input class="flat minwidth400" type="file" name="userfile[]" accept=".zip">';
    +	print '<input type="submit" class="button" name="buttonsubmitimportfile" value="'.dol_escape_htmltag($langs->trans("Upload")).'">';
    +	print '<input type="submit" class="button" name="preview" value="'.dol_escape_htmltag($langs->trans("Cancel")).'">';
    +
    +	dol_fiche_end();
    +
    +	print '</div>';
    +
    +	print '<br>';
    +}
     
     if ($action == 'editmeta' || $action == 'createcontainer')
     {
    @@ -2044,7 +2443,7 @@ if ($action == 'editmeta' || $action == 'createcontainer')
     
         dol_fiche_head($head, 'card', $langs->trans("AddPage"), -1, 'globe');
         */
    -	if ($action == 'createcontainer') print_fiche_titre($langs->trans("AddPage"));
    +	if ($action == 'createcontainer') print load_fiche_titre($langs->trans("AddPage"));
     
     	print '<!-- Edit or create page/container -->'."\n";
     	//print '<div class="fichecenter">';
    @@ -2058,15 +2457,15 @@ if ($action == 'editmeta' || $action == 'createcontainer')
     		print '<tr><td class="titlefield">';
     		print $langs->trans("URL");
     		print '</td><td>';
    -		print '<input class="flat minwidth300" type="text" name="externalurl" value="'.dol_escape_htmltag(GETPOST('externalurl','alpha')).'" placeholder="https://externalsite/pagetofetch"> ';
    -		print '<input class="flat paddingtop" type="checkbox" name="grabimages" value="1" checked="checked"> '.$langs->trans("GrabImagesInto");
    +		print info_admin($langs->trans("OnlyEditionOfSourceForGrabbedContentFuture"), 0, 0, 'warning');
    +		print '<input class="flat minwidth500" type="text" name="externalurl" value="'.dol_escape_htmltag(GETPOST('externalurl','alpha')).'" placeholder="https://externalsite/pagetofetch"> ';
    +		print '<br><input class="flat paddingtop" type="checkbox" name="grabimages" value="1" checked="checked"> '.$langs->trans("GrabImagesInto");
     		print ' ';
     		print $langs->trans("ImagesShouldBeSavedInto").' ';
     		$arraygrabimagesinto=array('root'=>$langs->trans("WebsiteRootOfImages"), 'subpage'=>$langs->trans("SubdirOfPage"));
     		print $form->selectarray('grabimagesinto', $arraygrabimagesinto, GETPOSTISSET('grabimagesinto')?GETPOST('grabimagesinto'):'root');
     		print '<br>';
     		print '<input class="button" style="margin-top: 5px" type="submit" name="fetchexternalurl" value="'.dol_escape_htmltag($langs->trans("FetchAndCreate")).'">';
    -		print '<br>'.info_admin($langs->trans("OnlyEditionOfSourceForGrabbedContentFuture"), 0, 0, '1');
     		print '</td></tr>';
     		print '</table>';
     
    @@ -2086,9 +2485,9 @@ if ($action == 'editmeta' || $action == 'createcontainer')
     		print '</td></tr>';
     
     		print '<tr><td class="titlefield">';
    -		print $langs->trans('WEBSITE_PAGEURL');
    +		print $langs->trans('InternalURLOfPage');
     		print '</td><td>';
    -		print '/public/website/index.php?website='.urlencode($website).'&pageid='.urlencode($pageid);
    +		print '/public/website/index.php?website='.urlencode($websitekey).'&pageid='.urlencode($pageid);
     		print '</td></tr>';
     
     		/*
    @@ -2104,18 +2503,27 @@ if ($action == 'editmeta' || $action == 'createcontainer')
     		$pagealiasalt=$objectpage->aliasalt;
     		$pagetitle=$objectpage->title;
     		$pagedescription=$objectpage->description;
    +		$pageimage=$objectpage->image;
     		$pagekeywords=$objectpage->keywords;
     		$pagelang=$objectpage->lang;
     		$pagehtmlheader=$objectpage->htmlheader;
    +		$pagedatecreation=$objectpage->date_creation;
    +		$pagedatemodification=$objectpage->date_modification;
    +		$pageauthorid=$objectpage->fk_user_creat;
    +		$pageusermodifid=$objectpage->fk_user_modif;
     	}
     	else
     	{
     		$type_container = 'page';
    +		$pagedatecreation=dol_now();
    +		$pageauthorid=$user->id;
    +		$pageusermodifid=0;
     	}
     	if (GETPOST('WEBSITE_TITLE','alpha'))       $pagetitle=GETPOST('WEBSITE_TITLE','alpha');
     	if (GETPOST('WEBSITE_PAGENAME','alpha'))    $pageurl=GETPOST('WEBSITE_PAGENAME','alpha');
     	if (GETPOST('WEBSITE_ALIASALT','alpha'))    $pagealiasalt=GETPOST('WEBSITE_ALIASALT','alpha');
     	if (GETPOST('WEBSITE_DESCRIPTION','alpha')) $pagedescription=GETPOST('WEBSITE_DESCRIPTION','alpha');
    +	if (GETPOST('WEBSITE_IMAGE','alpha'))       $pageimage=GETPOST('WEBSITE_IMAGE','alpha');
     	if (GETPOST('WEBSITE_KEYWORDS','alpha'))    $pagekeywords=GETPOST('WEBSITE_KEYWORDS','alpha');
     	if (GETPOST('WEBSITE_LANG','aZ09'))         $pagelang=GETPOST('WEBSITE_LANG','aZ09');
     	if (GETPOST('htmlheader','none'))			$pagehtmlheader=GETPOST('htmlheader','none');
    @@ -2134,6 +2542,7 @@ if ($action == 'editmeta' || $action == 'createcontainer')
     	print '<input type="text" class="flat minwidth300" name="WEBSITE_PAGENAME" id="WEBSITE_PAGENAME" value="'.dol_escape_htmltag($pageurl).'">';
     	print '</td></tr>';
     
    +	// Type of container
     	print '<tr><td class="titlefield fieldrequired">';
     	print $langs->trans('WEBSITE_TYPE_CONTAINER');
     	print '</td><td>';
    @@ -2155,6 +2564,13 @@ if ($action == 'editmeta' || $action == 'createcontainer')
     	print '<input type="text" class="flat quatrevingtpercent" name="WEBSITE_DESCRIPTION" value="'.dol_escape_htmltag($pagedescription).'">';
     	print '</td></tr>';
     
    +	print '<tr><td>';
    +	$htmlhelp=$langs->trans("WEBSITE_IMAGEDesc");
    +	print $form->textwithpicto($langs->trans('WEBSITE_IMAGE'), $htmlhelp, 1, 'help', '', 0, 2, 'imagetooltip');
    +	print '</td><td>';
    +	print '<input type="text" class="flat quatrevingtpercent" name="WEBSITE_IMAGE" value="'.dol_escape_htmltag($pageimage).'">';
    +	print '</td></tr>';
    +
     	print '<tr><td>';
     	print $langs->trans('WEBSITE_KEYWORDS');
     	print '</td><td>';
    @@ -2167,20 +2583,105 @@ if ($action == 'editmeta' || $action == 'createcontainer')
     	print $formadmin->select_language($pagelang?$pagelang:$langs->defaultlang, 'WEBSITE_LANG', 0, null, '1');
     	print '</td></tr>';
     
    +	if ($action != 'createcontainer')
    +	{
    +		// Translation of
    +		if ($objectpage->fk_page > 0)
    +		{
    +			print '<tr><td>';
    +			print $langs->trans('ThisPageIsTranslationOf');
    +			print '</td><td>';
    +			$sourcepage=new WebsitePage($db);
    +			$result = $sourcepage->fetch($objectpage->fk_page);
    +			if ($result == 0)	// not found, we can reset value
    +			{
    +
    +			}
    +			elseif ($result > 0)
    +			{
    +				print $sourcepage->getNomUrl(1);
    +			}
    +			print '</td></tr>';
    +		}
    +
    +		// Has translation pages
    +		$sql='SELECT rowid, lang from '.MAIN_DB_PREFIX.'website_page where fk_page = '.$objectpage->id;
    +		$resql = $db->query($sql);
    +		if ($resql)
    +		{
    +			$num_rows = $db->num_rows($resql);
    +			if ($num_rows > 0)
    +			{
    +				print '<tr><td>';
    +				print $langs->trans('ThisPageHasTranslationPages');
    +				print '</td><td>';
    +				$i=0;
    +				while ($obj = $db->fetch_object($resql))
    +				{
    +					$tmppage=new WebsitePage($db);
    +					$tmppage->fetch($obj->rowid);
    +					if ($i > 0) print ' - ';
    +					print $tmppage->getNomUrl(1).' ('.$tmppage->lang.')';
    +					$i++;
    +				}
    +				print '</td></tr>';
    +			}
    +		}
    +		else dol_print_error($db);
    +	}
    +
     	print '<tr><td class="titlefieldcreate">';
     	$htmlhelp=$langs->trans("WEBSITE_ALIASALTDesc");
    -	print $form->textwithpicto($langs->trans('WEBSITE_ALIASALT'), $htmlhelp, 1, 'help', '', 0, 2, 'htmlheadertooltip');
    +	print $form->textwithpicto($langs->trans('WEBSITE_ALIASALT'), $htmlhelp, 1, 'help', '', 0, 2, 'aliastooltip');
     	print '</td><td>';
     	print '<input type="text" class="flat minwidth300" name="WEBSITE_ALIASALT" value="'.dol_escape_htmltag($pagealiasalt).'">';
     	print '</td></tr>';
     
    +	$fuser=new User($db);
    +
    +	print '<tr><td>';
    +	print $langs->trans('Author');
    +	print '</td><td>';
    +	if ($pageauthorid > 0)
    +	{
    +	    $fuser->fetch($pageauthorid);
    +	    print $fuser->getNomUrl(1);
    +	}
    +	print '</td></tr>';
    +
    +	print '<tr><td>';
    +	print $langs->trans('DateCreation');
    +	print '</td><td>';
    +	print $form->select_date($pagedatecreation, 'datecreation', 1, 1, 0, '', 1, 1);
    +	//print dol_print_date($pagedatecreation, 'dayhour');
    +	print '</td></tr>';
    +
    +	if ($action != 'createcontainer')
    +	{
    +	    print '<tr><td>';
    +	    print $langs->trans('LastModificationAuthor');
    +	    print '</td><td>';
    +	    if ($pageusermodifid > 0)
    +	    {
    +	        $fuser->fetch($pageusermodifid);
    +	        print $fuser->getNomUrl(1);
    +	    }
    +	    print '</td></tr>';
    +
    +	    print '<tr><td>';
    +		print $langs->trans('DateModification');
    +		print '</td><td>';
    +		print dol_print_date($pagedatemodification, 'dayhour', 'tzuser');
    +		print '</td></tr>';
    +	}
    +
     	print '<tr><td class="tdhtmlheader tdtop">';
    -	$htmlhelp=$langs->trans("EditTheWebSiteForACommonHeader").'<br><br>';
    -	$htmlhelp=$langs->trans("Example").' :<br>';
    +	$htmlhelp =$langs->trans("EditTheWebSiteForACommonHeader").'<br><br>';
    +	$htmlhelp.=$langs->trans("Example").' :<br>';
     	$htmlhelp.=dol_htmlentitiesbr($htmlheadercontentdefault);
     	print $form->textwithpicto($langs->trans('HtmlHeaderPage'), $htmlhelp, 1, 'help', '', 0, 2, 'htmlheadertooltip');
     	print '</td><td>';
    -	$doleditor=new DolEditor('htmlheader', $pagehtmlheader, '', '180', 'ace', 'In', true, false, 'ace', 0, '100%', '');
    +	$doleditor=new DolEditor('htmlheader', $pagehtmlheader, '', '120', 'ace', 'In', true, false, 'ace', ROWS_3, '100%', '');
     	print $doleditor->Create(1, '', true, 'HTML Header', 'html');
     	print '</td></tr>';
     
    @@ -2235,7 +2736,6 @@ if ($action == 'editfile' || $action == 'file_manager')
     	include DOL_DOCUMENT_ROOT.'/core/tpl/filemanager.tpl.php';
     
     	print '</div>';
    -
     }
     
     if ($action == 'editmenu')
    @@ -2246,31 +2746,34 @@ if ($action == 'editmenu')
     
     if ($action == 'editsource')
     {
    -	/*
    -	 * Editing with source editor
    -	 */
    +	// Editing with source editor
     
     	$contentforedit = '';
    -	/*$contentforedit.='<style scoped>'."\n";        // "scoped" means "apply to parent element only". Not yet supported by browsers
    -	 $contentforedit.=$csscontent;
    -	 $contentforedit.='</style>'."\n";*/
    +	//$contentforedit.='<style scoped>'."\n";        // "scoped" means "apply to parent element only". Not yet supported by browsers
    +	//$contentforedit.=$csscontent;
    +	//$contentforedit.='</style>'."\n";
     	$contentforedit .= $objectpage->content;
    -
    +	//var_dump($_SESSION["dol_screenheight"]);
    +	$maxheightwin=480;
    +	if (isset($_SESSION["dol_screenheight"]))
    +	{
    +		if ($_SESSION["dol_screenheight"] > 680) $maxheightwin = $_SESSION["dol_screenheight"]-400;
    +		if ($_SESSION["dol_screenheight"] > 800) $maxheightwin = $_SESSION["dol_screenheight"]-490;
    +	}
    +	//var_dump($_SESSION["dol_screenheight"]);
     	require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
    -	$doleditor=new DolEditor('PAGE_CONTENT',$contentforedit,'',500,'Full','',true,true,'ace',ROWS_5,'90%');
    +	$doleditor=new DolEditor('PAGE_CONTENT',$contentforedit,'',$maxheightwin,'Full','',true,true,'ace',ROWS_5,'40%');
     	$doleditor->Create(0, '', false, 'HTML Source', 'php');
     }
     
    -if ($action == 'editcontent')
    +/*if ($action == 'editcontent')
     {
    -	/*
    -     * Editing with default ckeditor
    -     */
    +	// Editing with default ckeditor
     
     	$contentforedit = '';
    -	/*$contentforedit.='<style scoped>'."\n";        // "scoped" means "apply to parent element only". Not yet supported by browsers
    -    $contentforedit.=$csscontent;
    -    $contentforedit.='</style>'."\n";*/
    +	//$contentforedit.='<style scoped>'."\n";        // "scoped" means "apply to parent element only". Not yet supported by browsers
    +    //$contentforedit.=$csscontent;
    +    //$contentforedit.='</style>'."\n";
     	$contentforedit .= $objectpage->content;
     
     	$contentforedit = preg_replace('/(<img.*src=")(?!http)/', '\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $contentforedit, -1, $nbrep);
    @@ -2278,40 +2781,53 @@ if ($action == 'editcontent')
     	require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
     	$doleditor=new DolEditor('PAGE_CONTENT',$contentforedit,'',500,'Full','',true,true,true,ROWS_5,'90%');
     	$doleditor->Create(0, '', false);
    -}
    -
    -print "</div>\n</form>\n";
    +}*/
     
    +print "</div>\n";
    +print "</form>\n";
     
     
     if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone')
     {
    -	if ($pageid > 0)
    +	if ($pageid > 0 && $atleastonepage)
     	{
    +		// $filejs
    +		// $filecss
    +		// $filephp
    +
     		// Ouput page under the Dolibarr top menu
     		$objectpage->fetch($pageid);
    -		$csscontent = @file_get_contents($filecss);
     		$jscontent = @file_get_contents($filejs);
     
    -		$out = '<!-- Page content '.$filetpl.' : Div with (CSS Of website from file + Style/htmlheader of page from database + Page content from database) -->'."\n";
    +		$out = '<!-- Page content '.$filetpl.' : Div with (Htmlheader/Style of page from database + CSS Of website from file + Page content from database or by include if WEBSITE_SUBCONTAINERSINLINE is on) -->'."\n";
     
     		// Include a html so we can benefit of the header of page.
     		// Note: We can't use iframe as it can be used to include another external html file
     		// Note: We can't use frame as it is deprecated.
    +		/*if ($includepageintoaframeoradiv == 'iframe')
    +		{
    +			$out .= "<iframe><body></html>";
    +		}*/
     		$out.="\n<html><head>\n";
    +		$out.="<!-- htmlheader/style of page from database -->\n";
     		$out.=dolWebsiteReplacementOfLinks($object, $objectpage->htmlheader, 1);
     		$out.="</head>\n";
     		$out.="\n<body>";
     
    -		$out.='<div id="websitecontentundertopmenu" class="websitecontentundertopmenu">'."\n";
     
    -		// Note: <div> or <section> with contenteditable="true" inside this can be edited with inline ckeditor
    +		$out.='<div id="websitecontentundertopmenu" class="websitecontentundertopmenu boostrap-iso">'."\n";
     
     		// REPLACEMENT OF LINKS When page called by website editor
     
    +		$out.='<!-- style of website from file -->'."\n";
     		$out.='<style scoped>'."\n";        // "scoped" means "apply to parent element only". No more supported by browsers, snif !
     		$tmpout='';
     		$tmpout.= '/* Include website CSS file */'."\n";
    +		//$csscontent = @file_get_contents($filecss);
    +		ob_start();
    +		include $filecss;
    +		$csscontent = ob_get_contents();
    +		ob_end_clean();
     		$tmpout.= dolWebsiteReplacementOfLinks($object, $csscontent, 1);
     		$tmpout.= '/* Include style from the HTML header of page */'."\n";
     		// Clean the html header of page to get only <style> content
    @@ -2329,12 +2845,38 @@ if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpa
     		$out.=$tmpout;
     		$out.='</style>'."\n";
     
    +		// Note: <div> or <section> with contenteditable="true" inside this can be edited with inline ckeditor
    +
     		// Do not enable the contenteditable when page was grabbed, ckeditor is removing span and adding borders,
     		// so editable will be available only from container created from scratch
     		//$out.='<div id="bodywebsite" class="bodywebsite"'.($objectpage->grabbed_from ? ' contenteditable="true"' : '').'>'."\n";
    -		$out.='<div id="bodywebsite" class="bodywebsite">'."\n";
    +		$out.='<div id="divbodywebsite" class="bodywebsite">'."\n";
     
    -		$out.=dolWebsiteReplacementOfLinks($object, $objectpage->content)."\n";
    +		$newcontent = $objectpage->content;
    +
    +		// If mode WEBSITE_SUBCONTAINERSINLINE is on
    +		if (! empty($conf->global->WEBSITE_SUBCONTAINERSINLINE))
    +		{
    +			define('USEDOLIBARREDITOR', 1);
    +			//var_dump($filetpl);
    +			$filephp = $filetpl;
    +			ob_start();
    +			include $filephp;
    +			$newcontent = ob_get_contents();
    +			ob_end_clean();
    +		}
    +
    +		// Change the contenteditable to "true" or "false" when mode Edit Inline is on or off
    +		if (empty($conf->global->WEBSITE_EDITINLINE))
    +		{
    +			$newcontent = preg_replace('/(div|section)(\s[^\>]*)contenteditable="true"/', '\1\2', $newcontent);
    +		}
    +		else
    +		{
    +			// TODO Add the contenteditable="true" when mode Edit Inline is on
    +		}
    +		$out.=dolWebsiteReplacementOfLinks($object, $newcontent)."\n";
    +		//$out.=$newcontent;
     
     		$out.='</div>';
     
    @@ -2348,9 +2890,6 @@ if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpa
     
     		$out.= "\n".'<!-- End page content '.$filetpl.' -->'."\n\n";
     
    -		// For jqueryscoped (does not work as expected)
    -		//$out.="<script>$.scoped();</script>";
    -
     		print $out;
     
     		/*file_put_contents($filetpl, $out);
    @@ -2371,18 +2910,24 @@ if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpa
             //include_once $original_file_osencoded;
             */
     
    -		/*print '<iframe class="websiteiframenoborder centpercent" src="'.DOL_URL_ROOT.'/public/website/index.php?website='.$website.'&pageid='.$pageid.'"/>';
    +		/*print '<iframe class="websiteiframenoborder centpercent" src="'.DOL_URL_ROOT.'/public/website/index.php?website='.$websitekey.'&pageid='.$pageid.'"/>';
             print '</iframe>';*/
     	}
     	else
     	{
    -		print '<br><br><div class="center">'.$langs->trans("PreviewOfSiteNotYetAvailable", $website).'</center><br><br><br>';
    -		print '<div class="center"><div class="logo_setup"></div></div>';
    +		if (empty($websitekey) || $websitekey == '-1')
    +		{
    +			print '<br><br><div class="center">'.$langs->trans("NoWebSiteCreateOneFirst").'</center><br><br><br>';
    +			print '<div class="center"><div class="logo_setup"></div></div>';
    +		}
    +		else
    +		{
    +			print '<br><br><div class="center">'.$langs->trans("PreviewOfSiteNotYetAvailable", $object->ref).'</center><br><br><br>';
    +			print '<div class="center"><div class="logo_setup"></div></div>';
    +		}
     	}
     }
     
    -
    -
    +// End of page
     llxFooter();
    -
     $db->close();
    diff --git a/htdocs/website/page-sample-corporatehome.html b/htdocs/website/samples/page-sample-corporatehome.html
    similarity index 100%
    rename from htdocs/website/page-sample-corporatehome.html
    rename to htdocs/website/samples/page-sample-corporatehome.html
    diff --git a/htdocs/website/page-sample-empty.html b/htdocs/website/samples/page-sample-empty.html
    similarity index 100%
    rename from htdocs/website/page-sample-empty.html
    rename to htdocs/website/samples/page-sample-empty.html
    diff --git a/htdocs/website/samples/wrapper.html b/htdocs/website/samples/wrapper.html
    new file mode 100644
    index 00000000000..32ed05e49c1
    --- /dev/null
    +++ b/htdocs/website/samples/wrapper.html
    @@ -0,0 +1,134 @@
    +<?php
    +// BEGIN PHP File wrapper.php - DO NOT MODIFY - It is just a copy of wrapper.html sample.
    +$websitekey=basename(dirname(__FILE__));
    +if (! defined('USEDOLIBARRSERVER') && ! defined('USEDOLIBARREDITOR')) { require_once './master.inc.php'; } // Load master if not already loaded
    +include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php';
    +
    +$encoding = '';
    +$hashp=GETPOST('hashp','aZ09');
    +$modulepart=GETPOST('modulepart','aZ09');
    +$entity=GETPOST('entity','int')?GETPOST('entity','int'):$conf->entity;
    +$original_file=GETPOST("file","alpha");
    +
    +// If we have a hash public (hashp), we guess the original_file.
    +if (! empty($hashp))
    +{
    +	include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php';
    +	$ecmfile=new EcmFiles($db);
    +	$result = $ecmfile->fetch(0, '', '', '', $hashp);
    +	if ($result > 0)
    +	{
    +		$tmp = explode('/', $ecmfile->filepath, 2);		// $ecmfile->filepath is relative to document directory
    +		// filepath can be 'users/X' or 'X/propale/PR11111'
    +		if (is_numeric($tmp[0])) // If first tmp is numeric, it is subdir of company for multicompany, we take next part.
    +		{
    +			$tmp = explode('/', $tmp[1], 2);
    +		}
    +		$moduleparttocheck = $tmp[0];	// moduleparttocheck is first part of path
    +
    +		if ($modulepart)	// Not required, so often not defined, for link using public hashp parameter.
    +		{
    +			if ($moduleparttocheck == $modulepart)
    +			{
    +				// We remove first level of directory
    +				$original_file = (($tmp[1]?$tmp[1].'/':'').$ecmfile->filename);		// this is relative to module dir
    +				//var_dump($original_file); exit;
    +			}
    +			else
    +			{
    +				print 'Bad link. File is from another module part.';
    +			}
    +		}
    +		else
    +		{
    +			$modulepart = $moduleparttocheck;
    +			$original_file = (($tmp[1]?$tmp[1].'/':'').$ecmfile->filename);		// this is relative to module dir
    +		}
    +	}
    +	else
    +	{
    +		print "ErrorFileNotFoundWithSharedLink";
    +		exit;
    +	}
    +}
    +
    +// Define attachment (attachment=true to force choice popup 'open'/'save as')
    +$attachment = true;
    +if (preg_match('/\.(html|htm)$/i',$original_file)) $attachment = false;
    +if (isset($_GET["attachment"])) $attachment = GETPOST("attachment",'none')?true:false;
    +if (! empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS_WEBSITE)) $attachment=false;
    +
    +// Define mime type
    +$type = 'application/octet-stream';
    +if (GETPOST('type','none')) $type=GETPOST('type','alpha');
    +else $type=dol_mimetype($original_file);
    +
    +// Security: Delete string ../ into $original_file
    +$original_file=str_replace("../","/", $original_file);
    +
    +// Cache or not
    +if (GETPOST("cache",'none') || image_format_supported($original_file) >= 0)
    +{
    +    // Important: Following code is to avoid page request by browser and PHP CPU at
    +    // each Dolibarr page access.
    +    header('Cache-Control: max-age=3600, public, must-revalidate');
    +    header('Pragma: cache');       // This is to avoid having Pragma: no-cache
    +}
    +
    +// Find the subdirectory name as the reference
    +$refname=basename(dirname($original_file)."/");
    +
    +if ($_GET["modulepart"] == "mycompany" && preg_match('/^\/?logos\//', $original_file)) 
    +{
    +	readfile(dol_osencode($conf->mycompany->dir_output."/".$original_file));
    +}
    +else 
    +{
    +	include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
    +	$check_access = dol_check_secure_access_document($modulepart, $original_file, $entity, $refname);
    +	$accessallowed              = $check_access['accessallowed'];
    +	$sqlprotectagainstexternals = $check_access['sqlprotectagainstexternals'];
    +	$fullpath_original_file     = $check_access['original_file'];               // $fullpath_original_file is now a full path name
    +	if (! empty($_GET["hashp"]))
    +	{
    +		$accessallowed = 1;					// When using hashp, link is public so we force $accessallowed
    +		$sqlprotectagainstexternals = '';
    +	}
    +	
    +	// Security:
    +	// Limit access if permissions are wrong
    +	if (! $accessallowed)
    +	{
    +		print 'Access forbidden';
    +		exit;
    +	}
    +
    +	clearstatcache();
    +
    +	$filename = basename($fullpath_original_file);
    +
    +	// Output file on browser
    +	dol_syslog("wrapper.php download $fullpath_original_file filename=$filename content-type=$type");
    +	$fullpath_original_file_osencoded=dol_osencode($fullpath_original_file);	// New file name encoded in OS encoding charset
    +
    +	// This test if file exists should be useless. We keep it to find bug more easily
    +	if (! file_exists($fullpath_original_file_osencoded))
    +	{
    +		print "ErrorFileDoesNotExists: ".$original_file;
    +		exit;
    +	}
    +
    +	// Permissions are ok and file found, so we return it
    +	//top_httphead($type);
    +	header('Content-Type: '.$type);
    +	header('Content-Description: File Transfer');
    +	if ($encoding)   header('Content-Encoding: '.$encoding);
    +	// Add MIME Content-Disposition from RFC 2183 (inline=automatically displayed, attachment=need user action to open)
    +	if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"');
    +	else header('Content-Disposition: inline; filename="'.$filename.'"');
    +	header('Content-Length: ' . dol_filesize($fullpath_original_file));
    +
    +	readfile($fullpath_original_file_osencoded);
    +}
    +if (is_object($db)) $db->close();
    +// END PHP ?>
    diff --git a/htdocs/website/websiteaccount_card.php b/htdocs/website/websiteaccount_card.php
    index 9a1ad910672..24f87678505 100644
    --- a/htdocs/website/websiteaccount_card.php
    +++ b/htdocs/website/websiteaccount_card.php
    @@ -22,24 +22,11 @@
      */
     
     // Load Dolibarr environment
    -$res=0;
    -// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
    -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include($_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php");
    -// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
    -$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1;
    -while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; }
    -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php");
    -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php");
    -// Try main.inc.php using relative path
    -if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php");
    -if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php");
    -if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php");
    -if (! $res) die("Include of main fails");
    -
    -include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php');
    -include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php');
    -include_once(DOL_DOCUMENT_ROOT.'/societe/class/societeaccount.class.php');
    -include_once(DOL_DOCUMENT_ROOT.'/website/lib/websiteaccount.lib.php');
    +require '../main.inc.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/societe/class/societeaccount.class.php';
    +require_once DOL_DOCUMENT_ROOT.'/website/lib/websiteaccount.lib.php';
     
     // Load translation files required by the page
     $langs->loadLangs(array("website","other"));
    @@ -59,7 +46,7 @@ $diroutputmassaction=$conf->website->dir_output . '/temp/massgeneration/'.$user-
     $hookmanager->initHooks(array('websiteaccountcard'));     // Note that conf->hooks_modules contains array
     // Fetch optionals attributes and labels
     $extralabels = $extrafields->fetch_name_optionals_label('societeaccount');
    -$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
    +$search_array_options=$extrafields->getOptionalsFromPost($object->table_element,'','search_');
     
     // Initialize array of search criterias
     $search_all=trim(GETPOST("search_all",'alpha'));
    @@ -220,12 +207,11 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     	    $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteWebsiteAccount'), $langs->trans('ConfirmDeleteWebsiteAccount'), 'confirm_delete', '', 0, 1);
     	}
     
    -	if (! $formconfirm) {
    -	    $parameters = array('lineid' => $lineid);
    -	    $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    -	    if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    -	    elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
    -	}
    +	// Call Hook formConfirm
    +	$parameters = array('lineid' => $lineid);
    +	$reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
    +	if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
    +	elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
     
     	// Print form confirm
     	print $formconfirm;
    @@ -395,7 +381,6 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
     	include DOL_DOCUMENT_ROOT.'/core/tpl/card_presend.tpl.php';
     }
     
    -
     // End of page
     llxFooter();
     $db->close();
    diff --git a/scripts/accountancy/export-thirdpartyaccount.php b/scripts/accountancy/export-thirdpartyaccount.php
    index 2d557768d7d..c135e33016c 100755
    --- a/scripts/accountancy/export-thirdpartyaccount.php
    +++ b/scripts/accountancy/export-thirdpartyaccount.php
    @@ -1,8 +1,9 @@
     #!/usr/bin/env php
     <?php
    -/* Copyright (C) 2013-2014 Olivier Geffroy		<jeff@jeffinfo.com>
    - * Copyright (C) 2013-2014 Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
    - * Copyright (C) 2014	   Florian Henry		<florian.henry@open-concept.pro>
    +/* Copyright (C) 2013-2014  Olivier Geffroy     <jeff@jeffinfo.com>
    + * Copyright (C) 2013-2014  Alexandre Spangaro  <aspangaro.dolibarr@gmail.com>
    + * Copyright (C) 2014       Florian Henry       <florian.henry@open-concept.pro>
    + * Copyright (C) 2018       Frédéric France     <frederic.france@netlogic.fr>
      *
      * 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
    @@ -24,14 +25,11 @@
      * \brief		Page to detect empty accounting account
      */
     
    -require_once($path."../../htdocs/master.inc.php");
    +require_once $path."../../htdocs/master.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/core/lib/report.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
     
    -$langs->load("companies");
    -$langs->load("compta");
    -$langs->load("main");
    -$langs->load("accountancy");
    +$langs->loadLangs(array("companies", "compta", "main", "accountancy"));
     
     // Security check
     if (!$user->admin)
    @@ -102,7 +100,7 @@ $periodlink = '';
     $exportlink = '';
     
     $nom = $langs->trans("ReportThirdParty");
    -$period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1);
    +$period = $form->selectDate($date_start, 'date_start', 0, 0, 0, '', 1, 0) . ' - ' . $form->selectDate($date_end, 'date_end', 0, 0, 0, '', 1, 0);
     $description = $langs->trans("DescThirdPartyReport");
     $builddate=dol_now();
     
    @@ -130,7 +128,7 @@ $sql .= " WHERE f.fk_soc = s.rowid";
     $sql .= " AND s.fk_pays = cp.rowid";
     if (! empty($date_start) && ! empty($date_end))
     	$sql .= " AND f.datec >= '" . $db->idate($date_start) . "' AND f.datec <= '" . $db->idate($date_end) . "'";
    -$sql .= " AND f.entity = " . $conf->entity;
    +$sql .= " AND f.entity IN (".getEntity('invoice',0).")";
     if ($socid)
     	$sql .= " AND f.fk_soc = " . $socid;
     $sql .= " GROUP BY name";
    diff --git a/scripts/bank/export-bank-receipts.php b/scripts/bank/export-bank-receipts.php
    index 398ec1d7a19..84af2e27f9f 100755
    --- a/scripts/bank/export-bank-receipts.php
    +++ b/scripts/bank/export-bank-receipts.php
    @@ -33,7 +33,7 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     	exit(-1);
     }
     
    -require_once($path."../../htdocs/master.inc.php");
    +require_once $path."../../htdocs/master.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
    @@ -108,13 +108,9 @@ if (! empty($newlangid))
     		$outputlangs->setDefaultLang($newlangid);
     	}
     }
    -$outputlangs->load("main");
    -$outputlangs->load("bills");
    -$outputlangs->load("companies");
    -$outputlangs->load("banks");
    -$outputlangs->load("members");
    -$outputlangs->load("compta");
     
    +// Load translation files required by the page
    +$outputlangs->loadLangs(array("main", "companies", "bills", "banks", "members", "compta"));
     
     $acct=new Account($db);
     $result=$acct->fetch('',$bankref);
    diff --git a/scripts/company/export-contacts-xls-example.php b/scripts/company/export-contacts-xls-example.php
    index 5fd7806a26c..c4887cb5ee1 100755
    --- a/scripts/company/export-contacts-xls-example.php
    +++ b/scripts/company/export-contacts-xls-example.php
    @@ -41,13 +41,13 @@ if (! isset($argv[1]) || ! $argv[1]) {
     $now=$argv[1];
     
     
    -require_once($path."../../htdocs/master.inc.php");
    -//require_once(PHP_WRITEEXCEL_PATH."/class.writeexcel_workbook.inc.php");
    -//require_once(PHP_WRITEEXCEL_PATH."/class.writeexcel_worksheet.inc.php");
    +require_once $path."../../htdocs/master.inc.php";
    +//require_once PHP_WRITEEXCEL_PATH."/class.writeexcel_workbook.inc.php";
    +//require_once PHP_WRITEEXCEL_PATH."/class.writeexcel_worksheet.inc.php";
     
    -require_once(PHPEXCEL_PATH."/PHPExcel.php");
    -//require_once(PHPEXCEL_PATH."/PHPExcel/Writer/Excel2007.php");
    -require_once(PHPEXCEL_PATH."/PHPExcel/Writer/Excel5.php");
    +require_once PHPEXCEL_PATH."/PHPExcel.php";
    +//require_once PHPEXCEL_PATH."/PHPExcel/Writer/Excel2007.php";
    +require_once PHPEXCEL_PATH."/PHPExcel/Writer/Excel5.php";
     
     // Global variables
     $version=DOL_VERSION;
    diff --git a/scripts/company/sync_contacts_dolibarr2ldap.php b/scripts/company/sync_contacts_dolibarr2ldap.php
    index 900cdbc35ed..32260291aa7 100755
    --- a/scripts/company/sync_contacts_dolibarr2ldap.php
    +++ b/scripts/company/sync_contacts_dolibarr2ldap.php
    @@ -35,10 +35,10 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     }
     
     
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/contact/class/contact.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/user/class/user.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/contact/class/contact.class.php";
    +require_once DOL_DOCUMENT_ROOT."/user/class/user.class.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/ldap.class.php";
     
     // Global variables
     $version=DOL_VERSION;
    diff --git a/scripts/contracts/email_expire_services_to_customers.php b/scripts/contracts/email_expire_services_to_customers.php
    index 0f5c91817db..43a0b2524e6 100755
    --- a/scripts/contracts/email_expire_services_to_customers.php
    +++ b/scripts/contracts/email_expire_services_to_customers.php
    @@ -50,12 +50,10 @@ $mode=$argv[1];
     $targettype=$argv[2];
     
     
    -require($path."../../htdocs/master.inc.php");
    -require_once (DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php");
    -
    -$langs->load('main');
    -$langs->load('contracts');
    +require $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php";
     
    +$langs->loadLangs(array('main', 'contracts'));
     
     // Global variables
     $version=DOL_VERSION;
    @@ -154,10 +152,9 @@ if ($resql)
                 // Define line content
                 $outputlangs=new Translate('',$conf);
                 $outputlangs->setDefaultLang(empty($obj->default_lang)?$langs->defaultlang:$obj->default_lang);	// By default language of customer
    -            $outputlangs->load("bills");
    -            $outputlangs->load("main");
    -            $outputlangs->load("contracts");
    -    		$outputlangs->load("products");
    +
    +            // Load translation files required by the page
    +            $outputlangs->loadLangs(array("main", "contracts", "bills", "products"));
     
                 if (dol_strlen($newemail))
                 {
    diff --git a/scripts/contracts/email_expire_services_to_representatives.php b/scripts/contracts/email_expire_services_to_representatives.php
    index ad7ccebcba7..a23652a779f 100755
    --- a/scripts/contracts/email_expire_services_to_representatives.php
    +++ b/scripts/contracts/email_expire_services_to_representatives.php
    @@ -48,12 +48,10 @@ if (! isset($argv[1]) || ! $argv[1] || ! in_array($argv[1],array('test','confirm
     $mode=$argv[1];
     
     
    -require($path."../../htdocs/master.inc.php");
    -require_once (DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php");
    -
    -$langs->load('main');
    -$langs->load('contracts');
    +require $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php";
     
    +$langs->loadLangs(array('main', 'contracts'));
     
     // Global variables
     $version=DOL_VERSION;
    @@ -127,10 +125,9 @@ if ($resql)
                 // Define line content
                 $outputlangs=new Translate('',$conf);
                 $outputlangs->setDefaultLang(empty($obj->lang)?$langs->defaultlang:$obj->lang);	// By default language of sale representative
    -            $outputlangs->load("bills");
    -            $outputlangs->load("main");
    -    		$outputlangs->load("contracts");
    -            $outputlangs->load("products");
    +
    +            // Load translation files required by the page
    +            $outputlangs->loadLangs(array("main", "contracts", "bills", "products"));
     
                 if (dol_strlen($obj->email))
                 {
    diff --git a/scripts/cron/cron_run_jobs.php b/scripts/cron/cron_run_jobs.php
    index 4e3cefce5af..873fc0ae9fb 100755
    --- a/scripts/cron/cron_run_jobs.php
    +++ b/scripts/cron/cron_run_jobs.php
    @@ -41,9 +41,9 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     	exit(-1);
     }
     
    -require_once ($path."../../htdocs/master.inc.php");
    -require_once (DOL_DOCUMENT_ROOT."/cron/class/cronjob.class.php");
    -require_once (DOL_DOCUMENT_ROOT.'/user/class/user.class.php');
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/cron/class/cronjob.class.php";
    +require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
     
     // Check parameters
     if (! isset($argv[1]) || ! $argv[1]) {
    @@ -186,7 +186,7 @@ if (is_array($qualifiedjobs) && (count($qualifiedjobs)>0))
     		//If date_next_jobs is less of current date, execute the program, and store the execution time of the next execution in database
     		if (($line->datenextrun < $now) && (empty($line->datestart) || $line->datestart <= $now) && (empty($line->dateend) || $line->dateend >= $now))
     		{
    -			echo " - qualified\n";
    +			echo " - qualified";
     
     			dol_syslog("cron_run_jobs.php line->datenextrun:".dol_print_date($line->datenextrun,'dayhourrfc')." line->datestart:".dol_print_date($line->datestart,'dayhourrfc')." line->dateend:".dol_print_date($line->dateend,'dayhourrfc')." now:".dol_print_date($now,'dayhourrfc'));
     
    @@ -194,7 +194,7 @@ if (is_array($qualifiedjobs) && (count($qualifiedjobs)>0))
     			$result=$cronjob->fetch($line->id);
     			if ($result < 0)
     			{
    -				echo "Error cronjob->fetch: ".$cronjob->error."\n";
    +				echo "Error cronjobid: ".$line->id." cronjob->fetch: ".$cronjob->error."\n";
     				echo "Failed to fetch job ".$line->id."\n";
     				dol_syslog("cron_run_jobs.php::fetch Error ".$cronjob->error, LOG_ERR);
     				exit(-1);
    @@ -203,7 +203,7 @@ if (is_array($qualifiedjobs) && (count($qualifiedjobs)>0))
     			$result=$cronjob->run_jobs($userlogin);
     			if ($result < 0)
     			{
    -				echo "Error cronjob->run_job: ".$cronjob->error."\n";
    +				echo "Error cronjobid: ".$line->id." cronjob->run_job: ".$cronjob->error."\n";
     				echo "At least one job failed. Go on menu Home-Setup-Admin tools to see result for each job.\n";
     				echo "You can also enable module Log if not yet enabled, run again and take a look into dolibarr.log file\n";
     				dol_syslog("cron_run_jobs.php::run_jobs Error ".$cronjob->error, LOG_ERR);
    @@ -214,16 +214,19 @@ if (is_array($qualifiedjobs) && (count($qualifiedjobs)>0))
     				$nbofjobslaunchedok++;
     			}
     
    +			echo " - result of run_jobs = ".$result;
    +
     			// we re-program the next execution and stores the last execution time for this job
     			$result=$cronjob->reprogram_jobs($userlogin, $now);
     			if ($result<0)
     			{
    -				echo "Error cronjob->reprogram_job: ".$cronjob->error."\n";
    +				echo "Error cronjobid: ".$line->id." cronjob->reprogram_job: ".$cronjob->error."\n";
     				echo "Enable module Log if not yet enabled, run again and take a look into dolibarr.log file\n";
     				dol_syslog("cron_run_jobs.php::reprogram_jobs Error ".$cronjob->error, LOG_ERR);
     				exit(-1);
     			}
     
    +			echo " - reprogrammed\n";
     		}
     		else
     		{
    @@ -245,6 +248,13 @@ exit(0);
     
     
     
    +/**
    + * script cron usage
    + *
    + * @param string $path          path
    + * @param string $script_file   filename
    + * @return void
    + */
     function usage($path,$script_file)
     {
     	global $conf;
    @@ -258,4 +268,3 @@ function usage($path,$script_file)
     	print "For example, to run pending tasks every 5mn, you can add this line:\n";
     	print "*/5 * * * * ".$path.$script_file." securitykey userlogin > ".DOL_DATA_ROOT."/".$script_file.".log\n";
     }
    -
    diff --git a/scripts/emailings/mailing-send.php b/scripts/emailings/mailing-send.php
    index ef9a35fc1ed..52f54a4c7b8 100755
    --- a/scripts/emailings/mailing-send.php
    +++ b/scripts/emailings/mailing-send.php
    @@ -3,7 +3,7 @@
     /*
      * Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
      * Copyright (C) 2005-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2005-2016	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2005-2016	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -44,9 +44,9 @@ $id=$argv[1];
     if (isset($argv[2]) || !empty($argv[2])) $login = $argv[2];
     else $login = '';
     
    -require_once ($path."../../htdocs/master.inc.php");
    -require_once (DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php");
    -require_once (DOL_DOCUMENT_ROOT."/comm/mailing/class/mailing.class.php");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php";
    +require_once DOL_DOCUMENT_ROOT."/comm/mailing/class/mailing.class.php";
     
     
     // Global variables
    @@ -64,7 +64,6 @@ print "***** ".$script_file." (".$version.") pid=".dol_getmypid()." *****\n";
     
     if ($conf->global->MAILING_LIMIT_SENDBYCLI == '-1')
     {
    -
     }
     
     $user = new User($db);
    @@ -329,7 +328,6 @@ if ($resql)
     								if (!empty($conf->global->MAILING_DELAY)) {
     									sleep($conf->global->MAILING_DELAY);
     								}
    -
     							}
     						}
     						else
    diff --git a/scripts/invoices/email_unpaid_invoices_to_customers.php b/scripts/invoices/email_unpaid_invoices_to_customers.php
    index 02e9db2e0ce..57fdeeed76f 100755
    --- a/scripts/invoices/email_unpaid_invoices_to_customers.php
    +++ b/scripts/invoices/email_unpaid_invoices_to_customers.php
    @@ -50,8 +50,8 @@ $mode=$argv[1];
     $targettype=$argv[2];
     
     
    -require($path."../../htdocs/master.inc.php");
    -require_once (DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php");
    +require $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php";
     
     $langs->load('main');
     
    @@ -78,7 +78,7 @@ print $script_file." launched with mode ".$mode." default lang=".$langs->default
     
     if ($mode != 'confirm') $conf->global->MAIN_DISABLE_ALL_MAILS=1;
     
    -$sql = "SELECT f.facnumber, f.total_ttc, f.date_lim_reglement as due_date,";
    +$sql = "SELECT f.ref, f.total_ttc, f.date_lim_reglement as due_date,";
     $sql.= " s.rowid as sid, s.nom as name, s.email, s.default_lang";
     if ($targettype == 'contacts') $sql.= ", sp.rowid as cid, sp.firstname as cfirstname, sp.lastname as clastname, sp.email as cemail";
     $sql.= " FROM ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."societe as s";
    @@ -90,7 +90,7 @@ if (is_numeric($duration_value)) $sql.= " AND f.date_lim_reglement < '".$db->ida
     if ($targettype == 'contacts') $sql.= " AND s.rowid = sp.fk_soc";
     $sql.= " ORDER BY";
     if ($targettype == 'contacts') $sql.= " sp.email, sp.rowid,";
    -$sql.= " s.email ASC, s.rowid ASC, f.facnumber ASC";	// Order by email to allow one message per email
    +$sql.= " s.email ASC, s.rowid ASC, f.ref ASC";	// Order by email to allow one message per email
     
     //print $sql;
     $resql=$db->query($sql);
    @@ -151,16 +151,17 @@ if ($resql)
                 // Define line content
                 $outputlangs=new Translate('',$conf);
                 $outputlangs->setDefaultLang(empty($obj->default_lang)?$langs->defaultlang:$obj->default_lang);	// By default language of customer
    -            $outputlangs->load("bills");
    -            $outputlangs->load("main");
    +
    +            // Load translation files required by the page
    +            $outputlangs->loadLangs(array("main", "bills"));
     
                 if (dol_strlen($newemail))
                 {
    -            	$message .= $outputlangs->trans("Invoice")." ".$obj->facnumber." : ".price($obj->total_ttc,0,$outputlangs,0,0,-1,$conf->currency)."\n";
    +            	$message .= $outputlangs->trans("Invoice")." ".$obj->ref." : ".price($obj->total_ttc,0,$outputlangs,0,0,-1,$conf->currency)."\n";
                 	dol_syslog("email_unpaid_invoices_to_customers.php: ".$newemail." ".$message);
                 	$foundtoprocess++;
                 }
    -            print "Unpaid invoice ".$obj->facnumber.", price ".price2num($obj->total_ttc).", due date ".dol_print_date($db->jdate($obj->due_date),'day').", customer id ".$obj->sid." ".$obj->name.", ".($obj->cid?"contact id ".$obj->cid." ".$obj->clastname." ".$obj->cfirstname.", ":"")."email ".$newemail.", lang ".$outputlangs->defaultlang.": ";
    +            print "Unpaid invoice ".$obj->ref.", price ".price2num($obj->total_ttc).", due date ".dol_print_date($db->jdate($obj->due_date),'day').", customer id ".$obj->sid." ".$obj->name.", ".($obj->cid?"contact id ".$obj->cid." ".$obj->clastname." ".$obj->cfirstname.", ":"")."email ".$newemail.", lang ".$outputlangs->defaultlang.": ";
                 if (dol_strlen($newemail)) print "qualified.";
                 else print "disqualified (no email).";
                 print "\n";
    diff --git a/scripts/invoices/email_unpaid_invoices_to_representatives.php b/scripts/invoices/email_unpaid_invoices_to_representatives.php
    index e134d693d74..37b421bcefd 100755
    --- a/scripts/invoices/email_unpaid_invoices_to_representatives.php
    +++ b/scripts/invoices/email_unpaid_invoices_to_representatives.php
    @@ -48,8 +48,8 @@ if (! isset($argv[1]) || ! $argv[1] || ! in_array($argv[1],array('test','confirm
     $mode=$argv[1];
     
     
    -require($path."../../htdocs/master.inc.php");
    -require_once (DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php");
    +require $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php";
     
     $langs->load('main');
     
    @@ -75,7 +75,7 @@ print $script_file." launched with mode ".$mode." default lang=".$langs->default
     
     if ($mode != 'confirm') $conf->global->MAIN_DISABLE_ALL_MAILS=1;
     
    -$sql = "SELECT f.facnumber, f.total_ttc, f.date_lim_reglement as due_date, s.nom as name, s.email, s.default_lang,";
    +$sql = "SELECT f.ref, f.total_ttc, f.date_lim_reglement as due_date, s.nom as name, s.email, s.default_lang,";
     $sql.= " u.rowid as uid, u.lastname, u.firstname, u.email, u.lang";
     $sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
     $sql .= " , ".MAIN_DB_PREFIX."societe as s";
    @@ -86,7 +86,7 @@ $sql .= " AND f.fk_soc = s.rowid";
     if (is_numeric($duration_value)) $sql .= " AND f.date_lim_reglement < '".$db->idate(dol_time_plus_duree($now, $duration_value, "d"))."'";
     $sql .= " AND sc.fk_soc = s.rowid";
     $sql .= " AND sc.fk_user = u.rowid";
    -$sql .= " ORDER BY u.email ASC, s.rowid ASC, f.facnumber ASC";	// Order by email to allow one message per email
    +$sql .= " ORDER BY u.email ASC, s.rowid ASC, f.ref ASC";	// Order by email to allow one message per email
     
     //print $sql;
     $resql=$db->query($sql);
    @@ -131,16 +131,17 @@ if ($resql)
                 // Define line content
                 $outputlangs=new Translate('',$conf);
                 $outputlangs->setDefaultLang(empty($obj->lang)?$langs->defaultlang:$obj->lang);	// By default language of sale representative
    -            $outputlangs->load("bills");
    -            $outputlangs->load("main");
    +
    +            // Load translation files required by the page
    +            $outputlangs->loadLangs(array("main", "bills"));
     
                 if (dol_strlen($obj->email))
                 {
    -            	$message .= $outputlangs->trans("Invoice")." ".$obj->facnumber." : ".price($obj->total_ttc,0,$outputlangs,0,0,-1,$conf->currency)." : ".$obj->name."\n";
    +            	$message .= $outputlangs->trans("Invoice")." ".$obj->ref." : ".price($obj->total_ttc,0,$outputlangs,0,0,-1,$conf->currency)." : ".$obj->name."\n";
                 	dol_syslog("email_unpaid_invoices_to_representatives.php: ".$obj->email);
                 	$foundtoprocess++;
                 }
    -            print "Unpaid invoice ".$obj->facnumber.", price ".price2num($obj->total_ttc).", due date ".dol_print_date($db->jdate($obj->due_date),'day')." (linked to company ".$obj->name.", sale representative ".dolGetFirstLastname($obj->firstname, $obj->lastname).", email ".$obj->email.", lang ".$outputlangs->defaultlang."): ";
    +            print "Unpaid invoice ".$obj->ref.", price ".price2num($obj->total_ttc).", due date ".dol_print_date($db->jdate($obj->due_date),'day')." (linked to company ".$obj->name.", sale representative ".dolGetFirstLastname($obj->firstname, $obj->lastname).", email ".$obj->email.", lang ".$outputlangs->defaultlang."): ";
                 if (dol_strlen($obj->email)) print "qualified.";
                 else print "disqualified (no email).";
     			print "\n";
    diff --git a/scripts/invoices/rebuild_merge_pdf.php b/scripts/invoices/rebuild_merge_pdf.php
    index 30782d3b913..2c71d9cf750 100755
    --- a/scripts/invoices/rebuild_merge_pdf.php
    +++ b/scripts/invoices/rebuild_merge_pdf.php
    @@ -34,12 +34,12 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     }
     
     // Include Dolibarr environment
    -require_once($path."../../htdocs/master.inc.php");
    +require_once $path."../../htdocs/master.inc.php";
     // After this $db is an opened handler to database. We close it at end of file.
    -require_once(DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/modules/facture/modules_facture.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/date.lib.php");
    -require_once(DOL_DOCUMENT_ROOT.'/core/lib/invoice2.lib.php');
    +require_once DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php";
    +require_once DOL_DOCUMENT_ROOT."/core/modules/facture/modules_facture.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php";
    +require_once DOL_DOCUMENT_ROOT.'/core/lib/invoice2.lib.php';
     
     
     // Load main language strings
    diff --git a/scripts/members/sync_members_dolibarr2ldap.php b/scripts/members/sync_members_dolibarr2ldap.php
    index a0c393d01c2..e3ca5f38e0a 100755
    --- a/scripts/members/sync_members_dolibarr2ldap.php
    +++ b/scripts/members/sync_members_dolibarr2ldap.php
    @@ -34,9 +34,9 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     	exit(-1);
     }
     
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/ldap.class.php";
    +require_once DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php";
     
     $langs->load("main");
     
    diff --git a/scripts/members/sync_members_ldap2dolibarr.php b/scripts/members/sync_members_ldap2dolibarr.php
    index e7adb80e733..d7d4fbdeaaf 100755
    --- a/scripts/members/sync_members_ldap2dolibarr.php
    +++ b/scripts/members/sync_members_ldap2dolibarr.php
    @@ -34,15 +34,13 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     	exit(-1);
     }
     
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/date.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/adherents/class/subscription.class.php");
    -
    -$langs->load("main");
    -$langs->load("errors");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/ldap.class.php";
    +require_once DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php";
    +require_once DOL_DOCUMENT_ROOT."/adherents/class/subscription.class.php";
     
    +$langs->loadLangs(array("main", "errors"));
     
     // Global variables
     $version=DOL_VERSION;
    @@ -301,7 +299,6 @@ if ($result >= 0)
     				//print "yy".dol_print_date($datelast)."\n";
     				$crowid=$member->subscription($datelast, $pricelast, 0);
     			}
    -
     		}
     
     		if (! $error || $forcecommit)
    diff --git a/scripts/members/sync_members_types_dolibarr2ldap.php b/scripts/members/sync_members_types_dolibarr2ldap.php
    index 939a98c8728..dc1570c847f 100755
    --- a/scripts/members/sync_members_types_dolibarr2ldap.php
    +++ b/scripts/members/sync_members_types_dolibarr2ldap.php
    @@ -3,7 +3,7 @@
     /**
      * Copyright (C) 2005	Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2006	Laurent Destailleur		<eldy@users.sourceforge.net>
    - * Copyright (C) 2017	Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2017	Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -41,9 +41,9 @@ if (! isset($argv[1]) || ! $argv[1]) {
     }
     $now=$argv[1];
     
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/ldap.class.php";
    +require_once DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php";
     
     // Global variables
     $version=DOL_VERSION;
    diff --git a/scripts/members/sync_members_types_ldap2dolibarr.php b/scripts/members/sync_members_types_ldap2dolibarr.php
    index 55d5606cd30..cb85e38bd89 100755
    --- a/scripts/members/sync_members_types_ldap2dolibarr.php
    +++ b/scripts/members/sync_members_types_ldap2dolibarr.php
    @@ -4,7 +4,7 @@
      * Copyright (C) 2005		Rodolphe Quiedeville		<rodolphe@quiedeville.org>
      * Copyright (C) 2006-2012	Laurent Destailleur		<eldy@users.sourceforge.net>
      * Copyright (C) 2013		Maxime Kohlhaas			<maxime@atm-consulting.fr>
    - * Copyright (C) 2017		Regis Houssin			<regis.houssin@capnetworks.com>
    + * Copyright (C) 2017		Regis Houssin			<regis.houssin@inodbox.com>
      *
      * 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
    @@ -36,14 +36,12 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     	exit(-1);
     }
     
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/date.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php");
    -
    -$langs->load("main");
    -$langs->load("errors");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/ldap.class.php";
    +require_once DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php";
     
    +$langs->loadLangs(array("main", "errors"));
     
     // Global variables
     $version=DOL_VERSION;
    diff --git a/scripts/modulebuilder/builddoc.php b/scripts/modulebuilder/builddoc.php
    index f2c0eef421f..c0b44a0bed8 100755
    --- a/scripts/modulebuilder/builddoc.php
    +++ b/scripts/modulebuilder/builddoc.php
    @@ -45,7 +45,7 @@ if (! isset($argv[1]) || ! $argv[1]) {
     }
     $modulename=$argv[1];
     
    -require_once ($path."../../htdocs/master.inc.php");
    +require_once $path."../../htdocs/master.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
    diff --git a/scripts/modulebuilder/initmodule.php b/scripts/modulebuilder/initmodule.php
    index 6c9801878d3..bee931dc8fa 100755
    --- a/scripts/modulebuilder/initmodule.php
    +++ b/scripts/modulebuilder/initmodule.php
    @@ -41,7 +41,7 @@ if (! isset($argv[1]) || ! $argv[1]) {
     }
     $modulename=$argv[1];
     
    -require_once ($path."../../htdocs/master.inc.php");
    +require_once $path."../../htdocs/master.inc.php";
     require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
     require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
    diff --git a/scripts/product/migrate_picture_path.php b/scripts/product/migrate_picture_path.php
    index d72c60f05e5..eee15cdb7fa 100755
    --- a/scripts/product/migrate_picture_path.php
    +++ b/scripts/product/migrate_picture_path.php
    @@ -37,9 +37,9 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     define('EVEN_IF_ONLY_LOGIN_ALLOWED',1);		// Set this define to 0 if you want to lock your script when dolibarr setup is "locked to admin user only".
     
     // Include and load Dolibarr environment variables
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
     // After this $db, $mysoc, $langs, $conf and $hookmanager are defined (Opened $db handler to database will be closed at end of file).
     // $user is created but empty.
     
    @@ -140,7 +140,6 @@ function migrate_product_photospath($product)
         				{
         					dol_move($origin.'/'.$file, $destin.'/'.$file);
         				}
    -
         			}
         		}
             }
    diff --git a/scripts/product/regenerate_thumbs.php b/scripts/product/regenerate_thumbs.php
    index bc3e1f53a6b..a4d114746c2 100755
    --- a/scripts/product/regenerate_thumbs.php
    +++ b/scripts/product/regenerate_thumbs.php
    @@ -37,10 +37,10 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     define('EVEN_IF_ONLY_LOGIN_ALLOWED',1);		// Set this define to 0 if you want to lock your script when dolibarr setup is "locked to admin user only".
     
     // Include and load Dolibarr environment variables
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/images.lib.php");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/images.lib.php";
     // After this $db, $mysoc, $langs, $conf and $hookmanager are defined (Opened $db handler to database will be closed at end of file).
     // $user is created but empty.
     
    diff --git a/scripts/user/sync_groups_dolibarr2ldap.php b/scripts/user/sync_groups_dolibarr2ldap.php
    index e661a85beb5..ba304305696 100755
    --- a/scripts/user/sync_groups_dolibarr2ldap.php
    +++ b/scripts/user/sync_groups_dolibarr2ldap.php
    @@ -40,9 +40,9 @@ if (! isset($argv[1]) || ! $argv[1]) {
     }
     $now=$argv[1];
     
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/user/class/usergroup.class.php");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/ldap.class.php";
    +require_once DOL_DOCUMENT_ROOT."/user/class/usergroup.class.php";
     
     // Global variables
     $version=DOL_VERSION;
    diff --git a/scripts/user/sync_groups_ldap2dolibarr.php b/scripts/user/sync_groups_ldap2dolibarr.php
    index cb745d9aff3..4063d2f9321 100755
    --- a/scripts/user/sync_groups_ldap2dolibarr.php
    +++ b/scripts/user/sync_groups_ldap2dolibarr.php
    @@ -35,15 +35,13 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     	exit(-1);
     }
     
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/date.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/user/class/user.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/user/class/usergroup.class.php");
    -
    -$langs->load("main");
    -$langs->load("errors");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/ldap.class.php";
    +require_once DOL_DOCUMENT_ROOT."/user/class/user.class.php";
    +require_once DOL_DOCUMENT_ROOT."/user/class/usergroup.class.php";
     
    +$langs->loadLangs(array("main", "errors"));
     
     // Global variables
     $version=DOL_VERSION;
    diff --git a/scripts/user/sync_users_dolibarr2ldap.php b/scripts/user/sync_users_dolibarr2ldap.php
    index dd5e3d18de4..fa97c871a50 100755
    --- a/scripts/user/sync_users_dolibarr2ldap.php
    +++ b/scripts/user/sync_users_dolibarr2ldap.php
    @@ -40,9 +40,9 @@ if (! isset($argv[1]) || ! $argv[1]) {
     }
     $now=$argv[1];
     
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/user/class/user.class.php");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/ldap.class.php";
    +require_once DOL_DOCUMENT_ROOT."/user/class/user.class.php";
     
     // Global variables
     $version=DOL_VERSION;
    diff --git a/scripts/user/sync_users_ldap2dolibarr.php b/scripts/user/sync_users_ldap2dolibarr.php
    index 9a04f81c557..320a1f495ad 100755
    --- a/scripts/user/sync_users_ldap2dolibarr.php
    +++ b/scripts/user/sync_users_ldap2dolibarr.php
    @@ -34,14 +34,12 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     	exit(-1);
     }
     
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/lib/date.lib.php");
    -require_once(DOL_DOCUMENT_ROOT."/core/class/ldap.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/user/class/user.class.php");
    -
    -$langs->load("main");
    -$langs->load("errors");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php";
    +require_once DOL_DOCUMENT_ROOT."/core/class/ldap.class.php";
    +require_once DOL_DOCUMENT_ROOT."/user/class/user.class.php";
     
    +$langs->loadLangs(array("main", "errors"));
     
     // Global variables
     $version=DOL_VERSION;
    diff --git a/scripts/withdrawals/build_withdrawal_file.php b/scripts/withdrawals/build_withdrawal_file.php
    index d381c32676a..2f7ad26a1fe 100755
    --- a/scripts/withdrawals/build_withdrawal_file.php
    +++ b/scripts/withdrawals/build_withdrawal_file.php
    @@ -34,11 +34,11 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
     	exit(-1);
     }
     
    -require_once($path."../../htdocs/master.inc.php");
    -require_once(DOL_DOCUMENT_ROOT."/compta/prelevement/class/bonprelevement.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/societe/class/societe.class.php");
    -require_once(DOL_DOCUMENT_ROOT."/compta/paiement/class/paiement.class.php");
    +require_once $path."../../htdocs/master.inc.php";
    +require_once DOL_DOCUMENT_ROOT."/compta/prelevement/class/bonprelevement.class.php";
    +require_once DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php";
    +require_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php";
    +require_once DOL_DOCUMENT_ROOT."/compta/paiement/class/paiement.class.php";
     
     // Global variables
     $version=DOL_VERSION;
    diff --git a/test/phpunit/AccountingAccountTest.php b/test/phpunit/AccountingAccountTest.php
    index 46117b4ff38..09a7a21d145 100644
    --- a/test/phpunit/AccountingAccountTest.php
    +++ b/test/phpunit/AccountingAccountTest.php
    @@ -44,7 +44,7 @@ $conf->global->MAIN_DISABLE_ALL_MAILS=1;
      * @backupStaticAttributes enabled
      * @remarks	backupGlobals must be disabled to have db,conf,user and lang not erased.
      */
    -class AccountingAccountTest extends PHPUnit_Framework_TestCase
    +class AccountingAccountTest extends PHPUnit\Framework\TestCase
     {
         protected $savconf;
         protected $savuser;
    @@ -79,7 +79,7 @@ class AccountingAccountTest extends PHPUnit_Framework_TestCase
             global $conf,$user,$langs,$db;
             $db->begin(); // This is to have all actions inside a transaction even if test launched without suite.
     
    -        if (empty($conf->accounting->enabled)) { print __METHOD__." module accouting must be enabled.\n"; die(); }
    +        if (empty($conf->accounting->enabled)) { print __METHOD__." module accouting must be enabled.\n"; exit(-1); }
     
             print __METHOD__."\n";
         }
    @@ -138,13 +138,15 @@ class AccountingAccountTest extends PHPUnit_Framework_TestCase
             $localobject->account_category = 0;
             $localobject->pcg_type = 'XXXXX';
             $localobject->pcg_subtype = 'XXXXX';
    +        $localobject->account_number = '411123456';
             $localobject->account_parent = 0;
             $localobject->label = 'Account specimen';
             $localobject->active = 0;
             $result=$localobject->create($user);
     
    -        $this->assertLessThan($result, 0);
             print __METHOD__." result=".$result."\n";
    +        $this->assertLessThan($result, 0);
    +
             return $result;
         }
     
    @@ -168,8 +170,9 @@ class AccountingAccountTest extends PHPUnit_Framework_TestCase
             $localobject=new AccountingAccount($this->savdb);
             $result=$localobject->fetch($id);
     
    -        $this->assertLessThan($result, 0);
             print __METHOD__." id=".$id." result=".$result."\n";
    +        $this->assertLessThan($result, 0);
    +
             return $localobject;
         }
     
    @@ -193,8 +196,9 @@ class AccountingAccountTest extends PHPUnit_Framework_TestCase
         	$localobject->label='New label';
         	$result=$localobject->update($user);
     
    -    	$this->assertLessThan($result, 0);
         	print __METHOD__." id=".$id." result=".$result."\n";
    +    	$this->assertLessThan($result, 0);
    +
         	return $localobject->id;
         }
     
    @@ -221,7 +225,7 @@ class AccountingAccountTest extends PHPUnit_Framework_TestCase
     
             print __METHOD__." id=".$id." result=".$result."\n";
             $this->assertLessThan($result, 0);
    +
             return $result;
         }
    -
     }
    diff --git a/test/phpunit/ActionCommTest.php b/test/phpunit/ActionCommTest.php
    index 7b5a9b23b2d..80bb9687529 100644
    --- a/test/phpunit/ActionCommTest.php
    +++ b/test/phpunit/ActionCommTest.php
    @@ -244,5 +244,4 @@ class ActionCommTest extends PHPUnit_Framework_TestCase
             $this->assertLessThan($result, 0);
             return $result;
         }
    -
     }
    diff --git a/test/phpunit/AdherentTest.php b/test/phpunit/AdherentTest.php
    index ed7dd35df36..21023c6f545 100644
    --- a/test/phpunit/AdherentTest.php
    +++ b/test/phpunit/AdherentTest.php
    @@ -252,6 +252,7 @@ class AdherentTest extends PHPUnit_Framework_TestCase
             //$localobject->note_public='New note public after update';
             $localobject->lastname='New name';
             $localobject->firstname='New firstname';
    +        $localobject->gender='man';
             $localobject->address='New address';
             $localobject->zip='New zip';
             $localobject->town='New town';
    @@ -284,6 +285,7 @@ class AdherentTest extends PHPUnit_Framework_TestCase
             $this->assertEquals($localobject->note_public, $newobject->note_public);
             $this->assertEquals($localobject->lastname, $newobject->lastname);
             $this->assertEquals($localobject->firstname, $newobject->firstname);
    +        $this->assertEquals($localobject->gender, $newobject->gender);
             $this->assertEquals($localobject->address, $newobject->address);
             $this->assertEquals($localobject->zip, $newobject->zip);
             $this->assertEquals($localobject->town, $newobject->town);
    diff --git a/test/phpunit/AdminLibTest.php b/test/phpunit/AdminLibTest.php
    index cc83eefe84e..75139ba8aea 100644
    --- a/test/phpunit/AdminLibTest.php
    +++ b/test/phpunit/AdminLibTest.php
    @@ -166,5 +166,4 @@ class AdminLibTest extends PHPUnit_Framework_TestCase
     		$moduledescriptor->init();
     		$conf->setValues($db);
         }
    -
     }
    diff --git a/test/phpunit/AllTests.php b/test/phpunit/AllTests.php
    index 206d180f700..ee7ec9375d6 100644
    --- a/test/phpunit/AllTests.php
    +++ b/test/phpunit/AllTests.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2010-2012  Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2011-2012  Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2011-2012  Regis Houssin       <regis.houssin@inodbox.com>
      *
      * 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
    @@ -252,4 +252,3 @@ class AllTests
             return $suite;
         }
     }
    -
    diff --git a/test/phpunit/BankAccountTest.php b/test/phpunit/BankAccountTest.php
    index f6c135158d5..f8917a335ca 100644
    --- a/test/phpunit/BankAccountTest.php
    +++ b/test/phpunit/BankAccountTest.php
    @@ -222,5 +222,4 @@ class BankAccountTest extends PHPUnit_Framework_TestCase
             $this->assertLessThan($result, 0);
             return $result;
         }
    -
     }
    diff --git a/test/phpunit/BonPrelevementTest.php b/test/phpunit/BonPrelevementTest.php
    index de0c3be3416..8c6ffbb585d 100644
    --- a/test/phpunit/BonPrelevementTest.php
    +++ b/test/phpunit/BonPrelevementTest.php
    @@ -76,14 +76,24 @@ class BonPrelevementTest extends PHPUnit_Framework_TestCase
     		print "\n";
     	}
     
    -	// Static methods
    -  	public static function setUpBeforeClass()
    +    /**
    +     * setUpBeforeClass
    +     *
    +     * @return	void
    +     */
    +    public static function setUpBeforeClass()
         {
         	global $conf,$user,$langs,$db;
     		$db->begin();	// This is to have all actions inside a transaction even if test launched without suite.
     
         	print __METHOD__."\n";
         }
    +
    +    /**
    +     * tearDownAfterClass
    +     *
    +     * @return	void
    +     */
         public static function tearDownAfterClass()
         {
         	global $conf,$user,$langs,$db;
    @@ -180,5 +190,4 @@ class BonPrelevementTest extends PHPUnit_Framework_TestCase
         	return $result;
         }
     */
    -
     }
    diff --git a/test/phpunit/BuildDocTest.php b/test/phpunit/BuildDocTest.php
    index cc2ac2339dc..985250aa705 100644
    --- a/test/phpunit/BuildDocTest.php
    +++ b/test/phpunit/BuildDocTest.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2010-2012  Laurent Destailleur <eldy@users.sourceforge.net>
    - * Copyright (C) 2012       Regis Houssin       <regis.houssin@capnetworks.com>
    + * Copyright (C) 2012       Regis Houssin       <regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/test/phpunit/CMailFileTest.php b/test/phpunit/CMailFileTest.php
    index a1c3aff5641..2c511246c48 100755
    --- a/test/phpunit/CMailFileTest.php
    +++ b/test/phpunit/CMailFileTest.php
    @@ -179,23 +179,22 @@ class CMailFileTest extends PHPUnit_Framework_TestCase
             $result=$localobject->getValidAddress($src,3,1);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result,'"=?UTF-8?B?Sm9obiBEb2U=?=" <john@doe.com>');
    -        
    +
             $src='John Doe <john@doe.com>';
             $result=$localobject->getValidAddress($src,4);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result,'John Doe');
    -        
    +
             $src='John Doe <john@doe.com>, John Doe2 <john@doe3.com>, John Doe3 <john@doe2.com>';
             $result=$localobject->getValidAddress($src,4);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result,'John Doe,John Doe2,John Doe3');
    -        
    +
             $src='John Doe <john@doe.com>, John Doe2 <john@doe3.com>, John Doe3 <john@doe2.com>';
             $result=$localobject->getValidAddress($src,4,0,2);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result,'John Doe,John Doe2...');
    -        
    +
             return $result;
         }
    -
     }
    diff --git a/test/phpunit/CategorieTest.php b/test/phpunit/CategorieTest.php
    index 394267d40e1..19440df33db 100644
    --- a/test/phpunit/CategorieTest.php
    +++ b/test/phpunit/CategorieTest.php
    @@ -337,5 +337,4 @@ class CategorieTest extends PHPUnit_Framework_TestCase
             $this->assertTrue(is_array($retarray));
             return $retarray;
         }
    -
     }
    diff --git a/test/phpunit/ChargeSocialesTest.php b/test/phpunit/ChargeSocialesTest.php
    index 8f06564eb1c..cd01fb906e0 100644
    --- a/test/phpunit/ChargeSocialesTest.php
    +++ b/test/phpunit/ChargeSocialesTest.php
    @@ -241,5 +241,4 @@ class ChargeSocialesTest extends PHPUnit_Framework_TestCase
         	$this->assertLessThan($result, 0);
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/CodingSqlTest.php b/test/phpunit/CodingSqlTest.php
    index ee6ad6c674e..349e19a1072 100644
    --- a/test/phpunit/CodingSqlTest.php
    +++ b/test/phpunit/CodingSqlTest.php
    @@ -185,19 +185,16 @@ class CodingSqlTest extends PHPUnit_Framework_TestCase
                     if ($dir == DOL_DOCUMENT_ROOT.'/install/mysql/migration')
                     {
                         // Test for migration files only
    -
                     }
                     elseif ($dir == DOL_DOCUMENT_ROOT.'/install/mysql/data')
                     {
                         // Test for data files only
    -
                     }
                     else
                     {
                         if (preg_match('/\.key\.sql$/',$file))
                         {
                             // Test for key files only
    -
                         }
                         else
                         {
    @@ -249,5 +246,4 @@ class CodingSqlTest extends PHPUnit_Framework_TestCase
     
             return;
         }
    -
     }
    diff --git a/test/phpunit/CommandeFournisseurTest.php b/test/phpunit/CommandeFournisseurTest.php
    index 4fe70eedaee..6a3f7a8696c 100644
    --- a/test/phpunit/CommandeFournisseurTest.php
    +++ b/test/phpunit/CommandeFournisseurTest.php
    @@ -385,5 +385,4 @@ class CommandeFournisseurTest extends PHPUnit_Framework_TestCase
             $this->assertLessThan($result, 0);
             return $result;
         }
    -
     }
    diff --git a/test/phpunit/CommandeTest.php b/test/phpunit/CommandeTest.php
    index 17263e260b7..85e2b972cb5 100644
    --- a/test/phpunit/CommandeTest.php
    +++ b/test/phpunit/CommandeTest.php
    @@ -294,5 +294,4 @@ class CommandeTest extends PHPUnit_Framework_TestCase
             $this->assertLessThan($result, 0);
             return $result;
         }
    -
     }
    diff --git a/test/phpunit/CommonInvoiceTest.php b/test/phpunit/CommonInvoiceTest.php
    new file mode 100644
    index 00000000000..4fab182ad69
    --- /dev/null
    +++ b/test/phpunit/CommonInvoiceTest.php
    @@ -0,0 +1,147 @@
    +<?php
    +/* Copyright (C) 2010 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
    + * the Free Software Foundation; either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program. If not, see <http://www.gnu.org/licenses/>.
    + * or see http://www.gnu.org/
    + */
    +
    +/**
    + *      \file       test/phpunit/CommonObjectTest.php
    + *      \ingroup    test
    + *      \brief      PHPUnit test
    + *      \remarks    To run this script as CLI:  phpunit filename.php
    + */
    +
    +global $conf,$user,$langs,$db;
    +//define('TEST_DB_FORCE_TYPE','mysql');	// This is to force using mysql driver
    +//require_once 'PHPUnit/Autoload.php';
    +require_once dirname(__FILE__).'/../../htdocs/master.inc.php';
    +require_once dirname(__FILE__).'/../../htdocs/compta/facture/class/facture.class.php';
    +
    +if (empty($user->id)) {
    +    print "Load permissions for admin user nb 1\n";
    +    $user->fetch(1);
    +    $user->getrights();
    +}
    +$conf->global->MAIN_DISABLE_ALL_MAILS=1;
    +
    +
    +/**
    + * Class for PHPUnit tests
    + *
    + * @backupGlobals disabled
    + * @backupStaticAttributes enabled
    + * @remarks	backupGlobals must be disabled to have db,conf,user and lang not erased.
    + */
    +class CommonInvoiceTest extends PHPUnit\Framework\TestCase
    +{
    +    protected $savconf;
    +    protected $savuser;
    +    protected $savlangs;
    +    protected $savdb;
    +
    +    /**
    +     * Constructor
    +     * We save global variables into local variables
    +     *
    +     * @return CommonObjectTest
    +     */
    +    function __construct()
    +    {
    +    	parent::__construct();
    +
    +    	//$this->sharedFixture
    +        global $conf,$user,$langs,$db;
    +        $this->savconf=$conf;
    +        $this->savuser=$user;
    +        $this->savlangs=$langs;
    +        $this->savdb=$db;
    +
    +        print __METHOD__." db->type=".$db->type." user->id=".$user->id;
    +        //print " - db ".$db->db;
    +        print "\n";
    +    }
    +
    +    // Static methods
    +    public static function setUpBeforeClass()
    +    {
    +        global $conf,$user,$langs,$db;
    +        $db->begin(); // This is to have all actions inside a transaction even if test launched without suite.
    +
    +        print __METHOD__."\n";
    +    }
    +
    +    // tear down after class
    +    public static function tearDownAfterClass()
    +    {
    +        global $conf,$user,$langs,$db;
    +        $db->rollback();
    +
    +        print __METHOD__."\n";
    +    }
    +
    +    /**
    +     * Init phpunit tests
    +     *
    +     * @return  void
    +     */
    +    protected function setUp()
    +    {
    +        global $conf,$user,$langs,$db;
    +        $conf=$this->savconf;
    +        $user=$this->savuser;
    +        $langs=$this->savlangs;
    +        $db=$this->savdb;
    +
    +        print __METHOD__."\n";
    +    }
    +    /**
    +     * End phpunit tests
    +     *
    +     * @return  void
    +    */
    +    protected function tearDown()
    +    {
    +        print __METHOD__."\n";
    +    }
    +
    +
    +    /**
    +     *  testFetchUser
    +     *
    +     *  @return void
    +     */
    +    public function testCalculateDateLimReglement()
    +    {
    +        global $conf,$user,$langs,$db;
    +        $conf=$this->savconf;
    +        $user=$this->savuser;
    +        $langs=$this->savlangs;
    +        $db=$this->savdb;
    +
    +        $localobject=new Facture($this->savdb);
    +        $localobject->fetch(1);
    +        $localobject->date = dol_mktime(12, 0, 0, 1, 1, 2010);
    +
    +        $result = 0;
    +
    +        // TODO Insert payment terms
    +
    +
    +        //$result=$localobject->calculate_date_lim_reglement(1);
    +        //print __METHOD__." result=".$result."\n";
    +        $this->assertEquals($result, 0);
    +        return $result;
    +    }
    +}
    diff --git a/test/phpunit/CompanyBankAccountTest.php b/test/phpunit/CompanyBankAccountTest.php
    index 5c72dca72a0..c50935c8aac 100644
    --- a/test/phpunit/CompanyBankAccountTest.php
    +++ b/test/phpunit/CompanyBankAccountTest.php
    @@ -235,5 +235,4 @@ class CompanyBankAccountTest extends PHPUnit_Framework_TestCase
             $this->assertLessThan($result, 0);
             return $localobject->id;
         }
    -
     }
    diff --git a/test/phpunit/ContratTest.php b/test/phpunit/ContratTest.php
    index 7e7dfb64922..74b30e10268 100644
    --- a/test/phpunit/ContratTest.php
    +++ b/test/phpunit/ContratTest.php
    @@ -220,5 +220,4 @@ class ContratTest extends PHPUnit_Framework_TestCase
         	$this->assertLessThan($result, 0);
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/CoreTest.php b/test/phpunit/CoreTest.php
    index 76ea43f9528..63601cb33d3 100644
    --- a/test/phpunit/CoreTest.php
    +++ b/test/phpunit/CoreTest.php
    @@ -252,6 +252,7 @@ class CoreTest extends PHPUnit_Framework_TestCase
     
             // This is code copied from main.inc.php !!!!!!!!!!!!!!!
     
    +        // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps
             /**
              * Security: SQL Injection and XSS Injection (scripts) protection (Filters on GET, POST, PHP_SELF).
              *
    @@ -259,20 +260,21 @@ class CoreTest extends PHPUnit_Framework_TestCase
              * @param       string $type    1=GET, 0=POST, 2=PHP_SELF
              * @return      int             >0 if there is an injection
              */
    -        function test_sql_and_script_inject($val, $type)
    +        function testSqlAndScriptInject($val, $type)
             {
    +            // phpcs:enable
     		    $inj = 0;
     		    // For SQL Injection (only GET and POST are used to be included into bad escaped SQL requests)
     		    if ($type != 2)
     		    {
    -		        $inj += preg_match('/delete\s+from/i',	 $val);
    -		        $inj += preg_match('/create\s+table/i',	 $val);
    -		        $inj += preg_match('/update.+set.+=/i',  $val);
    -		        $inj += preg_match('/insert\s+into/i', 	 $val);
    -		        $inj += preg_match('/select.+from/i', 	 $val);
    -		        $inj += preg_match('/union.+select/i', 	 $val);
    -		        $inj += preg_match('/into\s+(outfile|dumpfile)/i',  $val);
    -		        $inj += preg_match('/(\.\.%2f)+/i',		 $val);
    +		        $inj += preg_match('/delete\s+from/i', $val);
    +		        $inj += preg_match('/create\s+table/i', $val);
    +		        $inj += preg_match('/update.+set.+=/i', $val);
    +		        $inj += preg_match('/insert\s+into/i', $val);
    +		        $inj += preg_match('/select.+from/i', $val);
    +		        $inj += preg_match('/union.+select/i', $val);
    +		        $inj += preg_match('/into\s+(outfile|dumpfile)/i', $val);
    +		        $inj += preg_match('/(\.\.%2f)+/i', $val);
     		    }
     		    // For XSS Injection done by adding javascript with script
     		    // This is all cases a browser consider text is javascript:
    @@ -308,55 +310,55 @@ class CoreTest extends PHPUnit_Framework_TestCase
             $expectedresult=0;
     
             $_SERVER["PHP_SELF"]='/DIR WITH SPACE/htdocs/admin/index.php?mainmenu=home&leftmenu=setup&username=weservices';
    -        $result=test_sql_and_script_inject($_SERVER["PHP_SELF"], 2);
    -        $this->assertEquals($expectedresult, $result, 'Error on test_sql_and_script_inject 1a');
    +        $result=testSqlAndScriptInject($_SERVER["PHP_SELF"], 2);
    +        $this->assertEquals($expectedresult, $result, 'Error on testSqlAndScriptInject 1a');
     
             // Should detect XSS
             $expectedresult=1;
     
             $_SERVER["PHP_SELF"]='/DIR WITH SPACE/htdocs/admin/index.php?mainmenu=home&leftmenu=setup&username=weservices;badaction';
    -        $result=test_sql_and_script_inject($_SERVER["PHP_SELF"], 2);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject 1b');
    +        $result=testSqlAndScriptInject($_SERVER["PHP_SELF"], 2);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject 1b');
     
             $test="<img src='1.jpg' onerror =javascript:alert('XSS')>";
    -        $result=test_sql_and_script_inject($test, 0);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject aaa');
    +        $result=testSqlAndScriptInject($test, 0);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject aaa');
     
             $test="<img src='1.jpg' onerror =javascript:alert('XSS')>";
    -        $result=test_sql_and_script_inject($test, 2);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject aaa2');
    +        $result=testSqlAndScriptInject($test, 2);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject aaa2');
     
             $test='<IMG SRC=# onmouseover="alert(1)">';
    -        $result=test_sql_and_script_inject($test, 0);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject aaa3');
    +        $result=testSqlAndScriptInject($test, 0);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject aaa3');
             $test='<IMG SRC onmouseover="alert(1)">';
    -        $result=test_sql_and_script_inject($test, 0);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject aaa4');
    +        $result=testSqlAndScriptInject($test, 0);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject aaa4');
             $test='<IMG onmouseover="alert(1)">';
    -        $result=test_sql_and_script_inject($test, 0);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject aaa5');
    +        $result=testSqlAndScriptInject($test, 0);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject aaa5');
             $test='<IMG SRC=/ onerror="alert(1)">';
    -        $result=test_sql_and_script_inject($test, 0);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject aaa6');
    +        $result=testSqlAndScriptInject($test, 0);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject aaa6');
     		$test='<IMG SRC=" &#14;  javascript:alert(1);">';
    -		$result=test_sql_and_script_inject($test, 0);
    -		$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject aaa7');
    +		$result=testSqlAndScriptInject($test, 0);
    +		$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject aaa7');
     
     		$test='<IMG SRC=&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;>';
    -		$result=test_sql_and_script_inject($test, 0);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject bbb');
    +		$result=testSqlAndScriptInject($test, 0);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject bbb');
     
             $test='<SCRIPT SRC=http://xss.rocks/xss.js></SCRIPT>';
    -        $result=test_sql_and_script_inject($test, 0);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject ccc');
    +        $result=testSqlAndScriptInject($test, 0);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject ccc');
     
             $test='<IMG SRC="javascript:alert(\'XSS\');">';
    -        $result=test_sql_and_script_inject($test, 1);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject ddd');
    +        $result=testSqlAndScriptInject($test, 1);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject ddd');
     
             $test='<IMG """><SCRIPT>alert("XSS")</SCRIPT>">';
    -        $result=test_sql_and_script_inject($test, 0);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject eee');
    +        $result=testSqlAndScriptInject($test, 0);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject eee');
     
             $test='<!-- Google analytics -->
     			<script>
    @@ -369,30 +371,30 @@ class CoreTest extends PHPUnit_Framework_TestCase
     			  ga(\'send\', \'pageview\');
     
     			</script>';
    -        $result=test_sql_and_script_inject($test, 0);
    -        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject eee');
    +        $result=testSqlAndScriptInject($test, 0);
    +        $this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject eee');
     
             $test="<IMG SRC=\"jav\tascript:alert('XSS');\">";		// Is locked by some brwoser like chrome because the default directive no-referrer-when-downgrade is sent when requesting the SRC and then refused because of browser protection on img src load without referrer.
     		$test="<IMG SRC=\"jav&#x0D;ascript:alert('XSS');\">";	// Same
     
     		$test='<SCRIPT/XSS SRC="http://xss.rocks/xss.js"></SCRIPT>';
    -		$result=test_sql_and_script_inject($test, 0);
    -		$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject fff1');
    +		$result=testSqlAndScriptInject($test, 0);
    +		$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject fff1');
     		$test='<SCRIPT/SRC="http://xss.rocks/xss.js"></SCRIPT>';
    -		$result=test_sql_and_script_inject($test, 0);
    -		$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject fff2');
    +		$result=testSqlAndScriptInject($test, 0);
    +		$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject fff2');
     
     		// This case seems to be filtered by browsers now.
     		$test='<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(1)>';
    -		//$result=test_sql_and_script_inject($test, 0);
    -		//$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject ggg');
    +		//$result=testSqlAndScriptInject($test, 0);
    +		//$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject ggg');
     
     		$test='<iframe src=http://xss.rocks/scriptlet.html <';
    -		$result=test_sql_and_script_inject($test, 0);
    -		$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject hhh');
    +		$result=testSqlAndScriptInject($test, 0);
    +		$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject hhh');
     
     		$test='Set.constructor`alert\x281\x29```';
    -		$result=test_sql_and_script_inject($test, 0);
    -		$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on test_sql_and_script_inject iii');
    +		$result=testSqlAndScriptInject($test, 0);
    +		$this->assertGreaterThanOrEqual($expectedresult, $result, 'Error on testSqlAndScriptInject iii');
         }
     }
    diff --git a/test/phpunit/DateLibTest.php b/test/phpunit/DateLibTest.php
    index e0cd1fab31b..d7f2ad18877 100644
    --- a/test/phpunit/DateLibTest.php
    +++ b/test/phpunit/DateLibTest.php
    @@ -464,5 +464,4 @@ class DateLibTest extends PHPUnit_Framework_TestCase
        		$prev = dol_get_first_day_week($day, $month, $year);
     		$this->assertEquals(1, (int) $prev['first_day']);		// sunday for month 2, year 2015 is the 1st
         }
    -
     }
    diff --git a/test/phpunit/DateLibTzFranceTest.php b/test/phpunit/DateLibTzFranceTest.php
    index b41688c153f..b47cdfbfe7b 100644
    --- a/test/phpunit/DateLibTzFranceTest.php
    +++ b/test/phpunit/DateLibTzFranceTest.php
    @@ -201,5 +201,4 @@ class DateLibTzFranceTest extends PHPUnit_Framework_TestCase
     
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/EntrepotTest.php b/test/phpunit/EntrepotTest.php
    index a1fca65fac7..a5ee6139a48 100644
    --- a/test/phpunit/EntrepotTest.php
    +++ b/test/phpunit/EntrepotTest.php
    @@ -257,7 +257,6 @@ class EntrepotTest extends PHPUnit_Framework_TestCase
     
             $localobject=new Entrepot($db);
     
    -
             return;
         }
     }
    diff --git a/test/phpunit/ExpenseReportTest.php b/test/phpunit/ExpenseReportTest.php
    index 9426b2807a9..ed6ddf97fc7 100644
    --- a/test/phpunit/ExpenseReportTest.php
    +++ b/test/phpunit/ExpenseReportTest.php
    @@ -314,5 +314,4 @@ class ExpenseReportTest extends PHPUnit_Framework_TestCase
             $this->assertLessThan($result, 0);
             return $result;
         }
    -
     }
    diff --git a/test/phpunit/ExportTest.php b/test/phpunit/ExportTest.php
    index d9de0a89eef..e387eacac6a 100644
    --- a/test/phpunit/ExportTest.php
    +++ b/test/phpunit/ExportTest.php
    @@ -130,31 +130,31 @@ class ExportTest extends PHPUnit_Framework_TestCase
         public function testExportOther()
         {
             global $conf,$user,$langs,$db;
    -    
    +
             $model='csv';
    -    
    +
             // Creation of class to export using model ExportXXX
             $dir = DOL_DOCUMENT_ROOT . "/core/modules/export/";
             $file = "export_".$model.".modules.php";
             $classname = "Export".$model;
             require_once $dir.$file;
             $objmodel = new $classname($this->db);
    -    
    +
             // First test without option USE_STRICT_CSV_RULES
             unset($conf->global->USE_STRICT_CSV_RULES);
    -        
    +
             $valtotest='A simple string';
             print __METHOD__." valtotest=".$valtotest."\n";
             $result = $objmodel->csvClean($valtotest, $langs->charset_output);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result, 'A simple string');
    -        
    +
             $valtotest='A string with , and ; inside';
             print __METHOD__." valtotest=".$valtotest."\n";
             $result = $objmodel->csvClean($valtotest, $langs->charset_output);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result, '"A string with , and ; inside"');
    -        
    +
             $valtotest='A string with " inside';
             print __METHOD__." valtotest=".$valtotest."\n";
             $result = $objmodel->csvClean($valtotest, $langs->charset_output);
    @@ -166,48 +166,47 @@ class ExportTest extends PHPUnit_Framework_TestCase
             $result = $objmodel->csvClean($valtotest, $langs->charset_output);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result, '"A string with "" inside and \n carriage returns"');
    -        
    +
             $valtotest='A string with <a href="aaa"><strong>html<br>content</strong></a> inside<br>'."\n";
             print __METHOD__." valtotest=".$valtotest."\n";
             $result = $objmodel->csvClean($valtotest, $langs->charset_output);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result, '"A string with <a href=""aaa""><strong>html<br>content</strong></a> inside"');
    -        
    +
             // Same tests with strict mode
             $conf->global->USE_STRICT_CSV_RULES=1;
    -        
    +
             $valtotest='A simple string';
             print __METHOD__." valtotest=".$valtotest."\n";
             $result = $objmodel->csvClean($valtotest, $langs->charset_output);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result, 'A simple string');
    -        
    +
             $valtotest='A string with , and ; inside';
             print __METHOD__." valtotest=".$valtotest."\n";
             $result = $objmodel->csvClean($valtotest, $langs->charset_output);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result, '"A string with , and ; inside"');
    -        
    +
             $valtotest='A string with " inside';
             print __METHOD__." valtotest=".$valtotest."\n";
             $result = $objmodel->csvClean($valtotest, $langs->charset_output);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result, '"A string with "" inside"');
    -        
    +
             $valtotest='A string with " inside and '."\r\n".' carriage returns';
             print __METHOD__." valtotest=".$valtotest."\n";
             $result = $objmodel->csvClean($valtotest, $langs->charset_output);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result, "\"A string with \"\" inside and \r\n carriage returns\"");
    -        
    +
             $valtotest='A string with <a href="aaa"><strong>html<br>content</strong></a> inside<br>'."\n";
             print __METHOD__." valtotest=".$valtotest."\n";
             $result = $objmodel->csvClean($valtotest, $langs->charset_output);
             print __METHOD__." result=".$result."\n";
             $this->assertEquals($result, '"A string with <a href=""aaa""><strong>html<br>content</strong></a> inside"');
    -        
         }
    -    
    +
         /**
          * Test export function for a personalized dataset
          *
    @@ -218,16 +217,16 @@ class ExportTest extends PHPUnit_Framework_TestCase
         {
             global $conf,$user,$langs,$db;
     
    -        $sql = "SELECT f.facnumber as f_facnumber, f.total as f_total, f.tva as f_tva FROM ".MAIN_DB_PREFIX."facture f";
    +        $sql = "SELECT f.ref as f_ref, f.total as f_total, f.tva as f_tva FROM ".MAIN_DB_PREFIX."facture f";
     
             $objexport=new Export($db);
             //$objexport->load_arrays($user,$datatoexport);
     
             // Define properties
             $datatoexport='test';
    -        $array_selected = array("f.facnumber"=>1, "f.total"=>2, "f.tva"=>3);
    -        $array_export_fields = array("f.facnumber"=>"FacNumber", "f.total"=>"FacTotal", "f.tva"=>"FacVat");
    -        $array_alias = array("f_facnumber"=>"facnumber", "f_total"=>"total", "f_tva"=>"tva");
    +        $array_selected = array("f.ref"=>1, "f.total"=>2, "f.tva"=>3);
    +        $array_export_fields = array("f.ref"=>"FacNumber", "f.total"=>"FacTotal", "f.tva"=>"FacVat");
    +        $array_alias = array("f_ref"=>"ref", "f_total"=>"total", "f_tva"=>"tva");
             $objexport->array_export_fields[0]=$array_export_fields;
             $objexport->array_export_alias[0]=$array_alias;
     
    @@ -267,18 +266,18 @@ class ExportTest extends PHPUnit_Framework_TestCase
         {
         	global $conf,$user,$langs,$db;
     /*
    -    	$sql = "SELECT f.facnumber as f_facnumber, f.total as f_total, f.tva as f_tva FROM ".MAIN_DB_PREFIX."facture f";
    +    	$sql = "SELECT f.ref as f_ref, f.total as f_total, f.tva as f_tva FROM ".MAIN_DB_PREFIX."facture f";
     
         	$objexport=new Export($db);
         	//$objexport->load_arrays($user,$datatoexport);
     
         	// Define properties
         	$datatoexport='test_filtered';
    -    	$array_selected = array("f.facnumber"=>1, "f.total"=>2, "f.tva"=>3);
    -    	$array_export_fields = array("f.facnumber"=>"FacNumber", "f.total"=>"FacTotal", "f.tva"=>"FacVat");
    +    	$array_selected = array("f.ref"=>1, "f.total"=>2, "f.tva"=>3);
    +    	$array_export_fields = array("f.ref"=>"FacNumber", "f.total"=>"FacTotal", "f.tva"=>"FacVat");
         	$array_filtervalue = array("f.total" => ">100");
         	$array_filtered = array("f.total" => 1);
    -    	$array_alias = array("f_facnumber"=>"facnumber", "f_total"=>"total", "f_tva"=>"tva");
    +    	$array_alias = array("f_ref"=>"ref", "f_total"=>"total", "f_tva"=>"tva");
         	$objexport->array_export_fields[0]=$array_export_fields;
         	$objexport->array_export_alias[0]=$array_alias;
     
    @@ -355,5 +354,4 @@ class ExportTest extends PHPUnit_Framework_TestCase
     
             return true;
         }
    -    
     }
    diff --git a/test/phpunit/FactureFournisseurTest.php b/test/phpunit/FactureFournisseurTest.php
    index cda7f9d73f2..63c28945e65 100644
    --- a/test/phpunit/FactureFournisseurTest.php
    +++ b/test/phpunit/FactureFournisseurTest.php
    @@ -268,5 +268,4 @@ class FactureFournisseurTest extends PHPUnit_Framework_TestCase
         	$this->assertLessThan($result, 0);
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/FactureTest.php b/test/phpunit/FactureTest.php
    index d04844783c5..cb23c7d092e 100644
    --- a/test/phpunit/FactureTest.php
    +++ b/test/phpunit/FactureTest.php
    @@ -1,5 +1,6 @@
     <?php
    -/* Copyright (C) 2010 Laurent Destailleur  <eldy@users.sourceforge.net>
    +/* Copyright (C) 2010 Laurent Destailleur   <eldy@users.sourceforge.net>
    + * Copyright (C) 2018 Frédéric France       <frederic.france@netlogic.fr>
      *
      * 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
    @@ -228,8 +229,8 @@ class FactureTest extends PHPUnit_Framework_TestCase
     			$newlocalobject,
     			true,
     			array(
    -				'newref','oldref','id','lines','client','thirdparty','brouillon','user_author','date_creation','date_validation','datem',
    -				'ref','statut','paye','specimen','facnumber','actiontypecode','actionmsg2','actionmsg','mode_reglement','cond_reglement',
    +				'newref','oldref','id','lines','client','thirdparty','brouillon','user_author','date_creation','date_validation','datem','date_modification',
    +				'ref','statut','paye','specimen','ref','actiontypecode','actionmsg2','actionmsg','mode_reglement','cond_reglement',
     				'cond_reglement_doc','situation_cycle_ref','situation_counter','situation_final','multicurrency_total_ht','multicurrency_total_tva',
     				'multicurrency_total_ttc','fk_multicurrency','multicurrency_code','multicurrency_tx'
     			)
    diff --git a/test/phpunit/FactureTestRounding.php b/test/phpunit/FactureTestRounding.php
    index 4ed76d900bf..dbaf598e1a0 100644
    --- a/test/phpunit/FactureTestRounding.php
    +++ b/test/phpunit/FactureTestRounding.php
    @@ -335,5 +335,4 @@ class FactureTestRounding extends PHPUnit_Framework_TestCase
         	$this->assertEquals(20.03, $localobject3->total_tva);
         	$this->assertEquals(115.43, $localobject3->total_ttc);
         }
    -
     }
    diff --git a/test/phpunit/FichinterTest.php b/test/phpunit/FichinterTest.php
    index 4d6e1224498..5c966f4d4ec 100644
    --- a/test/phpunit/FichinterTest.php
    +++ b/test/phpunit/FichinterTest.php
    @@ -244,5 +244,4 @@ class FichinterTest extends PHPUnit_Framework_TestCase
         	$this->assertLessThan($result, 0);
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/FilesLibTest.php b/test/phpunit/FilesLibTest.php
    index 4363623adb0..c1a2a21b270 100644
    --- a/test/phpunit/FilesLibTest.php
    +++ b/test/phpunit/FilesLibTest.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2010-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -504,5 +504,4 @@ class FilesLibTest extends PHPUnit_Framework_TestCase
             $user->rights->facture->lire = $savpermlire;
             $user->rights->facture->creer = $savpermcreer;
         }
    -
     }
    diff --git a/test/phpunit/FormAdminTest.php b/test/phpunit/FormAdminTest.php
    index 876e733b56d..10998f7776f 100644
    --- a/test/phpunit/FormAdminTest.php
    +++ b/test/phpunit/FormAdminTest.php
    @@ -138,5 +138,4 @@ class FormAdminTest extends PHPUnit_Framework_TestCase
         	print __METHOD__." result=".$result."\n";
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/Functions2LibTest.php b/test/phpunit/Functions2LibTest.php
    index 87b2eaefe58..a11c50b7198 100644
    --- a/test/phpunit/Functions2LibTest.php
    +++ b/test/phpunit/Functions2LibTest.php
    @@ -140,7 +140,6 @@ class Functions2LibTest extends PHPUnit_Framework_TestCase
          */
         public function testIsValidMailDomain()
         {
    -
         }
     
         /**
    @@ -243,10 +242,9 @@ class Functions2LibTest extends PHPUnit_Framework_TestCase
             print __METHOD__." for ".$ip." result=".$result."\n";
         	$this->assertEquals(2,$result,$ip);
     
    -    	$ip='192.168.0.0';
    -    	$result=is_ip($ip);
    +        $ip='192.168.0.0';
    +        $result=is_ip($ip);
             print __METHOD__." for ".$ip." result=".$result."\n";
    -    	$this->assertEquals(2,$result,$ip);
    -
    +        $this->assertEquals(2,$result,$ip);
         }
     }
    diff --git a/test/phpunit/FunctionsLibTest.php b/test/phpunit/FunctionsLibTest.php
    index 4f7af8b1a1d..b693290b9c4 100644
    --- a/test/phpunit/FunctionsLibTest.php
    +++ b/test/phpunit/FunctionsLibTest.php
    @@ -48,7 +48,7 @@ if (! defined("NOLOGIN"))        define("NOLOGIN",'1');       // If this page is
      * @backupStaticAttributes enabled
      * @remarks	backupGlobals must be disabled to have db,conf,user and lang not erased.
      */
    -class FunctionsLibTest extends PHPUnit_Framework_TestCase
    +class FunctionsLibTest extends PHPUnit\Framework\TestCase
     {
         protected $savconf;
         protected $savuser;
    @@ -112,7 +112,8 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
     
             print __METHOD__."\n";
         }
    -	/**
    +
    +    /**
     	 * End phpunit tests
     	 *
     	 * @return	void
    @@ -123,6 +124,30 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
         }
     
     
    +    /**
    +     * testIsValidMXRecord
    +     *
    +     * @return void
    +     */
    +    public function testIsValidMXRecord()
    +    {
    +    	// Nb of line is same than entry text
    +
    +    	$input="yahoo.com";
    +    	$result=isValidMXRecord($input);
    +    	print __METHOD__." result=".$result."\n";
    +    	$this->assertEquals(1, $result);
    +
    +    	$input="yhaoo.com";
    +    	$result=isValidMXRecord($input);
    +    	print __METHOD__." result=".$result."\n";
    +    	$this->assertEquals(0, $result);
    +
    +    	$input="dolibarr.fr";
    +    	$result=isValidMXRecord($input);
    +    	print __METHOD__." result=".$result."\n";
    +    	$this->assertEquals(0, $result);
    +    }
     
         /**
          * testDolGetFirstLineOfText
    @@ -300,6 +325,57 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
         }
     
     
    +    /**
    +     * testGetLanguageCodeFromCountryCode
    +     *
    +     * @return void
    +     */
    +    public function testGetLanguageCodeFromCountryCode()
    +    {
    +    	global $mysoc;
    +
    +    	$language = getLanguageCodeFromCountryCode('US');
    +    	$this->assertEquals('en_US', $language, 'US');
    +
    +    	$language = getLanguageCodeFromCountryCode('ES');
    +    	$this->assertEquals('es_ES', $language, 'ES');
    +
    +    	$language = getLanguageCodeFromCountryCode('CL');
    +    	$this->assertEquals('es_CL', $language, 'CL');
    +
    +    	$language = getLanguageCodeFromCountryCode('CA');
    +    	$this->assertEquals('en_CA', $language, 'CA');
    +
    +    	$language = getLanguageCodeFromCountryCode('MQ');
    +    	$this->assertEquals('fr_CA', $language);
    +
    +    	$language = getLanguageCodeFromCountryCode('FR');
    +    	$this->assertEquals('fr_FR', $language);
    +
    +    	$language = getLanguageCodeFromCountryCode('BE');
    +    	$this->assertEquals('fr_BE', $language);
    +
    +    	$mysoc->country_code = 'FR';
    +    	$language = getLanguageCodeFromCountryCode('CH');
    +    	$this->assertEquals('fr_CH', $language);
    +
    +    	$mysoc->country_code = 'DE';
    +    	$language = getLanguageCodeFromCountryCode('CH');
    +    	$this->assertEquals('de_CH', $language);
    +
    +    	$language = getLanguageCodeFromCountryCode('DE');
    +    	$this->assertEquals('de_DE', $language);
    +
    +    	$language = getLanguageCodeFromCountryCode('SA');
    +    	$this->assertEquals('ar_SA', $language);
    +
    +    	$language = getLanguageCodeFromCountryCode('SE');
    +    	$this->assertEquals('sv_SE', $language);
    +
    +    	$language = getLanguageCodeFromCountryCode('DK');
    +    	$this->assertEquals('da_DK', $language);
    +    }
    +
         /**
          * testDolTextIsHtml
          *
    @@ -367,7 +443,6 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
             $input='This is a text with html comments <!-- comment -->';	// we suppose this is not enough to be html content
             $after=dol_textishtml($input);
             $this->assertFalse($after);
    -
         }
     
     
    @@ -814,7 +889,6 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
             $object->country_code='CA';
             $phone=dol_print_phone('1234567890', $object->country_code, 0, 0, 0, ' ');
             $this->assertEquals('<span style="margin-right: 10px;">(123) 456-7890</span>', $phone, 'Phone for CA 1');
    -
         }
     
     
    @@ -985,7 +1059,6 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
             // Test RULE 5 (FR-US)
             $vat=get_default_tva($companyfr,$companyus,0);
             $this->assertEquals(0,$vat,'RULE 5 ECOMMERCE_200238EC');
    -
         }
     
         /**
    @@ -1095,7 +1168,8 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
     	 *
     	 * @return void
     	 */
    -	public function testDolNl2Br() {
    +    public function testDolNl2Br()
    +    {
     
     		//String to encode
     		$string = "a\na";
    @@ -1186,5 +1260,4 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
     
     		return true;
     	}
    -
     }
    diff --git a/test/phpunit/GetUrlLibTest.php b/test/phpunit/GetUrlLibTest.php
    index 2a6d218dc93..c99f71a972f 100644
    --- a/test/phpunit/GetUrlLibTest.php
    +++ b/test/phpunit/GetUrlLibTest.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2010-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    diff --git a/test/phpunit/HolidayTest.php b/test/phpunit/HolidayTest.php
    index 625e4cf16a3..37684e731d5 100644
    --- a/test/phpunit/HolidayTest.php
    +++ b/test/phpunit/HolidayTest.php
    @@ -351,5 +351,4 @@ class HolidayTest extends PHPUnit_Framework_TestCase
         	$result=$localobjectc->verifDateHolidayCP($user->id, $date_debut, $date_fin, 2);	// start afternoon and end morning
         	$this->assertTrue($result, 'result should be true, there is no overlapping');
         }
    -
     }
    diff --git a/test/phpunit/ImagesLibTest.php b/test/phpunit/ImagesLibTest.php
    index cc4e6bd7462..1083eacf270 100644
    --- a/test/phpunit/ImagesLibTest.php
    +++ b/test/phpunit/ImagesLibTest.php
    @@ -1,6 +1,6 @@
     <?php
     /* Copyright (C) 2010-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
    - * Copyright (C) 2012		Regis Houssin		<regis.houssin@capnetworks.com>
    + * Copyright (C) 2012		Regis Houssin		<regis.houssin@inodbox.com>
      *
      * 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
    @@ -145,5 +145,4 @@ class ImagesLibTest extends PHPUnit_Framework_TestCase
     
     		return 1;
         }
    -
     }
    diff --git a/test/phpunit/ImportTest.php b/test/phpunit/ImportTest.php
    index 0e80b6384e8..52be24049bc 100644
    --- a/test/phpunit/ImportTest.php
    +++ b/test/phpunit/ImportTest.php
    @@ -136,5 +136,4 @@ class ImportTest extends PHPUnit_Framework_TestCase
     
     		return true;
         }
    -
     }
    diff --git a/test/phpunit/LoanTest.php b/test/phpunit/LoanTest.php
    index 8341f788ede..d54c810049d 100644
    --- a/test/phpunit/LoanTest.php
    +++ b/test/phpunit/LoanTest.php
    @@ -214,5 +214,4 @@ class LoanTest extends PHPUnit_Framework_TestCase
         	$this->assertLessThan($result, 0);
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/MarginsLibTest.php b/test/phpunit/MarginsLibTest.php
    index 21c07f7c04a..5966cb65a74 100644
    --- a/test/phpunit/MarginsLibTest.php
    +++ b/test/phpunit/MarginsLibTest.php
    @@ -149,5 +149,4 @@ class MarginsLibTest extends PHPUnit_Framework_TestCase
     
     		return 0;
         }
    -
     }
    diff --git a/test/phpunit/ModulesTest.php b/test/phpunit/ModulesTest.php
    index f034fd7a8b9..dc999fac750 100755
    --- a/test/phpunit/ModulesTest.php
    +++ b/test/phpunit/ModulesTest.php
    @@ -129,16 +129,16 @@ class ModulesTest extends PHPUnit_Framework_TestCase
     		$langs=$this->savlangs;
     		$db=$this->savdb;
     
    -		$modulelist=array('Accounting','Adherent','Agenda','Banque','Barcode','BlockedLog','Bookmark',
    -		'CashDesk','Categorie','ClickToDial','Collab','Commande','Comptabilite','Contrat','Cron','Deplacement','DocumentGeneration','Don','DynamicPrices',
    -		'ECM','Expedition','ExpenseReport','Export','ExternalRss','ExternalSite',
    +		$modulelist=array('Accounting','Adherent','Agenda','Api','Asset','Banque','Barcode','BlockedLog','Bookmark',
    +		'CashDesk','Categorie','ClickToDial','Collab','Commande','Comptabilite','Contrat','Cron','DataPolicy','Dav','Deplacement','DocumentGeneration','Don','DynamicPrices',
    +		'ECM','EmailCollector','Expedition','ExpenseReport','Export','ExternalRss','ExternalSite',
     		'Facture','Fckeditor','Ficheinter','Fournisseur','FTP','GeoIPMaxmind','Gravatar','Holiday','HRM','Import','Incoterm','Label','Ldap','Loan',
     		'Mailing','MailmanSpip','Margin','ModuleBuilder','MultiCurrency',
     		'Notification','Oauth','OpenSurvey','Paybox','Paypal','Prelevement','Printing','Product','ProductBatch','Projet','Propale','ReceiptPrinter','Resource',
    -		'Salaries','Service','Skype','Societe','Stock','Stripe','SupplierProposal','Syslog','Tax','Ticket','User','Variants','WebServices','WebServicesClient','Website','Workflow');
    +		'Salaries','Service','SocialNetworks','Societe','Stock','Stripe','SupplierProposal','Syslog','TakePos','Tax','Ticket','User','Variants','WebServices','WebServicesClient','Website','Workflow');
     		foreach($modulelist as $modlabel)
     		{
    -    		require_once(DOL_DOCUMENT_ROOT.'/core/modules/mod'.$modlabel.'.class.php');
    +    		require_once DOL_DOCUMENT_ROOT.'/core/modules/mod'.$modlabel.'.class.php';
                 $class='mod'.$modlabel;
         		$mod=new $class($db);
                 $result=$mod->remove();
    @@ -154,5 +154,4 @@ class ModulesTest extends PHPUnit_Framework_TestCase
     
             return 0;
         }
    -
     }
    diff --git a/test/phpunit/MouvementStockTest.php b/test/phpunit/MouvementStockTest.php
    index 2779b3011d6..cc50460e15f 100644
    --- a/test/phpunit/MouvementStockTest.php
    +++ b/test/phpunit/MouvementStockTest.php
    @@ -252,5 +252,4 @@ class MouvementStockTest extends PHPUnit_Framework_TestCase
     
         	return $localobject;
         }
    -
     }
    diff --git a/test/phpunit/NumberingModulesTest.php b/test/phpunit/NumberingModulesTest.php
    index 62ff9f8c342..0d229de8aa0 100644
    --- a/test/phpunit/NumberingModulesTest.php
    +++ b/test/phpunit/NumberingModulesTest.php
    @@ -575,5 +575,4 @@ class NumberingModulesTest extends PHPUnit_Framework_TestCase
     
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/PaypalTest.php b/test/phpunit/PaypalTest.php
    index 59c28be2177..ef6f069e6bf 100644
    --- a/test/phpunit/PaypalTest.php
    +++ b/test/phpunit/PaypalTest.php
    @@ -145,5 +145,4 @@ class PaypalTest extends PHPUnit_Framework_TestCase
     
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/PricesTest.php b/test/phpunit/PricesTest.php
    index f7c7fa00354..1c7b05d462b 100755
    --- a/test/phpunit/PricesTest.php
    +++ b/test/phpunit/PricesTest.php
    @@ -353,5 +353,4 @@ class PricesTest extends PHPUnit_Framework_TestCase
             //$this->assertEquals(0.25,$newlocalobject->total_tva);
             //$this->assertEquals(2.73,$newlocalobject->total_ttc);
         }
    -
     }
    diff --git a/test/phpunit/ProjectTest.php b/test/phpunit/ProjectTest.php
    index ea7cf01c328..2779902cabd 100644
    --- a/test/phpunit/ProjectTest.php
    +++ b/test/phpunit/ProjectTest.php
    @@ -239,5 +239,4 @@ class ProjectTest extends PHPUnit_Framework_TestCase
         	$this->assertLessThan($result, 0);
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/PropalTest.php b/test/phpunit/PropalTest.php
    index 1ee429509a3..81842063271 100644
    --- a/test/phpunit/PropalTest.php
    +++ b/test/phpunit/PropalTest.php
    @@ -293,5 +293,4 @@ class PropalTest extends PHPUnit_Framework_TestCase
         	$this->assertLessThan($result, 0);
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/RestAPIDocumentTest.php b/test/phpunit/RestAPIDocumentTest.php
    index 74225bea2d3..e9606b001b9 100644
    --- a/test/phpunit/RestAPIDocumentTest.php
    +++ b/test/phpunit/RestAPIDocumentTest.php
    @@ -96,6 +96,7 @@ class RestAPIDocumentTest extends PHPUnit_Framework_TestCase
     
         /**
          * Init phpunit tests.
    +     * @return void
          */
         protected function setUp()
         {
    @@ -127,6 +128,7 @@ class RestAPIDocumentTest extends PHPUnit_Framework_TestCase
     
         /**
          * End phpunit tests.
    +     * @return void
          */
         protected function tearDown()
         {
    diff --git a/test/phpunit/RestAPIUserTest.php b/test/phpunit/RestAPIUserTest.php
    index 4d461ce235d..7b2d345a41a 100644
    --- a/test/phpunit/RestAPIUserTest.php
    +++ b/test/phpunit/RestAPIUserTest.php
    @@ -175,7 +175,13 @@ class RestAPIUserTest extends PHPUnit_Framework_TestCase
           $this->assertEquals(1, $object['statut']);
         }
     
    -    public function testRestCreateUser() {
    +    /**
    +     * testRestCreateUser
    +     *
    +     * @return void
    +     */
    +    public function testRestCreateUser()
    +    {
     
           // attemp to create without mandatory fields :
           $url = $this->api_url.'/users?api_key='.$this->api_key;
    @@ -225,5 +231,4 @@ class RestAPIUserTest extends PHPUnit_Framework_TestCase
           $this->assertNotNull($object, "Parsing of json result must no be null");
           $this->assertEquals(500, $object['error']['code'], $object['error']['code'].' '.$object['error']['message']);
         }
    -
    -}
    \ No newline at end of file
    +}
    diff --git a/test/phpunit/SecurityTest.php b/test/phpunit/SecurityTest.php
    index 6e614032a73..f77189d4434 100644
    --- a/test/phpunit/SecurityTest.php
    +++ b/test/phpunit/SecurityTest.php
    @@ -260,17 +260,21 @@ class SecurityTest extends PHPUnit_Framework_TestCase
         {
             global $conf;
     
    -        $genpass1=getRandomPassword(true);    // Should be a string return by dol_hash (if no option set, will be md5)
    +        $genpass1=getRandomPassword(true);				// Should be a string return by dol_hash (if no option set, will be md5)
    +        print __METHOD__." genpass1=".$genpass1."\n";
    +        $this->assertEquals(strlen($genpass1), 32);
    +
    +        $genpass1=getRandomPassword(true, array('I'));	// Should be a string return by dol_hash (if no option set, will be md5)
             print __METHOD__." genpass1=".$genpass1."\n";
             $this->assertEquals(strlen($genpass1), 32);
     
             $conf->global->USER_PASSWORD_GENERATED='None';
    -        $genpass2=getRandomPassword(false);  // Should be an empty string
    +        $genpass2=getRandomPassword(false);				// Should return an empty string
             print __METHOD__." genpass2=".$genpass2."\n";
             $this->assertEquals($genpass2, '');
     
             $conf->global->USER_PASSWORD_GENERATED='Standard';
    -        $genpass3=getRandomPassword(false);
    +        $genpass3=getRandomPassword(false);				// Should return a password of 8 chars
             print __METHOD__." genpass3=".$genpass3."\n";
             $this->assertEquals(strlen($genpass3), 8);
     
    @@ -296,5 +300,4 @@ class SecurityTest extends PHPUnit_Framework_TestCase
     		$result=restrictedArea($user,'societe');
     		$this->assertEquals(1,$result);
         }
    -
     }
    diff --git a/test/phpunit/SocieteTest.php b/test/phpunit/SocieteTest.php
    index af924d233a9..3e9ee3c2002 100755
    --- a/test/phpunit/SocieteTest.php
    +++ b/test/phpunit/SocieteTest.php
    @@ -457,5 +457,4 @@ class SocieteTest extends PHPUnit_Framework_TestCase
     
             return $localobjectadd->id;
         }
    -
     }
    diff --git a/test/phpunit/SupplierProposalTest.php b/test/phpunit/SupplierProposalTest.php
    index 2428bd6d441..c284eb61178 100644
    --- a/test/phpunit/SupplierProposalTest.php
    +++ b/test/phpunit/SupplierProposalTest.php
    @@ -31,7 +31,7 @@ require_once dirname(__FILE__).'/../../htdocs/supplier_proposal/class/supplier_p
     
     if (empty($user->id))
     {
    -	print "Load permissions for admin user nb 1\n";
    +	print "Load permissions for user nb 1 (that should be admin)\n";
     	$user->fetch(1);
     
     	//$user->addrights(0, 'supplier_proposal');
    @@ -112,7 +112,12 @@ class SupplierProposalTest extends PHPUnit_Framework_TestCase
     
     		print __METHOD__."\n";
     		//print $db->getVersion()."\n";
    +
    +		// Set permission not set by default sql sample
    +		$user->addrights(0, 'supplier_proposal');
    +		$user->getrights('supplier_proposal', 1);
         }
    +
     	/**
     	 * End phpunit tests
     	 *
    @@ -198,8 +203,8 @@ class SupplierProposalTest extends PHPUnit_Framework_TestCase
         /**
          * testSupplierProposalValid
          *
    -     * @param	Proposal	$localobject	Proposal
    -     * @return	Proposal
    +     * @param	SupplierProposal	$localobject	Proposal
    +     * @return	SupplierProposal
          *
          * @depends	testSupplierProposalAddLine
          * The depends says test is run only if previous is ok
    @@ -212,7 +217,14 @@ class SupplierProposalTest extends PHPUnit_Framework_TestCase
     		$langs=$this->savlangs;
     		$db=$this->savdb;
     
    -    	$result=$localobject->valid($user);
    +		$result = $user->addrights(0, 'supplier_proposal');
    +		$this->assertLessThan($result, 0);
    +
    +		$result = $user->getrights('supplier_proposal', 1);
    +		//$this->assertLessThan($result, 0);
    +
    +		$result=$localobject->valid($user);
    +		$this->assertLessThan($result, 0);
     
         	print __METHOD__." id=".$localobject->id." result=".$result."\n";
         	$this->assertLessThan($result, 0);
    @@ -222,7 +234,7 @@ class SupplierProposalTest extends PHPUnit_Framework_TestCase
        /**
          * testSupplierProposalOther
          *
    -     * @param	Proposal	$localobject	Proposal
    +     * @param	SupplierProposal	$localobject	Proposal
          * @return	int
          *
          * @depends testSupplierProposalValid
    @@ -273,5 +285,4 @@ class SupplierProposalTest extends PHPUnit_Framework_TestCase
         	$this->assertLessThan($result, 0);
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/UserGroupTest.php b/test/phpunit/UserGroupTest.php
    index b1e9b3bb43f..4b3b0244ec7 100644
    --- a/test/phpunit/UserGroupTest.php
    +++ b/test/phpunit/UserGroupTest.php
    @@ -279,11 +279,10 @@ class UserGroupTest extends PHPUnit_Framework_TestCase
     
             $localobject=new UserGroup($this->savdb);
             $result=$localobject->fetch($id);
    -        $result=$localobject->delete($id);
    +        $result=$localobject->delete($user);
     
             print __METHOD__." id=".$id." result=".$result."\n";
             $this->assertLessThan($result, 0);
             return $result;
         }
    -
     }
    diff --git a/test/phpunit/UserTest.php b/test/phpunit/UserTest.php
    index d163765deec..9b8e5217183 100644
    --- a/test/phpunit/UserTest.php
    +++ b/test/phpunit/UserTest.php
    @@ -267,7 +267,7 @@ class UserTest extends PHPUnit_Framework_TestCase
     
             $localobject=new User($this->savdb);
             $result=$localobject->fetch($id);
    -        $result=$localobject->delete($id);
    +        $result=$localobject->delete($user);
     
             print __METHOD__." id=".$id." result=".$result."\n";
             $this->assertLessThan($result, 0);
    diff --git a/test/phpunit/UtilsTest.php b/test/phpunit/UtilsTest.php
    index e9c3ede729b..f2f44daa31d 100644
    --- a/test/phpunit/UtilsTest.php
    +++ b/test/phpunit/UtilsTest.php
    @@ -148,7 +148,4 @@ class UtilsTest extends PHPUnit_Framework_TestCase
             print __METHOD__." result=".$result."\n";
             return $result;
         }
    -
    -
    -
     }
    diff --git a/test/phpunit/WebservicesInvoicesTest.php b/test/phpunit/WebservicesInvoicesTest.php
    index adc202abd74..92a336c846e 100644
    --- a/test/phpunit/WebservicesInvoicesTest.php
    +++ b/test/phpunit/WebservicesInvoicesTest.php
    @@ -28,7 +28,7 @@ global $conf,$user,$langs,$db;
     //require_once 'PHPUnit/Autoload.php';
     require_once dirname(__FILE__).'/../../htdocs/master.inc.php';
     require_once dirname(__FILE__).'/../../htdocs/core/lib/date.lib.php';
    -require_once(NUSOAP_PATH.'/nusoap.php');        // Include SOAP
    +require_once NUSOAP_PATH.'/nusoap.php';        // Include SOAP
     
     
     if (empty($user->id))
    @@ -93,6 +93,11 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase
     		print "\n";
     	}
     
    +    /**
    +     * setUpBeforeClass
    +     *
    +     * @return void
    +     */
         public static function setUpBeforeClass()
         {
             global $conf,$user,$langs,$db;
    @@ -133,6 +138,11 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase
             print __METHOD__."\n";
         }
     
    +    /**
    +     * tearDownAfterClass
    +     *
    +     * @return void
    +     */
         public static function tearDownAfterClass()
         {
         	global $conf,$user,$langs,$db;
    @@ -420,5 +430,4 @@ class WebservicesInvoicesTest extends PHPUnit_Framework_TestCase
     
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/WebservicesOrdersTest.php b/test/phpunit/WebservicesOrdersTest.php
    index bdd4b138803..a155e5de973 100644
    --- a/test/phpunit/WebservicesOrdersTest.php
    +++ b/test/phpunit/WebservicesOrdersTest.php
    @@ -28,7 +28,7 @@ global $conf,$user,$langs,$db;
     //require_once 'PHPUnit/Autoload.php';
     require_once dirname(__FILE__).'/../../htdocs/master.inc.php';
     require_once dirname(__FILE__).'/../../htdocs/core/lib/date.lib.php';
    -require_once(NUSOAP_PATH.'/nusoap.php');        // Include SOAP
    +require_once NUSOAP_PATH.'/nusoap.php';        // Include SOAP
     
     
     if (empty($user->id)) {
    @@ -180,5 +180,4 @@ class WebservicesOrdersTest extends PHPUnit_Framework_TestCase
     
             return $result;
         }
    -
     }
    diff --git a/test/phpunit/WebservicesOtherTest.php b/test/phpunit/WebservicesOtherTest.php
    index 2feecf7df0e..16b1cd7d531 100644
    --- a/test/phpunit/WebservicesOtherTest.php
    +++ b/test/phpunit/WebservicesOtherTest.php
    @@ -28,7 +28,7 @@ global $conf,$user,$langs,$db;
     //require_once 'PHPUnit/Autoload.php';
     require_once dirname(__FILE__).'/../../htdocs/master.inc.php';
     require_once dirname(__FILE__).'/../../htdocs/core/lib/date.lib.php';
    -require_once(NUSOAP_PATH.'/nusoap.php');        // Include SOAP
    +require_once NUSOAP_PATH.'/nusoap.php';        // Include SOAP
     
     
     if (empty($user->id)) {
    @@ -209,5 +209,4 @@ class WebservicesOtherTest extends PHPUnit_Framework_TestCase
     
             return $result;
         }
    -
     }
    diff --git a/test/phpunit/WebservicesProductsTest.php b/test/phpunit/WebservicesProductsTest.php
    index 0127414627c..60c90ea30d4 100644
    --- a/test/phpunit/WebservicesProductsTest.php
    +++ b/test/phpunit/WebservicesProductsTest.php
    @@ -30,7 +30,7 @@ global $conf,$user,$langs,$db;
     //require_once 'PHPUnit/Autoload.php';
     require_once dirname(__FILE__).'/../../htdocs/master.inc.php';
     require_once dirname(__FILE__).'/../../htdocs/core/lib/date.lib.php';
    -require_once(NUSOAP_PATH.'/nusoap.php');        // Include SOAP
    +require_once NUSOAP_PATH.'/nusoap.php';        // Include SOAP
     
     
     if (empty($user->id)) {
    @@ -324,5 +324,4 @@ class WebservicesProductsTest extends PHPUnit_Framework_TestCase
     
             return 0;
         }
    -
     }
    diff --git a/test/phpunit/WebservicesThirdpartyTest.php b/test/phpunit/WebservicesThirdpartyTest.php
    index 1cf7cc4e8d6..51be1a5dbf6 100644
    --- a/test/phpunit/WebservicesThirdpartyTest.php
    +++ b/test/phpunit/WebservicesThirdpartyTest.php
    @@ -28,7 +28,7 @@ global $conf,$user,$langs,$db;
     //require_once 'PHPUnit/Autoload.php';
     require_once dirname(__FILE__).'/../../htdocs/master.inc.php';
     require_once dirname(__FILE__).'/../../htdocs/core/lib/date.lib.php';
    -require_once(NUSOAP_PATH.'/nusoap.php');        // Include SOAP
    +require_once NUSOAP_PATH.'/nusoap.php';        // Include SOAP
     
     
     if (empty($user->id)) {
    @@ -400,5 +400,4 @@ class WebservicesThirdpartyTest extends PHPUnit_Framework_TestCase
     
         	return $result;
         }
    -
     }
    diff --git a/test/phpunit/WebservicesUserTest.php b/test/phpunit/WebservicesUserTest.php
    index cdd65b7bc7b..3c97ee719a9 100644
    --- a/test/phpunit/WebservicesUserTest.php
    +++ b/test/phpunit/WebservicesUserTest.php
    @@ -28,7 +28,7 @@ global $conf,$user,$langs,$db;
     //require_once 'PHPUnit/Autoload.php';
     require_once dirname(__FILE__).'/../../htdocs/master.inc.php';
     require_once dirname(__FILE__).'/../../htdocs/core/lib/date.lib.php';
    -require_once(NUSOAP_PATH.'/nusoap.php');        // Include SOAP
    +require_once NUSOAP_PATH.'/nusoap.php';        // Include SOAP
     
     
     if (empty($user->id)) {
    @@ -208,5 +208,4 @@ class WebservicesUserTest extends PHPUnit_Framework_TestCase
     
             return $result;
         }
    -
     }
    diff --git a/test/phpunit/XCalLibTest.php b/test/phpunit/XCalLibTest.php
    index 932f68aa18d..165b8d247b2 100644
    --- a/test/phpunit/XCalLibTest.php
    +++ b/test/phpunit/XCalLibTest.php
    @@ -139,5 +139,4 @@ class XCalLibTest extends PHPUnit_Framework_TestCase
             print __METHOD__." result=".$resultback."\n";
             $this->assertEquals($stringtoencode,$resultback);
         }
    -
     }
    diff --git a/test/phpunit/functional/InstallTest.php b/test/phpunit/functional/InstallTest.php
    index 534d1d602c0..f444d08eec0 100644
    --- a/test/phpunit/functional/InstallTest.php
    +++ b/test/phpunit/functional/InstallTest.php
    @@ -42,6 +42,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
     		)
     	);
     
    +    /**
    +     * setUpBeforeClass
    +     *
    +     * @return	void
    +     */
     	public static function setUpBeforeClass()
     	{
     		// Make sure we backup and remove the configuration file to force new install.
    @@ -54,12 +59,22 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
     		self::shareSession(true);
     	}
     
    +    /**
    +     * dropTestDatabase
    +     *
    +     * @return	void
    +     */
     	protected static function dropTestDatabase()
     	{
     		$mysqli = new mysqli(self::$db_host, self::$db_admin_user, self::$db_admin_pass);
     		$mysqli->query("DROP DATABASE " . self::$db_name);
     	}
     
    +    /**
    +     * tearDownAfterClass
    +     *
    +     * @return	void
    +     */
     	public static function tearDownAfterClass()
     	{
     		// Remove the generated configuration and restore the backed up file.
    @@ -70,6 +85,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
     		self::dropTestDatabase();
     	}
     
    +    /**
    +     * setUp
    +     *
    +     * @return  void
    +     */
     	public function setUp()
     	{
     		// Populating the database can take quite long.
    @@ -77,17 +97,32 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
     		$this->setBrowserUrl(self::$url);
     	}
     
    +    /**
    +     * testInstallRedirect
    +     *
    +     * @return  void
    +     */
     	public function testInstallRedirect()
     	{
     		$this->url('/');
     		$this->assertContains('/install/index.php', $this->url());
     	}
     
    +    /**
    +     * testInstallPageTitle
    +     *
    +     * @return  void
    +     */
     	public function testInstallPageTitle()
     	{
     		$this->assertContains('Dolibarr', $this->title());
     	}
     
    +    /**
    +     * testInstallProcess
    +     *
    +     * @return  void
    +     */
     	public function testInstallProcess()
     	{
     		// FIXME: the button itself should have an ID
    @@ -95,6 +130,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
     		$this->assertContains('/install/check.php', $this->url());
     	}
     
    +    /**
    +     * testCheckPage
    +     *
    +     * @return  void
    +     */
     	public function testCheckPage()
     	{
     		$unavailable_choices = $this->byId('navail_choices');
    @@ -109,6 +149,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
     		$this->assertContains('/install/fileconf.php', $this->url());
     	}
     
    +    /**
    +     * testForm
    +     *
    +     * @return  void
    +     */
     	public function testForm()
     	{
     		$this->assertFalse($this->byClassName('hideroot')->displayed());
    @@ -153,12 +198,22 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
     		$this->byId('db_pass_root')->value('');
     	}
     
    +    /**
    +     * testFormSubmit
    +     *
    +     * @return  void
    +     */
     	public function testFormSubmit()
     	{
     		$this->byName('forminstall')->submit();
     		$this->assertContains('/install/step1.php', $this->url());
     	}
     
    +    /**
    +     * testStep1
    +     *
    +     * @return  void
    +     */
     	public function testStep1()
     	{
     		$this->assertFalse($this->byId('pleasewait')->displayed());
    @@ -170,6 +225,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
     		$this->assertContains('/install/step2.php', $this->url());
     	}
     
    +    /**
    +     * testStep2
    +     *
    +     * @return  void
    +     */
     	public function testStep2()
     	{
     		$this->byName('forminstall')->submit();
    @@ -178,6 +238,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
     
     	// There is no step 3
     
    +    /**
    +     * testStep4
    +     *
    +     * @return  void
    +     */
     	public function testStep4()
     	{
     		// FIXME: should have an ID
    @@ -191,6 +256,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
     		$this->assertContains('/install/step5.php', $this->url());
     	}
     
    +    /**
    +     * testStep5
    +     *
    +     * @return  void
    +     */
     	public function testStep5()
     	{
     		// FIXME: this button should have an ID
    @@ -198,6 +268,11 @@ class InstallTest extends PHPUnit_Extensions_Selenium2TestCase
     		$this->assertContains('/admin/index.php', $this->url());
     	}
     
    +    /**
    +     * testFirstLogin
    +     *
    +     * @return  void
    +     */
     	public function testFirstLogin()
     	{
     		$this->assertEquals('login', $this->byTag('form')->attribute('id'));
    diff --git a/test/phpunit/functional/TakePosFunctionalTest.php b/test/phpunit/functional/TakePosFunctionalTest.php
    new file mode 100644
    index 00000000000..b01d86eda10
    --- /dev/null
    +++ b/test/phpunit/functional/TakePosFunctionalTest.php
    @@ -0,0 +1,317 @@
    +<?php
    +/* Copyright (C) 2007-2017 Laurent Destailleur  <eldy@users.sourceforge.net>
    + * Copyright (C) 2018 SuperAdmin
    + *
    + * 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
    + * the Free Software Foundation, either version 3 of the License, or
    + * (at your option) any later version.
    + *
    + * This program is distributed in the hope that it will be useful,
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    + * GNU General Public License for more details.
    + *
    + * You should have received a copy of the GNU General Public License
    + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    + */
    +
    +/**
    + * \file    test/functional/TakePosFunctionalTest.php
    + * \ingroup takepos
    + * \brief   Example Selenium test.
    + */
    +
    +namespace test\functional;
    +
    +use PHPUnit_Extensions_Selenium2TestCase_WebDriverException;
    +
    +/**
    + * Class TakePosFunctionalTest
    + *
    + * Requires chromedriver for Google Chrome
    + * Requires geckodriver for Mozilla Firefox
    + *
    + * @fixme Firefox (Geckodriver/Marionette) support
    + * @todo Opera linux support
    + * @todo Windows support (IE, Google Chrome, Mozilla Firefox, Safari)
    + * @todo OSX support (Safari, Google Chrome, Mozilla Firefox)
    + *
    + * @package Testtakepos
    + */
    +class TakePosFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase
    +{
    +	// TODO: move to a global configuration file?
    +	/** @var string Base URL of the webserver under test */
    +	protected static $base_url = 'http://dev.zenfusion.fr';
    +	/**
    +	 * @var string Dolibarr admin username
    +	 * @see authenticate
    +	 */
    +	protected static $dol_admin_user = 'admin';
    +	/**
    +	 * @var string Dolibarr admin password
    +	 * @see authenticate
    +	 */
    +	protected static $dol_admin_pass = 'admin';
    +	/** @var int Dolibarr module ID */
    +	private static $module_id = 500000; // TODO: autodetect?
    +
    +	/** @var array Browsers to test with */
    +	public static $browsers = array(
    +		array(
    +			'browser' => 'Google Chrome on Linux',
    +			'browserName' => 'chrome',
    +			'sessionStrategy' => 'shared',
    +			'desiredCapabilities' => array()
    +		),
    +		// Geckodriver does not keep the session at the moment?!
    +		// XPath selectors also don't seem to work
    +//        array(
    +//            'browser' => 'Mozilla Firefox on Linux',
    +//            'browserName' => 'firefox',
    +//            'sessionStrategy' => 'shared',
    +//            'desiredCapabilities' => array(
    +//                'marionette' => true
    +//            )
    +//        )
    +	);
    +
    +	/**
    +	 * Helper function to select links by href
    +	 *
    +	 * @param  string  $value      Href
    +	 * @return mixed               Helper string
    +	 */
    +	protected function byHref($value)
    +	{
    +		$anchor = null;
    +		$anchors = $this->elements($this->using('tag name')->value('a'));
    +		foreach ($anchors as $anchor) {
    +			if (strstr($anchor->attribute('href'), $value)) {
    +				break;
    +			}
    +		}
    +		return $anchor;
    +	}
    +
    +	/**
    +	 * Global test setup
    +	 *
    +	 * @return	void
    +	 */
    +	public static function setUpBeforeClass()
    +	{
    +	}
    +
    +	/**
    +	 * Unit test setup
    +	 *
    +	 * @return	void
    +	 */
    +	public function setUp()
    +	{
    +		$this->setSeleniumServerRequestsTimeout(3600);
    +		$this->setBrowserUrl(self::$base_url);
    +	}
    +
    +	/**
    +	 * Verify pre conditions
    +	 *
    +	 * @return	void
    +	 */
    +	protected function assertPreConditions()
    +	{
    +	}
    +
    +	/**
    +	 * Handle Dolibarr authentication
    +	 *
    +	 * @return	void
    +	 */
    +	private function authenticate()
    +	{
    +		try {
    +			if ($this->byId('login')) {
    +				$login = $this->byId('username');
    +				$login->clear();
    +				$login->value('admin');
    +				$password = $this->byId('password');
    +				$password->clear();
    +				$password->value('admin');
    +				$this->byId('login')->submit();
    +			}
    +		} catch (PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
    +			// Login does not exist. Assume we are already authenticated
    +		}
    +	}
    +
    +	/**
    +	 * Test enabling developer mode
    +	 *
    +	 * @return	void
    +	 */
    +	public function testEnableDeveloperMode()
    +	{
    +		$this->url('/admin/const.php');
    +		$this->authenticate();
    +		$main_features_level_path='//input[@value="MAIN_FEATURES_LEVEL"]/following::input[@type="text"]';
    +		$main_features_level = $this->byXPath($main_features_level_path);
    +		$main_features_level->clear();
    +		$main_features_level->value('2');
    +		$this->byName('update')->click();
    +		// Page reloaded, we need a new XPath
    +		$main_features_level = $this->byXPath($main_features_level_path);
    +		$this->assertEquals('2', $main_features_level->value(), "MAIN_FEATURES_LEVEL value is 2");
    +	}
    +
    +	/**
    +	 * Test enabling the module
    +	 *
    +	 * @return	void
    +	 *
    +	 * @depends testEnableDeveloperMode
    +	 */
    +	public function testModuleEnabled()
    +	{
    +		$this->url('/admin/modules.php');
    +		$this->authenticate();
    +		$module_status_image_path='//a[contains(@href, "' . self::$module_id . '")]/img';
    +		$module_status_image = $this->byXPath($module_status_image_path);
    +		if (strstr($module_status_image->attribute('src'), 'switch_off.png')) {
    +			// Enable the module
    +			$this->byHref('modTakePos')->click();
    +		} else {
    +			// Disable the module
    +			$this->byHref('modTakePos')->click();
    +			// Reenable the module
    +			$this->byHref('modTakePos')->click();
    +		}
    +		// Page reloaded, we need a new Xpath
    +		$module_status_image = $this->byXPath($module_status_image_path);
    +		$this->assertContains('switch_on.png', $module_status_image->attribute('src'), "Module enabled");
    +	}
    +
    +	/**
    +	 * Test access to the configuration page
    +	 *
    +	 * @return	void
    +	 *
    +	 * @depends testModuleEnabled
    +	 */
    +	public function testConfigurationPage()
    +	{
    +		$this->url('/custom/takepos/admin/setup.php');
    +		$this->authenticate();
    +		$this->assertContains('takepos/admin/setup.php', $this->url(), 'Configuration page');
    +	}
    +
    +	/**
    +	 * Test access to the about page
    +	 *
    +	 * @return	void
    +	 *
    +	 * @depends testConfigurationPage
    +	 */
    +	public function testAboutPage()
    +	{
    +		$this->url('/custom/takepos/admin/about.php');
    +		$this->authenticate();
    +		$this->assertContains('takepos/admin/about.php', $this->url(), 'About page');
    +	}
    +
    +	/**
    +	 * Test about page is rendering Markdown
    +	 *
    +	 * @return	void
    +	 *
    +	 * @depends testAboutPage
    +	 */
    +	public function testAboutPageRendersMarkdownReadme()
    +	{
    +		$this->url('/custom/takepos/admin/about.php');
    +		$this->authenticate();
    +		$this->assertEquals(
    +			'Dolibarr Module Template (aka My Module)',
    +			$this->byTag('h1')->text(),
    +			"Readme title"
    +		);
    +	}
    +
    +	/**
    +	 * Test box is properly declared
    +	 *
    +	 * @return	void
    +	 *
    +	 * @depends testModuleEnabled
    +	 */
    +	public function testBoxDeclared()
    +	{
    +		$this->url('/admin/boxes.php');
    +		$this->authenticate();
    +		$this->assertContains('takeposwidget1', $this->source(), "Box enabled");
    +	}
    +
    +	/**
    +	 * Test trigger is properly enabled
    +	 *
    +	 * @return	void
    +	 *
    +	 * @depends testModuleEnabled
    +	 */
    +	public function testTriggerDeclared()
    +	{
    +		$this->url('/admin/triggers.php');
    +		$this->authenticate();
    +		$this->assertContains(
    +			'interface_99_modTakePos_TakePosTriggers.class.php',
    +			$this->byTag('body')->text(),
    +			"Trigger declared"
    +		);
    +	}
    +
    +	/**
    +	 * Test trigger is properly declared
    +	 *
    +	 * @return	void
    +	 *
    +	 * @depends testTriggerDeclared
    +	 */
    +	public function testTriggerEnabled()
    +	{
    +		$this->url('/admin/triggers.php');
    +		$this->authenticate();
    +		$this->assertContains(
    +			'tick.png',
    +			$this->byXPath('//td[text()="interface_99_modTakePos_MyTrigger.class.php"]/following::img')->attribute('src'),
    +			"Trigger enabled"
    +		);
    +	}
    +
    +	/**
    +	 * Verify post conditions
    +	 *
    +	 * @return	void
    +	 */
    +	protected function assertPostConditions()
    +	{
    +	}
    +
    +	/**
    +	 * Unit test teardown
    +	 *
    +	 * @return	void
    +	 */
    +	public function tearDown()
    +	{
    +	}
    +
    +	/**
    +	 * Global test teardown
    +	 *
    +	 * @return	void
    +	 */
    +	public static function tearDownAfterClass()
    +	{
    +	}
    +}